From a6b5dd36c41386e6a4ab73c81f9dbbc9f99264a0 Mon Sep 17 00:00:00 2001 From: Onder Ilke Sever Date: Tue, 14 Jul 2026 14:52:03 +0200 Subject: [PATCH] refactor: use THREE.Timer instead of deprecated THREE.Clock THREE.Clock was deprecated in three.js r183 in favor of THREE.Timer. SparkRenderer only ever reads elapsed time once per frame (deltaTime is derived independently), so the swap is a straightforward call to timer.update() followed by timer.getElapsed(). The cloneClock helper is removed in favor of sharing the passed-in THREE.Timer instance directly, since Timer exposes no public fields to clone. Rebuilt dist/, which also cleans up stale Old*/oldWorker build output left over from a previous commit that removed those source files without regenerating dist. Note: this renames the public SparkRendererOptions.clock option to `timer`, which is a breaking change for callers that pass a custom clock. --- dist/assets/oldWorker-C8TM2KB2.js.map | 1 - dist/assets/oldWorker-DUF0ALOS.js.map | 1 - dist/assets/worker-BAMFf186.js.map | 1 + dist/assets/worker-C9LcsNvD.js.map | 1 - dist/assets/worker-D9w847yb.js.map | 1 + dist/assets/worker-On-THXgb.js.map | 1 - dist/spark.cjs.js | 27270 ++++++++++++------------ dist/spark.cjs.js.map | 2 +- dist/spark.cjs.min.js | 883 +- dist/spark.cjs.min.js.map | 2 +- dist/spark.module.js | 27269 ++++++++++++----------- dist/spark.module.js.map | 2 +- dist/spark.module.min.js | 21571 +++++++++---------- dist/spark.module.min.js.map | 2 +- dist/types/OldSparkRenderer.d.ts | 318 - dist/types/OldSparkViewpoint.d.ts | 161 - dist/types/OldSplatAccumulator.d.ts | 21 - dist/types/OldSplatGeometry.d.ts | 7 - dist/types/OldSplatWorker.d.ts | 20 - dist/types/SparkRenderer.d.ts | 16 +- dist/types/SplatLoader.d.ts | 17 +- dist/types/SplatMesh.d.ts | 3 - dist/types/SplatPager.d.ts | 58 +- dist/types/index.d.ts | 5 +- dist/types/oldWorker.d.ts | 1 - dist/types/utils.d.ts | 2 +- dist/types/wasm.d.ts | 10 + docs/docs/spark-renderer.md | 2 +- package-lock.json | 4 +- src/SparkRenderer.ts | 14 +- src/utils.ts | 10 - 31 files changed, 36786 insertions(+), 40890 deletions(-) delete mode 100644 dist/assets/oldWorker-C8TM2KB2.js.map delete mode 100644 dist/assets/oldWorker-DUF0ALOS.js.map create mode 100644 dist/assets/worker-BAMFf186.js.map delete mode 100644 dist/assets/worker-C9LcsNvD.js.map create mode 100644 dist/assets/worker-D9w847yb.js.map delete mode 100644 dist/assets/worker-On-THXgb.js.map delete mode 100644 dist/types/OldSparkRenderer.d.ts delete mode 100644 dist/types/OldSparkViewpoint.d.ts delete mode 100644 dist/types/OldSplatAccumulator.d.ts delete mode 100644 dist/types/OldSplatGeometry.d.ts delete mode 100644 dist/types/OldSplatWorker.d.ts delete mode 100644 dist/types/oldWorker.d.ts create mode 100644 dist/types/wasm.d.ts diff --git a/dist/assets/oldWorker-C8TM2KB2.js.map b/dist/assets/oldWorker-C8TM2KB2.js.map deleted file mode 100644 index b35652b3..00000000 --- a/dist/assets/oldWorker-C8TM2KB2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"oldWorker-C8TM2KB2.js","sources":["../rust/spark-worker-rs/pkg/spark_worker_rs.js","../node_modules/fflate/esm/browser.js","../node_modules/three/build/three.core.js","../src/defines.ts","../src/dyno/base.ts","../src/utils.ts","../src/antisplat.ts","../src/ksplat.ts","../src/ply.ts","../src/spz.ts","../src/SplatLoader.ts","../src/pcsogs.ts","../src/oldWorker.ts"],"sourcesContent":["/* @ts-self-types=\"./spark_worker_rs.d.ts\" */\n\nexport class ChunkDecoder {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ChunkDecoder.prototype);\n obj.__wbg_ptr = ptr;\n ChunkDecoderFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ChunkDecoderFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_chunkdecoder_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n finish() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.chunkdecoder_finish(ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n */\n push(bytes) {\n const ret = wasm.chunkdecoder_push(this.__wbg_ptr, bytes);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n}\nif (Symbol.dispose) ChunkDecoder.prototype[Symbol.dispose] = ChunkDecoder.prototype.free;\n\nexport class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n\nexport class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function bhatt_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, rgba) {\n const ret = wasm.bhatt_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function bhatt_lod_packedsplats(num_splats, packed, extra, lod_base, rgba, encoding) {\n const ret = wasm.bhatt_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @returns {ChunkDecoder}\n */\nexport function decode_to_csplatarray(file_type, path_name, encoding) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_csplatarray(ptr0, len0, ptr1, len1, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_extsplats(file_type, path_name, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_extsplats(ptr0, len0, ptr1, len1, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_gsplatarray(file_type, path_name) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_gsplatarray(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Uint32Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_packedsplats(file_type, path_name, encoding, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_packedsplats(ptr0, len0, ptr1, len1, encoding, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n */\nexport function dispose_lod_tree(lod_id) {\n wasm.dispose_lod_tree(lod_id);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null} [extra]\n * @returns {GsplatArray}\n */\nexport function extsplats_to_gsplatarray(num_splats, ext1, ext2, extra) {\n const ret = wasm.extsplats_to_gsplatarray(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n * @param {number} level\n * @returns {object}\n */\nexport function get_lod_tree_level(lod_id, level) {\n const ret = wasm.get_lod_tree_level(lod_id, level);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} lod_tree\n * @returns {object}\n */\nexport function init_lod_tree(num_splats, lod_tree) {\n const ret = wasm.init_lod_tree(num_splats, lod_tree);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} capacity\n * @returns {object}\n */\nexport function new_lod_tree(capacity) {\n const ret = wasm.new_lod_tree(capacity);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} orig_lod_id\n * @returns {object}\n */\nexport function new_shared_lod_tree(orig_lod_id) {\n const ret = wasm.new_shared_lod_tree(orig_lod_id);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {CsplatArray}\n */\nexport function packedsplats_to_csplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_csplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return CsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {GsplatArray}\n */\nexport function packedsplats_to_gsplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_gsplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @returns {boolean}\n */\nexport function simd_enabled() {\n const ret = wasm.simd_enabled();\n return ret !== 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint16Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function tiny_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, merge_filter, rgba) {\n const ret = wasm.tiny_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function tiny_lod_packedsplats(num_splats, packed, extra, lod_base, merge_filter, rgba, encoding) {\n const ret = wasm.tiny_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} page_bases\n * @param {Uint32Array} chunk_bases\n * @param {Uint32Array} counts\n * @param {Array} lod_trees\n * @returns {object}\n */\nexport function update_lod_trees(lod_ids, page_bases, chunk_bases, counts, lod_trees) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(page_bases, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_bases, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(counts, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.update_lod_trees(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, lod_trees);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\nexport function wasm_start() {\n wasm.wasm_start();\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments); },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./spark_worker_rs_bg.js\": import0,\n };\n}\n\nconst ChunkDecoderFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\nconst CsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\nconst GsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\nfunction getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint16ArrayMemory0 = null;\nfunction getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayF32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getFloat32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (module_or_path === undefined) {\n module_or_path = new URL('spark_worker_rs_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","/**\n * @license\n * Copyright 2010-2025 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nconst REVISION = '180';\n\n/**\n * Represents mouse buttons and interaction types in context of controls.\n *\n * @type {ConstantsMouse}\n * @constant\n */\nconst MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };\n\n/**\n * Represents touch interaction types in context of controls.\n *\n * @type {ConstantsTouch}\n * @constant\n */\nconst TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };\n\n/**\n * Disables face culling.\n *\n * @type {number}\n * @constant\n */\nconst CullFaceNone = 0;\n\n/**\n * Culls back faces.\n *\n * @type {number}\n * @constant\n */\nconst CullFaceBack = 1;\n\n/**\n * Culls front faces.\n *\n * @type {number}\n * @constant\n */\nconst CullFaceFront = 2;\n\n/**\n * Culls both front and back faces.\n *\n * @type {number}\n * @constant\n */\nconst CullFaceFrontBack = 3;\n\n/**\n * Gives unfiltered shadow maps - fastest, but lowest quality.\n *\n * @type {number}\n * @constant\n */\nconst BasicShadowMap = 0;\n\n/**\n * Filters shadow maps using the Percentage-Closer Filtering (PCF) algorithm.\n *\n * @type {number}\n * @constant\n */\nconst PCFShadowMap = 1;\n\n/**\n * Filters shadow maps using the Percentage-Closer Filtering (PCF) algorithm with\n * better soft shadows especially when using low-resolution shadow maps.\n *\n * @type {number}\n * @constant\n */\nconst PCFSoftShadowMap = 2;\n\n/**\n * Filters shadow maps using the Variance Shadow Map (VSM) algorithm.\n * When using VSMShadowMap all shadow receivers will also cast shadows.\n *\n * @type {number}\n * @constant\n */\nconst VSMShadowMap = 3;\n\n/**\n * Only front faces are rendered.\n *\n * @type {number}\n * @constant\n */\nconst FrontSide = 0;\n\n/**\n * Only back faces are rendered.\n *\n * @type {number}\n * @constant\n */\nconst BackSide = 1;\n\n/**\n * Both front and back faces are rendered.\n *\n * @type {number}\n * @constant\n */\nconst DoubleSide = 2;\n\n/**\n * No blending is performed which effectively disables\n * alpha transparency.\n *\n * @type {number}\n * @constant\n */\nconst NoBlending = 0;\n\n/**\n * The default blending.\n *\n * @type {number}\n * @constant\n */\nconst NormalBlending = 1;\n\n/**\n * Represents additive blending.\n *\n * @type {number}\n * @constant\n */\nconst AdditiveBlending = 2;\n\n/**\n * Represents subtractive blending.\n *\n * @type {number}\n * @constant\n */\nconst SubtractiveBlending = 3;\n\n/**\n * Represents multiply blending.\n *\n * @type {number}\n * @constant\n */\nconst MultiplyBlending = 4;\n\n/**\n * Represents custom blending.\n *\n * @type {number}\n * @constant\n */\nconst CustomBlending = 5;\n\n/**\n * A `source + destination` blending equation.\n *\n * @type {number}\n * @constant\n */\nconst AddEquation = 100;\n\n/**\n * A `source - destination` blending equation.\n *\n * @type {number}\n * @constant\n */\nconst SubtractEquation = 101;\n\n/**\n * A `destination - source` blending equation.\n *\n * @type {number}\n * @constant\n */\nconst ReverseSubtractEquation = 102;\n\n/**\n * A blend equation that uses the minimum of source and destination.\n *\n * @type {number}\n * @constant\n */\nconst MinEquation = 103;\n\n/**\n * A blend equation that uses the maximum of source and destination.\n *\n * @type {number}\n * @constant\n */\nconst MaxEquation = 104;\n\n/**\n * Multiplies all colors by `0`.\n *\n * @type {number}\n * @constant\n */\nconst ZeroFactor = 200;\n\n/**\n * Multiplies all colors by `1`.\n *\n * @type {number}\n * @constant\n */\nconst OneFactor = 201;\n\n/**\n * Multiplies all colors by the source colors.\n *\n * @type {number}\n * @constant\n */\nconst SrcColorFactor = 202;\n\n/**\n * Multiplies all colors by `1` minus each source color.\n *\n * @type {number}\n * @constant\n */\nconst OneMinusSrcColorFactor = 203;\n\n/**\n * Multiplies all colors by the source alpha value.\n *\n * @type {number}\n * @constant\n */\nconst SrcAlphaFactor = 204;\n\n/**\n * Multiplies all colors by 1 minus the source alpha value.\n *\n * @type {number}\n * @constant\n */\nconst OneMinusSrcAlphaFactor = 205;\n\n/**\n * Multiplies all colors by the destination alpha value.\n *\n * @type {number}\n * @constant\n */\nconst DstAlphaFactor = 206;\n\n/**\n * Multiplies all colors by `1` minus the destination alpha value.\n *\n * @type {number}\n * @constant\n */\nconst OneMinusDstAlphaFactor = 207;\n\n/**\n * Multiplies all colors by the destination color.\n *\n * @type {number}\n * @constant\n */\nconst DstColorFactor = 208;\n\n/**\n * Multiplies all colors by `1` minus each destination color.\n *\n * @type {number}\n * @constant\n */\nconst OneMinusDstColorFactor = 209;\n\n/**\n * Multiplies the RGB colors by the smaller of either the source alpha\n * value or the value of `1` minus the destination alpha value. The alpha\n * value is multiplied by `1`.\n *\n * @type {number}\n * @constant\n */\nconst SrcAlphaSaturateFactor = 210;\n\n/**\n * Multiplies all colors by a constant color.\n *\n * @type {number}\n * @constant\n */\nconst ConstantColorFactor = 211;\n\n/**\n * Multiplies all colors by `1` minus a constant color.\n *\n * @type {number}\n * @constant\n */\nconst OneMinusConstantColorFactor = 212;\n\n/**\n * Multiplies all colors by a constant alpha value.\n *\n * @type {number}\n * @constant\n */\nconst ConstantAlphaFactor = 213;\n\n/**\n * Multiplies all colors by 1 minus a constant alpha value.\n *\n * @type {number}\n * @constant\n */\nconst OneMinusConstantAlphaFactor = 214;\n\n/**\n * Never pass.\n *\n * @type {number}\n * @constant\n */\nconst NeverDepth = 0;\n\n/**\n * Always pass.\n *\n * @type {number}\n * @constant\n */\nconst AlwaysDepth = 1;\n\n/**\n * Pass if the incoming value is less than the depth buffer value.\n *\n * @type {number}\n * @constant\n */\nconst LessDepth = 2;\n\n/**\n * Pass if the incoming value is less than or equal to the depth buffer value.\n *\n * @type {number}\n * @constant\n */\nconst LessEqualDepth = 3;\n\n/**\n * Pass if the incoming value equals the depth buffer value.\n *\n * @type {number}\n * @constant\n */\nconst EqualDepth = 4;\n\n/**\n * Pass if the incoming value is greater than or equal to the depth buffer value.\n *\n * @type {number}\n * @constant\n */\nconst GreaterEqualDepth = 5;\n\n/**\n * Pass if the incoming value is greater than the depth buffer value.\n *\n * @type {number}\n * @constant\n */\nconst GreaterDepth = 6;\n\n/**\n * Pass if the incoming value is not equal to the depth buffer value.\n *\n * @type {number}\n * @constant\n */\nconst NotEqualDepth = 7;\n\n/**\n * Multiplies the environment map color with the surface color.\n *\n * @type {number}\n * @constant\n */\nconst MultiplyOperation = 0;\n\n/**\n * Uses reflectivity to blend between the two colors.\n *\n * @type {number}\n * @constant\n */\nconst MixOperation = 1;\n\n/**\n * Adds the two colors.\n *\n * @type {number}\n * @constant\n */\nconst AddOperation = 2;\n\n/**\n * No tone mapping is applied.\n *\n * @type {number}\n * @constant\n */\nconst NoToneMapping = 0;\n\n/**\n * Linear tone mapping.\n *\n * @type {number}\n * @constant\n */\nconst LinearToneMapping = 1;\n\n/**\n * Reinhard tone mapping.\n *\n * @type {number}\n * @constant\n */\nconst ReinhardToneMapping = 2;\n\n/**\n * Cineon tone mapping.\n *\n * @type {number}\n * @constant\n */\nconst CineonToneMapping = 3;\n\n/**\n * ACES Filmic tone mapping.\n *\n * @type {number}\n * @constant\n */\nconst ACESFilmicToneMapping = 4;\n\n/**\n * Custom tone mapping.\n *\n * Expects a custom implementation by modifying shader code of the material's fragment shader.\n *\n * @type {number}\n * @constant\n */\nconst CustomToneMapping = 5;\n\n/**\n * AgX tone mapping.\n *\n * @type {number}\n * @constant\n */\nconst AgXToneMapping = 6;\n\n/**\n * Neutral tone mapping.\n *\n * Implementation based on the Khronos 3D Commerce Group standard tone mapping.\n *\n * @type {number}\n * @constant\n */\nconst NeutralToneMapping = 7;\n\n/**\n * The skinned mesh shares the same world space as the skeleton.\n *\n * @type {string}\n * @constant\n */\nconst AttachedBindMode = 'attached';\n\n/**\n * The skinned mesh does not share the same world space as the skeleton.\n * This is useful when a skeleton is shared across multiple skinned meshes.\n *\n * @type {string}\n * @constant\n */\nconst DetachedBindMode = 'detached';\n\n/**\n * Maps textures using the geometry's UV coordinates.\n *\n * @type {number}\n * @constant\n */\nconst UVMapping = 300;\n\n/**\n * Reflection mapping for cube textures.\n *\n * @type {number}\n * @constant\n */\nconst CubeReflectionMapping = 301;\n\n/**\n * Refraction mapping for cube textures.\n *\n * @type {number}\n * @constant\n */\nconst CubeRefractionMapping = 302;\n\n/**\n * Reflection mapping for equirectangular textures.\n *\n * @type {number}\n * @constant\n */\nconst EquirectangularReflectionMapping = 303;\n\n/**\n * Refraction mapping for equirectangular textures.\n *\n * @type {number}\n * @constant\n */\nconst EquirectangularRefractionMapping = 304;\n\n/**\n * Reflection mapping for PMREM textures.\n *\n * @type {number}\n * @constant\n */\nconst CubeUVReflectionMapping = 306;\n\n/**\n * The texture will simply repeat to infinity.\n *\n * @type {number}\n * @constant\n */\nconst RepeatWrapping = 1000;\n\n/**\n * The last pixel of the texture stretches to the edge of the mesh.\n *\n * @type {number}\n * @constant\n */\nconst ClampToEdgeWrapping = 1001;\n\n/**\n * The texture will repeats to infinity, mirroring on each repeat.\n *\n * @type {number}\n * @constant\n */\nconst MirroredRepeatWrapping = 1002;\n\n/**\n * Returns the value of the texture element that is nearest (in Manhattan distance)\n * to the specified texture coordinates.\n *\n * @type {number}\n * @constant\n */\nconst NearestFilter = 1003;\n\n/**\n * Chooses the mipmap that most closely matches the size of the pixel being textured\n * and uses the `NearestFilter` criterion (the texel nearest to the center of the pixel)\n * to produce a texture value.\n *\n * @type {number}\n * @constant\n */\nconst NearestMipmapNearestFilter = 1004;\nconst NearestMipMapNearestFilter = 1004; // legacy\n\n/**\n * Chooses the two mipmaps that most closely match the size of the pixel being textured and\n * uses the `NearestFilter` criterion to produce a texture value from each mipmap.\n * The final texture value is a weighted average of those two values.\n *\n * @type {number}\n * @constant\n */\nconst NearestMipmapLinearFilter = 1005;\nconst NearestMipMapLinearFilter = 1005; // legacy\n\n/**\n * Returns the weighted average of the four texture elements that are closest to the specified\n * texture coordinates, and can include items wrapped or repeated from other parts of a texture,\n * depending on the values of `wrapS` and `wrapT`, and on the exact mapping.\n *\n * @type {number}\n * @constant\n */\nconst LinearFilter = 1006;\n\n/**\n * Chooses the mipmap that most closely matches the size of the pixel being textured and uses\n * the `LinearFilter` criterion (a weighted average of the four texels that are closest to the\n * center of the pixel) to produce a texture value.\n *\n * @type {number}\n * @constant\n */\nconst LinearMipmapNearestFilter = 1007;\nconst LinearMipMapNearestFilter = 1007; // legacy\n\n/**\n * Chooses the two mipmaps that most closely match the size of the pixel being textured and uses\n * the `LinearFilter` criterion to produce a texture value from each mipmap. The final texture value\n * is a weighted average of those two values.\n *\n * @type {number}\n * @constant\n */\nconst LinearMipmapLinearFilter = 1008;\nconst LinearMipMapLinearFilter = 1008; // legacy\n\n/**\n * An unsigned byte data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedByteType = 1009;\n\n/**\n * A byte data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst ByteType = 1010;\n\n/**\n * A short data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst ShortType = 1011;\n\n/**\n * An unsigned short data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedShortType = 1012;\n\n/**\n * An int data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst IntType = 1013;\n\n/**\n * An unsigned int data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedIntType = 1014;\n\n/**\n * A float data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst FloatType = 1015;\n\n/**\n * A half float data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst HalfFloatType = 1016;\n\n/**\n * An unsigned short 4_4_4_4 (packed) data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedShort4444Type = 1017;\n\n/**\n * An unsigned short 5_5_5_1 (packed) data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedShort5551Type = 1018;\n\n/**\n * An unsigned int 24_8 data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedInt248Type = 1020;\n\n/**\n * An unsigned int 5_9_9_9 (packed) data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedInt5999Type = 35902;\n\n/**\n * An unsigned int 10_11_11 (packed) data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedInt101111Type = 35899;\n\n/**\n * Discards the red, green and blue components and reads just the alpha component.\n *\n * @type {number}\n * @constant\n */\nconst AlphaFormat = 1021;\n\n/**\n * Discards the alpha component and reads the red, green and blue component.\n *\n * @type {number}\n * @constant\n */\nconst RGBFormat = 1022;\n\n/**\n * Reads the red, green, blue and alpha components.\n *\n * @type {number}\n * @constant\n */\nconst RGBAFormat = 1023;\n\n/**\n * Reads each element as a single depth value, converts it to floating point, and clamps to the range `[0,1]`.\n *\n * @type {number}\n * @constant\n */\nconst DepthFormat = 1026;\n\n/**\n * Reads each element is a pair of depth and stencil values. The depth component of the pair is interpreted as\n * in `DepthFormat`. The stencil component is interpreted based on the depth + stencil internal format.\n *\n * @type {number}\n * @constant\n */\nconst DepthStencilFormat = 1027;\n\n/**\n * Discards the green, blue and alpha components and reads just the red component.\n *\n * @type {number}\n * @constant\n */\nconst RedFormat = 1028;\n\n/**\n * Discards the green, blue and alpha components and reads just the red component. The texels are read as integers instead of floating point.\n *\n * @type {number}\n * @constant\n */\nconst RedIntegerFormat = 1029;\n\n/**\n * Discards the alpha, and blue components and reads the red, and green components.\n *\n * @type {number}\n * @constant\n */\nconst RGFormat = 1030;\n\n/**\n * Discards the alpha, and blue components and reads the red, and green components. The texels are read as integers instead of floating point.\n *\n * @type {number}\n * @constant\n */\nconst RGIntegerFormat = 1031;\n\n/**\n * Discards the alpha component and reads the red, green and blue component. The texels are read as integers instead of floating point.\n *\n * @type {number}\n * @constant\n */\nconst RGBIntegerFormat = 1032;\n\n/**\n * Reads the red, green, blue and alpha components. The texels are read as integers instead of floating point.\n *\n * @type {number}\n * @constant\n */\nconst RGBAIntegerFormat = 1033;\n\n/**\n * A DXT1-compressed image in an RGB image format.\n *\n * @type {number}\n * @constant\n */\nconst RGB_S3TC_DXT1_Format = 33776;\n\n/**\n * A DXT1-compressed image in an RGB image format with a simple on/off alpha value.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_S3TC_DXT1_Format = 33777;\n\n/**\n * A DXT3-compressed image in an RGBA image format. Compared to a 32-bit RGBA texture, it offers 4:1 compression.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_S3TC_DXT3_Format = 33778;\n\n/**\n * A DXT5-compressed image in an RGBA image format. It also provides a 4:1 compression, but differs to the DXT3\n * compression in how the alpha compression is done.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_S3TC_DXT5_Format = 33779;\n\n/**\n * PVRTC RGB compression in 4-bit mode. One block for each 4×4 pixels.\n *\n * @type {number}\n * @constant\n */\nconst RGB_PVRTC_4BPPV1_Format = 35840;\n\n/**\n * PVRTC RGB compression in 2-bit mode. One block for each 8×4 pixels.\n *\n * @type {number}\n * @constant\n */\nconst RGB_PVRTC_2BPPV1_Format = 35841;\n\n/**\n * PVRTC RGBA compression in 4-bit mode. One block for each 4×4 pixels.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_PVRTC_4BPPV1_Format = 35842;\n\n/**\n * PVRTC RGBA compression in 2-bit mode. One block for each 8×4 pixels.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_PVRTC_2BPPV1_Format = 35843;\n\n/**\n * ETC1 RGB format.\n *\n * @type {number}\n * @constant\n */\nconst RGB_ETC1_Format = 36196;\n\n/**\n * ETC2 RGB format.\n *\n * @type {number}\n * @constant\n */\nconst RGB_ETC2_Format = 37492;\n\n/**\n * ETC2 RGBA format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ETC2_EAC_Format = 37496;\n\n/**\n * ASTC RGBA 4x4 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_4x4_Format = 37808;\n\n/**\n * ASTC RGBA 5x4 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_5x4_Format = 37809;\n\n/**\n * ASTC RGBA 5x5 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_5x5_Format = 37810;\n\n/**\n * ASTC RGBA 6x5 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_6x5_Format = 37811;\n\n/**\n * ASTC RGBA 6x6 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_6x6_Format = 37812;\n\n/**\n * ASTC RGBA 8x5 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_8x5_Format = 37813;\n\n/**\n * ASTC RGBA 8x6 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_8x6_Format = 37814;\n\n/**\n * ASTC RGBA 8x8 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_8x8_Format = 37815;\n\n/**\n * ASTC RGBA 10x5 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_10x5_Format = 37816;\n\n/**\n * ASTC RGBA 10x6 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_10x6_Format = 37817;\n\n/**\n * ASTC RGBA 10x8 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_10x8_Format = 37818;\n\n/**\n * ASTC RGBA 10x10 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_10x10_Format = 37819;\n\n/**\n * ASTC RGBA 12x10 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_12x10_Format = 37820;\n\n/**\n * ASTC RGBA 12x12 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_12x12_Format = 37821;\n\n/**\n * BPTC RGBA format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_BPTC_Format = 36492;\n\n/**\n * BPTC Signed RGB format.\n *\n * @type {number}\n * @constant\n */\nconst RGB_BPTC_SIGNED_Format = 36494;\n\n/**\n * BPTC Unsigned RGB format.\n *\n * @type {number}\n * @constant\n */\nconst RGB_BPTC_UNSIGNED_Format = 36495;\n\n/**\n * RGTC1 Red format.\n *\n * @type {number}\n * @constant\n */\nconst RED_RGTC1_Format = 36283;\n\n/**\n * RGTC1 Signed Red format.\n *\n * @type {number}\n * @constant\n */\nconst SIGNED_RED_RGTC1_Format = 36284;\n\n/**\n * RGTC2 Red Green format.\n *\n * @type {number}\n * @constant\n */\nconst RED_GREEN_RGTC2_Format = 36285;\n\n/**\n * RGTC2 Signed Red Green format.\n *\n * @type {number}\n * @constant\n */\nconst SIGNED_RED_GREEN_RGTC2_Format = 36286;\n\n/**\n * Animations are played once.\n *\n * @type {number}\n * @constant\n */\nconst LoopOnce = 2200;\n\n/**\n * Animations are played with a chosen number of repetitions, each time jumping from\n * the end of the clip directly to its beginning.\n *\n * @type {number}\n * @constant\n */\nconst LoopRepeat = 2201;\n\n/**\n * Animations are played with a chosen number of repetitions, alternately playing forward\n * and backward.\n *\n * @type {number}\n * @constant\n */\nconst LoopPingPong = 2202;\n\n/**\n * Discrete interpolation mode for keyframe tracks.\n *\n * @type {number}\n * @constant\n */\nconst InterpolateDiscrete = 2300;\n\n/**\n * Linear interpolation mode for keyframe tracks.\n *\n * @type {number}\n * @constant\n */\nconst InterpolateLinear = 2301;\n\n/**\n * Smooth interpolation mode for keyframe tracks.\n *\n * @type {number}\n * @constant\n */\nconst InterpolateSmooth = 2302;\n\n/**\n * Zero curvature ending for animations.\n *\n * @type {number}\n * @constant\n */\nconst ZeroCurvatureEnding = 2400;\n\n/**\n * Zero slope ending for animations.\n *\n * @type {number}\n * @constant\n */\nconst ZeroSlopeEnding = 2401;\n\n/**\n * Wrap around ending for animations.\n *\n * @type {number}\n * @constant\n */\nconst WrapAroundEnding = 2402;\n\n/**\n * Default animation blend mode.\n *\n * @type {number}\n * @constant\n */\nconst NormalAnimationBlendMode = 2500;\n\n/**\n * Additive animation blend mode. Can be used to layer motions on top of\n * each other to build complex performances from smaller re-usable assets.\n *\n * @type {number}\n * @constant\n */\nconst AdditiveAnimationBlendMode = 2501;\n\n/**\n * For every three vertices draw a single triangle.\n *\n * @type {number}\n * @constant\n */\nconst TrianglesDrawMode = 0;\n\n/**\n * For each vertex draw a triangle from the last three vertices.\n *\n * @type {number}\n * @constant\n */\nconst TriangleStripDrawMode = 1;\n\n/**\n * For each vertex draw a triangle from the first vertex and the last two vertices.\n *\n * @type {number}\n * @constant\n */\nconst TriangleFanDrawMode = 2;\n\n/**\n * Basic depth packing.\n *\n * @type {number}\n * @constant\n */\nconst BasicDepthPacking = 3200;\n\n/**\n * A depth value is packed into 32 bit RGBA.\n *\n * @type {number}\n * @constant\n */\nconst RGBADepthPacking = 3201;\n\n/**\n * A depth value is packed into 24 bit RGB.\n *\n * @type {number}\n * @constant\n */\nconst RGBDepthPacking = 3202;\n\n/**\n * A depth value is packed into 16 bit RG.\n *\n * @type {number}\n * @constant\n */\nconst RGDepthPacking = 3203;\n\n/**\n * Normal information is relative to the underlying surface.\n *\n * @type {number}\n * @constant\n */\nconst TangentSpaceNormalMap = 0;\n\n/**\n * Normal information is relative to the object orientation.\n *\n * @type {number}\n * @constant\n */\nconst ObjectSpaceNormalMap = 1;\n\n// Color space string identifiers, matching CSS Color Module Level 4 and WebGPU names where available.\n\n/**\n * No color space.\n *\n * @type {string}\n * @constant\n */\nconst NoColorSpace = '';\n\n/**\n * sRGB color space.\n *\n * @type {string}\n * @constant\n */\nconst SRGBColorSpace = 'srgb';\n\n/**\n * sRGB-linear color space.\n *\n * @type {string}\n * @constant\n */\nconst LinearSRGBColorSpace = 'srgb-linear';\n\n/**\n * Linear transfer function.\n *\n * @type {string}\n * @constant\n */\nconst LinearTransfer = 'linear';\n\n/**\n * sRGB transfer function.\n *\n * @type {string}\n * @constant\n */\nconst SRGBTransfer = 'srgb';\n\n/**\n * Sets the stencil buffer value to `0`.\n *\n * @type {number}\n * @constant\n */\nconst ZeroStencilOp = 0;\n\n/**\n * Keeps the current value.\n *\n * @type {number}\n * @constant\n */\nconst KeepStencilOp = 7680;\n\n/**\n * Sets the stencil buffer value to the specified reference value.\n *\n * @type {number}\n * @constant\n */\nconst ReplaceStencilOp = 7681;\n\n/**\n * Increments the current stencil buffer value. Clamps to the maximum representable unsigned value.\n *\n * @type {number}\n * @constant\n */\nconst IncrementStencilOp = 7682;\n\n/**\n * Decrements the current stencil buffer value. Clamps to `0`.\n *\n * @type {number}\n * @constant\n */\nconst DecrementStencilOp = 7683;\n\n/**\n * Increments the current stencil buffer value. Wraps stencil buffer value to zero when incrementing\n * the maximum representable unsigned value.\n *\n * @type {number}\n * @constant\n */\nconst IncrementWrapStencilOp = 34055;\n\n/**\n * Decrements the current stencil buffer value. Wraps stencil buffer value to the maximum representable\n * unsigned value when decrementing a stencil buffer value of `0`.\n *\n * @type {number}\n * @constant\n */\nconst DecrementWrapStencilOp = 34056;\n\n/**\n * Inverts the current stencil buffer value bitwise.\n *\n * @type {number}\n * @constant\n */\nconst InvertStencilOp = 5386;\n\n/**\n * Will never return true.\n *\n * @type {number}\n * @constant\n */\nconst NeverStencilFunc = 512;\n\n/**\n * Will return true if the stencil reference value is less than the current stencil value.\n *\n * @type {number}\n * @constant\n */\nconst LessStencilFunc = 513;\n\n/**\n * Will return true if the stencil reference value is equal to the current stencil value.\n *\n * @type {number}\n * @constant\n */\nconst EqualStencilFunc = 514;\n\n/**\n * Will return true if the stencil reference value is less than or equal to the current stencil value.\n *\n * @type {number}\n * @constant\n */\nconst LessEqualStencilFunc = 515;\n\n/**\n * Will return true if the stencil reference value is greater than the current stencil value.\n *\n * @type {number}\n * @constant\n */\nconst GreaterStencilFunc = 516;\n\n/**\n * Will return true if the stencil reference value is not equal to the current stencil value.\n *\n * @type {number}\n * @constant\n */\nconst NotEqualStencilFunc = 517;\n\n/**\n * Will return true if the stencil reference value is greater than or equal to the current stencil value.\n *\n * @type {number}\n * @constant\n */\nconst GreaterEqualStencilFunc = 518;\n\n/**\n * Will always return true.\n *\n * @type {number}\n * @constant\n */\nconst AlwaysStencilFunc = 519;\n\n/**\n * Never pass.\n *\n * @type {number}\n * @constant\n */\nconst NeverCompare = 512;\n\n/**\n * Pass if the incoming value is less than the texture value.\n *\n * @type {number}\n * @constant\n */\nconst LessCompare = 513;\n\n/**\n * Pass if the incoming value equals the texture value.\n *\n * @type {number}\n * @constant\n */\nconst EqualCompare = 514;\n\n/**\n * Pass if the incoming value is less than or equal to the texture value.\n *\n * @type {number}\n * @constant\n */\nconst LessEqualCompare = 515;\n\n/**\n * Pass if the incoming value is greater than the texture value.\n *\n * @type {number}\n * @constant\n */\nconst GreaterCompare = 516;\n\n/**\n * Pass if the incoming value is not equal to the texture value.\n *\n * @type {number}\n * @constant\n */\nconst NotEqualCompare = 517;\n\n/**\n * Pass if the incoming value is greater than or equal to the texture value.\n *\n * @type {number}\n * @constant\n */\nconst GreaterEqualCompare = 518;\n\n/**\n * Always pass.\n *\n * @type {number}\n * @constant\n */\nconst AlwaysCompare = 519;\n\n/**\n * The contents are intended to be specified once by the application, and used many\n * times as the source for drawing and image specification commands.\n *\n * @type {number}\n * @constant\n */\nconst StaticDrawUsage = 35044;\n\n/**\n * The contents are intended to be respecified repeatedly by the application, and\n * used many times as the source for drawing and image specification commands.\n *\n * @type {number}\n * @constant\n */\nconst DynamicDrawUsage = 35048;\n\n/**\n * The contents are intended to be specified once by the application, and used at most\n * a few times as the source for drawing and image specification commands.\n *\n * @type {number}\n * @constant\n */\nconst StreamDrawUsage = 35040;\n\n/**\n * The contents are intended to be specified once by reading data from the 3D API, and queried\n * many times by the application.\n *\n * @type {number}\n * @constant\n */\nconst StaticReadUsage = 35045;\n\n/**\n * The contents are intended to be respecified repeatedly by reading data from the 3D API, and queried\n * many times by the application.\n *\n * @type {number}\n * @constant\n */\nconst DynamicReadUsage = 35049;\n\n/**\n * The contents are intended to be specified once by reading data from the 3D API, and queried at most\n * a few times by the application\n *\n * @type {number}\n * @constant\n */\nconst StreamReadUsage = 35041;\n\n/**\n * The contents are intended to be specified once by reading data from the 3D API, and used many times as\n * the source for WebGL drawing and image specification commands.\n *\n * @type {number}\n * @constant\n */\nconst StaticCopyUsage = 35046;\n\n/**\n * The contents are intended to be respecified repeatedly by reading data from the 3D API, and used many times\n * as the source for WebGL drawing and image specification commands.\n *\n * @type {number}\n * @constant\n */\nconst DynamicCopyUsage = 35050;\n\n/**\n * The contents are intended to be specified once by reading data from the 3D API, and used at most a few times\n * as the source for WebGL drawing and image specification commands.\n *\n * @type {number}\n * @constant\n */\nconst StreamCopyUsage = 35042;\n\n/**\n * GLSL 1 shader code.\n *\n * @type {string}\n * @constant\n */\nconst GLSL1 = '100';\n\n/**\n * GLSL 3 shader code.\n *\n * @type {string}\n * @constant\n */\nconst GLSL3 = '300 es';\n\n/**\n * WebGL coordinate system.\n *\n * @type {number}\n * @constant\n */\nconst WebGLCoordinateSystem = 2000;\n\n/**\n * WebGPU coordinate system.\n *\n * @type {number}\n * @constant\n */\nconst WebGPUCoordinateSystem = 2001;\n\n/**\n * Represents the different timestamp query types.\n *\n * @type {ConstantsTimestampQuery}\n * @constant\n */\nconst TimestampQuery = {\n\tCOMPUTE: 'compute',\n\tRENDER: 'render'\n};\n\n/**\n * Represents mouse buttons and interaction types in context of controls.\n *\n * @type {ConstantsInterpolationSamplingType}\n * @constant\n */\nconst InterpolationSamplingType = {\n\tPERSPECTIVE: 'perspective',\n\tLINEAR: 'linear',\n\tFLAT: 'flat'\n};\n\n/**\n * Represents the different interpolation sampling modes.\n *\n * @type {ConstantsInterpolationSamplingMode}\n * @constant\n */\nconst InterpolationSamplingMode = {\n\tNORMAL: 'normal',\n\tCENTROID: 'centroid',\n\tSAMPLE: 'sample',\n\tFIRST: 'first',\n\tEITHER: 'either'\n};\n\n/**\n * This type represents mouse buttons and interaction types in context of controls.\n *\n * @typedef {Object} ConstantsMouse\n * @property {number} MIDDLE - The left mouse button.\n * @property {number} LEFT - The middle mouse button.\n * @property {number} RIGHT - The right mouse button.\n * @property {number} ROTATE - A rotate interaction.\n * @property {number} DOLLY - A dolly interaction.\n * @property {number} PAN - A pan interaction.\n **/\n\n/**\n * This type represents touch interaction types in context of controls.\n *\n * @typedef {Object} ConstantsTouch\n * @property {number} ROTATE - A rotate interaction.\n * @property {number} PAN - A pan interaction.\n * @property {number} DOLLY_PAN - The dolly-pan interaction.\n * @property {number} DOLLY_ROTATE - A dolly-rotate interaction.\n **/\n\n/**\n * This type represents the different timestamp query types.\n *\n * @typedef {Object} ConstantsTimestampQuery\n * @property {string} COMPUTE - A `compute` timestamp query.\n * @property {string} RENDER - A `render` timestamp query.\n **/\n\n/**\n * Represents the different interpolation sampling types.\n *\n * @typedef {Object} ConstantsInterpolationSamplingType\n * @property {string} PERSPECTIVE - Perspective-correct interpolation.\n * @property {string} LINEAR - Linear interpolation.\n * @property {string} FLAT - Flat interpolation.\n */\n\n/**\n * Represents the different interpolation sampling modes.\n *\n * @typedef {Object} ConstantsInterpolationSamplingMode\n * @property {string} NORMAL - Normal sampling mode.\n * @property {string} CENTROID - Centroid sampling mode.\n * @property {string} SAMPLE - Sample-specific sampling mode.\n * @property {string} FIRST - Flat interpolation using the first vertex.\n * @property {string} EITHER - Flat interpolation using either vertex.\n */\n\n/**\n * This modules allows to dispatch event objects on custom JavaScript objects.\n *\n * Main repository: [eventdispatcher.js]{@link https://github.com/mrdoob/eventdispatcher.js/}\n *\n * Code Example:\n * ```js\n * class Car extends EventDispatcher {\n * \tstart() {\n *\t\tthis.dispatchEvent( { type: 'start', message: 'vroom vroom!' } );\n *\t}\n *};\n *\n * // Using events with the custom object\n * const car = new Car();\n * car.addEventListener( 'start', function ( event ) {\n * \talert( event.message );\n * } );\n *\n * car.start();\n * ```\n */\nclass EventDispatcher {\n\n\t/**\n\t * Adds the given event listener to the given event type.\n\t *\n\t * @param {string} type - The type of event to listen to.\n\t * @param {Function} listener - The function that gets called when the event is fired.\n\t */\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\t/**\n\t * Returns `true` if the given event listener has been added to the given event type.\n\t *\n\t * @param {string} type - The type of event.\n\t * @param {Function} listener - The listener to check.\n\t * @return {boolean} Whether the given event listener has been added to the given event type.\n\t */\n\thasEventListener( type, listener ) {\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners === undefined ) return false;\n\n\t\treturn listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== -1;\n\n\t}\n\n\t/**\n\t * Removes the given event listener from the given event type.\n\t *\n\t * @param {string} type - The type of event.\n\t * @param {Function} listener - The listener to remove.\n\t */\n\tremoveEventListener( type, listener ) {\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners === undefined ) return;\n\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\t/**\n\t * Dispatches an event object.\n\t *\n\t * @param {Object} event - The event that gets fired.\n\t */\n\tdispatchEvent( event ) {\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners === undefined ) return;\n\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/**\n * Generate a [UUID]{@link https://en.wikipedia.org/wiki/Universally_unique_identifier}\n * (universally unique identifier).\n *\n * @return {string} The UUID.\n */\nfunction generateUUID() {\n\n\t// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\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\n/**\n * Clamps the given value between min and max.\n *\n * @param {number} value - The value to clamp.\n * @param {number} min - The min value.\n * @param {number} max - The max value.\n * @return {number} The clamped value.\n */\nfunction clamp( value, min, max ) {\n\n\treturn Math.max( min, Math.min( max, value ) );\n\n}\n\n/**\n * Computes the Euclidean modulo of the given parameters that\n * is `( ( n % m ) + m ) % m`.\n *\n * @param {number} n - The first parameter.\n * @param {number} m - The second parameter.\n * @return {number} The Euclidean modulo.\n */\nfunction euclideanModulo( n, m ) {\n\n\t// https://en.wikipedia.org/wiki/Modulo_operation\n\n\treturn ( ( n % m ) + m ) % m;\n\n}\n\n/**\n * Performs a linear mapping from range `` to range ``\n * for the given value.\n *\n * @param {number} x - The value to be mapped.\n * @param {number} a1 - Minimum value for range A.\n * @param {number} a2 - Maximum value for range A.\n * @param {number} b1 - Minimum value for range B.\n * @param {number} b2 - Maximum value for range B.\n * @return {number} The mapped value.\n */\nfunction mapLinear( x, a1, a2, b1, b2 ) {\n\n\treturn b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 );\n\n}\n\n/**\n * Returns the percentage in the closed interval `[0, 1]` of the given value\n * between the start and end point.\n *\n * @param {number} x - The start point\n * @param {number} y - The end point.\n * @param {number} value - A value between start and end.\n * @return {number} The interpolation factor.\n */\nfunction inverseLerp( x, y, value ) {\n\n\t// https://www.gamedev.net/tutorials/programming/general-and-gameplay-programming/inverse-lerp-a-super-useful-yet-often-overlooked-function-r5230/\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/**\n * Returns a value linearly interpolated from two known points based on the given interval -\n * `t = 0` will return `x` and `t = 1` will return `y`.\n *\n * @param {number} x - The start point\n * @param {number} y - The end point.\n * @param {number} t - The interpolation factor in the closed interval `[0, 1]`.\n * @return {number} The interpolated value.\n */\nfunction lerp( x, y, t ) {\n\n\treturn ( 1 - t ) * x + t * y;\n\n}\n\n/**\n * Smoothly interpolate a number from `x` to `y` in a spring-like manner using a delta\n * time to maintain frame rate independent movement. For details, see\n * [Frame rate independent damping using lerp]{@link http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/}.\n *\n * @param {number} x - The current point.\n * @param {number} y - The target point.\n * @param {number} lambda - A higher lambda value will make the movement more sudden,\n * and a lower value will make the movement more gradual.\n * @param {number} dt - Delta time in seconds.\n * @return {number} The interpolated value.\n */\nfunction damp( x, y, lambda, dt ) {\n\n\treturn lerp( x, y, 1 - Math.exp( - lambda * dt ) );\n\n}\n\n/**\n * Returns a value that alternates between `0` and the given `length` parameter.\n *\n * @param {number} x - The value to pingpong.\n * @param {number} [length=1] - The positive value the function will pingpong to.\n * @return {number} The alternated value.\n */\nfunction pingpong( x, length = 1 ) {\n\n\t// https://www.desmos.com/calculator/vcsjnyz7x4\n\n\treturn length - Math.abs( euclideanModulo( x, length * 2 ) - length );\n\n}\n\n/**\n * Returns a value in the range `[0,1]` that represents the percentage that `x` has\n * moved between `min` and `max`, but smoothed or slowed down the closer `x` is to\n * the `min` and `max`.\n *\n * See [Smoothstep]{@link http://en.wikipedia.org/wiki/Smoothstep} for more details.\n *\n * @param {number} x - The value to evaluate based on its position between min and max.\n * @param {number} min - The min value. Any x value below min will be `0`.\n * @param {number} max - The max value. Any x value above max will be `1`.\n * @return {number} The alternated value.\n */\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\n/**\n * A [variation on smoothstep]{@link https://en.wikipedia.org/wiki/Smoothstep#Variations}\n * that has zero 1st and 2nd order derivatives at x=0 and x=1.\n *\n * @param {number} x - The value to evaluate based on its position between min and max.\n * @param {number} min - The min value. Any x value below min will be `0`.\n * @param {number} max - The max value. Any x value above max will be `1`.\n * @return {number} The alternated value.\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/**\n * Returns a random integer from `` interval.\n *\n * @param {number} low - The lower value boundary.\n * @param {number} high - The upper value boundary\n * @return {number} A random integer.\n */\nfunction randInt( low, high ) {\n\n\treturn low + Math.floor( Math.random() * ( high - low + 1 ) );\n\n}\n\n/**\n * Returns a random float from `` interval.\n *\n * @param {number} low - The lower value boundary.\n * @param {number} high - The upper value boundary\n * @return {number} A random float.\n */\nfunction randFloat( low, high ) {\n\n\treturn low + Math.random() * ( high - low );\n\n}\n\n/**\n * Returns a random integer from `<-range/2, range/2>` interval.\n *\n * @param {number} range - Defines the value range.\n * @return {number} A random float.\n */\nfunction randFloatSpread( range ) {\n\n\treturn range * ( 0.5 - Math.random() );\n\n}\n\n/**\n * Returns a deterministic pseudo-random float in the interval `[0, 1]`.\n *\n * @param {number} [s] - The integer seed.\n * @return {number} A random float.\n */\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\n/**\n * Converts degrees to radians.\n *\n * @param {number} degrees - A value in degrees.\n * @return {number} The converted value in radians.\n */\nfunction degToRad( degrees ) {\n\n\treturn degrees * DEG2RAD;\n\n}\n\n/**\n * Converts radians to degrees.\n *\n * @param {number} radians - A value in radians.\n * @return {number} The converted value in degrees.\n */\nfunction radToDeg( radians ) {\n\n\treturn radians * RAD2DEG;\n\n}\n\n/**\n * Returns `true` if the given number is a power of two.\n *\n * @param {number} value - The value to check.\n * @return {boolean} Whether the given number is a power of two or not.\n */\nfunction isPowerOfTwo( value ) {\n\n\treturn ( value & ( value - 1 ) ) === 0 && value !== 0;\n\n}\n\n/**\n * Returns the smallest power of two that is greater than or equal to the given number.\n *\n * @param {number} value - The value to find a POT for.\n * @return {number} The smallest power of two that is greater than or equal to the given number.\n */\nfunction ceilPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.ceil( Math.log( value ) / Math.LN2 ) );\n\n}\n\n/**\n * Returns the largest power of two that is less than or equal to the given number.\n *\n * @param {number} value - The value to find a POT for.\n * @return {number} The largest power of two that is less than or equal to the given number.\n */\nfunction floorPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.floor( Math.log( value ) / Math.LN2 ) );\n\n}\n\n/**\n * Sets the given quaternion from the [Intrinsic Proper Euler Angles]{@link https://en.wikipedia.org/wiki/Euler_angles}\n * defined by the given angles and order.\n *\n * Rotations are applied to the axes in the order specified by order:\n * rotation by angle `a` is applied first, then by angle `b`, then by angle `c`.\n *\n * @param {Quaternion} q - The quaternion to set.\n * @param {number} a - The rotation applied to the first axis, in radians.\n * @param {number} b - The rotation applied to the second axis, in radians.\n * @param {number} c - The rotation applied to the third axis, in radians.\n * @param {('XYX'|'XZX'|'YXY'|'YZY'|'ZXZ'|'ZYZ')} order - A string specifying the axes order.\n */\nfunction setQuaternionFromProperEuler( q, a, b, c, order ) {\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\n/**\n * Denormalizes the given value according to the given typed array.\n *\n * @param {number} value - The value to denormalize.\n * @param {TypedArray} array - The typed array that defines the data type of the value.\n * @return {number} The denormalize (float) value in the range `[0,1]`.\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 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.max( value / 32767.0, -1 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.max( value / 127.0, -1 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\n/**\n * Normalizes the given value according to the given typed array.\n *\n * @param {number} value - The float value in the range `[0,1]` to normalize.\n * @param {TypedArray} array - The typed array that defines the data type of the value.\n * @return {number} The normalize value.\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\n/**\n * @class\n * @classdesc A collection of math utility functions.\n * @hideconstructor\n */\nconst MathUtils = {\n\tDEG2RAD: DEG2RAD,\n\tRAD2DEG: RAD2DEG,\n\t/**\n\t * Generate a [UUID]{@link https://en.wikipedia.org/wiki/Universally_unique_identifier}\n\t * (universally unique identifier).\n\t *\n\t * @static\n\t * @method\n\t * @return {string} The UUID.\n\t */\n\tgenerateUUID: generateUUID,\n\t/**\n\t * Clamps the given value between min and max.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} value - The value to clamp.\n\t * @param {number} min - The min value.\n\t * @param {number} max - The max value.\n\t * @return {number} The clamped value.\n\t */\n\tclamp: clamp,\n\t/**\n\t * Computes the Euclidean modulo of the given parameters that\n\t * is `( ( n % m ) + m ) % m`.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} n - The first parameter.\n\t * @param {number} m - The second parameter.\n\t * @return {number} The Euclidean modulo.\n\t */\n\teuclideanModulo: euclideanModulo,\n\t/**\n\t * Performs a linear mapping from range `` to range ``\n\t * for the given value.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} x - The value to be mapped.\n\t * @param {number} a1 - Minimum value for range A.\n\t * @param {number} a2 - Maximum value for range A.\n\t * @param {number} b1 - Minimum value for range B.\n\t * @param {number} b2 - Maximum value for range B.\n\t * @return {number} The mapped value.\n\t */\n\tmapLinear: mapLinear,\n\t/**\n\t * Returns the percentage in the closed interval `[0, 1]` of the given value\n\t * between the start and end point.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} x - The start point\n\t * @param {number} y - The end point.\n\t * @param {number} value - A value between start and end.\n\t * @return {number} The interpolation factor.\n\t */\n\tinverseLerp: inverseLerp,\n\t/**\n\t * Returns a value linearly interpolated from two known points based on the given interval -\n\t * `t = 0` will return `x` and `t = 1` will return `y`.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} x - The start point\n\t * @param {number} y - The end point.\n\t * @param {number} t - The interpolation factor in the closed interval `[0, 1]`.\n\t * @return {number} The interpolated value.\n\t */\n\tlerp: lerp,\n\t/**\n\t * Smoothly interpolate a number from `x` to `y` in a spring-like manner using a delta\n\t * time to maintain frame rate independent movement. For details, see\n\t * [Frame rate independent damping using lerp]{@link http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/}.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} x - The current point.\n\t * @param {number} y - The target point.\n\t * @param {number} lambda - A higher lambda value will make the movement more sudden,\n\t * and a lower value will make the movement more gradual.\n\t * @param {number} dt - Delta time in seconds.\n\t * @return {number} The interpolated value.\n\t */\n\tdamp: damp,\n\t/**\n\t * Returns a value that alternates between `0` and the given `length` parameter.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} x - The value to pingpong.\n\t * @param {number} [length=1] - The positive value the function will pingpong to.\n\t * @return {number} The alternated value.\n\t */\n\tpingpong: pingpong,\n\t/**\n\t * Returns a value in the range `[0,1]` that represents the percentage that `x` has\n\t * moved between `min` and `max`, but smoothed or slowed down the closer `x` is to\n\t * the `min` and `max`.\n\t *\n\t * See [Smoothstep]{@link http://en.wikipedia.org/wiki/Smoothstep} for more details.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} x - The value to evaluate based on its position between min and max.\n\t * @param {number} min - The min value. Any x value below min will be `0`.\n\t * @param {number} max - The max value. Any x value above max will be `1`.\n\t * @return {number} The alternated value.\n\t */\n\tsmoothstep: smoothstep,\n\t/**\n\t * A [variation on smoothstep]{@link https://en.wikipedia.org/wiki/Smoothstep#Variations}\n\t * that has zero 1st and 2nd order derivatives at x=0 and x=1.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} x - The value to evaluate based on its position between min and max.\n\t * @param {number} min - The min value. Any x value below min will be `0`.\n\t * @param {number} max - The max value. Any x value above max will be `1`.\n\t * @return {number} The alternated value.\n\t */\n\tsmootherstep: smootherstep,\n\t/**\n\t * Returns a random integer from `` interval.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} low - The lower value boundary.\n\t * @param {number} high - The upper value boundary\n\t * @return {number} A random integer.\n\t */\n\trandInt: randInt,\n\t/**\n\t * Returns a random float from `` interval.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} low - The lower value boundary.\n\t * @param {number} high - The upper value boundary\n\t * @return {number} A random float.\n\t */\n\trandFloat: randFloat,\n\t/**\n\t * Returns a random integer from `<-range/2, range/2>` interval.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} range - Defines the value range.\n\t * @return {number} A random float.\n\t */\n\trandFloatSpread: randFloatSpread,\n\t/**\n\t * Returns a deterministic pseudo-random float in the interval `[0, 1]`.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} [s] - The integer seed.\n\t * @return {number} A random float.\n\t */\n\tseededRandom: seededRandom,\n\t/**\n\t * Converts degrees to radians.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} degrees - A value in degrees.\n\t * @return {number} The converted value in radians.\n\t */\n\tdegToRad: degToRad,\n\t/**\n\t * Converts radians to degrees.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} radians - A value in radians.\n\t * @return {number} The converted value in degrees.\n\t */\n\tradToDeg: radToDeg,\n\t/**\n\t * Returns `true` if the given number is a power of two.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} value - The value to check.\n\t * @return {boolean} Whether the given number is a power of two or not.\n\t */\n\tisPowerOfTwo: isPowerOfTwo,\n\t/**\n\t * Returns the smallest power of two that is greater than or equal to the given number.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} value - The value to find a POT for.\n\t * @return {number} The smallest power of two that is greater than or equal to the given number.\n\t */\n\tceilPowerOfTwo: ceilPowerOfTwo,\n\t/**\n\t * Returns the largest power of two that is less than or equal to the given number.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} value - The value to find a POT for.\n\t * @return {number} The largest power of two that is less than or equal to the given number.\n\t */\n\tfloorPowerOfTwo: floorPowerOfTwo,\n\t/**\n\t * Sets the given quaternion from the [Intrinsic Proper Euler Angles]{@link https://en.wikipedia.org/wiki/Euler_angles}\n\t * defined by the given angles and order.\n\t *\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 *\n\t * @static\n\t * @method\n\t * @param {Quaternion} q - The quaternion to set.\n\t * @param {number} a - The rotation applied to the first axis, in radians.\n\t * @param {number} b - The rotation applied to the second axis, in radians.\n\t * @param {number} c - The rotation applied to the third axis, in radians.\n\t * @param {('XYX'|'XZX'|'YXY'|'YZY'|'ZXZ'|'ZYZ')} order - A string specifying the axes order.\n\t */\n\tsetQuaternionFromProperEuler: setQuaternionFromProperEuler,\n\t/**\n\t * Normalizes the given value according to the given typed array.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} value - The float value in the range `[0,1]` to normalize.\n\t * @param {TypedArray} array - The typed array that defines the data type of the value.\n\t * @return {number} The normalize value.\n\t */\n\tnormalize: normalize,\n\t/**\n\t * Denormalizes the given value according to the given typed array.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} value - The value to denormalize.\n\t * @param {TypedArray} array - The typed array that defines the data type of the value.\n\t * @return {number} The denormalize (float) value in the range `[0,1]`.\n\t */\n\tdenormalize: denormalize\n};\n\n/**\n * Class representing a 2D vector. A 2D vector is an ordered pair of numbers\n * (labeled x and y), which can be used to represent a number of things, such as:\n *\n * - A point in 2D space (i.e. a position on a plane).\n * - A direction and length across a plane. In three.js the length will\n * always be the Euclidean distance(straight-line distance) from `(0, 0)` to `(x, y)`\n * and the direction is also measured from `(0, 0)` towards `(x, y)`.\n * - Any arbitrary ordered pair of numbers.\n *\n * There are other things a 2D vector can be used to represent, such as\n * momentum vectors, complex numbers and so on, however these are the most\n * common uses in three.js.\n *\n * Iterating through a vector instance will yield its components `(x, y)` in\n * the corresponding order.\n * ```js\n * const a = new THREE.Vector2( 0, 1 );\n *\n * //no arguments; will be initialised to (0, 0)\n * const b = new THREE.Vector2( );\n *\n * const d = a.distanceTo( b );\n * ```\n */\nclass Vector2 {\n\n\t/**\n\t * Constructs a new 2D vector.\n\t *\n\t * @param {number} [x=0] - The x value of this vector.\n\t * @param {number} [y=0] - The y value of this vector.\n\t */\n\tconstructor( x = 0, y = 0 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tVector2.prototype.isVector2 = true;\n\n\t\t/**\n\t\t * The x value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.x = x;\n\n\t\t/**\n\t\t * The y value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.y = y;\n\n\t}\n\n\t/**\n\t * Alias for {@link Vector2#x}.\n\t *\n\t * @type {number}\n\t */\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\t/**\n\t * Alias for {@link Vector2#y}.\n\t *\n\t * @type {number}\n\t */\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\t/**\n\t * Sets the vector components.\n\t *\n\t * @param {number} x - The value of the x component.\n\t * @param {number} y - The value of the y component.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components to the same value.\n\t *\n\t * @param {number} scalar - The value to set for all vector components.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the vector's x component to the given value\n\t *\n\t * @param {number} x - The value to set.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the vector's y component to the given value\n\t *\n\t * @param {number} y - The value to set.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Allows to set a vector component with an index.\n\t *\n\t * @param {number} index - The component index. `0` equals to x, `1` equals to y.\n\t * @param {number} value - The value to set.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Returns the value of the vector component which matches the given index.\n\t *\n\t * @param {number} index - The component index. `0` equals to x, `1` equals to y.\n\t * @return {number} A vector component value.\n\t */\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\t/**\n\t * Returns a new vector with copied values from this instance.\n\t *\n\t * @return {Vector2} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y );\n\n\t}\n\n\t/**\n\t * Copies the values of the given vector to this instance.\n\t *\n\t * @param {Vector2} v - The vector to copy.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vector to this instance.\n\t *\n\t * @param {Vector2} v - The vector to add.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given scalar value to all components of this instance.\n\t *\n\t * @param {number} s - The scalar to add.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Adds the given vectors and stores the result in this instance.\n\t *\n\t * @param {Vector2} a - The first vector.\n\t * @param {Vector2} b - The second vector.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vector scaled by the given factor to this instance.\n\t *\n\t * @param {Vector2} v - The vector.\n\t * @param {number} s - The factor that scales `v`.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given vector from this instance.\n\t *\n\t * @param {Vector2} v - The vector to subtract.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given scalar value from all components of this instance.\n\t *\n\t * @param {number} s - The scalar to subtract.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Subtracts the given vectors and stores the result in this instance.\n\t *\n\t * @param {Vector2} a - The first vector.\n\t * @param {Vector2} b - The second vector.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies the given vector with this instance.\n\t *\n\t * @param {Vector2} v - The vector to multiply.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies the given scalar value with all components of this instance.\n\t *\n\t * @param {number} scalar - The scalar to multiply.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Divides this instance by the given vector.\n\t *\n\t * @param {Vector2} v - The vector to divide.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Divides this vector by the given scalar.\n\t *\n\t * @param {number} scalar - The scalar to divide.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\t/**\n\t * Multiplies this vector (with an implicit 1 as the 3rd component) by\n\t * the given 3x3 matrix.\n\t *\n\t * @param {Matrix3} m - The matrix to apply.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x or y value is greater than the given vector's x or y\n\t * value, replace that value with the corresponding min value.\n\t *\n\t * @param {Vector2} v - The vector.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x or y value is less than the given vector's x or y\n\t * value, replace that value with the corresponding max value.\n\t *\n\t * @param {Vector2} v - The vector.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x or y value is greater than the max vector's x or y\n\t * value, it is replaced by the corresponding value.\n\t * If this vector's x or y value is less than the min vector's x or y value,\n\t * it is replaced by the corresponding value.\n\t *\n\t * @param {Vector2} min - The minimum x and y values.\n\t * @param {Vector2} max - The maximum x and y values in the desired range.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = clamp( this.x, min.x, max.x );\n\t\tthis.y = clamp( this.y, min.y, max.y );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * If this vector's x or y values are greater than the max value, they are\n\t * replaced by the max value.\n\t * If this vector's x or y values are less than the min value, they are\n\t * replaced by the min value.\n\t *\n\t * @param {number} minVal - The minimum value the components will be clamped to.\n\t * @param {number} maxVal - The maximum value the components will be clamped to.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = clamp( this.x, minVal, maxVal );\n\t\tthis.y = clamp( this.y, minVal, maxVal );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * If this vector's length is greater than the max value, it is replaced by\n\t * the max value.\n\t * If this vector's length is less than the min value, it is replaced by the\n\t * min value.\n\t *\n\t * @param {number} min - The minimum value the vector length will be clamped to.\n\t * @param {number} max - The maximum value the vector length will be clamped to.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( clamp( length, min, max ) );\n\n\t}\n\n\t/**\n\t * The components of this vector are rounded down to the nearest integer value.\n\t *\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded up to the nearest integer value.\n\t *\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded to the nearest integer value\n\t *\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded towards zero (up if negative,\n\t * down if positive) to an integer value.\n\t *\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Inverts this vector - i.e. sets x = -x and y = -y.\n\t *\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Calculates the dot product of the given vector with this instance.\n\t *\n\t * @param {Vector2} v - The vector to compute the dot product with.\n\t * @return {number} The result of the dot product.\n\t */\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y;\n\n\t}\n\n\t/**\n\t * Calculates the cross product of the given vector with this instance.\n\t *\n\t * @param {Vector2} v - The vector to compute the cross product with.\n\t * @return {number} The result of the cross product.\n\t */\n\tcross( v ) {\n\n\t\treturn this.x * v.y - this.y * v.x;\n\n\t}\n\n\t/**\n\t * Computes the square of the Euclidean length (straight-line length) from\n\t * (0, 0) to (x, y). If you are comparing the lengths of vectors, you should\n\t * compare the length squared instead as it is slightly more efficient to calculate.\n\t *\n\t * @return {number} The square length of this vector.\n\t */\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y;\n\n\t}\n\n\t/**\n\t * Computes the Euclidean length (straight-line length) from (0, 0) to (x, y).\n\t *\n\t * @return {number} The length of this vector.\n\t */\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y );\n\n\t}\n\n\t/**\n\t * Computes the Manhattan length of this vector.\n\t *\n\t * @return {number} The length of this vector.\n\t */\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y );\n\n\t}\n\n\t/**\n\t * Converts this vector to a unit vector - that is, sets it equal to a vector\n\t * with the same direction as this one, but with a vector length of `1`.\n\t *\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\t/**\n\t * Computes the angle in radians of this vector with respect to the positive x-axis.\n\t *\n\t * @return {number} The angle in radians.\n\t */\n\tangle() {\n\n\t\tconst angle = Math.atan2( - this.y, - this.x ) + Math.PI;\n\n\t\treturn angle;\n\n\t}\n\n\t/**\n\t * Returns the angle between the given vector and this instance in radians.\n\t *\n\t * @param {Vector2} v - The vector to compute the angle with.\n\t * @return {number} The angle in radians.\n\t */\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\t/**\n\t * Computes the distance from the given vector to this instance.\n\t *\n\t * @param {Vector2} v - The vector to compute the distance to.\n\t * @return {number} The distance.\n\t */\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\t/**\n\t * Computes the squared distance from the given vector to this instance.\n\t * If you are just comparing the distance with another distance, you should compare\n\t * the distance squared instead as it is slightly more efficient to calculate.\n\t *\n\t * @param {Vector2} v - The vector to compute the squared distance to.\n\t * @return {number} The squared distance.\n\t */\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\t/**\n\t * Computes the Manhattan distance from the given vector to this instance.\n\t *\n\t * @param {Vector2} v - The vector to compute the Manhattan distance to.\n\t * @return {number} The Manhattan distance.\n\t */\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y );\n\n\t}\n\n\t/**\n\t * Sets this vector to a vector with the same direction as this one, but\n\t * with the specified length.\n\t *\n\t * @param {number} length - The new length of this vector.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\t/**\n\t * Linearly interpolates between the given vector and this instance, where\n\t * alpha is the percent distance along the line - alpha = 0 will be this\n\t * vector, and alpha = 1 will be the given one.\n\t *\n\t * @param {Vector2} v - The vector to interpolate towards.\n\t * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Linearly interpolates between the given vectors, where alpha is the percent\n\t * distance along the line - alpha = 0 will be first vector, and alpha = 1 will\n\t * be the second one. The result is stored in this instance.\n\t *\n\t * @param {Vector2} v1 - The first vector.\n\t * @param {Vector2} v2 - The second vector.\n\t * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Returns `true` if this vector is equal with the given one.\n\t *\n\t * @param {Vector2} v - The vector to test for equality.\n\t * @return {boolean} Whether this vector is equal with the given one.\n\t */\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) );\n\n\t}\n\n\t/**\n\t * Sets this vector's x value to be `array[ offset ]` and y\n\t * value to be `array[ offset + 1 ]`.\n\t *\n\t * @param {Array} array - An array holding the vector component values.\n\t * @param {number} [offset=0] - The offset into the array.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Writes the components of this vector to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the vector components.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The vector components.\n\t */\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\t/**\n\t * Sets the components of this vector from the given buffer attribute.\n\t *\n\t * @param {BufferAttribute} attribute - The buffer attribute holding vector data.\n\t * @param {number} index - The index into the attribute.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Rotates this vector around the given center by the given angle.\n\t *\n\t * @param {Vector2} center - The point around which to rotate.\n\t * @param {number} angle - The angle to rotate, in radians.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Sets each component of this vector to a pseudo-random value between `0` and\n\t * `1`, excluding `1`.\n\t *\n\t * @return {Vector2} A reference to this vector.\n\t */\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\n/**\n * Class for representing a Quaternion. Quaternions are used in three.js to represent rotations.\n *\n * Iterating through a vector instance will yield its components `(x, y, z, w)` in\n * the corresponding order.\n *\n * Note that three.js expects Quaternions to be normalized.\n * ```js\n * const quaternion = new THREE.Quaternion();\n * quaternion.setFromAxisAngle( new THREE.Vector3( 0, 1, 0 ), Math.PI / 2 );\n *\n * const vector = new THREE.Vector3( 1, 0, 0 );\n * vector.applyQuaternion( quaternion );\n * ```\n */\nclass Quaternion {\n\n\t/**\n\t * Constructs a new quaternion.\n\t *\n\t * @param {number} [x=0] - The x value of this quaternion.\n\t * @param {number} [y=0] - The y value of this quaternion.\n\t * @param {number} [z=0] - The z value of this quaternion.\n\t * @param {number} [w=1] - The w value of this quaternion.\n\t */\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t * Interpolates between two quaternions via SLERP. This implementation assumes the\n\t * quaternion data are managed in flat arrays.\n\t *\n\t * @param {Array} dst - The destination array.\n\t * @param {number} dstOffset - An offset into the destination array.\n\t * @param {Array} src0 - The source array of the first quaternion.\n\t * @param {number} srcOffset0 - An offset into the first source array.\n\t * @param {Array} src1 - The source array of the second quaternion.\n\t * @param {number} srcOffset1 - An offset into the second source array.\n\t * @param {number} t - The interpolation factor in the range `[0,1]`.\n\t * @see {@link Quaternion#slerp}\n\t */\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\t/**\n\t * Multiplies two quaternions. This implementation assumes the quaternion data are managed\n\t * in flat arrays.\n\t *\n\t * @param {Array} dst - The destination array.\n\t * @param {number} dstOffset - An offset into the destination array.\n\t * @param {Array} src0 - The source array of the first quaternion.\n\t * @param {number} srcOffset0 - An offset into the first source array.\n\t * @param {Array} src1 - The source array of the second quaternion.\n\t * @param {number} srcOffset1 - An offset into the second source array.\n\t * @return {Array} The destination array.\n\t * @see {@link Quaternion#multiplyQuaternions}.\n\t */\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\t/**\n\t * The x value of this quaternion.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * The y value of this quaternion.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * The z value of this quaternion.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * The w value of this quaternion.\n\t *\n\t * @type {number}\n\t * @default 1\n\t */\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\t/**\n\t * Sets the quaternion components.\n\t *\n\t * @param {number} x - The x value of this quaternion.\n\t * @param {number} y - The y value of this quaternion.\n\t * @param {number} z - The z value of this quaternion.\n\t * @param {number} w - The w value of this quaternion.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Returns a new quaternion with copied values from this instance.\n\t *\n\t * @return {Quaternion} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._w );\n\n\t}\n\n\t/**\n\t * Copies the values of the given quaternion to this instance.\n\t *\n\t * @param {Quaternion} quaternion - The quaternion to copy.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Sets this quaternion from the rotation specified by the given\n\t * Euler angles.\n\t *\n\t * @param {Euler} euler - The Euler angles.\n\t * @param {boolean} [update=true] - Whether the internal `onChange` callback should be executed or not.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Sets this quaternion from the given axis and angle.\n\t *\n\t * @param {Vector3} axis - The normalized axis.\n\t * @param {number} angle - The angle in radians.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\n\tsetFromAxisAngle( axis, angle ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\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\t/**\n\t * Sets this quaternion from the given rotation matrix.\n\t *\n\t * @param {Matrix4} m - A 4x4 matrix of which the upper 3x3 of matrix is a pure rotation matrix (i.e. unscaled).\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Sets this quaternion to the rotation required to rotate the direction vector\n\t * `vFrom` to the direction vector `vTo`.\n\t *\n\t * @param {Vector3} vFrom - The first (normalized) direction vector.\n\t * @param {Vector3} vTo - The second (normalized) direction vector.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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 < 1e-8 ) { // the epsilon value has been discussed in #31286\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\t/**\n\t * Returns the angle between this quaternion and the given one in radians.\n\t *\n\t * @param {Quaternion} q - The quaternion to compute the angle with.\n\t * @return {number} The angle in radians.\n\t */\n\tangleTo( q ) {\n\n\t\treturn 2 * Math.acos( Math.abs( clamp( this.dot( q ), -1, 1 ) ) );\n\n\t}\n\n\t/**\n\t * Rotates this quaternion by a given angular step to the given quaternion.\n\t * The method ensures that the final quaternion will not overshoot `q`.\n\t *\n\t * @param {Quaternion} q - The target quaternion.\n\t * @param {number} step - The angular step in radians.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Sets this quaternion to the identity quaternion; that is, to the\n\t * quaternion that represents \"no rotation\".\n\t *\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\n\tidentity() {\n\n\t\treturn this.set( 0, 0, 0, 1 );\n\n\t}\n\n\t/**\n\t * Inverts this quaternion via {@link Quaternion#conjugate}. The\n\t * quaternion is assumed to have unit length.\n\t *\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\n\tinvert() {\n\n\t\treturn this.conjugate();\n\n\t}\n\n\t/**\n\t * Returns the rotational conjugate of this quaternion. The conjugate of a\n\t * quaternion represents the same rotation in the opposite direction about\n\t * the rotational axis.\n\t *\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Calculates the dot product of this quaternion and the given one.\n\t *\n\t * @param {Quaternion} v - The quaternion to compute the dot product with.\n\t * @return {number} The result of the dot product.\n\t */\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\t/**\n\t * Computes the squared Euclidean length (straight-line length) of this quaternion,\n\t * considered as a 4 dimensional vector. This can be useful if you are comparing the\n\t * lengths of two quaternions, as this is a slightly more efficient calculation than\n\t * {@link Quaternion#length}.\n\t *\n\t * @return {number} The squared Euclidean length.\n\t */\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\t/**\n\t * Computes the Euclidean length (straight-line length) of this quaternion,\n\t * considered as a 4 dimensional vector.\n\t *\n\t * @return {number} The Euclidean length.\n\t */\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\t/**\n\t * Normalizes this quaternion - that is, calculated the quaternion that performs\n\t * the same rotation as this one, but has a length equal to `1`.\n\t *\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Multiplies this quaternion by the given one.\n\t *\n\t * @param {Quaternion} q - The quaternion.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\n\tmultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( this, q );\n\n\t}\n\n\t/**\n\t * Pre-multiplies this quaternion by the given one.\n\t *\n\t * @param {Quaternion} q - The quaternion.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\n\tpremultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( q, this );\n\n\t}\n\n\t/**\n\t * Multiplies the given quaternions and stores the result in this instance.\n\t *\n\t * @param {Quaternion} a - The first quaternion.\n\t * @param {Quaternion} b - The second quaternion.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Performs a spherical linear interpolation between quaternions.\n\t *\n\t * @param {Quaternion} qb - The target quaternion.\n\t * @param {number} t - The interpolation factor in the closed interval `[0, 1]`.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Performs a spherical linear interpolation between the given quaternions\n\t * and stores the result in this quaternion.\n\t *\n\t * @param {Quaternion} qa - The source quaternion.\n\t * @param {Quaternion} qb - The target quaternion.\n\t * @param {number} t - The interpolation factor in the closed interval `[0, 1]`.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\n\tslerpQuaternions( qa, qb, t ) {\n\n\t\treturn this.copy( qa ).slerp( qb, t );\n\n\t}\n\n\t/**\n\t * Sets this quaternion to a uniformly random, normalized quaternion.\n\t *\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\n\trandom() {\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\t/**\n\t * Returns `true` if this quaternion is equal with the given one.\n\t *\n\t * @param {Quaternion} quaternion - The quaternion to test for equality.\n\t * @return {boolean} Whether this quaternion is equal with the given one.\n\t */\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\t/**\n\t * Sets this quaternion's components from the given array.\n\t *\n\t * @param {Array} array - An array holding the quaternion component values.\n\t * @param {number} [offset=0] - The offset into the array.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Writes the components of this quaternion to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the quaternion components.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The quaternion components.\n\t */\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\t/**\n\t * Sets the components of this quaternion from the given buffer attribute.\n\t *\n\t * @param {BufferAttribute} attribute - The buffer attribute holding quaternion data.\n\t * @param {number} index - The index into the attribute.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * This methods defines the serialization result of this class. Returns the\n\t * numerical elements of this quaternion in an array of format `[x, y, z, w]`.\n\t *\n\t * @return {Array} The serialized quaternion.\n\t */\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\n/**\n * Class representing a 3D vector. A 3D vector is an ordered triplet of numbers\n * (labeled x, y and z), which can be used to represent a number of things, such as:\n *\n * - A point in 3D space.\n * - A direction and length in 3D space. In three.js the length will\n * always be the Euclidean distance(straight-line distance) from `(0, 0, 0)` to `(x, y, z)`\n * and the direction is also measured from `(0, 0, 0)` towards `(x, y, z)`.\n * - Any arbitrary ordered triplet of numbers.\n *\n * There are other things a 3D vector can be used to represent, such as\n * momentum vectors and so on, however these are the most\n * common uses in three.js.\n *\n * Iterating through a vector instance will yield its components `(x, y, z)` in\n * the corresponding order.\n * ```js\n * const a = new THREE.Vector3( 0, 1, 0 );\n *\n * //no arguments; will be initialised to (0, 0, 0)\n * const b = new THREE.Vector3( );\n *\n * const d = a.distanceTo( b );\n * ```\n */\nclass Vector3 {\n\n\t/**\n\t * Constructs a new 3D vector.\n\t *\n\t * @param {number} [x=0] - The x value of this vector.\n\t * @param {number} [y=0] - The y value of this vector.\n\t * @param {number} [z=0] - The z value of this vector.\n\t */\n\tconstructor( x = 0, y = 0, z = 0 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tVector3.prototype.isVector3 = true;\n\n\t\t/**\n\t\t * The x value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.x = x;\n\n\t\t/**\n\t\t * The y value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.y = y;\n\n\t\t/**\n\t\t * The z value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.z = z;\n\n\t}\n\n\t/**\n\t * Sets the vector components.\n\t *\n\t * @param {number} x - The value of the x component.\n\t * @param {number} y - The value of the y component.\n\t * @param {number} z - The value of the z component.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components to the same value.\n\t *\n\t * @param {number} scalar - The value to set for all vector components.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector's x component to the given value\n\t *\n\t * @param {number} x - The value to set.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the vector's y component to the given value\n\t *\n\t * @param {number} y - The value to set.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the vector's z component to the given value\n\t *\n\t * @param {number} z - The value to set.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Allows to set a vector component with an index.\n\t *\n\t * @param {number} index - The component index. `0` equals to x, `1` equals to y, `2` equals to z.\n\t * @param {number} value - The value to set.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Returns the value of the vector component which matches the given index.\n\t *\n\t * @param {number} index - The component index. `0` equals to x, `1` equals to y, `2` equals to z.\n\t * @return {number} A vector component value.\n\t */\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\t/**\n\t * Returns a new vector with copied values from this instance.\n\t *\n\t * @return {Vector3} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z );\n\n\t}\n\n\t/**\n\t * Copies the values of the given vector to this instance.\n\t *\n\t * @param {Vector3} v - The vector to copy.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vector to this instance.\n\t *\n\t * @param {Vector3} v - The vector to add.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given scalar value to all components of this instance.\n\t *\n\t * @param {number} s - The scalar to add.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vectors and stores the result in this instance.\n\t *\n\t * @param {Vector3} a - The first vector.\n\t * @param {Vector3} b - The second vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vector scaled by the given factor to this instance.\n\t *\n\t * @param {Vector3|Vector4} v - The vector.\n\t * @param {number} s - The factor that scales `v`.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given vector from this instance.\n\t *\n\t * @param {Vector3} v - The vector to subtract.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given scalar value from all components of this instance.\n\t *\n\t * @param {number} s - The scalar to subtract.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given vectors and stores the result in this instance.\n\t *\n\t * @param {Vector3} a - The first vector.\n\t * @param {Vector3} b - The second vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies the given vector with this instance.\n\t *\n\t * @param {Vector3} v - The vector to multiply.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies the given scalar value with all components of this instance.\n\t *\n\t * @param {number} scalar - The scalar to multiply.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies the given vectors and stores the result in this instance.\n\t *\n\t * @param {Vector3} a - The first vector.\n\t * @param {Vector3} b - The second vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Applies the given Euler rotation to this vector.\n\t *\n\t * @param {Euler} euler - The Euler angles.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tapplyEuler( euler ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromEuler( euler ) );\n\n\t}\n\n\t/**\n\t * Applies a rotation specified by an axis and an angle to this vector.\n\t *\n\t * @param {Vector3} axis - A normalized vector representing the rotation axis.\n\t * @param {number} angle - The angle in radians.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tapplyAxisAngle( axis, angle ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromAxisAngle( axis, angle ) );\n\n\t}\n\n\t/**\n\t * Multiplies this vector with the given 3x3 matrix.\n\t *\n\t * @param {Matrix3} m - The 3x3 matrix.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies this vector by the given normal matrix and normalizes\n\t * the result.\n\t *\n\t * @param {Matrix3} m - The normal matrix.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tapplyNormalMatrix( m ) {\n\n\t\treturn this.applyMatrix3( m ).normalize();\n\n\t}\n\n\t/**\n\t * Multiplies this vector (with an implicit 1 in the 4th dimension) by m, and\n\t * divides by perspective.\n\t *\n\t * @param {Matrix4} m - The matrix to apply.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Applies the given Quaternion to this vector.\n\t *\n\t * @param {Quaternion} q - The Quaternion.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Projects this vector from world space into the camera's normalized\n\t * device coordinate (NDC) space.\n\t *\n\t * @param {Camera} camera - The camera.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.matrixWorldInverse ).applyMatrix4( camera.projectionMatrix );\n\n\t}\n\n\t/**\n\t * Unprojects this vector from the camera's normalized device coordinate (NDC)\n\t * space into world space.\n\t *\n\t * @param {Camera} camera - The camera.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tunproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.projectionMatrixInverse ).applyMatrix4( camera.matrixWorld );\n\n\t}\n\n\t/**\n\t * Transforms the direction of this vector by a matrix (the upper left 3 x 3\n\t * subset of the given 4x4 matrix and then normalizes the result.\n\t *\n\t * @param {Matrix4} m - The matrix.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Divides this instance by the given vector.\n\t *\n\t * @param {Vector3} v - The vector to divide.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Divides this vector by the given scalar.\n\t *\n\t * @param {number} scalar - The scalar to divide.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\t/**\n\t * If this vector's x, y or z value is greater than the given vector's x, y or z\n\t * value, replace that value with the corresponding min value.\n\t *\n\t * @param {Vector3} v - The vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x, y or z value is less than the given vector's x, y or z\n\t * value, replace that value with the corresponding max value.\n\t *\n\t * @param {Vector3} v - The vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x, y or z value is greater than the max vector's x, y or z\n\t * value, it is replaced by the corresponding value.\n\t * If this vector's x, y or z value is less than the min vector's x, y or z value,\n\t * it is replaced by the corresponding value.\n\t *\n\t * @param {Vector3} min - The minimum x, y and z values.\n\t * @param {Vector3} max - The maximum x, y and z values in the desired range.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = clamp( this.x, min.x, max.x );\n\t\tthis.y = clamp( this.y, min.y, max.y );\n\t\tthis.z = clamp( this.z, min.z, max.z );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * If this vector's x, y or z values are greater than the max value, they are\n\t * replaced by the max value.\n\t * If this vector's x, y or z values are less than the min value, they are\n\t * replaced by the min value.\n\t *\n\t * @param {number} minVal - The minimum value the components will be clamped to.\n\t * @param {number} maxVal - The maximum value the components will be clamped to.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = clamp( this.x, minVal, maxVal );\n\t\tthis.y = clamp( this.y, minVal, maxVal );\n\t\tthis.z = clamp( this.z, minVal, maxVal );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * If this vector's length is greater than the max value, it is replaced by\n\t * the max value.\n\t * If this vector's length is less than the min value, it is replaced by the\n\t * min value.\n\t *\n\t * @param {number} min - The minimum value the vector length will be clamped to.\n\t * @param {number} max - The maximum value the vector length will be clamped to.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( clamp( length, min, max ) );\n\n\t}\n\n\t/**\n\t * The components of this vector are rounded down to the nearest integer value.\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded up to the nearest integer value.\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded to the nearest integer value\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded towards zero (up if negative,\n\t * down if positive) to an integer value.\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Inverts this vector - i.e. sets x = -x, y = -y and z = -z.\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Calculates the dot product of the given vector with this instance.\n\t *\n\t * @param {Vector3} v - The vector to compute the dot product with.\n\t * @return {number} The result of the dot product.\n\t */\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\t/**\n\t * Computes the square of the Euclidean length (straight-line length) from\n\t * (0, 0, 0) to (x, y, z). If you are comparing the lengths of vectors, you should\n\t * compare the length squared instead as it is slightly more efficient to calculate.\n\t *\n\t * @return {number} The square length of this vector.\n\t */\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\n\n\t}\n\n\t/**\n\t * Computes the Euclidean length (straight-line length) from (0, 0, 0) to (x, y, z).\n\t *\n\t * @return {number} The length of this vector.\n\t */\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\t/**\n\t * Computes the Manhattan length of this vector.\n\t *\n\t * @return {number} The length of this vector.\n\t */\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z );\n\n\t}\n\n\t/**\n\t * Converts this vector to a unit vector - that is, sets it equal to a vector\n\t * with the same direction as this one, but with a vector length of `1`.\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\t/**\n\t * Sets this vector to a vector with the same direction as this one, but\n\t * with the specified length.\n\t *\n\t * @param {number} length - The new length of this vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\t/**\n\t * Linearly interpolates between the given vector and this instance, where\n\t * alpha is the percent distance along the line - alpha = 0 will be this\n\t * vector, and alpha = 1 will be the given one.\n\t *\n\t * @param {Vector3} v - The vector to interpolate towards.\n\t * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Linearly interpolates between the given vectors, where alpha is the percent\n\t * distance along the line - alpha = 0 will be first vector, and alpha = 1 will\n\t * be the second one. The result is stored in this instance.\n\t *\n\t * @param {Vector3} v1 - The first vector.\n\t * @param {Vector3} v2 - The second vector.\n\t * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Calculates the cross product of the given vector with this instance.\n\t *\n\t * @param {Vector3} v - The vector to compute the cross product with.\n\t * @return {Vector3} The result of the cross product.\n\t */\n\tcross( v ) {\n\n\t\treturn this.crossVectors( this, v );\n\n\t}\n\n\t/**\n\t * Calculates the cross product of the given vectors and stores the result\n\t * in this instance.\n\t *\n\t * @param {Vector3} a - The first vector.\n\t * @param {Vector3} b - The second vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Projects this vector onto the given one.\n\t *\n\t * @param {Vector3} v - The vector to project to.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Projects this vector onto a plane by subtracting this\n\t * vector projected onto the plane's normal from this vector.\n\t *\n\t * @param {Vector3} planeNormal - The plane normal.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Reflects this vector off a plane orthogonal to the given normal vector.\n\t *\n\t * @param {Vector3} normal - The (normalized) normal vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\treflect( normal ) {\n\n\t\treturn this.sub( _vector$c.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) );\n\n\t}\n\t/**\n\t * Returns the angle between the given vector and this instance in radians.\n\t *\n\t * @param {Vector3} v - The vector to compute the angle with.\n\t * @return {number} The angle in radians.\n\t */\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\t/**\n\t * Computes the distance from the given vector to this instance.\n\t *\n\t * @param {Vector3} v - The vector to compute the distance to.\n\t * @return {number} The distance.\n\t */\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\t/**\n\t * Computes the squared distance from the given vector to this instance.\n\t * If you are just comparing the distance with another distance, you should compare\n\t * the distance squared instead as it is slightly more efficient to calculate.\n\t *\n\t * @param {Vector3} v - The vector to compute the squared distance to.\n\t * @return {number} The squared distance.\n\t */\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\t/**\n\t * Computes the Manhattan distance from the given vector to this instance.\n\t *\n\t * @param {Vector3} v - The vector to compute the Manhattan distance to.\n\t * @return {number} The Manhattan distance.\n\t */\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\t/**\n\t * Sets the vector components from the given spherical coordinates.\n\t *\n\t * @param {Spherical} s - The spherical coordinates.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetFromSpherical( s ) {\n\n\t\treturn this.setFromSphericalCoords( s.radius, s.phi, s.theta );\n\n\t}\n\n\t/**\n\t * Sets the vector components from the given spherical coordinates.\n\t *\n\t * @param {number} radius - The radius.\n\t * @param {number} phi - The phi angle in radians.\n\t * @param {number} theta - The theta angle in radians.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components from the given cylindrical coordinates.\n\t *\n\t * @param {Cylindrical} c - The cylindrical coordinates.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetFromCylindrical( c ) {\n\n\t\treturn this.setFromCylindricalCoords( c.radius, c.theta, c.y );\n\n\t}\n\n\t/**\n\t * Sets the vector components from the given cylindrical coordinates.\n\t *\n\t * @param {number} radius - The radius.\n\t * @param {number} theta - The theta angle in radians.\n\t * @param {number} y - The y value.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components to the position elements of the\n\t * given transformation matrix.\n\t *\n\t * @param {Matrix4} m - The 4x4 matrix.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components to the scale elements of the\n\t * given transformation matrix.\n\t *\n\t * @param {Matrix4} m - The 4x4 matrix.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components from the specified matrix column.\n\t *\n\t * @param {Matrix4} m - The 4x4 matrix.\n\t * @param {number} index - The column index.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetFromMatrixColumn( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 4 );\n\n\t}\n\n\t/**\n\t * Sets the vector components from the specified matrix column.\n\t *\n\t * @param {Matrix3} m - The 3x3 matrix.\n\t * @param {number} index - The column index.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetFromMatrix3Column( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 3 );\n\n\t}\n\n\t/**\n\t * Sets the vector components from the given Euler angles.\n\t *\n\t * @param {Euler} e - The Euler angles to set.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components from the RGB components of the\n\t * given color.\n\t *\n\t * @param {Color} c - The color to set.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Returns `true` if this vector is equal with the given one.\n\t *\n\t * @param {Vector3} v - The vector to test for equality.\n\t * @return {boolean} Whether this vector is equal with the given one.\n\t */\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) );\n\n\t}\n\n\t/**\n\t * Sets this vector's x value to be `array[ offset ]`, y value to be `array[ offset + 1 ]`\n\t * and z value to be `array[ offset + 2 ]`.\n\t *\n\t * @param {Array} array - An array holding the vector component values.\n\t * @param {number} [offset=0] - The offset into the array.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Writes the components of this vector to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the vector components.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The vector components.\n\t */\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\t/**\n\t * Sets the components of this vector from the given buffer attribute.\n\t *\n\t * @param {BufferAttribute} attribute - The buffer attribute holding vector data.\n\t * @param {number} index - The index into the attribute.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets each component of this vector to a pseudo-random value between `0` and\n\t * `1`, excluding `1`.\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets this vector to a uniformly random point on a unit sphere.\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\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\n/**\n * Represents a 3x3 matrix.\n *\n * A Note on Row-Major and Column-Major Ordering:\n *\n * The constructor and {@link Matrix3#set} method take arguments in\n * [row-major]{@link https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order}\n * order, while internally they are stored in the {@link Matrix3#elements} array in column-major order.\n * This means that calling:\n * ```js\n * const m = new THREE.Matrix();\n * m.set( 11, 12, 13,\n * 21, 22, 23,\n * 31, 32, 33 );\n * ```\n * will result in the elements array containing:\n * ```js\n * m.elements = [ 11, 21, 31,\n * 12, 22, 32,\n * 13, 23, 33 ];\n * ```\n * and internally all calculations are performed using column-major ordering.\n * However, as the actual ordering makes no difference mathematically and\n * most people are used to thinking about matrices in row-major order, the\n * three.js documentation shows matrices in row-major order. Just bear in\n * mind that if you are reading the source code, you'll have to take the\n * transpose of any matrices outlined here to make sense of the calculations.\n */\nclass Matrix3 {\n\n\t/**\n\t * Constructs a new 3x3 matrix. The arguments are supposed to be\n\t * in row-major order. If no arguments are provided, the constructor\n\t * initializes the matrix as an identity matrix.\n\t *\n\t * @param {number} [n11] - 1-1 matrix element.\n\t * @param {number} [n12] - 1-2 matrix element.\n\t * @param {number} [n13] - 1-3 matrix element.\n\t * @param {number} [n21] - 2-1 matrix element.\n\t * @param {number} [n22] - 2-2 matrix element.\n\t * @param {number} [n23] - 2-3 matrix element.\n\t * @param {number} [n31] - 3-1 matrix element.\n\t * @param {number} [n32] - 3-2 matrix element.\n\t * @param {number} [n33] - 3-3 matrix element.\n\t */\n\tconstructor( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tMatrix3.prototype.isMatrix3 = true;\n\n\t\t/**\n\t\t * A column-major list of matrix values.\n\t\t *\n\t\t * @type {Array}\n\t\t */\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\t/**\n\t * Sets the elements of the matrix.The arguments are supposed to be\n\t * in row-major order.\n\t *\n\t * @param {number} [n11] - 1-1 matrix element.\n\t * @param {number} [n12] - 1-2 matrix element.\n\t * @param {number} [n13] - 1-3 matrix element.\n\t * @param {number} [n21] - 2-1 matrix element.\n\t * @param {number} [n22] - 2-2 matrix element.\n\t * @param {number} [n23] - 2-3 matrix element.\n\t * @param {number} [n31] - 3-1 matrix element.\n\t * @param {number} [n32] - 3-2 matrix element.\n\t * @param {number} [n33] - 3-3 matrix element.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix to the 3x3 identity matrix.\n\t *\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Copies the values of the given matrix to this instance.\n\t *\n\t * @param {Matrix3} m - The matrix to copy.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Extracts the basis of this matrix into the three axis vectors provided.\n\t *\n\t * @param {Vector3} xAxis - The basis's x axis.\n\t * @param {Vector3} yAxis - The basis's y axis.\n\t * @param {Vector3} zAxis - The basis's z axis.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Set this matrix to the upper 3x3 matrix of the given 4x4 matrix.\n\t *\n\t * @param {Matrix4} m - The 4x4 matrix.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Post-multiplies this matrix by the given 3x3 matrix.\n\t *\n\t * @param {Matrix3} m - The matrix to multiply with.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\t/**\n\t * Pre-multiplies this matrix by the given 3x3 matrix.\n\t *\n\t * @param {Matrix3} m - The matrix to multiply with.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\t/**\n\t * Multiples the given 3x3 matrices and stores the result\n\t * in this matrix.\n\t *\n\t * @param {Matrix3} a - The first matrix.\n\t * @param {Matrix3} b - The second matrix.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Multiplies every component of the matrix by the given scalar.\n\t *\n\t * @param {number} s - The scalar.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Computes and returns the determinant of this matrix.\n\t *\n\t * @return {number} The determinant.\n\t */\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\t/**\n\t * Inverts this matrix, using the [analytic method]{@link https://en.wikipedia.org/wiki/Invertible_matrix#Analytic_solution}.\n\t * You can not invert with a determinant of zero. If you attempt this, the method produces\n\t * a zero matrix instead.\n\t *\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Transposes this matrix in place.\n\t *\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Computes the normal matrix which is the inverse transpose of the upper\n\t * left 3x3 portion of the given 4x4 matrix.\n\t *\n\t * @param {Matrix4} matrix4 - The 4x4 matrix.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\n\tgetNormalMatrix( matrix4 ) {\n\n\t\treturn this.setFromMatrix4( matrix4 ).invert().transpose();\n\n\t}\n\n\t/**\n\t * Transposes this matrix into the supplied array, and returns itself unchanged.\n\t *\n\t * @param {Array} r - An array to store the transposed matrix elements.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Sets the UV transform matrix from offset, repeat, rotation, and center.\n\t *\n\t * @param {number} tx - Offset x.\n\t * @param {number} ty - Offset y.\n\t * @param {number} sx - Repeat x.\n\t * @param {number} sy - Repeat y.\n\t * @param {number} rotation - Rotation, in radians. Positive values rotate counterclockwise.\n\t * @param {number} cx - Center x of rotation.\n\t * @param {number} cy - Center y of rotation\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t * Scales this matrix with the given scalar values.\n\t *\n\t * @param {number} sx - The amount to scale in the X axis.\n\t * @param {number} sy - The amount to scale in the Y axis.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\n\tscale( sx, sy ) {\n\n\t\tthis.premultiply( _m3.makeScale( sx, sy ) );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Rotates this matrix by the given angle.\n\t *\n\t * @param {number} theta - The rotation in radians.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\n\trotate( theta ) {\n\n\t\tthis.premultiply( _m3.makeRotation( - theta ) );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Translates this matrix by the given scalar values.\n\t *\n\t * @param {number} tx - The amount to translate in the X axis.\n\t * @param {number} ty - The amount to translate in the Y axis.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a 2D translation transform.\n\t *\n\t * @param {number|Vector2} x - The amount to translate in the X axis or alternatively a translation vector.\n\t * @param {number} y - The amount to translate in the Y axis.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a 2D rotational transformation.\n\t *\n\t * @param {number} theta - The rotation in radians.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a 2D scale transform.\n\t *\n\t * @param {number} x - The amount to scale in the X axis.\n\t * @param {number} y - The amount to scale in the Y axis.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t * Returns `true` if this matrix is equal with the given one.\n\t *\n\t * @param {Matrix3} matrix - The matrix to test for equality.\n\t * @return {boolean} Whether this matrix is equal with the given one.\n\t */\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\t/**\n\t * Sets the elements of the matrix from the given array.\n\t *\n\t * @param {Array} array - The matrix elements in column-major order.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Writes the elements of this matrix to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the matrix elements in column-major order.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The matrix elements in column-major order.\n\t */\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\t/**\n\t * Returns a matrix with copied values from this instance.\n\t *\n\t * @return {Matrix3} A clone of this instance.\n\t */\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\nconst LINEAR_REC709_TO_XYZ = /*@__PURE__*/ new Matrix3().set(\n\t0.4123908, 0.3575843, 0.1804808,\n\t0.2126390, 0.7151687, 0.0721923,\n\t0.0193308, 0.1191948, 0.9505322\n);\n\nconst XYZ_TO_LINEAR_REC709 = /*@__PURE__*/ new Matrix3().set(\n\t3.2409699, -1.5373832, -0.4986108,\n\t-0.9692436, 1.8759675, 0.0415551,\n\t0.0556301, -0.203977, 1.0569715\n);\n\nfunction createColorManagement() {\n\n\tconst ColorManagement = {\n\n\t\tenabled: true,\n\n\t\tworkingColorSpace: LinearSRGBColorSpace,\n\n\t\t/**\n\t\t * Implementations of supported color spaces.\n\t\t *\n\t\t * Required:\n\t\t *\t- primaries: chromaticity coordinates [ rx ry gx gy bx by ]\n\t\t *\t- whitePoint: reference white [ x y ]\n\t\t *\t- transfer: transfer function (pre-defined)\n\t\t *\t- toXYZ: Matrix3 RGB to XYZ transform\n\t\t *\t- fromXYZ: Matrix3 XYZ to RGB transform\n\t\t *\t- luminanceCoefficients: RGB luminance coefficients\n\t\t *\n\t\t * Optional:\n\t\t * - outputColorSpaceConfig: { drawingBufferColorSpace: ColorSpace, toneMappingMode: 'extended' | 'standard' }\n\t\t * - workingColorSpaceConfig: { unpackColorSpace: ColorSpace }\n\t\t *\n\t\t * Reference:\n\t\t * - https://www.russellcottrell.com/photo/matrixCalculator.htm\n\t\t */\n\t\tspaces: {},\n\n\t\tconvert: function ( color, sourceColorSpace, targetColorSpace ) {\n\n\t\t\tif ( this.enabled === false || sourceColorSpace === targetColorSpace || ! sourceColorSpace || ! targetColorSpace ) {\n\n\t\t\t\treturn color;\n\n\t\t\t}\n\n\t\t\tif ( this.spaces[ sourceColorSpace ].transfer === SRGBTransfer ) {\n\n\t\t\t\tcolor.r = SRGBToLinear( color.r );\n\t\t\t\tcolor.g = SRGBToLinear( color.g );\n\t\t\t\tcolor.b = SRGBToLinear( color.b );\n\n\t\t\t}\n\n\t\t\tif ( this.spaces[ sourceColorSpace ].primaries !== this.spaces[ targetColorSpace ].primaries ) {\n\n\t\t\t\tcolor.applyMatrix3( this.spaces[ sourceColorSpace ].toXYZ );\n\t\t\t\tcolor.applyMatrix3( this.spaces[ targetColorSpace ].fromXYZ );\n\n\t\t\t}\n\n\t\t\tif ( this.spaces[ targetColorSpace ].transfer === SRGBTransfer ) {\n\n\t\t\t\tcolor.r = LinearToSRGB( color.r );\n\t\t\t\tcolor.g = LinearToSRGB( color.g );\n\t\t\t\tcolor.b = LinearToSRGB( color.b );\n\n\t\t\t}\n\n\t\t\treturn color;\n\n\t\t},\n\n\t\tworkingToColorSpace: function ( color, targetColorSpace ) {\n\n\t\t\treturn this.convert( color, this.workingColorSpace, targetColorSpace );\n\n\t\t},\n\n\t\tcolorSpaceToWorking: function ( color, sourceColorSpace ) {\n\n\t\t\treturn this.convert( color, sourceColorSpace, this.workingColorSpace );\n\n\t\t},\n\n\t\tgetPrimaries: function ( colorSpace ) {\n\n\t\t\treturn this.spaces[ colorSpace ].primaries;\n\n\t\t},\n\n\t\tgetTransfer: function ( colorSpace ) {\n\n\t\t\tif ( colorSpace === NoColorSpace ) return LinearTransfer;\n\n\t\t\treturn this.spaces[ colorSpace ].transfer;\n\n\t\t},\n\n\t\tgetToneMappingMode: function ( colorSpace ) {\n\n\t\t\treturn this.spaces[ colorSpace ].outputColorSpaceConfig.toneMappingMode || 'standard';\n\n\t\t},\n\n\t\tgetLuminanceCoefficients: function ( target, colorSpace = this.workingColorSpace ) {\n\n\t\t\treturn target.fromArray( this.spaces[ colorSpace ].luminanceCoefficients );\n\n\t\t},\n\n\t\tdefine: function ( colorSpaces ) {\n\n\t\t\tObject.assign( this.spaces, colorSpaces );\n\n\t\t},\n\n\t\t// Internal APIs\n\n\t\t_getMatrix: function ( targetMatrix, sourceColorSpace, targetColorSpace ) {\n\n\t\t\treturn targetMatrix\n\t\t\t\t.copy( this.spaces[ sourceColorSpace ].toXYZ )\n\t\t\t\t.multiply( this.spaces[ targetColorSpace ].fromXYZ );\n\n\t\t},\n\n\t\t_getDrawingBufferColorSpace: function ( colorSpace ) {\n\n\t\t\treturn this.spaces[ colorSpace ].outputColorSpaceConfig.drawingBufferColorSpace;\n\n\t\t},\n\n\t\t_getUnpackColorSpace: function ( colorSpace = this.workingColorSpace ) {\n\n\t\t\treturn this.spaces[ colorSpace ].workingColorSpaceConfig.unpackColorSpace;\n\n\t\t},\n\n\t\t// Deprecated\n\n\t\tfromWorkingColorSpace: function ( color, targetColorSpace ) {\n\n\t\t\twarnOnce( 'THREE.ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace().' ); // @deprecated, r177\n\n\t\t\treturn ColorManagement.workingToColorSpace( color, targetColorSpace );\n\n\t\t},\n\n\t\ttoWorkingColorSpace: function ( color, sourceColorSpace ) {\n\n\t\t\twarnOnce( 'THREE.ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking().' ); // @deprecated, r177\n\n\t\t\treturn ColorManagement.colorSpaceToWorking( color, sourceColorSpace );\n\n\t\t},\n\n\t};\n\n\t/******************************************************************************\n\t * sRGB definitions\n\t */\n\n\tconst REC709_PRIMARIES = [ 0.640, 0.330, 0.300, 0.600, 0.150, 0.060 ];\n\tconst REC709_LUMINANCE_COEFFICIENTS = [ 0.2126, 0.7152, 0.0722 ];\n\tconst D65 = [ 0.3127, 0.3290 ];\n\n\tColorManagement.define( {\n\n\t\t[ LinearSRGBColorSpace ]: {\n\t\t\tprimaries: REC709_PRIMARIES,\n\t\t\twhitePoint: D65,\n\t\t\ttransfer: LinearTransfer,\n\t\t\ttoXYZ: LINEAR_REC709_TO_XYZ,\n\t\t\tfromXYZ: XYZ_TO_LINEAR_REC709,\n\t\t\tluminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS,\n\t\t\tworkingColorSpaceConfig: { unpackColorSpace: SRGBColorSpace },\n\t\t\toutputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace }\n\t\t},\n\n\t\t[ SRGBColorSpace ]: {\n\t\t\tprimaries: REC709_PRIMARIES,\n\t\t\twhitePoint: D65,\n\t\t\ttransfer: SRGBTransfer,\n\t\t\ttoXYZ: LINEAR_REC709_TO_XYZ,\n\t\t\tfromXYZ: XYZ_TO_LINEAR_REC709,\n\t\t\tluminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS,\n\t\t\toutputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace }\n\t\t},\n\n\t} );\n\n\treturn ColorManagement;\n\n}\n\nconst ColorManagement = /*@__PURE__*/ createColorManagement();\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\n/**\n * A class containing utility functions for images.\n *\n * @hideconstructor\n */\nclass ImageUtils {\n\n\t/**\n\t * Returns a data URI containing a representation of the given image.\n\t *\n\t * @param {(HTMLImageElement|HTMLCanvasElement)} image - The image object.\n\t * @param {string} [type='image/png'] - Indicates the image format.\n\t * @return {string} The data URI.\n\t */\n\tstatic getDataURL( image, type = 'image/png' ) {\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\treturn canvas.toDataURL( type );\n\n\t}\n\n\t/**\n\t * Converts the given sRGB image data to linear color space.\n\t *\n\t * @param {(HTMLImageElement|HTMLCanvasElement|ImageBitmap|Object)} image - The image object.\n\t * @return {HTMLCanvasElement|Object} The converted image.\n\t */\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\n/**\n * Represents the data source of a texture.\n *\n * The main purpose of this class is to decouple the data definition from the texture\n * definition so the same data can be used with multiple texture instances.\n */\nclass Source {\n\n\t/**\n\t * Constructs a new video texture.\n\t *\n\t * @param {any} [data=null] - The data definition of a texture.\n\t */\n\tconstructor( data = null ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSource = true;\n\n\t\t/**\n\t\t * The ID of the source.\n\t\t *\n\t\t * @name Source#id\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tObject.defineProperty( this, 'id', { value: _sourceId ++ } );\n\n\t\t/**\n\t\t * The UUID of the source.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t\t/**\n\t\t * The data definition of a texture.\n\t\t *\n\t\t * @type {any}\n\t\t */\n\t\tthis.data = data;\n\n\t\t/**\n\t\t * This property is only relevant when {@link Source#needsUpdate} is set to `true` and\n\t\t * provides more control on how texture data should be processed. When `dataReady` is set\n\t\t * to `false`, the engine performs the memory allocation (if necessary) but does not transfer\n\t\t * the data into the GPU memory.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.dataReady = true;\n\n\t\t/**\n\t\t * This starts at `0` and counts how many times {@link Source#needsUpdate} is set to `true`.\n\t\t *\n\t\t * @type {number}\n\t\t * @readonly\n\t\t * @default 0\n\t\t */\n\t\tthis.version = 0;\n\n\t}\n\n\t/**\n\t * Returns the dimensions of the source into the given target vector.\n\t *\n\t * @param {(Vector2|Vector3)} target - The target object the result is written into.\n\t * @return {(Vector2|Vector3)} The dimensions of the source.\n\t */\n\tgetSize( target ) {\n\n\t\tconst data = this.data;\n\n\t\tif ( ( typeof HTMLVideoElement !== 'undefined' ) && ( data instanceof HTMLVideoElement ) ) {\n\n\t\t\ttarget.set( data.videoWidth, data.videoHeight, 0 );\n\n\t\t} else if ( data instanceof VideoFrame ) {\n\n\t\t\ttarget.set( data.displayHeight, data.displayWidth, 0 );\n\n\t\t} else if ( data !== null ) {\n\n\t\t\ttarget.set( data.width, data.height, data.depth || 0 );\n\n\t\t} else {\n\n\t\t\ttarget.set( 0, 0, 0 );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\t/**\n\t * When the property is set to `true`, the engine allocates the memory\n\t * for the texture (if necessary) and triggers the actual texture upload\n\t * to the GPU next time the source is used.\n\t *\n\t * @type {boolean}\n\t * @default false\n\t * @param {boolean} value\n\t */\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\t/**\n\t * Serializes the source into JSON.\n\t *\n\t * @param {?(Object|string)} meta - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized source.\n\t * @see {@link ObjectLoader#parse}\n\t */\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\nconst _tempVec3 = /*@__PURE__*/ new Vector3();\n\n/**\n * Base class for all textures.\n *\n * Note: After the initial use of a texture, its dimensions, format, and type\n * cannot be changed. Instead, call {@link Texture#dispose} on the texture and instantiate a new one.\n *\n * @augments EventDispatcher\n */\nclass Texture extends EventDispatcher {\n\n\t/**\n\t * Constructs a new texture.\n\t *\n\t * @param {?Object} [image=Texture.DEFAULT_IMAGE] - The image holding the texture data.\n\t * @param {number} [mapping=Texture.DEFAULT_MAPPING] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=LinearFilter] - The mag filter value.\n\t * @param {number} [minFilter=LinearMipmapLinearFilter] - The min filter value.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t * @param {string} [colorSpace=NoColorSpace] - The color space.\n\t */\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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isTexture = true;\n\n\t\t/**\n\t\t * The ID of the texture.\n\t\t *\n\t\t * @name Texture#id\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tObject.defineProperty( this, 'id', { value: _textureId ++ } );\n\n\t\t/**\n\t\t * The UUID of the material.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t\t/**\n\t\t * The name of the material.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The data definition of a texture. A reference to the data source can be\n\t\t * shared across textures. This is often useful in context of spritesheets\n\t\t * where multiple textures render the same data but with different texture\n\t\t * transformations.\n\t\t *\n\t\t * @type {Source}\n\t\t */\n\t\tthis.source = new Source( image );\n\n\t\t/**\n\t\t * An array holding user-defined mipmaps.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.mipmaps = [];\n\n\t\t/**\n\t\t * How the texture is applied to the object. The value `UVMapping`\n\t\t * is the default, where texture or uv coordinates are used to apply the map.\n\t\t *\n\t\t * @type {(UVMapping|CubeReflectionMapping|CubeRefractionMapping|EquirectangularReflectionMapping|EquirectangularRefractionMapping|CubeUVReflectionMapping)}\n\t\t * @default UVMapping\n\t\t*/\n\t\tthis.mapping = mapping;\n\n\t\t/**\n\t\t * Lets you select the uv attribute to map the texture to. `0` for `uv`,\n\t\t * `1` for `uv1`, `2` for `uv2` and `3` for `uv3`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.channel = 0;\n\n\t\t/**\n\t\t * This defines how the texture is wrapped horizontally and corresponds to\n\t\t * *U* in UV mapping.\n\t\t *\n\t\t * @type {(RepeatWrapping|ClampToEdgeWrapping|MirroredRepeatWrapping)}\n\t\t * @default ClampToEdgeWrapping\n\t\t */\n\t\tthis.wrapS = wrapS;\n\n\t\t/**\n\t\t * This defines how the texture is wrapped horizontally and corresponds to\n\t\t * *V* in UV mapping.\n\t\t *\n\t\t * @type {(RepeatWrapping|ClampToEdgeWrapping|MirroredRepeatWrapping)}\n\t\t * @default ClampToEdgeWrapping\n\t\t */\n\t\tthis.wrapT = wrapT;\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers more than one pixel.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default LinearFilter\n\t\t */\n\t\tthis.magFilter = magFilter;\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers less than one pixel.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default LinearMipmapLinearFilter\n\t\t */\n\t\tthis.minFilter = minFilter;\n\n\t\t/**\n\t\t * The number of samples taken along the axis through the pixel that has the\n\t\t * highest density of texels. By default, this value is `1`. A higher value\n\t\t * gives a less blurry result than a basic mipmap, at the cost of more\n\t\t * texture samples being used.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.anisotropy = anisotropy;\n\n\t\t/**\n\t\t * The format of the texture.\n\t\t *\n\t\t * @type {number}\n\t\t * @default RGBAFormat\n\t\t */\n\t\tthis.format = format;\n\n\t\t/**\n\t\t * The default internal format is derived from {@link Texture#format} and {@link Texture#type} and\n\t\t * defines how the texture data is going to be stored on the GPU.\n\t\t *\n\t\t * This property allows to overwrite the default format.\n\t\t *\n\t\t * @type {?string}\n\t\t * @default null\n\t\t */\n\t\tthis.internalFormat = null;\n\n\t\t/**\n\t\t * The data type of the texture.\n\t\t *\n\t\t * @type {number}\n\t\t * @default UnsignedByteType\n\t\t */\n\t\tthis.type = type;\n\n\t\t/**\n\t\t * How much a single repetition of the texture is offset from the beginning,\n\t\t * in each direction U and V. Typical range is `0.0` to `1.0`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (0,0)\n\t\t */\n\t\tthis.offset = new Vector2( 0, 0 );\n\n\t\t/**\n\t\t * How many times the texture is repeated across the surface, in each\n\t\t * direction U and V. If repeat is set greater than `1` in either direction,\n\t\t * the corresponding wrap parameter should also be set to `RepeatWrapping`\n\t\t * or `MirroredRepeatWrapping` to achieve the desired tiling effect.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.repeat = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * The point around which rotation occurs. A value of `(0.5, 0.5)` corresponds\n\t\t * to the center of the texture. Default is `(0, 0)`, the lower left.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (0,0)\n\t\t */\n\t\tthis.center = new Vector2( 0, 0 );\n\n\t\t/**\n\t\t * How much the texture is rotated around the center point, in radians.\n\t\t * Positive values are counter-clockwise.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.rotation = 0;\n\n\t\t/**\n\t\t * Whether to update the texture's uv-transformation {@link Texture#matrix}\n\t\t * from the properties {@link Texture#offset}, {@link Texture#repeat},\n\t\t * {@link Texture#rotation}, and {@link Texture#center}.\n\t\t *\n\t\t * Set this to `false` if you are specifying the uv-transform matrix directly.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.matrixAutoUpdate = true;\n\n\t\t/**\n\t\t * The uv-transformation matrix of the texture.\n\t\t *\n\t\t * @type {Matrix3}\n\t\t */\n\t\tthis.matrix = new Matrix3();\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Set this to `false` if you are creating mipmaps manually.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.generateMipmaps = true;\n\n\t\t/**\n\t\t * If set to `true`, the alpha channel, if present, is multiplied into the\n\t\t * color channels when the texture is uploaded to the GPU.\n\t\t *\n\t\t * Note that this property has no effect when using `ImageBitmap`. You need to\n\t\t * configure premultiply alpha on bitmap creation instead.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.premultiplyAlpha = false;\n\n\t\t/**\n\t\t * If set to `true`, the texture is flipped along the vertical axis when\n\t\t * uploaded to the GPU.\n\t\t *\n\t\t * Note that this property has no effect when using `ImageBitmap`. You need to\n\t\t * configure the flip on bitmap creation instead.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.flipY = true;\n\n\t\t/**\n\t\t * Specifies the alignment requirements for the start of each pixel row in memory.\n\t\t * The allowable values are `1` (byte-alignment), `2` (rows aligned to even-numbered bytes),\n\t\t * `4` (word-alignment), and `8` (rows start on double-word boundaries).\n\t\t *\n\t\t * @type {number}\n\t\t * @default 4\n\t\t */\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\t/**\n\t\t * Textures containing color data should be annotated with `SRGBColorSpace` or `LinearSRGBColorSpace`.\n\t\t *\n\t\t * @type {string}\n\t\t * @default NoColorSpace\n\t\t */\n\t\tthis.colorSpace = colorSpace;\n\n\t\t/**\n\t\t * An object that can be used to store custom data about the texture. It\n\t\t * should not hold references to functions as these will not be cloned.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.userData = {};\n\n\t\t/**\n\t\t * This can be used to only update a subregion or specific rows of the texture (for example, just the\n\t\t * first 3 rows). Use the `addUpdateRange()` function to add ranges to this array.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.updateRanges = [];\n\n\t\t/**\n\t\t * This starts at `0` and counts how many times {@link Texture#needsUpdate} is set to `true`.\n\t\t *\n\t\t * @type {number}\n\t\t * @readonly\n\t\t * @default 0\n\t\t */\n\t\tthis.version = 0;\n\n\t\t/**\n\t\t * A callback function, called when the texture is updated (e.g., when\n\t\t * {@link Texture#needsUpdate} has been set to true and then the texture is used).\n\t\t *\n\t\t * @type {?Function}\n\t\t * @default null\n\t\t */\n\t\tthis.onUpdate = null;\n\n\t\t/**\n\t\t * An optional back reference to the textures render target.\n\t\t *\n\t\t * @type {?(RenderTarget|WebGLRenderTarget)}\n\t\t * @default null\n\t\t */\n\t\tthis.renderTarget = null;\n\n\t\t/**\n\t\t * Indicates whether a texture belongs to a render target or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default false\n\t\t */\n\t\tthis.isRenderTargetTexture = false;\n\n\t\t/**\n\t\t * Indicates if a texture should be handled like a texture array.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default false\n\t\t */\n\t\tthis.isArrayTexture = image && image.depth && image.depth > 1 ? true : false;\n\n\t\t/**\n\t\t * Indicates whether this texture should be processed by `PMREMGenerator` or not\n\t\t * (only relevant for render target textures).\n\t\t *\n\t\t * @type {number}\n\t\t * @readonly\n\t\t * @default 0\n\t\t */\n\t\tthis.pmremVersion = 0;\n\n\t}\n\n\t/**\n\t * The width of the texture in pixels.\n\t */\n\tget width() {\n\n\t\treturn this.source.getSize( _tempVec3 ).x;\n\n\t}\n\n\t/**\n\t * The height of the texture in pixels.\n\t */\n\tget height() {\n\n\t\treturn this.source.getSize( _tempVec3 ).y;\n\n\t}\n\n\t/**\n\t * The depth of the texture in pixels.\n\t */\n\tget depth() {\n\n\t\treturn this.source.getSize( _tempVec3 ).z;\n\n\t}\n\n\t/**\n\t * The image object holding the texture data.\n\t *\n\t * @type {?Object}\n\t */\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\t/**\n\t * Updates the texture transformation matrix from the from the properties {@link Texture#offset},\n\t * {@link Texture#repeat}, {@link Texture#rotation}, and {@link Texture#center}.\n\t */\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\t/**\n\t * Adds a range of data in the data texture to be updated on the GPU.\n\t *\n\t * @param {number} start - Position at which to start update.\n\t * @param {number} count - The number of components to update.\n\t */\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\t/**\n\t * Clears the update ranges.\n\t */\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\t/**\n\t * Returns a new texture with copied values from this instance.\n\t *\n\t * @return {Texture} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the values of the given texture to this instance.\n\t *\n\t * @param {Texture} source - The texture to copy.\n\t * @return {Texture} A reference to this instance.\n\t */\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.renderTarget = source.renderTarget;\n\t\tthis.isRenderTargetTexture = source.isRenderTargetTexture;\n\t\tthis.isArrayTexture = source.isArrayTexture;\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\t/**\n\t * Sets this texture's properties based on `values`.\n\t * @param {Object} values - A container with texture parameters.\n\t */\n\tsetValues( values ) {\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.Texture.setValues(): 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.Texture.setValues(): property '${ key }' does not exist.` );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( ( currentValue && newValue ) && ( currentValue.isVector2 && newValue.isVector2 ) ) {\n\n\t\t\t\tcurrentValue.copy( newValue );\n\n\t\t\t} else if ( ( currentValue && newValue ) && ( currentValue.isVector3 && newValue.isVector3 ) ) {\n\n\t\t\t\tcurrentValue.copy( newValue );\n\n\t\t\t} else if ( ( currentValue && newValue ) && ( currentValue.isMatrix3 && newValue.isMatrix3 ) ) {\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\t/**\n\t * Serializes the texture into JSON.\n\t *\n\t * @param {?(Object|string)} meta - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized texture.\n\t * @see {@link ObjectLoader#parse}\n\t */\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.7,\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t *\n\t * @fires Texture#dispose\n\t */\n\tdispose() {\n\n\t\t/**\n\t\t * Fires when the texture has been disposed of.\n\t\t *\n\t\t * @event Texture#dispose\n\t\t * @type {Object}\n\t\t */\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\t/**\n\t * Transforms the given uv vector with the textures uv transformation matrix.\n\t *\n\t * @param {Vector2} uv - The uv vector.\n\t * @return {Vector2} The transformed uv vector.\n\t */\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\t/**\n\t * Setting this property to `true` indicates the engine the texture\n\t * must be updated in the next render. This triggers a texture upload\n\t * to the GPU and ensures correct texture parameter configuration.\n\t *\n\t * @type {boolean}\n\t * @default false\n\t * @param {boolean} value\n\t */\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\t/**\n\t * Setting this property to `true` indicates the engine the PMREM\n\t * must be regenerated.\n\t *\n\t * @type {boolean}\n\t * @default false\n\t * @param {boolean} value\n\t */\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\n/**\n * The default image for all textures.\n *\n * @static\n * @type {?Image}\n * @default null\n */\nTexture.DEFAULT_IMAGE = null;\n\n/**\n * The default mapping for all textures.\n *\n * @static\n * @type {number}\n * @default UVMapping\n */\nTexture.DEFAULT_MAPPING = UVMapping;\n\n/**\n * The default anisotropy value for all textures.\n *\n * @static\n * @type {number}\n * @default 1\n */\nTexture.DEFAULT_ANISOTROPY = 1;\n\n/**\n * Class representing a 4D vector. A 4D vector is an ordered quadruplet of numbers\n * (labeled x, y, z and w), which can be used to represent a number of things, such as:\n *\n * - A point in 4D space.\n * - A direction and length in 4D space. In three.js the length will\n * always be the Euclidean distance(straight-line distance) from `(0, 0, 0, 0)` to `(x, y, z, w)`\n * and the direction is also measured from `(0, 0, 0, 0)` towards `(x, y, z, w)`.\n * - Any arbitrary ordered quadruplet of numbers.\n *\n * There are other things a 4D vector can be used to represent, however these\n * are the most common uses in *three.js*.\n *\n * Iterating through a vector instance will yield its components `(x, y, z, w)` in\n * the corresponding order.\n * ```js\n * const a = new THREE.Vector4( 0, 1, 0, 0 );\n *\n * //no arguments; will be initialised to (0, 0, 0, 1)\n * const b = new THREE.Vector4( );\n *\n * const d = a.dot( b );\n * ```\n */\nclass Vector4 {\n\n\t/**\n\t * Constructs a new 4D vector.\n\t *\n\t * @param {number} [x=0] - The x value of this vector.\n\t * @param {number} [y=0] - The y value of this vector.\n\t * @param {number} [z=0] - The z value of this vector.\n\t * @param {number} [w=1] - The w value of this vector.\n\t */\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tVector4.prototype.isVector4 = true;\n\n\t\t/**\n\t\t * The x value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.x = x;\n\n\t\t/**\n\t\t * The y value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.y = y;\n\n\t\t/**\n\t\t * The z value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.z = z;\n\n\t\t/**\n\t\t * The w value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.w = w;\n\n\t}\n\n\t/**\n\t * Alias for {@link Vector4#z}.\n\t *\n\t * @type {number}\n\t */\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\t/**\n\t * Alias for {@link Vector4#w}.\n\t *\n\t * @type {number}\n\t */\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\t/**\n\t * Sets the vector components.\n\t *\n\t * @param {number} x - The value of the x component.\n\t * @param {number} y - The value of the y component.\n\t * @param {number} z - The value of the z component.\n\t * @param {number} w - The value of the w component.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components to the same value.\n\t *\n\t * @param {number} scalar - The value to set for all vector components.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector's x component to the given value\n\t *\n\t * @param {number} x - The value to set.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the vector's y component to the given value\n\t *\n\t * @param {number} y - The value to set.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the vector's z component to the given value\n\t *\n\t * @param {number} z - The value to set.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the vector's w component to the given value\n\t *\n\t * @param {number} w - The value to set.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tsetW( w ) {\n\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Allows to set a vector component with an index.\n\t *\n\t * @param {number} index - The component index. `0` equals to x, `1` equals to y,\n\t * `2` equals to z, `3` equals to w.\n\t * @param {number} value - The value to set.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Returns the value of the vector component which matches the given index.\n\t *\n\t * @param {number} index - The component index. `0` equals to x, `1` equals to y,\n\t * `2` equals to z, `3` equals to w.\n\t * @return {number} A vector component value.\n\t */\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\t/**\n\t * Returns a new vector with copied values from this instance.\n\t *\n\t * @return {Vector4} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z, this.w );\n\n\t}\n\n\t/**\n\t * Copies the values of the given vector to this instance.\n\t *\n\t * @param {Vector3|Vector4} v - The vector to copy.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vector to this instance.\n\t *\n\t * @param {Vector4} v - The vector to add.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given scalar value to all components of this instance.\n\t *\n\t * @param {number} s - The scalar to add.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vectors and stores the result in this instance.\n\t *\n\t * @param {Vector4} a - The first vector.\n\t * @param {Vector4} b - The second vector.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vector scaled by the given factor to this instance.\n\t *\n\t * @param {Vector4} v - The vector.\n\t * @param {number} s - The factor that scales `v`.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given vector from this instance.\n\t *\n\t * @param {Vector4} v - The vector to subtract.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given scalar value from all components of this instance.\n\t *\n\t * @param {number} s - The scalar to subtract.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given vectors and stores the result in this instance.\n\t *\n\t * @param {Vector4} a - The first vector.\n\t * @param {Vector4} b - The second vector.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies the given vector with this instance.\n\t *\n\t * @param {Vector4} v - The vector to multiply.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies the given scalar value with all components of this instance.\n\t *\n\t * @param {number} scalar - The scalar to multiply.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies this vector with the given 4x4 matrix.\n\t *\n\t * @param {Matrix4} m - The 4x4 matrix.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Divides this instance by the given vector.\n\t *\n\t * @param {Vector4} v - The vector to divide.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tdivide( 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\t/**\n\t * Divides this vector by the given scalar.\n\t *\n\t * @param {number} scalar - The scalar to divide.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\t/**\n\t * Sets the x, y and z components of this\n\t * vector to the quaternion's axis and w to the angle.\n\t *\n\t * @param {Quaternion} q - The Quaternion to set.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Sets the x, y and z components of this\n\t * vector to the axis of rotation and w to the angle.\n\t *\n\t * @param {Matrix4} m - A 4x4 matrix of which the upper left 3x3 matrix is a pure rotation matrix.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components to the position elements of the\n\t * given transformation matrix.\n\t *\n\t * @param {Matrix4} m - The 4x4 matrix.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x, y, z or w value is greater than the given vector's x, y, z or w\n\t * value, replace that value with the corresponding min value.\n\t *\n\t * @param {Vector4} v - The vector.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x, y, z or w value is less than the given vector's x, y, z or w\n\t * value, replace that value with the corresponding max value.\n\t *\n\t * @param {Vector4} v - The vector.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x, y, z or w value is greater than the max vector's x, y, z or w\n\t * value, it is replaced by the corresponding value.\n\t * If this vector's x, y, z or w value is less than the min vector's x, y, z or w value,\n\t * it is replaced by the corresponding value.\n\t *\n\t * @param {Vector4} min - The minimum x, y and z values.\n\t * @param {Vector4} max - The maximum x, y and z values in the desired range.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = clamp( this.x, min.x, max.x );\n\t\tthis.y = clamp( this.y, min.y, max.y );\n\t\tthis.z = clamp( this.z, min.z, max.z );\n\t\tthis.w = clamp( this.w, min.w, max.w );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * If this vector's x, y, z or w values are greater than the max value, they are\n\t * replaced by the max value.\n\t * If this vector's x, y, z or w values are less than the min value, they are\n\t * replaced by the min value.\n\t *\n\t * @param {number} minVal - The minimum value the components will be clamped to.\n\t * @param {number} maxVal - The maximum value the components will be clamped to.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = clamp( this.x, minVal, maxVal );\n\t\tthis.y = clamp( this.y, minVal, maxVal );\n\t\tthis.z = clamp( this.z, minVal, maxVal );\n\t\tthis.w = clamp( this.w, minVal, maxVal );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * If this vector's length is greater than the max value, it is replaced by\n\t * the max value.\n\t * If this vector's length is less than the min value, it is replaced by the\n\t * min value.\n\t *\n\t * @param {number} min - The minimum value the vector length will be clamped to.\n\t * @param {number} max - The maximum value the vector length will be clamped to.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( clamp( length, min, max ) );\n\n\t}\n\n\t/**\n\t * The components of this vector are rounded down to the nearest integer value.\n\t *\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded up to the nearest integer value.\n\t *\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded to the nearest integer value\n\t *\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded towards zero (up if negative,\n\t * down if positive) to an integer value.\n\t *\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Inverts this vector - i.e. sets x = -x, y = -y, z = -z, w = -w.\n\t *\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Calculates the dot product of the given vector with this instance.\n\t *\n\t * @param {Vector4} v - The vector to compute the dot product with.\n\t * @return {number} The result of the dot product.\n\t */\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\t/**\n\t * Computes the square of the Euclidean length (straight-line length) from\n\t * (0, 0, 0, 0) to (x, y, z, w). If you are comparing the lengths of vectors, you should\n\t * compare the length squared instead as it is slightly more efficient to calculate.\n\t *\n\t * @return {number} The square length of this vector.\n\t */\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\t/**\n\t * Computes the Euclidean length (straight-line length) from (0, 0, 0, 0) to (x, y, z, w).\n\t *\n\t * @return {number} The length of this vector.\n\t */\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\t/**\n\t * Computes the Manhattan length of this vector.\n\t *\n\t * @return {number} The length of this vector.\n\t */\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\t/**\n\t * Converts this vector to a unit vector - that is, sets it equal to a vector\n\t * with the same direction as this one, but with a vector length of `1`.\n\t *\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\t/**\n\t * Sets this vector to a vector with the same direction as this one, but\n\t * with the specified length.\n\t *\n\t * @param {number} length - The new length of this vector.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\t/**\n\t * Linearly interpolates between the given vector and this instance, where\n\t * alpha is the percent distance along the line - alpha = 0 will be this\n\t * vector, and alpha = 1 will be the given one.\n\t *\n\t * @param {Vector4} v - The vector to interpolate towards.\n\t * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Linearly interpolates between the given vectors, where alpha is the percent\n\t * distance along the line - alpha = 0 will be first vector, and alpha = 1 will\n\t * be the second one. The result is stored in this instance.\n\t *\n\t * @param {Vector4} v1 - The first vector.\n\t * @param {Vector4} v2 - The second vector.\n\t * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Returns `true` if this vector is equal with the given one.\n\t *\n\t * @param {Vector4} v - The vector to test for equality.\n\t * @return {boolean} Whether this vector is equal with the given one.\n\t */\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\t/**\n\t * Sets this vector's x value to be `array[ offset ]`, y value to be `array[ offset + 1 ]`,\n\t * z value to be `array[ offset + 2 ]`, w value to be `array[ offset + 3 ]`.\n\t *\n\t * @param {Array} array - An array holding the vector component values.\n\t * @param {number} [offset=0] - The offset into the array.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Writes the components of this vector to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the vector components.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The vector components.\n\t */\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\t/**\n\t * Sets the components of this vector from the given buffer attribute.\n\t *\n\t * @param {BufferAttribute} attribute - The buffer attribute holding vector data.\n\t * @param {number} index - The index into the attribute.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Sets each component of this vector to a pseudo-random value between `0` and\n\t * `1`, excluding `1`.\n\t *\n\t * @return {Vector4} A reference to this vector.\n\t */\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 * A render target is a buffer where the video card draws pixels for a scene\n * that is being rendered in the background. It is used in different effects,\n * such as applying postprocessing to a rendered image before displaying it\n * on the screen.\n *\n * @augments EventDispatcher\n */\nclass RenderTarget extends EventDispatcher {\n\n\t/**\n\t * Render target options.\n\t *\n\t * @typedef {Object} RenderTarget~Options\n\t * @property {boolean} [generateMipmaps=false] - Whether to generate mipmaps or not.\n\t * @property {number} [magFilter=LinearFilter] - The mag filter.\n\t * @property {number} [minFilter=LinearFilter] - The min filter.\n\t * @property {number} [format=RGBAFormat] - The texture format.\n\t * @property {number} [type=UnsignedByteType] - The texture type.\n\t * @property {?string} [internalFormat=null] - The texture's internal format.\n\t * @property {number} [wrapS=ClampToEdgeWrapping] - The texture's uv wrapping mode.\n\t * @property {number} [wrapT=ClampToEdgeWrapping] - The texture's uv wrapping mode.\n\t * @property {number} [anisotropy=1] - The texture's anisotropy value.\n\t * @property {string} [colorSpace=NoColorSpace] - The texture's color space.\n\t * @property {boolean} [depthBuffer=true] - Whether to allocate a depth buffer or not.\n\t * @property {boolean} [stencilBuffer=false] - Whether to allocate a stencil buffer or not.\n\t * @property {boolean} [resolveDepthBuffer=true] - Whether to resolve the depth buffer or not.\n\t * @property {boolean} [resolveStencilBuffer=true] - Whether to resolve the stencil buffer or not.\n\t * @property {?Texture} [depthTexture=null] - Reference to a depth texture.\n\t * @property {number} [samples=0] - The MSAA samples count.\n\t * @property {number} [count=1] - Defines the number of color attachments . Must be at least `1`.\n\t * @property {number} [depth=1] - The texture depth.\n\t * @property {boolean} [multiview=false] - Whether this target is used for multiview rendering.\n\t */\n\n\t/**\n\t * Constructs a new render target.\n\t *\n\t * @param {number} [width=1] - The width of the render target.\n\t * @param {number} [height=1] - The height of the render target.\n\t * @param {RenderTarget~Options} [options] - The configuration object.\n\t */\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper();\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\tdepth: 1,\n\t\t\tmultiview: false\n\t\t}, options );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isRenderTarget = true;\n\n\t\t/**\n\t\t * The width of the render target.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.width = width;\n\n\t\t/**\n\t\t * The height of the render target.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.height = height;\n\n\t\t/**\n\t\t * The depth of the render target.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.depth = options.depth;\n\n\t\t/**\n\t\t * A rectangular area inside the render target's viewport. Fragments that are\n\t\t * outside the area will be discarded.\n\t\t *\n\t\t * @type {Vector4}\n\t\t * @default (0,0,width,height)\n\t\t */\n\t\tthis.scissor = new Vector4( 0, 0, width, height );\n\n\t\t/**\n\t\t * Indicates whether the scissor test should be enabled when rendering into\n\t\t * this render target or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.scissorTest = false;\n\n\t\t/**\n\t\t * A rectangular area representing the render target's viewport.\n\t\t *\n\t\t * @type {Vector4}\n\t\t * @default (0,0,width,height)\n\t\t */\n\t\tthis.viewport = new Vector4( 0, 0, width, height );\n\n\t\tconst image = { width: width, height: height, depth: options.depth };\n\n\t\tconst texture = new Texture( image );\n\n\t\t/**\n\t\t * An array of textures. Each color attachment is represented as a separate texture.\n\t\t * Has at least a single entry for the default color attachment.\n\t\t *\n\t\t * @type {Array}\n\t\t */\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\t\t\tthis.textures[ i ].renderTarget = this;\n\n\t\t}\n\n\t\tthis._setTextureOptions( options );\n\n\t\t/**\n\t\t * Whether to allocate a depth buffer or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.depthBuffer = options.depthBuffer;\n\n\t\t/**\n\t\t * Whether to allocate a stencil buffer or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.stencilBuffer = options.stencilBuffer;\n\n\t\t/**\n\t\t * Whether to resolve the depth buffer or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.resolveDepthBuffer = options.resolveDepthBuffer;\n\n\t\t/**\n\t\t * Whether to resolve the stencil buffer or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.resolveStencilBuffer = options.resolveStencilBuffer;\n\n\t\tthis._depthTexture = null;\n\t\tthis.depthTexture = options.depthTexture;\n\n\t\t/**\n\t\t * The number of MSAA samples.\n\t\t *\n\t\t * A value of `0` disables MSAA.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.samples = options.samples;\n\n\t\t/**\n\t\t * Whether to this target is used in multiview rendering.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.multiview = options.multiview;\n\n\t}\n\n\t_setTextureOptions( options = {} ) {\n\n\t\tconst values = {\n\t\t\tminFilter: LinearFilter,\n\t\t\tgenerateMipmaps: false,\n\t\t\tflipY: false,\n\t\t\tinternalFormat: null\n\t\t};\n\n\t\tif ( options.mapping !== undefined ) values.mapping = options.mapping;\n\t\tif ( options.wrapS !== undefined ) values.wrapS = options.wrapS;\n\t\tif ( options.wrapT !== undefined ) values.wrapT = options.wrapT;\n\t\tif ( options.wrapR !== undefined ) values.wrapR = options.wrapR;\n\t\tif ( options.magFilter !== undefined ) values.magFilter = options.magFilter;\n\t\tif ( options.minFilter !== undefined ) values.minFilter = options.minFilter;\n\t\tif ( options.format !== undefined ) values.format = options.format;\n\t\tif ( options.type !== undefined ) values.type = options.type;\n\t\tif ( options.anisotropy !== undefined ) values.anisotropy = options.anisotropy;\n\t\tif ( options.colorSpace !== undefined ) values.colorSpace = options.colorSpace;\n\t\tif ( options.flipY !== undefined ) values.flipY = options.flipY;\n\t\tif ( options.generateMipmaps !== undefined ) values.generateMipmaps = options.generateMipmaps;\n\t\tif ( options.internalFormat !== undefined ) values.internalFormat = options.internalFormat;\n\n\t\tfor ( let i = 0; i < this.textures.length; i ++ ) {\n\n\t\t\tconst texture = this.textures[ i ];\n\t\t\ttexture.setValues( values );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * The texture representing the default color attachment.\n\t *\n\t * @type {Texture}\n\t */\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\tset depthTexture( current ) {\n\n\t\tif ( this._depthTexture !== null ) this._depthTexture.renderTarget = null;\n\t\tif ( current !== null ) current.renderTarget = this;\n\n\t\tthis._depthTexture = current;\n\n\t}\n\n\t/**\n\t * Instead of saving the depth in a renderbuffer, a texture\n\t * can be used instead which is useful for further processing\n\t * e.g. in context of post-processing.\n\t *\n\t * @type {?DepthTexture}\n\t * @default null\n\t */\n\tget depthTexture() {\n\n\t\treturn this._depthTexture;\n\n\t}\n\n\t/**\n\t * Sets the size of this render target.\n\t *\n\t * @param {number} width - The width.\n\t * @param {number} height - The height.\n\t * @param {number} [depth=1] - The depth.\n\t */\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\t\t\t\tthis.textures[ i ].isArrayTexture = this.textures[ i ].image.depth > 1;\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\t/**\n\t * Returns a new render target with copied values from this instance.\n\t *\n\t * @return {RenderTarget} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the settings of the given render target. This is a structural copy so\n\t * no resources are shared between render targets after the copy. That includes\n\t * all MRT textures and the depth texture.\n\t *\n\t * @param {RenderTarget} source - The render target to copy.\n\t * @return {RenderTarget} A reference to this instance.\n\t */\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\t\t\tthis.textures[ i ].renderTarget = this;\n\n\t\t\t// ensure image object is not shared, see #20328\n\n\t\t\tconst image = Object.assign( {}, source.textures[ i ].image );\n\t\t\tthis.textures[ i ].source = new Source( image );\n\n\t\t}\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t *\n\t * @fires RenderTarget#dispose\n\t */\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\n/**\n * A render target used in context of {@link WebGLRenderer}.\n *\n * @augments RenderTarget\n */\nclass WebGLRenderTarget extends RenderTarget {\n\n\t/**\n\t * Constructs a new 3D render target.\n\t *\n\t * @param {number} [width=1] - The width of the render target.\n\t * @param {number} [height=1] - The height of the render target.\n\t * @param {RenderTarget~Options} [options] - The configuration object.\n\t */\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isWebGLRenderTarget = true;\n\n\t}\n\n}\n\n/**\n * Creates an array of textures directly from raw buffer data.\n *\n * @augments Texture\n */\nclass DataArrayTexture extends Texture {\n\n\t/**\n\t * Constructs a new data array texture.\n\t *\n\t * @param {?TypedArray} [data=null] - The buffer data.\n\t * @param {number} [width=1] - The width of the texture.\n\t * @param {number} [height=1] - The height of the texture.\n\t * @param {number} [depth=1] - The depth of the texture.\n\t */\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\tsuper( null );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isDataArrayTexture = true;\n\n\t\t/**\n\t\t * The image definition of a data texture.\n\t\t *\n\t\t * @type {{data:TypedArray,width:number,height:number,depth:number}}\n\t\t */\n\t\tthis.image = { data, width, height, depth };\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers more than one pixel.\n\t\t *\n\t\t * Overwritten and set to `NearestFilter` by default.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default NearestFilter\n\t\t */\n\t\tthis.magFilter = NearestFilter;\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers less than one pixel.\n\t\t *\n\t\t * Overwritten and set to `NearestFilter` by default.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default NearestFilter\n\t\t */\n\t\tthis.minFilter = NearestFilter;\n\n\t\t/**\n\t\t * This defines how the texture is wrapped in the depth and corresponds to\n\t\t * *W* in UVW mapping.\n\t\t *\n\t\t * @type {(RepeatWrapping|ClampToEdgeWrapping|MirroredRepeatWrapping)}\n\t\t * @default ClampToEdgeWrapping\n\t\t */\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.generateMipmaps = false;\n\n\t\t/**\n\t\t * If set to `true`, the texture is flipped along the vertical axis when\n\t\t * uploaded to the GPU.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flipY = false;\n\n\t\t/**\n\t\t * Specifies the alignment requirements for the start of each pixel row in memory.\n\t\t *\n\t\t * Overwritten and set to `1` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default 1\n\t\t */\n\t\tthis.unpackAlignment = 1;\n\n\t\t/**\n\t\t * A set of all layers which need to be updated in the texture.\n\t\t *\n\t\t * @type {Set}\n\t\t */\n\t\tthis.layerUpdates = new Set();\n\n\t}\n\n\t/**\n\t * Describes that a specific layer of the texture needs to be updated.\n\t * Normally when {@link Texture#needsUpdate} is set to `true`, the\n\t * entire data texture array is sent to the GPU. Marking specific\n\t * layers will only transmit subsets of all mipmaps associated with a\n\t * specific depth in the array which is often much more performant.\n\t *\n\t * @param {number} layerIndex - The layer index that should be updated.\n\t */\n\taddLayerUpdate( layerIndex ) {\n\n\t\tthis.layerUpdates.add( layerIndex );\n\n\t}\n\n\t/**\n\t * Resets the layer updates registry.\n\t */\n\tclearLayerUpdates() {\n\n\t\tthis.layerUpdates.clear();\n\n\t}\n\n}\n\n/**\n * An array render target used in context of {@link WebGLRenderer}.\n *\n * @augments WebGLRenderTarget\n */\nclass WebGLArrayRenderTarget extends WebGLRenderTarget {\n\n\t/**\n\t * Constructs a new array render target.\n\t *\n\t * @param {number} [width=1] - The width of the render target.\n\t * @param {number} [height=1] - The height of the render target.\n\t * @param {number} [depth=1] - The height of the render target.\n\t * @param {RenderTarget~Options} [options] - The configuration object.\n\t */\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isWebGLArrayRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\t/**\n\t\t * Overwritten with a different texture type.\n\t\t *\n\t\t * @type {DataArrayTexture}\n\t\t */\n\t\tthis.texture = new DataArrayTexture( null, width, height, depth );\n\t\tthis._setTextureOptions( options );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\n/**\n * Creates a three-dimensional texture from raw data, with parameters to\n * divide it into width, height, and depth.\n *\n * @augments Texture\n */\nclass Data3DTexture extends Texture {\n\n\t/**\n\t * Constructs a new data array texture.\n\t *\n\t * @param {?TypedArray} [data=null] - The buffer data.\n\t * @param {number} [width=1] - The width of the texture.\n\t * @param {number} [height=1] - The height of the texture.\n\t * @param {number} [depth=1] - The depth of the texture.\n\t */\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 Data3DTexture directly.\n\t\t//\n\t\t//\tconst texture = new THREE.Data3DTexture( 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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isData3DTexture = true;\n\n\t\t/**\n\t\t * The image definition of a data texture.\n\t\t *\n\t\t * @type {{data:TypedArray,width:number,height:number,depth:number}}\n\t\t */\n\t\tthis.image = { data, width, height, depth };\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers more than one pixel.\n\t\t *\n\t\t * Overwritten and set to `NearestFilter` by default.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default NearestFilter\n\t\t */\n\t\tthis.magFilter = NearestFilter;\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers less than one pixel.\n\t\t *\n\t\t * Overwritten and set to `NearestFilter` by default.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default NearestFilter\n\t\t */\n\t\tthis.minFilter = NearestFilter;\n\n\t\t/**\n\t\t * This defines how the texture is wrapped in the depth and corresponds to\n\t\t * *W* in UVW mapping.\n\t\t *\n\t\t * @type {(RepeatWrapping|ClampToEdgeWrapping|MirroredRepeatWrapping)}\n\t\t * @default ClampToEdgeWrapping\n\t\t */\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.generateMipmaps = false;\n\n\t\t/**\n\t\t * If set to `true`, the texture is flipped along the vertical axis when\n\t\t * uploaded to the GPU.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flipY = false;\n\n\t\t/**\n\t\t * Specifies the alignment requirements for the start of each pixel row in memory.\n\t\t *\n\t\t * Overwritten and set to `1` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default 1\n\t\t */\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\n/**\n * A 3D render target used in context of {@link WebGLRenderer}.\n *\n * @augments WebGLRenderTarget\n */\nclass WebGL3DRenderTarget extends WebGLRenderTarget {\n\n\t/**\n\t * Constructs a new 3D render target.\n\t *\n\t * @param {number} [width=1] - The width of the render target.\n\t * @param {number} [height=1] - The height of the render target.\n\t * @param {number} [depth=1] - The height of the render target.\n\t * @param {RenderTarget~Options} [options] - The configuration object.\n\t */\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isWebGL3DRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\t/**\n\t\t * Overwritten with a different texture type.\n\t\t *\n\t\t * @type {Data3DTexture}\n\t\t */\n\t\tthis.texture = new Data3DTexture( null, width, height, depth );\n\t\tthis._setTextureOptions( options );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\n/**\n * Represents an axis-aligned bounding box (AABB) in 3D space.\n */\nclass Box3 {\n\n\t/**\n\t * Constructs a new bounding box.\n\t *\n\t * @param {Vector3} [min=(Infinity,Infinity,Infinity)] - A vector representing the lower boundary of the box.\n\t * @param {Vector3} [max=(-Infinity,-Infinity,-Infinity)] - A vector representing the upper boundary of the box.\n\t */\n\tconstructor( min = new Vector3( + Infinity, + Infinity, + Infinity ), max = new Vector3( - Infinity, - Infinity, - Infinity ) ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isBox3 = true;\n\n\t\t/**\n\t\t * The lower boundary of the box.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.min = min;\n\n\t\t/**\n\t\t * The upper boundary of the box.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.max = max;\n\n\t}\n\n\t/**\n\t * Sets the lower and upper boundaries of this box.\n\t * Please note that this method only copies the values from the given objects.\n\t *\n\t * @param {Vector3} min - The lower boundary of the box.\n\t * @param {Vector3} max - The upper boundary of the box.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Sets the upper and lower bounds of this box so it encloses the position data\n\t * in the given array.\n\t *\n\t * @param {Array} array - An array holding 3D position data.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Sets the upper and lower bounds of this box so it encloses the position data\n\t * in the given buffer attribute.\n\t *\n\t * @param {BufferAttribute} attribute - A buffer attribute holding 3D position data.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Sets the upper and lower bounds of this box so it encloses the position data\n\t * in the given array.\n\t *\n\t * @param {Array} points - An array holding 3D position data as instances of {@link Vector3}.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Centers this box on the given center vector and sets this box's width, height and\n\t * depth to the given size values.\n\t *\n\t * @param {Vector3} center - The center of the box.\n\t * @param {Vector3} size - The x, y and z dimensions of the box.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Computes the world-axis-aligned bounding box for the given 3D object\n\t * (including its children), accounting for the object's, and children's,\n\t * world transforms. The function may result in a larger box than strictly necessary.\n\t *\n\t * @param {Object3D} object - The 3D object to compute the bounding box for.\n\t * @param {boolean} [precise=false] - If set to `true`, the method computes the smallest\n\t * world-axis-aligned bounding box at the expense of more computation.\n\t * @return {Box3} A reference to this bounding box.\n\t */\n\tsetFromObject( object, precise = false ) {\n\n\t\tthis.makeEmpty();\n\n\t\treturn this.expandByObject( object, precise );\n\n\t}\n\n\t/**\n\t * Returns a new box with copied values from this instance.\n\t *\n\t * @return {Box3} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the values of the given box to this instance.\n\t *\n\t * @param {Box3} box - The box to copy.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Makes this box empty which means in encloses a zero space in 3D.\n\t *\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Returns true if this box includes zero points within its bounds.\n\t * Note that a box with equal lower and upper bounds still includes one\n\t * point, the one both bounds share.\n\t *\n\t * @return {boolean} Whether this box is empty or not.\n\t */\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\t/**\n\t * Returns the center point of this box.\n\t *\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The center point.\n\t */\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\t/**\n\t * Returns the dimensions of this box.\n\t *\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The size.\n\t */\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\t/**\n\t * Expands the boundaries of this box to include the given point.\n\t *\n\t * @param {Vector3} point - The point that should be included by the bounding box.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Expands this box equilaterally by the given vector. The width of this\n\t * box will be expanded by the x component of the vector in both\n\t * directions. The height of this box will be expanded by the y component of\n\t * the vector in both directions. The depth of this box will be\n\t * expanded by the z component of the vector in both directions.\n\t *\n\t * @param {Vector3} vector - The vector that should expand the bounding box.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Expands each dimension of the box by the given scalar. If negative, the\n\t * dimensions of the box will be contracted.\n\t *\n\t * @param {number} scalar - The scalar value that should expand the bounding box.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Expands the boundaries of this box to include the given 3D object and\n\t * its children, accounting for the object's, and children's, world\n\t * transforms. The function may result in a larger box than strictly\n\t * necessary (unless the precise parameter is set to true).\n\t *\n\t * @param {Object3D} object - The 3D object that should expand the bounding box.\n\t * @param {boolean} precise - If set to `true`, the method expands the bounding box\n\t * as little as necessary at the expense of more computation.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Returns `true` if the given point lies within or on the boundaries of this box.\n\t *\n\t * @param {Vector3} point - The point to test.\n\t * @return {boolean} Whether the bounding box contains the given point or not.\n\t */\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;\n\n\t}\n\n\t/**\n\t * Returns `true` if this bounding box includes the entirety of the given bounding box.\n\t * If this box and the given one are identical, this function also returns `true`.\n\t *\n\t * @param {Box3} box - The bounding box to test.\n\t * @return {boolean} Whether the bounding box contains the given bounding box or not.\n\t */\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\t/**\n\t * Returns a point as a proportion of this box's width, height and depth.\n\t *\n\t * @param {Vector3} point - A point in 3D space.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} A point as a proportion of this box's width, height and depth.\n\t */\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\t/**\n\t * Returns `true` if the given bounding box intersects with this bounding box.\n\t *\n\t * @param {Box3} box - The bounding box to test.\n\t * @return {boolean} Whether the given bounding box intersects with this bounding box.\n\t */\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;\n\n\t}\n\n\t/**\n\t * Returns `true` if the given bounding sphere intersects with this bounding box.\n\t *\n\t * @param {Sphere} sphere - The bounding sphere to test.\n\t * @return {boolean} Whether the given bounding sphere intersects with this bounding box.\n\t */\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\t/**\n\t * Returns `true` if the given plane intersects with this bounding box.\n\t *\n\t * @param {Plane} plane - The plane to test.\n\t * @return {boolean} Whether the given plane intersects with this bounding box.\n\t */\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\t/**\n\t * Returns `true` if the given triangle intersects with this bounding box.\n\t *\n\t * @param {Triangle} triangle - The triangle to test.\n\t * @return {boolean} Whether the given triangle intersects with this bounding box.\n\t */\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\t/**\n\t * Clamps the given point within the bounds of this box.\n\t *\n\t * @param {Vector3} point - The point to clamp.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The clamped point.\n\t */\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\t/**\n\t * Returns the euclidean distance from any edge of this box to the specified point. If\n\t * the given point lies inside of this box, the distance will be `0`.\n\t *\n\t * @param {Vector3} point - The point to compute the distance to.\n\t * @return {number} The euclidean distance.\n\t */\n\tdistanceToPoint( point ) {\n\n\t\treturn this.clampPoint( point, _vector$b ).distanceTo( point );\n\n\t}\n\n\t/**\n\t * Returns a bounding sphere that encloses this bounding box.\n\t *\n\t * @param {Sphere} target - The target sphere that is used to store the method's result.\n\t * @return {Sphere} The bounding sphere that encloses this bounding box.\n\t */\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\t/**\n\t * Computes the intersection of this bounding box and the given one, setting the upper\n\t * bound of this box to the lesser of the two boxes' upper bounds and the\n\t * lower bound of this box to the greater of the two boxes' lower bounds. If\n\t * there's no overlap, makes this box empty.\n\t *\n\t * @param {Box3} box - The bounding box to intersect with.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Computes the union of this box and another and the given one, setting the upper\n\t * bound of this box to the greater of the two boxes' upper bounds and the\n\t * lower bound of this box to the lesser of the two boxes' lower bounds.\n\t *\n\t * @param {Box3} box - The bounding box that will be unioned with this instance.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Transforms this bounding box by the given 4x4 transformation matrix.\n\t *\n\t * @param {Matrix4} matrix - The transformation matrix.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Adds the given offset to both the upper and lower bounds of this bounding box,\n\t * effectively moving it in 3D space.\n\t *\n\t * @param {Vector3} offset - The offset that should be used to translate the bounding box.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Returns `true` if this bounding box is equal with the given one.\n\t *\n\t * @param {Box3} box - The box to test for equality.\n\t * @return {boolean} Whether this bounding box is equal with the given one.\n\t */\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n\t/**\n\t * Returns a serialized structure of the bounding box.\n\t *\n\t * @return {Object} Serialized structure with fields representing the object state.\n\t */\n\ttoJSON() {\n\n\t\treturn {\n\t\t\tmin: this.min.toArray(),\n\t\t\tmax: this.max.toArray()\n\t\t};\n\n\t}\n\n\t/**\n\t * Returns a serialized structure of the bounding box.\n\t *\n\t * @param {Object} json - The serialized json to set the box from.\n\t * @return {Box3} A reference to this bounding box.\n\t */\n\tfromJSON( json ) {\n\n\t\tthis.min.fromArray( json.min );\n\t\tthis.max.fromArray( json.max );\n\t\treturn this;\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\n/**\n * An analytical 3D sphere defined by a center and radius. This class is mainly\n * used as a Bounding Sphere for 3D objects.\n */\nclass Sphere {\n\n\t/**\n\t * Constructs a new sphere.\n\t *\n\t * @param {Vector3} [center=(0,0,0)] - The center of the sphere\n\t * @param {number} [radius=-1] - The radius of the sphere.\n\t */\n\tconstructor( center = new Vector3(), radius = -1 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSphere = true;\n\n\t\t/**\n\t\t * The center of the sphere\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.center = center;\n\n\t\t/**\n\t\t * The radius of the sphere.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.radius = radius;\n\n\t}\n\n\t/**\n\t * Sets the sphere's components by copying the given values.\n\t *\n\t * @param {Vector3} center - The center.\n\t * @param {number} radius - The radius.\n\t * @return {Sphere} A reference to this sphere.\n\t */\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\t/**\n\t * Computes the minimum bounding sphere for list of points.\n\t * If the optional center point is given, it is used as the sphere's\n\t * center. Otherwise, the center of the axis-aligned bounding box\n\t * encompassing the points is calculated.\n\t *\n\t * @param {Array} points - A list of points in 3D space.\n\t * @param {Vector3} [optionalCenter] - The center of the sphere.\n\t * @return {Sphere} A reference to this sphere.\n\t */\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\t/**\n\t * Copies the values of the given sphere to this instance.\n\t *\n\t * @param {Sphere} sphere - The sphere to copy.\n\t * @return {Sphere} A reference to this sphere.\n\t */\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\t/**\n\t * Returns `true` if the sphere is empty (the radius set to a negative number).\n\t *\n\t * Spheres with a radius of `0` contain only their center point and are not\n\t * considered to be empty.\n\t *\n\t * @return {boolean} Whether this sphere is empty or not.\n\t */\n\tisEmpty() {\n\n\t\treturn ( this.radius < 0 );\n\n\t}\n\n\t/**\n\t * Makes this sphere empty which means in encloses a zero space in 3D.\n\t *\n\t * @return {Sphere} A reference to this sphere.\n\t */\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\t/**\n\t * Returns `true` if this sphere contains the given point inclusive of\n\t * the surface of the sphere.\n\t *\n\t * @param {Vector3} point - The point to check.\n\t * @return {boolean} Whether this sphere contains the given point or not.\n\t */\n\tcontainsPoint( point ) {\n\n\t\treturn ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) );\n\n\t}\n\n\t/**\n\t * Returns the closest distance from the boundary of the sphere to the\n\t * given point. If the sphere contains the point, the distance will\n\t * be negative.\n\t *\n\t * @param {Vector3} point - The point to compute the distance to.\n\t * @return {number} The distance to the point.\n\t */\n\tdistanceToPoint( point ) {\n\n\t\treturn ( point.distanceTo( this.center ) - this.radius );\n\n\t}\n\n\t/**\n\t * Returns `true` if this sphere intersects with the given one.\n\t *\n\t * @param {Sphere} sphere - The sphere to test.\n\t * @return {boolean} Whether this sphere intersects with the given one or not.\n\t */\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\t/**\n\t * Returns `true` if this sphere intersects with the given box.\n\t *\n\t * @param {Box3} box - The box to test.\n\t * @return {boolean} Whether this sphere intersects with the given box or not.\n\t */\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsSphere( this );\n\n\t}\n\n\t/**\n\t * Returns `true` if this sphere intersects with the given plane.\n\t *\n\t * @param {Plane} plane - The plane to test.\n\t * @return {boolean} Whether this sphere intersects with the given plane or not.\n\t */\n\tintersectsPlane( plane ) {\n\n\t\treturn Math.abs( plane.distanceToPoint( this.center ) ) <= this.radius;\n\n\t}\n\n\t/**\n\t * Clamps a point within the sphere. If the point is outside the sphere, it\n\t * will clamp it to the closest point on the edge of the sphere. Points\n\t * already inside the sphere will not be affected.\n\t *\n\t * @param {Vector3} point - The plane to clamp.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The clamped point.\n\t */\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\t/**\n\t * Returns a bounding box that encloses this sphere.\n\t *\n\t * @param {Box3} target - The target box that is used to store the method's result.\n\t * @return {Box3} The bounding box that encloses this sphere.\n\t */\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\t/**\n\t * Transforms this sphere with the given 4x4 transformation matrix.\n\t *\n\t * @param {Matrix4} matrix - The transformation matrix.\n\t * @return {Sphere} A reference to this sphere.\n\t */\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\t/**\n\t * Translates the sphere's center by the given offset.\n\t *\n\t * @param {Vector3} offset - The offset.\n\t * @return {Sphere} A reference to this sphere.\n\t */\n\ttranslate( offset ) {\n\n\t\tthis.center.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Expands the boundaries of this sphere to include the given point.\n\t *\n\t * @param {Vector3} point - The point to include.\n\t * @return {Sphere} A reference to this sphere.\n\t */\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\t/**\n\t * Expands this sphere to enclose both the original sphere and the given sphere.\n\t *\n\t * @param {Sphere} sphere - The sphere to include.\n\t * @return {Sphere} A reference to this sphere.\n\t */\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\t/**\n\t * Returns `true` if this sphere is equal with the given one.\n\t *\n\t * @param {Sphere} sphere - The sphere to test for equality.\n\t * @return {boolean} Whether this bounding sphere is equal with the given one.\n\t */\n\tequals( sphere ) {\n\n\t\treturn sphere.center.equals( this.center ) && ( sphere.radius === this.radius );\n\n\t}\n\n\t/**\n\t * Returns a new sphere with copied values from this instance.\n\t *\n\t * @return {Sphere} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Returns a serialized structure of the bounding sphere.\n\t *\n\t * @return {Object} Serialized structure with fields representing the object state.\n\t */\n\ttoJSON() {\n\n\t\treturn {\n\t\t\tradius: this.radius,\n\t\t\tcenter: this.center.toArray()\n\t\t};\n\n\t}\n\n\t/**\n\t * Returns a serialized structure of the bounding sphere.\n\t *\n\t * @param {Object} json - The serialized json to set the sphere from.\n\t * @return {Box3} A reference to this bounding sphere.\n\t */\n\tfromJSON( json ) {\n\n\t\tthis.radius = json.radius;\n\t\tthis.center.fromArray( json.center );\n\t\treturn 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\n/**\n * A ray that emits from an origin in a certain direction. The class is used by\n * {@link Raycaster} to assist with raycasting. Raycasting is used for\n * mouse picking (working out what objects in the 3D space the mouse is over)\n * amongst other things.\n */\nclass Ray {\n\n\t/**\n\t * Constructs a new ray.\n\t *\n\t * @param {Vector3} [origin=(0,0,0)] - The origin of the ray.\n\t * @param {Vector3} [direction=(0,0,-1)] - The (normalized) direction of the ray.\n\t */\n\tconstructor( origin = new Vector3(), direction = new Vector3( 0, 0, -1 ) ) {\n\n\t\t/**\n\t\t * The origin of the ray.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.origin = origin;\n\n\t\t/**\n\t\t * The (normalized) direction of the ray.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.direction = direction;\n\n\t}\n\n\t/**\n\t * Sets the ray's components by copying the given values.\n\t *\n\t * @param {Vector3} origin - The origin.\n\t * @param {Vector3} direction - The direction.\n\t * @return {Ray} A reference to this ray.\n\t */\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\t/**\n\t * Copies the values of the given ray to this instance.\n\t *\n\t * @param {Ray} ray - The ray to copy.\n\t * @return {Ray} A reference to this ray.\n\t */\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\t/**\n\t * Returns a vector that is located at a given distance along this ray.\n\t *\n\t * @param {number} t - The distance along the ray to retrieve a position for.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} A position on the ray.\n\t */\n\tat( t, target ) {\n\n\t\treturn target.copy( this.origin ).addScaledVector( this.direction, t );\n\n\t}\n\n\t/**\n\t * Adjusts the direction of the ray to point at the given vector in world space.\n\t *\n\t * @param {Vector3} v - The target position.\n\t * @return {Ray} A reference to this ray.\n\t */\n\tlookAt( v ) {\n\n\t\tthis.direction.copy( v ).sub( this.origin ).normalize();\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Shift the origin of this ray along its direction by the given distance.\n\t *\n\t * @param {number} t - The distance along the ray to interpolate.\n\t * @return {Ray} A reference to this ray.\n\t */\n\trecast( t ) {\n\n\t\tthis.origin.copy( this.at( t, _vector$a ) );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the point along this ray that is closest to the given point.\n\t *\n\t * @param {Vector3} point - A point in 3D space to get the closet location on the ray for.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The closest point on this ray.\n\t */\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\t/**\n\t * Returns the distance of the closest approach between this ray and the given point.\n\t *\n\t * @param {Vector3} point - A point in 3D space to compute the distance to.\n\t * @return {number} The distance.\n\t */\n\tdistanceToPoint( point ) {\n\n\t\treturn Math.sqrt( this.distanceSqToPoint( point ) );\n\n\t}\n\n\t/**\n\t * Returns the squared distance of the closest approach between this ray and the given point.\n\t *\n\t * @param {Vector3} point - A point in 3D space to compute the distance to.\n\t * @return {number} The squared distance.\n\t */\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\t/**\n\t * Returns the squared distance between this ray and the given line segment.\n\t *\n\t * @param {Vector3} v0 - The start point of the line segment.\n\t * @param {Vector3} v1 - The end point of the line segment.\n\t * @param {Vector3} [optionalPointOnRay] - When provided, it receives the point on this ray that is closest to the segment.\n\t * @param {Vector3} [optionalPointOnSegment] - When provided, it receives the point on the line segment that is closest to this ray.\n\t * @return {number} The squared distance.\n\t */\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\t/**\n\t * Intersects this ray with the given sphere, returning the intersection\n\t * point or `null` if there is no intersection.\n\t *\n\t * @param {Sphere} sphere - The sphere to intersect.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The intersection point.\n\t */\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\t/**\n\t * Returns `true` if this ray intersects with the given sphere.\n\t *\n\t * @param {Sphere} sphere - The sphere to intersect.\n\t * @return {boolean} Whether this ray intersects with the given sphere or not.\n\t */\n\tintersectsSphere( sphere ) {\n\n\t\tif ( sphere.radius < 0 ) return false; // handle empty spheres, see #31187\n\n\t\treturn this.distanceSqToPoint( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\t/**\n\t * Computes the distance from the ray's origin to the given plane. Returns `null` if the ray\n\t * does not intersect with the plane.\n\t *\n\t * @param {Plane} plane - The plane to compute the distance to.\n\t * @return {?number} Whether this ray intersects with the given sphere or not.\n\t */\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\t/**\n\t * Intersects this ray with the given plane, returning the intersection\n\t * point or `null` if there is no intersection.\n\t *\n\t * @param {Plane} plane - The plane to intersect.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The intersection point.\n\t */\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\t/**\n\t * Returns `true` if this ray intersects with the given plane.\n\t *\n\t * @param {Plane} plane - The plane to intersect.\n\t * @return {boolean} Whether this ray intersects with the given plane or not.\n\t */\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\t/**\n\t * Intersects this ray with the given bounding box, returning the intersection\n\t * point or `null` if there is no intersection.\n\t *\n\t * @param {Box3} box - The box to intersect.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The intersection point.\n\t */\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\t/**\n\t * Returns `true` if this ray intersects with the given box.\n\t *\n\t * @param {Box3} box - The box to intersect.\n\t * @return {boolean} Whether this ray intersects with the given box or not.\n\t */\n\tintersectsBox( box ) {\n\n\t\treturn this.intersectBox( box, _vector$a ) !== null;\n\n\t}\n\n\t/**\n\t * Intersects this ray with the given triangle, returning the intersection\n\t * point or `null` if there is no intersection.\n\t *\n\t * @param {Vector3} a - The first vertex of the triangle.\n\t * @param {Vector3} b - The second vertex of the triangle.\n\t * @param {Vector3} c - The third vertex of the triangle.\n\t * @param {boolean} backfaceCulling - Whether to use backface culling or not.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The intersection point.\n\t */\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\t/**\n\t * Transforms this ray with the given 4x4 transformation matrix.\n\t *\n\t * @param {Matrix4} matrix4 - The transformation matrix.\n\t * @return {Ray} A reference to this ray.\n\t */\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\t/**\n\t * Returns `true` if this ray is equal with the given one.\n\t *\n\t * @param {Ray} ray - The ray to test for equality.\n\t * @return {boolean} Whether this ray is equal with the given one.\n\t */\n\tequals( ray ) {\n\n\t\treturn ray.origin.equals( this.origin ) && ray.direction.equals( this.direction );\n\n\t}\n\n\t/**\n\t * Returns a new ray with copied values from this instance.\n\t *\n\t * @return {Ray} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\n/**\n * Represents a 4x4 matrix.\n *\n * The most common use of a 4x4 matrix in 3D computer graphics is as a transformation matrix.\n * For an introduction to transformation matrices as used in WebGL, check out [this tutorial]{@link https://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices}\n *\n * This allows a 3D vector representing a point in 3D space to undergo\n * transformations such as translation, rotation, shear, scale, reflection,\n * orthogonal or perspective projection and so on, by being multiplied by the\n * matrix. This is known as `applying` the matrix to the vector.\n *\n * A Note on Row-Major and Column-Major Ordering:\n *\n * The constructor and {@link Matrix3#set} method take arguments in\n * [row-major]{@link https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order}\n * order, while internally they are stored in the {@link Matrix3#elements} array in column-major order.\n * This means that calling:\n * ```js\n * const m = new THREE.Matrix4();\n * m.set( 11, 12, 13, 14,\n * 21, 22, 23, 24,\n * 31, 32, 33, 34,\n * 41, 42, 43, 44 );\n * ```\n * will result in the elements array containing:\n * ```js\n * m.elements = [ 11, 21, 31, 41,\n * 12, 22, 32, 42,\n * 13, 23, 33, 43,\n * 14, 24, 34, 44 ];\n * ```\n * and internally all calculations are performed using column-major ordering.\n * However, as the actual ordering makes no difference mathematically and\n * most people are used to thinking about matrices in row-major order, the\n * three.js documentation shows matrices in row-major order. Just bear in\n * mind that if you are reading the source code, you'll have to take the\n * transpose of any matrices outlined here to make sense of the calculations.\n */\nclass Matrix4 {\n\n\t/**\n\t * Constructs a new 4x4 matrix. The arguments are supposed to be\n\t * in row-major order. If no arguments are provided, the constructor\n\t * initializes the matrix as an identity matrix.\n\t *\n\t * @param {number} [n11] - 1-1 matrix element.\n\t * @param {number} [n12] - 1-2 matrix element.\n\t * @param {number} [n13] - 1-3 matrix element.\n\t * @param {number} [n14] - 1-4 matrix element.\n\t * @param {number} [n21] - 2-1 matrix element.\n\t * @param {number} [n22] - 2-2 matrix element.\n\t * @param {number} [n23] - 2-3 matrix element.\n\t * @param {number} [n24] - 2-4 matrix element.\n\t * @param {number} [n31] - 3-1 matrix element.\n\t * @param {number} [n32] - 3-2 matrix element.\n\t * @param {number} [n33] - 3-3 matrix element.\n\t * @param {number} [n34] - 3-4 matrix element.\n\t * @param {number} [n41] - 4-1 matrix element.\n\t * @param {number} [n42] - 4-2 matrix element.\n\t * @param {number} [n43] - 4-3 matrix element.\n\t * @param {number} [n44] - 4-4 matrix element.\n\t */\n\tconstructor( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tMatrix4.prototype.isMatrix4 = true;\n\n\t\t/**\n\t\t * A column-major list of matrix values.\n\t\t *\n\t\t * @type {Array}\n\t\t */\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\t/**\n\t * Sets the elements of the matrix.The arguments are supposed to be\n\t * in row-major order.\n\t *\n\t * @param {number} [n11] - 1-1 matrix element.\n\t * @param {number} [n12] - 1-2 matrix element.\n\t * @param {number} [n13] - 1-3 matrix element.\n\t * @param {number} [n14] - 1-4 matrix element.\n\t * @param {number} [n21] - 2-1 matrix element.\n\t * @param {number} [n22] - 2-2 matrix element.\n\t * @param {number} [n23] - 2-3 matrix element.\n\t * @param {number} [n24] - 2-4 matrix element.\n\t * @param {number} [n31] - 3-1 matrix element.\n\t * @param {number} [n32] - 3-2 matrix element.\n\t * @param {number} [n33] - 3-3 matrix element.\n\t * @param {number} [n34] - 3-4 matrix element.\n\t * @param {number} [n41] - 4-1 matrix element.\n\t * @param {number} [n42] - 4-2 matrix element.\n\t * @param {number} [n43] - 4-3 matrix element.\n\t * @param {number} [n44] - 4-4 matrix element.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix to the 4x4 identity matrix.\n\t *\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Returns a matrix with copied values from this instance.\n\t *\n\t * @return {Matrix4} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new Matrix4().fromArray( this.elements );\n\n\t}\n\n\t/**\n\t * Copies the values of the given matrix to this instance.\n\t *\n\t * @param {Matrix4} m - The matrix to copy.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Copies the translation component of the given matrix\n\t * into this matrix's translation component.\n\t *\n\t * @param {Matrix4} m - The matrix to copy the translation component.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Set the upper 3x3 elements of this matrix to the values of given 3x3 matrix.\n\t *\n\t * @param {Matrix3} m - The 3x3 matrix.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Extracts the basis of this matrix into the three axis vectors provided.\n\t *\n\t * @param {Vector3} xAxis - The basis's x axis.\n\t * @param {Vector3} yAxis - The basis's y axis.\n\t * @param {Vector3} zAxis - The basis's z axis.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets the given basis vectors to this matrix.\n\t *\n\t * @param {Vector3} xAxis - The basis's x axis.\n\t * @param {Vector3} yAxis - The basis's y axis.\n\t * @param {Vector3} zAxis - The basis's z axis.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Extracts the rotation component of the given matrix\n\t * into this matrix's rotation component.\n\t *\n\t * Note: This method does not support reflection matrices.\n\t *\n\t * @param {Matrix4} m - The matrix.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\n\textractRotation( m ) {\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\t/**\n\t * Sets the rotation component (the upper left 3x3 matrix) of this matrix to\n\t * the rotation specified by the given Euler angles. The rest of\n\t * the matrix is set to the identity. Depending on the {@link Euler#order},\n\t * there are six possible outcomes. See [this page]{@link https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix}\n\t * for a complete list.\n\t *\n\t * @param {Euler} euler - The Euler angles.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets the rotation component of this matrix to the rotation specified by\n\t * the given Quaternion as outlined [here]{@link https://en.wikipedia.org/wiki/Rotation_matrix#Quaternion}\n\t * The rest of the matrix is set to the identity.\n\t *\n\t * @param {Quaternion} q - The Quaternion.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\n\tmakeRotationFromQuaternion( q ) {\n\n\t\treturn this.compose( _zero, q, _one );\n\n\t}\n\n\t/**\n\t * Sets the rotation component of the transformation matrix, looking from `eye` towards\n\t * `target`, and oriented by the up-direction.\n\t *\n\t * @param {Vector3} eye - The eye vector.\n\t * @param {Vector3} target - The target vector.\n\t * @param {Vector3} up - The up vector.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Post-multiplies this matrix by the given 4x4 matrix.\n\t *\n\t * @param {Matrix4} m - The matrix to multiply with.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\t/**\n\t * Pre-multiplies this matrix by the given 4x4 matrix.\n\t *\n\t * @param {Matrix4} m - The matrix to multiply with.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\t/**\n\t * Multiples the given 4x4 matrices and stores the result\n\t * in this matrix.\n\t *\n\t * @param {Matrix4} a - The first matrix.\n\t * @param {Matrix4} b - The second matrix.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Multiplies every component of the matrix by the given scalar.\n\t *\n\t * @param {number} s - The scalar.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Computes and returns the determinant of this matrix.\n\t *\n\t * Based on the method outlined [here]{@link http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.html}.\n\t *\n\t * @return {number} The determinant.\n\t */\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\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\t/**\n\t * Transposes this matrix in place.\n\t *\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets the position component for this matrix from the given vector,\n\t * without affecting the rest of the matrix.\n\t *\n\t * @param {number|Vector3} x - The x component of the vector or alternatively the vector object.\n\t * @param {number} y - The y component of the vector.\n\t * @param {number} z - The z component of the vector.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Inverts this matrix, using the [analytic method]{@link https://en.wikipedia.org/wiki/Invertible_matrix#Analytic_solution}.\n\t * You can not invert with a determinant of zero. If you attempt this, the method produces\n\t * a zero matrix instead.\n\t *\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Multiplies the columns of this matrix by the given vector.\n\t *\n\t * @param {Vector3} v - The scale vector.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Gets the maximum scale value of the three axes.\n\t *\n\t * @return {number} The maximum scale.\n\t */\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\t/**\n\t * Sets this matrix as a translation transform from the given vector.\n\t *\n\t * @param {number|Vector3} x - The amount to translate in the X axis or alternatively a translation vector.\n\t * @param {number} y - The amount to translate in the Y axis.\n\t * @param {number} z - The amount to translate in the z axis.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a rotational transformation around the X axis by\n\t * the given angle.\n\t *\n\t * @param {number} theta - The rotation in radians.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a rotational transformation around the Y axis by\n\t * the given angle.\n\t *\n\t * @param {number} theta - The rotation in radians.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a rotational transformation around the Z axis by\n\t * the given angle.\n\t *\n\t * @param {number} theta - The rotation in radians.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a rotational transformation around the given axis by\n\t * the given angle.\n\t *\n\t * This is a somewhat controversial but mathematically sound alternative to\n\t * rotating via Quaternions. See the discussion [here]{@link https://www.gamedev.net/articles/programming/math-and-physics/do-we-really-need-quaternions-r1199}.\n\t *\n\t * @param {Vector3} axis - The normalized rotation axis.\n\t * @param {number} angle - The rotation in radians.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a scale transformation.\n\t *\n\t * @param {number} x - The amount to scale in the X axis.\n\t * @param {number} y - The amount to scale in the Y axis.\n\t * @param {number} z - The amount to scale in the Z axis.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a shear transformation.\n\t *\n\t * @param {number} xy - The amount to shear X by Y.\n\t * @param {number} xz - The amount to shear X by Z.\n\t * @param {number} yx - The amount to shear Y by X.\n\t * @param {number} yz - The amount to shear Y by Z.\n\t * @param {number} zx - The amount to shear Z by X.\n\t * @param {number} zy - The amount to shear Z by Y.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix to the transformation composed of the given position,\n\t * rotation (Quaternion) and scale.\n\t *\n\t * @param {Vector3} position - The position vector.\n\t * @param {Quaternion} quaternion - The rotation as a Quaternion.\n\t * @param {Vector3} scale - The scale vector.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Decomposes this matrix into its position, rotation and scale components\n\t * and provides the result in the given objects.\n\t *\n\t * Note: Not all matrices are decomposable in this way. For example, if an\n\t * object has a non-uniformly scaled parent, then the object's world matrix\n\t * may not be decomposable, and this method may not be appropriate.\n\t *\n\t * @param {Vector3} position - The position vector.\n\t * @param {Quaternion} quaternion - The rotation as a Quaternion.\n\t * @param {Vector3} scale - The scale vector.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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$2.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$2.elements[ 0 ] *= invSX;\n\t\t_m1$2.elements[ 1 ] *= invSX;\n\t\t_m1$2.elements[ 2 ] *= invSX;\n\n\t\t_m1$2.elements[ 4 ] *= invSY;\n\t\t_m1$2.elements[ 5 ] *= invSY;\n\t\t_m1$2.elements[ 6 ] *= invSY;\n\n\t\t_m1$2.elements[ 8 ] *= invSZ;\n\t\t_m1$2.elements[ 9 ] *= invSZ;\n\t\t_m1$2.elements[ 10 ] *= invSZ;\n\n\t\tquaternion.setFromRotationMatrix( _m1$2 );\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\t/**\n\t * Creates a perspective projection matrix. This is used internally by\n\t * {@link PerspectiveCamera#updateProjectionMatrix}.\n\n\t * @param {number} left - Left boundary of the viewing frustum at the near plane.\n\t * @param {number} right - Right boundary of the viewing frustum at the near plane.\n\t * @param {number} top - Top boundary of the viewing frustum at the near plane.\n\t * @param {number} bottom - Bottom boundary of the viewing frustum at the near plane.\n\t * @param {number} near - The distance from the camera to the near plane.\n\t * @param {number} far - The distance from the camera to the far plane.\n\t * @param {(WebGLCoordinateSystem|WebGPUCoordinateSystem)} [coordinateSystem=WebGLCoordinateSystem] - The coordinate system.\n\t * @param {boolean} [reversedDepth=false] - Whether to use a reversed depth.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\n\tmakePerspective( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem, reversedDepth = false ) {\n\n\t\tconst te = this.elements;\n\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 ( reversedDepth ) {\n\n\t\t\tc = near / ( far - near );\n\t\t\td = ( far * near ) / ( far - near );\n\n\t\t} else {\n\n\t\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\t\tc = - ( far + near ) / ( far - near );\n\t\t\t\td = ( -2 * far * near ) / ( far - near );\n\n\t\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\t\tc = - far / ( far - near );\n\t\t\t\td = ( - far * near ) / ( far - near );\n\n\t\t\t} else {\n\n\t\t\t\tthrow new Error( 'THREE.Matrix4.makePerspective(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t\t}\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\t/**\n\t * Creates a orthographic projection matrix. This is used internally by\n\t * {@link OrthographicCamera#updateProjectionMatrix}.\n\n\t * @param {number} left - Left boundary of the viewing frustum at the near plane.\n\t * @param {number} right - Right boundary of the viewing frustum at the near plane.\n\t * @param {number} top - Top boundary of the viewing frustum at the near plane.\n\t * @param {number} bottom - Bottom boundary of the viewing frustum at the near plane.\n\t * @param {number} near - The distance from the camera to the near plane.\n\t * @param {number} far - The distance from the camera to the far plane.\n\t * @param {(WebGLCoordinateSystem|WebGPUCoordinateSystem)} [coordinateSystem=WebGLCoordinateSystem] - The coordinate system.\n\t * @param {boolean} [reversedDepth=false] - Whether to use a reversed depth.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\n\tmakeOrthographic( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem, reversedDepth = false ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = 2 / ( right - left );\n\t\tconst y = 2 / ( 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 ( reversedDepth ) {\n\n\t\t\tc = 1 / ( far - near );\n\t\t\td = far / ( far - near );\n\n\t\t} else {\n\n\t\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\t\tc = -2 / ( far - near );\n\t\t\t\td = - ( far + near ) / ( far - near );\n\n\t\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\t\tc = -1 / ( far - near );\n\t\t\t\td = - near / ( far - near );\n\n\t\t\t} else {\n\n\t\t\t\tthrow new Error( 'THREE.Matrix4.makeOrthographic(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t\t}\n\n\t\t}\n\n\t\tte[ 0 ] = x;\t\tte[ 4 ] = 0;\t\tte[ 8 ] = 0; \t\tte[ 12 ] = a;\n\t\tte[ 1 ] = 0; \t\tte[ 5 ] = y;\t\tte[ 9 ] = 0; \t\tte[ 13 ] = b;\n\t\tte[ 2 ] = 0; \t\tte[ 6 ] = 0;\t\tte[ 10 ] = c;\t\tte[ 14 ] = d;\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\t/**\n\t * Returns `true` if this matrix is equal with the given one.\n\t *\n\t * @param {Matrix4} matrix - The matrix to test for equality.\n\t * @return {boolean} Whether this matrix is equal with the given one.\n\t */\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\t/**\n\t * Sets the elements of the matrix from the given array.\n\t *\n\t * @param {Array} array - The matrix elements in column-major order.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Writes the elements of this matrix to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the matrix elements in column-major order.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The matrix elements in column-major order.\n\t */\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$2 = /*@__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\n/**\n * A class representing Euler angles.\n *\n * Euler angles describe a rotational transformation by rotating an object on\n * its various axes in specified amounts per axis, and a specified axis\n * order.\n *\n * Iterating through an instance will yield its components (x, y, z,\n * order) in the corresponding order.\n *\n * ```js\n * const a = new THREE.Euler( 0, 1, 1.57, 'XYZ' );\n * const b = new THREE.Vector3( 1, 0, 1 );\n * b.applyEuler(a);\n * ```\n */\nclass Euler {\n\n\t/**\n\t * Constructs a new euler instance.\n\t *\n\t * @param {number} [x=0] - The angle of the x axis in radians.\n\t * @param {number} [y=0] - The angle of the y axis in radians.\n\t * @param {number} [z=0] - The angle of the z axis in radians.\n\t * @param {string} [order=Euler.DEFAULT_ORDER] - A string representing the order that the rotations are applied.\n\t */\n\tconstructor( x = 0, y = 0, z = 0, order = Euler.DEFAULT_ORDER ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t * The angle of the x axis in radians.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * The angle of the y axis in radians.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * The angle of the z axis in radians.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * A string representing the order that the rotations are applied.\n\t *\n\t * @type {string}\n\t * @default 'XYZ'\n\t */\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\t/**\n\t * Sets the Euler components.\n\t *\n\t * @param {number} x - The angle of the x axis in radians.\n\t * @param {number} y - The angle of the y axis in radians.\n\t * @param {number} z - The angle of the z axis in radians.\n\t * @param {string} [order] - A string representing the order that the rotations are applied.\n\t * @return {Euler} A reference to this Euler instance.\n\t */\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\t/**\n\t * Returns a new Euler instance with copied values from this instance.\n\t *\n\t * @return {Euler} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._order );\n\n\t}\n\n\t/**\n\t * Copies the values of the given Euler instance to this instance.\n\t *\n\t * @param {Euler} euler - The Euler instance to copy.\n\t * @return {Euler} A reference to this Euler instance.\n\t */\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\t/**\n\t * Sets the angles of this Euler instance from a pure rotation matrix.\n\t *\n\t * @param {Matrix4} m - A 4x4 matrix of which the upper 3x3 of matrix is a pure rotation matrix (i.e. unscaled).\n\t * @param {string} [order] - A string representing the order that the rotations are applied.\n\t * @param {boolean} [update=true] - Whether the internal `onChange` callback should be executed or not.\n\t * @return {Euler} A reference to this Euler instance.\n\t */\n\tsetFromRotationMatrix( m, order = this._order, update = true ) {\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\t/**\n\t * Sets the angles of this Euler instance from a normalized quaternion.\n\t *\n\t * @param {Quaternion} q - A normalized Quaternion.\n\t * @param {string} [order] - A string representing the order that the rotations are applied.\n\t * @param {boolean} [update=true] - Whether the internal `onChange` callback should be executed or not.\n\t * @return {Euler} A reference to this Euler instance.\n\t */\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\t/**\n\t * Sets the angles of this Euler instance from the given vector.\n\t *\n\t * @param {Vector3} v - The vector.\n\t * @param {string} [order] - A string representing the order that the rotations are applied.\n\t * @return {Euler} A reference to this Euler instance.\n\t */\n\tsetFromVector3( v, order = this._order ) {\n\n\t\treturn this.set( v.x, v.y, v.z, order );\n\n\t}\n\n\t/**\n\t * Resets the euler angle with a new order by creating a quaternion from this\n\t * euler angle and then setting this euler angle with the quaternion and the\n\t * new order.\n\t *\n\t * Warning: This discards revolution information.\n\t *\n\t * @param {string} [newOrder] - A string representing the new order that the rotations are applied.\n\t * @return {Euler} A reference to this Euler instance.\n\t */\n\treorder( newOrder ) {\n\n\t\t_quaternion$3.setFromEuler( this );\n\n\t\treturn this.setFromQuaternion( _quaternion$3, newOrder );\n\n\t}\n\n\t/**\n\t * Returns `true` if this Euler instance is equal with the given one.\n\t *\n\t * @param {Euler} euler - The Euler instance to test for equality.\n\t * @return {boolean} Whether this Euler instance is equal with the given one.\n\t */\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\t/**\n\t * Sets this Euler instance's components to values from the given array. The first three\n\t * entries of the array are assign to the x,y and z components. An optional fourth entry\n\t * defines the Euler order.\n\t *\n\t * @param {Array} array - An array holding the Euler component values.\n\t * @return {Euler} A reference to this Euler instance.\n\t */\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\t/**\n\t * Writes the components of this Euler instance to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the Euler components.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The Euler components.\n\t */\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\n/**\n * The default Euler angle order.\n *\n * @static\n * @type {string}\n * @default 'XYZ'\n */\nEuler.DEFAULT_ORDER = 'XYZ';\n\n/**\n * A layers object assigns an 3D object to 1 or more of 32\n * layers numbered `0` to `31` - internally the layers are stored as a\n * bit mask], and by default all 3D objects are a member of layer `0`.\n *\n * This can be used to control visibility - an object must share a layer with\n * a camera to be visible when that camera's view is\n * rendered.\n *\n * All classes that inherit from {@link Object3D} have an `layers` property which\n * is an instance of this class.\n */\nclass Layers {\n\n\t/**\n\t * Constructs a new layers instance, with membership\n\t * initially set to layer `0`.\n\t */\n\tconstructor() {\n\n\t\t/**\n\t\t * A bit mask storing which of the 32 layers this layers object is currently\n\t\t * a member of.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.mask = 1 | 0;\n\n\t}\n\n\t/**\n\t * Sets membership to the given layer, and remove membership all other layers.\n\t *\n\t * @param {number} layer - The layer to set.\n\t */\n\tset( layer ) {\n\n\t\tthis.mask = ( 1 << layer | 0 ) >>> 0;\n\n\t}\n\n\t/**\n\t * Adds membership of the given layer.\n\t *\n\t * @param {number} layer - The layer to enable.\n\t */\n\tenable( layer ) {\n\n\t\tthis.mask |= 1 << layer | 0;\n\n\t}\n\n\t/**\n\t * Adds membership to all layers.\n\t */\n\tenableAll() {\n\n\t\tthis.mask = 0xffffffff | 0;\n\n\t}\n\n\t/**\n\t * Toggles the membership of the given layer.\n\t *\n\t * @param {number} layer - The layer to toggle.\n\t */\n\ttoggle( layer ) {\n\n\t\tthis.mask ^= 1 << layer | 0;\n\n\t}\n\n\t/**\n\t * Removes membership of the given layer.\n\t *\n\t * @param {number} layer - The layer to enable.\n\t */\n\tdisable( layer ) {\n\n\t\tthis.mask &= ~ ( 1 << layer | 0 );\n\n\t}\n\n\t/**\n\t * Removes the membership from all layers.\n\t */\n\tdisableAll() {\n\n\t\tthis.mask = 0;\n\n\t}\n\n\t/**\n\t * Returns `true` if this and the given layers object have at least one\n\t * layer in common.\n\t *\n\t * @param {Layers} layers - The layers to test.\n\t * @return {boolean } Whether this and the given layers object have at least one layer in common or not.\n\t */\n\ttest( layers ) {\n\n\t\treturn ( this.mask & layers.mask ) !== 0;\n\n\t}\n\n\t/**\n\t * Returns `true` if the given layer is enabled.\n\t *\n\t * @param {number} layer - The layer to test.\n\t * @return {boolean } Whether the given layer is enabled or not.\n\t */\n\tisEnabled( layer ) {\n\n\t\treturn ( this.mask & ( 1 << layer | 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$1 = /*@__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\n/**\n * Fires when the object has been added to its parent object.\n *\n * @event Object3D#added\n * @type {Object}\n */\nconst _addedEvent = { type: 'added' };\n\n/**\n * Fires when the object has been removed from its parent object.\n *\n * @event Object3D#removed\n * @type {Object}\n */\nconst _removedEvent = { type: 'removed' };\n\n/**\n * Fires when a new child object has been added.\n *\n * @event Object3D#childadded\n * @type {Object}\n */\nconst _childaddedEvent = { type: 'childadded', child: null };\n\n/**\n * Fires when a child object has been removed.\n *\n * @event Object3D#childremoved\n * @type {Object}\n */\nconst _childremovedEvent = { type: 'childremoved', child: null };\n\n/**\n * This is the base class for most objects in three.js and provides a set of\n * properties and methods for manipulating objects in 3D space.\n *\n * @augments EventDispatcher\n */\nclass Object3D extends EventDispatcher {\n\n\t/**\n\t * Constructs a new 3D object.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isObject3D = true;\n\n\t\t/**\n\t\t * The ID of the 3D object.\n\t\t *\n\t\t * @name Object3D#id\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tObject.defineProperty( this, 'id', { value: _object3DId ++ } );\n\n\t\t/**\n\t\t * The UUID of the 3D object.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t\t/**\n\t\t * The name of the 3D object.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The type property is used for detecting the object type\n\t\t * in context of serialization/deserialization.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.type = 'Object3D';\n\n\t\t/**\n\t\t * A reference to the parent object.\n\t\t *\n\t\t * @type {?Object3D}\n\t\t * @default null\n\t\t */\n\t\tthis.parent = null;\n\n\t\t/**\n\t\t * An array holding the child 3D objects of this instance.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.children = [];\n\n\t\t/**\n\t\t * Defines the `up` direction of the 3D object which influences\n\t\t * the orientation via methods like {@link Object3D#lookAt}.\n\t\t *\n\t\t * The default values for all 3D objects is defined by `Object3D.DEFAULT_UP`.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\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\t/**\n\t\t\t * Represents the object's local position.\n\t\t\t *\n\t\t\t * @name Object3D#position\n\t\t\t * @type {Vector3}\n\t\t\t * @default (0,0,0)\n\t\t\t */\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\t/**\n\t\t\t * Represents the object's local rotation as Euler angles, in radians.\n\t\t\t *\n\t\t\t * @name Object3D#rotation\n\t\t\t * @type {Euler}\n\t\t\t * @default (0,0,0)\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\t/**\n\t\t\t * Represents the object's local rotation as Quaternions.\n\t\t\t *\n\t\t\t * @name Object3D#quaternion\n\t\t\t * @type {Quaternion}\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\t/**\n\t\t\t * Represents the object's local scale.\n\t\t\t *\n\t\t\t * @name Object3D#scale\n\t\t\t * @type {Vector3}\n\t\t\t * @default (1,1,1)\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\t/**\n\t\t\t * Represents the object's model-view matrix.\n\t\t\t *\n\t\t\t * @name Object3D#modelViewMatrix\n\t\t\t * @type {Matrix4}\n\t\t\t */\n\t\t\tmodelViewMatrix: {\n\t\t\t\tvalue: new Matrix4()\n\t\t\t},\n\t\t\t/**\n\t\t\t * Represents the object's normal matrix.\n\t\t\t *\n\t\t\t * @name Object3D#normalMatrix\n\t\t\t * @type {Matrix3}\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\t/**\n\t\t * Represents the object's transformation matrix in local space.\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.matrix = new Matrix4();\n\n\t\t/**\n\t\t * Represents the object's transformation matrix in world space.\n\t\t * If the 3D object has no parent, then it's identical to the local transformation matrix\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.matrixWorld = new Matrix4();\n\n\t\t/**\n\t\t * When set to `true`, the engine automatically computes the local matrix from position,\n\t\t * rotation and scale every frame.\n\t\t *\n\t\t * The default values for all 3D objects is defined by `Object3D.DEFAULT_MATRIX_AUTO_UPDATE`.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.matrixAutoUpdate = Object3D.DEFAULT_MATRIX_AUTO_UPDATE;\n\n\t\t/**\n\t\t * When set to `true`, the engine automatically computes the world matrix from the current local\n\t\t * matrix and the object's transformation hierarchy.\n\t\t *\n\t\t * The default values for all 3D objects is defined by `Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE`.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.matrixWorldAutoUpdate = Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE; // checked by the renderer\n\n\t\t/**\n\t\t * When set to `true`, it calculates the world matrix in that frame and resets this property\n\t\t * to `false`.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\t/**\n\t\t * The layer membership of the 3D object. The 3D object is only visible if it has\n\t\t * at least one layer in common with the camera in use. This property can also be\n\t\t * used to filter out unwanted objects in ray-intersection tests when using {@link Raycaster}.\n\t\t *\n\t\t * @type {Layers}\n\t\t */\n\t\tthis.layers = new Layers();\n\n\t\t/**\n\t\t * When set to `true`, the 3D object gets rendered.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.visible = true;\n\n\t\t/**\n\t\t * When set to `true`, the 3D object gets rendered into shadow maps.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.castShadow = false;\n\n\t\t/**\n\t\t * When set to `true`, the 3D object is affected by shadows in the scene.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.receiveShadow = false;\n\n\t\t/**\n\t\t * When set to `true`, the 3D object is honored by view frustum culling.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.frustumCulled = true;\n\n\t\t/**\n\t\t * This value allows the default rendering order of scene graph objects to be\n\t\t * overridden although opaque and transparent objects remain sorted independently.\n\t\t * When this property is set for an instance of {@link Group},all descendants\n\t\t * objects will be sorted and rendered together. Sorting is from lowest to highest\n\t\t * render order.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.renderOrder = 0;\n\n\t\t/**\n\t\t * An array holding the animation clips of the 3D object.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.animations = [];\n\n\t\t/**\n\t\t * Custom depth material to be used when rendering to the depth map. Can only be used\n\t\t * in context of meshes. When shadow-casting with a {@link DirectionalLight} or {@link SpotLight},\n\t\t * if you are modifying vertex positions in the vertex shader you must specify a custom depth\n\t\t * material for proper shadows.\n\t\t *\n\t\t * Only relevant in context of {@link WebGLRenderer}.\n\t\t *\n\t\t * @type {(Material|undefined)}\n\t\t * @default undefined\n\t\t */\n\t\tthis.customDepthMaterial = undefined;\n\n\t\t/**\n\t\t * Same as {@link Object3D#customDepthMaterial}, but used with {@link PointLight}.\n\t\t *\n\t\t * Only relevant in context of {@link WebGLRenderer}.\n\t\t *\n\t\t * @type {(Material|undefined)}\n\t\t * @default undefined\n\t\t */\n\t\tthis.customDistanceMaterial = undefined;\n\n\t\t/**\n\t\t * An object that can be used to store custom data about the 3D object. It\n\t\t * should not hold references to functions as these will not be cloned.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.userData = {};\n\n\t}\n\n\t/**\n\t * A callback that is executed immediately before a 3D object is rendered to a shadow map.\n\t *\n\t * @param {Renderer|WebGLRenderer} renderer - The renderer.\n\t * @param {Object3D} object - The 3D object.\n\t * @param {Camera} camera - The camera that is used to render the scene.\n\t * @param {Camera} shadowCamera - The shadow camera.\n\t * @param {BufferGeometry} geometry - The 3D object's geometry.\n\t * @param {Material} depthMaterial - The depth material.\n\t * @param {Object} group - The geometry group data.\n\t */\n\tonBeforeShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\t/**\n\t * A callback that is executed immediately after a 3D object is rendered to a shadow map.\n\t *\n\t * @param {Renderer|WebGLRenderer} renderer - The renderer.\n\t * @param {Object3D} object - The 3D object.\n\t * @param {Camera} camera - The camera that is used to render the scene.\n\t * @param {Camera} shadowCamera - The shadow camera.\n\t * @param {BufferGeometry} geometry - The 3D object's geometry.\n\t * @param {Material} depthMaterial - The depth material.\n\t * @param {Object} group - The geometry group data.\n\t */\n\tonAfterShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\t/**\n\t * A callback that is executed immediately before a 3D object is rendered.\n\t *\n\t * @param {Renderer|WebGLRenderer} renderer - The renderer.\n\t * @param {Object3D} object - The 3D object.\n\t * @param {Camera} camera - The camera that is used to render the scene.\n\t * @param {BufferGeometry} geometry - The 3D object's geometry.\n\t * @param {Material} material - The 3D object's material.\n\t * @param {Object} group - The geometry group data.\n\t */\n\tonBeforeRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\t/**\n\t * A callback that is executed immediately after a 3D object is rendered.\n\t *\n\t * @param {Renderer|WebGLRenderer} renderer - The renderer.\n\t * @param {Object3D} object - The 3D object.\n\t * @param {Camera} camera - The camera that is used to render the scene.\n\t * @param {BufferGeometry} geometry - The 3D object's geometry.\n\t * @param {Material} material - The 3D object's material.\n\t * @param {Object} group - The geometry group data.\n\t */\n\tonAfterRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\t/**\n\t * Applies the given transformation matrix to the object and updates the object's position,\n\t * rotation and scale.\n\t *\n\t * @param {Matrix4} matrix - The transformation matrix.\n\t */\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\t/**\n\t * Applies a rotation represented by given the quaternion to the 3D object.\n\t *\n\t * @param {Quaternion} q - The quaternion.\n\t * @return {Object3D} A reference to this instance.\n\t */\n\tapplyQuaternion( q ) {\n\n\t\tthis.quaternion.premultiply( q );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the given rotation represented as an axis/angle couple to the 3D object.\n\t *\n\t * @param {Vector3} axis - The (normalized) axis vector.\n\t * @param {number} angle - The angle in radians.\n\t */\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\t/**\n\t * Sets the given rotation represented as Euler angles to the 3D object.\n\t *\n\t * @param {Euler} euler - The Euler angles.\n\t */\n\tsetRotationFromEuler( euler ) {\n\n\t\tthis.quaternion.setFromEuler( euler, true );\n\n\t}\n\n\t/**\n\t * Sets the given rotation represented as rotation matrix to the 3D object.\n\t *\n\t * @param {Matrix4} m - Although a 4x4 matrix is expected, the upper 3x3 portion must be\n\t * a pure rotation matrix (i.e, unscaled).\n\t */\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\t/**\n\t * Sets the given rotation represented as a Quaternion to the 3D object.\n\t *\n\t * @param {Quaternion} q - The Quaternion\n\t */\n\tsetRotationFromQuaternion( q ) {\n\n\t\t// assumes q is normalized\n\n\t\tthis.quaternion.copy( q );\n\n\t}\n\n\t/**\n\t * Rotates the 3D object along an axis in local space.\n\t *\n\t * @param {Vector3} axis - The (normalized) axis vector.\n\t * @param {number} angle - The angle in radians.\n\t * @return {Object3D} A reference to this instance.\n\t */\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\t/**\n\t * Rotates the 3D object along an axis in world space.\n\t *\n\t * @param {Vector3} axis - The (normalized) axis vector.\n\t * @param {number} angle - The angle in radians.\n\t * @return {Object3D} A reference to this instance.\n\t */\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\t/**\n\t * Rotates the 3D object around its X axis in local space.\n\t *\n\t * @param {number} angle - The angle in radians.\n\t * @return {Object3D} A reference to this instance.\n\t */\n\trotateX( angle ) {\n\n\t\treturn this.rotateOnAxis( _xAxis, angle );\n\n\t}\n\n\t/**\n\t * Rotates the 3D object around its Y axis in local space.\n\t *\n\t * @param {number} angle - The angle in radians.\n\t * @return {Object3D} A reference to this instance.\n\t */\n\trotateY( angle ) {\n\n\t\treturn this.rotateOnAxis( _yAxis, angle );\n\n\t}\n\n\t/**\n\t * Rotates the 3D object around its Z axis in local space.\n\t *\n\t * @param {number} angle - The angle in radians.\n\t * @return {Object3D} A reference to this instance.\n\t */\n\trotateZ( angle ) {\n\n\t\treturn this.rotateOnAxis( _zAxis, angle );\n\n\t}\n\n\t/**\n\t * Translate the 3D object by a distance along the given axis in local space.\n\t *\n\t * @param {Vector3} axis - The (normalized) axis vector.\n\t * @param {number} distance - The distance in world units.\n\t * @return {Object3D} A reference to this instance.\n\t */\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\t/**\n\t * Translate the 3D object by a distance along its X-axis in local space.\n\t *\n\t * @param {number} distance - The distance in world units.\n\t * @return {Object3D} A reference to this instance.\n\t */\n\ttranslateX( distance ) {\n\n\t\treturn this.translateOnAxis( _xAxis, distance );\n\n\t}\n\n\t/**\n\t * Translate the 3D object by a distance along its Y-axis in local space.\n\t *\n\t * @param {number} distance - The distance in world units.\n\t * @return {Object3D} A reference to this instance.\n\t */\n\ttranslateY( distance ) {\n\n\t\treturn this.translateOnAxis( _yAxis, distance );\n\n\t}\n\n\t/**\n\t * Translate the 3D object by a distance along its Z-axis in local space.\n\t *\n\t * @param {number} distance - The distance in world units.\n\t * @return {Object3D} A reference to this instance.\n\t */\n\ttranslateZ( distance ) {\n\n\t\treturn this.translateOnAxis( _zAxis, distance );\n\n\t}\n\n\t/**\n\t * Converts the given vector from this 3D object's local space to world space.\n\t *\n\t * @param {Vector3} vector - The vector to convert.\n\t * @return {Vector3} The converted vector.\n\t */\n\tlocalToWorld( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( this.matrixWorld );\n\n\t}\n\n\t/**\n\t * Converts the given vector from this 3D object's word space to local space.\n\t *\n\t * @param {Vector3} vector - The vector to convert.\n\t * @return {Vector3} The converted vector.\n\t */\n\tworldToLocal( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( _m1$1.copy( this.matrixWorld ).invert() );\n\n\t}\n\n\t/**\n\t * Rotates the object to face a point in world space.\n\t *\n\t * This method does not support objects having non-uniformly-scaled parent(s).\n\t *\n\t * @param {number|Vector3} x - The x coordinate in world space. Alternatively, a vector representing a position in world space\n\t * @param {number} [y] - The y coordinate in world space.\n\t * @param {number} [z] - The z coordinate in world space.\n\t */\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$1.lookAt( _position$3, _target, this.up );\n\n\t\t} else {\n\n\t\t\t_m1$1.lookAt( _target, _position$3, this.up );\n\n\t\t}\n\n\t\tthis.quaternion.setFromRotationMatrix( _m1$1 );\n\n\t\tif ( parent ) {\n\n\t\t\t_m1$1.extractRotation( parent.matrixWorld );\n\t\t\t_q1.setFromRotationMatrix( _m1$1 );\n\t\t\tthis.quaternion.premultiply( _q1.invert() );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Adds the given 3D object as a child to this 3D object. An arbitrary number of\n\t * objects may be added. Any current parent on an object passed in here will be\n\t * removed, since an object can have at most one parent.\n\t *\n\t * @fires Object3D#added\n\t * @fires Object3D#childadded\n\t * @param {Object3D} object - The 3D object to add.\n\t * @return {Object3D} A reference to this instance.\n\t */\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\t/**\n\t * Removes the given 3D object as child from this 3D object.\n\t * An arbitrary number of objects may be removed.\n\t *\n\t * @fires Object3D#removed\n\t * @fires Object3D#childremoved\n\t * @param {Object3D} object - The 3D object to remove.\n\t * @return {Object3D} A reference to this instance.\n\t */\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\t/**\n\t * Removes this 3D object from its current parent.\n\t *\n\t * @fires Object3D#removed\n\t * @fires Object3D#childremoved\n\t * @return {Object3D} A reference to this instance.\n\t */\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\t/**\n\t * Removes all child objects.\n\t *\n\t * @fires Object3D#removed\n\t * @fires Object3D#childremoved\n\t * @return {Object3D} A reference to this instance.\n\t */\n\tclear() {\n\n\t\treturn this.remove( ... this.children );\n\n\t}\n\n\t/**\n\t * Adds the given 3D object as a child of this 3D object, while maintaining the object's world\n\t * transform. This method does not support scene graphs having non-uniformly-scaled nodes(s).\n\t *\n\t * @fires Object3D#added\n\t * @fires Object3D#childadded\n\t * @param {Object3D} object - The 3D object to attach.\n\t * @return {Object3D} A reference to this instance.\n\t */\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$1.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$1.multiply( object.parent.matrixWorld );\n\n\t\t}\n\n\t\tobject.applyMatrix4( _m1$1 );\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\t/**\n\t * Searches through the 3D object and its children, starting with the 3D object\n\t * itself, and returns the first with a matching ID.\n\t *\n\t * @param {number} id - The id.\n\t * @return {Object3D|undefined} The found 3D object. Returns `undefined` if no 3D object has been found.\n\t */\n\tgetObjectById( id ) {\n\n\t\treturn this.getObjectByProperty( 'id', id );\n\n\t}\n\n\t/**\n\t * Searches through the 3D object and its children, starting with the 3D object\n\t * itself, and returns the first with a matching name.\n\t *\n\t * @param {string} name - The name.\n\t * @return {Object3D|undefined} The found 3D object. Returns `undefined` if no 3D object has been found.\n\t */\n\tgetObjectByName( name ) {\n\n\t\treturn this.getObjectByProperty( 'name', name );\n\n\t}\n\n\t/**\n\t * Searches through the 3D object and its children, starting with the 3D object\n\t * itself, and returns the first with a matching property value.\n\t *\n\t * @param {string} name - The name of the property.\n\t * @param {any} value - The value.\n\t * @return {Object3D|undefined} The found 3D object. Returns `undefined` if no 3D object has been found.\n\t */\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\t/**\n\t * Searches through the 3D object and its children, starting with the 3D object\n\t * itself, and returns all 3D objects with a matching property value.\n\t *\n\t * @param {string} name - The name of the property.\n\t * @param {any} value - The value.\n\t * @param {Array} result - The method stores the result in this array.\n\t * @return {Array} The found 3D objects.\n\t */\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\t/**\n\t * Returns a vector representing the position of the 3D object in world space.\n\t *\n\t * @param {Vector3} target - The target vector the result is stored to.\n\t * @return {Vector3} The 3D object's position in world space.\n\t */\n\tgetWorldPosition( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn target.setFromMatrixPosition( this.matrixWorld );\n\n\t}\n\n\t/**\n\t * Returns a Quaternion representing the position of the 3D object in world space.\n\t *\n\t * @param {Quaternion} target - The target Quaternion the result is stored to.\n\t * @return {Quaternion} The 3D object's rotation in world space.\n\t */\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\t/**\n\t * Returns a vector representing the scale of the 3D object in world space.\n\t *\n\t * @param {Vector3} target - The target vector the result is stored to.\n\t * @return {Vector3} The 3D object's scale in world space.\n\t */\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\t/**\n\t * Returns a vector representing the (\"look\") direction of the 3D object in world space.\n\t *\n\t * @param {Vector3} target - The target vector the result is stored to.\n\t * @return {Vector3} The 3D object's direction in world space.\n\t */\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\t/**\n\t * Abstract method to get intersections between a casted ray and this\n\t * 3D object. Renderable 3D objects such as {@link Mesh}, {@link Line} or {@link Points}\n\t * implement this method in order to use raycasting.\n\t *\n\t * @abstract\n\t * @param {Raycaster} raycaster - The raycaster.\n\t * @param {Array} intersects - An array holding the result of the method.\n\t */\n\traycast( /* raycaster, intersects */ ) {}\n\n\t/**\n\t * Executes the callback on this 3D object and all descendants.\n\t *\n\t * Note: Modifying the scene graph inside the callback is discouraged.\n\t *\n\t * @param {Function} callback - A callback function that allows to process the current 3D object.\n\t */\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\t/**\n\t * Like {@link Object3D#traverse}, but the callback will only be executed for visible 3D objects.\n\t * Descendants of invisible 3D objects are not traversed.\n\t *\n\t * Note: Modifying the scene graph inside the callback is discouraged.\n\t *\n\t * @param {Function} callback - A callback function that allows to process the current 3D object.\n\t */\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\t/**\n\t * Like {@link Object3D#traverse}, but the callback will only be executed for all ancestors.\n\t *\n\t * Note: Modifying the scene graph inside the callback is discouraged.\n\t *\n\t * @param {Function} callback - A callback function that allows to process the current 3D object.\n\t */\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\t/**\n\t * Updates the transformation matrix in local space by computing it from the current\n\t * position, rotation and scale values.\n\t */\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\t/**\n\t * Updates the transformation matrix in world space of this 3D objects and its descendants.\n\t *\n\t * To ensure correct results, this method also recomputes the 3D object's transformation matrix in\n\t * local space. The computation of the local and world matrix can be controlled with the\n\t * {@link Object3D#matrixAutoUpdate} and {@link Object3D#matrixWorldAutoUpdate} flags which are both\n\t * `true` by default. Set these flags to `false` if you need more control over the update matrix process.\n\t *\n\t * @param {boolean} [force=false] - When set to `true`, a recomputation of world matrices is forced even\n\t * when {@link Object3D#matrixWorldAutoUpdate} is set to `false`.\n\t */\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\t/**\n\t * An alternative version of {@link Object3D#updateMatrixWorld} with more control over the\n\t * update of ancestor and descendant nodes.\n\t *\n\t * @param {boolean} [updateParents=false] Whether ancestor nodes should be updated or not.\n\t * @param {boolean} [updateChildren=false] Whether descendant nodes should be updated or not.\n\t */\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\t/**\n\t * Serializes the 3D object into JSON.\n\t *\n\t * @param {?(Object|string)} meta - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized 3D object.\n\t * @see {@link ObjectLoader#parse}\n\t */\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.7,\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.geometryInfo = this._geometryInfo.map( info => ( {\n\t\t\t\t...info,\n\t\t\t\tboundingBox: info.boundingBox ? info.boundingBox.toJSON() : undefined,\n\t\t\t\tboundingSphere: info.boundingSphere ? info.boundingSphere.toJSON() : undefined\n\t\t\t} ) );\n\t\t\tobject.instanceInfo = this._instanceInfo.map( info => ( { ...info } ) );\n\n\t\t\tobject.availableInstanceIds = this._availableInstanceIds.slice();\n\t\t\tobject.availableGeometryIds = this._availableGeometryIds.slice();\n\n\t\t\tobject.nextIndexStart = this._nextIndexStart;\n\t\t\tobject.nextVertexStart = this._nextVertexStart;\n\t\t\tobject.geometryCount = this._geometryCount;\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\n\t\t\tobject.matricesTexture = this._matricesTexture.toJSON( meta );\n\n\t\t\tobject.indirectTexture = this._indirectTexture.toJSON( meta );\n\n\t\t\tif ( this._colorsTexture !== null ) {\n\n\t\t\t\tobject.colorsTexture = this._colorsTexture.toJSON( meta );\n\n\t\t\t}\n\n\t\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\t\tobject.boundingSphere = this.boundingSphere.toJSON();\n\n\t\t\t}\n\n\t\t\tif ( this.boundingBox !== null ) {\n\n\t\t\t\tobject.boundingBox = this.boundingBox.toJSON();\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\t/**\n\t * Returns a new 3D object with copied values from this instance.\n\t *\n\t * @param {boolean} [recursive=true] - When set to `true`, descendants of the 3D object are also cloned.\n\t * @return {Object3D} A clone of this instance.\n\t */\n\tclone( recursive ) {\n\n\t\treturn new this.constructor().copy( this, recursive );\n\n\t}\n\n\t/**\n\t * Copies the values of the given 3D object to this instance.\n\t *\n\t * @param {Object3D} source - The 3D object to copy.\n\t * @param {boolean} [recursive=true] - When set to `true`, descendants of the 3D object are cloned.\n\t * @return {Object3D} A reference to this instance.\n\t */\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\n/**\n * The default up direction for objects, also used as the default\n * position for {@link DirectionalLight} and {@link HemisphereLight}.\n *\n * @static\n * @type {Vector3}\n * @default (0,1,0)\n */\nObject3D.DEFAULT_UP = /*@__PURE__*/ new Vector3( 0, 1, 0 );\n\n/**\n * The default setting for {@link Object3D#matrixAutoUpdate} for\n * newly created 3D objects.\n *\n * @static\n * @type {boolean}\n * @default true\n */\nObject3D.DEFAULT_MATRIX_AUTO_UPDATE = true;\n\n/**\n * The default setting for {@link Object3D#matrixWorldAutoUpdate} for\n * newly created 3D objects.\n *\n * @static\n * @type {boolean}\n * @default true\n */\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\nconst _v40 = /*@__PURE__*/ new Vector4();\nconst _v41 = /*@__PURE__*/ new Vector4();\nconst _v42 = /*@__PURE__*/ new Vector4();\n\n/**\n * A geometric triangle as defined by three vectors representing its three corners.\n */\nclass Triangle {\n\n\t/**\n\t * Constructs a new triangle.\n\t *\n\t * @param {Vector3} [a=(0,0,0)] - The first corner of the triangle.\n\t * @param {Vector3} [b=(0,0,0)] - The second corner of the triangle.\n\t * @param {Vector3} [c=(0,0,0)] - The third corner of the triangle.\n\t */\n\tconstructor( a = new Vector3(), b = new Vector3(), c = new Vector3() ) {\n\n\t\t/**\n\t\t * The first corner of the triangle.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.a = a;\n\n\t\t/**\n\t\t * The second corner of the triangle.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.b = b;\n\n\t\t/**\n\t\t * The third corner of the triangle.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.c = c;\n\n\t}\n\n\t/**\n\t * Computes the normal vector of a triangle.\n\t *\n\t * @param {Vector3} a - The first corner of the triangle.\n\t * @param {Vector3} b - The second corner of the triangle.\n\t * @param {Vector3} c - The third corner of the triangle.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The triangle's normal.\n\t */\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/**\n\t * Computes a barycentric coordinates from the given vector.\n\t * Returns `null` if the triangle is degenerate.\n\t *\n\t * @param {Vector3} point - A point in 3D space.\n\t * @param {Vector3} a - The first corner of the triangle.\n\t * @param {Vector3} b - The second corner of the triangle.\n\t * @param {Vector3} c - The third corner of the triangle.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The barycentric coordinates for the given point\n\t */\n\tstatic getBarycoord( point, a, b, c, target ) {\n\n\t\t// based on: http://www.blackpawn.com/texts/pointinpoly/default.html\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\t/**\n\t * Returns `true` if the given point, when projected onto the plane of the\n\t * triangle, lies within the triangle.\n\t *\n\t * @param {Vector3} point - The point in 3D space to test.\n\t * @param {Vector3} a - The first corner of the triangle.\n\t * @param {Vector3} b - The second corner of the triangle.\n\t * @param {Vector3} c - The third corner of the triangle.\n\t * @return {boolean} Whether the given point, when projected onto the plane of the\n\t * triangle, lies within the triangle or not.\n\t */\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\t/**\n\t * Computes the value barycentrically interpolated for the given point on the\n\t * triangle. Returns `null` if the triangle is degenerate.\n\t *\n\t * @param {Vector3} point - Position of interpolated point.\n\t * @param {Vector3} p1 - The first corner of the triangle.\n\t * @param {Vector3} p2 - The second corner of the triangle.\n\t * @param {Vector3} p3 - The third corner of the triangle.\n\t * @param {Vector3} v1 - Value to interpolate of first vertex.\n\t * @param {Vector3} v2 - Value to interpolate of second vertex.\n\t * @param {Vector3} v3 - Value to interpolate of third vertex.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The interpolated value.\n\t */\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\t/**\n\t * Computes the value barycentrically interpolated for the given attribute and indices.\n\t *\n\t * @param {BufferAttribute} attr - The attribute to interpolate.\n\t * @param {number} i1 - Index of first vertex.\n\t * @param {number} i2 - Index of second vertex.\n\t * @param {number} i3 - Index of third vertex.\n\t * @param {Vector3} barycoord - The barycoordinate value to use to interpolate.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The interpolated attribute value.\n\t */\n\tstatic getInterpolatedAttribute( attr, i1, i2, i3, barycoord, target ) {\n\n\t\t_v40.setScalar( 0 );\n\t\t_v41.setScalar( 0 );\n\t\t_v42.setScalar( 0 );\n\n\t\t_v40.fromBufferAttribute( attr, i1 );\n\t\t_v41.fromBufferAttribute( attr, i2 );\n\t\t_v42.fromBufferAttribute( attr, i3 );\n\n\t\ttarget.setScalar( 0 );\n\t\ttarget.addScaledVector( _v40, barycoord.x );\n\t\ttarget.addScaledVector( _v41, barycoord.y );\n\t\ttarget.addScaledVector( _v42, barycoord.z );\n\n\t\treturn target;\n\n\t}\n\n\t/**\n\t * Returns `true` if the triangle is oriented towards the given direction.\n\t *\n\t * @param {Vector3} a - The first corner of the triangle.\n\t * @param {Vector3} b - The second corner of the triangle.\n\t * @param {Vector3} c - The third corner of the triangle.\n\t * @param {Vector3} direction - The (normalized) direction vector.\n\t * @return {boolean} Whether the triangle is oriented towards the given direction or not.\n\t */\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\t/**\n\t * Sets the triangle's vertices by copying the given values.\n\t *\n\t * @param {Vector3} a - The first corner of the triangle.\n\t * @param {Vector3} b - The second corner of the triangle.\n\t * @param {Vector3} c - The third corner of the triangle.\n\t * @return {Triangle} A reference to this triangle.\n\t */\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\t/**\n\t * Sets the triangle's vertices by copying the given array values.\n\t *\n\t * @param {Array} points - An array with 3D points.\n\t * @param {number} i0 - The array index representing the first corner of the triangle.\n\t * @param {number} i1 - The array index representing the second corner of the triangle.\n\t * @param {number} i2 - The array index representing the third corner of the triangle.\n\t * @return {Triangle} A reference to this triangle.\n\t */\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\t/**\n\t * Sets the triangle's vertices by copying the given attribute values.\n\t *\n\t * @param {BufferAttribute} attribute - A buffer attribute with 3D points data.\n\t * @param {number} i0 - The attribute index representing the first corner of the triangle.\n\t * @param {number} i1 - The attribute index representing the second corner of the triangle.\n\t * @param {number} i2 - The attribute index representing the third corner of the triangle.\n\t * @return {Triangle} A reference to this triangle.\n\t */\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\t/**\n\t * Returns a new triangle with copied values from this instance.\n\t *\n\t * @return {Triangle} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the values of the given triangle to this instance.\n\t *\n\t * @param {Triangle} triangle - The triangle to copy.\n\t * @return {Triangle} A reference to this triangle.\n\t */\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\t/**\n\t * Computes the area of the triangle.\n\t *\n\t * @return {number} The triangle's area.\n\t */\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\t/**\n\t * Computes the midpoint of the triangle.\n\t *\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The triangle's midpoint.\n\t */\n\tgetMidpoint( target ) {\n\n\t\treturn target.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 );\n\n\t}\n\n\t/**\n\t * Computes the normal of the triangle.\n\t *\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The triangle's normal.\n\t */\n\tgetNormal( target ) {\n\n\t\treturn Triangle.getNormal( this.a, this.b, this.c, target );\n\n\t}\n\n\t/**\n\t * Computes a plane the triangle lies within.\n\t *\n\t * @param {Plane} target - The target vector that is used to store the method's result.\n\t * @return {Plane} The plane the triangle lies within.\n\t */\n\tgetPlane( target ) {\n\n\t\treturn target.setFromCoplanarPoints( this.a, this.b, this.c );\n\n\t}\n\n\t/**\n\t * Computes a barycentric coordinates from the given vector.\n\t * Returns `null` if the triangle is degenerate.\n\t *\n\t * @param {Vector3} point - A point in 3D space.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The barycentric coordinates for the given point\n\t */\n\tgetBarycoord( point, target ) {\n\n\t\treturn Triangle.getBarycoord( point, this.a, this.b, this.c, target );\n\n\t}\n\n\t/**\n\t * Computes the value barycentrically interpolated for the given point on the\n\t * triangle. Returns `null` if the triangle is degenerate.\n\t *\n\t * @param {Vector3} point - Position of interpolated point.\n\t * @param {Vector3} v1 - Value to interpolate of first vertex.\n\t * @param {Vector3} v2 - Value to interpolate of second vertex.\n\t * @param {Vector3} v3 - Value to interpolate of third vertex.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The interpolated value.\n\t */\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\t/**\n\t * Returns `true` if the given point, when projected onto the plane of the\n\t * triangle, lies within the triangle.\n\t *\n\t * @param {Vector3} point - The point in 3D space to test.\n\t * @return {boolean} Whether the given point, when projected onto the plane of the\n\t * triangle, lies within the triangle or not.\n\t */\n\tcontainsPoint( point ) {\n\n\t\treturn Triangle.containsPoint( point, this.a, this.b, this.c );\n\n\t}\n\n\t/**\n\t * Returns `true` if the triangle is oriented towards the given direction.\n\t *\n\t * @param {Vector3} direction - The (normalized) direction vector.\n\t * @return {boolean} Whether the triangle is oriented towards the given direction or not.\n\t */\n\tisFrontFacing( direction ) {\n\n\t\treturn Triangle.isFrontFacing( this.a, this.b, this.c, direction );\n\n\t}\n\n\t/**\n\t * Returns `true` if this triangle intersects with the given box.\n\t *\n\t * @param {Box3} box - The box to intersect.\n\t * @return {boolean} Whether this triangle intersects with the given box or not.\n\t */\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsTriangle( this );\n\n\t}\n\n\t/**\n\t * Returns the closest point on the triangle to the given point.\n\t *\n\t * @param {Vector3} p - The point to compute the closest point for.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The closest point on the triangle.\n\t */\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\t/**\n\t * Returns `true` if this triangle is equal with the given one.\n\t *\n\t * @param {Triangle} triangle - The triangle to test for equality.\n\t * @return {boolean} Whether this triangle is equal with the given one.\n\t */\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\n/**\n * A Color instance is represented by RGB components in the linear working\n * color space, which defaults to `LinearSRGBColorSpace`. Inputs\n * conventionally using `SRGBColorSpace` (such as hexadecimals and CSS\n * strings) are converted to the working color space automatically.\n *\n * ```js\n * // converted automatically from SRGBColorSpace to LinearSRGBColorSpace\n * const color = new THREE.Color().setHex( 0x112233 );\n * ```\n * Source color spaces may be specified explicitly, to ensure correct conversions.\n * ```js\n * // assumed already LinearSRGBColorSpace; no conversion\n * const color = new THREE.Color().setRGB( 0.5, 0.5, 0.5 );\n *\n * // converted explicitly from SRGBColorSpace to LinearSRGBColorSpace\n * const color = new THREE.Color().setRGB( 0.5, 0.5, 0.5, SRGBColorSpace );\n * ```\n * If THREE.ColorManagement is disabled, no conversions occur. For details,\n * see Color management. Iterating through a Color instance will yield\n * its components (r, g, b) in the corresponding order. A Color can be initialised\n * in any of the following ways:\n * ```js\n * //empty constructor - will default white\n * const color1 = new THREE.Color();\n *\n * //Hexadecimal color (recommended)\n * const color2 = new THREE.Color( 0xff0000 );\n *\n * //RGB string\n * const color3 = new THREE.Color(\"rgb(255, 0, 0)\");\n * const color4 = new THREE.Color(\"rgb(100%, 0%, 0%)\");\n *\n * //X11 color name - all 140 color names are supported.\n * //Note the lack of CamelCase in the name\n * const color5 = new THREE.Color( 'skyblue' );\n * //HSL string\n * const color6 = new THREE.Color(\"hsl(0, 100%, 50%)\");\n *\n * //Separate RGB values between 0 and 1\n * const color7 = new THREE.Color( 1, 0, 0 );\n * ```\n */\nclass Color {\n\n\t/**\n\t * Constructs a new color.\n\t *\n\t * Note that standard method of specifying color in three.js is with a hexadecimal triplet,\n\t * and that method is used throughout the rest of the documentation.\n\t *\n\t * @param {(number|string|Color)} [r] - The red component of the color. If `g` and `b` are\n\t * not provided, it can be hexadecimal triplet, a CSS-style string or another `Color` instance.\n\t * @param {number} [g] - The green component.\n\t * @param {number} [b] - The blue component.\n\t */\n\tconstructor( r, g, b ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isColor = true;\n\n\t\t/**\n\t\t * The red component.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.r = 1;\n\n\t\t/**\n\t\t * The green component.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.g = 1;\n\n\t\t/**\n\t\t * The blue component.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.b = 1;\n\n\t\treturn this.set( r, g, b );\n\n\t}\n\n\t/**\n\t * Sets the colors's components from the given values.\n\t *\n\t * @param {(number|string|Color)} [r] - The red component of the color. If `g` and `b` are\n\t * not provided, it can be hexadecimal triplet, a CSS-style string or another `Color` instance.\n\t * @param {number} [g] - The green component.\n\t * @param {number} [b] - The blue component.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Sets the colors's components to the given scalar value.\n\t *\n\t * @param {number} scalar - The scalar value.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Sets this color from a hexadecimal value.\n\t *\n\t * @param {number} hex - The hexadecimal value.\n\t * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n\t * @return {Color} A reference to this color.\n\t */\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.colorSpaceToWorking( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets this color from RGB values.\n\t *\n\t * @param {number} r - Red channel value between `0.0` and `1.0`.\n\t * @param {number} g - Green channel value between `0.0` and `1.0`.\n\t * @param {number} b - Blue channel value between `0.0` and `1.0`.\n\t * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n\t * @return {Color} A reference to this color.\n\t */\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.colorSpaceToWorking( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets this color from RGB values.\n\t *\n\t * @param {number} h - Hue value between `0.0` and `1.0`.\n\t * @param {number} s - Saturation value between `0.0` and `1.0`.\n\t * @param {number} l - Lightness value between `0.0` and `1.0`.\n\t * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n\t * @return {Color} A reference to this color.\n\t */\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.colorSpaceToWorking( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets this color from a CSS-style string. For example, `rgb(250, 0,0)`,\n\t * `rgb(100%, 0%, 0%)`, `hsl(0, 100%, 50%)`, `#ff0000`, `#f00`, or `red` ( or\n\t * any [X11 color name]{@link https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart} -\n\t * all 140 color names are supported).\n\t *\n\t * @param {string} style - Color as a CSS-style string.\n\t * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Sets this color from a color name. Faster than {@link Color#setStyle} if\n\t * you don't need the other CSS-style formats.\n\t *\n\t * For convenience, the list of names is exposed in `Color.NAMES` as a hash.\n\t * ```js\n\t * Color.NAMES.aliceblue // returns 0xF0F8FF\n\t * ```\n\t *\n\t * @param {string} style - The color name.\n\t * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Returns a new color with copied values from this instance.\n\t *\n\t * @return {Color} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor( this.r, this.g, this.b );\n\n\t}\n\n\t/**\n\t * Copies the values of the given color to this instance.\n\t *\n\t * @param {Color} color - The color to copy.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Copies the given color into this color, and then converts this color from\n\t * `SRGBColorSpace` to `LinearSRGBColorSpace`.\n\t *\n\t * @param {Color} color - The color to copy/convert.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Copies the given color into this color, and then converts this color from\n\t * `LinearSRGBColorSpace` to `SRGBColorSpace`.\n\t *\n\t * @param {Color} color - The color to copy/convert.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Converts this color from `SRGBColorSpace` to `LinearSRGBColorSpace`.\n\t *\n\t * @return {Color} A reference to this color.\n\t */\n\tconvertSRGBToLinear() {\n\n\t\tthis.copySRGBToLinear( this );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Converts this color from `LinearSRGBColorSpace` to `SRGBColorSpace`.\n\t *\n\t * @return {Color} A reference to this color.\n\t */\n\tconvertLinearToSRGB() {\n\n\t\tthis.copyLinearToSRGB( this );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the hexadecimal value of this color.\n\t *\n\t * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n\t * @return {number} The hexadecimal value.\n\t */\n\tgetHex( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.workingToColorSpace( _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\t/**\n\t * Returns the hexadecimal value of this color as a string (for example, 'FFFFFF').\n\t *\n\t * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n\t * @return {string} The hexadecimal value as a string.\n\t */\n\tgetHexString( colorSpace = SRGBColorSpace ) {\n\n\t\treturn ( '000000' + this.getHex( colorSpace ).toString( 16 ) ).slice( -6 );\n\n\t}\n\n\t/**\n\t * Converts the colors RGB values into the HSL format and stores them into the\n\t * given target object.\n\t *\n\t * @param {{h:number,s:number,l:number}} target - The target object that is used to store the method's result.\n\t * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n\t * @return {{h:number,s:number,l:number}} The HSL representation of this color.\n\t */\n\tgetHSL( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\n\t\tColorManagement.workingToColorSpace( _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\t/**\n\t * Returns the RGB values of this color and stores them into the given target object.\n\t *\n\t * @param {Color} target - The target color that is used to store the method's result.\n\t * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n\t * @return {Color} The RGB representation of this color.\n\t */\n\tgetRGB( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tColorManagement.workingToColorSpace( _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\t/**\n\t * Returns the value of this color as a CSS style string. Example: `rgb(255,0,0)`.\n\t *\n\t * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n\t * @return {string} The CSS representation of this color.\n\t */\n\tgetStyle( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.workingToColorSpace( _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\t/**\n\t * Adds the given HSL values to this color's values.\n\t * Internally, this converts the color's RGB values to HSL, adds HSL\n\t * and then converts the color back to RGB.\n\t *\n\t * @param {number} h - Hue value between `0.0` and `1.0`.\n\t * @param {number} s - Saturation value between `0.0` and `1.0`.\n\t * @param {number} l - Lightness value between `0.0` and `1.0`.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Adds the RGB values of the given color to the RGB values of this color.\n\t *\n\t * @param {Color} color - The color to add.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Adds the RGB values of the given colors and stores the result in this instance.\n\t *\n\t * @param {Color} color1 - The first color.\n\t * @param {Color} color2 - The second color.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Adds the given scalar value to the RGB values of this color.\n\t *\n\t * @param {number} s - The scalar to add.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Subtracts the RGB values of the given color from the RGB values of this color.\n\t *\n\t * @param {Color} color - The color to subtract.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Multiplies the RGB values of the given color with the RGB values of this color.\n\t *\n\t * @param {Color} color - The color to multiply.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Multiplies the given scalar value with the RGB values of this color.\n\t *\n\t * @param {number} s - The scalar to multiply.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Linearly interpolates this color's RGB values toward the RGB values of the\n\t * given color. The alpha argument can be thought of as the ratio between\n\t * the two colors, where `0.0` is this color and `1.0` is the first argument.\n\t *\n\t * @param {Color} color - The color to converge on.\n\t * @param {number} alpha - The interpolation factor in the closed interval `[0,1]`.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Linearly interpolates between the given colors and stores the result in this instance.\n\t * The alpha argument can be thought of as the ratio between the two colors, where `0.0`\n\t * is the first and `1.0` is the second color.\n\t *\n\t * @param {Color} color1 - The first color.\n\t * @param {Color} color2 - The second color.\n\t * @param {number} alpha - The interpolation factor in the closed interval `[0,1]`.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Linearly interpolates this color's HSL values toward the HSL values of the\n\t * given color. It differs from {@link Color#lerp} by not interpolating straight\n\t * from one color to the other, but instead going through all the hues in between\n\t * those two colors. The alpha argument can be thought of as the ratio between\n\t * the two colors, where 0.0 is this color and 1.0 is the first argument.\n\t *\n\t * @param {Color} color - The color to converge on.\n\t * @param {number} alpha - The interpolation factor in the closed interval `[0,1]`.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Sets the color's RGB components from the given 3D vector.\n\t *\n\t * @param {Vector3} v - The vector to set.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Transforms this color with the given 3x3 matrix.\n\t *\n\t * @param {Matrix3} m - The matrix.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Returns `true` if this color is equal with the given one.\n\t *\n\t * @param {Color} c - The color to test for equality.\n\t * @return {boolean} Whether this bounding color is equal with the given one.\n\t */\n\tequals( c ) {\n\n\t\treturn ( c.r === this.r ) && ( c.g === this.g ) && ( c.b === this.b );\n\n\t}\n\n\t/**\n\t * Sets this color's RGB components from the given array.\n\t *\n\t * @param {Array} array - An array holding the RGB values.\n\t * @param {number} [offset=0] - The offset into the array.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Writes the RGB components of this color to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the color components.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The color components.\n\t */\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\t/**\n\t * Sets the components of this color from the given buffer attribute.\n\t *\n\t * @param {BufferAttribute} attribute - The buffer attribute holding color data.\n\t * @param {number} index - The index into the attribute.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * This methods defines the serialization result of this class. Returns the color\n\t * as a hexadecimal value.\n\t *\n\t * @return {number} The hexadecimal value.\n\t */\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\n/**\n * A dictionary with X11 color names.\n *\n * Note that multiple words such as Dark Orange become the string 'darkorange'.\n *\n * @static\n * @type {Object}\n */\nColor.NAMES = _colorKeywords;\n\nlet _materialId = 0;\n\n/**\n * Abstract base class for materials.\n *\n * Materials define the appearance of renderable 3D objects.\n *\n * @abstract\n * @augments EventDispatcher\n */\nclass Material extends EventDispatcher {\n\n\t/**\n\t * Constructs a new material.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMaterial = true;\n\n\t\t/**\n\t\t * The ID of the material.\n\t\t *\n\t\t * @name Material#id\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tObject.defineProperty( this, 'id', { value: _materialId ++ } );\n\n\t\t/**\n\t\t * The UUID of the material.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t\t/**\n\t\t * The name of the material.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The type property is used for detecting the object type\n\t\t * in context of serialization/deserialization.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.type = 'Material';\n\n\t\t/**\n\t\t * Defines the blending type of the material.\n\t\t *\n\t\t * It must be set to `CustomBlending` if custom blending properties like\n\t\t * {@link Material#blendSrc}, {@link Material#blendDst} or {@link Material#blendEquation}\n\t\t * should have any effect.\n\t\t *\n\t\t * @type {(NoBlending|NormalBlending|AdditiveBlending|SubtractiveBlending|MultiplyBlending|CustomBlending)}\n\t\t * @default NormalBlending\n\t\t */\n\t\tthis.blending = NormalBlending;\n\n\t\t/**\n\t\t * Defines which side of faces will be rendered - front, back or both.\n\t\t *\n\t\t * @type {(FrontSide|BackSide|DoubleSide)}\n\t\t * @default FrontSide\n\t\t */\n\t\tthis.side = FrontSide;\n\n\t\t/**\n\t\t * If set to `true`, vertex colors should be used.\n\t\t *\n\t\t * The engine supports RGB and RGBA vertex colors depending on whether a three (RGB) or\n\t\t * four (RGBA) component color buffer attribute is used.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.vertexColors = false;\n\n\t\t/**\n\t\t * Defines how transparent the material is.\n\t\t * A value of `0.0` indicates fully transparent, `1.0` is fully opaque.\n\t\t *\n\t\t * If the {@link Material#transparent} is not set to `true`,\n\t\t * the material will remain fully opaque and this value will only affect its color.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.opacity = 1;\n\n\t\t/**\n\t\t * Defines whether this material is transparent. This has an effect on\n\t\t * rendering as transparent objects need special treatment and are rendered\n\t\t * after non-transparent objects.\n\t\t *\n\t\t * When set to true, the extent to which the material is transparent is\n\t\t * controlled by {@link Material#opacity}.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.transparent = false;\n\n\t\t/**\n\t\t * Enables alpha hashed transparency, an alternative to {@link Material#transparent} or\n\t\t * {@link Material#alphaTest}. The material will not be rendered if opacity is lower than\n\t\t * a random threshold. Randomization introduces some grain or noise, but approximates alpha\n\t\t * blending without the associated problems of sorting. Using TAA can reduce the resulting noise.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.alphaHash = false;\n\n\t\t/**\n\t\t * Defines the blending source factor.\n\t\t *\n\t\t * @type {(ZeroFactor|OneFactor|SrcColorFactor|OneMinusSrcColorFactor|SrcAlphaFactor|OneMinusSrcAlphaFactor|DstAlphaFactor|OneMinusDstAlphaFactor|DstColorFactor|OneMinusDstColorFactor|SrcAlphaSaturateFactor|ConstantColorFactor|OneMinusConstantColorFactor|ConstantAlphaFactor|OneMinusConstantAlphaFactor)}\n\t\t * @default SrcAlphaFactor\n\t\t */\n\t\tthis.blendSrc = SrcAlphaFactor;\n\n\t\t/**\n\t\t * Defines the blending destination factor.\n\t\t *\n\t\t * @type {(ZeroFactor|OneFactor|SrcColorFactor|OneMinusSrcColorFactor|SrcAlphaFactor|OneMinusSrcAlphaFactor|DstAlphaFactor|OneMinusDstAlphaFactor|DstColorFactor|OneMinusDstColorFactor|SrcAlphaSaturateFactor|ConstantColorFactor|OneMinusConstantColorFactor|ConstantAlphaFactor|OneMinusConstantAlphaFactor)}\n\t\t * @default OneMinusSrcAlphaFactor\n\t\t */\n\t\tthis.blendDst = OneMinusSrcAlphaFactor;\n\n\t\t/**\n\t\t * Defines the blending equation.\n\t\t *\n\t\t * @type {(AddEquation|SubtractEquation|ReverseSubtractEquation|MinEquation|MaxEquation)}\n\t\t * @default AddEquation\n\t\t */\n\t\tthis.blendEquation = AddEquation;\n\n\t\t/**\n\t\t * Defines the blending source alpha factor.\n\t\t *\n\t\t * @type {?(ZeroFactor|OneFactor|SrcColorFactor|OneMinusSrcColorFactor|SrcAlphaFactor|OneMinusSrcAlphaFactor|DstAlphaFactor|OneMinusDstAlphaFactor|DstColorFactor|OneMinusDstColorFactor|SrcAlphaSaturateFactor|ConstantColorFactor|OneMinusConstantColorFactor|ConstantAlphaFactor|OneMinusConstantAlphaFactor)}\n\t\t * @default null\n\t\t */\n\t\tthis.blendSrcAlpha = null;\n\n\t\t/**\n\t\t * Defines the blending destination alpha factor.\n\t\t *\n\t\t * @type {?(ZeroFactor|OneFactor|SrcColorFactor|OneMinusSrcColorFactor|SrcAlphaFactor|OneMinusSrcAlphaFactor|DstAlphaFactor|OneMinusDstAlphaFactor|DstColorFactor|OneMinusDstColorFactor|SrcAlphaSaturateFactor|ConstantColorFactor|OneMinusConstantColorFactor|ConstantAlphaFactor|OneMinusConstantAlphaFactor)}\n\t\t * @default null\n\t\t */\n\t\tthis.blendDstAlpha = null;\n\n\t\t/**\n\t\t * Defines the blending equation of the alpha channel.\n\t\t *\n\t\t * @type {?(AddEquation|SubtractEquation|ReverseSubtractEquation|MinEquation|MaxEquation)}\n\t\t * @default null\n\t\t */\n\t\tthis.blendEquationAlpha = null;\n\n\t\t/**\n\t\t * Represents the RGB values of the constant blend color.\n\t\t *\n\t\t * This property has only an effect when using custom blending with `ConstantColor` or `OneMinusConstantColor`.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.blendColor = new Color( 0, 0, 0 );\n\n\t\t/**\n\t\t * Represents the alpha value of the constant blend color.\n\t\t *\n\t\t * This property has only an effect when using custom blending with `ConstantAlpha` or `OneMinusConstantAlpha`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.blendAlpha = 0;\n\n\t\t/**\n\t\t * Defines the depth function.\n\t\t *\n\t\t * @type {(NeverDepth|AlwaysDepth|LessDepth|LessEqualDepth|EqualDepth|GreaterEqualDepth|GreaterDepth|NotEqualDepth)}\n\t\t * @default LessEqualDepth\n\t\t */\n\t\tthis.depthFunc = LessEqualDepth;\n\n\t\t/**\n\t\t * Whether to have depth test enabled when rendering this material.\n\t\t * When the depth test is disabled, the depth write will also be implicitly disabled.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.depthTest = true;\n\n\t\t/**\n\t\t * Whether rendering this material has any effect on the depth buffer.\n\t\t *\n\t\t * When drawing 2D overlays it can be useful to disable the depth writing in\n\t\t * order to layer several things together without creating z-index artifacts.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.depthWrite = true;\n\n\t\t/**\n\t\t * The bit mask to use when writing to the stencil buffer.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0xff\n\t\t */\n\t\tthis.stencilWriteMask = 0xff;\n\n\t\t/**\n\t\t * The stencil comparison function to use.\n\t\t *\n\t\t * @type {NeverStencilFunc|LessStencilFunc|EqualStencilFunc|LessEqualStencilFunc|GreaterStencilFunc|NotEqualStencilFunc|GreaterEqualStencilFunc|AlwaysStencilFunc}\n\t\t * @default AlwaysStencilFunc\n\t\t */\n\t\tthis.stencilFunc = AlwaysStencilFunc;\n\n\t\t/**\n\t\t * The value to use when performing stencil comparisons or stencil operations.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.stencilRef = 0;\n\n\t\t/**\n\t\t * The bit mask to use when comparing against the stencil buffer.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0xff\n\t\t */\n\t\tthis.stencilFuncMask = 0xff;\n\n\t\t/**\n\t\t * Which stencil operation to perform when the comparison function returns `false`.\n\t\t *\n\t\t * @type {ZeroStencilOp|KeepStencilOp|ReplaceStencilOp|IncrementStencilOp|DecrementStencilOp|IncrementWrapStencilOp|DecrementWrapStencilOp|InvertStencilOp}\n\t\t * @default KeepStencilOp\n\t\t */\n\t\tthis.stencilFail = KeepStencilOp;\n\n\t\t/**\n\t\t * Which stencil operation to perform when the comparison function returns\n\t\t * `true` but the depth test fails.\n\t\t *\n\t\t * @type {ZeroStencilOp|KeepStencilOp|ReplaceStencilOp|IncrementStencilOp|DecrementStencilOp|IncrementWrapStencilOp|DecrementWrapStencilOp|InvertStencilOp}\n\t\t * @default KeepStencilOp\n\t\t */\n\t\tthis.stencilZFail = KeepStencilOp;\n\n\t\t/**\n\t\t * Which stencil operation to perform when the comparison function returns\n\t\t * `true` and the depth test passes.\n\t\t *\n\t\t * @type {ZeroStencilOp|KeepStencilOp|ReplaceStencilOp|IncrementStencilOp|DecrementStencilOp|IncrementWrapStencilOp|DecrementWrapStencilOp|InvertStencilOp}\n\t\t * @default KeepStencilOp\n\t\t */\n\t\tthis.stencilZPass = KeepStencilOp;\n\n\t\t/**\n\t\t * Whether stencil operations are performed against the stencil buffer. In\n\t\t * order to perform writes or comparisons against the stencil buffer this\n\t\t * value must be `true`.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.stencilWrite = false;\n\n\t\t/**\n\t\t * User-defined clipping planes specified as THREE.Plane objects in world\n\t\t * space. These planes apply to the objects this material is attached to.\n\t\t * Points in space whose signed distance to the plane is negative are clipped\n\t\t * (not rendered). This requires {@link WebGLRenderer#localClippingEnabled} to\n\t\t * be `true`.\n\t\t *\n\t\t * @type {?Array}\n\t\t * @default null\n\t\t */\n\t\tthis.clippingPlanes = null;\n\n\t\t/**\n\t\t * Changes the behavior of clipping planes so that only their intersection is\n\t\t * clipped, rather than their union.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.clipIntersection = false;\n\n\t\t/**\n\t\t * Defines whether to clip shadows according to the clipping planes specified\n\t\t * on this material.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.clipShadows = false;\n\n\t\t/**\n\t\t * Defines which side of faces cast shadows. If `null`, the side casting shadows\n\t\t * is determined as follows:\n\t\t *\n\t\t * - When {@link Material#side} is set to `FrontSide`, the back side cast shadows.\n\t\t * - When {@link Material#side} is set to `BackSide`, the front side cast shadows.\n\t\t * - When {@link Material#side} is set to `DoubleSide`, both sides cast shadows.\n\t\t *\n\t\t * @type {?(FrontSide|BackSide|DoubleSide)}\n\t\t * @default null\n\t\t */\n\t\tthis.shadowSide = null;\n\n\t\t/**\n\t\t * Whether to render the material's color.\n\t\t *\n\t\t * This can be used in conjunction with {@link Object3D#renderOder} to create invisible\n\t\t * objects that occlude other objects.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.colorWrite = true;\n\n\t\t/**\n\t\t * Override the renderer's default precision for this material.\n\t\t *\n\t\t * @type {?('highp'|'mediump'|'lowp')}\n\t\t * @default null\n\t\t */\n\t\tthis.precision = null;\n\n\t\t/**\n\t\t * Whether to use polygon offset or not. When enabled, each fragment's depth value will\n\t\t * be offset after it is interpolated from the depth values of the appropriate vertices.\n\t\t * The offset is added before the depth test is performed and before the value is written\n\t\t * into the depth buffer.\n\t\t *\n\t\t * Can be useful for rendering hidden-line images, for applying decals to surfaces, and for\n\t\t * rendering solids with highlighted edges.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.polygonOffset = false;\n\n\t\t/**\n\t\t * Specifies a scale factor that is used to create a variable depth offset for each polygon.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.polygonOffsetFactor = 0;\n\n\t\t/**\n\t\t * Is multiplied by an implementation-specific value to create a constant depth offset.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.polygonOffsetUnits = 0;\n\n\t\t/**\n\t\t * Whether to apply dithering to the color to remove the appearance of banding.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.dithering = false;\n\n\t\t/**\n\t\t * Whether alpha to coverage should be enabled or not. Can only be used with MSAA-enabled contexts\n\t\t * (meaning when the renderer was created with *antialias* parameter set to `true`). Enabling this\n\t\t * will smooth aliasing on clip plane edges and alphaTest-clipped edges.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.alphaToCoverage = false;\n\n\t\t/**\n\t\t * Whether to premultiply the alpha (transparency) value.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.premultipliedAlpha = false;\n\n\t\t/**\n\t\t * Whether double-sided, transparent objects should be rendered with a single pass or not.\n\t\t *\n\t\t * The engine renders double-sided, transparent objects with two draw calls (back faces first,\n\t\t * then front faces) to mitigate transparency artifacts. There are scenarios however where this\n\t\t * approach produces no quality gains but still doubles draw calls e.g. when rendering flat\n\t\t * vegetation like grass sprites. In these cases, set the `forceSinglePass` flag to `true` to\n\t\t * disable the two pass rendering to avoid performance issues.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.forceSinglePass = false;\n\n\t\t/**\n\t\t * Whether it's possible to override the material with {@link Scene#overrideMaterial} or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.allowOverride = true;\n\n\t\t/**\n\t\t * Defines whether 3D objects using this material are visible.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.visible = true;\n\n\t\t/**\n\t\t * Defines whether this material is tone mapped according to the renderer's tone mapping setting.\n\t\t *\n\t\t * It is ignored when rendering to a render target or using post processing or when using\n\t\t * `WebGPURenderer`. In all these cases, all materials are honored by tone mapping.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.toneMapped = true;\n\n\t\t/**\n\t\t * An object that can be used to store custom data about the Material. It\n\t\t * should not hold references to functions as these will not be cloned.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.userData = {};\n\n\t\t/**\n\t\t * This starts at `0` and counts how many times {@link Material#needsUpdate} is set to `true`.\n\t\t *\n\t\t * @type {number}\n\t\t * @readonly\n\t\t * @default 0\n\t\t */\n\t\tthis.version = 0;\n\n\t\tthis._alphaTest = 0;\n\n\t}\n\n\t/**\n\t * Sets the alpha value to be used when running an alpha test. The material\n\t * will not be rendered if the opacity is lower than this value.\n\t *\n\t * @type {number}\n\t * @readonly\n\t * @default 0\n\t */\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\t/**\n\t * An optional callback that is executed immediately before the material is used to render a 3D object.\n\t *\n\t * This method can only be used when rendering with {@link WebGLRenderer}.\n\t *\n\t * @param {WebGLRenderer} renderer - The renderer.\n\t * @param {Scene} scene - The scene.\n\t * @param {Camera} camera - The camera that is used to render the scene.\n\t * @param {BufferGeometry} geometry - The 3D object's geometry.\n\t * @param {Object3D} object - The 3D object.\n\t * @param {Object} group - The geometry group data.\n\t */\n\tonBeforeRender( /* renderer, scene, camera, geometry, object, group */ ) {}\n\n\t/**\n\t * An optional callback that is executed immediately before the shader\n\t * program is compiled. This function is called with the shader source code\n\t * as a parameter. Useful for the modification of built-in materials.\n\t *\n\t * This method can only be used when rendering with {@link WebGLRenderer}. The\n\t * recommended approach when customizing materials is to use `WebGPURenderer` with the new\n\t * Node Material system and [TSL]{@link https://github.com/mrdoob/three.js/wiki/Three.js-Shading-Language}.\n\t *\n\t * @param {{vertexShader:string,fragmentShader:string,uniforms:Object}} shaderobject - The object holds the uniforms and the vertex and fragment shader source.\n\t * @param {WebGLRenderer} renderer - A reference to the renderer.\n\t */\n\tonBeforeCompile( /* shaderobject, renderer */ ) {}\n\n\t/**\n\t * In case {@link Material#onBeforeCompile} is used, this callback can be used to identify\n\t * values of settings used in `onBeforeCompile()`, so three.js can reuse a cached\n\t * shader or recompile the shader for this material as needed.\n\t *\n\t * This method can only be used when rendering with {@link WebGLRenderer}.\n\t *\n\t * @return {string} The custom program cache key.\n\t */\n\tcustomProgramCacheKey() {\n\n\t\treturn this.onBeforeCompile.toString();\n\n\t}\n\n\t/**\n\t * This method can be used to set default values from parameter objects.\n\t * It is a generic implementation so it can be used with different types\n\t * of materials.\n\t *\n\t * @param {Object} [values] - The material values to set.\n\t */\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\t/**\n\t * Serializes the material into JSON.\n\t *\n\t * @param {?(Object|string)} meta - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized material.\n\t * @see {@link ObjectLoader#parse}\n\t */\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.7,\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.sheenColorMap && this.sheenColorMap.isTexture ) {\n\n\t\t\tdata.sheenColorMap = this.sheenColorMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.sheenRoughnessMap && this.sheenRoughnessMap.isTexture ) {\n\n\t\t\tdata.sheenRoughnessMap = this.sheenRoughnessMap.toJSON( meta ).uuid;\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\t/**\n\t * Returns a new material with copied values from this instance.\n\t *\n\t * @return {Material} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the values of the given material to this instance.\n\t *\n\t * @param {Material} source - The material to copy.\n\t * @return {Material} A reference to this instance.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t *\n\t * @fires Material#dispose\n\t */\n\tdispose() {\n\n\t\t/**\n\t\t * Fires when the material has been disposed of.\n\t\t *\n\t\t * @event Material#dispose\n\t\t * @type {Object}\n\t\t */\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\t/**\n\t * Setting this property to `true` indicates the engine the material\n\t * needs to be recompiled.\n\t *\n\t * @type {boolean}\n\t * @default false\n\t * @param {boolean} value\n\t */\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n}\n\n/**\n * A material for drawing geometries in a simple shaded (flat or wireframe) way.\n *\n * This material is not affected by lights.\n *\n * @augments Material\n */\nclass MeshBasicMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh basic material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshBasicMaterial = true;\n\n\t\tthis.type = 'MeshBasicMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The light map. Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.lightMap = null;\n\n\t\t/**\n\t\t * Intensity of the baked light.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\t/**\n\t\t * The red channel of this texture is used as the ambient occlusion map.\n\t\t * Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.aoMap = null;\n\n\t\t/**\n\t\t * Intensity of the ambient occlusion effect. Range is `[0,1]`, where `0`\n\t\t * disables ambient occlusion. Where intensity is `1` and the AO map's\n\t\t * red channel is also `1`, ambient light is fully occluded on a surface.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\t/**\n\t\t * Specular map used by the material.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.specularMap = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * The environment map.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.envMap = null;\n\n\t\t/**\n\t\t * The rotation of the environment map in radians.\n\t\t *\n\t\t * @type {Euler}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.envMapRotation = new Euler();\n\n\t\t/**\n\t\t * How to combine the result of the surface's color with the environment map, if any.\n\t\t *\n\t\t * When set to `MixOperation`, the {@link MeshBasicMaterial#reflectivity} is used to\n\t\t * blend between the two colors.\n\t\t *\n\t\t * @type {(MultiplyOperation|MixOperation|AddOperation)}\n\t\t * @default MultiplyOperation\n\t\t */\n\t\tthis.combine = MultiplyOperation;\n\n\t\t/**\n\t\t * How much the environment map affects the surface.\n\t\t * The valid range is between `0` (no reflections) and `1` (full reflections).\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.reflectivity = 1;\n\n\t\t/**\n\t\t * The index of refraction (IOR) of air (approximately 1) divided by the\n\t\t * index of refraction of the material. It is used with environment mapping\n\t\t * modes {@link CubeRefractionMapping} and {@link EquirectangularRefractionMapping}.\n\t\t * The refraction ratio should not exceed `1`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.98\n\t\t */\n\t\tthis.refractionRatio = 0.98;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.wireframeLinewidth = 1;\n\n\t\t/**\n\t\t * Defines appearance of wireframe ends.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinecap = 'round';\n\n\t\t/**\n\t\t * Defines appearance of wireframe joints.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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 &= -8388609; // 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/**\n * Returns a half precision floating point value (FP16) from the given single\n * precision floating point value (FP32).\n *\n * @param {number} val - A single precision floating point value.\n * @return {number} The FP16 value.\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/**\n * Returns a single precision floating point value (FP32) from the given half\n * precision floating point value (FP16).\n *\n * @param {number} val - A half precision floating point value.\n * @return {number} The FP32 value.\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\n/**\n * A class containing utility functions for data.\n *\n * @hideconstructor\n */\nclass DataUtils {\n\n\t/**\n\t * Returns a half precision floating point value (FP16) from the given single\n\t * precision floating point value (FP32).\n\t *\n\t * @param {number} val - A single precision floating point value.\n\t * @return {number} The FP16 value.\n\t */\n\tstatic toHalfFloat( val ) {\n\n\t\treturn toHalfFloat( val );\n\n\t}\n\n\t/**\n\t * Returns a single precision floating point value (FP32) from the given half\n\t * precision floating point value (FP16).\n\t *\n\t * @param {number} val - A half precision floating point value.\n\t * @return {number} The FP32 value.\n\t */\n\tstatic fromHalfFloat( val ) {\n\n\t\treturn fromHalfFloat( val );\n\n\t}\n\n}\n\nconst _vector$9 = /*@__PURE__*/ new Vector3();\nconst _vector2$1 = /*@__PURE__*/ new Vector2();\n\nlet _id$2 = 0;\n\n/**\n * This class stores data for an attribute (such as vertex positions, face\n * indices, normals, colors, UVs, and any custom attributes ) associated with\n * a geometry, which allows for more efficient passing of data to the GPU.\n *\n * When working with vector-like data, the `fromBufferAttribute( attribute, index )`\n * helper methods on vector and color class might be helpful. E.g. {@link Vector3#fromBufferAttribute}.\n */\nclass BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {TypedArray} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isBufferAttribute = true;\n\n\t\t/**\n\t\t * The ID of the buffer attribute.\n\t\t *\n\t\t * @name BufferAttribute#id\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tObject.defineProperty( this, 'id', { value: _id$2 ++ } );\n\n\t\t/**\n\t\t * The name of the buffer attribute.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The array holding the attribute data. It should have `itemSize * numVertices`\n\t\t * elements, where `numVertices` is the number of vertices in the associated geometry.\n\t\t *\n\t\t * @type {TypedArray}\n\t\t */\n\t\tthis.array = array;\n\n\t\t/**\n\t\t * The number of values of the array that should be associated with a particular vertex.\n\t\t * For instance, if this attribute is storing a 3-component vector (such as a position,\n\t\t * normal, or color), then the value should be `3`.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.itemSize = itemSize;\n\n\t\t/**\n\t\t * Represents the number of items this buffer attribute stores. It is internally computed\n\t\t * by dividing the `array` length by the `itemSize`.\n\t\t *\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tthis.count = array !== undefined ? array.length / itemSize : 0;\n\n\t\t/**\n\t\t * Applies to integer data only. Indicates how the underlying data in the buffer maps to\n\t\t * the values in the GLSL code. For instance, if `array` is an instance of `UInt16Array`,\n\t\t * and `normalized` is `true`, the values `0 - +65535` in the array data will be mapped to\n\t\t * `0.0f - +1.0f` in the GLSL attribute. If `normalized` is `false`, the values will be converted\n\t\t * to floats unmodified, i.e. `65535` becomes `65535.0f`.\n\t\t *\n\t\t * @type {boolean}\n\t\t */\n\t\tthis.normalized = normalized;\n\n\t\t/**\n\t\t * Defines the intended usage pattern of the data store for optimization purposes.\n\t\t *\n\t\t * Note: After the initial use of a buffer, its usage cannot be changed. Instead,\n\t\t * instantiate a new one and set the desired usage before the next render.\n\t\t *\n\t\t * @type {(StaticDrawUsage|DynamicDrawUsage|StreamDrawUsage|StaticReadUsage|DynamicReadUsage|StreamReadUsage|StaticCopyUsage|DynamicCopyUsage|StreamCopyUsage)}\n\t\t * @default StaticDrawUsage\n\t\t */\n\t\tthis.usage = StaticDrawUsage;\n\n\t\t/**\n\t\t * This can be used to only update some components of stored vectors (for example, just the\n\t\t * component related to color). Use the `addUpdateRange()` function to add ranges to this array.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.updateRanges = [];\n\n\t\t/**\n\t\t * Configures the bound GPU type for use in shaders.\n\t\t *\n\t\t * Note: this only has an effect for integer arrays and is not configurable for float arrays.\n\t\t * For lower precision float types, use `Float16BufferAttribute`.\n\t\t *\n\t\t * @type {(FloatType|IntType)}\n\t\t * @default FloatType\n\t\t */\n\t\tthis.gpuType = FloatType;\n\n\t\t/**\n\t\t * A version number, incremented every time the `needsUpdate` is set to `true`.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.version = 0;\n\n\t}\n\n\t/**\n\t * A callback function that is executed after the renderer has transferred the attribute\n\t * array data to the GPU.\n\t */\n\tonUploadCallback() {}\n\n\t/**\n\t * Flag to indicate that this attribute has changed and should be re-sent to\n\t * the GPU. Set this to `true` when you modify the value of the array.\n\t *\n\t * @type {number}\n\t * @default false\n\t * @param {boolean} value\n\t */\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\t/**\n\t * Sets the usage of this buffer attribute.\n\t *\n\t * @param {(StaticDrawUsage|DynamicDrawUsage|StreamDrawUsage|StaticReadUsage|DynamicReadUsage|StreamReadUsage|StaticCopyUsage|DynamicCopyUsage|StreamCopyUsage)} value - The usage to set.\n\t * @return {BufferAttribute} A reference to this buffer attribute.\n\t */\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Adds a range of data in the data array to be updated on the GPU.\n\t *\n\t * @param {number} start - Position at which to start update.\n\t * @param {number} count - The number of components to update.\n\t */\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\t/**\n\t * Clears the update ranges.\n\t */\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\t/**\n\t * Copies the values of the given buffer attribute to this instance.\n\t *\n\t * @param {BufferAttribute} source - The buffer attribute to copy.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Copies a vector from the given buffer attribute to this one. The start\n\t * and destination position in the attribute buffers are represented by the\n\t * given indices.\n\t *\n\t * @param {number} index1 - The destination index into this buffer attribute.\n\t * @param {BufferAttribute} attribute - The buffer attribute to copy from.\n\t * @param {number} index2 - The source index into the given buffer attribute.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Copies the given array data into this buffer attribute.\n\t *\n\t * @param {(TypedArray|Array)} array - The array to copy.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\n\tcopyArray( array ) {\n\n\t\tthis.array.set( array );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Applies the given 3x3 matrix to the given attribute. Works with\n\t * item size `2` and `3`.\n\t *\n\t * @param {Matrix3} m - The matrix to apply.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Applies the given 4x4 matrix to the given attribute. Only works with\n\t * item size `3`.\n\t *\n\t * @param {Matrix4} m - The matrix to apply.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Applies the given 3x3 normal matrix to the given attribute. Only works with\n\t * item size `3`.\n\t *\n\t * @param {Matrix3} m - The normal matrix to apply.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Applies the given 4x4 matrix to the given attribute. Only works with\n\t * item size `3` and with direction vectors.\n\t *\n\t * @param {Matrix4} m - The matrix to apply.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the given array data in the buffer attribute.\n\t *\n\t * @param {(TypedArray|Array)} value - The array data to set.\n\t * @param {number} [offset=0] - The offset in this buffer attribute's array.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Returns the given component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} component - The component index.\n\t * @return {number} The returned value.\n\t */\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\t/**\n\t * Sets the given value to the given component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} component - The component index.\n\t * @param {number} value - The value to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Returns the x component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The x component.\n\t */\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\t/**\n\t * Sets the x component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Returns the y component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The y component.\n\t */\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\t/**\n\t * Sets the y component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} y - The value to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Returns the z component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The z component.\n\t */\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\t/**\n\t * Sets the z component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} z - The value to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Returns the w component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The w component.\n\t */\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\t/**\n\t * Sets the w component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} w - The value to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the x and y component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value for the x component to set.\n\t * @param {number} y - The value for the y component to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the x, y and z component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value for the x component to set.\n\t * @param {number} y - The value for the y component to set.\n\t * @param {number} z - The value for the z component to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the x, y, z and w component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value for the x component to set.\n\t * @param {number} y - The value for the y component to set.\n\t * @param {number} z - The value for the z component to set.\n\t * @param {number} w - The value for the w component to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the given callback function that is executed after the Renderer has transferred\n\t * the attribute array data to the GPU. Can be used to perform clean-up operations after\n\t * the upload when attribute data are not needed anymore on the CPU side.\n\t *\n\t * @param {Function} callback - The `onUpload()` callback.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns a new buffer attribute with copied values from this instance.\n\t *\n\t * @return {BufferAttribute} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor( this.array, this.itemSize ).copy( this );\n\n\t}\n\n\t/**\n\t * Serializes the buffer attribute into JSON.\n\t *\n\t * @return {Object} A JSON object representing the serialized buffer attribute.\n\t */\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 * Convenient class that can be used when creating a `Int8` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Int8BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Int8Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\n/**\n * Convenient class that can be used when creating a `UInt8` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Uint8BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Uint8Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\n/**\n * Convenient class that can be used when creating a `UInt8Clamped` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Uint8ClampedBufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Uint8ClampedArray)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8ClampedArray( array ), itemSize, normalized );\n\n\t}\n\n}\n\n/**\n * Convenient class that can be used when creating a `Int16` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Int16BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Int16Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\n/**\n * Convenient class that can be used when creating a `UInt16` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Uint16BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Uint16Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\n/**\n * Convenient class that can be used when creating a `Int32` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Int32BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Int32Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\n/**\n * Convenient class that can be used when creating a `UInt32` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Uint32BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Uint32Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\n/**\n * Convenient class that can be used when creating a `Float16` buffer attribute with\n * a plain `Array` instance.\n *\n * This class automatically converts to and from FP16 via `Uint16Array` since `Float16Array`\n * browser support is still problematic.\n *\n * @augments BufferAttribute\n */\nclass Float16BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Uint16Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\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/**\n * Convenient class that can be used when creating a `Float32` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Float32BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Float32Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Float32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nlet _id$1 = 0;\n\nconst _m1 = /*@__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\n/**\n * A representation of mesh, line, or point geometry. Includes vertex\n * positions, face indices, normals, colors, UVs, and custom attributes\n * within buffers, reducing the cost of passing all this data to the GPU.\n *\n * ```js\n * const geometry = new THREE.BufferGeometry();\n * // create a simple square shape. We duplicate the top left and bottom right\n * // vertices because each vertex needs to appear once per triangle.\n * const vertices = new Float32Array( [\n * \t-1.0, -1.0, 1.0, // v0\n * \t 1.0, -1.0, 1.0, // v1\n * \t 1.0, 1.0, 1.0, // v2\n *\n * \t 1.0, 1.0, 1.0, // v3\n * \t-1.0, 1.0, 1.0, // v4\n * \t-1.0, -1.0, 1.0 // v5\n * ] );\n * // itemSize = 3 because there are 3 values (components) per vertex\n * geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );\n * const material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );\n * const mesh = new THREE.Mesh( geometry, material );\n * ```\n *\n * @augments EventDispatcher\n */\nclass BufferGeometry extends EventDispatcher {\n\n\t/**\n\t * Constructs a new geometry.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isBufferGeometry = true;\n\n\t\t/**\n\t\t * The ID of the geometry.\n\t\t *\n\t\t * @name BufferGeometry#id\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tObject.defineProperty( this, 'id', { value: _id$1 ++ } );\n\n\t\t/**\n\t\t * The UUID of the geometry.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t\t/**\n\t\t * The name of the geometry.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\t\tthis.type = 'BufferGeometry';\n\n\t\t/**\n\t\t * Allows for vertices to be re-used across multiple triangles; this is\n\t\t * called using \"indexed triangles\". Each triangle is associated with the\n\t\t * indices of three vertices. This attribute therefore stores the index of\n\t\t * each vertex for each triangular face. If this attribute is not set, the\n\t\t * renderer assumes that each three contiguous positions represent a single triangle.\n\t\t *\n\t\t * @type {?BufferAttribute}\n\t\t * @default null\n\t\t */\n\t\tthis.index = null;\n\n\t\t/**\n\t\t * A (storage) buffer attribute which was generated with a compute shader and\n\t\t * now defines indirect draw calls.\n\t\t *\n\t\t * Can only be used with {@link WebGPURenderer} and a WebGPU backend.\n\t\t *\n\t\t * @type {?BufferAttribute}\n\t\t * @default null\n\t\t */\n\t\tthis.indirect = null;\n\n\t\t/**\n\t\t * This dictionary has as id the name of the attribute to be set and as value\n\t\t * the buffer attribute to set it to. Rather than accessing this property directly,\n\t\t * use `setAttribute()` and `getAttribute()` to access attributes of this geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.attributes = {};\n\n\t\t/**\n\t\t * This dictionary holds the morph targets of the geometry.\n\t\t *\n\t\t * Note: Once the geometry has been rendered, the morph attribute data cannot\n\t\t * be changed. You will have to call `dispose()?, and create a new geometry instance.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.morphAttributes = {};\n\n\t\t/**\n\t\t * Used to control the morph target behavior; when set to `true`, the morph\n\t\t * target data is treated as relative offsets, rather than as absolute\n\t\t * positions/normals.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.morphTargetsRelative = false;\n\n\t\t/**\n\t\t * Split the geometry into groups, each of which will be rendered in a\n\t\t * separate draw call. This allows an array of materials to be used with the geometry.\n\t\t *\n\t\t * Use `addGroup()` and `clearGroups()` to edit groups, rather than modifying this array directly.\n\t\t *\n\t\t * Every vertex and index must belong to exactly one group — groups must not share vertices or\n\t\t * indices, and must not leave vertices or indices unused.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.groups = [];\n\n\t\t/**\n\t\t * Bounding box for the geometry which can be calculated with `computeBoundingBox()`.\n\t\t *\n\t\t * @type {?Box3}\n\t\t * @default null\n\t\t */\n\t\tthis.boundingBox = null;\n\n\t\t/**\n\t\t * Bounding sphere for the geometry which can be calculated with `computeBoundingSphere()`.\n\t\t *\n\t\t * @type {?Sphere}\n\t\t * @default null\n\t\t */\n\t\tthis.boundingSphere = null;\n\n\t\t/**\n\t\t * Determines the part of the geometry to render. This should not be set directly,\n\t\t * instead use `setDrawRange()`.\n\t\t *\n\t\t * @type {{start:number,count:number}}\n\t\t */\n\t\tthis.drawRange = { start: 0, count: Infinity };\n\n\t\t/**\n\t\t * An object that can be used to store custom data about the geometry.\n\t\t * It should not hold references to functions as these will not be cloned.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.userData = {};\n\n\t}\n\n\t/**\n\t * Returns the index of this geometry.\n\t *\n\t * @return {?BufferAttribute} The index. Returns `null` if no index is defined.\n\t */\n\tgetIndex() {\n\n\t\treturn this.index;\n\n\t}\n\n\t/**\n\t * Sets the given index to this geometry.\n\t *\n\t * @param {Array|BufferAttribute} index - The index to set.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\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\t/**\n\t * Sets the given indirect attribute to this geometry.\n\t *\n\t * @param {BufferAttribute} indirect - The attribute holding indirect draw calls.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\tsetIndirect( indirect ) {\n\n\t\tthis.indirect = indirect;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the indirect attribute of this geometry.\n\t *\n\t * @return {?BufferAttribute} The indirect attribute. Returns `null` if no indirect attribute is defined.\n\t */\n\tgetIndirect() {\n\n\t\treturn this.indirect;\n\n\t}\n\n\t/**\n\t * Returns the buffer attribute for the given name.\n\t *\n\t * @param {string} name - The attribute name.\n\t * @return {BufferAttribute|InterleavedBufferAttribute|undefined} The buffer attribute.\n\t * Returns `undefined` if not attribute has been found.\n\t */\n\tgetAttribute( name ) {\n\n\t\treturn this.attributes[ name ];\n\n\t}\n\n\t/**\n\t * Sets the given attribute for the given name.\n\t *\n\t * @param {string} name - The attribute name.\n\t * @param {BufferAttribute|InterleavedBufferAttribute} attribute - The attribute to set.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\tsetAttribute( name, attribute ) {\n\n\t\tthis.attributes[ name ] = attribute;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Deletes the attribute for the given name.\n\t *\n\t * @param {string} name - The attribute name to delete.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\tdeleteAttribute( name ) {\n\n\t\tdelete this.attributes[ name ];\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns `true` if this geometry has an attribute for the given name.\n\t *\n\t * @param {string} name - The attribute name.\n\t * @return {boolean} Whether this geometry has an attribute for the given name or not.\n\t */\n\thasAttribute( name ) {\n\n\t\treturn this.attributes[ name ] !== undefined;\n\n\t}\n\n\t/**\n\t * Adds a group to this geometry.\n\t *\n\t * @param {number} start - The first element in this draw call. That is the first\n\t * vertex for non-indexed geometry, otherwise the first triangle index.\n\t * @param {number} count - Specifies how many vertices (or indices) are part of this group.\n\t * @param {number} [materialIndex=0] - The material array index to use.\n\t */\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\t/**\n\t * Clears all groups.\n\t */\n\tclearGroups() {\n\n\t\tthis.groups = [];\n\n\t}\n\n\t/**\n\t * Sets the draw range for this geometry.\n\t *\n\t * @param {number} start - The first vertex for non-indexed geometry, otherwise the first triangle index.\n\t * @param {number} count - For non-indexed BufferGeometry, `count` is the number of vertices to render.\n\t * For indexed BufferGeometry, `count` is the number of indices to render.\n\t */\n\tsetDrawRange( start, count ) {\n\n\t\tthis.drawRange.start = start;\n\t\tthis.drawRange.count = count;\n\n\t}\n\n\t/**\n\t * Applies the given 4x4 transformation matrix to the geometry.\n\t *\n\t * @param {Matrix4} matrix - The matrix to apply.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\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\t/**\n\t * Applies the rotation represented by the Quaternion to the geometry.\n\t *\n\t * @param {Quaternion} q - The Quaternion to apply.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\tapplyQuaternion( q ) {\n\n\t\t_m1.makeRotationFromQuaternion( q );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Rotates the geometry about the X axis. This is typically done as a one time\n\t * operation, and not during a loop. Use {@link Object3D#rotation} for typical\n\t * real-time mesh rotation.\n\t *\n\t * @param {number} angle - The angle in radians.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\trotateX( angle ) {\n\n\t\t// rotate geometry around world x-axis\n\n\t\t_m1.makeRotationX( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Rotates the geometry about the Y axis. This is typically done as a one time\n\t * operation, and not during a loop. Use {@link Object3D#rotation} for typical\n\t * real-time mesh rotation.\n\t *\n\t * @param {number} angle - The angle in radians.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\trotateY( angle ) {\n\n\t\t// rotate geometry around world y-axis\n\n\t\t_m1.makeRotationY( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Rotates the geometry about the Z axis. This is typically done as a one time\n\t * operation, and not during a loop. Use {@link Object3D#rotation} for typical\n\t * real-time mesh rotation.\n\t *\n\t * @param {number} angle - The angle in radians.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\trotateZ( angle ) {\n\n\t\t// rotate geometry around world z-axis\n\n\t\t_m1.makeRotationZ( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Translates the geometry. This is typically done as a one time\n\t * operation, and not during a loop. Use {@link Object3D#position} for typical\n\t * real-time mesh rotation.\n\t *\n\t * @param {number} x - The x offset.\n\t * @param {number} y - The y offset.\n\t * @param {number} z - The z offset.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\ttranslate( x, y, z ) {\n\n\t\t// translate geometry\n\n\t\t_m1.makeTranslation( x, y, z );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Scales the geometry. This is typically done as a one time\n\t * operation, and not during a loop. Use {@link Object3D#scale} for typical\n\t * real-time mesh rotation.\n\t *\n\t * @param {number} x - The x scale.\n\t * @param {number} y - The y scale.\n\t * @param {number} z - The z scale.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\tscale( x, y, z ) {\n\n\t\t// scale geometry\n\n\t\t_m1.makeScale( x, y, z );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Rotates the geometry to face a point in 3D space. This is typically done as a one time\n\t * operation, and not during a loop. Use {@link Object3D#lookAt} for typical\n\t * real-time mesh rotation.\n\t *\n\t * @param {Vector3} vector - The target point.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\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\t/**\n\t * Center the geometry based on its bounding box.\n\t *\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\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\t/**\n\t * Defines a geometry by creating a `position` attribute based on the given array of points. The array\n\t * can hold 2D or 3D vectors. When using two-dimensional data, the `z` coordinate for all vertices is\n\t * set to `0`.\n\t *\n\t * If the method is used with an existing `position` attribute, the vertex data are overwritten with the\n\t * data from the array. The length of the array must match the vertex count.\n\t *\n\t * @param {Array|Array} points - The points.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\tsetFromPoints( points ) {\n\n\t\tconst positionAttribute = this.getAttribute( 'position' );\n\n\t\tif ( positionAttribute === undefined ) {\n\n\t\t\tconst position = [];\n\n\t\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\t\tconst point = points[ i ];\n\t\t\t\tposition.push( point.x, point.y, point.z || 0 );\n\n\t\t\t}\n\n\t\t\tthis.setAttribute( 'position', new Float32BufferAttribute( position, 3 ) );\n\n\t\t} else {\n\n\t\t\tconst l = Math.min( points.length, positionAttribute.count ); // make sure data do not exceed buffer size\n\n\t\t\tfor ( let i = 0; i < l; i ++ ) {\n\n\t\t\t\tconst point = points[ i ];\n\t\t\t\tpositionAttribute.setXYZ( i, point.x, point.y, point.z || 0 );\n\n\t\t\t}\n\n\t\t\tif ( points.length > positionAttribute.count ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry.' );\n\n\t\t\t}\n\n\t\t\tpositionAttribute.needsUpdate = true;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Computes the bounding box of the geometry, and updates the `boundingBox` member.\n\t * The bounding box is not computed by the engine; it must be computed by your app.\n\t * You may need to recompute the bounding box if the geometry vertices are modified.\n\t */\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\t/**\n\t * Computes the bounding sphere of the geometry, and updates the `boundingSphere` member.\n\t * The engine automatically computes the bounding sphere when it is needed, e.g., for ray casting or view frustum culling.\n\t * You may need to recompute the bounding sphere if the geometry vertices are modified.\n\t */\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\t/**\n\t * Calculates and adds a tangent attribute to this geometry.\n\t *\n\t * The computation is only supported for indexed geometries and if position, normal, and uv attributes\n\t * are defined. When using a tangent space normal map, prefer the MikkTSpace algorithm provided by\n\t * {@link BufferGeometryUtils#computeMikkTSpaceTangents} instead.\n\t */\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 : 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\t/**\n\t * Computes vertex normals for the given vertex data. For indexed geometries, the method sets\n\t * each vertex normal to be the average of the face normals of the faces that share that vertex.\n\t * For non-indexed geometries, vertices are not shared, and the method sets each vertex normal\n\t * to be the same as the face normal.\n\t */\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\t/**\n\t * Ensures every normal vector in a geometry will have a magnitude of `1`. This will\n\t * correct lighting on the geometry surfaces.\n\t */\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\t/**\n\t * Return a new non-index version of this indexed geometry. If the geometry\n\t * is already non-indexed, the method is a NOOP.\n\t *\n\t * @return {BufferGeometry} The non-indexed version of this indexed geometry.\n\t */\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\t/**\n\t * Serializes the geometry into JSON.\n\t *\n\t * @return {Object} A JSON object representing the serialized geometry.\n\t */\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.7,\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 = boundingSphere.toJSON();\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\t/**\n\t * Returns a new geometry with copied values from this instance.\n\t *\n\t * @return {BufferGeometry} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the values of the given geometry to this instance.\n\t *\n\t * @param {BufferGeometry} source - The geometry to copy.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\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() );\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t *\n\t * @fires BufferGeometry#dispose\n\t */\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 _intersectionPoint = /*@__PURE__*/ new Vector3();\nconst _intersectionPointWorld = /*@__PURE__*/ new Vector3();\n\n/**\n * Class representing triangular polygon mesh based objects.\n *\n * ```js\n * const geometry = new THREE.BoxGeometry( 1, 1, 1 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const mesh = new THREE.Mesh( geometry, material );\n * scene.add( mesh );\n * ```\n *\n * @augments Object3D\n */\nclass Mesh extends Object3D {\n\n\t/**\n\t * Constructs a new mesh.\n\t *\n\t * @param {BufferGeometry} [geometry] - The mesh geometry.\n\t * @param {Material|Array} [material] - The mesh material.\n\t */\n\tconstructor( geometry = new BufferGeometry(), material = new MeshBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMesh = true;\n\n\t\tthis.type = 'Mesh';\n\n\t\t/**\n\t\t * The mesh geometry.\n\t\t *\n\t\t * @type {BufferGeometry}\n\t\t */\n\t\tthis.geometry = geometry;\n\n\t\t/**\n\t\t * The mesh material.\n\t\t *\n\t\t * @type {Material|Array}\n\t\t * @default MeshBasicMaterial\n\t\t */\n\t\tthis.material = material;\n\n\t\t/**\n\t\t * A dictionary representing the morph targets in the geometry. The key is the\n\t\t * morph targets name, the value its attribute index. This member is `undefined`\n\t\t * by default and only set when morph targets are detected in the geometry.\n\t\t *\n\t\t * @type {Object|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetDictionary = undefined;\n\n\t\t/**\n\t\t * An array of weights typically in the range `[0,1]` that specify how much of the morph\n\t\t * is applied. This member is `undefined` by default and only set when morph targets are\n\t\t * detected in the geometry.\n\t\t *\n\t\t * @type {Array|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetInfluences = undefined;\n\n\t\t/**\n\t\t * The number of instances of this mesh.\n\t\t * Can only be used with {@link WebGPURenderer}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.count = 1;\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\t/**\n\t * Sets the values of {@link Mesh#morphTargetDictionary} and {@link Mesh#morphTargetInfluences}\n\t * to make sure existing morph targets can influence this 3D object.\n\t */\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\t/**\n\t * Returns the local-space position of the vertex at the given index, taking into\n\t * account the current animation state of both morph targets and skinning.\n\t *\n\t * @param {number} index - The vertex index.\n\t * @param {Vector3} target - The target object that is used to store the method's result.\n\t * @return {Vector3} The vertex position in local space.\n\t */\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\t/**\n\t * Computes intersection points between a casted ray and this line.\n\t *\n\t * @param {Raycaster} raycaster - The raycaster.\n\t * @param {Array} intersects - The target array that holds the intersection points.\n\t */\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\tconst barycoord = new Vector3();\n\t\tTriangle.getBarycoord( _intersectionPoint, _vA$1, _vB$1, _vC$1, barycoord );\n\n\t\tif ( uv ) {\n\n\t\t\tintersection.uv = Triangle.getInterpolatedAttribute( uv, a, b, c, barycoord, new Vector2() );\n\n\t\t}\n\n\t\tif ( uv1 ) {\n\n\t\t\tintersection.uv1 = Triangle.getInterpolatedAttribute( uv1, a, b, c, barycoord, new Vector2() );\n\n\t\t}\n\n\t\tif ( normal ) {\n\n\t\t\tintersection.normal = Triangle.getInterpolatedAttribute( normal, a, b, c, barycoord, 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\t\tintersection.barycoord = barycoord;\n\n\t}\n\n\treturn intersection;\n\n}\n\n/**\n * A geometry class for a rectangular cuboid with a given width, height, and depth.\n * On creation, the cuboid is centred on the origin, with each edge parallel to one\n * of the axes.\n *\n * ```js\n * const geometry = new THREE.BoxGeometry( 1, 1, 1 );\n * const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );\n * const cube = new THREE.Mesh( geometry, material );\n * scene.add( cube );\n * ```\n *\n * @augments BufferGeometry\n */\nclass BoxGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new box geometry.\n\t *\n\t * @param {number} [width=1] - The width. That is, the length of the edges parallel to the X axis.\n\t * @param {number} [height=1] - The height. That is, the length of the edges parallel to the Y axis.\n\t * @param {number} [depth=1] - The depth. That is, the length of the edges parallel to the Z axis.\n\t * @param {number} [widthSegments=1] - Number of segmented rectangular faces along the width of the sides.\n\t * @param {number} [heightSegments=1] - Number of segmented rectangular faces along the height of the sides.\n\t * @param {number} [depthSegments=1] - Number of segmented rectangular faces along the depth of the sides.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {BoxGeometry} A new instance.\n\t */\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// Uniform Utilities\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\n/**\n * A material rendered with custom shaders. A shader is a small program written in GLSL.\n * that runs on the GPU. You may want to use a custom shader if you need to implement an\n * effect not included with any of the built-in materials.\n *\n * There are the following notes to bear in mind when using a `ShaderMaterial`:\n *\n * - `ShaderMaterial` can only be used with {@link WebGLRenderer}.\n * - Built in attributes and uniforms are passed to the shaders along with your code. If\n * you don't want that, use {@link RawShaderMaterial} instead.\n * - You can use the directive `#pragma unroll_loop_start` and `#pragma unroll_loop_end`\n * in order to unroll a `for` loop in GLSL by the shader preprocessor. The directive has\n * to be placed right above the loop. The loop formatting has to correspond to a defined standard.\n * - The loop has to be [normalized]{@link https://en.wikipedia.org/wiki/Normalized_loop}.\n * - The loop variable has to be *i*.\n * - The value `UNROLLED_LOOP_INDEX` will be replaced with the explicitly\n * value of *i* for the given iteration and can be used in preprocessor\n * statements.\n *\n * ```js\n * const material = new THREE.ShaderMaterial( {\n * \tuniforms: {\n * \t\ttime: { value: 1.0 },\n * \t\tresolution: { value: new THREE.Vector2() }\n * \t},\n * \tvertexShader: document.getElementById( 'vertexShader' ).textContent,\n * \tfragmentShader: document.getElementById( 'fragmentShader' ).textContent\n * } );\n * ```\n *\n * @augments Material\n */\nclass ShaderMaterial extends Material {\n\n\t/**\n\t * Constructs a new shader material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isShaderMaterial = true;\n\n\t\tthis.type = 'ShaderMaterial';\n\n\t\t/**\n\t\t * Defines custom constants using `#define` directives within the GLSL code\n\t\t * for both the vertex shader and the fragment shader; each key/value pair\n\t\t * yields another directive.\n\t\t * ```js\n\t\t * defines: {\n\t\t * \tFOO: 15,\n\t\t * \tBAR: true\n\t\t * }\n\t\t * ```\n\t\t * Yields the lines:\n\t\t * ```\n\t\t * #define FOO 15\n\t\t * #define BAR true\n\t\t * ```\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.defines = {};\n\n\t\t/**\n\t\t * An object of the form:\n\t\t * ```js\n\t\t * {\n\t\t * \t\"uniform1\": { value: 1.0 },\n\t\t * \t\"uniform2\": { value: 2 }\n\t\t * }\n\t\t * ```\n\t\t * specifying the uniforms to be passed to the shader code; keys are uniform\n\t\t * names, values are definitions of the form\n\t\t * ```\n\t\t * {\n\t\t * \tvalue: 1.0\n\t\t * }\n\t\t * ```\n\t\t * where `value` is the value of the uniform. Names must match the name of\n\t\t * the uniform, as defined in the GLSL code. Note that uniforms are refreshed\n\t\t * on every frame, so updating the value of the uniform will immediately\n\t\t * update the value available to the GLSL code.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.uniforms = {};\n\n\t\t/**\n\t\t * An array holding uniforms groups for configuring UBOs.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.uniformsGroups = [];\n\n\t\t/**\n\t\t * Vertex shader GLSL code. This is the actual code for the shader.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.vertexShader = default_vertex;\n\n\t\t/**\n\t\t * Fragment shader GLSL code. This is the actual code for the shader.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.fragmentShader = default_fragment;\n\n\t\t/**\n\t\t * Controls line thickness or lines.\n\t\t *\n\t\t * WebGL and WebGPU ignore this setting and always render line primitives with a\n\t\t * width of one pixel.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.linewidth = 1;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * WebGL and WebGPU ignore this property and always render\n\t\t * 1 pixel wide lines.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.wireframeLinewidth = 1;\n\n\t\t/**\n\t\t * Define whether the material color is affected by global fog settings; `true`\n\t\t * to pass fog uniforms to the shader.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.fog = false;\n\n\t\t/**\n\t\t * Defines whether this material uses lighting; `true` to pass uniform data\n\t\t * related to lighting to this shader.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.lights = false;\n\n\t\t/**\n\t\t * Defines whether this material supports clipping; `true` to let the renderer\n\t\t * pass the clippingPlanes uniform.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.clipping = false;\n\n\t\t/**\n\t\t * Overwritten and set to `true` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.forceSinglePass = true;\n\n\t\t/**\n\t\t * This object allows to enable certain WebGL 2 extensions.\n\t\t *\n\t\t * - clipCullDistance: set to `true` to use vertex shader clipping\n\t\t * - multiDraw: set to `true` to use vertex shader multi_draw / enable gl_DrawID\n\t\t *\n\t\t * @type {{clipCullDistance:false,multiDraw:false}}\n\t\t */\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/**\n\t\t * When the rendered geometry doesn't include these attributes but the\n\t\t * material does, these default values will be passed to the shaders. This\n\t\t * avoids errors when buffer data is missing.\n\t\t *\n\t\t * - color: [ 1, 1, 1 ]\n\t\t * - uv: [ 0, 0 ]\n\t\t * - uv1: [ 0, 0 ]\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t\t * If set, this calls [gl.bindAttribLocation]{@link https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bindAttribLocation}\n\t\t * to bind a generic vertex index to an attribute variable.\n\t\t *\n\t\t * @type {string|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.index0AttributeName = undefined;\n\n\t\t/**\n\t\t * Can be used to force a uniform update while changing uniforms in\n\t\t * {@link Object3D#onBeforeRender}.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.uniformsNeedUpdate = false;\n\n\t\t/**\n\t\t * Defines the GLSL version of custom shader code.\n\t\t *\n\t\t * @type {?(GLSL1|GLSL3)}\n\t\t * @default null\n\t\t */\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\n/**\n * Abstract base class for cameras. This class should always be inherited\n * when you build a new camera.\n *\n * @abstract\n * @augments Object3D\n */\nclass Camera extends Object3D {\n\n\t/**\n\t * Constructs a new camera.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCamera = true;\n\n\t\tthis.type = 'Camera';\n\n\t\t/**\n\t\t * The inverse of the camera's world matrix.\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.matrixWorldInverse = new Matrix4();\n\n\t\t/**\n\t\t * The camera's projection matrix.\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.projectionMatrix = new Matrix4();\n\n\t\t/**\n\t\t * The inverse of the camera's projection matrix.\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.projectionMatrixInverse = new Matrix4();\n\n\t\t/**\n\t\t * The coordinate system in which the camera is used.\n\t\t *\n\t\t * @type {(WebGLCoordinateSystem|WebGPUCoordinateSystem)}\n\t\t */\n\t\tthis.coordinateSystem = WebGLCoordinateSystem;\n\n\t\tthis._reversedDepth = false;\n\n\t}\n\n\t/**\n\t * The flag that indicates whether the camera uses a reversed depth buffer.\n\t *\n\t * @type {boolean}\n\t * @default false\n\t */\n\tget reversedDepth() {\n\n\t\treturn this._reversedDepth;\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\t/**\n\t * Returns a vector representing the (\"look\") direction of the 3D object in world space.\n\t *\n\t * This method is overwritten since cameras have a different forward vector compared to other\n\t * 3D objects. A camera looks down its local, negative z-axis by default.\n\t *\n\t * @param {Vector3} target - The target vector the result is stored to.\n\t * @return {Vector3} The 3D object's direction in world space.\n\t */\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/**\n * Camera that uses [perspective projection]{@link https://en.wikipedia.org/wiki/Perspective_(graphical)}.\n *\n * This projection mode is designed to mimic the way the human eye sees. It\n * is the most common projection mode used for rendering a 3D scene.\n *\n * ```js\n * const camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 );\n * scene.add( camera );\n * ```\n *\n * @augments Camera\n */\nclass PerspectiveCamera extends Camera {\n\n\t/**\n\t * Constructs a new perspective camera.\n\t *\n\t * @param {number} [fov=50] - The vertical field of view.\n\t * @param {number} [aspect=1] - The aspect ratio.\n\t * @param {number} [near=0.1] - The camera's near plane.\n\t * @param {number} [far=2000] - The camera's far plane.\n\t */\n\tconstructor( fov = 50, aspect = 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isPerspectiveCamera = true;\n\n\t\tthis.type = 'PerspectiveCamera';\n\n\t\t/**\n\t\t * The vertical field of view, from bottom to top of view,\n\t\t * in degrees.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 50\n\t\t */\n\t\tthis.fov = fov;\n\n\t\t/**\n\t\t * The zoom factor of the camera.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.zoom = 1;\n\n\t\t/**\n\t\t * The camera's near plane. The valid range is greater than `0`\n\t\t * and less than the current value of {@link PerspectiveCamera#far}.\n\t\t *\n\t\t * Note that, unlike for the {@link OrthographicCamera}, `0` is not a\n\t\t * valid value for a perspective camera's near plane.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.1\n\t\t */\n\t\tthis.near = near;\n\n\t\t/**\n\t\t * The camera's far plane. Must be greater than the\n\t\t * current value of {@link PerspectiveCamera#near}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 2000\n\t\t */\n\t\tthis.far = far;\n\n\t\t/**\n\t\t * Object distance used for stereoscopy and depth-of-field effects. This\n\t\t * parameter does not influence the projection matrix unless a\n\t\t * {@link StereoCamera} is being used.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 10\n\t\t */\n\t\tthis.focus = 10;\n\n\t\t/**\n\t\t * The aspect ratio, usually the canvas width / canvas height.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aspect = aspect;\n\n\t\t/**\n\t\t * Represents the frustum window specification. This property should not be edited\n\t\t * directly but via {@link PerspectiveCamera#setViewOffset} and {@link PerspectiveCamera#clearViewOffset}.\n\t\t *\n\t\t * @type {?Object}\n\t\t * @default null\n\t\t */\n\t\tthis.view = null;\n\n\t\t/**\n\t\t * Film size used for the larger axis. Default is `35` (millimeters). This\n\t\t * parameter does not influence the projection matrix unless {@link PerspectiveCamera#filmOffset}\n\t\t * is set to a nonzero value.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 35\n\t\t */\n\t\tthis.filmGauge = 35;\n\n\t\t/**\n\t\t * Horizontal off-center offset in the same unit as {@link PerspectiveCamera#filmGauge}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.filmOffset = 0;\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 {@link PerspectiveCamera#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 * @param {number} focalLength - 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 * Returns the focal length from the current {@link PerspectiveCamera#fov} and\n\t * {@link PerspectiveCamera#filmGauge}.\n\t *\n\t * @return {number} The computed focal length.\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\t/**\n\t * Returns the current vertical field of view angle in degrees considering {@link PerspectiveCamera#zoom}.\n\t *\n\t * @return {number} The effective FOV.\n\t */\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\t/**\n\t * Returns the width of the image on the film. If {@link PerspectiveCamera#aspect} is greater than or\n\t * equal to one (landscape format), the result equals {@link PerspectiveCamera#filmGauge}.\n\t *\n\t * @return {number} The film width.\n\t */\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\t/**\n\t * Returns the height of the image on the film. If {@link PerspectiveCamera#aspect} is greater than or\n\t * equal to one (landscape format), the result equals {@link PerspectiveCamera#filmGauge}.\n\t *\n\t * @return {number} The film width.\n\t */\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\t * @param {number} distance - The viewing distance.\n\t * @param {Vector2} minTarget - The lower-left corner of the view rectangle is written into this vector.\n\t * @param {Vector2} maxTarget - The upper-right corner of the view rectangle is written into this vector.\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 *\n\t * @param {number} distance - The viewing distance.\n\t * @param {Vector2} target - The target vector that is used to store result where x is width and y is height.\n\t * @returns {Vector2} The view size.\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 *```js\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 *\n\t * Note there is no reason monitors have to be the same size or in a grid.\n\t *\n\t * @param {number} fullWidth - The full width of multiview setup.\n\t * @param {number} fullHeight - The full height of multiview setup.\n\t * @param {number} x - The horizontal offset of the subcamera.\n\t * @param {number} y - The vertical offset of the subcamera.\n\t * @param {number} width - The width of subcamera.\n\t * @param {number} height - The height of subcamera.\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\t/**\n\t * Removes the view offset from the projection matrix.\n\t */\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\t/**\n\t * Updates the camera's projection matrix. Must be called after any change of\n\t * camera properties.\n\t */\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, this.reversedDepth );\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\n/**\n * A special type of camera that is positioned in 3D space to render its surroundings into a\n * cube render target. The render target can then be used as an environment map for rendering\n * realtime reflections in your scene.\n *\n * ```js\n * // Create cube render target\n * const cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 256, { generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );\n *\n * // Create cube camera\n * const cubeCamera = new THREE.CubeCamera( 1, 100000, cubeRenderTarget );\n * scene.add( cubeCamera );\n *\n * // Create car\n * const chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeRenderTarget.texture } );\n * const car = new THREE.Mesh( carGeometry, chromeMaterial );\n * scene.add( car );\n *\n * // Update the render target cube\n * car.visible = false;\n * cubeCamera.position.copy( car.position );\n * cubeCamera.update( renderer, scene );\n *\n * // Render the scene\n * car.visible = true;\n * renderer.render( scene, camera );\n * ```\n *\n * @augments Object3D\n */\nclass CubeCamera extends Object3D {\n\n\t/**\n\t * Constructs a new cube camera.\n\t *\n\t * @param {number} near - The camera's near plane.\n\t * @param {number} far - The camera's far plane.\n\t * @param {WebGLCubeRenderTarget} renderTarget - The cube render target.\n\t */\n\tconstructor( near, far, renderTarget ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CubeCamera';\n\n\t\t/**\n\t\t * A reference to the cube render target.\n\t\t *\n\t\t * @type {WebGLCubeRenderTarget}\n\t\t */\n\t\tthis.renderTarget = renderTarget;\n\n\t\t/**\n\t\t * The current active coordinate system.\n\t\t *\n\t\t * @type {?(WebGLCoordinateSystem|WebGPUCoordinateSystem)}\n\t\t * @default null\n\t\t */\n\t\tthis.coordinateSystem = null;\n\n\t\t/**\n\t\t * The current active mipmap level\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\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\t/**\n\t * Must be called when the coordinate system of the cube camera is changed.\n\t */\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\t/**\n\t * Calling this method will render the given scene with the given renderer\n\t * into the cube render target of the camera.\n\t *\n\t * @param {(Renderer|WebGLRenderer)} renderer - The renderer.\n\t * @param {Scene} scene - The scene to render.\n\t */\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\n/**\n * Creates a cube texture made up of six images.\n *\n * ```js\n * const loader = new THREE.CubeTextureLoader();\n * loader.setPath( 'textures/cube/pisa/' );\n *\n * const textureCube = loader.load( [\n * \t'px.png', 'nx.png', 'py.png', 'ny.png', 'pz.png', 'nz.png'\n * ] );\n *\n * const material = new THREE.MeshBasicMaterial( { color: 0xffffff, envMap: textureCube } );\n * ```\n *\n * @augments Texture\n */\nclass CubeTexture extends Texture {\n\n\t/**\n\t * Constructs a new cube texture.\n\t *\n\t * @param {Array} [images=[]] - An array holding a image for each side of a cube.\n\t * @param {number} [mapping=CubeReflectionMapping] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=LinearFilter] - The mag filter value.\n\t * @param {number} [minFilter=LinearMipmapLinearFilter] - The min filter value.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t * @param {string} [colorSpace=NoColorSpace] - The color space value.\n\t */\n\tconstructor( images = [], mapping = CubeReflectionMapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace ) {\n\n\t\tsuper( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCubeTexture = true;\n\n\t\t/**\n\t\t * If set to `true`, the texture is flipped along the vertical axis when\n\t\t * uploaded to the GPU.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flipY = false;\n\n\t}\n\n\t/**\n\t * Alias for {@link CubeTexture#image}.\n\t *\n\t * @type {Array}\n\t */\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\n/**\n * A cube render target used in context of {@link WebGLRenderer}.\n *\n * @augments WebGLRenderTarget\n */\nclass WebGLCubeRenderTarget extends WebGLRenderTarget {\n\n\t/**\n\t * Constructs a new cube render target.\n\t *\n\t * @param {number} [size=1] - The size of the render target.\n\t * @param {RenderTarget~Options} [options] - The configuration object.\n\t */\n\tconstructor( size = 1, options = {} ) {\n\n\t\tsuper( size, size, options );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t\t * Overwritten with a different texture type.\n\t\t *\n\t\t * @type {DataArrayTexture}\n\t\t */\n\t\tthis.texture = new CubeTexture( images );\n\t\tthis._setTextureOptions( options );\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}\n\n\t/**\n\t * Converts the given equirectangular texture to a cube map.\n\t *\n\t * @param {WebGLRenderer} renderer - The renderer.\n\t * @param {Texture} texture - The equirectangular texture.\n\t * @return {WebGLCubeRenderTarget} A reference to this cube render target.\n\t */\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\t/**\n\t * Clears this cube render target.\n\t *\n\t * @param {WebGLRenderer} renderer - The renderer.\n\t * @param {boolean} [color=true] - Whether the color buffer should be cleared or not.\n\t * @param {boolean} [depth=true] - Whether the depth buffer should be cleared or not.\n\t * @param {boolean} [stencil=true] - Whether the stencil buffer should be cleared or not.\n\t */\n\tclear( renderer, color = true, depth = true, stencil = true ) {\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\n/**\n * This is almost identical to an {@link Object3D}. Its purpose is to\n * make working with groups of objects syntactically clearer.\n *\n * ```js\n * // Create a group and add the two cubes.\n * // These cubes can now be rotated / scaled etc as a group.\n * const group = new THREE.Group();\n *\n * group.add( meshA );\n * group.add( meshB );\n *\n * scene.add( group );\n * ```\n *\n * @augments Object3D\n */\nclass Group extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isGroup = true;\n\n\t\tthis.type = 'Group';\n\n\t}\n\n}\n\nconst _moveEvent = { type: 'move' };\n\n/**\n * Class for representing a XR controller with its\n * different coordinate systems.\n *\n * @private\n */\nclass WebXRController {\n\n\t/**\n\t * Constructs a new XR controller.\n\t */\n\tconstructor() {\n\n\t\t/**\n\t\t * A group representing the target ray space\n\t\t * of the XR controller.\n\t\t *\n\t\t * @private\n\t\t * @type {?Group}\n\t\t * @default null\n\t\t */\n\t\tthis._targetRay = null;\n\n\t\t/**\n\t\t * A group representing the grip space\n\t\t * of the XR controller.\n\t\t *\n\t\t * @private\n\t\t * @type {?Group}\n\t\t * @default null\n\t\t */\n\t\tthis._grip = null;\n\n\t\t/**\n\t\t * A group representing the hand space\n\t\t * of the XR controller.\n\t\t *\n\t\t * @private\n\t\t * @type {?Group}\n\t\t * @default null\n\t\t */\n\t\tthis._hand = null;\n\n\t}\n\n\t/**\n\t * Returns a group representing the hand space of the XR controller.\n\t *\n\t * @return {Group} A group representing the hand space of the XR controller.\n\t */\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\t/**\n\t * Returns a group representing the target ray space of the XR controller.\n\t *\n\t * @return {Group} A group representing the target ray space of the XR controller.\n\t */\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\t/**\n\t * Returns a group representing the grip space of the XR controller.\n\t *\n\t * @return {Group} A group representing the grip space of the XR controller.\n\t */\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\t/**\n\t * Dispatches the given event to the groups representing\n\t * the different coordinate spaces of the XR controller.\n\t *\n\t * @param {Object} event - The event to dispatch.\n\t * @return {WebXRController} A reference to this instance.\n\t */\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\t/**\n\t * Connects the controller with the given XR input source.\n\t *\n\t * @param {XRInputSource} inputSource - The input source.\n\t * @return {WebXRController} A reference to this instance.\n\t */\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\t/**\n\t * Disconnects the controller from the given XR input source.\n\t *\n\t * @param {XRInputSource} inputSource - The input source.\n\t * @return {WebXRController} A reference to this instance.\n\t */\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\t/**\n\t * Updates the controller with the given input source, XR frame and reference space.\n\t * This updates the transformations of the groups that represent the different\n\t * coordinate systems of the controller.\n\t *\n\t * @param {XRInputSource} inputSource - The input source.\n\t * @param {XRFrame} frame - The XR frame.\n\t * @param {XRReferenceSpace} referenceSpace - The reference space.\n\t * @return {WebXRController} A reference to this instance.\n\t */\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/**\n\t * Returns a group representing the hand joint for the given input joint.\n\t *\n\t * @private\n\t * @param {Group} hand - The group representing the hand space.\n\t * @param {XRJointSpace} inputjoint - The hand joint data.\n\t * @return {Group} A group representing the hand joint for the given input joint.\n\t */\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\n/**\n * This class can be used to define an exponential squared fog,\n * which gives a clear view near the camera and a faster than exponentially\n * densening fog farther from the camera.\n *\n * ```js\n * const scene = new THREE.Scene();\n * scene.fog = new THREE.FogExp2( 0xcccccc, 0.002 );\n * ```\n */\nclass FogExp2 {\n\n\t/**\n\t * Constructs a new fog.\n\t *\n\t * @param {number|Color} color - The fog's color.\n\t * @param {number} [density=0.00025] - Defines how fast the fog will grow dense.\n\t */\n\tconstructor( color, density = 0.00025 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isFogExp2 = true;\n\n\t\t/**\n\t\t * The name of the fog.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The fog's color.\n\t\t *\n\t\t * @type {Color}\n\t\t */\n\t\tthis.color = new Color( color );\n\n\t\t/**\n\t\t * Defines how fast the fog will grow dense.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.00025\n\t\t */\n\t\tthis.density = density;\n\n\t}\n\n\t/**\n\t * Returns a new fog with copied values from this instance.\n\t *\n\t * @return {FogExp2} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new FogExp2( this.color, this.density );\n\n\t}\n\n\t/**\n\t * Serializes the fog into JSON.\n\t *\n\t * @param {?(Object|string)} meta - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized fog\n\t */\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\n/**\n * This class can be used to define a linear fog that grows linearly denser\n * with the distance.\n *\n * ```js\n * const scene = new THREE.Scene();\n * scene.fog = new THREE.Fog( 0xcccccc, 10, 15 );\n * ```\n */\nclass Fog {\n\n\t/**\n\t * Constructs a new fog.\n\t *\n\t * @param {number|Color} color - The fog's color.\n\t * @param {number} [near=1] - The minimum distance to start applying fog.\n\t * @param {number} [far=1000] - The maximum distance at which fog stops being calculated and applied.\n\t */\n\tconstructor( color, near = 1, far = 1000 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isFog = true;\n\n\t\t/**\n\t\t * The name of the fog.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The fog's color.\n\t\t *\n\t\t * @type {Color}\n\t\t */\n\t\tthis.color = new Color( color );\n\n\t\t/**\n\t\t * The minimum distance to start applying fog. Objects that are less than\n\t\t * `near` units from the active camera won't be affected by fog.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.near = near;\n\n\t\t/**\n\t\t * The maximum distance at which fog stops being calculated and applied.\n\t\t * Objects that are more than `far` units away from the active camera won't\n\t\t * be affected by fog.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1000\n\t\t */\n\t\tthis.far = far;\n\n\t}\n\n\t/**\n\t * Returns a new fog with copied values from this instance.\n\t *\n\t * @return {Fog} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new Fog( this.color, this.near, this.far );\n\n\t}\n\n\t/**\n\t * Serializes the fog into JSON.\n\t *\n\t * @param {?(Object|string)} meta - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized fog\n\t */\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\n/**\n * Scenes allow you to set up what is to be rendered and where by three.js.\n * This is where you place 3D objects like meshes, lines or lights.\n *\n * @augments Object3D\n */\nclass Scene extends Object3D {\n\n\t/**\n\t * Constructs a new scene.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isScene = true;\n\n\t\tthis.type = 'Scene';\n\n\t\t/**\n\t\t * Defines the background of the scene. Valid inputs are:\n\t\t *\n\t\t * - A color for defining a uniform colored background.\n\t\t * - A texture for defining a (flat) textured background.\n\t\t * - Cube textures or equirectangular textures for defining a skybox.\n\t\t *\n\t\t * @type {?(Color|Texture)}\n\t\t * @default null\n\t\t */\n\t\tthis.background = null;\n\n\t\t/**\n\t\t * Sets the environment map for all physical materials in the scene. However,\n\t\t * it's not possible to overwrite an existing texture assigned to the `envMap`\n\t\t * material property.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.environment = null;\n\n\t\t/**\n\t\t * A fog instance defining the type of fog that affects everything\n\t\t * rendered in the scene.\n\t\t *\n\t\t * @type {?(Fog|FogExp2)}\n\t\t * @default null\n\t\t */\n\t\tthis.fog = null;\n\n\t\t/**\n\t\t * Sets the blurriness of the background. Only influences environment maps\n\t\t * assigned to {@link Scene#background}. Valid input is a float between `0`\n\t\t * and `1`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.backgroundBlurriness = 0;\n\n\t\t/**\n\t\t * Attenuates the color of the background. Only applies to background textures.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.backgroundIntensity = 1;\n\n\t\t/**\n\t\t * The rotation of the background in radians. Only influences environment maps\n\t\t * assigned to {@link Scene#background}.\n\t\t *\n\t\t * @type {Euler}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.backgroundRotation = new Euler();\n\n\t\t/**\n\t\t * Attenuates the color of the environment. Only influences environment maps\n\t\t * assigned to {@link Scene#environment}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.environmentIntensity = 1;\n\n\t\t/**\n\t\t * The rotation of the environment map in radians. Only influences physical materials\n\t\t * in the scene when {@link Scene#environment} is used.\n\t\t *\n\t\t * @type {Euler}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.environmentRotation = new Euler();\n\n\t\t/**\n\t\t * Forces everything in the scene to be rendered with the defined material. It is possible\n\t\t * to exclude materials from override by setting {@link Material#allowOverride} to `false`.\n\t\t *\n\t\t * @type {?Material}\n\t\t * @default null\n\t\t */\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\n/**\n * \"Interleaved\" means that multiple attributes, possibly of different types,\n * (e.g., position, normal, uv, color) are packed into a single array buffer.\n *\n * An introduction into interleaved arrays can be found here: [Interleaved array basics]{@link https://blog.tojicode.com/2011/05/interleaved-array-basics.html}\n */\nclass InterleavedBuffer {\n\n\t/**\n\t * Constructs a new interleaved buffer.\n\t *\n\t * @param {TypedArray} array - A typed array with a shared buffer storing attribute data.\n\t * @param {number} stride - The number of typed-array elements per vertex.\n\t */\n\tconstructor( array, stride ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isInterleavedBuffer = true;\n\n\t\t/**\n\t\t * A typed array with a shared buffer storing attribute data.\n\t\t *\n\t\t * @type {TypedArray}\n\t\t */\n\t\tthis.array = array;\n\n\t\t/**\n\t\t * The number of typed-array elements per vertex.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.stride = stride;\n\n\t\t/**\n\t\t * The total number of elements in the array\n\t\t *\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tthis.count = array !== undefined ? array.length / stride : 0;\n\n\t\t/**\n\t\t * Defines the intended usage pattern of the data store for optimization purposes.\n\t\t *\n\t\t * Note: After the initial use of a buffer, its usage cannot be changed. Instead,\n\t\t * instantiate a new one and set the desired usage before the next render.\n\t\t *\n\t\t * @type {(StaticDrawUsage|DynamicDrawUsage|StreamDrawUsage|StaticReadUsage|DynamicReadUsage|StreamReadUsage|StaticCopyUsage|DynamicCopyUsage|StreamCopyUsage)}\n\t\t * @default StaticDrawUsage\n\t\t */\n\t\tthis.usage = StaticDrawUsage;\n\n\t\t/**\n\t\t * This can be used to only update some components of stored vectors (for example, just the\n\t\t * component related to color). Use the `addUpdateRange()` function to add ranges to this array.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.updateRanges = [];\n\n\t\t/**\n\t\t * A version number, incremented every time the `needsUpdate` is set to `true`.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.version = 0;\n\n\t\t/**\n\t\t * The UUID of the interleaved buffer.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t}\n\n\t/**\n\t * A callback function that is executed after the renderer has transferred the attribute array\n\t * data to the GPU.\n\t */\n\tonUploadCallback() {}\n\n\t/**\n\t * Flag to indicate that this attribute has changed and should be re-sent to\n\t * the GPU. Set this to `true` when you modify the value of the array.\n\t *\n\t * @type {number}\n\t * @default false\n\t * @param {boolean} value\n\t */\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\t/**\n\t * Sets the usage of this interleaved buffer.\n\t *\n\t * @param {(StaticDrawUsage|DynamicDrawUsage|StreamDrawUsage|StaticReadUsage|DynamicReadUsage|StreamReadUsage|StaticCopyUsage|DynamicCopyUsage|StreamCopyUsage)} value - The usage to set.\n\t * @return {InterleavedBuffer} A reference to this interleaved buffer.\n\t */\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Adds a range of data in the data array to be updated on the GPU.\n\t *\n\t * @param {number} start - Position at which to start update.\n\t * @param {number} count - The number of components to update.\n\t */\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\t/**\n\t * Clears the update ranges.\n\t */\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\t/**\n\t * Copies the values of the given interleaved buffer to this instance.\n\t *\n\t * @param {InterleavedBuffer} source - The interleaved buffer to copy.\n\t * @return {InterleavedBuffer} A reference to this instance.\n\t */\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\t/**\n\t * Copies a vector from the given interleaved buffer to this one. The start\n\t * and destination position in the attribute buffers are represented by the\n\t * given indices.\n\t *\n\t * @param {number} index1 - The destination index into this interleaved buffer.\n\t * @param {InterleavedBuffer} interleavedBuffer - The interleaved buffer to copy from.\n\t * @param {number} index2 - The source index into the given interleaved buffer.\n\t * @return {InterleavedBuffer} A reference to this instance.\n\t */\n\tcopyAt( index1, interleavedBuffer, index2 ) {\n\n\t\tindex1 *= this.stride;\n\t\tindex2 *= interleavedBuffer.stride;\n\n\t\tfor ( let i = 0, l = this.stride; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = interleavedBuffer.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the given array data in the interleaved buffer.\n\t *\n\t * @param {(TypedArray|Array)} value - The array data to set.\n\t * @param {number} [offset=0] - The offset in this interleaved buffer's array.\n\t * @return {InterleavedBuffer} A reference to this instance.\n\t */\n\tset( value, offset = 0 ) {\n\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns a new interleaved buffer with copied values from this instance.\n\t *\n\t * @param {Object} [data] - An object with shared array buffers that allows to retain shared structures.\n\t * @return {InterleavedBuffer} A clone of this instance.\n\t */\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\t/**\n\t * Sets the given callback function that is executed after the Renderer has transferred\n\t * the array data to the GPU. Can be used to perform clean-up operations after\n\t * the upload when data are not needed anymore on the CPU side.\n\t *\n\t * @param {Function} callback - The `onUpload()` callback.\n\t * @return {InterleavedBuffer} A reference to this instance.\n\t */\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Serializes the interleaved buffer into JSON.\n\t *\n\t * @param {Object} [data] - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized interleaved buffer.\n\t */\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$7 = /*@__PURE__*/ new Vector3();\n\n/**\n * An alternative version of a buffer attribute with interleaved data. Interleaved\n * attributes share a common interleaved data storage ({@link InterleavedBuffer}) and refer with\n * different offsets into the buffer.\n */\nclass InterleavedBufferAttribute {\n\n\t/**\n\t * Constructs a new interleaved buffer attribute.\n\t *\n\t * @param {InterleavedBuffer} interleavedBuffer - The buffer holding the interleaved data.\n\t * @param {number} itemSize - The item size.\n\t * @param {number} offset - The attribute offset into the buffer.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( interleavedBuffer, itemSize, offset, normalized = false ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isInterleavedBufferAttribute = true;\n\n\t\t/**\n\t\t * The name of the buffer attribute.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The buffer holding the interleaved data.\n\t\t *\n\t\t * @type {InterleavedBuffer}\n\t\t */\n\t\tthis.data = interleavedBuffer;\n\n\t\t/**\n\t\t * The item size, see {@link BufferAttribute#itemSize}.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.itemSize = itemSize;\n\n\t\t/**\n\t\t * The attribute offset into the buffer.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.offset = offset;\n\n\t\t/**\n\t\t * Whether the data are normalized or not, see {@link BufferAttribute#normalized}\n\t\t *\n\t\t * @type {InterleavedBuffer}\n\t\t */\n\t\tthis.normalized = normalized;\n\n\t}\n\n\t/**\n\t * The item count of this buffer attribute.\n\t *\n\t * @type {number}\n\t * @readonly\n\t */\n\tget count() {\n\n\t\treturn this.data.count;\n\n\t}\n\n\t/**\n\t * The array holding the interleaved buffer attribute data.\n\t *\n\t * @type {TypedArray}\n\t */\n\tget array() {\n\n\t\treturn this.data.array;\n\n\t}\n\n\t/**\n\t * Flag to indicate that this attribute has changed and should be re-sent to\n\t * the GPU. Set this to `true` when you modify the value of the array.\n\t *\n\t * @type {number}\n\t * @default false\n\t * @param {boolean} value\n\t */\n\tset needsUpdate( value ) {\n\n\t\tthis.data.needsUpdate = value;\n\n\t}\n\n\t/**\n\t * Applies the given 4x4 matrix to the given attribute. Only works with\n\t * item size `3`.\n\t *\n\t * @param {Matrix4} m - The matrix to apply.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.data.count; i < l; i ++ ) {\n\n\t\t\t_vector$7.fromBufferAttribute( this, i );\n\n\t\t\t_vector$7.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$7.x, _vector$7.y, _vector$7.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Applies the given 3x3 normal matrix to the given attribute. Only works with\n\t * item size `3`.\n\t *\n\t * @param {Matrix3} m - The normal matrix to apply.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$7.fromBufferAttribute( this, i );\n\n\t\t\t_vector$7.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$7.x, _vector$7.y, _vector$7.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Applies the given 4x4 matrix to the given attribute. Only works with\n\t * item size `3` and with direction vectors.\n\t *\n\t * @param {Matrix4} m - The matrix to apply.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$7.fromBufferAttribute( this, i );\n\n\t\t\t_vector$7.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$7.x, _vector$7.y, _vector$7.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the given component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} component - The component index.\n\t * @return {number} The returned value.\n\t */\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\t/**\n\t * Sets the given value to the given component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} component - The component index.\n\t * @param {number} value - The value to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the x component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the y component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} y - The value to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the z component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} z - The value to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the w component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} w - The value to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Returns the x component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The x component.\n\t */\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\t/**\n\t * Returns the y component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The y component.\n\t */\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\t/**\n\t * Returns the z component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The z component.\n\t */\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\t/**\n\t * Returns the w component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The w component.\n\t */\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\t/**\n\t * Sets the x and y component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value for the x component to set.\n\t * @param {number} y - The value for the y component to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the x, y and z component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value for the x component to set.\n\t * @param {number} y - The value for the y component to set.\n\t * @param {number} z - The value for the z component to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the x, y, z and w component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value for the x component to set.\n\t * @param {number} y - The value for the y component to set.\n\t * @param {number} z - The value for the z component to set.\n\t * @param {number} w - The value for the w component to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Returns a new buffer attribute with copied values from this instance.\n\t *\n\t * If no parameter is provided, cloning an interleaved buffer attribute will de-interleave buffer data.\n\t *\n\t * @param {Object} [data] - An object with interleaved buffers that allows to retain the interleaved property.\n\t * @return {BufferAttribute|InterleavedBufferAttribute} A clone of this instance.\n\t */\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\t/**\n\t * Serializes the buffer attribute into JSON.\n\t *\n\t * If no parameter is provided, cloning an interleaved buffer attribute will de-interleave buffer data.\n\t *\n\t * @param {Object} [data] - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized buffer attribute.\n\t */\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\n/**\n * A material for rendering instances of {@link Sprite}.\n *\n * ```js\n * const map = new THREE.TextureLoader().load( 'textures/sprite.png' );\n * const material = new THREE.SpriteMaterial( { map: map, color: 0xffffff } );\n *\n * const sprite = new THREE.Sprite( material );\n * sprite.scale.set(200, 200, 1)\n * scene.add( sprite );\n * ```\n *\n * @augments Material\n */\nclass SpriteMaterial extends Material {\n\n\t/**\n\t * Constructs a new sprite material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSpriteMaterial = true;\n\n\t\tthis.type = 'SpriteMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff );\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * The rotation of the sprite in radians.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.rotation = 0;\n\n\t\t/**\n\t\t * Specifies whether size of the sprite is attenuated by the camera depth (perspective camera only).\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.sizeAttenuation = true;\n\n\t\t/**\n\t\t * Overwritten since sprite materials are transparent\n\t\t * by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.transparent = true;\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * A sprite is a plane that always faces towards the camera, generally with a\n * partially transparent texture applied.\n *\n * Sprites do not cast shadows, setting {@link Object3D#castShadow} to `true` will\n * have no effect.\n *\n * ```js\n * const map = new THREE.TextureLoader().load( 'sprite.png' );\n * const material = new THREE.SpriteMaterial( { map: map } );\n *\n * const sprite = new THREE.Sprite( material );\n * scene.add( sprite );\n * ```\n *\n * @augments Object3D\n */\nclass Sprite extends Object3D {\n\n\t/**\n\t * Constructs a new sprite.\n\t *\n\t * @param {(SpriteMaterial|SpriteNodeMaterial)} [material] - The sprite material.\n\t */\n\tconstructor( material = new SpriteMaterial() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t\t * The sprite geometry.\n\t\t *\n\t\t * @type {BufferGeometry}\n\t\t */\n\t\tthis.geometry = _geometry;\n\n\t\t/**\n\t\t * The sprite material.\n\t\t *\n\t\t * @type {(SpriteMaterial|SpriteNodeMaterial)}\n\t\t */\n\t\tthis.material = material;\n\n\t\t/**\n\t\t * The sprite's anchor point, and the point around which the sprite rotates.\n\t\t * A value of `(0.5, 0.5)` corresponds to the midpoint of the sprite. A value\n\t\t * of `(0, 0)` corresponds to the lower left corner of the sprite.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (0.5,0.5)\n\t\t */\n\t\tthis.center = new Vector2( 0.5, 0.5 );\n\n\t\t/**\n\t\t * The number of instances of this sprite.\n\t\t * Can only be used with {@link WebGPURenderer}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.count = 1;\n\n\t}\n\n\t/**\n\t * Computes intersection points between a casted ray and this sprite.\n\t *\n\t * @param {Raycaster} raycaster - The raycaster.\n\t * @param {Array} intersects - The target array that holds the intersection points.\n\t */\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\n/**\n * A component for providing a basic Level of Detail (LOD) mechanism.\n *\n * Every LOD level is associated with an object, and rendering can be switched\n * between them at the distances specified. Typically you would create, say,\n * three meshes, one for far away (low detail), one for mid range (medium\n * detail) and one for close up (high detail).\n *\n * ```js\n * const lod = new THREE.LOD();\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n *\n * //Create spheres with 3 levels of detail and create new LOD levels for them\n * for( let i = 0; i < 3; i++ ) {\n *\n * \tconst geometry = new THREE.IcosahedronGeometry( 10, 3 - i );\n * \tconst mesh = new THREE.Mesh( geometry, material );\n * \tlod.addLevel( mesh, i * 75 );\n *\n * }\n *\n * scene.add( lod );\n * ```\n *\n * @augments Object3D\n */\nclass LOD extends Object3D {\n\n\t/**\n\t * Constructs a new LOD.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLOD = true;\n\n\t\t/**\n\t\t * The current LOD index.\n\t\t *\n\t\t * @private\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis._currentLevel = 0;\n\n\t\tthis.type = 'LOD';\n\n\t\tObject.defineProperties( this, {\n\t\t\t/**\n\t\t\t * This array holds the LOD levels.\n\t\t\t *\n\t\t\t * @name LOD#levels\n\t\t\t * @type {Array<{object:Object3D,distance:number,hysteresis:number}>}\n\t\t\t */\n\t\t\tlevels: {\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: []\n\t\t\t}\n\t\t} );\n\n\t\t/**\n\t\t * Whether the LOD object is updated automatically by the renderer per frame\n\t\t * or not. If set to `false`, you have to call {@link LOD#update} in the\n\t\t * render loop by yourself.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\t/**\n\t * Adds a mesh that will display at a certain distance and greater. Typically\n\t * the further away the distance, the lower the detail on the mesh.\n\t *\n\t * @param {Object3D} object - The 3D object to display at this level.\n\t * @param {number} [distance=0] - The distance at which to display this level of detail.\n\t * @param {number} [hysteresis=0] - Threshold used to avoid flickering at LOD boundaries, as a fraction of distance.\n\t * @return {LOD} A reference to this instance.\n\t */\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\t/**\n\t * Removes an existing level, based on the distance from the camera.\n\t * Returns `true` when the level has been removed. Otherwise `false`.\n\t *\n\t * @param {number} distance - Distance of the level to remove.\n\t * @return {boolean} Whether the level has been removed or not.\n\t */\n\tremoveLevel( distance ) {\n\n\t\tconst levels = this.levels;\n\n\t\tfor ( let i = 0; i < levels.length; i ++ ) {\n\n\t\t\tif ( levels[ i ].distance === distance ) {\n\n\t\t\t\tconst removedElements = levels.splice( i, 1 );\n\t\t\t\tthis.remove( removedElements[ 0 ].object );\n\n\t\t\t\treturn true;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Returns the currently active LOD level index.\n\t *\n\t * @return {number} The current active LOD level index.\n\t */\n\tgetCurrentLevel() {\n\n\t\treturn this._currentLevel;\n\n\t}\n\n\t/**\n\t * Returns a reference to the first 3D object that is greater than\n\t * the given distance.\n\t *\n\t * @param {number} distance - The LOD distance.\n\t * @return {?Object3D} The found 3D object. `null` if no 3D object has been found.\n\t */\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\t/**\n\t * Computes intersection points between a casted ray and this LOD.\n\t *\n\t * @param {Raycaster} raycaster - The raycaster.\n\t * @param {Array} intersects - The target array that holds the intersection points.\n\t */\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\t/**\n\t * Updates the LOD by computing which LOD level should be visible according\n\t * to the current distance of the given camera.\n\t *\n\t * @param {Camera} camera - The camera the scene is rendered with.\n\t */\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$5 = /*@__PURE__*/ new Sphere();\nconst _inverseMatrix$2 = /*@__PURE__*/ new Matrix4();\nconst _ray$2 = /*@__PURE__*/ new Ray();\n\n/**\n * A mesh that has a {@link Skeleton} that can then be used to animate the\n * vertices of the geometry with skinning/skeleton animation.\n *\n * Next to a valid skeleton, the skinned mesh requires skin indices and weights\n * as buffer attributes in its geometry. These attribute define which bones affect a single\n * vertex to a certain extend.\n *\n * Typically skinned meshes are not created manually but loaders like {@link GLTFLoader}\n * or {@link FBXLoader } import respective models.\n *\n * @augments Mesh\n */\nclass SkinnedMesh extends Mesh {\n\n\t/**\n\t * Constructs a new skinned mesh.\n\t *\n\t * @param {BufferGeometry} [geometry] - The mesh geometry.\n\t * @param {Material|Array} [material] - The mesh material.\n\t */\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSkinnedMesh = true;\n\n\t\tthis.type = 'SkinnedMesh';\n\n\t\t/**\n\t\t * `AttachedBindMode` means the skinned mesh shares the same world space as the skeleton.\n\t\t * This is not true when using `DetachedBindMode` which is useful when sharing a skeleton\n\t\t * across multiple skinned meshes.\n\t\t *\n\t\t * @type {(AttachedBindMode|DetachedBindMode)}\n\t\t * @default AttachedBindMode\n\t\t */\n\t\tthis.bindMode = AttachedBindMode;\n\n\t\t/**\n\t\t * The base matrix that is used for the bound bone transforms.\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.bindMatrix = new Matrix4();\n\n\t\t/**\n\t\t * The base matrix that is used for resetting the bound bone transforms.\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.bindMatrixInverse = new Matrix4();\n\n\t\t/**\n\t\t * The bounding box of the skinned mesh. Can be computed via {@link SkinnedMesh#computeBoundingBox}.\n\t\t *\n\t\t * @type {?Box3}\n\t\t * @default null\n\t\t */\n\t\tthis.boundingBox = null;\n\n\t\t/**\n\t\t * The bounding sphere of the skinned mesh. Can be computed via {@link SkinnedMesh#computeBoundingSphere}.\n\t\t *\n\t\t * @type {?Sphere}\n\t\t * @default null\n\t\t */\n\t\tthis.boundingSphere = null;\n\n\t}\n\n\t/**\n\t * Computes the bounding box of the skinned mesh, and updates {@link SkinnedMesh#boundingBox}.\n\t * The bounding box is not automatically computed by the engine; this method must be called by your app.\n\t * If the skinned mesh is animated, the bounding box should be recomputed per frame in order to reflect\n\t * the current animation state.\n\t */\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\t/**\n\t * Computes the bounding sphere of the skinned mesh, and updates {@link SkinnedMesh#boundingSphere}.\n\t * The bounding sphere is automatically computed by the engine once when it is needed, e.g., for ray casting\n\t * and view frustum culling. If the skinned mesh is animated, the bounding sphere should be recomputed\n\t * per frame in order to reflect the current animation state.\n\t */\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$5.copy( this.boundingSphere );\n\t\t_sphere$5.applyMatrix4( matrixWorld );\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$5 ) === 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\t/**\n\t * Binds the given skeleton to the skinned mesh.\n\t *\n\t * @param {Skeleton} skeleton - The skeleton to bind.\n\t * @param {Matrix4} [bindMatrix] - The bind matrix. If no bind matrix is provided,\n\t * the skinned mesh's world matrix will be used instead.\n\t */\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\t/**\n\t * This method sets the skinned mesh in the rest pose).\n\t */\n\tpose() {\n\n\t\tthis.skeleton.pose();\n\n\t}\n\n\t/**\n\t * Normalizes the skin weights which are defined as a buffer attribute\n\t * in the skinned mesh's geometry.\n\t */\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\t/**\n\t * Applies the bone transform associated with the given index to the given\n\t * vertex position. Returns the updated vector.\n\t *\n\t * @param {number} index - The vertex index.\n\t * @param {Vector3} target - The target object that is used to store the method's result.\n\t * the skinned mesh's world matrix will be used instead.\n\t * @return {Vector3} The updated vertex position.\n\t */\n\tapplyBoneTransform( index, target ) {\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( target ).applyMatrix4( this.bindMatrix );\n\n\t\ttarget.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\ttarget.addScaledVector( _vector3.copy( _basePosition ).applyMatrix4( _matrix4 ), weight );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn target.applyMatrix4( this.bindMatrixInverse );\n\n\t}\n\n}\n\n/**\n * A bone which is part of a {@link Skeleton}. The skeleton in turn is used by\n * the {@link SkinnedMesh}.\n *\n * ```js\n * const root = new THREE.Bone();\n * const child = new THREE.Bone();\n *\n * root.add( child );\n * child.position.y = 5;\n * ```\n *\n * @augments Object3D\n */\nclass Bone extends Object3D {\n\n\t/**\n\t * Constructs a new bone.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isBone = true;\n\n\t\tthis.type = 'Bone';\n\n\t}\n\n}\n\n/**\n * Creates a texture directly from raw buffer data.\n *\n * The interpretation of the data depends on type and format: If the type is\n * `UnsignedByteType`, a `Uint8Array` will be useful for addressing the\n * texel data. If the format is `RGBAFormat`, data needs four values for\n * one texel; Red, Green, Blue and Alpha (typically the opacity).\n *\n * @augments Texture\n */\nclass DataTexture extends Texture {\n\n\t/**\n\t * Constructs a new data texture.\n\t *\n\t * @param {?TypedArray} [data=null] - The buffer data.\n\t * @param {number} [width=1] - The width of the texture.\n\t * @param {number} [height=1] - The height of the texture.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t * @param {number} [mapping=Texture.DEFAULT_MAPPING] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=NearestFilter] - The mag filter value.\n\t * @param {number} [minFilter=NearestFilter] - The min filter value.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t * @param {string} [colorSpace=NoColorSpace] - The color space.\n\t */\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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isDataTexture = true;\n\n\t\t/**\n\t\t * The image definition of a data texture.\n\t\t *\n\t\t * @type {{data:TypedArray,width:number,height:number}}\n\t\t */\n\t\tthis.image = { data: data, width: width, height: height };\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.generateMipmaps = false;\n\n\t\t/**\n\t\t * If set to `true`, the texture is flipped along the vertical axis when\n\t\t * uploaded to the GPU.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flipY = false;\n\n\t\t/**\n\t\t * Specifies the alignment requirements for the start of each pixel row in memory.\n\t\t *\n\t\t * Overwritten and set to `1` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default 1\n\t\t */\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nconst _offsetMatrix = /*@__PURE__*/ new Matrix4();\nconst _identityMatrix = /*@__PURE__*/ new Matrix4();\n\n/**\n * Class for representing the armatures in `three.js`. The skeleton\n * is defined by a hierarchy of bones.\n *\n * ```js\n * const bones = [];\n *\n * const shoulder = new THREE.Bone();\n * const elbow = new THREE.Bone();\n * const hand = new THREE.Bone();\n *\n * shoulder.add( elbow );\n * elbow.add( hand );\n *\n * bones.push( shoulder , elbow, hand);\n *\n * shoulder.position.y = -5;\n * elbow.position.y = 0;\n * hand.position.y = 5;\n *\n * const armSkeleton = new THREE.Skeleton( bones );\n * ```\n */\nclass Skeleton {\n\n\t/**\n\t * Constructs a new skeleton.\n\t *\n\t * @param {Array} [bones] - An array of bones.\n\t * @param {Array} [boneInverses] - An array of bone inverse matrices.\n\t * If not provided, these matrices will be computed automatically via {@link Skeleton#calculateInverses}.\n\t */\n\tconstructor( bones = [], boneInverses = [] ) {\n\n\t\tthis.uuid = generateUUID();\n\n\t\t/**\n\t\t * An array of bones defining the skeleton.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.bones = bones.slice( 0 );\n\n\t\t/**\n\t\t * An array of bone inverse matrices.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.boneInverses = boneInverses;\n\n\t\t/**\n\t\t * An array buffer holding the bone data.\n\t\t * Input data for {@link Skeleton#boneTexture}.\n\t\t *\n\t\t * @type {?Float32Array}\n\t\t * @default null\n\t\t */\n\t\tthis.boneMatrices = null;\n\n\t\t/**\n\t\t * A texture holding the bone data for use\n\t\t * in the vertex shader.\n\t\t *\n\t\t * @type {?DataTexture}\n\t\t * @default null\n\t\t */\n\t\tthis.boneTexture = null;\n\n\t\tthis.init();\n\n\t}\n\n\t/**\n\t * Initializes the skeleton. This method gets automatically called by the constructor\n\t * but depending on how the skeleton is created it might be necessary to call this method\n\t * manually.\n\t */\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\t/**\n\t * Computes the bone inverse matrices. This method resets {@link Skeleton#boneInverses}\n\t * and fills it with new matrices.\n\t */\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\t/**\n\t * Resets the skeleton to the base pose.\n\t */\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\t/**\n\t * Resets the skeleton to the base pose.\n\t */\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;\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\t/**\n\t * Returns a new skeleton with copied values from this instance.\n\t *\n\t * @return {Skeleton} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new Skeleton( this.bones, this.boneInverses );\n\n\t}\n\n\t/**\n\t * Computes a data texture for passing bone data to the vertex shader.\n\t *\n\t * @return {Skeleton} A reference of this instance.\n\t */\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\t/**\n\t * Searches through the skeleton's bone array and returns the first with a\n\t * matching name.\n\t *\n\t * @param {string} name - The name of the bone.\n\t * @return {Bone|undefined} The found bone. `undefined` if no bone has been found.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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\t/**\n\t * Setups the skeleton by the given JSON and bones.\n\t *\n\t * @param {Object} json - The skeleton as serialized JSON.\n\t * @param {Object} bones - An array of bones.\n\t * @return {Skeleton} A reference of this instance.\n\t */\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\t/**\n\t * Serializes the skeleton into JSON.\n\t *\n\t * @return {Object} A JSON object representing the serialized skeleton.\n\t * @see {@link ObjectLoader#parse}\n\t */\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.7,\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\n/**\n * An instanced version of a buffer attribute.\n *\n * @augments BufferAttribute\n */\nclass InstancedBufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new instanced buffer attribute.\n\t *\n\t * @param {TypedArray} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t * @param {number} [meshPerAttribute=1] - How often a value of this buffer attribute should be repeated.\n\t */\n\tconstructor( array, itemSize, normalized, meshPerAttribute = 1 ) {\n\n\t\tsuper( array, itemSize, normalized );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isInstancedBufferAttribute = true;\n\n\t\t/**\n\t\t * Defines how often a value of this buffer attribute should be repeated. A\n\t\t * value of one means that each value of the instanced attribute is used for\n\t\t * a single instance. A value of two means that each value is used for two\n\t\t * consecutive instances (and so on).\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\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$4 = /*@__PURE__*/ new Sphere();\n\n/**\n * A special version of a mesh with instanced rendering support. Use\n * this class if you have to render a large number of objects with the same\n * geometry and material(s) but with different world transformations. The usage\n * of 'InstancedMesh' will help you to reduce the number of draw calls and thus\n * improve the overall rendering performance in your application.\n *\n * @augments Mesh\n */\nclass InstancedMesh extends Mesh {\n\n\t/**\n\t * Constructs a new instanced mesh.\n\t *\n\t * @param {BufferGeometry} [geometry] - The mesh geometry.\n\t * @param {Material|Array} [material] - The mesh material.\n\t * @param {number} count - The number of instances.\n\t */\n\tconstructor( geometry, material, count ) {\n\n\t\tsuper( geometry, material );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isInstancedMesh = true;\n\n\t\t/**\n\t\t * Represents the local transformation of all instances. You have to set its\n\t\t * {@link BufferAttribute#needsUpdate} flag to true if you modify instanced data\n\t\t * via {@link InstancedMesh#setMatrixAt}.\n\t\t *\n\t\t * @type {InstancedBufferAttribute}\n\t\t */\n\t\tthis.instanceMatrix = new InstancedBufferAttribute( new Float32Array( count * 16 ), 16 );\n\n\t\t/**\n\t\t * Represents the color of all instances. You have to set its\n\t\t * {@link BufferAttribute#needsUpdate} flag to true if you modify instanced data\n\t\t * via {@link InstancedMesh#setColorAt}.\n\t\t *\n\t\t * @type {?InstancedBufferAttribute}\n\t\t * @default null\n\t\t */\n\t\tthis.instanceColor = null;\n\n\t\t/**\n\t\t * Represents the morph target weights of all instances. You have to set its\n\t\t * {@link Texture#needsUpdate} flag to true if you modify instanced data\n\t\t * via {@link InstancedMesh#setMorphAt}.\n\t\t *\n\t\t * @type {?DataTexture}\n\t\t * @default null\n\t\t */\n\t\tthis.morphTexture = null;\n\n\t\t/**\n\t\t * The number of instances.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.count = count;\n\n\t\t/**\n\t\t * The bounding box of the instanced mesh. Can be computed via {@link InstancedMesh#computeBoundingBox}.\n\t\t *\n\t\t * @type {?Box3}\n\t\t * @default null\n\t\t */\n\t\tthis.boundingBox = null;\n\n\t\t/**\n\t\t * The bounding sphere of the instanced mesh. Can be computed via {@link InstancedMesh#computeBoundingSphere}.\n\t\t *\n\t\t * @type {?Sphere}\n\t\t * @default null\n\t\t */\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\t/**\n\t * Computes the bounding box of the instanced mesh, and updates {@link InstancedMesh#boundingBox}.\n\t * The bounding box is not automatically computed by the engine; this method must be called by your app.\n\t * You may need to recompute the bounding box if an instance is transformed via {@link InstancedMesh#setMatrixAt}.\n\t */\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\t/**\n\t * Computes the bounding sphere of the instanced mesh, and updates {@link InstancedMesh#boundingSphere}\n\t * The engine automatically computes the bounding sphere when it is needed, e.g., for ray casting or view frustum culling.\n\t * You may need to recompute the bounding sphere if an instance is transformed via {@link InstancedMesh#setMatrixAt}.\n\t */\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$4.copy( geometry.boundingSphere ).applyMatrix4( _instanceLocalMatrix );\n\n\t\t\tthis.boundingSphere.union( _sphere$4 );\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\t/**\n\t * Gets the color of the defined instance.\n\t *\n\t * @param {number} index - The instance index.\n\t * @param {Color} color - The target object that is used to store the method's result.\n\t */\n\tgetColorAt( index, color ) {\n\n\t\tcolor.fromArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\t/**\n\t * Gets the local transformation matrix of the defined instance.\n\t *\n\t * @param {number} index - The instance index.\n\t * @param {Matrix4} matrix - The target object that is used to store the method's result.\n\t */\n\tgetMatrixAt( index, matrix ) {\n\n\t\tmatrix.fromArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\t/**\n\t * Gets the morph target weights of the defined instance.\n\t *\n\t * @param {number} index - The instance index.\n\t * @param {Mesh} object - The target object that is used to store the method's result.\n\t */\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$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// 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\t/**\n\t * Sets the given color to the defined instance. Make sure you set the `needsUpdate` flag of\n\t * {@link InstancedMesh#instanceColor} to `true` after updating all the colors.\n\t *\n\t * @param {number} index - The instance index.\n\t * @param {Color} color - The instance color.\n\t */\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 ).fill( 1 ), 3 );\n\n\t\t}\n\n\t\tcolor.toArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\t/**\n\t * Sets the given local transformation matrix to the defined instance. Make sure you set the `needsUpdate` flag of\n\t * {@link InstancedMesh#instanceMatrix} to `true` after updating all the colors.\n\t *\n\t * @param {number} index - The instance index.\n\t * @param {Matrix4} matrix - The local transformation.\n\t */\n\tsetMatrixAt( index, matrix ) {\n\n\t\tmatrix.toArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\t/**\n\t * Sets the morph target weights to the defined instance. Make sure you set the `needsUpdate` flag of\n\t * {@link InstancedMesh#morphTexture} to `true` after updating all the influences.\n\t *\n\t * @param {number} index - The instance index.\n\t * @param {Mesh} object - A mesh which `morphTargetInfluences` property containing the morph target weights\n\t * of a single instance.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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}\n\n}\n\nconst _vector1 = /*@__PURE__*/ new Vector3();\nconst _vector2 = /*@__PURE__*/ new Vector3();\nconst _normalMatrix = /*@__PURE__*/ new Matrix3();\n\n/**\n * A two dimensional surface that extends infinitely in 3D space, represented\n * in [Hessian normal form]{@link http://mathworld.wolfram.com/HessianNormalForm.html}\n * by a unit length normal vector and a constant.\n */\nclass Plane {\n\n\t/**\n\t * Constructs a new plane.\n\t *\n\t * @param {Vector3} [normal=(1,0,0)] - A unit length vector defining the normal of the plane.\n\t * @param {number} [constant=0] - The signed distance from the origin to the plane.\n\t */\n\tconstructor( normal = new Vector3( 1, 0, 0 ), constant = 0 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isPlane = true;\n\n\t\t/**\n\t\t * A unit length vector defining the normal of the plane.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.normal = normal;\n\n\t\t/**\n\t\t * The signed distance from the origin to the plane.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.constant = constant;\n\n\t}\n\n\t/**\n\t * Sets the plane components by copying the given values.\n\t *\n\t * @param {Vector3} normal - The normal.\n\t * @param {number} constant - The constant.\n\t * @return {Plane} A reference to this plane.\n\t */\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\t/**\n\t * Sets the plane components by defining `x`, `y`, `z` as the\n\t * plane normal and `w` as the constant.\n\t *\n\t * @param {number} x - The value for the normal's x component.\n\t * @param {number} y - The value for the normal's y component.\n\t * @param {number} z - The value for the normal's z component.\n\t * @param {number} w - The constant value.\n\t * @return {Plane} A reference to this plane.\n\t */\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\t/**\n\t * Sets the plane from the given normal and coplanar point (that is a point\n\t * that lies onto the plane).\n\t *\n\t * @param {Vector3} normal - The normal.\n\t * @param {Vector3} point - A coplanar point.\n\t * @return {Plane} A reference to this plane.\n\t */\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\t/**\n\t * Sets the plane from three coplanar points. The winding order is\n\t * assumed to be counter-clockwise, and determines the direction of\n\t * the plane normal.\n\t *\n\t * @param {Vector3} a - The first coplanar point.\n\t * @param {Vector3} b - The second coplanar point.\n\t * @param {Vector3} c - The third coplanar point.\n\t * @return {Plane} A reference to this plane.\n\t */\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\t/**\n\t * Copies the values of the given plane to this instance.\n\t *\n\t * @param {Plane} plane - The plane to copy.\n\t * @return {Plane} A reference to this plane.\n\t */\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\t/**\n\t * Normalizes the plane normal and adjusts the constant accordingly.\n\t *\n\t * @return {Plane} A reference to this plane.\n\t */\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\t/**\n\t * Negates both the plane normal and the constant.\n\t *\n\t * @return {Plane} A reference to this plane.\n\t */\n\tnegate() {\n\n\t\tthis.constant *= -1;\n\t\tthis.normal.negate();\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the signed distance from the given point to this plane.\n\t *\n\t * @param {Vector3} point - The point to compute the distance for.\n\t * @return {number} The signed distance.\n\t */\n\tdistanceToPoint( point ) {\n\n\t\treturn this.normal.dot( point ) + this.constant;\n\n\t}\n\n\t/**\n\t * Returns the signed distance from the given sphere to this plane.\n\t *\n\t * @param {Sphere} sphere - The sphere to compute the distance for.\n\t * @return {number} The signed distance.\n\t */\n\tdistanceToSphere( sphere ) {\n\n\t\treturn this.distanceToPoint( sphere.center ) - sphere.radius;\n\n\t}\n\n\t/**\n\t * Projects a the given point onto the plane.\n\t *\n\t * @param {Vector3} point - The point to project.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The projected point on the plane.\n\t */\n\tprojectPoint( point, target ) {\n\n\t\treturn target.copy( point ).addScaledVector( this.normal, - this.distanceToPoint( point ) );\n\n\t}\n\n\t/**\n\t * Returns the intersection point of the passed line and the plane. Returns\n\t * `null` if the line does not intersect. Returns the line's starting point if\n\t * the line is coplanar with the plane.\n\t *\n\t * @param {Line3} line - The line to compute the intersection for.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The intersection point.\n\t */\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\t/**\n\t * Returns `true` if the given line segment intersects with (passes through) the plane.\n\t *\n\t * @param {Line3} line - The line to test.\n\t * @return {boolean} Whether the given line segment intersects with the plane or not.\n\t */\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\t/**\n\t * Returns `true` if the given bounding box intersects with the plane.\n\t *\n\t * @param {Box3} box - The bounding box to test.\n\t * @return {boolean} Whether the given bounding box intersects with the plane or not.\n\t */\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsPlane( this );\n\n\t}\n\n\t/**\n\t * Returns `true` if the given bounding sphere intersects with the plane.\n\t *\n\t * @param {Sphere} sphere - The bounding sphere to test.\n\t * @return {boolean} Whether the given bounding sphere intersects with the plane or not.\n\t */\n\tintersectsSphere( sphere ) {\n\n\t\treturn sphere.intersectsPlane( this );\n\n\t}\n\n\t/**\n\t * Returns a coplanar vector to the plane, by calculating the\n\t * projection of the normal at the origin onto the plane.\n\t *\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The coplanar point.\n\t */\n\tcoplanarPoint( target ) {\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.constant );\n\n\t}\n\n\t/**\n\t * Apply a 4x4 matrix to the plane. The matrix must be an affine, homogeneous transform.\n\t *\n\t * The optional normal matrix can be pre-computed like so:\n\t * ```js\n\t * const optionalNormalMatrix = new THREE.Matrix3().getNormalMatrix( matrix );\n\t * ```\n\t *\n\t * @param {Matrix4} matrix - The transformation matrix.\n\t * @param {Matrix4} [optionalNormalMatrix] - A pre-computed normal matrix.\n\t * @return {Plane} A reference to this plane.\n\t */\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\t/**\n\t * Translates the plane by the distance defined by the given offset vector.\n\t * Note that this only affects the plane constant and will not affect the normal vector.\n\t *\n\t * @param {Vector3} offset - The offset vector.\n\t * @return {Plane} A reference to this plane.\n\t */\n\ttranslate( offset ) {\n\n\t\tthis.constant -= offset.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns `true` if this plane is equal with the given one.\n\t *\n\t * @param {Plane} plane - The plane to test for equality.\n\t * @return {boolean} Whether this plane is equal with the given one.\n\t */\n\tequals( plane ) {\n\n\t\treturn plane.normal.equals( this.normal ) && ( plane.constant === this.constant );\n\n\t}\n\n\t/**\n\t * Returns a new plane with copied values from this instance.\n\t *\n\t * @return {Plane} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _sphere$3 = /*@__PURE__*/ new Sphere();\nconst _defaultSpriteCenter = /*@__PURE__*/ new Vector2( 0.5, 0.5 );\nconst _vector$6 = /*@__PURE__*/ new Vector3();\n\n/**\n * Frustums are used to determine what is inside the camera's field of view.\n * They help speed up the rendering process - objects which lie outside a camera's\n * frustum can safely be excluded from rendering.\n *\n * This class is mainly intended for use internally by a renderer.\n */\nclass Frustum {\n\n\t/**\n\t * Constructs a new frustum.\n\t *\n\t * @param {Plane} [p0] - The first plane that encloses the frustum.\n\t * @param {Plane} [p1] - The second plane that encloses the frustum.\n\t * @param {Plane} [p2] - The third plane that encloses the frustum.\n\t * @param {Plane} [p3] - The fourth plane that encloses the frustum.\n\t * @param {Plane} [p4] - The fifth plane that encloses the frustum.\n\t * @param {Plane} [p5] - The sixth plane that encloses the frustum.\n\t */\n\tconstructor( p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane() ) {\n\n\t\t/**\n\t\t * This array holds the planes that enclose the frustum.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.planes = [ p0, p1, p2, p3, p4, p5 ];\n\n\t}\n\n\t/**\n\t * Sets the frustum planes by copying the given planes.\n\t *\n\t * @param {Plane} [p0] - The first plane that encloses the frustum.\n\t * @param {Plane} [p1] - The second plane that encloses the frustum.\n\t * @param {Plane} [p2] - The third plane that encloses the frustum.\n\t * @param {Plane} [p3] - The fourth plane that encloses the frustum.\n\t * @param {Plane} [p4] - The fifth plane that encloses the frustum.\n\t * @param {Plane} [p5] - The sixth plane that encloses the frustum.\n\t * @return {Frustum} A reference to this frustum.\n\t */\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\t/**\n\t * Copies the values of the given frustum to this instance.\n\t *\n\t * @param {Frustum} frustum - The frustum to copy.\n\t * @return {Frustum} A reference to this frustum.\n\t */\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\t/**\n\t * Sets the frustum planes from the given projection matrix.\n\t *\n\t * @param {Matrix4} m - The projection matrix.\n\t * @param {(WebGLCoordinateSystem|WebGPUCoordinateSystem)} coordinateSystem - The coordinate system.\n\t * @param {boolean} [reversedDepth=false] - Whether to use a reversed depth.\n\t * @return {Frustum} A reference to this frustum.\n\t */\n\tsetFromProjectionMatrix( m, coordinateSystem = WebGLCoordinateSystem, reversedDepth = false ) {\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\n\t\tif ( reversedDepth ) {\n\n\t\t\tplanes[ 4 ].setComponents( me2, me6, me10, me14 ).normalize(); // far\n\t\t\tplanes[ 5 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize(); // near\n\n\t\t} else {\n\n\t\t\tplanes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize(); // far\n\n\t\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\t\tplanes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize(); // near\n\n\t\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\t\tplanes[ 5 ].setComponents( me2, me6, me10, me14 ).normalize(); // near\n\n\t\t\t} else {\n\n\t\t\t\tthrow new Error( 'THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns `true` if the 3D object's bounding sphere is intersecting this frustum.\n\t *\n\t * Note that the 3D object must have a geometry so that the bounding sphere can be calculated.\n\t *\n\t * @param {Object3D} object - The 3D object to test.\n\t * @return {boolean} Whether the 3D object's bounding sphere is intersecting this frustum or not.\n\t */\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$3.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$3.copy( geometry.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t}\n\n\t\treturn this.intersectsSphere( _sphere$3 );\n\n\t}\n\n\t/**\n\t * Returns `true` if the given sprite is intersecting this frustum.\n\t *\n\t * @param {Sprite} sprite - The sprite to test.\n\t * @return {boolean} Whether the sprite is intersecting this frustum or not.\n\t */\n\tintersectsSprite( sprite ) {\n\n\t\t_sphere$3.center.set( 0, 0, 0 );\n\n\t\tconst offset = _defaultSpriteCenter.distanceTo( sprite.center );\n\n\t\t_sphere$3.radius = 0.7071067811865476 + offset;\n\t\t_sphere$3.applyMatrix4( sprite.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere$3 );\n\n\t}\n\n\t/**\n\t * Returns `true` if the given bounding sphere is intersecting this frustum.\n\t *\n\t * @param {Sphere} sphere - The bounding sphere to test.\n\t * @return {boolean} Whether the bounding sphere is intersecting this frustum or not.\n\t */\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\t/**\n\t * Returns `true` if the given bounding box is intersecting this frustum.\n\t *\n\t * @param {Box3} box - The bounding box to test.\n\t * @return {boolean} Whether the bounding box is intersecting this frustum or not.\n\t */\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$6.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n\t\t\t_vector$6.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n\t\t\t_vector$6.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n\n\t\t\tif ( plane.distanceToPoint( _vector$6 ) < 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\t/**\n\t * Returns `true` if the given point lies within the frustum.\n\t *\n\t * @param {Vector3} point - The point to test.\n\t * @return {boolean} Whether the point lies within this frustum or not.\n\t */\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\t/**\n\t * Returns a new frustum with copied values from this instance.\n\t *\n\t * @return {Frustum} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _projScreenMatrix$2 = /*@__PURE__*/ new Matrix4();\nconst _frustum$1 = /*@__PURE__*/ new Frustum();\n\n/**\n * FrustumArray is used to determine if an object is visible in at least one camera\n * from an array of cameras. This is particularly useful for multi-view renderers.\n*/\nclass FrustumArray {\n\n\t/**\n\t * Constructs a new frustum array.\n\t *\n\t */\n\tconstructor() {\n\n\t\t/**\n\t\t * The coordinate system to use.\n\t\t *\n\t\t * @type {WebGLCoordinateSystem|WebGPUCoordinateSystem}\n\t\t * @default WebGLCoordinateSystem\n\t\t */\n\t\tthis.coordinateSystem = WebGLCoordinateSystem;\n\n\t}\n\n\t/**\n\t * Returns `true` if the 3D object's bounding sphere is intersecting any frustum\n\t * from the camera array.\n\t *\n\t * @param {Object3D} object - The 3D object to test.\n\t * @param {Object} cameraArray - An object with a cameras property containing an array of cameras.\n\t * @return {boolean} Whether the 3D object is visible in any camera.\n\t */\n\tintersectsObject( object, cameraArray ) {\n\n\t\tif ( ! cameraArray.isArrayCamera || cameraArray.cameras.length === 0 ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < cameraArray.cameras.length; i ++ ) {\n\n\t\t\tconst camera = cameraArray.cameras[ i ];\n\n\t\t\t_projScreenMatrix$2.multiplyMatrices(\n\t\t\t\tcamera.projectionMatrix,\n\t\t\t\tcamera.matrixWorldInverse\n\t\t\t);\n\n\t\t\t_frustum$1.setFromProjectionMatrix(\n\t\t\t\t_projScreenMatrix$2,\n\t\t\t\tcamera.coordinateSystem,\n\t\t\t\tcamera.reversedDepth\n\t\t\t);\n\n\t\t\tif ( _frustum$1.intersectsObject( object ) ) {\n\n\t\t\t\treturn true; // Object is visible in at least one camera\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false; // Not visible in any camera\n\n\t}\n\n\t/**\n\t * Returns `true` if the given sprite is intersecting any frustum\n\t * from the camera array.\n\t *\n\t * @param {Sprite} sprite - The sprite to test.\n\t * @param {Object} cameraArray - An object with a cameras property containing an array of cameras.\n\t * @return {boolean} Whether the sprite is visible in any camera.\n\t */\n\tintersectsSprite( sprite, cameraArray ) {\n\n\t\tif ( ! cameraArray || ! cameraArray.cameras || cameraArray.cameras.length === 0 ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < cameraArray.cameras.length; i ++ ) {\n\n\t\t\tconst camera = cameraArray.cameras[ i ];\n\n\t\t\t_projScreenMatrix$2.multiplyMatrices(\n\t\t\t\tcamera.projectionMatrix,\n\t\t\t\tcamera.matrixWorldInverse\n\t\t\t);\n\n\t\t\t_frustum$1.setFromProjectionMatrix(\n\t\t\t\t_projScreenMatrix$2,\n\t\t\t\tcamera.coordinateSystem,\n\t\t\t\tcamera.reversedDepth\n\t\t\t);\n\n\t\t\tif ( _frustum$1.intersectsSprite( sprite ) ) {\n\n\t\t\t\treturn true; // Sprite is visible in at least one camera\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false; // Not visible in any camera\n\n\t}\n\n\t/**\n\t * Returns `true` if the given bounding sphere is intersecting any frustum\n\t * from the camera array.\n\t *\n\t * @param {Sphere} sphere - The bounding sphere to test.\n\t * @param {Object} cameraArray - An object with a cameras property containing an array of cameras.\n\t * @return {boolean} Whether the sphere is visible in any camera.\n\t */\n\tintersectsSphere( sphere, cameraArray ) {\n\n\t\tif ( ! cameraArray || ! cameraArray.cameras || cameraArray.cameras.length === 0 ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < cameraArray.cameras.length; i ++ ) {\n\n\t\t\tconst camera = cameraArray.cameras[ i ];\n\n\t\t\t_projScreenMatrix$2.multiplyMatrices(\n\t\t\t\tcamera.projectionMatrix,\n\t\t\t\tcamera.matrixWorldInverse\n\t\t\t);\n\n\t\t\t_frustum$1.setFromProjectionMatrix(\n\t\t\t\t_projScreenMatrix$2,\n\t\t\t\tcamera.coordinateSystem,\n\t\t\t\tcamera.reversedDepth\n\t\t\t);\n\n\t\t\tif ( _frustum$1.intersectsSphere( sphere ) ) {\n\n\t\t\t\treturn true; // Sphere is visible in at least one camera\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false; // Not visible in any camera\n\n\t}\n\n\t/**\n\t * Returns `true` if the given bounding box is intersecting any frustum\n\t * from the camera array.\n\t *\n\t * @param {Box3} box - The bounding box to test.\n\t * @param {Object} cameraArray - An object with a cameras property containing an array of cameras.\n\t * @return {boolean} Whether the box is visible in any camera.\n\t */\n\tintersectsBox( box, cameraArray ) {\n\n\t\tif ( ! cameraArray || ! cameraArray.cameras || cameraArray.cameras.length === 0 ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < cameraArray.cameras.length; i ++ ) {\n\n\t\t\tconst camera = cameraArray.cameras[ i ];\n\n\t\t\t_projScreenMatrix$2.multiplyMatrices(\n\t\t\t\tcamera.projectionMatrix,\n\t\t\t\tcamera.matrixWorldInverse\n\t\t\t);\n\n\t\t\t_frustum$1.setFromProjectionMatrix(\n\t\t\t\t_projScreenMatrix$2,\n\t\t\t\tcamera.coordinateSystem,\n\t\t\t\tcamera.reversedDepth\n\t\t\t);\n\n\t\t\tif ( _frustum$1.intersectsBox( box ) ) {\n\n\t\t\t\treturn true; // Box is visible in at least one camera\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false; // Not visible in any camera\n\n\t}\n\n\t/**\n\t * Returns `true` if the given point lies within any frustum\n\t * from the camera array.\n\t *\n\t * @param {Vector3} point - The point to test.\n\t * @param {Object} cameraArray - An object with a cameras property containing an array of cameras.\n\t * @return {boolean} Whether the point is visible in any camera.\n\t */\n\tcontainsPoint( point, cameraArray ) {\n\n\t\tif ( ! cameraArray || ! cameraArray.cameras || cameraArray.cameras.length === 0 ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < cameraArray.cameras.length; i ++ ) {\n\n\t\t\tconst camera = cameraArray.cameras[ i ];\n\n\t\t\t_projScreenMatrix$2.multiplyMatrices(\n\t\t\t\tcamera.projectionMatrix,\n\t\t\t\tcamera.matrixWorldInverse\n\t\t\t);\n\n\t\t\t_frustum$1.setFromProjectionMatrix(\n\t\t\t\t_projScreenMatrix$2,\n\t\t\t\tcamera.coordinateSystem,\n\t\t\t\tcamera.reversedDepth\n\t\t\t);\n\n\t\t\tif ( _frustum$1.containsPoint( point ) ) {\n\n\t\t\t\treturn true; // Point is visible in at least one camera\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false; // Not visible in any camera\n\n\t}\n\n\t/**\n\t * Returns a new frustum array with copied values from this instance.\n\t *\n\t * @return {FrustumArray} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new FrustumArray();\n\n\t}\n\n}\n\nfunction ascIdSort( a, b ) {\n\n\treturn a - b;\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( start, count, 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 = start;\n\t\titem.count = 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 _whiteColor = /*@__PURE__*/ new Color( 1, 1, 1 );\nconst _frustum = /*@__PURE__*/ new Frustum();\nconst _frustumArray = /*@__PURE__*/ new FrustumArray();\nconst _box$1 = /*@__PURE__*/ new Box3();\nconst _sphere$2 = /*@__PURE__*/ new Sphere();\nconst _vector$5 = /*@__PURE__*/ new Vector3();\nconst _forward$1 = /*@__PURE__*/ new Vector3();\nconst _temp = /*@__PURE__*/ new Vector3();\nconst _renderList = /*@__PURE__*/ new MultiDrawRenderList();\nconst _mesh = /*@__PURE__*/ new Mesh();\nconst _batchIntersects = [];\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\n// safely copies array contents to a potentially smaller array\nfunction copyArrayContents( src, target ) {\n\n\tif ( src.constructor !== target.constructor ) {\n\n\t\t// if arrays are of a different type (eg due to index size increasing) then data must be per-element copied\n\t\tconst len = Math.min( src.length, target.length );\n\t\tfor ( let i = 0; i < len; i ++ ) {\n\n\t\t\ttarget[ i ] = src[ i ];\n\n\t\t}\n\n\t} else {\n\n\t\t// if the arrays use the same data layout we can use a fast block copy\n\t\tconst len = Math.min( src.length, target.length );\n\t\ttarget.set( new src.constructor( src.buffer, 0, len ) );\n\n\t}\n\n}\n\n/**\n * A special version of a mesh with multi draw batch rendering support. Use\n * this class if you have to render a large number of objects with the same\n * material but with different geometries or world transformations. The usage of\n * `BatchedMesh` will help you to reduce the number of draw calls and thus improve the overall\n * rendering performance in your application.\n *\n * ```js\n * const box = new THREE.BoxGeometry( 1, 1, 1 );\n * const sphere = new THREE.SphereGeometry( 1, 12, 12 );\n * const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );\n *\n * // initialize and add geometries into the batched mesh\n * const batchedMesh = new BatchedMesh( 10, 5000, 10000, material );\n * const boxGeometryId = batchedMesh.addGeometry( box );\n * const sphereGeometryId = batchedMesh.addGeometry( sphere );\n *\n * // create instances of those geometries\n * const boxInstancedId1 = batchedMesh.addInstance( boxGeometryId );\n * const boxInstancedId2 = batchedMesh.addInstance( boxGeometryId );\n *\n * const sphereInstancedId1 = batchedMesh.addInstance( sphereGeometryId );\n * const sphereInstancedId2 = batchedMesh.addInstance( sphereGeometryId );\n *\n * // position the geometries\n * batchedMesh.setMatrixAt( boxInstancedId1, boxMatrix1 );\n * batchedMesh.setMatrixAt( boxInstancedId2, boxMatrix2 );\n *\n * batchedMesh.setMatrixAt( sphereInstancedId1, sphereMatrix1 );\n * batchedMesh.setMatrixAt( sphereInstancedId2, sphereMatrix2 );\n *\n * scene.add( batchedMesh );\n * ```\n *\n * @augments Mesh\n */\nclass BatchedMesh extends Mesh {\n\n\t/**\n\t * Constructs a new batched mesh.\n\t *\n\t * @param {number} maxInstanceCount - The maximum number of individual instances planned to be added and rendered.\n\t * @param {number} maxVertexCount - The maximum number of vertices to be used by all unique geometries.\n\t * @param {number} [maxIndexCount=maxVertexCount*2] - The maximum number of indices to be used by all unique geometries\n\t * @param {Material|Array} [material] - The mesh material.\n\t */\n\tconstructor( maxInstanceCount, maxVertexCount, maxIndexCount = maxVertexCount * 2, material ) {\n\n\t\tsuper( new BufferGeometry(), material );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isBatchedMesh = true;\n\n\t\t/**\n\t\t * When set ot `true`, the individual objects of a batch are frustum culled.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.perObjectFrustumCulled = true;\n\n\t\t/**\n\t\t * When set to `true`, the individual objects of a batch are sorted to improve overdraw-related artifacts.\n\t\t * If the material is marked as \"transparent\" objects are rendered back to front and if not then they are\n\t\t * rendered front to back.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.sortObjects = true;\n\n\t\t/**\n\t\t * The bounding box of the batched mesh. Can be computed via {@link BatchedMesh#computeBoundingBox}.\n\t\t *\n\t\t * @type {?Box3}\n\t\t * @default null\n\t\t */\n\t\tthis.boundingBox = null;\n\n\t\t/**\n\t\t * The bounding sphere of the batched mesh. Can be computed via {@link BatchedMesh#computeBoundingSphere}.\n\t\t *\n\t\t * @type {?Sphere}\n\t\t * @default null\n\t\t */\n\t\tthis.boundingSphere = null;\n\n\t\t/**\n\t\t * Takes a sort a function that is run before render. The function takes a list of instances to\n\t\t * sort and a camera. The objects in the list include a \"z\" field to perform a depth-ordered\n\t\t * sort with.\n\t\t *\n\t\t * @type {?Function}\n\t\t * @default null\n\t\t */\n\t\tthis.customSort = null;\n\n\t\t// stores visible, active, and geometry id per instance and reserved buffer ranges for geometries\n\t\tthis._instanceInfo = [];\n\t\tthis._geometryInfo = [];\n\n\t\t// instance, geometry ids that have been set as inactive, and are available to be overwritten\n\t\tthis._availableInstanceIds = [];\n\t\tthis._availableGeometryIds = [];\n\n\t\t// used to track where the next point is that geometry should be inserted\n\t\tthis._nextIndexStart = 0;\n\t\tthis._nextVertexStart = 0;\n\t\tthis._geometryCount = 0;\n\n\t\t// flags\n\t\tthis._visibilityChanged = true;\n\t\tthis._geometryInitialized = false;\n\n\t\t// cached user options\n\t\tthis._maxInstanceCount = maxInstanceCount;\n\t\tthis._maxVertexCount = maxVertexCount;\n\t\tthis._maxIndexCount = maxIndexCount;\n\n\t\t// buffers for multi draw\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\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/**\n\t * The maximum number of individual instances that can be stored in the batch.\n\t *\n\t * @type {number}\n\t * @readonly\n\t */\n\tget maxInstanceCount() {\n\n\t\treturn this._maxInstanceCount;\n\n\t}\n\n\t/**\n\t * The instance count.\n\t *\n\t * @type {number}\n\t * @readonly\n\t */\n\tget instanceCount() {\n\n\t\treturn this._instanceInfo.length - this._availableInstanceIds.length;\n\n\t}\n\n\t/**\n\t * The number of unused vertices.\n\t *\n\t * @type {number}\n\t * @readonly\n\t */\n\tget unusedVertexCount() {\n\n\t\treturn this._maxVertexCount - this._nextVertexStart;\n\n\t}\n\n\t/**\n\t * The number of unused indices.\n\t *\n\t * @type {number}\n\t * @readonly\n\t */\n\tget unusedIndexCount() {\n\n\t\treturn this._maxIndexCount - this._nextIndexStart;\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._maxInstanceCount );\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( 'THREE.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( `THREE.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( 'THREE.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\t/**\n\t * Validates the instance defined by the given ID.\n\t *\n\t * @param {number} instanceId - The instance to validate.\n\t */\n\tvalidateInstanceId( instanceId ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tif ( instanceId < 0 || instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\tthrow new Error( `THREE.BatchedMesh: Invalid instanceId ${instanceId}. Instance is either out of range or has been deleted.` );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Validates the geometry defined by the given ID.\n\t *\n\t * @param {number} geometryId - The geometry to validate.\n\t */\n\tvalidateGeometryId( geometryId ) {\n\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tif ( geometryId < 0 || geometryId >= geometryInfoList.length || geometryInfoList[ geometryId ].active === false ) {\n\n\t\t\tthrow new Error( `THREE.BatchedMesh: Invalid geometryId ${geometryId}. Geometry is either out of range or has been deleted.` );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Takes a sort a function that is run before render. The function takes a list of instances to\n\t * sort and a camera. The objects in the list include a \"z\" field to perform a depth-ordered sort with.\n\t *\n\t * @param {Function} func - The custom sort function.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\tsetCustomSort( func ) {\n\n\t\tthis.customSort = func;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Computes the bounding box, updating {@link BatchedMesh#boundingBox}.\n\t * Bounding boxes aren't computed by default. They need to be explicitly computed,\n\t * otherwise they are `null`.\n\t */\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 boundingBox = this.boundingBox;\n\t\tconst instanceInfo = this._instanceInfo;\n\n\t\tboundingBox.makeEmpty();\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( instanceInfo[ i ].active === false ) continue;\n\n\t\t\tconst geometryId = instanceInfo[ 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\t/**\n\t * Computes the bounding sphere, updating {@link BatchedMesh#boundingSphere}.\n\t * Bounding spheres aren't computed by default. They need to be explicitly computed,\n\t * otherwise they are `null`.\n\t */\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 instanceInfo = this._instanceInfo;\n\n\t\tboundingSphere.makeEmpty();\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( instanceInfo[ i ].active === false ) continue;\n\n\t\t\tconst geometryId = instanceInfo[ 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\t/**\n\t * Adds a new instance to the batch using the geometry of the given ID and returns\n\t * a new id referring to the new instance to be used by other functions.\n\t *\n\t * @param {number} geometryId - The ID of a previously added geometry via {@link BatchedMesh#addGeometry}.\n\t * @return {number} The instance ID.\n\t */\n\taddInstance( geometryId ) {\n\n\t\tconst atCapacity = this._instanceInfo.length >= this.maxInstanceCount;\n\n\t\t// ensure we're not over geometry\n\t\tif ( atCapacity && this._availableInstanceIds.length === 0 ) {\n\n\t\t\tthrow new Error( 'THREE.BatchedMesh: Maximum item count reached.' );\n\n\t\t}\n\n\t\tconst instanceInfo = {\n\t\t\tvisible: true,\n\t\t\tactive: true,\n\t\t\tgeometryIndex: geometryId,\n\t\t};\n\n\t\tlet drawId = null;\n\n\t\t// Prioritize using previously freed instance ids\n\t\tif ( this._availableInstanceIds.length > 0 ) {\n\n\t\t\tthis._availableInstanceIds.sort( ascIdSort );\n\n\t\t\tdrawId = this._availableInstanceIds.shift();\n\t\t\tthis._instanceInfo[ drawId ] = instanceInfo;\n\n\t\t} else {\n\n\t\t\tdrawId = this._instanceInfo.length;\n\t\t\tthis._instanceInfo.push( instanceInfo );\n\n\t\t}\n\n\t\tconst matricesTexture = this._matricesTexture;\n\t\t_matrix$1.identity().toArray( matricesTexture.image.data, 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\tthis._visibilityChanged = true;\n\t\treturn drawId;\n\n\t}\n\n\t/**\n\t * Adds the given geometry to the batch and returns the associated\n\t * geometry id referring to it to be used in other functions.\n\t *\n\t * @param {BufferGeometry} geometry - The geometry to add.\n\t * @param {number} [reservedVertexCount=-1] - Optional parameter specifying the amount of\n\t * vertex buffer space to reserve for the added geometry. This is necessary if it is planned\n\t * to set a new geometry at this index at a later time that is larger than the original geometry.\n\t * Defaults to the length of the given geometry vertex buffer.\n\t * @param {number} [reservedIndexCount=-1] - Optional parameter specifying the amount of index\n\t * buffer space to reserve for the added geometry. This is necessary if it is planned to set a\n\t * new geometry at this index at a later time that is larger than the original geometry. Defaults to\n\t * the length of the given geometry index buffer.\n\t * @return {number} The geometry ID.\n\t */\n\taddGeometry( geometry, reservedVertexCount = -1, reservedIndexCount = -1 ) {\n\n\t\tthis._initializeGeometry( geometry );\n\n\t\tthis._validateGeometry( geometry );\n\n\t\tconst geometryInfo = {\n\t\t\t// geometry information\n\t\t\tvertexStart: -1,\n\t\t\tvertexCount: -1,\n\t\t\treservedVertexCount: -1,\n\n\t\t\tindexStart: -1,\n\t\t\tindexCount: -1,\n\t\t\treservedIndexCount: -1,\n\n\t\t\t// draw range information\n\t\t\tstart: -1,\n\t\t\tcount: -1,\n\n\t\t\t// state\n\t\t\tboundingBox: null,\n\t\t\tboundingSphere: null,\n\t\t\tactive: true,\n\t\t};\n\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tgeometryInfo.vertexStart = this._nextVertexStart;\n\t\tgeometryInfo.reservedVertexCount = reservedVertexCount === -1 ? geometry.getAttribute( 'position' ).count : reservedVertexCount;\n\n\t\tconst index = geometry.getIndex();\n\t\tconst hasIndex = index !== null;\n\t\tif ( hasIndex ) {\n\n\t\t\tgeometryInfo.indexStart = this._nextIndexStart;\n\t\t\tgeometryInfo.reservedIndexCount = reservedIndexCount === -1 ? index.count : reservedIndexCount;\n\n\t\t}\n\n\t\tif (\n\t\t\tgeometryInfo.indexStart !== -1 &&\n\t\t\tgeometryInfo.indexStart + geometryInfo.reservedIndexCount > this._maxIndexCount ||\n\t\t\tgeometryInfo.vertexStart + geometryInfo.reservedVertexCount > this._maxVertexCount\n\t\t) {\n\n\t\t\tthrow new Error( 'THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.' );\n\n\t\t}\n\n\t\t// update id\n\t\tlet geometryId;\n\t\tif ( this._availableGeometryIds.length > 0 ) {\n\n\t\t\tthis._availableGeometryIds.sort( ascIdSort );\n\n\t\t\tgeometryId = this._availableGeometryIds.shift();\n\t\t\tgeometryInfoList[ geometryId ] = geometryInfo;\n\n\n\t\t} else {\n\n\t\t\tgeometryId = this._geometryCount;\n\t\t\tthis._geometryCount ++;\n\t\t\tgeometryInfoList.push( geometryInfo );\n\n\t\t}\n\n\t\t// update the geometry\n\t\tthis.setGeometryAt( geometryId, geometry );\n\n\t\t// increment the next geometry position\n\t\tthis._nextIndexStart = geometryInfo.indexStart + geometryInfo.reservedIndexCount;\n\t\tthis._nextVertexStart = geometryInfo.vertexStart + geometryInfo.reservedVertexCount;\n\n\t\treturn geometryId;\n\n\t}\n\n\t/**\n\t * Replaces the geometry at the given ID with the provided geometry. Throws an error if there\n\t * is not enough space reserved for geometry. Calling this will change all instances that are\n\t * rendering that geometry.\n\t *\n\t * @param {number} geometryId - The ID of the geometry that should be replaced with the given geometry.\n\t * @param {BufferGeometry} geometry - The new geometry.\n\t * @return {number} The geometry ID.\n\t */\n\tsetGeometryAt( geometryId, geometry ) {\n\n\t\tif ( geometryId >= this._geometryCount ) {\n\n\t\t\tthrow new Error( 'THREE.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 geometryInfo = this._geometryInfo[ geometryId ];\n\t\tif (\n\t\t\thasIndex &&\n\t\t\tsrcIndex.count > geometryInfo.reservedIndexCount ||\n\t\t\tgeometry.attributes.position.count > geometryInfo.reservedVertexCount\n\t\t) {\n\n\t\t\tthrow new Error( 'THREE.BatchedMesh: Reserved space not large enough for provided geometry.' );\n\n\t\t}\n\n\t\t// copy geometry buffer data over\n\t\tconst vertexStart = geometryInfo.vertexStart;\n\t\tconst reservedVertexCount = geometryInfo.reservedVertexCount;\n\t\tgeometryInfo.vertexCount = geometry.getAttribute( 'position' ).count;\n\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 = reservedVertexCount; 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, reservedVertexCount * itemSize );\n\n\t\t}\n\n\t\t// copy index\n\t\tif ( hasIndex ) {\n\n\t\t\tconst indexStart = geometryInfo.indexStart;\n\t\t\tconst reservedIndexCount = geometryInfo.reservedIndexCount;\n\t\t\tgeometryInfo.indexCount = geometry.getIndex().count;\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 = reservedIndexCount; 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, geometryInfo.reservedIndexCount );\n\n\t\t}\n\n\t\t// update the draw range\n\t\tgeometryInfo.start = hasIndex ? geometryInfo.indexStart : geometryInfo.vertexStart;\n\t\tgeometryInfo.count = hasIndex ? geometryInfo.indexCount : geometryInfo.vertexCount;\n\n\t\t// store the bounding boxes\n\t\tgeometryInfo.boundingBox = null;\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tgeometryInfo.boundingBox = geometry.boundingBox.clone();\n\n\t\t}\n\n\t\tgeometryInfo.boundingSphere = null;\n\t\tif ( geometry.boundingSphere !== null ) {\n\n\t\t\tgeometryInfo.boundingSphere = geometry.boundingSphere.clone();\n\n\t\t}\n\n\t\tthis._visibilityChanged = true;\n\t\treturn geometryId;\n\n\t}\n\n\t/**\n\t * Deletes the geometry defined by the given ID from this batch. Any instances referencing\n\t * this geometry will also be removed as a side effect.\n\t *\n\t * @param {number} geometryId - The ID of the geometry to remove from the batch.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\tdeleteGeometry( geometryId ) {\n\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tif ( geometryId >= geometryInfoList.length || geometryInfoList[ geometryId ].active === false ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\t// delete any instances associated with this geometry\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( instanceInfo[ i ].active && instanceInfo[ i ].geometryIndex === geometryId ) {\n\n\t\t\t\tthis.deleteInstance( i );\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometryInfoList[ geometryId ].active = false;\n\t\tthis._availableGeometryIds.push( geometryId );\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Deletes an existing instance from the batch using the given ID.\n\t *\n\t * @param {number} instanceId - The ID of the instance to remove from the batch.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\tdeleteInstance( instanceId ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\tthis._instanceInfo[ instanceId ].active = false;\n\t\tthis._availableInstanceIds.push( instanceId );\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Repacks the sub geometries in [name] to remove any unused space remaining from\n\t * previously deleted geometry, freeing up space to add new geometry.\n\t *\n\t * @param {number} instanceId - The ID of the instance to remove from the batch.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\toptimize() {\n\n\t\t// track the next indices to copy data to\n\t\tlet nextVertexStart = 0;\n\t\tlet nextIndexStart = 0;\n\n\t\t// Iterate over all geometry ranges in order sorted from earliest in the geometry buffer to latest\n\t\t// in the geometry buffer. Because draw range objects can be reused there is no guarantee of their order.\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tconst indices = geometryInfoList\n\t\t\t.map( ( e, i ) => i )\n\t\t\t.sort( ( a, b ) => {\n\n\t\t\t\treturn geometryInfoList[ a ].vertexStart - geometryInfoList[ b ].vertexStart;\n\n\t\t\t} );\n\n\t\tconst geometry = this.geometry;\n\t\tfor ( let i = 0, l = geometryInfoList.length; i < l; i ++ ) {\n\n\t\t\t// if a geometry range is inactive then don't copy anything\n\t\t\tconst index = indices[ i ];\n\t\t\tconst geometryInfo = geometryInfoList[ index ];\n\t\t\tif ( geometryInfo.active === false ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\t// if a geometry contains an index buffer then shift it, as well\n\t\t\tif ( geometry.index !== null ) {\n\n\t\t\t\tif ( geometryInfo.indexStart !== nextIndexStart ) {\n\n\t\t\t\t\tconst { indexStart, vertexStart, reservedIndexCount } = geometryInfo;\n\t\t\t\t\tconst index = geometry.index;\n\t\t\t\t\tconst array = index.array;\n\n\t\t\t\t\t// shift the index pointers based on how the vertex data will shift\n\t\t\t\t\t// adjusting the index must happen first so the original vertex start value is available\n\t\t\t\t\tconst elementDelta = nextVertexStart - vertexStart;\n\t\t\t\t\tfor ( let j = indexStart; j < indexStart + reservedIndexCount; j ++ ) {\n\n\t\t\t\t\t\tarray[ j ] = array[ j ] + elementDelta;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tindex.array.copyWithin( nextIndexStart, indexStart, indexStart + reservedIndexCount );\n\t\t\t\t\tindex.addUpdateRange( nextIndexStart, reservedIndexCount );\n\n\t\t\t\t\tgeometryInfo.indexStart = nextIndexStart;\n\n\t\t\t\t}\n\n\t\t\t\tnextIndexStart += geometryInfo.reservedIndexCount;\n\n\t\t\t}\n\n\t\t\t// if a geometry needs to be moved then copy attribute data to overwrite unused space\n\t\t\tif ( geometryInfo.vertexStart !== nextVertexStart ) {\n\n\t\t\t\tconst { vertexStart, reservedVertexCount } = geometryInfo;\n\t\t\t\tconst attributes = geometry.attributes;\n\t\t\t\tfor ( const key in attributes ) {\n\n\t\t\t\t\tconst attribute = attributes[ key ];\n\t\t\t\t\tconst { array, itemSize } = attribute;\n\t\t\t\t\tarray.copyWithin( nextVertexStart * itemSize, vertexStart * itemSize, ( vertexStart + reservedVertexCount ) * itemSize );\n\t\t\t\t\tattribute.addUpdateRange( nextVertexStart * itemSize, reservedVertexCount * itemSize );\n\n\t\t\t\t}\n\n\t\t\t\tgeometryInfo.vertexStart = nextVertexStart;\n\n\t\t\t}\n\n\t\t\tnextVertexStart += geometryInfo.reservedVertexCount;\n\t\t\tgeometryInfo.start = geometry.index ? geometryInfo.indexStart : geometryInfo.vertexStart;\n\n\t\t\t// step the next geometry points to the shifted position\n\t\t\tthis._nextIndexStart = geometry.index ? geometryInfo.indexStart + geometryInfo.reservedIndexCount : 0;\n\t\t\tthis._nextVertexStart = geometryInfo.vertexStart + geometryInfo.reservedVertexCount;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the bounding box for the given geometry.\n\t *\n\t * @param {number} geometryId - The ID of the geometry to return the bounding box for.\n\t * @param {Box3} target - The target object that is used to store the method's result.\n\t * @return {?Box3} The geometry's bounding box. Returns `null` if no geometry has been found for the given ID.\n\t */\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 geometry = this.geometry;\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\tif ( geometryInfo.boundingBox === null ) {\n\n\t\t\tconst box = new Box3();\n\t\t\tconst index = geometry.index;\n\t\t\tconst position = geometry.attributes.position;\n\t\t\tfor ( let i = geometryInfo.start, l = geometryInfo.start + geometryInfo.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\tgeometryInfo.boundingBox = box;\n\n\t\t}\n\n\t\ttarget.copy( geometryInfo.boundingBox );\n\t\treturn target;\n\n\t}\n\n\t/**\n\t * Returns the bounding sphere for the given geometry.\n\t *\n\t * @param {number} geometryId - The ID of the geometry to return the bounding sphere for.\n\t * @param {Sphere} target - The target object that is used to store the method's result.\n\t * @return {?Sphere} The geometry's bounding sphere. Returns `null` if no geometry has been found for the given ID.\n\t */\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 geometry = this.geometry;\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\tif ( geometryInfo.boundingSphere === null ) {\n\n\t\t\tconst sphere = new Sphere();\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\n\t\t\tlet maxRadiusSq = 0;\n\t\t\tfor ( let i = geometryInfo.start, l = geometryInfo.start + geometryInfo.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\tgeometryInfo.boundingSphere = sphere;\n\n\t\t}\n\n\t\ttarget.copy( geometryInfo.boundingSphere );\n\t\treturn target;\n\n\t}\n\n\t/**\n\t * Sets the given local transformation matrix to the defined instance.\n\t * Negatively scaled matrices are not supported.\n\t *\n\t * @param {number} instanceId - The ID of an instance to set the matrix of.\n\t * @param {Matrix4} matrix - A 4x4 matrix representing the local transformation of a single instance.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\tsetMatrixAt( instanceId, matrix ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\tconst matricesTexture = this._matricesTexture;\n\t\tconst matricesArray = this._matricesTexture.image.data;\n\t\tmatrix.toArray( matricesArray, instanceId * 16 );\n\t\tmatricesTexture.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the local transformation matrix of the defined instance.\n\t *\n\t * @param {number} instanceId - The ID of an instance to get the matrix of.\n\t * @param {Matrix4} matrix - The target object that is used to store the method's result.\n\t * @return {Matrix4} The instance's local transformation matrix.\n\t */\n\tgetMatrixAt( instanceId, matrix ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\t\treturn matrix.fromArray( this._matricesTexture.image.data, instanceId * 16 );\n\n\t}\n\n\t/**\n\t * Sets the given color to the defined instance.\n\t *\n\t * @param {number} instanceId - The ID of an instance to set the color of.\n\t * @param {Color} color - The color to set the instance to.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\tsetColorAt( instanceId, color ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\tif ( this._colorsTexture === null ) {\n\n\t\t\tthis._initColorsTexture();\n\n\t\t}\n\n\t\tcolor.toArray( this._colorsTexture.image.data, instanceId * 4 );\n\t\tthis._colorsTexture.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the color of the defined instance.\n\t *\n\t * @param {number} instanceId - The ID of an instance to get the color of.\n\t * @param {Color} color - The target object that is used to store the method's result.\n\t * @return {Color} The instance's color.\n\t */\n\tgetColorAt( instanceId, color ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\t\treturn color.fromArray( this._colorsTexture.image.data, instanceId * 4 );\n\n\t}\n\n\t/**\n\t * Sets the visibility of the instance.\n\t *\n\t * @param {number} instanceId - The id of the instance to set the visibility of.\n\t * @param {boolean} visible - Whether the instance is visible or not.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\tsetVisibleAt( instanceId, visible ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\tif ( this._instanceInfo[ instanceId ].visible === visible ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tthis._instanceInfo[ instanceId ].visible = visible;\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the visibility state of the defined instance.\n\t *\n\t * @param {number} instanceId - The ID of an instance to get the visibility state of.\n\t * @return {boolean} Whether the instance is visible or not.\n\t */\n\tgetVisibleAt( instanceId ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\treturn this._instanceInfo[ instanceId ].visible;\n\n\t}\n\n\t/**\n\t * Sets the geometry ID of the instance at the given index.\n\t *\n\t * @param {number} instanceId - The ID of the instance to set the geometry ID of.\n\t * @param {number} geometryId - The geometry ID to be use by the instance.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\tsetGeometryIdAt( instanceId, geometryId ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\t\tthis.validateGeometryId( geometryId );\n\n\t\tthis._instanceInfo[ instanceId ].geometryIndex = geometryId;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the geometry ID of the defined instance.\n\t *\n\t * @param {number} instanceId - The ID of an instance to get the geometry ID of.\n\t * @return {number} The instance's geometry ID.\n\t */\n\tgetGeometryIdAt( instanceId ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\treturn this._instanceInfo[ instanceId ].geometryIndex;\n\n\t}\n\n\t/**\n\t * Get the range representing the subset of triangles related to the attached geometry,\n\t * indicating the starting offset and count, or `null` if invalid.\n\t *\n\t * @param {number} geometryId - The id of the geometry to get the range of.\n\t * @param {Object} [target] - The target object that is used to store the method's result.\n\t * @return {{\n\t * \tvertexStart:number,vertexCount:number,reservedVertexCount:number,\n\t * \tindexStart:number,indexCount:number,reservedIndexCount:number,\n\t * \tstart:number,count:number\n\t * }} The result object with range data.\n\t */\n\tgetGeometryRangeAt( geometryId, target = {} ) {\n\n\t\tthis.validateGeometryId( geometryId );\n\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\ttarget.vertexStart = geometryInfo.vertexStart;\n\t\ttarget.vertexCount = geometryInfo.vertexCount;\n\t\ttarget.reservedVertexCount = geometryInfo.reservedVertexCount;\n\n\t\ttarget.indexStart = geometryInfo.indexStart;\n\t\ttarget.indexCount = geometryInfo.indexCount;\n\t\ttarget.reservedIndexCount = geometryInfo.reservedIndexCount;\n\n\t\ttarget.start = geometryInfo.start;\n\t\ttarget.count = geometryInfo.count;\n\n\t\treturn target;\n\n\t}\n\n\t/**\n\t * Resizes the necessary buffers to support the provided number of instances.\n\t * If the provided arguments shrink the number of instances but there are not enough\n\t * unused Ids at the end of the list then an error is thrown.\n\t *\n\t * @param {number} maxInstanceCount - The max number of individual instances that can be added and rendered by the batch.\n\t*/\n\tsetInstanceCount( maxInstanceCount ) {\n\n\t\t// shrink the available instances as much as possible\n\t\tconst availableInstanceIds = this._availableInstanceIds;\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tavailableInstanceIds.sort( ascIdSort );\n\t\twhile ( availableInstanceIds[ availableInstanceIds.length - 1 ] === instanceInfo.length - 1 ) {\n\n\t\t\tinstanceInfo.pop();\n\t\t\tavailableInstanceIds.pop();\n\n\t\t}\n\n\t\t// throw an error if it can't be shrunk to the desired size\n\t\tif ( maxInstanceCount < instanceInfo.length ) {\n\n\t\t\tthrow new Error( `BatchedMesh: Instance ids outside the range ${ maxInstanceCount } are being used. Cannot shrink instance count.` );\n\n\t\t}\n\n\t\t// copy the multi draw counts\n\t\tconst multiDrawCounts = new Int32Array( maxInstanceCount );\n\t\tconst multiDrawStarts = new Int32Array( maxInstanceCount );\n\t\tcopyArrayContents( this._multiDrawCounts, multiDrawCounts );\n\t\tcopyArrayContents( this._multiDrawStarts, multiDrawStarts );\n\n\t\tthis._multiDrawCounts = multiDrawCounts;\n\t\tthis._multiDrawStarts = multiDrawStarts;\n\t\tthis._maxInstanceCount = maxInstanceCount;\n\n\t\t// update texture data for instance sampling\n\t\tconst indirectTexture = this._indirectTexture;\n\t\tconst matricesTexture = this._matricesTexture;\n\t\tconst colorsTexture = this._colorsTexture;\n\n\t\tindirectTexture.dispose();\n\t\tthis._initIndirectTexture();\n\t\tcopyArrayContents( indirectTexture.image.data, this._indirectTexture.image.data );\n\n\t\tmatricesTexture.dispose();\n\t\tthis._initMatricesTexture();\n\t\tcopyArrayContents( matricesTexture.image.data, this._matricesTexture.image.data );\n\n\t\tif ( colorsTexture ) {\n\n\t\t\tcolorsTexture.dispose();\n\t\t\tthis._initColorsTexture();\n\t\t\tcopyArrayContents( colorsTexture.image.data, this._colorsTexture.image.data );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Resizes the available space in the batch's vertex and index buffer attributes to the provided sizes.\n\t * If the provided arguments shrink the geometry buffers but there is not enough unused space at the\n\t * end of the geometry attributes then an error is thrown.\n\t *\n\t * @param {number} maxVertexCount - The maximum number of vertices to be used by all unique geometries to resize to.\n\t * @param {number} maxIndexCount - The maximum number of indices to be used by all unique geometries to resize to.\n\t*/\n\tsetGeometrySize( maxVertexCount, maxIndexCount ) {\n\n\t\t// Check if we can shrink to the requested vertex attribute size\n\t\tconst validRanges = [ ...this._geometryInfo ].filter( info => info.active );\n\t\tconst requiredVertexLength = Math.max( ...validRanges.map( range => range.vertexStart + range.reservedVertexCount ) );\n\t\tif ( requiredVertexLength > maxVertexCount ) {\n\n\t\t\tthrow new Error( `BatchedMesh: Geometry vertex values are being used outside the range ${ maxIndexCount }. Cannot shrink further.` );\n\n\t\t}\n\n\t\t// Check if we can shrink to the requested index attribute size\n\t\tif ( this.geometry.index ) {\n\n\t\t\tconst requiredIndexLength = Math.max( ...validRanges.map( range => range.indexStart + range.reservedIndexCount ) );\n\t\t\tif ( requiredIndexLength > maxIndexCount ) {\n\n\t\t\t\tthrow new Error( `BatchedMesh: Geometry index values are being used outside the range ${ maxIndexCount }. Cannot shrink further.` );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\t// dispose of the previous geometry\n\t\tconst oldGeometry = this.geometry;\n\t\toldGeometry.dispose();\n\n\t\t// recreate the geometry needed based on the previous variant\n\t\tthis._maxVertexCount = maxVertexCount;\n\t\tthis._maxIndexCount = maxIndexCount;\n\n\t\tif ( this._geometryInitialized ) {\n\n\t\t\tthis._geometryInitialized = false;\n\t\t\tthis.geometry = new BufferGeometry();\n\t\t\tthis._initializeGeometry( oldGeometry );\n\n\t\t}\n\n\t\t// copy data from the previous geometry\n\t\tconst geometry = this.geometry;\n\t\tif ( oldGeometry.index ) {\n\n\t\t\tcopyArrayContents( oldGeometry.index.array, geometry.index.array );\n\n\t\t}\n\n\t\tfor ( const key in oldGeometry.attributes ) {\n\n\t\t\tcopyArrayContents( oldGeometry.attributes[ key ].array, geometry.attributes[ key ].array );\n\n\t\t}\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tconst geometryInfoList = this._geometryInfo;\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 = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( ! instanceInfo[ i ].visible || ! instanceInfo[ i ].active ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\t\t\tconst geometryInfo = geometryInfoList[ geometryId ];\n\t\t\t_mesh.geometry.setDrawRange( geometryInfo.start, geometryInfo.count );\n\n\t\t\t// get 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._geometryInfo = source._geometryInfo.map( info => ( {\n\t\t\t...info,\n\n\t\t\tboundingBox: info.boundingBox !== null ? info.boundingBox.clone() : null,\n\t\t\tboundingSphere: info.boundingSphere !== null ? info.boundingSphere.clone() : null,\n\t\t} ) );\n\t\tthis._instanceInfo = source._instanceInfo.map( info => ( { ...info } ) );\n\n\t\tthis._availableInstanceIds = source._availableInstanceIds.slice();\n\t\tthis._availableGeometryIds = source._availableGeometryIds.slice();\n\n\t\tthis._nextIndexStart = source._nextIndexStart;\n\t\tthis._nextVertexStart = source._nextVertexStart;\n\t\tthis._geometryCount = source._geometryCount;\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._multiDrawCounts = source._multiDrawCounts.slice();\n\t\tthis._multiDrawStarts = source._multiDrawStarts.slice();\n\n\t\tthis._indirectTexture = source._indirectTexture.clone();\n\t\tthis._indirectTexture.image.data = this._indirectTexture.image.data.slice();\n\n\t\tthis._matricesTexture = source._matricesTexture.clone();\n\t\tthis._matricesTexture.image.data = this._matricesTexture.image.data.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.data.slice();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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}\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 instanceInfo = this._instanceInfo;\n\t\tconst multiDrawStarts = this._multiDrawStarts;\n\t\tconst multiDrawCounts = this._multiDrawCounts;\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tconst perObjectFrustumCulled = this.perObjectFrustumCulled;\n\t\tconst indirectTexture = this._indirectTexture;\n\t\tconst indirectArray = indirectTexture.image.data;\n\n\t\tconst frustum = camera.isArrayCamera ? _frustumArray : _frustum;\n\t\t// prepare the frustum in the local frame\n\t\tif ( perObjectFrustumCulled && ! camera.isArrayCamera ) {\n\n\t\t\t_matrix$1\n\t\t\t\t.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse )\n\t\t\t\t.multiply( this.matrixWorld );\n\n\t\t\t_frustum.setFromProjectionMatrix(\n\t\t\t\t_matrix$1,\n\t\t\t\tcamera.coordinateSystem,\n\t\t\t\tcamera.reversedDepth\n\t\t\t);\n\n\t\t}\n\n\t\tlet multiDrawCount = 0;\n\t\tif ( this.sortObjects ) {\n\n\t\t\t// get the camera position in the local frame\n\t\t\t_matrix$1.copy( this.matrixWorld ).invert();\n\t\t\t_vector$5.setFromMatrixPosition( camera.matrixWorld ).applyMatrix4( _matrix$1 );\n\t\t\t_forward$1.set( 0, 0, -1 ).transformDirection( camera.matrixWorld ).transformDirection( _matrix$1 );\n\n\t\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\t\tif ( instanceInfo[ i ].visible && instanceInfo[ i ].active ) {\n\n\t\t\t\t\tconst geometryId = instanceInfo[ 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, camera );\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 geometryInfo = geometryInfoList[ geometryId ];\n\t\t\t\t\t\tconst z = _temp.subVectors( _sphere$2.center, _vector$5 ).dot( _forward$1 );\n\t\t\t\t\t\t_renderList.push( geometryInfo.start, geometryInfo.count, 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[ multiDrawCount ] = item.start * bytesPerElement;\n\t\t\t\tmultiDrawCounts[ multiDrawCount ] = item.count;\n\t\t\t\tindirectArray[ multiDrawCount ] = item.index;\n\t\t\t\tmultiDrawCount ++;\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 = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\t\tif ( instanceInfo[ i ].visible && instanceInfo[ i ].active ) {\n\n\t\t\t\t\tconst geometryId = instanceInfo[ 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, camera );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! culled ) {\n\n\t\t\t\t\t\tconst geometryInfo = geometryInfoList[ geometryId ];\n\t\t\t\t\t\tmultiDrawStarts[ multiDrawCount ] = geometryInfo.start * bytesPerElement;\n\t\t\t\t\t\tmultiDrawCounts[ multiDrawCount ] = geometryInfo.count;\n\t\t\t\t\t\tindirectArray[ multiDrawCount ] = i;\n\t\t\t\t\t\tmultiDrawCount ++;\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 = multiDrawCount;\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\n/**\n * A material for rendering line primitives.\n *\n * Materials define the appearance of renderable 3D objects.\n *\n * ```js\n * const material = new THREE.LineBasicMaterial( { color: 0xffffff } );\n * ```\n *\n * @augments Material\n */\nclass LineBasicMaterial extends Material {\n\n\t/**\n\t * Constructs a new line basic material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLineBasicMaterial = true;\n\n\t\tthis.type = 'LineBasicMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff );\n\n\t\t/**\n\t\t * Sets the color of the lines using data from a texture. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * Controls line thickness or lines.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}. WebGL and WebGPU\n\t\t * ignore this setting and always render line primitives with a\n\t\t * width of one pixel.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.linewidth = 1;\n\n\t\t/**\n\t\t * Defines appearance of line ends.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('butt'|'round'|'square')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.linecap = 'round';\n\n\t\t/**\n\t\t * Defines appearance of line joints.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.linejoin = 'round';\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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.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\n/**\n * A continuous line. The line are rendered by connecting consecutive\n * vertices with straight lines.\n *\n * ```js\n * const material = new THREE.LineBasicMaterial( { color: 0x0000ff } );\n *\n * const points = [];\n * points.push( new THREE.Vector3( - 10, 0, 0 ) );\n * points.push( new THREE.Vector3( 0, 10, 0 ) );\n * points.push( new THREE.Vector3( 10, 0, 0 ) );\n *\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n *\n * const line = new THREE.Line( geometry, material );\n * scene.add( line );\n * ```\n *\n * @augments Object3D\n */\nclass Line extends Object3D {\n\n\t/**\n\t * Constructs a new line.\n\t *\n\t * @param {BufferGeometry} [geometry] - The line geometry.\n\t * @param {Material|Array} [material] - The line material.\n\t */\n\tconstructor( geometry = new BufferGeometry(), material = new LineBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLine = true;\n\n\t\tthis.type = 'Line';\n\n\t\t/**\n\t\t * The line geometry.\n\t\t *\n\t\t * @type {BufferGeometry}\n\t\t */\n\t\tthis.geometry = geometry;\n\n\t\t/**\n\t\t * The line material.\n\t\t *\n\t\t * @type {Material|Array}\n\t\t * @default LineBasicMaterial\n\t\t */\n\t\tthis.material = material;\n\n\t\t/**\n\t\t * A dictionary representing the morph targets in the geometry. The key is the\n\t\t * morph targets name, the value its attribute index. This member is `undefined`\n\t\t * by default and only set when morph targets are detected in the geometry.\n\t\t *\n\t\t * @type {Object|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetDictionary = undefined;\n\n\t\t/**\n\t\t * An array of weights typically in the range `[0,1]` that specify how much of the morph\n\t\t * is applied. This member is `undefined` by default and only set when morph targets are\n\t\t * detected in the geometry.\n\t\t *\n\t\t * @type {Array|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetInfluences = undefined;\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\t/**\n\t * Computes an array of distance values which are necessary for rendering dashed lines.\n\t * For each vertex in the geometry, the method calculates the cumulative length from the\n\t * current point to the very beginning of the line.\n\t *\n\t * @return {Line} A reference to this line.\n\t */\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\t/**\n\t * Computes intersection points between a casted ray and this line.\n\t *\n\t * @param {Raycaster} raycaster - The raycaster.\n\t * @param {Array} intersects - The target array that holds the intersection points.\n\t */\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, i );\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, end - 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} 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, i );\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, end - 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}\n\n\t}\n\n\t/**\n\t * Sets the values of {@link Line#morphTargetDictionary} and {@link Line#morphTargetInfluences}\n\t * to make sure existing morph targets can influence this 3D object.\n\t */\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, i ) {\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: i,\n\t\tface: null,\n\t\tfaceIndex: null,\n\t\tbarycoord: null,\n\t\tobject: object\n\n\t};\n\n}\n\nconst _start = /*@__PURE__*/ new Vector3();\nconst _end = /*@__PURE__*/ new Vector3();\n\n/**\n * A series of lines drawn between pairs of vertices.\n *\n * @augments Line\n */\nclass LineSegments extends Line {\n\n\t/**\n\t * Constructs a new line segments.\n\t *\n\t * @param {BufferGeometry} [geometry] - The line geometry.\n\t * @param {Material|Array} [material] - The line material.\n\t */\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\n/**\n * A continuous line. This is nearly the same as {@link Line} the only difference\n * is that the last vertex is connected with the first vertex in order to close\n * the line to form a loop.\n *\n * @augments Line\n */\nclass LineLoop extends Line {\n\n\t/**\n\t * Constructs a new line loop.\n\t *\n\t * @param {BufferGeometry} [geometry] - The line geometry.\n\t * @param {Material|Array} [material] - The line material.\n\t */\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLineLoop = true;\n\n\t\tthis.type = 'LineLoop';\n\n\t}\n\n}\n\n/**\n * A material for rendering point primitives.\n *\n * Materials define the appearance of renderable 3D objects.\n *\n * ```js\n * const vertices = [];\n *\n * for ( let i = 0; i < 10000; i ++ ) {\n * \tconst x = THREE.MathUtils.randFloatSpread( 2000 );\n * \tconst y = THREE.MathUtils.randFloatSpread( 2000 );\n * \tconst z = THREE.MathUtils.randFloatSpread( 2000 );\n *\n * \tvertices.push( x, y, z );\n * }\n *\n * const geometry = new THREE.BufferGeometry();\n * geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );\n * const material = new THREE.PointsMaterial( { color: 0x888888 } );\n * const points = new THREE.Points( geometry, material );\n * scene.add( points );\n * ```\n *\n * @augments Material\n */\nclass PointsMaterial extends Material {\n\n\t/**\n\t * Constructs a new points material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isPointsMaterial = true;\n\n\t\tthis.type = 'PointsMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff );\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * Defines the size of the points in pixels.\n\t\t *\n\t\t * Might be capped if the value exceeds hardware dependent parameters like [gl.ALIASED_POINT_SIZE_RANGE]{@link https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/getParamete}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.size = 1;\n\n\t\t/**\n\t\t * Specifies whether size of individual points is attenuated by the camera depth (perspective camera only).\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.sizeAttenuation = true;\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * A class for displaying points or point clouds.\n *\n * @augments Object3D\n */\nclass Points extends Object3D {\n\n\t/**\n\t * Constructs a new point cloud.\n\t *\n\t * @param {BufferGeometry} [geometry] - The points geometry.\n\t * @param {Material|Array} [material] - The points material.\n\t */\n\tconstructor( geometry = new BufferGeometry(), material = new PointsMaterial() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isPoints = true;\n\n\t\tthis.type = 'Points';\n\n\t\t/**\n\t\t * The points geometry.\n\t\t *\n\t\t * @type {BufferGeometry}\n\t\t */\n\t\tthis.geometry = geometry;\n\n\t\t/**\n\t\t * The line material.\n\t\t *\n\t\t * @type {Material|Array}\n\t\t * @default PointsMaterial\n\t\t */\n\t\tthis.material = material;\n\n\t\t/**\n\t\t * A dictionary representing the morph targets in the geometry. The key is the\n\t\t * morph targets name, the value its attribute index. This member is `undefined`\n\t\t * by default and only set when morph targets are detected in the geometry.\n\t\t *\n\t\t * @type {Object|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetDictionary = undefined;\n\n\t\t/**\n\t\t * An array of weights typically in the range `[0,1]` that specify how much of the morph\n\t\t * is applied. This member is `undefined` by default and only set when morph targets are\n\t\t * detected in the geometry.\n\t\t *\n\t\t * @type {Array|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetInfluences = undefined;\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\t/**\n\t * Computes intersection points between a casted ray and this point cloud.\n\t *\n\t * @param {Raycaster} raycaster - The raycaster.\n\t * @param {Array} intersects - The target array that holds the intersection points.\n\t */\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\t/**\n\t * Sets the values of {@link Points#morphTargetDictionary} and {@link Points#morphTargetInfluences}\n\t * to make sure existing morph targets can influence this 3D object.\n\t */\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\tfaceIndex: null,\n\t\t\tbarycoord: null,\n\t\t\tobject: object\n\n\t\t} );\n\n\t}\n\n}\n\n/**\n * A texture for use with a video.\n *\n * ```js\n * // assuming you have created a HTML video element with id=\"video\"\n * const video = document.getElementById( 'video' );\n * const texture = new THREE.VideoTexture( video );\n * ```\n *\n * Note: When using video textures with {@link WebGPURenderer}, {@link Texture#colorSpace} must be\n * set to THREE.SRGBColorSpace.\n *\n * Note: After the initial use of a texture, its dimensions, format, and type\n * cannot be changed. Instead, call {@link Texture#dispose} on the texture and instantiate a new one.\n *\n * @augments Texture\n */\nclass VideoTexture extends Texture {\n\n\t/**\n\t * Constructs a new video texture.\n\t *\n\t * @param {HTMLVideoElement} video - The video element to use as a data source for the texture.\n\t * @param {number} [mapping=Texture.DEFAULT_MAPPING] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=LinearFilter] - The mag filter value.\n\t * @param {number} [minFilter=LinearFilter] - The min filter value.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t */\n\tconstructor( video, mapping, wrapS, wrapT, magFilter = LinearFilter, minFilter = LinearFilter, format, type, anisotropy ) {\n\n\t\tsuper( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isVideoTexture = true;\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.generateMipmaps = false;\n\n\t\t/**\n\t\t * The video frame request callback identifier, which is a positive integer.\n\t\t *\n\t\t * Value of 0 represents no scheduled rVFC.\n\t\t *\n\t\t * @private\n\t\t * @type {number}\n\t\t */\n\t\tthis._requestVideoFrameCallbackId = 0;\n\n\t\tconst scope = this;\n\n\t\tfunction updateVideo() {\n\n\t\t\tscope.needsUpdate = true;\n\t\t\tscope._requestVideoFrameCallbackId = video.requestVideoFrameCallback( updateVideo );\n\n\t\t}\n\n\t\tif ( 'requestVideoFrameCallback' in video ) {\n\n\t\t\tthis._requestVideoFrameCallbackId = video.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\t/**\n\t * This method is called automatically by the renderer and sets {@link Texture#needsUpdate}\n\t * to `true` every time a new frame is available.\n\t *\n\t * Only relevant if `requestVideoFrameCallback` is not supported in the browser.\n\t */\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\tdispose() {\n\n\t\tif ( this._requestVideoFrameCallbackId !== 0 ) {\n\n\t\t\tthis.source.data.cancelVideoFrameCallback( this._requestVideoFrameCallbackId );\n\n\t\t}\n\n\t\tsuper.dispose();\n\n\t}\n\n}\n\n/**\n * This class can be used as an alternative way to define video data. Instead of using\n * an instance of `HTMLVideoElement` like with `VideoTexture`, `VideoFrameTexture` expects each frame is\n * defined manually via {@link VideoFrameTexture#setFrame}. A typical use case for this module is when\n * video frames are decoded with the WebCodecs API.\n *\n * ```js\n * const texture = new THREE.VideoFrameTexture();\n * texture.setFrame( frame );\n * ```\n *\n * @augments VideoTexture\n */\nclass VideoFrameTexture extends VideoTexture {\n\n\t/**\n\t * Constructs a new video frame texture.\n\t *\n\t * @param {number} [mapping=Texture.DEFAULT_MAPPING] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=LinearFilter] - The mag filter value.\n\t * @param {number} [minFilter=LinearFilter] - The min filter value.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t */\n\tconstructor( mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {\n\n\t\tsuper( {}, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isVideoFrameTexture = true;\n\n\t}\n\n\t/**\n\t * This method overwritten with an empty implementation since\n\t * this type of texture is updated via `setFrame()`.\n\t */\n\tupdate() {}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this ); // restoring Texture.clone()\n\n\t}\n\n\t/**\n\t * Sets the current frame of the video. This will automatically update the texture\n\t * so the data can be used for rendering.\n\t *\n\t * @param {VideoFrame} frame - The video frame.\n\t */\n\tsetFrame( frame ) {\n\n\t\tthis.image = frame;\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\n/**\n * This class can only be used in combination with `copyFramebufferToTexture()` methods\n * of renderers. It extracts the contents of the current bound framebuffer and provides it\n * as a texture for further usage.\n *\n * ```js\n * const pixelRatio = window.devicePixelRatio;\n * const textureSize = 128 * pixelRatio;\n *\n * const frameTexture = new FramebufferTexture( textureSize, textureSize );\n *\n * // calculate start position for copying part of the frame data\n * const vector = new Vector2();\n * vector.x = ( window.innerWidth * pixelRatio / 2 ) - ( textureSize / 2 );\n * vector.y = ( window.innerHeight * pixelRatio / 2 ) - ( textureSize / 2 );\n *\n * renderer.render( scene, camera );\n *\n * // copy part of the rendered frame into the framebuffer texture\n * renderer.copyFramebufferToTexture( frameTexture, vector );\n * ```\n *\n * @augments Texture\n */\nclass FramebufferTexture extends Texture {\n\n\t/**\n\t * Constructs a new framebuffer texture.\n\t *\n\t * @param {number} [width] - The width of the texture.\n\t * @param {number} [height] - The height of the texture.\n\t */\n\tconstructor( width, height ) {\n\n\t\tsuper( { width, height } );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isFramebufferTexture = true;\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers more than one pixel.\n\t\t *\n\t\t * Overwritten and set to `NearestFilter` by default to disable filtering.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default NearestFilter\n\t\t */\n\t\tthis.magFilter = NearestFilter;\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers less than one pixel.\n\t\t *\n\t\t * Overwritten and set to `NearestFilter` by default to disable filtering.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default NearestFilter\n\t\t */\n\t\tthis.minFilter = NearestFilter;\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.generateMipmaps = false;\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\n/**\n * Creates a texture based on data in compressed form.\n *\n * These texture are usually loaded with {@link CompressedTextureLoader}.\n *\n * @augments Texture\n */\nclass CompressedTexture extends Texture {\n\n\t/**\n\t * Constructs a new compressed texture.\n\t *\n\t * @param {Array} mipmaps - This array holds for all mipmaps (including the bases mip)\n\t * the data and dimensions.\n\t * @param {number} width - The width of the texture.\n\t * @param {number} height - The height of the texture.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t * @param {number} [mapping=Texture.DEFAULT_MAPPING] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=LinearFilter] - The mag filter value.\n\t * @param {number} [minFilter=LinearMipmapLinearFilter] - The min filter value.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t * @param {string} [colorSpace=NoColorSpace] - The color space.\n\t */\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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCompressedTexture = true;\n\n\t\t/**\n\t\t * The image property of a compressed texture just defines its dimensions.\n\t\t *\n\t\t * @type {{width:number,height:number}}\n\t\t */\n\t\tthis.image = { width: width, height: height };\n\n\t\t/**\n\t\t * This array holds for all mipmaps (including the bases mip) the data and dimensions.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.mipmaps = mipmaps;\n\n\t\t/**\n\t\t * If set to `true`, the texture is flipped along the vertical axis when\n\t\t * uploaded to the GPU.\n\t\t *\n\t\t * Overwritten and set to `false` by default since it is not possible to\n\t\t * flip compressed textures.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t * @readonly\n\t\t */\n\t\tthis.flipY = false;\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Overwritten and set to `false` by default since it is not\n\t\t * possible to generate mipmaps for compressed data. Mipmaps\n\t\t * must be embedded in the compressed texture file.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t * @readonly\n\t\t */\n\t\tthis.generateMipmaps = false;\n\n\t}\n\n}\n\n/**\n * Creates a texture 2D array based on data in compressed form.\n *\n * These texture are usually loaded with {@link CompressedTextureLoader}.\n *\n * @augments CompressedTexture\n */\nclass CompressedArrayTexture extends CompressedTexture {\n\n\t/**\n\t * Constructs a new compressed array texture.\n\t *\n\t * @param {Array} mipmaps - This array holds for all mipmaps (including the bases mip)\n\t * the data and dimensions.\n\t * @param {number} width - The width of the texture.\n\t * @param {number} height - The height of the texture.\n\t * @param {number} depth - The depth of the texture.\n\t * @param {number} [format=RGBAFormat] - The min filter value.\n\t * @param {number} [type=UnsignedByteType] - The min filter value.\n\t */\n\tconstructor( mipmaps, width, height, depth, format, type ) {\n\n\t\tsuper( mipmaps, width, height, format, type );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCompressedArrayTexture = true;\n\n\t\t/**\n\t\t * The image property of a compressed texture just defines its dimensions.\n\t\t *\n\t\t * @name CompressedArrayTexture#image\n\t\t * @type {{width:number,height:number,depth:number}}\n\t\t */\n\t\tthis.image.depth = depth;\n\n\t\t/**\n\t\t * This defines how the texture is wrapped in the depth and corresponds to\n\t\t * *W* in UVW mapping.\n\t\t *\n\t\t * @type {(RepeatWrapping|ClampToEdgeWrapping|MirroredRepeatWrapping)}\n\t\t * @default ClampToEdgeWrapping\n\t\t */\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\t/**\n\t\t * A set of all layers which need to be updated in the texture.\n\t\t *\n\t\t * @type {Set}\n\t\t */\n\t\tthis.layerUpdates = new Set();\n\n\t}\n\n\t/**\n\t * Describes that a specific layer of the texture needs to be updated.\n\t * Normally when {@link Texture#needsUpdate} is set to `true`, the\n\t * entire compressed texture array is sent to the GPU. Marking specific\n\t * layers will only transmit subsets of all mipmaps associated with a\n\t * specific depth in the array which is often much more performant.\n\t *\n\t * @param {number} layerIndex - The layer index that should be updated.\n\t */\n\taddLayerUpdate( layerIndex ) {\n\n\t\tthis.layerUpdates.add( layerIndex );\n\n\t}\n\n\t/**\n\t * Resets the layer updates registry.\n\t */\n\tclearLayerUpdates() {\n\n\t\tthis.layerUpdates.clear();\n\n\t}\n\n}\n\n/**\n * Creates a cube texture based on data in compressed form.\n *\n * These texture are usually loaded with {@link CompressedTextureLoader}.\n *\n * @augments CompressedTexture\n */\nclass CompressedCubeTexture extends CompressedTexture {\n\n\t/**\n\t * Constructs a new compressed texture.\n\t *\n\t * @param {Array} images - An array of compressed textures.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t */\n\tconstructor( images, format, type ) {\n\n\t\tsuper( undefined, images[ 0 ].width, images[ 0 ].height, format, type, CubeReflectionMapping );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCompressedCubeTexture = true;\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCubeTexture = true;\n\n\t\tthis.image = images;\n\n\t}\n\n}\n\n/**\n * Creates a texture from a canvas element.\n *\n * This is almost the same as the base texture class, except that it sets {@link Texture#needsUpdate}\n * to `true` immediately since a canvas can directly be used for rendering.\n *\n * @augments Texture\n */\nclass CanvasTexture extends Texture {\n\n\t/**\n\t * Constructs a new texture.\n\t *\n\t * @param {HTMLCanvasElement} [canvas] - The HTML canvas element.\n\t * @param {number} [mapping=Texture.DEFAULT_MAPPING] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=LinearFilter] - The mag filter value.\n\t * @param {number} [minFilter=LinearMipmapLinearFilter] - The min filter value.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t */\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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCanvasTexture = true;\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\n/**\n * This class can be used to automatically save the depth information of a\n * rendering into a texture.\n *\n * @augments Texture\n */\nclass DepthTexture extends Texture {\n\n\t/**\n\t * Constructs a new depth texture.\n\t *\n\t * @param {number} width - The width of the texture.\n\t * @param {number} height - The height of the texture.\n\t * @param {number} [type=UnsignedIntType] - The texture type.\n\t * @param {number} [mapping=Texture.DEFAULT_MAPPING] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=LinearFilter] - The mag filter value.\n\t * @param {number} [minFilter=LinearFilter] - The min filter value.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t * @param {number} [format=DepthFormat] - The texture format.\n\t * @param {number} [depth=1] - The depth of the texture.\n\t */\n\tconstructor( width, height, type = UnsignedIntType, mapping, wrapS, wrapT, magFilter = NearestFilter, minFilter = NearestFilter, anisotropy, format = DepthFormat, depth = 1 ) {\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\tconst image = { width: width, height: height, depth: depth };\n\n\t\tsuper( image, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isDepthTexture = true;\n\n\t\t/**\n\t\t * If set to `true`, the texture is flipped along the vertical axis when\n\t\t * uploaded to the GPU.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flipY = false;\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.generateMipmaps = false;\n\n\t\t/**\n\t\t * Code corresponding to the depth compare function.\n\t\t *\n\t\t * @type {?(NeverCompare|LessCompare|EqualCompare|LessEqualCompare|GreaterCompare|NotEqualCompare|GreaterEqualCompare|AlwaysCompare)}\n\t\t * @default null\n\t\t */\n\t\tthis.compareFunction = null;\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.source = new Source( Object.assign( {}, source.image ) ); // see #30540\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 * Represents a texture created externally with the same renderer context.\n *\n * This may be a texture from a protected media stream, device camera feed,\n * or other data feeds like a depth sensor.\n *\n * Note that this class is only supported in {@link WebGLRenderer}, and in\n * the {@link WebGPURenderer} WebGPU backend.\n *\n * @augments Texture\n */\nclass ExternalTexture extends Texture {\n\n\t/**\n\t * Creates a new raw texture.\n\t *\n\t * @param {?(WebGLTexture|GPUTexture)} [sourceTexture=null] - The external texture.\n\t */\n\tconstructor( sourceTexture = null ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * The external source texture.\n\t\t *\n\t\t * @type {?(WebGLTexture|GPUTexture)}\n\t\t * @default null\n\t\t */\n\t\tthis.sourceTexture = sourceTexture;\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isExternalTexture = true;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.sourceTexture = source.sourceTexture;\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * A geometry class for representing a capsule.\n *\n * ```js\n * const geometry = new THREE.CapsuleGeometry( 1, 1, 4, 8, 1 );\n * const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );\n * const capsule = new THREE.Mesh( geometry, material );\n * scene.add( capsule );\n * ```\n *\n * @augments BufferGeometry\n */\nclass CapsuleGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new capsule geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the capsule.\n\t * @param {number} [height=1] - Height of the middle section.\n\t * @param {number} [capSegments=4] - Number of curve segments used to build each cap.\n\t * @param {number} [radialSegments=8] - Number of segmented faces around the circumference of the capsule. Must be an integer >= 3.\n\t * @param {number} [heightSegments=1] - Number of rows of faces along the height of the middle section. Must be an integer >= 1.\n\t */\n\tconstructor( radius = 1, height = 1, capSegments = 4, radialSegments = 8, heightSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CapsuleGeometry';\n\n\t\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\theight: height,\n\t\t\tcapSegments: capSegments,\n\t\t\tradialSegments: radialSegments,\n\t\t\theightSegments: heightSegments,\n\t\t};\n\n\t\theight = Math.max( 0, height );\n\t\tcapSegments = Math.max( 1, Math.floor( capSegments ) );\n\t\tradialSegments = Math.max( 3, Math.floor( radialSegments ) );\n\t\theightSegments = Math.max( 1, 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\tconst halfHeight = height / 2;\n\t\tconst capArcLength = ( Math.PI / 2 ) * radius;\n\t\tconst cylinderPartLength = height;\n\t\tconst totalArcLength = 2 * capArcLength + cylinderPartLength;\n\n\t\tconst numVerticalSegments = capSegments * 2 + heightSegments;\n\t\tconst verticesPerRow = radialSegments + 1;\n\n\t\tconst normal = new Vector3();\n\t\tconst vertex = new Vector3();\n\n\t\t// generate vertices, normals, and uvs\n\n\t\tfor ( let iy = 0; iy <= numVerticalSegments; iy ++ ) {\n\n\t\t\tlet currentArcLength = 0;\n\t\t\tlet profileY = 0;\n\t\t\tlet profileRadius = 0;\n\t\t\tlet normalYComponent = 0;\n\n\t\t\tif ( iy <= capSegments ) {\n\n\t\t\t\t// bottom cap\n\t\t\t\tconst segmentProgress = iy / capSegments;\n\t\t\t\tconst angle = ( segmentProgress * Math.PI ) / 2;\n\t\t\t\tprofileY = - halfHeight - radius * Math.cos( angle );\n\t\t\t\tprofileRadius = radius * Math.sin( angle );\n\t\t\t\tnormalYComponent = - radius * Math.cos( angle );\n\t\t\t\tcurrentArcLength = segmentProgress * capArcLength;\n\n\t\t\t} else if ( iy <= capSegments + heightSegments ) {\n\n\t\t\t\t// middle section\n\t\t\t\tconst segmentProgress = ( iy - capSegments ) / heightSegments;\n\t\t\t\tprofileY = - halfHeight + segmentProgress * height;\n\t\t\t\tprofileRadius = radius;\n\t\t\t\tnormalYComponent = 0;\n\t\t\t\tcurrentArcLength = capArcLength + segmentProgress * cylinderPartLength;\n\n\t\t\t} else {\n\n\t\t\t\t// top cap\n\t\t\t\tconst segmentProgress =\n\t\t\t\t\t( iy - capSegments - heightSegments ) / capSegments;\n\t\t\t\tconst angle = ( segmentProgress * Math.PI ) / 2;\n\t\t\t\tprofileY = halfHeight + radius * Math.sin( angle );\n\t\t\t\tprofileRadius = radius * Math.cos( angle );\n\t\t\t\tnormalYComponent = radius * Math.sin( angle );\n\t\t\t\tcurrentArcLength =\n\t\t\t\t\tcapArcLength + cylinderPartLength + segmentProgress * capArcLength;\n\n\t\t\t}\n\n\t\t\tconst v = Math.max( 0, Math.min( 1, currentArcLength / totalArcLength ) );\n\n\n\t\t\t// special case for the poles\n\n\t\t\tlet uOffset = 0;\n\n\t\t\tif ( iy === 0 ) {\n\n\t\t\t\tuOffset = 0.5 / radialSegments;\n\n\t\t\t} else if ( iy === numVerticalSegments ) {\n\n\t\t\t\tuOffset = -0.5 / radialSegments;\n\n\t\t\t}\n\n\t\t\tfor ( let ix = 0; ix <= radialSegments; ix ++ ) {\n\n\t\t\t\tconst u = ix / radialSegments;\n\t\t\t\tconst theta = u * Math.PI * 2;\n\n\t\t\t\tconst sinTheta = Math.sin( theta );\n\t\t\t\tconst cosTheta = Math.cos( theta );\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = - profileRadius * cosTheta;\n\t\t\t\tvertex.y = profileY;\n\t\t\t\tvertex.z = profileRadius * sinTheta;\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.set(\n\t\t\t\t\t- profileRadius * cosTheta,\n\t\t\t\t\tnormalYComponent,\n\t\t\t\t\tprofileRadius * sinTheta\n\t\t\t\t);\n\t\t\t\tnormal.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, v );\n\n\t\t\t}\n\n\t\t\tif ( iy > 0 ) {\n\n\t\t\t\tconst prevIndexRow = ( iy - 1 ) * verticesPerRow;\n\t\t\t\tfor ( let ix = 0; ix < radialSegments; ix ++ ) {\n\n\t\t\t\t\tconst i1 = prevIndexRow + ix;\n\t\t\t\t\tconst i2 = prevIndexRow + ix + 1;\n\t\t\t\t\tconst i3 = iy * verticesPerRow + ix;\n\t\t\t\t\tconst i4 = iy * verticesPerRow + ix + 1;\n\n\t\t\t\t\tindices.push( i1, i2, i3 );\n\t\t\t\t\tindices.push( i2, i4, i3 );\n\n\t\t\t\t}\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {CapsuleGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new CapsuleGeometry( data.radius, data.height, data.capSegments, data.radialSegments, data.heightSegments );\n\n\t}\n\n}\n\n/**\n * A simple shape of Euclidean geometry. It is constructed from a\n * number of triangular segments that are oriented around a central point and\n * extend as far out as a given radius. It is built counter-clockwise from a\n * start angle and a given central angle. It can also be used to create\n * regular polygons, where the number of segments determines the number of\n * sides.\n *\n * ```js\n * const geometry = new THREE.CircleGeometry( 5, 32 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const circle = new THREE.Mesh( geometry, material );\n * scene.add( circle )\n * ```\n *\n * @augments BufferGeometry\n */\nclass CircleGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new circle geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the circle.\n\t * @param {number} [segments=32] - Number of segments (triangles), minimum = `3`.\n\t * @param {number} [thetaStart=0] - Start angle for first segment in radians.\n\t * @param {number} [thetaLength=Math.PI*2] - The central angle, often called theta,\n\t * of the circular sector in radians. The default value results in a complete circle.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {CircleGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new CircleGeometry( data.radius, data.segments, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\n/**\n * A geometry class for representing a cylinder.\n *\n * ```js\n * const geometry = new THREE.CylinderGeometry( 5, 5, 20, 32 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const cylinder = new THREE.Mesh( geometry, material );\n * scene.add( cylinder );\n * ```\n *\n * @augments BufferGeometry\n */\nclass CylinderGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new cylinder geometry.\n\t *\n\t * @param {number} [radiusTop=1] - Radius of the cylinder at the top.\n\t * @param {number} [radiusBottom=1] - Radius of the cylinder at the bottom.\n\t * @param {number} [height=1] - Height of the cylinder.\n\t * @param {number} [radialSegments=32] - Number of segmented faces around the circumference of the cylinder.\n\t * @param {number} [heightSegments=1] - Number of rows of faces along the height of the cylinder.\n\t * @param {boolean} [openEnded=false] - Whether the base of the cylinder is open or capped.\n\t * @param {number} [thetaStart=0] - Start angle for first segment, in radians.\n\t * @param {number} [thetaLength=Math.PI*2] - The central angle, often called theta, of the circular sector, in radians.\n\t * The default value results in a complete cylinder.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\tif ( radiusTop > 0 || y !== 0 ) {\n\n\t\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\t\tgroupCount += 3;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( radiusBottom > 0 || y !== heightSegments - 1 ) {\n\n\t\t\t\t\t\tindices.push( b, c, d );\n\t\t\t\t\t\tgroupCount += 3;\n\n\t\t\t\t\t}\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {CylinderGeometry} A new instance.\n\t */\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\n/**\n * A geometry class for representing a cone.\n *\n * ```js\n * const geometry = new THREE.ConeGeometry( 5, 20, 32 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const cone = new THREE.Mesh(geometry, material );\n * scene.add( cone );\n * ```\n *\n * @augments CylinderGeometry\n */\nclass ConeGeometry extends CylinderGeometry {\n\n\t/**\n\t * Constructs a new cone geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the cone base.\n\t * @param {number} [height=1] - Height of the cone.\n\t * @param {number} [radialSegments=32] - Number of segmented faces around the circumference of the cone.\n\t * @param {number} [heightSegments=1] - Number of rows of faces along the height of the cone.\n\t * @param {boolean} [openEnded=false] - Whether the base of the cone is open or capped.\n\t * @param {number} [thetaStart=0] - Start angle for first segment, in radians.\n\t * @param {number} [thetaLength=Math.PI*2] - The central angle, often called theta, of the circular sector, in radians.\n\t * The default value results in a complete cone.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {ConeGeometry} A new instance.\n\t */\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\n/**\n * A polyhedron is a solid in three dimensions with flat faces. This class\n * will take an array of vertices, project them onto a sphere, and then\n * divide them up to the desired level of detail.\n *\n * @augments BufferGeometry\n */\nclass PolyhedronGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new polyhedron geometry.\n\t *\n\t * @param {Array} [vertices] - A flat array of vertices describing the base shape.\n\t * @param {Array} [indices] - A flat array of indices describing the base shape.\n\t * @param {number} [radius=1] - The radius of the shape.\n\t * @param {number} [detail=0] - How many levels to subdivide the geometry. The more detail, the smoother the shape.\n\t */\n\tconstructor( vertices = [], indices = [], radius = 1, detail = 0 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PolyhedronGeometry';\n\n\t\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {PolyhedronGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new PolyhedronGeometry( data.vertices, data.indices, data.radius, data.details );\n\n\t}\n\n}\n\n/**\n * A geometry class for representing a dodecahedron.\n *\n * ```js\n * const geometry = new THREE.DodecahedronGeometry();\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const dodecahedron = new THREE.Mesh( geometry, material );\n * scene.add( dodecahedron );\n * ```\n *\n * @augments PolyhedronGeometry\n */\nclass DodecahedronGeometry extends PolyhedronGeometry {\n\n\t/**\n\t * Constructs a new dodecahedron geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the dodecahedron.\n\t * @param {number} [detail=0] - Setting this to a value greater than `0` adds vertices making it no longer a dodecahedron.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {DodecahedronGeometry} A new instance.\n\t */\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\n/**\n * Can be used as a helper object to view the edges of a geometry.\n *\n * ```js\n * const geometry = new THREE.BoxGeometry();\n * const edges = new THREE.EdgesGeometry( geometry );\n * const line = new THREE.LineSegments( edges );\n * scene.add( line );\n * ```\n *\n * Note: It is not yet possible to serialize/deserialize instances of this class.\n *\n * @augments BufferGeometry\n */\nclass EdgesGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new edges geometry.\n\t *\n\t * @param {?BufferGeometry} [geometry=null] - The geometry.\n\t * @param {number} [thresholdAngle=1] - An edge is only rendered if the angle (in degrees)\n\t * between the face normals of the adjoining faces exceeds this value.\n\t */\n\tconstructor( geometry = null, thresholdAngle = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'EdgesGeometry';\n\n\t\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\n/**\n * An abstract base class for creating an analytic curve object that contains methods\n * for interpolation.\n *\n * @abstract\n */\nclass Curve {\n\n\t/**\n\t * Constructs a new curve.\n\t */\n\tconstructor() {\n\n\t\t/**\n\t\t * The type property is used for detecting the object type\n\t\t * in context of serialization/deserialization.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.type = 'Curve';\n\n\t\t/**\n\t\t * This value determines the amount of divisions when calculating the\n\t\t * cumulative segment lengths of a curve via {@link Curve#getLengths}. To ensure\n\t\t * precision when using methods like {@link Curve#getSpacedPoints}, it is\n\t\t * recommended to increase the value of this property if the curve is very large.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 200\n\t\t */\n\t\tthis.arcLengthDivisions = 200;\n\n\t\t/**\n\t\t * Must be set to `true` if the curve parameters have changed.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.needsUpdate = false;\n\n\t\t/**\n\t\t * An internal cache that holds precomputed curve length values.\n\t\t *\n\t\t * @private\n\t\t * @type {?Array}\n\t\t * @default null\n\t\t */\n\t\tthis.cacheArcLengths = null;\n\n\t}\n\n\t/**\n\t * This method returns a vector in 2D or 3D space (depending on the curve definition)\n\t * for the given interpolation factor.\n\t *\n\t * @abstract\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {(Vector2|Vector3)} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {(Vector2|Vector3)} The position on the curve. It can be a 2D or 3D vector depending on the curve definition.\n\t */\n\tgetPoint( /* t, optionalTarget */ ) {\n\n\t\tconsole.warn( 'THREE.Curve: .getPoint() not implemented.' );\n\n\t}\n\n\t/**\n\t * This method returns a vector in 2D or 3D space (depending on the curve definition)\n\t * for the given interpolation factor. Unlike {@link Curve#getPoint}, this method honors the length\n\t * of the curve which equidistant samples.\n\t *\n\t * @param {number} u - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {(Vector2|Vector3)} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {(Vector2|Vector3)} The position on the curve. It can be a 2D or 3D vector depending on the curve definition.\n\t */\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/**\n\t * This method samples the curve via {@link Curve#getPoint} and returns an array of points representing\n\t * the curve shape.\n\t *\n\t * @param {number} [divisions=5] - The number of divisions.\n\t * @return {Array<(Vector2|Vector3)>} An array holding the sampled curve values. The number of points is `divisions + 1`.\n\t */\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\t/**\n\t * This method samples the curve via {@link Curve#getPointAt} and returns an array of points representing\n\t * the curve shape. Unlike {@link Curve#getPoints}, this method returns equi-spaced points across the entire\n\t * curve.\n\t *\n\t * @param {number} [divisions=5] - The number of divisions.\n\t * @return {Array<(Vector2|Vector3)>} An array holding the sampled curve values. The number of points is `divisions + 1`.\n\t */\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/**\n\t * Returns the total arc length of the curve.\n\t *\n\t * @return {number} The length of the curve.\n\t */\n\tgetLength() {\n\n\t\tconst lengths = this.getLengths();\n\t\treturn lengths[ lengths.length - 1 ];\n\n\t}\n\n\t/**\n\t * Returns an array of cumulative segment lengths of the curve.\n\t *\n\t * @param {number} [divisions=this.arcLengthDivisions] - The number of divisions.\n\t * @return {Array} An array holding the cumulative segment lengths.\n\t */\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\t/**\n\t * Update the cumulative segment distance cache. The method must be called\n\t * every time curve parameters are changed. If an updated curve is part of a\n\t * composed curve like {@link CurvePath}, this method must be called on the\n\t * composed curve, too.\n\t */\n\tupdateArcLengths() {\n\n\t\tthis.needsUpdate = true;\n\t\tthis.getLengths();\n\n\t}\n\n\t/**\n\t * Given an interpolation factor in the range `[0,1]`, this method returns an updated\n\t * interpolation factor in the same range that can be ued to sample equidistant points\n\t * from a curve.\n\t *\n\t * @param {number} u - The interpolation factor.\n\t * @param {?number} distance - An optional distance on the curve.\n\t * @return {number} The updated interpolation factor.\n\t */\n\tgetUtoTmapping( u, distance = null ) {\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/**\n\t * Returns a unit vector tangent for the given interpolation factor.\n\t * If the derived curve does not implement its tangent derivation,\n\t * two points a small delta apart will be used to find its gradient\n\t * which seems to give a reasonable approximation.\n\t *\n\t * @param {number} t - The interpolation factor.\n\t * @param {(Vector2|Vector3)} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {(Vector2|Vector3)} The tangent vector.\n\t */\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\t/**\n\t * Same as {@link Curve#getTangent} but with equidistant samples.\n\t *\n\t * @param {number} u - The interpolation factor.\n\t * @param {(Vector2|Vector3)} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {(Vector2|Vector3)} The tangent vector.\n\t * @see {@link Curve#getPointAt}\n\t */\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\tconst t = this.getUtoTmapping( u );\n\t\treturn this.getTangent( t, optionalTarget );\n\n\t}\n\n\t/**\n\t * Generates the Frenet Frames. Requires a curve definition in 3D space. Used\n\t * in geometries like {@link TubeGeometry} or {@link ExtrudeGeometry}.\n\t *\n\t * @param {number} segments - The number of segments.\n\t * @param {boolean} [closed=false] - Whether the curve is closed or not.\n\t * @return {{tangents: Array, normals: Array, binormals: Array}} The Frenet Frames.\n\t */\n\tcomputeFrenetFrames( segments, closed = false ) {\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\t/**\n\t * Returns a new curve with copied values from this instance.\n\t *\n\t * @return {Curve} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the values of the given curve to this instance.\n\t *\n\t * @param {Curve} source - The curve to copy.\n\t * @return {Curve} A reference to this curve.\n\t */\n\tcopy( source ) {\n\n\t\tthis.arcLengthDivisions = source.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Serializes the curve into JSON.\n\t *\n\t * @return {Object} A JSON object representing the serialized curve.\n\t * @see {@link ObjectLoader#parse}\n\t */\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.7,\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\t/**\n\t * Deserializes the curve from the given JSON.\n\t *\n\t * @param {Object} json - The JSON holding the serialized curve.\n\t * @return {Curve} A reference to this curve.\n\t */\n\tfromJSON( json ) {\n\n\t\tthis.arcLengthDivisions = json.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * A curve representing an ellipse.\n *\n * ```js\n * const curve = new THREE.EllipseCurve(\n * \t0, 0,\n * \t10, 10,\n * \t0, 2 * Math.PI,\n * \tfalse,\n * \t0\n * );\n *\n * const points = curve.getPoints( 50 );\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n *\n * const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );\n *\n * // Create the final object to add to the scene\n * const ellipse = new THREE.Line( geometry, material );\n * ```\n *\n * @augments Curve\n */\nclass EllipseCurve extends Curve {\n\n\t/**\n\t * Constructs a new ellipse curve.\n\t *\n\t * @param {number} [aX=0] - The X center of the ellipse.\n\t * @param {number} [aY=0] - The Y center of the ellipse.\n\t * @param {number} [xRadius=1] - The radius of the ellipse in the x direction.\n\t * @param {number} [yRadius=1] - The radius of the ellipse in the y direction.\n\t * @param {number} [aStartAngle=0] - The start angle of the curve in radians starting from the positive X axis.\n\t * @param {number} [aEndAngle=Math.PI*2] - The end angle of the curve in radians starting from the positive X axis.\n\t * @param {boolean} [aClockwise=false] - Whether the ellipse is drawn clockwise or not.\n\t * @param {number} [aRotation=0] - The rotation angle of the ellipse in radians, counterclockwise from the positive X axis.\n\t */\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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isEllipseCurve = true;\n\n\t\tthis.type = 'EllipseCurve';\n\n\t\t/**\n\t\t * The X center of the ellipse.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.aX = aX;\n\n\t\t/**\n\t\t * The Y center of the ellipse.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.aY = aY;\n\n\t\t/**\n\t\t * The radius of the ellipse in the x direction.\n\t\t * Setting the this value equal to the {@link EllipseCurve#yRadius} will result in a circle.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.xRadius = xRadius;\n\n\t\t/**\n\t\t * The radius of the ellipse in the y direction.\n\t\t * Setting the this value equal to the {@link EllipseCurve#xRadius} will result in a circle.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.yRadius = yRadius;\n\n\t\t/**\n\t\t * The start angle of the curve in radians starting from the positive X axis.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.aStartAngle = aStartAngle;\n\n\t\t/**\n\t\t * The end angle of the curve in radians starting from the positive X axis.\n\t\t *\n\t\t * @type {number}\n\t\t * @default Math.PI*2\n\t\t */\n\t\tthis.aEndAngle = aEndAngle;\n\n\t\t/**\n\t\t * Whether the ellipse is drawn clockwise or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.aClockwise = aClockwise;\n\n\t\t/**\n\t\t * The rotation angle of the ellipse in radians, counterclockwise from the positive X axis.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.aRotation = aRotation;\n\n\t}\n\n\t/**\n\t * Returns a point on the curve.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {Vector2} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector2} The position on the curve.\n\t */\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\n/**\n * A curve representing an arc.\n *\n * @augments EllipseCurve\n */\nclass ArcCurve extends EllipseCurve {\n\n\t/**\n\t * Constructs a new arc curve.\n\t *\n\t * @param {number} [aX=0] - The X center of the ellipse.\n\t * @param {number} [aY=0] - The Y center of the ellipse.\n\t * @param {number} [aRadius=1] - The radius of the ellipse in the x direction.\n\t * @param {number} [aStartAngle=0] - The start angle of the curve in radians starting from the positive X axis.\n\t * @param {number} [aEndAngle=Math.PI*2] - The end angle of the curve in radians starting from the positive X axis.\n\t * @param {boolean} [aClockwise=false] - Whether the ellipse is drawn clockwise or not.\n\t */\n\tconstructor( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tsuper( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isArcCurve = true;\n\n\t\tthis.type = 'ArcCurve';\n\n\t}\n\n}\n\nfunction CubicPoly() {\n\n\t/**\n\t * Centripetal CatmullRom Curve - which is useful for avoiding\n\t* cusps and self-intersections in non-uniform catmull rom curves.\n\t* http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf\n\t*\n\t* curve.type accepts centripetal(default), chordal and catmullrom\n\t* curve.tension is used for catmullrom which defaults to 0.5\n\t*/\n\n\t/*\n\tBased on an optimized c++ solution in\n\t- http://stackoverflow.com/questions/9489736/catmull-rom-curve-with-no-cusps-and-no-self-intersections/\n\t- http://ideone.com/NoEbVM\n\n\tThis CubicPoly class could be used for reusing some variables and calculations,\n\tbut for three.js curve use, it could be possible inlined and flatten into a single function call\n\twhich can be placed in CurveUtils.\n\t*/\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\n/**\n * A curve representing a Catmull-Rom spline.\n *\n * ```js\n * //Create a closed wavey loop\n * const curve = new THREE.CatmullRomCurve3( [\n * \tnew THREE.Vector3( -10, 0, 10 ),\n * \tnew THREE.Vector3( -5, 5, 5 ),\n * \tnew THREE.Vector3( 0, 0, 0 ),\n * \tnew THREE.Vector3( 5, -5, 5 ),\n * \tnew THREE.Vector3( 10, 0, 10 )\n * ] );\n *\n * const points = curve.getPoints( 50 );\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n *\n * const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );\n *\n * // Create the final object to add to the scene\n * const curveObject = new THREE.Line( geometry, material );\n * ```\n *\n * @augments Curve\n */\nclass CatmullRomCurve3 extends Curve {\n\n\t/**\n\t * Constructs a new Catmull-Rom curve.\n\t *\n\t * @param {Array} [points] - An array of 3D points defining the curve.\n\t * @param {boolean} [closed=false] - Whether the curve is closed or not.\n\t * @param {('centripetal'|'chordal'|'catmullrom')} [curveType='centripetal'] - The curve type.\n\t * @param {number} [tension=0.5] - Tension of the curve.\n\t */\n\tconstructor( points = [], closed = false, curveType = 'centripetal', tension = 0.5 ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCatmullRomCurve3 = true;\n\n\t\tthis.type = 'CatmullRomCurve3';\n\n\t\t/**\n\t\t * An array of 3D points defining the curve.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.points = points;\n\n\t\t/**\n\t\t * Whether the curve is closed or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.closed = closed;\n\n\t\t/**\n\t\t * The curve type.\n\t\t *\n\t\t * @type {('centripetal'|'chordal'|'catmullrom')}\n\t\t * @default 'centripetal'\n\t\t */\n\t\tthis.curveType = curveType;\n\n\t\t/**\n\t\t * Tension of the curve.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.5\n\t\t */\n\t\tthis.tension = tension;\n\n\t}\n\n\t/**\n\t * Returns a point on the curve.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector3} The position on the curve.\n\t */\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// Bezier Curves formulas obtained from: https://en.wikipedia.org/wiki/B%C3%A9zier_curve\n\n/**\n * Computes a point on a Catmull-Rom spline.\n *\n * @param {number} t - The interpolation factor.\n * @param {number} p0 - The first control point.\n * @param {number} p1 - The second control point.\n * @param {number} p2 - The third control point.\n * @param {number} p3 - The fourth control point.\n * @return {number} The calculated point on a Catmull-Rom spline.\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\n/**\n * Computes a point on a Quadratic Bezier curve.\n *\n * @param {number} t - The interpolation factor.\n * @param {number} p0 - The first control point.\n * @param {number} p1 - The second control point.\n * @param {number} p2 - The third control point.\n * @return {number} The calculated point on a Quadratic Bezier curve.\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\n/**\n * Computes a point on a Cubic Bezier curve.\n *\n * @param {number} t - The interpolation factor.\n * @param {number} p0 - The first control point.\n * @param {number} p1 - The second control point.\n * @param {number} p2 - The third control point.\n * @param {number} p3 - The fourth control point.\n * @return {number} The calculated point on a Cubic Bezier curve.\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\n/**\n * A curve representing a 2D Cubic Bezier curve.\n *\n * ```js\n * const curve = new THREE.CubicBezierCurve(\n * \tnew THREE.Vector2( - 0, 0 ),\n * \tnew THREE.Vector2( - 5, 15 ),\n * \tnew THREE.Vector2( 20, 15 ),\n * \tnew THREE.Vector2( 10, 0 )\n * );\n *\n * const points = curve.getPoints( 50 );\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n *\n * const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );\n *\n * // Create the final object to add to the scene\n * const curveObject = new THREE.Line( geometry, material );\n * ```\n *\n * @augments Curve\n */\nclass CubicBezierCurve extends Curve {\n\n\t/**\n\t * Constructs a new Cubic Bezier curve.\n\t *\n\t * @param {Vector2} [v0] - The start point.\n\t * @param {Vector2} [v1] - The first control point.\n\t * @param {Vector2} [v2] - The second control point.\n\t * @param {Vector2} [v3] - The end point.\n\t */\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2(), v3 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCubicBezierCurve = true;\n\n\t\tthis.type = 'CubicBezierCurve';\n\n\t\t/**\n\t\t * The start point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v0 = v0;\n\n\t\t/**\n\t\t * The first control point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v1 = v1;\n\n\t\t/**\n\t\t * The second control point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v2 = v2;\n\n\t\t/**\n\t\t * The end point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v3 = v3;\n\n\t}\n\n\t/**\n\t * Returns a point on the curve.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {Vector2} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector2} The position on the curve.\n\t */\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\n/**\n * A curve representing a 3D Cubic Bezier curve.\n *\n * @augments Curve\n */\nclass CubicBezierCurve3 extends Curve {\n\n\t/**\n\t * Constructs a new Cubic Bezier curve.\n\t *\n\t * @param {Vector3} [v0] - The start point.\n\t * @param {Vector3} [v1] - The first control point.\n\t * @param {Vector3} [v2] - The second control point.\n\t * @param {Vector3} [v3] - The end point.\n\t */\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3(), v3 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCubicBezierCurve3 = true;\n\n\t\tthis.type = 'CubicBezierCurve3';\n\n\t\t/**\n\t\t * The start point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v0 = v0;\n\n\t\t/**\n\t\t * The first control point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v1 = v1;\n\n\t\t/**\n\t\t * The second control point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v2 = v2;\n\n\t\t/**\n\t\t * The end point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v3 = v3;\n\n\t}\n\n\t/**\n\t * Returns a point on the curve.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector3} The position on the curve.\n\t */\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\n/**\n * A curve representing a 2D line segment.\n *\n * @augments Curve\n */\nclass LineCurve extends Curve {\n\n\t/**\n\t * Constructs a new line curve.\n\t *\n\t * @param {Vector2} [v1] - The start point.\n\t * @param {Vector2} [v2] - The end point.\n\t */\n\tconstructor( v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLineCurve = true;\n\n\t\tthis.type = 'LineCurve';\n\n\t\t/**\n\t\t * The start point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v1 = v1;\n\n\t\t/**\n\t\t * The end point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v2 = v2;\n\n\t}\n\n\t/**\n\t * Returns a point on the line.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the line. Must be in the range `[0,1]`.\n\t * @param {Vector2} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector2} The position on the line.\n\t */\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\n/**\n * A curve representing a 3D line segment.\n *\n * @augments Curve\n */\nclass LineCurve3 extends Curve {\n\n\t/**\n\t * Constructs a new line curve.\n\t *\n\t * @param {Vector3} [v1] - The start point.\n\t * @param {Vector3} [v2] - The end point.\n\t */\n\tconstructor( v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLineCurve3 = true;\n\n\t\tthis.type = 'LineCurve3';\n\n\t\t/**\n\t\t * The start point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v1 = v1;\n\n\t\t/**\n\t\t * The end point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v2 = v2;\n\n\t}\n\n\t/**\n\t * Returns a point on the line.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the line. Must be in the range `[0,1]`.\n\t * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector3} The position on the line.\n\t */\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\n/**\n * A curve representing a 2D Quadratic Bezier curve.\n *\n * ```js\n * const curve = new THREE.QuadraticBezierCurve(\n * \tnew THREE.Vector2( - 10, 0 ),\n * \tnew THREE.Vector2( 20, 15 ),\n * \tnew THREE.Vector2( 10, 0 )\n * )\n *\n * const points = curve.getPoints( 50 );\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n *\n * const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );\n *\n * // Create the final object to add to the scene\n * const curveObject = new THREE.Line( geometry, material );\n * ```\n *\n * @augments Curve\n */\nclass QuadraticBezierCurve extends Curve {\n\n\t/**\n\t * Constructs a new Quadratic Bezier curve.\n\t *\n\t * @param {Vector2} [v0] - The start point.\n\t * @param {Vector2} [v1] - The control point.\n\t * @param {Vector2} [v2] - The end point.\n\t */\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isQuadraticBezierCurve = true;\n\n\t\tthis.type = 'QuadraticBezierCurve';\n\n\t\t/**\n\t\t * The start point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v0 = v0;\n\n\t\t/**\n\t\t * The control point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v1 = v1;\n\n\t\t/**\n\t\t * The end point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v2 = v2;\n\n\t}\n\n\t/**\n\t * Returns a point on the curve.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {Vector2} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector2} The position on the curve.\n\t */\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\n/**\n * A curve representing a 3D Quadratic Bezier curve.\n *\n * @augments Curve\n */\nclass QuadraticBezierCurve3 extends Curve {\n\n\t/**\n\t * Constructs a new Quadratic Bezier curve.\n\t *\n\t * @param {Vector3} [v0] - The start point.\n\t * @param {Vector3} [v1] - The control point.\n\t * @param {Vector3} [v2] - The end point.\n\t */\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isQuadraticBezierCurve3 = true;\n\n\t\tthis.type = 'QuadraticBezierCurve3';\n\n\t\t/**\n\t\t * The start point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v0 = v0;\n\n\t\t/**\n\t\t * The control point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v1 = v1;\n\n\t\t/**\n\t\t * The end point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v2 = v2;\n\n\t}\n\n\t/**\n\t * Returns a point on the curve.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector3} The position on the curve.\n\t */\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\n/**\n * A curve representing a 2D spline curve.\n *\n * ```js\n * // Create a sine-like wave\n * const curve = new THREE.SplineCurve( [\n * \tnew THREE.Vector2( -10, 0 ),\n * \tnew THREE.Vector2( -5, 5 ),\n * \tnew THREE.Vector2( 0, 0 ),\n * \tnew THREE.Vector2( 5, -5 ),\n * \tnew THREE.Vector2( 10, 0 )\n * ] );\n *\n * const points = curve.getPoints( 50 );\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n *\n * const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );\n *\n * // Create the final object to add to the scene\n * const splineObject = new THREE.Line( geometry, material );\n * ```\n *\n * @augments Curve\n */\nclass SplineCurve extends Curve {\n\n\t/**\n\t * Constructs a new 2D spline curve.\n\t *\n\t * @param {Array} [points] - An array of 2D points defining the curve.\n\t */\n\tconstructor( points = [] ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSplineCurve = true;\n\n\t\tthis.type = 'SplineCurve';\n\n\t\t/**\n\t\t * An array of 2D points defining the curve.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.points = points;\n\n\t}\n\n\t/**\n\t * Returns a point on the curve.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {Vector2} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector2} The position on the curve.\n\t */\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 * A base class extending {@link Curve}. `CurvePath` is simply an\n * array of connected curves, but retains the API of a curve.\n *\n * @augments Curve\n */\nclass CurvePath extends Curve {\n\n\t/**\n\t * Constructs a new curve path.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'CurvePath';\n\n\t\t/**\n\t\t * An array of curves defining the\n\t\t * path.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.curves = [];\n\n\t\t/**\n\t\t * Whether the path should automatically be closed\n\t\t * by a line curve.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.autoClose = false;\n\n\t}\n\n\t/**\n\t * Adds a curve to this curve path.\n\t *\n\t * @param {Curve} curve - The curve to add.\n\t */\n\tadd( curve ) {\n\n\t\tthis.curves.push( curve );\n\n\t}\n\n\t/**\n\t * Adds a line curve to close the path.\n\t *\n\t * @return {CurvePath} A reference to this curve path.\n\t */\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/**\n\t * This method returns a vector in 2D or 3D space (depending on the curve definitions)\n\t * for the given interpolation factor.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {(Vector2|Vector3)} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {?(Vector2|Vector3)} The position on the curve. It can be a 2D or 3D vector depending on the curve definition.\n\t */\n\tgetPoint( t, optionalTarget ) {\n\n\t\t// To get accurate point with reference to\n\t\t// entire path distance at time t,\n\t\t// following has to be done:\n\n\t\t// 1. Length of each sub path have to be known\n\t\t// 2. Locate and identify type of curve\n\t\t// 3. Get t for the curve\n\t\t// 4. Return curve.getPointAt(t')\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 } The curve lengths.\n\t */\n\tgetCurveLengths() {\n\n\t\t// Compute lengths and cache them\n\t\t// We cannot overwrite getLengths() because UtoT mapping uses it.\n\t\t// We use cache values if curves and cache array are same length\n\n\t\tif ( this.cacheLengths && this.cacheLengths.length === this.curves.length ) {\n\n\t\t\treturn this.cacheLengths;\n\n\t\t}\n\n\t\t// Get length of sub-curve\n\t\t// Push sums into cached array\n\n\t\tconst lengths = [];\n\t\tlet sums = 0;\n\n\t\tfor ( let i = 0, l = this.curves.length; i < l; i ++ ) {\n\n\t\t\tsums += this.curves[ i ].getLength();\n\t\t\tlengths.push( sums );\n\n\t\t}\n\n\t\tthis.cacheLengths = lengths;\n\n\t\treturn lengths;\n\n\t}\n\n\tgetSpacedPoints( divisions = 40 ) {\n\n\t\tconst points = [];\n\n\t\tfor ( let i = 0; i <= divisions; i ++ ) {\n\n\t\t\tpoints.push( this.getPoint( i / divisions ) );\n\n\t\t}\n\n\t\tif ( this.autoClose ) {\n\n\t\t\tpoints.push( points[ 0 ] );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\tgetPoints( divisions = 12 ) {\n\n\t\tconst points = [];\n\t\tlet last;\n\n\t\tfor ( let i = 0, curves = this.curves; i < curves.length; i ++ ) {\n\n\t\t\tconst curve = curves[ i ];\n\t\t\tconst resolution = curve.isEllipseCurve ? divisions * 2\n\t\t\t\t: ( curve.isLineCurve || curve.isLineCurve3 ) ? 1\n\t\t\t\t\t: curve.isSplineCurve ? divisions * curve.points.length\n\t\t\t\t\t\t: divisions;\n\n\t\t\tconst pts = curve.getPoints( resolution );\n\n\t\t\tfor ( let j = 0; j < pts.length; j ++ ) {\n\n\t\t\t\tconst point = pts[ j ];\n\n\t\t\t\tif ( last && last.equals( point ) ) continue; // ensures no consecutive points are duplicates\n\n\t\t\t\tpoints.push( point );\n\t\t\t\tlast = point;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.autoClose && points.length > 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\n/**\n * A 2D path representation. The class provides methods for creating paths\n * and contours of 2D shapes similar to the 2D Canvas API.\n *\n * ```js\n * const path = new THREE.Path();\n *\n * path.lineTo( 0, 0.8 );\n * path.quadraticCurveTo( 0, 1, 0.2, 1 );\n * path.lineTo( 1, 1 );\n *\n * const points = path.getPoints();\n *\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n * const material = new THREE.LineBasicMaterial( { color: 0xffffff } );\n *\n * const line = new THREE.Line( geometry, material );\n * scene.add( line );\n * ```\n *\n * @augments CurvePath\n */\nclass Path extends CurvePath {\n\n\t/**\n\t * Constructs a new path.\n\t *\n\t * @param {Array} [points] - An array of 2D points defining the path.\n\t */\n\tconstructor( points ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Path';\n\n\t\t/**\n\t\t * The current offset of the path. Any new curve added will start here.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\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\t/**\n\t * Creates a path from the given list of points. The points are added\n\t * to the path as instances of {@link LineCurve}.\n\t *\n\t * @param {Array} points - An array of 2D points.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Moves {@link Path#currentPoint} to the given point.\n\t *\n\t * @param {number} x - The x coordinate.\n\t * @param {number} y - The y coordinate.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Adds an instance of {@link LineCurve} to the path by connecting\n\t * the current point with the given one.\n\t *\n\t * @param {number} x - The x coordinate of the end point.\n\t * @param {number} y - The y coordinate of the end point.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Adds an instance of {@link QuadraticBezierCurve} to the path by connecting\n\t * the current point with the given one.\n\t *\n\t * @param {number} aCPx - The x coordinate of the control point.\n\t * @param {number} aCPy - The y coordinate of the control point.\n\t * @param {number} aX - The x coordinate of the end point.\n\t * @param {number} aY - The y coordinate of the end point.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Adds an instance of {@link CubicBezierCurve} to the path by connecting\n\t * the current point with the given one.\n\t *\n\t * @param {number} aCP1x - The x coordinate of the first control point.\n\t * @param {number} aCP1y - The y coordinate of the first control point.\n\t * @param {number} aCP2x - The x coordinate of the second control point.\n\t * @param {number} aCP2y - The y coordinate of the second control point.\n\t * @param {number} aX - The x coordinate of the end point.\n\t * @param {number} aY - The y coordinate of the end point.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Adds an instance of {@link SplineCurve} to the path by connecting\n\t * the current point with the given list of points.\n\t *\n\t * @param {Array} pts - An array of points in 2D space.\n\t * @return {Path} A reference to this path.\n\t */\n\tsplineThru( pts ) {\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\t/**\n\t * Adds an arc as an instance of {@link EllipseCurve} to the path, positioned relative\n\t * to the current point.\n\t *\n\t * @param {number} [aX=0] - The x coordinate of the center of the arc offsetted from the previous curve.\n\t * @param {number} [aY=0] - The y coordinate of the center of the arc offsetted from the previous curve.\n\t * @param {number} [aRadius=1] - The radius of the arc.\n\t * @param {number} [aStartAngle=0] - The start angle in radians.\n\t * @param {number} [aEndAngle=Math.PI*2] - The end angle in radians.\n\t * @param {boolean} [aClockwise=false] - Whether to sweep the arc clockwise or not.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Adds an absolutely positioned arc as an instance of {@link EllipseCurve} to the path.\n\t *\n\t * @param {number} [aX=0] - The x coordinate of the center of the arc.\n\t * @param {number} [aY=0] - The y coordinate of the center of the arc.\n\t * @param {number} [aRadius=1] - The radius of the arc.\n\t * @param {number} [aStartAngle=0] - The start angle in radians.\n\t * @param {number} [aEndAngle=Math.PI*2] - The end angle in radians.\n\t * @param {boolean} [aClockwise=false] - Whether to sweep the arc clockwise or not.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Adds an ellipse as an instance of {@link EllipseCurve} to the path, positioned relative\n\t * to the current point\n\t *\n\t * @param {number} [aX=0] - The x coordinate of the center of the ellipse offsetted from the previous curve.\n\t * @param {number} [aY=0] - The y coordinate of the center of the ellipse offsetted from the previous curve.\n\t * @param {number} [xRadius=1] - The radius of the ellipse in the x axis.\n\t * @param {number} [yRadius=1] - The radius of the ellipse in the y axis.\n\t * @param {number} [aStartAngle=0] - The start angle in radians.\n\t * @param {number} [aEndAngle=Math.PI*2] - The end angle in radians.\n\t * @param {boolean} [aClockwise=false] - Whether to sweep the ellipse clockwise or not.\n\t * @param {number} [aRotation=0] - The rotation angle of the ellipse in radians, counterclockwise from the positive X axis.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Adds an absolutely positioned ellipse as an instance of {@link EllipseCurve} to the path.\n\t *\n\t * @param {number} [aX=0] - The x coordinate of the absolute center of the ellipse.\n\t * @param {number} [aY=0] - The y coordinate of the absolute center of the ellipse.\n\t * @param {number} [xRadius=1] - The radius of the ellipse in the x axis.\n\t * @param {number} [yRadius=1] - The radius of the ellipse in the y axis.\n\t * @param {number} [aStartAngle=0] - The start angle in radians.\n\t * @param {number} [aEndAngle=Math.PI*2] - The end angle in radians.\n\t * @param {boolean} [aClockwise=false] - Whether to sweep the ellipse clockwise or not.\n\t * @param {number} [aRotation=0] - The rotation angle of the ellipse in radians, counterclockwise from the positive X axis.\n\t * @return {Path} A reference to this path.\n\t */\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\n/**\n * Defines an arbitrary 2d shape plane using paths with optional holes. It\n * can be used with {@link ExtrudeGeometry}, {@link ShapeGeometry}, to get\n * points, or to get triangulated faces.\n *\n * ```js\n * const heartShape = new THREE.Shape();\n *\n * heartShape.moveTo( 25, 25 );\n * heartShape.bezierCurveTo( 25, 25, 20, 0, 0, 0 );\n * heartShape.bezierCurveTo( - 30, 0, - 30, 35, - 30, 35 );\n * heartShape.bezierCurveTo( - 30, 55, - 10, 77, 25, 95 );\n * heartShape.bezierCurveTo( 60, 77, 80, 55, 80, 35 );\n * heartShape.bezierCurveTo( 80, 35, 80, 0, 50, 0 );\n * heartShape.bezierCurveTo( 35, 0, 25, 25, 25, 25 );\n *\n * const extrudeSettings = {\n * \tdepth: 8,\n * \tbevelEnabled: true,\n * \tbevelSegments: 2,\n * \tsteps: 2,\n * \tbevelSize: 1,\n * \tbevelThickness: 1\n * };\n *\n * const geometry = new THREE.ExtrudeGeometry( heartShape, extrudeSettings );\n * const mesh = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial() );\n * ```\n *\n * @augments Path\n */\nclass Shape extends Path {\n\n\t/**\n\t * Constructs a new shape.\n\t *\n\t * @param {Array} [points] - An array of 2D points defining the shape.\n\t */\n\tconstructor( points ) {\n\n\t\tsuper( points );\n\n\t\t/**\n\t\t * The UUID of the shape.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.type = 'Shape';\n\n\t\t/**\n\t\t * Defines the holes in the shape. Hole definitions must use the\n\t\t * opposite winding order (CW/CCW) than the outer shape.\n\t\t *\n\t\t * @type {Array}\n\t\t * @readonly\n\t\t */\n\t\tthis.holes = [];\n\n\t}\n\n\t/**\n\t * Returns an array representing each contour of the holes\n\t * as a list of 2D points.\n\t *\n\t * @param {number} divisions - The fineness of the result.\n\t * @return {Array>} The holes as a series of 2D points.\n\t */\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\t/**\n\t * Returns an object that holds contour data for the shape and its holes as\n\t * arrays of 2D points.\n\t *\n\t * @param {number} divisions - The fineness of the result.\n\t * @return {{shape:Array,holes:Array>}} An object with contour data.\n\t */\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/* eslint-disable */\n// copy of mapbox/earcut version 3.0.1\n// https://github.com/mapbox/earcut/tree/v3.0.1\n\nfunction earcut(data, holeIndices, dim = 2) {\n\n const hasHoles = holeIndices && holeIndices.length;\n const outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n let outerNode = linkedList(data, 0, outerLen, dim, true);\n const triangles = [];\n\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n\n let minX, minY, invSize;\n\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n\n // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n if (data.length > 80 * dim) {\n minX = Infinity;\n minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n\n for (let i = dim; i < outerLen; i += dim) {\n const x = data[i];\n const y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n\n // minX, minY and invSize are later used to transform coords into integers for z-order calculation\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 32767 / invSize : 0;\n }\n\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize, 0);\n\n return triangles;\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 let last;\n\n if (clockwise === (signedArea(data, start, end, dim) > 0)) {\n for (let i = start; i < end; i += dim) last = insertNode(i / dim | 0, data[i], data[i + 1], last);\n } else {\n for (let i = end - dim; i >= start; i -= dim) last = insertNode(i / dim | 0, data[i], data[i + 1], last);\n }\n\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n\n return last;\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n\n let p = start,\n again;\n do {\n again = false;\n\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n\n return end;\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 if (!ear) return;\n\n // interlink polygon nodes in z-order\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n\n let stop = ear;\n\n // iterate through ears, slicing them one by one\n while (ear.prev !== ear.next) {\n const prev = ear.prev;\n const next = ear.next;\n\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n triangles.push(prev.i, ear.i, next.i); // cut off the triangle\n\n removeNode(ear);\n\n // skipping the next vertex leads to less sliver triangles\n ear = next.next;\n stop = next.next;\n\n continue;\n }\n\n ear = next;\n\n // if we looped through the whole remaining polygon and can't find any more ears\n if (ear === stop) {\n // try filtering points and slicing again\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n\n // if this didn't work, try curing all small self-intersections locally\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n\n // as a last resort, try splitting the remaining polygon into two\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n\n break;\n }\n }\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar(ear) {\n const a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // now make sure we don't have other points inside the potential ear\n const ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n // triangle bbox\n const x0 = Math.min(ax, bx, cx),\n y0 = Math.min(ay, by, cy),\n x1 = Math.max(ax, bx, cx),\n y1 = Math.max(ay, by, cy);\n\n let p = c.next;\n while (p !== a) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 &&\n pointInTriangleExceptFirst(ax, ay, bx, by, cx, cy, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n\n return true;\n}\n\nfunction isEarHashed(ear, minX, minY, invSize) {\n const a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n const ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n // triangle bbox\n const x0 = Math.min(ax, bx, cx),\n y0 = Math.min(ay, by, cy),\n x1 = Math.max(ax, bx, cx),\n y1 = Math.max(ay, by, cy);\n\n // z-order range for the current triangle bbox;\n const minZ = zOrder(x0, y0, minX, minY, invSize),\n maxZ = zOrder(x1, y1, minX, minY, invSize);\n\n let p = ear.prevZ,\n n = ear.nextZ;\n\n // look for points inside the triangle in both directions\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n pointInTriangleExceptFirst(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n\n if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n pointInTriangleExceptFirst(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n // look for remaining points in decreasing z-order\n while (p && p.z >= minZ) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n pointInTriangleExceptFirst(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n }\n\n // look for remaining points in increasing z-order\n while (n && n.z <= maxZ) {\n if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n pointInTriangleExceptFirst(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n return true;\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections(start, triangles) {\n let p = start;\n do {\n const a = p.prev,\n b = p.next.next;\n\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n\n triangles.push(a.i, p.i, b.i);\n\n // remove two nodes involved\n removeNode(p);\n removeNode(p.next);\n\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n\n return filterPoints(p);\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\n // look for a valid diagonal that divides the polygon into two\n let a = start;\n do {\n let b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n // split the polygon in two by the diagonal\n let c = splitPolygon(a, b);\n\n // filter colinear points around the cuts\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n\n // run earcut on each half\n earcutLinked(a, triangles, dim, minX, minY, invSize, 0);\n earcutLinked(c, triangles, dim, minX, minY, invSize, 0);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles(data, holeIndices, outerNode, dim) {\n const queue = [];\n\n for (let i = 0, len = holeIndices.length; i < len; i++) {\n const start = holeIndices[i] * dim;\n const end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n const list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n\n queue.sort(compareXYSlope);\n\n // process holes from left to right\n for (let i = 0; i < queue.length; i++) {\n outerNode = eliminateHole(queue[i], outerNode);\n }\n\n return outerNode;\n}\n\nfunction compareXYSlope(a, b) {\n let result = a.x - b.x;\n // when the left-most point of 2 holes meet at a vertex, sort the holes counterclockwise so that when we find\n // the bridge to the outer shell is always the point that they meet at.\n if (result === 0) {\n result = a.y - b.y;\n if (result === 0) {\n const aSlope = (a.next.y - a.y) / (a.next.x - a.x);\n const bSlope = (b.next.y - b.y) / (b.next.x - b.x);\n result = aSlope - bSlope;\n }\n }\n return result;\n}\n\n// find a bridge between vertices that connects hole with an outer ring and and link it\nfunction eliminateHole(hole, outerNode) {\n const bridge = findHoleBridge(hole, outerNode);\n if (!bridge) {\n return outerNode;\n }\n\n const bridgeReverse = splitPolygon(bridge, hole);\n\n // filter collinear points around the cuts\n filterPoints(bridgeReverse, bridgeReverse.next);\n return filterPoints(bridge, bridge.next);\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge(hole, outerNode) {\n let p = outerNode;\n const hx = hole.x;\n const hy = hole.y;\n let qx = -Infinity;\n let m;\n\n // find a segment intersected by a ray from the hole's leftmost point to the left;\n // segment's endpoint with lesser x will be potential connection point\n // unless they intersect at a vertex, then choose the vertex\n if (equals(hole, p)) return p;\n do {\n if (equals(hole, p.next)) return p.next;\n else if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n const x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n m = p.x < p.next.x ? p : p.next;\n if (x === hx) return m; // hole touches outer segment; pick leftmost endpoint\n }\n }\n p = p.next;\n } while (p !== outerNode);\n\n if (!m) return null;\n\n // look for points inside the triangle of hole point, segment intersection and endpoint;\n // if there are no points found, we have a valid connection;\n // otherwise choose the point of the minimum angle with the ray as connection point\n\n const stop = m;\n const mx = m.x;\n const my = m.y;\n let tanMin = Infinity;\n\n p = m;\n\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x &&\n pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n\n const tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n if (locallyInside(p, hole) &&\n (tan < tanMin || (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))) {\n m = p;\n tanMin = tan;\n }\n }\n\n p = p.next;\n } while (p !== stop);\n\n return m;\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve(start, minX, minY, invSize) {\n let p = start;\n do {\n if (p.z === 0) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n\n p.prevZ.nextZ = null;\n p.prevZ = null;\n\n sortLinked(p);\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 let numMerges;\n let inSize = 1;\n\n do {\n let p = list;\n let e;\n list = null;\n let tail = null;\n numMerges = 0;\n\n while (p) {\n numMerges++;\n let q = p;\n let pSize = 0;\n for (let i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n let qSize = inSize;\n\n while (pSize > 0 || (qSize > 0 && q)) {\n\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n\n if (tail) tail.nextZ = e;\n else list = e;\n\n e.prevZ = tail;\n tail = e;\n }\n\n p = q;\n }\n\n tail.nextZ = null;\n inSize *= 2;\n\n } while (numMerges > 1);\n\n return list;\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 // coords are transformed into non-negative 15-bit integer range\n x = (x - minX) * invSize | 0;\n y = (y - minY) * invSize | 0;\n\n x = (x | (x << 8)) & 0x00FF00FF;\n x = (x | (x << 4)) & 0x0F0F0F0F;\n x = (x | (x << 2)) & 0x33333333;\n x = (x | (x << 1)) & 0x55555555;\n\n y = (y | (y << 8)) & 0x00FF00FF;\n y = (y | (y << 4)) & 0x0F0F0F0F;\n y = (y | (y << 2)) & 0x33333333;\n y = (y | (y << 1)) & 0x55555555;\n\n return x | (y << 1);\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost(start) {\n let p = start,\n leftmost = start;\n do {\n if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) leftmost = p;\n p = p.next;\n } while (p !== start);\n\n return leftmost;\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (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// check if a point lies within a convex triangle but false if its equal to the first point of the triangle\nfunction pointInTriangleExceptFirst(ax, ay, bx, by, cx, cy, px, py) {\n return !(ax === px && ay === py) && pointInTriangle(ax, ay, bx, by, cx, cy, px, py);\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // doesn'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// signed area of a triangle\nfunction area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n}\n\n// check if two points are equal\nfunction equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n}\n\n// check if two segments intersect\nfunction intersects(p1, q1, p2, q2) {\n const o1 = sign(area(p1, q1, p2));\n const o2 = sign(area(p1, q1, q2));\n const o3 = sign(area(p2, q2, p1));\n const o4 = sign(area(p2, q2, q1));\n\n if (o1 !== o2 && o3 !== o4) return true; // general case\n\n if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n return false;\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment(p, q, r) {\n return 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\nfunction sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon(a, b) {\n let p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n\n return false;\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ?\n area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :\n area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside(a, b) {\n let p = a;\n let inside = false;\n const px = (a.x + b.x) / 2;\n const py = (a.y + b.y) / 2;\n do {\n if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y &&\n (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))\n inside = !inside;\n p = p.next;\n } while (p !== a);\n\n return inside;\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 const a2 = createNode(a.i, a.x, a.y),\n b2 = createNode(b.i, b.x, b.y),\n an = a.next,\n bp = b.prev;\n\n a.next = b;\n b.prev = a;\n\n a2.next = an;\n an.prev = a2;\n\n b2.next = a2;\n a2.prev = b2;\n\n bp.next = b2;\n b2.prev = bp;\n\n return b2;\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 const p = createNode(i, x, y);\n\n if (!last) {\n p.prev = p;\n p.next = p;\n\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n}\n\nfunction removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\n\nfunction createNode(i, x, y) {\n return {\n i, // vertex index in coordinates array\n x, y, // vertex coordinates\n prev: null, // previous and next vertex nodes in a polygon ring\n next: null,\n z: 0, // z-order curve value\n prevZ: null, // previous and next nodes in z-order\n nextZ: null,\n steiner: false // indicates whether this is a steiner point\n };\n}\n\nfunction signedArea(data, start, end, dim) {\n let sum = 0;\n for (let i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n}\n\nclass Earcut {\n\n\t/**\n\t * Triangulates the given shape definition by returning an array of triangles.\n\t *\n\t * @param {Array} data - An array with 2D points.\n\t * @param {Array} holeIndices - An array with indices defining holes.\n\t * @param {number} [dim=2] - The number of coordinates per vertex in the input array.\n\t * @return {Array} An array representing the triangulated faces. Each face is defined by three consecutive numbers\n\t * representing vertex indices.\n\t */\n\tstatic triangulate( data, holeIndices, dim = 2 ) {\n\n\t\treturn earcut( data, holeIndices, dim );\n\n\t}\n\n}\n\n/**\n * A class containing utility functions for shapes.\n *\n * @hideconstructor\n */\nclass ShapeUtils {\n\n\t/**\n\t * Calculate area of a ( 2D ) contour polygon.\n\t *\n\t * @param {Array} contour - An array of 2D points.\n\t * @return {number} The area.\n\t */\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\t/**\n\t * Returns `true` if the given contour uses a clockwise winding order.\n\t *\n\t * @param {Array} pts - An array of 2D points defining a polygon.\n\t * @return {boolean} Whether the given contour uses a clockwise winding order or not.\n\t */\n\tstatic isClockWise( pts ) {\n\n\t\treturn ShapeUtils.area( pts ) < 0;\n\n\t}\n\n\t/**\n\t * Triangulates the given shape definition.\n\t *\n\t * @param {Array} contour - An array of 2D points defining the contour.\n\t * @param {Array>} holes - An array that holds arrays of 2D points defining the holes.\n\t * @return {Array>} An array that holds for each face definition an array with three indices.\n\t */\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 * ```js\n * const length = 12, width = 8;\n *\n * const shape = new THREE.Shape();\n * shape.moveTo( 0,0 );\n * shape.lineTo( 0, width );\n * shape.lineTo( length, width );\n * shape.lineTo( length, 0 );\n * shape.lineTo( 0, 0 );\n *\n * const geometry = new THREE.ExtrudeGeometry( shape );\n * const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );\n * const mesh = new THREE.Mesh( geometry, material ) ;\n * scene.add( mesh );\n * ```\n *\n * @augments BufferGeometry\n */\nclass ExtrudeGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new extrude geometry.\n\t *\n\t * @param {Shape|Array} [shapes] - A shape or an array of shapes.\n\t * @param {ExtrudeGeometry~Options} [options] - The extrude settings.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t\t\t/**Merges index-adjacent points that are within a threshold distance of each other. Array is modified in-place. Threshold distance is empirical, and scaled based on the magnitude of point coordinates.\n\t\t\t * @param {Array} points\n\t\t\t*/\n\t\t\tfunction mergeOverlappingPoints( points ) {\n\n\t\t\t\tconst THRESHOLD = 1e-10;\n\t\t\t\tconst THRESHOLD_SQ = THRESHOLD * THRESHOLD;\n\t\t\t\tlet prevPos = points[ 0 ];\n\t\t\t\tfor ( let i = 1; i <= points.length; i ++ ) {\n\n\t\t\t\t\tconst currentIndex = i % points.length;\n\t\t\t\t\tconst currentPos = points[ currentIndex ];\n\t\t\t\t\tconst dx = currentPos.x - prevPos.x;\n\t\t\t\t\tconst dy = currentPos.y - prevPos.y;\n\t\t\t\t\tconst distSq = dx * dx + dy * dy;\n\n\t\t\t\t\tconst scalingFactorSqrt = Math.max(\n\t\t\t\t\t\tMath.abs( currentPos.x ),\n\t\t\t\t\t\tMath.abs( currentPos.y ),\n\t\t\t\t\t\tMath.abs( prevPos.x ),\n\t\t\t\t\t\tMath.abs( prevPos.y )\n\t\t\t\t\t);\n\t\t\t\t\tconst thresholdSqScaled = THRESHOLD_SQ * scalingFactorSqrt * scalingFactorSqrt;\n\t\t\t\t\tif ( distSq <= thresholdSqScaled ) {\n\n\t\t\t\t\t\tpoints.splice( currentIndex, 1 );\n\t\t\t\t\t\ti --;\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tprevPos = currentPos;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tmergeOverlappingPoints( vertices );\n\t\t\tholes.forEach( mergeOverlappingPoints );\n\n\t\t\tconst numHoles = holes.length;\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; h < numHoles; 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;\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 = numHoles; 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\t\t\tlet faces;\n\n\t\t\tif ( bevelSegments === 0 ) {\n\n\t\t\t\tfaces = ShapeUtils.triangulateShape( contour, holes );\n\n\t\t\t} else {\n\n\t\t\t\tconst contractedContourVertices = [];\n\t\t\t\tconst expandedHoleVertices = [];\n\n\t\t\t\t// Loop bevelSegments, 1 for the front, 1 for the back\n\n\t\t\t\tfor ( let b = 0; b < bevelSegments; b ++ ) {\n\n\t\t\t\t\t//for ( b = bevelSegments; b > 0; b -- ) {\n\n\t\t\t\t\tconst t = b / bevelSegments;\n\t\t\t\t\tconst z = bevelThickness * Math.cos( t * Math.PI / 2 );\n\t\t\t\t\tconst bs = bevelSize * Math.sin( t * Math.PI / 2 ) + bevelOffset;\n\n\t\t\t\t\t// contract shape\n\n\t\t\t\t\tfor ( let i = 0, il = contour.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst vert = scalePt2( contour[ i ], contourMovements[ i ], bs );\n\n\t\t\t\t\t\tv( vert.x, vert.y, - z );\n\t\t\t\t\t\tif ( t === 0 ) contractedContourVertices.push( vert );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// expand holes\n\n\t\t\t\t\tfor ( let h = 0, hl = numHoles; h < hl; h ++ ) {\n\n\t\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\t\toneHoleMovements = holesMovements[ h ];\n\t\t\t\t\t\tconst oneHoleVertices = [];\n\t\t\t\t\t\tfor ( let i = 0, il = ahole.length; i < il; i ++ ) {\n\n\t\t\t\t\t\t\tconst vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs );\n\n\t\t\t\t\t\t\tv( vert.x, vert.y, - z );\n\t\t\t\t\t\t\tif ( t === 0 ) oneHoleVertices.push( vert );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( t === 0 ) expandedHoleVertices.push( oneHoleVertices );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfaces = ShapeUtils.triangulateShape( contractedContourVertices, expandedHoleVertices );\n\n\t\t\t}\n\n\t\t\tconst flen = faces.length;\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @param {Array} shapes - An array of shapes.\n\t * @return {ExtrudeGeometry} A new instance.\n\t */\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\n/**\n * A geometry class for representing an icosahedron.\n *\n * ```js\n * const geometry = new THREE.IcosahedronGeometry();\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const icosahedron = new THREE.Mesh( geometry, material );\n * scene.add( icosahedron );\n * ```\n *\n * @augments PolyhedronGeometry\n */\nclass IcosahedronGeometry extends PolyhedronGeometry {\n\n\t/**\n\t * Constructs a new icosahedron geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the icosahedron.\n\t * @param {number} [detail=0] - Setting this to a value greater than `0` adds vertices making it no longer a icosahedron.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {IcosahedronGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new IcosahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\n/**\n * Creates meshes with axial symmetry like vases. The lathe rotates around the Y axis.\n *\n * ```js\n * const points = [];\n * for ( let i = 0; i < 10; i ++ ) {\n * \tpoints.push( new THREE.Vector2( Math.sin( i * 0.2 ) * 10 + 5, ( i - 5 ) * 2 ) );\n * }\n * const geometry = new THREE.LatheGeometry( points );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const lathe = new THREE.Mesh( geometry, material );\n * scene.add( lathe );\n * ```\n *\n * @augments BufferGeometry\n */\nclass LatheGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new lathe geometry.\n\t *\n\t * @param {Array} [points] - An array of points in 2D space. The x-coordinate of each point\n\t * must be greater than zero.\n\t * @param {number} [segments=12] - The number of circumference segments to generate.\n\t * @param {number} [phiStart=0] - The starting angle in radians.\n\t * @param {number} [phiLength=Math.PI*2] - The radian (0 to 2PI) range of the lathed section 2PI is a\n\t * closed lathe, less than 2PI is a portion.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {LatheGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new LatheGeometry( data.points, data.segments, data.phiStart, data.phiLength );\n\n\t}\n\n}\n\n/**\n * A geometry class for representing an octahedron.\n *\n * ```js\n * const geometry = new THREE.OctahedronGeometry();\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const octahedron = new THREE.Mesh( geometry, material );\n * scene.add( octahedron );\n * ```\n *\n * @augments PolyhedronGeometry\n */\nclass OctahedronGeometry extends PolyhedronGeometry {\n\n\t/**\n\t * Constructs a new octahedron geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the octahedron.\n\t * @param {number} [detail=0] - Setting this to a value greater than `0` adds vertices making it no longer a octahedron.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {OctahedronGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new OctahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\n/**\n * A geometry class for representing a plane.\n *\n * ```js\n * const geometry = new THREE.PlaneGeometry( 1, 1 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00, side: THREE.DoubleSide } );\n * const plane = new THREE.Mesh( geometry, material );\n * scene.add( plane );\n * ```\n *\n * @augments BufferGeometry\n */\nclass PlaneGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new plane geometry.\n\t *\n\t * @param {number} [width=1] - The width along the X axis.\n\t * @param {number} [height=1] - The height along the Y axis\n\t * @param {number} [widthSegments=1] - The number of segments along the X axis.\n\t * @param {number} [heightSegments=1] - The number of segments along the Y axis.\n\t */\n\tconstructor( width = 1, height = 1, widthSegments = 1, heightSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PlaneGeometry';\n\n\t\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {PlaneGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new PlaneGeometry( data.width, data.height, data.widthSegments, data.heightSegments );\n\n\t}\n\n}\n\n/**\n * A class for generating a two-dimensional ring geometry.\n *\n * ```js\n * const geometry = new THREE.RingGeometry( 1, 5, 32 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00, side: THREE.DoubleSide } );\n * const mesh = new THREE.Mesh( geometry, material );\n * scene.add( mesh );\n * ```\n *\n * @augments BufferGeometry\n */\nclass RingGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new ring geometry.\n\t *\n\t * @param {number} [innerRadius=0.5] - The inner radius of the ring.\n\t * @param {number} [outerRadius=1] - The outer radius of the ring.\n\t * @param {number} [thetaSegments=32] - Number of segments. A higher number means the ring will be more round. Minimum is `3`.\n\t * @param {number} [phiSegments=1] - Number of segments per ring segment. Minimum is `1`.\n\t * @param {number} [thetaStart=0] - Starting angle in radians.\n\t * @param {number} [thetaLength=Math.PI*2] - Central angle in radians.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {RingGeometry} A new instance.\n\t */\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\n/**\n * Creates an one-sided polygonal geometry from one or more path shapes.\n *\n * ```js\n * const arcShape = new THREE.Shape()\n *\t.moveTo( 5, 1 )\n *\t.absarc( 1, 1, 4, 0, Math.PI * 2, false );\n *\n * const geometry = new THREE.ShapeGeometry( arcShape );\n * const material = new THREE.MeshBasicMaterial( { color: 0x00ff00, side: THREE.DoubleSide } );\n * const mesh = new THREE.Mesh( geometry, material ) ;\n * scene.add( mesh );\n * ```\n *\n * @augments BufferGeometry\n */\nclass ShapeGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new shape geometry.\n\t *\n\t * @param {Shape|Array} [shapes] - A shape or an array of shapes.\n\t * @param {number} [curveSegments=12] - Number of segments per shape.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @param {Array} shapes - An array of shapes.\n\t * @return {ShapeGeometry} A new instance.\n\t */\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\n/**\n * A class for generating a sphere geometry.\n *\n * ```js\n * const geometry = new THREE.SphereGeometry( 15, 32, 16 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const sphere = new THREE.Mesh( geometry, material );\n * scene.add( sphere );\n * ```\n *\n * @augments BufferGeometry\n */\nclass SphereGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new sphere geometry.\n\t *\n\t * @param {number} [radius=1] - The sphere radius.\n\t * @param {number} [widthSegments=32] - The number of horizontal segments. Minimum value is `3`.\n\t * @param {number} [heightSegments=16] - The number of vertical segments. Minimum value is `2`.\n\t * @param {number} [phiStart=0] - The horizontal starting angle in radians.\n\t * @param {number} [phiLength=Math.PI*2] - The horizontal sweep angle size.\n\t * @param {number} [thetaStart=0] - The vertical starting angle in radians.\n\t * @param {number} [thetaLength=Math.PI] - The vertical sweep angle size.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {SphereGeometry} A new instance.\n\t */\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\n/**\n * A geometry class for representing an tetrahedron.\n *\n * ```js\n * const geometry = new THREE.TetrahedronGeometry();\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const tetrahedron = new THREE.Mesh( geometry, material );\n * scene.add( tetrahedron );\n * ```\n *\n * @augments PolyhedronGeometry\n */\nclass TetrahedronGeometry extends PolyhedronGeometry {\n\n\t/**\n\t * Constructs a new tetrahedron geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the tetrahedron.\n\t * @param {number} [detail=0] - Setting this to a value greater than `0` adds vertices making it no longer a tetrahedron.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {TetrahedronGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new TetrahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\n/**\n * A geometry class for representing an torus.\n *\n * ```js\n * const geometry = new THREE.TorusGeometry( 10, 3, 16, 100 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const torus = new THREE.Mesh( geometry, material );\n * scene.add( torus );\n * ```\n *\n * @augments BufferGeometry\n */\nclass TorusGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new torus geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the torus, from the center of the torus to the center of the tube.\n\t * @param {number} [tube=0.4] - Radius of the tube. Must be smaller than `radius`.\n\t * @param {number} [radialSegments=12] - The number of radial segments.\n\t * @param {number} [tubularSegments=48] - The number of tubular segments.\n\t * @param {number} [arc=Math.PI*2] - Central angle in radians.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {TorusGeometry} A new instance.\n\t */\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\n/**\n * Creates a torus knot, the particular shape of which is defined by a pair\n * of coprime integers, p and q. If p and q are not coprime, the result will\n * be a torus link.\n *\n * ```js\n * const geometry = new THREE.TorusKnotGeometry( 10, 3, 100, 16 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const torusKnot = new THREE.Mesh( geometry, material );\n * scene.add( torusKnot );\n * ```\n *\n * @augments BufferGeometry\n */\nclass TorusKnotGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new torus knot geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the torus knot.\n\t * @param {number} [tube=0.4] - Radius of the tube.\n\t * @param {number} [tubularSegments=64] - The number of tubular segments.\n\t * @param {number} [radialSegments=8] - The number of radial segments.\n\t * @param {number} [p=2] - This value determines, how many times the geometry winds around its axis of rotational symmetry.\n\t * @param {number} [q=3] - This value determines, how many times the geometry winds around a circle in the interior of the torus.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {TorusKnotGeometry} A new instance.\n\t */\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\n/**\n * Creates a tube that extrudes along a 3D curve.\n *\n * ```js\n * class CustomSinCurve extends THREE.Curve {\n *\n * \tgetPoint( t, optionalTarget = new THREE.Vector3() ) {\n *\n * \t\tconst tx = t * 3 - 1.5;\n * \t\tconst ty = Math.sin( 2 * Math.PI * t );\n * \t\tconst tz = 0;\n *\n * \t\treturn optionalTarget.set( tx, ty, tz );\n * \t}\n *\n * }\n *\n * const path = new CustomSinCurve( 10 );\n * const geometry = new THREE.TubeGeometry( path, 20, 2, 8, false );\n * const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );\n * const mesh = new THREE.Mesh( geometry, material );\n * scene.add( mesh );\n * ```\n *\n * @augments BufferGeometry\n */\nclass TubeGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new tube geometry.\n\t *\n\t * @param {Curve} [path=QuadraticBezierCurve3] - A 3D curve defining the path of the tube.\n\t * @param {number} [tubularSegments=64] - The number of segments that make up the tube.\n\t * @param {number} [radius=1] -The radius of the tube.\n\t * @param {number} [radialSegments=8] - The number of segments that make up the cross-section.\n\t * @param {boolean} [closed=false] - Whether the tube is closed or not.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {TubeGeometry} A new instance.\n\t */\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\n/**\n * Can be used as a helper object to visualize a geometry as a wireframe.\n *\n * ```js\n * const geometry = new THREE.SphereGeometry();\n *\n * const wireframe = new THREE.WireframeGeometry( geometry );\n *\n * const line = new THREE.LineSegments( wireframe );\n * line.material.depthWrite = false;\n * line.material.opacity = 0.25;\n * line.material.transparent = true;\n *\n * scene.add( line );\n * ```\n *\n * Note: It is not yet possible to serialize/deserialize instances of this class.\n *\n * @augments BufferGeometry\n */\nclass WireframeGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new wireframe geometry.\n\t *\n\t * @param {?BufferGeometry} [geometry=null] - The geometry.\n\t */\n\tconstructor( geometry = null ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'WireframeGeometry';\n\n\t\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\n/**\n * This material can receive shadows, but otherwise is completely transparent.\n *\n * ```js\n * const geometry = new THREE.PlaneGeometry( 2000, 2000 );\n * geometry.rotateX( - Math.PI / 2 );\n *\n * const material = new THREE.ShadowMaterial();\n * material.opacity = 0.2;\n *\n * const plane = new THREE.Mesh( geometry, material );\n * plane.position.y = -200;\n * plane.receiveShadow = true;\n * scene.add( plane );\n * ```\n *\n * @augments Material\n */\nclass ShadowMaterial extends Material {\n\n\t/**\n\t * Constructs a new shadow material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isShadowMaterial = true;\n\n\t\tthis.type = 'ShadowMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.color = new Color( 0x000000 );\n\n\t\t/**\n\t\t * Overwritten since shadow materials are transparent\n\t\t * by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.transparent = true;\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * This class works just like {@link ShaderMaterial}, except that definitions\n * of built-in uniforms and attributes are not automatically prepended to the\n * GLSL shader code.\n *\n * `RawShaderMaterial` can only be used with {@link WebGLRenderer}.\n *\n * @augments ShaderMaterial\n */\nclass RawShaderMaterial extends ShaderMaterial {\n\n\t/**\n\t * Constructs a new raw shader material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper( parameters );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isRawShaderMaterial = true;\n\n\t\tthis.type = 'RawShaderMaterial';\n\n\t}\n\n}\n\n/**\n * A standard physically based material, using Metallic-Roughness workflow.\n *\n * Physically based rendering (PBR) has recently become the standard in many\n * 3D applications, such as [Unity]{@link https://blogs.unity3d.com/2014/10/29/physically-based-shading-in-unity-5-a-primer/},\n * [Unreal]{@link https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/PhysicallyBased/} and\n * [3D Studio Max]{@link http://area.autodesk.com/blogs/the-3ds-max-blog/what039s-new-for-rendering-in-3ds-max-2017}.\n *\n * This approach differs from older approaches in that instead of using\n * approximations for the way in which light interacts with a surface, a\n * physically correct model is used. The idea is that, instead of tweaking\n * materials to look good under specific lighting, a material can be created\n * that will react 'correctly' under all lighting scenarios.\n *\n * In practice this gives a more accurate and realistic looking result than\n * the {@link MeshLambertMaterial} or {@link MeshPhongMaterial}, at the cost of\n * being somewhat more computationally expensive. `MeshStandardMaterial` uses per-fragment\n * shading.\n *\n * Note that for best results you should always specify an environment map when using this material.\n *\n * For a non-technical introduction to the concept of PBR and how to set up a\n * PBR material, check out these articles by the people at [marmoset]{@link https://www.marmoset.co}:\n *\n * - [Basic Theory of Physically Based Rendering]{@link https://www.marmoset.co/posts/basic-theory-of-physically-based-rendering/}\n * - [Physically Based Rendering and You Can Too]{@link https://www.marmoset.co/posts/physically-based-rendering-and-you-can-too/}\n *\n * Technical details of the approach used in three.js (and most other PBR systems) can be found is this\n * [paper from Disney]{@link https://media.disneyanimation.com/uploads/production/publication_asset/48/asset/s2012_pbs_disney_brdf_notes_v3.pdf}\n * (pdf), by Brent Burley.\n *\n * @augments Material\n */\nclass MeshStandardMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh standard material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshStandardMaterial = true;\n\n\t\tthis.type = 'MeshStandardMaterial';\n\n\t\tthis.defines = { 'STANDARD': '' };\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\t/**\n\t\t * How rough the material appears. `0.0` means a smooth mirror reflection, `1.0`\n\t\t * means fully diffuse. If `roughnessMap` is also provided,\n\t\t * both values are multiplied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.roughness = 1.0;\n\n\t\t/**\n\t\t * How much the material is like a metal. Non-metallic materials such as wood\n\t\t * or stone use `0.0`, metallic use `1.0`, with nothing (usually) in between.\n\t\t * A value between `0.0` and `1.0` could be used for a rusty metal look.\n\t\t * If `metalnessMap` is also provided, both values are multiplied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.metalness = 0.0;\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The light map. Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.lightMap = null;\n\n\t\t/**\n\t\t * Intensity of the baked light.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\t/**\n\t\t * The red channel of this texture is used as the ambient occlusion map.\n\t\t * Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.aoMap = null;\n\n\t\t/**\n\t\t * Intensity of the ambient occlusion effect. Range is `[0,1]`, where `0`\n\t\t * disables ambient occlusion. Where intensity is `1` and the AO map's\n\t\t * red channel is also `1`, ambient light is fully occluded on a surface.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\t/**\n\t\t * Emissive (light) color of the material, essentially a solid color\n\t\t * unaffected by other lighting.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.emissive = new Color( 0x000000 );\n\n\t\t/**\n\t\t * Intensity of the emissive light. Modulates the emissive color.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.emissiveIntensity = 1.0;\n\n\t\t/**\n\t\t * Set emissive (glow) map. The emissive map color is modulated by the\n\t\t * emissive color and the emissive intensity. If you have an emissive map,\n\t\t * be sure to set the emissive color to something other than black.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.emissiveMap = null;\n\n\t\t/**\n\t\t * The texture to create a bump map. The black and white values map to the\n\t\t * perceived depth in relation to the lights. Bump doesn't actually affect\n\t\t * the geometry of the object, only the lighting. If a normal map is defined\n\t\t * this will be ignored.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.bumpMap = null;\n\n\t\t/**\n\t\t * How much the bump map affects the material. Typical range is `[0,1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.bumpScale = 1;\n\n\t\t/**\n\t\t * The texture to create a normal map. The RGB values affect the surface\n\t\t * normal for each pixel fragment and change the way the color is lit. Normal\n\t\t * maps do not change the actual shape of the surface, only the lighting. In\n\t\t * case the material has a normal map authored using the left handed\n\t\t * convention, the `y` component of `normalScale` should be negated to compensate\n\t\t * for the different handedness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.normalMap = null;\n\n\t\t/**\n\t\t * The type of normal map.\n\t\t *\n\t\t * @type {(TangentSpaceNormalMap|ObjectSpaceNormalMap)}\n\t\t * @default TangentSpaceNormalMap\n\t\t */\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\n\t\t/**\n\t\t * How much the normal map affects the material. Typical value range is `[0,1]`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementBias = 0;\n\n\t\t/**\n\t\t * The green channel of this texture is used to alter the roughness of the\n\t\t * material.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.roughnessMap = null;\n\n\t\t/**\n\t\t * The blue channel of this texture is used to alter the metalness of the\n\t\t * material.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.metalnessMap = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * The environment map. To ensure a physically correct rendering, environment maps\n\t\t * are internally pre-processed with {@link PMREMGenerator}.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.envMap = null;\n\n\t\t/**\n\t\t * The rotation of the environment map in radians.\n\t\t *\n\t\t * @type {Euler}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.envMapRotation = new Euler();\n\n\t\t/**\n\t\t * Scales the effect of the environment map by multiplying its color.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.envMapIntensity = 1.0;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.wireframeLinewidth = 1;\n\n\t\t/**\n\t\t * Defines appearance of wireframe ends.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinecap = 'round';\n\n\t\t/**\n\t\t * Defines appearance of wireframe joints.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\t/**\n\t\t * Whether the material is rendered with flat shading or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flatShading = false;\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * An extension of the {@link MeshStandardMaterial}, providing more advanced\n * physically-based rendering properties:\n *\n * - Anisotropy: Ability to represent the anisotropic property of materials\n * as observable with brushed metals.\n * - Clearcoat: Some materials — like car paints, carbon fiber, and wet surfaces — require\n * a clear, reflective layer on top of another layer that may be irregular or rough.\n * Clearcoat approximates this effect, without the need for a separate transparent surface.\n * - Iridescence: Allows to render the effect where hue varies depending on the viewing\n * angle and illumination angle. This can be seen on soap bubbles, oil films, or on the\n * wings of many insects.\n * - Physically-based transparency: One limitation of {@link Material#opacity} is that highly\n * transparent materials are less reflective. Physically-based transmission provides a more\n * realistic option for thin, transparent surfaces like glass.\n * - Advanced reflectivity: More flexible reflectivity for non-metallic materials.\n * - Sheen: Can be used for representing cloth and fabric materials.\n *\n * As a result of these complex shading features, `MeshPhysicalMaterial` has a\n * higher performance cost, per pixel, than other three.js materials. Most\n * effects are disabled by default, and add cost as they are enabled. For\n * best results, always specify an environment map when using this material.\n *\n * @augments MeshStandardMaterial\n */\nclass MeshPhysicalMaterial extends MeshStandardMaterial {\n\n\t/**\n\t * Constructs a new mesh physical material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t\t * The rotation of the anisotropy in tangent, bitangent space, measured in radians\n\t\t * counter-clockwise from the tangent. When `anisotropyMap` is present, this\n\t\t * property provides additional rotation to the vectors in the texture.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.anisotropyRotation = 0;\n\n\t\t/**\n\t\t * Red and green channels represent the anisotropy direction in `[-1, 1]` tangent,\n\t\t * bitangent space, to be rotated by `anisotropyRotation`. The blue channel\n\t\t * contains strength as `[0, 1]` to be multiplied by `anisotropy`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.anisotropyMap = null;\n\n\t\t/**\n\t\t * The red channel of this texture is multiplied against `clearcoat`,\n\t\t * for per-pixel control over a coating's intensity.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.clearcoatMap = null;\n\n\t\t/**\n\t\t * Roughness of the clear coat layer, from `0.0` to `1.0`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.clearcoatRoughness = 0.0;\n\n\t\t/**\n\t\t * The green channel of this texture is multiplied against\n\t\t * `clearcoatRoughness`, for per-pixel control over a coating's roughness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.clearcoatRoughnessMap = null;\n\n\t\t/**\n\t\t * How much `clearcoatNormalMap` affects the clear coat layer, from\n\t\t * `(0,0)` to `(1,1)`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.clearcoatNormalScale = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * Can be used to enable independent normals for the clear coat layer.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.clearcoatNormalMap = null;\n\n\t\t/**\n\t\t * Index-of-refraction for non-metallic materials, from `1.0` to `2.333`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1.5\n\t\t */\n\t\tthis.ior = 1.5;\n\n\t\t/**\n\t\t * Degree of reflectivity, from `0.0` to `1.0`. Default is `0.5`, which\n\t\t * corresponds to an index-of-refraction of `1.5`.\n\t\t *\n\t\t * This models the reflectivity of non-metallic materials. It has no effect\n\t\t * when `metalness` is `1.0`\n\t\t *\n\t\t * @name MeshPhysicalMaterial#reflectivity\n\t\t * @type {number}\n\t\t * @default 0.5\n\t\t */\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\t/**\n\t\t * The red channel of this texture is multiplied against `iridescence`, for per-pixel\n\t\t * control over iridescence.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.iridescenceMap = null;\n\n\t\t/**\n\t\t * Strength of the iridescence RGB color shift effect, represented by an index-of-refraction.\n\t\t * Between `1.0` to `2.333`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1.3\n\t\t */\n\t\tthis.iridescenceIOR = 1.3;\n\n\t\t/**\n\t\t *Array of exactly 2 elements, specifying minimum and maximum thickness of the iridescence layer.\n\t\t Thickness of iridescence layer has an equivalent effect of the one `thickness` has on `ior`.\n\t\t *\n\t\t * @type {Array}\n\t\t * @default [100,400]\n\t\t */\n\t\tthis.iridescenceThicknessRange = [ 100, 400 ];\n\n\t\t/**\n\t\t * A texture that defines the thickness of the iridescence layer, stored in the green channel.\n\t\t * Minimum and maximum values of thickness are defined by `iridescenceThicknessRange` array:\n\t\t * - `0.0` in the green channel will result in thickness equal to first element of the array.\n\t\t * - `1.0` in the green channel will result in thickness equal to second element of the array.\n\t\t * - Values in-between will linearly interpolate between the elements of the array.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.iridescenceThicknessMap = null;\n\n\t\t/**\n\t\t * The sheen tint.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.sheenColor = new Color( 0x000000 );\n\n\t\t/**\n\t\t * The RGB channels of this texture are multiplied against `sheenColor`, for per-pixel control\n\t\t * over sheen tint.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.sheenColorMap = null;\n\n\t\t/**\n\t\t * Roughness of the sheen layer, from `0.0` to `1.0`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.sheenRoughness = 1.0;\n\n\t\t/**\n\t\t * The alpha channel of this texture is multiplied against `sheenRoughness`, for per-pixel control\n\t\t * over sheen roughness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.sheenRoughnessMap = null;\n\n\t\t/**\n\t\t * The red channel of this texture is multiplied against `transmission`, for per-pixel control over\n\t\t * optical transparency.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.transmissionMap = null;\n\n\t\t/**\n\t\t * The thickness of the volume beneath the surface. The value is given in the\n\t\t * coordinate space of the mesh. If the value is `0` the material is\n\t\t * thin-walled. Otherwise the material is a volume boundary.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.thickness = 0;\n\n\t\t/**\n\t\t * A texture that defines the thickness, stored in the green channel. This will\n\t\t * be multiplied by `thickness`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.thicknessMap = null;\n\n\t\t/**\n\t\t * Density of the medium given as the average distance that light travels in\n\t\t * the medium before interacting with a particle. The value is given in world\n\t\t * space units, and must be greater than zero.\n\t\t *\n\t\t * @type {number}\n\t\t * @default Infinity\n\t\t */\n\t\tthis.attenuationDistance = Infinity;\n\n\t\t/**\n\t\t * The color that white light turns into due to absorption when reaching the\n\t\t * attenuation distance.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.attenuationColor = new Color( 1, 1, 1 );\n\n\t\t/**\n\t\t * A float that scales the amount of specular reflection for non-metals only.\n\t\t * When set to zero, the model is effectively Lambertian. From `0.0` to `1.0`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.specularIntensity = 1.0;\n\n\t\t/**\n\t\t * The alpha channel of this texture is multiplied against `specularIntensity`,\n\t\t * for per-pixel control over specular intensity.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.specularIntensityMap = null;\n\n\t\t/**\n\t\t * Tints the specular reflection at normal incidence for non-metals only.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.specularColor = new Color( 1, 1, 1 );\n\n\t\t/**\n\t\t * The RGB channels of this texture are multiplied against `specularColor`,\n\t\t * for per-pixel control over specular color.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\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\t/**\n\t * The anisotropy strength.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * Represents the intensity of the clear coat layer, from `0.0` to `1.0`. Use\n\t * clear coat related properties to enable multilayer materials that have a\n\t * thin translucent layer over the base layer.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * The intensity of the iridescence layer, simulating RGB color shift based on the angle between\n\t * the surface and the viewer, from `0.0` to `1.0`.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * Defines the strength of the angular separation of colors (chromatic aberration) transmitting\n\t * through a relatively clear volume. Any value zero or larger is valid, the typical range of\n\t * realistic values is `[0, 1]`. This property can be only be used with transmissive objects.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * The intensity of the sheen layer, from `0.0` to `1.0`.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * Degree of transmission (or optical transparency), from `0.0` to `1.0`.\n\t *\n\t * Thin, transparent or semitransparent, plastic or glass materials remain\n\t * largely reflective even if they are fully transmissive. The transmission\n\t * property can be used to model these materials.\n\t *\n\t * When transmission is non-zero, `opacity` should be set to `1`.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\n/**\n * A material for shiny surfaces with specular highlights.\n *\n * The material uses a non-physically based [Blinn-Phong]{@link https://en.wikipedia.org/wiki/Blinn-Phong_shading_model}\n * model for calculating reflectance. Unlike the Lambertian model used in the\n * {@link MeshLambertMaterial} this can simulate shiny surfaces with specular\n * highlights (such as varnished wood). `MeshPhongMaterial` uses per-fragment shading.\n *\n * Performance will generally be greater when using this material over the\n * {@link MeshStandardMaterial} or {@link MeshPhysicalMaterial}, at the cost of\n * some graphical accuracy.\n *\n * @augments Material\n */\nclass MeshPhongMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh phong material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshPhongMaterial = true;\n\n\t\tthis.type = 'MeshPhongMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\t/**\n\t\t * Specular color of the material. The default color is set to `0x111111` (very dark grey)\n\t\t *\n\t\t * This defines how shiny the material is and the color of its shine.\n\t\t *\n\t\t * @type {Color}\n\t\t */\n\t\tthis.specular = new Color( 0x111111 );\n\n\t\t/**\n\t\t * How shiny the specular highlight is; a higher value gives a sharper highlight.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 30\n\t\t */\n\t\tthis.shininess = 30;\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The light map. Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.lightMap = null;\n\n\t\t/**\n\t\t * Intensity of the baked light.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\t/**\n\t\t * The red channel of this texture is used as the ambient occlusion map.\n\t\t * Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.aoMap = null;\n\n\t\t/**\n\t\t * Intensity of the ambient occlusion effect. Range is `[0,1]`, where `0`\n\t\t * disables ambient occlusion. Where intensity is `1` and the AO map's\n\t\t * red channel is also `1`, ambient light is fully occluded on a surface.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\t/**\n\t\t * Emissive (light) color of the material, essentially a solid color\n\t\t * unaffected by other lighting.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.emissive = new Color( 0x000000 );\n\n\t\t/**\n\t\t * Intensity of the emissive light. Modulates the emissive color.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.emissiveIntensity = 1.0;\n\n\t\t/**\n\t\t * Set emissive (glow) map. The emissive map color is modulated by the\n\t\t * emissive color and the emissive intensity. If you have an emissive map,\n\t\t * be sure to set the emissive color to something other than black.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.emissiveMap = null;\n\n\t\t/**\n\t\t * The texture to create a bump map. The black and white values map to the\n\t\t * perceived depth in relation to the lights. Bump doesn't actually affect\n\t\t * the geometry of the object, only the lighting. If a normal map is defined\n\t\t * this will be ignored.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.bumpMap = null;\n\n\t\t/**\n\t\t * How much the bump map affects the material. Typical range is `[0,1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.bumpScale = 1;\n\n\t\t/**\n\t\t * The texture to create a normal map. The RGB values affect the surface\n\t\t * normal for each pixel fragment and change the way the color is lit. Normal\n\t\t * maps do not change the actual shape of the surface, only the lighting. In\n\t\t * case the material has a normal map authored using the left handed\n\t\t * convention, the `y` component of `normalScale` should be negated to compensate\n\t\t * for the different handedness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.normalMap = null;\n\n\t\t/**\n\t\t * The type of normal map.\n\t\t *\n\t\t * @type {(TangentSpaceNormalMap|ObjectSpaceNormalMap)}\n\t\t * @default TangentSpaceNormalMap\n\t\t */\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\n\t\t/**\n\t\t * How much the normal map affects the material. Typical value range is `[0,1]`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementBias = 0;\n\n\t\t/**\n\t\t * The specular map value affects both how much the specular surface\n\t\t * highlight contributes and how much of the environment map affects the\n\t\t * surface.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.specularMap = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * The environment map.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.envMap = null;\n\n\t\t/**\n\t\t * The rotation of the environment map in radians.\n\t\t *\n\t\t * @type {Euler}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.envMapRotation = new Euler();\n\n\t\t/**\n\t\t * How to combine the result of the surface's color with the environment map, if any.\n\t\t *\n\t\t * When set to `MixOperation`, the {@link MeshBasicMaterial#reflectivity} is used to\n\t\t * blend between the two colors.\n\t\t *\n\t\t * @type {(MultiplyOperation|MixOperation|AddOperation)}\n\t\t * @default MultiplyOperation\n\t\t */\n\t\tthis.combine = MultiplyOperation;\n\n\t\t/**\n\t\t * How much the environment map affects the surface.\n\t\t * The valid range is between `0` (no reflections) and `1` (full reflections).\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.reflectivity = 1;\n\n\t\t/**\n\t\t * The index of refraction (IOR) of air (approximately 1) divided by the\n\t\t * index of refraction of the material. It is used with environment mapping\n\t\t * modes {@link CubeRefractionMapping} and {@link EquirectangularRefractionMapping}.\n\t\t * The refraction ratio should not exceed `1`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.98\n\t\t */\n\t\tthis.refractionRatio = 0.98;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.wireframeLinewidth = 1;\n\n\t\t/**\n\t\t * Defines appearance of wireframe ends.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinecap = 'round';\n\n\t\t/**\n\t\t * Defines appearance of wireframe joints.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\t/**\n\t\t * Whether the material is rendered with flat shading or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flatShading = false;\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * A material implementing toon shading.\n *\n * @augments Material\n */\nclass MeshToonMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh toon material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshToonMaterial = true;\n\n\t\tthis.defines = { 'TOON': '' };\n\n\t\tthis.type = 'MeshToonMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff );\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * Gradient map for toon shading. It's required to set\n\t\t * {@link Texture#minFilter} and {@link Texture#magFilter} to {@linkNearestFilter}\n\t\t * when using this type of texture.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.gradientMap = null;\n\n\t\t/**\n\t\t * The light map. Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.lightMap = null;\n\n\t\t/**\n\t\t * Intensity of the baked light.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\t/**\n\t\t * The red channel of this texture is used as the ambient occlusion map.\n\t\t * Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.aoMap = null;\n\n\t\t/**\n\t\t * Intensity of the ambient occlusion effect. Range is `[0,1]`, where `0`\n\t\t * disables ambient occlusion. Where intensity is `1` and the AO map's\n\t\t * red channel is also `1`, ambient light is fully occluded on a surface.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\t/**\n\t\t * Emissive (light) color of the material, essentially a solid color\n\t\t * unaffected by other lighting.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.emissive = new Color( 0x000000 );\n\n\t\t/**\n\t\t * Intensity of the emissive light. Modulates the emissive color.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.emissiveIntensity = 1.0;\n\n\t\t/**\n\t\t * Set emissive (glow) map. The emissive map color is modulated by the\n\t\t * emissive color and the emissive intensity. If you have an emissive map,\n\t\t * be sure to set the emissive color to something other than black.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.emissiveMap = null;\n\n\t\t/**\n\t\t * The texture to create a bump map. The black and white values map to the\n\t\t * perceived depth in relation to the lights. Bump doesn't actually affect\n\t\t * the geometry of the object, only the lighting. If a normal map is defined\n\t\t * this will be ignored.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.bumpMap = null;\n\n\t\t/**\n\t\t * How much the bump map affects the material. Typical range is `[0,1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.bumpScale = 1;\n\n\t\t/**\n\t\t * The texture to create a normal map. The RGB values affect the surface\n\t\t * normal for each pixel fragment and change the way the color is lit. Normal\n\t\t * maps do not change the actual shape of the surface, only the lighting. In\n\t\t * case the material has a normal map authored using the left handed\n\t\t * convention, the `y` component of `normalScale` should be negated to compensate\n\t\t * for the different handedness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.normalMap = null;\n\n\t\t/**\n\t\t * The type of normal map.\n\t\t *\n\t\t * @type {(TangentSpaceNormalMap|ObjectSpaceNormalMap)}\n\t\t * @default TangentSpaceNormalMap\n\t\t */\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\n\t\t/**\n\t\t * How much the normal map affects the material. Typical value range is `[0,1]`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementBias = 0;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.wireframeLinewidth = 1;\n\n\t\t/**\n\t\t * Defines appearance of wireframe ends.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinecap = 'round';\n\n\t\t/**\n\t\t * Defines appearance of wireframe joints.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * A material that maps the normal vectors to RGB colors.\n *\n * @augments Material\n */\nclass MeshNormalMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh normal material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshNormalMaterial = true;\n\n\t\tthis.type = 'MeshNormalMaterial';\n\n\t\t/**\n\t\t * The texture to create a bump map. The black and white values map to the\n\t\t * perceived depth in relation to the lights. Bump doesn't actually affect\n\t\t * the geometry of the object, only the lighting. If a normal map is defined\n\t\t * this will be ignored.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.bumpMap = null;\n\n\t\t/**\n\t\t * How much the bump map affects the material. Typical range is `[0,1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.bumpScale = 1;\n\n\t\t/**\n\t\t * The texture to create a normal map. The RGB values affect the surface\n\t\t * normal for each pixel fragment and change the way the color is lit. Normal\n\t\t * maps do not change the actual shape of the surface, only the lighting. In\n\t\t * case the material has a normal map authored using the left handed\n\t\t * convention, the `y` component of `normalScale` should be negated to compensate\n\t\t * for the different handedness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.normalMap = null;\n\n\t\t/**\n\t\t * The type of normal map.\n\t\t *\n\t\t * @type {(TangentSpaceNormalMap|ObjectSpaceNormalMap)}\n\t\t * @default TangentSpaceNormalMap\n\t\t */\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\n\t\t/**\n\t\t * How much the normal map affects the material. Typical value range is `[0,1]`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementBias = 0;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * WebGL and WebGPU ignore this property and always render\n\t\t * 1 pixel wide lines.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.wireframeLinewidth = 1;\n\n\t\t/**\n\t\t * Whether the material is rendered with flat shading or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\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\n/**\n * A material for non-shiny surfaces, without specular highlights.\n *\n * The material uses a non-physically based [Lambertian]{@link https://en.wikipedia.org/wiki/Lambertian_reflectance}\n * model for calculating reflectance. This can simulate some surfaces (such\n * as untreated wood or stone) well, but cannot simulate shiny surfaces with\n * specular highlights (such as varnished wood). `MeshLambertMaterial` uses per-fragment\n * shading.\n *\n * Due to the simplicity of the reflectance and illumination models,\n * performance will be greater when using this material over the\n * {@link MeshPhongMaterial}, {@link MeshStandardMaterial} or\n * {@link MeshPhysicalMaterial}, at the cost of some graphical accuracy.\n *\n * @augments Material\n */\nclass MeshLambertMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh lambert material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshLambertMaterial = true;\n\n\t\tthis.type = 'MeshLambertMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The light map. Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.lightMap = null;\n\n\t\t/**\n\t\t * Intensity of the baked light.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\t/**\n\t\t * The red channel of this texture is used as the ambient occlusion map.\n\t\t * Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.aoMap = null;\n\n\t\t/**\n\t\t * Intensity of the ambient occlusion effect. Range is `[0,1]`, where `0`\n\t\t * disables ambient occlusion. Where intensity is `1` and the AO map's\n\t\t * red channel is also `1`, ambient light is fully occluded on a surface.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\t/**\n\t\t * Emissive (light) color of the material, essentially a solid color\n\t\t * unaffected by other lighting.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.emissive = new Color( 0x000000 );\n\n\t\t/**\n\t\t * Intensity of the emissive light. Modulates the emissive color.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.emissiveIntensity = 1.0;\n\n\t\t/**\n\t\t * Set emissive (glow) map. The emissive map color is modulated by the\n\t\t * emissive color and the emissive intensity. If you have an emissive map,\n\t\t * be sure to set the emissive color to something other than black.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.emissiveMap = null;\n\n\t\t/**\n\t\t * The texture to create a bump map. The black and white values map to the\n\t\t * perceived depth in relation to the lights. Bump doesn't actually affect\n\t\t * the geometry of the object, only the lighting. If a normal map is defined\n\t\t * this will be ignored.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.bumpMap = null;\n\n\t\t/**\n\t\t * How much the bump map affects the material. Typical range is `[0,1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.bumpScale = 1;\n\n\t\t/**\n\t\t * The texture to create a normal map. The RGB values affect the surface\n\t\t * normal for each pixel fragment and change the way the color is lit. Normal\n\t\t * maps do not change the actual shape of the surface, only the lighting. In\n\t\t * case the material has a normal map authored using the left handed\n\t\t * convention, the `y` component of `normalScale` should be negated to compensate\n\t\t * for the different handedness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.normalMap = null;\n\n\t\t/**\n\t\t * The type of normal map.\n\t\t *\n\t\t * @type {(TangentSpaceNormalMap|ObjectSpaceNormalMap)}\n\t\t * @default TangentSpaceNormalMap\n\t\t */\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\n\t\t/**\n\t\t * How much the normal map affects the material. Typical value range is `[0,1]`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementBias = 0;\n\n\t\t/**\n\t\t * Specular map used by the material.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.specularMap = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * The environment map.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.envMap = null;\n\n\t\t/**\n\t\t * The rotation of the environment map in radians.\n\t\t *\n\t\t * @type {Euler}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.envMapRotation = new Euler();\n\n\t\t/**\n\t\t * How to combine the result of the surface's color with the environment map, if any.\n\t\t *\n\t\t * When set to `MixOperation`, the {@link MeshBasicMaterial#reflectivity} is used to\n\t\t * blend between the two colors.\n\t\t *\n\t\t * @type {(MultiplyOperation|MixOperation|AddOperation)}\n\t\t * @default MultiplyOperation\n\t\t */\n\t\tthis.combine = MultiplyOperation;\n\n\t\t/**\n\t\t * How much the environment map affects the surface.\n\t\t * The valid range is between `0` (no reflections) and `1` (full reflections).\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.reflectivity = 1;\n\n\t\t/**\n\t\t * The index of refraction (IOR) of air (approximately 1) divided by the\n\t\t * index of refraction of the material. It is used with environment mapping\n\t\t * modes {@link CubeRefractionMapping} and {@link EquirectangularRefractionMapping}.\n\t\t * The refraction ratio should not exceed `1`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.98\n\t\t */\n\t\tthis.refractionRatio = 0.98;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.wireframeLinewidth = 1;\n\n\t\t/**\n\t\t * Defines appearance of wireframe ends.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinecap = 'round';\n\n\t\t/**\n\t\t * Defines appearance of wireframe joints.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\t/**\n\t\t * Whether the material is rendered with flat shading or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flatShading = false;\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * A material for drawing geometry by depth. Depth is based off of the camera\n * near and far plane. White is nearest, black is farthest.\n *\n * @augments Material\n */\nclass MeshDepthMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh depth material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshDepthMaterial = true;\n\n\t\tthis.type = 'MeshDepthMaterial';\n\n\t\t/**\n\t\t * Type for depth packing.\n\t\t *\n\t\t * @type {(BasicDepthPacking|RGBADepthPacking|RGBDepthPacking|RGDepthPacking)}\n\t\t * @default BasicDepthPacking\n\t\t */\n\t\tthis.depthPacking = BasicDepthPacking;\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementBias = 0;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * WebGL and WebGPU ignore this property and always render\n\t\t * 1 pixel wide lines.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\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\n/**\n * A material used internally for implementing shadow mapping with\n * point lights.\n *\n * Can also be used to customize the shadow casting of an object by assigning\n * an instance of `MeshDistanceMaterial` to {@link Object3D#customDistanceMaterial}.\n * The following examples demonstrates this approach in order to ensure\n * transparent parts of objects do not cast shadows.\n *\n * @augments Material\n */\nclass MeshDistanceMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh distance material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshDistanceMaterial = true;\n\n\t\tthis.type = 'MeshDistanceMaterial';\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\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\n/**\n * This material is defined by a MatCap (or Lit Sphere) texture, which encodes the\n * material color and shading.\n *\n * `MeshMatcapMaterial` does not respond to lights since the matcap image file encodes\n * baked lighting. It will cast a shadow onto an object that receives shadows\n * (and shadow clipping works), but it will not self-shadow or receive\n * shadows.\n *\n * @augments Material\n */\nclass MeshMatcapMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh matcap material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshMatcapMaterial = true;\n\n\t\tthis.defines = { 'MATCAP': '' };\n\n\t\tthis.type = 'MeshMatcapMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\t/**\n\t\t * The matcap map.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.matcap = null;\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The texture to create a bump map. The black and white values map to the\n\t\t * perceived depth in relation to the lights. Bump doesn't actually affect\n\t\t * the geometry of the object, only the lighting. If a normal map is defined\n\t\t * this will be ignored.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.bumpMap = null;\n\n\t\t/**\n\t\t * How much the bump map affects the material. Typical range is `[0,1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.bumpScale = 1;\n\n\t\t/**\n\t\t * The texture to create a normal map. The RGB values affect the surface\n\t\t * normal for each pixel fragment and change the way the color is lit. Normal\n\t\t * maps do not change the actual shape of the surface, only the lighting. In\n\t\t * case the material has a normal map authored using the left handed\n\t\t * convention, the `y` component of `normalScale` should be negated to compensate\n\t\t * for the different handedness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.normalMap = null;\n\n\t\t/**\n\t\t * The type of normal map.\n\t\t *\n\t\t * @type {(TangentSpaceNormalMap|ObjectSpaceNormalMap)}\n\t\t * @default TangentSpaceNormalMap\n\t\t */\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\n\t\t/**\n\t\t * How much the normal map affects the material. Typical value range is `[0,1]`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementBias = 0;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * Whether the material is rendered with flat shading or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flatShading = false;\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * A material for rendering line primitives.\n *\n * Materials define the appearance of renderable 3D objects.\n *\n * ```js\n * const material = new THREE.LineDashedMaterial( {\n * \tcolor: 0xffffff,\n * \tscale: 1,\n * \tdashSize: 3,\n * \tgapSize: 1,\n * } );\n * ```\n *\n * @augments LineBasicMaterial\n */\nclass LineDashedMaterial extends LineBasicMaterial {\n\n\t/**\n\t * Constructs a new line dashed material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLineDashedMaterial = true;\n\t\tthis.type = 'LineDashedMaterial';\n\n\t\t/**\n\t\t * The scale of the dashed part of a line.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.scale = 1;\n\n\t\t/**\n\t\t * The size of the dash. This is both the gap with the stroke.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 3\n\t\t */\n\t\tthis.dashSize = 3;\n\n\t\t/**\n\t\t * The size of the gap.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\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/**\n * Converts an array to a specific type.\n *\n * @param {TypedArray|Array} array - The array to convert.\n * @param {TypedArray.constructor} type - The constructor of a typed array that defines the new type.\n * @return {TypedArray} The converted array.\n */\nfunction convertArray( array, type ) {\n\n\tif ( ! array || 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\n/**\n * Returns `true` if the given object is a typed array.\n *\n * @param {any} object - The object to check.\n * @return {boolean} Whether the given object is a typed array.\n */\nfunction isTypedArray( object ) {\n\n\treturn ArrayBuffer.isView( object ) && ! ( object instanceof DataView );\n\n}\n\n/**\n * Returns an array by which times and values can be sorted.\n *\n * @param {Array} times - The keyframe time values.\n * @return {Array} The array.\n */\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/**\n * Sorts the given array by the previously computed order via `getKeyframeOrder()`.\n *\n * @param {Array} values - The values to sort.\n * @param {number} stride - The stride.\n * @param {Array} order - The sort order.\n * @return {Array} The sorted values.\n */\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/**\n * Used for parsing AOS keyframe formats.\n *\n * @param {Array} jsonKeys - A list of JSON keyframes.\n * @param {Array} times - This array will be filled with keyframe times by this function.\n * @param {Array} values - This array will be filled with keyframe values by this function.\n * @param {string} valuePropertyName - The name of the property to use.\n */\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( ...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\n/**\n * Creates a new clip, containing only the segment of the original clip between the given frames.\n *\n * @param {AnimationClip} sourceClip - The values to sort.\n * @param {string} name - The name of the clip.\n * @param {number} startFrame - The start frame.\n * @param {number} endFrame - The end frame.\n * @param {number} [fps=30] - The FPS.\n * @return {AnimationClip} The new sub clip.\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\n/**\n * Converts the keyframes of the given animation clip to an additive format.\n *\n * @param {AnimationClip} targetClip - The clip to make additive.\n * @param {number} [referenceFrame=0] - The reference frame.\n * @param {AnimationClip} [referenceClip=targetClip] - The reference clip.\n * @param {number} [fps=30] - The FPS.\n * @return {AnimationClip} The updated clip which is now additive.\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\n/**\n * A class with various methods to assist with animations.\n *\n * @hideconstructor\n */\nclass AnimationUtils {\n\n\t/**\n\t * Converts an array to a specific type\n\t *\n\t * @static\n\t * @param {TypedArray|Array} array - The array to convert.\n\t * @param {TypedArray.constructor} type - The constructor of a type array.\n\t * @return {TypedArray} The converted array\n\t */\n\tstatic convertArray( array, type ) {\n\n\t\treturn convertArray( array, type );\n\n\t}\n\n\t/**\n\t * Returns `true` if the given object is a typed array.\n\t *\n\t * @static\n\t * @param {any} object - The object to check.\n\t * @return {boolean} Whether the given object is a typed array.\n\t */\n\tstatic isTypedArray( object ) {\n\n\t\treturn isTypedArray( object );\n\n\t}\n\n\t/**\n\t * Returns an array by which times and values can be sorted.\n\t *\n\t * @static\n\t * @param {Array} times - The keyframe time values.\n\t * @return {Array} The array.\n\t */\n\tstatic getKeyframeOrder( times ) {\n\n\t\treturn getKeyframeOrder( times );\n\n\t}\n\n\t/**\n\t * Sorts the given array by the previously computed order via `getKeyframeOrder()`.\n\t *\n\t * @static\n\t * @param {Array} values - The values to sort.\n\t * @param {number} stride - The stride.\n\t * @param {Array} order - The sort order.\n\t * @return {Array} The sorted values.\n\t */\n\tstatic sortedArray( values, stride, order ) {\n\n\t\treturn sortedArray( values, stride, order );\n\n\t}\n\n\t/**\n\t * Used for parsing AOS keyframe formats.\n\t *\n\t * @static\n\t * @param {Array} jsonKeys - A list of JSON keyframes.\n\t * @param {Array} times - This array will be filled with keyframe times by this method.\n\t * @param {Array} values - This array will be filled with keyframe values by this method.\n\t * @param {string} valuePropertyName - The name of the property to use.\n\t */\n\tstatic flattenJSON( jsonKeys, times, values, valuePropertyName ) {\n\n\t\tflattenJSON( jsonKeys, times, values, valuePropertyName );\n\n\t}\n\n\t/**\n\t * Creates a new clip, containing only the segment of the original clip between the given frames.\n\t *\n\t * @static\n\t * @param {AnimationClip} sourceClip - The values to sort.\n\t * @param {string} name - The name of the clip.\n\t * @param {number} startFrame - The start frame.\n\t * @param {number} endFrame - The end frame.\n\t * @param {number} [fps=30] - The FPS.\n\t * @return {AnimationClip} The new sub clip.\n\t */\n\tstatic subclip( sourceClip, name, startFrame, endFrame, fps = 30 ) {\n\n\t\treturn subclip( sourceClip, name, startFrame, endFrame, fps );\n\n\t}\n\n\t/**\n\t * Converts the keyframes of the given animation clip to an additive format.\n\t *\n\t * @static\n\t * @param {AnimationClip} targetClip - The clip to make additive.\n\t * @param {number} [referenceFrame=0] - The reference frame.\n\t * @param {AnimationClip} [referenceClip=targetClip] - The reference clip.\n\t * @param {number} [fps=30] - The FPS.\n\t * @return {AnimationClip} The updated clip which is now additive.\n\t */\n\tstatic makeClipAdditive( targetClip, referenceFrame = 0, referenceClip = targetClip, fps = 30 ) {\n\n\t\treturn makeClipAdditive( targetClip, referenceFrame, referenceClip, fps );\n\n\t}\n\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: {@link http://www.oodesign.com/template-method-pattern.html}\n *\n * @abstract\n */\nclass Interpolant {\n\n\t/**\n\t * Constructs a new interpolant.\n\t *\n\t * @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.\n\t * @param {TypedArray} sampleValues - The sample values.\n\t * @param {number} sampleSize - The sample size\n\t * @param {TypedArray} [resultBuffer] - The result buffer.\n\t */\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\t/**\n\t\t * The parameter positions.\n\t\t *\n\t\t * @type {TypedArray}\n\t\t */\n\t\tthis.parameterPositions = parameterPositions;\n\n\t\t/**\n\t\t * A cache index.\n\t\t *\n\t\t * @private\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis._cachedIndex = 0;\n\n\t\t/**\n\t\t * The result buffer.\n\t\t *\n\t\t * @type {TypedArray}\n\t\t */\n\t\tthis.resultBuffer = resultBuffer !== undefined ? resultBuffer : new sampleValues.constructor( sampleSize );\n\n\t\t/**\n\t\t * The sample values.\n\t\t *\n\t\t * @type {TypedArray}\n\t\t */\n\t\tthis.sampleValues = sampleValues;\n\n\t\t/**\n\t\t * The value size.\n\t\t *\n\t\t * @type {TypedArray}\n\t\t */\n\t\tthis.valueSize = sampleSize;\n\n\t\t/**\n\t\t * The interpolation settings.\n\t\t *\n\t\t * @type {?Object}\n\t\t * @default null\n\t\t */\n\t\tthis.settings = null;\n\n\t\t/**\n\t\t * The default settings object.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.DefaultSettings_ = {};\n\n\t}\n\n\t/**\n\t * Evaluate the interpolant at position `t`.\n\t *\n\t * @param {number} t - The interpolation factor.\n\t * @return {TypedArray} The result buffer.\n\t */\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\t/**\n\t * Returns the interpolation settings.\n\t *\n\t * @return {Object} The interpolation settings.\n\t */\n\tgetSettings_() {\n\n\t\treturn this.settings || this.DefaultSettings_;\n\n\t}\n\n\t/**\n\t * Copies a sample value to the result buffer.\n\t *\n\t * @param {number} index - An index into the sample value buffer.\n\t * @return {TypedArray} The result buffer.\n\t */\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/**\n\t * Copies a sample value to the result buffer.\n\t *\n\t * @abstract\n\t * @param {number} i1 - An index into the sample value buffer.\n\t * @param {number} t0 - The previous interpolation factor.\n\t * @param {number} t - The current interpolation factor.\n\t * @param {number} t1 - The next interpolation factor.\n\t * @return {TypedArray} The result buffer.\n\t */\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\t/**\n\t * Optional method that is executed when the interval has changed.\n\t *\n\t * @param {number} i1 - An index into the sample value buffer.\n\t * @param {number} t0 - The previous interpolation factor.\n\t * @param {number} t - The current interpolation factor.\n\t */\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 * @augments Interpolant\n */\nclass CubicInterpolant extends Interpolant {\n\n\t/**\n\t * Constructs a new cubic interpolant.\n\t *\n\t * @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.\n\t * @param {TypedArray} sampleValues - The sample values.\n\t * @param {number} sampleSize - The sample size\n\t * @param {TypedArray} [resultBuffer] - The result buffer.\n\t */\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\n/**\n * A basic linear interpolant.\n *\n * @augments Interpolant\n */\nclass LinearInterpolant extends Interpolant {\n\n\t/**\n\t * Constructs a new linear interpolant.\n\t *\n\t * @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.\n\t * @param {TypedArray} sampleValues - The sample values.\n\t * @param {number} sampleSize - The sample size\n\t * @param {TypedArray} [resultBuffer] - The result buffer.\n\t */\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 * Interpolant that evaluates to the sample value at the position preceding\n * the parameter.\n *\n * @augments Interpolant\n */\nclass DiscreteInterpolant extends Interpolant {\n\n\t/**\n\t * Constructs a new discrete interpolant.\n\t *\n\t * @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.\n\t * @param {TypedArray} sampleValues - The sample values.\n\t * @param {number} sampleSize - The sample size\n\t * @param {TypedArray} [resultBuffer] - The result buffer.\n\t */\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\n/**\n * Represents s a timed sequence of keyframes, which are composed of lists of\n * times and related values, and which are used to animate a specific property\n * of an object.\n */\nclass KeyframeTrack {\n\n\t/**\n\t * Constructs a new keyframe track.\n\t *\n\t * @param {string} name - The keyframe track's name.\n\t * @param {Array} times - A list of keyframe times.\n\t * @param {Array} values - A list of keyframe values.\n\t * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.\n\t */\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\t/**\n\t\t * The track's name can refer to morph targets or bones or\n\t\t * possibly other values within an animated object. See {@link PropertyBinding#parseTrackName}\n\t\t * for the forms of strings that can be parsed for property binding.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = name;\n\n\t\t/**\n\t\t * The keyframe times.\n\t\t *\n\t\t * @type {Float32Array}\n\t\t */\n\t\tthis.times = convertArray( times, this.TimeBufferType );\n\n\t\t/**\n\t\t * The keyframe values.\n\t\t *\n\t\t * @type {Float32Array}\n\t\t */\n\t\tthis.values = convertArray( values, this.ValueBufferType );\n\n\t\tthis.setInterpolation( interpolation || this.DefaultInterpolation );\n\n\t}\n\n\t/**\n\t * Converts the keyframe track to JSON.\n\t *\n\t * @static\n\t * @param {KeyframeTrack} track - The keyframe track to serialize.\n\t * @return {Object} The serialized keyframe track as JSON.\n\t */\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\t/**\n\t * Factory method for creating a new discrete interpolant.\n\t *\n\t * @static\n\t * @param {TypedArray} [result] - The result buffer.\n\t * @return {DiscreteInterpolant} The new interpolant.\n\t */\n\tInterpolantFactoryMethodDiscrete( result ) {\n\n\t\treturn new DiscreteInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\t/**\n\t * Factory method for creating a new linear interpolant.\n\t *\n\t * @static\n\t * @param {TypedArray} [result] - The result buffer.\n\t * @return {LinearInterpolant} The new interpolant.\n\t */\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new LinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\t/**\n\t * Factory method for creating a new smooth interpolant.\n\t *\n\t * @static\n\t * @param {TypedArray} [result] - The result buffer.\n\t * @return {CubicInterpolant} The new interpolant.\n\t */\n\tInterpolantFactoryMethodSmooth( result ) {\n\n\t\treturn new CubicInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\t/**\n\t * Defines the interpolation factor method for this keyframe track.\n\t *\n\t * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} interpolation - The interpolation type.\n\t * @return {KeyframeTrack} A reference to this keyframe track.\n\t */\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\t/**\n\t * Returns the current interpolation type.\n\t *\n\t * @return {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} The interpolation type.\n\t */\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\t/**\n\t * Returns the value size.\n\t *\n\t * @return {number} The value size.\n\t */\n\tgetValueSize() {\n\n\t\treturn this.values.length / this.times.length;\n\n\t}\n\n\t/**\n\t * Moves all keyframes either forward or backward in time.\n\t *\n\t * @param {number} timeOffset - The offset to move the time values.\n\t * @return {KeyframeTrack} A reference to this keyframe track.\n\t */\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/**\n\t * Scale all keyframe times by a factor (useful for frame - seconds conversions).\n\t *\n\t * @param {number} timeScale - The time scale.\n\t * @return {KeyframeTrack} A reference to this keyframe track.\n\t */\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/**\n\t * Removes keyframes before and after animation without changing any values within the defined time range.\n\t *\n\t * Note: The method does not shift around keys to the start of the track time, because for interpolated\n\t * keys this will change their values\n\t *\n\t * @param {number} startTime - The start time.\n\t * @param {number} endTime - The end time.\n\t * @return {KeyframeTrack} A reference to this keyframe track.\n\t */\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/**\n\t * Performs minimal validation on the keyframe track. Returns `true` if the values\n\t * are valid.\n\t *\n\t * @return {boolean} Whether the keyframes are valid or not.\n\t */\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/**\n\t * Optimizes this keyframe track by removing equivalent sequential keys (which are\n\t * common in morph target sequences).\n\t *\n\t * @return {AnimationClip} A reference to this animation clip.\n\t */\n\toptimize() {\n\n\t\t// (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0)\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\t/**\n\t * Returns a new keyframe track with copied values from this instance.\n\t *\n\t * @return {KeyframeTrack} A clone of this instance.\n\t */\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\n/**\n * The value type name.\n *\n * @type {String}\n * @default ''\n */\nKeyframeTrack.prototype.ValueTypeName = '';\n\n/**\n * The time buffer type of this keyframe track.\n *\n * @type {TypedArray|Array}\n * @default Float32Array.constructor\n */\nKeyframeTrack.prototype.TimeBufferType = Float32Array;\n\n/**\n * The value buffer type of this keyframe track.\n *\n * @type {TypedArray|Array}\n * @default Float32Array.constructor\n */\nKeyframeTrack.prototype.ValueBufferType = Float32Array;\n\n/**\n * The default interpolation type of this keyframe track.\n *\n * @type {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)}\n * @default InterpolateLinear\n */\nKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;\n\n/**\n * A track for boolean keyframe values.\n *\n * @augments KeyframeTrack\n */\nclass BooleanKeyframeTrack extends KeyframeTrack {\n\n\t/**\n\t * Constructs a new boolean keyframe track.\n\t *\n\t * This keyframe track type has no `interpolation` parameter because the\n\t * interpolation is always discrete.\n\t *\n\t * @param {string} name - The keyframe track's name.\n\t * @param {Array} times - A list of keyframe times.\n\t * @param {Array} values - A list of keyframe values.\n\t */\n\tconstructor( name, times, values ) {\n\n\t\tsuper( name, times, values );\n\n\t}\n\n}\n\n/**\n * The value type name.\n *\n * @type {String}\n * @default 'bool'\n */\nBooleanKeyframeTrack.prototype.ValueTypeName = 'bool';\n\n/**\n * The value buffer type of this keyframe track.\n *\n * @type {TypedArray|Array}\n * @default Array.constructor\n */\nBooleanKeyframeTrack.prototype.ValueBufferType = Array;\n\n/**\n * The default interpolation type of this keyframe track.\n *\n * @type {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)}\n * @default InterpolateDiscrete\n */\nBooleanKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A track for color keyframe values.\n *\n * @augments KeyframeTrack\n */\nclass ColorKeyframeTrack extends KeyframeTrack {\n\n\t/**\n\t * Constructs a new color keyframe track.\n\t *\n\t * @param {string} name - The keyframe track's name.\n\t * @param {Array} times - A list of keyframe times.\n\t * @param {Array} values - A list of keyframe values.\n\t * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.\n\t */\n\tconstructor( name, times, values, interpolation ) {\n\n\t\tsuper( name, times, values, interpolation );\n\n\t}\n\n}\n\n/**\n * The value type name.\n *\n * @type {String}\n * @default 'color'\n */\nColorKeyframeTrack.prototype.ValueTypeName = 'color';\n\n/**\n * A track for numeric keyframe values.\n *\n * @augments KeyframeTrack\n */\nclass NumberKeyframeTrack extends KeyframeTrack {\n\n\t/**\n\t * Constructs a new number keyframe track.\n\t *\n\t * @param {string} name - The keyframe track's name.\n\t * @param {Array} times - A list of keyframe times.\n\t * @param {Array} values - A list of keyframe values.\n\t * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.\n\t */\n\tconstructor( name, times, values, interpolation ) {\n\n\t\tsuper( name, times, values, interpolation );\n\n\t}\n\n}\n\n/**\n * The value type name.\n *\n * @type {String}\n * @default 'number'\n */\nNumberKeyframeTrack.prototype.ValueTypeName = 'number';\n\n/**\n * Spherical linear unit quaternion interpolant.\n *\n * @augments Interpolant\n */\nclass QuaternionLinearInterpolant extends Interpolant {\n\n\t/**\n\t * Constructs a new SLERP interpolant.\n\t *\n\t * @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.\n\t * @param {TypedArray} sampleValues - The sample values.\n\t * @param {number} sampleSize - The sample size\n\t * @param {TypedArray} [resultBuffer] - The result buffer.\n\t */\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 for Quaternion keyframe values.\n *\n * @augments KeyframeTrack\n */\nclass QuaternionKeyframeTrack extends KeyframeTrack {\n\n\t/**\n\t * Constructs a new Quaternion keyframe track.\n\t *\n\t * @param {string} name - The keyframe track's name.\n\t * @param {Array} times - A list of keyframe times.\n\t * @param {Array} values - A list of keyframe values.\n\t * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.\n\t */\n\tconstructor( name, times, values, interpolation ) {\n\n\t\tsuper( name, times, values, interpolation );\n\n\t}\n\n\t/**\n\t * Overwritten so the method returns Quaternion based interpolant.\n\t *\n\t * @static\n\t * @param {TypedArray} [result] - The result buffer.\n\t * @return {QuaternionLinearInterpolant} The new interpolant.\n\t */\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new QuaternionLinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n}\n\n/**\n * The value type name.\n *\n * @type {String}\n * @default 'quaternion'\n */\nQuaternionKeyframeTrack.prototype.ValueTypeName = 'quaternion';\n// ValueBufferType is inherited\n// DefaultInterpolation is inherited;\nQuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A track for string keyframe values.\n *\n * @augments KeyframeTrack\n */\nclass StringKeyframeTrack extends KeyframeTrack {\n\n\t/**\n\t * Constructs a new string keyframe track.\n\t *\n\t * This keyframe track type has no `interpolation` parameter because the\n\t * interpolation is always discrete.\n\t *\n\t * @param {string} name - The keyframe track's name.\n\t * @param {Array} times - A list of keyframe times.\n\t * @param {Array} values - A list of keyframe values.\n\t */\n\tconstructor( name, times, values ) {\n\n\t\tsuper( name, times, values );\n\n\t}\n\n}\n\n/**\n * The value type name.\n *\n * @type {String}\n * @default 'string'\n */\nStringKeyframeTrack.prototype.ValueTypeName = 'string';\n\n/**\n * The value buffer type of this keyframe track.\n *\n * @type {TypedArray|Array}\n * @default Array.constructor\n */\nStringKeyframeTrack.prototype.ValueBufferType = Array;\n\n/**\n * The default interpolation type of this keyframe track.\n *\n * @type {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)}\n * @default InterpolateDiscrete\n */\nStringKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A track for vector keyframe values.\n *\n * @augments KeyframeTrack\n */\nclass VectorKeyframeTrack extends KeyframeTrack {\n\n\t/**\n\t * Constructs a new vector keyframe track.\n\t *\n\t * @param {string} name - The keyframe track's name.\n\t * @param {Array} times - A list of keyframe times.\n\t * @param {Array} values - A list of keyframe values.\n\t * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.\n\t */\n\tconstructor( name, times, values, interpolation ) {\n\n\t\tsuper( name, times, values, interpolation );\n\n\t}\n\n}\n\n/**\n * The value type name.\n *\n * @type {String}\n * @default 'vector'\n */\nVectorKeyframeTrack.prototype.ValueTypeName = 'vector';\n\n/**\n * A reusable set of keyframe tracks which represent an animation.\n */\nclass AnimationClip {\n\n\t/**\n\t * Constructs a new animation clip.\n\t *\n\t * Note: Instead of instantiating an AnimationClip directly with the constructor, you can\n\t * use the static interface of this class for creating clips. In most cases though, animation clips\n\t * will automatically be created by loaders when importing animated 3D assets.\n\t *\n\t * @param {string} [name=''] - The clip's name.\n\t * @param {number} [duration=-1] - The clip's duration in seconds. If a negative value is passed,\n\t * the duration will be calculated from the passed keyframes.\n\t * @param {Array} tracks - An array of keyframe tracks.\n\t * @param {(NormalAnimationBlendMode|AdditiveAnimationBlendMode)} [blendMode=NormalAnimationBlendMode] - Defines how the animation\n\t * is blended/combined when two or more animations are simultaneously played.\n\t */\n\tconstructor( name = '', duration = -1, tracks = [], blendMode = NormalAnimationBlendMode ) {\n\n\t\t/**\n\t\t * The clip's name.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = name;\n\n\t\t/**\n\t\t * An array of keyframe tracks.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.tracks = tracks;\n\n\t\t/**\n\t\t * The clip's duration in seconds.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.duration = duration;\n\n\t\t/**\n\t\t * Defines how the animation is blended/combined when two or more animations\n\t\t * are simultaneously played.\n\t\t *\n\t\t * @type {(NormalAnimationBlendMode|AdditiveAnimationBlendMode)}\n\t\t */\n\t\tthis.blendMode = blendMode;\n\n\t\t/**\n\t\t * The UUID of the animation clip.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t\t/**\n\t\t * An object that can be used to store custom data about the animation clip.\n\t\t * It should not hold references to functions as these will not be cloned.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.userData = {};\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\t/**\n\t * Factory method for creating an animation clip from the given JSON.\n\t *\n\t * @static\n\t * @param {Object} json - The serialized animation clip.\n\t * @return {AnimationClip} The new animation clip.\n\t */\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\tclip.userData = JSON.parse( json.userData || '{}' );\n\n\t\treturn clip;\n\n\t}\n\n\t/**\n\t * Serializes the given animation clip into JSON.\n\t *\n\t * @static\n\t * @param {AnimationClip} clip - The animation clip to serialize.\n\t * @return {Object} The JSON object.\n\t */\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\t\t\t'userData': JSON.stringify( clip.userData ),\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\t/**\n\t * Returns a new animation clip from the passed morph targets array of a\n\t * geometry, taking a name and the number of frames per second.\n\t *\n\t * Note: The fps parameter is required, but the animation speed can be\n\t * overridden via {@link AnimationAction#setDuration}.\n\t *\n\t * @static\n\t * @param {string} name - The name of the animation clip.\n\t * @param {Array} morphTargetSequence - A sequence of morph targets.\n\t * @param {number} fps - The Frames-Per-Second value.\n\t * @param {boolean} noLoop - Whether the clip should be no loop or not.\n\t * @return {AnimationClip} The new animation clip.\n\t */\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\t/**\n\t * Searches for an animation clip by name, taking as its first parameter\n\t * either an array of clips, or a mesh or geometry that contains an\n\t * array named \"animations\" property.\n\t *\n\t * @static\n\t * @param {(Array|Object3D)} objectOrClipArray - The array or object to search through.\n\t * @param {string} name - The name to search for.\n\t * @return {?AnimationClip} The found animation clip. Returns `null` if no clip has been found.\n\t */\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\t/**\n\t * Returns an array of new AnimationClips created from the morph target\n\t * sequences of a geometry, trying to sort morph target names into\n\t * animation-group-based patterns like \"Walk_001, Walk_002, Run_001, Run_002...\".\n\t *\n\t * See {@link MD2Loader#parse} as an example for how the method should be used.\n\t *\n\t * @static\n\t * @param {Array} morphTargets - A sequence of morph targets.\n\t * @param {number} fps - The Frames-Per-Second value.\n\t * @param {boolean} noLoop - Whether the clip should be no loop or not.\n\t * @return {Array} An array of new animation clips.\n\t */\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/**\n\t * Parses the `animation.hierarchy` format and returns a new animation clip.\n\t *\n\t * @static\n\t * @deprecated since r175.\n\t * @param {Object} animation - A serialized animation clip as JSON.\n\t * @param {Array} bones - An array of bones.\n\t * @return {?AnimationClip} The new animation clip.\n\t */\n\tstatic parseAnimation( animation, bones ) {\n\n\t\tconsole.warn( 'THREE.AnimationClip: parseAnimation() is deprecated and will be removed with r185' );\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\t/**\n\t * Sets the duration of this clip to the duration of its longest keyframe track.\n\t *\n\t * @return {AnimationClip} A reference to this animation clip.\n\t */\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\t/**\n\t * Trims all tracks to the clip's duration.\n\t *\n\t * @return {AnimationClip} A reference to this animation clip.\n\t */\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\t/**\n\t * Performs minimal validation on each track in the clip. Returns `true` if all\n\t * tracks are valid.\n\t *\n\t * @return {boolean} Whether the clip's keyframes are valid or not.\n\t */\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\t/**\n\t * Optimizes each track by removing equivalent sequential keys (which are\n\t * common in morph target sequences).\n\t *\n\t * @return {AnimationClip} A reference to this animation clip.\n\t */\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\t/**\n\t * Returns a new animation clip with copied values from this instance.\n\t *\n\t * @return {AnimationClip} A clone of this instance.\n\t */\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\tconst clip = new this.constructor( this.name, this.duration, tracks, this.blendMode );\n\n\t\tclip.userData = JSON.parse( JSON.stringify( this.userData ) );\n\n\t\treturn clip;\n\n\t}\n\n\t/**\n\t * Serializes this animation clip into JSON.\n\t *\n\t * @return {Object} The JSON object.\n\t */\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\n/**\n * @class\n * @classdesc A simple caching system, used internally by {@link FileLoader}.\n * To enable caching across all loaders that use {@link FileLoader}, add `THREE.Cache.enabled = true.` once in your app.\n * @hideconstructor\n */\nconst Cache = {\n\n\t/**\n\t * Whether caching is enabled or not.\n\t *\n\t * @static\n\t * @type {boolean}\n\t * @default false\n\t */\n\tenabled: false,\n\n\t/**\n\t * A dictionary that holds cached files.\n\t *\n\t * @static\n\t * @type {Object}\n\t */\n\tfiles: {},\n\n\t/**\n\t * Adds a cache entry with a key to reference the file. If this key already\n\t * holds a file, it is overwritten.\n\t *\n\t * @static\n\t * @param {string} key - The key to reference the cached file.\n\t * @param {Object} file - The file to be cached.\n\t */\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\t/**\n\t * Gets the cached value for the given key.\n\t *\n\t * @static\n\t * @param {string} key - The key to reference the cached file.\n\t * @return {Object|undefined} The cached file. If the key does not exist `undefined` is returned.\n\t */\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\t/**\n\t * Removes the cached file associated with the given key.\n\t *\n\t * @static\n\t * @param {string} key - The key to reference the cached file.\n\t */\n\tremove: function ( key ) {\n\n\t\tdelete this.files[ key ];\n\n\t},\n\n\t/**\n\t * Remove all values from the cache.\n\t *\n\t * @static\n\t */\n\tclear: function () {\n\n\t\tthis.files = {};\n\n\t}\n\n};\n\n/**\n * Handles and keeps track of loaded and pending data. A default global\n * instance of this class is created and used by loaders if not supplied\n * manually.\n *\n * In general that should be sufficient, however there are times when it can\n * be useful to have separate loaders - for example if you want to show\n * separate loading bars for objects and textures.\n *\n * ```js\n * const manager = new THREE.LoadingManager();\n * manager.onLoad = () => console.log( 'Loading complete!' );\n *\n * const loader1 = new OBJLoader( manager );\n * const loader2 = new ColladaLoader( manager );\n * ```\n */\nclass LoadingManager {\n\n\t/**\n\t * Constructs a new loading manager.\n\t *\n\t * @param {Function} [onLoad] - Executes when all items have been loaded.\n\t * @param {Function} [onProgress] - Executes when single items have been loaded.\n\t * @param {Function} [onError] - Executes when an error occurs.\n\t */\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\t/**\n\t\t * Executes when an item starts loading.\n\t\t *\n\t\t * @type {Function|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.onStart = undefined;\n\n\t\t/**\n\t\t * Executes when all items have been loaded.\n\t\t *\n\t\t * @type {Function|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.onLoad = onLoad;\n\n\t\t/**\n\t\t * Executes when single items have been loaded.\n\t\t *\n\t\t * @type {Function|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.onProgress = onProgress;\n\n\t\t/**\n\t\t * Executes when an error occurs.\n\t\t *\n\t\t * @type {Function|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.onError = onError;\n\n\t\t/**\n\t\t * Used for aborting ongoing requests in loaders using this manager.\n\t\t *\n\t\t * @type {AbortController}\n\t\t */\n\t\tthis.abortController = new AbortController();\n\n\t\t/**\n\t\t * This should be called by any loader using the manager when the loader\n\t\t * starts loading an item.\n\t\t *\n\t\t * @param {string} url - The URL to load.\n\t\t */\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\t/**\n\t\t * This should be called by any loader using the manager when the loader\n\t\t * ended loading an item.\n\t\t *\n\t\t * @param {string} url - The URL of the loaded item.\n\t\t */\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\t/**\n\t\t * This should be called by any loader using the manager when the loader\n\t\t * encounters an error when loading an item.\n\t\t *\n\t\t * @param {string} url - The URL of the item that produces an error.\n\t\t */\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\t/**\n\t\t * Given a URL, uses the URL modifier callback (if any) and returns a\n\t\t * resolved URL. If no URL modifier is set, returns the original URL.\n\t\t *\n\t\t * @param {string} url - The URL to load.\n\t\t * @return {string} The resolved URL.\n\t\t */\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\t/**\n\t\t * If provided, the callback will be passed each resource URL before a\n\t\t * request is sent. The callback may return the original URL, or a new URL to\n\t\t * override loading behavior. This behavior can be used to load assets from\n\t\t * .ZIP files, drag-and-drop APIs, and Data URIs.\n\t\t *\n\t\t * ```js\n\t\t * const blobs = {'fish.gltf': blob1, 'diffuse.png': blob2, 'normal.png': blob3};\n\t\t *\n\t\t * const manager = new THREE.LoadingManager();\n\t\t *\n\t\t * // Initialize loading manager with URL callback.\n\t\t * const objectURLs = [];\n\t\t * manager.setURLModifier( ( url ) => {\n\t\t *\n\t\t * \turl = URL.createObjectURL( blobs[ url ] );\n\t\t * \tobjectURLs.push( url );\n\t\t * \treturn url;\n\t\t *\n\t\t * } );\n\t\t *\n\t\t * // Load as usual, then revoke the blob URLs.\n\t\t * const loader = new GLTFLoader( manager );\n\t\t * loader.load( 'fish.gltf', (gltf) => {\n\t\t *\n\t\t * \tscene.add( gltf.scene );\n\t\t * \tobjectURLs.forEach( ( url ) => URL.revokeObjectURL( url ) );\n\t\t *\n\t\t * } );\n\t\t * ```\n\t\t *\n\t\t * @param {function(string):string} transform - URL modifier callback. Called with an URL and must return a resolved URL.\n\t\t * @return {LoadingManager} A reference to this loading manager.\n\t\t */\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\t/**\n\t\t * Registers a loader with the given regular expression. Can be used to\n\t\t * define what loader should be used in order to load specific files. A\n\t\t * typical use case is to overwrite the default loader for textures.\n\t\t *\n\t\t * ```js\n\t\t * // add handler for TGA textures\n\t\t * manager.addHandler( /\\.tga$/i, new TGALoader() );\n\t\t * ```\n\t\t *\n\t\t * @param {string} regex - A regular expression.\n\t\t * @param {Loader} loader - A loader that should handle matched cases.\n\t\t * @return {LoadingManager} A reference to this loading manager.\n\t\t */\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\t/**\n\t\t * Removes the loader for the given regular expression.\n\t\t *\n\t\t * @param {string} regex - A regular expression.\n\t\t * @return {LoadingManager} A reference to this loading manager.\n\t\t */\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\t/**\n\t\t * Can be used to retrieve the registered loader for the given file path.\n\t\t *\n\t\t * @param {string} file - The file path.\n\t\t * @return {?Loader} The registered loader. Returns `null` if no loader was found.\n\t\t */\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\t/**\n\t\t * Can be used to abort ongoing loading requests in loaders using this manager.\n\t\t * The abort only works if the loaders implement {@link Loader#abort} and `AbortSignal.any()`\n\t\t * is supported in the browser.\n\t\t *\n\t\t * @return {LoadingManager} A reference to this loading manager.\n\t\t */\n\t\tthis.abort = function () {\n\n\t\t\tthis.abortController.abort();\n\t\t\tthis.abortController = new AbortController();\n\n\t\t\treturn this;\n\n\t\t};\n\n\t}\n\n}\n\n/**\n * The global default loading manager.\n *\n * @constant\n * @type {LoadingManager}\n */\nconst DefaultLoadingManager = /*@__PURE__*/ new LoadingManager();\n\n/**\n * Abstract base class for loaders.\n *\n * @abstract\n */\nclass Loader {\n\n\t/**\n\t * Constructs a new loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\t/**\n\t\t * The loading manager.\n\t\t *\n\t\t * @type {LoadingManager}\n\t\t * @default DefaultLoadingManager\n\t\t */\n\t\tthis.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;\n\n\t\t/**\n\t\t * The crossOrigin string to implement CORS for loading the url from a\n\t\t * different domain that allows CORS.\n\t\t *\n\t\t * @type {string}\n\t\t * @default 'anonymous'\n\t\t */\n\t\tthis.crossOrigin = 'anonymous';\n\n\t\t/**\n\t\t * Whether the XMLHttpRequest uses credentials.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.withCredentials = false;\n\n\t\t/**\n\t\t * The base path from which the asset will be loaded.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.path = '';\n\n\t\t/**\n\t\t * The base path from which additional resources like textures will be loaded.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.resourcePath = '';\n\n\t\t/**\n\t\t * The [request header]{@link https://developer.mozilla.org/en-US/docs/Glossary/Request_header}\n\t\t * used in HTTP request.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.requestHeader = {};\n\n\t}\n\n\t/**\n\t * This method needs to be implemented by all concrete loaders. It holds the\n\t * logic for loading assets from the backend.\n\t *\n\t * @abstract\n\t * @param {string} url - The path/URL of the file to be loaded.\n\t * @param {Function} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} [onProgress] - Executed while the loading is in progress.\n\t * @param {onErrorCallback} [onError] - Executed when errors occur.\n\t */\n\tload( /* url, onLoad, onProgress, onError */ ) {}\n\n\t/**\n\t * A async version of {@link Loader#load}.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded.\n\t * @param {onProgressCallback} [onProgress] - Executed while the loading is in progress.\n\t * @return {Promise} A Promise that resolves when the asset has been loaded.\n\t */\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\t/**\n\t * This method needs to be implemented by all concrete loaders. It holds the\n\t * logic for parsing the asset into three.js entities.\n\t *\n\t * @abstract\n\t * @param {any} data - The data to parse.\n\t */\n\tparse( /* data */ ) {}\n\n\t/**\n\t * Sets the `crossOrigin` String to implement CORS for loading the URL\n\t * from a different domain that allows CORS.\n\t *\n\t * @param {string} crossOrigin - The `crossOrigin` value.\n\t * @return {Loader} A reference to this instance.\n\t */\n\tsetCrossOrigin( crossOrigin ) {\n\n\t\tthis.crossOrigin = crossOrigin;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Whether the XMLHttpRequest uses credentials such as cookies, authorization\n\t * headers or TLS client certificates, see [XMLHttpRequest.withCredentials]{@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials}.\n\t *\n\t * Note: This setting has no effect if you are loading files locally or from the same domain.\n\t *\n\t * @param {boolean} value - The `withCredentials` value.\n\t * @return {Loader} A reference to this instance.\n\t */\n\tsetWithCredentials( value ) {\n\n\t\tthis.withCredentials = value;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the base path for the asset.\n\t *\n\t * @param {string} path - The base path.\n\t * @return {Loader} A reference to this instance.\n\t */\n\tsetPath( path ) {\n\n\t\tthis.path = path;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the base path for dependent resources like textures.\n\t *\n\t * @param {string} resourcePath - The resource path.\n\t * @return {Loader} A reference to this instance.\n\t */\n\tsetResourcePath( resourcePath ) {\n\n\t\tthis.resourcePath = resourcePath;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the given request header.\n\t *\n\t * @param {Object} requestHeader - A [request header]{@link https://developer.mozilla.org/en-US/docs/Glossary/Request_header}\n\t * for configuring the HTTP request.\n\t * @return {Loader} A reference to this instance.\n\t */\n\tsetRequestHeader( requestHeader ) {\n\n\t\tthis.requestHeader = requestHeader;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * This method can be implemented in loaders for aborting ongoing requests.\n\t *\n\t * @abstract\n\t * @return {Loader} A reference to this instance.\n\t */\n\tabort() {\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * Callback for onProgress in loaders.\n *\n * @callback onProgressCallback\n * @param {ProgressEvent} event - An instance of `ProgressEvent` that represents the current loading status.\n */\n\n/**\n * Callback for onError in loaders.\n *\n * @callback onErrorCallback\n * @param {Error} error - The error which occurred during the loading process.\n */\n\n/**\n * The default material name that is used by loaders\n * when creating materials for loaded 3D objects.\n *\n * Note: Not all loaders might honor this setting.\n *\n * @static\n * @type {string}\n * @default '__DEFAULT'\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\n/**\n * A low level class for loading resources with the Fetch API, used internally by\n * most loaders. It can also be used directly to load any file type that does\n * not have a loader.\n *\n * This loader supports caching. If you want to use it, add `THREE.Cache.enabled = true;`\n * once to your application.\n *\n * ```js\n * const loader = new THREE.FileLoader();\n * const data = await loader.loadAsync( 'example.txt' );\n * ```\n *\n * @augments Loader\n */\nclass FileLoader extends Loader {\n\n\t/**\n\t * Constructs a new file loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\t/**\n\t\t * The expected mime type. Valid values can be found\n\t\t * [here]{@link hhttps://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#mimetype}\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.mimeType = '';\n\n\t\t/**\n\t\t * The expected response type.\n\t\t *\n\t\t * @type {('arraybuffer'|'blob'|'document'|'json'|'')}\n\t\t * @default ''\n\t\t */\n\t\tthis.responseType = '';\n\n\t\t/**\n\t\t * Used for aborting requests.\n\t\t *\n\t\t * @private\n\t\t * @type {AbortController}\n\t\t */\n\t\tthis._abortController = new AbortController();\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the loaded response to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(any)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} [onProgress] - Executed while the loading is in progress.\n\t * @param {onErrorCallback} [onError] - Executed when errors occur.\n\t * @return {any|undefined} The cached resource if available.\n\t */\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( `file:${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\tsignal: ( typeof AbortSignal.any === 'function' ) ? AbortSignal.any( [ this._abortController.signal, this.manager.abortController.signal ] ) : this._abortController.signal\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 === '' ) {\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( `file:${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\t/**\n\t * Sets the expected response type.\n\t *\n\t * @param {('arraybuffer'|'blob'|'document'|'json'|'')} value - The response type.\n\t * @return {FileLoader} A reference to this file loader.\n\t */\n\tsetResponseType( value ) {\n\n\t\tthis.responseType = value;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the expected mime type of the loaded file.\n\t *\n\t * @param {string} value - The mime type.\n\t * @return {FileLoader} A reference to this file loader.\n\t */\n\tsetMimeType( value ) {\n\n\t\tthis.mimeType = value;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Aborts ongoing fetch requests.\n\t *\n\t * @return {FileLoader} A reference to this instance.\n\t */\n\tabort() {\n\n\t\tthis._abortController.abort();\n\t\tthis._abortController = new AbortController();\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * Class for loading animation clips in the JSON format. The files are internally\n * loaded via {@link FileLoader}.\n *\n * ```js\n * const loader = new THREE.AnimationLoader();\n * const animations = await loader.loadAsync( 'animations/animation.js' );\n * ```\n *\n * @augments Loader\n */\nclass AnimationLoader extends Loader {\n\n\t/**\n\t * Constructs a new animation loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the loaded animations as an array\n\t * holding instances of {@link AnimationClip} to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(Array)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t */\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\t/**\n\t * Parses the given JSON object and returns an array of animation clips.\n\t *\n\t * @param {Object} json - The serialized animation clips.\n\t * @return {Array} The parsed animation clips.\n\t */\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 for loading compressed texture formats S3TC, ASTC or ETC.\n * Textures are internally loaded via {@link FileLoader}.\n *\n * Derived classes have to implement the `parse()` method which holds the parsing\n * for the respective format.\n *\n * @abstract\n * @augments Loader\n */\nclass CompressedTextureLoader extends Loader {\n\n\t/**\n\t * Constructs a new compressed texture loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and passes the loaded compressed texture\n\t * to the `onLoad()` callback. The method also returns a new texture object which can\n\t * directly be used for material creation. If you do it this way, the texture\n\t * may pop up in your scene once the respective loading process is finished.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(CompressedTexture)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t * @return {CompressedTexture} The compressed texture.\n\t */\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\nconst _loading = new WeakMap();\n\n/**\n * A loader for loading images. The class loads images with the HTML `Image` API.\n *\n * ```js\n * const loader = new THREE.ImageLoader();\n * const image = await loader.loadAsync( 'image.png' );\n * ```\n * Please note that `ImageLoader` has dropped support for progress\n * events in `r84`. For an `ImageLoader` that supports progress events, see\n * [this thread]{@link https://github.com/mrdoob/three.js/issues/10439#issuecomment-275785639}.\n *\n * @augments Loader\n */\nclass ImageLoader extends Loader {\n\n\t/**\n\t * Constructs a new image loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and passes the loaded image\n\t * to the `onLoad()` callback. The method also returns a new `Image` object which can\n\t * directly be used for texture creation. If you do it this way, the texture\n\t * may pop up in your scene once the respective loading process is finished.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(Image)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Unsupported in this loader.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t * @return {Image} The image.\n\t */\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( `image:${url}` );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tif ( cached.complete === true ) {\n\n\t\t\t\tscope.manager.itemStart( url );\n\n\t\t\t\tsetTimeout( function () {\n\n\t\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t\t}, 0 );\n\n\t\t\t} else {\n\n\t\t\t\tlet arr = _loading.get( cached );\n\n\t\t\t\tif ( arr === undefined ) {\n\n\t\t\t\t\tarr = [];\n\t\t\t\t\t_loading.set( cached, arr );\n\n\t\t\t\t}\n\n\t\t\t\tarr.push( { onLoad, onError } );\n\n\t\t\t}\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\tif ( onLoad ) onLoad( this );\n\n\t\t\t//\n\n\t\t\tconst callbacks = _loading.get( this ) || [];\n\n\t\t\tfor ( let i = 0; i < callbacks.length; i ++ ) {\n\n\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\tif ( callback.onLoad ) callback.onLoad( this );\n\n\t\t\t}\n\n\t\t\t_loading.delete( 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\tCache.remove( `image:${url}` );\n\n\t\t\t//\n\n\t\t\tconst callbacks = _loading.get( this ) || [];\n\n\t\t\tfor ( let i = 0; i < callbacks.length; i ++ ) {\n\n\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\tif ( callback.onError ) callback.onError( event );\n\n\t\t\t}\n\n\t\t\t_loading.delete( this );\n\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\tCache.add( `image:${url}`, image );\n\t\tscope.manager.itemStart( url );\n\n\t\timage.src = url;\n\n\t\treturn image;\n\n\t}\n\n}\n\n/**\n * Class for loading cube textures. Images are internally loaded via {@link ImageLoader}.\n *\n * The loader returns an instance of {@link CubeTexture} and expects the cube map to\n * be defined as six separate images representing the sides of a cube. Other cube map definitions\n * like vertical and horizontal cross, column and row layouts are not supported.\n *\n * Note that, by convention, cube maps are specified in a coordinate system\n * in which positive-x is to the right when looking up the positive-z axis --\n * in other words, using a left-handed coordinate system. Since three.js uses\n * a right-handed coordinate system, environment maps used in three.js will\n * have pos-x and neg-x swapped.\n *\n * The loaded cube texture is in sRGB color space. Meaning {@link Texture#colorSpace}\n * is set to `SRGBColorSpace` by default.\n *\n * ```js\n * const loader = new THREE.CubeTextureLoader().setPath( 'textures/cubeMaps/' );\n * const cubeTexture = await loader.loadAsync( [\n * \t'px.png', 'nx.png', 'py.png', 'ny.png', 'pz.png', 'nz.png'\n * ] );\n * scene.background = cubeTexture;\n * ```\n *\n * @augments Loader\n */\nclass CubeTextureLoader extends Loader {\n\n\t/**\n\t * Constructs a new cube texture loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the fully loaded cube texture\n\t * to the `onLoad()` callback. The method also returns a new cube texture object which can\n\t * directly be used for material creation. If you do it this way, the cube texture\n\t * may pop up in your scene once the respective loading process is finished.\n\t *\n\t * @param {Array} urls - Array of 6 URLs to images, one for each side of the\n\t * cube texture. The urls should be specified in the following order: pos-x,\n\t * neg-x, pos-y, neg-y, pos-z, neg-z. An array of data URIs are allowed as well.\n\t * @param {function(CubeTexture)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Unsupported in this loader.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t * @return {CubeTexture} The cube texture.\n\t */\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 for loading binary texture formats RGBE, EXR or TGA.\n * Textures are internally loaded via {@link FileLoader}.\n *\n * Derived classes have to implement the `parse()` method which holds the parsing\n * for the respective format.\n *\n * @abstract\n * @augments Loader\n */\nclass DataTextureLoader extends Loader {\n\n\t/**\n\t * Constructs a new data texture loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and passes the loaded data texture\n\t * to the `onLoad()` callback. The method also returns a new texture object which can\n\t * directly be used for material creation. If you do it this way, the texture\n\t * may pop up in your scene once the respective loading process is finished.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(DataTexture)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t * @return {DataTexture} The data texture.\n\t */\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\n/**\n * Class for loading textures. Images are internally\n * loaded via {@link ImageLoader}.\n *\n * ```js\n * const loader = new THREE.TextureLoader();\n * const texture = await loader.loadAsync( 'textures/land_ocean_ice_cloud_2048.jpg' );\n *\n * const material = new THREE.MeshBasicMaterial( { map:texture } );\n * ```\n * Please note that `TextureLoader` has dropped support for progress\n * events in `r84`. For a `TextureLoader` that supports progress events, see\n * [this thread]{@link https://github.com/mrdoob/three.js/issues/10439#issuecomment-293260145}.\n *\n * @augments Loader\n */\nclass TextureLoader extends Loader {\n\n\t/**\n\t * Constructs a new texture loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the fully loaded texture\n\t * to the `onLoad()` callback. The method also returns a new texture object which can\n\t * directly be used for material creation. If you do it this way, the texture\n\t * may pop up in your scene once the respective loading process is finished.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(Texture)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Unsupported in this loader.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t * @return {Texture} The texture.\n\t */\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\n/**\n * Abstract base class for lights - all other light types inherit the\n * properties and methods described here.\n *\n * @abstract\n * @augments Object3D\n */\nclass Light extends Object3D {\n\n\t/**\n\t * Constructs a new light.\n\t *\n\t * @param {(number|Color|string)} [color=0xffffff] - The light's color.\n\t * @param {number} [intensity=1] - The light's strength/intensity.\n\t */\n\tconstructor( color, intensity = 1 ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLight = true;\n\n\t\tthis.type = 'Light';\n\n\t\t/**\n\t\t * The light's color.\n\t\t *\n\t\t * @type {Color}\n\t\t */\n\t\tthis.color = new Color( color );\n\n\t\t/**\n\t\t * The light's intensity.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.intensity = intensity;\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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\n/**\n * A light source positioned directly above the scene, with color fading from\n * the sky color to the ground color.\n *\n * This light cannot be used to cast shadows.\n *\n * ```js\n * const light = new THREE.HemisphereLight( 0xffffbb, 0x080820, 1 );\n * scene.add( light );\n * ```\n *\n * @augments Light\n */\nclass HemisphereLight extends Light {\n\n\t/**\n\t * Constructs a new hemisphere light.\n\t *\n\t * @param {(number|Color|string)} [skyColor=0xffffff] - The light's sky color.\n\t * @param {(number|Color|string)} [groundColor=0xffffff] - The light's ground color.\n\t * @param {number} [intensity=1] - The light's strength/intensity.\n\t */\n\tconstructor( skyColor, groundColor, intensity ) {\n\n\t\tsuper( skyColor, intensity );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t\t * The light's ground color.\n\t\t *\n\t\t * @type {Color}\n\t\t */\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\n/**\n * Abstract base class for light shadow classes. These classes\n * represent the shadow configuration for different light types.\n *\n * @abstract\n */\nclass LightShadow {\n\n\t/**\n\t * Constructs a new light shadow.\n\t *\n\t * @param {Camera} camera - The light's view of the world.\n\t */\n\tconstructor( camera ) {\n\n\t\t/**\n\t\t * The light's view of the world.\n\t\t *\n\t\t * @type {Camera}\n\t\t */\n\t\tthis.camera = camera;\n\n\t\t/**\n\t\t * The intensity of the shadow. The default is `1`.\n\t\t * Valid values are in the range `[0, 1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.intensity = 1;\n\n\t\t/**\n\t\t * Shadow map bias, how much to add or subtract from the normalized depth\n\t\t * when deciding whether a surface is in shadow.\n\t\t *\n\t\t * The default is `0`. Very tiny adjustments here (in the order of `0.0001`)\n\t\t * may help reduce artifacts in shadows.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.bias = 0;\n\n\t\t/**\n\t\t * Defines how much the position used to query the shadow map is offset along\n\t\t * the object normal. The default is `0`. Increasing this value can be used to\n\t\t * reduce shadow acne especially in large scenes where light shines onto\n\t\t * geometry at a shallow angle. The cost is that shadows may appear distorted.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.normalBias = 0;\n\n\t\t/**\n\t\t * Setting this to values greater than 1 will blur the edges of the shadow.\n\t\t * High values will cause unwanted banding effects in the shadows - a greater\n\t\t * map size will allow for a higher value to be used here before these effects\n\t\t * become visible.\n\t\t *\n\t\t * The property has no effect when the shadow map type is `PCFSoftShadowMap` and\n\t\t * and it is recommended to increase softness by decreasing the shadow map size instead.\n\t\t *\n\t\t * The property has no effect when the shadow map type is `BasicShadowMap`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.radius = 1;\n\n\t\t/**\n\t\t * The amount of samples to use when blurring a VSM shadow map.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 8\n\t\t */\n\t\tthis.blurSamples = 8;\n\n\t\t/**\n\t\t * Defines the width and height of the shadow map. Higher values give better quality\n\t\t * shadows at the cost of computation time. Values must be powers of two.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (512,512)\n\t\t */\n\t\tthis.mapSize = new Vector2( 512, 512 );\n\n\t\t/**\n\t\t * The type of shadow texture. The default is `UnsignedByteType`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default UnsignedByteType\n\t\t */\n\t\tthis.mapType = UnsignedByteType;\n\n\t\t/**\n\t\t * The depth map generated using the internal camera; a location beyond a\n\t\t * pixel's depth is in shadow. Computed internally during rendering.\n\t\t *\n\t\t * @type {?RenderTarget}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The distribution map generated using the internal camera; an occlusion is\n\t\t * calculated based on the distribution of depths. Computed internally during\n\t\t * rendering.\n\t\t *\n\t\t * @type {?RenderTarget}\n\t\t * @default null\n\t\t */\n\t\tthis.mapPass = null;\n\n\t\t/**\n\t\t * Model to shadow camera space, to compute location and depth in shadow map.\n\t\t * This is computed internally during rendering.\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.matrix = new Matrix4();\n\n\t\t/**\n\t\t * Enables automatic updates of the light's shadow. If you do not require dynamic\n\t\t * lighting / shadows, you may set this to `false`.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.autoUpdate = true;\n\n\t\t/**\n\t\t * When set to `true`, shadow maps will be updated in the next `render` call.\n\t\t * If you have set {@link LightShadow#autoUpdate} to `false`, you will need to\n\t\t * set this property to `true` and then make a render call to update the light's shadow.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\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\t/**\n\t * Used internally by the renderer to get the number of viewports that need\n\t * to be rendered for this shadow.\n\t *\n\t * @return {number} The viewport count.\n\t */\n\tgetViewportCount() {\n\n\t\treturn this._viewportCount;\n\n\t}\n\n\t/**\n\t * Gets the shadow cameras frustum. Used internally by the renderer to cull objects.\n\t *\n\t * @return {Frustum} The shadow camera frustum.\n\t */\n\tgetFrustum() {\n\n\t\treturn this._frustum;\n\n\t}\n\n\t/**\n\t * Update the matrices for the camera and shadow, used internally by the renderer.\n\t *\n\t * @param {Light} light - The light for which the shadow is being rendered.\n\t */\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, shadowCamera.coordinateSystem, shadowCamera.reversedDepth );\n\n\t\tif ( shadowCamera.reversedDepth ) {\n\n\t\t\tshadowMatrix.set(\n\t\t\t\t0.5, 0.0, 0.0, 0.5,\n\t\t\t\t0.0, 0.5, 0.0, 0.5,\n\t\t\t\t0.0, 0.0, 1.0, 0.0,\n\t\t\t\t0.0, 0.0, 0.0, 1.0\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tshadowMatrix.set(\n\t\t\t\t0.5, 0.0, 0.0, 0.5,\n\t\t\t\t0.0, 0.5, 0.0, 0.5,\n\t\t\t\t0.0, 0.0, 0.5, 0.5,\n\t\t\t\t0.0, 0.0, 0.0, 1.0\n\t\t\t);\n\n\t\t}\n\n\t\tshadowMatrix.multiply( _projScreenMatrix$1 );\n\n\t}\n\n\t/**\n\t * Returns a viewport definition for the given viewport index.\n\t *\n\t * @param {number} viewportIndex - The viewport index.\n\t * @return {Vector4} The viewport.\n\t */\n\tgetViewport( viewportIndex ) {\n\n\t\treturn this._viewports[ viewportIndex ];\n\n\t}\n\n\t/**\n\t * Returns the frame extends.\n\t *\n\t * @return {Vector2} The frame extends.\n\t */\n\tgetFrameExtents() {\n\n\t\treturn this._frameExtents;\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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\t/**\n\t * Copies the values of the given light shadow instance to this instance.\n\t *\n\t * @param {LightShadow} source - The light shadow to copy.\n\t * @return {LightShadow} A reference to this light shadow instance.\n\t */\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.autoUpdate = source.autoUpdate;\n\t\tthis.needsUpdate = source.needsUpdate;\n\t\tthis.normalBias = source.normalBias;\n\t\tthis.blurSamples = source.blurSamples;\n\n\t\tthis.mapSize.copy( source.mapSize );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns a new light shadow instance with copied values from this instance.\n\t *\n\t * @return {LightShadow} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Serializes the light shadow into JSON.\n\t *\n\t * @return {Object} A JSON object representing the serialized light shadow.\n\t * @see {@link ObjectLoader#parse}\n\t */\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\n/**\n * Represents the shadow configuration of directional lights.\n *\n * @augments LightShadow\n */\nclass SpotLightShadow extends LightShadow {\n\n\t/**\n\t * Constructs a new spot light shadow.\n\t */\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 50, 1, 0.5, 500 ) );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSpotLightShadow = true;\n\n\t\t/**\n\t\t * Used to focus the shadow camera. The camera's field of view is set as a\n\t\t * percentage of the spotlight's field-of-view. Range is `[0, 1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.focus = 1;\n\n\t\t/**\n\t\t * Texture aspect ratio.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aspect = 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 ) * this.aspect;\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\n/**\n * This light gets emitted from a single point in one direction, along a cone\n * that increases in size the further from the light it gets.\n *\n * This light can cast shadows - see the {@link SpotLightShadow} for details.\n *\n * ```js\n * // white spotlight shining from the side, modulated by a texture\n * const spotLight = new THREE.SpotLight( 0xffffff );\n * spotLight.position.set( 100, 1000, 100 );\n * spotLight.map = new THREE.TextureLoader().load( url );\n *\n * spotLight.castShadow = true;\n * spotLight.shadow.mapSize.width = 1024;\n * spotLight.shadow.mapSize.height = 1024;\n * spotLight.shadow.camera.near = 500;\n * spotLight.shadow.camera.far = 4000;\n * spotLight.shadow.camera.fov = 30;s\n * ```\n *\n * @augments Light\n */\nclass SpotLight extends Light {\n\n\t/**\n\t * Constructs a new spot light.\n\t *\n\t * @param {(number|Color|string)} [color=0xffffff] - The light's color.\n\t * @param {number} [intensity=1] - The light's strength/intensity measured in candela (cd).\n\t * @param {number} [distance=0] - Maximum range of the light. `0` means no limit.\n\t * @param {number} [angle=Math.PI/3] - Maximum angle of light dispersion from its direction whose upper bound is `Math.PI/2`.\n\t * @param {number} [penumbra=0] - Percent of the spotlight cone that is attenuated due to penumbra. Value range is `[0,1]`.\n\t * @param {number} [decay=2] - The amount the light dims along the distance of the light.\n\t */\n\tconstructor( color, intensity, distance = 0, angle = Math.PI / 3, penumbra = 0, decay = 2 ) {\n\n\t\tsuper( color, intensity );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t\t * The spot light points from its position to the\n\t\t * target's position.\n\t\t *\n\t\t * For the target's position to be changed to anything other\n\t\t * than the default, it must be added to the scene.\n\t\t *\n\t\t * It is also possible to set the target to be another 3D object\n\t\t * in the scene. The light will now track the target object.\n\t\t *\n\t\t * @type {Object3D}\n\t\t */\n\t\tthis.target = new Object3D();\n\n\t\t/**\n\t\t * Maximum range of the light. `0` means no limit.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.distance = distance;\n\n\t\t/**\n\t\t * Maximum angle of light dispersion from its direction whose upper bound is `Math.PI/2`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default Math.PI/3\n\t\t */\n\t\tthis.angle = angle;\n\n\t\t/**\n\t\t * Percent of the spotlight cone that is attenuated due to penumbra.\n\t\t * Value range is `[0,1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.penumbra = penumbra;\n\n\t\t/**\n\t\t * The amount the light dims along the distance of the light. In context of\n\t\t * physically-correct rendering the default value should not be changed.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 2\n\t\t */\n\t\tthis.decay = decay;\n\n\t\t/**\n\t\t * A texture used to modulate the color of the light. The spot light\n\t\t * color is mixed with the RGB value of this texture, with a ratio\n\t\t * corresponding to its alpha value. The cookie-like masking effect is\n\t\t * reproduced using pixel values (0, 0, 0, 1-cookie_value).\n\t\t *\n\t\t * *Warning*: This property is disabled if {@link Object3D#castShadow} is set to `false`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * This property holds the light's shadow configuration.\n\t\t *\n\t\t * @type {SpotLightShadow}\n\t\t */\n\t\tthis.shadow = new SpotLightShadow();\n\n\t}\n\n\t/**\n\t * The light's power. Power is the luminous power of the light measured in lumens (lm).\n\t * Changing the power will also change the light's intensity.\n\t *\n\t * @type {number}\n\t */\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\n/**\n * Represents the shadow configuration of point lights.\n *\n * @augments LightShadow\n */\nclass PointLightShadow extends LightShadow {\n\n\t/**\n\t * Constructs a new point light shadow.\n\t */\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 90, 1, 0.5, 500 ) );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t * Update the matrices for the camera and shadow, used internally by the renderer.\n\t *\n\t * @param {Light} light - The light for which the shadow is being rendered.\n\t * @param {number} [viewportIndex=0] - The viewport index.\n\t */\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, camera.coordinateSystem, camera.reversedDepth );\n\n\t}\n\n}\n\n/**\n * A light that gets emitted from a single point in all directions. A common\n * use case for this is to replicate the light emitted from a bare\n * lightbulb.\n *\n * This light can cast shadows - see the {@link PointLightShadow} for details.\n *\n * ```js\n * const light = new THREE.PointLight( 0xff0000, 1, 100 );\n * light.position.set( 50, 50, 50 );\n * scene.add( light );\n * ```\n *\n * @augments Light\n */\nclass PointLight extends Light {\n\n\t/**\n\t * Constructs a new point light.\n\t *\n\t * @param {(number|Color|string)} [color=0xffffff] - The light's color.\n\t * @param {number} [intensity=1] - The light's strength/intensity measured in candela (cd).\n\t * @param {number} [distance=0] - Maximum range of the light. `0` means no limit.\n\t * @param {number} [decay=2] - The amount the light dims along the distance of the light.\n\t */\n\tconstructor( color, intensity, distance = 0, decay = 2 ) {\n\n\t\tsuper( color, intensity );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isPointLight = true;\n\n\t\tthis.type = 'PointLight';\n\n\t\t/**\n\t\t * When distance is zero, light will attenuate according to inverse-square\n\t\t * law to infinite distance. When distance is non-zero, light will attenuate\n\t\t * according to inverse-square law until near the distance cutoff, where it\n\t\t * will then attenuate quickly and smoothly to 0. Inherently, cutoffs are not\n\t\t * physically correct.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.distance = distance;\n\n\t\t/**\n\t\t * The amount the light dims along the distance of the light. In context of\n\t\t * physically-correct rendering the default value should not be changed.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 2\n\t\t */\n\t\tthis.decay = decay;\n\n\t\t/**\n\t\t * This property holds the light's shadow configuration.\n\t\t *\n\t\t * @type {PointLightShadow}\n\t\t */\n\t\tthis.shadow = new PointLightShadow();\n\n\t}\n\n\t/**\n\t * The light's power. Power is the luminous power of the light measured in lumens (lm).\n\t * Changing the power will also change the light's intensity.\n\t *\n\t * @type {number}\n\t */\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\n/**\n * Camera that uses [orthographic projection]{@link https://en.wikipedia.org/wiki/Orthographic_projection}.\n *\n * In this projection mode, an object's size in the rendered image stays\n * constant regardless of its distance from the camera. This can be useful\n * for rendering 2D scenes and UI elements, amongst other things.\n *\n * ```js\n * const camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 );\n * scene.add( camera );\n * ```\n *\n * @augments Camera\n */\nclass OrthographicCamera extends Camera {\n\n\t/**\n\t * Constructs a new orthographic camera.\n\t *\n\t * @param {number} [left=-1] - The left plane of the camera's frustum.\n\t * @param {number} [right=1] - The right plane of the camera's frustum.\n\t * @param {number} [top=1] - The top plane of the camera's frustum.\n\t * @param {number} [bottom=-1] - The bottom plane of the camera's frustum.\n\t * @param {number} [near=0.1] - The camera's near plane.\n\t * @param {number} [far=2000] - The camera's far plane.\n\t */\n\tconstructor( left = -1, right = 1, top = 1, bottom = -1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isOrthographicCamera = true;\n\n\t\tthis.type = 'OrthographicCamera';\n\n\t\t/**\n\t\t * The zoom factor of the camera.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.zoom = 1;\n\n\t\t/**\n\t\t * Represents the frustum window specification. This property should not be edited\n\t\t * directly but via {@link PerspectiveCamera#setViewOffset} and {@link PerspectiveCamera#clearViewOffset}.\n\t\t *\n\t\t * @type {?Object}\n\t\t * @default null\n\t\t */\n\t\tthis.view = null;\n\n\t\t/**\n\t\t * The left plane of the camera's frustum.\n\t\t *\n\t\t * @type {number}\n\t\t * @default -1\n\t\t */\n\t\tthis.left = left;\n\n\t\t/**\n\t\t * The right plane of the camera's frustum.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.right = right;\n\n\t\t/**\n\t\t * The top plane of the camera's frustum.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.top = top;\n\n\t\t/**\n\t\t * The bottom plane of the camera's frustum.\n\t\t *\n\t\t * @type {number}\n\t\t * @default -1\n\t\t */\n\t\tthis.bottom = bottom;\n\n\t\t/**\n\t\t * The camera's near plane. The valid range is greater than `0`\n\t\t * and less than the current value of {@link OrthographicCamera#far}.\n\t\t *\n\t\t * Note that, unlike for the {@link PerspectiveCamera}, `0` is a\n\t\t * valid value for an orthographic camera's near plane.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.1\n\t\t */\n\t\tthis.near = near;\n\n\t\t/**\n\t\t * The camera's far plane. Must be greater than the\n\t\t * current value of {@link OrthographicCamera#near}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 2000\n\t\t */\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\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 * @param {number} fullWidth - The full width of multiview setup.\n\t * @param {number} fullHeight - The full height of multiview setup.\n\t * @param {number} x - The horizontal offset of the subcamera.\n\t * @param {number} y - The vertical offset of the subcamera.\n\t * @param {number} width - The width of subcamera.\n\t * @param {number} height - The height of subcamera.\n\t * @see {@link PerspectiveCamera#setViewOffset}\n\t */\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\t/**\n\t * Removes the view offset from the projection matrix.\n\t */\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\t/**\n\t * Updates the camera's projection matrix. Must be called after any change of\n\t * camera properties.\n\t */\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, this.reversedDepth );\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\n/**\n * Represents the shadow configuration of directional lights.\n *\n * @augments LightShadow\n */\nclass DirectionalLightShadow extends LightShadow {\n\n\t/**\n\t * Constructs a new directional light shadow.\n\t */\n\tconstructor() {\n\n\t\tsuper( new OrthographicCamera( -5, 5, 5, -5, 0.5, 500 ) );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isDirectionalLightShadow = true;\n\n\t}\n\n}\n\n/**\n * A light that gets emitted in a specific direction. This light will behave\n * as though it is infinitely far away and the rays produced from it are all\n * parallel. The common use case for this is to simulate daylight; the sun is\n * far enough away that its position can be considered to be infinite, and\n * all light rays coming from it are parallel.\n *\n * A common point of confusion for directional lights is that setting the\n * rotation has no effect. This is because three.js's DirectionalLight is the\n * equivalent to what is often called a 'Target Direct Light' in other\n * applications.\n *\n * This means that its direction is calculated as pointing from the light's\n * {@link Object3D#position} to the {@link DirectionalLight#target} position\n * (as opposed to a 'Free Direct Light' that just has a rotation\n * component).\n *\n * This light can cast shadows - see the {@link DirectionalLightShadow} for details.\n *\n * ```js\n * // White directional light at half intensity shining from the top.\n * const directionalLight = new THREE.DirectionalLight( 0xffffff, 0.5 );\n * scene.add( directionalLight );\n * ```\n *\n * @augments Light\n */\nclass DirectionalLight extends Light {\n\n\t/**\n\t * Constructs a new directional light.\n\t *\n\t * @param {(number|Color|string)} [color=0xffffff] - The light's color.\n\t * @param {number} [intensity=1] - The light's strength/intensity.\n\t */\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t\t * The directional light points from its position to the\n\t\t * target's position.\n\t\t *\n\t\t * For the target's position to be changed to anything other\n\t\t * than the default, it must be added to the scene.\n\t\t *\n\t\t * It is also possible to set the target to be another 3D object\n\t\t * in the scene. The light will now track the target object.\n\t\t *\n\t\t * @type {Object3D}\n\t\t */\n\t\tthis.target = new Object3D();\n\n\t\t/**\n\t\t * This property holds the light's shadow configuration.\n\t\t *\n\t\t * @type {DirectionalLightShadow}\n\t\t */\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\n/**\n * This light globally illuminates all objects in the scene equally.\n *\n * It cannot be used to cast shadows as it does not have a direction.\n *\n * ```js\n * const light = new THREE.AmbientLight( 0x404040 ); // soft white light\n * scene.add( light );\n * ```\n *\n * @augments Light\n */\nclass AmbientLight extends Light {\n\n\t/**\n\t * Constructs a new ambient light.\n\t *\n\t * @param {(number|Color|string)} [color=0xffffff] - The light's color.\n\t * @param {number} [intensity=1] - The light's strength/intensity.\n\t */\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isAmbientLight = true;\n\n\t\tthis.type = 'AmbientLight';\n\n\t}\n\n}\n\n/**\n * This class emits light uniformly across the face a rectangular plane.\n * This light type can be used to simulate light sources such as bright\n * windows or strip lighting.\n *\n * Important Notes:\n *\n * - There is no shadow support.\n * - Only PBR materials are supported.\n * - You have to include `RectAreaLightUniformsLib` (`WebGLRenderer`) or `RectAreaLightTexturesLib` (`WebGPURenderer`)\n * into your app and init the uniforms/textures.\n *\n * ```js\n * RectAreaLightUniformsLib.init(); // only relevant for WebGLRenderer\n * THREE.RectAreaLightNode.setLTC( RectAreaLightTexturesLib.init() ); // only relevant for WebGPURenderer\n *\n * const intensity = 1; const width = 10; const height = 10;\n * const rectLight = new THREE.RectAreaLight( 0xffffff, intensity, width, height );\n * rectLight.position.set( 5, 5, 0 );\n * rectLight.lookAt( 0, 0, 0 );\n * scene.add( rectLight )\n * ```\n *\n * @augments Light\n */\nclass RectAreaLight extends Light {\n\n\t/**\n\t * Constructs a new area light.\n\t *\n\t * @param {(number|Color|string)} [color=0xffffff] - The light's color.\n\t * @param {number} [intensity=1] - The light's strength/intensity.\n\t * @param {number} [width=10] - The width of the light.\n\t * @param {number} [height=10] - The height of the light.\n\t */\n\tconstructor( color, intensity, width = 10, height = 10 ) {\n\n\t\tsuper( color, intensity );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isRectAreaLight = true;\n\n\t\tthis.type = 'RectAreaLight';\n\n\t\t/**\n\t\t * The width of the light.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 10\n\t\t */\n\t\tthis.width = width;\n\n\t\t/**\n\t\t * The height of the light.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 10\n\t\t */\n\t\tthis.height = height;\n\n\t}\n\n\t/**\n\t * The light's power. Power is the luminous power of the light measured in lumens (lm).\n\t * Changing the power will also change the light's intensity.\n\t *\n\t * @type {number}\n\t */\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 * Represents a third-order spherical harmonics (SH). Light probes use this class\n * to encode lighting information.\n *\n * - Primary reference: {@link https://graphics.stanford.edu/papers/envmap/envmap.pdf}\n * - Secondary reference: {@link https://www.ppsloan.org/publications/StupidSH36.pdf}\n */\nclass SphericalHarmonics3 {\n\n\t/**\n\t * Constructs a new spherical harmonics.\n\t */\n\tconstructor() {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSphericalHarmonics3 = true;\n\n\t\t/**\n\t\t * An array holding the (9) SH coefficients.\n\t\t *\n\t\t * @type {Array}\n\t\t */\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\t/**\n\t * Sets the given SH coefficients to this instance by copying\n\t * the values.\n\t *\n\t * @param {Array} coefficients - The SH coefficients.\n\t * @return {SphericalHarmonics3} A reference to this spherical harmonics.\n\t */\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\t/**\n\t * Sets all SH coefficients to `0`.\n\t *\n\t * @return {SphericalHarmonics3} A reference to this spherical harmonics.\n\t */\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/**\n\t * Returns the radiance in the direction of the given normal.\n\t *\n\t * @param {Vector3} normal - The normal vector (assumed to be unit length)\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The radiance.\n\t */\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/**\n\t * Returns the irradiance (radiance convolved with cosine lobe) in the\n\t * direction of the given normal.\n\t *\n\t * @param {Vector3} normal - The normal vector (assumed to be unit length)\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The irradiance.\n\t */\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\t/**\n\t * Adds the given SH to this instance.\n\t *\n\t * @param {SphericalHarmonics3} sh - The SH to add.\n\t * @return {SphericalHarmonics3} A reference to this spherical harmonics.\n\t */\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\t/**\n\t * A convenience method for performing {@link SphericalHarmonics3#add} and\n\t * {@link SphericalHarmonics3#scale} at once.\n\t *\n\t * @param {SphericalHarmonics3} sh - The SH to add.\n\t * @param {number} s - The scale factor.\n\t * @return {SphericalHarmonics3} A reference to this spherical harmonics.\n\t */\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\t/**\n\t * Scales this SH by the given scale factor.\n\t *\n\t * @param {number} s - The scale factor.\n\t * @return {SphericalHarmonics3} A reference to this spherical harmonics.\n\t */\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\t/**\n\t * Linear interpolates between the given SH and this instance by the given\n\t * alpha factor.\n\t *\n\t * @param {SphericalHarmonics3} sh - The SH to interpolate with.\n\t * @param {number} alpha - The alpha factor.\n\t * @return {SphericalHarmonics3} A reference to this spherical harmonics.\n\t */\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\t/**\n\t * Returns `true` if this spherical harmonics is equal with the given one.\n\t *\n\t * @param {SphericalHarmonics3} sh - The spherical harmonics to test for equality.\n\t * @return {boolean} Whether this spherical harmonics is equal with the given one.\n\t */\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\t/**\n\t * Copies the values of the given spherical harmonics to this instance.\n\t *\n\t * @param {SphericalHarmonics3} sh - The spherical harmonics to copy.\n\t * @return {SphericalHarmonics3} A reference to this spherical harmonics.\n\t */\n\tcopy( sh ) {\n\n\t\treturn this.set( sh.coefficients );\n\n\t}\n\n\t/**\n\t * Returns a new spherical harmonics with copied values from this instance.\n\t *\n\t * @return {SphericalHarmonics3} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Sets the SH coefficients of this instance from the given array.\n\t *\n\t * @param {Array} array - An array holding the SH coefficients.\n\t * @param {number} [offset=0] - The array offset where to start copying.\n\t * @return {SphericalHarmonics3} A clone of this instance.\n\t */\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\t/**\n\t * Returns an array with the SH coefficients, or copies them into the provided\n\t * array. The coefficients are represented as numbers.\n\t *\n\t * @param {Array} [array=[]] - The target array.\n\t * @param {number} [offset=0] - The array offset where to start copying.\n\t * @return {Array} An array with flat SH coefficients.\n\t */\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/**\n\t * Computes the SH basis for the given normal vector.\n\t *\n\t * @param {Vector3} normal - The normal.\n\t * @param {Array} shBasis - The target array holding the SH basis.\n\t */\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\n/**\n * Light probes are an alternative way of adding light to a 3D scene. Unlike\n * classical light sources (e.g. directional, point or spot lights), light\n * probes do not emit light. Instead they store information about light\n * passing through 3D space. During rendering, the light that hits a 3D\n * object is approximated by using the data from the light probe.\n *\n * Light probes are usually created from (radiance) environment maps. The\n * class {@link LightProbeGenerator} can be used to create light probes from\n * cube textures or render targets. However, light estimation data could also\n * be provided in other forms e.g. by WebXR. This enables the rendering of\n * augmented reality content that reacts to real world lighting.\n *\n * The current probe implementation in three.js supports so-called diffuse\n * light probes. This type of light probe is functionally equivalent to an\n * irradiance environment map.\n *\n * @augments Light\n */\nclass LightProbe extends Light {\n\n\t/**\n\t * Constructs a new light probe.\n\t *\n\t * @param {SphericalHarmonics3} sh - The spherical harmonics which represents encoded lighting information.\n\t * @param {number} [intensity=1] - The light's strength/intensity.\n\t */\n\tconstructor( sh = new SphericalHarmonics3(), intensity = 1 ) {\n\n\t\tsuper( undefined, intensity );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLightProbe = true;\n\n\t\t/**\n\t\t * A light probe uses spherical harmonics to encode lighting information.\n\t\t *\n\t\t * @type {SphericalHarmonics3}\n\t\t */\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\t/**\n\t * Deserializes the light prove from the given JSON.\n\t *\n\t * @param {Object} json - The JSON holding the serialized light probe.\n\t * @return {LightProbe} A reference to this light probe.\n\t */\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\n/**\n * Class for loading geometries. The files are internally\n * loaded via {@link FileLoader}.\n *\n * ```js\n * const loader = new THREE.MaterialLoader();\n * const material = await loader.loadAsync( 'material.json' );\n * ```\n * This loader does not support node materials. Use {@link NodeMaterialLoader} instead.\n *\n * @augments Loader\n */\nclass MaterialLoader extends Loader {\n\n\t/**\n\t * Constructs a new material loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\t/**\n\t\t * A dictionary holding textures used by the material.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.textures = {};\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the loaded material to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(Material)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t */\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\t/**\n\t * Parses the given JSON object and returns a material.\n\t *\n\t * @param {Object} json - The serialized material.\n\t * @return {Material} The parsed material.\n\t */\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 = this.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\t/**\n\t * Textures are not embedded in the material JSON so they have\n\t * to be injected before the loading process starts.\n\t *\n\t * @param {Object} value - A dictionary holding textures for material properties.\n\t * @return {MaterialLoader} A reference to this material loader.\n\t */\n\tsetTextures( value ) {\n\n\t\tthis.textures = value;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Creates a material for the given type.\n\t *\n\t * @param {string} type - The material type.\n\t * @return {Material} The new material.\n\t */\n\tcreateMaterialFromType( type ) {\n\n\t\treturn MaterialLoader.createMaterialFromType( type );\n\n\t}\n\n\t/**\n\t * Creates a material for the given type.\n\t *\n\t * @static\n\t * @param {string} type - The material type.\n\t * @return {Material} The new material.\n\t */\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\n/**\n * A class with loader utility functions.\n */\nclass LoaderUtils {\n\n\t/**\n\t * Extracts the base URL from the given URL.\n\t *\n\t * @param {string} url -The URL to extract the base URL from.\n\t * @return {string} The extracted base URL.\n\t */\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\t/**\n\t * Resolves relative URLs against the given path. Absolute paths, data urls,\n\t * and blob URLs will be returned as is. Invalid URLs will return an empty\n\t * string.\n\t *\n\t * @param {string} url -The URL to resolve.\n\t * @param {string} path - The base path for relative URLs to be resolved against.\n\t * @return {string} The resolved URL.\n\t */\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\n/**\n * An instanced version of a geometry.\n */\nclass InstancedBufferGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new instanced buffer geometry.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isInstancedBufferGeometry = true;\n\n\t\tthis.type = 'InstancedBufferGeometry';\n\n\t\t/**\n\t\t * The instance count.\n\t\t *\n\t\t * @type {number}\n\t\t * @default Infinity\n\t\t */\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\n/**\n * Class for loading geometries. The files are internally\n * loaded via {@link FileLoader}.\n *\n * ```js\n * const loader = new THREE.BufferGeometryLoader();\n * const geometry = await loader.loadAsync( 'models/json/pressure.json' );\n *\n * const material = new THREE.MeshBasicMaterial( { color: 0xF5F5F5 } );\n * const object = new THREE.Mesh( geometry, material );\n * scene.add( object );\n * ```\n *\n * @augments Loader\n */\nclass BufferGeometryLoader extends Loader {\n\n\t/**\n\t * Constructs a new geometry loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the loaded geometry to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(BufferGeometry)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t */\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\t/**\n\t * Parses the given JSON object and returns a geometry.\n\t *\n\t * @param {Object} json - The serialized geometry.\n\t * @return {BufferGeometry} The parsed geometry.\n\t */\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\tgeometry.boundingSphere = new Sphere().fromJSON( boundingSphere );\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\n/**\n * A loader for loading a JSON resource in the [JSON Object/Scene format]{@link https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4}.\n * The files are internally loaded via {@link FileLoader}.\n *\n * ```js\n * const loader = new THREE.ObjectLoader();\n * const obj = await loader.loadAsync( 'models/json/example.json' );\n * scene.add( obj );\n *\n * // Alternatively, to parse a previously loaded JSON structure\n * const object = await loader.parseAsync( a_json_object );\n * scene.add( object );\n * ```\n *\n * @augments Loader\n */\nclass ObjectLoader extends Loader {\n\n\t/**\n\t * Constructs a new object loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the loaded 3D object to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(Object3D)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t */\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\t/**\n\t * Async version of {@link ObjectLoader#load}.\n\t *\n\t * @async\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @return {Promise} A Promise that resolves with the loaded 3D object.\n\t */\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\t/**\n\t * Parses the given JSON. This is used internally by {@link ObjectLoader#load}\n\t * but can also be used directly to parse a previously loaded JSON structure.\n\t *\n\t * @param {Object} json - The serialized 3D object.\n\t * @param {onLoad} onLoad - Executed when all resources (e.g. textures) have been fully loaded.\n\t * @return {Object3D} The parsed 3D object.\n\t */\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\t/**\n\t * Async version of {@link ObjectLoader#parse}.\n\t *\n\t * @param {Object} json - The serialized 3D object.\n\t * @return {Promise} A Promise that resolves with the parsed 3D object.\n\t */\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\t// internals\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._geometryInfo = data.geometryInfo.map( info => {\n\n\t\t\t\t\tlet box = null;\n\t\t\t\t\tlet sphere = null;\n\t\t\t\t\tif ( info.boundingBox !== undefined ) {\n\n\t\t\t\t\t\tbox = new Box3().fromJSON( info.boundingBox );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( info.boundingSphere !== undefined ) {\n\n\t\t\t\t\t\tsphere = new Sphere().fromJSON( info.boundingSphere );\n\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...info,\n\t\t\t\t\t\tboundingBox: box,\n\t\t\t\t\t\tboundingSphere: sphere\n\t\t\t\t\t};\n\n\t\t\t\t} );\n\t\t\t\tobject._instanceInfo = data.instanceInfo;\n\n\t\t\t\tobject._availableInstanceIds = data._availableInstanceIds;\n\t\t\t\tobject._availableGeometryIds = data._availableGeometryIds;\n\n\t\t\t\tobject._nextIndexStart = data.nextIndexStart;\n\t\t\t\tobject._nextVertexStart = data.nextVertexStart;\n\t\t\t\tobject._geometryCount = data.geometryCount;\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\n\t\t\t\tobject._matricesTexture = getTexture( data.matricesTexture.uuid );\n\n\t\t\t\tobject._indirectTexture = getTexture( data.indirectTexture.uuid );\n\n\t\t\t\tif ( data.colorsTexture !== undefined ) {\n\n\t\t\t\t\tobject._colorsTexture = getTexture( data.colorsTexture.uuid );\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.boundingSphere !== undefined ) {\n\n\t\t\t\t\tobject.boundingSphere = new Sphere().fromJSON( data.boundingSphere );\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.boundingBox !== undefined ) {\n\n\t\t\t\t\tobject.boundingBox = new Box3().fromJSON( data.boundingBox );\n\n\t\t\t\t}\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\nconst _errorMap = new WeakMap();\n\n/**\n * A loader for loading images as an [ImageBitmap]{@link https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap}.\n * An `ImageBitmap` provides an asynchronous and resource efficient pathway to prepare\n * textures for rendering.\n *\n * Note that {@link Texture#flipY} and {@link Texture#premultiplyAlpha} are ignored with image bitmaps.\n * They needs these configuration on bitmap creation unlike regular images need them on uploading to GPU.\n *\n * You need to set the equivalent options via {@link ImageBitmapLoader#setOptions} instead.\n *\n * Also note that unlike {@link FileLoader}, this loader avoids multiple concurrent requests to the same URL only if `Cache` is enabled.\n *\n * ```js\n * const loader = new THREE.ImageBitmapLoader();\n * loader.setOptions( { imageOrientation: 'flipY' } ); // set options if needed\n * const imageBitmap = await loader.loadAsync( 'image.png' );\n *\n * const texture = new THREE.Texture( imageBitmap );\n * texture.needsUpdate = true;\n * ```\n *\n * @augments Loader\n */\nclass ImageBitmapLoader extends Loader {\n\n\t/**\n\t * Constructs a new image bitmap loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t\t * Represents the loader options.\n\t\t *\n\t\t * @type {Object}\n\t\t * @default {premultiplyAlpha:'none'}\n\t\t */\n\t\tthis.options = { premultiplyAlpha: 'none' };\n\n\t\t/**\n\t\t * Used for aborting requests.\n\t\t *\n\t\t * @private\n\t\t * @type {AbortController}\n\t\t */\n\t\tthis._abortController = new AbortController();\n\n\t}\n\n\t/**\n\t * Sets the given loader options. The structure of the object must match the `options` parameter of\n\t * [createImageBitmap]{@link https://developer.mozilla.org/en-US/docs/Web/API/Window/createImageBitmap}.\n\t *\n\t * @param {Object} options - The loader options to set.\n\t * @return {ImageBitmapLoader} A reference to this image bitmap loader.\n\t */\n\tsetOptions( options ) {\n\n\t\tthis.options = options;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the loaded image bitmap to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(ImageBitmap)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Unsupported in this loader.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t * @return {ImageBitmap|undefined} The image bitmap.\n\t */\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( `image-bitmap:${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\t// check if there is an error for the cached promise\n\n\t\t\t\t\tif ( _errorMap.has( cached ) === true ) {\n\n\t\t\t\t\t\tif ( onError ) onError( _errorMap.get( cached ) );\n\n\t\t\t\t\t\tscope.manager.itemError( url );\n\t\t\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( onLoad ) onLoad( imageBitmap );\n\n\t\t\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t\t\t\treturn imageBitmap;\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\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\t\tfetchOptions.signal = ( typeof AbortSignal.any === 'function' ) ? AbortSignal.any( [ this._abortController.signal, this.manager.abortController.signal ] ) : this._abortController.signal;\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( `image-bitmap:${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\t_errorMap.set( promise, e );\n\n\t\t\tCache.remove( `image-bitmap:${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( `image-bitmap:${url}`, promise );\n\t\tscope.manager.itemStart( url );\n\n\t}\n\n\t/**\n\t * Aborts ongoing fetch requests.\n\t *\n\t * @return {ImageBitmapLoader} A reference to this instance.\n\t */\n\tabort() {\n\n\t\tthis._abortController.abort();\n\t\tthis._abortController = new AbortController();\n\n\t\treturn this;\n\n\t}\n\n}\n\nlet _context;\n\n/**\n * Manages the global audio context in the engine.\n *\n * @hideconstructor\n */\nclass AudioContext {\n\n\t/**\n\t * Returns the global native audio context.\n\t *\n\t * @return {AudioContext} The native audio context.\n\t */\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\t/**\n\t * Allows to set the global native audio context from outside.\n\t *\n\t * @param {AudioContext} value - The native context to set.\n\t */\n\tstatic setContext( value ) {\n\n\t\t_context = value;\n\n\t}\n\n}\n\n/**\n * Class for loading audio buffers. Audios are internally\n * loaded via {@link FileLoader}.\n *\n * ```js\n * const audioListener = new THREE.AudioListener();\n * const ambientSound = new THREE.Audio( audioListener );\n *\n * const loader = new THREE.AudioLoader();\n * const audioBuffer = await loader.loadAsync( 'audio/ambient_ocean.ogg' );\n *\n * ambientSound.setBuffer( audioBuffer );\n * ambientSound.play();\n * ```\n *\n * @augments Loader\n */\nclass AudioLoader extends Loader {\n\n\t/**\n\t * Constructs a new audio loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and passes the loaded audio buffer\n\t * to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(AudioBuffer)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t */\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\n/**\n * A special type of camera that uses two perspective cameras with\n * stereoscopic projection. Can be used for rendering stereo effects\n * like [3D Anaglyph]{@link https://en.wikipedia.org/wiki/Anaglyph_3D} or\n * [Parallax Barrier]{@link https://en.wikipedia.org/wiki/parallax_barrier}.\n */\nclass StereoCamera {\n\n\t/**\n\t * Constructs a new stereo camera.\n\t */\n\tconstructor() {\n\n\t\t/**\n\t\t * The type property is used for detecting the object type\n\t\t * in context of serialization/deserialization.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.type = 'StereoCamera';\n\n\t\t/**\n\t\t * The aspect.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aspect = 1;\n\n\t\t/**\n\t\t * The eye separation which represents the distance\n\t\t * between the left and right camera.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.064\n\t\t */\n\t\tthis.eyeSep = 0.064;\n\n\t\t/**\n\t\t * The camera representing the left eye. This is added to layer `1` so objects to be\n\t\t * rendered by the left camera must also be added to this layer.\n\t\t *\n\t\t * @type {PerspectiveCamera}\n\t\t */\n\t\tthis.cameraL = new PerspectiveCamera();\n\t\tthis.cameraL.layers.enable( 1 );\n\t\tthis.cameraL.matrixAutoUpdate = false;\n\n\t\t/**\n\t\t * The camera representing the right eye. This is added to layer `2` so objects to be\n\t\t * rendered by the right camera must also be added to this layer.\n\t\t *\n\t\t * @type {PerspectiveCamera}\n\t\t */\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\t/**\n\t * Updates the stereo camera based on the given perspective camera.\n\t *\n\t * @param {PerspectiveCamera} camera - The perspective camera.\n\t */\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\n/**\n * This type of camera can be used in order to efficiently render a scene with a\n * predefined set of cameras. This is an important performance aspect for\n * rendering VR scenes.\n *\n * An instance of `ArrayCamera` always has an array of sub cameras. It's mandatory\n * to define for each sub camera the `viewport` property which determines the\n * part of the viewport that is rendered with this camera.\n *\n * @augments PerspectiveCamera\n */\nclass ArrayCamera extends PerspectiveCamera {\n\n\t/**\n\t * Constructs a new array camera.\n\t *\n\t * @param {Array} [array=[]] - An array of perspective sub cameras.\n\t */\n\tconstructor( array = [] ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isArrayCamera = true;\n\n\t\t/**\n\t\t * Whether this camera is used with multiview rendering or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default false\n\t\t */\n\t\tthis.isMultiViewCamera = false;\n\n\t\t/**\n\t\t * An array of perspective sub cameras.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.cameras = array;\n\n\t}\n\n}\n\n/**\n * Class for keeping track of time.\n */\nclass Clock {\n\n\t/**\n\t * Constructs a new clock.\n\t *\n\t * @param {boolean} [autoStart=true] - Whether to automatically start the clock when\n\t * `getDelta()` is called for the first time.\n\t */\n\tconstructor( autoStart = true ) {\n\n\t\t/**\n\t\t * If set to `true`, the clock starts automatically when `getDelta()` is called\n\t\t * for the first time.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.autoStart = autoStart;\n\n\t\t/**\n\t\t * Holds the time at which the clock's `start()` method was last called.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.startTime = 0;\n\n\t\t/**\n\t\t * Holds the time at which the clock's `start()`, `getElapsedTime()` or\n\t\t * `getDelta()` methods were last called.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.oldTime = 0;\n\n\t\t/**\n\t\t * Keeps track of the total time that the clock has been running.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.elapsedTime = 0;\n\n\t\t/**\n\t\t * Whether the clock is running or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.running = false;\n\n\t}\n\n\t/**\n\t * Starts the clock. When `autoStart` is set to `true`, the method is automatically\n\t * called by the class.\n\t */\n\tstart() {\n\n\t\tthis.startTime = performance.now();\n\n\t\tthis.oldTime = this.startTime;\n\t\tthis.elapsedTime = 0;\n\t\tthis.running = true;\n\n\t}\n\n\t/**\n\t * Stops the clock.\n\t */\n\tstop() {\n\n\t\tthis.getElapsedTime();\n\t\tthis.running = false;\n\t\tthis.autoStart = false;\n\n\t}\n\n\t/**\n\t * Returns the elapsed time in seconds.\n\t *\n\t * @return {number} The elapsed time.\n\t */\n\tgetElapsedTime() {\n\n\t\tthis.getDelta();\n\t\treturn this.elapsedTime;\n\n\t}\n\n\t/**\n\t * Returns the delta time in seconds.\n\t *\n\t * @return {number} The delta time.\n\t */\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 = performance.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\nconst _position$1 = /*@__PURE__*/ new Vector3();\nconst _quaternion$1 = /*@__PURE__*/ new Quaternion();\nconst _scale$1 = /*@__PURE__*/ new Vector3();\n\nconst _forward = /*@__PURE__*/ new Vector3();\nconst _up = /*@__PURE__*/ new Vector3();\n\n/**\n * The class represents a virtual listener of the all positional and non-positional audio effects\n * in the scene. A three.js application usually creates a single listener. It is a mandatory\n * constructor parameter for audios entities like {@link Audio} and {@link PositionalAudio}.\n *\n * In most cases, the listener object is a child of the camera. So the 3D transformation of the\n * camera represents the 3D transformation of the listener.\n *\n * @augments Object3D\n */\nclass AudioListener extends Object3D {\n\n\t/**\n\t * Constructs a new audio listener.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'AudioListener';\n\n\t\t/**\n\t\t * The native audio context.\n\t\t *\n\t\t * @type {AudioContext}\n\t\t * @readonly\n\t\t */\n\t\tthis.context = AudioContext.getContext();\n\n\t\t/**\n\t\t * The gain node used for volume control.\n\t\t *\n\t\t * @type {GainNode}\n\t\t * @readonly\n\t\t */\n\t\tthis.gain = this.context.createGain();\n\t\tthis.gain.connect( this.context.destination );\n\n\t\t/**\n\t\t * An optional filter.\n\t\t *\n\t\t * Defined via {@link AudioListener#setFilter}.\n\t\t *\n\t\t * @type {?AudioNode}\n\t\t * @default null\n\t\t * @readonly\n\t\t */\n\t\tthis.filter = null;\n\n\t\t/**\n\t\t * Time delta values required for `linearRampToValueAtTime()` usage.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t * @readonly\n\t\t */\n\t\tthis.timeDelta = 0;\n\n\t\t// private\n\n\t\tthis._clock = new Clock();\n\n\t}\n\n\t/**\n\t * Returns the listener's input node.\n\t *\n\t * This method is used by other audio nodes to connect to this listener.\n\t *\n\t * @return {GainNode} The input node.\n\t */\n\tgetInput() {\n\n\t\treturn this.gain;\n\n\t}\n\n\t/**\n\t * Removes the current filter from this listener.\n\t *\n\t * @return {AudioListener} A reference to this listener.\n\t */\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\t/**\n\t * Returns the current set filter.\n\t *\n\t * @return {?AudioNode} The filter.\n\t */\n\tgetFilter() {\n\n\t\treturn this.filter;\n\n\t}\n\n\t/**\n\t * Sets the given filter to this listener.\n\t *\n\t * @param {AudioNode} value - The filter to set.\n\t * @return {AudioListener} A reference to this listener.\n\t */\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\t/**\n\t * Returns the applications master volume.\n\t *\n\t * @return {number} The master volume.\n\t */\n\tgetMasterVolume() {\n\n\t\treturn this.gain.gain.value;\n\n\t}\n\n\t/**\n\t * Sets the applications master volume. This volume setting affects\n\t * all audio nodes in the scene.\n\t *\n\t * @param {number} value - The master volume to set.\n\t * @return {AudioListener} A reference to this listener.\n\t */\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\n\t\tthis.timeDelta = this._clock.getDelta();\n\n\t\tthis.matrixWorld.decompose( _position$1, _quaternion$1, _scale$1 );\n\n\t\t// the initial forward and up directions must be orthogonal\n\t\t_forward.set( 0, 0, -1 ).applyQuaternion( _quaternion$1 );\n\t\t_up.set( 0, 1, 0 ).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( _forward.x, endTime );\n\t\t\tlistener.forwardY.linearRampToValueAtTime( _forward.y, endTime );\n\t\t\tlistener.forwardZ.linearRampToValueAtTime( _forward.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( _forward.x, _forward.y, _forward.z, _up.x, _up.y, _up.z );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * Represents a non-positional ( global ) audio object.\n *\n * This and related audio modules make use of the [Web Audio API]{@link https://www.w3.org/TR/webaudio-1.1/}.\n *\n * ```js\n * // create an AudioListener and add it to the camera\n * const listener = new THREE.AudioListener();\n * camera.add( listener );\n *\n * // create a global audio source\n * const sound = new THREE.Audio( listener );\n *\n * // load a sound and set it as the Audio object's buffer\n * const audioLoader = new THREE.AudioLoader();\n * audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {\n * \tsound.setBuffer( buffer );\n * \tsound.setLoop( true );\n * \tsound.setVolume( 0.5 );\n * \tsound.play();\n * });\n * ```\n *\n * @augments Object3D\n */\nclass Audio extends Object3D {\n\n\t/**\n\t * Constructs a new audio.\n\t *\n\t * @param {AudioListener} listener - The global audio listener.\n\t */\n\tconstructor( listener ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Audio';\n\n\t\t/**\n\t\t * The global audio listener.\n\t\t *\n\t\t * @type {AudioListener}\n\t\t * @readonly\n\t\t */\n\t\tthis.listener = listener;\n\n\t\t/**\n\t\t * The audio context.\n\t\t *\n\t\t * @type {AudioContext}\n\t\t * @readonly\n\t\t */\n\t\tthis.context = listener.context;\n\n\t\t/**\n\t\t * The gain node used for volume control.\n\t\t *\n\t\t * @type {GainNode}\n\t\t * @readonly\n\t\t */\n\t\tthis.gain = this.context.createGain();\n\t\tthis.gain.connect( listener.getInput() );\n\n\t\t/**\n\t\t * Whether to start playback automatically or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.autoplay = false;\n\n\t\t/**\n\t\t * A reference to an audio buffer.\n\t\t *\n\t\t * Defined via {@link Audio#setBuffer}.\n\t\t *\n\t\t * @type {?AudioBuffer}\n\t\t * @default null\n\t\t * @readonly\n\t\t */\n\t\tthis.buffer = null;\n\n\t\t/**\n\t\t * Modify pitch, measured in cents. +/- 100 is a semitone.\n\t\t * +/- 1200 is an octave.\n\t\t *\n\t\t * Defined via {@link Audio#setDetune}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t * @readonly\n\t\t */\n\t\tthis.detune = 0;\n\n\t\t/**\n\t\t * Whether the audio should loop or not.\n\t\t *\n\t\t * Defined via {@link Audio#setLoop}.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t * @readonly\n\t\t */\n\t\tthis.loop = false;\n\n\t\t/**\n\t\t * Defines where in the audio buffer the replay should\n\t\t * start, in seconds.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.loopStart = 0;\n\n\t\t/**\n\t\t * Defines where in the audio buffer the replay should\n\t\t * stop, in seconds.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.loopEnd = 0;\n\n\t\t/**\n\t\t * An offset to the time within the audio buffer the playback\n\t\t * should begin, in seconds.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.offset = 0;\n\n\t\t/**\n\t\t * Overrides the default duration of the audio.\n\t\t *\n\t\t * @type {undefined|number}\n\t\t * @default undefined\n\t\t */\n\t\tthis.duration = undefined;\n\n\t\t/**\n\t\t * The playback speed.\n\t\t *\n\t\t * Defined via {@link Audio#setPlaybackRate}.\n\t\t *\n\t\t * @type {number}\n\t\t * @readonly\n\t\t * @default 1\n\t\t */\n\t\tthis.playbackRate = 1;\n\n\t\t/**\n\t\t * Indicates whether the audio is playing or not.\n\t\t *\n\t\t * This flag will be automatically set when using {@link Audio#play},\n\t\t * {@link Audio#pause}, {@link Audio#stop}.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default false\n\t\t */\n\t\tthis.isPlaying = false;\n\n\t\t/**\n\t\t * Indicates whether the audio playback can be controlled\n\t\t * with method like {@link Audio#play} or {@link Audio#pause}.\n\t\t *\n\t\t * This flag will be automatically set when audio sources are\n\t\t * defined.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.hasPlaybackControl = true;\n\n\t\t/**\n\t\t * Holds a reference to the current audio source.\n\t\t *\n\t\t * The property is automatically by one of the `set*()` methods.\n\t\t *\n\t\t * @type {?AudioNode}\n\t\t * @readonly\n\t\t * @default null\n\t\t */\n\t\tthis.source = null;\n\n\t\t/**\n\t\t * Defines the source type.\n\t\t *\n\t\t * The property is automatically by one of the `set*()` methods.\n\t\t *\n\t\t * @type {('empty'|'audioNode'|'mediaNode'|'mediaStreamNode'|'buffer')}\n\t\t * @readonly\n\t\t * @default 'empty'\n\t\t */\n\t\tthis.sourceType = 'empty';\n\n\t\tthis._startedAt = 0;\n\t\tthis._progress = 0;\n\t\tthis._connected = false;\n\n\t\t/**\n\t\t * Can be used to apply a variety of low-order filters to create\n\t\t * more complex sound effects e.g. via `BiquadFilterNode`.\n\t\t *\n\t\t * The property is automatically set by {@link Audio#setFilters}.\n\t\t *\n\t\t * @type {Array}\n\t\t * @readonly\n\t\t */\n\t\tthis.filters = [];\n\n\t}\n\n\t/**\n\t * Returns the output audio node.\n\t *\n\t * @return {GainNode} The output node.\n\t */\n\tgetOutput() {\n\n\t\treturn this.gain;\n\n\t}\n\n\t/**\n\t * Sets the given audio node as the source of this instance.\n\t *\n\t * {@link Audio#sourceType} is set to `audioNode` and {@link Audio#hasPlaybackControl} to `false`.\n\t *\n\t * @param {AudioNode} audioNode - The audio node like an instance of `OscillatorNode`.\n\t * @return {Audio} A reference to this instance.\n\t */\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\t/**\n\t * Sets the given media element as the source of this instance.\n\t *\n\t * {@link Audio#sourceType} is set to `mediaNode` and {@link Audio#hasPlaybackControl} to `false`.\n\t *\n\t * @param {HTMLMediaElement} mediaElement - The media element.\n\t * @return {Audio} A reference to this instance.\n\t */\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\t/**\n\t * Sets the given media stream as the source of this instance.\n\t *\n\t * {@link Audio#sourceType} is set to `mediaStreamNode` and {@link Audio#hasPlaybackControl} to `false`.\n\t *\n\t * @param {MediaStream} mediaStream - The media stream.\n\t * @return {Audio} A reference to this instance.\n\t */\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\t/**\n\t * Sets the given audio buffer as the source of this instance.\n\t *\n\t * {@link Audio#sourceType} is set to `buffer` and {@link Audio#hasPlaybackControl} to `true`.\n\t *\n\t * @param {AudioBuffer} audioBuffer - The audio buffer.\n\t * @return {Audio} A reference to this instance.\n\t */\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\t/**\n\t * Starts the playback of the audio.\n\t *\n\t * Can only be used with compatible audio sources that allow playback control.\n\t *\n\t * @param {number} [delay=0] - The delay, in seconds, at which the audio should start playing.\n\t * @return {Audio|undefined} A reference to this instance.\n\t */\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\t/**\n\t * Pauses the playback of the audio.\n\t *\n\t * Can only be used with compatible audio sources that allow playback control.\n\t *\n\t * @return {Audio|undefined} A reference to this instance.\n\t */\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\t/**\n\t * Stops the playback of the audio.\n\t *\n\t * Can only be used with compatible audio sources that allow playback control.\n\t *\n\t * @param {number} [delay=0] - The delay, in seconds, at which the audio should stop playing.\n\t * @return {Audio|undefined} A reference to this instance.\n\t */\n\tstop( delay = 0 ) {\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( this.context.currentTime + delay );\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\t/**\n\t * Connects to the audio source. This is used internally on\n\t * initialisation and when setting / removing filters.\n\t *\n\t * @return {Audio} A reference to this instance.\n\t */\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\t/**\n\t * Disconnects to the audio source. This is used internally on\n\t * initialisation and when setting / removing filters.\n\t *\n\t * @return {Audio|undefined} A reference to this instance.\n\t */\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\t/**\n\t * Returns the current set filters.\n\t *\n\t * @return {Array} The list of filters.\n\t */\n\tgetFilters() {\n\n\t\treturn this.filters;\n\n\t}\n\n\t/**\n\t * Sets an array of filters and connects them with the audio source.\n\t *\n\t * @param {Array} [value] - A list of filters.\n\t * @return {Audio} A reference to this instance.\n\t */\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\t/**\n\t * Defines the detuning of oscillation in cents.\n\t *\n\t * @param {number} value - The detuning of oscillation in cents.\n\t * @return {Audio} A reference to this instance.\n\t */\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\t/**\n\t * Returns the detuning of oscillation in cents.\n\t *\n\t * @return {number} The detuning of oscillation in cents.\n\t */\n\tgetDetune() {\n\n\t\treturn this.detune;\n\n\t}\n\n\t/**\n\t * Returns the first filter in the list of filters.\n\t *\n\t * @return {AudioNode|undefined} The first filter in the list of filters.\n\t */\n\tgetFilter() {\n\n\t\treturn this.getFilters()[ 0 ];\n\n\t}\n\n\t/**\n\t * Applies a single filter node to the audio.\n\t *\n\t * @param {AudioNode} [filter] - The filter to set.\n\t * @return {Audio} A reference to this instance.\n\t */\n\tsetFilter( filter ) {\n\n\t\treturn this.setFilters( filter ? [ filter ] : [] );\n\n\t}\n\n\t/**\n\t * Sets the playback rate.\n\t *\n\t * Can only be used with compatible audio sources that allow playback control.\n\t *\n\t * @param {number} [value] - The playback rate to set.\n\t * @return {Audio|undefined} A reference to this instance.\n\t */\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\t/**\n\t * Returns the current playback rate.\n\n\t * @return {number} The playback rate.\n\t */\n\tgetPlaybackRate() {\n\n\t\treturn this.playbackRate;\n\n\t}\n\n\t/**\n\t * Automatically called when playback finished.\n\t */\n\tonEnded() {\n\n\t\tthis.isPlaying = false;\n\t\tthis._progress = 0;\n\n\t}\n\n\t/**\n\t * Returns the loop flag.\n\t *\n\t * Can only be used with compatible audio sources that allow playback control.\n\t *\n\t * @return {boolean} Whether the audio should loop or not.\n\t */\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\t/**\n\t * Sets the loop flag.\n\t *\n\t * Can only be used with compatible audio sources that allow playback control.\n\t *\n\t * @param {boolean} value - Whether the audio should loop or not.\n\t * @return {Audio|undefined} A reference to this instance.\n\t */\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\t/**\n\t * Sets the loop start value which defines where in the audio buffer the replay should\n\t * start, in seconds.\n\t *\n\t * @param {number} value - The loop start value.\n\t * @return {Audio} A reference to this instance.\n\t */\n\tsetLoopStart( value ) {\n\n\t\tthis.loopStart = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the loop end value which defines where in the audio buffer the replay should\n\t * stop, in seconds.\n\t *\n\t * @param {number} value - The loop end value.\n\t * @return {Audio} A reference to this instance.\n\t */\n\tsetLoopEnd( value ) {\n\n\t\tthis.loopEnd = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the volume.\n\t *\n\t * @return {number} The volume.\n\t */\n\tgetVolume() {\n\n\t\treturn this.gain.gain.value;\n\n\t}\n\n\t/**\n\t * Sets the volume.\n\t *\n\t * @param {number} value - The volume to set.\n\t * @return {Audio} A reference to this instance.\n\t */\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\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.sourceType !== 'buffer' ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: Audio source type cannot be copied.' );\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tthis.autoplay = source.autoplay;\n\n\t\tthis.buffer = source.buffer;\n\t\tthis.detune = source.detune;\n\t\tthis.loop = source.loop;\n\t\tthis.loopStart = source.loopStart;\n\t\tthis.loopEnd = source.loopEnd;\n\t\tthis.offset = source.offset;\n\t\tthis.duration = source.duration;\n\t\tthis.playbackRate = source.playbackRate;\n\t\tthis.hasPlaybackControl = source.hasPlaybackControl;\n\t\tthis.sourceType = source.sourceType;\n\n\t\tthis.filters = source.filters.slice();\n\n\t\treturn this;\n\n\t}\n\n\tclone( recursive ) {\n\n\t\treturn new this.constructor( this.listener ).copy( this, recursive );\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\n/**\n * Represents a positional audio object.\n *\n * ```js\n * // create an AudioListener and add it to the camera\n * const listener = new THREE.AudioListener();\n * camera.add( listener );\n *\n * // create the PositionalAudio object (passing in the listener)\n * const sound = new THREE.PositionalAudio( listener );\n *\n * // load a sound and set it as the PositionalAudio object's buffer\n * const audioLoader = new THREE.AudioLoader();\n * audioLoader.load( 'sounds/song.ogg', function( buffer ) {\n * \tsound.setBuffer( buffer );\n * \tsound.setRefDistance( 20 );\n * \tsound.play();\n * });\n *\n * // create an object for the sound to play from\n * const sphere = new THREE.SphereGeometry( 20, 32, 16 );\n * const material = new THREE.MeshPhongMaterial( { color: 0xff2200 } );\n * const mesh = new THREE.Mesh( sphere, material );\n * scene.add( mesh );\n *\n * // finally add the sound to the mesh\n * mesh.add( sound );\n *\n * @augments Audio\n */\nclass PositionalAudio extends Audio {\n\n\t/**\n\t * Constructs a positional audio.\n\t *\n\t * @param {AudioListener} listener - The global audio listener.\n\t */\n\tconstructor( listener ) {\n\n\t\tsuper( listener );\n\n\t\t/**\n\t\t * The panner node represents the location, direction, and behavior of an audio\n\t\t * source in 3D space.\n\t\t *\n\t\t * @type {PannerNode}\n\t\t * @readonly\n\t\t */\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\treturn this;\n\n\t}\n\n\tdisconnect() {\n\n\t\tsuper.disconnect();\n\n\t\tthis.panner.disconnect( this.gain );\n\n\t\treturn this;\n\n\t}\n\n\tgetOutput() {\n\n\t\treturn this.panner;\n\n\t}\n\n\t/**\n\t * Returns the current reference distance.\n\t *\n\t * @return {number} The reference distance.\n\t */\n\tgetRefDistance() {\n\n\t\treturn this.panner.refDistance;\n\n\t}\n\n\t/**\n\t * Defines the reference distance for reducing volume as the audio source moves\n\t * further from the listener – i.e. the distance at which the volume reduction\n\t * starts taking effect.\n\t *\n\t * @param {number} value - The reference distance to set.\n\t * @return {PositionalAudio} A reference to this instance.\n\t */\n\tsetRefDistance( value ) {\n\n\t\tthis.panner.refDistance = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the current rolloff factor.\n\t *\n\t * @return {number} The rolloff factor.\n\t */\n\tgetRolloffFactor() {\n\n\t\treturn this.panner.rolloffFactor;\n\n\t}\n\n\t/**\n\t * Defines how quickly the volume is reduced as the source moves away from the listener.\n\t *\n\t * @param {number} value - The rolloff factor.\n\t * @return {PositionalAudio} A reference to this instance.\n\t */\n\tsetRolloffFactor( value ) {\n\n\t\tthis.panner.rolloffFactor = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the current distance model.\n\t *\n\t * @return {('linear'|'inverse'|'exponential')} The distance model.\n\t */\n\tgetDistanceModel() {\n\n\t\treturn this.panner.distanceModel;\n\n\t}\n\n\t/**\n\t * Defines which algorithm to use to reduce the volume of the audio source\n\t * as it moves away from the listener.\n\t *\n\t * Read [the spec]{@link https://www.w3.org/TR/webaudio-1.1/#enumdef-distancemodeltype}\n\t * for more details.\n\t *\n\t * @param {('linear'|'inverse'|'exponential')} value - The distance model to set.\n\t * @return {PositionalAudio} A reference to this instance.\n\t */\n\tsetDistanceModel( value ) {\n\n\t\tthis.panner.distanceModel = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the current max distance.\n\t *\n\t * @return {number} The max distance.\n\t */\n\tgetMaxDistance() {\n\n\t\treturn this.panner.maxDistance;\n\n\t}\n\n\t/**\n\t * Defines the maximum distance between the audio source and the listener,\n\t * after which the volume is not reduced any further.\n\t *\n\t * This value is used only by the `linear` distance model.\n\t *\n\t * @param {number} value - The max distance.\n\t * @return {PositionalAudio} A reference to this instance.\n\t */\n\tsetMaxDistance( value ) {\n\n\t\tthis.panner.maxDistance = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the directional cone in which the audio can be listened.\n\t *\n\t * @param {number} coneInnerAngle - An angle, in degrees, of a cone inside of which there will be no volume reduction.\n\t * @param {number} coneOuterAngle - An angle, in degrees, of a cone outside of which the volume will be reduced by a constant value, defined by the `coneOuterGain` parameter.\n\t * @param {number} coneOuterGain - The amount of volume reduction outside the cone defined by the `coneOuterAngle`. When set to `0`, no sound can be heard.\n\t * @return {PositionalAudio} A reference to this instance.\n\t */\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\n/**\n * This class can be used to analyse audio data.\n *\n * ```js\n * // create an AudioListener and add it to the camera\n * const listener = new THREE.AudioListener();\n * camera.add( listener );\n *\n * // create an Audio source\n * const sound = new THREE.Audio( listener );\n *\n * // load a sound and set it as the Audio object's buffer\n * const audioLoader = new THREE.AudioLoader();\n * audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {\n * \tsound.setBuffer( buffer );\n * \tsound.setLoop(true);\n * \tsound.setVolume(0.5);\n * \tsound.play();\n * });\n *\n * // create an AudioAnalyser, passing in the sound and desired fftSize\n * const analyser = new THREE.AudioAnalyser( sound, 32 );\n *\n * // get the average frequency of the sound\n * const data = analyser.getAverageFrequency();\n * ```\n */\nclass AudioAnalyser {\n\n\t/**\n\t * Constructs a new audio analyzer.\n\t *\n\t * @param {Audio} audio - The audio to analyze.\n\t * @param {number} [fftSize=2048] - The window size in samples that is used when performing a Fast Fourier Transform (FFT) to get frequency domain data.\n\t */\n\tconstructor( audio, fftSize = 2048 ) {\n\n\t\t/**\n\t\t * The global audio listener.\n\t\t *\n\t\t * @type {AnalyserNode}\n\t\t */\n\t\tthis.analyser = audio.context.createAnalyser();\n\t\tthis.analyser.fftSize = fftSize;\n\n\t\t/**\n\t\t * Holds the analyzed data.\n\t\t *\n\t\t * @type {Uint8Array}\n\t\t */\n\t\tthis.data = new Uint8Array( this.analyser.frequencyBinCount );\n\n\t\taudio.getOutput().connect( this.analyser );\n\n\t}\n\n\t/**\n\t * Returns an array with frequency data of the audio.\n\t *\n\t * Each item in the array represents the decibel value for a specific frequency.\n\t * The frequencies are spread linearly from 0 to 1/2 of the sample rate.\n\t * For example, for 48000 sample rate, the last item of the array will represent\n\t * the decibel value for 24000 Hz.\n\t *\n\t * @return {Uint8Array} The frequency data.\n\t */\n\tgetFrequencyData() {\n\n\t\tthis.analyser.getByteFrequencyData( this.data );\n\n\t\treturn this.data;\n\n\t}\n\n\t/**\n\t * Returns the average of the frequencies returned by {@link AudioAnalyser#getFrequencyData}.\n\t *\n\t * @return {number} The average frequency.\n\t */\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\n/**\n * Buffered scene graph property that allows weighted accumulation; used internally.\n */\nclass PropertyMixer {\n\n\t/**\n\t * Constructs a new property mixer.\n\t *\n\t * @param {PropertyBinding} binding - The property binding.\n\t * @param {string} typeName - The keyframe track type name.\n\t * @param {number} valueSize - The keyframe track value size.\n\t */\n\tconstructor( binding, typeName, valueSize ) {\n\n\t\t/**\n\t\t * The property binding.\n\t\t *\n\t\t * @type {PropertyBinding}\n\t\t */\n\t\tthis.binding = binding;\n\n\t\t/**\n\t\t * The keyframe track value size.\n\t\t *\n\t\t * @type {number}\n\t\t */\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\t/**\n\t\t * TODO\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.cumulativeWeight = 0;\n\n\t\t/**\n\t\t * TODO\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t\t/**\n\t\t * TODO\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.useCount = 0;\n\n\t\t/**\n\t\t * TODO\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.referenceCount = 0;\n\n\t}\n\n\t/**\n\t * Accumulates data in the `incoming` region into `accu`.\n\t *\n\t * @param {number} accuIndex - The accumulation index.\n\t * @param {number} weight - The weight.\n\t */\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/**\n\t * Accumulates data in the `incoming` region into `add`.\n\t *\n\t * @param {number} weight - The weight.\n\t */\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/**\n\t * Applies the state of `accu` to the binding when accus differ.\n\t *\n\t * @param {number} accuIndex - The accumulation index.\n\t */\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\n\t/**\n\t * Remembers the state of the bound property and copy it to both accus.\n\t */\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/**\n\t * Applies the state previously taken via {@link PropertyMixer#saveOriginalState} to the binding.\n\t */\n\trestoreOriginalState() {\n\n\t\tconst originalValueOffset = this.valueSize * 3;\n\t\tthis.binding.setValue( this.buffer, originalValueOffset );\n\n\t}\n\n\t// internals\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.\n\n\n/**\n * This holds a reference to a real property in the scene graph; used internally.\n */\nclass PropertyBinding {\n\n\t/**\n\t * Constructs a new property binding.\n\t *\n\t * @param {Object} rootNode - The root node.\n\t * @param {string} path - The path.\n\t * @param {?Object} [parsedPath] - The parsed path.\n\t */\n\tconstructor( rootNode, path, parsedPath ) {\n\n\t\t/**\n\t\t * The object path to the animated property.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.path = path;\n\n\t\t/**\n\t\t * An object holding information about the path.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.parsedPath = parsedPath || PropertyBinding.parseTrackName( path );\n\n\t\t/**\n\t\t * The object owns the animated property.\n\t\t *\n\t\t * @type {?Object}\n\t\t */\n\t\tthis.node = PropertyBinding.findNode( rootNode, this.parsedPath.nodeName );\n\n\t\t/**\n\t\t * The root node.\n\t\t *\n\t\t * @type {Object3D|Skeleton}\n\t\t */\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\t/**\n\t * Factory method for creating a property binding from the given parameters.\n\t *\n\t * @static\n\t * @param {Object} root - The root node.\n\t * @param {string} path - The path.\n\t * @param {?Object} [parsedPath] - The parsed path.\n\t * @return {PropertyBinding|Composite} The created property binding or composite.\n\t */\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} The sanitized node name.\n\t */\n\tstatic sanitizeNodeName( name ) {\n\n\t\treturn name.replace( /\\s/g, '_' ).replace( _reservedRe, '' );\n\n\t}\n\n\t/**\n\t * Parses the given track name (an object path to an animated property) and\n\t * returns an object with information about the path. Matches strings in the following forms:\n\t *\n\t * - nodeName.property\n\t * - nodeName.property[accessor]\n\t * - nodeName.material.property[accessor]\n\t * - uuid.property[accessor]\n\t * - uuid.objectName[objectIndex].propertyName[propertyIndex]\n\t * - parentName/nodeName.property\n\t * - parentName/parentName/nodeName.property[index]\n\t * - .bone[Armature.DEF_cog].position\n\t * - scene:helium_balloon_model:helium_balloon_model.position\n\t *\n\t * @static\n\t * @param {string} trackName - The track name to parse.\n\t * @return {Object} The parsed track name as an object.\n\t */\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\t/**\n\t * Searches for a node in the hierarchy of the given root object by the given\n\t * node name.\n\t *\n\t * @static\n\t * @param {Object} root - The root object.\n\t * @param {string|number} nodeName - The name of the node.\n\t * @return {?Object} The found node. Returns `null` if no object was found.\n\t */\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/**\n\t * Creates a getter / setter pair for the property tracked by this binding.\n\t */\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.isMaterial === true ) {\n\n\t\t\tversioning = this.Versioning.NeedsUpdate;\n\n\t\t} else if ( targetObject.isObject3D === true ) {\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\t/**\n\t * Unbinds the property.\n\t */\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 * 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 * - Instead pass this object as 'root'.\n * - You can also add and remove objects later when the mixer 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 on the group.\n *\n * Limitation:\n *\n * - The animated properties must be compatible among the all objects in the group.\n * - A single property can either be controlled through a target group or directly, but not both.\n */\nclass AnimationObjectGroup {\n\n\t/**\n\t * Constructs a new animation group.\n\t *\n\t * @param {...Object3D} arguments - An arbitrary number of 3D objects that share the same animation state.\n\t */\n\tconstructor() {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isAnimationObjectGroup = true;\n\n\t\t/**\n\t\t * The UUID of the 3D object.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\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\t/**\n\t * Adds an arbitrary number of objects to this animation group.\n\t *\n\t * @param {...Object3D} arguments - The 3D objects to add.\n\t */\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\t/**\n\t * Removes an arbitrary number of objects to this animation group\n\t *\n\t * @param {...Object3D} arguments - The 3D objects to remove.\n\t */\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/**\n\t * Deallocates all memory resources for the passed 3D objects of this animation group.\n\t *\n\t * @param {...Object3D} arguments - The 3D objects to uncache.\n\t */\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\n/**\n * An instance of `AnimationAction` schedules the playback of an animation which is\n * stored in {@link AnimationClip}.\n */\nclass AnimationAction {\n\n\t/**\n\t * Constructs a new animation action.\n\t *\n\t * @param {AnimationMixer} mixer - The mixer that is controlled by this action.\n\t * @param {AnimationClip} clip - The animation clip that holds the actual keyframes.\n\t * @param {?Object3D} [localRoot=null] - The root object on which this action is performed.\n\t * @param {(NormalAnimationBlendMode|AdditiveAnimationBlendMode)} [blendMode] - The blend mode.\n\t */\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\n\t\t/**\n\t\t * Defines how the animation is blended/combined when two or more animations\n\t\t * are simultaneously played.\n\t\t *\n\t\t * @type {(NormalAnimationBlendMode|AdditiveAnimationBlendMode)}\n\t\t */\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\t/**\n\t\t * The loop mode, set via {@link AnimationAction#setLoop}.\n\t\t *\n\t\t * @type {(LoopRepeat|LoopOnce|LoopPingPong)}\n\t\t * @default LoopRepeat\n\t\t */\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/**\n\t\t * The local time of this action (in seconds, starting with `0`).\n\t\t *\n\t\t * The value gets clamped or wrapped to `[0,clip.duration]` (according to the\n\t\t * loop state).\n\t\t *\n\t\t * @type {number}\n\t\t * @default Infinity\n\t\t */\n\t\tthis.time = 0;\n\n\t\t/**\n\t\t * Scaling factor for the {@link AnimationAction#time}. A value of `0` causes the\n\t\t * animation to pause. Negative values cause the animation to play backwards.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.timeScale = 1;\n\t\tthis._effectiveTimeScale = 1;\n\n\t\t/**\n\t\t * The degree of influence of this action (in the interval `[0, 1]`). Values\n\t\t * between `0` (no impact) and `1` (full impact) can be used to blend between\n\t\t * several actions.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.weight = 1;\n\t\tthis._effectiveWeight = 1;\n\n\t\t/**\n\t\t * The number of repetitions of the performed clip over the course of this action.\n\t\t * Can be set via {@link AnimationAction#setLoop}.\n\t\t *\n\t\t * Setting this number has no effect if {@link AnimationAction#loop} is set to\n\t\t * `THREE:LoopOnce`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default Infinity\n\t\t */\n\t\tthis.repetitions = Infinity;\n\n\t\t/**\n\t\t * If set to `true`, the playback of the action is paused.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.paused = false;\n\n\t\t/**\n\t\t * If set to `false`, the action is disabled so it has no impact.\n\t\t *\n\t\t * When the action is re-enabled, the animation continues from its current\n\t\t * time (setting `enabled` to `false` doesn't reset the action).\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.enabled = true;\n\n\t\t/**\n\t\t * If set to true the animation will automatically be paused on its last frame.\n\t\t *\n\t\t * If set to false, {@link AnimationAction#enabled} will automatically be switched\n\t\t * to `false` when the last loop of the action has finished, so that this action has\n\t\t * no further impact.\n\t\t *\n\t\t * Note: This member has no impact if the action is interrupted (it\n\t\t * has only an effect if its last loop has really finished).\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.clampWhenFinished = false;\n\n\t\t/**\n\t\t * Enables smooth interpolation without separate clips for start, loop and end.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.zeroSlopeAtStart = true;\n\n\t\t/**\n\t\t * Enables smooth interpolation without separate clips for start, loop and end.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.zeroSlopeAtEnd = true;\n\n\t}\n\n\t/**\n\t * Starts the playback of the animation.\n\t *\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tplay() {\n\n\t\tthis._mixer._activateAction( this );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Stops the playback of the animation.\n\t *\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tstop() {\n\n\t\tthis._mixer._deactivateAction( this );\n\n\t\treturn this.reset();\n\n\t}\n\n\t/**\n\t * Resets the playback of the animation.\n\t *\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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\t/**\n\t * Returns `true` if the animation is running.\n\t *\n\t * @return {boolean} Whether the animation is running or not.\n\t */\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/**\n\t * Returns `true` when {@link AnimationAction#play} has been called.\n\t *\n\t * @return {boolean} Whether the animation is scheduled or not.\n\t */\n\tisScheduled() {\n\n\t\treturn this._mixer._isActiveAction( this );\n\n\t}\n\n\t/**\n\t * Defines the time when the animation should start.\n\t *\n\t * @param {number} time - The start time in seconds.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tstartAt( time ) {\n\n\t\tthis._startTime = time;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Configures the loop settings for this action.\n\t *\n\t * @param {(LoopRepeat|LoopOnce|LoopPingPong)} mode - The loop mode.\n\t * @param {number} repetitions - The number of repetitions.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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/**\n\t * Sets the effective weight of this action.\n\t *\n\t * An action has no effect and thus an effective weight of zero when the\n\t * action is disabled.\n\t *\n\t * @param {number} weight - The weight to set.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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/**\n\t * Returns the effective weight of this action.\n\t *\n\t * @return {number} The effective weight.\n\t */\n\tgetEffectiveWeight() {\n\n\t\treturn this._effectiveWeight;\n\n\t}\n\n\t/**\n\t * Fades the animation in by increasing its weight gradually from `0` to `1`,\n\t * within the passed time interval.\n\t *\n\t * @param {number} duration - The duration of the fade.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tfadeIn( duration ) {\n\n\t\treturn this._scheduleFading( duration, 0, 1 );\n\n\t}\n\n\t/**\n\t * Fades the animation out by decreasing its weight gradually from `1` to `0`,\n\t * within the passed time interval.\n\t *\n\t * @param {number} duration - The duration of the fade.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tfadeOut( duration ) {\n\n\t\treturn this._scheduleFading( duration, 1, 0 );\n\n\t}\n\n\t/**\n\t * Causes this action to fade in and the given action to fade out,\n\t * within the passed time interval.\n\t *\n\t * @param {AnimationAction} fadeOutAction - The animation action to fade out.\n\t * @param {number} duration - The duration of the fade.\n\t * @param {boolean} [warp=false] - Whether warping should be used or not.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tcrossFadeFrom( fadeOutAction, duration, warp = false ) {\n\n\t\tfadeOutAction.fadeOut( duration );\n\t\tthis.fadeIn( duration );\n\n\t\tif ( warp === true ) {\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\t/**\n\t * Causes this action to fade out and the given action to fade in,\n\t * within the passed time interval.\n\t *\n\t * @param {AnimationAction} fadeInAction - The animation action to fade in.\n\t * @param {number} duration - The duration of the fade.\n\t * @param {boolean} [warp=false] - Whether warping should be used or not.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tcrossFadeTo( fadeInAction, duration, warp = false ) {\n\n\t\treturn fadeInAction.crossFadeFrom( this, duration, warp );\n\n\t}\n\n\t/**\n\t * Stops any fading which is applied to this action.\n\t *\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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/**\n\t * Sets the effective time scale of this action.\n\t *\n\t * An action has no effect and thus an effective time scale of zero when the\n\t * action is paused.\n\t *\n\t * @param {number} timeScale - The time scale to set.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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/**\n\t * Returns the effective time scale of this action.\n\t *\n\t * @return {number} The effective time scale.\n\t */\n\tgetEffectiveTimeScale() {\n\n\t\treturn this._effectiveTimeScale;\n\n\t}\n\n\t/**\n\t * Sets the duration for a single loop of this action.\n\t *\n\t * @param {number} duration - The duration to set.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tsetDuration( duration ) {\n\n\t\tthis.timeScale = this._clip.duration / duration;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\t/**\n\t * Synchronizes this action with the passed other action.\n\t *\n\t * @param {AnimationAction} action - The action to sync with.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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\t/**\n\t * Decelerates this animation's speed to `0` within the passed time interval.\n\t *\n\t * @param {number} duration - The duration.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\thalt( duration ) {\n\n\t\treturn this.warp( this._effectiveTimeScale, 0, duration );\n\n\t}\n\n\t/**\n\t * Changes the playback speed, within the passed time interval, by modifying\n\t * {@link AnimationAction#timeScale} gradually from `startTimeScale` to\n\t * `endTimeScale`.\n\t *\n\t * @param {number} startTimeScale - The start time scale.\n\t * @param {number} endTimeScale - The end time scale.\n\t * @param {number} duration - The duration.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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\t/**\n\t * Stops any scheduled warping which is applied to this action.\n\t *\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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/**\n\t * Returns the animation mixer of this animation action.\n\t *\n\t * @return {AnimationMixer} The animation mixer.\n\t */\n\tgetMixer() {\n\n\t\treturn this._mixer;\n\n\t}\n\n\t/**\n\t * Returns the animation clip of this animation action.\n\t *\n\t * @return {AnimationClip} The animation clip.\n\t */\n\tgetClip() {\n\n\t\treturn this._clip;\n\n\t}\n\n\t/**\n\t * Returns the root object of this animation action.\n\t *\n\t * @return {Object3D} The root object.\n\t */\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/**\n * `AnimationMixer` is a player for animations on a particular object in\n * the scene. When multiple objects in the scene are animated independently,\n * one `AnimationMixer` may be used for each object.\n */\nclass AnimationMixer extends EventDispatcher {\n\n\t/**\n\t * Constructs a new animation mixer.\n\t *\n\t * @param {Object3D} root - The object whose animations shall be played by this mixer.\n\t */\n\tconstructor( root ) {\n\n\t\tsuper();\n\n\t\tthis._root = root;\n\t\tthis._initMemoryManager();\n\t\tthis._accuIndex = 0;\n\n\t\t/**\n\t\t * The global mixer time (in seconds; starting with `0` on the mixer's creation).\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.time = 0;\n\n\t\t/**\n\t\t * A scaling factor for the global time.\n\t\t *\n\t\t * Note: Setting this member to `0` and later back to `1` is a\n\t\t * possibility to pause/unpause all actions that are controlled by this\n\t\t * mixer.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\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/**\n\t * Returns an instance of {@link AnimationAction} for the passed clip.\n\t *\n\t * If an action fitting the clip and root parameters doesn't yet exist, it\n\t * will be created by this method. Calling this method several times with the\n\t * same clip and root parameters always returns the same action.\n\t *\n\t * @param {AnimationClip|string} clip - An animation clip or alternatively the name of the animation clip.\n\t * @param {Object3D} [optionalRoot] - An alternative root object.\n\t * @param {(NormalAnimationBlendMode|AdditiveAnimationBlendMode)} [blendMode] - The blend mode.\n\t * @return {?AnimationAction} The animation action.\n\t */\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/**\n\t * Returns an existing animation action for the passed clip.\n\t *\n\t * @param {AnimationClip|string} clip - An animation clip or alternatively the name of the animation clip.\n\t * @param {Object3D} [optionalRoot] - An alternative root object.\n\t * @return {?AnimationAction} The animation action. Returns `null` if no action was found.\n\t */\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/**\n\t * Deactivates all previously scheduled actions on this mixer.\n\t *\n\t * @return {AnimationMixer} A reference to thi animation mixer.\n\t */\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/**\n\t * Advances the global mixer time and updates the animation.\n\t *\n\t * This is usually done in the render loop by passing the delta\n\t * time from {@link Clock} or {@link Timer}.\n\t *\n\t * @param {number} deltaTime - The delta time in seconds.\n\t * @return {AnimationMixer} A reference to thi animation mixer.\n\t */\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/**\n\t * Sets the global mixer to a specific time and updates the animation accordingly.\n\t *\n\t * This is useful when you need to jump to an exact time in an animation. The\n\t * input parameter will be scaled by {@link AnimationMixer#timeScale}\n\t *\n\t * @param {number} time - The time to set in seconds.\n\t * @return {AnimationMixer} A reference to thi animation mixer.\n\t */\n\tsetTime( time ) {\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( time ); // Update used to set exact time. Returns \"this\" AnimationMixer object.\n\n\t}\n\n\t/**\n\t * Returns this mixer's root object.\n\t *\n\t * @return {Object3D} The mixer's root object.\n\t */\n\tgetRoot() {\n\n\t\treturn this._root;\n\n\t}\n\n\t/**\n\t * Deallocates all memory resources for a clip. Before using this method make\n\t * sure to call {@link AnimationAction#stop} for all related actions.\n\t *\n\t * @param {AnimationClip} clip - The clip to uncache.\n\t */\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/**\n\t * Deallocates all memory resources for a root object. Before using this\n\t * method make sure to call {@link AnimationAction#stop} for all related\n\t * actions or alternatively {@link AnimationMixer#stopAllAction} when the\n\t * mixer operates on a single root.\n\t *\n\t * @param {Object3D} root - The root object to uncache.\n\t */\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/**\n\t * Deallocates all memory resources for an action. The action is identified by the\n\t * given clip and an optional root object. Before using this method make\n\t * sure to call {@link AnimationAction#stop} to deactivate the action.\n\t *\n\t * @param {AnimationClip|string} clip - An animation clip or alternatively the name of the animation clip.\n\t * @param {Object3D} [optionalRoot] - An alternative root object.\n\t */\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\n/**\n * Represents a 3D render target.\n *\n * @augments RenderTarget\n */\nclass RenderTarget3D extends RenderTarget {\n\n\t/**\n\t * Constructs a new 3D render target.\n\t *\n\t * @param {number} [width=1] - The width of the render target.\n\t * @param {number} [height=1] - The height of the render target.\n\t * @param {number} [depth=1] - The height of the render target.\n\t * @param {RenderTarget~Options} [options] - The configuration object.\n\t */\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isRenderTarget3D = true;\n\n\t\tthis.depth = depth;\n\n\t\t/**\n\t\t * Overwritten with a different texture type.\n\t\t *\n\t\t * @type {Data3DTexture}\n\t\t */\n\t\tthis.texture = new Data3DTexture( null, width, height, depth );\n\t\tthis._setTextureOptions( options );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\n/**\n * Represents a uniform which is a global shader variable. They are passed to shader programs.\n *\n * When declaring a uniform of a {@link ShaderMaterial}, it is declared by value or by object.\n * ```js\n * uniforms: {\n * \ttime: { value: 1.0 },\n * \tresolution: new Uniform( new Vector2() )\n * };\n * ```\n * Since this class can only be used in context of {@link ShaderMaterial}, it is only supported\n * in {@link WebGLRenderer}.\n */\nclass Uniform {\n\n\t/**\n\t * Constructs a new uniform.\n\t *\n\t * @param {any} value - The uniform value.\n\t */\n\tconstructor( value ) {\n\n\t\t/**\n\t\t * The uniform value.\n\t\t *\n\t\t * @type {any}\n\t\t */\n\t\tthis.value = value;\n\n\t}\n\n\t/**\n\t * Returns a new uniform with copied values from this instance.\n\t * If the value has a `clone()` method, the value is cloned as well.\n\t *\n\t * @return {Uniform} A clone of this instance.\n\t */\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\n/**\n * A class for managing multiple uniforms in a single group. The renderer will process\n * such a definition as a single UBO.\n *\n * Since this class can only be used in context of {@link ShaderMaterial}, it is only supported\n * in {@link WebGLRenderer}.\n *\n * @augments EventDispatcher\n */\nclass UniformsGroup extends EventDispatcher {\n\n\t/**\n\t * Constructs a new uniforms group.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isUniformsGroup = true;\n\n\t\t/**\n\t\t * The ID of the 3D object.\n\t\t *\n\t\t * @name UniformsGroup#id\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tObject.defineProperty( this, 'id', { value: _id ++ } );\n\n\t\t/**\n\t\t * The name of the uniforms group.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The buffer usage.\n\t\t *\n\t\t * @type {(StaticDrawUsage|DynamicDrawUsage|StreamDrawUsage|StaticReadUsage|DynamicReadUsage|StreamReadUsage|StaticCopyUsage|DynamicCopyUsage|StreamCopyUsage)}\n\t\t * @default StaticDrawUsage\n\t\t */\n\t\tthis.usage = StaticDrawUsage;\n\n\t\t/**\n\t\t * An array holding the uniforms.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.uniforms = [];\n\n\t}\n\n\t/**\n\t * Adds the given uniform to this uniforms group.\n\t *\n\t * @param {Uniform} uniform - The uniform to add.\n\t * @return {UniformsGroup} A reference to this uniforms group.\n\t */\n\tadd( uniform ) {\n\n\t\tthis.uniforms.push( uniform );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Removes the given uniform from this uniforms group.\n\t *\n\t * @param {Uniform} uniform - The uniform to remove.\n\t * @return {UniformsGroup} A reference to this uniforms group.\n\t */\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\t/**\n\t * Sets the name of this uniforms group.\n\t *\n\t * @param {string} name - The name to set.\n\t * @return {UniformsGroup} A reference to this uniforms group.\n\t */\n\tsetName( name ) {\n\n\t\tthis.name = name;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the usage of this uniforms group.\n\t *\n\t * @param {(StaticDrawUsage|DynamicDrawUsage|StreamDrawUsage|StaticReadUsage|DynamicReadUsage|StreamReadUsage|StaticCopyUsage|DynamicCopyUsage|StreamCopyUsage)} value - The usage to set.\n\t * @return {UniformsGroup} A reference to this uniforms group.\n\t */\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t *\n\t * @fires Texture#dispose\n\t */\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\t/**\n\t * Copies the values of the given uniforms group to this instance.\n\t *\n\t * @param {UniformsGroup} source - The uniforms group to copy.\n\t * @return {UniformsGroup} A reference to this uniforms group.\n\t */\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\t/**\n\t * Returns a new uniforms group with copied values from this instance.\n\t *\n\t * @return {UniformsGroup} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\n/**\n * An instanced version of an interleaved buffer.\n *\n * @augments InterleavedBuffer\n */\nclass InstancedInterleavedBuffer extends InterleavedBuffer {\n\n\t/**\n\t * Constructs a new instanced interleaved buffer.\n\t *\n\t * @param {TypedArray} array - A typed array with a shared buffer storing attribute data.\n\t * @param {number} stride - The number of typed-array elements per vertex.\n\t * @param {number} [meshPerAttribute=1] - Defines how often a value of this interleaved buffer should be repeated.\n\t */\n\tconstructor( array, stride, meshPerAttribute = 1 ) {\n\n\t\tsuper( array, stride );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isInstancedInterleavedBuffer = true;\n\n\t\t/**\n\t\t * Defines how often a value of this buffer attribute should be repeated,\n\t\t * see {@link InstancedBufferAttribute#meshPerAttribute}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\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\n/**\n * An alternative version of a buffer attribute with more control over the VBO.\n *\n * The renderer does not construct a VBO for this kind of attribute. Instead, it uses\n * whatever VBO is passed in constructor and can later be altered via the `buffer` property.\n *\n * The most common use case for this class is when some kind of GPGPU calculation interferes\n * or even produces the VBOs in question.\n *\n * Notice that this class can only be used with {@link WebGLRenderer}.\n */\nclass GLBufferAttribute {\n\n\t/**\n\t * Constructs a new GL buffer attribute.\n\t *\n\t * @param {WebGLBuffer} buffer - The native WebGL buffer.\n\t * @param {number} type - The native data type (e.g. `gl.FLOAT`).\n\t * @param {number} itemSize - The item size.\n\t * @param {number} elementSize - The corresponding size (in bytes) for the given `type` parameter.\n\t * @param {number} count - The expected number of vertices in VBO.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( buffer, type, itemSize, elementSize, count, normalized = false ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isGLBufferAttribute = true;\n\n\t\t/**\n\t\t * The name of the buffer attribute.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The native WebGL buffer.\n\t\t *\n\t\t * @type {WebGLBuffer}\n\t\t */\n\t\tthis.buffer = buffer;\n\n\t\t/**\n\t\t * The native data type.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.type = type;\n\n\t\t/**\n\t\t * The item size, see {@link BufferAttribute#itemSize}.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.itemSize = itemSize;\n\n\t\t/**\n\t\t * The corresponding size (in bytes) for the given `type` parameter.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.elementSize = elementSize;\n\n\t\t/**\n\t\t * The expected number of vertices in VBO.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.count = count;\n\n\t\t/**\n\t\t * Applies to integer data only. Indicates how the underlying data in the buffer maps to\n\t\t * the values in the GLSL code. For instance, if `buffer` contains data of `gl.UNSIGNED_SHORT`,\n\t\t * and `normalized` is `true`, the values `0 - +65535` in the buffer data will be mapped to\n\t\t * `0.0f - +1.0f` in the GLSL attribute. If `normalized` is `false`, the values will be converted\n\t\t * to floats unmodified, i.e. `65535` becomes `65535.0f`.\n\t\t *\n\t\t * @type {boolean}\n\t\t */\n\t\tthis.normalized = normalized;\n\n\t\t/**\n\t\t * A version number, incremented every time the `needsUpdate` is set to `true`.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.version = 0;\n\n\t}\n\n\t/**\n\t * Flag to indicate that this attribute has changed and should be re-sent to\n\t * the GPU. Set this to `true` when you modify the value of the array.\n\t *\n\t * @type {number}\n\t * @default false\n\t * @param {boolean} value\n\t */\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\t/**\n\t * Sets the given native WebGL buffer.\n\t *\n\t * @param {WebGLBuffer} buffer - The buffer to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\n\tsetBuffer( buffer ) {\n\n\t\tthis.buffer = buffer;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the given native data type and element size.\n\t *\n\t * @param {number} type - The native data type (e.g. `gl.FLOAT`).\n\t * @param {number} elementSize - The corresponding size (in bytes) for the given `type` parameter.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the item size.\n\t *\n\t * @param {number} itemSize - The item size.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\n\tsetItemSize( itemSize ) {\n\n\t\tthis.itemSize = itemSize;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the count (the expected number of vertices in VBO).\n\t *\n\t * @param {number} count - The count.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\n/**\n * This class is designed to assist with raycasting. Raycasting is used for\n * mouse picking (working out what objects in the 3d space the mouse is over)\n * amongst other things.\n */\nclass Raycaster {\n\n\t/**\n\t * Constructs a new raycaster.\n\t *\n\t * @param {Vector3} origin - The origin vector where the ray casts from.\n\t * @param {Vector3} direction - The (normalized) direction vector that gives direction to the ray.\n\t * @param {number} [near=0] - All results returned are further away than near. Near can't be negative.\n\t * @param {number} [far=Infinity] - All results returned are closer than far. Far can't be lower than near.\n\t */\n\tconstructor( origin, direction, near = 0, far = Infinity ) {\n\n\t\t/**\n\t\t * The ray used for raycasting.\n\t\t *\n\t\t * @type {Ray}\n\t\t */\n\t\tthis.ray = new Ray( origin, direction );\n\n\t\t/**\n\t\t * All results returned are further away than near. Near can't be negative.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.near = near;\n\n\t\t/**\n\t\t * All results returned are further away than near. Near can't be negative.\n\t\t *\n\t\t * @type {number}\n\t\t * @default Infinity\n\t\t */\n\t\tthis.far = far;\n\n\t\t/**\n\t\t * The camera to use when raycasting against view-dependent objects such as\n\t\t * billboarded objects like sprites. This field can be set manually or\n\t\t * is set when calling `setFromCamera()`.\n\t\t *\n\t\t * @type {?Camera}\n\t\t * @default null\n\t\t */\n\t\tthis.camera = null;\n\n\t\t/**\n\t\t * Allows to selectively ignore 3D objects when performing intersection tests.\n\t\t * The following code example ensures that only 3D objects on layer `1` will be\n\t\t * honored by raycaster.\n\t\t * ```js\n\t\t * raycaster.layers.set( 1 );\n\t\t * object.layers.enable( 1 );\n\t\t * ```\n\t\t *\n\t\t * @type {Layers}\n\t\t */\n\t\tthis.layers = new Layers();\n\n\n\t\t/**\n\t\t * A parameter object that configures the raycasting. It has the structure:\n\t\t *\n\t\t * ```\n\t\t * {\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\t\t * ```\n\t\t * Where `threshold` is the precision of the raycaster when intersecting objects, in world units.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Updates the ray with a new origin and direction by copying the values from the arguments.\n\t *\n\t * @param {Vector3} origin - The origin vector where the ray casts from.\n\t * @param {Vector3} direction - The (normalized) direction vector that gives direction to the ray.\n\t */\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\t/**\n\t * Uses the given coordinates and camera to compute a new origin and direction for the internal ray.\n\t *\n\t * @param {Vector2} coords - 2D coordinates of the mouse, in normalized device coordinates (NDC).\n\t * X and Y components should be between `-1` and `1`.\n\t * @param {Camera} camera - The camera from which the ray should originate.\n\t */\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\t/**\n\t * Uses the given WebXR controller to compute a new origin and direction for the internal ray.\n\t *\n\t * @param {WebXRController} controller - The controller to copy the position and direction from.\n\t * @return {Raycaster} A reference to this raycaster.\n\t */\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\t/**\n\t * The intersection point of a raycaster intersection test.\n\t * @typedef {Object} Raycaster~Intersection\n\t * @property {number} distance - The distance from the ray's origin to the intersection point.\n\t * @property {number} distanceToRay - Some 3D objects e.g. {@link Points} provide the distance of the\n\t * intersection to the nearest point on the ray. For other objects it will be `undefined`.\n\t * @property {Vector3} point - The intersection point, in world coordinates.\n\t * @property {Object} face - The face that has been intersected.\n\t * @property {number} faceIndex - The face index.\n\t * @property {Object3D} object - The 3D object that has been intersected.\n\t * @property {Vector2} uv - U,V coordinates at point of intersection.\n\t * @property {Vector2} uv1 - Second set of U,V coordinates at point of intersection.\n\t * @property {Vector3} uv1 - Interpolated normal vector at point of intersection.\n\t * @property {number} instanceId - The index number of the instance where the ray\n\t * intersects the {@link InstancedMesh}.\n\t */\n\n\t/**\n\t * Checks all intersection between the ray and the object with or without the\n\t * descendants. Intersections are returned sorted by distance, closest first.\n\t *\n\t * `Raycaster` delegates to the `raycast()` method of the passed 3D object, when\n\t * evaluating whether the ray intersects the object or not. This allows meshes to respond\n\t * differently to ray casting than lines or points.\n\t *\n\t * Note that for meshes, faces must be pointed towards the origin of the ray in order\n\t * to be detected; intersections of the ray passing through the back of a face will not\n\t * be detected. To raycast against both faces of an object, you'll want to set {@link Material#side}\n\t * to `THREE.DoubleSide`.\n\t *\n\t * @param {Object3D} object - The 3D object to check for intersection with the ray.\n\t * @param {boolean} [recursive=true] - If set to `true`, it also checks all descendants.\n\t * Otherwise it only checks intersection with the object.\n\t * @param {Array} [intersects=[]] The target array that holds the result of the method.\n\t * @return {Array} An array holding the intersection points.\n\t */\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\t/**\n\t * Checks all intersection between the ray and the objects with or without\n\t * the descendants. Intersections are returned sorted by distance, closest first.\n\t *\n\t * @param {Array} objects - The 3D objects to check for intersection with the ray.\n\t * @param {boolean} [recursive=true] - If set to `true`, it also checks all descendants.\n\t * Otherwise it only checks intersection with the object.\n\t * @param {Array} [intersects=[]] The target array that holds the result of the method.\n\t * @return {Array} An array holding the intersection points.\n\t */\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 * This class is an alternative to {@link Clock} with a different API design and behavior.\n * The goal is to avoid the conceptual flaws that became apparent in `Clock` over time.\n *\n * - `Timer` has an `update()` method that updates its internal state. That makes it possible to\n * call `getDelta()` and `getElapsed()` multiple times per simulation step without getting different values.\n * - The class can make use of the Page Visibility API to avoid large time delta values when the app\n * is inactive (e.g. tab switched or browser hidden).\n *\n * ```js\n * const timer = new Timer();\n * timer.connect( document ); // use Page Visibility API\n * ```\n */\nclass Timer {\n\n\t/**\n\t * Constructs a new timer.\n\t */\n\tconstructor() {\n\n\t\tthis._previousTime = 0;\n\t\tthis._currentTime = 0;\n\t\tthis._startTime = performance.now();\n\n\t\tthis._delta = 0;\n\t\tthis._elapsed = 0;\n\n\t\tthis._timescale = 1;\n\n\t\tthis._document = null;\n\t\tthis._pageVisibilityHandler = null;\n\n\t}\n\n\t/**\n\t * Connect the timer to the given document.Calling this method is not mandatory to\n\t * use the timer but enables the usage of the Page Visibility API to avoid large time\n\t * delta values.\n\t *\n\t * @param {Document} document - The document.\n\t */\n\tconnect( document ) {\n\n\t\tthis._document = document;\n\n\t\t// use Page Visibility API to avoid large time delta values\n\n\t\tif ( document.hidden !== undefined ) {\n\n\t\t\tthis._pageVisibilityHandler = handleVisibilityChange.bind( this );\n\n\t\t\tdocument.addEventListener( 'visibilitychange', this._pageVisibilityHandler, false );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Disconnects the timer from the DOM and also disables the usage of the Page Visibility API.\n\t */\n\tdisconnect() {\n\n\t\tif ( this._pageVisibilityHandler !== null ) {\n\n\t\t\tthis._document.removeEventListener( 'visibilitychange', this._pageVisibilityHandler );\n\t\t\tthis._pageVisibilityHandler = null;\n\n\t\t}\n\n\t\tthis._document = null;\n\n\t}\n\n\t/**\n\t * Returns the time delta in seconds.\n\t *\n\t * @return {number} The time delta in second.\n\t */\n\tgetDelta() {\n\n\t\treturn this._delta / 1000;\n\n\t}\n\n\t/**\n\t * Returns the elapsed time in seconds.\n\t *\n\t * @return {number} The elapsed time in second.\n\t */\n\tgetElapsed() {\n\n\t\treturn this._elapsed / 1000;\n\n\t}\n\n\t/**\n\t * Returns the timescale.\n\t *\n\t * @return {number} The timescale.\n\t */\n\tgetTimescale() {\n\n\t\treturn this._timescale;\n\n\t}\n\n\t/**\n\t * Sets the given timescale which scale the time delta computation\n\t * in `update()`.\n\t *\n\t * @param {number} timescale - The timescale to set.\n\t * @return {Timer} A reference to this timer.\n\t */\n\tsetTimescale( timescale ) {\n\n\t\tthis._timescale = timescale;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Resets the time computation for the current simulation step.\n\t *\n\t * @return {Timer} A reference to this timer.\n\t */\n\treset() {\n\n\t\tthis._currentTime = performance.now() - this._startTime;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Can be used to free all internal resources. Usually called when\n\t * the timer instance isn't required anymore.\n\t */\n\tdispose() {\n\n\t\tthis.disconnect();\n\n\t}\n\n\t/**\n\t * Updates the internal state of the timer. This method should be called\n\t * once per simulation step and before you perform queries against the timer\n\t * (e.g. via `getDelta()`).\n\t *\n\t * @param {number} timestamp - The current time in milliseconds. Can be obtained\n\t * from the `requestAnimationFrame` callback argument. If not provided, the current\n\t * time will be determined with `performance.now`.\n\t * @return {Timer} A reference to this timer.\n\t */\n\tupdate( timestamp ) {\n\n\t\tif ( this._pageVisibilityHandler !== null && this._document.hidden === true ) {\n\n\t\t\tthis._delta = 0;\n\n\t\t} else {\n\n\t\t\tthis._previousTime = this._currentTime;\n\t\t\tthis._currentTime = ( timestamp !== undefined ? timestamp : performance.now() ) - this._startTime;\n\n\t\t\tthis._delta = ( this._currentTime - this._previousTime ) * this._timescale;\n\t\t\tthis._elapsed += this._delta; // _elapsed is the accumulation of all previous deltas\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nfunction handleVisibilityChange() {\n\n\tif ( this._document.hidden === false ) this.reset();\n\n}\n\n/**\n * This class can be used to represent points in 3D space as\n * [Spherical coordinates]{@link https://en.wikipedia.org/wiki/Spherical_coordinate_system}.\n */\nclass Spherical {\n\n\t/**\n\t * Constructs a new spherical.\n\t *\n\t * @param {number} [radius=1] - The radius, or the Euclidean distance (straight-line distance) from the point to the origin.\n\t * @param {number} [phi=0] - The polar angle in radians from the y (up) axis.\n\t * @param {number} [theta=0] - The equator/azimuthal angle in radians around the y (up) axis.\n\t */\n\tconstructor( radius = 1, phi = 0, theta = 0 ) {\n\n\t\t/**\n\t\t * The radius, or the Euclidean distance (straight-line distance) from the point to the origin.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.radius = radius;\n\n\t\t/**\n\t\t * The polar angle in radians from the y (up) axis.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.phi = phi;\n\n\t\t/**\n\t\t * The equator/azimuthal angle in radians around the y (up) axis.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.theta = theta;\n\n\t}\n\n\t/**\n\t * Sets the spherical components by copying the given values.\n\t *\n\t * @param {number} radius - The radius.\n\t * @param {number} phi - The polar angle.\n\t * @param {number} theta - The azimuthal angle.\n\t * @return {Spherical} A reference to this spherical.\n\t */\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\t/**\n\t * Copies the values of the given spherical to this instance.\n\t *\n\t * @param {Spherical} other - The spherical to copy.\n\t * @return {Spherical} A reference to this spherical.\n\t */\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/**\n\t * Restricts the polar angle [page:.phi phi] to be between `0.000001` and pi -\n\t * `0.000001`.\n\t *\n\t * @return {Spherical} A reference to this spherical.\n\t */\n\tmakeSafe() {\n\n\t\tconst EPS = 0.000001;\n\t\tthis.phi = clamp( this.phi, EPS, Math.PI - EPS );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the spherical components from the given vector which is assumed to hold\n\t * Cartesian coordinates.\n\t *\n\t * @param {Vector3} v - The vector to set.\n\t * @return {Spherical} A reference to this spherical.\n\t */\n\tsetFromVector3( v ) {\n\n\t\treturn this.setFromCartesianCoords( v.x, v.y, v.z );\n\n\t}\n\n\t/**\n\t * Sets the spherical components from the given Cartesian coordinates.\n\t *\n\t * @param {number} x - The x value.\n\t * @param {number} y - The y value.\n\t * @param {number} z - The z value.\n\t * @return {Spherical} A reference to this spherical.\n\t */\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\t/**\n\t * Returns a new spherical with copied values from this instance.\n\t *\n\t * @return {Spherical} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\n/**\n * This class can be used to represent points in 3D space as\n * [Cylindrical coordinates]{@link https://en.wikipedia.org/wiki/Cylindrical_coordinate_system}.\n */\nclass Cylindrical {\n\n\t/**\n\t * Constructs a new cylindrical.\n\t *\n\t * @param {number} [radius=1] - The distance from the origin to a point in the x-z plane.\n\t * @param {number} [theta=0] - A counterclockwise angle in the x-z plane measured in radians from the positive z-axis.\n\t * @param {number} [y=0] - The height above the x-z plane.\n\t */\n\tconstructor( radius = 1, theta = 0, y = 0 ) {\n\n\t\t/**\n\t\t * The distance from the origin to a point in the x-z plane.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.radius = radius;\n\n\t\t/**\n\t\t * A counterclockwise angle in the x-z plane measured in radians from the positive z-axis.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.theta = theta;\n\n\t\t/**\n\t\t * The height above the x-z plane.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.y = y;\n\n\t}\n\n\t/**\n\t * Sets the cylindrical components by copying the given values.\n\t *\n\t * @param {number} radius - The radius.\n\t * @param {number} theta - The theta angle.\n\t * @param {number} y - The height value.\n\t * @return {Cylindrical} A reference to this cylindrical.\n\t */\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\t/**\n\t * Copies the values of the given cylindrical to this instance.\n\t *\n\t * @param {Cylindrical} other - The cylindrical to copy.\n\t * @return {Cylindrical} A reference to this cylindrical.\n\t */\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\t/**\n\t * Sets the cylindrical components from the given vector which is assumed to hold\n\t * Cartesian coordinates.\n\t *\n\t * @param {Vector3} v - The vector to set.\n\t * @return {Cylindrical} A reference to this cylindrical.\n\t */\n\tsetFromVector3( v ) {\n\n\t\treturn this.setFromCartesianCoords( v.x, v.y, v.z );\n\n\t}\n\n\t/**\n\t * Sets the cylindrical components from the given Cartesian coordinates.\n\t *\n\t * @param {number} x - The x value.\n\t * @param {number} y - The x value.\n\t * @param {number} z - The x value.\n\t * @return {Cylindrical} A reference to this cylindrical.\n\t */\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\t/**\n\t * Returns a new cylindrical with copied values from this instance.\n\t *\n\t * @return {Cylindrical} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\n/**\n * Represents a 2x2 matrix.\n *\n * A Note on Row-Major and Column-Major Ordering:\n *\n * The constructor and {@link Matrix2#set} method take arguments in\n * [row-major]{@link https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order}\n * order, while internally they are stored in the {@link Matrix2#elements} array in column-major order.\n * This means that calling:\n * ```js\n * const m = new THREE.Matrix2();\n * m.set( 11, 12,\n * 21, 22 );\n * ```\n * will result in the elements array containing:\n * ```js\n * m.elements = [ 11, 21,\n * 12, 22 ];\n * ```\n * and internally all calculations are performed using column-major ordering.\n * However, as the actual ordering makes no difference mathematically and\n * most people are used to thinking about matrices in row-major order, the\n * three.js documentation shows matrices in row-major order. Just bear in\n * mind that if you are reading the source code, you'll have to take the\n * transpose of any matrices outlined here to make sense of the calculations.\n */\nclass Matrix2 {\n\n\t/**\n\t * Constructs a new 2x2 matrix. The arguments are supposed to be\n\t * in row-major order. If no arguments are provided, the constructor\n\t * initializes the matrix as an identity matrix.\n\t *\n\t * @param {number} [n11] - 1-1 matrix element.\n\t * @param {number} [n12] - 1-2 matrix element.\n\t * @param {number} [n21] - 2-1 matrix element.\n\t * @param {number} [n22] - 2-2 matrix element.\n\t */\n\tconstructor( n11, n12, n21, n22 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tMatrix2.prototype.isMatrix2 = true;\n\n\t\t/**\n\t\t * A column-major list of matrix values.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.elements = [\n\t\t\t1, 0,\n\t\t\t0, 1,\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n21, n22 );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Sets this matrix to the 2x2 identity matrix.\n\t *\n\t * @return {Matrix2} A reference to this matrix.\n\t */\n\tidentity() {\n\n\t\tthis.set(\n\t\t\t1, 0,\n\t\t\t0, 1,\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the elements of the matrix from the given array.\n\t *\n\t * @param {Array} array - The matrix elements in column-major order.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Matrix2} A reference to this matrix.\n\t */\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 4; 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\t/**\n\t * Sets the elements of the matrix.The arguments are supposed to be\n\t * in row-major order.\n\t *\n\t * @param {number} n11 - 1-1 matrix element.\n\t * @param {number} n12 - 1-2 matrix element.\n\t * @param {number} n21 - 2-1 matrix element.\n\t * @param {number} n22 - 2-2 matrix element.\n\t * @return {Matrix2} A reference to this matrix.\n\t */\n\tset( n11, n12, n21, n22 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 2 ] = n12;\n\t\tte[ 1 ] = n21; te[ 3 ] = n22;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _vector$4 = /*@__PURE__*/ new Vector2();\n\n/**\n * Represents an axis-aligned bounding box (AABB) in 2D space.\n */\nclass Box2 {\n\n\t/**\n\t * Constructs a new bounding box.\n\t *\n\t * @param {Vector2} [min=(Infinity,Infinity)] - A vector representing the lower boundary of the box.\n\t * @param {Vector2} [max=(-Infinity,-Infinity)] - A vector representing the upper boundary of the box.\n\t */\n\tconstructor( min = new Vector2( + Infinity, + Infinity ), max = new Vector2( - Infinity, - Infinity ) ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isBox2 = true;\n\n\t\t/**\n\t\t * The lower boundary of the box.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.min = min;\n\n\t\t/**\n\t\t * The upper boundary of the box.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.max = max;\n\n\t}\n\n\t/**\n\t * Sets the lower and upper boundaries of this box.\n\t * Please note that this method only copies the values from the given objects.\n\t *\n\t * @param {Vector2} min - The lower boundary of the box.\n\t * @param {Vector2} max - The upper boundary of the box.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Sets the upper and lower bounds of this box so it encloses the position data\n\t * in the given array.\n\t *\n\t * @param {Array} points - An array holding 2D position data as instances of {@link Vector2}.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Centers this box on the given center vector and sets this box's width, height and\n\t * depth to the given size values.\n\t *\n\t * @param {Vector2} center - The center of the box.\n\t * @param {Vector2} size - The x and y dimensions of the box.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Returns a new box with copied values from this instance.\n\t *\n\t * @return {Box2} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the values of the given box to this instance.\n\t *\n\t * @param {Box2} box - The box to copy.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Makes this box empty which means in encloses a zero space in 2D.\n\t *\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Returns true if this box includes zero points within its bounds.\n\t * Note that a box with equal lower and upper bounds still includes one\n\t * point, the one both bounds share.\n\t *\n\t * @return {boolean} Whether this box is empty or not.\n\t */\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\t/**\n\t * Returns the center point of this box.\n\t *\n\t * @param {Vector2} target - The target vector that is used to store the method's result.\n\t * @return {Vector2} The center point.\n\t */\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\t/**\n\t * Returns the dimensions of this box.\n\t *\n\t * @param {Vector2} target - The target vector that is used to store the method's result.\n\t * @return {Vector2} The size.\n\t */\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\t/**\n\t * Expands the boundaries of this box to include the given point.\n\t *\n\t * @param {Vector2} point - The point that should be included by the bounding box.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Expands this box equilaterally by the given vector. The width of this\n\t * box will be expanded by the x component of the vector in both\n\t * directions. The height of this box will be expanded by the y component of\n\t * the vector in both directions.\n\t *\n\t * @param {Vector2} vector - The vector that should expand the bounding box.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Expands each dimension of the box by the given scalar. If negative, the\n\t * dimensions of the box will be contracted.\n\t *\n\t * @param {number} scalar - The scalar value that should expand the bounding box.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Returns `true` if the given point lies within or on the boundaries of this box.\n\t *\n\t * @param {Vector2} point - The point to test.\n\t * @return {boolean} Whether the bounding box contains the given point or not.\n\t */\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\n\t}\n\n\t/**\n\t * Returns `true` if this bounding box includes the entirety of the given bounding box.\n\t * If this box and the given one are identical, this function also returns `true`.\n\t *\n\t * @param {Box2} box - The bounding box to test.\n\t * @return {boolean} Whether the bounding box contains the given bounding box or not.\n\t */\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\t/**\n\t * Returns a point as a proportion of this box's width and height.\n\t *\n\t * @param {Vector2} point - A point in 2D space.\n\t * @param {Vector2} target - The target vector that is used to store the method's result.\n\t * @return {Vector2} A point as a proportion of this box's width and height.\n\t */\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\t/**\n\t * Returns `true` if the given bounding box intersects with this bounding box.\n\t *\n\t * @param {Box2} box - The bounding box to test.\n\t * @return {boolean} Whether the given bounding box intersects with this bounding box.\n\t */\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;\n\n\t}\n\n\t/**\n\t * Clamps the given point within the bounds of this box.\n\t *\n\t * @param {Vector2} point - The point to clamp.\n\t * @param {Vector2} target - The target vector that is used to store the method's result.\n\t * @return {Vector2} The clamped point.\n\t */\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\t/**\n\t * Returns the euclidean distance from any edge of this box to the specified point. If\n\t * the given point lies inside of this box, the distance will be `0`.\n\t *\n\t * @param {Vector2} point - The point to compute the distance to.\n\t * @return {number} The euclidean distance.\n\t */\n\tdistanceToPoint( point ) {\n\n\t\treturn this.clampPoint( point, _vector$4 ).distanceTo( point );\n\n\t}\n\n\t/**\n\t * Computes the intersection of this bounding box and the given one, setting the upper\n\t * bound of this box to the lesser of the two boxes' upper bounds and the\n\t * lower bound of this box to the greater of the two boxes' lower bounds. If\n\t * there's no overlap, makes this box empty.\n\t *\n\t * @param {Box2} box - The bounding box to intersect with.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Computes the union of this box and another and the given one, setting the upper\n\t * bound of this box to the greater of the two boxes' upper bounds and the\n\t * lower bound of this box to the lesser of the two boxes' lower bounds.\n\t *\n\t * @param {Box2} box - The bounding box that will be unioned with this instance.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Adds the given offset to both the upper and lower bounds of this bounding box,\n\t * effectively moving it in 2D space.\n\t *\n\t * @param {Vector2} offset - The offset that should be used to translate the bounding box.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Returns `true` if this bounding box is equal with the given one.\n\t *\n\t * @param {Box2} box - The box to test for equality.\n\t * @return {boolean} Whether this bounding box is equal with the given one.\n\t */\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\nconst _d1 = /*@__PURE__*/ new Vector3();\nconst _d2 = /*@__PURE__*/ new Vector3();\nconst _r = /*@__PURE__*/ new Vector3();\nconst _c1 = /*@__PURE__*/ new Vector3();\nconst _c2 = /*@__PURE__*/ new Vector3();\n\n/**\n * An analytical line segment in 3D space represented by a start and end point.\n */\nclass Line3 {\n\n\t/**\n\t * Constructs a new line segment.\n\t *\n\t * @param {Vector3} [start=(0,0,0)] - Start of the line segment.\n\t * @param {Vector3} [end=(0,0,0)] - End of the line segment.\n\t */\n\tconstructor( start = new Vector3(), end = new Vector3() ) {\n\n\t\t/**\n\t\t * Start of the line segment.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.start = start;\n\n\t\t/**\n\t\t * End of the line segment.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.end = end;\n\n\t}\n\n\t/**\n\t * Sets the start and end values by copying the given vectors.\n\t *\n\t * @param {Vector3} start - The start point.\n\t * @param {Vector3} end - The end point.\n\t * @return {Line3} A reference to this line segment.\n\t */\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\t/**\n\t * Copies the values of the given line segment to this instance.\n\t *\n\t * @param {Line3} line - The line segment to copy.\n\t * @return {Line3} A reference to this line segment.\n\t */\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\t/**\n\t * Returns the center of the line segment.\n\t *\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The center point.\n\t */\n\tgetCenter( target ) {\n\n\t\treturn target.addVectors( this.start, this.end ).multiplyScalar( 0.5 );\n\n\t}\n\n\t/**\n\t * Returns the delta vector of the line segment's start and end point.\n\t *\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The delta vector.\n\t */\n\tdelta( target ) {\n\n\t\treturn target.subVectors( this.end, this.start );\n\n\t}\n\n\t/**\n\t * Returns the squared Euclidean distance between the line' start and end point.\n\t *\n\t * @return {number} The squared Euclidean distance.\n\t */\n\tdistanceSq() {\n\n\t\treturn this.start.distanceToSquared( this.end );\n\n\t}\n\n\t/**\n\t * Returns the Euclidean distance between the line' start and end point.\n\t *\n\t * @return {number} The Euclidean distance.\n\t */\n\tdistance() {\n\n\t\treturn this.start.distanceTo( this.end );\n\n\t}\n\n\t/**\n\t * Returns a vector at a certain position along the line segment.\n\t *\n\t * @param {number} t - A value between `[0,1]` to represent a position along the line segment.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The delta vector.\n\t */\n\tat( t, target ) {\n\n\t\treturn this.delta( target ).multiplyScalar( t ).add( this.start );\n\n\t}\n\n\t/**\n\t * Returns a point parameter based on the closest point as projected on the line segment.\n\t *\n\t * @param {Vector3} point - The point for which to return a point parameter.\n\t * @param {boolean} clampToLine - Whether to clamp the result to the range `[0,1]` or not.\n\t * @return {number} The point parameter.\n\t */\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\t/**\n\t * Returns the closest point on the line for a given point.\n\t *\n\t * @param {Vector3} point - The point to compute the closest point on the line for.\n\t * @param {boolean} clampToLine - Whether to clamp the result to the range `[0,1]` or not.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The closest point on the line.\n\t */\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\t/**\n\t * Returns the closest squared distance between this line segment and the given one.\n\t *\n\t * @param {Line3} line - The line segment to compute the closest squared distance to.\n\t * @param {Vector3} [c1] - The closest point on this line segment.\n\t * @param {Vector3} [c2] - The closest point on the given line segment.\n\t * @return {number} The squared distance between this line segment and the given one.\n\t */\n\tdistanceSqToLine3( line, c1 = _c1, c2 = _c2 ) {\n\n\t\t// from Real-Time Collision Detection by Christer Ericson, chapter 5.1.9\n\n\t\t// Computes closest points C1 and C2 of S1(s)=P1+s*(Q1-P1) and\n\t\t// S2(t)=P2+t*(Q2-P2), returning s and t. Function result is squared\n\t\t// distance between between S1(s) and S2(t)\n\n\t\tconst EPSILON = 1e-8 * 1e-8; // must be squared since we compare squared length\n\t\tlet s, t;\n\n\t\tconst p1 = this.start;\n\t\tconst p2 = line.start;\n\t\tconst q1 = this.end;\n\t\tconst q2 = line.end;\n\n\t\t_d1.subVectors( q1, p1 ); // Direction vector of segment S1\n\t\t_d2.subVectors( q2, p2 ); // Direction vector of segment S2\n\t\t_r.subVectors( p1, p2 );\n\n\t\tconst a = _d1.dot( _d1 ); // Squared length of segment S1, always nonnegative\n\t\tconst e = _d2.dot( _d2 ); // Squared length of segment S2, always nonnegative\n\t\tconst f = _d2.dot( _r );\n\n\t\t// Check if either or both segments degenerate into points\n\n\t\tif ( a <= EPSILON && e <= EPSILON ) {\n\n\t\t\t// Both segments degenerate into points\n\n\t\t\tc1.copy( p1 );\n\t\t\tc2.copy( p2 );\n\n\t\t\tc1.sub( c2 );\n\n\t\t\treturn c1.dot( c1 );\n\n\t\t}\n\n\t\tif ( a <= EPSILON ) {\n\n\t\t\t// First segment degenerates into a point\n\n\t\t\ts = 0;\n\t\t\tt = f / e; // s = 0 => t = (b*s + f) / e = f / e\n\t\t\tt = clamp( t, 0, 1 );\n\n\n\t\t} else {\n\n\t\t\tconst c = _d1.dot( _r );\n\n\t\t\tif ( e <= EPSILON ) {\n\n\t\t\t\t// Second segment degenerates into a point\n\n\t\t\t\tt = 0;\n\t\t\t\ts = clamp( - c / a, 0, 1 ); // t = 0 => s = (b*t - c) / a = -c / a\n\n\t\t\t} else {\n\n\t\t\t\t// The general nondegenerate case starts here\n\n\t\t\t\tconst b = _d1.dot( _d2 );\n\t\t\t\tconst denom = a * e - b * b; // Always nonnegative\n\n\t\t\t\t// If segments not parallel, compute closest point on L1 to L2 and\n\t\t\t\t// clamp to segment S1. Else pick arbitrary s (here 0)\n\n\t\t\t\tif ( denom !== 0 ) {\n\n\t\t\t\t\ts = clamp( ( b * f - c * e ) / denom, 0, 1 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\ts = 0;\n\n\t\t\t\t}\n\n\t\t\t\t// Compute point on L2 closest to S1(s) using\n\t\t\t\t// t = Dot((P1 + D1*s) - P2,D2) / Dot(D2,D2) = (b*s + f) / e\n\n\t\t\t\tt = ( b * s + f ) / e;\n\n\t\t\t\t// If t in [0,1] done. Else clamp t, recompute s for the new value\n\t\t\t\t// of t using s = Dot((P2 + D2*t) - P1,D1) / Dot(D1,D1)= (t*b - c) / a\n\t\t\t\t// and clamp s to [0, 1]\n\n\t\t\t\tif ( t < 0 ) {\n\n\t\t\t\t\tt = 0.;\n\t\t\t\t\ts = clamp( - c / a, 0, 1 );\n\n\t\t\t\t} else if ( t > 1 ) {\n\n\t\t\t\t\tt = 1;\n\t\t\t\t\ts = clamp( ( b - c ) / a, 0, 1 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tc1.copy( p1 ).add( _d1.multiplyScalar( s ) );\n\t\tc2.copy( p2 ).add( _d2.multiplyScalar( t ) );\n\n\t\tc1.sub( c2 );\n\n\t\treturn c1.dot( c1 );\n\n\t}\n\n\t/**\n\t * Applies a 4x4 transformation matrix to this line segment.\n\t *\n\t * @param {Matrix4} matrix - The transformation matrix.\n\t * @return {Line3} A reference to this line segment.\n\t */\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\t/**\n\t * Returns `true` if this line segment is equal with the given one.\n\t *\n\t * @param {Line3} line - The line segment to test for equality.\n\t * @return {boolean} Whether this line segment is equal with the given one.\n\t */\n\tequals( line ) {\n\n\t\treturn line.start.equals( this.start ) && line.end.equals( this.end );\n\n\t}\n\n\t/**\n\t * Returns a new line segment with copied values from this instance.\n\t *\n\t * @return {Line3} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$3 = /*@__PURE__*/ new Vector3();\n\n/**\n * This displays a cone shaped helper object for a {@link SpotLight}.\n *\n * ```js\n * const spotLight = new THREE.SpotLight( 0xffffff );\n * spotLight.position.set( 10, 10, 10 );\n * scene.add( spotLight );\n *\n * const spotLightHelper = new THREE.SpotLightHelper( spotLight );\n * scene.add( spotLightHelper );\n * ```\n *\n * @augments Object3D\n */\nclass SpotLightHelper extends Object3D {\n\n\t/**\n\t * Constructs a new spot light helper.\n\t *\n\t * @param {HemisphereLight} light - The light to be visualized.\n\t * @param {number|Color|string} [color] - The helper's color. If not set, the helper will take\n\t * the color of the light.\n\t */\n\tconstructor( light, color ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * The light being visualized.\n\t\t *\n\t\t * @type {SpotLight}\n\t\t */\n\t\tthis.light = light;\n\n\t\tthis.matrixAutoUpdate = false;\n\n\t\t/**\n\t\t * The color parameter passed in the constructor.\n\t\t * If not set, the helper will take the color of the light.\n\t\t *\n\t\t * @type {number|Color|string}\n\t\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.cone.geometry.dispose();\n\t\tthis.cone.material.dispose();\n\n\t}\n\n\t/**\n\t * Updates the helper to match the position and direction of the\n\t * light being visualized.\n\t */\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/**\n * A helper object to assist with visualizing a {@link Skeleton}.\n *\n * ```js\n * const helper = new THREE.SkeletonHelper( skinnedMesh );\n * scene.add( helper );\n * ```\n *\n * @augments LineSegments\n */\nclass SkeletonHelper extends LineSegments {\n\n\t/**\n\t * Constructs a new skeleton helper.\n\t *\n\t * @param {Object3D} object - Usually an instance of {@link SkinnedMesh}. However, any 3D object\n\t * can be used if it represents a hierarchy of bones (see {@link Bone}).\n\t */\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\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( 0, 0, 0 );\n\t\t\t\tcolors.push( 0, 0, 0 );\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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSkeletonHelper = true;\n\n\t\tthis.type = 'SkeletonHelper';\n\n\t\t/**\n\t\t * The object being visualized.\n\t\t *\n\t\t * @type {Object3D}\n\t\t */\n\t\tthis.root = object;\n\n\t\t/**\n\t\t * The list of bones that the helper visualizes.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.bones = bones;\n\n\t\tthis.matrix = object.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\t// colors\n\n\t\tconst color1 = new Color( 0x0000ff );\n\t\tconst color2 = new Color( 0x00ff00 );\n\n\t\tthis.setColors( color1, color2 );\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\t/**\n\t * Defines the colors of the helper.\n\t *\n\t * @param {Color} color1 - The first line color for each bone.\n\t * @param {Color} color2 - The second line color for each bone.\n\t * @return {SkeletonHelper} A reference to this helper.\n\t */\n\tsetColors( color1, color2 ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst colorAttribute = geometry.getAttribute( 'color' );\n\n\t\tfor ( let i = 0; i < colorAttribute.count; i += 2 ) {\n\n\t\t\tcolorAttribute.setXYZ( i, color1.r, color1.g, color1.b );\n\t\t\tcolorAttribute.setXYZ( i + 1, color2.r, color2.g, color2.b );\n\n\t\t}\n\n\t\tcolorAttribute.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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( ...getBoneList( object.children[ i ] ) );\n\n\t}\n\n\treturn boneList;\n\n}\n\n/**\n * This displays a helper object consisting of a spherical mesh for\n * visualizing an instance of {@link PointLight}.\n *\n * ```js\n * const pointLight = new THREE.PointLight( 0xff0000, 1, 100 );\n * pointLight.position.set( 10, 10, 10 );\n * scene.add( pointLight );\n *\n * const sphereSize = 1;\n * const pointLightHelper = new THREE.PointLightHelper( pointLight, sphereSize );\n * scene.add( pointLightHelper );\n * ```\n *\n * @augments Mesh\n */\nclass PointLightHelper extends Mesh {\n\n\t/**\n\t * Constructs a new point light helper.\n\t *\n\t * @param {PointLight} light - The light to be visualized.\n\t * @param {number} [sphereSize=1] - The size of the sphere helper.\n\t * @param {number|Color|string} [color] - The helper's color. If not set, the helper will take\n\t * the color of the light.\n\t */\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\t/**\n\t\t * The light being visualized.\n\t\t *\n\t\t * @type {HemisphereLight}\n\t\t */\n\t\tthis.light = light;\n\n\t\t/**\n\t\t * The color parameter passed in the constructor.\n\t\t * If not set, the helper will take the color of the light.\n\t\t *\n\t\t * @type {number|Color|string}\n\t\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n\t/**\n\t * Updates the helper to match the position of the\n\t * light being visualized.\n\t */\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\n/**\n * Creates a visual aid consisting of a spherical mesh for a\n * given {@link HemisphereLight}.\n *\n * ```js\n * const light = new THREE.HemisphereLight( 0xffffbb, 0x080820, 1 );\n * const helper = new THREE.HemisphereLightHelper( light, 5 );\n * scene.add( helper );\n * ```\n *\n * @augments Object3D\n */\nclass HemisphereLightHelper extends Object3D {\n\n\t/**\n\t * Constructs a new hemisphere light helper.\n\t *\n\t * @param {HemisphereLight} light - The light to be visualized.\n\t * @param {number} [size=1] - The size of the mesh used to visualize the light.\n\t * @param {number|Color|string} [color] - The helper's color. If not set, the helper will take\n\t * the color of the light.\n\t */\n\tconstructor( light, size, color ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * The light being visualized.\n\t\t *\n\t\t * @type {HemisphereLight}\n\t\t */\n\t\tthis.light = light;\n\n\t\tthis.matrix = light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\t/**\n\t\t * The color parameter passed in the constructor.\n\t\t * If not set, the helper will take the color of the light.\n\t\t *\n\t\t * @type {number|Color|string}\n\t\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.children[ 0 ].geometry.dispose();\n\t\tthis.children[ 0 ].material.dispose();\n\n\t}\n\n\t/**\n\t * Updates the helper to match the position and direction of the\n\t * light being visualized.\n\t */\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\n/**\n * The helper is an object to define grids. Grids are two-dimensional\n * arrays of lines.\n *\n * ```js\n * const size = 10;\n * const divisions = 10;\n *\n * const gridHelper = new THREE.GridHelper( size, divisions );\n * scene.add( gridHelper );\n * ```\n *\n * @augments LineSegments\n */\nclass GridHelper extends LineSegments {\n\n\t/**\n\t * Constructs a new grid helper.\n\t *\n\t * @param {number} [size=10] - The size of the grid.\n\t * @param {number} [divisions=10] - The number of divisions across the grid.\n\t * @param {number|Color|string} [color1=0x444444] - The color of the center line.\n\t * @param {number|Color|string} [color2=0x888888] - The color of the lines of the grid.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n/**\n * This helper is an object to define polar grids. Grids are\n * two-dimensional arrays of lines.\n *\n * ```js\n * const radius = 10;\n * const sectors = 16;\n * const rings = 8;\n * const divisions = 64;\n *\n * const helper = new THREE.PolarGridHelper( radius, sectors, rings, divisions );\n * scene.add( helper );\n * ```\n *\n * @augments LineSegments\n */\nclass PolarGridHelper extends LineSegments {\n\n\t/**\n\t * Constructs a new polar grid helper.\n\t *\n\t * @param {number} [radius=10] - The radius of the polar grid. This can be any positive number.\n\t * @param {number} [sectors=16] - The number of sectors the grid will be divided into. This can be any positive integer.\n\t * @param {number} [rings=16] - The number of rings. This can be any positive integer.\n\t * @param {number} [divisions=64] - The number of line segments used for each circle. This can be any positive integer.\n\t * @param {number|Color|string} [color1=0x444444] - The first color used for grid elements.\n\t * @param {number|Color|string} [color2=0x888888] - The second color used for grid elements.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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\n/**\n * Helper object to assist with visualizing a {@link DirectionalLight}'s\n * effect on the scene. This consists of plane and a line representing the\n * light's position and direction.\n *\n * ```js\n * const light = new THREE.DirectionalLight( 0xFFFFFF );\n * scene.add( light );\n *\n * const helper = new THREE.DirectionalLightHelper( light, 5 );\n * scene.add( helper );\n * ```\n *\n * @augments Object3D\n */\nclass DirectionalLightHelper extends Object3D {\n\n\t/**\n\t * Constructs a new directional light helper.\n\t *\n\t * @param {DirectionalLight} light - The light to be visualized.\n\t * @param {number} [size=1] - The dimensions of the plane.\n\t * @param {number|Color|string} [color] - The helper's color. If not set, the helper will take\n\t * the color of the light.\n\t */\n\tconstructor( light, size, color ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * The light being visualized.\n\t\t *\n\t\t * @type {DirectionalLight}\n\t\t */\n\t\tthis.light = light;\n\n\t\tthis.matrix = light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\t/**\n\t\t * The color parameter passed in the constructor.\n\t\t * If not set, the helper will take the color of the light.\n\t\t *\n\t\t * @type {number|Color|string}\n\t\t */\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\t/**\n\t\t * Contains the line showing the location of the directional light.\n\t\t *\n\t\t * @type {Line}\n\t\t */\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\t/**\n\t\t * Represents the target line of the directional light.\n\t\t *\n\t\t * @type {Line}\n\t\t */\n\t\tthis.targetLine = new Line( geometry, material );\n\t\tthis.add( this.targetLine );\n\n\t\tthis.update();\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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\t/**\n\t * Updates the helper to match the position and direction of the\n\t * light being visualized.\n\t */\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 * This helps with visualizing what a camera contains in its frustum. It\n * visualizes the frustum of a camera using a line segments.\n *\n * Based on frustum visualization in [lightgl.js shadowmap example]{@link https://github.com/evanw/lightgl.js/blob/master/tests/shadowmap.html}.\n *\n * `CameraHelper` must be a child of the scene.\n *\n * ```js\n * const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );\n * const helper = new THREE.CameraHelper( camera );\n * scene.add( helper );\n * ```\n *\n * @augments LineSegments\n */\nclass CameraHelper extends LineSegments {\n\n\t/**\n\t * Constructs a new arrow helper.\n\t *\n\t * @param {Camera} camera - The camera to visualize.\n\t */\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\t/**\n\t\t * The camera being visualized.\n\t\t *\n\t\t * @type {Camera}\n\t\t */\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\t/**\n\t\t * This contains the points used to visualize the camera.\n\t\t *\n\t\t * @type {Object>}\n\t\t */\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\t/**\n\t * Defines the colors of the helper.\n\t *\n\t * @param {Color} frustum - The frustum line color.\n\t * @param {Color} cone - The cone line color.\n\t * @param {Color} up - The up line color.\n\t * @param {Color} target - The target line color.\n\t * @param {Color} cross - The cross line color.\n\t * @return {CameraHelper} A reference to this helper.\n\t */\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\treturn this;\n\n\t}\n\n\t/**\n\t * Updates the helper based on the projection matrix of the camera.\n\t */\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\tlet nearZ, farZ;\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// Adjust z values based on coordinate system\n\n\t\tif ( this.camera.reversedDepth === true ) {\n\n\t\t\tnearZ = 1;\n\t\t\tfarZ = 0;\n\n\t\t} else {\n\n\t\t\tif ( this.camera.coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\t\tnearZ = -1;\n\t\t\t\tfarZ = 1;\n\n\t\t\t} else if ( this.camera.coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\t\tnearZ = 0;\n\t\t\t\tfarZ = 1;\n\n\t\t\t} else {\n\n\t\t\t\tthrow new Error( 'THREE.CameraHelper.update(): Invalid coordinate system: ' + this.camera.coordinateSystem );\n\n\t\t\t}\n\n\t\t}\n\n\n\t\t// center / target\n\t\tsetPoint( 'c', pointMap, geometry, _camera, 0, 0, nearZ );\n\t\tsetPoint( 't', pointMap, geometry, _camera, 0, 0, farZ );\n\n\t\t// near\n\n\t\tsetPoint( 'n1', pointMap, geometry, _camera, - w, - h, nearZ );\n\t\tsetPoint( 'n2', pointMap, geometry, _camera, w, - h, nearZ );\n\t\tsetPoint( 'n3', pointMap, geometry, _camera, - w, h, nearZ );\n\t\tsetPoint( 'n4', pointMap, geometry, _camera, w, h, nearZ );\n\n\t\t// far\n\n\t\tsetPoint( 'f1', pointMap, geometry, _camera, - w, - h, farZ );\n\t\tsetPoint( 'f2', pointMap, geometry, _camera, w, - h, farZ );\n\t\tsetPoint( 'f3', pointMap, geometry, _camera, - w, h, farZ );\n\t\tsetPoint( 'f4', pointMap, geometry, _camera, w, h, farZ );\n\n\t\t// up\n\n\t\tsetPoint( 'u1', pointMap, geometry, _camera, w * 0.7, h * 1.1, nearZ );\n\t\tsetPoint( 'u2', pointMap, geometry, _camera, - w * 0.7, h * 1.1, nearZ );\n\t\tsetPoint( 'u3', pointMap, geometry, _camera, 0, h * 2, nearZ );\n\n\t\t// cross\n\n\t\tsetPoint( 'cf1', pointMap, geometry, _camera, - w, 0, farZ );\n\t\tsetPoint( 'cf2', pointMap, geometry, _camera, w, 0, farZ );\n\t\tsetPoint( 'cf3', pointMap, geometry, _camera, 0, - h, farZ );\n\t\tsetPoint( 'cf4', pointMap, geometry, _camera, 0, h, farZ );\n\n\t\tsetPoint( 'cn1', pointMap, geometry, _camera, - w, 0, nearZ );\n\t\tsetPoint( 'cn2', pointMap, geometry, _camera, w, 0, nearZ );\n\t\tsetPoint( 'cn3', pointMap, geometry, _camera, 0, - h, nearZ );\n\t\tsetPoint( 'cn4', pointMap, geometry, _camera, 0, h, nearZ );\n\n\t\tgeometry.getAttribute( 'position' ).needsUpdate = true;\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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\n/**\n * Helper object to graphically show the world-axis-aligned bounding box\n * around an object. The actual bounding box is handled with {@link Box3},\n * this is just a visual helper for debugging. It can be automatically\n * resized with {@link BoxHelper#update} when the object it's created from\n * is transformed. Note that the object must have a geometry for this to work,\n * so it won't work with sprites.\n *\n * ```js\n * const sphere = new THREE.SphereGeometry();\n * const object = new THREE.Mesh( sphere, new THREE.MeshBasicMaterial( 0xff0000 ) );\n * const box = new THREE.BoxHelper( object, 0xffff00 );\n * scene.add( box );\n * ```\n *\n * @augments LineSegments\n */\nclass BoxHelper extends LineSegments {\n\n\t/**\n\t * Constructs a new box helper.\n\t *\n\t * @param {Object3D} [object] - The 3D object to show the world-axis-aligned bounding box.\n\t * @param {number|Color|string} [color=0xffff00] - The box's color.\n\t */\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\t/**\n\t\t * The 3D object being visualized.\n\t\t *\n\t\t * @type {Object3D}\n\t\t */\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\t/**\n\t * Updates the helper's geometry to match the dimensions of the object,\n\t * including any children.\n\t */\n\tupdate() {\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\t/**\n\t * Updates the wireframe box for the passed object.\n\t *\n\t * @param {Object3D} object - The 3D object to create the helper for.\n\t * @return {BoxHelper} A reference to this instance.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n/**\n * A helper object to visualize an instance of {@link Box3}.\n *\n * ```js\n * const box = new THREE.Box3();\n * box.setFromCenterAndSize( new THREE.Vector3( 1, 1, 1 ), new THREE.Vector3( 2, 1, 3 ) );\n *\n * const helper = new THREE.Box3Helper( box, 0xffff00 );\n * scene.add( helper )\n * ```\n *\n * @augments LineSegments\n */\nclass Box3Helper extends LineSegments {\n\n\t/**\n\t * Constructs a new box3 helper.\n\t *\n\t * @param {Box3} box - The box to visualize.\n\t * @param {number|Color|string} [color=0xffff00] - The box's color.\n\t */\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\t/**\n\t\t * The box being visualized.\n\t\t *\n\t\t * @type {Box3}\n\t\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n/**\n * A helper object to visualize an instance of {@link Plane}.\n *\n * ```js\n * const plane = new THREE.Plane( new THREE.Vector3( 1, 1, 0.2 ), 3 );\n * const helper = new THREE.PlaneHelper( plane, 1, 0xffff00 );\n * scene.add( helper );\n * ```\n *\n * @augments Line\n */\nclass PlaneHelper extends Line {\n\n\t/**\n\t * Constructs a new plane helper.\n\t *\n\t * @param {Plane} plane - The plane to be visualized.\n\t * @param {number} [size=1] - The side length of plane helper.\n\t * @param {number|Color|string} [hex=0xffff00] - The helper's color.\n\t */\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\t/**\n\t\t * The plane being visualized.\n\t\t *\n\t\t * @type {Plane}\n\t\t */\n\t\tthis.plane = plane;\n\n\t\t/**\n\t\t * The side length of plane helper.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\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\t/**\n\t * Updates the helper to match the position and direction of the\n\t * light being visualized.\n\t */\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\n/**\n * An 3D arrow object for visualizing directions.\n *\n * ```js\n * const dir = new THREE.Vector3( 1, 2, 0 );\n *\n * //normalize the direction vector (convert to vector of length 1)\n * dir.normalize();\n *\n * const origin = new THREE.Vector3( 0, 0, 0 );\n * const length = 1;\n * const hex = 0xffff00;\n *\n * const arrowHelper = new THREE.ArrowHelper( dir, origin, length, hex );\n * scene.add( arrowHelper );\n * ```\n *\n * @augments Object3D\n */\nclass ArrowHelper extends Object3D {\n\n\t/**\n\t * Constructs a new arrow helper.\n\t *\n\t * @param {Vector3} [dir=(0, 0, 1)] - The (normalized) direction vector.\n\t * @param {Vector3} [origin=(0, 0, 0)] - Point at which the arrow starts.\n\t * @param {number} [length=1] - Length of the arrow in world units.\n\t * @param {(number|Color|string)} [color=0xffff00] - Color of the arrow.\n\t * @param {number} [headLength=length*0.2] - The length of the head of the arrow.\n\t * @param {number} [headWidth=headLength*0.2] - The width of the head of the arrow.\n\t */\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 ConeGeometry( 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\t/**\n\t\t * The line part of the arrow helper.\n\t\t *\n\t\t * @type {Line}\n\t\t */\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\t/**\n\t\t * The cone part of the arrow helper.\n\t\t *\n\t\t * @type {Mesh}\n\t\t */\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\t/**\n\t * Sets the direction of the helper.\n\t *\n\t * @param {Vector3} dir - The normalized direction vector.\n\t */\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\t/**\n\t * Sets the length of the helper.\n\t *\n\t * @param {number} length - Length of the arrow in world units.\n\t * @param {number} [headLength=length*0.2] - The length of the head of the arrow.\n\t * @param {number} [headWidth=headLength*0.2] - The width of the head of the arrow.\n\t */\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\t/**\n\t * Sets the color of the helper.\n\t *\n\t * @param {number|Color|string} color - The color to set.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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\n/**\n * An axis object to visualize the 3 axes in a simple way.\n * The X axis is red. The Y axis is green. The Z axis is blue.\n *\n * ```js\n * const axesHelper = new THREE.AxesHelper( 5 );\n * scene.add( axesHelper );\n * ```\n *\n * @augments LineSegments\n */\nclass AxesHelper extends LineSegments {\n\n\t/**\n\t * Constructs a new axes helper.\n\t *\n\t * @param {number} [size=1] - Size of the lines representing the axes.\n\t */\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\t/**\n\t * Defines the colors of the axes helper.\n\t *\n\t * @param {number|Color|string} xAxisColor - The color for the x axis.\n\t * @param {number|Color|string} yAxisColor - The color for the y axis.\n\t * @param {number|Color|string} zAxisColor - The color for the z axis.\n\t * @return {AxesHelper} A reference to this axes helper.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n/**\n * This class is used to convert a series of paths to an array of\n * shapes. It is specifically used in context of fonts and SVG.\n */\nclass ShapePath {\n\n\t/**\n\t * Constructs a new shape path.\n\t */\n\tconstructor() {\n\n\t\tthis.type = 'ShapePath';\n\n\t\t/**\n\t\t * The color of the shape.\n\t\t *\n\t\t * @type {Color}\n\t\t */\n\t\tthis.color = new Color();\n\n\t\t/**\n\t\t * The paths that have been generated for this shape.\n\t\t *\n\t\t * @type {Array}\n\t\t * @default null\n\t\t */\n\t\tthis.subPaths = [];\n\n\t\t/**\n\t\t * The current path that is being generated.\n\t\t *\n\t\t * @type {?Path}\n\t\t * @default null\n\t\t */\n\t\tthis.currentPath = null;\n\n\t}\n\n\t/**\n\t * Creates a new path and moves it current point to the given one.\n\t *\n\t * @param {number} x - The x coordinate.\n\t * @param {number} y - The y coordinate.\n\t * @return {ShapePath} A reference to this shape path.\n\t */\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\t/**\n\t * Adds an instance of {@link LineCurve} to the path by connecting\n\t * the current point with the given one.\n\t *\n\t * @param {number} x - The x coordinate of the end point.\n\t * @param {number} y - The y coordinate of the end point.\n\t * @return {ShapePath} A reference to this shape path.\n\t */\n\tlineTo( x, y ) {\n\n\t\tthis.currentPath.lineTo( x, y );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Adds an instance of {@link QuadraticBezierCurve} to the path by connecting\n\t * the current point with the given one.\n\t *\n\t * @param {number} aCPx - The x coordinate of the control point.\n\t * @param {number} aCPy - The y coordinate of the control point.\n\t * @param {number} aX - The x coordinate of the end point.\n\t * @param {number} aY - The y coordinate of the end point.\n\t * @return {ShapePath} A reference to this shape path.\n\t */\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\t/**\n\t * Adds an instance of {@link CubicBezierCurve} to the path by connecting\n\t * the current point with the given one.\n\t *\n\t * @param {number} aCP1x - The x coordinate of the first control point.\n\t * @param {number} aCP1y - The y coordinate of the first control point.\n\t * @param {number} aCP2x - The x coordinate of the second control point.\n\t * @param {number} aCP2y - The y coordinate of the second control point.\n\t * @param {number} aX - The x coordinate of the end point.\n\t * @param {number} aY - The y coordinate of the end point.\n\t * @return {ShapePath} A reference to this shape path.\n\t */\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\t/**\n\t * Adds an instance of {@link SplineCurve} to the path by connecting\n\t * the current point with the given list of points.\n\t *\n\t * @param {Array} pts - An array of points in 2D space.\n\t * @return {ShapePath} A reference to this shape path.\n\t */\n\tsplineThru( pts ) {\n\n\t\tthis.currentPath.splineThru( pts );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Converts the paths into an array of shapes.\n\t *\n\t * @param {boolean} isCCW - By default solid shapes are defined clockwise (CW) and holes are defined counterclockwise (CCW).\n\t * If this flag is set to `true`, then those are flipped.\n\t * @return {Array} An array of shapes.\n\t */\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\n/**\n * Abstract base class for controls.\n *\n * @abstract\n * @augments EventDispatcher\n */\nclass Controls extends EventDispatcher {\n\n\t/**\n\t * Constructs a new controls instance.\n\t *\n\t * @param {Object3D} object - The object that is managed by the controls.\n\t * @param {?HTMLDOMElement} domElement - The HTML element used for event listeners.\n\t */\n\tconstructor( object, domElement = null ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * The object that is managed by the controls.\n\t\t *\n\t\t * @type {Object3D}\n\t\t */\n\t\tthis.object = object;\n\n\t\t/**\n\t\t * The HTML element used for event listeners.\n\t\t *\n\t\t * @type {?HTMLDOMElement}\n\t\t * @default null\n\t\t */\n\t\tthis.domElement = domElement;\n\n\t\t/**\n\t\t * Whether the controls responds to user input or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.enabled = true;\n\n\t\t/**\n\t\t * The internal state of the controls.\n\t\t *\n\t\t * @type {number}\n\t\t * @default -1\n\t\t */\n\t\tthis.state = -1;\n\n\t\t/**\n\t\t * This object defines the keyboard input of the controls.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.keys = {};\n\n\t\t/**\n\t\t * This object defines what type of actions are assigned to the available mouse buttons.\n\t\t * It depends on the control implementation what kind of mouse buttons and actions are supported.\n\t\t *\n\t\t * @type {{LEFT: ?number, MIDDLE: ?number, RIGHT: ?number}}\n\t\t */\n\t\tthis.mouseButtons = { LEFT: null, MIDDLE: null, RIGHT: null };\n\n\t\t/**\n\t\t * This object defines what type of actions are assigned to what kind of touch interaction.\n\t\t * It depends on the control implementation what kind of touch interaction and actions are supported.\n\t\t *\n\t\t * @type {{ONE: ?number, TWO: ?number}}\n\t\t */\n\t\tthis.touches = { ONE: null, TWO: null };\n\n\t}\n\n\t/**\n\t * Connects the controls to the DOM. This method has so called \"side effects\" since\n\t * it adds the module's event listeners to the DOM.\n\t *\n\t * @param {HTMLDOMElement} element - The DOM element to connect to.\n\t */\n\tconnect( element ) {\n\n\t\tif ( element === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Controls: connect() now requires an element.' ); // @deprecated, the warning can be removed with r185\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.domElement !== null ) this.disconnect();\n\n\t\tthis.domElement = element;\n\n\t}\n\n\t/**\n\t * Disconnects the controls from the DOM.\n\t */\n\tdisconnect() {}\n\n\t/**\n\t * Call this method if you no longer want use to the controls. It frees all internal\n\t * resources and removes all event listeners.\n\t */\n\tdispose() {}\n\n\t/**\n\t * Controls should implement this method if they have to update their internal state\n\t * per simulation step.\n\t *\n\t * @param {number} [delta] - The time delta in seconds.\n\t */\n\tupdate( /* delta */ ) {}\n\n}\n\n/**\n * Scales the texture as large as possible within its surface without cropping\n * or stretching the texture. The method preserves the original aspect ratio of\n * the texture. Akin to CSS `object-fit: contain`\n *\n * @param {Texture} texture - The texture.\n * @param {number} aspect - The texture's aspect ratio.\n * @return {Texture} The updated texture.\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\n/**\n * Scales the texture to the smallest possible size to fill the surface, leaving\n * no empty space. The method preserves the original aspect ratio of the texture.\n * Akin to CSS `object-fit: cover`.\n *\n * @param {Texture} texture - The texture.\n * @param {number} aspect - The texture's aspect ratio.\n * @return {Texture} The updated texture.\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\n/**\n * Configures the texture to the default transformation. Akin to CSS `object-fit: fill`.\n *\n * @param {Texture} texture - The texture.\n * @return {Texture} The updated texture.\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 * Determines how many bytes must be used to represent the texture.\n *\n * @param {number} width - The width of the texture.\n * @param {number} height - The height of the texture.\n * @param {number} format - The texture's format.\n * @param {number} type - The texture's type.\n * @return {number} The byte length.\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 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\tcase UnsignedInt101111Type:\n\t\t\treturn { byteLength: 4, components: 3 };\n\n\t}\n\n\tthrow new Error( `Unknown texture type ${type}.` );\n\n}\n\n/**\n * A class containing utility functions for textures.\n *\n * @hideconstructor\n */\nclass TextureUtils {\n\n\t/**\n\t * Scales the texture as large as possible within its surface without cropping\n\t * or stretching the texture. The method preserves the original aspect ratio of\n\t * the texture. Akin to CSS `object-fit: contain`\n\t *\n\t * @param {Texture} texture - The texture.\n\t * @param {number} aspect - The texture's aspect ratio.\n\t * @return {Texture} The updated texture.\n\t */\n\tstatic contain( texture, aspect ) {\n\n\t\treturn contain( texture, aspect );\n\n\t}\n\n\t/**\n\t * Scales the texture to the smallest possible size to fill the surface, leaving\n\t * no empty space. The method preserves the original aspect ratio of the texture.\n\t * Akin to CSS `object-fit: cover`.\n\t *\n\t * @param {Texture} texture - The texture.\n\t * @param {number} aspect - The texture's aspect ratio.\n\t * @return {Texture} The updated texture.\n\t */\n\tstatic cover( texture, aspect ) {\n\n\t\treturn cover( texture, aspect );\n\n\t}\n\n\t/**\n\t * Configures the texture to the default transformation. Akin to CSS `object-fit: fill`.\n\t *\n\t * @param {Texture} texture - The texture.\n\t * @return {Texture} The updated texture.\n\t */\n\tstatic fill( texture ) {\n\n\t\treturn fill( texture );\n\n\t}\n\n\t/**\n\t * Determines how many bytes must be used to represent the texture.\n\t *\n\t * @param {number} width - The width of the texture.\n\t * @param {number} height - The height of the texture.\n\t * @param {number} format - The texture's format.\n\t * @param {number} type - The texture's type.\n\t * @return {number} The byte length.\n\t */\n\tstatic getByteLength( width, height, format, type ) {\n\n\t\treturn getByteLength( width, height, format, type );\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, Controls, 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, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExternalTexture, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, FrustumArray, 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, InterpolationSamplingMode, InterpolationSamplingType, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry, Layers, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, LinearTransfer, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, MOUSE, Material, MaterialLoader, MathUtils, Matrix2, 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, PCFShadowMap, PCFSoftShadowMap, Path, PerspectiveCamera, Plane, PlaneGeometry, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RAD2DEG, 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, RGBDepthPacking, 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, RGDepthPacking, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RenderTarget, RenderTarget3D, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingGeometry, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SRGBColorSpace, SRGBTransfer, Scene, 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, Timer, TimestampQuery, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsUtils, UnsignedByteType, UnsignedInt101111Type, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoFrameTexture, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLCubeRenderTarget, WebGLRenderTarget, WebGPUCoordinateSystem, WebXRController, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, arrayNeedsUint32, cloneUniforms, createCanvasElement, createElementNS, getByteLength, getUnlitUniformColorSpace, mergeUniforms, probeAsync, warnOnce };\n","// LN_SCALE_MIN..LN_SCALE_MAX define the internal scale range of for Gsplats,\n// covering approx 0.0001..8000 in range with discrete steps 7% apart.\n// The value \"0\" is reserved for truly flat scales, indicating a 2DGS.\n// If these values are changed, the corresponding values in splatDefines.glsl\n// must also be updated to match.\n\nexport const LN_SCALE_MIN = -12.0;\nexport const LN_SCALE_MAX = 9.0;\nexport const SCALE_MIN = Math.exp(LN_SCALE_MIN);\nexport const SCALE_MAX = Math.exp(LN_SCALE_MAX);\n\nexport const LN_SCALE_ZERO = -30.0;\nexport const SCALE_ZERO = Math.exp(LN_SCALE_ZERO);\n\n// Gsplats are stored in textures that are 2^11 x 2^11 x up to 2^11\n// Most WebGL2 implementations support 2D textures up to 2^12 x 2^12 (max 16M Gsplats)\n// 2D array textures and 3D textures up to 2^11 x 2^11 x 2^11 (max 8G Gsplats),\n// so we use 2D array textures for our representation for higher limits.\n\nexport const SPLAT_TEX_WIDTH_BITS = 11;\nexport const SPLAT_TEX_HEIGHT_BITS = 11;\nexport const SPLAT_TEX_DEPTH_BITS = 11;\nexport const SPLAT_TEX_LAYER_BITS =\n SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nexport const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS; // 2048\nexport const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS; // 2048\nexport const SPLAT_TEX_DEPTH = 1 << SPLAT_TEX_DEPTH_BITS; // 2048\nexport const SPLAT_TEX_MIN_HEIGHT = 1;\n\nexport const SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1;\nexport const SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1;\nexport const SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1;\n\n// Enable/disable Gsplat sorting via Rust WASM code. In testing the sorting\n// time between pure JS and WASM are minimal and don't make a big difference.\n\nexport const WASM_SPLAT_SORT = true;\n\n// Enable/disable compiling a dedicated parse function per element type\n// in the plyReader.\n\nexport const USE_COMPILED_PARSER_FUNCTION = true;\n\nexport enum SplatFileType {\n PLY = \"ply\",\n SPZ = \"spz\",\n SPLAT = \"splat\",\n KSPLAT = \"ksplat\",\n PCSOGS = \"pcsogs\",\n PCSOGSZIP = \"pcsogszip\",\n RAD = \"rad\",\n}\n\nexport type SplatEncoding = {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n sh1Max?: number;\n sh2Max?: number;\n sh3Max?: number;\n lodOpacity?: boolean;\n};\n\nexport const DEFAULT_SPLAT_ENCODING: SplatEncoding = {\n rgbMin: 0,\n rgbMax: 1,\n lnScaleMin: LN_SCALE_MIN,\n lnScaleMax: LN_SCALE_MAX,\n sh1Max: 1,\n sh2Max: 1,\n sh3Max: 1,\n lodOpacity: false,\n};\n\nexport type RadMeta = {\n version: number;\n type: string;\n count: number;\n maxSh?: number;\n lodTree?: boolean;\n chunkSize?: number;\n chunks: {\n offset: number;\n bytes: number;\n base?: number;\n count?: number;\n filename?: string;\n }[];\n splatEncoding?: SplatEncoding;\n};\n\nexport type PackedExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type PackedResult = {\n numSplats: number;\n packedArray: Uint32Array;\n extra: PackedExtra;\n splatEncoding: SplatEncoding;\n};\n\nexport type ExtExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3a?: Uint32Array;\n sh3b?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type ExtResult = {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: ExtExtra;\n};\n","import type { IUniform } from \"three\";\nimport type { DynoType } from \"./types\";\nimport {\n DynoLiteral,\n DynoOutput,\n type DynoVal,\n DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nconst DEFAULT_INDENT = \" \";\n\nexport class Compilation {\n globals: Set = new Set();\n statements: string[] = [];\n uniforms: Record = {};\n declares: Set = new Set();\n updaters: (() => void)[] = [];\n sequence = 0;\n indent: string = DEFAULT_INDENT;\n\n constructor({ indent }: { indent?: string } = {}) {\n this.indent = indent ?? DEFAULT_INDENT;\n }\n\n nextSequence() {\n return this.sequence++;\n }\n}\n\nexport type IOTypes = Record;\ntype GenerateContext = {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n};\n\nexport class Dyno {\n inTypes: InTypes;\n outTypes: OutTypes;\n\n inputs: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n }) {\n this.inTypes = inTypes ?? ({} as InTypes);\n this.outTypes = outTypes ?? ({} as OutTypes);\n this.inputs = inputs ?? {};\n this.update = update;\n\n this.globals = globals;\n this.statements = statements;\n this.generate =\n generate ??\n (({ inputs, outputs, compile }) => {\n return {\n globals: this.globals?.({ inputs, outputs, compile }),\n statements: this.statements?.({ inputs, outputs, compile }),\n };\n });\n }\n\n get outputs(): { [K in keyof OutTypes]: DynoVal } {\n const outputs = {} as { [K in keyof OutTypes]: DynoVal };\n for (const key in this.outTypes) {\n outputs[key] = new DynoOutput(this, key);\n }\n return outputs;\n }\n\n apply(inputs: { [K in keyof InTypes]?: DynoVal }): {\n [K in keyof OutTypes]: DynoVal;\n } {\n Object.assign(this.inputs, inputs);\n return this.outputs;\n }\n\n compile({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }): string[] {\n const result = [\n `// ${this.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`,\n ];\n\n const declares: (keyof OutTypes)[] = [];\n for (const key in outputs) {\n const name = outputs[key];\n if (name && !compile.declares.has(name)) {\n compile.declares.add(name);\n declares.push(key);\n }\n }\n\n const { globals, statements, uniforms } = this.generate({\n inputs,\n outputs,\n compile,\n });\n for (const global of globals ?? []) {\n compile.globals.add(global);\n }\n for (const key in uniforms) {\n compile.uniforms[key] = uniforms[key];\n }\n if (this.update) {\n compile.updaters.push(this.update);\n }\n\n for (const key of declares) {\n const name = outputs[key];\n if (name) {\n if (!compile.uniforms[name]) {\n result.push(`${dynoDeclare(name, this.outTypes[key])};`);\n }\n }\n }\n\n if (statements?.length) {\n result.push(\"{\");\n result.push(...statements.map((line) => compile.indent + line));\n result.push(\"}\");\n }\n return result;\n }\n}\n\nexport type DynoBlockType = (\n inputs: { [K in keyof InTypes]?: DynoVal },\n outputs: { [K in keyof OutTypes]?: DynoVal },\n { roots }: { roots: Dyno[] },\n) => { [K in keyof OutTypes]?: DynoVal } | undefined;\n\nexport class DynoBlock<\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends Dyno {\n construct: DynoBlockType;\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n construct,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n construct: DynoBlockType;\n }) {\n super({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n generate: (args) => this.generateBlock(args),\n });\n this.construct = construct;\n }\n\n generateBlock({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }) {\n const blockInputs: { [K in keyof InTypes]?: DynoVal } = {};\n const blockOutputs: { [K in keyof OutTypes]?: DynoVal } = {};\n\n for (const key in inputs) {\n if (inputs[key] != null) {\n blockInputs[key] = new DynoLiteral(this.inTypes[key], inputs[key]);\n }\n }\n for (const key in outputs) {\n if (outputs[key] != null) {\n blockOutputs[key] = new DynoValue(this.outTypes[key]);\n }\n }\n\n const options: { roots: Dyno[] } = { roots: [] };\n const returned = this.construct(blockInputs, blockOutputs, options);\n\n for (const global of this.globals?.({ inputs, outputs, compile }) ?? []) {\n compile.globals.add(global);\n }\n\n const ordering: Dyno[] = [];\n const nodeOuts = new Map<\n Dyno,\n { sequence: number; outNames: Map; newOuts: Set }\n >();\n\n function visit(\n node: Dyno,\n outKey?: string,\n outName?: string,\n ) {\n let outs = nodeOuts.get(node);\n if (!outs) {\n // First time visiting this node\n outs = {\n sequence: compile.nextSequence(),\n outNames: new Map(),\n newOuts: new Set(),\n };\n nodeOuts.set(node, outs);\n\n for (const key in node.inputs) {\n let input = node.inputs[key];\n while (input) {\n if (input instanceof DynoValue) {\n if (input instanceof DynoOutput) {\n visit(input.dyno, input.key);\n }\n break;\n }\n // Must be as HasDynoOut\n if (typeof input.dynoOut !== \"function\") {\n throw new Error(\n `dynoOut is not a function for ${input.constructor.name}`,\n );\n }\n input = input.dynoOut();\n }\n }\n ordering.push(node);\n }\n if (outKey) {\n if (!outName) {\n outs.newOuts.add(outKey);\n }\n outs.outNames.set(outKey, outName ?? `${outKey}_${outs.sequence}`);\n }\n }\n\n for (const root of options.roots) {\n visit(root);\n }\n\n for (const key in blockOutputs) {\n let value = returned?.[key] ?? blockOutputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoOutput) {\n visit(value.dyno, value.key, outputs[key]);\n }\n break;\n }\n // Must be as HasDynoOut\n value = value.dynoOut();\n }\n blockOutputs[key] = value;\n }\n\n const steps = [];\n\n for (const dyno of ordering) {\n // compile.statements.push(`// ${dyno.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`);\n\n const inputs: Record = {};\n const outputs: Record = {};\n\n for (const key in dyno.inputs) {\n let value = dyno.inputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoLiteral) {\n inputs[key] = value.getLiteral();\n } else if (value instanceof DynoOutput) {\n const source = nodeOuts.get(value.dyno)?.outNames.get(value.key);\n if (!source) {\n throw new Error(\n `Source not found for ${value.dyno.constructor.name}.${value.key}`,\n );\n }\n inputs[key] = source;\n }\n break;\n }\n // Must be as HasDynOut\n value = value.dynoOut();\n }\n }\n\n const outs = nodeOuts.get(dyno) ?? { outNames: new Map() };\n for (const [key, name] of outs.outNames.entries()) {\n outputs[key] = name;\n }\n\n const newSteps = dyno.compile({ inputs, outputs, compile });\n steps.push(newSteps);\n }\n\n const literalOutputs = [];\n for (const key in outputs) {\n if (blockOutputs[key] instanceof DynoLiteral) {\n literalOutputs.push(\n `${outputs[key]} = ${blockOutputs[key].getLiteral()};`,\n );\n }\n }\n if (literalOutputs.length > 0) {\n steps.push(literalOutputs);\n }\n\n const statements = steps.flatMap((step, index) => {\n // Add a blank line between steps\n return index === 0 ? step : [\"\", ...step];\n });\n return { statements };\n }\n}\n\nexport function dynoBlock<\n InTypes extends Record,\n OutTypes extends Record,\n>(\n inTypes: InTypes,\n outTypes: OutTypes,\n construct: DynoBlockType,\n { update, globals }: { update?: () => void; globals?: () => string[] } = {},\n) {\n return new DynoBlock({ inTypes, outTypes, construct, update, globals });\n}\n\nexport function dyno<\n InTypes extends Record,\n OutTypes extends Record,\n>({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n}: {\n inTypes: InTypes;\n outTypes: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n}) {\n return new Dyno({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n });\n}\n\nexport function dynoDeclare(name: string, type: DynoType, count?: number) {\n const typeStr = typeof type === \"string\" ? type : type.type;\n if (!typeStr) {\n throw new Error(`Invalid DynoType: ${String(type)}`);\n }\n return `${typeStr} ${name}${count != null ? `[${count}]` : \"\"}`;\n}\n\nexport function unindentLines(s: string): string[] {\n let seenNonEmpty = false;\n const lines = s\n .split(\"\\n\")\n .map((line) => {\n const trimmedLine = line.trimEnd();\n if (seenNonEmpty) {\n return trimmedLine;\n }\n if (trimmedLine.length > 0) {\n seenNonEmpty = true;\n return trimmedLine;\n }\n return null;\n })\n .filter((line) => line != null);\n while (lines.length > 0 && lines[lines.length - 1].length === 0) {\n lines.pop();\n }\n if (lines.length === 0) {\n return [];\n }\n\n const indent = lines[0].match(/^\\s*/)?.[0];\n if (!indent) {\n return lines; // No indent, return as is\n }\n // Remove indent from the beginning of each line\n const regex = new RegExp(`^${indent}`);\n return lines.map((line) => line.replace(regex, \"\"));\n}\n\nexport function unindent(s: string): string {\n return unindentLines(s).join(\"\\n\");\n}\n\nexport class UnaryOp<\n A extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n outKey,\n outTypeFunc,\n }: { a: DynoVal; outKey: OutKey; outTypeFunc: (aType: A) => OutType }) {\n const inTypes = { a: valType(a) };\n const outType = outTypeFunc(valType(a));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class BinaryOp<\n A extends DynoType,\n B extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b) };\n const outType = outTypeFunc(valType(a), valType(b));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class TrinaryOp<\n A extends DynoType,\n B extends DynoType,\n C extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B; c: C }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n c,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n c: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B, cType: C) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b), c: valType(c) };\n const outType = outTypeFunc(valType(a), valType(b), valType(c));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b, c } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n","import { Gunzip } from \"fflate\";\nimport * as THREE from \"three\";\n\n// Miscellaneous utility functions for Spark\n\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SCALE_ZERO,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_MIN_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines.js\";\nimport { unindent } from \"./dyno/base.js\";\n\nexport const threeRevision = Number.parseInt(THREE.REVISION);\nexport const threeMrtArray = threeRevision >= 179;\n\nconst f32buffer = new Float32Array(1);\nconst u32buffer = new Uint32Array(f32buffer.buffer);\nconst supportsFloat16Array = \"Float16Array\" in globalThis;\nconst f16buffer = supportsFloat16Array\n ? new globalThis[\"Float16Array\" as keyof typeof globalThis](1)\n : null;\nconst u16buffer = new Uint16Array(f16buffer?.buffer);\n\n// Returns a normalized array of numbers\nexport function normalize(vec: number[]) {\n const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0));\n return vec.map((v) => v / norm);\n}\n\n// Reinterpret the bits of a float32 as a uint32\nexport function floatBitsToUint(f: number): number {\n f32buffer[0] = f;\n return u32buffer[0];\n}\n\n// Reinterpret the bits of a uint32 as a float32\nexport function uintBitsToFloat(u: number): number {\n u32buffer[0] = u;\n return f32buffer[0];\n}\n\nexport const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS;\nexport const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS;\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfNative(f: number): number {\n f16buffer[0] = f;\n return u16buffer[0];\n}\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfJS(f: number): number {\n // Store the value into the shared Float32 array.\n f32buffer[0] = f;\n const bits = u32buffer[0];\n\n // Extract sign (1 bit), exponent (8 bits), and fraction (23 bits)\n const sign = (bits >> 31) & 0x1;\n const exp = (bits >> 23) & 0xff;\n const frac = bits & 0x7fffff;\n const halfSign = sign << 15;\n\n // Handle special cases: NaN and Infinity\n if (exp === 0xff) {\n // NaN: set all exponent bits to 1 and some nonzero fraction bits.\n if (frac !== 0) {\n return halfSign | 0x7fff;\n }\n // Infinity\n return halfSign | 0x7c00;\n }\n\n // Adjust the exponent from float32 bias (127) to float16 bias (15)\n const newExp = exp - 127 + 15;\n\n // Handle overflow: too large to represent in half precision.\n if (newExp >= 0x1f) {\n return halfSign | 0x7c00; // Infinity\n }\n if (newExp <= 0) {\n // Handle subnormals and underflow.\n if (newExp < -10) {\n // Too small: underflows to zero.\n return halfSign;\n }\n // Convert to subnormal: add the implicit leading 1 to the fraction,\n // then shift to align with the half-precision's 10 fraction bits.\n const subFrac = (frac | 0x800000) >> (1 - newExp + 13);\n return halfSign | subFrac;\n }\n\n // Normalized half-precision number: shift fraction to fit into 10 bits.\n const halfFrac = frac >> 13;\n return halfSign | (newExp << 10) | halfFrac;\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfNative(u: number): number {\n u16buffer[0] = u;\n return f16buffer[0];\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfJS(h: number): number {\n // Extract the sign (1 bit), exponent (5 bits), and fraction (10 bits)\n const sign = (h >> 15) & 0x1;\n const exp = (h >> 10) & 0x1f;\n const frac = h & 0x3ff;\n\n let f32bits: number;\n\n if (exp === 0) {\n if (frac === 0) {\n // Zero (positive or negative)\n f32bits = sign << 31;\n } else {\n // Subnormal half-precision number.\n // Normalize the subnormal number:\n let mant = frac;\n let e = -14; // For half, the exponent for subnormals is fixed at -14.\n // Shift left until the implicit leading 1 is in place.\n while ((mant & 0x400) === 0) {\n // 0x400 === 1 << 10\n mant <<= 1;\n e--;\n }\n // Remove the leading 1 (which is now implicit)\n mant &= 0x3ff;\n // Convert the half exponent (e) to the 32-bit float exponent:\n const newExp = e + 127; // 32-bit float bias is 127.\n const newFrac = mant << 13; // Align to 23-bit fraction (23 - 10 = 13)\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n } else if (exp === 0x1f) {\n // Handle special cases for Infinity and NaN.\n if (frac === 0) {\n // Infinity\n f32bits = (sign << 31) | 0x7f800000;\n } else {\n // NaN (we choose a quiet NaN)\n f32bits = (sign << 31) | 0x7fc00000;\n }\n } else {\n // Normalized half-precision number.\n // Adjust exponent from half (bias 15) to float32 (bias 127)\n const newExp = exp - 15 + 127;\n const newFrac = frac << 13;\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n\n // Write the 32-bit bit pattern to the shared buffer,\n // then read it as a float32 to return a JavaScript number.\n u32buffer[0] = f32bits;\n return f32buffer[0];\n}\n\n// Convert a number 0..1 to a 0..255 uint\nexport function floatToUint8(v: number): number {\n // Converts from 0..1 float to 0..255 uint8\n return Math.max(0, Math.min(255, Math.round(v * 255)));\n}\n\n// Convert a number -1..1 to a -127..127 int\nexport function floatToSint8(v: number): number {\n // Converts from -1..1 float to -127..127 int8\n return Math.max(-127, Math.min(127, Math.round(v * 127)));\n}\n\n// Convert a 0..255 uint to a 0..1 float\nexport function Uint8ToFloat(v: number): number {\n // Converts from 0..255 uint8 to 0..1 float\n return v / 255;\n}\n\n// Convert a -127..127 int to a -1..1 float\nexport function Sint8ToFloat(v: number): number {\n // Converts from -127..127 int8 to -1..1 float\n return v / 127;\n}\n\n// A simple utility class for caching a fixed number of items\nexport class DataCache {\n // Maximum number of items to cache\n maxItems: number;\n\n // Function to fetch data for a key\n asyncFetch: (key: string) => Promise;\n\n // Function to dispose of data when it is no longer needed\n dispose?: (data: unknown) => void;\n\n // Array of cached items\n items: { key: string; data: unknown }[];\n\n // In-progress fetch promises\n pending: Map>;\n\n // Create a DataCache with a given function that fetches data not in the cache.\n constructor({\n asyncFetch,\n dispose,\n maxItems = 5,\n }: {\n asyncFetch: (key: string) => Promise;\n dispose?: (data: unknown) => void;\n maxItems?: number;\n }) {\n this.asyncFetch = asyncFetch;\n this.dispose = dispose;\n this.maxItems = maxItems;\n this.items = [];\n this.pending = new Map();\n }\n\n has(key: string): boolean {\n return this.items.some((item) => item.key === key);\n }\n\n getImmediate(key: string): unknown | undefined {\n const index = this.items.findIndex((item) => item.key === key);\n if (index >= 0) {\n // Data exists in our cache, move it to the end of the array\n const item = this.items.splice(index, 1)[0];\n this.items.push(item);\n // Return the cached data\n return item.data;\n }\n return undefined;\n }\n\n // Fetch data for the key, returning cached data if available.\n async getFetch(key: string): Promise {\n const immediate = this.getImmediate(key);\n if (immediate !== undefined) {\n return immediate;\n }\n\n let pending = this.pending.get(key);\n if (pending) {\n return pending;\n }\n\n pending = this.asyncFetch(key).then((data) => {\n this.pending.delete(key);\n\n // Add the data to the cache\n this.items.push({ key, data });\n // If the cache is too large, remove the oldest accessed item\n while (this.items.length > this.maxItems) {\n const removed = this.items.shift();\n if (removed && this.dispose) {\n this.dispose(removed.data);\n }\n }\n // Return the fetched data\n return data;\n });\n this.pending.set(key, pending);\n return pending;\n }\n}\n\n// Like Array.map but for objects\nexport function mapObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n const entries = Object.entries(obj).map(([key, value]) => [\n key,\n fn(value, key),\n ]);\n // Returns a new object with the mapped values\n return Object.fromEntries(entries);\n}\n\n// Like Array.map().filter() but for objects.\n// The callback fn() should return undefined to filter out the key.\nexport function mapFilterObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n // If no return (or return undefined), the key is not included in the result\n const entries = Object.entries(obj)\n .map(([key, value]) => [key, fn(value, key)])\n .filter(([_, value]) => value !== undefined);\n // Returns a new object with the filtered values\n return Object.fromEntries(entries);\n}\n\n// Recursively finds all ArrayBuffers in an object and returns them as an array\n// to use as transferable objects to send between workers.\nexport function getTransferable(ctx: unknown): Transferable[] {\n const buffers: Transferable[] = [];\n const seen = new Set();\n\n function traverse(obj: unknown) {\n if (obj && typeof obj === \"object\" && !seen.has(obj)) {\n seen.add(obj);\n\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n // Handles TypedArrays and DataView\n buffers.push(obj.buffer as ArrayBuffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n\n traverse(ctx);\n return buffers;\n}\n\n// Create an array of the given size and initialize element with initFunction()\nexport function newArray(\n n: number,\n initFunction: (index: number) => T,\n): T[] {\n // Creates a new array and calls a constructor function for each element with index\n return new Array(n).fill(null).map((_, i) => initFunction(i));\n}\n\n// A free list that has a pool of items of type T, with callbacks\n// for constructing, disposing, and checking if an item is valid for the given args.\nexport class FreeList {\n items: T[];\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n\n constructor({\n // Allocate a new item with the given args\n allocate,\n // Dispose of an item (optional, if GC is enough)\n dispose,\n // Check if an existing item in the list is valid for the given args,\n // allowing you to store heterogeneous items in the list.\n valid,\n }: {\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n }) {\n this.items = [];\n this.allocate = allocate;\n this.dispose = dispose;\n this.valid = valid;\n }\n\n // Allocate a new item from the free list, first checking if a existing item\n // on the freelist is valid for the given args.\n alloc(args: Args): T {\n while (true) {\n const item = this.items.pop();\n if (!item) {\n // No items in the free list, allocate a new one\n break;\n }\n if (this.valid(item, args)) {\n // Found a valid item, return it\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): found valid item. Reusing...`);\n return item;\n }\n // Item isn't valid for our args, dispose of it and try again\n if (this.dispose) {\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): disposing invalid item.`);\n this.dispose(item);\n }\n }\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): allocating new item`);\n return this.allocate(args);\n }\n\n free(item: T) {\n // Return item to the free list\n this.items.push(item);\n }\n\n disposeAll() {\n // Disposes of all items in the free list\n let item: T | undefined;\n item = this.items.pop();\n while (item) {\n if (this.dispose) {\n this.dispose(item);\n }\n item = this.items.pop();\n }\n }\n}\n\nexport function encodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) {\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n extA[i4] = floatBitsToUint(x);\n extA[i4 + 1] = floatBitsToUint(y);\n extA[i4 + 2] = floatBitsToUint(z);\n extA[i4 + 3] = toHalf(opacity);\n extB[i4] = toHalf(r) | (toHalf(g) << 16);\n extB[i4 + 1] = toHalf(b) | (toHalf(Math.log(scaleX)) << 16);\n extB[i4 + 2] = toHalf(Math.log(scaleY)) | (toHalf(Math.log(scaleZ)) << 16);\n extB[i4 + 3] = encodeQuatOctXy1010R12(quatX, quatY, quatZ, quatW);\n}\n\nexport function decodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n result.center.x = uintBitsToFloat(extA[i4]);\n result.center.y = uintBitsToFloat(extA[i4 + 1]);\n result.center.z = uintBitsToFloat(extA[i4 + 2]);\n result.opacity = fromHalf(extA[i4 + 3] & 0xffff);\n result.color.r = fromHalf(extB[i4] & 0xffff);\n result.color.g = fromHalf(extB[i4] >>> 16);\n result.color.b = fromHalf(extB[i4 + 1] & 0xffff);\n result.scales.x = Math.exp(fromHalf(extB[i4 + 1] >>> 16));\n result.scales.y = Math.exp(fromHalf(extB[i4 + 2] & 0xffff));\n result.scales.z = Math.exp(fromHalf(extB[i4 + 2] >>> 16));\n decodeQuatOctXy1010R12(extB[i4 + 3], result.quaternion);\n return result;\n}\n\n// Encode a PackedSplat as 4 consecutive Uint32 elements in the packedSplats array.\n// The center coordinates x,y,z are encoded as float16, the scales x,y,z as a\n// logarithmic uint8, rotation as three uint8s representing rotation axis and angle,\n// and RGBA as 4xuint8.\nexport function setPackedSplat(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * opacity : opacity);\n\n // Alternate internal encodings commented out below.\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n // Encode the splat as 4 consecutive Uint32 elements\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] =\n uScaleX | (uScaleY << 8) | (uScaleZ << 16) | (uQuatZ << 24);\n}\n\n// Encode the center coordinates x,y,z in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatCenter(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n) {\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n const i4 = index * 4;\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (packedSplats[i4 + 2] & 0xffff0000);\n}\n\n// Encode the scales x,y,z in the packedSplats Uint32Array, leaving all other fields as is.\nexport function setPackedSplatScales(\n packedSplats: Uint32Array,\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n encoding?: {\n lnScaleMin?: number;\n lnScaleMax?: number;\n },\n) {\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const i4 = index * 4;\n packedSplats[i4 + 3] =\n uScaleX |\n (uScaleY << 8) |\n (uScaleZ << 16) |\n (packedSplats[i4 + 3] & 0xff000000);\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempQuaternion = new THREE.Quaternion();\n\n// Encode the rotation quatX, quatY, quatZ, quatW in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatQuat(\n packedSplats: Uint32Array,\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n) {\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n const i4 = index * 4;\n packedSplats[i4 + 2] =\n (packedSplats[i4 + 2] & 0x0000ffff) | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] = (packedSplats[i4 + 3] & 0x00ffffff) | (uQuatZ << 24);\n}\n\n// Encode the RGBA color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgba(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n a: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * a : a);\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n}\n\n// Encode the RGB color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgb(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n\n const i4 = index * 4;\n packedSplats[i4] =\n uR | (uG << 8) | (uB << 16) | (packedSplats[i4] & 0xff000000);\n}\n\n// Encode the opacity in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatOpacity(\n packedSplats: Uint32Array,\n index: number,\n opacity: number,\n) {\n const uA = floatToUint8(opacity);\n\n const i4 = index * 4;\n packedSplats[i4] = (packedSplats[i4] & 0x00ffffff) | (uA << 24);\n}\n\nconst packedCenter = new THREE.Vector3();\nconst packedScales = new THREE.Vector3();\nconst packedQuaternion = new THREE.Quaternion();\nconst packedColor = new THREE.Color();\nconst packedFields = {\n center: packedCenter,\n scales: packedScales,\n quaternion: packedQuaternion,\n color: packedColor,\n opacity: 0.0,\n};\n\n// Unpack all components of a PackedSplat from the packedSplats Uint32Array into\n// THREE.js vector objects. The returned objects will be reused each call.\nexport function unpackSplat(\n packedSplats: Uint32Array,\n index: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n\n const i4 = index * 4;\n const word0 = packedSplats[i4];\n const word1 = packedSplats[i4 + 1];\n const word2 = packedSplats[i4 + 2];\n const word3 = packedSplats[i4 + 3];\n\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n result.color.set(\n rgbMin + ((word0 & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 8) & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 16) & 0xff) / 255) * rgbRange,\n );\n result.opacity = ((word0 >>> 24) & 0xff) / 255;\n if (encoding?.lodOpacity) {\n result.opacity = 2.0 * result.opacity;\n }\n result.center.set(\n fromHalf(word1 & 0xffff),\n fromHalf((word1 >>> 16) & 0xffff),\n fromHalf(word2 & 0xffff),\n );\n\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n const uScalesX = word3 & 0xff;\n result.scales.x =\n uScalesX === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesX - 1) * lnScaleScale);\n const uScalesY = (word3 >>> 8) & 0xff;\n result.scales.y =\n uScalesY === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesY - 1) * lnScaleScale);\n const uScalesZ = (word3 >>> 16) & 0xff;\n result.scales.z =\n uScalesZ === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesZ - 1) * lnScaleScale);\n\n const uQuat = ((word2 >>> 16) & 0xffff) | ((word3 >>> 8) & 0xff0000);\n decodeQuatOctXy88R8(uQuat, result.quaternion);\n // decodeQuatXyz888(uQuat, result.quaternion);\n // decodeQuatEulerXyz888(uQuat, result.quaternion);\n\n return result;\n}\n\n// Compute a texture array size that is large enough to fit numSplats. The most\n// common 2D texture size in WebGL2 is 4096x4096 which only allows for 16M splats,\n// so Spark stores Gsplat data in a 2D texture array, which most platforms support\n// up to 2048x2048x2048 = 8G splats. Allocations that fit within a single 2D texture\n// array layer will be rounded up to fill an entire texture row. Once a texture\n// array layer is filled, the allocation will be rounded up to fill an entire layer.\n// This is done so the entire set of splats can be covered by min/max coords across\n// each dimension.\nexport function getTextureSize(numSplats: number): {\n width: number;\n height: number;\n depth: number;\n maxSplats: number;\n} {\n // Compute a texture array size that is large enough to fit numSplats.\n // The width is always 2048, the height sized to fit the splats but no larger than 2048.\n // The depth is the number of layers needed to fit the splats.\n // maxSplats is computed as the new total available splats that can be stored.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n const maxSplats = width * height * depth;\n return { width, height, depth, maxSplats };\n}\n\nexport function computeMaxSplats(numSplats: number): number {\n // Compute the size of a Gsplat array texture (2048x2048xD) that can fit\n // numSplats splats, and return the total number of splats that can be stored\n // in such a texture.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n return width * height * depth;\n}\n\n// Heuristic function to determine if we are running on a mobile device.\nexport function isMobile(): boolean {\n if (navigator.platform.toLowerCase().startsWith(\"win\")) {\n return false;\n }\n if (navigator.maxTouchPoints > 0) {\n // Touch-enabled device, assume it's mobile\n return true;\n }\n return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test(\n navigator.userAgent,\n );\n}\n\n// Heuristic function to determine if we are running on an Android device.\n// (does not include Oculus Quest)\nexport function isAndroid(): boolean {\n return (\n /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent)\n );\n}\n\n// Heuristic function to determine if we are running on an Oculus Quest device.\nexport function isOculus(): boolean {\n return !!navigator.xr && /Oculus/.test(navigator.userAgent);\n}\n\nexport function isQuest2() {\n return isOculus() && /Quest 2/.test(navigator.userAgent);\n}\n\nexport function isIos(): boolean {\n return /iPhone|iPad/.test(navigator.userAgent);\n}\n\nexport function isVisionPro(): boolean {\n return (\n !!navigator.xr &&\n isIos() &&\n /Safari/.test(navigator.userAgent) &&\n isMobile()\n );\n}\n\n// Take an array of RGBA8 encoded pixels and flip them vertically in-place.\n// This is useful for converting between top-left and bottom-left coordinate systems\n// in standard 2D images vs WebGL2.\nexport function flipPixels(\n pixels: Uint8Array,\n width: number,\n height: number,\n): Uint8Array {\n // Flips pixels vertically in-place, returns original array.\n const tempLine = new Uint8Array(width * 4);\n\n // Only need to process half the height since we're swapping\n for (let y = 0; y < height / 2; y++) {\n const topOffset = y * width * 4;\n const bottomOffset = (height - 1 - y) * width * 4;\n\n // Save top line to temp buffer\n tempLine.set(pixels.subarray(topOffset, topOffset + width * 4));\n // Move bottom line to top\n pixels.set(\n pixels.subarray(bottomOffset, bottomOffset + width * 4),\n topOffset,\n );\n // Move saved top line to bottom\n pixels.set(tempLine, bottomOffset);\n }\n return pixels;\n}\n\n// Utility to take an array of RGBA8 encoded pixels and convert them to a\n// PNG-encoded image data URL that can be downloaded to the client.\nexport function pixelsToPngUrl(\n pixels: Uint8Array,\n width: number,\n height: number,\n): string {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Can't get 2d context\");\n }\n const imageData = ctx.createImageData(width, height);\n imageData.data.set(pixels);\n ctx.putImageData(imageData, 0, 0);\n return canvas.toDataURL(\"image/png\");\n}\n\n// Manually clone a THREE.Clock object.\nexport function cloneClock(clock: THREE.Clock): THREE.Clock {\n const newClock = new THREE.Clock(clock.autoStart);\n newClock.startTime = clock.startTime;\n newClock.oldTime = clock.oldTime;\n newClock.elapsedTime = clock.elapsedTime;\n newClock.running = clock.running;\n return newClock;\n}\n\n// Utility to filter out an undefined values from an object.\nexport function omitUndefined(obj: T): Partial {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => value !== undefined),\n ) as Partial;\n}\n\n// \"Identity\" vertex shader that just passes through the position.\nexport const IDENT_VERTEX_SHADER = unindent(`\n precision highp float;\n\n in vec3 position;\n\n void main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n }\n`);\n\n// Returns the average position of an array of THREE.Vector3.\nexport function averagePositions(positions: THREE.Vector3[]): THREE.Vector3 {\n const sum = new THREE.Vector3();\n for (const position of positions) {\n sum.add(position);\n }\n return sum.divideScalar(positions.length);\n}\n\n// Returns an \"average\" of an array of THREE.Quaternion objects.\n// Note that this is not a spherical lerp between quaternions but\n// rather an arithmetic mean that is normalized to unit length.\nexport function averageQuaternions(\n quaternions: THREE.Quaternion[],\n): THREE.Quaternion {\n if (quaternions.length === 0) {\n return new THREE.Quaternion();\n }\n const sum = quaternions[0].clone();\n for (let i = 1; i < quaternions.length; i++) {\n if (quaternions[i].dot(quaternions[0]) < 0.0) {\n sum.x -= quaternions[i].x;\n sum.y -= quaternions[i].y;\n sum.z -= quaternions[i].z;\n sum.w -= quaternions[i].w;\n } else {\n sum.x += quaternions[i].x;\n sum.y += quaternions[i].y;\n sum.z += quaternions[i].z;\n sum.w += quaternions[i].w;\n }\n }\n return sum.normalize();\n}\n\n// Compare two coordinates given by matrix1 and matrix2, returning the distance\n// between their origins and the \"coincidence\" of their orientations, defined\n// as the dot product of their \"-z\" axes.\nexport function coinciDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n const direction1 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix1)\n .sub(origin1)\n .normalize();\n const direction2 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix2)\n .sub(origin2)\n .normalize();\n\n const distance = origin1.distanceTo(origin2);\n const coincidence = direction1.dot(direction2);\n return { distance, coincidence };\n}\n\n// Utility function that returns whether two coordinate system origins\n// given by matrix1 and matrix2 are within a certain maxDistance of each other.\nexport function withinDist({\n matrix1,\n matrix2,\n maxDistance,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n}): boolean {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n return origin1.distanceTo(origin2) <= maxDistance;\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined by a maxDistance and a minCoincidence.\nexport function withinCoinciDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoincidence,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoincidence?: number;\n}): boolean {\n const { distance, coincidence } = coinciDist(matrix1, matrix2);\n return (\n distance <= maxDistance &&\n (minCoincidence == null || coincidence >= minCoincidence)\n );\n}\n\n// Compare two coordinate systems given by matrix1 and matrix2, returning the\n// distance between their origins and the \"coorientation\" of their orientations,\n// define as the dot product of their quaternion transforms (flipping their\n// orientation to be on the same hemisphere if necessary).\nexport function coorientDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const [origin1, rotate1] = [new THREE.Vector3(), new THREE.Quaternion()];\n const [origin2, rotate2] = [new THREE.Vector3(), new THREE.Quaternion()];\n matrix1.decompose(origin1, rotate1, new THREE.Vector3());\n matrix2.decompose(origin2, rotate2, new THREE.Vector3());\n\n const distance = origin1.distanceTo(origin2);\n const coorient = Math.abs(rotate1.dot(rotate2));\n return { distance, coorient };\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined a maxDistance and a minCoorient.\nexport function withinCoorientDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoorient,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoorient?: number;\n}): boolean {\n const { distance, coorient } = coorientDist(matrix1, matrix2);\n return (\n distance <= maxDistance && (minCoorient == null || coorient >= minCoorient)\n );\n}\n\n// Like Math.sign but with a custom epsilon value.\nexport function epsilonSign(value: number, epsilon = 0.001): number {\n if (Math.abs(value) < epsilon) {\n return 0;\n }\n return Math.sign(value);\n}\n\n// Encode a THREE.Quaternion into a 24-bit integer, converting the xyz coordinates\n// to signed 8-bit integers (w can be derived from xyz), and flipping the sign\n// of the quaternion if necessary to make this possible (q == -q for quaternions).\nexport function encodeQuatXyz888(q: THREE.Quaternion): number {\n const negQuat = q.w < 0.0;\n const iQuatX = floatToSint8(negQuat ? -q.x : q.x);\n const iQuatY = floatToSint8(negQuat ? -q.y : q.y);\n const iQuatZ = floatToSint8(negQuat ? -q.z : q.z);\n const uQuatX = iQuatX & 0xff;\n const uQuatY = iQuatY & 0xff;\n const uQuatZ = iQuatZ & 0xff;\n return uQuatX | (uQuatY << 8) | (uQuatZ << 16);\n}\n\n// Decode a 24-bit integer of the quaternion's xyz coordinates into a THREE.Quaternion.\nexport function decodeQuatXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n const iQuatX = (encoded << 24) >> 24;\n const iQuatY = (encoded << 16) >> 24;\n const iQuatZ = (encoded << 8) >> 24;\n out.set(iQuatX / 127.0, iQuatY / 127.0, iQuatZ / 127.0, 0.0);\n const dotSelf = out.x * out.x + out.y * out.y + out.z * out.z;\n out.w = Math.sqrt(Math.max(0.0, 1.0 - dotSelf));\n return out;\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempNormalizedQuaternion = new THREE.Quaternion();\nconst tempAxis = new THREE.Vector3();\n\n/**\n * Encodes a THREE.Quaternion into a 24‐bit integer.\n *\n * Bit layout (LSB → MSB):\n * - Bits 0–7: quantized U (8 bits)\n * - Bits 8–15: quantized V (8 bits)\n * - Bits 16–23: quantized angle θ (8 bits) from [0,π]\n *\n * This version uses folded octahedral mapping (all inline).\n */\nexport function encodeQuatOctXy88R8(q: THREE.Quaternion): number {\n // Force the minimal representation (q.w >= 0)\n const qnorm = tempNormalizedQuaternion.copy(q).normalize();\n if (qnorm.w < 0) {\n qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w);\n }\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnorm.w);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(\n qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z,\n );\n const axis =\n xyz_norm < 1e-6\n ? tempAxis.set(1, 0, 0)\n : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm);\n // const foldAxis = (axis.z < 0);\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z);\n let p_x = axis.x / sum;\n let p_y = axis.y / sum;\n // Fold the lower hemisphere.\n if (axis.z < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 7 bits (0..127)\n const quantU = Math.round(u_f * 255);\n const quantV = Math.round(v_f * 255);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 10 bits (0..1023) ---\n const angleInt = Math.round(theta * (255 / Math.PI));\n\n // Pack into 24 bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16) | (quantV << 8) | quantU;\n}\n\n/**\n * Decodes a 24‐bit encoded quaternion (packed in a number) back to a THREE.Quaternion.\n *\n * Assumes the same bit layout as in encodeQuatOctXy88R8.\n */\nexport function decodeQuatOctXy88R8(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 8‐bit quantU and quantV, and 8‐bit angleInt.\n const quantU = encoded & 0xff; // bits 0–7\n const quantV = (encoded >>> 8) & 0xff; // bits 8–15\n const angleInt = (encoded >>> 16) & 0xff; // bits 16–23\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 255;\n const v_f = quantV / 255;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axis = tempAxis.set(f_x, f_y, f_z).normalize();\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 255) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axis.x * s, axis.y * s, axis.z * s, w);\n return out;\n}\n\n/**\n * Encodes a THREE.Quaternion into a 24‑bit unsigned integer\n * by converting it to Euler angles (roll, pitch, yaw).\n * The Euler angles are assumed to be in radians in the range [-π, π].\n * Each angle is normalized to [0,1] and quantized to 8 bits.\n * Bit layout (LSB→MSB):\n * - Bits 0–7: roll (quantized)\n * - Bits 8–15: pitch (quantized)\n * - Bits 16–23: yaw (quantized)\n */\nexport function encodeQuatEulerXyz888(q: THREE.Quaternion): number {\n // Normalize quaternion to ensure a proper rotation.\n const qNorm = q.clone().normalize();\n\n // Tait–Bryan angles (roll, pitch, yaw)\n const sinr_cosp = 2.0 * (qNorm.w * qNorm.x + qNorm.y * qNorm.z);\n const cosr_cosp = 1.0 - 2.0 * (qNorm.x * qNorm.x + qNorm.y * qNorm.y);\n const roll = Math.atan2(sinr_cosp, cosr_cosp);\n\n const sinp = 2.0 * (qNorm.w * qNorm.y - qNorm.z * qNorm.x);\n const pitch =\n Math.abs(sinp) >= 1.0 ? Math.sign(sinp) * (Math.PI / 2) : Math.asin(sinp);\n\n const siny_cosp = 2.0 * (qNorm.w * qNorm.z + qNorm.x * qNorm.y);\n const cosy_cosp = 1.0 - 2.0 * (qNorm.y * qNorm.y + qNorm.z * qNorm.z);\n const yaw = Math.atan2(siny_cosp, cosy_cosp);\n\n // Map each angle from [-π, π] to [0, 1]\n const normRoll = (roll + Math.PI) / (2 * Math.PI);\n const normPitch = (pitch + Math.PI) / (2 * Math.PI);\n const normYaw = (yaw + Math.PI) / (2 * Math.PI);\n\n // Quantize to 8 bits (0 to 255)\n const rollQ = Math.round(normRoll * 255);\n const pitchQ = Math.round(normPitch * 255);\n const yawQ = Math.round(normYaw * 255);\n\n // Pack into a 24-bit unsigned integer:\n // Bits 0–7: rollQ, Bits 8–15: pitchQ, Bits 16–23: yawQ.\n return (yawQ << 16) | (pitchQ << 8) | rollQ;\n}\n\n/**\n * Decodes a 24‑bit unsigned integer into a THREE.Quaternion\n * by unpacking three 8‑bit values (roll, pitch, yaw) in the range [0,255]\n * and then converting them back to Euler angles in [-π, π] and to a quaternion.\n */\nexport function decodeQuatEulerXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Unpack 8‑bit values.\n const rollQ = encoded & 0xff;\n const pitchQ = (encoded >>> 8) & 0xff;\n const yawQ = (encoded >>> 16) & 0xff;\n\n // Convert quantized values back to normalized [0,1] values.\n const normRoll = rollQ / 255;\n const normPitch = pitchQ / 255;\n const normYaw = yawQ / 255;\n\n // Map from [0,1] to [-π, π]\n const roll = normRoll * (2 * Math.PI) - Math.PI;\n const pitch = normPitch * (2 * Math.PI) - Math.PI;\n const yaw = normYaw * (2 * Math.PI) - Math.PI;\n\n // Convert Euler angles to quaternion (Tait–Bryan: roll, pitch, yaw).\n const cr = Math.cos(roll * 0.5);\n const sr = Math.sin(roll * 0.5);\n const cp = Math.cos(pitch * 0.5);\n const sp = Math.sin(pitch * 0.5);\n const cy = Math.cos(yaw * 0.5);\n const sy = Math.sin(yaw * 0.5);\n\n out.w = cr * cp * cy + sr * sp * sy;\n out.x = sr * cp * cy - cr * sp * sy;\n out.y = cr * sp * cy + sr * cp * sy;\n out.z = cr * cp * sy - sr * sp * cy;\n out.normalize();\n return out;\n}\n\nexport function encodeQuatOctXy1010R12(\n qx: number,\n qy: number,\n qz: number,\n qw: number,\n): number {\n const qlen = Math.sqrt(qx * qx + qy * qy + qz * qz + qw * qw);\n // Force the minimal representation (q.w >= 0)\n const qnx = (qw < 0 ? -qx : qx) / qlen;\n const qny = (qw < 0 ? -qy : qy) / qlen;\n const qnz = (qw < 0 ? -qz : qz) / qlen;\n const qnw = (qw < 0 ? -qw : qw) / qlen;\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnw);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(qnx * qnx + qny * qny + qnz * qnz);\n const axisX = xyz_norm < 1e-6 ? 1 : qnx / xyz_norm;\n const axisY = xyz_norm < 1e-6 ? 0 : qny / xyz_norm;\n const axisZ = xyz_norm < 1e-6 ? 0 : qnz / xyz_norm;\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axisX) + Math.abs(axisY) + Math.abs(axisZ);\n let p_x = axisX / sum;\n let p_y = axisY / sum;\n // Fold the lower hemisphere.\n if (axisZ < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 10 bits (0..1023)\n const quantU = Math.round(u_f * 1023);\n const quantV = Math.round(v_f * 1023);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 12 bits (0..4095) ---\n const angleInt = Math.round(theta * (4095 / Math.PI));\n\n // Pack into 32 bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20) | (quantV << 10) | quantU;\n}\n\nexport function decodeQuatOctXy1010R12(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 10‐bit quantU and quantV, and 12‐bit angleInt.\n const quantU = encoded & 0x3ff; // bits 0–9\n const quantV = (encoded >>> 10) & 0x3ff; // bits 10–19\n const angleInt = (encoded >>> 20) & 0xfff; // bits 20–31\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 1023;\n const v_f = quantV / 1023;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axisLen = Math.sqrt(f_x * f_x + f_y * f_y + f_z * f_z);\n const axisX = axisLen < 1e-6 ? 0 : f_x / axisLen;\n const axisY = axisLen < 1e-6 ? 0 : f_y / axisLen;\n const axisZ = axisLen < 1e-6 ? 0 : f_z / axisLen;\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 4095) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axisX * s, axisY * s, axisZ * s, w);\n return out;\n}\n\n// Pack four signed 8-bit values into a single uint32.\nfunction packSint8Bytes(\n b0: number,\n b1: number,\n b2: number,\n b3: number,\n): number {\n const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127)));\n const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127)));\n const clampedB2 = Math.round(Math.max(-127, Math.min(127, b2 * 127)));\n const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127)));\n return (\n (clampedB0 & 0xff) |\n ((clampedB1 & 0xff) << 8) |\n ((clampedB2 & 0xff) << 16) |\n ((clampedB3 & 0xff) << 24)\n );\n}\n\n// Encode an array of 9 signed RGB SH1 coefficients (clamped to [-1,1]) into\n// a pair of uint32 values, where each coefficient is stored as a sint7\nexport function encodeSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n encoding?: {\n sh1Max?: number;\n },\n) {\n const sh1Max = encoding?.sh1Max ?? 1;\n const sh1Scale = 63 / sh1Max;\n\n // Pack sint7 values into 2 x uint32\n const base = index * 2;\n for (let i = 0; i < 9; ++i) {\n const s = sh1Rgb[i] * sh1Scale;\n const value = Math.round(Math.max(-63, Math.min(63, s))) & 0x7f;\n const bitStart = i * 7;\n const bitEnd = bitStart + 7;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh1Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh1Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\n// Encode an array of 15 signed RGB SH2 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint8.\nexport function encodeSh2Rgb(\n sh2Array: Uint32Array,\n index: number,\n sh2Rgb: Float32Array,\n encoding?: {\n sh2Max?: number;\n },\n) {\n const sh2Max = encoding?.sh2Max ?? 1;\n const sh2Scale = 1 / sh2Max;\n\n // Pack sint8 values into 4 x uint32\n sh2Array[index * 4 + 0] = packSint8Bytes(\n sh2Rgb[0] * sh2Scale,\n sh2Rgb[1] * sh2Scale,\n sh2Rgb[2] * sh2Scale,\n sh2Rgb[3] * sh2Scale,\n );\n sh2Array[index * 4 + 1] = packSint8Bytes(\n sh2Rgb[4] * sh2Scale,\n sh2Rgb[5] * sh2Scale,\n sh2Rgb[6] * sh2Scale,\n sh2Rgb[7] * sh2Scale,\n );\n sh2Array[index * 4 + 2] = packSint8Bytes(\n sh2Rgb[8] * sh2Scale,\n sh2Rgb[9] * sh2Scale,\n sh2Rgb[10] * sh2Scale,\n sh2Rgb[11] * sh2Scale,\n );\n sh2Array[index * 4 + 3] = packSint8Bytes(\n sh2Rgb[12] * sh2Scale,\n sh2Rgb[13] * sh2Scale,\n sh2Rgb[14] * sh2Scale,\n 0,\n );\n}\n\n// Encode an array of 21 signed RGB SH3 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint6.\nexport function encodeSh3Rgb(\n sh3Array: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n encoding?: {\n sh3Max?: number;\n },\n) {\n const sh3Max = encoding?.sh3Max ?? 1;\n const sh3Scale = 31 / sh3Max;\n\n // Pack sint6 values into 4 x uint32\n const base = index * 4;\n for (let i = 0; i < 21; ++i) {\n const s = sh3Rgb[i] * sh3Scale;\n const value = Math.round(Math.max(-31, Math.min(31, s))) & 0x3f;\n const bitStart = i * 6;\n const bitEnd = bitStart + 6;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh3Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh3Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\nexport function encodeExtRgb(r: number, g: number, b: number): number {\n const ar = Math.abs(r);\n const ag = Math.abs(g);\n const ab = Math.abs(b);\n const maxAbs = Math.max(ar, ag, ab);\n const base = Math.floor(Math.log2(maxAbs));\n const biasedBase = Math.max(0, Math.min(31, base + 15));\n const divisor = 2 ** (biasedBase - 15) / 255;\n const uR = Math.round(Math.max(0, Math.min(255, ar / divisor)));\n const uG = Math.round(Math.max(0, Math.min(255, ag / divisor)));\n const uB = Math.round(Math.max(0, Math.min(255, ab / divisor)));\n const expSigns =\n (biasedBase << 3) |\n ((r < 0 ? 0x1 : 0) | (g < 0 ? 0x2 : 0) | (b < 0 ? 0x4 : 0));\n return uR | (uG << 8) | (uB << 16) | (expSigns << 24);\n}\n\nexport function decodeExtRgb(encoded: number): THREE.Color {\n const color = packedFields.color;\n const biasedBase = (encoded >>> 27) & 0x1f;\n const divisor = 2 ** (biasedBase - 15) / 255;\n const r = (encoded & 0xff) * divisor;\n const g = ((encoded >>> 8) & 0xff) * divisor;\n const b = ((encoded >>> 16) & 0xff) * divisor;\n color.r = encoded & 0x1000000 ? -r : r;\n color.g = encoded & 0x2000000 ? -g : g;\n color.b = encoded & 0x4000000 ? -b : b;\n return color;\n}\n\nexport function encodeExtSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n}\n\nexport function encodeExtSh12Rgb(\n sh1Array: Uint32Array,\n sh2Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n sh2Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n sh1Array[i4 + 3] = encodeExtRgb(sh2Rgb[0], sh2Rgb[1], sh2Rgb[2]);\n for (let k = 1; k < 5; ++k) {\n const k5 = k * 5;\n sh2Array[i4 + (k - 1)] = encodeExtRgb(\n sh2Rgb[k5],\n sh2Rgb[k5 + 1],\n sh2Rgb[k5 + 2],\n );\n }\n}\n\nexport function encodeExt3Rgb(\n sh3ArrayA: Uint32Array,\n sh3ArrayB: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 4; ++k) {\n const k3 = k * 3;\n sh3ArrayA[i4 + k] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n for (let k = 4; k < 7; ++k) {\n const k3 = k * 3;\n sh3ArrayB[i4 + (k - 4)] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n}\n\n// Partially decompress a gzip-encoded Uint8Array, returning a Uint8Array of\n// the specified numBytes from the start of the file.\nexport function decompressPartialGzip(\n fileBytes: Uint8Array,\n numBytes: number,\n): Uint8Array {\n const chunks: Uint8Array[] = [];\n let totalBytes = 0;\n let result: Uint8Array | null = null;\n\n const gunzip = new Gunzip((data, final) => {\n chunks.push(data);\n totalBytes += data.length;\n if (final || totalBytes >= numBytes) {\n const allBytes = new Uint8Array(totalBytes);\n let offset = 0;\n for (const chunk of chunks) {\n allBytes.set(chunk, offset);\n offset += chunk.length;\n }\n result = allBytes.slice(0, numBytes);\n }\n });\n\n const CHUNK_SIZE = 1024;\n let offset = 0;\n while (result == null && offset < fileBytes.length) {\n const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE);\n gunzip.push(chunk, false);\n offset += CHUNK_SIZE;\n }\n\n if (result == null) {\n gunzip.push(new Uint8Array(), true);\n if (result == null) {\n throw new Error(\"Failed to decompress partial gzip\");\n }\n }\n return result;\n}\n\nexport class GunzipReader {\n fileBytes: Uint8Array;\n chunkBytes: number;\n\n chunks: Uint8Array[];\n totalBytes: number;\n reader: ReadableStreamDefaultReader;\n\n constructor({\n fileBytes,\n chunkBytes = 64 * 1024,\n }: { fileBytes: Uint8Array; chunkBytes?: number }) {\n this.fileBytes = fileBytes;\n this.chunkBytes = chunkBytes;\n this.chunks = [];\n this.totalBytes = 0;\n\n const ds = new DecompressionStream(\"gzip\");\n const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds);\n this.reader = decompressionStream.getReader();\n }\n\n async read(numBytes: number): Promise {\n while (this.totalBytes < numBytes) {\n const { value: chunk, done: readerDone } = await this.reader.read();\n if (readerDone) {\n break;\n }\n\n this.chunks.push(chunk);\n this.totalBytes += chunk.length;\n }\n\n if (this.totalBytes < numBytes) {\n throw new Error(\n `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}`,\n );\n }\n\n const allBytes = new Uint8Array(this.totalBytes);\n let outOffset = 0;\n for (const chunk of this.chunks) {\n allBytes.set(chunk, outOffset);\n outOffset += chunk.length;\n }\n\n const result = allBytes.subarray(0, numBytes);\n this.chunks = [allBytes.subarray(numBytes)];\n this.totalBytes -= numBytes;\n return result;\n }\n}\n","import type { SplatEncoding } from \"./defines\";\nimport { computeMaxSplats, setPackedSplat } from \"./utils\";\n\nexport function decodeAntiSplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n) {\n const numSplats = Math.floor(fileBytes.length / 32); // 32 bytes per splat\n if (numSplats * 32 !== fileBytes.length) {\n throw new Error(\"Invalid .splat file size\");\n }\n initNumSplats(numSplats);\n\n const f32 = new Float32Array(fileBytes.buffer);\n for (let i = 0; i < numSplats; ++i) {\n const i32 = i * 32;\n const i8 = i * 8;\n const x = f32[i8 + 0];\n const y = f32[i8 + 1];\n const z = f32[i8 + 2];\n const scaleX = f32[i8 + 3];\n const scaleY = f32[i8 + 4];\n const scaleZ = f32[i8 + 5];\n const r = fileBytes[i32 + 24] / 255;\n const g = fileBytes[i32 + 25] / 255;\n const b = fileBytes[i32 + 26] / 255;\n const opacity = fileBytes[i32 + 27] / 255;\n const quatW = (fileBytes[i32 + 28] - 128) / 128;\n const quatX = (fileBytes[i32 + 29] - 128) / 128;\n const quatY = (fileBytes[i32 + 30] - 128) / 128;\n const quatZ = (fileBytes[i32 + 31] - 128) / 128;\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n }\n}\n\nexport function unpackAntiSplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n} {\n let numSplats = 0;\n let maxSplats = 0;\n let packedArray = new Uint32Array(0);\n decodeAntiSplat(\n fileBytes,\n (cbNumSplats) => {\n numSplats = cbNumSplats;\n maxSplats = computeMaxSplats(numSplats);\n packedArray = new Uint32Array(maxSplats * 4);\n },\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n setPackedSplat(\n packedArray,\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n },\n );\n return { packedArray, numSplats };\n}\n","import type { SplatEncoding } from \"./defines\";\nimport {\n computeMaxSplats,\n encodeSh1Rgb,\n encodeSh2Rgb,\n encodeSh3Rgb,\n fromHalf,\n setPackedSplat,\n} from \"./utils\";\n\ntype KsplatCompression = {\n bytesPerCenter: number;\n bytesPerScale: number;\n bytesPerRotation: number;\n bytesPerColor: number;\n bytesPerSphericalHarmonicsComponent: number;\n scaleOffsetBytes: number;\n rotationOffsetBytes: number;\n colorOffsetBytes: number;\n sphericalHarmonicsOffsetBytes: number;\n scaleRange: number;\n};\n\nconst KSPLAT_COMPRESSION: Record = {\n 0: {\n bytesPerCenter: 12,\n bytesPerScale: 12,\n bytesPerRotation: 16,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 4,\n scaleOffsetBytes: 12,\n rotationOffsetBytes: 24,\n colorOffsetBytes: 40,\n sphericalHarmonicsOffsetBytes: 44,\n scaleRange: 1,\n },\n 1: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 2,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n 2: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 1,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n};\n\nconst KSPLAT_SH_DEGREE_TO_COMPONENTS: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nexport function decodeKsplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n) {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n initNumSplats(numSplats);\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n\n if (sphericalHarmonicsDegree >= 1 && sh1) {\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n if (sh2) {\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n }\n if (sh3) {\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n sectionBase += storageSizeBytes;\n }\n}\n\nexport function unpackKsplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n} {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n setPackedSplat(\n packedArray,\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n\n if (sphericalHarmonicsDegree >= 1) {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n encodeSh1Rgb(extra.sh1 as Uint32Array, i, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n encodeSh2Rgb(extra.sh2 as Uint32Array, i, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n encodeSh3Rgb(extra.sh3 as Uint32Array, i, sh3, splatEncoding);\n }\n }\n }\n sectionBase += storageSizeBytes;\n }\n return { packedArray, numSplats, extra };\n}\n","// PLY file format reader\n\nimport { USE_COMPILED_PARSER_FUNCTION } from \"./defines\";\n\nconst PLY_PROPERTY_TYPES = [\n \"char\",\n \"uchar\",\n \"short\",\n \"ushort\",\n \"int\",\n \"uint\",\n \"float\",\n \"double\",\n] as const;\nexport type PlyPropertyType = (typeof PLY_PROPERTY_TYPES)[number];\n\nexport type PlyElement = {\n name: string;\n count: number;\n properties: Record;\n};\n\nexport type PlyProperty = {\n isList: boolean;\n type: PlyPropertyType;\n countType?: PlyPropertyType;\n};\n\n// Callback for parseSplats base Gsplat data\nexport type SplatCallback = (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) => void;\n\n// Callback for parseSplats SH coefficients\nexport type SplatShCallback = (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n) => void;\n\n// A PlyReader is used to parse PLY files for Gsplat data.\n// It takes a Uint8Array/ArrayBuffer as input fileBytes, parses the text header,\n// and provides a method parseData to iterate over the entire binary data\n// efficiently, or parseSplats to iterate over Gsplat data.\n\nexport class PlyReader {\n fileBytes: Uint8Array;\n header = \"\";\n littleEndian = true;\n elements: Record = {};\n comments: string[] = [];\n data: DataView | null = null;\n static defaultPointScale = 0.001;\n\n numSplats = 0;\n\n // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n }\n\n // Identify and parse the PLY text header (assumed to be <64KB in size).\n // this.elements will contain all the elements in the file, typically\n // \"vertex\" contains the Gsplat data.\n async parseHeader() {\n const bufferStream = new ReadableStream({\n start: (\n controller: ReadableStreamController>,\n ) => {\n // Assume the header is less than 64KB\n controller.enqueue(this.fileBytes.slice(0, 65536));\n controller.close();\n },\n });\n const decoder = bufferStream\n .pipeThrough(new TextDecoderStream())\n .getReader();\n\n // Find the end of the text section of the PLY file\n this.header = \"\";\n const headerTerminator = \"end_header\\n\";\n while (true) {\n const { value, done } = await decoder.read();\n if (done) {\n throw new Error(\"Failed to read header\");\n }\n\n this.header += value as string;\n const endHeader = this.header.indexOf(headerTerminator);\n if (endHeader >= 0) {\n this.header = this.header.slice(0, endHeader + headerTerminator.length);\n break;\n }\n }\n // Partition the file into header and binary data\n const headerLen = new TextEncoder().encode(this.header).length;\n this.data = new DataView(this.fileBytes.buffer, headerLen);\n\n this.elements = {};\n let curElement: PlyElement | null = null;\n this.comments = [];\n\n this.header\n .trim()\n .split(\"\\n\")\n .forEach((line: string, lineIndex: number) => {\n const trimmedLine = line.trim();\n if (lineIndex === 0) {\n if (trimmedLine !== \"ply\") {\n throw new Error(\"Invalid PLY header\");\n }\n return;\n }\n if (trimmedLine.length === 0) {\n return; // Skip empty lines\n }\n\n const fields = trimmedLine.split(\" \");\n switch (fields[0]) {\n case \"format\":\n if (fields[1] === \"binary_little_endian\") {\n this.littleEndian = true;\n } else if (fields[1] === \"binary_big_endian\") {\n this.littleEndian = false;\n } else {\n // ascii formats not supported\n throw new Error(`Unsupported PLY format: ${fields[1]}`);\n }\n if (fields[2] !== \"1.0\") {\n throw new Error(`Unsupported PLY version: ${fields[2]}`);\n }\n break;\n case \"end_header\":\n break;\n case \"comment\":\n this.comments.push(trimmedLine.slice(\"comment \".length));\n break;\n case \"element\": {\n const name = fields[1];\n curElement = {\n name,\n count: Number.parseInt(fields[2]),\n properties: {},\n };\n this.elements[name] = curElement;\n break;\n }\n case \"property\":\n if (curElement == null) {\n throw new Error(\"Property must be inside an element\");\n }\n if (fields[1] === \"list\") {\n curElement.properties[fields[4]] = {\n isList: true,\n type: fields[3] as PlyPropertyType,\n countType: fields[2] as PlyPropertyType,\n };\n } else {\n curElement.properties[fields[2]] = {\n isList: false,\n type: fields[1] as PlyPropertyType,\n };\n }\n break;\n default:\n // console.warn(`Skipping unsupported PLY keyword: ${fields[0]}`);\n }\n });\n\n if (this.elements.vertex) {\n this.numSplats = this.elements.vertex.count;\n }\n }\n\n parseData(\n elementCallback: (\n element: PlyElement,\n ) =>\n | null\n | ((index: number, item: Record) => void),\n ) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No data to parse\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const item = createEmptyItem(properties);\n // Construct a parse function\n const parseFn = createParseFn(properties, this.littleEndian);\n\n // Parse all the items in the element\n const callback = elementCallback(element) ?? (() => {});\n for (let index = 0; index < count; index++) {\n offset = parseFn(data, offset, item);\n callback(index, item);\n }\n }\n }\n\n // Parse all the Gsplat data in the PLY file in go, invoking the given\n // callbacks for each Gsplat.\n parseSplats(splatCallback: SplatCallback, shCallback?: SplatShCallback) {\n if (this.elements.vertex == null) {\n throw new Error(\"No vertex element found\");\n }\n\n let isSuperSplat = false;\n const ssChunks: SSChunk[] = [];\n\n let numSh = 0;\n let sh1Props: number[] = [];\n let sh2Props: number[] = [];\n let sh3Props: number[] = [];\n let sh1: Float32Array | undefined = undefined;\n let sh2: Float32Array | undefined = undefined;\n let sh3: Float32Array | undefined = undefined;\n\n function prepareSh() {\n // Prepare SH coefficient names and arrays for numSh total SH levels\n const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh];\n sh1Props = new Array(3)\n .fill(null)\n .flatMap((_, k) => [0, 1, 2].map((_, d) => k + (d * num_f_rest) / 3));\n sh2Props = new Array(5)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 3 + k + (d * num_f_rest) / 3),\n );\n sh3Props = new Array(7)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 8 + k + (d * num_f_rest) / 3),\n );\n sh1 = numSh >= 1 ? new Float32Array(3 * 3) : undefined;\n sh2 = numSh >= 2 ? new Float32Array(5 * 3) : undefined;\n sh3 = numSh >= 3 ? new Float32Array(7 * 3) : undefined;\n }\n\n function ssShCallback(\n index: number,\n item: Record,\n ) {\n // Decode SH for SuperSplat compressed data\n if (!sh1) {\n throw new Error(\"Missing sh1\");\n }\n const sh = item.f_rest as number[];\n\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = (sh[sh1Props[i]] * 8) / 255 - 4;\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = (sh[sh2Props[i]] * 8) / 255 - 4;\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = (sh[sh3Props[i]] * 8) / 255 - 4;\n }\n }\n shCallback?.(index, sh1, sh2, sh3);\n }\n\n function initSuperSplat(element: PlyElement) {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n } = element.properties;\n if (\n !min_x ||\n !min_y ||\n !min_z ||\n !max_x ||\n !max_y ||\n !max_z ||\n !min_scale_x ||\n !min_scale_y ||\n !min_scale_z ||\n !max_scale_x ||\n !max_scale_y ||\n !max_scale_z\n ) {\n throw new Error(\"Missing PLY chunk properties\");\n }\n\n // SuperSplat chunks are used to quantize splat data, so we need to store them\n isSuperSplat = true;\n return (index: number, item: Record) => {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = item as Record;\n ssChunks.push({\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n });\n };\n }\n\n function decodeSuperSplat(element: PlyElement) {\n // Decode SuperSplat compressed data in vertex and sh elements\n if (shCallback && element.name === \"sh\") {\n numSh = getNumSh(element.properties);\n prepareSh();\n return ssShCallback;\n }\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n element.properties;\n if (\n !packed_position ||\n !packed_rotation ||\n !packed_scale ||\n !packed_color\n ) {\n throw new Error(\n \"Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color\",\n );\n }\n\n const SQRT2 = Math.sqrt(2);\n\n return (index: number, item: Record) => {\n // SuperSplat data are quantized within chunks with 256 Gsplats each\n const chunk = ssChunks[index >>> 8];\n if (chunk == null) {\n throw new Error(\"Missing PLY chunk\");\n }\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = chunk;\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n item as Record;\n\n const x =\n (((packed_position >>> 21) & 2047) / 2047) * (max_x - min_x) + min_x;\n const y =\n (((packed_position >>> 11) & 1023) / 1023) * (max_y - min_y) + min_y;\n const z = ((packed_position & 2047) / 2047) * (max_z - min_z) + min_z;\n\n const r0 = (((packed_rotation >>> 20) & 1023) / 1023 - 0.5) * SQRT2;\n const r1 = (((packed_rotation >>> 10) & 1023) / 1023 - 0.5) * SQRT2;\n const r2 = ((packed_rotation & 1023) / 1023 - 0.5) * SQRT2;\n const rr = Math.sqrt(Math.max(0, 1.0 - r0 * r0 - r1 * r1 - r2 * r2));\n\n const rOrder = packed_rotation >>> 30;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n\n const scaleX = Math.exp(\n (((packed_scale >>> 21) & 2047) / 2047) *\n (max_scale_x - min_scale_x) +\n min_scale_x,\n );\n const scaleY = Math.exp(\n (((packed_scale >>> 11) & 1023) / 1023) *\n (max_scale_y - min_scale_y) +\n min_scale_y,\n );\n const scaleZ = Math.exp(\n ((packed_scale & 2047) / 2047) * (max_scale_z - min_scale_z) +\n min_scale_z,\n );\n\n const r =\n (((packed_color >>> 24) & 255) / 255) *\n ((max_r ?? 1) - (min_r ?? 0)) +\n (min_r ?? 0);\n const g =\n (((packed_color >>> 16) & 255) / 255) *\n ((max_g ?? 1) - (min_g ?? 0)) +\n (min_g ?? 0);\n const b =\n (((packed_color >>> 8) & 255) / 255) * ((max_b ?? 1) - (min_b ?? 0)) +\n (min_b ?? 0);\n const opacity = (packed_color & 255) / 255;\n\n splatCallback(\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n };\n }\n\n const elementCallback = (element: PlyElement) => {\n if (element.name === \"chunk\") {\n // \"chunk\" could conceivably be used for other formats, and we would\n // ideally check for the comment: Generated by SuperSplat 2.*\n // but gsplat also outputs this format without such a comment.\n // In order to support both, let's assume a \"chunk\" element should\n // be interpreted as this format.\n return initSuperSplat(element);\n }\n if (isSuperSplat) {\n return decodeSuperSplat(element);\n }\n\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const {\n x,\n y,\n z,\n scale_0,\n scale_1,\n scale_2,\n rot_0,\n rot_1,\n rot_2,\n rot_3,\n opacity,\n f_dc_0,\n f_dc_1,\n f_dc_2,\n red,\n green,\n blue,\n alpha,\n } = element.properties;\n\n if (!x || !y || !z) {\n throw new Error(\"Missing PLY properties: x, y, z\");\n }\n // Pure point cloud PLY files have no scales or rotations\n const hasScales = scale_0 && scale_1 && scale_2;\n const hasRots = rot_0 && rot_1 && rot_2 && rot_3;\n // Quantization scale factor for argb values\n const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1;\n const redDiv = red != null ? FIELD_SCALE[red.type] : 1;\n const greenDiv = green != null ? FIELD_SCALE[green.type] : 1;\n const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1;\n\n numSh = getNumSh(element.properties);\n prepareSh();\n\n return (index: number, item: Record) => {\n const scaleX = hasScales\n ? Math.exp(item.scale_0 as number)\n : PlyReader.defaultPointScale;\n const scaleY = hasScales\n ? Math.exp(item.scale_1 as number)\n : PlyReader.defaultPointScale;\n const scaleZ = hasScales\n ? Math.exp(item.scale_2 as number)\n : PlyReader.defaultPointScale;\n\n const quatX = hasRots ? (item.rot_1 as number) : 0;\n const quatY = hasRots ? (item.rot_2 as number) : 0;\n const quatZ = hasRots ? (item.rot_3 as number) : 0;\n const quatW = hasRots ? (item.rot_0 as number) : 1;\n\n const op =\n opacity != null\n ? 1.0 / (1.0 + Math.exp(-item.opacity as number))\n : alpha != null\n ? (item.alpha as number) / alphaDiv\n : 1.0;\n const r =\n f_dc_0 != null\n ? (item.f_dc_0 as number) * SH_C0 + 0.5\n : red != null\n ? (item.red as number) / redDiv\n : 1.0;\n const g =\n f_dc_1 != null\n ? (item.f_dc_1 as number) * SH_C0 + 0.5\n : green != null\n ? (item.green as number) / greenDiv\n : 1.0;\n const b =\n f_dc_2 != null\n ? (item.f_dc_2 as number) * SH_C0 + 0.5\n : blue != null\n ? (item.blue as number) / blueDiv\n : 1.0;\n\n splatCallback(\n index,\n item.x as number,\n item.y as number,\n item.z as number,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n op,\n r,\n g,\n b,\n );\n\n if (shCallback && sh1) {\n const sh = item.f_rest as number[];\n if (sh1) {\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = sh[sh1Props[i]];\n }\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = sh[sh2Props[i]];\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = sh[sh3Props[i]];\n }\n }\n shCallback(index, sh1, sh2, sh3);\n }\n };\n };\n\n this.parseData(elementCallback);\n }\n\n // Inject RGBA values into original PLY file, which can be used to modify\n // the color/opacity of the Gsplats and write out the modified PLY file.\n injectRgba(rgba: Uint8Array) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No parsed data\");\n }\n if (rgba.length !== this.numSplats * 4) {\n throw new Error(\"Invalid RGBA array length\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const parsers = [];\n\n let rgbaOffset = 0;\n const isVertex = elementName === \"vertex\";\n if (isVertex) {\n for (const name of [\"opacity\", \"f_dc_0\", \"f_dc_1\", \"f_dc_2\"]) {\n if (!properties[name] || properties[name].type !== \"float\") {\n throw new Error(`Can't injectRgba due to property: ${name}`);\n }\n }\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!property.isList) {\n if (isVertex) {\n if (\n propertyName === \"f_dc_0\" ||\n propertyName === \"f_dc_1\" ||\n propertyName === \"f_dc_2\"\n ) {\n const component = Number.parseInt(\n propertyName.slice(\"f_dc_\".length),\n );\n parsers.push(() => {\n // Inject DC coefficients\n const value =\n (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0;\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n } else if (propertyName === \"opacity\") {\n parsers.push(() => {\n // Inject opacity sigmoid, clamped to [-100, 100]\n const value = Math.max(\n -100,\n Math.min(\n 100,\n -Math.log(1.0 / (rgba[rgbaOffset + 3] / 255) - 1.0),\n ),\n );\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n }\n }\n parsers.push(() => {\n offset += FIELD_BYTES[property.type];\n });\n } else {\n parsers.push(() => {\n const length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n this.littleEndian,\n );\n offset += FIELD_BYTES[property.countType as PlyPropertyType];\n offset += length * FIELD_BYTES[property.type];\n });\n }\n }\n\n for (let index = 0; index < count; index++) {\n // Go through all the data and field parsers to compute offset\n for (const parser of parsers) {\n parser();\n }\n if (isVertex) {\n rgbaOffset += 4;\n }\n }\n }\n }\n}\n\nexport const SH_C0 = 0.28209479177387814;\n\ntype FieldParser = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n) => number;\ntype FieldSetter = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n) => void;\n\nconst PARSE_FIELD: Record = {\n char: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt8(offset);\n },\n uchar: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint8(offset);\n },\n short: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt16(offset, littleEndian);\n },\n ushort: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint16(offset, littleEndian);\n },\n int: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt32(offset, littleEndian);\n },\n uint: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint32(offset, littleEndian);\n },\n float: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat32(offset, littleEndian);\n },\n double: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat64(offset, littleEndian);\n },\n};\n\nconst SET_FIELD: Record = {\n char: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt8(offset, value);\n },\n uchar: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint8(offset, value);\n },\n short: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt16(offset, value, littleEndian);\n },\n ushort: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint16(offset, value, littleEndian);\n },\n int: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt32(offset, value, littleEndian);\n },\n uint: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint32(offset, value, littleEndian);\n },\n float: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat32(offset, value, littleEndian);\n },\n double: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat64(offset, value, littleEndian);\n },\n};\n\nconst FIELD_BYTES: Record = {\n char: 1,\n uchar: 1,\n short: 2,\n ushort: 2,\n int: 4,\n uint: 4,\n float: 4,\n double: 8,\n};\n\nconst FIELD_SCALE: Record = {\n char: 127,\n uchar: 255,\n short: 32767,\n ushort: 65535,\n int: 2147483647,\n uint: 4294967295,\n float: 1,\n double: 1,\n};\n\nconst NUM_F_REST_TO_NUM_SH: Record = {\n 0: 0,\n 9: 1,\n 24: 2,\n 45: 3,\n};\nconst NUM_SH_TO_NUM_F_REST: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nconst F_REST_REGEX = /^f_rest_([0-9]{1,2})$/;\n\nfunction createEmptyItem(\n properties: Record,\n): Record {\n const item: Record = {};\n for (const [propertyName, property] of Object.entries(properties)) {\n // Treat f_rest properties as a single array for performance\n if (F_REST_REGEX.test(propertyName)) {\n item.f_rest = new Array(getNumSh(properties));\n } else {\n item[propertyName] = property.isList ? [] : 0;\n }\n }\n return item;\n}\n\nfunction createParseFn(\n properties: Record,\n littleEndian: boolean,\n) {\n if (USE_COMPILED_PARSER_FUNCTION && safeToCompile(properties)) {\n return createCompiledParserFn(properties, littleEndian);\n }\n return createDynamicParserFn(properties, littleEndian);\n}\n\n// Detect if unsafe eval is allowed in the current execution context\nconst UNSAFE_EVAL_ALLOWED = (() => {\n try {\n new Function(\"return 42;\");\n } catch (e) {\n return false;\n }\n return true;\n})();\nconst PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/;\n\nfunction safeToCompile(properties: Record) {\n if (!UNSAFE_EVAL_ALLOWED) {\n return false;\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!PROPERTY_NAME_REGEX.test(propertyName)) {\n return false;\n }\n\n if (\n property.isList &&\n !PLY_PROPERTY_TYPES.includes(property.countType as PlyPropertyType)\n ) {\n return false;\n }\n\n if (!PLY_PROPERTY_TYPES.includes(property.type)) {\n return false;\n }\n }\n return true;\n}\n\nfunction createCompiledParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct the parser function source.\n const parserSrc: string[] = [\"let list;\"];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parserSrc.push(/*js*/ `\n item.f_rest[${fRestIndex}] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else if (!property.isList) {\n parserSrc.push(/*js*/ `\n item['${propertyName}'] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else {\n // Property is a list, so parse the count first\n parserSrc.push(/*js*/ `\n list = item['${propertyName}'];\n list.length = PARSE_FIELD['${property.countType}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.countType as PlyPropertyType]};\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n }\n `);\n }\n }\n parserSrc.push(\"return offset;\");\n\n const fn = new Function(\n \"data\",\n \"offset\",\n \"item\",\n \"PARSE_FIELD\",\n parserSrc.join(\"\\n\"),\n );\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => fn(data, offset, item, PARSE_FIELD);\n}\n\nfunction createDynamicParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct an array of parser function to parse each property in an item\n const parsers: Array<\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => number\n > = [];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n (item.f_rest as number[])[fRestIndex] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else if (!property.isList) {\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n item[propertyName] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else {\n // Property is a list, so parse the count first\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n const list = item[propertyName] as number[];\n list.length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n littleEndian,\n );\n let currentOffset =\n offset + FIELD_BYTES[property.countType as PlyPropertyType];\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD[property.type](\n data,\n currentOffset,\n littleEndian,\n );\n currentOffset += FIELD_BYTES[property.type];\n }\n return currentOffset;\n },\n );\n }\n }\n\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n let currentOffset = offset;\n for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) {\n currentOffset = parsers[parserIndex](data, currentOffset, item);\n }\n return currentOffset;\n };\n}\n\nfunction getNumSh(properties: Record) {\n let num_f_rest = 0;\n while (properties[`f_rest_${num_f_rest}`]) {\n num_f_rest += 1;\n }\n const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest];\n if (numSh == null) {\n throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`);\n }\n return numSh;\n}\n\ntype SSChunk = {\n min_x: number;\n min_y: number;\n min_z: number;\n max_x: number;\n max_y: number;\n max_z: number;\n min_scale_x: number;\n min_scale_y: number;\n min_scale_z: number;\n max_scale_x: number;\n max_scale_y: number;\n max_scale_z: number;\n min_r?: number;\n min_g?: number;\n min_b?: number;\n max_r?: number;\n max_g?: number;\n max_b?: number;\n};\n","import * as THREE from \"three\";\nimport {\n SplatData,\n type TranscodeSpzInput,\n getSplatFileType,\n getSplatFileTypeFromPath,\n} from \"./SplatLoader\";\nimport { GunzipReader, fromHalf, normalize } from \"./utils\";\n\nimport { decodeAntiSplat } from \"./antisplat\";\nimport { SplatFileType } from \"./defines\";\nimport { decodeKsplat } from \"./ksplat\";\nimport { PlyReader } from \"./ply\";\n\n// SPZ file format reader\n\nexport class SpzReader {\n fileBytes: Uint8Array;\n reader: GunzipReader;\n\n version = -1;\n numSplats = 0;\n shDegree = 0;\n fractionalBits = 0;\n flags = 0;\n flagAntiAlias = false;\n flagLod = false;\n reserved = 0;\n headerParsed = false;\n parsed = false;\n\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n this.reader = new GunzipReader({\n fileBytes: this.fileBytes as Uint8Array,\n });\n }\n\n async parseHeader() {\n if (this.headerParsed) {\n throw new Error(\"SPZ file header already parsed\");\n }\n\n const header = new DataView((await this.reader.read(16)).buffer);\n if (header.getUint32(0, true) !== 0x5053474e) {\n throw new Error(\"Invalid SPZ file\");\n }\n this.version = header.getUint32(4, true);\n if (this.version < 1 || this.version > 3) {\n throw new Error(`Unsupported SPZ version: ${this.version}`);\n }\n\n this.numSplats = header.getUint32(8, true);\n this.shDegree = header.getUint8(12);\n this.fractionalBits = header.getUint8(13);\n this.flags = header.getUint8(14);\n this.flagAntiAlias = (this.flags & 0x01) !== 0;\n this.flagLod = (this.flags & 0x80) !== 0;\n this.reserved = header.getUint8(15);\n this.headerParsed = true;\n this.parsed = false;\n }\n\n async parseSplats(\n centerCallback?: (index: number, x: number, y: number, z: number) => void,\n alphaCallback?: (index: number, alpha: number) => void,\n rgbCallback?: (index: number, r: number, g: number, b: number) => void,\n scalesCallback?: (\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n ) => void,\n quatCallback?: (\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n {\n childCounts,\n childStarts,\n }: {\n childCounts?: (index: number, count: number) => void;\n childStarts?: (index: number, start: number) => void;\n } = {},\n ) {\n if (!this.headerParsed) {\n throw new Error(\"SPZ file header must be parsed first\");\n }\n if (this.parsed) {\n throw new Error(\"SPZ file already parsed\");\n }\n this.parsed = true;\n\n if (this.version === 1) {\n // float16 centers\n const centerBytes = await this.reader.read(this.numSplats * 3 * 2);\n const centerUint16 = new Uint16Array(centerBytes.buffer);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const x = fromHalf(centerUint16[i3]);\n const y = fromHalf(centerUint16[i3 + 1]);\n const z = fromHalf(centerUint16[i3 + 2]);\n centerCallback?.(i, x, y, z);\n }\n } else if (this.version === 2 || this.version === 3) {\n // 24-bit fixed-point centers\n const fixed = 1 << this.fractionalBits;\n const centerBytes = await this.reader.read(this.numSplats * 3 * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i9 = i * 9;\n const x =\n (((centerBytes[i9 + 2] << 24) |\n (centerBytes[i9 + 1] << 16) |\n (centerBytes[i9] << 8)) >>\n 8) /\n fixed;\n const y =\n (((centerBytes[i9 + 5] << 24) |\n (centerBytes[i9 + 4] << 16) |\n (centerBytes[i9 + 3] << 8)) >>\n 8) /\n fixed;\n const z =\n (((centerBytes[i9 + 8] << 24) |\n (centerBytes[i9 + 7] << 16) |\n (centerBytes[i9 + 6] << 8)) >>\n 8) /\n fixed;\n centerCallback?.(i, x, y, z);\n }\n } else {\n throw new Error(\"Unreachable\");\n }\n\n {\n const bytes = await this.reader.read(this.numSplats);\n for (let i = 0; i < this.numSplats; i++) {\n alphaCallback?.(i, bytes[i] / 255);\n }\n }\n {\n const rgbBytes = await this.reader.read(this.numSplats * 3);\n const scale = SH_C0 / 0.15;\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const r = (rgbBytes[i3] / 255 - 0.5) * scale + 0.5;\n const g = (rgbBytes[i3 + 1] / 255 - 0.5) * scale + 0.5;\n const b = (rgbBytes[i3 + 2] / 255 - 0.5) * scale + 0.5;\n rgbCallback?.(i, r, g, b);\n }\n }\n {\n const scalesBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const scaleX = Math.exp(scalesBytes[i3] / 16 - 10);\n const scaleY = Math.exp(scalesBytes[i3 + 1] / 16 - 10);\n const scaleZ = Math.exp(scalesBytes[i3 + 2] / 16 - 10);\n scalesCallback?.(i, scaleX, scaleY, scaleZ);\n }\n }\n if (this.version === 3) {\n // Version 3 uses a trick called \"smallest three\" to compress the rotation quaternions\n // achieving better precision. \"Optimizing orientation\" section at https://gafferongames.com/post/snapshot_compression/ A quaternion length must be 1: x^2+y^2+z^2+w^2 = 1\n // We can drop one component and reconstruct it with the identity above.\n // Largest component is dropped for best numerical precision.\n // Quaternion stored in 32 bits\n // 10 bits singed integer for each of the 3 components + 2 bits indicating the index of dropped component.\n // vs 8 bits for each component uncompressed (spz version < 3)\n // Max Value after extracting largest component v is another component v\n // (v,v,0,0)\n // v^2 + v^2 = 1\n // v = 1 / sqrt(2);\n const maxValue = 1 / Math.sqrt(2); // 0.7071\n const quatBytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 4;\n const quaternion = [0, 0, 0, 0];\n const values = [\n quatBytes[i3],\n quatBytes[i3 + 1],\n quatBytes[i3 + 2],\n quatBytes[i3 + 3],\n ];\n // all values are packed in 32 bits (10 per each of 3 components + 2 bits of index of larged value)\n const combinedValues =\n values[0] + (values[1] << 8) + (values[2] << 16) + (values[3] << 24);\n // each component value is 9 bits + sign (1 bit)\n const valueMask = (1 << 9) - 1;\n // extract index of the largest element. 2 top bits.\n const largestIndex = combinedValues >>> 30;\n let remainingValues = combinedValues;\n let sumSquares = 0;\n\n for (let i = 3; i >= 0; --i) {\n if (i !== largestIndex) {\n // extract current value and sign.\n const value = remainingValues & valueMask;\n const sign = (remainingValues >>> 9) & 0x1;\n // each value is represented as 10 bits. Shift to next one.\n remainingValues = remainingValues >>> 10;\n // convert to range [0,1] and then to [0, 0.7071]\n quaternion[i] = maxValue * (value / valueMask);\n // apply sign.\n quaternion[i] = sign === 0 ? quaternion[i] : -quaternion[i];\n // accumulate the sum of squares\n sumSquares += quaternion[i] * quaternion[i];\n }\n }\n\n // quartenion length must be 1 (x^2+y^2+z^2+w^2 = 1)\n // so can reconstruct largest component from the other 3.\n // w = sqrt(1 - x^2 - y^2 - z^2);\n const square = 1 - sumSquares;\n quaternion[largestIndex] = Math.sqrt(Math.max(square, 0));\n\n quatCallback?.(\n i,\n quaternion[0],\n quaternion[1],\n quaternion[2],\n quaternion[3],\n );\n }\n } else {\n const quatBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const quatX = quatBytes[i3] / 127.5 - 1;\n const quatY = quatBytes[i3 + 1] / 127.5 - 1;\n const quatZ = quatBytes[i3 + 2] / 127.5 - 1;\n const quatW = Math.sqrt(\n Math.max(0, 1 - quatX * quatX - quatY * quatY - quatZ * quatZ),\n );\n quatCallback?.(i, quatX, quatY, quatZ, quatW);\n }\n }\n\n if (shCallback && this.shDegree >= 1) {\n const sh1 = new Float32Array(3 * 3);\n const sh2 = this.shDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 = this.shDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n const shBytes = await this.reader.read(\n this.numSplats * SH_DEGREE_TO_VECS[this.shDegree] * 3,\n );\n\n let offset = 0;\n for (let i = 0; i < this.numSplats; i++) {\n for (let j = 0; j < 9; ++j) {\n sh1[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 9;\n if (sh2) {\n for (let j = 0; j < 15; ++j) {\n sh2[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 15;\n }\n if (sh3) {\n for (let j = 0; j < 21; ++j) {\n sh3[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 21;\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n if (this.flagLod) {\n let bytes = await this.reader.read(this.numSplats * 2);\n for (let i = 0; i < this.numSplats; i++) {\n const i2 = i * 2;\n const count = bytes[i2] + (bytes[i2 + 1] << 8);\n childCounts?.(i, count);\n }\n\n bytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i4 = i * 4;\n const start =\n bytes[i4] +\n (bytes[i4 + 1] << 8) +\n (bytes[i4 + 2] << 16) +\n (bytes[i4 + 3] << 24);\n childStarts?.(i, start);\n }\n }\n }\n}\n\nconst SH_DEGREE_TO_VECS: Record = { 1: 3, 2: 8, 3: 15 };\nconst SH_C0 = 0.28209479177387814;\n\nexport const SPZ_MAGIC = 0x5053474e; // NGSP = Niantic gaussian splat\nexport const SPZ_VERSION = 3;\nexport const FLAG_ANTIALIASED = 0x1;\n\nexport class SpzWriter {\n buffer: ArrayBuffer;\n view: DataView;\n numSplats: number;\n shDegree: number;\n fractionalBits: number;\n fraction: number;\n flagAntiAlias: boolean;\n clippedCount = 0;\n\n constructor({\n numSplats,\n shDegree,\n fractionalBits = 12,\n flagAntiAlias = true,\n }: {\n numSplats: number;\n shDegree: number;\n fractionalBits?: number;\n flagAntiAlias?: boolean;\n }) {\n const splatSize =\n 9 + // Position\n 1 + // Opacity\n 3 + // Scale\n 3 + // DC-rgb\n 4 + // Rotation\n (shDegree >= 1 ? 9 : 0) +\n (shDegree >= 2 ? 15 : 0) +\n (shDegree >= 3 ? 21 : 0);\n const bufferSize = 16 + numSplats * splatSize;\n this.buffer = new ArrayBuffer(bufferSize);\n this.view = new DataView(this.buffer);\n\n this.view.setUint32(0, SPZ_MAGIC, true); // NGSP\n this.view.setUint32(4, SPZ_VERSION, true);\n this.view.setUint32(8, numSplats, true);\n this.view.setUint8(12, shDegree);\n this.view.setUint8(13, fractionalBits);\n this.view.setUint8(14, flagAntiAlias ? FLAG_ANTIALIASED : 0);\n this.view.setUint8(15, 0); // Reserved\n\n this.numSplats = numSplats;\n this.shDegree = shDegree;\n this.fractionalBits = fractionalBits;\n this.fraction = 1 << fractionalBits;\n this.flagAntiAlias = flagAntiAlias;\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n // Divide by this.fraction and round to nearest integer,\n // then write as 3-bytes per x then y then z.\n const xRounded = Math.round(x * this.fraction);\n const xInt = Math.max(-0x7fffff, Math.min(0x7fffff, xRounded));\n const yRounded = Math.round(y * this.fraction);\n const yInt = Math.max(-0x7fffff, Math.min(0x7fffff, yRounded));\n const zRounded = Math.round(z * this.fraction);\n const zInt = Math.max(-0x7fffff, Math.min(0x7fffff, zRounded));\n const clipped = xRounded !== xInt || yRounded !== yInt || zRounded !== zInt;\n if (clipped) {\n this.clippedCount += 1;\n // if (this.clippedCount < 10) {\n // // Write x y z also in hex\n // console.log(`Clipped ${index}: ${x}, ${y}, ${z} (0x${x.toString(16)}, 0x${y.toString(16)}, 0x${z.toString(16)}) -> ${xRounded}, ${yRounded}, ${zRounded} (0x${xRounded.toString(16)}, 0x${yRounded.toString(16)}, 0x${zRounded.toString(16)}) -> ${xInt}, ${yInt}, ${zInt} (0x${xInt.toString(16)}, 0x${yInt.toString(16)}, 0x${zInt.toString(16)})`);\n // }\n }\n const i9 = index * 9;\n const base = 16 + i9;\n this.view.setUint8(base, xInt & 0xff);\n this.view.setUint8(base + 1, (xInt >> 8) & 0xff);\n this.view.setUint8(base + 2, (xInt >> 16) & 0xff);\n this.view.setUint8(base + 3, yInt & 0xff);\n this.view.setUint8(base + 4, (yInt >> 8) & 0xff);\n this.view.setUint8(base + 5, (yInt >> 16) & 0xff);\n this.view.setUint8(base + 6, zInt & 0xff);\n this.view.setUint8(base + 7, (zInt >> 8) & 0xff);\n this.view.setUint8(base + 8, (zInt >> 16) & 0xff);\n }\n\n setAlpha(index: number, alpha: number) {\n const base = 16 + this.numSplats * 9 + index;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round(alpha * 255))),\n );\n }\n\n static scaleRgb(r: number) {\n const v = ((r - 0.5) / (SH_C0 / 0.15) + 0.5) * 255;\n return Math.max(0, Math.min(255, Math.round(v)));\n }\n\n setRgb(index: number, r: number, g: number, b: number) {\n const base = 16 + this.numSplats * 10 + index * 3;\n this.view.setUint8(base, SpzWriter.scaleRgb(r));\n this.view.setUint8(base + 1, SpzWriter.scaleRgb(g));\n this.view.setUint8(base + 2, SpzWriter.scaleRgb(b));\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n const base = 16 + this.numSplats * 13 + index * 3;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleX) + 10) * 16))),\n );\n this.view.setUint8(\n base + 1,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleY) + 10) * 16))),\n );\n this.view.setUint8(\n base + 2,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleZ) + 10) * 16))),\n );\n }\n\n setQuat(\n index: number,\n ...q: [number, number, number, number] // x, y, z, w\n ) {\n const base = 16 + this.numSplats * 16 + index * 4;\n\n const quat = normalize(q);\n\n // Find largest component\n let iLargest = 0;\n for (let i = 1; i < 4; ++i) {\n if (Math.abs(quat[i]) > Math.abs(quat[iLargest])) {\n iLargest = i;\n }\n }\n\n // Since -quat represents the same rotation as quat, transform the quaternion so the largest element\n // is positive. This avoids having to send its sign bit.\n const negate = quat[iLargest] < 0 ? 1 : 0;\n\n // Do compression using sign bit and 9-bit precision per element.\n let comp = iLargest;\n for (let i = 0; i < 4; ++i) {\n if (i !== iLargest) {\n const negbit = (quat[i] < 0 ? 1 : 0) ^ negate;\n const mag = Math.floor(\n ((1 << 9) - 1) * (Math.abs(quat[i]) / Math.SQRT1_2) + 0.5,\n );\n comp = (comp << 10) | (negbit << 9) | mag;\n }\n }\n\n this.view.setUint8(base, comp & 0xff);\n this.view.setUint8(base + 1, (comp >> 8) & 0xff);\n this.view.setUint8(base + 2, (comp >> 16) & 0xff);\n this.view.setUint8(base + 3, (comp >>> 24) & 0xff);\n }\n\n static quantizeSh(sh: number, bits: number) {\n const value = Math.round(sh * 128) + 128;\n const bucketSize = 1 << (8 - bits);\n const quantized =\n Math.floor((value + bucketSize / 2) / bucketSize) * bucketSize;\n return Math.max(0, Math.min(255, quantized));\n }\n\n setSh(\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) {\n const shVecs = SH_DEGREE_TO_VECS[this.shDegree] || 0;\n const base1 = 16 + this.numSplats * 20 + index * shVecs * 3;\n for (let j = 0; j < 9; ++j) {\n this.view.setUint8(base1 + j, SpzWriter.quantizeSh(sh1[j], 5));\n }\n if (sh2) {\n const base2 = base1 + 9;\n for (let j = 0; j < 15; ++j) {\n this.view.setUint8(base2 + j, SpzWriter.quantizeSh(sh2[j], 4));\n }\n if (sh3) {\n const base3 = base2 + 15;\n for (let j = 0; j < 21; ++j) {\n this.view.setUint8(base3 + j, SpzWriter.quantizeSh(sh3[j], 4));\n }\n }\n }\n }\n\n async finalize(): Promise {\n const input = new Uint8Array(this.buffer);\n const stream = new ReadableStream({\n async start(controller) {\n controller.enqueue(input);\n controller.close();\n },\n });\n const compressed = stream.pipeThrough(new CompressionStream(\"gzip\"));\n const response = new Response(compressed);\n const buffer = await response.arrayBuffer();\n console.log(\n \"Compressed\",\n input.length,\n \"bytes to\",\n buffer.byteLength,\n \"bytes\",\n );\n return new Uint8Array(buffer);\n }\n}\n\nexport async function transcodeSpz(input: TranscodeSpzInput) {\n const splats = new SplatData();\n const {\n inputs,\n clipXyz,\n maxSh,\n fractionalBits = 12,\n opacityThreshold,\n } = input;\n for (const input of inputs) {\n const scale = input.transform?.scale ?? 1;\n const quaternion = new THREE.Quaternion().fromArray(\n input.transform?.quaternion ?? [0, 0, 0, 1],\n );\n const translate = new THREE.Vector3().fromArray(\n input.transform?.translate ?? [0, 0, 0],\n );\n const clip = clipXyz\n ? new THREE.Box3(\n new THREE.Vector3().fromArray(clipXyz.min),\n new THREE.Vector3().fromArray(clipXyz.max),\n )\n : undefined;\n\n function transformPos(pos: THREE.Vector3) {\n pos.multiplyScalar(scale);\n pos.applyQuaternion(quaternion);\n pos.add(translate);\n return pos;\n }\n\n function transformScales(scales: THREE.Vector3) {\n scales.multiplyScalar(scale);\n return scales;\n }\n\n function transformQuaternion(quat: THREE.Quaternion) {\n quat.premultiply(quaternion);\n return quat;\n }\n\n function withinClip(p: THREE.Vector3) {\n return !clip || clip.containsPoint(p);\n }\n\n function withinOpacity(opacity: number) {\n return opacityThreshold !== undefined\n ? opacity >= opacityThreshold\n : true;\n }\n\n let fileType = input.fileType;\n if (!fileType) {\n fileType = getSplatFileType(input.fileBytes);\n if (!fileType && input.pathOrUrl) {\n fileType = getSplatFileTypeFromPath(input.pathOrUrl);\n }\n }\n switch (fileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes: input.fileBytes });\n await ply.parseHeader();\n let lastIndex: number | null = null;\n ply.parseSplats(\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (sh1 && lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n }\n if (sh2 && lastIndex !== null) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3 && lastIndex !== null) {\n splats.setSh3(lastIndex, sh3);\n }\n },\n );\n break;\n }\n case SplatFileType.SPZ: {\n const spz = new SpzReader({ fileBytes: input.fileBytes });\n await spz.parseHeader();\n const mapping = new Int32Array(spz.numSplats);\n mapping.fill(-1);\n const centers = new Float32Array(spz.numSplats * 3);\n const center = new THREE.Vector3();\n spz.parseSplats(\n (index, x, y, z) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n centers[index * 3] = center.x;\n centers[index * 3 + 1] = center.y;\n centers[index * 3 + 2] = center.z;\n },\n (index, alpha) => {\n center.fromArray(centers, index * 3);\n if (withinClip(center) && withinOpacity(alpha)) {\n mapping[index] = splats.pushSplat();\n splats.setCenter(mapping[index], center.x, center.y, center.z);\n splats.setOpacity(mapping[index], alpha);\n }\n },\n (index, r, g, b) => {\n if (mapping[index] >= 0) {\n splats.setColor(mapping[index], r, g, b);\n }\n },\n (index, scaleX, scaleY, scaleZ) => {\n if (mapping[index] >= 0) {\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(mapping[index], scales.x, scales.y, scales.z);\n }\n },\n (index, quatX, quatY, quatZ, quatW) => {\n if (mapping[index] >= 0) {\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n mapping[index],\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n }\n },\n (index, sh1, sh2, sh3) => {\n if (mapping[index] >= 0) {\n splats.setSh1(mapping[index], sh1);\n if (sh2) {\n splats.setSh2(mapping[index], sh2);\n }\n if (sh3) {\n splats.setSh3(mapping[index], sh3);\n }\n }\n },\n );\n break;\n }\n case SplatFileType.SPLAT:\n decodeAntiSplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n const index = splats.pushSplat();\n splats.setCenter(index, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(index, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n index,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(index, opacity);\n splats.setColor(index, r, g, b);\n }\n },\n );\n break;\n case SplatFileType.KSPLAT: {\n let lastIndex: number | null = null;\n decodeKsplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n if (sh2) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3) {\n splats.setSh3(lastIndex, sh3);\n }\n }\n },\n );\n break;\n }\n default:\n throw new Error(`transcodeSpz not implemented for ${fileType}`);\n }\n }\n\n const shDegree = Math.min(\n maxSh ?? 3,\n splats.sh3 ? 3 : splats.sh2 ? 2 : splats.sh1 ? 1 : 0,\n );\n const spz = new SpzWriter({\n numSplats: splats.numSplats,\n shDegree,\n fractionalBits,\n flagAntiAlias: true,\n });\n\n for (let i = 0; i < splats.numSplats; ++i) {\n const i3 = i * 3;\n const i4 = i * 4;\n spz.setCenter(\n i,\n splats.centers[i3],\n splats.centers[i3 + 1],\n splats.centers[i3 + 2],\n );\n spz.setScale(\n i,\n splats.scales[i3],\n splats.scales[i3 + 1],\n splats.scales[i3 + 2],\n );\n spz.setQuat(\n i,\n splats.quaternions[i4],\n splats.quaternions[i4 + 1],\n splats.quaternions[i4 + 2],\n splats.quaternions[i4 + 3],\n );\n spz.setAlpha(i, splats.opacities[i]);\n spz.setRgb(\n i,\n splats.colors[i3],\n splats.colors[i3 + 1],\n splats.colors[i3 + 2],\n );\n if (splats.sh1 && shDegree >= 1) {\n spz.setSh(\n i,\n splats.sh1.slice(i * 9, (i + 1) * 9),\n shDegree >= 2 && splats.sh2\n ? splats.sh2.slice(i * 15, (i + 1) * 15)\n : undefined,\n shDegree >= 3 && splats.sh3\n ? splats.sh3.slice(i * 21, (i + 1) * 21)\n : undefined,\n );\n }\n }\n\n const spzBytes = await spz.finalize();\n return { fileBytes: spzBytes, clippedCount: spz.clippedCount };\n}\n","import { unzipSync } from \"fflate\";\nimport { FileLoader, Loader, type LoadingManager } from \"three\";\nimport { ExtSplats, type ExtSplatsOptions } from \"./ExtSplats\";\nimport { withWorker } from \"./OldSplatWorker\";\nimport { PackedSplats, type PackedSplatsOptions } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { type SplatEncoding, SplatFileType } from \"./defines\";\nimport { PlyReader } from \"./ply\";\nimport { decompressPartialGzip, getTextureSize } from \"./utils\";\n\n// SplatLoader implements the THREE.Loader interface and supports loading a variety\n// of different Gsplat file formats. Formats .PLY and .SPZ can be auto-detected\n// from the file contents, while .SPLAT and .KSPLAT require either having the\n// appropriate file extension as part of the path, or it can be explicitly set\n// in the loader using the fileType property.\n\nexport class SplatLoader extends Loader {\n fileLoader: FileLoader;\n\n constructor(manager?: LoadingManager) {\n super(manager);\n this.fileLoader = new FileLoader(manager);\n }\n\n load(\n url: string,\n onLoad?: (decoded: PackedSplats | ExtSplats) => void,\n onProgress?: (event: ProgressEvent) => void,\n onError?: (error: unknown) => void,\n ) {\n return this.loadInternal({\n url,\n onLoad,\n onProgress,\n onError,\n });\n }\n\n async loadAsync(\n url: string,\n onProgress?: (event: ProgressEvent) => void,\n ): Promise {\n return new Promise((resolve, reject) => {\n this.load(\n url,\n (decoded) => {\n resolve(decoded);\n },\n onProgress,\n reject,\n );\n });\n }\n\n parse(packedSplats: PackedSplats): SplatMesh {\n return new SplatMesh({ packedSplats });\n }\n\n loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad,\n onProgress,\n onError,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onLoad?: (decoded: PackedSplats | ExtSplats) => void;\n onProgress?: (event: ProgressEvent) => void;\n onError?: (error: unknown) => void;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n if (fileBytes instanceof ArrayBuffer) {\n fileBytes = new Uint8Array(fileBytes);\n }\n const resolvedURL = fileBytes\n ? undefined\n : this.manager.resolveURL((this.path ?? \"\") + (url ?? \"\"));\n\n let readStream = stream?.getReader();\n\n this.manager.itemStart(resolvedURL ?? \"\");\n // let calledOnLoad = false;\n\n workerPool\n .withWorker(async (worker) => {\n // If LoD is set and not falsey\n const splatsLod = packedSplats?.lod ?? extSplats?.lod;\n if (splatsLod) {\n lod = splatsLod;\n }\n const splatsNonLod = packedSplats?.nonLod ?? extSplats?.nonLod;\n if (splatsNonLod !== undefined) {\n nonLod = splatsNonLod;\n }\n\n // let init: {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // } | null = null;\n // let initExt: {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // } | null = null;\n\n const onStatus = async (data: unknown) => {\n const { loaded, total } = data as { loaded: number; total: number };\n if (loaded !== undefined && onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n\n if ((data as { nextChunk?: boolean }).nextChunk) {\n let chunk: Uint8Array;\n if (!readStream) {\n chunk = new Uint8Array(0);\n } else {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n readStream = undefined;\n chunk = new Uint8Array(0);\n } else {\n chunk = value;\n }\n }\n worker.call(\"nextChunk\", { chunk });\n }\n\n // if ((data as { orig?: unknown }).orig) {\n // if (extSplats) {\n // initExt = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // };\n // extSplats.initialize({\n // numSplats: initExt?.numSplats,\n // extArrays: [initExt?.ext0, initExt?.ext1],\n // extra: initExt?.extra,\n // });\n // calledOnLoad = true;\n // onLoad?.(extSplats);\n // } else if (packedSplats) {\n // init = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // };\n // packedSplats.initialize({\n // numSplats: init?.numSplats,\n // packedArray: init?.packedArray,\n // extra: init?.extra,\n // splatEncoding: init?.splatEncoding,\n // });\n // calledOnLoad = true;\n // onLoad?.(packedSplats);\n // } else {\n // console.warn(\"No splats to initialize\");\n // }\n // }\n };\n\n const basedUrl = resolvedURL\n ? new URL(resolvedURL, window.location.href).toString()\n : undefined;\n const decoded = (await worker.call(\n extSplats ? \"loadExtSplats\" : \"loadPackedSplats\",\n {\n url: basedUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n fileBytes: fileBytes?.slice(),\n fileType,\n pathName: resolvedURL || fileName,\n chunked: stream !== undefined,\n chunkedLength: streamLength,\n encoding: packedSplats?.splatEncoding,\n lod,\n lodBase,\n nonLod,\n lodAbove,\n },\n { onStatus },\n )) as {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n lodSplats?:\n | {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n }\n | PackedSplats\n | ExtSplats;\n };\n\n if (decoded.lodSplats) {\n if (extSplats) {\n decoded.lodSplats = new ExtSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n }),\n });\n } else {\n decoded.lodSplats = new PackedSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n }),\n maxSplats: packedSplats?.maxSplats,\n });\n }\n }\n\n if (extSplats) {\n const initExtSplats = {\n // ...(initExt ?? {}),\n ...decoded,\n };\n extSplats.initialize(initExtSplats as ExtSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(extSplats);\n // }\n } else {\n const initSplats = {\n // ...(init ?? {}),\n ...decoded,\n };\n if (packedSplats) {\n packedSplats.initialize(initSplats as PackedSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(packedSplats);\n // }\n } else {\n // if (!calledOnLoad) {\n onLoad?.(new PackedSplats(initSplats as PackedSplatsOptions));\n // }\n }\n }\n })\n .catch((error) => {\n this.manager.itemError(resolvedURL ?? \"\");\n onError?.(error);\n })\n .finally(() => {\n this.manager.itemEnd(resolvedURL ?? \"\");\n });\n }\n\n async loadInternalAsync({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onProgress?: (event: ProgressEvent) => void;\n lod?: boolean;\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n return new Promise((resolve, reject) => {\n this.loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad: resolve,\n onProgress,\n onError: reject,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n });\n });\n }\n}\n\nasync function fetchWithProgress(\n request: Request,\n onProgress?: (event: ProgressEvent) => void,\n) {\n const response = await fetch(request);\n if (!response.ok) {\n throw new Error(\n `${response.status} \"${response.statusText}\" fetching URL: ${request.url}`,\n );\n }\n if (!response.body) {\n throw new Error(`Response body is null for URL: ${request.url}`);\n }\n\n const reader = response.body.getReader();\n let loaded = 0;\n const chunks: Uint8Array[] = [];\n try {\n const contentLength = Number.parseInt(\n response.headers.get(\"Content-Length\") || \"0\",\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n loaded += value.length;\n\n if (onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n }\n } catch (err) {\n try {\n const reason = err instanceof Error ? err.message : \"Unknown error\";\n await reader.cancel(reason);\n } catch {}\n throw err;\n }\n\n // Combine chunks into a single buffer\n const bytes = new Uint8Array(loaded);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.length;\n }\n return bytes.buffer;\n}\n\nexport function getSplatFileType(\n fileBytes: Uint8Array,\n): SplatFileType | undefined {\n const view = new DataView(fileBytes.buffer);\n const magic = view.getUint32(0, true);\n if ((magic & 0x00ffffff) === 0x00796c70) {\n return SplatFileType.PLY;\n }\n if ((magic & 0x00ffffff) === 0x00088b1f) {\n // Gzipped file, unpack beginning to check magic number\n const header = decompressPartialGzip(fileBytes, 4);\n const gView = new DataView(header.buffer);\n if (gView.getUint32(0, true) === 0x5053474e) {\n return SplatFileType.SPZ;\n }\n // Unknown Gzipped file type\n return undefined;\n }\n if (magic === 0x04034b50) {\n // PKZip file\n if (tryPcSogsZip(fileBytes)) {\n return SplatFileType.PCSOGSZIP;\n }\n // Unknown PKZip file type\n return undefined;\n }\n if (magic === 0x30444152) {\n return SplatFileType.RAD;\n }\n // Unknown file type\n return undefined;\n}\n\n// Returns the lowercased file extension from a path or URL\nexport function getFileExtension(pathOrUrl: string): string {\n const noTrailing = pathOrUrl.split(/[?#]/, 1)[0];\n const lastSlash = Math.max(\n noTrailing.lastIndexOf(\"/\"),\n noTrailing.lastIndexOf(\"\\\\\"),\n );\n const filename = noTrailing.slice(lastSlash + 1);\n const lastDot = filename.lastIndexOf(\".\");\n if (lastDot <= 0 || lastDot === filename.length - 1) {\n return \"\"; // No extension\n }\n return filename.slice(lastDot + 1).toLowerCase();\n}\n\nexport function getSplatFileTypeFromPath(\n pathOrUrl: string,\n): SplatFileType | undefined {\n const extension = getFileExtension(pathOrUrl);\n if (extension === \"ply\") {\n return SplatFileType.PLY;\n }\n if (extension === \"spz\") {\n return SplatFileType.SPZ;\n }\n if (extension === \"splat\") {\n return SplatFileType.SPLAT;\n }\n if (extension === \"ksplat\") {\n return SplatFileType.KSPLAT;\n }\n if (extension === \"sog\") {\n return SplatFileType.PCSOGSZIP;\n }\n if (extension === \"rad\") {\n return SplatFileType.RAD;\n }\n return undefined;\n}\n\nexport type PcSogsJson = {\n means: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n quats: { shape: number[]; dtype: string; encoding?: string; files: string[] };\n sh0: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n shN?: {\n shape: number[];\n dtype: string;\n mins: number;\n maxs: number;\n quantization: number;\n files: string[];\n };\n};\n\nexport type PcSogsV2Json = {\n version: 2;\n count: number;\n antialias?: boolean;\n means: {\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n codebook: number[];\n files: string[];\n };\n quats: { files: string[] };\n sh0: {\n codebook: number[];\n files: string[];\n };\n shN?: {\n count: number;\n bands: number;\n codebook: number[];\n files: string[];\n };\n};\n\nexport function isPcSogs(input: ArrayBuffer | Uint8Array | string): boolean {\n // Returns true if the input seems to be a valid PC SOGS file\n return tryPcSogs(input) !== undefined;\n}\n\nexport function tryPcSogs(\n input: ArrayBuffer | Uint8Array | string,\n): PcSogsJson | PcSogsV2Json | undefined {\n // Try to parse input as SOGS JSON and see if it's valid\n try {\n let text: string;\n if (typeof input === \"string\") {\n text = input;\n } else {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n if (fileBytes.length > 65536) {\n // Should be only a few KB, definitely not a SOGS JSON file\n return undefined;\n }\n text = new TextDecoder().decode(fileBytes);\n }\n\n const json = JSON.parse(text);\n if (!json || typeof json !== \"object\" || Array.isArray(json)) {\n return undefined;\n }\n const isVersion2 = json.version === 2;\n\n for (const key of [\"means\", \"scales\", \"quats\", \"sh0\"]) {\n if (\n !json[key] ||\n typeof json[key] !== \"object\" ||\n Array.isArray(json[key])\n ) {\n return undefined;\n }\n if (isVersion2) {\n // Expect files\n if (!json[key].files) {\n return undefined;\n }\n\n // Scales and sh0 should have codebooks\n if ((key === \"scales\" || key === \"sh0\") && !json[key].codebook) {\n return undefined;\n }\n // Means should have mins and maxs defined\n if (key === \"means\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n } else {\n // Expect shape and files\n if (!json[key].shape || !json[key].files) {\n return undefined;\n }\n // Besides 'quats' all other properties have mins and maxs\n if (key !== \"quats\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n }\n }\n // This is probably a PC SOGS file\n return json as PcSogsJson | PcSogsV2Json;\n } catch {\n return undefined;\n }\n}\n\nexport function tryPcSogsZip(\n input: ArrayBuffer | Uint8Array,\n): { name: string; json: PcSogsJson | PcSogsV2Json } | undefined {\n try {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let metaFilename: string | null = null;\n\n const unzipped = unzipSync(fileBytes, {\n filter: ({ name }) => {\n const filename = name.split(/[\\\\/]/).pop() as string;\n if (filename === \"meta.json\") {\n metaFilename = name;\n return true;\n }\n return false;\n },\n });\n if (!metaFilename) {\n return undefined;\n }\n\n // Check for PC SOGS V1 and V2 (aka SOG)\n const json = tryPcSogs(unzipped[metaFilename]);\n if (!json) {\n return undefined;\n }\n return { name: metaFilename, json };\n } catch {\n return undefined;\n }\n}\n\nexport async function unpackSplats({\n input,\n extraFiles,\n fileType,\n pathOrUrl,\n splatEncoding,\n}: {\n input: Uint8Array | ArrayBuffer;\n extraFiles?: Record;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n splatEncoding?: SplatEncoding;\n}): Promise<{\n packedArray: Uint32Array;\n numSplats: number;\n extra?: Record;\n}> {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let splatFileType = fileType;\n if (!fileType) {\n splatFileType = getSplatFileType(fileBytes);\n if (!splatFileType && pathOrUrl) {\n splatFileType = getSplatFileTypeFromPath(pathOrUrl);\n }\n }\n\n switch (splatFileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes });\n await ply.parseHeader();\n const numSplats = ply.numSplats;\n const maxSplats = getTextureSize(numSplats).maxSplats;\n const args = {\n fileBytes,\n packedArray: new Uint32Array(maxSplats * 4),\n splatEncoding,\n };\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"unpackPly\",\n args,\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.SPZ: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodeSpz\",\n {\n fileBytes,\n splatEncoding,\n },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.SPLAT: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats } = (await worker.call(\n \"decodeAntiSplat\",\n {\n fileBytes,\n splatEncoding,\n },\n )) as { packedArray: Uint32Array; numSplats: number };\n return { packedArray, numSplats };\n });\n }\n case SplatFileType.KSPLAT: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodeKsplat\",\n { fileBytes, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.PCSOGS: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodePcSogs\",\n { fileBytes, extraFiles, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.PCSOGSZIP: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodePcSogsZip\",\n { fileBytes, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n default: {\n throw new Error(`Unknown splat file type: ${splatFileType}`);\n }\n }\n}\n\nexport class SplatData {\n numSplats: number;\n maxSplats: number;\n centers: Float32Array;\n scales: Float32Array;\n quaternions: Float32Array;\n opacities: Float32Array;\n colors: Float32Array;\n sh1?: Float32Array;\n sh2?: Float32Array;\n sh3?: Float32Array;\n\n constructor({ maxSplats = 1 }: { maxSplats?: number } = {}) {\n this.numSplats = 0;\n this.maxSplats = getTextureSize(maxSplats).maxSplats;\n this.centers = new Float32Array(this.maxSplats * 3);\n this.scales = new Float32Array(this.maxSplats * 3);\n this.quaternions = new Float32Array(this.maxSplats * 4);\n this.opacities = new Float32Array(this.maxSplats);\n this.colors = new Float32Array(this.maxSplats * 3);\n }\n\n pushSplat(): number {\n const index = this.numSplats;\n this.ensureIndex(index);\n this.numSplats += 1;\n return index;\n }\n\n unpushSplat(index: number) {\n if (index === this.numSplats - 1) {\n this.numSplats -= 1;\n } else {\n throw new Error(\"Cannot unpush splat from non-last position\");\n }\n }\n\n ensureCapacity(numSplats: number) {\n if (numSplats > this.maxSplats) {\n const targetSplats = Math.max(numSplats, this.maxSplats * 2);\n const newCenters = new Float32Array(targetSplats * 3);\n const newScales = new Float32Array(targetSplats * 3);\n const newQuaternions = new Float32Array(targetSplats * 4);\n const newOpacities = new Float32Array(targetSplats);\n const newColors = new Float32Array(targetSplats * 3);\n newCenters.set(this.centers);\n newScales.set(this.scales);\n newQuaternions.set(this.quaternions);\n newOpacities.set(this.opacities);\n newColors.set(this.colors);\n this.centers = newCenters;\n this.scales = newScales;\n this.quaternions = newQuaternions;\n this.opacities = newOpacities;\n this.colors = newColors;\n\n if (this.sh1) {\n const newSh1 = new Float32Array(targetSplats * 9);\n newSh1.set(this.sh1);\n this.sh1 = newSh1;\n }\n if (this.sh2) {\n const newSh2 = new Float32Array(targetSplats * 15);\n newSh2.set(this.sh2);\n this.sh2 = newSh2;\n }\n if (this.sh3) {\n const newSh3 = new Float32Array(targetSplats * 21);\n newSh3.set(this.sh3);\n this.sh3 = newSh3;\n }\n\n this.maxSplats = targetSplats;\n }\n }\n\n ensureIndex(index: number) {\n this.ensureCapacity(index + 1);\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n this.centers[index * 3] = x;\n this.centers[index * 3 + 1] = y;\n this.centers[index * 3 + 2] = z;\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n this.scales[index * 3] = scaleX;\n this.scales[index * 3 + 1] = scaleY;\n this.scales[index * 3 + 2] = scaleZ;\n }\n\n setQuaternion(index: number, x: number, y: number, z: number, w: number) {\n this.quaternions[index * 4] = x;\n this.quaternions[index * 4 + 1] = y;\n this.quaternions[index * 4 + 2] = z;\n this.quaternions[index * 4 + 3] = w;\n }\n\n setOpacity(index: number, opacity: number) {\n this.opacities[index] = opacity;\n }\n\n setColor(index: number, r: number, g: number, b: number) {\n this.colors[index * 3] = r;\n this.colors[index * 3 + 1] = g;\n this.colors[index * 3 + 2] = b;\n }\n\n setSh1(index: number, sh1: Float32Array) {\n if (!this.sh1) {\n this.sh1 = new Float32Array(this.maxSplats * 9);\n }\n for (let j = 0; j < 9; ++j) {\n this.sh1[index * 9 + j] = sh1[j];\n }\n }\n\n setSh2(index: number, sh2: Float32Array) {\n if (!this.sh2) {\n this.sh2 = new Float32Array(this.maxSplats * 15);\n }\n for (let j = 0; j < 15; ++j) {\n this.sh2[index * 15 + j] = sh2[j];\n }\n }\n\n setSh3(index: number, sh3: Float32Array) {\n if (!this.sh3) {\n this.sh3 = new Float32Array(this.maxSplats * 21);\n }\n for (let j = 0; j < 21; ++j) {\n this.sh3[index * 21 + j] = sh3[j];\n }\n }\n}\n\nexport async function transcodeSpz(\n input: TranscodeSpzInput,\n): Promise<{ input: TranscodeSpzInput; fileBytes: Uint8Array }> {\n return await withWorker(async (worker) => {\n const result = (await worker.call(\"transcodeSpz\", input)) as {\n input: TranscodeSpzInput;\n fileBytes: Uint8Array;\n };\n return result;\n });\n}\n\nexport type FileInput = {\n fileBytes: Uint8Array;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n transform?: { translate?: number[]; quaternion?: number[]; scale?: number };\n};\n\nexport type TranscodeSpzInput = {\n inputs: FileInput[];\n maxSh?: number;\n clipXyz?: { min: number[]; max: number[] };\n fractionalBits?: number;\n opacityThreshold?: number;\n};\n","import { unzip } from \"fflate\";\nimport {\n type PcSogsJson,\n type PcSogsV2Json,\n tryPcSogsZip,\n} from \"./SplatLoader\";\nimport type { SplatEncoding } from \"./defines\";\nimport {\n computeMaxSplats,\n encodeSh1Rgb,\n encodeSh2Rgb,\n encodeSh3Rgb,\n setPackedSplatCenter,\n setPackedSplatQuat,\n setPackedSplatRgba,\n setPackedSplatScales,\n} from \"./utils\";\n\nexport async function unpackPcSogs(\n json: PcSogsJson | PcSogsV2Json,\n extraFiles: Record,\n splatEncoding: SplatEncoding,\n): Promise<{\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n}> {\n const isVersion2 = \"version\" in json;\n\n if (!isVersion2 && json.quats.encoding !== \"quaternion_packed\") {\n throw new Error(\"Unsupported quaternion encoding\");\n }\n\n const numSplats = isVersion2 ? json.count : json.means.shape[0];\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n const meansPromise = Promise.all([\n decodeImageRgba(extraFiles[json.means.files[0]]),\n decodeImageRgba(extraFiles[json.means.files[1]]),\n ]).then((means) => {\n for (let i = 0; i < numSplats; ++i) {\n const i4 = i * 4;\n const fx = (means[0][i4 + 0] + (means[1][i4 + 0] << 8)) / 65535;\n const fy = (means[0][i4 + 1] + (means[1][i4 + 1] << 8)) / 65535;\n const fz = (means[0][i4 + 2] + (means[1][i4 + 2] << 8)) / 65535;\n let x =\n json.means.mins[0] + (json.means.maxs[0] - json.means.mins[0]) * fx;\n let y =\n json.means.mins[1] + (json.means.maxs[1] - json.means.mins[1]) * fy;\n let z =\n json.means.mins[2] + (json.means.maxs[2] - json.means.mins[2]) * fz;\n x = Math.sign(x) * (Math.exp(Math.abs(x)) - 1);\n y = Math.sign(y) * (Math.exp(Math.abs(y)) - 1);\n z = Math.sign(z) * (Math.exp(Math.abs(z)) - 1);\n setPackedSplatCenter(packedArray, i, x, y, z);\n }\n });\n\n const scalesPromise = decodeImageRgba(extraFiles[json.scales.files[0]]).then(\n (scales) => {\n let xLookup: number[];\n let yLookup: number[];\n let zLookup: number[];\n\n if (isVersion2) {\n xLookup =\n yLookup =\n zLookup =\n json.scales.codebook.map((x) => Math.exp(x));\n } else {\n xLookup = new Array(256)\n .fill(0)\n .map(\n (_, i) =>\n json.scales.mins[0] +\n (json.scales.maxs[0] - json.scales.mins[0]) * (i / 255),\n )\n .map((x) => Math.exp(x));\n yLookup = new Array(256)\n .fill(0)\n .map(\n (_, i) =>\n json.scales.mins[1] +\n (json.scales.maxs[1] - json.scales.mins[1]) * (i / 255),\n )\n .map((x) => Math.exp(x));\n zLookup = new Array(256)\n .fill(0)\n .map(\n (_, i) =>\n json.scales.mins[2] +\n (json.scales.maxs[2] - json.scales.mins[2]) * (i / 255),\n )\n .map((x) => Math.exp(x));\n }\n\n for (let i = 0; i < numSplats; ++i) {\n const i4 = i * 4;\n setPackedSplatScales(\n packedArray,\n i,\n xLookup[scales[i4 + 0]],\n yLookup[scales[i4 + 1]],\n zLookup[scales[i4 + 2]],\n splatEncoding,\n );\n }\n },\n );\n\n const quatsPromise = decodeImageRgba(extraFiles[json.quats.files[0]]).then(\n (quats) => {\n const SQRT2 = Math.sqrt(2);\n const lookup = new Array(256)\n .fill(0)\n .map((_, i) => (i / 255 - 0.5) * SQRT2);\n\n for (let i = 0; i < numSplats; ++i) {\n const i4 = i * 4;\n const r0 = lookup[quats[i4 + 0]];\n const r1 = lookup[quats[i4 + 1]];\n const r2 = lookup[quats[i4 + 2]];\n const rr = Math.sqrt(Math.max(0, 1.0 - r0 * r0 - r1 * r1 - r2 * r2));\n const rOrder = quats[i4 + 3] - 252;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n setPackedSplatQuat(packedArray, i, quatX, quatY, quatZ, quatW);\n }\n },\n );\n const sh0Promise = decodeImageRgba(extraFiles[json.sh0.files[0]]).then(\n (sh0) => {\n const SH_C0 = 0.28209479177387814;\n let rLookup: number[];\n let gLookup: number[];\n let bLookup: number[];\n let aLookup: number[];\n\n if (isVersion2) {\n rLookup =\n gLookup =\n bLookup =\n json.sh0.codebook.map((x) => SH_C0 * x + 0.5);\n aLookup = new Array(256).fill(0).map((_, i) => i / 255);\n } else {\n rLookup = new Array(256)\n .fill(0)\n .map(\n (_, i) =>\n json.sh0.mins[0] +\n (json.sh0.maxs[0] - json.sh0.mins[0]) * (i / 255),\n )\n .map((x) => SH_C0 * x + 0.5);\n gLookup = new Array(256)\n .fill(0)\n .map(\n (_, i) =>\n json.sh0.mins[1] +\n (json.sh0.maxs[1] - json.sh0.mins[1]) * (i / 255),\n )\n .map((x) => SH_C0 * x + 0.5);\n bLookup = new Array(256)\n .fill(0)\n .map(\n (_, i) =>\n json.sh0.mins[2] +\n (json.sh0.maxs[2] - json.sh0.mins[2]) * (i / 255),\n )\n .map((x) => SH_C0 * x + 0.5);\n aLookup = new Array(256)\n .fill(0)\n .map(\n (_, i) =>\n json.sh0.mins[3] +\n (json.sh0.maxs[3] - json.sh0.mins[3]) * (i / 255),\n )\n .map((x) => 1.0 / (1.0 + Math.exp(-x)));\n }\n\n for (let i = 0; i < numSplats; ++i) {\n const i4 = i * 4;\n setPackedSplatRgba(\n packedArray,\n i,\n rLookup[sh0[i4 + 0]],\n gLookup[sh0[i4 + 1]],\n bLookup[sh0[i4 + 2]],\n aLookup[sh0[i4 + 3]],\n splatEncoding,\n );\n }\n },\n );\n\n const promises = [meansPromise, scalesPromise, quatsPromise, sh0Promise];\n if (json.shN) {\n const useSH3 = isVersion2\n ? json.shN.bands >= 3\n : json.shN.shape[1] >= 48 - 3;\n const useSH2 = isVersion2\n ? json.shN.bands >= 2\n : json.shN.shape[1] >= 27 - 3;\n const useSH1 = isVersion2\n ? json.shN.bands >= 1\n : json.shN.shape[1] >= 12 - 3;\n\n if (useSH1) extra.sh1 = new Uint32Array(numSplats * 2);\n if (useSH2) extra.sh2 = new Uint32Array(numSplats * 4);\n if (useSH3) extra.sh3 = new Uint32Array(numSplats * 4);\n\n const sh1 = new Float32Array(9);\n const sh2 = new Float32Array(15);\n const sh3 = new Float32Array(21);\n\n const shN = json.shN;\n const shNPromise = Promise.all([\n decodeImage(extraFiles[json.shN.files[0]]),\n decodeImage(extraFiles[json.shN.files[1]]),\n ]).then(([centroids, labels]) => {\n const lookup =\n \"codebook\" in shN\n ? shN.codebook\n : new Array(256)\n .fill(0)\n .map((_, i) => shN.mins + (shN.maxs - shN.mins) * (i / 255));\n\n for (let i = 0; i < numSplats; ++i) {\n const i4 = i * 4;\n const label = labels.rgba[i4 + 0] + (labels.rgba[i4 + 1] << 8);\n const col = (label & 63) * 15;\n const row = label >>> 6;\n const offset = row * centroids.width + col;\n\n for (let d = 0; d < 3; ++d) {\n if (useSH1) {\n for (let k = 0; k < 3; ++k) {\n sh1[k * 3 + d] = lookup[centroids.rgba[(offset + k) * 4 + d]];\n }\n }\n\n if (useSH2) {\n for (let k = 0; k < 5; ++k) {\n sh2[k * 3 + d] = lookup[centroids.rgba[(offset + 3 + k) * 4 + d]];\n }\n }\n\n if (useSH3) {\n for (let k = 0; k < 7; ++k) {\n sh3[k * 3 + d] = lookup[centroids.rgba[(offset + 8 + k) * 4 + d]];\n }\n }\n }\n\n if (useSH1)\n encodeSh1Rgb(extra.sh1 as Uint32Array, i, sh1, splatEncoding);\n if (useSH2)\n encodeSh2Rgb(extra.sh2 as Uint32Array, i, sh2, splatEncoding);\n if (useSH3)\n encodeSh3Rgb(extra.sh3 as Uint32Array, i, sh3, splatEncoding);\n }\n });\n promises.push(shNPromise);\n }\n\n await Promise.all(promises);\n\n return { packedArray, numSplats, extra };\n}\n\n// WebGL context for reading raw pixel data of WebP images\nlet offscreenGlContext: WebGL2RenderingContext | null = null;\n\nasync function decodeImage(fileBytes: ArrayBuffer) {\n if (!offscreenGlContext) {\n const canvas = new OffscreenCanvas(1, 1);\n offscreenGlContext = canvas.getContext(\"webgl2\");\n if (!offscreenGlContext) {\n throw new Error(\"Failed to create WebGL2 context\");\n }\n }\n\n const imageBlob = new Blob([fileBytes]);\n const bitmap = await createImageBitmap(imageBlob, {\n premultiplyAlpha: \"none\",\n });\n\n const gl = offscreenGlContext;\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, bitmap);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n\n const framebuffer = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0,\n gl.TEXTURE_2D,\n texture,\n 0,\n );\n\n const data = new Uint8Array(bitmap.width * bitmap.height * 4);\n gl.readPixels(\n 0,\n 0,\n bitmap.width,\n bitmap.height,\n gl.RGBA,\n gl.UNSIGNED_BYTE,\n data,\n );\n\n gl.deleteTexture(texture);\n gl.deleteFramebuffer(framebuffer);\n\n return { rgba: data, width: bitmap.width, height: bitmap.height };\n}\n\nasync function decodeImageRgba(fileBytes: ArrayBuffer) {\n const { rgba } = await decodeImage(fileBytes);\n return rgba;\n}\n\nexport async function unpackPcSogsZip(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): Promise<{\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n}> {\n const nameJson = tryPcSogsZip(fileBytes);\n if (!nameJson) {\n throw new Error(\"Invalid PC SOGS zip file\");\n }\n const { name, json } = nameJson;\n // Find path prefix, will be -1 if no / or \\\n const lastSlash = name.lastIndexOf(\"/\");\n const lastBackslash = name.lastIndexOf(\"\\\\\");\n const prefix = name.slice(0, Math.max(lastSlash, lastBackslash) + 1);\n\n const fileMap = new Map();\n const refFiles = [\n ...json.means.files,\n ...json.scales.files,\n ...json.quats.files,\n ...json.sh0.files,\n ...(json.shN?.files ?? []),\n ];\n for (const file of refFiles) {\n fileMap.set(prefix + file, file);\n }\n\n const unzipped = await new Promise>(\n (resolve, reject) => {\n unzip(\n fileBytes,\n {\n filter: ({ name }) => {\n return fileMap.has(name);\n },\n },\n (err, files) => {\n if (err) {\n reject(err);\n } else {\n resolve(files);\n }\n },\n );\n },\n );\n\n const extraFiles: Record = {};\n for (const [full, name] of fileMap.entries()) {\n extraFiles[name] = unzipped[full];\n }\n\n return await unpackPcSogs(json, extraFiles, splatEncoding);\n}\n","import init_wasm, { sort_splats, sort32_splats } from \"spark-worker-rs\";\nimport type { PcSogsJson, TranscodeSpzInput } from \"./SplatLoader\";\nimport { unpackAntiSplat } from \"./antisplat\";\nimport { type SplatEncoding, WASM_SPLAT_SORT } from \"./defines\";\nimport { unpackKsplat } from \"./ksplat\";\nimport { unpackPcSogs, unpackPcSogsZip } from \"./pcsogs\";\nimport { PlyReader } from \"./ply\";\nimport { SpzReader, transcodeSpz } from \"./spz\";\nimport {\n computeMaxSplats,\n encodeSh1Rgb,\n encodeSh2Rgb,\n encodeSh3Rgb,\n getTransferable,\n setPackedSplat,\n setPackedSplatCenter,\n setPackedSplatOpacity,\n setPackedSplatQuat,\n setPackedSplatRgb,\n setPackedSplatScales,\n toHalf,\n} from \"./utils\";\n\n// WebWorker for Spark's background CPU tasks, such as Gsplat file decoding\n// and sorting.\n\nasync function onMessage(event: MessageEvent) {\n // Unpack RPC function name, arguments, and ID from the main thread.\n const { name, args, id }: { name: string; args: unknown; id: number } =\n event.data;\n // console.log(`worker.onMessage(${id}, ${name}):`, args);\n\n // Initialize return result/error, to be filled out below.\n let result = undefined;\n let error = undefined;\n\n try {\n switch (name) {\n case \"unpackPly\": {\n const { packedArray, fileBytes, splatEncoding } = args as {\n packedArray: Uint32Array;\n fileBytes: Uint8Array;\n splatEncoding: SplatEncoding;\n };\n const decoded = await unpackPly({\n packedArray,\n fileBytes,\n splatEncoding,\n });\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra,\n };\n break;\n }\n case \"decodeSpz\": {\n const { fileBytes, splatEncoding } = args as {\n fileBytes: Uint8Array;\n splatEncoding: SplatEncoding;\n };\n const decoded = await unpackSpz(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra,\n };\n break;\n }\n case \"decodeAntiSplat\": {\n const { fileBytes, splatEncoding } = args as {\n fileBytes: Uint8Array;\n splatEncoding: SplatEncoding;\n };\n const decoded = unpackAntiSplat(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n };\n break;\n }\n case \"decodeKsplat\": {\n const { fileBytes, splatEncoding } = args as {\n fileBytes: Uint8Array;\n splatEncoding: SplatEncoding;\n };\n const decoded = unpackKsplat(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra,\n };\n break;\n }\n case \"decodePcSogs\": {\n const { fileBytes, extraFiles, splatEncoding } = args as {\n fileBytes: Uint8Array;\n extraFiles: Record;\n splatEncoding: SplatEncoding;\n };\n const json = JSON.parse(\n new TextDecoder().decode(fileBytes),\n ) as PcSogsJson;\n const decoded = await unpackPcSogs(json, extraFiles, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra,\n };\n break;\n }\n case \"decodePcSogsZip\": {\n const { fileBytes, splatEncoding } = args as {\n fileBytes: Uint8Array;\n splatEncoding: SplatEncoding;\n };\n const decoded = await unpackPcSogsZip(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra,\n };\n break;\n }\n case \"sortSplats\": {\n // Sort maxSplats splats using readback data, which encodes one uint32 per\n // Gsplats, with the low bytes encoding a float16 distance sort metric.\n const { maxSplats, totalSplats, readback, ordering } = args as {\n maxSplats: number;\n totalSplats: number;\n readback: Uint8Array[];\n ordering: Uint32Array;\n };\n // Sort totalSplats splats each with 4 bytes of readback, and outputs Uint32Array ordering of splat indices\n result = {\n id,\n readback,\n ...sortSplats({ totalSplats, readback, ordering }),\n };\n break;\n }\n case \"sortDoubleSplats\": {\n // Sort numSplats splats using the readback distance metric, which encodes\n // one float16 per splat (no unused high bytes like for sortSplats).\n const { numSplats, readback, ordering } = args as {\n numSplats: number;\n readback: Uint16Array;\n ordering: Uint32Array;\n };\n if (WASM_SPLAT_SORT) {\n result = {\n id,\n readback,\n ordering,\n activeSplats: sort_splats(numSplats, readback, ordering),\n };\n } else {\n result = {\n id,\n readback,\n ...sortDoubleSplats({ numSplats, readback, ordering }),\n };\n }\n break;\n }\n case \"sort32Splats\": {\n const { maxSplats, numSplats, readback, ordering } = args as {\n maxSplats: number;\n numSplats: number;\n readback: Uint32Array;\n ordering: Uint32Array;\n };\n // Benchmark sort\n // benchmarkSort(numSplats, readback, ordering);\n if (WASM_SPLAT_SORT) {\n result = {\n id,\n readback,\n ordering,\n activeSplats: sort32_splats(numSplats, readback, ordering),\n };\n } else {\n result = {\n id,\n readback,\n ...sort32Splats({ maxSplats, numSplats, readback, ordering }),\n };\n }\n break;\n }\n case \"transcodeSpz\": {\n const input = args as TranscodeSpzInput;\n const spzBytes = await transcodeSpz(input);\n result = {\n id,\n fileBytes: spzBytes,\n input,\n };\n break;\n }\n default: {\n throw new Error(`Unknown name: ${name}`);\n }\n }\n } catch (e) {\n error = e;\n console.error(error);\n }\n\n // Send the result or error back to the main thread, making sure to transfer any ArrayBuffers\n self.postMessage(\n { id, result, error },\n { transfer: getTransferable(result) },\n );\n}\n\nfunction benchmarkSort(\n numSplats: number,\n readback32: Uint32Array,\n ordering: Uint32Array,\n) {\n if (numSplats > 0) {\n console.log(\"Running sort benchmark\");\n const readbackF32 = new Float32Array(readback32.buffer);\n const readback16 = new Uint16Array(readback32.length);\n for (let i = 0; i < numSplats; ++i) {\n readback16[i] = toHalf(readbackF32[i]);\n }\n\n const WARMUP = 10;\n for (let i = 0; i < WARMUP; ++i) {\n const activeSplats = sort_splats(numSplats, readback16, ordering);\n const activeSplats32 = sort32_splats(numSplats, readback32, ordering);\n const results = sortDoubleSplats({\n numSplats,\n readback: readback16,\n ordering,\n });\n const results32 = sort32Splats({\n maxSplats: numSplats,\n numSplats,\n readback: readback32,\n ordering,\n });\n }\n\n const TIMING_SAMPLES = 1000;\n let start: number;\n\n start = performance.now();\n for (let i = 0; i < TIMING_SAMPLES; ++i) {\n const activeSplats = sort_splats(numSplats, readback16, ordering);\n }\n const wasmTime = (performance.now() - start) / TIMING_SAMPLES;\n\n start = performance.now();\n for (let i = 0; i < TIMING_SAMPLES; ++i) {\n const results = sortDoubleSplats({\n numSplats,\n readback: readback16,\n ordering,\n });\n }\n const jsTime = (performance.now() - start) / TIMING_SAMPLES;\n\n console.log(\n `JS: ${jsTime} ms, WASM: ${wasmTime} ms, numSplats: ${numSplats}`,\n );\n\n start = performance.now();\n for (let i = 0; i < TIMING_SAMPLES; ++i) {\n const activeSplats32 = sort32_splats(numSplats, readback32, ordering);\n }\n const wasm32Time = (performance.now() - start) / TIMING_SAMPLES;\n\n start = performance.now();\n for (let i = 0; i < TIMING_SAMPLES; ++i) {\n const results = sort32Splats({\n maxSplats: numSplats,\n numSplats,\n readback: readback32,\n ordering,\n });\n }\n const js32Time = (performance.now() - start) / TIMING_SAMPLES;\n\n console.log(\n `JS32: ${js32Time} ms, WASM32: ${wasm32Time} ms, numSplats: ${numSplats}`,\n );\n }\n}\n\nasync function unpackPly({\n packedArray,\n fileBytes,\n splatEncoding,\n}: {\n packedArray: Uint32Array;\n fileBytes: Uint8Array;\n splatEncoding: SplatEncoding;\n}): Promise<{\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n}> {\n const ply = new PlyReader({ fileBytes });\n await ply.parseHeader();\n const numSplats = ply.numSplats;\n\n const extra: Record = {};\n\n ply.parseSplats(\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n setPackedSplat(\n packedArray,\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n },\n (index, sh1, sh2, sh3) => {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n encodeSh1Rgb(extra.sh1 as Uint32Array, index, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n encodeSh2Rgb(extra.sh2 as Uint32Array, index, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n encodeSh3Rgb(extra.sh3 as Uint32Array, index, sh3, splatEncoding);\n }\n },\n );\n\n return { packedArray, numSplats, extra };\n}\n\nasync function unpackSpz(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): Promise<{\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n}> {\n const spz = new SpzReader({ fileBytes });\n await spz.parseHeader();\n const numSplats = spz.numSplats;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let extraCallbacks = {};\n if (spz.flagLod) {\n const childCounts = new Uint16Array(numSplats);\n const childStarts = new Uint32Array(numSplats);\n extra.childCounts = childCounts;\n extra.childStarts = childStarts;\n extraCallbacks = {\n childCounts: (index: number, count: number) => {\n childCounts[index] = count;\n },\n childStarts: (index: number, start: number) => {\n childStarts[index] = start;\n },\n };\n }\n\n await spz.parseSplats(\n (index, x, y, z) => {\n setPackedSplatCenter(packedArray, index, x, y, z);\n },\n (index, alpha) => {\n setPackedSplatOpacity(packedArray, index, alpha);\n },\n (index, r, g, b) => {\n setPackedSplatRgb(packedArray, index, r, g, b, splatEncoding);\n },\n (index, scaleX, scaleY, scaleZ) => {\n setPackedSplatScales(\n packedArray,\n index,\n scaleX,\n scaleY,\n scaleZ,\n splatEncoding,\n );\n },\n (index, quatX, quatY, quatZ, quatW) => {\n setPackedSplatQuat(packedArray, index, quatX, quatY, quatZ, quatW);\n },\n (index, sh1, sh2, sh3) => {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n encodeSh1Rgb(extra.sh1 as Uint32Array, index, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n encodeSh2Rgb(extra.sh2 as Uint32Array, index, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n encodeSh3Rgb(extra.sh3 as Uint32Array, index, sh3, splatEncoding);\n }\n },\n extraCallbacks,\n );\n return { packedArray, numSplats, extra };\n}\n\n// Array of buckets for sorting float16 distances with range [0, DEPTH_INFINITY].\nconst DEPTH_INFINITY_F16 = 0x7c00;\nconst DEPTH_SIZE_16 = DEPTH_INFINITY_F16 + 1;\nlet depthArray16: Uint32Array | null = null;\n\nfunction sortSplats({\n totalSplats,\n readback,\n ordering,\n}: { totalSplats: number; readback: Uint8Array[]; ordering: Uint32Array }): {\n activeSplats: number;\n ordering: Uint32Array;\n} {\n // Sort totalSplats Gsplats, each with 4 bytes of readback, and outputs Uint32Array\n // of indices from most distant to nearest. Each 4 bytes encode a float16 distance\n // and unused high bytes.\n if (!depthArray16) {\n depthArray16 = new Uint32Array(DEPTH_SIZE_16);\n }\n depthArray16.fill(0);\n\n const readbackUint32 = readback.map((layer) => new Uint32Array(layer.buffer));\n const layerSize = readbackUint32[0].length;\n const numLayers = Math.ceil(totalSplats / layerSize);\n\n let layerBase = 0;\n for (let layer = 0; layer < numLayers; ++layer) {\n const readbackLayer = readbackUint32[layer];\n const layerSplats = Math.min(readbackLayer.length, totalSplats - layerBase);\n for (let i = 0; i < layerSplats; ++i) {\n const pri = readbackLayer[i] & 0x7fff;\n if (pri < DEPTH_INFINITY_F16) {\n depthArray16[pri] += 1;\n }\n }\n layerBase += layerSplats;\n }\n\n let activeSplats = 0;\n for (let j = 0; j < DEPTH_SIZE_16; ++j) {\n const nextIndex = activeSplats + depthArray16[j];\n depthArray16[j] = activeSplats;\n activeSplats = nextIndex;\n }\n\n layerBase = 0;\n for (let layer = 0; layer < numLayers; ++layer) {\n const readbackLayer = readbackUint32[layer];\n const layerSplats = Math.min(readbackLayer.length, totalSplats - layerBase);\n for (let i = 0; i < layerSplats; ++i) {\n const pri = readbackLayer[i] & 0x7fff;\n if (pri < DEPTH_INFINITY_F16) {\n ordering[depthArray16[pri]] = layerBase + i;\n depthArray16[pri] += 1;\n }\n }\n layerBase += layerSplats;\n }\n if (depthArray16[DEPTH_SIZE_16 - 1] !== activeSplats) {\n throw new Error(\n `Expected ${activeSplats} active splats but got ${depthArray16[DEPTH_SIZE_16 - 1]}`,\n );\n }\n\n return { activeSplats, ordering };\n}\n\n// Sort numSplats splats, each with 2 bytes of float16 readback for distance metric,\n// using one bucket sort pass, outputting Uint32Array of indices.\nfunction sortDoubleSplats({\n numSplats,\n readback,\n ordering,\n}: { numSplats: number; readback: Uint16Array; ordering: Uint32Array }): {\n activeSplats: number;\n ordering: Uint32Array;\n} {\n // Ensure depthArray is allocated and zeroed out for our buckets.\n if (!depthArray16) {\n depthArray16 = new Uint32Array(DEPTH_SIZE_16);\n }\n depthArray16.fill(0);\n\n // Count the number of splats in each bucket (cull Gsplats at infinity).\n for (let i = 0; i < numSplats; ++i) {\n const pri = readback[i];\n if (pri < DEPTH_INFINITY_F16) {\n depthArray16[pri] += 1;\n }\n }\n\n // Compute the beginning index of each bucket in the output array and the\n // total number of active (non-infinity) splats, going in reverse order\n // because we want most distant Gsplats to be first in the output array.\n let activeSplats = 0;\n for (let j = DEPTH_INFINITY_F16 - 1; j >= 0; --j) {\n const nextIndex = activeSplats + depthArray16[j];\n depthArray16[j] = activeSplats;\n activeSplats = nextIndex;\n }\n\n // Write out the sorted indices into the output array according\n // bucket order.\n for (let i = 0; i < numSplats; ++i) {\n const pri = readback[i];\n if (pri < DEPTH_INFINITY_F16) {\n ordering[depthArray16[pri]] = i;\n depthArray16[pri] += 1;\n }\n }\n // Sanity check that the end of the closest bucket is the same as\n // our total count of active splats (not at infinity).\n if (depthArray16[0] !== activeSplats) {\n throw new Error(\n `Expected ${activeSplats} active splats but got ${depthArray16[0]}`,\n );\n }\n\n return { activeSplats, ordering };\n}\n\nconst DEPTH_INFINITY_F32 = 0x7f800000;\nlet bucket16lo: Uint32Array | null = null;\nlet bucket16hi: Uint32Array | null = null;\nlet scratchSplats: Uint32Array | null = null;\n\n// two-pass radix sort (base 65536) of 32-bit keys in readback,\n// but placing largest values first.\nfunction sort32Splats({\n maxSplats,\n numSplats,\n readback, // Uint32Array of bit‑patterns\n ordering, // Uint32Array to fill with sorted indices\n}: {\n maxSplats: number;\n numSplats: number;\n readback: Uint32Array;\n ordering: Uint32Array;\n}): { activeSplats: number; ordering: Uint32Array } {\n const BASE = 1 << 16; // 65536\n\n // allocate once\n if (!bucket16lo) {\n bucket16lo = new Uint32Array(BASE);\n }\n if (!bucket16hi) {\n bucket16hi = new Uint32Array(BASE);\n }\n if (!scratchSplats || scratchSplats.length < maxSplats) {\n scratchSplats = new Uint32Array(maxSplats);\n }\n\n // tally low and high buckets\n bucket16lo.fill(0);\n bucket16hi.fill(0);\n for (let i = 0; i < numSplats; ++i) {\n const key = readback[i];\n if (key < DEPTH_INFINITY_F32) {\n const inv = ~key >>> 0;\n bucket16lo[inv & 0xffff] += 1;\n bucket16hi[inv >>> 16] += 1;\n }\n }\n\n //\n // ——— Pass #1: bucket by inv(lo 16 bits) ———\n //\n // exclusive prefix‑sum → starting offsets\n let total = 0;\n for (let b = 0; b < BASE; ++b) {\n const c = bucket16lo[b];\n bucket16lo[b] = total;\n total += c;\n }\n const activeSplats = total;\n\n // scatter into scratch by low bits of inv\n for (let i = 0; i < numSplats; ++i) {\n const key = readback[i];\n if (key < DEPTH_INFINITY_F32) {\n const inv = ~key >>> 0;\n scratchSplats[bucket16lo[inv & 0xffff]++] = i;\n }\n }\n\n //\n // ——— Pass #2: bucket by inv(hi 16 bits) ———\n //\n // exclusive prefix‑sum again\n let sum = 0;\n for (let b = 0; b < BASE; ++b) {\n const c = bucket16hi[b];\n bucket16hi[b] = sum;\n sum += c;\n }\n\n // scatter into final ordering by high bits of inv\n for (let k = 0; k < activeSplats; ++k) {\n const idx = scratchSplats[k];\n const inv = ~readback[idx] >>> 0;\n ordering[bucket16hi[inv >>> 16]++] = idx;\n }\n\n // sanity‑check: the last bucket should have eaten all entries\n if (bucket16hi[BASE - 1] !== activeSplats) {\n throw new Error(\n `Expected ${activeSplats} active splats but got ${bucket16hi[BASE - 1]}`,\n );\n }\n\n return { activeSplats, ordering };\n}\n\n// Buffer to queue any messages received while initializing, for example\n// early messages to unpack a Gsplat file while still initializing the WASM code.\nconst messageBuffer: MessageEvent[] = [];\n\nfunction bufferMessage(event: MessageEvent) {\n messageBuffer.push(event);\n}\n\nasync function initialize() {\n // Hold any messages received while initializing\n self.addEventListener(\"message\", bufferMessage);\n\n await init_wasm();\n\n self.removeEventListener(\"message\", bufferMessage);\n self.addEventListener(\"message\", onMessage);\n\n // Process any buffered messages\n for (const event of messageBuffer) {\n onMessage(event);\n }\n messageBuffer.length = 0;\n}\n\ninitialize().catch(console.error);\n"],"names":["CsplatArray","ptr","obj","CsplatArrayFinalization","wasm","lod_base","rgba","merge_filter","ret","takeFromExternrefTable0","arg0","GsplatArray","GsplatArrayFinalization","encoding","sort32_splats","num_splats","readback","ordering","sort_splats","__wbg_get_imports","arg1","getStringFromWasm0","v","isLikeNone","debugString","ptr1","passStringToWasm0","len1","WASM_VECTOR_LEN","getDataViewMemory0","val","deferred0_0","deferred0_1","handleError","result","arg2","getArrayU8FromWasm0","getArrayU16FromWasm0","getArrayU32FromWasm0","table","offset","addToExternrefTable0","idx","type","description","name","length","debug","i","builtInMatches","className","len","getUint16ArrayMemory0","getUint32ArrayMemory0","getUint8ArrayMemory0","cachedDataViewMemory0","decodeText","cachedUint16ArrayMemory0","cachedUint32ArrayMemory0","cachedUint8ArrayMemory0","f","args","e","x","arg","malloc","realloc","buf","cachedTextEncoder","mem","code","view","value","cachedTextDecoder","MAX_SAFARI_DECODE_BYTES","numBytesDecoded","__wbg_finalize_init","instance","module","__wbg_load","imports","expectedResponseType","bytes","__wbg_init","module_or_path","ch2","wk","c","id","msg","transfer","cb","w","d","ed","err","u8","u16","i32","fleb","fdeb","clim","freb","eb","start","b","r","j","_a","fl","revfl","_b","fd","rev","hMap","cd","mb","s","l","le","co","rvb","sv","r_1","m","flt","fdt","flrm","fdrm","max","a","bits","p","o","bits16","shft","slc","ec","ind","nt","inflt","dat","st","dict","sl","dl","noBuf","resize","noSt","cbuf","bl","nbuf","final","pos","bt","lm","dm","lbt","dbt","tbts","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","n","lt","dt","t","lms","dms","lpos","sym","add","dsym","end","shift","dend","et","mrg","k","wcln","fn","fnStr","td","ks","st_1","spInd","ch","cbfs","wrkr","fns","init","td_1","bInflt","inflateSync","pbf","gopt","cbify","opts","b2","b4","b8","gzs","flg","zs","Inflate","bts","chunk","inflate","data","ev","Gunzip","dutf8","strFromU8","latin1","slzh","zh","z","fnl","es","bs","z64e","sc","su","off","mt","unzip","term","tAll","files","cbd","lft","ze","fltr","_loop_3","c_1","no","cbl","infl","unzipSync","c_2","REVISION","NoColorSpace","SRGBColorSpace","LinearSRGBColorSpace","LinearTransfer","SRGBTransfer","clamp","min","euclideanModulo","lerp","y","Quaternion","dst","dstOffset","src0","srcOffset0","src1","srcOffset1","x0","y0","z0","w0","x1","y1","z1","w1","cos","dir","sqrSin","sin","tDir","quaternion","euler","update","order","c1","c2","c3","s1","s2","s3","axis","angle","halfAngle","te","m11","m12","m13","m21","m22","m23","m31","m32","m33","trace","vFrom","vTo","q","step","qax","qay","qaz","qaw","qbx","qby","qbz","qbw","qb","cosHalfTheta","sqrSinHalfTheta","sinHalfTheta","halfTheta","ratioA","ratioB","qa","theta1","theta2","r1","r2","array","attribute","index","callback","Vector3","scalar","_quaternion$4","vx","vy","vz","qx","qy","qz","qw","tx","ty","tz","camera","minVal","maxVal","alpha","v1","v2","ax","ay","az","bx","by","bz","denominator","planeNormal","_vector$c","normal","theta","dx","dy","dz","radius","phi","sinPhiRadius","sx","sy","sz","u","Matrix3","n11","n12","n13","n21","n22","n23","n31","n32","n33","me","xAxis","yAxis","zAxis","ae","be","a11","a12","a13","a21","a22","a23","a31","a32","a33","b11","b12","b13","b21","b22","b23","b31","b32","b33","g","h","t11","t12","t13","det","detInv","tmp","matrix4","rotation","cx","cy","_m3","matrix","_cache","warnOnce","message","LINEAR_REC709_TO_XYZ","XYZ_TO_LINEAR_REC709","createColorManagement","ColorManagement","color","sourceColorSpace","targetColorSpace","SRGBToLinear","LinearToSRGB","colorSpace","target","colorSpaces","targetMatrix","REC709_PRIMARIES","REC709_LUMINANCE_COEFFICIENTS","D65","Box3","il","_vector$b","points","center","size","halfSize","object","precise","box","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","json","_testAxis","v0","extents","p0","p1","p2","_colorKeywords","_hslA","_hslB","hue2rgb","Color","hex","style","handleAlpha","string","components","_color","hue","saturation","lightness","delta","color1","color2","LN_SCALE_MIN","LN_SCALE_MAX","SCALE_ZERO","SPLAT_TEX_WIDTH_BITS","SPLAT_TEX_HEIGHT_BITS","SPLAT_TEX_WIDTH","SPLAT_TEX_HEIGHT","SPLAT_TEX_MIN_HEIGHT","SplatFileType","unindentLines","seenNonEmpty","lines","line","trimmedLine","indent","regex","unindent","f32buffer","u32buffer","supportsFloat16Array","f16buffer","u16buffer","normalize","vec","norm","acc","toHalf","toHalfNative","toHalfJS","fromHalf","fromHalfNative","fromHalfJS","sign","exp","frac","halfSign","newExp","subFrac","halfFrac","f32bits","mant","newFrac","floatToUint8","getTransferable","ctx","buffers","seen","traverse","setPackedSplat","packedSplats","scaleX","scaleY","scaleZ","quatX","quatY","quatZ","quatW","opacity","rgbMin","rgbRange","uR","uG","uB","uA","uQuat","encodeQuatOctXy88R8","tempQuaternion","uQuatX","uQuatY","uQuatZ","lnScaleMin","lnScaleScale","uScaleX","uScaleY","uScaleZ","uCenterX","uCenterY","uCenterZ","i4","setPackedSplatCenter","setPackedSplatScales","THREE.Quaternion","setPackedSplatQuat","setPackedSplatRgba","setPackedSplatRgb","setPackedSplatOpacity","THREE.Vector3","THREE.Color","getTextureSize","numSplats","width","height","depth","maxSplats","computeMaxSplats","tempNormalizedQuaternion","tempAxis","qnorm","xyz_norm","sum","p_x","p_y","u_f","v_f","quantU","quantV","packSint8Bytes","b0","b1","b3","clampedB0","clampedB1","clampedB2","clampedB3","encodeSh1Rgb","sh1Array","sh1Rgb","sh1Scale","base","bitStart","bitEnd","wordStart","bitOffset","firstWord","secondWord","encodeSh2Rgb","sh2Array","sh2Rgb","sh2Scale","encodeSh3Rgb","sh3Array","sh3Rgb","sh3Scale","decompressPartialGzip","fileBytes","numBytes","chunks","totalBytes","gunzip","allBytes","CHUNK_SIZE","GunzipReader","chunkBytes","ds","decompressionStream","readerDone","outOffset","decodeAntiSplat","initNumSplats","splatCallback","f32","i8","unpackAntiSplat","splatEncoding","packedArray","cbNumSplats","KSPLAT_COMPRESSION","KSPLAT_SH_DEGREE_TO_COMPONENTS","decodeKsplat","shCallback","headerOffset","header","versionMajor","versionMinor","maxSectionCount","compressionLevel","minSphericalHarmonicsCoeff","maxSphericalHarmonicsCoeff","sectionBase","section","getSh","splatOffset","component","sphericalHarmonicsOffsetBytes","sectionSplatCount","sectionMaxSplatCount","bucketSize","bucketCount","bucketBlockSize","bucketStorageSizeBytes","compressionScaleRange","fullBucketCount","fullBucketSplats","partiallyFilledBucketCount","bucketsMetaDataSizeBytes","bucketsStorageSizeBytes","sphericalHarmonicsDegree","shComponents","bytesPerCenter","bytesPerScale","bytesPerRotation","bytesPerColor","bytesPerSphericalHarmonicsComponent","scaleOffsetBytes","rotationOffsetBytes","colorOffsetBytes","bytesPerSplat","splatDataStorageSizeBytes","storageSizeBytes","sh1Index","sh2Index","sh3Index","sh1","sh2","sh3","compressionScaleFactor","bucketsBase","dataBase","bucketArray","partiallyFilledBucketLengths","partialBucketIndex","partialBucketBase","bucketIndex","bucketLength","key","unpackKsplat","splatCount","extra","PLY_PROPERTY_TYPES","_PlyReader","decoder","controller","headerTerminator","done","endHeader","headerLen","curElement","lineIndex","fields","elementCallback","elementName","element","count","properties","item","createEmptyItem","parseFn","createParseFn","isSuperSplat","ssChunks","numSh","sh1Props","sh2Props","sh3Props","prepareSh","num_f_rest","NUM_SH_TO_NUM_F_REST","_","ssShCallback","sh","initSuperSplat","min_x","min_y","min_z","max_x","max_y","max_z","min_scale_x","min_scale_y","min_scale_z","max_scale_x","max_scale_y","max_scale_z","min_r","min_g","min_b","max_r","max_g","max_b","decodeSuperSplat","getNumSh","packed_position","packed_rotation","packed_scale","packed_color","SQRT2","r0","rr","rOrder","scale_0","scale_1","scale_2","rot_0","rot_1","rot_2","rot_3","f_dc_0","f_dc_1","f_dc_2","red","green","blue","hasScales","hasRots","alphaDiv","FIELD_SCALE","redDiv","greenDiv","blueDiv","op","SH_C0","parsers","rgbaOffset","isVertex","propertyName","property","PARSE_FIELD","FIELD_BYTES","SET_FIELD","parser","PlyReader","littleEndian","NUM_F_REST_TO_NUM_SH","F_REST_REGEX","safeToCompile","createCompiledParserFn","createDynamicParserFn","UNSAFE_EVAL_ALLOWED","PROPERTY_NAME_REGEX","parserSrc","fRestMatch","fRestIndex","list","currentOffset","parserIndex","SpzReader","centerCallback","alphaCallback","rgbCallback","scalesCallback","quatCallback","childCounts","childStarts","centerBytes","centerUint16","i3","fixed","i9","rgbBytes","scale","scalesBytes","maxValue","quatBytes","values","combinedValues","valueMask","largestIndex","remainingValues","sumSquares","square","shBytes","SH_DEGREE_TO_VECS","i2","SPZ_MAGIC","SPZ_VERSION","FLAG_ANTIALIASED","SpzWriter","shDegree","fractionalBits","flagAntiAlias","splatSize","bufferSize","xRounded","xInt","yRounded","yInt","zRounded","zInt","quat","iLargest","negate","comp","negbit","mag","quantized","shVecs","base1","base2","base3","input","compressed","buffer","transcodeSpz","splats","SplatData","inputs","clipXyz","maxSh","opacityThreshold","transformPos","translate","transformScales","scales","transformQuaternion","withinClip","clip","withinOpacity","THREE.Box3","fileType","getSplatFileType","getSplatFileTypeFromPath","ply","lastIndex","spz","mapping","centers","magic","tryPcSogsZip","getFileExtension","pathOrUrl","noTrailing","lastSlash","filename","lastDot","extension","tryPcSogs","text","isVersion2","metaFilename","unzipped","targetSplats","newCenters","newScales","newQuaternions","newOpacities","newColors","newSh1","newSh2","newSh3","unpackPcSogs","extraFiles","meansPromise","decodeImageRgba","means","fx","fy","fz","scalesPromise","xLookup","yLookup","zLookup","quatsPromise","quats","lookup","sh0Promise","sh0","rLookup","gLookup","bLookup","aLookup","promises","useSH3","useSH2","useSH1","shN","shNPromise","decodeImage","centroids","labels","label","col","offscreenGlContext","imageBlob","bitmap","gl","texture","framebuffer","unpackPcSogsZip","nameJson","lastBackslash","prefix","fileMap","refFiles","file","resolve","reject","full","onMessage","event","error","decoded","unpackPly","unpackSpz","totalSplats","sortSplats","spzBytes","extraCallbacks","DEPTH_INFINITY_F16","DEPTH_SIZE_16","depthArray16","readbackUint32","layer","layerSize","numLayers","layerBase","readbackLayer","layerSplats","pri","activeSplats","nextIndex","messageBuffer","bufferMessage","initialize","init_wasm"],"mappings":"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","x_google_ignoreList":[1,2]} \ No newline at end of file diff --git a/dist/assets/oldWorker-DUF0ALOS.js.map b/dist/assets/oldWorker-DUF0ALOS.js.map deleted file mode 100644 index 370a67bd..00000000 --- a/dist/assets/oldWorker-DUF0ALOS.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"oldWorker-DUF0ALOS.js","sources":["../rust/spark-worker-rs/pkg/spark_worker_rs.js","../node_modules/fflate/esm/browser.js","../node_modules/three/build/three.core.js","../src/defines.ts","../src/dyno/base.ts","../src/utils.ts","../src/antisplat.ts","../src/ksplat.ts","../src/ply.ts","../src/spz.ts","../src/SplatLoader.ts","../src/pcsogs.ts","../src/oldWorker.ts"],"sourcesContent":["/* @ts-self-types=\"./spark_worker_rs.d.ts\" */\n\nexport class ChunkDecoder {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ChunkDecoder.prototype);\n obj.__wbg_ptr = ptr;\n ChunkDecoderFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ChunkDecoderFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_chunkdecoder_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n finish() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.chunkdecoder_finish(ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n */\n push(bytes) {\n const ret = wasm.chunkdecoder_push(this.__wbg_ptr, bytes);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n}\nif (Symbol.dispose) ChunkDecoder.prototype[Symbol.dispose] = ChunkDecoder.prototype.free;\n\nexport class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n\nexport class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function bhatt_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, rgba) {\n const ret = wasm.bhatt_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function bhatt_lod_packedsplats(num_splats, packed, extra, lod_base, rgba, encoding) {\n const ret = wasm.bhatt_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @returns {ChunkDecoder}\n */\nexport function decode_to_csplatarray(file_type, path_name, encoding) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_csplatarray(ptr0, len0, ptr1, len1, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_extsplats(file_type, path_name, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_extsplats(ptr0, len0, ptr1, len1, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_gsplatarray(file_type, path_name) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_gsplatarray(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Uint32Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_packedsplats(file_type, path_name, encoding, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_packedsplats(ptr0, len0, ptr1, len1, encoding, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n */\nexport function dispose_lod_tree(lod_id) {\n wasm.dispose_lod_tree(lod_id);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null} [extra]\n * @returns {GsplatArray}\n */\nexport function extsplats_to_gsplatarray(num_splats, ext1, ext2, extra) {\n const ret = wasm.extsplats_to_gsplatarray(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n * @param {number} level\n * @returns {object}\n */\nexport function get_lod_tree_level(lod_id, level) {\n const ret = wasm.get_lod_tree_level(lod_id, level);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} lod_tree\n * @returns {object}\n */\nexport function init_lod_tree(num_splats, lod_tree) {\n const ret = wasm.init_lod_tree(num_splats, lod_tree);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} capacity\n * @returns {object}\n */\nexport function new_lod_tree(capacity) {\n const ret = wasm.new_lod_tree(capacity);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} orig_lod_id\n * @returns {object}\n */\nexport function new_shared_lod_tree(orig_lod_id) {\n const ret = wasm.new_shared_lod_tree(orig_lod_id);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {CsplatArray}\n */\nexport function packedsplats_to_csplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_csplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return CsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {GsplatArray}\n */\nexport function packedsplats_to_gsplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_gsplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @returns {boolean}\n */\nexport function simd_enabled() {\n const ret = wasm.simd_enabled();\n return ret !== 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint16Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function tiny_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, merge_filter, rgba) {\n const ret = wasm.tiny_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function tiny_lod_packedsplats(num_splats, packed, extra, lod_base, merge_filter, rgba, encoding) {\n const ret = wasm.tiny_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} page_bases\n * @param {Uint32Array} chunk_bases\n * @param {Uint32Array} counts\n * @param {Array} lod_trees\n * @returns {object}\n */\nexport function update_lod_trees(lod_ids, page_bases, chunk_bases, counts, lod_trees) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(page_bases, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_bases, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(counts, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.update_lod_trees(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, lod_trees);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\nexport function wasm_start() {\n wasm.wasm_start();\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments); },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./spark_worker_rs_bg.js\": import0,\n };\n}\n\nconst ChunkDecoderFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\nconst CsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\nconst GsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\nfunction getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint16ArrayMemory0 = null;\nfunction getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayF32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getFloat32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (module_or_path === undefined) {\n module_or_path = new URL('spark_worker_rs_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","/**\n * @license\n * Copyright 2010-2025 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nconst REVISION = '180';\n\n/**\n * Represents mouse buttons and interaction types in context of controls.\n *\n * @type {ConstantsMouse}\n * @constant\n */\nconst MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };\n\n/**\n * Represents touch interaction types in context of controls.\n *\n * @type {ConstantsTouch}\n * @constant\n */\nconst TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };\n\n/**\n * Disables face culling.\n *\n * @type {number}\n * @constant\n */\nconst CullFaceNone = 0;\n\n/**\n * Culls back faces.\n *\n * @type {number}\n * @constant\n */\nconst CullFaceBack = 1;\n\n/**\n * Culls front faces.\n *\n * @type {number}\n * @constant\n */\nconst CullFaceFront = 2;\n\n/**\n * Culls both front and back faces.\n *\n * @type {number}\n * @constant\n */\nconst CullFaceFrontBack = 3;\n\n/**\n * Gives unfiltered shadow maps - fastest, but lowest quality.\n *\n * @type {number}\n * @constant\n */\nconst BasicShadowMap = 0;\n\n/**\n * Filters shadow maps using the Percentage-Closer Filtering (PCF) algorithm.\n *\n * @type {number}\n * @constant\n */\nconst PCFShadowMap = 1;\n\n/**\n * Filters shadow maps using the Percentage-Closer Filtering (PCF) algorithm with\n * better soft shadows especially when using low-resolution shadow maps.\n *\n * @type {number}\n * @constant\n */\nconst PCFSoftShadowMap = 2;\n\n/**\n * Filters shadow maps using the Variance Shadow Map (VSM) algorithm.\n * When using VSMShadowMap all shadow receivers will also cast shadows.\n *\n * @type {number}\n * @constant\n */\nconst VSMShadowMap = 3;\n\n/**\n * Only front faces are rendered.\n *\n * @type {number}\n * @constant\n */\nconst FrontSide = 0;\n\n/**\n * Only back faces are rendered.\n *\n * @type {number}\n * @constant\n */\nconst BackSide = 1;\n\n/**\n * Both front and back faces are rendered.\n *\n * @type {number}\n * @constant\n */\nconst DoubleSide = 2;\n\n/**\n * No blending is performed which effectively disables\n * alpha transparency.\n *\n * @type {number}\n * @constant\n */\nconst NoBlending = 0;\n\n/**\n * The default blending.\n *\n * @type {number}\n * @constant\n */\nconst NormalBlending = 1;\n\n/**\n * Represents additive blending.\n *\n * @type {number}\n * @constant\n */\nconst AdditiveBlending = 2;\n\n/**\n * Represents subtractive blending.\n *\n * @type {number}\n * @constant\n */\nconst SubtractiveBlending = 3;\n\n/**\n * Represents multiply blending.\n *\n * @type {number}\n * @constant\n */\nconst MultiplyBlending = 4;\n\n/**\n * Represents custom blending.\n *\n * @type {number}\n * @constant\n */\nconst CustomBlending = 5;\n\n/**\n * A `source + destination` blending equation.\n *\n * @type {number}\n * @constant\n */\nconst AddEquation = 100;\n\n/**\n * A `source - destination` blending equation.\n *\n * @type {number}\n * @constant\n */\nconst SubtractEquation = 101;\n\n/**\n * A `destination - source` blending equation.\n *\n * @type {number}\n * @constant\n */\nconst ReverseSubtractEquation = 102;\n\n/**\n * A blend equation that uses the minimum of source and destination.\n *\n * @type {number}\n * @constant\n */\nconst MinEquation = 103;\n\n/**\n * A blend equation that uses the maximum of source and destination.\n *\n * @type {number}\n * @constant\n */\nconst MaxEquation = 104;\n\n/**\n * Multiplies all colors by `0`.\n *\n * @type {number}\n * @constant\n */\nconst ZeroFactor = 200;\n\n/**\n * Multiplies all colors by `1`.\n *\n * @type {number}\n * @constant\n */\nconst OneFactor = 201;\n\n/**\n * Multiplies all colors by the source colors.\n *\n * @type {number}\n * @constant\n */\nconst SrcColorFactor = 202;\n\n/**\n * Multiplies all colors by `1` minus each source color.\n *\n * @type {number}\n * @constant\n */\nconst OneMinusSrcColorFactor = 203;\n\n/**\n * Multiplies all colors by the source alpha value.\n *\n * @type {number}\n * @constant\n */\nconst SrcAlphaFactor = 204;\n\n/**\n * Multiplies all colors by 1 minus the source alpha value.\n *\n * @type {number}\n * @constant\n */\nconst OneMinusSrcAlphaFactor = 205;\n\n/**\n * Multiplies all colors by the destination alpha value.\n *\n * @type {number}\n * @constant\n */\nconst DstAlphaFactor = 206;\n\n/**\n * Multiplies all colors by `1` minus the destination alpha value.\n *\n * @type {number}\n * @constant\n */\nconst OneMinusDstAlphaFactor = 207;\n\n/**\n * Multiplies all colors by the destination color.\n *\n * @type {number}\n * @constant\n */\nconst DstColorFactor = 208;\n\n/**\n * Multiplies all colors by `1` minus each destination color.\n *\n * @type {number}\n * @constant\n */\nconst OneMinusDstColorFactor = 209;\n\n/**\n * Multiplies the RGB colors by the smaller of either the source alpha\n * value or the value of `1` minus the destination alpha value. The alpha\n * value is multiplied by `1`.\n *\n * @type {number}\n * @constant\n */\nconst SrcAlphaSaturateFactor = 210;\n\n/**\n * Multiplies all colors by a constant color.\n *\n * @type {number}\n * @constant\n */\nconst ConstantColorFactor = 211;\n\n/**\n * Multiplies all colors by `1` minus a constant color.\n *\n * @type {number}\n * @constant\n */\nconst OneMinusConstantColorFactor = 212;\n\n/**\n * Multiplies all colors by a constant alpha value.\n *\n * @type {number}\n * @constant\n */\nconst ConstantAlphaFactor = 213;\n\n/**\n * Multiplies all colors by 1 minus a constant alpha value.\n *\n * @type {number}\n * @constant\n */\nconst OneMinusConstantAlphaFactor = 214;\n\n/**\n * Never pass.\n *\n * @type {number}\n * @constant\n */\nconst NeverDepth = 0;\n\n/**\n * Always pass.\n *\n * @type {number}\n * @constant\n */\nconst AlwaysDepth = 1;\n\n/**\n * Pass if the incoming value is less than the depth buffer value.\n *\n * @type {number}\n * @constant\n */\nconst LessDepth = 2;\n\n/**\n * Pass if the incoming value is less than or equal to the depth buffer value.\n *\n * @type {number}\n * @constant\n */\nconst LessEqualDepth = 3;\n\n/**\n * Pass if the incoming value equals the depth buffer value.\n *\n * @type {number}\n * @constant\n */\nconst EqualDepth = 4;\n\n/**\n * Pass if the incoming value is greater than or equal to the depth buffer value.\n *\n * @type {number}\n * @constant\n */\nconst GreaterEqualDepth = 5;\n\n/**\n * Pass if the incoming value is greater than the depth buffer value.\n *\n * @type {number}\n * @constant\n */\nconst GreaterDepth = 6;\n\n/**\n * Pass if the incoming value is not equal to the depth buffer value.\n *\n * @type {number}\n * @constant\n */\nconst NotEqualDepth = 7;\n\n/**\n * Multiplies the environment map color with the surface color.\n *\n * @type {number}\n * @constant\n */\nconst MultiplyOperation = 0;\n\n/**\n * Uses reflectivity to blend between the two colors.\n *\n * @type {number}\n * @constant\n */\nconst MixOperation = 1;\n\n/**\n * Adds the two colors.\n *\n * @type {number}\n * @constant\n */\nconst AddOperation = 2;\n\n/**\n * No tone mapping is applied.\n *\n * @type {number}\n * @constant\n */\nconst NoToneMapping = 0;\n\n/**\n * Linear tone mapping.\n *\n * @type {number}\n * @constant\n */\nconst LinearToneMapping = 1;\n\n/**\n * Reinhard tone mapping.\n *\n * @type {number}\n * @constant\n */\nconst ReinhardToneMapping = 2;\n\n/**\n * Cineon tone mapping.\n *\n * @type {number}\n * @constant\n */\nconst CineonToneMapping = 3;\n\n/**\n * ACES Filmic tone mapping.\n *\n * @type {number}\n * @constant\n */\nconst ACESFilmicToneMapping = 4;\n\n/**\n * Custom tone mapping.\n *\n * Expects a custom implementation by modifying shader code of the material's fragment shader.\n *\n * @type {number}\n * @constant\n */\nconst CustomToneMapping = 5;\n\n/**\n * AgX tone mapping.\n *\n * @type {number}\n * @constant\n */\nconst AgXToneMapping = 6;\n\n/**\n * Neutral tone mapping.\n *\n * Implementation based on the Khronos 3D Commerce Group standard tone mapping.\n *\n * @type {number}\n * @constant\n */\nconst NeutralToneMapping = 7;\n\n/**\n * The skinned mesh shares the same world space as the skeleton.\n *\n * @type {string}\n * @constant\n */\nconst AttachedBindMode = 'attached';\n\n/**\n * The skinned mesh does not share the same world space as the skeleton.\n * This is useful when a skeleton is shared across multiple skinned meshes.\n *\n * @type {string}\n * @constant\n */\nconst DetachedBindMode = 'detached';\n\n/**\n * Maps textures using the geometry's UV coordinates.\n *\n * @type {number}\n * @constant\n */\nconst UVMapping = 300;\n\n/**\n * Reflection mapping for cube textures.\n *\n * @type {number}\n * @constant\n */\nconst CubeReflectionMapping = 301;\n\n/**\n * Refraction mapping for cube textures.\n *\n * @type {number}\n * @constant\n */\nconst CubeRefractionMapping = 302;\n\n/**\n * Reflection mapping for equirectangular textures.\n *\n * @type {number}\n * @constant\n */\nconst EquirectangularReflectionMapping = 303;\n\n/**\n * Refraction mapping for equirectangular textures.\n *\n * @type {number}\n * @constant\n */\nconst EquirectangularRefractionMapping = 304;\n\n/**\n * Reflection mapping for PMREM textures.\n *\n * @type {number}\n * @constant\n */\nconst CubeUVReflectionMapping = 306;\n\n/**\n * The texture will simply repeat to infinity.\n *\n * @type {number}\n * @constant\n */\nconst RepeatWrapping = 1000;\n\n/**\n * The last pixel of the texture stretches to the edge of the mesh.\n *\n * @type {number}\n * @constant\n */\nconst ClampToEdgeWrapping = 1001;\n\n/**\n * The texture will repeats to infinity, mirroring on each repeat.\n *\n * @type {number}\n * @constant\n */\nconst MirroredRepeatWrapping = 1002;\n\n/**\n * Returns the value of the texture element that is nearest (in Manhattan distance)\n * to the specified texture coordinates.\n *\n * @type {number}\n * @constant\n */\nconst NearestFilter = 1003;\n\n/**\n * Chooses the mipmap that most closely matches the size of the pixel being textured\n * and uses the `NearestFilter` criterion (the texel nearest to the center of the pixel)\n * to produce a texture value.\n *\n * @type {number}\n * @constant\n */\nconst NearestMipmapNearestFilter = 1004;\nconst NearestMipMapNearestFilter = 1004; // legacy\n\n/**\n * Chooses the two mipmaps that most closely match the size of the pixel being textured and\n * uses the `NearestFilter` criterion to produce a texture value from each mipmap.\n * The final texture value is a weighted average of those two values.\n *\n * @type {number}\n * @constant\n */\nconst NearestMipmapLinearFilter = 1005;\nconst NearestMipMapLinearFilter = 1005; // legacy\n\n/**\n * Returns the weighted average of the four texture elements that are closest to the specified\n * texture coordinates, and can include items wrapped or repeated from other parts of a texture,\n * depending on the values of `wrapS` and `wrapT`, and on the exact mapping.\n *\n * @type {number}\n * @constant\n */\nconst LinearFilter = 1006;\n\n/**\n * Chooses the mipmap that most closely matches the size of the pixel being textured and uses\n * the `LinearFilter` criterion (a weighted average of the four texels that are closest to the\n * center of the pixel) to produce a texture value.\n *\n * @type {number}\n * @constant\n */\nconst LinearMipmapNearestFilter = 1007;\nconst LinearMipMapNearestFilter = 1007; // legacy\n\n/**\n * Chooses the two mipmaps that most closely match the size of the pixel being textured and uses\n * the `LinearFilter` criterion to produce a texture value from each mipmap. The final texture value\n * is a weighted average of those two values.\n *\n * @type {number}\n * @constant\n */\nconst LinearMipmapLinearFilter = 1008;\nconst LinearMipMapLinearFilter = 1008; // legacy\n\n/**\n * An unsigned byte data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedByteType = 1009;\n\n/**\n * A byte data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst ByteType = 1010;\n\n/**\n * A short data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst ShortType = 1011;\n\n/**\n * An unsigned short data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedShortType = 1012;\n\n/**\n * An int data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst IntType = 1013;\n\n/**\n * An unsigned int data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedIntType = 1014;\n\n/**\n * A float data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst FloatType = 1015;\n\n/**\n * A half float data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst HalfFloatType = 1016;\n\n/**\n * An unsigned short 4_4_4_4 (packed) data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedShort4444Type = 1017;\n\n/**\n * An unsigned short 5_5_5_1 (packed) data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedShort5551Type = 1018;\n\n/**\n * An unsigned int 24_8 data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedInt248Type = 1020;\n\n/**\n * An unsigned int 5_9_9_9 (packed) data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedInt5999Type = 35902;\n\n/**\n * An unsigned int 10_11_11 (packed) data type for textures.\n *\n * @type {number}\n * @constant\n */\nconst UnsignedInt101111Type = 35899;\n\n/**\n * Discards the red, green and blue components and reads just the alpha component.\n *\n * @type {number}\n * @constant\n */\nconst AlphaFormat = 1021;\n\n/**\n * Discards the alpha component and reads the red, green and blue component.\n *\n * @type {number}\n * @constant\n */\nconst RGBFormat = 1022;\n\n/**\n * Reads the red, green, blue and alpha components.\n *\n * @type {number}\n * @constant\n */\nconst RGBAFormat = 1023;\n\n/**\n * Reads each element as a single depth value, converts it to floating point, and clamps to the range `[0,1]`.\n *\n * @type {number}\n * @constant\n */\nconst DepthFormat = 1026;\n\n/**\n * Reads each element is a pair of depth and stencil values. The depth component of the pair is interpreted as\n * in `DepthFormat`. The stencil component is interpreted based on the depth + stencil internal format.\n *\n * @type {number}\n * @constant\n */\nconst DepthStencilFormat = 1027;\n\n/**\n * Discards the green, blue and alpha components and reads just the red component.\n *\n * @type {number}\n * @constant\n */\nconst RedFormat = 1028;\n\n/**\n * Discards the green, blue and alpha components and reads just the red component. The texels are read as integers instead of floating point.\n *\n * @type {number}\n * @constant\n */\nconst RedIntegerFormat = 1029;\n\n/**\n * Discards the alpha, and blue components and reads the red, and green components.\n *\n * @type {number}\n * @constant\n */\nconst RGFormat = 1030;\n\n/**\n * Discards the alpha, and blue components and reads the red, and green components. The texels are read as integers instead of floating point.\n *\n * @type {number}\n * @constant\n */\nconst RGIntegerFormat = 1031;\n\n/**\n * Discards the alpha component and reads the red, green and blue component. The texels are read as integers instead of floating point.\n *\n * @type {number}\n * @constant\n */\nconst RGBIntegerFormat = 1032;\n\n/**\n * Reads the red, green, blue and alpha components. The texels are read as integers instead of floating point.\n *\n * @type {number}\n * @constant\n */\nconst RGBAIntegerFormat = 1033;\n\n/**\n * A DXT1-compressed image in an RGB image format.\n *\n * @type {number}\n * @constant\n */\nconst RGB_S3TC_DXT1_Format = 33776;\n\n/**\n * A DXT1-compressed image in an RGB image format with a simple on/off alpha value.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_S3TC_DXT1_Format = 33777;\n\n/**\n * A DXT3-compressed image in an RGBA image format. Compared to a 32-bit RGBA texture, it offers 4:1 compression.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_S3TC_DXT3_Format = 33778;\n\n/**\n * A DXT5-compressed image in an RGBA image format. It also provides a 4:1 compression, but differs to the DXT3\n * compression in how the alpha compression is done.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_S3TC_DXT5_Format = 33779;\n\n/**\n * PVRTC RGB compression in 4-bit mode. One block for each 4×4 pixels.\n *\n * @type {number}\n * @constant\n */\nconst RGB_PVRTC_4BPPV1_Format = 35840;\n\n/**\n * PVRTC RGB compression in 2-bit mode. One block for each 8×4 pixels.\n *\n * @type {number}\n * @constant\n */\nconst RGB_PVRTC_2BPPV1_Format = 35841;\n\n/**\n * PVRTC RGBA compression in 4-bit mode. One block for each 4×4 pixels.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_PVRTC_4BPPV1_Format = 35842;\n\n/**\n * PVRTC RGBA compression in 2-bit mode. One block for each 8×4 pixels.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_PVRTC_2BPPV1_Format = 35843;\n\n/**\n * ETC1 RGB format.\n *\n * @type {number}\n * @constant\n */\nconst RGB_ETC1_Format = 36196;\n\n/**\n * ETC2 RGB format.\n *\n * @type {number}\n * @constant\n */\nconst RGB_ETC2_Format = 37492;\n\n/**\n * ETC2 RGBA format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ETC2_EAC_Format = 37496;\n\n/**\n * ASTC RGBA 4x4 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_4x4_Format = 37808;\n\n/**\n * ASTC RGBA 5x4 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_5x4_Format = 37809;\n\n/**\n * ASTC RGBA 5x5 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_5x5_Format = 37810;\n\n/**\n * ASTC RGBA 6x5 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_6x5_Format = 37811;\n\n/**\n * ASTC RGBA 6x6 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_6x6_Format = 37812;\n\n/**\n * ASTC RGBA 8x5 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_8x5_Format = 37813;\n\n/**\n * ASTC RGBA 8x6 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_8x6_Format = 37814;\n\n/**\n * ASTC RGBA 8x8 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_8x8_Format = 37815;\n\n/**\n * ASTC RGBA 10x5 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_10x5_Format = 37816;\n\n/**\n * ASTC RGBA 10x6 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_10x6_Format = 37817;\n\n/**\n * ASTC RGBA 10x8 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_10x8_Format = 37818;\n\n/**\n * ASTC RGBA 10x10 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_10x10_Format = 37819;\n\n/**\n * ASTC RGBA 12x10 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_12x10_Format = 37820;\n\n/**\n * ASTC RGBA 12x12 format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_ASTC_12x12_Format = 37821;\n\n/**\n * BPTC RGBA format.\n *\n * @type {number}\n * @constant\n */\nconst RGBA_BPTC_Format = 36492;\n\n/**\n * BPTC Signed RGB format.\n *\n * @type {number}\n * @constant\n */\nconst RGB_BPTC_SIGNED_Format = 36494;\n\n/**\n * BPTC Unsigned RGB format.\n *\n * @type {number}\n * @constant\n */\nconst RGB_BPTC_UNSIGNED_Format = 36495;\n\n/**\n * RGTC1 Red format.\n *\n * @type {number}\n * @constant\n */\nconst RED_RGTC1_Format = 36283;\n\n/**\n * RGTC1 Signed Red format.\n *\n * @type {number}\n * @constant\n */\nconst SIGNED_RED_RGTC1_Format = 36284;\n\n/**\n * RGTC2 Red Green format.\n *\n * @type {number}\n * @constant\n */\nconst RED_GREEN_RGTC2_Format = 36285;\n\n/**\n * RGTC2 Signed Red Green format.\n *\n * @type {number}\n * @constant\n */\nconst SIGNED_RED_GREEN_RGTC2_Format = 36286;\n\n/**\n * Animations are played once.\n *\n * @type {number}\n * @constant\n */\nconst LoopOnce = 2200;\n\n/**\n * Animations are played with a chosen number of repetitions, each time jumping from\n * the end of the clip directly to its beginning.\n *\n * @type {number}\n * @constant\n */\nconst LoopRepeat = 2201;\n\n/**\n * Animations are played with a chosen number of repetitions, alternately playing forward\n * and backward.\n *\n * @type {number}\n * @constant\n */\nconst LoopPingPong = 2202;\n\n/**\n * Discrete interpolation mode for keyframe tracks.\n *\n * @type {number}\n * @constant\n */\nconst InterpolateDiscrete = 2300;\n\n/**\n * Linear interpolation mode for keyframe tracks.\n *\n * @type {number}\n * @constant\n */\nconst InterpolateLinear = 2301;\n\n/**\n * Smooth interpolation mode for keyframe tracks.\n *\n * @type {number}\n * @constant\n */\nconst InterpolateSmooth = 2302;\n\n/**\n * Zero curvature ending for animations.\n *\n * @type {number}\n * @constant\n */\nconst ZeroCurvatureEnding = 2400;\n\n/**\n * Zero slope ending for animations.\n *\n * @type {number}\n * @constant\n */\nconst ZeroSlopeEnding = 2401;\n\n/**\n * Wrap around ending for animations.\n *\n * @type {number}\n * @constant\n */\nconst WrapAroundEnding = 2402;\n\n/**\n * Default animation blend mode.\n *\n * @type {number}\n * @constant\n */\nconst NormalAnimationBlendMode = 2500;\n\n/**\n * Additive animation blend mode. Can be used to layer motions on top of\n * each other to build complex performances from smaller re-usable assets.\n *\n * @type {number}\n * @constant\n */\nconst AdditiveAnimationBlendMode = 2501;\n\n/**\n * For every three vertices draw a single triangle.\n *\n * @type {number}\n * @constant\n */\nconst TrianglesDrawMode = 0;\n\n/**\n * For each vertex draw a triangle from the last three vertices.\n *\n * @type {number}\n * @constant\n */\nconst TriangleStripDrawMode = 1;\n\n/**\n * For each vertex draw a triangle from the first vertex and the last two vertices.\n *\n * @type {number}\n * @constant\n */\nconst TriangleFanDrawMode = 2;\n\n/**\n * Basic depth packing.\n *\n * @type {number}\n * @constant\n */\nconst BasicDepthPacking = 3200;\n\n/**\n * A depth value is packed into 32 bit RGBA.\n *\n * @type {number}\n * @constant\n */\nconst RGBADepthPacking = 3201;\n\n/**\n * A depth value is packed into 24 bit RGB.\n *\n * @type {number}\n * @constant\n */\nconst RGBDepthPacking = 3202;\n\n/**\n * A depth value is packed into 16 bit RG.\n *\n * @type {number}\n * @constant\n */\nconst RGDepthPacking = 3203;\n\n/**\n * Normal information is relative to the underlying surface.\n *\n * @type {number}\n * @constant\n */\nconst TangentSpaceNormalMap = 0;\n\n/**\n * Normal information is relative to the object orientation.\n *\n * @type {number}\n * @constant\n */\nconst ObjectSpaceNormalMap = 1;\n\n// Color space string identifiers, matching CSS Color Module Level 4 and WebGPU names where available.\n\n/**\n * No color space.\n *\n * @type {string}\n * @constant\n */\nconst NoColorSpace = '';\n\n/**\n * sRGB color space.\n *\n * @type {string}\n * @constant\n */\nconst SRGBColorSpace = 'srgb';\n\n/**\n * sRGB-linear color space.\n *\n * @type {string}\n * @constant\n */\nconst LinearSRGBColorSpace = 'srgb-linear';\n\n/**\n * Linear transfer function.\n *\n * @type {string}\n * @constant\n */\nconst LinearTransfer = 'linear';\n\n/**\n * sRGB transfer function.\n *\n * @type {string}\n * @constant\n */\nconst SRGBTransfer = 'srgb';\n\n/**\n * Sets the stencil buffer value to `0`.\n *\n * @type {number}\n * @constant\n */\nconst ZeroStencilOp = 0;\n\n/**\n * Keeps the current value.\n *\n * @type {number}\n * @constant\n */\nconst KeepStencilOp = 7680;\n\n/**\n * Sets the stencil buffer value to the specified reference value.\n *\n * @type {number}\n * @constant\n */\nconst ReplaceStencilOp = 7681;\n\n/**\n * Increments the current stencil buffer value. Clamps to the maximum representable unsigned value.\n *\n * @type {number}\n * @constant\n */\nconst IncrementStencilOp = 7682;\n\n/**\n * Decrements the current stencil buffer value. Clamps to `0`.\n *\n * @type {number}\n * @constant\n */\nconst DecrementStencilOp = 7683;\n\n/**\n * Increments the current stencil buffer value. Wraps stencil buffer value to zero when incrementing\n * the maximum representable unsigned value.\n *\n * @type {number}\n * @constant\n */\nconst IncrementWrapStencilOp = 34055;\n\n/**\n * Decrements the current stencil buffer value. Wraps stencil buffer value to the maximum representable\n * unsigned value when decrementing a stencil buffer value of `0`.\n *\n * @type {number}\n * @constant\n */\nconst DecrementWrapStencilOp = 34056;\n\n/**\n * Inverts the current stencil buffer value bitwise.\n *\n * @type {number}\n * @constant\n */\nconst InvertStencilOp = 5386;\n\n/**\n * Will never return true.\n *\n * @type {number}\n * @constant\n */\nconst NeverStencilFunc = 512;\n\n/**\n * Will return true if the stencil reference value is less than the current stencil value.\n *\n * @type {number}\n * @constant\n */\nconst LessStencilFunc = 513;\n\n/**\n * Will return true if the stencil reference value is equal to the current stencil value.\n *\n * @type {number}\n * @constant\n */\nconst EqualStencilFunc = 514;\n\n/**\n * Will return true if the stencil reference value is less than or equal to the current stencil value.\n *\n * @type {number}\n * @constant\n */\nconst LessEqualStencilFunc = 515;\n\n/**\n * Will return true if the stencil reference value is greater than the current stencil value.\n *\n * @type {number}\n * @constant\n */\nconst GreaterStencilFunc = 516;\n\n/**\n * Will return true if the stencil reference value is not equal to the current stencil value.\n *\n * @type {number}\n * @constant\n */\nconst NotEqualStencilFunc = 517;\n\n/**\n * Will return true if the stencil reference value is greater than or equal to the current stencil value.\n *\n * @type {number}\n * @constant\n */\nconst GreaterEqualStencilFunc = 518;\n\n/**\n * Will always return true.\n *\n * @type {number}\n * @constant\n */\nconst AlwaysStencilFunc = 519;\n\n/**\n * Never pass.\n *\n * @type {number}\n * @constant\n */\nconst NeverCompare = 512;\n\n/**\n * Pass if the incoming value is less than the texture value.\n *\n * @type {number}\n * @constant\n */\nconst LessCompare = 513;\n\n/**\n * Pass if the incoming value equals the texture value.\n *\n * @type {number}\n * @constant\n */\nconst EqualCompare = 514;\n\n/**\n * Pass if the incoming value is less than or equal to the texture value.\n *\n * @type {number}\n * @constant\n */\nconst LessEqualCompare = 515;\n\n/**\n * Pass if the incoming value is greater than the texture value.\n *\n * @type {number}\n * @constant\n */\nconst GreaterCompare = 516;\n\n/**\n * Pass if the incoming value is not equal to the texture value.\n *\n * @type {number}\n * @constant\n */\nconst NotEqualCompare = 517;\n\n/**\n * Pass if the incoming value is greater than or equal to the texture value.\n *\n * @type {number}\n * @constant\n */\nconst GreaterEqualCompare = 518;\n\n/**\n * Always pass.\n *\n * @type {number}\n * @constant\n */\nconst AlwaysCompare = 519;\n\n/**\n * The contents are intended to be specified once by the application, and used many\n * times as the source for drawing and image specification commands.\n *\n * @type {number}\n * @constant\n */\nconst StaticDrawUsage = 35044;\n\n/**\n * The contents are intended to be respecified repeatedly by the application, and\n * used many times as the source for drawing and image specification commands.\n *\n * @type {number}\n * @constant\n */\nconst DynamicDrawUsage = 35048;\n\n/**\n * The contents are intended to be specified once by the application, and used at most\n * a few times as the source for drawing and image specification commands.\n *\n * @type {number}\n * @constant\n */\nconst StreamDrawUsage = 35040;\n\n/**\n * The contents are intended to be specified once by reading data from the 3D API, and queried\n * many times by the application.\n *\n * @type {number}\n * @constant\n */\nconst StaticReadUsage = 35045;\n\n/**\n * The contents are intended to be respecified repeatedly by reading data from the 3D API, and queried\n * many times by the application.\n *\n * @type {number}\n * @constant\n */\nconst DynamicReadUsage = 35049;\n\n/**\n * The contents are intended to be specified once by reading data from the 3D API, and queried at most\n * a few times by the application\n *\n * @type {number}\n * @constant\n */\nconst StreamReadUsage = 35041;\n\n/**\n * The contents are intended to be specified once by reading data from the 3D API, and used many times as\n * the source for WebGL drawing and image specification commands.\n *\n * @type {number}\n * @constant\n */\nconst StaticCopyUsage = 35046;\n\n/**\n * The contents are intended to be respecified repeatedly by reading data from the 3D API, and used many times\n * as the source for WebGL drawing and image specification commands.\n *\n * @type {number}\n * @constant\n */\nconst DynamicCopyUsage = 35050;\n\n/**\n * The contents are intended to be specified once by reading data from the 3D API, and used at most a few times\n * as the source for WebGL drawing and image specification commands.\n *\n * @type {number}\n * @constant\n */\nconst StreamCopyUsage = 35042;\n\n/**\n * GLSL 1 shader code.\n *\n * @type {string}\n * @constant\n */\nconst GLSL1 = '100';\n\n/**\n * GLSL 3 shader code.\n *\n * @type {string}\n * @constant\n */\nconst GLSL3 = '300 es';\n\n/**\n * WebGL coordinate system.\n *\n * @type {number}\n * @constant\n */\nconst WebGLCoordinateSystem = 2000;\n\n/**\n * WebGPU coordinate system.\n *\n * @type {number}\n * @constant\n */\nconst WebGPUCoordinateSystem = 2001;\n\n/**\n * Represents the different timestamp query types.\n *\n * @type {ConstantsTimestampQuery}\n * @constant\n */\nconst TimestampQuery = {\n\tCOMPUTE: 'compute',\n\tRENDER: 'render'\n};\n\n/**\n * Represents mouse buttons and interaction types in context of controls.\n *\n * @type {ConstantsInterpolationSamplingType}\n * @constant\n */\nconst InterpolationSamplingType = {\n\tPERSPECTIVE: 'perspective',\n\tLINEAR: 'linear',\n\tFLAT: 'flat'\n};\n\n/**\n * Represents the different interpolation sampling modes.\n *\n * @type {ConstantsInterpolationSamplingMode}\n * @constant\n */\nconst InterpolationSamplingMode = {\n\tNORMAL: 'normal',\n\tCENTROID: 'centroid',\n\tSAMPLE: 'sample',\n\tFIRST: 'first',\n\tEITHER: 'either'\n};\n\n/**\n * This type represents mouse buttons and interaction types in context of controls.\n *\n * @typedef {Object} ConstantsMouse\n * @property {number} MIDDLE - The left mouse button.\n * @property {number} LEFT - The middle mouse button.\n * @property {number} RIGHT - The right mouse button.\n * @property {number} ROTATE - A rotate interaction.\n * @property {number} DOLLY - A dolly interaction.\n * @property {number} PAN - A pan interaction.\n **/\n\n/**\n * This type represents touch interaction types in context of controls.\n *\n * @typedef {Object} ConstantsTouch\n * @property {number} ROTATE - A rotate interaction.\n * @property {number} PAN - A pan interaction.\n * @property {number} DOLLY_PAN - The dolly-pan interaction.\n * @property {number} DOLLY_ROTATE - A dolly-rotate interaction.\n **/\n\n/**\n * This type represents the different timestamp query types.\n *\n * @typedef {Object} ConstantsTimestampQuery\n * @property {string} COMPUTE - A `compute` timestamp query.\n * @property {string} RENDER - A `render` timestamp query.\n **/\n\n/**\n * Represents the different interpolation sampling types.\n *\n * @typedef {Object} ConstantsInterpolationSamplingType\n * @property {string} PERSPECTIVE - Perspective-correct interpolation.\n * @property {string} LINEAR - Linear interpolation.\n * @property {string} FLAT - Flat interpolation.\n */\n\n/**\n * Represents the different interpolation sampling modes.\n *\n * @typedef {Object} ConstantsInterpolationSamplingMode\n * @property {string} NORMAL - Normal sampling mode.\n * @property {string} CENTROID - Centroid sampling mode.\n * @property {string} SAMPLE - Sample-specific sampling mode.\n * @property {string} FIRST - Flat interpolation using the first vertex.\n * @property {string} EITHER - Flat interpolation using either vertex.\n */\n\n/**\n * This modules allows to dispatch event objects on custom JavaScript objects.\n *\n * Main repository: [eventdispatcher.js]{@link https://github.com/mrdoob/eventdispatcher.js/}\n *\n * Code Example:\n * ```js\n * class Car extends EventDispatcher {\n * \tstart() {\n *\t\tthis.dispatchEvent( { type: 'start', message: 'vroom vroom!' } );\n *\t}\n *};\n *\n * // Using events with the custom object\n * const car = new Car();\n * car.addEventListener( 'start', function ( event ) {\n * \talert( event.message );\n * } );\n *\n * car.start();\n * ```\n */\nclass EventDispatcher {\n\n\t/**\n\t * Adds the given event listener to the given event type.\n\t *\n\t * @param {string} type - The type of event to listen to.\n\t * @param {Function} listener - The function that gets called when the event is fired.\n\t */\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\t/**\n\t * Returns `true` if the given event listener has been added to the given event type.\n\t *\n\t * @param {string} type - The type of event.\n\t * @param {Function} listener - The listener to check.\n\t * @return {boolean} Whether the given event listener has been added to the given event type.\n\t */\n\thasEventListener( type, listener ) {\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners === undefined ) return false;\n\n\t\treturn listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== -1;\n\n\t}\n\n\t/**\n\t * Removes the given event listener from the given event type.\n\t *\n\t * @param {string} type - The type of event.\n\t * @param {Function} listener - The listener to remove.\n\t */\n\tremoveEventListener( type, listener ) {\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners === undefined ) return;\n\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\t/**\n\t * Dispatches an event object.\n\t *\n\t * @param {Object} event - The event that gets fired.\n\t */\n\tdispatchEvent( event ) {\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners === undefined ) return;\n\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/**\n * Generate a [UUID]{@link https://en.wikipedia.org/wiki/Universally_unique_identifier}\n * (universally unique identifier).\n *\n * @return {string} The UUID.\n */\nfunction generateUUID() {\n\n\t// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\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\n/**\n * Clamps the given value between min and max.\n *\n * @param {number} value - The value to clamp.\n * @param {number} min - The min value.\n * @param {number} max - The max value.\n * @return {number} The clamped value.\n */\nfunction clamp( value, min, max ) {\n\n\treturn Math.max( min, Math.min( max, value ) );\n\n}\n\n/**\n * Computes the Euclidean modulo of the given parameters that\n * is `( ( n % m ) + m ) % m`.\n *\n * @param {number} n - The first parameter.\n * @param {number} m - The second parameter.\n * @return {number} The Euclidean modulo.\n */\nfunction euclideanModulo( n, m ) {\n\n\t// https://en.wikipedia.org/wiki/Modulo_operation\n\n\treturn ( ( n % m ) + m ) % m;\n\n}\n\n/**\n * Performs a linear mapping from range `` to range ``\n * for the given value.\n *\n * @param {number} x - The value to be mapped.\n * @param {number} a1 - Minimum value for range A.\n * @param {number} a2 - Maximum value for range A.\n * @param {number} b1 - Minimum value for range B.\n * @param {number} b2 - Maximum value for range B.\n * @return {number} The mapped value.\n */\nfunction mapLinear( x, a1, a2, b1, b2 ) {\n\n\treturn b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 );\n\n}\n\n/**\n * Returns the percentage in the closed interval `[0, 1]` of the given value\n * between the start and end point.\n *\n * @param {number} x - The start point\n * @param {number} y - The end point.\n * @param {number} value - A value between start and end.\n * @return {number} The interpolation factor.\n */\nfunction inverseLerp( x, y, value ) {\n\n\t// https://www.gamedev.net/tutorials/programming/general-and-gameplay-programming/inverse-lerp-a-super-useful-yet-often-overlooked-function-r5230/\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/**\n * Returns a value linearly interpolated from two known points based on the given interval -\n * `t = 0` will return `x` and `t = 1` will return `y`.\n *\n * @param {number} x - The start point\n * @param {number} y - The end point.\n * @param {number} t - The interpolation factor in the closed interval `[0, 1]`.\n * @return {number} The interpolated value.\n */\nfunction lerp( x, y, t ) {\n\n\treturn ( 1 - t ) * x + t * y;\n\n}\n\n/**\n * Smoothly interpolate a number from `x` to `y` in a spring-like manner using a delta\n * time to maintain frame rate independent movement. For details, see\n * [Frame rate independent damping using lerp]{@link http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/}.\n *\n * @param {number} x - The current point.\n * @param {number} y - The target point.\n * @param {number} lambda - A higher lambda value will make the movement more sudden,\n * and a lower value will make the movement more gradual.\n * @param {number} dt - Delta time in seconds.\n * @return {number} The interpolated value.\n */\nfunction damp( x, y, lambda, dt ) {\n\n\treturn lerp( x, y, 1 - Math.exp( - lambda * dt ) );\n\n}\n\n/**\n * Returns a value that alternates between `0` and the given `length` parameter.\n *\n * @param {number} x - The value to pingpong.\n * @param {number} [length=1] - The positive value the function will pingpong to.\n * @return {number} The alternated value.\n */\nfunction pingpong( x, length = 1 ) {\n\n\t// https://www.desmos.com/calculator/vcsjnyz7x4\n\n\treturn length - Math.abs( euclideanModulo( x, length * 2 ) - length );\n\n}\n\n/**\n * Returns a value in the range `[0,1]` that represents the percentage that `x` has\n * moved between `min` and `max`, but smoothed or slowed down the closer `x` is to\n * the `min` and `max`.\n *\n * See [Smoothstep]{@link http://en.wikipedia.org/wiki/Smoothstep} for more details.\n *\n * @param {number} x - The value to evaluate based on its position between min and max.\n * @param {number} min - The min value. Any x value below min will be `0`.\n * @param {number} max - The max value. Any x value above max will be `1`.\n * @return {number} The alternated value.\n */\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\n/**\n * A [variation on smoothstep]{@link https://en.wikipedia.org/wiki/Smoothstep#Variations}\n * that has zero 1st and 2nd order derivatives at x=0 and x=1.\n *\n * @param {number} x - The value to evaluate based on its position between min and max.\n * @param {number} min - The min value. Any x value below min will be `0`.\n * @param {number} max - The max value. Any x value above max will be `1`.\n * @return {number} The alternated value.\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/**\n * Returns a random integer from `` interval.\n *\n * @param {number} low - The lower value boundary.\n * @param {number} high - The upper value boundary\n * @return {number} A random integer.\n */\nfunction randInt( low, high ) {\n\n\treturn low + Math.floor( Math.random() * ( high - low + 1 ) );\n\n}\n\n/**\n * Returns a random float from `` interval.\n *\n * @param {number} low - The lower value boundary.\n * @param {number} high - The upper value boundary\n * @return {number} A random float.\n */\nfunction randFloat( low, high ) {\n\n\treturn low + Math.random() * ( high - low );\n\n}\n\n/**\n * Returns a random integer from `<-range/2, range/2>` interval.\n *\n * @param {number} range - Defines the value range.\n * @return {number} A random float.\n */\nfunction randFloatSpread( range ) {\n\n\treturn range * ( 0.5 - Math.random() );\n\n}\n\n/**\n * Returns a deterministic pseudo-random float in the interval `[0, 1]`.\n *\n * @param {number} [s] - The integer seed.\n * @return {number} A random float.\n */\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\n/**\n * Converts degrees to radians.\n *\n * @param {number} degrees - A value in degrees.\n * @return {number} The converted value in radians.\n */\nfunction degToRad( degrees ) {\n\n\treturn degrees * DEG2RAD;\n\n}\n\n/**\n * Converts radians to degrees.\n *\n * @param {number} radians - A value in radians.\n * @return {number} The converted value in degrees.\n */\nfunction radToDeg( radians ) {\n\n\treturn radians * RAD2DEG;\n\n}\n\n/**\n * Returns `true` if the given number is a power of two.\n *\n * @param {number} value - The value to check.\n * @return {boolean} Whether the given number is a power of two or not.\n */\nfunction isPowerOfTwo( value ) {\n\n\treturn ( value & ( value - 1 ) ) === 0 && value !== 0;\n\n}\n\n/**\n * Returns the smallest power of two that is greater than or equal to the given number.\n *\n * @param {number} value - The value to find a POT for.\n * @return {number} The smallest power of two that is greater than or equal to the given number.\n */\nfunction ceilPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.ceil( Math.log( value ) / Math.LN2 ) );\n\n}\n\n/**\n * Returns the largest power of two that is less than or equal to the given number.\n *\n * @param {number} value - The value to find a POT for.\n * @return {number} The largest power of two that is less than or equal to the given number.\n */\nfunction floorPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.floor( Math.log( value ) / Math.LN2 ) );\n\n}\n\n/**\n * Sets the given quaternion from the [Intrinsic Proper Euler Angles]{@link https://en.wikipedia.org/wiki/Euler_angles}\n * defined by the given angles and order.\n *\n * Rotations are applied to the axes in the order specified by order:\n * rotation by angle `a` is applied first, then by angle `b`, then by angle `c`.\n *\n * @param {Quaternion} q - The quaternion to set.\n * @param {number} a - The rotation applied to the first axis, in radians.\n * @param {number} b - The rotation applied to the second axis, in radians.\n * @param {number} c - The rotation applied to the third axis, in radians.\n * @param {('XYX'|'XZX'|'YXY'|'YZY'|'ZXZ'|'ZYZ')} order - A string specifying the axes order.\n */\nfunction setQuaternionFromProperEuler( q, a, b, c, order ) {\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\n/**\n * Denormalizes the given value according to the given typed array.\n *\n * @param {number} value - The value to denormalize.\n * @param {TypedArray} array - The typed array that defines the data type of the value.\n * @return {number} The denormalize (float) value in the range `[0,1]`.\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 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.max( value / 32767.0, -1 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.max( value / 127.0, -1 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\n/**\n * Normalizes the given value according to the given typed array.\n *\n * @param {number} value - The float value in the range `[0,1]` to normalize.\n * @param {TypedArray} array - The typed array that defines the data type of the value.\n * @return {number} The normalize value.\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\n/**\n * @class\n * @classdesc A collection of math utility functions.\n * @hideconstructor\n */\nconst MathUtils = {\n\tDEG2RAD: DEG2RAD,\n\tRAD2DEG: RAD2DEG,\n\t/**\n\t * Generate a [UUID]{@link https://en.wikipedia.org/wiki/Universally_unique_identifier}\n\t * (universally unique identifier).\n\t *\n\t * @static\n\t * @method\n\t * @return {string} The UUID.\n\t */\n\tgenerateUUID: generateUUID,\n\t/**\n\t * Clamps the given value between min and max.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} value - The value to clamp.\n\t * @param {number} min - The min value.\n\t * @param {number} max - The max value.\n\t * @return {number} The clamped value.\n\t */\n\tclamp: clamp,\n\t/**\n\t * Computes the Euclidean modulo of the given parameters that\n\t * is `( ( n % m ) + m ) % m`.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} n - The first parameter.\n\t * @param {number} m - The second parameter.\n\t * @return {number} The Euclidean modulo.\n\t */\n\teuclideanModulo: euclideanModulo,\n\t/**\n\t * Performs a linear mapping from range `` to range ``\n\t * for the given value.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} x - The value to be mapped.\n\t * @param {number} a1 - Minimum value for range A.\n\t * @param {number} a2 - Maximum value for range A.\n\t * @param {number} b1 - Minimum value for range B.\n\t * @param {number} b2 - Maximum value for range B.\n\t * @return {number} The mapped value.\n\t */\n\tmapLinear: mapLinear,\n\t/**\n\t * Returns the percentage in the closed interval `[0, 1]` of the given value\n\t * between the start and end point.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} x - The start point\n\t * @param {number} y - The end point.\n\t * @param {number} value - A value between start and end.\n\t * @return {number} The interpolation factor.\n\t */\n\tinverseLerp: inverseLerp,\n\t/**\n\t * Returns a value linearly interpolated from two known points based on the given interval -\n\t * `t = 0` will return `x` and `t = 1` will return `y`.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} x - The start point\n\t * @param {number} y - The end point.\n\t * @param {number} t - The interpolation factor in the closed interval `[0, 1]`.\n\t * @return {number} The interpolated value.\n\t */\n\tlerp: lerp,\n\t/**\n\t * Smoothly interpolate a number from `x` to `y` in a spring-like manner using a delta\n\t * time to maintain frame rate independent movement. For details, see\n\t * [Frame rate independent damping using lerp]{@link http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/}.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} x - The current point.\n\t * @param {number} y - The target point.\n\t * @param {number} lambda - A higher lambda value will make the movement more sudden,\n\t * and a lower value will make the movement more gradual.\n\t * @param {number} dt - Delta time in seconds.\n\t * @return {number} The interpolated value.\n\t */\n\tdamp: damp,\n\t/**\n\t * Returns a value that alternates between `0` and the given `length` parameter.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} x - The value to pingpong.\n\t * @param {number} [length=1] - The positive value the function will pingpong to.\n\t * @return {number} The alternated value.\n\t */\n\tpingpong: pingpong,\n\t/**\n\t * Returns a value in the range `[0,1]` that represents the percentage that `x` has\n\t * moved between `min` and `max`, but smoothed or slowed down the closer `x` is to\n\t * the `min` and `max`.\n\t *\n\t * See [Smoothstep]{@link http://en.wikipedia.org/wiki/Smoothstep} for more details.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} x - The value to evaluate based on its position between min and max.\n\t * @param {number} min - The min value. Any x value below min will be `0`.\n\t * @param {number} max - The max value. Any x value above max will be `1`.\n\t * @return {number} The alternated value.\n\t */\n\tsmoothstep: smoothstep,\n\t/**\n\t * A [variation on smoothstep]{@link https://en.wikipedia.org/wiki/Smoothstep#Variations}\n\t * that has zero 1st and 2nd order derivatives at x=0 and x=1.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} x - The value to evaluate based on its position between min and max.\n\t * @param {number} min - The min value. Any x value below min will be `0`.\n\t * @param {number} max - The max value. Any x value above max will be `1`.\n\t * @return {number} The alternated value.\n\t */\n\tsmootherstep: smootherstep,\n\t/**\n\t * Returns a random integer from `` interval.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} low - The lower value boundary.\n\t * @param {number} high - The upper value boundary\n\t * @return {number} A random integer.\n\t */\n\trandInt: randInt,\n\t/**\n\t * Returns a random float from `` interval.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} low - The lower value boundary.\n\t * @param {number} high - The upper value boundary\n\t * @return {number} A random float.\n\t */\n\trandFloat: randFloat,\n\t/**\n\t * Returns a random integer from `<-range/2, range/2>` interval.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} range - Defines the value range.\n\t * @return {number} A random float.\n\t */\n\trandFloatSpread: randFloatSpread,\n\t/**\n\t * Returns a deterministic pseudo-random float in the interval `[0, 1]`.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} [s] - The integer seed.\n\t * @return {number} A random float.\n\t */\n\tseededRandom: seededRandom,\n\t/**\n\t * Converts degrees to radians.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} degrees - A value in degrees.\n\t * @return {number} The converted value in radians.\n\t */\n\tdegToRad: degToRad,\n\t/**\n\t * Converts radians to degrees.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} radians - A value in radians.\n\t * @return {number} The converted value in degrees.\n\t */\n\tradToDeg: radToDeg,\n\t/**\n\t * Returns `true` if the given number is a power of two.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} value - The value to check.\n\t * @return {boolean} Whether the given number is a power of two or not.\n\t */\n\tisPowerOfTwo: isPowerOfTwo,\n\t/**\n\t * Returns the smallest power of two that is greater than or equal to the given number.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} value - The value to find a POT for.\n\t * @return {number} The smallest power of two that is greater than or equal to the given number.\n\t */\n\tceilPowerOfTwo: ceilPowerOfTwo,\n\t/**\n\t * Returns the largest power of two that is less than or equal to the given number.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} value - The value to find a POT for.\n\t * @return {number} The largest power of two that is less than or equal to the given number.\n\t */\n\tfloorPowerOfTwo: floorPowerOfTwo,\n\t/**\n\t * Sets the given quaternion from the [Intrinsic Proper Euler Angles]{@link https://en.wikipedia.org/wiki/Euler_angles}\n\t * defined by the given angles and order.\n\t *\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 *\n\t * @static\n\t * @method\n\t * @param {Quaternion} q - The quaternion to set.\n\t * @param {number} a - The rotation applied to the first axis, in radians.\n\t * @param {number} b - The rotation applied to the second axis, in radians.\n\t * @param {number} c - The rotation applied to the third axis, in radians.\n\t * @param {('XYX'|'XZX'|'YXY'|'YZY'|'ZXZ'|'ZYZ')} order - A string specifying the axes order.\n\t */\n\tsetQuaternionFromProperEuler: setQuaternionFromProperEuler,\n\t/**\n\t * Normalizes the given value according to the given typed array.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} value - The float value in the range `[0,1]` to normalize.\n\t * @param {TypedArray} array - The typed array that defines the data type of the value.\n\t * @return {number} The normalize value.\n\t */\n\tnormalize: normalize,\n\t/**\n\t * Denormalizes the given value according to the given typed array.\n\t *\n\t * @static\n\t * @method\n\t * @param {number} value - The value to denormalize.\n\t * @param {TypedArray} array - The typed array that defines the data type of the value.\n\t * @return {number} The denormalize (float) value in the range `[0,1]`.\n\t */\n\tdenormalize: denormalize\n};\n\n/**\n * Class representing a 2D vector. A 2D vector is an ordered pair of numbers\n * (labeled x and y), which can be used to represent a number of things, such as:\n *\n * - A point in 2D space (i.e. a position on a plane).\n * - A direction and length across a plane. In three.js the length will\n * always be the Euclidean distance(straight-line distance) from `(0, 0)` to `(x, y)`\n * and the direction is also measured from `(0, 0)` towards `(x, y)`.\n * - Any arbitrary ordered pair of numbers.\n *\n * There are other things a 2D vector can be used to represent, such as\n * momentum vectors, complex numbers and so on, however these are the most\n * common uses in three.js.\n *\n * Iterating through a vector instance will yield its components `(x, y)` in\n * the corresponding order.\n * ```js\n * const a = new THREE.Vector2( 0, 1 );\n *\n * //no arguments; will be initialised to (0, 0)\n * const b = new THREE.Vector2( );\n *\n * const d = a.distanceTo( b );\n * ```\n */\nclass Vector2 {\n\n\t/**\n\t * Constructs a new 2D vector.\n\t *\n\t * @param {number} [x=0] - The x value of this vector.\n\t * @param {number} [y=0] - The y value of this vector.\n\t */\n\tconstructor( x = 0, y = 0 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tVector2.prototype.isVector2 = true;\n\n\t\t/**\n\t\t * The x value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.x = x;\n\n\t\t/**\n\t\t * The y value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.y = y;\n\n\t}\n\n\t/**\n\t * Alias for {@link Vector2#x}.\n\t *\n\t * @type {number}\n\t */\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\t/**\n\t * Alias for {@link Vector2#y}.\n\t *\n\t * @type {number}\n\t */\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\t/**\n\t * Sets the vector components.\n\t *\n\t * @param {number} x - The value of the x component.\n\t * @param {number} y - The value of the y component.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components to the same value.\n\t *\n\t * @param {number} scalar - The value to set for all vector components.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the vector's x component to the given value\n\t *\n\t * @param {number} x - The value to set.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the vector's y component to the given value\n\t *\n\t * @param {number} y - The value to set.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Allows to set a vector component with an index.\n\t *\n\t * @param {number} index - The component index. `0` equals to x, `1` equals to y.\n\t * @param {number} value - The value to set.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Returns the value of the vector component which matches the given index.\n\t *\n\t * @param {number} index - The component index. `0` equals to x, `1` equals to y.\n\t * @return {number} A vector component value.\n\t */\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\t/**\n\t * Returns a new vector with copied values from this instance.\n\t *\n\t * @return {Vector2} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y );\n\n\t}\n\n\t/**\n\t * Copies the values of the given vector to this instance.\n\t *\n\t * @param {Vector2} v - The vector to copy.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vector to this instance.\n\t *\n\t * @param {Vector2} v - The vector to add.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given scalar value to all components of this instance.\n\t *\n\t * @param {number} s - The scalar to add.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Adds the given vectors and stores the result in this instance.\n\t *\n\t * @param {Vector2} a - The first vector.\n\t * @param {Vector2} b - The second vector.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vector scaled by the given factor to this instance.\n\t *\n\t * @param {Vector2} v - The vector.\n\t * @param {number} s - The factor that scales `v`.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given vector from this instance.\n\t *\n\t * @param {Vector2} v - The vector to subtract.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given scalar value from all components of this instance.\n\t *\n\t * @param {number} s - The scalar to subtract.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Subtracts the given vectors and stores the result in this instance.\n\t *\n\t * @param {Vector2} a - The first vector.\n\t * @param {Vector2} b - The second vector.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies the given vector with this instance.\n\t *\n\t * @param {Vector2} v - The vector to multiply.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies the given scalar value with all components of this instance.\n\t *\n\t * @param {number} scalar - The scalar to multiply.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Divides this instance by the given vector.\n\t *\n\t * @param {Vector2} v - The vector to divide.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Divides this vector by the given scalar.\n\t *\n\t * @param {number} scalar - The scalar to divide.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\t/**\n\t * Multiplies this vector (with an implicit 1 as the 3rd component) by\n\t * the given 3x3 matrix.\n\t *\n\t * @param {Matrix3} m - The matrix to apply.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x or y value is greater than the given vector's x or y\n\t * value, replace that value with the corresponding min value.\n\t *\n\t * @param {Vector2} v - The vector.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x or y value is less than the given vector's x or y\n\t * value, replace that value with the corresponding max value.\n\t *\n\t * @param {Vector2} v - The vector.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x or y value is greater than the max vector's x or y\n\t * value, it is replaced by the corresponding value.\n\t * If this vector's x or y value is less than the min vector's x or y value,\n\t * it is replaced by the corresponding value.\n\t *\n\t * @param {Vector2} min - The minimum x and y values.\n\t * @param {Vector2} max - The maximum x and y values in the desired range.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = clamp( this.x, min.x, max.x );\n\t\tthis.y = clamp( this.y, min.y, max.y );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * If this vector's x or y values are greater than the max value, they are\n\t * replaced by the max value.\n\t * If this vector's x or y values are less than the min value, they are\n\t * replaced by the min value.\n\t *\n\t * @param {number} minVal - The minimum value the components will be clamped to.\n\t * @param {number} maxVal - The maximum value the components will be clamped to.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = clamp( this.x, minVal, maxVal );\n\t\tthis.y = clamp( this.y, minVal, maxVal );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * If this vector's length is greater than the max value, it is replaced by\n\t * the max value.\n\t * If this vector's length is less than the min value, it is replaced by the\n\t * min value.\n\t *\n\t * @param {number} min - The minimum value the vector length will be clamped to.\n\t * @param {number} max - The maximum value the vector length will be clamped to.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( clamp( length, min, max ) );\n\n\t}\n\n\t/**\n\t * The components of this vector are rounded down to the nearest integer value.\n\t *\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded up to the nearest integer value.\n\t *\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded to the nearest integer value\n\t *\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded towards zero (up if negative,\n\t * down if positive) to an integer value.\n\t *\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Inverts this vector - i.e. sets x = -x and y = -y.\n\t *\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Calculates the dot product of the given vector with this instance.\n\t *\n\t * @param {Vector2} v - The vector to compute the dot product with.\n\t * @return {number} The result of the dot product.\n\t */\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y;\n\n\t}\n\n\t/**\n\t * Calculates the cross product of the given vector with this instance.\n\t *\n\t * @param {Vector2} v - The vector to compute the cross product with.\n\t * @return {number} The result of the cross product.\n\t */\n\tcross( v ) {\n\n\t\treturn this.x * v.y - this.y * v.x;\n\n\t}\n\n\t/**\n\t * Computes the square of the Euclidean length (straight-line length) from\n\t * (0, 0) to (x, y). If you are comparing the lengths of vectors, you should\n\t * compare the length squared instead as it is slightly more efficient to calculate.\n\t *\n\t * @return {number} The square length of this vector.\n\t */\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y;\n\n\t}\n\n\t/**\n\t * Computes the Euclidean length (straight-line length) from (0, 0) to (x, y).\n\t *\n\t * @return {number} The length of this vector.\n\t */\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y );\n\n\t}\n\n\t/**\n\t * Computes the Manhattan length of this vector.\n\t *\n\t * @return {number} The length of this vector.\n\t */\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y );\n\n\t}\n\n\t/**\n\t * Converts this vector to a unit vector - that is, sets it equal to a vector\n\t * with the same direction as this one, but with a vector length of `1`.\n\t *\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\t/**\n\t * Computes the angle in radians of this vector with respect to the positive x-axis.\n\t *\n\t * @return {number} The angle in radians.\n\t */\n\tangle() {\n\n\t\tconst angle = Math.atan2( - this.y, - this.x ) + Math.PI;\n\n\t\treturn angle;\n\n\t}\n\n\t/**\n\t * Returns the angle between the given vector and this instance in radians.\n\t *\n\t * @param {Vector2} v - The vector to compute the angle with.\n\t * @return {number} The angle in radians.\n\t */\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\t/**\n\t * Computes the distance from the given vector to this instance.\n\t *\n\t * @param {Vector2} v - The vector to compute the distance to.\n\t * @return {number} The distance.\n\t */\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\t/**\n\t * Computes the squared distance from the given vector to this instance.\n\t * If you are just comparing the distance with another distance, you should compare\n\t * the distance squared instead as it is slightly more efficient to calculate.\n\t *\n\t * @param {Vector2} v - The vector to compute the squared distance to.\n\t * @return {number} The squared distance.\n\t */\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\t/**\n\t * Computes the Manhattan distance from the given vector to this instance.\n\t *\n\t * @param {Vector2} v - The vector to compute the Manhattan distance to.\n\t * @return {number} The Manhattan distance.\n\t */\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y );\n\n\t}\n\n\t/**\n\t * Sets this vector to a vector with the same direction as this one, but\n\t * with the specified length.\n\t *\n\t * @param {number} length - The new length of this vector.\n\t * @return {Vector2} A reference to this vector.\n\t */\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\t/**\n\t * Linearly interpolates between the given vector and this instance, where\n\t * alpha is the percent distance along the line - alpha = 0 will be this\n\t * vector, and alpha = 1 will be the given one.\n\t *\n\t * @param {Vector2} v - The vector to interpolate towards.\n\t * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Linearly interpolates between the given vectors, where alpha is the percent\n\t * distance along the line - alpha = 0 will be first vector, and alpha = 1 will\n\t * be the second one. The result is stored in this instance.\n\t *\n\t * @param {Vector2} v1 - The first vector.\n\t * @param {Vector2} v2 - The second vector.\n\t * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Returns `true` if this vector is equal with the given one.\n\t *\n\t * @param {Vector2} v - The vector to test for equality.\n\t * @return {boolean} Whether this vector is equal with the given one.\n\t */\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) );\n\n\t}\n\n\t/**\n\t * Sets this vector's x value to be `array[ offset ]` and y\n\t * value to be `array[ offset + 1 ]`.\n\t *\n\t * @param {Array} array - An array holding the vector component values.\n\t * @param {number} [offset=0] - The offset into the array.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Writes the components of this vector to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the vector components.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The vector components.\n\t */\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\t/**\n\t * Sets the components of this vector from the given buffer attribute.\n\t *\n\t * @param {BufferAttribute} attribute - The buffer attribute holding vector data.\n\t * @param {number} index - The index into the attribute.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Rotates this vector around the given center by the given angle.\n\t *\n\t * @param {Vector2} center - The point around which to rotate.\n\t * @param {number} angle - The angle to rotate, in radians.\n\t * @return {Vector2} A reference to this vector.\n\t */\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\t/**\n\t * Sets each component of this vector to a pseudo-random value between `0` and\n\t * `1`, excluding `1`.\n\t *\n\t * @return {Vector2} A reference to this vector.\n\t */\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\n/**\n * Class for representing a Quaternion. Quaternions are used in three.js to represent rotations.\n *\n * Iterating through a vector instance will yield its components `(x, y, z, w)` in\n * the corresponding order.\n *\n * Note that three.js expects Quaternions to be normalized.\n * ```js\n * const quaternion = new THREE.Quaternion();\n * quaternion.setFromAxisAngle( new THREE.Vector3( 0, 1, 0 ), Math.PI / 2 );\n *\n * const vector = new THREE.Vector3( 1, 0, 0 );\n * vector.applyQuaternion( quaternion );\n * ```\n */\nclass Quaternion {\n\n\t/**\n\t * Constructs a new quaternion.\n\t *\n\t * @param {number} [x=0] - The x value of this quaternion.\n\t * @param {number} [y=0] - The y value of this quaternion.\n\t * @param {number} [z=0] - The z value of this quaternion.\n\t * @param {number} [w=1] - The w value of this quaternion.\n\t */\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t * Interpolates between two quaternions via SLERP. This implementation assumes the\n\t * quaternion data are managed in flat arrays.\n\t *\n\t * @param {Array} dst - The destination array.\n\t * @param {number} dstOffset - An offset into the destination array.\n\t * @param {Array} src0 - The source array of the first quaternion.\n\t * @param {number} srcOffset0 - An offset into the first source array.\n\t * @param {Array} src1 - The source array of the second quaternion.\n\t * @param {number} srcOffset1 - An offset into the second source array.\n\t * @param {number} t - The interpolation factor in the range `[0,1]`.\n\t * @see {@link Quaternion#slerp}\n\t */\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\t/**\n\t * Multiplies two quaternions. This implementation assumes the quaternion data are managed\n\t * in flat arrays.\n\t *\n\t * @param {Array} dst - The destination array.\n\t * @param {number} dstOffset - An offset into the destination array.\n\t * @param {Array} src0 - The source array of the first quaternion.\n\t * @param {number} srcOffset0 - An offset into the first source array.\n\t * @param {Array} src1 - The source array of the second quaternion.\n\t * @param {number} srcOffset1 - An offset into the second source array.\n\t * @return {Array} The destination array.\n\t * @see {@link Quaternion#multiplyQuaternions}.\n\t */\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\t/**\n\t * The x value of this quaternion.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * The y value of this quaternion.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * The z value of this quaternion.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * The w value of this quaternion.\n\t *\n\t * @type {number}\n\t * @default 1\n\t */\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\t/**\n\t * Sets the quaternion components.\n\t *\n\t * @param {number} x - The x value of this quaternion.\n\t * @param {number} y - The y value of this quaternion.\n\t * @param {number} z - The z value of this quaternion.\n\t * @param {number} w - The w value of this quaternion.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Returns a new quaternion with copied values from this instance.\n\t *\n\t * @return {Quaternion} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._w );\n\n\t}\n\n\t/**\n\t * Copies the values of the given quaternion to this instance.\n\t *\n\t * @param {Quaternion} quaternion - The quaternion to copy.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Sets this quaternion from the rotation specified by the given\n\t * Euler angles.\n\t *\n\t * @param {Euler} euler - The Euler angles.\n\t * @param {boolean} [update=true] - Whether the internal `onChange` callback should be executed or not.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Sets this quaternion from the given axis and angle.\n\t *\n\t * @param {Vector3} axis - The normalized axis.\n\t * @param {number} angle - The angle in radians.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\n\tsetFromAxisAngle( axis, angle ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\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\t/**\n\t * Sets this quaternion from the given rotation matrix.\n\t *\n\t * @param {Matrix4} m - A 4x4 matrix of which the upper 3x3 of matrix is a pure rotation matrix (i.e. unscaled).\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Sets this quaternion to the rotation required to rotate the direction vector\n\t * `vFrom` to the direction vector `vTo`.\n\t *\n\t * @param {Vector3} vFrom - The first (normalized) direction vector.\n\t * @param {Vector3} vTo - The second (normalized) direction vector.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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 < 1e-8 ) { // the epsilon value has been discussed in #31286\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\t/**\n\t * Returns the angle between this quaternion and the given one in radians.\n\t *\n\t * @param {Quaternion} q - The quaternion to compute the angle with.\n\t * @return {number} The angle in radians.\n\t */\n\tangleTo( q ) {\n\n\t\treturn 2 * Math.acos( Math.abs( clamp( this.dot( q ), -1, 1 ) ) );\n\n\t}\n\n\t/**\n\t * Rotates this quaternion by a given angular step to the given quaternion.\n\t * The method ensures that the final quaternion will not overshoot `q`.\n\t *\n\t * @param {Quaternion} q - The target quaternion.\n\t * @param {number} step - The angular step in radians.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Sets this quaternion to the identity quaternion; that is, to the\n\t * quaternion that represents \"no rotation\".\n\t *\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\n\tidentity() {\n\n\t\treturn this.set( 0, 0, 0, 1 );\n\n\t}\n\n\t/**\n\t * Inverts this quaternion via {@link Quaternion#conjugate}. The\n\t * quaternion is assumed to have unit length.\n\t *\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\n\tinvert() {\n\n\t\treturn this.conjugate();\n\n\t}\n\n\t/**\n\t * Returns the rotational conjugate of this quaternion. The conjugate of a\n\t * quaternion represents the same rotation in the opposite direction about\n\t * the rotational axis.\n\t *\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Calculates the dot product of this quaternion and the given one.\n\t *\n\t * @param {Quaternion} v - The quaternion to compute the dot product with.\n\t * @return {number} The result of the dot product.\n\t */\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\t/**\n\t * Computes the squared Euclidean length (straight-line length) of this quaternion,\n\t * considered as a 4 dimensional vector. This can be useful if you are comparing the\n\t * lengths of two quaternions, as this is a slightly more efficient calculation than\n\t * {@link Quaternion#length}.\n\t *\n\t * @return {number} The squared Euclidean length.\n\t */\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\t/**\n\t * Computes the Euclidean length (straight-line length) of this quaternion,\n\t * considered as a 4 dimensional vector.\n\t *\n\t * @return {number} The Euclidean length.\n\t */\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\t/**\n\t * Normalizes this quaternion - that is, calculated the quaternion that performs\n\t * the same rotation as this one, but has a length equal to `1`.\n\t *\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Multiplies this quaternion by the given one.\n\t *\n\t * @param {Quaternion} q - The quaternion.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\n\tmultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( this, q );\n\n\t}\n\n\t/**\n\t * Pre-multiplies this quaternion by the given one.\n\t *\n\t * @param {Quaternion} q - The quaternion.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\n\tpremultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( q, this );\n\n\t}\n\n\t/**\n\t * Multiplies the given quaternions and stores the result in this instance.\n\t *\n\t * @param {Quaternion} a - The first quaternion.\n\t * @param {Quaternion} b - The second quaternion.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Performs a spherical linear interpolation between quaternions.\n\t *\n\t * @param {Quaternion} qb - The target quaternion.\n\t * @param {number} t - The interpolation factor in the closed interval `[0, 1]`.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Performs a spherical linear interpolation between the given quaternions\n\t * and stores the result in this quaternion.\n\t *\n\t * @param {Quaternion} qa - The source quaternion.\n\t * @param {Quaternion} qb - The target quaternion.\n\t * @param {number} t - The interpolation factor in the closed interval `[0, 1]`.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\n\tslerpQuaternions( qa, qb, t ) {\n\n\t\treturn this.copy( qa ).slerp( qb, t );\n\n\t}\n\n\t/**\n\t * Sets this quaternion to a uniformly random, normalized quaternion.\n\t *\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\n\trandom() {\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\t/**\n\t * Returns `true` if this quaternion is equal with the given one.\n\t *\n\t * @param {Quaternion} quaternion - The quaternion to test for equality.\n\t * @return {boolean} Whether this quaternion is equal with the given one.\n\t */\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\t/**\n\t * Sets this quaternion's components from the given array.\n\t *\n\t * @param {Array} array - An array holding the quaternion component values.\n\t * @param {number} [offset=0] - The offset into the array.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * Writes the components of this quaternion to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the quaternion components.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The quaternion components.\n\t */\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\t/**\n\t * Sets the components of this quaternion from the given buffer attribute.\n\t *\n\t * @param {BufferAttribute} attribute - The buffer attribute holding quaternion data.\n\t * @param {number} index - The index into the attribute.\n\t * @return {Quaternion} A reference to this quaternion.\n\t */\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\t/**\n\t * This methods defines the serialization result of this class. Returns the\n\t * numerical elements of this quaternion in an array of format `[x, y, z, w]`.\n\t *\n\t * @return {Array} The serialized quaternion.\n\t */\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\n/**\n * Class representing a 3D vector. A 3D vector is an ordered triplet of numbers\n * (labeled x, y and z), which can be used to represent a number of things, such as:\n *\n * - A point in 3D space.\n * - A direction and length in 3D space. In three.js the length will\n * always be the Euclidean distance(straight-line distance) from `(0, 0, 0)` to `(x, y, z)`\n * and the direction is also measured from `(0, 0, 0)` towards `(x, y, z)`.\n * - Any arbitrary ordered triplet of numbers.\n *\n * There are other things a 3D vector can be used to represent, such as\n * momentum vectors and so on, however these are the most\n * common uses in three.js.\n *\n * Iterating through a vector instance will yield its components `(x, y, z)` in\n * the corresponding order.\n * ```js\n * const a = new THREE.Vector3( 0, 1, 0 );\n *\n * //no arguments; will be initialised to (0, 0, 0)\n * const b = new THREE.Vector3( );\n *\n * const d = a.distanceTo( b );\n * ```\n */\nclass Vector3 {\n\n\t/**\n\t * Constructs a new 3D vector.\n\t *\n\t * @param {number} [x=0] - The x value of this vector.\n\t * @param {number} [y=0] - The y value of this vector.\n\t * @param {number} [z=0] - The z value of this vector.\n\t */\n\tconstructor( x = 0, y = 0, z = 0 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tVector3.prototype.isVector3 = true;\n\n\t\t/**\n\t\t * The x value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.x = x;\n\n\t\t/**\n\t\t * The y value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.y = y;\n\n\t\t/**\n\t\t * The z value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.z = z;\n\n\t}\n\n\t/**\n\t * Sets the vector components.\n\t *\n\t * @param {number} x - The value of the x component.\n\t * @param {number} y - The value of the y component.\n\t * @param {number} z - The value of the z component.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components to the same value.\n\t *\n\t * @param {number} scalar - The value to set for all vector components.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector's x component to the given value\n\t *\n\t * @param {number} x - The value to set.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the vector's y component to the given value\n\t *\n\t * @param {number} y - The value to set.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the vector's z component to the given value\n\t *\n\t * @param {number} z - The value to set.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Allows to set a vector component with an index.\n\t *\n\t * @param {number} index - The component index. `0` equals to x, `1` equals to y, `2` equals to z.\n\t * @param {number} value - The value to set.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Returns the value of the vector component which matches the given index.\n\t *\n\t * @param {number} index - The component index. `0` equals to x, `1` equals to y, `2` equals to z.\n\t * @return {number} A vector component value.\n\t */\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\t/**\n\t * Returns a new vector with copied values from this instance.\n\t *\n\t * @return {Vector3} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z );\n\n\t}\n\n\t/**\n\t * Copies the values of the given vector to this instance.\n\t *\n\t * @param {Vector3} v - The vector to copy.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vector to this instance.\n\t *\n\t * @param {Vector3} v - The vector to add.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given scalar value to all components of this instance.\n\t *\n\t * @param {number} s - The scalar to add.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vectors and stores the result in this instance.\n\t *\n\t * @param {Vector3} a - The first vector.\n\t * @param {Vector3} b - The second vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vector scaled by the given factor to this instance.\n\t *\n\t * @param {Vector3|Vector4} v - The vector.\n\t * @param {number} s - The factor that scales `v`.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given vector from this instance.\n\t *\n\t * @param {Vector3} v - The vector to subtract.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given scalar value from all components of this instance.\n\t *\n\t * @param {number} s - The scalar to subtract.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given vectors and stores the result in this instance.\n\t *\n\t * @param {Vector3} a - The first vector.\n\t * @param {Vector3} b - The second vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies the given vector with this instance.\n\t *\n\t * @param {Vector3} v - The vector to multiply.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies the given scalar value with all components of this instance.\n\t *\n\t * @param {number} scalar - The scalar to multiply.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies the given vectors and stores the result in this instance.\n\t *\n\t * @param {Vector3} a - The first vector.\n\t * @param {Vector3} b - The second vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Applies the given Euler rotation to this vector.\n\t *\n\t * @param {Euler} euler - The Euler angles.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tapplyEuler( euler ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromEuler( euler ) );\n\n\t}\n\n\t/**\n\t * Applies a rotation specified by an axis and an angle to this vector.\n\t *\n\t * @param {Vector3} axis - A normalized vector representing the rotation axis.\n\t * @param {number} angle - The angle in radians.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tapplyAxisAngle( axis, angle ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromAxisAngle( axis, angle ) );\n\n\t}\n\n\t/**\n\t * Multiplies this vector with the given 3x3 matrix.\n\t *\n\t * @param {Matrix3} m - The 3x3 matrix.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies this vector by the given normal matrix and normalizes\n\t * the result.\n\t *\n\t * @param {Matrix3} m - The normal matrix.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tapplyNormalMatrix( m ) {\n\n\t\treturn this.applyMatrix3( m ).normalize();\n\n\t}\n\n\t/**\n\t * Multiplies this vector (with an implicit 1 in the 4th dimension) by m, and\n\t * divides by perspective.\n\t *\n\t * @param {Matrix4} m - The matrix to apply.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Applies the given Quaternion to this vector.\n\t *\n\t * @param {Quaternion} q - The Quaternion.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Projects this vector from world space into the camera's normalized\n\t * device coordinate (NDC) space.\n\t *\n\t * @param {Camera} camera - The camera.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.matrixWorldInverse ).applyMatrix4( camera.projectionMatrix );\n\n\t}\n\n\t/**\n\t * Unprojects this vector from the camera's normalized device coordinate (NDC)\n\t * space into world space.\n\t *\n\t * @param {Camera} camera - The camera.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tunproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.projectionMatrixInverse ).applyMatrix4( camera.matrixWorld );\n\n\t}\n\n\t/**\n\t * Transforms the direction of this vector by a matrix (the upper left 3 x 3\n\t * subset of the given 4x4 matrix and then normalizes the result.\n\t *\n\t * @param {Matrix4} m - The matrix.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Divides this instance by the given vector.\n\t *\n\t * @param {Vector3} v - The vector to divide.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Divides this vector by the given scalar.\n\t *\n\t * @param {number} scalar - The scalar to divide.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\t/**\n\t * If this vector's x, y or z value is greater than the given vector's x, y or z\n\t * value, replace that value with the corresponding min value.\n\t *\n\t * @param {Vector3} v - The vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x, y or z value is less than the given vector's x, y or z\n\t * value, replace that value with the corresponding max value.\n\t *\n\t * @param {Vector3} v - The vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x, y or z value is greater than the max vector's x, y or z\n\t * value, it is replaced by the corresponding value.\n\t * If this vector's x, y or z value is less than the min vector's x, y or z value,\n\t * it is replaced by the corresponding value.\n\t *\n\t * @param {Vector3} min - The minimum x, y and z values.\n\t * @param {Vector3} max - The maximum x, y and z values in the desired range.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = clamp( this.x, min.x, max.x );\n\t\tthis.y = clamp( this.y, min.y, max.y );\n\t\tthis.z = clamp( this.z, min.z, max.z );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * If this vector's x, y or z values are greater than the max value, they are\n\t * replaced by the max value.\n\t * If this vector's x, y or z values are less than the min value, they are\n\t * replaced by the min value.\n\t *\n\t * @param {number} minVal - The minimum value the components will be clamped to.\n\t * @param {number} maxVal - The maximum value the components will be clamped to.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = clamp( this.x, minVal, maxVal );\n\t\tthis.y = clamp( this.y, minVal, maxVal );\n\t\tthis.z = clamp( this.z, minVal, maxVal );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * If this vector's length is greater than the max value, it is replaced by\n\t * the max value.\n\t * If this vector's length is less than the min value, it is replaced by the\n\t * min value.\n\t *\n\t * @param {number} min - The minimum value the vector length will be clamped to.\n\t * @param {number} max - The maximum value the vector length will be clamped to.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( clamp( length, min, max ) );\n\n\t}\n\n\t/**\n\t * The components of this vector are rounded down to the nearest integer value.\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded up to the nearest integer value.\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded to the nearest integer value\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded towards zero (up if negative,\n\t * down if positive) to an integer value.\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Inverts this vector - i.e. sets x = -x, y = -y and z = -z.\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Calculates the dot product of the given vector with this instance.\n\t *\n\t * @param {Vector3} v - The vector to compute the dot product with.\n\t * @return {number} The result of the dot product.\n\t */\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\t/**\n\t * Computes the square of the Euclidean length (straight-line length) from\n\t * (0, 0, 0) to (x, y, z). If you are comparing the lengths of vectors, you should\n\t * compare the length squared instead as it is slightly more efficient to calculate.\n\t *\n\t * @return {number} The square length of this vector.\n\t */\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\n\n\t}\n\n\t/**\n\t * Computes the Euclidean length (straight-line length) from (0, 0, 0) to (x, y, z).\n\t *\n\t * @return {number} The length of this vector.\n\t */\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\t/**\n\t * Computes the Manhattan length of this vector.\n\t *\n\t * @return {number} The length of this vector.\n\t */\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z );\n\n\t}\n\n\t/**\n\t * Converts this vector to a unit vector - that is, sets it equal to a vector\n\t * with the same direction as this one, but with a vector length of `1`.\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\t/**\n\t * Sets this vector to a vector with the same direction as this one, but\n\t * with the specified length.\n\t *\n\t * @param {number} length - The new length of this vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\t/**\n\t * Linearly interpolates between the given vector and this instance, where\n\t * alpha is the percent distance along the line - alpha = 0 will be this\n\t * vector, and alpha = 1 will be the given one.\n\t *\n\t * @param {Vector3} v - The vector to interpolate towards.\n\t * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Linearly interpolates between the given vectors, where alpha is the percent\n\t * distance along the line - alpha = 0 will be first vector, and alpha = 1 will\n\t * be the second one. The result is stored in this instance.\n\t *\n\t * @param {Vector3} v1 - The first vector.\n\t * @param {Vector3} v2 - The second vector.\n\t * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Calculates the cross product of the given vector with this instance.\n\t *\n\t * @param {Vector3} v - The vector to compute the cross product with.\n\t * @return {Vector3} The result of the cross product.\n\t */\n\tcross( v ) {\n\n\t\treturn this.crossVectors( this, v );\n\n\t}\n\n\t/**\n\t * Calculates the cross product of the given vectors and stores the result\n\t * in this instance.\n\t *\n\t * @param {Vector3} a - The first vector.\n\t * @param {Vector3} b - The second vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Projects this vector onto the given one.\n\t *\n\t * @param {Vector3} v - The vector to project to.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Projects this vector onto a plane by subtracting this\n\t * vector projected onto the plane's normal from this vector.\n\t *\n\t * @param {Vector3} planeNormal - The plane normal.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Reflects this vector off a plane orthogonal to the given normal vector.\n\t *\n\t * @param {Vector3} normal - The (normalized) normal vector.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\treflect( normal ) {\n\n\t\treturn this.sub( _vector$c.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) );\n\n\t}\n\t/**\n\t * Returns the angle between the given vector and this instance in radians.\n\t *\n\t * @param {Vector3} v - The vector to compute the angle with.\n\t * @return {number} The angle in radians.\n\t */\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\t/**\n\t * Computes the distance from the given vector to this instance.\n\t *\n\t * @param {Vector3} v - The vector to compute the distance to.\n\t * @return {number} The distance.\n\t */\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\t/**\n\t * Computes the squared distance from the given vector to this instance.\n\t * If you are just comparing the distance with another distance, you should compare\n\t * the distance squared instead as it is slightly more efficient to calculate.\n\t *\n\t * @param {Vector3} v - The vector to compute the squared distance to.\n\t * @return {number} The squared distance.\n\t */\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\t/**\n\t * Computes the Manhattan distance from the given vector to this instance.\n\t *\n\t * @param {Vector3} v - The vector to compute the Manhattan distance to.\n\t * @return {number} The Manhattan distance.\n\t */\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\t/**\n\t * Sets the vector components from the given spherical coordinates.\n\t *\n\t * @param {Spherical} s - The spherical coordinates.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetFromSpherical( s ) {\n\n\t\treturn this.setFromSphericalCoords( s.radius, s.phi, s.theta );\n\n\t}\n\n\t/**\n\t * Sets the vector components from the given spherical coordinates.\n\t *\n\t * @param {number} radius - The radius.\n\t * @param {number} phi - The phi angle in radians.\n\t * @param {number} theta - The theta angle in radians.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components from the given cylindrical coordinates.\n\t *\n\t * @param {Cylindrical} c - The cylindrical coordinates.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetFromCylindrical( c ) {\n\n\t\treturn this.setFromCylindricalCoords( c.radius, c.theta, c.y );\n\n\t}\n\n\t/**\n\t * Sets the vector components from the given cylindrical coordinates.\n\t *\n\t * @param {number} radius - The radius.\n\t * @param {number} theta - The theta angle in radians.\n\t * @param {number} y - The y value.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components to the position elements of the\n\t * given transformation matrix.\n\t *\n\t * @param {Matrix4} m - The 4x4 matrix.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components to the scale elements of the\n\t * given transformation matrix.\n\t *\n\t * @param {Matrix4} m - The 4x4 matrix.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components from the specified matrix column.\n\t *\n\t * @param {Matrix4} m - The 4x4 matrix.\n\t * @param {number} index - The column index.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetFromMatrixColumn( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 4 );\n\n\t}\n\n\t/**\n\t * Sets the vector components from the specified matrix column.\n\t *\n\t * @param {Matrix3} m - The 3x3 matrix.\n\t * @param {number} index - The column index.\n\t * @return {Vector3} A reference to this vector.\n\t */\n\tsetFromMatrix3Column( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 3 );\n\n\t}\n\n\t/**\n\t * Sets the vector components from the given Euler angles.\n\t *\n\t * @param {Euler} e - The Euler angles to set.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components from the RGB components of the\n\t * given color.\n\t *\n\t * @param {Color} c - The color to set.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Returns `true` if this vector is equal with the given one.\n\t *\n\t * @param {Vector3} v - The vector to test for equality.\n\t * @return {boolean} Whether this vector is equal with the given one.\n\t */\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) );\n\n\t}\n\n\t/**\n\t * Sets this vector's x value to be `array[ offset ]`, y value to be `array[ offset + 1 ]`\n\t * and z value to be `array[ offset + 2 ]`.\n\t *\n\t * @param {Array} array - An array holding the vector component values.\n\t * @param {number} [offset=0] - The offset into the array.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Writes the components of this vector to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the vector components.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The vector components.\n\t */\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\t/**\n\t * Sets the components of this vector from the given buffer attribute.\n\t *\n\t * @param {BufferAttribute} attribute - The buffer attribute holding vector data.\n\t * @param {number} index - The index into the attribute.\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets each component of this vector to a pseudo-random value between `0` and\n\t * `1`, excluding `1`.\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\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\t/**\n\t * Sets this vector to a uniformly random point on a unit sphere.\n\t *\n\t * @return {Vector3} A reference to this vector.\n\t */\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\n/**\n * Represents a 3x3 matrix.\n *\n * A Note on Row-Major and Column-Major Ordering:\n *\n * The constructor and {@link Matrix3#set} method take arguments in\n * [row-major]{@link https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order}\n * order, while internally they are stored in the {@link Matrix3#elements} array in column-major order.\n * This means that calling:\n * ```js\n * const m = new THREE.Matrix();\n * m.set( 11, 12, 13,\n * 21, 22, 23,\n * 31, 32, 33 );\n * ```\n * will result in the elements array containing:\n * ```js\n * m.elements = [ 11, 21, 31,\n * 12, 22, 32,\n * 13, 23, 33 ];\n * ```\n * and internally all calculations are performed using column-major ordering.\n * However, as the actual ordering makes no difference mathematically and\n * most people are used to thinking about matrices in row-major order, the\n * three.js documentation shows matrices in row-major order. Just bear in\n * mind that if you are reading the source code, you'll have to take the\n * transpose of any matrices outlined here to make sense of the calculations.\n */\nclass Matrix3 {\n\n\t/**\n\t * Constructs a new 3x3 matrix. The arguments are supposed to be\n\t * in row-major order. If no arguments are provided, the constructor\n\t * initializes the matrix as an identity matrix.\n\t *\n\t * @param {number} [n11] - 1-1 matrix element.\n\t * @param {number} [n12] - 1-2 matrix element.\n\t * @param {number} [n13] - 1-3 matrix element.\n\t * @param {number} [n21] - 2-1 matrix element.\n\t * @param {number} [n22] - 2-2 matrix element.\n\t * @param {number} [n23] - 2-3 matrix element.\n\t * @param {number} [n31] - 3-1 matrix element.\n\t * @param {number} [n32] - 3-2 matrix element.\n\t * @param {number} [n33] - 3-3 matrix element.\n\t */\n\tconstructor( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tMatrix3.prototype.isMatrix3 = true;\n\n\t\t/**\n\t\t * A column-major list of matrix values.\n\t\t *\n\t\t * @type {Array}\n\t\t */\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\t/**\n\t * Sets the elements of the matrix.The arguments are supposed to be\n\t * in row-major order.\n\t *\n\t * @param {number} [n11] - 1-1 matrix element.\n\t * @param {number} [n12] - 1-2 matrix element.\n\t * @param {number} [n13] - 1-3 matrix element.\n\t * @param {number} [n21] - 2-1 matrix element.\n\t * @param {number} [n22] - 2-2 matrix element.\n\t * @param {number} [n23] - 2-3 matrix element.\n\t * @param {number} [n31] - 3-1 matrix element.\n\t * @param {number} [n32] - 3-2 matrix element.\n\t * @param {number} [n33] - 3-3 matrix element.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix to the 3x3 identity matrix.\n\t *\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Copies the values of the given matrix to this instance.\n\t *\n\t * @param {Matrix3} m - The matrix to copy.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Extracts the basis of this matrix into the three axis vectors provided.\n\t *\n\t * @param {Vector3} xAxis - The basis's x axis.\n\t * @param {Vector3} yAxis - The basis's y axis.\n\t * @param {Vector3} zAxis - The basis's z axis.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Set this matrix to the upper 3x3 matrix of the given 4x4 matrix.\n\t *\n\t * @param {Matrix4} m - The 4x4 matrix.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Post-multiplies this matrix by the given 3x3 matrix.\n\t *\n\t * @param {Matrix3} m - The matrix to multiply with.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\t/**\n\t * Pre-multiplies this matrix by the given 3x3 matrix.\n\t *\n\t * @param {Matrix3} m - The matrix to multiply with.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\t/**\n\t * Multiples the given 3x3 matrices and stores the result\n\t * in this matrix.\n\t *\n\t * @param {Matrix3} a - The first matrix.\n\t * @param {Matrix3} b - The second matrix.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Multiplies every component of the matrix by the given scalar.\n\t *\n\t * @param {number} s - The scalar.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Computes and returns the determinant of this matrix.\n\t *\n\t * @return {number} The determinant.\n\t */\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\t/**\n\t * Inverts this matrix, using the [analytic method]{@link https://en.wikipedia.org/wiki/Invertible_matrix#Analytic_solution}.\n\t * You can not invert with a determinant of zero. If you attempt this, the method produces\n\t * a zero matrix instead.\n\t *\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Transposes this matrix in place.\n\t *\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Computes the normal matrix which is the inverse transpose of the upper\n\t * left 3x3 portion of the given 4x4 matrix.\n\t *\n\t * @param {Matrix4} matrix4 - The 4x4 matrix.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\n\tgetNormalMatrix( matrix4 ) {\n\n\t\treturn this.setFromMatrix4( matrix4 ).invert().transpose();\n\n\t}\n\n\t/**\n\t * Transposes this matrix into the supplied array, and returns itself unchanged.\n\t *\n\t * @param {Array} r - An array to store the transposed matrix elements.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Sets the UV transform matrix from offset, repeat, rotation, and center.\n\t *\n\t * @param {number} tx - Offset x.\n\t * @param {number} ty - Offset y.\n\t * @param {number} sx - Repeat x.\n\t * @param {number} sy - Repeat y.\n\t * @param {number} rotation - Rotation, in radians. Positive values rotate counterclockwise.\n\t * @param {number} cx - Center x of rotation.\n\t * @param {number} cy - Center y of rotation\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t * Scales this matrix with the given scalar values.\n\t *\n\t * @param {number} sx - The amount to scale in the X axis.\n\t * @param {number} sy - The amount to scale in the Y axis.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\n\tscale( sx, sy ) {\n\n\t\tthis.premultiply( _m3.makeScale( sx, sy ) );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Rotates this matrix by the given angle.\n\t *\n\t * @param {number} theta - The rotation in radians.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\n\trotate( theta ) {\n\n\t\tthis.premultiply( _m3.makeRotation( - theta ) );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Translates this matrix by the given scalar values.\n\t *\n\t * @param {number} tx - The amount to translate in the X axis.\n\t * @param {number} ty - The amount to translate in the Y axis.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a 2D translation transform.\n\t *\n\t * @param {number|Vector2} x - The amount to translate in the X axis or alternatively a translation vector.\n\t * @param {number} y - The amount to translate in the Y axis.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a 2D rotational transformation.\n\t *\n\t * @param {number} theta - The rotation in radians.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a 2D scale transform.\n\t *\n\t * @param {number} x - The amount to scale in the X axis.\n\t * @param {number} y - The amount to scale in the Y axis.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t * Returns `true` if this matrix is equal with the given one.\n\t *\n\t * @param {Matrix3} matrix - The matrix to test for equality.\n\t * @return {boolean} Whether this matrix is equal with the given one.\n\t */\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\t/**\n\t * Sets the elements of the matrix from the given array.\n\t *\n\t * @param {Array} array - The matrix elements in column-major order.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Matrix3} A reference to this matrix.\n\t */\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\t/**\n\t * Writes the elements of this matrix to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the matrix elements in column-major order.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The matrix elements in column-major order.\n\t */\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\t/**\n\t * Returns a matrix with copied values from this instance.\n\t *\n\t * @return {Matrix3} A clone of this instance.\n\t */\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\nconst LINEAR_REC709_TO_XYZ = /*@__PURE__*/ new Matrix3().set(\n\t0.4123908, 0.3575843, 0.1804808,\n\t0.2126390, 0.7151687, 0.0721923,\n\t0.0193308, 0.1191948, 0.9505322\n);\n\nconst XYZ_TO_LINEAR_REC709 = /*@__PURE__*/ new Matrix3().set(\n\t3.2409699, -1.5373832, -0.4986108,\n\t-0.9692436, 1.8759675, 0.0415551,\n\t0.0556301, -0.203977, 1.0569715\n);\n\nfunction createColorManagement() {\n\n\tconst ColorManagement = {\n\n\t\tenabled: true,\n\n\t\tworkingColorSpace: LinearSRGBColorSpace,\n\n\t\t/**\n\t\t * Implementations of supported color spaces.\n\t\t *\n\t\t * Required:\n\t\t *\t- primaries: chromaticity coordinates [ rx ry gx gy bx by ]\n\t\t *\t- whitePoint: reference white [ x y ]\n\t\t *\t- transfer: transfer function (pre-defined)\n\t\t *\t- toXYZ: Matrix3 RGB to XYZ transform\n\t\t *\t- fromXYZ: Matrix3 XYZ to RGB transform\n\t\t *\t- luminanceCoefficients: RGB luminance coefficients\n\t\t *\n\t\t * Optional:\n\t\t * - outputColorSpaceConfig: { drawingBufferColorSpace: ColorSpace, toneMappingMode: 'extended' | 'standard' }\n\t\t * - workingColorSpaceConfig: { unpackColorSpace: ColorSpace }\n\t\t *\n\t\t * Reference:\n\t\t * - https://www.russellcottrell.com/photo/matrixCalculator.htm\n\t\t */\n\t\tspaces: {},\n\n\t\tconvert: function ( color, sourceColorSpace, targetColorSpace ) {\n\n\t\t\tif ( this.enabled === false || sourceColorSpace === targetColorSpace || ! sourceColorSpace || ! targetColorSpace ) {\n\n\t\t\t\treturn color;\n\n\t\t\t}\n\n\t\t\tif ( this.spaces[ sourceColorSpace ].transfer === SRGBTransfer ) {\n\n\t\t\t\tcolor.r = SRGBToLinear( color.r );\n\t\t\t\tcolor.g = SRGBToLinear( color.g );\n\t\t\t\tcolor.b = SRGBToLinear( color.b );\n\n\t\t\t}\n\n\t\t\tif ( this.spaces[ sourceColorSpace ].primaries !== this.spaces[ targetColorSpace ].primaries ) {\n\n\t\t\t\tcolor.applyMatrix3( this.spaces[ sourceColorSpace ].toXYZ );\n\t\t\t\tcolor.applyMatrix3( this.spaces[ targetColorSpace ].fromXYZ );\n\n\t\t\t}\n\n\t\t\tif ( this.spaces[ targetColorSpace ].transfer === SRGBTransfer ) {\n\n\t\t\t\tcolor.r = LinearToSRGB( color.r );\n\t\t\t\tcolor.g = LinearToSRGB( color.g );\n\t\t\t\tcolor.b = LinearToSRGB( color.b );\n\n\t\t\t}\n\n\t\t\treturn color;\n\n\t\t},\n\n\t\tworkingToColorSpace: function ( color, targetColorSpace ) {\n\n\t\t\treturn this.convert( color, this.workingColorSpace, targetColorSpace );\n\n\t\t},\n\n\t\tcolorSpaceToWorking: function ( color, sourceColorSpace ) {\n\n\t\t\treturn this.convert( color, sourceColorSpace, this.workingColorSpace );\n\n\t\t},\n\n\t\tgetPrimaries: function ( colorSpace ) {\n\n\t\t\treturn this.spaces[ colorSpace ].primaries;\n\n\t\t},\n\n\t\tgetTransfer: function ( colorSpace ) {\n\n\t\t\tif ( colorSpace === NoColorSpace ) return LinearTransfer;\n\n\t\t\treturn this.spaces[ colorSpace ].transfer;\n\n\t\t},\n\n\t\tgetToneMappingMode: function ( colorSpace ) {\n\n\t\t\treturn this.spaces[ colorSpace ].outputColorSpaceConfig.toneMappingMode || 'standard';\n\n\t\t},\n\n\t\tgetLuminanceCoefficients: function ( target, colorSpace = this.workingColorSpace ) {\n\n\t\t\treturn target.fromArray( this.spaces[ colorSpace ].luminanceCoefficients );\n\n\t\t},\n\n\t\tdefine: function ( colorSpaces ) {\n\n\t\t\tObject.assign( this.spaces, colorSpaces );\n\n\t\t},\n\n\t\t// Internal APIs\n\n\t\t_getMatrix: function ( targetMatrix, sourceColorSpace, targetColorSpace ) {\n\n\t\t\treturn targetMatrix\n\t\t\t\t.copy( this.spaces[ sourceColorSpace ].toXYZ )\n\t\t\t\t.multiply( this.spaces[ targetColorSpace ].fromXYZ );\n\n\t\t},\n\n\t\t_getDrawingBufferColorSpace: function ( colorSpace ) {\n\n\t\t\treturn this.spaces[ colorSpace ].outputColorSpaceConfig.drawingBufferColorSpace;\n\n\t\t},\n\n\t\t_getUnpackColorSpace: function ( colorSpace = this.workingColorSpace ) {\n\n\t\t\treturn this.spaces[ colorSpace ].workingColorSpaceConfig.unpackColorSpace;\n\n\t\t},\n\n\t\t// Deprecated\n\n\t\tfromWorkingColorSpace: function ( color, targetColorSpace ) {\n\n\t\t\twarnOnce( 'THREE.ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace().' ); // @deprecated, r177\n\n\t\t\treturn ColorManagement.workingToColorSpace( color, targetColorSpace );\n\n\t\t},\n\n\t\ttoWorkingColorSpace: function ( color, sourceColorSpace ) {\n\n\t\t\twarnOnce( 'THREE.ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking().' ); // @deprecated, r177\n\n\t\t\treturn ColorManagement.colorSpaceToWorking( color, sourceColorSpace );\n\n\t\t},\n\n\t};\n\n\t/******************************************************************************\n\t * sRGB definitions\n\t */\n\n\tconst REC709_PRIMARIES = [ 0.640, 0.330, 0.300, 0.600, 0.150, 0.060 ];\n\tconst REC709_LUMINANCE_COEFFICIENTS = [ 0.2126, 0.7152, 0.0722 ];\n\tconst D65 = [ 0.3127, 0.3290 ];\n\n\tColorManagement.define( {\n\n\t\t[ LinearSRGBColorSpace ]: {\n\t\t\tprimaries: REC709_PRIMARIES,\n\t\t\twhitePoint: D65,\n\t\t\ttransfer: LinearTransfer,\n\t\t\ttoXYZ: LINEAR_REC709_TO_XYZ,\n\t\t\tfromXYZ: XYZ_TO_LINEAR_REC709,\n\t\t\tluminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS,\n\t\t\tworkingColorSpaceConfig: { unpackColorSpace: SRGBColorSpace },\n\t\t\toutputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace }\n\t\t},\n\n\t\t[ SRGBColorSpace ]: {\n\t\t\tprimaries: REC709_PRIMARIES,\n\t\t\twhitePoint: D65,\n\t\t\ttransfer: SRGBTransfer,\n\t\t\ttoXYZ: LINEAR_REC709_TO_XYZ,\n\t\t\tfromXYZ: XYZ_TO_LINEAR_REC709,\n\t\t\tluminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS,\n\t\t\toutputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace }\n\t\t},\n\n\t} );\n\n\treturn ColorManagement;\n\n}\n\nconst ColorManagement = /*@__PURE__*/ createColorManagement();\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\n/**\n * A class containing utility functions for images.\n *\n * @hideconstructor\n */\nclass ImageUtils {\n\n\t/**\n\t * Returns a data URI containing a representation of the given image.\n\t *\n\t * @param {(HTMLImageElement|HTMLCanvasElement)} image - The image object.\n\t * @param {string} [type='image/png'] - Indicates the image format.\n\t * @return {string} The data URI.\n\t */\n\tstatic getDataURL( image, type = 'image/png' ) {\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\treturn canvas.toDataURL( type );\n\n\t}\n\n\t/**\n\t * Converts the given sRGB image data to linear color space.\n\t *\n\t * @param {(HTMLImageElement|HTMLCanvasElement|ImageBitmap|Object)} image - The image object.\n\t * @return {HTMLCanvasElement|Object} The converted image.\n\t */\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\n/**\n * Represents the data source of a texture.\n *\n * The main purpose of this class is to decouple the data definition from the texture\n * definition so the same data can be used with multiple texture instances.\n */\nclass Source {\n\n\t/**\n\t * Constructs a new video texture.\n\t *\n\t * @param {any} [data=null] - The data definition of a texture.\n\t */\n\tconstructor( data = null ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSource = true;\n\n\t\t/**\n\t\t * The ID of the source.\n\t\t *\n\t\t * @name Source#id\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tObject.defineProperty( this, 'id', { value: _sourceId ++ } );\n\n\t\t/**\n\t\t * The UUID of the source.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t\t/**\n\t\t * The data definition of a texture.\n\t\t *\n\t\t * @type {any}\n\t\t */\n\t\tthis.data = data;\n\n\t\t/**\n\t\t * This property is only relevant when {@link Source#needsUpdate} is set to `true` and\n\t\t * provides more control on how texture data should be processed. When `dataReady` is set\n\t\t * to `false`, the engine performs the memory allocation (if necessary) but does not transfer\n\t\t * the data into the GPU memory.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.dataReady = true;\n\n\t\t/**\n\t\t * This starts at `0` and counts how many times {@link Source#needsUpdate} is set to `true`.\n\t\t *\n\t\t * @type {number}\n\t\t * @readonly\n\t\t * @default 0\n\t\t */\n\t\tthis.version = 0;\n\n\t}\n\n\t/**\n\t * Returns the dimensions of the source into the given target vector.\n\t *\n\t * @param {(Vector2|Vector3)} target - The target object the result is written into.\n\t * @return {(Vector2|Vector3)} The dimensions of the source.\n\t */\n\tgetSize( target ) {\n\n\t\tconst data = this.data;\n\n\t\tif ( ( typeof HTMLVideoElement !== 'undefined' ) && ( data instanceof HTMLVideoElement ) ) {\n\n\t\t\ttarget.set( data.videoWidth, data.videoHeight, 0 );\n\n\t\t} else if ( data instanceof VideoFrame ) {\n\n\t\t\ttarget.set( data.displayHeight, data.displayWidth, 0 );\n\n\t\t} else if ( data !== null ) {\n\n\t\t\ttarget.set( data.width, data.height, data.depth || 0 );\n\n\t\t} else {\n\n\t\t\ttarget.set( 0, 0, 0 );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\t/**\n\t * When the property is set to `true`, the engine allocates the memory\n\t * for the texture (if necessary) and triggers the actual texture upload\n\t * to the GPU next time the source is used.\n\t *\n\t * @type {boolean}\n\t * @default false\n\t * @param {boolean} value\n\t */\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\t/**\n\t * Serializes the source into JSON.\n\t *\n\t * @param {?(Object|string)} meta - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized source.\n\t * @see {@link ObjectLoader#parse}\n\t */\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\nconst _tempVec3 = /*@__PURE__*/ new Vector3();\n\n/**\n * Base class for all textures.\n *\n * Note: After the initial use of a texture, its dimensions, format, and type\n * cannot be changed. Instead, call {@link Texture#dispose} on the texture and instantiate a new one.\n *\n * @augments EventDispatcher\n */\nclass Texture extends EventDispatcher {\n\n\t/**\n\t * Constructs a new texture.\n\t *\n\t * @param {?Object} [image=Texture.DEFAULT_IMAGE] - The image holding the texture data.\n\t * @param {number} [mapping=Texture.DEFAULT_MAPPING] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=LinearFilter] - The mag filter value.\n\t * @param {number} [minFilter=LinearMipmapLinearFilter] - The min filter value.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t * @param {string} [colorSpace=NoColorSpace] - The color space.\n\t */\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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isTexture = true;\n\n\t\t/**\n\t\t * The ID of the texture.\n\t\t *\n\t\t * @name Texture#id\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tObject.defineProperty( this, 'id', { value: _textureId ++ } );\n\n\t\t/**\n\t\t * The UUID of the material.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t\t/**\n\t\t * The name of the material.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The data definition of a texture. A reference to the data source can be\n\t\t * shared across textures. This is often useful in context of spritesheets\n\t\t * where multiple textures render the same data but with different texture\n\t\t * transformations.\n\t\t *\n\t\t * @type {Source}\n\t\t */\n\t\tthis.source = new Source( image );\n\n\t\t/**\n\t\t * An array holding user-defined mipmaps.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.mipmaps = [];\n\n\t\t/**\n\t\t * How the texture is applied to the object. The value `UVMapping`\n\t\t * is the default, where texture or uv coordinates are used to apply the map.\n\t\t *\n\t\t * @type {(UVMapping|CubeReflectionMapping|CubeRefractionMapping|EquirectangularReflectionMapping|EquirectangularRefractionMapping|CubeUVReflectionMapping)}\n\t\t * @default UVMapping\n\t\t*/\n\t\tthis.mapping = mapping;\n\n\t\t/**\n\t\t * Lets you select the uv attribute to map the texture to. `0` for `uv`,\n\t\t * `1` for `uv1`, `2` for `uv2` and `3` for `uv3`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.channel = 0;\n\n\t\t/**\n\t\t * This defines how the texture is wrapped horizontally and corresponds to\n\t\t * *U* in UV mapping.\n\t\t *\n\t\t * @type {(RepeatWrapping|ClampToEdgeWrapping|MirroredRepeatWrapping)}\n\t\t * @default ClampToEdgeWrapping\n\t\t */\n\t\tthis.wrapS = wrapS;\n\n\t\t/**\n\t\t * This defines how the texture is wrapped horizontally and corresponds to\n\t\t * *V* in UV mapping.\n\t\t *\n\t\t * @type {(RepeatWrapping|ClampToEdgeWrapping|MirroredRepeatWrapping)}\n\t\t * @default ClampToEdgeWrapping\n\t\t */\n\t\tthis.wrapT = wrapT;\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers more than one pixel.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default LinearFilter\n\t\t */\n\t\tthis.magFilter = magFilter;\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers less than one pixel.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default LinearMipmapLinearFilter\n\t\t */\n\t\tthis.minFilter = minFilter;\n\n\t\t/**\n\t\t * The number of samples taken along the axis through the pixel that has the\n\t\t * highest density of texels. By default, this value is `1`. A higher value\n\t\t * gives a less blurry result than a basic mipmap, at the cost of more\n\t\t * texture samples being used.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.anisotropy = anisotropy;\n\n\t\t/**\n\t\t * The format of the texture.\n\t\t *\n\t\t * @type {number}\n\t\t * @default RGBAFormat\n\t\t */\n\t\tthis.format = format;\n\n\t\t/**\n\t\t * The default internal format is derived from {@link Texture#format} and {@link Texture#type} and\n\t\t * defines how the texture data is going to be stored on the GPU.\n\t\t *\n\t\t * This property allows to overwrite the default format.\n\t\t *\n\t\t * @type {?string}\n\t\t * @default null\n\t\t */\n\t\tthis.internalFormat = null;\n\n\t\t/**\n\t\t * The data type of the texture.\n\t\t *\n\t\t * @type {number}\n\t\t * @default UnsignedByteType\n\t\t */\n\t\tthis.type = type;\n\n\t\t/**\n\t\t * How much a single repetition of the texture is offset from the beginning,\n\t\t * in each direction U and V. Typical range is `0.0` to `1.0`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (0,0)\n\t\t */\n\t\tthis.offset = new Vector2( 0, 0 );\n\n\t\t/**\n\t\t * How many times the texture is repeated across the surface, in each\n\t\t * direction U and V. If repeat is set greater than `1` in either direction,\n\t\t * the corresponding wrap parameter should also be set to `RepeatWrapping`\n\t\t * or `MirroredRepeatWrapping` to achieve the desired tiling effect.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.repeat = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * The point around which rotation occurs. A value of `(0.5, 0.5)` corresponds\n\t\t * to the center of the texture. Default is `(0, 0)`, the lower left.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (0,0)\n\t\t */\n\t\tthis.center = new Vector2( 0, 0 );\n\n\t\t/**\n\t\t * How much the texture is rotated around the center point, in radians.\n\t\t * Positive values are counter-clockwise.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.rotation = 0;\n\n\t\t/**\n\t\t * Whether to update the texture's uv-transformation {@link Texture#matrix}\n\t\t * from the properties {@link Texture#offset}, {@link Texture#repeat},\n\t\t * {@link Texture#rotation}, and {@link Texture#center}.\n\t\t *\n\t\t * Set this to `false` if you are specifying the uv-transform matrix directly.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.matrixAutoUpdate = true;\n\n\t\t/**\n\t\t * The uv-transformation matrix of the texture.\n\t\t *\n\t\t * @type {Matrix3}\n\t\t */\n\t\tthis.matrix = new Matrix3();\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Set this to `false` if you are creating mipmaps manually.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.generateMipmaps = true;\n\n\t\t/**\n\t\t * If set to `true`, the alpha channel, if present, is multiplied into the\n\t\t * color channels when the texture is uploaded to the GPU.\n\t\t *\n\t\t * Note that this property has no effect when using `ImageBitmap`. You need to\n\t\t * configure premultiply alpha on bitmap creation instead.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.premultiplyAlpha = false;\n\n\t\t/**\n\t\t * If set to `true`, the texture is flipped along the vertical axis when\n\t\t * uploaded to the GPU.\n\t\t *\n\t\t * Note that this property has no effect when using `ImageBitmap`. You need to\n\t\t * configure the flip on bitmap creation instead.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.flipY = true;\n\n\t\t/**\n\t\t * Specifies the alignment requirements for the start of each pixel row in memory.\n\t\t * The allowable values are `1` (byte-alignment), `2` (rows aligned to even-numbered bytes),\n\t\t * `4` (word-alignment), and `8` (rows start on double-word boundaries).\n\t\t *\n\t\t * @type {number}\n\t\t * @default 4\n\t\t */\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\t/**\n\t\t * Textures containing color data should be annotated with `SRGBColorSpace` or `LinearSRGBColorSpace`.\n\t\t *\n\t\t * @type {string}\n\t\t * @default NoColorSpace\n\t\t */\n\t\tthis.colorSpace = colorSpace;\n\n\t\t/**\n\t\t * An object that can be used to store custom data about the texture. It\n\t\t * should not hold references to functions as these will not be cloned.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.userData = {};\n\n\t\t/**\n\t\t * This can be used to only update a subregion or specific rows of the texture (for example, just the\n\t\t * first 3 rows). Use the `addUpdateRange()` function to add ranges to this array.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.updateRanges = [];\n\n\t\t/**\n\t\t * This starts at `0` and counts how many times {@link Texture#needsUpdate} is set to `true`.\n\t\t *\n\t\t * @type {number}\n\t\t * @readonly\n\t\t * @default 0\n\t\t */\n\t\tthis.version = 0;\n\n\t\t/**\n\t\t * A callback function, called when the texture is updated (e.g., when\n\t\t * {@link Texture#needsUpdate} has been set to true and then the texture is used).\n\t\t *\n\t\t * @type {?Function}\n\t\t * @default null\n\t\t */\n\t\tthis.onUpdate = null;\n\n\t\t/**\n\t\t * An optional back reference to the textures render target.\n\t\t *\n\t\t * @type {?(RenderTarget|WebGLRenderTarget)}\n\t\t * @default null\n\t\t */\n\t\tthis.renderTarget = null;\n\n\t\t/**\n\t\t * Indicates whether a texture belongs to a render target or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default false\n\t\t */\n\t\tthis.isRenderTargetTexture = false;\n\n\t\t/**\n\t\t * Indicates if a texture should be handled like a texture array.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default false\n\t\t */\n\t\tthis.isArrayTexture = image && image.depth && image.depth > 1 ? true : false;\n\n\t\t/**\n\t\t * Indicates whether this texture should be processed by `PMREMGenerator` or not\n\t\t * (only relevant for render target textures).\n\t\t *\n\t\t * @type {number}\n\t\t * @readonly\n\t\t * @default 0\n\t\t */\n\t\tthis.pmremVersion = 0;\n\n\t}\n\n\t/**\n\t * The width of the texture in pixels.\n\t */\n\tget width() {\n\n\t\treturn this.source.getSize( _tempVec3 ).x;\n\n\t}\n\n\t/**\n\t * The height of the texture in pixels.\n\t */\n\tget height() {\n\n\t\treturn this.source.getSize( _tempVec3 ).y;\n\n\t}\n\n\t/**\n\t * The depth of the texture in pixels.\n\t */\n\tget depth() {\n\n\t\treturn this.source.getSize( _tempVec3 ).z;\n\n\t}\n\n\t/**\n\t * The image object holding the texture data.\n\t *\n\t * @type {?Object}\n\t */\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\t/**\n\t * Updates the texture transformation matrix from the from the properties {@link Texture#offset},\n\t * {@link Texture#repeat}, {@link Texture#rotation}, and {@link Texture#center}.\n\t */\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\t/**\n\t * Adds a range of data in the data texture to be updated on the GPU.\n\t *\n\t * @param {number} start - Position at which to start update.\n\t * @param {number} count - The number of components to update.\n\t */\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\t/**\n\t * Clears the update ranges.\n\t */\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\t/**\n\t * Returns a new texture with copied values from this instance.\n\t *\n\t * @return {Texture} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the values of the given texture to this instance.\n\t *\n\t * @param {Texture} source - The texture to copy.\n\t * @return {Texture} A reference to this instance.\n\t */\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.renderTarget = source.renderTarget;\n\t\tthis.isRenderTargetTexture = source.isRenderTargetTexture;\n\t\tthis.isArrayTexture = source.isArrayTexture;\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\t/**\n\t * Sets this texture's properties based on `values`.\n\t * @param {Object} values - A container with texture parameters.\n\t */\n\tsetValues( values ) {\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.Texture.setValues(): 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.Texture.setValues(): property '${ key }' does not exist.` );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( ( currentValue && newValue ) && ( currentValue.isVector2 && newValue.isVector2 ) ) {\n\n\t\t\t\tcurrentValue.copy( newValue );\n\n\t\t\t} else if ( ( currentValue && newValue ) && ( currentValue.isVector3 && newValue.isVector3 ) ) {\n\n\t\t\t\tcurrentValue.copy( newValue );\n\n\t\t\t} else if ( ( currentValue && newValue ) && ( currentValue.isMatrix3 && newValue.isMatrix3 ) ) {\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\t/**\n\t * Serializes the texture into JSON.\n\t *\n\t * @param {?(Object|string)} meta - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized texture.\n\t * @see {@link ObjectLoader#parse}\n\t */\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.7,\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t *\n\t * @fires Texture#dispose\n\t */\n\tdispose() {\n\n\t\t/**\n\t\t * Fires when the texture has been disposed of.\n\t\t *\n\t\t * @event Texture#dispose\n\t\t * @type {Object}\n\t\t */\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\t/**\n\t * Transforms the given uv vector with the textures uv transformation matrix.\n\t *\n\t * @param {Vector2} uv - The uv vector.\n\t * @return {Vector2} The transformed uv vector.\n\t */\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\t/**\n\t * Setting this property to `true` indicates the engine the texture\n\t * must be updated in the next render. This triggers a texture upload\n\t * to the GPU and ensures correct texture parameter configuration.\n\t *\n\t * @type {boolean}\n\t * @default false\n\t * @param {boolean} value\n\t */\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\t/**\n\t * Setting this property to `true` indicates the engine the PMREM\n\t * must be regenerated.\n\t *\n\t * @type {boolean}\n\t * @default false\n\t * @param {boolean} value\n\t */\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\n/**\n * The default image for all textures.\n *\n * @static\n * @type {?Image}\n * @default null\n */\nTexture.DEFAULT_IMAGE = null;\n\n/**\n * The default mapping for all textures.\n *\n * @static\n * @type {number}\n * @default UVMapping\n */\nTexture.DEFAULT_MAPPING = UVMapping;\n\n/**\n * The default anisotropy value for all textures.\n *\n * @static\n * @type {number}\n * @default 1\n */\nTexture.DEFAULT_ANISOTROPY = 1;\n\n/**\n * Class representing a 4D vector. A 4D vector is an ordered quadruplet of numbers\n * (labeled x, y, z and w), which can be used to represent a number of things, such as:\n *\n * - A point in 4D space.\n * - A direction and length in 4D space. In three.js the length will\n * always be the Euclidean distance(straight-line distance) from `(0, 0, 0, 0)` to `(x, y, z, w)`\n * and the direction is also measured from `(0, 0, 0, 0)` towards `(x, y, z, w)`.\n * - Any arbitrary ordered quadruplet of numbers.\n *\n * There are other things a 4D vector can be used to represent, however these\n * are the most common uses in *three.js*.\n *\n * Iterating through a vector instance will yield its components `(x, y, z, w)` in\n * the corresponding order.\n * ```js\n * const a = new THREE.Vector4( 0, 1, 0, 0 );\n *\n * //no arguments; will be initialised to (0, 0, 0, 1)\n * const b = new THREE.Vector4( );\n *\n * const d = a.dot( b );\n * ```\n */\nclass Vector4 {\n\n\t/**\n\t * Constructs a new 4D vector.\n\t *\n\t * @param {number} [x=0] - The x value of this vector.\n\t * @param {number} [y=0] - The y value of this vector.\n\t * @param {number} [z=0] - The z value of this vector.\n\t * @param {number} [w=1] - The w value of this vector.\n\t */\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tVector4.prototype.isVector4 = true;\n\n\t\t/**\n\t\t * The x value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.x = x;\n\n\t\t/**\n\t\t * The y value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.y = y;\n\n\t\t/**\n\t\t * The z value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.z = z;\n\n\t\t/**\n\t\t * The w value of this vector.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.w = w;\n\n\t}\n\n\t/**\n\t * Alias for {@link Vector4#z}.\n\t *\n\t * @type {number}\n\t */\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\t/**\n\t * Alias for {@link Vector4#w}.\n\t *\n\t * @type {number}\n\t */\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\t/**\n\t * Sets the vector components.\n\t *\n\t * @param {number} x - The value of the x component.\n\t * @param {number} y - The value of the y component.\n\t * @param {number} z - The value of the z component.\n\t * @param {number} w - The value of the w component.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components to the same value.\n\t *\n\t * @param {number} scalar - The value to set for all vector components.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector's x component to the given value\n\t *\n\t * @param {number} x - The value to set.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the vector's y component to the given value\n\t *\n\t * @param {number} y - The value to set.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the vector's z component to the given value\n\t *\n\t * @param {number} z - The value to set.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the vector's w component to the given value\n\t *\n\t * @param {number} w - The value to set.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tsetW( w ) {\n\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Allows to set a vector component with an index.\n\t *\n\t * @param {number} index - The component index. `0` equals to x, `1` equals to y,\n\t * `2` equals to z, `3` equals to w.\n\t * @param {number} value - The value to set.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Returns the value of the vector component which matches the given index.\n\t *\n\t * @param {number} index - The component index. `0` equals to x, `1` equals to y,\n\t * `2` equals to z, `3` equals to w.\n\t * @return {number} A vector component value.\n\t */\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\t/**\n\t * Returns a new vector with copied values from this instance.\n\t *\n\t * @return {Vector4} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z, this.w );\n\n\t}\n\n\t/**\n\t * Copies the values of the given vector to this instance.\n\t *\n\t * @param {Vector3|Vector4} v - The vector to copy.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vector to this instance.\n\t *\n\t * @param {Vector4} v - The vector to add.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given scalar value to all components of this instance.\n\t *\n\t * @param {number} s - The scalar to add.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vectors and stores the result in this instance.\n\t *\n\t * @param {Vector4} a - The first vector.\n\t * @param {Vector4} b - The second vector.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Adds the given vector scaled by the given factor to this instance.\n\t *\n\t * @param {Vector4} v - The vector.\n\t * @param {number} s - The factor that scales `v`.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given vector from this instance.\n\t *\n\t * @param {Vector4} v - The vector to subtract.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given scalar value from all components of this instance.\n\t *\n\t * @param {number} s - The scalar to subtract.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Subtracts the given vectors and stores the result in this instance.\n\t *\n\t * @param {Vector4} a - The first vector.\n\t * @param {Vector4} b - The second vector.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies the given vector with this instance.\n\t *\n\t * @param {Vector4} v - The vector to multiply.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies the given scalar value with all components of this instance.\n\t *\n\t * @param {number} scalar - The scalar to multiply.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Multiplies this vector with the given 4x4 matrix.\n\t *\n\t * @param {Matrix4} m - The 4x4 matrix.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Divides this instance by the given vector.\n\t *\n\t * @param {Vector4} v - The vector to divide.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tdivide( 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\t/**\n\t * Divides this vector by the given scalar.\n\t *\n\t * @param {number} scalar - The scalar to divide.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\t/**\n\t * Sets the x, y and z components of this\n\t * vector to the quaternion's axis and w to the angle.\n\t *\n\t * @param {Quaternion} q - The Quaternion to set.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Sets the x, y and z components of this\n\t * vector to the axis of rotation and w to the angle.\n\t *\n\t * @param {Matrix4} m - A 4x4 matrix of which the upper left 3x3 matrix is a pure rotation matrix.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Sets the vector components to the position elements of the\n\t * given transformation matrix.\n\t *\n\t * @param {Matrix4} m - The 4x4 matrix.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x, y, z or w value is greater than the given vector's x, y, z or w\n\t * value, replace that value with the corresponding min value.\n\t *\n\t * @param {Vector4} v - The vector.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x, y, z or w value is less than the given vector's x, y, z or w\n\t * value, replace that value with the corresponding max value.\n\t *\n\t * @param {Vector4} v - The vector.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * If this vector's x, y, z or w value is greater than the max vector's x, y, z or w\n\t * value, it is replaced by the corresponding value.\n\t * If this vector's x, y, z or w value is less than the min vector's x, y, z or w value,\n\t * it is replaced by the corresponding value.\n\t *\n\t * @param {Vector4} min - The minimum x, y and z values.\n\t * @param {Vector4} max - The maximum x, y and z values in the desired range.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = clamp( this.x, min.x, max.x );\n\t\tthis.y = clamp( this.y, min.y, max.y );\n\t\tthis.z = clamp( this.z, min.z, max.z );\n\t\tthis.w = clamp( this.w, min.w, max.w );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * If this vector's x, y, z or w values are greater than the max value, they are\n\t * replaced by the max value.\n\t * If this vector's x, y, z or w values are less than the min value, they are\n\t * replaced by the min value.\n\t *\n\t * @param {number} minVal - The minimum value the components will be clamped to.\n\t * @param {number} maxVal - The maximum value the components will be clamped to.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = clamp( this.x, minVal, maxVal );\n\t\tthis.y = clamp( this.y, minVal, maxVal );\n\t\tthis.z = clamp( this.z, minVal, maxVal );\n\t\tthis.w = clamp( this.w, minVal, maxVal );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * If this vector's length is greater than the max value, it is replaced by\n\t * the max value.\n\t * If this vector's length is less than the min value, it is replaced by the\n\t * min value.\n\t *\n\t * @param {number} min - The minimum value the vector length will be clamped to.\n\t * @param {number} max - The maximum value the vector length will be clamped to.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( clamp( length, min, max ) );\n\n\t}\n\n\t/**\n\t * The components of this vector are rounded down to the nearest integer value.\n\t *\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded up to the nearest integer value.\n\t *\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded to the nearest integer value\n\t *\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * The components of this vector are rounded towards zero (up if negative,\n\t * down if positive) to an integer value.\n\t *\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Inverts this vector - i.e. sets x = -x, y = -y, z = -z, w = -w.\n\t *\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Calculates the dot product of the given vector with this instance.\n\t *\n\t * @param {Vector4} v - The vector to compute the dot product with.\n\t * @return {number} The result of the dot product.\n\t */\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\t/**\n\t * Computes the square of the Euclidean length (straight-line length) from\n\t * (0, 0, 0, 0) to (x, y, z, w). If you are comparing the lengths of vectors, you should\n\t * compare the length squared instead as it is slightly more efficient to calculate.\n\t *\n\t * @return {number} The square length of this vector.\n\t */\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\t/**\n\t * Computes the Euclidean length (straight-line length) from (0, 0, 0, 0) to (x, y, z, w).\n\t *\n\t * @return {number} The length of this vector.\n\t */\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\t/**\n\t * Computes the Manhattan length of this vector.\n\t *\n\t * @return {number} The length of this vector.\n\t */\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\t/**\n\t * Converts this vector to a unit vector - that is, sets it equal to a vector\n\t * with the same direction as this one, but with a vector length of `1`.\n\t *\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\t/**\n\t * Sets this vector to a vector with the same direction as this one, but\n\t * with the specified length.\n\t *\n\t * @param {number} length - The new length of this vector.\n\t * @return {Vector4} A reference to this vector.\n\t */\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\t/**\n\t * Linearly interpolates between the given vector and this instance, where\n\t * alpha is the percent distance along the line - alpha = 0 will be this\n\t * vector, and alpha = 1 will be the given one.\n\t *\n\t * @param {Vector4} v - The vector to interpolate towards.\n\t * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Linearly interpolates between the given vectors, where alpha is the percent\n\t * distance along the line - alpha = 0 will be first vector, and alpha = 1 will\n\t * be the second one. The result is stored in this instance.\n\t *\n\t * @param {Vector4} v1 - The first vector.\n\t * @param {Vector4} v2 - The second vector.\n\t * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Returns `true` if this vector is equal with the given one.\n\t *\n\t * @param {Vector4} v - The vector to test for equality.\n\t * @return {boolean} Whether this vector is equal with the given one.\n\t */\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\t/**\n\t * Sets this vector's x value to be `array[ offset ]`, y value to be `array[ offset + 1 ]`,\n\t * z value to be `array[ offset + 2 ]`, w value to be `array[ offset + 3 ]`.\n\t *\n\t * @param {Array} array - An array holding the vector component values.\n\t * @param {number} [offset=0] - The offset into the array.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Writes the components of this vector to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the vector components.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The vector components.\n\t */\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\t/**\n\t * Sets the components of this vector from the given buffer attribute.\n\t *\n\t * @param {BufferAttribute} attribute - The buffer attribute holding vector data.\n\t * @param {number} index - The index into the attribute.\n\t * @return {Vector4} A reference to this vector.\n\t */\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\t/**\n\t * Sets each component of this vector to a pseudo-random value between `0` and\n\t * `1`, excluding `1`.\n\t *\n\t * @return {Vector4} A reference to this vector.\n\t */\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 * A render target is a buffer where the video card draws pixels for a scene\n * that is being rendered in the background. It is used in different effects,\n * such as applying postprocessing to a rendered image before displaying it\n * on the screen.\n *\n * @augments EventDispatcher\n */\nclass RenderTarget extends EventDispatcher {\n\n\t/**\n\t * Render target options.\n\t *\n\t * @typedef {Object} RenderTarget~Options\n\t * @property {boolean} [generateMipmaps=false] - Whether to generate mipmaps or not.\n\t * @property {number} [magFilter=LinearFilter] - The mag filter.\n\t * @property {number} [minFilter=LinearFilter] - The min filter.\n\t * @property {number} [format=RGBAFormat] - The texture format.\n\t * @property {number} [type=UnsignedByteType] - The texture type.\n\t * @property {?string} [internalFormat=null] - The texture's internal format.\n\t * @property {number} [wrapS=ClampToEdgeWrapping] - The texture's uv wrapping mode.\n\t * @property {number} [wrapT=ClampToEdgeWrapping] - The texture's uv wrapping mode.\n\t * @property {number} [anisotropy=1] - The texture's anisotropy value.\n\t * @property {string} [colorSpace=NoColorSpace] - The texture's color space.\n\t * @property {boolean} [depthBuffer=true] - Whether to allocate a depth buffer or not.\n\t * @property {boolean} [stencilBuffer=false] - Whether to allocate a stencil buffer or not.\n\t * @property {boolean} [resolveDepthBuffer=true] - Whether to resolve the depth buffer or not.\n\t * @property {boolean} [resolveStencilBuffer=true] - Whether to resolve the stencil buffer or not.\n\t * @property {?Texture} [depthTexture=null] - Reference to a depth texture.\n\t * @property {number} [samples=0] - The MSAA samples count.\n\t * @property {number} [count=1] - Defines the number of color attachments . Must be at least `1`.\n\t * @property {number} [depth=1] - The texture depth.\n\t * @property {boolean} [multiview=false] - Whether this target is used for multiview rendering.\n\t */\n\n\t/**\n\t * Constructs a new render target.\n\t *\n\t * @param {number} [width=1] - The width of the render target.\n\t * @param {number} [height=1] - The height of the render target.\n\t * @param {RenderTarget~Options} [options] - The configuration object.\n\t */\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper();\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\tdepth: 1,\n\t\t\tmultiview: false\n\t\t}, options );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isRenderTarget = true;\n\n\t\t/**\n\t\t * The width of the render target.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.width = width;\n\n\t\t/**\n\t\t * The height of the render target.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.height = height;\n\n\t\t/**\n\t\t * The depth of the render target.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.depth = options.depth;\n\n\t\t/**\n\t\t * A rectangular area inside the render target's viewport. Fragments that are\n\t\t * outside the area will be discarded.\n\t\t *\n\t\t * @type {Vector4}\n\t\t * @default (0,0,width,height)\n\t\t */\n\t\tthis.scissor = new Vector4( 0, 0, width, height );\n\n\t\t/**\n\t\t * Indicates whether the scissor test should be enabled when rendering into\n\t\t * this render target or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.scissorTest = false;\n\n\t\t/**\n\t\t * A rectangular area representing the render target's viewport.\n\t\t *\n\t\t * @type {Vector4}\n\t\t * @default (0,0,width,height)\n\t\t */\n\t\tthis.viewport = new Vector4( 0, 0, width, height );\n\n\t\tconst image = { width: width, height: height, depth: options.depth };\n\n\t\tconst texture = new Texture( image );\n\n\t\t/**\n\t\t * An array of textures. Each color attachment is represented as a separate texture.\n\t\t * Has at least a single entry for the default color attachment.\n\t\t *\n\t\t * @type {Array}\n\t\t */\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\t\t\tthis.textures[ i ].renderTarget = this;\n\n\t\t}\n\n\t\tthis._setTextureOptions( options );\n\n\t\t/**\n\t\t * Whether to allocate a depth buffer or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.depthBuffer = options.depthBuffer;\n\n\t\t/**\n\t\t * Whether to allocate a stencil buffer or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.stencilBuffer = options.stencilBuffer;\n\n\t\t/**\n\t\t * Whether to resolve the depth buffer or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.resolveDepthBuffer = options.resolveDepthBuffer;\n\n\t\t/**\n\t\t * Whether to resolve the stencil buffer or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.resolveStencilBuffer = options.resolveStencilBuffer;\n\n\t\tthis._depthTexture = null;\n\t\tthis.depthTexture = options.depthTexture;\n\n\t\t/**\n\t\t * The number of MSAA samples.\n\t\t *\n\t\t * A value of `0` disables MSAA.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.samples = options.samples;\n\n\t\t/**\n\t\t * Whether to this target is used in multiview rendering.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.multiview = options.multiview;\n\n\t}\n\n\t_setTextureOptions( options = {} ) {\n\n\t\tconst values = {\n\t\t\tminFilter: LinearFilter,\n\t\t\tgenerateMipmaps: false,\n\t\t\tflipY: false,\n\t\t\tinternalFormat: null\n\t\t};\n\n\t\tif ( options.mapping !== undefined ) values.mapping = options.mapping;\n\t\tif ( options.wrapS !== undefined ) values.wrapS = options.wrapS;\n\t\tif ( options.wrapT !== undefined ) values.wrapT = options.wrapT;\n\t\tif ( options.wrapR !== undefined ) values.wrapR = options.wrapR;\n\t\tif ( options.magFilter !== undefined ) values.magFilter = options.magFilter;\n\t\tif ( options.minFilter !== undefined ) values.minFilter = options.minFilter;\n\t\tif ( options.format !== undefined ) values.format = options.format;\n\t\tif ( options.type !== undefined ) values.type = options.type;\n\t\tif ( options.anisotropy !== undefined ) values.anisotropy = options.anisotropy;\n\t\tif ( options.colorSpace !== undefined ) values.colorSpace = options.colorSpace;\n\t\tif ( options.flipY !== undefined ) values.flipY = options.flipY;\n\t\tif ( options.generateMipmaps !== undefined ) values.generateMipmaps = options.generateMipmaps;\n\t\tif ( options.internalFormat !== undefined ) values.internalFormat = options.internalFormat;\n\n\t\tfor ( let i = 0; i < this.textures.length; i ++ ) {\n\n\t\t\tconst texture = this.textures[ i ];\n\t\t\ttexture.setValues( values );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * The texture representing the default color attachment.\n\t *\n\t * @type {Texture}\n\t */\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\tset depthTexture( current ) {\n\n\t\tif ( this._depthTexture !== null ) this._depthTexture.renderTarget = null;\n\t\tif ( current !== null ) current.renderTarget = this;\n\n\t\tthis._depthTexture = current;\n\n\t}\n\n\t/**\n\t * Instead of saving the depth in a renderbuffer, a texture\n\t * can be used instead which is useful for further processing\n\t * e.g. in context of post-processing.\n\t *\n\t * @type {?DepthTexture}\n\t * @default null\n\t */\n\tget depthTexture() {\n\n\t\treturn this._depthTexture;\n\n\t}\n\n\t/**\n\t * Sets the size of this render target.\n\t *\n\t * @param {number} width - The width.\n\t * @param {number} height - The height.\n\t * @param {number} [depth=1] - The depth.\n\t */\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\t\t\t\tthis.textures[ i ].isArrayTexture = this.textures[ i ].image.depth > 1;\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\t/**\n\t * Returns a new render target with copied values from this instance.\n\t *\n\t * @return {RenderTarget} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the settings of the given render target. This is a structural copy so\n\t * no resources are shared between render targets after the copy. That includes\n\t * all MRT textures and the depth texture.\n\t *\n\t * @param {RenderTarget} source - The render target to copy.\n\t * @return {RenderTarget} A reference to this instance.\n\t */\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\t\t\tthis.textures[ i ].renderTarget = this;\n\n\t\t\t// ensure image object is not shared, see #20328\n\n\t\t\tconst image = Object.assign( {}, source.textures[ i ].image );\n\t\t\tthis.textures[ i ].source = new Source( image );\n\n\t\t}\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t *\n\t * @fires RenderTarget#dispose\n\t */\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\n/**\n * A render target used in context of {@link WebGLRenderer}.\n *\n * @augments RenderTarget\n */\nclass WebGLRenderTarget extends RenderTarget {\n\n\t/**\n\t * Constructs a new 3D render target.\n\t *\n\t * @param {number} [width=1] - The width of the render target.\n\t * @param {number} [height=1] - The height of the render target.\n\t * @param {RenderTarget~Options} [options] - The configuration object.\n\t */\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isWebGLRenderTarget = true;\n\n\t}\n\n}\n\n/**\n * Creates an array of textures directly from raw buffer data.\n *\n * @augments Texture\n */\nclass DataArrayTexture extends Texture {\n\n\t/**\n\t * Constructs a new data array texture.\n\t *\n\t * @param {?TypedArray} [data=null] - The buffer data.\n\t * @param {number} [width=1] - The width of the texture.\n\t * @param {number} [height=1] - The height of the texture.\n\t * @param {number} [depth=1] - The depth of the texture.\n\t */\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\tsuper( null );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isDataArrayTexture = true;\n\n\t\t/**\n\t\t * The image definition of a data texture.\n\t\t *\n\t\t * @type {{data:TypedArray,width:number,height:number,depth:number}}\n\t\t */\n\t\tthis.image = { data, width, height, depth };\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers more than one pixel.\n\t\t *\n\t\t * Overwritten and set to `NearestFilter` by default.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default NearestFilter\n\t\t */\n\t\tthis.magFilter = NearestFilter;\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers less than one pixel.\n\t\t *\n\t\t * Overwritten and set to `NearestFilter` by default.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default NearestFilter\n\t\t */\n\t\tthis.minFilter = NearestFilter;\n\n\t\t/**\n\t\t * This defines how the texture is wrapped in the depth and corresponds to\n\t\t * *W* in UVW mapping.\n\t\t *\n\t\t * @type {(RepeatWrapping|ClampToEdgeWrapping|MirroredRepeatWrapping)}\n\t\t * @default ClampToEdgeWrapping\n\t\t */\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.generateMipmaps = false;\n\n\t\t/**\n\t\t * If set to `true`, the texture is flipped along the vertical axis when\n\t\t * uploaded to the GPU.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flipY = false;\n\n\t\t/**\n\t\t * Specifies the alignment requirements for the start of each pixel row in memory.\n\t\t *\n\t\t * Overwritten and set to `1` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default 1\n\t\t */\n\t\tthis.unpackAlignment = 1;\n\n\t\t/**\n\t\t * A set of all layers which need to be updated in the texture.\n\t\t *\n\t\t * @type {Set}\n\t\t */\n\t\tthis.layerUpdates = new Set();\n\n\t}\n\n\t/**\n\t * Describes that a specific layer of the texture needs to be updated.\n\t * Normally when {@link Texture#needsUpdate} is set to `true`, the\n\t * entire data texture array is sent to the GPU. Marking specific\n\t * layers will only transmit subsets of all mipmaps associated with a\n\t * specific depth in the array which is often much more performant.\n\t *\n\t * @param {number} layerIndex - The layer index that should be updated.\n\t */\n\taddLayerUpdate( layerIndex ) {\n\n\t\tthis.layerUpdates.add( layerIndex );\n\n\t}\n\n\t/**\n\t * Resets the layer updates registry.\n\t */\n\tclearLayerUpdates() {\n\n\t\tthis.layerUpdates.clear();\n\n\t}\n\n}\n\n/**\n * An array render target used in context of {@link WebGLRenderer}.\n *\n * @augments WebGLRenderTarget\n */\nclass WebGLArrayRenderTarget extends WebGLRenderTarget {\n\n\t/**\n\t * Constructs a new array render target.\n\t *\n\t * @param {number} [width=1] - The width of the render target.\n\t * @param {number} [height=1] - The height of the render target.\n\t * @param {number} [depth=1] - The height of the render target.\n\t * @param {RenderTarget~Options} [options] - The configuration object.\n\t */\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isWebGLArrayRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\t/**\n\t\t * Overwritten with a different texture type.\n\t\t *\n\t\t * @type {DataArrayTexture}\n\t\t */\n\t\tthis.texture = new DataArrayTexture( null, width, height, depth );\n\t\tthis._setTextureOptions( options );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\n/**\n * Creates a three-dimensional texture from raw data, with parameters to\n * divide it into width, height, and depth.\n *\n * @augments Texture\n */\nclass Data3DTexture extends Texture {\n\n\t/**\n\t * Constructs a new data array texture.\n\t *\n\t * @param {?TypedArray} [data=null] - The buffer data.\n\t * @param {number} [width=1] - The width of the texture.\n\t * @param {number} [height=1] - The height of the texture.\n\t * @param {number} [depth=1] - The depth of the texture.\n\t */\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 Data3DTexture directly.\n\t\t//\n\t\t//\tconst texture = new THREE.Data3DTexture( 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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isData3DTexture = true;\n\n\t\t/**\n\t\t * The image definition of a data texture.\n\t\t *\n\t\t * @type {{data:TypedArray,width:number,height:number,depth:number}}\n\t\t */\n\t\tthis.image = { data, width, height, depth };\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers more than one pixel.\n\t\t *\n\t\t * Overwritten and set to `NearestFilter` by default.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default NearestFilter\n\t\t */\n\t\tthis.magFilter = NearestFilter;\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers less than one pixel.\n\t\t *\n\t\t * Overwritten and set to `NearestFilter` by default.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default NearestFilter\n\t\t */\n\t\tthis.minFilter = NearestFilter;\n\n\t\t/**\n\t\t * This defines how the texture is wrapped in the depth and corresponds to\n\t\t * *W* in UVW mapping.\n\t\t *\n\t\t * @type {(RepeatWrapping|ClampToEdgeWrapping|MirroredRepeatWrapping)}\n\t\t * @default ClampToEdgeWrapping\n\t\t */\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.generateMipmaps = false;\n\n\t\t/**\n\t\t * If set to `true`, the texture is flipped along the vertical axis when\n\t\t * uploaded to the GPU.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flipY = false;\n\n\t\t/**\n\t\t * Specifies the alignment requirements for the start of each pixel row in memory.\n\t\t *\n\t\t * Overwritten and set to `1` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default 1\n\t\t */\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\n/**\n * A 3D render target used in context of {@link WebGLRenderer}.\n *\n * @augments WebGLRenderTarget\n */\nclass WebGL3DRenderTarget extends WebGLRenderTarget {\n\n\t/**\n\t * Constructs a new 3D render target.\n\t *\n\t * @param {number} [width=1] - The width of the render target.\n\t * @param {number} [height=1] - The height of the render target.\n\t * @param {number} [depth=1] - The height of the render target.\n\t * @param {RenderTarget~Options} [options] - The configuration object.\n\t */\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isWebGL3DRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\t/**\n\t\t * Overwritten with a different texture type.\n\t\t *\n\t\t * @type {Data3DTexture}\n\t\t */\n\t\tthis.texture = new Data3DTexture( null, width, height, depth );\n\t\tthis._setTextureOptions( options );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\n/**\n * Represents an axis-aligned bounding box (AABB) in 3D space.\n */\nclass Box3 {\n\n\t/**\n\t * Constructs a new bounding box.\n\t *\n\t * @param {Vector3} [min=(Infinity,Infinity,Infinity)] - A vector representing the lower boundary of the box.\n\t * @param {Vector3} [max=(-Infinity,-Infinity,-Infinity)] - A vector representing the upper boundary of the box.\n\t */\n\tconstructor( min = new Vector3( + Infinity, + Infinity, + Infinity ), max = new Vector3( - Infinity, - Infinity, - Infinity ) ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isBox3 = true;\n\n\t\t/**\n\t\t * The lower boundary of the box.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.min = min;\n\n\t\t/**\n\t\t * The upper boundary of the box.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.max = max;\n\n\t}\n\n\t/**\n\t * Sets the lower and upper boundaries of this box.\n\t * Please note that this method only copies the values from the given objects.\n\t *\n\t * @param {Vector3} min - The lower boundary of the box.\n\t * @param {Vector3} max - The upper boundary of the box.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Sets the upper and lower bounds of this box so it encloses the position data\n\t * in the given array.\n\t *\n\t * @param {Array} array - An array holding 3D position data.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Sets the upper and lower bounds of this box so it encloses the position data\n\t * in the given buffer attribute.\n\t *\n\t * @param {BufferAttribute} attribute - A buffer attribute holding 3D position data.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Sets the upper and lower bounds of this box so it encloses the position data\n\t * in the given array.\n\t *\n\t * @param {Array} points - An array holding 3D position data as instances of {@link Vector3}.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Centers this box on the given center vector and sets this box's width, height and\n\t * depth to the given size values.\n\t *\n\t * @param {Vector3} center - The center of the box.\n\t * @param {Vector3} size - The x, y and z dimensions of the box.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Computes the world-axis-aligned bounding box for the given 3D object\n\t * (including its children), accounting for the object's, and children's,\n\t * world transforms. The function may result in a larger box than strictly necessary.\n\t *\n\t * @param {Object3D} object - The 3D object to compute the bounding box for.\n\t * @param {boolean} [precise=false] - If set to `true`, the method computes the smallest\n\t * world-axis-aligned bounding box at the expense of more computation.\n\t * @return {Box3} A reference to this bounding box.\n\t */\n\tsetFromObject( object, precise = false ) {\n\n\t\tthis.makeEmpty();\n\n\t\treturn this.expandByObject( object, precise );\n\n\t}\n\n\t/**\n\t * Returns a new box with copied values from this instance.\n\t *\n\t * @return {Box3} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the values of the given box to this instance.\n\t *\n\t * @param {Box3} box - The box to copy.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Makes this box empty which means in encloses a zero space in 3D.\n\t *\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Returns true if this box includes zero points within its bounds.\n\t * Note that a box with equal lower and upper bounds still includes one\n\t * point, the one both bounds share.\n\t *\n\t * @return {boolean} Whether this box is empty or not.\n\t */\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\t/**\n\t * Returns the center point of this box.\n\t *\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The center point.\n\t */\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\t/**\n\t * Returns the dimensions of this box.\n\t *\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The size.\n\t */\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\t/**\n\t * Expands the boundaries of this box to include the given point.\n\t *\n\t * @param {Vector3} point - The point that should be included by the bounding box.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Expands this box equilaterally by the given vector. The width of this\n\t * box will be expanded by the x component of the vector in both\n\t * directions. The height of this box will be expanded by the y component of\n\t * the vector in both directions. The depth of this box will be\n\t * expanded by the z component of the vector in both directions.\n\t *\n\t * @param {Vector3} vector - The vector that should expand the bounding box.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Expands each dimension of the box by the given scalar. If negative, the\n\t * dimensions of the box will be contracted.\n\t *\n\t * @param {number} scalar - The scalar value that should expand the bounding box.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Expands the boundaries of this box to include the given 3D object and\n\t * its children, accounting for the object's, and children's, world\n\t * transforms. The function may result in a larger box than strictly\n\t * necessary (unless the precise parameter is set to true).\n\t *\n\t * @param {Object3D} object - The 3D object that should expand the bounding box.\n\t * @param {boolean} precise - If set to `true`, the method expands the bounding box\n\t * as little as necessary at the expense of more computation.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Returns `true` if the given point lies within or on the boundaries of this box.\n\t *\n\t * @param {Vector3} point - The point to test.\n\t * @return {boolean} Whether the bounding box contains the given point or not.\n\t */\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;\n\n\t}\n\n\t/**\n\t * Returns `true` if this bounding box includes the entirety of the given bounding box.\n\t * If this box and the given one are identical, this function also returns `true`.\n\t *\n\t * @param {Box3} box - The bounding box to test.\n\t * @return {boolean} Whether the bounding box contains the given bounding box or not.\n\t */\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\t/**\n\t * Returns a point as a proportion of this box's width, height and depth.\n\t *\n\t * @param {Vector3} point - A point in 3D space.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} A point as a proportion of this box's width, height and depth.\n\t */\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\t/**\n\t * Returns `true` if the given bounding box intersects with this bounding box.\n\t *\n\t * @param {Box3} box - The bounding box to test.\n\t * @return {boolean} Whether the given bounding box intersects with this bounding box.\n\t */\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;\n\n\t}\n\n\t/**\n\t * Returns `true` if the given bounding sphere intersects with this bounding box.\n\t *\n\t * @param {Sphere} sphere - The bounding sphere to test.\n\t * @return {boolean} Whether the given bounding sphere intersects with this bounding box.\n\t */\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\t/**\n\t * Returns `true` if the given plane intersects with this bounding box.\n\t *\n\t * @param {Plane} plane - The plane to test.\n\t * @return {boolean} Whether the given plane intersects with this bounding box.\n\t */\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\t/**\n\t * Returns `true` if the given triangle intersects with this bounding box.\n\t *\n\t * @param {Triangle} triangle - The triangle to test.\n\t * @return {boolean} Whether the given triangle intersects with this bounding box.\n\t */\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\t/**\n\t * Clamps the given point within the bounds of this box.\n\t *\n\t * @param {Vector3} point - The point to clamp.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The clamped point.\n\t */\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\t/**\n\t * Returns the euclidean distance from any edge of this box to the specified point. If\n\t * the given point lies inside of this box, the distance will be `0`.\n\t *\n\t * @param {Vector3} point - The point to compute the distance to.\n\t * @return {number} The euclidean distance.\n\t */\n\tdistanceToPoint( point ) {\n\n\t\treturn this.clampPoint( point, _vector$b ).distanceTo( point );\n\n\t}\n\n\t/**\n\t * Returns a bounding sphere that encloses this bounding box.\n\t *\n\t * @param {Sphere} target - The target sphere that is used to store the method's result.\n\t * @return {Sphere} The bounding sphere that encloses this bounding box.\n\t */\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\t/**\n\t * Computes the intersection of this bounding box and the given one, setting the upper\n\t * bound of this box to the lesser of the two boxes' upper bounds and the\n\t * lower bound of this box to the greater of the two boxes' lower bounds. If\n\t * there's no overlap, makes this box empty.\n\t *\n\t * @param {Box3} box - The bounding box to intersect with.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Computes the union of this box and another and the given one, setting the upper\n\t * bound of this box to the greater of the two boxes' upper bounds and the\n\t * lower bound of this box to the lesser of the two boxes' lower bounds.\n\t *\n\t * @param {Box3} box - The bounding box that will be unioned with this instance.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Transforms this bounding box by the given 4x4 transformation matrix.\n\t *\n\t * @param {Matrix4} matrix - The transformation matrix.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Adds the given offset to both the upper and lower bounds of this bounding box,\n\t * effectively moving it in 3D space.\n\t *\n\t * @param {Vector3} offset - The offset that should be used to translate the bounding box.\n\t * @return {Box3} A reference to this bounding box.\n\t */\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\t/**\n\t * Returns `true` if this bounding box is equal with the given one.\n\t *\n\t * @param {Box3} box - The box to test for equality.\n\t * @return {boolean} Whether this bounding box is equal with the given one.\n\t */\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n\t/**\n\t * Returns a serialized structure of the bounding box.\n\t *\n\t * @return {Object} Serialized structure with fields representing the object state.\n\t */\n\ttoJSON() {\n\n\t\treturn {\n\t\t\tmin: this.min.toArray(),\n\t\t\tmax: this.max.toArray()\n\t\t};\n\n\t}\n\n\t/**\n\t * Returns a serialized structure of the bounding box.\n\t *\n\t * @param {Object} json - The serialized json to set the box from.\n\t * @return {Box3} A reference to this bounding box.\n\t */\n\tfromJSON( json ) {\n\n\t\tthis.min.fromArray( json.min );\n\t\tthis.max.fromArray( json.max );\n\t\treturn this;\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\n/**\n * An analytical 3D sphere defined by a center and radius. This class is mainly\n * used as a Bounding Sphere for 3D objects.\n */\nclass Sphere {\n\n\t/**\n\t * Constructs a new sphere.\n\t *\n\t * @param {Vector3} [center=(0,0,0)] - The center of the sphere\n\t * @param {number} [radius=-1] - The radius of the sphere.\n\t */\n\tconstructor( center = new Vector3(), radius = -1 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSphere = true;\n\n\t\t/**\n\t\t * The center of the sphere\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.center = center;\n\n\t\t/**\n\t\t * The radius of the sphere.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.radius = radius;\n\n\t}\n\n\t/**\n\t * Sets the sphere's components by copying the given values.\n\t *\n\t * @param {Vector3} center - The center.\n\t * @param {number} radius - The radius.\n\t * @return {Sphere} A reference to this sphere.\n\t */\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\t/**\n\t * Computes the minimum bounding sphere for list of points.\n\t * If the optional center point is given, it is used as the sphere's\n\t * center. Otherwise, the center of the axis-aligned bounding box\n\t * encompassing the points is calculated.\n\t *\n\t * @param {Array} points - A list of points in 3D space.\n\t * @param {Vector3} [optionalCenter] - The center of the sphere.\n\t * @return {Sphere} A reference to this sphere.\n\t */\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\t/**\n\t * Copies the values of the given sphere to this instance.\n\t *\n\t * @param {Sphere} sphere - The sphere to copy.\n\t * @return {Sphere} A reference to this sphere.\n\t */\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\t/**\n\t * Returns `true` if the sphere is empty (the radius set to a negative number).\n\t *\n\t * Spheres with a radius of `0` contain only their center point and are not\n\t * considered to be empty.\n\t *\n\t * @return {boolean} Whether this sphere is empty or not.\n\t */\n\tisEmpty() {\n\n\t\treturn ( this.radius < 0 );\n\n\t}\n\n\t/**\n\t * Makes this sphere empty which means in encloses a zero space in 3D.\n\t *\n\t * @return {Sphere} A reference to this sphere.\n\t */\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\t/**\n\t * Returns `true` if this sphere contains the given point inclusive of\n\t * the surface of the sphere.\n\t *\n\t * @param {Vector3} point - The point to check.\n\t * @return {boolean} Whether this sphere contains the given point or not.\n\t */\n\tcontainsPoint( point ) {\n\n\t\treturn ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) );\n\n\t}\n\n\t/**\n\t * Returns the closest distance from the boundary of the sphere to the\n\t * given point. If the sphere contains the point, the distance will\n\t * be negative.\n\t *\n\t * @param {Vector3} point - The point to compute the distance to.\n\t * @return {number} The distance to the point.\n\t */\n\tdistanceToPoint( point ) {\n\n\t\treturn ( point.distanceTo( this.center ) - this.radius );\n\n\t}\n\n\t/**\n\t * Returns `true` if this sphere intersects with the given one.\n\t *\n\t * @param {Sphere} sphere - The sphere to test.\n\t * @return {boolean} Whether this sphere intersects with the given one or not.\n\t */\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\t/**\n\t * Returns `true` if this sphere intersects with the given box.\n\t *\n\t * @param {Box3} box - The box to test.\n\t * @return {boolean} Whether this sphere intersects with the given box or not.\n\t */\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsSphere( this );\n\n\t}\n\n\t/**\n\t * Returns `true` if this sphere intersects with the given plane.\n\t *\n\t * @param {Plane} plane - The plane to test.\n\t * @return {boolean} Whether this sphere intersects with the given plane or not.\n\t */\n\tintersectsPlane( plane ) {\n\n\t\treturn Math.abs( plane.distanceToPoint( this.center ) ) <= this.radius;\n\n\t}\n\n\t/**\n\t * Clamps a point within the sphere. If the point is outside the sphere, it\n\t * will clamp it to the closest point on the edge of the sphere. Points\n\t * already inside the sphere will not be affected.\n\t *\n\t * @param {Vector3} point - The plane to clamp.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The clamped point.\n\t */\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\t/**\n\t * Returns a bounding box that encloses this sphere.\n\t *\n\t * @param {Box3} target - The target box that is used to store the method's result.\n\t * @return {Box3} The bounding box that encloses this sphere.\n\t */\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\t/**\n\t * Transforms this sphere with the given 4x4 transformation matrix.\n\t *\n\t * @param {Matrix4} matrix - The transformation matrix.\n\t * @return {Sphere} A reference to this sphere.\n\t */\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\t/**\n\t * Translates the sphere's center by the given offset.\n\t *\n\t * @param {Vector3} offset - The offset.\n\t * @return {Sphere} A reference to this sphere.\n\t */\n\ttranslate( offset ) {\n\n\t\tthis.center.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Expands the boundaries of this sphere to include the given point.\n\t *\n\t * @param {Vector3} point - The point to include.\n\t * @return {Sphere} A reference to this sphere.\n\t */\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\t/**\n\t * Expands this sphere to enclose both the original sphere and the given sphere.\n\t *\n\t * @param {Sphere} sphere - The sphere to include.\n\t * @return {Sphere} A reference to this sphere.\n\t */\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\t/**\n\t * Returns `true` if this sphere is equal with the given one.\n\t *\n\t * @param {Sphere} sphere - The sphere to test for equality.\n\t * @return {boolean} Whether this bounding sphere is equal with the given one.\n\t */\n\tequals( sphere ) {\n\n\t\treturn sphere.center.equals( this.center ) && ( sphere.radius === this.radius );\n\n\t}\n\n\t/**\n\t * Returns a new sphere with copied values from this instance.\n\t *\n\t * @return {Sphere} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Returns a serialized structure of the bounding sphere.\n\t *\n\t * @return {Object} Serialized structure with fields representing the object state.\n\t */\n\ttoJSON() {\n\n\t\treturn {\n\t\t\tradius: this.radius,\n\t\t\tcenter: this.center.toArray()\n\t\t};\n\n\t}\n\n\t/**\n\t * Returns a serialized structure of the bounding sphere.\n\t *\n\t * @param {Object} json - The serialized json to set the sphere from.\n\t * @return {Box3} A reference to this bounding sphere.\n\t */\n\tfromJSON( json ) {\n\n\t\tthis.radius = json.radius;\n\t\tthis.center.fromArray( json.center );\n\t\treturn 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\n/**\n * A ray that emits from an origin in a certain direction. The class is used by\n * {@link Raycaster} to assist with raycasting. Raycasting is used for\n * mouse picking (working out what objects in the 3D space the mouse is over)\n * amongst other things.\n */\nclass Ray {\n\n\t/**\n\t * Constructs a new ray.\n\t *\n\t * @param {Vector3} [origin=(0,0,0)] - The origin of the ray.\n\t * @param {Vector3} [direction=(0,0,-1)] - The (normalized) direction of the ray.\n\t */\n\tconstructor( origin = new Vector3(), direction = new Vector3( 0, 0, -1 ) ) {\n\n\t\t/**\n\t\t * The origin of the ray.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.origin = origin;\n\n\t\t/**\n\t\t * The (normalized) direction of the ray.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.direction = direction;\n\n\t}\n\n\t/**\n\t * Sets the ray's components by copying the given values.\n\t *\n\t * @param {Vector3} origin - The origin.\n\t * @param {Vector3} direction - The direction.\n\t * @return {Ray} A reference to this ray.\n\t */\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\t/**\n\t * Copies the values of the given ray to this instance.\n\t *\n\t * @param {Ray} ray - The ray to copy.\n\t * @return {Ray} A reference to this ray.\n\t */\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\t/**\n\t * Returns a vector that is located at a given distance along this ray.\n\t *\n\t * @param {number} t - The distance along the ray to retrieve a position for.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} A position on the ray.\n\t */\n\tat( t, target ) {\n\n\t\treturn target.copy( this.origin ).addScaledVector( this.direction, t );\n\n\t}\n\n\t/**\n\t * Adjusts the direction of the ray to point at the given vector in world space.\n\t *\n\t * @param {Vector3} v - The target position.\n\t * @return {Ray} A reference to this ray.\n\t */\n\tlookAt( v ) {\n\n\t\tthis.direction.copy( v ).sub( this.origin ).normalize();\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Shift the origin of this ray along its direction by the given distance.\n\t *\n\t * @param {number} t - The distance along the ray to interpolate.\n\t * @return {Ray} A reference to this ray.\n\t */\n\trecast( t ) {\n\n\t\tthis.origin.copy( this.at( t, _vector$a ) );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the point along this ray that is closest to the given point.\n\t *\n\t * @param {Vector3} point - A point in 3D space to get the closet location on the ray for.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The closest point on this ray.\n\t */\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\t/**\n\t * Returns the distance of the closest approach between this ray and the given point.\n\t *\n\t * @param {Vector3} point - A point in 3D space to compute the distance to.\n\t * @return {number} The distance.\n\t */\n\tdistanceToPoint( point ) {\n\n\t\treturn Math.sqrt( this.distanceSqToPoint( point ) );\n\n\t}\n\n\t/**\n\t * Returns the squared distance of the closest approach between this ray and the given point.\n\t *\n\t * @param {Vector3} point - A point in 3D space to compute the distance to.\n\t * @return {number} The squared distance.\n\t */\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\t/**\n\t * Returns the squared distance between this ray and the given line segment.\n\t *\n\t * @param {Vector3} v0 - The start point of the line segment.\n\t * @param {Vector3} v1 - The end point of the line segment.\n\t * @param {Vector3} [optionalPointOnRay] - When provided, it receives the point on this ray that is closest to the segment.\n\t * @param {Vector3} [optionalPointOnSegment] - When provided, it receives the point on the line segment that is closest to this ray.\n\t * @return {number} The squared distance.\n\t */\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\t/**\n\t * Intersects this ray with the given sphere, returning the intersection\n\t * point or `null` if there is no intersection.\n\t *\n\t * @param {Sphere} sphere - The sphere to intersect.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The intersection point.\n\t */\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\t/**\n\t * Returns `true` if this ray intersects with the given sphere.\n\t *\n\t * @param {Sphere} sphere - The sphere to intersect.\n\t * @return {boolean} Whether this ray intersects with the given sphere or not.\n\t */\n\tintersectsSphere( sphere ) {\n\n\t\tif ( sphere.radius < 0 ) return false; // handle empty spheres, see #31187\n\n\t\treturn this.distanceSqToPoint( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\t/**\n\t * Computes the distance from the ray's origin to the given plane. Returns `null` if the ray\n\t * does not intersect with the plane.\n\t *\n\t * @param {Plane} plane - The plane to compute the distance to.\n\t * @return {?number} Whether this ray intersects with the given sphere or not.\n\t */\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\t/**\n\t * Intersects this ray with the given plane, returning the intersection\n\t * point or `null` if there is no intersection.\n\t *\n\t * @param {Plane} plane - The plane to intersect.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The intersection point.\n\t */\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\t/**\n\t * Returns `true` if this ray intersects with the given plane.\n\t *\n\t * @param {Plane} plane - The plane to intersect.\n\t * @return {boolean} Whether this ray intersects with the given plane or not.\n\t */\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\t/**\n\t * Intersects this ray with the given bounding box, returning the intersection\n\t * point or `null` if there is no intersection.\n\t *\n\t * @param {Box3} box - The box to intersect.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The intersection point.\n\t */\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\t/**\n\t * Returns `true` if this ray intersects with the given box.\n\t *\n\t * @param {Box3} box - The box to intersect.\n\t * @return {boolean} Whether this ray intersects with the given box or not.\n\t */\n\tintersectsBox( box ) {\n\n\t\treturn this.intersectBox( box, _vector$a ) !== null;\n\n\t}\n\n\t/**\n\t * Intersects this ray with the given triangle, returning the intersection\n\t * point or `null` if there is no intersection.\n\t *\n\t * @param {Vector3} a - The first vertex of the triangle.\n\t * @param {Vector3} b - The second vertex of the triangle.\n\t * @param {Vector3} c - The third vertex of the triangle.\n\t * @param {boolean} backfaceCulling - Whether to use backface culling or not.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The intersection point.\n\t */\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\t/**\n\t * Transforms this ray with the given 4x4 transformation matrix.\n\t *\n\t * @param {Matrix4} matrix4 - The transformation matrix.\n\t * @return {Ray} A reference to this ray.\n\t */\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\t/**\n\t * Returns `true` if this ray is equal with the given one.\n\t *\n\t * @param {Ray} ray - The ray to test for equality.\n\t * @return {boolean} Whether this ray is equal with the given one.\n\t */\n\tequals( ray ) {\n\n\t\treturn ray.origin.equals( this.origin ) && ray.direction.equals( this.direction );\n\n\t}\n\n\t/**\n\t * Returns a new ray with copied values from this instance.\n\t *\n\t * @return {Ray} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\n/**\n * Represents a 4x4 matrix.\n *\n * The most common use of a 4x4 matrix in 3D computer graphics is as a transformation matrix.\n * For an introduction to transformation matrices as used in WebGL, check out [this tutorial]{@link https://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices}\n *\n * This allows a 3D vector representing a point in 3D space to undergo\n * transformations such as translation, rotation, shear, scale, reflection,\n * orthogonal or perspective projection and so on, by being multiplied by the\n * matrix. This is known as `applying` the matrix to the vector.\n *\n * A Note on Row-Major and Column-Major Ordering:\n *\n * The constructor and {@link Matrix3#set} method take arguments in\n * [row-major]{@link https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order}\n * order, while internally they are stored in the {@link Matrix3#elements} array in column-major order.\n * This means that calling:\n * ```js\n * const m = new THREE.Matrix4();\n * m.set( 11, 12, 13, 14,\n * 21, 22, 23, 24,\n * 31, 32, 33, 34,\n * 41, 42, 43, 44 );\n * ```\n * will result in the elements array containing:\n * ```js\n * m.elements = [ 11, 21, 31, 41,\n * 12, 22, 32, 42,\n * 13, 23, 33, 43,\n * 14, 24, 34, 44 ];\n * ```\n * and internally all calculations are performed using column-major ordering.\n * However, as the actual ordering makes no difference mathematically and\n * most people are used to thinking about matrices in row-major order, the\n * three.js documentation shows matrices in row-major order. Just bear in\n * mind that if you are reading the source code, you'll have to take the\n * transpose of any matrices outlined here to make sense of the calculations.\n */\nclass Matrix4 {\n\n\t/**\n\t * Constructs a new 4x4 matrix. The arguments are supposed to be\n\t * in row-major order. If no arguments are provided, the constructor\n\t * initializes the matrix as an identity matrix.\n\t *\n\t * @param {number} [n11] - 1-1 matrix element.\n\t * @param {number} [n12] - 1-2 matrix element.\n\t * @param {number} [n13] - 1-3 matrix element.\n\t * @param {number} [n14] - 1-4 matrix element.\n\t * @param {number} [n21] - 2-1 matrix element.\n\t * @param {number} [n22] - 2-2 matrix element.\n\t * @param {number} [n23] - 2-3 matrix element.\n\t * @param {number} [n24] - 2-4 matrix element.\n\t * @param {number} [n31] - 3-1 matrix element.\n\t * @param {number} [n32] - 3-2 matrix element.\n\t * @param {number} [n33] - 3-3 matrix element.\n\t * @param {number} [n34] - 3-4 matrix element.\n\t * @param {number} [n41] - 4-1 matrix element.\n\t * @param {number} [n42] - 4-2 matrix element.\n\t * @param {number} [n43] - 4-3 matrix element.\n\t * @param {number} [n44] - 4-4 matrix element.\n\t */\n\tconstructor( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tMatrix4.prototype.isMatrix4 = true;\n\n\t\t/**\n\t\t * A column-major list of matrix values.\n\t\t *\n\t\t * @type {Array}\n\t\t */\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\t/**\n\t * Sets the elements of the matrix.The arguments are supposed to be\n\t * in row-major order.\n\t *\n\t * @param {number} [n11] - 1-1 matrix element.\n\t * @param {number} [n12] - 1-2 matrix element.\n\t * @param {number} [n13] - 1-3 matrix element.\n\t * @param {number} [n14] - 1-4 matrix element.\n\t * @param {number} [n21] - 2-1 matrix element.\n\t * @param {number} [n22] - 2-2 matrix element.\n\t * @param {number} [n23] - 2-3 matrix element.\n\t * @param {number} [n24] - 2-4 matrix element.\n\t * @param {number} [n31] - 3-1 matrix element.\n\t * @param {number} [n32] - 3-2 matrix element.\n\t * @param {number} [n33] - 3-3 matrix element.\n\t * @param {number} [n34] - 3-4 matrix element.\n\t * @param {number} [n41] - 4-1 matrix element.\n\t * @param {number} [n42] - 4-2 matrix element.\n\t * @param {number} [n43] - 4-3 matrix element.\n\t * @param {number} [n44] - 4-4 matrix element.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix to the 4x4 identity matrix.\n\t *\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Returns a matrix with copied values from this instance.\n\t *\n\t * @return {Matrix4} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new Matrix4().fromArray( this.elements );\n\n\t}\n\n\t/**\n\t * Copies the values of the given matrix to this instance.\n\t *\n\t * @param {Matrix4} m - The matrix to copy.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Copies the translation component of the given matrix\n\t * into this matrix's translation component.\n\t *\n\t * @param {Matrix4} m - The matrix to copy the translation component.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Set the upper 3x3 elements of this matrix to the values of given 3x3 matrix.\n\t *\n\t * @param {Matrix3} m - The 3x3 matrix.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Extracts the basis of this matrix into the three axis vectors provided.\n\t *\n\t * @param {Vector3} xAxis - The basis's x axis.\n\t * @param {Vector3} yAxis - The basis's y axis.\n\t * @param {Vector3} zAxis - The basis's z axis.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets the given basis vectors to this matrix.\n\t *\n\t * @param {Vector3} xAxis - The basis's x axis.\n\t * @param {Vector3} yAxis - The basis's y axis.\n\t * @param {Vector3} zAxis - The basis's z axis.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Extracts the rotation component of the given matrix\n\t * into this matrix's rotation component.\n\t *\n\t * Note: This method does not support reflection matrices.\n\t *\n\t * @param {Matrix4} m - The matrix.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\n\textractRotation( m ) {\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\t/**\n\t * Sets the rotation component (the upper left 3x3 matrix) of this matrix to\n\t * the rotation specified by the given Euler angles. The rest of\n\t * the matrix is set to the identity. Depending on the {@link Euler#order},\n\t * there are six possible outcomes. See [this page]{@link https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix}\n\t * for a complete list.\n\t *\n\t * @param {Euler} euler - The Euler angles.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets the rotation component of this matrix to the rotation specified by\n\t * the given Quaternion as outlined [here]{@link https://en.wikipedia.org/wiki/Rotation_matrix#Quaternion}\n\t * The rest of the matrix is set to the identity.\n\t *\n\t * @param {Quaternion} q - The Quaternion.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\n\tmakeRotationFromQuaternion( q ) {\n\n\t\treturn this.compose( _zero, q, _one );\n\n\t}\n\n\t/**\n\t * Sets the rotation component of the transformation matrix, looking from `eye` towards\n\t * `target`, and oriented by the up-direction.\n\t *\n\t * @param {Vector3} eye - The eye vector.\n\t * @param {Vector3} target - The target vector.\n\t * @param {Vector3} up - The up vector.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Post-multiplies this matrix by the given 4x4 matrix.\n\t *\n\t * @param {Matrix4} m - The matrix to multiply with.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\t/**\n\t * Pre-multiplies this matrix by the given 4x4 matrix.\n\t *\n\t * @param {Matrix4} m - The matrix to multiply with.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\t/**\n\t * Multiples the given 4x4 matrices and stores the result\n\t * in this matrix.\n\t *\n\t * @param {Matrix4} a - The first matrix.\n\t * @param {Matrix4} b - The second matrix.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Multiplies every component of the matrix by the given scalar.\n\t *\n\t * @param {number} s - The scalar.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Computes and returns the determinant of this matrix.\n\t *\n\t * Based on the method outlined [here]{@link http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.html}.\n\t *\n\t * @return {number} The determinant.\n\t */\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\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\t/**\n\t * Transposes this matrix in place.\n\t *\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets the position component for this matrix from the given vector,\n\t * without affecting the rest of the matrix.\n\t *\n\t * @param {number|Vector3} x - The x component of the vector or alternatively the vector object.\n\t * @param {number} y - The y component of the vector.\n\t * @param {number} z - The z component of the vector.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Inverts this matrix, using the [analytic method]{@link https://en.wikipedia.org/wiki/Invertible_matrix#Analytic_solution}.\n\t * You can not invert with a determinant of zero. If you attempt this, the method produces\n\t * a zero matrix instead.\n\t *\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Multiplies the columns of this matrix by the given vector.\n\t *\n\t * @param {Vector3} v - The scale vector.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Gets the maximum scale value of the three axes.\n\t *\n\t * @return {number} The maximum scale.\n\t */\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\t/**\n\t * Sets this matrix as a translation transform from the given vector.\n\t *\n\t * @param {number|Vector3} x - The amount to translate in the X axis or alternatively a translation vector.\n\t * @param {number} y - The amount to translate in the Y axis.\n\t * @param {number} z - The amount to translate in the z axis.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a rotational transformation around the X axis by\n\t * the given angle.\n\t *\n\t * @param {number} theta - The rotation in radians.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a rotational transformation around the Y axis by\n\t * the given angle.\n\t *\n\t * @param {number} theta - The rotation in radians.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a rotational transformation around the Z axis by\n\t * the given angle.\n\t *\n\t * @param {number} theta - The rotation in radians.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a rotational transformation around the given axis by\n\t * the given angle.\n\t *\n\t * This is a somewhat controversial but mathematically sound alternative to\n\t * rotating via Quaternions. See the discussion [here]{@link https://www.gamedev.net/articles/programming/math-and-physics/do-we-really-need-quaternions-r1199}.\n\t *\n\t * @param {Vector3} axis - The normalized rotation axis.\n\t * @param {number} angle - The rotation in radians.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a scale transformation.\n\t *\n\t * @param {number} x - The amount to scale in the X axis.\n\t * @param {number} y - The amount to scale in the Y axis.\n\t * @param {number} z - The amount to scale in the Z axis.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix as a shear transformation.\n\t *\n\t * @param {number} xy - The amount to shear X by Y.\n\t * @param {number} xz - The amount to shear X by Z.\n\t * @param {number} yx - The amount to shear Y by X.\n\t * @param {number} yz - The amount to shear Y by Z.\n\t * @param {number} zx - The amount to shear Z by X.\n\t * @param {number} zy - The amount to shear Z by Y.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Sets this matrix to the transformation composed of the given position,\n\t * rotation (Quaternion) and scale.\n\t *\n\t * @param {Vector3} position - The position vector.\n\t * @param {Quaternion} quaternion - The rotation as a Quaternion.\n\t * @param {Vector3} scale - The scale vector.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Decomposes this matrix into its position, rotation and scale components\n\t * and provides the result in the given objects.\n\t *\n\t * Note: Not all matrices are decomposable in this way. For example, if an\n\t * object has a non-uniformly scaled parent, then the object's world matrix\n\t * may not be decomposable, and this method may not be appropriate.\n\t *\n\t * @param {Vector3} position - The position vector.\n\t * @param {Quaternion} quaternion - The rotation as a Quaternion.\n\t * @param {Vector3} scale - The scale vector.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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$2.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$2.elements[ 0 ] *= invSX;\n\t\t_m1$2.elements[ 1 ] *= invSX;\n\t\t_m1$2.elements[ 2 ] *= invSX;\n\n\t\t_m1$2.elements[ 4 ] *= invSY;\n\t\t_m1$2.elements[ 5 ] *= invSY;\n\t\t_m1$2.elements[ 6 ] *= invSY;\n\n\t\t_m1$2.elements[ 8 ] *= invSZ;\n\t\t_m1$2.elements[ 9 ] *= invSZ;\n\t\t_m1$2.elements[ 10 ] *= invSZ;\n\n\t\tquaternion.setFromRotationMatrix( _m1$2 );\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\t/**\n\t * Creates a perspective projection matrix. This is used internally by\n\t * {@link PerspectiveCamera#updateProjectionMatrix}.\n\n\t * @param {number} left - Left boundary of the viewing frustum at the near plane.\n\t * @param {number} right - Right boundary of the viewing frustum at the near plane.\n\t * @param {number} top - Top boundary of the viewing frustum at the near plane.\n\t * @param {number} bottom - Bottom boundary of the viewing frustum at the near plane.\n\t * @param {number} near - The distance from the camera to the near plane.\n\t * @param {number} far - The distance from the camera to the far plane.\n\t * @param {(WebGLCoordinateSystem|WebGPUCoordinateSystem)} [coordinateSystem=WebGLCoordinateSystem] - The coordinate system.\n\t * @param {boolean} [reversedDepth=false] - Whether to use a reversed depth.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\n\tmakePerspective( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem, reversedDepth = false ) {\n\n\t\tconst te = this.elements;\n\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 ( reversedDepth ) {\n\n\t\t\tc = near / ( far - near );\n\t\t\td = ( far * near ) / ( far - near );\n\n\t\t} else {\n\n\t\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\t\tc = - ( far + near ) / ( far - near );\n\t\t\t\td = ( -2 * far * near ) / ( far - near );\n\n\t\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\t\tc = - far / ( far - near );\n\t\t\t\td = ( - far * near ) / ( far - near );\n\n\t\t\t} else {\n\n\t\t\t\tthrow new Error( 'THREE.Matrix4.makePerspective(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t\t}\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\t/**\n\t * Creates a orthographic projection matrix. This is used internally by\n\t * {@link OrthographicCamera#updateProjectionMatrix}.\n\n\t * @param {number} left - Left boundary of the viewing frustum at the near plane.\n\t * @param {number} right - Right boundary of the viewing frustum at the near plane.\n\t * @param {number} top - Top boundary of the viewing frustum at the near plane.\n\t * @param {number} bottom - Bottom boundary of the viewing frustum at the near plane.\n\t * @param {number} near - The distance from the camera to the near plane.\n\t * @param {number} far - The distance from the camera to the far plane.\n\t * @param {(WebGLCoordinateSystem|WebGPUCoordinateSystem)} [coordinateSystem=WebGLCoordinateSystem] - The coordinate system.\n\t * @param {boolean} [reversedDepth=false] - Whether to use a reversed depth.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\n\tmakeOrthographic( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem, reversedDepth = false ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = 2 / ( right - left );\n\t\tconst y = 2 / ( 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 ( reversedDepth ) {\n\n\t\t\tc = 1 / ( far - near );\n\t\t\td = far / ( far - near );\n\n\t\t} else {\n\n\t\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\t\tc = -2 / ( far - near );\n\t\t\t\td = - ( far + near ) / ( far - near );\n\n\t\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\t\tc = -1 / ( far - near );\n\t\t\t\td = - near / ( far - near );\n\n\t\t\t} else {\n\n\t\t\t\tthrow new Error( 'THREE.Matrix4.makeOrthographic(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t\t}\n\n\t\t}\n\n\t\tte[ 0 ] = x;\t\tte[ 4 ] = 0;\t\tte[ 8 ] = 0; \t\tte[ 12 ] = a;\n\t\tte[ 1 ] = 0; \t\tte[ 5 ] = y;\t\tte[ 9 ] = 0; \t\tte[ 13 ] = b;\n\t\tte[ 2 ] = 0; \t\tte[ 6 ] = 0;\t\tte[ 10 ] = c;\t\tte[ 14 ] = d;\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\t/**\n\t * Returns `true` if this matrix is equal with the given one.\n\t *\n\t * @param {Matrix4} matrix - The matrix to test for equality.\n\t * @return {boolean} Whether this matrix is equal with the given one.\n\t */\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\t/**\n\t * Sets the elements of the matrix from the given array.\n\t *\n\t * @param {Array} array - The matrix elements in column-major order.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Matrix4} A reference to this matrix.\n\t */\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\t/**\n\t * Writes the elements of this matrix to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the matrix elements in column-major order.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The matrix elements in column-major order.\n\t */\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$2 = /*@__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\n/**\n * A class representing Euler angles.\n *\n * Euler angles describe a rotational transformation by rotating an object on\n * its various axes in specified amounts per axis, and a specified axis\n * order.\n *\n * Iterating through an instance will yield its components (x, y, z,\n * order) in the corresponding order.\n *\n * ```js\n * const a = new THREE.Euler( 0, 1, 1.57, 'XYZ' );\n * const b = new THREE.Vector3( 1, 0, 1 );\n * b.applyEuler(a);\n * ```\n */\nclass Euler {\n\n\t/**\n\t * Constructs a new euler instance.\n\t *\n\t * @param {number} [x=0] - The angle of the x axis in radians.\n\t * @param {number} [y=0] - The angle of the y axis in radians.\n\t * @param {number} [z=0] - The angle of the z axis in radians.\n\t * @param {string} [order=Euler.DEFAULT_ORDER] - A string representing the order that the rotations are applied.\n\t */\n\tconstructor( x = 0, y = 0, z = 0, order = Euler.DEFAULT_ORDER ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t * The angle of the x axis in radians.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * The angle of the y axis in radians.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * The angle of the z axis in radians.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * A string representing the order that the rotations are applied.\n\t *\n\t * @type {string}\n\t * @default 'XYZ'\n\t */\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\t/**\n\t * Sets the Euler components.\n\t *\n\t * @param {number} x - The angle of the x axis in radians.\n\t * @param {number} y - The angle of the y axis in radians.\n\t * @param {number} z - The angle of the z axis in radians.\n\t * @param {string} [order] - A string representing the order that the rotations are applied.\n\t * @return {Euler} A reference to this Euler instance.\n\t */\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\t/**\n\t * Returns a new Euler instance with copied values from this instance.\n\t *\n\t * @return {Euler} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._order );\n\n\t}\n\n\t/**\n\t * Copies the values of the given Euler instance to this instance.\n\t *\n\t * @param {Euler} euler - The Euler instance to copy.\n\t * @return {Euler} A reference to this Euler instance.\n\t */\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\t/**\n\t * Sets the angles of this Euler instance from a pure rotation matrix.\n\t *\n\t * @param {Matrix4} m - A 4x4 matrix of which the upper 3x3 of matrix is a pure rotation matrix (i.e. unscaled).\n\t * @param {string} [order] - A string representing the order that the rotations are applied.\n\t * @param {boolean} [update=true] - Whether the internal `onChange` callback should be executed or not.\n\t * @return {Euler} A reference to this Euler instance.\n\t */\n\tsetFromRotationMatrix( m, order = this._order, update = true ) {\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\t/**\n\t * Sets the angles of this Euler instance from a normalized quaternion.\n\t *\n\t * @param {Quaternion} q - A normalized Quaternion.\n\t * @param {string} [order] - A string representing the order that the rotations are applied.\n\t * @param {boolean} [update=true] - Whether the internal `onChange` callback should be executed or not.\n\t * @return {Euler} A reference to this Euler instance.\n\t */\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\t/**\n\t * Sets the angles of this Euler instance from the given vector.\n\t *\n\t * @param {Vector3} v - The vector.\n\t * @param {string} [order] - A string representing the order that the rotations are applied.\n\t * @return {Euler} A reference to this Euler instance.\n\t */\n\tsetFromVector3( v, order = this._order ) {\n\n\t\treturn this.set( v.x, v.y, v.z, order );\n\n\t}\n\n\t/**\n\t * Resets the euler angle with a new order by creating a quaternion from this\n\t * euler angle and then setting this euler angle with the quaternion and the\n\t * new order.\n\t *\n\t * Warning: This discards revolution information.\n\t *\n\t * @param {string} [newOrder] - A string representing the new order that the rotations are applied.\n\t * @return {Euler} A reference to this Euler instance.\n\t */\n\treorder( newOrder ) {\n\n\t\t_quaternion$3.setFromEuler( this );\n\n\t\treturn this.setFromQuaternion( _quaternion$3, newOrder );\n\n\t}\n\n\t/**\n\t * Returns `true` if this Euler instance is equal with the given one.\n\t *\n\t * @param {Euler} euler - The Euler instance to test for equality.\n\t * @return {boolean} Whether this Euler instance is equal with the given one.\n\t */\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\t/**\n\t * Sets this Euler instance's components to values from the given array. The first three\n\t * entries of the array are assign to the x,y and z components. An optional fourth entry\n\t * defines the Euler order.\n\t *\n\t * @param {Array} array - An array holding the Euler component values.\n\t * @return {Euler} A reference to this Euler instance.\n\t */\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\t/**\n\t * Writes the components of this Euler instance to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the Euler components.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The Euler components.\n\t */\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\n/**\n * The default Euler angle order.\n *\n * @static\n * @type {string}\n * @default 'XYZ'\n */\nEuler.DEFAULT_ORDER = 'XYZ';\n\n/**\n * A layers object assigns an 3D object to 1 or more of 32\n * layers numbered `0` to `31` - internally the layers are stored as a\n * bit mask], and by default all 3D objects are a member of layer `0`.\n *\n * This can be used to control visibility - an object must share a layer with\n * a camera to be visible when that camera's view is\n * rendered.\n *\n * All classes that inherit from {@link Object3D} have an `layers` property which\n * is an instance of this class.\n */\nclass Layers {\n\n\t/**\n\t * Constructs a new layers instance, with membership\n\t * initially set to layer `0`.\n\t */\n\tconstructor() {\n\n\t\t/**\n\t\t * A bit mask storing which of the 32 layers this layers object is currently\n\t\t * a member of.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.mask = 1 | 0;\n\n\t}\n\n\t/**\n\t * Sets membership to the given layer, and remove membership all other layers.\n\t *\n\t * @param {number} layer - The layer to set.\n\t */\n\tset( layer ) {\n\n\t\tthis.mask = ( 1 << layer | 0 ) >>> 0;\n\n\t}\n\n\t/**\n\t * Adds membership of the given layer.\n\t *\n\t * @param {number} layer - The layer to enable.\n\t */\n\tenable( layer ) {\n\n\t\tthis.mask |= 1 << layer | 0;\n\n\t}\n\n\t/**\n\t * Adds membership to all layers.\n\t */\n\tenableAll() {\n\n\t\tthis.mask = 0xffffffff | 0;\n\n\t}\n\n\t/**\n\t * Toggles the membership of the given layer.\n\t *\n\t * @param {number} layer - The layer to toggle.\n\t */\n\ttoggle( layer ) {\n\n\t\tthis.mask ^= 1 << layer | 0;\n\n\t}\n\n\t/**\n\t * Removes membership of the given layer.\n\t *\n\t * @param {number} layer - The layer to enable.\n\t */\n\tdisable( layer ) {\n\n\t\tthis.mask &= ~ ( 1 << layer | 0 );\n\n\t}\n\n\t/**\n\t * Removes the membership from all layers.\n\t */\n\tdisableAll() {\n\n\t\tthis.mask = 0;\n\n\t}\n\n\t/**\n\t * Returns `true` if this and the given layers object have at least one\n\t * layer in common.\n\t *\n\t * @param {Layers} layers - The layers to test.\n\t * @return {boolean } Whether this and the given layers object have at least one layer in common or not.\n\t */\n\ttest( layers ) {\n\n\t\treturn ( this.mask & layers.mask ) !== 0;\n\n\t}\n\n\t/**\n\t * Returns `true` if the given layer is enabled.\n\t *\n\t * @param {number} layer - The layer to test.\n\t * @return {boolean } Whether the given layer is enabled or not.\n\t */\n\tisEnabled( layer ) {\n\n\t\treturn ( this.mask & ( 1 << layer | 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$1 = /*@__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\n/**\n * Fires when the object has been added to its parent object.\n *\n * @event Object3D#added\n * @type {Object}\n */\nconst _addedEvent = { type: 'added' };\n\n/**\n * Fires when the object has been removed from its parent object.\n *\n * @event Object3D#removed\n * @type {Object}\n */\nconst _removedEvent = { type: 'removed' };\n\n/**\n * Fires when a new child object has been added.\n *\n * @event Object3D#childadded\n * @type {Object}\n */\nconst _childaddedEvent = { type: 'childadded', child: null };\n\n/**\n * Fires when a child object has been removed.\n *\n * @event Object3D#childremoved\n * @type {Object}\n */\nconst _childremovedEvent = { type: 'childremoved', child: null };\n\n/**\n * This is the base class for most objects in three.js and provides a set of\n * properties and methods for manipulating objects in 3D space.\n *\n * @augments EventDispatcher\n */\nclass Object3D extends EventDispatcher {\n\n\t/**\n\t * Constructs a new 3D object.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isObject3D = true;\n\n\t\t/**\n\t\t * The ID of the 3D object.\n\t\t *\n\t\t * @name Object3D#id\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tObject.defineProperty( this, 'id', { value: _object3DId ++ } );\n\n\t\t/**\n\t\t * The UUID of the 3D object.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t\t/**\n\t\t * The name of the 3D object.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The type property is used for detecting the object type\n\t\t * in context of serialization/deserialization.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.type = 'Object3D';\n\n\t\t/**\n\t\t * A reference to the parent object.\n\t\t *\n\t\t * @type {?Object3D}\n\t\t * @default null\n\t\t */\n\t\tthis.parent = null;\n\n\t\t/**\n\t\t * An array holding the child 3D objects of this instance.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.children = [];\n\n\t\t/**\n\t\t * Defines the `up` direction of the 3D object which influences\n\t\t * the orientation via methods like {@link Object3D#lookAt}.\n\t\t *\n\t\t * The default values for all 3D objects is defined by `Object3D.DEFAULT_UP`.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\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\t/**\n\t\t\t * Represents the object's local position.\n\t\t\t *\n\t\t\t * @name Object3D#position\n\t\t\t * @type {Vector3}\n\t\t\t * @default (0,0,0)\n\t\t\t */\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\t/**\n\t\t\t * Represents the object's local rotation as Euler angles, in radians.\n\t\t\t *\n\t\t\t * @name Object3D#rotation\n\t\t\t * @type {Euler}\n\t\t\t * @default (0,0,0)\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\t/**\n\t\t\t * Represents the object's local rotation as Quaternions.\n\t\t\t *\n\t\t\t * @name Object3D#quaternion\n\t\t\t * @type {Quaternion}\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\t/**\n\t\t\t * Represents the object's local scale.\n\t\t\t *\n\t\t\t * @name Object3D#scale\n\t\t\t * @type {Vector3}\n\t\t\t * @default (1,1,1)\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\t/**\n\t\t\t * Represents the object's model-view matrix.\n\t\t\t *\n\t\t\t * @name Object3D#modelViewMatrix\n\t\t\t * @type {Matrix4}\n\t\t\t */\n\t\t\tmodelViewMatrix: {\n\t\t\t\tvalue: new Matrix4()\n\t\t\t},\n\t\t\t/**\n\t\t\t * Represents the object's normal matrix.\n\t\t\t *\n\t\t\t * @name Object3D#normalMatrix\n\t\t\t * @type {Matrix3}\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\t/**\n\t\t * Represents the object's transformation matrix in local space.\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.matrix = new Matrix4();\n\n\t\t/**\n\t\t * Represents the object's transformation matrix in world space.\n\t\t * If the 3D object has no parent, then it's identical to the local transformation matrix\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.matrixWorld = new Matrix4();\n\n\t\t/**\n\t\t * When set to `true`, the engine automatically computes the local matrix from position,\n\t\t * rotation and scale every frame.\n\t\t *\n\t\t * The default values for all 3D objects is defined by `Object3D.DEFAULT_MATRIX_AUTO_UPDATE`.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.matrixAutoUpdate = Object3D.DEFAULT_MATRIX_AUTO_UPDATE;\n\n\t\t/**\n\t\t * When set to `true`, the engine automatically computes the world matrix from the current local\n\t\t * matrix and the object's transformation hierarchy.\n\t\t *\n\t\t * The default values for all 3D objects is defined by `Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE`.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.matrixWorldAutoUpdate = Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE; // checked by the renderer\n\n\t\t/**\n\t\t * When set to `true`, it calculates the world matrix in that frame and resets this property\n\t\t * to `false`.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\t/**\n\t\t * The layer membership of the 3D object. The 3D object is only visible if it has\n\t\t * at least one layer in common with the camera in use. This property can also be\n\t\t * used to filter out unwanted objects in ray-intersection tests when using {@link Raycaster}.\n\t\t *\n\t\t * @type {Layers}\n\t\t */\n\t\tthis.layers = new Layers();\n\n\t\t/**\n\t\t * When set to `true`, the 3D object gets rendered.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.visible = true;\n\n\t\t/**\n\t\t * When set to `true`, the 3D object gets rendered into shadow maps.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.castShadow = false;\n\n\t\t/**\n\t\t * When set to `true`, the 3D object is affected by shadows in the scene.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.receiveShadow = false;\n\n\t\t/**\n\t\t * When set to `true`, the 3D object is honored by view frustum culling.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.frustumCulled = true;\n\n\t\t/**\n\t\t * This value allows the default rendering order of scene graph objects to be\n\t\t * overridden although opaque and transparent objects remain sorted independently.\n\t\t * When this property is set for an instance of {@link Group},all descendants\n\t\t * objects will be sorted and rendered together. Sorting is from lowest to highest\n\t\t * render order.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.renderOrder = 0;\n\n\t\t/**\n\t\t * An array holding the animation clips of the 3D object.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.animations = [];\n\n\t\t/**\n\t\t * Custom depth material to be used when rendering to the depth map. Can only be used\n\t\t * in context of meshes. When shadow-casting with a {@link DirectionalLight} or {@link SpotLight},\n\t\t * if you are modifying vertex positions in the vertex shader you must specify a custom depth\n\t\t * material for proper shadows.\n\t\t *\n\t\t * Only relevant in context of {@link WebGLRenderer}.\n\t\t *\n\t\t * @type {(Material|undefined)}\n\t\t * @default undefined\n\t\t */\n\t\tthis.customDepthMaterial = undefined;\n\n\t\t/**\n\t\t * Same as {@link Object3D#customDepthMaterial}, but used with {@link PointLight}.\n\t\t *\n\t\t * Only relevant in context of {@link WebGLRenderer}.\n\t\t *\n\t\t * @type {(Material|undefined)}\n\t\t * @default undefined\n\t\t */\n\t\tthis.customDistanceMaterial = undefined;\n\n\t\t/**\n\t\t * An object that can be used to store custom data about the 3D object. It\n\t\t * should not hold references to functions as these will not be cloned.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.userData = {};\n\n\t}\n\n\t/**\n\t * A callback that is executed immediately before a 3D object is rendered to a shadow map.\n\t *\n\t * @param {Renderer|WebGLRenderer} renderer - The renderer.\n\t * @param {Object3D} object - The 3D object.\n\t * @param {Camera} camera - The camera that is used to render the scene.\n\t * @param {Camera} shadowCamera - The shadow camera.\n\t * @param {BufferGeometry} geometry - The 3D object's geometry.\n\t * @param {Material} depthMaterial - The depth material.\n\t * @param {Object} group - The geometry group data.\n\t */\n\tonBeforeShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\t/**\n\t * A callback that is executed immediately after a 3D object is rendered to a shadow map.\n\t *\n\t * @param {Renderer|WebGLRenderer} renderer - The renderer.\n\t * @param {Object3D} object - The 3D object.\n\t * @param {Camera} camera - The camera that is used to render the scene.\n\t * @param {Camera} shadowCamera - The shadow camera.\n\t * @param {BufferGeometry} geometry - The 3D object's geometry.\n\t * @param {Material} depthMaterial - The depth material.\n\t * @param {Object} group - The geometry group data.\n\t */\n\tonAfterShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\t/**\n\t * A callback that is executed immediately before a 3D object is rendered.\n\t *\n\t * @param {Renderer|WebGLRenderer} renderer - The renderer.\n\t * @param {Object3D} object - The 3D object.\n\t * @param {Camera} camera - The camera that is used to render the scene.\n\t * @param {BufferGeometry} geometry - The 3D object's geometry.\n\t * @param {Material} material - The 3D object's material.\n\t * @param {Object} group - The geometry group data.\n\t */\n\tonBeforeRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\t/**\n\t * A callback that is executed immediately after a 3D object is rendered.\n\t *\n\t * @param {Renderer|WebGLRenderer} renderer - The renderer.\n\t * @param {Object3D} object - The 3D object.\n\t * @param {Camera} camera - The camera that is used to render the scene.\n\t * @param {BufferGeometry} geometry - The 3D object's geometry.\n\t * @param {Material} material - The 3D object's material.\n\t * @param {Object} group - The geometry group data.\n\t */\n\tonAfterRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\t/**\n\t * Applies the given transformation matrix to the object and updates the object's position,\n\t * rotation and scale.\n\t *\n\t * @param {Matrix4} matrix - The transformation matrix.\n\t */\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\t/**\n\t * Applies a rotation represented by given the quaternion to the 3D object.\n\t *\n\t * @param {Quaternion} q - The quaternion.\n\t * @return {Object3D} A reference to this instance.\n\t */\n\tapplyQuaternion( q ) {\n\n\t\tthis.quaternion.premultiply( q );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the given rotation represented as an axis/angle couple to the 3D object.\n\t *\n\t * @param {Vector3} axis - The (normalized) axis vector.\n\t * @param {number} angle - The angle in radians.\n\t */\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\t/**\n\t * Sets the given rotation represented as Euler angles to the 3D object.\n\t *\n\t * @param {Euler} euler - The Euler angles.\n\t */\n\tsetRotationFromEuler( euler ) {\n\n\t\tthis.quaternion.setFromEuler( euler, true );\n\n\t}\n\n\t/**\n\t * Sets the given rotation represented as rotation matrix to the 3D object.\n\t *\n\t * @param {Matrix4} m - Although a 4x4 matrix is expected, the upper 3x3 portion must be\n\t * a pure rotation matrix (i.e, unscaled).\n\t */\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\t/**\n\t * Sets the given rotation represented as a Quaternion to the 3D object.\n\t *\n\t * @param {Quaternion} q - The Quaternion\n\t */\n\tsetRotationFromQuaternion( q ) {\n\n\t\t// assumes q is normalized\n\n\t\tthis.quaternion.copy( q );\n\n\t}\n\n\t/**\n\t * Rotates the 3D object along an axis in local space.\n\t *\n\t * @param {Vector3} axis - The (normalized) axis vector.\n\t * @param {number} angle - The angle in radians.\n\t * @return {Object3D} A reference to this instance.\n\t */\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\t/**\n\t * Rotates the 3D object along an axis in world space.\n\t *\n\t * @param {Vector3} axis - The (normalized) axis vector.\n\t * @param {number} angle - The angle in radians.\n\t * @return {Object3D} A reference to this instance.\n\t */\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\t/**\n\t * Rotates the 3D object around its X axis in local space.\n\t *\n\t * @param {number} angle - The angle in radians.\n\t * @return {Object3D} A reference to this instance.\n\t */\n\trotateX( angle ) {\n\n\t\treturn this.rotateOnAxis( _xAxis, angle );\n\n\t}\n\n\t/**\n\t * Rotates the 3D object around its Y axis in local space.\n\t *\n\t * @param {number} angle - The angle in radians.\n\t * @return {Object3D} A reference to this instance.\n\t */\n\trotateY( angle ) {\n\n\t\treturn this.rotateOnAxis( _yAxis, angle );\n\n\t}\n\n\t/**\n\t * Rotates the 3D object around its Z axis in local space.\n\t *\n\t * @param {number} angle - The angle in radians.\n\t * @return {Object3D} A reference to this instance.\n\t */\n\trotateZ( angle ) {\n\n\t\treturn this.rotateOnAxis( _zAxis, angle );\n\n\t}\n\n\t/**\n\t * Translate the 3D object by a distance along the given axis in local space.\n\t *\n\t * @param {Vector3} axis - The (normalized) axis vector.\n\t * @param {number} distance - The distance in world units.\n\t * @return {Object3D} A reference to this instance.\n\t */\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\t/**\n\t * Translate the 3D object by a distance along its X-axis in local space.\n\t *\n\t * @param {number} distance - The distance in world units.\n\t * @return {Object3D} A reference to this instance.\n\t */\n\ttranslateX( distance ) {\n\n\t\treturn this.translateOnAxis( _xAxis, distance );\n\n\t}\n\n\t/**\n\t * Translate the 3D object by a distance along its Y-axis in local space.\n\t *\n\t * @param {number} distance - The distance in world units.\n\t * @return {Object3D} A reference to this instance.\n\t */\n\ttranslateY( distance ) {\n\n\t\treturn this.translateOnAxis( _yAxis, distance );\n\n\t}\n\n\t/**\n\t * Translate the 3D object by a distance along its Z-axis in local space.\n\t *\n\t * @param {number} distance - The distance in world units.\n\t * @return {Object3D} A reference to this instance.\n\t */\n\ttranslateZ( distance ) {\n\n\t\treturn this.translateOnAxis( _zAxis, distance );\n\n\t}\n\n\t/**\n\t * Converts the given vector from this 3D object's local space to world space.\n\t *\n\t * @param {Vector3} vector - The vector to convert.\n\t * @return {Vector3} The converted vector.\n\t */\n\tlocalToWorld( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( this.matrixWorld );\n\n\t}\n\n\t/**\n\t * Converts the given vector from this 3D object's word space to local space.\n\t *\n\t * @param {Vector3} vector - The vector to convert.\n\t * @return {Vector3} The converted vector.\n\t */\n\tworldToLocal( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( _m1$1.copy( this.matrixWorld ).invert() );\n\n\t}\n\n\t/**\n\t * Rotates the object to face a point in world space.\n\t *\n\t * This method does not support objects having non-uniformly-scaled parent(s).\n\t *\n\t * @param {number|Vector3} x - The x coordinate in world space. Alternatively, a vector representing a position in world space\n\t * @param {number} [y] - The y coordinate in world space.\n\t * @param {number} [z] - The z coordinate in world space.\n\t */\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$1.lookAt( _position$3, _target, this.up );\n\n\t\t} else {\n\n\t\t\t_m1$1.lookAt( _target, _position$3, this.up );\n\n\t\t}\n\n\t\tthis.quaternion.setFromRotationMatrix( _m1$1 );\n\n\t\tif ( parent ) {\n\n\t\t\t_m1$1.extractRotation( parent.matrixWorld );\n\t\t\t_q1.setFromRotationMatrix( _m1$1 );\n\t\t\tthis.quaternion.premultiply( _q1.invert() );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Adds the given 3D object as a child to this 3D object. An arbitrary number of\n\t * objects may be added. Any current parent on an object passed in here will be\n\t * removed, since an object can have at most one parent.\n\t *\n\t * @fires Object3D#added\n\t * @fires Object3D#childadded\n\t * @param {Object3D} object - The 3D object to add.\n\t * @return {Object3D} A reference to this instance.\n\t */\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\t/**\n\t * Removes the given 3D object as child from this 3D object.\n\t * An arbitrary number of objects may be removed.\n\t *\n\t * @fires Object3D#removed\n\t * @fires Object3D#childremoved\n\t * @param {Object3D} object - The 3D object to remove.\n\t * @return {Object3D} A reference to this instance.\n\t */\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\t/**\n\t * Removes this 3D object from its current parent.\n\t *\n\t * @fires Object3D#removed\n\t * @fires Object3D#childremoved\n\t * @return {Object3D} A reference to this instance.\n\t */\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\t/**\n\t * Removes all child objects.\n\t *\n\t * @fires Object3D#removed\n\t * @fires Object3D#childremoved\n\t * @return {Object3D} A reference to this instance.\n\t */\n\tclear() {\n\n\t\treturn this.remove( ... this.children );\n\n\t}\n\n\t/**\n\t * Adds the given 3D object as a child of this 3D object, while maintaining the object's world\n\t * transform. This method does not support scene graphs having non-uniformly-scaled nodes(s).\n\t *\n\t * @fires Object3D#added\n\t * @fires Object3D#childadded\n\t * @param {Object3D} object - The 3D object to attach.\n\t * @return {Object3D} A reference to this instance.\n\t */\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$1.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$1.multiply( object.parent.matrixWorld );\n\n\t\t}\n\n\t\tobject.applyMatrix4( _m1$1 );\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\t/**\n\t * Searches through the 3D object and its children, starting with the 3D object\n\t * itself, and returns the first with a matching ID.\n\t *\n\t * @param {number} id - The id.\n\t * @return {Object3D|undefined} The found 3D object. Returns `undefined` if no 3D object has been found.\n\t */\n\tgetObjectById( id ) {\n\n\t\treturn this.getObjectByProperty( 'id', id );\n\n\t}\n\n\t/**\n\t * Searches through the 3D object and its children, starting with the 3D object\n\t * itself, and returns the first with a matching name.\n\t *\n\t * @param {string} name - The name.\n\t * @return {Object3D|undefined} The found 3D object. Returns `undefined` if no 3D object has been found.\n\t */\n\tgetObjectByName( name ) {\n\n\t\treturn this.getObjectByProperty( 'name', name );\n\n\t}\n\n\t/**\n\t * Searches through the 3D object and its children, starting with the 3D object\n\t * itself, and returns the first with a matching property value.\n\t *\n\t * @param {string} name - The name of the property.\n\t * @param {any} value - The value.\n\t * @return {Object3D|undefined} The found 3D object. Returns `undefined` if no 3D object has been found.\n\t */\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\t/**\n\t * Searches through the 3D object and its children, starting with the 3D object\n\t * itself, and returns all 3D objects with a matching property value.\n\t *\n\t * @param {string} name - The name of the property.\n\t * @param {any} value - The value.\n\t * @param {Array} result - The method stores the result in this array.\n\t * @return {Array} The found 3D objects.\n\t */\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\t/**\n\t * Returns a vector representing the position of the 3D object in world space.\n\t *\n\t * @param {Vector3} target - The target vector the result is stored to.\n\t * @return {Vector3} The 3D object's position in world space.\n\t */\n\tgetWorldPosition( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn target.setFromMatrixPosition( this.matrixWorld );\n\n\t}\n\n\t/**\n\t * Returns a Quaternion representing the position of the 3D object in world space.\n\t *\n\t * @param {Quaternion} target - The target Quaternion the result is stored to.\n\t * @return {Quaternion} The 3D object's rotation in world space.\n\t */\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\t/**\n\t * Returns a vector representing the scale of the 3D object in world space.\n\t *\n\t * @param {Vector3} target - The target vector the result is stored to.\n\t * @return {Vector3} The 3D object's scale in world space.\n\t */\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\t/**\n\t * Returns a vector representing the (\"look\") direction of the 3D object in world space.\n\t *\n\t * @param {Vector3} target - The target vector the result is stored to.\n\t * @return {Vector3} The 3D object's direction in world space.\n\t */\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\t/**\n\t * Abstract method to get intersections between a casted ray and this\n\t * 3D object. Renderable 3D objects such as {@link Mesh}, {@link Line} or {@link Points}\n\t * implement this method in order to use raycasting.\n\t *\n\t * @abstract\n\t * @param {Raycaster} raycaster - The raycaster.\n\t * @param {Array} intersects - An array holding the result of the method.\n\t */\n\traycast( /* raycaster, intersects */ ) {}\n\n\t/**\n\t * Executes the callback on this 3D object and all descendants.\n\t *\n\t * Note: Modifying the scene graph inside the callback is discouraged.\n\t *\n\t * @param {Function} callback - A callback function that allows to process the current 3D object.\n\t */\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\t/**\n\t * Like {@link Object3D#traverse}, but the callback will only be executed for visible 3D objects.\n\t * Descendants of invisible 3D objects are not traversed.\n\t *\n\t * Note: Modifying the scene graph inside the callback is discouraged.\n\t *\n\t * @param {Function} callback - A callback function that allows to process the current 3D object.\n\t */\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\t/**\n\t * Like {@link Object3D#traverse}, but the callback will only be executed for all ancestors.\n\t *\n\t * Note: Modifying the scene graph inside the callback is discouraged.\n\t *\n\t * @param {Function} callback - A callback function that allows to process the current 3D object.\n\t */\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\t/**\n\t * Updates the transformation matrix in local space by computing it from the current\n\t * position, rotation and scale values.\n\t */\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\t/**\n\t * Updates the transformation matrix in world space of this 3D objects and its descendants.\n\t *\n\t * To ensure correct results, this method also recomputes the 3D object's transformation matrix in\n\t * local space. The computation of the local and world matrix can be controlled with the\n\t * {@link Object3D#matrixAutoUpdate} and {@link Object3D#matrixWorldAutoUpdate} flags which are both\n\t * `true` by default. Set these flags to `false` if you need more control over the update matrix process.\n\t *\n\t * @param {boolean} [force=false] - When set to `true`, a recomputation of world matrices is forced even\n\t * when {@link Object3D#matrixWorldAutoUpdate} is set to `false`.\n\t */\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\t/**\n\t * An alternative version of {@link Object3D#updateMatrixWorld} with more control over the\n\t * update of ancestor and descendant nodes.\n\t *\n\t * @param {boolean} [updateParents=false] Whether ancestor nodes should be updated or not.\n\t * @param {boolean} [updateChildren=false] Whether descendant nodes should be updated or not.\n\t */\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\t/**\n\t * Serializes the 3D object into JSON.\n\t *\n\t * @param {?(Object|string)} meta - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized 3D object.\n\t * @see {@link ObjectLoader#parse}\n\t */\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.7,\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.geometryInfo = this._geometryInfo.map( info => ( {\n\t\t\t\t...info,\n\t\t\t\tboundingBox: info.boundingBox ? info.boundingBox.toJSON() : undefined,\n\t\t\t\tboundingSphere: info.boundingSphere ? info.boundingSphere.toJSON() : undefined\n\t\t\t} ) );\n\t\t\tobject.instanceInfo = this._instanceInfo.map( info => ( { ...info } ) );\n\n\t\t\tobject.availableInstanceIds = this._availableInstanceIds.slice();\n\t\t\tobject.availableGeometryIds = this._availableGeometryIds.slice();\n\n\t\t\tobject.nextIndexStart = this._nextIndexStart;\n\t\t\tobject.nextVertexStart = this._nextVertexStart;\n\t\t\tobject.geometryCount = this._geometryCount;\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\n\t\t\tobject.matricesTexture = this._matricesTexture.toJSON( meta );\n\n\t\t\tobject.indirectTexture = this._indirectTexture.toJSON( meta );\n\n\t\t\tif ( this._colorsTexture !== null ) {\n\n\t\t\t\tobject.colorsTexture = this._colorsTexture.toJSON( meta );\n\n\t\t\t}\n\n\t\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\t\tobject.boundingSphere = this.boundingSphere.toJSON();\n\n\t\t\t}\n\n\t\t\tif ( this.boundingBox !== null ) {\n\n\t\t\t\tobject.boundingBox = this.boundingBox.toJSON();\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\t/**\n\t * Returns a new 3D object with copied values from this instance.\n\t *\n\t * @param {boolean} [recursive=true] - When set to `true`, descendants of the 3D object are also cloned.\n\t * @return {Object3D} A clone of this instance.\n\t */\n\tclone( recursive ) {\n\n\t\treturn new this.constructor().copy( this, recursive );\n\n\t}\n\n\t/**\n\t * Copies the values of the given 3D object to this instance.\n\t *\n\t * @param {Object3D} source - The 3D object to copy.\n\t * @param {boolean} [recursive=true] - When set to `true`, descendants of the 3D object are cloned.\n\t * @return {Object3D} A reference to this instance.\n\t */\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\n/**\n * The default up direction for objects, also used as the default\n * position for {@link DirectionalLight} and {@link HemisphereLight}.\n *\n * @static\n * @type {Vector3}\n * @default (0,1,0)\n */\nObject3D.DEFAULT_UP = /*@__PURE__*/ new Vector3( 0, 1, 0 );\n\n/**\n * The default setting for {@link Object3D#matrixAutoUpdate} for\n * newly created 3D objects.\n *\n * @static\n * @type {boolean}\n * @default true\n */\nObject3D.DEFAULT_MATRIX_AUTO_UPDATE = true;\n\n/**\n * The default setting for {@link Object3D#matrixWorldAutoUpdate} for\n * newly created 3D objects.\n *\n * @static\n * @type {boolean}\n * @default true\n */\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\nconst _v40 = /*@__PURE__*/ new Vector4();\nconst _v41 = /*@__PURE__*/ new Vector4();\nconst _v42 = /*@__PURE__*/ new Vector4();\n\n/**\n * A geometric triangle as defined by three vectors representing its three corners.\n */\nclass Triangle {\n\n\t/**\n\t * Constructs a new triangle.\n\t *\n\t * @param {Vector3} [a=(0,0,0)] - The first corner of the triangle.\n\t * @param {Vector3} [b=(0,0,0)] - The second corner of the triangle.\n\t * @param {Vector3} [c=(0,0,0)] - The third corner of the triangle.\n\t */\n\tconstructor( a = new Vector3(), b = new Vector3(), c = new Vector3() ) {\n\n\t\t/**\n\t\t * The first corner of the triangle.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.a = a;\n\n\t\t/**\n\t\t * The second corner of the triangle.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.b = b;\n\n\t\t/**\n\t\t * The third corner of the triangle.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.c = c;\n\n\t}\n\n\t/**\n\t * Computes the normal vector of a triangle.\n\t *\n\t * @param {Vector3} a - The first corner of the triangle.\n\t * @param {Vector3} b - The second corner of the triangle.\n\t * @param {Vector3} c - The third corner of the triangle.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The triangle's normal.\n\t */\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/**\n\t * Computes a barycentric coordinates from the given vector.\n\t * Returns `null` if the triangle is degenerate.\n\t *\n\t * @param {Vector3} point - A point in 3D space.\n\t * @param {Vector3} a - The first corner of the triangle.\n\t * @param {Vector3} b - The second corner of the triangle.\n\t * @param {Vector3} c - The third corner of the triangle.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The barycentric coordinates for the given point\n\t */\n\tstatic getBarycoord( point, a, b, c, target ) {\n\n\t\t// based on: http://www.blackpawn.com/texts/pointinpoly/default.html\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\t/**\n\t * Returns `true` if the given point, when projected onto the plane of the\n\t * triangle, lies within the triangle.\n\t *\n\t * @param {Vector3} point - The point in 3D space to test.\n\t * @param {Vector3} a - The first corner of the triangle.\n\t * @param {Vector3} b - The second corner of the triangle.\n\t * @param {Vector3} c - The third corner of the triangle.\n\t * @return {boolean} Whether the given point, when projected onto the plane of the\n\t * triangle, lies within the triangle or not.\n\t */\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\t/**\n\t * Computes the value barycentrically interpolated for the given point on the\n\t * triangle. Returns `null` if the triangle is degenerate.\n\t *\n\t * @param {Vector3} point - Position of interpolated point.\n\t * @param {Vector3} p1 - The first corner of the triangle.\n\t * @param {Vector3} p2 - The second corner of the triangle.\n\t * @param {Vector3} p3 - The third corner of the triangle.\n\t * @param {Vector3} v1 - Value to interpolate of first vertex.\n\t * @param {Vector3} v2 - Value to interpolate of second vertex.\n\t * @param {Vector3} v3 - Value to interpolate of third vertex.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The interpolated value.\n\t */\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\t/**\n\t * Computes the value barycentrically interpolated for the given attribute and indices.\n\t *\n\t * @param {BufferAttribute} attr - The attribute to interpolate.\n\t * @param {number} i1 - Index of first vertex.\n\t * @param {number} i2 - Index of second vertex.\n\t * @param {number} i3 - Index of third vertex.\n\t * @param {Vector3} barycoord - The barycoordinate value to use to interpolate.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The interpolated attribute value.\n\t */\n\tstatic getInterpolatedAttribute( attr, i1, i2, i3, barycoord, target ) {\n\n\t\t_v40.setScalar( 0 );\n\t\t_v41.setScalar( 0 );\n\t\t_v42.setScalar( 0 );\n\n\t\t_v40.fromBufferAttribute( attr, i1 );\n\t\t_v41.fromBufferAttribute( attr, i2 );\n\t\t_v42.fromBufferAttribute( attr, i3 );\n\n\t\ttarget.setScalar( 0 );\n\t\ttarget.addScaledVector( _v40, barycoord.x );\n\t\ttarget.addScaledVector( _v41, barycoord.y );\n\t\ttarget.addScaledVector( _v42, barycoord.z );\n\n\t\treturn target;\n\n\t}\n\n\t/**\n\t * Returns `true` if the triangle is oriented towards the given direction.\n\t *\n\t * @param {Vector3} a - The first corner of the triangle.\n\t * @param {Vector3} b - The second corner of the triangle.\n\t * @param {Vector3} c - The third corner of the triangle.\n\t * @param {Vector3} direction - The (normalized) direction vector.\n\t * @return {boolean} Whether the triangle is oriented towards the given direction or not.\n\t */\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\t/**\n\t * Sets the triangle's vertices by copying the given values.\n\t *\n\t * @param {Vector3} a - The first corner of the triangle.\n\t * @param {Vector3} b - The second corner of the triangle.\n\t * @param {Vector3} c - The third corner of the triangle.\n\t * @return {Triangle} A reference to this triangle.\n\t */\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\t/**\n\t * Sets the triangle's vertices by copying the given array values.\n\t *\n\t * @param {Array} points - An array with 3D points.\n\t * @param {number} i0 - The array index representing the first corner of the triangle.\n\t * @param {number} i1 - The array index representing the second corner of the triangle.\n\t * @param {number} i2 - The array index representing the third corner of the triangle.\n\t * @return {Triangle} A reference to this triangle.\n\t */\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\t/**\n\t * Sets the triangle's vertices by copying the given attribute values.\n\t *\n\t * @param {BufferAttribute} attribute - A buffer attribute with 3D points data.\n\t * @param {number} i0 - The attribute index representing the first corner of the triangle.\n\t * @param {number} i1 - The attribute index representing the second corner of the triangle.\n\t * @param {number} i2 - The attribute index representing the third corner of the triangle.\n\t * @return {Triangle} A reference to this triangle.\n\t */\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\t/**\n\t * Returns a new triangle with copied values from this instance.\n\t *\n\t * @return {Triangle} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the values of the given triangle to this instance.\n\t *\n\t * @param {Triangle} triangle - The triangle to copy.\n\t * @return {Triangle} A reference to this triangle.\n\t */\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\t/**\n\t * Computes the area of the triangle.\n\t *\n\t * @return {number} The triangle's area.\n\t */\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\t/**\n\t * Computes the midpoint of the triangle.\n\t *\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The triangle's midpoint.\n\t */\n\tgetMidpoint( target ) {\n\n\t\treturn target.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 );\n\n\t}\n\n\t/**\n\t * Computes the normal of the triangle.\n\t *\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The triangle's normal.\n\t */\n\tgetNormal( target ) {\n\n\t\treturn Triangle.getNormal( this.a, this.b, this.c, target );\n\n\t}\n\n\t/**\n\t * Computes a plane the triangle lies within.\n\t *\n\t * @param {Plane} target - The target vector that is used to store the method's result.\n\t * @return {Plane} The plane the triangle lies within.\n\t */\n\tgetPlane( target ) {\n\n\t\treturn target.setFromCoplanarPoints( this.a, this.b, this.c );\n\n\t}\n\n\t/**\n\t * Computes a barycentric coordinates from the given vector.\n\t * Returns `null` if the triangle is degenerate.\n\t *\n\t * @param {Vector3} point - A point in 3D space.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The barycentric coordinates for the given point\n\t */\n\tgetBarycoord( point, target ) {\n\n\t\treturn Triangle.getBarycoord( point, this.a, this.b, this.c, target );\n\n\t}\n\n\t/**\n\t * Computes the value barycentrically interpolated for the given point on the\n\t * triangle. Returns `null` if the triangle is degenerate.\n\t *\n\t * @param {Vector3} point - Position of interpolated point.\n\t * @param {Vector3} v1 - Value to interpolate of first vertex.\n\t * @param {Vector3} v2 - Value to interpolate of second vertex.\n\t * @param {Vector3} v3 - Value to interpolate of third vertex.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The interpolated value.\n\t */\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\t/**\n\t * Returns `true` if the given point, when projected onto the plane of the\n\t * triangle, lies within the triangle.\n\t *\n\t * @param {Vector3} point - The point in 3D space to test.\n\t * @return {boolean} Whether the given point, when projected onto the plane of the\n\t * triangle, lies within the triangle or not.\n\t */\n\tcontainsPoint( point ) {\n\n\t\treturn Triangle.containsPoint( point, this.a, this.b, this.c );\n\n\t}\n\n\t/**\n\t * Returns `true` if the triangle is oriented towards the given direction.\n\t *\n\t * @param {Vector3} direction - The (normalized) direction vector.\n\t * @return {boolean} Whether the triangle is oriented towards the given direction or not.\n\t */\n\tisFrontFacing( direction ) {\n\n\t\treturn Triangle.isFrontFacing( this.a, this.b, this.c, direction );\n\n\t}\n\n\t/**\n\t * Returns `true` if this triangle intersects with the given box.\n\t *\n\t * @param {Box3} box - The box to intersect.\n\t * @return {boolean} Whether this triangle intersects with the given box or not.\n\t */\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsTriangle( this );\n\n\t}\n\n\t/**\n\t * Returns the closest point on the triangle to the given point.\n\t *\n\t * @param {Vector3} p - The point to compute the closest point for.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The closest point on the triangle.\n\t */\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\t/**\n\t * Returns `true` if this triangle is equal with the given one.\n\t *\n\t * @param {Triangle} triangle - The triangle to test for equality.\n\t * @return {boolean} Whether this triangle is equal with the given one.\n\t */\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\n/**\n * A Color instance is represented by RGB components in the linear working\n * color space, which defaults to `LinearSRGBColorSpace`. Inputs\n * conventionally using `SRGBColorSpace` (such as hexadecimals and CSS\n * strings) are converted to the working color space automatically.\n *\n * ```js\n * // converted automatically from SRGBColorSpace to LinearSRGBColorSpace\n * const color = new THREE.Color().setHex( 0x112233 );\n * ```\n * Source color spaces may be specified explicitly, to ensure correct conversions.\n * ```js\n * // assumed already LinearSRGBColorSpace; no conversion\n * const color = new THREE.Color().setRGB( 0.5, 0.5, 0.5 );\n *\n * // converted explicitly from SRGBColorSpace to LinearSRGBColorSpace\n * const color = new THREE.Color().setRGB( 0.5, 0.5, 0.5, SRGBColorSpace );\n * ```\n * If THREE.ColorManagement is disabled, no conversions occur. For details,\n * see Color management. Iterating through a Color instance will yield\n * its components (r, g, b) in the corresponding order. A Color can be initialised\n * in any of the following ways:\n * ```js\n * //empty constructor - will default white\n * const color1 = new THREE.Color();\n *\n * //Hexadecimal color (recommended)\n * const color2 = new THREE.Color( 0xff0000 );\n *\n * //RGB string\n * const color3 = new THREE.Color(\"rgb(255, 0, 0)\");\n * const color4 = new THREE.Color(\"rgb(100%, 0%, 0%)\");\n *\n * //X11 color name - all 140 color names are supported.\n * //Note the lack of CamelCase in the name\n * const color5 = new THREE.Color( 'skyblue' );\n * //HSL string\n * const color6 = new THREE.Color(\"hsl(0, 100%, 50%)\");\n *\n * //Separate RGB values between 0 and 1\n * const color7 = new THREE.Color( 1, 0, 0 );\n * ```\n */\nclass Color {\n\n\t/**\n\t * Constructs a new color.\n\t *\n\t * Note that standard method of specifying color in three.js is with a hexadecimal triplet,\n\t * and that method is used throughout the rest of the documentation.\n\t *\n\t * @param {(number|string|Color)} [r] - The red component of the color. If `g` and `b` are\n\t * not provided, it can be hexadecimal triplet, a CSS-style string or another `Color` instance.\n\t * @param {number} [g] - The green component.\n\t * @param {number} [b] - The blue component.\n\t */\n\tconstructor( r, g, b ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isColor = true;\n\n\t\t/**\n\t\t * The red component.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.r = 1;\n\n\t\t/**\n\t\t * The green component.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.g = 1;\n\n\t\t/**\n\t\t * The blue component.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.b = 1;\n\n\t\treturn this.set( r, g, b );\n\n\t}\n\n\t/**\n\t * Sets the colors's components from the given values.\n\t *\n\t * @param {(number|string|Color)} [r] - The red component of the color. If `g` and `b` are\n\t * not provided, it can be hexadecimal triplet, a CSS-style string or another `Color` instance.\n\t * @param {number} [g] - The green component.\n\t * @param {number} [b] - The blue component.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Sets the colors's components to the given scalar value.\n\t *\n\t * @param {number} scalar - The scalar value.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Sets this color from a hexadecimal value.\n\t *\n\t * @param {number} hex - The hexadecimal value.\n\t * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n\t * @return {Color} A reference to this color.\n\t */\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.colorSpaceToWorking( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets this color from RGB values.\n\t *\n\t * @param {number} r - Red channel value between `0.0` and `1.0`.\n\t * @param {number} g - Green channel value between `0.0` and `1.0`.\n\t * @param {number} b - Blue channel value between `0.0` and `1.0`.\n\t * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n\t * @return {Color} A reference to this color.\n\t */\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.colorSpaceToWorking( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets this color from RGB values.\n\t *\n\t * @param {number} h - Hue value between `0.0` and `1.0`.\n\t * @param {number} s - Saturation value between `0.0` and `1.0`.\n\t * @param {number} l - Lightness value between `0.0` and `1.0`.\n\t * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n\t * @return {Color} A reference to this color.\n\t */\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.colorSpaceToWorking( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets this color from a CSS-style string. For example, `rgb(250, 0,0)`,\n\t * `rgb(100%, 0%, 0%)`, `hsl(0, 100%, 50%)`, `#ff0000`, `#f00`, or `red` ( or\n\t * any [X11 color name]{@link https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart} -\n\t * all 140 color names are supported).\n\t *\n\t * @param {string} style - Color as a CSS-style string.\n\t * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Sets this color from a color name. Faster than {@link Color#setStyle} if\n\t * you don't need the other CSS-style formats.\n\t *\n\t * For convenience, the list of names is exposed in `Color.NAMES` as a hash.\n\t * ```js\n\t * Color.NAMES.aliceblue // returns 0xF0F8FF\n\t * ```\n\t *\n\t * @param {string} style - The color name.\n\t * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Returns a new color with copied values from this instance.\n\t *\n\t * @return {Color} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor( this.r, this.g, this.b );\n\n\t}\n\n\t/**\n\t * Copies the values of the given color to this instance.\n\t *\n\t * @param {Color} color - The color to copy.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Copies the given color into this color, and then converts this color from\n\t * `SRGBColorSpace` to `LinearSRGBColorSpace`.\n\t *\n\t * @param {Color} color - The color to copy/convert.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Copies the given color into this color, and then converts this color from\n\t * `LinearSRGBColorSpace` to `SRGBColorSpace`.\n\t *\n\t * @param {Color} color - The color to copy/convert.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Converts this color from `SRGBColorSpace` to `LinearSRGBColorSpace`.\n\t *\n\t * @return {Color} A reference to this color.\n\t */\n\tconvertSRGBToLinear() {\n\n\t\tthis.copySRGBToLinear( this );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Converts this color from `LinearSRGBColorSpace` to `SRGBColorSpace`.\n\t *\n\t * @return {Color} A reference to this color.\n\t */\n\tconvertLinearToSRGB() {\n\n\t\tthis.copyLinearToSRGB( this );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the hexadecimal value of this color.\n\t *\n\t * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n\t * @return {number} The hexadecimal value.\n\t */\n\tgetHex( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.workingToColorSpace( _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\t/**\n\t * Returns the hexadecimal value of this color as a string (for example, 'FFFFFF').\n\t *\n\t * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n\t * @return {string} The hexadecimal value as a string.\n\t */\n\tgetHexString( colorSpace = SRGBColorSpace ) {\n\n\t\treturn ( '000000' + this.getHex( colorSpace ).toString( 16 ) ).slice( -6 );\n\n\t}\n\n\t/**\n\t * Converts the colors RGB values into the HSL format and stores them into the\n\t * given target object.\n\t *\n\t * @param {{h:number,s:number,l:number}} target - The target object that is used to store the method's result.\n\t * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n\t * @return {{h:number,s:number,l:number}} The HSL representation of this color.\n\t */\n\tgetHSL( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\n\t\tColorManagement.workingToColorSpace( _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\t/**\n\t * Returns the RGB values of this color and stores them into the given target object.\n\t *\n\t * @param {Color} target - The target color that is used to store the method's result.\n\t * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n\t * @return {Color} The RGB representation of this color.\n\t */\n\tgetRGB( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tColorManagement.workingToColorSpace( _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\t/**\n\t * Returns the value of this color as a CSS style string. Example: `rgb(255,0,0)`.\n\t *\n\t * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n\t * @return {string} The CSS representation of this color.\n\t */\n\tgetStyle( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.workingToColorSpace( _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\t/**\n\t * Adds the given HSL values to this color's values.\n\t * Internally, this converts the color's RGB values to HSL, adds HSL\n\t * and then converts the color back to RGB.\n\t *\n\t * @param {number} h - Hue value between `0.0` and `1.0`.\n\t * @param {number} s - Saturation value between `0.0` and `1.0`.\n\t * @param {number} l - Lightness value between `0.0` and `1.0`.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Adds the RGB values of the given color to the RGB values of this color.\n\t *\n\t * @param {Color} color - The color to add.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Adds the RGB values of the given colors and stores the result in this instance.\n\t *\n\t * @param {Color} color1 - The first color.\n\t * @param {Color} color2 - The second color.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Adds the given scalar value to the RGB values of this color.\n\t *\n\t * @param {number} s - The scalar to add.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Subtracts the RGB values of the given color from the RGB values of this color.\n\t *\n\t * @param {Color} color - The color to subtract.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Multiplies the RGB values of the given color with the RGB values of this color.\n\t *\n\t * @param {Color} color - The color to multiply.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Multiplies the given scalar value with the RGB values of this color.\n\t *\n\t * @param {number} s - The scalar to multiply.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Linearly interpolates this color's RGB values toward the RGB values of the\n\t * given color. The alpha argument can be thought of as the ratio between\n\t * the two colors, where `0.0` is this color and `1.0` is the first argument.\n\t *\n\t * @param {Color} color - The color to converge on.\n\t * @param {number} alpha - The interpolation factor in the closed interval `[0,1]`.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Linearly interpolates between the given colors and stores the result in this instance.\n\t * The alpha argument can be thought of as the ratio between the two colors, where `0.0`\n\t * is the first and `1.0` is the second color.\n\t *\n\t * @param {Color} color1 - The first color.\n\t * @param {Color} color2 - The second color.\n\t * @param {number} alpha - The interpolation factor in the closed interval `[0,1]`.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Linearly interpolates this color's HSL values toward the HSL values of the\n\t * given color. It differs from {@link Color#lerp} by not interpolating straight\n\t * from one color to the other, but instead going through all the hues in between\n\t * those two colors. The alpha argument can be thought of as the ratio between\n\t * the two colors, where 0.0 is this color and 1.0 is the first argument.\n\t *\n\t * @param {Color} color - The color to converge on.\n\t * @param {number} alpha - The interpolation factor in the closed interval `[0,1]`.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Sets the color's RGB components from the given 3D vector.\n\t *\n\t * @param {Vector3} v - The vector to set.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Transforms this color with the given 3x3 matrix.\n\t *\n\t * @param {Matrix3} m - The matrix.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Returns `true` if this color is equal with the given one.\n\t *\n\t * @param {Color} c - The color to test for equality.\n\t * @return {boolean} Whether this bounding color is equal with the given one.\n\t */\n\tequals( c ) {\n\n\t\treturn ( c.r === this.r ) && ( c.g === this.g ) && ( c.b === this.b );\n\n\t}\n\n\t/**\n\t * Sets this color's RGB components from the given array.\n\t *\n\t * @param {Array} array - An array holding the RGB values.\n\t * @param {number} [offset=0] - The offset into the array.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * Writes the RGB components of this color to the given array. If no array is provided,\n\t * the method returns a new instance.\n\t *\n\t * @param {Array} [array=[]] - The target array holding the color components.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Array} The color components.\n\t */\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\t/**\n\t * Sets the components of this color from the given buffer attribute.\n\t *\n\t * @param {BufferAttribute} attribute - The buffer attribute holding color data.\n\t * @param {number} index - The index into the attribute.\n\t * @return {Color} A reference to this color.\n\t */\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\t/**\n\t * This methods defines the serialization result of this class. Returns the color\n\t * as a hexadecimal value.\n\t *\n\t * @return {number} The hexadecimal value.\n\t */\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\n/**\n * A dictionary with X11 color names.\n *\n * Note that multiple words such as Dark Orange become the string 'darkorange'.\n *\n * @static\n * @type {Object}\n */\nColor.NAMES = _colorKeywords;\n\nlet _materialId = 0;\n\n/**\n * Abstract base class for materials.\n *\n * Materials define the appearance of renderable 3D objects.\n *\n * @abstract\n * @augments EventDispatcher\n */\nclass Material extends EventDispatcher {\n\n\t/**\n\t * Constructs a new material.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMaterial = true;\n\n\t\t/**\n\t\t * The ID of the material.\n\t\t *\n\t\t * @name Material#id\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tObject.defineProperty( this, 'id', { value: _materialId ++ } );\n\n\t\t/**\n\t\t * The UUID of the material.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t\t/**\n\t\t * The name of the material.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The type property is used for detecting the object type\n\t\t * in context of serialization/deserialization.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.type = 'Material';\n\n\t\t/**\n\t\t * Defines the blending type of the material.\n\t\t *\n\t\t * It must be set to `CustomBlending` if custom blending properties like\n\t\t * {@link Material#blendSrc}, {@link Material#blendDst} or {@link Material#blendEquation}\n\t\t * should have any effect.\n\t\t *\n\t\t * @type {(NoBlending|NormalBlending|AdditiveBlending|SubtractiveBlending|MultiplyBlending|CustomBlending)}\n\t\t * @default NormalBlending\n\t\t */\n\t\tthis.blending = NormalBlending;\n\n\t\t/**\n\t\t * Defines which side of faces will be rendered - front, back or both.\n\t\t *\n\t\t * @type {(FrontSide|BackSide|DoubleSide)}\n\t\t * @default FrontSide\n\t\t */\n\t\tthis.side = FrontSide;\n\n\t\t/**\n\t\t * If set to `true`, vertex colors should be used.\n\t\t *\n\t\t * The engine supports RGB and RGBA vertex colors depending on whether a three (RGB) or\n\t\t * four (RGBA) component color buffer attribute is used.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.vertexColors = false;\n\n\t\t/**\n\t\t * Defines how transparent the material is.\n\t\t * A value of `0.0` indicates fully transparent, `1.0` is fully opaque.\n\t\t *\n\t\t * If the {@link Material#transparent} is not set to `true`,\n\t\t * the material will remain fully opaque and this value will only affect its color.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.opacity = 1;\n\n\t\t/**\n\t\t * Defines whether this material is transparent. This has an effect on\n\t\t * rendering as transparent objects need special treatment and are rendered\n\t\t * after non-transparent objects.\n\t\t *\n\t\t * When set to true, the extent to which the material is transparent is\n\t\t * controlled by {@link Material#opacity}.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.transparent = false;\n\n\t\t/**\n\t\t * Enables alpha hashed transparency, an alternative to {@link Material#transparent} or\n\t\t * {@link Material#alphaTest}. The material will not be rendered if opacity is lower than\n\t\t * a random threshold. Randomization introduces some grain or noise, but approximates alpha\n\t\t * blending without the associated problems of sorting. Using TAA can reduce the resulting noise.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.alphaHash = false;\n\n\t\t/**\n\t\t * Defines the blending source factor.\n\t\t *\n\t\t * @type {(ZeroFactor|OneFactor|SrcColorFactor|OneMinusSrcColorFactor|SrcAlphaFactor|OneMinusSrcAlphaFactor|DstAlphaFactor|OneMinusDstAlphaFactor|DstColorFactor|OneMinusDstColorFactor|SrcAlphaSaturateFactor|ConstantColorFactor|OneMinusConstantColorFactor|ConstantAlphaFactor|OneMinusConstantAlphaFactor)}\n\t\t * @default SrcAlphaFactor\n\t\t */\n\t\tthis.blendSrc = SrcAlphaFactor;\n\n\t\t/**\n\t\t * Defines the blending destination factor.\n\t\t *\n\t\t * @type {(ZeroFactor|OneFactor|SrcColorFactor|OneMinusSrcColorFactor|SrcAlphaFactor|OneMinusSrcAlphaFactor|DstAlphaFactor|OneMinusDstAlphaFactor|DstColorFactor|OneMinusDstColorFactor|SrcAlphaSaturateFactor|ConstantColorFactor|OneMinusConstantColorFactor|ConstantAlphaFactor|OneMinusConstantAlphaFactor)}\n\t\t * @default OneMinusSrcAlphaFactor\n\t\t */\n\t\tthis.blendDst = OneMinusSrcAlphaFactor;\n\n\t\t/**\n\t\t * Defines the blending equation.\n\t\t *\n\t\t * @type {(AddEquation|SubtractEquation|ReverseSubtractEquation|MinEquation|MaxEquation)}\n\t\t * @default AddEquation\n\t\t */\n\t\tthis.blendEquation = AddEquation;\n\n\t\t/**\n\t\t * Defines the blending source alpha factor.\n\t\t *\n\t\t * @type {?(ZeroFactor|OneFactor|SrcColorFactor|OneMinusSrcColorFactor|SrcAlphaFactor|OneMinusSrcAlphaFactor|DstAlphaFactor|OneMinusDstAlphaFactor|DstColorFactor|OneMinusDstColorFactor|SrcAlphaSaturateFactor|ConstantColorFactor|OneMinusConstantColorFactor|ConstantAlphaFactor|OneMinusConstantAlphaFactor)}\n\t\t * @default null\n\t\t */\n\t\tthis.blendSrcAlpha = null;\n\n\t\t/**\n\t\t * Defines the blending destination alpha factor.\n\t\t *\n\t\t * @type {?(ZeroFactor|OneFactor|SrcColorFactor|OneMinusSrcColorFactor|SrcAlphaFactor|OneMinusSrcAlphaFactor|DstAlphaFactor|OneMinusDstAlphaFactor|DstColorFactor|OneMinusDstColorFactor|SrcAlphaSaturateFactor|ConstantColorFactor|OneMinusConstantColorFactor|ConstantAlphaFactor|OneMinusConstantAlphaFactor)}\n\t\t * @default null\n\t\t */\n\t\tthis.blendDstAlpha = null;\n\n\t\t/**\n\t\t * Defines the blending equation of the alpha channel.\n\t\t *\n\t\t * @type {?(AddEquation|SubtractEquation|ReverseSubtractEquation|MinEquation|MaxEquation)}\n\t\t * @default null\n\t\t */\n\t\tthis.blendEquationAlpha = null;\n\n\t\t/**\n\t\t * Represents the RGB values of the constant blend color.\n\t\t *\n\t\t * This property has only an effect when using custom blending with `ConstantColor` or `OneMinusConstantColor`.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.blendColor = new Color( 0, 0, 0 );\n\n\t\t/**\n\t\t * Represents the alpha value of the constant blend color.\n\t\t *\n\t\t * This property has only an effect when using custom blending with `ConstantAlpha` or `OneMinusConstantAlpha`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.blendAlpha = 0;\n\n\t\t/**\n\t\t * Defines the depth function.\n\t\t *\n\t\t * @type {(NeverDepth|AlwaysDepth|LessDepth|LessEqualDepth|EqualDepth|GreaterEqualDepth|GreaterDepth|NotEqualDepth)}\n\t\t * @default LessEqualDepth\n\t\t */\n\t\tthis.depthFunc = LessEqualDepth;\n\n\t\t/**\n\t\t * Whether to have depth test enabled when rendering this material.\n\t\t * When the depth test is disabled, the depth write will also be implicitly disabled.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.depthTest = true;\n\n\t\t/**\n\t\t * Whether rendering this material has any effect on the depth buffer.\n\t\t *\n\t\t * When drawing 2D overlays it can be useful to disable the depth writing in\n\t\t * order to layer several things together without creating z-index artifacts.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.depthWrite = true;\n\n\t\t/**\n\t\t * The bit mask to use when writing to the stencil buffer.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0xff\n\t\t */\n\t\tthis.stencilWriteMask = 0xff;\n\n\t\t/**\n\t\t * The stencil comparison function to use.\n\t\t *\n\t\t * @type {NeverStencilFunc|LessStencilFunc|EqualStencilFunc|LessEqualStencilFunc|GreaterStencilFunc|NotEqualStencilFunc|GreaterEqualStencilFunc|AlwaysStencilFunc}\n\t\t * @default AlwaysStencilFunc\n\t\t */\n\t\tthis.stencilFunc = AlwaysStencilFunc;\n\n\t\t/**\n\t\t * The value to use when performing stencil comparisons or stencil operations.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.stencilRef = 0;\n\n\t\t/**\n\t\t * The bit mask to use when comparing against the stencil buffer.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0xff\n\t\t */\n\t\tthis.stencilFuncMask = 0xff;\n\n\t\t/**\n\t\t * Which stencil operation to perform when the comparison function returns `false`.\n\t\t *\n\t\t * @type {ZeroStencilOp|KeepStencilOp|ReplaceStencilOp|IncrementStencilOp|DecrementStencilOp|IncrementWrapStencilOp|DecrementWrapStencilOp|InvertStencilOp}\n\t\t * @default KeepStencilOp\n\t\t */\n\t\tthis.stencilFail = KeepStencilOp;\n\n\t\t/**\n\t\t * Which stencil operation to perform when the comparison function returns\n\t\t * `true` but the depth test fails.\n\t\t *\n\t\t * @type {ZeroStencilOp|KeepStencilOp|ReplaceStencilOp|IncrementStencilOp|DecrementStencilOp|IncrementWrapStencilOp|DecrementWrapStencilOp|InvertStencilOp}\n\t\t * @default KeepStencilOp\n\t\t */\n\t\tthis.stencilZFail = KeepStencilOp;\n\n\t\t/**\n\t\t * Which stencil operation to perform when the comparison function returns\n\t\t * `true` and the depth test passes.\n\t\t *\n\t\t * @type {ZeroStencilOp|KeepStencilOp|ReplaceStencilOp|IncrementStencilOp|DecrementStencilOp|IncrementWrapStencilOp|DecrementWrapStencilOp|InvertStencilOp}\n\t\t * @default KeepStencilOp\n\t\t */\n\t\tthis.stencilZPass = KeepStencilOp;\n\n\t\t/**\n\t\t * Whether stencil operations are performed against the stencil buffer. In\n\t\t * order to perform writes or comparisons against the stencil buffer this\n\t\t * value must be `true`.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.stencilWrite = false;\n\n\t\t/**\n\t\t * User-defined clipping planes specified as THREE.Plane objects in world\n\t\t * space. These planes apply to the objects this material is attached to.\n\t\t * Points in space whose signed distance to the plane is negative are clipped\n\t\t * (not rendered). This requires {@link WebGLRenderer#localClippingEnabled} to\n\t\t * be `true`.\n\t\t *\n\t\t * @type {?Array}\n\t\t * @default null\n\t\t */\n\t\tthis.clippingPlanes = null;\n\n\t\t/**\n\t\t * Changes the behavior of clipping planes so that only their intersection is\n\t\t * clipped, rather than their union.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.clipIntersection = false;\n\n\t\t/**\n\t\t * Defines whether to clip shadows according to the clipping planes specified\n\t\t * on this material.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.clipShadows = false;\n\n\t\t/**\n\t\t * Defines which side of faces cast shadows. If `null`, the side casting shadows\n\t\t * is determined as follows:\n\t\t *\n\t\t * - When {@link Material#side} is set to `FrontSide`, the back side cast shadows.\n\t\t * - When {@link Material#side} is set to `BackSide`, the front side cast shadows.\n\t\t * - When {@link Material#side} is set to `DoubleSide`, both sides cast shadows.\n\t\t *\n\t\t * @type {?(FrontSide|BackSide|DoubleSide)}\n\t\t * @default null\n\t\t */\n\t\tthis.shadowSide = null;\n\n\t\t/**\n\t\t * Whether to render the material's color.\n\t\t *\n\t\t * This can be used in conjunction with {@link Object3D#renderOder} to create invisible\n\t\t * objects that occlude other objects.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.colorWrite = true;\n\n\t\t/**\n\t\t * Override the renderer's default precision for this material.\n\t\t *\n\t\t * @type {?('highp'|'mediump'|'lowp')}\n\t\t * @default null\n\t\t */\n\t\tthis.precision = null;\n\n\t\t/**\n\t\t * Whether to use polygon offset or not. When enabled, each fragment's depth value will\n\t\t * be offset after it is interpolated from the depth values of the appropriate vertices.\n\t\t * The offset is added before the depth test is performed and before the value is written\n\t\t * into the depth buffer.\n\t\t *\n\t\t * Can be useful for rendering hidden-line images, for applying decals to surfaces, and for\n\t\t * rendering solids with highlighted edges.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.polygonOffset = false;\n\n\t\t/**\n\t\t * Specifies a scale factor that is used to create a variable depth offset for each polygon.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.polygonOffsetFactor = 0;\n\n\t\t/**\n\t\t * Is multiplied by an implementation-specific value to create a constant depth offset.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.polygonOffsetUnits = 0;\n\n\t\t/**\n\t\t * Whether to apply dithering to the color to remove the appearance of banding.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.dithering = false;\n\n\t\t/**\n\t\t * Whether alpha to coverage should be enabled or not. Can only be used with MSAA-enabled contexts\n\t\t * (meaning when the renderer was created with *antialias* parameter set to `true`). Enabling this\n\t\t * will smooth aliasing on clip plane edges and alphaTest-clipped edges.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.alphaToCoverage = false;\n\n\t\t/**\n\t\t * Whether to premultiply the alpha (transparency) value.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.premultipliedAlpha = false;\n\n\t\t/**\n\t\t * Whether double-sided, transparent objects should be rendered with a single pass or not.\n\t\t *\n\t\t * The engine renders double-sided, transparent objects with two draw calls (back faces first,\n\t\t * then front faces) to mitigate transparency artifacts. There are scenarios however where this\n\t\t * approach produces no quality gains but still doubles draw calls e.g. when rendering flat\n\t\t * vegetation like grass sprites. In these cases, set the `forceSinglePass` flag to `true` to\n\t\t * disable the two pass rendering to avoid performance issues.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.forceSinglePass = false;\n\n\t\t/**\n\t\t * Whether it's possible to override the material with {@link Scene#overrideMaterial} or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.allowOverride = true;\n\n\t\t/**\n\t\t * Defines whether 3D objects using this material are visible.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.visible = true;\n\n\t\t/**\n\t\t * Defines whether this material is tone mapped according to the renderer's tone mapping setting.\n\t\t *\n\t\t * It is ignored when rendering to a render target or using post processing or when using\n\t\t * `WebGPURenderer`. In all these cases, all materials are honored by tone mapping.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.toneMapped = true;\n\n\t\t/**\n\t\t * An object that can be used to store custom data about the Material. It\n\t\t * should not hold references to functions as these will not be cloned.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.userData = {};\n\n\t\t/**\n\t\t * This starts at `0` and counts how many times {@link Material#needsUpdate} is set to `true`.\n\t\t *\n\t\t * @type {number}\n\t\t * @readonly\n\t\t * @default 0\n\t\t */\n\t\tthis.version = 0;\n\n\t\tthis._alphaTest = 0;\n\n\t}\n\n\t/**\n\t * Sets the alpha value to be used when running an alpha test. The material\n\t * will not be rendered if the opacity is lower than this value.\n\t *\n\t * @type {number}\n\t * @readonly\n\t * @default 0\n\t */\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\t/**\n\t * An optional callback that is executed immediately before the material is used to render a 3D object.\n\t *\n\t * This method can only be used when rendering with {@link WebGLRenderer}.\n\t *\n\t * @param {WebGLRenderer} renderer - The renderer.\n\t * @param {Scene} scene - The scene.\n\t * @param {Camera} camera - The camera that is used to render the scene.\n\t * @param {BufferGeometry} geometry - The 3D object's geometry.\n\t * @param {Object3D} object - The 3D object.\n\t * @param {Object} group - The geometry group data.\n\t */\n\tonBeforeRender( /* renderer, scene, camera, geometry, object, group */ ) {}\n\n\t/**\n\t * An optional callback that is executed immediately before the shader\n\t * program is compiled. This function is called with the shader source code\n\t * as a parameter. Useful for the modification of built-in materials.\n\t *\n\t * This method can only be used when rendering with {@link WebGLRenderer}. The\n\t * recommended approach when customizing materials is to use `WebGPURenderer` with the new\n\t * Node Material system and [TSL]{@link https://github.com/mrdoob/three.js/wiki/Three.js-Shading-Language}.\n\t *\n\t * @param {{vertexShader:string,fragmentShader:string,uniforms:Object}} shaderobject - The object holds the uniforms and the vertex and fragment shader source.\n\t * @param {WebGLRenderer} renderer - A reference to the renderer.\n\t */\n\tonBeforeCompile( /* shaderobject, renderer */ ) {}\n\n\t/**\n\t * In case {@link Material#onBeforeCompile} is used, this callback can be used to identify\n\t * values of settings used in `onBeforeCompile()`, so three.js can reuse a cached\n\t * shader or recompile the shader for this material as needed.\n\t *\n\t * This method can only be used when rendering with {@link WebGLRenderer}.\n\t *\n\t * @return {string} The custom program cache key.\n\t */\n\tcustomProgramCacheKey() {\n\n\t\treturn this.onBeforeCompile.toString();\n\n\t}\n\n\t/**\n\t * This method can be used to set default values from parameter objects.\n\t * It is a generic implementation so it can be used with different types\n\t * of materials.\n\t *\n\t * @param {Object} [values] - The material values to set.\n\t */\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\t/**\n\t * Serializes the material into JSON.\n\t *\n\t * @param {?(Object|string)} meta - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized material.\n\t * @see {@link ObjectLoader#parse}\n\t */\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.7,\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.sheenColorMap && this.sheenColorMap.isTexture ) {\n\n\t\t\tdata.sheenColorMap = this.sheenColorMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.sheenRoughnessMap && this.sheenRoughnessMap.isTexture ) {\n\n\t\t\tdata.sheenRoughnessMap = this.sheenRoughnessMap.toJSON( meta ).uuid;\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\t/**\n\t * Returns a new material with copied values from this instance.\n\t *\n\t * @return {Material} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the values of the given material to this instance.\n\t *\n\t * @param {Material} source - The material to copy.\n\t * @return {Material} A reference to this instance.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t *\n\t * @fires Material#dispose\n\t */\n\tdispose() {\n\n\t\t/**\n\t\t * Fires when the material has been disposed of.\n\t\t *\n\t\t * @event Material#dispose\n\t\t * @type {Object}\n\t\t */\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\t/**\n\t * Setting this property to `true` indicates the engine the material\n\t * needs to be recompiled.\n\t *\n\t * @type {boolean}\n\t * @default false\n\t * @param {boolean} value\n\t */\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n}\n\n/**\n * A material for drawing geometries in a simple shaded (flat or wireframe) way.\n *\n * This material is not affected by lights.\n *\n * @augments Material\n */\nclass MeshBasicMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh basic material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshBasicMaterial = true;\n\n\t\tthis.type = 'MeshBasicMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The light map. Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.lightMap = null;\n\n\t\t/**\n\t\t * Intensity of the baked light.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\t/**\n\t\t * The red channel of this texture is used as the ambient occlusion map.\n\t\t * Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.aoMap = null;\n\n\t\t/**\n\t\t * Intensity of the ambient occlusion effect. Range is `[0,1]`, where `0`\n\t\t * disables ambient occlusion. Where intensity is `1` and the AO map's\n\t\t * red channel is also `1`, ambient light is fully occluded on a surface.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\t/**\n\t\t * Specular map used by the material.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.specularMap = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * The environment map.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.envMap = null;\n\n\t\t/**\n\t\t * The rotation of the environment map in radians.\n\t\t *\n\t\t * @type {Euler}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.envMapRotation = new Euler();\n\n\t\t/**\n\t\t * How to combine the result of the surface's color with the environment map, if any.\n\t\t *\n\t\t * When set to `MixOperation`, the {@link MeshBasicMaterial#reflectivity} is used to\n\t\t * blend between the two colors.\n\t\t *\n\t\t * @type {(MultiplyOperation|MixOperation|AddOperation)}\n\t\t * @default MultiplyOperation\n\t\t */\n\t\tthis.combine = MultiplyOperation;\n\n\t\t/**\n\t\t * How much the environment map affects the surface.\n\t\t * The valid range is between `0` (no reflections) and `1` (full reflections).\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.reflectivity = 1;\n\n\t\t/**\n\t\t * The index of refraction (IOR) of air (approximately 1) divided by the\n\t\t * index of refraction of the material. It is used with environment mapping\n\t\t * modes {@link CubeRefractionMapping} and {@link EquirectangularRefractionMapping}.\n\t\t * The refraction ratio should not exceed `1`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.98\n\t\t */\n\t\tthis.refractionRatio = 0.98;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.wireframeLinewidth = 1;\n\n\t\t/**\n\t\t * Defines appearance of wireframe ends.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinecap = 'round';\n\n\t\t/**\n\t\t * Defines appearance of wireframe joints.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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 &= -8388609; // 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/**\n * Returns a half precision floating point value (FP16) from the given single\n * precision floating point value (FP32).\n *\n * @param {number} val - A single precision floating point value.\n * @return {number} The FP16 value.\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/**\n * Returns a single precision floating point value (FP32) from the given half\n * precision floating point value (FP16).\n *\n * @param {number} val - A half precision floating point value.\n * @return {number} The FP32 value.\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\n/**\n * A class containing utility functions for data.\n *\n * @hideconstructor\n */\nclass DataUtils {\n\n\t/**\n\t * Returns a half precision floating point value (FP16) from the given single\n\t * precision floating point value (FP32).\n\t *\n\t * @param {number} val - A single precision floating point value.\n\t * @return {number} The FP16 value.\n\t */\n\tstatic toHalfFloat( val ) {\n\n\t\treturn toHalfFloat( val );\n\n\t}\n\n\t/**\n\t * Returns a single precision floating point value (FP32) from the given half\n\t * precision floating point value (FP16).\n\t *\n\t * @param {number} val - A half precision floating point value.\n\t * @return {number} The FP32 value.\n\t */\n\tstatic fromHalfFloat( val ) {\n\n\t\treturn fromHalfFloat( val );\n\n\t}\n\n}\n\nconst _vector$9 = /*@__PURE__*/ new Vector3();\nconst _vector2$1 = /*@__PURE__*/ new Vector2();\n\nlet _id$2 = 0;\n\n/**\n * This class stores data for an attribute (such as vertex positions, face\n * indices, normals, colors, UVs, and any custom attributes ) associated with\n * a geometry, which allows for more efficient passing of data to the GPU.\n *\n * When working with vector-like data, the `fromBufferAttribute( attribute, index )`\n * helper methods on vector and color class might be helpful. E.g. {@link Vector3#fromBufferAttribute}.\n */\nclass BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {TypedArray} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isBufferAttribute = true;\n\n\t\t/**\n\t\t * The ID of the buffer attribute.\n\t\t *\n\t\t * @name BufferAttribute#id\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tObject.defineProperty( this, 'id', { value: _id$2 ++ } );\n\n\t\t/**\n\t\t * The name of the buffer attribute.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The array holding the attribute data. It should have `itemSize * numVertices`\n\t\t * elements, where `numVertices` is the number of vertices in the associated geometry.\n\t\t *\n\t\t * @type {TypedArray}\n\t\t */\n\t\tthis.array = array;\n\n\t\t/**\n\t\t * The number of values of the array that should be associated with a particular vertex.\n\t\t * For instance, if this attribute is storing a 3-component vector (such as a position,\n\t\t * normal, or color), then the value should be `3`.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.itemSize = itemSize;\n\n\t\t/**\n\t\t * Represents the number of items this buffer attribute stores. It is internally computed\n\t\t * by dividing the `array` length by the `itemSize`.\n\t\t *\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tthis.count = array !== undefined ? array.length / itemSize : 0;\n\n\t\t/**\n\t\t * Applies to integer data only. Indicates how the underlying data in the buffer maps to\n\t\t * the values in the GLSL code. For instance, if `array` is an instance of `UInt16Array`,\n\t\t * and `normalized` is `true`, the values `0 - +65535` in the array data will be mapped to\n\t\t * `0.0f - +1.0f` in the GLSL attribute. If `normalized` is `false`, the values will be converted\n\t\t * to floats unmodified, i.e. `65535` becomes `65535.0f`.\n\t\t *\n\t\t * @type {boolean}\n\t\t */\n\t\tthis.normalized = normalized;\n\n\t\t/**\n\t\t * Defines the intended usage pattern of the data store for optimization purposes.\n\t\t *\n\t\t * Note: After the initial use of a buffer, its usage cannot be changed. Instead,\n\t\t * instantiate a new one and set the desired usage before the next render.\n\t\t *\n\t\t * @type {(StaticDrawUsage|DynamicDrawUsage|StreamDrawUsage|StaticReadUsage|DynamicReadUsage|StreamReadUsage|StaticCopyUsage|DynamicCopyUsage|StreamCopyUsage)}\n\t\t * @default StaticDrawUsage\n\t\t */\n\t\tthis.usage = StaticDrawUsage;\n\n\t\t/**\n\t\t * This can be used to only update some components of stored vectors (for example, just the\n\t\t * component related to color). Use the `addUpdateRange()` function to add ranges to this array.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.updateRanges = [];\n\n\t\t/**\n\t\t * Configures the bound GPU type for use in shaders.\n\t\t *\n\t\t * Note: this only has an effect for integer arrays and is not configurable for float arrays.\n\t\t * For lower precision float types, use `Float16BufferAttribute`.\n\t\t *\n\t\t * @type {(FloatType|IntType)}\n\t\t * @default FloatType\n\t\t */\n\t\tthis.gpuType = FloatType;\n\n\t\t/**\n\t\t * A version number, incremented every time the `needsUpdate` is set to `true`.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.version = 0;\n\n\t}\n\n\t/**\n\t * A callback function that is executed after the renderer has transferred the attribute\n\t * array data to the GPU.\n\t */\n\tonUploadCallback() {}\n\n\t/**\n\t * Flag to indicate that this attribute has changed and should be re-sent to\n\t * the GPU. Set this to `true` when you modify the value of the array.\n\t *\n\t * @type {number}\n\t * @default false\n\t * @param {boolean} value\n\t */\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\t/**\n\t * Sets the usage of this buffer attribute.\n\t *\n\t * @param {(StaticDrawUsage|DynamicDrawUsage|StreamDrawUsage|StaticReadUsage|DynamicReadUsage|StreamReadUsage|StaticCopyUsage|DynamicCopyUsage|StreamCopyUsage)} value - The usage to set.\n\t * @return {BufferAttribute} A reference to this buffer attribute.\n\t */\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Adds a range of data in the data array to be updated on the GPU.\n\t *\n\t * @param {number} start - Position at which to start update.\n\t * @param {number} count - The number of components to update.\n\t */\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\t/**\n\t * Clears the update ranges.\n\t */\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\t/**\n\t * Copies the values of the given buffer attribute to this instance.\n\t *\n\t * @param {BufferAttribute} source - The buffer attribute to copy.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Copies a vector from the given buffer attribute to this one. The start\n\t * and destination position in the attribute buffers are represented by the\n\t * given indices.\n\t *\n\t * @param {number} index1 - The destination index into this buffer attribute.\n\t * @param {BufferAttribute} attribute - The buffer attribute to copy from.\n\t * @param {number} index2 - The source index into the given buffer attribute.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Copies the given array data into this buffer attribute.\n\t *\n\t * @param {(TypedArray|Array)} array - The array to copy.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\n\tcopyArray( array ) {\n\n\t\tthis.array.set( array );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Applies the given 3x3 matrix to the given attribute. Works with\n\t * item size `2` and `3`.\n\t *\n\t * @param {Matrix3} m - The matrix to apply.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Applies the given 4x4 matrix to the given attribute. Only works with\n\t * item size `3`.\n\t *\n\t * @param {Matrix4} m - The matrix to apply.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Applies the given 3x3 normal matrix to the given attribute. Only works with\n\t * item size `3`.\n\t *\n\t * @param {Matrix3} m - The normal matrix to apply.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Applies the given 4x4 matrix to the given attribute. Only works with\n\t * item size `3` and with direction vectors.\n\t *\n\t * @param {Matrix4} m - The matrix to apply.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the given array data in the buffer attribute.\n\t *\n\t * @param {(TypedArray|Array)} value - The array data to set.\n\t * @param {number} [offset=0] - The offset in this buffer attribute's array.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Returns the given component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} component - The component index.\n\t * @return {number} The returned value.\n\t */\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\t/**\n\t * Sets the given value to the given component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} component - The component index.\n\t * @param {number} value - The value to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Returns the x component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The x component.\n\t */\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\t/**\n\t * Sets the x component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Returns the y component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The y component.\n\t */\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\t/**\n\t * Sets the y component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} y - The value to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Returns the z component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The z component.\n\t */\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\t/**\n\t * Sets the z component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} z - The value to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Returns the w component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The w component.\n\t */\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\t/**\n\t * Sets the w component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} w - The value to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the x and y component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value for the x component to set.\n\t * @param {number} y - The value for the y component to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the x, y and z component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value for the x component to set.\n\t * @param {number} y - The value for the y component to set.\n\t * @param {number} z - The value for the z component to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the x, y, z and w component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value for the x component to set.\n\t * @param {number} y - The value for the y component to set.\n\t * @param {number} z - The value for the z component to set.\n\t * @param {number} w - The value for the w component to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the given callback function that is executed after the Renderer has transferred\n\t * the attribute array data to the GPU. Can be used to perform clean-up operations after\n\t * the upload when attribute data are not needed anymore on the CPU side.\n\t *\n\t * @param {Function} callback - The `onUpload()` callback.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns a new buffer attribute with copied values from this instance.\n\t *\n\t * @return {BufferAttribute} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor( this.array, this.itemSize ).copy( this );\n\n\t}\n\n\t/**\n\t * Serializes the buffer attribute into JSON.\n\t *\n\t * @return {Object} A JSON object representing the serialized buffer attribute.\n\t */\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 * Convenient class that can be used when creating a `Int8` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Int8BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Int8Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\n/**\n * Convenient class that can be used when creating a `UInt8` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Uint8BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Uint8Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\n/**\n * Convenient class that can be used when creating a `UInt8Clamped` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Uint8ClampedBufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Uint8ClampedArray)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8ClampedArray( array ), itemSize, normalized );\n\n\t}\n\n}\n\n/**\n * Convenient class that can be used when creating a `Int16` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Int16BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Int16Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\n/**\n * Convenient class that can be used when creating a `UInt16` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Uint16BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Uint16Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\n/**\n * Convenient class that can be used when creating a `Int32` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Int32BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Int32Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\n/**\n * Convenient class that can be used when creating a `UInt32` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Uint32BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Uint32Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\n/**\n * Convenient class that can be used when creating a `Float16` buffer attribute with\n * a plain `Array` instance.\n *\n * This class automatically converts to and from FP16 via `Uint16Array` since `Float16Array`\n * browser support is still problematic.\n *\n * @augments BufferAttribute\n */\nclass Float16BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Uint16Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\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/**\n * Convenient class that can be used when creating a `Float32` buffer attribute with\n * a plain `Array` instance.\n *\n * @augments BufferAttribute\n */\nclass Float32BufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new buffer attribute.\n\t *\n\t * @param {(Array|Float32Array)} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Float32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nlet _id$1 = 0;\n\nconst _m1 = /*@__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\n/**\n * A representation of mesh, line, or point geometry. Includes vertex\n * positions, face indices, normals, colors, UVs, and custom attributes\n * within buffers, reducing the cost of passing all this data to the GPU.\n *\n * ```js\n * const geometry = new THREE.BufferGeometry();\n * // create a simple square shape. We duplicate the top left and bottom right\n * // vertices because each vertex needs to appear once per triangle.\n * const vertices = new Float32Array( [\n * \t-1.0, -1.0, 1.0, // v0\n * \t 1.0, -1.0, 1.0, // v1\n * \t 1.0, 1.0, 1.0, // v2\n *\n * \t 1.0, 1.0, 1.0, // v3\n * \t-1.0, 1.0, 1.0, // v4\n * \t-1.0, -1.0, 1.0 // v5\n * ] );\n * // itemSize = 3 because there are 3 values (components) per vertex\n * geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );\n * const material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );\n * const mesh = new THREE.Mesh( geometry, material );\n * ```\n *\n * @augments EventDispatcher\n */\nclass BufferGeometry extends EventDispatcher {\n\n\t/**\n\t * Constructs a new geometry.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isBufferGeometry = true;\n\n\t\t/**\n\t\t * The ID of the geometry.\n\t\t *\n\t\t * @name BufferGeometry#id\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tObject.defineProperty( this, 'id', { value: _id$1 ++ } );\n\n\t\t/**\n\t\t * The UUID of the geometry.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t\t/**\n\t\t * The name of the geometry.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\t\tthis.type = 'BufferGeometry';\n\n\t\t/**\n\t\t * Allows for vertices to be re-used across multiple triangles; this is\n\t\t * called using \"indexed triangles\". Each triangle is associated with the\n\t\t * indices of three vertices. This attribute therefore stores the index of\n\t\t * each vertex for each triangular face. If this attribute is not set, the\n\t\t * renderer assumes that each three contiguous positions represent a single triangle.\n\t\t *\n\t\t * @type {?BufferAttribute}\n\t\t * @default null\n\t\t */\n\t\tthis.index = null;\n\n\t\t/**\n\t\t * A (storage) buffer attribute which was generated with a compute shader and\n\t\t * now defines indirect draw calls.\n\t\t *\n\t\t * Can only be used with {@link WebGPURenderer} and a WebGPU backend.\n\t\t *\n\t\t * @type {?BufferAttribute}\n\t\t * @default null\n\t\t */\n\t\tthis.indirect = null;\n\n\t\t/**\n\t\t * This dictionary has as id the name of the attribute to be set and as value\n\t\t * the buffer attribute to set it to. Rather than accessing this property directly,\n\t\t * use `setAttribute()` and `getAttribute()` to access attributes of this geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.attributes = {};\n\n\t\t/**\n\t\t * This dictionary holds the morph targets of the geometry.\n\t\t *\n\t\t * Note: Once the geometry has been rendered, the morph attribute data cannot\n\t\t * be changed. You will have to call `dispose()?, and create a new geometry instance.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.morphAttributes = {};\n\n\t\t/**\n\t\t * Used to control the morph target behavior; when set to `true`, the morph\n\t\t * target data is treated as relative offsets, rather than as absolute\n\t\t * positions/normals.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.morphTargetsRelative = false;\n\n\t\t/**\n\t\t * Split the geometry into groups, each of which will be rendered in a\n\t\t * separate draw call. This allows an array of materials to be used with the geometry.\n\t\t *\n\t\t * Use `addGroup()` and `clearGroups()` to edit groups, rather than modifying this array directly.\n\t\t *\n\t\t * Every vertex and index must belong to exactly one group — groups must not share vertices or\n\t\t * indices, and must not leave vertices or indices unused.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.groups = [];\n\n\t\t/**\n\t\t * Bounding box for the geometry which can be calculated with `computeBoundingBox()`.\n\t\t *\n\t\t * @type {?Box3}\n\t\t * @default null\n\t\t */\n\t\tthis.boundingBox = null;\n\n\t\t/**\n\t\t * Bounding sphere for the geometry which can be calculated with `computeBoundingSphere()`.\n\t\t *\n\t\t * @type {?Sphere}\n\t\t * @default null\n\t\t */\n\t\tthis.boundingSphere = null;\n\n\t\t/**\n\t\t * Determines the part of the geometry to render. This should not be set directly,\n\t\t * instead use `setDrawRange()`.\n\t\t *\n\t\t * @type {{start:number,count:number}}\n\t\t */\n\t\tthis.drawRange = { start: 0, count: Infinity };\n\n\t\t/**\n\t\t * An object that can be used to store custom data about the geometry.\n\t\t * It should not hold references to functions as these will not be cloned.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.userData = {};\n\n\t}\n\n\t/**\n\t * Returns the index of this geometry.\n\t *\n\t * @return {?BufferAttribute} The index. Returns `null` if no index is defined.\n\t */\n\tgetIndex() {\n\n\t\treturn this.index;\n\n\t}\n\n\t/**\n\t * Sets the given index to this geometry.\n\t *\n\t * @param {Array|BufferAttribute} index - The index to set.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\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\t/**\n\t * Sets the given indirect attribute to this geometry.\n\t *\n\t * @param {BufferAttribute} indirect - The attribute holding indirect draw calls.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\tsetIndirect( indirect ) {\n\n\t\tthis.indirect = indirect;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the indirect attribute of this geometry.\n\t *\n\t * @return {?BufferAttribute} The indirect attribute. Returns `null` if no indirect attribute is defined.\n\t */\n\tgetIndirect() {\n\n\t\treturn this.indirect;\n\n\t}\n\n\t/**\n\t * Returns the buffer attribute for the given name.\n\t *\n\t * @param {string} name - The attribute name.\n\t * @return {BufferAttribute|InterleavedBufferAttribute|undefined} The buffer attribute.\n\t * Returns `undefined` if not attribute has been found.\n\t */\n\tgetAttribute( name ) {\n\n\t\treturn this.attributes[ name ];\n\n\t}\n\n\t/**\n\t * Sets the given attribute for the given name.\n\t *\n\t * @param {string} name - The attribute name.\n\t * @param {BufferAttribute|InterleavedBufferAttribute} attribute - The attribute to set.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\tsetAttribute( name, attribute ) {\n\n\t\tthis.attributes[ name ] = attribute;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Deletes the attribute for the given name.\n\t *\n\t * @param {string} name - The attribute name to delete.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\tdeleteAttribute( name ) {\n\n\t\tdelete this.attributes[ name ];\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns `true` if this geometry has an attribute for the given name.\n\t *\n\t * @param {string} name - The attribute name.\n\t * @return {boolean} Whether this geometry has an attribute for the given name or not.\n\t */\n\thasAttribute( name ) {\n\n\t\treturn this.attributes[ name ] !== undefined;\n\n\t}\n\n\t/**\n\t * Adds a group to this geometry.\n\t *\n\t * @param {number} start - The first element in this draw call. That is the first\n\t * vertex for non-indexed geometry, otherwise the first triangle index.\n\t * @param {number} count - Specifies how many vertices (or indices) are part of this group.\n\t * @param {number} [materialIndex=0] - The material array index to use.\n\t */\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\t/**\n\t * Clears all groups.\n\t */\n\tclearGroups() {\n\n\t\tthis.groups = [];\n\n\t}\n\n\t/**\n\t * Sets the draw range for this geometry.\n\t *\n\t * @param {number} start - The first vertex for non-indexed geometry, otherwise the first triangle index.\n\t * @param {number} count - For non-indexed BufferGeometry, `count` is the number of vertices to render.\n\t * For indexed BufferGeometry, `count` is the number of indices to render.\n\t */\n\tsetDrawRange( start, count ) {\n\n\t\tthis.drawRange.start = start;\n\t\tthis.drawRange.count = count;\n\n\t}\n\n\t/**\n\t * Applies the given 4x4 transformation matrix to the geometry.\n\t *\n\t * @param {Matrix4} matrix - The matrix to apply.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\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\t/**\n\t * Applies the rotation represented by the Quaternion to the geometry.\n\t *\n\t * @param {Quaternion} q - The Quaternion to apply.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\tapplyQuaternion( q ) {\n\n\t\t_m1.makeRotationFromQuaternion( q );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Rotates the geometry about the X axis. This is typically done as a one time\n\t * operation, and not during a loop. Use {@link Object3D#rotation} for typical\n\t * real-time mesh rotation.\n\t *\n\t * @param {number} angle - The angle in radians.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\trotateX( angle ) {\n\n\t\t// rotate geometry around world x-axis\n\n\t\t_m1.makeRotationX( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Rotates the geometry about the Y axis. This is typically done as a one time\n\t * operation, and not during a loop. Use {@link Object3D#rotation} for typical\n\t * real-time mesh rotation.\n\t *\n\t * @param {number} angle - The angle in radians.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\trotateY( angle ) {\n\n\t\t// rotate geometry around world y-axis\n\n\t\t_m1.makeRotationY( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Rotates the geometry about the Z axis. This is typically done as a one time\n\t * operation, and not during a loop. Use {@link Object3D#rotation} for typical\n\t * real-time mesh rotation.\n\t *\n\t * @param {number} angle - The angle in radians.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\trotateZ( angle ) {\n\n\t\t// rotate geometry around world z-axis\n\n\t\t_m1.makeRotationZ( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Translates the geometry. This is typically done as a one time\n\t * operation, and not during a loop. Use {@link Object3D#position} for typical\n\t * real-time mesh rotation.\n\t *\n\t * @param {number} x - The x offset.\n\t * @param {number} y - The y offset.\n\t * @param {number} z - The z offset.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\ttranslate( x, y, z ) {\n\n\t\t// translate geometry\n\n\t\t_m1.makeTranslation( x, y, z );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Scales the geometry. This is typically done as a one time\n\t * operation, and not during a loop. Use {@link Object3D#scale} for typical\n\t * real-time mesh rotation.\n\t *\n\t * @param {number} x - The x scale.\n\t * @param {number} y - The y scale.\n\t * @param {number} z - The z scale.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\tscale( x, y, z ) {\n\n\t\t// scale geometry\n\n\t\t_m1.makeScale( x, y, z );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Rotates the geometry to face a point in 3D space. This is typically done as a one time\n\t * operation, and not during a loop. Use {@link Object3D#lookAt} for typical\n\t * real-time mesh rotation.\n\t *\n\t * @param {Vector3} vector - The target point.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\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\t/**\n\t * Center the geometry based on its bounding box.\n\t *\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\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\t/**\n\t * Defines a geometry by creating a `position` attribute based on the given array of points. The array\n\t * can hold 2D or 3D vectors. When using two-dimensional data, the `z` coordinate for all vertices is\n\t * set to `0`.\n\t *\n\t * If the method is used with an existing `position` attribute, the vertex data are overwritten with the\n\t * data from the array. The length of the array must match the vertex count.\n\t *\n\t * @param {Array|Array} points - The points.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\n\tsetFromPoints( points ) {\n\n\t\tconst positionAttribute = this.getAttribute( 'position' );\n\n\t\tif ( positionAttribute === undefined ) {\n\n\t\t\tconst position = [];\n\n\t\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\t\tconst point = points[ i ];\n\t\t\t\tposition.push( point.x, point.y, point.z || 0 );\n\n\t\t\t}\n\n\t\t\tthis.setAttribute( 'position', new Float32BufferAttribute( position, 3 ) );\n\n\t\t} else {\n\n\t\t\tconst l = Math.min( points.length, positionAttribute.count ); // make sure data do not exceed buffer size\n\n\t\t\tfor ( let i = 0; i < l; i ++ ) {\n\n\t\t\t\tconst point = points[ i ];\n\t\t\t\tpositionAttribute.setXYZ( i, point.x, point.y, point.z || 0 );\n\n\t\t\t}\n\n\t\t\tif ( points.length > positionAttribute.count ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry.' );\n\n\t\t\t}\n\n\t\t\tpositionAttribute.needsUpdate = true;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Computes the bounding box of the geometry, and updates the `boundingBox` member.\n\t * The bounding box is not computed by the engine; it must be computed by your app.\n\t * You may need to recompute the bounding box if the geometry vertices are modified.\n\t */\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\t/**\n\t * Computes the bounding sphere of the geometry, and updates the `boundingSphere` member.\n\t * The engine automatically computes the bounding sphere when it is needed, e.g., for ray casting or view frustum culling.\n\t * You may need to recompute the bounding sphere if the geometry vertices are modified.\n\t */\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\t/**\n\t * Calculates and adds a tangent attribute to this geometry.\n\t *\n\t * The computation is only supported for indexed geometries and if position, normal, and uv attributes\n\t * are defined. When using a tangent space normal map, prefer the MikkTSpace algorithm provided by\n\t * {@link BufferGeometryUtils#computeMikkTSpaceTangents} instead.\n\t */\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 : 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\t/**\n\t * Computes vertex normals for the given vertex data. For indexed geometries, the method sets\n\t * each vertex normal to be the average of the face normals of the faces that share that vertex.\n\t * For non-indexed geometries, vertices are not shared, and the method sets each vertex normal\n\t * to be the same as the face normal.\n\t */\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\t/**\n\t * Ensures every normal vector in a geometry will have a magnitude of `1`. This will\n\t * correct lighting on the geometry surfaces.\n\t */\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\t/**\n\t * Return a new non-index version of this indexed geometry. If the geometry\n\t * is already non-indexed, the method is a NOOP.\n\t *\n\t * @return {BufferGeometry} The non-indexed version of this indexed geometry.\n\t */\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\t/**\n\t * Serializes the geometry into JSON.\n\t *\n\t * @return {Object} A JSON object representing the serialized geometry.\n\t */\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.7,\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 = boundingSphere.toJSON();\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\t/**\n\t * Returns a new geometry with copied values from this instance.\n\t *\n\t * @return {BufferGeometry} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the values of the given geometry to this instance.\n\t *\n\t * @param {BufferGeometry} source - The geometry to copy.\n\t * @return {BufferGeometry} A reference to this instance.\n\t */\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() );\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t *\n\t * @fires BufferGeometry#dispose\n\t */\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 _intersectionPoint = /*@__PURE__*/ new Vector3();\nconst _intersectionPointWorld = /*@__PURE__*/ new Vector3();\n\n/**\n * Class representing triangular polygon mesh based objects.\n *\n * ```js\n * const geometry = new THREE.BoxGeometry( 1, 1, 1 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const mesh = new THREE.Mesh( geometry, material );\n * scene.add( mesh );\n * ```\n *\n * @augments Object3D\n */\nclass Mesh extends Object3D {\n\n\t/**\n\t * Constructs a new mesh.\n\t *\n\t * @param {BufferGeometry} [geometry] - The mesh geometry.\n\t * @param {Material|Array} [material] - The mesh material.\n\t */\n\tconstructor( geometry = new BufferGeometry(), material = new MeshBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMesh = true;\n\n\t\tthis.type = 'Mesh';\n\n\t\t/**\n\t\t * The mesh geometry.\n\t\t *\n\t\t * @type {BufferGeometry}\n\t\t */\n\t\tthis.geometry = geometry;\n\n\t\t/**\n\t\t * The mesh material.\n\t\t *\n\t\t * @type {Material|Array}\n\t\t * @default MeshBasicMaterial\n\t\t */\n\t\tthis.material = material;\n\n\t\t/**\n\t\t * A dictionary representing the morph targets in the geometry. The key is the\n\t\t * morph targets name, the value its attribute index. This member is `undefined`\n\t\t * by default and only set when morph targets are detected in the geometry.\n\t\t *\n\t\t * @type {Object|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetDictionary = undefined;\n\n\t\t/**\n\t\t * An array of weights typically in the range `[0,1]` that specify how much of the morph\n\t\t * is applied. This member is `undefined` by default and only set when morph targets are\n\t\t * detected in the geometry.\n\t\t *\n\t\t * @type {Array|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetInfluences = undefined;\n\n\t\t/**\n\t\t * The number of instances of this mesh.\n\t\t * Can only be used with {@link WebGPURenderer}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.count = 1;\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\t/**\n\t * Sets the values of {@link Mesh#morphTargetDictionary} and {@link Mesh#morphTargetInfluences}\n\t * to make sure existing morph targets can influence this 3D object.\n\t */\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\t/**\n\t * Returns the local-space position of the vertex at the given index, taking into\n\t * account the current animation state of both morph targets and skinning.\n\t *\n\t * @param {number} index - The vertex index.\n\t * @param {Vector3} target - The target object that is used to store the method's result.\n\t * @return {Vector3} The vertex position in local space.\n\t */\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\t/**\n\t * Computes intersection points between a casted ray and this line.\n\t *\n\t * @param {Raycaster} raycaster - The raycaster.\n\t * @param {Array} intersects - The target array that holds the intersection points.\n\t */\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\tconst barycoord = new Vector3();\n\t\tTriangle.getBarycoord( _intersectionPoint, _vA$1, _vB$1, _vC$1, barycoord );\n\n\t\tif ( uv ) {\n\n\t\t\tintersection.uv = Triangle.getInterpolatedAttribute( uv, a, b, c, barycoord, new Vector2() );\n\n\t\t}\n\n\t\tif ( uv1 ) {\n\n\t\t\tintersection.uv1 = Triangle.getInterpolatedAttribute( uv1, a, b, c, barycoord, new Vector2() );\n\n\t\t}\n\n\t\tif ( normal ) {\n\n\t\t\tintersection.normal = Triangle.getInterpolatedAttribute( normal, a, b, c, barycoord, 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\t\tintersection.barycoord = barycoord;\n\n\t}\n\n\treturn intersection;\n\n}\n\n/**\n * A geometry class for a rectangular cuboid with a given width, height, and depth.\n * On creation, the cuboid is centred on the origin, with each edge parallel to one\n * of the axes.\n *\n * ```js\n * const geometry = new THREE.BoxGeometry( 1, 1, 1 );\n * const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );\n * const cube = new THREE.Mesh( geometry, material );\n * scene.add( cube );\n * ```\n *\n * @augments BufferGeometry\n */\nclass BoxGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new box geometry.\n\t *\n\t * @param {number} [width=1] - The width. That is, the length of the edges parallel to the X axis.\n\t * @param {number} [height=1] - The height. That is, the length of the edges parallel to the Y axis.\n\t * @param {number} [depth=1] - The depth. That is, the length of the edges parallel to the Z axis.\n\t * @param {number} [widthSegments=1] - Number of segmented rectangular faces along the width of the sides.\n\t * @param {number} [heightSegments=1] - Number of segmented rectangular faces along the height of the sides.\n\t * @param {number} [depthSegments=1] - Number of segmented rectangular faces along the depth of the sides.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {BoxGeometry} A new instance.\n\t */\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// Uniform Utilities\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\n/**\n * A material rendered with custom shaders. A shader is a small program written in GLSL.\n * that runs on the GPU. You may want to use a custom shader if you need to implement an\n * effect not included with any of the built-in materials.\n *\n * There are the following notes to bear in mind when using a `ShaderMaterial`:\n *\n * - `ShaderMaterial` can only be used with {@link WebGLRenderer}.\n * - Built in attributes and uniforms are passed to the shaders along with your code. If\n * you don't want that, use {@link RawShaderMaterial} instead.\n * - You can use the directive `#pragma unroll_loop_start` and `#pragma unroll_loop_end`\n * in order to unroll a `for` loop in GLSL by the shader preprocessor. The directive has\n * to be placed right above the loop. The loop formatting has to correspond to a defined standard.\n * - The loop has to be [normalized]{@link https://en.wikipedia.org/wiki/Normalized_loop}.\n * - The loop variable has to be *i*.\n * - The value `UNROLLED_LOOP_INDEX` will be replaced with the explicitly\n * value of *i* for the given iteration and can be used in preprocessor\n * statements.\n *\n * ```js\n * const material = new THREE.ShaderMaterial( {\n * \tuniforms: {\n * \t\ttime: { value: 1.0 },\n * \t\tresolution: { value: new THREE.Vector2() }\n * \t},\n * \tvertexShader: document.getElementById( 'vertexShader' ).textContent,\n * \tfragmentShader: document.getElementById( 'fragmentShader' ).textContent\n * } );\n * ```\n *\n * @augments Material\n */\nclass ShaderMaterial extends Material {\n\n\t/**\n\t * Constructs a new shader material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isShaderMaterial = true;\n\n\t\tthis.type = 'ShaderMaterial';\n\n\t\t/**\n\t\t * Defines custom constants using `#define` directives within the GLSL code\n\t\t * for both the vertex shader and the fragment shader; each key/value pair\n\t\t * yields another directive.\n\t\t * ```js\n\t\t * defines: {\n\t\t * \tFOO: 15,\n\t\t * \tBAR: true\n\t\t * }\n\t\t * ```\n\t\t * Yields the lines:\n\t\t * ```\n\t\t * #define FOO 15\n\t\t * #define BAR true\n\t\t * ```\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.defines = {};\n\n\t\t/**\n\t\t * An object of the form:\n\t\t * ```js\n\t\t * {\n\t\t * \t\"uniform1\": { value: 1.0 },\n\t\t * \t\"uniform2\": { value: 2 }\n\t\t * }\n\t\t * ```\n\t\t * specifying the uniforms to be passed to the shader code; keys are uniform\n\t\t * names, values are definitions of the form\n\t\t * ```\n\t\t * {\n\t\t * \tvalue: 1.0\n\t\t * }\n\t\t * ```\n\t\t * where `value` is the value of the uniform. Names must match the name of\n\t\t * the uniform, as defined in the GLSL code. Note that uniforms are refreshed\n\t\t * on every frame, so updating the value of the uniform will immediately\n\t\t * update the value available to the GLSL code.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.uniforms = {};\n\n\t\t/**\n\t\t * An array holding uniforms groups for configuring UBOs.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.uniformsGroups = [];\n\n\t\t/**\n\t\t * Vertex shader GLSL code. This is the actual code for the shader.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.vertexShader = default_vertex;\n\n\t\t/**\n\t\t * Fragment shader GLSL code. This is the actual code for the shader.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.fragmentShader = default_fragment;\n\n\t\t/**\n\t\t * Controls line thickness or lines.\n\t\t *\n\t\t * WebGL and WebGPU ignore this setting and always render line primitives with a\n\t\t * width of one pixel.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.linewidth = 1;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * WebGL and WebGPU ignore this property and always render\n\t\t * 1 pixel wide lines.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.wireframeLinewidth = 1;\n\n\t\t/**\n\t\t * Define whether the material color is affected by global fog settings; `true`\n\t\t * to pass fog uniforms to the shader.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.fog = false;\n\n\t\t/**\n\t\t * Defines whether this material uses lighting; `true` to pass uniform data\n\t\t * related to lighting to this shader.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.lights = false;\n\n\t\t/**\n\t\t * Defines whether this material supports clipping; `true` to let the renderer\n\t\t * pass the clippingPlanes uniform.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.clipping = false;\n\n\t\t/**\n\t\t * Overwritten and set to `true` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.forceSinglePass = true;\n\n\t\t/**\n\t\t * This object allows to enable certain WebGL 2 extensions.\n\t\t *\n\t\t * - clipCullDistance: set to `true` to use vertex shader clipping\n\t\t * - multiDraw: set to `true` to use vertex shader multi_draw / enable gl_DrawID\n\t\t *\n\t\t * @type {{clipCullDistance:false,multiDraw:false}}\n\t\t */\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/**\n\t\t * When the rendered geometry doesn't include these attributes but the\n\t\t * material does, these default values will be passed to the shaders. This\n\t\t * avoids errors when buffer data is missing.\n\t\t *\n\t\t * - color: [ 1, 1, 1 ]\n\t\t * - uv: [ 0, 0 ]\n\t\t * - uv1: [ 0, 0 ]\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t\t * If set, this calls [gl.bindAttribLocation]{@link https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bindAttribLocation}\n\t\t * to bind a generic vertex index to an attribute variable.\n\t\t *\n\t\t * @type {string|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.index0AttributeName = undefined;\n\n\t\t/**\n\t\t * Can be used to force a uniform update while changing uniforms in\n\t\t * {@link Object3D#onBeforeRender}.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.uniformsNeedUpdate = false;\n\n\t\t/**\n\t\t * Defines the GLSL version of custom shader code.\n\t\t *\n\t\t * @type {?(GLSL1|GLSL3)}\n\t\t * @default null\n\t\t */\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\n/**\n * Abstract base class for cameras. This class should always be inherited\n * when you build a new camera.\n *\n * @abstract\n * @augments Object3D\n */\nclass Camera extends Object3D {\n\n\t/**\n\t * Constructs a new camera.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCamera = true;\n\n\t\tthis.type = 'Camera';\n\n\t\t/**\n\t\t * The inverse of the camera's world matrix.\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.matrixWorldInverse = new Matrix4();\n\n\t\t/**\n\t\t * The camera's projection matrix.\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.projectionMatrix = new Matrix4();\n\n\t\t/**\n\t\t * The inverse of the camera's projection matrix.\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.projectionMatrixInverse = new Matrix4();\n\n\t\t/**\n\t\t * The coordinate system in which the camera is used.\n\t\t *\n\t\t * @type {(WebGLCoordinateSystem|WebGPUCoordinateSystem)}\n\t\t */\n\t\tthis.coordinateSystem = WebGLCoordinateSystem;\n\n\t\tthis._reversedDepth = false;\n\n\t}\n\n\t/**\n\t * The flag that indicates whether the camera uses a reversed depth buffer.\n\t *\n\t * @type {boolean}\n\t * @default false\n\t */\n\tget reversedDepth() {\n\n\t\treturn this._reversedDepth;\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\t/**\n\t * Returns a vector representing the (\"look\") direction of the 3D object in world space.\n\t *\n\t * This method is overwritten since cameras have a different forward vector compared to other\n\t * 3D objects. A camera looks down its local, negative z-axis by default.\n\t *\n\t * @param {Vector3} target - The target vector the result is stored to.\n\t * @return {Vector3} The 3D object's direction in world space.\n\t */\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/**\n * Camera that uses [perspective projection]{@link https://en.wikipedia.org/wiki/Perspective_(graphical)}.\n *\n * This projection mode is designed to mimic the way the human eye sees. It\n * is the most common projection mode used for rendering a 3D scene.\n *\n * ```js\n * const camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 );\n * scene.add( camera );\n * ```\n *\n * @augments Camera\n */\nclass PerspectiveCamera extends Camera {\n\n\t/**\n\t * Constructs a new perspective camera.\n\t *\n\t * @param {number} [fov=50] - The vertical field of view.\n\t * @param {number} [aspect=1] - The aspect ratio.\n\t * @param {number} [near=0.1] - The camera's near plane.\n\t * @param {number} [far=2000] - The camera's far plane.\n\t */\n\tconstructor( fov = 50, aspect = 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isPerspectiveCamera = true;\n\n\t\tthis.type = 'PerspectiveCamera';\n\n\t\t/**\n\t\t * The vertical field of view, from bottom to top of view,\n\t\t * in degrees.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 50\n\t\t */\n\t\tthis.fov = fov;\n\n\t\t/**\n\t\t * The zoom factor of the camera.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.zoom = 1;\n\n\t\t/**\n\t\t * The camera's near plane. The valid range is greater than `0`\n\t\t * and less than the current value of {@link PerspectiveCamera#far}.\n\t\t *\n\t\t * Note that, unlike for the {@link OrthographicCamera}, `0` is not a\n\t\t * valid value for a perspective camera's near plane.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.1\n\t\t */\n\t\tthis.near = near;\n\n\t\t/**\n\t\t * The camera's far plane. Must be greater than the\n\t\t * current value of {@link PerspectiveCamera#near}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 2000\n\t\t */\n\t\tthis.far = far;\n\n\t\t/**\n\t\t * Object distance used for stereoscopy and depth-of-field effects. This\n\t\t * parameter does not influence the projection matrix unless a\n\t\t * {@link StereoCamera} is being used.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 10\n\t\t */\n\t\tthis.focus = 10;\n\n\t\t/**\n\t\t * The aspect ratio, usually the canvas width / canvas height.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aspect = aspect;\n\n\t\t/**\n\t\t * Represents the frustum window specification. This property should not be edited\n\t\t * directly but via {@link PerspectiveCamera#setViewOffset} and {@link PerspectiveCamera#clearViewOffset}.\n\t\t *\n\t\t * @type {?Object}\n\t\t * @default null\n\t\t */\n\t\tthis.view = null;\n\n\t\t/**\n\t\t * Film size used for the larger axis. Default is `35` (millimeters). This\n\t\t * parameter does not influence the projection matrix unless {@link PerspectiveCamera#filmOffset}\n\t\t * is set to a nonzero value.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 35\n\t\t */\n\t\tthis.filmGauge = 35;\n\n\t\t/**\n\t\t * Horizontal off-center offset in the same unit as {@link PerspectiveCamera#filmGauge}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.filmOffset = 0;\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 {@link PerspectiveCamera#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 * @param {number} focalLength - 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 * Returns the focal length from the current {@link PerspectiveCamera#fov} and\n\t * {@link PerspectiveCamera#filmGauge}.\n\t *\n\t * @return {number} The computed focal length.\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\t/**\n\t * Returns the current vertical field of view angle in degrees considering {@link PerspectiveCamera#zoom}.\n\t *\n\t * @return {number} The effective FOV.\n\t */\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\t/**\n\t * Returns the width of the image on the film. If {@link PerspectiveCamera#aspect} is greater than or\n\t * equal to one (landscape format), the result equals {@link PerspectiveCamera#filmGauge}.\n\t *\n\t * @return {number} The film width.\n\t */\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\t/**\n\t * Returns the height of the image on the film. If {@link PerspectiveCamera#aspect} is greater than or\n\t * equal to one (landscape format), the result equals {@link PerspectiveCamera#filmGauge}.\n\t *\n\t * @return {number} The film width.\n\t */\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\t * @param {number} distance - The viewing distance.\n\t * @param {Vector2} minTarget - The lower-left corner of the view rectangle is written into this vector.\n\t * @param {Vector2} maxTarget - The upper-right corner of the view rectangle is written into this vector.\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 *\n\t * @param {number} distance - The viewing distance.\n\t * @param {Vector2} target - The target vector that is used to store result where x is width and y is height.\n\t * @returns {Vector2} The view size.\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 *```js\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 *\n\t * Note there is no reason monitors have to be the same size or in a grid.\n\t *\n\t * @param {number} fullWidth - The full width of multiview setup.\n\t * @param {number} fullHeight - The full height of multiview setup.\n\t * @param {number} x - The horizontal offset of the subcamera.\n\t * @param {number} y - The vertical offset of the subcamera.\n\t * @param {number} width - The width of subcamera.\n\t * @param {number} height - The height of subcamera.\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\t/**\n\t * Removes the view offset from the projection matrix.\n\t */\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\t/**\n\t * Updates the camera's projection matrix. Must be called after any change of\n\t * camera properties.\n\t */\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, this.reversedDepth );\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\n/**\n * A special type of camera that is positioned in 3D space to render its surroundings into a\n * cube render target. The render target can then be used as an environment map for rendering\n * realtime reflections in your scene.\n *\n * ```js\n * // Create cube render target\n * const cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 256, { generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );\n *\n * // Create cube camera\n * const cubeCamera = new THREE.CubeCamera( 1, 100000, cubeRenderTarget );\n * scene.add( cubeCamera );\n *\n * // Create car\n * const chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeRenderTarget.texture } );\n * const car = new THREE.Mesh( carGeometry, chromeMaterial );\n * scene.add( car );\n *\n * // Update the render target cube\n * car.visible = false;\n * cubeCamera.position.copy( car.position );\n * cubeCamera.update( renderer, scene );\n *\n * // Render the scene\n * car.visible = true;\n * renderer.render( scene, camera );\n * ```\n *\n * @augments Object3D\n */\nclass CubeCamera extends Object3D {\n\n\t/**\n\t * Constructs a new cube camera.\n\t *\n\t * @param {number} near - The camera's near plane.\n\t * @param {number} far - The camera's far plane.\n\t * @param {WebGLCubeRenderTarget} renderTarget - The cube render target.\n\t */\n\tconstructor( near, far, renderTarget ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CubeCamera';\n\n\t\t/**\n\t\t * A reference to the cube render target.\n\t\t *\n\t\t * @type {WebGLCubeRenderTarget}\n\t\t */\n\t\tthis.renderTarget = renderTarget;\n\n\t\t/**\n\t\t * The current active coordinate system.\n\t\t *\n\t\t * @type {?(WebGLCoordinateSystem|WebGPUCoordinateSystem)}\n\t\t * @default null\n\t\t */\n\t\tthis.coordinateSystem = null;\n\n\t\t/**\n\t\t * The current active mipmap level\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\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\t/**\n\t * Must be called when the coordinate system of the cube camera is changed.\n\t */\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\t/**\n\t * Calling this method will render the given scene with the given renderer\n\t * into the cube render target of the camera.\n\t *\n\t * @param {(Renderer|WebGLRenderer)} renderer - The renderer.\n\t * @param {Scene} scene - The scene to render.\n\t */\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\n/**\n * Creates a cube texture made up of six images.\n *\n * ```js\n * const loader = new THREE.CubeTextureLoader();\n * loader.setPath( 'textures/cube/pisa/' );\n *\n * const textureCube = loader.load( [\n * \t'px.png', 'nx.png', 'py.png', 'ny.png', 'pz.png', 'nz.png'\n * ] );\n *\n * const material = new THREE.MeshBasicMaterial( { color: 0xffffff, envMap: textureCube } );\n * ```\n *\n * @augments Texture\n */\nclass CubeTexture extends Texture {\n\n\t/**\n\t * Constructs a new cube texture.\n\t *\n\t * @param {Array} [images=[]] - An array holding a image for each side of a cube.\n\t * @param {number} [mapping=CubeReflectionMapping] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=LinearFilter] - The mag filter value.\n\t * @param {number} [minFilter=LinearMipmapLinearFilter] - The min filter value.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t * @param {string} [colorSpace=NoColorSpace] - The color space value.\n\t */\n\tconstructor( images = [], mapping = CubeReflectionMapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace ) {\n\n\t\tsuper( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCubeTexture = true;\n\n\t\t/**\n\t\t * If set to `true`, the texture is flipped along the vertical axis when\n\t\t * uploaded to the GPU.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flipY = false;\n\n\t}\n\n\t/**\n\t * Alias for {@link CubeTexture#image}.\n\t *\n\t * @type {Array}\n\t */\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\n/**\n * A cube render target used in context of {@link WebGLRenderer}.\n *\n * @augments WebGLRenderTarget\n */\nclass WebGLCubeRenderTarget extends WebGLRenderTarget {\n\n\t/**\n\t * Constructs a new cube render target.\n\t *\n\t * @param {number} [size=1] - The size of the render target.\n\t * @param {RenderTarget~Options} [options] - The configuration object.\n\t */\n\tconstructor( size = 1, options = {} ) {\n\n\t\tsuper( size, size, options );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t\t * Overwritten with a different texture type.\n\t\t *\n\t\t * @type {DataArrayTexture}\n\t\t */\n\t\tthis.texture = new CubeTexture( images );\n\t\tthis._setTextureOptions( options );\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}\n\n\t/**\n\t * Converts the given equirectangular texture to a cube map.\n\t *\n\t * @param {WebGLRenderer} renderer - The renderer.\n\t * @param {Texture} texture - The equirectangular texture.\n\t * @return {WebGLCubeRenderTarget} A reference to this cube render target.\n\t */\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\t/**\n\t * Clears this cube render target.\n\t *\n\t * @param {WebGLRenderer} renderer - The renderer.\n\t * @param {boolean} [color=true] - Whether the color buffer should be cleared or not.\n\t * @param {boolean} [depth=true] - Whether the depth buffer should be cleared or not.\n\t * @param {boolean} [stencil=true] - Whether the stencil buffer should be cleared or not.\n\t */\n\tclear( renderer, color = true, depth = true, stencil = true ) {\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\n/**\n * This is almost identical to an {@link Object3D}. Its purpose is to\n * make working with groups of objects syntactically clearer.\n *\n * ```js\n * // Create a group and add the two cubes.\n * // These cubes can now be rotated / scaled etc as a group.\n * const group = new THREE.Group();\n *\n * group.add( meshA );\n * group.add( meshB );\n *\n * scene.add( group );\n * ```\n *\n * @augments Object3D\n */\nclass Group extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isGroup = true;\n\n\t\tthis.type = 'Group';\n\n\t}\n\n}\n\nconst _moveEvent = { type: 'move' };\n\n/**\n * Class for representing a XR controller with its\n * different coordinate systems.\n *\n * @private\n */\nclass WebXRController {\n\n\t/**\n\t * Constructs a new XR controller.\n\t */\n\tconstructor() {\n\n\t\t/**\n\t\t * A group representing the target ray space\n\t\t * of the XR controller.\n\t\t *\n\t\t * @private\n\t\t * @type {?Group}\n\t\t * @default null\n\t\t */\n\t\tthis._targetRay = null;\n\n\t\t/**\n\t\t * A group representing the grip space\n\t\t * of the XR controller.\n\t\t *\n\t\t * @private\n\t\t * @type {?Group}\n\t\t * @default null\n\t\t */\n\t\tthis._grip = null;\n\n\t\t/**\n\t\t * A group representing the hand space\n\t\t * of the XR controller.\n\t\t *\n\t\t * @private\n\t\t * @type {?Group}\n\t\t * @default null\n\t\t */\n\t\tthis._hand = null;\n\n\t}\n\n\t/**\n\t * Returns a group representing the hand space of the XR controller.\n\t *\n\t * @return {Group} A group representing the hand space of the XR controller.\n\t */\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\t/**\n\t * Returns a group representing the target ray space of the XR controller.\n\t *\n\t * @return {Group} A group representing the target ray space of the XR controller.\n\t */\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\t/**\n\t * Returns a group representing the grip space of the XR controller.\n\t *\n\t * @return {Group} A group representing the grip space of the XR controller.\n\t */\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\t/**\n\t * Dispatches the given event to the groups representing\n\t * the different coordinate spaces of the XR controller.\n\t *\n\t * @param {Object} event - The event to dispatch.\n\t * @return {WebXRController} A reference to this instance.\n\t */\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\t/**\n\t * Connects the controller with the given XR input source.\n\t *\n\t * @param {XRInputSource} inputSource - The input source.\n\t * @return {WebXRController} A reference to this instance.\n\t */\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\t/**\n\t * Disconnects the controller from the given XR input source.\n\t *\n\t * @param {XRInputSource} inputSource - The input source.\n\t * @return {WebXRController} A reference to this instance.\n\t */\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\t/**\n\t * Updates the controller with the given input source, XR frame and reference space.\n\t * This updates the transformations of the groups that represent the different\n\t * coordinate systems of the controller.\n\t *\n\t * @param {XRInputSource} inputSource - The input source.\n\t * @param {XRFrame} frame - The XR frame.\n\t * @param {XRReferenceSpace} referenceSpace - The reference space.\n\t * @return {WebXRController} A reference to this instance.\n\t */\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/**\n\t * Returns a group representing the hand joint for the given input joint.\n\t *\n\t * @private\n\t * @param {Group} hand - The group representing the hand space.\n\t * @param {XRJointSpace} inputjoint - The hand joint data.\n\t * @return {Group} A group representing the hand joint for the given input joint.\n\t */\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\n/**\n * This class can be used to define an exponential squared fog,\n * which gives a clear view near the camera and a faster than exponentially\n * densening fog farther from the camera.\n *\n * ```js\n * const scene = new THREE.Scene();\n * scene.fog = new THREE.FogExp2( 0xcccccc, 0.002 );\n * ```\n */\nclass FogExp2 {\n\n\t/**\n\t * Constructs a new fog.\n\t *\n\t * @param {number|Color} color - The fog's color.\n\t * @param {number} [density=0.00025] - Defines how fast the fog will grow dense.\n\t */\n\tconstructor( color, density = 0.00025 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isFogExp2 = true;\n\n\t\t/**\n\t\t * The name of the fog.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The fog's color.\n\t\t *\n\t\t * @type {Color}\n\t\t */\n\t\tthis.color = new Color( color );\n\n\t\t/**\n\t\t * Defines how fast the fog will grow dense.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.00025\n\t\t */\n\t\tthis.density = density;\n\n\t}\n\n\t/**\n\t * Returns a new fog with copied values from this instance.\n\t *\n\t * @return {FogExp2} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new FogExp2( this.color, this.density );\n\n\t}\n\n\t/**\n\t * Serializes the fog into JSON.\n\t *\n\t * @param {?(Object|string)} meta - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized fog\n\t */\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\n/**\n * This class can be used to define a linear fog that grows linearly denser\n * with the distance.\n *\n * ```js\n * const scene = new THREE.Scene();\n * scene.fog = new THREE.Fog( 0xcccccc, 10, 15 );\n * ```\n */\nclass Fog {\n\n\t/**\n\t * Constructs a new fog.\n\t *\n\t * @param {number|Color} color - The fog's color.\n\t * @param {number} [near=1] - The minimum distance to start applying fog.\n\t * @param {number} [far=1000] - The maximum distance at which fog stops being calculated and applied.\n\t */\n\tconstructor( color, near = 1, far = 1000 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isFog = true;\n\n\t\t/**\n\t\t * The name of the fog.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The fog's color.\n\t\t *\n\t\t * @type {Color}\n\t\t */\n\t\tthis.color = new Color( color );\n\n\t\t/**\n\t\t * The minimum distance to start applying fog. Objects that are less than\n\t\t * `near` units from the active camera won't be affected by fog.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.near = near;\n\n\t\t/**\n\t\t * The maximum distance at which fog stops being calculated and applied.\n\t\t * Objects that are more than `far` units away from the active camera won't\n\t\t * be affected by fog.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1000\n\t\t */\n\t\tthis.far = far;\n\n\t}\n\n\t/**\n\t * Returns a new fog with copied values from this instance.\n\t *\n\t * @return {Fog} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new Fog( this.color, this.near, this.far );\n\n\t}\n\n\t/**\n\t * Serializes the fog into JSON.\n\t *\n\t * @param {?(Object|string)} meta - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized fog\n\t */\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\n/**\n * Scenes allow you to set up what is to be rendered and where by three.js.\n * This is where you place 3D objects like meshes, lines or lights.\n *\n * @augments Object3D\n */\nclass Scene extends Object3D {\n\n\t/**\n\t * Constructs a new scene.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isScene = true;\n\n\t\tthis.type = 'Scene';\n\n\t\t/**\n\t\t * Defines the background of the scene. Valid inputs are:\n\t\t *\n\t\t * - A color for defining a uniform colored background.\n\t\t * - A texture for defining a (flat) textured background.\n\t\t * - Cube textures or equirectangular textures for defining a skybox.\n\t\t *\n\t\t * @type {?(Color|Texture)}\n\t\t * @default null\n\t\t */\n\t\tthis.background = null;\n\n\t\t/**\n\t\t * Sets the environment map for all physical materials in the scene. However,\n\t\t * it's not possible to overwrite an existing texture assigned to the `envMap`\n\t\t * material property.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.environment = null;\n\n\t\t/**\n\t\t * A fog instance defining the type of fog that affects everything\n\t\t * rendered in the scene.\n\t\t *\n\t\t * @type {?(Fog|FogExp2)}\n\t\t * @default null\n\t\t */\n\t\tthis.fog = null;\n\n\t\t/**\n\t\t * Sets the blurriness of the background. Only influences environment maps\n\t\t * assigned to {@link Scene#background}. Valid input is a float between `0`\n\t\t * and `1`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.backgroundBlurriness = 0;\n\n\t\t/**\n\t\t * Attenuates the color of the background. Only applies to background textures.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.backgroundIntensity = 1;\n\n\t\t/**\n\t\t * The rotation of the background in radians. Only influences environment maps\n\t\t * assigned to {@link Scene#background}.\n\t\t *\n\t\t * @type {Euler}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.backgroundRotation = new Euler();\n\n\t\t/**\n\t\t * Attenuates the color of the environment. Only influences environment maps\n\t\t * assigned to {@link Scene#environment}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.environmentIntensity = 1;\n\n\t\t/**\n\t\t * The rotation of the environment map in radians. Only influences physical materials\n\t\t * in the scene when {@link Scene#environment} is used.\n\t\t *\n\t\t * @type {Euler}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.environmentRotation = new Euler();\n\n\t\t/**\n\t\t * Forces everything in the scene to be rendered with the defined material. It is possible\n\t\t * to exclude materials from override by setting {@link Material#allowOverride} to `false`.\n\t\t *\n\t\t * @type {?Material}\n\t\t * @default null\n\t\t */\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\n/**\n * \"Interleaved\" means that multiple attributes, possibly of different types,\n * (e.g., position, normal, uv, color) are packed into a single array buffer.\n *\n * An introduction into interleaved arrays can be found here: [Interleaved array basics]{@link https://blog.tojicode.com/2011/05/interleaved-array-basics.html}\n */\nclass InterleavedBuffer {\n\n\t/**\n\t * Constructs a new interleaved buffer.\n\t *\n\t * @param {TypedArray} array - A typed array with a shared buffer storing attribute data.\n\t * @param {number} stride - The number of typed-array elements per vertex.\n\t */\n\tconstructor( array, stride ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isInterleavedBuffer = true;\n\n\t\t/**\n\t\t * A typed array with a shared buffer storing attribute data.\n\t\t *\n\t\t * @type {TypedArray}\n\t\t */\n\t\tthis.array = array;\n\n\t\t/**\n\t\t * The number of typed-array elements per vertex.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.stride = stride;\n\n\t\t/**\n\t\t * The total number of elements in the array\n\t\t *\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tthis.count = array !== undefined ? array.length / stride : 0;\n\n\t\t/**\n\t\t * Defines the intended usage pattern of the data store for optimization purposes.\n\t\t *\n\t\t * Note: After the initial use of a buffer, its usage cannot be changed. Instead,\n\t\t * instantiate a new one and set the desired usage before the next render.\n\t\t *\n\t\t * @type {(StaticDrawUsage|DynamicDrawUsage|StreamDrawUsage|StaticReadUsage|DynamicReadUsage|StreamReadUsage|StaticCopyUsage|DynamicCopyUsage|StreamCopyUsage)}\n\t\t * @default StaticDrawUsage\n\t\t */\n\t\tthis.usage = StaticDrawUsage;\n\n\t\t/**\n\t\t * This can be used to only update some components of stored vectors (for example, just the\n\t\t * component related to color). Use the `addUpdateRange()` function to add ranges to this array.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.updateRanges = [];\n\n\t\t/**\n\t\t * A version number, incremented every time the `needsUpdate` is set to `true`.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.version = 0;\n\n\t\t/**\n\t\t * The UUID of the interleaved buffer.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t}\n\n\t/**\n\t * A callback function that is executed after the renderer has transferred the attribute array\n\t * data to the GPU.\n\t */\n\tonUploadCallback() {}\n\n\t/**\n\t * Flag to indicate that this attribute has changed and should be re-sent to\n\t * the GPU. Set this to `true` when you modify the value of the array.\n\t *\n\t * @type {number}\n\t * @default false\n\t * @param {boolean} value\n\t */\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\t/**\n\t * Sets the usage of this interleaved buffer.\n\t *\n\t * @param {(StaticDrawUsage|DynamicDrawUsage|StreamDrawUsage|StaticReadUsage|DynamicReadUsage|StreamReadUsage|StaticCopyUsage|DynamicCopyUsage|StreamCopyUsage)} value - The usage to set.\n\t * @return {InterleavedBuffer} A reference to this interleaved buffer.\n\t */\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Adds a range of data in the data array to be updated on the GPU.\n\t *\n\t * @param {number} start - Position at which to start update.\n\t * @param {number} count - The number of components to update.\n\t */\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\t/**\n\t * Clears the update ranges.\n\t */\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\t/**\n\t * Copies the values of the given interleaved buffer to this instance.\n\t *\n\t * @param {InterleavedBuffer} source - The interleaved buffer to copy.\n\t * @return {InterleavedBuffer} A reference to this instance.\n\t */\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\t/**\n\t * Copies a vector from the given interleaved buffer to this one. The start\n\t * and destination position in the attribute buffers are represented by the\n\t * given indices.\n\t *\n\t * @param {number} index1 - The destination index into this interleaved buffer.\n\t * @param {InterleavedBuffer} interleavedBuffer - The interleaved buffer to copy from.\n\t * @param {number} index2 - The source index into the given interleaved buffer.\n\t * @return {InterleavedBuffer} A reference to this instance.\n\t */\n\tcopyAt( index1, interleavedBuffer, index2 ) {\n\n\t\tindex1 *= this.stride;\n\t\tindex2 *= interleavedBuffer.stride;\n\n\t\tfor ( let i = 0, l = this.stride; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = interleavedBuffer.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the given array data in the interleaved buffer.\n\t *\n\t * @param {(TypedArray|Array)} value - The array data to set.\n\t * @param {number} [offset=0] - The offset in this interleaved buffer's array.\n\t * @return {InterleavedBuffer} A reference to this instance.\n\t */\n\tset( value, offset = 0 ) {\n\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns a new interleaved buffer with copied values from this instance.\n\t *\n\t * @param {Object} [data] - An object with shared array buffers that allows to retain shared structures.\n\t * @return {InterleavedBuffer} A clone of this instance.\n\t */\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\t/**\n\t * Sets the given callback function that is executed after the Renderer has transferred\n\t * the array data to the GPU. Can be used to perform clean-up operations after\n\t * the upload when data are not needed anymore on the CPU side.\n\t *\n\t * @param {Function} callback - The `onUpload()` callback.\n\t * @return {InterleavedBuffer} A reference to this instance.\n\t */\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Serializes the interleaved buffer into JSON.\n\t *\n\t * @param {Object} [data] - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized interleaved buffer.\n\t */\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$7 = /*@__PURE__*/ new Vector3();\n\n/**\n * An alternative version of a buffer attribute with interleaved data. Interleaved\n * attributes share a common interleaved data storage ({@link InterleavedBuffer}) and refer with\n * different offsets into the buffer.\n */\nclass InterleavedBufferAttribute {\n\n\t/**\n\t * Constructs a new interleaved buffer attribute.\n\t *\n\t * @param {InterleavedBuffer} interleavedBuffer - The buffer holding the interleaved data.\n\t * @param {number} itemSize - The item size.\n\t * @param {number} offset - The attribute offset into the buffer.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( interleavedBuffer, itemSize, offset, normalized = false ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isInterleavedBufferAttribute = true;\n\n\t\t/**\n\t\t * The name of the buffer attribute.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The buffer holding the interleaved data.\n\t\t *\n\t\t * @type {InterleavedBuffer}\n\t\t */\n\t\tthis.data = interleavedBuffer;\n\n\t\t/**\n\t\t * The item size, see {@link BufferAttribute#itemSize}.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.itemSize = itemSize;\n\n\t\t/**\n\t\t * The attribute offset into the buffer.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.offset = offset;\n\n\t\t/**\n\t\t * Whether the data are normalized or not, see {@link BufferAttribute#normalized}\n\t\t *\n\t\t * @type {InterleavedBuffer}\n\t\t */\n\t\tthis.normalized = normalized;\n\n\t}\n\n\t/**\n\t * The item count of this buffer attribute.\n\t *\n\t * @type {number}\n\t * @readonly\n\t */\n\tget count() {\n\n\t\treturn this.data.count;\n\n\t}\n\n\t/**\n\t * The array holding the interleaved buffer attribute data.\n\t *\n\t * @type {TypedArray}\n\t */\n\tget array() {\n\n\t\treturn this.data.array;\n\n\t}\n\n\t/**\n\t * Flag to indicate that this attribute has changed and should be re-sent to\n\t * the GPU. Set this to `true` when you modify the value of the array.\n\t *\n\t * @type {number}\n\t * @default false\n\t * @param {boolean} value\n\t */\n\tset needsUpdate( value ) {\n\n\t\tthis.data.needsUpdate = value;\n\n\t}\n\n\t/**\n\t * Applies the given 4x4 matrix to the given attribute. Only works with\n\t * item size `3`.\n\t *\n\t * @param {Matrix4} m - The matrix to apply.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.data.count; i < l; i ++ ) {\n\n\t\t\t_vector$7.fromBufferAttribute( this, i );\n\n\t\t\t_vector$7.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$7.x, _vector$7.y, _vector$7.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Applies the given 3x3 normal matrix to the given attribute. Only works with\n\t * item size `3`.\n\t *\n\t * @param {Matrix3} m - The normal matrix to apply.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$7.fromBufferAttribute( this, i );\n\n\t\t\t_vector$7.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$7.x, _vector$7.y, _vector$7.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Applies the given 4x4 matrix to the given attribute. Only works with\n\t * item size `3` and with direction vectors.\n\t *\n\t * @param {Matrix4} m - The matrix to apply.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$7.fromBufferAttribute( this, i );\n\n\t\t\t_vector$7.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$7.x, _vector$7.y, _vector$7.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the given component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} component - The component index.\n\t * @return {number} The returned value.\n\t */\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\t/**\n\t * Sets the given value to the given component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} component - The component index.\n\t * @param {number} value - The value to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the x component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the y component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} y - The value to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the z component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} z - The value to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the w component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} w - The value to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Returns the x component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The x component.\n\t */\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\t/**\n\t * Returns the y component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The y component.\n\t */\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\t/**\n\t * Returns the z component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The z component.\n\t */\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\t/**\n\t * Returns the w component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @return {number} The w component.\n\t */\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\t/**\n\t * Sets the x and y component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value for the x component to set.\n\t * @param {number} y - The value for the y component to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the x, y and z component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value for the x component to set.\n\t * @param {number} y - The value for the y component to set.\n\t * @param {number} z - The value for the z component to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the x, y, z and w component of the vector at the given index.\n\t *\n\t * @param {number} index - The index into the buffer attribute.\n\t * @param {number} x - The value for the x component to set.\n\t * @param {number} y - The value for the y component to set.\n\t * @param {number} z - The value for the z component to set.\n\t * @param {number} w - The value for the w component to set.\n\t * @return {InterleavedBufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Returns a new buffer attribute with copied values from this instance.\n\t *\n\t * If no parameter is provided, cloning an interleaved buffer attribute will de-interleave buffer data.\n\t *\n\t * @param {Object} [data] - An object with interleaved buffers that allows to retain the interleaved property.\n\t * @return {BufferAttribute|InterleavedBufferAttribute} A clone of this instance.\n\t */\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\t/**\n\t * Serializes the buffer attribute into JSON.\n\t *\n\t * If no parameter is provided, cloning an interleaved buffer attribute will de-interleave buffer data.\n\t *\n\t * @param {Object} [data] - An optional value holding meta information about the serialization.\n\t * @return {Object} A JSON object representing the serialized buffer attribute.\n\t */\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\n/**\n * A material for rendering instances of {@link Sprite}.\n *\n * ```js\n * const map = new THREE.TextureLoader().load( 'textures/sprite.png' );\n * const material = new THREE.SpriteMaterial( { map: map, color: 0xffffff } );\n *\n * const sprite = new THREE.Sprite( material );\n * sprite.scale.set(200, 200, 1)\n * scene.add( sprite );\n * ```\n *\n * @augments Material\n */\nclass SpriteMaterial extends Material {\n\n\t/**\n\t * Constructs a new sprite material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSpriteMaterial = true;\n\n\t\tthis.type = 'SpriteMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff );\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * The rotation of the sprite in radians.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.rotation = 0;\n\n\t\t/**\n\t\t * Specifies whether size of the sprite is attenuated by the camera depth (perspective camera only).\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.sizeAttenuation = true;\n\n\t\t/**\n\t\t * Overwritten since sprite materials are transparent\n\t\t * by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.transparent = true;\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * A sprite is a plane that always faces towards the camera, generally with a\n * partially transparent texture applied.\n *\n * Sprites do not cast shadows, setting {@link Object3D#castShadow} to `true` will\n * have no effect.\n *\n * ```js\n * const map = new THREE.TextureLoader().load( 'sprite.png' );\n * const material = new THREE.SpriteMaterial( { map: map } );\n *\n * const sprite = new THREE.Sprite( material );\n * scene.add( sprite );\n * ```\n *\n * @augments Object3D\n */\nclass Sprite extends Object3D {\n\n\t/**\n\t * Constructs a new sprite.\n\t *\n\t * @param {(SpriteMaterial|SpriteNodeMaterial)} [material] - The sprite material.\n\t */\n\tconstructor( material = new SpriteMaterial() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t\t * The sprite geometry.\n\t\t *\n\t\t * @type {BufferGeometry}\n\t\t */\n\t\tthis.geometry = _geometry;\n\n\t\t/**\n\t\t * The sprite material.\n\t\t *\n\t\t * @type {(SpriteMaterial|SpriteNodeMaterial)}\n\t\t */\n\t\tthis.material = material;\n\n\t\t/**\n\t\t * The sprite's anchor point, and the point around which the sprite rotates.\n\t\t * A value of `(0.5, 0.5)` corresponds to the midpoint of the sprite. A value\n\t\t * of `(0, 0)` corresponds to the lower left corner of the sprite.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (0.5,0.5)\n\t\t */\n\t\tthis.center = new Vector2( 0.5, 0.5 );\n\n\t\t/**\n\t\t * The number of instances of this sprite.\n\t\t * Can only be used with {@link WebGPURenderer}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.count = 1;\n\n\t}\n\n\t/**\n\t * Computes intersection points between a casted ray and this sprite.\n\t *\n\t * @param {Raycaster} raycaster - The raycaster.\n\t * @param {Array} intersects - The target array that holds the intersection points.\n\t */\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\n/**\n * A component for providing a basic Level of Detail (LOD) mechanism.\n *\n * Every LOD level is associated with an object, and rendering can be switched\n * between them at the distances specified. Typically you would create, say,\n * three meshes, one for far away (low detail), one for mid range (medium\n * detail) and one for close up (high detail).\n *\n * ```js\n * const lod = new THREE.LOD();\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n *\n * //Create spheres with 3 levels of detail and create new LOD levels for them\n * for( let i = 0; i < 3; i++ ) {\n *\n * \tconst geometry = new THREE.IcosahedronGeometry( 10, 3 - i );\n * \tconst mesh = new THREE.Mesh( geometry, material );\n * \tlod.addLevel( mesh, i * 75 );\n *\n * }\n *\n * scene.add( lod );\n * ```\n *\n * @augments Object3D\n */\nclass LOD extends Object3D {\n\n\t/**\n\t * Constructs a new LOD.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLOD = true;\n\n\t\t/**\n\t\t * The current LOD index.\n\t\t *\n\t\t * @private\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis._currentLevel = 0;\n\n\t\tthis.type = 'LOD';\n\n\t\tObject.defineProperties( this, {\n\t\t\t/**\n\t\t\t * This array holds the LOD levels.\n\t\t\t *\n\t\t\t * @name LOD#levels\n\t\t\t * @type {Array<{object:Object3D,distance:number,hysteresis:number}>}\n\t\t\t */\n\t\t\tlevels: {\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: []\n\t\t\t}\n\t\t} );\n\n\t\t/**\n\t\t * Whether the LOD object is updated automatically by the renderer per frame\n\t\t * or not. If set to `false`, you have to call {@link LOD#update} in the\n\t\t * render loop by yourself.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\t/**\n\t * Adds a mesh that will display at a certain distance and greater. Typically\n\t * the further away the distance, the lower the detail on the mesh.\n\t *\n\t * @param {Object3D} object - The 3D object to display at this level.\n\t * @param {number} [distance=0] - The distance at which to display this level of detail.\n\t * @param {number} [hysteresis=0] - Threshold used to avoid flickering at LOD boundaries, as a fraction of distance.\n\t * @return {LOD} A reference to this instance.\n\t */\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\t/**\n\t * Removes an existing level, based on the distance from the camera.\n\t * Returns `true` when the level has been removed. Otherwise `false`.\n\t *\n\t * @param {number} distance - Distance of the level to remove.\n\t * @return {boolean} Whether the level has been removed or not.\n\t */\n\tremoveLevel( distance ) {\n\n\t\tconst levels = this.levels;\n\n\t\tfor ( let i = 0; i < levels.length; i ++ ) {\n\n\t\t\tif ( levels[ i ].distance === distance ) {\n\n\t\t\t\tconst removedElements = levels.splice( i, 1 );\n\t\t\t\tthis.remove( removedElements[ 0 ].object );\n\n\t\t\t\treturn true;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Returns the currently active LOD level index.\n\t *\n\t * @return {number} The current active LOD level index.\n\t */\n\tgetCurrentLevel() {\n\n\t\treturn this._currentLevel;\n\n\t}\n\n\t/**\n\t * Returns a reference to the first 3D object that is greater than\n\t * the given distance.\n\t *\n\t * @param {number} distance - The LOD distance.\n\t * @return {?Object3D} The found 3D object. `null` if no 3D object has been found.\n\t */\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\t/**\n\t * Computes intersection points between a casted ray and this LOD.\n\t *\n\t * @param {Raycaster} raycaster - The raycaster.\n\t * @param {Array} intersects - The target array that holds the intersection points.\n\t */\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\t/**\n\t * Updates the LOD by computing which LOD level should be visible according\n\t * to the current distance of the given camera.\n\t *\n\t * @param {Camera} camera - The camera the scene is rendered with.\n\t */\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$5 = /*@__PURE__*/ new Sphere();\nconst _inverseMatrix$2 = /*@__PURE__*/ new Matrix4();\nconst _ray$2 = /*@__PURE__*/ new Ray();\n\n/**\n * A mesh that has a {@link Skeleton} that can then be used to animate the\n * vertices of the geometry with skinning/skeleton animation.\n *\n * Next to a valid skeleton, the skinned mesh requires skin indices and weights\n * as buffer attributes in its geometry. These attribute define which bones affect a single\n * vertex to a certain extend.\n *\n * Typically skinned meshes are not created manually but loaders like {@link GLTFLoader}\n * or {@link FBXLoader } import respective models.\n *\n * @augments Mesh\n */\nclass SkinnedMesh extends Mesh {\n\n\t/**\n\t * Constructs a new skinned mesh.\n\t *\n\t * @param {BufferGeometry} [geometry] - The mesh geometry.\n\t * @param {Material|Array} [material] - The mesh material.\n\t */\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSkinnedMesh = true;\n\n\t\tthis.type = 'SkinnedMesh';\n\n\t\t/**\n\t\t * `AttachedBindMode` means the skinned mesh shares the same world space as the skeleton.\n\t\t * This is not true when using `DetachedBindMode` which is useful when sharing a skeleton\n\t\t * across multiple skinned meshes.\n\t\t *\n\t\t * @type {(AttachedBindMode|DetachedBindMode)}\n\t\t * @default AttachedBindMode\n\t\t */\n\t\tthis.bindMode = AttachedBindMode;\n\n\t\t/**\n\t\t * The base matrix that is used for the bound bone transforms.\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.bindMatrix = new Matrix4();\n\n\t\t/**\n\t\t * The base matrix that is used for resetting the bound bone transforms.\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.bindMatrixInverse = new Matrix4();\n\n\t\t/**\n\t\t * The bounding box of the skinned mesh. Can be computed via {@link SkinnedMesh#computeBoundingBox}.\n\t\t *\n\t\t * @type {?Box3}\n\t\t * @default null\n\t\t */\n\t\tthis.boundingBox = null;\n\n\t\t/**\n\t\t * The bounding sphere of the skinned mesh. Can be computed via {@link SkinnedMesh#computeBoundingSphere}.\n\t\t *\n\t\t * @type {?Sphere}\n\t\t * @default null\n\t\t */\n\t\tthis.boundingSphere = null;\n\n\t}\n\n\t/**\n\t * Computes the bounding box of the skinned mesh, and updates {@link SkinnedMesh#boundingBox}.\n\t * The bounding box is not automatically computed by the engine; this method must be called by your app.\n\t * If the skinned mesh is animated, the bounding box should be recomputed per frame in order to reflect\n\t * the current animation state.\n\t */\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\t/**\n\t * Computes the bounding sphere of the skinned mesh, and updates {@link SkinnedMesh#boundingSphere}.\n\t * The bounding sphere is automatically computed by the engine once when it is needed, e.g., for ray casting\n\t * and view frustum culling. If the skinned mesh is animated, the bounding sphere should be recomputed\n\t * per frame in order to reflect the current animation state.\n\t */\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$5.copy( this.boundingSphere );\n\t\t_sphere$5.applyMatrix4( matrixWorld );\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$5 ) === 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\t/**\n\t * Binds the given skeleton to the skinned mesh.\n\t *\n\t * @param {Skeleton} skeleton - The skeleton to bind.\n\t * @param {Matrix4} [bindMatrix] - The bind matrix. If no bind matrix is provided,\n\t * the skinned mesh's world matrix will be used instead.\n\t */\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\t/**\n\t * This method sets the skinned mesh in the rest pose).\n\t */\n\tpose() {\n\n\t\tthis.skeleton.pose();\n\n\t}\n\n\t/**\n\t * Normalizes the skin weights which are defined as a buffer attribute\n\t * in the skinned mesh's geometry.\n\t */\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\t/**\n\t * Applies the bone transform associated with the given index to the given\n\t * vertex position. Returns the updated vector.\n\t *\n\t * @param {number} index - The vertex index.\n\t * @param {Vector3} target - The target object that is used to store the method's result.\n\t * the skinned mesh's world matrix will be used instead.\n\t * @return {Vector3} The updated vertex position.\n\t */\n\tapplyBoneTransform( index, target ) {\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( target ).applyMatrix4( this.bindMatrix );\n\n\t\ttarget.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\ttarget.addScaledVector( _vector3.copy( _basePosition ).applyMatrix4( _matrix4 ), weight );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn target.applyMatrix4( this.bindMatrixInverse );\n\n\t}\n\n}\n\n/**\n * A bone which is part of a {@link Skeleton}. The skeleton in turn is used by\n * the {@link SkinnedMesh}.\n *\n * ```js\n * const root = new THREE.Bone();\n * const child = new THREE.Bone();\n *\n * root.add( child );\n * child.position.y = 5;\n * ```\n *\n * @augments Object3D\n */\nclass Bone extends Object3D {\n\n\t/**\n\t * Constructs a new bone.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isBone = true;\n\n\t\tthis.type = 'Bone';\n\n\t}\n\n}\n\n/**\n * Creates a texture directly from raw buffer data.\n *\n * The interpretation of the data depends on type and format: If the type is\n * `UnsignedByteType`, a `Uint8Array` will be useful for addressing the\n * texel data. If the format is `RGBAFormat`, data needs four values for\n * one texel; Red, Green, Blue and Alpha (typically the opacity).\n *\n * @augments Texture\n */\nclass DataTexture extends Texture {\n\n\t/**\n\t * Constructs a new data texture.\n\t *\n\t * @param {?TypedArray} [data=null] - The buffer data.\n\t * @param {number} [width=1] - The width of the texture.\n\t * @param {number} [height=1] - The height of the texture.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t * @param {number} [mapping=Texture.DEFAULT_MAPPING] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=NearestFilter] - The mag filter value.\n\t * @param {number} [minFilter=NearestFilter] - The min filter value.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t * @param {string} [colorSpace=NoColorSpace] - The color space.\n\t */\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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isDataTexture = true;\n\n\t\t/**\n\t\t * The image definition of a data texture.\n\t\t *\n\t\t * @type {{data:TypedArray,width:number,height:number}}\n\t\t */\n\t\tthis.image = { data: data, width: width, height: height };\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.generateMipmaps = false;\n\n\t\t/**\n\t\t * If set to `true`, the texture is flipped along the vertical axis when\n\t\t * uploaded to the GPU.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flipY = false;\n\n\t\t/**\n\t\t * Specifies the alignment requirements for the start of each pixel row in memory.\n\t\t *\n\t\t * Overwritten and set to `1` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default 1\n\t\t */\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nconst _offsetMatrix = /*@__PURE__*/ new Matrix4();\nconst _identityMatrix = /*@__PURE__*/ new Matrix4();\n\n/**\n * Class for representing the armatures in `three.js`. The skeleton\n * is defined by a hierarchy of bones.\n *\n * ```js\n * const bones = [];\n *\n * const shoulder = new THREE.Bone();\n * const elbow = new THREE.Bone();\n * const hand = new THREE.Bone();\n *\n * shoulder.add( elbow );\n * elbow.add( hand );\n *\n * bones.push( shoulder , elbow, hand);\n *\n * shoulder.position.y = -5;\n * elbow.position.y = 0;\n * hand.position.y = 5;\n *\n * const armSkeleton = new THREE.Skeleton( bones );\n * ```\n */\nclass Skeleton {\n\n\t/**\n\t * Constructs a new skeleton.\n\t *\n\t * @param {Array} [bones] - An array of bones.\n\t * @param {Array} [boneInverses] - An array of bone inverse matrices.\n\t * If not provided, these matrices will be computed automatically via {@link Skeleton#calculateInverses}.\n\t */\n\tconstructor( bones = [], boneInverses = [] ) {\n\n\t\tthis.uuid = generateUUID();\n\n\t\t/**\n\t\t * An array of bones defining the skeleton.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.bones = bones.slice( 0 );\n\n\t\t/**\n\t\t * An array of bone inverse matrices.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.boneInverses = boneInverses;\n\n\t\t/**\n\t\t * An array buffer holding the bone data.\n\t\t * Input data for {@link Skeleton#boneTexture}.\n\t\t *\n\t\t * @type {?Float32Array}\n\t\t * @default null\n\t\t */\n\t\tthis.boneMatrices = null;\n\n\t\t/**\n\t\t * A texture holding the bone data for use\n\t\t * in the vertex shader.\n\t\t *\n\t\t * @type {?DataTexture}\n\t\t * @default null\n\t\t */\n\t\tthis.boneTexture = null;\n\n\t\tthis.init();\n\n\t}\n\n\t/**\n\t * Initializes the skeleton. This method gets automatically called by the constructor\n\t * but depending on how the skeleton is created it might be necessary to call this method\n\t * manually.\n\t */\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\t/**\n\t * Computes the bone inverse matrices. This method resets {@link Skeleton#boneInverses}\n\t * and fills it with new matrices.\n\t */\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\t/**\n\t * Resets the skeleton to the base pose.\n\t */\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\t/**\n\t * Resets the skeleton to the base pose.\n\t */\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;\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\t/**\n\t * Returns a new skeleton with copied values from this instance.\n\t *\n\t * @return {Skeleton} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new Skeleton( this.bones, this.boneInverses );\n\n\t}\n\n\t/**\n\t * Computes a data texture for passing bone data to the vertex shader.\n\t *\n\t * @return {Skeleton} A reference of this instance.\n\t */\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\t/**\n\t * Searches through the skeleton's bone array and returns the first with a\n\t * matching name.\n\t *\n\t * @param {string} name - The name of the bone.\n\t * @return {Bone|undefined} The found bone. `undefined` if no bone has been found.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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\t/**\n\t * Setups the skeleton by the given JSON and bones.\n\t *\n\t * @param {Object} json - The skeleton as serialized JSON.\n\t * @param {Object} bones - An array of bones.\n\t * @return {Skeleton} A reference of this instance.\n\t */\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\t/**\n\t * Serializes the skeleton into JSON.\n\t *\n\t * @return {Object} A JSON object representing the serialized skeleton.\n\t * @see {@link ObjectLoader#parse}\n\t */\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.7,\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\n/**\n * An instanced version of a buffer attribute.\n *\n * @augments BufferAttribute\n */\nclass InstancedBufferAttribute extends BufferAttribute {\n\n\t/**\n\t * Constructs a new instanced buffer attribute.\n\t *\n\t * @param {TypedArray} array - The array holding the attribute data.\n\t * @param {number} itemSize - The item size.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t * @param {number} [meshPerAttribute=1] - How often a value of this buffer attribute should be repeated.\n\t */\n\tconstructor( array, itemSize, normalized, meshPerAttribute = 1 ) {\n\n\t\tsuper( array, itemSize, normalized );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isInstancedBufferAttribute = true;\n\n\t\t/**\n\t\t * Defines how often a value of this buffer attribute should be repeated. A\n\t\t * value of one means that each value of the instanced attribute is used for\n\t\t * a single instance. A value of two means that each value is used for two\n\t\t * consecutive instances (and so on).\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\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$4 = /*@__PURE__*/ new Sphere();\n\n/**\n * A special version of a mesh with instanced rendering support. Use\n * this class if you have to render a large number of objects with the same\n * geometry and material(s) but with different world transformations. The usage\n * of 'InstancedMesh' will help you to reduce the number of draw calls and thus\n * improve the overall rendering performance in your application.\n *\n * @augments Mesh\n */\nclass InstancedMesh extends Mesh {\n\n\t/**\n\t * Constructs a new instanced mesh.\n\t *\n\t * @param {BufferGeometry} [geometry] - The mesh geometry.\n\t * @param {Material|Array} [material] - The mesh material.\n\t * @param {number} count - The number of instances.\n\t */\n\tconstructor( geometry, material, count ) {\n\n\t\tsuper( geometry, material );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isInstancedMesh = true;\n\n\t\t/**\n\t\t * Represents the local transformation of all instances. You have to set its\n\t\t * {@link BufferAttribute#needsUpdate} flag to true if you modify instanced data\n\t\t * via {@link InstancedMesh#setMatrixAt}.\n\t\t *\n\t\t * @type {InstancedBufferAttribute}\n\t\t */\n\t\tthis.instanceMatrix = new InstancedBufferAttribute( new Float32Array( count * 16 ), 16 );\n\n\t\t/**\n\t\t * Represents the color of all instances. You have to set its\n\t\t * {@link BufferAttribute#needsUpdate} flag to true if you modify instanced data\n\t\t * via {@link InstancedMesh#setColorAt}.\n\t\t *\n\t\t * @type {?InstancedBufferAttribute}\n\t\t * @default null\n\t\t */\n\t\tthis.instanceColor = null;\n\n\t\t/**\n\t\t * Represents the morph target weights of all instances. You have to set its\n\t\t * {@link Texture#needsUpdate} flag to true if you modify instanced data\n\t\t * via {@link InstancedMesh#setMorphAt}.\n\t\t *\n\t\t * @type {?DataTexture}\n\t\t * @default null\n\t\t */\n\t\tthis.morphTexture = null;\n\n\t\t/**\n\t\t * The number of instances.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.count = count;\n\n\t\t/**\n\t\t * The bounding box of the instanced mesh. Can be computed via {@link InstancedMesh#computeBoundingBox}.\n\t\t *\n\t\t * @type {?Box3}\n\t\t * @default null\n\t\t */\n\t\tthis.boundingBox = null;\n\n\t\t/**\n\t\t * The bounding sphere of the instanced mesh. Can be computed via {@link InstancedMesh#computeBoundingSphere}.\n\t\t *\n\t\t * @type {?Sphere}\n\t\t * @default null\n\t\t */\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\t/**\n\t * Computes the bounding box of the instanced mesh, and updates {@link InstancedMesh#boundingBox}.\n\t * The bounding box is not automatically computed by the engine; this method must be called by your app.\n\t * You may need to recompute the bounding box if an instance is transformed via {@link InstancedMesh#setMatrixAt}.\n\t */\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\t/**\n\t * Computes the bounding sphere of the instanced mesh, and updates {@link InstancedMesh#boundingSphere}\n\t * The engine automatically computes the bounding sphere when it is needed, e.g., for ray casting or view frustum culling.\n\t * You may need to recompute the bounding sphere if an instance is transformed via {@link InstancedMesh#setMatrixAt}.\n\t */\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$4.copy( geometry.boundingSphere ).applyMatrix4( _instanceLocalMatrix );\n\n\t\t\tthis.boundingSphere.union( _sphere$4 );\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\t/**\n\t * Gets the color of the defined instance.\n\t *\n\t * @param {number} index - The instance index.\n\t * @param {Color} color - The target object that is used to store the method's result.\n\t */\n\tgetColorAt( index, color ) {\n\n\t\tcolor.fromArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\t/**\n\t * Gets the local transformation matrix of the defined instance.\n\t *\n\t * @param {number} index - The instance index.\n\t * @param {Matrix4} matrix - The target object that is used to store the method's result.\n\t */\n\tgetMatrixAt( index, matrix ) {\n\n\t\tmatrix.fromArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\t/**\n\t * Gets the morph target weights of the defined instance.\n\t *\n\t * @param {number} index - The instance index.\n\t * @param {Mesh} object - The target object that is used to store the method's result.\n\t */\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$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// 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\t/**\n\t * Sets the given color to the defined instance. Make sure you set the `needsUpdate` flag of\n\t * {@link InstancedMesh#instanceColor} to `true` after updating all the colors.\n\t *\n\t * @param {number} index - The instance index.\n\t * @param {Color} color - The instance color.\n\t */\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 ).fill( 1 ), 3 );\n\n\t\t}\n\n\t\tcolor.toArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\t/**\n\t * Sets the given local transformation matrix to the defined instance. Make sure you set the `needsUpdate` flag of\n\t * {@link InstancedMesh#instanceMatrix} to `true` after updating all the colors.\n\t *\n\t * @param {number} index - The instance index.\n\t * @param {Matrix4} matrix - The local transformation.\n\t */\n\tsetMatrixAt( index, matrix ) {\n\n\t\tmatrix.toArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\t/**\n\t * Sets the morph target weights to the defined instance. Make sure you set the `needsUpdate` flag of\n\t * {@link InstancedMesh#morphTexture} to `true` after updating all the influences.\n\t *\n\t * @param {number} index - The instance index.\n\t * @param {Mesh} object - A mesh which `morphTargetInfluences` property containing the morph target weights\n\t * of a single instance.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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}\n\n}\n\nconst _vector1 = /*@__PURE__*/ new Vector3();\nconst _vector2 = /*@__PURE__*/ new Vector3();\nconst _normalMatrix = /*@__PURE__*/ new Matrix3();\n\n/**\n * A two dimensional surface that extends infinitely in 3D space, represented\n * in [Hessian normal form]{@link http://mathworld.wolfram.com/HessianNormalForm.html}\n * by a unit length normal vector and a constant.\n */\nclass Plane {\n\n\t/**\n\t * Constructs a new plane.\n\t *\n\t * @param {Vector3} [normal=(1,0,0)] - A unit length vector defining the normal of the plane.\n\t * @param {number} [constant=0] - The signed distance from the origin to the plane.\n\t */\n\tconstructor( normal = new Vector3( 1, 0, 0 ), constant = 0 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isPlane = true;\n\n\t\t/**\n\t\t * A unit length vector defining the normal of the plane.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.normal = normal;\n\n\t\t/**\n\t\t * The signed distance from the origin to the plane.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.constant = constant;\n\n\t}\n\n\t/**\n\t * Sets the plane components by copying the given values.\n\t *\n\t * @param {Vector3} normal - The normal.\n\t * @param {number} constant - The constant.\n\t * @return {Plane} A reference to this plane.\n\t */\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\t/**\n\t * Sets the plane components by defining `x`, `y`, `z` as the\n\t * plane normal and `w` as the constant.\n\t *\n\t * @param {number} x - The value for the normal's x component.\n\t * @param {number} y - The value for the normal's y component.\n\t * @param {number} z - The value for the normal's z component.\n\t * @param {number} w - The constant value.\n\t * @return {Plane} A reference to this plane.\n\t */\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\t/**\n\t * Sets the plane from the given normal and coplanar point (that is a point\n\t * that lies onto the plane).\n\t *\n\t * @param {Vector3} normal - The normal.\n\t * @param {Vector3} point - A coplanar point.\n\t * @return {Plane} A reference to this plane.\n\t */\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\t/**\n\t * Sets the plane from three coplanar points. The winding order is\n\t * assumed to be counter-clockwise, and determines the direction of\n\t * the plane normal.\n\t *\n\t * @param {Vector3} a - The first coplanar point.\n\t * @param {Vector3} b - The second coplanar point.\n\t * @param {Vector3} c - The third coplanar point.\n\t * @return {Plane} A reference to this plane.\n\t */\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\t/**\n\t * Copies the values of the given plane to this instance.\n\t *\n\t * @param {Plane} plane - The plane to copy.\n\t * @return {Plane} A reference to this plane.\n\t */\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\t/**\n\t * Normalizes the plane normal and adjusts the constant accordingly.\n\t *\n\t * @return {Plane} A reference to this plane.\n\t */\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\t/**\n\t * Negates both the plane normal and the constant.\n\t *\n\t * @return {Plane} A reference to this plane.\n\t */\n\tnegate() {\n\n\t\tthis.constant *= -1;\n\t\tthis.normal.negate();\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the signed distance from the given point to this plane.\n\t *\n\t * @param {Vector3} point - The point to compute the distance for.\n\t * @return {number} The signed distance.\n\t */\n\tdistanceToPoint( point ) {\n\n\t\treturn this.normal.dot( point ) + this.constant;\n\n\t}\n\n\t/**\n\t * Returns the signed distance from the given sphere to this plane.\n\t *\n\t * @param {Sphere} sphere - The sphere to compute the distance for.\n\t * @return {number} The signed distance.\n\t */\n\tdistanceToSphere( sphere ) {\n\n\t\treturn this.distanceToPoint( sphere.center ) - sphere.radius;\n\n\t}\n\n\t/**\n\t * Projects a the given point onto the plane.\n\t *\n\t * @param {Vector3} point - The point to project.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The projected point on the plane.\n\t */\n\tprojectPoint( point, target ) {\n\n\t\treturn target.copy( point ).addScaledVector( this.normal, - this.distanceToPoint( point ) );\n\n\t}\n\n\t/**\n\t * Returns the intersection point of the passed line and the plane. Returns\n\t * `null` if the line does not intersect. Returns the line's starting point if\n\t * the line is coplanar with the plane.\n\t *\n\t * @param {Line3} line - The line to compute the intersection for.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {?Vector3} The intersection point.\n\t */\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\t/**\n\t * Returns `true` if the given line segment intersects with (passes through) the plane.\n\t *\n\t * @param {Line3} line - The line to test.\n\t * @return {boolean} Whether the given line segment intersects with the plane or not.\n\t */\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\t/**\n\t * Returns `true` if the given bounding box intersects with the plane.\n\t *\n\t * @param {Box3} box - The bounding box to test.\n\t * @return {boolean} Whether the given bounding box intersects with the plane or not.\n\t */\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsPlane( this );\n\n\t}\n\n\t/**\n\t * Returns `true` if the given bounding sphere intersects with the plane.\n\t *\n\t * @param {Sphere} sphere - The bounding sphere to test.\n\t * @return {boolean} Whether the given bounding sphere intersects with the plane or not.\n\t */\n\tintersectsSphere( sphere ) {\n\n\t\treturn sphere.intersectsPlane( this );\n\n\t}\n\n\t/**\n\t * Returns a coplanar vector to the plane, by calculating the\n\t * projection of the normal at the origin onto the plane.\n\t *\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The coplanar point.\n\t */\n\tcoplanarPoint( target ) {\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.constant );\n\n\t}\n\n\t/**\n\t * Apply a 4x4 matrix to the plane. The matrix must be an affine, homogeneous transform.\n\t *\n\t * The optional normal matrix can be pre-computed like so:\n\t * ```js\n\t * const optionalNormalMatrix = new THREE.Matrix3().getNormalMatrix( matrix );\n\t * ```\n\t *\n\t * @param {Matrix4} matrix - The transformation matrix.\n\t * @param {Matrix4} [optionalNormalMatrix] - A pre-computed normal matrix.\n\t * @return {Plane} A reference to this plane.\n\t */\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\t/**\n\t * Translates the plane by the distance defined by the given offset vector.\n\t * Note that this only affects the plane constant and will not affect the normal vector.\n\t *\n\t * @param {Vector3} offset - The offset vector.\n\t * @return {Plane} A reference to this plane.\n\t */\n\ttranslate( offset ) {\n\n\t\tthis.constant -= offset.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns `true` if this plane is equal with the given one.\n\t *\n\t * @param {Plane} plane - The plane to test for equality.\n\t * @return {boolean} Whether this plane is equal with the given one.\n\t */\n\tequals( plane ) {\n\n\t\treturn plane.normal.equals( this.normal ) && ( plane.constant === this.constant );\n\n\t}\n\n\t/**\n\t * Returns a new plane with copied values from this instance.\n\t *\n\t * @return {Plane} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _sphere$3 = /*@__PURE__*/ new Sphere();\nconst _defaultSpriteCenter = /*@__PURE__*/ new Vector2( 0.5, 0.5 );\nconst _vector$6 = /*@__PURE__*/ new Vector3();\n\n/**\n * Frustums are used to determine what is inside the camera's field of view.\n * They help speed up the rendering process - objects which lie outside a camera's\n * frustum can safely be excluded from rendering.\n *\n * This class is mainly intended for use internally by a renderer.\n */\nclass Frustum {\n\n\t/**\n\t * Constructs a new frustum.\n\t *\n\t * @param {Plane} [p0] - The first plane that encloses the frustum.\n\t * @param {Plane} [p1] - The second plane that encloses the frustum.\n\t * @param {Plane} [p2] - The third plane that encloses the frustum.\n\t * @param {Plane} [p3] - The fourth plane that encloses the frustum.\n\t * @param {Plane} [p4] - The fifth plane that encloses the frustum.\n\t * @param {Plane} [p5] - The sixth plane that encloses the frustum.\n\t */\n\tconstructor( p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane() ) {\n\n\t\t/**\n\t\t * This array holds the planes that enclose the frustum.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.planes = [ p0, p1, p2, p3, p4, p5 ];\n\n\t}\n\n\t/**\n\t * Sets the frustum planes by copying the given planes.\n\t *\n\t * @param {Plane} [p0] - The first plane that encloses the frustum.\n\t * @param {Plane} [p1] - The second plane that encloses the frustum.\n\t * @param {Plane} [p2] - The third plane that encloses the frustum.\n\t * @param {Plane} [p3] - The fourth plane that encloses the frustum.\n\t * @param {Plane} [p4] - The fifth plane that encloses the frustum.\n\t * @param {Plane} [p5] - The sixth plane that encloses the frustum.\n\t * @return {Frustum} A reference to this frustum.\n\t */\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\t/**\n\t * Copies the values of the given frustum to this instance.\n\t *\n\t * @param {Frustum} frustum - The frustum to copy.\n\t * @return {Frustum} A reference to this frustum.\n\t */\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\t/**\n\t * Sets the frustum planes from the given projection matrix.\n\t *\n\t * @param {Matrix4} m - The projection matrix.\n\t * @param {(WebGLCoordinateSystem|WebGPUCoordinateSystem)} coordinateSystem - The coordinate system.\n\t * @param {boolean} [reversedDepth=false] - Whether to use a reversed depth.\n\t * @return {Frustum} A reference to this frustum.\n\t */\n\tsetFromProjectionMatrix( m, coordinateSystem = WebGLCoordinateSystem, reversedDepth = false ) {\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\n\t\tif ( reversedDepth ) {\n\n\t\t\tplanes[ 4 ].setComponents( me2, me6, me10, me14 ).normalize(); // far\n\t\t\tplanes[ 5 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize(); // near\n\n\t\t} else {\n\n\t\t\tplanes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize(); // far\n\n\t\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\t\tplanes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize(); // near\n\n\t\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\t\tplanes[ 5 ].setComponents( me2, me6, me10, me14 ).normalize(); // near\n\n\t\t\t} else {\n\n\t\t\t\tthrow new Error( 'THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns `true` if the 3D object's bounding sphere is intersecting this frustum.\n\t *\n\t * Note that the 3D object must have a geometry so that the bounding sphere can be calculated.\n\t *\n\t * @param {Object3D} object - The 3D object to test.\n\t * @return {boolean} Whether the 3D object's bounding sphere is intersecting this frustum or not.\n\t */\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$3.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$3.copy( geometry.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t}\n\n\t\treturn this.intersectsSphere( _sphere$3 );\n\n\t}\n\n\t/**\n\t * Returns `true` if the given sprite is intersecting this frustum.\n\t *\n\t * @param {Sprite} sprite - The sprite to test.\n\t * @return {boolean} Whether the sprite is intersecting this frustum or not.\n\t */\n\tintersectsSprite( sprite ) {\n\n\t\t_sphere$3.center.set( 0, 0, 0 );\n\n\t\tconst offset = _defaultSpriteCenter.distanceTo( sprite.center );\n\n\t\t_sphere$3.radius = 0.7071067811865476 + offset;\n\t\t_sphere$3.applyMatrix4( sprite.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere$3 );\n\n\t}\n\n\t/**\n\t * Returns `true` if the given bounding sphere is intersecting this frustum.\n\t *\n\t * @param {Sphere} sphere - The bounding sphere to test.\n\t * @return {boolean} Whether the bounding sphere is intersecting this frustum or not.\n\t */\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\t/**\n\t * Returns `true` if the given bounding box is intersecting this frustum.\n\t *\n\t * @param {Box3} box - The bounding box to test.\n\t * @return {boolean} Whether the bounding box is intersecting this frustum or not.\n\t */\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$6.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n\t\t\t_vector$6.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n\t\t\t_vector$6.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n\n\t\t\tif ( plane.distanceToPoint( _vector$6 ) < 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\t/**\n\t * Returns `true` if the given point lies within the frustum.\n\t *\n\t * @param {Vector3} point - The point to test.\n\t * @return {boolean} Whether the point lies within this frustum or not.\n\t */\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\t/**\n\t * Returns a new frustum with copied values from this instance.\n\t *\n\t * @return {Frustum} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _projScreenMatrix$2 = /*@__PURE__*/ new Matrix4();\nconst _frustum$1 = /*@__PURE__*/ new Frustum();\n\n/**\n * FrustumArray is used to determine if an object is visible in at least one camera\n * from an array of cameras. This is particularly useful for multi-view renderers.\n*/\nclass FrustumArray {\n\n\t/**\n\t * Constructs a new frustum array.\n\t *\n\t */\n\tconstructor() {\n\n\t\t/**\n\t\t * The coordinate system to use.\n\t\t *\n\t\t * @type {WebGLCoordinateSystem|WebGPUCoordinateSystem}\n\t\t * @default WebGLCoordinateSystem\n\t\t */\n\t\tthis.coordinateSystem = WebGLCoordinateSystem;\n\n\t}\n\n\t/**\n\t * Returns `true` if the 3D object's bounding sphere is intersecting any frustum\n\t * from the camera array.\n\t *\n\t * @param {Object3D} object - The 3D object to test.\n\t * @param {Object} cameraArray - An object with a cameras property containing an array of cameras.\n\t * @return {boolean} Whether the 3D object is visible in any camera.\n\t */\n\tintersectsObject( object, cameraArray ) {\n\n\t\tif ( ! cameraArray.isArrayCamera || cameraArray.cameras.length === 0 ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < cameraArray.cameras.length; i ++ ) {\n\n\t\t\tconst camera = cameraArray.cameras[ i ];\n\n\t\t\t_projScreenMatrix$2.multiplyMatrices(\n\t\t\t\tcamera.projectionMatrix,\n\t\t\t\tcamera.matrixWorldInverse\n\t\t\t);\n\n\t\t\t_frustum$1.setFromProjectionMatrix(\n\t\t\t\t_projScreenMatrix$2,\n\t\t\t\tcamera.coordinateSystem,\n\t\t\t\tcamera.reversedDepth\n\t\t\t);\n\n\t\t\tif ( _frustum$1.intersectsObject( object ) ) {\n\n\t\t\t\treturn true; // Object is visible in at least one camera\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false; // Not visible in any camera\n\n\t}\n\n\t/**\n\t * Returns `true` if the given sprite is intersecting any frustum\n\t * from the camera array.\n\t *\n\t * @param {Sprite} sprite - The sprite to test.\n\t * @param {Object} cameraArray - An object with a cameras property containing an array of cameras.\n\t * @return {boolean} Whether the sprite is visible in any camera.\n\t */\n\tintersectsSprite( sprite, cameraArray ) {\n\n\t\tif ( ! cameraArray || ! cameraArray.cameras || cameraArray.cameras.length === 0 ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < cameraArray.cameras.length; i ++ ) {\n\n\t\t\tconst camera = cameraArray.cameras[ i ];\n\n\t\t\t_projScreenMatrix$2.multiplyMatrices(\n\t\t\t\tcamera.projectionMatrix,\n\t\t\t\tcamera.matrixWorldInverse\n\t\t\t);\n\n\t\t\t_frustum$1.setFromProjectionMatrix(\n\t\t\t\t_projScreenMatrix$2,\n\t\t\t\tcamera.coordinateSystem,\n\t\t\t\tcamera.reversedDepth\n\t\t\t);\n\n\t\t\tif ( _frustum$1.intersectsSprite( sprite ) ) {\n\n\t\t\t\treturn true; // Sprite is visible in at least one camera\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false; // Not visible in any camera\n\n\t}\n\n\t/**\n\t * Returns `true` if the given bounding sphere is intersecting any frustum\n\t * from the camera array.\n\t *\n\t * @param {Sphere} sphere - The bounding sphere to test.\n\t * @param {Object} cameraArray - An object with a cameras property containing an array of cameras.\n\t * @return {boolean} Whether the sphere is visible in any camera.\n\t */\n\tintersectsSphere( sphere, cameraArray ) {\n\n\t\tif ( ! cameraArray || ! cameraArray.cameras || cameraArray.cameras.length === 0 ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < cameraArray.cameras.length; i ++ ) {\n\n\t\t\tconst camera = cameraArray.cameras[ i ];\n\n\t\t\t_projScreenMatrix$2.multiplyMatrices(\n\t\t\t\tcamera.projectionMatrix,\n\t\t\t\tcamera.matrixWorldInverse\n\t\t\t);\n\n\t\t\t_frustum$1.setFromProjectionMatrix(\n\t\t\t\t_projScreenMatrix$2,\n\t\t\t\tcamera.coordinateSystem,\n\t\t\t\tcamera.reversedDepth\n\t\t\t);\n\n\t\t\tif ( _frustum$1.intersectsSphere( sphere ) ) {\n\n\t\t\t\treturn true; // Sphere is visible in at least one camera\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false; // Not visible in any camera\n\n\t}\n\n\t/**\n\t * Returns `true` if the given bounding box is intersecting any frustum\n\t * from the camera array.\n\t *\n\t * @param {Box3} box - The bounding box to test.\n\t * @param {Object} cameraArray - An object with a cameras property containing an array of cameras.\n\t * @return {boolean} Whether the box is visible in any camera.\n\t */\n\tintersectsBox( box, cameraArray ) {\n\n\t\tif ( ! cameraArray || ! cameraArray.cameras || cameraArray.cameras.length === 0 ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < cameraArray.cameras.length; i ++ ) {\n\n\t\t\tconst camera = cameraArray.cameras[ i ];\n\n\t\t\t_projScreenMatrix$2.multiplyMatrices(\n\t\t\t\tcamera.projectionMatrix,\n\t\t\t\tcamera.matrixWorldInverse\n\t\t\t);\n\n\t\t\t_frustum$1.setFromProjectionMatrix(\n\t\t\t\t_projScreenMatrix$2,\n\t\t\t\tcamera.coordinateSystem,\n\t\t\t\tcamera.reversedDepth\n\t\t\t);\n\n\t\t\tif ( _frustum$1.intersectsBox( box ) ) {\n\n\t\t\t\treturn true; // Box is visible in at least one camera\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false; // Not visible in any camera\n\n\t}\n\n\t/**\n\t * Returns `true` if the given point lies within any frustum\n\t * from the camera array.\n\t *\n\t * @param {Vector3} point - The point to test.\n\t * @param {Object} cameraArray - An object with a cameras property containing an array of cameras.\n\t * @return {boolean} Whether the point is visible in any camera.\n\t */\n\tcontainsPoint( point, cameraArray ) {\n\n\t\tif ( ! cameraArray || ! cameraArray.cameras || cameraArray.cameras.length === 0 ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < cameraArray.cameras.length; i ++ ) {\n\n\t\t\tconst camera = cameraArray.cameras[ i ];\n\n\t\t\t_projScreenMatrix$2.multiplyMatrices(\n\t\t\t\tcamera.projectionMatrix,\n\t\t\t\tcamera.matrixWorldInverse\n\t\t\t);\n\n\t\t\t_frustum$1.setFromProjectionMatrix(\n\t\t\t\t_projScreenMatrix$2,\n\t\t\t\tcamera.coordinateSystem,\n\t\t\t\tcamera.reversedDepth\n\t\t\t);\n\n\t\t\tif ( _frustum$1.containsPoint( point ) ) {\n\n\t\t\t\treturn true; // Point is visible in at least one camera\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false; // Not visible in any camera\n\n\t}\n\n\t/**\n\t * Returns a new frustum array with copied values from this instance.\n\t *\n\t * @return {FrustumArray} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new FrustumArray();\n\n\t}\n\n}\n\nfunction ascIdSort( a, b ) {\n\n\treturn a - b;\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( start, count, 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 = start;\n\t\titem.count = 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 _whiteColor = /*@__PURE__*/ new Color( 1, 1, 1 );\nconst _frustum = /*@__PURE__*/ new Frustum();\nconst _frustumArray = /*@__PURE__*/ new FrustumArray();\nconst _box$1 = /*@__PURE__*/ new Box3();\nconst _sphere$2 = /*@__PURE__*/ new Sphere();\nconst _vector$5 = /*@__PURE__*/ new Vector3();\nconst _forward$1 = /*@__PURE__*/ new Vector3();\nconst _temp = /*@__PURE__*/ new Vector3();\nconst _renderList = /*@__PURE__*/ new MultiDrawRenderList();\nconst _mesh = /*@__PURE__*/ new Mesh();\nconst _batchIntersects = [];\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\n// safely copies array contents to a potentially smaller array\nfunction copyArrayContents( src, target ) {\n\n\tif ( src.constructor !== target.constructor ) {\n\n\t\t// if arrays are of a different type (eg due to index size increasing) then data must be per-element copied\n\t\tconst len = Math.min( src.length, target.length );\n\t\tfor ( let i = 0; i < len; i ++ ) {\n\n\t\t\ttarget[ i ] = src[ i ];\n\n\t\t}\n\n\t} else {\n\n\t\t// if the arrays use the same data layout we can use a fast block copy\n\t\tconst len = Math.min( src.length, target.length );\n\t\ttarget.set( new src.constructor( src.buffer, 0, len ) );\n\n\t}\n\n}\n\n/**\n * A special version of a mesh with multi draw batch rendering support. Use\n * this class if you have to render a large number of objects with the same\n * material but with different geometries or world transformations. The usage of\n * `BatchedMesh` will help you to reduce the number of draw calls and thus improve the overall\n * rendering performance in your application.\n *\n * ```js\n * const box = new THREE.BoxGeometry( 1, 1, 1 );\n * const sphere = new THREE.SphereGeometry( 1, 12, 12 );\n * const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );\n *\n * // initialize and add geometries into the batched mesh\n * const batchedMesh = new BatchedMesh( 10, 5000, 10000, material );\n * const boxGeometryId = batchedMesh.addGeometry( box );\n * const sphereGeometryId = batchedMesh.addGeometry( sphere );\n *\n * // create instances of those geometries\n * const boxInstancedId1 = batchedMesh.addInstance( boxGeometryId );\n * const boxInstancedId2 = batchedMesh.addInstance( boxGeometryId );\n *\n * const sphereInstancedId1 = batchedMesh.addInstance( sphereGeometryId );\n * const sphereInstancedId2 = batchedMesh.addInstance( sphereGeometryId );\n *\n * // position the geometries\n * batchedMesh.setMatrixAt( boxInstancedId1, boxMatrix1 );\n * batchedMesh.setMatrixAt( boxInstancedId2, boxMatrix2 );\n *\n * batchedMesh.setMatrixAt( sphereInstancedId1, sphereMatrix1 );\n * batchedMesh.setMatrixAt( sphereInstancedId2, sphereMatrix2 );\n *\n * scene.add( batchedMesh );\n * ```\n *\n * @augments Mesh\n */\nclass BatchedMesh extends Mesh {\n\n\t/**\n\t * Constructs a new batched mesh.\n\t *\n\t * @param {number} maxInstanceCount - The maximum number of individual instances planned to be added and rendered.\n\t * @param {number} maxVertexCount - The maximum number of vertices to be used by all unique geometries.\n\t * @param {number} [maxIndexCount=maxVertexCount*2] - The maximum number of indices to be used by all unique geometries\n\t * @param {Material|Array} [material] - The mesh material.\n\t */\n\tconstructor( maxInstanceCount, maxVertexCount, maxIndexCount = maxVertexCount * 2, material ) {\n\n\t\tsuper( new BufferGeometry(), material );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isBatchedMesh = true;\n\n\t\t/**\n\t\t * When set ot `true`, the individual objects of a batch are frustum culled.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.perObjectFrustumCulled = true;\n\n\t\t/**\n\t\t * When set to `true`, the individual objects of a batch are sorted to improve overdraw-related artifacts.\n\t\t * If the material is marked as \"transparent\" objects are rendered back to front and if not then they are\n\t\t * rendered front to back.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.sortObjects = true;\n\n\t\t/**\n\t\t * The bounding box of the batched mesh. Can be computed via {@link BatchedMesh#computeBoundingBox}.\n\t\t *\n\t\t * @type {?Box3}\n\t\t * @default null\n\t\t */\n\t\tthis.boundingBox = null;\n\n\t\t/**\n\t\t * The bounding sphere of the batched mesh. Can be computed via {@link BatchedMesh#computeBoundingSphere}.\n\t\t *\n\t\t * @type {?Sphere}\n\t\t * @default null\n\t\t */\n\t\tthis.boundingSphere = null;\n\n\t\t/**\n\t\t * Takes a sort a function that is run before render. The function takes a list of instances to\n\t\t * sort and a camera. The objects in the list include a \"z\" field to perform a depth-ordered\n\t\t * sort with.\n\t\t *\n\t\t * @type {?Function}\n\t\t * @default null\n\t\t */\n\t\tthis.customSort = null;\n\n\t\t// stores visible, active, and geometry id per instance and reserved buffer ranges for geometries\n\t\tthis._instanceInfo = [];\n\t\tthis._geometryInfo = [];\n\n\t\t// instance, geometry ids that have been set as inactive, and are available to be overwritten\n\t\tthis._availableInstanceIds = [];\n\t\tthis._availableGeometryIds = [];\n\n\t\t// used to track where the next point is that geometry should be inserted\n\t\tthis._nextIndexStart = 0;\n\t\tthis._nextVertexStart = 0;\n\t\tthis._geometryCount = 0;\n\n\t\t// flags\n\t\tthis._visibilityChanged = true;\n\t\tthis._geometryInitialized = false;\n\n\t\t// cached user options\n\t\tthis._maxInstanceCount = maxInstanceCount;\n\t\tthis._maxVertexCount = maxVertexCount;\n\t\tthis._maxIndexCount = maxIndexCount;\n\n\t\t// buffers for multi draw\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\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/**\n\t * The maximum number of individual instances that can be stored in the batch.\n\t *\n\t * @type {number}\n\t * @readonly\n\t */\n\tget maxInstanceCount() {\n\n\t\treturn this._maxInstanceCount;\n\n\t}\n\n\t/**\n\t * The instance count.\n\t *\n\t * @type {number}\n\t * @readonly\n\t */\n\tget instanceCount() {\n\n\t\treturn this._instanceInfo.length - this._availableInstanceIds.length;\n\n\t}\n\n\t/**\n\t * The number of unused vertices.\n\t *\n\t * @type {number}\n\t * @readonly\n\t */\n\tget unusedVertexCount() {\n\n\t\treturn this._maxVertexCount - this._nextVertexStart;\n\n\t}\n\n\t/**\n\t * The number of unused indices.\n\t *\n\t * @type {number}\n\t * @readonly\n\t */\n\tget unusedIndexCount() {\n\n\t\treturn this._maxIndexCount - this._nextIndexStart;\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._maxInstanceCount );\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( 'THREE.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( `THREE.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( 'THREE.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\t/**\n\t * Validates the instance defined by the given ID.\n\t *\n\t * @param {number} instanceId - The instance to validate.\n\t */\n\tvalidateInstanceId( instanceId ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tif ( instanceId < 0 || instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\tthrow new Error( `THREE.BatchedMesh: Invalid instanceId ${instanceId}. Instance is either out of range or has been deleted.` );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Validates the geometry defined by the given ID.\n\t *\n\t * @param {number} geometryId - The geometry to validate.\n\t */\n\tvalidateGeometryId( geometryId ) {\n\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tif ( geometryId < 0 || geometryId >= geometryInfoList.length || geometryInfoList[ geometryId ].active === false ) {\n\n\t\t\tthrow new Error( `THREE.BatchedMesh: Invalid geometryId ${geometryId}. Geometry is either out of range or has been deleted.` );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Takes a sort a function that is run before render. The function takes a list of instances to\n\t * sort and a camera. The objects in the list include a \"z\" field to perform a depth-ordered sort with.\n\t *\n\t * @param {Function} func - The custom sort function.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\tsetCustomSort( func ) {\n\n\t\tthis.customSort = func;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Computes the bounding box, updating {@link BatchedMesh#boundingBox}.\n\t * Bounding boxes aren't computed by default. They need to be explicitly computed,\n\t * otherwise they are `null`.\n\t */\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 boundingBox = this.boundingBox;\n\t\tconst instanceInfo = this._instanceInfo;\n\n\t\tboundingBox.makeEmpty();\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( instanceInfo[ i ].active === false ) continue;\n\n\t\t\tconst geometryId = instanceInfo[ 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\t/**\n\t * Computes the bounding sphere, updating {@link BatchedMesh#boundingSphere}.\n\t * Bounding spheres aren't computed by default. They need to be explicitly computed,\n\t * otherwise they are `null`.\n\t */\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 instanceInfo = this._instanceInfo;\n\n\t\tboundingSphere.makeEmpty();\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( instanceInfo[ i ].active === false ) continue;\n\n\t\t\tconst geometryId = instanceInfo[ 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\t/**\n\t * Adds a new instance to the batch using the geometry of the given ID and returns\n\t * a new id referring to the new instance to be used by other functions.\n\t *\n\t * @param {number} geometryId - The ID of a previously added geometry via {@link BatchedMesh#addGeometry}.\n\t * @return {number} The instance ID.\n\t */\n\taddInstance( geometryId ) {\n\n\t\tconst atCapacity = this._instanceInfo.length >= this.maxInstanceCount;\n\n\t\t// ensure we're not over geometry\n\t\tif ( atCapacity && this._availableInstanceIds.length === 0 ) {\n\n\t\t\tthrow new Error( 'THREE.BatchedMesh: Maximum item count reached.' );\n\n\t\t}\n\n\t\tconst instanceInfo = {\n\t\t\tvisible: true,\n\t\t\tactive: true,\n\t\t\tgeometryIndex: geometryId,\n\t\t};\n\n\t\tlet drawId = null;\n\n\t\t// Prioritize using previously freed instance ids\n\t\tif ( this._availableInstanceIds.length > 0 ) {\n\n\t\t\tthis._availableInstanceIds.sort( ascIdSort );\n\n\t\t\tdrawId = this._availableInstanceIds.shift();\n\t\t\tthis._instanceInfo[ drawId ] = instanceInfo;\n\n\t\t} else {\n\n\t\t\tdrawId = this._instanceInfo.length;\n\t\t\tthis._instanceInfo.push( instanceInfo );\n\n\t\t}\n\n\t\tconst matricesTexture = this._matricesTexture;\n\t\t_matrix$1.identity().toArray( matricesTexture.image.data, 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\tthis._visibilityChanged = true;\n\t\treturn drawId;\n\n\t}\n\n\t/**\n\t * Adds the given geometry to the batch and returns the associated\n\t * geometry id referring to it to be used in other functions.\n\t *\n\t * @param {BufferGeometry} geometry - The geometry to add.\n\t * @param {number} [reservedVertexCount=-1] - Optional parameter specifying the amount of\n\t * vertex buffer space to reserve for the added geometry. This is necessary if it is planned\n\t * to set a new geometry at this index at a later time that is larger than the original geometry.\n\t * Defaults to the length of the given geometry vertex buffer.\n\t * @param {number} [reservedIndexCount=-1] - Optional parameter specifying the amount of index\n\t * buffer space to reserve for the added geometry. This is necessary if it is planned to set a\n\t * new geometry at this index at a later time that is larger than the original geometry. Defaults to\n\t * the length of the given geometry index buffer.\n\t * @return {number} The geometry ID.\n\t */\n\taddGeometry( geometry, reservedVertexCount = -1, reservedIndexCount = -1 ) {\n\n\t\tthis._initializeGeometry( geometry );\n\n\t\tthis._validateGeometry( geometry );\n\n\t\tconst geometryInfo = {\n\t\t\t// geometry information\n\t\t\tvertexStart: -1,\n\t\t\tvertexCount: -1,\n\t\t\treservedVertexCount: -1,\n\n\t\t\tindexStart: -1,\n\t\t\tindexCount: -1,\n\t\t\treservedIndexCount: -1,\n\n\t\t\t// draw range information\n\t\t\tstart: -1,\n\t\t\tcount: -1,\n\n\t\t\t// state\n\t\t\tboundingBox: null,\n\t\t\tboundingSphere: null,\n\t\t\tactive: true,\n\t\t};\n\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tgeometryInfo.vertexStart = this._nextVertexStart;\n\t\tgeometryInfo.reservedVertexCount = reservedVertexCount === -1 ? geometry.getAttribute( 'position' ).count : reservedVertexCount;\n\n\t\tconst index = geometry.getIndex();\n\t\tconst hasIndex = index !== null;\n\t\tif ( hasIndex ) {\n\n\t\t\tgeometryInfo.indexStart = this._nextIndexStart;\n\t\t\tgeometryInfo.reservedIndexCount = reservedIndexCount === -1 ? index.count : reservedIndexCount;\n\n\t\t}\n\n\t\tif (\n\t\t\tgeometryInfo.indexStart !== -1 &&\n\t\t\tgeometryInfo.indexStart + geometryInfo.reservedIndexCount > this._maxIndexCount ||\n\t\t\tgeometryInfo.vertexStart + geometryInfo.reservedVertexCount > this._maxVertexCount\n\t\t) {\n\n\t\t\tthrow new Error( 'THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.' );\n\n\t\t}\n\n\t\t// update id\n\t\tlet geometryId;\n\t\tif ( this._availableGeometryIds.length > 0 ) {\n\n\t\t\tthis._availableGeometryIds.sort( ascIdSort );\n\n\t\t\tgeometryId = this._availableGeometryIds.shift();\n\t\t\tgeometryInfoList[ geometryId ] = geometryInfo;\n\n\n\t\t} else {\n\n\t\t\tgeometryId = this._geometryCount;\n\t\t\tthis._geometryCount ++;\n\t\t\tgeometryInfoList.push( geometryInfo );\n\n\t\t}\n\n\t\t// update the geometry\n\t\tthis.setGeometryAt( geometryId, geometry );\n\n\t\t// increment the next geometry position\n\t\tthis._nextIndexStart = geometryInfo.indexStart + geometryInfo.reservedIndexCount;\n\t\tthis._nextVertexStart = geometryInfo.vertexStart + geometryInfo.reservedVertexCount;\n\n\t\treturn geometryId;\n\n\t}\n\n\t/**\n\t * Replaces the geometry at the given ID with the provided geometry. Throws an error if there\n\t * is not enough space reserved for geometry. Calling this will change all instances that are\n\t * rendering that geometry.\n\t *\n\t * @param {number} geometryId - The ID of the geometry that should be replaced with the given geometry.\n\t * @param {BufferGeometry} geometry - The new geometry.\n\t * @return {number} The geometry ID.\n\t */\n\tsetGeometryAt( geometryId, geometry ) {\n\n\t\tif ( geometryId >= this._geometryCount ) {\n\n\t\t\tthrow new Error( 'THREE.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 geometryInfo = this._geometryInfo[ geometryId ];\n\t\tif (\n\t\t\thasIndex &&\n\t\t\tsrcIndex.count > geometryInfo.reservedIndexCount ||\n\t\t\tgeometry.attributes.position.count > geometryInfo.reservedVertexCount\n\t\t) {\n\n\t\t\tthrow new Error( 'THREE.BatchedMesh: Reserved space not large enough for provided geometry.' );\n\n\t\t}\n\n\t\t// copy geometry buffer data over\n\t\tconst vertexStart = geometryInfo.vertexStart;\n\t\tconst reservedVertexCount = geometryInfo.reservedVertexCount;\n\t\tgeometryInfo.vertexCount = geometry.getAttribute( 'position' ).count;\n\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 = reservedVertexCount; 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, reservedVertexCount * itemSize );\n\n\t\t}\n\n\t\t// copy index\n\t\tif ( hasIndex ) {\n\n\t\t\tconst indexStart = geometryInfo.indexStart;\n\t\t\tconst reservedIndexCount = geometryInfo.reservedIndexCount;\n\t\t\tgeometryInfo.indexCount = geometry.getIndex().count;\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 = reservedIndexCount; 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, geometryInfo.reservedIndexCount );\n\n\t\t}\n\n\t\t// update the draw range\n\t\tgeometryInfo.start = hasIndex ? geometryInfo.indexStart : geometryInfo.vertexStart;\n\t\tgeometryInfo.count = hasIndex ? geometryInfo.indexCount : geometryInfo.vertexCount;\n\n\t\t// store the bounding boxes\n\t\tgeometryInfo.boundingBox = null;\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tgeometryInfo.boundingBox = geometry.boundingBox.clone();\n\n\t\t}\n\n\t\tgeometryInfo.boundingSphere = null;\n\t\tif ( geometry.boundingSphere !== null ) {\n\n\t\t\tgeometryInfo.boundingSphere = geometry.boundingSphere.clone();\n\n\t\t}\n\n\t\tthis._visibilityChanged = true;\n\t\treturn geometryId;\n\n\t}\n\n\t/**\n\t * Deletes the geometry defined by the given ID from this batch. Any instances referencing\n\t * this geometry will also be removed as a side effect.\n\t *\n\t * @param {number} geometryId - The ID of the geometry to remove from the batch.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\tdeleteGeometry( geometryId ) {\n\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tif ( geometryId >= geometryInfoList.length || geometryInfoList[ geometryId ].active === false ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\t// delete any instances associated with this geometry\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( instanceInfo[ i ].active && instanceInfo[ i ].geometryIndex === geometryId ) {\n\n\t\t\t\tthis.deleteInstance( i );\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometryInfoList[ geometryId ].active = false;\n\t\tthis._availableGeometryIds.push( geometryId );\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Deletes an existing instance from the batch using the given ID.\n\t *\n\t * @param {number} instanceId - The ID of the instance to remove from the batch.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\tdeleteInstance( instanceId ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\tthis._instanceInfo[ instanceId ].active = false;\n\t\tthis._availableInstanceIds.push( instanceId );\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Repacks the sub geometries in [name] to remove any unused space remaining from\n\t * previously deleted geometry, freeing up space to add new geometry.\n\t *\n\t * @param {number} instanceId - The ID of the instance to remove from the batch.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\toptimize() {\n\n\t\t// track the next indices to copy data to\n\t\tlet nextVertexStart = 0;\n\t\tlet nextIndexStart = 0;\n\n\t\t// Iterate over all geometry ranges in order sorted from earliest in the geometry buffer to latest\n\t\t// in the geometry buffer. Because draw range objects can be reused there is no guarantee of their order.\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tconst indices = geometryInfoList\n\t\t\t.map( ( e, i ) => i )\n\t\t\t.sort( ( a, b ) => {\n\n\t\t\t\treturn geometryInfoList[ a ].vertexStart - geometryInfoList[ b ].vertexStart;\n\n\t\t\t} );\n\n\t\tconst geometry = this.geometry;\n\t\tfor ( let i = 0, l = geometryInfoList.length; i < l; i ++ ) {\n\n\t\t\t// if a geometry range is inactive then don't copy anything\n\t\t\tconst index = indices[ i ];\n\t\t\tconst geometryInfo = geometryInfoList[ index ];\n\t\t\tif ( geometryInfo.active === false ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\t// if a geometry contains an index buffer then shift it, as well\n\t\t\tif ( geometry.index !== null ) {\n\n\t\t\t\tif ( geometryInfo.indexStart !== nextIndexStart ) {\n\n\t\t\t\t\tconst { indexStart, vertexStart, reservedIndexCount } = geometryInfo;\n\t\t\t\t\tconst index = geometry.index;\n\t\t\t\t\tconst array = index.array;\n\n\t\t\t\t\t// shift the index pointers based on how the vertex data will shift\n\t\t\t\t\t// adjusting the index must happen first so the original vertex start value is available\n\t\t\t\t\tconst elementDelta = nextVertexStart - vertexStart;\n\t\t\t\t\tfor ( let j = indexStart; j < indexStart + reservedIndexCount; j ++ ) {\n\n\t\t\t\t\t\tarray[ j ] = array[ j ] + elementDelta;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tindex.array.copyWithin( nextIndexStart, indexStart, indexStart + reservedIndexCount );\n\t\t\t\t\tindex.addUpdateRange( nextIndexStart, reservedIndexCount );\n\n\t\t\t\t\tgeometryInfo.indexStart = nextIndexStart;\n\n\t\t\t\t}\n\n\t\t\t\tnextIndexStart += geometryInfo.reservedIndexCount;\n\n\t\t\t}\n\n\t\t\t// if a geometry needs to be moved then copy attribute data to overwrite unused space\n\t\t\tif ( geometryInfo.vertexStart !== nextVertexStart ) {\n\n\t\t\t\tconst { vertexStart, reservedVertexCount } = geometryInfo;\n\t\t\t\tconst attributes = geometry.attributes;\n\t\t\t\tfor ( const key in attributes ) {\n\n\t\t\t\t\tconst attribute = attributes[ key ];\n\t\t\t\t\tconst { array, itemSize } = attribute;\n\t\t\t\t\tarray.copyWithin( nextVertexStart * itemSize, vertexStart * itemSize, ( vertexStart + reservedVertexCount ) * itemSize );\n\t\t\t\t\tattribute.addUpdateRange( nextVertexStart * itemSize, reservedVertexCount * itemSize );\n\n\t\t\t\t}\n\n\t\t\t\tgeometryInfo.vertexStart = nextVertexStart;\n\n\t\t\t}\n\n\t\t\tnextVertexStart += geometryInfo.reservedVertexCount;\n\t\t\tgeometryInfo.start = geometry.index ? geometryInfo.indexStart : geometryInfo.vertexStart;\n\n\t\t\t// step the next geometry points to the shifted position\n\t\t\tthis._nextIndexStart = geometry.index ? geometryInfo.indexStart + geometryInfo.reservedIndexCount : 0;\n\t\t\tthis._nextVertexStart = geometryInfo.vertexStart + geometryInfo.reservedVertexCount;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the bounding box for the given geometry.\n\t *\n\t * @param {number} geometryId - The ID of the geometry to return the bounding box for.\n\t * @param {Box3} target - The target object that is used to store the method's result.\n\t * @return {?Box3} The geometry's bounding box. Returns `null` if no geometry has been found for the given ID.\n\t */\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 geometry = this.geometry;\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\tif ( geometryInfo.boundingBox === null ) {\n\n\t\t\tconst box = new Box3();\n\t\t\tconst index = geometry.index;\n\t\t\tconst position = geometry.attributes.position;\n\t\t\tfor ( let i = geometryInfo.start, l = geometryInfo.start + geometryInfo.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\tgeometryInfo.boundingBox = box;\n\n\t\t}\n\n\t\ttarget.copy( geometryInfo.boundingBox );\n\t\treturn target;\n\n\t}\n\n\t/**\n\t * Returns the bounding sphere for the given geometry.\n\t *\n\t * @param {number} geometryId - The ID of the geometry to return the bounding sphere for.\n\t * @param {Sphere} target - The target object that is used to store the method's result.\n\t * @return {?Sphere} The geometry's bounding sphere. Returns `null` if no geometry has been found for the given ID.\n\t */\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 geometry = this.geometry;\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\tif ( geometryInfo.boundingSphere === null ) {\n\n\t\t\tconst sphere = new Sphere();\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\n\t\t\tlet maxRadiusSq = 0;\n\t\t\tfor ( let i = geometryInfo.start, l = geometryInfo.start + geometryInfo.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\tgeometryInfo.boundingSphere = sphere;\n\n\t\t}\n\n\t\ttarget.copy( geometryInfo.boundingSphere );\n\t\treturn target;\n\n\t}\n\n\t/**\n\t * Sets the given local transformation matrix to the defined instance.\n\t * Negatively scaled matrices are not supported.\n\t *\n\t * @param {number} instanceId - The ID of an instance to set the matrix of.\n\t * @param {Matrix4} matrix - A 4x4 matrix representing the local transformation of a single instance.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\tsetMatrixAt( instanceId, matrix ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\tconst matricesTexture = this._matricesTexture;\n\t\tconst matricesArray = this._matricesTexture.image.data;\n\t\tmatrix.toArray( matricesArray, instanceId * 16 );\n\t\tmatricesTexture.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the local transformation matrix of the defined instance.\n\t *\n\t * @param {number} instanceId - The ID of an instance to get the matrix of.\n\t * @param {Matrix4} matrix - The target object that is used to store the method's result.\n\t * @return {Matrix4} The instance's local transformation matrix.\n\t */\n\tgetMatrixAt( instanceId, matrix ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\t\treturn matrix.fromArray( this._matricesTexture.image.data, instanceId * 16 );\n\n\t}\n\n\t/**\n\t * Sets the given color to the defined instance.\n\t *\n\t * @param {number} instanceId - The ID of an instance to set the color of.\n\t * @param {Color} color - The color to set the instance to.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\tsetColorAt( instanceId, color ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\tif ( this._colorsTexture === null ) {\n\n\t\t\tthis._initColorsTexture();\n\n\t\t}\n\n\t\tcolor.toArray( this._colorsTexture.image.data, instanceId * 4 );\n\t\tthis._colorsTexture.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the color of the defined instance.\n\t *\n\t * @param {number} instanceId - The ID of an instance to get the color of.\n\t * @param {Color} color - The target object that is used to store the method's result.\n\t * @return {Color} The instance's color.\n\t */\n\tgetColorAt( instanceId, color ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\t\treturn color.fromArray( this._colorsTexture.image.data, instanceId * 4 );\n\n\t}\n\n\t/**\n\t * Sets the visibility of the instance.\n\t *\n\t * @param {number} instanceId - The id of the instance to set the visibility of.\n\t * @param {boolean} visible - Whether the instance is visible or not.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\tsetVisibleAt( instanceId, visible ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\tif ( this._instanceInfo[ instanceId ].visible === visible ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tthis._instanceInfo[ instanceId ].visible = visible;\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the visibility state of the defined instance.\n\t *\n\t * @param {number} instanceId - The ID of an instance to get the visibility state of.\n\t * @return {boolean} Whether the instance is visible or not.\n\t */\n\tgetVisibleAt( instanceId ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\treturn this._instanceInfo[ instanceId ].visible;\n\n\t}\n\n\t/**\n\t * Sets the geometry ID of the instance at the given index.\n\t *\n\t * @param {number} instanceId - The ID of the instance to set the geometry ID of.\n\t * @param {number} geometryId - The geometry ID to be use by the instance.\n\t * @return {BatchedMesh} A reference to this batched mesh.\n\t */\n\tsetGeometryIdAt( instanceId, geometryId ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\t\tthis.validateGeometryId( geometryId );\n\n\t\tthis._instanceInfo[ instanceId ].geometryIndex = geometryId;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the geometry ID of the defined instance.\n\t *\n\t * @param {number} instanceId - The ID of an instance to get the geometry ID of.\n\t * @return {number} The instance's geometry ID.\n\t */\n\tgetGeometryIdAt( instanceId ) {\n\n\t\tthis.validateInstanceId( instanceId );\n\n\t\treturn this._instanceInfo[ instanceId ].geometryIndex;\n\n\t}\n\n\t/**\n\t * Get the range representing the subset of triangles related to the attached geometry,\n\t * indicating the starting offset and count, or `null` if invalid.\n\t *\n\t * @param {number} geometryId - The id of the geometry to get the range of.\n\t * @param {Object} [target] - The target object that is used to store the method's result.\n\t * @return {{\n\t * \tvertexStart:number,vertexCount:number,reservedVertexCount:number,\n\t * \tindexStart:number,indexCount:number,reservedIndexCount:number,\n\t * \tstart:number,count:number\n\t * }} The result object with range data.\n\t */\n\tgetGeometryRangeAt( geometryId, target = {} ) {\n\n\t\tthis.validateGeometryId( geometryId );\n\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\ttarget.vertexStart = geometryInfo.vertexStart;\n\t\ttarget.vertexCount = geometryInfo.vertexCount;\n\t\ttarget.reservedVertexCount = geometryInfo.reservedVertexCount;\n\n\t\ttarget.indexStart = geometryInfo.indexStart;\n\t\ttarget.indexCount = geometryInfo.indexCount;\n\t\ttarget.reservedIndexCount = geometryInfo.reservedIndexCount;\n\n\t\ttarget.start = geometryInfo.start;\n\t\ttarget.count = geometryInfo.count;\n\n\t\treturn target;\n\n\t}\n\n\t/**\n\t * Resizes the necessary buffers to support the provided number of instances.\n\t * If the provided arguments shrink the number of instances but there are not enough\n\t * unused Ids at the end of the list then an error is thrown.\n\t *\n\t * @param {number} maxInstanceCount - The max number of individual instances that can be added and rendered by the batch.\n\t*/\n\tsetInstanceCount( maxInstanceCount ) {\n\n\t\t// shrink the available instances as much as possible\n\t\tconst availableInstanceIds = this._availableInstanceIds;\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tavailableInstanceIds.sort( ascIdSort );\n\t\twhile ( availableInstanceIds[ availableInstanceIds.length - 1 ] === instanceInfo.length - 1 ) {\n\n\t\t\tinstanceInfo.pop();\n\t\t\tavailableInstanceIds.pop();\n\n\t\t}\n\n\t\t// throw an error if it can't be shrunk to the desired size\n\t\tif ( maxInstanceCount < instanceInfo.length ) {\n\n\t\t\tthrow new Error( `BatchedMesh: Instance ids outside the range ${ maxInstanceCount } are being used. Cannot shrink instance count.` );\n\n\t\t}\n\n\t\t// copy the multi draw counts\n\t\tconst multiDrawCounts = new Int32Array( maxInstanceCount );\n\t\tconst multiDrawStarts = new Int32Array( maxInstanceCount );\n\t\tcopyArrayContents( this._multiDrawCounts, multiDrawCounts );\n\t\tcopyArrayContents( this._multiDrawStarts, multiDrawStarts );\n\n\t\tthis._multiDrawCounts = multiDrawCounts;\n\t\tthis._multiDrawStarts = multiDrawStarts;\n\t\tthis._maxInstanceCount = maxInstanceCount;\n\n\t\t// update texture data for instance sampling\n\t\tconst indirectTexture = this._indirectTexture;\n\t\tconst matricesTexture = this._matricesTexture;\n\t\tconst colorsTexture = this._colorsTexture;\n\n\t\tindirectTexture.dispose();\n\t\tthis._initIndirectTexture();\n\t\tcopyArrayContents( indirectTexture.image.data, this._indirectTexture.image.data );\n\n\t\tmatricesTexture.dispose();\n\t\tthis._initMatricesTexture();\n\t\tcopyArrayContents( matricesTexture.image.data, this._matricesTexture.image.data );\n\n\t\tif ( colorsTexture ) {\n\n\t\t\tcolorsTexture.dispose();\n\t\t\tthis._initColorsTexture();\n\t\t\tcopyArrayContents( colorsTexture.image.data, this._colorsTexture.image.data );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Resizes the available space in the batch's vertex and index buffer attributes to the provided sizes.\n\t * If the provided arguments shrink the geometry buffers but there is not enough unused space at the\n\t * end of the geometry attributes then an error is thrown.\n\t *\n\t * @param {number} maxVertexCount - The maximum number of vertices to be used by all unique geometries to resize to.\n\t * @param {number} maxIndexCount - The maximum number of indices to be used by all unique geometries to resize to.\n\t*/\n\tsetGeometrySize( maxVertexCount, maxIndexCount ) {\n\n\t\t// Check if we can shrink to the requested vertex attribute size\n\t\tconst validRanges = [ ...this._geometryInfo ].filter( info => info.active );\n\t\tconst requiredVertexLength = Math.max( ...validRanges.map( range => range.vertexStart + range.reservedVertexCount ) );\n\t\tif ( requiredVertexLength > maxVertexCount ) {\n\n\t\t\tthrow new Error( `BatchedMesh: Geometry vertex values are being used outside the range ${ maxIndexCount }. Cannot shrink further.` );\n\n\t\t}\n\n\t\t// Check if we can shrink to the requested index attribute size\n\t\tif ( this.geometry.index ) {\n\n\t\t\tconst requiredIndexLength = Math.max( ...validRanges.map( range => range.indexStart + range.reservedIndexCount ) );\n\t\t\tif ( requiredIndexLength > maxIndexCount ) {\n\n\t\t\t\tthrow new Error( `BatchedMesh: Geometry index values are being used outside the range ${ maxIndexCount }. Cannot shrink further.` );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\t// dispose of the previous geometry\n\t\tconst oldGeometry = this.geometry;\n\t\toldGeometry.dispose();\n\n\t\t// recreate the geometry needed based on the previous variant\n\t\tthis._maxVertexCount = maxVertexCount;\n\t\tthis._maxIndexCount = maxIndexCount;\n\n\t\tif ( this._geometryInitialized ) {\n\n\t\t\tthis._geometryInitialized = false;\n\t\t\tthis.geometry = new BufferGeometry();\n\t\t\tthis._initializeGeometry( oldGeometry );\n\n\t\t}\n\n\t\t// copy data from the previous geometry\n\t\tconst geometry = this.geometry;\n\t\tif ( oldGeometry.index ) {\n\n\t\t\tcopyArrayContents( oldGeometry.index.array, geometry.index.array );\n\n\t\t}\n\n\t\tfor ( const key in oldGeometry.attributes ) {\n\n\t\t\tcopyArrayContents( oldGeometry.attributes[ key ].array, geometry.attributes[ key ].array );\n\n\t\t}\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tconst geometryInfoList = this._geometryInfo;\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 = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( ! instanceInfo[ i ].visible || ! instanceInfo[ i ].active ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\t\t\tconst geometryInfo = geometryInfoList[ geometryId ];\n\t\t\t_mesh.geometry.setDrawRange( geometryInfo.start, geometryInfo.count );\n\n\t\t\t// get 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._geometryInfo = source._geometryInfo.map( info => ( {\n\t\t\t...info,\n\n\t\t\tboundingBox: info.boundingBox !== null ? info.boundingBox.clone() : null,\n\t\t\tboundingSphere: info.boundingSphere !== null ? info.boundingSphere.clone() : null,\n\t\t} ) );\n\t\tthis._instanceInfo = source._instanceInfo.map( info => ( { ...info } ) );\n\n\t\tthis._availableInstanceIds = source._availableInstanceIds.slice();\n\t\tthis._availableGeometryIds = source._availableGeometryIds.slice();\n\n\t\tthis._nextIndexStart = source._nextIndexStart;\n\t\tthis._nextVertexStart = source._nextVertexStart;\n\t\tthis._geometryCount = source._geometryCount;\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._multiDrawCounts = source._multiDrawCounts.slice();\n\t\tthis._multiDrawStarts = source._multiDrawStarts.slice();\n\n\t\tthis._indirectTexture = source._indirectTexture.clone();\n\t\tthis._indirectTexture.image.data = this._indirectTexture.image.data.slice();\n\n\t\tthis._matricesTexture = source._matricesTexture.clone();\n\t\tthis._matricesTexture.image.data = this._matricesTexture.image.data.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.data.slice();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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}\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 instanceInfo = this._instanceInfo;\n\t\tconst multiDrawStarts = this._multiDrawStarts;\n\t\tconst multiDrawCounts = this._multiDrawCounts;\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tconst perObjectFrustumCulled = this.perObjectFrustumCulled;\n\t\tconst indirectTexture = this._indirectTexture;\n\t\tconst indirectArray = indirectTexture.image.data;\n\n\t\tconst frustum = camera.isArrayCamera ? _frustumArray : _frustum;\n\t\t// prepare the frustum in the local frame\n\t\tif ( perObjectFrustumCulled && ! camera.isArrayCamera ) {\n\n\t\t\t_matrix$1\n\t\t\t\t.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse )\n\t\t\t\t.multiply( this.matrixWorld );\n\n\t\t\t_frustum.setFromProjectionMatrix(\n\t\t\t\t_matrix$1,\n\t\t\t\tcamera.coordinateSystem,\n\t\t\t\tcamera.reversedDepth\n\t\t\t);\n\n\t\t}\n\n\t\tlet multiDrawCount = 0;\n\t\tif ( this.sortObjects ) {\n\n\t\t\t// get the camera position in the local frame\n\t\t\t_matrix$1.copy( this.matrixWorld ).invert();\n\t\t\t_vector$5.setFromMatrixPosition( camera.matrixWorld ).applyMatrix4( _matrix$1 );\n\t\t\t_forward$1.set( 0, 0, -1 ).transformDirection( camera.matrixWorld ).transformDirection( _matrix$1 );\n\n\t\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\t\tif ( instanceInfo[ i ].visible && instanceInfo[ i ].active ) {\n\n\t\t\t\t\tconst geometryId = instanceInfo[ 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, camera );\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 geometryInfo = geometryInfoList[ geometryId ];\n\t\t\t\t\t\tconst z = _temp.subVectors( _sphere$2.center, _vector$5 ).dot( _forward$1 );\n\t\t\t\t\t\t_renderList.push( geometryInfo.start, geometryInfo.count, 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[ multiDrawCount ] = item.start * bytesPerElement;\n\t\t\t\tmultiDrawCounts[ multiDrawCount ] = item.count;\n\t\t\t\tindirectArray[ multiDrawCount ] = item.index;\n\t\t\t\tmultiDrawCount ++;\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 = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\t\tif ( instanceInfo[ i ].visible && instanceInfo[ i ].active ) {\n\n\t\t\t\t\tconst geometryId = instanceInfo[ 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, camera );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! culled ) {\n\n\t\t\t\t\t\tconst geometryInfo = geometryInfoList[ geometryId ];\n\t\t\t\t\t\tmultiDrawStarts[ multiDrawCount ] = geometryInfo.start * bytesPerElement;\n\t\t\t\t\t\tmultiDrawCounts[ multiDrawCount ] = geometryInfo.count;\n\t\t\t\t\t\tindirectArray[ multiDrawCount ] = i;\n\t\t\t\t\t\tmultiDrawCount ++;\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 = multiDrawCount;\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\n/**\n * A material for rendering line primitives.\n *\n * Materials define the appearance of renderable 3D objects.\n *\n * ```js\n * const material = new THREE.LineBasicMaterial( { color: 0xffffff } );\n * ```\n *\n * @augments Material\n */\nclass LineBasicMaterial extends Material {\n\n\t/**\n\t * Constructs a new line basic material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLineBasicMaterial = true;\n\n\t\tthis.type = 'LineBasicMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff );\n\n\t\t/**\n\t\t * Sets the color of the lines using data from a texture. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * Controls line thickness or lines.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}. WebGL and WebGPU\n\t\t * ignore this setting and always render line primitives with a\n\t\t * width of one pixel.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.linewidth = 1;\n\n\t\t/**\n\t\t * Defines appearance of line ends.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('butt'|'round'|'square')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.linecap = 'round';\n\n\t\t/**\n\t\t * Defines appearance of line joints.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.linejoin = 'round';\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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.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\n/**\n * A continuous line. The line are rendered by connecting consecutive\n * vertices with straight lines.\n *\n * ```js\n * const material = new THREE.LineBasicMaterial( { color: 0x0000ff } );\n *\n * const points = [];\n * points.push( new THREE.Vector3( - 10, 0, 0 ) );\n * points.push( new THREE.Vector3( 0, 10, 0 ) );\n * points.push( new THREE.Vector3( 10, 0, 0 ) );\n *\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n *\n * const line = new THREE.Line( geometry, material );\n * scene.add( line );\n * ```\n *\n * @augments Object3D\n */\nclass Line extends Object3D {\n\n\t/**\n\t * Constructs a new line.\n\t *\n\t * @param {BufferGeometry} [geometry] - The line geometry.\n\t * @param {Material|Array} [material] - The line material.\n\t */\n\tconstructor( geometry = new BufferGeometry(), material = new LineBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLine = true;\n\n\t\tthis.type = 'Line';\n\n\t\t/**\n\t\t * The line geometry.\n\t\t *\n\t\t * @type {BufferGeometry}\n\t\t */\n\t\tthis.geometry = geometry;\n\n\t\t/**\n\t\t * The line material.\n\t\t *\n\t\t * @type {Material|Array}\n\t\t * @default LineBasicMaterial\n\t\t */\n\t\tthis.material = material;\n\n\t\t/**\n\t\t * A dictionary representing the morph targets in the geometry. The key is the\n\t\t * morph targets name, the value its attribute index. This member is `undefined`\n\t\t * by default and only set when morph targets are detected in the geometry.\n\t\t *\n\t\t * @type {Object|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetDictionary = undefined;\n\n\t\t/**\n\t\t * An array of weights typically in the range `[0,1]` that specify how much of the morph\n\t\t * is applied. This member is `undefined` by default and only set when morph targets are\n\t\t * detected in the geometry.\n\t\t *\n\t\t * @type {Array|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetInfluences = undefined;\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\t/**\n\t * Computes an array of distance values which are necessary for rendering dashed lines.\n\t * For each vertex in the geometry, the method calculates the cumulative length from the\n\t * current point to the very beginning of the line.\n\t *\n\t * @return {Line} A reference to this line.\n\t */\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\t/**\n\t * Computes intersection points between a casted ray and this line.\n\t *\n\t * @param {Raycaster} raycaster - The raycaster.\n\t * @param {Array} intersects - The target array that holds the intersection points.\n\t */\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, i );\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, end - 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} 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, i );\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, end - 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}\n\n\t}\n\n\t/**\n\t * Sets the values of {@link Line#morphTargetDictionary} and {@link Line#morphTargetInfluences}\n\t * to make sure existing morph targets can influence this 3D object.\n\t */\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, i ) {\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: i,\n\t\tface: null,\n\t\tfaceIndex: null,\n\t\tbarycoord: null,\n\t\tobject: object\n\n\t};\n\n}\n\nconst _start = /*@__PURE__*/ new Vector3();\nconst _end = /*@__PURE__*/ new Vector3();\n\n/**\n * A series of lines drawn between pairs of vertices.\n *\n * @augments Line\n */\nclass LineSegments extends Line {\n\n\t/**\n\t * Constructs a new line segments.\n\t *\n\t * @param {BufferGeometry} [geometry] - The line geometry.\n\t * @param {Material|Array} [material] - The line material.\n\t */\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\n/**\n * A continuous line. This is nearly the same as {@link Line} the only difference\n * is that the last vertex is connected with the first vertex in order to close\n * the line to form a loop.\n *\n * @augments Line\n */\nclass LineLoop extends Line {\n\n\t/**\n\t * Constructs a new line loop.\n\t *\n\t * @param {BufferGeometry} [geometry] - The line geometry.\n\t * @param {Material|Array} [material] - The line material.\n\t */\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLineLoop = true;\n\n\t\tthis.type = 'LineLoop';\n\n\t}\n\n}\n\n/**\n * A material for rendering point primitives.\n *\n * Materials define the appearance of renderable 3D objects.\n *\n * ```js\n * const vertices = [];\n *\n * for ( let i = 0; i < 10000; i ++ ) {\n * \tconst x = THREE.MathUtils.randFloatSpread( 2000 );\n * \tconst y = THREE.MathUtils.randFloatSpread( 2000 );\n * \tconst z = THREE.MathUtils.randFloatSpread( 2000 );\n *\n * \tvertices.push( x, y, z );\n * }\n *\n * const geometry = new THREE.BufferGeometry();\n * geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );\n * const material = new THREE.PointsMaterial( { color: 0x888888 } );\n * const points = new THREE.Points( geometry, material );\n * scene.add( points );\n * ```\n *\n * @augments Material\n */\nclass PointsMaterial extends Material {\n\n\t/**\n\t * Constructs a new points material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isPointsMaterial = true;\n\n\t\tthis.type = 'PointsMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff );\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * Defines the size of the points in pixels.\n\t\t *\n\t\t * Might be capped if the value exceeds hardware dependent parameters like [gl.ALIASED_POINT_SIZE_RANGE]{@link https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/getParamete}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.size = 1;\n\n\t\t/**\n\t\t * Specifies whether size of individual points is attenuated by the camera depth (perspective camera only).\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.sizeAttenuation = true;\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * A class for displaying points or point clouds.\n *\n * @augments Object3D\n */\nclass Points extends Object3D {\n\n\t/**\n\t * Constructs a new point cloud.\n\t *\n\t * @param {BufferGeometry} [geometry] - The points geometry.\n\t * @param {Material|Array} [material] - The points material.\n\t */\n\tconstructor( geometry = new BufferGeometry(), material = new PointsMaterial() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isPoints = true;\n\n\t\tthis.type = 'Points';\n\n\t\t/**\n\t\t * The points geometry.\n\t\t *\n\t\t * @type {BufferGeometry}\n\t\t */\n\t\tthis.geometry = geometry;\n\n\t\t/**\n\t\t * The line material.\n\t\t *\n\t\t * @type {Material|Array}\n\t\t * @default PointsMaterial\n\t\t */\n\t\tthis.material = material;\n\n\t\t/**\n\t\t * A dictionary representing the morph targets in the geometry. The key is the\n\t\t * morph targets name, the value its attribute index. This member is `undefined`\n\t\t * by default and only set when morph targets are detected in the geometry.\n\t\t *\n\t\t * @type {Object|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetDictionary = undefined;\n\n\t\t/**\n\t\t * An array of weights typically in the range `[0,1]` that specify how much of the morph\n\t\t * is applied. This member is `undefined` by default and only set when morph targets are\n\t\t * detected in the geometry.\n\t\t *\n\t\t * @type {Array|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.morphTargetInfluences = undefined;\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\t/**\n\t * Computes intersection points between a casted ray and this point cloud.\n\t *\n\t * @param {Raycaster} raycaster - The raycaster.\n\t * @param {Array} intersects - The target array that holds the intersection points.\n\t */\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\t/**\n\t * Sets the values of {@link Points#morphTargetDictionary} and {@link Points#morphTargetInfluences}\n\t * to make sure existing morph targets can influence this 3D object.\n\t */\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\tfaceIndex: null,\n\t\t\tbarycoord: null,\n\t\t\tobject: object\n\n\t\t} );\n\n\t}\n\n}\n\n/**\n * A texture for use with a video.\n *\n * ```js\n * // assuming you have created a HTML video element with id=\"video\"\n * const video = document.getElementById( 'video' );\n * const texture = new THREE.VideoTexture( video );\n * ```\n *\n * Note: When using video textures with {@link WebGPURenderer}, {@link Texture#colorSpace} must be\n * set to THREE.SRGBColorSpace.\n *\n * Note: After the initial use of a texture, its dimensions, format, and type\n * cannot be changed. Instead, call {@link Texture#dispose} on the texture and instantiate a new one.\n *\n * @augments Texture\n */\nclass VideoTexture extends Texture {\n\n\t/**\n\t * Constructs a new video texture.\n\t *\n\t * @param {HTMLVideoElement} video - The video element to use as a data source for the texture.\n\t * @param {number} [mapping=Texture.DEFAULT_MAPPING] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=LinearFilter] - The mag filter value.\n\t * @param {number} [minFilter=LinearFilter] - The min filter value.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t */\n\tconstructor( video, mapping, wrapS, wrapT, magFilter = LinearFilter, minFilter = LinearFilter, format, type, anisotropy ) {\n\n\t\tsuper( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isVideoTexture = true;\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.generateMipmaps = false;\n\n\t\t/**\n\t\t * The video frame request callback identifier, which is a positive integer.\n\t\t *\n\t\t * Value of 0 represents no scheduled rVFC.\n\t\t *\n\t\t * @private\n\t\t * @type {number}\n\t\t */\n\t\tthis._requestVideoFrameCallbackId = 0;\n\n\t\tconst scope = this;\n\n\t\tfunction updateVideo() {\n\n\t\t\tscope.needsUpdate = true;\n\t\t\tscope._requestVideoFrameCallbackId = video.requestVideoFrameCallback( updateVideo );\n\n\t\t}\n\n\t\tif ( 'requestVideoFrameCallback' in video ) {\n\n\t\t\tthis._requestVideoFrameCallbackId = video.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\t/**\n\t * This method is called automatically by the renderer and sets {@link Texture#needsUpdate}\n\t * to `true` every time a new frame is available.\n\t *\n\t * Only relevant if `requestVideoFrameCallback` is not supported in the browser.\n\t */\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\tdispose() {\n\n\t\tif ( this._requestVideoFrameCallbackId !== 0 ) {\n\n\t\t\tthis.source.data.cancelVideoFrameCallback( this._requestVideoFrameCallbackId );\n\n\t\t}\n\n\t\tsuper.dispose();\n\n\t}\n\n}\n\n/**\n * This class can be used as an alternative way to define video data. Instead of using\n * an instance of `HTMLVideoElement` like with `VideoTexture`, `VideoFrameTexture` expects each frame is\n * defined manually via {@link VideoFrameTexture#setFrame}. A typical use case for this module is when\n * video frames are decoded with the WebCodecs API.\n *\n * ```js\n * const texture = new THREE.VideoFrameTexture();\n * texture.setFrame( frame );\n * ```\n *\n * @augments VideoTexture\n */\nclass VideoFrameTexture extends VideoTexture {\n\n\t/**\n\t * Constructs a new video frame texture.\n\t *\n\t * @param {number} [mapping=Texture.DEFAULT_MAPPING] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=LinearFilter] - The mag filter value.\n\t * @param {number} [minFilter=LinearFilter] - The min filter value.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t */\n\tconstructor( mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {\n\n\t\tsuper( {}, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isVideoFrameTexture = true;\n\n\t}\n\n\t/**\n\t * This method overwritten with an empty implementation since\n\t * this type of texture is updated via `setFrame()`.\n\t */\n\tupdate() {}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this ); // restoring Texture.clone()\n\n\t}\n\n\t/**\n\t * Sets the current frame of the video. This will automatically update the texture\n\t * so the data can be used for rendering.\n\t *\n\t * @param {VideoFrame} frame - The video frame.\n\t */\n\tsetFrame( frame ) {\n\n\t\tthis.image = frame;\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\n/**\n * This class can only be used in combination with `copyFramebufferToTexture()` methods\n * of renderers. It extracts the contents of the current bound framebuffer and provides it\n * as a texture for further usage.\n *\n * ```js\n * const pixelRatio = window.devicePixelRatio;\n * const textureSize = 128 * pixelRatio;\n *\n * const frameTexture = new FramebufferTexture( textureSize, textureSize );\n *\n * // calculate start position for copying part of the frame data\n * const vector = new Vector2();\n * vector.x = ( window.innerWidth * pixelRatio / 2 ) - ( textureSize / 2 );\n * vector.y = ( window.innerHeight * pixelRatio / 2 ) - ( textureSize / 2 );\n *\n * renderer.render( scene, camera );\n *\n * // copy part of the rendered frame into the framebuffer texture\n * renderer.copyFramebufferToTexture( frameTexture, vector );\n * ```\n *\n * @augments Texture\n */\nclass FramebufferTexture extends Texture {\n\n\t/**\n\t * Constructs a new framebuffer texture.\n\t *\n\t * @param {number} [width] - The width of the texture.\n\t * @param {number} [height] - The height of the texture.\n\t */\n\tconstructor( width, height ) {\n\n\t\tsuper( { width, height } );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isFramebufferTexture = true;\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers more than one pixel.\n\t\t *\n\t\t * Overwritten and set to `NearestFilter` by default to disable filtering.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default NearestFilter\n\t\t */\n\t\tthis.magFilter = NearestFilter;\n\n\t\t/**\n\t\t * How the texture is sampled when a texel covers less than one pixel.\n\t\t *\n\t\t * Overwritten and set to `NearestFilter` by default to disable filtering.\n\t\t *\n\t\t * @type {(NearestFilter|NearestMipmapNearestFilter|NearestMipmapLinearFilter|LinearFilter|LinearMipmapNearestFilter|LinearMipmapLinearFilter)}\n\t\t * @default NearestFilter\n\t\t */\n\t\tthis.minFilter = NearestFilter;\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.generateMipmaps = false;\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\n/**\n * Creates a texture based on data in compressed form.\n *\n * These texture are usually loaded with {@link CompressedTextureLoader}.\n *\n * @augments Texture\n */\nclass CompressedTexture extends Texture {\n\n\t/**\n\t * Constructs a new compressed texture.\n\t *\n\t * @param {Array} mipmaps - This array holds for all mipmaps (including the bases mip)\n\t * the data and dimensions.\n\t * @param {number} width - The width of the texture.\n\t * @param {number} height - The height of the texture.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t * @param {number} [mapping=Texture.DEFAULT_MAPPING] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=LinearFilter] - The mag filter value.\n\t * @param {number} [minFilter=LinearMipmapLinearFilter] - The min filter value.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t * @param {string} [colorSpace=NoColorSpace] - The color space.\n\t */\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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCompressedTexture = true;\n\n\t\t/**\n\t\t * The image property of a compressed texture just defines its dimensions.\n\t\t *\n\t\t * @type {{width:number,height:number}}\n\t\t */\n\t\tthis.image = { width: width, height: height };\n\n\t\t/**\n\t\t * This array holds for all mipmaps (including the bases mip) the data and dimensions.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.mipmaps = mipmaps;\n\n\t\t/**\n\t\t * If set to `true`, the texture is flipped along the vertical axis when\n\t\t * uploaded to the GPU.\n\t\t *\n\t\t * Overwritten and set to `false` by default since it is not possible to\n\t\t * flip compressed textures.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t * @readonly\n\t\t */\n\t\tthis.flipY = false;\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Overwritten and set to `false` by default since it is not\n\t\t * possible to generate mipmaps for compressed data. Mipmaps\n\t\t * must be embedded in the compressed texture file.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t * @readonly\n\t\t */\n\t\tthis.generateMipmaps = false;\n\n\t}\n\n}\n\n/**\n * Creates a texture 2D array based on data in compressed form.\n *\n * These texture are usually loaded with {@link CompressedTextureLoader}.\n *\n * @augments CompressedTexture\n */\nclass CompressedArrayTexture extends CompressedTexture {\n\n\t/**\n\t * Constructs a new compressed array texture.\n\t *\n\t * @param {Array} mipmaps - This array holds for all mipmaps (including the bases mip)\n\t * the data and dimensions.\n\t * @param {number} width - The width of the texture.\n\t * @param {number} height - The height of the texture.\n\t * @param {number} depth - The depth of the texture.\n\t * @param {number} [format=RGBAFormat] - The min filter value.\n\t * @param {number} [type=UnsignedByteType] - The min filter value.\n\t */\n\tconstructor( mipmaps, width, height, depth, format, type ) {\n\n\t\tsuper( mipmaps, width, height, format, type );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCompressedArrayTexture = true;\n\n\t\t/**\n\t\t * The image property of a compressed texture just defines its dimensions.\n\t\t *\n\t\t * @name CompressedArrayTexture#image\n\t\t * @type {{width:number,height:number,depth:number}}\n\t\t */\n\t\tthis.image.depth = depth;\n\n\t\t/**\n\t\t * This defines how the texture is wrapped in the depth and corresponds to\n\t\t * *W* in UVW mapping.\n\t\t *\n\t\t * @type {(RepeatWrapping|ClampToEdgeWrapping|MirroredRepeatWrapping)}\n\t\t * @default ClampToEdgeWrapping\n\t\t */\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\t/**\n\t\t * A set of all layers which need to be updated in the texture.\n\t\t *\n\t\t * @type {Set}\n\t\t */\n\t\tthis.layerUpdates = new Set();\n\n\t}\n\n\t/**\n\t * Describes that a specific layer of the texture needs to be updated.\n\t * Normally when {@link Texture#needsUpdate} is set to `true`, the\n\t * entire compressed texture array is sent to the GPU. Marking specific\n\t * layers will only transmit subsets of all mipmaps associated with a\n\t * specific depth in the array which is often much more performant.\n\t *\n\t * @param {number} layerIndex - The layer index that should be updated.\n\t */\n\taddLayerUpdate( layerIndex ) {\n\n\t\tthis.layerUpdates.add( layerIndex );\n\n\t}\n\n\t/**\n\t * Resets the layer updates registry.\n\t */\n\tclearLayerUpdates() {\n\n\t\tthis.layerUpdates.clear();\n\n\t}\n\n}\n\n/**\n * Creates a cube texture based on data in compressed form.\n *\n * These texture are usually loaded with {@link CompressedTextureLoader}.\n *\n * @augments CompressedTexture\n */\nclass CompressedCubeTexture extends CompressedTexture {\n\n\t/**\n\t * Constructs a new compressed texture.\n\t *\n\t * @param {Array} images - An array of compressed textures.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t */\n\tconstructor( images, format, type ) {\n\n\t\tsuper( undefined, images[ 0 ].width, images[ 0 ].height, format, type, CubeReflectionMapping );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCompressedCubeTexture = true;\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCubeTexture = true;\n\n\t\tthis.image = images;\n\n\t}\n\n}\n\n/**\n * Creates a texture from a canvas element.\n *\n * This is almost the same as the base texture class, except that it sets {@link Texture#needsUpdate}\n * to `true` immediately since a canvas can directly be used for rendering.\n *\n * @augments Texture\n */\nclass CanvasTexture extends Texture {\n\n\t/**\n\t * Constructs a new texture.\n\t *\n\t * @param {HTMLCanvasElement} [canvas] - The HTML canvas element.\n\t * @param {number} [mapping=Texture.DEFAULT_MAPPING] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=LinearFilter] - The mag filter value.\n\t * @param {number} [minFilter=LinearMipmapLinearFilter] - The min filter value.\n\t * @param {number} [format=RGBAFormat] - The texture format.\n\t * @param {number} [type=UnsignedByteType] - The texture type.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t */\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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCanvasTexture = true;\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\n/**\n * This class can be used to automatically save the depth information of a\n * rendering into a texture.\n *\n * @augments Texture\n */\nclass DepthTexture extends Texture {\n\n\t/**\n\t * Constructs a new depth texture.\n\t *\n\t * @param {number} width - The width of the texture.\n\t * @param {number} height - The height of the texture.\n\t * @param {number} [type=UnsignedIntType] - The texture type.\n\t * @param {number} [mapping=Texture.DEFAULT_MAPPING] - The texture mapping.\n\t * @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.\n\t * @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.\n\t * @param {number} [magFilter=LinearFilter] - The mag filter value.\n\t * @param {number} [minFilter=LinearFilter] - The min filter value.\n\t * @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.\n\t * @param {number} [format=DepthFormat] - The texture format.\n\t * @param {number} [depth=1] - The depth of the texture.\n\t */\n\tconstructor( width, height, type = UnsignedIntType, mapping, wrapS, wrapT, magFilter = NearestFilter, minFilter = NearestFilter, anisotropy, format = DepthFormat, depth = 1 ) {\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\tconst image = { width: width, height: height, depth: depth };\n\n\t\tsuper( image, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isDepthTexture = true;\n\n\t\t/**\n\t\t * If set to `true`, the texture is flipped along the vertical axis when\n\t\t * uploaded to the GPU.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flipY = false;\n\n\t\t/**\n\t\t * Whether to generate mipmaps (if possible) for a texture.\n\t\t *\n\t\t * Overwritten and set to `false` by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.generateMipmaps = false;\n\n\t\t/**\n\t\t * Code corresponding to the depth compare function.\n\t\t *\n\t\t * @type {?(NeverCompare|LessCompare|EqualCompare|LessEqualCompare|GreaterCompare|NotEqualCompare|GreaterEqualCompare|AlwaysCompare)}\n\t\t * @default null\n\t\t */\n\t\tthis.compareFunction = null;\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.source = new Source( Object.assign( {}, source.image ) ); // see #30540\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 * Represents a texture created externally with the same renderer context.\n *\n * This may be a texture from a protected media stream, device camera feed,\n * or other data feeds like a depth sensor.\n *\n * Note that this class is only supported in {@link WebGLRenderer}, and in\n * the {@link WebGPURenderer} WebGPU backend.\n *\n * @augments Texture\n */\nclass ExternalTexture extends Texture {\n\n\t/**\n\t * Creates a new raw texture.\n\t *\n\t * @param {?(WebGLTexture|GPUTexture)} [sourceTexture=null] - The external texture.\n\t */\n\tconstructor( sourceTexture = null ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * The external source texture.\n\t\t *\n\t\t * @type {?(WebGLTexture|GPUTexture)}\n\t\t * @default null\n\t\t */\n\t\tthis.sourceTexture = sourceTexture;\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isExternalTexture = true;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.sourceTexture = source.sourceTexture;\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * A geometry class for representing a capsule.\n *\n * ```js\n * const geometry = new THREE.CapsuleGeometry( 1, 1, 4, 8, 1 );\n * const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );\n * const capsule = new THREE.Mesh( geometry, material );\n * scene.add( capsule );\n * ```\n *\n * @augments BufferGeometry\n */\nclass CapsuleGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new capsule geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the capsule.\n\t * @param {number} [height=1] - Height of the middle section.\n\t * @param {number} [capSegments=4] - Number of curve segments used to build each cap.\n\t * @param {number} [radialSegments=8] - Number of segmented faces around the circumference of the capsule. Must be an integer >= 3.\n\t * @param {number} [heightSegments=1] - Number of rows of faces along the height of the middle section. Must be an integer >= 1.\n\t */\n\tconstructor( radius = 1, height = 1, capSegments = 4, radialSegments = 8, heightSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CapsuleGeometry';\n\n\t\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\theight: height,\n\t\t\tcapSegments: capSegments,\n\t\t\tradialSegments: radialSegments,\n\t\t\theightSegments: heightSegments,\n\t\t};\n\n\t\theight = Math.max( 0, height );\n\t\tcapSegments = Math.max( 1, Math.floor( capSegments ) );\n\t\tradialSegments = Math.max( 3, Math.floor( radialSegments ) );\n\t\theightSegments = Math.max( 1, 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\tconst halfHeight = height / 2;\n\t\tconst capArcLength = ( Math.PI / 2 ) * radius;\n\t\tconst cylinderPartLength = height;\n\t\tconst totalArcLength = 2 * capArcLength + cylinderPartLength;\n\n\t\tconst numVerticalSegments = capSegments * 2 + heightSegments;\n\t\tconst verticesPerRow = radialSegments + 1;\n\n\t\tconst normal = new Vector3();\n\t\tconst vertex = new Vector3();\n\n\t\t// generate vertices, normals, and uvs\n\n\t\tfor ( let iy = 0; iy <= numVerticalSegments; iy ++ ) {\n\n\t\t\tlet currentArcLength = 0;\n\t\t\tlet profileY = 0;\n\t\t\tlet profileRadius = 0;\n\t\t\tlet normalYComponent = 0;\n\n\t\t\tif ( iy <= capSegments ) {\n\n\t\t\t\t// bottom cap\n\t\t\t\tconst segmentProgress = iy / capSegments;\n\t\t\t\tconst angle = ( segmentProgress * Math.PI ) / 2;\n\t\t\t\tprofileY = - halfHeight - radius * Math.cos( angle );\n\t\t\t\tprofileRadius = radius * Math.sin( angle );\n\t\t\t\tnormalYComponent = - radius * Math.cos( angle );\n\t\t\t\tcurrentArcLength = segmentProgress * capArcLength;\n\n\t\t\t} else if ( iy <= capSegments + heightSegments ) {\n\n\t\t\t\t// middle section\n\t\t\t\tconst segmentProgress = ( iy - capSegments ) / heightSegments;\n\t\t\t\tprofileY = - halfHeight + segmentProgress * height;\n\t\t\t\tprofileRadius = radius;\n\t\t\t\tnormalYComponent = 0;\n\t\t\t\tcurrentArcLength = capArcLength + segmentProgress * cylinderPartLength;\n\n\t\t\t} else {\n\n\t\t\t\t// top cap\n\t\t\t\tconst segmentProgress =\n\t\t\t\t\t( iy - capSegments - heightSegments ) / capSegments;\n\t\t\t\tconst angle = ( segmentProgress * Math.PI ) / 2;\n\t\t\t\tprofileY = halfHeight + radius * Math.sin( angle );\n\t\t\t\tprofileRadius = radius * Math.cos( angle );\n\t\t\t\tnormalYComponent = radius * Math.sin( angle );\n\t\t\t\tcurrentArcLength =\n\t\t\t\t\tcapArcLength + cylinderPartLength + segmentProgress * capArcLength;\n\n\t\t\t}\n\n\t\t\tconst v = Math.max( 0, Math.min( 1, currentArcLength / totalArcLength ) );\n\n\n\t\t\t// special case for the poles\n\n\t\t\tlet uOffset = 0;\n\n\t\t\tif ( iy === 0 ) {\n\n\t\t\t\tuOffset = 0.5 / radialSegments;\n\n\t\t\t} else if ( iy === numVerticalSegments ) {\n\n\t\t\t\tuOffset = -0.5 / radialSegments;\n\n\t\t\t}\n\n\t\t\tfor ( let ix = 0; ix <= radialSegments; ix ++ ) {\n\n\t\t\t\tconst u = ix / radialSegments;\n\t\t\t\tconst theta = u * Math.PI * 2;\n\n\t\t\t\tconst sinTheta = Math.sin( theta );\n\t\t\t\tconst cosTheta = Math.cos( theta );\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = - profileRadius * cosTheta;\n\t\t\t\tvertex.y = profileY;\n\t\t\t\tvertex.z = profileRadius * sinTheta;\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.set(\n\t\t\t\t\t- profileRadius * cosTheta,\n\t\t\t\t\tnormalYComponent,\n\t\t\t\t\tprofileRadius * sinTheta\n\t\t\t\t);\n\t\t\t\tnormal.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, v );\n\n\t\t\t}\n\n\t\t\tif ( iy > 0 ) {\n\n\t\t\t\tconst prevIndexRow = ( iy - 1 ) * verticesPerRow;\n\t\t\t\tfor ( let ix = 0; ix < radialSegments; ix ++ ) {\n\n\t\t\t\t\tconst i1 = prevIndexRow + ix;\n\t\t\t\t\tconst i2 = prevIndexRow + ix + 1;\n\t\t\t\t\tconst i3 = iy * verticesPerRow + ix;\n\t\t\t\t\tconst i4 = iy * verticesPerRow + ix + 1;\n\n\t\t\t\t\tindices.push( i1, i2, i3 );\n\t\t\t\t\tindices.push( i2, i4, i3 );\n\n\t\t\t\t}\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {CapsuleGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new CapsuleGeometry( data.radius, data.height, data.capSegments, data.radialSegments, data.heightSegments );\n\n\t}\n\n}\n\n/**\n * A simple shape of Euclidean geometry. It is constructed from a\n * number of triangular segments that are oriented around a central point and\n * extend as far out as a given radius. It is built counter-clockwise from a\n * start angle and a given central angle. It can also be used to create\n * regular polygons, where the number of segments determines the number of\n * sides.\n *\n * ```js\n * const geometry = new THREE.CircleGeometry( 5, 32 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const circle = new THREE.Mesh( geometry, material );\n * scene.add( circle )\n * ```\n *\n * @augments BufferGeometry\n */\nclass CircleGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new circle geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the circle.\n\t * @param {number} [segments=32] - Number of segments (triangles), minimum = `3`.\n\t * @param {number} [thetaStart=0] - Start angle for first segment in radians.\n\t * @param {number} [thetaLength=Math.PI*2] - The central angle, often called theta,\n\t * of the circular sector in radians. The default value results in a complete circle.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {CircleGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new CircleGeometry( data.radius, data.segments, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\n/**\n * A geometry class for representing a cylinder.\n *\n * ```js\n * const geometry = new THREE.CylinderGeometry( 5, 5, 20, 32 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const cylinder = new THREE.Mesh( geometry, material );\n * scene.add( cylinder );\n * ```\n *\n * @augments BufferGeometry\n */\nclass CylinderGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new cylinder geometry.\n\t *\n\t * @param {number} [radiusTop=1] - Radius of the cylinder at the top.\n\t * @param {number} [radiusBottom=1] - Radius of the cylinder at the bottom.\n\t * @param {number} [height=1] - Height of the cylinder.\n\t * @param {number} [radialSegments=32] - Number of segmented faces around the circumference of the cylinder.\n\t * @param {number} [heightSegments=1] - Number of rows of faces along the height of the cylinder.\n\t * @param {boolean} [openEnded=false] - Whether the base of the cylinder is open or capped.\n\t * @param {number} [thetaStart=0] - Start angle for first segment, in radians.\n\t * @param {number} [thetaLength=Math.PI*2] - The central angle, often called theta, of the circular sector, in radians.\n\t * The default value results in a complete cylinder.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\tif ( radiusTop > 0 || y !== 0 ) {\n\n\t\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\t\tgroupCount += 3;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( radiusBottom > 0 || y !== heightSegments - 1 ) {\n\n\t\t\t\t\t\tindices.push( b, c, d );\n\t\t\t\t\t\tgroupCount += 3;\n\n\t\t\t\t\t}\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {CylinderGeometry} A new instance.\n\t */\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\n/**\n * A geometry class for representing a cone.\n *\n * ```js\n * const geometry = new THREE.ConeGeometry( 5, 20, 32 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const cone = new THREE.Mesh(geometry, material );\n * scene.add( cone );\n * ```\n *\n * @augments CylinderGeometry\n */\nclass ConeGeometry extends CylinderGeometry {\n\n\t/**\n\t * Constructs a new cone geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the cone base.\n\t * @param {number} [height=1] - Height of the cone.\n\t * @param {number} [radialSegments=32] - Number of segmented faces around the circumference of the cone.\n\t * @param {number} [heightSegments=1] - Number of rows of faces along the height of the cone.\n\t * @param {boolean} [openEnded=false] - Whether the base of the cone is open or capped.\n\t * @param {number} [thetaStart=0] - Start angle for first segment, in radians.\n\t * @param {number} [thetaLength=Math.PI*2] - The central angle, often called theta, of the circular sector, in radians.\n\t * The default value results in a complete cone.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {ConeGeometry} A new instance.\n\t */\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\n/**\n * A polyhedron is a solid in three dimensions with flat faces. This class\n * will take an array of vertices, project them onto a sphere, and then\n * divide them up to the desired level of detail.\n *\n * @augments BufferGeometry\n */\nclass PolyhedronGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new polyhedron geometry.\n\t *\n\t * @param {Array} [vertices] - A flat array of vertices describing the base shape.\n\t * @param {Array} [indices] - A flat array of indices describing the base shape.\n\t * @param {number} [radius=1] - The radius of the shape.\n\t * @param {number} [detail=0] - How many levels to subdivide the geometry. The more detail, the smoother the shape.\n\t */\n\tconstructor( vertices = [], indices = [], radius = 1, detail = 0 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PolyhedronGeometry';\n\n\t\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {PolyhedronGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new PolyhedronGeometry( data.vertices, data.indices, data.radius, data.details );\n\n\t}\n\n}\n\n/**\n * A geometry class for representing a dodecahedron.\n *\n * ```js\n * const geometry = new THREE.DodecahedronGeometry();\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const dodecahedron = new THREE.Mesh( geometry, material );\n * scene.add( dodecahedron );\n * ```\n *\n * @augments PolyhedronGeometry\n */\nclass DodecahedronGeometry extends PolyhedronGeometry {\n\n\t/**\n\t * Constructs a new dodecahedron geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the dodecahedron.\n\t * @param {number} [detail=0] - Setting this to a value greater than `0` adds vertices making it no longer a dodecahedron.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {DodecahedronGeometry} A new instance.\n\t */\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\n/**\n * Can be used as a helper object to view the edges of a geometry.\n *\n * ```js\n * const geometry = new THREE.BoxGeometry();\n * const edges = new THREE.EdgesGeometry( geometry );\n * const line = new THREE.LineSegments( edges );\n * scene.add( line );\n * ```\n *\n * Note: It is not yet possible to serialize/deserialize instances of this class.\n *\n * @augments BufferGeometry\n */\nclass EdgesGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new edges geometry.\n\t *\n\t * @param {?BufferGeometry} [geometry=null] - The geometry.\n\t * @param {number} [thresholdAngle=1] - An edge is only rendered if the angle (in degrees)\n\t * between the face normals of the adjoining faces exceeds this value.\n\t */\n\tconstructor( geometry = null, thresholdAngle = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'EdgesGeometry';\n\n\t\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\n/**\n * An abstract base class for creating an analytic curve object that contains methods\n * for interpolation.\n *\n * @abstract\n */\nclass Curve {\n\n\t/**\n\t * Constructs a new curve.\n\t */\n\tconstructor() {\n\n\t\t/**\n\t\t * The type property is used for detecting the object type\n\t\t * in context of serialization/deserialization.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.type = 'Curve';\n\n\t\t/**\n\t\t * This value determines the amount of divisions when calculating the\n\t\t * cumulative segment lengths of a curve via {@link Curve#getLengths}. To ensure\n\t\t * precision when using methods like {@link Curve#getSpacedPoints}, it is\n\t\t * recommended to increase the value of this property if the curve is very large.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 200\n\t\t */\n\t\tthis.arcLengthDivisions = 200;\n\n\t\t/**\n\t\t * Must be set to `true` if the curve parameters have changed.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.needsUpdate = false;\n\n\t\t/**\n\t\t * An internal cache that holds precomputed curve length values.\n\t\t *\n\t\t * @private\n\t\t * @type {?Array}\n\t\t * @default null\n\t\t */\n\t\tthis.cacheArcLengths = null;\n\n\t}\n\n\t/**\n\t * This method returns a vector in 2D or 3D space (depending on the curve definition)\n\t * for the given interpolation factor.\n\t *\n\t * @abstract\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {(Vector2|Vector3)} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {(Vector2|Vector3)} The position on the curve. It can be a 2D or 3D vector depending on the curve definition.\n\t */\n\tgetPoint( /* t, optionalTarget */ ) {\n\n\t\tconsole.warn( 'THREE.Curve: .getPoint() not implemented.' );\n\n\t}\n\n\t/**\n\t * This method returns a vector in 2D or 3D space (depending on the curve definition)\n\t * for the given interpolation factor. Unlike {@link Curve#getPoint}, this method honors the length\n\t * of the curve which equidistant samples.\n\t *\n\t * @param {number} u - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {(Vector2|Vector3)} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {(Vector2|Vector3)} The position on the curve. It can be a 2D or 3D vector depending on the curve definition.\n\t */\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/**\n\t * This method samples the curve via {@link Curve#getPoint} and returns an array of points representing\n\t * the curve shape.\n\t *\n\t * @param {number} [divisions=5] - The number of divisions.\n\t * @return {Array<(Vector2|Vector3)>} An array holding the sampled curve values. The number of points is `divisions + 1`.\n\t */\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\t/**\n\t * This method samples the curve via {@link Curve#getPointAt} and returns an array of points representing\n\t * the curve shape. Unlike {@link Curve#getPoints}, this method returns equi-spaced points across the entire\n\t * curve.\n\t *\n\t * @param {number} [divisions=5] - The number of divisions.\n\t * @return {Array<(Vector2|Vector3)>} An array holding the sampled curve values. The number of points is `divisions + 1`.\n\t */\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/**\n\t * Returns the total arc length of the curve.\n\t *\n\t * @return {number} The length of the curve.\n\t */\n\tgetLength() {\n\n\t\tconst lengths = this.getLengths();\n\t\treturn lengths[ lengths.length - 1 ];\n\n\t}\n\n\t/**\n\t * Returns an array of cumulative segment lengths of the curve.\n\t *\n\t * @param {number} [divisions=this.arcLengthDivisions] - The number of divisions.\n\t * @return {Array} An array holding the cumulative segment lengths.\n\t */\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\t/**\n\t * Update the cumulative segment distance cache. The method must be called\n\t * every time curve parameters are changed. If an updated curve is part of a\n\t * composed curve like {@link CurvePath}, this method must be called on the\n\t * composed curve, too.\n\t */\n\tupdateArcLengths() {\n\n\t\tthis.needsUpdate = true;\n\t\tthis.getLengths();\n\n\t}\n\n\t/**\n\t * Given an interpolation factor in the range `[0,1]`, this method returns an updated\n\t * interpolation factor in the same range that can be ued to sample equidistant points\n\t * from a curve.\n\t *\n\t * @param {number} u - The interpolation factor.\n\t * @param {?number} distance - An optional distance on the curve.\n\t * @return {number} The updated interpolation factor.\n\t */\n\tgetUtoTmapping( u, distance = null ) {\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/**\n\t * Returns a unit vector tangent for the given interpolation factor.\n\t * If the derived curve does not implement its tangent derivation,\n\t * two points a small delta apart will be used to find its gradient\n\t * which seems to give a reasonable approximation.\n\t *\n\t * @param {number} t - The interpolation factor.\n\t * @param {(Vector2|Vector3)} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {(Vector2|Vector3)} The tangent vector.\n\t */\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\t/**\n\t * Same as {@link Curve#getTangent} but with equidistant samples.\n\t *\n\t * @param {number} u - The interpolation factor.\n\t * @param {(Vector2|Vector3)} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {(Vector2|Vector3)} The tangent vector.\n\t * @see {@link Curve#getPointAt}\n\t */\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\tconst t = this.getUtoTmapping( u );\n\t\treturn this.getTangent( t, optionalTarget );\n\n\t}\n\n\t/**\n\t * Generates the Frenet Frames. Requires a curve definition in 3D space. Used\n\t * in geometries like {@link TubeGeometry} or {@link ExtrudeGeometry}.\n\t *\n\t * @param {number} segments - The number of segments.\n\t * @param {boolean} [closed=false] - Whether the curve is closed or not.\n\t * @return {{tangents: Array, normals: Array, binormals: Array}} The Frenet Frames.\n\t */\n\tcomputeFrenetFrames( segments, closed = false ) {\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\t/**\n\t * Returns a new curve with copied values from this instance.\n\t *\n\t * @return {Curve} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the values of the given curve to this instance.\n\t *\n\t * @param {Curve} source - The curve to copy.\n\t * @return {Curve} A reference to this curve.\n\t */\n\tcopy( source ) {\n\n\t\tthis.arcLengthDivisions = source.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Serializes the curve into JSON.\n\t *\n\t * @return {Object} A JSON object representing the serialized curve.\n\t * @see {@link ObjectLoader#parse}\n\t */\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.7,\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\t/**\n\t * Deserializes the curve from the given JSON.\n\t *\n\t * @param {Object} json - The JSON holding the serialized curve.\n\t * @return {Curve} A reference to this curve.\n\t */\n\tfromJSON( json ) {\n\n\t\tthis.arcLengthDivisions = json.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * A curve representing an ellipse.\n *\n * ```js\n * const curve = new THREE.EllipseCurve(\n * \t0, 0,\n * \t10, 10,\n * \t0, 2 * Math.PI,\n * \tfalse,\n * \t0\n * );\n *\n * const points = curve.getPoints( 50 );\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n *\n * const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );\n *\n * // Create the final object to add to the scene\n * const ellipse = new THREE.Line( geometry, material );\n * ```\n *\n * @augments Curve\n */\nclass EllipseCurve extends Curve {\n\n\t/**\n\t * Constructs a new ellipse curve.\n\t *\n\t * @param {number} [aX=0] - The X center of the ellipse.\n\t * @param {number} [aY=0] - The Y center of the ellipse.\n\t * @param {number} [xRadius=1] - The radius of the ellipse in the x direction.\n\t * @param {number} [yRadius=1] - The radius of the ellipse in the y direction.\n\t * @param {number} [aStartAngle=0] - The start angle of the curve in radians starting from the positive X axis.\n\t * @param {number} [aEndAngle=Math.PI*2] - The end angle of the curve in radians starting from the positive X axis.\n\t * @param {boolean} [aClockwise=false] - Whether the ellipse is drawn clockwise or not.\n\t * @param {number} [aRotation=0] - The rotation angle of the ellipse in radians, counterclockwise from the positive X axis.\n\t */\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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isEllipseCurve = true;\n\n\t\tthis.type = 'EllipseCurve';\n\n\t\t/**\n\t\t * The X center of the ellipse.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.aX = aX;\n\n\t\t/**\n\t\t * The Y center of the ellipse.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.aY = aY;\n\n\t\t/**\n\t\t * The radius of the ellipse in the x direction.\n\t\t * Setting the this value equal to the {@link EllipseCurve#yRadius} will result in a circle.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.xRadius = xRadius;\n\n\t\t/**\n\t\t * The radius of the ellipse in the y direction.\n\t\t * Setting the this value equal to the {@link EllipseCurve#xRadius} will result in a circle.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.yRadius = yRadius;\n\n\t\t/**\n\t\t * The start angle of the curve in radians starting from the positive X axis.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.aStartAngle = aStartAngle;\n\n\t\t/**\n\t\t * The end angle of the curve in radians starting from the positive X axis.\n\t\t *\n\t\t * @type {number}\n\t\t * @default Math.PI*2\n\t\t */\n\t\tthis.aEndAngle = aEndAngle;\n\n\t\t/**\n\t\t * Whether the ellipse is drawn clockwise or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.aClockwise = aClockwise;\n\n\t\t/**\n\t\t * The rotation angle of the ellipse in radians, counterclockwise from the positive X axis.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.aRotation = aRotation;\n\n\t}\n\n\t/**\n\t * Returns a point on the curve.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {Vector2} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector2} The position on the curve.\n\t */\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\n/**\n * A curve representing an arc.\n *\n * @augments EllipseCurve\n */\nclass ArcCurve extends EllipseCurve {\n\n\t/**\n\t * Constructs a new arc curve.\n\t *\n\t * @param {number} [aX=0] - The X center of the ellipse.\n\t * @param {number} [aY=0] - The Y center of the ellipse.\n\t * @param {number} [aRadius=1] - The radius of the ellipse in the x direction.\n\t * @param {number} [aStartAngle=0] - The start angle of the curve in radians starting from the positive X axis.\n\t * @param {number} [aEndAngle=Math.PI*2] - The end angle of the curve in radians starting from the positive X axis.\n\t * @param {boolean} [aClockwise=false] - Whether the ellipse is drawn clockwise or not.\n\t */\n\tconstructor( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tsuper( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isArcCurve = true;\n\n\t\tthis.type = 'ArcCurve';\n\n\t}\n\n}\n\nfunction CubicPoly() {\n\n\t/**\n\t * Centripetal CatmullRom Curve - which is useful for avoiding\n\t* cusps and self-intersections in non-uniform catmull rom curves.\n\t* http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf\n\t*\n\t* curve.type accepts centripetal(default), chordal and catmullrom\n\t* curve.tension is used for catmullrom which defaults to 0.5\n\t*/\n\n\t/*\n\tBased on an optimized c++ solution in\n\t- http://stackoverflow.com/questions/9489736/catmull-rom-curve-with-no-cusps-and-no-self-intersections/\n\t- http://ideone.com/NoEbVM\n\n\tThis CubicPoly class could be used for reusing some variables and calculations,\n\tbut for three.js curve use, it could be possible inlined and flatten into a single function call\n\twhich can be placed in CurveUtils.\n\t*/\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\n/**\n * A curve representing a Catmull-Rom spline.\n *\n * ```js\n * //Create a closed wavey loop\n * const curve = new THREE.CatmullRomCurve3( [\n * \tnew THREE.Vector3( -10, 0, 10 ),\n * \tnew THREE.Vector3( -5, 5, 5 ),\n * \tnew THREE.Vector3( 0, 0, 0 ),\n * \tnew THREE.Vector3( 5, -5, 5 ),\n * \tnew THREE.Vector3( 10, 0, 10 )\n * ] );\n *\n * const points = curve.getPoints( 50 );\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n *\n * const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );\n *\n * // Create the final object to add to the scene\n * const curveObject = new THREE.Line( geometry, material );\n * ```\n *\n * @augments Curve\n */\nclass CatmullRomCurve3 extends Curve {\n\n\t/**\n\t * Constructs a new Catmull-Rom curve.\n\t *\n\t * @param {Array} [points] - An array of 3D points defining the curve.\n\t * @param {boolean} [closed=false] - Whether the curve is closed or not.\n\t * @param {('centripetal'|'chordal'|'catmullrom')} [curveType='centripetal'] - The curve type.\n\t * @param {number} [tension=0.5] - Tension of the curve.\n\t */\n\tconstructor( points = [], closed = false, curveType = 'centripetal', tension = 0.5 ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCatmullRomCurve3 = true;\n\n\t\tthis.type = 'CatmullRomCurve3';\n\n\t\t/**\n\t\t * An array of 3D points defining the curve.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.points = points;\n\n\t\t/**\n\t\t * Whether the curve is closed or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.closed = closed;\n\n\t\t/**\n\t\t * The curve type.\n\t\t *\n\t\t * @type {('centripetal'|'chordal'|'catmullrom')}\n\t\t * @default 'centripetal'\n\t\t */\n\t\tthis.curveType = curveType;\n\n\t\t/**\n\t\t * Tension of the curve.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.5\n\t\t */\n\t\tthis.tension = tension;\n\n\t}\n\n\t/**\n\t * Returns a point on the curve.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector3} The position on the curve.\n\t */\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// Bezier Curves formulas obtained from: https://en.wikipedia.org/wiki/B%C3%A9zier_curve\n\n/**\n * Computes a point on a Catmull-Rom spline.\n *\n * @param {number} t - The interpolation factor.\n * @param {number} p0 - The first control point.\n * @param {number} p1 - The second control point.\n * @param {number} p2 - The third control point.\n * @param {number} p3 - The fourth control point.\n * @return {number} The calculated point on a Catmull-Rom spline.\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\n/**\n * Computes a point on a Quadratic Bezier curve.\n *\n * @param {number} t - The interpolation factor.\n * @param {number} p0 - The first control point.\n * @param {number} p1 - The second control point.\n * @param {number} p2 - The third control point.\n * @return {number} The calculated point on a Quadratic Bezier curve.\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\n/**\n * Computes a point on a Cubic Bezier curve.\n *\n * @param {number} t - The interpolation factor.\n * @param {number} p0 - The first control point.\n * @param {number} p1 - The second control point.\n * @param {number} p2 - The third control point.\n * @param {number} p3 - The fourth control point.\n * @return {number} The calculated point on a Cubic Bezier curve.\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\n/**\n * A curve representing a 2D Cubic Bezier curve.\n *\n * ```js\n * const curve = new THREE.CubicBezierCurve(\n * \tnew THREE.Vector2( - 0, 0 ),\n * \tnew THREE.Vector2( - 5, 15 ),\n * \tnew THREE.Vector2( 20, 15 ),\n * \tnew THREE.Vector2( 10, 0 )\n * );\n *\n * const points = curve.getPoints( 50 );\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n *\n * const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );\n *\n * // Create the final object to add to the scene\n * const curveObject = new THREE.Line( geometry, material );\n * ```\n *\n * @augments Curve\n */\nclass CubicBezierCurve extends Curve {\n\n\t/**\n\t * Constructs a new Cubic Bezier curve.\n\t *\n\t * @param {Vector2} [v0] - The start point.\n\t * @param {Vector2} [v1] - The first control point.\n\t * @param {Vector2} [v2] - The second control point.\n\t * @param {Vector2} [v3] - The end point.\n\t */\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2(), v3 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCubicBezierCurve = true;\n\n\t\tthis.type = 'CubicBezierCurve';\n\n\t\t/**\n\t\t * The start point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v0 = v0;\n\n\t\t/**\n\t\t * The first control point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v1 = v1;\n\n\t\t/**\n\t\t * The second control point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v2 = v2;\n\n\t\t/**\n\t\t * The end point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v3 = v3;\n\n\t}\n\n\t/**\n\t * Returns a point on the curve.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {Vector2} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector2} The position on the curve.\n\t */\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\n/**\n * A curve representing a 3D Cubic Bezier curve.\n *\n * @augments Curve\n */\nclass CubicBezierCurve3 extends Curve {\n\n\t/**\n\t * Constructs a new Cubic Bezier curve.\n\t *\n\t * @param {Vector3} [v0] - The start point.\n\t * @param {Vector3} [v1] - The first control point.\n\t * @param {Vector3} [v2] - The second control point.\n\t * @param {Vector3} [v3] - The end point.\n\t */\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3(), v3 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isCubicBezierCurve3 = true;\n\n\t\tthis.type = 'CubicBezierCurve3';\n\n\t\t/**\n\t\t * The start point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v0 = v0;\n\n\t\t/**\n\t\t * The first control point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v1 = v1;\n\n\t\t/**\n\t\t * The second control point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v2 = v2;\n\n\t\t/**\n\t\t * The end point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v3 = v3;\n\n\t}\n\n\t/**\n\t * Returns a point on the curve.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector3} The position on the curve.\n\t */\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\n/**\n * A curve representing a 2D line segment.\n *\n * @augments Curve\n */\nclass LineCurve extends Curve {\n\n\t/**\n\t * Constructs a new line curve.\n\t *\n\t * @param {Vector2} [v1] - The start point.\n\t * @param {Vector2} [v2] - The end point.\n\t */\n\tconstructor( v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLineCurve = true;\n\n\t\tthis.type = 'LineCurve';\n\n\t\t/**\n\t\t * The start point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v1 = v1;\n\n\t\t/**\n\t\t * The end point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v2 = v2;\n\n\t}\n\n\t/**\n\t * Returns a point on the line.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the line. Must be in the range `[0,1]`.\n\t * @param {Vector2} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector2} The position on the line.\n\t */\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\n/**\n * A curve representing a 3D line segment.\n *\n * @augments Curve\n */\nclass LineCurve3 extends Curve {\n\n\t/**\n\t * Constructs a new line curve.\n\t *\n\t * @param {Vector3} [v1] - The start point.\n\t * @param {Vector3} [v2] - The end point.\n\t */\n\tconstructor( v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLineCurve3 = true;\n\n\t\tthis.type = 'LineCurve3';\n\n\t\t/**\n\t\t * The start point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v1 = v1;\n\n\t\t/**\n\t\t * The end point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v2 = v2;\n\n\t}\n\n\t/**\n\t * Returns a point on the line.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the line. Must be in the range `[0,1]`.\n\t * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector3} The position on the line.\n\t */\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\n/**\n * A curve representing a 2D Quadratic Bezier curve.\n *\n * ```js\n * const curve = new THREE.QuadraticBezierCurve(\n * \tnew THREE.Vector2( - 10, 0 ),\n * \tnew THREE.Vector2( 20, 15 ),\n * \tnew THREE.Vector2( 10, 0 )\n * )\n *\n * const points = curve.getPoints( 50 );\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n *\n * const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );\n *\n * // Create the final object to add to the scene\n * const curveObject = new THREE.Line( geometry, material );\n * ```\n *\n * @augments Curve\n */\nclass QuadraticBezierCurve extends Curve {\n\n\t/**\n\t * Constructs a new Quadratic Bezier curve.\n\t *\n\t * @param {Vector2} [v0] - The start point.\n\t * @param {Vector2} [v1] - The control point.\n\t * @param {Vector2} [v2] - The end point.\n\t */\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isQuadraticBezierCurve = true;\n\n\t\tthis.type = 'QuadraticBezierCurve';\n\n\t\t/**\n\t\t * The start point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v0 = v0;\n\n\t\t/**\n\t\t * The control point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v1 = v1;\n\n\t\t/**\n\t\t * The end point.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.v2 = v2;\n\n\t}\n\n\t/**\n\t * Returns a point on the curve.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {Vector2} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector2} The position on the curve.\n\t */\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\n/**\n * A curve representing a 3D Quadratic Bezier curve.\n *\n * @augments Curve\n */\nclass QuadraticBezierCurve3 extends Curve {\n\n\t/**\n\t * Constructs a new Quadratic Bezier curve.\n\t *\n\t * @param {Vector3} [v0] - The start point.\n\t * @param {Vector3} [v1] - The control point.\n\t * @param {Vector3} [v2] - The end point.\n\t */\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isQuadraticBezierCurve3 = true;\n\n\t\tthis.type = 'QuadraticBezierCurve3';\n\n\t\t/**\n\t\t * The start point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v0 = v0;\n\n\t\t/**\n\t\t * The control point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v1 = v1;\n\n\t\t/**\n\t\t * The end point.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.v2 = v2;\n\n\t}\n\n\t/**\n\t * Returns a point on the curve.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector3} The position on the curve.\n\t */\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\n/**\n * A curve representing a 2D spline curve.\n *\n * ```js\n * // Create a sine-like wave\n * const curve = new THREE.SplineCurve( [\n * \tnew THREE.Vector2( -10, 0 ),\n * \tnew THREE.Vector2( -5, 5 ),\n * \tnew THREE.Vector2( 0, 0 ),\n * \tnew THREE.Vector2( 5, -5 ),\n * \tnew THREE.Vector2( 10, 0 )\n * ] );\n *\n * const points = curve.getPoints( 50 );\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n *\n * const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );\n *\n * // Create the final object to add to the scene\n * const splineObject = new THREE.Line( geometry, material );\n * ```\n *\n * @augments Curve\n */\nclass SplineCurve extends Curve {\n\n\t/**\n\t * Constructs a new 2D spline curve.\n\t *\n\t * @param {Array} [points] - An array of 2D points defining the curve.\n\t */\n\tconstructor( points = [] ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSplineCurve = true;\n\n\t\tthis.type = 'SplineCurve';\n\n\t\t/**\n\t\t * An array of 2D points defining the curve.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.points = points;\n\n\t}\n\n\t/**\n\t * Returns a point on the curve.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {Vector2} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {Vector2} The position on the curve.\n\t */\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 * A base class extending {@link Curve}. `CurvePath` is simply an\n * array of connected curves, but retains the API of a curve.\n *\n * @augments Curve\n */\nclass CurvePath extends Curve {\n\n\t/**\n\t * Constructs a new curve path.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'CurvePath';\n\n\t\t/**\n\t\t * An array of curves defining the\n\t\t * path.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.curves = [];\n\n\t\t/**\n\t\t * Whether the path should automatically be closed\n\t\t * by a line curve.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.autoClose = false;\n\n\t}\n\n\t/**\n\t * Adds a curve to this curve path.\n\t *\n\t * @param {Curve} curve - The curve to add.\n\t */\n\tadd( curve ) {\n\n\t\tthis.curves.push( curve );\n\n\t}\n\n\t/**\n\t * Adds a line curve to close the path.\n\t *\n\t * @return {CurvePath} A reference to this curve path.\n\t */\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/**\n\t * This method returns a vector in 2D or 3D space (depending on the curve definitions)\n\t * for the given interpolation factor.\n\t *\n\t * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.\n\t * @param {(Vector2|Vector3)} [optionalTarget] - The optional target vector the result is written to.\n\t * @return {?(Vector2|Vector3)} The position on the curve. It can be a 2D or 3D vector depending on the curve definition.\n\t */\n\tgetPoint( t, optionalTarget ) {\n\n\t\t// To get accurate point with reference to\n\t\t// entire path distance at time t,\n\t\t// following has to be done:\n\n\t\t// 1. Length of each sub path have to be known\n\t\t// 2. Locate and identify type of curve\n\t\t// 3. Get t for the curve\n\t\t// 4. Return curve.getPointAt(t')\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 } The curve lengths.\n\t */\n\tgetCurveLengths() {\n\n\t\t// Compute lengths and cache them\n\t\t// We cannot overwrite getLengths() because UtoT mapping uses it.\n\t\t// We use cache values if curves and cache array are same length\n\n\t\tif ( this.cacheLengths && this.cacheLengths.length === this.curves.length ) {\n\n\t\t\treturn this.cacheLengths;\n\n\t\t}\n\n\t\t// Get length of sub-curve\n\t\t// Push sums into cached array\n\n\t\tconst lengths = [];\n\t\tlet sums = 0;\n\n\t\tfor ( let i = 0, l = this.curves.length; i < l; i ++ ) {\n\n\t\t\tsums += this.curves[ i ].getLength();\n\t\t\tlengths.push( sums );\n\n\t\t}\n\n\t\tthis.cacheLengths = lengths;\n\n\t\treturn lengths;\n\n\t}\n\n\tgetSpacedPoints( divisions = 40 ) {\n\n\t\tconst points = [];\n\n\t\tfor ( let i = 0; i <= divisions; i ++ ) {\n\n\t\t\tpoints.push( this.getPoint( i / divisions ) );\n\n\t\t}\n\n\t\tif ( this.autoClose ) {\n\n\t\t\tpoints.push( points[ 0 ] );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\tgetPoints( divisions = 12 ) {\n\n\t\tconst points = [];\n\t\tlet last;\n\n\t\tfor ( let i = 0, curves = this.curves; i < curves.length; i ++ ) {\n\n\t\t\tconst curve = curves[ i ];\n\t\t\tconst resolution = curve.isEllipseCurve ? divisions * 2\n\t\t\t\t: ( curve.isLineCurve || curve.isLineCurve3 ) ? 1\n\t\t\t\t\t: curve.isSplineCurve ? divisions * curve.points.length\n\t\t\t\t\t\t: divisions;\n\n\t\t\tconst pts = curve.getPoints( resolution );\n\n\t\t\tfor ( let j = 0; j < pts.length; j ++ ) {\n\n\t\t\t\tconst point = pts[ j ];\n\n\t\t\t\tif ( last && last.equals( point ) ) continue; // ensures no consecutive points are duplicates\n\n\t\t\t\tpoints.push( point );\n\t\t\t\tlast = point;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.autoClose && points.length > 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\n/**\n * A 2D path representation. The class provides methods for creating paths\n * and contours of 2D shapes similar to the 2D Canvas API.\n *\n * ```js\n * const path = new THREE.Path();\n *\n * path.lineTo( 0, 0.8 );\n * path.quadraticCurveTo( 0, 1, 0.2, 1 );\n * path.lineTo( 1, 1 );\n *\n * const points = path.getPoints();\n *\n * const geometry = new THREE.BufferGeometry().setFromPoints( points );\n * const material = new THREE.LineBasicMaterial( { color: 0xffffff } );\n *\n * const line = new THREE.Line( geometry, material );\n * scene.add( line );\n * ```\n *\n * @augments CurvePath\n */\nclass Path extends CurvePath {\n\n\t/**\n\t * Constructs a new path.\n\t *\n\t * @param {Array} [points] - An array of 2D points defining the path.\n\t */\n\tconstructor( points ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Path';\n\n\t\t/**\n\t\t * The current offset of the path. Any new curve added will start here.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\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\t/**\n\t * Creates a path from the given list of points. The points are added\n\t * to the path as instances of {@link LineCurve}.\n\t *\n\t * @param {Array} points - An array of 2D points.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Moves {@link Path#currentPoint} to the given point.\n\t *\n\t * @param {number} x - The x coordinate.\n\t * @param {number} y - The y coordinate.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Adds an instance of {@link LineCurve} to the path by connecting\n\t * the current point with the given one.\n\t *\n\t * @param {number} x - The x coordinate of the end point.\n\t * @param {number} y - The y coordinate of the end point.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Adds an instance of {@link QuadraticBezierCurve} to the path by connecting\n\t * the current point with the given one.\n\t *\n\t * @param {number} aCPx - The x coordinate of the control point.\n\t * @param {number} aCPy - The y coordinate of the control point.\n\t * @param {number} aX - The x coordinate of the end point.\n\t * @param {number} aY - The y coordinate of the end point.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Adds an instance of {@link CubicBezierCurve} to the path by connecting\n\t * the current point with the given one.\n\t *\n\t * @param {number} aCP1x - The x coordinate of the first control point.\n\t * @param {number} aCP1y - The y coordinate of the first control point.\n\t * @param {number} aCP2x - The x coordinate of the second control point.\n\t * @param {number} aCP2y - The y coordinate of the second control point.\n\t * @param {number} aX - The x coordinate of the end point.\n\t * @param {number} aY - The y coordinate of the end point.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Adds an instance of {@link SplineCurve} to the path by connecting\n\t * the current point with the given list of points.\n\t *\n\t * @param {Array} pts - An array of points in 2D space.\n\t * @return {Path} A reference to this path.\n\t */\n\tsplineThru( pts ) {\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\t/**\n\t * Adds an arc as an instance of {@link EllipseCurve} to the path, positioned relative\n\t * to the current point.\n\t *\n\t * @param {number} [aX=0] - The x coordinate of the center of the arc offsetted from the previous curve.\n\t * @param {number} [aY=0] - The y coordinate of the center of the arc offsetted from the previous curve.\n\t * @param {number} [aRadius=1] - The radius of the arc.\n\t * @param {number} [aStartAngle=0] - The start angle in radians.\n\t * @param {number} [aEndAngle=Math.PI*2] - The end angle in radians.\n\t * @param {boolean} [aClockwise=false] - Whether to sweep the arc clockwise or not.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Adds an absolutely positioned arc as an instance of {@link EllipseCurve} to the path.\n\t *\n\t * @param {number} [aX=0] - The x coordinate of the center of the arc.\n\t * @param {number} [aY=0] - The y coordinate of the center of the arc.\n\t * @param {number} [aRadius=1] - The radius of the arc.\n\t * @param {number} [aStartAngle=0] - The start angle in radians.\n\t * @param {number} [aEndAngle=Math.PI*2] - The end angle in radians.\n\t * @param {boolean} [aClockwise=false] - Whether to sweep the arc clockwise or not.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Adds an ellipse as an instance of {@link EllipseCurve} to the path, positioned relative\n\t * to the current point\n\t *\n\t * @param {number} [aX=0] - The x coordinate of the center of the ellipse offsetted from the previous curve.\n\t * @param {number} [aY=0] - The y coordinate of the center of the ellipse offsetted from the previous curve.\n\t * @param {number} [xRadius=1] - The radius of the ellipse in the x axis.\n\t * @param {number} [yRadius=1] - The radius of the ellipse in the y axis.\n\t * @param {number} [aStartAngle=0] - The start angle in radians.\n\t * @param {number} [aEndAngle=Math.PI*2] - The end angle in radians.\n\t * @param {boolean} [aClockwise=false] - Whether to sweep the ellipse clockwise or not.\n\t * @param {number} [aRotation=0] - The rotation angle of the ellipse in radians, counterclockwise from the positive X axis.\n\t * @return {Path} A reference to this path.\n\t */\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\t/**\n\t * Adds an absolutely positioned ellipse as an instance of {@link EllipseCurve} to the path.\n\t *\n\t * @param {number} [aX=0] - The x coordinate of the absolute center of the ellipse.\n\t * @param {number} [aY=0] - The y coordinate of the absolute center of the ellipse.\n\t * @param {number} [xRadius=1] - The radius of the ellipse in the x axis.\n\t * @param {number} [yRadius=1] - The radius of the ellipse in the y axis.\n\t * @param {number} [aStartAngle=0] - The start angle in radians.\n\t * @param {number} [aEndAngle=Math.PI*2] - The end angle in radians.\n\t * @param {boolean} [aClockwise=false] - Whether to sweep the ellipse clockwise or not.\n\t * @param {number} [aRotation=0] - The rotation angle of the ellipse in radians, counterclockwise from the positive X axis.\n\t * @return {Path} A reference to this path.\n\t */\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\n/**\n * Defines an arbitrary 2d shape plane using paths with optional holes. It\n * can be used with {@link ExtrudeGeometry}, {@link ShapeGeometry}, to get\n * points, or to get triangulated faces.\n *\n * ```js\n * const heartShape = new THREE.Shape();\n *\n * heartShape.moveTo( 25, 25 );\n * heartShape.bezierCurveTo( 25, 25, 20, 0, 0, 0 );\n * heartShape.bezierCurveTo( - 30, 0, - 30, 35, - 30, 35 );\n * heartShape.bezierCurveTo( - 30, 55, - 10, 77, 25, 95 );\n * heartShape.bezierCurveTo( 60, 77, 80, 55, 80, 35 );\n * heartShape.bezierCurveTo( 80, 35, 80, 0, 50, 0 );\n * heartShape.bezierCurveTo( 35, 0, 25, 25, 25, 25 );\n *\n * const extrudeSettings = {\n * \tdepth: 8,\n * \tbevelEnabled: true,\n * \tbevelSegments: 2,\n * \tsteps: 2,\n * \tbevelSize: 1,\n * \tbevelThickness: 1\n * };\n *\n * const geometry = new THREE.ExtrudeGeometry( heartShape, extrudeSettings );\n * const mesh = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial() );\n * ```\n *\n * @augments Path\n */\nclass Shape extends Path {\n\n\t/**\n\t * Constructs a new shape.\n\t *\n\t * @param {Array} [points] - An array of 2D points defining the shape.\n\t */\n\tconstructor( points ) {\n\n\t\tsuper( points );\n\n\t\t/**\n\t\t * The UUID of the shape.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.type = 'Shape';\n\n\t\t/**\n\t\t * Defines the holes in the shape. Hole definitions must use the\n\t\t * opposite winding order (CW/CCW) than the outer shape.\n\t\t *\n\t\t * @type {Array}\n\t\t * @readonly\n\t\t */\n\t\tthis.holes = [];\n\n\t}\n\n\t/**\n\t * Returns an array representing each contour of the holes\n\t * as a list of 2D points.\n\t *\n\t * @param {number} divisions - The fineness of the result.\n\t * @return {Array>} The holes as a series of 2D points.\n\t */\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\t/**\n\t * Returns an object that holds contour data for the shape and its holes as\n\t * arrays of 2D points.\n\t *\n\t * @param {number} divisions - The fineness of the result.\n\t * @return {{shape:Array,holes:Array>}} An object with contour data.\n\t */\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/* eslint-disable */\n// copy of mapbox/earcut version 3.0.1\n// https://github.com/mapbox/earcut/tree/v3.0.1\n\nfunction earcut(data, holeIndices, dim = 2) {\n\n const hasHoles = holeIndices && holeIndices.length;\n const outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n let outerNode = linkedList(data, 0, outerLen, dim, true);\n const triangles = [];\n\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n\n let minX, minY, invSize;\n\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n\n // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n if (data.length > 80 * dim) {\n minX = Infinity;\n minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n\n for (let i = dim; i < outerLen; i += dim) {\n const x = data[i];\n const y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n\n // minX, minY and invSize are later used to transform coords into integers for z-order calculation\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 32767 / invSize : 0;\n }\n\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize, 0);\n\n return triangles;\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 let last;\n\n if (clockwise === (signedArea(data, start, end, dim) > 0)) {\n for (let i = start; i < end; i += dim) last = insertNode(i / dim | 0, data[i], data[i + 1], last);\n } else {\n for (let i = end - dim; i >= start; i -= dim) last = insertNode(i / dim | 0, data[i], data[i + 1], last);\n }\n\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n\n return last;\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n\n let p = start,\n again;\n do {\n again = false;\n\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n\n return end;\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 if (!ear) return;\n\n // interlink polygon nodes in z-order\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n\n let stop = ear;\n\n // iterate through ears, slicing them one by one\n while (ear.prev !== ear.next) {\n const prev = ear.prev;\n const next = ear.next;\n\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n triangles.push(prev.i, ear.i, next.i); // cut off the triangle\n\n removeNode(ear);\n\n // skipping the next vertex leads to less sliver triangles\n ear = next.next;\n stop = next.next;\n\n continue;\n }\n\n ear = next;\n\n // if we looped through the whole remaining polygon and can't find any more ears\n if (ear === stop) {\n // try filtering points and slicing again\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n\n // if this didn't work, try curing all small self-intersections locally\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n\n // as a last resort, try splitting the remaining polygon into two\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n\n break;\n }\n }\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar(ear) {\n const a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // now make sure we don't have other points inside the potential ear\n const ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n // triangle bbox\n const x0 = Math.min(ax, bx, cx),\n y0 = Math.min(ay, by, cy),\n x1 = Math.max(ax, bx, cx),\n y1 = Math.max(ay, by, cy);\n\n let p = c.next;\n while (p !== a) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 &&\n pointInTriangleExceptFirst(ax, ay, bx, by, cx, cy, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n\n return true;\n}\n\nfunction isEarHashed(ear, minX, minY, invSize) {\n const a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n const ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n // triangle bbox\n const x0 = Math.min(ax, bx, cx),\n y0 = Math.min(ay, by, cy),\n x1 = Math.max(ax, bx, cx),\n y1 = Math.max(ay, by, cy);\n\n // z-order range for the current triangle bbox;\n const minZ = zOrder(x0, y0, minX, minY, invSize),\n maxZ = zOrder(x1, y1, minX, minY, invSize);\n\n let p = ear.prevZ,\n n = ear.nextZ;\n\n // look for points inside the triangle in both directions\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n pointInTriangleExceptFirst(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n\n if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n pointInTriangleExceptFirst(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n // look for remaining points in decreasing z-order\n while (p && p.z >= minZ) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n pointInTriangleExceptFirst(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n }\n\n // look for remaining points in increasing z-order\n while (n && n.z <= maxZ) {\n if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n pointInTriangleExceptFirst(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n return true;\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections(start, triangles) {\n let p = start;\n do {\n const a = p.prev,\n b = p.next.next;\n\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n\n triangles.push(a.i, p.i, b.i);\n\n // remove two nodes involved\n removeNode(p);\n removeNode(p.next);\n\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n\n return filterPoints(p);\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\n // look for a valid diagonal that divides the polygon into two\n let a = start;\n do {\n let b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n // split the polygon in two by the diagonal\n let c = splitPolygon(a, b);\n\n // filter colinear points around the cuts\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n\n // run earcut on each half\n earcutLinked(a, triangles, dim, minX, minY, invSize, 0);\n earcutLinked(c, triangles, dim, minX, minY, invSize, 0);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles(data, holeIndices, outerNode, dim) {\n const queue = [];\n\n for (let i = 0, len = holeIndices.length; i < len; i++) {\n const start = holeIndices[i] * dim;\n const end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n const list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n\n queue.sort(compareXYSlope);\n\n // process holes from left to right\n for (let i = 0; i < queue.length; i++) {\n outerNode = eliminateHole(queue[i], outerNode);\n }\n\n return outerNode;\n}\n\nfunction compareXYSlope(a, b) {\n let result = a.x - b.x;\n // when the left-most point of 2 holes meet at a vertex, sort the holes counterclockwise so that when we find\n // the bridge to the outer shell is always the point that they meet at.\n if (result === 0) {\n result = a.y - b.y;\n if (result === 0) {\n const aSlope = (a.next.y - a.y) / (a.next.x - a.x);\n const bSlope = (b.next.y - b.y) / (b.next.x - b.x);\n result = aSlope - bSlope;\n }\n }\n return result;\n}\n\n// find a bridge between vertices that connects hole with an outer ring and and link it\nfunction eliminateHole(hole, outerNode) {\n const bridge = findHoleBridge(hole, outerNode);\n if (!bridge) {\n return outerNode;\n }\n\n const bridgeReverse = splitPolygon(bridge, hole);\n\n // filter collinear points around the cuts\n filterPoints(bridgeReverse, bridgeReverse.next);\n return filterPoints(bridge, bridge.next);\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge(hole, outerNode) {\n let p = outerNode;\n const hx = hole.x;\n const hy = hole.y;\n let qx = -Infinity;\n let m;\n\n // find a segment intersected by a ray from the hole's leftmost point to the left;\n // segment's endpoint with lesser x will be potential connection point\n // unless they intersect at a vertex, then choose the vertex\n if (equals(hole, p)) return p;\n do {\n if (equals(hole, p.next)) return p.next;\n else if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n const x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n m = p.x < p.next.x ? p : p.next;\n if (x === hx) return m; // hole touches outer segment; pick leftmost endpoint\n }\n }\n p = p.next;\n } while (p !== outerNode);\n\n if (!m) return null;\n\n // look for points inside the triangle of hole point, segment intersection and endpoint;\n // if there are no points found, we have a valid connection;\n // otherwise choose the point of the minimum angle with the ray as connection point\n\n const stop = m;\n const mx = m.x;\n const my = m.y;\n let tanMin = Infinity;\n\n p = m;\n\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x &&\n pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n\n const tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n if (locallyInside(p, hole) &&\n (tan < tanMin || (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))) {\n m = p;\n tanMin = tan;\n }\n }\n\n p = p.next;\n } while (p !== stop);\n\n return m;\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve(start, minX, minY, invSize) {\n let p = start;\n do {\n if (p.z === 0) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n\n p.prevZ.nextZ = null;\n p.prevZ = null;\n\n sortLinked(p);\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 let numMerges;\n let inSize = 1;\n\n do {\n let p = list;\n let e;\n list = null;\n let tail = null;\n numMerges = 0;\n\n while (p) {\n numMerges++;\n let q = p;\n let pSize = 0;\n for (let i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n let qSize = inSize;\n\n while (pSize > 0 || (qSize > 0 && q)) {\n\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n\n if (tail) tail.nextZ = e;\n else list = e;\n\n e.prevZ = tail;\n tail = e;\n }\n\n p = q;\n }\n\n tail.nextZ = null;\n inSize *= 2;\n\n } while (numMerges > 1);\n\n return list;\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 // coords are transformed into non-negative 15-bit integer range\n x = (x - minX) * invSize | 0;\n y = (y - minY) * invSize | 0;\n\n x = (x | (x << 8)) & 0x00FF00FF;\n x = (x | (x << 4)) & 0x0F0F0F0F;\n x = (x | (x << 2)) & 0x33333333;\n x = (x | (x << 1)) & 0x55555555;\n\n y = (y | (y << 8)) & 0x00FF00FF;\n y = (y | (y << 4)) & 0x0F0F0F0F;\n y = (y | (y << 2)) & 0x33333333;\n y = (y | (y << 1)) & 0x55555555;\n\n return x | (y << 1);\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost(start) {\n let p = start,\n leftmost = start;\n do {\n if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) leftmost = p;\n p = p.next;\n } while (p !== start);\n\n return leftmost;\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (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// check if a point lies within a convex triangle but false if its equal to the first point of the triangle\nfunction pointInTriangleExceptFirst(ax, ay, bx, by, cx, cy, px, py) {\n return !(ax === px && ay === py) && pointInTriangle(ax, ay, bx, by, cx, cy, px, py);\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // doesn'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// signed area of a triangle\nfunction area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n}\n\n// check if two points are equal\nfunction equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n}\n\n// check if two segments intersect\nfunction intersects(p1, q1, p2, q2) {\n const o1 = sign(area(p1, q1, p2));\n const o2 = sign(area(p1, q1, q2));\n const o3 = sign(area(p2, q2, p1));\n const o4 = sign(area(p2, q2, q1));\n\n if (o1 !== o2 && o3 !== o4) return true; // general case\n\n if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n return false;\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment(p, q, r) {\n return 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\nfunction sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon(a, b) {\n let p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n\n return false;\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ?\n area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :\n area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside(a, b) {\n let p = a;\n let inside = false;\n const px = (a.x + b.x) / 2;\n const py = (a.y + b.y) / 2;\n do {\n if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y &&\n (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))\n inside = !inside;\n p = p.next;\n } while (p !== a);\n\n return inside;\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 const a2 = createNode(a.i, a.x, a.y),\n b2 = createNode(b.i, b.x, b.y),\n an = a.next,\n bp = b.prev;\n\n a.next = b;\n b.prev = a;\n\n a2.next = an;\n an.prev = a2;\n\n b2.next = a2;\n a2.prev = b2;\n\n bp.next = b2;\n b2.prev = bp;\n\n return b2;\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 const p = createNode(i, x, y);\n\n if (!last) {\n p.prev = p;\n p.next = p;\n\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n}\n\nfunction removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\n\nfunction createNode(i, x, y) {\n return {\n i, // vertex index in coordinates array\n x, y, // vertex coordinates\n prev: null, // previous and next vertex nodes in a polygon ring\n next: null,\n z: 0, // z-order curve value\n prevZ: null, // previous and next nodes in z-order\n nextZ: null,\n steiner: false // indicates whether this is a steiner point\n };\n}\n\nfunction signedArea(data, start, end, dim) {\n let sum = 0;\n for (let i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n}\n\nclass Earcut {\n\n\t/**\n\t * Triangulates the given shape definition by returning an array of triangles.\n\t *\n\t * @param {Array} data - An array with 2D points.\n\t * @param {Array} holeIndices - An array with indices defining holes.\n\t * @param {number} [dim=2] - The number of coordinates per vertex in the input array.\n\t * @return {Array} An array representing the triangulated faces. Each face is defined by three consecutive numbers\n\t * representing vertex indices.\n\t */\n\tstatic triangulate( data, holeIndices, dim = 2 ) {\n\n\t\treturn earcut( data, holeIndices, dim );\n\n\t}\n\n}\n\n/**\n * A class containing utility functions for shapes.\n *\n * @hideconstructor\n */\nclass ShapeUtils {\n\n\t/**\n\t * Calculate area of a ( 2D ) contour polygon.\n\t *\n\t * @param {Array} contour - An array of 2D points.\n\t * @return {number} The area.\n\t */\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\t/**\n\t * Returns `true` if the given contour uses a clockwise winding order.\n\t *\n\t * @param {Array} pts - An array of 2D points defining a polygon.\n\t * @return {boolean} Whether the given contour uses a clockwise winding order or not.\n\t */\n\tstatic isClockWise( pts ) {\n\n\t\treturn ShapeUtils.area( pts ) < 0;\n\n\t}\n\n\t/**\n\t * Triangulates the given shape definition.\n\t *\n\t * @param {Array} contour - An array of 2D points defining the contour.\n\t * @param {Array>} holes - An array that holds arrays of 2D points defining the holes.\n\t * @return {Array>} An array that holds for each face definition an array with three indices.\n\t */\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 * ```js\n * const length = 12, width = 8;\n *\n * const shape = new THREE.Shape();\n * shape.moveTo( 0,0 );\n * shape.lineTo( 0, width );\n * shape.lineTo( length, width );\n * shape.lineTo( length, 0 );\n * shape.lineTo( 0, 0 );\n *\n * const geometry = new THREE.ExtrudeGeometry( shape );\n * const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );\n * const mesh = new THREE.Mesh( geometry, material ) ;\n * scene.add( mesh );\n * ```\n *\n * @augments BufferGeometry\n */\nclass ExtrudeGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new extrude geometry.\n\t *\n\t * @param {Shape|Array} [shapes] - A shape or an array of shapes.\n\t * @param {ExtrudeGeometry~Options} [options] - The extrude settings.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t\t\t/**Merges index-adjacent points that are within a threshold distance of each other. Array is modified in-place. Threshold distance is empirical, and scaled based on the magnitude of point coordinates.\n\t\t\t * @param {Array} points\n\t\t\t*/\n\t\t\tfunction mergeOverlappingPoints( points ) {\n\n\t\t\t\tconst THRESHOLD = 1e-10;\n\t\t\t\tconst THRESHOLD_SQ = THRESHOLD * THRESHOLD;\n\t\t\t\tlet prevPos = points[ 0 ];\n\t\t\t\tfor ( let i = 1; i <= points.length; i ++ ) {\n\n\t\t\t\t\tconst currentIndex = i % points.length;\n\t\t\t\t\tconst currentPos = points[ currentIndex ];\n\t\t\t\t\tconst dx = currentPos.x - prevPos.x;\n\t\t\t\t\tconst dy = currentPos.y - prevPos.y;\n\t\t\t\t\tconst distSq = dx * dx + dy * dy;\n\n\t\t\t\t\tconst scalingFactorSqrt = Math.max(\n\t\t\t\t\t\tMath.abs( currentPos.x ),\n\t\t\t\t\t\tMath.abs( currentPos.y ),\n\t\t\t\t\t\tMath.abs( prevPos.x ),\n\t\t\t\t\t\tMath.abs( prevPos.y )\n\t\t\t\t\t);\n\t\t\t\t\tconst thresholdSqScaled = THRESHOLD_SQ * scalingFactorSqrt * scalingFactorSqrt;\n\t\t\t\t\tif ( distSq <= thresholdSqScaled ) {\n\n\t\t\t\t\t\tpoints.splice( currentIndex, 1 );\n\t\t\t\t\t\ti --;\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tprevPos = currentPos;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tmergeOverlappingPoints( vertices );\n\t\t\tholes.forEach( mergeOverlappingPoints );\n\n\t\t\tconst numHoles = holes.length;\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; h < numHoles; 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;\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 = numHoles; 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\t\t\tlet faces;\n\n\t\t\tif ( bevelSegments === 0 ) {\n\n\t\t\t\tfaces = ShapeUtils.triangulateShape( contour, holes );\n\n\t\t\t} else {\n\n\t\t\t\tconst contractedContourVertices = [];\n\t\t\t\tconst expandedHoleVertices = [];\n\n\t\t\t\t// Loop bevelSegments, 1 for the front, 1 for the back\n\n\t\t\t\tfor ( let b = 0; b < bevelSegments; b ++ ) {\n\n\t\t\t\t\t//for ( b = bevelSegments; b > 0; b -- ) {\n\n\t\t\t\t\tconst t = b / bevelSegments;\n\t\t\t\t\tconst z = bevelThickness * Math.cos( t * Math.PI / 2 );\n\t\t\t\t\tconst bs = bevelSize * Math.sin( t * Math.PI / 2 ) + bevelOffset;\n\n\t\t\t\t\t// contract shape\n\n\t\t\t\t\tfor ( let i = 0, il = contour.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst vert = scalePt2( contour[ i ], contourMovements[ i ], bs );\n\n\t\t\t\t\t\tv( vert.x, vert.y, - z );\n\t\t\t\t\t\tif ( t === 0 ) contractedContourVertices.push( vert );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// expand holes\n\n\t\t\t\t\tfor ( let h = 0, hl = numHoles; h < hl; h ++ ) {\n\n\t\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\t\toneHoleMovements = holesMovements[ h ];\n\t\t\t\t\t\tconst oneHoleVertices = [];\n\t\t\t\t\t\tfor ( let i = 0, il = ahole.length; i < il; i ++ ) {\n\n\t\t\t\t\t\t\tconst vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs );\n\n\t\t\t\t\t\t\tv( vert.x, vert.y, - z );\n\t\t\t\t\t\t\tif ( t === 0 ) oneHoleVertices.push( vert );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( t === 0 ) expandedHoleVertices.push( oneHoleVertices );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfaces = ShapeUtils.triangulateShape( contractedContourVertices, expandedHoleVertices );\n\n\t\t\t}\n\n\t\t\tconst flen = faces.length;\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @param {Array} shapes - An array of shapes.\n\t * @return {ExtrudeGeometry} A new instance.\n\t */\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\n/**\n * A geometry class for representing an icosahedron.\n *\n * ```js\n * const geometry = new THREE.IcosahedronGeometry();\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const icosahedron = new THREE.Mesh( geometry, material );\n * scene.add( icosahedron );\n * ```\n *\n * @augments PolyhedronGeometry\n */\nclass IcosahedronGeometry extends PolyhedronGeometry {\n\n\t/**\n\t * Constructs a new icosahedron geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the icosahedron.\n\t * @param {number} [detail=0] - Setting this to a value greater than `0` adds vertices making it no longer a icosahedron.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {IcosahedronGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new IcosahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\n/**\n * Creates meshes with axial symmetry like vases. The lathe rotates around the Y axis.\n *\n * ```js\n * const points = [];\n * for ( let i = 0; i < 10; i ++ ) {\n * \tpoints.push( new THREE.Vector2( Math.sin( i * 0.2 ) * 10 + 5, ( i - 5 ) * 2 ) );\n * }\n * const geometry = new THREE.LatheGeometry( points );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const lathe = new THREE.Mesh( geometry, material );\n * scene.add( lathe );\n * ```\n *\n * @augments BufferGeometry\n */\nclass LatheGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new lathe geometry.\n\t *\n\t * @param {Array} [points] - An array of points in 2D space. The x-coordinate of each point\n\t * must be greater than zero.\n\t * @param {number} [segments=12] - The number of circumference segments to generate.\n\t * @param {number} [phiStart=0] - The starting angle in radians.\n\t * @param {number} [phiLength=Math.PI*2] - The radian (0 to 2PI) range of the lathed section 2PI is a\n\t * closed lathe, less than 2PI is a portion.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {LatheGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new LatheGeometry( data.points, data.segments, data.phiStart, data.phiLength );\n\n\t}\n\n}\n\n/**\n * A geometry class for representing an octahedron.\n *\n * ```js\n * const geometry = new THREE.OctahedronGeometry();\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const octahedron = new THREE.Mesh( geometry, material );\n * scene.add( octahedron );\n * ```\n *\n * @augments PolyhedronGeometry\n */\nclass OctahedronGeometry extends PolyhedronGeometry {\n\n\t/**\n\t * Constructs a new octahedron geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the octahedron.\n\t * @param {number} [detail=0] - Setting this to a value greater than `0` adds vertices making it no longer a octahedron.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {OctahedronGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new OctahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\n/**\n * A geometry class for representing a plane.\n *\n * ```js\n * const geometry = new THREE.PlaneGeometry( 1, 1 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00, side: THREE.DoubleSide } );\n * const plane = new THREE.Mesh( geometry, material );\n * scene.add( plane );\n * ```\n *\n * @augments BufferGeometry\n */\nclass PlaneGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new plane geometry.\n\t *\n\t * @param {number} [width=1] - The width along the X axis.\n\t * @param {number} [height=1] - The height along the Y axis\n\t * @param {number} [widthSegments=1] - The number of segments along the X axis.\n\t * @param {number} [heightSegments=1] - The number of segments along the Y axis.\n\t */\n\tconstructor( width = 1, height = 1, widthSegments = 1, heightSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PlaneGeometry';\n\n\t\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {PlaneGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new PlaneGeometry( data.width, data.height, data.widthSegments, data.heightSegments );\n\n\t}\n\n}\n\n/**\n * A class for generating a two-dimensional ring geometry.\n *\n * ```js\n * const geometry = new THREE.RingGeometry( 1, 5, 32 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00, side: THREE.DoubleSide } );\n * const mesh = new THREE.Mesh( geometry, material );\n * scene.add( mesh );\n * ```\n *\n * @augments BufferGeometry\n */\nclass RingGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new ring geometry.\n\t *\n\t * @param {number} [innerRadius=0.5] - The inner radius of the ring.\n\t * @param {number} [outerRadius=1] - The outer radius of the ring.\n\t * @param {number} [thetaSegments=32] - Number of segments. A higher number means the ring will be more round. Minimum is `3`.\n\t * @param {number} [phiSegments=1] - Number of segments per ring segment. Minimum is `1`.\n\t * @param {number} [thetaStart=0] - Starting angle in radians.\n\t * @param {number} [thetaLength=Math.PI*2] - Central angle in radians.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {RingGeometry} A new instance.\n\t */\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\n/**\n * Creates an one-sided polygonal geometry from one or more path shapes.\n *\n * ```js\n * const arcShape = new THREE.Shape()\n *\t.moveTo( 5, 1 )\n *\t.absarc( 1, 1, 4, 0, Math.PI * 2, false );\n *\n * const geometry = new THREE.ShapeGeometry( arcShape );\n * const material = new THREE.MeshBasicMaterial( { color: 0x00ff00, side: THREE.DoubleSide } );\n * const mesh = new THREE.Mesh( geometry, material ) ;\n * scene.add( mesh );\n * ```\n *\n * @augments BufferGeometry\n */\nclass ShapeGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new shape geometry.\n\t *\n\t * @param {Shape|Array} [shapes] - A shape or an array of shapes.\n\t * @param {number} [curveSegments=12] - Number of segments per shape.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @param {Array} shapes - An array of shapes.\n\t * @return {ShapeGeometry} A new instance.\n\t */\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\n/**\n * A class for generating a sphere geometry.\n *\n * ```js\n * const geometry = new THREE.SphereGeometry( 15, 32, 16 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const sphere = new THREE.Mesh( geometry, material );\n * scene.add( sphere );\n * ```\n *\n * @augments BufferGeometry\n */\nclass SphereGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new sphere geometry.\n\t *\n\t * @param {number} [radius=1] - The sphere radius.\n\t * @param {number} [widthSegments=32] - The number of horizontal segments. Minimum value is `3`.\n\t * @param {number} [heightSegments=16] - The number of vertical segments. Minimum value is `2`.\n\t * @param {number} [phiStart=0] - The horizontal starting angle in radians.\n\t * @param {number} [phiLength=Math.PI*2] - The horizontal sweep angle size.\n\t * @param {number} [thetaStart=0] - The vertical starting angle in radians.\n\t * @param {number} [thetaLength=Math.PI] - The vertical sweep angle size.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {SphereGeometry} A new instance.\n\t */\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\n/**\n * A geometry class for representing an tetrahedron.\n *\n * ```js\n * const geometry = new THREE.TetrahedronGeometry();\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const tetrahedron = new THREE.Mesh( geometry, material );\n * scene.add( tetrahedron );\n * ```\n *\n * @augments PolyhedronGeometry\n */\nclass TetrahedronGeometry extends PolyhedronGeometry {\n\n\t/**\n\t * Constructs a new tetrahedron geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the tetrahedron.\n\t * @param {number} [detail=0] - Setting this to a value greater than `0` adds vertices making it no longer a tetrahedron.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {TetrahedronGeometry} A new instance.\n\t */\n\tstatic fromJSON( data ) {\n\n\t\treturn new TetrahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\n/**\n * A geometry class for representing an torus.\n *\n * ```js\n * const geometry = new THREE.TorusGeometry( 10, 3, 16, 100 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const torus = new THREE.Mesh( geometry, material );\n * scene.add( torus );\n * ```\n *\n * @augments BufferGeometry\n */\nclass TorusGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new torus geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the torus, from the center of the torus to the center of the tube.\n\t * @param {number} [tube=0.4] - Radius of the tube. Must be smaller than `radius`.\n\t * @param {number} [radialSegments=12] - The number of radial segments.\n\t * @param {number} [tubularSegments=48] - The number of tubular segments.\n\t * @param {number} [arc=Math.PI*2] - Central angle in radians.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {TorusGeometry} A new instance.\n\t */\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\n/**\n * Creates a torus knot, the particular shape of which is defined by a pair\n * of coprime integers, p and q. If p and q are not coprime, the result will\n * be a torus link.\n *\n * ```js\n * const geometry = new THREE.TorusKnotGeometry( 10, 3, 100, 16 );\n * const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );\n * const torusKnot = new THREE.Mesh( geometry, material );\n * scene.add( torusKnot );\n * ```\n *\n * @augments BufferGeometry\n */\nclass TorusKnotGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new torus knot geometry.\n\t *\n\t * @param {number} [radius=1] - Radius of the torus knot.\n\t * @param {number} [tube=0.4] - Radius of the tube.\n\t * @param {number} [tubularSegments=64] - The number of tubular segments.\n\t * @param {number} [radialSegments=8] - The number of radial segments.\n\t * @param {number} [p=2] - This value determines, how many times the geometry winds around its axis of rotational symmetry.\n\t * @param {number} [q=3] - This value determines, how many times the geometry winds around a circle in the interior of the torus.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {TorusKnotGeometry} A new instance.\n\t */\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\n/**\n * Creates a tube that extrudes along a 3D curve.\n *\n * ```js\n * class CustomSinCurve extends THREE.Curve {\n *\n * \tgetPoint( t, optionalTarget = new THREE.Vector3() ) {\n *\n * \t\tconst tx = t * 3 - 1.5;\n * \t\tconst ty = Math.sin( 2 * Math.PI * t );\n * \t\tconst tz = 0;\n *\n * \t\treturn optionalTarget.set( tx, ty, tz );\n * \t}\n *\n * }\n *\n * const path = new CustomSinCurve( 10 );\n * const geometry = new THREE.TubeGeometry( path, 20, 2, 8, false );\n * const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );\n * const mesh = new THREE.Mesh( geometry, material );\n * scene.add( mesh );\n * ```\n *\n * @augments BufferGeometry\n */\nclass TubeGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new tube geometry.\n\t *\n\t * @param {Curve} [path=QuadraticBezierCurve3] - A 3D curve defining the path of the tube.\n\t * @param {number} [tubularSegments=64] - The number of segments that make up the tube.\n\t * @param {number} [radius=1] -The radius of the tube.\n\t * @param {number} [radialSegments=8] - The number of segments that make up the cross-section.\n\t * @param {boolean} [closed=false] - Whether the tube is closed or not.\n\t */\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\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Factory method for creating an instance of this class from the given\n\t * JSON object.\n\t *\n\t * @param {Object} data - A JSON object representing the serialized geometry.\n\t * @return {TubeGeometry} A new instance.\n\t */\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\n/**\n * Can be used as a helper object to visualize a geometry as a wireframe.\n *\n * ```js\n * const geometry = new THREE.SphereGeometry();\n *\n * const wireframe = new THREE.WireframeGeometry( geometry );\n *\n * const line = new THREE.LineSegments( wireframe );\n * line.material.depthWrite = false;\n * line.material.opacity = 0.25;\n * line.material.transparent = true;\n *\n * scene.add( line );\n * ```\n *\n * Note: It is not yet possible to serialize/deserialize instances of this class.\n *\n * @augments BufferGeometry\n */\nclass WireframeGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new wireframe geometry.\n\t *\n\t * @param {?BufferGeometry} [geometry=null] - The geometry.\n\t */\n\tconstructor( geometry = null ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'WireframeGeometry';\n\n\t\t/**\n\t\t * Holds the constructor parameters that have been\n\t\t * used to generate the geometry. Any modification\n\t\t * after instantiation does not change the geometry.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\n/**\n * This material can receive shadows, but otherwise is completely transparent.\n *\n * ```js\n * const geometry = new THREE.PlaneGeometry( 2000, 2000 );\n * geometry.rotateX( - Math.PI / 2 );\n *\n * const material = new THREE.ShadowMaterial();\n * material.opacity = 0.2;\n *\n * const plane = new THREE.Mesh( geometry, material );\n * plane.position.y = -200;\n * plane.receiveShadow = true;\n * scene.add( plane );\n * ```\n *\n * @augments Material\n */\nclass ShadowMaterial extends Material {\n\n\t/**\n\t * Constructs a new shadow material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isShadowMaterial = true;\n\n\t\tthis.type = 'ShadowMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.color = new Color( 0x000000 );\n\n\t\t/**\n\t\t * Overwritten since shadow materials are transparent\n\t\t * by default.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.transparent = true;\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * This class works just like {@link ShaderMaterial}, except that definitions\n * of built-in uniforms and attributes are not automatically prepended to the\n * GLSL shader code.\n *\n * `RawShaderMaterial` can only be used with {@link WebGLRenderer}.\n *\n * @augments ShaderMaterial\n */\nclass RawShaderMaterial extends ShaderMaterial {\n\n\t/**\n\t * Constructs a new raw shader material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper( parameters );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isRawShaderMaterial = true;\n\n\t\tthis.type = 'RawShaderMaterial';\n\n\t}\n\n}\n\n/**\n * A standard physically based material, using Metallic-Roughness workflow.\n *\n * Physically based rendering (PBR) has recently become the standard in many\n * 3D applications, such as [Unity]{@link https://blogs.unity3d.com/2014/10/29/physically-based-shading-in-unity-5-a-primer/},\n * [Unreal]{@link https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/PhysicallyBased/} and\n * [3D Studio Max]{@link http://area.autodesk.com/blogs/the-3ds-max-blog/what039s-new-for-rendering-in-3ds-max-2017}.\n *\n * This approach differs from older approaches in that instead of using\n * approximations for the way in which light interacts with a surface, a\n * physically correct model is used. The idea is that, instead of tweaking\n * materials to look good under specific lighting, a material can be created\n * that will react 'correctly' under all lighting scenarios.\n *\n * In practice this gives a more accurate and realistic looking result than\n * the {@link MeshLambertMaterial} or {@link MeshPhongMaterial}, at the cost of\n * being somewhat more computationally expensive. `MeshStandardMaterial` uses per-fragment\n * shading.\n *\n * Note that for best results you should always specify an environment map when using this material.\n *\n * For a non-technical introduction to the concept of PBR and how to set up a\n * PBR material, check out these articles by the people at [marmoset]{@link https://www.marmoset.co}:\n *\n * - [Basic Theory of Physically Based Rendering]{@link https://www.marmoset.co/posts/basic-theory-of-physically-based-rendering/}\n * - [Physically Based Rendering and You Can Too]{@link https://www.marmoset.co/posts/physically-based-rendering-and-you-can-too/}\n *\n * Technical details of the approach used in three.js (and most other PBR systems) can be found is this\n * [paper from Disney]{@link https://media.disneyanimation.com/uploads/production/publication_asset/48/asset/s2012_pbs_disney_brdf_notes_v3.pdf}\n * (pdf), by Brent Burley.\n *\n * @augments Material\n */\nclass MeshStandardMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh standard material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshStandardMaterial = true;\n\n\t\tthis.type = 'MeshStandardMaterial';\n\n\t\tthis.defines = { 'STANDARD': '' };\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\t/**\n\t\t * How rough the material appears. `0.0` means a smooth mirror reflection, `1.0`\n\t\t * means fully diffuse. If `roughnessMap` is also provided,\n\t\t * both values are multiplied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.roughness = 1.0;\n\n\t\t/**\n\t\t * How much the material is like a metal. Non-metallic materials such as wood\n\t\t * or stone use `0.0`, metallic use `1.0`, with nothing (usually) in between.\n\t\t * A value between `0.0` and `1.0` could be used for a rusty metal look.\n\t\t * If `metalnessMap` is also provided, both values are multiplied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.metalness = 0.0;\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The light map. Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.lightMap = null;\n\n\t\t/**\n\t\t * Intensity of the baked light.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\t/**\n\t\t * The red channel of this texture is used as the ambient occlusion map.\n\t\t * Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.aoMap = null;\n\n\t\t/**\n\t\t * Intensity of the ambient occlusion effect. Range is `[0,1]`, where `0`\n\t\t * disables ambient occlusion. Where intensity is `1` and the AO map's\n\t\t * red channel is also `1`, ambient light is fully occluded on a surface.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\t/**\n\t\t * Emissive (light) color of the material, essentially a solid color\n\t\t * unaffected by other lighting.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.emissive = new Color( 0x000000 );\n\n\t\t/**\n\t\t * Intensity of the emissive light. Modulates the emissive color.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.emissiveIntensity = 1.0;\n\n\t\t/**\n\t\t * Set emissive (glow) map. The emissive map color is modulated by the\n\t\t * emissive color and the emissive intensity. If you have an emissive map,\n\t\t * be sure to set the emissive color to something other than black.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.emissiveMap = null;\n\n\t\t/**\n\t\t * The texture to create a bump map. The black and white values map to the\n\t\t * perceived depth in relation to the lights. Bump doesn't actually affect\n\t\t * the geometry of the object, only the lighting. If a normal map is defined\n\t\t * this will be ignored.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.bumpMap = null;\n\n\t\t/**\n\t\t * How much the bump map affects the material. Typical range is `[0,1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.bumpScale = 1;\n\n\t\t/**\n\t\t * The texture to create a normal map. The RGB values affect the surface\n\t\t * normal for each pixel fragment and change the way the color is lit. Normal\n\t\t * maps do not change the actual shape of the surface, only the lighting. In\n\t\t * case the material has a normal map authored using the left handed\n\t\t * convention, the `y` component of `normalScale` should be negated to compensate\n\t\t * for the different handedness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.normalMap = null;\n\n\t\t/**\n\t\t * The type of normal map.\n\t\t *\n\t\t * @type {(TangentSpaceNormalMap|ObjectSpaceNormalMap)}\n\t\t * @default TangentSpaceNormalMap\n\t\t */\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\n\t\t/**\n\t\t * How much the normal map affects the material. Typical value range is `[0,1]`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementBias = 0;\n\n\t\t/**\n\t\t * The green channel of this texture is used to alter the roughness of the\n\t\t * material.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.roughnessMap = null;\n\n\t\t/**\n\t\t * The blue channel of this texture is used to alter the metalness of the\n\t\t * material.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.metalnessMap = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * The environment map. To ensure a physically correct rendering, environment maps\n\t\t * are internally pre-processed with {@link PMREMGenerator}.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.envMap = null;\n\n\t\t/**\n\t\t * The rotation of the environment map in radians.\n\t\t *\n\t\t * @type {Euler}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.envMapRotation = new Euler();\n\n\t\t/**\n\t\t * Scales the effect of the environment map by multiplying its color.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.envMapIntensity = 1.0;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.wireframeLinewidth = 1;\n\n\t\t/**\n\t\t * Defines appearance of wireframe ends.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinecap = 'round';\n\n\t\t/**\n\t\t * Defines appearance of wireframe joints.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\t/**\n\t\t * Whether the material is rendered with flat shading or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flatShading = false;\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * An extension of the {@link MeshStandardMaterial}, providing more advanced\n * physically-based rendering properties:\n *\n * - Anisotropy: Ability to represent the anisotropic property of materials\n * as observable with brushed metals.\n * - Clearcoat: Some materials — like car paints, carbon fiber, and wet surfaces — require\n * a clear, reflective layer on top of another layer that may be irregular or rough.\n * Clearcoat approximates this effect, without the need for a separate transparent surface.\n * - Iridescence: Allows to render the effect where hue varies depending on the viewing\n * angle and illumination angle. This can be seen on soap bubbles, oil films, or on the\n * wings of many insects.\n * - Physically-based transparency: One limitation of {@link Material#opacity} is that highly\n * transparent materials are less reflective. Physically-based transmission provides a more\n * realistic option for thin, transparent surfaces like glass.\n * - Advanced reflectivity: More flexible reflectivity for non-metallic materials.\n * - Sheen: Can be used for representing cloth and fabric materials.\n *\n * As a result of these complex shading features, `MeshPhysicalMaterial` has a\n * higher performance cost, per pixel, than other three.js materials. Most\n * effects are disabled by default, and add cost as they are enabled. For\n * best results, always specify an environment map when using this material.\n *\n * @augments MeshStandardMaterial\n */\nclass MeshPhysicalMaterial extends MeshStandardMaterial {\n\n\t/**\n\t * Constructs a new mesh physical material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t\t * The rotation of the anisotropy in tangent, bitangent space, measured in radians\n\t\t * counter-clockwise from the tangent. When `anisotropyMap` is present, this\n\t\t * property provides additional rotation to the vectors in the texture.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.anisotropyRotation = 0;\n\n\t\t/**\n\t\t * Red and green channels represent the anisotropy direction in `[-1, 1]` tangent,\n\t\t * bitangent space, to be rotated by `anisotropyRotation`. The blue channel\n\t\t * contains strength as `[0, 1]` to be multiplied by `anisotropy`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.anisotropyMap = null;\n\n\t\t/**\n\t\t * The red channel of this texture is multiplied against `clearcoat`,\n\t\t * for per-pixel control over a coating's intensity.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.clearcoatMap = null;\n\n\t\t/**\n\t\t * Roughness of the clear coat layer, from `0.0` to `1.0`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.clearcoatRoughness = 0.0;\n\n\t\t/**\n\t\t * The green channel of this texture is multiplied against\n\t\t * `clearcoatRoughness`, for per-pixel control over a coating's roughness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.clearcoatRoughnessMap = null;\n\n\t\t/**\n\t\t * How much `clearcoatNormalMap` affects the clear coat layer, from\n\t\t * `(0,0)` to `(1,1)`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.clearcoatNormalScale = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * Can be used to enable independent normals for the clear coat layer.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.clearcoatNormalMap = null;\n\n\t\t/**\n\t\t * Index-of-refraction for non-metallic materials, from `1.0` to `2.333`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1.5\n\t\t */\n\t\tthis.ior = 1.5;\n\n\t\t/**\n\t\t * Degree of reflectivity, from `0.0` to `1.0`. Default is `0.5`, which\n\t\t * corresponds to an index-of-refraction of `1.5`.\n\t\t *\n\t\t * This models the reflectivity of non-metallic materials. It has no effect\n\t\t * when `metalness` is `1.0`\n\t\t *\n\t\t * @name MeshPhysicalMaterial#reflectivity\n\t\t * @type {number}\n\t\t * @default 0.5\n\t\t */\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\t/**\n\t\t * The red channel of this texture is multiplied against `iridescence`, for per-pixel\n\t\t * control over iridescence.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.iridescenceMap = null;\n\n\t\t/**\n\t\t * Strength of the iridescence RGB color shift effect, represented by an index-of-refraction.\n\t\t * Between `1.0` to `2.333`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1.3\n\t\t */\n\t\tthis.iridescenceIOR = 1.3;\n\n\t\t/**\n\t\t *Array of exactly 2 elements, specifying minimum and maximum thickness of the iridescence layer.\n\t\t Thickness of iridescence layer has an equivalent effect of the one `thickness` has on `ior`.\n\t\t *\n\t\t * @type {Array}\n\t\t * @default [100,400]\n\t\t */\n\t\tthis.iridescenceThicknessRange = [ 100, 400 ];\n\n\t\t/**\n\t\t * A texture that defines the thickness of the iridescence layer, stored in the green channel.\n\t\t * Minimum and maximum values of thickness are defined by `iridescenceThicknessRange` array:\n\t\t * - `0.0` in the green channel will result in thickness equal to first element of the array.\n\t\t * - `1.0` in the green channel will result in thickness equal to second element of the array.\n\t\t * - Values in-between will linearly interpolate between the elements of the array.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.iridescenceThicknessMap = null;\n\n\t\t/**\n\t\t * The sheen tint.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.sheenColor = new Color( 0x000000 );\n\n\t\t/**\n\t\t * The RGB channels of this texture are multiplied against `sheenColor`, for per-pixel control\n\t\t * over sheen tint.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.sheenColorMap = null;\n\n\t\t/**\n\t\t * Roughness of the sheen layer, from `0.0` to `1.0`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.sheenRoughness = 1.0;\n\n\t\t/**\n\t\t * The alpha channel of this texture is multiplied against `sheenRoughness`, for per-pixel control\n\t\t * over sheen roughness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.sheenRoughnessMap = null;\n\n\t\t/**\n\t\t * The red channel of this texture is multiplied against `transmission`, for per-pixel control over\n\t\t * optical transparency.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.transmissionMap = null;\n\n\t\t/**\n\t\t * The thickness of the volume beneath the surface. The value is given in the\n\t\t * coordinate space of the mesh. If the value is `0` the material is\n\t\t * thin-walled. Otherwise the material is a volume boundary.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.thickness = 0;\n\n\t\t/**\n\t\t * A texture that defines the thickness, stored in the green channel. This will\n\t\t * be multiplied by `thickness`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.thicknessMap = null;\n\n\t\t/**\n\t\t * Density of the medium given as the average distance that light travels in\n\t\t * the medium before interacting with a particle. The value is given in world\n\t\t * space units, and must be greater than zero.\n\t\t *\n\t\t * @type {number}\n\t\t * @default Infinity\n\t\t */\n\t\tthis.attenuationDistance = Infinity;\n\n\t\t/**\n\t\t * The color that white light turns into due to absorption when reaching the\n\t\t * attenuation distance.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.attenuationColor = new Color( 1, 1, 1 );\n\n\t\t/**\n\t\t * A float that scales the amount of specular reflection for non-metals only.\n\t\t * When set to zero, the model is effectively Lambertian. From `0.0` to `1.0`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.specularIntensity = 1.0;\n\n\t\t/**\n\t\t * The alpha channel of this texture is multiplied against `specularIntensity`,\n\t\t * for per-pixel control over specular intensity.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.specularIntensityMap = null;\n\n\t\t/**\n\t\t * Tints the specular reflection at normal incidence for non-metals only.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.specularColor = new Color( 1, 1, 1 );\n\n\t\t/**\n\t\t * The RGB channels of this texture are multiplied against `specularColor`,\n\t\t * for per-pixel control over specular color.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\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\t/**\n\t * The anisotropy strength.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * Represents the intensity of the clear coat layer, from `0.0` to `1.0`. Use\n\t * clear coat related properties to enable multilayer materials that have a\n\t * thin translucent layer over the base layer.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * The intensity of the iridescence layer, simulating RGB color shift based on the angle between\n\t * the surface and the viewer, from `0.0` to `1.0`.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * Defines the strength of the angular separation of colors (chromatic aberration) transmitting\n\t * through a relatively clear volume. Any value zero or larger is valid, the typical range of\n\t * realistic values is `[0, 1]`. This property can be only be used with transmissive objects.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * The intensity of the sheen layer, from `0.0` to `1.0`.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\t/**\n\t * Degree of transmission (or optical transparency), from `0.0` to `1.0`.\n\t *\n\t * Thin, transparent or semitransparent, plastic or glass materials remain\n\t * largely reflective even if they are fully transmissive. The transmission\n\t * property can be used to model these materials.\n\t *\n\t * When transmission is non-zero, `opacity` should be set to `1`.\n\t *\n\t * @type {number}\n\t * @default 0\n\t */\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\n/**\n * A material for shiny surfaces with specular highlights.\n *\n * The material uses a non-physically based [Blinn-Phong]{@link https://en.wikipedia.org/wiki/Blinn-Phong_shading_model}\n * model for calculating reflectance. Unlike the Lambertian model used in the\n * {@link MeshLambertMaterial} this can simulate shiny surfaces with specular\n * highlights (such as varnished wood). `MeshPhongMaterial` uses per-fragment shading.\n *\n * Performance will generally be greater when using this material over the\n * {@link MeshStandardMaterial} or {@link MeshPhysicalMaterial}, at the cost of\n * some graphical accuracy.\n *\n * @augments Material\n */\nclass MeshPhongMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh phong material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshPhongMaterial = true;\n\n\t\tthis.type = 'MeshPhongMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\t/**\n\t\t * Specular color of the material. The default color is set to `0x111111` (very dark grey)\n\t\t *\n\t\t * This defines how shiny the material is and the color of its shine.\n\t\t *\n\t\t * @type {Color}\n\t\t */\n\t\tthis.specular = new Color( 0x111111 );\n\n\t\t/**\n\t\t * How shiny the specular highlight is; a higher value gives a sharper highlight.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 30\n\t\t */\n\t\tthis.shininess = 30;\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The light map. Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.lightMap = null;\n\n\t\t/**\n\t\t * Intensity of the baked light.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\t/**\n\t\t * The red channel of this texture is used as the ambient occlusion map.\n\t\t * Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.aoMap = null;\n\n\t\t/**\n\t\t * Intensity of the ambient occlusion effect. Range is `[0,1]`, where `0`\n\t\t * disables ambient occlusion. Where intensity is `1` and the AO map's\n\t\t * red channel is also `1`, ambient light is fully occluded on a surface.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\t/**\n\t\t * Emissive (light) color of the material, essentially a solid color\n\t\t * unaffected by other lighting.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.emissive = new Color( 0x000000 );\n\n\t\t/**\n\t\t * Intensity of the emissive light. Modulates the emissive color.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.emissiveIntensity = 1.0;\n\n\t\t/**\n\t\t * Set emissive (glow) map. The emissive map color is modulated by the\n\t\t * emissive color and the emissive intensity. If you have an emissive map,\n\t\t * be sure to set the emissive color to something other than black.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.emissiveMap = null;\n\n\t\t/**\n\t\t * The texture to create a bump map. The black and white values map to the\n\t\t * perceived depth in relation to the lights. Bump doesn't actually affect\n\t\t * the geometry of the object, only the lighting. If a normal map is defined\n\t\t * this will be ignored.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.bumpMap = null;\n\n\t\t/**\n\t\t * How much the bump map affects the material. Typical range is `[0,1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.bumpScale = 1;\n\n\t\t/**\n\t\t * The texture to create a normal map. The RGB values affect the surface\n\t\t * normal for each pixel fragment and change the way the color is lit. Normal\n\t\t * maps do not change the actual shape of the surface, only the lighting. In\n\t\t * case the material has a normal map authored using the left handed\n\t\t * convention, the `y` component of `normalScale` should be negated to compensate\n\t\t * for the different handedness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.normalMap = null;\n\n\t\t/**\n\t\t * The type of normal map.\n\t\t *\n\t\t * @type {(TangentSpaceNormalMap|ObjectSpaceNormalMap)}\n\t\t * @default TangentSpaceNormalMap\n\t\t */\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\n\t\t/**\n\t\t * How much the normal map affects the material. Typical value range is `[0,1]`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementBias = 0;\n\n\t\t/**\n\t\t * The specular map value affects both how much the specular surface\n\t\t * highlight contributes and how much of the environment map affects the\n\t\t * surface.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.specularMap = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * The environment map.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.envMap = null;\n\n\t\t/**\n\t\t * The rotation of the environment map in radians.\n\t\t *\n\t\t * @type {Euler}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.envMapRotation = new Euler();\n\n\t\t/**\n\t\t * How to combine the result of the surface's color with the environment map, if any.\n\t\t *\n\t\t * When set to `MixOperation`, the {@link MeshBasicMaterial#reflectivity} is used to\n\t\t * blend between the two colors.\n\t\t *\n\t\t * @type {(MultiplyOperation|MixOperation|AddOperation)}\n\t\t * @default MultiplyOperation\n\t\t */\n\t\tthis.combine = MultiplyOperation;\n\n\t\t/**\n\t\t * How much the environment map affects the surface.\n\t\t * The valid range is between `0` (no reflections) and `1` (full reflections).\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.reflectivity = 1;\n\n\t\t/**\n\t\t * The index of refraction (IOR) of air (approximately 1) divided by the\n\t\t * index of refraction of the material. It is used with environment mapping\n\t\t * modes {@link CubeRefractionMapping} and {@link EquirectangularRefractionMapping}.\n\t\t * The refraction ratio should not exceed `1`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.98\n\t\t */\n\t\tthis.refractionRatio = 0.98;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.wireframeLinewidth = 1;\n\n\t\t/**\n\t\t * Defines appearance of wireframe ends.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinecap = 'round';\n\n\t\t/**\n\t\t * Defines appearance of wireframe joints.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\t/**\n\t\t * Whether the material is rendered with flat shading or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flatShading = false;\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * A material implementing toon shading.\n *\n * @augments Material\n */\nclass MeshToonMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh toon material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshToonMaterial = true;\n\n\t\tthis.defines = { 'TOON': '' };\n\n\t\tthis.type = 'MeshToonMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff );\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * Gradient map for toon shading. It's required to set\n\t\t * {@link Texture#minFilter} and {@link Texture#magFilter} to {@linkNearestFilter}\n\t\t * when using this type of texture.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.gradientMap = null;\n\n\t\t/**\n\t\t * The light map. Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.lightMap = null;\n\n\t\t/**\n\t\t * Intensity of the baked light.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\t/**\n\t\t * The red channel of this texture is used as the ambient occlusion map.\n\t\t * Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.aoMap = null;\n\n\t\t/**\n\t\t * Intensity of the ambient occlusion effect. Range is `[0,1]`, where `0`\n\t\t * disables ambient occlusion. Where intensity is `1` and the AO map's\n\t\t * red channel is also `1`, ambient light is fully occluded on a surface.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\t/**\n\t\t * Emissive (light) color of the material, essentially a solid color\n\t\t * unaffected by other lighting.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.emissive = new Color( 0x000000 );\n\n\t\t/**\n\t\t * Intensity of the emissive light. Modulates the emissive color.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.emissiveIntensity = 1.0;\n\n\t\t/**\n\t\t * Set emissive (glow) map. The emissive map color is modulated by the\n\t\t * emissive color and the emissive intensity. If you have an emissive map,\n\t\t * be sure to set the emissive color to something other than black.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.emissiveMap = null;\n\n\t\t/**\n\t\t * The texture to create a bump map. The black and white values map to the\n\t\t * perceived depth in relation to the lights. Bump doesn't actually affect\n\t\t * the geometry of the object, only the lighting. If a normal map is defined\n\t\t * this will be ignored.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.bumpMap = null;\n\n\t\t/**\n\t\t * How much the bump map affects the material. Typical range is `[0,1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.bumpScale = 1;\n\n\t\t/**\n\t\t * The texture to create a normal map. The RGB values affect the surface\n\t\t * normal for each pixel fragment and change the way the color is lit. Normal\n\t\t * maps do not change the actual shape of the surface, only the lighting. In\n\t\t * case the material has a normal map authored using the left handed\n\t\t * convention, the `y` component of `normalScale` should be negated to compensate\n\t\t * for the different handedness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.normalMap = null;\n\n\t\t/**\n\t\t * The type of normal map.\n\t\t *\n\t\t * @type {(TangentSpaceNormalMap|ObjectSpaceNormalMap)}\n\t\t * @default TangentSpaceNormalMap\n\t\t */\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\n\t\t/**\n\t\t * How much the normal map affects the material. Typical value range is `[0,1]`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementBias = 0;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.wireframeLinewidth = 1;\n\n\t\t/**\n\t\t * Defines appearance of wireframe ends.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinecap = 'round';\n\n\t\t/**\n\t\t * Defines appearance of wireframe joints.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * A material that maps the normal vectors to RGB colors.\n *\n * @augments Material\n */\nclass MeshNormalMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh normal material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshNormalMaterial = true;\n\n\t\tthis.type = 'MeshNormalMaterial';\n\n\t\t/**\n\t\t * The texture to create a bump map. The black and white values map to the\n\t\t * perceived depth in relation to the lights. Bump doesn't actually affect\n\t\t * the geometry of the object, only the lighting. If a normal map is defined\n\t\t * this will be ignored.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.bumpMap = null;\n\n\t\t/**\n\t\t * How much the bump map affects the material. Typical range is `[0,1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.bumpScale = 1;\n\n\t\t/**\n\t\t * The texture to create a normal map. The RGB values affect the surface\n\t\t * normal for each pixel fragment and change the way the color is lit. Normal\n\t\t * maps do not change the actual shape of the surface, only the lighting. In\n\t\t * case the material has a normal map authored using the left handed\n\t\t * convention, the `y` component of `normalScale` should be negated to compensate\n\t\t * for the different handedness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.normalMap = null;\n\n\t\t/**\n\t\t * The type of normal map.\n\t\t *\n\t\t * @type {(TangentSpaceNormalMap|ObjectSpaceNormalMap)}\n\t\t * @default TangentSpaceNormalMap\n\t\t */\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\n\t\t/**\n\t\t * How much the normal map affects the material. Typical value range is `[0,1]`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementBias = 0;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * WebGL and WebGPU ignore this property and always render\n\t\t * 1 pixel wide lines.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.wireframeLinewidth = 1;\n\n\t\t/**\n\t\t * Whether the material is rendered with flat shading or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\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\n/**\n * A material for non-shiny surfaces, without specular highlights.\n *\n * The material uses a non-physically based [Lambertian]{@link https://en.wikipedia.org/wiki/Lambertian_reflectance}\n * model for calculating reflectance. This can simulate some surfaces (such\n * as untreated wood or stone) well, but cannot simulate shiny surfaces with\n * specular highlights (such as varnished wood). `MeshLambertMaterial` uses per-fragment\n * shading.\n *\n * Due to the simplicity of the reflectance and illumination models,\n * performance will be greater when using this material over the\n * {@link MeshPhongMaterial}, {@link MeshStandardMaterial} or\n * {@link MeshPhysicalMaterial}, at the cost of some graphical accuracy.\n *\n * @augments Material\n */\nclass MeshLambertMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh lambert material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshLambertMaterial = true;\n\n\t\tthis.type = 'MeshLambertMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The light map. Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.lightMap = null;\n\n\t\t/**\n\t\t * Intensity of the baked light.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\t/**\n\t\t * The red channel of this texture is used as the ambient occlusion map.\n\t\t * Requires a second set of UVs.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.aoMap = null;\n\n\t\t/**\n\t\t * Intensity of the ambient occlusion effect. Range is `[0,1]`, where `0`\n\t\t * disables ambient occlusion. Where intensity is `1` and the AO map's\n\t\t * red channel is also `1`, ambient light is fully occluded on a surface.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\t/**\n\t\t * Emissive (light) color of the material, essentially a solid color\n\t\t * unaffected by other lighting.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.emissive = new Color( 0x000000 );\n\n\t\t/**\n\t\t * Intensity of the emissive light. Modulates the emissive color.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.emissiveIntensity = 1.0;\n\n\t\t/**\n\t\t * Set emissive (glow) map. The emissive map color is modulated by the\n\t\t * emissive color and the emissive intensity. If you have an emissive map,\n\t\t * be sure to set the emissive color to something other than black.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.emissiveMap = null;\n\n\t\t/**\n\t\t * The texture to create a bump map. The black and white values map to the\n\t\t * perceived depth in relation to the lights. Bump doesn't actually affect\n\t\t * the geometry of the object, only the lighting. If a normal map is defined\n\t\t * this will be ignored.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.bumpMap = null;\n\n\t\t/**\n\t\t * How much the bump map affects the material. Typical range is `[0,1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.bumpScale = 1;\n\n\t\t/**\n\t\t * The texture to create a normal map. The RGB values affect the surface\n\t\t * normal for each pixel fragment and change the way the color is lit. Normal\n\t\t * maps do not change the actual shape of the surface, only the lighting. In\n\t\t * case the material has a normal map authored using the left handed\n\t\t * convention, the `y` component of `normalScale` should be negated to compensate\n\t\t * for the different handedness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.normalMap = null;\n\n\t\t/**\n\t\t * The type of normal map.\n\t\t *\n\t\t * @type {(TangentSpaceNormalMap|ObjectSpaceNormalMap)}\n\t\t * @default TangentSpaceNormalMap\n\t\t */\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\n\t\t/**\n\t\t * How much the normal map affects the material. Typical value range is `[0,1]`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementBias = 0;\n\n\t\t/**\n\t\t * Specular map used by the material.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.specularMap = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * The environment map.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.envMap = null;\n\n\t\t/**\n\t\t * The rotation of the environment map in radians.\n\t\t *\n\t\t * @type {Euler}\n\t\t * @default (0,0,0)\n\t\t */\n\t\tthis.envMapRotation = new Euler();\n\n\t\t/**\n\t\t * How to combine the result of the surface's color with the environment map, if any.\n\t\t *\n\t\t * When set to `MixOperation`, the {@link MeshBasicMaterial#reflectivity} is used to\n\t\t * blend between the two colors.\n\t\t *\n\t\t * @type {(MultiplyOperation|MixOperation|AddOperation)}\n\t\t * @default MultiplyOperation\n\t\t */\n\t\tthis.combine = MultiplyOperation;\n\n\t\t/**\n\t\t * How much the environment map affects the surface.\n\t\t * The valid range is between `0` (no reflections) and `1` (full reflections).\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.reflectivity = 1;\n\n\t\t/**\n\t\t * The index of refraction (IOR) of air (approximately 1) divided by the\n\t\t * index of refraction of the material. It is used with environment mapping\n\t\t * modes {@link CubeRefractionMapping} and {@link EquirectangularRefractionMapping}.\n\t\t * The refraction ratio should not exceed `1`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.98\n\t\t */\n\t\tthis.refractionRatio = 0.98;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.wireframeLinewidth = 1;\n\n\t\t/**\n\t\t * Defines appearance of wireframe ends.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinecap = 'round';\n\n\t\t/**\n\t\t * Defines appearance of wireframe joints.\n\t\t *\n\t\t * Can only be used with {@link SVGRenderer}.\n\t\t *\n\t\t * @type {('round'|'bevel'|'miter')}\n\t\t * @default 'round'\n\t\t */\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\t/**\n\t\t * Whether the material is rendered with flat shading or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flatShading = false;\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * A material for drawing geometry by depth. Depth is based off of the camera\n * near and far plane. White is nearest, black is farthest.\n *\n * @augments Material\n */\nclass MeshDepthMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh depth material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshDepthMaterial = true;\n\n\t\tthis.type = 'MeshDepthMaterial';\n\n\t\t/**\n\t\t * Type for depth packing.\n\t\t *\n\t\t * @type {(BasicDepthPacking|RGBADepthPacking|RGBDepthPacking|RGDepthPacking)}\n\t\t * @default BasicDepthPacking\n\t\t */\n\t\tthis.depthPacking = BasicDepthPacking;\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementBias = 0;\n\n\t\t/**\n\t\t * Renders the geometry as a wireframe.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.wireframe = false;\n\n\t\t/**\n\t\t * Controls the thickness of the wireframe.\n\t\t *\n\t\t * WebGL and WebGPU ignore this property and always render\n\t\t * 1 pixel wide lines.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\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\n/**\n * A material used internally for implementing shadow mapping with\n * point lights.\n *\n * Can also be used to customize the shadow casting of an object by assigning\n * an instance of `MeshDistanceMaterial` to {@link Object3D#customDistanceMaterial}.\n * The following examples demonstrates this approach in order to ensure\n * transparent parts of objects do not cast shadows.\n *\n * @augments Material\n */\nclass MeshDistanceMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh distance material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshDistanceMaterial = true;\n\n\t\tthis.type = 'MeshDistanceMaterial';\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\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\n/**\n * This material is defined by a MatCap (or Lit Sphere) texture, which encodes the\n * material color and shading.\n *\n * `MeshMatcapMaterial` does not respond to lights since the matcap image file encodes\n * baked lighting. It will cast a shadow onto an object that receives shadows\n * (and shadow clipping works), but it will not self-shadow or receive\n * shadows.\n *\n * @augments Material\n */\nclass MeshMatcapMaterial extends Material {\n\n\t/**\n\t * Constructs a new mesh matcap material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isMeshMatcapMaterial = true;\n\n\t\tthis.defines = { 'MATCAP': '' };\n\n\t\tthis.type = 'MeshMatcapMaterial';\n\n\t\t/**\n\t\t * Color of the material.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default (1,1,1)\n\t\t */\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\t/**\n\t\t * The matcap map.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.matcap = null;\n\n\t\t/**\n\t\t * The color map. May optionally include an alpha channel, typically combined\n\t\t * with {@link Material#transparent} or {@link Material#alphaTest}. The texture map\n\t\t * color is modulated by the diffuse `color`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The texture to create a bump map. The black and white values map to the\n\t\t * perceived depth in relation to the lights. Bump doesn't actually affect\n\t\t * the geometry of the object, only the lighting. If a normal map is defined\n\t\t * this will be ignored.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.bumpMap = null;\n\n\t\t/**\n\t\t * How much the bump map affects the material. Typical range is `[0,1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.bumpScale = 1;\n\n\t\t/**\n\t\t * The texture to create a normal map. The RGB values affect the surface\n\t\t * normal for each pixel fragment and change the way the color is lit. Normal\n\t\t * maps do not change the actual shape of the surface, only the lighting. In\n\t\t * case the material has a normal map authored using the left handed\n\t\t * convention, the `y` component of `normalScale` should be negated to compensate\n\t\t * for the different handedness.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.normalMap = null;\n\n\t\t/**\n\t\t * The type of normal map.\n\t\t *\n\t\t * @type {(TangentSpaceNormalMap|ObjectSpaceNormalMap)}\n\t\t * @default TangentSpaceNormalMap\n\t\t */\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\n\t\t/**\n\t\t * How much the normal map affects the material. Typical value range is `[0,1]`.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (1,1)\n\t\t */\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\t/**\n\t\t * The displacement map affects the position of the mesh's vertices. Unlike\n\t\t * other maps which only affect the light and shade of the material the\n\t\t * displaced vertices can cast shadows, block other objects, and otherwise\n\t\t * act as real geometry. The displacement texture is an image where the value\n\t\t * of each pixel (white being the highest) is mapped against, and\n\t\t * repositions, the vertices of the mesh.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.displacementMap = null;\n\n\t\t/**\n\t\t * How much the displacement map affects the mesh (where black is no\n\t\t * displacement, and white is maximum displacement). Without a displacement\n\t\t * map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementScale = 1;\n\n\t\t/**\n\t\t * The offset of the displacement map's values on the mesh's vertices.\n\t\t * The bias is added to the scaled sample of the displacement map.\n\t\t * Without a displacement map set, this value is not applied.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.displacementBias = 0;\n\n\t\t/**\n\t\t * The alpha map is a grayscale texture that controls the opacity across the\n\t\t * surface (black: fully transparent; white: fully opaque).\n\t\t *\n\t\t * Only the color of the texture is used, ignoring the alpha channel if one\n\t\t * exists. For RGB and RGBA textures, the renderer will use the green channel\n\t\t * when sampling this texture due to the extra bit of precision provided for\n\t\t * green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and\n\t\t * luminance/alpha textures will also still work as expected.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.alphaMap = null;\n\n\t\t/**\n\t\t * Whether the material is rendered with flat shading or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.flatShading = false;\n\n\t\t/**\n\t\t * Whether the material is affected by fog or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\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\n/**\n * A material for rendering line primitives.\n *\n * Materials define the appearance of renderable 3D objects.\n *\n * ```js\n * const material = new THREE.LineDashedMaterial( {\n * \tcolor: 0xffffff,\n * \tscale: 1,\n * \tdashSize: 3,\n * \tgapSize: 1,\n * } );\n * ```\n *\n * @augments LineBasicMaterial\n */\nclass LineDashedMaterial extends LineBasicMaterial {\n\n\t/**\n\t * Constructs a new line dashed material.\n\t *\n\t * @param {Object} [parameters] - An object with one or more properties\n\t * defining the material's appearance. Any property of the material\n\t * (including any property from inherited materials) can be passed\n\t * in here. Color values can be passed any type of value accepted\n\t * by {@link Color#set}.\n\t */\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLineDashedMaterial = true;\n\t\tthis.type = 'LineDashedMaterial';\n\n\t\t/**\n\t\t * The scale of the dashed part of a line.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.scale = 1;\n\n\t\t/**\n\t\t * The size of the dash. This is both the gap with the stroke.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 3\n\t\t */\n\t\tthis.dashSize = 3;\n\n\t\t/**\n\t\t * The size of the gap.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\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/**\n * Converts an array to a specific type.\n *\n * @param {TypedArray|Array} array - The array to convert.\n * @param {TypedArray.constructor} type - The constructor of a typed array that defines the new type.\n * @return {TypedArray} The converted array.\n */\nfunction convertArray( array, type ) {\n\n\tif ( ! array || 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\n/**\n * Returns `true` if the given object is a typed array.\n *\n * @param {any} object - The object to check.\n * @return {boolean} Whether the given object is a typed array.\n */\nfunction isTypedArray( object ) {\n\n\treturn ArrayBuffer.isView( object ) && ! ( object instanceof DataView );\n\n}\n\n/**\n * Returns an array by which times and values can be sorted.\n *\n * @param {Array} times - The keyframe time values.\n * @return {Array} The array.\n */\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/**\n * Sorts the given array by the previously computed order via `getKeyframeOrder()`.\n *\n * @param {Array} values - The values to sort.\n * @param {number} stride - The stride.\n * @param {Array} order - The sort order.\n * @return {Array} The sorted values.\n */\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/**\n * Used for parsing AOS keyframe formats.\n *\n * @param {Array} jsonKeys - A list of JSON keyframes.\n * @param {Array} times - This array will be filled with keyframe times by this function.\n * @param {Array} values - This array will be filled with keyframe values by this function.\n * @param {string} valuePropertyName - The name of the property to use.\n */\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( ...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\n/**\n * Creates a new clip, containing only the segment of the original clip between the given frames.\n *\n * @param {AnimationClip} sourceClip - The values to sort.\n * @param {string} name - The name of the clip.\n * @param {number} startFrame - The start frame.\n * @param {number} endFrame - The end frame.\n * @param {number} [fps=30] - The FPS.\n * @return {AnimationClip} The new sub clip.\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\n/**\n * Converts the keyframes of the given animation clip to an additive format.\n *\n * @param {AnimationClip} targetClip - The clip to make additive.\n * @param {number} [referenceFrame=0] - The reference frame.\n * @param {AnimationClip} [referenceClip=targetClip] - The reference clip.\n * @param {number} [fps=30] - The FPS.\n * @return {AnimationClip} The updated clip which is now additive.\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\n/**\n * A class with various methods to assist with animations.\n *\n * @hideconstructor\n */\nclass AnimationUtils {\n\n\t/**\n\t * Converts an array to a specific type\n\t *\n\t * @static\n\t * @param {TypedArray|Array} array - The array to convert.\n\t * @param {TypedArray.constructor} type - The constructor of a type array.\n\t * @return {TypedArray} The converted array\n\t */\n\tstatic convertArray( array, type ) {\n\n\t\treturn convertArray( array, type );\n\n\t}\n\n\t/**\n\t * Returns `true` if the given object is a typed array.\n\t *\n\t * @static\n\t * @param {any} object - The object to check.\n\t * @return {boolean} Whether the given object is a typed array.\n\t */\n\tstatic isTypedArray( object ) {\n\n\t\treturn isTypedArray( object );\n\n\t}\n\n\t/**\n\t * Returns an array by which times and values can be sorted.\n\t *\n\t * @static\n\t * @param {Array} times - The keyframe time values.\n\t * @return {Array} The array.\n\t */\n\tstatic getKeyframeOrder( times ) {\n\n\t\treturn getKeyframeOrder( times );\n\n\t}\n\n\t/**\n\t * Sorts the given array by the previously computed order via `getKeyframeOrder()`.\n\t *\n\t * @static\n\t * @param {Array} values - The values to sort.\n\t * @param {number} stride - The stride.\n\t * @param {Array} order - The sort order.\n\t * @return {Array} The sorted values.\n\t */\n\tstatic sortedArray( values, stride, order ) {\n\n\t\treturn sortedArray( values, stride, order );\n\n\t}\n\n\t/**\n\t * Used for parsing AOS keyframe formats.\n\t *\n\t * @static\n\t * @param {Array} jsonKeys - A list of JSON keyframes.\n\t * @param {Array} times - This array will be filled with keyframe times by this method.\n\t * @param {Array} values - This array will be filled with keyframe values by this method.\n\t * @param {string} valuePropertyName - The name of the property to use.\n\t */\n\tstatic flattenJSON( jsonKeys, times, values, valuePropertyName ) {\n\n\t\tflattenJSON( jsonKeys, times, values, valuePropertyName );\n\n\t}\n\n\t/**\n\t * Creates a new clip, containing only the segment of the original clip between the given frames.\n\t *\n\t * @static\n\t * @param {AnimationClip} sourceClip - The values to sort.\n\t * @param {string} name - The name of the clip.\n\t * @param {number} startFrame - The start frame.\n\t * @param {number} endFrame - The end frame.\n\t * @param {number} [fps=30] - The FPS.\n\t * @return {AnimationClip} The new sub clip.\n\t */\n\tstatic subclip( sourceClip, name, startFrame, endFrame, fps = 30 ) {\n\n\t\treturn subclip( sourceClip, name, startFrame, endFrame, fps );\n\n\t}\n\n\t/**\n\t * Converts the keyframes of the given animation clip to an additive format.\n\t *\n\t * @static\n\t * @param {AnimationClip} targetClip - The clip to make additive.\n\t * @param {number} [referenceFrame=0] - The reference frame.\n\t * @param {AnimationClip} [referenceClip=targetClip] - The reference clip.\n\t * @param {number} [fps=30] - The FPS.\n\t * @return {AnimationClip} The updated clip which is now additive.\n\t */\n\tstatic makeClipAdditive( targetClip, referenceFrame = 0, referenceClip = targetClip, fps = 30 ) {\n\n\t\treturn makeClipAdditive( targetClip, referenceFrame, referenceClip, fps );\n\n\t}\n\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: {@link http://www.oodesign.com/template-method-pattern.html}\n *\n * @abstract\n */\nclass Interpolant {\n\n\t/**\n\t * Constructs a new interpolant.\n\t *\n\t * @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.\n\t * @param {TypedArray} sampleValues - The sample values.\n\t * @param {number} sampleSize - The sample size\n\t * @param {TypedArray} [resultBuffer] - The result buffer.\n\t */\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\t/**\n\t\t * The parameter positions.\n\t\t *\n\t\t * @type {TypedArray}\n\t\t */\n\t\tthis.parameterPositions = parameterPositions;\n\n\t\t/**\n\t\t * A cache index.\n\t\t *\n\t\t * @private\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis._cachedIndex = 0;\n\n\t\t/**\n\t\t * The result buffer.\n\t\t *\n\t\t * @type {TypedArray}\n\t\t */\n\t\tthis.resultBuffer = resultBuffer !== undefined ? resultBuffer : new sampleValues.constructor( sampleSize );\n\n\t\t/**\n\t\t * The sample values.\n\t\t *\n\t\t * @type {TypedArray}\n\t\t */\n\t\tthis.sampleValues = sampleValues;\n\n\t\t/**\n\t\t * The value size.\n\t\t *\n\t\t * @type {TypedArray}\n\t\t */\n\t\tthis.valueSize = sampleSize;\n\n\t\t/**\n\t\t * The interpolation settings.\n\t\t *\n\t\t * @type {?Object}\n\t\t * @default null\n\t\t */\n\t\tthis.settings = null;\n\n\t\t/**\n\t\t * The default settings object.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.DefaultSettings_ = {};\n\n\t}\n\n\t/**\n\t * Evaluate the interpolant at position `t`.\n\t *\n\t * @param {number} t - The interpolation factor.\n\t * @return {TypedArray} The result buffer.\n\t */\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\t/**\n\t * Returns the interpolation settings.\n\t *\n\t * @return {Object} The interpolation settings.\n\t */\n\tgetSettings_() {\n\n\t\treturn this.settings || this.DefaultSettings_;\n\n\t}\n\n\t/**\n\t * Copies a sample value to the result buffer.\n\t *\n\t * @param {number} index - An index into the sample value buffer.\n\t * @return {TypedArray} The result buffer.\n\t */\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/**\n\t * Copies a sample value to the result buffer.\n\t *\n\t * @abstract\n\t * @param {number} i1 - An index into the sample value buffer.\n\t * @param {number} t0 - The previous interpolation factor.\n\t * @param {number} t - The current interpolation factor.\n\t * @param {number} t1 - The next interpolation factor.\n\t * @return {TypedArray} The result buffer.\n\t */\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\t/**\n\t * Optional method that is executed when the interval has changed.\n\t *\n\t * @param {number} i1 - An index into the sample value buffer.\n\t * @param {number} t0 - The previous interpolation factor.\n\t * @param {number} t - The current interpolation factor.\n\t */\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 * @augments Interpolant\n */\nclass CubicInterpolant extends Interpolant {\n\n\t/**\n\t * Constructs a new cubic interpolant.\n\t *\n\t * @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.\n\t * @param {TypedArray} sampleValues - The sample values.\n\t * @param {number} sampleSize - The sample size\n\t * @param {TypedArray} [resultBuffer] - The result buffer.\n\t */\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\n/**\n * A basic linear interpolant.\n *\n * @augments Interpolant\n */\nclass LinearInterpolant extends Interpolant {\n\n\t/**\n\t * Constructs a new linear interpolant.\n\t *\n\t * @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.\n\t * @param {TypedArray} sampleValues - The sample values.\n\t * @param {number} sampleSize - The sample size\n\t * @param {TypedArray} [resultBuffer] - The result buffer.\n\t */\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 * Interpolant that evaluates to the sample value at the position preceding\n * the parameter.\n *\n * @augments Interpolant\n */\nclass DiscreteInterpolant extends Interpolant {\n\n\t/**\n\t * Constructs a new discrete interpolant.\n\t *\n\t * @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.\n\t * @param {TypedArray} sampleValues - The sample values.\n\t * @param {number} sampleSize - The sample size\n\t * @param {TypedArray} [resultBuffer] - The result buffer.\n\t */\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\n/**\n * Represents s a timed sequence of keyframes, which are composed of lists of\n * times and related values, and which are used to animate a specific property\n * of an object.\n */\nclass KeyframeTrack {\n\n\t/**\n\t * Constructs a new keyframe track.\n\t *\n\t * @param {string} name - The keyframe track's name.\n\t * @param {Array} times - A list of keyframe times.\n\t * @param {Array} values - A list of keyframe values.\n\t * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.\n\t */\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\t/**\n\t\t * The track's name can refer to morph targets or bones or\n\t\t * possibly other values within an animated object. See {@link PropertyBinding#parseTrackName}\n\t\t * for the forms of strings that can be parsed for property binding.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = name;\n\n\t\t/**\n\t\t * The keyframe times.\n\t\t *\n\t\t * @type {Float32Array}\n\t\t */\n\t\tthis.times = convertArray( times, this.TimeBufferType );\n\n\t\t/**\n\t\t * The keyframe values.\n\t\t *\n\t\t * @type {Float32Array}\n\t\t */\n\t\tthis.values = convertArray( values, this.ValueBufferType );\n\n\t\tthis.setInterpolation( interpolation || this.DefaultInterpolation );\n\n\t}\n\n\t/**\n\t * Converts the keyframe track to JSON.\n\t *\n\t * @static\n\t * @param {KeyframeTrack} track - The keyframe track to serialize.\n\t * @return {Object} The serialized keyframe track as JSON.\n\t */\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\t/**\n\t * Factory method for creating a new discrete interpolant.\n\t *\n\t * @static\n\t * @param {TypedArray} [result] - The result buffer.\n\t * @return {DiscreteInterpolant} The new interpolant.\n\t */\n\tInterpolantFactoryMethodDiscrete( result ) {\n\n\t\treturn new DiscreteInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\t/**\n\t * Factory method for creating a new linear interpolant.\n\t *\n\t * @static\n\t * @param {TypedArray} [result] - The result buffer.\n\t * @return {LinearInterpolant} The new interpolant.\n\t */\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new LinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\t/**\n\t * Factory method for creating a new smooth interpolant.\n\t *\n\t * @static\n\t * @param {TypedArray} [result] - The result buffer.\n\t * @return {CubicInterpolant} The new interpolant.\n\t */\n\tInterpolantFactoryMethodSmooth( result ) {\n\n\t\treturn new CubicInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\t/**\n\t * Defines the interpolation factor method for this keyframe track.\n\t *\n\t * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} interpolation - The interpolation type.\n\t * @return {KeyframeTrack} A reference to this keyframe track.\n\t */\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\t/**\n\t * Returns the current interpolation type.\n\t *\n\t * @return {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} The interpolation type.\n\t */\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\t/**\n\t * Returns the value size.\n\t *\n\t * @return {number} The value size.\n\t */\n\tgetValueSize() {\n\n\t\treturn this.values.length / this.times.length;\n\n\t}\n\n\t/**\n\t * Moves all keyframes either forward or backward in time.\n\t *\n\t * @param {number} timeOffset - The offset to move the time values.\n\t * @return {KeyframeTrack} A reference to this keyframe track.\n\t */\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/**\n\t * Scale all keyframe times by a factor (useful for frame - seconds conversions).\n\t *\n\t * @param {number} timeScale - The time scale.\n\t * @return {KeyframeTrack} A reference to this keyframe track.\n\t */\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/**\n\t * Removes keyframes before and after animation without changing any values within the defined time range.\n\t *\n\t * Note: The method does not shift around keys to the start of the track time, because for interpolated\n\t * keys this will change their values\n\t *\n\t * @param {number} startTime - The start time.\n\t * @param {number} endTime - The end time.\n\t * @return {KeyframeTrack} A reference to this keyframe track.\n\t */\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/**\n\t * Performs minimal validation on the keyframe track. Returns `true` if the values\n\t * are valid.\n\t *\n\t * @return {boolean} Whether the keyframes are valid or not.\n\t */\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/**\n\t * Optimizes this keyframe track by removing equivalent sequential keys (which are\n\t * common in morph target sequences).\n\t *\n\t * @return {AnimationClip} A reference to this animation clip.\n\t */\n\toptimize() {\n\n\t\t// (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0)\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\t/**\n\t * Returns a new keyframe track with copied values from this instance.\n\t *\n\t * @return {KeyframeTrack} A clone of this instance.\n\t */\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\n/**\n * The value type name.\n *\n * @type {String}\n * @default ''\n */\nKeyframeTrack.prototype.ValueTypeName = '';\n\n/**\n * The time buffer type of this keyframe track.\n *\n * @type {TypedArray|Array}\n * @default Float32Array.constructor\n */\nKeyframeTrack.prototype.TimeBufferType = Float32Array;\n\n/**\n * The value buffer type of this keyframe track.\n *\n * @type {TypedArray|Array}\n * @default Float32Array.constructor\n */\nKeyframeTrack.prototype.ValueBufferType = Float32Array;\n\n/**\n * The default interpolation type of this keyframe track.\n *\n * @type {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)}\n * @default InterpolateLinear\n */\nKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;\n\n/**\n * A track for boolean keyframe values.\n *\n * @augments KeyframeTrack\n */\nclass BooleanKeyframeTrack extends KeyframeTrack {\n\n\t/**\n\t * Constructs a new boolean keyframe track.\n\t *\n\t * This keyframe track type has no `interpolation` parameter because the\n\t * interpolation is always discrete.\n\t *\n\t * @param {string} name - The keyframe track's name.\n\t * @param {Array} times - A list of keyframe times.\n\t * @param {Array} values - A list of keyframe values.\n\t */\n\tconstructor( name, times, values ) {\n\n\t\tsuper( name, times, values );\n\n\t}\n\n}\n\n/**\n * The value type name.\n *\n * @type {String}\n * @default 'bool'\n */\nBooleanKeyframeTrack.prototype.ValueTypeName = 'bool';\n\n/**\n * The value buffer type of this keyframe track.\n *\n * @type {TypedArray|Array}\n * @default Array.constructor\n */\nBooleanKeyframeTrack.prototype.ValueBufferType = Array;\n\n/**\n * The default interpolation type of this keyframe track.\n *\n * @type {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)}\n * @default InterpolateDiscrete\n */\nBooleanKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A track for color keyframe values.\n *\n * @augments KeyframeTrack\n */\nclass ColorKeyframeTrack extends KeyframeTrack {\n\n\t/**\n\t * Constructs a new color keyframe track.\n\t *\n\t * @param {string} name - The keyframe track's name.\n\t * @param {Array} times - A list of keyframe times.\n\t * @param {Array} values - A list of keyframe values.\n\t * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.\n\t */\n\tconstructor( name, times, values, interpolation ) {\n\n\t\tsuper( name, times, values, interpolation );\n\n\t}\n\n}\n\n/**\n * The value type name.\n *\n * @type {String}\n * @default 'color'\n */\nColorKeyframeTrack.prototype.ValueTypeName = 'color';\n\n/**\n * A track for numeric keyframe values.\n *\n * @augments KeyframeTrack\n */\nclass NumberKeyframeTrack extends KeyframeTrack {\n\n\t/**\n\t * Constructs a new number keyframe track.\n\t *\n\t * @param {string} name - The keyframe track's name.\n\t * @param {Array} times - A list of keyframe times.\n\t * @param {Array} values - A list of keyframe values.\n\t * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.\n\t */\n\tconstructor( name, times, values, interpolation ) {\n\n\t\tsuper( name, times, values, interpolation );\n\n\t}\n\n}\n\n/**\n * The value type name.\n *\n * @type {String}\n * @default 'number'\n */\nNumberKeyframeTrack.prototype.ValueTypeName = 'number';\n\n/**\n * Spherical linear unit quaternion interpolant.\n *\n * @augments Interpolant\n */\nclass QuaternionLinearInterpolant extends Interpolant {\n\n\t/**\n\t * Constructs a new SLERP interpolant.\n\t *\n\t * @param {TypedArray} parameterPositions - The parameter positions hold the interpolation factors.\n\t * @param {TypedArray} sampleValues - The sample values.\n\t * @param {number} sampleSize - The sample size\n\t * @param {TypedArray} [resultBuffer] - The result buffer.\n\t */\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 for Quaternion keyframe values.\n *\n * @augments KeyframeTrack\n */\nclass QuaternionKeyframeTrack extends KeyframeTrack {\n\n\t/**\n\t * Constructs a new Quaternion keyframe track.\n\t *\n\t * @param {string} name - The keyframe track's name.\n\t * @param {Array} times - A list of keyframe times.\n\t * @param {Array} values - A list of keyframe values.\n\t * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.\n\t */\n\tconstructor( name, times, values, interpolation ) {\n\n\t\tsuper( name, times, values, interpolation );\n\n\t}\n\n\t/**\n\t * Overwritten so the method returns Quaternion based interpolant.\n\t *\n\t * @static\n\t * @param {TypedArray} [result] - The result buffer.\n\t * @return {QuaternionLinearInterpolant} The new interpolant.\n\t */\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new QuaternionLinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n}\n\n/**\n * The value type name.\n *\n * @type {String}\n * @default 'quaternion'\n */\nQuaternionKeyframeTrack.prototype.ValueTypeName = 'quaternion';\n// ValueBufferType is inherited\n// DefaultInterpolation is inherited;\nQuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A track for string keyframe values.\n *\n * @augments KeyframeTrack\n */\nclass StringKeyframeTrack extends KeyframeTrack {\n\n\t/**\n\t * Constructs a new string keyframe track.\n\t *\n\t * This keyframe track type has no `interpolation` parameter because the\n\t * interpolation is always discrete.\n\t *\n\t * @param {string} name - The keyframe track's name.\n\t * @param {Array} times - A list of keyframe times.\n\t * @param {Array} values - A list of keyframe values.\n\t */\n\tconstructor( name, times, values ) {\n\n\t\tsuper( name, times, values );\n\n\t}\n\n}\n\n/**\n * The value type name.\n *\n * @type {String}\n * @default 'string'\n */\nStringKeyframeTrack.prototype.ValueTypeName = 'string';\n\n/**\n * The value buffer type of this keyframe track.\n *\n * @type {TypedArray|Array}\n * @default Array.constructor\n */\nStringKeyframeTrack.prototype.ValueBufferType = Array;\n\n/**\n * The default interpolation type of this keyframe track.\n *\n * @type {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)}\n * @default InterpolateDiscrete\n */\nStringKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A track for vector keyframe values.\n *\n * @augments KeyframeTrack\n */\nclass VectorKeyframeTrack extends KeyframeTrack {\n\n\t/**\n\t * Constructs a new vector keyframe track.\n\t *\n\t * @param {string} name - The keyframe track's name.\n\t * @param {Array} times - A list of keyframe times.\n\t * @param {Array} values - A list of keyframe values.\n\t * @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.\n\t */\n\tconstructor( name, times, values, interpolation ) {\n\n\t\tsuper( name, times, values, interpolation );\n\n\t}\n\n}\n\n/**\n * The value type name.\n *\n * @type {String}\n * @default 'vector'\n */\nVectorKeyframeTrack.prototype.ValueTypeName = 'vector';\n\n/**\n * A reusable set of keyframe tracks which represent an animation.\n */\nclass AnimationClip {\n\n\t/**\n\t * Constructs a new animation clip.\n\t *\n\t * Note: Instead of instantiating an AnimationClip directly with the constructor, you can\n\t * use the static interface of this class for creating clips. In most cases though, animation clips\n\t * will automatically be created by loaders when importing animated 3D assets.\n\t *\n\t * @param {string} [name=''] - The clip's name.\n\t * @param {number} [duration=-1] - The clip's duration in seconds. If a negative value is passed,\n\t * the duration will be calculated from the passed keyframes.\n\t * @param {Array} tracks - An array of keyframe tracks.\n\t * @param {(NormalAnimationBlendMode|AdditiveAnimationBlendMode)} [blendMode=NormalAnimationBlendMode] - Defines how the animation\n\t * is blended/combined when two or more animations are simultaneously played.\n\t */\n\tconstructor( name = '', duration = -1, tracks = [], blendMode = NormalAnimationBlendMode ) {\n\n\t\t/**\n\t\t * The clip's name.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = name;\n\n\t\t/**\n\t\t * An array of keyframe tracks.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.tracks = tracks;\n\n\t\t/**\n\t\t * The clip's duration in seconds.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.duration = duration;\n\n\t\t/**\n\t\t * Defines how the animation is blended/combined when two or more animations\n\t\t * are simultaneously played.\n\t\t *\n\t\t * @type {(NormalAnimationBlendMode|AdditiveAnimationBlendMode)}\n\t\t */\n\t\tthis.blendMode = blendMode;\n\n\t\t/**\n\t\t * The UUID of the animation clip.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.uuid = generateUUID();\n\n\t\t/**\n\t\t * An object that can be used to store custom data about the animation clip.\n\t\t * It should not hold references to functions as these will not be cloned.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.userData = {};\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\t/**\n\t * Factory method for creating an animation clip from the given JSON.\n\t *\n\t * @static\n\t * @param {Object} json - The serialized animation clip.\n\t * @return {AnimationClip} The new animation clip.\n\t */\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\tclip.userData = JSON.parse( json.userData || '{}' );\n\n\t\treturn clip;\n\n\t}\n\n\t/**\n\t * Serializes the given animation clip into JSON.\n\t *\n\t * @static\n\t * @param {AnimationClip} clip - The animation clip to serialize.\n\t * @return {Object} The JSON object.\n\t */\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\t\t\t'userData': JSON.stringify( clip.userData ),\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\t/**\n\t * Returns a new animation clip from the passed morph targets array of a\n\t * geometry, taking a name and the number of frames per second.\n\t *\n\t * Note: The fps parameter is required, but the animation speed can be\n\t * overridden via {@link AnimationAction#setDuration}.\n\t *\n\t * @static\n\t * @param {string} name - The name of the animation clip.\n\t * @param {Array} morphTargetSequence - A sequence of morph targets.\n\t * @param {number} fps - The Frames-Per-Second value.\n\t * @param {boolean} noLoop - Whether the clip should be no loop or not.\n\t * @return {AnimationClip} The new animation clip.\n\t */\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\t/**\n\t * Searches for an animation clip by name, taking as its first parameter\n\t * either an array of clips, or a mesh or geometry that contains an\n\t * array named \"animations\" property.\n\t *\n\t * @static\n\t * @param {(Array|Object3D)} objectOrClipArray - The array or object to search through.\n\t * @param {string} name - The name to search for.\n\t * @return {?AnimationClip} The found animation clip. Returns `null` if no clip has been found.\n\t */\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\t/**\n\t * Returns an array of new AnimationClips created from the morph target\n\t * sequences of a geometry, trying to sort morph target names into\n\t * animation-group-based patterns like \"Walk_001, Walk_002, Run_001, Run_002...\".\n\t *\n\t * See {@link MD2Loader#parse} as an example for how the method should be used.\n\t *\n\t * @static\n\t * @param {Array} morphTargets - A sequence of morph targets.\n\t * @param {number} fps - The Frames-Per-Second value.\n\t * @param {boolean} noLoop - Whether the clip should be no loop or not.\n\t * @return {Array} An array of new animation clips.\n\t */\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/**\n\t * Parses the `animation.hierarchy` format and returns a new animation clip.\n\t *\n\t * @static\n\t * @deprecated since r175.\n\t * @param {Object} animation - A serialized animation clip as JSON.\n\t * @param {Array} bones - An array of bones.\n\t * @return {?AnimationClip} The new animation clip.\n\t */\n\tstatic parseAnimation( animation, bones ) {\n\n\t\tconsole.warn( 'THREE.AnimationClip: parseAnimation() is deprecated and will be removed with r185' );\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\t/**\n\t * Sets the duration of this clip to the duration of its longest keyframe track.\n\t *\n\t * @return {AnimationClip} A reference to this animation clip.\n\t */\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\t/**\n\t * Trims all tracks to the clip's duration.\n\t *\n\t * @return {AnimationClip} A reference to this animation clip.\n\t */\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\t/**\n\t * Performs minimal validation on each track in the clip. Returns `true` if all\n\t * tracks are valid.\n\t *\n\t * @return {boolean} Whether the clip's keyframes are valid or not.\n\t */\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\t/**\n\t * Optimizes each track by removing equivalent sequential keys (which are\n\t * common in morph target sequences).\n\t *\n\t * @return {AnimationClip} A reference to this animation clip.\n\t */\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\t/**\n\t * Returns a new animation clip with copied values from this instance.\n\t *\n\t * @return {AnimationClip} A clone of this instance.\n\t */\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\tconst clip = new this.constructor( this.name, this.duration, tracks, this.blendMode );\n\n\t\tclip.userData = JSON.parse( JSON.stringify( this.userData ) );\n\n\t\treturn clip;\n\n\t}\n\n\t/**\n\t * Serializes this animation clip into JSON.\n\t *\n\t * @return {Object} The JSON object.\n\t */\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\n/**\n * @class\n * @classdesc A simple caching system, used internally by {@link FileLoader}.\n * To enable caching across all loaders that use {@link FileLoader}, add `THREE.Cache.enabled = true.` once in your app.\n * @hideconstructor\n */\nconst Cache = {\n\n\t/**\n\t * Whether caching is enabled or not.\n\t *\n\t * @static\n\t * @type {boolean}\n\t * @default false\n\t */\n\tenabled: false,\n\n\t/**\n\t * A dictionary that holds cached files.\n\t *\n\t * @static\n\t * @type {Object}\n\t */\n\tfiles: {},\n\n\t/**\n\t * Adds a cache entry with a key to reference the file. If this key already\n\t * holds a file, it is overwritten.\n\t *\n\t * @static\n\t * @param {string} key - The key to reference the cached file.\n\t * @param {Object} file - The file to be cached.\n\t */\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\t/**\n\t * Gets the cached value for the given key.\n\t *\n\t * @static\n\t * @param {string} key - The key to reference the cached file.\n\t * @return {Object|undefined} The cached file. If the key does not exist `undefined` is returned.\n\t */\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\t/**\n\t * Removes the cached file associated with the given key.\n\t *\n\t * @static\n\t * @param {string} key - The key to reference the cached file.\n\t */\n\tremove: function ( key ) {\n\n\t\tdelete this.files[ key ];\n\n\t},\n\n\t/**\n\t * Remove all values from the cache.\n\t *\n\t * @static\n\t */\n\tclear: function () {\n\n\t\tthis.files = {};\n\n\t}\n\n};\n\n/**\n * Handles and keeps track of loaded and pending data. A default global\n * instance of this class is created and used by loaders if not supplied\n * manually.\n *\n * In general that should be sufficient, however there are times when it can\n * be useful to have separate loaders - for example if you want to show\n * separate loading bars for objects and textures.\n *\n * ```js\n * const manager = new THREE.LoadingManager();\n * manager.onLoad = () => console.log( 'Loading complete!' );\n *\n * const loader1 = new OBJLoader( manager );\n * const loader2 = new ColladaLoader( manager );\n * ```\n */\nclass LoadingManager {\n\n\t/**\n\t * Constructs a new loading manager.\n\t *\n\t * @param {Function} [onLoad] - Executes when all items have been loaded.\n\t * @param {Function} [onProgress] - Executes when single items have been loaded.\n\t * @param {Function} [onError] - Executes when an error occurs.\n\t */\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\t/**\n\t\t * Executes when an item starts loading.\n\t\t *\n\t\t * @type {Function|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.onStart = undefined;\n\n\t\t/**\n\t\t * Executes when all items have been loaded.\n\t\t *\n\t\t * @type {Function|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.onLoad = onLoad;\n\n\t\t/**\n\t\t * Executes when single items have been loaded.\n\t\t *\n\t\t * @type {Function|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.onProgress = onProgress;\n\n\t\t/**\n\t\t * Executes when an error occurs.\n\t\t *\n\t\t * @type {Function|undefined}\n\t\t * @default undefined\n\t\t */\n\t\tthis.onError = onError;\n\n\t\t/**\n\t\t * Used for aborting ongoing requests in loaders using this manager.\n\t\t *\n\t\t * @type {AbortController}\n\t\t */\n\t\tthis.abortController = new AbortController();\n\n\t\t/**\n\t\t * This should be called by any loader using the manager when the loader\n\t\t * starts loading an item.\n\t\t *\n\t\t * @param {string} url - The URL to load.\n\t\t */\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\t/**\n\t\t * This should be called by any loader using the manager when the loader\n\t\t * ended loading an item.\n\t\t *\n\t\t * @param {string} url - The URL of the loaded item.\n\t\t */\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\t/**\n\t\t * This should be called by any loader using the manager when the loader\n\t\t * encounters an error when loading an item.\n\t\t *\n\t\t * @param {string} url - The URL of the item that produces an error.\n\t\t */\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\t/**\n\t\t * Given a URL, uses the URL modifier callback (if any) and returns a\n\t\t * resolved URL. If no URL modifier is set, returns the original URL.\n\t\t *\n\t\t * @param {string} url - The URL to load.\n\t\t * @return {string} The resolved URL.\n\t\t */\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\t/**\n\t\t * If provided, the callback will be passed each resource URL before a\n\t\t * request is sent. The callback may return the original URL, or a new URL to\n\t\t * override loading behavior. This behavior can be used to load assets from\n\t\t * .ZIP files, drag-and-drop APIs, and Data URIs.\n\t\t *\n\t\t * ```js\n\t\t * const blobs = {'fish.gltf': blob1, 'diffuse.png': blob2, 'normal.png': blob3};\n\t\t *\n\t\t * const manager = new THREE.LoadingManager();\n\t\t *\n\t\t * // Initialize loading manager with URL callback.\n\t\t * const objectURLs = [];\n\t\t * manager.setURLModifier( ( url ) => {\n\t\t *\n\t\t * \turl = URL.createObjectURL( blobs[ url ] );\n\t\t * \tobjectURLs.push( url );\n\t\t * \treturn url;\n\t\t *\n\t\t * } );\n\t\t *\n\t\t * // Load as usual, then revoke the blob URLs.\n\t\t * const loader = new GLTFLoader( manager );\n\t\t * loader.load( 'fish.gltf', (gltf) => {\n\t\t *\n\t\t * \tscene.add( gltf.scene );\n\t\t * \tobjectURLs.forEach( ( url ) => URL.revokeObjectURL( url ) );\n\t\t *\n\t\t * } );\n\t\t * ```\n\t\t *\n\t\t * @param {function(string):string} transform - URL modifier callback. Called with an URL and must return a resolved URL.\n\t\t * @return {LoadingManager} A reference to this loading manager.\n\t\t */\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\t/**\n\t\t * Registers a loader with the given regular expression. Can be used to\n\t\t * define what loader should be used in order to load specific files. A\n\t\t * typical use case is to overwrite the default loader for textures.\n\t\t *\n\t\t * ```js\n\t\t * // add handler for TGA textures\n\t\t * manager.addHandler( /\\.tga$/i, new TGALoader() );\n\t\t * ```\n\t\t *\n\t\t * @param {string} regex - A regular expression.\n\t\t * @param {Loader} loader - A loader that should handle matched cases.\n\t\t * @return {LoadingManager} A reference to this loading manager.\n\t\t */\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\t/**\n\t\t * Removes the loader for the given regular expression.\n\t\t *\n\t\t * @param {string} regex - A regular expression.\n\t\t * @return {LoadingManager} A reference to this loading manager.\n\t\t */\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\t/**\n\t\t * Can be used to retrieve the registered loader for the given file path.\n\t\t *\n\t\t * @param {string} file - The file path.\n\t\t * @return {?Loader} The registered loader. Returns `null` if no loader was found.\n\t\t */\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\t/**\n\t\t * Can be used to abort ongoing loading requests in loaders using this manager.\n\t\t * The abort only works if the loaders implement {@link Loader#abort} and `AbortSignal.any()`\n\t\t * is supported in the browser.\n\t\t *\n\t\t * @return {LoadingManager} A reference to this loading manager.\n\t\t */\n\t\tthis.abort = function () {\n\n\t\t\tthis.abortController.abort();\n\t\t\tthis.abortController = new AbortController();\n\n\t\t\treturn this;\n\n\t\t};\n\n\t}\n\n}\n\n/**\n * The global default loading manager.\n *\n * @constant\n * @type {LoadingManager}\n */\nconst DefaultLoadingManager = /*@__PURE__*/ new LoadingManager();\n\n/**\n * Abstract base class for loaders.\n *\n * @abstract\n */\nclass Loader {\n\n\t/**\n\t * Constructs a new loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\t/**\n\t\t * The loading manager.\n\t\t *\n\t\t * @type {LoadingManager}\n\t\t * @default DefaultLoadingManager\n\t\t */\n\t\tthis.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;\n\n\t\t/**\n\t\t * The crossOrigin string to implement CORS for loading the url from a\n\t\t * different domain that allows CORS.\n\t\t *\n\t\t * @type {string}\n\t\t * @default 'anonymous'\n\t\t */\n\t\tthis.crossOrigin = 'anonymous';\n\n\t\t/**\n\t\t * Whether the XMLHttpRequest uses credentials.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.withCredentials = false;\n\n\t\t/**\n\t\t * The base path from which the asset will be loaded.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.path = '';\n\n\t\t/**\n\t\t * The base path from which additional resources like textures will be loaded.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.resourcePath = '';\n\n\t\t/**\n\t\t * The [request header]{@link https://developer.mozilla.org/en-US/docs/Glossary/Request_header}\n\t\t * used in HTTP request.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.requestHeader = {};\n\n\t}\n\n\t/**\n\t * This method needs to be implemented by all concrete loaders. It holds the\n\t * logic for loading assets from the backend.\n\t *\n\t * @abstract\n\t * @param {string} url - The path/URL of the file to be loaded.\n\t * @param {Function} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} [onProgress] - Executed while the loading is in progress.\n\t * @param {onErrorCallback} [onError] - Executed when errors occur.\n\t */\n\tload( /* url, onLoad, onProgress, onError */ ) {}\n\n\t/**\n\t * A async version of {@link Loader#load}.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded.\n\t * @param {onProgressCallback} [onProgress] - Executed while the loading is in progress.\n\t * @return {Promise} A Promise that resolves when the asset has been loaded.\n\t */\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\t/**\n\t * This method needs to be implemented by all concrete loaders. It holds the\n\t * logic for parsing the asset into three.js entities.\n\t *\n\t * @abstract\n\t * @param {any} data - The data to parse.\n\t */\n\tparse( /* data */ ) {}\n\n\t/**\n\t * Sets the `crossOrigin` String to implement CORS for loading the URL\n\t * from a different domain that allows CORS.\n\t *\n\t * @param {string} crossOrigin - The `crossOrigin` value.\n\t * @return {Loader} A reference to this instance.\n\t */\n\tsetCrossOrigin( crossOrigin ) {\n\n\t\tthis.crossOrigin = crossOrigin;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Whether the XMLHttpRequest uses credentials such as cookies, authorization\n\t * headers or TLS client certificates, see [XMLHttpRequest.withCredentials]{@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials}.\n\t *\n\t * Note: This setting has no effect if you are loading files locally or from the same domain.\n\t *\n\t * @param {boolean} value - The `withCredentials` value.\n\t * @return {Loader} A reference to this instance.\n\t */\n\tsetWithCredentials( value ) {\n\n\t\tthis.withCredentials = value;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the base path for the asset.\n\t *\n\t * @param {string} path - The base path.\n\t * @return {Loader} A reference to this instance.\n\t */\n\tsetPath( path ) {\n\n\t\tthis.path = path;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the base path for dependent resources like textures.\n\t *\n\t * @param {string} resourcePath - The resource path.\n\t * @return {Loader} A reference to this instance.\n\t */\n\tsetResourcePath( resourcePath ) {\n\n\t\tthis.resourcePath = resourcePath;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the given request header.\n\t *\n\t * @param {Object} requestHeader - A [request header]{@link https://developer.mozilla.org/en-US/docs/Glossary/Request_header}\n\t * for configuring the HTTP request.\n\t * @return {Loader} A reference to this instance.\n\t */\n\tsetRequestHeader( requestHeader ) {\n\n\t\tthis.requestHeader = requestHeader;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * This method can be implemented in loaders for aborting ongoing requests.\n\t *\n\t * @abstract\n\t * @return {Loader} A reference to this instance.\n\t */\n\tabort() {\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * Callback for onProgress in loaders.\n *\n * @callback onProgressCallback\n * @param {ProgressEvent} event - An instance of `ProgressEvent` that represents the current loading status.\n */\n\n/**\n * Callback for onError in loaders.\n *\n * @callback onErrorCallback\n * @param {Error} error - The error which occurred during the loading process.\n */\n\n/**\n * The default material name that is used by loaders\n * when creating materials for loaded 3D objects.\n *\n * Note: Not all loaders might honor this setting.\n *\n * @static\n * @type {string}\n * @default '__DEFAULT'\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\n/**\n * A low level class for loading resources with the Fetch API, used internally by\n * most loaders. It can also be used directly to load any file type that does\n * not have a loader.\n *\n * This loader supports caching. If you want to use it, add `THREE.Cache.enabled = true;`\n * once to your application.\n *\n * ```js\n * const loader = new THREE.FileLoader();\n * const data = await loader.loadAsync( 'example.txt' );\n * ```\n *\n * @augments Loader\n */\nclass FileLoader extends Loader {\n\n\t/**\n\t * Constructs a new file loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\t/**\n\t\t * The expected mime type. Valid values can be found\n\t\t * [here]{@link hhttps://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#mimetype}\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.mimeType = '';\n\n\t\t/**\n\t\t * The expected response type.\n\t\t *\n\t\t * @type {('arraybuffer'|'blob'|'document'|'json'|'')}\n\t\t * @default ''\n\t\t */\n\t\tthis.responseType = '';\n\n\t\t/**\n\t\t * Used for aborting requests.\n\t\t *\n\t\t * @private\n\t\t * @type {AbortController}\n\t\t */\n\t\tthis._abortController = new AbortController();\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the loaded response to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(any)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} [onProgress] - Executed while the loading is in progress.\n\t * @param {onErrorCallback} [onError] - Executed when errors occur.\n\t * @return {any|undefined} The cached resource if available.\n\t */\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( `file:${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\tsignal: ( typeof AbortSignal.any === 'function' ) ? AbortSignal.any( [ this._abortController.signal, this.manager.abortController.signal ] ) : this._abortController.signal\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 === '' ) {\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( `file:${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\t/**\n\t * Sets the expected response type.\n\t *\n\t * @param {('arraybuffer'|'blob'|'document'|'json'|'')} value - The response type.\n\t * @return {FileLoader} A reference to this file loader.\n\t */\n\tsetResponseType( value ) {\n\n\t\tthis.responseType = value;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the expected mime type of the loaded file.\n\t *\n\t * @param {string} value - The mime type.\n\t * @return {FileLoader} A reference to this file loader.\n\t */\n\tsetMimeType( value ) {\n\n\t\tthis.mimeType = value;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Aborts ongoing fetch requests.\n\t *\n\t * @return {FileLoader} A reference to this instance.\n\t */\n\tabort() {\n\n\t\tthis._abortController.abort();\n\t\tthis._abortController = new AbortController();\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * Class for loading animation clips in the JSON format. The files are internally\n * loaded via {@link FileLoader}.\n *\n * ```js\n * const loader = new THREE.AnimationLoader();\n * const animations = await loader.loadAsync( 'animations/animation.js' );\n * ```\n *\n * @augments Loader\n */\nclass AnimationLoader extends Loader {\n\n\t/**\n\t * Constructs a new animation loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the loaded animations as an array\n\t * holding instances of {@link AnimationClip} to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(Array)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t */\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\t/**\n\t * Parses the given JSON object and returns an array of animation clips.\n\t *\n\t * @param {Object} json - The serialized animation clips.\n\t * @return {Array} The parsed animation clips.\n\t */\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 for loading compressed texture formats S3TC, ASTC or ETC.\n * Textures are internally loaded via {@link FileLoader}.\n *\n * Derived classes have to implement the `parse()` method which holds the parsing\n * for the respective format.\n *\n * @abstract\n * @augments Loader\n */\nclass CompressedTextureLoader extends Loader {\n\n\t/**\n\t * Constructs a new compressed texture loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and passes the loaded compressed texture\n\t * to the `onLoad()` callback. The method also returns a new texture object which can\n\t * directly be used for material creation. If you do it this way, the texture\n\t * may pop up in your scene once the respective loading process is finished.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(CompressedTexture)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t * @return {CompressedTexture} The compressed texture.\n\t */\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\nconst _loading = new WeakMap();\n\n/**\n * A loader for loading images. The class loads images with the HTML `Image` API.\n *\n * ```js\n * const loader = new THREE.ImageLoader();\n * const image = await loader.loadAsync( 'image.png' );\n * ```\n * Please note that `ImageLoader` has dropped support for progress\n * events in `r84`. For an `ImageLoader` that supports progress events, see\n * [this thread]{@link https://github.com/mrdoob/three.js/issues/10439#issuecomment-275785639}.\n *\n * @augments Loader\n */\nclass ImageLoader extends Loader {\n\n\t/**\n\t * Constructs a new image loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and passes the loaded image\n\t * to the `onLoad()` callback. The method also returns a new `Image` object which can\n\t * directly be used for texture creation. If you do it this way, the texture\n\t * may pop up in your scene once the respective loading process is finished.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(Image)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Unsupported in this loader.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t * @return {Image} The image.\n\t */\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( `image:${url}` );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tif ( cached.complete === true ) {\n\n\t\t\t\tscope.manager.itemStart( url );\n\n\t\t\t\tsetTimeout( function () {\n\n\t\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t\t}, 0 );\n\n\t\t\t} else {\n\n\t\t\t\tlet arr = _loading.get( cached );\n\n\t\t\t\tif ( arr === undefined ) {\n\n\t\t\t\t\tarr = [];\n\t\t\t\t\t_loading.set( cached, arr );\n\n\t\t\t\t}\n\n\t\t\t\tarr.push( { onLoad, onError } );\n\n\t\t\t}\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\tif ( onLoad ) onLoad( this );\n\n\t\t\t//\n\n\t\t\tconst callbacks = _loading.get( this ) || [];\n\n\t\t\tfor ( let i = 0; i < callbacks.length; i ++ ) {\n\n\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\tif ( callback.onLoad ) callback.onLoad( this );\n\n\t\t\t}\n\n\t\t\t_loading.delete( 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\tCache.remove( `image:${url}` );\n\n\t\t\t//\n\n\t\t\tconst callbacks = _loading.get( this ) || [];\n\n\t\t\tfor ( let i = 0; i < callbacks.length; i ++ ) {\n\n\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\tif ( callback.onError ) callback.onError( event );\n\n\t\t\t}\n\n\t\t\t_loading.delete( this );\n\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\tCache.add( `image:${url}`, image );\n\t\tscope.manager.itemStart( url );\n\n\t\timage.src = url;\n\n\t\treturn image;\n\n\t}\n\n}\n\n/**\n * Class for loading cube textures. Images are internally loaded via {@link ImageLoader}.\n *\n * The loader returns an instance of {@link CubeTexture} and expects the cube map to\n * be defined as six separate images representing the sides of a cube. Other cube map definitions\n * like vertical and horizontal cross, column and row layouts are not supported.\n *\n * Note that, by convention, cube maps are specified in a coordinate system\n * in which positive-x is to the right when looking up the positive-z axis --\n * in other words, using a left-handed coordinate system. Since three.js uses\n * a right-handed coordinate system, environment maps used in three.js will\n * have pos-x and neg-x swapped.\n *\n * The loaded cube texture is in sRGB color space. Meaning {@link Texture#colorSpace}\n * is set to `SRGBColorSpace` by default.\n *\n * ```js\n * const loader = new THREE.CubeTextureLoader().setPath( 'textures/cubeMaps/' );\n * const cubeTexture = await loader.loadAsync( [\n * \t'px.png', 'nx.png', 'py.png', 'ny.png', 'pz.png', 'nz.png'\n * ] );\n * scene.background = cubeTexture;\n * ```\n *\n * @augments Loader\n */\nclass CubeTextureLoader extends Loader {\n\n\t/**\n\t * Constructs a new cube texture loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the fully loaded cube texture\n\t * to the `onLoad()` callback. The method also returns a new cube texture object which can\n\t * directly be used for material creation. If you do it this way, the cube texture\n\t * may pop up in your scene once the respective loading process is finished.\n\t *\n\t * @param {Array} urls - Array of 6 URLs to images, one for each side of the\n\t * cube texture. The urls should be specified in the following order: pos-x,\n\t * neg-x, pos-y, neg-y, pos-z, neg-z. An array of data URIs are allowed as well.\n\t * @param {function(CubeTexture)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Unsupported in this loader.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t * @return {CubeTexture} The cube texture.\n\t */\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 for loading binary texture formats RGBE, EXR or TGA.\n * Textures are internally loaded via {@link FileLoader}.\n *\n * Derived classes have to implement the `parse()` method which holds the parsing\n * for the respective format.\n *\n * @abstract\n * @augments Loader\n */\nclass DataTextureLoader extends Loader {\n\n\t/**\n\t * Constructs a new data texture loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and passes the loaded data texture\n\t * to the `onLoad()` callback. The method also returns a new texture object which can\n\t * directly be used for material creation. If you do it this way, the texture\n\t * may pop up in your scene once the respective loading process is finished.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(DataTexture)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t * @return {DataTexture} The data texture.\n\t */\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\n/**\n * Class for loading textures. Images are internally\n * loaded via {@link ImageLoader}.\n *\n * ```js\n * const loader = new THREE.TextureLoader();\n * const texture = await loader.loadAsync( 'textures/land_ocean_ice_cloud_2048.jpg' );\n *\n * const material = new THREE.MeshBasicMaterial( { map:texture } );\n * ```\n * Please note that `TextureLoader` has dropped support for progress\n * events in `r84`. For a `TextureLoader` that supports progress events, see\n * [this thread]{@link https://github.com/mrdoob/three.js/issues/10439#issuecomment-293260145}.\n *\n * @augments Loader\n */\nclass TextureLoader extends Loader {\n\n\t/**\n\t * Constructs a new texture loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the fully loaded texture\n\t * to the `onLoad()` callback. The method also returns a new texture object which can\n\t * directly be used for material creation. If you do it this way, the texture\n\t * may pop up in your scene once the respective loading process is finished.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(Texture)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Unsupported in this loader.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t * @return {Texture} The texture.\n\t */\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\n/**\n * Abstract base class for lights - all other light types inherit the\n * properties and methods described here.\n *\n * @abstract\n * @augments Object3D\n */\nclass Light extends Object3D {\n\n\t/**\n\t * Constructs a new light.\n\t *\n\t * @param {(number|Color|string)} [color=0xffffff] - The light's color.\n\t * @param {number} [intensity=1] - The light's strength/intensity.\n\t */\n\tconstructor( color, intensity = 1 ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLight = true;\n\n\t\tthis.type = 'Light';\n\n\t\t/**\n\t\t * The light's color.\n\t\t *\n\t\t * @type {Color}\n\t\t */\n\t\tthis.color = new Color( color );\n\n\t\t/**\n\t\t * The light's intensity.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.intensity = intensity;\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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\n/**\n * A light source positioned directly above the scene, with color fading from\n * the sky color to the ground color.\n *\n * This light cannot be used to cast shadows.\n *\n * ```js\n * const light = new THREE.HemisphereLight( 0xffffbb, 0x080820, 1 );\n * scene.add( light );\n * ```\n *\n * @augments Light\n */\nclass HemisphereLight extends Light {\n\n\t/**\n\t * Constructs a new hemisphere light.\n\t *\n\t * @param {(number|Color|string)} [skyColor=0xffffff] - The light's sky color.\n\t * @param {(number|Color|string)} [groundColor=0xffffff] - The light's ground color.\n\t * @param {number} [intensity=1] - The light's strength/intensity.\n\t */\n\tconstructor( skyColor, groundColor, intensity ) {\n\n\t\tsuper( skyColor, intensity );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t\t * The light's ground color.\n\t\t *\n\t\t * @type {Color}\n\t\t */\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\n/**\n * Abstract base class for light shadow classes. These classes\n * represent the shadow configuration for different light types.\n *\n * @abstract\n */\nclass LightShadow {\n\n\t/**\n\t * Constructs a new light shadow.\n\t *\n\t * @param {Camera} camera - The light's view of the world.\n\t */\n\tconstructor( camera ) {\n\n\t\t/**\n\t\t * The light's view of the world.\n\t\t *\n\t\t * @type {Camera}\n\t\t */\n\t\tthis.camera = camera;\n\n\t\t/**\n\t\t * The intensity of the shadow. The default is `1`.\n\t\t * Valid values are in the range `[0, 1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.intensity = 1;\n\n\t\t/**\n\t\t * Shadow map bias, how much to add or subtract from the normalized depth\n\t\t * when deciding whether a surface is in shadow.\n\t\t *\n\t\t * The default is `0`. Very tiny adjustments here (in the order of `0.0001`)\n\t\t * may help reduce artifacts in shadows.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.bias = 0;\n\n\t\t/**\n\t\t * Defines how much the position used to query the shadow map is offset along\n\t\t * the object normal. The default is `0`. Increasing this value can be used to\n\t\t * reduce shadow acne especially in large scenes where light shines onto\n\t\t * geometry at a shallow angle. The cost is that shadows may appear distorted.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.normalBias = 0;\n\n\t\t/**\n\t\t * Setting this to values greater than 1 will blur the edges of the shadow.\n\t\t * High values will cause unwanted banding effects in the shadows - a greater\n\t\t * map size will allow for a higher value to be used here before these effects\n\t\t * become visible.\n\t\t *\n\t\t * The property has no effect when the shadow map type is `PCFSoftShadowMap` and\n\t\t * and it is recommended to increase softness by decreasing the shadow map size instead.\n\t\t *\n\t\t * The property has no effect when the shadow map type is `BasicShadowMap`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.radius = 1;\n\n\t\t/**\n\t\t * The amount of samples to use when blurring a VSM shadow map.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 8\n\t\t */\n\t\tthis.blurSamples = 8;\n\n\t\t/**\n\t\t * Defines the width and height of the shadow map. Higher values give better quality\n\t\t * shadows at the cost of computation time. Values must be powers of two.\n\t\t *\n\t\t * @type {Vector2}\n\t\t * @default (512,512)\n\t\t */\n\t\tthis.mapSize = new Vector2( 512, 512 );\n\n\t\t/**\n\t\t * The type of shadow texture. The default is `UnsignedByteType`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default UnsignedByteType\n\t\t */\n\t\tthis.mapType = UnsignedByteType;\n\n\t\t/**\n\t\t * The depth map generated using the internal camera; a location beyond a\n\t\t * pixel's depth is in shadow. Computed internally during rendering.\n\t\t *\n\t\t * @type {?RenderTarget}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * The distribution map generated using the internal camera; an occlusion is\n\t\t * calculated based on the distribution of depths. Computed internally during\n\t\t * rendering.\n\t\t *\n\t\t * @type {?RenderTarget}\n\t\t * @default null\n\t\t */\n\t\tthis.mapPass = null;\n\n\t\t/**\n\t\t * Model to shadow camera space, to compute location and depth in shadow map.\n\t\t * This is computed internally during rendering.\n\t\t *\n\t\t * @type {Matrix4}\n\t\t */\n\t\tthis.matrix = new Matrix4();\n\n\t\t/**\n\t\t * Enables automatic updates of the light's shadow. If you do not require dynamic\n\t\t * lighting / shadows, you may set this to `false`.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.autoUpdate = true;\n\n\t\t/**\n\t\t * When set to `true`, shadow maps will be updated in the next `render` call.\n\t\t * If you have set {@link LightShadow#autoUpdate} to `false`, you will need to\n\t\t * set this property to `true` and then make a render call to update the light's shadow.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\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\t/**\n\t * Used internally by the renderer to get the number of viewports that need\n\t * to be rendered for this shadow.\n\t *\n\t * @return {number} The viewport count.\n\t */\n\tgetViewportCount() {\n\n\t\treturn this._viewportCount;\n\n\t}\n\n\t/**\n\t * Gets the shadow cameras frustum. Used internally by the renderer to cull objects.\n\t *\n\t * @return {Frustum} The shadow camera frustum.\n\t */\n\tgetFrustum() {\n\n\t\treturn this._frustum;\n\n\t}\n\n\t/**\n\t * Update the matrices for the camera and shadow, used internally by the renderer.\n\t *\n\t * @param {Light} light - The light for which the shadow is being rendered.\n\t */\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, shadowCamera.coordinateSystem, shadowCamera.reversedDepth );\n\n\t\tif ( shadowCamera.reversedDepth ) {\n\n\t\t\tshadowMatrix.set(\n\t\t\t\t0.5, 0.0, 0.0, 0.5,\n\t\t\t\t0.0, 0.5, 0.0, 0.5,\n\t\t\t\t0.0, 0.0, 1.0, 0.0,\n\t\t\t\t0.0, 0.0, 0.0, 1.0\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tshadowMatrix.set(\n\t\t\t\t0.5, 0.0, 0.0, 0.5,\n\t\t\t\t0.0, 0.5, 0.0, 0.5,\n\t\t\t\t0.0, 0.0, 0.5, 0.5,\n\t\t\t\t0.0, 0.0, 0.0, 1.0\n\t\t\t);\n\n\t\t}\n\n\t\tshadowMatrix.multiply( _projScreenMatrix$1 );\n\n\t}\n\n\t/**\n\t * Returns a viewport definition for the given viewport index.\n\t *\n\t * @param {number} viewportIndex - The viewport index.\n\t * @return {Vector4} The viewport.\n\t */\n\tgetViewport( viewportIndex ) {\n\n\t\treturn this._viewports[ viewportIndex ];\n\n\t}\n\n\t/**\n\t * Returns the frame extends.\n\t *\n\t * @return {Vector2} The frame extends.\n\t */\n\tgetFrameExtents() {\n\n\t\treturn this._frameExtents;\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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\t/**\n\t * Copies the values of the given light shadow instance to this instance.\n\t *\n\t * @param {LightShadow} source - The light shadow to copy.\n\t * @return {LightShadow} A reference to this light shadow instance.\n\t */\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.autoUpdate = source.autoUpdate;\n\t\tthis.needsUpdate = source.needsUpdate;\n\t\tthis.normalBias = source.normalBias;\n\t\tthis.blurSamples = source.blurSamples;\n\n\t\tthis.mapSize.copy( source.mapSize );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns a new light shadow instance with copied values from this instance.\n\t *\n\t * @return {LightShadow} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Serializes the light shadow into JSON.\n\t *\n\t * @return {Object} A JSON object representing the serialized light shadow.\n\t * @see {@link ObjectLoader#parse}\n\t */\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\n/**\n * Represents the shadow configuration of directional lights.\n *\n * @augments LightShadow\n */\nclass SpotLightShadow extends LightShadow {\n\n\t/**\n\t * Constructs a new spot light shadow.\n\t */\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 50, 1, 0.5, 500 ) );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSpotLightShadow = true;\n\n\t\t/**\n\t\t * Used to focus the shadow camera. The camera's field of view is set as a\n\t\t * percentage of the spotlight's field-of-view. Range is `[0, 1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.focus = 1;\n\n\t\t/**\n\t\t * Texture aspect ratio.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aspect = 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 ) * this.aspect;\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\n/**\n * This light gets emitted from a single point in one direction, along a cone\n * that increases in size the further from the light it gets.\n *\n * This light can cast shadows - see the {@link SpotLightShadow} for details.\n *\n * ```js\n * // white spotlight shining from the side, modulated by a texture\n * const spotLight = new THREE.SpotLight( 0xffffff );\n * spotLight.position.set( 100, 1000, 100 );\n * spotLight.map = new THREE.TextureLoader().load( url );\n *\n * spotLight.castShadow = true;\n * spotLight.shadow.mapSize.width = 1024;\n * spotLight.shadow.mapSize.height = 1024;\n * spotLight.shadow.camera.near = 500;\n * spotLight.shadow.camera.far = 4000;\n * spotLight.shadow.camera.fov = 30;s\n * ```\n *\n * @augments Light\n */\nclass SpotLight extends Light {\n\n\t/**\n\t * Constructs a new spot light.\n\t *\n\t * @param {(number|Color|string)} [color=0xffffff] - The light's color.\n\t * @param {number} [intensity=1] - The light's strength/intensity measured in candela (cd).\n\t * @param {number} [distance=0] - Maximum range of the light. `0` means no limit.\n\t * @param {number} [angle=Math.PI/3] - Maximum angle of light dispersion from its direction whose upper bound is `Math.PI/2`.\n\t * @param {number} [penumbra=0] - Percent of the spotlight cone that is attenuated due to penumbra. Value range is `[0,1]`.\n\t * @param {number} [decay=2] - The amount the light dims along the distance of the light.\n\t */\n\tconstructor( color, intensity, distance = 0, angle = Math.PI / 3, penumbra = 0, decay = 2 ) {\n\n\t\tsuper( color, intensity );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t\t * The spot light points from its position to the\n\t\t * target's position.\n\t\t *\n\t\t * For the target's position to be changed to anything other\n\t\t * than the default, it must be added to the scene.\n\t\t *\n\t\t * It is also possible to set the target to be another 3D object\n\t\t * in the scene. The light will now track the target object.\n\t\t *\n\t\t * @type {Object3D}\n\t\t */\n\t\tthis.target = new Object3D();\n\n\t\t/**\n\t\t * Maximum range of the light. `0` means no limit.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.distance = distance;\n\n\t\t/**\n\t\t * Maximum angle of light dispersion from its direction whose upper bound is `Math.PI/2`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default Math.PI/3\n\t\t */\n\t\tthis.angle = angle;\n\n\t\t/**\n\t\t * Percent of the spotlight cone that is attenuated due to penumbra.\n\t\t * Value range is `[0,1]`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.penumbra = penumbra;\n\n\t\t/**\n\t\t * The amount the light dims along the distance of the light. In context of\n\t\t * physically-correct rendering the default value should not be changed.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 2\n\t\t */\n\t\tthis.decay = decay;\n\n\t\t/**\n\t\t * A texture used to modulate the color of the light. The spot light\n\t\t * color is mixed with the RGB value of this texture, with a ratio\n\t\t * corresponding to its alpha value. The cookie-like masking effect is\n\t\t * reproduced using pixel values (0, 0, 0, 1-cookie_value).\n\t\t *\n\t\t * *Warning*: This property is disabled if {@link Object3D#castShadow} is set to `false`.\n\t\t *\n\t\t * @type {?Texture}\n\t\t * @default null\n\t\t */\n\t\tthis.map = null;\n\n\t\t/**\n\t\t * This property holds the light's shadow configuration.\n\t\t *\n\t\t * @type {SpotLightShadow}\n\t\t */\n\t\tthis.shadow = new SpotLightShadow();\n\n\t}\n\n\t/**\n\t * The light's power. Power is the luminous power of the light measured in lumens (lm).\n\t * Changing the power will also change the light's intensity.\n\t *\n\t * @type {number}\n\t */\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\n/**\n * Represents the shadow configuration of point lights.\n *\n * @augments LightShadow\n */\nclass PointLightShadow extends LightShadow {\n\n\t/**\n\t * Constructs a new point light shadow.\n\t */\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 90, 1, 0.5, 500 ) );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t * Update the matrices for the camera and shadow, used internally by the renderer.\n\t *\n\t * @param {Light} light - The light for which the shadow is being rendered.\n\t * @param {number} [viewportIndex=0] - The viewport index.\n\t */\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, camera.coordinateSystem, camera.reversedDepth );\n\n\t}\n\n}\n\n/**\n * A light that gets emitted from a single point in all directions. A common\n * use case for this is to replicate the light emitted from a bare\n * lightbulb.\n *\n * This light can cast shadows - see the {@link PointLightShadow} for details.\n *\n * ```js\n * const light = new THREE.PointLight( 0xff0000, 1, 100 );\n * light.position.set( 50, 50, 50 );\n * scene.add( light );\n * ```\n *\n * @augments Light\n */\nclass PointLight extends Light {\n\n\t/**\n\t * Constructs a new point light.\n\t *\n\t * @param {(number|Color|string)} [color=0xffffff] - The light's color.\n\t * @param {number} [intensity=1] - The light's strength/intensity measured in candela (cd).\n\t * @param {number} [distance=0] - Maximum range of the light. `0` means no limit.\n\t * @param {number} [decay=2] - The amount the light dims along the distance of the light.\n\t */\n\tconstructor( color, intensity, distance = 0, decay = 2 ) {\n\n\t\tsuper( color, intensity );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isPointLight = true;\n\n\t\tthis.type = 'PointLight';\n\n\t\t/**\n\t\t * When distance is zero, light will attenuate according to inverse-square\n\t\t * law to infinite distance. When distance is non-zero, light will attenuate\n\t\t * according to inverse-square law until near the distance cutoff, where it\n\t\t * will then attenuate quickly and smoothly to 0. Inherently, cutoffs are not\n\t\t * physically correct.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.distance = distance;\n\n\t\t/**\n\t\t * The amount the light dims along the distance of the light. In context of\n\t\t * physically-correct rendering the default value should not be changed.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 2\n\t\t */\n\t\tthis.decay = decay;\n\n\t\t/**\n\t\t * This property holds the light's shadow configuration.\n\t\t *\n\t\t * @type {PointLightShadow}\n\t\t */\n\t\tthis.shadow = new PointLightShadow();\n\n\t}\n\n\t/**\n\t * The light's power. Power is the luminous power of the light measured in lumens (lm).\n\t * Changing the power will also change the light's intensity.\n\t *\n\t * @type {number}\n\t */\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\n/**\n * Camera that uses [orthographic projection]{@link https://en.wikipedia.org/wiki/Orthographic_projection}.\n *\n * In this projection mode, an object's size in the rendered image stays\n * constant regardless of its distance from the camera. This can be useful\n * for rendering 2D scenes and UI elements, amongst other things.\n *\n * ```js\n * const camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 );\n * scene.add( camera );\n * ```\n *\n * @augments Camera\n */\nclass OrthographicCamera extends Camera {\n\n\t/**\n\t * Constructs a new orthographic camera.\n\t *\n\t * @param {number} [left=-1] - The left plane of the camera's frustum.\n\t * @param {number} [right=1] - The right plane of the camera's frustum.\n\t * @param {number} [top=1] - The top plane of the camera's frustum.\n\t * @param {number} [bottom=-1] - The bottom plane of the camera's frustum.\n\t * @param {number} [near=0.1] - The camera's near plane.\n\t * @param {number} [far=2000] - The camera's far plane.\n\t */\n\tconstructor( left = -1, right = 1, top = 1, bottom = -1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isOrthographicCamera = true;\n\n\t\tthis.type = 'OrthographicCamera';\n\n\t\t/**\n\t\t * The zoom factor of the camera.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.zoom = 1;\n\n\t\t/**\n\t\t * Represents the frustum window specification. This property should not be edited\n\t\t * directly but via {@link PerspectiveCamera#setViewOffset} and {@link PerspectiveCamera#clearViewOffset}.\n\t\t *\n\t\t * @type {?Object}\n\t\t * @default null\n\t\t */\n\t\tthis.view = null;\n\n\t\t/**\n\t\t * The left plane of the camera's frustum.\n\t\t *\n\t\t * @type {number}\n\t\t * @default -1\n\t\t */\n\t\tthis.left = left;\n\n\t\t/**\n\t\t * The right plane of the camera's frustum.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.right = right;\n\n\t\t/**\n\t\t * The top plane of the camera's frustum.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.top = top;\n\n\t\t/**\n\t\t * The bottom plane of the camera's frustum.\n\t\t *\n\t\t * @type {number}\n\t\t * @default -1\n\t\t */\n\t\tthis.bottom = bottom;\n\n\t\t/**\n\t\t * The camera's near plane. The valid range is greater than `0`\n\t\t * and less than the current value of {@link OrthographicCamera#far}.\n\t\t *\n\t\t * Note that, unlike for the {@link PerspectiveCamera}, `0` is a\n\t\t * valid value for an orthographic camera's near plane.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.1\n\t\t */\n\t\tthis.near = near;\n\n\t\t/**\n\t\t * The camera's far plane. Must be greater than the\n\t\t * current value of {@link OrthographicCamera#near}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 2000\n\t\t */\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\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 * @param {number} fullWidth - The full width of multiview setup.\n\t * @param {number} fullHeight - The full height of multiview setup.\n\t * @param {number} x - The horizontal offset of the subcamera.\n\t * @param {number} y - The vertical offset of the subcamera.\n\t * @param {number} width - The width of subcamera.\n\t * @param {number} height - The height of subcamera.\n\t * @see {@link PerspectiveCamera#setViewOffset}\n\t */\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\t/**\n\t * Removes the view offset from the projection matrix.\n\t */\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\t/**\n\t * Updates the camera's projection matrix. Must be called after any change of\n\t * camera properties.\n\t */\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, this.reversedDepth );\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\n/**\n * Represents the shadow configuration of directional lights.\n *\n * @augments LightShadow\n */\nclass DirectionalLightShadow extends LightShadow {\n\n\t/**\n\t * Constructs a new directional light shadow.\n\t */\n\tconstructor() {\n\n\t\tsuper( new OrthographicCamera( -5, 5, 5, -5, 0.5, 500 ) );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isDirectionalLightShadow = true;\n\n\t}\n\n}\n\n/**\n * A light that gets emitted in a specific direction. This light will behave\n * as though it is infinitely far away and the rays produced from it are all\n * parallel. The common use case for this is to simulate daylight; the sun is\n * far enough away that its position can be considered to be infinite, and\n * all light rays coming from it are parallel.\n *\n * A common point of confusion for directional lights is that setting the\n * rotation has no effect. This is because three.js's DirectionalLight is the\n * equivalent to what is often called a 'Target Direct Light' in other\n * applications.\n *\n * This means that its direction is calculated as pointing from the light's\n * {@link Object3D#position} to the {@link DirectionalLight#target} position\n * (as opposed to a 'Free Direct Light' that just has a rotation\n * component).\n *\n * This light can cast shadows - see the {@link DirectionalLightShadow} for details.\n *\n * ```js\n * // White directional light at half intensity shining from the top.\n * const directionalLight = new THREE.DirectionalLight( 0xffffff, 0.5 );\n * scene.add( directionalLight );\n * ```\n *\n * @augments Light\n */\nclass DirectionalLight extends Light {\n\n\t/**\n\t * Constructs a new directional light.\n\t *\n\t * @param {(number|Color|string)} [color=0xffffff] - The light's color.\n\t * @param {number} [intensity=1] - The light's strength/intensity.\n\t */\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t\t * The directional light points from its position to the\n\t\t * target's position.\n\t\t *\n\t\t * For the target's position to be changed to anything other\n\t\t * than the default, it must be added to the scene.\n\t\t *\n\t\t * It is also possible to set the target to be another 3D object\n\t\t * in the scene. The light will now track the target object.\n\t\t *\n\t\t * @type {Object3D}\n\t\t */\n\t\tthis.target = new Object3D();\n\n\t\t/**\n\t\t * This property holds the light's shadow configuration.\n\t\t *\n\t\t * @type {DirectionalLightShadow}\n\t\t */\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\n/**\n * This light globally illuminates all objects in the scene equally.\n *\n * It cannot be used to cast shadows as it does not have a direction.\n *\n * ```js\n * const light = new THREE.AmbientLight( 0x404040 ); // soft white light\n * scene.add( light );\n * ```\n *\n * @augments Light\n */\nclass AmbientLight extends Light {\n\n\t/**\n\t * Constructs a new ambient light.\n\t *\n\t * @param {(number|Color|string)} [color=0xffffff] - The light's color.\n\t * @param {number} [intensity=1] - The light's strength/intensity.\n\t */\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isAmbientLight = true;\n\n\t\tthis.type = 'AmbientLight';\n\n\t}\n\n}\n\n/**\n * This class emits light uniformly across the face a rectangular plane.\n * This light type can be used to simulate light sources such as bright\n * windows or strip lighting.\n *\n * Important Notes:\n *\n * - There is no shadow support.\n * - Only PBR materials are supported.\n * - You have to include `RectAreaLightUniformsLib` (`WebGLRenderer`) or `RectAreaLightTexturesLib` (`WebGPURenderer`)\n * into your app and init the uniforms/textures.\n *\n * ```js\n * RectAreaLightUniformsLib.init(); // only relevant for WebGLRenderer\n * THREE.RectAreaLightNode.setLTC( RectAreaLightTexturesLib.init() ); // only relevant for WebGPURenderer\n *\n * const intensity = 1; const width = 10; const height = 10;\n * const rectLight = new THREE.RectAreaLight( 0xffffff, intensity, width, height );\n * rectLight.position.set( 5, 5, 0 );\n * rectLight.lookAt( 0, 0, 0 );\n * scene.add( rectLight )\n * ```\n *\n * @augments Light\n */\nclass RectAreaLight extends Light {\n\n\t/**\n\t * Constructs a new area light.\n\t *\n\t * @param {(number|Color|string)} [color=0xffffff] - The light's color.\n\t * @param {number} [intensity=1] - The light's strength/intensity.\n\t * @param {number} [width=10] - The width of the light.\n\t * @param {number} [height=10] - The height of the light.\n\t */\n\tconstructor( color, intensity, width = 10, height = 10 ) {\n\n\t\tsuper( color, intensity );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isRectAreaLight = true;\n\n\t\tthis.type = 'RectAreaLight';\n\n\t\t/**\n\t\t * The width of the light.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 10\n\t\t */\n\t\tthis.width = width;\n\n\t\t/**\n\t\t * The height of the light.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 10\n\t\t */\n\t\tthis.height = height;\n\n\t}\n\n\t/**\n\t * The light's power. Power is the luminous power of the light measured in lumens (lm).\n\t * Changing the power will also change the light's intensity.\n\t *\n\t * @type {number}\n\t */\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 * Represents a third-order spherical harmonics (SH). Light probes use this class\n * to encode lighting information.\n *\n * - Primary reference: {@link https://graphics.stanford.edu/papers/envmap/envmap.pdf}\n * - Secondary reference: {@link https://www.ppsloan.org/publications/StupidSH36.pdf}\n */\nclass SphericalHarmonics3 {\n\n\t/**\n\t * Constructs a new spherical harmonics.\n\t */\n\tconstructor() {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSphericalHarmonics3 = true;\n\n\t\t/**\n\t\t * An array holding the (9) SH coefficients.\n\t\t *\n\t\t * @type {Array}\n\t\t */\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\t/**\n\t * Sets the given SH coefficients to this instance by copying\n\t * the values.\n\t *\n\t * @param {Array} coefficients - The SH coefficients.\n\t * @return {SphericalHarmonics3} A reference to this spherical harmonics.\n\t */\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\t/**\n\t * Sets all SH coefficients to `0`.\n\t *\n\t * @return {SphericalHarmonics3} A reference to this spherical harmonics.\n\t */\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/**\n\t * Returns the radiance in the direction of the given normal.\n\t *\n\t * @param {Vector3} normal - The normal vector (assumed to be unit length)\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The radiance.\n\t */\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/**\n\t * Returns the irradiance (radiance convolved with cosine lobe) in the\n\t * direction of the given normal.\n\t *\n\t * @param {Vector3} normal - The normal vector (assumed to be unit length)\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The irradiance.\n\t */\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\t/**\n\t * Adds the given SH to this instance.\n\t *\n\t * @param {SphericalHarmonics3} sh - The SH to add.\n\t * @return {SphericalHarmonics3} A reference to this spherical harmonics.\n\t */\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\t/**\n\t * A convenience method for performing {@link SphericalHarmonics3#add} and\n\t * {@link SphericalHarmonics3#scale} at once.\n\t *\n\t * @param {SphericalHarmonics3} sh - The SH to add.\n\t * @param {number} s - The scale factor.\n\t * @return {SphericalHarmonics3} A reference to this spherical harmonics.\n\t */\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\t/**\n\t * Scales this SH by the given scale factor.\n\t *\n\t * @param {number} s - The scale factor.\n\t * @return {SphericalHarmonics3} A reference to this spherical harmonics.\n\t */\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\t/**\n\t * Linear interpolates between the given SH and this instance by the given\n\t * alpha factor.\n\t *\n\t * @param {SphericalHarmonics3} sh - The SH to interpolate with.\n\t * @param {number} alpha - The alpha factor.\n\t * @return {SphericalHarmonics3} A reference to this spherical harmonics.\n\t */\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\t/**\n\t * Returns `true` if this spherical harmonics is equal with the given one.\n\t *\n\t * @param {SphericalHarmonics3} sh - The spherical harmonics to test for equality.\n\t * @return {boolean} Whether this spherical harmonics is equal with the given one.\n\t */\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\t/**\n\t * Copies the values of the given spherical harmonics to this instance.\n\t *\n\t * @param {SphericalHarmonics3} sh - The spherical harmonics to copy.\n\t * @return {SphericalHarmonics3} A reference to this spherical harmonics.\n\t */\n\tcopy( sh ) {\n\n\t\treturn this.set( sh.coefficients );\n\n\t}\n\n\t/**\n\t * Returns a new spherical harmonics with copied values from this instance.\n\t *\n\t * @return {SphericalHarmonics3} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Sets the SH coefficients of this instance from the given array.\n\t *\n\t * @param {Array} array - An array holding the SH coefficients.\n\t * @param {number} [offset=0] - The array offset where to start copying.\n\t * @return {SphericalHarmonics3} A clone of this instance.\n\t */\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\t/**\n\t * Returns an array with the SH coefficients, or copies them into the provided\n\t * array. The coefficients are represented as numbers.\n\t *\n\t * @param {Array} [array=[]] - The target array.\n\t * @param {number} [offset=0] - The array offset where to start copying.\n\t * @return {Array} An array with flat SH coefficients.\n\t */\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/**\n\t * Computes the SH basis for the given normal vector.\n\t *\n\t * @param {Vector3} normal - The normal.\n\t * @param {Array} shBasis - The target array holding the SH basis.\n\t */\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\n/**\n * Light probes are an alternative way of adding light to a 3D scene. Unlike\n * classical light sources (e.g. directional, point or spot lights), light\n * probes do not emit light. Instead they store information about light\n * passing through 3D space. During rendering, the light that hits a 3D\n * object is approximated by using the data from the light probe.\n *\n * Light probes are usually created from (radiance) environment maps. The\n * class {@link LightProbeGenerator} can be used to create light probes from\n * cube textures or render targets. However, light estimation data could also\n * be provided in other forms e.g. by WebXR. This enables the rendering of\n * augmented reality content that reacts to real world lighting.\n *\n * The current probe implementation in three.js supports so-called diffuse\n * light probes. This type of light probe is functionally equivalent to an\n * irradiance environment map.\n *\n * @augments Light\n */\nclass LightProbe extends Light {\n\n\t/**\n\t * Constructs a new light probe.\n\t *\n\t * @param {SphericalHarmonics3} sh - The spherical harmonics which represents encoded lighting information.\n\t * @param {number} [intensity=1] - The light's strength/intensity.\n\t */\n\tconstructor( sh = new SphericalHarmonics3(), intensity = 1 ) {\n\n\t\tsuper( undefined, intensity );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isLightProbe = true;\n\n\t\t/**\n\t\t * A light probe uses spherical harmonics to encode lighting information.\n\t\t *\n\t\t * @type {SphericalHarmonics3}\n\t\t */\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\t/**\n\t * Deserializes the light prove from the given JSON.\n\t *\n\t * @param {Object} json - The JSON holding the serialized light probe.\n\t * @return {LightProbe} A reference to this light probe.\n\t */\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\n/**\n * Class for loading geometries. The files are internally\n * loaded via {@link FileLoader}.\n *\n * ```js\n * const loader = new THREE.MaterialLoader();\n * const material = await loader.loadAsync( 'material.json' );\n * ```\n * This loader does not support node materials. Use {@link NodeMaterialLoader} instead.\n *\n * @augments Loader\n */\nclass MaterialLoader extends Loader {\n\n\t/**\n\t * Constructs a new material loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\t/**\n\t\t * A dictionary holding textures used by the material.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.textures = {};\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the loaded material to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(Material)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t */\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\t/**\n\t * Parses the given JSON object and returns a material.\n\t *\n\t * @param {Object} json - The serialized material.\n\t * @return {Material} The parsed material.\n\t */\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 = this.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\t/**\n\t * Textures are not embedded in the material JSON so they have\n\t * to be injected before the loading process starts.\n\t *\n\t * @param {Object} value - A dictionary holding textures for material properties.\n\t * @return {MaterialLoader} A reference to this material loader.\n\t */\n\tsetTextures( value ) {\n\n\t\tthis.textures = value;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Creates a material for the given type.\n\t *\n\t * @param {string} type - The material type.\n\t * @return {Material} The new material.\n\t */\n\tcreateMaterialFromType( type ) {\n\n\t\treturn MaterialLoader.createMaterialFromType( type );\n\n\t}\n\n\t/**\n\t * Creates a material for the given type.\n\t *\n\t * @static\n\t * @param {string} type - The material type.\n\t * @return {Material} The new material.\n\t */\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\n/**\n * A class with loader utility functions.\n */\nclass LoaderUtils {\n\n\t/**\n\t * Extracts the base URL from the given URL.\n\t *\n\t * @param {string} url -The URL to extract the base URL from.\n\t * @return {string} The extracted base URL.\n\t */\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\t/**\n\t * Resolves relative URLs against the given path. Absolute paths, data urls,\n\t * and blob URLs will be returned as is. Invalid URLs will return an empty\n\t * string.\n\t *\n\t * @param {string} url -The URL to resolve.\n\t * @param {string} path - The base path for relative URLs to be resolved against.\n\t * @return {string} The resolved URL.\n\t */\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\n/**\n * An instanced version of a geometry.\n */\nclass InstancedBufferGeometry extends BufferGeometry {\n\n\t/**\n\t * Constructs a new instanced buffer geometry.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isInstancedBufferGeometry = true;\n\n\t\tthis.type = 'InstancedBufferGeometry';\n\n\t\t/**\n\t\t * The instance count.\n\t\t *\n\t\t * @type {number}\n\t\t * @default Infinity\n\t\t */\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\n/**\n * Class for loading geometries. The files are internally\n * loaded via {@link FileLoader}.\n *\n * ```js\n * const loader = new THREE.BufferGeometryLoader();\n * const geometry = await loader.loadAsync( 'models/json/pressure.json' );\n *\n * const material = new THREE.MeshBasicMaterial( { color: 0xF5F5F5 } );\n * const object = new THREE.Mesh( geometry, material );\n * scene.add( object );\n * ```\n *\n * @augments Loader\n */\nclass BufferGeometryLoader extends Loader {\n\n\t/**\n\t * Constructs a new geometry loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the loaded geometry to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(BufferGeometry)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t */\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\t/**\n\t * Parses the given JSON object and returns a geometry.\n\t *\n\t * @param {Object} json - The serialized geometry.\n\t * @return {BufferGeometry} The parsed geometry.\n\t */\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\tgeometry.boundingSphere = new Sphere().fromJSON( boundingSphere );\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\n/**\n * A loader for loading a JSON resource in the [JSON Object/Scene format]{@link https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4}.\n * The files are internally loaded via {@link FileLoader}.\n *\n * ```js\n * const loader = new THREE.ObjectLoader();\n * const obj = await loader.loadAsync( 'models/json/example.json' );\n * scene.add( obj );\n *\n * // Alternatively, to parse a previously loaded JSON structure\n * const object = await loader.parseAsync( a_json_object );\n * scene.add( object );\n * ```\n *\n * @augments Loader\n */\nclass ObjectLoader extends Loader {\n\n\t/**\n\t * Constructs a new object loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the loaded 3D object to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(Object3D)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t */\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\t/**\n\t * Async version of {@link ObjectLoader#load}.\n\t *\n\t * @async\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @return {Promise} A Promise that resolves with the loaded 3D object.\n\t */\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\t/**\n\t * Parses the given JSON. This is used internally by {@link ObjectLoader#load}\n\t * but can also be used directly to parse a previously loaded JSON structure.\n\t *\n\t * @param {Object} json - The serialized 3D object.\n\t * @param {onLoad} onLoad - Executed when all resources (e.g. textures) have been fully loaded.\n\t * @return {Object3D} The parsed 3D object.\n\t */\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\t/**\n\t * Async version of {@link ObjectLoader#parse}.\n\t *\n\t * @param {Object} json - The serialized 3D object.\n\t * @return {Promise} A Promise that resolves with the parsed 3D object.\n\t */\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\t// internals\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._geometryInfo = data.geometryInfo.map( info => {\n\n\t\t\t\t\tlet box = null;\n\t\t\t\t\tlet sphere = null;\n\t\t\t\t\tif ( info.boundingBox !== undefined ) {\n\n\t\t\t\t\t\tbox = new Box3().fromJSON( info.boundingBox );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( info.boundingSphere !== undefined ) {\n\n\t\t\t\t\t\tsphere = new Sphere().fromJSON( info.boundingSphere );\n\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...info,\n\t\t\t\t\t\tboundingBox: box,\n\t\t\t\t\t\tboundingSphere: sphere\n\t\t\t\t\t};\n\n\t\t\t\t} );\n\t\t\t\tobject._instanceInfo = data.instanceInfo;\n\n\t\t\t\tobject._availableInstanceIds = data._availableInstanceIds;\n\t\t\t\tobject._availableGeometryIds = data._availableGeometryIds;\n\n\t\t\t\tobject._nextIndexStart = data.nextIndexStart;\n\t\t\t\tobject._nextVertexStart = data.nextVertexStart;\n\t\t\t\tobject._geometryCount = data.geometryCount;\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\n\t\t\t\tobject._matricesTexture = getTexture( data.matricesTexture.uuid );\n\n\t\t\t\tobject._indirectTexture = getTexture( data.indirectTexture.uuid );\n\n\t\t\t\tif ( data.colorsTexture !== undefined ) {\n\n\t\t\t\t\tobject._colorsTexture = getTexture( data.colorsTexture.uuid );\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.boundingSphere !== undefined ) {\n\n\t\t\t\t\tobject.boundingSphere = new Sphere().fromJSON( data.boundingSphere );\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.boundingBox !== undefined ) {\n\n\t\t\t\t\tobject.boundingBox = new Box3().fromJSON( data.boundingBox );\n\n\t\t\t\t}\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\nconst _errorMap = new WeakMap();\n\n/**\n * A loader for loading images as an [ImageBitmap]{@link https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap}.\n * An `ImageBitmap` provides an asynchronous and resource efficient pathway to prepare\n * textures for rendering.\n *\n * Note that {@link Texture#flipY} and {@link Texture#premultiplyAlpha} are ignored with image bitmaps.\n * They needs these configuration on bitmap creation unlike regular images need them on uploading to GPU.\n *\n * You need to set the equivalent options via {@link ImageBitmapLoader#setOptions} instead.\n *\n * Also note that unlike {@link FileLoader}, this loader avoids multiple concurrent requests to the same URL only if `Cache` is enabled.\n *\n * ```js\n * const loader = new THREE.ImageBitmapLoader();\n * loader.setOptions( { imageOrientation: 'flipY' } ); // set options if needed\n * const imageBitmap = await loader.loadAsync( 'image.png' );\n *\n * const texture = new THREE.Texture( imageBitmap );\n * texture.needsUpdate = true;\n * ```\n *\n * @augments Loader\n */\nclass ImageBitmapLoader extends Loader {\n\n\t/**\n\t * Constructs a new image bitmap loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\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\t/**\n\t\t * Represents the loader options.\n\t\t *\n\t\t * @type {Object}\n\t\t * @default {premultiplyAlpha:'none'}\n\t\t */\n\t\tthis.options = { premultiplyAlpha: 'none' };\n\n\t\t/**\n\t\t * Used for aborting requests.\n\t\t *\n\t\t * @private\n\t\t * @type {AbortController}\n\t\t */\n\t\tthis._abortController = new AbortController();\n\n\t}\n\n\t/**\n\t * Sets the given loader options. The structure of the object must match the `options` parameter of\n\t * [createImageBitmap]{@link https://developer.mozilla.org/en-US/docs/Web/API/Window/createImageBitmap}.\n\t *\n\t * @param {Object} options - The loader options to set.\n\t * @return {ImageBitmapLoader} A reference to this image bitmap loader.\n\t */\n\tsetOptions( options ) {\n\n\t\tthis.options = options;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and pass the loaded image bitmap to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(ImageBitmap)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Unsupported in this loader.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t * @return {ImageBitmap|undefined} The image bitmap.\n\t */\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( `image-bitmap:${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\t// check if there is an error for the cached promise\n\n\t\t\t\t\tif ( _errorMap.has( cached ) === true ) {\n\n\t\t\t\t\t\tif ( onError ) onError( _errorMap.get( cached ) );\n\n\t\t\t\t\t\tscope.manager.itemError( url );\n\t\t\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( onLoad ) onLoad( imageBitmap );\n\n\t\t\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t\t\t\treturn imageBitmap;\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\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\t\tfetchOptions.signal = ( typeof AbortSignal.any === 'function' ) ? AbortSignal.any( [ this._abortController.signal, this.manager.abortController.signal ] ) : this._abortController.signal;\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( `image-bitmap:${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\t_errorMap.set( promise, e );\n\n\t\t\tCache.remove( `image-bitmap:${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( `image-bitmap:${url}`, promise );\n\t\tscope.manager.itemStart( url );\n\n\t}\n\n\t/**\n\t * Aborts ongoing fetch requests.\n\t *\n\t * @return {ImageBitmapLoader} A reference to this instance.\n\t */\n\tabort() {\n\n\t\tthis._abortController.abort();\n\t\tthis._abortController = new AbortController();\n\n\t\treturn this;\n\n\t}\n\n}\n\nlet _context;\n\n/**\n * Manages the global audio context in the engine.\n *\n * @hideconstructor\n */\nclass AudioContext {\n\n\t/**\n\t * Returns the global native audio context.\n\t *\n\t * @return {AudioContext} The native audio context.\n\t */\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\t/**\n\t * Allows to set the global native audio context from outside.\n\t *\n\t * @param {AudioContext} value - The native context to set.\n\t */\n\tstatic setContext( value ) {\n\n\t\t_context = value;\n\n\t}\n\n}\n\n/**\n * Class for loading audio buffers. Audios are internally\n * loaded via {@link FileLoader}.\n *\n * ```js\n * const audioListener = new THREE.AudioListener();\n * const ambientSound = new THREE.Audio( audioListener );\n *\n * const loader = new THREE.AudioLoader();\n * const audioBuffer = await loader.loadAsync( 'audio/ambient_ocean.ogg' );\n *\n * ambientSound.setBuffer( audioBuffer );\n * ambientSound.play();\n * ```\n *\n * @augments Loader\n */\nclass AudioLoader extends Loader {\n\n\t/**\n\t * Constructs a new audio loader.\n\t *\n\t * @param {LoadingManager} [manager] - The loading manager.\n\t */\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Starts loading from the given URL and passes the loaded audio buffer\n\t * to the `onLoad()` callback.\n\t *\n\t * @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.\n\t * @param {function(AudioBuffer)} onLoad - Executed when the loading process has been finished.\n\t * @param {onProgressCallback} onProgress - Executed while the loading is in progress.\n\t * @param {onErrorCallback} onError - Executed when errors occur.\n\t */\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\n/**\n * A special type of camera that uses two perspective cameras with\n * stereoscopic projection. Can be used for rendering stereo effects\n * like [3D Anaglyph]{@link https://en.wikipedia.org/wiki/Anaglyph_3D} or\n * [Parallax Barrier]{@link https://en.wikipedia.org/wiki/parallax_barrier}.\n */\nclass StereoCamera {\n\n\t/**\n\t * Constructs a new stereo camera.\n\t */\n\tconstructor() {\n\n\t\t/**\n\t\t * The type property is used for detecting the object type\n\t\t * in context of serialization/deserialization.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\n\t\tthis.type = 'StereoCamera';\n\n\t\t/**\n\t\t * The aspect.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.aspect = 1;\n\n\t\t/**\n\t\t * The eye separation which represents the distance\n\t\t * between the left and right camera.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0.064\n\t\t */\n\t\tthis.eyeSep = 0.064;\n\n\t\t/**\n\t\t * The camera representing the left eye. This is added to layer `1` so objects to be\n\t\t * rendered by the left camera must also be added to this layer.\n\t\t *\n\t\t * @type {PerspectiveCamera}\n\t\t */\n\t\tthis.cameraL = new PerspectiveCamera();\n\t\tthis.cameraL.layers.enable( 1 );\n\t\tthis.cameraL.matrixAutoUpdate = false;\n\n\t\t/**\n\t\t * The camera representing the right eye. This is added to layer `2` so objects to be\n\t\t * rendered by the right camera must also be added to this layer.\n\t\t *\n\t\t * @type {PerspectiveCamera}\n\t\t */\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\t/**\n\t * Updates the stereo camera based on the given perspective camera.\n\t *\n\t * @param {PerspectiveCamera} camera - The perspective camera.\n\t */\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\n/**\n * This type of camera can be used in order to efficiently render a scene with a\n * predefined set of cameras. This is an important performance aspect for\n * rendering VR scenes.\n *\n * An instance of `ArrayCamera` always has an array of sub cameras. It's mandatory\n * to define for each sub camera the `viewport` property which determines the\n * part of the viewport that is rendered with this camera.\n *\n * @augments PerspectiveCamera\n */\nclass ArrayCamera extends PerspectiveCamera {\n\n\t/**\n\t * Constructs a new array camera.\n\t *\n\t * @param {Array} [array=[]] - An array of perspective sub cameras.\n\t */\n\tconstructor( array = [] ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isArrayCamera = true;\n\n\t\t/**\n\t\t * Whether this camera is used with multiview rendering or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default false\n\t\t */\n\t\tthis.isMultiViewCamera = false;\n\n\t\t/**\n\t\t * An array of perspective sub cameras.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.cameras = array;\n\n\t}\n\n}\n\n/**\n * Class for keeping track of time.\n */\nclass Clock {\n\n\t/**\n\t * Constructs a new clock.\n\t *\n\t * @param {boolean} [autoStart=true] - Whether to automatically start the clock when\n\t * `getDelta()` is called for the first time.\n\t */\n\tconstructor( autoStart = true ) {\n\n\t\t/**\n\t\t * If set to `true`, the clock starts automatically when `getDelta()` is called\n\t\t * for the first time.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.autoStart = autoStart;\n\n\t\t/**\n\t\t * Holds the time at which the clock's `start()` method was last called.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.startTime = 0;\n\n\t\t/**\n\t\t * Holds the time at which the clock's `start()`, `getElapsedTime()` or\n\t\t * `getDelta()` methods were last called.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.oldTime = 0;\n\n\t\t/**\n\t\t * Keeps track of the total time that the clock has been running.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.elapsedTime = 0;\n\n\t\t/**\n\t\t * Whether the clock is running or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.running = false;\n\n\t}\n\n\t/**\n\t * Starts the clock. When `autoStart` is set to `true`, the method is automatically\n\t * called by the class.\n\t */\n\tstart() {\n\n\t\tthis.startTime = performance.now();\n\n\t\tthis.oldTime = this.startTime;\n\t\tthis.elapsedTime = 0;\n\t\tthis.running = true;\n\n\t}\n\n\t/**\n\t * Stops the clock.\n\t */\n\tstop() {\n\n\t\tthis.getElapsedTime();\n\t\tthis.running = false;\n\t\tthis.autoStart = false;\n\n\t}\n\n\t/**\n\t * Returns the elapsed time in seconds.\n\t *\n\t * @return {number} The elapsed time.\n\t */\n\tgetElapsedTime() {\n\n\t\tthis.getDelta();\n\t\treturn this.elapsedTime;\n\n\t}\n\n\t/**\n\t * Returns the delta time in seconds.\n\t *\n\t * @return {number} The delta time.\n\t */\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 = performance.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\nconst _position$1 = /*@__PURE__*/ new Vector3();\nconst _quaternion$1 = /*@__PURE__*/ new Quaternion();\nconst _scale$1 = /*@__PURE__*/ new Vector3();\n\nconst _forward = /*@__PURE__*/ new Vector3();\nconst _up = /*@__PURE__*/ new Vector3();\n\n/**\n * The class represents a virtual listener of the all positional and non-positional audio effects\n * in the scene. A three.js application usually creates a single listener. It is a mandatory\n * constructor parameter for audios entities like {@link Audio} and {@link PositionalAudio}.\n *\n * In most cases, the listener object is a child of the camera. So the 3D transformation of the\n * camera represents the 3D transformation of the listener.\n *\n * @augments Object3D\n */\nclass AudioListener extends Object3D {\n\n\t/**\n\t * Constructs a new audio listener.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'AudioListener';\n\n\t\t/**\n\t\t * The native audio context.\n\t\t *\n\t\t * @type {AudioContext}\n\t\t * @readonly\n\t\t */\n\t\tthis.context = AudioContext.getContext();\n\n\t\t/**\n\t\t * The gain node used for volume control.\n\t\t *\n\t\t * @type {GainNode}\n\t\t * @readonly\n\t\t */\n\t\tthis.gain = this.context.createGain();\n\t\tthis.gain.connect( this.context.destination );\n\n\t\t/**\n\t\t * An optional filter.\n\t\t *\n\t\t * Defined via {@link AudioListener#setFilter}.\n\t\t *\n\t\t * @type {?AudioNode}\n\t\t * @default null\n\t\t * @readonly\n\t\t */\n\t\tthis.filter = null;\n\n\t\t/**\n\t\t * Time delta values required for `linearRampToValueAtTime()` usage.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t * @readonly\n\t\t */\n\t\tthis.timeDelta = 0;\n\n\t\t// private\n\n\t\tthis._clock = new Clock();\n\n\t}\n\n\t/**\n\t * Returns the listener's input node.\n\t *\n\t * This method is used by other audio nodes to connect to this listener.\n\t *\n\t * @return {GainNode} The input node.\n\t */\n\tgetInput() {\n\n\t\treturn this.gain;\n\n\t}\n\n\t/**\n\t * Removes the current filter from this listener.\n\t *\n\t * @return {AudioListener} A reference to this listener.\n\t */\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\t/**\n\t * Returns the current set filter.\n\t *\n\t * @return {?AudioNode} The filter.\n\t */\n\tgetFilter() {\n\n\t\treturn this.filter;\n\n\t}\n\n\t/**\n\t * Sets the given filter to this listener.\n\t *\n\t * @param {AudioNode} value - The filter to set.\n\t * @return {AudioListener} A reference to this listener.\n\t */\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\t/**\n\t * Returns the applications master volume.\n\t *\n\t * @return {number} The master volume.\n\t */\n\tgetMasterVolume() {\n\n\t\treturn this.gain.gain.value;\n\n\t}\n\n\t/**\n\t * Sets the applications master volume. This volume setting affects\n\t * all audio nodes in the scene.\n\t *\n\t * @param {number} value - The master volume to set.\n\t * @return {AudioListener} A reference to this listener.\n\t */\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\n\t\tthis.timeDelta = this._clock.getDelta();\n\n\t\tthis.matrixWorld.decompose( _position$1, _quaternion$1, _scale$1 );\n\n\t\t// the initial forward and up directions must be orthogonal\n\t\t_forward.set( 0, 0, -1 ).applyQuaternion( _quaternion$1 );\n\t\t_up.set( 0, 1, 0 ).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( _forward.x, endTime );\n\t\t\tlistener.forwardY.linearRampToValueAtTime( _forward.y, endTime );\n\t\t\tlistener.forwardZ.linearRampToValueAtTime( _forward.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( _forward.x, _forward.y, _forward.z, _up.x, _up.y, _up.z );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * Represents a non-positional ( global ) audio object.\n *\n * This and related audio modules make use of the [Web Audio API]{@link https://www.w3.org/TR/webaudio-1.1/}.\n *\n * ```js\n * // create an AudioListener and add it to the camera\n * const listener = new THREE.AudioListener();\n * camera.add( listener );\n *\n * // create a global audio source\n * const sound = new THREE.Audio( listener );\n *\n * // load a sound and set it as the Audio object's buffer\n * const audioLoader = new THREE.AudioLoader();\n * audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {\n * \tsound.setBuffer( buffer );\n * \tsound.setLoop( true );\n * \tsound.setVolume( 0.5 );\n * \tsound.play();\n * });\n * ```\n *\n * @augments Object3D\n */\nclass Audio extends Object3D {\n\n\t/**\n\t * Constructs a new audio.\n\t *\n\t * @param {AudioListener} listener - The global audio listener.\n\t */\n\tconstructor( listener ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Audio';\n\n\t\t/**\n\t\t * The global audio listener.\n\t\t *\n\t\t * @type {AudioListener}\n\t\t * @readonly\n\t\t */\n\t\tthis.listener = listener;\n\n\t\t/**\n\t\t * The audio context.\n\t\t *\n\t\t * @type {AudioContext}\n\t\t * @readonly\n\t\t */\n\t\tthis.context = listener.context;\n\n\t\t/**\n\t\t * The gain node used for volume control.\n\t\t *\n\t\t * @type {GainNode}\n\t\t * @readonly\n\t\t */\n\t\tthis.gain = this.context.createGain();\n\t\tthis.gain.connect( listener.getInput() );\n\n\t\t/**\n\t\t * Whether to start playback automatically or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.autoplay = false;\n\n\t\t/**\n\t\t * A reference to an audio buffer.\n\t\t *\n\t\t * Defined via {@link Audio#setBuffer}.\n\t\t *\n\t\t * @type {?AudioBuffer}\n\t\t * @default null\n\t\t * @readonly\n\t\t */\n\t\tthis.buffer = null;\n\n\t\t/**\n\t\t * Modify pitch, measured in cents. +/- 100 is a semitone.\n\t\t * +/- 1200 is an octave.\n\t\t *\n\t\t * Defined via {@link Audio#setDetune}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t * @readonly\n\t\t */\n\t\tthis.detune = 0;\n\n\t\t/**\n\t\t * Whether the audio should loop or not.\n\t\t *\n\t\t * Defined via {@link Audio#setLoop}.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t * @readonly\n\t\t */\n\t\tthis.loop = false;\n\n\t\t/**\n\t\t * Defines where in the audio buffer the replay should\n\t\t * start, in seconds.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.loopStart = 0;\n\n\t\t/**\n\t\t * Defines where in the audio buffer the replay should\n\t\t * stop, in seconds.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.loopEnd = 0;\n\n\t\t/**\n\t\t * An offset to the time within the audio buffer the playback\n\t\t * should begin, in seconds.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.offset = 0;\n\n\t\t/**\n\t\t * Overrides the default duration of the audio.\n\t\t *\n\t\t * @type {undefined|number}\n\t\t * @default undefined\n\t\t */\n\t\tthis.duration = undefined;\n\n\t\t/**\n\t\t * The playback speed.\n\t\t *\n\t\t * Defined via {@link Audio#setPlaybackRate}.\n\t\t *\n\t\t * @type {number}\n\t\t * @readonly\n\t\t * @default 1\n\t\t */\n\t\tthis.playbackRate = 1;\n\n\t\t/**\n\t\t * Indicates whether the audio is playing or not.\n\t\t *\n\t\t * This flag will be automatically set when using {@link Audio#play},\n\t\t * {@link Audio#pause}, {@link Audio#stop}.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default false\n\t\t */\n\t\tthis.isPlaying = false;\n\n\t\t/**\n\t\t * Indicates whether the audio playback can be controlled\n\t\t * with method like {@link Audio#play} or {@link Audio#pause}.\n\t\t *\n\t\t * This flag will be automatically set when audio sources are\n\t\t * defined.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.hasPlaybackControl = true;\n\n\t\t/**\n\t\t * Holds a reference to the current audio source.\n\t\t *\n\t\t * The property is automatically by one of the `set*()` methods.\n\t\t *\n\t\t * @type {?AudioNode}\n\t\t * @readonly\n\t\t * @default null\n\t\t */\n\t\tthis.source = null;\n\n\t\t/**\n\t\t * Defines the source type.\n\t\t *\n\t\t * The property is automatically by one of the `set*()` methods.\n\t\t *\n\t\t * @type {('empty'|'audioNode'|'mediaNode'|'mediaStreamNode'|'buffer')}\n\t\t * @readonly\n\t\t * @default 'empty'\n\t\t */\n\t\tthis.sourceType = 'empty';\n\n\t\tthis._startedAt = 0;\n\t\tthis._progress = 0;\n\t\tthis._connected = false;\n\n\t\t/**\n\t\t * Can be used to apply a variety of low-order filters to create\n\t\t * more complex sound effects e.g. via `BiquadFilterNode`.\n\t\t *\n\t\t * The property is automatically set by {@link Audio#setFilters}.\n\t\t *\n\t\t * @type {Array}\n\t\t * @readonly\n\t\t */\n\t\tthis.filters = [];\n\n\t}\n\n\t/**\n\t * Returns the output audio node.\n\t *\n\t * @return {GainNode} The output node.\n\t */\n\tgetOutput() {\n\n\t\treturn this.gain;\n\n\t}\n\n\t/**\n\t * Sets the given audio node as the source of this instance.\n\t *\n\t * {@link Audio#sourceType} is set to `audioNode` and {@link Audio#hasPlaybackControl} to `false`.\n\t *\n\t * @param {AudioNode} audioNode - The audio node like an instance of `OscillatorNode`.\n\t * @return {Audio} A reference to this instance.\n\t */\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\t/**\n\t * Sets the given media element as the source of this instance.\n\t *\n\t * {@link Audio#sourceType} is set to `mediaNode` and {@link Audio#hasPlaybackControl} to `false`.\n\t *\n\t * @param {HTMLMediaElement} mediaElement - The media element.\n\t * @return {Audio} A reference to this instance.\n\t */\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\t/**\n\t * Sets the given media stream as the source of this instance.\n\t *\n\t * {@link Audio#sourceType} is set to `mediaStreamNode` and {@link Audio#hasPlaybackControl} to `false`.\n\t *\n\t * @param {MediaStream} mediaStream - The media stream.\n\t * @return {Audio} A reference to this instance.\n\t */\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\t/**\n\t * Sets the given audio buffer as the source of this instance.\n\t *\n\t * {@link Audio#sourceType} is set to `buffer` and {@link Audio#hasPlaybackControl} to `true`.\n\t *\n\t * @param {AudioBuffer} audioBuffer - The audio buffer.\n\t * @return {Audio} A reference to this instance.\n\t */\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\t/**\n\t * Starts the playback of the audio.\n\t *\n\t * Can only be used with compatible audio sources that allow playback control.\n\t *\n\t * @param {number} [delay=0] - The delay, in seconds, at which the audio should start playing.\n\t * @return {Audio|undefined} A reference to this instance.\n\t */\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\t/**\n\t * Pauses the playback of the audio.\n\t *\n\t * Can only be used with compatible audio sources that allow playback control.\n\t *\n\t * @return {Audio|undefined} A reference to this instance.\n\t */\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\t/**\n\t * Stops the playback of the audio.\n\t *\n\t * Can only be used with compatible audio sources that allow playback control.\n\t *\n\t * @param {number} [delay=0] - The delay, in seconds, at which the audio should stop playing.\n\t * @return {Audio|undefined} A reference to this instance.\n\t */\n\tstop( delay = 0 ) {\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( this.context.currentTime + delay );\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\t/**\n\t * Connects to the audio source. This is used internally on\n\t * initialisation and when setting / removing filters.\n\t *\n\t * @return {Audio} A reference to this instance.\n\t */\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\t/**\n\t * Disconnects to the audio source. This is used internally on\n\t * initialisation and when setting / removing filters.\n\t *\n\t * @return {Audio|undefined} A reference to this instance.\n\t */\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\t/**\n\t * Returns the current set filters.\n\t *\n\t * @return {Array} The list of filters.\n\t */\n\tgetFilters() {\n\n\t\treturn this.filters;\n\n\t}\n\n\t/**\n\t * Sets an array of filters and connects them with the audio source.\n\t *\n\t * @param {Array} [value] - A list of filters.\n\t * @return {Audio} A reference to this instance.\n\t */\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\t/**\n\t * Defines the detuning of oscillation in cents.\n\t *\n\t * @param {number} value - The detuning of oscillation in cents.\n\t * @return {Audio} A reference to this instance.\n\t */\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\t/**\n\t * Returns the detuning of oscillation in cents.\n\t *\n\t * @return {number} The detuning of oscillation in cents.\n\t */\n\tgetDetune() {\n\n\t\treturn this.detune;\n\n\t}\n\n\t/**\n\t * Returns the first filter in the list of filters.\n\t *\n\t * @return {AudioNode|undefined} The first filter in the list of filters.\n\t */\n\tgetFilter() {\n\n\t\treturn this.getFilters()[ 0 ];\n\n\t}\n\n\t/**\n\t * Applies a single filter node to the audio.\n\t *\n\t * @param {AudioNode} [filter] - The filter to set.\n\t * @return {Audio} A reference to this instance.\n\t */\n\tsetFilter( filter ) {\n\n\t\treturn this.setFilters( filter ? [ filter ] : [] );\n\n\t}\n\n\t/**\n\t * Sets the playback rate.\n\t *\n\t * Can only be used with compatible audio sources that allow playback control.\n\t *\n\t * @param {number} [value] - The playback rate to set.\n\t * @return {Audio|undefined} A reference to this instance.\n\t */\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\t/**\n\t * Returns the current playback rate.\n\n\t * @return {number} The playback rate.\n\t */\n\tgetPlaybackRate() {\n\n\t\treturn this.playbackRate;\n\n\t}\n\n\t/**\n\t * Automatically called when playback finished.\n\t */\n\tonEnded() {\n\n\t\tthis.isPlaying = false;\n\t\tthis._progress = 0;\n\n\t}\n\n\t/**\n\t * Returns the loop flag.\n\t *\n\t * Can only be used with compatible audio sources that allow playback control.\n\t *\n\t * @return {boolean} Whether the audio should loop or not.\n\t */\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\t/**\n\t * Sets the loop flag.\n\t *\n\t * Can only be used with compatible audio sources that allow playback control.\n\t *\n\t * @param {boolean} value - Whether the audio should loop or not.\n\t * @return {Audio|undefined} A reference to this instance.\n\t */\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\t/**\n\t * Sets the loop start value which defines where in the audio buffer the replay should\n\t * start, in seconds.\n\t *\n\t * @param {number} value - The loop start value.\n\t * @return {Audio} A reference to this instance.\n\t */\n\tsetLoopStart( value ) {\n\n\t\tthis.loopStart = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the loop end value which defines where in the audio buffer the replay should\n\t * stop, in seconds.\n\t *\n\t * @param {number} value - The loop end value.\n\t * @return {Audio} A reference to this instance.\n\t */\n\tsetLoopEnd( value ) {\n\n\t\tthis.loopEnd = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the volume.\n\t *\n\t * @return {number} The volume.\n\t */\n\tgetVolume() {\n\n\t\treturn this.gain.gain.value;\n\n\t}\n\n\t/**\n\t * Sets the volume.\n\t *\n\t * @param {number} value - The volume to set.\n\t * @return {Audio} A reference to this instance.\n\t */\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\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.sourceType !== 'buffer' ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: Audio source type cannot be copied.' );\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tthis.autoplay = source.autoplay;\n\n\t\tthis.buffer = source.buffer;\n\t\tthis.detune = source.detune;\n\t\tthis.loop = source.loop;\n\t\tthis.loopStart = source.loopStart;\n\t\tthis.loopEnd = source.loopEnd;\n\t\tthis.offset = source.offset;\n\t\tthis.duration = source.duration;\n\t\tthis.playbackRate = source.playbackRate;\n\t\tthis.hasPlaybackControl = source.hasPlaybackControl;\n\t\tthis.sourceType = source.sourceType;\n\n\t\tthis.filters = source.filters.slice();\n\n\t\treturn this;\n\n\t}\n\n\tclone( recursive ) {\n\n\t\treturn new this.constructor( this.listener ).copy( this, recursive );\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\n/**\n * Represents a positional audio object.\n *\n * ```js\n * // create an AudioListener and add it to the camera\n * const listener = new THREE.AudioListener();\n * camera.add( listener );\n *\n * // create the PositionalAudio object (passing in the listener)\n * const sound = new THREE.PositionalAudio( listener );\n *\n * // load a sound and set it as the PositionalAudio object's buffer\n * const audioLoader = new THREE.AudioLoader();\n * audioLoader.load( 'sounds/song.ogg', function( buffer ) {\n * \tsound.setBuffer( buffer );\n * \tsound.setRefDistance( 20 );\n * \tsound.play();\n * });\n *\n * // create an object for the sound to play from\n * const sphere = new THREE.SphereGeometry( 20, 32, 16 );\n * const material = new THREE.MeshPhongMaterial( { color: 0xff2200 } );\n * const mesh = new THREE.Mesh( sphere, material );\n * scene.add( mesh );\n *\n * // finally add the sound to the mesh\n * mesh.add( sound );\n *\n * @augments Audio\n */\nclass PositionalAudio extends Audio {\n\n\t/**\n\t * Constructs a positional audio.\n\t *\n\t * @param {AudioListener} listener - The global audio listener.\n\t */\n\tconstructor( listener ) {\n\n\t\tsuper( listener );\n\n\t\t/**\n\t\t * The panner node represents the location, direction, and behavior of an audio\n\t\t * source in 3D space.\n\t\t *\n\t\t * @type {PannerNode}\n\t\t * @readonly\n\t\t */\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\treturn this;\n\n\t}\n\n\tdisconnect() {\n\n\t\tsuper.disconnect();\n\n\t\tthis.panner.disconnect( this.gain );\n\n\t\treturn this;\n\n\t}\n\n\tgetOutput() {\n\n\t\treturn this.panner;\n\n\t}\n\n\t/**\n\t * Returns the current reference distance.\n\t *\n\t * @return {number} The reference distance.\n\t */\n\tgetRefDistance() {\n\n\t\treturn this.panner.refDistance;\n\n\t}\n\n\t/**\n\t * Defines the reference distance for reducing volume as the audio source moves\n\t * further from the listener – i.e. the distance at which the volume reduction\n\t * starts taking effect.\n\t *\n\t * @param {number} value - The reference distance to set.\n\t * @return {PositionalAudio} A reference to this instance.\n\t */\n\tsetRefDistance( value ) {\n\n\t\tthis.panner.refDistance = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the current rolloff factor.\n\t *\n\t * @return {number} The rolloff factor.\n\t */\n\tgetRolloffFactor() {\n\n\t\treturn this.panner.rolloffFactor;\n\n\t}\n\n\t/**\n\t * Defines how quickly the volume is reduced as the source moves away from the listener.\n\t *\n\t * @param {number} value - The rolloff factor.\n\t * @return {PositionalAudio} A reference to this instance.\n\t */\n\tsetRolloffFactor( value ) {\n\n\t\tthis.panner.rolloffFactor = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the current distance model.\n\t *\n\t * @return {('linear'|'inverse'|'exponential')} The distance model.\n\t */\n\tgetDistanceModel() {\n\n\t\treturn this.panner.distanceModel;\n\n\t}\n\n\t/**\n\t * Defines which algorithm to use to reduce the volume of the audio source\n\t * as it moves away from the listener.\n\t *\n\t * Read [the spec]{@link https://www.w3.org/TR/webaudio-1.1/#enumdef-distancemodeltype}\n\t * for more details.\n\t *\n\t * @param {('linear'|'inverse'|'exponential')} value - The distance model to set.\n\t * @return {PositionalAudio} A reference to this instance.\n\t */\n\tsetDistanceModel( value ) {\n\n\t\tthis.panner.distanceModel = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns the current max distance.\n\t *\n\t * @return {number} The max distance.\n\t */\n\tgetMaxDistance() {\n\n\t\treturn this.panner.maxDistance;\n\n\t}\n\n\t/**\n\t * Defines the maximum distance between the audio source and the listener,\n\t * after which the volume is not reduced any further.\n\t *\n\t * This value is used only by the `linear` distance model.\n\t *\n\t * @param {number} value - The max distance.\n\t * @return {PositionalAudio} A reference to this instance.\n\t */\n\tsetMaxDistance( value ) {\n\n\t\tthis.panner.maxDistance = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the directional cone in which the audio can be listened.\n\t *\n\t * @param {number} coneInnerAngle - An angle, in degrees, of a cone inside of which there will be no volume reduction.\n\t * @param {number} coneOuterAngle - An angle, in degrees, of a cone outside of which the volume will be reduced by a constant value, defined by the `coneOuterGain` parameter.\n\t * @param {number} coneOuterGain - The amount of volume reduction outside the cone defined by the `coneOuterAngle`. When set to `0`, no sound can be heard.\n\t * @return {PositionalAudio} A reference to this instance.\n\t */\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\n/**\n * This class can be used to analyse audio data.\n *\n * ```js\n * // create an AudioListener and add it to the camera\n * const listener = new THREE.AudioListener();\n * camera.add( listener );\n *\n * // create an Audio source\n * const sound = new THREE.Audio( listener );\n *\n * // load a sound and set it as the Audio object's buffer\n * const audioLoader = new THREE.AudioLoader();\n * audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {\n * \tsound.setBuffer( buffer );\n * \tsound.setLoop(true);\n * \tsound.setVolume(0.5);\n * \tsound.play();\n * });\n *\n * // create an AudioAnalyser, passing in the sound and desired fftSize\n * const analyser = new THREE.AudioAnalyser( sound, 32 );\n *\n * // get the average frequency of the sound\n * const data = analyser.getAverageFrequency();\n * ```\n */\nclass AudioAnalyser {\n\n\t/**\n\t * Constructs a new audio analyzer.\n\t *\n\t * @param {Audio} audio - The audio to analyze.\n\t * @param {number} [fftSize=2048] - The window size in samples that is used when performing a Fast Fourier Transform (FFT) to get frequency domain data.\n\t */\n\tconstructor( audio, fftSize = 2048 ) {\n\n\t\t/**\n\t\t * The global audio listener.\n\t\t *\n\t\t * @type {AnalyserNode}\n\t\t */\n\t\tthis.analyser = audio.context.createAnalyser();\n\t\tthis.analyser.fftSize = fftSize;\n\n\t\t/**\n\t\t * Holds the analyzed data.\n\t\t *\n\t\t * @type {Uint8Array}\n\t\t */\n\t\tthis.data = new Uint8Array( this.analyser.frequencyBinCount );\n\n\t\taudio.getOutput().connect( this.analyser );\n\n\t}\n\n\t/**\n\t * Returns an array with frequency data of the audio.\n\t *\n\t * Each item in the array represents the decibel value for a specific frequency.\n\t * The frequencies are spread linearly from 0 to 1/2 of the sample rate.\n\t * For example, for 48000 sample rate, the last item of the array will represent\n\t * the decibel value for 24000 Hz.\n\t *\n\t * @return {Uint8Array} The frequency data.\n\t */\n\tgetFrequencyData() {\n\n\t\tthis.analyser.getByteFrequencyData( this.data );\n\n\t\treturn this.data;\n\n\t}\n\n\t/**\n\t * Returns the average of the frequencies returned by {@link AudioAnalyser#getFrequencyData}.\n\t *\n\t * @return {number} The average frequency.\n\t */\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\n/**\n * Buffered scene graph property that allows weighted accumulation; used internally.\n */\nclass PropertyMixer {\n\n\t/**\n\t * Constructs a new property mixer.\n\t *\n\t * @param {PropertyBinding} binding - The property binding.\n\t * @param {string} typeName - The keyframe track type name.\n\t * @param {number} valueSize - The keyframe track value size.\n\t */\n\tconstructor( binding, typeName, valueSize ) {\n\n\t\t/**\n\t\t * The property binding.\n\t\t *\n\t\t * @type {PropertyBinding}\n\t\t */\n\t\tthis.binding = binding;\n\n\t\t/**\n\t\t * The keyframe track value size.\n\t\t *\n\t\t * @type {number}\n\t\t */\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\t/**\n\t\t * TODO\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.cumulativeWeight = 0;\n\n\t\t/**\n\t\t * TODO\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t\t/**\n\t\t * TODO\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.useCount = 0;\n\n\t\t/**\n\t\t * TODO\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.referenceCount = 0;\n\n\t}\n\n\t/**\n\t * Accumulates data in the `incoming` region into `accu`.\n\t *\n\t * @param {number} accuIndex - The accumulation index.\n\t * @param {number} weight - The weight.\n\t */\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/**\n\t * Accumulates data in the `incoming` region into `add`.\n\t *\n\t * @param {number} weight - The weight.\n\t */\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/**\n\t * Applies the state of `accu` to the binding when accus differ.\n\t *\n\t * @param {number} accuIndex - The accumulation index.\n\t */\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\n\t/**\n\t * Remembers the state of the bound property and copy it to both accus.\n\t */\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/**\n\t * Applies the state previously taken via {@link PropertyMixer#saveOriginalState} to the binding.\n\t */\n\trestoreOriginalState() {\n\n\t\tconst originalValueOffset = this.valueSize * 3;\n\t\tthis.binding.setValue( this.buffer, originalValueOffset );\n\n\t}\n\n\t// internals\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.\n\n\n/**\n * This holds a reference to a real property in the scene graph; used internally.\n */\nclass PropertyBinding {\n\n\t/**\n\t * Constructs a new property binding.\n\t *\n\t * @param {Object} rootNode - The root node.\n\t * @param {string} path - The path.\n\t * @param {?Object} [parsedPath] - The parsed path.\n\t */\n\tconstructor( rootNode, path, parsedPath ) {\n\n\t\t/**\n\t\t * The object path to the animated property.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.path = path;\n\n\t\t/**\n\t\t * An object holding information about the path.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.parsedPath = parsedPath || PropertyBinding.parseTrackName( path );\n\n\t\t/**\n\t\t * The object owns the animated property.\n\t\t *\n\t\t * @type {?Object}\n\t\t */\n\t\tthis.node = PropertyBinding.findNode( rootNode, this.parsedPath.nodeName );\n\n\t\t/**\n\t\t * The root node.\n\t\t *\n\t\t * @type {Object3D|Skeleton}\n\t\t */\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\t/**\n\t * Factory method for creating a property binding from the given parameters.\n\t *\n\t * @static\n\t * @param {Object} root - The root node.\n\t * @param {string} path - The path.\n\t * @param {?Object} [parsedPath] - The parsed path.\n\t * @return {PropertyBinding|Composite} The created property binding or composite.\n\t */\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} The sanitized node name.\n\t */\n\tstatic sanitizeNodeName( name ) {\n\n\t\treturn name.replace( /\\s/g, '_' ).replace( _reservedRe, '' );\n\n\t}\n\n\t/**\n\t * Parses the given track name (an object path to an animated property) and\n\t * returns an object with information about the path. Matches strings in the following forms:\n\t *\n\t * - nodeName.property\n\t * - nodeName.property[accessor]\n\t * - nodeName.material.property[accessor]\n\t * - uuid.property[accessor]\n\t * - uuid.objectName[objectIndex].propertyName[propertyIndex]\n\t * - parentName/nodeName.property\n\t * - parentName/parentName/nodeName.property[index]\n\t * - .bone[Armature.DEF_cog].position\n\t * - scene:helium_balloon_model:helium_balloon_model.position\n\t *\n\t * @static\n\t * @param {string} trackName - The track name to parse.\n\t * @return {Object} The parsed track name as an object.\n\t */\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\t/**\n\t * Searches for a node in the hierarchy of the given root object by the given\n\t * node name.\n\t *\n\t * @static\n\t * @param {Object} root - The root object.\n\t * @param {string|number} nodeName - The name of the node.\n\t * @return {?Object} The found node. Returns `null` if no object was found.\n\t */\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/**\n\t * Creates a getter / setter pair for the property tracked by this binding.\n\t */\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.isMaterial === true ) {\n\n\t\t\tversioning = this.Versioning.NeedsUpdate;\n\n\t\t} else if ( targetObject.isObject3D === true ) {\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\t/**\n\t * Unbinds the property.\n\t */\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 * 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 * - Instead pass this object as 'root'.\n * - You can also add and remove objects later when the mixer 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 on the group.\n *\n * Limitation:\n *\n * - The animated properties must be compatible among the all objects in the group.\n * - A single property can either be controlled through a target group or directly, but not both.\n */\nclass AnimationObjectGroup {\n\n\t/**\n\t * Constructs a new animation group.\n\t *\n\t * @param {...Object3D} arguments - An arbitrary number of 3D objects that share the same animation state.\n\t */\n\tconstructor() {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isAnimationObjectGroup = true;\n\n\t\t/**\n\t\t * The UUID of the 3D object.\n\t\t *\n\t\t * @type {string}\n\t\t * @readonly\n\t\t */\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\t/**\n\t * Adds an arbitrary number of objects to this animation group.\n\t *\n\t * @param {...Object3D} arguments - The 3D objects to add.\n\t */\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\t/**\n\t * Removes an arbitrary number of objects to this animation group\n\t *\n\t * @param {...Object3D} arguments - The 3D objects to remove.\n\t */\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/**\n\t * Deallocates all memory resources for the passed 3D objects of this animation group.\n\t *\n\t * @param {...Object3D} arguments - The 3D objects to uncache.\n\t */\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\n/**\n * An instance of `AnimationAction` schedules the playback of an animation which is\n * stored in {@link AnimationClip}.\n */\nclass AnimationAction {\n\n\t/**\n\t * Constructs a new animation action.\n\t *\n\t * @param {AnimationMixer} mixer - The mixer that is controlled by this action.\n\t * @param {AnimationClip} clip - The animation clip that holds the actual keyframes.\n\t * @param {?Object3D} [localRoot=null] - The root object on which this action is performed.\n\t * @param {(NormalAnimationBlendMode|AdditiveAnimationBlendMode)} [blendMode] - The blend mode.\n\t */\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\n\t\t/**\n\t\t * Defines how the animation is blended/combined when two or more animations\n\t\t * are simultaneously played.\n\t\t *\n\t\t * @type {(NormalAnimationBlendMode|AdditiveAnimationBlendMode)}\n\t\t */\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\t/**\n\t\t * The loop mode, set via {@link AnimationAction#setLoop}.\n\t\t *\n\t\t * @type {(LoopRepeat|LoopOnce|LoopPingPong)}\n\t\t * @default LoopRepeat\n\t\t */\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/**\n\t\t * The local time of this action (in seconds, starting with `0`).\n\t\t *\n\t\t * The value gets clamped or wrapped to `[0,clip.duration]` (according to the\n\t\t * loop state).\n\t\t *\n\t\t * @type {number}\n\t\t * @default Infinity\n\t\t */\n\t\tthis.time = 0;\n\n\t\t/**\n\t\t * Scaling factor for the {@link AnimationAction#time}. A value of `0` causes the\n\t\t * animation to pause. Negative values cause the animation to play backwards.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.timeScale = 1;\n\t\tthis._effectiveTimeScale = 1;\n\n\t\t/**\n\t\t * The degree of influence of this action (in the interval `[0, 1]`). Values\n\t\t * between `0` (no impact) and `1` (full impact) can be used to blend between\n\t\t * several actions.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.weight = 1;\n\t\tthis._effectiveWeight = 1;\n\n\t\t/**\n\t\t * The number of repetitions of the performed clip over the course of this action.\n\t\t * Can be set via {@link AnimationAction#setLoop}.\n\t\t *\n\t\t * Setting this number has no effect if {@link AnimationAction#loop} is set to\n\t\t * `THREE:LoopOnce`.\n\t\t *\n\t\t * @type {number}\n\t\t * @default Infinity\n\t\t */\n\t\tthis.repetitions = Infinity;\n\n\t\t/**\n\t\t * If set to `true`, the playback of the action is paused.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.paused = false;\n\n\t\t/**\n\t\t * If set to `false`, the action is disabled so it has no impact.\n\t\t *\n\t\t * When the action is re-enabled, the animation continues from its current\n\t\t * time (setting `enabled` to `false` doesn't reset the action).\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.enabled = true;\n\n\t\t/**\n\t\t * If set to true the animation will automatically be paused on its last frame.\n\t\t *\n\t\t * If set to false, {@link AnimationAction#enabled} will automatically be switched\n\t\t * to `false` when the last loop of the action has finished, so that this action has\n\t\t * no further impact.\n\t\t *\n\t\t * Note: This member has no impact if the action is interrupted (it\n\t\t * has only an effect if its last loop has really finished).\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default false\n\t\t */\n\t\tthis.clampWhenFinished = false;\n\n\t\t/**\n\t\t * Enables smooth interpolation without separate clips for start, loop and end.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.zeroSlopeAtStart = true;\n\n\t\t/**\n\t\t * Enables smooth interpolation without separate clips for start, loop and end.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.zeroSlopeAtEnd = true;\n\n\t}\n\n\t/**\n\t * Starts the playback of the animation.\n\t *\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tplay() {\n\n\t\tthis._mixer._activateAction( this );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Stops the playback of the animation.\n\t *\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tstop() {\n\n\t\tthis._mixer._deactivateAction( this );\n\n\t\treturn this.reset();\n\n\t}\n\n\t/**\n\t * Resets the playback of the animation.\n\t *\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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\t/**\n\t * Returns `true` if the animation is running.\n\t *\n\t * @return {boolean} Whether the animation is running or not.\n\t */\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/**\n\t * Returns `true` when {@link AnimationAction#play} has been called.\n\t *\n\t * @return {boolean} Whether the animation is scheduled or not.\n\t */\n\tisScheduled() {\n\n\t\treturn this._mixer._isActiveAction( this );\n\n\t}\n\n\t/**\n\t * Defines the time when the animation should start.\n\t *\n\t * @param {number} time - The start time in seconds.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tstartAt( time ) {\n\n\t\tthis._startTime = time;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Configures the loop settings for this action.\n\t *\n\t * @param {(LoopRepeat|LoopOnce|LoopPingPong)} mode - The loop mode.\n\t * @param {number} repetitions - The number of repetitions.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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/**\n\t * Sets the effective weight of this action.\n\t *\n\t * An action has no effect and thus an effective weight of zero when the\n\t * action is disabled.\n\t *\n\t * @param {number} weight - The weight to set.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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/**\n\t * Returns the effective weight of this action.\n\t *\n\t * @return {number} The effective weight.\n\t */\n\tgetEffectiveWeight() {\n\n\t\treturn this._effectiveWeight;\n\n\t}\n\n\t/**\n\t * Fades the animation in by increasing its weight gradually from `0` to `1`,\n\t * within the passed time interval.\n\t *\n\t * @param {number} duration - The duration of the fade.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tfadeIn( duration ) {\n\n\t\treturn this._scheduleFading( duration, 0, 1 );\n\n\t}\n\n\t/**\n\t * Fades the animation out by decreasing its weight gradually from `1` to `0`,\n\t * within the passed time interval.\n\t *\n\t * @param {number} duration - The duration of the fade.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tfadeOut( duration ) {\n\n\t\treturn this._scheduleFading( duration, 1, 0 );\n\n\t}\n\n\t/**\n\t * Causes this action to fade in and the given action to fade out,\n\t * within the passed time interval.\n\t *\n\t * @param {AnimationAction} fadeOutAction - The animation action to fade out.\n\t * @param {number} duration - The duration of the fade.\n\t * @param {boolean} [warp=false] - Whether warping should be used or not.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tcrossFadeFrom( fadeOutAction, duration, warp = false ) {\n\n\t\tfadeOutAction.fadeOut( duration );\n\t\tthis.fadeIn( duration );\n\n\t\tif ( warp === true ) {\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\t/**\n\t * Causes this action to fade out and the given action to fade in,\n\t * within the passed time interval.\n\t *\n\t * @param {AnimationAction} fadeInAction - The animation action to fade in.\n\t * @param {number} duration - The duration of the fade.\n\t * @param {boolean} [warp=false] - Whether warping should be used or not.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tcrossFadeTo( fadeInAction, duration, warp = false ) {\n\n\t\treturn fadeInAction.crossFadeFrom( this, duration, warp );\n\n\t}\n\n\t/**\n\t * Stops any fading which is applied to this action.\n\t *\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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/**\n\t * Sets the effective time scale of this action.\n\t *\n\t * An action has no effect and thus an effective time scale of zero when the\n\t * action is paused.\n\t *\n\t * @param {number} timeScale - The time scale to set.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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/**\n\t * Returns the effective time scale of this action.\n\t *\n\t * @return {number} The effective time scale.\n\t */\n\tgetEffectiveTimeScale() {\n\n\t\treturn this._effectiveTimeScale;\n\n\t}\n\n\t/**\n\t * Sets the duration for a single loop of this action.\n\t *\n\t * @param {number} duration - The duration to set.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\tsetDuration( duration ) {\n\n\t\tthis.timeScale = this._clip.duration / duration;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\t/**\n\t * Synchronizes this action with the passed other action.\n\t *\n\t * @param {AnimationAction} action - The action to sync with.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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\t/**\n\t * Decelerates this animation's speed to `0` within the passed time interval.\n\t *\n\t * @param {number} duration - The duration.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\n\thalt( duration ) {\n\n\t\treturn this.warp( this._effectiveTimeScale, 0, duration );\n\n\t}\n\n\t/**\n\t * Changes the playback speed, within the passed time interval, by modifying\n\t * {@link AnimationAction#timeScale} gradually from `startTimeScale` to\n\t * `endTimeScale`.\n\t *\n\t * @param {number} startTimeScale - The start time scale.\n\t * @param {number} endTimeScale - The end time scale.\n\t * @param {number} duration - The duration.\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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\t/**\n\t * Stops any scheduled warping which is applied to this action.\n\t *\n\t * @return {AnimationAction} A reference to this animation action.\n\t */\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/**\n\t * Returns the animation mixer of this animation action.\n\t *\n\t * @return {AnimationMixer} The animation mixer.\n\t */\n\tgetMixer() {\n\n\t\treturn this._mixer;\n\n\t}\n\n\t/**\n\t * Returns the animation clip of this animation action.\n\t *\n\t * @return {AnimationClip} The animation clip.\n\t */\n\tgetClip() {\n\n\t\treturn this._clip;\n\n\t}\n\n\t/**\n\t * Returns the root object of this animation action.\n\t *\n\t * @return {Object3D} The root object.\n\t */\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/**\n * `AnimationMixer` is a player for animations on a particular object in\n * the scene. When multiple objects in the scene are animated independently,\n * one `AnimationMixer` may be used for each object.\n */\nclass AnimationMixer extends EventDispatcher {\n\n\t/**\n\t * Constructs a new animation mixer.\n\t *\n\t * @param {Object3D} root - The object whose animations shall be played by this mixer.\n\t */\n\tconstructor( root ) {\n\n\t\tsuper();\n\n\t\tthis._root = root;\n\t\tthis._initMemoryManager();\n\t\tthis._accuIndex = 0;\n\n\t\t/**\n\t\t * The global mixer time (in seconds; starting with `0` on the mixer's creation).\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.time = 0;\n\n\t\t/**\n\t\t * A scaling factor for the global time.\n\t\t *\n\t\t * Note: Setting this member to `0` and later back to `1` is a\n\t\t * possibility to pause/unpause all actions that are controlled by this\n\t\t * mixer.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\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/**\n\t * Returns an instance of {@link AnimationAction} for the passed clip.\n\t *\n\t * If an action fitting the clip and root parameters doesn't yet exist, it\n\t * will be created by this method. Calling this method several times with the\n\t * same clip and root parameters always returns the same action.\n\t *\n\t * @param {AnimationClip|string} clip - An animation clip or alternatively the name of the animation clip.\n\t * @param {Object3D} [optionalRoot] - An alternative root object.\n\t * @param {(NormalAnimationBlendMode|AdditiveAnimationBlendMode)} [blendMode] - The blend mode.\n\t * @return {?AnimationAction} The animation action.\n\t */\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/**\n\t * Returns an existing animation action for the passed clip.\n\t *\n\t * @param {AnimationClip|string} clip - An animation clip or alternatively the name of the animation clip.\n\t * @param {Object3D} [optionalRoot] - An alternative root object.\n\t * @return {?AnimationAction} The animation action. Returns `null` if no action was found.\n\t */\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/**\n\t * Deactivates all previously scheduled actions on this mixer.\n\t *\n\t * @return {AnimationMixer} A reference to thi animation mixer.\n\t */\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/**\n\t * Advances the global mixer time and updates the animation.\n\t *\n\t * This is usually done in the render loop by passing the delta\n\t * time from {@link Clock} or {@link Timer}.\n\t *\n\t * @param {number} deltaTime - The delta time in seconds.\n\t * @return {AnimationMixer} A reference to thi animation mixer.\n\t */\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/**\n\t * Sets the global mixer to a specific time and updates the animation accordingly.\n\t *\n\t * This is useful when you need to jump to an exact time in an animation. The\n\t * input parameter will be scaled by {@link AnimationMixer#timeScale}\n\t *\n\t * @param {number} time - The time to set in seconds.\n\t * @return {AnimationMixer} A reference to thi animation mixer.\n\t */\n\tsetTime( time ) {\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( time ); // Update used to set exact time. Returns \"this\" AnimationMixer object.\n\n\t}\n\n\t/**\n\t * Returns this mixer's root object.\n\t *\n\t * @return {Object3D} The mixer's root object.\n\t */\n\tgetRoot() {\n\n\t\treturn this._root;\n\n\t}\n\n\t/**\n\t * Deallocates all memory resources for a clip. Before using this method make\n\t * sure to call {@link AnimationAction#stop} for all related actions.\n\t *\n\t * @param {AnimationClip} clip - The clip to uncache.\n\t */\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/**\n\t * Deallocates all memory resources for a root object. Before using this\n\t * method make sure to call {@link AnimationAction#stop} for all related\n\t * actions or alternatively {@link AnimationMixer#stopAllAction} when the\n\t * mixer operates on a single root.\n\t *\n\t * @param {Object3D} root - The root object to uncache.\n\t */\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/**\n\t * Deallocates all memory resources for an action. The action is identified by the\n\t * given clip and an optional root object. Before using this method make\n\t * sure to call {@link AnimationAction#stop} to deactivate the action.\n\t *\n\t * @param {AnimationClip|string} clip - An animation clip or alternatively the name of the animation clip.\n\t * @param {Object3D} [optionalRoot] - An alternative root object.\n\t */\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\n/**\n * Represents a 3D render target.\n *\n * @augments RenderTarget\n */\nclass RenderTarget3D extends RenderTarget {\n\n\t/**\n\t * Constructs a new 3D render target.\n\t *\n\t * @param {number} [width=1] - The width of the render target.\n\t * @param {number} [height=1] - The height of the render target.\n\t * @param {number} [depth=1] - The height of the render target.\n\t * @param {RenderTarget~Options} [options] - The configuration object.\n\t */\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isRenderTarget3D = true;\n\n\t\tthis.depth = depth;\n\n\t\t/**\n\t\t * Overwritten with a different texture type.\n\t\t *\n\t\t * @type {Data3DTexture}\n\t\t */\n\t\tthis.texture = new Data3DTexture( null, width, height, depth );\n\t\tthis._setTextureOptions( options );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\n/**\n * Represents a uniform which is a global shader variable. They are passed to shader programs.\n *\n * When declaring a uniform of a {@link ShaderMaterial}, it is declared by value or by object.\n * ```js\n * uniforms: {\n * \ttime: { value: 1.0 },\n * \tresolution: new Uniform( new Vector2() )\n * };\n * ```\n * Since this class can only be used in context of {@link ShaderMaterial}, it is only supported\n * in {@link WebGLRenderer}.\n */\nclass Uniform {\n\n\t/**\n\t * Constructs a new uniform.\n\t *\n\t * @param {any} value - The uniform value.\n\t */\n\tconstructor( value ) {\n\n\t\t/**\n\t\t * The uniform value.\n\t\t *\n\t\t * @type {any}\n\t\t */\n\t\tthis.value = value;\n\n\t}\n\n\t/**\n\t * Returns a new uniform with copied values from this instance.\n\t * If the value has a `clone()` method, the value is cloned as well.\n\t *\n\t * @return {Uniform} A clone of this instance.\n\t */\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\n/**\n * A class for managing multiple uniforms in a single group. The renderer will process\n * such a definition as a single UBO.\n *\n * Since this class can only be used in context of {@link ShaderMaterial}, it is only supported\n * in {@link WebGLRenderer}.\n *\n * @augments EventDispatcher\n */\nclass UniformsGroup extends EventDispatcher {\n\n\t/**\n\t * Constructs a new uniforms group.\n\t */\n\tconstructor() {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isUniformsGroup = true;\n\n\t\t/**\n\t\t * The ID of the 3D object.\n\t\t *\n\t\t * @name UniformsGroup#id\n\t\t * @type {number}\n\t\t * @readonly\n\t\t */\n\t\tObject.defineProperty( this, 'id', { value: _id ++ } );\n\n\t\t/**\n\t\t * The name of the uniforms group.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The buffer usage.\n\t\t *\n\t\t * @type {(StaticDrawUsage|DynamicDrawUsage|StreamDrawUsage|StaticReadUsage|DynamicReadUsage|StreamReadUsage|StaticCopyUsage|DynamicCopyUsage|StreamCopyUsage)}\n\t\t * @default StaticDrawUsage\n\t\t */\n\t\tthis.usage = StaticDrawUsage;\n\n\t\t/**\n\t\t * An array holding the uniforms.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.uniforms = [];\n\n\t}\n\n\t/**\n\t * Adds the given uniform to this uniforms group.\n\t *\n\t * @param {Uniform} uniform - The uniform to add.\n\t * @return {UniformsGroup} A reference to this uniforms group.\n\t */\n\tadd( uniform ) {\n\n\t\tthis.uniforms.push( uniform );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Removes the given uniform from this uniforms group.\n\t *\n\t * @param {Uniform} uniform - The uniform to remove.\n\t * @return {UniformsGroup} A reference to this uniforms group.\n\t */\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\t/**\n\t * Sets the name of this uniforms group.\n\t *\n\t * @param {string} name - The name to set.\n\t * @return {UniformsGroup} A reference to this uniforms group.\n\t */\n\tsetName( name ) {\n\n\t\tthis.name = name;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the usage of this uniforms group.\n\t *\n\t * @param {(StaticDrawUsage|DynamicDrawUsage|StreamDrawUsage|StaticReadUsage|DynamicReadUsage|StreamReadUsage|StaticCopyUsage|DynamicCopyUsage|StreamCopyUsage)} value - The usage to set.\n\t * @return {UniformsGroup} A reference to this uniforms group.\n\t */\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t *\n\t * @fires Texture#dispose\n\t */\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\t/**\n\t * Copies the values of the given uniforms group to this instance.\n\t *\n\t * @param {UniformsGroup} source - The uniforms group to copy.\n\t * @return {UniformsGroup} A reference to this uniforms group.\n\t */\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\t/**\n\t * Returns a new uniforms group with copied values from this instance.\n\t *\n\t * @return {UniformsGroup} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\n/**\n * An instanced version of an interleaved buffer.\n *\n * @augments InterleavedBuffer\n */\nclass InstancedInterleavedBuffer extends InterleavedBuffer {\n\n\t/**\n\t * Constructs a new instanced interleaved buffer.\n\t *\n\t * @param {TypedArray} array - A typed array with a shared buffer storing attribute data.\n\t * @param {number} stride - The number of typed-array elements per vertex.\n\t * @param {number} [meshPerAttribute=1] - Defines how often a value of this interleaved buffer should be repeated.\n\t */\n\tconstructor( array, stride, meshPerAttribute = 1 ) {\n\n\t\tsuper( array, stride );\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isInstancedInterleavedBuffer = true;\n\n\t\t/**\n\t\t * Defines how often a value of this buffer attribute should be repeated,\n\t\t * see {@link InstancedBufferAttribute#meshPerAttribute}.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\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\n/**\n * An alternative version of a buffer attribute with more control over the VBO.\n *\n * The renderer does not construct a VBO for this kind of attribute. Instead, it uses\n * whatever VBO is passed in constructor and can later be altered via the `buffer` property.\n *\n * The most common use case for this class is when some kind of GPGPU calculation interferes\n * or even produces the VBOs in question.\n *\n * Notice that this class can only be used with {@link WebGLRenderer}.\n */\nclass GLBufferAttribute {\n\n\t/**\n\t * Constructs a new GL buffer attribute.\n\t *\n\t * @param {WebGLBuffer} buffer - The native WebGL buffer.\n\t * @param {number} type - The native data type (e.g. `gl.FLOAT`).\n\t * @param {number} itemSize - The item size.\n\t * @param {number} elementSize - The corresponding size (in bytes) for the given `type` parameter.\n\t * @param {number} count - The expected number of vertices in VBO.\n\t * @param {boolean} [normalized=false] - Whether the data are normalized or not.\n\t */\n\tconstructor( buffer, type, itemSize, elementSize, count, normalized = false ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isGLBufferAttribute = true;\n\n\t\t/**\n\t\t * The name of the buffer attribute.\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\tthis.name = '';\n\n\t\t/**\n\t\t * The native WebGL buffer.\n\t\t *\n\t\t * @type {WebGLBuffer}\n\t\t */\n\t\tthis.buffer = buffer;\n\n\t\t/**\n\t\t * The native data type.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.type = type;\n\n\t\t/**\n\t\t * The item size, see {@link BufferAttribute#itemSize}.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.itemSize = itemSize;\n\n\t\t/**\n\t\t * The corresponding size (in bytes) for the given `type` parameter.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.elementSize = elementSize;\n\n\t\t/**\n\t\t * The expected number of vertices in VBO.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.count = count;\n\n\t\t/**\n\t\t * Applies to integer data only. Indicates how the underlying data in the buffer maps to\n\t\t * the values in the GLSL code. For instance, if `buffer` contains data of `gl.UNSIGNED_SHORT`,\n\t\t * and `normalized` is `true`, the values `0 - +65535` in the buffer data will be mapped to\n\t\t * `0.0f - +1.0f` in the GLSL attribute. If `normalized` is `false`, the values will be converted\n\t\t * to floats unmodified, i.e. `65535` becomes `65535.0f`.\n\t\t *\n\t\t * @type {boolean}\n\t\t */\n\t\tthis.normalized = normalized;\n\n\t\t/**\n\t\t * A version number, incremented every time the `needsUpdate` is set to `true`.\n\t\t *\n\t\t * @type {number}\n\t\t */\n\t\tthis.version = 0;\n\n\t}\n\n\t/**\n\t * Flag to indicate that this attribute has changed and should be re-sent to\n\t * the GPU. Set this to `true` when you modify the value of the array.\n\t *\n\t * @type {number}\n\t * @default false\n\t * @param {boolean} value\n\t */\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\t/**\n\t * Sets the given native WebGL buffer.\n\t *\n\t * @param {WebGLBuffer} buffer - The buffer to set.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\n\tsetBuffer( buffer ) {\n\n\t\tthis.buffer = buffer;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the given native data type and element size.\n\t *\n\t * @param {number} type - The native data type (e.g. `gl.FLOAT`).\n\t * @param {number} elementSize - The corresponding size (in bytes) for the given `type` parameter.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\t/**\n\t * Sets the item size.\n\t *\n\t * @param {number} itemSize - The item size.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\n\tsetItemSize( itemSize ) {\n\n\t\tthis.itemSize = itemSize;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the count (the expected number of vertices in VBO).\n\t *\n\t * @param {number} count - The count.\n\t * @return {BufferAttribute} A reference to this instance.\n\t */\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\n/**\n * This class is designed to assist with raycasting. Raycasting is used for\n * mouse picking (working out what objects in the 3d space the mouse is over)\n * amongst other things.\n */\nclass Raycaster {\n\n\t/**\n\t * Constructs a new raycaster.\n\t *\n\t * @param {Vector3} origin - The origin vector where the ray casts from.\n\t * @param {Vector3} direction - The (normalized) direction vector that gives direction to the ray.\n\t * @param {number} [near=0] - All results returned are further away than near. Near can't be negative.\n\t * @param {number} [far=Infinity] - All results returned are closer than far. Far can't be lower than near.\n\t */\n\tconstructor( origin, direction, near = 0, far = Infinity ) {\n\n\t\t/**\n\t\t * The ray used for raycasting.\n\t\t *\n\t\t * @type {Ray}\n\t\t */\n\t\tthis.ray = new Ray( origin, direction );\n\n\t\t/**\n\t\t * All results returned are further away than near. Near can't be negative.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.near = near;\n\n\t\t/**\n\t\t * All results returned are further away than near. Near can't be negative.\n\t\t *\n\t\t * @type {number}\n\t\t * @default Infinity\n\t\t */\n\t\tthis.far = far;\n\n\t\t/**\n\t\t * The camera to use when raycasting against view-dependent objects such as\n\t\t * billboarded objects like sprites. This field can be set manually or\n\t\t * is set when calling `setFromCamera()`.\n\t\t *\n\t\t * @type {?Camera}\n\t\t * @default null\n\t\t */\n\t\tthis.camera = null;\n\n\t\t/**\n\t\t * Allows to selectively ignore 3D objects when performing intersection tests.\n\t\t * The following code example ensures that only 3D objects on layer `1` will be\n\t\t * honored by raycaster.\n\t\t * ```js\n\t\t * raycaster.layers.set( 1 );\n\t\t * object.layers.enable( 1 );\n\t\t * ```\n\t\t *\n\t\t * @type {Layers}\n\t\t */\n\t\tthis.layers = new Layers();\n\n\n\t\t/**\n\t\t * A parameter object that configures the raycasting. It has the structure:\n\t\t *\n\t\t * ```\n\t\t * {\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\t\t * ```\n\t\t * Where `threshold` is the precision of the raycaster when intersecting objects, in world units.\n\t\t *\n\t\t * @type {Object}\n\t\t */\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\t/**\n\t * Updates the ray with a new origin and direction by copying the values from the arguments.\n\t *\n\t * @param {Vector3} origin - The origin vector where the ray casts from.\n\t * @param {Vector3} direction - The (normalized) direction vector that gives direction to the ray.\n\t */\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\t/**\n\t * Uses the given coordinates and camera to compute a new origin and direction for the internal ray.\n\t *\n\t * @param {Vector2} coords - 2D coordinates of the mouse, in normalized device coordinates (NDC).\n\t * X and Y components should be between `-1` and `1`.\n\t * @param {Camera} camera - The camera from which the ray should originate.\n\t */\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\t/**\n\t * Uses the given WebXR controller to compute a new origin and direction for the internal ray.\n\t *\n\t * @param {WebXRController} controller - The controller to copy the position and direction from.\n\t * @return {Raycaster} A reference to this raycaster.\n\t */\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\t/**\n\t * The intersection point of a raycaster intersection test.\n\t * @typedef {Object} Raycaster~Intersection\n\t * @property {number} distance - The distance from the ray's origin to the intersection point.\n\t * @property {number} distanceToRay - Some 3D objects e.g. {@link Points} provide the distance of the\n\t * intersection to the nearest point on the ray. For other objects it will be `undefined`.\n\t * @property {Vector3} point - The intersection point, in world coordinates.\n\t * @property {Object} face - The face that has been intersected.\n\t * @property {number} faceIndex - The face index.\n\t * @property {Object3D} object - The 3D object that has been intersected.\n\t * @property {Vector2} uv - U,V coordinates at point of intersection.\n\t * @property {Vector2} uv1 - Second set of U,V coordinates at point of intersection.\n\t * @property {Vector3} uv1 - Interpolated normal vector at point of intersection.\n\t * @property {number} instanceId - The index number of the instance where the ray\n\t * intersects the {@link InstancedMesh}.\n\t */\n\n\t/**\n\t * Checks all intersection between the ray and the object with or without the\n\t * descendants. Intersections are returned sorted by distance, closest first.\n\t *\n\t * `Raycaster` delegates to the `raycast()` method of the passed 3D object, when\n\t * evaluating whether the ray intersects the object or not. This allows meshes to respond\n\t * differently to ray casting than lines or points.\n\t *\n\t * Note that for meshes, faces must be pointed towards the origin of the ray in order\n\t * to be detected; intersections of the ray passing through the back of a face will not\n\t * be detected. To raycast against both faces of an object, you'll want to set {@link Material#side}\n\t * to `THREE.DoubleSide`.\n\t *\n\t * @param {Object3D} object - The 3D object to check for intersection with the ray.\n\t * @param {boolean} [recursive=true] - If set to `true`, it also checks all descendants.\n\t * Otherwise it only checks intersection with the object.\n\t * @param {Array} [intersects=[]] The target array that holds the result of the method.\n\t * @return {Array} An array holding the intersection points.\n\t */\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\t/**\n\t * Checks all intersection between the ray and the objects with or without\n\t * the descendants. Intersections are returned sorted by distance, closest first.\n\t *\n\t * @param {Array} objects - The 3D objects to check for intersection with the ray.\n\t * @param {boolean} [recursive=true] - If set to `true`, it also checks all descendants.\n\t * Otherwise it only checks intersection with the object.\n\t * @param {Array} [intersects=[]] The target array that holds the result of the method.\n\t * @return {Array} An array holding the intersection points.\n\t */\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 * This class is an alternative to {@link Clock} with a different API design and behavior.\n * The goal is to avoid the conceptual flaws that became apparent in `Clock` over time.\n *\n * - `Timer` has an `update()` method that updates its internal state. That makes it possible to\n * call `getDelta()` and `getElapsed()` multiple times per simulation step without getting different values.\n * - The class can make use of the Page Visibility API to avoid large time delta values when the app\n * is inactive (e.g. tab switched or browser hidden).\n *\n * ```js\n * const timer = new Timer();\n * timer.connect( document ); // use Page Visibility API\n * ```\n */\nclass Timer {\n\n\t/**\n\t * Constructs a new timer.\n\t */\n\tconstructor() {\n\n\t\tthis._previousTime = 0;\n\t\tthis._currentTime = 0;\n\t\tthis._startTime = performance.now();\n\n\t\tthis._delta = 0;\n\t\tthis._elapsed = 0;\n\n\t\tthis._timescale = 1;\n\n\t\tthis._document = null;\n\t\tthis._pageVisibilityHandler = null;\n\n\t}\n\n\t/**\n\t * Connect the timer to the given document.Calling this method is not mandatory to\n\t * use the timer but enables the usage of the Page Visibility API to avoid large time\n\t * delta values.\n\t *\n\t * @param {Document} document - The document.\n\t */\n\tconnect( document ) {\n\n\t\tthis._document = document;\n\n\t\t// use Page Visibility API to avoid large time delta values\n\n\t\tif ( document.hidden !== undefined ) {\n\n\t\t\tthis._pageVisibilityHandler = handleVisibilityChange.bind( this );\n\n\t\t\tdocument.addEventListener( 'visibilitychange', this._pageVisibilityHandler, false );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Disconnects the timer from the DOM and also disables the usage of the Page Visibility API.\n\t */\n\tdisconnect() {\n\n\t\tif ( this._pageVisibilityHandler !== null ) {\n\n\t\t\tthis._document.removeEventListener( 'visibilitychange', this._pageVisibilityHandler );\n\t\t\tthis._pageVisibilityHandler = null;\n\n\t\t}\n\n\t\tthis._document = null;\n\n\t}\n\n\t/**\n\t * Returns the time delta in seconds.\n\t *\n\t * @return {number} The time delta in second.\n\t */\n\tgetDelta() {\n\n\t\treturn this._delta / 1000;\n\n\t}\n\n\t/**\n\t * Returns the elapsed time in seconds.\n\t *\n\t * @return {number} The elapsed time in second.\n\t */\n\tgetElapsed() {\n\n\t\treturn this._elapsed / 1000;\n\n\t}\n\n\t/**\n\t * Returns the timescale.\n\t *\n\t * @return {number} The timescale.\n\t */\n\tgetTimescale() {\n\n\t\treturn this._timescale;\n\n\t}\n\n\t/**\n\t * Sets the given timescale which scale the time delta computation\n\t * in `update()`.\n\t *\n\t * @param {number} timescale - The timescale to set.\n\t * @return {Timer} A reference to this timer.\n\t */\n\tsetTimescale( timescale ) {\n\n\t\tthis._timescale = timescale;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Resets the time computation for the current simulation step.\n\t *\n\t * @return {Timer} A reference to this timer.\n\t */\n\treset() {\n\n\t\tthis._currentTime = performance.now() - this._startTime;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Can be used to free all internal resources. Usually called when\n\t * the timer instance isn't required anymore.\n\t */\n\tdispose() {\n\n\t\tthis.disconnect();\n\n\t}\n\n\t/**\n\t * Updates the internal state of the timer. This method should be called\n\t * once per simulation step and before you perform queries against the timer\n\t * (e.g. via `getDelta()`).\n\t *\n\t * @param {number} timestamp - The current time in milliseconds. Can be obtained\n\t * from the `requestAnimationFrame` callback argument. If not provided, the current\n\t * time will be determined with `performance.now`.\n\t * @return {Timer} A reference to this timer.\n\t */\n\tupdate( timestamp ) {\n\n\t\tif ( this._pageVisibilityHandler !== null && this._document.hidden === true ) {\n\n\t\t\tthis._delta = 0;\n\n\t\t} else {\n\n\t\t\tthis._previousTime = this._currentTime;\n\t\t\tthis._currentTime = ( timestamp !== undefined ? timestamp : performance.now() ) - this._startTime;\n\n\t\t\tthis._delta = ( this._currentTime - this._previousTime ) * this._timescale;\n\t\t\tthis._elapsed += this._delta; // _elapsed is the accumulation of all previous deltas\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nfunction handleVisibilityChange() {\n\n\tif ( this._document.hidden === false ) this.reset();\n\n}\n\n/**\n * This class can be used to represent points in 3D space as\n * [Spherical coordinates]{@link https://en.wikipedia.org/wiki/Spherical_coordinate_system}.\n */\nclass Spherical {\n\n\t/**\n\t * Constructs a new spherical.\n\t *\n\t * @param {number} [radius=1] - The radius, or the Euclidean distance (straight-line distance) from the point to the origin.\n\t * @param {number} [phi=0] - The polar angle in radians from the y (up) axis.\n\t * @param {number} [theta=0] - The equator/azimuthal angle in radians around the y (up) axis.\n\t */\n\tconstructor( radius = 1, phi = 0, theta = 0 ) {\n\n\t\t/**\n\t\t * The radius, or the Euclidean distance (straight-line distance) from the point to the origin.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.radius = radius;\n\n\t\t/**\n\t\t * The polar angle in radians from the y (up) axis.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.phi = phi;\n\n\t\t/**\n\t\t * The equator/azimuthal angle in radians around the y (up) axis.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.theta = theta;\n\n\t}\n\n\t/**\n\t * Sets the spherical components by copying the given values.\n\t *\n\t * @param {number} radius - The radius.\n\t * @param {number} phi - The polar angle.\n\t * @param {number} theta - The azimuthal angle.\n\t * @return {Spherical} A reference to this spherical.\n\t */\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\t/**\n\t * Copies the values of the given spherical to this instance.\n\t *\n\t * @param {Spherical} other - The spherical to copy.\n\t * @return {Spherical} A reference to this spherical.\n\t */\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/**\n\t * Restricts the polar angle [page:.phi phi] to be between `0.000001` and pi -\n\t * `0.000001`.\n\t *\n\t * @return {Spherical} A reference to this spherical.\n\t */\n\tmakeSafe() {\n\n\t\tconst EPS = 0.000001;\n\t\tthis.phi = clamp( this.phi, EPS, Math.PI - EPS );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the spherical components from the given vector which is assumed to hold\n\t * Cartesian coordinates.\n\t *\n\t * @param {Vector3} v - The vector to set.\n\t * @return {Spherical} A reference to this spherical.\n\t */\n\tsetFromVector3( v ) {\n\n\t\treturn this.setFromCartesianCoords( v.x, v.y, v.z );\n\n\t}\n\n\t/**\n\t * Sets the spherical components from the given Cartesian coordinates.\n\t *\n\t * @param {number} x - The x value.\n\t * @param {number} y - The y value.\n\t * @param {number} z - The z value.\n\t * @return {Spherical} A reference to this spherical.\n\t */\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\t/**\n\t * Returns a new spherical with copied values from this instance.\n\t *\n\t * @return {Spherical} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\n/**\n * This class can be used to represent points in 3D space as\n * [Cylindrical coordinates]{@link https://en.wikipedia.org/wiki/Cylindrical_coordinate_system}.\n */\nclass Cylindrical {\n\n\t/**\n\t * Constructs a new cylindrical.\n\t *\n\t * @param {number} [radius=1] - The distance from the origin to a point in the x-z plane.\n\t * @param {number} [theta=0] - A counterclockwise angle in the x-z plane measured in radians from the positive z-axis.\n\t * @param {number} [y=0] - The height above the x-z plane.\n\t */\n\tconstructor( radius = 1, theta = 0, y = 0 ) {\n\n\t\t/**\n\t\t * The distance from the origin to a point in the x-z plane.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\n\t\tthis.radius = radius;\n\n\t\t/**\n\t\t * A counterclockwise angle in the x-z plane measured in radians from the positive z-axis.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.theta = theta;\n\n\t\t/**\n\t\t * The height above the x-z plane.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 0\n\t\t */\n\t\tthis.y = y;\n\n\t}\n\n\t/**\n\t * Sets the cylindrical components by copying the given values.\n\t *\n\t * @param {number} radius - The radius.\n\t * @param {number} theta - The theta angle.\n\t * @param {number} y - The height value.\n\t * @return {Cylindrical} A reference to this cylindrical.\n\t */\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\t/**\n\t * Copies the values of the given cylindrical to this instance.\n\t *\n\t * @param {Cylindrical} other - The cylindrical to copy.\n\t * @return {Cylindrical} A reference to this cylindrical.\n\t */\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\t/**\n\t * Sets the cylindrical components from the given vector which is assumed to hold\n\t * Cartesian coordinates.\n\t *\n\t * @param {Vector3} v - The vector to set.\n\t * @return {Cylindrical} A reference to this cylindrical.\n\t */\n\tsetFromVector3( v ) {\n\n\t\treturn this.setFromCartesianCoords( v.x, v.y, v.z );\n\n\t}\n\n\t/**\n\t * Sets the cylindrical components from the given Cartesian coordinates.\n\t *\n\t * @param {number} x - The x value.\n\t * @param {number} y - The x value.\n\t * @param {number} z - The x value.\n\t * @return {Cylindrical} A reference to this cylindrical.\n\t */\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\t/**\n\t * Returns a new cylindrical with copied values from this instance.\n\t *\n\t * @return {Cylindrical} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\n/**\n * Represents a 2x2 matrix.\n *\n * A Note on Row-Major and Column-Major Ordering:\n *\n * The constructor and {@link Matrix2#set} method take arguments in\n * [row-major]{@link https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order}\n * order, while internally they are stored in the {@link Matrix2#elements} array in column-major order.\n * This means that calling:\n * ```js\n * const m = new THREE.Matrix2();\n * m.set( 11, 12,\n * 21, 22 );\n * ```\n * will result in the elements array containing:\n * ```js\n * m.elements = [ 11, 21,\n * 12, 22 ];\n * ```\n * and internally all calculations are performed using column-major ordering.\n * However, as the actual ordering makes no difference mathematically and\n * most people are used to thinking about matrices in row-major order, the\n * three.js documentation shows matrices in row-major order. Just bear in\n * mind that if you are reading the source code, you'll have to take the\n * transpose of any matrices outlined here to make sense of the calculations.\n */\nclass Matrix2 {\n\n\t/**\n\t * Constructs a new 2x2 matrix. The arguments are supposed to be\n\t * in row-major order. If no arguments are provided, the constructor\n\t * initializes the matrix as an identity matrix.\n\t *\n\t * @param {number} [n11] - 1-1 matrix element.\n\t * @param {number} [n12] - 1-2 matrix element.\n\t * @param {number} [n21] - 2-1 matrix element.\n\t * @param {number} [n22] - 2-2 matrix element.\n\t */\n\tconstructor( n11, n12, n21, n22 ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tMatrix2.prototype.isMatrix2 = true;\n\n\t\t/**\n\t\t * A column-major list of matrix values.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.elements = [\n\t\t\t1, 0,\n\t\t\t0, 1,\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n21, n22 );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Sets this matrix to the 2x2 identity matrix.\n\t *\n\t * @return {Matrix2} A reference to this matrix.\n\t */\n\tidentity() {\n\n\t\tthis.set(\n\t\t\t1, 0,\n\t\t\t0, 1,\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the elements of the matrix from the given array.\n\t *\n\t * @param {Array} array - The matrix elements in column-major order.\n\t * @param {number} [offset=0] - Index of the first element in the array.\n\t * @return {Matrix2} A reference to this matrix.\n\t */\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 4; 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\t/**\n\t * Sets the elements of the matrix.The arguments are supposed to be\n\t * in row-major order.\n\t *\n\t * @param {number} n11 - 1-1 matrix element.\n\t * @param {number} n12 - 1-2 matrix element.\n\t * @param {number} n21 - 2-1 matrix element.\n\t * @param {number} n22 - 2-2 matrix element.\n\t * @return {Matrix2} A reference to this matrix.\n\t */\n\tset( n11, n12, n21, n22 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 2 ] = n12;\n\t\tte[ 1 ] = n21; te[ 3 ] = n22;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _vector$4 = /*@__PURE__*/ new Vector2();\n\n/**\n * Represents an axis-aligned bounding box (AABB) in 2D space.\n */\nclass Box2 {\n\n\t/**\n\t * Constructs a new bounding box.\n\t *\n\t * @param {Vector2} [min=(Infinity,Infinity)] - A vector representing the lower boundary of the box.\n\t * @param {Vector2} [max=(-Infinity,-Infinity)] - A vector representing the upper boundary of the box.\n\t */\n\tconstructor( min = new Vector2( + Infinity, + Infinity ), max = new Vector2( - Infinity, - Infinity ) ) {\n\n\t\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isBox2 = true;\n\n\t\t/**\n\t\t * The lower boundary of the box.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.min = min;\n\n\t\t/**\n\t\t * The upper boundary of the box.\n\t\t *\n\t\t * @type {Vector2}\n\t\t */\n\t\tthis.max = max;\n\n\t}\n\n\t/**\n\t * Sets the lower and upper boundaries of this box.\n\t * Please note that this method only copies the values from the given objects.\n\t *\n\t * @param {Vector2} min - The lower boundary of the box.\n\t * @param {Vector2} max - The upper boundary of the box.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Sets the upper and lower bounds of this box so it encloses the position data\n\t * in the given array.\n\t *\n\t * @param {Array} points - An array holding 2D position data as instances of {@link Vector2}.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Centers this box on the given center vector and sets this box's width, height and\n\t * depth to the given size values.\n\t *\n\t * @param {Vector2} center - The center of the box.\n\t * @param {Vector2} size - The x and y dimensions of the box.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Returns a new box with copied values from this instance.\n\t *\n\t * @return {Box2} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\t/**\n\t * Copies the values of the given box to this instance.\n\t *\n\t * @param {Box2} box - The box to copy.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Makes this box empty which means in encloses a zero space in 2D.\n\t *\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Returns true if this box includes zero points within its bounds.\n\t * Note that a box with equal lower and upper bounds still includes one\n\t * point, the one both bounds share.\n\t *\n\t * @return {boolean} Whether this box is empty or not.\n\t */\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\t/**\n\t * Returns the center point of this box.\n\t *\n\t * @param {Vector2} target - The target vector that is used to store the method's result.\n\t * @return {Vector2} The center point.\n\t */\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\t/**\n\t * Returns the dimensions of this box.\n\t *\n\t * @param {Vector2} target - The target vector that is used to store the method's result.\n\t * @return {Vector2} The size.\n\t */\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\t/**\n\t * Expands the boundaries of this box to include the given point.\n\t *\n\t * @param {Vector2} point - The point that should be included by the bounding box.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Expands this box equilaterally by the given vector. The width of this\n\t * box will be expanded by the x component of the vector in both\n\t * directions. The height of this box will be expanded by the y component of\n\t * the vector in both directions.\n\t *\n\t * @param {Vector2} vector - The vector that should expand the bounding box.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Expands each dimension of the box by the given scalar. If negative, the\n\t * dimensions of the box will be contracted.\n\t *\n\t * @param {number} scalar - The scalar value that should expand the bounding box.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Returns `true` if the given point lies within or on the boundaries of this box.\n\t *\n\t * @param {Vector2} point - The point to test.\n\t * @return {boolean} Whether the bounding box contains the given point or not.\n\t */\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\n\t}\n\n\t/**\n\t * Returns `true` if this bounding box includes the entirety of the given bounding box.\n\t * If this box and the given one are identical, this function also returns `true`.\n\t *\n\t * @param {Box2} box - The bounding box to test.\n\t * @return {boolean} Whether the bounding box contains the given bounding box or not.\n\t */\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\t/**\n\t * Returns a point as a proportion of this box's width and height.\n\t *\n\t * @param {Vector2} point - A point in 2D space.\n\t * @param {Vector2} target - The target vector that is used to store the method's result.\n\t * @return {Vector2} A point as a proportion of this box's width and height.\n\t */\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\t/**\n\t * Returns `true` if the given bounding box intersects with this bounding box.\n\t *\n\t * @param {Box2} box - The bounding box to test.\n\t * @return {boolean} Whether the given bounding box intersects with this bounding box.\n\t */\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;\n\n\t}\n\n\t/**\n\t * Clamps the given point within the bounds of this box.\n\t *\n\t * @param {Vector2} point - The point to clamp.\n\t * @param {Vector2} target - The target vector that is used to store the method's result.\n\t * @return {Vector2} The clamped point.\n\t */\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\t/**\n\t * Returns the euclidean distance from any edge of this box to the specified point. If\n\t * the given point lies inside of this box, the distance will be `0`.\n\t *\n\t * @param {Vector2} point - The point to compute the distance to.\n\t * @return {number} The euclidean distance.\n\t */\n\tdistanceToPoint( point ) {\n\n\t\treturn this.clampPoint( point, _vector$4 ).distanceTo( point );\n\n\t}\n\n\t/**\n\t * Computes the intersection of this bounding box and the given one, setting the upper\n\t * bound of this box to the lesser of the two boxes' upper bounds and the\n\t * lower bound of this box to the greater of the two boxes' lower bounds. If\n\t * there's no overlap, makes this box empty.\n\t *\n\t * @param {Box2} box - The bounding box to intersect with.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Computes the union of this box and another and the given one, setting the upper\n\t * bound of this box to the greater of the two boxes' upper bounds and the\n\t * lower bound of this box to the lesser of the two boxes' lower bounds.\n\t *\n\t * @param {Box2} box - The bounding box that will be unioned with this instance.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Adds the given offset to both the upper and lower bounds of this bounding box,\n\t * effectively moving it in 2D space.\n\t *\n\t * @param {Vector2} offset - The offset that should be used to translate the bounding box.\n\t * @return {Box2} A reference to this bounding box.\n\t */\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\t/**\n\t * Returns `true` if this bounding box is equal with the given one.\n\t *\n\t * @param {Box2} box - The box to test for equality.\n\t * @return {boolean} Whether this bounding box is equal with the given one.\n\t */\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\nconst _d1 = /*@__PURE__*/ new Vector3();\nconst _d2 = /*@__PURE__*/ new Vector3();\nconst _r = /*@__PURE__*/ new Vector3();\nconst _c1 = /*@__PURE__*/ new Vector3();\nconst _c2 = /*@__PURE__*/ new Vector3();\n\n/**\n * An analytical line segment in 3D space represented by a start and end point.\n */\nclass Line3 {\n\n\t/**\n\t * Constructs a new line segment.\n\t *\n\t * @param {Vector3} [start=(0,0,0)] - Start of the line segment.\n\t * @param {Vector3} [end=(0,0,0)] - End of the line segment.\n\t */\n\tconstructor( start = new Vector3(), end = new Vector3() ) {\n\n\t\t/**\n\t\t * Start of the line segment.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.start = start;\n\n\t\t/**\n\t\t * End of the line segment.\n\t\t *\n\t\t * @type {Vector3}\n\t\t */\n\t\tthis.end = end;\n\n\t}\n\n\t/**\n\t * Sets the start and end values by copying the given vectors.\n\t *\n\t * @param {Vector3} start - The start point.\n\t * @param {Vector3} end - The end point.\n\t * @return {Line3} A reference to this line segment.\n\t */\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\t/**\n\t * Copies the values of the given line segment to this instance.\n\t *\n\t * @param {Line3} line - The line segment to copy.\n\t * @return {Line3} A reference to this line segment.\n\t */\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\t/**\n\t * Returns the center of the line segment.\n\t *\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The center point.\n\t */\n\tgetCenter( target ) {\n\n\t\treturn target.addVectors( this.start, this.end ).multiplyScalar( 0.5 );\n\n\t}\n\n\t/**\n\t * Returns the delta vector of the line segment's start and end point.\n\t *\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The delta vector.\n\t */\n\tdelta( target ) {\n\n\t\treturn target.subVectors( this.end, this.start );\n\n\t}\n\n\t/**\n\t * Returns the squared Euclidean distance between the line' start and end point.\n\t *\n\t * @return {number} The squared Euclidean distance.\n\t */\n\tdistanceSq() {\n\n\t\treturn this.start.distanceToSquared( this.end );\n\n\t}\n\n\t/**\n\t * Returns the Euclidean distance between the line' start and end point.\n\t *\n\t * @return {number} The Euclidean distance.\n\t */\n\tdistance() {\n\n\t\treturn this.start.distanceTo( this.end );\n\n\t}\n\n\t/**\n\t * Returns a vector at a certain position along the line segment.\n\t *\n\t * @param {number} t - A value between `[0,1]` to represent a position along the line segment.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The delta vector.\n\t */\n\tat( t, target ) {\n\n\t\treturn this.delta( target ).multiplyScalar( t ).add( this.start );\n\n\t}\n\n\t/**\n\t * Returns a point parameter based on the closest point as projected on the line segment.\n\t *\n\t * @param {Vector3} point - The point for which to return a point parameter.\n\t * @param {boolean} clampToLine - Whether to clamp the result to the range `[0,1]` or not.\n\t * @return {number} The point parameter.\n\t */\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\t/**\n\t * Returns the closest point on the line for a given point.\n\t *\n\t * @param {Vector3} point - The point to compute the closest point on the line for.\n\t * @param {boolean} clampToLine - Whether to clamp the result to the range `[0,1]` or not.\n\t * @param {Vector3} target - The target vector that is used to store the method's result.\n\t * @return {Vector3} The closest point on the line.\n\t */\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\t/**\n\t * Returns the closest squared distance between this line segment and the given one.\n\t *\n\t * @param {Line3} line - The line segment to compute the closest squared distance to.\n\t * @param {Vector3} [c1] - The closest point on this line segment.\n\t * @param {Vector3} [c2] - The closest point on the given line segment.\n\t * @return {number} The squared distance between this line segment and the given one.\n\t */\n\tdistanceSqToLine3( line, c1 = _c1, c2 = _c2 ) {\n\n\t\t// from Real-Time Collision Detection by Christer Ericson, chapter 5.1.9\n\n\t\t// Computes closest points C1 and C2 of S1(s)=P1+s*(Q1-P1) and\n\t\t// S2(t)=P2+t*(Q2-P2), returning s and t. Function result is squared\n\t\t// distance between between S1(s) and S2(t)\n\n\t\tconst EPSILON = 1e-8 * 1e-8; // must be squared since we compare squared length\n\t\tlet s, t;\n\n\t\tconst p1 = this.start;\n\t\tconst p2 = line.start;\n\t\tconst q1 = this.end;\n\t\tconst q2 = line.end;\n\n\t\t_d1.subVectors( q1, p1 ); // Direction vector of segment S1\n\t\t_d2.subVectors( q2, p2 ); // Direction vector of segment S2\n\t\t_r.subVectors( p1, p2 );\n\n\t\tconst a = _d1.dot( _d1 ); // Squared length of segment S1, always nonnegative\n\t\tconst e = _d2.dot( _d2 ); // Squared length of segment S2, always nonnegative\n\t\tconst f = _d2.dot( _r );\n\n\t\t// Check if either or both segments degenerate into points\n\n\t\tif ( a <= EPSILON && e <= EPSILON ) {\n\n\t\t\t// Both segments degenerate into points\n\n\t\t\tc1.copy( p1 );\n\t\t\tc2.copy( p2 );\n\n\t\t\tc1.sub( c2 );\n\n\t\t\treturn c1.dot( c1 );\n\n\t\t}\n\n\t\tif ( a <= EPSILON ) {\n\n\t\t\t// First segment degenerates into a point\n\n\t\t\ts = 0;\n\t\t\tt = f / e; // s = 0 => t = (b*s + f) / e = f / e\n\t\t\tt = clamp( t, 0, 1 );\n\n\n\t\t} else {\n\n\t\t\tconst c = _d1.dot( _r );\n\n\t\t\tif ( e <= EPSILON ) {\n\n\t\t\t\t// Second segment degenerates into a point\n\n\t\t\t\tt = 0;\n\t\t\t\ts = clamp( - c / a, 0, 1 ); // t = 0 => s = (b*t - c) / a = -c / a\n\n\t\t\t} else {\n\n\t\t\t\t// The general nondegenerate case starts here\n\n\t\t\t\tconst b = _d1.dot( _d2 );\n\t\t\t\tconst denom = a * e - b * b; // Always nonnegative\n\n\t\t\t\t// If segments not parallel, compute closest point on L1 to L2 and\n\t\t\t\t// clamp to segment S1. Else pick arbitrary s (here 0)\n\n\t\t\t\tif ( denom !== 0 ) {\n\n\t\t\t\t\ts = clamp( ( b * f - c * e ) / denom, 0, 1 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\ts = 0;\n\n\t\t\t\t}\n\n\t\t\t\t// Compute point on L2 closest to S1(s) using\n\t\t\t\t// t = Dot((P1 + D1*s) - P2,D2) / Dot(D2,D2) = (b*s + f) / e\n\n\t\t\t\tt = ( b * s + f ) / e;\n\n\t\t\t\t// If t in [0,1] done. Else clamp t, recompute s for the new value\n\t\t\t\t// of t using s = Dot((P2 + D2*t) - P1,D1) / Dot(D1,D1)= (t*b - c) / a\n\t\t\t\t// and clamp s to [0, 1]\n\n\t\t\t\tif ( t < 0 ) {\n\n\t\t\t\t\tt = 0.;\n\t\t\t\t\ts = clamp( - c / a, 0, 1 );\n\n\t\t\t\t} else if ( t > 1 ) {\n\n\t\t\t\t\tt = 1;\n\t\t\t\t\ts = clamp( ( b - c ) / a, 0, 1 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tc1.copy( p1 ).add( _d1.multiplyScalar( s ) );\n\t\tc2.copy( p2 ).add( _d2.multiplyScalar( t ) );\n\n\t\tc1.sub( c2 );\n\n\t\treturn c1.dot( c1 );\n\n\t}\n\n\t/**\n\t * Applies a 4x4 transformation matrix to this line segment.\n\t *\n\t * @param {Matrix4} matrix - The transformation matrix.\n\t * @return {Line3} A reference to this line segment.\n\t */\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\t/**\n\t * Returns `true` if this line segment is equal with the given one.\n\t *\n\t * @param {Line3} line - The line segment to test for equality.\n\t * @return {boolean} Whether this line segment is equal with the given one.\n\t */\n\tequals( line ) {\n\n\t\treturn line.start.equals( this.start ) && line.end.equals( this.end );\n\n\t}\n\n\t/**\n\t * Returns a new line segment with copied values from this instance.\n\t *\n\t * @return {Line3} A clone of this instance.\n\t */\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$3 = /*@__PURE__*/ new Vector3();\n\n/**\n * This displays a cone shaped helper object for a {@link SpotLight}.\n *\n * ```js\n * const spotLight = new THREE.SpotLight( 0xffffff );\n * spotLight.position.set( 10, 10, 10 );\n * scene.add( spotLight );\n *\n * const spotLightHelper = new THREE.SpotLightHelper( spotLight );\n * scene.add( spotLightHelper );\n * ```\n *\n * @augments Object3D\n */\nclass SpotLightHelper extends Object3D {\n\n\t/**\n\t * Constructs a new spot light helper.\n\t *\n\t * @param {HemisphereLight} light - The light to be visualized.\n\t * @param {number|Color|string} [color] - The helper's color. If not set, the helper will take\n\t * the color of the light.\n\t */\n\tconstructor( light, color ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * The light being visualized.\n\t\t *\n\t\t * @type {SpotLight}\n\t\t */\n\t\tthis.light = light;\n\n\t\tthis.matrixAutoUpdate = false;\n\n\t\t/**\n\t\t * The color parameter passed in the constructor.\n\t\t * If not set, the helper will take the color of the light.\n\t\t *\n\t\t * @type {number|Color|string}\n\t\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.cone.geometry.dispose();\n\t\tthis.cone.material.dispose();\n\n\t}\n\n\t/**\n\t * Updates the helper to match the position and direction of the\n\t * light being visualized.\n\t */\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/**\n * A helper object to assist with visualizing a {@link Skeleton}.\n *\n * ```js\n * const helper = new THREE.SkeletonHelper( skinnedMesh );\n * scene.add( helper );\n * ```\n *\n * @augments LineSegments\n */\nclass SkeletonHelper extends LineSegments {\n\n\t/**\n\t * Constructs a new skeleton helper.\n\t *\n\t * @param {Object3D} object - Usually an instance of {@link SkinnedMesh}. However, any 3D object\n\t * can be used if it represents a hierarchy of bones (see {@link Bone}).\n\t */\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\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( 0, 0, 0 );\n\t\t\t\tcolors.push( 0, 0, 0 );\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\t/**\n\t\t * This flag can be used for type testing.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @readonly\n\t\t * @default true\n\t\t */\n\t\tthis.isSkeletonHelper = true;\n\n\t\tthis.type = 'SkeletonHelper';\n\n\t\t/**\n\t\t * The object being visualized.\n\t\t *\n\t\t * @type {Object3D}\n\t\t */\n\t\tthis.root = object;\n\n\t\t/**\n\t\t * The list of bones that the helper visualizes.\n\t\t *\n\t\t * @type {Array}\n\t\t */\n\t\tthis.bones = bones;\n\n\t\tthis.matrix = object.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\t// colors\n\n\t\tconst color1 = new Color( 0x0000ff );\n\t\tconst color2 = new Color( 0x00ff00 );\n\n\t\tthis.setColors( color1, color2 );\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\t/**\n\t * Defines the colors of the helper.\n\t *\n\t * @param {Color} color1 - The first line color for each bone.\n\t * @param {Color} color2 - The second line color for each bone.\n\t * @return {SkeletonHelper} A reference to this helper.\n\t */\n\tsetColors( color1, color2 ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst colorAttribute = geometry.getAttribute( 'color' );\n\n\t\tfor ( let i = 0; i < colorAttribute.count; i += 2 ) {\n\n\t\t\tcolorAttribute.setXYZ( i, color1.r, color1.g, color1.b );\n\t\t\tcolorAttribute.setXYZ( i + 1, color2.r, color2.g, color2.b );\n\n\t\t}\n\n\t\tcolorAttribute.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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( ...getBoneList( object.children[ i ] ) );\n\n\t}\n\n\treturn boneList;\n\n}\n\n/**\n * This displays a helper object consisting of a spherical mesh for\n * visualizing an instance of {@link PointLight}.\n *\n * ```js\n * const pointLight = new THREE.PointLight( 0xff0000, 1, 100 );\n * pointLight.position.set( 10, 10, 10 );\n * scene.add( pointLight );\n *\n * const sphereSize = 1;\n * const pointLightHelper = new THREE.PointLightHelper( pointLight, sphereSize );\n * scene.add( pointLightHelper );\n * ```\n *\n * @augments Mesh\n */\nclass PointLightHelper extends Mesh {\n\n\t/**\n\t * Constructs a new point light helper.\n\t *\n\t * @param {PointLight} light - The light to be visualized.\n\t * @param {number} [sphereSize=1] - The size of the sphere helper.\n\t * @param {number|Color|string} [color] - The helper's color. If not set, the helper will take\n\t * the color of the light.\n\t */\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\t/**\n\t\t * The light being visualized.\n\t\t *\n\t\t * @type {HemisphereLight}\n\t\t */\n\t\tthis.light = light;\n\n\t\t/**\n\t\t * The color parameter passed in the constructor.\n\t\t * If not set, the helper will take the color of the light.\n\t\t *\n\t\t * @type {number|Color|string}\n\t\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n\t/**\n\t * Updates the helper to match the position of the\n\t * light being visualized.\n\t */\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\n/**\n * Creates a visual aid consisting of a spherical mesh for a\n * given {@link HemisphereLight}.\n *\n * ```js\n * const light = new THREE.HemisphereLight( 0xffffbb, 0x080820, 1 );\n * const helper = new THREE.HemisphereLightHelper( light, 5 );\n * scene.add( helper );\n * ```\n *\n * @augments Object3D\n */\nclass HemisphereLightHelper extends Object3D {\n\n\t/**\n\t * Constructs a new hemisphere light helper.\n\t *\n\t * @param {HemisphereLight} light - The light to be visualized.\n\t * @param {number} [size=1] - The size of the mesh used to visualize the light.\n\t * @param {number|Color|string} [color] - The helper's color. If not set, the helper will take\n\t * the color of the light.\n\t */\n\tconstructor( light, size, color ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * The light being visualized.\n\t\t *\n\t\t * @type {HemisphereLight}\n\t\t */\n\t\tthis.light = light;\n\n\t\tthis.matrix = light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\t/**\n\t\t * The color parameter passed in the constructor.\n\t\t * If not set, the helper will take the color of the light.\n\t\t *\n\t\t * @type {number|Color|string}\n\t\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.children[ 0 ].geometry.dispose();\n\t\tthis.children[ 0 ].material.dispose();\n\n\t}\n\n\t/**\n\t * Updates the helper to match the position and direction of the\n\t * light being visualized.\n\t */\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\n/**\n * The helper is an object to define grids. Grids are two-dimensional\n * arrays of lines.\n *\n * ```js\n * const size = 10;\n * const divisions = 10;\n *\n * const gridHelper = new THREE.GridHelper( size, divisions );\n * scene.add( gridHelper );\n * ```\n *\n * @augments LineSegments\n */\nclass GridHelper extends LineSegments {\n\n\t/**\n\t * Constructs a new grid helper.\n\t *\n\t * @param {number} [size=10] - The size of the grid.\n\t * @param {number} [divisions=10] - The number of divisions across the grid.\n\t * @param {number|Color|string} [color1=0x444444] - The color of the center line.\n\t * @param {number|Color|string} [color2=0x888888] - The color of the lines of the grid.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n/**\n * This helper is an object to define polar grids. Grids are\n * two-dimensional arrays of lines.\n *\n * ```js\n * const radius = 10;\n * const sectors = 16;\n * const rings = 8;\n * const divisions = 64;\n *\n * const helper = new THREE.PolarGridHelper( radius, sectors, rings, divisions );\n * scene.add( helper );\n * ```\n *\n * @augments LineSegments\n */\nclass PolarGridHelper extends LineSegments {\n\n\t/**\n\t * Constructs a new polar grid helper.\n\t *\n\t * @param {number} [radius=10] - The radius of the polar grid. This can be any positive number.\n\t * @param {number} [sectors=16] - The number of sectors the grid will be divided into. This can be any positive integer.\n\t * @param {number} [rings=16] - The number of rings. This can be any positive integer.\n\t * @param {number} [divisions=64] - The number of line segments used for each circle. This can be any positive integer.\n\t * @param {number|Color|string} [color1=0x444444] - The first color used for grid elements.\n\t * @param {number|Color|string} [color2=0x888888] - The second color used for grid elements.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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\n/**\n * Helper object to assist with visualizing a {@link DirectionalLight}'s\n * effect on the scene. This consists of plane and a line representing the\n * light's position and direction.\n *\n * ```js\n * const light = new THREE.DirectionalLight( 0xFFFFFF );\n * scene.add( light );\n *\n * const helper = new THREE.DirectionalLightHelper( light, 5 );\n * scene.add( helper );\n * ```\n *\n * @augments Object3D\n */\nclass DirectionalLightHelper extends Object3D {\n\n\t/**\n\t * Constructs a new directional light helper.\n\t *\n\t * @param {DirectionalLight} light - The light to be visualized.\n\t * @param {number} [size=1] - The dimensions of the plane.\n\t * @param {number|Color|string} [color] - The helper's color. If not set, the helper will take\n\t * the color of the light.\n\t */\n\tconstructor( light, size, color ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * The light being visualized.\n\t\t *\n\t\t * @type {DirectionalLight}\n\t\t */\n\t\tthis.light = light;\n\n\t\tthis.matrix = light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\t/**\n\t\t * The color parameter passed in the constructor.\n\t\t * If not set, the helper will take the color of the light.\n\t\t *\n\t\t * @type {number|Color|string}\n\t\t */\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\t/**\n\t\t * Contains the line showing the location of the directional light.\n\t\t *\n\t\t * @type {Line}\n\t\t */\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\t/**\n\t\t * Represents the target line of the directional light.\n\t\t *\n\t\t * @type {Line}\n\t\t */\n\t\tthis.targetLine = new Line( geometry, material );\n\t\tthis.add( this.targetLine );\n\n\t\tthis.update();\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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\t/**\n\t * Updates the helper to match the position and direction of the\n\t * light being visualized.\n\t */\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 * This helps with visualizing what a camera contains in its frustum. It\n * visualizes the frustum of a camera using a line segments.\n *\n * Based on frustum visualization in [lightgl.js shadowmap example]{@link https://github.com/evanw/lightgl.js/blob/master/tests/shadowmap.html}.\n *\n * `CameraHelper` must be a child of the scene.\n *\n * ```js\n * const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );\n * const helper = new THREE.CameraHelper( camera );\n * scene.add( helper );\n * ```\n *\n * @augments LineSegments\n */\nclass CameraHelper extends LineSegments {\n\n\t/**\n\t * Constructs a new arrow helper.\n\t *\n\t * @param {Camera} camera - The camera to visualize.\n\t */\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\t/**\n\t\t * The camera being visualized.\n\t\t *\n\t\t * @type {Camera}\n\t\t */\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\t/**\n\t\t * This contains the points used to visualize the camera.\n\t\t *\n\t\t * @type {Object>}\n\t\t */\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\t/**\n\t * Defines the colors of the helper.\n\t *\n\t * @param {Color} frustum - The frustum line color.\n\t * @param {Color} cone - The cone line color.\n\t * @param {Color} up - The up line color.\n\t * @param {Color} target - The target line color.\n\t * @param {Color} cross - The cross line color.\n\t * @return {CameraHelper} A reference to this helper.\n\t */\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\treturn this;\n\n\t}\n\n\t/**\n\t * Updates the helper based on the projection matrix of the camera.\n\t */\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\tlet nearZ, farZ;\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// Adjust z values based on coordinate system\n\n\t\tif ( this.camera.reversedDepth === true ) {\n\n\t\t\tnearZ = 1;\n\t\t\tfarZ = 0;\n\n\t\t} else {\n\n\t\t\tif ( this.camera.coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\t\tnearZ = -1;\n\t\t\t\tfarZ = 1;\n\n\t\t\t} else if ( this.camera.coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\t\tnearZ = 0;\n\t\t\t\tfarZ = 1;\n\n\t\t\t} else {\n\n\t\t\t\tthrow new Error( 'THREE.CameraHelper.update(): Invalid coordinate system: ' + this.camera.coordinateSystem );\n\n\t\t\t}\n\n\t\t}\n\n\n\t\t// center / target\n\t\tsetPoint( 'c', pointMap, geometry, _camera, 0, 0, nearZ );\n\t\tsetPoint( 't', pointMap, geometry, _camera, 0, 0, farZ );\n\n\t\t// near\n\n\t\tsetPoint( 'n1', pointMap, geometry, _camera, - w, - h, nearZ );\n\t\tsetPoint( 'n2', pointMap, geometry, _camera, w, - h, nearZ );\n\t\tsetPoint( 'n3', pointMap, geometry, _camera, - w, h, nearZ );\n\t\tsetPoint( 'n4', pointMap, geometry, _camera, w, h, nearZ );\n\n\t\t// far\n\n\t\tsetPoint( 'f1', pointMap, geometry, _camera, - w, - h, farZ );\n\t\tsetPoint( 'f2', pointMap, geometry, _camera, w, - h, farZ );\n\t\tsetPoint( 'f3', pointMap, geometry, _camera, - w, h, farZ );\n\t\tsetPoint( 'f4', pointMap, geometry, _camera, w, h, farZ );\n\n\t\t// up\n\n\t\tsetPoint( 'u1', pointMap, geometry, _camera, w * 0.7, h * 1.1, nearZ );\n\t\tsetPoint( 'u2', pointMap, geometry, _camera, - w * 0.7, h * 1.1, nearZ );\n\t\tsetPoint( 'u3', pointMap, geometry, _camera, 0, h * 2, nearZ );\n\n\t\t// cross\n\n\t\tsetPoint( 'cf1', pointMap, geometry, _camera, - w, 0, farZ );\n\t\tsetPoint( 'cf2', pointMap, geometry, _camera, w, 0, farZ );\n\t\tsetPoint( 'cf3', pointMap, geometry, _camera, 0, - h, farZ );\n\t\tsetPoint( 'cf4', pointMap, geometry, _camera, 0, h, farZ );\n\n\t\tsetPoint( 'cn1', pointMap, geometry, _camera, - w, 0, nearZ );\n\t\tsetPoint( 'cn2', pointMap, geometry, _camera, w, 0, nearZ );\n\t\tsetPoint( 'cn3', pointMap, geometry, _camera, 0, - h, nearZ );\n\t\tsetPoint( 'cn4', pointMap, geometry, _camera, 0, h, nearZ );\n\n\t\tgeometry.getAttribute( 'position' ).needsUpdate = true;\n\n\t}\n\n\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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\n/**\n * Helper object to graphically show the world-axis-aligned bounding box\n * around an object. The actual bounding box is handled with {@link Box3},\n * this is just a visual helper for debugging. It can be automatically\n * resized with {@link BoxHelper#update} when the object it's created from\n * is transformed. Note that the object must have a geometry for this to work,\n * so it won't work with sprites.\n *\n * ```js\n * const sphere = new THREE.SphereGeometry();\n * const object = new THREE.Mesh( sphere, new THREE.MeshBasicMaterial( 0xff0000 ) );\n * const box = new THREE.BoxHelper( object, 0xffff00 );\n * scene.add( box );\n * ```\n *\n * @augments LineSegments\n */\nclass BoxHelper extends LineSegments {\n\n\t/**\n\t * Constructs a new box helper.\n\t *\n\t * @param {Object3D} [object] - The 3D object to show the world-axis-aligned bounding box.\n\t * @param {number|Color|string} [color=0xffff00] - The box's color.\n\t */\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\t/**\n\t\t * The 3D object being visualized.\n\t\t *\n\t\t * @type {Object3D}\n\t\t */\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\t/**\n\t * Updates the helper's geometry to match the dimensions of the object,\n\t * including any children.\n\t */\n\tupdate() {\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\t/**\n\t * Updates the wireframe box for the passed object.\n\t *\n\t * @param {Object3D} object - The 3D object to create the helper for.\n\t * @return {BoxHelper} A reference to this instance.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n/**\n * A helper object to visualize an instance of {@link Box3}.\n *\n * ```js\n * const box = new THREE.Box3();\n * box.setFromCenterAndSize( new THREE.Vector3( 1, 1, 1 ), new THREE.Vector3( 2, 1, 3 ) );\n *\n * const helper = new THREE.Box3Helper( box, 0xffff00 );\n * scene.add( helper )\n * ```\n *\n * @augments LineSegments\n */\nclass Box3Helper extends LineSegments {\n\n\t/**\n\t * Constructs a new box3 helper.\n\t *\n\t * @param {Box3} box - The box to visualize.\n\t * @param {number|Color|string} [color=0xffff00] - The box's color.\n\t */\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\t/**\n\t\t * The box being visualized.\n\t\t *\n\t\t * @type {Box3}\n\t\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n/**\n * A helper object to visualize an instance of {@link Plane}.\n *\n * ```js\n * const plane = new THREE.Plane( new THREE.Vector3( 1, 1, 0.2 ), 3 );\n * const helper = new THREE.PlaneHelper( plane, 1, 0xffff00 );\n * scene.add( helper );\n * ```\n *\n * @augments Line\n */\nclass PlaneHelper extends Line {\n\n\t/**\n\t * Constructs a new plane helper.\n\t *\n\t * @param {Plane} plane - The plane to be visualized.\n\t * @param {number} [size=1] - The side length of plane helper.\n\t * @param {number|Color|string} [hex=0xffff00] - The helper's color.\n\t */\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\t/**\n\t\t * The plane being visualized.\n\t\t *\n\t\t * @type {Plane}\n\t\t */\n\t\tthis.plane = plane;\n\n\t\t/**\n\t\t * The side length of plane helper.\n\t\t *\n\t\t * @type {number}\n\t\t * @default 1\n\t\t */\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\t/**\n\t * Updates the helper to match the position and direction of the\n\t * light being visualized.\n\t */\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\n/**\n * An 3D arrow object for visualizing directions.\n *\n * ```js\n * const dir = new THREE.Vector3( 1, 2, 0 );\n *\n * //normalize the direction vector (convert to vector of length 1)\n * dir.normalize();\n *\n * const origin = new THREE.Vector3( 0, 0, 0 );\n * const length = 1;\n * const hex = 0xffff00;\n *\n * const arrowHelper = new THREE.ArrowHelper( dir, origin, length, hex );\n * scene.add( arrowHelper );\n * ```\n *\n * @augments Object3D\n */\nclass ArrowHelper extends Object3D {\n\n\t/**\n\t * Constructs a new arrow helper.\n\t *\n\t * @param {Vector3} [dir=(0, 0, 1)] - The (normalized) direction vector.\n\t * @param {Vector3} [origin=(0, 0, 0)] - Point at which the arrow starts.\n\t * @param {number} [length=1] - Length of the arrow in world units.\n\t * @param {(number|Color|string)} [color=0xffff00] - Color of the arrow.\n\t * @param {number} [headLength=length*0.2] - The length of the head of the arrow.\n\t * @param {number} [headWidth=headLength*0.2] - The width of the head of the arrow.\n\t */\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 ConeGeometry( 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\t/**\n\t\t * The line part of the arrow helper.\n\t\t *\n\t\t * @type {Line}\n\t\t */\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\t/**\n\t\t * The cone part of the arrow helper.\n\t\t *\n\t\t * @type {Mesh}\n\t\t */\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\t/**\n\t * Sets the direction of the helper.\n\t *\n\t * @param {Vector3} dir - The normalized direction vector.\n\t */\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\t/**\n\t * Sets the length of the helper.\n\t *\n\t * @param {number} length - Length of the arrow in world units.\n\t * @param {number} [headLength=length*0.2] - The length of the head of the arrow.\n\t * @param {number} [headWidth=headLength*0.2] - The width of the head of the arrow.\n\t */\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\t/**\n\t * Sets the color of the helper.\n\t *\n\t * @param {number|Color|string} color - The color to set.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\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\n/**\n * An axis object to visualize the 3 axes in a simple way.\n * The X axis is red. The Y axis is green. The Z axis is blue.\n *\n * ```js\n * const axesHelper = new THREE.AxesHelper( 5 );\n * scene.add( axesHelper );\n * ```\n *\n * @augments LineSegments\n */\nclass AxesHelper extends LineSegments {\n\n\t/**\n\t * Constructs a new axes helper.\n\t *\n\t * @param {number} [size=1] - Size of the lines representing the axes.\n\t */\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\t/**\n\t * Defines the colors of the axes helper.\n\t *\n\t * @param {number|Color|string} xAxisColor - The color for the x axis.\n\t * @param {number|Color|string} yAxisColor - The color for the y axis.\n\t * @param {number|Color|string} zAxisColor - The color for the z axis.\n\t * @return {AxesHelper} A reference to this axes helper.\n\t */\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\t/**\n\t * Frees the GPU-related resources allocated by this instance. Call this\n\t * method whenever this instance is no longer used in your app.\n\t */\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n/**\n * This class is used to convert a series of paths to an array of\n * shapes. It is specifically used in context of fonts and SVG.\n */\nclass ShapePath {\n\n\t/**\n\t * Constructs a new shape path.\n\t */\n\tconstructor() {\n\n\t\tthis.type = 'ShapePath';\n\n\t\t/**\n\t\t * The color of the shape.\n\t\t *\n\t\t * @type {Color}\n\t\t */\n\t\tthis.color = new Color();\n\n\t\t/**\n\t\t * The paths that have been generated for this shape.\n\t\t *\n\t\t * @type {Array}\n\t\t * @default null\n\t\t */\n\t\tthis.subPaths = [];\n\n\t\t/**\n\t\t * The current path that is being generated.\n\t\t *\n\t\t * @type {?Path}\n\t\t * @default null\n\t\t */\n\t\tthis.currentPath = null;\n\n\t}\n\n\t/**\n\t * Creates a new path and moves it current point to the given one.\n\t *\n\t * @param {number} x - The x coordinate.\n\t * @param {number} y - The y coordinate.\n\t * @return {ShapePath} A reference to this shape path.\n\t */\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\t/**\n\t * Adds an instance of {@link LineCurve} to the path by connecting\n\t * the current point with the given one.\n\t *\n\t * @param {number} x - The x coordinate of the end point.\n\t * @param {number} y - The y coordinate of the end point.\n\t * @return {ShapePath} A reference to this shape path.\n\t */\n\tlineTo( x, y ) {\n\n\t\tthis.currentPath.lineTo( x, y );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Adds an instance of {@link QuadraticBezierCurve} to the path by connecting\n\t * the current point with the given one.\n\t *\n\t * @param {number} aCPx - The x coordinate of the control point.\n\t * @param {number} aCPy - The y coordinate of the control point.\n\t * @param {number} aX - The x coordinate of the end point.\n\t * @param {number} aY - The y coordinate of the end point.\n\t * @return {ShapePath} A reference to this shape path.\n\t */\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\t/**\n\t * Adds an instance of {@link CubicBezierCurve} to the path by connecting\n\t * the current point with the given one.\n\t *\n\t * @param {number} aCP1x - The x coordinate of the first control point.\n\t * @param {number} aCP1y - The y coordinate of the first control point.\n\t * @param {number} aCP2x - The x coordinate of the second control point.\n\t * @param {number} aCP2y - The y coordinate of the second control point.\n\t * @param {number} aX - The x coordinate of the end point.\n\t * @param {number} aY - The y coordinate of the end point.\n\t * @return {ShapePath} A reference to this shape path.\n\t */\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\t/**\n\t * Adds an instance of {@link SplineCurve} to the path by connecting\n\t * the current point with the given list of points.\n\t *\n\t * @param {Array} pts - An array of points in 2D space.\n\t * @return {ShapePath} A reference to this shape path.\n\t */\n\tsplineThru( pts ) {\n\n\t\tthis.currentPath.splineThru( pts );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Converts the paths into an array of shapes.\n\t *\n\t * @param {boolean} isCCW - By default solid shapes are defined clockwise (CW) and holes are defined counterclockwise (CCW).\n\t * If this flag is set to `true`, then those are flipped.\n\t * @return {Array} An array of shapes.\n\t */\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\n/**\n * Abstract base class for controls.\n *\n * @abstract\n * @augments EventDispatcher\n */\nclass Controls extends EventDispatcher {\n\n\t/**\n\t * Constructs a new controls instance.\n\t *\n\t * @param {Object3D} object - The object that is managed by the controls.\n\t * @param {?HTMLDOMElement} domElement - The HTML element used for event listeners.\n\t */\n\tconstructor( object, domElement = null ) {\n\n\t\tsuper();\n\n\t\t/**\n\t\t * The object that is managed by the controls.\n\t\t *\n\t\t * @type {Object3D}\n\t\t */\n\t\tthis.object = object;\n\n\t\t/**\n\t\t * The HTML element used for event listeners.\n\t\t *\n\t\t * @type {?HTMLDOMElement}\n\t\t * @default null\n\t\t */\n\t\tthis.domElement = domElement;\n\n\t\t/**\n\t\t * Whether the controls responds to user input or not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @default true\n\t\t */\n\t\tthis.enabled = true;\n\n\t\t/**\n\t\t * The internal state of the controls.\n\t\t *\n\t\t * @type {number}\n\t\t * @default -1\n\t\t */\n\t\tthis.state = -1;\n\n\t\t/**\n\t\t * This object defines the keyboard input of the controls.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tthis.keys = {};\n\n\t\t/**\n\t\t * This object defines what type of actions are assigned to the available mouse buttons.\n\t\t * It depends on the control implementation what kind of mouse buttons and actions are supported.\n\t\t *\n\t\t * @type {{LEFT: ?number, MIDDLE: ?number, RIGHT: ?number}}\n\t\t */\n\t\tthis.mouseButtons = { LEFT: null, MIDDLE: null, RIGHT: null };\n\n\t\t/**\n\t\t * This object defines what type of actions are assigned to what kind of touch interaction.\n\t\t * It depends on the control implementation what kind of touch interaction and actions are supported.\n\t\t *\n\t\t * @type {{ONE: ?number, TWO: ?number}}\n\t\t */\n\t\tthis.touches = { ONE: null, TWO: null };\n\n\t}\n\n\t/**\n\t * Connects the controls to the DOM. This method has so called \"side effects\" since\n\t * it adds the module's event listeners to the DOM.\n\t *\n\t * @param {HTMLDOMElement} element - The DOM element to connect to.\n\t */\n\tconnect( element ) {\n\n\t\tif ( element === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Controls: connect() now requires an element.' ); // @deprecated, the warning can be removed with r185\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.domElement !== null ) this.disconnect();\n\n\t\tthis.domElement = element;\n\n\t}\n\n\t/**\n\t * Disconnects the controls from the DOM.\n\t */\n\tdisconnect() {}\n\n\t/**\n\t * Call this method if you no longer want use to the controls. It frees all internal\n\t * resources and removes all event listeners.\n\t */\n\tdispose() {}\n\n\t/**\n\t * Controls should implement this method if they have to update their internal state\n\t * per simulation step.\n\t *\n\t * @param {number} [delta] - The time delta in seconds.\n\t */\n\tupdate( /* delta */ ) {}\n\n}\n\n/**\n * Scales the texture as large as possible within its surface without cropping\n * or stretching the texture. The method preserves the original aspect ratio of\n * the texture. Akin to CSS `object-fit: contain`\n *\n * @param {Texture} texture - The texture.\n * @param {number} aspect - The texture's aspect ratio.\n * @return {Texture} The updated texture.\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\n/**\n * Scales the texture to the smallest possible size to fill the surface, leaving\n * no empty space. The method preserves the original aspect ratio of the texture.\n * Akin to CSS `object-fit: cover`.\n *\n * @param {Texture} texture - The texture.\n * @param {number} aspect - The texture's aspect ratio.\n * @return {Texture} The updated texture.\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\n/**\n * Configures the texture to the default transformation. Akin to CSS `object-fit: fill`.\n *\n * @param {Texture} texture - The texture.\n * @return {Texture} The updated texture.\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 * Determines how many bytes must be used to represent the texture.\n *\n * @param {number} width - The width of the texture.\n * @param {number} height - The height of the texture.\n * @param {number} format - The texture's format.\n * @param {number} type - The texture's type.\n * @return {number} The byte length.\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 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\tcase UnsignedInt101111Type:\n\t\t\treturn { byteLength: 4, components: 3 };\n\n\t}\n\n\tthrow new Error( `Unknown texture type ${type}.` );\n\n}\n\n/**\n * A class containing utility functions for textures.\n *\n * @hideconstructor\n */\nclass TextureUtils {\n\n\t/**\n\t * Scales the texture as large as possible within its surface without cropping\n\t * or stretching the texture. The method preserves the original aspect ratio of\n\t * the texture. Akin to CSS `object-fit: contain`\n\t *\n\t * @param {Texture} texture - The texture.\n\t * @param {number} aspect - The texture's aspect ratio.\n\t * @return {Texture} The updated texture.\n\t */\n\tstatic contain( texture, aspect ) {\n\n\t\treturn contain( texture, aspect );\n\n\t}\n\n\t/**\n\t * Scales the texture to the smallest possible size to fill the surface, leaving\n\t * no empty space. The method preserves the original aspect ratio of the texture.\n\t * Akin to CSS `object-fit: cover`.\n\t *\n\t * @param {Texture} texture - The texture.\n\t * @param {number} aspect - The texture's aspect ratio.\n\t * @return {Texture} The updated texture.\n\t */\n\tstatic cover( texture, aspect ) {\n\n\t\treturn cover( texture, aspect );\n\n\t}\n\n\t/**\n\t * Configures the texture to the default transformation. Akin to CSS `object-fit: fill`.\n\t *\n\t * @param {Texture} texture - The texture.\n\t * @return {Texture} The updated texture.\n\t */\n\tstatic fill( texture ) {\n\n\t\treturn fill( texture );\n\n\t}\n\n\t/**\n\t * Determines how many bytes must be used to represent the texture.\n\t *\n\t * @param {number} width - The width of the texture.\n\t * @param {number} height - The height of the texture.\n\t * @param {number} format - The texture's format.\n\t * @param {number} type - The texture's type.\n\t * @return {number} The byte length.\n\t */\n\tstatic getByteLength( width, height, format, type ) {\n\n\t\treturn getByteLength( width, height, format, type );\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, Controls, 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, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExternalTexture, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, FrustumArray, 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, InterpolationSamplingMode, InterpolationSamplingType, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry, Layers, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, LinearTransfer, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, MOUSE, Material, MaterialLoader, MathUtils, Matrix2, 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, PCFShadowMap, PCFSoftShadowMap, Path, PerspectiveCamera, Plane, PlaneGeometry, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RAD2DEG, 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, RGBDepthPacking, 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, RGDepthPacking, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RenderTarget, RenderTarget3D, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingGeometry, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SRGBColorSpace, SRGBTransfer, Scene, 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, Timer, TimestampQuery, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsUtils, UnsignedByteType, UnsignedInt101111Type, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoFrameTexture, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLCubeRenderTarget, WebGLRenderTarget, WebGPUCoordinateSystem, WebXRController, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, arrayNeedsUint32, cloneUniforms, createCanvasElement, createElementNS, getByteLength, getUnlitUniformColorSpace, mergeUniforms, probeAsync, warnOnce };\n","// LN_SCALE_MIN..LN_SCALE_MAX define the internal scale range of for Gsplats,\n// covering approx 0.0001..8000 in range with discrete steps 7% apart.\n// The value \"0\" is reserved for truly flat scales, indicating a 2DGS.\n// If these values are changed, the corresponding values in splatDefines.glsl\n// must also be updated to match.\n\nexport const LN_SCALE_MIN = -12.0;\nexport const LN_SCALE_MAX = 9.0;\nexport const SCALE_MIN = Math.exp(LN_SCALE_MIN);\nexport const SCALE_MAX = Math.exp(LN_SCALE_MAX);\n\nexport const LN_SCALE_ZERO = -30.0;\nexport const SCALE_ZERO = Math.exp(LN_SCALE_ZERO);\n\n// Gsplats are stored in textures that are 2^11 x 2^11 x up to 2^11\n// Most WebGL2 implementations support 2D textures up to 2^12 x 2^12 (max 16M Gsplats)\n// 2D array textures and 3D textures up to 2^11 x 2^11 x 2^11 (max 8G Gsplats),\n// so we use 2D array textures for our representation for higher limits.\n\nexport const SPLAT_TEX_WIDTH_BITS = 11;\nexport const SPLAT_TEX_HEIGHT_BITS = 11;\nexport const SPLAT_TEX_DEPTH_BITS = 11;\nexport const SPLAT_TEX_LAYER_BITS =\n SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nexport const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS; // 2048\nexport const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS; // 2048\nexport const SPLAT_TEX_DEPTH = 1 << SPLAT_TEX_DEPTH_BITS; // 2048\nexport const SPLAT_TEX_MIN_HEIGHT = 1;\n\nexport const SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1;\nexport const SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1;\nexport const SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1;\n\n// Enable/disable Gsplat sorting via Rust WASM code. In testing the sorting\n// time between pure JS and WASM are minimal and don't make a big difference.\n\nexport const WASM_SPLAT_SORT = true;\n\n// Enable/disable compiling a dedicated parse function per element type\n// in the plyReader.\n\nexport const USE_COMPILED_PARSER_FUNCTION = true;\n\nexport enum SplatFileType {\n PLY = \"ply\",\n SPZ = \"spz\",\n SPLAT = \"splat\",\n KSPLAT = \"ksplat\",\n PCSOGS = \"pcsogs\",\n PCSOGSZIP = \"pcsogszip\",\n RAD = \"rad\",\n}\n\nexport type SplatEncoding = {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n sh1Max?: number;\n sh2Max?: number;\n sh3Max?: number;\n lodOpacity?: boolean;\n};\n\nexport const DEFAULT_SPLAT_ENCODING: SplatEncoding = {\n rgbMin: 0,\n rgbMax: 1,\n lnScaleMin: LN_SCALE_MIN,\n lnScaleMax: LN_SCALE_MAX,\n sh1Max: 1,\n sh2Max: 1,\n sh3Max: 1,\n lodOpacity: false,\n};\n\nexport type RadMeta = {\n version: number;\n type: string;\n count: number;\n maxSh?: number;\n lodTree?: boolean;\n chunkSize?: number;\n chunks: {\n offset: number;\n bytes: number;\n base?: number;\n count?: number;\n filename?: string;\n }[];\n splatEncoding?: SplatEncoding;\n};\n\nexport type PackedExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type PackedResult = {\n numSplats: number;\n packedArray: Uint32Array;\n extra: PackedExtra;\n splatEncoding: SplatEncoding;\n};\n\nexport type ExtExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3a?: Uint32Array;\n sh3b?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type ExtResult = {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: ExtExtra;\n};\n","import type { IUniform } from \"three\";\nimport type { DynoType } from \"./types\";\nimport {\n DynoLiteral,\n DynoOutput,\n type DynoVal,\n DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nconst DEFAULT_INDENT = \" \";\n\nexport class Compilation {\n globals: Set = new Set();\n statements: string[] = [];\n uniforms: Record = {};\n declares: Set = new Set();\n updaters: (() => void)[] = [];\n sequence = 0;\n indent: string = DEFAULT_INDENT;\n\n constructor({ indent }: { indent?: string } = {}) {\n this.indent = indent ?? DEFAULT_INDENT;\n }\n\n nextSequence() {\n return this.sequence++;\n }\n}\n\nexport type IOTypes = Record;\ntype GenerateContext = {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n};\n\nexport class Dyno {\n inTypes: InTypes;\n outTypes: OutTypes;\n\n inputs: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n }) {\n this.inTypes = inTypes ?? ({} as InTypes);\n this.outTypes = outTypes ?? ({} as OutTypes);\n this.inputs = inputs ?? {};\n this.update = update;\n\n this.globals = globals;\n this.statements = statements;\n this.generate =\n generate ??\n (({ inputs, outputs, compile }) => {\n return {\n globals: this.globals?.({ inputs, outputs, compile }),\n statements: this.statements?.({ inputs, outputs, compile }),\n };\n });\n }\n\n get outputs(): { [K in keyof OutTypes]: DynoVal } {\n const outputs = {} as { [K in keyof OutTypes]: DynoVal };\n for (const key in this.outTypes) {\n outputs[key] = new DynoOutput(this, key);\n }\n return outputs;\n }\n\n apply(inputs: { [K in keyof InTypes]?: DynoVal }): {\n [K in keyof OutTypes]: DynoVal;\n } {\n Object.assign(this.inputs, inputs);\n return this.outputs;\n }\n\n compile({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }): string[] {\n const result = [\n `// ${this.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`,\n ];\n\n const declares: (keyof OutTypes)[] = [];\n for (const key in outputs) {\n const name = outputs[key];\n if (name && !compile.declares.has(name)) {\n compile.declares.add(name);\n declares.push(key);\n }\n }\n\n const { globals, statements, uniforms } = this.generate({\n inputs,\n outputs,\n compile,\n });\n for (const global of globals ?? []) {\n compile.globals.add(global);\n }\n for (const key in uniforms) {\n compile.uniforms[key] = uniforms[key];\n }\n if (this.update) {\n compile.updaters.push(this.update);\n }\n\n for (const key of declares) {\n const name = outputs[key];\n if (name) {\n if (!compile.uniforms[name]) {\n result.push(`${dynoDeclare(name, this.outTypes[key])};`);\n }\n }\n }\n\n if (statements?.length) {\n result.push(\"{\");\n result.push(...statements.map((line) => compile.indent + line));\n result.push(\"}\");\n }\n return result;\n }\n}\n\nexport type DynoBlockType = (\n inputs: { [K in keyof InTypes]?: DynoVal },\n outputs: { [K in keyof OutTypes]?: DynoVal },\n { roots }: { roots: Dyno[] },\n) => { [K in keyof OutTypes]?: DynoVal } | undefined;\n\nexport class DynoBlock<\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends Dyno {\n construct: DynoBlockType;\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n construct,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n construct: DynoBlockType;\n }) {\n super({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n generate: (args) => this.generateBlock(args),\n });\n this.construct = construct;\n }\n\n generateBlock({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }) {\n const blockInputs: { [K in keyof InTypes]?: DynoVal } = {};\n const blockOutputs: { [K in keyof OutTypes]?: DynoVal } = {};\n\n for (const key in inputs) {\n if (inputs[key] != null) {\n blockInputs[key] = new DynoLiteral(this.inTypes[key], inputs[key]);\n }\n }\n for (const key in outputs) {\n if (outputs[key] != null) {\n blockOutputs[key] = new DynoValue(this.outTypes[key]);\n }\n }\n\n const options: { roots: Dyno[] } = { roots: [] };\n const returned = this.construct(blockInputs, blockOutputs, options);\n\n for (const global of this.globals?.({ inputs, outputs, compile }) ?? []) {\n compile.globals.add(global);\n }\n\n const ordering: Dyno[] = [];\n const nodeOuts = new Map<\n Dyno,\n { sequence: number; outNames: Map; newOuts: Set }\n >();\n\n function visit(\n node: Dyno,\n outKey?: string,\n outName?: string,\n ) {\n let outs = nodeOuts.get(node);\n if (!outs) {\n // First time visiting this node\n outs = {\n sequence: compile.nextSequence(),\n outNames: new Map(),\n newOuts: new Set(),\n };\n nodeOuts.set(node, outs);\n\n for (const key in node.inputs) {\n let input = node.inputs[key];\n while (input) {\n if (input instanceof DynoValue) {\n if (input instanceof DynoOutput) {\n visit(input.dyno, input.key);\n }\n break;\n }\n // Must be as HasDynoOut\n if (typeof input.dynoOut !== \"function\") {\n throw new Error(\n `dynoOut is not a function for ${input.constructor.name}`,\n );\n }\n input = input.dynoOut();\n }\n }\n ordering.push(node);\n }\n if (outKey) {\n if (!outName) {\n outs.newOuts.add(outKey);\n }\n outs.outNames.set(outKey, outName ?? `${outKey}_${outs.sequence}`);\n }\n }\n\n for (const root of options.roots) {\n visit(root);\n }\n\n for (const key in blockOutputs) {\n let value = returned?.[key] ?? blockOutputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoOutput) {\n visit(value.dyno, value.key, outputs[key]);\n }\n break;\n }\n // Must be as HasDynoOut\n value = value.dynoOut();\n }\n blockOutputs[key] = value;\n }\n\n const steps = [];\n\n for (const dyno of ordering) {\n // compile.statements.push(`// ${dyno.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`);\n\n const inputs: Record = {};\n const outputs: Record = {};\n\n for (const key in dyno.inputs) {\n let value = dyno.inputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoLiteral) {\n inputs[key] = value.getLiteral();\n } else if (value instanceof DynoOutput) {\n const source = nodeOuts.get(value.dyno)?.outNames.get(value.key);\n if (!source) {\n throw new Error(\n `Source not found for ${value.dyno.constructor.name}.${value.key}`,\n );\n }\n inputs[key] = source;\n }\n break;\n }\n // Must be as HasDynOut\n value = value.dynoOut();\n }\n }\n\n const outs = nodeOuts.get(dyno) ?? { outNames: new Map() };\n for (const [key, name] of outs.outNames.entries()) {\n outputs[key] = name;\n }\n\n const newSteps = dyno.compile({ inputs, outputs, compile });\n steps.push(newSteps);\n }\n\n const literalOutputs = [];\n for (const key in outputs) {\n if (blockOutputs[key] instanceof DynoLiteral) {\n literalOutputs.push(\n `${outputs[key]} = ${blockOutputs[key].getLiteral()};`,\n );\n }\n }\n if (literalOutputs.length > 0) {\n steps.push(literalOutputs);\n }\n\n const statements = steps.flatMap((step, index) => {\n // Add a blank line between steps\n return index === 0 ? step : [\"\", ...step];\n });\n return { statements };\n }\n}\n\nexport function dynoBlock<\n InTypes extends Record,\n OutTypes extends Record,\n>(\n inTypes: InTypes,\n outTypes: OutTypes,\n construct: DynoBlockType,\n { update, globals }: { update?: () => void; globals?: () => string[] } = {},\n) {\n return new DynoBlock({ inTypes, outTypes, construct, update, globals });\n}\n\nexport function dyno<\n InTypes extends Record,\n OutTypes extends Record,\n>({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n}: {\n inTypes: InTypes;\n outTypes: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n}) {\n return new Dyno({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n });\n}\n\nexport function dynoDeclare(name: string, type: DynoType, count?: number) {\n const typeStr = typeof type === \"string\" ? type : type.type;\n if (!typeStr) {\n throw new Error(`Invalid DynoType: ${String(type)}`);\n }\n return `${typeStr} ${name}${count != null ? `[${count}]` : \"\"}`;\n}\n\nexport function unindentLines(s: string): string[] {\n let seenNonEmpty = false;\n const lines = s\n .split(\"\\n\")\n .map((line) => {\n const trimmedLine = line.trimEnd();\n if (seenNonEmpty) {\n return trimmedLine;\n }\n if (trimmedLine.length > 0) {\n seenNonEmpty = true;\n return trimmedLine;\n }\n return null;\n })\n .filter((line) => line != null);\n while (lines.length > 0 && lines[lines.length - 1].length === 0) {\n lines.pop();\n }\n if (lines.length === 0) {\n return [];\n }\n\n const indent = lines[0].match(/^\\s*/)?.[0];\n if (!indent) {\n return lines; // No indent, return as is\n }\n // Remove indent from the beginning of each line\n const regex = new RegExp(`^${indent}`);\n return lines.map((line) => line.replace(regex, \"\"));\n}\n\nexport function unindent(s: string): string {\n return unindentLines(s).join(\"\\n\");\n}\n\nexport class UnaryOp<\n A extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n outKey,\n outTypeFunc,\n }: { a: DynoVal; outKey: OutKey; outTypeFunc: (aType: A) => OutType }) {\n const inTypes = { a: valType(a) };\n const outType = outTypeFunc(valType(a));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class BinaryOp<\n A extends DynoType,\n B extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b) };\n const outType = outTypeFunc(valType(a), valType(b));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class TrinaryOp<\n A extends DynoType,\n B extends DynoType,\n C extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B; c: C }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n c,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n c: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B, cType: C) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b), c: valType(c) };\n const outType = outTypeFunc(valType(a), valType(b), valType(c));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b, c } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n","import { Gunzip } from \"fflate\";\nimport * as THREE from \"three\";\n\n// Miscellaneous utility functions for Spark\n\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SCALE_ZERO,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_MIN_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines.js\";\nimport { unindent } from \"./dyno/base.js\";\n\nexport const threeRevision = Number.parseInt(THREE.REVISION);\nexport const threeMrtArray = threeRevision >= 179;\n\nconst f32buffer = new Float32Array(1);\nconst u32buffer = new Uint32Array(f32buffer.buffer);\nconst supportsFloat16Array = \"Float16Array\" in globalThis;\nconst f16buffer = supportsFloat16Array\n ? new globalThis[\"Float16Array\" as keyof typeof globalThis](1)\n : null;\nconst u16buffer = new Uint16Array(f16buffer?.buffer);\n\n// Returns a normalized array of numbers\nexport function normalize(vec: number[]) {\n const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0));\n return vec.map((v) => v / norm);\n}\n\n// Reinterpret the bits of a float32 as a uint32\nexport function floatBitsToUint(f: number): number {\n f32buffer[0] = f;\n return u32buffer[0];\n}\n\n// Reinterpret the bits of a uint32 as a float32\nexport function uintBitsToFloat(u: number): number {\n u32buffer[0] = u;\n return f32buffer[0];\n}\n\nexport const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS;\nexport const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS;\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfNative(f: number): number {\n f16buffer[0] = f;\n return u16buffer[0];\n}\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfJS(f: number): number {\n // Store the value into the shared Float32 array.\n f32buffer[0] = f;\n const bits = u32buffer[0];\n\n // Extract sign (1 bit), exponent (8 bits), and fraction (23 bits)\n const sign = (bits >> 31) & 0x1;\n const exp = (bits >> 23) & 0xff;\n const frac = bits & 0x7fffff;\n const halfSign = sign << 15;\n\n // Handle special cases: NaN and Infinity\n if (exp === 0xff) {\n // NaN: set all exponent bits to 1 and some nonzero fraction bits.\n if (frac !== 0) {\n return halfSign | 0x7fff;\n }\n // Infinity\n return halfSign | 0x7c00;\n }\n\n // Adjust the exponent from float32 bias (127) to float16 bias (15)\n const newExp = exp - 127 + 15;\n\n // Handle overflow: too large to represent in half precision.\n if (newExp >= 0x1f) {\n return halfSign | 0x7c00; // Infinity\n }\n if (newExp <= 0) {\n // Handle subnormals and underflow.\n if (newExp < -10) {\n // Too small: underflows to zero.\n return halfSign;\n }\n // Convert to subnormal: add the implicit leading 1 to the fraction,\n // then shift to align with the half-precision's 10 fraction bits.\n const subFrac = (frac | 0x800000) >> (1 - newExp + 13);\n return halfSign | subFrac;\n }\n\n // Normalized half-precision number: shift fraction to fit into 10 bits.\n const halfFrac = frac >> 13;\n return halfSign | (newExp << 10) | halfFrac;\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfNative(u: number): number {\n u16buffer[0] = u;\n return f16buffer[0];\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfJS(h: number): number {\n // Extract the sign (1 bit), exponent (5 bits), and fraction (10 bits)\n const sign = (h >> 15) & 0x1;\n const exp = (h >> 10) & 0x1f;\n const frac = h & 0x3ff;\n\n let f32bits: number;\n\n if (exp === 0) {\n if (frac === 0) {\n // Zero (positive or negative)\n f32bits = sign << 31;\n } else {\n // Subnormal half-precision number.\n // Normalize the subnormal number:\n let mant = frac;\n let e = -14; // For half, the exponent for subnormals is fixed at -14.\n // Shift left until the implicit leading 1 is in place.\n while ((mant & 0x400) === 0) {\n // 0x400 === 1 << 10\n mant <<= 1;\n e--;\n }\n // Remove the leading 1 (which is now implicit)\n mant &= 0x3ff;\n // Convert the half exponent (e) to the 32-bit float exponent:\n const newExp = e + 127; // 32-bit float bias is 127.\n const newFrac = mant << 13; // Align to 23-bit fraction (23 - 10 = 13)\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n } else if (exp === 0x1f) {\n // Handle special cases for Infinity and NaN.\n if (frac === 0) {\n // Infinity\n f32bits = (sign << 31) | 0x7f800000;\n } else {\n // NaN (we choose a quiet NaN)\n f32bits = (sign << 31) | 0x7fc00000;\n }\n } else {\n // Normalized half-precision number.\n // Adjust exponent from half (bias 15) to float32 (bias 127)\n const newExp = exp - 15 + 127;\n const newFrac = frac << 13;\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n\n // Write the 32-bit bit pattern to the shared buffer,\n // then read it as a float32 to return a JavaScript number.\n u32buffer[0] = f32bits;\n return f32buffer[0];\n}\n\n// Convert a number 0..1 to a 0..255 uint\nexport function floatToUint8(v: number): number {\n // Converts from 0..1 float to 0..255 uint8\n return Math.max(0, Math.min(255, Math.round(v * 255)));\n}\n\n// Convert a number -1..1 to a -127..127 int\nexport function floatToSint8(v: number): number {\n // Converts from -1..1 float to -127..127 int8\n return Math.max(-127, Math.min(127, Math.round(v * 127)));\n}\n\n// Convert a 0..255 uint to a 0..1 float\nexport function Uint8ToFloat(v: number): number {\n // Converts from 0..255 uint8 to 0..1 float\n return v / 255;\n}\n\n// Convert a -127..127 int to a -1..1 float\nexport function Sint8ToFloat(v: number): number {\n // Converts from -127..127 int8 to -1..1 float\n return v / 127;\n}\n\n// A simple utility class for caching a fixed number of items\nexport class DataCache {\n // Maximum number of items to cache\n maxItems: number;\n\n // Function to fetch data for a key\n asyncFetch: (key: string) => Promise;\n\n // Function to dispose of data when it is no longer needed\n dispose?: (data: unknown) => void;\n\n // Array of cached items\n items: { key: string; data: unknown }[];\n\n // In-progress fetch promises\n pending: Map>;\n\n // Create a DataCache with a given function that fetches data not in the cache.\n constructor({\n asyncFetch,\n dispose,\n maxItems = 5,\n }: {\n asyncFetch: (key: string) => Promise;\n dispose?: (data: unknown) => void;\n maxItems?: number;\n }) {\n this.asyncFetch = asyncFetch;\n this.dispose = dispose;\n this.maxItems = maxItems;\n this.items = [];\n this.pending = new Map();\n }\n\n has(key: string): boolean {\n return this.items.some((item) => item.key === key);\n }\n\n getImmediate(key: string): unknown | undefined {\n const index = this.items.findIndex((item) => item.key === key);\n if (index >= 0) {\n // Data exists in our cache, move it to the end of the array\n const item = this.items.splice(index, 1)[0];\n this.items.push(item);\n // Return the cached data\n return item.data;\n }\n return undefined;\n }\n\n // Fetch data for the key, returning cached data if available.\n async getFetch(key: string): Promise {\n const immediate = this.getImmediate(key);\n if (immediate !== undefined) {\n return immediate;\n }\n\n let pending = this.pending.get(key);\n if (pending) {\n return pending;\n }\n\n pending = this.asyncFetch(key).then((data) => {\n this.pending.delete(key);\n\n // Add the data to the cache\n this.items.push({ key, data });\n // If the cache is too large, remove the oldest accessed item\n while (this.items.length > this.maxItems) {\n const removed = this.items.shift();\n if (removed && this.dispose) {\n this.dispose(removed.data);\n }\n }\n // Return the fetched data\n return data;\n });\n this.pending.set(key, pending);\n return pending;\n }\n}\n\n// Like Array.map but for objects\nexport function mapObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n const entries = Object.entries(obj).map(([key, value]) => [\n key,\n fn(value, key),\n ]);\n // Returns a new object with the mapped values\n return Object.fromEntries(entries);\n}\n\n// Like Array.map().filter() but for objects.\n// The callback fn() should return undefined to filter out the key.\nexport function mapFilterObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n // If no return (or return undefined), the key is not included in the result\n const entries = Object.entries(obj)\n .map(([key, value]) => [key, fn(value, key)])\n .filter(([_, value]) => value !== undefined);\n // Returns a new object with the filtered values\n return Object.fromEntries(entries);\n}\n\n// Recursively finds all ArrayBuffers in an object and returns them as an array\n// to use as transferable objects to send between workers.\nexport function getTransferable(ctx: unknown): Transferable[] {\n const buffers: Transferable[] = [];\n const seen = new Set();\n\n function traverse(obj: unknown) {\n if (obj && typeof obj === \"object\" && !seen.has(obj)) {\n seen.add(obj);\n\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n // Handles TypedArrays and DataView\n buffers.push(obj.buffer as ArrayBuffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n\n traverse(ctx);\n return buffers;\n}\n\n// Create an array of the given size and initialize element with initFunction()\nexport function newArray(\n n: number,\n initFunction: (index: number) => T,\n): T[] {\n // Creates a new array and calls a constructor function for each element with index\n return new Array(n).fill(null).map((_, i) => initFunction(i));\n}\n\n// A free list that has a pool of items of type T, with callbacks\n// for constructing, disposing, and checking if an item is valid for the given args.\nexport class FreeList {\n items: T[];\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n\n constructor({\n // Allocate a new item with the given args\n allocate,\n // Dispose of an item (optional, if GC is enough)\n dispose,\n // Check if an existing item in the list is valid for the given args,\n // allowing you to store heterogeneous items in the list.\n valid,\n }: {\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n }) {\n this.items = [];\n this.allocate = allocate;\n this.dispose = dispose;\n this.valid = valid;\n }\n\n // Allocate a new item from the free list, first checking if a existing item\n // on the freelist is valid for the given args.\n alloc(args: Args): T {\n while (true) {\n const item = this.items.pop();\n if (!item) {\n // No items in the free list, allocate a new one\n break;\n }\n if (this.valid(item, args)) {\n // Found a valid item, return it\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): found valid item. Reusing...`);\n return item;\n }\n // Item isn't valid for our args, dispose of it and try again\n if (this.dispose) {\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): disposing invalid item.`);\n this.dispose(item);\n }\n }\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): allocating new item`);\n return this.allocate(args);\n }\n\n free(item: T) {\n // Return item to the free list\n this.items.push(item);\n }\n\n disposeAll() {\n // Disposes of all items in the free list\n let item: T | undefined;\n item = this.items.pop();\n while (item) {\n if (this.dispose) {\n this.dispose(item);\n }\n item = this.items.pop();\n }\n }\n}\n\nexport function encodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) {\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n extA[i4] = floatBitsToUint(x);\n extA[i4 + 1] = floatBitsToUint(y);\n extA[i4 + 2] = floatBitsToUint(z);\n extA[i4 + 3] = toHalf(opacity);\n extB[i4] = toHalf(r) | (toHalf(g) << 16);\n extB[i4 + 1] = toHalf(b) | (toHalf(Math.log(scaleX)) << 16);\n extB[i4 + 2] = toHalf(Math.log(scaleY)) | (toHalf(Math.log(scaleZ)) << 16);\n extB[i4 + 3] = encodeQuatOctXy1010R12(quatX, quatY, quatZ, quatW);\n}\n\nexport function decodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n result.center.x = uintBitsToFloat(extA[i4]);\n result.center.y = uintBitsToFloat(extA[i4 + 1]);\n result.center.z = uintBitsToFloat(extA[i4 + 2]);\n result.opacity = fromHalf(extA[i4 + 3] & 0xffff);\n result.color.r = fromHalf(extB[i4] & 0xffff);\n result.color.g = fromHalf(extB[i4] >>> 16);\n result.color.b = fromHalf(extB[i4 + 1] & 0xffff);\n result.scales.x = Math.exp(fromHalf(extB[i4 + 1] >>> 16));\n result.scales.y = Math.exp(fromHalf(extB[i4 + 2] & 0xffff));\n result.scales.z = Math.exp(fromHalf(extB[i4 + 2] >>> 16));\n decodeQuatOctXy1010R12(extB[i4 + 3], result.quaternion);\n return result;\n}\n\n// Encode a PackedSplat as 4 consecutive Uint32 elements in the packedSplats array.\n// The center coordinates x,y,z are encoded as float16, the scales x,y,z as a\n// logarithmic uint8, rotation as three uint8s representing rotation axis and angle,\n// and RGBA as 4xuint8.\nexport function setPackedSplat(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * opacity : opacity);\n\n // Alternate internal encodings commented out below.\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n // Encode the splat as 4 consecutive Uint32 elements\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] =\n uScaleX | (uScaleY << 8) | (uScaleZ << 16) | (uQuatZ << 24);\n}\n\n// Encode the center coordinates x,y,z in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatCenter(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n) {\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n const i4 = index * 4;\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (packedSplats[i4 + 2] & 0xffff0000);\n}\n\n// Encode the scales x,y,z in the packedSplats Uint32Array, leaving all other fields as is.\nexport function setPackedSplatScales(\n packedSplats: Uint32Array,\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n encoding?: {\n lnScaleMin?: number;\n lnScaleMax?: number;\n },\n) {\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const i4 = index * 4;\n packedSplats[i4 + 3] =\n uScaleX |\n (uScaleY << 8) |\n (uScaleZ << 16) |\n (packedSplats[i4 + 3] & 0xff000000);\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempQuaternion = new THREE.Quaternion();\n\n// Encode the rotation quatX, quatY, quatZ, quatW in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatQuat(\n packedSplats: Uint32Array,\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n) {\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n const i4 = index * 4;\n packedSplats[i4 + 2] =\n (packedSplats[i4 + 2] & 0x0000ffff) | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] = (packedSplats[i4 + 3] & 0x00ffffff) | (uQuatZ << 24);\n}\n\n// Encode the RGBA color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgba(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n a: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * a : a);\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n}\n\n// Encode the RGB color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgb(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n\n const i4 = index * 4;\n packedSplats[i4] =\n uR | (uG << 8) | (uB << 16) | (packedSplats[i4] & 0xff000000);\n}\n\n// Encode the opacity in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatOpacity(\n packedSplats: Uint32Array,\n index: number,\n opacity: number,\n) {\n const uA = floatToUint8(opacity);\n\n const i4 = index * 4;\n packedSplats[i4] = (packedSplats[i4] & 0x00ffffff) | (uA << 24);\n}\n\nconst packedCenter = new THREE.Vector3();\nconst packedScales = new THREE.Vector3();\nconst packedQuaternion = new THREE.Quaternion();\nconst packedColor = new THREE.Color();\nconst packedFields = {\n center: packedCenter,\n scales: packedScales,\n quaternion: packedQuaternion,\n color: packedColor,\n opacity: 0.0,\n};\n\n// Unpack all components of a PackedSplat from the packedSplats Uint32Array into\n// THREE.js vector objects. The returned objects will be reused each call.\nexport function unpackSplat(\n packedSplats: Uint32Array,\n index: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n\n const i4 = index * 4;\n const word0 = packedSplats[i4];\n const word1 = packedSplats[i4 + 1];\n const word2 = packedSplats[i4 + 2];\n const word3 = packedSplats[i4 + 3];\n\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n result.color.set(\n rgbMin + ((word0 & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 8) & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 16) & 0xff) / 255) * rgbRange,\n );\n result.opacity = ((word0 >>> 24) & 0xff) / 255;\n if (encoding?.lodOpacity) {\n result.opacity = 2.0 * result.opacity;\n }\n result.center.set(\n fromHalf(word1 & 0xffff),\n fromHalf((word1 >>> 16) & 0xffff),\n fromHalf(word2 & 0xffff),\n );\n\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n const uScalesX = word3 & 0xff;\n result.scales.x =\n uScalesX === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesX - 1) * lnScaleScale);\n const uScalesY = (word3 >>> 8) & 0xff;\n result.scales.y =\n uScalesY === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesY - 1) * lnScaleScale);\n const uScalesZ = (word3 >>> 16) & 0xff;\n result.scales.z =\n uScalesZ === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesZ - 1) * lnScaleScale);\n\n const uQuat = ((word2 >>> 16) & 0xffff) | ((word3 >>> 8) & 0xff0000);\n decodeQuatOctXy88R8(uQuat, result.quaternion);\n // decodeQuatXyz888(uQuat, result.quaternion);\n // decodeQuatEulerXyz888(uQuat, result.quaternion);\n\n return result;\n}\n\n// Compute a texture array size that is large enough to fit numSplats. The most\n// common 2D texture size in WebGL2 is 4096x4096 which only allows for 16M splats,\n// so Spark stores Gsplat data in a 2D texture array, which most platforms support\n// up to 2048x2048x2048 = 8G splats. Allocations that fit within a single 2D texture\n// array layer will be rounded up to fill an entire texture row. Once a texture\n// array layer is filled, the allocation will be rounded up to fill an entire layer.\n// This is done so the entire set of splats can be covered by min/max coords across\n// each dimension.\nexport function getTextureSize(numSplats: number): {\n width: number;\n height: number;\n depth: number;\n maxSplats: number;\n} {\n // Compute a texture array size that is large enough to fit numSplats.\n // The width is always 2048, the height sized to fit the splats but no larger than 2048.\n // The depth is the number of layers needed to fit the splats.\n // maxSplats is computed as the new total available splats that can be stored.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n const maxSplats = width * height * depth;\n return { width, height, depth, maxSplats };\n}\n\nexport function computeMaxSplats(numSplats: number): number {\n // Compute the size of a Gsplat array texture (2048x2048xD) that can fit\n // numSplats splats, and return the total number of splats that can be stored\n // in such a texture.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n return width * height * depth;\n}\n\n// Heuristic function to determine if we are running on a mobile device.\nexport function isMobile(): boolean {\n if (navigator.platform.toLowerCase().startsWith(\"win\")) {\n return false;\n }\n if (navigator.maxTouchPoints > 0) {\n // Touch-enabled device, assume it's mobile\n return true;\n }\n return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test(\n navigator.userAgent,\n );\n}\n\n// Heuristic function to determine if we are running on an Android device.\n// (does not include Oculus Quest)\nexport function isAndroid(): boolean {\n return (\n /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent)\n );\n}\n\n// Heuristic function to determine if we are running on an Oculus Quest device.\nexport function isOculus(): boolean {\n return !!navigator.xr && /Oculus/.test(navigator.userAgent);\n}\n\nexport function isQuest2() {\n return isOculus() && /Quest 2/.test(navigator.userAgent);\n}\n\nexport function isIos(): boolean {\n return /iPhone|iPad/.test(navigator.userAgent);\n}\n\nexport function isVisionPro(): boolean {\n return (\n !!navigator.xr &&\n isIos() &&\n /Safari/.test(navigator.userAgent) &&\n isMobile()\n );\n}\n\n// Take an array of RGBA8 encoded pixels and flip them vertically in-place.\n// This is useful for converting between top-left and bottom-left coordinate systems\n// in standard 2D images vs WebGL2.\nexport function flipPixels(\n pixels: Uint8Array,\n width: number,\n height: number,\n): Uint8Array {\n // Flips pixels vertically in-place, returns original array.\n const tempLine = new Uint8Array(width * 4);\n\n // Only need to process half the height since we're swapping\n for (let y = 0; y < height / 2; y++) {\n const topOffset = y * width * 4;\n const bottomOffset = (height - 1 - y) * width * 4;\n\n // Save top line to temp buffer\n tempLine.set(pixels.subarray(topOffset, topOffset + width * 4));\n // Move bottom line to top\n pixels.set(\n pixels.subarray(bottomOffset, bottomOffset + width * 4),\n topOffset,\n );\n // Move saved top line to bottom\n pixels.set(tempLine, bottomOffset);\n }\n return pixels;\n}\n\n// Utility to take an array of RGBA8 encoded pixels and convert them to a\n// PNG-encoded image data URL that can be downloaded to the client.\nexport function pixelsToPngUrl(\n pixels: Uint8Array,\n width: number,\n height: number,\n): string {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Can't get 2d context\");\n }\n const imageData = ctx.createImageData(width, height);\n imageData.data.set(pixels);\n ctx.putImageData(imageData, 0, 0);\n return canvas.toDataURL(\"image/png\");\n}\n\n// Manually clone a THREE.Clock object.\nexport function cloneClock(clock: THREE.Clock): THREE.Clock {\n const newClock = new THREE.Clock(clock.autoStart);\n newClock.startTime = clock.startTime;\n newClock.oldTime = clock.oldTime;\n newClock.elapsedTime = clock.elapsedTime;\n newClock.running = clock.running;\n return newClock;\n}\n\n// Utility to filter out an undefined values from an object.\nexport function omitUndefined(obj: T): Partial {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => value !== undefined),\n ) as Partial;\n}\n\n// \"Identity\" vertex shader that just passes through the position.\nexport const IDENT_VERTEX_SHADER = unindent(`\n precision highp float;\n\n in vec3 position;\n\n void main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n }\n`);\n\n// Returns the average position of an array of THREE.Vector3.\nexport function averagePositions(positions: THREE.Vector3[]): THREE.Vector3 {\n const sum = new THREE.Vector3();\n for (const position of positions) {\n sum.add(position);\n }\n return sum.divideScalar(positions.length);\n}\n\n// Returns an \"average\" of an array of THREE.Quaternion objects.\n// Note that this is not a spherical lerp between quaternions but\n// rather an arithmetic mean that is normalized to unit length.\nexport function averageQuaternions(\n quaternions: THREE.Quaternion[],\n): THREE.Quaternion {\n if (quaternions.length === 0) {\n return new THREE.Quaternion();\n }\n const sum = quaternions[0].clone();\n for (let i = 1; i < quaternions.length; i++) {\n if (quaternions[i].dot(quaternions[0]) < 0.0) {\n sum.x -= quaternions[i].x;\n sum.y -= quaternions[i].y;\n sum.z -= quaternions[i].z;\n sum.w -= quaternions[i].w;\n } else {\n sum.x += quaternions[i].x;\n sum.y += quaternions[i].y;\n sum.z += quaternions[i].z;\n sum.w += quaternions[i].w;\n }\n }\n return sum.normalize();\n}\n\n// Compare two coordinates given by matrix1 and matrix2, returning the distance\n// between their origins and the \"coincidence\" of their orientations, defined\n// as the dot product of their \"-z\" axes.\nexport function coinciDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n const direction1 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix1)\n .sub(origin1)\n .normalize();\n const direction2 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix2)\n .sub(origin2)\n .normalize();\n\n const distance = origin1.distanceTo(origin2);\n const coincidence = direction1.dot(direction2);\n return { distance, coincidence };\n}\n\n// Utility function that returns whether two coordinate system origins\n// given by matrix1 and matrix2 are within a certain maxDistance of each other.\nexport function withinDist({\n matrix1,\n matrix2,\n maxDistance,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n}): boolean {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n return origin1.distanceTo(origin2) <= maxDistance;\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined by a maxDistance and a minCoincidence.\nexport function withinCoinciDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoincidence,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoincidence?: number;\n}): boolean {\n const { distance, coincidence } = coinciDist(matrix1, matrix2);\n return (\n distance <= maxDistance &&\n (minCoincidence == null || coincidence >= minCoincidence)\n );\n}\n\n// Compare two coordinate systems given by matrix1 and matrix2, returning the\n// distance between their origins and the \"coorientation\" of their orientations,\n// define as the dot product of their quaternion transforms (flipping their\n// orientation to be on the same hemisphere if necessary).\nexport function coorientDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const [origin1, rotate1] = [new THREE.Vector3(), new THREE.Quaternion()];\n const [origin2, rotate2] = [new THREE.Vector3(), new THREE.Quaternion()];\n matrix1.decompose(origin1, rotate1, new THREE.Vector3());\n matrix2.decompose(origin2, rotate2, new THREE.Vector3());\n\n const distance = origin1.distanceTo(origin2);\n const coorient = Math.abs(rotate1.dot(rotate2));\n return { distance, coorient };\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined a maxDistance and a minCoorient.\nexport function withinCoorientDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoorient,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoorient?: number;\n}): boolean {\n const { distance, coorient } = coorientDist(matrix1, matrix2);\n return (\n distance <= maxDistance && (minCoorient == null || coorient >= minCoorient)\n );\n}\n\n// Like Math.sign but with a custom epsilon value.\nexport function epsilonSign(value: number, epsilon = 0.001): number {\n if (Math.abs(value) < epsilon) {\n return 0;\n }\n return Math.sign(value);\n}\n\n// Encode a THREE.Quaternion into a 24-bit integer, converting the xyz coordinates\n// to signed 8-bit integers (w can be derived from xyz), and flipping the sign\n// of the quaternion if necessary to make this possible (q == -q for quaternions).\nexport function encodeQuatXyz888(q: THREE.Quaternion): number {\n const negQuat = q.w < 0.0;\n const iQuatX = floatToSint8(negQuat ? -q.x : q.x);\n const iQuatY = floatToSint8(negQuat ? -q.y : q.y);\n const iQuatZ = floatToSint8(negQuat ? -q.z : q.z);\n const uQuatX = iQuatX & 0xff;\n const uQuatY = iQuatY & 0xff;\n const uQuatZ = iQuatZ & 0xff;\n return uQuatX | (uQuatY << 8) | (uQuatZ << 16);\n}\n\n// Decode a 24-bit integer of the quaternion's xyz coordinates into a THREE.Quaternion.\nexport function decodeQuatXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n const iQuatX = (encoded << 24) >> 24;\n const iQuatY = (encoded << 16) >> 24;\n const iQuatZ = (encoded << 8) >> 24;\n out.set(iQuatX / 127.0, iQuatY / 127.0, iQuatZ / 127.0, 0.0);\n const dotSelf = out.x * out.x + out.y * out.y + out.z * out.z;\n out.w = Math.sqrt(Math.max(0.0, 1.0 - dotSelf));\n return out;\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempNormalizedQuaternion = new THREE.Quaternion();\nconst tempAxis = new THREE.Vector3();\n\n/**\n * Encodes a THREE.Quaternion into a 24‐bit integer.\n *\n * Bit layout (LSB → MSB):\n * - Bits 0–7: quantized U (8 bits)\n * - Bits 8–15: quantized V (8 bits)\n * - Bits 16–23: quantized angle θ (8 bits) from [0,π]\n *\n * This version uses folded octahedral mapping (all inline).\n */\nexport function encodeQuatOctXy88R8(q: THREE.Quaternion): number {\n // Force the minimal representation (q.w >= 0)\n const qnorm = tempNormalizedQuaternion.copy(q).normalize();\n if (qnorm.w < 0) {\n qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w);\n }\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnorm.w);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(\n qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z,\n );\n const axis =\n xyz_norm < 1e-6\n ? tempAxis.set(1, 0, 0)\n : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm);\n // const foldAxis = (axis.z < 0);\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z);\n let p_x = axis.x / sum;\n let p_y = axis.y / sum;\n // Fold the lower hemisphere.\n if (axis.z < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 7 bits (0..127)\n const quantU = Math.round(u_f * 255);\n const quantV = Math.round(v_f * 255);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 10 bits (0..1023) ---\n const angleInt = Math.round(theta * (255 / Math.PI));\n\n // Pack into 24 bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16) | (quantV << 8) | quantU;\n}\n\n/**\n * Decodes a 24‐bit encoded quaternion (packed in a number) back to a THREE.Quaternion.\n *\n * Assumes the same bit layout as in encodeQuatOctXy88R8.\n */\nexport function decodeQuatOctXy88R8(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 8‐bit quantU and quantV, and 8‐bit angleInt.\n const quantU = encoded & 0xff; // bits 0–7\n const quantV = (encoded >>> 8) & 0xff; // bits 8–15\n const angleInt = (encoded >>> 16) & 0xff; // bits 16–23\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 255;\n const v_f = quantV / 255;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axis = tempAxis.set(f_x, f_y, f_z).normalize();\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 255) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axis.x * s, axis.y * s, axis.z * s, w);\n return out;\n}\n\n/**\n * Encodes a THREE.Quaternion into a 24‑bit unsigned integer\n * by converting it to Euler angles (roll, pitch, yaw).\n * The Euler angles are assumed to be in radians in the range [-π, π].\n * Each angle is normalized to [0,1] and quantized to 8 bits.\n * Bit layout (LSB→MSB):\n * - Bits 0–7: roll (quantized)\n * - Bits 8–15: pitch (quantized)\n * - Bits 16–23: yaw (quantized)\n */\nexport function encodeQuatEulerXyz888(q: THREE.Quaternion): number {\n // Normalize quaternion to ensure a proper rotation.\n const qNorm = q.clone().normalize();\n\n // Tait–Bryan angles (roll, pitch, yaw)\n const sinr_cosp = 2.0 * (qNorm.w * qNorm.x + qNorm.y * qNorm.z);\n const cosr_cosp = 1.0 - 2.0 * (qNorm.x * qNorm.x + qNorm.y * qNorm.y);\n const roll = Math.atan2(sinr_cosp, cosr_cosp);\n\n const sinp = 2.0 * (qNorm.w * qNorm.y - qNorm.z * qNorm.x);\n const pitch =\n Math.abs(sinp) >= 1.0 ? Math.sign(sinp) * (Math.PI / 2) : Math.asin(sinp);\n\n const siny_cosp = 2.0 * (qNorm.w * qNorm.z + qNorm.x * qNorm.y);\n const cosy_cosp = 1.0 - 2.0 * (qNorm.y * qNorm.y + qNorm.z * qNorm.z);\n const yaw = Math.atan2(siny_cosp, cosy_cosp);\n\n // Map each angle from [-π, π] to [0, 1]\n const normRoll = (roll + Math.PI) / (2 * Math.PI);\n const normPitch = (pitch + Math.PI) / (2 * Math.PI);\n const normYaw = (yaw + Math.PI) / (2 * Math.PI);\n\n // Quantize to 8 bits (0 to 255)\n const rollQ = Math.round(normRoll * 255);\n const pitchQ = Math.round(normPitch * 255);\n const yawQ = Math.round(normYaw * 255);\n\n // Pack into a 24-bit unsigned integer:\n // Bits 0–7: rollQ, Bits 8–15: pitchQ, Bits 16–23: yawQ.\n return (yawQ << 16) | (pitchQ << 8) | rollQ;\n}\n\n/**\n * Decodes a 24‑bit unsigned integer into a THREE.Quaternion\n * by unpacking three 8‑bit values (roll, pitch, yaw) in the range [0,255]\n * and then converting them back to Euler angles in [-π, π] and to a quaternion.\n */\nexport function decodeQuatEulerXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Unpack 8‑bit values.\n const rollQ = encoded & 0xff;\n const pitchQ = (encoded >>> 8) & 0xff;\n const yawQ = (encoded >>> 16) & 0xff;\n\n // Convert quantized values back to normalized [0,1] values.\n const normRoll = rollQ / 255;\n const normPitch = pitchQ / 255;\n const normYaw = yawQ / 255;\n\n // Map from [0,1] to [-π, π]\n const roll = normRoll * (2 * Math.PI) - Math.PI;\n const pitch = normPitch * (2 * Math.PI) - Math.PI;\n const yaw = normYaw * (2 * Math.PI) - Math.PI;\n\n // Convert Euler angles to quaternion (Tait–Bryan: roll, pitch, yaw).\n const cr = Math.cos(roll * 0.5);\n const sr = Math.sin(roll * 0.5);\n const cp = Math.cos(pitch * 0.5);\n const sp = Math.sin(pitch * 0.5);\n const cy = Math.cos(yaw * 0.5);\n const sy = Math.sin(yaw * 0.5);\n\n out.w = cr * cp * cy + sr * sp * sy;\n out.x = sr * cp * cy - cr * sp * sy;\n out.y = cr * sp * cy + sr * cp * sy;\n out.z = cr * cp * sy - sr * sp * cy;\n out.normalize();\n return out;\n}\n\nexport function encodeQuatOctXy1010R12(\n qx: number,\n qy: number,\n qz: number,\n qw: number,\n): number {\n const qlen = Math.sqrt(qx * qx + qy * qy + qz * qz + qw * qw);\n // Force the minimal representation (q.w >= 0)\n const qnx = (qw < 0 ? -qx : qx) / qlen;\n const qny = (qw < 0 ? -qy : qy) / qlen;\n const qnz = (qw < 0 ? -qz : qz) / qlen;\n const qnw = (qw < 0 ? -qw : qw) / qlen;\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnw);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(qnx * qnx + qny * qny + qnz * qnz);\n const axisX = xyz_norm < 1e-6 ? 1 : qnx / xyz_norm;\n const axisY = xyz_norm < 1e-6 ? 0 : qny / xyz_norm;\n const axisZ = xyz_norm < 1e-6 ? 0 : qnz / xyz_norm;\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axisX) + Math.abs(axisY) + Math.abs(axisZ);\n let p_x = axisX / sum;\n let p_y = axisY / sum;\n // Fold the lower hemisphere.\n if (axisZ < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 10 bits (0..1023)\n const quantU = Math.round(u_f * 1023);\n const quantV = Math.round(v_f * 1023);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 12 bits (0..4095) ---\n const angleInt = Math.round(theta * (4095 / Math.PI));\n\n // Pack into 32 bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20) | (quantV << 10) | quantU;\n}\n\nexport function decodeQuatOctXy1010R12(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 10‐bit quantU and quantV, and 12‐bit angleInt.\n const quantU = encoded & 0x3ff; // bits 0–9\n const quantV = (encoded >>> 10) & 0x3ff; // bits 10–19\n const angleInt = (encoded >>> 20) & 0xfff; // bits 20–31\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 1023;\n const v_f = quantV / 1023;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axisLen = Math.sqrt(f_x * f_x + f_y * f_y + f_z * f_z);\n const axisX = axisLen < 1e-6 ? 0 : f_x / axisLen;\n const axisY = axisLen < 1e-6 ? 0 : f_y / axisLen;\n const axisZ = axisLen < 1e-6 ? 0 : f_z / axisLen;\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 4095) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axisX * s, axisY * s, axisZ * s, w);\n return out;\n}\n\n// Pack four signed 8-bit values into a single uint32.\nfunction packSint8Bytes(\n b0: number,\n b1: number,\n b2: number,\n b3: number,\n): number {\n const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127)));\n const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127)));\n const clampedB2 = Math.round(Math.max(-127, Math.min(127, b2 * 127)));\n const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127)));\n return (\n (clampedB0 & 0xff) |\n ((clampedB1 & 0xff) << 8) |\n ((clampedB2 & 0xff) << 16) |\n ((clampedB3 & 0xff) << 24)\n );\n}\n\n// Encode an array of 9 signed RGB SH1 coefficients (clamped to [-1,1]) into\n// a pair of uint32 values, where each coefficient is stored as a sint7\nexport function encodeSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n encoding?: {\n sh1Max?: number;\n },\n) {\n const sh1Max = encoding?.sh1Max ?? 1;\n const sh1Scale = 63 / sh1Max;\n\n // Pack sint7 values into 2 x uint32\n const base = index * 2;\n for (let i = 0; i < 9; ++i) {\n const s = sh1Rgb[i] * sh1Scale;\n const value = Math.round(Math.max(-63, Math.min(63, s))) & 0x7f;\n const bitStart = i * 7;\n const bitEnd = bitStart + 7;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh1Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh1Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\n// Encode an array of 15 signed RGB SH2 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint8.\nexport function encodeSh2Rgb(\n sh2Array: Uint32Array,\n index: number,\n sh2Rgb: Float32Array,\n encoding?: {\n sh2Max?: number;\n },\n) {\n const sh2Max = encoding?.sh2Max ?? 1;\n const sh2Scale = 1 / sh2Max;\n\n // Pack sint8 values into 4 x uint32\n sh2Array[index * 4 + 0] = packSint8Bytes(\n sh2Rgb[0] * sh2Scale,\n sh2Rgb[1] * sh2Scale,\n sh2Rgb[2] * sh2Scale,\n sh2Rgb[3] * sh2Scale,\n );\n sh2Array[index * 4 + 1] = packSint8Bytes(\n sh2Rgb[4] * sh2Scale,\n sh2Rgb[5] * sh2Scale,\n sh2Rgb[6] * sh2Scale,\n sh2Rgb[7] * sh2Scale,\n );\n sh2Array[index * 4 + 2] = packSint8Bytes(\n sh2Rgb[8] * sh2Scale,\n sh2Rgb[9] * sh2Scale,\n sh2Rgb[10] * sh2Scale,\n sh2Rgb[11] * sh2Scale,\n );\n sh2Array[index * 4 + 3] = packSint8Bytes(\n sh2Rgb[12] * sh2Scale,\n sh2Rgb[13] * sh2Scale,\n sh2Rgb[14] * sh2Scale,\n 0,\n );\n}\n\n// Encode an array of 21 signed RGB SH3 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint6.\nexport function encodeSh3Rgb(\n sh3Array: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n encoding?: {\n sh3Max?: number;\n },\n) {\n const sh3Max = encoding?.sh3Max ?? 1;\n const sh3Scale = 31 / sh3Max;\n\n // Pack sint6 values into 4 x uint32\n const base = index * 4;\n for (let i = 0; i < 21; ++i) {\n const s = sh3Rgb[i] * sh3Scale;\n const value = Math.round(Math.max(-31, Math.min(31, s))) & 0x3f;\n const bitStart = i * 6;\n const bitEnd = bitStart + 6;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh3Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh3Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\nexport function encodeExtRgb(r: number, g: number, b: number): number {\n const ar = Math.abs(r);\n const ag = Math.abs(g);\n const ab = Math.abs(b);\n const maxAbs = Math.max(ar, ag, ab);\n const base = Math.floor(Math.log2(maxAbs));\n const biasedBase = Math.max(0, Math.min(31, base + 15));\n const divisor = 2 ** (biasedBase - 15) / 255;\n const uR = Math.round(Math.max(0, Math.min(255, ar / divisor)));\n const uG = Math.round(Math.max(0, Math.min(255, ag / divisor)));\n const uB = Math.round(Math.max(0, Math.min(255, ab / divisor)));\n const expSigns =\n (biasedBase << 3) |\n ((r < 0 ? 0x1 : 0) | (g < 0 ? 0x2 : 0) | (b < 0 ? 0x4 : 0));\n return uR | (uG << 8) | (uB << 16) | (expSigns << 24);\n}\n\nexport function decodeExtRgb(encoded: number): THREE.Color {\n const color = packedFields.color;\n const biasedBase = (encoded >>> 27) & 0x1f;\n const divisor = 2 ** (biasedBase - 15) / 255;\n const r = (encoded & 0xff) * divisor;\n const g = ((encoded >>> 8) & 0xff) * divisor;\n const b = ((encoded >>> 16) & 0xff) * divisor;\n color.r = encoded & 0x1000000 ? -r : r;\n color.g = encoded & 0x2000000 ? -g : g;\n color.b = encoded & 0x4000000 ? -b : b;\n return color;\n}\n\nexport function encodeExtSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n}\n\nexport function encodeExtSh12Rgb(\n sh1Array: Uint32Array,\n sh2Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n sh2Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n sh1Array[i4 + 3] = encodeExtRgb(sh2Rgb[0], sh2Rgb[1], sh2Rgb[2]);\n for (let k = 1; k < 5; ++k) {\n const k5 = k * 5;\n sh2Array[i4 + (k - 1)] = encodeExtRgb(\n sh2Rgb[k5],\n sh2Rgb[k5 + 1],\n sh2Rgb[k5 + 2],\n );\n }\n}\n\nexport function encodeExt3Rgb(\n sh3ArrayA: Uint32Array,\n sh3ArrayB: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 4; ++k) {\n const k3 = k * 3;\n sh3ArrayA[i4 + k] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n for (let k = 4; k < 7; ++k) {\n const k3 = k * 3;\n sh3ArrayB[i4 + (k - 4)] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n}\n\n// Partially decompress a gzip-encoded Uint8Array, returning a Uint8Array of\n// the specified numBytes from the start of the file.\nexport function decompressPartialGzip(\n fileBytes: Uint8Array,\n numBytes: number,\n): Uint8Array {\n const chunks: Uint8Array[] = [];\n let totalBytes = 0;\n let result: Uint8Array | null = null;\n\n const gunzip = new Gunzip((data, final) => {\n chunks.push(data);\n totalBytes += data.length;\n if (final || totalBytes >= numBytes) {\n const allBytes = new Uint8Array(totalBytes);\n let offset = 0;\n for (const chunk of chunks) {\n allBytes.set(chunk, offset);\n offset += chunk.length;\n }\n result = allBytes.slice(0, numBytes);\n }\n });\n\n const CHUNK_SIZE = 1024;\n let offset = 0;\n while (result == null && offset < fileBytes.length) {\n const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE);\n gunzip.push(chunk, false);\n offset += CHUNK_SIZE;\n }\n\n if (result == null) {\n gunzip.push(new Uint8Array(), true);\n if (result == null) {\n throw new Error(\"Failed to decompress partial gzip\");\n }\n }\n return result;\n}\n\nexport class GunzipReader {\n fileBytes: Uint8Array;\n chunkBytes: number;\n\n chunks: Uint8Array[];\n totalBytes: number;\n reader: ReadableStreamDefaultReader;\n\n constructor({\n fileBytes,\n chunkBytes = 64 * 1024,\n }: { fileBytes: Uint8Array; chunkBytes?: number }) {\n this.fileBytes = fileBytes;\n this.chunkBytes = chunkBytes;\n this.chunks = [];\n this.totalBytes = 0;\n\n const ds = new DecompressionStream(\"gzip\");\n const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds);\n this.reader = decompressionStream.getReader();\n }\n\n async read(numBytes: number): Promise {\n while (this.totalBytes < numBytes) {\n const { value: chunk, done: readerDone } = await this.reader.read();\n if (readerDone) {\n break;\n }\n\n this.chunks.push(chunk);\n this.totalBytes += chunk.length;\n }\n\n if (this.totalBytes < numBytes) {\n throw new Error(\n `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}`,\n );\n }\n\n const allBytes = new Uint8Array(this.totalBytes);\n let outOffset = 0;\n for (const chunk of this.chunks) {\n allBytes.set(chunk, outOffset);\n outOffset += chunk.length;\n }\n\n const result = allBytes.subarray(0, numBytes);\n this.chunks = [allBytes.subarray(numBytes)];\n this.totalBytes -= numBytes;\n return result;\n }\n}\n","import type { SplatEncoding } from \"./defines\";\nimport { computeMaxSplats, setPackedSplat } from \"./utils\";\n\nexport function decodeAntiSplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n) {\n const numSplats = Math.floor(fileBytes.length / 32); // 32 bytes per splat\n if (numSplats * 32 !== fileBytes.length) {\n throw new Error(\"Invalid .splat file size\");\n }\n initNumSplats(numSplats);\n\n const f32 = new Float32Array(fileBytes.buffer);\n for (let i = 0; i < numSplats; ++i) {\n const i32 = i * 32;\n const i8 = i * 8;\n const x = f32[i8 + 0];\n const y = f32[i8 + 1];\n const z = f32[i8 + 2];\n const scaleX = f32[i8 + 3];\n const scaleY = f32[i8 + 4];\n const scaleZ = f32[i8 + 5];\n const r = fileBytes[i32 + 24] / 255;\n const g = fileBytes[i32 + 25] / 255;\n const b = fileBytes[i32 + 26] / 255;\n const opacity = fileBytes[i32 + 27] / 255;\n const quatW = (fileBytes[i32 + 28] - 128) / 128;\n const quatX = (fileBytes[i32 + 29] - 128) / 128;\n const quatY = (fileBytes[i32 + 30] - 128) / 128;\n const quatZ = (fileBytes[i32 + 31] - 128) / 128;\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n }\n}\n\nexport function unpackAntiSplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n} {\n let numSplats = 0;\n let maxSplats = 0;\n let packedArray = new Uint32Array(0);\n decodeAntiSplat(\n fileBytes,\n (cbNumSplats) => {\n numSplats = cbNumSplats;\n maxSplats = computeMaxSplats(numSplats);\n packedArray = new Uint32Array(maxSplats * 4);\n },\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n setPackedSplat(\n packedArray,\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n },\n );\n return { packedArray, numSplats };\n}\n","import type { SplatEncoding } from \"./defines\";\nimport {\n computeMaxSplats,\n encodeSh1Rgb,\n encodeSh2Rgb,\n encodeSh3Rgb,\n fromHalf,\n setPackedSplat,\n} from \"./utils\";\n\ntype KsplatCompression = {\n bytesPerCenter: number;\n bytesPerScale: number;\n bytesPerRotation: number;\n bytesPerColor: number;\n bytesPerSphericalHarmonicsComponent: number;\n scaleOffsetBytes: number;\n rotationOffsetBytes: number;\n colorOffsetBytes: number;\n sphericalHarmonicsOffsetBytes: number;\n scaleRange: number;\n};\n\nconst KSPLAT_COMPRESSION: Record = {\n 0: {\n bytesPerCenter: 12,\n bytesPerScale: 12,\n bytesPerRotation: 16,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 4,\n scaleOffsetBytes: 12,\n rotationOffsetBytes: 24,\n colorOffsetBytes: 40,\n sphericalHarmonicsOffsetBytes: 44,\n scaleRange: 1,\n },\n 1: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 2,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n 2: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 1,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n};\n\nconst KSPLAT_SH_DEGREE_TO_COMPONENTS: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nexport function decodeKsplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n) {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n initNumSplats(numSplats);\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n\n if (sphericalHarmonicsDegree >= 1 && sh1) {\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n if (sh2) {\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n }\n if (sh3) {\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n sectionBase += storageSizeBytes;\n }\n}\n\nexport function unpackKsplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n} {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n setPackedSplat(\n packedArray,\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n\n if (sphericalHarmonicsDegree >= 1) {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n encodeSh1Rgb(extra.sh1 as Uint32Array, i, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n encodeSh2Rgb(extra.sh2 as Uint32Array, i, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n encodeSh3Rgb(extra.sh3 as Uint32Array, i, sh3, splatEncoding);\n }\n }\n }\n sectionBase += storageSizeBytes;\n }\n return { packedArray, numSplats, extra };\n}\n","// PLY file format reader\n\nimport { USE_COMPILED_PARSER_FUNCTION } from \"./defines\";\n\nconst PLY_PROPERTY_TYPES = [\n \"char\",\n \"uchar\",\n \"short\",\n \"ushort\",\n \"int\",\n \"uint\",\n \"float\",\n \"double\",\n] as const;\nexport type PlyPropertyType = (typeof PLY_PROPERTY_TYPES)[number];\n\nexport type PlyElement = {\n name: string;\n count: number;\n properties: Record;\n};\n\nexport type PlyProperty = {\n isList: boolean;\n type: PlyPropertyType;\n countType?: PlyPropertyType;\n};\n\n// Callback for parseSplats base Gsplat data\nexport type SplatCallback = (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) => void;\n\n// Callback for parseSplats SH coefficients\nexport type SplatShCallback = (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n) => void;\n\n// A PlyReader is used to parse PLY files for Gsplat data.\n// It takes a Uint8Array/ArrayBuffer as input fileBytes, parses the text header,\n// and provides a method parseData to iterate over the entire binary data\n// efficiently, or parseSplats to iterate over Gsplat data.\n\nexport class PlyReader {\n fileBytes: Uint8Array;\n header = \"\";\n littleEndian = true;\n elements: Record = {};\n comments: string[] = [];\n data: DataView | null = null;\n static defaultPointScale = 0.001;\n\n numSplats = 0;\n\n // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n }\n\n // Identify and parse the PLY text header (assumed to be <64KB in size).\n // this.elements will contain all the elements in the file, typically\n // \"vertex\" contains the Gsplat data.\n async parseHeader() {\n const bufferStream = new ReadableStream({\n start: (\n controller: ReadableStreamController>,\n ) => {\n // Assume the header is less than 64KB\n controller.enqueue(this.fileBytes.slice(0, 65536));\n controller.close();\n },\n });\n const decoder = bufferStream\n .pipeThrough(new TextDecoderStream())\n .getReader();\n\n // Find the end of the text section of the PLY file\n this.header = \"\";\n const headerTerminator = \"end_header\\n\";\n while (true) {\n const { value, done } = await decoder.read();\n if (done) {\n throw new Error(\"Failed to read header\");\n }\n\n this.header += value as string;\n const endHeader = this.header.indexOf(headerTerminator);\n if (endHeader >= 0) {\n this.header = this.header.slice(0, endHeader + headerTerminator.length);\n break;\n }\n }\n // Partition the file into header and binary data\n const headerLen = new TextEncoder().encode(this.header).length;\n this.data = new DataView(this.fileBytes.buffer, headerLen);\n\n this.elements = {};\n let curElement: PlyElement | null = null;\n this.comments = [];\n\n this.header\n .trim()\n .split(\"\\n\")\n .forEach((line: string, lineIndex: number) => {\n const trimmedLine = line.trim();\n if (lineIndex === 0) {\n if (trimmedLine !== \"ply\") {\n throw new Error(\"Invalid PLY header\");\n }\n return;\n }\n if (trimmedLine.length === 0) {\n return; // Skip empty lines\n }\n\n const fields = trimmedLine.split(\" \");\n switch (fields[0]) {\n case \"format\":\n if (fields[1] === \"binary_little_endian\") {\n this.littleEndian = true;\n } else if (fields[1] === \"binary_big_endian\") {\n this.littleEndian = false;\n } else {\n // ascii formats not supported\n throw new Error(`Unsupported PLY format: ${fields[1]}`);\n }\n if (fields[2] !== \"1.0\") {\n throw new Error(`Unsupported PLY version: ${fields[2]}`);\n }\n break;\n case \"end_header\":\n break;\n case \"comment\":\n this.comments.push(trimmedLine.slice(\"comment \".length));\n break;\n case \"element\": {\n const name = fields[1];\n curElement = {\n name,\n count: Number.parseInt(fields[2]),\n properties: {},\n };\n this.elements[name] = curElement;\n break;\n }\n case \"property\":\n if (curElement == null) {\n throw new Error(\"Property must be inside an element\");\n }\n if (fields[1] === \"list\") {\n curElement.properties[fields[4]] = {\n isList: true,\n type: fields[3] as PlyPropertyType,\n countType: fields[2] as PlyPropertyType,\n };\n } else {\n curElement.properties[fields[2]] = {\n isList: false,\n type: fields[1] as PlyPropertyType,\n };\n }\n break;\n default:\n // console.warn(`Skipping unsupported PLY keyword: ${fields[0]}`);\n }\n });\n\n if (this.elements.vertex) {\n this.numSplats = this.elements.vertex.count;\n }\n }\n\n parseData(\n elementCallback: (\n element: PlyElement,\n ) =>\n | null\n | ((index: number, item: Record) => void),\n ) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No data to parse\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const item = createEmptyItem(properties);\n // Construct a parse function\n const parseFn = createParseFn(properties, this.littleEndian);\n\n // Parse all the items in the element\n const callback = elementCallback(element) ?? (() => {});\n for (let index = 0; index < count; index++) {\n offset = parseFn(data, offset, item);\n callback(index, item);\n }\n }\n }\n\n // Parse all the Gsplat data in the PLY file in go, invoking the given\n // callbacks for each Gsplat.\n parseSplats(splatCallback: SplatCallback, shCallback?: SplatShCallback) {\n if (this.elements.vertex == null) {\n throw new Error(\"No vertex element found\");\n }\n\n let isSuperSplat = false;\n const ssChunks: SSChunk[] = [];\n\n let numSh = 0;\n let sh1Props: number[] = [];\n let sh2Props: number[] = [];\n let sh3Props: number[] = [];\n let sh1: Float32Array | undefined = undefined;\n let sh2: Float32Array | undefined = undefined;\n let sh3: Float32Array | undefined = undefined;\n\n function prepareSh() {\n // Prepare SH coefficient names and arrays for numSh total SH levels\n const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh];\n sh1Props = new Array(3)\n .fill(null)\n .flatMap((_, k) => [0, 1, 2].map((_, d) => k + (d * num_f_rest) / 3));\n sh2Props = new Array(5)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 3 + k + (d * num_f_rest) / 3),\n );\n sh3Props = new Array(7)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 8 + k + (d * num_f_rest) / 3),\n );\n sh1 = numSh >= 1 ? new Float32Array(3 * 3) : undefined;\n sh2 = numSh >= 2 ? new Float32Array(5 * 3) : undefined;\n sh3 = numSh >= 3 ? new Float32Array(7 * 3) : undefined;\n }\n\n function ssShCallback(\n index: number,\n item: Record,\n ) {\n // Decode SH for SuperSplat compressed data\n if (!sh1) {\n throw new Error(\"Missing sh1\");\n }\n const sh = item.f_rest as number[];\n\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = (sh[sh1Props[i]] * 8) / 255 - 4;\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = (sh[sh2Props[i]] * 8) / 255 - 4;\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = (sh[sh3Props[i]] * 8) / 255 - 4;\n }\n }\n shCallback?.(index, sh1, sh2, sh3);\n }\n\n function initSuperSplat(element: PlyElement) {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n } = element.properties;\n if (\n !min_x ||\n !min_y ||\n !min_z ||\n !max_x ||\n !max_y ||\n !max_z ||\n !min_scale_x ||\n !min_scale_y ||\n !min_scale_z ||\n !max_scale_x ||\n !max_scale_y ||\n !max_scale_z\n ) {\n throw new Error(\"Missing PLY chunk properties\");\n }\n\n // SuperSplat chunks are used to quantize splat data, so we need to store them\n isSuperSplat = true;\n return (index: number, item: Record) => {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = item as Record;\n ssChunks.push({\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n });\n };\n }\n\n function decodeSuperSplat(element: PlyElement) {\n // Decode SuperSplat compressed data in vertex and sh elements\n if (shCallback && element.name === \"sh\") {\n numSh = getNumSh(element.properties);\n prepareSh();\n return ssShCallback;\n }\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n element.properties;\n if (\n !packed_position ||\n !packed_rotation ||\n !packed_scale ||\n !packed_color\n ) {\n throw new Error(\n \"Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color\",\n );\n }\n\n const SQRT2 = Math.sqrt(2);\n\n return (index: number, item: Record) => {\n // SuperSplat data are quantized within chunks with 256 Gsplats each\n const chunk = ssChunks[index >>> 8];\n if (chunk == null) {\n throw new Error(\"Missing PLY chunk\");\n }\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = chunk;\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n item as Record;\n\n const x =\n (((packed_position >>> 21) & 2047) / 2047) * (max_x - min_x) + min_x;\n const y =\n (((packed_position >>> 11) & 1023) / 1023) * (max_y - min_y) + min_y;\n const z = ((packed_position & 2047) / 2047) * (max_z - min_z) + min_z;\n\n const r0 = (((packed_rotation >>> 20) & 1023) / 1023 - 0.5) * SQRT2;\n const r1 = (((packed_rotation >>> 10) & 1023) / 1023 - 0.5) * SQRT2;\n const r2 = ((packed_rotation & 1023) / 1023 - 0.5) * SQRT2;\n const rr = Math.sqrt(Math.max(0, 1.0 - r0 * r0 - r1 * r1 - r2 * r2));\n\n const rOrder = packed_rotation >>> 30;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n\n const scaleX = Math.exp(\n (((packed_scale >>> 21) & 2047) / 2047) *\n (max_scale_x - min_scale_x) +\n min_scale_x,\n );\n const scaleY = Math.exp(\n (((packed_scale >>> 11) & 1023) / 1023) *\n (max_scale_y - min_scale_y) +\n min_scale_y,\n );\n const scaleZ = Math.exp(\n ((packed_scale & 2047) / 2047) * (max_scale_z - min_scale_z) +\n min_scale_z,\n );\n\n const r =\n (((packed_color >>> 24) & 255) / 255) *\n ((max_r ?? 1) - (min_r ?? 0)) +\n (min_r ?? 0);\n const g =\n (((packed_color >>> 16) & 255) / 255) *\n ((max_g ?? 1) - (min_g ?? 0)) +\n (min_g ?? 0);\n const b =\n (((packed_color >>> 8) & 255) / 255) * ((max_b ?? 1) - (min_b ?? 0)) +\n (min_b ?? 0);\n const opacity = (packed_color & 255) / 255;\n\n splatCallback(\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n };\n }\n\n const elementCallback = (element: PlyElement) => {\n if (element.name === \"chunk\") {\n // \"chunk\" could conceivably be used for other formats, and we would\n // ideally check for the comment: Generated by SuperSplat 2.*\n // but gsplat also outputs this format without such a comment.\n // In order to support both, let's assume a \"chunk\" element should\n // be interpreted as this format.\n return initSuperSplat(element);\n }\n if (isSuperSplat) {\n return decodeSuperSplat(element);\n }\n\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const {\n x,\n y,\n z,\n scale_0,\n scale_1,\n scale_2,\n rot_0,\n rot_1,\n rot_2,\n rot_3,\n opacity,\n f_dc_0,\n f_dc_1,\n f_dc_2,\n red,\n green,\n blue,\n alpha,\n } = element.properties;\n\n if (!x || !y || !z) {\n throw new Error(\"Missing PLY properties: x, y, z\");\n }\n // Pure point cloud PLY files have no scales or rotations\n const hasScales = scale_0 && scale_1 && scale_2;\n const hasRots = rot_0 && rot_1 && rot_2 && rot_3;\n // Quantization scale factor for argb values\n const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1;\n const redDiv = red != null ? FIELD_SCALE[red.type] : 1;\n const greenDiv = green != null ? FIELD_SCALE[green.type] : 1;\n const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1;\n\n numSh = getNumSh(element.properties);\n prepareSh();\n\n return (index: number, item: Record) => {\n const scaleX = hasScales\n ? Math.exp(item.scale_0 as number)\n : PlyReader.defaultPointScale;\n const scaleY = hasScales\n ? Math.exp(item.scale_1 as number)\n : PlyReader.defaultPointScale;\n const scaleZ = hasScales\n ? Math.exp(item.scale_2 as number)\n : PlyReader.defaultPointScale;\n\n const quatX = hasRots ? (item.rot_1 as number) : 0;\n const quatY = hasRots ? (item.rot_2 as number) : 0;\n const quatZ = hasRots ? (item.rot_3 as number) : 0;\n const quatW = hasRots ? (item.rot_0 as number) : 1;\n\n const op =\n opacity != null\n ? 1.0 / (1.0 + Math.exp(-item.opacity as number))\n : alpha != null\n ? (item.alpha as number) / alphaDiv\n : 1.0;\n const r =\n f_dc_0 != null\n ? (item.f_dc_0 as number) * SH_C0 + 0.5\n : red != null\n ? (item.red as number) / redDiv\n : 1.0;\n const g =\n f_dc_1 != null\n ? (item.f_dc_1 as number) * SH_C0 + 0.5\n : green != null\n ? (item.green as number) / greenDiv\n : 1.0;\n const b =\n f_dc_2 != null\n ? (item.f_dc_2 as number) * SH_C0 + 0.5\n : blue != null\n ? (item.blue as number) / blueDiv\n : 1.0;\n\n splatCallback(\n index,\n item.x as number,\n item.y as number,\n item.z as number,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n op,\n r,\n g,\n b,\n );\n\n if (shCallback && sh1) {\n const sh = item.f_rest as number[];\n if (sh1) {\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = sh[sh1Props[i]];\n }\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = sh[sh2Props[i]];\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = sh[sh3Props[i]];\n }\n }\n shCallback(index, sh1, sh2, sh3);\n }\n };\n };\n\n this.parseData(elementCallback);\n }\n\n // Inject RGBA values into original PLY file, which can be used to modify\n // the color/opacity of the Gsplats and write out the modified PLY file.\n injectRgba(rgba: Uint8Array) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No parsed data\");\n }\n if (rgba.length !== this.numSplats * 4) {\n throw new Error(\"Invalid RGBA array length\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const parsers = [];\n\n let rgbaOffset = 0;\n const isVertex = elementName === \"vertex\";\n if (isVertex) {\n for (const name of [\"opacity\", \"f_dc_0\", \"f_dc_1\", \"f_dc_2\"]) {\n if (!properties[name] || properties[name].type !== \"float\") {\n throw new Error(`Can't injectRgba due to property: ${name}`);\n }\n }\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!property.isList) {\n if (isVertex) {\n if (\n propertyName === \"f_dc_0\" ||\n propertyName === \"f_dc_1\" ||\n propertyName === \"f_dc_2\"\n ) {\n const component = Number.parseInt(\n propertyName.slice(\"f_dc_\".length),\n );\n parsers.push(() => {\n // Inject DC coefficients\n const value =\n (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0;\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n } else if (propertyName === \"opacity\") {\n parsers.push(() => {\n // Inject opacity sigmoid, clamped to [-100, 100]\n const value = Math.max(\n -100,\n Math.min(\n 100,\n -Math.log(1.0 / (rgba[rgbaOffset + 3] / 255) - 1.0),\n ),\n );\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n }\n }\n parsers.push(() => {\n offset += FIELD_BYTES[property.type];\n });\n } else {\n parsers.push(() => {\n const length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n this.littleEndian,\n );\n offset += FIELD_BYTES[property.countType as PlyPropertyType];\n offset += length * FIELD_BYTES[property.type];\n });\n }\n }\n\n for (let index = 0; index < count; index++) {\n // Go through all the data and field parsers to compute offset\n for (const parser of parsers) {\n parser();\n }\n if (isVertex) {\n rgbaOffset += 4;\n }\n }\n }\n }\n}\n\nexport const SH_C0 = 0.28209479177387814;\n\ntype FieldParser = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n) => number;\ntype FieldSetter = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n) => void;\n\nconst PARSE_FIELD: Record = {\n char: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt8(offset);\n },\n uchar: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint8(offset);\n },\n short: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt16(offset, littleEndian);\n },\n ushort: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint16(offset, littleEndian);\n },\n int: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt32(offset, littleEndian);\n },\n uint: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint32(offset, littleEndian);\n },\n float: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat32(offset, littleEndian);\n },\n double: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat64(offset, littleEndian);\n },\n};\n\nconst SET_FIELD: Record = {\n char: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt8(offset, value);\n },\n uchar: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint8(offset, value);\n },\n short: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt16(offset, value, littleEndian);\n },\n ushort: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint16(offset, value, littleEndian);\n },\n int: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt32(offset, value, littleEndian);\n },\n uint: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint32(offset, value, littleEndian);\n },\n float: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat32(offset, value, littleEndian);\n },\n double: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat64(offset, value, littleEndian);\n },\n};\n\nconst FIELD_BYTES: Record = {\n char: 1,\n uchar: 1,\n short: 2,\n ushort: 2,\n int: 4,\n uint: 4,\n float: 4,\n double: 8,\n};\n\nconst FIELD_SCALE: Record = {\n char: 127,\n uchar: 255,\n short: 32767,\n ushort: 65535,\n int: 2147483647,\n uint: 4294967295,\n float: 1,\n double: 1,\n};\n\nconst NUM_F_REST_TO_NUM_SH: Record = {\n 0: 0,\n 9: 1,\n 24: 2,\n 45: 3,\n};\nconst NUM_SH_TO_NUM_F_REST: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nconst F_REST_REGEX = /^f_rest_([0-9]{1,2})$/;\n\nfunction createEmptyItem(\n properties: Record,\n): Record {\n const item: Record = {};\n for (const [propertyName, property] of Object.entries(properties)) {\n // Treat f_rest properties as a single array for performance\n if (F_REST_REGEX.test(propertyName)) {\n item.f_rest = new Array(getNumSh(properties));\n } else {\n item[propertyName] = property.isList ? [] : 0;\n }\n }\n return item;\n}\n\nfunction createParseFn(\n properties: Record,\n littleEndian: boolean,\n) {\n if (USE_COMPILED_PARSER_FUNCTION && safeToCompile(properties)) {\n return createCompiledParserFn(properties, littleEndian);\n }\n return createDynamicParserFn(properties, littleEndian);\n}\n\n// Detect if unsafe eval is allowed in the current execution context\nconst UNSAFE_EVAL_ALLOWED = (() => {\n try {\n new Function(\"return 42;\");\n } catch (e) {\n return false;\n }\n return true;\n})();\nconst PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/;\n\nfunction safeToCompile(properties: Record) {\n if (!UNSAFE_EVAL_ALLOWED) {\n return false;\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!PROPERTY_NAME_REGEX.test(propertyName)) {\n return false;\n }\n\n if (\n property.isList &&\n !PLY_PROPERTY_TYPES.includes(property.countType as PlyPropertyType)\n ) {\n return false;\n }\n\n if (!PLY_PROPERTY_TYPES.includes(property.type)) {\n return false;\n }\n }\n return true;\n}\n\nfunction createCompiledParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct the parser function source.\n const parserSrc: string[] = [\"let list;\"];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parserSrc.push(/*js*/ `\n item.f_rest[${fRestIndex}] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else if (!property.isList) {\n parserSrc.push(/*js*/ `\n item['${propertyName}'] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else {\n // Property is a list, so parse the count first\n parserSrc.push(/*js*/ `\n list = item['${propertyName}'];\n list.length = PARSE_FIELD['${property.countType}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.countType as PlyPropertyType]};\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n }\n `);\n }\n }\n parserSrc.push(\"return offset;\");\n\n const fn = new Function(\n \"data\",\n \"offset\",\n \"item\",\n \"PARSE_FIELD\",\n parserSrc.join(\"\\n\"),\n );\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => fn(data, offset, item, PARSE_FIELD);\n}\n\nfunction createDynamicParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct an array of parser function to parse each property in an item\n const parsers: Array<\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => number\n > = [];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n (item.f_rest as number[])[fRestIndex] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else if (!property.isList) {\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n item[propertyName] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else {\n // Property is a list, so parse the count first\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n const list = item[propertyName] as number[];\n list.length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n littleEndian,\n );\n let currentOffset =\n offset + FIELD_BYTES[property.countType as PlyPropertyType];\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD[property.type](\n data,\n currentOffset,\n littleEndian,\n );\n currentOffset += FIELD_BYTES[property.type];\n }\n return currentOffset;\n },\n );\n }\n }\n\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n let currentOffset = offset;\n for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) {\n currentOffset = parsers[parserIndex](data, currentOffset, item);\n }\n return currentOffset;\n };\n}\n\nfunction getNumSh(properties: Record) {\n let num_f_rest = 0;\n while (properties[`f_rest_${num_f_rest}`]) {\n num_f_rest += 1;\n }\n const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest];\n if (numSh == null) {\n throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`);\n }\n return numSh;\n}\n\ntype SSChunk = {\n min_x: number;\n min_y: number;\n min_z: number;\n max_x: number;\n max_y: number;\n max_z: number;\n min_scale_x: number;\n min_scale_y: number;\n min_scale_z: number;\n max_scale_x: number;\n max_scale_y: number;\n max_scale_z: number;\n min_r?: number;\n min_g?: number;\n min_b?: number;\n max_r?: number;\n max_g?: number;\n max_b?: number;\n};\n","import * as THREE from \"three\";\nimport {\n SplatData,\n type TranscodeSpzInput,\n getSplatFileType,\n getSplatFileTypeFromPath,\n} from \"./SplatLoader\";\nimport { GunzipReader, fromHalf, normalize } from \"./utils\";\n\nimport { decodeAntiSplat } from \"./antisplat\";\nimport { SplatFileType } from \"./defines\";\nimport { decodeKsplat } from \"./ksplat\";\nimport { PlyReader } from \"./ply\";\n\n// SPZ file format reader\n\nexport class SpzReader {\n fileBytes: Uint8Array;\n reader: GunzipReader;\n\n version = -1;\n numSplats = 0;\n shDegree = 0;\n fractionalBits = 0;\n flags = 0;\n flagAntiAlias = false;\n flagLod = false;\n reserved = 0;\n headerParsed = false;\n parsed = false;\n\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n this.reader = new GunzipReader({\n fileBytes: this.fileBytes as Uint8Array,\n });\n }\n\n async parseHeader() {\n if (this.headerParsed) {\n throw new Error(\"SPZ file header already parsed\");\n }\n\n const header = new DataView((await this.reader.read(16)).buffer);\n if (header.getUint32(0, true) !== 0x5053474e) {\n throw new Error(\"Invalid SPZ file\");\n }\n this.version = header.getUint32(4, true);\n if (this.version < 1 || this.version > 3) {\n throw new Error(`Unsupported SPZ version: ${this.version}`);\n }\n\n this.numSplats = header.getUint32(8, true);\n this.shDegree = header.getUint8(12);\n this.fractionalBits = header.getUint8(13);\n this.flags = header.getUint8(14);\n this.flagAntiAlias = (this.flags & 0x01) !== 0;\n this.flagLod = (this.flags & 0x80) !== 0;\n this.reserved = header.getUint8(15);\n this.headerParsed = true;\n this.parsed = false;\n }\n\n async parseSplats(\n centerCallback?: (index: number, x: number, y: number, z: number) => void,\n alphaCallback?: (index: number, alpha: number) => void,\n rgbCallback?: (index: number, r: number, g: number, b: number) => void,\n scalesCallback?: (\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n ) => void,\n quatCallback?: (\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n {\n childCounts,\n childStarts,\n }: {\n childCounts?: (index: number, count: number) => void;\n childStarts?: (index: number, start: number) => void;\n } = {},\n ) {\n if (!this.headerParsed) {\n throw new Error(\"SPZ file header must be parsed first\");\n }\n if (this.parsed) {\n throw new Error(\"SPZ file already parsed\");\n }\n this.parsed = true;\n\n if (this.version === 1) {\n // float16 centers\n const centerBytes = await this.reader.read(this.numSplats * 3 * 2);\n const centerUint16 = new Uint16Array(centerBytes.buffer);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const x = fromHalf(centerUint16[i3]);\n const y = fromHalf(centerUint16[i3 + 1]);\n const z = fromHalf(centerUint16[i3 + 2]);\n centerCallback?.(i, x, y, z);\n }\n } else if (this.version === 2 || this.version === 3) {\n // 24-bit fixed-point centers\n const fixed = 1 << this.fractionalBits;\n const centerBytes = await this.reader.read(this.numSplats * 3 * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i9 = i * 9;\n const x =\n (((centerBytes[i9 + 2] << 24) |\n (centerBytes[i9 + 1] << 16) |\n (centerBytes[i9] << 8)) >>\n 8) /\n fixed;\n const y =\n (((centerBytes[i9 + 5] << 24) |\n (centerBytes[i9 + 4] << 16) |\n (centerBytes[i9 + 3] << 8)) >>\n 8) /\n fixed;\n const z =\n (((centerBytes[i9 + 8] << 24) |\n (centerBytes[i9 + 7] << 16) |\n (centerBytes[i9 + 6] << 8)) >>\n 8) /\n fixed;\n centerCallback?.(i, x, y, z);\n }\n } else {\n throw new Error(\"Unreachable\");\n }\n\n {\n const bytes = await this.reader.read(this.numSplats);\n for (let i = 0; i < this.numSplats; i++) {\n alphaCallback?.(i, bytes[i] / 255);\n }\n }\n {\n const rgbBytes = await this.reader.read(this.numSplats * 3);\n const scale = SH_C0 / 0.15;\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const r = (rgbBytes[i3] / 255 - 0.5) * scale + 0.5;\n const g = (rgbBytes[i3 + 1] / 255 - 0.5) * scale + 0.5;\n const b = (rgbBytes[i3 + 2] / 255 - 0.5) * scale + 0.5;\n rgbCallback?.(i, r, g, b);\n }\n }\n {\n const scalesBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const scaleX = Math.exp(scalesBytes[i3] / 16 - 10);\n const scaleY = Math.exp(scalesBytes[i3 + 1] / 16 - 10);\n const scaleZ = Math.exp(scalesBytes[i3 + 2] / 16 - 10);\n scalesCallback?.(i, scaleX, scaleY, scaleZ);\n }\n }\n if (this.version === 3) {\n // Version 3 uses a trick called \"smallest three\" to compress the rotation quaternions\n // achieving better precision. \"Optimizing orientation\" section at https://gafferongames.com/post/snapshot_compression/ A quaternion length must be 1: x^2+y^2+z^2+w^2 = 1\n // We can drop one component and reconstruct it with the identity above.\n // Largest component is dropped for best numerical precision.\n // Quaternion stored in 32 bits\n // 10 bits singed integer for each of the 3 components + 2 bits indicating the index of dropped component.\n // vs 8 bits for each component uncompressed (spz version < 3)\n // Max Value after extracting largest component v is another component v\n // (v,v,0,0)\n // v^2 + v^2 = 1\n // v = 1 / sqrt(2);\n const maxValue = 1 / Math.sqrt(2); // 0.7071\n const quatBytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 4;\n const quaternion = [0, 0, 0, 0];\n const values = [\n quatBytes[i3],\n quatBytes[i3 + 1],\n quatBytes[i3 + 2],\n quatBytes[i3 + 3],\n ];\n // all values are packed in 32 bits (10 per each of 3 components + 2 bits of index of larged value)\n const combinedValues =\n values[0] + (values[1] << 8) + (values[2] << 16) + (values[3] << 24);\n // each component value is 9 bits + sign (1 bit)\n const valueMask = (1 << 9) - 1;\n // extract index of the largest element. 2 top bits.\n const largestIndex = combinedValues >>> 30;\n let remainingValues = combinedValues;\n let sumSquares = 0;\n\n for (let i = 3; i >= 0; --i) {\n if (i !== largestIndex) {\n // extract current value and sign.\n const value = remainingValues & valueMask;\n const sign = (remainingValues >>> 9) & 0x1;\n // each value is represented as 10 bits. Shift to next one.\n remainingValues = remainingValues >>> 10;\n // convert to range [0,1] and then to [0, 0.7071]\n quaternion[i] = maxValue * (value / valueMask);\n // apply sign.\n quaternion[i] = sign === 0 ? quaternion[i] : -quaternion[i];\n // accumulate the sum of squares\n sumSquares += quaternion[i] * quaternion[i];\n }\n }\n\n // quartenion length must be 1 (x^2+y^2+z^2+w^2 = 1)\n // so can reconstruct largest component from the other 3.\n // w = sqrt(1 - x^2 - y^2 - z^2);\n const square = 1 - sumSquares;\n quaternion[largestIndex] = Math.sqrt(Math.max(square, 0));\n\n quatCallback?.(\n i,\n quaternion[0],\n quaternion[1],\n quaternion[2],\n quaternion[3],\n );\n }\n } else {\n const quatBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const quatX = quatBytes[i3] / 127.5 - 1;\n const quatY = quatBytes[i3 + 1] / 127.5 - 1;\n const quatZ = quatBytes[i3 + 2] / 127.5 - 1;\n const quatW = Math.sqrt(\n Math.max(0, 1 - quatX * quatX - quatY * quatY - quatZ * quatZ),\n );\n quatCallback?.(i, quatX, quatY, quatZ, quatW);\n }\n }\n\n if (shCallback && this.shDegree >= 1) {\n const sh1 = new Float32Array(3 * 3);\n const sh2 = this.shDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 = this.shDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n const shBytes = await this.reader.read(\n this.numSplats * SH_DEGREE_TO_VECS[this.shDegree] * 3,\n );\n\n let offset = 0;\n for (let i = 0; i < this.numSplats; i++) {\n for (let j = 0; j < 9; ++j) {\n sh1[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 9;\n if (sh2) {\n for (let j = 0; j < 15; ++j) {\n sh2[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 15;\n }\n if (sh3) {\n for (let j = 0; j < 21; ++j) {\n sh3[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 21;\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n if (this.flagLod) {\n let bytes = await this.reader.read(this.numSplats * 2);\n for (let i = 0; i < this.numSplats; i++) {\n const i2 = i * 2;\n const count = bytes[i2] + (bytes[i2 + 1] << 8);\n childCounts?.(i, count);\n }\n\n bytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i4 = i * 4;\n const start =\n bytes[i4] +\n (bytes[i4 + 1] << 8) +\n (bytes[i4 + 2] << 16) +\n (bytes[i4 + 3] << 24);\n childStarts?.(i, start);\n }\n }\n }\n}\n\nconst SH_DEGREE_TO_VECS: Record = { 1: 3, 2: 8, 3: 15 };\nconst SH_C0 = 0.28209479177387814;\n\nexport const SPZ_MAGIC = 0x5053474e; // NGSP = Niantic gaussian splat\nexport const SPZ_VERSION = 3;\nexport const FLAG_ANTIALIASED = 0x1;\n\nexport class SpzWriter {\n buffer: ArrayBuffer;\n view: DataView;\n numSplats: number;\n shDegree: number;\n fractionalBits: number;\n fraction: number;\n flagAntiAlias: boolean;\n clippedCount = 0;\n\n constructor({\n numSplats,\n shDegree,\n fractionalBits = 12,\n flagAntiAlias = true,\n }: {\n numSplats: number;\n shDegree: number;\n fractionalBits?: number;\n flagAntiAlias?: boolean;\n }) {\n const splatSize =\n 9 + // Position\n 1 + // Opacity\n 3 + // Scale\n 3 + // DC-rgb\n 4 + // Rotation\n (shDegree >= 1 ? 9 : 0) +\n (shDegree >= 2 ? 15 : 0) +\n (shDegree >= 3 ? 21 : 0);\n const bufferSize = 16 + numSplats * splatSize;\n this.buffer = new ArrayBuffer(bufferSize);\n this.view = new DataView(this.buffer);\n\n this.view.setUint32(0, SPZ_MAGIC, true); // NGSP\n this.view.setUint32(4, SPZ_VERSION, true);\n this.view.setUint32(8, numSplats, true);\n this.view.setUint8(12, shDegree);\n this.view.setUint8(13, fractionalBits);\n this.view.setUint8(14, flagAntiAlias ? FLAG_ANTIALIASED : 0);\n this.view.setUint8(15, 0); // Reserved\n\n this.numSplats = numSplats;\n this.shDegree = shDegree;\n this.fractionalBits = fractionalBits;\n this.fraction = 1 << fractionalBits;\n this.flagAntiAlias = flagAntiAlias;\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n // Divide by this.fraction and round to nearest integer,\n // then write as 3-bytes per x then y then z.\n const xRounded = Math.round(x * this.fraction);\n const xInt = Math.max(-0x7fffff, Math.min(0x7fffff, xRounded));\n const yRounded = Math.round(y * this.fraction);\n const yInt = Math.max(-0x7fffff, Math.min(0x7fffff, yRounded));\n const zRounded = Math.round(z * this.fraction);\n const zInt = Math.max(-0x7fffff, Math.min(0x7fffff, zRounded));\n const clipped = xRounded !== xInt || yRounded !== yInt || zRounded !== zInt;\n if (clipped) {\n this.clippedCount += 1;\n // if (this.clippedCount < 10) {\n // // Write x y z also in hex\n // console.log(`Clipped ${index}: ${x}, ${y}, ${z} (0x${x.toString(16)}, 0x${y.toString(16)}, 0x${z.toString(16)}) -> ${xRounded}, ${yRounded}, ${zRounded} (0x${xRounded.toString(16)}, 0x${yRounded.toString(16)}, 0x${zRounded.toString(16)}) -> ${xInt}, ${yInt}, ${zInt} (0x${xInt.toString(16)}, 0x${yInt.toString(16)}, 0x${zInt.toString(16)})`);\n // }\n }\n const i9 = index * 9;\n const base = 16 + i9;\n this.view.setUint8(base, xInt & 0xff);\n this.view.setUint8(base + 1, (xInt >> 8) & 0xff);\n this.view.setUint8(base + 2, (xInt >> 16) & 0xff);\n this.view.setUint8(base + 3, yInt & 0xff);\n this.view.setUint8(base + 4, (yInt >> 8) & 0xff);\n this.view.setUint8(base + 5, (yInt >> 16) & 0xff);\n this.view.setUint8(base + 6, zInt & 0xff);\n this.view.setUint8(base + 7, (zInt >> 8) & 0xff);\n this.view.setUint8(base + 8, (zInt >> 16) & 0xff);\n }\n\n setAlpha(index: number, alpha: number) {\n const base = 16 + this.numSplats * 9 + index;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round(alpha * 255))),\n );\n }\n\n static scaleRgb(r: number) {\n const v = ((r - 0.5) / (SH_C0 / 0.15) + 0.5) * 255;\n return Math.max(0, Math.min(255, Math.round(v)));\n }\n\n setRgb(index: number, r: number, g: number, b: number) {\n const base = 16 + this.numSplats * 10 + index * 3;\n this.view.setUint8(base, SpzWriter.scaleRgb(r));\n this.view.setUint8(base + 1, SpzWriter.scaleRgb(g));\n this.view.setUint8(base + 2, SpzWriter.scaleRgb(b));\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n const base = 16 + this.numSplats * 13 + index * 3;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleX) + 10) * 16))),\n );\n this.view.setUint8(\n base + 1,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleY) + 10) * 16))),\n );\n this.view.setUint8(\n base + 2,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleZ) + 10) * 16))),\n );\n }\n\n setQuat(\n index: number,\n ...q: [number, number, number, number] // x, y, z, w\n ) {\n const base = 16 + this.numSplats * 16 + index * 4;\n\n const quat = normalize(q);\n\n // Find largest component\n let iLargest = 0;\n for (let i = 1; i < 4; ++i) {\n if (Math.abs(quat[i]) > Math.abs(quat[iLargest])) {\n iLargest = i;\n }\n }\n\n // Since -quat represents the same rotation as quat, transform the quaternion so the largest element\n // is positive. This avoids having to send its sign bit.\n const negate = quat[iLargest] < 0 ? 1 : 0;\n\n // Do compression using sign bit and 9-bit precision per element.\n let comp = iLargest;\n for (let i = 0; i < 4; ++i) {\n if (i !== iLargest) {\n const negbit = (quat[i] < 0 ? 1 : 0) ^ negate;\n const mag = Math.floor(\n ((1 << 9) - 1) * (Math.abs(quat[i]) / Math.SQRT1_2) + 0.5,\n );\n comp = (comp << 10) | (negbit << 9) | mag;\n }\n }\n\n this.view.setUint8(base, comp & 0xff);\n this.view.setUint8(base + 1, (comp >> 8) & 0xff);\n this.view.setUint8(base + 2, (comp >> 16) & 0xff);\n this.view.setUint8(base + 3, (comp >>> 24) & 0xff);\n }\n\n static quantizeSh(sh: number, bits: number) {\n const value = Math.round(sh * 128) + 128;\n const bucketSize = 1 << (8 - bits);\n const quantized =\n Math.floor((value + bucketSize / 2) / bucketSize) * bucketSize;\n return Math.max(0, Math.min(255, quantized));\n }\n\n setSh(\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) {\n const shVecs = SH_DEGREE_TO_VECS[this.shDegree] || 0;\n const base1 = 16 + this.numSplats * 20 + index * shVecs * 3;\n for (let j = 0; j < 9; ++j) {\n this.view.setUint8(base1 + j, SpzWriter.quantizeSh(sh1[j], 5));\n }\n if (sh2) {\n const base2 = base1 + 9;\n for (let j = 0; j < 15; ++j) {\n this.view.setUint8(base2 + j, SpzWriter.quantizeSh(sh2[j], 4));\n }\n if (sh3) {\n const base3 = base2 + 15;\n for (let j = 0; j < 21; ++j) {\n this.view.setUint8(base3 + j, SpzWriter.quantizeSh(sh3[j], 4));\n }\n }\n }\n }\n\n async finalize(): Promise {\n const input = new Uint8Array(this.buffer);\n const stream = new ReadableStream({\n async start(controller) {\n controller.enqueue(input);\n controller.close();\n },\n });\n const compressed = stream.pipeThrough(new CompressionStream(\"gzip\"));\n const response = new Response(compressed);\n const buffer = await response.arrayBuffer();\n console.log(\n \"Compressed\",\n input.length,\n \"bytes to\",\n buffer.byteLength,\n \"bytes\",\n );\n return new Uint8Array(buffer);\n }\n}\n\nexport async function transcodeSpz(input: TranscodeSpzInput) {\n const splats = new SplatData();\n const {\n inputs,\n clipXyz,\n maxSh,\n fractionalBits = 12,\n opacityThreshold,\n } = input;\n for (const input of inputs) {\n const scale = input.transform?.scale ?? 1;\n const quaternion = new THREE.Quaternion().fromArray(\n input.transform?.quaternion ?? [0, 0, 0, 1],\n );\n const translate = new THREE.Vector3().fromArray(\n input.transform?.translate ?? [0, 0, 0],\n );\n const clip = clipXyz\n ? new THREE.Box3(\n new THREE.Vector3().fromArray(clipXyz.min),\n new THREE.Vector3().fromArray(clipXyz.max),\n )\n : undefined;\n\n function transformPos(pos: THREE.Vector3) {\n pos.multiplyScalar(scale);\n pos.applyQuaternion(quaternion);\n pos.add(translate);\n return pos;\n }\n\n function transformScales(scales: THREE.Vector3) {\n scales.multiplyScalar(scale);\n return scales;\n }\n\n function transformQuaternion(quat: THREE.Quaternion) {\n quat.premultiply(quaternion);\n return quat;\n }\n\n function withinClip(p: THREE.Vector3) {\n return !clip || clip.containsPoint(p);\n }\n\n function withinOpacity(opacity: number) {\n return opacityThreshold !== undefined\n ? opacity >= opacityThreshold\n : true;\n }\n\n let fileType = input.fileType;\n if (!fileType) {\n fileType = getSplatFileType(input.fileBytes);\n if (!fileType && input.pathOrUrl) {\n fileType = getSplatFileTypeFromPath(input.pathOrUrl);\n }\n }\n switch (fileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes: input.fileBytes });\n await ply.parseHeader();\n let lastIndex: number | null = null;\n ply.parseSplats(\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (sh1 && lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n }\n if (sh2 && lastIndex !== null) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3 && lastIndex !== null) {\n splats.setSh3(lastIndex, sh3);\n }\n },\n );\n break;\n }\n case SplatFileType.SPZ: {\n const spz = new SpzReader({ fileBytes: input.fileBytes });\n await spz.parseHeader();\n const mapping = new Int32Array(spz.numSplats);\n mapping.fill(-1);\n const centers = new Float32Array(spz.numSplats * 3);\n const center = new THREE.Vector3();\n spz.parseSplats(\n (index, x, y, z) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n centers[index * 3] = center.x;\n centers[index * 3 + 1] = center.y;\n centers[index * 3 + 2] = center.z;\n },\n (index, alpha) => {\n center.fromArray(centers, index * 3);\n if (withinClip(center) && withinOpacity(alpha)) {\n mapping[index] = splats.pushSplat();\n splats.setCenter(mapping[index], center.x, center.y, center.z);\n splats.setOpacity(mapping[index], alpha);\n }\n },\n (index, r, g, b) => {\n if (mapping[index] >= 0) {\n splats.setColor(mapping[index], r, g, b);\n }\n },\n (index, scaleX, scaleY, scaleZ) => {\n if (mapping[index] >= 0) {\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(mapping[index], scales.x, scales.y, scales.z);\n }\n },\n (index, quatX, quatY, quatZ, quatW) => {\n if (mapping[index] >= 0) {\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n mapping[index],\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n }\n },\n (index, sh1, sh2, sh3) => {\n if (mapping[index] >= 0) {\n splats.setSh1(mapping[index], sh1);\n if (sh2) {\n splats.setSh2(mapping[index], sh2);\n }\n if (sh3) {\n splats.setSh3(mapping[index], sh3);\n }\n }\n },\n );\n break;\n }\n case SplatFileType.SPLAT:\n decodeAntiSplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n const index = splats.pushSplat();\n splats.setCenter(index, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(index, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n index,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(index, opacity);\n splats.setColor(index, r, g, b);\n }\n },\n );\n break;\n case SplatFileType.KSPLAT: {\n let lastIndex: number | null = null;\n decodeKsplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n if (sh2) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3) {\n splats.setSh3(lastIndex, sh3);\n }\n }\n },\n );\n break;\n }\n default:\n throw new Error(`transcodeSpz not implemented for ${fileType}`);\n }\n }\n\n const shDegree = Math.min(\n maxSh ?? 3,\n splats.sh3 ? 3 : splats.sh2 ? 2 : splats.sh1 ? 1 : 0,\n );\n const spz = new SpzWriter({\n numSplats: splats.numSplats,\n shDegree,\n fractionalBits,\n flagAntiAlias: true,\n });\n\n for (let i = 0; i < splats.numSplats; ++i) {\n const i3 = i * 3;\n const i4 = i * 4;\n spz.setCenter(\n i,\n splats.centers[i3],\n splats.centers[i3 + 1],\n splats.centers[i3 + 2],\n );\n spz.setScale(\n i,\n splats.scales[i3],\n splats.scales[i3 + 1],\n splats.scales[i3 + 2],\n );\n spz.setQuat(\n i,\n splats.quaternions[i4],\n splats.quaternions[i4 + 1],\n splats.quaternions[i4 + 2],\n splats.quaternions[i4 + 3],\n );\n spz.setAlpha(i, splats.opacities[i]);\n spz.setRgb(\n i,\n splats.colors[i3],\n splats.colors[i3 + 1],\n splats.colors[i3 + 2],\n );\n if (splats.sh1 && shDegree >= 1) {\n spz.setSh(\n i,\n splats.sh1.slice(i * 9, (i + 1) * 9),\n shDegree >= 2 && splats.sh2\n ? splats.sh2.slice(i * 15, (i + 1) * 15)\n : undefined,\n shDegree >= 3 && splats.sh3\n ? splats.sh3.slice(i * 21, (i + 1) * 21)\n : undefined,\n );\n }\n }\n\n const spzBytes = await spz.finalize();\n return { fileBytes: spzBytes, clippedCount: spz.clippedCount };\n}\n","import { unzipSync } from \"fflate\";\nimport { FileLoader, Loader, type LoadingManager } from \"three\";\nimport { ExtSplats, type ExtSplatsOptions } from \"./ExtSplats\";\nimport { withWorker } from \"./OldSplatWorker\";\nimport { PackedSplats, type PackedSplatsOptions } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { type SplatEncoding, SplatFileType } from \"./defines\";\nimport { PlyReader } from \"./ply\";\nimport { decompressPartialGzip, getTextureSize } from \"./utils\";\n\n// SplatLoader implements the THREE.Loader interface and supports loading a variety\n// of different Gsplat file formats. Formats .PLY and .SPZ can be auto-detected\n// from the file contents, while .SPLAT and .KSPLAT require either having the\n// appropriate file extension as part of the path, or it can be explicitly set\n// in the loader using the fileType property.\n\nexport class SplatLoader extends Loader {\n fileLoader: FileLoader;\n\n constructor(manager?: LoadingManager) {\n super(manager);\n this.fileLoader = new FileLoader(manager);\n }\n\n load(\n url: string,\n onLoad?: (decoded: PackedSplats | ExtSplats) => void,\n onProgress?: (event: ProgressEvent) => void,\n onError?: (error: unknown) => void,\n ) {\n return this.loadInternal({\n url,\n onLoad,\n onProgress,\n onError,\n });\n }\n\n async loadAsync(\n url: string,\n onProgress?: (event: ProgressEvent) => void,\n ): Promise {\n return new Promise((resolve, reject) => {\n this.load(\n url,\n (decoded) => {\n resolve(decoded);\n },\n onProgress,\n reject,\n );\n });\n }\n\n parse(packedSplats: PackedSplats): SplatMesh {\n return new SplatMesh({ packedSplats });\n }\n\n loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad,\n onProgress,\n onError,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onLoad?: (decoded: PackedSplats | ExtSplats) => void;\n onProgress?: (event: ProgressEvent) => void;\n onError?: (error: unknown) => void;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n if (fileBytes instanceof ArrayBuffer) {\n fileBytes = new Uint8Array(fileBytes);\n }\n const resolvedURL = fileBytes\n ? undefined\n : this.manager.resolveURL((this.path ?? \"\") + (url ?? \"\"));\n\n let readStream = stream?.getReader();\n\n this.manager.itemStart(resolvedURL ?? \"\");\n // let calledOnLoad = false;\n\n workerPool\n .withWorker(async (worker) => {\n // If LoD is set and not falsey\n const splatsLod = packedSplats?.lod ?? extSplats?.lod;\n if (splatsLod) {\n lod = splatsLod;\n }\n const splatsNonLod = packedSplats?.nonLod ?? extSplats?.nonLod;\n if (splatsNonLod !== undefined) {\n nonLod = splatsNonLod;\n }\n\n // let init: {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // } | null = null;\n // let initExt: {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // } | null = null;\n\n const onStatus = async (data: unknown) => {\n const { loaded, total } = data as { loaded: number; total: number };\n if (loaded !== undefined && onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n\n if ((data as { nextChunk?: boolean }).nextChunk) {\n let chunk: Uint8Array;\n if (!readStream) {\n chunk = new Uint8Array(0);\n } else {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n readStream = undefined;\n chunk = new Uint8Array(0);\n } else {\n chunk = value;\n }\n }\n worker.call(\"nextChunk\", { chunk });\n }\n\n // if ((data as { orig?: unknown }).orig) {\n // if (extSplats) {\n // initExt = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // };\n // extSplats.initialize({\n // numSplats: initExt?.numSplats,\n // extArrays: [initExt?.ext0, initExt?.ext1],\n // extra: initExt?.extra,\n // });\n // calledOnLoad = true;\n // onLoad?.(extSplats);\n // } else if (packedSplats) {\n // init = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // };\n // packedSplats.initialize({\n // numSplats: init?.numSplats,\n // packedArray: init?.packedArray,\n // extra: init?.extra,\n // splatEncoding: init?.splatEncoding,\n // });\n // calledOnLoad = true;\n // onLoad?.(packedSplats);\n // } else {\n // console.warn(\"No splats to initialize\");\n // }\n // }\n };\n\n const basedUrl = resolvedURL\n ? new URL(resolvedURL, window.location.href).toString()\n : undefined;\n const decoded = (await worker.call(\n extSplats ? \"loadExtSplats\" : \"loadPackedSplats\",\n {\n url: basedUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n fileBytes: fileBytes?.slice(),\n fileType,\n pathName: resolvedURL || fileName,\n chunked: stream !== undefined,\n chunkedLength: streamLength,\n encoding: packedSplats?.splatEncoding,\n lod,\n lodBase,\n nonLod,\n lodAbove,\n },\n { onStatus },\n )) as {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n lodSplats?:\n | {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n }\n | PackedSplats\n | ExtSplats;\n };\n\n if (decoded.lodSplats) {\n if (extSplats) {\n decoded.lodSplats = new ExtSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n }),\n });\n } else {\n decoded.lodSplats = new PackedSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n }),\n maxSplats: packedSplats?.maxSplats,\n });\n }\n }\n\n if (extSplats) {\n const initExtSplats = {\n // ...(initExt ?? {}),\n ...decoded,\n };\n extSplats.initialize(initExtSplats as ExtSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(extSplats);\n // }\n } else {\n const initSplats = {\n // ...(init ?? {}),\n ...decoded,\n };\n if (packedSplats) {\n packedSplats.initialize(initSplats as PackedSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(packedSplats);\n // }\n } else {\n // if (!calledOnLoad) {\n onLoad?.(new PackedSplats(initSplats as PackedSplatsOptions));\n // }\n }\n }\n })\n .catch((error) => {\n this.manager.itemError(resolvedURL ?? \"\");\n onError?.(error);\n })\n .finally(() => {\n this.manager.itemEnd(resolvedURL ?? \"\");\n });\n }\n\n async loadInternalAsync({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onProgress?: (event: ProgressEvent) => void;\n lod?: boolean;\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n return new Promise((resolve, reject) => {\n this.loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad: resolve,\n onProgress,\n onError: reject,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n });\n });\n }\n}\n\nasync function fetchWithProgress(\n request: Request,\n onProgress?: (event: ProgressEvent) => void,\n) {\n const response = await fetch(request);\n if (!response.ok) {\n throw new Error(\n `${response.status} \"${response.statusText}\" fetching URL: ${request.url}`,\n );\n }\n if (!response.body) {\n throw new Error(`Response body is null for URL: ${request.url}`);\n }\n\n const reader = response.body.getReader();\n let loaded = 0;\n const chunks: Uint8Array[] = [];\n try {\n const contentLength = Number.parseInt(\n response.headers.get(\"Content-Length\") || \"0\",\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n loaded += value.length;\n\n if (onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n }\n } catch (err) {\n try {\n const reason = err instanceof Error ? err.message : \"Unknown error\";\n await reader.cancel(reason);\n } catch {}\n throw err;\n }\n\n // Combine chunks into a single buffer\n const bytes = new Uint8Array(loaded);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.length;\n }\n return bytes.buffer;\n}\n\nexport function getSplatFileType(\n fileBytes: Uint8Array,\n): SplatFileType | undefined {\n const view = new DataView(fileBytes.buffer);\n const magic = view.getUint32(0, true);\n if ((magic & 0x00ffffff) === 0x00796c70) {\n return SplatFileType.PLY;\n }\n if ((magic & 0x00ffffff) === 0x00088b1f) {\n // Gzipped file, unpack beginning to check magic number\n const header = decompressPartialGzip(fileBytes, 4);\n const gView = new DataView(header.buffer);\n if (gView.getUint32(0, true) === 0x5053474e) {\n return SplatFileType.SPZ;\n }\n // Unknown Gzipped file type\n return undefined;\n }\n if (magic === 0x04034b50) {\n // PKZip file\n if (tryPcSogsZip(fileBytes)) {\n return SplatFileType.PCSOGSZIP;\n }\n // Unknown PKZip file type\n return undefined;\n }\n if (magic === 0x30444152) {\n return SplatFileType.RAD;\n }\n // Unknown file type\n return undefined;\n}\n\n// Returns the lowercased file extension from a path or URL\nexport function getFileExtension(pathOrUrl: string): string {\n const noTrailing = pathOrUrl.split(/[?#]/, 1)[0];\n const lastSlash = Math.max(\n noTrailing.lastIndexOf(\"/\"),\n noTrailing.lastIndexOf(\"\\\\\"),\n );\n const filename = noTrailing.slice(lastSlash + 1);\n const lastDot = filename.lastIndexOf(\".\");\n if (lastDot <= 0 || lastDot === filename.length - 1) {\n return \"\"; // No extension\n }\n return filename.slice(lastDot + 1).toLowerCase();\n}\n\nexport function getSplatFileTypeFromPath(\n pathOrUrl: string,\n): SplatFileType | undefined {\n const extension = getFileExtension(pathOrUrl);\n if (extension === \"ply\") {\n return SplatFileType.PLY;\n }\n if (extension === \"spz\") {\n return SplatFileType.SPZ;\n }\n if (extension === \"splat\") {\n return SplatFileType.SPLAT;\n }\n if (extension === \"ksplat\") {\n return SplatFileType.KSPLAT;\n }\n if (extension === \"sog\") {\n return SplatFileType.PCSOGSZIP;\n }\n if (extension === \"rad\") {\n return SplatFileType.RAD;\n }\n return undefined;\n}\n\nexport type PcSogsJson = {\n means: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n quats: { shape: number[]; dtype: string; encoding?: string; files: string[] };\n sh0: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n shN?: {\n shape: number[];\n dtype: string;\n mins: number;\n maxs: number;\n quantization: number;\n files: string[];\n };\n};\n\nexport type PcSogsV2Json = {\n version: 2;\n count: number;\n antialias?: boolean;\n means: {\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n codebook: number[];\n files: string[];\n };\n quats: { files: string[] };\n sh0: {\n codebook: number[];\n files: string[];\n };\n shN?: {\n count: number;\n bands: number;\n codebook: number[];\n files: string[];\n };\n};\n\nexport function isPcSogs(input: ArrayBuffer | Uint8Array | string): boolean {\n // Returns true if the input seems to be a valid PC SOGS file\n return tryPcSogs(input) !== undefined;\n}\n\nexport function tryPcSogs(\n input: ArrayBuffer | Uint8Array | string,\n): PcSogsJson | PcSogsV2Json | undefined {\n // Try to parse input as SOGS JSON and see if it's valid\n try {\n let text: string;\n if (typeof input === \"string\") {\n text = input;\n } else {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n if (fileBytes.length > 65536) {\n // Should be only a few KB, definitely not a SOGS JSON file\n return undefined;\n }\n text = new TextDecoder().decode(fileBytes);\n }\n\n const json = JSON.parse(text);\n if (!json || typeof json !== \"object\" || Array.isArray(json)) {\n return undefined;\n }\n const isVersion2 = json.version === 2;\n\n for (const key of [\"means\", \"scales\", \"quats\", \"sh0\"]) {\n if (\n !json[key] ||\n typeof json[key] !== \"object\" ||\n Array.isArray(json[key])\n ) {\n return undefined;\n }\n if (isVersion2) {\n // Expect files\n if (!json[key].files) {\n return undefined;\n }\n\n // Scales and sh0 should have codebooks\n if ((key === \"scales\" || key === \"sh0\") && !json[key].codebook) {\n return undefined;\n }\n // Means should have mins and maxs defined\n if (key === \"means\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n } else {\n // Expect shape and files\n if (!json[key].shape || !json[key].files) {\n return undefined;\n }\n // Besides 'quats' all other properties have mins and maxs\n if (key !== \"quats\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n }\n }\n // This is probably a PC SOGS file\n return json as PcSogsJson | PcSogsV2Json;\n } catch {\n return undefined;\n }\n}\n\nexport function tryPcSogsZip(\n input: ArrayBuffer | Uint8Array,\n): { name: string; json: PcSogsJson | PcSogsV2Json } | undefined {\n try {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let metaFilename: string | null = null;\n\n const unzipped = unzipSync(fileBytes, {\n filter: ({ name }) => {\n const filename = name.split(/[\\\\/]/).pop() as string;\n if (filename === \"meta.json\") {\n metaFilename = name;\n return true;\n }\n return false;\n },\n });\n if (!metaFilename) {\n return undefined;\n }\n\n // Check for PC SOGS V1 and V2 (aka SOG)\n const json = tryPcSogs(unzipped[metaFilename]);\n if (!json) {\n return undefined;\n }\n return { name: metaFilename, json };\n } catch {\n return undefined;\n }\n}\n\nexport async function unpackSplats({\n input,\n extraFiles,\n fileType,\n pathOrUrl,\n splatEncoding,\n}: {\n input: Uint8Array | ArrayBuffer;\n extraFiles?: Record;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n splatEncoding?: SplatEncoding;\n}): Promise<{\n packedArray: Uint32Array;\n numSplats: number;\n extra?: Record;\n}> {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let splatFileType = fileType;\n if (!fileType) {\n splatFileType = getSplatFileType(fileBytes);\n if (!splatFileType && pathOrUrl) {\n splatFileType = getSplatFileTypeFromPath(pathOrUrl);\n }\n }\n\n switch (splatFileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes });\n await ply.parseHeader();\n const numSplats = ply.numSplats;\n const maxSplats = getTextureSize(numSplats).maxSplats;\n const args = {\n fileBytes,\n packedArray: new Uint32Array(maxSplats * 4),\n splatEncoding,\n };\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"unpackPly\",\n args,\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.SPZ: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodeSpz\",\n {\n fileBytes,\n splatEncoding,\n },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.SPLAT: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats } = (await worker.call(\n \"decodeAntiSplat\",\n {\n fileBytes,\n splatEncoding,\n },\n )) as { packedArray: Uint32Array; numSplats: number };\n return { packedArray, numSplats };\n });\n }\n case SplatFileType.KSPLAT: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodeKsplat\",\n { fileBytes, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.PCSOGS: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodePcSogs\",\n { fileBytes, extraFiles, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.PCSOGSZIP: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodePcSogsZip\",\n { fileBytes, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n default: {\n throw new Error(`Unknown splat file type: ${splatFileType}`);\n }\n }\n}\n\nexport class SplatData {\n numSplats: number;\n maxSplats: number;\n centers: Float32Array;\n scales: Float32Array;\n quaternions: Float32Array;\n opacities: Float32Array;\n colors: Float32Array;\n sh1?: Float32Array;\n sh2?: Float32Array;\n sh3?: Float32Array;\n\n constructor({ maxSplats = 1 }: { maxSplats?: number } = {}) {\n this.numSplats = 0;\n this.maxSplats = getTextureSize(maxSplats).maxSplats;\n this.centers = new Float32Array(this.maxSplats * 3);\n this.scales = new Float32Array(this.maxSplats * 3);\n this.quaternions = new Float32Array(this.maxSplats * 4);\n this.opacities = new Float32Array(this.maxSplats);\n this.colors = new Float32Array(this.maxSplats * 3);\n }\n\n pushSplat(): number {\n const index = this.numSplats;\n this.ensureIndex(index);\n this.numSplats += 1;\n return index;\n }\n\n unpushSplat(index: number) {\n if (index === this.numSplats - 1) {\n this.numSplats -= 1;\n } else {\n throw new Error(\"Cannot unpush splat from non-last position\");\n }\n }\n\n ensureCapacity(numSplats: number) {\n if (numSplats > this.maxSplats) {\n const targetSplats = Math.max(numSplats, this.maxSplats * 2);\n const newCenters = new Float32Array(targetSplats * 3);\n const newScales = new Float32Array(targetSplats * 3);\n const newQuaternions = new Float32Array(targetSplats * 4);\n const newOpacities = new Float32Array(targetSplats);\n const newColors = new Float32Array(targetSplats * 3);\n newCenters.set(this.centers);\n newScales.set(this.scales);\n newQuaternions.set(this.quaternions);\n newOpacities.set(this.opacities);\n newColors.set(this.colors);\n this.centers = newCenters;\n this.scales = newScales;\n this.quaternions = newQuaternions;\n this.opacities = newOpacities;\n this.colors = newColors;\n\n if (this.sh1) {\n const newSh1 = new Float32Array(targetSplats * 9);\n newSh1.set(this.sh1);\n this.sh1 = newSh1;\n }\n if (this.sh2) {\n const newSh2 = new Float32Array(targetSplats * 15);\n newSh2.set(this.sh2);\n this.sh2 = newSh2;\n }\n if (this.sh3) {\n const newSh3 = new Float32Array(targetSplats * 21);\n newSh3.set(this.sh3);\n this.sh3 = newSh3;\n }\n\n this.maxSplats = targetSplats;\n }\n }\n\n ensureIndex(index: number) {\n this.ensureCapacity(index + 1);\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n this.centers[index * 3] = x;\n this.centers[index * 3 + 1] = y;\n this.centers[index * 3 + 2] = z;\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n this.scales[index * 3] = scaleX;\n this.scales[index * 3 + 1] = scaleY;\n this.scales[index * 3 + 2] = scaleZ;\n }\n\n setQuaternion(index: number, x: number, y: number, z: number, w: number) {\n this.quaternions[index * 4] = x;\n this.quaternions[index * 4 + 1] = y;\n this.quaternions[index * 4 + 2] = z;\n this.quaternions[index * 4 + 3] = w;\n }\n\n setOpacity(index: number, opacity: number) {\n this.opacities[index] = opacity;\n }\n\n setColor(index: number, r: number, g: number, b: number) {\n this.colors[index * 3] = r;\n this.colors[index * 3 + 1] = g;\n this.colors[index * 3 + 2] = b;\n }\n\n setSh1(index: number, sh1: Float32Array) {\n if (!this.sh1) {\n this.sh1 = new Float32Array(this.maxSplats * 9);\n }\n for (let j = 0; j < 9; ++j) {\n this.sh1[index * 9 + j] = sh1[j];\n }\n }\n\n setSh2(index: number, sh2: Float32Array) {\n if (!this.sh2) {\n this.sh2 = new Float32Array(this.maxSplats * 15);\n }\n for (let j = 0; j < 15; ++j) {\n this.sh2[index * 15 + j] = sh2[j];\n }\n }\n\n setSh3(index: number, sh3: Float32Array) {\n if (!this.sh3) {\n this.sh3 = new Float32Array(this.maxSplats * 21);\n }\n for (let j = 0; j < 21; ++j) {\n this.sh3[index * 21 + j] = sh3[j];\n }\n }\n}\n\nexport async function transcodeSpz(\n input: TranscodeSpzInput,\n): Promise<{ input: TranscodeSpzInput; fileBytes: Uint8Array }> {\n return await withWorker(async (worker) => {\n const result = (await worker.call(\"transcodeSpz\", input)) as {\n input: TranscodeSpzInput;\n fileBytes: Uint8Array;\n };\n return result;\n });\n}\n\nexport type FileInput = {\n fileBytes: Uint8Array;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n transform?: { translate?: number[]; quaternion?: number[]; scale?: number };\n};\n\nexport type TranscodeSpzInput = {\n inputs: FileInput[];\n maxSh?: number;\n clipXyz?: { min: number[]; max: number[] };\n fractionalBits?: number;\n opacityThreshold?: number;\n};\n","import { unzip } from \"fflate\";\nimport {\n type PcSogsJson,\n type PcSogsV2Json,\n tryPcSogsZip,\n} from \"./SplatLoader\";\nimport type { SplatEncoding } from \"./defines\";\nimport {\n computeMaxSplats,\n encodeSh1Rgb,\n encodeSh2Rgb,\n encodeSh3Rgb,\n setPackedSplatCenter,\n setPackedSplatQuat,\n setPackedSplatRgba,\n setPackedSplatScales,\n} from \"./utils\";\n\nexport async function unpackPcSogs(\n json: PcSogsJson | PcSogsV2Json,\n extraFiles: Record,\n splatEncoding: SplatEncoding,\n): Promise<{\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n}> {\n const isVersion2 = \"version\" in json;\n\n if (!isVersion2 && json.quats.encoding !== \"quaternion_packed\") {\n throw new Error(\"Unsupported quaternion encoding\");\n }\n\n const numSplats = isVersion2 ? json.count : json.means.shape[0];\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n const meansPromise = Promise.all([\n decodeImageRgba(extraFiles[json.means.files[0]]),\n decodeImageRgba(extraFiles[json.means.files[1]]),\n ]).then((means) => {\n for (let i = 0; i < numSplats; ++i) {\n const i4 = i * 4;\n const fx = (means[0][i4 + 0] + (means[1][i4 + 0] << 8)) / 65535;\n const fy = (means[0][i4 + 1] + (means[1][i4 + 1] << 8)) / 65535;\n const fz = (means[0][i4 + 2] + (means[1][i4 + 2] << 8)) / 65535;\n let x =\n json.means.mins[0] + (json.means.maxs[0] - json.means.mins[0]) * fx;\n let y =\n json.means.mins[1] + (json.means.maxs[1] - json.means.mins[1]) * fy;\n let z =\n json.means.mins[2] + (json.means.maxs[2] - json.means.mins[2]) * fz;\n x = Math.sign(x) * (Math.exp(Math.abs(x)) - 1);\n y = Math.sign(y) * (Math.exp(Math.abs(y)) - 1);\n z = Math.sign(z) * (Math.exp(Math.abs(z)) - 1);\n setPackedSplatCenter(packedArray, i, x, y, z);\n }\n });\n\n const scalesPromise = decodeImageRgba(extraFiles[json.scales.files[0]]).then(\n (scales) => {\n let xLookup: number[];\n let yLookup: number[];\n let zLookup: number[];\n\n if (isVersion2) {\n xLookup =\n yLookup =\n zLookup =\n json.scales.codebook.map((x) => Math.exp(x));\n } else {\n xLookup = new Array(256)\n .fill(0)\n .map(\n (_, i) =>\n json.scales.mins[0] +\n (json.scales.maxs[0] - json.scales.mins[0]) * (i / 255),\n )\n .map((x) => Math.exp(x));\n yLookup = new Array(256)\n .fill(0)\n .map(\n (_, i) =>\n json.scales.mins[1] +\n (json.scales.maxs[1] - json.scales.mins[1]) * (i / 255),\n )\n .map((x) => Math.exp(x));\n zLookup = new Array(256)\n .fill(0)\n .map(\n (_, i) =>\n json.scales.mins[2] +\n (json.scales.maxs[2] - json.scales.mins[2]) * (i / 255),\n )\n .map((x) => Math.exp(x));\n }\n\n for (let i = 0; i < numSplats; ++i) {\n const i4 = i * 4;\n setPackedSplatScales(\n packedArray,\n i,\n xLookup[scales[i4 + 0]],\n yLookup[scales[i4 + 1]],\n zLookup[scales[i4 + 2]],\n splatEncoding,\n );\n }\n },\n );\n\n const quatsPromise = decodeImageRgba(extraFiles[json.quats.files[0]]).then(\n (quats) => {\n const SQRT2 = Math.sqrt(2);\n const lookup = new Array(256)\n .fill(0)\n .map((_, i) => (i / 255 - 0.5) * SQRT2);\n\n for (let i = 0; i < numSplats; ++i) {\n const i4 = i * 4;\n const r0 = lookup[quats[i4 + 0]];\n const r1 = lookup[quats[i4 + 1]];\n const r2 = lookup[quats[i4 + 2]];\n const rr = Math.sqrt(Math.max(0, 1.0 - r0 * r0 - r1 * r1 - r2 * r2));\n const rOrder = quats[i4 + 3] - 252;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n setPackedSplatQuat(packedArray, i, quatX, quatY, quatZ, quatW);\n }\n },\n );\n const sh0Promise = decodeImageRgba(extraFiles[json.sh0.files[0]]).then(\n (sh0) => {\n const SH_C0 = 0.28209479177387814;\n let rLookup: number[];\n let gLookup: number[];\n let bLookup: number[];\n let aLookup: number[];\n\n if (isVersion2) {\n rLookup =\n gLookup =\n bLookup =\n json.sh0.codebook.map((x) => SH_C0 * x + 0.5);\n aLookup = new Array(256).fill(0).map((_, i) => i / 255);\n } else {\n rLookup = new Array(256)\n .fill(0)\n .map(\n (_, i) =>\n json.sh0.mins[0] +\n (json.sh0.maxs[0] - json.sh0.mins[0]) * (i / 255),\n )\n .map((x) => SH_C0 * x + 0.5);\n gLookup = new Array(256)\n .fill(0)\n .map(\n (_, i) =>\n json.sh0.mins[1] +\n (json.sh0.maxs[1] - json.sh0.mins[1]) * (i / 255),\n )\n .map((x) => SH_C0 * x + 0.5);\n bLookup = new Array(256)\n .fill(0)\n .map(\n (_, i) =>\n json.sh0.mins[2] +\n (json.sh0.maxs[2] - json.sh0.mins[2]) * (i / 255),\n )\n .map((x) => SH_C0 * x + 0.5);\n aLookup = new Array(256)\n .fill(0)\n .map(\n (_, i) =>\n json.sh0.mins[3] +\n (json.sh0.maxs[3] - json.sh0.mins[3]) * (i / 255),\n )\n .map((x) => 1.0 / (1.0 + Math.exp(-x)));\n }\n\n for (let i = 0; i < numSplats; ++i) {\n const i4 = i * 4;\n setPackedSplatRgba(\n packedArray,\n i,\n rLookup[sh0[i4 + 0]],\n gLookup[sh0[i4 + 1]],\n bLookup[sh0[i4 + 2]],\n aLookup[sh0[i4 + 3]],\n splatEncoding,\n );\n }\n },\n );\n\n const promises = [meansPromise, scalesPromise, quatsPromise, sh0Promise];\n if (json.shN) {\n const useSH3 = isVersion2\n ? json.shN.bands >= 3\n : json.shN.shape[1] >= 48 - 3;\n const useSH2 = isVersion2\n ? json.shN.bands >= 2\n : json.shN.shape[1] >= 27 - 3;\n const useSH1 = isVersion2\n ? json.shN.bands >= 1\n : json.shN.shape[1] >= 12 - 3;\n\n if (useSH1) extra.sh1 = new Uint32Array(numSplats * 2);\n if (useSH2) extra.sh2 = new Uint32Array(numSplats * 4);\n if (useSH3) extra.sh3 = new Uint32Array(numSplats * 4);\n\n const sh1 = new Float32Array(9);\n const sh2 = new Float32Array(15);\n const sh3 = new Float32Array(21);\n\n const shN = json.shN;\n const shNPromise = Promise.all([\n decodeImage(extraFiles[json.shN.files[0]]),\n decodeImage(extraFiles[json.shN.files[1]]),\n ]).then(([centroids, labels]) => {\n const lookup =\n \"codebook\" in shN\n ? shN.codebook\n : new Array(256)\n .fill(0)\n .map((_, i) => shN.mins + (shN.maxs - shN.mins) * (i / 255));\n\n for (let i = 0; i < numSplats; ++i) {\n const i4 = i * 4;\n const label = labels.rgba[i4 + 0] + (labels.rgba[i4 + 1] << 8);\n const col = (label & 63) * 15;\n const row = label >>> 6;\n const offset = row * centroids.width + col;\n\n for (let d = 0; d < 3; ++d) {\n if (useSH1) {\n for (let k = 0; k < 3; ++k) {\n sh1[k * 3 + d] = lookup[centroids.rgba[(offset + k) * 4 + d]];\n }\n }\n\n if (useSH2) {\n for (let k = 0; k < 5; ++k) {\n sh2[k * 3 + d] = lookup[centroids.rgba[(offset + 3 + k) * 4 + d]];\n }\n }\n\n if (useSH3) {\n for (let k = 0; k < 7; ++k) {\n sh3[k * 3 + d] = lookup[centroids.rgba[(offset + 8 + k) * 4 + d]];\n }\n }\n }\n\n if (useSH1)\n encodeSh1Rgb(extra.sh1 as Uint32Array, i, sh1, splatEncoding);\n if (useSH2)\n encodeSh2Rgb(extra.sh2 as Uint32Array, i, sh2, splatEncoding);\n if (useSH3)\n encodeSh3Rgb(extra.sh3 as Uint32Array, i, sh3, splatEncoding);\n }\n });\n promises.push(shNPromise);\n }\n\n await Promise.all(promises);\n\n return { packedArray, numSplats, extra };\n}\n\n// WebGL context for reading raw pixel data of WebP images\nlet offscreenGlContext: WebGL2RenderingContext | null = null;\n\nasync function decodeImage(fileBytes: ArrayBuffer) {\n if (!offscreenGlContext) {\n const canvas = new OffscreenCanvas(1, 1);\n offscreenGlContext = canvas.getContext(\"webgl2\");\n if (!offscreenGlContext) {\n throw new Error(\"Failed to create WebGL2 context\");\n }\n }\n\n const imageBlob = new Blob([fileBytes]);\n const bitmap = await createImageBitmap(imageBlob, {\n premultiplyAlpha: \"none\",\n });\n\n const gl = offscreenGlContext;\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, bitmap);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n\n const framebuffer = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0,\n gl.TEXTURE_2D,\n texture,\n 0,\n );\n\n const data = new Uint8Array(bitmap.width * bitmap.height * 4);\n gl.readPixels(\n 0,\n 0,\n bitmap.width,\n bitmap.height,\n gl.RGBA,\n gl.UNSIGNED_BYTE,\n data,\n );\n\n gl.deleteTexture(texture);\n gl.deleteFramebuffer(framebuffer);\n\n return { rgba: data, width: bitmap.width, height: bitmap.height };\n}\n\nasync function decodeImageRgba(fileBytes: ArrayBuffer) {\n const { rgba } = await decodeImage(fileBytes);\n return rgba;\n}\n\nexport async function unpackPcSogsZip(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): Promise<{\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n}> {\n const nameJson = tryPcSogsZip(fileBytes);\n if (!nameJson) {\n throw new Error(\"Invalid PC SOGS zip file\");\n }\n const { name, json } = nameJson;\n // Find path prefix, will be -1 if no / or \\\n const lastSlash = name.lastIndexOf(\"/\");\n const lastBackslash = name.lastIndexOf(\"\\\\\");\n const prefix = name.slice(0, Math.max(lastSlash, lastBackslash) + 1);\n\n const fileMap = new Map();\n const refFiles = [\n ...json.means.files,\n ...json.scales.files,\n ...json.quats.files,\n ...json.sh0.files,\n ...(json.shN?.files ?? []),\n ];\n for (const file of refFiles) {\n fileMap.set(prefix + file, file);\n }\n\n const unzipped = await new Promise>(\n (resolve, reject) => {\n unzip(\n fileBytes,\n {\n filter: ({ name }) => {\n return fileMap.has(name);\n },\n },\n (err, files) => {\n if (err) {\n reject(err);\n } else {\n resolve(files);\n }\n },\n );\n },\n );\n\n const extraFiles: Record = {};\n for (const [full, name] of fileMap.entries()) {\n extraFiles[name] = unzipped[full];\n }\n\n return await unpackPcSogs(json, extraFiles, splatEncoding);\n}\n","import init_wasm, { sort_splats, sort32_splats } from \"spark-worker-rs\";\nimport type { PcSogsJson, TranscodeSpzInput } from \"./SplatLoader\";\nimport { unpackAntiSplat } from \"./antisplat\";\nimport { type SplatEncoding, WASM_SPLAT_SORT } from \"./defines\";\nimport { unpackKsplat } from \"./ksplat\";\nimport { unpackPcSogs, unpackPcSogsZip } from \"./pcsogs\";\nimport { PlyReader } from \"./ply\";\nimport { SpzReader, transcodeSpz } from \"./spz\";\nimport {\n computeMaxSplats,\n encodeSh1Rgb,\n encodeSh2Rgb,\n encodeSh3Rgb,\n getTransferable,\n setPackedSplat,\n setPackedSplatCenter,\n setPackedSplatOpacity,\n setPackedSplatQuat,\n setPackedSplatRgb,\n setPackedSplatScales,\n toHalf,\n} from \"./utils\";\n\n// WebWorker for Spark's background CPU tasks, such as Gsplat file decoding\n// and sorting.\n\nasync function onMessage(event: MessageEvent) {\n // Unpack RPC function name, arguments, and ID from the main thread.\n const { name, args, id }: { name: string; args: unknown; id: number } =\n event.data;\n // console.log(`worker.onMessage(${id}, ${name}):`, args);\n\n // Initialize return result/error, to be filled out below.\n let result = undefined;\n let error = undefined;\n\n try {\n switch (name) {\n case \"unpackPly\": {\n const { packedArray, fileBytes, splatEncoding } = args as {\n packedArray: Uint32Array;\n fileBytes: Uint8Array;\n splatEncoding: SplatEncoding;\n };\n const decoded = await unpackPly({\n packedArray,\n fileBytes,\n splatEncoding,\n });\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra,\n };\n break;\n }\n case \"decodeSpz\": {\n const { fileBytes, splatEncoding } = args as {\n fileBytes: Uint8Array;\n splatEncoding: SplatEncoding;\n };\n const decoded = await unpackSpz(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra,\n };\n break;\n }\n case \"decodeAntiSplat\": {\n const { fileBytes, splatEncoding } = args as {\n fileBytes: Uint8Array;\n splatEncoding: SplatEncoding;\n };\n const decoded = unpackAntiSplat(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n };\n break;\n }\n case \"decodeKsplat\": {\n const { fileBytes, splatEncoding } = args as {\n fileBytes: Uint8Array;\n splatEncoding: SplatEncoding;\n };\n const decoded = unpackKsplat(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra,\n };\n break;\n }\n case \"decodePcSogs\": {\n const { fileBytes, extraFiles, splatEncoding } = args as {\n fileBytes: Uint8Array;\n extraFiles: Record;\n splatEncoding: SplatEncoding;\n };\n const json = JSON.parse(\n new TextDecoder().decode(fileBytes),\n ) as PcSogsJson;\n const decoded = await unpackPcSogs(json, extraFiles, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra,\n };\n break;\n }\n case \"decodePcSogsZip\": {\n const { fileBytes, splatEncoding } = args as {\n fileBytes: Uint8Array;\n splatEncoding: SplatEncoding;\n };\n const decoded = await unpackPcSogsZip(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra,\n };\n break;\n }\n case \"sortSplats\": {\n // Sort maxSplats splats using readback data, which encodes one uint32 per\n // Gsplats, with the low bytes encoding a float16 distance sort metric.\n const { maxSplats, totalSplats, readback, ordering } = args as {\n maxSplats: number;\n totalSplats: number;\n readback: Uint8Array[];\n ordering: Uint32Array;\n };\n // Sort totalSplats splats each with 4 bytes of readback, and outputs Uint32Array ordering of splat indices\n result = {\n id,\n readback,\n ...sortSplats({ totalSplats, readback, ordering }),\n };\n break;\n }\n case \"sortDoubleSplats\": {\n // Sort numSplats splats using the readback distance metric, which encodes\n // one float16 per splat (no unused high bytes like for sortSplats).\n const { numSplats, readback, ordering } = args as {\n numSplats: number;\n readback: Uint16Array;\n ordering: Uint32Array;\n };\n if (WASM_SPLAT_SORT) {\n result = {\n id,\n readback,\n ordering,\n activeSplats: sort_splats(numSplats, readback, ordering),\n };\n } else {\n result = {\n id,\n readback,\n ...sortDoubleSplats({ numSplats, readback, ordering }),\n };\n }\n break;\n }\n case \"sort32Splats\": {\n const { maxSplats, numSplats, readback, ordering } = args as {\n maxSplats: number;\n numSplats: number;\n readback: Uint32Array;\n ordering: Uint32Array;\n };\n // Benchmark sort\n // benchmarkSort(numSplats, readback, ordering);\n if (WASM_SPLAT_SORT) {\n result = {\n id,\n readback,\n ordering,\n activeSplats: sort32_splats(numSplats, readback, ordering),\n };\n } else {\n result = {\n id,\n readback,\n ...sort32Splats({ maxSplats, numSplats, readback, ordering }),\n };\n }\n break;\n }\n case \"transcodeSpz\": {\n const input = args as TranscodeSpzInput;\n const spzBytes = await transcodeSpz(input);\n result = {\n id,\n fileBytes: spzBytes,\n input,\n };\n break;\n }\n default: {\n throw new Error(`Unknown name: ${name}`);\n }\n }\n } catch (e) {\n error = e;\n console.error(error);\n }\n\n // Send the result or error back to the main thread, making sure to transfer any ArrayBuffers\n self.postMessage(\n { id, result, error },\n { transfer: getTransferable(result) },\n );\n}\n\nfunction benchmarkSort(\n numSplats: number,\n readback32: Uint32Array,\n ordering: Uint32Array,\n) {\n if (numSplats > 0) {\n console.log(\"Running sort benchmark\");\n const readbackF32 = new Float32Array(readback32.buffer);\n const readback16 = new Uint16Array(readback32.length);\n for (let i = 0; i < numSplats; ++i) {\n readback16[i] = toHalf(readbackF32[i]);\n }\n\n const WARMUP = 10;\n for (let i = 0; i < WARMUP; ++i) {\n const activeSplats = sort_splats(numSplats, readback16, ordering);\n const activeSplats32 = sort32_splats(numSplats, readback32, ordering);\n const results = sortDoubleSplats({\n numSplats,\n readback: readback16,\n ordering,\n });\n const results32 = sort32Splats({\n maxSplats: numSplats,\n numSplats,\n readback: readback32,\n ordering,\n });\n }\n\n const TIMING_SAMPLES = 1000;\n let start: number;\n\n start = performance.now();\n for (let i = 0; i < TIMING_SAMPLES; ++i) {\n const activeSplats = sort_splats(numSplats, readback16, ordering);\n }\n const wasmTime = (performance.now() - start) / TIMING_SAMPLES;\n\n start = performance.now();\n for (let i = 0; i < TIMING_SAMPLES; ++i) {\n const results = sortDoubleSplats({\n numSplats,\n readback: readback16,\n ordering,\n });\n }\n const jsTime = (performance.now() - start) / TIMING_SAMPLES;\n\n console.log(\n `JS: ${jsTime} ms, WASM: ${wasmTime} ms, numSplats: ${numSplats}`,\n );\n\n start = performance.now();\n for (let i = 0; i < TIMING_SAMPLES; ++i) {\n const activeSplats32 = sort32_splats(numSplats, readback32, ordering);\n }\n const wasm32Time = (performance.now() - start) / TIMING_SAMPLES;\n\n start = performance.now();\n for (let i = 0; i < TIMING_SAMPLES; ++i) {\n const results = sort32Splats({\n maxSplats: numSplats,\n numSplats,\n readback: readback32,\n ordering,\n });\n }\n const js32Time = (performance.now() - start) / TIMING_SAMPLES;\n\n console.log(\n `JS32: ${js32Time} ms, WASM32: ${wasm32Time} ms, numSplats: ${numSplats}`,\n );\n }\n}\n\nasync function unpackPly({\n packedArray,\n fileBytes,\n splatEncoding,\n}: {\n packedArray: Uint32Array;\n fileBytes: Uint8Array;\n splatEncoding: SplatEncoding;\n}): Promise<{\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n}> {\n const ply = new PlyReader({ fileBytes });\n await ply.parseHeader();\n const numSplats = ply.numSplats;\n\n const extra: Record = {};\n\n ply.parseSplats(\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n setPackedSplat(\n packedArray,\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n },\n (index, sh1, sh2, sh3) => {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n encodeSh1Rgb(extra.sh1 as Uint32Array, index, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n encodeSh2Rgb(extra.sh2 as Uint32Array, index, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n encodeSh3Rgb(extra.sh3 as Uint32Array, index, sh3, splatEncoding);\n }\n },\n );\n\n return { packedArray, numSplats, extra };\n}\n\nasync function unpackSpz(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): Promise<{\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n}> {\n const spz = new SpzReader({ fileBytes });\n await spz.parseHeader();\n const numSplats = spz.numSplats;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let extraCallbacks = {};\n if (spz.flagLod) {\n const childCounts = new Uint16Array(numSplats);\n const childStarts = new Uint32Array(numSplats);\n extra.childCounts = childCounts;\n extra.childStarts = childStarts;\n extraCallbacks = {\n childCounts: (index: number, count: number) => {\n childCounts[index] = count;\n },\n childStarts: (index: number, start: number) => {\n childStarts[index] = start;\n },\n };\n }\n\n await spz.parseSplats(\n (index, x, y, z) => {\n setPackedSplatCenter(packedArray, index, x, y, z);\n },\n (index, alpha) => {\n setPackedSplatOpacity(packedArray, index, alpha);\n },\n (index, r, g, b) => {\n setPackedSplatRgb(packedArray, index, r, g, b, splatEncoding);\n },\n (index, scaleX, scaleY, scaleZ) => {\n setPackedSplatScales(\n packedArray,\n index,\n scaleX,\n scaleY,\n scaleZ,\n splatEncoding,\n );\n },\n (index, quatX, quatY, quatZ, quatW) => {\n setPackedSplatQuat(packedArray, index, quatX, quatY, quatZ, quatW);\n },\n (index, sh1, sh2, sh3) => {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n encodeSh1Rgb(extra.sh1 as Uint32Array, index, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n encodeSh2Rgb(extra.sh2 as Uint32Array, index, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n encodeSh3Rgb(extra.sh3 as Uint32Array, index, sh3, splatEncoding);\n }\n },\n extraCallbacks,\n );\n return { packedArray, numSplats, extra };\n}\n\n// Array of buckets for sorting float16 distances with range [0, DEPTH_INFINITY].\nconst DEPTH_INFINITY_F16 = 0x7c00;\nconst DEPTH_SIZE_16 = DEPTH_INFINITY_F16 + 1;\nlet depthArray16: Uint32Array | null = null;\n\nfunction sortSplats({\n totalSplats,\n readback,\n ordering,\n}: { totalSplats: number; readback: Uint8Array[]; ordering: Uint32Array }): {\n activeSplats: number;\n ordering: Uint32Array;\n} {\n // Sort totalSplats Gsplats, each with 4 bytes of readback, and outputs Uint32Array\n // of indices from most distant to nearest. Each 4 bytes encode a float16 distance\n // and unused high bytes.\n if (!depthArray16) {\n depthArray16 = new Uint32Array(DEPTH_SIZE_16);\n }\n depthArray16.fill(0);\n\n const readbackUint32 = readback.map((layer) => new Uint32Array(layer.buffer));\n const layerSize = readbackUint32[0].length;\n const numLayers = Math.ceil(totalSplats / layerSize);\n\n let layerBase = 0;\n for (let layer = 0; layer < numLayers; ++layer) {\n const readbackLayer = readbackUint32[layer];\n const layerSplats = Math.min(readbackLayer.length, totalSplats - layerBase);\n for (let i = 0; i < layerSplats; ++i) {\n const pri = readbackLayer[i] & 0x7fff;\n if (pri < DEPTH_INFINITY_F16) {\n depthArray16[pri] += 1;\n }\n }\n layerBase += layerSplats;\n }\n\n let activeSplats = 0;\n for (let j = 0; j < DEPTH_SIZE_16; ++j) {\n const nextIndex = activeSplats + depthArray16[j];\n depthArray16[j] = activeSplats;\n activeSplats = nextIndex;\n }\n\n layerBase = 0;\n for (let layer = 0; layer < numLayers; ++layer) {\n const readbackLayer = readbackUint32[layer];\n const layerSplats = Math.min(readbackLayer.length, totalSplats - layerBase);\n for (let i = 0; i < layerSplats; ++i) {\n const pri = readbackLayer[i] & 0x7fff;\n if (pri < DEPTH_INFINITY_F16) {\n ordering[depthArray16[pri]] = layerBase + i;\n depthArray16[pri] += 1;\n }\n }\n layerBase += layerSplats;\n }\n if (depthArray16[DEPTH_SIZE_16 - 1] !== activeSplats) {\n throw new Error(\n `Expected ${activeSplats} active splats but got ${depthArray16[DEPTH_SIZE_16 - 1]}`,\n );\n }\n\n return { activeSplats, ordering };\n}\n\n// Sort numSplats splats, each with 2 bytes of float16 readback for distance metric,\n// using one bucket sort pass, outputting Uint32Array of indices.\nfunction sortDoubleSplats({\n numSplats,\n readback,\n ordering,\n}: { numSplats: number; readback: Uint16Array; ordering: Uint32Array }): {\n activeSplats: number;\n ordering: Uint32Array;\n} {\n // Ensure depthArray is allocated and zeroed out for our buckets.\n if (!depthArray16) {\n depthArray16 = new Uint32Array(DEPTH_SIZE_16);\n }\n depthArray16.fill(0);\n\n // Count the number of splats in each bucket (cull Gsplats at infinity).\n for (let i = 0; i < numSplats; ++i) {\n const pri = readback[i];\n if (pri < DEPTH_INFINITY_F16) {\n depthArray16[pri] += 1;\n }\n }\n\n // Compute the beginning index of each bucket in the output array and the\n // total number of active (non-infinity) splats, going in reverse order\n // because we want most distant Gsplats to be first in the output array.\n let activeSplats = 0;\n for (let j = DEPTH_INFINITY_F16 - 1; j >= 0; --j) {\n const nextIndex = activeSplats + depthArray16[j];\n depthArray16[j] = activeSplats;\n activeSplats = nextIndex;\n }\n\n // Write out the sorted indices into the output array according\n // bucket order.\n for (let i = 0; i < numSplats; ++i) {\n const pri = readback[i];\n if (pri < DEPTH_INFINITY_F16) {\n ordering[depthArray16[pri]] = i;\n depthArray16[pri] += 1;\n }\n }\n // Sanity check that the end of the closest bucket is the same as\n // our total count of active splats (not at infinity).\n if (depthArray16[0] !== activeSplats) {\n throw new Error(\n `Expected ${activeSplats} active splats but got ${depthArray16[0]}`,\n );\n }\n\n return { activeSplats, ordering };\n}\n\nconst DEPTH_INFINITY_F32 = 0x7f800000;\nlet bucket16lo: Uint32Array | null = null;\nlet bucket16hi: Uint32Array | null = null;\nlet scratchSplats: Uint32Array | null = null;\n\n// two-pass radix sort (base 65536) of 32-bit keys in readback,\n// but placing largest values first.\nfunction sort32Splats({\n maxSplats,\n numSplats,\n readback, // Uint32Array of bit‑patterns\n ordering, // Uint32Array to fill with sorted indices\n}: {\n maxSplats: number;\n numSplats: number;\n readback: Uint32Array;\n ordering: Uint32Array;\n}): { activeSplats: number; ordering: Uint32Array } {\n const BASE = 1 << 16; // 65536\n\n // allocate once\n if (!bucket16lo) {\n bucket16lo = new Uint32Array(BASE);\n }\n if (!bucket16hi) {\n bucket16hi = new Uint32Array(BASE);\n }\n if (!scratchSplats || scratchSplats.length < maxSplats) {\n scratchSplats = new Uint32Array(maxSplats);\n }\n\n // tally low and high buckets\n bucket16lo.fill(0);\n bucket16hi.fill(0);\n for (let i = 0; i < numSplats; ++i) {\n const key = readback[i];\n if (key < DEPTH_INFINITY_F32) {\n const inv = ~key >>> 0;\n bucket16lo[inv & 0xffff] += 1;\n bucket16hi[inv >>> 16] += 1;\n }\n }\n\n //\n // ——— Pass #1: bucket by inv(lo 16 bits) ———\n //\n // exclusive prefix‑sum → starting offsets\n let total = 0;\n for (let b = 0; b < BASE; ++b) {\n const c = bucket16lo[b];\n bucket16lo[b] = total;\n total += c;\n }\n const activeSplats = total;\n\n // scatter into scratch by low bits of inv\n for (let i = 0; i < numSplats; ++i) {\n const key = readback[i];\n if (key < DEPTH_INFINITY_F32) {\n const inv = ~key >>> 0;\n scratchSplats[bucket16lo[inv & 0xffff]++] = i;\n }\n }\n\n //\n // ——— Pass #2: bucket by inv(hi 16 bits) ———\n //\n // exclusive prefix‑sum again\n let sum = 0;\n for (let b = 0; b < BASE; ++b) {\n const c = bucket16hi[b];\n bucket16hi[b] = sum;\n sum += c;\n }\n\n // scatter into final ordering by high bits of inv\n for (let k = 0; k < activeSplats; ++k) {\n const idx = scratchSplats[k];\n const inv = ~readback[idx] >>> 0;\n ordering[bucket16hi[inv >>> 16]++] = idx;\n }\n\n // sanity‑check: the last bucket should have eaten all entries\n if (bucket16hi[BASE - 1] !== activeSplats) {\n throw new Error(\n `Expected ${activeSplats} active splats but got ${bucket16hi[BASE - 1]}`,\n );\n }\n\n return { activeSplats, ordering };\n}\n\n// Buffer to queue any messages received while initializing, for example\n// early messages to unpack a Gsplat file while still initializing the WASM code.\nconst messageBuffer: MessageEvent[] = [];\n\nfunction bufferMessage(event: MessageEvent) {\n messageBuffer.push(event);\n}\n\nasync function initialize() {\n // Hold any messages received while initializing\n self.addEventListener(\"message\", bufferMessage);\n\n await init_wasm();\n\n self.removeEventListener(\"message\", bufferMessage);\n self.addEventListener(\"message\", onMessage);\n\n // Process any buffered messages\n for (const event of messageBuffer) {\n onMessage(event);\n }\n messageBuffer.length = 0;\n}\n\ninitialize().catch(console.error);\n"],"names":["i","x","ptr","err","l","td","dat","Inflate","Gunzip","_a","e","max","ColorManagement","SplatFileType","bits","THREE.Quaternion","THREE.Vector3","THREE.Color","b2","offset","i32","section","_","min_x","min_y","min_z","max_x","max_y","max_z","min_scale_x","min_scale_y","min_scale_z","max_scale_x","max_scale_y","max_scale_z","packed_position","packed_rotation","packed_scale","packed_color","SH_C0","i2","input","THREE.Box3","quaternion","spz","center","index","name","init_wasm"],"mappings":";;EA2CO,MAAM,YAAY;AAAA,IACrB,OAAO,OAAO,KAAK;AACf,YAAM,QAAQ;AACd,YAAM,MAAM,OAAO,OAAO,YAAY,SAAS;AAC/C,UAAI,YAAY;AAChB,8BAAwB,SAAS,KAAK,IAAI,WAAW,GAAG;AACxD,aAAO;AAAA,IACf;AAAA,IACI,qBAAqB;AACjB,YAAM,MAAM,KAAK;AACjB,WAAK,YAAY;AACjB,8BAAwB,WAAW,IAAI;AACvC,aAAO;AAAA,IACf;AAAA,IACI,OAAO;AACH,YAAM,MAAM,KAAK,mBAAoB;AACrC,WAAK,uBAAuB,KAAK,CAAC;AAAA,IAC1C;AAAA;AAAA;AAAA;AAAA,IAII,UAAU,UAAU;AAChB,WAAK,sBAAsB,KAAK,WAAW,QAAQ;AAAA,IAC3D;AAAA;AAAA;AAAA;AAAA,IAII,UAAU;AACN,YAAM,MAAM,KAAK,oBAAoB,KAAK,SAAS;AACnD,aAAO,QAAQ;AAAA,IACvB;AAAA;AAAA;AAAA;AAAA,IAII,aAAa,MAAM;AACf,WAAK,yBAAyB,KAAK,WAAW,IAAI;AAAA,IAC1D;AAAA;AAAA;AAAA;AAAA,IAII,MAAM;AACF,YAAM,MAAM,KAAK,gBAAgB,KAAK,SAAS;AAC/C,aAAO,QAAQ;AAAA,IACvB;AAAA;AAAA;AAAA;AAAA;AAAA,IAKI,SAAS,UAAU,cAAc;AAC7B,WAAK,qBAAqB,KAAK,WAAW,UAAU,YAAY;AAAA,IACxE;AAAA;AAAA;AAAA;AAAA,IAII,eAAe;AACX,YAAM,MAAM,KAAK,yBAAyB,KAAK,SAAS;AACxD,UAAI,IAAI,CAAC,GAAG;AACR,cAAM,wBAAwB,IAAI,CAAC,CAAC;AAAA,MAChD;AACQ,aAAO,wBAAwB,IAAI,CAAC,CAAC;AAAA,IAC7C;AAAA;AAAA;AAAA;AAAA,IAII,mBAAmB;AACf,YAAM,MAAM,KAAK,6BAA6B,KAAK,SAAS;AAC5D,UAAI,IAAI,CAAC,GAAG;AACR,cAAM,wBAAwB,IAAI,CAAC,CAAC;AAAA,MAChD;AACQ,aAAO,wBAAwB,IAAI,CAAC,CAAC;AAAA,IAC7C;AAAA;AAAA;AAAA;AAAA,IAII,kBAAkB;AACd,YAAM,MAAM,KAAK,4BAA4B,KAAK,SAAS;AAC3D,UAAI,IAAI,CAAC,GAAG;AACR,cAAM,wBAAwB,IAAI,CAAC,CAAC;AAAA,MAChD;AACQ,aAAO,wBAAwB,IAAI,CAAC,CAAC;AAAA,IAC7C;AAAA;AAAA;AAAA;AAAA,IAII,sBAAsB;AAClB,YAAM,MAAM,KAAK,gCAAgC,KAAK,SAAS;AAC/D,UAAI,IAAI,CAAC,GAAG;AACR,cAAM,wBAAwB,IAAI,CAAC,CAAC;AAAA,MAChD;AACQ,aAAO,wBAAwB,IAAI,CAAC,CAAC;AAAA,IAC7C;AAAA;AAAA;AAAA;AAAA,IAII,IAAI,cAAc;AACd,YAAM,MAAM,KAAK,kCAAkC,KAAK,SAAS;AACjE,aAAO,QAAQ;AAAA,IACvB;AAAA;AAAA;AAAA;AAAA,IAII,IAAI,YAAY;AACZ,YAAM,MAAM,KAAK,gCAAgC,KAAK,SAAS;AAC/D,aAAO,QAAQ;AAAA,IACvB;AAAA;AAAA;AAAA;AAAA,IAII,IAAI,YAAY,MAAM;AAClB,WAAK,kCAAkC,KAAK,WAAW,IAAI;AAAA,IACnE;AAAA;AAAA;AAAA;AAAA,IAII,IAAI,UAAU,MAAM;AAChB,WAAK,gCAAgC,KAAK,WAAW,IAAI;AAAA,IACjE;AAAA,EACA;AACA,MAAI,OAAO,QAAS,aAAY,UAAU,OAAO,OAAO,IAAI,YAAY,UAAU;AAAA,EAE3E,MAAM,YAAY;AAAA,IACrB,OAAO,OAAO,KAAK;AACf,YAAM,QAAQ;AACd,YAAM,MAAM,OAAO,OAAO,YAAY,SAAS;AAC/C,UAAI,YAAY;AAChB,8BAAwB,SAAS,KAAK,IAAI,WAAW,GAAG;AACxD,aAAO;AAAA,IACf;AAAA,IACI,qBAAqB;AACjB,YAAM,MAAM,KAAK;AACjB,WAAK,YAAY;AACjB,8BAAwB,WAAW,IAAI;AACvC,aAAO;AAAA,IACf;AAAA,IACI,OAAO;AACH,YAAM,MAAM,KAAK,mBAAoB;AACrC,WAAK,uBAAuB,KAAK,CAAC;AAAA,IAC1C;AAAA;AAAA;AAAA;AAAA,IAII,IAAI,cAAc;AACd,YAAM,MAAM,KAAK,kCAAkC,KAAK,SAAS;AACjE,aAAO,QAAQ;AAAA,IACvB;AAAA;AAAA;AAAA;AAAA,IAII,IAAI,YAAY;AACZ,YAAM,MAAM,KAAK,gCAAgC,KAAK,SAAS;AAC/D,aAAO,QAAQ;AAAA,IACvB;AAAA;AAAA;AAAA;AAAA,IAII,UAAU,UAAU;AAChB,WAAK,sBAAsB,KAAK,WAAW,QAAQ;AAAA,IAC3D;AAAA;AAAA;AAAA;AAAA,IAII,UAAU;AACN,YAAM,MAAM,KAAK,oBAAoB,KAAK,SAAS;AACnD,aAAO,QAAQ;AAAA,IACvB;AAAA;AAAA;AAAA;AAAA,IAII,aAAa,MAAM;AACf,WAAK,yBAAyB,KAAK,WAAW,IAAI;AAAA,IAC1D;AAAA;AAAA;AAAA;AAAA,IAII,MAAM;AACF,YAAM,MAAM,KAAK,gBAAgB,KAAK,SAAS;AAC/C,aAAO,QAAQ;AAAA,IACvB;AAAA;AAAA;AAAA;AAAA;AAAA,IAKI,SAAS,UAAU,cAAc;AAC7B,WAAK,qBAAqB,KAAK,WAAW,UAAU,YAAY;AAAA,IACxE;AAAA;AAAA;AAAA;AAAA,IAII,eAAe;AACX,YAAM,MAAM,KAAK,yBAAyB,KAAK,SAAS;AACxD,UAAI,IAAI,CAAC,GAAG;AACR,cAAM,wBAAwB,IAAI,CAAC,CAAC;AAAA,MAChD;AACQ,aAAO,wBAAwB,IAAI,CAAC,CAAC;AAAA,IAC7C;AAAA;AAAA;AAAA;AAAA,IAII,mBAAmB;AACf,YAAM,MAAM,KAAK,6BAA6B,KAAK,SAAS;AAC5D,UAAI,IAAI,CAAC,GAAG;AACR,cAAM,wBAAwB,IAAI,CAAC,CAAC;AAAA,MAChD;AACQ,aAAO,wBAAwB,IAAI,CAAC,CAAC;AAAA,IAC7C;AAAA;AAAA;AAAA;AAAA;AAAA,IAKI,gBAAgB,UAAU;AACtB,YAAM,MAAM,KAAK,4BAA4B,KAAK,WAAW,QAAQ;AACrE,UAAI,IAAI,CAAC,GAAG;AACR,cAAM,wBAAwB,IAAI,CAAC,CAAC;AAAA,MAChD;AACQ,aAAO,wBAAwB,IAAI,CAAC,CAAC;AAAA,IAC7C;AAAA;AAAA;AAAA;AAAA;AAAA,IAKI,oBAAoB,UAAU;AAC1B,YAAM,MAAM,KAAK,gCAAgC,KAAK,WAAW,QAAQ;AACzE,UAAI,IAAI,CAAC,GAAG;AACR,cAAM,wBAAwB,IAAI,CAAC,CAAC;AAAA,MAChD;AACQ,aAAO,wBAAwB,IAAI,CAAC,CAAC;AAAA,IAC7C;AAAA;AAAA;AAAA;AAAA,IAII,IAAI,YAAY,MAAM;AAClB,WAAK,kCAAkC,KAAK,WAAW,IAAI;AAAA,IACnE;AAAA;AAAA;AAAA;AAAA,IAII,IAAI,UAAU,MAAM;AAChB,WAAK,gCAAgC,KAAK,WAAW,IAAI;AAAA,IACjE;AAAA,EACA;AACA,MAAI,OAAO,QAAS,aAAY,UAAU,OAAO,OAAO,IAAI,YAAY,UAAU;AAoO3E,WAAS,cAAc,YAAY,UAAU,UAAU;AAC1D,UAAM,MAAM,KAAK,cAAc,YAAY,UAAU,QAAQ;AAC7D,WAAO,QAAQ;AAAA,EACnB;AAQO,WAAS,YAAY,YAAY,UAAU,UAAU;AACxD,UAAM,MAAM,KAAK,YAAY,YAAY,UAAU,QAAQ;AAC3D,WAAO,QAAQ;AAAA,EACnB;AAwGA,WAAS,oBAAoB;AACzB,UAAM,UAAU;AAAA,MACZ,WAAW;AAAA,MACX,8BAA8B,SAAS,MAAM,MAAM;AAC/C,cAAM,MAAM,MAAM,mBAAmB,MAAM,IAAI,CAAC;AAChD,eAAO;AAAA,MACV;AAAA,MACD,+CAA+C,SAAS,MAAM;AAC1D,cAAM,IAAI;AACV,cAAM,MAAM,OAAO,MAAO,YAAY,IAAI;AAC1C,eAAO,WAAW,GAAG,IAAI,WAAW,MAAM,IAAI;AAAA,MACjD;AAAA,MACD,gDAAgD,SAAS,MAAM,MAAM;AACjE,cAAM,MAAM,YAAY,IAAI;AAC5B,cAAM,OAAO,kBAAkB,KAAK,KAAK,mBAAmB,KAAK,kBAAkB;AACnF,cAAM,OAAO;AACb,2BAAkB,EAAG,SAAS,OAAO,IAAI,GAAG,MAAM,IAAI;AACtD,2BAAkB,EAAG,SAAS,OAAO,IAAI,GAAG,MAAM,IAAI;AAAA,MACzD;AAAA,MACD,sCAAsC,SAAS,MAAM,MAAM;AACvD,cAAM,MAAM,QAAQ;AACpB,eAAO;AAAA,MACV;AAAA,MACD,4CAA4C,SAAS,MAAM;AACvD,cAAM,MAAM,CAAC;AACb,eAAO;AAAA,MACV;AAAA,MACD,6CAA6C,SAAS,MAAM;AACxD,cAAM,MAAM;AACZ,cAAM,MAAM,OAAO,QAAS,YAAY,QAAQ;AAChD,eAAO;AAAA,MACV;AAAA,MACD,gDAAgD,SAAS,MAAM;AAC3D,cAAM,MAAM,SAAS;AACrB,eAAO;AAAA,MACV;AAAA,MACD,kDAAkD,SAAS,MAAM,MAAM;AACnE,cAAM,MAAM,QAAQ;AACpB,eAAO;AAAA,MACV;AAAA,MACD,8CAA8C,SAAS,MAAM,MAAM;AAC/D,cAAM,MAAM;AACZ,cAAM,MAAM,OAAO,QAAS,WAAW,MAAM;AAC7C,6BAAqB,WAAW,OAAO,IAAI,GAAG,WAAW,GAAG,IAAI,IAAI,KAAK,IAAI;AAC7E,2BAAoB,EAAC,SAAS,OAAO,IAAI,GAAG,CAAC,WAAW,GAAG,GAAG,IAAI;AAAA,MACrE;AAAA,MACD,8CAA8C,SAAS,MAAM,MAAM;AAC/D,cAAM,MAAM;AACZ,cAAM,MAAM,OAAO,QAAS,WAAW,MAAM;AAC7C,YAAI,OAAO,WAAW,GAAG,IAAI,IAAI,kBAAkB,KAAK,KAAK,mBAAmB,KAAK,kBAAkB;AACvG,YAAI,OAAO;AACX,2BAAkB,EAAG,SAAS,OAAO,IAAI,GAAG,MAAM,IAAI;AACtD,2BAAkB,EAAG,SAAS,OAAO,IAAI,GAAG,MAAM,IAAI;AAAA,MACzD;AAAA,MACD,yCAAyC,SAAS,MAAM,MAAM;AAC1D,cAAM,IAAI,MAAM,mBAAmB,MAAM,IAAI,CAAC;AAAA,MACjD;AAAA,MACD,uBAAuB,SAAS,MAAM;AAClC,cAAM,MAAM,YAAY,OAAO,IAAI;AACnC,eAAO;AAAA,MACV;AAAA,MACD,8BAA8B,SAAS,MAAM,MAAM;AAC/C,YAAI;AACJ,YAAI;AACJ,YAAI;AACA,wBAAc;AACd,wBAAc;AACd,kBAAQ,MAAM,mBAAmB,MAAM,IAAI,CAAC;AAAA,QAC5D,UAAsB;AACN,eAAK,gBAAgB,aAAa,aAAa,CAAC;AAAA,QAChE;AAAA,MACS;AAAA,MACD,4BAA4B,SAAS,MAAM,MAAM;AAC7C,cAAM,MAAM,KAAK,SAAS,CAAC;AAC3B,eAAO;AAAA,MACV;AAAA,MACD,4BAA4B,WAAW;AAAE,eAAO,YAAY,SAAU,MAAM,MAAM;AAC9E,gBAAM,MAAM,QAAQ,IAAI,MAAM,IAAI;AAClC,iBAAO;AAAA,QACnB,GAAW,SAAS;AAAA,MAAI;AAAA,MAChB,sCAAsC,SAAS,MAAM,MAAM;AACvD,cAAM,MAAM,KAAK,SAAS,CAAC;AAC3B,eAAO;AAAA,MACV;AAAA,MACD,yCAAyC,SAAS,MAAM,MAAM;AAC1D,cAAM,MAAM,KAAK,IAAI;AACrB,eAAO;AAAA,MACV;AAAA,MACD,uBAAuB,SAAS,MAAM;AAClC,cAAM,MAAM,YAAY,OAAO,IAAI;AACnC,eAAO;AAAA,MACV;AAAA,MACD,+CAA+C,SAAS,MAAM;AAC1D,YAAI;AACJ,YAAI;AACA,mBAAS,gBAAgB;AAAA,QAC5B,SAAQ,GAAG;AACR,mBAAS;AAAA,QACzB;AACY,cAAM,MAAM;AACZ,eAAO;AAAA,MACV;AAAA,MACD,8CAA8C,SAAS,MAAM;AACzD,YAAI;AACJ,YAAI;AACA,mBAAS,gBAAgB;AAAA,QAC5B,SAAQ,GAAG;AACR,mBAAS;AAAA,QACzB;AACY,cAAM,MAAM;AACZ,eAAO;AAAA,MACV;AAAA,MACD,+BAA+B,SAAS,MAAM;AAC1C,cAAM,MAAM,KAAK;AACjB,eAAO;AAAA,MACV;AAAA,MACD,+BAA+B,SAAS,MAAM;AAC1C,cAAM,MAAM,KAAK;AACjB,eAAO;AAAA,MACV;AAAA,MACD,+BAA+B,SAAS,MAAM;AAC1C,cAAM,MAAM,KAAK;AACjB,eAAO;AAAA,MACV;AAAA,MACD,+BAA+B,SAAS,MAAM;AAC1C,cAAM,MAAM,KAAK;AACjB,eAAO;AAAA,MACV;AAAA,MACD,4BAA4B,WAAW;AACnC,cAAM,MAAM,IAAI,MAAO;AACvB,eAAO;AAAA,MACV;AAAA,MACD,4BAA4B,WAAW;AACnC,cAAM,MAAM,IAAI,OAAQ;AACxB,eAAO;AAAA,MACV;AAAA,MACD,4BAA4B,SAAS,MAAM;AACvC,cAAM,MAAM,IAAI,WAAW,IAAI;AAC/B,eAAO;AAAA,MACV;AAAA,MACD,4BAA4B,WAAW;AACnC,cAAM,MAAM,IAAI,MAAO;AACvB,eAAO;AAAA,MACV;AAAA,MACD,wCAAwC,SAAS,MAAM;AACnD,cAAM,MAAM,IAAI,YAAY,SAAS,CAAC;AACtC,eAAO;AAAA,MACV;AAAA,MACD,yCAAyC,SAAS,MAAM,MAAM,MAAM;AAChE,mBAAW,UAAU,IAAI,KAAK,oBAAoB,MAAM,IAAI,GAAG,IAAI;AAAA,MACtE;AAAA,MACD,yCAAyC,SAAS,MAAM,MAAM,MAAM;AAChE,oBAAY,UAAU,IAAI,KAAK,qBAAqB,MAAM,IAAI,GAAG,IAAI;AAAA,MACxE;AAAA,MACD,yCAAyC,SAAS,MAAM,MAAM,MAAM;AAChE,oBAAY,UAAU,IAAI,KAAK,qBAAqB,MAAM,IAAI,GAAG,IAAI;AAAA,MACxE;AAAA,MACD,6BAA6B,SAAS,MAAM,MAAM;AAC9C,cAAM,MAAM,KAAK,KAAK,IAAI;AAC1B,eAAO;AAAA,MACV;AAAA,MACD,4BAA4B,SAAS,MAAM,MAAM,MAAM;AACnD,aAAK,IAAI,qBAAqB,MAAM,IAAI,CAAC;AAAA,MAC5C;AAAA,MACD,4BAA4B,SAAS,MAAM,MAAM,MAAM;AACnD,aAAK,IAAI,IAAI;AAAA,MAChB;AAAA,MACD,4BAA4B,SAAS,MAAM,MAAM,MAAM;AACnD,aAAK,IAAI,MAAM,SAAS,CAAC;AAAA,MAC5B;AAAA,MACD,4BAA4B,WAAW;AAAE,eAAO,YAAY,SAAU,MAAM,MAAM,MAAM;AACpF,gBAAM,MAAM,QAAQ,IAAI,MAAM,MAAM,IAAI;AACxC,iBAAO;AAAA,QACnB,GAAW,SAAS;AAAA,MAAI;AAAA,MAChB,kCAAkC,SAAS,MAAM,MAAM,MAAM;AACzD,aAAK,SAAS,CAAC,IAAI,SAAS;AAAA,MAC/B;AAAA,MACD,8BAA8B,SAAS,MAAM,MAAM;AAC/C,cAAM,MAAM,KAAK;AACjB,cAAM,OAAO,kBAAkB,KAAK,KAAK,mBAAmB,KAAK,kBAAkB;AACnF,cAAM,OAAO;AACb,2BAAkB,EAAG,SAAS,OAAO,IAAI,GAAG,MAAM,IAAI;AACtD,2BAAkB,EAAG,SAAS,OAAO,IAAI,GAAG,MAAM,IAAI;AAAA,MACzD;AAAA,MACD,iCAAiC,SAAS,MAAM,MAAM,MAAM;AACxD,cAAM,MAAM,KAAK,SAAS,SAAS,GAAG,SAAS,CAAC;AAChD,eAAO;AAAA,MACV;AAAA,MACD,iCAAiC,SAAS,MAAM,MAAM,MAAM;AACxD,cAAM,MAAM,KAAK,SAAS,SAAS,GAAG,SAAS,CAAC;AAChD,eAAO;AAAA,MACV;AAAA,MACD,iCAAiC,SAAS,MAAM,MAAM,MAAM;AACxD,cAAM,MAAM,KAAK,SAAS,SAAS,GAAG,SAAS,CAAC;AAChD,eAAO;AAAA,MACV;AAAA,MACD,kCAAkC,SAAS,MAAM;AAE7C,cAAM,MAAM;AACZ,eAAO;AAAA,MACV;AAAA,MACD,kCAAkC,SAAS,MAAM,MAAM;AAEnD,cAAM,MAAM,mBAAmB,MAAM,IAAI;AACzC,eAAO;AAAA,MACV;AAAA,MACD,iCAAiC,WAAW;AACxC,cAAM,QAAQ,KAAK;AACnB,cAAM,SAAS,MAAM,KAAK,CAAC;AAC3B,cAAM,IAAI,GAAG,MAAS;AACtB,cAAM,IAAI,SAAS,GAAG,MAAS;AAC/B,cAAM,IAAI,SAAS,GAAG,IAAI;AAC1B,cAAM,IAAI,SAAS,GAAG,IAAI;AAC1B,cAAM,IAAI,SAAS,GAAG,KAAK;AAAA,MAC9B;AAAA,IACJ;AACD,WAAO;AAAA,MACH,WAAW;AAAA,MACX,2BAA2B;AAAA,IAC9B;AAAA,EACL;AAEiC,EAAC,OAAO,yBAAyB,cAC5D,CAA2C,IAC3C,IAAI,qBAAqB,SAAO,KAAK,wBAAwB,QAAQ,GAAG,CAAC,CAAC;AAChF,QAAM,0BAA2B,OAAO,yBAAyB,cAC3D,EAAE,UAAU,MAAM;AAAA,KAAI,YAAY,MAAM;AAAA,EAAE,EAAA,IAC1C,IAAI,qBAAqB,SAAO,KAAK,uBAAuB,QAAQ,GAAG,CAAC,CAAC;AAC/E,QAAM,0BAA2B,OAAO,yBAAyB,cAC3D,EAAE,UAAU,MAAM;AAAA,KAAI,YAAY,MAAM;AAAA,EAAE,EAAA,IAC1C,IAAI,qBAAqB,SAAO,KAAK,uBAAuB,QAAQ,GAAG,CAAC,CAAC;AAE/E,WAAS,qBAAqB,KAAK;AAC/B,UAAM,MAAM,KAAK,wBAAyB;AAC1C,SAAK,sBAAsB,IAAI,KAAK,GAAG;AACvC,WAAO;AAAA,EACX;AAEA,WAAS,YAAY,KAAK;AAEtB,UAAM,OAAO,OAAO;AACpB,QAAI,QAAQ,YAAY,QAAQ,aAAa,OAAO,MAAM;AACtD,aAAQ,GAAG,GAAG;AAAA,IACtB;AACI,QAAI,QAAQ,UAAU;AAClB,aAAO,IAAI,GAAG;AAAA,IACtB;AACI,QAAI,QAAQ,UAAU;AAClB,YAAM,cAAc,IAAI;AACxB,UAAI,eAAe,MAAM;AACrB,eAAO;AAAA,MACnB,OAAe;AACH,eAAO,UAAU,WAAW;AAAA,MACxC;AAAA,IACA;AACI,QAAI,QAAQ,YAAY;AACpB,YAAM,OAAO,IAAI;AACjB,UAAI,OAAO,QAAQ,YAAY,KAAK,SAAS,GAAG;AAC5C,eAAO,YAAY,IAAI;AAAA,MACnC,OAAe;AACH,eAAO;AAAA,MACnB;AAAA,IACA;AAEI,QAAI,MAAM,QAAQ,GAAG,GAAG;AACpB,YAAM,SAAS,IAAI;AACnB,UAAI,QAAQ;AACZ,UAAI,SAAS,GAAG;AACZ,iBAAS,YAAY,IAAI,CAAC,CAAC;AAAA,MACvC;AACQ,eAAQA,KAAI,GAAGA,KAAI,QAAQA,MAAK;AAC5B,iBAAS,OAAO,YAAY,IAAIA,EAAC,CAAC;AAAA,MAC9C;AACQ,eAAS;AACT,aAAO;AAAA,IACf;AAEI,UAAM,iBAAiB,sBAAsB,KAAK,SAAS,KAAK,GAAG,CAAC;AACpE,QAAI;AACJ,QAAI,kBAAkB,eAAe,SAAS,GAAG;AAC7C,kBAAY,eAAe,CAAC;AAAA,IACpC,OAAW;AAEH,aAAO,SAAS,KAAK,GAAG;AAAA,IAChC;AACI,QAAI,aAAa,UAAU;AAIvB,UAAI;AACA,eAAO,YAAY,KAAK,UAAU,GAAG,IAAI;AAAA,MAC5C,SAAQ,GAAG;AACR,eAAO;AAAA,MACnB;AAAA,IACA;AAEI,QAAI,eAAe,OAAO;AACtB,aAAO,GAAG,IAAI,IAAI,KAAK,IAAI,OAAO;AAAA,EAAK,IAAI,KAAK;AAAA,IACxD;AAEI,WAAO;AAAA,EACX;AAEA,WAAS,qBAAqB,KAAK,KAAK;AACpC,UAAM,QAAQ;AACd,WAAO,sBAAuB,EAAC,SAAS,MAAM,GAAG,MAAM,IAAI,GAAG;AAAA,EAClE;AAEA,WAAS,qBAAqB,KAAK,KAAK;AACpC,UAAM,QAAQ;AACd,WAAO,sBAAuB,EAAC,SAAS,MAAM,GAAG,MAAM,IAAI,GAAG;AAAA,EAClE;AAEA,WAAS,oBAAoB,KAAK,KAAK;AACnC,UAAM,QAAQ;AACd,WAAO,qBAAsB,EAAC,SAAS,MAAM,GAAG,MAAM,IAAI,GAAG;AAAA,EACjE;AAEA,MAAI,wBAAwB;AAC5B,WAAS,qBAAqB;AAC1B,QAAI,0BAA0B,QAAQ,sBAAsB,OAAO,aAAa,QAAS,sBAAsB,OAAO,aAAa,UAAa,sBAAsB,WAAW,KAAK,OAAO,QAAS;AAClM,8BAAwB,IAAI,SAAS,KAAK,OAAO,MAAM;AAAA,IAC/D;AACI,WAAO;AAAA,EACX;AAUA,WAAS,mBAAmB,KAAK,KAAK;AAClC,UAAM,QAAQ;AACd,WAAO,WAAW,KAAK,GAAG;AAAA,EAC9B;AAEA,MAAI,2BAA2B;AAC/B,WAAS,wBAAwB;AAC7B,QAAI,6BAA6B,QAAQ,yBAAyB,eAAe,GAAG;AAChF,iCAA2B,IAAI,YAAY,KAAK,OAAO,MAAM;AAAA,IACrE;AACI,WAAO;AAAA,EACX;AAEA,MAAI,2BAA2B;AAC/B,WAAS,wBAAwB;AAC7B,QAAI,6BAA6B,QAAQ,yBAAyB,eAAe,GAAG;AAChF,iCAA2B,IAAI,YAAY,KAAK,OAAO,MAAM;AAAA,IACrE;AACI,WAAO;AAAA,EACX;AAEA,MAAI,0BAA0B;AAC9B,WAAS,uBAAuB;AAC5B,QAAI,4BAA4B,QAAQ,wBAAwB,eAAe,GAAG;AAC9E,gCAA0B,IAAI,WAAW,KAAK,OAAO,MAAM;AAAA,IACnE;AACI,WAAO;AAAA,EACX;AAEA,WAAS,YAAY,GAAG,MAAM;AAC1B,QAAI;AACA,aAAO,EAAE,MAAM,MAAM,IAAI;AAAA,IAC5B,SAAQ,GAAG;AACR,YAAM,MAAM,qBAAqB,CAAC;AAClC,WAAK,qBAAqB,GAAG;AAAA,IACrC;AAAA,EACA;AAEA,WAAS,WAAWC,IAAG;AACnB,WAAOA,OAAM,UAAaA,OAAM;AAAA,EACpC;AAgBA,WAAS,kBAAkB,KAAK,QAAQ,SAAS;AAC7C,QAAI,YAAY,QAAW;AACvB,YAAM,MAAM,kBAAkB,OAAO,GAAG;AACxC,YAAMC,OAAM,OAAO,IAAI,QAAQ,CAAC,MAAM;AACtC,2BAAsB,EAAC,SAASA,MAAKA,OAAM,IAAI,MAAM,EAAE,IAAI,GAAG;AAC9D,wBAAkB,IAAI;AACtB,aAAOA;AAAA,IACf;AAEI,QAAI,MAAM,IAAI;AACd,QAAI,MAAM,OAAO,KAAK,CAAC,MAAM;AAE7B,UAAM,MAAM,qBAAsB;AAElC,QAAI,SAAS;AAEb,WAAO,SAAS,KAAK,UAAU;AAC3B,YAAM,OAAO,IAAI,WAAW,MAAM;AAClC,UAAI,OAAO,IAAM;AACjB,UAAI,MAAM,MAAM,IAAI;AAAA,IAC5B;AACI,QAAI,WAAW,KAAK;AAChB,UAAI,WAAW,GAAG;AACd,cAAM,IAAI,MAAM,MAAM;AAAA,MAClC;AACQ,YAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,IAAI,SAAS,GAAG,CAAC,MAAM;AAC9D,YAAM,OAAO,uBAAuB,SAAS,MAAM,QAAQ,MAAM,GAAG;AACpE,YAAM,MAAM,kBAAkB,WAAW,KAAK,IAAI;AAElD,gBAAU,IAAI;AACd,YAAM,QAAQ,KAAK,KAAK,QAAQ,CAAC,MAAM;AAAA,IAC/C;AAEI,sBAAkB;AAClB,WAAO;AAAA,EACX;AAEA,WAAS,wBAAwB,KAAK;AAClC,UAAM,QAAQ,KAAK,sBAAsB,IAAI,GAAG;AAChD,SAAK,0BAA0B,GAAG;AAClC,WAAO;AAAA,EACX;AAEA,MAAI,oBAAoB,IAAI,YAAY,SAAS,EAAE,WAAW,MAAM,OAAO,MAAM;AACjF,oBAAkB,OAAQ;AAC1B,QAAM,0BAA0B;AAChC,MAAI,kBAAkB;AACtB,WAAS,WAAW,KAAK,KAAK;AAC1B,uBAAmB;AACnB,QAAI,mBAAmB,yBAAyB;AAC5C,0BAAoB,IAAI,YAAY,SAAS,EAAE,WAAW,MAAM,OAAO,MAAM;AAC7E,wBAAkB,OAAQ;AAC1B,wBAAkB;AAAA,IAC1B;AACI,WAAO,kBAAkB,OAAO,qBAAsB,EAAC,SAAS,KAAK,MAAM,GAAG,CAAC;AAAA,EACnF;AAEA,QAAM,oBAAoB,IAAI,YAAa;AAE3C,MAAI,EAAE,gBAAgB,oBAAoB;AACtC,sBAAkB,aAAa,SAAU,KAAK,MAAM;AAChD,YAAM,MAAM,kBAAkB,OAAO,GAAG;AACxC,WAAK,IAAI,GAAG;AACZ,aAAO;AAAA,QACH,MAAM,IAAI;AAAA,QACV,SAAS,IAAI;AAAA,MAChB;AAAA,IACJ;AAAA,EACL;AAEA,MAAI,kBAAkB;AAEN,MAAA;AAChB,WAAS,oBAAoB,UAAU,QAAQ;AAC3C,WAAO,SAAS;AAEhB,4BAAwB;AAExB,+BAA2B;AAC3B,+BAA2B;AAC3B,8BAA0B;AAC1B,SAAK,iBAAkB;AACvB,WAAO;AAAA,EACX;AAEA,iBAAe,WAAW,QAAQ,SAAS;AACvC,QAAI,OAAO,aAAa,cAAc,kBAAkB,UAAU;AAC9D,UAAI,OAAO,YAAY,yBAAyB,YAAY;AACxD,YAAI;AACA,iBAAO,MAAM,YAAY,qBAAqB,QAAQ,OAAO;AAAA,QAChE,SAAQ,GAAG;AACR,gBAAM,gBAAgB,OAAO,MAAM,qBAAqB,OAAO,IAAI;AAEnE,cAAI,iBAAiB,OAAO,QAAQ,IAAI,cAAc,MAAM,oBAAoB;AAC5E,oBAAQ,KAAK,qMAAqM,CAAC;AAAA,UAEvO,OAAuB;AAAE,kBAAM;AAAA,UAAE;AAAA,QACjC;AAAA,MACA;AAEQ,YAAM,QAAQ,MAAM,OAAO,YAAa;AACxC,aAAO,MAAM,YAAY,YAAY,OAAO,OAAO;AAAA,IAC3D,OAAW;AACH,YAAM,WAAW,MAAM,YAAY,YAAY,QAAQ,OAAO;AAE9D,UAAI,oBAAoB,YAAY,UAAU;AAC1C,eAAO,EAAE,UAAU,OAAQ;AAAA,MACvC,OAAe;AACH,eAAO;AAAA,MACnB;AAAA,IACA;AAEI,aAAS,qBAAqB,MAAM;AAChC,cAAQ,MAAI;AAAA,QACR,KAAK;AAAA,QAAS,KAAK;AAAA,QAAQ,KAAK;AAAW,iBAAO;AAAA,MAC9D;AACQ,aAAO;AAAA,IACf;AAAA,EACA;AAsBA,iBAAe,WAAW,gBAAgB;AACtC,QAAI,SAAS,OAAW,QAAO;AAG/B,QAAI,mBAAmB,QAAW;AAC9B,UAAI,OAAO,eAAe,cAAc,MAAM,OAAO,WAAW;AAC5D,SAAC,EAAC,eAAc,IAAI;AAAA,MAChC,OAAe;AACH,gBAAQ,KAAK,2FAA2F;AAAA,MACpH;AAAA,IACA;AAEI,QAAI,mBAAmB,QAAW;AAC9B,uBAAiB,IAAmD,IAAA,qwm+DAAA,kBAAA;AAAA,IAC5E;AACI,UAAM,UAAU,kBAAmB;AAEnC,QAAI,OAAO,mBAAmB,YAAa,OAAO,YAAY,cAAc,0BAA0B,WAAa,OAAO,QAAQ,cAAc,0BAA0B,KAAM;AAC5K,uBAAiB,MAAM,cAAc;AAAA,IAC7C;AAEI,UAAM,EAAE,SAAiB,IAAI,MAAM,WAAW,MAAM,gBAAgB,OAAO;AAE3E,WAAO,oBAAoB,QAAgB;AAAA,EAC/C;ACtpCA,MAAI,MAAM,CAAE;AACZ,MAAI,KAAM,SAAU,GAAG,IAAI,KAAK,UAAU,IAAI;AAC1C,QAAI,IAAI,IAAI,OAAO,IAAI,EAAE,MAAM,IAAI,EAAE,IAAI,IAAI,gBAAgB,IAAI,KAAK;AAAA,MAClE,IAAI;AAAA,IACP,GAAE,EAAE,MAAM,kBAAmB,CAAA,CAAC,EAAE;AACjC,MAAE,YAAY,SAAU,GAAG;AACvB,UAAI,IAAI,EAAE,MAAM,KAAK,EAAE;AACvB,UAAI,IAAI;AACJ,YAAIC,OAAM,IAAI,MAAM,GAAG,CAAC,CAAC;AACzB,QAAAA,KAAI,MAAM,IAAI,GAAG,CAAC;AAClB,QAAAA,KAAI,QAAQ,GAAG,CAAC;AAChB,WAAGA,MAAK,IAAI;AAAA,MACxB;AAEY,WAAG,MAAM,CAAC;AAAA,IACjB;AACD,MAAE,YAAY,KAAK,QAAQ;AAC3B,WAAO;AAAA,EACX;AAGA,MAAI,KAAK,YAAY,MAAM,aAAa,MAAM;AAE9C,MAAI,OAAO,IAAI,GAAG;AAAA,IAAC;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA;AAAA,IAAgB;AAAA,IAAG;AAAA;AAAA,IAAoB;AAAA,EAAC,CAAC;AAEhJ,MAAI,OAAO,IAAI,GAAG;AAAA,IAAC;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA;AAAA,IAAiB;AAAA,IAAG;AAAA,EAAC,CAAC;AAEvI,MAAI,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;AAEpF,MAAI,OAAO,SAAU,IAAI,OAAO;AAC5B,QAAI,IAAI,IAAI,IAAI,EAAE;AAClB,aAASH,KAAI,GAAGA,KAAI,IAAI,EAAEA,IAAG;AACzB,QAAEA,EAAC,IAAI,SAAS,KAAK,GAAGA,KAAI,CAAC;AAAA,IACrC;AAEI,QAAI,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;AACrB,aAASA,KAAI,GAAGA,KAAI,IAAI,EAAEA,IAAG;AACzB,eAAS,IAAI,EAAEA,EAAC,GAAG,IAAI,EAAEA,KAAI,CAAC,GAAG,EAAE,GAAG;AAClC,UAAE,CAAC,IAAM,IAAI,EAAEA,EAAC,KAAM,IAAKA;AAAA,MACvC;AAAA,IACA;AACI,WAAO,EAAE,GAAM,EAAM;AAAA,EACzB;AACA,MAAI,KAAK,KAAK,MAAM,CAAC,GAAG,KAAK,GAAG,GAAG,QAAQ,GAAG;AAE9C,KAAG,EAAE,IAAI,KAAK,MAAM,GAAG,IAAI;AACxB,MAAC,KAAK,KAAK,MAAM,CAAC,GAAG,KAAK,GAAG;AAEhC,MAAI,MAAM,IAAI,IAAI,KAAK;AACvB,WAAS,IAAI,GAAG,IAAI,OAAO,EAAE,GAAG;AAE5B,QAAI,KAAM,IAAI,UAAW,KAAO,IAAI,UAAW;AAC/C,SAAM,IAAI,UAAW,KAAO,IAAI,UAAW;AAC3C,SAAM,IAAI,UAAW,KAAO,IAAI,SAAW;AAC3C,QAAI,CAAC,MAAO,IAAI,UAAW,KAAO,IAAI,QAAW,MAAO;AAAA,EAC5D;AAIA,MAAI,OAAQ,SAAU,IAAI,IAAI,GAAG;AAC7B,QAAI,IAAI,GAAG;AAEX,QAAIA,KAAI;AAER,QAAI,IAAI,IAAI,IAAI,EAAE;AAElB,WAAOA,KAAI,GAAG,EAAEA,IAAG;AACf,UAAI,GAAGA,EAAC;AACJ,UAAE,EAAE,GAAGA,EAAC,IAAI,CAAC;AAAA,IACzB;AAEI,QAAI,KAAK,IAAI,IAAI,EAAE;AACnB,SAAKA,KAAI,GAAGA,KAAI,IAAI,EAAEA,IAAG;AACrB,SAAGA,EAAC,IAAK,GAAGA,KAAI,CAAC,IAAI,EAAEA,KAAI,CAAC,KAAM;AAAA,IAC1C;AACI,QAAI;AACJ,QAAI,GAAG;AAEH,WAAK,IAAI,IAAI,KAAK,EAAE;AAEpB,UAAI,MAAM,KAAK;AACf,WAAKA,KAAI,GAAGA,KAAI,GAAG,EAAEA,IAAG;AAEpB,YAAI,GAAGA,EAAC,GAAG;AAEP,cAAI,KAAMA,MAAK,IAAK,GAAGA,EAAC;AAExB,cAAI,MAAM,KAAK,GAAGA,EAAC;AAEnB,cAAI,IAAI,GAAG,GAAGA,EAAC,IAAI,CAAC,OAAO;AAE3B,mBAAS,IAAI,KAAM,KAAK,OAAO,GAAI,KAAK,GAAG,EAAE,GAAG;AAE5C,eAAG,IAAI,CAAC,KAAK,GAAG,IAAI;AAAA,UACxC;AAAA,QACA;AAAA,MACA;AAAA,IACA,OACS;AACD,WAAK,IAAI,IAAI,CAAC;AACd,WAAKA,KAAI,GAAGA,KAAI,GAAG,EAAEA,IAAG;AACpB,YAAI,GAAGA,EAAC,GAAG;AACP,aAAGA,EAAC,IAAI,IAAI,GAAG,GAAGA,EAAC,IAAI,CAAC,GAAG,KAAM,KAAK,GAAGA,EAAC;AAAA,QAC1D;AAAA,MACA;AAAA,IACA;AACI,WAAO;AAAA,EACX;AAEA,MAAI,MAAM,IAAI,GAAG,GAAG;AACpB,WAAS,IAAI,GAAG,IAAI,KAAK,EAAE;AACvB,QAAI,CAAC,IAAI;AACb,WAAS,IAAI,KAAK,IAAI,KAAK,EAAE;AACzB,QAAI,CAAC,IAAI;AACb,WAAS,IAAI,KAAK,IAAI,KAAK,EAAE;AACzB,QAAI,CAAC,IAAI;AACb,WAAS,IAAI,KAAK,IAAI,KAAK,EAAE;AACzB,QAAI,CAAC,IAAI;AAEb,MAAI,MAAM,IAAI,GAAG,EAAE;AACnB,WAAS,IAAI,GAAG,IAAI,IAAI,EAAE;AACtB,QAAI,CAAC,IAAI;AAE4B,MAAA,OAAqB,qBAAK,KAAK,GAAG,CAAC;AAEnC,MAAA,OAAqB,qBAAK,KAAK,GAAG,CAAC;AAE5E,MAAI,MAAM,SAAU,GAAG;AACnB,QAAI,IAAI,EAAE,CAAC;AACX,aAASA,KAAI,GAAGA,KAAI,EAAE,QAAQ,EAAEA,IAAG;AAC/B,UAAI,EAAEA,EAAC,IAAI;AACP,YAAI,EAAEA,EAAC;AAAA,IACnB;AACI,WAAO;AAAA,EACX;AAEA,MAAI,OAAO,SAAU,GAAG,GAAG,GAAG;AAC1B,QAAI,IAAK,IAAI,IAAK;AAClB,YAAS,EAAE,CAAC,IAAK,EAAE,IAAI,CAAC,KAAK,OAAQ,IAAI,KAAM;AAAA,EACnD;AAEA,MAAI,SAAS,SAAU,GAAG,GAAG;AACzB,QAAI,IAAK,IAAI,IAAK;AAClB,YAAS,EAAE,CAAC,IAAK,EAAE,IAAI,CAAC,KAAK,IAAM,EAAE,IAAI,CAAC,KAAK,QAAS,IAAI;AAAA,EAChE;AAEA,MAAI,OAAO,SAAU,GAAG;AAAE,YAAS,IAAI,KAAK,IAAK;AAAA,EAAI;AAGrD,MAAI,MAAM,SAAU,GAAG,GAAG,GAAG;AACzB,QAAI,KAAK,QAAQ,IAAI;AACjB,UAAI;AACR,QAAI,KAAK,QAAQ,IAAI,EAAE;AACnB,UAAI,EAAE;AAEV,WAAO,IAAI,GAAG,EAAE,SAAS,GAAG,CAAC,CAAC;AAAA,EAClC;AAsBA,MAAI,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACJ;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEJ;AAEA,MAAI,MAAM,SAAU,KAAK,KAAK,IAAI;AAC9B,QAAI,IAAI,IAAI,MAAM,OAAO,GAAG,GAAG,CAAC;AAChC,MAAE,OAAO;AACT,QAAI,MAAM;AACN,YAAM,kBAAkB,GAAG,GAAG;AAClC,QAAI,CAAC;AACD,YAAM;AACV,WAAO;AAAA,EACX;AAEA,MAAI,QAAQ,SAAU,KAAK,IAAI,KAAK,MAAM;AAEtC,QAAI,KAAK,IAAI,QAAQ,KAAK,OAAO,KAAK,SAAS;AAC/C,QAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG;AACnB,aAAO,OAAO,IAAI,GAAG,CAAC;AAC1B,QAAI,QAAQ,CAAC;AAEb,QAAI,SAAS,SAAS,GAAG,KAAK;AAE9B,QAAI,OAAO,GAAG;AAEd,QAAI;AACA,YAAM,IAAI,GAAG,KAAK,CAAC;AAEvB,QAAI,OAAO,SAAUI,IAAG;AACpB,UAAI,KAAK,IAAI;AAEb,UAAIA,KAAI,IAAI;AAER,YAAI,OAAO,IAAI,GAAG,KAAK,IAAI,KAAK,GAAGA,EAAC,CAAC;AACrC,aAAK,IAAI,GAAG;AACZ,cAAM;AAAA,MAClB;AAAA,IACK;AAED,QAAI,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,KAAK,GAAG,GAAG,MAAM,GAAG,GAAG,MAAM,GAAG;AAEnG,QAAI,OAAO,KAAK;AAChB,OAAG;AACC,UAAI,CAAC,IAAI;AAEL,gBAAQ,KAAK,KAAK,KAAK,CAAC;AAExB,YAAI,OAAO,KAAK,KAAK,MAAM,GAAG,CAAC;AAC/B,eAAO;AACP,YAAI,CAAC,MAAM;AAEP,cAAI,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,IAAK,IAAI,IAAI,CAAC,KAAK,GAAI,IAAI,IAAI;AACnE,cAAI,IAAI,IAAI;AACR,gBAAI;AACA,kBAAI,CAAC;AACT;AAAA,UACpB;AAEgB,cAAI;AACA,iBAAK,KAAK,CAAC;AAEf,cAAI,IAAI,IAAI,SAAS,GAAG,CAAC,GAAG,EAAE;AAE9B,aAAG,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG,GAAG,IAAI;AAC3C;AAAA,QAChB,WACqB,QAAQ;AACb,eAAK,MAAM,KAAK,MAAM,MAAM,GAAG,MAAM;AAAA,iBAChC,QAAQ,GAAG;AAEhB,cAAI,OAAO,KAAK,KAAK,KAAK,EAAE,IAAI,KAAK,QAAQ,KAAK,KAAK,MAAM,IAAI,EAAE,IAAI;AACvE,cAAI,KAAK,OAAO,KAAK,KAAK,MAAM,GAAG,EAAE,IAAI;AACzC,iBAAO;AAEP,cAAI,MAAM,IAAI,GAAG,EAAE;AAEnB,cAAI,MAAM,IAAI,GAAG,EAAE;AACnB,mBAASJ,KAAI,GAAGA,KAAI,OAAO,EAAEA,IAAG;AAE5B,gBAAI,KAAKA,EAAC,CAAC,IAAI,KAAK,KAAK,MAAMA,KAAI,GAAG,CAAC;AAAA,UAC3D;AACgB,iBAAO,QAAQ;AAEf,cAAI,MAAM,IAAI,GAAG,GAAG,UAAU,KAAK,OAAO;AAE1C,cAAI,MAAM,KAAK,KAAK,KAAK,CAAC;AAC1B,mBAASA,KAAI,GAAGA,KAAI,MAAK;AACrB,gBAAI,IAAI,IAAI,KAAK,KAAK,KAAK,MAAM,CAAC;AAElC,mBAAO,IAAI;AAEX,gBAAI,IAAI,KAAK;AAEb,gBAAI,IAAI,IAAI;AACR,kBAAIA,IAAG,IAAI;AAAA,YACnC,OACyB;AAED,kBAAI,IAAI,GAAG,IAAI;AACf,kBAAI,KAAK;AACL,oBAAI,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,IAAIA,KAAI,CAAC;AAAA,uBAC7C,KAAK;AACV,oBAAI,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,OAAO;AAAA,uBAC7B,KAAK;AACV,oBAAI,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,OAAO;AACzC,qBAAO;AACH,oBAAIA,IAAG,IAAI;AAAA,YACvC;AAAA,UACA;AAEgB,cAAI,KAAK,IAAI,SAAS,GAAG,IAAI,GAAG,KAAK,IAAI,SAAS,IAAI;AAEtD,gBAAM,IAAI,EAAE;AAEZ,gBAAM,IAAI,EAAE;AACZ,eAAK,KAAK,IAAI,KAAK,CAAC;AACpB,eAAK,KAAK,IAAI,KAAK,CAAC;AAAA,QACpC;AAEgB,cAAI,CAAC;AACT,YAAI,MAAM,MAAM;AACZ,cAAI;AACA,gBAAI,CAAC;AACT;AAAA,QAChB;AAAA,MACA;AAGQ,UAAI;AACA,aAAK,KAAK,MAAM;AACpB,UAAI,OAAO,KAAK,OAAO,GAAG,OAAO,KAAK,OAAO;AAC7C,UAAI,OAAO;AACX,eAAQ,OAAO,KAAK;AAEhB,YAAI,IAAI,GAAG,OAAO,KAAK,GAAG,IAAI,GAAG,GAAG,MAAM,KAAK;AAC/C,eAAO,IAAI;AACX,YAAI,MAAM,MAAM;AACZ,cAAI;AACA,gBAAI,CAAC;AACT;AAAA,QAChB;AACY,YAAI,CAAC;AACD,cAAI,CAAC;AACT,YAAI,MAAM;AACN,cAAI,IAAI,IAAI;AAAA,iBACP,OAAO,KAAK;AACjB,iBAAO,KAAK,KAAK;AACjB;AAAA,QAChB,OACiB;AACD,cAAI,MAAM,MAAM;AAEhB,cAAI,MAAM,KAAK;AAEX,gBAAIA,KAAI,MAAM,KAAK,IAAI,KAAKA,EAAC;AAC7B,kBAAM,KAAK,KAAK,MAAM,KAAK,KAAK,CAAC,IAAI,GAAGA,EAAC;AACzC,mBAAO;AAAA,UAC3B;AAEgB,cAAI,IAAI,GAAG,OAAO,KAAK,GAAG,IAAI,GAAG,GAAG,OAAO,KAAK;AAChD,cAAI,CAAC;AACD,gBAAI,CAAC;AACT,iBAAO,IAAI;AACX,cAAI,KAAK,GAAG,IAAI;AAChB,cAAI,OAAO,GAAG;AACV,gBAAI,IAAI,KAAK,IAAI;AACjB,kBAAM,OAAO,KAAK,GAAG,KAAK,KAAK,KAAK,GAAG,OAAO;AAAA,UAClE;AACgB,cAAI,MAAM,MAAM;AACZ,gBAAI;AACA,kBAAI,CAAC;AACT;AAAA,UACpB;AACgB,cAAI;AACA,iBAAK,KAAK,MAAM;AACpB,cAAI,MAAM,KAAK;AACf,cAAI,KAAK,IAAI;AACT,gBAAI,QAAQ,KAAK,IAAI,OAAO,KAAK,IAAI,IAAI,GAAG;AAC5C,gBAAI,QAAQ,KAAK;AACb,kBAAI,CAAC;AACT,mBAAO,KAAK,MAAM,EAAE;AAChB,kBAAI,EAAE,IAAI,KAAK,QAAQ,EAAE;AAAA,UACjD;AACgB,iBAAO,KAAK,KAAK,EAAE;AACf,gBAAI,EAAE,IAAI,IAAI,KAAK,EAAE;AAAA,QACzC;AAAA,MACA;AACQ,SAAG,IAAI,IAAI,GAAG,IAAI,MAAM,GAAG,IAAI,IAAI,GAAG,IAAI;AAC1C,UAAI;AACA,gBAAQ,GAAG,GAAG,IAAI,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI;AAAA,IAChD,SAAQ,CAAC;AAEV,WAAO,MAAM,IAAI,UAAU,QAAQ,IAAI,KAAK,GAAG,EAAE,IAAI,IAAI,SAAS,GAAG,EAAE;AAAA,EAC3E;AAoOA,MAAI,KAAmB,oBAAI,GAAG,CAAC;AAgM/B,MAAI,MAAM,SAAU,GAAG,GAAG;AACtB,QAAI,IAAI,CAAE;AACV,aAAS,KAAK;AACV,QAAE,CAAC,IAAI,EAAE,CAAC;AACd,aAAS,KAAK;AACV,QAAE,CAAC,IAAI,EAAE,CAAC;AACd,WAAO;AAAA,EACX;AAQA,MAAI,OAAO,SAAU,IAAI,OAAOK,KAAI;AAChC,QAAI,KAAK,GAAI;AACb,QAAI,KAAK,GAAG,SAAU;AACtB,QAAI,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,YAAY,GAAG,CAAC,EAAE,QAAQ,QAAQ,EAAE,EAAE,MAAM,GAAG;AACzF,aAASL,KAAI,GAAGA,KAAI,GAAG,QAAQ,EAAEA,IAAG;AAChC,UAAI,IAAI,GAAGA,EAAC,GAAG,IAAI,GAAGA,EAAC;AACvB,UAAI,OAAO,KAAK,YAAY;AACxB,iBAAS,MAAM,IAAI;AACnB,YAAI,OAAO,EAAE,SAAU;AACvB,YAAI,EAAE,WAAW;AAEb,cAAI,KAAK,QAAQ,eAAe,KAAK,IAAI;AACrC,gBAAI,QAAQ,KAAK,QAAQ,KAAK,CAAC,IAAI;AACnC,qBAAS,KAAK,MAAM,OAAO,KAAK,QAAQ,KAAK,KAAK,CAAC;AAAA,UACvE,OACqB;AACD,qBAAS;AACT,qBAAS,KAAK,EAAE;AACZ,uBAAS,MAAM,IAAI,gBAAgB,IAAI,MAAM,EAAE,UAAU,CAAC,EAAE,SAAU;AAAA,UAC9F;AAAA,QACA;AAEgB,mBAAS;AAAA,MACzB;AAEY,QAAAK,IAAG,CAAC,IAAI;AAAA,IACpB;AACI,WAAO;AAAA,EACX;AACA,MAAI,KAAK,CAAE;AAEX,MAAI,OAAO,SAAU,GAAG;AACpB,QAAI,KAAK,CAAE;AACX,aAAS,KAAK,GAAG;AACb,UAAI,EAAE,CAAC,EAAE,QAAQ;AACb,WAAG,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,GAAG,MAAM;AAAA,MAC9D;AAAA,IACA;AACI,WAAO;AAAA,EACX;AAEA,MAAI,OAAO,SAAU,KAAK,MAAM,IAAI,IAAI;AACpC,QAAI,CAAC,GAAG,EAAE,GAAG;AACT,UAAI,QAAQ,IAAI,OAAO,CAAE,GAAE,IAAI,IAAI,SAAS;AAC5C,eAASL,KAAI,GAAGA,KAAI,GAAG,EAAEA;AACrB,gBAAQ,KAAK,IAAIA,EAAC,GAAG,OAAO,IAAI;AACpC,SAAG,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,OAAO,IAAI,GAAG,GAAG,KAAM;AAAA,IAC1D;AACI,QAAIK,MAAK,IAAI,CAAA,GAAI,GAAG,EAAE,EAAE,CAAC;AACzB,WAAO,GAAG,GAAG,EAAE,EAAE,IAAI,4EAA4E,KAAK,SAAQ,IAAK,KAAK,IAAIA,KAAI,KAAKA,GAAE,GAAG,EAAE;AAAA,EAChJ;AAEA,MAAI,SAAS,WAAY;AAAE,WAAO,CAAC,IAAI,KAAK,KAAK,MAAM,MAAM,MAAM,IAAI,IAAI,MAAM,MAAM,KAAK,IAAI,MAAM,KAAK,MAAM,QAAQ,MAAM,KAAK,KAAK,OAAO,aAAa,KAAK,IAAI;AAAA,EAAI;AAW1K,MAAI,MAAM,SAAU,KAAK;AAAE,WAAO,YAAY,KAAK,CAAC,IAAI,MAAM,CAAC;AAAA,EAAI;AAEnE,MAAI,OAAO,SAAU,GAAG;AAAE,WAAO,KAAK;AAAA,MAClC,KAAK,EAAE,QAAQ,IAAI,GAAG,EAAE,IAAI;AAAA,MAC5B,YAAY,EAAE;AAAA,IAClB;AAAA,EAAI;AAEJ,MAAI,QAAQ,SAAU,KAAK,MAAM,KAAK,MAAM,IAAI,IAAI;AAChD,QAAI,IAAI,KAAK,KAAK,MAAM,IAAI,SAAUF,MAAKG,MAAK;AAC5C,QAAE,UAAW;AACb,SAAGH,MAAKG,IAAG;AAAA,IACnB,CAAK;AACD,MAAE,YAAY,CAAC,KAAK,IAAI,GAAG,KAAK,UAAU,CAAC,IAAI,MAAM,IAAI,CAAA,CAAE;AAC3D,WAAO,WAAY;AAAE,QAAE,UAAS;AAAA,IAAK;AAAA,EACzC;AAgDA,MAAI,KAAK,SAAU,GAAG,GAAG;AAAE,WAAO,EAAE,CAAC,IAAK,EAAE,IAAI,CAAC,KAAK;AAAA,EAAK;AAE3D,MAAI,KAAK,SAAU,GAAG,GAAG;AAAE,YAAQ,EAAE,CAAC,IAAK,EAAE,IAAI,CAAC,KAAK,IAAM,EAAE,IAAI,CAAC,KAAK,KAAO,EAAE,IAAI,CAAC,KAAK,QAAS;AAAA,EAAI;AACzG,MAAI,KAAK,SAAU,GAAG,GAAG;AAAE,WAAO,GAAG,GAAG,CAAC,IAAK,GAAG,GAAG,IAAI,CAAC,IAAI;AAAA,EAAc;AAoB3E,MAAI,MAAM,SAAU,GAAG;AACnB,QAAI,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,KAAK;AACrC,UAAI,GAAG,mBAAmB;AAC9B,QAAI,MAAM,EAAE,CAAC;AACb,QAAI,KAAK;AACT,QAAI,MAAM;AACN,aAAO,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,KAAK;AACjC,aAAS,MAAM,OAAO,IAAI,MAAM,OAAO,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,EAAE,IAAI;AAChE;AACJ,WAAO,MAAM,MAAM;AAAA,EACvB;AA+IA,MAAI,UAAyB,2BAAY;AACrC,aAASC,SAAQ,MAAM,IAAI;AAEvB,UAAI,OAAO,QAAQ;AACf,aAAK,MAAM,OAAO,CAAE;AACxB,WAAK,SAAS;AACd,UAAI,OAAO,QAAQ,KAAK,cAAc,KAAK,WAAW,SAAS,MAAM;AACrE,WAAK,IAAI,EAAE,GAAG,GAAG,GAAG,OAAO,KAAK,SAAS,EAAG;AAC5C,WAAK,IAAI,IAAI,GAAG,KAAK;AACrB,WAAK,IAAI,IAAI,GAAG,CAAC;AACjB,UAAI;AACA,aAAK,EAAE,IAAI,IAAI;AAAA,IAC3B;AACI,IAAAA,SAAQ,UAAU,IAAI,SAAU,GAAG;AAC/B,UAAI,CAAC,KAAK;AACN,YAAI,CAAC;AACT,UAAI,KAAK;AACL,YAAI,CAAC;AACT,UAAI,CAAC,KAAK,EAAE;AACR,aAAK,IAAI;AAAA,eACJ,EAAE,QAAQ;AACf,YAAI,IAAI,IAAI,GAAG,KAAK,EAAE,SAAS,EAAE,MAAM;AACvC,UAAE,IAAI,KAAK,CAAC,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI;AAAA,MAC7D;AAAA,IACK;AACD,IAAAA,SAAQ,UAAU,IAAI,SAAU,OAAO;AACnC,WAAK,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS;AAC/B,UAAI,MAAM,KAAK,EAAE;AACjB,UAAI,KAAK,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AACrC,WAAK,OAAO,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;AAC1C,WAAK,IAAI,IAAI,IAAI,KAAK,EAAE,IAAI,KAAK,GAAG,KAAK,EAAE,IAAI,KAAK,EAAE;AACtD,WAAK,IAAI,IAAI,KAAK,GAAI,KAAK,EAAE,IAAI,IAAK,CAAC,GAAG,KAAK,EAAE,KAAK;AAAA,IACzD;AAMD,IAAAA,SAAQ,UAAU,OAAO,SAAU,OAAO,OAAO;AAC7C,WAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK;AAAA,IAC9B;AACD,WAAOA;AAAA,EACX;AAkBO,WAAS,QAAQ,MAAM,MAAM,IAAI;AACpC,QAAI,CAAC;AACD,WAAK,MAAM,OAAO,CAAE;AACxB,QAAI,OAAO,MAAM;AACb,UAAI,CAAC;AACT,WAAO,MAAM,MAAM,MAAM;AAAA,MACrB;AAAA,IACR,GAAO,SAAU,IAAI;AAAE,aAAO,IAAI,YAAY,GAAG,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAAA,IAAI,GAAE,GAAG,EAAE;AAAA,EACtF;AAOO,WAAS,YAAY,MAAM,MAAM;AACpC,WAAO,MAAM,MAAM,EAAE,GAAG,EAAG,GAAE,QAAQ,KAAK,KAAK,QAAQ,KAAK,UAAU;AAAA,EAC1E;AAqFA,MAAI,SAAwB,2BAAY;AACpC,aAASC,QAAO,MAAM,IAAI;AACtB,WAAK,IAAI;AACT,WAAK,IAAI;AACT,cAAQ,KAAK,MAAM,MAAM,EAAE;AAAA,IACnC;AAMI,IAAAA,QAAO,UAAU,OAAO,SAAU,OAAO,OAAO;AAC5C,cAAQ,UAAU,EAAE,KAAK,MAAM,KAAK;AACpC,WAAK,KAAK,MAAM;AAChB,UAAI,KAAK,GAAG;AACR,YAAI,IAAI,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;AAClC,YAAI,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI;AAChC,YAAI,IAAI,EAAE,QAAQ;AACd,cAAI,CAAC;AACD;AAAA,QACpB,WACqB,KAAK,IAAI,KAAK,KAAK,UAAU;AAClC,eAAK,SAAS,KAAK,IAAI,EAAE,MAAM;AAAA,QAC/C;AACY,aAAK,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,IAAI;AAAA,MAC7C;AAGQ,cAAQ,UAAU,EAAE,KAAK,MAAM,KAAK;AAEpC,UAAI,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO;AACjC,aAAK,IAAI,KAAK,KAAK,EAAE,CAAC,IAAI;AAC1B,aAAK,IAAI,EAAE,GAAG,EAAG;AACjB,aAAK,IAAI,IAAI,GAAG,CAAC;AACjB,aAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK;AAAA,MACtC;AAAA,IACK;AACD,WAAOA;AAAA,EACX;AA+TA,MAAI,KAAK,OAAO,eAAe,eAA6B,oBAAI,YAAa;AAG7E,MAAI;AACA,OAAG,OAAO,IAAI,EAAE,QAAQ,KAAI,CAAE;AAAA,EAElC,SACO,GAAG;AAAA,EAAA;AAEV,MAAI,QAAQ,SAAU,GAAG;AACrB,aAAS,IAAI,IAAIR,KAAI,OAAK;AACtB,UAAI,IAAI,EAAEA,IAAG;AACb,UAAI,MAAM,IAAI,QAAQ,IAAI,QAAQ,IAAI;AACtC,UAAIA,KAAI,KAAK,EAAE;AACX,eAAO,EAAE,GAAG,GAAG,GAAG,IAAI,GAAGA,KAAI,CAAC,EAAG;AACrC,UAAI,CAAC;AACD,aAAK,OAAO,aAAa,CAAC;AAAA,eACrB,MAAM,GAAG;AACd,cAAM,IAAI,OAAO,MAAM,EAAEA,IAAG,IAAI,OAAO,MAAM,EAAEA,IAAG,IAAI,OAAO,IAAK,EAAEA,IAAG,IAAI,MAAO,OAC9E,KAAK,OAAO,aAAa,QAAS,KAAK,IAAK,QAAS,IAAI,IAAK;AAAA,MAC9E,WACiB,KAAK;AACV,aAAK,OAAO,cAAc,IAAI,OAAO,IAAK,EAAEA,IAAG,IAAI,EAAG;AAAA;AAEtD,aAAK,OAAO,cAAc,IAAI,OAAO,MAAM,EAAEA,IAAG,IAAI,OAAO,IAAK,EAAEA,IAAG,IAAI,EAAG;AAAA,IACxF;AAAA,EACA;AA4HO,WAAS,UAAU,KAAK,QAAQ;AACnC,QAAI,QAAQ;AACR,UAAI,IAAI;AACR,eAASA,KAAI,GAAGA,KAAI,IAAI,QAAQA,MAAK;AACjC,aAAK,OAAO,aAAa,MAAM,MAAM,IAAI,SAASA,IAAGA,KAAI,KAAK,CAAC;AACnE,aAAO;AAAA,IACf,WACa,IAAI;AACT,aAAO,GAAG,OAAO,GAAG;AAAA,IAC5B,OACS;AACD,UAAIS,MAAK,MAAM,GAAG,GAAG,IAAIA,IAAG,GAAG,IAAIA,IAAG;AACtC,UAAI,EAAE;AACF,YAAI,CAAC;AACT,aAAO;AAAA,IACf;AAAA,EACA;AAKA,MAAI,OAAO,SAAU,GAAG,GAAG;AAAE,WAAO,IAAI,KAAK,GAAG,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG,IAAI,EAAE;AAAA,EAAI;AAE7E,MAAI,KAAK,SAAU,GAAG,GAAG,GAAG;AACxB,QAAI,MAAM,GAAG,GAAG,IAAI,EAAE,GAAG,KAAK,UAAU,EAAE,SAAS,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,GAAG,KAAK,IAAI,KAAK,KAAK,KAAK,GAAG,GAAG,IAAI,EAAE;AACvI,QAAIA,MAAK,KAAK,MAAM,aAAa,KAAK,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,KAAKA,IAAG,CAAC,GAAG,KAAKA,IAAG,CAAC,GAAG,MAAMA,IAAG,CAAC;AACrH,WAAO,CAAC,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG;AAAA,EAC9E;AAEA,MAAI,OAAO,SAAU,GAAG,GAAG;AACvB,WAAO,GAAG,GAAG,CAAC,KAAK,GAAG,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC;AACtC;AACJ,WAAO,CAAC,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;AAAA,EACtD;AAwrBA,MAAI,KAAK,OAAO,kBAAkB,aAAa,iBAAiB,OAAO,cAAc,aAAa,aAAa,SAAU,IAAI;AAAE,OAAI;AAAA,EAAG;AAC/H,WAAS,MAAM,MAAM,MAAM,IAAI;AAClC,QAAI,CAAC;AACD,WAAK,MAAM,OAAO,CAAE;AACxB,QAAI,OAAO,MAAM;AACb,UAAI,CAAC;AACT,QAAI,OAAO,CAAE;AACb,QAAI,OAAO,WAAY;AACnB,eAAST,KAAI,GAAGA,KAAI,KAAK,QAAQ,EAAEA;AAC/B,aAAKA,EAAC,EAAG;AAAA,IAChB;AACD,QAAI,QAAQ,CAAE;AACd,QAAI,MAAM,SAAU,GAAG,GAAG;AACtB,SAAG,WAAY;AAAE,WAAG,GAAG,CAAC;AAAA,MAAE,CAAE;AAAA,IAC/B;AACD,OAAG,WAAY;AAAE,YAAM;AAAA,IAAG,CAAE;AAC5B,QAAI,IAAI,KAAK,SAAS;AACtB,WAAO,GAAG,MAAM,CAAC,KAAK,WAAW,EAAE,GAAG;AAClC,UAAI,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO;AAC/B,YAAI,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI;AACvB,eAAO;AAAA,MACnB;AAAA,IACA;AAEI,QAAI,MAAM,GAAG,MAAM,IAAI,CAAC;AACxB,QAAI,KAAK;AACL,UAAI,IAAI;AACR,UAAI,IAAI,GAAG,MAAM,IAAI,EAAE;AACvB,UAAI,IAAI,KAAK,cAAc,KAAK;AAChC,UAAI,GAAG;AACH,YAAI,KAAK,GAAG,MAAM,IAAI,EAAE;AACxB,YAAI,GAAG,MAAM,EAAE,KAAK;AACpB,YAAI,GAAG;AACH,cAAI,MAAM,GAAG,MAAM,KAAK,EAAE;AAC1B,cAAI,GAAG,MAAM,KAAK,EAAE;AAAA,QACpC;AAAA,MACA;AACQ,UAAI,OAAO,QAAQ,KAAK;AACxB,UAAI,UAAU,SAAUA,IAAG;AACvB,YAAIS,MAAK,GAAG,MAAM,GAAG,CAAC,GAAG,MAAMA,IAAG,CAAC,GAAG,KAAKA,IAAG,CAAC,GAAG,KAAKA,IAAG,CAAC,GAAG,KAAKA,IAAG,CAAC,GAAG,KAAKA,IAAG,CAAC,GAAG,MAAMA,IAAG,CAAC,GAAG,IAAI,KAAK,MAAM,GAAG;AACrH,YAAI;AACJ,YAAI,MAAM,SAAUC,IAAG,GAAG;AACtB,cAAIA,IAAG;AACH,iBAAM;AACN,gBAAIA,IAAG,IAAI;AAAA,UAC/B,OACqB;AACD,gBAAI;AACA,oBAAM,EAAE,IAAI;AAChB,gBAAI,CAAC,EAAE;AACH,kBAAI,MAAM,KAAK;AAAA,UACvC;AAAA,QACa;AACD,YAAI,CAAC,QAAQ,KAAK;AAAA,UACd,MAAM;AAAA,UACN,MAAM;AAAA,UACN,cAAc;AAAA,UACd,aAAa;AAAA,QAC7B,CAAa,GAAG;AACA,cAAI,CAAC;AACD,gBAAI,MAAM,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;AAAA,mBACzB,OAAO,GAAG;AACf,gBAAI,OAAO,KAAK,SAAS,GAAG,IAAI,EAAE;AAElC,gBAAI,KAAK,UAAU,KAAK,MAAM,IAAI;AAC9B,kBAAI;AACA,oBAAI,MAAM,YAAY,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,EAAC,CAAE,CAAC;AAAA,cAC5E,SAC+BA,IAAG;AACN,oBAAIA,IAAG,IAAI;AAAA,cACvC;AAAA,YACA;AAEwB,mBAAK,KAAK,QAAQ,MAAM,EAAE,MAAM,GAAE,GAAI,GAAG,CAAC;AAAA,UAClE;AAEoB,gBAAI,IAAI,IAAI,8BAA8B,KAAK,CAAC,GAAG,IAAI;AAAA,QAC3E;AAEgB,cAAI,MAAM,IAAI;AAAA,MACrB;AACD,eAASV,KAAI,GAAGA,KAAI,GAAG,EAAEA,IAAG;AACxB,gBAAQA,EAAC;AAAA,MACrB;AAAA,IACA;AAEQ,UAAI,MAAM,EAAE;AAChB,WAAO;AAAA,EACX;AAQO,WAAS,UAAU,MAAM,MAAM;AAClC,QAAI,QAAQ,CAAE;AACd,QAAI,IAAI,KAAK,SAAS;AACtB,WAAO,GAAG,MAAM,CAAC,KAAK,WAAW,EAAE,GAAG;AAClC,UAAI,CAAC,KAAK,KAAK,SAAS,IAAI;AACxB,YAAI,EAAE;AAAA,IAClB;AAEI,QAAI,IAAI,GAAG,MAAM,IAAI,CAAC;AACtB,QAAI,CAAC;AACD,aAAO,CAAE;AACb,QAAI,IAAI,GAAG,MAAM,IAAI,EAAE;AACvB,QAAI,IAAI,KAAK,cAAc,KAAK;AAChC,QAAI,GAAG;AACH,UAAI,KAAK,GAAG,MAAM,IAAI,EAAE;AACxB,UAAI,GAAG,MAAM,EAAE,KAAK;AACpB,UAAI,GAAG;AACH,YAAI,GAAG,MAAM,KAAK,EAAE;AACpB,YAAI,GAAG,MAAM,KAAK,EAAE;AAAA,MAChC;AAAA,IACA;AACI,QAAI,OAAO,QAAQ,KAAK;AACxB,aAASA,KAAI,GAAGA,KAAI,GAAG,EAAEA,IAAG;AACxB,UAAIS,MAAK,GAAG,MAAM,GAAG,CAAC,GAAG,MAAMA,IAAG,CAAC,GAAG,KAAKA,IAAG,CAAC,GAAG,KAAKA,IAAG,CAAC,GAAG,KAAKA,IAAG,CAAC,GAAG,KAAKA,IAAG,CAAC,GAAG,MAAMA,IAAG,CAAC,GAAG,IAAI,KAAK,MAAM,GAAG;AACrH,UAAI;AACJ,UAAI,CAAC,QAAQ,KAAK;AAAA,QACd,MAAM;AAAA,QACN,MAAM;AAAA,QACN,cAAc;AAAA,QACd,aAAa;AAAA,MACzB,CAAS,GAAG;AACA,YAAI,CAAC;AACD,gBAAM,EAAE,IAAI,IAAI,MAAM,GAAG,IAAI,EAAE;AAAA,iBAC1B,OAAO;AACZ,gBAAM,EAAE,IAAI,YAAY,KAAK,SAAS,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,EAAC,CAAE;AAAA;AAErE,cAAI,IAAI,8BAA8B,GAAG;AAAA,MACzD;AAAA,IACA;AACI,WAAO;AAAA,EACX;AAAA,ECxmFA;AAAA;AAAA;AAAA;AAAA;AAKA,QAAM,WAAW;AAguCjB,QAAM,eAAe;AAQrB,QAAM,iBAAiB;AAQvB,QAAM,uBAAuB;AAQ7B,QAAM,iBAAiB;AAQvB,QAAM,eAAe;AAqjBrB,WAAS,MAAO,OAAO,KAAKE,MAAM;AAEjC,WAAO,KAAK,IAAK,KAAK,KAAK,IAAKA,MAAK,MAAS;AAAA,EAE/C;AAUA,WAAS,gBAAiB,GAAG,GAAI;AAIhC,YAAW,IAAI,IAAM,KAAM;AAAA,EAE5B;AAqDA,WAAS,KAAMV,IAAG,GAAG,GAAI;AAExB,YAAS,IAAI,KAAMA,KAAI,IAAI;AAAA,EAE5B;AAAA,EA28CA,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUhB,YAAaA,KAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAI;AASzC,WAAK,eAAe;AAEpB,WAAK,KAAKA;AACV,WAAK,KAAK;AACV,WAAK,KAAK;AACV,WAAK,KAAK;AAAA,IAEZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAeC,OAAO,UAAW,KAAK,WAAW,MAAM,YAAY,MAAM,YAAY,GAAI;AAIzE,UAAI,KAAK,KAAM,aAAa,CAAG,GAC9B,KAAK,KAAM,aAAa,CAAG,GAC3B,KAAK,KAAM,aAAa,CAAG,GAC3B,KAAK,KAAM,aAAa,CAAG;AAE5B,YAAM,KAAK,KAAM,aAAa,CAAG,GAChC,KAAK,KAAM,aAAa,CAAG,GAC3B,KAAK,KAAM,aAAa,CAAG,GAC3B,KAAK,KAAM,aAAa,CAAG;AAE5B,UAAK,MAAM,GAAI;AAEd,YAAK,YAAY,CAAC,IAAK;AACvB,YAAK,YAAY,CAAC,IAAK;AACvB,YAAK,YAAY,CAAC,IAAK;AACvB,YAAK,YAAY,CAAC,IAAK;AACvB;AAAA,MAEH;AAEE,UAAK,MAAM,GAAI;AAEd,YAAK,YAAY,CAAC,IAAK;AACvB,YAAK,YAAY,CAAC,IAAK;AACvB,YAAK,YAAY,CAAC,IAAK;AACvB,YAAK,YAAY,CAAC,IAAK;AACvB;AAAA,MAEH;AAEE,UAAK,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,IAAK;AAEvD,YAAI,IAAI,IAAI;AACZ,cAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAC9C,MAAQ,OAAO,IAAI,IAAI,IACvB,SAAS,IAAI,MAAM;AAGpB,YAAK,SAAS,OAAO,SAAU;AAE9B,gBAAM,MAAM,KAAK,KAAM,MAAQ,GAC9B,MAAM,KAAK,MAAO,KAAK,MAAM,GAAK;AAEnC,cAAI,KAAK,IAAK,IAAI,GAAK,IAAG;AAC1B,cAAI,KAAK,IAAK,IAAI,GAAK,IAAG;AAAA,QAE9B;AAEG,cAAM,OAAO,IAAI;AAEjB,aAAK,KAAK,IAAI,KAAK;AACnB,aAAK,KAAK,IAAI,KAAK;AACnB,aAAK,KAAK,IAAI,KAAK;AACnB,aAAK,KAAK,IAAI,KAAK;AAGnB,YAAK,MAAM,IAAI,GAAI;AAElB,gBAAM,IAAI,IAAI,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAI;AAEhE,gBAAM;AACN,gBAAM;AACN,gBAAM;AACN,gBAAM;AAAA,QAEV;AAAA,MAEA;AAEE,UAAK,SAAS,IAAK;AACnB,UAAK,YAAY,CAAC,IAAK;AACvB,UAAK,YAAY,CAAC,IAAK;AACvB,UAAK,YAAY,CAAC,IAAK;AAAA,IAEzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAeC,OAAO,wBAAyB,KAAK,WAAW,MAAM,YAAY,MAAM,YAAa;AAEpF,YAAM,KAAK,KAAM,UAAY;AAC7B,YAAM,KAAK,KAAM,aAAa,CAAG;AACjC,YAAM,KAAK,KAAM,aAAa,CAAG;AACjC,YAAM,KAAK,KAAM,aAAa,CAAG;AAEjC,YAAM,KAAK,KAAM,UAAY;AAC7B,YAAM,KAAK,KAAM,aAAa,CAAG;AACjC,YAAM,KAAK,KAAM,aAAa,CAAG;AACjC,YAAM,KAAK,KAAM,aAAa,CAAG;AAEjC,UAAK,aAAc,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACtD,UAAK,YAAY,CAAG,IAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAC1D,UAAK,YAAY,CAAG,IAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAC1D,UAAK,YAAY,CAAG,IAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAE1D,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,IAAI,IAAI;AAEP,aAAO,KAAK;AAAA,IAEd;AAAA,IAEC,IAAI,EAAG,OAAQ;AAEd,WAAK,KAAK;AACV,WAAK,kBAAmB;AAAA,IAE1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,IAAI,IAAI;AAEP,aAAO,KAAK;AAAA,IAEd;AAAA,IAEC,IAAI,EAAG,OAAQ;AAEd,WAAK,KAAK;AACV,WAAK,kBAAmB;AAAA,IAE1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,IAAI,IAAI;AAEP,aAAO,KAAK;AAAA,IAEd;AAAA,IAEC,IAAI,EAAG,OAAQ;AAEd,WAAK,KAAK;AACV,WAAK,kBAAmB;AAAA,IAE1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,IAAI,IAAI;AAEP,aAAO,KAAK;AAAA,IAEd;AAAA,IAEC,IAAI,EAAG,OAAQ;AAEd,WAAK,KAAK;AACV,WAAK,kBAAmB;AAAA,IAE1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWC,IAAKA,IAAG,GAAG,GAAG,GAAI;AAEjB,WAAK,KAAKA;AACV,WAAK,KAAK;AACV,WAAK,KAAK;AACV,WAAK,KAAK;AAEV,WAAK,kBAAmB;AAExB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,QAAQ;AAEP,aAAO,IAAI,KAAK,YAAa,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,EAAI;AAAA,IAEnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,KAAM,YAAa;AAElB,WAAK,KAAK,WAAW;AACrB,WAAK,KAAK,WAAW;AACrB,WAAK,KAAK,WAAW;AACrB,WAAK,KAAK,WAAW;AAErB,WAAK,kBAAmB;AAExB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,aAAc,OAAO,SAAS,MAAO;AAEpC,YAAMA,KAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,QAAQ,MAAM;AAM9D,YAAM,MAAM,KAAK;AACjB,YAAM,MAAM,KAAK;AAEjB,YAAM,KAAK,IAAKA,KAAI,CAAG;AACvB,YAAM,KAAK,IAAK,IAAI,CAAG;AACvB,YAAM,KAAK,IAAK,IAAI,CAAG;AAEvB,YAAM,KAAK,IAAKA,KAAI,CAAG;AACvB,YAAM,KAAK,IAAK,IAAI,CAAG;AACvB,YAAM,KAAK,IAAK,IAAI,CAAG;AAEvB,cAAS,OAAK;AAAA,QAEb,KAAK;AACJ,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC;AAAA,QAED,KAAK;AACJ,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC;AAAA,QAED,KAAK;AACJ,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC;AAAA,QAED,KAAK;AACJ,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC;AAAA,QAED,KAAK;AACJ,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC;AAAA,QAED,KAAK;AACJ,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC,eAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACnC;AAAA,QAED;AACC,kBAAQ,KAAM,qEAAqE,KAAO;AAAA,MAE9F;AAEE,UAAK,WAAW,KAAO,MAAK,kBAAmB;AAE/C,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,iBAAkB,MAAM,OAAQ;AAI/B,YAAM,YAAY,QAAQ,GAAG,IAAI,KAAK,IAAK,SAAW;AAEtD,WAAK,KAAK,KAAK,IAAI;AACnB,WAAK,KAAK,KAAK,IAAI;AACnB,WAAK,KAAK,KAAK,IAAI;AACnB,WAAK,KAAK,KAAK,IAAK,SAAW;AAE/B,WAAK,kBAAmB;AAExB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,sBAAuB,GAAI;AAM1B,YAAM,KAAK,EAAE,UAEZ,MAAM,GAAI,CAAC,GAAI,MAAM,GAAI,IAAK,MAAM,GAAI,CAAG,GAC3C,MAAM,GAAI,CAAC,GAAI,MAAM,GAAI,IAAK,MAAM,GAAI,CAAG,GAC3C,MAAM,GAAI,CAAC,GAAI,MAAM,GAAI,IAAK,MAAM,GAAI,EAAI,GAE5C,QAAQ,MAAM,MAAM;AAErB,UAAK,QAAQ,GAAI;AAEhB,cAAM,IAAI,MAAM,KAAK,KAAM,QAAQ,CAAK;AAExC,aAAK,KAAK,OAAO;AACjB,aAAK,MAAO,MAAM,OAAQ;AAC1B,aAAK,MAAO,MAAM,OAAQ;AAC1B,aAAK,MAAO,MAAM,OAAQ;AAAA,MAE1B,WAAW,MAAM,OAAO,MAAM,KAAM;AAEpC,cAAM,IAAI,IAAM,KAAK,KAAM,IAAM,MAAM,MAAM,GAAK;AAElD,aAAK,MAAO,MAAM,OAAQ;AAC1B,aAAK,KAAK,OAAO;AACjB,aAAK,MAAO,MAAM,OAAQ;AAC1B,aAAK,MAAO,MAAM,OAAQ;AAAA,MAE7B,WAAc,MAAM,KAAM;AAEvB,cAAM,IAAI,IAAM,KAAK,KAAM,IAAM,MAAM,MAAM,GAAK;AAElD,aAAK,MAAO,MAAM,OAAQ;AAC1B,aAAK,MAAO,MAAM,OAAQ;AAC1B,aAAK,KAAK,OAAO;AACjB,aAAK,MAAO,MAAM,OAAQ;AAAA,MAE7B,OAAS;AAEN,cAAM,IAAI,IAAM,KAAK,KAAM,IAAM,MAAM,MAAM,GAAK;AAElD,aAAK,MAAO,MAAM,OAAQ;AAC1B,aAAK,MAAO,MAAM,OAAQ;AAC1B,aAAK,MAAO,MAAM,OAAQ;AAC1B,aAAK,KAAK,OAAO;AAAA,MAEpB;AAEE,WAAK,kBAAmB;AAExB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,mBAAoB,OAAO,KAAM;AAIhC,UAAI,IAAI,MAAM,IAAK,GAAK,IAAG;AAE3B,UAAK,IAAI,MAAO;AAIf,YAAI;AAEJ,YAAK,KAAK,IAAK,MAAM,CAAC,IAAK,KAAK,IAAK,MAAM,IAAM;AAEhD,eAAK,KAAK,CAAE,MAAM;AAClB,eAAK,KAAK,MAAM;AAChB,eAAK,KAAK;AACV,eAAK,KAAK;AAAA,QAEd,OAAU;AAEN,eAAK,KAAK;AACV,eAAK,KAAK,CAAE,MAAM;AAClB,eAAK,KAAK,MAAM;AAChB,eAAK,KAAK;AAAA,QAEd;AAAA,MAEA,OAAS;AAIN,aAAK,KAAK,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AAC1C,aAAK,KAAK,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AAC1C,aAAK,KAAK,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AAC1C,aAAK,KAAK;AAAA,MAEb;AAEE,aAAO,KAAK,UAAW;AAAA,IAEzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,QAAS,GAAI;AAEZ,aAAO,IAAI,KAAK,KAAM,KAAK,IAAK,MAAO,KAAK,IAAK,CAAC,GAAI,IAAI,CAAG,CAAA,CAAI;AAAA,IAEnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,cAAe,GAAG,MAAO;AAExB,YAAM,QAAQ,KAAK,QAAS,CAAG;AAE/B,UAAK,UAAU,EAAI,QAAO;AAE1B,YAAM,IAAI,KAAK,IAAK,GAAG,OAAO,KAAO;AAErC,WAAK,MAAO,GAAG,CAAG;AAElB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,WAAW;AAEV,aAAO,KAAK,IAAK,GAAG,GAAG,GAAG,CAAG;AAAA,IAE/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,SAAS;AAER,aAAO,KAAK,UAAW;AAAA,IAEzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,YAAY;AAEX,WAAK,MAAM;AACX,WAAK,MAAM;AACX,WAAK,MAAM;AAEX,WAAK,kBAAmB;AAExB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,IAAK,GAAI;AAER,aAAO,KAAK,KAAK,EAAE,KAAK,KAAK,KAAK,EAAE,KAAK,KAAK,KAAK,EAAE,KAAK,KAAK,KAAK,EAAE;AAAA,IAExE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,WAAW;AAEV,aAAO,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,IAEpF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,SAAS;AAER,aAAO,KAAK,KAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAI;AAAA,IAEnG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,YAAY;AAEX,UAAI,IAAI,KAAK,OAAQ;AAErB,UAAK,MAAM,GAAI;AAEd,aAAK,KAAK;AACV,aAAK,KAAK;AACV,aAAK,KAAK;AACV,aAAK,KAAK;AAAA,MAEb,OAAS;AAEN,YAAI,IAAI;AAER,aAAK,KAAK,KAAK,KAAK;AACpB,aAAK,KAAK,KAAK,KAAK;AACpB,aAAK,KAAK,KAAK,KAAK;AACpB,aAAK,KAAK,KAAK,KAAK;AAAA,MAEvB;AAEE,WAAK,kBAAmB;AAExB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,SAAU,GAAI;AAEb,aAAO,KAAK,oBAAqB,MAAM,CAAG;AAAA,IAE5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,YAAa,GAAI;AAEhB,aAAO,KAAK,oBAAqB,GAAG,IAAM;AAAA,IAE5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,oBAAqB,GAAG,GAAI;AAI3B,YAAM,MAAM,EAAE,IAAI,MAAM,EAAE,IAAI,MAAM,EAAE,IAAI,MAAM,EAAE;AAClD,YAAM,MAAM,EAAE,IAAI,MAAM,EAAE,IAAI,MAAM,EAAE,IAAI,MAAM,EAAE;AAElD,WAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM;AACpD,WAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM;AACpD,WAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM;AACpD,WAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM;AAEpD,WAAK,kBAAmB;AAExB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,MAAO,IAAI,GAAI;AAEd,UAAK,MAAM,EAAI,QAAO;AACtB,UAAK,MAAM,EAAI,QAAO,KAAK,KAAM,EAAI;AAErC,YAAMA,KAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK;AAItD,UAAI,eAAe,IAAI,GAAG,KAAKA,KAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG;AAE9D,UAAK,eAAe,GAAI;AAEvB,aAAK,KAAK,CAAE,GAAG;AACf,aAAK,KAAK,CAAE,GAAG;AACf,aAAK,KAAK,CAAE,GAAG;AACf,aAAK,KAAK,CAAE,GAAG;AAEf,uBAAe,CAAE;AAAA,MAEpB,OAAS;AAEN,aAAK,KAAM,EAAI;AAAA,MAElB;AAEE,UAAK,gBAAgB,GAAM;AAE1B,aAAK,KAAK;AACV,aAAK,KAAKA;AACV,aAAK,KAAK;AACV,aAAK,KAAK;AAEV,eAAO;AAAA,MAEV;AAEE,YAAM,kBAAkB,IAAM,eAAe;AAE7C,UAAK,mBAAmB,OAAO,SAAU;AAExC,cAAM,IAAI,IAAI;AACd,aAAK,KAAK,IAAI,IAAI,IAAI,KAAK;AAC3B,aAAK,KAAK,IAAIA,KAAI,IAAI,KAAK;AAC3B,aAAK,KAAK,IAAI,IAAI,IAAI,KAAK;AAC3B,aAAK,KAAK,IAAI,IAAI,IAAI,KAAK;AAE3B,aAAK,UAAS;AAEd,eAAO;AAAA,MAEV;AAEE,YAAM,eAAe,KAAK,KAAM,eAAiB;AACjD,YAAM,YAAY,KAAK,MAAO,cAAc,YAAc;AAC1D,YAAM,SAAS,KAAK,KAAO,IAAI,KAAM,SAAS,IAAK,cAClD,SAAS,KAAK,IAAK,IAAI,SAAW,IAAG;AAEtC,WAAK,KAAO,IAAI,SAAS,KAAK,KAAK;AACnC,WAAK,KAAOA,KAAI,SAAS,KAAK,KAAK;AACnC,WAAK,KAAO,IAAI,SAAS,KAAK,KAAK;AACnC,WAAK,KAAO,IAAI,SAAS,KAAK,KAAK;AAEnC,WAAK,kBAAmB;AAExB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWC,iBAAkB,IAAI,IAAI,GAAI;AAE7B,aAAO,KAAK,KAAM,EAAI,EAAC,MAAO,IAAI,CAAG;AAAA,IAEvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,SAAS;AAMR,YAAM,SAAS,IAAI,KAAK,KAAK,KAAK,OAAQ;AAC1C,YAAM,SAAS,IAAI,KAAK,KAAK,KAAK,OAAQ;AAE1C,YAAM,KAAK,KAAK,OAAQ;AACxB,YAAM,KAAK,KAAK,KAAM,IAAI,EAAI;AAC9B,YAAM,KAAK,KAAK,KAAM,EAAI;AAE1B,aAAO,KAAK;AAAA,QACX,KAAK,KAAK,IAAK,MAAQ;AAAA,QACvB,KAAK,KAAK,IAAK,MAAQ;AAAA,QACvB,KAAK,KAAK,IAAK,MAAQ;AAAA,QACvB,KAAK,KAAK,IAAK,MAAQ;AAAA,MACvB;AAAA,IAEH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,OAAQ,YAAa;AAEpB,aAAS,WAAW,OAAO,KAAK,MAAU,WAAW,OAAO,KAAK,MAAU,WAAW,OAAO,KAAK,MAAU,WAAW,OAAO,KAAK;AAAA,IAErI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,UAAW,OAAO,SAAS,GAAI;AAE9B,WAAK,KAAK,MAAO,MAAQ;AACzB,WAAK,KAAK,MAAO,SAAS,CAAG;AAC7B,WAAK,KAAK,MAAO,SAAS,CAAG;AAC7B,WAAK,KAAK,MAAO,SAAS,CAAG;AAE7B,WAAK,kBAAmB;AAExB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,QAAS,QAAQ,IAAI,SAAS,GAAI;AAEjC,YAAO,UAAW,KAAK;AACvB,YAAO,SAAS,CAAG,IAAG,KAAK;AAC3B,YAAO,SAAS,CAAG,IAAG,KAAK;AAC3B,YAAO,SAAS,CAAG,IAAG,KAAK;AAE3B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,oBAAqB,WAAW,OAAQ;AAEvC,WAAK,KAAK,UAAU,KAAM,KAAO;AACjC,WAAK,KAAK,UAAU,KAAM,KAAO;AACjC,WAAK,KAAK,UAAU,KAAM,KAAO;AACjC,WAAK,KAAK,UAAU,KAAM,KAAO;AAEjC,WAAK,kBAAmB;AAExB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,SAAS;AAER,aAAO,KAAK,QAAS;AAAA,IAEvB;AAAA,IAEC,UAAW,UAAW;AAErB,WAAK,oBAAoB;AAEzB,aAAO;AAAA,IAET;AAAA,IAEC,oBAAoB;AAAA,IAAA;AAAA,IAEpB,EAAG,OAAO,YAAa;AAEtB,YAAM,KAAK;AACX,YAAM,KAAK;AACX,YAAM,KAAK;AACX,YAAM,KAAK;AAAA,IAEb;AAAA,EAEA;AAAA,EA2BA,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASb,YAAaA,KAAI,GAAG,IAAI,GAAG,IAAI,GAAI;AASlC,cAAQ,UAAU,YAAY;AAO9B,WAAK,IAAIA;AAOT,WAAK,IAAI;AAOT,WAAK,IAAI;AAAA,IAEX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,IAAKA,IAAG,GAAG,GAAI;AAEd,UAAK,MAAM,OAAY,KAAI,KAAK;AAEhC,WAAK,IAAIA;AACT,WAAK,IAAI;AACT,WAAK,IAAI;AAET,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,UAAW,QAAS;AAEnB,WAAK,IAAI;AACT,WAAK,IAAI;AACT,WAAK,IAAI;AAET,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,KAAMA,IAAI;AAET,WAAK,IAAIA;AAET,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,KAAM,GAAI;AAET,WAAK,IAAI;AAET,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,KAAM,GAAI;AAET,WAAK,IAAI;AAET,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,aAAc,OAAO,OAAQ;AAE5B,cAAS,OAAK;AAAA,QAEb,KAAK;AAAG,eAAK,IAAI;AAAO;AAAA,QACxB,KAAK;AAAG,eAAK,IAAI;AAAO;AAAA,QACxB,KAAK;AAAG,eAAK,IAAI;AAAO;AAAA,QACxB;AAAS,gBAAM,IAAI,MAAO,4BAA4B,KAAO;AAAA,MAEhE;AAEE,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,aAAc,OAAQ;AAErB,cAAS,OAAK;AAAA,QAEb,KAAK;AAAG,iBAAO,KAAK;AAAA,QACpB,KAAK;AAAG,iBAAO,KAAK;AAAA,QACpB,KAAK;AAAG,iBAAO,KAAK;AAAA,QACpB;AAAS,gBAAM,IAAI,MAAO,4BAA4B,KAAO;AAAA,MAEhE;AAAA,IAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,QAAQ;AAEP,aAAO,IAAI,KAAK,YAAa,KAAK,GAAG,KAAK,GAAG,KAAK,CAAG;AAAA,IAEvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,KAAM,GAAI;AAET,WAAK,IAAI,EAAE;AACX,WAAK,IAAI,EAAE;AACX,WAAK,IAAI,EAAE;AAEX,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,IAAK,GAAI;AAER,WAAK,KAAK,EAAE;AACZ,WAAK,KAAK,EAAE;AACZ,WAAK,KAAK,EAAE;AAEZ,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,UAAW,GAAI;AAEd,WAAK,KAAK;AACV,WAAK,KAAK;AACV,WAAK,KAAK;AAEV,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,WAAY,GAAG,GAAI;AAElB,WAAK,IAAI,EAAE,IAAI,EAAE;AACjB,WAAK,IAAI,EAAE,IAAI,EAAE;AACjB,WAAK,IAAI,EAAE,IAAI,EAAE;AAEjB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,gBAAiB,GAAG,GAAI;AAEvB,WAAK,KAAK,EAAE,IAAI;AAChB,WAAK,KAAK,EAAE,IAAI;AAChB,WAAK,KAAK,EAAE,IAAI;AAEhB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,IAAK,GAAI;AAER,WAAK,KAAK,EAAE;AACZ,WAAK,KAAK,EAAE;AACZ,WAAK,KAAK,EAAE;AAEZ,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,UAAW,GAAI;AAEd,WAAK,KAAK;AACV,WAAK,KAAK;AACV,WAAK,KAAK;AAEV,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,WAAY,GAAG,GAAI;AAElB,WAAK,IAAI,EAAE,IAAI,EAAE;AACjB,WAAK,IAAI,EAAE,IAAI,EAAE;AACjB,WAAK,IAAI,EAAE,IAAI,EAAE;AAEjB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,SAAU,GAAI;AAEb,WAAK,KAAK,EAAE;AACZ,WAAK,KAAK,EAAE;AACZ,WAAK,KAAK,EAAE;AAEZ,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,eAAgB,QAAS;AAExB,WAAK,KAAK;AACV,WAAK,KAAK;AACV,WAAK,KAAK;AAEV,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,gBAAiB,GAAG,GAAI;AAEvB,WAAK,IAAI,EAAE,IAAI,EAAE;AACjB,WAAK,IAAI,EAAE,IAAI,EAAE;AACjB,WAAK,IAAI,EAAE,IAAI,EAAE;AAEjB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,WAAY,OAAQ;AAEnB,aAAO,KAAK,gBAAiB,cAAc,aAAc,KAAK,CAAI;AAAA,IAEpE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,eAAgB,MAAM,OAAQ;AAE7B,aAAO,KAAK,gBAAiB,cAAc,iBAAkB,MAAM,MAAS;AAAA,IAE9E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,aAAc,GAAI;AAEjB,YAAMA,KAAI,KAAK,GAAG,IAAI,KAAK,GAAG,IAAI,KAAK;AACvC,YAAM,IAAI,EAAE;AAEZ,WAAK,IAAI,EAAG,CAAG,IAAGA,KAAI,EAAG,CAAG,IAAG,IAAI,EAAG,CAAG,IAAG;AAC5C,WAAK,IAAI,EAAG,CAAG,IAAGA,KAAI,EAAG,CAAG,IAAG,IAAI,EAAG,CAAG,IAAG;AAC5C,WAAK,IAAI,EAAG,CAAG,IAAGA,KAAI,EAAG,CAAG,IAAG,IAAI,EAAG,CAAG,IAAG;AAE5C,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,kBAAmB,GAAI;AAEtB,aAAO,KAAK,aAAc,CAAC,EAAG,UAAW;AAAA,IAE3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,aAAc,GAAI;AAEjB,YAAMA,KAAI,KAAK,GAAG,IAAI,KAAK,GAAG,IAAI,KAAK;AACvC,YAAM,IAAI,EAAE;AAEZ,YAAM,IAAI,KAAM,EAAG,CAAG,IAAGA,KAAI,EAAG,CAAG,IAAG,IAAI,EAAG,EAAE,IAAK,IAAI,EAAG;AAE3D,WAAK,KAAM,EAAG,CAAG,IAAGA,KAAI,EAAG,CAAG,IAAG,IAAI,EAAG,CAAG,IAAG,IAAI,EAAG,EAAE,KAAO;AAC9D,WAAK,KAAM,EAAG,CAAG,IAAGA,KAAI,EAAG,CAAG,IAAG,IAAI,EAAG,CAAG,IAAG,IAAI,EAAG,EAAE,KAAO;AAC9D,WAAK,KAAM,EAAG,CAAG,IAAGA,KAAI,EAAG,CAAG,IAAG,IAAI,EAAG,EAAI,IAAG,IAAI,EAAG,EAAE,KAAO;AAE/D,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,gBAAiB,GAAI;AAIpB,YAAM,KAAK,KAAK,GAAG,KAAK,KAAK,GAAG,KAAK,KAAK;AAC1C,YAAM,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE;AAG3C,YAAM,KAAK,KAAM,KAAK,KAAK,KAAK;AAChC,YAAM,KAAK,KAAM,KAAK,KAAK,KAAK;AAChC,YAAM,KAAK,KAAM,KAAK,KAAK,KAAK;AAGhC,WAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACvC,WAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AACvC,WAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAEvC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,QAAS,QAAS;AAEjB,aAAO,KAAK,aAAc,OAAO,kBAAkB,EAAG,aAAc,OAAO,gBAAkB;AAAA,IAE/F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,UAAW,QAAS;AAEnB,aAAO,KAAK,aAAc,OAAO,uBAAuB,EAAG,aAAc,OAAO,WAAa;AAAA,IAE/F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,mBAAoB,GAAI;AAKvB,YAAMA,KAAI,KAAK,GAAG,IAAI,KAAK,GAAG,IAAI,KAAK;AACvC,YAAM,IAAI,EAAE;AAEZ,WAAK,IAAI,EAAG,CAAG,IAAGA,KAAI,EAAG,CAAG,IAAG,IAAI,EAAG,CAAG,IAAG;AAC5C,WAAK,IAAI,EAAG,CAAG,IAAGA,KAAI,EAAG,CAAG,IAAG,IAAI,EAAG,CAAG,IAAG;AAC5C,WAAK,IAAI,EAAG,CAAG,IAAGA,KAAI,EAAG,CAAG,IAAG,IAAI,EAAG,EAAI,IAAG;AAE7C,aAAO,KAAK,UAAW;AAAA,IAEzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,OAAQ,GAAI;AAEX,WAAK,KAAK,EAAE;AACZ,WAAK,KAAK,EAAE;AACZ,WAAK,KAAK,EAAE;AAEZ,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,aAAc,QAAS;AAEtB,aAAO,KAAK,eAAgB,IAAI,MAAQ;AAAA,IAE1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,IAAK,GAAI;AAER,WAAK,IAAI,KAAK,IAAK,KAAK,GAAG,EAAE,CAAG;AAChC,WAAK,IAAI,KAAK,IAAK,KAAK,GAAG,EAAE,CAAG;AAChC,WAAK,IAAI,KAAK,IAAK,KAAK,GAAG,EAAE,CAAG;AAEhC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,IAAK,GAAI;AAER,WAAK,IAAI,KAAK,IAAK,KAAK,GAAG,EAAE,CAAG;AAChC,WAAK,IAAI,KAAK,IAAK,KAAK,GAAG,EAAE,CAAG;AAChC,WAAK,IAAI,KAAK,IAAK,KAAK,GAAG,EAAE,CAAG;AAEhC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYC,MAAO,KAAKU,MAAM;AAIjB,WAAK,IAAI,MAAO,KAAK,GAAG,IAAI,GAAGA,KAAI,CAAG;AACtC,WAAK,IAAI,MAAO,KAAK,GAAG,IAAI,GAAGA,KAAI,CAAG;AACtC,WAAK,IAAI,MAAO,KAAK,GAAG,IAAI,GAAGA,KAAI,CAAG;AAEtC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYC,YAAa,QAAQ,QAAS;AAE7B,WAAK,IAAI,MAAO,KAAK,GAAG,QAAQ,MAAQ;AACxC,WAAK,IAAI,MAAO,KAAK,GAAG,QAAQ,MAAQ;AACxC,WAAK,IAAI,MAAO,KAAK,GAAG,QAAQ,MAAQ;AAExC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYC,YAAa,KAAKA,MAAM;AAEvB,YAAM,SAAS,KAAK,OAAQ;AAE5B,aAAO,KAAK,aAAc,UAAU,CAAG,EAAC,eAAgB,MAAO,QAAQ,KAAKA,KAAO;AAAA,IAErF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,QAAQ;AAEP,WAAK,IAAI,KAAK,MAAO,KAAK,CAAG;AAC7B,WAAK,IAAI,KAAK,MAAO,KAAK,CAAG;AAC7B,WAAK,IAAI,KAAK,MAAO,KAAK,CAAG;AAE7B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,OAAO;AAEN,WAAK,IAAI,KAAK,KAAM,KAAK,CAAG;AAC5B,WAAK,IAAI,KAAK,KAAM,KAAK,CAAG;AAC5B,WAAK,IAAI,KAAK,KAAM,KAAK,CAAG;AAE5B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,QAAQ;AAEP,WAAK,IAAI,KAAK,MAAO,KAAK,CAAG;AAC7B,WAAK,IAAI,KAAK,MAAO,KAAK,CAAG;AAC7B,WAAK,IAAI,KAAK,MAAO,KAAK,CAAG;AAE7B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,cAAc;AAEb,WAAK,IAAI,KAAK,MAAO,KAAK,CAAG;AAC7B,WAAK,IAAI,KAAK,MAAO,KAAK,CAAG;AAC7B,WAAK,IAAI,KAAK,MAAO,KAAK,CAAG;AAE7B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,SAAS;AAER,WAAK,IAAI,CAAE,KAAK;AAChB,WAAK,IAAI,CAAE,KAAK;AAChB,WAAK,IAAI,CAAE,KAAK;AAEhB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,IAAK,GAAI;AAER,aAAO,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE;AAAA,IAElD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWC,WAAW;AAEV,aAAO,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK;AAAA,IAE3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,SAAS;AAER,aAAO,KAAK,KAAM,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAG;AAAA,IAEzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,kBAAkB;AAEjB,aAAO,KAAK,IAAK,KAAK,CAAC,IAAK,KAAK,IAAK,KAAK,CAAC,IAAK,KAAK,IAAK,KAAK,CAAG;AAAA,IAErE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,YAAY;AAEX,aAAO,KAAK,aAAc,KAAK,OAAM,KAAM,CAAG;AAAA,IAEhD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,UAAW,QAAS;AAEnB,aAAO,KAAK,YAAY,eAAgB,MAAQ;AAAA,IAElD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWC,KAAM,GAAG,OAAQ;AAEhB,WAAK,MAAO,EAAE,IAAI,KAAK,KAAM;AAC7B,WAAK,MAAO,EAAE,IAAI,KAAK,KAAM;AAC7B,WAAK,MAAO,EAAE,IAAI,KAAK,KAAM;AAE7B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYC,YAAa,IAAI,IAAI,OAAQ;AAE5B,WAAK,IAAI,GAAG,KAAM,GAAG,IAAI,GAAG,KAAM;AAClC,WAAK,IAAI,GAAG,KAAM,GAAG,IAAI,GAAG,KAAM;AAClC,WAAK,IAAI,GAAG,KAAM,GAAG,IAAI,GAAG,KAAM;AAElC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,MAAO,GAAI;AAEV,aAAO,KAAK,aAAc,MAAM,CAAG;AAAA,IAErC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,aAAc,GAAG,GAAI;AAEpB,YAAM,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE;AACjC,YAAM,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE;AAEjC,WAAK,IAAI,KAAK,KAAK,KAAK;AACxB,WAAK,IAAI,KAAK,KAAK,KAAK;AACxB,WAAK,IAAI,KAAK,KAAK,KAAK;AAExB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,gBAAiB,GAAI;AAEpB,YAAM,cAAc,EAAE,SAAU;AAEhC,UAAK,gBAAgB,EAAI,QAAO,KAAK,IAAK,GAAG,GAAG,CAAG;AAEnD,YAAM,SAAS,EAAE,IAAK,IAAM,IAAG;AAE/B,aAAO,KAAK,KAAM,CAAC,EAAG,eAAgB,MAAQ;AAAA,IAEhD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,eAAgB,aAAc;AAE7B,gBAAU,KAAM,MAAO,gBAAiB,WAAa;AAErD,aAAO,KAAK,IAAK,SAAW;AAAA,IAE9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,QAAS,QAAS;AAEjB,aAAO,KAAK,IAAK,UAAU,KAAM,MAAM,EAAG,eAAgB,IAAI,KAAK,IAAK,MAAQ,CAAA,CAAI;AAAA,IAEtF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,QAAS,GAAI;AAEZ,YAAM,cAAc,KAAK,KAAM,KAAK,aAAa,EAAE,UAAY;AAE/D,UAAK,gBAAgB,EAAI,QAAO,KAAK,KAAK;AAE1C,YAAM,QAAQ,KAAK,IAAK,CAAG,IAAG;AAI9B,aAAO,KAAK,KAAM,MAAO,OAAO,IAAI,EAAK;AAAA,IAE3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,WAAY,GAAI;AAEf,aAAO,KAAK,KAAM,KAAK,kBAAmB,CAAC,CAAI;AAAA,IAEjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,kBAAmB,GAAI;AAEtB,YAAM,KAAK,KAAK,IAAI,EAAE,GAAG,KAAK,KAAK,IAAI,EAAE,GAAG,KAAK,KAAK,IAAI,EAAE;AAE5D,aAAO,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,IAElC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,oBAAqB,GAAI;AAExB,aAAO,KAAK,IAAK,KAAK,IAAI,EAAE,CAAC,IAAK,KAAK,IAAK,KAAK,IAAI,EAAE,CAAC,IAAK,KAAK,IAAK,KAAK,IAAI,EAAE,CAAG;AAAA,IAEvF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,iBAAkB,GAAI;AAErB,aAAO,KAAK,uBAAwB,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAO;AAAA,IAEhE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,uBAAwB,QAAQ,KAAK,OAAQ;AAE5C,YAAM,eAAe,KAAK,IAAK,GAAK,IAAG;AAEvC,WAAK,IAAI,eAAe,KAAK,IAAK,KAAO;AACzC,WAAK,IAAI,KAAK,IAAK,GAAK,IAAG;AAC3B,WAAK,IAAI,eAAe,KAAK,IAAK,KAAO;AAEzC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,mBAAoB,GAAI;AAEvB,aAAO,KAAK,yBAA0B,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAG;AAAA,IAEhE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,yBAA0B,QAAQ,OAAO,GAAI;AAE5C,WAAK,IAAI,SAAS,KAAK,IAAK,KAAO;AACnC,WAAK,IAAI;AACT,WAAK,IAAI,SAAS,KAAK,IAAK,KAAO;AAEnC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,sBAAuB,GAAI;AAE1B,YAAM,IAAI,EAAE;AAEZ,WAAK,IAAI,EAAG,EAAI;AAChB,WAAK,IAAI,EAAG,EAAI;AAChB,WAAK,IAAI,EAAG,EAAI;AAEhB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,mBAAoB,GAAI;AAEvB,YAAM,KAAK,KAAK,oBAAqB,GAAG,CAAG,EAAC,OAAQ;AACpD,YAAM,KAAK,KAAK,oBAAqB,GAAG,CAAG,EAAC,OAAQ;AACpD,YAAM,KAAK,KAAK,oBAAqB,GAAG,CAAG,EAAC,OAAQ;AAEpD,WAAK,IAAI;AACT,WAAK,IAAI;AACT,WAAK,IAAI;AAET,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,oBAAqB,GAAG,OAAQ;AAE/B,aAAO,KAAK,UAAW,EAAE,UAAU,QAAQ,CAAG;AAAA,IAEhD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,qBAAsB,GAAG,OAAQ;AAEhC,aAAO,KAAK,UAAW,EAAE,UAAU,QAAQ,CAAG;AAAA,IAEhD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,aAAc,GAAI;AAEjB,WAAK,IAAI,EAAE;AACX,WAAK,IAAI,EAAE;AACX,WAAK,IAAI,EAAE;AAEX,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,aAAc,GAAI;AAEjB,WAAK,IAAI,EAAE;AACX,WAAK,IAAI,EAAE;AACX,WAAK,IAAI,EAAE;AAEX,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,OAAQ,GAAI;AAEX,aAAW,EAAE,MAAM,KAAK,KAAS,EAAE,MAAM,KAAK,KAAS,EAAE,MAAM,KAAK;AAAA,IAEtE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,UAAW,OAAO,SAAS,GAAI;AAE9B,WAAK,IAAI,MAAO,MAAQ;AACxB,WAAK,IAAI,MAAO,SAAS,CAAG;AAC5B,WAAK,IAAI,MAAO,SAAS,CAAG;AAE5B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,QAAS,QAAQ,IAAI,SAAS,GAAI;AAEjC,YAAO,UAAW,KAAK;AACvB,YAAO,SAAS,CAAG,IAAG,KAAK;AAC3B,YAAO,SAAS,CAAG,IAAG,KAAK;AAE3B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,oBAAqB,WAAW,OAAQ;AAEvC,WAAK,IAAI,UAAU,KAAM,KAAO;AAChC,WAAK,IAAI,UAAU,KAAM,KAAO;AAChC,WAAK,IAAI,UAAU,KAAM,KAAO;AAEhC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,SAAS;AAER,WAAK,IAAI,KAAK,OAAQ;AACtB,WAAK,IAAI,KAAK,OAAQ;AACtB,WAAK,IAAI,KAAK,OAAQ;AAEtB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,kBAAkB;AAIjB,YAAM,QAAQ,KAAK,OAAQ,IAAG,KAAK,KAAK;AACxC,YAAM,IAAI,KAAK,OAAQ,IAAG,IAAI;AAC9B,YAAM,IAAI,KAAK,KAAM,IAAI,IAAI,CAAG;AAEhC,WAAK,IAAI,IAAI,KAAK,IAAK,KAAO;AAC9B,WAAK,IAAI;AACT,WAAK,IAAI,IAAI,KAAK,IAAK,KAAO;AAE9B,aAAO;AAAA,IAET;AAAA,IAEC,EAAG,OAAO,YAAa;AAEtB,YAAM,KAAK;AACX,YAAM,KAAK;AACX,YAAM,KAAK;AAAA,IAEb;AAAA,EAEA;AAEA,QAAM,YAA0B,oBAAI,QAAS;AAC7C,QAAM,gBAA8B,oBAAI,WAAY;AAAA,EA8BpD,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAiBb,YAAa,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM;AAS1D,cAAQ,UAAU,YAAY;AAO9B,WAAK,WAAW;AAAA,QAEf;AAAA,QAAG;AAAA,QAAG;AAAA,QACN;AAAA,QAAG;AAAA,QAAG;AAAA,QACN;AAAA,QAAG;AAAA,QAAG;AAAA,MAEN;AAED,UAAK,QAAQ,QAAY;AAExB,aAAK,IAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAK;AAAA,MAE1D;AAAA,IAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAiBC,IAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAM;AAElD,YAAM,KAAK,KAAK;AAEhB,SAAI,CAAC,IAAK;AAAK,SAAI,CAAG,IAAG;AAAK,SAAI,CAAG,IAAG;AACxC,SAAI,CAAC,IAAK;AAAK,SAAI,CAAG,IAAG;AAAK,SAAI,CAAG,IAAG;AACxC,SAAI,CAAC,IAAK;AAAK,SAAI,CAAG,IAAG;AAAK,SAAI,CAAG,IAAG;AAExC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,WAAW;AAEV,WAAK;AAAA,QAEJ;AAAA,QAAG;AAAA,QAAG;AAAA,QACN;AAAA,QAAG;AAAA,QAAG;AAAA,QACN;AAAA,QAAG;AAAA,QAAG;AAAA,MAEN;AAED,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,KAAM,GAAI;AAET,YAAM,KAAK,KAAK;AAChB,YAAM,KAAK,EAAE;AAEb,SAAI,CAAC,IAAK,GAAI,CAAG;AAAE,SAAI,CAAC,IAAK,GAAI,CAAG;AAAE,SAAI,CAAG,IAAG,GAAI,CAAG;AACvD,SAAI,CAAC,IAAK,GAAI,CAAG;AAAE,SAAI,CAAC,IAAK,GAAI,CAAG;AAAE,SAAI,CAAG,IAAG,GAAI,CAAG;AACvD,SAAI,CAAC,IAAK,GAAI,CAAG;AAAE,SAAI,CAAC,IAAK,GAAI,CAAG;AAAE,SAAI,CAAG,IAAG,GAAI,CAAG;AAEvD,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,aAAc,OAAO,OAAO,OAAQ;AAEnC,YAAM,qBAAsB,MAAM,CAAG;AACrC,YAAM,qBAAsB,MAAM,CAAG;AACrC,YAAM,qBAAsB,MAAM,CAAG;AAErC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,eAAgB,GAAI;AAEnB,YAAM,KAAK,EAAE;AAEb,WAAK;AAAA,QAEJ,GAAI,CAAC;AAAA,QAAI,GAAI,CAAG;AAAA,QAAE,GAAI,CAAG;AAAA,QACzB,GAAI,CAAC;AAAA,QAAI,GAAI,CAAG;AAAA,QAAE,GAAI,CAAG;AAAA,QACzB,GAAI,CAAC;AAAA,QAAI,GAAI,CAAG;AAAA,QAAE,GAAI,EAAE;AAAA,MAExB;AAED,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,SAAU,GAAI;AAEb,aAAO,KAAK,iBAAkB,MAAM,CAAG;AAAA,IAEzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,YAAa,GAAI;AAEhB,aAAO,KAAK,iBAAkB,GAAG,IAAM;AAAA,IAEzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,iBAAkB,GAAG,GAAI;AAExB,YAAM,KAAK,EAAE;AACb,YAAM,KAAK,EAAE;AACb,YAAM,KAAK,KAAK;AAEhB,YAAM,MAAM,GAAI,CAAC,GAAI,MAAM,GAAI,IAAK,MAAM,GAAI,CAAG;AACjD,YAAM,MAAM,GAAI,CAAC,GAAI,MAAM,GAAI,IAAK,MAAM,GAAI,CAAG;AACjD,YAAM,MAAM,GAAI,CAAC,GAAI,MAAM,GAAI,IAAK,MAAM,GAAI,CAAG;AAEjD,YAAM,MAAM,GAAI,CAAC,GAAI,MAAM,GAAI,IAAK,MAAM,GAAI,CAAG;AACjD,YAAM,MAAM,GAAI,CAAC,GAAI,MAAM,GAAI,IAAK,MAAM,GAAI,CAAG;AACjD,YAAM,MAAM,GAAI,CAAC,GAAI,MAAM,GAAI,IAAK,MAAM,GAAI,CAAG;AAEjD,SAAI,CAAC,IAAK,MAAM,MAAM,MAAM,MAAM,MAAM;AACxC,SAAI,CAAC,IAAK,MAAM,MAAM,MAAM,MAAM,MAAM;AACxC,SAAI,CAAC,IAAK,MAAM,MAAM,MAAM,MAAM,MAAM;AAExC,SAAI,CAAC,IAAK,MAAM,MAAM,MAAM,MAAM,MAAM;AACxC,SAAI,CAAC,IAAK,MAAM,MAAM,MAAM,MAAM,MAAM;AACxC,SAAI,CAAC,IAAK,MAAM,MAAM,MAAM,MAAM,MAAM;AAExC,SAAI,CAAC,IAAK,MAAM,MAAM,MAAM,MAAM,MAAM;AACxC,SAAI,CAAC,IAAK,MAAM,MAAM,MAAM,MAAM,MAAM;AACxC,SAAI,CAAC,IAAK,MAAM,MAAM,MAAM,MAAM,MAAM;AAExC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,eAAgB,GAAI;AAEnB,YAAM,KAAK,KAAK;AAEhB,SAAI,CAAC,KAAM;AAAG,SAAI,CAAG,KAAI;AAAG,SAAI,CAAG,KAAI;AACvC,SAAI,CAAC,KAAM;AAAG,SAAI,CAAG,KAAI;AAAG,SAAI,CAAG,KAAI;AACvC,SAAI,CAAC,KAAM;AAAG,SAAI,CAAG,KAAI;AAAG,SAAI,CAAG,KAAI;AAEvC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,cAAc;AAEb,YAAM,KAAK,KAAK;AAEhB,YAAM,IAAI,GAAI,CAAC,GAAI,IAAI,GAAI,IAAK,IAAI,GAAI,CAAG,GAC1C,IAAI,GAAI,CAAC,GAAI,IAAI,GAAI,IAAK,IAAI,GAAI,CAAG,GACrC,IAAI,GAAI,CAAC,GAAI,IAAI,GAAI,IAAKX,KAAI,GAAI,CAAG;AAEtC,aAAO,IAAI,IAAIA,KAAI,IAAI,IAAI,IAAI,IAAI,IAAIA,KAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,IAE7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,SAAS;AAER,YAAM,KAAK,KAAK,UAEf,MAAM,GAAI,CAAC,GAAI,MAAM,GAAI,IAAK,MAAM,GAAI,CAAG,GAC3C,MAAM,GAAI,CAAC,GAAI,MAAM,GAAI,IAAK,MAAM,GAAI,CAAG,GAC3C,MAAM,GAAI,CAAC,GAAI,MAAM,GAAI,IAAK,MAAM,GAAI,CAAG,GAE3C,MAAM,MAAM,MAAM,MAAM,KACxB,MAAM,MAAM,MAAM,MAAM,KACxB,MAAM,MAAM,MAAM,MAAM,KAExB,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM;AAErC,UAAK,QAAQ,EAAI,QAAO,KAAK,IAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAG;AAE7D,YAAM,SAAS,IAAI;AAEnB,SAAI,KAAM,MAAM;AAChB,SAAI,CAAC,KAAO,MAAM,MAAM,MAAM,OAAQ;AACtC,SAAI,CAAC,KAAO,MAAM,MAAM,MAAM,OAAQ;AAEtC,SAAI,KAAM,MAAM;AAChB,SAAI,CAAC,KAAO,MAAM,MAAM,MAAM,OAAQ;AACtC,SAAI,CAAC,KAAO,MAAM,MAAM,MAAM,OAAQ;AAEtC,SAAI,KAAM,MAAM;AAChB,SAAI,CAAC,KAAO,MAAM,MAAM,MAAM,OAAQ;AACtC,SAAI,CAAC,KAAO,MAAM,MAAM,MAAM,OAAQ;AAEtC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,YAAY;AAEX,UAAI;AACJ,YAAM,IAAI,KAAK;AAEf,YAAM,EAAG;AAAK,QAAG,CAAC,IAAK,EAAG,CAAC;AAAI,QAAG,CAAG,IAAG;AACxC,YAAM,EAAG;AAAK,QAAG,CAAC,IAAK,EAAG,CAAC;AAAI,QAAG,CAAG,IAAG;AACxC,YAAM,EAAG;AAAK,QAAG,CAAC,IAAK,EAAG,CAAC;AAAI,QAAG,CAAG,IAAG;AAExC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,gBAAiB,SAAU;AAE1B,aAAO,KAAK,eAAgB,OAAS,EAAC,OAAM,EAAG,UAAW;AAAA,IAE5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,mBAAoB,GAAI;AAEvB,YAAM,IAAI,KAAK;AAEf,QAAG,CAAC,IAAK,EAAG,CAAG;AACf,QAAG,CAAC,IAAK,EAAG,CAAG;AACf,QAAG,CAAC,IAAK,EAAG,CAAG;AACf,QAAG,CAAC,IAAK,EAAG,CAAG;AACf,QAAG,CAAC,IAAK,EAAG,CAAG;AACf,QAAG,CAAC,IAAK,EAAG,CAAG;AACf,QAAG,CAAC,IAAK,EAAG,CAAG;AACf,QAAG,CAAC,IAAK,EAAG,CAAG;AACf,QAAG,CAAC,IAAK,EAAG,CAAG;AAEf,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcC,eAAgB,IAAI,IAAI,IAAI,IAAI,UAAU,IAAI,IAAK;AAElD,YAAM,IAAI,KAAK,IAAK,QAAU;AAC9B,YAAM,IAAI,KAAK,IAAK,QAAU;AAE9B,WAAK;AAAA,QACJ,KAAK;AAAA,QAAG,KAAK;AAAA,QAAG,CAAE,MAAO,IAAI,KAAK,IAAI,MAAO,KAAK;AAAA,QAClD,CAAE,KAAK;AAAA,QAAG,KAAK;AAAA,QAAG,CAAE,MAAO,CAAE,IAAI,KAAK,IAAI,MAAO,KAAK;AAAA,QACtD;AAAA,QAAG;AAAA,QAAG;AAAA,MACN;AAED,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,MAAO,IAAI,IAAK;AAEf,WAAK,YAAa,IAAI,UAAW,IAAI,EAAE,CAAI;AAE3C,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,OAAQ,OAAQ;AAEf,WAAK,YAAa,IAAI,aAAc,CAAE,KAAK,CAAI;AAE/C,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,UAAW,IAAI,IAAK;AAEnB,WAAK,YAAa,IAAI,gBAAiB,IAAI,EAAE,CAAI;AAEjD,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWC,gBAAiBC,IAAG,GAAI;AAEvB,UAAKA,GAAE,WAAY;AAElB,aAAK;AAAA,UAEJ;AAAA,UAAG;AAAA,UAAGA,GAAE;AAAA,UACR;AAAA,UAAG;AAAA,UAAGA,GAAE;AAAA,UACR;AAAA,UAAG;AAAA,UAAG;AAAA,QAEN;AAAA,MAEJ,OAAS;AAEN,aAAK;AAAA,UAEJ;AAAA,UAAG;AAAA,UAAGA;AAAA,UACN;AAAA,UAAG;AAAA,UAAG;AAAA,UACN;AAAA,UAAG;AAAA,UAAG;AAAA,QAEN;AAAA,MAEJ;AAEE,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,aAAc,OAAQ;AAIrB,YAAM,IAAI,KAAK,IAAK,KAAO;AAC3B,YAAM,IAAI,KAAK,IAAK,KAAO;AAE3B,WAAK;AAAA,QAEJ;AAAA,QAAG,CAAE;AAAA,QAAG;AAAA,QACR;AAAA,QAAG;AAAA,QAAG;AAAA,QACN;AAAA,QAAG;AAAA,QAAG;AAAA,MAEN;AAED,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,UAAWA,IAAG,GAAI;AAEjB,WAAK;AAAA,QAEJA;AAAA,QAAG;AAAA,QAAG;AAAA,QACN;AAAA,QAAG;AAAA,QAAG;AAAA,QACN;AAAA,QAAG;AAAA,QAAG;AAAA,MAEN;AAED,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,OAAQ,QAAS;AAEhB,YAAM,KAAK,KAAK;AAChB,YAAM,KAAK,OAAO;AAElB,eAAUD,KAAI,GAAGA,KAAI,GAAGA,MAAO;AAE9B,YAAK,GAAIA,EAAG,MAAK,GAAIA,EAAC,EAAK,QAAO;AAAA,MAErC;AAEE,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,UAAW,OAAO,SAAS,GAAI;AAE9B,eAAUA,KAAI,GAAGA,KAAI,GAAGA,MAAO;AAE9B,aAAK,SAAUA,EAAC,IAAK,MAAOA,KAAI,MAAQ;AAAA,MAE3C;AAEE,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,QAAS,QAAQ,IAAI,SAAS,GAAI;AAEjC,YAAM,KAAK,KAAK;AAEhB,YAAO,MAAM,IAAK,GAAI,CAAG;AACzB,YAAO,SAAS,KAAM,GAAI,CAAG;AAC7B,YAAO,SAAS,KAAM,GAAI,CAAG;AAE7B,YAAO,SAAS,KAAM,GAAI,CAAG;AAC7B,YAAO,SAAS,KAAM,GAAI,CAAG;AAC7B,YAAO,SAAS,KAAM,GAAI,CAAG;AAE7B,YAAO,SAAS,KAAM,GAAI,CAAG;AAC7B,YAAO,SAAS,KAAM,GAAI,CAAG;AAC7B,YAAO,SAAS,KAAM,GAAI,CAAG;AAE7B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,QAAQ;AAEP,aAAO,IAAI,KAAK,YAAW,EAAG,UAAW,KAAK,QAAU;AAAA,IAE1D;AAAA,EAEA;AAEA,QAAM,MAAoB,oBAAI,QAAS;AAgDvC,QAAM,SAAS,CAAE;AAEjB,WAAS,SAAU,SAAU;AAE5B,QAAK,WAAW,OAAS;AAEzB,WAAQ,OAAO,IAAK;AAEpB,YAAQ,KAAM,OAAS;AAAA,EAExB;AA+BA,QAAM,uBAAqC,oBAAI,QAAO,EAAG;AAAA,IACxD;AAAA,IAAW;AAAA,IAAW;AAAA,IACtB;AAAA,IAAW;AAAA,IAAW;AAAA,IACtB;AAAA,IAAW;AAAA,IAAW;AAAA,EACvB;AAEA,QAAM,uBAAqC,oBAAI,QAAO,EAAG;AAAA,IACxD;AAAA,IAAW;AAAA,IAAY;AAAA,IACvB;AAAA,IAAY;AAAA,IAAW;AAAA,IACvB;AAAA,IAAW;AAAA,IAAW;AAAA,EACvB;AAEA,WAAS,wBAAwB;AAEhC,UAAMY,mBAAkB;AAAA,MAEvB,SAAS;AAAA,MAET,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAoBnB,QAAQ,CAAE;AAAA,MAEV,SAAS,SAAW,OAAO,kBAAkB,kBAAmB;AAE/D,YAAK,KAAK,YAAY,SAAS,qBAAqB,oBAAoB,CAAE,oBAAoB,CAAE,kBAAmB;AAElH,iBAAO;AAAA,QAEX;AAEG,YAAK,KAAK,OAAQ,gBAAgB,EAAG,aAAa,cAAe;AAEhE,gBAAM,IAAI,aAAc,MAAM,CAAG;AACjC,gBAAM,IAAI,aAAc,MAAM,CAAG;AACjC,gBAAM,IAAI,aAAc,MAAM,CAAG;AAAA,QAErC;AAEG,YAAK,KAAK,OAAQ,kBAAmB,cAAc,KAAK,OAAQ,gBAAkB,EAAC,WAAY;AAE9F,gBAAM,aAAc,KAAK,OAAQ,gBAAgB,EAAG,KAAO;AAC3D,gBAAM,aAAc,KAAK,OAAQ,gBAAgB,EAAG,OAAS;AAAA,QAEjE;AAEG,YAAK,KAAK,OAAQ,gBAAgB,EAAG,aAAa,cAAe;AAEhE,gBAAM,IAAI,aAAc,MAAM,CAAG;AACjC,gBAAM,IAAI,aAAc,MAAM,CAAG;AACjC,gBAAM,IAAI,aAAc,MAAM,CAAG;AAAA,QAErC;AAEG,eAAO;AAAA,MAEP;AAAA,MAED,qBAAqB,SAAW,OAAO,kBAAmB;AAEzD,eAAO,KAAK,QAAS,OAAO,KAAK,mBAAmB,gBAAkB;AAAA,MAEtE;AAAA,MAED,qBAAqB,SAAW,OAAO,kBAAmB;AAEzD,eAAO,KAAK,QAAS,OAAO,kBAAkB,KAAK,iBAAmB;AAAA,MAEtE;AAAA,MAED,cAAc,SAAW,YAAa;AAErC,eAAO,KAAK,OAAQ,UAAU,EAAG;AAAA,MAEjC;AAAA,MAED,aAAa,SAAW,YAAa;AAEpC,YAAK,eAAe,aAAe,QAAO;AAE1C,eAAO,KAAK,OAAQ,UAAU,EAAG;AAAA,MAEjC;AAAA,MAED,oBAAoB,SAAW,YAAa;AAE3C,eAAO,KAAK,OAAQ,UAAY,EAAC,uBAAuB,mBAAmB;AAAA,MAE3E;AAAA,MAED,0BAA0B,SAAW,QAAQ,aAAa,KAAK,mBAAoB;AAElF,eAAO,OAAO,UAAW,KAAK,OAAQ,UAAY,EAAC,qBAAuB;AAAA,MAE1E;AAAA,MAED,QAAQ,SAAW,aAAc;AAEhC,eAAO,OAAQ,KAAK,QAAQ,WAAa;AAAA,MAEzC;AAAA;AAAA,MAID,YAAY,SAAW,cAAc,kBAAkB,kBAAmB;AAEzE,eAAO,aACL,KAAM,KAAK,OAAQ,gBAAkB,EAAC,KAAK,EAC3C,SAAU,KAAK,OAAQ,gBAAgB,EAAG,OAAS;AAAA,MAErD;AAAA,MAED,6BAA6B,SAAW,YAAa;AAEpD,eAAO,KAAK,OAAQ,UAAY,EAAC,uBAAuB;AAAA,MAExD;AAAA,MAED,sBAAsB,SAAW,aAAa,KAAK,mBAAoB;AAEtE,eAAO,KAAK,OAAQ,UAAY,EAAC,wBAAwB;AAAA,MAEzD;AAAA;AAAA,MAID,uBAAuB,SAAW,OAAO,kBAAmB;AAE3D,iBAAU,6FAA6F;AAEvG,eAAOA,iBAAgB,oBAAqB,OAAO,gBAAkB;AAAA,MAErE;AAAA,MAED,qBAAqB,SAAW,OAAO,kBAAmB;AAEzD,iBAAU,2FAA2F;AAErG,eAAOA,iBAAgB,oBAAqB,OAAO,gBAAkB;AAAA,MAErE;AAAA,IAED;AAMD,UAAM,mBAAmB,CAAE,MAAO,MAAO,KAAO,KAAO,MAAO,IAAO;AACrE,UAAM,gCAAgC,CAAE,QAAQ,QAAQ,MAAQ;AAChE,UAAM,MAAM,CAAE,QAAQ,KAAQ;AAE9B,IAAAA,iBAAgB,OAAQ;AAAA,MAEvB,CAAE,oBAAwB,GAAA;AAAA,QACzB,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,SAAS;AAAA,QACT,uBAAuB;AAAA,QACvB,yBAAyB,EAAE,kBAAkB,eAAgB;AAAA,QAC7D,wBAAwB,EAAE,yBAAyB,eAAc;AAAA,MACjE;AAAA,MAED,CAAE,cAAkB,GAAA;AAAA,QACnB,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,SAAS;AAAA,QACT,uBAAuB;AAAA,QACvB,wBAAwB,EAAE,yBAAyB,eAAc;AAAA,MACjE;AAAA,IAEH,CAAI;AAEH,WAAOA;AAAA,EAER;AAEA,QAAM,kBAAgC,sCAAuB;AAE7D,WAAS,aAAc,GAAI;AAE1B,WAAS,IAAI,UAAY,IAAI,eAAe,KAAK,IAAK,IAAI,eAAe,cAAc,GAAK;AAAA,EAE7F;AAEA,WAAS,aAAc,GAAI;AAE1B,WAAS,IAAI,WAAc,IAAI,QAAQ,QAAU,KAAK,IAAK,GAAG,OAAO,IAAO;AAAA,EAE7E;AAAA,EAy3FA,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQV,YAAa,MAAM,IAAI,QAAS,UAAY,UAAY,QAAY,GAAED,OAAM,IAAI,QAAS,WAAY,WAAY,YAAe;AAS/H,WAAK,SAAS;AAOd,WAAK,MAAM;AAOX,WAAK,MAAMA;AAAA,IAEb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,IAAK,KAAKA,MAAM;AAEf,WAAK,IAAI,KAAM,GAAK;AACpB,WAAK,IAAI,KAAMA,IAAK;AAEpB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,aAAc,OAAQ;AAErB,WAAK,UAAW;AAEhB,eAAUX,KAAI,GAAG,KAAK,MAAM,QAAQA,KAAI,IAAIA,MAAK,GAAI;AAEpD,aAAK,cAAe,UAAU,UAAW,OAAOA,EAAC,CAAI;AAAA,MAExD;AAEE,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,uBAAwB,WAAY;AAEnC,WAAK,UAAW;AAEhB,eAAUA,KAAI,GAAG,KAAK,UAAU,OAAOA,KAAI,IAAIA,MAAO;AAErD,aAAK,cAAe,UAAU,oBAAqB,WAAWA,EAAC,CAAI;AAAA,MAEtE;AAEE,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,cAAe,QAAS;AAEvB,WAAK,UAAW;AAEhB,eAAUA,KAAI,GAAG,KAAK,OAAO,QAAQA,KAAI,IAAIA,MAAO;AAEnD,aAAK,cAAe,OAAQA,GAAK;AAAA,MAEpC;AAEE,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,qBAAsB,QAAQ,MAAO;AAEpC,YAAM,WAAW,UAAU,KAAM,IAAM,EAAC,eAAgB,GAAK;AAE7D,WAAK,IAAI,KAAM,MAAM,EAAG,IAAK,QAAU;AACvC,WAAK,IAAI,KAAM,MAAM,EAAG,IAAK,QAAU;AAEvC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYC,cAAe,QAAQ,UAAU,OAAQ;AAExC,WAAK,UAAW;AAEhB,aAAO,KAAK,eAAgB,QAAQ,OAAS;AAAA,IAE/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,QAAQ;AAEP,aAAO,IAAI,KAAK,cAAc,KAAM,IAAM;AAAA,IAE5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,KAAM,KAAM;AAEX,WAAK,IAAI,KAAM,IAAI,GAAK;AACxB,WAAK,IAAI,KAAM,IAAI,GAAK;AAExB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,YAAY;AAEX,WAAK,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI;AACvC,WAAK,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI;AAEvC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,UAAU;AAIT,aAAS,KAAK,IAAI,IAAI,KAAK,IAAI,KAAS,KAAK,IAAI,IAAI,KAAK,IAAI,KAAS,KAAK,IAAI,IAAI,KAAK,IAAI;AAAA,IAE/F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,UAAW,QAAS;AAEnB,aAAO,KAAK,YAAY,OAAO,IAAK,GAAG,GAAG,CAAC,IAAK,OAAO,WAAY,KAAK,KAAK,KAAK,GAAK,EAAC,eAAgB,GAAK;AAAA,IAE/G;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,QAAS,QAAS;AAEjB,aAAO,KAAK,QAAS,IAAG,OAAO,IAAK,GAAG,GAAG,CAAC,IAAK,OAAO,WAAY,KAAK,KAAK,KAAK,GAAK;AAAA,IAEzF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,cAAe,OAAQ;AAEtB,WAAK,IAAI,IAAK,KAAO;AACrB,WAAK,IAAI,IAAK,KAAO;AAErB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYC,eAAgB,QAAS;AAExB,WAAK,IAAI,IAAK,MAAQ;AACtB,WAAK,IAAI,IAAK,MAAQ;AAEtB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,eAAgB,QAAS;AAExB,WAAK,IAAI,UAAW,CAAE,MAAQ;AAC9B,WAAK,IAAI,UAAW,MAAQ;AAE5B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaC,eAAgB,QAAQ,UAAU,OAAQ;AAKzC,aAAO,kBAAmB,OAAO,KAAO;AAExC,YAAM,WAAW,OAAO;AAExB,UAAK,aAAa,QAAY;AAE7B,cAAM,oBAAoB,SAAS,aAAc,UAAY;AAK7D,YAAK,YAAY,QAAQ,sBAAsB,UAAa,OAAO,oBAAoB,MAAO;AAE7F,mBAAUA,KAAI,GAAG,IAAI,kBAAkB,OAAOA,KAAI,GAAGA,MAAO;AAE3D,gBAAK,OAAO,WAAW,MAAO;AAE7B,qBAAO,kBAAmBA,IAAG,SAAW;AAAA,YAE9C,OAAY;AAEN,wBAAU,oBAAqB,mBAAmBA,EAAG;AAAA,YAE3D;AAEK,sBAAU,aAAc,OAAO,WAAa;AAC5C,iBAAK,cAAe,SAAW;AAAA,UAEpC;AAAA,QAEA,OAAU;AAEN,cAAK,OAAO,gBAAgB,QAAY;AAIvC,gBAAK,OAAO,gBAAgB,MAAO;AAElC,qBAAO,mBAAoB;AAAA,YAEjC;AAEK,mBAAO,KAAM,OAAO,WAAa;AAAA,UAGtC,OAAW;AAIN,gBAAK,SAAS,gBAAgB,MAAO;AAEpC,uBAAS,mBAAoB;AAAA,YAEnC;AAEK,mBAAO,KAAM,SAAS,WAAa;AAAA,UAExC;AAEI,iBAAO,aAAc,OAAO,WAAa;AAEzC,eAAK,MAAO,MAAQ;AAAA,QAExB;AAAA,MAEA;AAEE,YAAM,WAAW,OAAO;AAExB,eAAUA,KAAI,GAAG,IAAI,SAAS,QAAQA,KAAI,GAAGA,MAAO;AAEnD,aAAK,eAAgB,SAAUA,EAAC,GAAI,OAAS;AAAA,MAEhD;AAEE,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,cAAe,OAAQ;AAEtB,aAAO,MAAM,KAAK,KAAK,IAAI,KAAK,MAAM,KAAK,KAAK,IAAI,KACnD,MAAM,KAAK,KAAK,IAAI,KAAK,MAAM,KAAK,KAAK,IAAI,KAC7C,MAAM,KAAK,KAAK,IAAI,KAAK,MAAM,KAAK,KAAK,IAAI;AAAA,IAEhD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,YAAa,KAAM;AAElB,aAAO,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,KACvD,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,KACjD,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI;AAAA,IAEpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,aAAc,OAAO,QAAS;AAK7B,aAAO,OAAO;AAAA,SACX,MAAM,IAAI,KAAK,IAAI,MAAQ,KAAK,IAAI,IAAI,KAAK,IAAI;AAAA,SACjD,MAAM,IAAI,KAAK,IAAI,MAAQ,KAAK,IAAI,IAAI,KAAK,IAAI;AAAA,SACjD,MAAM,IAAI,KAAK,IAAI,MAAQ,KAAK,IAAI,IAAI,KAAK,IAAI;AAAA,MACnD;AAAA,IAEH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,cAAe,KAAM;AAGpB,aAAO,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,KACvD,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,KACjD,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI;AAAA,IAEpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,iBAAkB,QAAS;AAG1B,WAAK,WAAY,OAAO,QAAQ,SAAW;AAG3C,aAAO,UAAU,kBAAmB,OAAO,MAAQ,KAAM,OAAO,SAAS,OAAO;AAAA,IAElF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,gBAAiB,OAAQ;AAKxB,UAAI,KAAKW;AAET,UAAK,MAAM,OAAO,IAAI,GAAI;AAEzB,cAAM,MAAM,OAAO,IAAI,KAAK,IAAI;AAChC,QAAAA,OAAM,MAAM,OAAO,IAAI,KAAK,IAAI;AAAA,MAEnC,OAAS;AAEN,cAAM,MAAM,OAAO,IAAI,KAAK,IAAI;AAChC,QAAAA,OAAM,MAAM,OAAO,IAAI,KAAK,IAAI;AAAA,MAEnC;AAEE,UAAK,MAAM,OAAO,IAAI,GAAI;AAEzB,eAAO,MAAM,OAAO,IAAI,KAAK,IAAI;AACjC,QAAAA,QAAO,MAAM,OAAO,IAAI,KAAK,IAAI;AAAA,MAEpC,OAAS;AAEN,eAAO,MAAM,OAAO,IAAI,KAAK,IAAI;AACjC,QAAAA,QAAO,MAAM,OAAO,IAAI,KAAK,IAAI;AAAA,MAEpC;AAEE,UAAK,MAAM,OAAO,IAAI,GAAI;AAEzB,eAAO,MAAM,OAAO,IAAI,KAAK,IAAI;AACjC,QAAAA,QAAO,MAAM,OAAO,IAAI,KAAK,IAAI;AAAA,MAEpC,OAAS;AAEN,eAAO,MAAM,OAAO,IAAI,KAAK,IAAI;AACjC,QAAAA,QAAO,MAAM,OAAO,IAAI,KAAK,IAAI;AAAA,MAEpC;AAEE,aAAS,OAAO,CAAE,MAAM,YAAYA,QAAO,CAAE,MAAM;AAAA,IAErD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,mBAAoB,UAAW;AAE9B,UAAK,KAAK,WAAY;AAErB,eAAO;AAAA,MAEV;AAGE,WAAK,UAAW,OAAS;AACzB,eAAS,WAAY,KAAK,KAAK,OAAS;AAGxC,YAAM,WAAY,SAAS,GAAG,OAAS;AACvC,YAAM,WAAY,SAAS,GAAG,OAAS;AACvC,YAAM,WAAY,SAAS,GAAG,OAAS;AAGvC,UAAI,WAAY,OAAO,KAAO;AAC9B,UAAI,WAAY,OAAO,KAAO;AAC9B,UAAI,WAAY,OAAO,KAAO;AAK9B,UAAI,OAAO;AAAA,QACV;AAAA,QAAG,CAAE,IAAI;AAAA,QAAG,IAAI;AAAA,QAAG;AAAA,QAAG,CAAE,IAAI;AAAA,QAAG,IAAI;AAAA,QAAG;AAAA,QAAG,CAAE,IAAI;AAAA,QAAG,IAAI;AAAA,QACtD,IAAI;AAAA,QAAG;AAAA,QAAG,CAAE,IAAI;AAAA,QAAG,IAAI;AAAA,QAAG;AAAA,QAAG,CAAE,IAAI;AAAA,QAAG,IAAI;AAAA,QAAG;AAAA,QAAG,CAAE,IAAI;AAAA,QACtD,CAAE,IAAI;AAAA,QAAG,IAAI;AAAA,QAAG;AAAA,QAAG,CAAE,IAAI;AAAA,QAAG,IAAI;AAAA,QAAG;AAAA,QAAG,CAAE,IAAI;AAAA,QAAG,IAAI;AAAA,QAAG;AAAA,MACtD;AACD,UAAK,CAAE,WAAY,MAAM,OAAO,OAAO,OAAO,WAAa;AAE1D,eAAO;AAAA,MAEV;AAGE,aAAO,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAG;AACpC,UAAK,CAAE,WAAY,MAAM,OAAO,OAAO,OAAO,WAAa;AAE1D,eAAO;AAAA,MAEV;AAIE,sBAAgB,aAAc,KAAK,GAAK;AACxC,aAAO,CAAE,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,CAAG;AAElE,aAAO,WAAY,MAAM,OAAO,OAAO,OAAO,QAAU;AAAA,IAE1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,WAAY,OAAO,QAAS;AAE3B,aAAO,OAAO,KAAM,KAAO,EAAC,MAAO,KAAK,KAAK,KAAK,GAAK;AAAA,IAEzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,gBAAiB,OAAQ;AAExB,aAAO,KAAK,WAAY,OAAO,SAAW,EAAC,WAAY,KAAO;AAAA,IAEhE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,kBAAmB,QAAS;AAE3B,UAAK,KAAK,WAAY;AAErB,eAAO,UAAW;AAAA,MAErB,OAAS;AAEN,aAAK,UAAW,OAAO,MAAQ;AAE/B,eAAO,SAAS,KAAK,QAAS,SAAW,EAAC,OAAM,IAAK;AAAA,MAExD;AAEE,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWC,UAAW,KAAM;AAEhB,WAAK,IAAI,IAAK,IAAI,GAAK;AACvB,WAAK,IAAI,IAAK,IAAI,GAAK;AAGvB,UAAK,KAAK,UAAY,MAAK,UAAW;AAEtC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,MAAO,KAAM;AAEZ,WAAK,IAAI,IAAK,IAAI,GAAK;AACvB,WAAK,IAAI,IAAK,IAAI,GAAK;AAEvB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,aAAc,QAAS;AAGtB,UAAK,KAAK,QAAS,EAAG,QAAO;AAG7B,cAAS,CAAC,EAAG,IAAK,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,EAAG,aAAc;AACrE,cAAS,CAAC,EAAG,IAAK,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,EAAG,aAAc;AACrE,cAAS,CAAC,EAAG,IAAK,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,EAAG,aAAc;AACrE,cAAS,CAAC,EAAG,IAAK,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,EAAG,aAAc;AACrE,cAAS,CAAC,EAAG,IAAK,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,EAAG,aAAc;AACrE,cAAS,CAAC,EAAG,IAAK,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,EAAG,aAAc;AACrE,cAAS,CAAC,EAAG,IAAK,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,EAAG,aAAc;AACrE,cAAS,CAAC,EAAG,IAAK,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,EAAG,aAAc;AAErE,WAAK,cAAe,OAAS;AAE7B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,UAAW,QAAS;AAEnB,WAAK,IAAI,IAAK,MAAQ;AACtB,WAAK,IAAI,IAAK,MAAQ;AAEtB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,OAAQ,KAAM;AAEb,aAAO,IAAI,IAAI,OAAQ,KAAK,QAAS,IAAI,IAAI,OAAQ,KAAK,GAAK;AAAA,IAEjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,SAAS;AAER,aAAO;AAAA,QACN,KAAK,KAAK,IAAI,QAAS;AAAA,QACvB,KAAK,KAAK,IAAI,QAAO;AAAA,MACrB;AAAA,IAEH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,SAAU,MAAO;AAEhB,WAAK,IAAI,UAAW,KAAK,GAAK;AAC9B,WAAK,IAAI,UAAW,KAAK,GAAK;AAC9B,aAAO;AAAA,IAET;AAAA,EAEA;AAEA,QAAM,UAAU;AAAA,IACD,oBAAI,QAAS;AAAA,IACb,oBAAI,QAAS;AAAA,IACb,oBAAI,QAAS;AAAA,IACb,oBAAI,QAAS;AAAA,IACb,oBAAI,QAAS;AAAA,IACb,oBAAI,QAAS;AAAA,IACb,oBAAI,QAAS;AAAA,IACb,oBAAI,QAAO;AAAA,EAC1B;AAEA,QAAM,YAA0B,oBAAI,QAAS;AAE7C,QAAM,SAAuB,oBAAI,KAAM;AAIvC,QAAM,QAAsB,oBAAI,QAAS;AACzC,QAAM,QAAsB,oBAAI,QAAS;AACzC,QAAM,QAAsB,oBAAI,QAAS;AAIzC,QAAM,MAAoB,oBAAI,QAAS;AACvC,QAAM,MAAoB,oBAAI,QAAS;AACvC,QAAM,MAAoB,oBAAI,QAAS;AAEvC,QAAM,UAAwB,oBAAI,QAAS;AAC3C,QAAM,WAAyB,oBAAI,QAAS;AAC5C,QAAM,kBAAgC,oBAAI,QAAS;AACnD,QAAM,YAA0B,oBAAI,QAAS;AAE7C,WAAS,WAAY,MAAM,IAAI,IAAI,IAAI,SAAU;AAEhD,aAAUX,KAAI,GAAG,IAAI,KAAK,SAAS,GAAGA,MAAK,GAAGA,MAAK,GAAI;AAEtD,gBAAU,UAAW,MAAMA,EAAG;AAE9B,YAAM,IAAI,QAAQ,IAAI,KAAK,IAAK,UAAU,KAAM,QAAQ,IAAI,KAAK,IAAK,UAAU,CAAC,IAAK,QAAQ,IAAI,KAAK,IAAK,UAAU,CAAG;AAEzH,YAAM,KAAK,GAAG,IAAK,SAAW;AAC9B,YAAM,KAAK,GAAG,IAAK,SAAW;AAC9B,YAAM,KAAK,GAAG,IAAK,SAAW;AAE9B,UAAK,KAAK,IAAK,CAAE,KAAK,IAAK,IAAI,IAAI,EAAI,GAAE,KAAK,IAAK,IAAI,IAAI,EAAE,CAAI,IAAG,GAAI;AAIvE,eAAO;AAAA,MAEV;AAAA,IAEA;AAEC,WAAO;AAAA,EAER;AAg9JA,QAAM,iBAAiB;AAAA,IAAE,aAAa;AAAA,IAAU,gBAAgB;AAAA,IAAU,QAAQ;AAAA,IAAU,cAAc;AAAA,IAAU,SAAS;AAAA,IAC5H,SAAS;AAAA,IAAU,UAAU;AAAA,IAAU,SAAS;AAAA,IAAU,kBAAkB;AAAA,IAAU,QAAQ;AAAA,IAAU,cAAc;AAAA,IACtH,SAAS;AAAA,IAAU,aAAa;AAAA,IAAU,aAAa;AAAA,IAAU,cAAc;AAAA,IAAU,aAAa;AAAA,IAAU,SAAS;AAAA,IACzH,kBAAkB;AAAA,IAAU,YAAY;AAAA,IAAU,WAAW;AAAA,IAAU,QAAQ;AAAA,IAAU,YAAY;AAAA,IAAU,YAAY;AAAA,IAC3H,iBAAiB;AAAA,IAAU,YAAY;AAAA,IAAU,aAAa;AAAA,IAAU,YAAY;AAAA,IAAU,aAAa;AAAA,IAAU,eAAe;AAAA,IACpI,kBAAkB;AAAA,IAAU,cAAc;AAAA,IAAU,cAAc;AAAA,IAAU,WAAW;AAAA,IAAU,cAAc;AAAA,IAAU,gBAAgB;AAAA,IACzI,iBAAiB;AAAA,IAAU,iBAAiB;AAAA,IAAU,iBAAiB;AAAA,IAAU,iBAAiB;AAAA,IAAU,cAAc;AAAA,IAC1H,YAAY;AAAA,IAAU,eAAe;AAAA,IAAU,WAAW;AAAA,IAAU,WAAW;AAAA,IAAU,cAAc;AAAA,IAAU,aAAa;AAAA,IAC9H,eAAe;AAAA,IAAU,eAAe;AAAA,IAAU,WAAW;AAAA,IAAU,aAAa;AAAA,IAAU,cAAc;AAAA,IAAU,QAAQ;AAAA,IAC9H,aAAa;AAAA,IAAU,QAAQ;AAAA,IAAU,SAAS;AAAA,IAAU,eAAe;AAAA,IAAU,QAAQ;AAAA,IAAU,YAAY;AAAA,IAAU,WAAW;AAAA,IACxI,aAAa;AAAA,IAAU,UAAU;AAAA,IAAU,SAAS;AAAA,IAAU,SAAS;AAAA,IAAU,YAAY;AAAA,IAAU,iBAAiB;AAAA,IAAU,aAAa;AAAA,IAC/I,gBAAgB;AAAA,IAAU,aAAa;AAAA,IAAU,cAAc;AAAA,IAAU,aAAa;AAAA,IAAU,wBAAwB;AAAA,IAAU,aAAa;AAAA,IAC/I,cAAc;AAAA,IAAU,aAAa;AAAA,IAAU,aAAa;AAAA,IAAU,eAAe;AAAA,IAAU,iBAAiB;AAAA,IAAU,gBAAgB;AAAA,IAC1I,kBAAkB;AAAA,IAAU,kBAAkB;AAAA,IAAU,kBAAkB;AAAA,IAAU,eAAe;AAAA,IAAU,QAAQ;AAAA,IAAU,aAAa;AAAA,IAC5I,SAAS;AAAA,IAAU,WAAW;AAAA,IAAU,UAAU;AAAA,IAAU,oBAAoB;AAAA,IAAU,cAAc;AAAA,IAAU,gBAAgB;AAAA,IAClI,gBAAgB;AAAA,IAAU,kBAAkB;AAAA,IAAU,mBAAmB;AAAA,IAAU,qBAAqB;AAAA,IAAU,mBAAmB;AAAA,IACrI,mBAAmB;AAAA,IAAU,gBAAgB;AAAA,IAAU,aAAa;AAAA,IAAU,aAAa;AAAA,IAAU,YAAY;AAAA,IAAU,eAAe;AAAA,IAC1I,QAAQ;AAAA,IAAU,WAAW;AAAA,IAAU,SAAS;AAAA,IAAU,aAAa;AAAA,IAAU,UAAU;AAAA,IAAU,aAAa;AAAA,IAAU,UAAU;AAAA,IACtI,iBAAiB;AAAA,IAAU,aAAa;AAAA,IAAU,iBAAiB;AAAA,IAAU,iBAAiB;AAAA,IAAU,cAAc;AAAA,IAAU,aAAa;AAAA,IAC7I,QAAQ;AAAA,IAAU,QAAQ;AAAA,IAAU,QAAQ;AAAA,IAAU,cAAc;AAAA,IAAU,UAAU;AAAA,IAAU,iBAAiB;AAAA,IAAU,OAAO;AAAA,IAAU,aAAa;AAAA,IAC3J,aAAa;AAAA,IAAU,eAAe;AAAA,IAAU,UAAU;AAAA,IAAU,cAAc;AAAA,IAAU,YAAY;AAAA,IAAU,YAAY;AAAA,IAC9H,UAAU;AAAA,IAAU,UAAU;AAAA,IAAU,WAAW;AAAA,IAAU,aAAa;AAAA,IAAU,aAAa;AAAA,IAAU,aAAa;AAAA,IAAU,QAAQ;AAAA,IAC1I,eAAe;AAAA,IAAU,aAAa;AAAA,IAAU,OAAO;AAAA,IAAU,QAAQ;AAAA,IAAU,WAAW;AAAA,IAAU,UAAU;AAAA,IAAU,aAAa;AAAA,IACzI,UAAU;AAAA,IAAU,SAAS;AAAA,IAAU,SAAS;AAAA,IAAU,cAAc;AAAA,IAAU,UAAU;AAAA,IAAU,eAAe;AAAA,EAAU;AAEhI,QAAM,QAAQ,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAG;AAClC,QAAM,QAAQ,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAG;AAElC,WAAS,QAAS,GAAG,GAAG,GAAI;AAE3B,QAAK,IAAI,EAAI,MAAK;AAClB,QAAK,IAAI,EAAI,MAAK;AAClB,QAAK,IAAI,IAAI,EAAI,QAAO,KAAM,IAAI,KAAM,IAAI;AAC5C,QAAK,IAAI,IAAI,EAAI,QAAO;AACxB,QAAK,IAAI,IAAI,EAAI,QAAO,KAAM,IAAI,KAAM,KAAM,IAAI,IAAI;AACtD,WAAO;AAAA,EAER;AAAA,EA6CA,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaX,YAAa,GAAG,GAAG,GAAI;AAStB,WAAK,UAAU;AAQf,WAAK,IAAI;AAQT,WAAK,IAAI;AAQT,WAAK,IAAI;AAET,aAAO,KAAK,IAAK,GAAG,GAAG,CAAG;AAAA,IAE5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWC,IAAK,GAAG,GAAG,GAAI;AAEd,UAAK,MAAM,UAAa,MAAM,QAAY;AAIzC,cAAM,QAAQ;AAEd,YAAK,SAAS,MAAM,SAAU;AAE7B,eAAK,KAAM,KAAO;AAAA,QAEtB,WAAe,OAAO,UAAU,UAAW;AAEvC,eAAK,OAAQ,KAAO;AAAA,QAExB,WAAe,OAAO,UAAU,UAAW;AAEvC,eAAK,SAAU,KAAO;AAAA,QAE1B;AAAA,MAEA,OAAS;AAEN,aAAK,OAAQ,GAAG,GAAG,CAAG;AAAA,MAEzB;AAEE,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,UAAW,QAAS;AAEnB,WAAK,IAAI;AACT,WAAK,IAAI;AACT,WAAK,IAAI;AAET,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,OAAQ,KAAK,aAAa,gBAAiB;AAE1C,YAAM,KAAK,MAAO,GAAK;AAEvB,WAAK,KAAM,OAAO,KAAK,OAAQ;AAC/B,WAAK,KAAM,OAAO,IAAI,OAAQ;AAC9B,WAAK,KAAM,MAAM,OAAQ;AAEzB,sBAAgB,oBAAqB,MAAM,UAAY;AAEvD,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWC,OAAQ,GAAG,GAAG,GAAG,aAAa,gBAAgB,mBAAoB;AAEjE,WAAK,IAAI;AACT,WAAK,IAAI;AACT,WAAK,IAAI;AAET,sBAAgB,oBAAqB,MAAM,UAAY;AAEvD,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWC,OAAQ,GAAG,GAAG,GAAG,aAAa,gBAAgB,mBAAoB;AAGjE,UAAI,gBAAiB,GAAG,CAAG;AAC3B,UAAI,MAAO,GAAG,GAAG,CAAG;AACpB,UAAI,MAAO,GAAG,GAAG,CAAG;AAEpB,UAAK,MAAM,GAAI;AAEd,aAAK,IAAI,KAAK,IAAI,KAAK,IAAI;AAAA,MAE9B,OAAS;AAEN,cAAM,IAAI,KAAK,MAAM,KAAM,IAAI,KAAM,IAAI,IAAM,IAAI;AACnD,cAAM,IAAM,IAAI,IAAM;AAEtB,aAAK,IAAI,QAAS,GAAG,GAAG,IAAI,IAAI,CAAG;AACnC,aAAK,IAAI,QAAS,GAAG,GAAG,CAAG;AAC3B,aAAK,IAAI,QAAS,GAAG,GAAG,IAAI,IAAI,CAAG;AAAA,MAEtC;AAEE,sBAAgB,oBAAqB,MAAM,UAAY;AAEvD,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYC,SAAU,OAAO,aAAa,gBAAiB;AAE9C,eAAS,YAAa,QAAS;AAE9B,YAAK,WAAW,OAAY;AAE5B,YAAK,WAAY,MAAQ,IAAG,GAAI;AAE/B,kBAAQ,KAAM,qCAAqC,QAAQ,mBAAqB;AAAA,QAEpF;AAAA,MAEA;AAGE,UAAI;AAEJ,UAAK,IAAI,qBAAqB,KAAM,KAAK,GAAK;AAI7C,YAAI;AACJ,cAAM,OAAO,EAAG,CAAG;AACnB,cAAM,aAAa,EAAG,CAAG;AAEzB,gBAAS,MAAI;AAAA,UAEZ,KAAK;AAAA,UACL,KAAK;AAEJ,gBAAK,QAAQ,+DAA+D,KAAM,UAAU,GAAK;AAIhG,0BAAa,MAAO,EAAK;AAEzB,qBAAO,KAAK;AAAA,gBACX,KAAK,IAAK,KAAK,SAAU,MAAO,CAAG,GAAE,EAAI,CAAA,IAAK;AAAA,gBAC9C,KAAK,IAAK,KAAK,SAAU,MAAO,CAAG,GAAE,EAAI,CAAA,IAAK;AAAA,gBAC9C,KAAK,IAAK,KAAK,SAAU,MAAO,CAAG,GAAE,EAAI,CAAA,IAAK;AAAA,gBAC9C;AAAA,cACA;AAAA,YAEP;AAEK,gBAAK,QAAQ,qEAAqE,KAAM,UAAU,GAAK;AAItG,0BAAa,MAAO,EAAK;AAEzB,qBAAO,KAAK;AAAA,gBACX,KAAK,IAAK,KAAK,SAAU,MAAO,CAAG,GAAE,EAAI,CAAA,IAAK;AAAA,gBAC9C,KAAK,IAAK,KAAK,SAAU,MAAO,CAAG,GAAE,EAAI,CAAA,IAAK;AAAA,gBAC9C,KAAK,IAAK,KAAK,SAAU,MAAO,CAAG,GAAE,EAAI,CAAA,IAAK;AAAA,gBAC9C;AAAA,cACA;AAAA,YAEP;AAEK;AAAA,UAED,KAAK;AAAA,UACL,KAAK;AAEJ,gBAAK,QAAQ,qFAAqF,KAAM,UAAU,GAAK;AAItH,0BAAa,MAAO,EAAK;AAEzB,qBAAO,KAAK;AAAA,gBACX,WAAY,MAAO,CAAG,CAAA,IAAK;AAAA,gBAC3B,WAAY,MAAO,CAAG,CAAA,IAAK;AAAA,gBAC3B,WAAY,MAAO,CAAG,CAAA,IAAK;AAAA,gBAC3B;AAAA,cACA;AAAA,YAEP;AAEK;AAAA,UAED;AAEC,oBAAQ,KAAM,sCAAsC,KAAO;AAAA,QAEhE;AAAA,MAEG,WAAW,IAAI,oBAAoB,KAAM,KAAK,GAAK;AAInD,cAAM,MAAM,EAAG,CAAG;AAClB,cAAM,OAAO,IAAI;AAEjB,YAAK,SAAS,GAAI;AAGjB,iBAAO,KAAK;AAAA,YACX,SAAU,IAAI,OAAQ,CAAC,GAAI,EAAI,IAAG;AAAA,YAClC,SAAU,IAAI,OAAQ,CAAC,GAAI,EAAI,IAAG;AAAA,YAClC,SAAU,IAAI,OAAQ,CAAC,GAAI,EAAI,IAAG;AAAA,YAClC;AAAA,UACA;AAAA,QAEL,WAAe,SAAS,GAAI;AAGxB,iBAAO,KAAK,OAAQ,SAAU,KAAK,EAAI,GAAE,UAAY;AAAA,QAEzD,OAAU;AAEN,kBAAQ,KAAM,oCAAoC,KAAO;AAAA,QAE7D;AAAA,MAEG,WAAW,SAAS,MAAM,SAAS,GAAI;AAEvC,eAAO,KAAK,aAAc,OAAO,UAAY;AAAA,MAEhD;AAEE,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAeC,aAAc,OAAO,aAAa,gBAAiB;AAGlD,YAAM,MAAM,eAAgB,MAAM,YAAW,CAAI;AAEjD,UAAK,QAAQ,QAAY;AAGxB,aAAK,OAAQ,KAAK,UAAY;AAAA,MAEjC,OAAS;AAGN,gBAAQ,KAAM,gCAAgC,KAAO;AAAA,MAExD;AAEE,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,QAAQ;AAEP,aAAO,IAAI,KAAK,YAAa,KAAK,GAAG,KAAK,GAAG,KAAK,CAAG;AAAA,IAEvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,KAAM,OAAQ;AAEb,WAAK,IAAI,MAAM;AACf,WAAK,IAAI,MAAM;AACf,WAAK,IAAI,MAAM;AAEf,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,iBAAkB,OAAQ;AAEzB,WAAK,IAAI,aAAc,MAAM,CAAG;AAChC,WAAK,IAAI,aAAc,MAAM,CAAG;AAChC,WAAK,IAAI,aAAc,MAAM,CAAG;AAEhC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,iBAAkB,OAAQ;AAEzB,WAAK,IAAI,aAAc,MAAM,CAAG;AAChC,WAAK,IAAI,aAAc,MAAM,CAAG;AAChC,WAAK,IAAI,aAAc,MAAM,CAAG;AAEhC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,sBAAsB;AAErB,WAAK,iBAAkB,IAAM;AAE7B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOC,sBAAsB;AAErB,WAAK,iBAAkB,IAAM;AAE7B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,OAAQ,aAAa,gBAAiB;AAErC,sBAAgB,oBAAqB,OAAO,KAAM,IAAI,GAAI,UAAY;AAEtE,aAAO,KAAK,MAAO,MAAO,OAAO,IAAI,KAAK,GAAG,GAAK,CAAA,IAAK,QAAQ,KAAK,MAAO,MAAO,OAAO,IAAI,KAAK,GAAG,GAAG,CAAI,IAAG,MAAM,KAAK,MAAO,MAAO,OAAO,IAAI,KAAK,GAAG,GAAG,CAAI;AAAA,IAEpK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,aAAc,aAAa,gBAAiB;AAE3C,cAAS,WAAW,KAAK,OAAQ,YAAa,SAAU,EAAE,GAAK,MAAO,EAAI;AAAA,IAE5E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,OAAQ,QAAQ,aAAa,gBAAgB,mBAAoB;AAIhE,sBAAgB,oBAAqB,OAAO,KAAM,IAAI,GAAI,UAAY;AAEtE,YAAM,IAAI,OAAO,GAAG,IAAI,OAAO,GAAG,IAAI,OAAO;AAE7C,YAAMW,OAAM,KAAK,IAAK,GAAG,GAAG,CAAG;AAC/B,YAAM,MAAM,KAAK,IAAK,GAAG,GAAG,CAAG;AAE/B,UAAI,KAAK;AACT,YAAM,aAAc,MAAMA,QAAQ;AAElC,UAAK,QAAQA,MAAM;AAElB,cAAM;AACN,qBAAa;AAAA,MAEhB,OAAS;AAEN,cAAM,QAAQA,OAAM;AAEpB,qBAAa,aAAa,MAAM,SAAUA,OAAM,OAAQ,SAAU,IAAIA,OAAM;AAE5E,gBAASA,MAAG;AAAA,UAEX,KAAK;AAAG,mBAAQ,IAAI,KAAM,SAAU,IAAI,IAAI,IAAI;AAAK;AAAA,UACrD,KAAK;AAAG,mBAAQ,IAAI,KAAM,QAAQ;AAAG;AAAA,UACrC,KAAK;AAAG,mBAAQ,IAAI,KAAM,QAAQ;AAAG;AAAA,QAEzC;AAEG,eAAO;AAAA,MAEV;AAEE,aAAO,IAAI;AACX,aAAO,IAAI;AACX,aAAO,IAAI;AAEX,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,OAAQ,QAAQ,aAAa,gBAAgB,mBAAoB;AAEhE,sBAAgB,oBAAqB,OAAO,KAAM,IAAI,GAAI,UAAY;AAEtE,aAAO,IAAI,OAAO;AAClB,aAAO,IAAI,OAAO;AAClB,aAAO,IAAI,OAAO;AAElB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,SAAU,aAAa,gBAAiB;AAEvC,sBAAgB,oBAAqB,OAAO,KAAM,IAAI,GAAI,UAAY;AAEtE,YAAM,IAAI,OAAO,GAAG,IAAI,OAAO,GAAG,IAAI,OAAO;AAE7C,UAAK,eAAe,gBAAiB;AAGpC,eAAO,SAAU,UAAY,IAAI,EAAE,QAAS,CAAC,KAAQ,EAAE,QAAS,CAAC,KAAQ,EAAE,QAAS,CAAG,CAAA;AAAA,MAE1F;AAEE,aAAO,OAAQ,KAAK,MAAO,IAAI,GAAK,CAAA,IAAM,KAAK,MAAO,IAAI,GAAG,CAAI,IAAI,KAAK,MAAO,IAAI,GAAK,CAAA;AAAA,IAE5F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYC,UAAW,GAAG,GAAG,GAAI;AAEpB,WAAK,OAAQ,KAAO;AAEpB,aAAO,KAAK,OAAQ,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAG;AAAA,IAE7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,IAAK,OAAQ;AAEZ,WAAK,KAAK,MAAM;AAChB,WAAK,KAAK,MAAM;AAChB,WAAK,KAAK,MAAM;AAEhB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,UAAW,QAAQ,QAAS;AAE3B,WAAK,IAAI,OAAO,IAAI,OAAO;AAC3B,WAAK,IAAI,OAAO,IAAI,OAAO;AAC3B,WAAK,IAAI,OAAO,IAAI,OAAO;AAE3B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,UAAW,GAAI;AAEd,WAAK,KAAK;AACV,WAAK,KAAK;AACV,WAAK,KAAK;AAEV,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,IAAK,OAAQ;AAEZ,WAAK,IAAI,KAAK,IAAK,GAAG,KAAK,IAAI,MAAM,CAAG;AACxC,WAAK,IAAI,KAAK,IAAK,GAAG,KAAK,IAAI,MAAM,CAAG;AACxC,WAAK,IAAI,KAAK,IAAK,GAAG,KAAK,IAAI,MAAM,CAAG;AAExC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,SAAU,OAAQ;AAEjB,WAAK,KAAK,MAAM;AAChB,WAAK,KAAK,MAAM;AAChB,WAAK,KAAK,MAAM;AAEhB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,eAAgB,GAAI;AAEnB,WAAK,KAAK;AACV,WAAK,KAAK;AACV,WAAK,KAAK;AAEV,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWC,KAAM,OAAO,OAAQ;AAEpB,WAAK,MAAO,MAAM,IAAI,KAAK,KAAM;AACjC,WAAK,MAAO,MAAM,IAAI,KAAK,KAAM;AACjC,WAAK,MAAO,MAAM,IAAI,KAAK,KAAM;AAEjC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYC,WAAY,QAAQ,QAAQ,OAAQ;AAEnC,WAAK,IAAI,OAAO,KAAM,OAAO,IAAI,OAAO,KAAM;AAC9C,WAAK,IAAI,OAAO,KAAM,OAAO,IAAI,OAAO,KAAM;AAC9C,WAAK,IAAI,OAAO,KAAM,OAAO,IAAI,OAAO,KAAM;AAE9C,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaC,QAAS,OAAO,OAAQ;AAEvB,WAAK,OAAQ,KAAO;AACpB,YAAM,OAAQ,KAAO;AAErB,YAAM,IAAI,KAAM,MAAM,GAAG,MAAM,GAAG,KAAO;AACzC,YAAM,IAAI,KAAM,MAAM,GAAG,MAAM,GAAG,KAAO;AACzC,YAAM,IAAI,KAAM,MAAM,GAAG,MAAM,GAAG,KAAO;AAEzC,WAAK,OAAQ,GAAG,GAAG,CAAG;AAEtB,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,eAAgB,GAAI;AAEnB,WAAK,IAAI,EAAE;AACX,WAAK,IAAI,EAAE;AACX,WAAK,IAAI,EAAE;AAEX,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,aAAc,GAAI;AAEjB,YAAM,IAAI,KAAK,GAAG,IAAI,KAAK,GAAG,IAAI,KAAK;AACvC,YAAM,IAAI,EAAE;AAEZ,WAAK,IAAI,EAAG,CAAG,IAAG,IAAI,EAAG,CAAG,IAAG,IAAI,EAAG,CAAG,IAAG;AAC5C,WAAK,IAAI,EAAG,CAAG,IAAG,IAAI,EAAG,CAAG,IAAG,IAAI,EAAG,CAAG,IAAG;AAC5C,WAAK,IAAI,EAAG,CAAG,IAAG,IAAI,EAAG,CAAG,IAAG,IAAI,EAAG,CAAG,IAAG;AAE5C,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,OAAQ,GAAI;AAEX,aAAS,EAAE,MAAM,KAAK,KAAS,EAAE,MAAM,KAAK,KAAS,EAAE,MAAM,KAAK;AAAA,IAEpE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,UAAW,OAAO,SAAS,GAAI;AAE9B,WAAK,IAAI,MAAO,MAAQ;AACxB,WAAK,IAAI,MAAO,SAAS,CAAG;AAC5B,WAAK,IAAI,MAAO,SAAS,CAAG;AAE5B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUC,QAAS,QAAQ,IAAI,SAAS,GAAI;AAEjC,YAAO,UAAW,KAAK;AACvB,YAAO,SAAS,CAAG,IAAG,KAAK;AAC3B,YAAO,SAAS,CAAG,IAAG,KAAK;AAE3B,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASC,oBAAqB,WAAW,OAAQ;AAEvC,WAAK,IAAI,UAAU,KAAM,KAAO;AAChC,WAAK,IAAI,UAAU,KAAM,KAAO;AAChC,WAAK,IAAI,UAAU,KAAM,KAAO;AAEhC,aAAO;AAAA,IAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQC,SAAS;AAER,aAAO,KAAK,OAAQ;AAAA,IAEtB;AAAA,IAEC,EAAG,OAAO,YAAa;AAEtB,YAAM,KAAK;AACX,YAAM,KAAK;AACX,YAAM,KAAK;AAAA,IAEb;AAAA,EAEA;AAEA,QAAM,SAAuB,oBAAI,MAAO;AAUxC,QAAM,QAAQ;AAq/yCd,MAAK,OAAO,uBAAuB,aAAc;AAEhD,uBAAmB,cAAe,IAAI,YAAa,YAAY,EAAE,QAAQ;AAAA,MACxE,UAAU;AAAA,IACV,EAAA,EAAM;AAAA,EAER;AAEA,MAAK,OAAO,WAAW,aAAc;AAEpC,QAAK,OAAO,WAAY;AAEvB,cAAQ,KAAM,yDAA2D;AAAA,IAE3E,OAAQ;AAEN,aAAO,YAAY;AAAA,IAErB;AAAA,EAEA;AC54yDO,QAAM,eAAe;AACrB,QAAM,eAAe;AAIrB,QAAM,gBAAgB;AAChB,QAAA,aAAa,KAAK,IAAI,aAAa;AAOzC,QAAM,uBAAuB;AAC7B,QAAM,wBAAwB;AAK9B,QAAM,kBAAkB,KAAK;AAC7B,QAAM,mBAAmB,KAAK;AAE9B,QAAM,uBAAuB;AAgBxB,MAAA,kCAAAE,mBAAL;AACLA,mBAAA,KAAM,IAAA;AACNA,mBAAA,KAAM,IAAA;AACNA,mBAAA,OAAQ,IAAA;AACRA,mBAAA,QAAS,IAAA;AACTA,mBAAA,QAAS,IAAA;AACTA,mBAAA,WAAY,IAAA;AACZA,mBAAA,KAAM,IAAA;AAPIA,WAAAA;AAAAA,EAAA,GAAA,iBAAA,CAAA,CAAA;ACsZL,WAAS,cAAc,GAAqB;;AACjD,QAAI,eAAe;AACnB,UAAM,QAAQ,EACX,MAAM,IAAI,EACV,IAAI,CAAC,SAAS;AACP,YAAA,cAAc,KAAK,QAAQ;AACjC,UAAI,cAAc;AACT,eAAA;AAAA,MAAA;AAEL,UAAA,YAAY,SAAS,GAAG;AACX,uBAAA;AACR,eAAA;AAAA,MAAA;AAEF,aAAA;AAAA,IACR,CAAA,EACA,OAAO,CAAC,SAAS,QAAQ,IAAI;AACzB,WAAA,MAAM,SAAS,KAAK,MAAM,MAAM,SAAS,CAAC,EAAE,WAAW,GAAG;AAC/D,YAAM,IAAI;AAAA,IAAA;AAER,QAAA,MAAM,WAAW,GAAG;AACtB,aAAO,CAAC;AAAA,IAAA;AAGV,UAAM,UAASJ,MAAA,MAAM,CAAC,EAAE,MAAM,MAAM,MAArB,gBAAAA,IAAyB;AACxC,QAAI,CAAC,QAAQ;AACJ,aAAA;AAAA,IAAA;AAGT,UAAM,QAAQ,IAAI,OAAO,IAAI,MAAM,EAAE;AAC9B,WAAA,MAAM,IAAI,CAAC,SAAS,KAAK,QAAQ,OAAO,EAAE,CAAC;AAAA,EACpD;AAEO,WAAS,SAAS,GAAmB;AAC1C,WAAO,cAAc,CAAC,EAAE,KAAK,IAAI;AAAA,EACnC;ACldA,QAAM,YAAY,IAAI,aAAa,CAAC;AACpC,QAAM,YAAY,IAAI,YAAY,UAAU,MAAM;AAClD,QAAM,uBAAuB,kBAAkB;AAC/C,QAAM,YAAY,uBACd,IAAI,WAAW,cAAyC,EAAE,CAAC,IAC3D;AACJ,QAAM,YAAY,IAAI,YAAY,uCAAW,MAAM;AAG5C,WAAS,UAAU,KAAe;AACvC,UAAM,OAAO,KAAK,KAAK,IAAI,OAAO,CAAC,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC;AAC7D,WAAO,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;AAAA,EAChC;AAca,QAAA,SAAS,uBAAuB,eAAe;AAC/C,QAAA,WAAW,uBAAuB,iBAAiB;AAGhE,WAAS,aAAa,GAAmB;AACvC,cAAU,CAAC,IAAI;AACf,WAAO,UAAU,CAAC;AAAA,EACpB;AAGA,WAAS,SAAS,GAAmB;AAEnC,cAAU,CAAC,IAAI;AACT,UAAAK,QAAO,UAAU,CAAC;AAGlB,UAAA,OAAQA,SAAQ,KAAM;AACtB,UAAA,MAAOA,SAAQ,KAAM;AAC3B,UAAM,OAAOA,QAAO;AACpB,UAAM,WAAW,QAAQ;AAGzB,QAAI,QAAQ,KAAM;AAEhB,UAAI,SAAS,GAAG;AACd,eAAO,WAAW;AAAA,MAAA;AAGpB,aAAO,WAAW;AAAA,IAAA;AAId,UAAA,SAAS,MAAM,MAAM;AAG3B,QAAI,UAAU,IAAM;AAClB,aAAO,WAAW;AAAA,IAAA;AAEpB,QAAI,UAAU,GAAG;AAEf,UAAI,SAAS,KAAK;AAET,eAAA;AAAA,MAAA;AAIT,YAAM,WAAW,OAAO,YAAc,IAAI,SAAS;AACnD,aAAO,WAAW;AAAA,IAAA;AAIpB,UAAM,WAAW,QAAQ;AAClB,WAAA,WAAY,UAAU,KAAM;AAAA,EACrC;AAGA,WAAS,eAAe,GAAmB;AACzC,cAAU,CAAC,IAAI;AACf,WAAO,UAAU,CAAC;AAAA,EACpB;AAGA,WAAS,WAAW,GAAmB;AAE/B,UAAA,OAAQ,KAAK,KAAM;AACnB,UAAA,MAAO,KAAK,KAAM;AACxB,UAAM,OAAO,IAAI;AAEb,QAAA;AAEJ,QAAI,QAAQ,GAAG;AACb,UAAI,SAAS,GAAG;AAEd,kBAAU,QAAQ;AAAA,MAAA,OACb;AAGL,YAAI,OAAO;AACX,YAAI,IAAI;AAEA,gBAAA,OAAO,UAAW,GAAG;AAElB,mBAAA;AACT;AAAA,QAAA;AAGM,gBAAA;AAER,cAAM,SAAS,IAAI;AACnB,cAAM,UAAU,QAAQ;AACb,kBAAA,QAAQ,KAAO,UAAU,KAAM;AAAA,MAAA;AAAA,IAC5C,WACS,QAAQ,IAAM;AAEvB,UAAI,SAAS,GAAG;AAEd,kBAAW,QAAQ,KAAM;AAAA,MAAA,OACpB;AAEL,kBAAW,QAAQ,KAAM;AAAA,MAAA;AAAA,IAC3B,OACK;AAGC,YAAA,SAAS,MAAM,KAAK;AAC1B,YAAM,UAAU,QAAQ;AACb,gBAAA,QAAQ,KAAO,UAAU,KAAM;AAAA,IAAA;AAK5C,cAAU,CAAC,IAAI;AACf,WAAO,UAAU,CAAC;AAAA,EACpB;AAGO,WAAS,aAAa,GAAmB;AAEvC,WAAA,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,GAAG,CAAC,CAAC;AAAA,EACvD;AAqIO,WAAS,gBAAgB,KAA8B;AAC5D,UAAM,UAA0B,CAAC;AAC3B,UAAA,2BAAW,IAAI;AAErB,aAAS,SAAS,KAAc;AAC1B,UAAA,OAAO,OAAO,QAAQ,YAAY,CAAC,KAAK,IAAI,GAAG,GAAG;AACpD,aAAK,IAAI,GAAG;AAEZ,YAAI,eAAe,aAAa;AAC9B,kBAAQ,KAAK,GAAG;AAAA,QACP,WAAA,YAAY,OAAO,GAAG,GAAG;AAE1B,kBAAA,KAAK,IAAI,MAAqB;AAAA,QAC7B,WAAA,MAAM,QAAQ,GAAG,GAAG;AAC7B,cAAI,QAAQ,QAAQ;AAAA,QAAA,OACf;AACL,iBAAO,OAAO,GAAG,EAAE,QAAQ,QAAQ;AAAA,QAAA;AAAA,MACrC;AAAA,IACF;AAGF,aAAS,GAAG;AACL,WAAA;AAAA,EACT;AA8IO,WAAS,eACd,cACA,OACAb,IACA,GACA,GACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,SACA,GACA,GACA,GACA,UAOA;AACM,UAAA,UAAS,qCAAU,WAAU;AAC7B,UAAA,UAAS,qCAAU,WAAU;AACnC,UAAM,WAAW,SAAS;AAC1B,UAAM,KAAK,cAAc,IAAI,UAAU,QAAQ;AAC/C,UAAM,KAAK,cAAc,IAAI,UAAU,QAAQ;AAC/C,UAAM,KAAK,cAAc,IAAI,UAAU,QAAQ;AAC/C,UAAM,KAAK,cAAa,qCAAU,cAAa,MAAM,UAAU,OAAO;AAGtE,UAAM,QAAQ;AAAA,MACZ,eAAe,IAAI,OAAO,OAAO,OAAO,KAAK;AAAA,IAC/C;AAGA,UAAM,SAAS,QAAQ;AACjB,UAAA,SAAU,UAAU,IAAK;AACzB,UAAA,SAAU,UAAU,KAAM;AAG1B,UAAA,cAAa,qCAAU,eAAc;AACrC,UAAA,cAAa,qCAAU,eAAc;AACrC,UAAA,eAAe,OAAS,aAAa;AAC3C,UAAM,UACJ,SAAS,aACL,IACA,KAAK;AAAA,MACH;AAAA,MACA,KAAK;AAAA,QACH;AAAA,QACA,KAAK,OAAO,KAAK,IAAI,MAAM,IAAI,cAAc,YAAY,IAAI;AAAA,MAAA;AAAA,IAEjE;AACN,UAAM,UACJ,SAAS,aACL,IACA,KAAK;AAAA,MACH;AAAA,MACA,KAAK;AAAA,QACH;AAAA,QACA,KAAK,OAAO,KAAK,IAAI,MAAM,IAAI,cAAc,YAAY,IAAI;AAAA,MAAA;AAAA,IAEjE;AACN,UAAM,UACJ,SAAS,aACL,IACA,KAAK;AAAA,MACH;AAAA,MACA,KAAK;AAAA,QACH;AAAA,QACA,KAAK,OAAO,KAAK,IAAI,MAAM,IAAI,cAAc,YAAY,IAAI;AAAA,MAAA;AAAA,IAEjE;AAEA,UAAA,WAAW,OAAOA,EAAC;AACnB,UAAA,WAAW,OAAO,CAAC;AACnB,UAAA,WAAW,OAAO,CAAC;AAGzB,UAAM,KAAK,QAAQ;AACnB,iBAAa,EAAE,IAAI,KAAM,MAAM,IAAM,MAAM,KAAO,MAAM;AACxD,iBAAa,KAAK,CAAC,IAAI,WAAY,YAAY;AAC/C,iBAAa,KAAK,CAAC,IAAI,WAAY,UAAU,KAAO,UAAU;AACjD,iBAAA,KAAK,CAAC,IACjB,UAAW,WAAW,IAAM,WAAW,KAAO,UAAU;AAAA,EAC5D;AAIO,WAAS,qBACd,cACA,OACAA,IACA,GACA,GACA;AACM,UAAA,WAAW,OAAOA,EAAC;AACnB,UAAA,WAAW,OAAO,CAAC;AACnB,UAAA,WAAW,OAAO,CAAC;AAEzB,UAAM,KAAK,QAAQ;AACnB,iBAAa,KAAK,CAAC,IAAI,WAAY,YAAY;AAC/C,iBAAa,KAAK,CAAC,IAAI,WAAY,aAAa,KAAK,CAAC,IAAI;AAAA,EAC5D;AAGO,WAAS,qBACd,cACA,OACA,QACA,QACA,QACA,UAIA;AAEM,UAAA,cAAa,qCAAU,eAAc;AACrC,UAAA,cAAa,qCAAU,eAAc;AACrC,UAAA,eAAe,OAAS,aAAa;AAC3C,UAAM,UACJ,SAAS,aACL,IACA,KAAK;AAAA,MACH;AAAA,MACA,KAAK;AAAA,QACH;AAAA,QACA,KAAK,OAAO,KAAK,IAAI,MAAM,IAAI,cAAc,YAAY,IAAI;AAAA,MAAA;AAAA,IAEjE;AACN,UAAM,UACJ,SAAS,aACL,IACA,KAAK;AAAA,MACH;AAAA,MACA,KAAK;AAAA,QACH;AAAA,QACA,KAAK,OAAO,KAAK,IAAI,MAAM,IAAI,cAAc,YAAY,IAAI;AAAA,MAAA;AAAA,IAEjE;AACN,UAAM,UACJ,SAAS,aACL,IACA,KAAK;AAAA,MACH;AAAA,MACA,KAAK;AAAA,QACH;AAAA,QACA,KAAK,OAAO,KAAK,IAAI,MAAM,IAAI,cAAc,YAAY,IAAI;AAAA,MAAA;AAAA,IAEjE;AAEN,UAAM,KAAK,QAAQ;AACN,iBAAA,KAAK,CAAC,IACjB,UACC,WAAW,IACX,WAAW,KACX,aAAa,KAAK,CAAC,IAAI;AAAA,EAC5B;AAIA,QAAM,iBAAiB,IAAIc,WAAiB;AAIrC,WAAS,mBACd,cACA,OACA,OACA,OACA,OACA,OACA;AACA,UAAM,QAAQ;AAAA,MACZ,eAAe,IAAI,OAAO,OAAO,OAAO,KAAK;AAAA,IAC/C;AAGA,UAAM,SAAS,QAAQ;AACjB,UAAA,SAAU,UAAU,IAAK;AACzB,UAAA,SAAU,UAAU,KAAM;AAEhC,UAAM,KAAK,QAAQ;AACN,iBAAA,KAAK,CAAC,IAChB,aAAa,KAAK,CAAC,IAAI,QAAe,UAAU,KAAO,UAAU;AACvD,iBAAA,KAAK,CAAC,IAAK,aAAa,KAAK,CAAC,IAAI,WAAe,UAAU;AAAA,EAC1E;AAGO,WAAS,mBACd,cACA,OACA,GACA,GACA,GACA,GACA,UAKA;AACM,UAAA,UAAS,qCAAU,WAAU;AAC7B,UAAA,UAAS,qCAAU,WAAU;AACnC,UAAM,WAAW,SAAS;AAC1B,UAAM,KAAK,cAAc,IAAI,UAAU,QAAQ;AAC/C,UAAM,KAAK,cAAc,IAAI,UAAU,QAAQ;AAC/C,UAAM,KAAK,cAAc,IAAI,UAAU,QAAQ;AAC/C,UAAM,KAAK,cAAa,qCAAU,cAAa,MAAM,IAAI,CAAC;AAC1D,UAAM,KAAK,QAAQ;AACnB,iBAAa,EAAE,IAAI,KAAM,MAAM,IAAM,MAAM,KAAO,MAAM;AAAA,EAC1D;AAGO,WAAS,kBACd,cACA,OACA,GACA,GACA,GACA,UAIA;AACM,UAAA,UAAS,qCAAU,WAAU;AAC7B,UAAA,UAAS,qCAAU,WAAU;AACnC,UAAM,WAAW,SAAS;AAC1B,UAAM,KAAK,cAAc,IAAI,UAAU,QAAQ;AAC/C,UAAM,KAAK,cAAc,IAAI,UAAU,QAAQ;AAC/C,UAAM,KAAK,cAAc,IAAI,UAAU,QAAQ;AAE/C,UAAM,KAAK,QAAQ;AACN,iBAAA,EAAE,IACb,KAAM,MAAM,IAAM,MAAM,KAAO,aAAa,EAAE,IAAI;AAAA,EACtD;AAGgB,WAAA,sBACd,cACA,OACA,SACA;AACM,UAAA,KAAK,aAAa,OAAO;AAE/B,UAAM,KAAK,QAAQ;AACnB,iBAAa,EAAE,IAAK,aAAa,EAAE,IAAI,WAAe,MAAM;AAAA,EAC9D;AAEqB,MAAIC,QAAc;AAClB,MAAIA,QAAc;AAEnB,MAAIC,MAAY;AAoF7B,WAAS,eAAe,WAK7B;AAKA,UAAM,QAAQ;AACd,UAAM,SAAS,KAAK;AAAA,MAClB;AAAA,MACA,KAAK,IAAI,kBAAkB,KAAK,KAAK,YAAY,KAAK,CAAC;AAAA,IACzD;AACA,UAAM,QAAQ,KAAK,KAAK,aAAa,QAAQ,OAAO;AAC9C,UAAA,YAAY,QAAQ,SAAS;AACnC,WAAO,EAAE,OAAO,QAAQ,OAAO,UAAU;AAAA,EAC3C;AAEO,WAAS,iBAAiB,WAA2B;AAI1D,UAAM,QAAQ;AACd,UAAM,SAAS,KAAK;AAAA,MAClB;AAAA,MACA,KAAK,IAAI,kBAAkB,KAAK,KAAK,YAAY,KAAK,CAAC;AAAA,IACzD;AACA,UAAM,QAAQ,KAAK,KAAK,aAAa,QAAQ,OAAO;AACpD,WAAO,QAAQ,SAAS;AAAA,EAC1B;AAiHmC,WAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAQ3C;AAqKD,QAAM,2BAA2B,IAAIF,WAAiB;AACtD,QAAM,WAAW,IAAIC,QAAc;AAY5B,WAAS,oBAAoB,GAA6B;AAE/D,UAAM,QAAQ,yBAAyB,KAAK,CAAC,EAAE,UAAU;AACrD,QAAA,MAAM,IAAI,GAAG;AACf,YAAM,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC;AAAA,IAAA;AAGlD,UAAM,QAAQ,IAAI,KAAK,KAAK,MAAM,CAAC;AAEnC,UAAM,WAAW,KAAK;AAAA,MACpB,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM;AAAA,IAC1D;AACA,UAAM,OACJ,WAAW,OACP,SAAS,IAAI,GAAG,GAAG,CAAC,IACpB,SAAS,IAAI,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,aAAa,QAAQ;AAKnE,UAAM,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC;AAC7D,QAAA,MAAM,KAAK,IAAI;AACf,QAAA,MAAM,KAAK,IAAI;AAEf,QAAA,KAAK,IAAI,GAAG;AACd,YAAM,MAAM;AACZ,aAAO,IAAI,KAAK,IAAI,GAAG,MAAM,OAAO,IAAI,IAAI;AAC5C,aAAO,IAAI,KAAK,IAAI,GAAG,MAAM,OAAO,IAAI,IAAI;AAAA,IAAA;AAGxC,UAAA,MAAM,MAAM,MAAM;AAClB,UAAA,MAAM,MAAM,MAAM;AAExB,UAAM,SAAS,KAAK,MAAM,MAAM,GAAG;AACnC,UAAM,SAAS,KAAK,MAAM,MAAM,GAAG;AAEnC,UAAM,WAAW,KAAK,MAAM,SAAS,MAAM,KAAK,GAAG;AAG3C,WAAA,YAAY,KAAO,UAAU,IAAK;AAAA,EAC5C;AAuMA,WAAS,eACP,IACA,IACAE,KACA,IACQ;AACR,UAAM,YAAY,KAAK,MAAM,KAAK,IAAI,MAAM,KAAK,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC;AACpE,UAAM,YAAY,KAAK,MAAM,KAAK,IAAI,MAAM,KAAK,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC;AACpE,UAAM,YAAY,KAAK,MAAM,KAAK,IAAI,MAAM,KAAK,IAAI,KAAKA,MAAK,GAAG,CAAC,CAAC;AACpE,UAAM,YAAY,KAAK,MAAM,KAAK,IAAI,MAAM,KAAK,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC;AAEjE,WAAA,YAAY,OACX,YAAY,QAAS,KACrB,YAAY,QAAS,MACrB,YAAY,QAAS;AAAA,EAE3B;AAIO,WAAS,aACd,UACA,OACA,QACA,UAGA;AACM,UAAA,UAAS,qCAAU,WAAU;AACnC,UAAM,WAAW,KAAK;AAGtB,UAAM,OAAO,QAAQ;AACrB,aAASlB,KAAI,GAAGA,KAAI,GAAG,EAAEA,IAAG;AACpB,YAAA,IAAI,OAAOA,EAAC,IAAI;AACtB,YAAM,QAAQ,KAAK,MAAM,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI;AAC3D,YAAM,WAAWA,KAAI;AACrB,YAAM,SAAS,WAAW;AAE1B,YAAM,YAAY,KAAK,MAAM,WAAW,EAAE;AACpC,YAAA,YAAY,WAAW,YAAY;AACnC,YAAA,YAAa,SAAS,YAAa;AAChC,eAAA,OAAO,SAAS,KAAK;AAE1B,UAAA,SAAS,YAAY,KAAK,IAAI;AAC1B,cAAA,aAAc,UAAW,KAAK,YAAc;AACzC,iBAAA,OAAO,YAAY,CAAC,KAAK;AAAA,MAAA;AAAA,IACpC;AAAA,EAEJ;AAIO,WAAS,aACd,UACA,OACA,QACA,UAGA;AACM,UAAA,UAAS,qCAAU,WAAU;AACnC,UAAM,WAAW,IAAI;AAGZ,aAAA,QAAQ,IAAI,CAAC,IAAI;AAAA,MACxB,OAAO,CAAC,IAAI;AAAA,MACZ,OAAO,CAAC,IAAI;AAAA,MACZ,OAAO,CAAC,IAAI;AAAA,MACZ,OAAO,CAAC,IAAI;AAAA,IACd;AACS,aAAA,QAAQ,IAAI,CAAC,IAAI;AAAA,MACxB,OAAO,CAAC,IAAI;AAAA,MACZ,OAAO,CAAC,IAAI;AAAA,MACZ,OAAO,CAAC,IAAI;AAAA,MACZ,OAAO,CAAC,IAAI;AAAA,IACd;AACS,aAAA,QAAQ,IAAI,CAAC,IAAI;AAAA,MACxB,OAAO,CAAC,IAAI;AAAA,MACZ,OAAO,CAAC,IAAI;AAAA,MACZ,OAAO,EAAE,IAAI;AAAA,MACb,OAAO,EAAE,IAAI;AAAA,IACf;AACS,aAAA,QAAQ,IAAI,CAAC,IAAI;AAAA,MACxB,OAAO,EAAE,IAAI;AAAA,MACb,OAAO,EAAE,IAAI;AAAA,MACb,OAAO,EAAE,IAAI;AAAA,MACb;AAAA,IACF;AAAA,EACF;AAIO,WAAS,aACd,UACA,OACA,QACA,UAGA;AACM,UAAA,UAAS,qCAAU,WAAU;AACnC,UAAM,WAAW,KAAK;AAGtB,UAAM,OAAO,QAAQ;AACrB,aAASA,KAAI,GAAGA,KAAI,IAAI,EAAEA,IAAG;AACrB,YAAA,IAAI,OAAOA,EAAC,IAAI;AACtB,YAAM,QAAQ,KAAK,MAAM,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI;AAC3D,YAAM,WAAWA,KAAI;AACrB,YAAM,SAAS,WAAW;AAE1B,YAAM,YAAY,KAAK,MAAM,WAAW,EAAE;AACpC,YAAA,YAAY,WAAW,YAAY;AACnC,YAAA,YAAa,SAAS,YAAa;AAChC,eAAA,OAAO,SAAS,KAAK;AAE1B,UAAA,SAAS,YAAY,KAAK,IAAI;AAC1B,cAAA,aAAc,UAAW,KAAK,YAAc;AACzC,iBAAA,OAAO,YAAY,CAAC,KAAK;AAAA,MAAA;AAAA,IACpC;AAAA,EAEJ;AA8FgB,WAAA,sBACd,WACA,UACY;AACZ,UAAM,SAAuB,CAAC;AAC9B,QAAI,aAAa;AACjB,QAAI,SAA4B;AAEhC,UAAM,SAAS,IAAI,OAAO,CAAC,MAAM,UAAU;AACzC,aAAO,KAAK,IAAI;AAChB,oBAAc,KAAK;AACf,UAAA,SAAS,cAAc,UAAU;AAC7B,cAAA,WAAW,IAAI,WAAW,UAAU;AAC1C,YAAImB,UAAS;AACb,mBAAW,SAAS,QAAQ;AACjB,mBAAA,IAAI,OAAOA,OAAM;AAC1BA,qBAAU,MAAM;AAAA,QAAA;AAET,iBAAA,SAAS,MAAM,GAAG,QAAQ;AAAA,MAAA;AAAA,IACrC,CACD;AAED,UAAM,aAAa;AACnB,QAAI,SAAS;AACb,WAAO,UAAU,QAAQ,SAAS,UAAU,QAAQ;AAClD,YAAM,QAAQ,UAAU,MAAM,QAAQ,SAAS,UAAU;AAClD,aAAA,KAAK,OAAO,KAAK;AACd,gBAAA;AAAA,IAAA;AAGZ,QAAI,UAAU,MAAM;AAClB,aAAO,KAAK,IAAI,WAAW,GAAG,IAAI;AAClC,UAAI,UAAU,MAAM;AACZ,cAAA,IAAI,MAAM,mCAAmC;AAAA,MAAA;AAAA,IACrD;AAEK,WAAA;AAAA,EACT;AAAA,EAEO,MAAM,aAAa;AAAA,IAQxB,YAAY;AAAA,MACV;AAAA,MACA,aAAa,KAAK;AAAA,IAAA,GAC4C;AAC9D,WAAK,YAAY;AACjB,WAAK,aAAa;AAClB,WAAK,SAAS,CAAC;AACf,WAAK,aAAa;AAEZ,YAAA,KAAK,IAAI,oBAAoB,MAAM;AACnC,YAAA,sBAAsB,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,OAAA,EAAS,YAAY,EAAE;AACpE,WAAA,SAAS,oBAAoB,UAAU;AAAA,IAAA;AAAA,IAG9C,MAAM,KAAK,UAAuC;AACzC,aAAA,KAAK,aAAa,UAAU;AAC3B,cAAA,EAAE,OAAO,OAAO,MAAM,eAAe,MAAM,KAAK,OAAO,KAAK;AAClE,YAAI,YAAY;AACd;AAAA,QAAA;AAGG,aAAA,OAAO,KAAK,KAAK;AACtB,aAAK,cAAc,MAAM;AAAA,MAAA;AAGvB,UAAA,KAAK,aAAa,UAAU;AAC9B,cAAM,IAAI;AAAA,UACR,0BAA0B,QAAQ,SAAS,KAAK,UAAU;AAAA,QAC5D;AAAA,MAAA;AAGF,YAAM,WAAW,IAAI,WAAW,KAAK,UAAU;AAC/C,UAAI,YAAY;AACL,iBAAA,SAAS,KAAK,QAAQ;AACtB,iBAAA,IAAI,OAAO,SAAS;AAC7B,qBAAa,MAAM;AAAA,MAAA;AAGrB,YAAM,SAAS,SAAS,SAAS,GAAG,QAAQ;AAC5C,WAAK,SAAS,CAAC,SAAS,SAAS,QAAQ,CAAC;AAC1C,WAAK,cAAc;AACZ,aAAA;AAAA,IAAA;AAAA,EAEX;AC1oDgB,WAAA,gBACd,WACA,eACA,eAiBA;AACA,UAAM,YAAY,KAAK,MAAM,UAAU,SAAS,EAAE;AAC9C,QAAA,YAAY,OAAO,UAAU,QAAQ;AACjC,YAAA,IAAI,MAAM,0BAA0B;AAAA,IAAA;AAE5C,kBAAc,SAAS;AAEvB,UAAM,MAAM,IAAI,aAAa,UAAU,MAAM;AAC7C,aAASnB,KAAI,GAAGA,KAAI,WAAW,EAAEA,IAAG;AAClC,YAAMoB,OAAMpB,KAAI;AAChB,YAAM,KAAKA,KAAI;AACT,YAAAC,KAAI,IAAI,KAAK,CAAC;AACd,YAAA,IAAI,IAAI,KAAK,CAAC;AACd,YAAA,IAAI,IAAI,KAAK,CAAC;AACd,YAAA,SAAS,IAAI,KAAK,CAAC;AACnB,YAAA,SAAS,IAAI,KAAK,CAAC;AACnB,YAAA,SAAS,IAAI,KAAK,CAAC;AACzB,YAAM,IAAI,UAAUmB,OAAM,EAAE,IAAI;AAChC,YAAM,IAAI,UAAUA,OAAM,EAAE,IAAI;AAChC,YAAM,IAAI,UAAUA,OAAM,EAAE,IAAI;AAChC,YAAM,UAAU,UAAUA,OAAM,EAAE,IAAI;AACtC,YAAM,SAAS,UAAUA,OAAM,EAAE,IAAI,OAAO;AAC5C,YAAM,SAAS,UAAUA,OAAM,EAAE,IAAI,OAAO;AAC5C,YAAM,SAAS,UAAUA,OAAM,EAAE,IAAI,OAAO;AAC5C,YAAM,SAAS,UAAUA,OAAM,EAAE,IAAI,OAAO;AAC5C;AAAA,QACEpB;AAAA,QACAC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IAAA;AAAA,EAEJ;AAEgB,WAAA,gBACd,WACA,eAIA;AACA,QAAI,YAAY;AAChB,QAAI,YAAY;AACZ,QAAA,cAAc,IAAI,YAAY,CAAC;AACnC;AAAA,MACE;AAAA,MACA,CAAC,gBAAgB;AACH,oBAAA;AACZ,oBAAY,iBAAiB,SAAS;AACxB,sBAAA,IAAI,YAAY,YAAY,CAAC;AAAA,MAC7C;AAAA,MACA,CACE,OACAA,IACA,GACA,GACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,SACA,GACA,GACA,MACG;AACH;AAAA,UACE;AAAA,UACA;AAAA,UACAA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ;AACO,WAAA,EAAE,aAAa,UAAU;AAAA,EAClC;ACrGA,QAAM,qBAAwD;AAAA,IAC5D,GAAG;AAAA,MACD,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,qCAAqC;AAAA,MACrC,kBAAkB;AAAA,MAClB,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,MAClB,+BAA+B;AAAA,MAC/B,YAAY;AAAA,IACd;AAAA,IACA,GAAG;AAAA,MACD,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,qCAAqC;AAAA,MACrC,kBAAkB;AAAA,MAClB,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,MAClB,+BAA+B;AAAA,MAC/B,YAAY;AAAA,IACd;AAAA,IACA,GAAG;AAAA,MACD,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,qCAAqC;AAAA,MACrC,kBAAkB;AAAA,MAClB,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,MAClB,+BAA+B;AAAA,MAC/B,YAAY;AAAA,IAAA;AAAA,EAEhB;AAEA,QAAM,iCAAyD;AAAA,IAC7D,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAEO,WAAS,aACd,WACA,eACA,eAiBA,YAMA;;AACA,UAAM,eAAe;AACrB,UAAM,gBAAgB;AAEtB,QAAI,eAAe;AACnB,UAAM,SAAS,IAAI,SAAS,UAAU,QAAQ,cAAc,YAAY;AACxD,oBAAA;AAEV,UAAA,eAAe,OAAO,SAAS,CAAC;AAChC,UAAA,eAAe,OAAO,SAAS,CAAC;AAClC,QAAA,iBAAiB,KAAK,eAAe,GAAG;AAC1C,YAAM,IAAI;AAAA,QACR,gCAAgC,YAAY,IAAI,YAAY;AAAA,MAC9D;AAAA,IAAA;AAEF,UAAM,kBAAkB,OAAO,UAAU,GAAG,IAAI;AAG7B,WAAO,UAAU,IAAI,IAAI;AAC5C,UAAM,mBAAmB,OAAO,UAAU,IAAI,IAAI;AAC9C,QAAA,mBAAmB,KAAK,mBAAmB,GAAG;AAChD,YAAM,IAAI,MAAM,sCAAsC,gBAAgB,EAAE;AAAA,IAAA;AAK1E,UAAM,6BAA6B,OAAO,WAAW,IAAI,IAAI,KAAK;AAClE,UAAM,6BAA6B,OAAO,WAAW,IAAI,IAAI,KAAK;AAQ9D,QAAA,cAAc,eAAe,kBAAkB;AAEnD,aAAS,UAAU,GAAG,UAAU,iBAAiB,EAAE,SAAS;AA+EjD,UAAA,QAAT,SAAe,aAAqB,WAAmB;AACrD,YAAI,qBAAqB,GAAG;AAC1B,iBAAO,KAAK;AAAA,YACV,cAAc,gCAAgC,YAAY;AAAA,YAC1D;AAAA,UACF;AAAA,QAAA;AAEF,YAAI,qBAAqB,GAAG;AACnB,iBAAA;AAAA,YACL,KAAK;AAAA,cACH,cAAc,gCAAgC,YAAY;AAAA,cAC1D;AAAA,YAAA;AAAA,UAEJ;AAAA,QAAA;AAEF,cAAM,IACJ,KAAK,SAAS,cAAc,gCAAgC,SAAS,IACrE;AAEA,eAAA,6BACA,KAAK,6BAA6B;AAAA,MAEtC;AApGA,YAAMoB,WAAU,IAAI,SAAS,UAAU,QAAQ,cAAc,aAAa;AAC1D,sBAAA;AAEhB,YAAM,oBAAoBA,SAAQ,UAAU,GAAG,IAAI;AACnD,YAAM,uBAAuBA,SAAQ,UAAU,GAAG,IAAI;AACtD,YAAM,aAAaA,SAAQ,UAAU,GAAG,IAAI;AAC5C,YAAM,cAAcA,SAAQ,UAAU,IAAI,IAAI;AAC9C,YAAM,kBAAkBA,SAAQ,WAAW,IAAI,IAAI;AACnD,YAAM,yBAAyBA,SAAQ,UAAU,IAAI,IAAI;AACnD,YAAA,yBACHA,SAAQ,UAAU,IAAI,IAAI,OACzBZ,MAAA,mBAAmB,gBAAgB,MAAnC,gBAAAA,IAAsC,gBACxC;AACF,YAAM,kBAAkBY,SAAQ,UAAU,IAAI,IAAI;AAClD,YAAM,mBAAmB,kBAAkB;AAC3C,YAAM,6BAA6BA,SAAQ,UAAU,IAAI,IAAI;AAC7D,YAAM,2BAA2B,6BAA6B;AACxD,YAAA,0BACJ,yBAAyB,cAAc;AACzC,YAAM,2BAA2BA,SAAQ,UAAU,IAAI,IAAI;AACrD,YAAA,eACJ,+BAA+B,wBAAwB;AAEnD,YAAA;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,IACE,mBAAmB,gBAAgB;AACvC,YAAM,gBACJ,iBACA,gBACA,mBACA,gBACA,eAAe;AACjB,YAAM,4BAA4B,gBAAgB;AAClD,YAAM,mBACJ,4BAA4B;AAExB,YAAA,WAAW,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC3C,YAAM,WAAW;AAAA,QACf;AAAA,QAAG;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,MACzD;AACA,YAAM,WAAW;AAAA,QACf;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QACpE;AAAA,QAAI;AAAA,QAAI;AAAA,MACV;AACA,YAAM,MACJ,4BAA4B,IAAI,IAAI,aAAa,IAAI,CAAC,IAAI;AAC5D,YAAM,MACJ,4BAA4B,IAAI,IAAI,aAAa,IAAI,CAAC,IAAI;AAC5D,YAAM,MACJ,4BAA4B,IAAI,IAAI,aAAa,IAAI,CAAC,IAAI;AAEtD,YAAA,yBAAyB,kBAAkB,IAAI;AACrD,YAAM,cAAc,cAAc;AAClC,YAAM,WAAW,cAAc;AAC/B,YAAM,OAAO,IAAI;AAAA,QACf,UAAU;AAAA,QACV;AAAA,QACA;AAAA,MACF;AACA,YAAM,cAAc,IAAI;AAAA,QACtB,UAAU;AAAA,QACV;AAAA,QACA,cAAc;AAAA,MAChB;AACA,YAAM,+BAA+B,IAAI;AAAA,QACvC,UAAU;AAAA,QACV;AAAA,QACA;AAAA,MACF;AA0BA,UAAI,qBAAqB;AACzB,UAAI,oBAAoB;AAExB,eAASrB,KAAI,GAAGA,KAAI,mBAAmB,EAAEA,IAAG;AAC1C,cAAM,cAAcA,KAAI;AAEpB,YAAA;AACJ,YAAIA,KAAI,kBAAkB;AACV,wBAAA,KAAK,MAAMA,KAAI,UAAU;AAAA,QAAA,OAClC;AACC,gBAAA,eACJ,6BAA6B,qBAAqB,eAAe;AAC/D,cAAAA,MAAK,oBAAoB,cAAc;AACnB,kCAAA;AACD,iCAAA;AAAA,UAAA;AAET,wBAAA;AAAA,QAAA;AAGV,cAAAC,KACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,GAAG,IAAI,KACpC,KAAK,UAAU,cAAc,GAAG,IAAI,IAAI,yBACvC,yBACF,YAAY,IAAI,cAAc,CAAC;AAC/B,cAAA,IACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,GAAG,IAAI,KACpC,KAAK,UAAU,cAAc,GAAG,IAAI,IAAI,yBACvC,yBACF,YAAY,IAAI,cAAc,CAAC;AAC/B,cAAA,IACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,GAAG,IAAI,KACpC,KAAK,UAAU,cAAc,GAAG,IAAI,IAAI,yBACvC,yBACF,YAAY,IAAI,cAAc,CAAC;AAErC,cAAM,SACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,mBAAmB,GAAG,IAAI,IACxD,SAAS,KAAK,UAAU,cAAc,mBAAmB,GAAG,IAAI,CAAC;AACvE,cAAM,SACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,mBAAmB,GAAG,IAAI,IACxD,SAAS,KAAK,UAAU,cAAc,mBAAmB,GAAG,IAAI,CAAC;AACvE,cAAM,SACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,mBAAmB,GAAG,IAAI,IACxD,SAAS,KAAK,UAAU,cAAc,mBAAmB,GAAG,IAAI,CAAC;AAEjE,cAAA,QACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,sBAAsB,GAAG,IAAI,IAC3D;AAAA,UACE,KAAK,UAAU,cAAc,sBAAsB,GAAG,IAAI;AAAA,QAC5D;AACA,cAAA,QACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,sBAAsB,GAAG,IAAI,IAC3D;AAAA,UACE,KAAK,UAAU,cAAc,sBAAsB,GAAG,IAAI;AAAA,QAC5D;AACA,cAAA,QACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,sBAAsB,GAAG,IAAI,IAC3D;AAAA,UACE,KAAK,UAAU,cAAc,sBAAsB,GAAG,IAAI;AAAA,QAC5D;AACA,cAAA,QACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,sBAAsB,IAAI,IAAI,IAC5D;AAAA,UACE,KAAK,UAAU,cAAc,sBAAsB,GAAG,IAAI;AAAA,QAC5D;AAEN,cAAM,IAAI,KAAK,SAAS,cAAc,mBAAmB,CAAC,IAAI;AAC9D,cAAM,IAAI,KAAK,SAAS,cAAc,mBAAmB,CAAC,IAAI;AAC9D,cAAM,IAAI,KAAK,SAAS,cAAc,mBAAmB,CAAC,IAAI;AAC9D,cAAM,UAAU,KAAK,SAAS,cAAc,mBAAmB,CAAC,IAAI;AAEpE;AAAA,UACED;AAAA,UACAC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAEI,YAAA,4BAA4B,KAAK,KAAK;AACxC,qBAAW,CAACD,KAAG,GAAG,KAAK,SAAS,WAAW;AACzC,gBAAIA,GAAC,IAAI,MAAM,aAAa,GAAG;AAAA,UAAA;AAEjC,cAAI,KAAK;AACP,uBAAW,CAACA,KAAG,GAAG,KAAK,SAAS,WAAW;AACzC,kBAAIA,GAAC,IAAI,MAAM,aAAa,GAAG;AAAA,YAAA;AAAA,UACjC;AAEF,cAAI,KAAK;AACP,uBAAW,CAACA,KAAG,GAAG,KAAK,SAAS,WAAW;AACzC,kBAAIA,GAAC,IAAI,MAAM,aAAa,GAAG;AAAA,YAAA;AAAA,UACjC;AAEW,mDAAAA,IAAG,KAAK,KAAK;AAAA,QAAG;AAAA,MAC/B;AAEa,qBAAA;AAAA,IAAA;AAAA,EAEnB;AAEgB,WAAA,aACd,WACA,eAKA;;AACA,UAAM,eAAe;AACrB,UAAM,gBAAgB;AAEtB,QAAI,eAAe;AACnB,UAAM,SAAS,IAAI,SAAS,UAAU,QAAQ,cAAc,YAAY;AACxD,oBAAA;AAEV,UAAA,eAAe,OAAO,SAAS,CAAC;AAChC,UAAA,eAAe,OAAO,SAAS,CAAC;AAClC,QAAA,iBAAiB,KAAK,eAAe,GAAG;AAC1C,YAAM,IAAI;AAAA,QACR,gCAAgC,YAAY,IAAI,YAAY;AAAA,MAC9D;AAAA,IAAA;AAEF,UAAM,kBAAkB,OAAO,UAAU,GAAG,IAAI;AAGhD,UAAM,aAAa,OAAO,UAAU,IAAI,IAAI;AAC5C,UAAM,mBAAmB,OAAO,UAAU,IAAI,IAAI;AAC9C,QAAA,mBAAmB,KAAK,mBAAmB,GAAG;AAChD,YAAM,IAAI,MAAM,sCAAsC,gBAAgB,EAAE;AAAA,IAAA;AAK1E,UAAM,6BAA6B,OAAO,WAAW,IAAI,IAAI,KAAK;AAClE,UAAM,6BAA6B,OAAO,WAAW,IAAI,IAAI,KAAK;AAElE,UAAM,YAAY;AACZ,UAAA,YAAY,iBAAiB,SAAS;AAC5C,UAAM,cAAc,IAAI,YAAY,YAAY,CAAC;AACjD,UAAM,QAAiC,CAAC;AAEpC,QAAA,cAAc,eAAe,kBAAkB;AAEnD,aAAS,UAAU,GAAG,UAAU,iBAAiB,EAAE,SAAS;AA+EjD,UAAA,QAAT,SAAe,aAAqB,WAAmB;AACrD,YAAI,qBAAqB,GAAG;AAC1B,iBAAO,KAAK;AAAA,YACV,cAAc,gCAAgC,YAAY;AAAA,YAC1D;AAAA,UACF;AAAA,QAAA;AAEF,YAAI,qBAAqB,GAAG;AACnB,iBAAA;AAAA,YACL,KAAK;AAAA,cACH,cAAc,gCAAgC,YAAY;AAAA,cAC1D;AAAA,YAAA;AAAA,UAEJ;AAAA,QAAA;AAEF,cAAM,IACJ,KAAK,SAAS,cAAc,gCAAgC,SAAS,IACrE;AAEA,eAAA,6BACA,KAAK,6BAA6B;AAAA,MAEtC;AApGA,YAAMqB,WAAU,IAAI,SAAS,UAAU,QAAQ,cAAc,aAAa;AAC1D,sBAAA;AAEhB,YAAM,oBAAoBA,SAAQ,UAAU,GAAG,IAAI;AACnD,YAAM,uBAAuBA,SAAQ,UAAU,GAAG,IAAI;AACtD,YAAM,aAAaA,SAAQ,UAAU,GAAG,IAAI;AAC5C,YAAM,cAAcA,SAAQ,UAAU,IAAI,IAAI;AAC9C,YAAM,kBAAkBA,SAAQ,WAAW,IAAI,IAAI;AACnD,YAAM,yBAAyBA,SAAQ,UAAU,IAAI,IAAI;AACnD,YAAA,yBACHA,SAAQ,UAAU,IAAI,IAAI,OACzBZ,MAAA,mBAAmB,gBAAgB,MAAnC,gBAAAA,IAAsC,gBACxC;AACF,YAAM,kBAAkBY,SAAQ,UAAU,IAAI,IAAI;AAClD,YAAM,mBAAmB,kBAAkB;AAC3C,YAAM,6BAA6BA,SAAQ,UAAU,IAAI,IAAI;AAC7D,YAAM,2BAA2B,6BAA6B;AACxD,YAAA,0BACJ,yBAAyB,cAAc;AACzC,YAAM,2BAA2BA,SAAQ,UAAU,IAAI,IAAI;AACrD,YAAA,eACJ,+BAA+B,wBAAwB;AAEnD,YAAA;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,IACE,mBAAmB,gBAAgB;AACvC,YAAM,gBACJ,iBACA,gBACA,mBACA,gBACA,eAAe;AACjB,YAAM,4BAA4B,gBAAgB;AAClD,YAAM,mBACJ,4BAA4B;AAExB,YAAA,WAAW,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC3C,YAAM,WAAW;AAAA,QACf;AAAA,QAAG;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,MACzD;AACA,YAAM,WAAW;AAAA,QACf;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QAAI;AAAA,QACpE;AAAA,QAAI;AAAA,QAAI;AAAA,MACV;AACA,YAAM,MACJ,4BAA4B,IAAI,IAAI,aAAa,IAAI,CAAC,IAAI;AAC5D,YAAM,MACJ,4BAA4B,IAAI,IAAI,aAAa,IAAI,CAAC,IAAI;AAC5D,YAAM,MACJ,4BAA4B,IAAI,IAAI,aAAa,IAAI,CAAC,IAAI;AAEtD,YAAA,yBAAyB,kBAAkB,IAAI;AACrD,YAAM,cAAc,cAAc;AAClC,YAAM,WAAW,cAAc;AAC/B,YAAM,OAAO,IAAI;AAAA,QACf,UAAU;AAAA,QACV;AAAA,QACA;AAAA,MACF;AACA,YAAM,cAAc,IAAI;AAAA,QACtB,UAAU;AAAA,QACV;AAAA,QACA,cAAc;AAAA,MAChB;AACA,YAAM,+BAA+B,IAAI;AAAA,QACvC,UAAU;AAAA,QACV;AAAA,QACA;AAAA,MACF;AA0BA,UAAI,qBAAqB;AACzB,UAAI,oBAAoB;AAExB,eAASrB,KAAI,GAAGA,KAAI,mBAAmB,EAAEA,IAAG;AAC1C,cAAM,cAAcA,KAAI;AAEpB,YAAA;AACJ,YAAIA,KAAI,kBAAkB;AACV,wBAAA,KAAK,MAAMA,KAAI,UAAU;AAAA,QAAA,OAClC;AACC,gBAAA,eACJ,6BAA6B,qBAAqB,eAAe;AAC/D,cAAAA,MAAK,oBAAoB,cAAc;AACnB,kCAAA;AACD,iCAAA;AAAA,UAAA;AAET,wBAAA;AAAA,QAAA;AAGV,cAAAC,KACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,GAAG,IAAI,KACpC,KAAK,UAAU,cAAc,GAAG,IAAI,IAAI,yBACvC,yBACF,YAAY,IAAI,cAAc,CAAC;AAC/B,cAAA,IACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,GAAG,IAAI,KACpC,KAAK,UAAU,cAAc,GAAG,IAAI,IAAI,yBACvC,yBACF,YAAY,IAAI,cAAc,CAAC;AAC/B,cAAA,IACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,GAAG,IAAI,KACpC,KAAK,UAAU,cAAc,GAAG,IAAI,IAAI,yBACvC,yBACF,YAAY,IAAI,cAAc,CAAC;AAErC,cAAM,SACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,mBAAmB,GAAG,IAAI,IACxD,SAAS,KAAK,UAAU,cAAc,mBAAmB,GAAG,IAAI,CAAC;AACvE,cAAM,SACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,mBAAmB,GAAG,IAAI,IACxD,SAAS,KAAK,UAAU,cAAc,mBAAmB,GAAG,IAAI,CAAC;AACvE,cAAM,SACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,mBAAmB,GAAG,IAAI,IACxD,SAAS,KAAK,UAAU,cAAc,mBAAmB,GAAG,IAAI,CAAC;AAEjE,cAAA,QACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,sBAAsB,GAAG,IAAI,IAC3D;AAAA,UACE,KAAK,UAAU,cAAc,sBAAsB,GAAG,IAAI;AAAA,QAC5D;AACA,cAAA,QACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,sBAAsB,GAAG,IAAI,IAC3D;AAAA,UACE,KAAK,UAAU,cAAc,sBAAsB,GAAG,IAAI;AAAA,QAC5D;AACA,cAAA,QACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,sBAAsB,GAAG,IAAI,IAC3D;AAAA,UACE,KAAK,UAAU,cAAc,sBAAsB,GAAG,IAAI;AAAA,QAC5D;AACA,cAAA,QACJ,qBAAqB,IACjB,KAAK,WAAW,cAAc,sBAAsB,IAAI,IAAI,IAC5D;AAAA,UACE,KAAK,UAAU,cAAc,sBAAsB,GAAG,IAAI;AAAA,QAC5D;AAEN,cAAM,IAAI,KAAK,SAAS,cAAc,mBAAmB,CAAC,IAAI;AAC9D,cAAM,IAAI,KAAK,SAAS,cAAc,mBAAmB,CAAC,IAAI;AAC9D,cAAM,IAAI,KAAK,SAAS,cAAc,mBAAmB,CAAC,IAAI;AAC9D,cAAM,UAAU,KAAK,SAAS,cAAc,mBAAmB,CAAC,IAAI;AAEpE;AAAA,UACE;AAAA,UACAD;AAAA,UACAC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAEA,YAAI,4BAA4B,GAAG;AACjC,cAAI,KAAK;AACH,gBAAA,CAAC,MAAM,KAAK;AACd,oBAAM,MAAM,IAAI,YAAY,YAAY,CAAC;AAAA,YAAA;AAE3C,uBAAW,CAACD,KAAG,GAAG,KAAK,SAAS,WAAW;AACzC,kBAAIA,GAAC,IAAI,MAAM,aAAa,GAAG;AAAA,YAAA;AAEjC,yBAAa,MAAM,KAAoBA,IAAG,KAAK,aAAa;AAAA,UAAA;AAE9D,cAAI,KAAK;AACH,gBAAA,CAAC,MAAM,KAAK;AACd,oBAAM,MAAM,IAAI,YAAY,YAAY,CAAC;AAAA,YAAA;AAE3C,uBAAW,CAACA,KAAG,GAAG,KAAK,SAAS,WAAW;AACzC,kBAAIA,GAAC,IAAI,MAAM,aAAa,GAAG;AAAA,YAAA;AAEjC,yBAAa,MAAM,KAAoBA,IAAG,KAAK,aAAa;AAAA,UAAA;AAE9D,cAAI,KAAK;AACH,gBAAA,CAAC,MAAM,KAAK;AACd,oBAAM,MAAM,IAAI,YAAY,YAAY,CAAC;AAAA,YAAA;AAE3C,uBAAW,CAACA,KAAG,GAAG,KAAK,SAAS,WAAW;AACzC,kBAAIA,GAAC,IAAI,MAAM,aAAa,GAAG;AAAA,YAAA;AAEjC,yBAAa,MAAM,KAAoBA,IAAG,KAAK,aAAa;AAAA,UAAA;AAAA,QAC9D;AAAA,MACF;AAEa,qBAAA;AAAA,IAAA;AAEV,WAAA,EAAE,aAAa,WAAW,MAAM;AAAA,EACzC;ACvnBA,QAAM,qBAAqB;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AA+CO,QAAM,aAAN,MAAM,WAAU;AAAA;AAAA,IAYrB,YAAY,EAAE,aAAsD;AAV3D,WAAA,SAAA;AACM,WAAA,eAAA;AACf,WAAA,WAAuC,CAAC;AACxC,WAAA,WAAqB,CAAC;AACE,WAAA,OAAA;AAGZ,WAAA,YAAA;AAIV,WAAK,YACH,qBAAqB,cAAc,IAAI,WAAW,SAAS,IAAI;AAAA,IAAA;AAAA;AAAA;AAAA;AAAA,IAMnE,MAAM,cAAc;AACZ,YAAA,eAAe,IAAI,eAAe;AAAA,QACtC,OAAO,CACL,eACG;AAEH,qBAAW,QAAQ,KAAK,UAAU,MAAM,GAAG,KAAK,CAAC;AACjD,qBAAW,MAAM;AAAA,QAAA;AAAA,MACnB,CACD;AACD,YAAM,UAAU,aACb,YAAY,IAAI,kBAAkB,CAAC,EACnC,UAAU;AAGb,WAAK,SAAS;AACd,YAAM,mBAAmB;AACzB,aAAO,MAAM;AACX,cAAM,EAAE,OAAO,KAAS,IAAA,MAAM,QAAQ,KAAK;AAC3C,YAAI,MAAM;AACF,gBAAA,IAAI,MAAM,uBAAuB;AAAA,QAAA;AAGzC,aAAK,UAAU;AACf,cAAM,YAAY,KAAK,OAAO,QAAQ,gBAAgB;AACtD,YAAI,aAAa,GAAG;AAClB,eAAK,SAAS,KAAK,OAAO,MAAM,GAAG,YAAY,iBAAiB,MAAM;AACtE;AAAA,QAAA;AAAA,MACF;AAGF,YAAM,YAAY,IAAI,cAAc,OAAO,KAAK,MAAM,EAAE;AACxD,WAAK,OAAO,IAAI,SAAS,KAAK,UAAU,QAAQ,SAAS;AAEzD,WAAK,WAAW,CAAC;AACjB,UAAI,aAAgC;AACpC,WAAK,WAAW,CAAC;AAEZ,WAAA,OACF,OACA,MAAM,IAAI,EACV,QAAQ,CAAC,MAAc,cAAsB;AACtC,cAAA,cAAc,KAAK,KAAK;AAC9B,YAAI,cAAc,GAAG;AACnB,cAAI,gBAAgB,OAAO;AACnB,kBAAA,IAAI,MAAM,oBAAoB;AAAA,UAAA;AAEtC;AAAA,QAAA;AAEE,YAAA,YAAY,WAAW,GAAG;AAC5B;AAAA,QAAA;AAGI,cAAA,SAAS,YAAY,MAAM,GAAG;AAC5B,gBAAA,OAAO,CAAC,GAAG;AAAA,UACjB,KAAK;AACC,gBAAA,OAAO,CAAC,MAAM,wBAAwB;AACxC,mBAAK,eAAe;AAAA,YACX,WAAA,OAAO,CAAC,MAAM,qBAAqB;AAC5C,mBAAK,eAAe;AAAA,YAAA,OACf;AAEL,oBAAM,IAAI,MAAM,2BAA2B,OAAO,CAAC,CAAC,EAAE;AAAA,YAAA;AAEpD,gBAAA,OAAO,CAAC,MAAM,OAAO;AACvB,oBAAM,IAAI,MAAM,4BAA4B,OAAO,CAAC,CAAC,EAAE;AAAA,YAAA;AAEzD;AAAA,UACF,KAAK;AACH;AAAA,UACF,KAAK;AACH,iBAAK,SAAS,KAAK,YAAY,MAAM,WAAW,MAAM,CAAC;AACvD;AAAA,UACF,KAAK,WAAW;AACR,kBAAA,OAAO,OAAO,CAAC;AACR,yBAAA;AAAA,cACX;AAAA,cACA,OAAO,OAAO,SAAS,OAAO,CAAC,CAAC;AAAA,cAChC,YAAY,CAAA;AAAA,YACd;AACK,iBAAA,SAAS,IAAI,IAAI;AACtB;AAAA,UAAA;AAAA,UAEF,KAAK;AACH,gBAAI,cAAc,MAAM;AAChB,oBAAA,IAAI,MAAM,oCAAoC;AAAA,YAAA;AAElD,gBAAA,OAAO,CAAC,MAAM,QAAQ;AACxB,yBAAW,WAAW,OAAO,CAAC,CAAC,IAAI;AAAA,gBACjC,QAAQ;AAAA,gBACR,MAAM,OAAO,CAAC;AAAA,gBACd,WAAW,OAAO,CAAC;AAAA,cACrB;AAAA,YAAA,OACK;AACL,yBAAW,WAAW,OAAO,CAAC,CAAC,IAAI;AAAA,gBACjC,QAAQ;AAAA,gBACR,MAAM,OAAO,CAAC;AAAA,cAChB;AAAA,YAAA;AAEF;AAAA,QACF;AAAA,MAEF,CACD;AAEC,UAAA,KAAK,SAAS,QAAQ;AACnB,aAAA,YAAY,KAAK,SAAS,OAAO;AAAA,MAAA;AAAA,IACxC;AAAA,IAGF,UACE,iBAKA;AAEA,UAAI,SAAS;AACb,YAAM,OAAO,KAAK;AAClB,UAAI,QAAQ,MAAM;AACV,cAAA,IAAI,MAAM,kBAAkB;AAAA,MAAA;AAGzB,iBAAA,eAAe,KAAK,UAAU;AACjC,cAAA,UAAU,KAAK,SAAS,WAAW;AACnC,cAAA,EAAE,OAAO,WAAA,IAAe;AACxB,cAAA,OAAO,gBAAgB,UAAU;AAEvC,cAAM,UAAU,cAAc,YAAY,KAAK,YAAY;AAG3D,cAAM,WAAW,gBAAgB,OAAO,MAAM,MAAM;AAAA,QAAA;AACpD,iBAAS,QAAQ,GAAG,QAAQ,OAAO,SAAS;AACjC,mBAAA,QAAQ,MAAM,QAAQ,IAAI;AACnC,mBAAS,OAAO,IAAI;AAAA,QAAA;AAAA,MACtB;AAAA,IACF;AAAA;AAAA;AAAA,IAKF,YAAY,eAA8B,YAA8B;AAClE,UAAA,KAAK,SAAS,UAAU,MAAM;AAC1B,cAAA,IAAI,MAAM,yBAAyB;AAAA,MAAA;AAG3C,UAAI,eAAe;AACnB,YAAM,WAAsB,CAAC;AAE7B,UAAI,QAAQ;AACZ,UAAI,WAAqB,CAAC;AAC1B,UAAI,WAAqB,CAAC;AAC1B,UAAI,WAAqB,CAAC;AAC1B,UAAI,MAAgC;AACpC,UAAI,MAAgC;AACpC,UAAI,MAAgC;AAEpC,eAAS,YAAY;AAEb,cAAA,aAAa,qBAAqB,KAAK;AAClC,mBAAA,IAAI,MAAM,CAAC,EACnB,KAAK,IAAI,EACT,QAAQ,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAACsB,IAAG,MAAM,IAAK,IAAI,aAAc,CAAC,CAAC;AACtE,mBAAW,IAAI,MAAM,CAAC,EACnB,KAAK,IAAI,EACT;AAAA,UAAQ,CAAC,GAAG,MACX,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAACA,IAAG,MAAM,IAAI,IAAK,IAAI,aAAc,CAAC;AAAA,QACtD;AACF,mBAAW,IAAI,MAAM,CAAC,EACnB,KAAK,IAAI,EACT;AAAA,UAAQ,CAAC,GAAG,MACX,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAACA,IAAG,MAAM,IAAI,IAAK,IAAI,aAAc,CAAC;AAAA,QACtD;AACF,cAAM,SAAS,IAAI,IAAI,aAAa,IAAI,CAAC,IAAI;AAC7C,cAAM,SAAS,IAAI,IAAI,aAAa,IAAI,CAAC,IAAI;AAC7C,cAAM,SAAS,IAAI,IAAI,aAAa,IAAI,CAAC,IAAI;AAAA,MAAA;AAGtC,eAAA,aACP,OACA,MACA;AAEA,YAAI,CAAC,KAAK;AACF,gBAAA,IAAI,MAAM,aAAa;AAAA,QAAA;AAE/B,cAAM,KAAK,KAAK;AAEhB,iBAAStB,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AACpC,cAAAA,EAAC,IAAK,GAAG,SAASA,EAAC,CAAC,IAAI,IAAK,MAAM;AAAA,QAAA;AAEzC,YAAI,KAAK;AACP,mBAASA,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AACpC,gBAAAA,EAAC,IAAK,GAAG,SAASA,EAAC,CAAC,IAAI,IAAK,MAAM;AAAA,UAAA;AAAA,QACzC;AAEF,YAAI,KAAK;AACP,mBAASA,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AACpC,gBAAAA,EAAC,IAAK,GAAG,SAASA,EAAC,CAAC,IAAI,IAAK,MAAM;AAAA,UAAA;AAAA,QACzC;AAEW,iDAAA,OAAO,KAAK,KAAK;AAAA,MAAG;AAGnC,eAAS,eAAe,SAAqB;AACrC,cAAA;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,YACE,QAAQ;AAEV,YAAA,CAAC,SACD,CAAC,SACD,CAAC,SACD,CAAC,SACD,CAAC,SACD,CAAC,SACD,CAAC,eACD,CAAC,eACD,CAAC,eACD,CAAC,eACD,CAAC,eACD,CAAC,aACD;AACM,gBAAA,IAAI,MAAM,8BAA8B;AAAA,QAAA;AAIjC,uBAAA;AACR,eAAA,CAAC,OAAe,SAA4C;AAC3D,gBAAA;AAAA,YACJ,OAAAuB;AAAAA,YACA,OAAAC;AAAAA,YACA,OAAAC;AAAAA,YACA,OAAAC;AAAAA,YACA,OAAAC;AAAAA,YACA,OAAAC;AAAAA,YACA,aAAAC;AAAAA,YACA,aAAAC;AAAAA,YACA,aAAAC;AAAAA,YACA,aAAAC;AAAAA,YACA,aAAAC;AAAAA,YACA,aAAAC;AAAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA,IACE;AACJ,mBAAS,KAAK;AAAA,YACZ,OAAAX;AAAAA,YACA,OAAAC;AAAAA,YACA,OAAAC;AAAAA,YACA,OAAAC;AAAAA,YACA,OAAAC;AAAAA,YACA,OAAAC;AAAAA,YACA,aAAAC;AAAAA,YACA,aAAAC;AAAAA,YACA,aAAAC;AAAAA,YACA,aAAAC;AAAAA,YACA,aAAAC;AAAAA,YACA,aAAAC;AAAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA,CACD;AAAA,QACH;AAAA,MAAA;AAGF,eAAS,iBAAiB,SAAqB;AAEzC,YAAA,cAAc,QAAQ,SAAS,MAAM;AAC/B,kBAAA,SAAS,QAAQ,UAAU;AACzB,oBAAA;AACH,iBAAA;AAAA,QAAA;AAEL,YAAA,QAAQ,SAAS,UAAU;AACtB,iBAAA;AAAA,QAAA;AAGT,cAAM,EAAE,iBAAiB,iBAAiB,cAAc,aAAA,IACtD,QAAQ;AACV,YACE,CAAC,mBACD,CAAC,mBACD,CAAC,gBACD,CAAC,cACD;AACA,gBAAM,IAAI;AAAA,YACR;AAAA,UACF;AAAA,QAAA;AAGI,cAAA,QAAQ,KAAK,KAAK,CAAC;AAElB,eAAA,CAAC,OAAe,SAA4C;AAE3D,gBAAA,QAAQ,SAAS,UAAU,CAAC;AAClC,cAAI,SAAS,MAAM;AACX,kBAAA,IAAI,MAAM,mBAAmB;AAAA,UAAA;AAE/B,gBAAA;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA,IACE;AACE,gBAAA,EAAE,iBAAAC,kBAAiB,iBAAAC,kBAAiB,cAAAC,eAAc,cAAAC,cAAAA,IACtD;AAEF,gBAAMrC,MACDkC,qBAAoB,KAAM,QAAQ,QAAS,QAAQ,SAAS;AACjE,gBAAM,KACDA,qBAAoB,KAAM,QAAQ,QAAS,QAAQ,SAAS;AACjE,gBAAM,KAAMA,mBAAkB,QAAQ,QAAS,QAAQ,SAAS;AAEhE,gBAAM,OAAQC,qBAAoB,KAAM,QAAQ,OAAO,OAAO;AAC9D,gBAAM,OAAQA,qBAAoB,KAAM,QAAQ,OAAO,OAAO;AAC9D,gBAAM,OAAOA,mBAAkB,QAAQ,OAAO,OAAO;AACrD,gBAAM,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,IAAM,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,CAAC;AAEnE,gBAAM,SAASA,qBAAoB;AACnC,gBAAM,QAAQ,WAAW,IAAI,KAAK,WAAW,IAAI,KAAK;AACtD,gBAAM,QAAQ,UAAU,IAAI,KAAK,WAAW,IAAI,KAAK;AAC/C,gBAAA,QAAQ,UAAU,IAAI,KAAK;AAC3B,gBAAA,QAAQ,WAAW,IAAI,KAAK;AAElC,gBAAM,SAAS,KAAK;AAAA,aACfC,kBAAiB,KAAM,QAAQ,QAC/B,cAAc,eACf;AAAA,UACJ;AACA,gBAAM,SAAS,KAAK;AAAA,aACfA,kBAAiB,KAAM,QAAQ,QAC/B,cAAc,eACf;AAAA,UACJ;AACA,gBAAM,SAAS,KAAK;AAAA,aAChBA,gBAAe,QAAQ,QAAS,cAAc,eAC9C;AAAA,UACJ;AAEM,gBAAA,KACDC,kBAAiB,KAAM,OAAO,QAC7B,SAAS,MAAM,SAAS,OAC3B,SAAS;AACN,gBAAA,KACDA,kBAAiB,KAAM,OAAO,QAC7B,SAAS,MAAM,SAAS,OAC3B,SAAS;AACN,gBAAA,KACDA,kBAAiB,IAAK,OAAO,QAAS,SAAS,MAAM,SAAS,OAChE,SAAS;AACN,gBAAA,WAAWA,gBAAe,OAAO;AAEvC;AAAA,YACE;AAAA,YACArC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MAAA;AAGI,YAAA,kBAAkB,CAAC,YAAwB;AAC3C,YAAA,QAAQ,SAAS,SAAS;AAM5B,iBAAO,eAAe,OAAO;AAAA,QAAA;AAE/B,YAAI,cAAc;AAChB,iBAAO,iBAAiB,OAAO;AAAA,QAAA;AAG7B,YAAA,QAAQ,SAAS,UAAU;AACtB,iBAAA;AAAA,QAAA;AAGH,cAAA;AAAA,UACJ,GAAAA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,YACE,QAAQ;AAEZ,YAAI,CAACA,MAAK,CAAC,KAAK,CAAC,GAAG;AACZ,gBAAA,IAAI,MAAM,iCAAiC;AAAA,QAAA;AAG7C,cAAA,YAAY,WAAW,WAAW;AAClC,cAAA,UAAU,SAAS,SAAS,SAAS;AAE3C,cAAM,WAAW,SAAS,OAAO,YAAY,MAAM,IAAI,IAAI;AAC3D,cAAM,SAAS,OAAO,OAAO,YAAY,IAAI,IAAI,IAAI;AACrD,cAAM,WAAW,SAAS,OAAO,YAAY,MAAM,IAAI,IAAI;AAC3D,cAAM,UAAU,QAAQ,OAAO,YAAY,KAAK,IAAI,IAAI;AAEhD,gBAAA,SAAS,QAAQ,UAAU;AACzB,kBAAA;AAEH,eAAA,CAAC,OAAe,SAA4C;AACjE,gBAAM,SAAS,YACX,KAAK,IAAI,KAAK,OAAiB,IAC/B,WAAU;AACd,gBAAM,SAAS,YACX,KAAK,IAAI,KAAK,OAAiB,IAC/B,WAAU;AACd,gBAAM,SAAS,YACX,KAAK,IAAI,KAAK,OAAiB,IAC/B,WAAU;AAER,gBAAA,QAAQ,UAAW,KAAK,QAAmB;AAC3C,gBAAA,QAAQ,UAAW,KAAK,QAAmB;AAC3C,gBAAA,QAAQ,UAAW,KAAK,QAAmB;AAC3C,gBAAA,QAAQ,UAAW,KAAK,QAAmB;AAEjD,gBAAM,KACJ,WAAW,OACP,KAAO,IAAM,KAAK,IAAI,CAAC,KAAK,OAAiB,KAC7C,SAAS,OACN,KAAK,QAAmB,WACzB;AACF,gBAAA,IACJ,UAAU,OACL,KAAK,SAAoBsC,UAAQ,MAClC,OAAO,OACJ,KAAK,MAAiB,SACvB;AACF,gBAAA,IACJ,UAAU,OACL,KAAK,SAAoBA,UAAQ,MAClC,SAAS,OACN,KAAK,QAAmB,WACzB;AACF,gBAAA,IACJ,UAAU,OACL,KAAK,SAAoBA,UAAQ,MAClC,QAAQ,OACL,KAAK,OAAkB,UACxB;AAER;AAAA,YACE;AAAA,YACA,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAEA,cAAI,cAAc,KAAK;AACrB,kBAAM,KAAK,KAAK;AAChB,gBAAI,KAAK;AACP,uBAASvC,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AACxC,oBAAIA,EAAC,IAAI,GAAG,SAASA,EAAC,CAAC;AAAA,cAAA;AAAA,YACzB;AAEF,gBAAI,KAAK;AACP,uBAASA,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AACxC,oBAAIA,EAAC,IAAI,GAAG,SAASA,EAAC,CAAC;AAAA,cAAA;AAAA,YACzB;AAEF,gBAAI,KAAK;AACP,uBAASA,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AACxC,oBAAIA,EAAC,IAAI,GAAG,SAASA,EAAC,CAAC;AAAA,cAAA;AAAA,YACzB;AAES,uBAAA,OAAO,KAAK,KAAK,GAAG;AAAA,UAAA;AAAA,QAEnC;AAAA,MACF;AAEA,WAAK,UAAU,eAAe;AAAA,IAAA;AAAA;AAAA;AAAA,IAKhC,WAAW,MAAkB;AAE3B,UAAI,SAAS;AACb,YAAM,OAAO,KAAK;AAClB,UAAI,QAAQ,MAAM;AACV,cAAA,IAAI,MAAM,gBAAgB;AAAA,MAAA;AAElC,UAAI,KAAK,WAAW,KAAK,YAAY,GAAG;AAChC,cAAA,IAAI,MAAM,2BAA2B;AAAA,MAAA;AAGlC,iBAAA,eAAe,KAAK,UAAU;AACjC,cAAA,UAAU,KAAK,SAAS,WAAW;AACnC,cAAA,EAAE,OAAO,WAAA,IAAe;AAC9B,cAAM,UAAU,CAAC;AAEjB,YAAI,aAAa;AACjB,cAAM,WAAW,gBAAgB;AACjC,YAAI,UAAU;AACZ,qBAAW,QAAQ,CAAC,WAAW,UAAU,UAAU,QAAQ,GAAG;AACxD,gBAAA,CAAC,WAAW,IAAI,KAAK,WAAW,IAAI,EAAE,SAAS,SAAS;AAC1D,oBAAM,IAAI,MAAM,qCAAqC,IAAI,EAAE;AAAA,YAAA;AAAA,UAC7D;AAAA,QACF;AAGF,mBAAW,CAAC,cAAc,QAAQ,KAAK,OAAO,QAAQ,UAAU,GAAG;AAC7D,cAAA,CAAC,SAAS,QAAQ;AACpB,gBAAI,UAAU;AACZ,kBACE,iBAAiB,YACjB,iBAAiB,YACjB,iBAAiB,UACjB;AACA,sBAAM,YAAY,OAAO;AAAA,kBACvB,aAAa,MAAM,QAAQ,MAAM;AAAA,gBACnC;AACA,wBAAQ,KAAK,MAAM;AAEjB,wBAAM,SACH,KAAK,aAAa,SAAS,IAAI,MAAM,OAAOuC;AAC/C,4BAAU,SAAS,IAAI;AAAA,oBACrB;AAAA,oBACA;AAAA,oBACA,KAAK;AAAA,oBACL;AAAA,kBACF;AAAA,gBAAA,CACD;AAAA,cAAA,WACQ,iBAAiB,WAAW;AACrC,wBAAQ,KAAK,MAAM;AAEjB,wBAAM,QAAQ,KAAK;AAAA,oBACjB;AAAA,oBACA,KAAK;AAAA,sBACH;AAAA,sBACA,CAAC,KAAK,IAAI,KAAO,KAAK,aAAa,CAAC,IAAI,OAAO,CAAG;AAAA,oBAAA;AAAA,kBAEtD;AACA,4BAAU,SAAS,IAAI;AAAA,oBACrB;AAAA,oBACA;AAAA,oBACA,KAAK;AAAA,oBACL;AAAA,kBACF;AAAA,gBAAA,CACD;AAAA,cAAA;AAAA,YACH;AAEF,oBAAQ,KAAK,MAAM;AACP,wBAAA,YAAY,SAAS,IAAI;AAAA,YAAA,CACpC;AAAA,UAAA,OACI;AACL,oBAAQ,KAAK,MAAM;AACX,oBAAA,SAAS,YAAY,SAAS,SAA4B;AAAA,gBAC9D;AAAA,gBACA;AAAA,gBACA,KAAK;AAAA,cACP;AACU,wBAAA,YAAY,SAAS,SAA4B;AACjD,wBAAA,SAAS,YAAY,SAAS,IAAI;AAAA,YAAA,CAC7C;AAAA,UAAA;AAAA,QACH;AAGF,iBAAS,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAE1C,qBAAW,UAAU,SAAS;AACrB,mBAAA;AAAA,UAAA;AAET,cAAI,UAAU;AACE,0BAAA;AAAA,UAAA;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AAAA,EAEJ;AAzoBE,aAAO,oBAAoB;AAPtB,MAAM,YAAN;AAkpBA,QAAMA,UAAQ;AAcrB,QAAM,cAAoD;AAAA,IACxD,MAAM,CAAC,MAAgB,QAAgB,iBAA0B;AACxD,aAAA,KAAK,QAAQ,MAAM;AAAA,IAC5B;AAAA,IACA,OAAO,CAAC,MAAgB,QAAgB,iBAA0B;AACzD,aAAA,KAAK,SAAS,MAAM;AAAA,IAC7B;AAAA,IACA,OAAO,CAAC,MAAgB,QAAgB,iBAA0B;AACzD,aAAA,KAAK,SAAS,QAAQ,YAAY;AAAA,IAC3C;AAAA,IACA,QAAQ,CAAC,MAAgB,QAAgB,iBAA0B;AAC1D,aAAA,KAAK,UAAU,QAAQ,YAAY;AAAA,IAC5C;AAAA,IACA,KAAK,CAAC,MAAgB,QAAgB,iBAA0B;AACvD,aAAA,KAAK,SAAS,QAAQ,YAAY;AAAA,IAC3C;AAAA,IACA,MAAM,CAAC,MAAgB,QAAgB,iBAA0B;AACxD,aAAA,KAAK,UAAU,QAAQ,YAAY;AAAA,IAC5C;AAAA,IACA,OAAO,CAAC,MAAgB,QAAgB,iBAA0B;AACzD,aAAA,KAAK,WAAW,QAAQ,YAAY;AAAA,IAC7C;AAAA,IACA,QAAQ,CAAC,MAAgB,QAAgB,iBAA0B;AAC1D,aAAA,KAAK,WAAW,QAAQ,YAAY;AAAA,IAAA;AAAA,EAE/C;AAEA,QAAM,YAAkD;AAAA,IACtD,MAAM,CACJ,MACA,QACA,cACA,UACG;AACE,WAAA,QAAQ,QAAQ,KAAK;AAAA,IAC5B;AAAA,IACA,OAAO,CACL,MACA,QACA,cACA,UACG;AACE,WAAA,SAAS,QAAQ,KAAK;AAAA,IAC7B;AAAA,IACA,OAAO,CACL,MACA,QACA,cACA,UACG;AACE,WAAA,SAAS,QAAQ,OAAO,YAAY;AAAA,IAC3C;AAAA,IACA,QAAQ,CACN,MACA,QACA,cACA,UACG;AACE,WAAA,UAAU,QAAQ,OAAO,YAAY;AAAA,IAC5C;AAAA,IACA,KAAK,CACH,MACA,QACA,cACA,UACG;AACE,WAAA,SAAS,QAAQ,OAAO,YAAY;AAAA,IAC3C;AAAA,IACA,MAAM,CACJ,MACA,QACA,cACA,UACG;AACE,WAAA,UAAU,QAAQ,OAAO,YAAY;AAAA,IAC5C;AAAA,IACA,OAAO,CACL,MACA,QACA,cACA,UACG;AACE,WAAA,WAAW,QAAQ,OAAO,YAAY;AAAA,IAC7C;AAAA,IACA,QAAQ,CACN,MACA,QACA,cACA,UACG;AACE,WAAA,WAAW,QAAQ,OAAO,YAAY;AAAA,IAAA;AAAA,EAE/C;AAEA,QAAM,cAA+C;AAAA,IACnD,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAEA,QAAM,cAA+C;AAAA,IACnD,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAEA,QAAM,uBAA+C;AAAA,IACnD,GAAG;AAAA,IACH,GAAG;AAAA,IACH,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACA,QAAM,uBAA+C;AAAA,IACnD,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAEA,QAAM,eAAe;AAErB,WAAS,gBACP,YACmC;AACnC,UAAM,OAA0C,CAAC;AACjD,eAAW,CAAC,cAAc,QAAQ,KAAK,OAAO,QAAQ,UAAU,GAAG;AAE7D,UAAA,aAAa,KAAK,YAAY,GAAG;AACnC,aAAK,SAAS,IAAI,MAAM,SAAS,UAAU,CAAC;AAAA,MAAA,OACvC;AACL,aAAK,YAAY,IAAI,SAAS,SAAS,CAAK,IAAA;AAAA,MAAA;AAAA,IAC9C;AAEK,WAAA;AAAA,EACT;AAEA,WAAS,cACP,YACA,cACA;AACI,QAAgC,cAAc,UAAU,GAAG;AACtD,aAAA,uBAAuB,YAAY,YAAY;AAAA,IAAA;AAEjD,WAAA,sBAAsB,YAAY,YAAY;AAAA,EACvD;AAGA,QAAM,uBAAuB,MAAM;AAC7B,QAAA;AACF,UAAI,SAAS,YAAY;AAAA,aAClB,GAAG;AACH,aAAA;AAAA,IAAA;AAEF,WAAA;AAAA,EACT,GAAG;AACH,QAAM,sBAAsB;AAE5B,WAAS,cAAc,YAAyC;AAC9D,QAAI,CAAC,qBAAqB;AACjB,aAAA;AAAA,IAAA;AAGT,eAAW,CAAC,cAAc,QAAQ,KAAK,OAAO,QAAQ,UAAU,GAAG;AACjE,UAAI,CAAC,oBAAoB,KAAK,YAAY,GAAG;AACpC,eAAA;AAAA,MAAA;AAGT,UACE,SAAS,UACT,CAAC,mBAAmB,SAAS,SAAS,SAA4B,GAClE;AACO,eAAA;AAAA,MAAA;AAGT,UAAI,CAAC,mBAAmB,SAAS,SAAS,IAAI,GAAG;AACxC,eAAA;AAAA,MAAA;AAAA,IACT;AAEK,WAAA;AAAA,EACT;AAEA,WAAS,uBACP,YACA,cACA;AAEM,UAAA,YAAsB,CAAC,WAAW;AACxC,eAAW,CAAC,cAAc,QAAQ,KAAK,OAAO,QAAQ,UAAU,GAAG;AAC3D,YAAA,aAAa,aAAa,MAAM,YAAY;AAClD,UAAI,YAAY;AACR,cAAA,aAAa,CAAC,WAAW,CAAC;AACtB,kBAAA;AAAA;AAAA,UAAY;AAAA,sBACN,UAAU,oBAAoB,SAAS,IAAI,oBAAoB,YAAY;AAAA,oBAC7E,YAAY,SAAS,IAAI,CAAC;AAAA;AAAA,QACvC;AAAA,MAAA,WACQ,CAAC,SAAS,QAAQ;AACjB,kBAAA;AAAA;AAAA,UAAY;AAAA,gBACZ,YAAY,qBAAqB,SAAS,IAAI,oBAAoB,YAAY;AAAA,oBAC1E,YAAY,SAAS,IAAI,CAAC;AAAA;AAAA,QACvC;AAAA,MAAA,OACI;AAEK,kBAAA;AAAA;AAAA,UAAY;AAAA,uBACL,YAAY;AAAA,qCACE,SAAS,SAAS,oBAAoB,YAAY;AAAA,oBACnE,YAAY,SAAS,SAA4B,CAAC;AAAA;AAAA,mCAEnC,SAAS,IAAI,oBAAoB,YAAY;AAAA,sBAC1D,YAAY,SAAS,IAAI,CAAC;AAAA;AAAA;AAAA,QAEzC;AAAA,MAAA;AAAA,IACH;AAEF,cAAU,KAAK,gBAAgB;AAE/B,UAAM,KAAK,IAAI;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,KAAK,IAAI;AAAA,IACrB;AACO,WAAA,CACL,MACA,QACA,SACG,GAAG,MAAM,QAAQ,MAAM,WAAW;AAAA,EACzC;AAEA,WAAS,sBACP,YACA,cACA;AAEA,UAAM,UAMF,CAAC;AACL,eAAW,CAAC,cAAc,QAAQ,KAAK,OAAO,QAAQ,UAAU,GAAG;AAC3D,YAAA,aAAa,aAAa,MAAM,YAAY;AAClD,UAAI,YAAY;AACR,cAAA,aAAa,CAAC,WAAW,CAAC;AACxB,gBAAA;AAAA,UACN,CACE,MACA,QACA,SACG;AACF,iBAAK,OAAoB,UAAU,IAAI,YAAY,SAAS,IAAI;AAAA,cAC/D;AAAA,cACA;AAAA,cACA;AAAA,YACF;AACO,mBAAA,SAAS,YAAY,SAAS,IAAI;AAAA,UAAA;AAAA,QAE7C;AAAA,MAAA,WACS,CAAC,SAAS,QAAQ;AACnB,gBAAA;AAAA,UACN,CACE,MACA,QACA,SACG;AACH,iBAAK,YAAY,IAAI,YAAY,SAAS,IAAI;AAAA,cAC5C;AAAA,cACA;AAAA,cACA;AAAA,YACF;AACO,mBAAA,SAAS,YAAY,SAAS,IAAI;AAAA,UAAA;AAAA,QAE7C;AAAA,MAAA,OACK;AAEG,gBAAA;AAAA,UACN,CACE,MACA,QACA,SACG;AACG,kBAAA,OAAO,KAAK,YAAY;AACzB,iBAAA,SAAS,YAAY,SAAS,SAA4B;AAAA,cAC7D;AAAA,cACA;AAAA,cACA;AAAA,YACF;AACA,gBAAI,gBACF,SAAS,YAAY,SAAS,SAA4B;AAC5D,qBAASvC,KAAI,GAAGA,KAAI,KAAK,QAAQA,MAAK;AACpC,mBAAKA,EAAC,IAAI,YAAY,SAAS,IAAI;AAAA,gBACjC;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AACiB,+BAAA,YAAY,SAAS,IAAI;AAAA,YAAA;AAErC,mBAAA;AAAA,UAAA;AAAA,QAEX;AAAA,MAAA;AAAA,IACF;AAGK,WAAA,CACL,MACA,QACA,SACG;AACH,UAAI,gBAAgB;AACpB,eAAS,cAAc,GAAG,cAAc,QAAQ,QAAQ,eAAe;AACrE,wBAAgB,QAAQ,WAAW,EAAE,MAAM,eAAe,IAAI;AAAA,MAAA;AAEzD,aAAA;AAAA,IACT;AAAA,EACF;AAEA,WAAS,SAAS,YAAyC;AACzD,QAAI,aAAa;AACjB,WAAO,WAAW,UAAU,UAAU,EAAE,GAAG;AAC3B,oBAAA;AAAA,IAAA;AAEV,UAAA,QAAQ,qBAAqB,UAAU;AAC7C,QAAI,SAAS,MAAM;AACjB,YAAM,IAAI,MAAM,0CAA0C,UAAU,EAAE;AAAA,IAAA;AAEjE,WAAA;AAAA,EACT;AAAA,EC7hCO,MAAM,UAAU;AAAA,IAerB,YAAY,EAAE,aAAsD;AAX1D,WAAA,UAAA;AACE,WAAA,YAAA;AACD,WAAA,WAAA;AACM,WAAA,iBAAA;AACT,WAAA,QAAA;AACQ,WAAA,gBAAA;AACN,WAAA,UAAA;AACC,WAAA,WAAA;AACI,WAAA,eAAA;AACN,WAAA,SAAA;AAGP,WAAK,YACH,qBAAqB,cAAc,IAAI,WAAW,SAAS,IAAI;AAC5D,WAAA,SAAS,IAAI,aAAa;AAAA,QAC7B,WAAW,KAAK;AAAA,MAAA,CACjB;AAAA,IAAA;AAAA,IAGH,MAAM,cAAc;AAClB,UAAI,KAAK,cAAc;AACf,cAAA,IAAI,MAAM,gCAAgC;AAAA,MAAA;AAG5C,YAAA,SAAS,IAAI,UAAU,MAAM,KAAK,OAAO,KAAK,EAAE,GAAG,MAAM;AAC/D,UAAI,OAAO,UAAU,GAAG,IAAI,MAAM,YAAY;AACtC,cAAA,IAAI,MAAM,kBAAkB;AAAA,MAAA;AAEpC,WAAK,UAAU,OAAO,UAAU,GAAG,IAAI;AACvC,UAAI,KAAK,UAAU,KAAK,KAAK,UAAU,GAAG;AACxC,cAAM,IAAI,MAAM,4BAA4B,KAAK,OAAO,EAAE;AAAA,MAAA;AAG5D,WAAK,YAAY,OAAO,UAAU,GAAG,IAAI;AACpC,WAAA,WAAW,OAAO,SAAS,EAAE;AAC7B,WAAA,iBAAiB,OAAO,SAAS,EAAE;AACnC,WAAA,QAAQ,OAAO,SAAS,EAAE;AAC1B,WAAA,iBAAiB,KAAK,QAAQ,OAAU;AACxC,WAAA,WAAW,KAAK,QAAQ,SAAU;AAClC,WAAA,WAAW,OAAO,SAAS,EAAE;AAClC,WAAK,eAAe;AACpB,WAAK,SAAS;AAAA,IAAA;AAAA,IAGhB,MAAM,YACJ,gBACA,eACA,aACA,gBAMA,cAOA,YAMA;AAAA,MACE;AAAA,MACA;AAAA,IACF,IAGI,IACJ;AACI,UAAA,CAAC,KAAK,cAAc;AAChB,cAAA,IAAI,MAAM,sCAAsC;AAAA,MAAA;AAExD,UAAI,KAAK,QAAQ;AACT,cAAA,IAAI,MAAM,yBAAyB;AAAA,MAAA;AAE3C,WAAK,SAAS;AAEV,UAAA,KAAK,YAAY,GAAG;AAEhB,cAAA,cAAc,MAAM,KAAK,OAAO,KAAK,KAAK,YAAY,IAAI,CAAC;AACjE,cAAM,eAAe,IAAI,YAAY,YAAY,MAAM;AACvD,iBAASA,KAAI,GAAGA,KAAI,KAAK,WAAWA,MAAK;AACvC,gBAAM,KAAKA,KAAI;AACf,gBAAMC,KAAI,SAAS,aAAa,EAAE,CAAC;AACnC,gBAAM,IAAI,SAAS,aAAa,KAAK,CAAC,CAAC;AACvC,gBAAM,IAAI,SAAS,aAAa,KAAK,CAAC,CAAC;AACtB,2DAAAD,IAAGC,IAAG,GAAG;AAAA,QAAC;AAAA,MAC7B,WACS,KAAK,YAAY,KAAK,KAAK,YAAY,GAAG;AAE7C,cAAA,QAAQ,KAAK,KAAK;AAClB,cAAA,cAAc,MAAM,KAAK,OAAO,KAAK,KAAK,YAAY,IAAI,CAAC;AACjE,iBAASD,KAAI,GAAGA,KAAI,KAAK,WAAWA,MAAK;AACvC,gBAAM,KAAKA,KAAI;AACf,gBAAMC,OACD,YAAY,KAAK,CAAC,KAAK,KACvB,YAAY,KAAK,CAAC,KAAK,KACvB,YAAY,EAAE,KAAK,MACpB,KACF;AACF,gBAAM,MACD,YAAY,KAAK,CAAC,KAAK,KACvB,YAAY,KAAK,CAAC,KAAK,KACvB,YAAY,KAAK,CAAC,KAAK,MACxB,KACF;AACF,gBAAM,MACD,YAAY,KAAK,CAAC,KAAK,KACvB,YAAY,KAAK,CAAC,KAAK,KACvB,YAAY,KAAK,CAAC,KAAK,MACxB,KACF;AACe,2DAAAD,IAAGC,IAAG,GAAG;AAAA,QAAC;AAAA,MAC7B,OACK;AACC,cAAA,IAAI,MAAM,aAAa;AAAA,MAAA;AAG/B;AACE,cAAM,QAAQ,MAAM,KAAK,OAAO,KAAK,KAAK,SAAS;AACnD,iBAASD,KAAI,GAAGA,KAAI,KAAK,WAAWA,MAAK;AACvC,yDAAgBA,IAAG,MAAMA,EAAC,IAAI;AAAA,QAAG;AAAA,MACnC;AAEF;AACE,cAAM,WAAW,MAAM,KAAK,OAAO,KAAK,KAAK,YAAY,CAAC;AAC1D,cAAM,QAAQ,QAAQ;AACtB,iBAASA,KAAI,GAAGA,KAAI,KAAK,WAAWA,MAAK;AACvC,gBAAM,KAAKA,KAAI;AACf,gBAAM,KAAK,SAAS,EAAE,IAAI,MAAM,OAAO,QAAQ;AAC/C,gBAAM,KAAK,SAAS,KAAK,CAAC,IAAI,MAAM,OAAO,QAAQ;AACnD,gBAAM,KAAK,SAAS,KAAK,CAAC,IAAI,MAAM,OAAO,QAAQ;AACrC,qDAAAA,IAAG,GAAG,GAAG;AAAA,QAAC;AAAA,MAC1B;AAEF;AACE,cAAM,cAAc,MAAM,KAAK,OAAO,KAAK,KAAK,YAAY,CAAC;AAC7D,iBAASA,KAAI,GAAGA,KAAI,KAAK,WAAWA,MAAK;AACvC,gBAAM,KAAKA,KAAI;AACf,gBAAM,SAAS,KAAK,IAAI,YAAY,EAAE,IAAI,KAAK,EAAE;AAC3C,gBAAA,SAAS,KAAK,IAAI,YAAY,KAAK,CAAC,IAAI,KAAK,EAAE;AAC/C,gBAAA,SAAS,KAAK,IAAI,YAAY,KAAK,CAAC,IAAI,KAAK,EAAE;AACpC,2DAAAA,IAAG,QAAQ,QAAQ;AAAA,QAAM;AAAA,MAC5C;AAEE,UAAA,KAAK,YAAY,GAAG;AAYtB,cAAM,WAAW,IAAI,KAAK,KAAK,CAAC;AAChC,cAAM,YAAY,MAAM,KAAK,OAAO,KAAK,KAAK,YAAY,CAAC;AAC3D,iBAASA,KAAI,GAAGA,KAAI,KAAK,WAAWA,MAAK;AACvC,gBAAM,KAAKA,KAAI;AACf,gBAAM,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC;AAC9B,gBAAM,SAAS;AAAA,YACb,UAAU,EAAE;AAAA,YACZ,UAAU,KAAK,CAAC;AAAA,YAChB,UAAU,KAAK,CAAC;AAAA,YAChB,UAAU,KAAK,CAAC;AAAA,UAClB;AAEA,gBAAM,iBACJ,OAAO,CAAC,KAAK,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,KAAK,OAAO,OAAO,CAAC,KAAK;AAE7D,gBAAA,aAAa,KAAK,KAAK;AAE7B,gBAAM,eAAe,mBAAmB;AACxC,cAAI,kBAAkB;AACtB,cAAI,aAAa;AAEjB,mBAASA,MAAI,GAAGA,OAAK,GAAG,EAAEA,KAAG;AAC3B,gBAAIA,QAAM,cAAc;AAEtB,oBAAM,QAAQ,kBAAkB;AAC1B,oBAAA,OAAQ,oBAAoB,IAAK;AAEvC,gCAAkB,oBAAoB;AAE3BA,yBAAAA,GAAC,IAAI,YAAY,QAAQ;AAEzBA,yBAAAA,GAAC,IAAI,SAAS,IAAI,WAAWA,GAAC,IAAI,CAAC,WAAWA,GAAC;AAE1D,4BAAc,WAAWA,GAAC,IAAI,WAAWA,GAAC;AAAA,YAAA;AAAA,UAC5C;AAMF,gBAAM,SAAS,IAAI;AACR,qBAAA,YAAY,IAAI,KAAK,KAAK,KAAK,IAAI,QAAQ,CAAC,CAAC;AAExD;AAAA,YACEA;AAAA,YACA,WAAW,CAAC;AAAA,YACZ,WAAW,CAAC;AAAA,YACZ,WAAW,CAAC;AAAA,YACZ,WAAW,CAAC;AAAA;AAAA,QACd;AAAA,MACF,OACK;AACL,cAAM,YAAY,MAAM,KAAK,OAAO,KAAK,KAAK,YAAY,CAAC;AAC3D,iBAASA,KAAI,GAAGA,KAAI,KAAK,WAAWA,MAAK;AACvC,gBAAM,KAAKA,KAAI;AACf,gBAAM,QAAQ,UAAU,EAAE,IAAI,QAAQ;AACtC,gBAAM,QAAQ,UAAU,KAAK,CAAC,IAAI,QAAQ;AAC1C,gBAAM,QAAQ,UAAU,KAAK,CAAC,IAAI,QAAQ;AAC1C,gBAAM,QAAQ,KAAK;AAAA,YACjB,KAAK,IAAI,GAAG,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,KAAK;AAAA,UAC/D;AACA,uDAAeA,IAAG,OAAO,OAAO,OAAO;AAAA,QAAK;AAAA,MAC9C;AAGE,UAAA,cAAc,KAAK,YAAY,GAAG;AACpC,cAAM,MAAM,IAAI,aAAa,IAAI,CAAC;AAC5B,cAAA,MAAM,KAAK,YAAY,IAAI,IAAI,aAAa,IAAI,CAAC,IAAI;AACrD,cAAA,MAAM,KAAK,YAAY,IAAI,IAAI,aAAa,IAAI,CAAC,IAAI;AACrD,cAAA,UAAU,MAAM,KAAK,OAAO;AAAA,UAChC,KAAK,YAAY,kBAAkB,KAAK,QAAQ,IAAI;AAAA,QACtD;AAEA,YAAI,SAAS;AACb,iBAASA,KAAI,GAAGA,KAAI,KAAK,WAAWA,MAAK;AACvC,mBAAS,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG;AAC1B,gBAAI,CAAC,KAAK,QAAQ,SAAS,CAAC,IAAI,OAAO;AAAA,UAAA;AAE/B,oBAAA;AACV,cAAI,KAAK;AACP,qBAAS,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG;AAC3B,kBAAI,CAAC,KAAK,QAAQ,SAAS,CAAC,IAAI,OAAO;AAAA,YAAA;AAE/B,sBAAA;AAAA,UAAA;AAEZ,cAAI,KAAK;AACP,qBAAS,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG;AAC3B,kBAAI,CAAC,KAAK,QAAQ,SAAS,CAAC,IAAI,OAAO;AAAA,YAAA;AAE/B,sBAAA;AAAA,UAAA;AAEC,mDAAAA,IAAG,KAAK,KAAK;AAAA,QAAG;AAAA,MAC/B;AAEF,UAAI,KAAK,SAAS;AAChB,YAAI,QAAQ,MAAM,KAAK,OAAO,KAAK,KAAK,YAAY,CAAC;AACrD,iBAASA,KAAI,GAAGA,KAAI,KAAK,WAAWA,MAAK;AACvC,gBAAMwC,MAAKxC,KAAI;AACf,gBAAM,QAAQ,MAAMwC,GAAE,KAAK,MAAMA,MAAK,CAAC,KAAK;AAC5C,qDAAcxC,IAAG;AAAA,QAAK;AAGxB,gBAAQ,MAAM,KAAK,OAAO,KAAK,KAAK,YAAY,CAAC;AACjD,iBAASA,KAAI,GAAGA,KAAI,KAAK,WAAWA,MAAK;AACvC,gBAAM,KAAKA,KAAI;AACf,gBAAM,QACJ,MAAM,EAAE,KACP,MAAM,KAAK,CAAC,KAAK,MACjB,MAAM,KAAK,CAAC,KAAK,OACjB,MAAM,KAAK,CAAC,KAAK;AACpB,qDAAcA,IAAG;AAAA,QAAK;AAAA,MACxB;AAAA,IACF;AAAA,EAEJ;AAEA,QAAM,oBAA4C,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AACtE,QAAM,QAAQ;AAEP,QAAM,YAAY;AAClB,QAAM,cAAc;AACpB,QAAM,mBAAmB;AAAA,EAEzB,MAAM,UAAU;AAAA,IAUrB,YAAY;AAAA,MACV;AAAA,MACA;AAAA,MACA,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,IAAA,GAMf;AAZY,WAAA,eAAA;AAab,YAAM,YACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,OACC,YAAY,IAAI,IAAI,MACpB,YAAY,IAAI,KAAK,MACrB,YAAY,IAAI,KAAK;AAClB,YAAA,aAAa,KAAK,YAAY;AAC/B,WAAA,SAAS,IAAI,YAAY,UAAU;AACxC,WAAK,OAAO,IAAI,SAAS,KAAK,MAAM;AAEpC,WAAK,KAAK,UAAU,GAAG,WAAW,IAAI;AACtC,WAAK,KAAK,UAAU,GAAG,aAAa,IAAI;AACxC,WAAK,KAAK,UAAU,GAAG,WAAW,IAAI;AACjC,WAAA,KAAK,SAAS,IAAI,QAAQ;AAC1B,WAAA,KAAK,SAAS,IAAI,cAAc;AACrC,WAAK,KAAK,SAAS,IAAI,gBAAgB,mBAAmB,CAAC;AACtD,WAAA,KAAK,SAAS,IAAI,CAAC;AAExB,WAAK,YAAY;AACjB,WAAK,WAAW;AAChB,WAAK,iBAAiB;AACtB,WAAK,WAAW,KAAK;AACrB,WAAK,gBAAgB;AAAA,IAAA;AAAA,IAGvB,UAAU,OAAeC,IAAW,GAAW,GAAW;AAGxD,YAAM,WAAW,KAAK,MAAMA,KAAI,KAAK,QAAQ;AACvC,YAAA,OAAO,KAAK,IAAI,UAAW,KAAK,IAAI,SAAU,QAAQ,CAAC;AAC7D,YAAM,WAAW,KAAK,MAAM,IAAI,KAAK,QAAQ;AACvC,YAAA,OAAO,KAAK,IAAI,UAAW,KAAK,IAAI,SAAU,QAAQ,CAAC;AAC7D,YAAM,WAAW,KAAK,MAAM,IAAI,KAAK,QAAQ;AACvC,YAAA,OAAO,KAAK,IAAI,UAAW,KAAK,IAAI,SAAU,QAAQ,CAAC;AAC7D,YAAM,UAAU,aAAa,QAAQ,aAAa,QAAQ,aAAa;AACvE,UAAI,SAAS;AACX,aAAK,gBAAgB;AAAA,MAAA;AAMvB,YAAM,KAAK,QAAQ;AACnB,YAAM,OAAO,KAAK;AAClB,WAAK,KAAK,SAAS,MAAM,OAAO,GAAI;AACpC,WAAK,KAAK,SAAS,OAAO,GAAI,QAAQ,IAAK,GAAI;AAC/C,WAAK,KAAK,SAAS,OAAO,GAAI,QAAQ,KAAM,GAAI;AAChD,WAAK,KAAK,SAAS,OAAO,GAAG,OAAO,GAAI;AACxC,WAAK,KAAK,SAAS,OAAO,GAAI,QAAQ,IAAK,GAAI;AAC/C,WAAK,KAAK,SAAS,OAAO,GAAI,QAAQ,KAAM,GAAI;AAChD,WAAK,KAAK,SAAS,OAAO,GAAG,OAAO,GAAI;AACxC,WAAK,KAAK,SAAS,OAAO,GAAI,QAAQ,IAAK,GAAI;AAC/C,WAAK,KAAK,SAAS,OAAO,GAAI,QAAQ,KAAM,GAAI;AAAA,IAAA;AAAA,IAGlD,SAAS,OAAe,OAAe;AACrC,YAAM,OAAO,KAAK,KAAK,YAAY,IAAI;AACvC,WAAK,KAAK;AAAA,QACR;AAAA,QACA,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,MAAM,QAAQ,GAAG,CAAC,CAAC;AAAA,MACpD;AAAA,IAAA;AAAA,IAGF,OAAO,SAAS,GAAW;AACzB,YAAM,MAAM,IAAI,QAAQ,QAAQ,QAAQ,OAAO;AACxC,aAAA,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC;AAAA,IAAA;AAAA,IAGjD,OAAO,OAAe,GAAW,GAAW,GAAW;AACrD,YAAM,OAAO,KAAK,KAAK,YAAY,KAAK,QAAQ;AAChD,WAAK,KAAK,SAAS,MAAM,UAAU,SAAS,CAAC,CAAC;AAC9C,WAAK,KAAK,SAAS,OAAO,GAAG,UAAU,SAAS,CAAC,CAAC;AAClD,WAAK,KAAK,SAAS,OAAO,GAAG,UAAU,SAAS,CAAC,CAAC;AAAA,IAAA;AAAA,IAGpD,SAAS,OAAe,QAAgB,QAAgB,QAAgB;AACtE,YAAM,OAAO,KAAK,KAAK,YAAY,KAAK,QAAQ;AAChD,WAAK,KAAK;AAAA,QACR;AAAA,QACA,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,OAAO,KAAK,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;AAAA,MACrE;AACA,WAAK,KAAK;AAAA,QACR,OAAO;AAAA,QACP,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,OAAO,KAAK,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;AAAA,MACrE;AACA,WAAK,KAAK;AAAA,QACR,OAAO;AAAA,QACP,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,OAAO,KAAK,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;AAAA,MACrE;AAAA,IAAA;AAAA,IAGF,QACE,UACG,GACH;AACA,YAAM,OAAO,KAAK,KAAK,YAAY,KAAK,QAAQ;AAE1C,YAAA,OAAO,UAAU,CAAC;AAGxB,UAAI,WAAW;AACf,eAASD,KAAI,GAAGA,KAAI,GAAG,EAAEA,IAAG;AACtB,YAAA,KAAK,IAAI,KAAKA,EAAC,CAAC,IAAI,KAAK,IAAI,KAAK,QAAQ,CAAC,GAAG;AACrC,qBAAAA;AAAA,QAAA;AAAA,MACb;AAKF,YAAM,SAAS,KAAK,QAAQ,IAAI,IAAI,IAAI;AAGxC,UAAI,OAAO;AACX,eAASA,KAAI,GAAGA,KAAI,GAAG,EAAEA,IAAG;AAC1B,YAAIA,OAAM,UAAU;AAClB,gBAAM,UAAU,KAAKA,EAAC,IAAI,IAAI,IAAI,KAAK;AACvC,gBAAM,MAAM,KAAK;AAAA,cACb,KAAK,KAAK,MAAM,KAAK,IAAI,KAAKA,EAAC,CAAC,IAAI,KAAK,WAAW;AAAA,UACxD;AACQ,iBAAA,QAAQ,KAAO,UAAU,IAAK;AAAA,QAAA;AAAA,MACxC;AAGF,WAAK,KAAK,SAAS,MAAM,OAAO,GAAI;AACpC,WAAK,KAAK,SAAS,OAAO,GAAI,QAAQ,IAAK,GAAI;AAC/C,WAAK,KAAK,SAAS,OAAO,GAAI,QAAQ,KAAM,GAAI;AAChD,WAAK,KAAK,SAAS,OAAO,GAAI,SAAS,KAAM,GAAI;AAAA,IAAA;AAAA,IAGnD,OAAO,WAAW,IAAYc,OAAc;AAC1C,YAAM,QAAQ,KAAK,MAAM,KAAK,GAAG,IAAI;AAC/B,YAAA,aAAa,KAAM,IAAIA;AAC7B,YAAM,YACJ,KAAK,OAAO,QAAQ,aAAa,KAAK,UAAU,IAAI;AACtD,aAAO,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,SAAS,CAAC;AAAA,IAAA;AAAA,IAG7C,MACE,OACA,KACA,KACA,KACA;AACA,YAAM,SAAS,kBAAkB,KAAK,QAAQ,KAAK;AACnD,YAAM,QAAQ,KAAK,KAAK,YAAY,KAAK,QAAQ,SAAS;AAC1D,eAAS,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG;AACrB,aAAA,KAAK,SAAS,QAAQ,GAAG,UAAU,WAAW,IAAI,CAAC,GAAG,CAAC,CAAC;AAAA,MAAA;AAE/D,UAAI,KAAK;AACP,cAAM,QAAQ,QAAQ;AACtB,iBAAS,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG;AACtB,eAAA,KAAK,SAAS,QAAQ,GAAG,UAAU,WAAW,IAAI,CAAC,GAAG,CAAC,CAAC;AAAA,QAAA;AAE/D,YAAI,KAAK;AACP,gBAAM,QAAQ,QAAQ;AACtB,mBAAS,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG;AACtB,iBAAA,KAAK,SAAS,QAAQ,GAAG,UAAU,WAAW,IAAI,CAAC,GAAG,CAAC,CAAC;AAAA,UAAA;AAAA,QAC/D;AAAA,MACF;AAAA,IACF;AAAA,IAGF,MAAM,WAAgC;AACpC,YAAM,QAAQ,IAAI,WAAW,KAAK,MAAM;AAClC,YAAA,SAAS,IAAI,eAAe;AAAA,QAChC,MAAM,MAAM,YAAY;AACtB,qBAAW,QAAQ,KAAK;AACxB,qBAAW,MAAM;AAAA,QAAA;AAAA,MACnB,CACD;AACD,YAAM,aAAa,OAAO,YAAY,IAAI,kBAAkB,MAAM,CAAC;AAC7D,YAAA,WAAW,IAAI,SAAS,UAAU;AAClC,YAAA,SAAS,MAAM,SAAS,YAAY;AAClC,cAAA;AAAA,QACN;AAAA,QACA,MAAM;AAAA,QACN;AAAA,QACA,OAAO;AAAA,QACP;AAAA,MACF;AACO,aAAA,IAAI,WAAW,MAAM;AAAA,IAAA;AAAA,EAEhC;AAEA,iBAAsB,aAAa,OAA0B;;AACrD,UAAA,SAAS,IAAI,UAAU;AACvB,UAAA;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiB;AAAA,MACjB;AAAA,IAAA,IACE;AACJ,eAAW2B,UAAS,QAAQ;AAejB,UAAA,eAAT,SAAsB,KAAoB;AACxC,YAAI,eAAe,KAAK;AACxB,YAAI,gBAAgB,UAAU;AAC9B,YAAI,IAAI,SAAS;AACV,eAAA;AAAA,MAAA,GAGA,kBAAT,SAAyB,QAAuB;AAC9C,eAAO,eAAe,KAAK;AACpB,eAAA;AAAA,MAAA,GAGA,sBAAT,SAA6B,MAAwB;AACnD,aAAK,YAAY,UAAU;AACpB,eAAA;AAAA,MAAA,GAGA,aAAT,SAAoB,GAAkB;AACpC,eAAO,CAAC,QAAQ,KAAK,cAAc,CAAC;AAAA,MAAA,GAG7B,gBAAT,SAAuB,SAAiB;AAC/B,eAAA,qBAAqB,SACxB,WAAW,mBACX;AAAA,MACN;AAvCM,YAAA,UAAQA,MAAAA,OAAM,cAANA,gBAAAA,IAAiB,UAAS;AACxC,YAAM,aAAa,IAAI1B,WAAM,EAAa;AAAA,UACxC0B,MAAAA,OAAM,cAANA,gBAAAA,IAAiB,eAAc,CAAC,GAAG,GAAG,GAAG,CAAC;AAAA,MAC5C;AACA,YAAM,YAAY,IAAIzB,QAAM,EAAU;AAAA,UACpCyB,YAAM,cAANA,mBAAiB,cAAa,CAAC,GAAG,GAAG,CAAC;AAAA,MACxC;AACM,YAAA,OAAO,UACT,IAAIC;AAAAA,QACF,IAAI1B,QAAgB,EAAA,UAAU,QAAQ,GAAG;AAAA,QACzC,IAAIA,QAAgB,EAAA,UAAU,QAAQ,GAAG;AAAA,MAAA,IAE3C;AA6BJ,UAAI,WAAWyB,OAAM;AACrB,UAAI,CAAC,UAAU;AACF,mBAAA,iBAAiBA,OAAM,SAAS;AACvC,YAAA,CAAC,YAAYA,OAAM,WAAW;AACrB,qBAAA,yBAAyBA,OAAM,SAAS;AAAA,QAAA;AAAA,MACrD;AAEF,cAAQ,UAAU;AAAA,QAChB,KAAK,cAAc,KAAK;AACtB,gBAAM,MAAM,IAAI,UAAU,EAAE,WAAWA,OAAM,WAAW;AACxD,gBAAM,IAAI,YAAY;AACtB,cAAI,YAA2B;AAC3B,cAAA;AAAA,YACF,CACE,OACAxC,IACA,GACA,GACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,SACA,GACA,GACA,MACG;AACG,oBAAA,SAAS,aAAa,IAAIe,QAAcf,IAAG,GAAG,CAAC,CAAC;AACtD,kBAAI,WAAW,MAAM,KAAK,cAAc,OAAO,GAAG;AAChD,4BAAY,OAAO,UAAU;AAC7B,uBAAO,UAAU,WAAW,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AACxD,sBAAM,SAAS;AAAA,kBACb,IAAIe,QAAc,QAAQ,QAAQ,MAAM;AAAA,gBAC1C;AACA,uBAAO,SAAS,WAAW,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AACvD,sBAAM2B,cAAa;AAAA,kBACjB,IAAI5B,WAAiB,OAAO,OAAO,OAAO,KAAK;AAAA,gBACjD;AACO,uBAAA;AAAA,kBACL;AAAA,kBACA4B,YAAW;AAAA,kBACXA,YAAW;AAAA,kBACXA,YAAW;AAAA,kBACXA,YAAW;AAAA,gBACb;AACO,uBAAA,WAAW,WAAW,OAAO;AACpC,uBAAO,SAAS,WAAW,GAAG,GAAG,CAAC;AAAA,cAAA,OAC7B;AACO,4BAAA;AAAA,cAAA;AAAA,YAEhB;AAAA,YACA,CAAC,OAAO,KAAK,KAAK,QAAQ;AACpB,kBAAA,OAAO,cAAc,MAAM;AACtB,uBAAA,OAAO,WAAW,GAAG;AAAA,cAAA;AAE1B,kBAAA,OAAO,cAAc,MAAM;AACtB,uBAAA,OAAO,WAAW,GAAG;AAAA,cAAA;AAE1B,kBAAA,OAAO,cAAc,MAAM;AACtB,uBAAA,OAAO,WAAW,GAAG;AAAA,cAAA;AAAA,YAC9B;AAAA,UAEJ;AACA;AAAA,QAAA;AAAA,QAEF,KAAK,cAAc,KAAK;AACtB,gBAAMC,OAAM,IAAI,UAAU,EAAE,WAAWH,OAAM,WAAW;AACxD,gBAAMG,KAAI,YAAY;AACtB,gBAAM,UAAU,IAAI,WAAWA,KAAI,SAAS;AAC5C,kBAAQ,KAAK,EAAE;AACf,gBAAM,UAAU,IAAI,aAAaA,KAAI,YAAY,CAAC;AAC5C,gBAAA,SAAS,IAAI5B,QAAc;AACjC4B,eAAI;AAAA,YACF,CAAC,OAAO3C,IAAG,GAAG,MAAM;AACZ4C,oBAAAA,UAAS,aAAa,IAAI7B,QAAcf,IAAG,GAAG,CAAC,CAAC;AAC9C,sBAAA,QAAQ,CAAC,IAAI4C,QAAO;AAC5B,sBAAQ,QAAQ,IAAI,CAAC,IAAIA,QAAO;AAChC,sBAAQ,QAAQ,IAAI,CAAC,IAAIA,QAAO;AAAA,YAClC;AAAA,YACA,CAAC,OAAO,UAAU;AACT,qBAAA,UAAU,SAAS,QAAQ,CAAC;AACnC,kBAAI,WAAW,MAAM,KAAK,cAAc,KAAK,GAAG;AACtC,wBAAA,KAAK,IAAI,OAAO,UAAU;AAC3B,uBAAA,UAAU,QAAQ,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAC7D,uBAAO,WAAW,QAAQ,KAAK,GAAG,KAAK;AAAA,cAAA;AAAA,YAE3C;AAAA,YACA,CAAC,OAAO,GAAG,GAAG,MAAM;AACd,kBAAA,QAAQ,KAAK,KAAK,GAAG;AACvB,uBAAO,SAAS,QAAQ,KAAK,GAAG,GAAG,GAAG,CAAC;AAAA,cAAA;AAAA,YAE3C;AAAA,YACA,CAAC,OAAO,QAAQ,QAAQ,WAAW;AAC7B,kBAAA,QAAQ,KAAK,KAAK,GAAG;AACvB,sBAAM,SAAS;AAAA,kBACb,IAAI7B,QAAc,QAAQ,QAAQ,MAAM;AAAA,gBAC1C;AACO,uBAAA,SAAS,QAAQ,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAAA,cAAA;AAAA,YAEhE;AAAA,YACA,CAAC,OAAO,OAAO,OAAO,OAAO,UAAU;AACjC,kBAAA,QAAQ,KAAK,KAAK,GAAG;AACvB,sBAAM2B,cAAa;AAAA,kBACjB,IAAI5B,WAAiB,OAAO,OAAO,OAAO,KAAK;AAAA,gBACjD;AACO,uBAAA;AAAA,kBACL,QAAQ,KAAK;AAAA,kBACb4B,YAAW;AAAA,kBACXA,YAAW;AAAA,kBACXA,YAAW;AAAA,kBACXA,YAAW;AAAA,gBACb;AAAA,cAAA;AAAA,YAEJ;AAAA,YACA,CAAC,OAAO,KAAK,KAAK,QAAQ;AACpB,kBAAA,QAAQ,KAAK,KAAK,GAAG;AACvB,uBAAO,OAAO,QAAQ,KAAK,GAAG,GAAG;AACjC,oBAAI,KAAK;AACP,yBAAO,OAAO,QAAQ,KAAK,GAAG,GAAG;AAAA,gBAAA;AAEnC,oBAAI,KAAK;AACP,yBAAO,OAAO,QAAQ,KAAK,GAAG,GAAG;AAAA,gBAAA;AAAA,cACnC;AAAA,YACF;AAAA,UAEJ;AACA;AAAA,QAAA;AAAA,QAEF,KAAK,cAAc;AACjB;AAAA,YACEF,OAAM;AAAA,YACN,CAAC,cAAc;AAAA,YAAC;AAAA,YAChB,CACE,OACAxC,IACA,GACA,GACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,SACA,GACA,GACA,MACG;AACG,oBAAA,SAAS,aAAa,IAAIe,QAAcf,IAAG,GAAG,CAAC,CAAC;AACtD,kBAAI,WAAW,MAAM,KAAK,cAAc,OAAO,GAAG;AAC1C6C,sBAAAA,SAAQ,OAAO,UAAU;AAC/B,uBAAO,UAAUA,QAAO,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AACpD,sBAAM,SAAS;AAAA,kBACb,IAAI9B,QAAc,QAAQ,QAAQ,MAAM;AAAA,gBAC1C;AACA,uBAAO,SAAS8B,QAAO,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AACnD,sBAAMH,cAAa;AAAA,kBACjB,IAAI5B,WAAiB,OAAO,OAAO,OAAO,KAAK;AAAA,gBACjD;AACO,uBAAA;AAAA,kBACL+B;AAAAA,kBACAH,YAAW;AAAA,kBACXA,YAAW;AAAA,kBACXA,YAAW;AAAA,kBACXA,YAAW;AAAA,gBACb;AACO,uBAAA,WAAWG,QAAO,OAAO;AAChC,uBAAO,SAASA,QAAO,GAAG,GAAG,CAAC;AAAA,cAAA;AAAA,YAChC;AAAA,UAEJ;AACA;AAAA,QACF,KAAK,cAAc,QAAQ;AACzB,cAAI,YAA2B;AAC/B;AAAA,YACEL,OAAM;AAAA,YACN,CAAC,cAAc;AAAA,YAAC;AAAA,YAChB,CACE,OACAxC,IACA,GACA,GACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,SACA,GACA,GACA,MACG;AACG,oBAAA,SAAS,aAAa,IAAIe,QAAcf,IAAG,GAAG,CAAC,CAAC;AACtD,kBAAI,WAAW,MAAM,KAAK,cAAc,OAAO,GAAG;AAChD,4BAAY,OAAO,UAAU;AAC7B,uBAAO,UAAU,WAAW,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AACxD,sBAAM,SAAS;AAAA,kBACb,IAAIe,QAAc,QAAQ,QAAQ,MAAM;AAAA,gBAC1C;AACA,uBAAO,SAAS,WAAW,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AACvD,sBAAM2B,cAAa;AAAA,kBACjB,IAAI5B,WAAiB,OAAO,OAAO,OAAO,KAAK;AAAA,gBACjD;AACO,uBAAA;AAAA,kBACL;AAAA,kBACA4B,YAAW;AAAA,kBACXA,YAAW;AAAA,kBACXA,YAAW;AAAA,kBACXA,YAAW;AAAA,gBACb;AACO,uBAAA,WAAW,WAAW,OAAO;AACpC,uBAAO,SAAS,WAAW,GAAG,GAAG,CAAC;AAAA,cAAA,OAC7B;AACO,4BAAA;AAAA,cAAA;AAAA,YAEhB;AAAA,YACA,CAAC,OAAO,KAAK,KAAK,QAAQ;AACxB,kBAAI,cAAc,MAAM;AACf,uBAAA,OAAO,WAAW,GAAG;AAC5B,oBAAI,KAAK;AACA,yBAAA,OAAO,WAAW,GAAG;AAAA,gBAAA;AAE9B,oBAAI,KAAK;AACA,yBAAA,OAAO,WAAW,GAAG;AAAA,gBAAA;AAAA,cAC9B;AAAA,YACF;AAAA,UAEJ;AACA;AAAA,QAAA;AAAA,QAEF;AACE,gBAAM,IAAI,MAAM,oCAAoC,QAAQ,EAAE;AAAA,MAAA;AAAA,IAClE;AAGF,UAAM,WAAW,KAAK;AAAA,MACpB,SAAS;AAAA,MACT,OAAO,MAAM,IAAI,OAAO,MAAM,IAAI,OAAO,MAAM,IAAI;AAAA,IACrD;AACM,UAAA,MAAM,IAAI,UAAU;AAAA,MACxB,WAAW,OAAO;AAAA,MAClB;AAAA,MACA;AAAA,MACA,eAAe;AAAA,IAAA,CAChB;AAED,aAAS3C,KAAI,GAAGA,KAAI,OAAO,WAAW,EAAEA,IAAG;AACzC,YAAM,KAAKA,KAAI;AACf,YAAM,KAAKA,KAAI;AACX,UAAA;AAAA,QACFA;AAAA,QACA,OAAO,QAAQ,EAAE;AAAA,QACjB,OAAO,QAAQ,KAAK,CAAC;AAAA,QACrB,OAAO,QAAQ,KAAK,CAAC;AAAA,MACvB;AACI,UAAA;AAAA,QACFA;AAAA,QACA,OAAO,OAAO,EAAE;AAAA,QAChB,OAAO,OAAO,KAAK,CAAC;AAAA,QACpB,OAAO,OAAO,KAAK,CAAC;AAAA,MACtB;AACI,UAAA;AAAA,QACFA;AAAA,QACA,OAAO,YAAY,EAAE;AAAA,QACrB,OAAO,YAAY,KAAK,CAAC;AAAA,QACzB,OAAO,YAAY,KAAK,CAAC;AAAA,QACzB,OAAO,YAAY,KAAK,CAAC;AAAA,MAC3B;AACA,UAAI,SAASA,IAAG,OAAO,UAAUA,EAAC,CAAC;AAC/B,UAAA;AAAA,QACFA;AAAA,QACA,OAAO,OAAO,EAAE;AAAA,QAChB,OAAO,OAAO,KAAK,CAAC;AAAA,QACpB,OAAO,OAAO,KAAK,CAAC;AAAA,MACtB;AACI,UAAA,OAAO,OAAO,YAAY,GAAG;AAC3B,YAAA;AAAA,UACFA;AAAA,UACA,OAAO,IAAI,MAAMA,KAAI,IAAIA,KAAI,KAAK,CAAC;AAAA,UACnC,YAAY,KAAK,OAAO,MACpB,OAAO,IAAI,MAAMA,KAAI,KAAKA,KAAI,KAAK,EAAE,IACrC;AAAA,UACJ,YAAY,KAAK,OAAO,MACpB,OAAO,IAAI,MAAMA,KAAI,KAAKA,KAAI,KAAK,EAAE,IACrC;AAAA,QACN;AAAA,MAAA;AAAA,IACF;AAGI,UAAA,WAAW,MAAM,IAAI,SAAS;AACpC,WAAO,EAAE,WAAW,UAAU,cAAc,IAAI,aAAa;AAAA,EAC/D;AC5cO,WAAS,iBACd,WAC2B;AAC3B,UAAM,OAAO,IAAI,SAAS,UAAU,MAAM;AAC1C,UAAM,QAAQ,KAAK,UAAU,GAAG,IAAI;AAC/B,SAAA,QAAQ,cAAgB,SAAY;AACvC,aAAO,cAAc;AAAA,IAAA;AAElB,SAAA,QAAQ,cAAgB,QAAY;AAEjC,YAAA,SAAS,sBAAsB,WAAW,CAAC;AACjD,YAAM,QAAQ,IAAI,SAAS,OAAO,MAAM;AACxC,UAAI,MAAM,UAAU,GAAG,IAAI,MAAM,YAAY;AAC3C,eAAO,cAAc;AAAA,MAAA;AAGhB,aAAA;AAAA,IAAA;AAET,QAAI,UAAU,UAAY;AAEpB,UAAA,aAAa,SAAS,GAAG;AAC3B,eAAO,cAAc;AAAA,MAAA;AAGhB,aAAA;AAAA,IAAA;AAET,QAAI,UAAU,WAAY;AACxB,aAAO,cAAc;AAAA,IAAA;AAGhB,WAAA;AAAA,EACT;AAGO,WAAS,iBAAiB,WAA2B;AAC1D,UAAM,aAAa,UAAU,MAAM,QAAQ,CAAC,EAAE,CAAC;AAC/C,UAAM,YAAY,KAAK;AAAA,MACrB,WAAW,YAAY,GAAG;AAAA,MAC1B,WAAW,YAAY,IAAI;AAAA,IAC7B;AACA,UAAM,WAAW,WAAW,MAAM,YAAY,CAAC;AACzC,UAAA,UAAU,SAAS,YAAY,GAAG;AACxC,QAAI,WAAW,KAAK,YAAY,SAAS,SAAS,GAAG;AAC5C,aAAA;AAAA,IAAA;AAET,WAAO,SAAS,MAAM,UAAU,CAAC,EAAE,YAAY;AAAA,EACjD;AAEO,WAAS,yBACd,WAC2B;AACrB,UAAA,YAAY,iBAAiB,SAAS;AAC5C,QAAI,cAAc,OAAO;AACvB,aAAO,cAAc;AAAA,IAAA;AAEvB,QAAI,cAAc,OAAO;AACvB,aAAO,cAAc;AAAA,IAAA;AAEvB,QAAI,cAAc,SAAS;AACzB,aAAO,cAAc;AAAA,IAAA;AAEvB,QAAI,cAAc,UAAU;AAC1B,aAAO,cAAc;AAAA,IAAA;AAEvB,QAAI,cAAc,OAAO;AACvB,aAAO,cAAc;AAAA,IAAA;AAEvB,QAAI,cAAc,OAAO;AACvB,aAAO,cAAc;AAAA,IAAA;AAEhB,WAAA;AAAA,EACT;AAkEO,WAAS,UACd,OACuC;AAEnC,QAAA;AACE,UAAA;AACA,UAAA,OAAO,UAAU,UAAU;AACtB,eAAA;AAAA,MAAA,OACF;AACL,cAAM,YACJ,iBAAiB,cAAc,IAAI,WAAW,KAAK,IAAI;AACrD,YAAA,UAAU,SAAS,OAAO;AAErB,iBAAA;AAAA,QAAA;AAET,eAAO,IAAI,cAAc,OAAO,SAAS;AAAA,MAAA;AAGrC,YAAA,OAAO,KAAK,MAAM,IAAI;AACxB,UAAA,CAAC,QAAQ,OAAO,SAAS,YAAY,MAAM,QAAQ,IAAI,GAAG;AACrD,eAAA;AAAA,MAAA;AAEH,YAAA,aAAa,KAAK,YAAY;AAEpC,iBAAW,OAAO,CAAC,SAAS,UAAU,SAAS,KAAK,GAAG;AACrD,YACE,CAAC,KAAK,GAAG,KACT,OAAO,KAAK,GAAG,MAAM,YACrB,MAAM,QAAQ,KAAK,GAAG,CAAC,GACvB;AACO,iBAAA;AAAA,QAAA;AAET,YAAI,YAAY;AAEd,cAAI,CAAC,KAAK,GAAG,EAAE,OAAO;AACb,mBAAA;AAAA,UAAA;AAIJ,eAAA,QAAQ,YAAY,QAAQ,UAAU,CAAC,KAAK,GAAG,EAAE,UAAU;AACvD,mBAAA;AAAA,UAAA;AAGL,cAAA,QAAQ,YAAY,CAAC,KAAK,GAAG,EAAE,QAAQ,CAAC,KAAK,GAAG,EAAE,OAAO;AACpD,mBAAA;AAAA,UAAA;AAAA,QACT,OACK;AAED,cAAA,CAAC,KAAK,GAAG,EAAE,SAAS,CAAC,KAAK,GAAG,EAAE,OAAO;AACjC,mBAAA;AAAA,UAAA;AAGL,cAAA,QAAQ,YAAY,CAAC,KAAK,GAAG,EAAE,QAAQ,CAAC,KAAK,GAAG,EAAE,OAAO;AACpD,mBAAA;AAAA,UAAA;AAAA,QACT;AAAA,MACF;AAGK,aAAA;AAAA,IAAA,QACD;AACC,aAAA;AAAA,IAAA;AAAA,EAEX;AAEO,WAAS,aACd,OAC+D;AAC3D,QAAA;AACF,YAAM,YACJ,iBAAiB,cAAc,IAAI,WAAW,KAAK,IAAI;AACzD,UAAI,eAA8B;AAE5B,YAAA,WAAW,UAAU,WAAW;AAAA,QACpC,QAAQ,CAAC,EAAE,WAAW;AACpB,gBAAM,WAAW,KAAK,MAAM,OAAO,EAAE,IAAI;AACzC,cAAI,aAAa,aAAa;AACb,2BAAA;AACR,mBAAA;AAAA,UAAA;AAEF,iBAAA;AAAA,QAAA;AAAA,MACT,CACD;AACD,UAAI,CAAC,cAAc;AACV,eAAA;AAAA,MAAA;AAIT,YAAM,OAAO,UAAU,SAAS,YAAY,CAAC;AAC7C,UAAI,CAAC,MAAM;AACF,eAAA;AAAA,MAAA;AAEF,aAAA,EAAE,MAAM,cAAc,KAAK;AAAA,IAAA,QAC5B;AACC,aAAA;AAAA,IAAA;AAAA,EAEX;AAAA,EA6HO,MAAM,UAAU;AAAA,IAYrB,YAAY,EAAE,YAAY,EAAE,IAA4B,CAAA,GAAI;AAC1D,WAAK,YAAY;AACZ,WAAA,YAAY,eAAe,SAAS,EAAE;AAC3C,WAAK,UAAU,IAAI,aAAa,KAAK,YAAY,CAAC;AAClD,WAAK,SAAS,IAAI,aAAa,KAAK,YAAY,CAAC;AACjD,WAAK,cAAc,IAAI,aAAa,KAAK,YAAY,CAAC;AACtD,WAAK,YAAY,IAAI,aAAa,KAAK,SAAS;AAChD,WAAK,SAAS,IAAI,aAAa,KAAK,YAAY,CAAC;AAAA,IAAA;AAAA,IAGnD,YAAoB;AAClB,YAAM,QAAQ,KAAK;AACnB,WAAK,YAAY,KAAK;AACtB,WAAK,aAAa;AACX,aAAA;AAAA,IAAA;AAAA,IAGT,YAAY,OAAe;AACrB,UAAA,UAAU,KAAK,YAAY,GAAG;AAChC,aAAK,aAAa;AAAA,MAAA,OACb;AACC,cAAA,IAAI,MAAM,4CAA4C;AAAA,MAAA;AAAA,IAC9D;AAAA,IAGF,eAAe,WAAmB;AAC5B,UAAA,YAAY,KAAK,WAAW;AAC9B,cAAM,eAAe,KAAK,IAAI,WAAW,KAAK,YAAY,CAAC;AAC3D,cAAM,aAAa,IAAI,aAAa,eAAe,CAAC;AACpD,cAAM,YAAY,IAAI,aAAa,eAAe,CAAC;AACnD,cAAM,iBAAiB,IAAI,aAAa,eAAe,CAAC;AAClD,cAAA,eAAe,IAAI,aAAa,YAAY;AAClD,cAAM,YAAY,IAAI,aAAa,eAAe,CAAC;AACxC,mBAAA,IAAI,KAAK,OAAO;AACjB,kBAAA,IAAI,KAAK,MAAM;AACV,uBAAA,IAAI,KAAK,WAAW;AACtB,qBAAA,IAAI,KAAK,SAAS;AACrB,kBAAA,IAAI,KAAK,MAAM;AACzB,aAAK,UAAU;AACf,aAAK,SAAS;AACd,aAAK,cAAc;AACnB,aAAK,YAAY;AACjB,aAAK,SAAS;AAEd,YAAI,KAAK,KAAK;AACZ,gBAAM,SAAS,IAAI,aAAa,eAAe,CAAC;AACzC,iBAAA,IAAI,KAAK,GAAG;AACnB,eAAK,MAAM;AAAA,QAAA;AAEb,YAAI,KAAK,KAAK;AACZ,gBAAM,SAAS,IAAI,aAAa,eAAe,EAAE;AAC1C,iBAAA,IAAI,KAAK,GAAG;AACnB,eAAK,MAAM;AAAA,QAAA;AAEb,YAAI,KAAK,KAAK;AACZ,gBAAM,SAAS,IAAI,aAAa,eAAe,EAAE;AAC1C,iBAAA,IAAI,KAAK,GAAG;AACnB,eAAK,MAAM;AAAA,QAAA;AAGb,aAAK,YAAY;AAAA,MAAA;AAAA,IACnB;AAAA,IAGF,YAAY,OAAe;AACpB,WAAA,eAAe,QAAQ,CAAC;AAAA,IAAA;AAAA,IAG/B,UAAU,OAAeC,IAAW,GAAW,GAAW;AACnD,WAAA,QAAQ,QAAQ,CAAC,IAAIA;AAC1B,WAAK,QAAQ,QAAQ,IAAI,CAAC,IAAI;AAC9B,WAAK,QAAQ,QAAQ,IAAI,CAAC,IAAI;AAAA,IAAA;AAAA,IAGhC,SAAS,OAAe,QAAgB,QAAgB,QAAgB;AACjE,WAAA,OAAO,QAAQ,CAAC,IAAI;AACzB,WAAK,OAAO,QAAQ,IAAI,CAAC,IAAI;AAC7B,WAAK,OAAO,QAAQ,IAAI,CAAC,IAAI;AAAA,IAAA;AAAA,IAG/B,cAAc,OAAeA,IAAW,GAAW,GAAW,GAAW;AAClE,WAAA,YAAY,QAAQ,CAAC,IAAIA;AAC9B,WAAK,YAAY,QAAQ,IAAI,CAAC,IAAI;AAClC,WAAK,YAAY,QAAQ,IAAI,CAAC,IAAI;AAClC,WAAK,YAAY,QAAQ,IAAI,CAAC,IAAI;AAAA,IAAA;AAAA,IAGpC,WAAW,OAAe,SAAiB;AACpC,WAAA,UAAU,KAAK,IAAI;AAAA,IAAA;AAAA,IAG1B,SAAS,OAAe,GAAW,GAAW,GAAW;AAClD,WAAA,OAAO,QAAQ,CAAC,IAAI;AACzB,WAAK,OAAO,QAAQ,IAAI,CAAC,IAAI;AAC7B,WAAK,OAAO,QAAQ,IAAI,CAAC,IAAI;AAAA,IAAA;AAAA,IAG/B,OAAO,OAAe,KAAmB;AACnC,UAAA,CAAC,KAAK,KAAK;AACb,aAAK,MAAM,IAAI,aAAa,KAAK,YAAY,CAAC;AAAA,MAAA;AAEhD,eAAS,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG;AAC1B,aAAK,IAAI,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC;AAAA,MAAA;AAAA,IACjC;AAAA,IAGF,OAAO,OAAe,KAAmB;AACnC,UAAA,CAAC,KAAK,KAAK;AACb,aAAK,MAAM,IAAI,aAAa,KAAK,YAAY,EAAE;AAAA,MAAA;AAEjD,eAAS,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG;AAC3B,aAAK,IAAI,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC;AAAA,MAAA;AAAA,IAClC;AAAA,IAGF,OAAO,OAAe,KAAmB;AACnC,UAAA,CAAC,KAAK,KAAK;AACb,aAAK,MAAM,IAAI,aAAa,KAAK,YAAY,EAAE;AAAA,MAAA;AAEjD,eAAS,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG;AAC3B,aAAK,IAAI,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC;AAAA,MAAA;AAAA,IAClC;AAAA,EAEJ;AC52BsB,iBAAA,aACpB,MACA,YACA,eAKC;AACD,UAAM,aAAa,aAAa;AAEhC,QAAI,CAAC,cAAc,KAAK,MAAM,aAAa,qBAAqB;AACxD,YAAA,IAAI,MAAM,iCAAiC;AAAA,IAAA;AAGnD,UAAM,YAAY,aAAa,KAAK,QAAQ,KAAK,MAAM,MAAM,CAAC;AACxD,UAAA,YAAY,iBAAiB,SAAS;AAC5C,UAAM,cAAc,IAAI,YAAY,YAAY,CAAC;AACjD,UAAM,QAAiC,CAAC;AAElC,UAAA,eAAe,QAAQ,IAAI;AAAA,MAC/B,gBAAgB,WAAW,KAAK,MAAM,MAAM,CAAC,CAAC,CAAC;AAAA,MAC/C,gBAAgB,WAAW,KAAK,MAAM,MAAM,CAAC,CAAC,CAAC;AAAA,IAAA,CAChD,EAAE,KAAK,CAAC,UAAU;AACjB,eAASD,KAAI,GAAGA,KAAI,WAAW,EAAEA,IAAG;AAClC,cAAM,KAAKA,KAAI;AACf,cAAM,MAAM,MAAM,CAAC,EAAE,KAAK,CAAC,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,KAAK,MAAM;AAC1D,cAAM,MAAM,MAAM,CAAC,EAAE,KAAK,CAAC,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,KAAK,MAAM;AAC1D,cAAM,MAAM,MAAM,CAAC,EAAE,KAAK,CAAC,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,KAAK,MAAM;AAC1D,YAAIC,KACF,KAAK,MAAM,KAAK,CAAC,KAAK,KAAK,MAAM,KAAK,CAAC,IAAI,KAAK,MAAM,KAAK,CAAC,KAAK;AACnE,YAAI,IACF,KAAK,MAAM,KAAK,CAAC,KAAK,KAAK,MAAM,KAAK,CAAC,IAAI,KAAK,MAAM,KAAK,CAAC,KAAK;AACnE,YAAI,IACF,KAAK,MAAM,KAAK,CAAC,KAAK,KAAK,MAAM,KAAK,CAAC,IAAI,KAAK,MAAM,KAAK,CAAC,KAAK;AAC/D,QAAAA,KAAA,KAAK,KAAKA,EAAC,KAAK,KAAK,IAAI,KAAK,IAAIA,EAAC,CAAC,IAAI;AACxC,YAAA,KAAK,KAAK,CAAC,KAAK,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI;AACxC,YAAA,KAAK,KAAK,CAAC,KAAK,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI;AAC5C,6BAAqB,aAAaD,IAAGC,IAAG,GAAG,CAAC;AAAA,MAAA;AAAA,IAC9C,CACD;AAEK,UAAA,gBAAgB,gBAAgB,WAAW,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE;AAAA,MACtE,CAAC,WAAW;AACN,YAAA;AACA,YAAA;AACA,YAAA;AAEJ,YAAI,YAAY;AAEZ,oBAAA,UACA,UACE,KAAK,OAAO,SAAS,IAAI,CAACA,OAAM,KAAK,IAAIA,EAAC,CAAC;AAAA,QAAA,OAC1C;AACL,oBAAU,IAAI,MAAM,GAAG,EACpB,KAAK,CAAC,EACN;AAAA,YACC,CAAC,GAAGD,OACF,KAAK,OAAO,KAAK,CAAC,KACjB,KAAK,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,KAAK,CAAC,MAAMA,KAAI;AAAA,UAAA,EAEtD,IAAI,CAACC,OAAM,KAAK,IAAIA,EAAC,CAAC;AACzB,oBAAU,IAAI,MAAM,GAAG,EACpB,KAAK,CAAC,EACN;AAAA,YACC,CAAC,GAAGD,OACF,KAAK,OAAO,KAAK,CAAC,KACjB,KAAK,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,KAAK,CAAC,MAAMA,KAAI;AAAA,UAAA,EAEtD,IAAI,CAACC,OAAM,KAAK,IAAIA,EAAC,CAAC;AACzB,oBAAU,IAAI,MAAM,GAAG,EACpB,KAAK,CAAC,EACN;AAAA,YACC,CAAC,GAAGD,OACF,KAAK,OAAO,KAAK,CAAC,KACjB,KAAK,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,KAAK,CAAC,MAAMA,KAAI;AAAA,UAAA,EAEtD,IAAI,CAACC,OAAM,KAAK,IAAIA,EAAC,CAAC;AAAA,QAAA;AAG3B,iBAASD,KAAI,GAAGA,KAAI,WAAW,EAAEA,IAAG;AAClC,gBAAM,KAAKA,KAAI;AACf;AAAA,YACE;AAAA,YACAA;AAAA,YACA,QAAQ,OAAO,KAAK,CAAC,CAAC;AAAA,YACtB,QAAQ,OAAO,KAAK,CAAC,CAAC;AAAA,YACtB,QAAQ,OAAO,KAAK,CAAC,CAAC;AAAA,YACtB;AAAA,UACF;AAAA,QAAA;AAAA,MACF;AAAA,IAEJ;AAEM,UAAA,eAAe,gBAAgB,WAAW,KAAK,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE;AAAA,MACpE,CAAC,UAAU;AACH,cAAA,QAAQ,KAAK,KAAK,CAAC;AACzB,cAAM,SAAS,IAAI,MAAM,GAAG,EACzB,KAAK,CAAC,EACN,IAAI,CAAC,GAAGA,QAAOA,KAAI,MAAM,OAAO,KAAK;AAExC,iBAASA,KAAI,GAAGA,KAAI,WAAW,EAAEA,IAAG;AAClC,gBAAM,KAAKA,KAAI;AACf,gBAAM,KAAK,OAAO,MAAM,KAAK,CAAC,CAAC;AAC/B,gBAAM,KAAK,OAAO,MAAM,KAAK,CAAC,CAAC;AAC/B,gBAAM,KAAK,OAAO,MAAM,KAAK,CAAC,CAAC;AAC/B,gBAAM,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,IAAM,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,CAAC;AACnE,gBAAM,SAAS,MAAM,KAAK,CAAC,IAAI;AAC/B,gBAAM,QAAQ,WAAW,IAAI,KAAK,WAAW,IAAI,KAAK;AACtD,gBAAM,QAAQ,UAAU,IAAI,KAAK,WAAW,IAAI,KAAK;AAC/C,gBAAA,QAAQ,UAAU,IAAI,KAAK;AAC3B,gBAAA,QAAQ,WAAW,IAAI,KAAK;AAClC,6BAAmB,aAAaA,IAAG,OAAO,OAAO,OAAO,KAAK;AAAA,QAAA;AAAA,MAC/D;AAAA,IAEJ;AACM,UAAA,aAAa,gBAAgB,WAAW,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;AAAA,MAChE,CAAC,QAAQ;AACP,cAAMuC,SAAQ;AACV,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AAEJ,YAAI,YAAY;AAEZ,oBAAA,UACA,UACE,KAAK,IAAI,SAAS,IAAI,CAACtC,OAAMsC,SAAQtC,KAAI,GAAG;AAChD,oBAAU,IAAI,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAGD,OAAMA,KAAI,GAAG;AAAA,QAAA,OACjD;AACL,oBAAU,IAAI,MAAM,GAAG,EACpB,KAAK,CAAC,EACN;AAAA,YACC,CAAC,GAAGA,OACF,KAAK,IAAI,KAAK,CAAC,KACd,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAMA,KAAI;AAAA,YAEhD,IAAI,CAACC,OAAMsC,SAAQtC,KAAI,GAAG;AAC7B,oBAAU,IAAI,MAAM,GAAG,EACpB,KAAK,CAAC,EACN;AAAA,YACC,CAAC,GAAGD,OACF,KAAK,IAAI,KAAK,CAAC,KACd,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAMA,KAAI;AAAA,YAEhD,IAAI,CAACC,OAAMsC,SAAQtC,KAAI,GAAG;AAC7B,oBAAU,IAAI,MAAM,GAAG,EACpB,KAAK,CAAC,EACN;AAAA,YACC,CAAC,GAAGD,OACF,KAAK,IAAI,KAAK,CAAC,KACd,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAMA,KAAI;AAAA,YAEhD,IAAI,CAACC,OAAMsC,SAAQtC,KAAI,GAAG;AAC7B,oBAAU,IAAI,MAAM,GAAG,EACpB,KAAK,CAAC,EACN;AAAA,YACC,CAAC,GAAGD,OACF,KAAK,IAAI,KAAK,CAAC,KACd,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAMA,KAAI;AAAA,UAAA,EAEhD,IAAI,CAACC,OAAM,KAAO,IAAM,KAAK,IAAI,CAACA,EAAC,EAAE;AAAA,QAAA;AAG1C,iBAASD,KAAI,GAAGA,KAAI,WAAW,EAAEA,IAAG;AAClC,gBAAM,KAAKA,KAAI;AACf;AAAA,YACE;AAAA,YACAA;AAAA,YACA,QAAQ,IAAI,KAAK,CAAC,CAAC;AAAA,YACnB,QAAQ,IAAI,KAAK,CAAC,CAAC;AAAA,YACnB,QAAQ,IAAI,KAAK,CAAC,CAAC;AAAA,YACnB,QAAQ,IAAI,KAAK,CAAC,CAAC;AAAA,YACnB;AAAA,UACF;AAAA,QAAA;AAAA,MACF;AAAA,IAEJ;AAEA,UAAM,WAAW,CAAC,cAAc,eAAe,cAAc,UAAU;AACvE,QAAI,KAAK,KAAK;AACN,YAAA,SAAS,aACX,KAAK,IAAI,SAAS,IAClB,KAAK,IAAI,MAAM,CAAC,KAAK,KAAK;AACxB,YAAA,SAAS,aACX,KAAK,IAAI,SAAS,IAClB,KAAK,IAAI,MAAM,CAAC,KAAK,KAAK;AACxB,YAAA,SAAS,aACX,KAAK,IAAI,SAAS,IAClB,KAAK,IAAI,MAAM,CAAC,KAAK,KAAK;AAE9B,UAAI,OAAc,OAAA,MAAM,IAAI,YAAY,YAAY,CAAC;AACrD,UAAI,OAAc,OAAA,MAAM,IAAI,YAAY,YAAY,CAAC;AACrD,UAAI,OAAc,OAAA,MAAM,IAAI,YAAY,YAAY,CAAC;AAE/C,YAAA,MAAM,IAAI,aAAa,CAAC;AACxB,YAAA,MAAM,IAAI,aAAa,EAAE;AACzB,YAAA,MAAM,IAAI,aAAa,EAAE;AAE/B,YAAM,MAAM,KAAK;AACX,YAAA,aAAa,QAAQ,IAAI;AAAA,QAC7B,YAAY,WAAW,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC;AAAA,QACzC,YAAY,WAAW,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC;AAAA,MAC1C,CAAA,EAAE,KAAK,CAAC,CAAC,WAAW,MAAM,MAAM;AACzB,cAAA,SACJ,cAAc,MACV,IAAI,WACJ,IAAI,MAAM,GAAG,EACV,KAAK,CAAC,EACN,IAAI,CAAC,GAAGA,OAAM,IAAI,QAAQ,IAAI,OAAO,IAAI,SAASA,KAAI,IAAI;AAEnE,iBAASA,KAAI,GAAGA,KAAI,WAAW,EAAEA,IAAG;AAClC,gBAAM,KAAKA,KAAI;AACT,gBAAA,QAAQ,OAAO,KAAK,KAAK,CAAC,KAAK,OAAO,KAAK,KAAK,CAAC,KAAK;AACtD,gBAAA,OAAO,QAAQ,MAAM;AAC3B,gBAAM,MAAM,UAAU;AAChB,gBAAA,SAAS,MAAM,UAAU,QAAQ;AAEvC,mBAAS,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG;AAC1B,gBAAI,QAAQ;AACV,uBAAS,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG;AACtB,oBAAA,IAAI,IAAI,CAAC,IAAI,OAAO,UAAU,MAAM,SAAS,KAAK,IAAI,CAAC,CAAC;AAAA,cAAA;AAAA,YAC9D;AAGF,gBAAI,QAAQ;AACV,uBAAS,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG;AAC1B,oBAAI,IAAI,IAAI,CAAC,IAAI,OAAO,UAAU,MAAM,SAAS,IAAI,KAAK,IAAI,CAAC,CAAC;AAAA,cAAA;AAAA,YAClE;AAGF,gBAAI,QAAQ;AACV,uBAAS,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG;AAC1B,oBAAI,IAAI,IAAI,CAAC,IAAI,OAAO,UAAU,MAAM,SAAS,IAAI,KAAK,IAAI,CAAC,CAAC;AAAA,cAAA;AAAA,YAClE;AAAA,UACF;AAGE,cAAA;AACF,yBAAa,MAAM,KAAoBA,IAAG,KAAK,aAAa;AAC1D,cAAA;AACF,yBAAa,MAAM,KAAoBA,IAAG,KAAK,aAAa;AAC1D,cAAA;AACF,yBAAa,MAAM,KAAoBA,IAAG,KAAK,aAAa;AAAA,QAAA;AAAA,MAChE,CACD;AACD,eAAS,KAAK,UAAU;AAAA,IAAA;AAGpB,UAAA,QAAQ,IAAI,QAAQ;AAEnB,WAAA,EAAE,aAAa,WAAW,MAAM;AAAA,EACzC;AAGA,MAAI,qBAAoD;AAExD,iBAAe,YAAY,WAAwB;AACjD,QAAI,CAAC,oBAAoB;AACvB,YAAM,SAAS,IAAI,gBAAgB,GAAG,CAAC;AAClB,2BAAA,OAAO,WAAW,QAAQ;AAC/C,UAAI,CAAC,oBAAoB;AACjB,cAAA,IAAI,MAAM,iCAAiC;AAAA,MAAA;AAAA,IACnD;AAGF,UAAM,YAAY,IAAI,KAAK,CAAC,SAAS,CAAC;AAChC,UAAA,SAAS,MAAM,kBAAkB,WAAW;AAAA,MAChD,kBAAkB;AAAA,IAAA,CACnB;AAED,UAAM,KAAK;AACL,UAAA,UAAU,GAAG,cAAc;AAC9B,OAAA,YAAY,GAAG,YAAY,OAAO;AAClC,OAAA,YAAY,GAAG,qBAAqB,IAAI;AACxC,OAAA,WAAW,GAAG,YAAY,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,eAAe,MAAM;AAC1E,OAAG,cAAc,GAAG,YAAY,GAAG,oBAAoB,GAAG,OAAO;AACjE,OAAG,cAAc,GAAG,YAAY,GAAG,oBAAoB,GAAG,OAAO;AAE3D,UAAA,cAAc,GAAG,kBAAkB;AACtC,OAAA,gBAAgB,GAAG,aAAa,WAAW;AAC3C,OAAA;AAAA,MACD,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACF;AAEA,UAAM,OAAO,IAAI,WAAW,OAAO,QAAQ,OAAO,SAAS,CAAC;AACzD,OAAA;AAAA,MACD;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,OAAO;AAAA,MACP,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,IACF;AAEA,OAAG,cAAc,OAAO;AACxB,OAAG,kBAAkB,WAAW;AAEzB,WAAA,EAAE,MAAM,MAAM,OAAO,OAAO,OAAO,QAAQ,OAAO,OAAO;AAAA,EAClE;AAEA,iBAAe,gBAAgB,WAAwB;AACrD,UAAM,EAAE,KAAA,IAAS,MAAM,YAAY,SAAS;AACrC,WAAA;AAAA,EACT;AAEsB,iBAAA,gBACpB,WACA,eAKC;;AACK,UAAA,WAAW,aAAa,SAAS;AACvC,QAAI,CAAC,UAAU;AACP,YAAA,IAAI,MAAM,0BAA0B;AAAA,IAAA;AAEtC,UAAA,EAAE,MAAM,KAAA,IAAS;AAEjB,UAAA,YAAY,KAAK,YAAY,GAAG;AAChC,UAAA,gBAAgB,KAAK,YAAY,IAAI;AACrC,UAAA,SAAS,KAAK,MAAM,GAAG,KAAK,IAAI,WAAW,aAAa,IAAI,CAAC;AAE7D,UAAA,8BAAc,IAAoB;AACxC,UAAM,WAAW;AAAA,MACf,GAAG,KAAK,MAAM;AAAA,MACd,GAAG,KAAK,OAAO;AAAA,MACf,GAAG,KAAK,MAAM;AAAA,MACd,GAAG,KAAK,IAAI;AAAA,MACZ,KAAIS,MAAA,KAAK,QAAL,gBAAAA,IAAU,UAAS,CAAA;AAAA,IACzB;AACA,eAAW,QAAQ,UAAU;AACnB,cAAA,IAAI,SAAS,MAAM,IAAI;AAAA,IAAA;AAG3B,UAAA,WAAW,MAAM,IAAI;AAAA,MACzB,CAAC,SAAS,WAAW;AACnB;AAAA,UACE;AAAA,UACA;AAAA,YACE,QAAQ,CAAC,EAAE,MAAAsC,YAAW;AACb,qBAAA,QAAQ,IAAIA,KAAI;AAAA,YAAA;AAAA,UAE3B;AAAA,UACA,CAAC5C,MAAK,UAAU;AACd,gBAAIA,MAAK;AACP,qBAAOA,IAAG;AAAA,YAAA,OACL;AACL,sBAAQ,KAAK;AAAA,YAAA;AAAA,UACf;AAAA,QAEJ;AAAA,MAAA;AAAA,IAEJ;AAEA,UAAM,aAA0C,CAAC;AACjD,eAAW,CAAC,MAAM4C,KAAI,KAAK,QAAQ,WAAW;AACjCA,iBAAAA,KAAI,IAAI,SAAS,IAAI;AAAA,IAAA;AAGlC,WAAO,MAAM,aAAa,MAAM,YAAY,aAAa;AAAA,EAC3D;ACxWA,iBAAe,UAAU,OAAqB;AAE5C,UAAM,EAAE,MAAM,MAAM,OAClB,MAAM;AAIR,QAAI,SAAS;AACb,QAAI,QAAQ;AAER,QAAA;AACF,cAAQ,MAAM;AAAA,QACZ,KAAK,aAAa;AAChB,gBAAM,EAAE,aAAa,WAAW,cAAkB,IAAA;AAK5C,gBAAA,UAAU,MAAM,UAAU;AAAA,YAC9B;AAAA,YACA;AAAA,YACA;AAAA,UAAA,CACD;AACQ,mBAAA;AAAA,YACP;AAAA,YACA,WAAW,QAAQ;AAAA,YACnB,aAAa,QAAQ;AAAA,YACrB,OAAO,QAAQ;AAAA,UACjB;AACA;AAAA,QAAA;AAAA,QAEF,KAAK,aAAa;AACV,gBAAA,EAAE,WAAW,cAAA,IAAkB;AAIrC,gBAAM,UAAU,MAAM,UAAU,WAAW,aAAa;AAC/C,mBAAA;AAAA,YACP;AAAA,YACA,WAAW,QAAQ;AAAA,YACnB,aAAa,QAAQ;AAAA,YACrB,OAAO,QAAQ;AAAA,UACjB;AACA;AAAA,QAAA;AAAA,QAEF,KAAK,mBAAmB;AAChB,gBAAA,EAAE,WAAW,cAAA,IAAkB;AAI/B,gBAAA,UAAU,gBAAgB,WAAW,aAAa;AAC/C,mBAAA;AAAA,YACP;AAAA,YACA,WAAW,QAAQ;AAAA,YACnB,aAAa,QAAQ;AAAA,UACvB;AACA;AAAA,QAAA;AAAA,QAEF,KAAK,gBAAgB;AACb,gBAAA,EAAE,WAAW,cAAA,IAAkB;AAI/B,gBAAA,UAAU,aAAa,WAAW,aAAa;AAC5C,mBAAA;AAAA,YACP;AAAA,YACA,WAAW,QAAQ;AAAA,YACnB,aAAa,QAAQ;AAAA,YACrB,OAAO,QAAQ;AAAA,UACjB;AACA;AAAA,QAAA;AAAA,QAEF,KAAK,gBAAgB;AACnB,gBAAM,EAAE,WAAW,YAAY,cAAkB,IAAA;AAKjD,gBAAM,OAAO,KAAK;AAAA,YAChB,IAAI,YAAA,EAAc,OAAO,SAAS;AAAA,UACpC;AACA,gBAAM,UAAU,MAAM,aAAa,MAAM,YAAY,aAAa;AACzD,mBAAA;AAAA,YACP;AAAA,YACA,WAAW,QAAQ;AAAA,YACnB,aAAa,QAAQ;AAAA,YACrB,OAAO,QAAQ;AAAA,UACjB;AACA;AAAA,QAAA;AAAA,QAEF,KAAK,mBAAmB;AAChB,gBAAA,EAAE,WAAW,cAAA,IAAkB;AAIrC,gBAAM,UAAU,MAAM,gBAAgB,WAAW,aAAa;AACrD,mBAAA;AAAA,YACP;AAAA,YACA,WAAW,QAAQ;AAAA,YACnB,aAAa,QAAQ;AAAA,YACrB,OAAO,QAAQ;AAAA,UACjB;AACA;AAAA,QAAA;AAAA,QAEF,KAAK,cAAc;AAGjB,gBAAM,EAAa,aAAa,UAAU,SAAa,IAAA;AAO9C,mBAAA;AAAA,YACP;AAAA,YACA;AAAA,YACA,GAAG,WAAW,EAAE,aAAa,UAAU,SAAU,CAAA;AAAA,UACnD;AACA;AAAA,QAAA;AAAA,QAEF,KAAK,oBAAoB;AAGvB,gBAAM,EAAE,WAAW,UAAU,SAAa,IAAA;AAKrB;AACV,qBAAA;AAAA,cACP;AAAA,cACA;AAAA,cACA;AAAA,cACA,cAAc,YAAY,WAAW,UAAU,QAAQ;AAAA,YACzD;AAAA,UAAA;AAQF;AAAA,QAAA;AAAA,QAEF,KAAK,gBAAgB;AACnB,gBAAM,EAAa,WAAW,UAAU,SAAa,IAAA;AAQhC;AACV,qBAAA;AAAA,cACP;AAAA,cACA;AAAA,cACA;AAAA,cACA,cAAc,cAAc,WAAW,UAAU,QAAQ;AAAA,YAC3D;AAAA,UAAA;AAQF;AAAA,QAAA;AAAA,QAEF,KAAK,gBAAgB;AACnB,gBAAM,QAAQ;AACR,gBAAA,WAAW,MAAM,aAAa,KAAK;AAChC,mBAAA;AAAA,YACP;AAAA,YACA,WAAW;AAAA,YACX;AAAA,UACF;AACA;AAAA,QAAA;AAAA,QAEF,SAAS;AACP,gBAAM,IAAI,MAAM,iBAAiB,IAAI,EAAE;AAAA,QAAA;AAAA,MACzC;AAAA,aAEK,GAAG;AACF,cAAA;AACR,cAAQ,MAAM,KAAK;AAAA,IAAA;AAIhB,SAAA;AAAA,MACH,EAAE,IAAI,QAAQ,MAAM;AAAA,MACpB,EAAE,UAAU,gBAAgB,MAAM,EAAE;AAAA,IACtC;AAAA,EACF;AA8EA,iBAAe,UAAU;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAQG;AACD,UAAM,MAAM,IAAI,UAAU,EAAE,WAAW;AACvC,UAAM,IAAI,YAAY;AACtB,UAAM,YAAY,IAAI;AAEtB,UAAM,QAAiC,CAAC;AAEpC,QAAA;AAAA,MACF,CACE,OACA9C,IACA,GACA,GACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,SACA,GACA,GACA,MACG;AACH;AAAA,UACE;AAAA,UACA;AAAA,UACAA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,CAAC,OAAO,KAAK,KAAK,QAAQ;AACxB,YAAI,KAAK;AACH,cAAA,CAAC,MAAM,KAAK;AACd,kBAAM,MAAM,IAAI,YAAY,YAAY,CAAC;AAAA,UAAA;AAE3C,uBAAa,MAAM,KAAoB,OAAO,KAAK,aAAa;AAAA,QAAA;AAElE,YAAI,KAAK;AACH,cAAA,CAAC,MAAM,KAAK;AACd,kBAAM,MAAM,IAAI,YAAY,YAAY,CAAC;AAAA,UAAA;AAE3C,uBAAa,MAAM,KAAoB,OAAO,KAAK,aAAa;AAAA,QAAA;AAElE,YAAI,KAAK;AACH,cAAA,CAAC,MAAM,KAAK;AACd,kBAAM,MAAM,IAAI,YAAY,YAAY,CAAC;AAAA,UAAA;AAE3C,uBAAa,MAAM,KAAoB,OAAO,KAAK,aAAa;AAAA,QAAA;AAAA,MAClE;AAAA,IAEJ;AAEO,WAAA,EAAE,aAAa,WAAW,MAAM;AAAA,EACzC;AAEA,iBAAe,UACb,WACA,eAKC;AACD,UAAM,MAAM,IAAI,UAAU,EAAE,WAAW;AACvC,UAAM,IAAI,YAAY;AACtB,UAAM,YAAY,IAAI;AAChB,UAAA,YAAY,iBAAiB,SAAS;AAC5C,UAAM,cAAc,IAAI,YAAY,YAAY,CAAC;AACjD,UAAM,QAAiC,CAAC;AAExC,QAAI,iBAAiB,CAAC;AACtB,QAAI,IAAI,SAAS;AACT,YAAA,cAAc,IAAI,YAAY,SAAS;AACvC,YAAA,cAAc,IAAI,YAAY,SAAS;AAC7C,YAAM,cAAc;AACpB,YAAM,cAAc;AACH,uBAAA;AAAA,QACf,aAAa,CAAC,OAAe,UAAkB;AAC7C,sBAAY,KAAK,IAAI;AAAA,QACvB;AAAA,QACA,aAAa,CAAC,OAAe,UAAkB;AAC7C,sBAAY,KAAK,IAAI;AAAA,QAAA;AAAA,MAEzB;AAAA,IAAA;AAGF,UAAM,IAAI;AAAA,MACR,CAAC,OAAOA,IAAG,GAAG,MAAM;AAClB,6BAAqB,aAAa,OAAOA,IAAG,GAAG,CAAC;AAAA,MAClD;AAAA,MACA,CAAC,OAAO,UAAU;AACM,8BAAA,aAAa,OAAO,KAAK;AAAA,MACjD;AAAA,MACA,CAAC,OAAO,GAAG,GAAG,MAAM;AAClB,0BAAkB,aAAa,OAAO,GAAG,GAAG,GAAG,aAAa;AAAA,MAC9D;AAAA,MACA,CAAC,OAAO,QAAQ,QAAQ,WAAW;AACjC;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,CAAC,OAAO,OAAO,OAAO,OAAO,UAAU;AACrC,2BAAmB,aAAa,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,MACnE;AAAA,MACA,CAAC,OAAO,KAAK,KAAK,QAAQ;AACxB,YAAI,KAAK;AACH,cAAA,CAAC,MAAM,KAAK;AACd,kBAAM,MAAM,IAAI,YAAY,YAAY,CAAC;AAAA,UAAA;AAE3C,uBAAa,MAAM,KAAoB,OAAO,KAAK,aAAa;AAAA,QAAA;AAElE,YAAI,KAAK;AACH,cAAA,CAAC,MAAM,KAAK;AACd,kBAAM,MAAM,IAAI,YAAY,YAAY,CAAC;AAAA,UAAA;AAE3C,uBAAa,MAAM,KAAoB,OAAO,KAAK,aAAa;AAAA,QAAA;AAElE,YAAI,KAAK;AACH,cAAA,CAAC,MAAM,KAAK;AACd,kBAAM,MAAM,IAAI,YAAY,YAAY,CAAC;AAAA,UAAA;AAE3C,uBAAa,MAAM,KAAoB,OAAO,KAAK,aAAa;AAAA,QAAA;AAAA,MAEpE;AAAA,MACA;AAAA,IACF;AACO,WAAA,EAAE,aAAa,WAAW,MAAM;AAAA,EACzC;AAGA,QAAM,qBAAqB;AAC3B,QAAM,gBAAgB,qBAAqB;AAC3C,MAAI,eAAmC;AAEvC,WAAS,WAAW;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAGE;AAIA,QAAI,CAAC,cAAc;AACF,qBAAA,IAAI,YAAY,aAAa;AAAA,IAAA;AAE9C,iBAAa,KAAK,CAAC;AAEb,UAAA,iBAAiB,SAAS,IAAI,CAAC,UAAU,IAAI,YAAY,MAAM,MAAM,CAAC;AACtE,UAAA,YAAY,eAAe,CAAC,EAAE;AACpC,UAAM,YAAY,KAAK,KAAK,cAAc,SAAS;AAEnD,QAAI,YAAY;AAChB,aAAS,QAAQ,GAAG,QAAQ,WAAW,EAAE,OAAO;AACxC,YAAA,gBAAgB,eAAe,KAAK;AAC1C,YAAM,cAAc,KAAK,IAAI,cAAc,QAAQ,cAAc,SAAS;AAC1E,eAASD,KAAI,GAAGA,KAAI,aAAa,EAAEA,IAAG;AAC9B,cAAA,MAAM,cAAcA,EAAC,IAAI;AAC/B,YAAI,MAAM,oBAAoB;AAC5B,uBAAa,GAAG,KAAK;AAAA,QAAA;AAAA,MACvB;AAEW,mBAAA;AAAA,IAAA;AAGf,QAAI,eAAe;AACnB,aAAS,IAAI,GAAG,IAAI,eAAe,EAAE,GAAG;AAChC,YAAA,YAAY,eAAe,aAAa,CAAC;AAC/C,mBAAa,CAAC,IAAI;AACH,qBAAA;AAAA,IAAA;AAGL,gBAAA;AACZ,aAAS,QAAQ,GAAG,QAAQ,WAAW,EAAE,OAAO;AACxC,YAAA,gBAAgB,eAAe,KAAK;AAC1C,YAAM,cAAc,KAAK,IAAI,cAAc,QAAQ,cAAc,SAAS;AAC1E,eAASA,KAAI,GAAGA,KAAI,aAAa,EAAEA,IAAG;AAC9B,cAAA,MAAM,cAAcA,EAAC,IAAI;AAC/B,YAAI,MAAM,oBAAoB;AAC5B,mBAAS,aAAa,GAAG,CAAC,IAAI,YAAYA;AAC1C,uBAAa,GAAG,KAAK;AAAA,QAAA;AAAA,MACvB;AAEW,mBAAA;AAAA,IAAA;AAEf,QAAI,aAAa,gBAAgB,CAAC,MAAM,cAAc;AACpD,YAAM,IAAI;AAAA,QACR,YAAY,YAAY,0BAA0B,aAAa,gBAAgB,CAAC,CAAC;AAAA,MACnF;AAAA,IAAA;AAGK,WAAA,EAAE,cAAc,SAAS;AAAA,EAClC;AAsJA,QAAM,gBAAgC,CAAC;AAEvC,WAAS,cAAc,OAAqB;AAC1C,kBAAc,KAAK,KAAK;AAAA,EAC1B;AAEA,iBAAe,aAAa;AAErB,SAAA,iBAAiB,WAAW,aAAa;AAE9C,UAAMgD,WAAU;AAEX,SAAA,oBAAoB,WAAW,aAAa;AAC5C,SAAA,iBAAiB,WAAW,SAAS;AAG1C,eAAW,SAAS,eAAe;AACjC,gBAAU,KAAK;AAAA,IAAA;AAEjB,kBAAc,SAAS;AAAA,EACzB;AAEA,eAAa,MAAM,QAAQ,KAAK;;","x_google_ignoreList":[1,2]} \ No newline at end of file diff --git a/dist/assets/worker-BAMFf186.js.map b/dist/assets/worker-BAMFf186.js.map new file mode 100644 index 00000000..45212372 --- /dev/null +++ b/dist/assets/worker-BAMFf186.js.map @@ -0,0 +1 @@ +{"version":3,"file":"worker-BAMFf186.js","sources":["../rust/spark-rs/pkg/spark_rs.js","../src/worker.ts"],"sourcesContent":["/* @ts-self-types=\"./spark_rs.d.ts\" */\n\nexport class ChunkDecoder {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ChunkDecoder.prototype);\n obj.__wbg_ptr = ptr;\n ChunkDecoderFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ChunkDecoderFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_chunkdecoder_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n finish() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.chunkdecoder_finish(ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n */\n push(bytes) {\n const ret = wasm.chunkdecoder_push(this.__wbg_ptr, bytes);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n}\nif (Symbol.dispose) ChunkDecoder.prototype[Symbol.dispose] = ChunkDecoder.prototype.free;\n\nexport class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n\nexport class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function bhatt_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, rgba) {\n const ret = wasm.bhatt_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function bhatt_lod_packedsplats(num_splats, packed, extra, lod_base, rgba, encoding) {\n const ret = wasm.bhatt_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {any}\n */\nexport function decode_rad_header(bytes) {\n const ret = wasm.decode_rad_header(bytes);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @returns {ChunkDecoder}\n */\nexport function decode_to_csplatarray(file_type, path_name, encoding) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_csplatarray(ptr0, len0, ptr1, len1, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_extsplats(file_type, path_name, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_extsplats(ptr0, len0, ptr1, len1, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_gsplatarray(file_type, path_name) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_gsplatarray(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Uint32Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_packedsplats(file_type, path_name, encoding, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_packedsplats(ptr0, len0, ptr1, len1, encoding, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n */\nexport function dispose_lod_tree(lod_id) {\n wasm.dispose_lod_tree(lod_id);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null} [extra]\n * @returns {GsplatArray}\n */\nexport function extsplats_to_gsplatarray(num_splats, ext1, ext2, extra) {\n const ret = wasm.extsplats_to_gsplatarray(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n * @param {number} level\n * @returns {object}\n */\nexport function get_lod_tree_level(lod_id, level) {\n const ret = wasm.get_lod_tree_level(lod_id, level);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer() {\n const ret = wasm.get_raycast_buffer();\n return ret;\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer2() {\n const ret = wasm.get_raycast_buffer2();\n return ret;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} lod_tree\n * @returns {object}\n */\nexport function init_lod_tree(num_splats, lod_tree) {\n const ret = wasm.init_lod_tree(num_splats, lod_tree);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} capacity\n * @returns {object}\n */\nexport function new_lod_tree(capacity) {\n const ret = wasm.new_lod_tree(capacity);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} orig_lod_id\n * @returns {object}\n */\nexport function new_shared_lod_tree(orig_lod_id) {\n const ret = wasm.new_shared_lod_tree(orig_lod_id);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {CsplatArray}\n */\nexport function packedsplats_to_csplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_csplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return CsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {GsplatArray}\n */\nexport function packedsplats_to_gsplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_gsplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @returns {Float32Array}\n */\nexport function raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count) {\n const ret = wasm.raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} num_splats\n * @param {Uint32Array} packed_splats\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @returns {boolean}\n */\nexport function simd_enabled() {\n const ret = wasm.simd_enabled();\n return ret !== 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint16Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function tiny_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, merge_filter, rgba) {\n const ret = wasm.tiny_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function tiny_lod_packedsplats(num_splats, packed, extra, lod_base, merge_filter, rgba, encoding) {\n const ret = wasm.tiny_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} page_bases\n * @param {Uint32Array} chunk_bases\n * @param {Uint32Array} counts\n * @param {Array} lod_trees\n * @returns {object}\n */\nexport function update_lod_trees(lod_ids, page_bases, chunk_bases, counts, lod_trees) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(page_bases, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_bases, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(counts, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.update_lod_trees(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, lod_trees);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\nexport function wasm_start() {\n wasm.wasm_start();\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments); },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_fd4646b401926788: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_26bffbe236bf73f9: function(arg0) {\n const ret = new Float32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) {\n arg0.set(getArrayF32FromWasm0(arg1, arg2));\n },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(F32)) -> NamedExternref(\"Float32Array\")`.\n const ret = getArrayF32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000003: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U32)) -> NamedExternref(\"Uint32Array\")`.\n const ret = getArrayU32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000004: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000005: function(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./spark_rs_bg.js\": import0,\n };\n}\n\nconst ChunkDecoderFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\nconst CsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\nconst GsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayF32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\nfunction getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint16ArrayMemory0 = null;\nfunction getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayF32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getFloat32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","import init_wasm, {\n sort_splats,\n sort32_splats,\n decode_to_gsplatarray,\n decode_to_csplatarray,\n decode_to_packedsplats,\n new_lod_tree,\n new_shared_lod_tree,\n init_lod_tree,\n dispose_lod_tree,\n traverse_lod_trees,\n dynamic_traverse_lod_trees,\n type ChunkDecoder,\n tiny_lod_packedsplats,\n bhatt_lod_packedsplats,\n update_lod_trees,\n decode_to_extsplats,\n tiny_lod_extsplats,\n bhatt_lod_extsplats,\n get_lod_tree_level,\n} from \"spark-rs\";\nimport type { ExtResult, PackedResult, SplatEncoding } from \"./defines\";\n\nconst rpcHandlers = {\n sortSplats16,\n sortSplats32,\n loadPackedSplats,\n loadExtSplats,\n tinyLodPackedSplats,\n qualityLodPackedSplats,\n tinyLodExtSplats,\n qualityLodExtSplats,\n newLodTree,\n newSharedLodTree,\n initLodTree,\n disposeLodTree,\n updateLodTrees,\n traverseLodTrees,\n getLodTreeLevel,\n nextChunk,\n};\n\nasync function onMessage(event: MessageEvent) {\n const {\n id,\n name,\n args,\n }: { id: unknown; name: keyof typeof rpcHandlers; args: unknown } =\n event.data;\n try {\n const handler = rpcHandlers[name] as (\n args: unknown,\n options: { sendStatus: (data: unknown) => void },\n ) => unknown | Promise;\n if (!handler) {\n throw new Error(`Unknown worker RPC: ${name}`);\n }\n\n const sendStatus = (data: unknown) => {\n self.postMessage(\n { id, status: data },\n { transfer: getTransferable(data) },\n );\n };\n const result = await handler(args, { sendStatus });\n self.postMessage({ id, result }, { transfer: getTransferable(result) });\n } catch (error) {\n console.warn(`Worker error: ${error}`);\n self.postMessage({ id, error }, { transfer: getTransferable(error) });\n }\n}\n\nfunction sortSplats16({\n numSplats,\n readback,\n ordering,\n}: {\n numSplats: number;\n readback: Uint16Array;\n ordering: Uint32Array;\n}) {\n const activeSplats = sort_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n}\n\nfunction sortSplats32({\n numSplats,\n readback,\n ordering,\n}: {\n numSplats: number;\n readback: Uint32Array;\n ordering: Uint32Array;\n}) {\n const activeSplats = sort32_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n}\n\nasync function fetchRange({\n url,\n requestHeader,\n withCredentials,\n offset,\n bytes,\n}: {\n url: string;\n requestHeader?: Record;\n withCredentials?: string;\n offset?: number;\n bytes?: number;\n}): Promise {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n if (offset !== undefined && bytes !== undefined) {\n request.headers.set(\"Range\", `bytes=${offset}-${offset + bytes - 1}`);\n }\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n return new Uint8Array(await response.arrayBuffer());\n}\n\nasync function decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n}: {\n decoder: ChunkDecoder;\n fileBytes?: Uint8Array;\n url?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n chunked?: boolean;\n chunkedLength?: number;\n sendStatus: (data: unknown) => void;\n}) {\n if (fileBytes) {\n const CHUNK_SIZE = 1048576; // 1 MB\n for (let i = 0; i < fileBytes.length; i += CHUNK_SIZE) {\n decoder.push(\n fileBytes.subarray(i, Math.min(i + CHUNK_SIZE, fileBytes.length)),\n );\n }\n } else if (url) {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n const readStream = response.body.getReader();\n const contentLength = Number.parseInt(\n response.headers.get(\"Content-Length\") || \"0\",\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n let loaded = 0;\n\n while (true) {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n break;\n }\n loaded += value.length;\n sendStatus({ loaded, total });\n\n decoder.push(value);\n }\n } else if (chunked) {\n let loaded = 0;\n const total = chunkedLength ?? 0;\n while (true) {\n const readNextChunk: Promise = new Promise((resolve) => {\n nextChunkWaiter = resolve;\n });\n sendStatus({ nextChunk: true });\n const nextChunk = await readNextChunk;\n\n if (nextChunk.length === 0) {\n break;\n }\n\n decoder.push(nextChunk);\n loaded += nextChunk.length;\n sendStatus({ progress: { loaded, total } });\n }\n if (total === 0) {\n sendStatus({ progress: { loaded, total: loaded } });\n }\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n const decoded = decoder.finish();\n return decoded;\n}\n\ntype DecodedPackedResult = {\n numSplats: number;\n packed: Uint32Array;\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n lodTree?: Uint32Array;\n splatEncoding: SplatEncoding;\n};\n\nfunction toPackedResult(packed: DecodedPackedResult): PackedResult {\n return {\n numSplats: packed.numSplats,\n packedArray: packed.packed,\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3: packed.sh3,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree,\n },\n splatEncoding: packed.splatEncoding,\n };\n}\n\nasync function loadPackedSplats(\n {\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n encoding,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n }: {\n url?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: string;\n pathName?: string;\n chunked?: boolean;\n chunkedLength?: number;\n encoding?: SplatEncoding;\n lod?: boolean | \"quality\";\n lodBase?: number;\n lodAbove?: number;\n nonLod?: boolean;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n },\n {\n sendStatus,\n }: {\n sendStatus: (data: unknown) => void;\n },\n) {\n // console.log(\"loadPackedSplats\", { url, requestHeader, withCredentials, fileBytes, fileType, pathName, stream, streamLength, encoding, lod, lodBase, lodAbove, nonLod });\n if (!lod) {\n const decoder = decode_to_packedsplats(\n fileType,\n pathName ?? url,\n encoding,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n );\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n const result = toPackedResult(decoded as DecodedPackedResult);\n if (result.splatEncoding.lodOpacity) {\n return { lodSplats: result };\n }\n return result;\n }\n\n const decoder = decode_to_csplatarray(fileType, pathName ?? url, encoding);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n\n if (decoded.has_lod()) {\n const result = toPackedResult(\n decoded.to_packedsplats_lod() as DecodedPackedResult,\n );\n return { lodSplats: result };\n }\n\n if (lodAbove !== undefined) {\n if (decoded.len() < lodAbove) {\n return toPackedResult(decoded.to_packedsplats() as DecodedPackedResult);\n }\n }\n\n let result:\n | (ReturnType & {\n lodSplats?: ReturnType;\n })\n | { lodSplats?: ReturnType } = {};\n\n // if (nonLod === true) {\n // sendStatus({ orig: toPackedResult(packed as DecodedPackedResult) });\n // } else if (nonLod === \"wait\") {\n if (nonLod) {\n // Wait until LoD computation is complete before resolving full PackedSplats result\n result = toPackedResult(decoded.to_packedsplats() as DecodedPackedResult);\n }\n\n const initialSplats = decoded.len();\n const lodName = lod === \"quality\" ? \"Bhatt\" : \"Tiny\";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`,\n );\n\n const lodStart = performance.now();\n if (lod === \"quality\") {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.25));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`,\n );\n\n const lodPacked = decoded.to_packedsplats_lod();\n result.lodSplats = toPackedResult(lodPacked as DecodedPackedResult);\n return result;\n}\n\ntype DecodedExtResult = {\n numSplats: number;\n ext0: Uint32Array;\n ext1: Uint32Array;\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3a?: Uint32Array;\n sh3b?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n lodTree?: Uint32Array;\n};\n\nfunction toExtResult(packed: DecodedExtResult): ExtResult {\n return {\n numSplats: packed.numSplats,\n extArrays: [packed.ext0, packed.ext1],\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3a: packed.sh3a,\n sh3b: packed.sh3b,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree,\n },\n };\n}\n\nasync function loadExtSplats(\n {\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n }: {\n url?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: string;\n pathName?: string;\n chunked?: boolean;\n chunkedLength?: number;\n lod?: boolean | \"quality\";\n lodBase?: number;\n lodAbove?: number;\n nonLod?: boolean;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n },\n {\n sendStatus,\n }: {\n sendStatus: (data: unknown) => void;\n },\n) {\n // console.log(\"loadExtSplats\", { url, requestHeader, withCredentials, fileBytes, fileType, pathName, stream, streamLength, lod, lodBase, lodAbove, nonLod });\n if (!lod) {\n const decoder = decode_to_extsplats(\n fileType,\n pathName ?? url,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n );\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n const result = toExtResult(decoded as DecodedExtResult);\n if (result.extra.lodTree) {\n return { lodSplats: result };\n }\n return result;\n }\n\n const decoder = decode_to_gsplatarray(fileType, pathName ?? url);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n\n if (decoded.has_lod()) {\n return {\n lodSplats: toExtResult(decoded.to_extsplats_lod() as DecodedExtResult),\n };\n }\n\n if (lodAbove !== undefined) {\n if (decoded.len() < lodAbove) {\n return toExtResult(decoded.to_extsplats() as DecodedExtResult);\n }\n }\n\n let result:\n | (ReturnType & {\n lodSplats?: ReturnType;\n })\n | { lodSplats?: ReturnType } = {};\n\n if (nonLod) {\n // Wait until LoD computation is complete before resolving full PackedSplats result\n result = toExtResult(decoded.to_extsplats() as DecodedExtResult);\n }\n\n const initialSplats = decoded.len();\n const lodName = lod === \"quality\" ? \"Bhatt\" : \"Tiny\";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`,\n );\n\n const lodStart = performance.now();\n if (lod === \"quality\") {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.75));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`,\n );\n\n const lodPacked = decoded.to_extsplats_lod();\n result.lodSplats = toExtResult(lodPacked as DecodedExtResult);\n return result;\n}\n\nasync function tinyLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n packedArray: Uint32Array;\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_packedsplats(\n numSplats,\n packedArray,\n extra as object,\n base,\n filter,\n rgba,\n encoding,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded as DecodedPackedResult);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nasync function qualityLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n packedArray: Uint32Array;\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_packedsplats(\n numSplats,\n packedArray,\n extra as object,\n base,\n rgba,\n encoding,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded as DecodedPackedResult);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nasync function tinyLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra as object,\n base,\n filter,\n rgba,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded as DecodedExtResult);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nasync function qualityLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra as object,\n base,\n rgba,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded as DecodedExtResult);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nfunction newLodTree({\n capacity,\n}: {\n capacity: number;\n}) {\n const { lodId } = new_lod_tree(capacity) as { lodId: number };\n return { lodId };\n}\n\nfunction newSharedLodTree({\n lodId,\n}: {\n lodId: number;\n}) {\n const { lodId: newLodId } = new_shared_lod_tree(lodId) as { lodId: number };\n return { lodId: newLodId };\n}\n\nfunction initLodTree({\n numSplats,\n lodTree,\n}: {\n numSplats: number;\n lodTree: Uint32Array;\n}) {\n const { lodId, chunkToPage } = init_lod_tree(numSplats, lodTree) as {\n lodId: number;\n chunkToPage: Uint32Array;\n };\n return { lodId, chunkToPage };\n}\n\nfunction disposeLodTree({ lodId }: { lodId: number }) {\n dispose_lod_tree(lodId);\n}\n\nfunction updateLodTrees({\n ranges,\n}: {\n ranges: {\n lodId: number;\n pageBase: number;\n chunkBase: number;\n count: number;\n lodTreeData?: Uint32Array;\n }[];\n}) {\n const lodIds = new Uint32Array(ranges.map(({ lodId }) => lodId));\n const pageBases = new Uint32Array(ranges.map(({ pageBase }) => pageBase));\n const chunkBases = new Uint32Array(ranges.map(({ chunkBase }) => chunkBase));\n const counts = new Uint32Array(ranges.map(({ count }) => count));\n const lodTreeData = ranges.map(({ lodTreeData }) => lodTreeData);\n\n const result = update_lod_trees(\n lodIds,\n pageBases,\n chunkBases,\n counts,\n lodTreeData,\n );\n}\n\nfunction traverseLodTrees({\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n instances,\n traverseMode,\n}: {\n maxSplats: number;\n pixelScaleLimit: number;\n lastPixelLimit?: number;\n instances: Record<\n string,\n {\n instanceId: string;\n lodId: number;\n rootPage?: number;\n viewToObjectCols: number[];\n lodScale: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n }\n >;\n traverseMode: \"dynamic\" | \"standard\";\n}) {\n const keyInstances = Object.entries(instances);\n const lodIds = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.lodId),\n );\n const rootPages = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.rootPage ?? 0xffffffff),\n );\n const viewToObjects = new Float32Array(\n keyInstances.flatMap(([_key, instance]) => {\n if (instance.viewToObjectCols.length !== 16) {\n throw new Error(\"Incorrect array size for viewToObjectCols\");\n }\n return instance.viewToObjectCols;\n }),\n );\n const lodScales = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.lodScale),\n );\n const behindFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.behindFoveate),\n );\n const coneFov0s = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov0),\n );\n const coneFovs = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov),\n );\n const coneFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFoveate),\n );\n\n const lodFunction =\n traverseMode === \"dynamic\"\n ? dynamic_traverse_lod_trees\n : traverse_lod_trees;\n const result = lodFunction(\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n lodIds,\n rootPages,\n viewToObjects,\n lodScales,\n behindFoveates,\n coneFoveates,\n coneFov0s,\n coneFovs,\n ) as {\n instanceIndices: {\n lodId: number;\n numSplats: number;\n indices: Uint32Array;\n }[];\n chunks: [number, number][];\n pixelLimit?: number;\n };\n const { instanceIndices, chunks, pixelLimit } = result;\n\n const indices = keyInstances.reduce(\n (indices, [key, _instance], index) => {\n indices[key] = instanceIndices[index];\n return indices;\n },\n {} as Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >,\n );\n // console.log(`traverseLodTrees: instanceIndices=${instanceIndices.length}`);\n // console.log(`traverseLodTrees: chunks=${chunks.length}`, JSON.stringify(chunks));\n return {\n keyIndices: indices,\n chunks,\n pixelLimit,\n };\n}\n\nfunction getLodTreeLevel({\n lodId,\n level,\n}: {\n lodId: number;\n level: number;\n}) {\n return get_lod_tree_level(lodId, level) as { indices: Uint32Array };\n}\n\nlet nextChunkWaiter = (_chunk: Uint8Array) => {};\n\nasync function nextChunk({ chunk }: { chunk: Uint8Array }) {\n nextChunkWaiter(chunk);\n}\n\n// Recursively finds all ArrayBuffers in an object and returns them as an array\n// to use as transferable objects to send between workers.\nfunction getTransferable(ctx: unknown): Transferable[] {\n const buffers: Transferable[] = [];\n const seen = new Set();\n\n function traverse(obj: unknown) {\n if (obj && typeof obj === \"object\" && !seen.has(obj)) {\n seen.add(obj);\n\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n // Handles TypedArrays and DataView\n buffers.push(obj.buffer as ArrayBuffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n\n traverse(ctx);\n return buffers;\n}\n\nasync function initialize() {\n let resolveWaitForModule: (value: WebAssembly.Module) => void;\n const waitForModule = new Promise((resolve) => {\n resolveWaitForModule = resolve;\n });\n\n // Hold any messages received while initializing\n const pending: MessageEvent[] = [];\n const bufferMessage = (event: MessageEvent) => {\n // Handle module\n if (event.data.name === \"init-wasm\") {\n resolveWaitForModule(event.data.module as WebAssembly.Module);\n return;\n }\n\n pending.push(event);\n };\n self.addEventListener(\"message\", bufferMessage);\n\n await init_wasm({ module_or_path: await waitForModule });\n\n self.removeEventListener(\"message\", bufferMessage);\n self.addEventListener(\"message\", onMessage);\n\n // Process any buffered messages\n for (const event of pending) {\n onMessage(event);\n }\n pending.length = 0;\n}\n\ninitialize().catch(console.error);\n"],"names":["ChunkDecoder","ptr","obj","ChunkDecoderFinalization","wasm","ret","takeFromExternrefTable0","bytes","CsplatArray","CsplatArrayFinalization","lod_base","rgba","merge_filter","arg0","GsplatArray","GsplatArrayFinalization","encoding","bhatt_lod_extsplats","num_splats","ext1","ext2","extra","isLikeNone","addToExternrefTable0","bhatt_lod_packedsplats","packed","decode_to_csplatarray","file_type","path_name","ptr0","passStringToWasm0","len0","WASM_VECTOR_LEN","ptr1","len1","decode_to_extsplats","sh1_codes","sh2_codes","sh3_codes","decode_to_gsplatarray","decode_to_packedsplats","dispose_lod_tree","lod_id","dynamic_traverse_lod_trees","max_splats","pixel_scale_limit","_last_pixel_limit","lod_ids","root_pages","view_to_objects","lod_scales","behind_foveates","cone_foveates","cone_fov0s","cone_fovs","passArray32ToWasm0","ptr2","passArrayF32ToWasm0","len2","ptr3","len3","ptr4","len4","ptr5","len5","ptr6","len6","ptr7","len7","get_lod_tree_level","level","init_lod_tree","lod_tree","new_lod_tree","capacity","new_shared_lod_tree","orig_lod_id","sort32_splats","readback","ordering","sort_splats","tiny_lod_extsplats","tiny_lod_packedsplats","traverse_lod_trees","update_lod_trees","page_bases","chunk_bases","counts","lod_trees","__wbg_get_imports","arg1","getStringFromWasm0","v","debugString","getDataViewMemory0","val","deferred0_0","deferred0_1","handleError","result","arg2","getArrayU8FromWasm0","getArrayU16FromWasm0","getArrayU32FromWasm0","getArrayF32FromWasm0","table","offset","idx","type","description","name","length","debug","i","builtInMatches","className","len","getFloat32ArrayMemory0","getUint16ArrayMemory0","getUint32ArrayMemory0","getUint8ArrayMemory0","cachedDataViewMemory0","cachedFloat32ArrayMemory0","decodeText","cachedUint16ArrayMemory0","cachedUint32ArrayMemory0","cachedUint8ArrayMemory0","f","args","x","arg","malloc","realloc","buf","cachedTextEncoder","mem","code","view","value","cachedTextDecoder","MAX_SAFARI_DECODE_BYTES","numBytesDecoded","__wbg_finalize_init","instance","module","__wbg_load","imports","e","expectedResponseType","__wbg_init","module_or_path","rpcHandlers","sortSplats16","sortSplats32","loadPackedSplats","loadExtSplats","tinyLodPackedSplats","qualityLodPackedSplats","tinyLodExtSplats","qualityLodExtSplats","newLodTree","newSharedLodTree","initLodTree","disposeLodTree","updateLodTrees","traverseLodTrees","getLodTreeLevel","nextChunk","onMessage","event","id","handler","data","getTransferable","error","numSplats","decodeBytesUrl","decoder","fileBytes","url","requestHeader","withCredentials","chunked","chunkedLength","sendStatus","request","response","readStream","contentLength","total","loaded","done","readNextChunk","resolve","nextChunkWaiter","toPackedResult","fileType","pathName","lod","lodBase","lodAbove","nonLod","sh1Codes","sh2Codes","sh3Codes","decoded","initialSplats","lodName","lodStart","base","lodDuration","lodPacked","toExtResult","packedArray","extArrays","lodId","newLodId","lodTree","chunkToPage","ranges","lodIds","pageBases","pageBase","chunkBases","chunkBase","count","lodTreeData","maxSplats","pixelScaleLimit","lastPixelLimit","instances","traverseMode","keyInstances","_key","rootPages","viewToObjects","lodScales","behindFoveates","coneFov0s","coneFovs","coneFoveates","instanceIndices","chunks","pixelLimit","indices","key","_instance","index","_chunk","chunk","ctx","buffers","seen","traverse","initialize","resolveWaitForModule","waitForModule","pending","bufferMessage","init_wasm"],"mappings":"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"} \ No newline at end of file diff --git a/dist/assets/worker-C9LcsNvD.js.map b/dist/assets/worker-C9LcsNvD.js.map deleted file mode 100644 index e2117f57..00000000 --- a/dist/assets/worker-C9LcsNvD.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"worker-C9LcsNvD.js","sources":["../rust/spark-worker-rs/pkg/spark_worker_rs.js","../src/worker.ts"],"sourcesContent":["/* @ts-self-types=\"./spark_worker_rs.d.ts\" */\n\nexport class ChunkDecoder {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ChunkDecoder.prototype);\n obj.__wbg_ptr = ptr;\n ChunkDecoderFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ChunkDecoderFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_chunkdecoder_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n finish() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.chunkdecoder_finish(ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n */\n push(bytes) {\n const ret = wasm.chunkdecoder_push(this.__wbg_ptr, bytes);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n}\nif (Symbol.dispose) ChunkDecoder.prototype[Symbol.dispose] = ChunkDecoder.prototype.free;\n\nexport class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n\nexport class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function bhatt_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, rgba) {\n const ret = wasm.bhatt_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function bhatt_lod_packedsplats(num_splats, packed, extra, lod_base, rgba, encoding) {\n const ret = wasm.bhatt_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @returns {ChunkDecoder}\n */\nexport function decode_to_csplatarray(file_type, path_name, encoding) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_csplatarray(ptr0, len0, ptr1, len1, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_extsplats(file_type, path_name, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_extsplats(ptr0, len0, ptr1, len1, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_gsplatarray(file_type, path_name) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_gsplatarray(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Uint32Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_packedsplats(file_type, path_name, encoding, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_packedsplats(ptr0, len0, ptr1, len1, encoding, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n */\nexport function dispose_lod_tree(lod_id) {\n wasm.dispose_lod_tree(lod_id);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null} [extra]\n * @returns {GsplatArray}\n */\nexport function extsplats_to_gsplatarray(num_splats, ext1, ext2, extra) {\n const ret = wasm.extsplats_to_gsplatarray(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n * @param {number} level\n * @returns {object}\n */\nexport function get_lod_tree_level(lod_id, level) {\n const ret = wasm.get_lod_tree_level(lod_id, level);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} lod_tree\n * @returns {object}\n */\nexport function init_lod_tree(num_splats, lod_tree) {\n const ret = wasm.init_lod_tree(num_splats, lod_tree);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} capacity\n * @returns {object}\n */\nexport function new_lod_tree(capacity) {\n const ret = wasm.new_lod_tree(capacity);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} orig_lod_id\n * @returns {object}\n */\nexport function new_shared_lod_tree(orig_lod_id) {\n const ret = wasm.new_shared_lod_tree(orig_lod_id);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {CsplatArray}\n */\nexport function packedsplats_to_csplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_csplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return CsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {GsplatArray}\n */\nexport function packedsplats_to_gsplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_gsplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @returns {boolean}\n */\nexport function simd_enabled() {\n const ret = wasm.simd_enabled();\n return ret !== 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint16Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function tiny_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, merge_filter, rgba) {\n const ret = wasm.tiny_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function tiny_lod_packedsplats(num_splats, packed, extra, lod_base, merge_filter, rgba, encoding) {\n const ret = wasm.tiny_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} page_bases\n * @param {Uint32Array} chunk_bases\n * @param {Uint32Array} counts\n * @param {Array} lod_trees\n * @returns {object}\n */\nexport function update_lod_trees(lod_ids, page_bases, chunk_bases, counts, lod_trees) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(page_bases, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_bases, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(counts, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.update_lod_trees(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, lod_trees);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\nexport function wasm_start() {\n wasm.wasm_start();\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments); },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./spark_worker_rs_bg.js\": import0,\n };\n}\n\nconst ChunkDecoderFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\nconst CsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\nconst GsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\nfunction getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint16ArrayMemory0 = null;\nfunction getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayF32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getFloat32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (module_or_path === undefined) {\n module_or_path = new URL('spark_worker_rs_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","import init_wasm, {\n sort_splats,\n sort32_splats,\n decode_to_gsplatarray,\n decode_to_csplatarray,\n decode_to_packedsplats,\n new_lod_tree,\n new_shared_lod_tree,\n init_lod_tree,\n dispose_lod_tree,\n traverse_lod_trees,\n type ChunkDecoder,\n tiny_lod_packedsplats,\n bhatt_lod_packedsplats,\n update_lod_trees,\n decode_to_extsplats,\n tiny_lod_extsplats,\n bhatt_lod_extsplats,\n get_lod_tree_level,\n} from \"spark-worker-rs\";\nimport type { ExtResult, PackedResult, SplatEncoding } from \"./defines\";\n\nconst rpcHandlers = {\n sortSplats16,\n sortSplats32,\n loadPackedSplats,\n loadExtSplats,\n tinyLodPackedSplats,\n qualityLodPackedSplats,\n tinyLodExtSplats,\n qualityLodExtSplats,\n newLodTree,\n newSharedLodTree,\n initLodTree,\n disposeLodTree,\n updateLodTrees,\n traverseLodTrees,\n getLodTreeLevel,\n nextChunk,\n};\n\nasync function onMessage(event: MessageEvent) {\n const {\n id,\n name,\n args,\n }: { id: unknown; name: keyof typeof rpcHandlers; args: unknown } =\n event.data;\n try {\n const handler = rpcHandlers[name] as (\n args: unknown,\n options: { sendStatus: (data: unknown) => void },\n ) => unknown | Promise;\n if (!handler) {\n throw new Error(`Unknown worker RPC: ${name}`);\n }\n\n const sendStatus = (data: unknown) => {\n self.postMessage(\n { id, status: data },\n { transfer: getTransferable(data) },\n );\n };\n const result = await handler(args, { sendStatus });\n self.postMessage({ id, result }, { transfer: getTransferable(result) });\n } catch (error) {\n console.warn(`Worker error: ${error}`);\n self.postMessage({ id, error }, { transfer: getTransferable(error) });\n }\n}\n\nfunction sortSplats16({\n numSplats,\n readback,\n ordering,\n}: {\n numSplats: number;\n readback: Uint16Array;\n ordering: Uint32Array;\n}) {\n const activeSplats = sort_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n}\n\nfunction sortSplats32({\n numSplats,\n readback,\n ordering,\n}: {\n numSplats: number;\n readback: Uint32Array;\n ordering: Uint32Array;\n}) {\n const activeSplats = sort32_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n}\n\nasync function fetchRange({\n url,\n requestHeader,\n withCredentials,\n offset,\n bytes,\n}: {\n url: string;\n requestHeader?: Record;\n withCredentials?: string;\n offset?: number;\n bytes?: number;\n}): Promise {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n if (offset !== undefined && bytes !== undefined) {\n request.headers.set(\"Range\", `bytes=${offset}-${offset + bytes - 1}`);\n }\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n return new Uint8Array(await response.arrayBuffer());\n}\n\nasync function decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n}: {\n decoder: ChunkDecoder;\n fileBytes?: Uint8Array;\n url?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n chunked?: boolean;\n chunkedLength?: number;\n sendStatus: (data: unknown) => void;\n}) {\n if (fileBytes) {\n const CHUNK_SIZE = 1048576; // 1 MB\n for (let i = 0; i < fileBytes.length; i += CHUNK_SIZE) {\n decoder.push(\n fileBytes.subarray(i, Math.min(i + CHUNK_SIZE, fileBytes.length)),\n );\n }\n } else if (url) {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n const readStream = response.body.getReader();\n const contentLength = Number.parseInt(\n response.headers.get(\"Content-Length\") || \"0\",\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n let loaded = 0;\n\n while (true) {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n break;\n }\n loaded += value.length;\n sendStatus({ loaded, total });\n\n decoder.push(value);\n }\n } else if (chunked) {\n let loaded = 0;\n const total = chunkedLength ?? 0;\n while (true) {\n const readNextChunk: Promise = new Promise((resolve) => {\n nextChunkWaiter = resolve;\n });\n sendStatus({ nextChunk: true });\n const nextChunk = await readNextChunk;\n\n if (nextChunk.length === 0) {\n break;\n }\n\n decoder.push(nextChunk);\n loaded += nextChunk.length;\n sendStatus({ progress: { loaded, total } });\n }\n if (total === 0) {\n sendStatus({ progress: { loaded, total: loaded } });\n }\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n const decoded = decoder.finish();\n return decoded;\n}\n\ntype DecodedPackedResult = {\n numSplats: number;\n packed: Uint32Array;\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n lodTree?: Uint32Array;\n splatEncoding: SplatEncoding;\n};\n\nfunction toPackedResult(packed: DecodedPackedResult): PackedResult {\n return {\n numSplats: packed.numSplats,\n packedArray: packed.packed,\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3: packed.sh3,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree,\n },\n splatEncoding: packed.splatEncoding,\n };\n}\n\nasync function loadPackedSplats(\n {\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n encoding,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n }: {\n url?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: string;\n pathName?: string;\n chunked?: boolean;\n chunkedLength?: number;\n encoding?: SplatEncoding;\n lod?: boolean | \"quality\";\n lodBase?: number;\n lodAbove?: number;\n nonLod?: boolean;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n },\n {\n sendStatus,\n }: {\n sendStatus: (data: unknown) => void;\n },\n) {\n // console.log(\"loadPackedSplats\", { url, requestHeader, withCredentials, fileBytes, fileType, pathName, stream, streamLength, encoding, lod, lodBase, lodAbove, nonLod });\n if (!lod) {\n const decoder = decode_to_packedsplats(\n fileType,\n pathName ?? url,\n encoding,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n );\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n const result = toPackedResult(decoded as DecodedPackedResult);\n if (result.splatEncoding.lodOpacity) {\n return { lodSplats: result };\n }\n return result;\n }\n\n const decoder = decode_to_csplatarray(fileType, pathName ?? url, encoding);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n\n if (decoded.has_lod()) {\n const result = toPackedResult(\n decoded.to_packedsplats_lod() as DecodedPackedResult,\n );\n return { lodSplats: result };\n }\n\n if (lodAbove !== undefined) {\n if (decoded.len() < lodAbove) {\n return toPackedResult(decoded.to_packedsplats() as DecodedPackedResult);\n }\n }\n\n let result:\n | (ReturnType & {\n lodSplats?: ReturnType;\n })\n | { lodSplats?: ReturnType } = {};\n\n // if (nonLod === true) {\n // sendStatus({ orig: toPackedResult(packed as DecodedPackedResult) });\n // } else if (nonLod === \"wait\") {\n if (nonLod) {\n // Wait until LoD computation is complete before resolving full PackedSplats result\n result = toPackedResult(decoded.to_packedsplats() as DecodedPackedResult);\n }\n\n const initialSplats = decoded.len();\n const lodName = lod === \"quality\" ? \"Bhatt\" : \"Tiny\";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`,\n );\n\n const lodStart = performance.now();\n if (lod === \"quality\") {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.25));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`,\n );\n\n const lodPacked = decoded.to_packedsplats_lod();\n result.lodSplats = toPackedResult(lodPacked as DecodedPackedResult);\n return result;\n}\n\ntype DecodedExtResult = {\n numSplats: number;\n ext0: Uint32Array;\n ext1: Uint32Array;\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3a?: Uint32Array;\n sh3b?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n lodTree?: Uint32Array;\n};\n\nfunction toExtResult(packed: DecodedExtResult): ExtResult {\n return {\n numSplats: packed.numSplats,\n extArrays: [packed.ext0, packed.ext1],\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3a: packed.sh3a,\n sh3b: packed.sh3b,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree,\n },\n };\n}\n\nasync function loadExtSplats(\n {\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n }: {\n url?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: string;\n pathName?: string;\n chunked?: boolean;\n chunkedLength?: number;\n lod?: boolean | \"quality\";\n lodBase?: number;\n lodAbove?: number;\n nonLod?: boolean;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n },\n {\n sendStatus,\n }: {\n sendStatus: (data: unknown) => void;\n },\n) {\n // console.log(\"loadExtSplats\", { url, requestHeader, withCredentials, fileBytes, fileType, pathName, stream, streamLength, lod, lodBase, lodAbove, nonLod });\n if (!lod) {\n const decoder = decode_to_extsplats(\n fileType,\n pathName ?? url,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n );\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n const result = toExtResult(decoded as DecodedExtResult);\n if (result.extra.lodTree) {\n return { lodSplats: result };\n }\n return result;\n }\n\n const decoder = decode_to_gsplatarray(fileType, pathName ?? url);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n\n if (decoded.has_lod()) {\n return {\n lodSplats: toExtResult(decoded.to_extsplats_lod() as DecodedExtResult),\n };\n }\n\n if (lodAbove !== undefined) {\n if (decoded.len() < lodAbove) {\n return toExtResult(decoded.to_extsplats() as DecodedExtResult);\n }\n }\n\n let result:\n | (ReturnType & {\n lodSplats?: ReturnType;\n })\n | { lodSplats?: ReturnType } = {};\n\n if (nonLod) {\n // Wait until LoD computation is complete before resolving full PackedSplats result\n result = toExtResult(decoded.to_extsplats() as DecodedExtResult);\n }\n\n const initialSplats = decoded.len();\n const lodName = lod === \"quality\" ? \"Bhatt\" : \"Tiny\";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`,\n );\n\n const lodStart = performance.now();\n if (lod === \"quality\") {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.75));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`,\n );\n\n const lodPacked = decoded.to_extsplats_lod();\n result.lodSplats = toExtResult(lodPacked as DecodedExtResult);\n return result;\n}\n\nasync function tinyLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n packedArray: Uint32Array;\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_packedsplats(\n numSplats,\n packedArray,\n extra as object,\n base,\n filter,\n rgba,\n encoding,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded as DecodedPackedResult);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nasync function qualityLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n packedArray: Uint32Array;\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_packedsplats(\n numSplats,\n packedArray,\n extra as object,\n base,\n rgba,\n encoding,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded as DecodedPackedResult);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nasync function tinyLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra as object,\n base,\n filter,\n rgba,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded as DecodedExtResult);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nasync function qualityLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra as object,\n base,\n rgba,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded as DecodedExtResult);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nfunction newLodTree({\n capacity,\n}: {\n capacity: number;\n}) {\n const { lodId } = new_lod_tree(capacity) as { lodId: number };\n return { lodId };\n}\n\nfunction newSharedLodTree({\n lodId,\n}: {\n lodId: number;\n}) {\n const { lodId: newLodId } = new_shared_lod_tree(lodId) as { lodId: number };\n return { lodId: newLodId };\n}\n\nfunction initLodTree({\n numSplats,\n lodTree,\n}: {\n numSplats: number;\n lodTree: Uint32Array;\n}) {\n const { lodId, chunkToPage } = init_lod_tree(numSplats, lodTree) as {\n lodId: number;\n chunkToPage: Uint32Array;\n };\n return { lodId, chunkToPage };\n}\n\nfunction disposeLodTree({ lodId }: { lodId: number }) {\n dispose_lod_tree(lodId);\n}\n\nfunction updateLodTrees({\n ranges,\n}: {\n ranges: {\n lodId: number;\n pageBase: number;\n chunkBase: number;\n count: number;\n lodTreeData?: Uint32Array;\n }[];\n}) {\n const lodIds = new Uint32Array(ranges.map(({ lodId }) => lodId));\n const pageBases = new Uint32Array(ranges.map(({ pageBase }) => pageBase));\n const chunkBases = new Uint32Array(ranges.map(({ chunkBase }) => chunkBase));\n const counts = new Uint32Array(ranges.map(({ count }) => count));\n const lodTreeData = ranges.map(({ lodTreeData }) => lodTreeData);\n\n const result = update_lod_trees(\n lodIds,\n pageBases,\n chunkBases,\n counts,\n lodTreeData,\n );\n}\n\nfunction traverseLodTrees({\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n instances,\n}: {\n maxSplats: number;\n pixelScaleLimit: number;\n lastPixelLimit?: number;\n instances: Record<\n string,\n {\n instanceId: string;\n lodId: number;\n rootPage?: number;\n viewToObjectCols: number[];\n lodScale: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n }\n >;\n}) {\n const keyInstances = Object.entries(instances);\n const lodIds = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.lodId),\n );\n const rootPages = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.rootPage ?? 0xffffffff),\n );\n const viewToObjects = new Float32Array(\n keyInstances.flatMap(([_key, instance]) => {\n if (instance.viewToObjectCols.length !== 16) {\n throw new Error(\"Incorrect array size for viewToObjectCols\");\n }\n return instance.viewToObjectCols;\n }),\n );\n const lodScales = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.lodScale),\n );\n const behindFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.behindFoveate),\n );\n const coneFov0s = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov0),\n );\n const coneFovs = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov),\n );\n const coneFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFoveate),\n );\n\n const result = traverse_lod_trees(\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n lodIds,\n rootPages,\n viewToObjects,\n lodScales,\n behindFoveates,\n coneFoveates,\n coneFov0s,\n coneFovs,\n ) as {\n instanceIndices: {\n lodId: number;\n numSplats: number;\n indices: Uint32Array;\n }[];\n chunks: [number, number][];\n pixelLimit?: number;\n };\n const { instanceIndices, chunks, pixelLimit } = result;\n\n const indices = keyInstances.reduce(\n (indices, [key, _instance], index) => {\n indices[key] = instanceIndices[index];\n return indices;\n },\n {} as Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >,\n );\n // console.log(`traverseLodTrees: instanceIndices=${instanceIndices.length}`);\n // console.log(`traverseLodTrees: chunks=${chunks.length}`, JSON.stringify(chunks));\n return {\n keyIndices: indices,\n chunks,\n pixelLimit,\n };\n}\n\nfunction getLodTreeLevel({\n lodId,\n level,\n}: {\n lodId: number;\n level: number;\n}) {\n return get_lod_tree_level(lodId, level) as { indices: Uint32Array };\n}\n\nlet nextChunkWaiter = (_chunk: Uint8Array) => {};\n\nasync function nextChunk({ chunk }: { chunk: Uint8Array }) {\n nextChunkWaiter(chunk);\n}\n\n// Recursively finds all ArrayBuffers in an object and returns them as an array\n// to use as transferable objects to send between workers.\nfunction getTransferable(ctx: unknown): Transferable[] {\n const buffers: Transferable[] = [];\n const seen = new Set();\n\n function traverse(obj: unknown) {\n if (obj && typeof obj === \"object\" && !seen.has(obj)) {\n seen.add(obj);\n\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n // Handles TypedArrays and DataView\n buffers.push(obj.buffer as ArrayBuffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n\n traverse(ctx);\n return buffers;\n}\n\nasync function initialize() {\n // Hold any messages received while initializing\n const pending: MessageEvent[] = [];\n const bufferMessage = (event: MessageEvent) => {\n pending.push(event);\n };\n self.addEventListener(\"message\", bufferMessage);\n\n await init_wasm();\n\n self.removeEventListener(\"message\", bufferMessage);\n self.addEventListener(\"message\", onMessage);\n\n // Process any buffered messages\n for (const event of pending) {\n onMessage(event);\n }\n pending.length = 0;\n}\n\ninitialize().catch(console.error);\n"],"names":["ChunkDecoder","ptr","obj","ChunkDecoderFinalization","wasm","ret","takeFromExternrefTable0","bytes","CsplatArray","CsplatArrayFinalization","lod_base","rgba","merge_filter","arg0","GsplatArray","GsplatArrayFinalization","encoding","bhatt_lod_extsplats","num_splats","ext1","ext2","extra","isLikeNone","addToExternrefTable0","bhatt_lod_packedsplats","packed","decode_to_csplatarray","file_type","path_name","ptr0","passStringToWasm0","len0","WASM_VECTOR_LEN","ptr1","len1","decode_to_extsplats","sh1_codes","sh2_codes","sh3_codes","decode_to_gsplatarray","decode_to_packedsplats","dispose_lod_tree","lod_id","get_lod_tree_level","level","init_lod_tree","lod_tree","new_lod_tree","capacity","new_shared_lod_tree","orig_lod_id","sort32_splats","readback","ordering","sort_splats","tiny_lod_extsplats","tiny_lod_packedsplats","traverse_lod_trees","max_splats","pixel_scale_limit","_last_pixel_limit","lod_ids","root_pages","view_to_objects","lod_scales","behind_foveates","cone_foveates","cone_fov0s","cone_fovs","passArray32ToWasm0","ptr2","passArrayF32ToWasm0","len2","ptr3","len3","ptr4","len4","ptr5","len5","ptr6","len6","ptr7","len7","update_lod_trees","page_bases","chunk_bases","counts","lod_trees","__wbg_get_imports","arg1","getStringFromWasm0","v","debugString","getDataViewMemory0","val","deferred0_0","deferred0_1","handleError","result","arg2","getArrayU8FromWasm0","getArrayU16FromWasm0","getArrayU32FromWasm0","table","offset","idx","type","description","name","length","debug","i","builtInMatches","className","len","getUint16ArrayMemory0","getUint32ArrayMemory0","getUint8ArrayMemory0","cachedDataViewMemory0","cachedFloat32ArrayMemory0","getFloat32ArrayMemory0","decodeText","cachedUint16ArrayMemory0","cachedUint32ArrayMemory0","cachedUint8ArrayMemory0","f","args","e","x","arg","malloc","realloc","buf","cachedTextEncoder","mem","code","view","value","cachedTextDecoder","MAX_SAFARI_DECODE_BYTES","numBytesDecoded","__wbg_finalize_init","instance","module","__wbg_load","imports","expectedResponseType","__wbg_init","module_or_path","rpcHandlers","sortSplats16","sortSplats32","loadPackedSplats","loadExtSplats","tinyLodPackedSplats","qualityLodPackedSplats","tinyLodExtSplats","qualityLodExtSplats","newLodTree","newSharedLodTree","initLodTree","disposeLodTree","updateLodTrees","traverseLodTrees","getLodTreeLevel","nextChunk","onMessage","event","id","handler","data","getTransferable","error","numSplats","decodeBytesUrl","decoder","fileBytes","url","requestHeader","withCredentials","chunked","chunkedLength","sendStatus","request","response","readStream","contentLength","total","loaded","done","readNextChunk","resolve","nextChunkWaiter","toPackedResult","fileType","pathName","lod","lodBase","lodAbove","nonLod","sh1Codes","sh2Codes","sh3Codes","decoded","initialSplats","lodName","lodStart","base","lodDuration","lodPacked","toExtResult","packedArray","extArrays","lodId","newLodId","lodTree","chunkToPage","ranges","lodIds","pageBases","pageBase","chunkBases","chunkBase","count","lodTreeData","maxSplats","pixelScaleLimit","lastPixelLimit","instances","keyInstances","_key","rootPages","viewToObjects","lodScales","behindFoveates","coneFov0s","coneFovs","coneFoveates","instanceIndices","chunks","pixelLimit","indices","key","_instance","index","_chunk","chunk","ctx","buffers","seen","traverse","initialize","pending","bufferMessage","init_wasm"],"mappings":"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"} \ No newline at end of file diff --git a/dist/assets/worker-D9w847yb.js.map b/dist/assets/worker-D9w847yb.js.map new file mode 100644 index 00000000..52adaf39 --- /dev/null +++ b/dist/assets/worker-D9w847yb.js.map @@ -0,0 +1 @@ +{"version":3,"file":"worker-D9w847yb.js","sources":["../rust/spark-rs/pkg/spark_rs.js","../src/worker.ts"],"sourcesContent":["/* @ts-self-types=\"./spark_rs.d.ts\" */\n\nexport class ChunkDecoder {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ChunkDecoder.prototype);\n obj.__wbg_ptr = ptr;\n ChunkDecoderFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ChunkDecoderFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_chunkdecoder_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n finish() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.chunkdecoder_finish(ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n */\n push(bytes) {\n const ret = wasm.chunkdecoder_push(this.__wbg_ptr, bytes);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n}\nif (Symbol.dispose) ChunkDecoder.prototype[Symbol.dispose] = ChunkDecoder.prototype.free;\n\nexport class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n\nexport class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function bhatt_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, rgba) {\n const ret = wasm.bhatt_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function bhatt_lod_packedsplats(num_splats, packed, extra, lod_base, rgba, encoding) {\n const ret = wasm.bhatt_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {any}\n */\nexport function decode_rad_header(bytes) {\n const ret = wasm.decode_rad_header(bytes);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @returns {ChunkDecoder}\n */\nexport function decode_to_csplatarray(file_type, path_name, encoding) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_csplatarray(ptr0, len0, ptr1, len1, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_extsplats(file_type, path_name, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_extsplats(ptr0, len0, ptr1, len1, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_gsplatarray(file_type, path_name) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_gsplatarray(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Uint32Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_packedsplats(file_type, path_name, encoding, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_packedsplats(ptr0, len0, ptr1, len1, encoding, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n */\nexport function dispose_lod_tree(lod_id) {\n wasm.dispose_lod_tree(lod_id);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null} [extra]\n * @returns {GsplatArray}\n */\nexport function extsplats_to_gsplatarray(num_splats, ext1, ext2, extra) {\n const ret = wasm.extsplats_to_gsplatarray(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n * @param {number} level\n * @returns {object}\n */\nexport function get_lod_tree_level(lod_id, level) {\n const ret = wasm.get_lod_tree_level(lod_id, level);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer() {\n const ret = wasm.get_raycast_buffer();\n return ret;\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer2() {\n const ret = wasm.get_raycast_buffer2();\n return ret;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} lod_tree\n * @returns {object}\n */\nexport function init_lod_tree(num_splats, lod_tree) {\n const ret = wasm.init_lod_tree(num_splats, lod_tree);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} capacity\n * @returns {object}\n */\nexport function new_lod_tree(capacity) {\n const ret = wasm.new_lod_tree(capacity);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} orig_lod_id\n * @returns {object}\n */\nexport function new_shared_lod_tree(orig_lod_id) {\n const ret = wasm.new_shared_lod_tree(orig_lod_id);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {CsplatArray}\n */\nexport function packedsplats_to_csplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_csplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return CsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {GsplatArray}\n */\nexport function packedsplats_to_gsplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_gsplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @returns {Float32Array}\n */\nexport function raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count) {\n const ret = wasm.raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} num_splats\n * @param {Uint32Array} packed_splats\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @returns {boolean}\n */\nexport function simd_enabled() {\n const ret = wasm.simd_enabled();\n return ret !== 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint16Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function tiny_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, merge_filter, rgba) {\n const ret = wasm.tiny_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function tiny_lod_packedsplats(num_splats, packed, extra, lod_base, merge_filter, rgba, encoding) {\n const ret = wasm.tiny_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} page_bases\n * @param {Uint32Array} chunk_bases\n * @param {Uint32Array} counts\n * @param {Array} lod_trees\n * @returns {object}\n */\nexport function update_lod_trees(lod_ids, page_bases, chunk_bases, counts, lod_trees) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(page_bases, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_bases, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(counts, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.update_lod_trees(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, lod_trees);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\nexport function wasm_start() {\n wasm.wasm_start();\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments); },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_fd4646b401926788: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_26bffbe236bf73f9: function(arg0) {\n const ret = new Float32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) {\n arg0.set(getArrayF32FromWasm0(arg1, arg2));\n },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(F32)) -> NamedExternref(\"Float32Array\")`.\n const ret = getArrayF32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000003: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U32)) -> NamedExternref(\"Uint32Array\")`.\n const ret = getArrayU32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000004: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000005: function(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./spark_rs_bg.js\": import0,\n };\n}\n\nconst ChunkDecoderFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\nconst CsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\nconst GsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayF32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\nfunction getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint16ArrayMemory0 = null;\nfunction getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayF32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getFloat32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","import init_wasm, {\n sort_splats,\n sort32_splats,\n decode_to_gsplatarray,\n decode_to_csplatarray,\n decode_to_packedsplats,\n new_lod_tree,\n new_shared_lod_tree,\n init_lod_tree,\n dispose_lod_tree,\n traverse_lod_trees,\n dynamic_traverse_lod_trees,\n type ChunkDecoder,\n tiny_lod_packedsplats,\n bhatt_lod_packedsplats,\n update_lod_trees,\n decode_to_extsplats,\n tiny_lod_extsplats,\n bhatt_lod_extsplats,\n get_lod_tree_level,\n} from \"spark-rs\";\nimport type { ExtResult, PackedResult, SplatEncoding } from \"./defines\";\n\nconst rpcHandlers = {\n sortSplats16,\n sortSplats32,\n loadPackedSplats,\n loadExtSplats,\n tinyLodPackedSplats,\n qualityLodPackedSplats,\n tinyLodExtSplats,\n qualityLodExtSplats,\n newLodTree,\n newSharedLodTree,\n initLodTree,\n disposeLodTree,\n updateLodTrees,\n traverseLodTrees,\n getLodTreeLevel,\n nextChunk,\n};\n\nasync function onMessage(event: MessageEvent) {\n const {\n id,\n name,\n args,\n }: { id: unknown; name: keyof typeof rpcHandlers; args: unknown } =\n event.data;\n try {\n const handler = rpcHandlers[name] as (\n args: unknown,\n options: { sendStatus: (data: unknown) => void },\n ) => unknown | Promise;\n if (!handler) {\n throw new Error(`Unknown worker RPC: ${name}`);\n }\n\n const sendStatus = (data: unknown) => {\n self.postMessage(\n { id, status: data },\n { transfer: getTransferable(data) },\n );\n };\n const result = await handler(args, { sendStatus });\n self.postMessage({ id, result }, { transfer: getTransferable(result) });\n } catch (error) {\n console.warn(`Worker error: ${error}`);\n self.postMessage({ id, error }, { transfer: getTransferable(error) });\n }\n}\n\nfunction sortSplats16({\n numSplats,\n readback,\n ordering,\n}: {\n numSplats: number;\n readback: Uint16Array;\n ordering: Uint32Array;\n}) {\n const activeSplats = sort_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n}\n\nfunction sortSplats32({\n numSplats,\n readback,\n ordering,\n}: {\n numSplats: number;\n readback: Uint32Array;\n ordering: Uint32Array;\n}) {\n const activeSplats = sort32_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n}\n\nasync function fetchRange({\n url,\n requestHeader,\n withCredentials,\n offset,\n bytes,\n}: {\n url: string;\n requestHeader?: Record;\n withCredentials?: string;\n offset?: number;\n bytes?: number;\n}): Promise {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n if (offset !== undefined && bytes !== undefined) {\n request.headers.set(\"Range\", `bytes=${offset}-${offset + bytes - 1}`);\n }\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n return new Uint8Array(await response.arrayBuffer());\n}\n\nasync function decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n}: {\n decoder: ChunkDecoder;\n fileBytes?: Uint8Array;\n url?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n chunked?: boolean;\n chunkedLength?: number;\n sendStatus: (data: unknown) => void;\n}) {\n if (fileBytes) {\n const CHUNK_SIZE = 1048576; // 1 MB\n for (let i = 0; i < fileBytes.length; i += CHUNK_SIZE) {\n decoder.push(\n fileBytes.subarray(i, Math.min(i + CHUNK_SIZE, fileBytes.length)),\n );\n }\n } else if (url) {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n const readStream = response.body.getReader();\n const contentLength = Number.parseInt(\n response.headers.get(\"Content-Length\") || \"0\",\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n let loaded = 0;\n\n while (true) {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n break;\n }\n loaded += value.length;\n sendStatus({ loaded, total });\n\n decoder.push(value);\n }\n } else if (chunked) {\n let loaded = 0;\n const total = chunkedLength ?? 0;\n while (true) {\n const readNextChunk: Promise = new Promise((resolve) => {\n nextChunkWaiter = resolve;\n });\n sendStatus({ nextChunk: true });\n const nextChunk = await readNextChunk;\n\n if (nextChunk.length === 0) {\n break;\n }\n\n decoder.push(nextChunk);\n loaded += nextChunk.length;\n sendStatus({ progress: { loaded, total } });\n }\n if (total === 0) {\n sendStatus({ progress: { loaded, total: loaded } });\n }\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n const decoded = decoder.finish();\n return decoded;\n}\n\ntype DecodedPackedResult = {\n numSplats: number;\n packed: Uint32Array;\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n lodTree?: Uint32Array;\n splatEncoding: SplatEncoding;\n};\n\nfunction toPackedResult(packed: DecodedPackedResult): PackedResult {\n return {\n numSplats: packed.numSplats,\n packedArray: packed.packed,\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3: packed.sh3,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree,\n },\n splatEncoding: packed.splatEncoding,\n };\n}\n\nasync function loadPackedSplats(\n {\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n encoding,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n }: {\n url?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: string;\n pathName?: string;\n chunked?: boolean;\n chunkedLength?: number;\n encoding?: SplatEncoding;\n lod?: boolean | \"quality\";\n lodBase?: number;\n lodAbove?: number;\n nonLod?: boolean;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n },\n {\n sendStatus,\n }: {\n sendStatus: (data: unknown) => void;\n },\n) {\n // console.log(\"loadPackedSplats\", { url, requestHeader, withCredentials, fileBytes, fileType, pathName, stream, streamLength, encoding, lod, lodBase, lodAbove, nonLod });\n if (!lod) {\n const decoder = decode_to_packedsplats(\n fileType,\n pathName ?? url,\n encoding,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n );\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n const result = toPackedResult(decoded as DecodedPackedResult);\n if (result.splatEncoding.lodOpacity) {\n return { lodSplats: result };\n }\n return result;\n }\n\n const decoder = decode_to_csplatarray(fileType, pathName ?? url, encoding);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n\n if (decoded.has_lod()) {\n const result = toPackedResult(\n decoded.to_packedsplats_lod() as DecodedPackedResult,\n );\n return { lodSplats: result };\n }\n\n if (lodAbove !== undefined) {\n if (decoded.len() < lodAbove) {\n return toPackedResult(decoded.to_packedsplats() as DecodedPackedResult);\n }\n }\n\n let result:\n | (ReturnType & {\n lodSplats?: ReturnType;\n })\n | { lodSplats?: ReturnType } = {};\n\n // if (nonLod === true) {\n // sendStatus({ orig: toPackedResult(packed as DecodedPackedResult) });\n // } else if (nonLod === \"wait\") {\n if (nonLod) {\n // Wait until LoD computation is complete before resolving full PackedSplats result\n result = toPackedResult(decoded.to_packedsplats() as DecodedPackedResult);\n }\n\n const initialSplats = decoded.len();\n const lodName = lod === \"quality\" ? \"Bhatt\" : \"Tiny\";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`,\n );\n\n const lodStart = performance.now();\n if (lod === \"quality\") {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.25));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`,\n );\n\n const lodPacked = decoded.to_packedsplats_lod();\n result.lodSplats = toPackedResult(lodPacked as DecodedPackedResult);\n return result;\n}\n\ntype DecodedExtResult = {\n numSplats: number;\n ext0: Uint32Array;\n ext1: Uint32Array;\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3a?: Uint32Array;\n sh3b?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n lodTree?: Uint32Array;\n};\n\nfunction toExtResult(packed: DecodedExtResult): ExtResult {\n return {\n numSplats: packed.numSplats,\n extArrays: [packed.ext0, packed.ext1],\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3a: packed.sh3a,\n sh3b: packed.sh3b,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree,\n },\n };\n}\n\nasync function loadExtSplats(\n {\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n }: {\n url?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: string;\n pathName?: string;\n chunked?: boolean;\n chunkedLength?: number;\n lod?: boolean | \"quality\";\n lodBase?: number;\n lodAbove?: number;\n nonLod?: boolean;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n },\n {\n sendStatus,\n }: {\n sendStatus: (data: unknown) => void;\n },\n) {\n // console.log(\"loadExtSplats\", { url, requestHeader, withCredentials, fileBytes, fileType, pathName, stream, streamLength, lod, lodBase, lodAbove, nonLod });\n if (!lod) {\n const decoder = decode_to_extsplats(\n fileType,\n pathName ?? url,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n );\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n const result = toExtResult(decoded as DecodedExtResult);\n if (result.extra.lodTree) {\n return { lodSplats: result };\n }\n return result;\n }\n\n const decoder = decode_to_gsplatarray(fileType, pathName ?? url);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n\n if (decoded.has_lod()) {\n return {\n lodSplats: toExtResult(decoded.to_extsplats_lod() as DecodedExtResult),\n };\n }\n\n if (lodAbove !== undefined) {\n if (decoded.len() < lodAbove) {\n return toExtResult(decoded.to_extsplats() as DecodedExtResult);\n }\n }\n\n let result:\n | (ReturnType & {\n lodSplats?: ReturnType;\n })\n | { lodSplats?: ReturnType } = {};\n\n if (nonLod) {\n // Wait until LoD computation is complete before resolving full PackedSplats result\n result = toExtResult(decoded.to_extsplats() as DecodedExtResult);\n }\n\n const initialSplats = decoded.len();\n const lodName = lod === \"quality\" ? \"Bhatt\" : \"Tiny\";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`,\n );\n\n const lodStart = performance.now();\n if (lod === \"quality\") {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.75));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`,\n );\n\n const lodPacked = decoded.to_extsplats_lod();\n result.lodSplats = toExtResult(lodPacked as DecodedExtResult);\n return result;\n}\n\nasync function tinyLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n packedArray: Uint32Array;\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_packedsplats(\n numSplats,\n packedArray,\n extra as object,\n base,\n filter,\n rgba,\n encoding,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded as DecodedPackedResult);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nasync function qualityLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n packedArray: Uint32Array;\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_packedsplats(\n numSplats,\n packedArray,\n extra as object,\n base,\n rgba,\n encoding,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded as DecodedPackedResult);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nasync function tinyLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra as object,\n base,\n filter,\n rgba,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded as DecodedExtResult);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nasync function qualityLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra as object,\n base,\n rgba,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded as DecodedExtResult);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nfunction newLodTree({\n capacity,\n}: {\n capacity: number;\n}) {\n const { lodId } = new_lod_tree(capacity) as { lodId: number };\n return { lodId };\n}\n\nfunction newSharedLodTree({\n lodId,\n}: {\n lodId: number;\n}) {\n const { lodId: newLodId } = new_shared_lod_tree(lodId) as { lodId: number };\n return { lodId: newLodId };\n}\n\nfunction initLodTree({\n numSplats,\n lodTree,\n}: {\n numSplats: number;\n lodTree: Uint32Array;\n}) {\n const { lodId, chunkToPage } = init_lod_tree(numSplats, lodTree) as {\n lodId: number;\n chunkToPage: Uint32Array;\n };\n return { lodId, chunkToPage };\n}\n\nfunction disposeLodTree({ lodId }: { lodId: number }) {\n dispose_lod_tree(lodId);\n}\n\nfunction updateLodTrees({\n ranges,\n}: {\n ranges: {\n lodId: number;\n pageBase: number;\n chunkBase: number;\n count: number;\n lodTreeData?: Uint32Array;\n }[];\n}) {\n const lodIds = new Uint32Array(ranges.map(({ lodId }) => lodId));\n const pageBases = new Uint32Array(ranges.map(({ pageBase }) => pageBase));\n const chunkBases = new Uint32Array(ranges.map(({ chunkBase }) => chunkBase));\n const counts = new Uint32Array(ranges.map(({ count }) => count));\n const lodTreeData = ranges.map(({ lodTreeData }) => lodTreeData);\n\n const result = update_lod_trees(\n lodIds,\n pageBases,\n chunkBases,\n counts,\n lodTreeData,\n );\n}\n\nfunction traverseLodTrees({\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n instances,\n traverseMode,\n}: {\n maxSplats: number;\n pixelScaleLimit: number;\n lastPixelLimit?: number;\n instances: Record<\n string,\n {\n instanceId: string;\n lodId: number;\n rootPage?: number;\n viewToObjectCols: number[];\n lodScale: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n }\n >;\n traverseMode: \"dynamic\" | \"standard\";\n}) {\n const keyInstances = Object.entries(instances);\n const lodIds = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.lodId),\n );\n const rootPages = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.rootPage ?? 0xffffffff),\n );\n const viewToObjects = new Float32Array(\n keyInstances.flatMap(([_key, instance]) => {\n if (instance.viewToObjectCols.length !== 16) {\n throw new Error(\"Incorrect array size for viewToObjectCols\");\n }\n return instance.viewToObjectCols;\n }),\n );\n const lodScales = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.lodScale),\n );\n const behindFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.behindFoveate),\n );\n const coneFov0s = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov0),\n );\n const coneFovs = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov),\n );\n const coneFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFoveate),\n );\n\n const lodFunction =\n traverseMode === \"dynamic\"\n ? dynamic_traverse_lod_trees\n : traverse_lod_trees;\n const result = lodFunction(\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n lodIds,\n rootPages,\n viewToObjects,\n lodScales,\n behindFoveates,\n coneFoveates,\n coneFov0s,\n coneFovs,\n ) as {\n instanceIndices: {\n lodId: number;\n numSplats: number;\n indices: Uint32Array;\n }[];\n chunks: [number, number][];\n pixelLimit?: number;\n };\n const { instanceIndices, chunks, pixelLimit } = result;\n\n const indices = keyInstances.reduce(\n (indices, [key, _instance], index) => {\n indices[key] = instanceIndices[index];\n return indices;\n },\n {} as Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >,\n );\n // console.log(`traverseLodTrees: instanceIndices=${instanceIndices.length}`);\n // console.log(`traverseLodTrees: chunks=${chunks.length}`, JSON.stringify(chunks));\n return {\n keyIndices: indices,\n chunks,\n pixelLimit,\n };\n}\n\nfunction getLodTreeLevel({\n lodId,\n level,\n}: {\n lodId: number;\n level: number;\n}) {\n return get_lod_tree_level(lodId, level) as { indices: Uint32Array };\n}\n\nlet nextChunkWaiter = (_chunk: Uint8Array) => {};\n\nasync function nextChunk({ chunk }: { chunk: Uint8Array }) {\n nextChunkWaiter(chunk);\n}\n\n// Recursively finds all ArrayBuffers in an object and returns them as an array\n// to use as transferable objects to send between workers.\nfunction getTransferable(ctx: unknown): Transferable[] {\n const buffers: Transferable[] = [];\n const seen = new Set();\n\n function traverse(obj: unknown) {\n if (obj && typeof obj === \"object\" && !seen.has(obj)) {\n seen.add(obj);\n\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n // Handles TypedArrays and DataView\n buffers.push(obj.buffer as ArrayBuffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n\n traverse(ctx);\n return buffers;\n}\n\nasync function initialize() {\n let resolveWaitForModule: (value: WebAssembly.Module) => void;\n const waitForModule = new Promise((resolve) => {\n resolveWaitForModule = resolve;\n });\n\n // Hold any messages received while initializing\n const pending: MessageEvent[] = [];\n const bufferMessage = (event: MessageEvent) => {\n // Handle module\n if (event.data.name === \"init-wasm\") {\n resolveWaitForModule(event.data.module as WebAssembly.Module);\n return;\n }\n\n pending.push(event);\n };\n self.addEventListener(\"message\", bufferMessage);\n\n await init_wasm({ module_or_path: await waitForModule });\n\n self.removeEventListener(\"message\", bufferMessage);\n self.addEventListener(\"message\", onMessage);\n\n // Process any buffered messages\n for (const event of pending) {\n onMessage(event);\n }\n pending.length = 0;\n}\n\ninitialize().catch(console.error);\n"],"names":["ptr","nextChunk","decoder","decoded","result","lodTreeData","indices","init_wasm"],"mappings":"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"} \ No newline at end of file diff --git a/dist/assets/worker-On-THXgb.js.map b/dist/assets/worker-On-THXgb.js.map deleted file mode 100644 index 7bb1eb64..00000000 --- a/dist/assets/worker-On-THXgb.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"worker-On-THXgb.js","sources":["../rust/spark-worker-rs/pkg/spark_worker_rs.js","../src/worker.ts"],"sourcesContent":["/* @ts-self-types=\"./spark_worker_rs.d.ts\" */\n\nexport class ChunkDecoder {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ChunkDecoder.prototype);\n obj.__wbg_ptr = ptr;\n ChunkDecoderFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ChunkDecoderFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_chunkdecoder_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n finish() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.chunkdecoder_finish(ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n */\n push(bytes) {\n const ret = wasm.chunkdecoder_push(this.__wbg_ptr, bytes);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n}\nif (Symbol.dispose) ChunkDecoder.prototype[Symbol.dispose] = ChunkDecoder.prototype.free;\n\nexport class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n\nexport class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function bhatt_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, rgba) {\n const ret = wasm.bhatt_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function bhatt_lod_packedsplats(num_splats, packed, extra, lod_base, rgba, encoding) {\n const ret = wasm.bhatt_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @returns {ChunkDecoder}\n */\nexport function decode_to_csplatarray(file_type, path_name, encoding) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_csplatarray(ptr0, len0, ptr1, len1, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_extsplats(file_type, path_name, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_extsplats(ptr0, len0, ptr1, len1, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_gsplatarray(file_type, path_name) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_gsplatarray(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Uint32Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_packedsplats(file_type, path_name, encoding, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_packedsplats(ptr0, len0, ptr1, len1, encoding, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n */\nexport function dispose_lod_tree(lod_id) {\n wasm.dispose_lod_tree(lod_id);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null} [extra]\n * @returns {GsplatArray}\n */\nexport function extsplats_to_gsplatarray(num_splats, ext1, ext2, extra) {\n const ret = wasm.extsplats_to_gsplatarray(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n * @param {number} level\n * @returns {object}\n */\nexport function get_lod_tree_level(lod_id, level) {\n const ret = wasm.get_lod_tree_level(lod_id, level);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} lod_tree\n * @returns {object}\n */\nexport function init_lod_tree(num_splats, lod_tree) {\n const ret = wasm.init_lod_tree(num_splats, lod_tree);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} capacity\n * @returns {object}\n */\nexport function new_lod_tree(capacity) {\n const ret = wasm.new_lod_tree(capacity);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} orig_lod_id\n * @returns {object}\n */\nexport function new_shared_lod_tree(orig_lod_id) {\n const ret = wasm.new_shared_lod_tree(orig_lod_id);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {CsplatArray}\n */\nexport function packedsplats_to_csplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_csplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return CsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {GsplatArray}\n */\nexport function packedsplats_to_gsplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_gsplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @returns {boolean}\n */\nexport function simd_enabled() {\n const ret = wasm.simd_enabled();\n return ret !== 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint16Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function tiny_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, merge_filter, rgba) {\n const ret = wasm.tiny_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function tiny_lod_packedsplats(num_splats, packed, extra, lod_base, merge_filter, rgba, encoding) {\n const ret = wasm.tiny_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} page_bases\n * @param {Uint32Array} chunk_bases\n * @param {Uint32Array} counts\n * @param {Array} lod_trees\n * @returns {object}\n */\nexport function update_lod_trees(lod_ids, page_bases, chunk_bases, counts, lod_trees) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(page_bases, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_bases, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(counts, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.update_lod_trees(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, lod_trees);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\nexport function wasm_start() {\n wasm.wasm_start();\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments); },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./spark_worker_rs_bg.js\": import0,\n };\n}\n\nconst ChunkDecoderFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\nconst CsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\nconst GsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\nfunction getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint16ArrayMemory0 = null;\nfunction getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayF32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getFloat32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (module_or_path === undefined) {\n module_or_path = new URL('spark_worker_rs_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","import init_wasm, {\n sort_splats,\n sort32_splats,\n decode_to_gsplatarray,\n decode_to_csplatarray,\n decode_to_packedsplats,\n new_lod_tree,\n new_shared_lod_tree,\n init_lod_tree,\n dispose_lod_tree,\n traverse_lod_trees,\n type ChunkDecoder,\n tiny_lod_packedsplats,\n bhatt_lod_packedsplats,\n update_lod_trees,\n decode_to_extsplats,\n tiny_lod_extsplats,\n bhatt_lod_extsplats,\n get_lod_tree_level,\n} from \"spark-worker-rs\";\nimport type { ExtResult, PackedResult, SplatEncoding } from \"./defines\";\n\nconst rpcHandlers = {\n sortSplats16,\n sortSplats32,\n loadPackedSplats,\n loadExtSplats,\n tinyLodPackedSplats,\n qualityLodPackedSplats,\n tinyLodExtSplats,\n qualityLodExtSplats,\n newLodTree,\n newSharedLodTree,\n initLodTree,\n disposeLodTree,\n updateLodTrees,\n traverseLodTrees,\n getLodTreeLevel,\n nextChunk,\n};\n\nasync function onMessage(event: MessageEvent) {\n const {\n id,\n name,\n args,\n }: { id: unknown; name: keyof typeof rpcHandlers; args: unknown } =\n event.data;\n try {\n const handler = rpcHandlers[name] as (\n args: unknown,\n options: { sendStatus: (data: unknown) => void },\n ) => unknown | Promise;\n if (!handler) {\n throw new Error(`Unknown worker RPC: ${name}`);\n }\n\n const sendStatus = (data: unknown) => {\n self.postMessage(\n { id, status: data },\n { transfer: getTransferable(data) },\n );\n };\n const result = await handler(args, { sendStatus });\n self.postMessage({ id, result }, { transfer: getTransferable(result) });\n } catch (error) {\n console.warn(`Worker error: ${error}`);\n self.postMessage({ id, error }, { transfer: getTransferable(error) });\n }\n}\n\nfunction sortSplats16({\n numSplats,\n readback,\n ordering,\n}: {\n numSplats: number;\n readback: Uint16Array;\n ordering: Uint32Array;\n}) {\n const activeSplats = sort_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n}\n\nfunction sortSplats32({\n numSplats,\n readback,\n ordering,\n}: {\n numSplats: number;\n readback: Uint32Array;\n ordering: Uint32Array;\n}) {\n const activeSplats = sort32_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n}\n\nasync function fetchRange({\n url,\n requestHeader,\n withCredentials,\n offset,\n bytes,\n}: {\n url: string;\n requestHeader?: Record;\n withCredentials?: string;\n offset?: number;\n bytes?: number;\n}): Promise {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n if (offset !== undefined && bytes !== undefined) {\n request.headers.set(\"Range\", `bytes=${offset}-${offset + bytes - 1}`);\n }\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n return new Uint8Array(await response.arrayBuffer());\n}\n\nasync function decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n}: {\n decoder: ChunkDecoder;\n fileBytes?: Uint8Array;\n url?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n chunked?: boolean;\n chunkedLength?: number;\n sendStatus: (data: unknown) => void;\n}) {\n if (fileBytes) {\n const CHUNK_SIZE = 1048576; // 1 MB\n for (let i = 0; i < fileBytes.length; i += CHUNK_SIZE) {\n decoder.push(\n fileBytes.subarray(i, Math.min(i + CHUNK_SIZE, fileBytes.length)),\n );\n }\n } else if (url) {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n const readStream = response.body.getReader();\n const contentLength = Number.parseInt(\n response.headers.get(\"Content-Length\") || \"0\",\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n let loaded = 0;\n\n while (true) {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n break;\n }\n loaded += value.length;\n sendStatus({ loaded, total });\n\n decoder.push(value);\n }\n } else if (chunked) {\n let loaded = 0;\n const total = chunkedLength ?? 0;\n while (true) {\n const readNextChunk: Promise = new Promise((resolve) => {\n nextChunkWaiter = resolve;\n });\n sendStatus({ nextChunk: true });\n const nextChunk = await readNextChunk;\n\n if (nextChunk.length === 0) {\n break;\n }\n\n decoder.push(nextChunk);\n loaded += nextChunk.length;\n sendStatus({ progress: { loaded, total } });\n }\n if (total === 0) {\n sendStatus({ progress: { loaded, total: loaded } });\n }\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n const decoded = decoder.finish();\n return decoded;\n}\n\ntype DecodedPackedResult = {\n numSplats: number;\n packed: Uint32Array;\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n lodTree?: Uint32Array;\n splatEncoding: SplatEncoding;\n};\n\nfunction toPackedResult(packed: DecodedPackedResult): PackedResult {\n return {\n numSplats: packed.numSplats,\n packedArray: packed.packed,\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3: packed.sh3,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree,\n },\n splatEncoding: packed.splatEncoding,\n };\n}\n\nasync function loadPackedSplats(\n {\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n encoding,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n }: {\n url?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: string;\n pathName?: string;\n chunked?: boolean;\n chunkedLength?: number;\n encoding?: SplatEncoding;\n lod?: boolean | \"quality\";\n lodBase?: number;\n lodAbove?: number;\n nonLod?: boolean;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n },\n {\n sendStatus,\n }: {\n sendStatus: (data: unknown) => void;\n },\n) {\n // console.log(\"loadPackedSplats\", { url, requestHeader, withCredentials, fileBytes, fileType, pathName, stream, streamLength, encoding, lod, lodBase, lodAbove, nonLod });\n if (!lod) {\n const decoder = decode_to_packedsplats(\n fileType,\n pathName ?? url,\n encoding,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n );\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n const result = toPackedResult(decoded as DecodedPackedResult);\n if (result.splatEncoding.lodOpacity) {\n return { lodSplats: result };\n }\n return result;\n }\n\n const decoder = decode_to_csplatarray(fileType, pathName ?? url, encoding);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n\n if (decoded.has_lod()) {\n const result = toPackedResult(\n decoded.to_packedsplats_lod() as DecodedPackedResult,\n );\n return { lodSplats: result };\n }\n\n if (lodAbove !== undefined) {\n if (decoded.len() < lodAbove) {\n return toPackedResult(decoded.to_packedsplats() as DecodedPackedResult);\n }\n }\n\n let result:\n | (ReturnType & {\n lodSplats?: ReturnType;\n })\n | { lodSplats?: ReturnType } = {};\n\n // if (nonLod === true) {\n // sendStatus({ orig: toPackedResult(packed as DecodedPackedResult) });\n // } else if (nonLod === \"wait\") {\n if (nonLod) {\n // Wait until LoD computation is complete before resolving full PackedSplats result\n result = toPackedResult(decoded.to_packedsplats() as DecodedPackedResult);\n }\n\n const initialSplats = decoded.len();\n const lodName = lod === \"quality\" ? \"Bhatt\" : \"Tiny\";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`,\n );\n\n const lodStart = performance.now();\n if (lod === \"quality\") {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.25));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`,\n );\n\n const lodPacked = decoded.to_packedsplats_lod();\n result.lodSplats = toPackedResult(lodPacked as DecodedPackedResult);\n return result;\n}\n\ntype DecodedExtResult = {\n numSplats: number;\n ext0: Uint32Array;\n ext1: Uint32Array;\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3a?: Uint32Array;\n sh3b?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n lodTree?: Uint32Array;\n};\n\nfunction toExtResult(packed: DecodedExtResult): ExtResult {\n return {\n numSplats: packed.numSplats,\n extArrays: [packed.ext0, packed.ext1],\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3a: packed.sh3a,\n sh3b: packed.sh3b,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree,\n },\n };\n}\n\nasync function loadExtSplats(\n {\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n }: {\n url?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: string;\n pathName?: string;\n chunked?: boolean;\n chunkedLength?: number;\n lod?: boolean | \"quality\";\n lodBase?: number;\n lodAbove?: number;\n nonLod?: boolean;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n },\n {\n sendStatus,\n }: {\n sendStatus: (data: unknown) => void;\n },\n) {\n // console.log(\"loadExtSplats\", { url, requestHeader, withCredentials, fileBytes, fileType, pathName, stream, streamLength, lod, lodBase, lodAbove, nonLod });\n if (!lod) {\n const decoder = decode_to_extsplats(\n fileType,\n pathName ?? url,\n sh1Codes,\n sh2Codes,\n sh3Codes,\n );\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n const result = toExtResult(decoded as DecodedExtResult);\n if (result.extra.lodTree) {\n return { lodSplats: result };\n }\n return result;\n }\n\n const decoder = decode_to_gsplatarray(fileType, pathName ?? url);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus,\n });\n\n if (decoded.has_lod()) {\n return {\n lodSplats: toExtResult(decoded.to_extsplats_lod() as DecodedExtResult),\n };\n }\n\n if (lodAbove !== undefined) {\n if (decoded.len() < lodAbove) {\n return toExtResult(decoded.to_extsplats() as DecodedExtResult);\n }\n }\n\n let result:\n | (ReturnType & {\n lodSplats?: ReturnType;\n })\n | { lodSplats?: ReturnType } = {};\n\n if (nonLod) {\n // Wait until LoD computation is complete before resolving full PackedSplats result\n result = toExtResult(decoded.to_extsplats() as DecodedExtResult);\n }\n\n const initialSplats = decoded.len();\n const lodName = lod === \"quality\" ? \"Bhatt\" : \"Tiny\";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`,\n );\n\n const lodStart = performance.now();\n if (lod === \"quality\") {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.75));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`,\n );\n\n const lodPacked = decoded.to_extsplats_lod();\n result.lodSplats = toExtResult(lodPacked as DecodedExtResult);\n return result;\n}\n\nasync function tinyLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n packedArray: Uint32Array;\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_packedsplats(\n numSplats,\n packedArray,\n extra as object,\n base,\n filter,\n rgba,\n encoding,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded as DecodedPackedResult);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nasync function qualityLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n packedArray: Uint32Array;\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_packedsplats(\n numSplats,\n packedArray,\n extra as object,\n base,\n rgba,\n encoding,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded as DecodedPackedResult);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nasync function tinyLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra as object,\n base,\n filter,\n rgba,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded as DecodedExtResult);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nasync function qualityLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding,\n}: {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra?: Record;\n lodBase?: number;\n rgba?: Uint8Array;\n encoding: SplatEncoding;\n}) {\n const base = Math.max(1.1, Math.min(2.0, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra as object,\n base,\n rgba,\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded as DecodedExtResult);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`,\n );\n return result;\n}\n\nfunction newLodTree({\n capacity,\n}: {\n capacity: number;\n}) {\n const { lodId } = new_lod_tree(capacity) as { lodId: number };\n return { lodId };\n}\n\nfunction newSharedLodTree({\n lodId,\n}: {\n lodId: number;\n}) {\n const { lodId: newLodId } = new_shared_lod_tree(lodId) as { lodId: number };\n return { lodId: newLodId };\n}\n\nfunction initLodTree({\n numSplats,\n lodTree,\n}: {\n numSplats: number;\n lodTree: Uint32Array;\n}) {\n const { lodId, chunkToPage } = init_lod_tree(numSplats, lodTree) as {\n lodId: number;\n chunkToPage: Uint32Array;\n };\n return { lodId, chunkToPage };\n}\n\nfunction disposeLodTree({ lodId }: { lodId: number }) {\n dispose_lod_tree(lodId);\n}\n\nfunction updateLodTrees({\n ranges,\n}: {\n ranges: {\n lodId: number;\n pageBase: number;\n chunkBase: number;\n count: number;\n lodTreeData?: Uint32Array;\n }[];\n}) {\n const lodIds = new Uint32Array(ranges.map(({ lodId }) => lodId));\n const pageBases = new Uint32Array(ranges.map(({ pageBase }) => pageBase));\n const chunkBases = new Uint32Array(ranges.map(({ chunkBase }) => chunkBase));\n const counts = new Uint32Array(ranges.map(({ count }) => count));\n const lodTreeData = ranges.map(({ lodTreeData }) => lodTreeData);\n\n const result = update_lod_trees(\n lodIds,\n pageBases,\n chunkBases,\n counts,\n lodTreeData,\n );\n}\n\nfunction traverseLodTrees({\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n instances,\n}: {\n maxSplats: number;\n pixelScaleLimit: number;\n lastPixelLimit?: number;\n instances: Record<\n string,\n {\n instanceId: string;\n lodId: number;\n rootPage?: number;\n viewToObjectCols: number[];\n lodScale: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n }\n >;\n}) {\n const keyInstances = Object.entries(instances);\n const lodIds = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.lodId),\n );\n const rootPages = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.rootPage ?? 0xffffffff),\n );\n const viewToObjects = new Float32Array(\n keyInstances.flatMap(([_key, instance]) => {\n if (instance.viewToObjectCols.length !== 16) {\n throw new Error(\"Incorrect array size for viewToObjectCols\");\n }\n return instance.viewToObjectCols;\n }),\n );\n const lodScales = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.lodScale),\n );\n const behindFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.behindFoveate),\n );\n const coneFov0s = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov0),\n );\n const coneFovs = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov),\n );\n const coneFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFoveate),\n );\n\n const result = traverse_lod_trees(\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n lodIds,\n rootPages,\n viewToObjects,\n lodScales,\n behindFoveates,\n coneFoveates,\n coneFov0s,\n coneFovs,\n ) as {\n instanceIndices: {\n lodId: number;\n numSplats: number;\n indices: Uint32Array;\n }[];\n chunks: [number, number][];\n pixelLimit?: number;\n };\n const { instanceIndices, chunks, pixelLimit } = result;\n\n const indices = keyInstances.reduce(\n (indices, [key, _instance], index) => {\n indices[key] = instanceIndices[index];\n return indices;\n },\n {} as Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >,\n );\n // console.log(`traverseLodTrees: instanceIndices=${instanceIndices.length}`);\n // console.log(`traverseLodTrees: chunks=${chunks.length}`, JSON.stringify(chunks));\n return {\n keyIndices: indices,\n chunks,\n pixelLimit,\n };\n}\n\nfunction getLodTreeLevel({\n lodId,\n level,\n}: {\n lodId: number;\n level: number;\n}) {\n return get_lod_tree_level(lodId, level) as { indices: Uint32Array };\n}\n\nlet nextChunkWaiter = (_chunk: Uint8Array) => {};\n\nasync function nextChunk({ chunk }: { chunk: Uint8Array }) {\n nextChunkWaiter(chunk);\n}\n\n// Recursively finds all ArrayBuffers in an object and returns them as an array\n// to use as transferable objects to send between workers.\nfunction getTransferable(ctx: unknown): Transferable[] {\n const buffers: Transferable[] = [];\n const seen = new Set();\n\n function traverse(obj: unknown) {\n if (obj && typeof obj === \"object\" && !seen.has(obj)) {\n seen.add(obj);\n\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n // Handles TypedArrays and DataView\n buffers.push(obj.buffer as ArrayBuffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n\n traverse(ctx);\n return buffers;\n}\n\nasync function initialize() {\n // Hold any messages received while initializing\n const pending: MessageEvent[] = [];\n const bufferMessage = (event: MessageEvent) => {\n pending.push(event);\n };\n self.addEventListener(\"message\", bufferMessage);\n\n await init_wasm();\n\n self.removeEventListener(\"message\", bufferMessage);\n self.addEventListener(\"message\", onMessage);\n\n // Process any buffered messages\n for (const event of pending) {\n onMessage(event);\n }\n pending.length = 0;\n}\n\ninitialize().catch(console.error);\n"],"names":["ptr","nextChunk","decoder","decoded","result","lodTreeData","indices","init_wasm"],"mappings":"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"} \ No newline at end of file diff --git a/dist/spark.cjs.js b/dist/spark.cjs.js index 9f85cfa4..c98d0ed8 100644 --- a/dist/spark.cjs.js +++ b/dist/spark.cjs.js @@ -2,7 +2,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const THREE = require("three"); const Pass_js = require("three/addons/postprocessing/Pass.js"); -var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null; function _interopNamespaceDefault(e) { const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } }); if (e) { @@ -20,1049 +19,703 @@ function _interopNamespaceDefault(e) { return Object.freeze(n); } const THREE__namespace = /* @__PURE__ */ _interopNamespaceDefault(THREE); -class OldSplatGeometry extends THREE__namespace.InstancedBufferGeometry { - constructor(ordering, activeSplats) { - super(); - this.ordering = ordering; - this.setAttribute("position", new THREE__namespace.BufferAttribute(QUAD_VERTICES$1, 3)); - this.setIndex(new THREE__namespace.BufferAttribute(QUAD_INDICES$1, 1)); - this._maxInstanceCount = ordering.length; - this.instanceCount = activeSplats; - this.attribute = new THREE__namespace.InstancedBufferAttribute(ordering, 1, false, 1); - this.attribute.setUsage(THREE__namespace.DynamicDrawUsage); - this.setAttribute("splatIndex", this.attribute); - } - update(ordering, activeSplats) { - this.ordering = ordering; - this.attribute.array = ordering; - this.instanceCount = activeSplats; - this.attribute.addUpdateRange(0, activeSplats); - this.attribute.needsUpdate = true; - } -} -const QUAD_VERTICES$1 = new Float32Array([ - -1, - -1, - 0, - 1, - -1, - 0, - 1, - 1, - 0, - -1, - 1, - 0 -]); -const QUAD_INDICES$1 = new Uint16Array([0, 1, 2, 0, 2, 3]); -const jsContent$1 = '(function() {\n "use strict";\n class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n }\n if (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n }\n if (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n }\n function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n }\n function __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof v === "boolean" ? v : void 0;\n return isLikeNone(ret) ? 16777215 : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof val === "object" && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === void 0;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof obj === "number" ? obj : void 0;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof obj === "string" ? obj : void 0;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() {\n return handleError(function(arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments);\n },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() {\n return handleError(function(arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments);\n },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, void 0);\n table.set(offset + 0, void 0);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n }\n };\n return {\n __proto__: null,\n "./spark_worker_rs_bg.js": import0\n };\n }\n typeof FinalizationRegistry === "undefined" ? {} : new FinalizationRegistry((ptr) => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\n const CsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\n const GsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n function addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n }\n function debugString(val) {\n const type = typeof val;\n if (type == "number" || type == "boolean" || val == null) {\n return `${val}`;\n }\n if (type == "string") {\n return `"${val}"`;\n }\n if (type == "symbol") {\n const description = val.description;\n if (description == null) {\n return "Symbol";\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == "function") {\n const name = val.name;\n if (typeof name == "string" && name.length > 0) {\n return `Function(${name})`;\n } else {\n return "Function";\n }\n }\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = "[";\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for (let i2 = 1; i2 < length; i2++) {\n debug += ", " + debugString(val[i2]);\n }\n debug += "]";\n return debug;\n }\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n return toString.call(val);\n }\n if (className == "Object") {\n try {\n return "Object(" + JSON.stringify(val) + ")";\n } catch (_) {\n return "Object";\n }\n }\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\n${val.stack}`;\n }\n return className;\n }\n function getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n }\n function getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n }\n function getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n }\n let cachedDataViewMemory0 = null;\n function getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === void 0 && cachedDataViewMemory0.buffer !== wasm.memory.buffer) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n }\n function getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n }\n let cachedUint16ArrayMemory0 = null;\n function getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n }\n let cachedUint32ArrayMemory0 = null;\n function getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n }\n let cachedUint8ArrayMemory0 = null;\n function getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n }\n function handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n }\n function isLikeNone(x2) {\n return x2 === void 0 || x2 === null;\n }\n function passStringToWasm0(arg, malloc, realloc) {\n if (realloc === void 0) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr2 = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr2;\n }\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n const mem = getUint8ArrayMemory0();\n let offset = 0;\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 127) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n WASM_VECTOR_LEN = offset;\n return ptr;\n }\n function takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n }\n let cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n const MAX_SAFARI_DECODE_BYTES = 2146435072;\n let numBytesDecoded = 0;\n function decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n }\n const cachedTextEncoder = new TextEncoder();\n if (!("encodeInto" in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function(arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n }\n let WASM_VECTOR_LEN = 0;\n let wasm;\n function __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n cachedDataViewMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n }\n async function __wbg_load(module, imports) {\n if (typeof Response === "function" && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === "function") {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n if (validResponse && module.headers.get("Content-Type") !== "application/wasm") {\n console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n", e);\n } else {\n throw e;\n }\n }\n }\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n function expectedResponseType(type) {\n switch (type) {\n case "basic":\n case "cors":\n case "default":\n return true;\n }\n return false;\n }\n }\n async function __wbg_init(module_or_path) {\n if (wasm !== void 0) return wasm;\n if (module_or_path !== void 0) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({ module_or_path } = module_or_path);\n } else {\n console.warn("using deprecated parameters for the initialization function; pass a single object instead");\n }\n }\n if (module_or_path === void 0) {\n module_or_path = new URL("data:application/wasm;base64,AGFzbQEAAAAB6wZpYAN/f38Bf2ACf38AYAJ/fwF/YAF/AGABfwF/YAN/f38AYAR/f39/AGAFf39/f38AYAADf39/YAZ/f39/f38AYAd/f39/f39/AGAEf39/fwF/YAFvAX9gCH9/f39/f39/AGABfwN/f39gBX9/f39/AX9gAX0BfWAAAGACf28AYAF/AX5gA399fwBgBn9/f39/fwF/YAZ/f39/f30AYAABf2ACf30AYAV/f39+fwBgA29/fwFvYAN/f28AYAF/AW9gAAFvYAJvbwF/YAl/f39/f39/f38AYAF+AX9gAn9vA39/f2ACfX0BfWADb39/AGACb28Bb2ACb38Bb2ACf38Bb2AEf39/fQF/YAx/f39/f39/f39/f38AYAl/f39/f39/f38Bf2AFf39/fX8AYAd/f39/f39/AX9gBX9/f399AGAEf31/fwF/YBN/f39/f39/f39/f39/f39/f39/AX9gE39/f39/f39/f39/f39/f39/f38AYAN+fn8BfmAHf39/f399fQBgA39+fgBgBX9/fn9/AGAFf398f38AYAV/f31/fwBgBH9vf28Df39/YAN/b28Bf2AAAn9/YANvb28Bf2ADb29vAGADb29/AGABbwFvYAF8AW9gCn9/f39/f39/f38Bf2ALf39/f39/f39/f38Bf2AKf39/f39/f39/fwBgBn9/fX9/fwBgAn9/AX1gBH9/f34AYAN/f38BfmACf34AYAN/fX8Bf2AFf39/fn4AYAZ/fn9/f38AYAZ/f39/fX0AYAF/AX1gBH5+f38BfmAFf39/f38BfWAJf39/f39/fn5+AGAEf39/fwF9YAJ+fwBgA39/ewBgAn9+AX9gAn1/AX1gA319fQF9YAR/fn5/AGAGf39/fn9/AGAGf39/fH9/AGAGf39/fX9/AGATf318f39/f39/f39/f39/f39/fwN/f39gCX9/f39/f39/bwN/f39gCH9/f39vf39/A39/f2AHf29/fX9/bwN/f39gB39vb399f38Df39/YAd/f39/f39/A39/f2AGf29vf31/A39/f2AGf29/fX9vA39/f2AFf39/f28Df39/YAR/b29/A39/f2AEf39/fwN/f39gAn9/A39/f2ACf28Cf39gBH9+f38AYAR/fX9/AGAEf3x/fwBgAXwBfwKdFS0XLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfZDUxZTg5NDU4YjNmZGJmNgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF8xZTcwMTc5OGZkY2FhM2I0AAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzQ0ODEyNjc2OWJmN2MxODEAIxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsX2U0MjI3NWU2MDFlMTRlZWIAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyZfX3diZ19uZXdfd2l0aF9sZW5ndGhfNDFhMjIxOTFiOWJkZmQ2NgAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX25ld180ZjlmYWZiYjM5MDlhZjcyAB0XLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzhlZTJkMzRmYWNiODQ2NmUAORcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfZjNjOWRmNGYzOGYzZjc5OAAdFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzG19fd2JnX3B1c2hfNmJkYmM5OTBiZTVhYzM3YgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX2dldF9mOTY3MDJjNjI0NWU0ZWY5ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMqX193YmdfX193YmluZGdlbl9pc19mYWxzeV9jNmRkZmFlMWJiNTZkNWVmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzZiZTQyNzY4YzY5MGUzODAAOhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19nZXRfNDg0OGUzNTBiNDBhZmMxNgAlFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2dzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2NzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHF9fd2JnX0Vycm9yXzJlNTliMWIzN2E5YTM0YzMAJhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcytfX3diZ19fX3diaW5kZ2VuX2lzX29iamVjdF80MGM1YTgwNTcyZThmOWQzAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMnX193YmdfZ2V0X3dpdGhfcmVmX2tleV82NDEyY2YzMDk0NTk5Njk0ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMuX193YmdfX193YmluZGdlbl9pc191bmRlZmluZWRfYzBjY2E3MmI4MmI4NmY0ZAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJF9fd2JnX19fd2JpbmRnZW5faW5fNGJkN2E1N2U1NDMzNzM2NgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fbnVtYmVyX2dldF83NTc5YWFiMDJhOGE2MjBjABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMtX193YmdfX193YmluZGdlbl9ib29sZWFuX2dldF9hODZjMjE2NTc1YTc1YzMwAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzgxYjQxNzQzNTJlNmEwOTUAOxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx1fX3diZ19sZW5ndGhfMGMzMmNiODU0M2M4ZTRjOAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzH19fd2JnX3N1YmFycmF5XzBmOThkM2ZiNjM0NTA4YWQAGhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsXzNlMDVlYjk1NDU1NjUwNDYAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diZ19zZXRfaW5kZXhfMzM4YTY2ZTQwZmM0NWRlZQAjFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF9hNGNhOWU3ODM1OWI1ZjFmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfNTE3Y2QwZjE4MTFhYjg3MgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfNjRjMjg3YTI3Y2MyNGQyNwAbFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF82ZTgyMWVkZGU0OTdhNTMyAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMkX193YmdfZ2V0X3VuY2hlY2tlZF83ZDdiYWJlMzJlOWU2YTU0ACUXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193YmdfbmV3XzIyN2Q3YzA1NDE0ZWI4NjEAHRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxxfX3diZ19zdGFja18zYjBkOTc0YmJmMzFlNDRmABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMcX193YmdfZXJyb3JfYTZmYTIwMmI1OGFhMWNkMwABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzMF9fd2JnX19fd2JpbmRnZW5fanN2YWxfbG9vc2VfZXFfM2E3MmFlNzY0ZDQ2ZDk0NAAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fc3RyaW5nX2dldF85MTRkZjk3ZmNmYTc4OGYyABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMsX193YmdfaW5zdGFuY2VvZl9VaW50OEFycmF5XzRiOGRhNjgzZGViMjVkNzIADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcy1fX3diZ19pbnN0YW5jZW9mX0FycmF5QnVmZmVyX2ZmN2MxMzM3YTVlM2IzM2EADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfYTU2MDM3OGVhMTI0MGIxNAA8Fy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfODFmYzc3Njc5YWY4M2JjNgABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLl9fd2JnX19fd2JpbmRnZW5fZGVidWdfc3RyaW5nX2RkNWQyZDA3Y2U5ZTZjNTcAEhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx9fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlABEXLi9zcGFya193b3JrZXJfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDEAPRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMgAmA5cKlQoYGBQUAQoKAQkBCgoFCgkKBAQnBAQNJw0BAQYEBAoEBAUNBgQEBAQJCREFBgEJAQQEBAQJCQYBAgcoCQIJASgGBQ0BKQQGAQA+BQE/DQcGAgIGAgYGAQEGBgUEBAQEBgECBgUGBgYCBwkCBgEFBgEBAwMEBA8DBAEHAQcGAAYDBA0BAgEEAQEVAQYBBAIEBQYDBUABDwcDAgEBBwICBSoCCQEFBwQEBgQCBwUfAioGAQcFBgEHBhYGAQcrCQENAAEBAAIFAQIFAQUKLCsGBQcDBgYBDQEFAwEDBAUCBQMCAwMBAQFBAgYBLAcJARADEEIHBwUGAQMHBwECAgQWCQkBAQJDBw0DCUQAAQEBAQELBC0DAwMEAQIBAgECAwMCRQUGBEYBAQEBBwACCRkCBQIBAQcABQQJAQYBRwYGSAMDBQUDAQUDBgUFAwMtBgUKBQYBAwkABQUHAQIDAwMDLi4FCQkvLwkHBwIBAQAGBQEDAwMDAQMAAQIBAQYCAQZJAgsFAQAFAQYJCQQEBAQCBAEVAQICFQABAQUGAwUVBw0ABQUHAgEAAAIFBQAACQUWHwICCgICAQcHAgMHCgUFAwMBARkCBwUwAgUFBQMwBAABAQQBMQMDCgkFAwMEChBKAQUFBQUWBgEDBksHBQEDAwIBBAIBAQUCBgcBAgICAQEDAgQBAkwDTQEHBwcHAQIKBwlOAwNPAgUBAgcHBQsGAgQEBAEDAQIJBgYHAQMPARcHEAIEUAoCBAMGBAQBDwUfAgkDBAsZFAoCAgIQAwcxBAcCAzIAAQcWAQMCAgYBBAECDwEGCwEFAhcGAQICAgICAgYCEAEHAgcDBwUEBAICBAEBAQEBAQIBAgQEAQECAAICAgIBAgMBBwMCAxAEAQMFAgEBAwMAAgMCAQkBAQEFAgIHAwEDAwcCAAcDAwICAgECBwMpBQICAgICAQIFBQEBAQICAgICAlEBAgICAgICAgEDAgkCAQEHAwEDAwEBAQEBCQkCAwIBAQIBAQMBAQEFAQUCAgFSAQICUwMDAQEBBgADAwEDAgELCwUCAgEBBAMBCwMDAgEBAgMDAwEBAQICAAMyAAAHAgUDAwUCAxkFAxQUBwcJAwYFBQUFAwMDAwMDAwYYGAMFAgMABgMEBAQEAgUBBAQECQQDBwQFAwMDAwMCAgICBVQFBAEDEwEDAQEFBARVCVZXAQECBQcCBhAAAAAAAAAAAAAAAAAEAgIAAAAAIAQgAAQgBAQEAgACAgIAWAUTBQEAAAABAgABAgIGBQIBBAICAlkPWgcCBgIHAQFbXF0DEQMDXl8RC2ACNmFiNgEJAgIhIWMhAAICAgICAg4ODg4ODg4ODgQEBAQCAmQBAQEBAgICAgICAgICFQICAgICAgICAQICAQICDwczNTQCAQECAgIGCwIAAQIANzcDAgIiIgACBQMCAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAwECBQEBAQEBAQEBBAIAAgICAgIJAgICAgEBAQECAwEBAQICAgIEaAMDAgcCCQEXBRcSEgIBAgEBAQEBAQEBAgIBAgEBAQEBAQEDBAEDBQEFBQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAwMBAQEBAQEBAQEBEQERAgICAQIBAgECAgICAQEBAQEBAQEEAwEBAQEBAQEBAQMDCgEEAgEiBAQEBAQEEQQXBQQLAnAB4QThBG8AgAgFAwEAEwYPAn8BQYCAwAALfwFBgAgLB7AMPgZtZW1vcnkCABdfX3diZ19jaHVua2RlY29kZXJfZnJlZQCSBBZfX3diZ19jc3BsYXRhcnJheV9mcmVlALYFIV9fd2JnX2dldF9jc3BsYXRhcnJheV9tYXhTaERlZ3JlZQClCB9fX3diZ19nZXRfY3NwbGF0YXJyYXlfbnVtU3BsYXRzAKYIIV9fd2JnX2dldF9nc3BsYXRhcnJheV9tYXhTaERlZ3JlZQCnCB9fX3diZ19nZXRfZ3NwbGF0YXJyYXlfbnVtU3BsYXRzAKgIFl9fd2JnX2dzcGxhdGFycmF5X2ZyZWUAtwUhX193Ymdfc2V0X2NzcGxhdGFycmF5X21heFNoRGVncmVlAKwIH19fd2JnX3NldF9jc3BsYXRhcnJheV9udW1TcGxhdHMArQghX193Ymdfc2V0X2dzcGxhdGFycmF5X21heFNoRGVncmVlAK4IH19fd2JnX3NldF9nc3BsYXRhcnJheV9udW1TcGxhdHMArwgTYmhhdHRfbG9kX2V4dHNwbGF0cwCDCBZiaGF0dF9sb2RfcGFja2Vkc3BsYXRzAIQIE2NodW5rZGVjb2Rlcl9maW5pc2gAoggRY2h1bmtkZWNvZGVyX3B1c2gAqwgVY3NwbGF0YXJyYXlfYmhhdHRfbG9kAP4GE2NzcGxhdGFycmF5X2hhc19sb2QAxgcYY3NwbGF0YXJyYXlfaW5qZWN0X3JnYmE4AMIJD2NzcGxhdGFycmF5X2xlbgDVBxRjc3BsYXRhcnJheV90aW55X2xvZADrBhhjc3BsYXRhcnJheV90b19leHRzcGxhdHMAnAgcY3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzX2xvZACeCBtjc3BsYXRhcnJheV90b19wYWNrZWRzcGxhdHMAnQgfY3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzX2xvZACfCBVkZWNvZGVfdG9fY3NwbGF0YXJyYXkAhwgTZGVjb2RlX3RvX2V4dHNwbGF0cwD+BxVkZWNvZGVfdG9fZ3NwbGF0YXJyYXkAiwgWZGVjb2RlX3RvX3BhY2tlZHNwbGF0cwD0BxBkaXNwb3NlX2xvZF90cmVlAIwCGGV4dHNwbGF0c190b19nc3BsYXRhcnJheQCKCBJnZXRfbG9kX3RyZWVfbGV2ZWwAkwgVZ3NwbGF0YXJyYXlfYmhhdHRfbG9kAP8GGGdzcGxhdGFycmF5X2luamVjdF9yZ2JhOADDCQ9nc3BsYXRhcnJheV9sZW4A1QcUZ3NwbGF0YXJyYXlfdGlueV9sb2QA7AYYZ3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzAKAIHGdzcGxhdGFycmF5X3RvX2V4dHNwbGF0c19sb2QAoQgbZ3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzAJEIH2dzcGxhdGFycmF5X3RvX3BhY2tlZHNwbGF0c19sb2QAkggNaW5pdF9sb2RfdHJlZQCUCAxuZXdfbG9kX3RyZWUApAgTbmV3X3NoYXJlZF9sb2RfdHJlZQCjCBtwYWNrZWRzcGxhdHNfdG9fY3NwbGF0YXJyYXkAjAgbcGFja2Vkc3BsYXRzX3RvX2dzcGxhdGFycmF5AIkIDHNpbWRfZW5hYmxlZADACg1zb3J0MzJfc3BsYXRzANoIC3NvcnRfc3BsYXRzANsIEnRpbnlfbG9kX2V4dHNwbGF0cwD9BxV0aW55X2xvZF9wYWNrZWRzcGxhdHMA/AcSdHJhdmVyc2VfbG9kX3RyZWVzANwHEHVwZGF0ZV9sb2RfdHJlZXMA8gcKd2FzbV9zdGFydACFCBNnc3BsYXRhcnJheV9oYXNfbG9kAMYHEV9fd2JpbmRnZW5fbWFsbG9jANoHEl9fd2JpbmRnZW5fcmVhbGxvYwCGCA9fX3diaW5kZ2VuX2ZyZWUAlgcUX193YmluZGdlbl9leG5fc3RvcmUA2gkXX19leHRlcm5yZWZfdGFibGVfYWxsb2MA2gQVX193YmluZGdlbl9leHRlcm5yZWZzAQEZX19leHRlcm5yZWZfdGFibGVfZGVhbGxvYwCbBxBfX3diaW5kZ2VuX3N0YXJ0AL4KCbgJAQBBAQvgBIsFxAnpCPMD7QiNASwrvAnECboJ0gjoB5sF9QSnAqIE8gHVCMQBggeeBOwHrASyCvwC5wP2AagG0AeJBssF5gaWCMMI3gLRCZsIswa0AsQIhQXGCYkG3APTA8AG0AmSCpMKugW4BZsKkwGPBtkG3Qj0BMcH2AjDApoKuAiZCsYJ1gLEBLIGpwOABu0GyAjcBdUFyQjJCMkIrgevB7YHygiwB9MIuAevB8sIsQfMCK8HlAfICLkIkQfZCPEG1AjuBukHlwrhBpwKugixCLsI/ATSCaMG7wfzBNMFqAXSCc8J5APKAo0GwgGDA9sExQTVBH20CecI/QjyCIMJiAnwCIwJhgn0CP8I9wiLCYUJhAmCCfoIjQnxCIcJgAn1CIEJ/gjqCIUE/QnRA4oHkQHKBogIgATmCdYDiQeQAYEE+gnXA4cHhQGGBOwJ0gOIB5IB5gj2CIkJgwfGCc8JswqUCsUJwQqDB9cHkgWBCpIJnAnaBs4FrgKzB6cKsge6BdIGsQXwBfEF/AWGCsQJoArjBN0EhQPCCKoKwgjGCc8Jnwq5CcQJ/QXtB4kK7QexBK4G6wSNB4UKjQeDCv4FkQmMCo8J8Qe1CuAHjQrFCeAHwQqQCYcK6gaECoIKoQrJBagKigqOCYsK3AiICqUHlAnMCdAGswikB78K9wSZCcsJ0QbBCJgHmgnICdcGsgipB5kHlgnHCZkGtQinB4wGlwnJCZgGvwiVCcoJvga0CJcHmwnNCZsG2AfLBoYHmAnOCZoG9gfNBe4HxQa4CZEK6wHaBYAK5wX7CPgI8wjvCIoJ+QjuCPwItQb/Cb0HuAOHA+oJxAe1BfkG8wnMB4kB8AlI8QlSnAPoCcEH0we8BvUJuge2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gICAeEYNBCADKQJMIR0gAygCVCEMIANBgICAgHg2AlQgDEGAgICAeEYNBCADKQJYISAgAygCPCERIANBgICAgHg2AjwgEUGAgICAeEYNBCADKQJAISIgAygCMCEPIANBgICAgHg2AjAgD0GAgICAeEYNBCADKQI0ISMgAigCzAEiBSACKALAASIGRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIUIAZBACAGIBRNG2tBDGxqIgYgGTcCBCAGIAQ2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIBo3AgQgBCAHNgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAcNwIEIAQgCTYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgHjcCBCAEIAs2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIB03AgQgBCAINgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAgNwIEIAQgDDYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgIjcCBCAEIBE2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEg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SxsNDyAEEKICCyADQQA2AlggA0KAgICAwAA3AlAgA0EANgKMASADQoCAgIDAADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCINIAJBBXQiCWoiBSgCACIGIAAoAggiBEkEQCAAKAIEIgsgBkEkbGoiBv1dAgggBioCECIB/SACIAH9IAMgA/0JAkwiLv3nAf1oIi39HwL8BCEaIC39HwH8BCEbIC39HwD8BCEcIAcgAkEBaiIITQRAIAIhCgwDCyAHQQFrIQogFUEBcQRAIAchCAwDCyAJIA1qQSBqIQYDQCAGKAIAIgkgBE8NAiALIAlBJGxqIgn9XQIIIAkqAhAiAf0gAiAB/SADIC795wH9aCIt/R8A/AQgHFIgLf0fAfwEIBtSckUgLf0fAvwEIBpRcUUEQCAIQQFrIQoMBAsgBkEgaiEGIAcgCEEBaiIIRw0ACyAHIQgMAgsgBiAEQdTAxwAQjAcACyAJIARB1MDHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayILrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiI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ADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCIWIAJBBXQiCWoiBigCACIFIAAoAggiBEkEQCAAKAIEIgogBUEYbGr9AAIAICz9DQABAgMEBQYHCAkKCwgJCgsgA/0JAkwiLf3nAf1oIiz9HwL8BCEaICz9HwH8BCEbICz9HwD8BCEcIAcgAkEBaiIITQRAIAIhCwwDCyAHQQFrIQsgDkEBcQRAIAchCAwDCyAJIBZqQSBqIQUDQCAFKAIAIgkgBE8NAiAKIAlBGGxq/QACACAs/Q0AAQIDBAUGBwgJCgsICQoLIC395wH9aCIs/R8A/AQgHFIgLP0fAfwEIBtSckUgLP0fAvwEIBpRcUUEQCAIQQFrIQsMBAsgBUEgaiEFIAcgCEEBaiIIRw0ACyAHIQgMAgsgBSAEQdy7xwAQjAcACyAJIARB3LvHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayIMrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhCADKQPwASIbQn+FfiIc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IANrIhUNAQwCCwtBqJDIACkDACJ6Qv8Bg0IEUQ0AIHpCIIinIhIgeqciA0H/AXFBBEYNARogekIQiKchFSB6QgiIpyEIQQAhCwwCCyAELwHIDCAELQDKDEEQdHILIRJBASEJIAEgEkEBdkEHcToAKyABIBJBAXEiA0U6ACggASASQQR2QQFxOgApAkACQAJAAkACQAJAAkAgAw0AIARBADoA2hggBEEAOwHYGCABKALoAyELQQMhFSAEQdgYaiEIAkADQAJAIHlQBEBCACF5DAELIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQAgAyAIaiEIIBUgA2siFQ0BDAILC0EAIQtBqJDIACkDACJ6pyIDQf8BcUEERg0AIHpCIIinIRIgekIQiKchFSB6QgiIpyEIDAgLIAECfwJAAkACQAJ/AkACQCAELwHYGCAELQDaGEEQdHIiB0Gdg6gBRgRAIARBADsByAwgASgC6AMhC0ECIRUgBEHIDGohCANAIHlQBEBCACF5DAMLIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQIgAyAIaiEIIBUgA2siFQ0ACwwCCyAHQQh2IQJBESELDA4LQaiQyAApAwAiekL/AYNCBFENACB6QhCIpyEVIHqnIgNB/wFxQQRHDQIgFQwBCyAELwHIDAshESAEQQA7AcgMIAEoAugDIQtBAiEVIARByAxqIQgDQCB5UA0CIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQIgAyAIaiEIIBUgA2siFQ0ACwwCCyB6QgiIpyEIIHpCIIinIRJBACELDAoLQaiQyAApAwAieUL/AYNCBFENACB5QhCIpyIVIHmnIgNB/wFxQQRGDQEaIHlCCIinIQggeUIgiKchEkEAIQsMCQsgBC8ByAwLQf//AHE7ASYgASARQf//AHEiCDsBJCAIQQ9qQQR2IQICfyAIRQRAQQEhFUEADAELIAJBHmwQcSIVRQ0CIBUhAwJAIAhBEUkNACACQQFrIhBBB3EhCyACQQJrQQdPBEAgEEF4cSEHA0AgA/0MAAAAAAAAAAAAAAAAAAAAAP0LAAAgA0EQakIANwAAIANBFmr9DAAAAAAAAAAAAAAAAAAAAAD9CwAAIANBJmr9DAAAAAAAAAAAAAAAAAAAAAD9CwAAIANBNGr9DAAAAAAAAAAAAAAAAAAAAAD9CwAAIANBxABq/QwAAAAAAAAAAAAAAAAAAAAA/QsAACADQdIAav0MAAAAAAAAAAAAAAAAAAAAAP0LAAAgA0HiAGr9DAAAAAAAAAAAAAAAAAAAAAD9CwAAIANB8ABqQgA3AAAgA0GIAWpCADcAACADQY4BakIANwAAIANB+ABq/QwAAAAAAAAAAAAAAAAAAAAA/QsAACADQaYBakIANwAAIANBrAFqQgA3AAAgA0GWAWr9DAAAAAAAAAAAAAAAAAAAAAD9CwAAIANBxAFqQgA3AAAgA0HKAWpCADcAACADQbQBav0MAAAAAAAAAAAAAAAAAAAAAP0LAAAgA0HoAWpCADcAACADQeIBakIANwAAIANB0gFq/QwAAAAAAAAAAAAAAAAAAAAA/QsAACADQfABaiEDIAdBCGsiBw0ACwsgC0UNAANAIAP9DAAAAAAAAAAAAAAAAAAAAAD9CwAAIANBFmpCADcAACADQRBqQgA3AAAgA0EeaiEDIAtBAWsiCw0ACwsgA/0MAAAAAAAAAAAAAAAAAAAAAP0LAAAgA0EWakIANwAAIANBEGpCADcAACACCyEDIAEoApwEIgsEQCABKAKgBCIOQQRrKAIAIhBBeHEiESALQR5sIgtBBEEIIBBBA3EiEBtqSQ0LIBBBACARIAtBJ2pLGw0MIA4QogILIAEgAjYCpAQgASAVNgKgBCABIAM2ApwEAn8CQCAIRQ0AIBUtAAAiA0ECRg0AIARBMGogFUEcai0AADoAACAEIBX9AAAE/QsDyAwgBCAVKQAUNwMoIBUtAAEhCyAVLQACIQcgFS0AAyEIIBUtAB0MAQsgBEEwakEAOgAAIAT9DAAAAAAAAAAAAAAAAAAAAAD9CwPIDCAEQgA3AyhBACEIQQAhB0EAIQtBACEDQQALIRUgASAIOgCFBSABIAc6AIQFIAEgCzoAgwUgASADOgCCBSABIAT9AAPIDP0LAIYFIAEgBCkDKDcAlgUgASAVOgCfBSABQZ4FaiAEQTBqLQAAOgAAIAEgAS8BJCIDQQR2IANBD3FBAEdqIgM7AaAFIAEgAS8BJiILQQR2IAtBD3FBAEdqIgs7AaIFAkACQCADIAtsQQh0IgNBAE4EQAJAIANFBEBBASELDAELIAMQcSILRQ0FIAtBBGstAABBA3FFIANFcg0AIAtBACAD/AsACyABKAIAIhUEQCABKAIEIghBBGsoAgAiEEF4cSICQQRBCCAQQQNxIhAbIBVqSQ0OIBBBACACIBVBJ2pLGw0PIAgQogILIAEgAzYCCCABIAs2AgQgASADNgIAIAEvAaAFIAEvAaIFbEEGdCIDQQBIDQECQCADRQRAQQEhCwwBCyADEHEiC0UNBSALQQRrLQAAQQNxRSADRXINACALQQAgA/wLAAsgASgCDCIVBEAgASgCECAVQQEQogcLIAEgAzYCFCABIAs2AhAgASADNgIMIAEvAaAFIAEvAaIFbEEGdCIDQQBIDQICQCADRQRAQQEhCwwBCyADEHEiC0UNBSALQQRrLQAAQQNxRSADRXINACALQQAgA/wLAAsgASgCGCIVBEAgASgCHCAVQQEQogcLIAEgAzYCICABIAs2AhwgASADNgIYIAEvASRBFGoiAxBxIgtFDQQgAwRAIAtB/wAgA/wLAAsgASgCqAQiFQRAIAEoAqwEIBVBARCiBwsgASADNgKwBCABIAs2AqwEIAEgAzYCqARBERBxIgNFDQQgA0KBg4aMmLDgwIF/NwAAIANBEGpBgQE6AAAgA0EIakKBg4aMmLDgwIF/NwAAIAEoArQEIgsEQCABKAK4BCALQQEQogcLIAFBETYCvAQgASADNgK4BCABQRE2ArQEIAEvAaAFIgtBA3QhAwJAIAtFBEBBASELDAELIAMQcSILRQ0FCyADBEAgC0H/ACAD/AsACyABKALABCIVBEAgASgCxAQgFUEBEKIHCyABIAM2AsgEIAEgCzYCxAQgASADNgLABEEJEHEiA0UNBCADQoGDhoyYsODAgX83AAAgA0EIakGBAToAACABKALMBCILBEAgASgC0AQgC0EBEKIHCyABQQk2AtQEIAEgAzYC0AQgAUEJNgLMBCABLwGgBSILQQN0IQMCQCALRQRAQQEhCwwBCyADEHEiC0UNBQsgAwRAIAtB/wAgA/wLAAsgASgC2AQiBwRAIAEoAtwEIAdBARCiBwsgASADNgLgBCABIAs2AtwEIAEgAzYC2ARBCRBxIgNFDQQgA0KBg4aMmLDgwIF/NwAAIANBCGpBgQE6AAAgASgC5AQiCwRAIAEoAugEIAtBARCiBwsgAUEJNgLsBCABIAM2AugEIAFBCTYC5AQMAwtB7KzGABD/BwALQfysxgAQ/wcAC0GMrcYAEP8HAAsgEkEHdiASQeAAcUEAR2oiCkECdCERAkAgCkUNACAREHEiCUUNASAJQQRrLQAAQQNxRSARRXINACAJQQAgEfwLAAsCQAJAAkACQCARIBJBBXYiEE8EQCASQSBJDQIgASkD4AMheSABKALoAyELIAkhCCAQIRUDQCB5UA0CIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEgJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEi0AADoAAAwBCyADRQ0AIAggEiAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQIgAyAIaiEIIBUgA2siFQ0ACwwCC0EAIBAgEUGwrcYAEOoHAAtBACELQaiQyAApAwAieaciA0H/AXFBBEYNACB5QiCIpyESIHlCEIinIRUgeUIIiKchCCAKDQEMCQsgBCAKNgIwIAQgCTYCLCAEIAo2AiggBEHIDGogAUHwAGoiFSAEQShqIBAQsgMgBC0AyAwiC0EdRg0BIAQ1AM0MInkgBEHTDGoxAABCMIYgBEHRDGozAABCIIaEhCJ6QhiIpyESIHpCCIinIRUgBCgC1AwhDiAELQDMDCEDIAQvAcoMIQIgBC0AyQwhByB5pyEIDAgLIAlBBGsoAgAiBkF4cSICQQRBCCAGQQNxIgcbIBFqSQ0KIAdBACACIBFBJ2pLGw0LIAkQogIMBwsCQCABLQAoRQ0AIBVBARC5ASEHIAEgFUEBELkBOgAsIAdB/wFxRQ0AQRMhCwwHCyABIBUQqgUiAzoApAUCQCADRQ0AIAEgFRCqBToApQUgFRCqBQRAIAEgFRCqBUEBcyIDOgBuIAEgAzoAXiABIAM6AE4gASADOgA+IAEgFUEHEK8BOgA8IAEgFUEHEK8BOgBMIAEgFUEHEK8BOgBcIAEgFUEHEK8BOgBsIAEgFUEGEK8BOgA9IAEgFUEGEK8BOgBNIAEgFUEGEK8BOgBdIAEgFUEGEK8BOgBtCyABLQClBUEBRgRAQf8BIQMgASAVEKoFBH8gFUEIELkBBUH/AQs6APYEIAEgFRCqBQR/IBVBCBC5AQVB/wELOgD6BCAVEKoFBEAgFUEIELkBIQMLIAEgAzoA/gQLIAEtAJMBQfIBRw0AQQ8hCwwGCyABIBUQqgU6ACogASAVQQYQuQE6AC0gASAVQQMQuQE6AC4gASAVEKoFIgM6AKYFAkACQAJAIANFDQAgFRCqBQRAIAEgFUEGEK8BNgLwAyABIBVBBhCvATYC9AMgASAVQQYQrwE2AvgDIAEgFUEGEK8BNgL8AyABIBVBBhCvATYCgAQgASAVQQYQrwE2AoQEIAEgFUEGEK8BNgKIBCABIBVBBhCvATYCjAQLIAEtAJMBQfIBRw0AQQ8hCwwBCyAVQQIQuQEhA0EPIQsgAS0AkwFB8gFGDQcgAUEBIAN0Ihg6AKcFAkAgA0EfcSIPRQ0AAkACQEEDIA90QQNrIgNBAE4EQCADEHEiEUUNBiARQQRrLQAAQQNxRSADRXJFBEAgEUEAIAP8CwALIAEpA+ADIXkgASgC6AMhByARIQ4gAyECAkADQCB5UA0BIAcpAwgieiAHKAIEIgitInsgeiB7VBunIgogBygCAGohEAJAIAhC/////w8geiB6Qv////8PWhunayIJQQAgCCAJTxsiCSB5IAKtInsgeSB7VBunIg0gCSANSRsiCUEBRgRAIA4gEC0AADoAAAwBCyAJRQ0AIA4gECAJ/AoAAAsgASB5IAmtInt9Ink3A+ADIAcgeiB7fDcDCCAIIApGDQEgCSAOaiEOIAIgCWsiAg0AC0GokMgAKQMAInpC/wGDQgRRIQwMAgtBASEMQaiQyAApAwAiekL/AYNCBFENAUEAIQsMAgtBuKnGABD/BwALIAFBmAFqISYgESEZIAMhDQJAA0ACQCANQQJNBEAgDARAQQEhCUEAIQpBACEIQQAhEAwCCyAEIHo3A8gMQaiqxgBBNyAEQcgMakGYqsYAQeCqxgAQ4AYACyAZLwAAIBlBAmotAABBEHRyIghBA2oiCUECdiEKAn8gCUH8//8PcSIURQRAQQEhCUEADAELIBQQcSIJRQ0IIAlBBGstAABBA3FFIBRFckUEQCAJQQAgFPwLAAsgCgshECAIIBRNBEAgCEUEQEEAIQpBACEIDAILIAEpA+ADIXkgASgC6AMhByAJIQ4gCCECA0ACQCB5UA0AIAcpAwgieyAHKAIEIhKtInwgeyB8VBunIiIgBygCAGohFgJAIBJC/////w8geyB7Qv////8PWhunayIUQQAgEiAUTxsiFCB5IAKtInwgeSB8VBunIhsgFCAbSRsiFEEBRgRAIA4gFi0AADoAAAwBCyAURQ0AIA4gFiAU/AoAAAsgASB5IBStInx9Ink3A+ADIAcgeyB8fDcDCCASICJGDQAgDiAUaiEOIAIgFGsiAg0BDAMLCyAMDQFBACELIBBFDQQgCSAQQQJ0QQEQogcMBAtBACAIIBRBiKrGABDqBwALIAVBCEYNASAEIAo2AuAYIAQgCTYC3BggBCAQNgLYGCAEQcgMaiAmIAVBKGxqIARB2BhqIAgQsgMgBC0AyAwiCUEdRwRAIAQoAtQMIQ4gBCkCzAwheiAELwHKDCECIAQtAMkMIQcgCSELDAMLIAVBAWohBSAZQQMgDSANQQNPGyIJaiEZIA0gCWsiDQ0ACyARIANBARCiBwwCC0EIQQhB+KnGABCMBwALIBEgA0EBEKIHIHqnIQMMBwsgBEEANgLgGCAEQoCAgIAQNwLYGCAEQcgMaiABQdgDaiAEQdgYahDzAQJAAkACQAJAAkACfwJAIAQtAMgMQQRGDQAgBCkDyAwieqciA0H/AXFBBEYNAEEADAELIAQoAuAYIgNBA2oiCUEASA0CIAlBAnYhAgJ/IAlBfHEiCUUEQEEBIQdBAAwBCyAJEHEiB0UNCSAHQQRrLQAAQQNxRSAJRXJFBEAgB0EAIAn8CwALIAILIQggBCACNgIwIAQgBzYCLCAEIAg2AiggAyAJSw0DIAQoAtwYIQkgAwRAIAcgCSAD/AoAAAsgGEEBayECIA9BBE8NBCAEQcgMaiABQZgBaiJdIAJBKGxqIARBKGogAxCyAyAELQDIDCIIQR1GDQEgBCgC1AwhDiAELwHKDCECIAQtAMkMIQcgBCkCzAwieqchAyAICyELIAQoAtgYIgZFDQsgBCgC3BggBkEBEKIHDAsLIAQoAtgYIgMEQCAJIANBARCiBwsgFUEHELkBIQMgFUEEEK8BIQggFUEEEK8BIQIgFUEEEK8BIQ4gFUEEEK8BIRIgFUEEEK8BIQkgAUH/ACABLAA8IANB/wFxIgdBACABLQA+G2ogByABLQCkBSIQGyIDQQAgA0EAShsiESARQf8AThtBAXQvAbjkRDsBMiABQf8AIAMgCWoiEUEAIBFBAEobIhEgEUH/AE4bQQF0LwG45EQ7ATogAUH/ACADIBJqIhFBACARQQBKGyIRIBFB/wBOG0EBdC4BuOZEIhE7ATggAUH/ACADIAhqIgpBACAKQQBKGyIKIApB/wBOG0EBdC8BuOZEOwEwIAFB/wAgAiADaiIKQQAgCkEAShsiCiAKQf8AThtBAXQvAbjmREEBdDsBNCABQf8AIAMgDmoiA0EAIANBAEobIgMgA0H/AE4bQQF0LgG45ERBmwFsQeQAbSIDOwE2IAPBQQdMBEAgAUEIOwE2CyARQYQBTA0DIAFBhAE7ATgMAwtByKnGABD/BwALQQAgAyAJQeipxgAQ6gcACyACQQhB2KnGABCMBwALAkAgEEUNACABQf8AIAEsAEwgB0EAIAEtAE4baiAHIAEtAKQFGyIDQQAgA0EAShsiECAQQf8AThtBAXQvAbjkRDsBQiABQf8AIAMgCWoiEEEAIBBBAEobIhAgEEH/AE4bQQF0LwG45EQ7AUogAUH/ACADIBJqIhBBACAQQQBKGyIQIBBB/wBOG0EBdC4BuOZEIhA7AUggAUH/ACADIAhqIhFBACARQQBKGyIRIBFB/wBOG0EBdC8BuOZEOwFAIAFB/wAgAiADaiIRQQAgEUEAShsiESARQf8AThtBAXQvAbjmREEBdDsBRCABQf8AIAMgDmoiA0EAIANBAEobIgMgA0H/AE4bQQF0LgG45ERBmwFsQeQAbSIDOwFGIAPBQQdMBEAgAUEIOwFGCyAQQYUBTgRAIAFBhAE7AUgLIAFB/wAgASwAXCAHQQAgAS0AXhtqIAcgAS0ApAUbIgNBACADQQBKGyIQIBBB/wBOG0EBdC8BuOREOwFSIAFB/wAgAyAJaiIQQQAgEEEAShsiECAQQf8AThtBAXQvAbjkRDsBWiABQf8AIAMgEmoiEEEAIBBBAEobIhAgEEH/AE4bQQF0LgG45kQiEDsBWCABQf8AIAMgCGoiEUEAIBFBAEobIhEgEUH/AE4bQQF0LwG45kQ7AVAgAUH/ACACIANqIhFBACARQQBKGyIRIBFB/wBOG0EBdC8BuOZEQQF0OwFUIAFB/wAgAyAOaiIDQQAgA0EAShsiAyADQf8AThtBAXQuAbjkREGbAWxB5ABtIgM7AVYgA8FBB0wEQCABQQg7AVYLIBBBhQFOBEAgAUGEATsBWAsgAUH/ACABLABsIAdBACABLQBuG2ogByABLQCkBRsiA0EAIANBAEobIhAgEEH/AE4bQQF0LwG45EQ7AWIgAUH/ACADIAlqIglBACAJQQBKGyIJIAlB/wBOG0EBdC8BuOREOwFqIAFB/wAgAyASaiIJQQAgCUEAShsiCSAJQf8AThtBAXQuAbjmRCIHOwFoIAFB/wAgAyAIaiIJQQAgCUEAShsiCSAJQf8AThtBAXQvAbjmRDsBYCABQf8AIAIgA2oiCUEAIAlBAEobIgggCEH/AE4bQQF0LwG45kRBAXQ7AWQgAUH/ACADIA5qIgNBACADQQBKGyIDIANB/wBOG0EBdC4BuOREQZsBbEHkAG0iAzsBZiADwUEHTARAIAFBCDsBZgsgB0GFAUgNACABQYQBOwFoCyABLQCTAUHyAUcNAQtBACEVQQAhEgwHCwJAAn8gAS0AKEUEQEETIQ5BExBxIgZFDQMgBkEPakGrrcYAKAAANgAAIAZBnK3GAP0AAAD9CwAAIAQgBjYCzAwgBEETNgLIDCAENQDJDCJ5IAQxAM8MQjCGIAQzAM0MQiCGhIQiekIYiKchEiB5pyEIIHpCCIinDAELIBVBARC5ARogBEHIDGpBACEKIAFB8ABqIQ1BoM/GACEJQZjNxgAhEANAIAkhESAKIQcgECEJQSEhFANAQfx+IRkDQCANIAktAAAQmQUEQCANQQgQuQEhBSABKALwBCAHaiAZakGGAWogBToAAAsgDSAJQQFqLQAAEJkFBEAgDUEIELkBIQUgASgC8AQgB2ogGWpBigFqIAU6AAALIA0gCUECai0AABCZBQRAIA1BCBC5ASEFIAEoAvAEIAdqIBlqQY4BaiAFOgAACyANIAlBA2otAAAQmQUEQCANQQgQuQEhBSABKALwBCAHaiAZakGSAWogBToAAAsgDSAJQQRqLQAAEJkFBEAgDUEIELkBIQUgASgC8AQgB2ogGWpBlgFqIAU6AAALIA0gCUEFai0AABCZBQRAIA1BCBC5ASEFIAEoAvAEIAdqIBlqQZoBaiAFOgAACyANIAlBBmotAAAQmQUEQCANQQgQuQEhBSABKALwBCAHaiAZakGeAWogBToAAAsgDSAJQQdqLQAAEJkFBEAgDUEIELkBIQUgASgC8AQgB2ogGWpBogFqIAU6AAALIA0gCUEIai0AABCZBQRAIA1BCBC5ASEFIAEoAvAEIAdqIBlqQaYBaiAFOgAACyANIAlBCWotAAAQmQUEQCANQQgQuQEhBSABKALwBCAHaiAZakGqAWogBToAAAsgDSAJQQpqLQAAEJkFBEAgDUEIELkBIQUgASgC8AQgB2ogGWpBrgFqIAU6AAALIAlBC2ohCSAZQSxqIhkNAAsgB0GEAWohByAQIBRqIQkgFEEhakGIAiAUQYgCRyIZGyEUIBkNAAsgCkGgCGohCiARQYgCaiEJIBEiEEG41cYARw0AC0EPQR0gAS0AkwFB8gFGGzoAACAELQDIDCIJQR1HBEAgBDUAzQwieSAEQdMMajEAAEIwhiAEQdEMajMAAEIghoSEInpCGIinIRIgekIIiKchFSAEKALUDCEOIAQtAMwMIQMgBC8BygwhAiAELQDJDCEHIHmnIQggCSELDAkLIBVBARC5AUH/AXEiB0EBRgRAIBVBCBC5ASEDCyABIAM6AIEFIAEgB0EBRjoAgAUgAS0AkwFB8gFGDQcgAS0AKA0BIAFBADoAqAVBEyEOQRMQcSIGRQ0CIAZBD2pBq63GACgAADYAACAGQZytxgD9AAAA/QsAACAEIAY2AswMIARBEzYCyAwgBDUAyQwieSAEMQDPDEIwhiAEMwDNDEIghoSEInpCGIinIRIgeachCCB6QgiIpwshFUEYIQtBEyEDDAcLIAEvAaIFIkpFDQMgAUEwaiE6IAFBkARqIRkgAUH0BGohFyABQZYFaiEcIAFBhgVqIUcgAUGCBWohJyAEQZENaiFLIARBiA1qIRggBEH/DGohTCAEQfYMaiFNIARB7QxqIU4gBEHkDGohTyAEQdsMaiEoIARBoRlqIVAgBEGYGWohUSAEQY8ZaiFSIARBhhlqIVMgBEH9GGohVCAEQfQYaiFVIARB6xhqIVYgBEGZD2ohKSAEQYQPaiEqIARB7w5qISsgBEHaDmohLCAEQcUOaiEtIARBsA5qIRMgBEGbDmohLiAEQYYOaiEvIARB8Q1qITAgBEHcDWohMSAEQccNaiEyIARBsg1qITMgBEGdDWohNCAEQfMMaiE1IARB0gxqIVcgBEHiGGohWCAEQegLaiFZIARB6AlqIVogBEGoC2ohICAEQagJaiEhIARB6ApqIV4gBEHoCGohXyAEQagKaiFgIARBqAhqIWEgBEHeDGohNiAEQegHaiFiIARBqAdqIWMgBEHoBmohZCAEQagGaiFlIARB6AVqIWYgBEGoBWohZyAEQegEaiFoIARBqARqIWkgBEHoA2ohaiAEQagDaiFrIARB6AJqIWwgBEGoAmohbSAEQegBaiFuIARBqAFqIW8gBEHoAGohcCAEQThqIXEgBEEoakECciFIIARB2AxqITwgBEHIDGpBAnIhPSAEQR1qIT4gBEEOaiEUIARBzwxqIQwgBEHMDGohciAEQckMaiI/QRVqIXMgBEGIGWohdEEBIQNBACEQA0AgAS0ApwUiC0UNAiADIREgJ/0MAAAAAAAAAAAAAAAAAAAAAP0LAQAgJ0EWakIANwEAICdBEGpCADcBACAQIAtwIQ8CQCABLwGgBSJ1RQ0AQQEhN0EAISZBACEKAkACQAJAAkACQAJAAkACQANAIHNCADcAACA/QRBqQgA3AAAgP/0MAAAAAAAAAAAAAAAAAAAAAP0LAAACQCABLQCkBUEBRw0AIAEtAKUFQQFxRQ0AIAQgFSAXQQMgFygCABDIBDoA5QwLIAQgAS0AgAUEfyAVIAEtAIEFEJkFBUEACzoAyAwCQAJAAkACQAJ/AkACQCABLQAoDQAgFSABLQCoBRCZBUUEQEEAIQlBACELIAEtACgNAQwCC0EUIThBFBBxIhpFDRIgGkEQakGYsMYAKAAANgAAIBpBiLDGAP0AAAD9CwAAQRQhOUEYDAILIBVBnLDGAEEEQYSDxAQQyAQhAyAEQRQ6ACggBCADQf8BcSIJOgApIAlBBU8EQCAJIQZBFAwCCyAEQShqEKsEIAQgCToAywxBAiEDAkACQAJAAkACQAJAAkACQCAJQQFrDgQDAAEEAgtBAyEDDAILQQEhAwwBC0EAIQMLIEcgA0GBgoQIbCIDNgEAIDwgAzYAAAwBC0EAIQ4gCkEebCEIIAwhCwNAIAogASgCpAQiAk8NAiAVIAEoAqAEIAhqLQAQQegCbCAOIEdqIgctAABBJGxqIgNBvLDGAGpBCSADKAC8sEYQyAQhAyAEQRU6ACggBCADQf8BcSIDOgApIANBCUsEQCADIQZBFQwGCyAEQShqEKsEIAtBA2tBCiADIANBCk8bIgM6AAAgCiABKAKkBCICTw0DIAEoAqAEIAhqIAM6ABAgByADOgAAIAogASgCpAQiAk8NAiAVIAEoAqAEIAhqLQARQegCbCADQSRsaiIDQbywxgBqQQkgAygAvLBGEMgEIQMgBEEVOgAoIAQgA0H/AXEiAzoAKSADQQlLBEAgAyEGQRUMBgsgBEEoahCrBCALQQJrQQogAyADQQpPGyIDOgAAIAogASgCpAQiAk8NAyABKAKgBCAIaiADOgARIAcgAzoAACAKIAEoAqQEIgJPDQIgFSABKAKgBCAIai0AEkHoAmwgA0EkbGoiA0G8sMYAakEJIAMoALywRhDIBCEDIARBFToAKCAEIANB/wFxIgM6ACkgA0EJSwRAIAMhBkEVDAYLIARBKGoQqwQgC0EBa0EKIAMgA0EKTxsiAzoAACAKIAEoAqQEIgJPDQMgASgCoAQgCGogAzoAEiAHIAM6AAAgCiABKAKkBCICTw0CIBUgASgCoAQgCGotABNB6AJsIANBJGxqIgNBvLDGAGpBCSADKAC8sEYQyAQhAyAEQRU6ACggBCADQf8BcSIDOgApIANBCUsEQCADIQZBFQwGCyAEQShqEKsEIAtBCiADIANBCk8bIgM6AAAgCiABKAKkBCICTw0DIAEoAqAEIAhqIAM6ABMgByADOgAAIAtBBGohCyAOQQFqIg5BBEkNAAsLIBVB3MzGAEEDQYCDuAQQyAQhAyAEQRY6ACggBCADQf8BcSILOgApIAtBA0sEQCALIQZBFgwECyAEQShqEKsEIAQgCzoAygwMAgsgCiACQaywxgAQjAcACyAKIAJBzMzGABCMBwwRCyAKIAEoAqQEIgNPDQEgCkEebCIFIAEoAqAEaiALOgACIAogASgCpAQiA08NAiABKAKgBCAFaiAJOgADIAogASgCpAQiA08NAyABKAKgBCAFaiBy/QAAAP0LAAQgAS0AkwFB8gFHDQRBDwshAyAAIDg2AhAgACAaNgIMIAAgOTYCCCAAIEA7AQYgACAGOgAFIAAgAzoABCAAQYCAgIB4NgIADBYLIAogA0HozMYAEIwHAAsgCiADQfjMxgAQjAcACyAKIANBiM3GABCMBwALIARBDGogBEHKDGotAAA6AAAgBCAELwDIDDsBCiAEICgpAAA3A9gYIAQgKEEHaigAADYA3xggBEHPDGooAAAhOSAELQDMDCEGIAQvAM0MIUAgBCgA0wwhGiAEKADXDCE4ID5BB2ogBCgA3xg2AAAgPiAEKQPYGDcAACAEIDg2ABkgBCAaNgAVIAQgOTYAESAEIEA7AA8gBCAGOgAOIAQgCToADQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBC0ACkEBcUUEQCAELQAnIQsgBEHIDGpBAEGADPwLAAJAAkACQAJAIAlBBEcEQCAKIAEoAqQEIgNPDQEgASgCoAQgBWotABQhAyABLQCWBSECIHT9DAAAAAAAAAAAAAAAAAAAAAD9CwMAIARB+Bhq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAEQegYav0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgBP0MAAAAAAAAAAAAAAAAAAAAAP0LA9gYIAtBBE8NAiAEQcgYaiABIARB2BhqIA9BASACIANqQf8BcSA6IAtBBHRqIgMvAQQgAy8BBhDqASAELQDJGCEHIAQtAMgYIgJBHUYNAyAEIAQpAcoYNwO4DCAEIARB0BhqKQEANwG+DAwcC0EDIQ4gC0EDSw0DDAULIAogA0GgrsYAEIwHAAsgC0EEQbCuxgAQjAcACyABIAc6AJYFIAEoAqQEIgMgCksEQCABKAKgBCAFaiAHOgAUIARB2BhqIgMgAygCACICIAMoAjAiCGsiDiADKAIQIgcgAygCICINayISazYCMCADIAIgCGoiAiAHIA1qIghrNgIgIAMgDiASajYCECADIAIgCGo2AgAgAyADKAIkIgIgAygCFCIIaiIOIAMoAjQiByADKAIEIg1qIhJqNgIEIAMgDSAHayIHIAggAmsiAms2AjQgAyACIAdqNgIUIAMgEiAOazYCJCADIAMoAigiCCADKAIYIg5qIgcgAygCOCINIAMoAggiEmoiFmoiAjYCCCADIBIgDWsiDSAOIAhrIghrNgI4IAMgFiAHazYCKCADIAggDWo2AhggAyADKAIsIg4gAygCHCIHaiINIAMoAjwiEiADKAIMIhZqIiJqIgg2AgwgAyAHIA5rIgcgFiASayISaiIONgIcIAMgEiAHazYCPCADICIgDWsiBzYCLCADIAggAygCACINakEDaiISIAIgAygCBCIWaiIia0EDdTYCCCADIA0gCGtBA2oiCCAWIAJrIgJrQQN1NgIMIAMgAiAIakEDdTYCBCADIBIgImpBA3U2AgAgAyADKAIQIgIgDmtBA2oiCCADKAIUIg0gAygCGCISayIWa0EDdTYCHCADIAIgDmpBA2oiAiANIBJqIg5rQQN1NgIYIAMgCCAWakEDdTYCFCADIAIgDmpBA3U2AhAgAyADKAIgIgIgB2tBA2oiCCADKAIkIg4gAygCKCINayISa0EDdTYCLCADIAIgB2pBA2oiAiANIA5qIg5rQQN1NgIoIAMgCCASakEDdTYCJCADIAIgDmpBA3U2AiAgAyADKAIwIgIgAygCPCIIa0EDaiIOIAMoAjQiByADKAI4Ig1rIhJrQQN1NgI8IAMgAiAIakEDaiICIAcgDWoiCGtBA3U2AjggAyAOIBJqQQN1NgI0IAMgAiAIakEDdTYCMCAEIAQoAtgYNgLIDCAEIAQoAtwYNgKIDSAEIAQoAuAYNgLIDSAEIAQoAuQYNgKIDiAEIAQoAugYNgLIDiAEIAQoAuwYNgKIDyAEIAQoAvAYNgLIDyAEIAQoAvQYNgKIECAEIAQoAvgYNgLIECAEIAQoAvwYNgKIESAEIAQoAoAZNgLIESAEIAQoAoQZNgKIEiAEIAQoAogZNgLIEiAEIAQoAowZNgKIEyAEIAQoApAZNgLIEyAEIAQoApQZNgKIFEEAIQ4MAwsgCiADQcCuxgAQjAcACyAKIAEoAqQEIgJPDQ0gC0EEQaivxgAQjAcACwJAIAlBBEYNACABQQA6AJYFIAEoAqQEIgMgCksEQCABKAKgBCAFakEAOgAUDAELIAogA0GIqcYAEIwHAAsgAUEAOgCXBQJAIAogASgCpAQiC08NACABKAKgBCAFakEAOgAVIAFBADoAmAUgCiABKAKkBCILTw0AIAEoAqAEIAVqQQA6ABYgAUEAOgCZBSAKIAEoAqQEIgtPDQAgASgCoAQgBWpBADoAFyABQQA6AJoFIAogASgCpAQiC08NACABKAKgBCAFakEAOgAYIAFBADoAmwUgCiABKAKkBCILTw0AIAEoAqAEIAVqQQA6ABkgAUEAOgCcBSAKIAEoAqQEIgtPDQAgASgCoAQgBWpBADoAGiABQQA6AJ0FIAogASgCpAQiC08NACABKAKgBCAFakEAOgAbIAFBADoAngUgCiABKAKkBCILTw0AIAEoAqAEIAVqQQA6ABwgBEEoakEAQYAM/AsADAILIAogC0GoqcYAEIwHAAsgOiALQQR0aiEDQQAhDUGXBSESIAQtAAshCANAIAogASgCpAQiAk8NDCAEQdgYaiABIARByAxqIA1qIgsgDyAOIAEoAqAEIAVqLQAVIAEgEmoiIi0AAGpB/wFxIAMvAQAgAy8BAhDqASAELQDYGCICQR1HDRUgBC0A2RghAgJ/AkAgCygCAARAIAsQmgJBASEIIAJBAXENAUEADAILQQAgAkEBcUUNARogCxCaAgtBASEIQQELIRYgCiABKAKkBCICTw0FIAEoAqAEIAVqIBY6ABUgCiABKAKkBCICTw0MIARB2BhqIAEgC0FAayIHIA8gDiABKAKgBCAFai0AFiAWakH/AXEgAy8BACADLwECEOoBIAQtANgYIgJBHUcNFSAELQDZGCECAn8CQCAHKAIABEAgBxCaAkEBIQggAkEBcQ0BQQAMAgtBACACQQFxRQ0BGiAHEJoCC0EBIQhBAQshFiAKIAEoAqQEIgJPDQUgASgCoAQgBWogFjoAFiAKIAEoAqQEIgJPDQwgBEHYGGogASALQYABaiIHIA8gDiABKAKgBCAFai0AFyAWakH/AXEgAy8BACADLwECEOoBIAQtANgYIgJBHUcNFSAELQDZGCECAn8CQCAHKAIABEAgBxCaAkEBIQggAkEBcQ0BQQAMAgtBACACQQFxRQ0BGiAHEJoCC0EBIQhBAQshByAKIAEoAqQEIgJPDQUgASgCoAQgBWogBzoAFyAKIAEoAqQEIgJPDQwgBEHYGGogASALQcABaiILIA8gDiABKAKgBCAFai0AGCAHakH/AXEgAy8BACADLwECEOoBIAQtANgYIgJBHUcNFSAELQDZGCECAn8CQCALKAIABEAgCxCaAkEBIQggAkEBcQ0BQQAMAgtBACACQQFxRQ0BGiALEJoCC0EBIQhBAQshCyAKIAEoAqQEIgJPDQUgASgCoAQgBWogCzoAGCAiIAs6AAAgDUGAAmohDSASQZYFayASQQFqIRJBBEkNAAtBeCENA0ACQCANQdiuxgBqKAIAIgtBCE0EfyAKIAEoAqQEIgJPDQQgBEHYGGogASAEQcgMakGACEGACiALQQVGIgcbaiIOIA9BAiABKAKgBCAFaiALai0AFCALIBxqIiItAABqQf8BcSADLwEIIAMvAQoQ6gEgBC0A2BgiAkEdRw0XIAQtANkYIQICfwJAIA4oAgAEQCAOEJoCQQEhCCACQQFxDQFBAAwCC0EAIAJBAXFFDQEaIA4QmgILQQEhCEEBCyEWIAogASgCpAQiAk8NBiABKAKgBCAFaiALaiAWOgAUIAogASgCpAQiAk8NBCALQQFqIQ5BCSALayICQQAgAkEJTRtBAUYNBSAEQdgYaiABIARByAxqQcAIQcAKIAcbaiISIA9BAiABKAKgBCAFaiAOai0AFCAWakH/AXEgAy8BCCADLwEKEOoBIAQtANgYIgJBHUcNFyAELQDZGCECAn8CQCASKAIABEAgEhCaAkEBIQggAkEBcQ0BQQAMAgtBACACQQFxRQ0BGiASEJoCC0EBIQhBAQshEiAKIAEoAqQEIgJPDQYgASgCoAQgBWogDmogEjoAFCAiIBI6AAAgC0EIRw0BQQkFIAsLQQlB2K7GABCMBwALIAogASgCpAQiAk8NAiAEQdgYaiABIARByAxqQYAJQYALIAcbaiISIA9BAiABKAKgBCAFaiALai0AFCAOIBxqIhYtAABqQf8BcSADLwEIIAMvAQoQ6gEgBC0A2BgiAkEdRw0VIAQtANkYIQICfwJAIBIoAgAEQCASEJoCQQEhCCACQQFxDQFBAAwCC0EAIAJBAXFFDQEaIBIQmgILQQEhCEEBCyESIAogASgCpAQiAk8NBCABKAKgBCAFaiALaiASOgAUIAogASgCpAQiAk8NAiAEQdgYaiABIARByAxqQcAJQcALIAcbaiILIA9BAiABKAKgBCAFaiAOai0AFCASakH/AXEgAy8BCCADLwEKEOoBIAQtANgYIgJBHUcNFSAELQDZGCECAn8CQCALKAIABEAgCxCaAkEBIQggAkEBcQ0BQQAMAgtBACACQQFxRQ0BGiALEJoCC0EBIQhBAQshCyAKIAEoAqQEIgJPDQQgASgCoAQgBWogDmogCzoAFCAWIAs6AAAgDUEEaiINDQALIAQgCDoACyAEID0pAQA3A7gMIAQgPUEGaikBADcBvgwgBC8ByAwhAyBxIDxB8Av8CgAAIAQgBCkDuAw3A6gMIAQgBCkBvgw3Aa4MIEhBBmogBCkBrgw3AQAgSCAEKQOoDDcBACAEIAM7ASgLIARByAxqIQcgAS8BoAUiJCEFIAEoAqwEInYhDiABKAKwBCIiIQIgASgCuAQiDSELIAEoArwEIkEhEiMAQfACayIDJAAgA0EIakEAQeQC/AsAAkAgEEUEQCADQRhqQf/+/fsHNgIAIANBEGpC//79+/fv37//ADcDACADQv/+/fv379+//wA3AwgMAQsgCkEEdCIIIAJNBEACQCACIAhGDQBBECACIAhrIhYgFkEQTxsiFkUNACADQQhqIAggDmogFvwKAAALAkAgBUEBayAKRgRAIAhBD3IiCCACTw0BIAMgCCAOai0AAEGBgoQIbDYAGAwDCyAIQRBqIgggAk0EQCACIAhGDQNBBCACIAhrIgIgAkEETxsiAkUNAyADQRhqIAggDmogAvwKAAAMAwsgCCACIAJB+OPEABDqBwALIAggAkGY5MQAEIwHAAsgCCACIAJBqOTEABDqBwALIAMgAy0AGCICOgCUAiADIAI6AMABIAMgAjoAbCADIAMtABkiAjoAlQIgAyACOgDBASADIAI6AG0gAyADLQAaIgI6AJYCIAMgAjoAwgEgAyACOgBuIAMgAy0AGyICOgCXAiADIAI6AMMBIAMgAjoAbyAHAn8gCkUEQCADQYEBOgDXAiADQYEBOgDCAiADQYEBOgCtAiADQYEBOgCYAiADQYEBOgCDAiADQYEBOgDuASADQYEBOgDZASADQYEBOgDEASADQYEBOgCvASADQYEBOgCaASADQYEBOgCFASADQYEBOgBwIANBgQE6AFsgA0GBAToARiADQYEBOgAxIANBgQE6ABxBgX9B/wAgEBsMAQsCQCASBEAgEkEBayICRQ0BIAMgCy0AAToAHCACQQFGDQEgAyALLQACOgAxIAJBAkYNASADIAstAAM6AEYgAkEDRg0BIAMgCy0ABDoAWyACQQRGDQEgAyALLQAFOgBwIAJBBUYNASADIAstAAY6AIUBIAJBBkYNASADIAstAAc6AJoBIAJBB0YNASADIAstAAg6AK8BIAJBCEYNASADIAstAAk6AMQBIAJBCUYNASADIAstAAo6ANkBIAJBCkYNASADIAstAAs6AO4BIAJBC0YNASADIAstAAw6AIMCIAJBDEYNASADIAstAA06AJgCIAJBDUYNASADIAstAA46AK0CIAJBDkYNASADIAstAA86AMICIAJBD0YNASADIAstABA6ANcCDAELQQFBAEEAQYjkxAAQ6gcAC0GBf0H/ACAQGyAQRQ0AGiALLQAACzoAACAHQQFqIANBCGpB5AL8CgAAIANB8AJqJAAgCUEBaw4EBAUGBwgLIAogAkHorsYAEIwHAAsgDkEJQfiuxgAQjAcACyAKIAJBiK/GABCMBwALIAogAkG4r8YAEIwHAAtBsH0hCwNAIARByAxqIAtqIgNB5gJqIAQtAMkMOgAAIANB5wJqIAQtAMoMOgAAIANB6AJqIAQtAMsMOgAAIANB6QJqIAQtAMwMOgAAIANB6gJqIAQtAM0MOgAAIANB6wJqIAQtAM4MOgAAIANB7AJqIAQtAM8MOgAAIANB7QJqIAQtANAMOgAAIANB7gJqIAQtANEMOgAAIANB7wJqIAQtANIMOgAAIANB8AJqIAQtANMMOgAAIANB8QJqIAQtANQMOgAAIANB8gJqIAQtANUMOgAAIANB8wJqIAQtANYMOgAAIANB9AJqIAQtANcMOgAAIANB9QJqIAQtANgMOgAAIANB9gJqIAQtANkMOgAAIANB9wJqIAQtANoMOgAAIANB+AJqIAQtANsMOgAAIANB+QJqIAQtANwMOgAAIAtBFWoiCw0ACwwECyA2QRBqIAQtAN0MIgNBgYKECGw2AAAgNUEQaiAELQDyDCILQYGChAhsNgAAIBhBEGogBC0Ahw0iCUGBgoQIbDYAACA0QRBqIAQtAJwNIgJBgYKECGw2AAAgM0EQaiAELQCxDSIIQYGChAhsNgAAIDYgA61CgYKEiJCgwIABfiJ5NwAAIDZBCGogeTcAACA1IAutQoGChIiQoMCAAX4ieTcAACA1QQhqIHk3AAAgGCAJrUKBgoSIkKDAgAF+Ink3AAAgGEEIaiB5NwAAIDQgAq1CgYKEiJCgwIABfiJ5NwAAIDRBCGogeTcAACAzQQhqIAitQoGChIiQoMCAAX4ieTcAACAzIHk3AAAgMkEQaiAELQDGDSIDQYGChAhsNgAAIDFBEGogBC0A2w0iC0GBgoQIbDYAACAwQRBqIAQtAPANIglBgYKECGw2AAAgL0EQaiAELQCFDiICQYGChAhsNgAAIC5BEGogBC0Amg4iCEGBgoQIbDYAACAyIAOtQoGChIiQoMCAAX4ieTcAACAyQQhqIHk3AAAgMSALrUKBgoSIkKDAgAF+Ink3AAAgMUEIaiB5NwAAIDAgCa1CgYKEiJCgwIABfiJ5NwAAIDBBCGogeTcAACAvIAKtQoGChIiQoMCAAX4ieTcAACAvQQhqIHk3AAAgLiAIrUKBgoSIkKDAgAF+Ink3AAAgLkEIaiB5NwAAIBNBEGogBC0Arw4iA0GBgoQIbDYAACAtQRBqIAQtAMQOIgtBgYKECGw2AAAgLEEQaiAELQDZDiIJQYGChAhsNgAAICtBEGogBC0A7g4iAkGBgoQIbDYAACAqQRBqIAQtAIMPIghBgYKECGw2AAAgE0EIaiADrUKBgoSIkKDAgAF+Ink3AAAgEyB5NwAAIC1BCGogC61CgYKEiJCgwIABfiJ5NwAAIC0geTcAACAsQQhqIAmtQoGChIiQoMCAAX4ieTcAACAsIHk3AAAgK0EIaiACrUKBgoSIkKDAgAF+Ink3AAAgKyB5NwAAICpBCGogCK1CgYKEiJCgwIABfiJ5NwAAICogeTcAACApQRBqIAQtAJgPIgNBgYKECGw2AAAgKUEIaiADrUKBgoSIkKDAgAF+Ink3AAAgKSB5NwAADAMLIARByAxqQeUCQRBBAUEBQRUQ4gIMAgsgFCEDIARBKGohC0EAIQkjAEEQayIOJAAgBEHIDGoiQiEFA0AgCSICQQFqIQkgAkECdEEBciFDQXAhEiADIQIgCyEIA0AgEkERaiFEAkACQAJAAkACQAJAAkACQAJAAkACQCACLQAAQQFrDgkBAgMEBQYHCAkACyAFIBJqIgdB5QBqIAdB5ABqLQAAIAdBzwBqLQAAIAdBOmotAAAgB0Elai0AACAHQRRqLQAAIAdBE2otAAAgB0ERai0AACAHQRJqLQAAampqampqakEEakH4/wNxQQN2QYGChAhsIhY2AAAgB0HQAGogFjYAACAHQTtqIBY2AAAgB0EmaiAWNgAADAkLIEJB5QJBBCBEIENBFRDiAgwICyAFIBJqIgdB5QBqIAdBFWotAAAgB0ETai0AACIWQQJqIhsgB0EUai0AACIdQQF0ampBFnRBgICAeHEgHSAHQRJqLQAAIh5BAmoiIyAWQQF0ampBDnRBgID8D3FqIBsgB0ERai0AACIWakEGdCAeQQd0akGA/gNxciAHQRBqLQAAIBZBAXRqICNqQQJ2aiIWNgAAIAdB0ABqIBY2AAAgB0E7aiAWNgAAIAdBJmogFjYAAAwHCyAFIBJqIgdB5QBqIAdBzwBqLQAAIhtBAmoiHSAHQeQAai0AACIWIBZBAXRqakECdkGBgoQIbDYAACAHQdAAaiAWIAdBOmotAAAiHkECaiIjaiAbQQF0akECdkGBgoQIbDYAACAHQTtqIB0gB0Elai0AACIWaiAeQQF0akECdkGBgoQIbDYAACAHQSZqICMgB0EQai0AAGogFkEBdGpBAnZBgYKECGw2AAAMBgsgBSASaiIHQRhqLQAAIRYgB0EXai0AACEbIAdBEWotAAAhOyAHQRJqLQAAIR0gB0ETai0AACEeIA4gB0EWai0AACIjIAdBFGotAAAiRkECaiJbIAdBFWotAAAiJUEBdGpqQQJ2OgADIA4gJSAeQQJqIlwgRkEBdGpqQQJ2OgACIA4gHSAeQQF0aiBbakECdjoAASAOIDsgHUEBdGogXGpBAnY6AAAgB0EmaiAOKAIANgAAIA4gJSAbQQJqIh1qICNBAXRqQQJ2OgAEIAdBO2ogDigAATYAACAOIBYgI2ogG0EBdGpBAmpBAnY6AAUgB0HQAGogDigBAjYAACAOIBYgHWogFkEBdGpBAnY6AAYgB0HlAGogDigAAzYAAAwFCyAFIBJqIgdBFGotAAAhOyAHQRNqLQAAIRYgB0HkAGotAAAhRiAHQc8Aai0AACEbIAdBOmotAAAhHSAHQSVqLQAAIR4gDiAHQRJqLQAAIltBAmoiXCAHQRBqLQAAIiNqIAdBEWotAAAiJUEBdGpBAnY6AAwgDiAlIB5BAmoidyAjQQF0ampBAnY6AAsgDiAjIB1BAmoieCAeQQF0ampBAnY6AAogDiAbIB1BAXRqIHdqQQJ2OgAJIAdB0ABqIA4oAAk2AAAgDiBGIBtBAXRqIHhqQQJ2OgAIIAdB5QBqIA4oAgg2AAAgDiA7IFwgFkEBdGpqQQJ2OgAOIA4gFiAlIFtBAXRqakECakECdjoADSAHQSZqIA4oAAs2AAAgB0E7aiAOKAEKNgAADAQLIAUgEmoiB0HRAGogB0EQai0AACIdIAdBEWotAAAiFmpBAWpBAXYiGzoAACAHQSZqIBs6AAAgB0HSAGogFiAHQRJqLQAAIhtqQQFqQQF2Ih46AAAgB0EnaiAeOgAAIAdB5QBqIAdBJWotAAAiHiAHQc8Aai0AACAHQTpqLQAAIiNBAXRqakECakECdjoAACAHQeYAaiAWIB4gHUEBdGpqQQJqQQJ2IiU6AAAgB0HQAGogHSAjIB5BAXRqakECakECdjoAACAHQTtqICU6AAAgB0HnAGogGyAdIBZBAXRqakECakECdiIdOgAAIAdBPGogHToAACAHQegAaiAHQRNqLQAAIh0gFiAbQQF0ampBAmpBAnYiHjoAACAHQRRqLQAAIRYgB0HTAGogGyAdakEBakEBdiIjOgAAIAdBPWogHjoAACAHQShqICM6AAAgB0E+aiAWIBsgHUEBdGpqQQJqQQJ2OgAAIAdBKWogFiAdakEBakEBdjoAAAwDCyAFIBJqIgdB0ABqIAdBEmotAAAiHSAHQRNqLQAAIhZqQQFqQQF2Ihs6AAAgB0EmaiAdIAdBEWotAAAiI2pBAWpBAXY6AAAgB0EnaiAbOgAAIAdB0QBqIBYgB0EUai0AACIbakEBakEBdiIeOgAAIAdBKGogHjoAACAHQdIAaiAbIAdBFWotAAAiHmpBAWpBAXYiJToAACAHQeUAaiAbIB1qIBZBAXRqQQJqQQJ2Ijs6AAAgB0E8aiA7OgAAIAdB5gBqIBYgHkECaiI7IBtBAXRqakECdiJGOgAAIAdBPWogRjoAACAHQTtqICMgFiAdQQF0ampBAmpBAnY6AAAgB0EYai0AACEjIAdBF2otAAAhFiAHQecAaiAHQRZqLQAAIh0gGyAeQQF0ampBAmpBAnYiGzoAACAHQSlqICU6AAAgB0HoAGogIyAdIBZBAXRqakECakECdjoAACAHQdMAaiAWIB1BAXQgO2pqQQJ2OgAAIAdBPmogGzoAAAwCCyAFIBJqIgdB5QBqIAdB5ABqLQAAIiMgB0HPAGotAAAiHWpBAWpBAXY6AAAgB0HnAGogHSAHQTpqLQAAIhZqQQFqQQF2Ihs6AAAgB0HQAGogGzoAACAHQdIAaiAWIAdBJWotAAAiG2pBAWpBAXYiHjoAACAHQTtqIB46AAAgB0E9aiAbIAdBEGotAAAiHmpBAWpBAXYiJToAACAHQeYAaiAWICMgHUEBdGpqQQJqQQJ2OgAAIAdB6ABqIBsgHSAWQQF0ampBAmpBAnYiHToAACAHQdEAaiAdOgAAIAdB0wBqIB4gFiAbQQF0ampBAmpBAnYiFjoAACAHQTxqIBY6AAAgB0ETai0AACEjIAdBEmotAAAhFiAHQT5qIAdBEWotAAAiHSAbIB5BAXRqakECakECdiIbOgAAIAdBJmogJToAACAHQSlqICMgHSAWQQF0ampBAmpBAnY6AAAgB0EoaiAWIB4gHUEBdGpqQQJqQQJ2OgAAIAdBJ2ogGzoAAAwBCyAFIBJqIgdB6ABqIAdB5ABqLQAAIhY6AAAgB0HnAGogFjoAACAHQeYAaiAWOgAAIAdB5QBqIBY6AAAgB0HTAGogFjoAACAHQdIAaiAWOgAAIAdBO2ogB0E6ai0AACIbIAdBzwBqLQAAIh1qQQFqQQF2Ih46AAAgB0EoaiAeOgAAIAdBJmogGyAHQSVqLQAAIh5qQQFqQQF2OgAAIAdB0ABqIBYgHWoiI0EBakEBdiIlOgAAIAdBPWogJToAACAHQTxqIBYgG2ogHUEBdGpBAmpBAnYiJToAACAHQSlqICU6AAAgB0HRAGogIyAWQQF0akECakECdiIWOgAAIAdBPmogFjoAACAHQSdqIB0gHiAbQQF0ampBAmpBAnY6AAALIEJB5QIgCCBDIERBFRDXAiACQQFqIQIgCEFAayEIIBJBBGoiEg0ACyADQQRqIQMgC0GAAmohCyAFQdQAaiEFIAlBBEcNAAsgDkEQaiQADAMLIARByAxqQeUCQRBBFSAQQQBHIApBAEcQgwQLIARByAxqIgNB5QIgBEEoakEBQQFBFRDXAiADQeUCIHBBAUEFQRUQ1wIgA0HlAiBvQQFBCUEVENcCIANB5QIgbkEBQQ1BFRDXAiADQeUCIG1BBUEBQRUQ1wIgA0HlAiBsQQVBBUEVENcCIANB5QIga0EFQQlBFRDXAiADQeUCIGpBBUENQRUQ1wIgA0HlAiBpQQlBAUEVENcCIANB5QIgaEEJQQVBFRDXAiADQeUCIGdBCUEJQRUQ1wIgA0HlAiBmQQlBDUEVENcCIANB5QIgZUENQQFBFRDXAiADQeUCIGRBDUEFQRUQ1wIgA0HlAiBjQQ1BCUEVENcCIANB5QIgYkENQQ1BFRDXAgwBCyAKIAJBmK/GABCMBwALAkAgQQRAIA0gBC0A2Aw6AAAgQUEBayIDQQ9NBEBBAEEQIANB0K3GABDqBwALIA0gBC0A7Qw6AAEgDSAELQCCDToAAiANIAQtAJcNOgADIA0gBC0ArA06AAQgDSAELQDBDToABSANIAQtANYNOgAGIA0gBC0A6w06AAcgDSAELQCADjoACCANIAQtAJUOOgAJIA0gBC0Aqg46AAogDSAELQC/DjoACyANIAQtANQOOgAMIA0gBC0A6Q46AA0gDSAELQD+DjoADiANIAQtAJMPOgAPIA0gBC0AqA86ABAgIiAKQQR0IgNJDQggIiADayILQQ9LDQFBAEEQIAtB4K3GABDqBwALQQBBAEHArcYAEIwHAAsgAyB2aiIDIAQtAJkPOgAAIAMgBC0Amg86AAEgAyAELQCbDzoAAiADIAQtAJwPOgADIAMgBC0AnQ86AAQgAyAELQCeDzoABSADIAQtAJ8POgAGIAMgBC0AoA86AAcgAyAELQChDzoACCADIAQtAKIPOgAJIAMgBC0Aow86AAogAyAELQCkDzoACyADIAQtAKUPOgAMIAMgBC0Apg86AA0gAyAELQCnDzoADiADIAQtAKgPOgAPICRBBHQhDiABKAIIIgkgCiAkIEVsakEEdCIHayEIIAEoAgQhDUEAIRJBACECAkADQCAHIAlLDQEgCEEPTQ0DIAcgDWoiAyAEQcgMaiIFIAJqIgtBFmotAAA6AAAgA0EBaiALQRdqLQAAOgAAIANBAmogC0EYai0AADoAACADQQNqIAtBGWotAAA6AAAgA0EEaiALQRpqLQAAOgAAIANBBWogC0Ebai0AADoAACADQQZqIAtBHGotAAA6AAAgA0EHaiALQR1qLQAAOgAAIANBCGogC0Eeai0AADoAACADQQlqIAtBH2otAAA6AAAgA0EKaiALQSBqLQAAOgAAIANBC2ogC0Ehai0AADoAACADQQxqIAtBImotAAA6AAAgA0ENaiALQSNqLQAAOgAAIANBDmogC0Ekai0AADoAACADQQ9qIAtBJWotAAA6AAAgCCAOayEIIAcgDmohByACQRVqIQIgEkEBaiISQRBJDQALIAEvAaAFIQkgBC0ADCEDIARB2BhqIAogECABKALEBCICIAEoAsgEIgggASgC0AQiDiABKALUBCIHELoEIAUgCiAQIAEoAtwEIg0gASgC4AQiEiABKALoBCIFIAEoAuwEIhYQugQCQAJAAkACQAJAIANBAWsOAwECAwALIARB2BhqQdEAQQhBCSAQQQBHIgMgCkEARyILEIMEIARByAxqQdEAQQhBCSADIAsQgwQMAwsgBCAELQDZGCIDOgDiGCAEIAQtANoYIgs6AOMYIAQgBC8A2xg7AOQYIAQgBCgA3Rg2AOYYIAQgAzoA6xggBCAEKADaGDYA7BggBCAELwDeGDsA8BggBCAELQDgGDoA8hggBCADOgD0GCAEIAs6APUYIAQgBC0A2xg6APYYIAQgBC0A3Bg6APcYIAQgBC8A3RgiAzsA+BggBCAELQDfGCILOgD6GCAEIAQtAOAYIiI6APsYIAQgBCkA2Rg3AP0YIAQgBCgA2Rg2AIYZIAQgAzsAihkgBCALOgCMGSAEICI6AI0ZIAQgBC0A2Rg6AI8ZIAQgBC0A2hg6AJAZIAQgBC0A2xgiAzoAkRkgBCAELQDcGDoAkhkgBCAEKADdGDYAkxkgBCAELQDZGCILOgCYGSAEIAQoANoYNgCZGSAEIAQvAN4YOwCdGSAEIAQtAOAYOgCfGSAEIAs6AKEZIAQgBC0A2hg6AKIZIAQgAzoAoxkgBCAELQDcGDoApBkgBCAELQDdGDoApRkgBCAELQDeGDoAphkgBCAELQDfGDoApxkgBCAELQDgGDoAqBkgBCAELQDJDDoA0gwgBCAELQDKDDoA0wwgBCAELQDLDDoA1AwgBCAELQDMDDoA1QwgBCAELQDNDDoA1gwgBCAELQDODDoA1wwgBCAELQDPDDoA2AwgBCAELQDQDDoA2QwgBCAELQDJDDoA2wwgBCAELQDKDDoA3AwgBCAELQDLDDoA3QwgBCAELQDMDDoA3gwgBCAELQDNDDoA3wwgBCAELQDODDoA4AwgBCAELQDPDDoA4QwgBCAELQDQDDoA4gwgBCAELQDJDDoA5AwgBCAELQDKDDoA5QwgBCAELQDLDDoA5gwgBCAELQDMDDoA5wwgBCAELQDNDDoA6AwgBCAELQDODDoA6QwgBCAELQDPDDoA6gwgBCAELQDQDDoA6wwgBCAELQDJDDoA7QwgBCAELQDKDDoA7gwgBCAELQDLDDoA7wwgBCAELQDMDDoA8AwgBCAELQDNDDoA8QwgBCAELQDODDoA8gwgBCAELQDPDDoA8wwgBCAELQDQDDoA9AwgBCAELQDJDDoA9gwgBCAELQDKDDoA9wwgBCAELQDLDDoA+AwgBCAELQDMDDoA+QwgBCAELQDNDDoA+gwgBCAELQDODDoA+wwgBCAELQDPDDoA/AwgBCAELQDQDDoA/QwgBCAELQDJDDoA/wwgBCAELQDKDDoAgA0gBCAELQDLDDoAgQ0gBCAELQDMDDoAgg0gBCAELQDNDDoAgw0gBCAELQDODDoAhA0gBCAELQDPDDoAhQ0gBCAELQDQDDoAhg0gBCAELQDJDDoAiA0gBCAELQDKDDoAiQ0gBCAELQDLDDoAig0gBCAELQDMDDoAiw0gBCAELQDNDDoAjA0gBCAELQDODDoAjQ0gBCAELQDPDDoAjg0gBCAELQDQDDoAjw0gBCAELQDJDDoAkQ0gBCAELQDKDDoAkg0gBCAELQDLDDoAkw0gBCAELQDMDDoAlA0gBCAELQDNDDoAlQ0gBCAELQDODDoAlg0gBCAELQDPDDoAlw0gBCAELQDQDDoAmA0MAgsgWCAEMQDhGEKBgoSIkKDAgAF+NwAAIFYgBDEA6hhCgYKEiJCgwIABfjcAACBVIAQxAPMYQoGChIiQoMCAAX43AAAgVCAEMQD8GEKBgoSIkKDAgAF+NwAAIFMgBDEAhRlCgYKEiJCgwIABfjcAACBSIAQxAI4ZQoGChIiQoMCAAX43AAAgUSAEMQCXGUKBgoSIkKDAgAF+NwAAIFAgBDEAoBlCgYKEiJCgwIABfjcAACBXIAQxANEMQoGChIiQoMCAAX43AAAgKCAEMQDaDEKBgoSIkKDAgAF+NwAAIE8gBDEA4wxCgYKEiJCgwIABfjcAACBOIAQxAOwMQoGChIiQoMCAAX43AAAgTSAEMQD1DEKBgoSIkKDAgAF+NwAAIEwgBDEA/gxCgYKEiJCgwIABfjcAACAYIAQxAIcNQoGChIiQoMCAAX43AAAgSyAEMQCQDUKBgoSIkKDAgAF+NwAADAELIARB2BhqQdEAQQhBAUEBQQkQ4gIgBEHIDGpB0QBBCEEBQQFBCRDiAgsgBEHYGGoiA0HRACBhQQFBAUEJENcCIARByAxqIgtB0QAgYEEBQQFBCRDXAiADQdEAIF9BAUEFQQkQ1wIgC0HRACBeQQFBBUEJENcCIANB0QAgIUEFQQFBCRDXAiALQdEAICBBBUEBQQkQ1wIgA0HRACBaQQVBBUEJENcCIAtB0QAgWUEFQQVBCRDXAiAOIAcgAiAIIAMgChCOBiAFIBYgDSASIAsgChCOBiAJIB9sIQ4gCUEDdCEWIAogCSBJbGpBA3QhAiABKAIUIgcgJmohIiABKAIgIg0gJmohGyABKAIcIR0gASgCECEeQQAhBUEAIRIDQCACIAdLDQQgDiAiaiIDQQdNDQUgAiANSw0GIA4gG2oiA0EHTQ0HIARByAxqIBJqIgNBCmotAAAhJCACIB5qIgsgBEHYGGogEmoiCUEKai0AADoAACACIB1qIgggJDoAACADQQtqLQAAISQgC0EBaiAJQQtqLQAAOgAAIAhBAWogJDoAACADQQxqLQAAISQgC0ECaiAJQQxqLQAAOgAAIAhBAmogJDoAACADQQ1qLQAAISQgC0EDaiAJQQ1qLQAAOgAAIAhBA2ogJDoAACADQQ5qLQAAISQgC0EEaiAJQQ5qLQAAOgAAIAhBBGogJDoAACADQQ9qLQAAISQgC0EFaiAJQQ9qLQAAOgAAIAhBBWogJDoAACADQRBqLQAAISQgC0EGaiAJQRBqLQAAOgAAIAhBBmogJDoAACADQRFqLQAAIQMgC0EHaiAJQRFqLQAAOgAAIAhBB2ogAzoAACAOIBZrIQ4gAiAWaiECIBJBCWohEiAFQQFqIgVBCEkNAAsgASgCmAQiAiABKAKQBEYEQEEAIQgjAEEgayILJAACQAJAQQQgGSIDKAIAIg5BAXQiCSAJQQRNGyIHrUIefiJ5QiCIUEUNACB5pyINQQBIDQAgCyAOBH8gCyAOQR5sNgIcIAsgAygCBDYCFEEBBUEACzYCGCALQQhqQQEgDSALQRRqEIUHIAsoAghBAUcNASALKAIQIQkgCygCDCEICyAIIAlBmKnGABCTCQALIAsoAgwhCSADIAc2AgAgAyAJNgIEIAtBIGokAAsgASgClAQgAkEebGoiAyAE/QABCv0LAAAgA0EWaiAEQSBqKQEANwAAIANBEGogBEEaaikBADcAACABIAJBAWo2ApgEICZBCGshJiAKQQFqIQogNyA3IHVJIgNqITcgAw0BDAoLCyAHIAkgCUGArsYAEOoHAAtBAEEQIAhB8K3GABDqBwALIAIgByAHQfivxgAQ6gcAC0EAQQggA0HIr8YAEOoHAAsgAiANIA1B6K/GABDqBwALQQBBCCADQdivxgAQ6gcACyADICIgIkGQrsYAEOoHAAsgBCAEKQHaGDcDuAwgBCAEQeAYaikBADcBvgwgBC0A2RghBwsgBCAEKQO4DDcDqAwgBCAEKQG+DDcBrgwgAEEMaiAEKQGuDDcBACAAIAQpA6gMNwEGIAAgBzoABSAAIAI6AAQgAEGAgICAeDYCAAwJC0EREHEiA0UNASADQoGDhoyYsODAgX83AAAgA0EQakGBAToAACADQQhqQoGDhoyYsODAgX83AAAgASgCtAQiCwRAIAEoArgEIAtBARCiBwsgAUERNgK8BCABIAM2ArgEIAFBETYCtARBCRBxIgNFDQEgA0KBg4aMmLDgwIF/NwAAIANBCGpBgQE6AAAgASgCzAQiCwRAIAEoAtAEIAtBARCiBwsgAUEJNgLUBCABIAM2AtAEIAFBCTYCzARBCRBxIgNFDQEgA0KBg4aMmLDgwIF/NwAAIANBCGpBgQE6AAAgASgC5AQiCwRAIAEoAugEIAtBARCiBwsgAUEJNgLsBCABIAM2AugEIAFBCTYC5AQgH0FAaiEfIElBCGohSSBFQRBqIUUgESARIEpJIgtqIQMgESEQIAsNAAsMAgsAC0H4qMYAEIIIAAsgAS8BogUiR0UNAEEAIQdBASEDA0AgAyELAkAgAS8BoAUiSEUNAEEAIQMDQCADIAcgAS8BoAVsaiIGIAEoApgEIglJBEAgBEHQDGogASgClAQgBkEebGoiBkEIav0AAAD9CwMAIARB3gxqIAZBFmopAAA3AQAgBCAGKQAANwPIDAJAAkAgBEHIDGoiCi0AHSIGQQNNBEAgAS0ALSIJRQ0CIAotAAMhDUE/IAlBACABIAZBBHRqIgYtAD4bIAYsAD1qIgZBACAGQQBKGyAJIAEtAKQFGyIGIAZBP08bIQIgAS0ApgVFDQEgASgC8AMgAmohAiANQQRHDQEgASgCgAQgAmohAgwBCyAGQQRBuNXGABCMBwALQT8gAkEAIAJBAEobIgYgBkE/ThshBiABLQAuIgkEfyAGQf8BcUECQQEgCUEESxt2IghBCSAJa0H/AXEiCSAIIAlJGwUgBgshCSABLwGgBSESAn8CQAJAIAEtAChFBEAgAkEnTA0BQQMMAwsgAkEnTA0BQQIMAgsgAkETTA0AQQIMAQsgAkEATA0BIAJBDkoLIQggEkEDdCEZIBJBBHQhDkEBIRZBASAJQf8BcSIJIAlBAU0bIgkgBkEBdGoiEEEEaiERAkACQAJAAkACQAJAAkAgDUEERgRAIANFDQMMAQsgCi0AAEUEQCAKLQABIRYgAw0BDAILQQAhFiADRQ0DCyADQQR0QQRrIg0gB0EEdCIUIA5saiECIAEoAgQhCiABKAIIIQYCQAJAAkACQAJAAkACQAJAAkAgAS0AKkUEQCACIAZLDQMgBiACayIMQQdLDQEMDwsgAiAGSw0DIAYgAmsiDEEHSw0BDA0LIAggCSARIAIgCmoQ+AIgBiANIBRBAXIgDmxqIgJJDQEgBiACayIMQQhJDQ0gCCAJIBEgAiAKahD4AiAGIA0gFEECciAObGoiAkkNASAGIAJrIgxBCEkNDSAIIAkgESACIApqEPgCIAYgDSAUQQNyIA5saiICSQ0BIAYgAmsiDEEISQ0NIAggCSARIAIgCmoQ+AIgBiANIBRBBHIgDmxqIgJJDQEgBiACayIMQQhJDQ0gCCAJIBEgAiAKahD4AiAGIA0gFEEFciAObGoiAkkNASAGIAJrIgxBCEkNDSAIIAkgESACIApqEPgCIAYgDSAUQQZyIA5saiICSQ0BIAYgAmsiDEEISQ0NIAggCSARIAIgCmoQ+AIgBiANIBRBB3IgDmxqIgJJDQEgBiACayIMQQhJDQ0gCCAJIBEgAiAKahD4AiAGIA0gFEEIciAObGoiAkkNASAGIAJrIgxBCEkNDSAIIAkgESACIApqEPgCIAYgDSAUQQlyIA5saiICSQ0BIAYgAmsiDEEISQ0NIAggCSARIAIgCmoQ+AIgBiANIBRBCnIgDmxqIgJJDQEgBiACayIMQQhJDQ0gCCAJIBEgAiAKahD4AiAGIA0gFEELciAObGoiAkkNASAGIAJrIgxBCEkNDSAIIAkgESACIApqEPgCIAYgDSAUQQxyIA5saiICSQ0BIAYgAmsiDEEISQ0NIAggCSARIAIgCmoQ+AIgBiANIBRBDXIgDmxqIgJJDQEgBiACayIMQQhJDQ0gCCAJIBEgAiAKahD4AiAGIA0gFEEOciAObGoiAkkNASAGIAJrIgxBCEkNDSAIIAkgESACIApqEPgCIAYgDSAUQQ9yIA5saiICSQ0BIAYgAmsiDEEISQ0NIAggCSARIAIgCmoQ+AIgASgCFCIKIANBA3RBBGsiDCAHQQN0IgUgGWxqIgJPDQMMBAsgEUH/AXEiBSACIApqIgItAAIgAi0ABWsiDCAMQR91Ig9zIA9rQQF2IAItAAMiDyACLQAEIhprIhggGEEfdSIYcyAYa0EBdGpPBEAgAkH/AEGAfyAPQfwAQYB/IBogD2tBA2xB/wBBgH8gDCAMQYB/TBsiDCAMQf8AThtqIgwgDEGAf0wbIgwgDEH8AE4bQQNqQQN1akGAAWsiDyAPQYB/TBsiDyAPQf8AThtBgAFzOgADIAJB/wBBgH8gGkH7ACAMIAxB+wBOG0EEakEDdWtBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoABAsgBiANIBRBAXIgDmxqIgJJDQEgBiACayIMQQhJDQsgBSACIApqIgItAAIgAi0ABWsiDCAMQR91Ig9zIA9rQQF2IAItAAMiDyACLQAEIhprIhggGEEfdSIYcyAYa0EBdGpPBEAgAkH/AEGAfyAPQfwAQYB/IBogD2tBA2xB/wBBgH8gDCAMQYB/TBsiDCAMQf8AThtqIgwgDEGAf0wbIgwgDEH8AE4bQQNqQQN1akGAAWsiDyAPQYB/TBsiDyAPQf8AThtBgAFzOgADIAJB/wBBgH8gGkH7ACAMIAxB+wBOG0EEakEDdWtBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoABAsgBiANIBRBAnIgDmxqIgJJDQEgBiACayIMQQhJDQsgBSACIApqIgItAAIgAi0ABWsiDCAMQR91Ig9zIA9rQQF2IAItAAMiDyACLQAEIhprIhggGEEfdSIYcyAYa0EBdGpPBEAgAkH/AEGAfyAPQfwAQYB/IBogD2tBA2xB/wBBgH8gDCAMQYB/TBsiDCAMQf8AThtqIgwgDEGAf0wbIgwgDEH8AE4bQQNqQQN1akGAAWsiDyAPQYB/TBsiDyAPQf8AThtBgAFzOgADIAJB/wBBgH8gGkH7ACAMIAxB+wBOG0EEakEDdWtBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoABAsgBiANIBRBA3IgDmxqIgJJDQEgBiACayIMQQhJDQsgBSACIApqIgItAAIgAi0ABWsiDCAMQR91Ig9zIA9rQQF2IAItAAMiDyACLQAEIhprIhggGEEfdSIYcyAYa0EBdGpPBEAgAkH/AEGAfyAPQfwAQYB/IBogD2tBA2xB/wBBgH8gDCAMQYB/TBsiDCAMQf8AThtqIgwgDEGAf0wbIgwgDEH8AE4bQQNqQQN1akGAAWsiDyAPQYB/TBsiDyAPQf8AThtBgAFzOgADIAJB/wBBgH8gGkH7ACAMIAxB+wBOG0EEakEDdWtBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoABAsgBiANIBRBBHIgDmxqIgJJDQEgBiACayIMQQhJDQsgBSACIApqIgItAAIgAi0ABWsiDCAMQR91Ig9zIA9rQQF2IAItAAMiDyACLQAEIhprIhggGEEfdSIYcyAYa0EBdGpPBEAgAkH/AEGAfyAPQfwAQYB/IBogD2tBA2xB/wBBgH8gDCAMQYB/TBsiDCAMQf8AThtqIgwgDEGAf0wbIgwgDEH8AE4bQQNqQQN1akGAAWsiDyAPQYB/TBsiDyAPQf8AThtBgAFzOgADIAJB/wBBgH8gGkH7ACAMIAxB+wBOG0EEakEDdWtBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoABAsgBiANIBRBBXIgDmxqIgJJDQEgBiACayIMQQhJDQsgBSACIApqIgItAAIgAi0ABWsiDCAMQR91Ig9zIA9rQQF2IAItAAMiDyACLQAEIhprIhggGEEfdSIYcyAYa0EBdGpPBEAgAkH/AEGAfyAPQfwAQYB/IBogD2tBA2xB/wBBgH8gDCAMQYB/TBsiDCAMQf8AThtqIgwgDEGAf0wbIgwgDEH8AE4bQQNqQQN1akGAAWsiDyAPQYB/TBsiDyAPQf8AThtBgAFzOgADIAJB/wBBgH8gGkH7ACAMIAxB+wBOG0EEakEDdWtBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoABAsgBiANIBRBBnIgDmxqIgJJDQEgBiACayIMQQhJDQsgBSACIApqIgItAAIgAi0ABWsiDCAMQR91Ig9zIA9rQQF2IAItAAMiDyACLQAEIhprIhggGEEfdSIYcyAYa0EBdGpPBEAgAkH/AEGAfyAPQfwAQYB/IBogD2tBA2xB/wBBgH8gDCAMQYB/TBsiDCAMQf8AThtqIgwgDEGAf0wbIgwgDEH8AE4bQQNqQQN1akGAAWsiDyAPQYB/TBsiDyAPQf8AThtBgAFzOgADIAJB/wBBgH8gGkH7ACAMIAxB+wBOG0EEakEDdWtBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoABAsgBiANIBRBB3IgDmxqIgJJDQEgBiACayIMQQhJDQsgBSACIApqIgItAAIgAi0ABWsiDCAMQR91Ig9zIA9rQQF2IAItAAMiDyACLQAEIhprIhggGEEfdSIYcyAYa0EBdGpPBEAgAkH/AEGAfyAPQfwAQYB/IBogD2tBA2xB/wBBgH8gDCAMQYB/TBsiDCAMQf8AThtqIgwgDEGAf0wbIgwgDEH8AE4bQQNqQQN1akGAAWsiDyAPQYB/TBsiDyAPQf8AThtBgAFzOgADIAJB/wBBgH8gGkH7ACAMIAxB+wBOG0EEakEDdWtBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoABAsgBiANIBRBCHIgDmxqIgJJDQEgBiACayIMQQhJDQsgBSACIApqIgItAAIgAi0ABWsiDCAMQR91Ig9zIA9rQQF2IAItAAMiDyACLQAEIhprIhggGEEfdSIYcyAYa0EBdGpPBEAgAkH/AEGAfyAPQfwAQYB/IBogD2tBA2xB/wBBgH8gDCAMQYB/TBsiDCAMQf8AThtqIgwgDEGAf0wbIgwgDEH8AE4bQQNqQQN1akGAAWsiDyAPQYB/TBsiDyAPQf8AThtBgAFzOgADIAJB/wBBgH8gGkH7ACAMIAxB+wBOG0EEakEDdWtBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoABAsgBiANIBRBCXIgDmxqIgJJDQEgBiACayIMQQhJDQsgBSACIApqIgItAAIgAi0ABWsiDCAMQR91Ig9zIA9rQQF2IAItAAMiDyACLQAEIhprIhggGEEfdSIYcyAYa0EBdGpPBEAgAkH/AEGAfyAPQfwAQYB/IBogD2tBA2xB/wBBgH8gDCAMQYB/TBsiDCAMQf8AThtqIgwgDEGAf0wbIgwgDEH8AE4bQQNqQQN1akGAAWsiDyAPQYB/TBsiDyAPQf8AThtBgAFzOgADIAJB/wBBgH8gGkH7ACAMIAxB+wBOG0EEakEDdWtBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoABAsgBiANIBRBCnIgDmxqIgJJDQEgBiACayIMQQhJDQsgBSACIApqIgItAAIgAi0ABWsiDCAMQR91Ig9zIA9rQQF2IAItAAMiDyACLQAEIhprIhggGEEfdSIYcyAYa0EBdGpPBEAgAkH/AEGAfyAPQfwAQYB/IBogD2tBA2xB/wBBgH8gDCAMQYB/TBsiDCAMQf8AThtqIgwgDEGAf0wbIgwgDEH8AE4bQQNqQQN1akGAAWsiDyAPQYB/TBsiDyAPQf8AThtBgAFzOgADIAJB/wBBgH8gGkH7ACAMIAxB+wBOG0EEakEDdWtBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoABAsgBiANIBRBC3IgDmxqIgJJDQEgBiACayIMQQhJDQsgBSACIApqIgItAAIgAi0ABWsiDCAMQR91Ig9zIA9rQQF2IAItAAMiDyACLQAEIhprIhggGEEfdSIYcyAYa0EBdGpPBEAgAkH/AEGAfyAPQfwAQYB/IBogD2tBA2xB/wBBgH8gDCAMQYB/TBsiDCAMQf8AThtqIgwgDEGAf0wbIgwgDEH8AE4bQQNqQQN1akGAAWsiDyAPQYB/TBsiDyAPQf8AThtBgAFzOgADIAJB/wBBgH8gGkH7ACAMIAxB+wBOG0EEakEDdWtBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoABAsgBiANIBRBDHIgDmxqIgJJDQEgBiACayIMQQhJDQsgBSACIApqIgItAAIgAi0ABWsiDCAMQR91Ig9zIA9rQQF2IAItAAMiDyACLQAEIhprIhggGEEfdSIYcyAYa0EBdGpPBEAgAkH/AEGAfyAPQfwAQYB/IBogD2tBA2xB/wBBgH8gDCAMQYB/TBsiDCAMQf8AThtqIgwgDEGAf0wbIgwgDEH8AE4bQQNqQQN1akGAAWsiDyAPQYB/TBsiDyAPQf8AThtBgAFzOgADIAJB/wBBgH8gGkH7ACAMIAxB+wBOG0EEakEDdWtBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoABAsgBiANIBRBDXIgDmxqIgJJDQEgBiACayIMQQhJDQsgBSACIApqIgItAAIgAi0ABWsiDCAMQR91Ig9zIA9rQQF2IAItAAMiDyACLQAEIhprIhggGEEfdSIYcyAYa0EBdGpPBEAgAkH/AEGAfyAPQfwAQYB/IBogD2tBA2xB/wBBgH8gDCAMQYB/TBsiDCAMQf8AThtqIgwgDEGAf0wbIgwgDEH8AE4bQQNqQQN1akGAAWsiDyAPQYB/TBsiDyAPQf8AThtBgAFzOgADIAJB/wBBgH8gGkH7ACAMIAxB+wBOG0EEakEDdWtBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoABAsgBiANIBRBDnIgDmxqIgJJDQEgBiACayIMQQhJDQsgBSACIApqIgItAAIgAi0ABWsiDCAMQR91Ig9zIA9rQQF2IAItAAMiDyACLQAEIhprIhggGEEfdSIYcyAYa0EBdGpPBEAgAkH/AEGAfyAPQfwAQYB/IBogD2tBA2xB/wBBgH8gDCAMQYB/TBsiDCAMQf8AThtqIgwgDEGAf0wbIgwgDEH8AE4bQQNqQQN1akGAAWsiDyAPQYB/TBsiDyAPQf8AThtBgAFzOgADIAJB/wBBgH8gGkH7ACAMIAxB+wBOG0EEakEDdWtBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoABAsgBiANIBRBD3IgDmxqIgJJDQEgBiACayIMQQhJDQsgBSACIApqIgYtAAIgBi0ABWsiAiACQR91IgpzIAprQQF2IAYtAAMiCiAGLQAEIg1rIhQgFEEfdSIUcyAUa0EBdGpPBEAgBkH/AEGAfyAKQfwAQYB/IA0gCmtBA2xB/wBBgH8gAiACQYB/TBsiAiACQf8AThtqIgIgAkGAf0wbIgIgAkH8AE4bQQNqQQN1akGAAWsiCiAKQYB/TBsiCiAKQf8AThtBgAFzOgADIAZB/wBBgH8gDUH7ACACIAJB+wBOG0EEakEDdWtBgAFrIgYgBkGAf0wbIgYgBkH/AE4bQYABczoABAsMBwsgAiAGIAZBuKfGABDqBwALIAIgBiAGQdioxgAQ6gcACyAKIAJrIhRBB00NASABKAIcIQ0gASgCICEGIAggCSARIAEoAhAiDyACahD4AiACIAZLDQMgBiACayIUQQdNDQIgCCAJIBEgAiANahD4AiAKIAwgBUEBciAZbGoiAkkNACAKIAJrIhRBCEkNASAIIAkgESACIA9qEPgCIAIgBksNAyAGIAJrIhRBCEkNAiAIIAkgESACIA1qEPgCIAogDCAFQQJyIBlsaiICSQ0AIAogAmsiFEEISQ0BIAggCSARIAIgD2oQ+AIgAiAGSw0DIAYgAmsiFEEISQ0CIAggCSARIAIgDWoQ+AIgCiAMIAVBA3IgGWxqIgJJDQAgCiACayIUQQhJDQEgCCAJIBEgAiAPahD4AiACIAZLDQMgBiACayIUQQhJDQIgCCAJIBEgAiANahD4AiAKIAwgBUEEciAZbGoiAkkNACAKIAJrIhRBCEkNASAIIAkgESACIA9qEPgCIAIgBksNAyAGIAJrIhRBCEkNAiAIIAkgESACIA1qEPgCIAogDCAFQQVyIBlsaiICSQ0AIAogAmsiFEEISQ0BIAggCSARIAIgD2oQ+AIgAiAGSw0DIAYgAmsiFEEISQ0CIAggCSARIAIgDWoQ+AIgCiAMIAVBBnIgGWxqIgJJDQAgCiACayIUQQhJDQEgCCAJIBEgAiAPahD4AiACIAZLDQMgBiACayIUQQhJDQIgCCAJIBEgAiANahD4AiAKIAwgBUEHciAZbGoiAkkNACAKIAJrIhRBCEkNASAIIAkgESACIA9qEPgCIAIgBksNAyAGIAJrIhRBCEkNAiAIIAkgESACIA1qEPgCDAQLIAIgCiAKQZinxgAQ6gcAC0EAQQggFEHopsYAEOoHAAtBAEEIIBRB+KbGABDqBwALIAIgBiAGQYinxgAQ6gcACyAWQQFxDQBBACEWDAELIANBBHQhCiAHQQR0Ig0gDmwhFCABKAIEIQYgASgCCCECAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABLQAqRQRAIAYgCiAUaiIPaiETQQAhBkEAIAcgEmxBCHQgCmprIQVBACANQQFqIBJsIi5BBHQgCmoiL2shGkEAIA1BAmogEmwiMEEEdCAKaiIxayEMQQAgDUEDaiASbCIyQQR0IApqIjNrIRRBACANQQRqIBJsIjRBBHQgCmoiNWshFkEAIA1BBWogEmwiNkEEdCAKaiI3ayEYQQAgDUEGaiASbCI4QQR0IApqIjlrISZBACANQQdqIBJsIh1BBHQgCmoiHmshIkEAIA1BCGogEmwiOkEEdCAKaiIXayEbQQAgDUEJaiASbCIcQQR0IApqIjxrISdBACANQQpqIBJsIj1BBHQgCmoiPmshKEEAIA1BC2ogEmwiP0EEdCAKaiJAayEpQQAgDUEMaiASbCIkQQR0IApqIkFrISpBACANQQ1qIBJsIkJBBHQgCmoiQ2shK0EAIA1BDmogEmwiREEEdCAKaiIjayEsQQAgDUEPaiASbCIlQQR0IApqIkVrIS0DQCAGIA9qIg0gAksNESACIAVqIg1BB00NFCAIIAkgECAGIBNqIh8QlAQgBiAvaiACSw0QIAIgGmoiDUEISQ0UIAggCSAQIA4gH2oiHxCUBCAGIDFqIAJLDQ8gAiAMaiINQQhJDRQgCCAJIBAgDiAfaiIfEJQEIAYgM2ogAksNDiACIBRqIg1BCEkNFCAIIAkgECAOIB9qIh8QlAQgBiA1aiACSw0NIAIgFmoiDUEISQ0UIAggCSAQIA4gH2oiHxCUBCAGIDdqIAJLDQwgAiAYaiINQQhJDRQgCCAJIBAgDiAfaiIfEJQEIAYgOWogAksNCyACICZqIg1BCEkNFCAIIAkgECAOIB9qIh8QlAQgBiAeaiACSw0KIAIgImoiDUEISQ0UIAggCSAQIA4gH2oiHxCUBCAGIBdqIAJLDQkgAiAbaiINQQhJDRQgCCAJIBAgDiAfaiIfEJQEIAYgPGogAksNCCACICdqIg1BCEkNFCAIIAkgECAOIB9qIh8QlAQgBiA+aiACSw0HIAIgKGoiDUEISQ0UIAggCSAQIA4gH2oiHxCUBCAGIEBqIAJLDQYgAiApaiINQQhJDRQgCCAJIBAgDiAfaiIfEJQEIAYgQWogAksNBSACICpqIg1BCEkNFCAIIAkgECAOIB9qIh8QlAQgBiBDaiACSw0EIAIgK2oiDUEISQ0UIAggCSAQIA4gH2oiHxCUBCAGICNqIAJLDQMgAiAsaiINQQhJDRQgCCAJIBAgDiAfaiIfEJQEIAYgRWogAksNAiACIC1qIg1BCEkNFCAIIAkgECAOIB9qEJQEIAVBBGshBSAaQQRrIRogDEEEayEMIBRBBGshFCAWQQRrIRYgGEEEayEYICZBBGshJiAiQQRrISIgG0EEayEbICdBBGshJyAoQQRrISggKUEEayEpICpBBGshKiArQQRrISsgLEEEayEsIC1BBGshLSAGQQRqIgZBDEcNAAsMEQsgEEH/AXEhDyAGIAogFGoiPGohPUEAIAcgEmxBCHQgCmprIRogBiANQQFqIBJsIj5BBHQgCmoiLmohP0EAIC5rIQwgBiANQQJqIBJsIkBBBHQgCmoiL2ohJEEAIC9rIRQgBiANQQNqIBJsIkFBBHQgCmoiMGohQkEAIDBrIRYgBiANQQRqIBJsIkNBBHQgCmoiMWohREEAIDFrIRggBiANQQVqIBJsIiNBBHQgCmoiMmohJUEAIDJrISYgBiANQQZqIBJsIkVBBHQgCmoiM2ohH0EAIDNrISIgBiANQQdqIBJsIklBBHQgCmoiNGohSkEAIDRrIRsgBiANQQhqIBJsIktBBHQgCmoiNWohTEEAIDVrIScgBiANQQlqIBJsIk1BBHQgCmoiNmohTkEAIDZrISggBiANQQpqIBJsIk9BBHQgCmoiN2ohUEEAIDdrISkgBiANQQtqIBJsIlFBBHQgCmoiOGohUkEAIDhrISogBiANQQxqIBJsIlNBBHQgCmoiOWohVEEAIDlrISsgBiANQQ1qIBJsIlVBBHQgCmoiHWohVkEAIB1rISwgBiANQQ5qIBJsIldBBHQgCmoiHmohWEEAIB5rIS0gBiANQQ9qIBJsIllBBHQgCmoiOmohWkEAIDprIQ1BdCEGAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQANAAkAgAiAGIDxqIgVBDGpPBEAgAiAaaiIFQQdLDQEMEwsgBUEMagwRCyAPIAYgPWoiBUEOai0AACAFQRFqLQAAayITIBNBH3UiF3MgF2tBAXYgBUEPaiIgLQAAIhcgBUEQaiIhLQAAIhxrIgUgBUEfdSIFcyAFa0EBdGpPBEAgIEH/AEGAfyAXQfwAQYB/IBwgF2tBA2xB/wBBgH8gEyATQYB/TBsiBSAFQf8AThtqIgUgBUGAf0wbIgUgBUH8AE4bQQNqQQN1akGAAWsiEyATQYB/TBsiEyATQf8AThtBgAFzOgAAICFB/wBBgH8gHEH7ACAFIAVB+wBOG0EEakEDdWtBgAFrIgUgBUGAf0wbIgUgBUH/AE4bQYABczoAAAsgBiAuakEMaiACSw0PIAIgDGoiBUEISQ0RIA8gBiA/aiIFQQ5qLQAAIAVBEWotAABrIhMgE0EfdSIXcyAXa0EBdiAFQQ9qIiAtAAAiFyAFQRBqIiEtAAAiHGsiBSAFQR91IgVzIAVrQQF0ak8EQCAgQf8AQYB/IBdB/ABBgH8gHCAXa0EDbEH/AEGAfyATIBNBgH9MGyIFIAVB/wBOG2oiBSAFQYB/TBsiBSAFQfwAThtBA2pBA3VqQYABayITIBNBgH9MGyITIBNB/wBOG0GAAXM6AAAgIUH/AEGAfyAcQfsAIAUgBUH7AE4bQQRqQQN1a0GAAWsiBSAFQYB/TBsiBSAFQf8AThtBgAFzOgAACyAGIC9qQQxqIAJLDQ4gAiAUaiIFQQhJDREgDyAGICRqIgVBDmotAAAgBUERai0AAGsiEyATQR91IhdzIBdrQQF2IAVBD2oiIC0AACIXIAVBEGoiIS0AACIcayIFIAVBH3UiBXMgBWtBAXRqTwRAICBB/wBBgH8gF0H8AEGAfyAcIBdrQQNsQf8AQYB/IBMgE0GAf0wbIgUgBUH/AE4baiIFIAVBgH9MGyIFIAVB/ABOG0EDakEDdWpBgAFrIhMgE0GAf0wbIhMgE0H/AE4bQYABczoAACAhQf8AQYB/IBxB+wAgBSAFQfsAThtBBGpBA3VrQYABayIFIAVBgH9MGyIFIAVB/wBOG0GAAXM6AAALIAYgMGpBDGogAksNDSACIBZqIgVBCEkNESAPIAYgQmoiBUEOai0AACAFQRFqLQAAayITIBNBH3UiF3MgF2tBAXYgBUEPaiIgLQAAIhcgBUEQaiIhLQAAIhxrIgUgBUEfdSIFcyAFa0EBdGpPBEAgIEH/AEGAfyAXQfwAQYB/IBwgF2tBA2xB/wBBgH8gEyATQYB/TBsiBSAFQf8AThtqIgUgBUGAf0wbIgUgBUH8AE4bQQNqQQN1akGAAWsiEyATQYB/TBsiEyATQf8AThtBgAFzOgAAICFB/wBBgH8gHEH7ACAFIAVB+wBOG0EEakEDdWtBgAFrIgUgBUGAf0wbIgUgBUH/AE4bQYABczoAAAsgBiAxakEMaiACSw0MIAIgGGoiBUEISQ0RIA8gBiBEaiIFQQ5qLQAAIAVBEWotAABrIhMgE0EfdSIXcyAXa0EBdiAFQQ9qIiAtAAAiFyAFQRBqIiEtAAAiHGsiBSAFQR91IgVzIAVrQQF0ak8EQCAgQf8AQYB/IBdB/ABBgH8gHCAXa0EDbEH/AEGAfyATIBNBgH9MGyIFIAVB/wBOG2oiBSAFQYB/TBsiBSAFQfwAThtBA2pBA3VqQYABayITIBNBgH9MGyITIBNB/wBOG0GAAXM6AAAgIUH/AEGAfyAcQfsAIAUgBUH7AE4bQQRqQQN1a0GAAWsiBSAFQYB/TBsiBSAFQf8AThtBgAFzOgAACyAGIDJqQQxqIAJLDQsgAiAmaiIFQQhJDREgDyAGICVqIgVBDmotAAAgBUERai0AAGsiEyATQR91IhdzIBdrQQF2IAVBD2oiIC0AACIXIAVBEGoiIS0AACIcayIFIAVBH3UiBXMgBWtBAXRqTwRAICBB/wBBgH8gF0H8AEGAfyAcIBdrQQNsQf8AQYB/IBMgE0GAf0wbIgUgBUH/AE4baiIFIAVBgH9MGyIFIAVB/ABOG0EDakEDdWpBgAFrIhMgE0GAf0wbIhMgE0H/AE4bQYABczoAACAhQf8AQYB/IBxB+wAgBSAFQfsAThtBBGpBA3VrQYABayIFIAVBgH9MGyIFIAVB/wBOG0GAAXM6AAALIAYgM2pBDGogAksNCiACICJqIgVBCEkNESAPIAYgH2oiBUEOai0AACAFQRFqLQAAayITIBNBH3UiF3MgF2tBAXYgBUEPaiIgLQAAIhcgBUEQaiIhLQAAIhxrIgUgBUEfdSIFcyAFa0EBdGpPBEAgIEH/AEGAfyAXQfwAQYB/IBwgF2tBA2xB/wBBgH8gEyATQYB/TBsiBSAFQf8AThtqIgUgBUGAf0wbIgUgBUH8AE4bQQNqQQN1akGAAWsiEyATQYB/TBsiEyATQf8AThtBgAFzOgAAICFB/wBBgH8gHEH7ACAFIAVB+wBOG0EEakEDdWtBgAFrIgUgBUGAf0wbIgUgBUH/AE4bQYABczoAAAsgBiA0akEMaiACSw0JIAIgG2oiBUEISQ0RIA8gBiBKaiIFQQ5qLQAAIAVBEWotAABrIhMgE0EfdSIXcyAXa0EBdiAFQQ9qIiAtAAAiFyAFQRBqIiEtAAAiHGsiBSAFQR91IgVzIAVrQQF0ak8EQCAgQf8AQYB/IBdB/ABBgH8gHCAXa0EDbEH/AEGAfyATIBNBgH9MGyIFIAVB/wBOG2oiBSAFQYB/TBsiBSAFQfwAThtBA2pBA3VqQYABayITIBNBgH9MGyITIBNB/wBOG0GAAXM6AAAgIUH/AEGAfyAcQfsAIAUgBUH7AE4bQQRqQQN1a0GAAWsiBSAFQYB/TBsiBSAFQf8AThtBgAFzOgAACyAGIDVqQQxqIAJLDQggAiAnaiIFQQhJDREgDyAGIExqIgVBDmotAAAgBUERai0AAGsiEyATQR91IhdzIBdrQQF2IAVBD2oiIC0AACIXIAVBEGoiIS0AACIcayIFIAVBH3UiBXMgBWtBAXRqTwRAICBB/wBBgH8gF0H8AEGAfyAcIBdrQQNsQf8AQYB/IBMgE0GAf0wbIgUgBUH/AE4baiIFIAVBgH9MGyIFIAVB/ABOG0EDakEDdWpBgAFrIhMgE0GAf0wbIhMgE0H/AE4bQYABczoAACAhQf8AQYB/IBxB+wAgBSAFQfsAThtBBGpBA3VrQYABayIFIAVBgH9MGyIFIAVB/wBOG0GAAXM6AAALIAYgNmpBDGogAksNByACIChqIgVBCEkNESAPIAYgTmoiBUEOai0AACAFQRFqLQAAayITIBNBH3UiF3MgF2tBAXYgBUEPaiIgLQAAIhcgBUEQaiIhLQAAIhxrIgUgBUEfdSIFcyAFa0EBdGpPBEAgIEH/AEGAfyAXQfwAQYB/IBwgF2tBA2xB/wBBgH8gEyATQYB/TBsiBSAFQf8AThtqIgUgBUGAf0wbIgUgBUH8AE4bQQNqQQN1akGAAWsiEyATQYB/TBsiEyATQf8AThtBgAFzOgAAICFB/wBBgH8gHEH7ACAFIAVB+wBOG0EEakEDdWtBgAFrIgUgBUGAf0wbIgUgBUH/AE4bQYABczoAAAsgBiA3akEMaiACSw0GIAIgKWoiBUEISQ0RIA8gBiBQaiIFQQ5qLQAAIAVBEWotAABrIhMgE0EfdSIXcyAXa0EBdiAFQQ9qIiAtAAAiFyAFQRBqIiEtAAAiHGsiBSAFQR91IgVzIAVrQQF0ak8EQCAgQf8AQYB/IBdB/ABBgH8gHCAXa0EDbEH/AEGAfyATIBNBgH9MGyIFIAVB/wBOG2oiBSAFQYB/TBsiBSAFQfwAThtBA2pBA3VqQYABayITIBNBgH9MGyITIBNB/wBOG0GAAXM6AAAgIUH/AEGAfyAcQfsAIAUgBUH7AE4bQQRqQQN1a0GAAWsiBSAFQYB/TBsiBSAFQf8AThtBgAFzOgAACyAGIDhqQQxqIAJLDQUgAiAqaiIFQQhJDREgDyAGIFJqIgVBDmotAAAgBUERai0AAGsiEyATQR91IhdzIBdrQQF2IAVBD2oiIC0AACIXIAVBEGoiIS0AACIcayIFIAVBH3UiBXMgBWtBAXRqTwRAICBB/wBBgH8gF0H8AEGAfyAcIBdrQQNsQf8AQYB/IBMgE0GAf0wbIgUgBUH/AE4baiIFIAVBgH9MGyIFIAVB/ABOG0EDakEDdWpBgAFrIhMgE0GAf0wbIhMgE0H/AE4bQYABczoAACAhQf8AQYB/IBxB+wAgBSAFQfsAThtBBGpBA3VrQYABayIFIAVBgH9MGyIFIAVB/wBOG0GAAXM6AAALIAYgOWpBDGogAksNBCACICtqIgVBCEkNESAPIAYgVGoiBUEOai0AACAFQRFqLQAAayITIBNBH3UiF3MgF2tBAXYgBUEPaiIgLQAAIhcgBUEQaiIhLQAAIhxrIgUgBUEfdSIFcyAFa0EBdGpPBEAgIEH/AEGAfyAXQfwAQYB/IBwgF2tBA2xB/wBBgH8gEyATQYB/TBsiBSAFQf8AThtqIgUgBUGAf0wbIgUgBUH8AE4bQQNqQQN1akGAAWsiEyATQYB/TBsiEyATQf8AThtBgAFzOgAAICFB/wBBgH8gHEH7ACAFIAVB+wBOG0EEakEDdWtBgAFrIgUgBUGAf0wbIgUgBUH/AE4bQYABczoAAAsgBiAdakEMaiACSw0DIAIgLGoiBUEISQ0RIA8gBiBWaiIFQQ5qLQAAIAVBEWotAABrIhMgE0EfdSIXcyAXa0EBdiAFQQ9qIiAtAAAiFyAFQRBqIiEtAAAiHGsiBSAFQR91IgVzIAVrQQF0ak8EQCAgQf8AQYB/IBdB/ABBgH8gHCAXa0EDbEH/AEGAfyATIBNBgH9MGyIFIAVB/wBOG2oiBSAFQYB/TBsiBSAFQfwAThtBA2pBA3VqQYABayITIBNBgH9MGyITIBNB/wBOG0GAAXM6AAAgIUH/AEGAfyAcQfsAIAUgBUH7AE4bQQRqQQN1a0GAAWsiBSAFQYB/TBsiBSAFQf8AThtBgAFzOgAACyAGIB5qQQxqIAJLDQIgAiAtaiIFQQhJDREgDyAGIFhqIgVBDmotAAAgBUERai0AAGsiEyATQR91IhdzIBdrQQF2IAVBD2oiIC0AACIXIAVBEGoiIS0AACIcayIFIAVBH3UiBXMgBWtBAXRqTwRAICBB/wBBgH8gF0H8AEGAfyAcIBdrQQNsQf8AQYB/IBMgE0GAf0wbIgUgBUH/AE4baiIFIAVBgH9MGyIFIAVB/ABOG0EDakEDdWpBgAFrIhMgE0GAf0wbIhMgE0H/AE4bQYABczoAACAhQf8AQYB/IBxB+wAgBSAFQfsAThtBBGpBA3VrQYABayIFIAVBgH9MGyIFIAVB/wBOG0GAAXM6AAALIAYgOmpBDGogAksNASACIA1qIgVBCEkNESAPIAYgWmoiBUEOai0AACAFQRFqLQAAayITIBNBH3UiF3MgF2tBAXYgBUEPaiIgLQAAIhcgBUEQaiIhLQAAIhxrIgUgBUEfdSIFcyAFa0EBdGpPBEAgIEH/AEGAfyAXQfwAQYB/IBwgF2tBA2xB/wBBgH8gEyATQYB/TBsiBSAFQf8AThtqIgUgBUGAf0wbIgUgBUH8AE4bQQNqQQN1akGAAWsiEyATQYB/TBsiEyATQf8AThtBgAFzOgAAICFB/wBBgH8gHEH7ACAFIAVB+wBOG0EEakEDdWtBgAFrIgUgBUGAf0wbIgUgBUH/AE4bQYABczoAAAsgGkEEayEaIAxBBGshDCAUQQRrIRQgFkEEayEWIBhBBGshGCAmQQRrISYgIkEEayEiIBtBBGshGyAnQQRrIScgKEEEayEoIClBBGshKSAqQQRrISogK0EEayErICxBBGshLCAtQQRrIS0gDUEEayENIAZBBGoiBg0AC0EBIRYMIgsgWUEEdCAKaiAGakEMagwOCyBXQQR0IApqIAZqQQxqDA0LIFVBBHQgCmogBmpBDGoMDAsgU0EEdCAKaiAGakEMagwLCyBRQQR0IApqIAZqQQxqDAoLIE9BBHQgCmogBmpBDGoMCQsgTUEEdCAKaiAGakEMagwICyBLQQR0IApqIAZqQQxqDAcLIElBBHQgCmogBmpBDGoMBgsgRUEEdCAKaiAGakEMagwFCyAjQQR0IApqIAZqQQxqDAQLIENBBHQgCmogBmpBDGoMAwsgQUEEdCAKaiAGakEMagwCCyBAQQR0IApqIAZqQQxqDAELID5BBHQgCmogBmpBDGoLIAIgAkG4qMYAEOoHAAtBAEEIIAVBqKjGABDqBwALICVBBHQgCmogBmohDQwOCyBEQQR0IApqIAZqIQ0MDQsgQkEEdCAKaiAGaiENDAwLICRBBHQgCmogBmohDQwLCyA/QQR0IApqIAZqIQ0MCgsgPUEEdCAKaiAGaiENDAkLIBxBBHQgCmogBmohDQwICyA6QQR0IApqIAZqIQ0MBwsgHUEEdCAKaiAGaiENDAYLIDhBBHQgCmogBmohDQwFCyA2QQR0IApqIAZqIQ0MBAsgNEEEdCAKaiAGaiENDAMLIDJBBHQgCmogBmohDQwCCyAwQQR0IApqIAZqIQ0MAQsgLkEEdCAKaiAGaiENCyANIAIgAkGYqMYAEOoHAAsCQAJAIAEoAhQiCiADQQN0IgwgB0EDdCIFIBlsaiICSQ0AAkACQCAKIAJrIhRBB00NACABKAIcIQ0gASgCICEGIAggCSAQIAEoAhAiDyACahCUBCACIAZLDQMgBiACayIUQQdNDQEgCCAJIBAgAiANahCUBCAKIAVBAXIgGWwgDGoiAkkNAiAKIAJrIhRBCEkNACAIIAkgECACIA9qEJQEIAIgBksNAyAGIAJrIhRBCEkNASAIIAkgECACIA1qEJQEIAogBUECciAZbCAMaiICSQ0CIAogAmsiFEEISQ0AIAggCSAQIAIgD2oQlAQgAiAGSw0DIAYgAmsiFEEISQ0BIAggCSAQIAIgDWoQlAQgCiAFQQNyIBlsIAxqIgJJDQIgCiACayIUQQhJDQAgCCAJIBAgAiAPahCUBCACIAZLDQMgBiACayIUQQhJDQEgCCAJIBAgAiANahCUBCAKIAVBBHIgGWwgDGoiAkkNAiAKIAJrIhRBCEkNACAIIAkgECACIA9qEJQEIAIgBksNAyAGIAJrIhRBCEkNASAIIAkgECACIA1qEJQEIAogBUEFciAZbCAMaiICSQ0CIAogAmsiFEEISQ0AIAggCSAQIAIgD2oQlAQgAiAGSw0DIAYgAmsiFEEISQ0BIAggCSAQIAIgDWoQlAQgCiAFQQZyIBlsIAxqIgJJDQIgCiACayIUQQhJDQAgCCAJIBAgAiAPahCUBCACIAZLDQMgBiACayIUQQhJDQEgCCAJIBAgAiANahCUBCAKIAVBB3IgGWwgDGoiAkkNAiAKIAJrIhRBCEkNACAIIAkgECACIA9qEJQEIAIgBksNAyAGIAJrIhRBCEkNASAIIAkgECACIA1qEJQEQQEhFgwEC0EAQQggFEHIp8YAEOoHAAtBAEEIIBRB2KfGABDqBwALIAIgCiAKQfinxgAQ6gcACyACIAYgBkHop8YAEOoHAAsCQCAHRQ0AIAcgDmxBBHQgA0EEdGoiCkEPciENIApBDnIhFCAKQQ1yIQwgCkEMciEFIApBC3IhDyAKQQpyIRogCkEJciEYIApBCHIhJiAKQQdyISIgCkEGciEbIApBBXIhJyAKQQRyISggCkEDciEpIApBAnIhKiAKQQFyISsgASgCCCEGIAEoAgQhAiABLQAqRQRAIAggCSARIAIgBiAKIA4Q+gIgCCAJIBEgAiAGICsgDhD6AiAIIAkgESACIAYgKiAOEPoCIAggCSARIAIgBiApIA4Q+gIgCCAJIBEgAiAGICggDhD6AiAIIAkgESACIAYgJyAOEPoCIAggCSARIAIgBiAbIA4Q+gIgCCAJIBEgAiAGICIgDhD6AiAIIAkgESACIAYgJiAOEPoCIAggCSARIAIgBiAYIA4Q+gIgCCAJIBEgAiAGIBogDhD6AiAIIAkgESACIAYgDyAOEPoCIAggCSARIAIgBiAFIA4Q+gIgCCAJIBEgAiAGIAwgDhD6AiAIIAkgESACIAYgFCAOEPoCIAggCSARIAIgBiANIA4Q+gIgASgCICEGIAEoAhwhAiAIIAkgESABKAIQIg0gASgCFCIUIAcgGWxBA3QgA0EDdGoiCiAZEPoCIAggCSARIAIgBiAKIBkQ+gIgCCAJIBEgDSAUIApBAXIiDCAZEPoCIAggCSARIAIgBiAMIBkQ+gIgCCAJIBEgDSAUIApBAnIiDCAZEPoCIAggCSARIAIgBiAMIBkQ+gIgCCAJIBEgDSAUIApBA3IiDCAZEPoCIAggCSARIAIgBiAMIBkQ+gIgCCAJIBEgDSAUIApBBHIiDCAZEPoCIAggCSARIAIgBiAMIBkQ+gIgCCAJIBEgDSAUIApBBXIiDCAZEPoCIAggCSARIAIgBiAMIBkQ+gIgCCAJIBEgDSAUIApBBnIiDCAZEPoCIAggCSARIAIgBiAMIBkQ+gIgCCAJIBEgDSAUIApBB3IiCiAZEPoCIAggCSARIAIgBiAKIBkQ+gIMAQsgESACIAYgCiAOEOEFIBEgAiAGICsgDhDhBSARIAIgBiAqIA4Q4QUgESACIAYgKSAOEOEFIBEgAiAGICggDhDhBSARIAIgBiAnIA4Q4QUgESACIAYgGyAOEOEFIBEgAiAGICIgDhDhBSARIAIgBiAmIA4Q4QUgESACIAYgGCAOEOEFIBEgAiAGIBogDhDhBSARIAIgBiAPIA4Q4QUgESACIAYgBSAOEOEFIBEgAiAGIAwgDhDhBSARIAIgBiAUIA4Q4QUgESACIAYgDSAOEOEFCyAWRQ0DIANBBHQhESAHQQR0IQogASgCCCEGIAEoAgQhAiABLQAqRQRAIBJBBnQhFCAKQQRqIBJsQQR0IBFqQQ9qIQ1BfSEFA0AgCCAJIBAgAiAGIA1BD2sgDhDgBCAIIAkgECACIAYgDUEOayAOEOAEIAggCSAQIAIgBiANQQ1rIA4Q4AQgCCAJIBAgAiAGIA1BDGsgDhDgBCAIIAkgECACIAYgDUELayAOEOAEIAggCSAQIAIgBiANQQprIA4Q4AQgCCAJIBAgAiAGIA1BCWsgDhDgBCAIIAkgECACIAYgDUEIayAOEOAEIAggCSAQIAIgBiANQQdrIA4Q4AQgCCAJIBAgAiAGIA1BBmsgDhDgBCAIIAkgECACIAYgDUEFayAOEOAEIAggCSAQIAIgBiANQQRrIA4Q4AQgCCAJIBAgAiAGIA1BA2sgDhDgBCAIIAkgECACIAYgDUECayAOEOAEIAggCSAQIAIgBiANQQFrIA4Q4AQgCCAJIBAgAiAGIA0gDhDgBCANIBRqIQ0gBUEBaiIFDQALIAEoAiAhBiABKAIcIQIgCCAJIBAgASgCECIRIAEoAhQiCiAZIAdBA3RBBHJsIANBA3RqIg4gGRDgBCAIIAkgECACIAYgDiAZEOAEIAggCSAQIBEgCiAOQQFyIg0gGRDgBCAIIAkgECACIAYgDSAZEOAEIAggCSAQIBEgCiAOQQJyIg0gGRDgBCAIIAkgECACIAYgDSAZEOAEIAggCSAQIBEgCiAOQQNyIg0gGRDgBCAIIAkgECACIAYgDSAZEOAEIAggCSAQIBEgCiAOQQRyIg0gGRDgBCAIIAkgECACIAYgDSAZEOAEIAggCSAQIBEgCiAOQQVyIg0gGRDgBCAIIAkgECACIAYgDSAZEOAEIAggCSAQIBEgCiAOQQZyIg0gGRDgBCAIIAkgECACIAYgDSAZEOAEIAggCSAQIBEgCiAOQQdyIg4gGRDgBCAIIAkgECACIAYgDiAZEOAEDAQLIBJBBnQhDSAKQQRqIBJsQQR0IBFqQQ9qIQlBfSEIA0AgECACIAYgCUEPayAOEOEFIBAgAiAGIAlBDmsgDhDhBSAQIAIgBiAJQQ1rIA4Q4QUgECACIAYgCUEMayAOEOEFIBAgAiAGIAlBC2sgDhDhBSAQIAIgBiAJQQprIA4Q4QUgECACIAYgCUEJayAOEOEFIBAgAiAGIAlBCGsgDhDhBSAQIAIgBiAJQQdrIA4Q4QUgECACIAYgCUEGayAOEOEFIBAgAiAGIAlBBWsgDhDhBSAQIAIgBiAJQQRrIA4Q4QUgECACIAYgCUEDayAOEOEFIBAgAiAGIAlBAmsgDhDhBSAQIAIgBiAJQQFrIA4Q4QUgECACIAYgCSAOEOEFIAkgDWohCSAIQQFqIggNAAsMAwtBAEEIIA1BiKjGABDqBwALQQBBCCAMQcioxgAQ6gcAC0EAQQggDEGop8YAEOoHAAsgA0EBaiIDIEhHDQEMAgsLIAYgCUHoqMYAEIwHAAsgB0EBaiEHIAsgCyBHSSIGaiEDIAYNAAsLIAAgAf0AAgD9CwIAIABBIGogAUEgav0AAgD9CwIAIABBEGogAUEQav0AAgD9CwIAIAEoAnQiAARAIBUoAgAgAEECdEEBEKIHCyABKAKQBCIABEAgASgClAQgAEEebEEBEKIHCyBdEL8CIAEoAvAEQYAhQQEQogcgASgCnAQiAARAIAEoAqAEIABBHmxBARCiBwsgASgCqAQiAARAIAEoAqwEIABBARCiBwsgASgCtAQiAARAIAEoArgEIABBARCiBwsgASgCwAQiAARAIAEoAsQEIABBARCiBwsgASgCzAQiAARAIAEoAtAEIABBARCiBwsgASgC2AQiAEUNBCABKALcBCAAQQEQogcMBAsgekIgiKchEiB6QhCIpyEVIHpCCIinIQgLCyAAIA42AhAgACADOgAIIAAgAjsBBiAAIAc6AAUgACALOgAEIABBgICAgHg2AgAgAEEPaiASQRh2rTwAACAAQQ1qIBJBCHatPQAAIAAgEkEYdK0gCEH/AXEgFUEIdHKtQv///weDhD4ACQsgASgCdCIABEAgASgCcCIGQQRrKAIAIgNBeHEiCyAAQQJ0IgBBBEEIIANBA3EiAxtqSQ0CIANBACALIABBJ2pLGw0DIAYQogILIAEoApAEIgAEQCABKAKUBCIGQQRrKAIAIgNBeHEiCyAAQR5sIgBBBEEIIANBA3EiAxtqSQ0CIANBACALIABBJ2pLGw0DIAYQogILIAEoAgAiAARAIAEoAgQiBkEEaygCACIDQXhxIgtBBEEIIANBA3EiAxsgAGpJDQIgA0EAIAsgAEEnaksbDQMgBhCiAgsgASgCDCIABEAgASgCECIGQQRrKAIAIgNBeHEiC0EEQQggA0EDcSIDGyAAakkNAiADQQAgCyAAQSdqSxsNAyAGEKICCyABKAIYIgAEQCABKAIcIgZBBGsoAgAiA0F4cSILQQRBCCADQQNxIgMbIABqSQ0CIANBACALIABBJ2pLGw0DIAYQogILIAFBmAFqEL8CIAEoAvAEIgZBBGsoAgAiAEF4cUGEIUGIISAAQQNxIgMbSQ0BIANBACAAQaghTxsNAiAGEKICIAEoApwEIgAEQCABKAKgBCIGQQRrKAIAIgNBeHEiCyAAQR5sIgBBBEEIIANBA3EiAxtqSQ0CIANBACALIABBJ2pLGw0DIAYQogILIAEoAqgEIgAEQCABKAKsBCIGQQRrKAIAIgNBeHEiC0EEQQggA0EDcSIDGyAAakkNAiADQQAgCyAAQSdqSxsNAyAGEKICCyABKAK0BCIABEAgASgCuAQiBkEEaygCACIDQXhxIgtBBEEIIANBA3EiAxsgAGpJDQIgA0EAIAsgAEEnaksbDQMgBhCiAgsgASgCwAQiAARAIAEoAsQEIgZBBGsoAgAiA0F4cSILQQRBCCADQQNxIgMbIABqSQ0CIANBACALIABBJ2pLGw0DIAYQogILIAEoAswEIgAEQCABKALQBCIGQQRrKAIAIgNBeHEiC0EEQQggA0EDcSIDGyAAakkNAiADQQAgCyAAQSdqSxsNAyAGEKICCyABKALYBCIARQ0AIAEoAtwEIgZBBGsoAgAiA0F4cSILQQRBCCADQQNxIgMbIABqSQ0BIANBACALIABBJ2pLGw0CIAYQogILAkAgASgC5AQiAARAIAEoAugEIgFBBGsoAgAiBkF4cSIDQQRBCCAGQQNxIgYbIABqSQ0CIAZBACADIABBJ2pLGw0BIAEQogILIARBsBlqJAAPCwwBC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAu6pAECEX8BfiMAQbABayIGJAAgAy0AACIPQRh0IAMtAAMiB0EYdCINIA9yIAMtAAEiCkEIdCIRIAMtAAIiCUEQdCIMcnIiCEGA/gNxQQh0ciAMQQh2IAdyciEDAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAYCfwJAAkACQAJAAkACQAJAAkACQCAGAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAi0AAEEBaw4FBAABAgwDCyABQgA3A4ADIAEgAzYC/AIgAUEDOgD4AiAAQQA6AAggACAFNgIEIABBADYCAAxLCyACKAIEIQsgASgCCEECRiAPIBFyIAwgDXJyIgNByZCRkgVHcQ0DIAMgASgC2AIiCEcNBAxJCyACKAABIREgAS0AkQMNBCABKALQAiICIANGDQQgAS0AlANBAUZBACARQSBxGw0FIAAgETYCECAAIAI2AgwgACADNgIIIABBADoABCAAQQE2AgAMSQsgCEGJobm6BEcEQCAAQQE2AgAgAEEBOgAEDEkLIAFCADcDgAMgAUEBOgD4AiAAQQA6AAggACAFNgIEIABBADYCAAxICyAIQY2U6NAARwRAIABBATYCACAAQQE6AAQMSAsgAUIANwOAAyABQQI6APgCIABBADoACCAAIAU2AgQgAEEANgIADEcLIAAgAzYABSAAQQQ6AAQgAEEBNgIADEYLIAhB5siFogVHIAhByYiFogVHcQ1EAkAgBARAIAZBQGshCCABKALwAiENIAEtAPQCIQwjAEEQayILJAACQAJAIAxBAXFFDQAgDS0AowdBB0YNAAJAIAQoAgwiECgCACISIAQoAgQiDEcEQCAMIAQoAggiESgCACIOSQ0BIAtBBGogDUEBQQAgBCgCACAOaiAMIA5rIBIgDmtBABBCIAstAAQEQCAIIAstAAU6AAEgCEEcOgAADAQLIBAgECgCACALKAIMaiIENgIAIA0tAKMHQQdGBEAgESAENgIAIAhBqAI7AQAMBAsgBCAMRwRAIAhBnAI7AQAMBAsgCEEoOwEAIBEgDEGAgAJrIgRBACAEIAxNGyIEIBEoAgAiCCAEIAhLGzYCAAwDCyAIQagCOwEADAILIA4gDCAMQeCQxQAQ6gcACyAIQagCOwEACyALQRBqJAAgBi0AQSEEIAYtAEAiCEEoRg0BIAAgBikBQjcBBiAAQQxqIAZByABqKQEANwEAIAAgBDoABSAAIAg6AAQgAEEBNgIADEcLIAEgBzoAgwMgASAJOgCCAyABIAo6AIEDIAEgDzoAgAMgAUEEIAVrNgKEAyABIAIpAgA3A/gCDEQLIAEgBzoAgwMgASAJOgCCAyABIAo6AIEDIAEgDzoAgAMgAUEEIAVrNgKEAyABIAIpAgA3A/gCIARBAXENQyAAQQU6AAggAEIANwIADEULIAEtAOwCQQFrDgICAwELIAFCADcDgAMgAUECOgD4AiAAIBE2AAkgAEEDOgAIIAAgBTYCBCAAQQA2AgAMQwsgBiARNgIkIBFBGHYhByARQRB2IQIgEUEIdiEEAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBFB/wFxQckAaw4yAG9vb29vbwFvb29vb29vb29vb29vb29vBwoIbwsCBm8Mb29vCW9vBW9vAwRvb29vbw1vCyAEQf8BcUHEAGsOBQ8Obm4NbgsgBEH/AXFBzABHIAJB/wFxQdQAR3IgB0HFAEdyDW0gASgCCEECRg0zIAEoAuABQYGAgIB4Rg0QIAZB0JjRqgQ2AClBCSECIAZBCToAKAxkCyAEQf8BcUHjAGsOAhEQbAsgBEH/AXFBwgBrIgRFDREgBEEQRg0SDGsLIARB/wFxQcUAayIERQ0VIARBDUYNFAxqCyAHQfMARyAEQf8BcUHIAEdyIAJB/wFxQdkAR3INaSABKAIIQQJGDTogAS0AjAMNOyABLQCcAkECRg0XIAZB8JDlmgc2AClBCSECIAZBCToAKAxgCyAHQcEARyAEQf8BcUHBAEdyIAJB/wFxQc0AR3INaCABKAIIIgJBAkYNOyABLQCMAw08IAJBAUcNFyAGQeeCtYoENgApQQkhAiAGQQk6ACgMXwsgB0HMAEcgBEH/AXFB4wBHciACQf8BcUHUAEdyDWcgASgCCEECRg08IAEtAIwDDT0gASgCNEUNFyAGQeHG0eIENgApQQkhAiAGQQk6ACgMXgsgBEH/AXFByABrDgUXGGZmGWYLIAdB1gBHIARB/wFxQcQAR3IgAkH/AXFBwwBHcg1lIAEoAghBAkYNQCABKAJsRQ0cIAZB7YiNsgU2AClBCSECIAZBCToAKAxcCyAHQcQARyAEQf8BcUHLAEdyIAJB/wFxQccAR3INZCABKAIIQQJGDUEgASgC7AFBgYCAgHhGDRwgBkHilp2iBDYAKUEJIQIgBkEJOgAoDFsLIAdB5gBHIARB/wFxQdgAR3IgAkH/AXFByQBHcg1jIAEoAghBAkYNQSABKAKEAkGBgICAeEYNHCAGQeWwpbIGNgApQQkhAiAGQQk6ACgMWgsgBEH/AXFBwwBrIgRFDRwgBEERRg1HDGILIAdB9ABHIARB/wFxQdQAR3INYSACQf8BcUHYAEYNHAxhCyACQf8BcUHEAEcgB0HSAEdyDWAgASgCCEECRg0CIAZByZCRkgU2AClBCQxaCyACQf8BcUHOAEcgB0HEAEdyDV8MXQsgAkH/AXFBwQBHIAdB1ABHcg1eDFwLAkACQCABKALoAiIEQQNNBEBBqJDIACkDACIXpyICQf8BcUEERg0BIAZBL2ogAkEYdjoAACAGIAI6ACwgBkEkOgAoIAYgAkEIdjsALSAGIBdCIIinIgg2AjAMSgsgBEF8cUEERgRAQaiQyAApAwAiF6ciAkH/AXFBBEYNASAGQS9qIAJBGHY6AAAgBiACOgAsIAZBJDoAKCAGIAJBCHY7AC0gBiAXQiCIpyIINgIwDEoLIAEoAuQCIgIoAAAiD0UNACACKAAEIggNAQtBEQxYCwJAIARBCEYEQEEAIQNBqJDIACkDACIXpyICQf8BcUEERg0BIAZBMmogF0IwiD0BACAGIAI6ACwgBkEkOgAoIAYgF0IQiD4BLiAGIBdCCIg8AC0gF0IgiKchCAxJCyACLQAIIgNBAWsiCUH/AXEiB0EPS0GLgQIgB3ZBAXFFcg0AAkACQAJAAkACfyAEQQlGBEBBACEHQaiQyAApAwAiF6ciBEH/AXFBBEcNJCACQQlqIQpBACEMQQAMAQsgAkEJai0AACIMQQZLDQEgBEEKayEHIAJBCmohCkEAQQEgDHRB1QBxDQAaIAxBA0cNAUEBCyECIANBAWsOEAEBAwEDAwMDAwMDAwMDAwIDCyAGIAw6AClBEwxbCyAMQQZNQQBBASAMdEHUAHEbDVkgAkGAgAIgCXZxQQFHDQEMWQsgAg1YCwJAIAdFBEBBACEHQaiQyAApAwAiF6ciAkH/AXFBBEYNASAGQTJqIBdCMIg9AQAgBiACOgAsIAZBJDoAKCAGIBdCEIg+AS4gBiAXQgiIPAAtIBdCIIinIQgMSgsgCi0AACICDSMgB0EBRgRAQQAhB0GokMgAKQMAIhenIgJB/wFxQQRGDQEgBkEyaiAXQjCIPQEAIAYgAjoALCAGQSQ6ACggBiAXQhCIPgEuIAYgF0IIiDwALSAXQiCIpyEIDEoLIAotAAEiAg0kIAdBAkYEQEEAIQdBqJDIACkDACIXpyICQf8BcUEERg0BIAZBMmogF0IwiD0BACAGIAI6ACwgBkEkOgAoIAYgF0IQiD4BLiAGIBdCCIg8AC0gF0IgiKchCAxKC0EAIQcCQAJAIAotAAIiAg4CAgEACyAGIAI6AClBGgxaC0EBIQcLAkAgAUEIaiIJKAIAQQJGDQACQCAJKALAASICQYKAgIB4SCACRXJFBEAgCSgCxAEiBEEEaygCACIKQXhxIgtBBEEIIApBA3EiChsgAmpJDWUgCkEAIAsgAkEnaksbDQEgBBCiAgsgCSgCzAEiAkGCgICAeEggAkVyRQRAIAkoAtABIgRBBGsoAgAiCkF4cSILQQRBCCAKQQNxIgobIAJqSQ1lIApBACALIAJBJ2pLGw0BIAQQogILIAkoAtgBIgJBgoCAgHhIIAJFckUEQCAJKALcASIEQQRrKAIAIgpBeHEiC0EEQQggCkEDcSIKGyACakkNZSAKQQAgCyACQSdqSxsNASAEEKICCyAJKALkASICQYKAgIB4SCACRXJFBEAgCSgC6AEiBEEEaygCACIKQXhxIgtBBEEIIApBA3EiChsgAmpJDWUgCkEAIAsgAkEnaksbDQEgBBCiAgsgCSgC8AEiAkGCgICAeEggAkVyRQRAIAkoAvQBIgRBBGsoAgAiCkF4cSILQQRBCCAKQQNxIgobIAJqSQ1lIApBACALIAJBJ2pLGw0BIAQQogILIAkoAvwBIgJBgoCAgHhIIAJFckUEQCAJKAKAAiIEQQRrKAIAIgpBeHEiC0EEQQggCkEDcSIKGyACakkNZSAKQQAgCyACQSdqSxsNASAEEKICCyAJKAKgASEEIAkoAqQBIgoEQCAEIQIDQCACKAIAIgsEQCACQQRqKAIAIg5BBGsoAgAiDUF4cSIQQQRBCCANQQNxIg0bIAtqSQ1nIA1BACAQIAtBJ2pLGw0DIA4QogILIAJBDGooAgAiCwRAIAJBEGooAgAiDkEEaygCACINQXhxIhBBBEEIIA1BA3EiDRsgC2pJDWcgDUEAIBAgC0EnaksbDQMgDhCiAgsgAkEYaiECIApBAWsiCg0ACwsgCSgCnAEiAgRAIARBBGsoAgAiCkF4cSILIAJBGGwiAkEEQQggCkEDcSIKG2pJDWUgCkEAIAsgAkEnaksbDQEgBBCiAgsgCSgCrAEhBCAJKAKwASIKBEAgBEEUaiECA0AgAkEEaygCACILBEAgAigCACIOQQRrKAIAIg1BeHEiEEEEQQggDUEDcSINGyALakkNZyANQQAgECALQSdqSxsNAyAOEKICCyACQRBrKAIAIgsEQCACQQxrKAIAIg5BBGsoAgAiDUF4cSIQQQRBCCANQQNxIg0bIAtqSQ1nIA1BACAQIAtBJ2pLGw0DIA4QogILIAJBHGohAiAKQQFrIgoNAAsLIAkoAqgBIgIEQCAEQQRrKAIAIgpBeHEiCyACQRxsIgJBBEEIIApBA3EiChtqSQ1lIApBACALIAJBJ2pLGw0BIAQQogILIAkoArgBIQQgCSgCvAEiCgRAIAQhAgNAIAJBEGooAgAiCwRAIAJBFGooAgAiDkEEaygCACINQXhxIhBBBEEIIA1BA3EiDRsgC2pJDWcgDUEAIBAgC0EnaksbDQMgDhCiAgsgAkEcaigCACILBEAgAkEgaigCACIOQQRrKAIAIg1BeHEiEEEEQQggDUEDcSINGyALakkNZyANQQAgECALQSdqSxsNAyAOEKICCyACQShqKAIAIgsEQCACQSxqKAIAIg5BBGsoAgAiDUF4cSIQQQRBCCANQQNxIg0bIAtqSQ1nIA1BACAQIAtBJ2pLGw0DIA4QogILIAJBBGooAgAiCwRAIAJBCGooAgAiDkEEaygCACINQXhxIhBBBEEIIA1BA3EiDRsgC2pJDWcgDUEAIBAgC0EnaksbDQMgDhCiAgsgAkE4aiECIApBAWsiCg0ACwsgCSgCtAEiAkUNASAEQQRrKAIAIglBeHEiCiACQThsIgJBBEEIIAlBA3EiCRtqSQ1kIAlBACAKIAJBJ2pLGw0AIAQQogIMAQsMZAsgASADOgDHAiABIAw6AMYCIAFBBDoAxQIgASAHOgDEAiABIAhBGHQgCEGA/gNxQQh0ciAIQQh2QYD+A3EgCEEYdnJyNgLAAiABIA9BGHQgD0GA/gNxQQh0ciAPQQh2QYD+A3EgD0EYdnJyNgK8AiABQQI6ALkCIAFBAjoAnAIgAUECNgKQAiABQYGAgIB4NgKEAiABQYGAgIB4NgL4ASABQYGAgIB4NgLsASABQYGAgIB4NgLgASABQYGAgIB4NgLUASABQoCAgICQgICAgH83AsQBIAFCgICAgMAANwK8ASABQgQ3ArQBIAFCADcCrAEgAUKAgICAwAA3AqQBIAFBADYCmAEgAUEANgJsIAFBADYCSCABQQA2AkAgAUEANgI0IAFBADYCECABQQA2AggMXAsgBiADOgApQRIMVwsgASgC6AIiB0EASA1iIAEoAuQCIQQCQCAHRQRAQQEhAgwBCyAHEHEiAkUNGQsgBwRAIAIgBCAH/AoAAAsgASAHNgLoASABIAI2AuQBIAEgBzYC4AEMTwsgB0HUAEcgAkH/AXFBwQBHcg1bDFkLIAdBzABHIAJB/wFxQdQAR3INWiABKALkAiEEAkACQAJAAkACQAJAAkACQAJAAkACQCABAn8CQAJAAkAgASgC6AIiA0EDTQRAQQAhCUGokMgAKQMAIhenIgJB/wFxQQRGDQEgBkEvaiACQRh2OgAAIAYgAjoALCAGQSQ6ACggBiACQQh2OwAtIAYgF0IgiKciCDYCMAxUCyAEKAAAIgJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyIQkgA0EEayEDIARBBGohByABKAIARQ0CIAMhDAwBCyADIARqIQdBACEMQQAhA0EAIAEoAgBBAUcNAhoLIAkgASgCBEEBaiIIRw0DIAwhAyAJDAELIAINAUEACzYCBCABQQE2AgAjAEEQayIEJAAgAUHwAmoiAkEAOgAEAkACQEGAgAEQcSIIRQ0AIAhBAEGAgAH8CwBBgBAQcSIMRQ0AIAxBAEGAEPwLACAEQQxqQQA7AQAgBEEANgIIIAIoAgAiAigC+AYiD0EEaygCACIKQXhxQYSAAUGIgAEgCkEDcSILG0kNayALQQAgCkGogAFPGw1sIA8QogIgAigC4AYiCgRAIAIoAuQGIg9BBGsoAgAiC0F4cSINIApBAXQiCkEEQQggC0EDcSILG2pJDWwgC0EAIA0gCkEnaksbDW0gDxCiAgsgAigC/AYiD0EEaygCACIKQXhxQYQQQYgQIApBA3EiCxtJDWsgC0EAIApBqBBPGw1sIA8QogIgAigC7AYiCgRAIAIoAvAGIg9BBGsoAgAiC0F4cSINIApBAXQiCkEEQQggC0EDcSILG2pJDWwgC0EAIA0gCkEnaksbDW0gDxCiAgsgAkEAQdgG/AsAIAJBADYClAcgAkEANgKIByACQQA6AIQHIAJBADYCgAcgAiAMNgL8BiACIAg2AvgGIAJCAjcD8AYgAkIANwPoBiACQoCAgIAgNwPgBiACQQE2AtwGIAJBJDYC2AYgAkEAOgCmByACIAQpAwA3A5gHIAJBngdqIAQpAQY3AQAgBEEQaiQADAELAAsgASABLQCMAyIQOgCOAyADQQNLDQNBACEPQaiQyAApAwAiF6ciAkH/AXFBBEcNAkEAIQhBACEMQQAhBEEAIQsMBAtBACEICyAGIAg2AjAgBiAJNgIsQQohAiAGQQo6ACgMWgsgBkEvaiACQRh2OgAAIAYgAjoALCAGQSQ6ACggBiACQQh2OwAtIAYgF0IgiKciCDYCMAxMCyAHKAAAIgJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyIQggA0F8cSIKQQRGBEBBACEPQaiQyAApAwAiF6ciAkH/AXFBBEYEQEEAIQxBACEEQQAhCwwCCyAGQS9qIAJBGHY6AAAgBiACOgAsIAZBJDoAKCAGIAJBCHY7AC0gBiAXQiCIpyIINgIwDEwLIAcoAAQiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIhDCAKQQhGBEBBACEPQaiQyAApAwAiF6ciAkH/AXFBBEYEQEEAIQRBACELDAILIAZBL2ogAkEYdjoAACAGIAI6ACwgBkEkOgAoIAYgAkEIdjsALSAGIBdCIIinIgg2AjAMTAsgBygACCICQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZyciEEIApBDEYEQEEAIQ9BqJDIACkDACIXpyICQf8BcUEERgRAQQAhCwwCCyAGQS9qIAJBGHY6AAAgBiACOgAsIAZBJDoAKCAGIAJBCHY7AC0gBiAXQiCIpyIINgIwDEwLIAcoAAwiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIhCyADQX5xIgJBEEYEQEEAIQ9BqJDIACkDACIXpyICQf8BcUEERg0BIAYgAjoALCAGQSQ6ACggBiAXQhCIPQEuIAYgF0IIiDwALSAGIBdCIIinIgg2AjAMTAsgBy8AECIKQQh0IApBCHZyIQ4gAkESRw0CQQAhD0GokMgAKQMAIhenIgJB/wFxQQRHDQELQQAhCkEAIQMMAgsgBiACOgAsIAZBJDoAKCAGIBdCEIg9AS4gBiAXQgiIPAAtIAYgF0IgiKciCDYCMAxJCyAHLwASIgJBCHQgAkEIdnIhCiADQRRGBEBBACEPQQAhA0GokMgAKQMAIhenIgJB/wFxQQRGDQEgBkEyaiAXQjCIPQEAIAYgAjoALCAGQSQ6ACggBiAXQhCIPgEuIAYgF0IIiDwALSAXQiCIpyEIDEkLIActABQiD0ECSw0BIANBFUYEQEEAIQNBqJDIACkDACIXpyICQf8BcUEERg0BIAZBMmogF0IwiD0BACAGIAI6ACwgBkEkOgAoIAYgF0IQiD4BLiAGIBdCCIg8AC0gF0IgiKchCAxJC0EAIQMCQCAHLQAVIgIOAgEAJgtBASEDCyABKAIIQQJHBEBBESECIAhFIAxFcg0CQRshAiABKALAAiIHIAtJIAwgByALa0tyDQIgASgCvAIiDSAESSAIIA0gBGtLcg0CIBBBAXEgBCALciAHIAxHckUgCCANRnFyDQMgBkEbOgAoDFULQaCSxQAQ3QkACyAGIA86AClBFCECCyAGIAI6ACgMUgsgASADOgC5AiABIA86ALgCIAEgCjsBtgIgASAOOwG0AiABIAs2ArACIAEgBDYCrAIgASAMNgKoAiABIAg2AqQCIAEgCTYCoAIMTQsgB0HUAEcgAkH/AXFByQBHcg1ZIAEoAghBAkYNISABKALgAUGBgICAeEYNASAGQfOEpaIFNgApDE8LIAdBwgBHIAJB/wFxQccAR3INWCABKAIIQQJGDSIgAS0AjAMNIyABLQDFAkEERg0BIAZB86SdkgQ2AClBCSECIAZBCToAKAxPCwJAIAEtAIwDRQRAIAEoAsgBQYGAgIB4Rg0BIAZB84SlogU2AClBCSECIAZBCToAKAxQCyAGQfOEpaIFNgApDE0LIAEoAugCIghBAEgNXSABLQDGAiECIAEtAMcCIQMgASgC5AIhBAJAIAhFBEBBASEJDAELIAgQcSIJRQ0UCyAIBEAgCSAEIAj8CgAACyAGAn8CQCAIIAJBAnQoApiPSSIERgRAQQggAyACQQNGGyECQQAhBwwBCyAGIAg2AjAgBiAENgIsIAYgAjoAKUEMDAELA0AgByAJai0AACIDQQFrQf8BcSACQf8BcUkEQCAHQQFqIgcgCEcNAQwjCwsgBiACOgAqIAYgAzoAKUENCyICOgAoIAgNFkEAIQgMTgsCQCABKALoAkUEQEEAIQdBqJDIACkDACIXpyICQf8BcUEERg0BIAZBMmogF0IwiD0BACAGIAI6ACwgBkEkOgAoIAYgF0IQiD4BLiAGIBdCCIg8AC0gF0IgiKchCAxCCyABKALkAi0AACIHQQRJDQAgBiAHOgApQRchAiAGQRc6ACgMTgsgASAHOgDFAgxJCyAHQdMARyACQf8BcUHOAEdyDVUgASgCCEECRg0hIAEoAtQBQYGAgIB4Rg0BIAZB0JjRqgQ2AClBCSECIAZBCToAKAxMCyAHQfQARyACQf8BcUHYAEdyDVQgASgCiAMiBCABKALoAiICTw0BDEgLIAEoAugCIghBAEgNWSABKALkAiEEIAEtAMcCIQMgAS0AxgIhAgJAIAhFBEBBASEHDAELIAgQcSIHRQ0QCyAIBEAgByAEIAj8CgAACwJAAkACQAJAIAIOBAEAAgMACyAGIAI6AClBECECIAZBEDoAKCAIRQ1NIAcgCEEBEKIHDE0LIAhBAk8EQCAIIQIgA0H/AXFBEEkNIwxHCyAGIAg2AjAgBkECNgIsDEQLIAhBBkkNIiADQf8BcUEQTwRAIAEgCDYC3AEMRwsgByAHLQABOgAAIAcgBy0AAzoAASAHIActAAU6AAIgAUEDNgLcAQxGCyABKALgAUGBgICAeEYNIiABLQCMA0UEQCABIAg2AtwBDEYLIAZB9KS5mgU2AClBCAxDCyABIAQgAms2AogDQZ4EIQgCQAJAIAJFDQAgASgC5AIhCUEAIQcDQCAHIAlqIgMtAAAEQCACIAdBAWoiB0cNAQwCCwtBngIhCCAHQdAAa0Gwf0sNAQsgBiAINgIoQR4hBwxLCyABKAIIQQJGDSIgB0F/cyACaiEPIANBAWohCiACIAdBAWoiDmshDUEAIQwgBkEANgKAASAGQoCAgIAQNwJ4IAZB+ABqQQAgBxDvBSAGKAKAASEDA0BBAUECIAkgDGosAAAiCEEATiIQGyILIAYoAnggA2tLBH8gBkH4AGogAyALEO8FIAYoAoABBSADCyAGKAJ8IgRqIhIgEEUEQCASIAhBvwFxOgABIAhBwAFxQQZ2QUByIQgLIAg6AAAgBiADIAtqIgM2AoABIAcgDEEBaiIMRw0AC0EAIQkgBkEANgJIIAZCgICAgBA3A0AgAiAORwRAIAZBQGtBACANEO8FIAYoAkghCQNAQQFBAiAKLAAAIgJBAE4iCBsiAyAGKAJAIAlrSwR/IAZBQGsgCSADEO8FIAYoAkgFIAkLIAYoAkRqIgcgCAR/IAIFIAcgAkG/AXE6AAEgAkHAAXFBBnZBQHILOgAAIAYgAyAJaiIJNgJIIApBAWohCiAPQQFrIg8NAAsLIAZBPGoiAiAGQYIBai8BADsBACAGIAYoAX42AjggBigCeCIPQYCAgIB4Rg1AIARBCHYhAyAGKQNAIRcgBkGkAWogAi8BADsBACAGIAYoAjg2AqABIAEoAqwBIgogASgCpAFGBEAjAEEgayICJAACQCABQaQBaiIHKAIAIgxBqtWqFUsEf0EABUEEIAxBAXQiCyALQQRNGyILQRhsIQ4gAiAMBH8gAiAMQRhsNgIcIAIgBygCBDYCFEEEBUEACzYCGCACQQhqQQQgDiACQRRqEIUHIAIoAghBAUcNASACKAIQIQcgAigCDAsgB0GAlMUAEJMJAAsgAigCDCEMIAcgCzYCACAHIAw2AgQgAkEgaiQACyABIApBAWo2AqwBIAEoAqgBIApBGGxqIgIgAzoABSACIAQ6AAQgAiAPNgIAIAIgBigCoAE2AQYgAiAJNgIUIAIgFzcBDCACQQpqIAZBpAFqLwEAOwEADD8LAkAgASgC6AIiBEEDTQRAQQAhCUEAIQNBACEHQaiQyAApAwAiF6ciAkH/AXFBBEYNASAGQS9qIAJBGHY6AAAgBiACOgAsIAZBJDoAKCAGIAJBCHY7AC0gBiAXQiCIpyIINgIwDD0LIAEoAuQCIggoAAAiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIhAyAEQXxxQQRGBEBBACEJQQAhB0GokMgAKQMAIhenIgJB/wFxQQRGDQEgBkEvaiACQRh2OgAAIAYgAjoALCAGQSQ6ACggBiACQQh2OwAtIAYgF0IgiKciCDYCMAw9CyAIKAAEIgJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyIQkgBEEIRgRAQQAhB0GokMgAKQMAIhenIgJB/wFxQQRGDQEgBkEyaiAXQjCIPQEAIAYgAjoALCAGQSQ6ACggBiAXQhCIPgEuIAYgF0IIiDwALSAXQiCIpyEIDD0LQQAhBwJAAkAgCC0ACCICDgICAQALIAYgAjoAKUEWIQIgBkEWOgAoDEoLQQEhBwsgASAHOgCcAiABIAk2ApgCIAEgAzYClAIMRAsCQAJAIAEoAugCQQNNBEBBqJDIACkDACIXpyICQf8BcUEERg0BIAZBL2ogAkEYdjoAACAGIAI6ACwgBkEkOgAoIAYgAkEIdjsALSAGIBdCIIinIgg2AjAMPQsgASgC5AIoAAAiBw0BC0EjIQIgBkEjOgAoDEgLIAFBATYCCCABIAdBGHQgB0GA/gNxQQh0ciAHQQh2QYD+A3EgB0EYdnJyNgIMDEMLIAEoAugCIgJBA00EQEGokMgAKQMAIhenIgdB/wFxQQRGDUMgBkEvaiAHQRh2OgAAIAYgBzoALCAGQSQ6ACggBiAHQQh2OwAtIAYgF0IgiKciCDYCMAw6CyABKALkAiIEKAAAIQcgAkF8cUEERwRAIAQoAAQhAgw8C0EAIQJBqJDIACkDACIXpyIEQf8BcUEERg07IAZBL2ogBEEYdjoAACAGIAQ6ACwgBkEkOgAoIAYgBEEIdjsALSAGIBdCIIinIgg2AjAMOQsgB0HNAEcgAkH/AXFB0gBHcg1OIAEoAghBAkYNJSABLQCMAw0mIAEoAhBFDQIgBkHjkMnqBDYAKUEJIQIgBkEJOgAoDEULIAdB0ABHIAJB/wFxQcMAR3INTSABKAIIQQJGDSYgAS0AkAJBAkYNAiAGQeOSjYIFNgApQQkhAiAGQQk6ACgMRAsgB0HJAEcgAkH/AXFBzABHcg1MIAEoAghBAkYNJiABKAKYAUUNAiAGQeOYscoENgApQQkhAiAGQQk6ACgMQwsgASgC6AIiA0EDTQRAQQAhB0EAIQJBACEJQQAhA0EAIQhBACEMQQAhCkGokMgAKQMAIhenIgRB/wFxQQRGDTcgBkEvaiAEQRh2OgAAIAYgBDoALCAGQSQ6ACggBiAEQQh2OwAtIAYgF0IgiKciCDYCMAw2CyABKALkAiIEKAAAIgJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyIQIgA0F8cSIHQQRGBEBBACEHQQAhCUEAIQNBACEIQQAhDEEAIQpBqJDIACkDACIXpyIEQf8BcUEERg03IAZBL2ogBEEYdjoAACAGIAQ6ACwgBkEkOgAoIAYgBEEIdjsALSAGIBdCIIinIgg2AjAMNgsgBCgABCIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZyciEJIAdBCEYEQEEAIQdBACEDQQAhCEEAIQxBACEKQaiQyAApAwAiF6ciBEH/AXFBBEYNNyAGQS9qIARBGHY6AAAgBiAEOgAsIAZBJDoAKCAGIARBCHY7AC0gBiAXQiCIpyIINgIwDDYLIAQoAAgiA0EYdCADQYD+A3FBCHRyIANBCHZBgP4DcSADQRh2cnIhAyAHQQxGBEBBACEHQQAhCEEAIQxBACEKQaiQyAApAwAiF6ciBEH/AXFBBEYNNyAGQS9qIARBGHY6AAAgBiAEOgAsIAZBJDoAKCAGIARBCHY7AC0gBiAXQiCIpyIINgIwDDYLIAQoAAwiCEEYdCAIQYD+A3FBCHRyIAhBCHZBgP4DcSAIQRh2cnIhCCAHQRBGBEBBACEHQQAhDEEAIQpBqJDIACkDACIXpyIEQf8BcUEERg03IAZBL2ogBEEYdjoAACAGIAQ6ACwgBkEkOgAoIAYgBEEIdjsALSAGIBdCIIinIgg2AjAMNgsgBCgAECIMQRh0IAxBgP4DcUEIdHIgDEEIdkGA/gNxIAxBGHZyciEMIAdBFEYEQEEAIQdBACEKQaiQyAApAwAiF6ciBEH/AXFBBEYNNyAGQS9qIARBGHY6AAAgBiAEOgAsIAZBJDoAKCAGIARBCHY7AC0gBiAXQiCIpyIINgIwDDYLIAQoABQiCkEYdCAKQYD+A3FBCHRyIApBCHZBgP4DcSAKQRh2cnIhCyAHQRhGBEBBACEHQQAhCkGokMgAKQMAIhenIgRB/wFxQQRGDTcgBkEvaiAEQRh2OgAAIAYgBDoALCAGQSQ6ACggBiAEQQh2OwAtIAYgF0IgiKciCDYCMAw2CyAEKAAYIgpBGHQgCkGA/gNxQQh0ciAKQQh2QYD+A3EgCkEYdnJyIQogB0EcRwRAIAQoABwhBww3C0EAIQdBqJDIACkDACIXpyIEQf8BcUEERg02IAZBL2ogBEEYdjoAACAGIAQ6ACwgBkEkOgAoIAYgBEEIdjsALSAGIBdCIIinIgg2AjAMNQsgASgC4AFBgYCAgHhHBEAgBkHjko2CBTYAKQxBCwJAAkACQAJAAkACQCABLQCMA0UEQCABKALoAiIHDQJBACEDQaiQyAApAwAiF6ciAkH/AXFBBEcNAUEBIQJBACEIDAMLIAZB45KNggU2ACkMRQsgBkEyaiAXQjCIPQEAIAYgAjoALCAGQSQ6ACggBiAXQhCIPgEuIAYgF0IIiDwALSAXQiCIpyEIDDkLQQEhAiABKALkAiIELQAAIQggB0EBRgRAQQAhA0GokMgAKQMAIhenIgRB/wFxQQRGDQEgBkEyaiAXQjCIPQEAIAYgBDoALCAGQSQ6ACggBiAXQhCIPgEuIAYgF0IIiDwALSAXQiCIpyEIDDkLIAQtAAEhAyAHQQJGBEBBqJDIACkDACIXpyICQf8BcUEERgRAQQEhAgwCCyAGQTJqIBdCMIg9AQAgBiACOgAsIAZBJDoAKCAGIBdCEIg+AS4gBiAXQgiIPAAtIBdCIIinIQgMOQsgBC0AAiECIAdBA0cNASACRSECQaiQyAApAwAhFwsgF6ciB0H/AXFBBEYNASAGQTJqIBdCMIg9AQAgBiAHOgAsIAZBJDoAKCAGIBdCEIg+AS4gBiAXQgiIPAAtIBdCIIinIQgMNwsCQAJAAkAgBC0AAyIJDgICAQALIAZCgSo3AiwgBkEkOgAoQQAhCAw4C0EBIQkLIAINNSAHQQRGDQEgBkKBKjcCLCAGQSQ6AChBACEIDDYLQQAhCSACRQ00CyABIAkgA0H/AXFBEHRyIAhB/wFxQQh0cjYCkAIMPQsCQAJ/IAEoAugCIgRBA00EQEEAIQlBAEGokMgAKQMAIhenIgJB/wFxQQRGDQEaIAZBL2ogAkEYdjoAACAGIAI6ACwgBkEkOgAoIAYgAkEIdjsALSAGIBdCIIinIgg2AjAMNgsgASgC5AIiAygAACICQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZyciEJIARBfHFBBEYEQEEAQaiQyAApAwAiF6ciAkH/AXFBBEYNARogBkEvaiACQRh2OgAAIAYgAjoALCAGQSQ6ACggBiACQQh2OwAtIAYgF0IgiKciCDYCMAw2CyAEQQhHDQEgAygABAshByABIAk2ApwBIAFBATYCmAEgASAHQRh0IAdBgP4DcUEIdHIgB0EIdkGA/gNxIAdBGHZycjYCoAEMPQsgBkKBKjcCLCAGQSQ6AChBACEIDDMLIAEoAuABQYGAgIB4RwRAIAZB7YiNsgU2ACkMPwsCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAS0AjANFBEAgASgC5AIhAiABKALoAiIHQQFLDQJBACEJQaiQyAApAwAiF6ciA0H/AXFBBEcNAUEAIQMMAwsgBkHtiI2yBTYAKQxMCyAGIAM6ACwgBkEkOgAoIAYgF0IQiD0BLiAGIBdCCIg8AC0gBiAXQiCIpyIINgIwDEALIAIvAAAiA0EIdCADQQh2ciEJIAdBAmsiA0EBSw0BQaiQyAApAwAhF0ECIQcLIBenIgRB/wFxQQRGBEAgAiAHaiADaiEHQQAhCEEAIQMMAgsgBiAEOgAsIAZBJDoAKCAGIBdCEIg9AS4gBiAXQgiIPAAtIAYgF0IgiKciCDYCMAw+CyACLwACIgNBCHQgA0EIdnIhCCAHQQRrIgNBAUsNASACQQRqIQdBqJDIACkDACEXCyAXpyICQf8BcUEERgRAIAMgB2ohB0EAIQxBACEDDAILIAYgAjoALCAGQSQ6ACggBiAXQhCIPQEuIAYgF0IIiDwALSAGIBdCIIinIgg2AjAMPAsgAi8ABCIDQQh0IANBCHZyIQwgB0EGayIDQQFLDQEgAkEGaiEHQaiQyAApAwAhFwsgF6ciAkH/AXFBBEYEQCADIAdqIQdBACEDDAILIAYgAjoALCAGQSQ6ACggBiAXQhCIPQEuIAYgF0IIiDwALSAGIBdCIIinIgg2AjAMOgsgAi8ABiIDQQh0IANBCHZyIQsgB0EIayIDQQFLDQEgAkEIaiEHQaiQyAApAwAhFwsgF6ciAkH/AXFBBEYEQCADIAdqIQdBACEKQQAhAwwCCyAGIAI6ACwgBkEkOgAoIAYgF0IQiD0BLiAGIBdCCIg8AC0gBiAXQiCIpyIINgIwDDgLIAIvAAgiA0EIdCADQQh2ciEKIAdBCmsiA0EBSw0BIAJBCmohB0GokMgAKQMAIRcLIBenIgJB/wFxQQRGBEAgAyAHaiEDQQAhBEEAIQ8MAgsgBiACOgAsIAZBJDoAKCAGIBdCEIg9AS4gBiAXQgiIPAAtIAYgF0IgiKciCDYCMAw2CyACLwAKIgNBCHQgA0EIdnIhBCACQQxqIQMgB0EMayIPQQFLDQFBqJDIACkDACEXCyAXpyICQf8BcUEERgRAIAMgD2ohD0EAIQNBAAwCCyAGIAI6ACwgBkEkOgAoIAYgF0IQiD0BLiAGIBdCCIg8AC0gBiAXQiCIpyIINgIwDDQLIAMvAAAiA0EIdCADQQh2ciEOIAdBfnFBDkcEQCAHQRBrIQMgAkEQaiEPIAIvAA4MAQtBACEDQaiQyAApAwAiF6ciD0H/AXFBBEcNJSACIAdqIQ9BAAshBwJAIAECfyADQQNNBEBBACECQQBBqJDIACkDACIXpyIDQf8BcUEERg0BGiAGQS9qIANBGHY6AAAgBiADOgAsIAZBJDoAKCAGIANBCHY7AC0gBiAXQiCIpyIINgIwDDULIA8oAAAiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIhAiADQXxxQQRGBEBBAEGokMgAKQMAIhenIgNB/wFxQQRGDQEaIAZBL2ogA0EYdjoAACAGIAM6ACwgBkEkOgAoIAYgA0EIdjsALSAGIBdCIIinIgg2AjAMNQsgA0EIRw0BIA8oAAQiA0EYdCADQYD+A3FBCHRyIANBCHZBgP4DcSADQRh2cnILIgM2ApQBIAEgAjYCkAEgASAEQf//A3FBAXQ2AowBIAEgCkH//wNxQQF0NgKIASABIAtB//8DcUEBdDYChAEgASAMQf//A3FBAXQ2AoABIAEgDv0QIAdBCHQgB0GA/gNxQQh2cv0aASAJ/RoCIAj9GgP9qQFBAf2rAf0LA3AgAUEBNgJsDDwLIAZCgSo3AiwgBkEkOgAoQQAhCAwyCwJAAkACQCABLQCMA0UEQEECIQIgAS0AxgJBAWsOBgcCAQMHAgMLIAZB4padogQ2ACkMPwsgASgC4AFBgYCAgHhHBEBBASECDAILIAZCgSo3AiwgBkEkOgAoQQAhCAwzC0EGIQILIAEoAugCIgdBAEgNTQJAIAcEQCABKALkAiEDIAcQcSIERQ0FIAcEQCAEIAMgB/wKAAALIAIgB0cNASABIAI2AvQBIAEgBDYC8AEgASACNgLsAQw8CyAGQeKWnaIENgApQSEhAiAGQSE6ACgMPwsgBkHilp2iBDYAKUEhIQIgBkEhOgAoIAQgB0EBEKIHDD4LIAEoAugCIgdBAEgNTCABKALkAiEEAkAgB0UEQEEBIQIMAQsgBxBxIgJFDQMLIAcEQCACIAQgB/wKAAALIAEgBzYCjAIgASACNgKIAiABIAc2AoQCDDkLIAdB0ABHIAJB/wFxQcMAR3INRSABLQCMAw0kIAEtAI8DRQRAIAFBAToAjwMgASgCCEECRg0mIAEoAugCIgxBAWshDyAMQQJrIQsgASgC5AIiCiAMaiEEQQAhByAMIQMDQCAHIAxGDS0gByAKaiIJQQFqIQggCS0AAEUEQCAHRQ07IANBAWshByAIIQQgAwwsCyAHIA9GDS0gByAKaiECIAgtAABFDSogByALRg0tIAJBAmotAABFDSkgA0EDayEDIAdBA2oiB0HRAEcNAAsMOQsgBkHpho2CBTYAKUEJIQIgBkEJOgAoDDwLIAEoAogDIgMgASgC6AIiAkkEQEEnIQIgBkEnOgAoDDwLIAEgAyACazYCiANBngQhAwJAAkAgAkUNACABKALkAiEEQQAhBwNAIAQgB2otAAAEQCACIAdBAWoiB0cNAQwCCwtBngIhAyAHQdAAa0Gwf0sNAQsgBiADNgIoQR4hAgw8CyAHQQFqIgMgAkYEQCAGQQA2AiwgBkGeCjsBKEEeIQIMPAsgASgCCEECRiIMDQEgAiAHa0ECayEIIAMgBGoiAi0AAA0CQQAgAUEIaiAMGyEJIAJBAWohD0EAIQwgBkEANgJIIAZCgICAgBA3AkAgBkFAa0EAIAcQ7wUgBigCSCECA0BBAUECIAQgDGosAAAiA0EATiILGyIKIAYoAkAgAmtLBH8gBkFAayACIAoQ7wUgBigCSAUgAgsgBigCRGoiDiALBH8gAwUgDiADQb8BcToAASADQcABcUEGdkFAcgs6AAAgBiACIApqIgI2AkggByAMQQFqIgxHDQALIAhBAEgNSiAIRQRAQQEhAgwmCyAIEHEiAg0lCwALQaCUxQAQ3QkACyAGIAg2AjAgBkGeCjsBKEEeIQIMOAsgCSAIQQEQogcMNwsgBkEyaiAXQjCIPQEAIAYgBDoALCAGQSQ6ACggBiAXQhCIPgEuIAYgF0IIiDwALSAXQiCIpyEIDCkLIAFCADcDgAMgAUECOgD4AiAAQQQ6AAggACAFNgIEIABBADYCACAAIAEoAtgCNgAJDEELIAFCADcDgAMgAUECOgD4AiAAIBE2AAkgAEEDOgAIIAAgBTYCBCAAQQA2AgAMQAsgASABKALcAkEEazYC3AIgASgCAEUEQCAAQQE2AgAgAEECOgAEDEALIAEoAgRBAWoiAiADRwRAIAAgAjYCDCAAIAM2AgggAEEKOgAEIABBATYCAAxACyABIAM2AgQgAUEBNgIAIAEtAJEDRQRAIAEgASkDyAJCBHw3A8gCIAEgByAJIAogDyABKALQAkF/cyICc0H/AXFBAnQoApiNQyACQQh2cyICc0H/AXFBAnQoApiNQyACQQh2cyICc0H/AXFBAnQoApiNQyACQQh2cyICc0H/AXFBAnQoApiNQyACQQh2c0F/czYC0AILIAFB5siFogU2APkCIAFBBzoA+AIgAEEAOgAIIAAgBTYCBCAAQQA2AgAMPwsgBiACOgApQRgMNQsgBiACOgApQRkMNAtBwJPFABDdCQALIAYgAjoAKUEVIQIgBkEVOgAoDC8LQdCTxQAQ3QkACyABIAg2AtABIAEgCTYCzAEgASAINgLIAQwpC0Hgk8UAEN0JAAsgBkHzpJ2SBDYAKQwpC0GQlMUAEN0JAAsgByAHLQABOgAAQQEhAgwjCyAGIAg2AjAgBkEGNgIsDCALIAZB9KS5mgU2AClBBgwgC0Hwk8UAEN0JAAtBsJPFABDdCQALIAZB8JDlmgc2ACkMIgtBsJLFABDdCQALIAZB54K1igQ2ACkMIAtBwJHFABDdCQALIAZB4cbR4gQ2ACkMHgtB4JHFABDdCQALIAZB45DJ6gQ2ACkMHAtB8JHFABDdCQALQYCSxQAQ3QkAC0Ggk8UAEN0JAAsgBiAPOgAsIAZBJDoAKCAGIBdCEIg9AS4gBiAXQgiIPAAtIAYgF0IgiKciCDYCMAwNC0HQkcUAEN0JAAtBkJLFABDdCQALIAZB6YaNggU2ACkMFQtB1JXFABDdCQALIAgEQCACIA8gCPwKAAALIAhBCHYhAyAGKQJEIRcgBigCQCEPIAkoArABIgogCSgCqAFGBEAjAEEgayIEJAACQCAJQagBaiIHKAIAIgxBksmkEksEf0EABUEEIAxBAXQiCyALQQRNGyILQRxsIQ4gBCAMBH8gBCAMQRxsNgIcIAQgBygCBDYCFEEEBUEACzYCGCAEQQhqQQQgDiAEQRRqEIUHIAQoAghBAUcNASAEKAIQIQcgBCgCDAsgB0GwlMUAEJMJAAsgBCgCDCEMIAcgCzYCACAHIAw2AgQgBEEgaiQACyABKAK0ASAJIApBAWo2ArABIApBHGxqIgcgFzcCFCAHIA82ARAgByAINgEMIAcgAjYBCCAHIAhBEHY7AQYgByADOgAFIAcgCDoABCAHQQA2AgAMEQsgA0EDayEHIAJBAmohCSACQQNqIQQgA0ECawwBCyADQQJrIQcgAkEBaiEJIAJBAmohBCADQQFrCyAHRQRAQQAhB0GokMgAKQMAIhenIgJB/wFxQQRGDQQMAwsgBC0AAA0OQQJrIQcgCUECaiEEDAMLIAdB9ABHIAJB/wFxQdgAR3INGiABKAKIAyIEIAEoAugCIghJDQ4gASgC5AIhAiABIAQgCGs2AogDQZ4EIQwCQAJAIAhFDQAgAiAIaiEJQQAhB0EAIAhrIQMDQCACIAdqIg8tAAAEQCADIAdBAWoiB2oNAQwCCwtBngIhDCAHQdAAa0Gwf0sNAQsgBiAMNgIoQR4hBwwTCyAHQQFqIgMgCEYEQCAGQQA2AiwgBkGeDjsBKEEeIQcMEwsgCCADayIOQQFNBEAgBkEANgIsIAZBngo7AShBHiEHDBMLAkAgCSACIANqIhBBAmoiBEcEQCAQLQAAIQwgEC0AASEKIAcgCGshC0EAIQMDQCADIA9qQQNqLQAARQ0CIAMgC2ogA0EBaiEDQXxHDQALCyAGQZ4EOwEoQR4hBwwTCwJAAkACQAJAIANBAmoiDyAOSyADQX1LckUEQCADQQNqIgsgDksNAQJAIAkgCyAQaiIPRwRAIAMgB2ohCSAIQQRrIQ1BACEIA0AgAiAJakEEai0AAEUNAiAIQQFqIQggDSAJQQFqIglHDQALCyAGQZ4EOwEoQR4hBwwYCyAIIAtqIgkgCEkgCSAOS3INAiAJQQFqIRIgCSAOTw0DIAEoAghBAkYNBCAGQUBrIQ0gAiEJIAwhCyAQIBJqIRMgDiASayECIwBBIGsiDiQAAkAgB0HQAGtBsH9NBEAgDUECNgIAIA1BAToABAwBCyAOQQA2AhwgDkKAgICAEDcCFCAOQRRqQQAgBxDvBSAOKAIcIQwDQEEBQQIgCSwAACIQQQBOIhQbIhIgDigCFCAMa0sEfyAOQRRqIAwgEhDvBSAOKAIcBSAMCyAOKAIYIhVqIhYgFAR/IBAFIBYgEEG/AXE6AAEgEEHAAXFBBnZBQHILOgAAIA4gDCASaiIMNgIcIAlBAWohCSAHQQFrIgcNAAsgDigCFCEQQQAhBwJAAkACQAJAAkACQAJAAkACQAJAAkAgC0H/AXEOAgEABAsgCkH/AXENAUEBIQcLAkAgA0EETwRAIAQoAABBgIGChHhxDQlBBCAEQQNqQXxxIgkgBGsgBCAJRhsiCSADQQRrIgpJBEADQCAEIAlqKAIAQYCBgoR4cQ0LIAlBBGoiCSAKSQ0ACwsgBCAKaigAAEGAgYKEeHFFDQEMCQsgA0UNACAEIANBAWsiCWosAABBAEgNCCAJRQ0AIAQgA0ECayIJaiwAAEEASA0IIAlFDQAgBCADQQNrIglqLAAAQQBIIAlyDQgLIA5BFGogBCADEPsCIA4oAhRBAUcNASAOIA4pAhg3AwhB3IzFAEELIA5BCGpBzIzFAEHojMUAEOAGAAsgDUECNgIAIA1BBToABAwHCyAOKAIcIgpBAEgNASAOKAIYIQQCQCAKRQRAQQEhCwwBCyAKEHEiC0UNAwsgCgRAIAsgBCAK/AoAAAsgDkEUaiAPIAgQ+wIgDigCFEEBRgRAIA1BAjYCACANQQA6AAQMBQsgDigCHCIPQQBIDS0gDigCGCEEAkAgD0UEQEEBIRIMAQsgDxBxIhJFDQMLIA8EQCASIAQgD/wKAAALAn8CQCAHRQRAIAJBAEgNMAJAIAJFBEBBASEJDAELIAIQcSIJRQ0GCyACBEAgCSATIAL8CgAACyAOIAI2AhAgDiAJNgIMIA4gAjYCCCAOQRRqIAkgAhD7AiAOKAIURQ0BQQAhCSACRQ0GIA4pAgynIAJBARCiBwwGCyACQQBIDS8CQCACRQRAQQEhCQwBCyACEHEiCUUNBQsgAgRAIAkgEyAC/AoAAAsgCUEIdiETIAIhBEEADAELIA4pAwgiF0IgiKchCSAXpyIEQYCAgIB4Rg0EIBdCKIinIRNBAQshFCANIBM7AAkgDSAHOgA0IA0gDzYCMCANIBI2AiwgDSAPNgIoIA0gCjYCJCANIAs2AiAgDSAKNgIcIA0gDDYCGCANIBU2AhQgDSAQNgIQIA0gAjYCDCANIAk6AAggDSAENgIEIA0gFDYCACANQQtqIBNBEHY6AAAMBwsgDUECNgIAIA1BBjoABAwFC0HYmsgAEP8HCwALIA1BAjYCACANIAk6AAQgD0UNACASIA9BARCiBwsgCkUNASALIApBARCiBwwBCyANQQI2AgAgDUEAOgAECyAQRQ0AAkAgFUEEaygCACICQXhxIgRBBEEIIAJBA3EiAhsgEGpPBEAgAkEAIAQgEEEnaksbDQEgFRCiAgwCCwwlCwwlCyAOQSBqJAAgBi0ARCEEIAYoAkAiCUECRg0NIAZBiAFqIgggBkHkAGr9AAIA/QsDACAGQZgBaiIKIAZB9ABqKAIANgIAIAYgBikBRjcDoAEgBiAG/QACVP0LA3ggBiAGQcwAaikBADcBpgEgBi0ARSEPIAEoAsQBIgMgASgCvAFGBEAjAEEgayICJAACQCABQbwBaiIHKAIAIgxByaSSCUsEf0EABUEEIAxBAXQiCyALQQRNGyILQThsIQ4gAiAMBH8gAiAMQThsNgIcIAIgBygCBDYCFEEEBUEACzYCGCACQQhqQQQgDiACQRRqEIUHIAIoAghBAUcNASACKAIQIQcgAigCDAsgB0HQksUAEJMJAAsgAigCDCEMIAcgCzYCACAHIAw2AgQgAkEgaiQACyABKALAASADQThsaiICQSRqIAj9AAMA/QsCACACIA86AAUgAiAEOgAEIAIgCTYCACACIAYpA6ABNwEGIAIgBv0AA3j9CwIUIAJBDGogBikBpgE3AQAgAkE0aiAKKAIANgIAIAEgA0EBajYCxAEMDAtBAiAPIA5BkJPFABDqBwALIAsgDiAOQYCTxQAQ6gcACyALIAkgDkHwksUAEOoHAAsgEiAOIA5B4JLFABDqBwALQcCSxQAQ3QkAC0EAIQdBqJDIACkDACIXpyICQf8BcUEERw0AIAwNAQwMCyACQf8BcUEDRw0LIBdCIIinIgcoAgAhAiAHQQRqKAIAIgQoAgAiAwRAIAIgAxEDAAsgBCgCBCIDBEAgAiADIAQoAggQogcLIAdBDEEEEKIHDAsLIAZBQGsgBCAHIAEoAogDIgIQ3wEgBigCRCEHAkACQCAGKAJAQQFGBEAgB0GAgICAeHJBgICAgHhGDQ0gBigCSCEJDAELIAYoAkghCSACIAYoAkwiA08NASAHRQ0MCyAJIAdBARCiBwwLCyABIAIgA2s2AogDIAEoAvgBIgJBgoCAgHhIIAJFckUEQCABKAL8ASACQQEQogcLIAEgAzYCgAIgASAJNgL8ASABIAc2AvgBDAoLIAZCgSo3AiwgBkEkOgAoQQAhCAsgBiAGKAApNgJAIAYgBkEsaigAADYAQyAGQShqQQFyIQlBJCECIAYoAiQhBwJ/AkACQAJAIAYtAENBAWsOAwABAhULIAZBxABqDAILIAhBCGoMAQsgCEEIagstAABBJUcNEUEhIQIgBi0AQ0EDTwRAIAgoAgAhAyAIQQRqKAIAIgQoAgAiDARAIAMgDBEDAAsgBCgCBCIMBEAgAyAMIAQoAggQogcLIAhBDEEEEKIHCwwSCyABIAo2AiwgASALNgIoIAEgDDYCJCABIAg2AiAgASADNgIcIAEgCTYCGCABIAI2AhQgAUEBNgIQIAEgB0EYdCAHQYD+A3FBCHRyIAdBCHZBgP4DcSAHQRh2cnI2AjAMBwsgB0UNBiACQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZyciICIAdBGHQgB0GA/gNxQQh0ciAHQQh2QYD+A3EgB0EYdnJyIgdyQQBIDQYgASACNgI8IAEgBzYCOCABQQE2AjQMBgtBKCEHIAZBKDoAKAwKCyAGIAQ6AClBHiEHIAZBHjoAKAwJC0ELCyICOgAoIAhFBEBBACEIDAcLIAcgCEEBEKIHDAYLIAEgAjYC3AELIAEgBzYC2AEgASAINgLUAQsgBkEoakEBciEJQSghAgwLC0EnIQcgBkEnOgAoDAMLQQUhAiAGQQU6ACgMAQtBByECIAZBBzoAKAsgBiAGKAApNgJAIAYgBkEsaigAADYAQyAGQShqQQFyIQkMBAsgBiAGKAApNgJ4IAYgBkEsaigAADYAe0EoIQIgBkEoakEBciEJIAdBKEYNBiAGKAIwIQggByECDAILIAYgDDoAKiAGIAM6AClBDwsiAjoAKCAGIAYoACk2AnggBiAGQSxqKAAANgB7IAZBKGpBAXIhCQsgBiAGKAB7NgBDIAYgBigCeDYCQAsgBkE2aiAGQcYAai0AADoAACAGIAYvAUQ7ATQgBigCQCEHCyAHQRh2IQMMAQsgBkEoakEBciEJQSghAgsgBiADOgAsIAkgBi8BNDsABEECIQMgCUEGaiAGQTZqLQAAOgAAIAYgBzsAKSAGIAdBEHY6ACsgBiAINgIwIAYgAjoAKAJAIAJBKEcEQAJAIAJBI0sNACAGKAIkIgdB5sbR4gRGDQBBAyEDIAdBIHENAgsgBkEaaiICIAYtACs6AAAgBkESaiAGQTNqLQAAOgAAIAYgBi8AKTsBGCAGIAYvADE7ARAgBi0ALCEDIAYoAC0hByAGLQAoIgRBKEYNASAAIAYvARg7AAUgAEEHaiACLQAAOgAAIAYgBigBEDYCCCAGIAZBE2ooAAA2AAsgAEEQaiAGKAALNgAAIAAgBigCCDYADSAAIAc2AAkgACADOgAIIAAgBDoABCAAQQE2AgAMBQsgBigCJCEHCyAGIAYoARA2AgggBiAGQRNqKAAANgALIAYgBigCCDYCHCAGIAYoAAs2AB8gEUHJirmiBEcEQCABQgA3A4ADIAFBAjoA+AILIAAgBzYACSAAIAM6AAggACAFNgIEIAAgBigCHDYADSAAQQA2AgAgAEEQaiAGKAAfNgAADAMLIAZBAjYCRCAGQaSVxQA2AkAgBkIBNwJMIAYgBkEkaq1CgICAgJANhDcDeCAGIAZB+ABqNgJIIAZBQGtBtJXFABCNCAALIAFBADsAjQMgASADNgLYAiAAQQY6AAggAEIANwIADAELIAEgAzYC2AIgAS0AkQNFBEAgAUIENwPIAiABIAcgCSAKIA9B/wFzQQJ0KAKYjUNB////B3MiAnNB/wFxQQJ0KAKYjUMgAkEIdnMiAnNB/wFxQQJ0KAKYjUMgAkEIdnMiAnNB/wFxQQJ0KAKYjUMgAkEIdnNBf3M2AtACCyABQQA2AugCIAEgCzYC3AICQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgD0HJAEcEQCAPQeYARwRAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgD0HQAGsOKwEAAAAAAAAAAAAAAAAAAAAABgkHAAoABQALAAAACAAABAAAAgMAAAAAAAwACyAPQSBxDRhBIiECDCgLQSIhAiAHQcUARyAKQcwAR3IgCUHUAEdyDSdBAyEMQYAGIQIMIgtBBiEIQQEhAiAKQcIAayIERQ0KIARBEEYNCwwkC0EGIQhBASECIApBxQBrIgRFDQwgBEENRg0LDCMLQQYhCEEBIQIgB0HzAEcgCkHIAEdyIAlB2QBHcg0iQQkhAkEJIQwMHwtBBiEIQQEhAiAHQcEARyAKQcEAR3IgCUHNAEdyDSEMHQtBBiEIQQEhAiAHQcwARyAKQeMAR3IgCUHUAEdyDSAMGwtBBiEIQQEhAiAKQcgAaw4FCQofHwsfC0EGIQhBASECIAdB1gBHIApBxABHciAJQcMAR3INHkEYIQJBGCEMDBsLQQYhCEEBIQwgB0HEAEcgCkHLAEdyIAlBxwBHcg0QQQYhAgwaC0EGIQhBASECIAdB5gBHIApB2ABHciAJQckAR3INHEH/////ByECDBoLQQYhCEEBIQIgCkHDAGsiBEUNCCAEQRFGDQkMGwtBBiEIQQEhAiAHQfQARyAKQdQAR3IgCUHYAEdyDRogAS0AkgNBAXENGkH/////ByECDBgLQQEhDCAHQdQARyAJQckAR3INDEEEIQIMFgsgB0HCAEcNGEEBIQwgCUHHAEYNFQwYC0EBIQwgB0HTAEcgCUHOAEdyDQpBgAIhAgwUCyAHQfQARyAJQdgAR3INFiABLQCSA0EBcQ0WQf////8HIQIMFAsgB0HNAEcgCUHSAEdyDRVBICECQSAhDAwSCyAHQdAARw0UIAlBwwBGDRAMFAsgB0HJAEcNEyAJQcwARg0ODBMLIAdB0ABHIAlBwwBHcg0SIAEtAJMDQQFxDRJB/////wchAgwQCyAHQfQARyAJQdgAR3INESABLQCSA0EBcQ0RQf////8HIQIMDwsgCkHkAEcgCUHBAEdyRSAHQdQARnENAUEBIQJBBiEIIApB4wBrDgIGBRALIApBxABHIAlBwQBHckUgB0HUAEZxDQNBIiECIApBxABrDgUGCBERCRELIAEtAI4DRQRAIABB5siFogU2AAUgAEEgOgAEIABBATYCAAwSCyALQQNLBEBBBSEIQQAhAgwPCyAAQQE2AgAgAEEfOgAEDBELQQYhCAtBASECDAwLIAEtAI0DRQRAIABByYiFogU2AAUgAEEgOgAEIABBATYCAAwPCyABQQE6AIwDQQchCEEAIQIMCwsgB0HUAEcNCiAJQcEARg0CDAoLIAdBzABHIAlB1ABHcg0JQRohAkEaIQwMBgsgB0HUAEcgCUHBAEdyDQoLQaT4xgBBKEHElcUAEOsHAAsgB0HEAEcgCUHOAEdyDQhBACECDAQLIAdB0gBHIAlBxABHcg0HQQ0hAkENIQwMAgtBCCECQQghDAwBC0EEIQJBBCEMCyALIAxJDQELIAIgC0kNAEEGIQhBACECDAELQQYhCEECIQICQAJAAkACQAJAIA9ByQBrDh4ABQUFBQUFAQUFBQUFBQUFBQUFBQUFBQUFBQUFBQIFCyAKQcUAaw4EAwQEAgQLIAdBxQBHIApBzABHciAJQdQAR3INAwwECyAHQcwARyAKQeMAR3INAiAJQdQARg0DDAILIAdB0gBHDQEgCUHEAEYNAgwBCyAHQcQARw0AIAlBzgBGDQELIAFCADcDgAMgASADNgD5AiABIAg6APgCIAEgAjoA7AIgACADNgIQIAAgCzYCDCAAQQE6AAggACAFNgIEIABBADYCAAwCC0EhIQILIAAgAzYABSAAIAI6AAQgAEEBNgIACyAGQbABaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQdiayAAQ/wcAC4J7AyJ/B30BfiMAQcABayIEJAACQAJAAkACQAJAIAEoAgBBAkcEQCABKAKkAiICIAEoAmRJBEAgAUH0A2ohFiABQbwCaiETIAFB8ABqIRwgAUGwA2ohHSABQYADaiEeIAFBjANqIR8gAUGYA2ohICABQaQDaiEhA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCYCACQShsaiINKQMQIAEpA4ABfCIrIAEpA3BRBEAgASgCuAIiAyANKAIYIgJBB2pBeHFJDQEgAiADSw0CIAEoArQCIQMgDS0AICIbQQFGBEAgBEEYaiADIAIQ+QIgBCgCGCIDQYCAgIB4RwRAIAQoAhwgBEEANgK4ASAEQQE2AqwBIARBuMnBADYCqAEgBEIENwKwASAEQagBahCSByEZIANFDR4gA0EBEKIHDB4LIAQoAiAhGSAEKAIcIhpBgICAgHhGDR0gBCgCJCECIBkhAwtBCSEFAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIA0tACJBAWsODQECAxofHR4bHB8dHgQACyANLQAhDgQEBQYHCQsgDS0AIQ4FCwoJCQwJCyANLQAhIgUOBg4NEBAPDxALIA0tACEOChIRERERERERFBMRCyANLQAhQQtrDgIcHRsLIARBGGogAyACQQMgASgCrAIQ+AQMAwsgBEEYaiADIAJBAyABKAKsAhDmAwwCCyAEQRhqIAMgAiABKAKsAhCgAgwBCyAEQRhqIAMgAiABKAKsAhD+AQsgEyABKAKoAiABKAKsAiAEKAIcIgMgBCgCIBDCBSAEKAIYIgJFDTIgA0EEaygCACIIQXhxIgUgAkECdCICQQRBCCAIQQNxIggbakkNOCAIQQAgBSACQSdqSxsNOSADEKICDDILIARBATYCrAEgBEHgycEANgKoASAEQgE3ArQBIAQgDUEhaq1CgICAgJAFhDcDWCAEIARB2ABqNgKwASAEQShqIgEgBEGoAWoQsQYgARCOByEBDDALIARBATYCrAEgBEG8ysEANgKoASAEQgE3ArQBIAQgDUEhaq1CgICAgJAFhDcDWCAEIARB2ABqNgKwASAEQTRqIgEgBEGoAWoQsQYgARCOBwwDCyAEQRhqIAMgAkEBIAEoAqwCEOYDDC0LIARBGGogAyACQQEgASgCrAIQ+AQMLAsgDSgCAEUEQCAEQQA2ArgBIARBATYCrAEgBEGYysEANgKoASAEQgQ3ArABIARBqAFqEJIHDAELIA0oAggNKiAEQQA2ArgBIARBATYCrAEgBEH8ycEANgKoASAEQgQ3ArABIARBqAFqEJIHCyEBDCsLIARBGGogAyACQQMgASgCrAIQ5gMMJwsgBEEYaiADIAJBAyABKAKsAhD4BAwmCyANKAIARQRAIARBADYCuAEgBEEBNgKsASAEQZjKwQA2AqgBIARCBDcCsAEgBEGoAWoQkgcMAgsgDSgCCEUEQCAEQQA2ArgBIARBATYCrAEgBEH8ycEANgKoASAEQgQ3ArABIARBqAFqEJIHDAILIA0qAgQhJCABKAKsAiEIIA0qAgwhJyAFQQRGDSQgBEEYaiADIAJBAyAIICQgJxD/AwwlCyAEQQE2AqwBIARB4MrBADYCqAEgBEIBNwK0ASAEIA1BIWqtQoCAgICQBYQ3A1ggBCAEQdgAajYCsAEgBEFAayIBIARBqAFqELEGIAEQjgcLIQEMJgsgBEEBNgKsASAEQYjLwQA2AqgBIARCATcCtAEgBCANQSFqrUKAgICAkAWENwNYIAQgBEHYAGo2ArABIARBzABqIgEgBEGoAWoQsQYgARCOBwwDCyAEQRhqIAMgAkEDIAEoAqwCEPgEDB8LIARBGGogAyACIAEoAqwCEP0BDB4LIA0oAgBFBEAgBEEANgK4ASAEQQE2AqwBIARBmMrBADYCqAEgBEIENwKwASAEQagBahCSBwwBCyANKAIIDRwgBEEANgK4ASAEQQE2AqwBIARB/MnBADYCqAEgBEIENwKwASAEQagBahCSBwshAQwhCwJAAkACQAJAIA0tACEiCEEKRwRAIAgOAgIDAQsgBEHYAGogAyACIAEoAqwCEMUDDB0LIARBATYCrAEgBEHEy8EANgKoASAEQgE3ArQBIAQgDUEhaq1CgICAgJAFhDcDcCAEIARB8ABqNgKwASAEQeQAaiIBIARBqAFqELEGIAEQjgchAQwjCyAEQRhqIAMgAkEDIAEoAqwCEPgEDAELIARBGGogAyACQQMgASgCrAIQ5gMLIAEoAqwCIgdBAnQiAkH/////A0sNDCAHQQR0IgNB/f///wdPDQwCQCADRQRAQQQhC0EAIQIMAQsgAxBxIgtFDQ4gASgCrAIhBwsgBEEANgKwASAEIAs2AqwBIAQgAjYCqAEgBwRAQQAhA0EBIQYgBCgCICEIIAQoAhwhAgNAIAZBAWsiDCIFIAhPBEAgDCEGDBsLIAggBWsiBUEAIAUgCE0bIgVBAUYNGiAFQQJGDRlDAACAPyACKgIAIiQgJJSTIAJBBGoqAgAiJyAnlJMgAkEIaioCACIoICiUk0MAAAAAEOAIkSElIAQoAqgBIANrQQNNBEAgBEGoAWogA0EEQQRBBBCkBSAEKAKsASELIAQoArABIQMLIAsgA0ECdGoiBSAlOAIMIAUgKDgCCCAFICc4AgQgBSAkOAIAIAQgA0EEaiIDNgKwASAGQQNqIQYgAkEMaiECIAdBAWsiBw0ACwsgBEHgAGogBEGwAWooAgA2AgAgBCAEKQKoATcDWCAEKAIYIgNFDRkgBCgCHCICQQRrKAIAIghBeHEiBSADQQJ0IgNBBEEIIAhBA3EiCBtqSQ0nIAhBACAFIANBJ2pLGw0oIAIQogIMGQsgDS0AIUELRg0VIARBATYCrAEgBEHwy8EANgKoASAEQgE3ArQBIAQgDUEhaq1CgICAgJAFhDcDGCAEIARBGGo2ArABIARBkAFqIgEgBEGoAWoQsQYgARCOByEBDB8LIA0tACFBDEYNEyAEQQE2AqwBIARBnMzBADYCqAEgBEIBNwK0ASAEIA1BIWqtQoCAgICQBYQ3AxggBCAEQRhqNgKwASAEQZwBaiIBIARBqAFqELEGIAEQjgchAQweC0EPIQUMAQtBFSEFCwJAAkACQAJAAkAgDS0AISIIDggBAAMDAgIEBAMLIARBGGogAyACIAUgASgCrAIQ5gMMEwsgBEEYaiADIAIgBSABKAKsAhD4BAwSCyANKAIARQRAIARBADYCuAEgBEEBNgKsASAEQZjKwQA2AqgBIARCBDcCsAEgBEGoAWoQkgchAQweCyANKAIIRQRAIARBADYCuAEgBEEBNgKsASAEQfzJwQA2AqgBIARCBDcCsAEgBEGoAWoQkgchAQweCyANKgIEISQgASgCrAIhByANKgIMIScgCEEERg0QIARBGGogAyACIAUgByAkICcQ/wMMEQsgBEEBNgKsASAEQdDMwQA2AqgBIARCATcCtAEgBCANQSFqrUKAgICAkAWENwNYIAQgBEHYAGo2ArABIARB+ABqIgEgBEGoAWoQsQYgARCOByEBDBwLIA0oAghFBEAgBEEANgK4ASAEQQE2AqwBIARB/MnBADYCqAEgBEIENwKwASAEQagBahCSByEBDBwLIAEoAqwCIQcgDSoCDCEkIAhBBkYNDSAEQRhqIAMgAiAFIAcgJBCQBAwPCyAEQQE2AqwBIARB+MzBADYCqAEgBEIBNwK0ASAEIA1BIWqtQoCAgICQBYQ3A1ggBCAEQdgAajYCsAEgBEGEAWoiASAEQagBahCxBiABEI4HIQEMGgsgBEEYaiADIAIgASgCrAIQjgUMAQsgBEEYaiADIAIgASgCrAIQ0wQLIAQoAhwhECABKALoA0UNByABKAKsAiEOIAEoAqgCIRQgBCgCICEPIBMQowUgFkEIakEAOgAAIBZCADcCACATIA4Q0AQgEygCAEEBRw0HIA5BAnQiCSABKAK4AyIDSw0FIAEoArQDIQogDkUNBkEAIQcgCiEFQQAhAgJAAkACQANAAkAgByAPSQRAIAIgEGooAgBBAnQiAyABKAKIAyIGTw0OIAIgCU8NBSAFIAEoAoQDIANBAnRqKAIANgIAIANBAXIiCCABKAKIAyIGSQ0BIAghAwwOCyAPIA9BiLnBABCMBwALIAJBAWogCU8NAiAFQQRqIAEoAoQDIAhBAnRqKAIANgIAIANBAnIiCCABKAKIAyIGTwRAIAghAwwNCyACQQJqIAlPDQEgBUEIaiABKAKEAyAIQQJ0aigCADYCACADQQNyIgMgASgCiAMiBk8NDCAJIAJBA2pLBEAgBUEMaiABKAKEAyADQQJ0aigCADYCACAFQRBqIQUgAkEEaiECIAdBAWoiByAOSQ0BDAsLCyACQQNqIQIMAgsgAkECaiECDAELIAJBAWohAgsgAiAJQai5wQAQjAcACyAEICs3A1ggBEECNgKsASAEQbTNwQA2AqgBIARCAjcCtAEgBEKAgICAoAUiKyAEQdgAaq2ENwMgIAQgKyAcrYQ3AxggBCAEQRhqNgKwASAEQQxqIgEgBEGoAWoQsQYgARCOByEBIABBAToAACAAIAE2AgQMHAsgAEEAOwEADBsLQQAgAiADQYDNwQAQ6gcAC0GQy8EAEP8HCwALQQAgCSADQbi5wQAQ6gcACwJAAkACQAJAAkAgASgC6ANBAUYEQCAEIAEoAsACIBRBAnQgDiAUakECdBDhCCICELgKIgM2AnAgBCAJNgJYIAMgCUcNHyACIAogCRDgCSACQYMISw0DDAYLIAEoAsQCQQFHDQUgCSABKALEAyIDSw0AIAEoAsADIQwgDkUNASAKQQxqIQtBACEHIAwhA0EAIQUDQAJAAkACQCAHIA9JBEAgBSAQaigCAEECdCICIAEoApQDIghPDQEgBUEDaiIIIAlPDQIgCyACQQJ0IgggASgCkANqKAIANgIAIAIgASgClAMiBk8NCSADIAEoApADIAhqKAIANgIAIAJBAXIiCCABKAKUAyIGSQ0DIAghAgwJCyAPIA9BuLjBABCMBwALIAIgCEHIuMEAEIwHAAsgCCAJQdi4wQAQjAcACyADQQRqIAEoApADIAhBAnRqKAIANgIAIAJBAnIiCCABKAKUAyIGTwRAIAghAgwGCyADQQhqIAEoApADIAhBAnRqKAIANgIAIAJBA3IiAiABKAKUAyIGTw0FIANBDGogASgCkAMgAkECdGooAgA2AgAgC0EQaiELIANBEGohAyAFQQRqIQUgB0EBaiIHIA5JDQALDAELQQAgCSADQfi4wQAQ6gcACyAEIAEoAsACIBRBAnQiFSAOIBRqQQJ0IhQQ4QgiAxC4CiICNgJwIAQgCTYCWAJAIAIgCUYEQCADIAogCRDgCSADQYQITwRAIAMQmwcLIAQgASgCyAIgFSAUEOEIIgMQuAoiAjYCcCAEIAk2AlggAiAJRgRAIAMgDCAJEOAJIANBhAhPBEAgAxCbBwsgASgC6ANBAkYNBiABKALMAkUNBiABKALUAkUNBiAORQ0CQQAhEkEAIAlrIRdBAyEDQQAhBQJAAn8CQANAAkACQAJAAkACQAJAAkAgDyASSwRAIANBA2siCCAQaigCAEECdCICIAEoAqADIgZPDRAgCCAJTw0CIAUgCmoiESACQQJ0IiIgASgCnANqKAIANgIAIAJBAXIiCCABKAKgAyIGSQ0BIAghAgwQCyAPIA9B6LfBABCMBwALIANBAmsgCU8NAiARQQRqIAhBAnQiIyABKAKcA2ooAgA2AgAgAkECciIHIAEoAqADIgZPBEAgByECDA8LIANBAWsgCU8NASARQQhqIAdBAnQiGCABKAKcA2ooAgA2AgAgAkEDciILIAEoAqADIgZPBEAgCyECDA8LIAMgCU8NAyARQQxqIAEoApwDIAtBAnRqKAIANgIAIAIgASgCrAMiBk8NCSADIBdqIgtBA0YNBCAFIAxqIhEgASgCqAMgImooAgA2AgAgASgCrAMiBiAIIgJLDQUMCQsgA0EDayEDDAILIANBAWshAwwBCyADQQJrIQMLIAMgCUGouMEAEIwHAAsgA0EDawwDCyALQQJGDQEgEUEEaiABKAKoAyAjaigCADYCACABKAKsAyIGIAciAk0NAyALQQFHBEAgEUEIaiABKAKoAyAYaigCADYCACAFQRBqIQUgA0EEaiEDIBJBAWoiEiAOSQ0BDAcLCyADQQFrDAELIANBAmsLIAlBiLjBABCMBwALIAIgBkH4t8EAEIwHAAsMHgsMHQsgASgC0AIgFSAUEOEIIgMgCiAJELUHIANBhAhPBEAgAxCbBwsgASgC2AIgFSAUEOEIIgIgDCAJELUHIAJBgwhNDQMLIAIQmwcMAgsgAiAGQZi4wQAQjAcACyACIAZB6LjBABCMBwALIAQoAhgiA0UNEAJAIBBBBGsoAgAiAkF4cSIIIANBAnQiA0EEQQggAkEDcSICG2pPBEAgAkEAIAggA0EnaksbDQEgEBCiAgwSCwwXCwwXCyADIAZBmLnBABCMBwALIARBGGogAyACIAUgByAkEIIFDAELIARBGGogAyACIAUgByAkICcQ+QQLAkACQAJAAkACQAJ/AkACQAJAAn8CQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAIA0tACJBBWsOCAYBAgAAAwQFAAtBpPjGAEEoQaTMwQAQ6wcACyATIAEoAqgCIAEoAqwCIAQoAhwiCCAEKAIgEKcBDBQLIBMgASgCqAIgASgCrAIgBCgCHCIIIAQoAiAQlAEMEwsgASgCrAIiDiABKAKoAiIPaiIUQQJ0IQkgBCgCICEFIAQoAhwhCAJAIAEoAtwCQQFGBEAgASgC4AIQuAogCU8NEyAJELYJIgIgASgC4AIQ3AkgASgC4AIiA0GECEkNASADEJsHDAELIAlFDRIgCRC2CSECCyABIAI2AuACIAFBATYC3AIMEQsgASgCrAIiECABKAKoAiIUaiISQQJ0IQkgBCgCICEFIAQoAhwhCAJAIAEoAuQCQQFGBEAgASgC6AIQuAogCU8NESAJELYJIgIgASgC6AIQ3AkgASgC6AIiA0GECEkNASADEJsHDAELIAlFDRAgCRC2CSECCyABIAI2AugCIAFBATYC5AIMDwsgASgCrAIiDyABKAKoAiIJaiIVQQJ0IQwgBCgCICEFIAQoAhwhCCABKALsAiIHQQFHBH9BAAUgASgC8AIQuAoLIAxJBEAgDBC2CSEDIAwQtgkhAgJAIAdFBEAgA60gAq1CIIaEISsMAQsgAyABKALwAhDcCSACIAEoAvQCENwJIAEoAvACIgdBhAhPBEAgBxCbBwsgA60gAq1CIIaEISsgASgC9AIiA0GECEkNACADEJsHCyABICs3A/ACIAFBATYC7AILIBMQowUgFkEIakEAOgAAIBZCADcCACATIA8Q0AQgASgC7AJFDRAgD0ECdCIKIAEoArgDIgNNBEAgASgCxAMiAyAKTwRAIAEoArQDIRAgASgCwAMhFCAPRQ0PQQAhB0EAIAprIRFBAyEGQQohAkEBIQ4gCCEDAn8CQANAAkACfwJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkAgBSACQQprSwRAIAJBCWsgBU8NASACQQhrIAVPDQIgBkEDayIYIApJDQMgGCEGDAQLIAJBCmsMDgsgAkEJayECDAkLIAJBCGsMBQtDAAB/QyADQQRqKgIAIieLIiRDAACAP0MAAPhBQwAAAAAgAyoCACIoiyIlICQgA0EIaioCACIpiyIqEOAIEOAIEJ4FjkMAAHBBkiIkICRDAAAAAF0bIiQgJEMAAPhBXhsQuQf8ACISQQ9rELAGQwAAf0OVIiSVIiYgJkMAAH9DXhsQuQchJiAHIBBqIgtDAAB/QyAlICSVIiUgJUMAAH9DXhsQuQf8ASASQRt0QYCAgAhBACAoQwAAAABdG3JBgICAEEEAICdDAAAAAF0bckGAgIAgQQAgKUMAAAAAXRtyciAm/AFBCHRyQwAAf0MgKiAklSIkICRDAAB/Q14bELkH/AFBEHRyNgIAIAJBB2sgBU8NCCACQQZrIAVPDQUgAkEFayAFTw0BIAogBkECa0sEQEMAAH9DIANBEGoqAgAiJ4siJEMAAIA/QwAA+EFDAAAAACADQQxqKgIAIiiLIiUgJCADQRRqKgIAIimLIioQ4AgQ4AgQngWOQwAAcEGSIiQgJEMAAAAAXRsiJCAkQwAA+EFeGxC5B/wAIhJBD2sQsAZDAAB/Q5UiJJUiJiAmQwAAf0NeGxC5ByEmIAtBBGpDAAB/QyAlICSVIiUgJUMAAH9DXhsQuQf8ASASQRt0QYCAgAhBACAoQwAAAABdG3JBgICAEEEAICdDAAAAAF0bckGAgIAgQQAgKUMAAAAAXRtyciAm/AFBCHRyQwAAf0MgKiAklSIkICRDAAB/Q14bELkH/AFBEHRyNgIAIAJBBGsgBU8NCiACQQNrIAVPDQcgAkECayAFTw0DIAogBkEBa0sEQEMAAH9DIANBHGoqAgAiJ4siJEMAAIA/QwAA+EFDAAAAACADQRhqKgIAIiiLIiUgJCADQSBqKgIAIimLIioQ4AgQ4AgQngWOQwAAcEGSIiQgJEMAAAAAXRsiJCAkQwAA+EFeGxC5B/wAIhJBD2sQsAZDAAB/Q5UiJJUiJiAmQwAAf0NeGxC5ByEmIAtBCGpDAAB/QyAlICSVIiUgJUMAAH9DXhsQuQf8ASASQRt0QYCAgAhBACAoQwAAAABdG3JBgICAEEEAICdDAAAAAF0bckGAgIAgQQAgKUMAAAAAXRtyciAm/AFBCHRyQwAAf0MgKiAklSIkICRDAAB/Q14bELkH/AFBEHRyNgIAIAJBAWsgBU8NDCACIAVPDQkgAkEBaiAFTw0FIAYgCk8NAkMAAH9DIANBKGoqAgAiJ4siJEMAAIA/QwAA+EFDAAAAACADQSRqKgIAIiiLIiUgJCADQSxqKgIAIimLIioQ4AgQ4AgQngWOQwAAcEGSIiQgJEMAAAAAXRsiJCAkQwAA+EFeGxC5B/wAIhJBD2sQsAZDAAB/Q5UiJJUiJiAmQwAAf0NeGxC5ByEmIAtBDGpDAAB/QyAlICSVIiUgJUMAAH9DXhsQuQf8ASASQRt0QYCAgAhBACAoQwAAAABdG3JBgICAEEEAICdDAAAAAF0bckGAgIAgQQAgKUMAAAAAXRtyciAm/AFBCHRyQwAAf0MgKiAklSIkICRDAAB/Q14bELkH/AFBEHRyNgIAIAJBAmogBU8NHSACQQNqIAVPDRkgAkEEaiAFTw0VIAYgEWoiC0EDRw0OIAZBA2sMEQsgBkEBayEGDAELIAZBAmshBgsgBiAKQbi3wQAQjAcACyACQQVrDAILIAJBAmsMAQsgAkEBagsgBUGot8EAEIwHAAsgAkEGayECDAELIAJBA2shAgsgAiAFQZi3wQAQjAcACyACQQdrDAILIAJBBGsMAQsgAkEBawsgBUGIt8EAEIwHAAtDAAB/QyADQTRqKgIAIieLIiRDAACAP0MAAPhBQwAAAAAgA0EwaioCACIoiyIlICQgA0E4aioCACIpiyIqEOAIEOAIEJ4FjkMAAHBBkiIkICRDAAAAAF0bIiQgJEMAAPhBXhsQuQf8ACIXQQ9rELAGQwAAf0OVIiSVIiYgJkMAAH9DXhsQuQchJiAHIBRqIhJDAAB/QyAlICSVIiUgJUMAAH9DXhsQuQf8ASAXQRt0QYCAgAhBACAoQwAAAABdG3JBgICAEEEAICdDAAAAAF0bckGAgIAgQQAgKUMAAAAAXRtyciAm/AFBCHRyQwAAf0MgKiAklSIkICRDAAB/Q14bELkH/AFBEHRyNgIAIAJBBWogBU8NDyACQQZqIAVPDQsgAkEHaiAFTw0HIAtBAkYNAUMAAH9DIANBQGsqAgAiJ4siJEMAAIA/QwAA+EFDAAAAACADQTxqKgIAIiiLIiUgJCADQcQAaioCACIpiyIqEOAIEOAIEJ4FjkMAAHBBkiIkICRDAAAAAF0bIiQgJEMAAPhBXhsQuQf8ACIXQQ9rELAGQwAAf0OVIiSVIiYgJkMAAH9DXhsQuQchJiASQQRqQwAAf0MgJSAklSIlICVDAAB/Q14bELkH/AEgF0EbdEGAgIAIQQAgKEMAAAAAXRtyQYCAgBBBACAnQwAAAABdG3JBgICAIEEAIClDAAAAAF0bcnIgJvwBQQh0ckMAAH9DICogJJUiJCAkQwAAf0NeGxC5B/wBQRB0cjYCACACQQhqIAVPDRAgAkEJaiAFTw0MIAJBCmogBU8NCCALQQFHBEBDAAB/QyADQcwAaioCACIniyIkQwAAgD9DAAD4QUMAAAAAIANByABqKgIAIiiLIiUgJCADQdAAaioCACIpiyIqEOAIEOAIEJ4FjkMAAHBBkiIkICRDAAAAAF0bIiQgJEMAAPhBXhsQuQf8ACILQQ9rELAGQwAAf0OVIiSVIiYgJkMAAH9DXhsQuQchJiASQQhqQwAAf0MgJSAklSIlICVDAAB/Q14bELkH/AEgC0EbdEGAgIAIQQAgKEMAAAAAXRtyQYCAgBBBACAnQwAAAABdG3JBgICAIEEAIClDAAAAAF0bcnIgJvwBQQh0ckMAAH9DICogJJUiJCAkQwAAf0NeGxC5B/wBQRB0cjYCACAHQRBqIQcgAkEVaiECIANB1ABqIQMgBkEEaiEGIA4gD0kgDkEBaiEODQEMEwsLIAZBAWsMAQsgBkECawsgCkH4tsEAEIwHAAtBACAKIANByLfBABDqBwALQQAgCiADQdi3wQAQ6gcACyATIAEoAqgCIAEoAqwCIAQoAhwiCCAEKAIgEOYBDA8LIAJBBGoMAgsgAkEHagwBCyACQQpqCyAFQei2wQAQjAcACyACQQNqDAILIAJBBmoMAQsgAkEJagsgBUHYtsEAEIwHAAsgAkECagwCCyACQQVqDAELIAJBCGoLIAVByLbBABCMBwALIAQgASgC8AIgCUECdCIOIAwQ4QgiAxC4CiICNgJwIAQgCjYCWAJ/AkACQAJAIAIgCkYEQCADIBAgChDgCSADQYQITwRAIAMQmwcLIAQgASgC9AIgDiAMEOEIIgMQuAoiAjYCcCAEIAo2AlggAiAKRgRAIAMgFCAKEOAJIANBhAhPBEAgAxCbBwsgASgCoAMiAiAMSQRAIAwgAiIDayIHIAEoApgDIAJrSwRAICAgAiAHQQRBBBCkBSABKAKgAyEDCyABKAKcAyILIANBAnQiBmohBSAHQQJPBEAgDCACQX9zakECdCISBEAgBUEAIBL8CwALIBVBBHQgAkECdGsgC2ogBmpBBGshBSADIAdqQQFrIQMLIAVBADYCACABIANBAWo2AqADIAEgASgCrAMiAiAMSQR/IAwgAiIDayIHIAEoAqQDIAJrSwRAICEgAiAHQQRBBBCkBSABKAKsAyEDCyABKAKoAyILIANBAnQiBmohBSAHQQJPBEAgDCACQX9zakECdCIMBEAgBUEAIAz8CwALIBVBBHQgAkECdGsgC2ogBmpBBGshBSADIAdqQQFrIQMLIAVBADYCACADQQFqBSAMCzYCrAMLIA9FDQggCUEEdCEFQQAhAkEAIAprIRVBAyEDQQEhCwJ/AkADQAJAAkACQAJAAn8CQCAKIANBA2siB0sEQCAHIA5qIhIgASgCoAMiBkkNASAJQQJ0IANqQQNrDAILIANBA2shAwwECyABKAKcAyAFaiACaiACIBBqIgcoAgA2AgAgA0ECayAKTw0BIAMgDmoiDEECayIRIAEoAqADIgZJBEAgASgCnAMgBWogAmpBBGogB0EEaigCADYCACADQQFrIApPDQMgDEEBayIXIAEoAqADIgZJBEAgASgCnAMgBWogAmpBCGogB0EIaigCADYCACADIApPDQUgASgCoAMiBiAMSwRAIAEoApwDIAVqIAJqQQxqIAdBDGooAgA2AgAgAyAVaiIMQQNGDQ8gEiABKAKsAyIHSQ0HIAlBAnQgA2pBA2sMCgsgCUECdCADagwCCyAJQQJ0IANqQQFrDAELIAlBAnQgA2pBAmsLIAZBuLbBABCMBwALIANBAmshAwwBCyADQQFrIQMLIAMgCkGotsEAEIwHAAsgASgCqAMgBWogAmogAiAUaiIGKAIANgIAIAxBAkYNBSARIAEoAqwDIgdPDQEgASgCqAMgBWogAmpBBGogBkEEaigCADYCACAMQQFGDQYgASgCrAMiByAXSwRAIAEoAqgDIAVqIAJqQQhqIAZBCGooAgA2AgAgAkEQaiECIANBBGohAyALIA9JIAtBAWohCw0BDAwLCyAJQQJ0IANqQQFrDAELIAlBAnQgA2pBAmsLIAdBmLbBABCMBwALDB0LDBwLIANBAmsMAgsgA0EBawwBCyADQQNrCyAKQYi2wQAQjAcACyATEKMFIBZBCGpBADoAACAWQgA3AgAgEyAQENAEIAEoAtwCQQFHDQEgASgC5AJFDQECQAJ/AkACQAJAAn8CQAJAAkACfwJAAkACQAJAIBBBAnQiBiABKAK4AyIDTQRAIAYgASgCxAMiA0sNASABKAK0AyEVIAEoAsADIQwgBCABKALgAiAUQQJ0Ig8gCRDhCCIDELgKIgI2AnAgBCAGNgJYIAIgBkcNJiAVIAYgAxDhCSADQYQITwRAIAMQmwcLIBBFDQ4gFUEMaiELQQAhAkEDIQdBASEOIAwhCiAIIQMDQAJAAkACQAJAAkACQCACIAVJBEAgAkEBaiIRIAVPDQEgAkECaiIRIAVPDQIgBiAHTQ0DQwAAf0MgA0EEaioCACIniyIkQwAAgD9DAAD4QUMAAAAAIAMqAgAiKIsiJSAkIANBCGoqAgAiKYsiKhDgCBDgCBCeBY5DAABwQZIiJCAkQwAAAABdGyIkICRDAAD4QV4bELkH/AAiEUEPaxCwBkMAAH9DlSIklSImICZDAAB/Q14bELkHISYgC0MAAH9DICUgJJUiJSAlQwAAf0NeGxC5B/wBIBFBG3RBgICACEEAIChDAAAAAF0bckGAgIAQQQAgJ0MAAAAAXRtyQYCAgCBBACApQwAAAABdG3JyICb8AUEIdHJDAAB/QyAqICSVIiQgJEMAAH9DXhsQuQf8AUEQdHI2AgAgAkEDaiAFTw0EIAJBBGogBU8NBSACQQVqIhggBUkNBiAYDA0LIAIgBUH4tMEAEIwHAAsgESAFQYi1wQAQjAcACyARIAVBmLXBABCMBwALIAcgBkGotcEAEIwHAAsgAkEDagwQCyACQQRqDAsLQwAAf0MgA0EQaioCACIniyIkQwAAgD9DAAD4QUMAAAAAIANBDGoqAgAiKIsiJSAkIANBFGoqAgAiKYsiKhDgCBDgCBCeBY5DAABwQZIiJCAkQwAAAABdGyIkICRDAAD4QV4bELkH/AAiEUEPaxCwBkMAAH9DlSIklSImICZDAAB/Q14bELkHISYgCkMAAH9DICUgJJUiJSAlQwAAf0NeGxC5B/wBIBFBG3RBgICACEEAIChDAAAAAF0bckGAgIAQQQAgJ0MAAAAAXRtyQYCAgCBBACApQwAAAABdG3JyICb8AUEIdHJDAAB/QyAqICSVIiQgJEMAAH9DXhsQuQf8AUEQdHI2AgAgAkEGaiAFTw0LIAJBB2ogBU8NByACQQhqIAVPDQNDAAB/QyADQRxqKgIAIieLIiRDAACAP0MAAPhBQwAAAAAgA0EYaioCACIoiyIlICQgA0EgaioCACIpiyIqEOAIEOAIEJ4FjkMAAHBBkiIkICRDAAAAAF0bIiQgJEMAAPhBXhsQuQf8ACIRQQ9rELAGQwAAf0OVIiSVIiYgJkMAAH9DXhsQuQchJiAKQQRqQwAAf0MgJSAklSIlICVDAAB/Q14bELkH/AEgEUEbdEGAgIAIQQAgKEMAAAAAXRtyQYCAgBBBACAnQwAAAABdG3JBgICAIEEAIClDAAAAAF0bcnIgJvwBQQh0ckMAAH9DICogJJUiJCAkQwAAf0NeGxC5B/wBQRB0cjYCACACQQlqIAVPDQwgAkEKaiAFTw0IIAJBC2ogBU8NBEMAAH9DIANBKGoqAgAiJ4siJEMAAIA/QwAA+EFDAAAAACADQSRqKgIAIiiLIiUgJCADQSxqKgIAIimLIioQ4AgQ4AgQngWOQwAAcEGSIiQgJEMAAAAAXRsiJCAkQwAA+EFeGxC5B/wAIhFBD2sQsAZDAAB/Q5UiJJUiJiAmQwAAf0NeGxC5ByEmIApBCGpDAAB/QyAlICSVIiUgJUMAAH9DXhsQuQf8ASARQRt0QYCAgAhBACAoQwAAAABdG3JBgICAEEEAICdDAAAAAF0bckGAgIAgQQAgKUMAAAAAXRtyciAm/AFBCHRyQwAAf0MgKiAklSIkICRDAAB/Q14bELkH/AFBEHRyNgIAIAJBDGogBU8NDSACQQ1qIAVPDQkgAkEOaiAFTw0FQwAAf0MgA0E0aioCACIniyIkQwAAgD9DAAD4QUMAAAAAIANBMGoqAgAiKIsiJSAkIANBOGoqAgAiKYsiKhDgCBDgCBCeBY5DAABwQZIiJCAkQwAAAABdGyIkICRDAAD4QV4bELkH/AAiEUEPaxCwBkMAAH9DlSIklSImICZDAAB/Q14bELkHISYgCkEMakMAAH9DICUgJJUiJSAlQwAAf0NeGxC5B/wBIBFBG3RBgICACEEAIChDAAAAAF0bckGAgIAQQQAgJ0MAAAAAXRtyQYCAgCBBACApQwAAAABdG3JyICb8AUEIdHJDAAB/QyAqICSVIiQgJEMAAH9DXhsQuQf8AUEQdHI2AgAgC0EQaiELIAdBBGohByAKQRBqIQogA0E8aiEDIAJBD2ohAiAOIBBJIA5BAWohDg0ACwwOC0EAIAYgA0H4tcEAEOoHAAtBACAGIANB6LXBABDqBwALIAJBCGoMAgsgAkELagwBCyACQQ5qCyAFQdi1wQAQjAcACyACQQdqDAILIAJBCmoMAQsgAkENagsgBUHItcEAEIwHAAsgAkEGagwCCyACQQlqDAELIAJBDGoLIAVBuLXBABCMBwALIAQgASgC4AIgDyAJEOEIIgMQuAoiAjYCcCAEIAY2AlgCQAJAIAIgBkYEQCADIBUgBhDgCSADQYQITwRAIAMQmwcLIAQgASgC6AIgDyAJEOEIIgMQuAoiAjYCcCAEIAY2AlggAiAGRw0aIAMgDCAGEOAJIANBhAhPBEAgAxCbBwsgASgClAMiAiAJSQRAIAkgAiIDayIHIAEoAowDIAJrSwRAIB8gAiAHQQRBBBCkBSABKAKUAyEDCyABKAKQAyIKIANBAnQiC2ohBSAHQQJPBEAgCSACQX9zakECdCIJBEAgBUEAIAn8CwALIBJBBHQgAkECdGsgCmogC2pBBGshBSADIAdqQQFrIQMLIAVBADYCACABIANBAWo2ApQDCyAQRQ0EIBVBDGohCSAUQQR0QQxyIQ5BACEDQQEhB0EAIQICQAJAAkADQCADQQNqIgUgBk8NBSADIA9qQQNqIgUgASgCiAMiCk8NBiABKAKEAyAOaiACaiACIAlqKAIANgIAIAMgFGoiCiABKAKUAyIFTw0DIAEoApADIA9qIAJqIAIgDGoiCygCADYCACABKAKUAyIFIApBAWpLBEAgASgCkAMgD2ogAmpBBGogC0EEaigCADYCACABKAKUAyIFIApBAmpNDQIgASgCkAMgD2ogAmpBCGogC0EIaigCADYCACABKAKUAyIFIApBA2pNDQMgASgCkAMgD2ogAmpBDGogC0EMaigCADYCACADQQRqIQMgAkEQaiECIAcgEEkgB0EBaiEHDQEMCQsLIApBAWohCgwCCyAKQQJqIQoMAQsgCkEDaiEKCyAKIAVB6LTBABCMBwALDBkLIAUgBkHItMEAEIwHAAsgBSAKQdi0wQAQjAcACyATEKMFIBZBCGpBADoAACAWQgA3AgAgDkECdCIMIQIgASgCuAMiAyAMSQRAIAwgAyICayIHIAEoArADIAJrSwRAIB0gAiAHQQRBBBCkBSABKAK4AyECCyABKAK0AyIKIAJBAnQiC2ohBiAHQQJPBEAgDCADQX9zakECdCIQBEAgBkEAIBD8CwALIA5BBHQgA0ECdGsgCmogC2pBBGshBiACIAdqQQFrIQILIAZBADYCACACQQFqIQILIAEgAjYCuAMgASgC3AJFDQACQAJ/AkACQAJAAkACfwJAAkAgAiAMTwRAIAEoArQDIQogDkUNCUEEIQJBASELQQEhBiAKIQcgCCEDAkADQAJAAkACQCAFIAJBBGtLBEAgAkEDayAFTw0BIAJBAmsgBU8NAiAGQQFrIhggDEkNAyAYIQYMBQsgAkEEawwNCyACQQNrIQIMCQsgAkECawwGC0MAAH9DIANBBGoqAgAiJ4siJEMAAIA/QwAA+EFDAAAAACADKgIAIiiLIiUgJCADQQhqKgIAIimLIioQ4AgQ4AgQngWOQwAAcEGSIiQgJEMAAAAAXRsiJCAkQwAA+EFeGxC5B/wAIhBBD2sQsAZDAAB/Q5UiJJUiJiAmQwAAf0NeGxC5ByEmIAdDAAB/QyAlICSVIiUgJUMAAH9DXhsQuQf8ASAQQRt0QYCAgAhBACAoQwAAAABdG3JBgICAEEEAICdDAAAAAF0bckGAgIAgQQAgKUMAAAAAXRtyciAm/AFBCHRyQwAAf0MgKiAklSIkICRDAAB/Q14bELkH/AFBEHRyNgIAIAJBAWsgBU8NCCACIAVPDQcgAkEBaiAFTw0DIAYgDE8NAUMAAH9DIANBEGoqAgAiJ4siJEMAAIA/QwAA+EFDAAAAACADQQxqKgIAIiiLIiUgJCADQRRqKgIAIimLIioQ4AgQ4AgQngWOQwAAcEGSIiQgJEMAAAAAXRsiJCAkQwAA+EFeGxC5B/wAIhBBD2sQsAZDAAB/Q5UiJJUiJiAmQwAAf0NeGxC5ByEmIAdBBGpDAAB/QyAlICSVIiUgJUMAAH9DXhsQuQf8ASAQQRt0QYCAgAhBACAoQwAAAABdG3JBgICAEEEAICdDAAAAAF0bckGAgIAgQQAgKUMAAAAAXRtyciAm/AFBCHRyQwAAf0MgKiAklSIkICRDAAB/Q14bELkH/AFBEHRyNgIAIAJBAmogBU8NCSACQQNqIAVPDQYgAkEEaiAFTw0EIAwgBkEBaksEQEMAAH9DIANBHGoqAgAiJ4siJEMAAIA/QwAA+EFDAAAAACADQRhqKgIAIiiLIiUgJCADQSBqKgIAIimLIioQ4AgQ4AgQngWOQwAAcEGSIiQgJEMAAAAAXRsiJCAkQwAA+EFeGxC5B/wAIhBBD2sQsAZDAAB/Q5UiJJUiJiAmQwAAf0NeGxC5ByEmIAdBCGpDAAB/QyAlICSVIiUgJUMAAH9DXhsQuQf8ASAQQRt0QYCAgAhBACAoQwAAAABdG3JBgICAEEEAICdDAAAAAF0bckGAgIAgQQAgKUMAAAAAXRtyciAm/AFBCHRyQwAAf0MgKiAklSIkICRDAAB/Q14bELkH/AFBEHRyNgIAIAZBBGohBiAHQRBqIQcgAkEJaiECIANBJGohAyALIA5JIAtBAWohCw0BDAwLCyAGQQFqIQYLIAYgDEGotMEAEIwHAAtBACAMIAJBuLTBABDqBwALIAJBAWoMAQsgAkEEagsgBUGYtMEAEIwHAAsgAkEDaiECCyACIAVBiLTBABCMBwALIAJBAWsMAQsgAkECagsgBUH4s8EAEIwHAAsgBCABKALgAiAPQQJ0IhAgCRDhCCIDELgKIgI2AnAgBCAMNgJYIAIgDEcNFiADIAogDBDgCSADQYQITwRAIAMQmwcLIAEoAogDIgIgCUkEQCAJIAIiA2siByABKAKAAyACa0sEQCAeIAIgB0EEQQQQpAUgASgCiAMhAwsgASgChAMiCyADQQJ0IgZqIQUgB0ECTwRAIAkgAkF/c2pBAnQiCQRAIAVBACAJ/AsACyAUQQR0IAJBAnRrIAtqIAZqQQRrIQUgAyAHakEBayEDCyAFQQA2AgAgASADQQFqNgKIAwsgDkUNACAPQQR0IQVBACEDQQEhC0EBIQICfwJAAkACQAJAAkACQAJAA0AgDCACQQFrIgdLBEAgASgCiAMiBiAHIBBqTQ0FIAEoAoQDIAVqIANqIAMgCmoiBygCADYCACACIAxPDQQgAiAQaiIJIAEoAogDIgZPDQggASgChAMgBWogA2pBBGogB0EEaigCADYCACACQQFqIAxPDQMgASgCiAMiBiAJQQFqTQ0HIAEoAoQDIAVqIANqQQhqIAdBCGooAgA2AgAgAkECaiAMTw0CIAEoAogDIgYgCUECak0NBiABKAKEAyAFaiADakEMaiAHQQxqKAIANgIAIAJBBGohAiADQRBqIQMgCyAOSSALQQFqIQsNAQwKCwsgAkEBayECDAILIAJBAmohAgwBCyACQQFqIQILIAIgDEHYs8EAEIwHAAsgD0ECdCACakEBawwDCyAPQQJ0IAJqQQJqDAILIA9BAnQgAmpBAWoMAQsgD0ECdCACagsgBkHos8EAEIwHAAsgBCgCGCIDRQ0NIAhBBGsoAgAiAkF4cSIFIANBAnQiA0EEQQggAkEDcSICG2pJDRMgAkEAIAUgA0EnaksbDQAgCBCiAgwNCwwTCyAEQagBaiADIAIgASgCrAIQ1AQgEyABKAKoAiABKAKsAiAEKAKsASIDIAQoArABELcEIAQoAqgBIgJFDQsCQCADQQRrKAIAIghBeHEiBSACQQJ0IgJBBEEIIAhBA3EiCBtqTwRAIAhBACAFIAJBJ2pLGw0BIAMQogIMDQsMEgsMEgsgBEGoAWogAyACIAEoAqwCEJwFIBMgASgCqAIgASgCrAIgBCgCrAEiAyAEKAKwARC2BCAEKAKoASICRQ0KAkAgA0EEaygCACIIQXhxIgUgAkEBdCICQQRBCCAIQQNxIggbak8EQCAIQQAgBSACQSdqSxsNASADEKICDAwLDBELDBELIAZBAWohBgsgBiAIQcTNwQAQjAcACyATIAEoAqgCIAEoAqwCIAQoAlwiAyAEKAJgEKAFIAQoAlgiAkUNBwJAIANBBGsoAgAiCEF4cSIFIAJBAnQiAkEEQQggCEEDcSIIG2pPBEAgCEEAIAUgAkEnaksbDQEgAxCiAgwJCwwOCwwOCyAEQRhqIAMgAiABKAKsAiANKgIEIA0qAgwQqgMLIBMgASgCqAIgASgCrAIgBCgCHCIDIAQoAiAQngIgBCgCGCICRQ0FAkAgA0EEaygCACIIQXhxIgUgAkECdCICQQRBCCAIQQNxIggbak8EQCAIQQAgBSACQSdqSxsNASADEKICDAcLDAwLDAwLIARBGGogAyACQQMgCCAkICcQ+QQLIBMgASgCqAIgASgCrAIgBCgCHCIDIAQoAiAQpAIgBCgCGCICRQ0DAkAgA0EEaygCACIIQXhxIgUgAkECdCICQQRBCCAIQQNxIggbak8EQCAIQQAgBSACQSdqSxsNASADEKICDAULDAoLDAoLIARBGGogAyACQQEgASgCrAIgDSoCBCANKgIMEPkECyAEKAIgIQggBCgCHCEJIBMgASgCqAIgASgCrAIiCxDpBCALBEBBACECQQwhCiAIIQUDQAJAAkACQCABKAK4AyIDIAJBA2pLBEAgBUUNAiACIAlqKAIAIgdB////A3EhDCAHQYCAgIB4cSEGIAdBgICA/AdxIgNBgICA/AdGBEAgBkEQdiAMQQ12ckGABEEAIAwbckGA+AFyIQYMBAsgBkEQdiEGIANBgICAuARLDQEgA0GAgIDEA08EQCAHQQx2IAdB/98AcUEAR3EgA0ENdiAMQQ12akGAgAFqIAZyaiEGDAQLIANBgICAmANJDQMgDEGAgIAEciIHQf4AIANBF3YiDGt2IQMgB0EdIAxrIgx2QQFxBH8gA0EDIAx0QQFrIAdxQQBHagUgAwsgBnIhBgwDCyACIAJBBGogA0HIs8EAEOoHAAsgBkGA+AFyIQYMAQsgCCAIQbizwQAQjAcACyABKAK0AyAKaiAGQf//A3E2AgAgCkEQaiEKIAVBAWshBSACQQRqIQIgC0EBayILDQALCyABQQE6APwDIAQoAhgiA0UNAQJAIAlBBGsoAgAiAkF4cSIIIANBAnQiA0EEQQggAkEDcSICG2pPBEAgAkEAIAggA0EnaksbDQEgCRCiAgwDCwwICwwICyAAQQE6AAAgACABNgIEIBtFIBpFcg0FIBkgGkEBEKIHDAULAkACQAJAIAEoArgCIgIgDSgCGEEHakF4cSIDTwRAIAFBADYCuAIgAiADayEIIANFDQEgAiADRg0DIAhFDQIgASgCtAIiAiACIANqIAj8CgAADAILQQAgAyACQYSkxwAQ6gcACyACIANGDQELIAEgCDYCuAILIA0pAxghKyABIAEoAqQCQQFqIgI2AqQCIAEgASkDcCArQgd8Qvj///8Pg3w3A3ACQCAbRSAaRXINAAJAIBlBBGsoAgAiA0F4cSICQQRBCCADQQNxIgMbIBpqTwRAIANBACACIBpBJ2pLGw0BIBkQogIgASgCpAIhAgwCCwwHCwwHCyACIAEoAmRJDQALCyAAQYACOwEADAILQYzJwQAQ3QkACyAAQQE6AAAgACAZNgIECyAEQcABaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIARBADYCqAFBACAEQfAAaiAEQdgAaiAEQagBakHg+cQAEPUHAAvlXgIZfwd9IwBBIGsiHSQAAkACQAJAIAFBIUkEQCAAIQcgASEIDAELIAJBBGshHiACQRBrIR8DQCAERQRAIAAgASACIANBASAGEGEMAwsgACABQQN2IgdBHGxqIRMgACAHQQR0aiENAkAgAUHAAE8EQCAAIA0gEyAHIAYQoQEhFiAGKAIAIRwMAQtDAACAPyEhAn8CQCAAKAIAIgcgBigCACIcQQRqKAIAIhEoAggiGkkEQCANKAIAIRYgESgCBCIJIAdBGGxqIgstABMiDyALLQASIgggCy0AESIHIAcgCEkbIgcgByAPSRsiCgR9QwAAQMEgESoCRCARLQBYQQJGIgcbIiBDAAAQQSARKgJIIAcbICCTQwAAfkOVIApBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISUgC0EMai8BACIQQf//AXEiC0UEQCAQQRB0DAMLIBBB/wdxIQ8gEEGAgAJxIQggEEGA+AFxIgdBgPgBRgRAIAhBEHQiB0GAgID8B3IgD0UNAxogByAPQQ10ckGAgID+B3IMAwsgCEEQdCEIIAdFDQEgB0ENdEGAgID8AHEgD0ENdHJBgICAwANqIAhyDAILIAcgGkHcu8cAEIwHAAsgDyAPZ0EQayIHQf//A3FBCGp0Qf///wNxIAhBgICA2ANyIAdBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISICfwJAIBYgGkkEQCAJIBZBGGxqIhYtABMiDyAWLQASIgggFi0AESIHIAcgCEkbIgcgByAPSRsiDAR9QwAAQMEgESoCRCARLQBYQQJGIgcbIiBDAAAQQSARKgJIIAcbICCTQwAAfkOVIAxBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISMgFkEMai8BACIOQf//AXEiFkUEQCAOQRB0DAMLIA5B/wdxIQ8gDkGAgAJxIQggDkGA+AFxIgdBgPgBRgRAIAhBEHQiB0GAgID8B3IgD0UNAxogByAPQQ10ckGAgID+B3IMAwsgCEEQdCEIIAdFDQEgB0ENdEGAgID8AHEgD0ENdHJBgICAwANqIAhyDAILIBYgGkHcu8cAEIwHAAsgDyAPZ0EQayIHQf//A3FBCGp0Qf///wNxIAhBgICA2ANyIAdBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEiCyATKAIAIQ8gCgR9QwAAQMEgESoCRCARLQBYQQJGIgcbIiBDAAAQQSARKgJIIAcbICCTQwAAfkOVIApBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISRDAACAPyEmAn8gEEEQdCALRQ0AGiAQQf8HcSELIBBBgIACcSEIIBBBgPgBcSIHQYD4AUYEQCAIQRB0IgdBgICA/AdyIAtFDQEaIAcgC0ENdHJBgICA/gdyDAELIAhBEHQiCCAHQQ10QYCAgPwAcSALQQ10ckGAgIDAA2pyIAcNABogCyALZ0EQayIHQf//A3FBCGp0Qf///wNxIAhBgICA2ANyIAdBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEmCwJ/AkAgDyAaSQRAICUgIZQiJSAjICKUYCAJIA9BGGxqIgktABMiDyAJLQASIgggCS0AESIHIAcgCEkbIgcgByAPSRsiCgR9QwAAQMEgESoCRCARLQBYQQJGIgcbIiBDAAAQQSARKgJIIAcbICCTQwAAfkOVIApBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISNFIQ8gJSAlWyEIIAlBDGovAQAiEEH//wFxIgtFBEAgEEEQdAwDCyAQQf8HcSEaIBBBgIACcSEJIBBBgPgBcSIHQYD4AUYEQCAJQRB0IgdBgICA/AdyIBpFDQMaIAcgGkENdHJBgICA/gdyDAMLIAlBEHQhCSAHRQ0BIAdBDXRBgICA/ABxIBpBDXRyQYCAgMADaiAJcgwCCyAPIBpB3LvHABCMBwALIBogGmdBEGsiB0H//wNxQQhqdEH///8DcSAJQYCAgNgDciAHQRd0a3ILQwAAgD8hIr4iIEMAAIA/XgRAICAQxgVDVPgtQJRDAACAP5KRISILIAggD3EiDyAkICaUIiAgIFsgICAjICKUYEVxRwRAIAAhFgwBCyATIA0gDyAMBH1DAABAwSARKgJEIBEtAFhBAkYiBxsiIEMAABBBIBEqAkggBxsgIJNDAAB+Q5UgDEEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAsCfyAOQRB0IBZFDQAaIA5B/wdxIRYgDkGAgAJxIQggDkGA+AFxIgdBgPgBRgRAIAhBEHQiB0GAgID8B3IgFkUNARogByAWQQ10ckGAgID+B3IMAQsgCEEQdCIIIAdBDXRBgICA/ABxIBZBDXRyQYCAgMADanIgBw0AGiAWIBZnQRBrIgdB//8DcUEIanRB////A3EgCEGAgIDYA3IgB0EXdGtyC74iIEMAAIA/XgR9ICAQxgVDVPgtQJRDAACAP5KRBUMAAIA/C5QiIyAjWyAjIAoEfUMAAEDBIBEqAkQgES0AWEECRiIHGyIgQwAAEEEgESoCSCAHGyAgk0MAAH5DlSAKQQFrQf8BcbOUkhCJBCIgICCSBUMAAAAACwJ/IBBBEHQgC0UNABogEEH/B3EhCyAQQYCAAnEhCCAQQYD4AXEiB0GA+AFGBEAgCEEQdCIHQYCAgPwHciALRQ0BGiAHIAtBDXRyQYCAgP4HcgwBCyAIQRB0IgggB0ENdEGAgID8AHEgC0ENdHJBgICAwANqciAHDQAaIAsgC2dBEGsiB0H//wNxQQhqdEH///8DcSAIQYCAgNgDciAHQRd0a3ILviIgQwAAgD9eBH0gIBDGBUNU+C1AlEMAAIA/kpEFQwAAgD8LlGBFcXMbIRYLIARBAWshBCAdIBYoAgAiDTYCBCAWIABrQQJ2IQ8CQAJAAkAgBQRAQwAAgD8hIQJ/AkAgBSgCACIHIBxBBGooAgAiEygCCCIMSQRAIBMoAgQiCSAHQRhsaiIKLQATIgsgCi0AEiIIIAotABEiByAHIAhJGyIHIAcgC0kbIggEfUMAAEDBIBMqAkQgEy0AWEECRiIHGyIgQwAAEEEgEyoCSCAHGyAgk0MAAH5DlSAIQQFrQf8BcbOUkhCJBCIgICCSBUMAAAAACyEkIApBDGovAQAiB0H//wFxRQRAIAdBEHQMAwsgB0H/B3EhCyAHQYCAAnEhCCAHQYD4AXEiB0GA+AFGBEAgCEEQdCIHQYCAgPwHciALRQ0DGiAHIAtBDXRyQYCAgP4HcgwDCyAIQRB0IQggB0UNASAHQQ10QYCAgPwAcSALQQ10ckGAgIDAA2ogCHIMAgsgByAMQdy7xwAQjAcACyALIAtnQRBrIgdB//8DcUEIanRB////A3EgCEGAgIDYA3IgB0EXdGtyC74iIEMAAIA/XgRAICAQxgVDVPgtQJRDAACAP5KRISELQwAAgD8hIgJ/AkAgDCANSwRAIAkgDUEYbGoiCS0AEyILIAktABIiCCAJLQARIgcgByAISRsiByAHIAtJGyIIBH1DAABAwSATKgJEIBMtAFhBAkYiBxsiIEMAABBBIBMqAkggBxsgIJNDAAB+Q5UgCEEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshIyAJQQxqLwEAIgdB//8BcUUEQCAHQRB0DAMLIAdB/wdxIQsgB0GAgAJxIQggB0GA+AFxIgdBgPgBRgRAIAhBEHQiB0GAgID8B3IgC0UNAxogByALQQ10ckGAgID+B3IMAwsgCEEQdCEIIAdFDQEgB0ENdEGAgID8AHEgC0ENdHJBgICAwANqIAhyDAILIA0gDEHcu8cAEIwHAAsgCyALZ0EQayIHQf//A3FBCGp0Qf///wNxIAhBgICA2ANyIAdBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEiCyAkICGUIiAgIFwgICAjICKUYHINAQsgASADSw0BIAIgAUECdCIaaiEVQQAhCCAAIQsgDyEHA0AgACAHQQNrIglBACAHIAlPG0ECdGoiEyALSwRAIBxBBGooAgAiEigCCCEZIBYoAgAhFANAQwAAgD8hIQJ/AkAgGSALKAIAIhBLBEAgEigCBCIbIBBBGGxqIg0tABMiDCANLQASIgogDS0AESIJIAkgCkkbIgkgCSAMSRsiCgR9QwAAQMEgEioCRCASLQBYQQJGIgkbIiBDAAAQQSASKgJIIAkbICCTQwAAfkOVIApBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISQgDUEMai8BACIJQf//AXFFBEAgCUEQdAwDCyAJQf8HcSEMIAlBgIACcSEKIAlBgPgBcSIJQYD4AUYEQCAKQRB0IglBgICA/AdyIAxFDQMaIAkgDEENdHJBgICA/gdyDAMLIApBEHQhCiAJRQ0BIAlBDXRBgICA/ABxIAxBDXRyQYCAgMADaiAKcgwCCyAQIBlB3LvHABCMBwALIAwgDGdBEGsiCUH//wNxQQhqdEH///8DcSAKQYCAgNgDciAJQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIQtDAACAPyEiAn8CQCAUIBlJBEAgGyAUQRhsaiIXLQATIgwgFy0AEiIKIBctABEiCSAJIApJGyIJIAkgDEkbIgoEfUMAAEDBIBIqAkQgEi0AWEECRiIJGyIgQwAAEEEgEioCSCAJGyAgk0MAAH5DlSAKQQFrQf8BcbOUkhCJBCIgICCSBUMAAAAACyEjIBdBDGoiES8BACIJQf//AXFFBEAgCUEQdAwDCyAJQf8HcSEMIAlBgIACcSEKIAlBgPgBcSIJQYD4AUYEQCAKQRB0IglBgICA/AdyIAxFDQMaIAkgDEENdHJBgICA/gdyDAMLIApBEHQhCiAJRQ0BIAlBDXRBgICA/ABxIAxBDXRyQYCAgMADaiAKcgwCCyAUIBlB3LvHABCMBwALIAwgDGdBEGsiCUH//wNxQQhqdEH///8DcSAKQYCAgNgDciAJQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIgsgCEECdCACIBVBBGsgJCAhlCIgICBbICAgIyAilGBFcSING2ogEDYCAEMAAIA/ISECfwJAIBkgC0EEaigCACIOSwRAIBsgDkEYbGoiEC0AEyIMIBAtABIiCiAQLQARIgkgCSAKSRsiCSAJIAxJGyIKBH1DAABAwSASKgJEIBItAFhBAkYiCRsiIEMAABBBIBIqAkggCRsgIJNDAAB+Q5UgCkEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshJCAQQQxqLwEAIglB//8BcUUEQCAJQRB0DAMLIAlB/wdxIQwgCUGAgAJxIQogCUGA+AFxIglBgPgBRgRAIApBEHQiCUGAgID8B3IgDEUNAxogCSAMQQ10ckGAgID+B3IMAwsgCkEQdCEKIAlFDQEgCUENdEGAgID8AHEgDEENdHJBgICAwANqIApyDAILDAsLIAwgDGdBEGsiCUH//wNxQQhqdEH///8DcSAKQYCAgNgDciAJQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIQsgFy0AEyIMIBctABIiCiAXLQARIgkgCSAKSRsiCSAJIAxJGyIKBH1DAABAwSASKgJEIBItAFhBAkYiCRsiIEMAABBBIBIqAkggCRsgIJNDAAB+Q5UgCkEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshI0MAAIA/ISICfyARLwEAIglB//8BcUUEQCAJQRB0DAELIAlB/wdxIQwgCUGAgAJxIQogCUGA+AFxIglBgPgBRgRAIApBEHQiCUGAgID8B3IgDEUNARogCSAMQQ10ckGAgID+B3IMAQsgCkEQdCIKIAlBDXRBgICA/ABxIAxBDXRyQYCAgMADanIgCQ0AGiAMIAxnQRBrIglB//8DcUEIanRB////A3EgCkGAgIDYA3IgCUEXdGtyC74iIEMAAIA/XgRAICAQxgVDVPgtQJRDAACAP5KRISILIAggDWoiDUECdCACIBVBCGsgJCAhlCIgICBbICAgIyAilGBFcSIMG2ogDjYCAEMAAIA/ISECfwJAIBkgC0EIaigCACIOSwRAIBsgDkEYbGoiEC0AEyIKIBAtABIiCSAQLQARIgggCCAJSRsiCCAIIApJGyIJBH1DAABAwSASKgJEIBItAFhBAkYiCBsiIEMAABBBIBIqAkggCBsgIJNDAAB+Q5UgCUEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshJCAQQQxqLwEAIghB//8BcUUEQCAIQRB0DAMLIAhB/wdxIQogCEGAgAJxIQkgCEGA+AFxIghBgPgBRgRAIAlBEHQiCEGAgID8B3IgCkUNAxogCCAKQQ10ckGAgID+B3IMAwsgCUEQdCEJIAhFDQEgCEENdEGAgID8AHEgCkENdHJBgICAwANqIAlyDAILDAsLIAogCmdBEGsiCEH//wNxQQhqdEH///8DcSAJQYCAgNgDciAIQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIQsgFy0AEyIKIBctABIiCSAXLQARIgggCCAJSRsiCCAIIApJGyIJBH1DAABAwSASKgJEIBItAFhBAkYiCBsiIEMAABBBIBIqAkggCBsgIJNDAAB+Q5UgCUEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshI0MAAIA/ISICfyARLwEAIghB//8BcUUEQCAIQRB0DAELIAhB/wdxIQogCEGAgAJxIQkgCEGA+AFxIghBgPgBRgRAIAlBEHQiCEGAgID8B3IgCkUNARogCCAKQQ10ckGAgID+B3IMAQsgCUEQdCIJIAhBDXRBgICA/ABxIApBDXRyQYCAgMADanIgCA0AGiAKIApnQRBrIghB//8DcUEIanRB////A3EgCUGAgIDYA3IgCEEXdGtyC74iIEMAAIA/XgRAICAQxgVDVPgtQJRDAACAP5KRISILIAwgDWoiDUECdCACIBVBDGsgJCAhlCIgICBbICAgIyAilGBFcSIMG2ogDjYCAEMAAIA/ISECfwJAIBkgC0EMaigCACIOSwRAIBsgDkEYbGoiEC0AEyIKIBAtABIiCSAQLQARIgggCCAJSRsiCCAIIApJGyIJBH1DAABAwSASKgJEIBItAFhBAkYiCBsiIEMAABBBIBIqAkggCBsgIJNDAAB+Q5UgCUEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshJCAQQQxqLwEAIghB//8BcUUEQCAIQRB0DAMLIAhB/wdxIQogCEGAgAJxIQkgCEGA+AFxIghBgPgBRgRAIAlBEHQiCEGAgID8B3IgCkUNAxogCCAKQQ10ckGAgID+B3IMAwsgCUEQdCEJIAhFDQEgCEENdEGAgID8AHEgCkENdHJBgICAwANqIAlyDAILDAsLIAogCmdBEGsiCEH//wNxQQhqdEH///8DcSAJQYCAgNgDciAIQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIQsgFy0AEyIKIBctABIiCSAXLQARIgggCCAJSRsiCCAIIApJGyIJBH1DAABAwSASKgJEIBItAFhBAkYiCBsiIEMAABBBIBIqAkggCBsgIJNDAAB+Q5UgCUEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshI0MAAIA/ISICfyARLwEAIghB//8BcUUEQCAIQRB0DAELIAhB/wdxIQogCEGAgAJxIQkgCEGA+AFxIghBgPgBRgRAIAlBEHQiCEGAgID8B3IgCkUNARogCCAKQQ10ckGAgID+B3IMAQsgCUEQdCIJIAhBDXRBgICA/ABxIApBDXRyQYCAgMADanIgCA0AGiAKIApnQRBrIghB//8DcUEIanRB////A3EgCUGAgIDYA3IgCEEXdGtyC74iIEMAAIA/XgRAICAQxgVDVPgtQJRDAACAP5KRISILIAwgDWoiCUECdCACIBVBEGsiFSAkICGUIiAgIFsgICAjICKUYEVxIggbaiAONgIAIAggCWohCCALQRBqIgsgE0kNAAsLIAAgB0ECdGoiEyALSwRAIBxBBGooAgAiGygCCCEUIBYoAgAhEQNAQwAAgD8hIQJ/AkAgFCALKAIAIg5LBEAgGygCBCINIA5BGGxqIhAtABMiDCAQLQASIgogEC0AESIJIAkgCkkbIgkgCSAMSRsiCgR9QwAAQMEgGyoCRCAbLQBYQQJGIgkbIiBDAAAQQSAbKgJIIAkbICCTQwAAfkOVIApBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISMgEEEMai8BACIJQf//AXFFBEAgCUEQdAwDCyAJQf8HcSEMIAlBgIACcSEKIAlBgPgBcSIJQYD4AUYEQCAKQRB0IglBgICA/AdyIAxFDQMaIAkgDEENdHJBgICA/gdyDAMLIApBEHQhCiAJRQ0BIAlBDXRBgICA/ABxIAxBDXRyQYCAgMADaiAKcgwCCyAOIBRB3LvHABCMBwALIAwgDGdBEGsiCUH//wNxQQhqdEH///8DcSAKQYCAgNgDciAJQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIQsCfwJAIBEgFEkEQCANIBFBGGxqIg0tABMiDCANLQASIgogDS0AESIJIAkgCkkbIgkgCSAMSRsiCgR9QwAAQMEgGyoCRCAbLQBYQQJGIgkbIiBDAAAQQSAbKgJIIAkbICCTQwAAfkOVIApBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISAgDUEMai8BACIJQf//AXFFBEAgCUEQdAwDCyAJQf8HcSEMIAlBgIACcSEKIAlBgPgBcSIJQYD4AUYEQCAKQRB0IglBgICA/AdyIAxFDQMaIAkgDEENdHJBgICA/gdyDAMLIApBEHQhCiAJRQ0BIAlBDXRBgICA/ABxIAxBDXRyQYCAgMADaiAKcgwCCyARIBRB3LvHABCMBwwGCyAMIAxnQRBrIglB//8DcUEIanRB////A3EgCkGAgIDYA3IgCUEXdGtyCyEJIAhBAnQgAiAVQQRrIhUgIyAhlCIjICNbICMgICAJviIgQwAAgD9eBH0gIBDGBUNU+C1AlEMAAIA/kpEFQwAAgD8LlGBFcSIJG2ogDjYCACAIIAlqIQggC0EEaiILIBNJDQALCyABIAdHBEAgFUEEayIVIAhBAnRqIAsoAgA2AgAgC0EEaiELIAEhBwwBCwsgCEECdCIMBEAgACACIAz8CgAACyABIAhrIQoCQCABIAhGDQBBACEHIApBBE8EQCAAIAxqIQ0gGiAfaiEJIApBfHEiByELA0AgDSAJ/QACAP0MAAAAAAAAAAAAAAAAAAAAAP0NDA0ODwgJCgsEBQYHAAECA/0LAgAgCUEQayEJIA1BEGohDSALQQRrIgsNAAsgByAKRg0BCyAeIBogB0ECdCILa2ohDSAAIAtqIAxqIQkgByABayAIaiELA0AgCSANKAIANgIAIA1BBGshDSAJQQRqIQkgC0EBaiILDQALCyAIRQ0AIAEgCE8NAiAdQQA2AhggHUEBNgIMIB1BiILIADYCCCAdQgQ3AhAgHUEIakH0lMEAEI0IAAsgASADSw0AIAIgAUECdCIQaiEVIAYoAgAhGkEAIRQgACELA0AgACAPQQNrIgVBACAFIA9NG0ECdGoiDSALSwRAIBpBBGooAgAiFygCCCEbIBYoAgAhHCAGKAIAQQRqIQwDQEMAAIA/ISECfwJAIBsgHEsEQCALKAIAIQ4gFygCBCIJIBxBGGwiCmoiEy0AEyIIIBMtABIiByATLQARIgUgBSAHSRsiBSAFIAhJGyIHBH1DAABAwSAXKgJEIBctAFhBAkYiBRsiIEMAABBBIBcqAkggBRsgIJNDAAB+Q5UgB0EBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshJCATQQxqLwEAIgVB//8BcUUEQCAFQRB0DAMLIAVB/wdxIQggBUGAgAJxIQcgBUGA+AFxIgVBgPgBRgRAIAdBEHQiBUGAgID8B3IgCEUNAxogBSAIQQ10ckGAgID+B3IMAwsgB0EQdCEHIAVFDQEgBUENdEGAgID8AHEgCEENdHJBgICAwANqIAdyDAILIBwgG0Hcu8cAEIwHAAsgCCAIZ0EQayIFQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAVBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISICfwJAIA4gG0kEQCAJIA5BGGxqIgktABMiCCAJLQASIgcgCS0AESIFIAUgB0kbIgUgBSAISRsiBwR9QwAAQMEgFyoCRCAXLQBYQQJGIgUbIiBDAAAQQSAXKgJIIAUbICCTQwAAfkOVIAdBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISMgCUEMai8BACIFQf//AXFFBEAgBUEQdAwDCyAFQf8HcSEIIAVBgIACcSEHIAVBgPgBcSIFQYD4AUYEQCAHQRB0IgVBgICA/AdyIAhFDQMaIAUgCEENdHJBgICA/gdyDAMLIAdBEHQhByAFRQ0BIAVBDXRBgICA/ABxIAhBDXRyQYCAgMADaiAHcgwCCyAOIBtB3LvHABCMBwALIAggCGdBEGsiBUH//wNxQQhqdEH///8DcSAHQYCAgNgDciAFQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIgsgFEECdCACIBVBBGsgJCAhlCIgICBcICAgIyAilGByIgkbaiAONgIAQwAAgD8hIQJ/AkAgDCgCACIYKAIIIhkgHEsEQCALQQRqKAIAIQ4gCiAYKAIEIhFqIhItABMiCCASLQASIgcgEi0AESIFIAUgB0kbIgUgBSAISRsiBwR9QwAAQMEgGCoCRCAYLQBYQQJGIgUbIiBDAAAQQSAYKgJIIAUbICCTQwAAfkOVIAdBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISQgEkEMaiITLwEAIgVB//8BcUUEQCAFQRB0DAMLIAVB/wdxIQggBUGAgAJxIQcgBUGA+AFxIgVBgPgBRgRAIAdBEHQiBUGAgID8B3IgCEUNAxogBSAIQQ10ckGAgID+B3IMAwsgB0EQdCEHIAVFDQEgBUENdEGAgID8AHEgCEENdHJBgICAwANqIAdyDAILIBwgGUHcu8cAEIwHAAsgCCAIZ0EQayIFQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAVBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISICfwJAIA4gGUkEQCARIA5BGGxqIgotABMiCCAKLQASIgcgCi0AESIFIAUgB0kbIgUgBSAISRsiBwR9QwAAQMEgGCoCRCAYLQBYQQJGIgUbIiBDAAAQQSAYKgJIIAUbICCTQwAAfkOVIAdBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISMgCkEMai8BACIFQf//AXFFBEAgBUEQdAwDCyAFQf8HcSEIIAVBgIACcSEHIAVBgPgBcSIFQYD4AUYEQCAHQRB0IgVBgICA/AdyIAhFDQMaIAUgCEENdHJBgICA/gdyDAMLIAdBEHQhByAFRQ0BIAVBDXRBgICA/ABxIAhBDXRyQYCAgMADaiAHcgwCCwwKCyAIIAhnQRBrIgVB//8DcUEIanRB////A3EgB0GAgIDYA3IgBUEXdGtyC74iIEMAAIA/XgRAICAQxgVDVPgtQJRDAACAP5KRISILIAkgFGoiCkECdCACIBVBCGsgJCAhlCIgICBcICAgIyAilGByIgkbaiAONgIAIAtBCGooAgAhFCASLQATIgggEi0AEiIHIBItABEiBSAFIAdJGyIFIAUgCEkbIgcEfUMAAEDBIBgqAkQgGC0AWEECRiIFGyIgQwAAEEEgGCoCSCAFGyAgk0MAAH5DlSAHQQFrQf8BcbOUkhCJBCIgICCSBUMAAAAACyEkQwAAgD8hIQJ/IBMvAQAiBUH//wFxRQRAIAVBEHQMAQsgBUH/B3EhCCAFQYCAAnEhByAFQYD4AXEiBUGA+AFGBEAgB0EQdCIFQYCAgPwHciAIRQ0BGiAFIAhBDXRyQYCAgP4HcgwBCyAHQRB0IgcgBUENdEGAgID8AHEgCEENdHJBgICAwANqciAFDQAaIAggCGdBEGsiBUH//wNxQQhqdEH///8DcSAHQYCAgNgDciAFQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIQtDAACAPyEiAn8CQCAUIBlJBEAgESAUQRhsaiIOLQATIgggDi0AEiIHIA4tABEiBSAFIAdJGyIFIAUgCEkbIgcEfUMAAEDBIBgqAkQgGC0AWEECRiIFGyIgQwAAEEEgGCoCSCAFGyAgk0MAAH5DlSAHQQFrQf8BcbOUkhCJBCIgICCSBUMAAAAACyEjIA5BDGovAQAiBUH//wFxRQRAIAVBEHQMAwsgBUH/B3EhCCAFQYCAAnEhByAFQYD4AXEiBUGA+AFGBEAgB0EQdCIFQYCAgPwHciAIRQ0DGiAFIAhBDXRyQYCAgP4HcgwDCyAHQRB0IQcgBUUNASAFQQ10QYCAgPwAcSAIQQ10ckGAgIDAA2ogB3IMAgsgFCAZQdy7xwAQjAcACyAIIAhnQRBrIgVB//8DcUEIanRB////A3EgB0GAgIDYA3IgBUEXdGtyC74iIEMAAIA/XgRAICAQxgVDVPgtQJRDAACAP5KRISILIAkgCmoiCkECdCACIBVBDGsgJCAhlCIgICBcICAgIyAilGByIgkbaiAUNgIAIAtBDGooAgAhDiASLQATIgggEi0AEiIHIBItABEiBSAFIAdJGyIFIAUgCEkbIgcEfUMAAEDBIBgqAkQgGC0AWEECRiIFGyIgQwAAEEEgGCoCSCAFGyAgk0MAAH5DlSAHQQFrQf8BcbOUkhCJBCIgICCSBUMAAAAACyEkQwAAgD8hIQJ/IBMvAQAiBUH//wFxRQRAIAVBEHQMAQsgBUH/B3EhCCAFQYCAAnEhByAFQYD4AXEiBUGA+AFGBEAgB0EQdCIFQYCAgPwHciAIRQ0BGiAFIAhBDXRyQYCAgP4HcgwBCyAHQRB0IgcgBUENdEGAgID8AHEgCEENdHJBgICAwANqciAFDQAaIAggCGdBEGsiBUH//wNxQQhqdEH///8DcSAHQYCAgNgDciAFQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIQtDAACAPyEiAn8CQCAOIBlJBEAgESAOQRhsaiITLQATIgggEy0AEiIHIBMtABEiBSAFIAdJGyIFIAUgCEkbIgcEfUMAAEDBIBgqAkQgGC0AWEECRiIFGyIgQwAAEEEgGCoCSCAFGyAgk0MAAH5DlSAHQQFrQf8BcbOUkhCJBCIgICCSBUMAAAAACyEjIBNBDGovAQAiBUH//wFxRQRAIAVBEHQMAwsgBUH/B3EhCCAFQYCAAnEhByAFQYD4AXEiBUGA+AFGBEAgB0EQdCIFQYCAgPwHciAIRQ0DGiAFIAhBDXRyQYCAgP4HcgwDCyAHQRB0IQcgBUUNASAFQQ10QYCAgPwAcSAIQQ10ckGAgIDAA2ogB3IMAgsMCgsgCCAIZ0EQayIFQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAVBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEiCyAJIApqIgdBAnQgAiAVQRBrIhUgJCAhlCIgICBcICAgIyAilGByIgUbaiAONgIAIAUgB2ohFCALQRBqIgsgDUkNAAsLIAAgD0ECdGoiCiALSwRAIBpBBGooAgAiESgCCCEOIBYoAgAhDQNAQwAAgD8hIQJ/AkAgDSAOSQRAIAsoAgAhEyARKAIEIgkgDUEYbGoiDC0AEyIIIAwtABIiByAMLQARIgUgBSAHSRsiBSAFIAhJGyIHBH1DAABAwSARKgJEIBEtAFhBAkYiBRsiIEMAABBBIBEqAkggBRsgIJNDAAB+Q5UgB0EBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshJCAMQQxqLwEAIgVB//8BcUUEQCAFQRB0DAMLIAVB/wdxIQggBUGAgAJxIQcgBUGA+AFxIgVBgPgBRgRAIAdBEHQiBUGAgID8B3IgCEUNAxogBSAIQQ10ckGAgID+B3IMAwsgB0EQdCEHIAVFDQEgBUENdEGAgID8AHEgCEENdHJBgICAwANqIAdyDAILIA0gDkHcu8cAEIwHAAsgCCAIZ0EQayIFQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAVBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISICfwJAIA4gE0sEQCAJIBNBGGxqIgktABMiCCAJLQASIgcgCS0AESIFIAUgB0kbIgUgBSAISRsiBwR9QwAAQMEgESoCRCARLQBYQQJGIgUbIiBDAAAQQSARKgJIIAUbICCTQwAAfkOVIAdBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISMgCUEMai8BACIFQf//AXFFBEAgBUEQdAwDCyAFQf8HcSEIIAVBgIACcSEHIAVBgPgBcSIFQYD4AUYEQCAHQRB0IgVBgICA/AdyIAhFDQMaIAUgCEENdHJBgICA/gdyDAMLIAdBEHQhByAFRQ0BIAVBDXRBgICA/ABxIAhBDXRyQYCAgMADaiAHcgwCCyATIA5B3LvHABCMBwALIAggCGdBEGsiBUH//wNxQQhqdEH///8DcSAHQYCAgNgDciAFQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIgsgFEECdCACIBVBBGsiFSAkICGUIiAgIFwgICAjICKUYHIiBRtqIBM2AgAgBSAUaiEUIAtBBGoiCyAKSQ0ACwsgASAPRwRAIAIgFEECdGogCygCADYCACALQQRqIQsgFEEBaiEUIBVBBGshFSABIQ8MAQsLIBRBAnQiDwRAIAAgAiAP/AoAAAsgASAURg0EIAAgD2ohB0EAIRUCQCABIBRrIghBBE8EQCAQIB9qIQ0gByEJIAhBfHEiFSELA0AgCSAN/QACAP0MAAAAAAAAAAAAAAAAAAAAAP0NDA0ODwgJCgsEBQYHAAECA/0LAgAgDUEQayENIAlBEGohCSALQQRrIgsNAAsgCCAVRg0BCyAeIBVBAnQiBWsgEGohDSAAIAVqIA9qIQkgFSABayAUaiELA0AgCSANKAIANgIAIA1BBGshDSAJQQRqIQkgC0EBaiILDQALCyABIBRPBEBBACEFIAchACAIIQEgCEEhSQ0EDAMLIBQgASABQYSVwQAQ6gcACwALIAAgDGogCiACIAMgBCAdQQRqIAYQNyAIIQEgCEEhTw0ACyAAIQcLIAhBAkkNACAGKAIAIQYgCEEBdiEPIA8CfyAIQQ9NBEAgCEEHSwRAIAcgAiAGQQRqIgEoAgAQbSAHIA9BAnQiAGogACACaiABKAIAEG1BBAwCCyACIAcoAgA2AgAgAiAPQQJ0IgBqIAAgB2ooAgA2AgBBAQwBCyAHIAIgCEECdGoiBSAGQQRqIgQoAgAQbSAHQRBqIAVBEGogBCgCABBtIAVBCCACIAYQtgEgByAPQQJ0IgNqIgEgBUEgaiIAIAQoAgAQbSABQRBqIAVBMGogBCgCABBtIABBCCACIANqIAYQtgFBCAsiA0sEQCAPIANrIQkgA0ECdCENA0AgAiANaiIAIAcgDWooAgA2AgAgAiAAIAYQygEgDUEEaiENIAlBAWsiCQ0ACwsgCCAPayADSwRAIAIgD0ECdCIAaiEBIAcgA0ECdCAAaiIAaiEJIAAgAmohDSADIA9qIAhrIRUDQCANIAkoAgA2AgAgASANIAYQygEgCUEEaiEJIA1BBGohDSAVQQFqIhUNAAsLIAIgCCAHIAYQtgELIB1BIGokAA8LIA4gGUHcu8cAEIwHAAvlXgIZfwd9IwBBIGsiHSQAAkACQAJAIAFBIUkEQCAAIQcgASEIDAELIAJBBGshHiACQRBrIR8DQCAERQRAIAAgASACIANBASAGEGAMAwsgACABQQN2IgdBHGxqIRMgACAHQQR0aiENAkAgAUHAAE8EQCAAIA0gEyAHIAYQoQEhFiAGKAIAIRwMAQtDAACAPyEhAn8CQCAAKAIAIgcgBigCACIcQQRqKAIAIhEoAggiGkkEQCANKAIAIRYgESgCBCIJIAdBGGxqIgstABMiDyALLQASIgggCy0AESIHIAcgCEkbIgcgByAPSRsiCgR9QwAAQMEgESoCRCARLQBYQQJGIgcbIiBDAAAQQSARKgJIIAcbICCTQwAAfkOVIApBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISUgC0EMai8BACIQQf//AXEiC0UEQCAQQRB0DAMLIBBB/wdxIQ8gEEGAgAJxIQggEEGA+AFxIgdBgPgBRgRAIAhBEHQiB0GAgID8B3IgD0UNAxogByAPQQ10ckGAgID+B3IMAwsgCEEQdCEIIAdFDQEgB0ENdEGAgID8AHEgD0ENdHJBgICAwANqIAhyDAILIAcgGkHcu8cAEIwHAAsgDyAPZ0EQayIHQf//A3FBCGp0Qf///wNxIAhBgICA2ANyIAdBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISICfwJAIBYgGkkEQCAJIBZBGGxqIhYtABMiDyAWLQASIgggFi0AESIHIAcgCEkbIgcgByAPSRsiDAR9QwAAQMEgESoCRCARLQBYQQJGIgcbIiBDAAAQQSARKgJIIAcbICCTQwAAfkOVIAxBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISMgFkEMai8BACIOQf//AXEiFkUEQCAOQRB0DAMLIA5B/wdxIQ8gDkGAgAJxIQggDkGA+AFxIgdBgPgBRgRAIAhBEHQiB0GAgID8B3IgD0UNAxogByAPQQ10ckGAgID+B3IMAwsgCEEQdCEIIAdFDQEgB0ENdEGAgID8AHEgD0ENdHJBgICAwANqIAhyDAILIBYgGkHcu8cAEIwHAAsgDyAPZ0EQayIHQf//A3FBCGp0Qf///wNxIAhBgICA2ANyIAdBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEiCyATKAIAIQ8gCgR9QwAAQMEgESoCRCARLQBYQQJGIgcbIiBDAAAQQSARKgJIIAcbICCTQwAAfkOVIApBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISRDAACAPyEmAn8gEEEQdCALRQ0AGiAQQf8HcSELIBBBgIACcSEIIBBBgPgBcSIHQYD4AUYEQCAIQRB0IgdBgICA/AdyIAtFDQEaIAcgC0ENdHJBgICA/gdyDAELIAhBEHQiCCAHQQ10QYCAgPwAcSALQQ10ckGAgIDAA2pyIAcNABogCyALZ0EQayIHQf//A3FBCGp0Qf///wNxIAhBgICA2ANyIAdBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEmCwJ/AkAgDyAaSQRAICUgIZQiJSAjICKUYCAJIA9BGGxqIgktABMiDyAJLQASIgggCS0AESIHIAcgCEkbIgcgByAPSRsiCgR9QwAAQMEgESoCRCARLQBYQQJGIgcbIiBDAAAQQSARKgJIIAcbICCTQwAAfkOVIApBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISNFIQ8gJSAlWyEIIAlBDGovAQAiEEH//wFxIgtFBEAgEEEQdAwDCyAQQf8HcSEaIBBBgIACcSEJIBBBgPgBcSIHQYD4AUYEQCAJQRB0IgdBgICA/AdyIBpFDQMaIAcgGkENdHJBgICA/gdyDAMLIAlBEHQhCSAHRQ0BIAdBDXRBgICA/ABxIBpBDXRyQYCAgMADaiAJcgwCCyAPIBpB3LvHABCMBwALIBogGmdBEGsiB0H//wNxQQhqdEH///8DcSAJQYCAgNgDciAHQRd0a3ILQwAAgD8hIr4iIEMAAIA/XgRAICAQxgVDVPgtQJRDAACAP5KRISILIAggD3EiDyAkICaUIiAgIFsgICAjICKUYEVxRwRAIAAhFgwBCyATIA0gDyAMBH1DAABAwSARKgJEIBEtAFhBAkYiBxsiIEMAABBBIBEqAkggBxsgIJNDAAB+Q5UgDEEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAsCfyAOQRB0IBZFDQAaIA5B/wdxIRYgDkGAgAJxIQggDkGA+AFxIgdBgPgBRgRAIAhBEHQiB0GAgID8B3IgFkUNARogByAWQQ10ckGAgID+B3IMAQsgCEEQdCIIIAdBDXRBgICA/ABxIBZBDXRyQYCAgMADanIgBw0AGiAWIBZnQRBrIgdB//8DcUEIanRB////A3EgCEGAgIDYA3IgB0EXdGtyC74iIEMAAIA/XgR9ICAQxgVDVPgtQJRDAACAP5KRBUMAAIA/C5QiIyAjWyAjIAoEfUMAAEDBIBEqAkQgES0AWEECRiIHGyIgQwAAEEEgESoCSCAHGyAgk0MAAH5DlSAKQQFrQf8BcbOUkhCJBCIgICCSBUMAAAAACwJ/IBBBEHQgC0UNABogEEH/B3EhCyAQQYCAAnEhCCAQQYD4AXEiB0GA+AFGBEAgCEEQdCIHQYCAgPwHciALRQ0BGiAHIAtBDXRyQYCAgP4HcgwBCyAIQRB0IgggB0ENdEGAgID8AHEgC0ENdHJBgICAwANqciAHDQAaIAsgC2dBEGsiB0H//wNxQQhqdEH///8DcSAIQYCAgNgDciAHQRd0a3ILviIgQwAAgD9eBH0gIBDGBUNU+C1AlEMAAIA/kpEFQwAAgD8LlGBFcXMbIRYLIARBAWshBCAdIBYoAgAiDTYCBCAWIABrQQJ2IQ8CQAJAAkAgBQRAQwAAgD8hIQJ/AkAgBSgCACIHIBxBBGooAgAiEygCCCIMSQRAIBMoAgQiCSAHQRhsaiIKLQATIgsgCi0AEiIIIAotABEiByAHIAhJGyIHIAcgC0kbIggEfUMAAEDBIBMqAkQgEy0AWEECRiIHGyIgQwAAEEEgEyoCSCAHGyAgk0MAAH5DlSAIQQFrQf8BcbOUkhCJBCIgICCSBUMAAAAACyEkIApBDGovAQAiB0H//wFxRQRAIAdBEHQMAwsgB0H/B3EhCyAHQYCAAnEhCCAHQYD4AXEiB0GA+AFGBEAgCEEQdCIHQYCAgPwHciALRQ0DGiAHIAtBDXRyQYCAgP4HcgwDCyAIQRB0IQggB0UNASAHQQ10QYCAgPwAcSALQQ10ckGAgIDAA2ogCHIMAgsgByAMQdy7xwAQjAcACyALIAtnQRBrIgdB//8DcUEIanRB////A3EgCEGAgIDYA3IgB0EXdGtyC74iIEMAAIA/XgRAICAQxgVDVPgtQJRDAACAP5KRISELQwAAgD8hIgJ/AkAgDCANSwRAIAkgDUEYbGoiCS0AEyILIAktABIiCCAJLQARIgcgByAISRsiByAHIAtJGyIIBH1DAABAwSATKgJEIBMtAFhBAkYiBxsiIEMAABBBIBMqAkggBxsgIJNDAAB+Q5UgCEEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshIyAJQQxqLwEAIgdB//8BcUUEQCAHQRB0DAMLIAdB/wdxIQsgB0GAgAJxIQggB0GA+AFxIgdBgPgBRgRAIAhBEHQiB0GAgID8B3IgC0UNAxogByALQQ10ckGAgID+B3IMAwsgCEEQdCEIIAdFDQEgB0ENdEGAgID8AHEgC0ENdHJBgICAwANqIAhyDAILIA0gDEHcu8cAEIwHAAsgCyALZ0EQayIHQf//A3FBCGp0Qf///wNxIAhBgICA2ANyIAdBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEiCyAkICGUIiAgIFwgICAjICKUYHINAQsgASADSw0BIAIgAUECdCIaaiEVQQAhCCAAIQsgDyEHA0AgACAHQQNrIglBACAHIAlPG0ECdGoiEyALSwRAIBxBBGooAgAiEigCCCEZIBYoAgAhFANAQwAAgD8hIQJ/AkAgGSALKAIAIhBLBEAgEigCBCIbIBBBGGxqIg0tABMiDCANLQASIgogDS0AESIJIAkgCkkbIgkgCSAMSRsiCgR9QwAAQMEgEioCRCASLQBYQQJGIgkbIiBDAAAQQSASKgJIIAkbICCTQwAAfkOVIApBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISQgDUEMai8BACIJQf//AXFFBEAgCUEQdAwDCyAJQf8HcSEMIAlBgIACcSEKIAlBgPgBcSIJQYD4AUYEQCAKQRB0IglBgICA/AdyIAxFDQMaIAkgDEENdHJBgICA/gdyDAMLIApBEHQhCiAJRQ0BIAlBDXRBgICA/ABxIAxBDXRyQYCAgMADaiAKcgwCCyAQIBlB3LvHABCMBwALIAwgDGdBEGsiCUH//wNxQQhqdEH///8DcSAKQYCAgNgDciAJQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIQtDAACAPyEiAn8CQCAUIBlJBEAgGyAUQRhsaiIXLQATIgwgFy0AEiIKIBctABEiCSAJIApJGyIJIAkgDEkbIgoEfUMAAEDBIBIqAkQgEi0AWEECRiIJGyIgQwAAEEEgEioCSCAJGyAgk0MAAH5DlSAKQQFrQf8BcbOUkhCJBCIgICCSBUMAAAAACyEjIBdBDGoiES8BACIJQf//AXFFBEAgCUEQdAwDCyAJQf8HcSEMIAlBgIACcSEKIAlBgPgBcSIJQYD4AUYEQCAKQRB0IglBgICA/AdyIAxFDQMaIAkgDEENdHJBgICA/gdyDAMLIApBEHQhCiAJRQ0BIAlBDXRBgICA/ABxIAxBDXRyQYCAgMADaiAKcgwCCyAUIBlB3LvHABCMBwALIAwgDGdBEGsiCUH//wNxQQhqdEH///8DcSAKQYCAgNgDciAJQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIgsgCEECdCACIBVBBGsgJCAhlCIgICBbICAgIyAilGBFcSING2ogEDYCAEMAAIA/ISECfwJAIBkgC0EEaigCACIOSwRAIBsgDkEYbGoiEC0AEyIMIBAtABIiCiAQLQARIgkgCSAKSRsiCSAJIAxJGyIKBH1DAABAwSASKgJEIBItAFhBAkYiCRsiIEMAABBBIBIqAkggCRsgIJNDAAB+Q5UgCkEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshJCAQQQxqLwEAIglB//8BcUUEQCAJQRB0DAMLIAlB/wdxIQwgCUGAgAJxIQogCUGA+AFxIglBgPgBRgRAIApBEHQiCUGAgID8B3IgDEUNAxogCSAMQQ10ckGAgID+B3IMAwsgCkEQdCEKIAlFDQEgCUENdEGAgID8AHEgDEENdHJBgICAwANqIApyDAILDAsLIAwgDGdBEGsiCUH//wNxQQhqdEH///8DcSAKQYCAgNgDciAJQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIQsgFy0AEyIMIBctABIiCiAXLQARIgkgCSAKSRsiCSAJIAxJGyIKBH1DAABAwSASKgJEIBItAFhBAkYiCRsiIEMAABBBIBIqAkggCRsgIJNDAAB+Q5UgCkEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshI0MAAIA/ISICfyARLwEAIglB//8BcUUEQCAJQRB0DAELIAlB/wdxIQwgCUGAgAJxIQogCUGA+AFxIglBgPgBRgRAIApBEHQiCUGAgID8B3IgDEUNARogCSAMQQ10ckGAgID+B3IMAQsgCkEQdCIKIAlBDXRBgICA/ABxIAxBDXRyQYCAgMADanIgCQ0AGiAMIAxnQRBrIglB//8DcUEIanRB////A3EgCkGAgIDYA3IgCUEXdGtyC74iIEMAAIA/XgRAICAQxgVDVPgtQJRDAACAP5KRISILIAggDWoiDUECdCACIBVBCGsgJCAhlCIgICBbICAgIyAilGBFcSIMG2ogDjYCAEMAAIA/ISECfwJAIBkgC0EIaigCACIOSwRAIBsgDkEYbGoiEC0AEyIKIBAtABIiCSAQLQARIgggCCAJSRsiCCAIIApJGyIJBH1DAABAwSASKgJEIBItAFhBAkYiCBsiIEMAABBBIBIqAkggCBsgIJNDAAB+Q5UgCUEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshJCAQQQxqLwEAIghB//8BcUUEQCAIQRB0DAMLIAhB/wdxIQogCEGAgAJxIQkgCEGA+AFxIghBgPgBRgRAIAlBEHQiCEGAgID8B3IgCkUNAxogCCAKQQ10ckGAgID+B3IMAwsgCUEQdCEJIAhFDQEgCEENdEGAgID8AHEgCkENdHJBgICAwANqIAlyDAILDAsLIAogCmdBEGsiCEH//wNxQQhqdEH///8DcSAJQYCAgNgDciAIQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIQsgFy0AEyIKIBctABIiCSAXLQARIgggCCAJSRsiCCAIIApJGyIJBH1DAABAwSASKgJEIBItAFhBAkYiCBsiIEMAABBBIBIqAkggCBsgIJNDAAB+Q5UgCUEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshI0MAAIA/ISICfyARLwEAIghB//8BcUUEQCAIQRB0DAELIAhB/wdxIQogCEGAgAJxIQkgCEGA+AFxIghBgPgBRgRAIAlBEHQiCEGAgID8B3IgCkUNARogCCAKQQ10ckGAgID+B3IMAQsgCUEQdCIJIAhBDXRBgICA/ABxIApBDXRyQYCAgMADanIgCA0AGiAKIApnQRBrIghB//8DcUEIanRB////A3EgCUGAgIDYA3IgCEEXdGtyC74iIEMAAIA/XgRAICAQxgVDVPgtQJRDAACAP5KRISILIAwgDWoiDUECdCACIBVBDGsgJCAhlCIgICBbICAgIyAilGBFcSIMG2ogDjYCAEMAAIA/ISECfwJAIBkgC0EMaigCACIOSwRAIBsgDkEYbGoiEC0AEyIKIBAtABIiCSAQLQARIgggCCAJSRsiCCAIIApJGyIJBH1DAABAwSASKgJEIBItAFhBAkYiCBsiIEMAABBBIBIqAkggCBsgIJNDAAB+Q5UgCUEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshJCAQQQxqLwEAIghB//8BcUUEQCAIQRB0DAMLIAhB/wdxIQogCEGAgAJxIQkgCEGA+AFxIghBgPgBRgRAIAlBEHQiCEGAgID8B3IgCkUNAxogCCAKQQ10ckGAgID+B3IMAwsgCUEQdCEJIAhFDQEgCEENdEGAgID8AHEgCkENdHJBgICAwANqIAlyDAILDAsLIAogCmdBEGsiCEH//wNxQQhqdEH///8DcSAJQYCAgNgDciAIQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIQsgFy0AEyIKIBctABIiCSAXLQARIgggCCAJSRsiCCAIIApJGyIJBH1DAABAwSASKgJEIBItAFhBAkYiCBsiIEMAABBBIBIqAkggCBsgIJNDAAB+Q5UgCUEBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshI0MAAIA/ISICfyARLwEAIghB//8BcUUEQCAIQRB0DAELIAhB/wdxIQogCEGAgAJxIQkgCEGA+AFxIghBgPgBRgRAIAlBEHQiCEGAgID8B3IgCkUNARogCCAKQQ10ckGAgID+B3IMAQsgCUEQdCIJIAhBDXRBgICA/ABxIApBDXRyQYCAgMADanIgCA0AGiAKIApnQRBrIghB//8DcUEIanRB////A3EgCUGAgIDYA3IgCEEXdGtyC74iIEMAAIA/XgRAICAQxgVDVPgtQJRDAACAP5KRISILIAwgDWoiCUECdCACIBVBEGsiFSAkICGUIiAgIFsgICAjICKUYEVxIggbaiAONgIAIAggCWohCCALQRBqIgsgE0kNAAsLIAAgB0ECdGoiEyALSwRAIBxBBGooAgAiGygCCCEUIBYoAgAhEQNAQwAAgD8hIQJ/AkAgFCALKAIAIg5LBEAgGygCBCINIA5BGGxqIhAtABMiDCAQLQASIgogEC0AESIJIAkgCkkbIgkgCSAMSRsiCgR9QwAAQMEgGyoCRCAbLQBYQQJGIgkbIiBDAAAQQSAbKgJIIAkbICCTQwAAfkOVIApBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISMgEEEMai8BACIJQf//AXFFBEAgCUEQdAwDCyAJQf8HcSEMIAlBgIACcSEKIAlBgPgBcSIJQYD4AUYEQCAKQRB0IglBgICA/AdyIAxFDQMaIAkgDEENdHJBgICA/gdyDAMLIApBEHQhCiAJRQ0BIAlBDXRBgICA/ABxIAxBDXRyQYCAgMADaiAKcgwCCyAOIBRB3LvHABCMBwALIAwgDGdBEGsiCUH//wNxQQhqdEH///8DcSAKQYCAgNgDciAJQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIQsCfwJAIBEgFEkEQCANIBFBGGxqIg0tABMiDCANLQASIgogDS0AESIJIAkgCkkbIgkgCSAMSRsiCgR9QwAAQMEgGyoCRCAbLQBYQQJGIgkbIiBDAAAQQSAbKgJIIAkbICCTQwAAfkOVIApBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISAgDUEMai8BACIJQf//AXFFBEAgCUEQdAwDCyAJQf8HcSEMIAlBgIACcSEKIAlBgPgBcSIJQYD4AUYEQCAKQRB0IglBgICA/AdyIAxFDQMaIAkgDEENdHJBgICA/gdyDAMLIApBEHQhCiAJRQ0BIAlBDXRBgICA/ABxIAxBDXRyQYCAgMADaiAKcgwCCyARIBRB3LvHABCMBwwGCyAMIAxnQRBrIglB//8DcUEIanRB////A3EgCkGAgIDYA3IgCUEXdGtyCyEJIAhBAnQgAiAVQQRrIhUgIyAhlCIjICNbICMgICAJviIgQwAAgD9eBH0gIBDGBUNU+C1AlEMAAIA/kpEFQwAAgD8LlGBFcSIJG2ogDjYCACAIIAlqIQggC0EEaiILIBNJDQALCyABIAdHBEAgFUEEayIVIAhBAnRqIAsoAgA2AgAgC0EEaiELIAEhBwwBCwsgCEECdCIMBEAgACACIAz8CgAACyABIAhrIQoCQCABIAhGDQBBACEHIApBBE8EQCAAIAxqIQ0gGiAfaiEJIApBfHEiByELA0AgDSAJ/QACAP0MAAAAAAAAAAAAAAAAAAAAAP0NDA0ODwgJCgsEBQYHAAECA/0LAgAgCUEQayEJIA1BEGohDSALQQRrIgsNAAsgByAKRg0BCyAeIBogB0ECdCILa2ohDSAAIAtqIAxqIQkgByABayAIaiELA0AgCSANKAIANgIAIA1BBGshDSAJQQRqIQkgC0EBaiILDQALCyAIRQ0AIAEgCE8NAiAdQQA2AhggHUEBNgIMIB1BiILIADYCCCAdQgQ3AhAgHUEIakH0lMEAEI0IAAsgASADSw0AIAIgAUECdCIQaiEVIAYoAgAhGkEAIRQgACELA0AgACAPQQNrIgVBACAFIA9NG0ECdGoiDSALSwRAIBpBBGooAgAiFygCCCEbIBYoAgAhHCAGKAIAQQRqIQwDQEMAAIA/ISECfwJAIBsgHEsEQCALKAIAIQ4gFygCBCIJIBxBGGwiCmoiEy0AEyIIIBMtABIiByATLQARIgUgBSAHSRsiBSAFIAhJGyIHBH1DAABAwSAXKgJEIBctAFhBAkYiBRsiIEMAABBBIBcqAkggBRsgIJNDAAB+Q5UgB0EBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshJCATQQxqLwEAIgVB//8BcUUEQCAFQRB0DAMLIAVB/wdxIQggBUGAgAJxIQcgBUGA+AFxIgVBgPgBRgRAIAdBEHQiBUGAgID8B3IgCEUNAxogBSAIQQ10ckGAgID+B3IMAwsgB0EQdCEHIAVFDQEgBUENdEGAgID8AHEgCEENdHJBgICAwANqIAdyDAILIBwgG0Hcu8cAEIwHAAsgCCAIZ0EQayIFQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAVBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISICfwJAIA4gG0kEQCAJIA5BGGxqIgktABMiCCAJLQASIgcgCS0AESIFIAUgB0kbIgUgBSAISRsiBwR9QwAAQMEgFyoCRCAXLQBYQQJGIgUbIiBDAAAQQSAXKgJIIAUbICCTQwAAfkOVIAdBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISMgCUEMai8BACIFQf//AXFFBEAgBUEQdAwDCyAFQf8HcSEIIAVBgIACcSEHIAVBgPgBcSIFQYD4AUYEQCAHQRB0IgVBgICA/AdyIAhFDQMaIAUgCEENdHJBgICA/gdyDAMLIAdBEHQhByAFRQ0BIAVBDXRBgICA/ABxIAhBDXRyQYCAgMADaiAHcgwCCyAOIBtB3LvHABCMBwALIAggCGdBEGsiBUH//wNxQQhqdEH///8DcSAHQYCAgNgDciAFQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIgsgFEECdCACIBVBBGsgJCAhlCIgICBcICAgIyAilGByIgkbaiAONgIAQwAAgD8hIQJ/AkAgDCgCACIYKAIIIhkgHEsEQCALQQRqKAIAIQ4gCiAYKAIEIhFqIhItABMiCCASLQASIgcgEi0AESIFIAUgB0kbIgUgBSAISRsiBwR9QwAAQMEgGCoCRCAYLQBYQQJGIgUbIiBDAAAQQSAYKgJIIAUbICCTQwAAfkOVIAdBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISQgEkEMaiITLwEAIgVB//8BcUUEQCAFQRB0DAMLIAVB/wdxIQggBUGAgAJxIQcgBUGA+AFxIgVBgPgBRgRAIAdBEHQiBUGAgID8B3IgCEUNAxogBSAIQQ10ckGAgID+B3IMAwsgB0EQdCEHIAVFDQEgBUENdEGAgID8AHEgCEENdHJBgICAwANqIAdyDAILIBwgGUHcu8cAEIwHAAsgCCAIZ0EQayIFQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAVBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISICfwJAIA4gGUkEQCARIA5BGGxqIgotABMiCCAKLQASIgcgCi0AESIFIAUgB0kbIgUgBSAISRsiBwR9QwAAQMEgGCoCRCAYLQBYQQJGIgUbIiBDAAAQQSAYKgJIIAUbICCTQwAAfkOVIAdBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISMgCkEMai8BACIFQf//AXFFBEAgBUEQdAwDCyAFQf8HcSEIIAVBgIACcSEHIAVBgPgBcSIFQYD4AUYEQCAHQRB0IgVBgICA/AdyIAhFDQMaIAUgCEENdHJBgICA/gdyDAMLIAdBEHQhByAFRQ0BIAVBDXRBgICA/ABxIAhBDXRyQYCAgMADaiAHcgwCCwwKCyAIIAhnQRBrIgVB//8DcUEIanRB////A3EgB0GAgIDYA3IgBUEXdGtyC74iIEMAAIA/XgRAICAQxgVDVPgtQJRDAACAP5KRISILIAkgFGoiCkECdCACIBVBCGsgJCAhlCIgICBcICAgIyAilGByIgkbaiAONgIAIAtBCGooAgAhFCASLQATIgggEi0AEiIHIBItABEiBSAFIAdJGyIFIAUgCEkbIgcEfUMAAEDBIBgqAkQgGC0AWEECRiIFGyIgQwAAEEEgGCoCSCAFGyAgk0MAAH5DlSAHQQFrQf8BcbOUkhCJBCIgICCSBUMAAAAACyEkQwAAgD8hIQJ/IBMvAQAiBUH//wFxRQRAIAVBEHQMAQsgBUH/B3EhCCAFQYCAAnEhByAFQYD4AXEiBUGA+AFGBEAgB0EQdCIFQYCAgPwHciAIRQ0BGiAFIAhBDXRyQYCAgP4HcgwBCyAHQRB0IgcgBUENdEGAgID8AHEgCEENdHJBgICAwANqciAFDQAaIAggCGdBEGsiBUH//wNxQQhqdEH///8DcSAHQYCAgNgDciAFQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIQtDAACAPyEiAn8CQCAUIBlJBEAgESAUQRhsaiIOLQATIgggDi0AEiIHIA4tABEiBSAFIAdJGyIFIAUgCEkbIgcEfUMAAEDBIBgqAkQgGC0AWEECRiIFGyIgQwAAEEEgGCoCSCAFGyAgk0MAAH5DlSAHQQFrQf8BcbOUkhCJBCIgICCSBUMAAAAACyEjIA5BDGovAQAiBUH//wFxRQRAIAVBEHQMAwsgBUH/B3EhCCAFQYCAAnEhByAFQYD4AXEiBUGA+AFGBEAgB0EQdCIFQYCAgPwHciAIRQ0DGiAFIAhBDXRyQYCAgP4HcgwDCyAHQRB0IQcgBUUNASAFQQ10QYCAgPwAcSAIQQ10ckGAgIDAA2ogB3IMAgsgFCAZQdy7xwAQjAcACyAIIAhnQRBrIgVB//8DcUEIanRB////A3EgB0GAgIDYA3IgBUEXdGtyC74iIEMAAIA/XgRAICAQxgVDVPgtQJRDAACAP5KRISILIAkgCmoiCkECdCACIBVBDGsgJCAhlCIgICBcICAgIyAilGByIgkbaiAUNgIAIAtBDGooAgAhDiASLQATIgggEi0AEiIHIBItABEiBSAFIAdJGyIFIAUgCEkbIgcEfUMAAEDBIBgqAkQgGC0AWEECRiIFGyIgQwAAEEEgGCoCSCAFGyAgk0MAAH5DlSAHQQFrQf8BcbOUkhCJBCIgICCSBUMAAAAACyEkQwAAgD8hIQJ/IBMvAQAiBUH//wFxRQRAIAVBEHQMAQsgBUH/B3EhCCAFQYCAAnEhByAFQYD4AXEiBUGA+AFGBEAgB0EQdCIFQYCAgPwHciAIRQ0BGiAFIAhBDXRyQYCAgP4HcgwBCyAHQRB0IgcgBUENdEGAgID8AHEgCEENdHJBgICAwANqciAFDQAaIAggCGdBEGsiBUH//wNxQQhqdEH///8DcSAHQYCAgNgDciAFQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIQtDAACAPyEiAn8CQCAOIBlJBEAgESAOQRhsaiITLQATIgggEy0AEiIHIBMtABEiBSAFIAdJGyIFIAUgCEkbIgcEfUMAAEDBIBgqAkQgGC0AWEECRiIFGyIgQwAAEEEgGCoCSCAFGyAgk0MAAH5DlSAHQQFrQf8BcbOUkhCJBCIgICCSBUMAAAAACyEjIBNBDGovAQAiBUH//wFxRQRAIAVBEHQMAwsgBUH/B3EhCCAFQYCAAnEhByAFQYD4AXEiBUGA+AFGBEAgB0EQdCIFQYCAgPwHciAIRQ0DGiAFIAhBDXRyQYCAgP4HcgwDCyAHQRB0IQcgBUUNASAFQQ10QYCAgPwAcSAIQQ10ckGAgIDAA2ogB3IMAgsMCgsgCCAIZ0EQayIFQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAVBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEiCyAJIApqIgdBAnQgAiAVQRBrIhUgJCAhlCIgICBcICAgIyAilGByIgUbaiAONgIAIAUgB2ohFCALQRBqIgsgDUkNAAsLIAAgD0ECdGoiCiALSwRAIBpBBGooAgAiESgCCCEOIBYoAgAhDQNAQwAAgD8hIQJ/AkAgDSAOSQRAIAsoAgAhEyARKAIEIgkgDUEYbGoiDC0AEyIIIAwtABIiByAMLQARIgUgBSAHSRsiBSAFIAhJGyIHBH1DAABAwSARKgJEIBEtAFhBAkYiBRsiIEMAABBBIBEqAkggBRsgIJNDAAB+Q5UgB0EBa0H/AXGzlJIQiQQiICAgkgVDAAAAAAshJCAMQQxqLwEAIgVB//8BcUUEQCAFQRB0DAMLIAVB/wdxIQggBUGAgAJxIQcgBUGA+AFxIgVBgPgBRgRAIAdBEHQiBUGAgID8B3IgCEUNAxogBSAIQQ10ckGAgID+B3IMAwsgB0EQdCEHIAVFDQEgBUENdEGAgID8AHEgCEENdHJBgICAwANqIAdyDAILIA0gDkHcu8cAEIwHAAsgCCAIZ0EQayIFQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAVBF3Rrcgu+IiBDAACAP14EQCAgEMYFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISICfwJAIA4gE0sEQCAJIBNBGGxqIgktABMiCCAJLQASIgcgCS0AESIFIAUgB0kbIgUgBSAISRsiBwR9QwAAQMEgESoCRCARLQBYQQJGIgUbIiBDAAAQQSARKgJIIAUbICCTQwAAfkOVIAdBAWtB/wFxs5SSEIkEIiAgIJIFQwAAAAALISMgCUEMai8BACIFQf//AXFFBEAgBUEQdAwDCyAFQf8HcSEIIAVBgIACcSEHIAVBgPgBcSIFQYD4AUYEQCAHQRB0IgVBgICA/AdyIAhFDQMaIAUgCEENdHJBgICA/gdyDAMLIAdBEHQhByAFRQ0BIAVBDXRBgICA/ABxIAhBDXRyQYCAgMADaiAHcgwCCyATIA5B3LvHABCMBwALIAggCGdBEGsiBUH//wNxQQhqdEH///8DcSAHQYCAgNgDciAFQRd0a3ILviIgQwAAgD9eBEAgIBDGBUNU+C1AlEMAAIA/kpEhIgsgFEECdCACIBVBBGsiFSAkICGUIiAgIFwgICAjICKUYHIiBRtqIBM2AgAgBSAUaiEUIAtBBGoiCyAKSQ0ACwsgASAPRwRAIAIgFEECdGogCygCADYCACALQQRqIQsgFEEBaiEUIBVBBGshFSABIQ8MAQsLIBRBAnQiDwRAIAAgAiAP/AoAAAsgASAURg0EIAAgD2ohB0EAIRUCQCABIBRrIghBBE8EQCAQIB9qIQ0gByEJIAhBfHEiFSELA0AgCSAN/QACAP0MAAAAAAAAAAAAAAAAAAAAAP0NDA0ODwgJCgsEBQYHAAECA/0LAgAgDUEQayENIAlBEGohCSALQQRrIgsNAAsgCCAVRg0BCyAeIBVBAnQiBWsgEGohDSAAIAVqIA9qIQkgFSABayAUaiELA0AgCSANKAIANgIAIA1BBGshDSAJQQRqIQkgC0EBaiILDQALCyABIBRPBEBBACEFIAchACAIIQEgCEEhSQ0EDAMLIBQgASABQYSVwQAQ6gcACwALIAAgDGogCiACIAMgBCAdQQRqIAYQOCAIIQEgCEEhTw0ACyAAIQcLIAhBAkkNACAGKAIAIQYgCEEBdiEPIA8CfyAIQQ9NBEAgCEEHSwRAIAcgAiAGQQRqIgEoAgAQbSAHIA9BAnQiAGogACACaiABKAIAEG1BBAwCCyACIAcoAgA2AgAgAiAPQQJ0IgBqIAAgB2ooAgA2AgBBAQwBCyAHIAIgCEECdGoiBSAGQQRqIgQoAgAQbSAHQRBqIAVBEGogBCgCABBtIAVBCCACIAYQtgEgByAPQQJ0IgNqIgEgBUEgaiIAIAQoAgAQbSABQRBqIAVBMGogBCgCABBtIABBCCACIANqIAYQtgFBCAsiA0sEQCAPIANrIQkgA0ECdCENA0AgAiANaiIAIAcgDWooAgA2AgAgAiAAIAYQygEgDUEEaiENIAlBAWsiCQ0ACwsgCCAPayADSwRAIAIgD0ECdCIAaiEBIAcgA0ECdCAAaiIAaiEJIAAgAmohDSADIA9qIAhrIRUDQCANIAkoAgA2AgAgASANIAYQygEgCUEEaiEJIA1BBGohDSAVQQFqIhUNAAsLIAIgCCAHIAYQtgELIB1BIGokAA8LIA4gGUHcu8cAEIwHAAvgawMRfwd+AXsjAEGw1QBrIgMkACAD/QwAAAAAAAAAAAAAAAAAAAAA/QsD8EggAq0hFAJAAkACQAJAAkACQAJAAn8CQAJ+AkACQAJAAkACQAJAAkACQEG4nMcAKQMAIhhC/wGDQgRSBEBCECEXA0AgAiAVIBQgFCAVVhunIgZrIgRCgMAAIBcgF0KAwABaG6ciBSAEIAVJGyIEBEAgA0EYaiABIAZqIAT8CgAACyACIAZGDQJBEEIQIBYgFkIQWhunIgVrIgYgBCAEIAZLIgcbIgYEQCADQfDIAGogBWogA0EYaiAG/AoAAAsgBw0DIBUgBK0iGnwhFSAEIApqIQogFiAGrXwhFiAXIBp9IhdCAFINAAsMAQtCECEXA0AgAiAVIBQgFCAVVhunIgZrIgRCgMAAIBcgF0KAwABaG6ciBSAEIAVJGyIEBEAgA0EYaiABIAZqIAT8CgAACyACIAZGDQFBEEIQIBYgFkIQWhunIgVrIgYgBCAEIAZLGyIGBEAgA0HwyABqIAVqIANBGGogBvwKAAALIBYgBq18IRYgBCAKaiEKIBUgBK0iGHwhFSAXIBh9IhdQRQ0ACwtB+LbJACgCACINQQBIDQJB+LbJACANQQFqNgIAIApBEUkEQANAIAwoAuy3RCEFIAwoAui3RCEEAkAgDCgC9LdEIgdFBEAgBSAKSw0BIAQgA0HwyABqIAUQ2wcNAQwFCyAFIApLDQAgDCgC8LdEIgYgB2ohDiADQfDIAGohBwNAIAVFDQUgBUEBayEFQaSkxwAgBiAGRSAGIA5GciIIGyEPIActAAAhCSAELQAAIQsgB0EBaiEHIARBAWohBEEAIAZBAWogCBshBiALIAkgDy0AAHFGDQALCyAMQRRqIgxBuANHDQALQfi2yQAgDTYCAEEDIQRBBCEBQQMhCQwLC0EAIApBEEGUpMcAEOoHAAsgGBDSByEBIABBgICAgHg2AgAgACABNgIEDAoLQfi2yQAgDTYCAAJAAn4CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAxB+LfEAGotAAAiBA4EAAMDAQMLQYCAARBxIgZFDRUgBkEAQYCAAfwLAEGAEBBxIgVFDRUgBUEAQYAQ/AsAIANBJGpBADsBACADQQA2AiBBqAcQcSIERQ0VIARBAEHYBvwLACAEQQA2ApQHIARBADYCiAcgBEEAOgCEByAEQQA2AoAHIAQgBTYC/AYgBCAGNgL4BiAEQgI3A/AGIARCADcD6AYgBEKAgICAIDcD4AYgBEEBNgLcBiAEQSQ2AtgGIARBADoApgcgBCADKQMYNwOYByAEQZ4HaiADKQEeNwEAQYABEHEiBkUNFSADQeQCakIANwIAIAP9DAAAAAAAAAAAAAAAAAAAAAD9CwLUAiADQQI2ArhFIANBADYCsEUgA0G8xQBqIANBGGoiBUHUAvwKAAAgA0GAAjsAw0ggA0EBOwHASCADQoCAgICCIDcDuEggA0IANwOwSCADQQA6AKhIIANBgAI7AaRIIAMgBDYCoEggA0EAOgCcSCADQQA2AphIIAMgBjYClEggA0GAATYCkEggAyABNgLISCADIAI2AsxIIANCADcD0EggA0EANgLYSCADQQA6AMJIIANB4MgAaiIBIANBsMUAahCcBCADLQDgSEEoRwRAIAUgARD8AyADKAIYIgFBBkcNBAsgA0EQNgLYSCADQdDRAGoiASADQbDFAGpBsAP8CgAAIANBGGogARCcBCADLQAYIgZBKEcEQCADQarVAGogAy0AGzoAACADIAMvABk7AahVIAMoAhwhBSADKQIgIRQgARCdAQwZCwJAAkAgAygCHCIBLQC+AiICQQN0KQOwkkkgATUCtAIgATEAvwJ+IhR+IhVC8P////8AVg0AIBVCB3xCA4inQQFqrUGAASABKAK4AiIBIAFBgAFPG61+IhVCIIinDQAgFaciAUH/AXEiBEEARyABQYB+cUGAAmoiBiABSXENACAGIAEgBBsiBkGBgAhJDQELQYCACCEGC0EBIQVB/////wchBAJAIAJBA3QpA+iSSSAUfiIUQvD/////AFYNACAUQgd8QgOIp0EBaiIBQf////8DSw0AIAFBAnQiAkFAcUFAayEIIAFBD3EiAUEAIAIgCEsbDQBBgIAIIAggAiABGyIBIAFBgIAITRshBAsgBgRAIAYQcSIFRQ0WCyADQRhqIANB0NEAakGoA/wKAAAgA0H1A2pCADcAACADQbQEakEANgIAIANBAToA3QQgA0EANgLUBCADQQA2AsgDIANCADcDwAMgA0IANwPwAyADQYCAgIB4NgKgBCADQgE3A5gEIANCADcDkAQgAyAFNgKMBCADIAY2AogEIANCfzcDgAQgA/0MAAAAAAAAAAAAAAAAAAAAAP0LAqQEIAMgBDYCuAQgAyADKAL4VDYC2AQgA0ECNgLcAyADQQA6ANwEIANBADYC0AQgA0KAgICAEDcDyAQgA0EANgLABAJAIAMoAiBBAkcEQEEnIQYgAy0A3gJBA3QpA6CTSSADNQLUAiIUIAMxAN8Cfn5C8f////8AVA0BDBkLQayYxwAQ3QkACyADKALYAiEFIANBEGogA0EYaiIBEIoFIAMtABBBA3QpA9iTSSADMQARIBR+fiIUQvD/////AFYNFyAFrSAUQgd8QgOIfiIVQiCIpyAVp0EASHINFyADQZDVAGogARCMASADLQCQVSIGQShHBEAgA0Gq1QBqIAMtAJNVOgAAIAMgAy8AkVU7AahVIAMoApRVIQUgAykCmFUhFAwY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nNPBABCMBwALIAMgCEGs08EAEIwHAAsgCCAHQbzTwQAQjAcACyAIIAdBzNPBABCMBwALIAggB0Hc08EAEIwHAAsgBiABQezSwQAQjAcACyAHIAFB3NLBABCMBwALIAQgAUHM0sEAEIwHAAsgACAAKAKYAiALIAAoAuwBIAAoAvABEKAFAkACQAJAIAAoAuQBIgEgCyAQbCICTwRAIABBADYC5AEgASACayEDIAVFDQEgASACRg0DIANFDQIgACgC4AEiASABIAJqIAP8CgAADAILDBALIAEgAkYNAQsgACADNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0FIABBADYCmAIgAEEFOgCcAgwFCyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0HC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAgD2UQwAAIMGSEIkEOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQngIgACgC5AEiAiAFSQ0WIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkGc0cEAEIwHAAsgASACQazRwQAQjAcACyACIARBvNHBABCMBwALIAIgBEHM0cEAEIwHAAsgAiAEQdzRwQAQjAcACyACIARB7NHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0EIABBADYCmAIgAEEEOgCcAgwECyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0GC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQpAIgACgC5AEiAiAFSQ0VIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkG80MEAEIwHAAsgASACQczQwQAQjAcACyACIARB3NDBABCMBwALIAIgBEHs0MEAEIwHAAsgAiAEQfzQwQAQjAcACyACIARBjNHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0DIABBADYCmAIgAEEDOgCcAgwDCyAAKALkASICIAAoApACIAAoApgCayILSQRAIAIiC0GAgARJDQULQYCABCALIAtBgIAETxsiCCAAKALwASIBSwRAIAggAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBSABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgQEQCADQQAgBPwLAAsgASACaiICQQFrIQEgBSACQQJ0akEEawUgAwtBADYCACAAIAFBAWo2AvABCwJAIAsEQEMAAIA/QwAAAEAgACwAngJBAE4bIRlBACEDQQAhAQJAAkADQCABIAAoAuQBIgJPDQIgASAAKALwASICTw0BIAAoAuwBIANqIBkgACgC4AEgAWotAACzQwAAf0OVlDgCACADQQRqIQMgCCABQQFqIgFHDQALIAAoAuwBIQ4gACgC8AEhAyAAIAAoApgCIAgQ6QRBACEBQQwhBiAIIQUgAyECA0ACQAJAIAAoAnwiBCABQQNqSwRAIAIEQCABIA5qKAIAIgpB////A3EhDCAKQYCAgIB4cSEEIApBgICA/AdxIgdBgICA/AdGBEAgBEEQdiAMQQ12ckGABEEAIAwbckGA+AFyIQQMBAsgBEEQdiEEIAdBgICAuARLDQIgB0GAgIDEA08EQCAKQQx2IApB/98AcUEAR3EgB0ENdiAMQQ12akGAgAFqIARyaiEEDAQLIAdBgICAmANJDQMgDEGAgIAEciIKQf4AIAdBF3YiDGt2IQcgCkEdIAxrIgx2QQFxBH8gB0EDIAx0QQFrIApxQQBHagUgBwsgBHIhBAwDCyADIANBuLPBABCMBwALIAEgAUEEaiAEQcizwQAQ6gcACyAEQYD4AXIhBAsgACgCeCAGaiAEQf//A3E2AgAgBkEQaiEGIAJBAWshAiABQQRqIQEgBUEBayIFDQALDAMLIAEgAkGs0MEAEIwHAAsgASACQZzQwQAQjAcACyAAIAAoApgCIAgQ6QQLIABBAToAwAECQAJAAkAgCCAAKALkASICTQRAIABBADYC5AEgAiAIayEBIAtFDQEgAiAIRg0DIAFFDQIgACgC4AEiAiACIAhqIAH8CgAADAILQQAgCCACQYSkxwAQ6gcACyACIAhGDQELIAAgATYC5AELIAAgACgCmAIgCGoiAjYCmAIgAiAAKAKQAkcNAiAAQQA2ApgCIABBAjoAnAIMAgsgC0UNAEEBIAAtAJ0CdLMhGUEAIQhBACEBQQAhAkEAIQMCQAJAAkACQANAIAFBA2oiBSAAKALkASIHSwRAIAEgBSAHQYzQwQAQ6gcACyADIAAoAvABIgdPDQEgACgC7AEgAmogACgC4AEgAWoiB0ECai0AACIGQRB0IActAAByIAdBAWotAABBCHRyIgdBgICAeHIgByAGwEEASBuyIBmVOAIAIAFBBmoiByAAKALkASIGSw0CIANBAWoiBSAAKALwASIGTw0DIAAoAuwBIAJqQQRqIAAoAuABIAFqIgVBBWotAAAiBkEQdCAFQQNqLQAAciAFQQRqLQAAQQh0ciIFQYCAgHhyIAUgBsBBAEgbsiAZlTgCACABQQlqIgUgACgC5AEiBksNBCADQQJqIgcgACgC8AEiBkkEQCAAKALsASACakEIaiAAKALgASABaiIBQQhqLQAAIgdBEHQgAUEGai0AAHIgAUEHai0AAEEIdHIiAUGAgIB4ciABIAfAQQBIG7IgGZU4AgAgAkEMaiECIANBA2ohAyAFIQEgCEEBaiIIIARJDQEMBgsLIAcgBkHcz8EAEIwHAAsgAyAHQbzPwQAQjAcACyAFIAcgBkH8z8EAEOoHAAsgBSAGQczPwQAQjAcACyAHIAUgBkHsz8EAEOoHAAsgACAAKAKYAiAEIAAoAuwBIAAoAvABEMIFAkACQAJAIAAoAuQBIgEgBCAMbCICTwRAIABBADYC5AEgASACayEDIAtFDQEgASACRg0DIANFDQIgACgC4AEiASABIAJqIAP8CgAADAILDAsLIAEgAkYNAQsgACADNgLkAQsgACAAKAKYAiAEaiICNgKYAiACIAAoApACRw0AIABBADYCmAIgAEEBOgCcAgwACwALIAlBATYCVCAJQbTOwQA2AlAgCUIBNwJcIAkgCUEsaq1CgICAgBCENwNAIAkgCUFAazYCWCAJQTBqIgAgCUHQAGoQsQYgABCOByEBDAQLIAktAA8hAQsgDSAUaiENAkACQAJAAkACQCABQf8BcQ4DAQIDAAsgCUEBNgJUIAlBmPfHADYCUCAJQgE3AlwgCSAJQQ9qrUKAgICAoASENwNAIAkgCUFAazYCWCAJQRBqIgAgCUHQAGoQsQYgABCOByEBDAYLIABBAToAqVQgDUEIaiANIAAoAswBIgIgDWsiAUEAIAEgAk0bQQdLGyENDAILIBEgFHJFDQELIA0gACgCzAEiA0kNAQsLIA1FDQAgDSAAKALMASICTQRAQQAhASAAQQA2AswBIAIgDUYNAiACIA1rIgIEQCAAKALIASIDIAMgDWogAvwKAAALIAAgAjYCzAEMAgtBACANIAJBhKTHABDqBwALQQAhAQsgCUHwAGokACABDwtBACABIANBhKTHABDqBwALQQAgAiABQYSkxwAQ6gcAC0EAIAUgAkGEpMcAEOoHAAvRXAMYfwR9AX4jAEHwAGsiCCQAAkACQAJAAkACQCAALQCgVEUEQCAIQdAAaiAAQbwBahC4BCAILQBQBEAgCCgCVCEBDAMLIAgtAFFBAUcNASAAQQE6AKBUCyAAKALEASIDRQ0AIABBmAJqIRUgCEE8aq1CgICAgBCEIR0gAEHUAWohFiAAQeABaiESIABB7AFqIRcgAEH4AWohGANAAkAgACgC0AEiBiAAKAKcVCIBayICQQAgAiAGTRtBgIAETwRAIAEhAgwBCyABIAFBgIACayICQQAgASACTxsiBGshAiABIARGBEAgACACNgKcVAwBCyABIAZNBEAgAgRAIAAoAswBIgEgASAEaiAC/AoAAAsgACgCxAEhAyAAIAI2ApxUDAELQQAgASAGQczVwQAQ6gcACwJAAkAgAyANTwRAIAhB0ABqIBUgACgCwAEgDWogAyANayAAKALMASAAKALQASACQQYQRCAIIAgtAFQiAToADyAIKAJQIRQgCCgCWCIRRQ0CIAAoApxUIgMgEWoiAiADTyACIAAoAtABIgZNcQ0BIAMgAiAGQdzVwQAQ6gcACyANIAMgA0Hs1cEAEOoHAAsgACgCzAEhBiAAKALUASAAKALcASICayARSQRAIBYgAiARQQFBARCkBSAAKALcASECCyARBEAgACgC2AEgAmogAyAGaiAR/AoAAAsgACACIBFqIgQ2AtwBIAAgACgCnFQgEWo2ApxUIAAoAuABQYCAgIB4RgRAAkAgBEEQSQ0AIAggACgC2AEiAigAACIDNgIcIANBzo7NggVHBEAgCEEBNgJkIAhBzMjBADYCYCAIQQE2AlQgCEHUzsEANgJQIAhBATYCXCAIIAhBHGqtQoCAgICQBIQ3A0AgCCAIQUBrNgJYIAhBIGoiACAIQdAAahCxBiAAEI4HIQEMBgsgCCACKAAEIgk2AiwgCUEEa0F9TwRAIABBADYC3AEgAiwADiEGIAItAA0hByACLQAMIQMgAigACCEFIARBEGsiBARAIAQEQCACIAJBEGogBPwKAAALIAAgBDYC3AELIAggAzYCPAJAIANBA00EQEGAgMAAEHEiAg0BAAsgCEEBNgJUIAhBoO3HADYCUCAIQgE3AlwgCCAdNwNoIAggCEHoAGo2AlggCEFAayIAIAhB0ABqELEGIAAQkAchAQwHCyAAIAY6AJYCIAAgBzoAlQIgAEEAOgCUAiAAQQA2ApACIAAgAzYCjAIgACAFNgKIAiAAIAk2AoQCIABBADYCgAIgAEKAgICAwAA3AvgBIABCAjcC8AEgAEIANwLoASAAIAI2AuQBIABBgIAQNgLgASAIIAZBgAFxQQd2OgBYIAggAzYCVCAIIAU2AlAgACAIQdAAahClBCAGQQBODQEgAEEBOgCcAQwBCyAIQQE2AlQgCEG0zsEANgJQIAhCATcCXCAIIAhBLGqtQoCAgIAQhDcDQCAIIAhBQGs2AlggCEEwaiIAIAhB0ABqELEGIAAQjgchAQwFCyAAKALgAUGAgICAeEYNAQsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AlAJBAWsOCQ0MCwoAAQYEEAILQQkhD0EGIQEgACgCjAIOBAQIBwYCCyAAQQlBByAALACWAkEAThs6AJQCDA8LIAAoAtwBQQZBCSAAKAKEAiIDQQFGGyIMbiICIAAoAogCIAAoApACayIGSQRAIAIiBkGAgARJDQ4LQYCABCAGIAZBgIAETxsiBUEDbCICIAAoAugBIgFLBH8gAiABayICIAAoAuABIAFrSwRAIBIgASACQQRBBBCkBSAAKALoASEBCyAAKALkASIEIAFBAnRqIQMgAkECTwR/IAJBAnRBBGsiCQRAIANBACAJ/AsACyABIAJqIgJBAWshASAEIAJBAnRqQQRrBSADC0EANgIAIAAgAUEBajYC6AEgACgChAIFIAMLQQFHDQsgBkUNDEEAIQlBACEBQQAhAkEAIQMDQCABQQJqIQcgACgC3AEiBCABQQFqTQRAIAEgByAEQazPwQAQ6gcACwJ/IAAoAtgBIAFqIgRBAWotAABBCHQiCiAELQAAciIEQf//AXFFBEAgBEEQdAwBCyAEQf8HcSEEIApBgIACcSELIApBgPgBcSIKQYD4AUYEQCALQRB0IgpBgICA/AdyIARFDQEaIARBDXQgCnJBgICA/gdyDAELIAtBEHQiCyAKQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2pyIAoNABogBCAEZ0EQayIEQf//A3FBCGp0Qf///wNxIAtBgICA2ANyIARBF3RrcgshBAJ/AkACQCAAKALoASIKIANLBEAgACgC5AEgAmogBDYCACABQQRqIgogACgC3AEiBEsNASAAKALYASABaiIEQQNqLQAAQQh0IgcgBEECai0AAHIiBEH//wFxRQRAIARBEHQMBAsgBEH/B3EhBCAHQYCAAnEhCyAHQYD4AXEiB0GA+AFGBEAgC0EQdCIHQYCAgPwHciAERQ0EGiAEQQ10IAdyQYCAgP4HcgwECyALQRB0IQsgB0UNAiAHQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogC3IMAwsgAyAKQdzOwQAQjAcACyAHIAogBEGcz8EAEOoHAAsgBCAEZ0EQayIEQf//A3FBCGp0Qf///wNxIAtBgICA2ANyIARBF3RrcgshBAJ/AkACQCADQQFqIgcgACgC6AEiC0kEQCAAKALkASACakEEaiAENgIAIAFBBmoiBCAAKALcASIHSw0BIAAoAtgBIAFqIgFBBWotAABBCHQiByABQQRqLQAAciIBQf//AXFFBEAgAUEQdAwECyABQf8HcSEBIAdBgIACcSEKIAdBgPgBcSIHQYD4AUYEQCAKQRB0IgdBgICA/AdyIAFFDQQaIAFBDXQgB3JBgICA/gdyDAQLIApBEHQhCiAHRQ0CIAdBDXRBgICA/ABxIAFBDXRyQYCAgMADaiAKcgwDCyAHIAtB7M7BABCMBwALIAogBCAHQYzPwQAQ6gcACyABIAFnQRBrIgFB//8DcUEIanRB////A3EgCkGAgIDYA3IgAUEXdGtyCyEBIANBAmoiByAAKALoASIKSQRAIAAoAuQBIAJqQQhqIAE2AgAgAkEMaiECIANBA2ohAyAEIQEgCUEBaiIJIAVJDQEMDgsLIAcgCkH8zsEAEIwHAAtB7NPBABCBCAALIAAoAtwBIgFBAnYiAiAAKAKIAiAAKAKQAmsiBEkEQCACIQQgAUGAgBBJDQwLQYCABCAEIARBgIAETxsiAiAAKAKAAiIBSwRAIAIgAWsiAyAAKAL4ASABa0sEQCAYIAEgA0EEQQQQpAUgACgCgAIhAQsgACgC/AEiCSABQQJ0aiEGIANBAk8EfyADQQJ0QQRrIgUEQCAGQQAgBfwLAAsgASADaiIDQQFrIQEgCSADQQJ0akEEawUgBgtBADYCACAAIAFBAWoiATYCgAILIAQEQEEAIQFBACEDAkADQCAAKALcASIGIAFBA2pNBEAgASABQQRqIAZBvNXBABDqBwALIAAoAoACIgYgA0sEQCAAKAL8ASABaiAAKALYASABaigAADYCACABQQRqIQEgAiADQQFqIgNGDQIMAQsLIAMgBkGs1cEAEIwHAAsgACgCgAIhAQsgACAAKAKQAiACIAAoAvwBIAEQtQQCQAJAAkAgACgC3AEiAyACQQJ0IgFPBEAgAEEANgLcASADIAFrIQYgBEUNASABIANGDQMgBkUNAiAAKALYASIDIAEgA2ogBvwKAAAMAgsMFAsgASADRg0BCyAAIAY2AtwBCyAAIAAoApACIAJqIgI2ApACIAIgACgCiAJHDQwgAEEANgKQAkEJIQELIAAgAToAlAIMCwsgACgC3AEiAUEBdiICIAAoAogCIAAoApACayIESQRAIAIhBCABQYCACEkNCgtBgIAEIAQgBEGAgARPGyICIAAoAvQBIgFLBEAgAiABayIDIAAoAuwBIAFrSwRAIBcgASADQQJBAhCkBSAAKAL0ASEBCyAAKALwASIJIAFBAXRqIQYgA0ECTwR/IANBAXRBAmsiBQRAIAZBACAF/AsACyABIANqIgNBAWshASAJIANBAXRqQQJrBSAGC0EAOwEAIAAgAUEBaiIBNgL0AQsgBARAQQAhA0ECIQECQANAIAAoAtwBIgYgAUkEQCABQQJrIAEgBkGc1cEAEOoHAAsgACgC9AEiBiADSwRAIAAoAvABIAFqQQJrIAAoAtgBIAFqQQJrLwAAOwEAIAFBAmohASACIANBAWoiA0YNAgwBCwsgAyAGQYzVwQAQjAcACyAAKAL0ASEBCyAAIAAoApACIAIgACgC8AEgARC0BAJAAkACQCAAKALcASIDIAJBAXQiAU8EQCAAQQA2AtwBIAMgAWshBiAERQ0BIAEgA0YNAyAGRQ0CIAAoAtgBIgMgASADaiAG/AoAAAwCCwwSCyABIANGDQELIAAgBjYC3AELIAAgACgCkAIgAmoiAjYCkAIgAiAAKAKIAkcNCiAAQQA2ApACIABBCDoAlAIMCgtBLSEPDAELQRghDwsgACgC3AEgD24iAiAAKAKIAiAAKAKQAmsiB0kEQCACIgdBgIAESQ0HC0GAgAQgByAHQYCABE8bIg4gD2wiDCAAKALoASIBSwRAIAwgAWsiAiAAKALgASABa0sEQCASIAEgAkEEQQQQpAUgACgC6AEhAQsgACgC5AEiBiABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgQEQCADQQAgBPwLAAsgASACaiICQQFrIQEgBiACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC6AELIA5BCWwhEwJAIAcEQCAOQeAAbCEKIA5BGGwhCUEBIQFBACEQQQAhBgJAA0AgBiEEIAEhBiAEIA9sIgEgACgC3AEiAk8NAwJAAkACQAJAIARBCWwiAyAAKALoASICTw0AIAAoAuQBIANBAnRqIAAoAtgBIAFqLQAAs0MAAADDkkMAAAA8lDgCACABQQNqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EDaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQZqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EGaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQFqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EBaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQRqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EEaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQdqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EHaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQJqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0ECaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQVqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EFaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQhqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EIaiIDIAAoAugBIgJPDQAgACgC5AEgA0ECdGogACgC2AEgBWotAACzQwAAAMOSQwAAADyUOAIAIAAoAowCQQFLDQEMAgsgAyACQfzUwQAQjAcACwJAAkAgAUEJaiIDIAAoAtwBIgVPDQAgBEEPbCATaiICIAAoAugBIgVPDQMgACgC5AEgAkECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAFBDGoiAyAAKALcASIFTw0AIAJBA2oiBCAAKALoASIFTwRAIAQhAgwECyAAKALkASAEQQJ0aiAAKALYASADai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEPaiIDIAAoAtwBIgVPDQAgAkEGaiIEIAAoAugBIgVPBEAgBCECDAQLIAAoAuQBIARBAnRqIAAoAtgBIANqLQAAs0MAAADDkkMAAAA8lDgCACABQRJqIgMgACgC3AEiBU8NACACQQlqIgQgACgC6AEiBU8EQCAEIQIMBAsgACgC5AEgBEECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAFBFWoiAyAAKALcASIFTw0AIAJBDGoiBCAAKALoASIFTwRAIAQhAgwECyAAKALkASAEQQJ0aiAAKALYASADai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEKaiIDIAAoAtwBIgVPDQAgAkEBaiIEIAAoAugBIgVPBEAgBCECDAQLIAAoAuQBIARBAnRqIAAoAtgBIANqLQAAs0MAAADDkkMAAAA8lDgCACABQQ1qIgMgACgC3AEiBU8NACACQQRqIgQgACgC6AEiBU8EQCAEIQIMBAsgACgC5AEgBEECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAFBEGoiAyAAKALcASIFTw0AIAJBB2oiBCAAKALoASIFTwRAIAQhAgwECyAAKALkASAEQQJ0aiAAKALYASADai0AALNDAAAAw5JDAAAAPJQ4AgAgAUETaiIDIAAoAtwBIgVPDQAgAkEKaiIEIAAoAugBIgVPBEAgBCECDAQLIAAoAuQBIARBAnRqIAAoAtgBIANqLQAAs0MAAADDkkMAAAA8lDgCACABQRZqIgMgACgC3AEiBU8NACACQQ1qIgQgACgC6AEiBU8EQCAEIQIMBAsgACgC5AEgBEECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAFBC2oiAyAAKALcASIFTw0AIAJBAmoiBCAAKALoASIFTwRAIAQhAgwECyAAKALkASAEQQJ0aiAAKALYASADai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEOaiIDIAAoAtwBIgVPDQAgAkEFaiIEIAAoAugBIgVPBEAgBCECDAQLIAAoAuQBIARBAnRqIAAoAtgBIANqLQAAs0MAAADDkkMAAAA8lDgCACABQRFqIgMgACgC3AEiBU8NACACQQhqIgQgACgC6AEiBU8EQCAEIQIMBAsgACgC5AEgBEECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAFBFGoiAyAAKALcASIFTw0AIAJBC2oiBCAAKALoASIFTwRAIAQhAgwECyAAKALkASAEQQJ0aiAAKALYASADai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEXaiIDIAAoAtwBIgVPDQAgAkEOaiICIAAoAugBIgVPDQMgACgC5AEgAkECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAAoAowCQQJNDQJBACEFIAohAwwBCyADIAVBzNTBABCMBwALAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQANAIAAoAtwBIgIgBSAQaiIBQRhqSwRAIAUgCWoiBCAAKALoASICTw0PIAAoAuQBIANqIAEgACgC2AFqQRhqLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBG2pNDQcgACgC6AEiAiAEQQNqTQ0OIAAoAuQBIANqQQxqIAEgACgC2AFqQRtqLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBHmpNDQYgACgC6AEiAiAEQQZqTQ0NIAAoAuQBIANqQRhqIAEgACgC2AFqQR5qLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBIWpNDQUgACgC6AEiAiAEQQlqTQ0MIAAoAuQBIANqQSRqIAEgACgC2AFqQSFqLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBJGpNDQQgACgC6AEiAiAEQQxqTQ0LIAAoAuQBIANqQTBqIAEgACgC2AFqQSRqLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBJ2pNDQMgACgC6AEiAiAEQQ9qTQ0KIAAoAuQBIANqQTxqIAEgACgC2AFqQSdqLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBKmpNDQIgACgC6AEiAiAEQRJqTQ0JIAAoAuQBIANqQcgAaiAAKALYASAQaiAFakEqai0AALNDAAAAw5JDAAAAPJQ4AgAgA0EEaiEDIAVBAWoiBUEDSQ0BDBALCyABQRhqDAYLIAFBKmoMBQsgAUEnagwECyABQSRqDAMLIAFBIWoMAgsgAUEeagwBCyABQRtqCyACQazUwQAQjAcACyAEQRJqIQQMBQsgBEEPaiEEDAQLIARBDGohBAwDCyAEQQlqIQQMAgsgBEEGaiEEDAELIARBA2ohBAsgBCACQbzUwQAQjAcACyAPIBBqIRAgCUEVaiEJIApB1ABqIQogBiAGIA5JIgJqIQEgAkUNAgwBCwsgAiAFQdzUwQAQjAcACyAAKALoASEBCwJAAkACQAJAAkACQCABIBNPBEAgACgC5AEhBiAAKAKQAiEEQQAhAkEEIQkCQCAAKAKMAiIKQQJJBEBBBCEQQQAhBQwBCyAOQRhsIgMgAUsNAiAOQQ9sIQUgBiATQQJ0aiEQIApBAkYNACABIAxJIAMgDEtyDQcgDCADayECIAYgA0ECdGohCQsgBwRAIAAgBCAOIAYgExDOAwsgBQRAIAAgBCAOIBAgBRDiAwsgAgRAIAAgBCAOIAkgAhDjAwsgACgC3AEiAiAMSQ0CIABBADYC3AEgAiAMayEBIAdFDQMgAiAMRg0FIAFFDQQgACgC2AEiAiACIAxqIAH8CgAADAQLQQAgEyABQZzUwQAQ6gcACyATIAMgAUGM1MEAEOoHAAtBACAMIAJBhKTHABDqBwALIAIgDEYNAQsgACABNgLcAQsgACAAKAKQAiAOaiICNgKQAiACIAAoAogCRw0JIABBADYCkAIgAEEGOgCUAgwJCyADIAwgAUH808EAEOoHAAsgASACQezUwQAQjAcACyAAKALcAUEEQQMgACgChAIiA0EDRhsiEG4iAiAAKAKIAiAAKAKQAmsiBkkEQCACIgZBgIAESQ0GCwJAAkACQAJAAkACQAJAAkACQAJAAkBBgIAEIAYgBkGAgARPGyIFQQJ0IgIgACgC6AEiAUsEfyACIAFrIgIgACgC4AEgAWtLBEAgEiABIAJBBEEEEKQFIAAoAugBIQELIAAoAuQBIgQgAUECdGohAyACQQJPBH8gAkECdEEEayIJBEAgA0EAIAn8CwALIAEgAmoiAkEBayEBIAQgAkECdGpBBGsFIAMLQQA2AgAgACABQQFqNgLoASAAKAKEAgUgAwtBA0cEQCAGRQ0LQQAhBEEAIQFBACECQQAhAwNAIAEgACgC3AEiCU8NAiABQQFqIgcgCU8NAyABQQJqIgcgCU8NBEMAAIA/IAAoAtgBIAFqIgktAACzQwAA/0KVQwAAgL+SIhkgGZQgCUEBai0AALNDAAD/QpVDAACAv5IiGiAalJIgCUECai0AALNDAAD/QpVDAACAv5IiGyAblJKTQwAAAAAQ4AghHCADIAAoAugBIglPDQUgACgC5AEgAmogGTgCACADQQFqIgkgACgC6AEiB08NBiAAKALkASACakEEaiAaOAIAIANBAmoiCSAAKALoASIHTw0HIAAoAuQBIAJqQQhqIBs4AgAgA0EDaiIJIAAoAugBIgdPDQggACgC5AEgAmpBDGogHJE4AgAgAUEDaiEBIAJBEGohAiADQQRqIQMgBEEBaiIEIAVJDQALDAsLIAZFDQpBACECQQEhCUEAIQMDQAJAAkACQAJAIAAoAtwBIgEgA0sEQCADQQFqIgQgAU8NASADQQJqIgcgAU8NAiADQQNqIgogAU8NAyAAKALYASADaiIBQQJqLQAAIQwgAUEDai0AACELIAEtAAAgAUEBai0AACEOIAj9DAAAAAAAAAAAAAAAAAAAAAD9CwNQIA5BCHRyIg8gDEEQdCALQRh0cnIhAUMAAAAAIRkCfwJAIAtBBnYiDEEDRwRAIAggD0H/A3GzQwCA/0OVQ/MENT+UIhmMIBkgDkECcRsiGTgCXCAZIBmUIRkgAUEKdiEBIAxBAkYNAQsgCCABQf8DcbNDAID/Q5VD8wQ1P5QiGowgGiABQYAEcRsiGjgCWCAZIBogGpSSIRkgAUEKdiIBIAxBAUYNARoLIAggAUH/A3GzQwCA/0OVQ/MENT+UIhqMIBogAUGABHEbIho4AlQgGSAaIBqUkiEZIAFBCnYLIQEgCEHQAGogDEECdGpDAACAPyALQcAATwR9IAggAUH/A3GzQwCA/0OVQ/MENT+UIhqMIBogAUGABHEbIho4AlAgGSAaIBqUkgUgGQuTIhmRQwAAAAAgGUMAAAAAXhs4AgAgAyAAKALoASIBSQ0EIAMgAUG80sEAEIwHAAsgAyABQfzRwQAQjAcACyAEIAFBjNLBABCMBwALIAcgAUGc0sEAEIwHAAsgCiABQazSwQAQjAcACyAAKALkASACaiAIKgJQOAIAIAQgACgC6AEiAU8NCiAAKALkASACakEEaiAIKgJUOAIAIAcgACgC6AEiAU8NCSAAKALkASACakEIaiAIKgJYOAIAIAogACgC6AEiAU8NCCAAKALkASACakEMaiAIKgJcOAIAIAJBEGohAiADQQRqIQMgBSAJSyAJQQFqIQkNAAsMCgsgASAJQfzSwQAQjAcACyAHIAlBjNPBABCMBwALIAcgCUGc08EAEIwHAAsgAyAJQazTwQAQjAcACyAJIAdBvNPBABCMBwALIAkgB0HM08EAEIwHAAsgCSAHQdzTwQAQjAcACyAKIAFB7NLBABCMBwALIAcgAUHc0sEAEIwHAAsgBCABQczSwQAQjAcACyAAIAAoApACIAUgACgC5AEgACgC6AEQ+wQCQAJAAkAgACgC3AEiASAFIBBsIgJPBEAgAEEANgLcASABIAJrIQMgBkUNASABIAJGDQMgA0UNAiAAKALYASIBIAEgAmogA/wKAAAMAgsMDwsgASACRg0BCyAAIAM2AtwBCyAAIAAoApACIAVqIgI2ApACIAIgACgCiAJHDQYgAEEANgKQAiAAQQU6AJQCDAYLIAAoAtwBIgFBA24iAiAAKAKIAiAAKAKQAmsiCUkEQCACIQkgAUGAgAxJDQULQYCABCAJIAlBgIAETxsiBEEDbCIGIAAoAugBIgFLBEAgBiABayICIAAoAuABIAFrSwRAIBIgASACQQRBBBCkBSAAKALoASEBCyAAKALkASIFIAFBAnRqIQMgAkECTwR/IAJBAnRBBGsiBwRAIANBACAH/AsACyABIAJqIgJBAWshASAFIAJBAnRqQQRrBSADC0EANgIAIAAgAUEBaiIBNgLoAQsCQAJAAkACQAJAAkACQAJAAkAgCQRAQQAhA0EAIQEDQCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAgD2UQwAAIMGSEIkEOAIAIAFBAmoiAiAAKALcASIFTw0GIAIgACgC6AEiBU8NByAAKALkASADakEIaiAAKALYASABakECai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgA0EMaiEDIAYgAUEDaiIBRw0ACyAAKALoASEBCyAAIAAoApACIAQgACgC5AEgARDJAyAAKALcASICIAZJDRUgAEEANgLcASACIAZrIQEgCUUNBiACIAZGDQggAUUNByAAKALYASICIAIgBmogAfwKAAAMBwsgASACQZzRwQAQjAcACyABIAJBrNHBABCMBwALIAIgBUG80cEAEIwHAAsgAiAFQczRwQAQjAcACyACIAVB3NHBABCMBwALIAIgBUHs0cEAEIwHAAsgAiAGRg0BCyAAIAE2AtwBCyAAIAAoApACIARqIgI2ApACIAIgACgCiAJHDQUgAEEANgKQAiAAQQQ6AJQCDAULIAAoAtwBIgFBA24iAiAAKAKIAiAAKAKQAmsiCUkEQCACIQkgAUGAgAxJDQQLQYCABCAJIAlBgIAETxsiBEEDbCIGIAAoAugBIgFLBEAgBiABayICIAAoAuABIAFrSwRAIBIgASACQQRBBBCkBSAAKALoASEBCyAAKALkASIFIAFBAnRqIQMgAkECTwR/IAJBAnRBBGsiBwRAIANBACAH/AsACyABIAJqIgJBAWshASAFIAJBAnRqQQRrBSADC0EANgIAIAAgAUEBaiIBNgLoAQsCQAJAAkACQAJAAkACQAJAAkAgCQRAQQAhA0EAIQEDQCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAFBAmoiAiAAKALc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IAEgDCAIazoAogcgASAnICiINwPQBgwPCyAMQf8BcUERSQ0OIAEgD0ENdkEPcUEEajYCyAYgASAPQQh2QR9xIglBAWo2AsQGIAEgD0EDdkEfcSIIQYECajYCwAZBBCAIQR1LDQMaIAlBHU0NAUEFDAMLIAEgDEEDazoAogcgASAnQgOINwPQBiAnQvgHg1ANAyABLQClB0UEQCABQQE6AKUHIAEoAvgGIQpBACIIRQRAIApB7J3EAEGAEPwKAAALIAhFBEAgCkGAEGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAIGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAMGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAQGtB7J3EAEGAEPwKAAALIAhFBEAgCkGA0ABqQeydxABBgBD8CgAACyAIRQRAIApBgOAAakHsncQAQYAQ/AoAAAsgCEUEQCAKQYDwAGpB7J3EAEGAEPwKAAALIAEoAvwGIQpBAEUEQCAKQeycxABBgAH8CgAACyAIRQRAIApBgAFqQeycxABBgAH8CgAACyAIRQRAIApBgAJqQeycxABBgAH8CgAACyAIRQRAIApBgANqQeycxABBgAH8CgAACyAIRQRAIApBgARqQeycxABBgAH8CgAACyAIRQRAIApBgAVqQeycxABBgAH8CgAACyAIRQRAIApBgAZqQeycxABBgAH8CgAACyAIRQRAIApBgAdqQeycxABBgAH8CgAACyAIRQRAIApBgAhqQeycxABBgAH8CgAACyAIRQRAIApBgAlqQeycxABBgAH8CgAACyAIRQRAIApBgApqQeycxABBgAH8CgAACyAIRQRAIApBgAtqQeycxABBgAH8CgAACyAIRQRAIApBgAxqQeycxABBgAH8CgAACyAIRQRAIApBgA1qQeycxABBgAH8CgAACyAIRQRAIApBgA5qQeycxABBgAH8CgAACyAIRQRAIApBgA9qQeycxABBgAH8CgAACyABQYCA/AM2AoAHIAFBBzoAhAcLIAFBBDoAowcMDQsgAUEAOgClByABQQI6AKMHIAEgDEERazoAogcgASAnQhGINwPQBgwMC0ECCzoAAUEBDBQLIAEgDEEKayIJOgCiByABICdCCogiJzcD0AYgCA0HIAlB/wFxQQpJDQADQCAnQv8Hg0ICUg0BIAEgCUEKayIPOgCi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QbyNyAAQ6wcAC545Azd/A30BfiMAQYABayIBJAACQAJAAkAgACgCaCICQf8fTQRAIAFBADYCQCABQQE2AjQgAUHwssEANgIwIAFCBDcCOCABQTBqEJIHIQMMAQsgASAAKAJkIgMtAAAiBDoABiABIAMtAAEiBjoAByAEQQEgBhsEQCABQQI2AjQgAUHAssEANgIwIAFCAjcCPCABQoCAgIDwBCI7IAFBB2qthDcDECABIDsgAUEGaq2ENwMIIAEgAUEIajYCOCABQTBqEJIHIQMMAQsgA0EEaigAACEqIAMoABAhDSABIAMvABQiBDYCHCAEQQNPBEAgAUEBNgI0IAFBmLLBADYCMCABQgE3AjwgASABQRxqrUKAgICAEIQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyABIANBJGooAAAiBkGAgID+eyAGQf////8HcRs2AiAgASADKAAoIgZBgICA/gMgBkH/////B3EbNgIkIARBKGxBrKrBAGohECACQYAga0EKdkEBaiEUQQAhBEEAIQIgKkEKdEGAIGoiKyEhAkADQAJAIAQgKkcEQCAUIARBAWoiBEcNASABQQA2AkAgAUEBNgI0IAFB1LHBADYCMCABQgQ3AjggAUEwahCSByEDDAQLIAFBADoAOCABIAI2AjQgASANNgIwIAAgAUEwahDpASAqRQ0CQYAgISFBASEuAkADQCAhIgRBgAhqIiEgACgCaCIDSwRAIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgACgCZCIGIARqIgIoABgiEUUEQCAQKAIkIRELIAMgBEEkckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEockkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEqckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAIoAAQhB0EAIQQgECgCCCAQKAIAIBAoAgRqaiACLwAoIiJBA00EfyAiQQJ0KAKkq0EFIAQLIBAoAhBsakEEaiI1rSAHrX4iO0IgiFBFBEAgAUEANgJAIAFBATYCNCABQdCrwQA2AjAgAUIE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IGooAAAgA0GUIGovAABsaiADQaQgaigAAEECdGoiIU0gA0GACGohAw0ACyABQQA2AkAgAUEBNgI0IAFB9LHBADYCMCABQgQ3AjggAUEwahCSByEDDAELQQAhAwsgAUGAAWokACADDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALnjkDN38DfQF+IwBBgAFrIgEkAAJAAkACQCAAKAJIIgJB/x9NBEAgAUEANgJAIAFBATYCNCABQfCywQA2AjAgAUIENwI4IAFBMGoQkgchAwwBCyABIAAoAkQiAy0AACIEOgAGIAEgAy0AASIGOgAHIARBASAGGwRAIAFBAjYCNCABQcCywQA2AjAgAUICNwI8IAFCgICAgPAEIjsgAUEHaq2ENwMQIAEgOyABQQZqrYQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyADQQRqKAAAISogAygAECENIAEgAy8AFCIENgIcIARBA08EQCABQQE2AjQgAUGYssEANgIwIAFCATcCPCABIAFBHGqtQoCAgIAQhDcDCCABIAFBCGo2AjggAUEwahCSByEDDAELIAEgA0EkaigAACIGQYCAgP57IAZB/////wdxGzYCICABIAMoACgiBkGAgID+AyAGQf////8HcRs2AiQgBEEobEGsqsEAaiEQIAJBgCBrQQp2QQFqIRRBACEEQQAhAiAqQQp0QYAgaiIrISECQANAAkAgBCAqRwRAIBQgBEEBaiIERw0BIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBAsgAUEAOgA4IAEgAjYCNCABIA02AjAgACABQTBqEIQCICpFDQJBgCAhIUEBIS4CQANAICEiBEGACGoiISAAKAJIIgNLBEAgAUEANgJAIAFBATYCNCABQdSxwQA2AjAgAUIENwI4IAFBMGoQkgchAwwGCyAAKAJEIgYgBGoiAigAGCIRRQRAIBAoAiQhEQsgAyAEQSRySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQShySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQSpySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIw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AtwCNwM4IAEoAtgCIgJFBEAgAUE4ahCPByECDAMLIAFBLGogAygCADYCACABIAEpAzg3AiQgASABKQPoAiIpNwMwIAEgAjYCIAJAAkAgKacoAkAiEARAIAFB/ABqIQQgAUHwAGohDCABQewCaiEiIAFB4AJqIQ0DQCABQQA6ALgCIAFBADYCsAIgAUHYAmogAUEgaiAdIAFBsAJqEKgBIAFB0ABqIgIgDUEIaigCADYCACABIA0pAwA3A0gCQAJAAkACQAJAAkACQAJAAkAgASkD2AIiKUIDUgRAIAQgIkG0AfwKAAAgDEEIaiACKAIANgIAIAwgASkDSDcDACABICk3A2gCQCABKAJwIAFB6ABqIClCAlEbIgIoAiwiB0EATgRAIAIoAighAgJAIAdFBEBBASELDAELIAcQcSILRQ0ICyAHBEAgCyACIAf8CgAACyABQegAahD8ASAHQQlJDQhB/NXBACAHIAtqQQlrQQkQ2wcNCSAHIQICQANAIAFBCGpBLyALIAIQqQNBASEdQQAhIiABKAIIQQFxRQRADAILAkAgByABKAIMIgJLBEAgAiALai0AAEEvRg0BCyACIAdNDQEMAgsLIAEgAjYCqAQgASALNgKkBCABIAFBpARqrUKAgICAIIQ3A7ACIAFCATcC5AIgAUECNgLcAiABQazWwQA2AtgCIAEgAUGwAmo2AuACIAFB6ABqIAFB2AJqEOwDIAEoAmgiAkGAgICAeEYNACABKQJsIilCIIinIQUgKachHSACISILIAFB2AJqIAFBIGogCyAHEMkEIAFB4ABqIAFB6AJqKAIANgIAIAEgASkD4AI3A1gCQCABKQPYAiIpQgNRBEAgAUHYAGoQjwchAgwBCyABQfwAaiABQewCakG0AfwKAAAgAUH4AGogAUHgAGooAgA2AgAgASApNwNoIAEgASkDWDcDcCABQQA2ArgCIAFCgICAgBA3ArACIAFB2AJqIAFB6ABqIAFBsAJqEJkBIAEoAtgCQQFGBEAgASkC3AIQzwchAiABKAKwAiIABEAgASgCtAIgAEEBEKIHCyABQegAahD8AQwBCyABKAKwAiEnIAEoArQCISggASgCuAIhAiABQegAahD8ASABQQA2ArgCIAEgAjYCtAIgASAoNgKwAiABQdgCaiABQbACahBGIAEoAtwCIQICQCABKALY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AEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALozADJ38EfQF+IwBBwAxrIgMkAAJAAkACQAJAAkACQAJAIAAoAtwEIgFBgYCAgHhGBEACQCAAKALwBCIKQQRJDQACQCAAKALsBCIELwAAIAQtAAJBEHRyQfDY5QNGBEAgCkELSQ0CIApBCmshAkEAIQECQANAIAEgBGpB+MPBAEELENsHRQ0BIAIgAUEBaiIBRw0ACyAKQf//A00NAyADQQA2AugHIANBATYC3AcgA0Hww8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMCQsgASAKSw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIOQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCkEBcUUEQCADKAKwASEIIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAOIAggBCACEJoBIAMoAtgHIQUgAygCtAwiDUGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiEHIAMoAsQKIQsgA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQkgA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIAk2AtwHIAMgCDYC2AcgAEH0BGogDhClBAwDCyADQZgGaiICIANBCGpBwAH8CgAAIANB2AdqIAIQaiADKALcByECIAMoAtgHIgVBgICAgHhGBEAgAkUNBAwKCyADQbADaiADQeAHakHkAvwKAAAgAygCxAohCyADKALICiEHIANBADoA4AcgAyAHNgLcByADIAs2AtgHIABB9ARqIANB2AdqEKUEQYCAgIB4IQ0MAgsgA0EIahCgAyAFIgINCAwCCyADQQA2AugHIANBATYC3AcgA0Goo8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMBwsgACgC8AQiBCABQQtqIghJDQIgAEEANgLwBCAEIAhHBEAgBCAIayIEBEAgACgC7AQiASABIAhqIAT8CgAA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2OUDRgRAIApBC0kNAiAKQQprIQJBACEBAkADQCABIARqQfjDwQBBCxDbB0UNASACIAFBAWoiAUcNAAsgCkH//wNNDQMgA0EANgLoByADQQE2AtwHIANB8MPBADYC2AcgA0IENwLgByADQdgHahCSByECDAkLIAEgCksNCiADQdgHaiAEIAEQ+wIgAykC3AchLCADKALYB0EBRgRAICwQzQchAgwJCyADQdgHaiAspyAsQiCIpxBNIAMoAtgHIQIgAygChAkiBEGAgICAeEYEQCACRQ0DDAkLIANBCGpBBHIgA0HYB2oiDkEEckGoAfwKAAAgA0HAAWogA0GQCWopAwAiLDcDACADIAMpA4gJNwO4ASADIAQ2ArQBIAMgAjYCCAJAICynIgpBAXFFBEAgAygCsAEhCCADKAKcASEEIANBmAZqIgIgA0H4AGoQwwMgDiAIIAQgAhCaASADKALYByEFIAMoArQMIg1BgICAgHhGDQEgAygC3AchAiADQbADaiADQeAHakHkAvwKAAAgAygCyAohByADKALECiELIANBoAJqIANBzApqQZAB/AoAACADKALcCyEJIANByAFqIANB4AtqQdQA/AoAACADKQO4DCEsIANBADoA4AcgAyAJNgLcByADIAg2AtgHIABB9ARqIA4Q4QMMAwsgA0GYBmoiAiADQQhqQcAB/AoAACADQdgHaiACEGogAygC3AchAiADKALYByIFQYCAgIB4RgRAIAJFDQQMCgsgA0GwA2ogA0HgB2pB5AL8CgAAIAMoAsQKIQsgAygCyAohByADQQA6AOAHIAMgBzYC3AcgAyALNgLYByAAQfQEaiADQdgHahDhA0GAgICAeCENDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoAvAEIgQgAUELaiIISQ0CIABBADYC8AQgBCAIRwRAIAQgCGsiBARAIAAoAuwEIgEgASAIaiAE/AoAAAsgACAENgLwBAsCQAJAAkAgACgC3ARBgICAgHhrDgIBAgALIAAQvgIMAQsgABC9AQsgACACNgIEIAAgBTYCACAAQQhqIANBsANqQeQC/AoAACAAIAc2AvACIAAgCzYC7AIgAEH0AmogA0GgAmpBkAH8CgAAIAAg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Sw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIJQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCEEBcUUEQCADKAKwASEHIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAJIAcgBCACEJoBIAMoAtgHIQUgAygCtAwiCkGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiELIAMoAsQKIQ4gA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQ0gA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIA02AtwHIAMgBzYC2AcgACAJEIQCDAMLIANBmAZqIgIgA0EIakHAAfwKAAAgA0HYB2ogAhBqIAMoAtwHIQIgAygC2AciBUGAgICAeEYEQCACRQ0EDAoLIANBsANqIANB4AdqQeQC/AoAACADKALECiEOIAMoAsgKIQsgA0EAOgDgByADIAs2AtwHIAMgDjYC2AcgACADQdgHahCEAkGAgICAeCEKDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoArAFIgQgAUELaiIHSQ0CIABBADYCsAUgBCAHRwRAIAQgB2siBARAIAAoAqwFIgEgASAHaiAE/AoAAAsgACAENgKwBQsgAEFAayEBAkACQAJAIAAoApwFQYCAgIB4aw4CAQIACyABEL4CDAELIAEQvQELIAAgAjYCRCAAIAU2AkAgAEHIAGogA0GwA2pB5AL8CgAAIAAgCzYCsAMgACAONgKsAyAAQbQDaiADQaACakGQAfwKAAAgACANNgLEBCAAQcgEaiADQcgBakHUAPwKAAAgACAsNwOgBSAAIAo2ApwFIAhBAXENACADQQhqEKADC0EAIQIgACgCnAUiAUGBgICAeEYNBQsgAEFAayESIAFBgICAgHhHDQEgACgCqAMiAiAAKAJITwRAIAAoArAFIQFB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DyADRQ0GIA8gDygCACgCABEDACADLQAQITggAygCDCE5IAJBgOHHAEELELkFIQMgBEEANgKoAyAEQQE2ApwDIARBqOHHADYCmAMgBEIENwKgAyAEQZgDahCVByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhOiADKAIMITtBCCEeQQghHyACQbDhxwBBBRC5BSICBEAgAigCDCE8IAItABAhHwsgBEEQakG14ccAQQUQuQUiAgRAIAIoAgwhPSACLQAQIR4LQQghGkEIISAgBEEQakG64ccAQQUQuQUiAgRAIAIoAgwhPiACLQAQISALIARBEGpBv+HHAEEFELkFIgIEQCACKAIMIT8gAi0AECEaC0EIISFBCCEiIARBEGpBxOHHAEEFELkFIgIEQCACKAIMIUAgAi0AECEiCyAEQRBqQcnhxwBBBRC5BSICBEAgAigCDCFBIAItABAhIQsgBEHIAGoiAkHO4ccAQQ8QuQUhAyAEQQA2AqgDIARBATYCnAMgBEGA4scANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgA0UNBSASIBIoAgAoAgARAwAgAy0AECFCIAMoAgwhQyACQYjixwBBDxC5BSEDIARBADYCqAMgBEEBNgKcAyAEQbjixwA2ApgDIARCBDcCoAMgBEGYA2oQlQchEiADRQ0FIBIgEigCACgCABEDACADLQAQIUQgAygCDCFFIAJBwOLHAEEMELkFIQMgBEEANgKoAyAEQQE2ApwDIARB7OLHADYCmAMgBEIENwKgAyAEQZgDahCVByESIANFDQUgEiASKAIAKAIAEQMAIAMtABAhRiADKAIMIUcgAkH04scAQQwQuQUhAiAEQQA2AqgDIARBATYCnAMgBEGg48cANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgAkUNBSASIBIoAgAoAgARAwAgAUE4aiEcIAItABAhSCACKAIMIUkgASgCYEGAgICAeEYNByABKAJYICNHDQggBEHUAWqtQoCAgIAQhCFKQQAhEgNAAkAgBCASNgLUASAEQQE2ApwDIARBiNDHADYCmAMgBEIBNwKkAyAEIEo3A9gBIAQgBEHYAWo2AqADIARB0ANqIARBmANqELEGIBwgBCgC1AMiAyAEKALYAxC5BSAEKALQAyECRQ0AIAIEQCADIAJBARCiBwsgBCgC1AFB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DUEBaiINNgJsDAALAAsgASACQe8BakH4v8EAEO4BIQQMBwsgAkEQaiAGIAMgBCADIAMgBEsbEPkBIAIoAhQhAyACKAIQIQVBFBBxIgRFDQMLIAQgBTYCDCAEQRg2AgAgBCADNgIQDAMLIAUgCBDrBSEEDAILIAJBCGogBSADIAQgAyADIARLGxD5ASACKAIMIQMgAigCCCEEQRQQcSIBRQ0AIAEgBDYCDCABQRg2AgAgACABNgIEIABBgICAgHg2AgAgASADNgIQDAULAAtBgICAgHghAyACKAJkIgVFDQAgAigCaCIGQQRrKAIAIgdBeHEiCSAFQShsIgVBBEEIIAdBA3EiBxtqSQ0EIAdBACAJIAVBJ2pLGw0FIAYQogILIAEgAS0AGEEBajoAGCACIAEQugMiBTYCvAEgAiANNgK4ASACIAQ2ArQBIAIgAzYCsAEgA0GAgICAeEcEQCAFRQ0CIAMEQCAEQQRrKAIAIgZBeHEiByADQShsIgNBBEEIIAZBA3EiBhtqSQ0HIAZBACAHIANBJ2pLGw0IIAQQogILIAUhBAwBCyAFRQ0AIAJBvAFqELEECyAEIAEQ6wUhASAAQYCAgIB4NgIAIAAgATYCBAwBCyAAIA02AgggACAENgIEIAAgAzYCAAsgAkHwAWokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvfFwIafwJ8IwBBsARrIgMkACADQgA3A5gBIANCADcDkAEgA0IANwOIASADQgA3A4ABIANCADcDeCADQgA3A3AgA0IANwNoIANCADcDYCADQgA3A1ggA0IANwNQIANCADcDSCADQgA3A0AgA0IANwM4IANCADcDMCADQgA3AyggA0IANwMgIANCADcDGCADQgA3AxAgA0IANwMIIANCADcDACADQgA3A7gCIANCADcDsAIgA0IANwOoAiADQgA3A6ACIANCADcDmAIgA0IANwOQAiADQgA3A4gCIANCADcDgAIgA0IANwP4ASADQgA3A/ABIANCADcD6AEgA0IANwPgASADQgA3A9gBIANCADcD0AEgA0IANwPIASADQgA3A8ABIANCADcDuAEgA0IANwOwASADQgA3A6gBIANCADcDoAEgA0IANwPYAyAD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AgBB3o7IAEEBIAEoAgQoAgwRAAAhAwwLCyABKAIAQZjMxABBESABKAIEKAIMEQAAIQMMCgtBASEDIAIgAEEBajYCDCABKAIAIgBBqczEAEERIAEoAgQiBSgCDCIEEQAADQkCQCABLQAKQYABcUUEQCAAQbuzxQBBASAEEQAADQsgAkEMaiABEMQERQ0BDAsLIABB24HCAEECIAQRAAANCiACQQE6ABMgAiAFNgIYIAIgADYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqEMQEDQogAigCIEHZgcIAQQIgAigCJCgCDBEAAA0KCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCQtBASEDIAEoAgAiBEG6zMQAQRkgASgCBCIGKAIMIgURAAANCCAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQogACABEKcERQ0BDAoLIARB24HCAEECIAURAAANCSACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQkgAigCIEHZgcIAQQIgAigCJCgCDBEAAA0JCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCAtBASEDIAEoAgAiBEHTzMQAQRogASgCBCIGKAIMIgURAAANByAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQkgACABEKcERQ0BDAkLIARB24HCAEECIAURAAANCCACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQggAigCIEHZgcIAQQIgAigCJCgCDBEAAA0ICyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBwtBASEDIAEoAgAiBEHtzMQAQRsgASgCBCIGKAIMIgURAAANBiAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEKcERQ0BDAgLIARB24HCAEECIAURAAANByACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCAC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LQAAQQNrDgUBAAAAAgALIAAgARDKAgwFCyAAKQMIIglC/////////weDIQogCUL///////////8Ag0L/////////9/8AWARAIAlCNIinIQAgCUIAUw0CIAJBsAJqDAMLQeydxgBB753GACAJQgBZIgAbQfOdxgAgClAiAxshBEEDQQQgABtBAyADGyEADAMLIAEoAgBB8ZLGAEEEIAEoAgQoAgwRAAAMAwsgAkEtOgCwAkEBIQggAkGxAmoLIQYCfwJAAkACQAJAAkACQAJAAkAgAEH/D3EiAEUgClBxRQRAIABBAkkgCkIAUnIhBCAKQoCAgICAgIAIhCAKIAAbIglCAoYhCiAJQgGDIQ8CQAJAAkAgAEG1CGtBzHcgABsiAEEASARAIAJBkAJqQYC8xQAgACAAQYWiU2xBFHYgAEF/R2siAGoiB0EEdCIDaykDACIJIApCAoQiCxDdBiACQYACakGIvMUAIANrKQMAIg0gCxDdBiACQfABaiACKQOYAiILIAIpA4ACfCIMIAIpA4gCIAsgDFatfCAAIAdBsdm1H2xBE3ZrQfwAakH/AHFBwABzIgMQoQcgAkGwAWogCSAKIARBf3OsfCILEN0GIAJBoAFqIA0gCxDdBiACQZABaiACKQO4ASILIAIpA6ABfCIMIAIpA6gBIAsgDFatfCADEKEHIAJB4AFqIAkgChDdBiACQdABaiANIAoQ3QYgAkHAAWogAikD6AEiCSACKQPQAXwiDSACKQPYASAJIA1WrXwgAxChByACKQPAASELIAIpA5ABIQkgAikD8AEhDCAAQQJJDQFBACEDIABBP0kNAgwFCyACQYABaiAAQcHoBGxBEnYgAEEDS2siB0EEdCIDKQPg5EUiCSAKQgKEIg0Q3QYgAkHwAGogA0Ho5MUAaikDACILIA0Q3QYgAkHgAGogAikDiAEiDCACKQNwfCIOIAIpA3ggDCAOVq18IAcgAGsgB0HPpsoAbEETdmpB/QBqQf8AcUHAAHMiABChByACQSBqIAkgCiAEQX9zrHwiDBDdBiACQRBqIAsgDBDdBiACIAIpAygiDCACKQMQfCIOIAIpAxggDCAOVq18IAAQoQcgAkHQAGogCSAKEN0GIAJBQGsgCyAKEN0GIAJBMGogAikDWCIJIAIpA0B8IgsgAikDSCAJIAtWrXwgABChByACKQMw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ACABIAA2ArADQdjmyABBKyABQbADakHY6MAAQbDwwAAQ4AYAC0G4u8kAQQA2AgBBtLvJAEEAOgAAIARBhAhPBEAgBBCbBwsgA0GECE8EQCADEJsHCyACQQRrKAIAIgNBeHEiBEHwAUH0ASADQQNxIgMbSQ0CIANBACAEQZQCTxsNACACEKICIAAgBjYCBCAAQQA2AgAgAUHgCWokAA8LC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAvFFwICfwF+IwBBQGoiAiQAIAEoAgQhAyABKAIAIQECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCACIALQAAQQFrDiMBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhsjHB0eHyAhIgALIAIgAEEEajYCBCACIABBCGo2AiAgAiAAQQxqNgIkIAIgAkEkaq1CgICAgLAMhDcDGCACQoCAgIDADCIEIAJBIGqthDcDECACIAQgAkEEaq2ENwMIIAJCAzcCNCACQQQ2AiwgAkHsncUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwrCyABQYyexQBBFiADKAIMEQAADCoLIAFBop7FAEElIAMoAgwRAAAMKQsgAUHHnsUAQR4gAygCDBEAAAwoCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGIn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwnCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkG8n8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwmCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkHsn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwlCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGcoMUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwkCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMI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CyAJQRhqIgIgCUGcA2pBwAH8CgAAQfQBEHEiAUUNAiABIAY2AgAgAUEEaiACQcAB/AoAACABIAs6APABIAEgBDYC7AEgASAHNgLoASABQYCAgIB4NgLcASABIBU3AtQBIAEgCDYC0AEgAUEANgLMASABQoCAgIAQNwLEASAAQbDuwAA2AgwgAEEBNgIIIABBmO7AADYCBCAAIAE2AgAgA0GAgICAeHJBgICAgHhGDQMgBUEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgA2pJDQQgAEEAIAEgA0EnaksbDQUgBRCiAgwDC0GgnsYAQTcgCUHfBGpBtJPBAEHYnsYAEOAGAAtB2JrIABD/BwsACyAJQeAEaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL/Q0BBX8jAEEwayICJAACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOBQECAwQFAAtBASEDIAEoAgAiBEHUpccAQQggASgCBCIGKAIMIgURAAANBiAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEIQGRQ0BDAgLIARB24HCAEECIAURAAANByACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIQGDQcgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0HCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBgtBASEDIAEoAgAiBEHcpccAQQggASgCBCIGKAIMIgURAAANBSAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQcgACABEIUGRQ0BDAcLIARB24HCAEECIAURAAANBiACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIUGDQYgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0GCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBQtBASEDIAEoAgAiBEHkpccAQQkgASgCBCIGKAIMIgURAAANBCAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQYgACABEIYGRQ0B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BwsgA0IANwGCASADQdzkATsBgAEMBgsgA0IANwGCASADQdzcATsBgAEMBQsgA0IANwGCASADQdy4ATsBgAEMBAsgA0IANwGCASADQdzEADsBgAEMAwsgA0IANwGCASADQdzOADsBgAEMAgsgAyAENgKAASAAIAMpAoABNwIAIABBCGogA0GIAWovAQA7AQAgBSAJKAIAIAgoAhARAgBFDQMMBQtBACEADAULQQAhAUECCyEEIAAgAykCgAE3AgAgAEEIaiADQYgBai8BADsBACABIAQgASAESxsiAkH/AXEhBCAIKAIQIQoDQCAFIAAgAWotAAAgChECAA0DIAQgAUEBaiIBRw0ACyADIAI6AGALIAYgB0cNAAtBACEADAELQQEhAAsgA0GQAWokACAAC+MJAQZ/IAFBA2wiBCAAKAKQBCICSwRAIAQgAmsiBSAAKAKIBCACa0sEQCAAQYgEaiACIAVBBEEEEKQFIAAoApAEIQILIAAoAowEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKQBAsgACgCnAQiAiABSQRAIAEgAmsiBSAAKAKUBCACa0sEQCAAQZQEaiACIAVBBEEEEKQFIAAoApwEIQILIAAoApgEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKcBAsgACgCqAQiAiAESQRAIAQgAmsiBSAAKAKgBCACa0sEQCAAQaAEaiACIAVBBEEEEKQFIAAoAqgEIQILIAAoAqQEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKoBAsgACgCtAQiAiAESQRAIAQgAmsiBCAAKAKsBCACa0sEQCAAQawEaiACIARBBEEEEKQFIAAoArQEIQILIAAoArAEIgUgAkECdGohAyAEQQJPBH8gBEECdEEEayIGBEAgA0EAIAb8CwALIAIgBGoiA0EBayECIAUgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgK0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AXI6AABBACEDDAQLIAIoAggiAyACKAIARgRAIAJB+JPGABCnBgsgAiADQQFqNgIIIAIoAgQgA2ogBjoAAEEAIQMMAwsgBiADIANByKXGABDqBwALIARBFDYCFCABIARBFGoQiwchAwwBCyAIIAMgA0HIpcYAEOoHAAsgBEEgaiQAIANFDQ4MDQsgAigCACADRgRAIAJB+JLGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQSI6AAAMCwsgAigCACADRgRAIAJBiJPGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQdwAOgAADAoLIAIoAgAgA0YEQCACQZiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEvOgAADAkLIAIoAgAgA0YEQCACQaiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEIOgAADAgLIAIoAgAgA0YEQCACQbiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEMOgAADAcLIAIoAgAgA0YEQCACQciTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEKOgAADAYLIAIoAgAgA0YEQCACQdiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakENOgAADAULIAIoAgAgA0YEQCACQeiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEJOgAADAQLIAMgBCAGQcicxgAQ6gcACyAHKAIMIQMMAwsgB0EENgIUIAAgASAHQRRqEPIGDAYLIAQgBkGYnMYAEIwHAAsMAQsLIABBAjYCACAAIAM2AgQMAgsgACADNgIIIAAgATYCBCAAQQA2AgAMAQsgACADNgIIIAAgATYCBCAAQQE2AgALIAdBIGokAAvFBwEEfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOBQECAw0EAAsgAC0ABEEDRw0MIAAoAggiAygCACEAIANBBGooAgAiASgCACICBEAgACACEQMACyABKAIEIgEEQCAAQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyABakkNDyACQQAgBCABQSdqSxsNDiAAEKICCyADQQRrKAIAIgBBeHEiAUEQQRQgAEEDcSIAG0kNDiAARSABQTRJcg0LDA0LAkAgAC0ABEEBaw4CAAAKCyAAKAIIIgMNCAwJCwJAIAAtAARBAWsOAgAABwsgACgCCCIDDQUMBgsgACgCBCIDQQBKBEAgACgCCCIBQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyADakkNDCACQQAgBCADQSdqSxsNCyABEKICCyAAKAIQIgNFDQkgACgCFCIAKAIAIgEEQCADIAERAwALIAAoAgQiAEUNCSADQQRrKAIAIgFBeHEiAkEEQQggAUEDcSIBGyAAakkNCyABRQ0IIAIgAEEnaksNCgwICwJAIAAtAARBAWsOAgAAAgsgACgCCCIDDQAMAQsgACgCDCIBQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyADakkNCSACQQAgBCADQSdqSxsNCCABEKICCwJAQQMgAC0AFCIDQQRrIANBA00bQf8BcQ4EBwcHAAELIANBAWsOAgAABgsgACgCGCIBRQ0FIAAoAhwiA0EEaygCACIAQXhxIgJBBEEIIABBA3EiABsgAWpPBEAgAEUgAiABQSdqTXINBQwHCwwHCyAAKAIMIgFBBGsoAgAiAkF4cSIEQQRBCCACQQNxIgIbIANqSQ0GIAJBACAEIANBJ2pLGw0FIAEQogILIAAoAhQiA0UNAyAAKAIYIgAoAgAiAQRAIAMgAREDAAsgACgCBCIARQ0DIANBBGsoAgAiAUF4cSICQQRBCCABQQNxIgEbIABqSQ0FIAFFIAIgAEEnak1yDQIMBAsgACgCDCIBQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyADakkNBCACQQAgBCADQSdqSxsNAyABEKICCyAAKAIUIgNFDQEgACgCGCIAKAIAIgEEQCADIAERAwALIAAoAgQiAEUNASADQQRrKAIAIgFBeHEiAkEEQQggAUEDcSIBGyAAakkNAyABRSACIABBJ2pNcg0ADAILIAMQogILDwtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALmgkCCH8BeyAAIAEoAgQiAjYCPCABKAIAIgUhAyAAKAIIIgcgBUkEQCAFIAciA2siBiAAKAIAIANrSwRAIAAgAyAGQQRBJBCkBSAAKAIIIQMLIAAoAgQhCSAGQQNxIgQEQCADIARqIAUgB2sgBGshBiAJIANBJGxqIQIDQCAC/QwAAAAAAAAAAAAAAAAAAAAA/QsCACACQSBqQQA7AQAgAkEQaiAK/QsCACACQSRqIQIgBEEBayIEDQALIQMLIAcgBWtBfE0EQCAJIANBJGxqIQIDQCAC/QwAAAAAAAAAAAAAAAAAAAAA/QsCACACQSBqQQA7AQAgAkEQaiAK/QsCACACQSRqIAr9CwIAIAJBNGogCv0LAgAgAkHEAGpBADsBACACQcgAaiAK/QsCACACQdgAaiAK/QsCACACQegAakEAOwEAIAJB7ABqIAr9CwIAIAJB/ABqIAr9CwIAIAJBjAFqQQA7AQAgAkGQAWohAiADQQRqIQMgBkEEayIGDQALCyAAKAI8IQILIABBADYCICAAIAM2AggCQAJ/AkACQCACRQRAIABBADYCLAwBCyAFBEBBACEEIAAoAhggBUkEQCAAQRhqQQAgBUECQRIQpAUgACgCICEEIAAoAjwhAgsgBUESbCIDBEAgACgCHCAEQRJsakEAIAP8CwALIABBADYCLCAAIAQgBWo2AiAgAkEBTQ0BQQAhBCAAKAIkIAVJBEAgAEEkakEAIAVBAkEeEKQFIAAoAiwhBCAAKAI8IQILIAVBHmwiAwRAIAAoAiggBEEebGpBACAD/AsACyAAQQA2AjggACAEIAVqNgIsIAJBAk0NBEEAIQQgACgCMCAFSQRAIABBMGpBACAFQQJBKhCkBSAAKAI4IQQLIAVBKmwiAwRAIAAoAjQgBEEqbGpBACAD/AsACyAEIAVqIQQgAEE4agwDC0EAIQQgAEEANgIsIAJBAUcNAQsgAEEANgI4DAILIABBADYCOCACQQJNDQEgAEE4agsgBDYCAAsgACgCFCEEIABBADYCFCAAKAIQIQcCQAJAAkACQCAEBEAgByECA0AgAkEUaigCACIDQQVPBEAgAkEIaigCACIIQQRrKAIAIgZBeHEiCSADQQJ0IgNBBEEIIAZBA3EiBhtqSQ0DIAZBACAJIANBJ2pLGw0EIAgQogILIAJBGGohAiAEQQFrIgQNAAsLIAEtAAhFDQMgBUUEQEEAIQMMAwtBACEDIAAoAgwgBUkEQCAAQQxqQQAgBUEEQRgQpAUgACgCECEHIAAoAhQhAwsgBUEBayAFQQNxIgQEQCAFQXxxIQUgAyAEaiAHIANBGGxqIQIDQCACQQA2AgAgAkEUakEANgIAIAJBGGohAiAEQQFrIgQNAAshAwtBA0kNAiAHIANBGGxqIQIDQCACQQA2AgAgAkHcAGpBADYCACACQcQAakIANwIAIAJBLGpCADcCACACQRRqQgA3AgAgAkHgAGohAiADQQRqIQMgBUEEayIFDQALDAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAAIAM2AhQLC8gGAQR/AkACQCAAKAIMIgIEQCAAKAIQIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILIAAoAhgiAgRAIAAoAhwiA0EEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAQgAkEnaksbDQIgAxCiAgsgACgCPCICBEAgACgCQCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAKAJIIgIEQCAAKAJMIgNBBGsoAgAiAUF4cSIEIAJBAnQiAkEEQQggAUEDcSIBG2pJDQEgAUEAIAQgAkEnaksbDQIgAxCiAgsgACgCVCICBEAgACgCWCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAKAJgIgJBgICAgHhyQYCAgIB4RwRAIAAoAmQiA0EEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAQgAkEnaksbDQIgAxCiAgsgACgCbCICBEAgACgCcCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAKAJ4IgIEQCAAKAJ8IgNBBGsoAgAiAUF4cSIEIAJBAnQiAkEEQQggAUEDcSIBG2pJDQEgAUEAIAQgAkEnaksbDQIgAxCiAgsCQCAAKAKEASICQYCAgIB4Rg0AIAIEQCAAKAKIASIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNAiABQQAgBCACQSdqSxsNAyADEKICCyAAKAKQASICBEAgACgClAEiA0EEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgAmpJDQIgAUEAIAQgAkEnaksbDQMgAxCiAgsgACgCnAEiAkUNACAAKAKgASIAQQRrKAIAIgNBeHEiASACQQJ0IgJBBEEIIANBA3EiAxtqSQ0BIANBACABIAJBJ2pLGw0CIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL3xADB38CfgF7IwBBIGsiBSQAAkACQCAAKAIAIgJFBEAgACgCECIARQ0BIABBk7PFAEEBEJcDIQIMAgsCQAJAAkACQAJAAkACQCAAKAIIIgQgACgCBCIGTwRAIAAoAhAiAkUNASACQeqyxQBBEBCXA0UNAQwHCyAAIARBAWoiATYCCCAFQQhqIAIgBGotAAAiAxDnByAFKAIIIgcEQCAAKAIQIgBFDQggACAHIAUoAgwQlwMhAgwJCyAAIAAoAgxBAWoiBzYCDCAHQfUDTwRAIAAoAhAiAgRAIAJB+rLFAEEZEJcDDQgLIABBAToABAwGCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIANBwQBrDhcCBg8FDwQPDw8PDw8PDwEBAAACAw8PBw8LIAAoAhAiBARAQQEhAiAEQayzxQBBARCXAw0VIAAoAgAiAkUNCSAAKAIEIQYgACgCCCEBCyABIAZPDQggASACai0AAEHMAEcNCCAAIAFBAWo2AgggBUEQaiAAENkEIAUtABBFDQcgBS0AESEBIAAoAhAiAwRAQQEhAiADQfqyxQBB6rLFACABQQFxIgMbQRlBECADGxCXAw0VCyAAIAE6AAQMEQsgACgCECIBBEBBASECIAFBsrPFAEEBEJcDDRQLIANB0ABHDQggACgCECICRQ0JIAJBs7PFAEEGEJcDDREMCQsgACgCECIBBEBBASECIAFB6LLFAEEBEJcDDRMLQQEhAiAAEIYCDRIgA0HBAEYEQCAAKAIQIgEEQCABQbmzxQBBAhCXAw0UCyAAQQEQ1QENEwsgACgCECIBRQ0OIAFB6bLFAEEBEJcDDRIMDgsgACgCECIBBEBBASECIAFBu7PFAEEBEJcDDRILIAUgABC3BkEBIQIgBSgCAEEBcQ0RIAUoAgRBAUYEQCAAKAIQIgFFDQ4gAUG8s8UAQQEQlwMNEgsgACgCECIBRQ0NIAFB3o7IAEEBEJcDDREMDQtBACECIwBBEGsiASQAAkACQAJAAkAgACgCAEUEQCAAKAIQIgMNAQwECyABIABBxwAQrAYgAS0AAEEBRgRAIAEtAAEhAyAAKAIQIgQEQEEBIQIgBEH6ssUAQeqyxQAgA0EBcSIEG0EZQRAgBBsQlwMNBQsgACADOgAEQQAhAiAAQQA2AgAMBAsgACgCECICBEAgASkDCCIJUA0DIAJB+bTFAEEEEJcDDQIDQCAIIAlRBEAgACgCECIDRQ0FQQEhAiADQf20xQBBAhCXA0UNBQwGCwJAIAhQDQAgACgCECICRQ0AIAJB55DGAEECEJcDDQQLQQEhAiAAIAAoAhRBAWo2AhQgCEIBfCEIIABCARCCBkUNAAsMBAsgABDOAiECDAMLIANBk7PFAEEBEJcDIQIMAgtBASECDAELIAAQzgIhAiAAIAAoAhQgCadrNgIUCyABQRBqJAAgAg0ODAwLIAAoAhAiAgRAIAJBvbPFAEEEEJcDDQ4LQQEhAkEAIQEjAEEQayIDJAACQAJAAkACQCAAKAIARQRAIAAoAhAiBA0BDAQLIAMgAEHHABCsBiADLQAAQQFGBEAgAy0AASEEIAAoAhAiBgRAQQEhASAGQfqyxQBB6rLFACAEQQFxIgYbQRlBECAGGxCXAw0FCyAAIAQ6AARBACEBIABBADYCAAwECyAAKAIQIgEEQCADKQMIIglQDQMgAUH5tMUAQQQQlwMNAgNAIAggCVEEQCAAKAIQIgRFDQVBASEBIARB/bTFAEECEJcDRQ0FDAYLAkAgCFANACAAKAIQIgFFDQAgAUHnkMYAQQIQlwMNBAtBASEBIAAgACgCFEEBajYCFCAIQgF8IQggAEIBEIIGRQ0ACwwECyAAEPkDIQEMAwsgBEGTs8UAQQEQlwMhAQwCC0EBIQEMAQsgABD5AyEBIAAgACgCFCAJp2s2AhQLIANBEGokACABDQ8gACgCACIDRQ0GIAAoAggiASAAKAIETw0GIAEgA2otAABBzABHDQYgACABQQFqNgIIIAVBEGogABDZBCAFLQAQRQ0IIAUtABEhASAAKAIQIgMEQCADQfqyxQBB6rLFACABQQFxIgMbQRlBECADGxCXAw0QCyAAIAE6AAQMDAsjAEEgayICJAACQAJAIAAoAgBFBEAgACgCECIBRQ0BIAFBk7PFAEEBEJcDIQEMAgsgAiAAEK8GIAIoAgBFBEAgACgCECIDBEBBASEBIANB+rLFAEHqssUAIAItAARBAXEiAxtBGUEQIAMbEJcDDQMLIAAgAv0AAgD9CwIADAELIAAoAhBFDQAgAP0AAgAhCiAAIAL9AAIA/QsCACACIAr9CwMQIAAQhgIhASAAIAL9AAMQ/QsCAAwBC0EAIQELIAJBIGokACABDQwMCgtBASECIAAQhgINDSAAKAIQIgEEQCABQcGzxQBBBBCXAw0OCyAAEK0EDQ0MCQsgBSkDGCIIUA0AIAAgCBCCBg0KIAAoAhAiAUUNAEEBIQIgAUGts8UAQQEQlwMNDAsgA0HSAEYNBiAAKAIQIgJFDQYgAkGus8UAQQQQlwMNCQwGCyAAKAIQIgJFDQAgAkGus8UAQQQQlwMNCAsgABCGAg0HDAULIAAoAhAiAUUNACABQeqyxQBBEBCXAw0IC0EAIQIgAEEAOgAEIABBADYCAAwHCyAFKQMYIghQDQIgACgCECICBEAgAkHwyccAQQMQlwMNBQsgACAIEIIGDQQMAgsgACAENgIIIABBABDMAQ0DDAELIAAQhgINAgtBACECIAAoAgBFDQMgACAAKAIMQQFrNgIMDAMLQQAhAiAAQQA2AgAMAgtBASECDAELQQAhAgsgBUEgaiQAIAILsB0DB34PfwF7IAEoAgQiCiACKQMQIgYgAikDCCIIIAIpAwAiCSABKQMYhSIDQtii0e/CqeW/LX4gA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhELSgaqbq/qC16d/fiIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISEhYUiA0LYotHvwqnlvy1+IANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhIWFIgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhCADQtii0e/CqeW/LX6FIgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQgASkDECIEQn+FfiIFQjiGIAVCgP4Dg0IohoQgBUKAgPwHg0IYhiAFQoCAgPgPg0IIhoSEIAVCCIhCgICA+A+DIAVCGIhCgID8B4OEIAVCKIhCgP4DgyAFQjiIhISEIAMgBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhH6FIAOJIgencSEMIAdCGYhC/wCDQoGChIiQoMCAAX4hBSABKAIAIQ0CQANAAkAgDCANaikAACIEIAWFIgNCf4UgA0KBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIDUEUEQANAAkAgDSADeqdBA3YgDGogCnFBBnRrIgtBQGopAwAgCVINACALQThrKQMAIAhSDQAgC0EwaykDACAGUQ0DCyADQgF9IAODIgNQRQ0ACwsgBCAEQgGGg0KAgYKEiJCgwIB/g1BFDQIgDCAPQQhqIg9qIApxIQwMAQsLIAAgATYCBCAAIAs2AgAgAEEANgIgDwsgASgCCEUEQAJAIwBBIGsiESQAIBEgAUEQajYCACABKAIMIQwgESARNgIEAkACQAJAAkACQAJAAkACQAJ/AkAgDEEBaiILBEAgASgCBCIUIBRBAWpBA3ZBB2wgFEEISRsiCkEBdiALSQRAIApBAWoiCiALIAogC0sbIgtBD0kNAiALQf////8BTQRAQX8gC0EDdEEHbkEBa2d2IgtB/v//H0sNBSALQQFqDAQLDAsLIBFBBGohFkEAIQogASINIA0oAgRBAWoiEAR/IA0oAgAhDwJAIBBBA3YgEEEHcUEAR2oiDEECTwRAIAxB/v///wNxIg4hCyAPIQoDQCAKIAr9AAMAIhn9TUEH/c0B/QwBAQEBAQEBAQEBAQEBAQEB/U4gGf0Mf39/f39/f39/f39/f39/f/1Q/c4B/QsDACAKQRBqIQogC0ECayILDQALIAwgDkYNASAOQQN0IQogDEEBcSEMCyAKIA9qIQoDQCAKIAopAwAiA0J/hUIHiEKBgoSIkKDAgAGDIANC//79+/fv37//AIR8NwMAIApBCGohCiAMQQFrIgwNAAsLAkAgEEEITwRAIA8gEGogDykAADcAAAwBCyAQRQ0AIA9BCGogDyAQ/AoAAAtBASELQQAhDANAIAwhDyALIQwCQCAPIA0oAgAiC2otAABBgAFHDQAgCyAPQX9zQQZ0aiESA0AgFiANIA8QtAIhAyANKAIEIg4gA6ciFXEiEyEKIA0oAgAiCyATaikAAEKAgYKEiJCgwIB/gyIDUARAQQghFANAIAogFGohCiAUQQhqIRQgCyAKIA5xIgpqKQAAQoCBgoSIkKDAgH+DIgNQDQALCyALIAN6p0EDdiAKaiAOcSIKaiwAAEEATgRAIAspAwBCgIGChIiQoMCAf4N6p0EDdiEKCyAKIBNrIA8gE2tzIA5xQQhPBEAgCiALaiITLQAAIBMgFUEZdiITOgAAIA0oAgAgCkEIayAOcWpBCGogEzoAACALIApBf3NBBnRqIQtB/wFGBEAgDSgCBCEKIA0oAgAgD2pB/wE6AAAgDSgCACAKIA9BCGtxakEIakH/AToAACALIBJBwAD8CgAADAMLIBIgC0HAABCwAwwBCwsgCyAPaiAVQRl2Igs6AAAgDSgCACAOIA9BCGtxakEIaiALOgAACyAMIAwgEEkiCmohCyAKDQALIA0oAgQiDCAMQQFqQQN2QQdsIAxBCEkbBUEACyANKAIMazYCCAwHCwwJC0EEIAtBCHFBCGogC0EESRsLIgtBCGoiCiALQQZ0Ig9qIg0gCkkgDUH4////B0tyDQAgDRBxIg1FDQEgDSAPaiEQIAoEQCAQQf8BIAr8CwALIAtBAWsiEyALQQN2QQdsIBNBCEkbIRUgASgCACENIAwNAkEAIQwMAwsgEUEANgIYIBFBATYCDCARQcS1xAA2AgggEUIENwIQIBFBCGpBmLXEABCNCAsACyAQQQhqIRYgDSkDAEJ/hUKAgYKEiJCgwIB/gyEGQQAhCiAMIQsgDSEPA0AgBlAEQANAIApBCGohCiAPQQhqIg8pAwBCgIGChIiQoMCAf4MiA0KAgYKEiJCgwIB/UQ0ACyADQoCBgoSIkKDAgH+FIQYLIBAgEyANIAZ6p0EDdiAKaiIXQQZ0ayIOQUBqKQMAIBEoAgAiEikDCIUiA0LYotHvwqnlvy1+IA5BOGspAwCFIANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhIUiA0LYotHvwqnlvy1+IA5BMGspAwCFIANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhIUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhELSgaqbq/qC16d/fiIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEIANC2KLR78Kp5b8tfoUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCASKQMAIgRCf4V+IgVCOIYgBUKA/gODQiiGhCAFQoCA/AeDQhiGIAVCgICA+A+DQgiGhIQgBUIIiEKAgID4D4MgBUIYiEKAgPwHg4QgBUIoiEKA/gODIAVCOIiEhIQgAyAEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEfoUgA4mnIhhxIg5qKQAAQoCBgoSIkKDAgH+DIgNQBEBBCCESA0AgDiASaiEOIBJBCGohEiAQIA4gE3EiDmopAABCgIGChIiQoMCAf4MiA1ANAAsLIAZCAX0gBoMhBiAQIAN6p0EDdiAOaiATcSIOaiwAAEEATgRAIBApAwBCgIGChIiQoMCAf4N6p0EDdiEOCyAOIBBqIBhBGXYiEjoAACAWIA5BCGsgE3FqIBI6AAAgECAOQX9zQQZ0aiIOQTBqIA0gF0F/c0EGdGoiEkEwav0AAAD9CwAAIA5BIGogEkEgav0AAAD9CwAAIA5BEGogEkEQav0AAAD9CwAAIA4gEv0AAAD9CwAAIAtBAWsiCw0ACwsgASATNgIEIAEgEDYCACABIBUgDGs2AgggFEUNACAUIBRBBnRBxwBqQUBxIgtqQQlqIgxFDQAgDSALayILQQRrKAIAIgpBeHEiDUEEQQggCkEDcSIKGyAMakkNASAKQQAgDSAMQSdqSxsNAiALEKICCyARQSBqJAAMAwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIBFBADYCGCARQQE2AgwgEUHEtcQANgIIIBFCBDcCECARQQhqQZi1xAAQjQgACwsgACAHNwMAIAAgAikDADcDCCAAQRBqIAJBCGr9AAMA/QsDACAAIAE2AiALkwoBBn8jAEEwayICJAACQAJAAkACQAJAAkBBAyAAKAIAIgQtAAAiAEEEayAAQQNNG0H/AXFBAWsOBAECAwQAC0EBIQAgASgCACIDQbK3xwBBBSABKAIEIgYoAgwiBREAAA0EIARBAWohBAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAURAAANBiAEIAEQxQINBiABKAIAIQMgASgCBCgCDCEFDAELIANB24HCAEECIAURAAANBSACQQE6ACwgAiAGNgIUIAIgAzYCECACQeCBwgA2AiAgAiABKQIINwIkIAIgAkEsajYCGCACIAJBEGo2AhwgBCACQRxqEMUCDQUgAigCHEHZgcIAQQIgAigCICgCDBEAAA0FCyADQd6OyABBASAFEQAAIQAMBAtBASEAIAEoAgAiA0G3t8cAQQsgASgCBCIGKAIMIgURAAANAyAEQQFqIQQCQCABLQAKQYABcUUEQCADQbuzxQBBASAFEQAADQUgBCABEMUCDQUgASgCACEDIAEoAgQoAgwhBQwBCyADQduBwgBBAiAFEQAADQQgAkEBOgAsIAIgBjYCFCACIAM2AhAgAkHggcIANgIgIAIgASkCCDcCJCACIAJBLGo2AhggAiACQRBqNgIcIAQgAkEcahDFAg0EIAIoAhxB2YHCAEECIAIoAiAoAgwRAAANBAsgA0HejsgAQQEgBREAACEADAMLQQEhACABKAIAIgNBwrfHAEEOIAEoAgQiBygCDCIFEQAADQIgBEEBaiEGAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0EIAIgBjYCHCABIARBBGpByKjHACAEQQJqQdioxwAgBEEDakHoqMcAIAJBHGpB+KjHABDuBQ0EIAEoAgAhAyABKAIEKAIMIQUMAQsgA0HbgcIAQQIgBREAAA0DIAJBAToADyACIAc2AhQgAiADNgIQIAJB4IHCADYCICACIAEpAgg3AiQgAiACQQ9qNgIYIAIgAkEQajYCHCACIAY2AiwgAkEcaiAEQQRqQcioxwAgBEECakHYqMcAIARBA2pB6KjHACACQSxqQfioxwAQ7gUNAyACKAIcQdmBwgBBAiACKAIgKAIMEQAADQMLIANB3o7IAEEBIAURAAAhAAwCC0EBIQAgASgCACIDQdC3xwBBBiABKAIEIgYoAgwiBREAAA0BAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0DIAQgARCUA0UNAQwDCyADQduBwgBBAiAFEQAADQIgAkEBOgAsIAIgBjYCFCACIAM2AhAgAkHggcIANgIgIAIgASkCCDcCJCACIAJBLGo2AhggAiACQRBqIgE2AhwgBCACQRxqEJQDDQIgAUHZgcIAQQIQrwMNAgsgA0HejsgAQQEgBREAACEADAELQQEhACABKAIAIgNB1rfHAEEOIAEoAgQiBigCDCIFEQAADQACQCABLQAKQYABcUUEQCADQbuzxQBBASAFEQAADQIgBEEIaigCACAEQQxqKAIAIAEQtQJFDQEMAgsgA0HbgcIAQQIgBREAAA0BIAJBAToALCACIAY2AhQgAiADNgIQIAJB4IHCADYCICACIAEpAgg3AiQgAiACQSxqNgIYIARBCGooAgAgBEEMaigCACACIAJBEGoiBjYCHCACQRxqELUCDQEgBkHZgcIAQQIQrwMNAQsgA0HejsgAQQEgBREAACEACyACQTBqJAAgAAv6CAMKfwJ+AnsjAEHwAGsiByQAIAcgAjYCACAHIAAoAggiAzYCBAJAAkACQAJAAkACQAJAAkAgAiADRgRAIAdBJGogASACEPEDIAcoAighAQJAIAcoAiwiCkUNACABIApBA3RqIQkgACgCBCEFIAEhAwNAIAMoAgAiBCACTw0JIANBBGooAgAiBiACTw0KIAUgBEEYbGoiBEEQaiIIKQIAIQ0gBSAGQRhsaiIG/QACACEPIAggBkEQaiIIKQIANwIAIAT9AAIAIRAgBCAP/QsCACAIIA03AgAgBiAQ/QsCACADQQhqIgMgCUcNAAsgACgCFCICBEAgACgCECEFIAEhAwNAIAMoAgAiBCACTw0KIANBBGooAgAiBiACTw0LIAUgBEEYbGoiBEEQaiIIKQIAIQ0gBSAGQRhsaiIG/QACACEPIAggBkEQaiIIKQIANwIAIAT9AAIAIRAgBCAP/QsCACAIIA03AgAgBiAQ/QsCACADQQhqIgMgCUcNAAsLIAAoAiAiAgRAIAAoAhwhBSABIQMDQCADKAIAIgQgAk8NCiADQQRqKAIAIgYgAk8NCyAFIARBCWxqIgQpAAAhDSAFIAZBCWxqIgZBCGoiCC0AACELIAQgBikAADcAACAEQQhqIgQtAAAhDCAEIAs6AAAgCCAMOgAAIAYgDTcAACADQQhqIgMgCUcNAAsLIAAoAiwiBARAIAAoAighBiABIQIDQCACKAIAIgMgBE8NBCACQQRqKAIAIgUgBE8NBSAGIANBD2xqIgNBB2opAAAhDSADKQAAIQ4gBiAFQQ9saiIFQQhqKAAAIQggBUEMai8AACELIAVBDmotAAAhDCADIAUpAAA3AAAgA0EOaiAMOgAAIANBDGogCzsAACADQQhqIAg2AAAgByAONwMIIAcgDTcADyAFQQdqIAcpAA83AAAgBSAHKQMINwAAIAJBCGoiAiAJRw0ACwsgACgCOCIDRSAKRXINACAAKAI0IQQgASECA0AgAigCACIAIANPDQUgAkEEaigCACIFIANPDQYgB0EVaiIKIAQgAEEVbGoiAEENaikAADcAACAEIAVBFWxqIgX9AAAAIQ8gBUEUai0AACEGIABBEGogBUEQaigAADYAACAAQRRqIAY6AAAgAP0AAAAhECAAIA/9CwAAIAcgEP0LAwggBSAH/QADCP0LAAAgBUENaiAKKQAANwAAIAJBCGoiAiAJRw0ACwsgBygCJCIABEAgAUEEaygCACICQXhxIgMgAEEDdCIAQQRBCCACQQNxIgIbakkNBiACQQAgAyAAQSdqSxsNByABEKICCyAHQfAAaiQADwsgB0EANgIIQQAgByAHQQRqIAdBCGpBrLzHABD1BwALIAMgBEHA9scAEIwHAAsgBSAEQcD2xwAQjAcACyAAIANBwPbHABCMBwALIAUgA0HA9scAEIwHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAQgAkHA9scAEIwHAAsgBiACQcD2xwAQjAcAC7gHAQR/IAAoArABIgFBhAhPBEAgARCbBwsgACgCtAEiAUGECE8EQCABEJsHCwJAIAAoAgBFDQAgACgCBCIBQYQISQ0AIAEQmwcLAkAgACgCCEUNACAAKAIMIgFBhAhJDQAgARCbBwsCQCAAKAIQRQ0AIAAoAhQiAUGECEkNACABEJsHCwJAIAAoAhhFDQAgACgCHCIBQYQISQ0AIAEQmwcLAkAgACgCIEUNACAAKAIkIgFBhAhJDQAgARCbBwsCQCAAKAIoRQ0AIAAoAiwiAUGECEkNACABEJsHCwJAIAAoAjBFDQAgACgCNCIBQYQITwRAIAEQmwcLIAAoAjgiAUGECEkNACABEJsHCwJAAkAgACgCRCIBBEAgACgCSCIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoAlAiAQRAIAAoAlQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCyAAKAJcIgEEQCAAKAJgIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgCaCIBBEAgACgCbCIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILAkAgACgCPEUNACAAKAJAIgFBhAhJDQAgARCbBwsgACgCjAEiAUGAgICAeHJBgICAgHhHBEAgACgCkAEiA0EEaygCACICQXhxIgQgAUEBdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCyAAKAKYASIBQYCAgIB4ckGAgICAeEcEQCAAKAKcASIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoAnQiAQRAIAAoAngiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCyAAKAKAASIBBEAgACgChAEiAEEEaygCACIDQXhxIgIgAUECdCIBQQRBCCADQQNxIgMbakkNASADQQAgAiABQSdqSxsNAiAAEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC6QIAhN/An4jAEGQBGsiByQAIAdBDGpBAEGABPwLAAJAIAAoAgwiEUUEQCABKAIAIAAoAgAgACgCBCABKAIEKAIMEQAAIQAMAQsgACgCACEOIAAoAggiDy0AACEKAkACQCAAKAIEIhBFDQAgDiAQaiELIAdBDGohAiAOIQADQAJ/IAAsAAAiBkEATgRAIAZB/wFxIQQgAEEBagwBCyAALQABQT9xIQUgBkEfcSEEIAZBX00EQCAEQQZ0IAVyIQQgAEECagwBCyAALQACQT9xIAVBBnRyIQUgBkFwSQRAIAUgBEEMdHIhBCAAQQNqDAELIARBEnRBgIDwAHEgAC0AA0E/cSAFQQZ0cnIiBEGAgMQARg0CIABBBGoLIQAgA0GAAUYNAiACIAQ2AgAgAkEEaiECIANBAWohAyAAIAtHDQALCyAPIBFqIRIgA0ECdCIAQQRqIQwgACAHakEIaiELQbwFIRNByAAhFCAPIQRBgAEhDQNAIARBAWohBEEAIQJBJCEAQQEhCUEBIQZBACEFA0ACQCACQQFxBEAgBCASRg0EIAQtAAAhAiAEQQFqIQQMAQsgCiECIAlBAXFFDQMLIAJB4QBrIglB/wFxQRpPBEAgAkEwa0H/AXFBCUsNAyACQRZrIQkLIAatIhYgCUH/AXEiBq1+IhVCIIinDQIgFaciAiAFaiIFIAJJDQIgBkEaQQEgACAUayICQQAgACACTxsiAiACQQFNGyICIAJBGk8bIgJPBEAgAEEkaiEAIBZBJCACa61+IhWnIQZBACEJQQEhAiAVQiCIUA0BDAMLCyAFIAhqIgYgBUkNASAGIANBAWoiAm4iCiANaiINIApJIA1BgLADc0GAgMQAa0GAkLx/SXIgA0H/AEtyDQEgCyEAAkAgBiACIApsayIIIANPBEAgCEGAAUkNASAIQYABQZiyxQAQjAcACwNAIABBBGogACgCADYCACAAQQRrIQAgA0EBayIDIAhLDQALCyAHQQxqIAhBAnRqIA02AgAgBCASRwRAIAQtAAAhCkEAIQMCQCAFIBNuIgAgAm4gAGoiAEHIA0kEQCAAIQUMAQsDQCADQSRqIQMgAEHX/ABLIABBI24iBSEADQALCyAIQQFqIQggAyAFQSRsQfz/A3EgBUEmakH//wNxbmohFCALQQRqIQsgDEEEaiEMQQIhEyACIQMMAQsLIAdBDGohAwNAIAcgAygCADYCjAQgB0GMBGogARCoBSIADQIgA0EEaiEDIAxBBGsiDA0ACwwBC0EBIQAgASgCACICQei3xQBBCSABKAIEKAIMIgERAAANACAQBEAgAiAOIBAgAREAAA0BIAJB6rPFAEEBIAERAAANAQsgAiAPIBEgAREAAA0AIAJBpbPFAEEBIAERAAAhAAsgB0GQBGokACAAC6cJAgN+Bn9BsLXJACgCAEUEQBBWCwJAAkACQAJAQbi1yQAoAgBFBEBBuLXJAEF/NgIAQcS1yQAoAgAiBUHYtckAKQMAIgEgAK2FIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIRC0oGqm6v6gtenf34iAUI4hiABQoD+A4NCKIaEIAFCgID8B4NCGIYgAUKAgID4D4NCCIaEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhCACQtii0e/CqeW/LX6FIgFCOIYgAUKA/gODQiiGhCABQoCA/AeDQhiGIAFCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIRB0LXJACkDACICQn+FfiIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISEIAEgAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhH6FIAGJIgGncSEEIAFCGYhC/wCDQoGChIiQoMCAAX4hA0HAtckAKAIAIgZBIGshCQJAA0ACQCAEIAZqKQAAIgIgA4UiAUJ/hSABQoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIgFQRQRAA0AgACAJIAF6p0EDdiAEaiAFcSIIQQV0aygCAEYNAiABQgF9IAGDIgFQRQ0ACwsgAiACQgGGg0KAgYKEiJCgwIB/g1BFDQIgBCAHQQhqIgdqIAVxIQQMAQsLQYABIQAgBiAIaiIEKQAAIgEgAUIBhoNCgIGChIiQoMCAf4N6p0EDdiAGIAhBCGsgBXFqIgUpAAAiASABQgGGg0KAgYKEiJCgwIB/g3mnQQN2akEHTQRAQci1yQBByLXJACgCAEEBajYCAEH/ASEACyAEIAA6AAAgBUEIaiAAOgAAQcy1yQBBzLXJACgCAEEBazYCACAGQQAgCGtBBXRqIgBBHGsoAgAiBEGAgICAeEYNACAAQQxrKAIAIQYgAEEQaygCACEFIABBGGsoAgAhCCAAQQRrKAIAIgAgACgCAEEBayIHNgIAIAdFBEAgABDSBQsgBARAIAhBBGsoAgAiAEF4cSIHIARBAnQiBEEEQQggAEEDcSIAG2pJDQMgAEEAIAcgBEEnaksbDQQgCBCiAgsgBUUNACAGQQRrKAIAIgBBeHEiBCAFQQJ0IgVBBEEIIABBA3EiABtqSQ0EIABBACAEIAVBJ2pLGw0FIAYQogILQbi1yQBBuLXJACgCAEEBajYCAA8LQayKwQAQsAoAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALzAYBBH8CQAJAAkAgACgCACIBQYCAgIB4Rg0AIAEEQCAAKAIEIgNBBGsoAgAiAkF4cSIEIAFBA3QiAUEEQQggAkEDcSICG2pJDQIgAkEAIAQgAUEnaksbDQMgAxCiAgsgACgCDCIBRQ0AIAAoAhAiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCwJAIAAoAhwiAUGAgICAeEYNACABBEAgACgCICIDQQRrKAIAIgJBeHEiBCABQQN0IgFBBEEIIAJBA3EiAhtqSQ0CIAJBACAEIAFBJ2pLGw0DIAMQogILIAAoAigiAUUNACAAKAIsIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsCQCAAKAI4IgFBgICAgHhGDQAgAQRAIAAoAjwiA0EEaygCACICQXhxIgQgAUEDdCIBQQRBCCACQQNxIgIbakkNAiACQQAgBCABQSdqSxsNAyADEKICCyAAKAJEIgFFDQAgACgCSCIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILAkAgACgCVCIBQYCAgIB4Rg0AIAEEQCAAKAJYIgNBBGsoAgAiAkF4cSIEIAFBA3QiAUEEQQggAkEDcSICG2pJDQIgAkEAIAQgAUEnaksbDQMgAxCiAgsgACgCYCIBRQ0AIAAoAmQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCwJAIAAoAnAiAUGAgICAeEYNACABBEAgACgCdCIDQQRrKAIAIgJBeHEiBCABQQN0IgFBBEEIIAJBA3EiAhtqSQ0CIAJBACAEIAFBJ2pLGw0DIAMQogILIAAoAnwiAUUNACAAKAKAASIAQQRrKAIAIgNBeHEiAiABQQJ0IgFBBEEIIANBA3EiAxtqSQ0BIANBACACIAFBJ2pLGw0CIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALtwcCCn4GfwJAIAEpAxAiA1ANACABKAIYIg4oAgAiECAOKQMIIgQgDigCBCIMrSIHIAQgB1QbpyIPaiENAkACQCADIAxC/////w8gBCAEQv////8PWhunayIRQQAgDCARTxutIgIgAiADVhtCB1gEQCAMIA9GDQMgAS0AICIPQTdLDQMgDTEAACEIIA4gBEIBfCIGNwMIIANCAX0hAiAPrUL/AYMiCkIIfCEEIAEpAwAgCCAKhoQhCCADQgFRDQIgAiAMIAYgByAGIAdUG6ciDWutIgUgAiAFVBtQIA9BL0tyDQIgDSAQajEAACAOIAYgAkIAUq0iC3wiBTcDCCAKQhB8IQYgAiALfSECIASGIAiEIQggA0IDVARAIAYhBAwDCyACIAwgBSAHIAUgB1QbpyINa60iBCACIARUG1AEQCAGIQQMAwsgD0EnSwRAIAYhBAwDCyANIBBqMQAAIA4gBSACQgBSrSIDfCIFNwMIIApCGHwhBCACIAN9IQMgBoYgCIQhCCACQgJUBEAgAyECDAMLIAMgDCAFIAcgBSAHVBunIg1rrSICIAIgA1YbUARAIAMhAgwDCyAPQR9LBEAgAyECDAMLIA0gEGoxAAAgDiAFIANCAFKtIgJ8IgU3AwggCkIghCEGIAMgAn0hAiAEhiAIhCEIIANCAlQEQCAGIQQMAwsgAiAMIAUgByAFIAdUG6ciDWutIgQgAiAEVBtQBEAgBiEEDAMLIA9BF0sEQCAGIQQMAwsgDSAQajEAACAOIAUgAkIAUq0iA3wiBTcDCCAKQih8IQQgAiADfSEDIAaGIAiEIQggAkICVARAIAMhAgwDCyADIAwgBSAHIAUgB1QbpyINa60iAiACIANWG1AEQCADIQIMAwsgBkIvVgRAIAMhAgwDCyANIBBqMQAAIA4gBSADQgBSrSICfCIFNwMIIApCMHwhBiADIAJ9IQIgBIYgCIQhCCADQgJUBEAgBiEEDAMLIAIgDCAFIAcgBSAHVBunIgxrrSIEIAIgBFQbUARAIAYhBAwDCyAPQQdNDQEgBiEEDAILIAEgAS0AICIMQThyOgAgIAEgASkDACANKQAAIAxBP3GthoQ3AwAgASADIANBPyAMa0H4AXFBA3atIgIgAiADVhsiAn03AxAgDiACIAR8NwMIDAILIAwgEGoxAAAgDiAFIAJCAFKtIgd8NwMIIApCOIQhBCACIAd9IQIgBoYgCIQhCAsgASAEPAAgIAEgCDcDACABIAI3AxALIABBHToAAAvtBwIGfwh+AkAgASgCCCIFQQhqKQMAIghQDQAgBUEQaigCACIGKAIAIAYpAwgiDSAGKAIEIgStIgkgCSANVhunIgNqIQICQAJAIAggBEL/////DyANIA1C/////w9aG6drIgdBACAEIAdPG60iCSAIIAlUG0IHWARAIAMgBEYNAyABLQAMIgRBN0sNAyACMQAAIQkgBUEIaiIHIgIgCEIBfTcDACAGIA1CAXw3AwggBK1C/wGDIg5CCHwhCCABKQMAIAkgDoaEIQsgAikDACIJUA0CIAVBEGooAgAiAigCBCIDIAIpAwgiCiADrSIMIAogDFQbpyIDRiAEQS9Lcg0CIAIoAgAgA2oxAAAgBiANQgJ8NwMIIAciAiAJQgF9NwMAIA5CEHwhCSAIhiALhCELIAIpAwAiCFAEQCAJIQgMAwsgBUEQaigCACICKAIEIgMgAikDCCIKIAOtIgwgCiAMVBunIgNGBEAgCSEIDAMLIARBJ0sEQCAJIQgMAwsgAigCACADajEAACAGIA1CA3w3AwggBUEIaiIHIgIgCEIBfTcDACAOQhh8IQggCYYgC4QhCyACKQMAIglQDQIgBUEQaigCACICKAIEIgMgAikDCCIKIAOtIgwgCiAMVBunIgNGIARBH0tyDQIgAigCACADajEAACAGIA1CBHw3AwggByICIAlCAX03AwAgDkIghCEJIAiGIAuEIQsgAikDACIIUARAIAkhCAwDCyAFQRBqKAIAIgIoAgQiAyACKQMIIgogA60iDCAKIAxUG6ciA0YEQCAJIQgMAwsgBEEXSwRAIAkhCAwDCyACKAIAIANqMQAAIAYgDUIFfDcDCCAFQQhqIgciAiAIQgF9NwMAIA5CKHwhCCAJhiALhCELIAIpAwAiClANAiAFQRBqKAIAIgIoAgQiAyACKQMIIgwgA60iDyAMIA9UG6ciA0YgCUIvVnINAiACKAIAIANqMQAAIAYgDUIGfDcDCCAHIgIgCkIBfTcDACAOQjB8IQkgCIYgC4QhCyACKQMAIghQBEAgCSEIDAMLIAVBEGooAgAiAigCBCIDIAIpAwgiCiADrSIMIAogDFQbpyIDRgRAIAkhCAwDCyAEQQdNDQEgCSEIDAILIAEgAS0ADCIEQThyOgAMIAEgASkDACACKQAAIARBP3GthoQ3AwAgBUEIaiAIIAhBPyAEa0H4AXFBA3atIgkgCCAJVBsiCH03AwAgBiAIIA18NwMIDAILIAIoAgAgA2oxAAAgBiANQgd8NwMIIAVBCGogCEIBfTcDACAOQjiEIQggCYYgC4QhCwsgASAIPAAMIAEgCzcDAAsgAEEdOgAAC/YHAgV/A34gASgCACICQf///wNxIQUgAkGAgICAeHEhBiABKAIEIQMCfiAGQRB2IAVBDXZyQYAEQQAgBRtyQYD4AXKtIAJBgICA/AdxIgRBgICA/AdGDQAaIAZBEHYhBgJAIARBgICAuARNBEAgBEENdiAFQQ12akGAgAFqIAZyrSACQQx2IAJB/98AcUEAR3GtfCAEQYCAgMQDTw0CGiAEQYCAgJgDSQ0BIAVBgICABHIiAkH+ACAEQRd2IgVrdiEEIAJBHSAFayIFdkEBcQR/IARBAyAFdEEBayACcUEAR2oFIAQLIAZyrQwCCyAGQYD4AXKtDAELIAatCyEHIAEoAgghBCADQf///wNxIQUgA0GAgICAeHEhBgJ+IANBgICA/AdxIgJBgICA/AdHBEAgBkEQdiEGIAJBgICAuARNBEAgAkENdiAFQQ12akGAgAFqIAZyrSADQQx2IANB/98AcUEAR3GtfCACQYCAgMQDTw0CGiACQYCAgJgDTwRAIAVBgICABHIiBUH+ACACQRd2IgJrdiEDIAVBHSACayICdkEBcQR/IANBAyACdEEBayAFcUEAR2oFIAMLIAZyrQwDCyAGrQwCCyAGQYD4AXKtDAELIAZBEHYgBUENdnJBgARBACAFG3JBgPgBcq0LIQggASgCDCEBIARB////A3EhAiAEQYCAgIB4cSEFAn4gBEGAgID8B3EiA0GAgID8B0cEQCAFQRB2IQUgA0GAgIC4BE0EQCADQQ12IAJBDXZqQYCAAWogBXKtIARBDHYgBEH/3wBxQQBHca18IANBgICAxANPDQIaIANBgICAmANPBEAgAkGAgIAEciIEQf4AIANBF3YiAmt2IQMgBEEdIAJrIgJ2QQFxBH8gA0EDIAJ0QQFrIARxQQBHagUgAwsgBXKtDAMLIAWtDAILIAVBgPgBcq0MAQsgBUEQdiACQQ12ckGABEEAIAIbckGA+AFyrQshCSABQf///wNxIQQgAUGAgICAeHEhAiAAIAdC//8DgyAIQhCGQoCA/P8PgyAJQiCGQoCAgIDw/z+DAn4gAUGAgID8B3EiA0GAgID8B0cEQCACQRB2IQIgA0GAgIC4BE0EQCADQQ12IARBDXZqQYCAAWogAnKtIAFBDHYgAUH/3wBxQQBHca18IANBgICAxANPDQIaIANBgICAmANPBEAgBEGAgIAEciIEQf4AIANBF3YiA2t2IQEgBEEdIANrIgN2QQFxBH8gAUEDIAN0QQFrIARxQQBHagUgAQsgAnKtDAMLIAKtDAILIAJBgPgBcq0MAQsgAkEQdiAEQQ12ckGABEEAIAQbckGA+AFyrQtCMIaEhIQ3AgALvwgCBX8BfSABKAIAIglB////A3EhBiAJQYCAgIB4cSEKAkAgCUGAgID8B3EiB0GAgID8B0YEQCAKQRB2IAZBDXZyQYAEQQAgBhtyQYD4AXIhCgwBCyAKQRB2IQogB0GAgIC4BE0EQCAHQYCAgMQDTwRAIAlBDHYgCUH/3wBxQQBHcSAHQQ12IAZBDXZqQYCAAWogCnJqIQoMAgsgB0GAgICYA0kNASAGQYCAgARyIglB/gAgB0EXdiIGa3YhByAJQR0gBmsiBnZBAXEEfyAHQQMgBnRBAWsgCXFBAEdqBSAHCyAKciEKDAELIApBgPgBciEKCyABKAIEIgZB////A3EhCCAGQYCAgIB4cSEJAkAgBkGAgID8B3EiB0GAgID8B0cEQCAJQRB2IQkgB0GAgIC4BE0EQCAHQYCAgMQDTwRAIAZBDHYgBkH/3wBxQQBHcSAHQQ12IAhBDXZqQYCAAWogCXJqIQkMAwsgB0GAgICYA0kNAiAIQYCAgARyIgZB/gAgB0EXdiIIa3YhByAGQR0gCGsiCHZBAXEEfyAHQQMgCHRBAWsgBnFBAEdqBSAHCyAJciEJDAILIAlBgPgBciEJDAELIAlBEHYgCEENdnJBgARBACAIG3JBgPgBciEJCyABKAIIIgZB////A3EhCCAGQYCAgIB4cSEHAkAgBkGAgID8B3EiAUGAgID8B0cEQCAHQRB2IQcgAUGAgIC4BE0EQCABQYCAgMQDTwRAIAZBDHYgBkH/3wBxQQBHcSABQQ12IAhBDXZqQYCAAWogB3JqIQcMAwsgAUGAgICYA0kNAiAIQYCAgARyIgZB/gAgAUEXdiIIa3YhASAGQR0gCGsiCHZBAXEEfyABQQMgCHRBAWsgBnFBAEdqBSABCyAHciEHDAILIAdBgPgBciEHDAELIAdBEHYgCEENdnJBgARBACAIG3JBgPgBciEHC0MAAABAIQsgAyoCACADKgIEkiADKgIIkkMAAEBAlSACQwAAgD9fBH0gCwUgAkMAAIBAlEMAAEDAkkMAAIC/kkMzMzM/lEMAAIA/kiICIAKSC5S8IgZB////A3EhCCAGQYCAgIB4cSEDAkAgBkGAgID8B3EiAUGAgID8B0YEQCADQRB2IAhBDXZyQYAEQQAgCBtyQYD4AXIhAwwBCyADQRB2IQMgAUGAgIC4BE0EQCABQYCAgMQDTwRAIAZBDHYgBkH/3wBxQQBHcSABQQ12IAhBDXZqQYCAAWogA3JqIQMMAgsgAUGAgICYA0kNASAIQYCAgARyIgZB/gAgAUEXdiIIa3YhASAGQR0gCGsiCHZBAXEEfyABQQMgCHRBAWsgBnFBAEdqBSABCyADciEDDAELIANBgPgBciEDCyAAIAU2AgwgACAEQf//A3E2AgggACAHQf//A3EgA0EQdHI2AgQgACAKQf//A3EgCUEQdHI2AgALlSEDBX4RfwF7IAGtQYi2yQApAwAiAiAArYUiA0LYotHvwqnlvy1+hSADQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEQtKBqpur+oLXp39+IgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhISFIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCACQtii0e/CqeW/LX6FIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIRBgLbJACkDACIDQn+FfiIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEIAIgA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhH6FIAKJIQZB+LXJACgCAEUEQAJAIwBBIGsiDyQAAkACQAJAAkACfwJAAkACQAJAQfi1yQACfwJAAkACQEH8tckAKAIAQQFqIgkEQEH0tckAKAIAIgcgB0EBaiINQQN2IgtBB2wgB0EISRsiB0EBdiAJSQRAIAdBAWoiByAJIAcgCUsbIglBD0kNAiAJQf////8BTQRAQX8gCUEDdEEHbkEBa2d2IglB/v///wFLDQggCUEBaiEIDAcLDA4LQQAgDUUNBBpB8LXJACgCACEKIAsgDUEHcUEAR2oiCUEBTQ0CIAohCCAJQf7///8DcSILIQcDQCAIIAj9AAMAIhj9TUEH/c0B/QwBAQEBAQEBAQEBAQEBAQEB/U4gGP0Mf39/f39/f39/f39/f39/f/1Q/c4B/QsDACAIQRBqIQggB0ECayIHDQALIAkgC0YNAyALQQN0IQggCUEBcSEJDAILDAwLQQQgCUEIcUEIaiAJQQRJGyEIDAMLIAggCmohCANAIAggCCkDACICQn+FQgeIQoGChIiQoMCAAYMgAkL//v379+/fv/8AhHw3AwAgCEEIaiEIIAlBAWsiCQ0ACwsCQCANQQhPBEAgCiANaiAKKQAANwAADAELIA1FDQAgCkEIaiAKIA38CgAAC0EBIQdBACEJA0AgCSEKIAchCQJAIApB8LXJACgCACIHai0AAEGAAUcNACAHIAxqIRMgByAKQX9zQQN0aiEUQQAgCmtBA3QhFQJAA0BB9LXJACgCACILQYi2yQApAwAiAiAHIBVqIghBCGs1AgCFIgNC2KLR78Kp5b8tfiAIQQRrNQIAhSADQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEQtKBqpur+oLXp39+IgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhISFIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCACQtii0e/CqeW/LX6FIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIRBgLbJACkDACIDQn+FfiIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEIAIgA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhH6FIAKJpyIScSIOIQggByAOaikAAEKAgYKEiJCgwIB/gyICUARAQQghEANAIAggEGohCCAQQQhqIRAgByAIIAtxIghqKQAAQoCBgoSIkKDAgH+DIgJQDQALCyAHIAJ6p0EDdiAIaiALcSIIaiwAAEEATgRAIAcpAwBCgIGChIiQoMCAf4N6p0EDdiEICyAIIA5rIAogDmtzIAtxQQhPBEAgByAIaiIOLQAAIA4gEkEZdiIOOgAAQfC1yQAoAgAgCEEIayALcWpBCGogDjoAAEH/AUYNAiAHIAhBA3RrIQhBeCEHA0AgByATaiILKAAAIQ4gCyAHIAhqIgsoAAA2AAAgCyAONgAAIAdBBGoiBw0AC0HwtckAKAIAIQcMAQsLIAcgCmogEkEZdiIHOgAAQfC1yQAoAgAgCyAKQQhrcWpBCGogBzoAAAwBC0H0tckAKAIAIQtB8LXJACgCACAKakH/AToAAEHwtckAKAIAIAsgCkEIa3FqQQhqQf8BOgAAIAcgCEF/c0EDdGogFCkAADcAAAsgDEEIayEMIAkgCSANSSIIaiEHIAgNAAtB9LXJACgCACIJIAlBAWpBA3ZBB2wgCUEISRsLQfy1yQAoAgBrNgIADAULIAhBCGoiCSAIQQN0IgpqIgcgCUkgB0H4////B0tyDQAgBxBxIgdFDQEgByAKaiEKIAkEQCAKQf8BIAn8CwALIAhBAWsiDSAIQQN2QQdsIA1BCEkbIRBB8LXJACgCACEHQfy1yQAoAgAiDg0CQQAMAwsgD0EANgIYIA9BATYCDCAPQcS1xAA2AgggD0IENwIQIA9BCGpBmLXEABCNCAsACyAKQQhqIRIgBykDAEJ/hUKAgYKEiJCgwIB/gyEFQQAhCCAHIQkDQCAFUARAA0AgCEEIaiEIIAlBCGoiCSkDAEKAgYKEiJCgwIB/gyICQoCBgoSIkKDAgH9RDQALIAJCgIGChIiQoMCAf4UhBQsgCiANQYi2yQApAwAiAiAHIAV6p0EDdiAIaiITQQN0ayIMQQhrNQIAhSIDQtii0e/CqeW/LX4gDEEEazUCAIUgA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhELSgaqbq/qC16d/fiICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEhSICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEQtKBqpur+oLXp39+IgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQgAkLYotHvwqnlvy1+hSICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEQYC2yQApAwAiA0J/hX4iBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhCACIANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIR+hSACiaciFHEiDGopAABCgIGChIiQoMCAf4MiAlAEQEEIIQsDQCALIAxqIQwgC0EIaiELIAogDCANcSIMaikAAEKAgYKEiJCgwIB/gyICUA0ACwsgBUIBfSAFgyEFIAogAnqnQQN2IAxqIA1xIgxqLAAAQQBOBEAgCikDAEKAgYKEiJCgwIB/g3qnQQN2IQwLIAogDGogFEEZdiILOgAAIBIgDEEIayANcWogCzoAACAKIAxBf3NBA3RqIAcgE0F/c0EDdGopAAA3AwAgDkEBayIODQALQfC1yQAoAgAhB0H8tckAKAIACyEIQfC1yQAgCjYCAEH0tckAKAIAIQlB9LXJACANNgIAQfi1yQAgECAIazYCACAJRQ0AIAkgCUEDdEEPakF4cSIIakEJaiIJRQ0AIAcgCGsiB0EEaygCACIIQXhxIgpBBEEIIAhBA3EiCBsgCWpJDQEgCEEAIAogCUEnaksbDQIgBxCiAgsgD0EgaiQADAMLQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAPQQA2AhggD0EBNgIMIA9BxLXEADYCCCAPQgQ3AhAgD0EIakGYtcQAEI0IAAsLQfS1yQAoAgAiCCAGp3EhCSAGQhmIIgRC/wCDQoGChIiQoMCAAX4hBUHwtckAKAIAIQcDQAJ/AkACQCAHIAlqKQAAIgMgBYUiAkJ/hSACQoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIgJQRQRAA0AgByACeqdBA3YgCWogCHFBA3RrIgxBCGsoAgAgAEYEQEEBIQogASAMQQRrKAIARg0DCyACQgF9IAKDIgJQRQ0ACwsgA0KAgYKEiJCgwIB/gyECIBZFBEAgAlANAiACeqdBA3YgCWogCHEhEQtBASACIANCAYaDUA0CGkEAIQogByARaiwAACIJQQBOBEAgByAHKQMAQoCBgoSIkKDAgH+DeqdBA3YiEWotAAAhCQsgByARaiAEp0H/AHEiDDoAACAHIBFBCGsgCHFqQQhqIAw6AABB+LXJAEH4tckAKAIAIAlBAXFrNgIAQfy1yQBB/LXJACgCAEEBajYCACAHIBFBA3RrIglBCGsgADYCACAJQQRrIAE2AgALIAoPC0EACyEWIBdBCGoiFyAJaiAIcSEJDAALAAuECQMZfwR9AXsjAEEQayIOJAACQAJAAkACQAJAIAIEQCAAKAIIIhEgAWsiBUEAIAUgEU0bIRZDAACAPyAAKgJAIAAtAFhBAkYiBRtDAAAAACAAKgI8IAUbIh+TISAgAkEMbCEXIABBPGohGCAAKAIEIAFBGGxqIQYgAygCICEPIAMoAiQhEiADKAIYIRkgAygCHCETIAMoAhAhGiADKAIUIRQgAygCCCEbIAMoAgwhECADKAIAIRwgAygCBCEVA0ACQAJAAkACQCANIBZHBEAgB0EDaiIFIBVLDQEgBiAMIBxqIgRBCGogBP1dAgD9VgIAAiIh/VoCCAIgBiAh/VsCAAAgDSAQRg0DIAsgG2ooAgAiCkH///8DcSEIIApBgICAgHhxIQQgCkGAgID8B3EiCUGAgID8B0YEQCAIQQ12IARBEHZyQYAEQQAgCBtyQYD4AXIhBAwFCyAEQRB2IQQgCUGAgIC4BEsNAiAJQYCAgMQDTwRAIApBDHYgCkH/3wBxQQBHcSAJQQ12IAhBDXZqQYCAAWogBHJqIQQMBQsgCUGAgICYA0kNBCAIQYCAgARyIgpB/gAgCUEXdiIIa3YhCSAKQR0gCGsiCHZBAXEEfyAJQQMgCHRBAWsgCnFBAEdqBSAJCyAEciEEDAQLIAEgDWogEUHsu8cAEIwHAAsgByAFIBVBpMXHABDqBwALIARBgPgBciEEDAELIBAgEEHkxMcAEIwHAAsgBkEMaiAEOwEAIAUgFEsNBEMAAH9DQwAAAAAgDCAaaiIEQQRqKgIAIB+TICCVQwAAf0OUIh0gHUMAAAAAXRsiHSAdQwAAf0NeGxC5ByEdIAZBDmpB/wFDAAB/Q0MAAAAAIARBCGoqAgAgH5MgIJVDAAB/Q5QiHiAeQwAAAABdGyIeIB5DAAB/Q14bELkHIh78AUEAIB5DAAAAAGAbIB5DAAB/Q14bQRB0Qf8BIB38AUEAIB1DAAAAAGAbIB1DAAB/Q14bQQh0ckH/AUMAAH9DQwAAAAAgBCoCACAfkyAglUMAAH9DlCIdIB1DAAAAAF0bIh0gHUMAAH9DXhsQuQciHfwBQQAgHUMAAAAAYBsgHUMAAH9DXhtyIgQ7AQAgBkEQaiAEQRB2OgAAIAUgE0sNBSAGIBggDCAZaiIH/V0CACAHQQhqKgIAIh39IAIgHf0gAxDfBCALQQNqIBJPDQIgDiAP/QACAP0LBAAgBkEWaiAOEJ0EIgdBEHY6AAAgBkEUaiAHOwEAIA1BAWohDSAPQRBqIQ8gBkEYaiEGIAtBBGohCyAFIQcgFyAMQQxqIgxHDQALCyAAIAEgAiADKAIoIAMoAiwgAygCMCADKAI0IAMoAjggAygCPBDqBCADKAJEIgVFDQQgAygCTCIHDQEMBAsgCyALQQRqIBJBhMXHABDqBwALIAAoAhAiBiAAKAIUIgAgASACIAMoAkggBxCNAyAGIAAgASACIAMoAkAgBRCzAwwCCyAHIAUgFEGUxccAEOoHAAsgByAFIBNB9MTHABDqBwALIA5BEGokAAvXBwIHfwN9IAEoAggiAkEDdCEGIAEoAgQhBCABKAIAIQcgACgCCCIDIQEgACgCACADayACSQRAIAAgAyACQQRBCBCkBSAAKAIIIQELIAAoAgQhBSAGBEAgBSABQQN0aiAEIAb8CgAACyAAIAEgAmoiAjYCCAJAAkACQAJAIAcEQCAEQQRrKAIAIgBBeHEiASAHQQN0IgZBBEEIIABBA3EiABtqSQ0BIABBACABIAZBJ2pLGw0CIAQQogILIAIgA0YNAwJAAkAgAiADayIAIANNBEAgAkEBdCEBIAJBgBBLDQEgASAAQR8gA2drbE8NAgsgAkECSQ0FDAQLIAEgAEELbEkNAwsgAiADTQ0DA0AgBSADQQN0aiIAKAIEIQQgACoCACEKAkAgA0UEQEEAIQEMAQsgAyEAIAogClwEQANAAkAgBSAAQQFrIgdBAXYiAUEDdGoiBioCACIJIAlbIAkgCmBFcQ0AIAQgBkEEaigCAEsNACAAIQEMAwsgBSAAQQN0aiAGKQIANwIAIAEhACAHQQJPDQAMAgsACwNAIAUgAEEBayIHQQF2IgFBA3RqIgYqAgAiCSAJWyAJIApgRXFBfyAJIApfGyIIQQBMIAQgBkEEaigCAE0gCBsEQCAAIQEMAgsgBSAAQQN0aiAGKQIANwIAIAEhACAHQQFLDQALCyAFIAFBA3RqIgAgBDYCBCAAIAo4AgAgA0EBaiIDIAJHDQALDAMLQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyACQQJrIQYgAkEBdiEDA0AgA0EBayIDQQF0IgRBAXIhACAFIANBA3RqIgEoAgQhByABKgIAIQogAyEBAkACQCAEIAZPDQADQAJAIAogBSAAIARBA3QgBWoiAkEQaioCACIJIAlbIAkgBSAAQQN0aiIEKgIAIgtgRXEiCCAIQX8gCSALXxsgCyALXBsiCEEATCAEQQRqKAIAIAJBFGooAgBNIAgbaiICQQN0aiIAKgIAIglgRSAKIApbcUUEQCAJIApgRSAJIAlbcSAHIABBBGooAgBPcg0BCyAFIAFBA3RqIAApAgA3AgAgAkEBdCIEQQFyIQAgAiEBIAQgBkkNAQwCCwsgASEADAELIAQgBkcEQCABIQAMAQsCQCAKIApcIAogBSAAQQN0aiICKgIAIglgciIEIAkgCVwgCSAKYHJxRQRAIARFDQEgASEADAILIAcgAkEEaigCAEkNACABIQAMAQsgBSABQQN0aiACKQIANwIACyAFIABBA3RqIgAgBzYCBCAAIAo4AgAgAw0ACwsL4wgDB38EfQF7IwBBsAFrIgUkAAJ/AkAgASgCCCIHIAJLBEAgBUGAAWogASgCBCACQSRsaiIHEJoDIAX9AASAASIQ/R8AIgwgEP0fASINlEOPws0/ELcKIQ4gDCAQ/R8CIgyUQ4/CzT8QtwohDyANIAyUQ4/CzT8QtwogDiAPkpJDAABAQJVD5kAfPxC3CkPbD0lBlCEMIAcvARQiBkH//wFxRQRAIAZBEHQMAwsgBkH/B3EhByAGQYCAAnEhCCAGQYD4AXEiBkGA+AFGBEAgCEEQdCEGIAZBgICA/AdyIAdFDQMaIAYgB0ENdHJBgICA/gdyDAMLIAhBEHQhCCAGRQ0BIAZBDXRBgICA/ABxIAdBDXRyQYCAgMADaiAIcgwCCyACIAdB1MDHABCMBwALIAhBgICA2ANyIAdnQRBrIgZBF3RrIAcgBkH//wNxQQhqdEH///8DcXILIQggBUEIaiABKAIQIgkgASgCFCIKIAIQ6AIgDCAIvpQhDQJAAn8CQAJAIAUoAiwiBkEJTwRAIAUoAgwiB0UNASAFQQA2AjAgBUEANgJUIAUoAhAMAwsgBg0BCyAAQQE2AiggACACNgIIIABBADYCBCAAIA04AgAMAgsgBUEANgIwIAVBADYCVCAGIQcgBUEMagshCCAHQQJ0IQsgBUGEAWohB0MAAID/IQwDQCAFQYABaiABIAgoAgAgAyAEEJUCIAVB4ABqIAdBCGr9AAIA/QsDACAFQfAAaiAHQRhq/QACAP0LAwAgBSAHKQIANwNYIAhBBGohCCAFKgKAASEOIAVBMGogBUHYAGoQ/wEgDCAOEOAIIQwgC0EEayILDQALIAMoAgghAQJAAkACQAJAAkAgBCAMlCANXwRAIAEgAk0NASADKAIEIAJqQQE6AAALIAEgAk0NASADKAIEIAJqLQAARQRAIAkgCiACQQRBABDkBSAAIAw4AgAgAEEkaiAFQdAAaikCADcCACAAQRRqIAVBQGv9AAIA/QsCACAAIAX9AAIw/QsCBAwGCyAJIAogAiAFKAJUIghBCUkEfyAFQTRqBSAFKAI0IghBgIAETw0DIAUoAjgLIAgQ5AUgAEEBNgIoIAAgAjYCCCAAQQA2AgQgACANOAIAIAUoAlQiAEEJSQ0FIAUoAjgiAUEEaygCACICQXhxIgMgAEECdCIAQQRBCCACQQNxIgIbakkNAyACQQAgAyAAQSdqSxsNBCABEKICDAULIAIgAUHs6sEAEIwHAAsgAiABQfzqwQAQjAcAC0GM68EAQS1BvOvBABDrBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACwJAAkAgBkEJTwRAIAUoAhAiAEEEaygCACIBQXhxIgIgBkECdCIDQQRBCCABQQNxIgEbakkNASABQQAgAiADQSdqSxsNAiAAEKICCyAFQbABaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL9wgCAn0DfwJAAkACQAJAAkACQAJAAkACQAJAIAAoAlxFIAJFckUEQEMAAP5CQwAA/kIgACoCTJUgAC0AWEECRhshBiAAKAIcIAFBCWxqIQkgACgCICEIQQAhAANAIAEgCE8NCiAAIARPDQsgACAJaiIHQf8AQwAA/kJDAAD+wiAGIAMqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQFqIARPDQkgB0EBakH/AEMAAP5CQwAA/sIgBiADQQRqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEECaiAETw0IIAdBAmpB/wBDAAD+QkMAAP7CIAYgA0EIaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBA2ogBE8NByAHQQNqQf8AQwAA/kJDAAD+wiAGIANBDGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQRqIARPDQYgB0EEakH/AEMAAP5CQwAA/sIgBiADQRBqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEFaiAETw0FIAdBBWpB/wBDAAD+QkMAAP7CIAYgA0EUaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBBmogBE8NBCAHQQZqQf8AQwAA/kJDAAD+wiAGIANBGGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQdqIARPDQMgB0EHakH/AEMAAP5CQwAA/sIgBiADQRxqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEIaiAETw0CIAdBCGpB/wBDAAD+QkMAAP7CIAYgA0EgaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIANBJGohAyAAQQlqIQAgAUEBaiEBIAJBAWsiAg0ACwsPCyAAQQhqIQAMCAsgAEEHaiEADAcLIABBBmohAAwGCyAAQQVqIQAMBQsgAEEEaiEADAQLIABBA2ohAAwDCyAAQQJqIQAMAgsgAEEBaiEADAELIAAgBE8NACABIAhBhMTHABCMBwALIAAgBEH0w8cAEIwHAAuOCQISfwl7IwBBIGsiBiQAAkACQCACQf//A3EiCUEBIAN0akEBayADdiICQf//A00EQCAJRQ0BIAEgASAJQQJ0IgdwayIBIAdPBEAgA0EfcSIOQR1LDQMgByAOQQJqdkEEIA50IghBAWsgB3FBAEdqIREgAkECdCEVIAEgB2shDwNAAkACQCAVIBAgDnZsIgIgBU0EQCAFIAJrQQJ2IgEgESABIBFJGyIWRQ0CIAIgBGohF0EAIQsgACEJIAchDAwBCyACIAUgBUHI2MQAEOoHAAsDQCAIIAcgCCALbCICayIBIAEgCEsbIgEEQCAAIAJqIQIgFyALQQJ0aiIDLAAAIRIgAywAASETIAMsAAIhFCABQYGAgIB8bEEEayIDQSBPBEBBfCAIIAwgCCAMSRtB/////wNsa0ECdiADQQJ2QQFqIgpBB3EiA0EIIAMbIgNrQQFqIQ0gAiAKIANrQQJ0IgNqIQIgASADayEBIBL9ESEcIBP9ESEdIBT9ESEeIAkhAwNAIANBDGogHiAD/QAAACIfIBj9DQEFCQ0AAAAAAAAAAAAAAAD9hwH9pwEiGv21AUEF/a0BIB8gGP0NAAQIDAAAAAAAAAAAAAAAAP2JAf2pAf2uASIZ/RsDOgAAIANBCGogGf0bAjoAACADQQRqIBn9GwE6AAAgAyAZ/RsAOgAAIANBHGogHiADQRBqIgr9AAAAIiAgGf0NAQUJDQAAAAAAAAAAAAAAAP2HAf2nASIY/bUBQQX9rQEgICAZ/Q0ABAgMAAAAAAAAAAAAAAAA/YkB/akB/a4BIhv9GwM6AAAgA0EYaiAb/RsCOgAAIANBFGogG/0bAToAACAKIBv9GwA6AAAgA0EOaiAdIBr9tQFBBf2tASAfIBn9DQIAAAAGAAAACgAAAA4AAAD9rgEgGUEY/asBQRj9rAEgHP21AUEF/a0B/a4BIhr9GwM6AAAgA0EKaiAa/RsCOgAAIANBBmogGv0bAToAACADQQJqIBr9GwA6AAAgA0EeaiAdIBj9tQFBBf2tASAgIBr9DQIAAAAGAAAACgAAAA4AAAD9rgEgG0EY/asBQRj9rAEgHP21AUEF/a0B/a4BIhj9GwM6AAAgA0EaaiAY/RsCOgAAIANBFmogGP0bAToAACADQRJqIBj9GwA6AAAgA0EgaiEDIA1BCGsiDQ0ACwsDQCACIAItAAAgAkEBaiwAACINIBRsQQV2aiIKOgAAIAJBAmoiAyADLQAAIA0gE2xBBXZqIArAIBJsQQV2ajoAACACQQRqIQIgAUEEayIBDQALCyAIIAlqIQkgDCAIayEMIAtBAWoiCyAWRw0ACwsgEEEBaiEQIAAgB2ohACAPQQAgByAHIA9LIgEbayEPIAFFDQALCyAGQSBqJAAPC0HY5sgAQSsgBkEfakHY2MQAQaj7xgAQ4AYACyAGQQA2AhQgBkEBNgIIIAZBvKHHADYCBCAGQgQ3AgwgBkEEakGo2MQAEI0IAAsgBkEANgIUIAZBATYCCCAGQbyhxwA2AgQgBkIENwIMIAZBBGpBuNjEABCNCAAL/gcCE38BfgJAAkACQAJAIAEoAgBBAUYEQCABKAIcIgUgASgCNCIERwRAIAEoAjAhCyAEIQMgBSABKAI8IghBAWsiEGoiAiAETw0CIAEoAjghDSAFIAtqIREgBSAIaiEGIAEoAhgiAyAFaiEOIAggA2shEiAFIAEoAhAiDGtBAWohEyABKQMIIRUgASgCJCIPQX9GIQkgDyEHIAUhAwNAIAMgBUcNAwJAAkAgFSACIAtqMQAAiKdBAXFFBEAgASAGNgIcIAYhAyAJDQJBACECDAELIAwgByAMIAcgDEsbIAkbIgogCCAIIApJGyEUIAohAwJAAkACQANAIAMiAiAURgRAQQAgByAJGyEKIAwhAgNAIAIgCk0EQCABIAY2AhwgD0F/RwRAIAFBADYCJAsgACAGNgIIIAAgBTYCBCAAQQA2AgAPCyACQQFrIgIgCE8NBSACIAVqIgMgBE8NAyACIA1qLQAAIAMgC2otAABGDQALIAEgDjYCHCASIQIgDiEDIAlFDQUMBgsgAiAFaiAETw0CIAJBAWohAyACIA1qLQAAIAIgEWotAABGDQALIAIgE2ohAyAJDQRBACECDAMLIAMgBEH4nscAEIwHAAsgBCAFIApqIgAgACAESRsgBEGIn8cAEIwHAAsgAiAIQeiexwAQjAcACyABIAI2AiQgAiEHCyADIBBqIgIgBEkNAAsgBCEDDAMLIABBAjYCAA8LAkAgAS0ADkUEQCABIAEtAAwiBUEBczoADCABKAI0IQIgASgCMCEEIAEoAgQiA0UNAQJAIAIgA00EQCACIANHDQEMAwsgAyAEaiwAAEG/f0oNAgsgBCACIAMgAkHUuMcAELsJAAsgAEECNgIADwsCQAJAIAIgA0cEQAJ/IAMgBGoiBCwAACICQQBOBEAgAkH/AXEMAQsgBC0AAUE/cSEGIAJBH3EhByAHQQZ0IAZyIAJBX00NABogBC0AAkE/cSAGQQZ0ciEGIAYgB0EMdHIgAkFwSQ0AGiAHQRJ0QYCA8ABxIAQtAANBP3EgBkEGdHJyCyEEQQEhAiAFQQFxRQ0BDAILIAVBAXENASAAQQI2AgAgAUEBOgAODwsCQCAEQYABSQ0AQQIhAiAEQYAQSQ0AQQNBBCAEQYCABEkbIQILIAAgAzYCBCAAQQE2AgAgACACIANqIgA2AgggASAANgIEDwsgACADNgIIIAAgAzYCBCAAQQA2AgAPCyADRQ0BCyADIQIDQAJAIAIgBE8EQCACIARGDQQMAQsgAiALaiwAAEG/f0wNACACIQQMAwsgAkEBaiICDQALC0EAIQQLIAAgBDYCCCAAIAU2AgQgAEEBNgIAIAEgAyAEIAMgBEsbNgIcC7QKAgN8A38jAEEQayIFJAAgALshAQJAIAC8IgZB/////wdxIgRB25+k+gNPBEAgBEHSp+2DBE8EQCAEQdbjiIcETwRAAkACQAJAAkAgBEH////7B00EQCAFQgA3AwgCQCAEQdqfpO4ETQRAIAEgAUSDyMltMF/kP6JEAAAAAAAAOEOgRAAAAAAAADjDoCICRAAAAFD7Ifm/oqAgAkRjYhphtBBRvqKgIQEgAvwCIQQMAQsgBSAEIARBF3ZBlgFrIgRBF3Rrvrs5AwAgBSAFQQhqIAQQdCEEIAZBAE4EQCAFKwMIIQEMAQtBACAEayEEIAUrAwiaIQELIARBA3FBAWsOAwMEAQILIAAgAJMhAAwHCyABIAGiIgFEgV4M/f//37+iRAAAAAAAAPA/oCABIAGiIgJEQjoF4VNVpT+ioCABIAKiIAFEaVDu4EKT+T6iRCceD+iHwFa/oKKgtowhAAwGCyABIAEgAaIiAqIiAyACIAKioiACRKdGO4yHzcY+okR058ri+QAqv6CiIAEgAyACRLL7bokQEYE/okR3rMtUVVXFv6CioKC2IQAMBQsgASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLYhAAwECyABIAGiIgIgAZqiIgMgAiACoqIgAkSnRjuMh83GPqJEdOfK4vkAKr+goiADIAJEsvtuiRARgT+iRHesy1RVVcW/oKIgAaGgtiEADAMLIARB4Nu/hQRPBEBEGC1EVPshGcBEGC1EVPshGUAgBkEAThsgAaAiAiACIAKiIgGiIgMgASABoqIgAUSnRjuMh83GPqJEdOfK4vkAKr+goiACIAMgAUSy+26JEBGBP6JEd6zLVFVVxb+goqCgtiEADAMLIAZBAE4EQCABRNIhM3982RLAoCIBIAGiIgFEgV4M/f//37+iRAAAAAAAAPA/oCABIAGiIgJEQjoF4VNVpT+ioCABIAKiIAFEaVDu4EKT+T6iRCceD+iHwFa/oKKgtowhAAwDCyABRNIhM3982RJAoCIBIAGiIgFEgV4M/f//37+iRAAAAAAAAPA/oCABIAGiIgJEQjoF4VNVpT+ioCABIAKiIAFEaVDu4EKT+T6iRCceD+iHwFa/oKKgtiEADAILIARB5JfbgARPBEBEGC1EVPshCcBEGC1EVPshCUAgBkEAThsgAaAiAiACoiIBIAKaoiIDIAEgAaKiIAFEp0Y7jIfNxj6iRHTnyuL5ACq/oKIgAyABRLL7bokQEYE/okR3rMtUVVXFv6CiIAKhoLYhAAwCCyAGQQBOBEAgAUQYLURU+yH5v6AiASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLYhAAwCCyABRBgtRFT7Ifk/oCIBIAGiIgFEgV4M/f//37+iRAAAAAAAAPA/oCABIAGiIgJEQjoF4VNVpT+ioCABIAKiIAFEaVDu4EKT+T6iRCceD+iHwFa/oKKgtowhAAwBCyAEQYCAgMwDTwRAIAEgAaIiAiABoiIDIAIgAqKiIAJEp0Y7jIfNxj6iRHTnyuL5ACq/oKIgAyACRLL7bokQEYE/okR3rMtUVVXFv6CiIAGgoLYhAAwBCyAFIABDAACAA5QgAEMAAIB7kiAEQYCAgARJGzgCCCAFKgIIGgsgBUEQaiQAIAALxgcBDn4gACAANQIgIgIgADUCACIEfCIFIAA0AhAiAUL7nAF+QhCHIAF8IAA0AjAiA0KMlQJ+QhCHfCIGfT4CMCAAIAFCjJUCfkIQhyADIANC+5wBfkIQh3x9IgEgBCACfSIDfD4CECAAIAUgBnw+AgAgACADIAF9PgIgIAAgADQCFCIBQoyVAn5CEIcgADQCNCIDQvucAX5CEIcgA3x9IgIgADUCBCIEIAA1AiQiBX0iBnw+AhQgACAGIAJ9PgIkIAAgBCAFfCICIAEgAUL7nAF+QhCHfCADQoyVAn5CEId8IgR9PgI0IAAgADUCKCIFIAA1AggiBnwiByAANAIYIgFC+5wBfkIQhyABfCAANAI4IgNCjJUCfkIQh3wiCH0+AjggACAGIAV9IgUgAUKMlQJ+QhCHIAMgA0L7nAF+QhCHfH0iBn0iCj4CKCAAIAA1AiwiCyAANQIMIgx8IgkgADQCHCIBQvucAX5CEIcgAXwgADQCPCIDQoyVAn5CEId8Ig19PgI8IAAgByAIfMQiByAANAIAIgh8QgR8Ig4gAiAEfMQiAkL7nAF+QhCHIAJ8IAkgDXzEIgRCjJUCfkIQh3wiCX1CA4g+AgwgACAJIA58QgOIPgIAIAAgCCAHfUIEfCIHIAJCjJUCfkIQhyAEQvucAX5CEIcgBHx9IgJ9QgOIPgIIIAAgAiAHfEIDiD4CBCAAIAUgBnzEIgQgADQCECIFfEIEfCIGIAA0AhQiAkL7nAF+QhCHIAJ8IAFCjJUCfkIQhyADIANC+5wBfkIQh3x9IgMgDCALfSIHfMQiAUKMlQJ+QhCHfCIIfUIDiD4CHCAAIAYgCHxCA4g+AhAgACAFIAR9QgR8IgQgAkKMlQJ+QhCHIAFC+5wBfkIQhyABfH0iAX1CA4g+AhggACABIAR8QgOIPgIUIAAgCsQiAiAANAIgIgR8QgR8IgUgADQCJCIBQvucAX5CEIcgAXwgByADfcQiA0KMlQJ+QhCHfCIGfUIDiD4CLCAAIAUgBnxCA4g+AiAgACAEIAJ9QgR8IgIgAUKMlQJ+QhCHIANC+5wBfkIQhyADfH0iAX1CA4g+AiggACABIAJ8QgOIPgIkIAAgADQCOCICIAA0AjAiBHxCBHwiBSAANAI0IgFC+5wBfkIQhyABfCAANAI8IgNCjJUCfkIQh3wiBn1CA4g+AjwgACAFIAZ8QgOIPgIwIAAgBCACfUIEfCICIAFCjJUCfkIQhyADIANC+5wBfkIQh3x9IgF9QgOIPgI4IAAgASACfEIDiD4CNAuMCgIDfAN/IwBBEGsiBSQAIAC7IQECfQJAAkAgALwiBkH/////B3EiBEHbn6T6A08EQCAEQdKn7YMETwRAIARB1uOIhwRPBEACQAJAAkACQCAEQf////sHTQRAIAVCADcDCAJAIARB2p+k7gRNBEAgASABRIPIyW0wX+Q/okQAAAAAAAA4Q6BEAAAAAAAAOMOgIgJEAAAAUPsh+b+ioCACRGNiGmG0EFG+oqAhASAC/AIhBAwBCyAFIAQgBEEXdkGWAWsiBEEXdGu+uzkDACAFIAVBCGogBBB0IQQgBkEATgRAIAUrAwghAQwBC0EAIARrIQQgBSsDCJohAQsgBEEDcUEBaw4DAwQBAgsgACAAkwwJCyABIAEgAaIiAqIiAyACIAKioiACRKdGO4yHzcY+okR058ri+QAqv6CiIAEgAyACRLL7bokQEYE/okR3rMtUVVXFv6CioKC2DAgLIAEgAaIiAUSBXgz9///fv6JEAAAAAAAA8D+gIAEgAaIiAkRCOgXhU1WlP6KgIAEgAqIgAURpUO7gQpP5PqJEJx4P6IfAVr+goqC2DAcLIAEgAaIiAiABmqIiAyACIAKioiACRKdGO4yHzcY+okR058ri+QAqv6CiIAMgAkSy+26JEBGBP6JEd6zLVFVVxb+goiABoaC2DAYLIAEgAaIiAUSBXgz9///fv6JEAAAAAAAA8D+gIAEgAaIiAkRCOgXhU1WlP6KgIAEgAqIgAURpUO7gQpP5PqJEJx4P6IfAVr+goqC2jAwFCyAEQd/bv4UESw0CIAZBAE4EQCABRNIhM3982RLAoCICIAIgAqIiAaIiAyABIAGioiABRKdGO4yHzcY+okR058ri+QAqv6CiIAIgAyABRLL7bokQEYE/okR3rMtUVVXFv6CioKC2DAULRNIhM3982RLAIAGhIgIgAiACoiIBoiIDIAEgAaKiIAFEp0Y7jIfNxj6iRHTnyuL5ACq/oKIgAiADIAFEsvtuiRARgT+iRHesy1RVVcW/oKKgoLYMBAsgBEHjl9uABEsNAiAGQQBOBEBEGC1EVPsh+T8gAaEiAiACIAKiIgGiIgMgASABoqIgAUSnRjuMh83GPqJEdOfK4vkAKr+goiACIAMgAUSy+26JEBGBP6JEd6zLVFVVxb+goqCgtgwECyABRBgtRFT7Ifk/oCICIAIgAqIiAaIiAyABIAGioiABRKdGO4yHzcY+okR058ri+QAqv6CiIAIgAyABRLL7bokQEYE/okR3rMtUVVXFv6CioKC2DAMLIARBgICAzANPBEAgASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLYMAwsgBSAAQwAAgHuSOAIIIAUqAggaQwAAgD8MAgtEGC1EVPshGcBEGC1EVPshGUAgBkEAThsgAaAiASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLYMAQtEGC1EVPshCcBEGC1EVPshCUAgBkEAThsgAaAiASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLaMCyAFQRBqJAALgQgDBX8DewZ9IAAvAQYhAwJ/IAAvAQQiAkH//wFxRQRAIAJBEHQMAQsgAkH/B3EhBiACQYCAAnEhBCACQYD4AXEiAkGA+AFGBEAgBEEQdCECIAJBgICA/AdyIAZFDQEaIAIgBkENdHJBgICA/gdyDAELIARBEHQhBCACQQ10QYCAgPwAcSAGQQ10ckGAgIDAA2ogBHIgAg0AGiAGIAZnQRBrIgZB//8DcUEIanRB////A3EgBEGAgIDYA3IgBkEXdGtyCyEGIAAvAQghAgJ/IANB//8BcQRAIANB/wdxIQQgA0GAgAJxIQUgA0GA+AFxIgNBgPgBRwRAIAVBEHQhBSADQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogBXIgAw0CGiAEIARnQRBrIgNB//8DcUEIanRB////A3EgBUGAgIDYA3IgA0EXdGtyDAILIAVBEHQhAyADIARBDXRyQYCAgP4HciAEDQEaIANBgICA/AdyDAELIANBEHQLIQMgAf0ABAAhByABKgJEIQsgASoCQCEOIAEqAjwhDCABKgI4IQ0gAf0ABBAhCSABKgI0QwAAgD8CfyACQf//AXEEQCACQf8HcSEEIAJBgIACcSEFIAJBgPgBcSICQYD4AUcEQCAFQRB0IQUgAkENdEGAgID8AHEgBEENdHJBgICAwANqIAVyIAINAhogBCAEZ0EQayICQf//A3FBCGp0Qf///wNxIAVBgICA2ANyIAJBF3RrcgwCCyAFQRB0IQIgAiAEQQ10ckGAgID+B3IgBA0BGiACQYCAgPwHcgwBCyACQRB0C/0RIAb9HAAgA/0cASAH/eUBIgcgB/3mASIIIAf9DQgJCgsAAQIDAAECAwABAgMgCCAIIAf9DQQFBgcAAQIDAAECAwABAgP95AH95AH94wH9HwBDvTeGNRDgCJUiDwJ/IAAvAQoiAUH//wFxRQRAIAFBEHQMAQsgAUH/B3EhACABQYCAAnEhAyABQYD4AXEiAUGA+AFGBEAgA0EQdCEBIAFBgICA/AdyIABFDQEaIAEgAEENdHJBgICA/gdyDAELIANBEHQhAyABQQ10QYCAgPwAcSAAQQ10ckGAgIDAA2ogA3IgAQ0AGiAAIABnQRBrIgBB//8DcUEIanRB////A3EgA0GAgIDYA3IgAEEXdGtyC76UlAJ9IA0gCSAH/eYBIgcgB/0NCAkKCwABAgMAAQIDAAECAyAHIAcgB/0NBAUGBwABAgMAAQIDAAECA/3kAf3kAf0fACIKQwAAAABfDQAaQwAAgD8gCiAPlCIKIA5gDQAaIA0gDCANkyAKIAuVlJIgCiALYEUNABogDEMAAIA/IAyTIAogC5MgDiALk5WUkguUC6UIAQl/IwBBIGsiByQAIARBfHEiBiADaiEFAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACIANJIgkgAiADayADIAJrIgggAiADSxtBAUZxRQRAIAFBA2siBkEAIAEgBk8bIgYgBSAFIAZLGyEKIAlBACAIQQNLGw0BIAMgCkkNAiADIQUMDgsgA0EBayICIAFPDQMgASAFSSADIAVLcg0EIAYEQCAAIANqIAAgAmotAAAgBvwLAAsgBUEBayECDA0LIAMgCkkNASADIQUMDAsgACADaiELIAAgAmohDEEAIQYDQCADIAZqQQNqIAFPDQQgAiAGaiIFQQNqIAFPDQUgASAFTQ0GIAYgC2oiCCAGIAxqIgktAAA6AAAgBUEBaiINIAFPDQcgCEEBaiAJQQFqLQAAOgAAIAEgBUECaiIFSwRAIAhBAmogCUECai0AADoAACAIQQNqIAlBA2otAAA6AAAgAyAGQQRqIgZqIgUgCk8NDAwBCwsgBSABQfyIxQAQjAcACyABQQRrIQYgAyEFA0AgAkEDaiIDIAFPDQcgAkF8Tw0IIAUgBksNCSAAIAVqIAAgAmooAAA2AAAgAkEEaiECIAogBUEEaiIFSw0ACwwKCyACIAFBpIfFABCMBwALIAMgBSABQbSHxQAQ6gcAC0HEh8UAQS9B9IfFABDrBwALQYSIxQBByABBzIjFABDrBwALIAUgAUHciMUAEIwHAAsgDSABQeyIxQAQjAcAC0EAIAMgAUG8jMUAEOoHAAsgAiACQQRqIAFBvIzFABDqBwALIAdBADYCGCAHQQE2AgwgB0HUnMgANgIIIAdCBDcCECAHQQhqQbyMxQAQjQgACyACIAZqIQILAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIARBA3FBAWsOAwABAg4LIAEgAksNCiACIAFBjInFABCMBwALIAVBAWoiBiABTw0BIAJBAWoiAyABTw0CIAEgAk0NAyABIAVLDQogBSABQdSKxQAQjAcACyAFQQJqIgYgAU8NAyACQQJqIgMgAU8NBCABIAJNDQUgASAFTQ0GIAAgBWogACACai0AADoAACACQQFqIgIgAU8NByAFQQFqIgUgAUkNCSAFIAFBrIzFABCMBwALQayJxQBBL0HcicUAEOsHAAtB7InFAEHIAEG0isUAEOsHAAsgAiABQcSKxQAQjAcAC0HkisUAQS9BlIvFABDrBwALQaSLxQBByABB7IvFABDrBwALIAIgAUH8i8UAEIwHAAsgBSABQYyMxQAQjAcACyACIAFBnIzFABCMBwALIAEgBUsEQCACIQMgBSEGDAILIAUgAUGcicUAEIwHAAsgACAFaiAAIAJqLQAAOgAACyAAIAZqIAAgA2otAAA6AAALIAdBIGokAAvPBwIJfwJ9IAAgASACEOkEAkACQCACBEAgACgChAFBCGohASAAKAKIASEMQQEhCgNAAkACQCAMIAtBA2pLBEAgCkEBayIGIgUgBE8EQCAGIQoMBwsgBCAFayIFQQAgBCAFTxsiBUEBRg0GIAVBAkYNBSADKgIAEMYFvCIHQf///wNxIQggB0GAgICAeHEhBSABQQRrIgkvAQAhDSADQQRqKgIAIQ4gB0GAgID8B3EiBkGAgID8B0YEQCAFQRB2IAhBDXZyQYAEQQAgCBtyQYD4AXIhBQwDCyAFQRB2IQUgBkGAgIC4BEsNASAGQYCAgMQDTwRAIAdBDHYgB0H/3wBxQQBHcSAGQQ12IAhBDXZqQYCAAWogBXJqIQUMAwsgBkGAgICYA0kNAiAIQYCAgARyIgdB/gAgBkEXdiIIa3YhBiAHQR0gCGsiCHZBAXEEfyAGQQMgCHRBAWsgB3FBAEdqBSAGCyAFciEFDAILIAsgC0EEaiAMQdi/wQAQ6gcACyAFQYD4AXIhBQsgA0EIaioCACAJIAVBEHQgDXI2AgAgDhDGBbwiB0H///8DcSEIIAdBgICAgHhxIQUCQCAHQYCAgPwHcSIGQYCAgPwHRgRAIAVBEHYgCEENdnJBgARBACAIG3JBgPgBciEFDAELIAVBEHYhBSAGQYCAgLgETQRAIAZBgICAxANPBEAgB0EMdiAHQf/fAHFBAEdxIAZBDXYgCEENdmpBgIABaiAFcmohBQwCCyAGQYCAgJgDSQ0BIAhBgICABHIiB0H+ACAGQRd2IghrdiEGIAdBHSAIayIIdkEBcQR/IAZBAyAIdEEBayAHcUEAR2oFIAYLIAVyIQUMAQsgBUGA+AFyIQULEMYFvCIIQf///wNxIQkgCEGAgICAeHEhBwJAIAhBgICA/AdxIgZBgICA/AdGBEAgB0EQdiAJQQ12ckGABEEAIAkbckGA+AFyIQcMAQsgB0EQdiEHIAZBgICAuARNBEAgBkGAgIDEA08EQCAIQQx2IAhB/98AcUEAR3EgBkENdiAJQQ12akGAgAFqIAdyaiEHDAILIAZBgICAmANJDQEgCUGAgIAEciIIQf4AIAZBF3YiCWt2IQYgCEEdIAlrIgl2QQFxBH8gBkEDIAl0QQFrIAhxQQBHagUgBgsgB3IhBwwBCyAHQYD4AXIhBwsgASAFQf//A3EgB0EQdHI2AgAgAUEQaiEBIAtBBGohCyAKQQNqIQogA0EMaiEDIAJBAWsiAg0ACwsgAEEBOgDAAQ8LIApBAWohCgsgCiAEQei/wQAQjAcAC6IdAwV+EX8Be0HYtckAKQMAIgMgAa2FIgRCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCAEQtii0e/CqeW/LX6FIgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRB0LXJACkDACIEQn+FfiIFQjiGIAVCgP4Dg0IohoQgBUKAgPwHg0IYhiAFQoCAgPgPg0IIhoSEIAVCCIhCgICA+A+DIAVCGIhCgID8B4OEIAVCKIhCgP4DgyAFQjiIhISEIAMgBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhH6FIAOJIQdByLXJACgCAEUEQAJAIwBBIGsiDiQAAkACQAJAAkACfwJAAkACQAJAQci1yQACfwJAAkACQEHMtckAKAIAQQFqIggEQEHEtckAKAIAIgkgCUEBaiIMQQN2Ig1BB2wgCUEISRsiCUEBdiAISQRAIAlBAWoiCSAIIAggCUkbIghBD0kNAiAIQf////8BTQRAQX8gCEEDdEEHbkEBa2d2IghB/v//P0sNCCAIQQFqIQoMBwsMDgtBACAMRQ0EGkHAtckAKAIAIQsgDSAMQQdxQQBHaiIIQQFNDQIgCyEKIAhB/v///wNxIg0hCQNAIAogCv0AAwAiGf1NQQf9zQH9DAEBAQEBAQEBAQEBAQEBAQH9TiAZ/Qx/f39/f39/f39/f39/f39//VD9zgH9CwMAIApBEGohCiAJQQJrIgkNAAsgCCANRg0DIA1BA3QhCiAIQQFxIQgMAgsMDAtBBCAIQQhxQQhqIAhBBEkbIQoMAwsgCiALaiEKA0AgCiAKKQMAIgNCf4VCB4hCgYKEiJCgwIABgyADQv/+/fv379+//wCEfDcDACAKQQhqIQogCEEBayIIDQALCwJAIAxBCE8EQCALIAxqIAspAAA3AAAMAQsgDEUNACALQQhqIAsgDPwKAAALQQEhCUEAIQgDQCAIIQsgCSEIAkAgC0HAtckAKAIAIglqLQAAQYABRw0AIAkgC0F/c0EFdGohD0EAIAtrQQV0IRQDQEHEtckAKAIAIg1B2LXJACkDACIDIAkgFGpBIGs1AgCFIgRCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCAEQtii0e/CqeW/LX6FIgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRB0LXJACkDACIEQn+FfiIFQjiGIAVCgP4Dg0IohoQgBUKAgPwHg0IYhiAFQoCAgPgPg0IIhoSEIAVCCIhCgICA+A+DIAVCGIhCgID8B4OEIAVCKIhCgP4DgyAFQjiIhISEIAMgBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhH6FIAOJpyITcSIQIQogCSAQaikAAEKAgYKEiJCgwIB/gyIDUARAQQghEQNAIAogEWohCiARQQhqIREgCSAKIA1xIgpqKQAAQoCBgoSIkKDAgH+DIgNQDQALCyAJIAN6p0EDdiAKaiANcSIKaiwAAEEATgRAIAkpAwBCgIGChIiQoMCAf4N6p0EDdiEKCyAKIBBrIAsgEGtzIA1xQQhPBEAgCSAKaiIQLQAAIBAgE0EZdiIQOgAAQcC1yQAoAgAgCkEIayANcWpBCGogEDoAACAJIApBf3NBBXRqIQlB/wFGBEBBxLXJACgCACEKQcC1yQAoAgAgC2pB/wE6AABBwLXJACgCACAKIAtBCGtxakEIakH/AToAACAJQRBqIA9BEGr9AAAA/QsAACAJIA/9AAAA/QsAAAwDCyAPIAlBIBCwA0HAtckAKAIAIQkMAQsLIAkgC2ogE0EZdiIJOgAAQcC1yQAoAgAgDSALQQhrcWpBCGogCToAAAsgCCAIIAxJIgpqIQkgCg0AC0HEtckAKAIAIgggCEEBakEDdkEHbCAIQQhJGwtBzLXJACgCAGs2AgAMBQsgCkEIaiIIIApBBXQiC2oiCSAISSAJQfj///8HS3INACAJEHEiCUUNASAJIAtqIQsgCARAIAtB/wEgCPwLAAsgCkEBayINIApBA3ZBB2wgDUEISRshEUHAtckAKAIAIQlBzLXJACgCACIQDQJBAAwDCyAOQQA2AhggDkEBNgIMIA5BxLXEADYCCCAOQgQ3AhAgDkEIakGYtcQAEI0ICwALIAtBCGohEyAJQSBrIRQgCSkDAEJ/hUKAgYKEiJCgwIB/gyEGQQAhCiAJIQgDQCAGUARAA0AgCkEIaiEKIAhBCGoiCCkDAEKAgYKEiJCgwIB/gyIDQoCBgoSIkKDAgH9RDQALIANCgIGChIiQoMCAf4UhBgsgCyANQdi1yQApAwAiAyAUIAZ6p0EDdiAKaiIVQQV0azUCAIUiBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhELSgaqbq/qC16d/fiIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISEIARC2KLR78Kp5b8tfoUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhEHQtckAKQMAIgRCf4V+IgVCOIYgBUKA/gODQiiGhCAFQoCA/AeDQhiGIAVCgICA+A+DQgiGhIQgBUIIiEKAgID4D4MgBUIYiEKAgPwHg4QgBUIoiEKA/gODIAVCOIiEhIQgAyAEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEfoUgA4mnIhZxIgxqKQAAQoCBgoSIkKDAgH+DIgNQBEBBCCEPA0AgDCAPaiEMIA9BCGohDyALIAwgDXEiDGopAABCgIGChIiQoMCAf4MiA1ANAAsLIAZCAX0gBoMhBiALIAN6p0EDdiAMaiANcSIMaiwAAEEATgRAIAspAwBCgIGChIiQoMCAf4N6p0EDdiEMCyALIAxqIBZBGXYiDzoAACATIAxBCGsgDXFqIA86AAAgCyAMQX9zQQV0aiIMQRBqIAkgFUF/c0EFdGoiD0EQav0AAAD9CwAAIAwgD/0AAAD9CwAAIBBBAWsiEA0AC0HAtckAKAIAIQlBzLXJACgCAAshCkHAtckAIAs2AgBBxLXJACgCACEIQcS1yQAgDTYCAEHItckAIBEgCms2AgAgCEUNACAIIAhBBXRBJ2pBYHEiCmpBCWoiCEUNACAJIAprIglBBGsoAgAiCkF4cSILQQRBCCAKQQNxIgobIAhqSQ0BIApBACALIAhBJ2pLGw0CIAkQogILIA5BIGokAAwDC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgDkEANgIYIA5BATYCDCAOQcS1xAA2AgggDkIENwIQIA5BCGpBmLXEABCNCAALC0HEtckAKAIAIgogB6dxIQggB0IZiCIFQv8Ag0KBgoSIkKDAgAF+IQZBwLXJACgCACEJA0ACfwJAAkAgCCAJaikAACIEIAaFIgNCf4UgA0KBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIDUEUEQANAIAEgCSADeqdBA3YgCGogCnFBBXRrIgtBIGsoAgBGDQIgA0IBfSADgyIDUEUNAAsLIARCgIGChIiQoMCAf4MhAyAXRQRAIANQDQIgA3qnQQN2IAhqIApxIRILQQEgAyAEQgGGg1ANAhogCSASaiwAACIIQQBOBEAgCSAJKQMAQoCBgoSIkKDAgH+DeqdBA3YiEmotAAAhCAsgCSASaiAFp0H/AHEiCzoAACAJIBJBCGsgCnFqQQhqIAs6AABByLXJAEHItckAKAIAIAhBAXFrNgIAIABBgICAgHg2AgBBzLXJAEHMtckAKAIAQQFqNgIAIAkgEkEFdGsiCEEcayIAQRhqIAJBGGooAgA2AgAgACACKQIANwIAIAhBIGsgATYCACAAQQhqIAJBCGr9AAIA/QsCAA8LIAAgC0EcayIB/QACAP0LAgAgASACKQIANwIAIABBGGogAUEYaiIIKAIANgIAIABBEGogAUEQaikCADcCACABQQhqIAJBCGr9AAIA/QsCACAIIAJBGGooAgA2AgAPC0EACyEXIBhBCGoiGCAIaiAKcSEIDAALAAupBwEffyMAQRBrIgYkAAJAAkAgA0EDbCIKQf////8DSw0AIANBDGwiBEH9////B08NAAJAIARFBEBBBCEHDAELIAohCCAEEHEiB0UNAgsgBkEANgIMIAYgBzYCCCAGIAg2AgQCQAJAAkACQAJAAkACQAJAAkACQAJAIAMEQCACIANrIgRBACACIARPGyENIAIgCmsiBEEAIAIgBE8bIQ4gAiADQQlsIgtrIgRBACACIARPGyEPIAIgA0EGbCIMayIEQQAgAiAETxshECABIANqIREgASAKaiESIAEgA0ECdCITaiEUIAEgA0EHbCIVaiEWIAEgA0EKbCIXaiEYIAEgA0EBdCIZaiEaIAEgA0EFbCIbaiEcIAEgA0EDdCIdaiEeIAEgA0ELbCIfaiEgIAEgDGohISABIAtqISJBCCEIQQAhBANAIAIgBEYEQCAEIQUMDQsgBCAORg0JIAQgEEYNCiAEIA9GDQsgASAEai0AACAEIBJqLQAAQQh0ciAEICFqLQAAQRB0ciAEICJqLQAAQRh0ciEJIAYoAgQgBUYEQCAGQQRqQezqxwAQ+gUgBigCCCEHCyAHIAhqQQhrIAk2AgAgBiAFQQFqIgU2AgwgBCANRg0FIAQgE2ogAk8NAiAEIBVqIAJPDQMgBCAXaiACTw0EIAQgEWotAAAgBCAUai0AAEEIdHIgBCAWai0AAEEQdHIgBCAYai0AAEEYdHIhCSAGKAIEIAVGBEAgBkEEakHs6scAEPoFIAYoAgghBwsgByAIakEEayAJNgIAIAYgBUEBaiIJNgIMIAQgGWoiBSACTw0MIAQgG2ogAk8NBiAEIB1qIAJPDQcgBCAfaiACTw0IIAQgGmotAAAgBCAcai0AAEEIdHIgBCAeai0AAEEQdHIgBCAgai0AAEEYdHIhBSAGKAIEIAlGBEAgBkEEakHs6scAEPoFIAYoAgghBwsgByAIaiAFNgIAIAYgCUEBaiIFNgIMIAhBDGohCCADIARBAWoiBEcNAAsLIAAgBikCBDcCACAAQQhqIAZBDGooAgA2AgAgBkEQaiQADwsgA0ECdCAEaiEFDAkLIANBB2wgBGohBQwICyADQQpsIARqIQUMBwsgAyAEaiEFDAYLIANBBWwgBGohBQwFCyADQQN0IARqIQUMBAsgA0ELbCAEaiEFDAMLIAQgCmohBQwCCyAEIAxqIQUMAQsgBCALaiEFCyAFIAJB/OrHABCMBwALQdzqxwAQ/wcLAAuwCAMDfwF8BH0jAEEQayICJAACQCABKAIAQZSAgIB4RgRAAn0CQCAAAn8CQAJAAkACfQJAAkACQAJ9AkACQCABKAIMIgQEQAJ9AkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAggiASgCACIDQYCAgIB4cyADQQBOG0EBaw4KCgABAgMEBQYHCAkLIAEvAQSzDAoLIAEoAgSzDAkLIAEpAwi1DAgLIAEsAASyDAcLIAEuAQSyDAYLIAEoAgSyDAULIAEpAwi0DAQLIAEqAgQMAwsgASsDCCIFtkMAAIA/QwAAgL8gBb1CAFkbmAwCCyABIAJBD2pB2OfAABCVCAwNCyABLQAEswshBiAEQQFGDQQCQAJAAkACQAJAAkACQAJAAkBBFSABKAIQIgNBgICAgHhzIANBAE4bQQFrDgoLAAECAwQFBgcICgsgAS8BFLMMCwsgASgCFLMMCgsgASkDGLUMCQsgASwAFLIMCAsgAS4BFLIMBwsgASgCFLIMBgsgASkDGLQMBQsgASoCFAwECyABKwMYIgW2QwAAgD9DAACAvyAFvUIAWRuYDAMLQQAgAkEPakGk4sAAENsGDAoLIAFBEGogAkEPakHY58AAEJUIDAkLIAEtABSzCyEHIARBAkYNBAJAAkACQAJAAkACQAJAAkACQEEVIAEoAiAiA0GAgICAeHMgA0EAThtBAWsOCgsAAQIDBAUGBwgKCyABLwEkswwLCyABKAIkswwKCyABKQMotQwJCyABLAAksgwICyABLgEksgwHCyABKAIksgwGCyABKQMotAwFCyABKgIkDAQLIAErAygiBbZDAACAP0MAAIC/IAW9QgBZG5gMAwtBASACQQ9qQaTiwAAQ2wYMBgsgAUEgaiACQQ9qQdjnwAAQlQgMBQsgAS0AJLMLIQggBEEDRg0CAkACQAJAAkACQAJAAkACQAJAQRUgASgCMCIDQYCAgIB4cyADQQBOG0EBaw4KDQABAgMEBQYHCAoLIAEvATSzDA0LIAEoAjSzDAwLIAEpAzi1DAsLIAEsADSyDAoLIAEuATSyDAkLIAEoAjSyDAgLIAEpAzi0DAcLIAEqAjQMBgsgASsDOCIFtkMAAIA/QwAAgL8gBb1CAFkbmAwFC0ECIAJBD2pBpOLAABDbBgwCCyABQTBqIAJBD2pB2OfAABCVCAwBC0EDIAJBD2pBpOLAABDbBgs2AgQgAEEBNgIADAMLIAEtADSzCyEJIARBBEcEQCACQQQ2AgggBEH8////AGpB/////wBxQQRqIAJBCGpB6JXBABDbBiEBIABBATYCACAAIAE2AgQMAgsgACAJOAIQIAAgCDgCDCAAIAc4AgggACAGOAIEIABBADYCAAwBCyABIAJBD2pBpOLAABCVCCEBIABBATYCACAAIAE2AgQLIAJBEGokAAvGCAEFfyAAQQhrIgEgAEEEaygCACIDQXhxIgBqIQICQAJAIANBAXENACADQQJxRQ0BIAEoAgAiAyAAaiEAIAEgA2siAUHYuskAKAIARgRAIAIoAgRBA3FBA0cNAUHQuskAIAA2AgAgAiACKAIEQX5xNgIEIAEgAEEBcjYCBCACIAA2AgAPCyABIAMQ1gQLAkACQAJAAkACQAJAAkAgAigCBCIDQQJxRQRAIAJB3LrJACgCAEYNAiACQdi6yQAoAgBGDQMgAiADQXhxIgIQ1gQgASAAIAJqIgBBAXI2AgQgACABaiAANgIAIAFB2LrJACgCAEcNAUHQuskAIAA2AgAPCyACIANBfnE2AgQgASAAQQFyNgIEIAAgAWogADYCAAsgAEGAAkkNAkEfIQIgAUIANwIQIABB////B00EQCAAQSYgAEEIdmciAmt2QQFxIAJBAXRrQT5qIQILIAEgAjYCHCACQQJ0QbC3yQBqIQNBASACdCIEQcy6yQAoAgBxDQMgAyABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIQcy6yQBBzLrJACgCACAEcjYCAAwEC0HcuskAIAE2AgBB1LrJAEHUuskAKAIAIABqIgA2AgAgASAAQQFyNgIEQdi6yQAoAgAgAUYEQEHQuskAQQA2AgBB2LrJAEEANgIACyAAQei6yQAoAgAiAk0NBUHcuskAKAIAIgBFDQVB1LrJACgCACIDQSlJDQRBsLjJACEBA0AgACABKAIAIgVPBEAgACAFIAEoAgRqSQ0GCyABKAIIIQEMAAsAC0HYuskAIAE2AgBB0LrJAEHQuskAKAIAIABqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAA8LAn9ByLrJACgCACICQQEgAEEDdnQiA3FFBEBByLrJACACIANyNgIAIABB+AFxQcC4yQBqIgAMAQsgAEH4AXEiAkHAuMkAaiEAIAJByLjJAGooAgALIQIgACABNgIIIAIgATYCDCABIAA2AgwgASACNgIIDwsCQAJAIAAgAygCACIDKAIEQXhxRgRAIAMhAgwBCyAAQRkgAkEBdmtBACACQR9HG3QhBANAIAMgBEEddkEEcWoiBSgCECICRQ0CIARBAXQhBCACIQMgAigCBEF4cSAARw0ACwsgAigCCCIAIAE2AgwgAiABNgIIIAFBADYCGCABIAI2AgwgASAANgIIDAELIAVBEGogATYCACABIAM2AhggASABNgIMIAEgATYCCAtBACEBQfC6yQBB8LrJACgCAEEBayIANgIAIAANAUG4uMkAKAIAIgAEQANAIAFBAWohASAAKAIIIgANAAsLQfC6yQBB/x8gASABQf8fTRs2AgAPC0G4uMkAKAIAIgEEQANAIARBAWohBCABKAIIIgENAAsLQfC6yQBB/x8gBCAEQf8fTRs2AgAgAiADTw0AQei6yQBBfzYCAAsLrgcBCX8gACABIAIQzAMCQAJAIAIEQCAAKAJgQQhqIQwgACgCZCENQQEhCgNAAkACQCANIAtBA2pLBEAgCkEBayIBIARPBEAgASEKDAcLIAQgAWsiAUEAIAEgBE0bIgFBAUYNBiABQQJGDQUgAygCACIHQf///wNxIQUgB0GAgICAeHEhCSADQQRqKAIAIQEgB0GAgID8B3EiBkGAgID8B0YEQCAJQRB2IAVBDXZyQYAEQQAgBRtyQYD4AXIhCQwDCyAJQRB2IQkgBkGAgIC4BEsNASAGQYCAgMQDTwRAIAdBDHYgB0H/3wBxQQBHcSAGQQ12IAVBDXZqQYCAAWogCXJqIQkMAwsgBkGAgICYA0kNAiAFQYCAgARyIgVB/gAgBkEXdiIGa3YhByAFQR0gBmsiBnZBAXEEfyAHQQMgBnRBAWsgBXFBAEdqBSAHCyAJciEJDAILIAsgC0EEaiANQYjbwAAQ6gcACyAJQYD4AXIhCQsgA0EIaigCACEHIAFB////A3EhCCABQYCAgIB4cSEGAkAgAUGAgID8B3EiBUGAgID8B0cEQCAGQRB2IQYgBUGAgIC4BE0EQCAFQYCAgMQDTwRAIAFBDHYgAUH/3wBxQQBHcSAFQQ12IAhBDXZqQYCAAWogBnJqIQYMAwsgBUGAgICYA0kNAiAIQYCAgARyIghB/gAgBUEXdiIFa3YhASAIQR0gBWsiBXZBAXEEfyABQQMgBXRBAWsgCHFBAEdqBSABCyAGciEGDAILIAZBgPgBciEGDAELIAZBEHYgCEENdnJBgARBACAIG3JBgPgBciEGCyAHQf///wNxIQggB0GAgICAeHEhAQJAIAdBgICA/AdxIgVBgICA/AdHBEAgAUEQdiEBIAVBgICAuARNBEAgBUGAgIDEA08EQCAHQQx2IAdB/98AcUEAR3EgBUENdiAIQQ12akGAgAFqIAFyaiEBDAMLIAVBgICAmANJDQIgCEGAgIAEciIIQf4AIAVBF3YiBWt2IQcgCEEdIAVrIgV2QQFxBH8gB0EDIAV0QQFrIAhxQQBHagUgBwsgAXIhAQwCCyABQYD4AXIhAQwBCyABQRB2IAhBDXZyQYAEQQAgCBtyQYD4AXIhAQsgDCABOwEAIAxBBGsgCUH//wNxIAZBEHRyNgIAIAxBEGohDCALQQRqIQsgCkEDaiEKIANBDGohAyACQQFrIgINAAsLIABBAToAuAEPCyAKQQFqIQoLIAogBEGY28AAEIwHAAutBwEJfyAAIAEgAhDpBAJAAkAgAgRAIAAoAoQBIQwgACgCiAEhDUEBIQkDQAJAAkAgDSALQQNqSwRAIAlBAWsiASAETwRAIAEhCQwHCyAEIAFrIgFBACABIARNGyIBQQFGDQYgAUECRg0FIAMoAgAiCEH///8DcSEHIAhBgICAgHhxIQYgA0EEaigCACEBIAhBgICA/AdxIgVBgICA/AdGBEAgBkEQdiAHQQ12ckGABEEAIAcbckGA+AFyIQYMAwsgBkEQdiEGIAVBgICAuARLDQEgBUGAgIDEA08EQCAIQQx2IAhB/98AcUEAR3EgBUENdiAHQQ12akGAgAFqIAZyaiEGDAMLIAVBgICAmANJDQIgB0GAgIAEciIIQf4AIAVBF3YiB2t2IQUgCEEdIAdrIgd2QQFxBH8gBUEDIAd0QQFrIAhxQQBHagUgBQsgBnIhBgwCCyALIAtBBGogDUGYu8EAEOoHAAsgBkGA+AFyIQYLIANBCGooAgAhCCABQf///wNxIQogAUGAgICAeHEhBQJAIAFBgICA/AdxIgdBgICA/AdGBEAgBUEQdiAKQQ12ckGABEEAIAobckGA+AFyIQUMAQsgBUEQdiEFIAdBgICAuARNBEAgB0GAgIDEA08EQCABQQx2IAFB/98AcUEAR3EgB0ENdiAKQQ12akGAgAFqIAVyaiEFDAILIAdBgICAmANJDQEgCkGAgIAEciIKQf4AIAdBF3YiB2t2IQEgCkEdIAdrIgd2QQFxBH8gAUEDIAd0QQFrIApxQQBHagUgAQsgBXIhBQwBCyAFQYD4AXIhBQsgDCAGQf//A3EgBUEQdHI2AgAgCEH///8DcSEFIAhBgICAgHhxIQECQCAIQYCAgPwHcSIGQYCAgPwHRgRAIAFBEHYgBUENdnJBgARBACAFG3JBgPgBciEBDAELIAFBEHYhASAGQYCAgLgETQRAIAZBgICAxANPBEAgCEEMdiAIQf/fAHFBAEdxIAZBDXYgBUENdmpBgIABaiABcmohAQwCCyAGQYCAgJgDSQ0BIAVBgICABHIiCEH+ACAGQRd2IgZrdiEFIAhBHSAGayIGdkEBcQR/IAVBAyAGdEEBayAIcUEAR2oFIAULIAFyIQEMAQsgAUGA+AFyIQELIAxBBGogATsBACAMQRBqIQwgC0EEaiELIAlBA2ohCSADQQxqIQMgAkEBayICDQALCyAAQQE6AMABDwsgCUEBaiEJCyAJIARBqLvBABCMBwALqggCB38CfiMAQUBqIgIkAAJAAkACQAJAAkAgASgCFCIDIAEoAhAiBEkEQCABKAIMIQgCfgJAA0AgAyAIai0AACIFQQlrIgZBF0tBASAGdEGTgIAEcUVyDQEgASADQQFqIgM2AhQgAyAERw0ACyAEIQNCAAwBC0KAAgsgBa1CEIaEQoCCuANRDQELAkACQAJAIAJBEGogASgCDCIFIAQgAyAESQR/A0ACQCADIAVqLQAAIgZBCWsOJQAABAQABAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAMECyABIANBAWoiAzYCFCADIARHDQALIAQFIAMLQQFqIgEgBCABIARJGxD5ASACKAIUIQEgAigCECEEQRQQcSIDRQ0EIAMgBDYCDCADQQU2AgAgAyABNgIQDAYLIAEgA0EBajYCFCACQRhqIAFBABDHAyACKQMYIgpCA1ENBCACKQMgIQkCQAJAAkAgCqdBAWsOAgABAgsgCUKAgICAEFQNAyACQQE6ACggAiAJNwMwIAJBKGogAkE/akGY58AAEN4GIAEQ6wUhAwwHCyAJQoCAgIAQVA0CIAJBAjoAKCACIAk3AzAgAkEoaiACQT9qQZjnwAAQ3gYgARDrBSEDDAYLIAJBAzoAKCACIAk3AzAgAkEoaiACQT9qQZjnwAAQ3wYgARDrBSEDDAULIAZBMGtB/wFxQQpPBEAgASACQT9qQZjnwAAQ7gEgARDrBSEDDAULIAJBGGogAUEBEMcDIAIpAxgiCkIDUQRAIAIoAiAhAwwFCyACKQMgIQkCfwJAAkACQCAKp0EBaw4CAAECCyAJQoCAgIAQVA0DIAJBAToAKCACIAk3AzAgAkEoaiACQT9qQZjnwAAQ3gYMAgsgCUKAgICAEFQNAiACQQI6ACggAiAJNwMwIAJBKGogAkE/akGY58AAEN4GDAELIAJBAzoAKCACIAk3AzAgAkEoaiACQT9qQZjnwAAQ3wYLIAEQ6wUhAwwECyAAIAk+AgQgAEEBNgIADAQLIAEgA0EBaiIHNgIUAkACQAJAIAQgB00NACABIANBAmoiBTYCFCAHIAhqLQAAQfUARw0BIAUgByAEIAQgB0kbIgdGDQAgASADQQNqIgY2AhQgBSAIai0AAEHsAEcEQCAGIQUMAgsgBiAHRg0AIAEgA0EEaiIFNgIUIAYgCGotAABB7ABHDQEgAEEANgIADAYLIAIgCCAEIAcQ+QEgAigCBCEEIAIoAgAhAUEUEHEiA0UNAiADQQU2AgAMAQsgAkEIaiAIIAQgBRD5ASACKAIMIQQgAigCCCEBQRQQcSIDRQ0BIANBCTYCAAsgAyABNgIMIAAgAzYCBCAAQQI2AgAgAyAENgIQDAMLAAsgAigCICEDCyAAQQI2AgAgACADNgIECyACQUBrJAALmAcCDn8CfiMAQdAAayICJAAgACgCCCEDIAAoAgQhBQJAAn9BASABKAIAIghBIiABKAIEIgooAhAiCxECAA0AGiACIAM2AgggAiAFNgIEIAJBL2qtQoCAgICAB4QhEANAAkAgAkEMaiACQQRqEO0DIAgCfwJAIAIoAgwiBQRAIAIoAhghDCACKAIUIQ1BACACKAIQIgNFDQIaIAMgBWohD0EAIQAgBSEBQQAhBwNAAn8gASwAACIEQQBOBEAgBEH/AXEhBCABQQFqDAELIAEtAAFBP3EhBiAEQR9xIQkgBEFfTQRAIAlBBnQgBnIhBCABQQJqDAELIAEtAAJBP3EgBkEGdHIhBiAEQXBJBEAgBiAJQQx0ciEEIAFBA2oMAQsgCUESdEGAgPAAcSABLQADQT9xIAZBBnRyciEEIAFBBGoLIQkgAkEcaiAEQYGCBBCBAyACLQApIAItAChrQf8BcUEBRwRAAkACQCAAIAdLDQACQCAARQ0AIAAgA08EQCAAIANHDQIMAQsgACAFaiwAAEG/f0wNAQsCQCAHRQ0AIAMgB00EQCADIAdGDQEMAgsgBSAHaiwAAEG/f0wNAQsgCCAAIAVqIAcgAGsgCigCDBEAAEUNAQwHCyAFIAMgACAHQYCKwwAQuwkACyACQThqIAJBJGopAgA3AwAgAiACKQIcIhE3AzAgAi0APCEAAkAgAi0APSIGQYEBTwRAIBGnIQ4DQCAAQf8BcSAGTw0CIABBAWohACAIIA4gCxECAEUNAAsMBwsgACAGIAAgBksbIQYDQCAAIAZGDQEgAkEwaiAAaiEOIABBAWohACAIIA4tAAAgCxECAEUNAAsMBgsCf0EBIARBgAFJDQAaQQIgBEGAEEkNABpBA0EEIARBgIAESRsLIAdqIQALIAcgAWsgCWohByAJIgEgD0cNAAsMAQsgCEEiIAsRAgAMBAtBACAARQ0AGiAAIANPBEAgAyAAIANGDQEaDAULIAAgBWosAABBQEgNBCAACyIBIAVqIAMgAWsgCigCDBEAAA0AIAxFDQEDQCACIA0tAAA6AC8gAkEBNgJEIAJB6InDADYCQCACQQE2AjQgAkHgicMANgIwIAJBATYCPCACIBA3A0ggAiACQcgAajYCOCAIIAogAkEwahDBAw0BIA1BAWohDSAMQQFrIgwNAAsMAQsLQQELIAJB0ABqJAAPCyAFIAMgACADQcyJwwAQuwkAC+MHAwZ/B30BeyMAQZABayICJAAgAiAAKAIAIgb9AAIAIg8gD/0NAAECAwQFBgcICQoLCAkKC/0LBAAgAgJ/IA/9GQYiA0H//wFxRQRAIANBEHQMAQsgA0H/B3EhBCADQYCAAnEhBSADQYD4AXEiA0GA+AFGBEAgBUEQdCIDQYCAgPwHciAERQ0BGiADIARBDXRyQYCAgP4HcgwBCyAFQRB0IgUgA0ENdEGAgID8AHEgBEENdHJBgICAwANqciADDQAaIAQgBGdBEGsiBEH//wNxQQhqdEH///8DcSAFQYCAgNgDciAEQRd0a3ILNgIcIAJDAAAAACAAKAIEIgAqAgAgAC0AHEECRiIEGyIIIAZBEGotAAAiA7NDAAB/Q5VDAACAPyAAKgIEIAQbIAiTIgmUkv0TIAggBkEOai8BACIFIANBEHRyQf8BcbNDAAB/Q5UgCZSS/SAAIAggBUEIdrNDAAB/Q5UgCZSS/SAB/QsEICAGQRFqLwAAIAZBE2otAAAiA0EQdHIiBUEIdiEHQwAAEEEgACoCDCAEGyEJQwAAQMEgACoCCCAEGyEIIAVB/wFxBEAgCCAJIAiTQwAAfkOVIAVBAWtB/wFxs5SSEIkEIQsLIAdB/wFxBEAgCCAJIAiTQwAAfkOVIAdBAWtB/wFxs5SSEIkEIQoLIAIgAwR9IAggCSAIk0MAAH5DlSADQQFrQf8BcbOUkhCJBAVDAAAAAAv9EyAL/SAAIAr9IAH9CwQwQwAAgD8gBkEUai8BACIAQQh2s/0TIAAgBkEWai0AACIGQRB0ckH/AXGz/SAB/QwAAH9DAAB/QwAAf0MAAH9D/ecBIg8gD/3kAf0MAACAvwAAgL8AAIC/AACAv/3kASIP/R8BIgqLkyAP/R8AIgyLkyIIjEMAAAAAEOAIIQkgAiAGs0MAAH9DlUMAAAA/lEPbD0lAlCINEJkCIgsgCiAJIAmMIg4gD/0MAAAAAAAAAAAAAAAAAAAAAP1G/U0iD/3HAf0bAkEBcRuSIgogCCAIlCAKIAqUIAwgCSAOIA/9GwBBAXEbkiIJIAmUkpKRIgqVlP0TIAsgCSAKlZT9IAEgCyAIIAqVlP0gAiANEJsC/SAD/QsEQCACIAJBQGutQoCAgIDAAoQ3A3AgAiACQTBqrUKAgICAoAKENwNoIAIgAkEgaq1CgICAgKAChDcDYCACIAJBHGqtQoCAgIDQAoQ3A1ggAiACrUKAgICAoAKENwNQIAEoAgAgASgCBCACQgU3AoQBIAJBBjYCfCACQeCqxwA2AnggAiACQdAAajYCgAEgAkH4AGoQwQMgAkGQAWokAAuyBwEJfyMAQdAAayIBJABBgYDEACECAkACQCAAKAIEIgQgACgCECIDSQ0AIAAgBCADayIENgIEIAAgACgCACICIANqIgg2AgACQAJAIANBAkYEQCACLQAAIgNBwQBrQV9xQQpqIANBMGsgA0E5SxsiBUEPSw0EIAItAAEiA0HBAGtBX3FBCmogA0EwayADQTlLGyIDQRBPDQQgBUEEdCADciIFwEEATg0BQYCAxAAhAiAFQf8BcSIDQcABSQ0DAn9BAiADQeABSQ0AGkEDIANB8AFJDQAaIANB+AFPDQRBBAshA0EAIQIgAUEAOgATIAFBADsAESABIAU6ABAgASADNgIMIANBAXRBAmshCSABIAFBEGo2AgggAUERaiEFA0AgBEECSQRAQYCAxAAhAgwFCyAAIARBAmsiBDYCBCAAIAIgCGoiBkECajYCACAGLQAAIgdBwQBrQV9xQQpqIAdBMGsgB0E5SxsiB0EPSw0FIAZBAWotAAAiBkHBAGtBX3FBCmogBkEwayAGQTlLGyIGQRBPDQUgBSAHQQR0IAZyOgAAIAVBAWohBSAJIAJBAmoiAkcNAAsMAgtBpPjGAEEoQbywxQAQ6wcAC0EBIQMgAUEBNgIMIAFBADoAEyABQQA7ABEgASAFOgAQIAEgAUEQajYCCAsgAUE4aiABQRBqIAMQ+wJBgIDEACECIAEoAjgNACABKAI8IQAgASABKAJAIgI2AhggASAANgIUIAAgAmohAwJAIAJFDQAgAwJ/IAAsAAAiAkEATgRAIAJB/wFxIQIgAEEBagwBCyAALQABQT9xIQUgAkEfcSEEIAJBX00EQCAEQQZ0IAVyIQIgAEECagwBCyAALQACQT9xIAVBBnRyIQUgAkFwSQRAIAUgBEEMdHIhAiAAQQNqDAELIARBEnRBgIDwAHEgAC0AA0E/cSAFQQZ0cnIhAiAAQQRqCyIERwRAIAQsAAAaDAELIAJBgIDEAEcNAQsgAQJ/QQAhAiADIABrIgRBEE8EQCAAIAQQxwIMAQsgACADRwRAA0AgAiAALAAAQb9/SmohAiAAQQFqIQAgBEEBayIEDQALCyACCzYCNCABQQQ2AiAgAUG8scUANgIcIAFCAzcCKCABIAFBNGqtQoCAgIAQhDcDSCABIAFBFGqtQoCAgICgDYQ3A0AgASABQQhqrUKAgICAsA2ENwM4IAEgAUE4ajYCJCABQRxqQdyxxQAQjQgACyABQdAAaiQAIAIPC0GssMUAEN0JAAvpBwIGfQZ/AkACQAJAIAQEQEMAAHxCIAWVIQUgAUEBdiEQIAFBAWpBAXYhEQNAIAxBCWoiDyADSyANQZuOx+MBS3INA0MAAHxCQwAAfMIgBSACQSBqKgIAlCIHIAdDAAB8wl0bIgcgB0MAAHxCXhsQuQchB0MAAHxCQwAAfMIgBSACQRxqKgIAlCIIIAhDAAB8wl0bIgggCEMAAHxCXhsQuQchCEMAAHxCQwAAfMIgBSACQRBqKgIAlCIJIAlDAAB8wl0bIgkgCUMAAHxCXhsQuQchCUMAAHxCQwAAfMIgBSACQRRqKgIAlCIKIApDAAB8wl0bIgogCkMAAHxCXhsQuQchCkMAAHxCQwAAfMIgBSACQRhqKgIAlCILIAtDAAB8wl0bIgsgC0MAAHxCXhsQuQchCyANIBFGDQQgAEH/AEMAAHxCQwAAfMIgBSACKgIAlCIGIAZDAAB8wl0bIgYgBkMAAHxCXhsQuQciBvwAQYB/IAZDAAAAw2AbIAZDAAD+Ql4bQQAgBiAGWxtB/wBxQf8AQwAAfEJDAAB8wiAFIAJBBGoqAgCUIgYgBkMAAHzCXRsiBiAGQwAAfEJeGxC5ByIG/ABBgH8gBkMAAADDYBsgBkMAAP5CXhtBACAGIAZbG0H/AHFBB3RyQf8AQwAAfEJDAAB8wiAFIAJBCGoqAgCUIgYgBkMAAHzCXRsiBiAGQwAAfEJeGxC5ByIG/ABBgH8gBkMAAADDYBsgBkMAAP5CXhtBACAGIAZbG0H/AHFBDnRyQf8AQwAAfEJDAAB8wiAFIAJBDGoqAgCUIgYgBkMAAHzCXRsiBiAGQwAAfEJeGxC5ByIG/ABBgH8gBkMAAADDYBsgBkMAAP5CXhtBACAGIAZbG0H/AHFBFXRyQf8AIAn8AEGAfyAJQwAAAMNgGyAJQwAA/kJeG0EAIAkgCVsbQf8AcSIMQRx0cjYCACANIBBGDQIgAEEEakH/ACAI/ABBgH8gCEMAAADDYBsgCEMAAP5CXhtBACAIIAhbG0H/AHFBEXRB/wAgB/wAQYB/IAdDAAAAw2AbIAdDAAD+Ql4bQQAgByAHWxtB/wBxQRh0ckH/ACAK/ABBgH8gCkMAAADDYBsgCkMAAP5CXhtBACAKIApbG0H/AHFBA3QgDEEEdnJB/wAgC/wAQYB/IAtDAAAAw2AbIAtDAAD+Ql4bQQAgCyALWxtB/wBxQQp0cnI2AgAgAEEIaiEAIA5BAmohDiACQSRqIQIgDyEMIAQgDUEBaiINRw0ACwsPCyAOQQFqIAFBoM7HABCMBwALIAwgDyADQbDOxwAQ6gcACyAOIAFBkM7HABCMBwAL/AoCC3sIfyADBEAgBSABIAJrIhFBACABIBFPGyIWIAUgFkkbIhEgA0EBayISIBEgEkkbQQFqIhJBBEsEQCAC/REhDv0MAAAAAAEAAAACAAAAAwAAACELIAQhESASIBJBA3EiE0EEIBMbayITIRIDQCAAIAsgDv2uASIM/RsAQRhsaiAR/QACACIG/Qz//38A//9/AP//fwD//38A/U4iB0EN/a0BIAb9DAAAAIAAAACAAAAAgAAAAID9TkEQ/a0BIgj9UCIJIAf9DAAAAAAAAAAAAAAAAAAAAAD9OP0MAAIAAAACAAAAAgAAAAIAAP1O/VAgBv0NAAEEBQgJDA0AAQABAAEAAf0MAHwAfAB8AHwAfAB8AHwAfCIN/VAgCCAG/Q0AAQQFCAkMDQABAAEAAQABIA39UCAJIAb9DAAAgH8AAIB/AACAfwAAgH8iDf1OIglBDf2tAf0MAEAAAABAAAAAQAAAAEAAAP2uAf1QIAb9DQABBAUICQwNAAEAAQABAAEgBv0MABAAAAAQAAAAEAAAABAAAP1OIAr9OCAG/Qz/LwAA/y8AAP8vAAD/LwAA/U4gCv04/U79DAEAAAABAAAAAQAAAAEAAAD9TiAG/Q0AAQQFCAkMDQABAAEAAQAB/Y4BIAj9DAAAgPoAAID6AACA+gAAgPoiCCAH/QwAAIAAAACAAAAAgAAAAIAA/VAiBv0bAP0MfgAAAH4AAAB+AAAAfgAAACAJQRf9rQEiD/2xASIH/RsAdv0RIAb9GwEgB/0bAXb9HAEgBv0bAiAH/RsCdv0cAiAG/RsDIAf9GwN2/RwDIAn9DAAAgMcAAIDHAACAxwAAgMf9rgEiECAI/ToiCEEB/QwdAAAAHQAAAB0AAAAdAAAAIA/9sQH9DB8AAAAfAAAAHwAAAB8AAAD9TiIH/RsAIhV0/RFBASAH/RsBIhR0/RwBQQEgB/0bAiIXdP0cAkEBIAf9GwMiGHT9HAMgBv1OIAr9OP1QQQMgFXT9EUEDIBR0/RwBQQMgF3T9HAJBAyAYdP0cA/0M//////////////////////2uASAG/U4gCv04/U79sQEgCP1S/VAgBv0NAAEEBQgJDA0AAQABAAEAASAQ/QwBAIAOAQCADgEAgA4BAIAO/TogBv0NAAEEBQgJDA0AAQABAAEAAf1SIAn9DAAAAEcAAABHAAAARwAAAEf9PCAG/Q0AAQQFCAkMDQABAAEAAQAB/VIgCSAN/TcgBv0NAAEEBQgJDA0AAQABAAEAAf1SIgb9WQEMACAAIAz9GwFBGGxqIAb9WQEMASAAIAz9GwJBGGxqIAb9WQEMAiAAIAz9GwNBGGxqIAb9WQEMAyARQRBqIREgC/0MBAAAAAQAAAAEAAAABAAAAP2uASELIBJBBGsiEg0ACwsgBCATQQJ0aiERIAIgE2pBGGwgAGpBDGohEgNAAkACQCATIBZHBEAgBSATRwRAIBEoAgAiFUH///8DcSEUIBVBgICAgHhxIQQgFUGAgID8B3EiAEGAgID8B0YEQCAUQQ12IARBEHZyQYAEQQAgFBtyQYD4AXIhBAwECyAEQRB2IQQgAEGAgIC4BEsNAiAAQYCAgMQDTwRAIBVBDHYgFUH/3wBxQQBHcSAAQQ12IBRBDXZqQYCAAWogBHJqIQQMBAsgAEGAgICYA0kNAyAUQYCAgARyIhVB/gAgAEEXdiIUa3YhACAVQR0gFGsiFHZBAXEEfyAAQQMgFHRBAWsgFXFBAEdqBSAACyAEciEEDAMLIAUgBUGEw8cAEIwHAAsgAiATaiABQey7xwAQjAcACyAEQYD4AXIhBAsgEiAEOwEAIBJBGGohEiARQQRqIREgAyATQQFqIhNHDQALCwv8CgILewh/IAMEQCAFIAEgAmsiEUEAIAEgEU8bIhYgBSAWSRsiESADQQFrIhIgESASSRtBAWoiEkEESwRAIAL9ESEO/QwAAAAAAQAAAAIAAAADAAAAIQsgBCERIBIgEkEDcSITQQQgExtrIhMhEgNAIAAgCyAO/a4BIgz9GwBBJGxqIBH9AAIAIgb9DP//fwD//38A//9/AP//fwD9TiIHQQ39rQEgBv0MAAAAgAAAAIAAAACAAAAAgP1OQRD9rQEiCP1QIgkgB/0MAAAAAAAAAAAAAAAAAAAAAP04/QwAAgAAAAIAAAACAAAAAgAA/U79UCAG/Q0AAQQFCAkMDQABAAEAAQAB/QwAfAB8AHwAfAB8AHwAfAB8Ig39UCAIIAb9DQABBAUICQwNAAEAAQABAAEgDf1QIAkgBv0MAACAfwAAgH8AAIB/AACAfyIN/U4iCUEN/a0B/QwAQAAAAEAAAABAAAAAQAAA/a4B/VAgBv0NAAEEBQgJDA0AAQABAAEAASAG/QwAEAAAABAAAAAQAAAAEAAA/U4gCv04IAb9DP8vAAD/LwAA/y8AAP8vAAD9TiAK/Tj9Tv0MAQAAAAEAAAABAAAAAQAAAP1OIAb9DQABBAUICQwNAAEAAQABAAH9jgEgCP0MAACA+gAAgPoAAID6AACA+iIIIAf9DAAAgAAAAIAAAACAAAAAgAD9UCIG/RsA/Qx+AAAAfgAAAH4AAAB+AAAAIAlBF/2tASIP/bEBIgf9GwB2/REgBv0bASAH/RsBdv0cASAG/RsCIAf9GwJ2/RwCIAb9GwMgB/0bA3b9HAMgCf0MAACAxwAAgMcAAIDHAACAx/2uASIQIAj9OiIIQQH9DB0AAAAdAAAAHQAAAB0AAAAgD/2xAf0MHwAAAB8AAAAfAAAAHwAAAP1OIgf9GwAiFXT9EUEBIAf9GwEiFHT9HAFBASAH/RsCIhd0/RwCQQEgB/0bAyIYdP0cAyAG/U4gCv04/VBBAyAVdP0RQQMgFHT9HAFBAyAXdP0cAkEDIBh0/RwD/Qz//////////////////////a4BIAb9TiAK/Tj9Tv2xASAI/VL9UCAG/Q0AAQQFCAkMDQABAAEAAQABIBD9DAEAgA4BAIAOAQCADgEAgA79OiAG/Q0AAQQFCAkMDQABAAEAAQAB/VIgCf0MAAAARwAAAEcAAABHAAAAR/08IAb9DQABBAUICQwNAAEAAQABAAH9UiAJIA39NyAG/Q0AAQQFCAkMDQABAAEAAQAB/VIiBv1ZARQAIAAgDP0bAUEkbGogBv1ZARQBIAAgDP0bAkEkbGogBv1ZARQCIAAgDP0bA0EkbGogBv1ZARQDIBFBEGohESAL/QwEAAAABAAAAAQAAAAEAAAA/a4BIQsgEkEEayISDQALCyAEIBNBAnRqIREgAiATakEkbCAAakEUaiESA0ACQAJAIBMgFkcEQCAFIBNHBEAgESgCACIVQf///wNxIRQgFUGAgICAeHEhBCAVQYCAgPwHcSIAQYCAgPwHRgRAIBRBDXYgBEEQdnJBgARBACAUG3JBgPgBciEEDAQLIARBEHYhBCAAQYCAgLgESw0CIABBgICAxANPBEAgFUEMdiAVQf/fAHFBAEdxIABBDXYgFEENdmpBgIABaiAEcmohBAwECyAAQYCAgJgDSQ0DIBRBgICABHIiFUH+ACAAQRd2IhRrdiEAIBVBHSAUayIUdkEBcQR/IABBAyAUdEEBayAVcUEAR2oFIAALIARyIQQMAwsgBSAFQdTFxwAQjAcACyACIBNqIAFB5MDHABCMBwALIARBgPgBciEECyASIAQ7AQAgEkEkaiESIBFBBGohESADIBNBAWoiE0cNAAsLC7wJAgJ/AXsjAEHQAGsiAiQAIAJBDmpBADoAACACQR5qQQA6AAAgAkEmakEAOgAAIAJBLmpBADoAACACQTZqQQA6AAAgAkE+akEAOgAAIAJBxgBqQQA6AAAgAkEAOwEMIAJBFmpBADoAACACQQA7ARwgAkEAOwEkIAJBADsBLCACQQA7ATQgAkEAOwE8IAJBADsBRCACQQA7ARQgAkHOAGpBADoAACACQQA7AUxBgCEQcSIDBEAgA0HI1cYAQYAh/AoAACAAQQE2AnAgAP0MAAAAAAAAAAAAAAAAAAAAAP0LAnQgAEL/gYCAgH83AoQBIABBADYCoAUgAEHyAToAkwEgAEEANgKYBCAAQoCAgIAQNwOQBCAAQQA6AKYFIABBADsBpAUgAEKAgICAEDcDACAAQgA3AwggAEIBNwMQIABCgICAgBA3AxggAEHoA2ogAUEQaikDADcDACAAIAH9AAMA/QsD2AMgACACKAIINgKMASAAQY8BaiACKAALNgAAIABBJ2pCADcAACAAQgA3AyAgAEIANwMwIABBN2pCADcAACAAQgA3A0AgAEHHAGpCADcAACAAQgA3A1AgAEHXAGpCADcAACAAQgA3A2AgAEHnAGpCADcAACAAIAT9CwPwAyAAQYAEaiAE/QsDACAAQQE2ApgBIAAgBP0LApwBIABC/4GAgIB/NwKsASAAQbcBaiACKAATNgAAIAAgAigCEDYCtAEgACAE/QsCxAEgAEEBNgLAASAAQfIBOgC7ASAAQv+BgICAfzcC1AEgAEHyAToA4wEgACAE/QsC7AEgAEEBNgLoASAAQv+BgICAfzcC/AEgAEEBNgKQAiAAIAT9CwKUAiAAQfIBOgCLAiAAQd8BaiACKAAbNgAAIAAgAigCGDYC3AEgAEGHAmogAigAIzYAACAAIAIoAiA2AoQCIABC/4GAgIB/NwKkAiAAQa8CaiACKAArNgAAIAAgAigCKDYCrAIgACAE/QsCvAIgAEEBNgK4AiAAQfIBOgCzAiAAQv+BgICAfzcCzAIgAEHXAmogAigAMzYAACAAIAIoAjA2AtQCIAAgBP0LAuQCIABBATYC4AIgAEHyAToA2wIgAEL/gYCAgH83AvQCIABB/wJqIAIoADs2AAAgACACKAI4NgL8AiAAIAT9CwKMAyAAQQE2AogDIABB8gE6AIMDIABC/4GAgIB/NwKcAyAAQacDaiACKABDNgAAIAAgAigCQDYCpAMgACAE/QsCtAMgAEEBNgKwAyAAQfIBOgCrAyAAQv+BgICAfzcCxAMgAEHPA2ogAigASzYAACAAIAIoAkg2AswDIABBAToApwUgAEHyAToA0wMgAEH8BGpB0PbGACgAADYAACAAQcj2xgApAAA3APQEIABBADoAqAUgACADNgLwBCAAQQA6AIAFIABCADcCpAQgAEKAgICAEDcCnAQgAEGYBWpCADcBACAAQZIFakIANwEAIAAgBP0LAYIFIABBADYC7AQgAEKAgICAEDcC5AQgAEIBNwLcBCAAQgA3AtQEIABCgICAgBA3AswEIABCATcCxAQgAEIANwK8BCAAQoCAgIAQNwK0BCAAQgE3AqwEIAJB0ABqJAAPCwAL2AcCDH8BeyMAQYAIayIGJAACQAJAAkAgASgC2AFBgYCAgHhHBEAgASgC3AEhAiABKALgASEHIAEoAtABIQsgASgC1AEhDCABKALMASENQQAhAQNAIAEgBmr9DAAAAP8AAAD/AAAA/wAAAP/9CwAAIAFBEGoiAUGACEcNAAsgB0EDbiEKIAdBBE8EQCAHQQRrIgFBC00EQEGAAiEEIAYhASAHIQMMAwtBgAJBgAIgAUEDbiIBIAFBgAJPG0EBaiIBIAFBA3EiAUEEIAEbayIFayEEIAcgBUF9bGohAyACIAVBA2xqIAYgBUECdGohASAGIQgDQCAIIAJBCWogAkEGaiACQQNqIAL9XAAA/VYAAAH9VgAAAv1WAAAD/QsAACACQQxqIQIgCEEQaiEIIAVBBGsiBQ0ACyECDAILIAYhASAHIQMgB0UNAwwCC0GgmcUAQRRBtJnFABCrBwALA0AgBEUEQEEAQQBB9JnFABCMBwALIAEgAigAADYAACABQQRqIQEgBEEBayEEIAJBA2ohAiADQQNrIgNBA0sNAAsgBA0AQQBBAEHEmcUAEIwHAAsgA0EDRgRAIAEgAi8AADsAACABQQJqIAJBAmotAAA6AAAMAQtBAEEDIANB1JnFABDqBwALAkBBAEEAIAwgDUGBgICAeEYiARsiAyADIApLIgMbIghFDQBBAUEBIAsgAxsgARshA0GAAiAIIAhBgAJPGyEJQQAhBSAIQRBPBEAgCUHwA3EhBSAJQQJ0QUBxIQtBACEBIAMhBANAIAEgBmoiAkE/aiAE/QAAACIO/VgAAA8gAkE7aiAO/VgAAA4gAkE3aiAO/VgAAA0gAkEzaiAO/VgAAAwgAkEvaiAO/VgAAAsgAkEraiAO/VgAAAogAkEnaiAO/VgAAAkgAkEjaiAO/VgAAAggAkEfaiAO/VgAAAcgAkEbaiAO/VgAAAYgAkEXaiAO/VgAAAUgAkETaiAO/VgAAAQgAkEPaiAO/VgAAAMgAkELaiAO/VgAAAIgAkEHaiAO/VgAAAEgAkEDaiAO/VgAAAAgBEEQaiEEIAsgAUFAayIBRw0ACyAFIAlGDQELIAkgBWshBCADIAVqIQIgBUECdCAGakEDaiEBA0AgASACLQAAOgAAIAJBAWohAiABQQRqIQEgBEEBayIEDQALCyAHQYMGSQRAIAggCkcEQCAKQQJ0IAhBAnQiB2shASAGIAdqQQNqIQIDQCACQf8BOgAAIAJBBGohAiABQQRrIgENAAsLIAAgBkGACPwKAAAgBkGACGokAA8LIAggCkGAAkHkmcUAEOoHAAvSCAEEfyMAQSBrIgIkAAJAAkACQAJAAkACQAJAAkAgAC0AAEEBaw4DAQIDAAsgAiAAKAIENgIEIAEoAgBBoPvHAEECIAEoAgQoAgwRAAAhACACQQA6AA0gAiAAOgAMIAIgATYCCCACQQhqQbT7xwBBBCACQQRqQaT7xwAQjAUgAkEpOgATQcj7xwBBBCACQRNqQbj7xwAQjAVBFBBxIgBFDQQgAEEQakHcgsgAKAAANgAAIABBzILIAP0AAAD9CwAAIAJBFDYCHCACIAA2AhggAkEUNgIUQdz7xwBBByACQRRqQcz7xwAQjAUhASACLQANIgMgAi0ADCIEciEAAkAgBEEBcSADQQFHcg0AIAEoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADAELIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAsgAigCFCIBRQ0DIAIoAhgiA0EEaygCACIEQXhxIgVBBEEIIARBA3EiBBsgAWpJDQUgBEEAIAUgAUEnaksbDQYgAxCiAgwDCyAALQABIQNBASEAIAEoAgBB4/vHAEEEIAEoAgQoAgwRAAANAgJAIAEtAApBgAFxRQRAIAEoAgBBu7PFAEEBIAEoAgQoAgwRAAANBCABKAIAIANBAnQiAygCpKhJIAMoAvymSSABKAIEKAIMEQAARQ0BDAQLIAEoAgBB24HCAEECIAEoAgQoAgwRAAANAyACQQE6AAggAiABKQIANwIUIANBAnQiAygCzKlJIQQgAygC9KpJIQMgAiACQQhqNgIcIAJBFGoiBSADIAQQrwMNAyAFQdmBwgBBAhCvAw0DCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQAMAgsgACgCBCEAIAEoAgBB5/vHAEEFIAEoAgQoAgwRAAAhAyACQQA6ABkgAiADOgAYIAIgATYCFCACQRRqQcj7xwBBBCAAQQhqQbj7xwAQjAVB3PvHAEEHIABB7PvHABCMBSACLQAZIgMgAi0AGCIEciEAIARBAXEgA0EBR3INASgCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQAMAgsgACgCAEGls8UAQQEgACgCBCgCDBEAACEADAELIAIgACgCBCIANgIIIAEoAgBBjPzHAEEGIAEoAgQoAgwRAAAhAyACQQA6ABkgAiADOgAYIAIgATYCFCACQRRqQcj7xwBBBCAAQQhqQbj7xwAQjAVBupjIAEEFIAJBCGpB/PvHABCMBSACLQAZIgMgAi0AGCIEciEAIARBAXEgA0EBR3INACgCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQAMAQsgACgCAEGls8UAQQEgACgCBCgCDBEAACEACyACQSBqJAAgAEEBcQ8LAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALvQcDCX8CfAJ+IwBBMGsiBCQAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIUIgYgASgCECIFSQRAIAEoAgwiCSAGai0AACIHQS5GDQEgB0HFAEYgB0HlAEZyDQILIAJFDQJCASEPDAgLIAEgBkEBaiIGNgIUIAUgBk0NAyAGIAVrIQcCQANAIAYgCWotAAAiCkEwayILQf8BcSIMQQpPBEAgCEUNBiAKQSByQeUARwRAIAghBwwGCyAEQSBqIAEgAiADIAgQ2AIMCAsgDEEFSyADQpmz5syZs+bMGVJyIANCmLPmzJmz5swZVnENASABIAZBAWoiBjYCFCAIQQFrIQggA0IKfiALrUL/AYN8IQMgBSAGRw0ACyAFIQYgB0UNBQwDCyAEQSBqIAEgAiADIAgQ6AYMBQsgBEEgaiABIAIgA0EAENgCIAQoAiBFDQUgACAEKAIkNgIIIABCAzcDAAwHC0IAIAN9IhBCAFMEQEICIQ8gECEDDAYLIAO6vUKAgICAgICAgIB/hCEDDAULIAO6IQ0CQAJAAkAgByAHQR91IgFzIAFrIgFBtQJPBEADQCANRAAAAAAAAAAAYQ0EIAdBAE4NAiANRKDI64XzzOF/oyENIAdBtAJqIgcgB0EfdSIBcyABayIBQbUCTw0ACwsgAUEDdCsDoIJHIQ4gB0EATg0BIA0gDqMhDQwCCyAEQRBqIAkgBSAGEPkBIAQoAhQhAiAEKAIQIQVBFBBxIgFFDQggASAFNgIMIAFBDjYCACABIAI2AhAgBCABNgIkIARBATYCIAwECyANIA6iIg2ZRAAAAAAAAPB/Yg0AIARBCGogCSAFIAYQ+QEgBCgCDCECIAQoAgghBUEUEHEiAUUNByABIAU2AgwgAUEONgIAIAEgAjYCECAEIAE2AiQgBEEBNgIgDAMLIAQgDSANmiACGzkDKCAEQQA2AiAMAgsgBSAGTQ0AIARBGGogCSAFIAZBAWoiASAFIAEgBUkbEPkBIAQoAhwhAiAEKAIYIQVBFBBxIgFFDQUgASAFNgIMIAFBDTYCACABIAI2AhAgBCABNgIkIARBATYCIAwBCyAEIAkgBSAGQQFqIgEgBSABIAVJGxD5ASAEKAIEIQIgBCgCACEFQRQQcSIBRQ0EIAEgBTYCDCABQQU2AgAgASACNgIQIAQgATYCJCAEQQE2AiALIAQoAiBFDQAgACAEKAIkNgIIIABCAzcDAAwCCyAEKQMoIQMLIAAgAzcDCCAAIA83AwALIARBMGokAA8LAAvqBwENfyMAQUBqIgUkAEEAELYJIQYgBUEQakEAOgAAIAVBPGogBEEYaigCADYCACAFQTRqIARBEGopAgA3AgAgBUEaaiAEQR9qLQAAOgAAIAVCADcDCCAFIAT9AAIA/QsCJCAFIAQvAB07ARggBC0AHCEPIAEQuAohECAGQYQITwRAIAYQmwcLAkAgA0UEQAwBC0H458AAQQMQ7AghBCADKAIAIgogBBDiCCEIQbS7yQAtAAAhA0G0u8kAQQA6AABBuLvJACgCAEG4u8kAQQA2AgAgCCADGyELAkACQAJAIANFBEAgCxC5CkUEQEEBIQkMBAsgC0GDCEsNAQwCCyALQYQISQ0CCyALEJsHCwsgBEGECE8EQCAEEJsHCyAKQfvnwABBAxDsCCIDEOIIIQhBtLvJAC0AACEEQbS7yQBBADoAAEG4u8kAKAIAQbi7yQBBADYCACAIIAQbIQYCfwJAAkAgBEUEQCAGELkKRQRAQQEhDUECDAQLIAZBgwhLDQEMAgsgCSAGQYQISQ0CGgsgBhCbBwsgCQshCCADQYQITwRAIAMQmwcLIApBjOzAAEEDEOwIIgQQ4gghA0G0u8kALQAAIQdBtLvJAEEAOgAAQbi7yQAoAgBBuLvJAEEANgIAIAMgBxshAwJAAkACQCAHRQRAIAMQuQpFBEBBASEMQQMhCAwECyADQYMISw0BDAILIANBhAhJDQILIAMQmwcLCyAEQYQITwRAIAQQmwcLQQAhByAKQYbowABBBxDsCCIKEOIIIQRBtLvJAC0AACEOQbS7yQBBADoAAEG4u8kAKAIAQbi7yQBBADYCACAEIA4bIQQCQAJAAkAgDkUEQCAEELkKRQRAQQEhD0EBIQcMBAsgBEGDCEsNAQwCCyAEQYQISQ0CCyAEEJsHCwsgCkGECEkNACAKEJsHCyAAQYCAgIB4NgJ0IABBgICAgHg2AmggAEIENwJgIABCADcCWCAAQoCAgIDAADcCUCAAQgQ3AkggAEIANwJAIABCgICAgMAANwI4IAAgBDYCNCAAIAc2AjAgAEEANgIoIABBADYCICAAQQA2AhggACADNgIUIAAgDDYCECAAIAY2AgwgACANNgIIIAAgCzYCBCAAIAk2AgAgACAPOgCcASAAIAE2AqwBIAAgCDYCqAEgACACNgKkASAAIBBBAnY2AqABIABBmAFqIAVBPGooAgA2AgAgAEGIAWogBUEsav0AAgD9CwIAIAAgBf0AAhz9CwJ4IAAgBS8BGDsAnQEgAEGfAWogBUEaai0AADoAACAAIAUpAwg3ArABIABBuAFqIAVBEGotAAA6AAAgBUFAayQAC8cHAgZ/AnsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFFBEBBBCELDAELIAFBAnQQcSILRQ0BIAFBBE8EQCABQXxxIgwhCQNAIAggC2ogACAIav0AAgD9DLtukD67bpA+u26QPrtukD795gH9DAAAAD8AAAA/AAAAPwAAAD/95AH9CwIAIAhBEGohCCAJQQRrIgkNAAsgASAMRg0BCyAMQQJ0IQggASAMayEJA0AgCCALaiAAIAhqKgIAQ7tukD6UQwAAAD+SOAIAIAhBBGohCCAJQQFrIgkNAAsLQYAIEHEiAEUNAP0MAAAAAAEAAAACAAAAAwAAACEOQQAhCANAIAAgCGoiCSAO/fsB/QwAAH9DAAB/QwAAf0MAAH9DIg/95wH9CwIAIAlBEGogDv0MBAAAAAQAAAAEAAAABAAAAP2uAf37ASAP/ecB/QsCACAO/QwIAAAACAAAAAgAAAAIAAAA/a4BIQ4gCEEgaiIIQYAIRw0ACwJAAkAgBwRAQQAhCUEAIQgDQCADIAhNDQUgASACIAhqIgwtAAAiCk0NBiAFIAlNDQcgBCALIApBAnRqKgIAOAIAIAhBAWoiCiADTw0IIAEgDEEBai0AACIKTQ0JIAlBAWoiDSAFTw0KIARBBGogCyAKQQJ0aioCADgCACAIQQJqIgogA08NCyABIAxBAmotAAAiCk0NDCAJQQJqIg0gBU8NDSAEQQhqIAsgCkECdGoqAgA4AgAgCEEDaiIKIANPDQ4gBiAIaiAAIAxBA2otAABBAnRqKgIAOAIAIARBDGohBCAJQQNqIQkgCEEEaiEIIAdBAWsiBw0ACyAAQQRrKAIAIgJBeHFBhAhBiAggAkEDcSIDG0kNDiADQQAgAkGoCE8bDQ8gABCiAgwBCyAAQQRrKAIAIgJBeHFBhAhBiAggAkEDcSIDG0kNDSADQQAgAkGoCE8bDQ4gABCiAiABRQ0BCyALQQRrKAIAIgBBeHEiAiABQQJ0IgFBBEEIIABBA3EiABtqSQ0MIABBACACIAFBJ2pLGw0NIAsQogILDwsACyAIIANBgPHHABCMBwALIAogAUGQ8ccAEIwHAAsgCSAFQaDxxwAQjAcACyAKIANBsPHHABCMBwALIAogAUHA8ccAEIwHAAsgDSAFQdDxxwAQjAcACyAKIANB4PHHABCMBwALIAogAUHw8ccAEIwHAAsgDSAFQYDyxwAQjAcACyAKIANBkPLHABCMBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC9kGAg1/An0gAEGstskAKAIAIgcEfyMAQRBrIQhBrLbJACAHQQFrIgY2AgBBqLbJACgCACIFIAZBDGxqIgQoAgghASAEKAIEIQMgBCgCACEEAkAgBkUEQCABIQogAyELIAQhDAwBCyAFKAAAIQwgBSAENgAAIAUoAAQhCyAFIAM2AAQgBUEIaiIDKAAAIQogAyABNgAAIAhBCGogAygCADYCACAIIAUpAgA3AwBBASEBIAdBBE8EQCAGQQJrIgFBACABIAZNGyEGQQEhAQNAAn8gBSABQQxsaiIDQQxqIgQqAgAiDiAOWyAOIAMqAgAiD2BFcSIJIAlBfyAOIA9fGyAPIA9cGyIJBEAgCUEATAwBCyADKAIEIgkgBCgCBCINRwRAIAkgDU0MAQsgAygCCCAEKAIITQshAyAFIAJBDGxqIgQgBSABIANqIgJBDGxqIgEpAgA3AgAgBEEIaiABQQhqKAIANgIAIAJBAXQiA0EBciEBIAMgBkkNAAsLAkAgB0ECayABRwRAIAIhAQwBCyAFIAJBDGxqIgIgBSABQQxsaiIDKQIANwIAIAJBCGogA0EIaigCADYCAAsgBSABQQxsaiICIAgpAwA3AgAgAkEIaiAIQQhqKAIAIgg2AgAgAigCBCEDIAIqAgAhDgJAIAFFBEBBACEBDAELIA4gDlsEQANAAkAgBSABIgJBAWsiBkEBdiIBQQxsaiIEKgIAIg8gD1sgDiAPX0VxQX8gDiAPYBsiBwRAIAdBAEoNASACIQEMBAsgBCgCBCIHIANHBEAgAyAHSw0BIAIhAQwECyAIIAQoAghLDQAgAiEBDAMLIAUgAkEMbGoiAiAEKQIANwIAIAJBCGogBEEIaigCADYCACAGQQFLDQAMAgsACwNAAkAgBSABIgJBAWsiBkEBdiIBQQxsaiIEKgIAIg8gD1sgDiAPX0VxDQAgBCgCBCIHIANHBEAgAyAHSw0BIAIhAQwDCyAIIAQoAghLDQAgAiEBDAILIAUgAkEMbGoiAiAEKQIANwIAIAJBCGogBEEIaigCADYCACAGQQJPDQALCyAFIAFBDGxqIgEgCDYCCCABIAM2AgQgASAOOAIACyAAIAo2AgwgACALNgIIIAAgDDYCBEEBBSABCzYCAAuWCAMGfwR7An0gBUEDbiEKIAEqAgAhESAAKgIAIRACQAJAAkACQAJAAkACQAJAQYAIEHEiCEUNACARIBCT/RMhDiAQ/RMhD/0MAAAAAAEAAAACAAAAAwAAACEMA0AgBiAIaiAPIA4gDP37Af0MAAB/QwAAf0MAAH9DAAB/Q/3nAf3mAf3kASIN/R8AEIkE/RMgDf0fARCJBP0gASAN/R8CEIkE/SACIA39HwMQiQT9IAP9CwIAIAz9DAQAAAAEAAAABAAAAAQAAAD9rgEhDCAGQRBqIgZBgAhHDQALIAEqAgQgACoCBCEQQYAIEHEiCUUNACAQk/0TIQ4gEP0TIQ/9DAAAAAABAAAAAgAAAAMAAAAhDEEAIQYDQCAGIAlqIA8gDiAM/fsB/QwAAH9DAAB/QwAAf0MAAH9D/ecB/eYB/eQBIg39HwAQiQT9EyAN/R8BEIkE/SABIA39HwIQiQT9IAIgDf0fAxCJBP0gA/0LAgAgDP0MBAAAAAQAAAAEAAAABAAAAP2uASEMIAZBEGoiBkGACEcNAAsgASoCCCAAKgIIIRBBgAgQcSIARQ0AIBCT/RMhDiAQ/RMhD/0MAAAAAAEAAAACAAAAAwAAACEMQQAhBgNAIAAgBmogDyAOIAz9+wH9DAAAf0MAAH9DAAB/QwAAf0P95wH95gH95AEiDf0fABCJBP0TIA39HwEQiQT9IAEgDf0fAhCJBP0gAiAN/R8DEIkE/SAD/QsCACAM/QwEAAAABAAAAAQAAAAEAAAA/a4BIQwgBkEQaiIGQYAIRw0ACwJAIAVBA08EQEEAIQZBACEBA0AgAyAGTQ0EIAEgBU8NBSAEIAggAiAGaiILLQAAQQJ0aioCADgCACAGQQFqIgcgA08NBiABQQFqIgcgBU8NByAEQQRqIAkgC0EBai0AAEECdGoqAgA4AgAgBkECaiIHIANPDQggAUECaiIHIAVPDQIgBEEIaiAAIAtBAmotAABBAnRqKgIAOAIAIAZBBGohBiAEQQxqIQQgAUEDaiEBIApBAWsiCg0ACwsgAEEEaygCACIBQXhxQYQIQYgIIAFBA3EiAhtJDQcgAkEAIAFBqAhPGw0IIAAQogIgCUEEaygCACIAQXhxQYQIQYgIIABBA3EiARtJDQcgAUEAIABBqAhPGw0IIAkQogIgCEEEaygCACIAQXhxQYQIQYgIIABBA3EiARtJDQcgAUEAIABBqAhPGw0IIAgQogIPCyAHIAVBoPXHABCMBwsACyAGIANB0PTHABCMBwALIAEgBUHg9McAEIwHAAsgByADQfD0xwAQjAcACyAHIAVBgPXHABCMBwALIAcgA0GQ9ccAEIwHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALggcBA34gASgCACACQQZ0ayIBQUBqKQMAIAAoAgAoAgAiACkDCIUiA0LYotHvwqnlvy1+IAFBOGspAwCFIANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhIUiA0LYotHvwqnlvy1+IAFBMGspAwCFIANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhIUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhELSgaqbq/qC16d/fiIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEIANC2KLR78Kp5b8tfoUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCAAKQMAIgRCf4V+IgVCOIYgBUKA/gODQiiGhCAFQoCA/AeDQhiGIAVCgICA+A+DQgiGhIQgBUIIiEKAgID4D4MgBUIYiEKAgPwHg4QgBUIoiEKA/gODIAVCOIiEhIQgAyAEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEfoUgA4kLwwYBDH8jAEEQayIJJABBASELAkAgAigCACIKQSIgAigCBCIMKAIQIg0RAgANAAJAAkAgAUUEQEEAIQFBACECDAELIAAhBSABIQYDQCAFIAZqIQ5BACECAkACQANAIAIgBWoiBy0AACIIQf8Aa0H/AXFBoQFJIAhBIkZyIAhB3ABGcg0BIAYgAkEBaiICRw0ACyADIAZqIQMMAQsgAiADaiEDAkACQCAHLAAAIgJBAE4EQCAHQQFqIQUgAkH/AXEhAgwBCyAHLQABQT9xIQUgAkEfcSEGIAJBX00EQCAGQQZ0IAVyIQIgB0ECaiEFDAELIActAAJBP3EgBUEGdHIhCCACQXBJBEAgCCAGQQx0ciECIAdBA2ohBQwBCyAHQQRqIQUgBkESdEGAgPAAcSAHLQADQT9xIAhBBnRyciICQYCAxABGDQELIAkgAkGBgAQQgQMCQCAJLQANIgYgCS0ADCIHayIIQf8BcUEBRg0AAkACQAJAIAMgBEkNAAJAIARFDQAgASAETQRAIAEgBEcNAgwBCyAAIARqLAAAQb9/TA0BCwJAIANFDQAgASADTQRAIAEgA0YNAQwCCyAAIANqLAAAQb9/TA0BCyAKIAAgBGogAyAEayAMKAIMIgQRAABFDQEMAgsgACABIAQgA0GogcIAELsJAAsCQCAGQYEBTwRAIAogCSgCACANEQIADQIMAQsgCiAHIAlqIAggBBEAAA0BCyACQYABSQRAIANBAWohBAwCCyACQYAQSQRAIANBAmohBAwCC0EDQQQgAkGAgARJGyADaiEEDAELDAYLAn9BASACQYABSQ0AGkECIAJBgBBJDQAaQQNBBCACQYCABEkbCyADaiEDCyAOIAVrIgYNAQsLIAMgBEkNAUEAIQICQCAERQ0AIAEgBE0EQCAEIAEiAkcNAwwBCyAEIgIgAGosAABBv39MDQILIANFBEBBACEBDAELIAEgA00EQCABIANGDQEgAiEEDAILIAAgA2osAABBv39MBEAgAiEEDAILIAMhAQsgCiAAIAJqIAEgAmsgDCgCDBEAAA0BIApBIiANEQIAIQsMAQsgACABIAQgA0G4gcIAELsJAAsgCUEQaiQAIAsLzwYBCH8jAEEwayEIA0AgASgCACIEQf///wNxIQMgBEGAgICAeHEhBgJAIARBgICA/AdxIgJBgICA/AdGBEAgA0ENdiAGQRB2ckGABEEAIAMbckGA+AFyIQYMAQsgBkEQdiEGIAJBgICAuARNBEAgAkGAgIDEA08EQCAEQQx2IARB/98AcUEAR3EgAkENdiADQQ12akGAgAFqIAZyaiEGDAILIAJBgICAmANJDQEgA0GAgIAEciIEQf4AIAJBF3YiA2t2IQIgBEEdIANrIgN2QQFxBH8gAkEDIAN0QQFrIARxQQBHagUgAgsgBnIhBgwBCyAGQYD4AXIhBgsgAUEEaigCACIDQf///wNxIQUgA0GAgICAeHEhBAJAIANBgICA/AdxIgJBgICA/AdHBEAgBEEQdiEEIAJBgICAuARNBEAgAkGAgIDEA08EQCADQQx2IANB/98AcUEAR3EgAkENdiAFQQ12akGAgAFqIARyaiEEDAMLIAJBgICAmANJDQIgBUGAgIAEciIDQf4AIAJBF3YiBWt2IQIgA0EdIAVrIgV2QQFxBH8gAkEDIAV0QQFrIANxQQBHagUgAgsgBHIhBAwCCyAEQYD4AXIhBAwBCyAFQQ12IARBEHZyQYAEQQAgBRtyQYD4AXIhBAsgAUEIaigCACIFQf///wNxIQcgBUGAgICAeHEhAwJAIAVBgICA/AdxIgJBgICA/AdHBEAgA0EQdiEDIAJBgICAuARNBEAgAkGAgIDEA08EQCAFQQx2IAVB/98AcUEAR3EgAkENdiAHQQ12akGAgAFqIANyaiEDDAMLIAJBgICAmANJDQIgB0GAgIAEciIFQf4AIAJBF3YiB2t2IQIgBUEdIAdrIgd2QQFxBH8gAkEDIAd0QQFrIAVxQQBHagUgAgsgA3IhAwwCCyADQYD4AXIhAwwBCyAHQQ12IANBEHZyQYAEQQAgBxtyQYD4AXIhAwsgCEEGaiAJaiICIAY7AQAgAkEEaiADOwEAIAJBAmogBDsBACABQQxqIQEgCUEGaiIJQSpHDQALIAAgCP0AAQb9CwEAIABBKGogCEEuai8BADsBACAAQSBqIAhBJmopAQA3AQAgAEEQaiAIQRZq/QABAP0LAQALogcCCH8CfiMAQZACayICJAACQCABKAK4AiIDQQNNBEAgAEEAOwEADAELIAIgASgCtAIiBSgAACIENgIIAkACQAJAAkAgBEHSgpGaBEYEQCADQQhJBEAgAEEAOgABIABBADoAAAwGCyADIAUoAAQiBkEHakF4cSIIQRBqIgRJDQEgBkEIaiIHIANLIAZBd0tyDQIgAkEANgKAAiACIAY2AvwBIAIgBUEIajYC+AEgAkEYaiACQfgBahBvIAIoAhwhBiACKAIYIglBAkYEQCAAIAYQzgc2AgQgAEEBOgAADAYLIAJBkAFqIAJBIGpB6AD8CgAAIAIgBjYCjAEgAiAJNgKIASAIQQhqIgggBEsNAyABQQA2ArgCIAMgBGshByAFIAhqKQAAIQsCQAJAIARFDQAgAyAERg0BIAdFDQAgBSAEIAVqIAf8CgAACyABIAc2ArgCCyABIAEpA3AgBK18Igo3A3AgASAKIAt8NwOIASABIAo3A4ABAkAgAigC8AFBAUYEQCABIAIpA5ABPgKoAiABIAIoApgBIgM2AqwCIAEoApABQQJGDQEMBgsgAkEBNgIcIAJBhMnBADYCGCACQgE3AiQgAiACQfABaq1CgICAgBCENwOIAiACIAJBiAJqNgIgIAJB+AFqIgEgAkEYahCxBiABEI4HIQEgAigC5AEiAwRAIAIoAugBIANBKGxBCBCiBwsgACABNgIEIABBAToAAAwGCyABQQA2AqgCIAIgAi0A9AFBAXE6ACAgAiAGQQAgCUEBcRs2AhwgAiADNgIYIAFBvAJqIAJBGGoQ4QMMBAsgAkEBNgIsIAJBzMjBADYCKCACQQE2AhwgAkGQzsEANgIYIAJBATYCJCACIAJBCGqtQoCAgICQBIQ3A/gBIAIgAkH4AWo2AiAgAkEMaiIBIAJBGGoQsQYgACABEI4HNgIEIABBAToAAAwECyAAQQA6AAEgAEEAOgAADAMLQQggByADQeTNwQAQ6gcACyAIIAQgA0HUzcEAEOoHAAsgAUEANgKkAgJAIAEoAgBBAkYNACABKAJcIgNFDQACQCABKAJgIgRBBGsoAgAiBUF4cSIGIANBKGwiA0EEQQggBUEDcSIFG2pPBEAgBUEAIAYgA0EnaksbDQEgBBCiAgwCC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgASACQYgBakHwAPwKAAAgAEGAAjsBAAsgAkGQAmokAAumBwIIfwJ+IwBBkAJrIgIkAAJAAkACQCABKALgAiIDQQNNBEAgAEEAOwEADAELIAIgASgC3AIiBSgAACIENgIIAkACQAJAAkAgBEHSgpGaBEYEQCADQQhJBEAgAEEAOgABIABBADoAAAwGCyADIAUoAAQiBkEHakF4cSIIQRBqIgRJDQEgBkEIaiIHIANLIAZBd0tyDQIgAkEANgKAAiACIAY2AvwBIAIgBUEIajYC+AEgAkEYaiACQfgBahBvIAIoAhwhBiACKAIYIglBAkYEQCAAIAYQzgc2AgQgAEEBOgAADAYLIAJBkAFqIAJBIGpB6AD8CgAAIAIgBjYCjAEgAiAJNgKIASAIQQhqIgggBEsNAyABQQA2AuACIAMgBGshByAFIAhqKQAAIQsCQAJAIARFDQAgAyAERg0BIAdFDQAgBSAEIAVqIAf8CgAACyABIAc2AuACCyABIAEpA7gCIAStfCIKNwO4AiABIAogC3w3A9ACIAEgCjcDyAIgAigC8AFBAUYEQCABIAIpA5ABPgL0AiABIAIoApgBIgM2AvgCIAEoAgBBAkcNBSABQQA2AvQCIAIgAi0A9AFBAXE6ACAgAiAGQQAgCUEBcRs2AhwgAiADNgIYIAFB+AFqIAJBGGoQhAIMBQsgAkEBNgIcIAJBhMnBADYCGCACQgE3AiQgAiACQfABaq1CgICAgBCENwOIAiACIAJBiAJqNgIgIAJB+AFqIgEgAkEYahCxBiABEI4HIQEgAigC5AEiAwRAIAIoAugBIANBKGxBCBCiBwsgACABNgIEIABBAToAAAwFCyACQQE2AiwgAkHMyMEANgIoIAJBATYCHCACQZDOwQA2AhggAkEBNgIkIAIgAkEIaq1CgICAgJAEhDcD+AEgAiACQfgBajYCICACQQxqIgEgAkEYahCxBiAAIAEQjgc2AgQgAEEBOgAADAQLIABBADoAASAAQQA6AAAMAwtBCCAHIANB5M3BABDqBwALIAggBCADQdTNwQAQ6gcACyABQQA2AvACAkAgASgCiAFBAkYNACABKALkASIDRQ0AIAEoAugBIgRBBGsoAgAiBUF4cSIGIANBKGwiA0EEQQggBUEDcSIFG2pJDQIgBUEAIAYgA0EnaksbDQMgBBCiAgsgAUGIAWogAkGIAWpB8AD8CgAAIABBgAI7AQALIAJBkAJqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAumBwIIfwJ+IwBBkAJrIgIkAAJAAkACQCABKAKAAyIDQQNNBEAgAEEAOwEADAELIAIgASgC/AIiBSgAACIENgIIAkACQAJAAkAgBEHSgpGaBEYEQCADQQhJBEAgAEEAOgABIABBADoAAAwGCyADIAUoAAQiBkEHakF4cSIIQRBqIgRJDQEgBkEIaiIHIANLIAZBd0tyDQIgAkEANgKAAiACIAY2AvwBIAIgBUEIajYC+AEgAkEYaiACQfgBahBvIAIoAhwhBiACKAIYIglBAkYEQCAAIAYQzgc2AgQgAEEBOgAADAYLIAJBkAFqIAJBIGpB6AD8CgAAIAIgBjYCjAEgAiAJNgKIASAIQQhqIgggBEsNAyABQQA2AoADIAMgBGshByAFIAhqKQAAIQsCQAJAIARFDQAgAyAERg0BIAdFDQAgBSAEIAVqIAf8CgAACyABIAc2AoADCyABIAEpA9gCIAStfCIKNwPYAiABIAogC3w3A/ACIAEgCjcD6AIgAigC8AFBAUYEQCABIAIpA5ABPgKUAyABIAIoApgBIgM2ApgDIAEoAgBBAkcNBSABQQA2ApQDIAIgAi0A9AFBAXE6ACAgAiAGQQAgCUEBcRs2AhwgAiADNgIYIAFB+AFqIAJBGGoQ6QEMBQsgAkEBNgIcIAJBhMnBADYCGCACQgE3AiQgAiACQfABaq1CgICAgBCENwOIAiACIAJBiAJqNgIgIAJB+AFqIgEgAkEYahCxBiABEI4HIQEgAigC5AEiAwRAIAIoAugBIANBKGxBCBCiBwsgACABNgIEIABBAToAAAwFCyACQQE2AiwgAkHMyMEANgIoIAJBATYCHCACQZDOwQA2AhggAkEBNgIkIAIgAkEIaq1CgICAgJAEhDcD+AEgAiACQfgBajYCICACQQxqIgEgAkEYahCxBiAAIAEQjgc2AgQgAEEBOgAADAQLIABBADoAASAAQQA6AAAMAwtBCCAHIANB5M3BABDqBwALIAggBCADQdTNwQAQ6gcACyABQQA2ApADAkAgASgCiAFBAkYNACABKALkASIDRQ0AIAEoAugBIgRBBGsoAgAiBUF4cSIGIANBKGwiA0EEQQggBUEDcSIFG2pJDQIgBUEAIAYgA0EnaksbDQMgBBCiAgsgAUGIAWogAkGIAWpB8AD8CgAAIABBgAI7AQALIAJBkAJqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuiBwIIfwJ+IwBBkAJrIgIkAAJAIAEoArgCIgNBA00EQCAAQQA7AQAMAQsgAiABKAK0AiIFKAAAIgQ2AggCQAJAAkACQCAEQdKCkZoERgRAIANBCEkEQCAAQQA6AAEgAEEAOgAADAYLIAMgBSgABCIGQQdqQXhxIghBEGoiBEkNASAGQQhqIgcgA0sgBkF3S3INAiACQQA2AoACIAIgBjYC/AEgAiAFQQhqNgL4ASACQRhqIAJB+AFqEG8gAigCHCEGIAIoAhgiCUECRgRAIAAgBhDOBzYCBCAAQQE6AAAMBgsgAkGQAWogAkEgakHoAPwKAAAgAiAGNgKMASACIAk2AogBIAhBCGoiCCAESw0DIAFBADYCuAIgAyAEayEHIAUgCGopAAAhCwJAAkAgBEUNACADIARGDQEgB0UNACAFIAQgBWogB/wKAAALIAEgBzYCuAILIAEgASkDcCAErXwiCjcDcCABIAogC3w3A4gBIAEgCjcDgAECQCACKALwAUEBRgRAIAEgAikDkAE+AqgCIAEgAigCmAEiAzYCrAIgASgCkAFBAkYNAQwGCyACQQE2AhwgAkGEycEANgIYIAJCATcCJCACIAJB8AFqrUKAgICAEIQ3A4gCIAIgAkGIAmo2AiAgAkH4AWoiASACQRhqELEGIAEQjgchASACKALkASIDBEAgAigC6AEgA0EobEEIEKIHCyAAIAE2AgQgAEEBOgAADAYLIAFBADYCqAIgAiACLQD0AUEBcToAICACIAZBACAJQQFxGzYCHCACIAM2AhggAUG8AmogAkEYahClBAwECyACQQE2AiwgAkHMyMEANgIoIAJBATYCHCACQZDOwQA2AhggAkEBNgIkIAIgAkEIaq1CgICAgJAEhDcD+AEgAiACQfgBajYCICACQQxqIgEgAkEYahCxBiAAIAEQjgc2AgQgAEEBOgAADAQLIABBADoAASAAQQA6AAAMAwtBCCAHIANB5M3BABDqBwALIAggBCADQdTNwQAQ6gcACyABQQA2AqQCAkAgASgCAEECRg0AIAEoAlwiA0UNAAJAIAEoAmAiBEEEaygCACIFQXhxIgYgA0EobCIDQQRBCCAFQQNxIgUbak8EQCAFQQAgBiADQSdqSxsNASAEEKICDAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyABIAJBiAFqQfAA/AoAACAAQYACOwEACyACQZACaiQAC+oGAQV/AkACQAJAAkACQAJAAkAgAEEEayIHKAIAIghBeHEiBEEEQQggCEEDcSIFGyABak8EQCAFQQAgAUEnaiIGIARJGw0BAkAgAkEJTwRAIAIgAxDBBCICDQFBAA8LQQAhAiADQcz/e0sNCEEQIANBC2pBeHEgA0ELSRshASAAQQhrIQYgBUUEQCAGRSABQYACSXIgBCABa0GAgAhLIAEgBE9ycg0HIAAPCyAEIAZqIQUCQCABIARLBEAgBUHcuskAKAIARg0BQdi6yQAoAgAgBUcEQCAFKAIEIghBAnENCSAIQXhxIgggBGoiBCABSQ0JIAUgCBDWBCAEIAFrIgVBEE8EQCAHIAEgBygCAEEBcXJBAnI2AgAgASAGaiIBIAVBA3I2AgQgBCAGaiIEIAQoAgRBAXI2AgQgASAFEOMCDAkLIAcgBCAHKAIAQQFxckECcjYCACAEIAZqIgEgASgCBEEBcjYCBAwIC0HQuskAKAIAIARqIgQgAUkNCAJAIAQgAWsiBUEPTQRAIAcgCEEBcSAEckECcjYCACAEIAZqIgEgASgCBEEBcjYCBEEAIQVBACEBDAELIAcgASAIQQFxckECcjYCACABIAZqIgEgBUEBcjYCBCAEIAZqIgQgBTYCACAEIAQoAgRBfnE2AgQLQdi6yQAgATYCAEHQuskAIAU2AgAMBwsgBCABayIEQQ9NDQYgByABIAhBAXFyQQJyNgIAIAEgBmoiASAEQQNyNgIEIAUgBSgCBEEBcjYCBCABIAQQ4wIMBgtB1LrJACgCACAEaiIEIAFLDQQMBgsgAyABIAEgA0sbIgMEQCACIAAgA/wKAAALIAcoAgAiA0F4cSIHIAFBBEEIIANBA3EiARtqSQ0CIAFFIAYgB09yDQZBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcACyAHIAEgCEEBcXJBAnI2AgAgASAGaiIFIAQgAWsiAUEBcjYCBEHUuskAIAE2AgBB3LrJACAFNgIACyAGRQ0AIAAPCyADEHEiAUUNASADQXxBeCAHKAIAIgJBA3EbIAJBeHFqIgIgAiADSxsiAgRAIAEgACAC/AoAAAsgASECCyAAEKICCyACC68HAQZ/IwBBQGoiAyQAIAAoAgwhBAJAAkACQCAAKAIUIgEgACgCECICSQRAA0AgASAEai0AACIGQQlrIgVBGUsNAkEBIAV0QZOAgARxRQRAIAVBGUcNAyAAEMsEIQEMBAsgACABQQFqIgE2AhQgASACRw0ACyACIQELIANBEGogBCACIAFBAWoiACACIAAgAkkbEPkBIAMoAhQhACADKAIQIQJBFBBxIgFFDQIgASACNgIMIAFBBTYCACABIAA2AhAMAQsgBkH7AEYEQCAAIAAtABhBAWsiBToAGCABQQFqIQEgBUH/AXEEQCAAIAE2AhQCQCAAEMsEIgFFBEAgACgCDCEEAkACQCAAKAIUIgEgACgCECICSQRAA0ACQCABIARqLQAAQQlrDjIAAAMDAAMDAwMDAwMDAwMDAwMDAwMDAwADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBgMLIAAgAUEBaiIBNgIUIAEgAkcNAAsgAiEBCyADQShqIAQgAiABQQFqIgEgAiABIAJJGxD5ASADKAIsIQIgAygCKCEEQRQQcSIBRQ0HIAFBAzYCAAwBCyADQSBqIAQgAiABQQFqIgEgAiABIAJJGxD5ASADKAIkIQIgAygCICEEQRQQcSIBRQ0GIAFBBjYCAAsgASAENgIMIAEgAjYCEAsgACAALQAYQQFqOgAYDAMLIAAgAUEBajYCFCAAEIcEIQEgACAALQAYQQFqOgAYIAENAiAAKAIMIQQCQCAAKAIUIgEgACgCECICSQRAA0AgASAEai0AACIFQQlrIgZBF0tBASAGdEGTgIAEcUVyDQIgACABQQFqIgE2AhQgASACRw0ACyACIQELIANBOGogBCACIAEQ+QEgAygCPCEAIAMoAjghAkEUEHEiAUUNBCABIAI2AgwgAUEDNgIAIAEgADYCEAwDCyAFQf0ARgRAIAAgAUEBajYCFEEAIQEMAwsgA0EwaiAEIAIgARD5ASADKAI0IQAgAygCMCECQRQQcSIBRQ0DIAEgAjYCDCABQQo2AgAgASAANgIQDAILIANBGGogBCACIAEgAiABIAJJGxD5ASADKAIcIQAgAygCGCECQRQQcSIBRQ0CIAEgAjYCDCABQRg2AgAgASAANgIQDAELIANBCGogBCACIAFBAWoiACACIAAgAkkbEPkBIAMoAgwhACADKAIIIQJBFBBxIgFFDQEgASACNgIMIAFBCjYCACABIAA2AhALIANBQGskACABDwsAC6IHAgd/A34jAEHwCGsiBCQAIAG8IQcCf0EDIAGLQwAAgH9bDQAaQQIgB0GAgID8B3EiBUGAgID8B0YNABogB0H///8DcSIIQYCAgARyIAdBAXRB/v//B3EgB0EXdkH/AXEiBhsiCa0iC0IBgyEMIAVFBEBBBCAIRQ0BGiAGQZYBayEGQgEhDSAMUAwBC0KAgIAQIAtCAYYgCUGAgIAERiIIGyELQgJCASAIGyENQeh+Qel+IAgbIAZqIQYgDFALIQUgA0H//wNxIQggBCAGOwHoCCAEIA03A+AIIARCATcD2AggBCALNwPQCCAEIAU6AOoIAn8CQCAFQf8BcUEBTQRAQXRBBSAGwSIFQQBIGyAFbCIFQcD9AEkNAUHDhMIAQSVB6ITCABDrBwALAkACQCAFQf8BcSIJQQJHBEBBASEFQeqzxQBByIHCACAHQQBIIgYbQeqzxQBBASAGGyACGyEGQQEgB0EfdiACGyECIAlBBEcNAUECIQUgBEECOwGQCCADQf//A3ENAkEBIQUgBEEBNgKYCCAEQZiwxQA2ApQIIARBkAhqDAQLIARBAzYCmAggBEHzncYANgKUCCAEQQI7AZAIQQEhBkEAIQJBASEFIARBkAhqDAMLIARBAzYCmAggBEHsncYANgKUCCAEQQI7AZAIIARBkAhqDAILIAQgCDYCoAggBEEAOwGcCCAEQQI2ApgIIARBuYPCADYClAggBEGQCGoMAQtB6rPFAEEBIAdBAEgiCRshCkHqs8UAQciBwgAgCRsgB0EfdiEHIARBkAhqIAsgBiAEQRBqIAVBBHZBFWoiBkGAgH5BACADayADwUEASBsiBRDpAiAFwSEFAkAgBCgCkAgEQCAEQcgIaiAEQZgIaigCADYCACAEIAQpApAINwPACAwBCyAEQcAIaiAEQdAIaiAEQRBqIAYgBRBlCyAKIAIbIQZBASAHIAIbIQIgBSAELgHICCIHSARAIARBCGogBCgCwAggBCgCxAggByAIIARBkAhqEOwEIAQoAgwhBSAEKAIIDAELQQIhBSAEQQI7AZAIIANB//8DcUUEQEEBIQUgBEEBNgKYCCAEQZiwxQA2ApQIIARBkAhqDAELIAQgCDYCoAggBEEAOwGcCCAEQQI2ApgIIARBuYPCADYClAggBEGQCGoLIQMgBCAFNgLMCCAEIAM2AsgIIAQgAjYCxAggBCAGNgLACCAAIARBwAhqEL4DIARB8AhqJAALiAUBBH8gABC/BAJAAkAgACgCiAQiAQRAIAAoAowEIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgClAQiAQRAIAAoApgEIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgCoAQiAQRAIAAoAqQEIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgCrAQiAQRAIAAoArAEIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgCuAQiAQRAIAAoArwEIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgCxAQiAQRAIAAoAsgEIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgC0AQiAQRAIAAoAtQEIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgC3AQiAQRAIAAoAuAEIgBBBGsoAgAiA0F4cSICIAFBAnQiAUEEQQggA0EDcSIDG2pJDQEgA0EAIAIgAUEnaksbDQIgABCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAv7BAEEfwJAAkAgACgCBCIBBEAgACgCACIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoAiwiAQRAIAAoAigiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCyAAKAJUIgEEQCAAKAJQIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgCfCIBBEAgACgCeCIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoAqQBIgEEQCAAKAKgASIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoAswBIgEEQCAAKALIASIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoAvQBIgEEQCAAKALwASIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoApwCIgEEQCAAKAKYAiIAQQRrKAIAIgNBeHEiAiABQQJ0IgFBBEEIIANBA3EiAxtqSQ0BIANBACACIAFBJ2pLGw0CIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL3AUBBH8gACgCrAEiAUGECE8EQCABEJsHCwJAIAAoAgBFDQAgACgCBCIBQYQISQ0AIAEQmwcLAkAgACgCCEUNACAAKAIMIgFBhAhJDQAgARCbBwsCQCAAKAIQRQ0AIAAoAhQiAUGECEkNACABEJsHCwJAIAAoAhhFDQAgACgCHCIBQYQISQ0AIAEQmwcLAkAgACgCIEUNACAAKAIkIgFBhAhJDQAgARCbBwsCQCAAKAIoRQ0AIAAoAiwiAUGECEkNACABEJsHCwJAAkAgACgCOCIBBEAgACgCPCIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoAkQiAQRAIAAoAkgiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCyAAKAJQIgEEQCAAKAJUIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsCQCAAKAIwRQ0AIAAoAjQiAUGECEkNACABEJsHCyAAKAJoIgFBgICAgHhyQYCAgIB4RwRAIAAoAmwiA0EEaygCACICQXhxIgQgAUEBdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCyAAKAJ0IgFBgICAgHhyQYCAgIB4RwRAIAAoAngiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCyAAKAJcIgEEQCAAKAJgIgBBBGsoAgAiA0F4cSICIAFBAnQiAUEEQQggA0EDcSIDG2pJDQEgA0EAIAIgAUEnaksbDQIgABCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuIBwEHfyMAQUBqIgEkAAJAAkAgACgCAEUEQCAAKAIQIgBFDQEgAEGTs8UAQQEQlwMhAgwCCyABQQxqIAAQyAUCQAJ/IAEoAgwiBEUEQCABLQAQIQQgACgCECIDBEBBASECIANB+rLFAEHqssUAIARBAXEiAxtBGUEQIAMbEJcDDQULIAAgBDoABEEADAELAkAgASgCECICQQFxDQAgAUKAgICAIDcCGCABIAQ2AgwgASACNgIQIAEgAiAEaiIFNgIUA0ACQCABQQxqEKgCQYCAxABrDgICAAELCyAAKAIQIgNFDQMgAygCAEEiIAMoAgQoAhARAgANAiABQoCAgIAgNwIYIAEgBTYCFCABIAI2AhAgASAENgIMA0ACQAJ/AkACQAJAIAFBDGoQqAIiAEGBgMQARwRAIABBgIDEAEYNASAAQSdHBEACQAJAAkACQAJAAkAgAEEhTARAIABBCWsOBQEDBgYCBQsgAEEiRg0DIABB3ABHDQUgAUIANwEiIAFB3LgBOwEgDAoLIAFCADcBIiABQdzoATsBIAwJCyABQgA3ASIgAUHc5AE7ASAMCAsgAUIANwEiIAFB3NwBOwEgDAcLIAFCADcBIiABQdzEADsBIAwGCyAARQ0ECwJAAkAgAEGABk8EQCAAEOUEDQELIAAQ4QINAQsgAUEwaiAAENYFIAFBKGogAUE4ai8AADsBACABIAEpADA3AyAgAS0AOiEAIAEtADshAiABQThqIAFBKGovAQA7AQAgASABKQMgNwMwIABB/wFxIAJB/wFxTw0IDAcLIAEgADYCIEGBASECQYABDAULIAMoAgBBJyADKAIEKAIQEQIADQkMBgsgAygCAEEiIAMoAgQoAhARAgAhAgwKC0HY5sgAQSsgAUEwakHstsUAQcy2xQAQ4AYACyABQgA3ASIgAUHc4AA7ASALQQIhAkEACyEAIAFBOGogAUEoai8BADsBACABIAEpAyA3AzALIAJB/wFxIQUgAEH/AXEhAiADKAIAIQYgAygCBCgCECEHIAEoAjAhBANAIAQhACAGIAVBgAFNBH8gAUEwaiACai0AAAUgAAsgBxECAA0EIAJBAWoiAiAFRw0ACwwACwALIAAoAhAiBARAIARB6rLFAEEQEJcDDQILIABBADoABEEACyECIAAgAjYCAAwCC0EBIQIMAQtBACECCyABQUBrJAAgAgu9BgEIfyMAQSBrIQgDQCABKAIAIgRB////A3EhAyAEQYCAgIB4cSEGAkAgBEGAgID8B3EiAkGAgID8B0YEQCADQQ12IAZBEHZyQYAEQQAgAxtyQYD4AXIhBgwBCyAGQRB2IQYgAkGAgIC4BE0EQCACQYCAgMQDTwRAIARBDHYgBEH/3wBxQQBHcSACQQ12IANBDXZqQYCAAWogBnJqIQYMAgsgAkGAgICYA0kNASADQYCAgARyIgRB/gAgAkEXdiIDa3YhAiAEQR0gA2siA3ZBAXEEfyACQQMgA3RBAWsgBHFBAEdqBSACCyAGciEGDAELIAZBgPgBciEGCyABQQRqKAIAIgNB////A3EhBSADQYCAgIB4cSEEAkAgA0GAgID8B3EiAkGAgID8B0cEQCAEQRB2IQQgAkGAgIC4BE0EQCACQYCAgMQDTwRAIANBDHYgA0H/3wBxQQBHcSACQQ12IAVBDXZqQYCAAWogBHJqIQQMAwsgAkGAgICYA0kNAiAFQYCAgARyIgNB/gAgAkEXdiIFa3YhAiADQR0gBWsiBXZBAXEEfyACQQMgBXRBAWsgA3FBAEdqBSACCyAEciEEDAILIARBgPgBciEEDAELIAVBDXYgBEEQdnJBgARBACAFG3JBgPgBciEECyABQQhqKAIAIgVB////A3EhByAFQYCAgIB4cSEDAkAgBUGAgID8B3EiAkGAgID8B0cEQCADQRB2IQMgAkGAgIC4BE0EQCACQYCAgMQDTwRAIAVBDHYgBUH/3wBxQQBHcSACQQ12IAdBDXZqQYCAAWogA3JqIQMMAwsgAkGAgICYA0kNAiAHQYCAgARyIgVB/gAgAkEXdiIHa3YhAiAFQR0gB2siB3ZBAXEEfyACQQMgB3RBAWsgBXFBAEdqBSACCyADciEDDAILIANBgPgBciEDDAELIAdBDXYgA0EQdnJBgARBACAHG3JBgPgBciEDCyAIQQJqIAlqIgIgBjsBACACQQRqIAM7AQAgAkECaiAEOwEAIAFBDGohASAJQQZqIglBHkcNAAsgACAI/QABAv0LAQAgAEEWaiAIQRhqKQEANwEAIABBEGogCEESaikBADcBAAuBCQEEfyMAQTBrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAIgMtAABBAWsOHAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwACyABKAIAQaWtxwBBAiABKAIEKAIMEQAAIQAMHAsgASgCAEGnrccAQQIgASgCBCgCDBEAACEADBsLIAEoAgBBqa3HAEEDIAEoAgQoAgwRAAAhAAwaCyABKAIAQaytxwBBBCABKAIEKAIMEQAAIQAMGQsgASgCAEGwrccAQQUgASgCBCgCDBEAACEADBgLIAEoAgBBta3HAEECIAEoAgQoAgwRAAAhAAwXCyABKAIAQbetxwBBAyABKAIEKAIMEQAAIQAMFgsgASgCAEG6rccAQQQgASgCBCgCDBEAACEADBULIAEoAgBBvq3HAEEFIAEoAgQoAgwRAAAhAAwUCyABKAIAQcOtxwBBAiABKAIEKAIMEQAAIQAMEwsgASgCAEHFrccAQQMgASgCBCgCDBEAACEADBILIAEoAgBByK3HAEEEIAEoAgQoAgwRAAAhAAwRCyABKAIAQcytxwBBBSABKAIEKAIMEQAAIQAMEAsgASgCAEHRrccAQQYgASgCBCgCDBEAACEADA8LIAEoAgBB163HAEECIAEoAgQoAgwRAAAhAAwOCyABKAIAQdmtxwBBAyABKAIEKAIMEQAAIQAMDQsgASgCAEHcrccAQQQgASgCBCgCDBEAACEADAwLIAEoAgBB4K3HAEEFIAEoAgQoAgwRAAAhAAwLCyABKAIAQeWtxwBBAyABKAIEKAIMEQAAIQAMCgsgASgCAEHorccAQQQgASgCBCgCDBEAACEADAkLIAEoAgBB7K3HAEEFIAEoAgQoAgwRAAAhAAwICyABKAIAQfGtxwBBBiABKAIEKAIMEQAAIQAMBwsgASgCAEH3rccAQQQgASgCBCgCDBEAACEADAYLIAEoAgBB+63HAEEFIAEoAgQoAgwRAAAhAAwFCyABKAIAQYCuxwBBBiABKAIEKAIMEQAAIQAMBAsgASgCAEGGrscAQQcgASgCBCgCDBEAACEADAMLIAEoAgBBja7HAEEFIAEoAgQoAgwRAAAhAAwCCyABKAIAQZKuxwBBBiABKAIEKAIMEQAAIQAMAQtBASEAIAIgA0EBajYCDCABKAIAIgNBpqvHAEEHIAEoAgQiBSgCDCIEEQAADQACQCABLQAKQYABcUUEQCADQbuzxQBBASAEEQAADQIgAkEMaiABEMQEDQIgASgCACEDIAEoAgQoAgwhBAwBCyADQduBwgBBAiAEEQAADQEgAkEBOgAfIAIgBTYCFCACIAM2AhAgAkHggcIANgIkIAIgASkCCDcCKCACIAJBH2o2AhggAiACQRBqNgIgIAJBDGogAkEgahDEBA0BIAIoAiBB2YHCAEECIAIoAiQoAgwRAAANAQsgA0HejsgAQQEgBBEAACEACyACQTBqJAAgAAuDBwMIfwN9AXsjAEEQayIHJAAgB0EEaiABEKsGIAcoAgghCAJ/AkACQCAAKAIIIgIEQCAHKAIMIQRDAACAPyAAKgJAIAAtAFhBAkYiBRtDAAAAACAAKgI8IAUbIguTIQwgAkECdCEJIAAoAgRBDGohBUEAIQADQCAEIABBA2oiAk0EQCACIARB0NvBABCMBwALIAQgAGsiAkEAIAIgBE0bIgJBAUYNAyACQQJGDQIgACAIaiIDLQAAs/0TIANBAWotAACz/SAB/QwAAH9DAAB/QwAAf0MAAH9D/ecBIQ0gA0EDai0AALNDAAB/Q5W8IgJB////A3EhBiADQQJqLQAAs0MAAH9DlSEKAkAgAkGAgID8B3EiA0GAgID8B0YEQCAGQQ12QYAEQQAgBhtyQYD4AXIhAgwBCyADQYCAgLgESwRAQYD4ASECDAELIAJBgICAxANPBEAgA0ENdiAGQQ12aiACQQx2IAJB/98AcUEAR3FqQYCAAWohAgwBCyACQYCAgJgDSQRAQQAhAgwBCyAGQYCAgARyIgZB/gAgAkEXdiIDa3YhAiAGQR0gA2siA3ZBAXFFDQAgAkEDIAN0QQFrIAZxQQBHaiECCyAFIAI7AQAgBUECakH/AUMAAH9DQwAAAAAgCiALkyAMlUMAAH9DlCIKIApDAAAAAF0bIgogCkMAAH9DXhsQuQciCvwBQQAgCkMAAAAAYBsgCkMAAH9DXhtBEHRB/wFDAAB/Q0MAAAAAIA39HwEgC5MgDJVDAAB/Q5QiCiAKQwAAAABdGyIKIApDAAB/Q14bELkHIgr8AUEAIApDAAAAAGAbIApDAAB/Q14bQQh0ckH/AUMAAH9DQwAAAAAgDf0fACALkyAMlUMAAH9DlCIKIApDAAAAAF0bIgogCkMAAH9DXhsQuQciCvwBQQAgCkMAAAAAYBsgCkMAAH9DXhtyIgI7AQAgBUEEaiACQRB2OgAAIAVBGGohBSAJIABBBGoiAEcNAAsLAkACQCAHKAIEIgAEQCAIQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyAAakkNASACQQAgBCAAQSdqSxsNAiAIEKICCyABQYQITwRAIAEQmwcLIAdBEGokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAAQQJqDAELIABBAWoLIARB4NvBABCMBwAL8AgBBX8jAEEgayIDJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AAEEBaw4cAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHAALIAEoAgBBpa3HAEECIAEoAgQoAgwRAAAhAgwcCyABKAIAQaetxwBBAiABKAIEKAIMEQAAIQIMGwsgASgCAEGprccAQQMgASgCBCgCDBEAACECDBoLIAEoAgBBrK3HAEEEIAEoAgQoAgwRAAAhAgwZCyABKAIAQbCtxwBBBSABKAIEKAIMEQAAIQIMGAsgASgCAEG1rccAQQIgASgCBCgCDBEAACECDBcLIAEoAgBBt63HAEEDIAEoAgQoAgwRAAAhAgwWCyABKAIAQbqtxwBBBCABKAIEKAIMEQAAIQIMFQsgASgCAEG+rccAQQUgASgCBCgCDBEAACECDBQLIAEoAgBBw63HAEECIAEoAgQoAgwRAAAhAgwTCyABKAIAQcWtxwBBAyABKAIEKAIMEQAAIQIMEgsgASgCAEHIrccAQQQgASgCBCgCDBEAACECDBELIAEoAgBBzK3HAEEFIAEoAgQoAgwRAAAhAgwQCyABKAIAQdGtxwBBBiABKAIEKAIMEQAAIQIMDwsgASgCAEHXrccAQQIgASgCBCgCDBEAACECDA4LIAEoAgBB2a3HAEEDIAEoAgQoAgwRAAAhAgwNCyABKAIAQdytxwBBBCABKAIEKAIMEQAAIQIMDAsgASgCAEHgrccAQQUgASgCBCgCDBEAACECDAsLIAEoAgBB5a3HAEEDIAEoAgQoAgwRAAAhAgwKCyABKAIAQeitxwBBBCABKAIEKAIMEQAAIQIMCQsgASgCAEHsrccAQQUgASgCBCgCDBEAACECDAgLIAEoAgBB8a3HAEEGIAEoAgQoAgwRAAAhAgwHCyABKAIAQfetxwBBBCABKAIEKAIMEQAAIQIMBgsgASgCAEH7rccAQQUgASgCBCgCDBEAACECDAULIAEoAgBBgK7HAEEGIAEoAgQoAgwRAAAhAgwECyABKAIAQYauxwBBByABKAIEKAIMEQAAIQIMAwsgASgCAEGNrscAQQUgASgCBCgCDBEAACECDAILIAEoAgBBkq7HAEEGIAEoAgQoAgwRAAAhAgwBC0EBIQIgASgCACIEQaarxwBBByABKAIEIgYoAgwiBREAAA0AIABBAWohAAJAIAEtAApBgAFxRQRAIARBu7PFAEEBIAURAAANAiAAIAEQygQNAiABKAIAIQQgASgCBCgCDCEFDAELIARB24HCAEECIAURAAANASADQQE6AA8gAyAGNgIEIAMgBDYCACADQeCBwgA2AhQgAyABKQIINwIYIAMgA0EPajYCCCADIAM2AhAgACADQRBqEMoEDQEgAygCEEHZgcIAQQIgAygCFCgCDBEAAA0BCyAEQd6OyABBASAFEQAAIQILIANBIGokACACC60GAQh/IwBBIGshCANAIAEoAgAiBEH///8DcSEDIARBgICAgHhxIQYCQCAEQYCAgPwHcSICQYCAgPwHRgRAIANBDXYgBkEQdnJBgARBACADG3JBgPgBciEGDAELIAZBEHYhBiACQYCAgLgETQRAIAJBgICAxANPBEAgBEEMdiAEQf/fAHFBAEdxIAJBDXYgA0ENdmpBgIABaiAGcmohBgwCCyACQYCAgJgDSQ0BIANBgICABHIiBEH+ACACQRd2IgNrdiECIARBHSADayIDdkEBcQR/IAJBAyADdEEBayAEcUEAR2oFIAILIAZyIQYMAQsgBkGA+AFyIQYLIAFBBGooAgAiA0H///8DcSEFIANBgICAgHhxIQQCQCADQYCAgPwHcSICQYCAgPwHRwRAIARBEHYhBCACQYCAgLgETQRAIAJBgICAxANPBEAgA0EMdiADQf/fAHFBAEdxIAJBDXYgBUENdmpBgIABaiAEcmohBAwDCyACQYCAgJgDSQ0CIAVBgICABHIiA0H+ACACQRd2IgVrdiECIANBHSAFayIFdkEBcQR/IAJBAyAFdEEBayADcUEAR2oFIAILIARyIQQMAgsgBEGA+AFyIQQMAQsgBUENdiAEQRB2ckGABEEAIAUbckGA+AFyIQQLIAFBCGooAgAiBUH///8DcSEHIAVBgICAgHhxIQMCQCAFQYCAgPwHcSICQYCAgPwHRwRAIANBEHYhAyACQYCAgLgETQRAIAJBgICAxANPBEAgBUEMdiAFQf/fAHFBAEdxIAJBDXYgB0ENdmpBgIABaiADcmohAwwDCyACQYCAgJgDSQ0CIAdBgICABHIiBUH+ACACQRd2IgdrdiECIAVBHSAHayIHdkEBcQR/IAJBAyAHdEEBayAFcUEAR2oFIAILIANyIQMMAgsgA0GA+AFyIQMMAQsgB0ENdiADQRB2ckGABEEAIAcbckGA+AFyIQMLIAhBDmogCWoiAiAGOwEAIAJBBGogAzsBACACQQJqIAQ7AQAgAUEMaiEBIAlBBmoiCUESRw0ACyAAIAj9AAEO/QsBACAAQRBqIAhBHmovAQA7AQALzwgCB3sKfyABIAAgAEEDakF8cSIKayILaiIMQQNxIQ1BACEBIAAgCkcEQANAIAEgACwAAEG/f0pqIQEgAEEBaiEAIAtBAWoiCw0ACwsCQCANRQ0AIAogDEF8cWoiACwAAEG/f0ohCSANQQFGDQAgCSAALAABQb9/SmohCSANQQJGDQAgCSAALAACQb9/SmohCQsgDEECdiELIAEgCWohDAJAA0AgCiEJIAtFDQFBwAEgCyALQcABTxsiDkEDcSEPAkAgDkECdCIQQfAHcSIRRQRAQQAhAQwBC0EAIQEgCSEAIBBBEGsiCkEwTwRAIAAgCkEEdkEBaiISQfz///8BcSINQQR0aiEA/QwAAAAAAAAAAAAAAAAAAAAAIQIgDSEKIAkhAQNAIAH9AAIAIgMgAf0AAhAiBP0NDA0ODxwdHh8AAQIDAAECAyAB/QACICIGIAH9AAIwIgf9DQABAgMAAQIDDA0ODxwdHh/9DQABAgMEBQYHGBkaGxwdHh8iBf1NQQf9rQEgBUEG/a0B/VD9DAEBAQEBAQEBAQEBAQEBAQEiBf1OIAMgBP0NCAkKCxgZGhsAAQIDAAECAyAGIAf9DQABAgMAAQIDCAkKCxgZGhv9DQABAgMEBQYHGBkaGxwdHh8iCP1NQQf9rQEgCEEG/a0B/VAgBf1OIAMgBP0NBAUGBxQVFhcAAQIDAAECAyAGIAf9DQABAgMAAQIDBAUGBxQVFhf9DQABAgMEBQYHGBkaGxwdHh8iCP1NQQf9rQEgCEEG/a0B/VAgBf1OIAMgBP0NAAECAxAREhMAAQIDAAECAyAGIAf9DQABAgMAAQIDAAECAxAREhP9DQABAgMEBQYHGBkaGxwdHh8iA/1NQQf9rQEgA0EG/a0B/VAgBf1OIAL9rgH9rgH9rgH9rgEhAiABQUBrIQEgCkEEayIKDQALIAIgAiAD/Q0ICQoLDA0ODwABAgMAAQID/a4BIgIgAiAC/Q0EBQYHAAECAwABAgMAAQID/a4B/RsAIQEgDSASRg0BCyAJIBFqIQoDQCAAQQhq/V0CACIC/U1BB/2tASACQQb9rQH9UP0MAQEBAQEBAQEBAQEBAQEBASIC/U4iA/0bASAA/V0CACIE/U1BB/2tASAEQQb9rQH9UCAC/U4iAv0bASAC/RsAIAFqaiAD/RsAamohASAAQRBqIgAgCkcNAAsLIAsgDmshCyAJIBBqIQogAUEIdkH/gfwHcSABQf+B/AdxakGBgARsQRB2IAxqIQwgD0UNAAsCfyAJIA5B/AFxQQJ0aiIBKAIAIgBBf3NBB3YgAEEGdnJBgYKECHEiACAPQQFGDQAaIAAgASgCBCIAQX9zQQd2IABBBnZyQYGChAhxaiIAIA9BAkYNABogACABKAIIIgBBf3NBB3YgAEEGdnJBgYKECHFqCyIAQQh2Qf+BHHEgAEH/gfwHcWpBgYAEbEEQdiAMaiEMCyAMC+sEAQR/AkACQCAAKAIAIgIEQCAAKAIEIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILIAAoAgwiAgRAIAAoAhAiA0EEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAQgAkEnaksbDQIgAxCiAgsgACgCOCICBEAgACgCPCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAKAJcIgIEQCAAKAJgIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILIAAoAmgiAkGAgICAeHJBgICAgHhHBEAgACgCbCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAKAJ0IgIEQCAAKAJ4IgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILAkAgACgCoAEiAkGAgICAeEYNACACBEAgACgCpAEiA0EEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgAmpJDQIgAUEAIAQgAkEnaksbDQMgAxCiAgsgACgCrAEiAkUNACAAKAKwASIAQQRrKAIAIgNBeHEiAUEEQQggA0EDcSIDGyACakkNASADQQAgASACQSdqSxsNAiAAEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC90GAQZ/QeS0yQAoAgAiAiAASQRAIAAgAiIBayIDQdy0yQAoAgAgAWtLBEBB3LTJACABIANBBEEEEKQFQeS0yQAoAgAhAQtB4LTJACgCACIFIAFBAnRqIQQgA0ECTwRAIAAgAkF/c2pBAnQiBgRAIARBACAG/AsACyAAIAFqQQJ0IAJBAnRrIAVqQQRrIQQgASADakEBayEBCyAEQQA2AgBB5LTJACABQQFqNgIAC0HwtMkAKAIAIgIgAEkEQCAAIAIiAWsiA0HotMkAKAIAIAFrSwRAQei0yQAgASADQQRBBBCkBUHwtMkAKAIAIQELQey0yQAoAgAiBSABQQJ0aiEEIANBAk8EQCAAIAJBf3NqQQJ0IgYEQCAEQQAgBvwLAAsgACABakECdCACQQJ0ayAFakEEayEEIAEgA2pBAWshAQsgBEEANgIAQfC0yQAgAUEBajYCAAtBlLXJACgCACICIABJBEAgACACIgFrIgNBjLXJACgCACABa0sEQEGMtckAIAEgA0EEQQQQpAVBlLXJACgCACEBC0GQtckAKAIAIgUgAUECdGohBCADQQJPBEAgACACQX9zakECdCIGBEAgBEEAIAb8CwALIAAgAWpBAnQgAkECdGsgBWpBBGshBCABIANqQQFrIQELIARBADYCAEGUtckAIAFBAWo2AgALQfy0yQAoAgAiAkH//wNNBEAgAiEAQYCABCACayIBQfS0yQAoAgAgAmtLBEBB9LTJACACIAFBBEEEEKQFQfy0yQAoAgAhAAtB+LTJACgCACIEIABBAnQiA2ohASACQf//A0cEQEH8/w8gAkECdCIFayIGBEAgAUEAIAb8CwALIAMgBWsgBGpB/P8PaiEBIAAgAmtB//8DaiEACyABQQA2AgBB/LTJACAAQQFqNgIAC0GItckAKAIAIgJB//8DTQRAIAIhAEGAgAQgAmsiAUGAtckAKAIAIAJrSwRAQYC1yQAgAiABQQRBBBCkBUGItckAKAIAIQALQYS1yQAoAgAiBCAAQQJ0IgNqIQEgAkH//wNHBEBB/P8PIAJBAnQiBWsiBgRAIAFBACAG/AsACyADIAVrIARqQfz/D2ohASAAIAJrQf//A2ohAAsgAUEANgIAQYi1yQAgAEEBajYCAAsLjgcCAX8BfCMAQTBrIgIkAAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAtAABBAWsOEQECAwQFBgcICQoLDA0ODxARAAsgAiAALQABOgAIIAIgAkEIaq1CgICAgMABhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBAjYCHCACQfSQxgA2AhggAiACQRBqNgIgIAJBGGoQwQMMEQsgAiAAKQMINwMIIAIgAkEIaq1CgICAgKAFhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBAjYCHCACQZCRxgA2AhggAiACQRBqNgIgIAJBGGoQwQMMEAsgAiAAKQMINwMIIAIgAkEIaq1CgICAgNANhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBAjYCHCACQZCRxgA2AhggAiACQRBqNgIgIAJBGGoQwQMMDwsgACsDCCEDIAIgAkEQaq1CgICAgOANhDcDCCACIAM5AxAgASgCACABKAIEIAJCATcCJCACQQI2AhwgAkHspcYANgIYIAIgAkEIajYCICACQRhqEMEDDA4LIAIgACgCBDYCCCACIAJBCGqtQoCAgIDwDYQ3AxAgASgCACABKAIEIAJCATcCJCACQQI2AhwgAkGskcYANgIYIAIgAkEQajYCICACQRhqEMEDDA0LIAIgACkCBDcCCCACIAJBCGqtQoCAgICADoQ3AxAgASgCACABKAIEIAJCATcCJCACQQE2AhwgAkHEkcYANgIYIAIgAkEQajYCICACQRhqEMEDDAwLIAEoAgBBzJHGAEEKIAEoAgQoAgwRAAAMCwsgASgCAEHWkcYAQQogASgCBCgCDBEAAAwKCyABKAIAQeCRxgBBDCABKAIEKAIMEQAADAkLIAEoAgBB7JHGAEEOIAEoAgQoAgwRAAAMCAsgASgCAEH6kcYAQQggASgCBCgCDBEAAAwHCyABKAIAQYKSxgBBAyABKAIEKAIMEQAADAYLIAEoAgBBhZLGAEEEIAEoAgQoAgwRAAAMBQsgASgCAEGJksYAQQwgASgCBCgCDBEAAAwECyABKAIAQZWSxgBBDyABKAIEKAIMEQAADAMLIAEoAgBBpJLGAEENIAEoAgQoAgwRAAAMAgsgASgCAEGxksYAQQ4gASgCBCgCDBEAAAwBCyABKAIAIAAoAgQgACgCCCABKAIEKAIMEQAACyACQTBqJAAL9AUCBX8BfiABQiCIIAFCEIinIQUCfyABpyIDQf//AXFFBEAgA0EQdAwBCyADQf8HcSEGIANBgIACcSECIANBgPgBcSIDQYD4AUYEQCACQRB0IQMgA0GAgID8B3IgBkUNARogAyAGQQ10ckGAgID+B3IMAQsgAkEQdCECIANBDXRBgICA/ABxIAZBDXRyQYCAgMADaiACciADDQAaIAYgBmdBEGsiBkH//wNxQQhqdEH///8DcSACQYCAgNgDciAGQRd0a3ILIQYgAUIwiCEBpyEDAn8gBUH//wFxBEAgBUH/B3EhAiAFQYCAAnEhBCAFQYD4AXEiBUGA+AFHBEAgBEEQdCEEIAVBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAEciAFDQIaIAIgAmdBEGsiBUH//wNxQQhqdEH///8DcSAEQYCAgNgDciAFQRd0a3IMAgsgBEEQdCEFIAUgAkENdHJBgICA/gdyIAINARogBUGAgID8B3IMAQsgBUEQdAshBSABpyECIAAgBv0RIAX9HAECfyADQf//AXEEQCADQf8HcSEEIANBgIACcSEAIANBgPgBcSIDQYD4AUcEQCAAQRB0IQAgA0ENdEGAgID8AHEgBEENdHJBgICAwANqIAByIAMNAhogBCAEZ0EQayIDQf//A3FBCGp0Qf///wNxIABBgICA2ANyIANBF3RrcgwCCyAAQRB0IQMgAyAEQQ10ckGAgID+B3IgBA0BGiADQYCAgPwHcgwBCyADQRB0C/0cAgJ/IAJB//8BcQRAIAJB/wdxIQQgAkGAgAJxIQAgAkGA+AFxIgJBgPgBRwRAIABBEHQhACACQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogAHIgAg0CGiAEIARnQRBrIgJB//8DcUEIanRB////A3EgAEGAgIDYA3IgAkEXdGtyDAILIABBEHQhAiACIARBDXRyQYCAgP4HciAEDQEaIAJBgICA/AdyDAELIAJBEHQL/RwD/QsEAAuOBgENfyAAIAAoAgQiCCAAKAIAIgNJQQJ0aiIFIABBDEEIIAAoAgwgACgCCEkiBBtqIgkgACADIAhNQQJ0aiIIIABBCEEMIAQbaiIDKAIAIAgoAgBJIgQbIAkoAgAiCyAFKAIAIgpJIgUbIgYoAgAhDCADIAggCSAFGyAEGyIHKAIAIQ0gAiALIAogBRsiCTYCACACIAcgBiAMIA1LIgUbKAIANgIEIAIgBiAHIAUbKAIANgIIIAJBDGoiCyAIIAMgBBsoAgAiCDYCACAAQRBqIgMgACgCFCIFIAAoAhAiBklBAnRqIgcgA0EMQQggACgCHCAAKAIYSSIKG2oiBCADIAUgBk9BAnRqIgAgA0EIQQwgChtqIgUoAgAgACgCAEkiBhsgBCgCACIKIAcoAgAiDEkiAxsiBygCACENIAUgACAEIAMbIAYbIgQoAgAhDiACQRBqIg8gCiAMIAMbIgM2AgAgAkEUaiAEIAcgDSAOSyIKGygCADYCACACQRhqIAcgBCAKGygCADYCACACQRxqIgcgACAFIAYbKAIAIgA2AgAgASAD/REgDyADIAlJQQJ0aiIFKAIAIgT9HAEgBSAEIAIgAyAJT0ECdGoiBigCACICSUECdGoiBSgCACID/RwCIAUgAyAGIAIgBE1BAnRqIgYoAgAiBElBAnRqIgooAgAiBf0cAyAJ/REgAv0cASAE/RwCIAYgAyAET0ECdGoiDCgCACIC/RwD/bcB/QsCACABIAdBfEEAIAAgCE8baiIBQXxBACABKAIAIgEgC0F8QQAgACAISRtqIgQoAgAiCU8baiIDQXxBACADKAIAIgMgBEF8QQAgASAJSRtqIgcoAgAiBE8baiILKAIAIgb9ESAD/RwBIAH9HAIgAP0cAyAHQXxBACADIARJG2oiASgCACIA/REgBP0cASAJ/RwCIAj9HAP9uQH9CwIQAkAgDCACIAVNQQJ0aiABQXxBACAAIAZLG2pBBGpGBEAgCiACIAVLQQJ0aiALQXxBACAAIAZNG2pBBGpGDQELEIAIAAsLrQYCBX8EfSMAQSBrIgQkAEEBIQUCQAJAAkAgAiACQQRBAyADQQFxGyIHbiIGIAdsRgRAIAZBAnQiBwRAQQAhBQJAIAdBAE4EQCAEQQA2AhggBEEIakEBIAcgBEEUahCFByAEKAIIQQFHDQEgBCgCECEGIAQoAgwhBQsgBCAGNgIYIAQgBTYCFEHgvsQAQTYgBEEUakHQvsQAQZi/xAAQ4AYACyAEKAIMIQULQQAhBiAEQQA2AhwgBCAFNgIYIAQgBzYCFCADQQFxDQEgAkEDbiIDQQJ0IgIEQCACIAdLBEAgBEEUakEAIAIQ7wUgBCgCHCEGIAQoAhghBQsgBSAGaiEHIAJBAWsiCARAIAdBACAI/AsACyAHIAhqQQA6AAAgAiAGaiEGCyAEIAY2AhwgBkECdiICIAMgAiADSRsiA0UNAgNAIAFBCGoqAgAhCyABQQRqKgIAIQpDAAB/QyEJIAEqAgAiDEMAAIA/XQR9IAxDAAAAABDgCEMAAH9DlAUgCQsQuQciDEMAAIC/XkUgDEMAAIBDXUVyDQQgCkMAAIA/XQR9IApDAAAAABDgCEMAAH9DlAUgCQsQuQciCkMAAIC/XkUgCkMAAIBDXUVyDQQgC0MAAIA/XQR9IAtDAAAAABDgCEMAAH9DlAUgCQsQuQciCUMAAIC/XkUgCUMAAIBDXUVyDQQgBSAM/AE6AAAgBUEDakH/AToAACAFQQJqIAn8AToAACAFQQFqIAr8AToAACABQQxqIQEgBUEEaiEFIANBAWsiAw0ACwwCC0H4vcQAQcUAQcC+xAAQ6wcACwJAAkAgAiAHSwRAIARBFGpBACACEO8FIAQoAhghBSAEKAIcIQMMAQtBACEDIAJFDQELA0BDAAB/QyEJIAEqAgAiC0MAAIA/XQR9IAtDAAAAABDgCEMAAH9DlAUgCQsQuQciCUMAAIC/XkUgCUMAAIBDXUVyDQMgAyAFaiAJ/AE6AAAgAUEEaiEBIANBAWohAyACQQFrIgINAAsLIAQgAzYCHAsgACAEKQIUNwIAIABBCGogBEEcaigCADYCACAEQSBqJAAPC0Gov8QAEN0JAAvABgEGfyMAQfAAayICJAACfwJAAkACQCAAKAIAIgFFDQACQCAAKAIIIgMgACgCBCIFTw0AIAEgA2otAABB1QBHDQBBASEEIAAgA0EBaiIDNgIICwJAAkACQCADIAVJBEAgASADai0AAEHLAEYNAQsgBEUNA0EAIQMMAQsgACADQQFqIgY2AggCQAJAIAUgBk0NACABIAZqLQAAQcMARw0AIAAgA0ECajYCCEEBIQFBxbPFACEDDAELIAJByABqIAAQ7wIgAigCSCIDRQRAIAItAEwhASAAKAIQIgQEQEEBIARB+rLFAEHqssUAIAFBAXEiBBtBGUEQIAQbEJcDDQgaCyAAIAE6AAQgAEEANgIAQQAMBwsgAigCTCIBBEAgAigCVEUNAQsgACgCECIBBEAgAUHqssUAQRAQlwMNBQsgAEEAOgAEIABBADYCAEEADAYLIARFDQELIAAoAhAiBARAIARBxrPFAEEHEJcDDQMLIANFDQELIAAoAhAiBARAIARBzbPFAEEIEJcDDQILIAJBATsBRCACIAE2AkAgAkEANgI8IAJBAToAOCACQd8ANgI0IAIgATYCMCACQQA2AiwgAiABNgIoIAIgAzYCJCACQd8ANgIgIAJBGGogAkEgahCuBCACKAIYIgEEQCAEBEAgBCABIAIoAhwQlwMNAwsgAkHIAGogAkEgakEo/AoAACAEIQEDQCABIQMCQANAIAMhBSACQRBqIAJByABqEK4EIAIoAhAiBkUNAUEAIQMgBUUNAAsgAigCFCEDIAVB6rPFAEEBEJcDDQRBACEBIARFDQEgBCIBIAYgAxCXAw0EDAELCyABRQ0BIAFB6LPFAEECEJcDRQ0BDAILQdizxQAQ3QkACyAAKAIQIgEEQCABQeuzxQBBAxCXAw0BCyACQQhqIAAQtwZBASACKAIIQQFxDQIaIAAoAhAiAQRAQQEgAUHejsgAQQEQlwMNAxoLIAAoAgAiA0UNASAAKAIIIgEgACgCBE8NASABIANqLQAAQfUARw0BIAAgAUEBajYCCEEADAILQQEMAQsgACgCECIBBEBBASABQe6zxQBBBBCXAw0BGgsgABCGAgsgAkHwAGokAAvLBgIIfwN+IwBBoAFrIgMkACABvCEEAn9BAyABi0MAAIB/Ww0AGkECIARBgICA/AdxIgdBgICA/AdGDQAaIARB////A3EiBUGAgIAEciAEQQF0Qf7//wdxIARBF3ZB/wFxIgYbIgitIgtCAYMhDCAHRQRAQQQgBUUNARogBkGWAWshBkIBIQ0gDFAMAQtCgICAECALQgGGIAhBgICABEYiBRshC0ICQgEgBRshDUHofkHpfiAFGyAGaiEGIAxQCyEHIAMgBjsBiAEgAyANNwOAASADQgE3A3ggAyALNwNwIAMgBzoAigECQAJAAkACQAJAAkACQAJAIAdB/wFxQQFNBEAgA0HgAGogA0HwAGogA0EHahDPASADKAJgRQ0BIANBmAFqIANB6ABqKAIANgIAIAMgAykCYDcDkAEMAgsgB0H/AXEiBUECRg0CIANBAjsBGEEBIQdB6rPFAEHIgcIAIARBAEgiBhtB6rPFAEEBIAYbIAIbIQZBASAEQR92IAIbIQIgBUEERg0DIANBAzYCICADQeydxgA2AhwMBwsgA0GQAWogA0HwAGogA0EHahBXCyADKAKUASIHRQ0CIAMoApABIgYtAABBME0NA0Hqs8UAQQEgBEEASCIFGyEIQeqzxQBByIHCACAFGyEJIARBH3YhCiADLgGYASEFIAMgBjYCHCADQQI7ARggA0EBNgIgIAdBAUYEQCADQSRqIQRBAyEHDAULIANBPGohBCADQQI7ATAgA0HsucUANgIoIANBAjsBJCADIAdBAWs2AjggA0EBNgIsIAMgBkEBajYCNEEFIQcMBAsgA0EDNgIgIANB853GADYCHCADQQI7ARhBASEGQQAhAkEBIQcMBAsgA0EDNgIgIANBu4PCADYCHAwDC0G+g8IAQSFBoITCABDrBwALQfCDwgBBH0GwhMIAEOsHAAsgCSAIIAIbIQZBASAKIAIbIQIgBEEBOwEMIARBAjsBACAEQQEgBWsgBUEBayAFQQBMIgUbOwEOIARBAkEBIAUbNgIIIARBwYTCAEHAhMIAIAUbNgIECyADIAc2AmwgAyACNgJkIAMgBjYCYCADIANBGGo2AmggACADQeAAahC+AyADQaABaiQAC8QHAg1/AnsjAEEwayICJAAgAS0AASIFIAEtAAAiBkEBdGohDEECIQ1BAiIDBEAgAUECaiEEA0AgDUEBdCENIAQtAAAgDEEBdGohDCAEQQFqIQQgA0EBayIDDQALCyABQQRqIQMgAkEAOgASIAJBAToAEwJ/IAUtAPD5RCAGLQDw+URPBEBBASEKIAUhCCAGIQVBAAwBCyACQQA6ABMgAkEBOgASIAYhCEEBCyEGQQIhBCACQQI2AiQgAkKAgICA8B83AhwgAiADNgIYIAIgATYCFAJAAkADQAJAAkACQCAERQRAIAIoAiAiA0UNBiACIANBAWs2AiAgAigCFCIEIAIoAhhHDQEMBgsgAkEANgIkIAJBCGohCwJAAkACQCAEIAJBFGoiAygCDCIHTwRAIAcNAQwCCyADIAcgBEF/c2o2AgwgAyADKAIAIgkgBGoiB0EBaiADKAIEIg4gBCAOIAlrIglJGzYCACAEIAlPDQEgAyADKAIIIARqIgRBAWo2AggMAgsgAyADKAIAIgkgB0EBayIEakEBaiADKAIEIg4gBCAOIAlrIglJGzYCACAEIAlJBEAgAyADKAIIIAdqNgIIC0EAIQcgA0EANgIMDAELQQAhBwsgCyAHNgIEIAsgBDYCACACKAIMIgRFDQUgAigCCCEDDAELIAIgBEEBajYCFCACIAIoAhwiA0EBajYCHAsgBC0AACIELQDw+UQiByAFQf8BcSILLQDw+URPBEACQCAEIAtGDQAgByAIQf8BcS0A8PlETw0AIANBgAJPDQIgAiADOgATIAMhCiAEIQgLIAIoAiQhBAwCCyACIAY6ABMgA0H/AUsNAiACIAM6ABIgBiEKIAMhBiAFIQggBCEFIAIoAiQhBAwBCwtB2ObIAEErIAJBL2pBiJbIAEHYmMgAEOAGAAtB2ObIAEErIAJBL2pBiJbIAEHomMgAEOAGAAsgBkH/AXEiCCAKQf8BcUYEQCACQQA2AhRBASACQRJqIAJBE2ogAkEUakHImMgAEPkHAAsCQCAIQQRJBEAgCkH/AXEiBUEETw0BIAEgBWr9BwAAIQ8gASAIav0HAAAhECAAQQQ2AnggACABNgJ0IABBADYCcCAAQRw2AmggACANNgJkIAAgDDYCYCAAQRo2AjAgACAKOgAlIAAgBjoAJCAAQQQgBSAGQf8BcSIBIAEgBUkbQRBqIgEgAUEETRs2AiAgACAP/QsEECAAIBD9CwQAIAJBMGokAA8LIAhBBEGImsgAEIwHAAsgBUEEQZiayAAQjAcAC58GAQd/IwBBMGsiBCQAIAEoAgAiBygCDCEGAkACQAJAIAcoAhQiAyAHKAIQIgJJBEADQCADIAZqLQAAIghBCWsiBUEXS0EBIAV0QZOAgARxRXINAiAHIANBAWoiAzYCFCACIANHDQALIAIhAwtBASEFIARBKGogBiACIANBAWoiASACIAEgAkkbEPkBIAQoAiwhAyAEKAIoIQFBFBBxIgJFDQIgAiABNgIMIAJBAzYCACAAIAI2AgQgAiADNgIQDAELIAhB/QBGBEBBACEFIABBADoAAQwBCwJAIAEtAARFBEAgA0EBaiEDIAhBLEYEQCAHIAM2AhQgAiADSwRAA0AgAyAGai0AACIBQQlrIgVBGUsNBEEBIAV0QZOAgARxRQRAIAVBGUcNBSAAQQE6AAFBACEFDAYLIAcgA0EBaiIDNgIUIAIgA0cNAAsgAiEDC0EBIQUgBEEQaiAGIAIgA0EBaiIBIAIgASACSRsQ+QEgBCgCFCEDIAQoAhAhAUEUEHEiAkUNBCACIAE2AgwgAkEFNgIAIAAgAjYCBCACIAM2AhAMAwsgBEEgaiAGIAIgAyACIAIgA0sbEPkBIAQoAiQhAyAEKAIgIQFBFBBxIgJFDQMgAiABNgIMIAJBCDYCACAAIAI2AgQgAiADNgIQQQEhBQwCC0EAIQUgAUEAOgAEIAhBIkcEQEEBIQUgBCAGIAIgA0EBaiIBIAIgASACSRsQ+QEgBCgCBCEDIAQoAgAhAUEUEHEiAkUNAyACIAE2AgwgAkERNgIAIAAgAjYCBCACIAM2AhAMAgsgAEEBOgABDAELQQEhBSABQf0ARwRAIARBCGogBiACIANBAWoiASACIAEgAkkbEPkBIAQoAgwhAyAEKAIIIQFBFBBxIgJFDQIgAiABNgIMIAJBETYCACAAIAI2AgQgAiADNgIQDAELIARBGGogBiACIANBAWoiASACIAEgAkkbEPkBIAQoAhwhAyAEKAIYIQFBFBBxIgJFDQEgAiABNgIMIAJBFTYCACAAIAI2AgQgAiADNgIQCyAAIAU6AAAgBEEwaiQADwsAC8gGAgd/An4jAEEwayIDJAACQAJAAkAgASgCFCICIAEoAhAiBEkEQCABKAIMIQgCfgJAA0AgAiAIai0AACIFQQlrIgZBF0tBASAGdEGTgIAEcUVyDQEgASACQQFqIgI2AhQgAiAERw0ACyAEIQJCAAwBC0KAAgsgBa1CEIaEQoCCuANRDQELIAACfQJAAkACQAJAAkAgA0EQaiABKAIMIgUgBCACIARJBH8DQAJAIAIgBWotAAAiBkEJaw4lAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEAwQLIAEgAkEBaiICNgIUIAIgBEcNAAsgBAUgAgtBAWoiASAEIAEgBEkbEPkBIAMoAhQhBCADKAIQIQFBFBBxIgJFDQggAiABNgIMIAJBBTYCACACIAQ2AhAMAwsgASACQQFqNgIUIANBGGogAUEAEMcDIAMpAxgiCkIDUQ0BIAMpAyAhCQJAAkAgCqdBAWsOAgABBQsgCbUMBQsgCbQMBAsgBkEwa0H/AXFBCk8EQCABIANBL2pB2OfAABDuASABEOsFIQIMAgsgA0EYaiABQQEQxwMgAykDGCIKQgNRDQAgAykDICEJAkACQAJAIAqnQQFrDgIBAgALIAm/tkMAAIA/QwAAgL8gCUIAWRuYDAULIAm1DAQLIAm0DAMLIAMoAiAhAgsgAEECNgIAIAAgAjYCBAwDCyAJv7ZDAACAP0MAAIC/IAlCAFkbmAs4AgQgAEEBNgIADAELIAEgAkEBaiIHNgIUAkACQAJAIAQgB00NACABIAJBAmoiBTYCFCAHIAhqLQAAQfUARw0BIAUgByAEIAQgB0kbIgdGDQAgASACQQNqIgY2AhQgBSAIai0AAEHsAEcEQCAGIQUMAgsgBiAHRg0AIAEgAkEEaiIFNgIUIAYgCGotAABB7ABHDQEgAEEANgIADAMLIAMgCCAEIAcQ+QEgAygCBCEEIAMoAgAhAUEUEHEiAkUNAyACQQU2AgAMAQsgA0EIaiAIIAQgBRD5ASADKAIMIQQgAygCCCEBQRQQcSICRQ0CIAJBCTYCAAsgAiABNgIMIAAgAjYCBCAAQQI2AgAgAiAENgIQCyADQTBqJAAPCwALzQYDA38BfAN9IwBBEGsiAiQAAkAgASgCAEGUgICAeEYEQAJ9AkAgAAJ/AkACQAJAAn0CQAJAIAEoAgwiBARAAn0CQAJAAkACQAJAAkACQAJAAkACQAJAQRUgASgCCCIBKAIAIgNBgICAgHhzIANBAE4bQQFrDgoKAAECAwQFBgcICQsgAS8BBLMMCgsgASgCBLMMCQsgASkDCLUMCAsgASwABLIMBwsgAS4BBLIMBgsgASgCBLIMBQsgASkDCLQMBAsgASoCBAwDCyABKwMIIgW2QwAAgD9DAACAvyAFvUIAWRuYDAILIAEgAkEPakHY58AAEJUIDAkLIAEtAASzCyEGIARBAUYNBAJAAkACQAJAAkACQAJAAkACQEEVIAEoAhAiA0GAgICAeHMgA0EAThtBAWsOCgsAAQIDBAUGBwgKCyABLwEUswwLCyABKAIUswwKCyABKQMYtQwJCyABLAAUsgwICyABLgEUsgwHCyABKAIUsgwGCyABKQMYtAwFCyABKgIUDAQLIAErAxgiBbZDAACAP0MAAIC/IAW9QgBZG5gMAwtBACACQQ9qQfThwAAQ2wYMBgsgAUEQaiACQQ9qQdjnwAAQlQgMBQsgAS0AFLMLIQcgBEECRg0CAkACQAJAAkACQAJAAkACQAJAQRUgASgCICIDQYCAgIB4cyADQQBOG0EBaw4KDQABAgMEBQYHCAoLIAEvASSzDA0LIAEoAiSzDAwLIAEpAyi1DAsLIAEsACSyDAoLIAEuASSyDAkLIAEoAiSyDAgLIAEpAyi0DAcLIAEqAiQMBgsgASsDKCIFtkMAAIA/QwAAgL8gBb1CAFkbmAwFC0EBIAJBD2pB9OHAABDbBgwCCyABQSBqIAJBD2pB2OfAABCVCAwBC0ECIAJBD2pB9OHAABDbBgs2AgQgAEEBNgIADAMLIAEtACSzCyEIIARBA0cEQCACQQM2AgggBEH9////AGpB/////wBxQQNqIAJBCGpB6JXBABDbBiEBIABBATYCACAAIAE2AgQMAgsgACAIOAIMIAAgBzgCCCAAIAY4AgQgAEEANgIADAELIAEgAkEPakH04cAAEJUIIQEgAEEBNgIAIAAgATYCBAsgAkEQaiQAC+4FAQp/IwBBQGoiBSQAIAVBADYCKCAFQQA2AjxBBCEHIAVBLGohCSAFQTxqIQwCQAJAAkACfyAEQQVJBEAgCSEKIAwMAQsgBUEIaiAFQShqQX8gBEEBa2d2QQFqEPUDIAUoAggiBkGBgICAeEcEQCAGDQJB2JXHAEERQdTMxwAQ6wcACyAFKAI8IgdBBUkEQCAHIQYgCSEKQQQhByAMDAELIAUoAiwhBiAFKAIwIQogCQshCyADIARBAnRqIQ0CQAJAIAsgBiAHSQR/AkAgBEH/////A3EiCCAHIAZBf3NqIgQgBCAISxsiCEEHTQ0AIAZBAnQgCmoiBCADa0EQSQ0AIAYgCEEBaiIIIAhBA3EiCEEEIAgbayIOaiEGIAMgDkECdGoDQCAEIAP9AAIA/QsCACADQRBqIQMgBEEQaiEEIA5BBGsiDg0ACyEDCyAKIAZBAnRqIQQDQCADIA1GDQIgBCADKAIANgIAIARBBGohBCADQQRqIQMgByAGQQFqIgZHDQALIAcFIAYLNgIAIAMgDUYNAQNAAn8gBSgCPCIHQQVJBEAgByEEIAkhC0EEIQcgDAwBCyAFKAIsIQQgBSgCMCELIAkLIQYgAygCACEKIAQgB0YEfyAFQShqENQGIAUoAjAhCyAJIQYgBSgCLAUgBAtBAnQgC2ogCjYCACAGIAYoAgBBAWo2AgAgA0EEaiIDIA1HDQALDAELIAsgBjYCAAsgBUEgaiAFQThqKQIANwMAIAUgBf0AAij9CwMQIAEgAksEQCAAIAJBGGxqIgQoAhQiAUEFTwRAIAQoAggiA0EEaygCACIAQXhxIgIgAUECdCIBQQRBCCAAQQNxIgAbakkNAyAAQQAgAiABQSdqSxsNBCADEKICCyAEIAX9AAMQ/QsCACAEQRBqIAVBIGopAwA3AgAgBUFAayQADwsgAiABQby7xwAQjAcLAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALigYCEX8BfiMAQTBrIgUkACAFQQxqrUKAgICAEIQhFCAALQAMIQwgACgCBCERIAAoAgAhECAAKAIIIglBBGohCgJ/A0ACQCANIhINACAEIQtBASENAkACfyACIAZPBEADQCABIAZqIQcCQAJAAkACQAJAAkACQAJAIAIgBmsiCEEITwRAIAdBA2pBfHEiBCAHRg0BIAQgB2shBEEAIQMDQCADIAdqLQAAQQpGDQkgBCADQQFqIgNHDQALIAQgCEEIayIDSw0DDAILIAIgBkYNA0EAIQMDQCADIAdqLQAAQQpGDQggA0EBaiIDIAhHDQALDAULIAhBCGshA0EAIQQLA0BBgIKECCAEIAdqIg8oAgAiE0GKlKjQAHNrIBNyQYCChAggD0EEaigCACIPQYqUqNAAc2sgD3JxQYCBgoR4cUGAgYKEeEcNASAEQQhqIgQgA00NAAsLIAQgCEcNAQsgAiEGIAsMBgsgBCAHaiEHIAIgBGsgBmshCEEAIQMDQCADIAdqLQAAQQpGDQIgCCADQQFqIgNHDQALCyACIQYgCwwECyADIARqIQMLIAMgBmoiA0EBaiEGAkAgAiADTQ0AIAEgA2otAABBCkcNAEEAIQ0gBiEEDAQLIAIgBk8NAAsLIAsLIQQgAiEDCwJAIAxBAXFFBEAgAEEBOgAMIBAEQCAFIBE2AgwgBSAUNwMQIAooAgAhCCAJKAIAIQwgBUEBNgIsIAVBiPDBADYCKCAFQQE2AiQgBUECNgIcIAVB4PjHADYCGCAFIAVBEGo2AiBBASAMIAggBUEYahDBAw0FGgwCCyAJKAIAQbyLwwBBBCAKKAIAKAIMEQAADQIMAQsgDkUNACAJKAIAQQogCigCACgCEBECAA0BIBAEQCAJKAIAQaDwwQBBByAKKAIAKAIMEQAADQIMAQsgCSgCAEG8i8MAQQQgCigCACgCDBEAAA0BCyAOQQFqIQ5BASEMIAkoAgAgASALaiADIAtrIAooAgAoAgwRAABFDQELCyASQQFzCyAFQTBqJABBAXEL4gYCBX8BfiMAQTBrIgIkACAAKAIAIQAgASgCACIDQeiyxQBBASABKAIEIgQoAgwiBREAACEGIAIgADYCDAJAAkACQAJAAkACQAJAIAYNAAJAIAEtAApBgAFxRQRAIAJBDGogARDEBCACIABBAWo2AgxFDQEMAwsgA0Hc+McAQQEgBREAAA0BIAJBAToAHyACIAQ2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNASACKAIgQdmBwgBBAiACKAIkKAIMEQAAIAIgAEEBajYCDA0CCwJAIAEtAApBgAFxBEAgASkCACEHIAJBAToAHyACIAc3AhAgAkHggcIANgIkIAIgASkCCDcCKCACIAJBH2o2AhggAiACQRBqNgIgIAJBDGogAkEgahDEBA0DIAIoAiBB2YHCAEECIAIoAiQoAgwRAAAgAiAAQQJqNgIMRQ0BDAcLIAEoAgBB55DGAEECIAEoAgQoAgwRAAANAiACQQxqIAEQxAQgAiAAQQJqNgIMDQYLAkAgAS0ACkGAAXEEQCABKQIAIQcgAkEBOgAfIAIgBzcCECACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqEMQEDQcgAigCIEHZgcIAQQIgAigCJCgCDBEAACACIABBA2o2AgxFDQEMBgsgASgCAEHnkMYAQQIgASgCBCgCDBEAAA0GIAJBDGogARDEBCACIABBA2o2AgwNBQsgAS0ACkGAAXFFDQIgASgCACEDIAEoAgQhBEEBIQAgAkEBOgAfIAIgBDYCFCACIAM2AhAgAkHggcIANgIkIAIgASkCCDcCKCACIAJBH2o2AhggAiACQRBqNgIgIAJBDGogAkEgahDEBA0EIAIoAiBB2YHCAEECIAIoAiQoAgwRAABFDQMMBgsgAiAAQQFqNgIMCyACIABBAmo2AgwMAwsgASgCAEHnkMYAQQIgASgCBCgCDBEAAA0BQQEhACACQQxqIAEQxAQNAyABKAIEIQQgASgCACEDCyADQemyxQBBASAEKAIMEQAAIQAMAgtBASEADAELIAIgAEEDajYCDEEBIQALIAJBMGokACAAC4IGAQF/AkACQCABIAMgBWwgBGoiA0kNAAJAIAEgA2siBEEDTQ0AIAAgA2oiBEH/ASACKAIAIAQtAABqIgZBACAGQQBKGyIGIAZB/wFOGzoAACAEQf8BIAIoAgQgBC0AAWoiBkEAIAZBAEobIgYgBkH/AU4bOgABIARB/wEgAigCCCAELQACaiIGQQAgBkEAShsiBiAGQf8BThs6AAIgBEH/ASACKAIMIAQtAANqIgRBACAEQQBKGyIEIARB/wFOGzoAAyABIAMgBWoiA0kNASABIANrIgRBBEkNACAAIANqIgRB/wEgAigCECAELQAAaiIGQQAgBkEAShsiBiAGQf8BThs6AAAgBEH/ASACKAIUIAQtAAFqIgZBACAGQQBKGyIGIAZB/wFOGzoAASAEQf8BIAIoAhggBC0AAmoiBkEAIAZBAEobIgYgBkH/AU4bOgACIARB/wEgAigCHCAELQADaiIEQQAgBEEAShsiBCAEQf8BThs6AAMgASADIAVqIgNJDQEgASADayIEQQRJDQAgACADaiIEQf8BIAIoAiAgBC0AAGoiBkEAIAZBAEobIgYgBkH/AU4bOgAAIARB/wEgAigCJCAELQABaiIGQQAgBkEAShsiBiAGQf8BThs6AAEgBEH/ASACKAIoIAQtAAJqIgZBACAGQQBKGyIGIAZB/wFOGzoAAiAEQf8BIAIoAiwgBC0AA2oiBEEAIARBAEobIgQgBEH/AU4bOgADIAEgAyAFaiIDSQ0BIAEgA2siBEEETw0CC0EAQQQgBEGY4sQAEOoHAAsgAyABIAFBqOLEABDqBwALIAAgA2oiAEH/ASACKAIwIAAtAABqIgFBACABQQBKGyIBIAFB/wFOGzoAACAAQf8BIAIoAjQgAC0AAWoiAUEAIAFBAEobIgEgAUH/AU4bOgABIABB/wEgAigCOCAALQACaiIBQQAgAUEAShsiASABQf8BThs6AAIgAEH/ASACKAI8IAAtAANqIgBBACAAQQBKGyIAIABB/wFOGzoAAwuBBgIHfwJ8IwBBIGsiBiQAQQEhCSABIAEoAhQiB0EBaiIFNgIUAkAgBSABKAIQIghPDQACQAJAIAEoAgwgBWotAABBK2sOAwECAAILQQAhCQsgASAHQQJqIgU2AhQLAkAgAAJ/AkACQAJAAn8CQAJAIAUgCEkEQCABIAVBAWoiBzYCFCABKAIMIgogBWotAABBMGtB/wFxIgVBCk8NAQJAIAcgCE8NAANAIAcgCmotAABBMGtB/wFxIgtBCk8NASABIAdBAWoiBzYCFCAFQcyZs+YARyALQQdLciAFQcuZs+YASnENBiAFQQpsIAtqIQUgByAIRw0ACyAIIQcLIAkNAiAEIAVrIgFBH3VBgICAgHhzIAEgASAESCAFQQBKcxsMAwsgBkEYaiABKAIMIAggBRD5ASAGKAIcIQIgBigCGCEEQRQQcSIBRQ0EIAEgBDYCDCABQQU2AgAgACABNgIEIABBATYCACABIAI2AhAMBwsgBkEQaiAKIAggBxD5ASAGKAIUIQIgBigCECEEQRQQcSIBRQ0DIAEgBDYCDCABQQ02AgAgACABNgIEIABBATYCACABIAI2AhAMBgsgBCAFaiIBQR91QYCAgIB4cyABIAVBAEggASAESHMbCyEFIAO6IQwCQAJAAkAgBSAFQR91IgFzIAFrIgFBtQJPBEADQCAMRAAAAAAAAAAAYQ0HIAVBAE4NAiAMRKDI64XzzOF/oyEMIAVBtAJqIgUgBUEfdSIBcyABayIBQbUCTw0ACwsgAUEDdCsDoIJHIQ0gBUEATg0BIAwgDaMhDAwFCyAGQQhqIAogCCAHEPkBIAYoAgwhAiAGKAIIIQQMAQsgDCANoiIMmUQAAAAAAADwf2INAyAGIAogCCAHEPkBIAYoAgQhAiAGKAIAIQQLQRQQcSIBRQ0BIAEgBDYCDCABQQ42AgAgACABNgIEIAEgAjYCEEEBDAMLIAAgASACIANQIAkQ7AUMAwsACyAAIAwgDJogAhs5AwhBAAs2AgALIAZBIGokAAvbBgIFfwF+IwBBMGsiAiQAIAEoAgAiA0HossUAQQEgASgCBCIEKAIMIgURAAAhBiACIAA2AgwCQAJAAkACQAJAAkACQCAGDQACQCABLQAKQYABcUUEQCACQQxqIAEQxAQgAiAAQQFqNgIMRQ0BDAMLIANB3PjHAEEBIAURAAANASACQQE6AB8gAiAENgIUIAIgAzYCECACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqEMQEDQEgAigCIEHZgcIAQQIgAigCJCgCDBEAACACIABBAWo2AgwNAgsCQCABLQAKQYABcQRAIAEpAgAhByACQQE6AB8gAiAHNwIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNAyACKAIgQdmBwgBBAiACKAIkKAIMEQAAIAIgAEECajYCDEUNAQwHCyABKAIAQeeQxgBBAiABKAIEKAIMEQAADQIgAkEMaiABEMQEIAIgAEECajYCDA0GCwJAIAEtAApBgAFxBEAgASkCACEHIAJBAToAHyACIAc3AhAgAkHggcIANgIkIAIgASkCCDcCKCACIAJBH2o2AhggAiACQRBqNgIgIAJBDGogAkEgahDEBA0HIAIoAiBB2YHCAEECIAIoAiQoAgwRAAAgAiAAQQNqNgIMRQ0BDAYLIAEoAgBB55DGAEECIAEoAgQoAgwRAAANBiACQQxqIAEQxAQgAiAAQQNqNgIMDQULIAEtAApBgAFxRQ0CIAEoAgAhAyABKAIEIQRBASEAIAJBAToAHyACIAQ2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNBCACKAIgQdmBwgBBAiACKAIkKAIMEQAARQ0DDAYLIAIgAEEBajYCDAsgAiAAQQJqNgIMDAMLIAEoAgBB55DGAEECIAEoAgQoAgwRAAANAUEBIQAgAkEMaiABEMQEDQMgASgCBCEEIAEoAgAhAwsgA0HpssUAQQEgBCgCDBEAACEADAILQQEhAAwBCyACIABBA2o2AgxBASEACyACQTBqJAAgAAuOBgIGfwV+QQQhAyABKAIIIgRBBGooAgAhBSABAn4gBEEIaigCACIGIAEpAwAiCiAGrSIJIAkgClYbp0YEQEGokMgAKQMAIg1CCIghCyANpyEDIAkgDUL/AYNCBFINARoLIApCAXwLIgw3AwAgA0H/AXFBBEcEQCAAQoGAgICQgICAgH83AgAgACADrUL/AYMgC0IIhoQ3AggPCyABAn4CQCAGIAwgCSAJIAxWG6ciA2tBBE8EQCADIAVqKAAAIQZBBCEDQgAhCwwBC0EAIQZBqJDIACkDACINQgiIIQsgDachAyAJIA1C/wGDQgRSDQEaCyAMQgR8CyIKNwMAIANB/wFxQQRHBEAgACADOgAIIABCgYCAgJCAgICAfzcCACAAIAunIgE7AAkgACALQhiIPgIMIABBC2ogAUEQdjoAAA8LAkACQAJAAkAgAkH//wNxIgdBBU8EQCAHQQVrIgIEQCACEHEiAwRAIANBBGstAABBA3FFIAJFckUEQCADQQAgAvwLAAsgBEEIaigCACIFrSEJIAVC/////w8gCiAKQv////8PWhunayIIQQAgBSAITxsgAk8EQCAEQQRqKAIAIAogCSAJIApWG6dqIQQgAkEBRw0EIAMgBC0AADoAAAwFC0GokMgAKQMAIgtCCIghDCALpyEEIAtC/wGDQgRSDQYMBQsACyAFIAogCSAJIApWG6dqIQRBASEDDAELIAD9DAEAAAAAAACAXAgSACAAAAD9CwIADwsgAkUNACADIAQgAvwKAAALQgAhDEEEIQQLIAogAq18IQkLIAEgCTcDAAJAAkACQCAEQf8BcUEERwRAIABCgYCAgJCAgICAfzcCACAAIAStQv8BgyAMQgiGhDcCCCACRQ0BIANBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIAJqSQ0CIABBACABIAdBImpLGw0DIAMQogIPCyAAIAY2AgwgACACNgIIIAAgAzYCBCAAQQA2AgALDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALhwcBBn8jAEEwayICJAACQAJAAkACQAJAAkACQEEDIAAoAgAiA0GAgICAeHMgA0EAThtBAWsOBQECAwQFAAsgASgCAEGkrscAQREgASgCBCgCDBEAACEDDAULIAEoAgBBta7HAEENIAEoAgQoAgwRAAAhAwwEC0EBIQMgASgCACIEQdSuxwBBDyABKAIEIgcoAgwiBREAAA0DIABBBGohBgJAIAEtAApBgAFxRQRAIARBu7PFAEEBIAURAAANBSACIAY2AhwgASAAQQdqQcioxwAgAEEFakHYqMcAIABBBmpB6KjHACACQRxqQfioxwAQ7gVFDQEMBQsgBEHbgcIAQQIgBREAAA0EIAJBAToADyACIAc2AhQgAiAENgIQIAJB4IHCADYCICACIAEpAgg3AiQgAiACQQ9qNgIYIAIgAkEQajYCHCACIAY2AiwgAkEcaiAAQQdqQcioxwAgAEEFakHYqMcAIABBBmpB6KjHACACQSxqQfioxwAQ7gUNBCACKAIcQdmBwgBBAiACKAIgKAIMEQAADQQLIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAwwDC0EBIQMgASgCACIEQeOuxwBBByABKAIEIgYoAgwiBREAAA0CAkAgAS0ACkGAAXFFBEAgBEG7s8UAQQEgBREAAA0EIAAoAgQgACgCCCABELUCRQ0BDAQLIARB24HCAEECIAURAAANAyACQQE6ACwgAiAGNgIUIAIgBDYCECACQeCBwgA2AiAgAiABKQIINwIkIAIgAkEsajYCGCACIAJBEGoiBDYCHCAAKAIEIAAoAgggAkEcahC1Ag0DIARB2YHCAEECEK8DDQMLIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAwwCCyABKAIAQequxwBBCiABKAIEKAIMEQAAIQMMAQsgAiAAQQhqNgIQIAEoAgBBhK/HAEEMIAEoAgQoAgwRAAAhAyACQQA6ACEgAiADOgAgIAIgATYCHCACQRxqQZCvxwBBCCAAQQRqQfSuxwAQjAVBmK/HAEEFIAJBEGpBxK7HABCMBSACLQAhIgEgAi0AICIEciEDIARBAXEgAUEBR3INACgCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQMMAQsgACgCAEGls8UAQQEgACgCBCgCDBEAACEDCyACQTBqJAAgA0EBcQufBgIHfwF+IwBBMGsiBCQAAkACQAJAAkACQAJAAkACQAJAAkAgASgCFCICIAEoAhAiA0kEQCABKAIMIQcCfgJAA0AgAiAHai0AACIFQQlrIghBF0tBASAIdEGTgIAEcUVyDQEgASACQQFqIgI2AhQgAiADRw0ACyADIQJCAAwBC0KAAgsgBa1CEIaEQoCCuANRDQELAkAgBEEYaiABKAIMIgcgAyACIANJBH8gAUEMaiEIA0ACQCACIAdqLQAAQQlrIgVBGU0EQEEBIAV0QZOAgARxDQEgBUEZRg0ECyABIARBL2pBtOLAABDuASABEOsFIQIMDAsgASACQQFqIgI2AhQgAiADRw0ACyADBSACC0EBaiIBIAMgASADSRsQ+QEgBCgCHCEDIAQoAhghAUEUEHEiAkUNByACIAE2AgwgAkEFNgIAIAIgAzYCEAwJCyABQQA2AgggASACQQFqNgIUIARBIGogCCABEIICIAQoAiQhAiAEKAIgIgFBAkYNCCAEKAIoIQMCQCABQQFxBEAgA0EASA0DIANFDQEMBwsgA0EASA0DIAMNBgtBASEBDAcLIAEgAkEBaiIGNgIUAkAgAyAGTQ0AIAEgAkECaiIFNgIUIAYgB2otAABB9QBHDQMgBSAGIAMgAyAGSRsiBkYNACABIAJBA2oiCDYCFCAFIAdqLQAAQewARwRAIAghBQwECyAGIAhGDQAgASACQQRqIgU2AhQgByAIai0AAEHsAEcNAyAAQYCAgIB4NgIADAkLIARBCGogByADIAYQ+QEgBCgCDCEGIAQoAgghAUEUEHEiAkUNBSACQQU2AgAMAwtB2JrIABD/BwALQdiayAAQ/wcACyAEQRBqIAcgAyAFEPkBIAQoAhQhBiAEKAIQIQFBFBBxIgJFDQIgAkEJNgIACyACIAE2AgwgACACNgIEIABBgYCAgHg2AgAgAiAGNgIQDAQLIAMQcSIBDQELAAsgAwRAIAEgAiAD/AoAAAsgACADNgIIIAAgATYCBCAAIAM2AgAMAQsgAEGBgICAeDYCACAAIAI2AgQLIARBMGokAAvyBQIFfwJ9IAEqAgAQxgW8IgJB////A3EhAyACQYCAgIB4cSEFIAEqAgQCQCACQYCAgPwHcSIEQYCAgPwHRgRAIANBDXYgBUEQdnJBgARBACADG3JBgPgBciEFDAELIAVBEHYhBSAEQYCAgLgETQRAIARBgICAxANPBEAgAkEMdiACQf/fAHFBAEdxIARBDXYgA0ENdmpBgIABaiAFcmohBQwCCyAEQYCAgJgDSQ0BIANBgICABHIiAkH+ACAEQRd2IgNrdiEEIAJBHSADayIDdkEBcQR/IARBAyADdEEBayACcUEAR2oFIAQLIAVyIQUMAQsgBUGA+AFyIQULIAEqAgghCBDGBbwiAkH///8DcSEDIAJBgICAgHhxIQQCQCACQYCAgPwHcSIBQYCAgPwHRwRAIARBEHYhBCABQYCAgLgETQRAIAFBgICAxANPBEAgAkEMdiACQf/fAHFBAEdxIAFBDXYgA0ENdmpBgIABaiAEcmohBAwDCyABQYCAgJgDSQ0CIANBgICABHIiAkH+ACABQRd2IgNrdiEBIAJBHSADayIDdkEBcQR/IAFBAyADdEEBayACcUEAR2oFIAELIARyIQQMAgsgBEGA+AFyIQQMAQsgA0ENdiAEQRB2ckGABEEAIAMbckGA+AFyIQQLIAgQxgW8IgNB////A3EhBiADQYCAgIB4cSECAkAgA0GAgID8B3EiAUGAgID8B0cEQCACQRB2IQIgAUGAgIC4BE0EQCABQYCAgMQDTwRAIANBDHYgA0H/3wBxQQBHcSABQQ12IAZBDXZqQYCAAWogAnJqIQIMAwsgAUGAgICYA0kNAiAGQYCAgARyIgNB/gAgAUEXdiIGa3YhASADQR0gBmsiBnZBAXEEfyABQQMgBnRBAWsgA3FBAEdqBSABCyACciECDAILIAJBgPgBciECDAELIAZBDXYgAkEQdnJBgARBACAGG3JBgPgBciECCyAAIAI7ASAgACAEOwEeIAAgBTsBHAu7BwIFewd/IAJB//8DcSECIAFB//8DcSEKIAQgBEGgK3AiC2siDUGgK08EQCANIQwgAyEBA0D9DAAAAAAAAAAAAAAAAAAAAAAiBSAC/RwAIQYgBSAKQa0BbP0cACEHQQAhBANAIAEgBGoiAv0AAAAiCP2JAf0MIAAfAB4AHQAcABsAGgAZAP26ASAG/a4BIAj9igH9DBgAFwAWABUAFAATABIAEQD9ugH9rgEgAkEQav0AAAAiCf2JAf0MEAAPAA4ADQAMAAsACgAJAP26Af2uASAJ/YoB/QwIAAcABgAFAAQAAwACAAEA/boB/a4BIQYgBSAH/a4BIQcgCP19/X8gBf2uASAJ/X39f/2uASEFIARBIGoiBEGgK0cNAAsgBiAHQQX9qwH9rgEiBv0bASAG/RsAaiAG/RsCaiAG/RsDakHx/wNwIQIgAUGgK2ohASAF/RsAIApqIAX9GwFqIAX9GwJqIAX9GwNqQfH/A3AhCiAMQaArayIMQZ8rSw0ACwsgAyANaiEDIAtBIE8EQP0MAAAAAAAAAAAAAAAAAAAAACIFIAL9HAAhBkEAIAtB4D9xIgFrIQIgBSAKIAtBBXZs/RwAIQcgAyEEA0AgBP0AAAAiCP2JAf0MIAAfAB4AHQAcABsAGgAZAP26ASAG/a4BIAj9igH9DBgAFwAWABUAFAATABIAEQD9ugH9rgEgBEEQav0AAAAiCf2JAf0MEAAPAA4ADQAMAAsACgAJAP26Af2uASAJ/YoB/QwIAAcABgAFAAQAAwACAAEA/boB/a4BIQYgBEEgaiEEIAUgB/2uASEHIAj9ff1/IAX9rgEgCf19/X/9rgEhBSACQSBqIgINAAsgASADaiEDIAtBH3EhCyAF/RsAIApqIAX9GwFqIAX9GwJqIAX9GwNqIQogBiAHQQX9qwH9rgEiBv0bASAG/RsAaiAG/RsCaiAG/RsDaiECCwJAIAtFDQACQCALQQdxIgxFBEAgAyEEDAELIAMhAQNAIAogAS0AAGoiCiACaiECIAFBAWoiBCEBIAxBAWsiDA0ACwsgC0EISQ0AIAMgC2ohAQNAIAogBC0AAGoiAyAEQQFqLQAAaiIMIARBAmotAABqIg0gBEEDai0AAGoiCyAEQQRqLQAAaiIOIARBBWotAABqIg8gBEEGai0AAGoiECAEQQdqLQAAaiIKIBAgDyAOIAsgDSAMIAIgA2pqampqampqIQIgBEEIaiIEIAFHDQALCyAAIAJB8f8DcDsBAiAAIApB8f8DcDsBAAuzBwIFewh/IABB//8DcSEJIABBEHYhCCACIAJBoCtwIgprIgxBoCtPBEAgDCELIAEhAgNA/QwAAAAAAAAAAAAAAAAAAAAAIgMgCP0cACEEIAMgCUGtAWz9HAAhBUEAIQADQCAAIAJqIgj9AAAAIgb9iQH9DCAAHwAeAB0AHAAbABoAGQD9ugEgBP2uASAG/YoB/QwYABcAFgAVABQAEwASABEA/boB/a4BIAhBEGr9AAAAIgf9iQH9DBAADwAOAA0ADAALAAoACQD9ugH9rgEgB/2KAf0MCAAHAAYABQAEAAMAAgABAP26Af2uASEEIAMgBf2uASEFIAb9ff1/IAP9rgEgB/19/X/9rgEhAyAAQSBqIgBBoCtHDQALIAQgBUEF/asB/a4BIgT9GwEgBP0bAGogBP0bAmogBP0bA2pB8f8DcCEIIAJBoCtqIQIgA/0bACAJaiAD/RsBaiAD/RsCaiAD/RsDakHx/wNwIQkgC0GgK2siC0GfK0sNAAsLIAEgDGohASAKQSBPBED9DAAAAAAAAAAAAAAAAAAAAAAiAyAI/RwAIQRBACAKQeA/cSICayEIIAMgCSAKQQV2bP0cACEFIAEhAANAIAD9AAAAIgb9iQH9DCAAHwAeAB0AHAAbABoAGQD9ugEgBP2uASAG/YoB/QwYABcAFgAVABQAEwASABEA/boB/a4BIABBEGr9AAAAIgf9iQH9DBAADwAOAA0ADAALAAoACQD9ugH9rgEgB/2KAf0MCAAHAAYABQAEAAMAAgABAP26Af2uASEEIABBIGohACADIAX9rgEhBSAG/X39fyAD/a4BIAf9ff1//a4BIQMgCEEgaiIIDQALIAQgBUEF/asB/a4BIgT9GwEgBP0bAGogBP0bAmogBP0bA2ohCCAKQR9xIQogA/0bACAJaiAD/RsBaiAD/RsCaiAD/RsDaiEJIAEgAmohAQsCQCAKRQ0AAkAgCkEHcSILRQRAIAEhAAwBCyABIQIDQCAJIAItAABqIgkgCGohCCACQQFqIgAhAiALQQFrIgsNAAsLIApBCEkNACABIApqIQEDQCAJIAAtAABqIgIgAEEBai0AAGoiCyAAQQJqLQAAaiIMIABBA2otAABqIgogAEEEai0AAGoiDSAAQQVqLQAAaiIOIABBBmotAABqIg8gAEEHai0AAGoiCSAPIA4gDSAKIAwgCyACIAhqampqampqaiEIIABBCGoiACABRw0ACwsgCUHx/wNwIAhB8f8DcEEQdHILrAcCAn8BeyMAQYDSAGsiAyQAAkACQAJAAkACQAJAAkACQCABQf8BcUEBaw4FAAIDBAUBC0GAgAgQcSIERQ0FIARBBGstAABBA3EEQCAEQQBBgIAI/AsACyADQUBrQQBBwNEA/AsAQajTABBxIgFFDQUgAUGAgICAeDYCZCABQgE3AlwgAUKAgAg3AlQgASAENgJQIAFCgICAgICAgAE3AkggAUKAgICAEDcCQCABIAL9AAIA/QsCACABQTBqIAJBMGr9AAIA/QsCACABQSBqIAJBIGr9AAIA/QsCACABQRBqIAJBEGr9AAIA/QsCACABQegAaiADQQxqQfTRAPwKAAAgAUHc0gBqQQBBwQD8CwAgAUEAOwGkUyABQQA2AqBTQajewQAhAgwGC0G4BRBxIgFFDQQgAUEANgKwBSABQoCAgIAQNwOoBSABQYGAgIB4NgKcBSABIAL9AAIA/QsCACABQTBqIAJBMGr9AAIA/QsCACABQSBqIAJBIGr9AAIA/QsCACABQRBqIAJBEGr9AAIA/QsCAEGQ3sEAIQIMBQtBzAAQcSIBRQ0DIAFBADYCSCABQoCAgIAQNwJAIAEgAv0AAgD9CwIAIAFBMGogAkEwav0AAgD9CwIAIAFBIGogAkEgav0AAgD9CwIAIAFBEGogAkEQav0AAgD9CwIAQcDewQAhAgwEC0HMABBxIgFFDQIgAUEANgJIIAFCgICAgBA3AkAgASAC/QACAP0LAgAgAUEwaiACQTBq/QACAP0LAgAgAUEgaiACQSBq/QACAP0LAgAgAUEQaiACQRBq/QACAP0LAgBB2N7BACECDAMLQcwAEHEiAUUNASABQQA2AkggAUKAgICAEDcCQCABIAL9AAIA/QsCACABQTBqIAJBMGr9AAIA/QsCACABQSBqIAJBIGr9AAIA/QsCACABQRBqIAJBEGr9AAIA/QsCAEHw3sEAIQIMAgtBgAMQcSIBRQ0AIAFBAjYCiAEgAUECNgIAIAH9DAAAAAAAAAAAAAAAAAAAAAD9CwO4AiABIAX9CwPgAiABIAL9AAIA/QsC+AEgAUHIAmogBf0LAwAgAUHYAmpCgICAgBA3AwAgAUH1AmpCADcAACABQfACakIANwMAIAFBiAJqIAJBEGr9AAIA/QsCACABQZgCaiACQSBq/QACAP0LAgAgAUGoAmogAkEwav0AAgD9CwIAQYjfwQAhAgwBCwALIAAgAjYCBCAAIAE2AgAgA0GA0gBqJAALkgYBBn8CQAJAAkACQAJAAkAgAEEgSQ0AIABB/wBJBEBBASEDDAYLAkAgAEGAgARPBEAgAEGAgAhJDQEgAEHg//8AcUHgzQpHIABB/v//AHFBnvAKR3EgAEHwgzhJcSAA/RH9DMBI/f9QMf3/EBT9/wAI/f/9rgH9DPn////x////8P///132///9PP1TQX9zcSAAQYCADGtBnnRJcSAAQdCmDGtBe0lxIABBgII4a0GwxVRJcSEDDAcLIABBCHZB/wFxIQUDQCABQQJqIQYgAiABLQC7gUMiA2ohBCAFIAEtALqBQyIBRwRAIAEgBUsNByAEIQIgBiIBQdAARw0BDAcLIAIgBEsgBEGiAktyDQUgAkGKgsMAaiEBA0AgA0UEQCAEIQIgBiIBQdAARw0CDAgLIANBAWshAyABLQAAIAFBAWohASAAQf8BcUcNAAsLDAELIABBCHZB/wFxIQUDQCABQQJqIQYgAiABLQCt+0IiA2ohBCAFIAEtAKz7QiIBRwRAIAEgBUsNBCAEIQIgBiIBQdgARw0BDAQLIAIgBEsgBEHQAUtyDQIgAkGE/MIAaiEBA0AgA0UEQCAEIQIgBiIBQdgARw0CDAULIANBAWshAyABLQAAIAFBAWohASAAQf8BcUcNAAsLC0EAIQMMBAsgAiAEQdABQeiGwwAQ6gcACyAAQf//A3EhAkEBIQNBACEBA0AgAUEBaiEEAkAgASwA1P1CIgBBAE4EQCAEIQEMAQsgBEHmA0cEQCABQdX9wgBqLQAAIABB/wBxQQh0ciEAIAFBAmohAQwBC0HYhsMAEN0JAAsgAiAAayICQQBIDQMgA0EBcyEDIAFB5gNHDQALDAILIAIgBEGiAkHohsMAEOoHAAtBASEDQQAhAQNAIAFBAWohBAJAIAEsAKyEQyICQQBOBEAgBCEBDAELIARBqQJHBEAgAUGthMMAai0AACACQf8AcUEIdHIhAiABQQJqIQEMAQtB2IbDABDdCQALIAAgAmsiAEEASA0BIANBAXMhAyABQakCRw0ACwsgA0EBcQvCBgILfwR7IwBBIGsiCSQAAkACQAJAAkACQCADIAQgBWwiCmoiC0EBayIGIAFNBEAgBEEBayAFbCADaiIEQQFrIgcgBk8NASAEIAZLDQIgASAGayEMIAQgBkYEQCABIAprIANrIQRBACEAIAIhAwNAIAAgDE8NBSACIARLDQYgBCAFayEEIAAgBWohACADQQFrIgMNAAsMBgsgACAGaiEOIAAgB2otAAAhDyAAIARqIQ0gBiAEayIBIAIgASACSRsiBkEBcSEQIAZBEHEhAyAAIAtqIQtBACEHA0AgBSAHbCIAIAxPDQQgAiAMIABBAWoiAWsiBEsNBSAAIA5qLQAAIA9rIQogASAOaiEEQQAhAQJAIAZBEEkgB0EBaiIHIAVsQRBJckUEQCAEIAr9ESIRIA39AAAAIhL9iQH9qQH9rgH9DAAAAAAAAAAAAAAAAAAAAAD9uAH9DP8AAAD/AAAA/wAAAP8AAAAiFP22ASARIBIgEf0NBAUGBwAAAAAAAAAAAAAAAP2JAf2pAf2uASAT/bgBIBT9tgH9hgEgESASIBH9DQgJCgsAAAAAAAAAAAAAAAD9iQH9qQH9rgEgE/24ASAU/bYBIBEgEiAR/Q0MDQ4PAAAAAAAAAAAAAAAA/YkB/akB/a4BIBP9uAEgFP22Af2GAf1m/QsAACAGIAMiAUYNAQsgAUEBciEAIBAEQCABIARqQf8BIAogASANai0AAGoiAUEAIAFBAEobIgEgAUH/AU4bOgAAIAAhAQsgACAGRg0AIAEgC2ohACABIA1qIQQgBiABayEBA0AgAEH/ASAKIAQtAABqIghBACAIQQBKGyIIIAhB/wFOGzoAACAAQQFqQf8BIAogBEEBai0AAGoiCEEAIAhBAEobIgggCEH/AU4bOgAAIABBAmohACAEQQJqIQQgAUECayIBDQALCyAFIAtqIQsgAiAHRw0ACwwFCyAJQQA2AhggCUEBNgIMIAlBiILIADYCCCAJQgQ3AhAgCUEIakHo4sQAEI0IAAsgByAGQfjixAAQjAcACyAEIAYgBkGo48QAEOoHAAsgACAMQYjjxAAQjAcAC0EAIAIgBEGY48QAEOoHAAsgCUEgaiQAC78GAQR/IAAgAWohAgJAAkAgACgCBCIDQQFxDQAgA0ECcUUNASAAKAIAIgMgAWohASAAIANrIgBB2LrJACgCAEYEQCACKAIEQQNxQQNHDQFB0LrJACABNgIAIAIgAigCBEF+cTYCBCAAIAFBAXI2AgQgAiABNgIADAILIAAgAxDWBAsCQAJAAkAgAigCBCIDQQJxRQRAIAJB3LrJACgCAEYNAiACQdi6yQAoAgBGDQMgAiADQXhxIgMQ1gQgACABIANqIgFBAXI2AgQgACABaiABNgIAIABB2LrJACgCAEcNAUHQuskAIAE2AgAPCyACIANBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAsgAUGAAk8EQEEfIQIgAEIANwIQIAFB////B00EQCABQSYgAUEIdmciA2t2QQFxIANBAXRrQT5qIQILIAAgAjYCHCACQQJ0QbC3yQBqIQRBASACdCIDQcy6yQAoAgBxRQRAIAQgADYCACAAIAQ2AhggACAANgIMIAAgADYCCEHMuskAQcy6yQAoAgAgA3I2AgAPCwJAAkAgASAEKAIAIgMoAgRBeHFGBEAgAyECDAELIAFBGSACQQF2a0EAIAJBH0cbdCEFA0AgAyAFQR12QQRxaiIEKAIQIgJFDQIgBUEBdCEFIAIhAyACKAIEQXhxIAFHDQALCyACKAIIIgEgADYCDCACIAA2AgggAEEANgIYIAAgAjYCDCAAIAE2AggPCyAEQRBqIAA2AgAgACADNgIYIAAgADYCDCAAIAA2AggPCwJ/Qci6yQAoAgAiAkEBIAFBA3Z0IgNxRQRAQci6yQAgAiADcjYCACABQfgBcUHAuMkAaiIBDAELIAFB+AFxIgNBwLjJAGohASADQci4yQBqKAIACyECIAEgADYCCCACIAA2AgwgACABNgIMIAAgAjYCCA8LQdy6yQAgADYCAEHUuskAQdS6yQAoAgAgAWoiATYCACAAIAFBAXI2AgQgAEHYuskAKAIARw0BQdC6yQBBADYCAEHYuskAQQA2AgAPC0HYuskAIAA2AgBB0LrJAEHQuskAKAIAIAFqIgE2AgAgACABQQFyNgIEIAAgAWogATYCAAsL3HkDH38IfgJ7IwBBEGsiFSQAAkAgASkDGEICUgRAIAFBGGohIiABQcgAaiERIAEoAgwhCSABKAIIIQsDQCABKAIAIQcCQCAJIAtLDQAgASgCBCIIIAEoAhAiBmsiBQRAIAYgB2pBACAF/AsACyAVICIgByAIEKYDIBUtAABBBEYEQCAIIBUoAgQiCU8EQCABIAg2AhAgASAJNgIMQQAhCyABQQA2AggMAgtBtJvHAEE2QeybxwAQ6wcACyAVKAIEIQYgFSgCACEFIBUxAAAgASAINgIQIAFCADcDCEEAIQlBACELQgRRDQAgACAGNgIEIAAgBTYCAAwDCyABKQNQISkgASkDSCEqQQRBACAJIAtGIiAbISEjAEEwayIMJAAgESADNgIwIBEgCSALayIGNgIkIBEgAjYCLCARIAcgC2oiHzYCICARKAI8IgQtAAAiBUEMRgRAIARBDToAAEENIQULIBEpAxghJyARKQMQISggBCADNgJ0IAQgBjYCcCAEQQA2AlAgBCADNgJMIAQgAjYCSCAEIB82AjggBCAhOgAEIAQgBiAfajYCPCAEQcEAaiEUIARBCGohGSAEQYTsAGohDiAEQYTnAGohGiAEQaQBaiEdIARB9CpqIRsgBEHE1ABqIRcgBEHIAGohEwJAAkACQAJAA0AgBSEGQRIhBUEBIQgCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAGQf8BcUEBaw4eHBsaDQwLCgkCARkYCBcdBx8WFRQGBRMSHgARECEPDgsgBCgCJCIJIAQoAiAiECAEKAIcIg1qIgtPDQMgBCgCOCEGIAQtAEAhBSAEKQMwISMDQEJ/IAQ1ApQBhkJ/hSElIAQoAjwhEiAELQCYASEIAkACQAJAAkACQAJAAkACQAJAAkACQANAICMgJYOnIQ9BgAQhCkGo58gAIQcCQAJAAkACQCAIQQFrDgMAAQIDC0G0CiEKIB0hBwwCC0G0CiEKIBshBwwBC0HQBCEKIBchBwsgCiAPTQ0BIAcgD0ECdGooAQAiCkEYdiIPIAVB/wFxSwRAIAYgEkYNECAGMQAAISQgBCAFQQhqIgc6AEAgBCAGQQFqIgY2AjggBCAkIAWthiAjhCIjNwMwIAchBQwBCwsgCkH//wNxIgdBEE8EQCAFQf8BcSEIAkACQAJAAkAgB0EQaw4CAQIACwJAIAggD0EHaiIKTwRAIAUhBwwBCyAGIQgDQCAIIBJGDRQgBCAIQQFqIgY2AjggBCAFQQhqIgc6AEAgBCAIMQAAIAWthiAjhCIjNwMwIAYhCCAKIAciBUH/AXFLDQALCyAEIAcgD2tBB2siBToAQCAEICMgD62IIiRCB4giIzcDMCALICSnQf8AcUELaiILIAlqIgdJDQogCUHAAksNCyALQcACIAlrIghLDQwgC0EBdCIIBEAgGiAJQQF0akEAIAj8CwALIAQgBzYCJCAHIQkMDgsCQCAIIA9BAmoiCk8EQCAFIQcMAQsgBiEIA0AgCCASRg0TIAQgCEEBaiIGNgI4IAQgBUEIaiIHOgBAIAQgCDEAACAFrYYgI4QiIzcDMCAGIQggCiAHIgVB/wFxSw0ACwsgBCAHIA9rIgU6AEAgBCAjIA+tiCIkNwMwIAkNASAEQRo2AogBIARB5IDAADYChAEMLgsCQCAIIA9BA2oiCk8EQCAFIQcMAQsgBiEIA0AgCCASRg0SIAQgCEEBaiIGNgI4IAQgBUEIaiIHOgBAIAQgCDEAACAFrYYgI4QiIzcDMCAGIQggCiAHIgVB/wFxSw0ACwtBfSEIIAQgByAPa0EDayIFOgBAIAQgIyAPrYgiJEIDiCIjNwMwIAsgJKdBB3FBA2oiCiAJaiIHSQ0FIAlBwAJLDQYgCkHAAiAJayIISw0HIApBAXQiCARAIBogCUEBdGpBACAI/AsACyAEIAc2AiQgByEJDAwLIAlBAWshByAJQcACSw0CIBogB0EBdGovAQAhDSAEIAVBAmsiBToAQCAEICRCAogiIzcDMCALICSnQQNxIghBA2oiCiAJakkEQCAEQRo2AogBIARB5IDAADYChAEMLQsgCkHAAiAJayIHSw0DIBogCUEBdGohByAIQQJq/REiK/0MAAAAAAEAAAACAAAAAwAAAP1AIiz9GwBBAXEEQCAHIA07AQALICz9GwFBAXEEQCAHQQJqIA07AQALICz9GwJBAXEEQCAHQQRqIA07AQALICz9GwNBAXEEQCAHQQZqIA07AQALICv9DAQAAAAFAAAABgAAAAcAAAD9QCIr/RsAQQFxBEAgB0EIaiANOwEACyAr/RsBQQFxBEAgB0EKaiANOwEACyAr/RsCQQFxBEAgB0EMaiANOwEACyAr/RsDQQFxBEAgB0EOaiANOwEACyAEIAQoAiQgCmoiCTYCJCAEKAIgIRAgBCgCHCENDAsLIAQgBSAPayIFOgBAIAQgIyAPrYgiIzcDMCAJQcACSQ0JIAlBwAJB1PzIABCMBwALIA8gCkHc+cgAEIwHAAsgB0HAAkH0+8gAEIwHAAtBACAKIAdBhPzIABDqBwALIARBGjYCiAEgBEHkgMAANgKEAUEeIQYMKAsgCUHAAkHAAkGk/MgAEOoHAAtBACAKIAhBlPzIABDqBwALIARBGjYCiAEgBEHkgMAANgKEAQwkCyAJQcACQcACQcT8yAAQ6gcAC0EAIAsgCEG0/MgAEOoHAAsgBCAJQQFqIgc2AiQgGiAJQQF0aiAKOwEAIAchCQsgCSANIBBqIgtJDQALDAMLQXwhCAwfC0F+IQgMHgtBACEIQRohBgwdCyAELwGEa0UEQCAEQSU2AogBIARB7c7AADYChAEMHAsCQAJAAkAgDUHBAkkEQCAMQRhqIgZBASAaIA0gG0G0CkEKIA4QrQEgDCgCGA0BIAwoAiAhBSAEIAwoAhw2ApQBIARBAjoAmAEgBCAFNgIoIAQoAhwiCEHAAksNAiAEKAIgIgdBwAIgCGsiBUsNAyAGQQIgGiAIQQF0aiAHIBdB0ARBCSAOEK0BIAwoAhhFBEAgDCgCICEGIAwoAhwhBSAEQQM6AKABIAQgBTYCnAEgBCAGIAQoAihqNgIoQREhBSAELQAEQQZHDR9BACEIQREhBgwhCyAEQRY2AogBIARBzoDAADYChAEMHwtBACANQcACQeT7yAAQ6gcACyAEQRw2AogBIARBgIDAADYChAEMHQsgCEHAAkHAAkHU+8gAEOoHAAtBACAHIAVBxPvIABDqBwALQRchBSAEKAJgIglFDRkgBCkDMCEjAkAgBC0AQCIIIAlPBEAgCCEKDAELIAQoAjghBiAEKAI8IQsDQCAGIAtGBEBBACEIQRYhBgweCyAEIAZBAWoiBzYCOCAEIAhBCGoiCjoAQCAEIAYxAAAgCK2GICOEIiM3AzAgByEGIAkgCiIIQf8BcUsNAAsLIAQgCiAJazoAQCAEICMgCa2INwMwIAQgBCgCZCAJajYCZCAEIAQoAlwgI0J/IAlBP3GthkJ/hYOnajYCXAwZC0J/IAQ1ApwBhkJ/hSElIAQoAjghBiAELQBAIQUgBCgCPCEPIAQpAzAhIyAELQCgASEQAkACQAJAAkADQCAjICWDpyEIQSAhCkGo98gAIQcCQAJAAkACQCAQQQFrDgMAAQIDC0G0CiEKIB0hBwwCC0G0CiEKIBshBwwBC0HQBCEKIBchBwsgCCAKTw0CAkACQCAHIAhBAnRqKAEAIghBGHYiCyAFQf8BcUsEQCAGIA9HDQEMBwsgCEEQdiIJQf8BcUEPTQ0BIAshBwwDCyAGMQAAISQgBCAFQQhqIgc6AEAgBCAGQQFqIgY2AjggBCAkIAWthiAjhCIjNwMwIAchBQwBCwsgC0EfcSENIAhB//8DcSEKQn8gCSALakE/ca2GQn+FISUDQCAjICWDpyANdiAKaiEIQSAhB0Go98gAIQkCQAJAAkACQCAQQQFrDgMAAQIDC0G0CiEHIB0hCQwCC0G0CiEHIBshCQwBC0HQBCEHIBchCQsgByAITQ0DIAkgCEECdGooAQAiCEEYdiIHIAtqQf8BcSAFQf8BcUsEQCAGIA9GDQUgBjEAACEkIAQgBUEIaiIHOgBAIAQgBkEBaiIGNgI4IAQgJCAFrYYgI4QiIzcDMCAHIQUMAQsLIAQgBCgCZCALajYCZCAFIAtrIQUgCEEQdiEJICMgC62IISMLIAQgBSAHazoAQCAEICMgB62INwMwIAlBwABxRQRAIAQgCUEPcTYCYCAEIAhB//8DcTYCXEEWIQUMHAsgBEEWNgKIASAEQefQwAA2AoQBDBwLIAggCkHs+cgAEIwHAAsgCCAHQez5yAAQjAcAC0EAIQhBFSEGDBoLQQshBSAELQADIgtFDRcCQCAELQBAIgpBH0sNAEEAIQhBECEGIAQoAjgiDSAEKAI8IglGDRogBCANQQFqIgc2AjggBCAKrSImQgh8IiM8AEAgBCAEKQMwIA0xAAAgJoaEIiQ3AzAgCkEXSw0AIAcgCUYNGiAEIA1BAmoiBzYCOCAEICZCEHwiJTwAQCAEIA0xAAEgI4YgJIQiJDcDMCAKQQ9LDQAgByAJRg0aIAQgDUEDaiIHNgI4IAQgJkIYfCIjPABAIAQgDTEAAiAlhiAkhCIkNwMwIApBB0sNACAHIAlGDRogBCANQQRqNgI4IAQgCkEgcjoAQCAEIA0xAAMgI4YgJIQ3AzALIAQgBCgCUCIHIAQoAlRqNgJUIAQoAnghBgJ/AkACQCALQQRxBEAgBkUEQCAEIAQoAnwgBCgCSCAHEN8CNgJ8IAQpAzAhIwwCCyAEIAQoAoABIAQoAkggBxCpASIGNgJ8IAQgBjYCgAEgBCgCeCEGCyAEKQMwISMgBg0BCyAjpyIGQRh0IAZBgP4DcUEIdHIgBkEIdkGA/gNxIAZBGHZycgwBCyAjpwshBiAEIAQoAkwgBCgCUGs2AnQCQCAELQADQQRxBEAgBiAEKAJ8Rw0BCyAEQQA6AEAgBEIANwMwDBgLIARBFTYCiAEgBEHAz8AANgKEAQwYCyAELQABIgZBAXEEQCAEIAQtAEAiBUH4AXE6AEAgBCAEKQMwIAVBB3GtiDcDMEEQIQUMFwsgBCkDMCEjIAQtAEAiBUECTQRAIAQoAjgiByAEKAI8RgRAQQAhCEENIQYMGgsgBCAHQQFqNgI4IAcxAAAgBa2GICOEISMgBUEIciEFCyAEIAVBAWs6AEAgBCAjQgGIIiQ3AzAgBCAjp0EBcSAGcjoAAQJAAkACQAJAICSnQQNxQQFrDgMBAgMACyAEIAVBA2s6AEAgBCAjQgOINwMwQQ4hBQwZC0EAIQggBEEAOgCgASAEQQU2ApwBIARBADoAmAEgBEEJNgKUASAEIAVBA2s6AEAgBCAjQgOINwMwQREhBUERIQYgBC0ABEEGRw0YDBoLIAQgBUEDazoAQCAEICNCA4g3AzBBGCEFDBcLIARBEzYCiAEgBEG40MAANgKEAUF9IQggBCAFQQNrOgBAIAQgI0IDiDcDMEEeIQYMGAsCQCAEKAJ4IgpBgARxBEACQCAELQBAIgtBD0sNAEEAIQhBCCEGIAQoAjgiCSAEKAI8IgdGDRogBCAJQQFqIgU2AjggBCALrSIkQgh8IiM8AEAgBCAEKQMwIAkxAAAgJIaEIiQ3AzAgC0EHSw0AIAUgB0YNGiAEIAlBAmo2AjggBCALQRByOgBAIAQgCTEAASAjhiAkhDcDMAsgBC0AA0EEcQRAIAQvAXwgBCgCMEcNAgsgBEEAOgBAIARCADcDMAsgBCgCjAEiBQRAIAUgCkEJdkEBcTYCLCAEKAKMAUEBNgIwIAQoAnghCgtBDCEFIAQtAANBBHFFIApFcg0WIARCADcCfAwWCyAEQRQ2AogBIARB88/AADYChAEMFgsCQCAEKAJ4Ig9BgCBxBEBBByEGIAQoAnANAUEAIQgMGAtBCCEFIAQoAowBIgZFDRUgBkEANgIkDBULAkAgBCgCPCIIIAQoAjgiCUYEQEEAIQcMAQsgCCAJayEHQQAhBQNAIAUgCWotAAAEQCAJIAVBAWoiBWogCEcNAQwCCwsgBUEBaiEHCwJAIAQoAowBIgVFDQAgBSgCJCIIRQ0AIAUoAigiBSAEKAJYIgtPBEAgBSALayIFIAcgBSAHSRsiBQRAIAggC2ogCSAF/AoAAAsgBCAEKAJYIAVqNgJYIAQoAnghDwwBC0GA+8gAQRJBlPvIABCrBwALAkAgD0GABHFFDQAgBC0AA0EEcUUNACAEIAQoAnwgCSAHEKkBNgJ8C0EBIQoCQCAHRQ0AIAcgCWpBAWsiBUUNACAFLQAAQQBHIQoLIAQgBCgCPCIIIAQoAjggB2oiBSAFIAhLGyIHNgI4QQghBSAKRSAHIAhHcg0UQQAhCAwWCwJAAkAgBCgCeCIPQYAQcQRAQQYhBiAEKAJwDQFBACEIDBgLIAQoAowBIgVFDQEgBUEANgIcDAELAkAgBCgCPCIIIAQoAjgiCUYEQEEAIQcMAQsgCCAJayEHQQAhBQNAIAUgCWotAAAEQCAJIAVBAWoiBWogCEcNAQwCCwsgBUEBaiEHCwJAIAQoAowBIgVFDQAgBSgCHCIIRQ0AIAUoAiAiBSAEKAJYIgtPBEAgBSALayIFIAcgBSAHSRsiBQRAIAggC2ogCSAF/AoAAAsgBCAEKAJYIAVqNgJYIAQoAnghDwwBC0Hc+sgAQRJB8PrIABCrBwALAkAgD0GABHFFDQAgBC0AA0EEcUUNACAEIAQoAnwgCSAHEKkBNgJ8C0EBIQoCQCAHRQ0AIAcgCWpBAWsiBUUNACAFLQAAQQBHIQoLIAQgBCgCPCIIIAQoAjggB2oiBSAFIAhLGyIFNgI4IApFIAUgCEdyDQBBACEIDBYLIARBADYCWEEHIQUMEwsCQCAEKAJ4IghBgAhxRQ0AIAQoAjwgBCgCOCIHayIGIAQoAlgiBSAFIAZLGyIKBEACQCAEKAKMASIJRQ0AIAkoAhAiBkUNACAKIAkoAhgiCyAJKAIUIAVrIghrIgVBACAFIAtNGyIFIAUgCksbIgUEQCAGIAsgCCAIIAtLG2ogByAF/AoAAAsgBCgCeCEICwJAIAhBgARxRQ0AIAQtAANBBHFFDQAgBCgCPCAEKAI4IgZrIgUgCk8EQCAEIAQoAnwgBiAKEKkBNgJ8DAELQQAgCiAFQcz6yAAQ6gcACyAEIAQoAnAgCms2AnAgBCAEKAJYIAprIgU2AlggBCAEKAI8IgcgBCgCOCAKaiIGIAYgB0sbNgI4CyAFRQ0AQQAhCEEFIQYMFQsgBEEANgJYQQYhBQwSCwJAAkAgBCgCeCILQYAIcQRAIAQpAzAhIwJAIAQtAEAiCUEPSw0AQQAhCEEEIQYgBCgCOCIKIAQoAjwiB0YNFyAEIApBAWoiBTYCOCAEIAmtIiVCCHwiJDwAQCAEIAoxAAAgJYYgI4QiIzcDMCAJQQdLDQAgBSAHRg0XIAQgCkECajYCOCAEIAlBEHI6AEAgBCAKMQABICSGICOEIiM3AzALIAQgI6ciBjYCWCAEKAKMASIFBH8gBSAGNgIUIAQoAngFIAsLQYAEcUUNAiAELQADQQRxDQEMAgtBBSEFIAQoAowBIgZFDRMgBkEANgIQDBMLIAwgBCkDMD0BGCAEIAQoAnwgDEEYakECEKkBNgJ8CyAEQQA6AEAgBEIANwMwQQUhBQwRC0ENIQUgBC0AAyIHRQ0QIAQpAzAhIwJAAkAgBC0AQCIIQQ9LDQAgBCgCOCILIAQoAjwiBkYNASAEIAtBAWoiBTYCOCAEIAitIiVCCHwiJDwAQCAEIAsxAAAgJYYgI4QiIzcDMCAIQQdLDQAgBSAGRg0BIAQgC0ECajYCOCAEIAhBEHI6AEAgBCALMQABICSGICOEIiM3AzALAkAgB0ECcUEAICNCn5YCURtFBEAgBCgCjAEiBQR/IAVBfzYCMCAELQADBSAHC0EBcQRAIAQpAzAiI0IIhkKA/gODICNCCIh8Qh+CUA0CCyAEQRc2AogBIARBks/AADYChAEMFAsgBC0AAkUEQCAEQQ86AAILIAxBn5YCOwAYIARBACAMQRhqQQIQqQE2AnwgBEEAOgBAIARCADcDMEEBIQUMEgsgI0IPg0IIUQRAIAQgI0IEiCIkNwMwIAQgBC0AQEEEazoAQCAkp0EPcSIGQQhqIQcgBC0AAiIFBH8gBQUgBCAHOgACIAcLIAdJIAZBB0tyRQRAIARCgICAgBA3A3ggBEEAOgBAIARCADcDMCAEQQEgB3Q2ApABQQxBGyAjQoDAAINQGyEFDBMLIARBFDYCiAEgBEGH0MAANgKEAQwTCyAEQRs2AogBIARB/dDAADYChAEMEgtBACEGQQAhCAwSCyAEQR02AogBIARBm9DAADYChAEMEAtBAiEIIAQtAAFBAnFFBEBBHCEGDBELIARBATYCfEEMIQUMDgsgBCkDMCEjAkAgBC0AQCILQR9LDQBBACEIQRshBiAEKAI4IgkgBCgCPCIHRg0QIAQgCUEBaiIFNgI4IAQgC60iJkIIfCIkPABAIAQgCTEAACAmhiAjhCIjNwMwIAtBF0sNACAFIAdGDRAgBCAJQQJqIgU2AjggBCAmQhB8IiU8AEAgBCAJMQABICSGICOEIiM3AzAgC0EPSw0AIAUgB0YNECAEIAlBA2oiBTYCOCAEICZCGHwiJDwAQCAEIAkxAAIgJYYgI4QiIzcDMCALQQdLDQAgBSAHRg0QIAQgCUEEajYCOCAEIAtBIHI6AEAgBCAJMQADICSGICOEIiM3AzALIARBADoAQCAEQgA3AzAgBCAjpyIFQRh0IAVBgP4DcUEIdHIgBUEIdkGA/gNxIAVBGHZycjYCfEEcIQUMDQsgBCkDMCEjAkAgBC0AQCIFQQ1LDQBBACEIQRghBiAEKAI4IgkgBCgCPCILRg0PIAQgCUEBaiIHNgI4IAQgBa0iJEIIfCIlPABAIAQgCTEAACAkhiAjhCIjNwMwIAVBBUsEQCAlpyEFDAELIAcgC0YNDyAEIAlBAmo2AjggBCAFQRByIgU6AEAgBCAJMQABICWGICOEIiM3AzALIAQgBUEOazoAQCAEICNCDog3AzAgBCAjpyIHQR9xIgZBgQJqNgIcIAQgB0EFdkEfcSIFQQFqNgIgIAQgB0EKdkEPcUEEajYCGCAGQR1LIAVBHUtyRQRAIARBADYCJEEZIQUMDQsgBEEkNgKIASAEQazOwAA2AoQBDA0LA0AgBCgCTCIGIAQoAlAiB0YEQEEAIQhBFyEGDA8LIAYgB2shCgJAIAcgBCgCXCIGTwRAIBMgBiAKIAQoAlgiBiAGIApLGyIGEOwCDAELIAYgB2siCSAEKAIQTQRAIAQoAgwiBkFAaiIHQUFPDREgEyAZIAdBACAGIAdPGyAJIAQoAhQiBmsiC2sgBiAJayAGIAlJIgYbIgggCCAKIAQoAlgiByALIAkgBhsiBiAGIAdLGyIGIAYgCksbIgZqEJQFDAELIAQtAAFBBHEEQEEeIQYgBEEeNgKIASAEQdXPwAA2AoQBQX0hCAwQCyAMQQA2AiggDEEBNgIcIAxBxPnIADYCGCAMQgQ3AiAgDEEYakGk+8gAEI0IAAsgBCAEKAJYIgcgBms2AlggBiAHRw0ACwwLCwJAIAQoAmAiCUUEQCAEKAJYIQUMAQsgBCkDMCEjAkAgBC0AQCIGIAlPBEAgBiEIDAELIAQoAjghBSAEKAI8IQsDQCAFIAtGBEBBACEIQRQhBgwQCyAEIAVBAWoiBzYCOCAEIAZBCGoiCDoAQCAEIAUxAAAgBq2GICOEIiM3AzAgByEFIAkgCCIGQf8BcUsNAAsLIAQgCCAJazoAQCAEICMgCa2INwMwIAQgBCgCZCAJajYCZCAEIAQoAlggI0J/IAlBP3GthkJ/hYOnaiIFNgJYCyAEIAU2AmhBFSEFDAoLIAQoAlAiByAEKAJMIgZGBEBBACEIQRMhBgwMCyAGIAdLBEAgBCgCWCEGIAQgB0EBajYCUCAEKAJIIAdqIAY6AAAMCgsgByAGQbz/yAAQjAcACyAEQRI6AAACQCAEKAI8IgggBCgCOCILa0EPSQ0AIAQoAkwgBCgCUGtBgwJNDQAgBBCrASAELQAAIgVBEkcNCSAEKAI8IQggBCgCOCELCyAMQQhqIBNBCGooAgA2AgAgBEEANgJQIBMpAgAhJCAEQgE3A0ggDCAkNwMAIAwgFCgAADYCECAMIBRBA2ooAAA2ABNBqOfIACEJQYAEIR4CQAJAAkACQCAELQCYAUEBaw4DAAECAwtBtAohHiAdIQkMAgtBtAohHiAbIQkMAQtB0AQhHiAXIQkLQaj3yAAhD0EgIQcCQAJAAkACQCAELQCgAUEBaw4DAAECAwtBtAohByAdIQ8MAgtBtAohByAbIQ8MAQtB0AQhByAXIQ8LIAQtAEAhECAEKQMwISMCQAJAA0BBEiEKA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAKQf8BcUETaw4FBAEIAgsACyAIIAtrQQ9PBEAgDCgCBCAMKAIIa0GDAksNDAsgBEEANgJkIAshBiAQIQUgHiAjQn8gBDUClAGGQn+FIiaDpyIKSw0CDBgLIAQoAmAiCkUEQCAEKAJYIQUMBgsgCyEFIAogECIGQf8BcUsNAyAFIQ0MBAtBFyEKIAQoAmAiDUUNEyALIQUgDSAQIgZB/wFxSw0GIAUhEgwHCwNAIAkgCkECdGoiDS0AAyIKIAVB/wFxTQ0SIAYgCEcEQCAFrSElIAYxAAAhJCAGQQFqIQYgBUEIaiEFIB4gJCAlhiAjhCIjICaDpyIKTQ0XDAELC0ESIQYgBEESOgAAIBMgDCkDADcCACAEIAg2AjwgBCAINgI4IAQgIzcDMCAUIAwoAhA2AAAgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCACAEIBAgCEEDdGogC0EDdGs6AEBBACEIDCALIAwoAggiBiAMKAIEIgVHBEAgBSAGTQ0JIAwoAgAgBmogBCgCWDoAACAMIAZBAWo2AggMEwtBEyEGIARBEzoAACATIAwpAwA3AgAgBCAQOgBAIAQgCDYCPCAEIAs2AjggBCAjNwMwIBQgDCgCEDYAACAUQQNqIAwoABM2AAAgE0EIaiAMQQhqKAIANgIAQQAhCAwfCwNAIAUgCEYNCSAFMQAAIAathiAjhCEjIAVBAWoiDSEFIAogBkEIaiIGQf8BcUsNAAsLIAQgBCgCZCAKajYCZCAEIAQoAlggI0J/IApBP3GthkJ/hYOnaiIFNgJYIAYgCmshECAjIAqtiCEjIA0hCwsgBCAFNgJoQRUhCgwOCyALIQYgECEFIAcgI0J/IAQ1ApwBhkJ/hSImg6ciCk0NCwNAIA8gCkECdGoiDS0AAyIKIAVB/wFxTQ0LIAYgCEcEQCAFrSElIAYxAAAhJCAGQQFqIQYgBUEIaiEFIAcgJCAlhiAjhCIjICaDpyIKTQ0NDAELC0EVIQYgBEEVOgAAIBMgDCkDADcCACAEIAg2AjwgBCAINgI4IAQgIzcDMCAUIAwoAhA2AAAgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCACAEIBAgCEEDdGogC0EDdGs6AEBBACEIDBsLA0AgBSAIRg0GIAUxAAAgBq2GICOEISMgBUEBaiISIQUgDSAGQQhqIgZB/wFxSw0ACwsgBCAEKAJkIA1qNgJkIAQgBCgCXCAjQn8gDUE/ca2GQn+Fg6dqNgJcIAYgDWshECAjIA2tiCEjIBIhCwwLCyAMKAIEIgUgDCgCCCIGRg0EIAUgBmshFiAGIAQoAlwiBU8EQCAMIAUgFiAEKAJYIgUgBSAWSxsiBRDsAgwHCyAFIAZrIhIgBCgCEE0EQCAEKAIMIgVBQGoiBkFBTw0aIAwgGSAGQQAgBSAGTxsgEiAEKAIUIgVrIg1rIAUgEmsgBSASSSIFGyIKIAogFiAEKAJYIgYgDSASIAUbIgUgBSAGSxsiBSAFIBZLGyIFahCUBQwHCyAELQABQQRxRQ0FIBMgDCkDADcCACAEIBA6AEAgBCAINgI8IAQgCzYCOCAEICM3AzAgFCAMKAIQNgAAQR4hBiAEQR42AogBIARB1c/AADYChAEgBEEeOgAAIBRBA2ogDCgAEzYAACATQQhqIAxBCGooAgA2AgBBfSEIDBgLIARBEjoAACATIAwpAwA3AgAgBCAQOgBAIAQgCDYCPCAEIAs2AjggBCAjNwMwIBQgDCgCEDYAACAUQQNqIAwoABM2AAAgE0EIaiAMQQhqKAIANgIAIAQQqwEgBC0AACEFDBULIAYgBUG8/8gAEIwHAAtBFCEGIARBFDoAACATIAwpAwA3AgAgBCAINgI8IAQgCDYCOCAEICM3AzAgFCAMKAIQNgAAIBRBA2ogDCgAEzYAACATQQhqIAxBCGooAgA2AgAgBCAQIAhBA3RqIAtBA3RrOgBAQQAhCAwVC0EWIQYgBEEWOgAAIBMgDCkDADcCACAEIAg2AjwgBCAINgI4IAQgIzcDMCAUIAwoAhA2AAAgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCACAEIBAgCEEDdGogC0EDdGs6AEBBACEIDBQLQRchBiAEQRc6AAAgEyAMKQMANwIAIAQgEDoAQCAEIAg2AjwgBCALNgI4IAQgIzcDMCAUIAwoAhA2AAAgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCAEEAIQgMEwsgDEEANgIoIAxBATYCHCAMQcT5yAA2AhggDEIENwIgIAxBGGpBvPrIABCNCAALIAQgBCgCWCIGIAVrNgJYQRJBFyAFIAZGGyEKDAMLIA0vAQAhEgJAAkAgDS0AAiIcQQ9LBEAgCiENDAELICNCfyAKIBxqQT9xrYZCf4UiJoOnIAp2IBJqIg0gB08NASAKQR9xIRYCQANAIA8gDUECdGoiGC0AAyINIApqQf8BcSAFQf8BcU0NASAGIAhHBEAgBa0hJSAGMQAAIAZBAWohBiAFQQhqIQUgJYYgI4QiIyAmg6cgFnYgEmoiDSAHTw0EDAELC0EVIQYgBEEVOgAAIBMgDCkDADcCACAEIAg2AjwgBCAINgI4IAQgIzcDMCAUIAwoAhA2AAAgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCACAEIBAgCEEDdGogC0EDdGs6AEBBACEIDBMLIBgtAAIhHCAYLwEAIRIgBCAEKAJkIApqNgJkIAUgCmshBSAjIAqtiCEjCyAFIA1rIRAgIyANrYghIyAcQcAAcUUEQCAEIBxBD3E2AmAgBCASQf//A3E2AlxBFiEKIAYhCwwECyATIAwpAwA3AgAgBCAQOgBAIAQgCDYCPCAEIAY2AjggBCAjNwMwIBQgDCgCEDYAACAEQRY2AogBIARB59DAADYChAFBHiEGIARBHjoAACAUQQNqIAwoABM2AAAgE0EIaiAMQQhqKAIANgIAQX0hCAwRCyANIAdBrPrIABCMBwALIAogB0Gc+sgAEIwHAAsgDS8BACESAkAgDS0AAiIcRQRAQQAhDSAGIQtBACEcDAELQQAhDSAcQQ9LBEAgBiELDAELAkAgHiAjQn8gCiAcakE/ca2GQn+FIiaDp0H//wNxIApBD3EiGHYgEmpB//8DcSINTQ0AAkADQCAJIA1BAnRqIg0tAAMiFiAKakH/AXEgBUH/AXFNDQEgBiAIRwRAIAWtISUgBjEAACEkIAZBAWohBiAFQQhqIQUgHiAkICWGICOEIiMgJoOnQf//A3EgGHYgEmpB//8DcSINTQ0DDAELC0ESIQYgBEESOgAAIBMgDCkDADcCACAEIAg2AjwgBCAINgI4IAQgIzcDMCAUIAwoAhA2AAAgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCACAEIBAgCEEDdGogC0EDdGs6AEBBACEIDBELIAUgCmshBSAjIAqtiCEjIA0tAAIhHCANLwEAIRIgCiENIAYhCyAWIQoMAQsgDSAeQYz6yAAQjAcACyAEIBJB//8DcTYCWCAEIA0gCkH/AXFqNgJkIAUgCmshECAjIAqtiCEjQRMhCiAcRQ0AIBxBIHENAiAcQcAAcUUEQCAEIBxBD3E2AmBBFCEKDAELCwtBHiEGIARBHjoAACATIAwpAwA3AgAgBCAQOgBAIAQgCDYCPCAEIAs2AjggBCAjNwMwIBQgDCgCEDYAACAEQRw2AogBIARBy9DAADYChAEgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCAEF9IQgMDAtBDCEFIARBDDoAACAEQX82AmQgEyAMKQMANwIAIAQgEDoAQCAEIAg2AjwgBCALNgI4IAQgIzcDMCAUIAwoAhA2AAAgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCAAwJCyAKIB5B/PnIABCMBwALIAQgBC0AQCIHQfgBcToAQCAEIAQpAzAgB0EHca2IIiM3AzACQCAHQR9LDQBBACEIQQ4hBiAEKAI4IgkgBCgCPCILRg0KIAQgCUEBaiIFNgI4IAQgB61CGIMiJkIIfCIkPABAIAQgCTEAACAmhiAjhCIjNwMwIAdBGHEiB0EYRg0AIAUgC0YNCiAEIAlBAmoiBTYCOCAEICZCEHwiJTwAQCAEIAkxAAEgJIYgI4QiIzcDMCAHQQ9LDQAgBSALRg0KIAQgCUEDaiIFNgI4IAQgJkIYfCIkPABAIAQgCTEAAiAlhiAjhCIjNwMwIAcNACAFIAtGDQogBEEgOgBAIAQgCUEEajYCOCAEIAkxAAMgJIYgI4QiIzcDMAsgI0IQiCAjhUL//wODQv//A1EEQEEAIQggBEEAOgBAIARCADcDMCAEICOnQf//A3E2AlhBDyEFIAQtAARBBkcNCEEOIQYMCgsgBEEdNgKIASAEQdDOwAA2AoQBDAgLQQ0hBSAELQAEQQVrQf8BcUECTw0GQQAhCEEMIQYMCAtBHSEGIAQtAAMiB0UNByAEKAJ4RQ0HAkAgBC0AQCIJQR9LDQBBACEIQQshBiAEKAI4IhcgBCgCPCILRg0IIAQgF0EBaiIFNgI4IAQgCa0iJkIIfCIjPABAIAQgBCkDMCAXMQAAICaGhCIkNwMwIAlBF0sNACAFIAtGDQggBCAXQQJqIgU2AjggBCAmQhB8IiU8AEAgBCAXMQABICOGICSEIiQ3AzAgCUEPSw0AIAUgC0YNCCAEIBdBA2oiBTYCOCAEICZCGHwiIzwAQCAEIBcxAAIgJYYgJIQiJDcDMCAJQQdLDQAgBSALRg0IIAQgF0EEajYCOCAEIAlBIHI6AEAgBCAXMQADICOGICSENwMwCwJAIAdBBHEEQCAEKAJUIAQoAjBHDQELIARBADoAQCAEQgA3AzBBHSEGQQEhCAwICyAEQRc2AogBIARBqc/AADYChAEMBgsCQCAELQBAIgtBD0sNAEEAIQhBAyEGIAQoAjgiCSAEKAI8IgdGDQcgBCAJQQFqIgU2AjggBCALrSIkQgh8IiM8AEAgBCAEKQMwIAkxAAAgJIaEIiQ3AzAgC0EHSw0AIAUgB0YNByAEIAlBAmo2AjggBCALQRByOgBAIAQgCTEAASAjhiAkhDcDMAsgBCgCjAEiBQRAIAUgBC0AMDYCCCAEKAKMASAEKQMwQgiIPgIMCwJAIAQtAHlBAnFFDQAgBC0AA0EEcUUNACAMIAQpAzA9ARggBCAEKAJ8IAxBGGpBAhCpATYCfAsgBEEAOgBAIARCADcDMEEEIQUMBAsCQCAELQBAIgtBH0sNAEEAIQhBAiEGIAQoAjgiCSAEKAI8IgdGDQYgBCAJQQFqIgU2AjggBCALrSImQgh8IiM8AEAgBCAEKQMwIAkxAAAgJoaEIiQ3AzAgC0EXSw0AIAUgB0YNBiAEIAlBAmoiBTYCOCAEICZCEHwiJTwAQCAEIAkxAAEgI4YgJIQiJDcDMCALQQ9LDQAgBSAHRg0GIAQgCUEDaiIFNgI4IAQgJkIYfCIjPABAIAQgCTEAAiAlhiAkhCIkNwMwIAtBB0sNACAFIAdGDQYgBCAJQQRqNgI4IAQgC0EgcjoAQCAEIAkxAAMgI4YgJIQ3AzALIAQoAowBIgUEQCAFIAQpAzA+AgQLAkAgBC0AeUECcUUNACAELQADQQRxRQ0AIAwgBCkDMD4CGCAEIAQoAnwgDEEYakEEEKkBNgJ8CyAEQQA6AEAgBEIANwMwQQMhBQwDCyAEKQMwISMCQCAELQBAIgtBD0sNAEEAIQggBCgCOCIJIAQoAjwiB0YEQEEBIQYMBgtBASEGIAQgCUEBaiIFNgI4IAQgC60iJUIIfCIkPABAIAQgCTEAACAlhiAjhCIjNwMwIAtBB0sNACAFIAdGDQUgBCAJQQJqNgI4IAQgC0EQcjoAQCAEIAkxAAEgJIYgI4QiIzcDMAsgBCAjpyIGNgJ4AkACQCAGQf8BcUEIRgRAIAZBgMADcQ0BIAQoAowBIgUEfyAFIAZBCHZBAXE2AgAgBCgCeAUgBgtBgARxRQ0CIAQtAANBBHFFDQIgBCgCfCEFIAwgBCkDMD0AGCAEIAUgDEEYakECEKkBNgJ8DAILIARBGzYCiAEgBEH90MAANgKEAQwFCyAEQRk2AogBIARBtYDAADYChAEMBAsgBEEAOgBAIARCADcDMEECIQUMAgtBDCEFIAQoAlgiCkUNASAEKAI4IQ8gBCgCPCEHIAQoAlAhCCAEKAJIIQsgBCgCTCEJAkADQCAHIA9rIgcgBCgCTCAIayIGIAogBiAKSRsiBiAGIAdLGyINRQRAQQAhCEEPIQYMBgsgCCAJTQRAIA0gCSAIayIGSw0CIA0EQCAIIAtqIA8gDfwKAAALIAQgCCANaiIINgJQIAQgBCgCWCANayIKNgJYIAQgBCgCPCIHIAQoAjggDWoiBiAGIAdLGyIPNgI4IApFDQQMAQsLIAggCSAJQdz/yAAQ6gcAC0EAIA0gBkHM/8gAEOoHAAsCQCAEKAIkIgUgBCgCGCILTw0AQRMgBSAFQRNNGyENIAQoAjghCiAEKQMwISQgBC0AQCEGIAQoAjwhCQJAA0ACQCAGQf8BcUECSwRAICQhIyAGIQgMAQsgCSAKRgRAQQAhCEEZIQYMBwsgBCAKQQFqIgc2AjggBCAGQQhyIgg6AEAgBCAKMQAAIAathiAkhCIjNwMwIAchCgsgBSANRg0BIAQgCEEDayIGOgBAIAQgI0IDiCIkNwMwIAQgBUEBaiIHNgIkIBogBUGD58gAai0AAEEBdGogI6dBB3E7AQAgByIFIAtHDQALIAshBQwBCyANQRNBtPvIABCMBwALIAVBEk0EQAJAIAVBC00EQCAFQYPnyABqIQYgBUETIAVrIgtBGHEiB2ohBSAHIQgDQCAaIAb9XQAAIiv9iQH9qQEiLP0bAEEBdGpBADsBACAaICz9GwFBAXRqQQA7AQAgGiAs/RsCQQF0akEAOwEAIBogLP0bA0EBdGpBADsBACAaICsgLP0NBAUGBwAAAAAAAAAAAAAAAP2JAf2pASIr/RsAQQF0akEAOwEAIBogK/0bAUEBdGpBADsBACAaICv9GwJBAXRqQQA7AQAgGiAr/RsDQQF0akEAOwEAIAZBCGohBiAIQQhrIggNAAsgByALRg0BCwNAIBogBUGD58gAai0AAEEBdGpBADsBACAFQQFqIgVBE0cNAAsLIARBEzYCJAsgDEEYakEAIBpBEyAdQbQKQQcgDhCtASAMKAIYRQRAIAwoAhwhBiAMKAIgIQUgBEEBOgCYASAEIAU2AiggBCAGNgKUASAEQQA2AiRBGiEFDAELCyAEQRk2AogBIARBnIDAADYChAELQX0hCEEeIQYLIAQgBjoAACARKAIgIQkgESARKAI8Ig4oAjgiHTYCICARIA4oAjwgHWs2AiQgESAOKAJMIgUgDigCUCIGazYCMCARIAYgDigCSCIPaiIHNgIsIBEgESgCKCAdIAlrajYCKCAOIA4oAnQgBiAFa2oiFiAOKAJUaiIFNgJUIBEgBTYCNCARIA4oAnwiFzYCUAJAAkACQAJAAkACQAJAAkACQAJAAkAgDkEMaigCACISQUBqQUFJBEACQCASQcAASw0AIBZFDQwgDi0AACIFQR5LDQBBASAFdCIFQYCMgIAEcQ0MIAVBgJAEcUUNACAOLQAEQQRGDQwLIAYgFkkNASAOLQADQQRxIQYgDigCeCELIBJBQGoiBUEAIAUgEk0bIhggFksEQCAWIBYgGCAOKAIUIhBrIhsgFiAbSRsiGWshDSAPIBlqIQogBkUEQCAQIBJLDQQgEiAQayIFIBlJBEBBACAZIAVBwP3IABDqBwALIA4oAgghBSAZBEAgBSAQaiAPIBn8CgAACyAWIBtNDQogDUUNDCAFIAogDfwKAAAMDAsgECASSw0EIBkgEiAQayIFSw0FIA4oAggiBiAQaiEFIAtFDQcMCAsgDyAWIBhrIgVqIRsCQCAGBEAgCw0BIBcgDyAFEN8CIQUgGARAIA4oAgggGyAY/AoAAAsgDiAFIBsgGBDfAjYCfAwHCyAYRQ0GIA4oAgggGyAY/AoAAAwGCyAOKAKAASAPIAUQqQEhBiAOKAIIIA4gBiAbIBgQqQE2AoABIBhFDQUgGyAY/AoAAAwFCwwLC0EAIBYgBkGkgMkAEOoHAAsgECASIBJB0P3IABDqBwALIBAgEiASQfD9yAAQ6gcAC0EAIBkgBUHg/cgAEOoHAAsgDiAYNgIQIA5BADYCFAwFCyAZBEAgBSAPIBn8CgAACyAOIBcgDyAZEN8CIgU2AnwgFiAbTQ0BIA0EQCAGIAogDfwKAAALIA4gBSAKIA0Q3wI2AnwMAwsgDiAOKAKAASAPIBkQqQE2AoABIBkEQCAFIA8gGfwKAAALIBYgG0sNAQsgDiAQIBlqIgVBACAFIBhHGzYCFCAYIA4oAhAiBU0NAiAOIAUgGWo2AhAMAgsgDiAOKAKAASAKIA0QqQE2AoABIA1FDQAgBiAKIA38CgAACyAOIBg2AhAgDiANNgIUCyAOKAKEASIGBEACQCAOKAKIASIFBEAgBSAGakEBay0AAEUNAQtB7P/IAEElQZSAyQAQ6wcACyARIAY2AjgLIBEgDi0AAEEMa0H/AXEiBUEGSQR/IAVBAnQoAriESQVBAAsgDi0AQCAOLQABQQZ0QcAAcXJyNgJMIBEgESkDECAdIB9rrXwiIzcDECARIBEpAxggByACa618IiQ3AxgCQAJAAkACQAJAAkACQCAIRQRAIBZFIAkgHUZxICFB/wFxQQRGcg0BCwJAAkAgCEEEag4HBQUFAQMABAILQQIhCAwCCyAMQQA2AiggDEEBNgIcIAxBwObIADYCGCAMQgQ3AiAgDEEYakHI5sgAEI0IAAtBASEICyARIBEpAwAgIyAofXw3AwAgESARKQMIICQgJ318NwMIDAMLIBEgESkDACAjICh9fDcDACARIBEpAwggJCAnfXw3AwgMAQsgESARKQMAICMgKH18NwMAIBEgESkDCCAkICd9fDcDCAJAIAhBAmsOAgECAAsgESgCOCIGBH8gDEEYaiAGAkAgBi0AAEUEQEEAIQcMAQsgBkEBaiEGQQAhBwNAIAYgB2ogB0EBaiEHLQAADQALCyAHEPsCIAwoAiAhBkEAIAwoAhwgDCgCGBsFQQALIQUgFSAGNgIIIBUgBTYCBCAVQQA2AgAMAgsgFSAXNgIEIBVBATYCAAwBCyAVQQI2AgAgFSAIOgAECyAMQTBqJAAMAQtB5PzIAEHKAEGw/cgAEOsHAAsgFS0ABCEHIBUoAgAgASABKAIMIgkgASgCCCABKQNIICp9p2oiBSAFIAlLGyILNgIIQQJHBEACQEEWEHEiAUUNACABQci2xwD9AAAA/QsAACABQQ5qQda2xwApAAA3AABBDBBxIgJFDQAgAkEWNgIIIAIgATYCBCACQRY2AgBBDBBxIgFFDQAgAUEUOgAIIAFBuJ/GADYCBCABIAI2AgAgACABrUIghkIDhDcCAAwECwALIAEpA1AgKX2nIQUCQAJAAkAgB0EBaw4CAQIACyAgIANFcg0BIAVFDQIMAQsgICADRXINACAFRQ0BCwsgAEEEOgAAIAAgBTYCBAwBCwJAAkACQCABKAIoIgsgASgCLCIJRiABKAIkIgggA01xRQRAIAEoAiAhByAJIAtLDQIgCCABKAIwIgZrIgUEQCAGIAdqQQAgBfwLAAsgFSABQThqIAcgCBCmAyAVLQAAQQRHDQEgCCAVKAIEIglPBEAgASAINgIwIAEgCTYCLEEAIQsMAwtBtJvHAEE2QeybxwAQ6wcACyABQgA3AyggACABQThqIAIgAxCmAwwDCyAVKAIEIQYgFSgCACEFIBUxAAAgASAINgIwIAFCADcDKEEAIQlBACELQgRSDQELIAcgC2ohBgJAIAkgC2siBSADIAMgBUsbIgNBAUYEQCACIAYtAAA6AAAMAQsgA0UNACACIAYgA/wKAAALIAAgAzYCBCAAQQQ6AAAgASAJIAMgC2oiACAAIAlLGzYCKAwBCyAAIAY2AgQgACAFNgIACyAVQRBqJAAL5AUBBX8gASgCACICQf///wNxIQMgAkGAgICAeHEhBiABKAIEIQQCQCACQYCAgPwHcSIFQYCAgPwHRgRAIANBDXYgBkEQdnJBgARBACADG3JBgPgBciEGDAELIAZBEHYhBiAFQYCAgLgETQRAIAVBgICAxANPBEAgAkEMdiACQf/fAHFBAEdxIAVBDXYgA0ENdmpBgIABaiAGcmohBgwCCyAFQYCAgJgDSQ0BIANBgICABHIiAkH+ACAFQRd2IgNrdiEFIAJBHSADayIDdkEBcQR/IAVBAyADdEEBayACcUEAR2oFIAULIAZyIQYMAQsgBkGA+AFyIQYLIAEoAgghASAEQf///wNxIQMgBEGAgICAeHEhBQJAIARBgICA/AdxIgJBgICA/AdHBEAgBUEQdiEFIAJBgICAuARNBEAgAkGAgIDEA08EQCAEQQx2IARB/98AcUEAR3EgAkENdiADQQ12akGAgAFqIAVyaiEFDAMLIAJBgICAmANJDQIgA0GAgIAEciIDQf4AIAJBF3YiAmt2IQQgA0EdIAJrIgJ2QQFxBH8gBEEDIAJ0QQFrIANxQQBHagUgBAsgBXIhBQwCCyAFQYD4AXIhBQwBCyADQQ12IAVBEHZyQYAEQQAgAxtyQYD4AXIhBQsgAUH///8DcSEDIAFBgICAgHhxIQQCQCABQYCAgPwHcSICQYCAgPwHRwRAIARBEHYhBCACQYCAgLgETQRAIAJBgICAxANPBEAgAUEMdiABQf/fAHFBAEdxIAJBDXYgA0ENdmpBgIABaiAEcmohBAwDCyACQYCAgJgDSQ0CIANBgICABHIiA0H+ACACQRd2IgJrdiEBIANBHSACayICdkEBcQR/IAFBAyACdEEBayADcUEAR2oFIAELIARyIQQMAgsgBEGA+AFyIQQMAQsgA0ENdiAEQRB2ckGABEEAIAMbckGA+AFyIQQLIAAgBDsBGiAAIAU7ARggACAGOwEWC9cFAwR+CH8BeyABKQMQIAEpAxggAhDyAyEFIAEoAghFBEAgASABQRBqEMABCyABKAIEIgwgBadxIQkgBUIZiCIIQv8Ag0KBgoSIkKDAgAF+IQcgASgCACEKAkACQCACLQAAIhBBC0cEQANAIAkgCmopAAAiBiAHhSIFQn+FIAVCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiBVBFBEADQCAQIAogBXqnQQN2IAlqIAxxQWhsaiIPQRhrLQAARg0EIAVCAX0gBYMiBVBFDQALCyAGQoCBgoSIkKDAgH+DIQUCfwJAIA1FBEAgBVANASAFeqdBA3YgCWogDHEhCwsgBSAGQgGGg0IAUg0FQQEMAQtBAAshDSAOQQhqIg4gCWogDHEhCQwACwALIAIoAAEhEANAIAkgCmopAAAiBiAHhSIFQn+FIAVCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiBVBFBEADQCAKIAV6p0EDdiAJaiAMcUFobGoiD0EYay0AAEELRgRAIBAgD0EXaygAAEYNBAsgBUIBfSAFgyIFUEUNAAsLIAZCgIGChIiQoMCAf4MhBQJ/AkAgDUUEQCAFUA0BIAV6p0EDdiAJaiAMcSELCyAFIAZCAYaDQgBSDQRBAQwBC0EACyENIA5BCGoiDiAJaiAMcSEJDAALAAsgD0EQayIB/QADACERIA9BCGsgBDcDACABIAM3AwAgACAR/QsDCCAAQgE3AwAPCyAKIAtqLAAAIglBAE4EQCAKIAopAwBCgIGChIiQoMCAf4N6p0EDdiILai0AACEJCyAKIAtqIAinQf8AcSINOgAAIAogC0EIayAMcWpBCGogDToAACABIAEoAgggCUEBcWs2AgggASABKAIMQQFqNgIMIAogC0FobGoiAUEIayAENwMAIAFBEGsgAzcDACABQRhrIAI1AAAgAkEEajEAAEIghoQ3AwAgAEIANwMAC8IFAQl/IwBBMGsiBCQAAkACQAJ/AkACQCACIANLBEAgASADQRhsaiIGKAIUIgJBBE0EQEEAIQEgBEEANgIIIARBADYCLCAGQQRqIgMgAkECdGohCUEIIQUgBEEMaiIGIQogBEEsaiILDAQLIAYoAgghAyAGKAIEIQJBACEBIARBADYCCCAEQQA2AiwgAyACQQJ0aiEJIARBDGohBiAEQSxqIQsgAkEJSQ0CIAQgBEEIakF/IAJBAWtndkEBahD2AyAEKAIAIgFBgYCAgHhHBEAgAQ0CQdiVxwBBEUHUzMcAEOsHAAsgBCgCLCIFQQlJBEAgBSEBDAMLIAQoAgwhASAEKAIQIQogBgwDCyADIAJBrLvHABCMBwsACyAGIQpBCCEFIAsLIgwgASAFSQR/AkAgCSADayIHQQJ2IgggBSABQX9zaiICIAIgCEsbIghBB00gB0EDcXINACABQQJ0IApqIgIgA2tBEEkNACABIAhBAWoiCCAIQQNxIghBBCAIG2siB2ohASADIAdBAnRqA0AgAiAD/QACAP0LAgAgA0EQaiEDIAJBEGohAiAHQQRrIgcNAAshAwsgCiABQQJ0aiECA0AgAyAJRg0CIAIgAygCADYCACACQQRqIQIgA0EEaiEDIAUgAUEBaiIBRw0ACyAFBSABCzYCACADIAlGDQEDQAJ/IAQoAiwiBUEJSQRAIAUhAiAGIQdBCCEFIAsMAQsgBCgCDCECIAQoAhAhByAGCyEBIAMoAgAhDCACIAVGBEAgBEEIahDVBiAEKAIMIQIgBCgCECEHIAYhAQsgByACQQJ0aiAMNgIAIAEgASgCAEEBajYCACADQQRqIgMgCUcNAAsMAQsgDCABNgIACyAAIAT9AAII/QsCACAAQSBqIARBKGopAgA3AgAgAEEQaiAEQRhq/QACAP0LAgAgBEEwaiQAC8IFAQl/IwBBMGsiBCQAAkACQAJ/AkACQCACIANLBEAgASADQRhsaiIGKAIUIgJBBE0EQEEAIQEgBEEANgIIIARBADYCLCAGQQRqIgMgAkECdGohCUEIIQUgBEEMaiIGIQogBEEsaiILDAQLIAYoAgghAyAGKAIEIQJBACEBIARBADYCCCAEQQA2AiwgAyACQQJ0aiEJIARBDGohBiAEQSxqIQsgAkEJSQ0CIAQgBEEIakF/IAJBAWtndkEBahD2AyAEKAIAIgFBgYCAgHhHBEAgAQ0CQdiVxwBBEUHUzMcAEOsHAAsgBCgCLCIFQQlJBEAgBSEBDAMLIAQoAgwhASAEKAIQIQogBgwDCyADIAJBpMDHABCMBwsACyAGIQpBCCEFIAsLIgwgASAFSQR/AkAgCSADayIHQQJ2IgggBSABQX9zaiICIAIgCEsbIghBB00gB0EDcXINACABQQJ0IApqIgIgA2tBEEkNACABIAhBAWoiCCAIQQNxIghBBCAIG2siB2ohASADIAdBAnRqA0AgAiAD/QACAP0LAgAgA0EQaiEDIAJBEGohAiAHQQRrIgcNAAshAwsgCiABQQJ0aiECA0AgAyAJRg0CIAIgAygCADYCACACQQRqIQIgA0EEaiEDIAUgAUEBaiIBRw0ACyAFBSABCzYCACADIAlGDQEDQAJ/IAQoAiwiBUEJSQRAIAUhAiAGIQdBCCEFIAsMAQsgBCgCDCECIAQoAhAhByAGCyEBIAMoAgAhDCACIAVGBEAgBEEIahDVBiAEKAIMIQIgBCgCECEHIAYhAQsgByACQQJ0aiAMNgIAIAEgASgCAEEBajYCACADQQRqIgMgCUcNAAsMAQsgDCABNgIACyAAIAT9AAII/QsCACAAQSBqIARBKGopAgA3AgAgAEEQaiAEQRhq/QACAP0LAgAgBEEwaiQAC9MFAgl/BX4jAEEQayILJAACQAJ/AkACQCABUEUEQEGgfyACIAF5Ig+nayIGa8FB0ABsQbCnBWpBzhBtIgJB0QBPDQEgCyACQQR0IgIpA4iFQiABIA+GEN0GQgFBQCAGIAIvAZCFQmprIgdBP3GtIg+GIhFCAX0iEiALKQMIIAspAwBCP4h8IgGDIhBQRQRAIAIvAZKFQiEIIAEgD4inIgZBkM4ATwRAIAZBwIQ9SQ0EIAZBgMLXL08EQEEIQQkgBkGAlOvcA0kiAhshCUGAwtcvQYCU69wDIAIbDAYLQQZBByAGQYCt4gRJIgIbIQlBwIQ9QYCt4gQgAhsMBQsgBkHkAE8EQEECQQMgBkHoB0kiAhshCUHkAEHoByACGwwFC0EKQQEgBkEJSyIJGwwECyAAQQA2AgAMBAtB2I/CAEEcQfSPwgAQ6wcACyACQdEAQZiPwgAQjAcAC0EEQQUgBkGgjQZJIgIbIQlBkM4AQaCNBiACGwshAgJAAkACQCAJIAhrQQFqwSIIIAXBIgpKBEAgB0H//wNxIQ0gCCAFa8EgBCAIIAprIARJGyIKQQFrIQ5BACEHA0AgAyAHaiAGIAJuIgxBMGo6AAAgBiACIAxsayEGIAcgDkYNAyAHIAlGDQIgB0EBaiEHIAJBCkkgAkEKbiECRQ0AC0GEkMIAEIEIAAsgACADIARBACAIIAUgAUIKgCACrSAPhiARELIEDAMLIAdBAWohAiANQQFrQT9xrSETQgEhAQNAIAEgE4hQRQRAIABBADYCAAwECyACIARGDQIgAiADaiAQQgp+IhAgD4inQTBqOgAAIAFCCn4hASAQIBKDIRAgCiACQQFqIgJHDQALIAAgAyAEIAogCCAFIBAgESABELIEDAILIAAgAyAEIAogCCAFIAatIA+GIBB8IAKtIA+GIBEQsgQMAQsgBCAEQZSQwgAQjAcACyALQRBqJAAL8QQBDH8jAEEgayIEJAACQAJAAkAgACgCACIBQQNGIAFBAklyDQACQAJAIAAtABRBAWsOAgIAAQsgBEEANgIYIARBATYCDCAEQbzLxwA2AgggBEIENwIQIARBCGpBxMvHABCNCAALIAAoAgghCiAAKAIMIgwEQANAIAogB0EMbGoiBSgCBCELIAUoAggiCQRAIAtBJGohAQNAIAFBBGsoAgAiAkGAgICAeHJBgICAgHhHBEAgASgCACIGQQRrKAIAIgNBeHEiCEEEQQggA0EDcSIDGyACakkNByADQQAgCCACQSdqSxsNBiAGEKICCwJAIAFBFGsoAgAiBkECRg0AIAFBEGshAgJAIAZFBEAgAigCACICRQ0CIAFBDGsoAgAiBkEEaygCACIDQXhxIghBBEEIIANBA3EiAxsgAmpJDQkgA0UgCCACQSdqTXINAQwICyACKAIAIgJFDQEgAUEMaygCACIGQQRrKAIAIgNBeHEiCCACQQF0IgJBBEEIIANBA3EiAxtqSQ0IIANFDQAgCCACQSdqSw0HCyAGEKICCyABQSxqIQEgCUEBayIJDQALCyAFKAIAIgEEQCALQQRrKAIAIgVBeHEiCSABQSxsIgFBBEEIIAVBA3EiBRtqSQ0FIAVBACAJIAFBJ2pLGw0EIAsQogILIAdBAWoiByAMRw0ACwsgACgCBCIARQ0AIApBBGsoAgAiAUF4cSIHIABBDGwiAEEEQQggAUEDcSIBG2pJDQIgAUEAIAcgAEEnaksbDQEgChCiAgsgBEEgaiQADwtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALtwgCBX8DfiMAQUBqIgEkACABQQY2AgQgAUGQgsgANgIAQai3yQAtAABBA0cEQAJAIwBBIGsiAiQAAkACQAJAAkBBqLfJAC0AAEECaw4CAwEAC0Got8kAQQI6AABBgAgQcSIDRQ0BQai3yQBBAzoAAEGYt8kAIAM2AgBBkLfJAEKAgICAgIABNwMAQYC3yQBCADcDAEGgt8kAQQA6AABBnLfJAEEANgIAQYy3yQBBADoAAEGIt8kAQQA2AgALIAJBIGokAAwCCwALIAJBADYCGCACQQE2AgwgAkGYg8gANgIIIAJCBDcCECACQQhqQZCEyAAQjQgACwsCQAJAAkACQAJAAkACQAJAQfi6yQApAwAiBlAEQEGAu8kAKQMAIQcDQCAHQn9RDQJBgLvJACAHQgF8IgZBgLvJACkDACIIIAcgCFEiAhs3AwAgCCEHIAJFDQALQfi6yQAgBjcDAAsCQEGAt8kAKQMAIAZSBEBBjLfJAC0AACECQQEhA0GMt8kAQQE6AAAgASACOgAYIAINA0GAt8kAIAY3AwAMAQtBiLfJACgCACICQX9GDQMgAkEBaiEDC0GIt8kAIAM2AgAgAUGAt8kANgIQIAAoAgQaIAFBBDoAGCABIAFBEGo2AiACQAJAIAFBGGpBiPvHACAAEMEDBEAgAS0AGEEERw0BIAFBADYCOCABQQE2AiwgAUHw+scANgIoIAFCBDcCMCABQShqQfj6xwAQjQgACyABQQQ6AAggASgCHCEAIAEtABgiAkEETSACQQNHcQ0BIAAoAgAhAiAAQQRqKAIAIgMoAgAiBARAIAIgBBEDAAsgAygCBCIDBEAgAkEEaygCACIEQXhxIgVBBEEIIARBA3EiBBsgA2pJDQYgBEEAIAUgA0EnaksbDQcgAhCiAgsgAEEEaygCACICQXhxIgNBEEEUIAJBA3EiAhtJDQcgAkEAIANBNE8bDQggABCiAgwBCyABIAEpAxg3AwgLIAEoAhAiACAAKAIIQQFrIgI2AgggAkUEQCAAQQA6AAwgAEIANwMACyABLQAIQQRHDQcgAUFAayQADwsjAEEgayIAJAAgAEEANgIYIABBATYCDCAAQbCFyAA2AgggAEIENwIQIABBCGpBuIXIABCNCAALIAFCADcCNCABQoGAgIDAADcCLCABQcCDyAA2AiggAUEYaiABQShqEPsHAAtB2IPIAEEmQYCEyAAQqwcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAEgASkDCDcDECABQQI2AiwgAUGsgsgANgIoIAFCAjcCNCABIAFBEGqtQoCAgIDgAoQ3AyAgASABrUKAgICAoAGENwMYIAEgAUEYajYCMCABQShqQbyCyAAQjQgAC9UFAQl/IwBBIGsiCCQAIAAgACgCCCIEIAJqIgM2AgggACgCBCIJIANBEGoiByAHIAlLGyEDIAAoAgAhBQJAAkACQAJAAkACQAJAAkACQAJAAkAgASACTwRAIAEgBEsNASAEIAFrIQAgByAJTwRAIAAgAmoiASADSw0DIAAgAUsNBCAEIAMgAmtLDQUgAkUNCiAEIAVqIAAgBWogAvwKAAAMCgsgAkUNCSAEIAVqIgMgACAFaiIA/QAAAP0LAAAgAkERSQ0JIAAgAmohAkEAIAFrIQEgA0EQaiEAA0AgACAAIAFq/QAAAP0LAAAgAEEQaiIAIAFqIAJJDQALDAkLIAFBAUcEQEEAIQAgASADIAQgAWsiCSADIAlLG2ogBGsiBiADIARrIgdBACADIAdPGyIHIAYgB0kbIgYgAkEBayIKIAYgCkkbIgpBAWoiBkERSSABQQ9Ncg0IIAZBD3EiAEEQIAAbIgAgCkF/c2ohCkEAIAFrIQsgBCAFaiEBIAYgAGshAANAIAEgASALav0AAAD9CwAAIAFBEGohASAKQRBqIgoNAAsMCAsgBEEBayIAIANPDQQgAyAESQ0FIAIgAyAEayIBSw0GIAJFDQggBCAFaiAAIAVqLQAAIAL8CwAMCAtB8P7IAEEJQfz+yAAQqwcAC0EAIAEgA0Hg/sgAEOoHAAsgACABIANB4P7IABDqBwALIAhBADYCGCAIQQE2AgwgCEHUnMgANgIIIAhCBDcCECAIQQhqQeD+yAAQjQgACyAAIANBkP7IABCMBwALIAQgAyADQbD+yAAQ6gcAC0EAIAIgAUGg/sgAEOoHAAsgBSAJaiEBIAQgBWohBQNAIAAgCWoiBiADTw0CIAAgB0YNAyAAIAVqIAAgAWotAAA6AAAgAEEBaiIAIAJHDQALCyAIQSBqJAAPCyAGIANBwP7IABCMBwALIAAgBGogA0HQ/sgAEIwHAAuVBgEFfyMAQcDSAGsiAyQAAkACQAJAAkAgAkEJTQRAIABBgICAgHg2AgAMAQsCQAJAIAEtAABBH0cNACABLQABQYsBRw0AIAEtAAJBCEcNAEEKIQQgAS0AAyIFQQRxRQ0BIAJBDEkEQCAAQYCAgIB4NgIADAMLIAIgAS8ACkEMaiIETw0BIABBgICAgHg2AgAMAgsgA0EANgIcIANBATYCECADQbztxwA2AgwgA0IENwIUIANBDGoQlQchASAAQYGAgIB4NgIAIAAgATYCBAwBCyAFQQhxBEACQCACIARLBEADQCABIARqLQAARQ0CIAIgBEEBaiIERw0ACwsgAEGAgICAeDYCAAwCCyAEQQFqIQQLAkAgBUEQcUUNACACIARLBEADQCABIARqLQAARQRAIARBAWohBAwDCyACIARBAWoiBEcNAAsLIABBgICAgHg2AgAMAQsCQAJAIAVBAnEEQCACIARBAmoiBEkNAQsgAiAESw0BIABBgICAgHg2AgAMAgsgAEGAgICAeDYCAAwBC0EEEHEiBUUNASAFQQRrIgYtAABBA3EEQCAFQQA2AAALIANBDGoiB0EAQYHSAPwLACADQaDSAGogByABIARqIAIgBGsgBUEEQQBBBhBEIAMgAy0ApFIiAToAk1ICQAJAAkACQCABDgMBAgEACyABQf8BRwRAIANBATYCpFIgA0GY98cANgKgUiADQgE3AqxSIAMgA0GT0gBqrUKAgICA4ASENwO4UiADIANBuNIAajYCqFIgA0GU0gBqIgEgA0Gg0gBqELEGIAEQkAchASAAQYGAgIB4NgIAIAAgATYCBAwDCyAAQQA2AgggAEKAgICAEDcCAAwCCyADKAKoUiEBIAAgBTYCBCAAQQQ2AgAgAEEEIAEgAUEETxs2AggMAgsgAEGAgICAeDYCAAsgBigCACIAQXhxIgFBCEEMIABBA3EiABtJDQIgAEEAIAFBLE8bDQMgBRCiAgsgA0HA0gBqJAAPCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC64DAhp9A3xDAACAPyEMRAAAAAAAAPA/RAAAAODTDtU/IhujIhxEAAAAAAAA8D9EAAAAwJoD1D8iHaEgG6GitiELQwAAgD8hDUMAAIA/IQFDmpkZPiIIQ8P1qD4iA5QiDkMAAIA/Q5qZmT4iCZNDmpkZPyIEkyIClCAJQ4/CdT0iBZQiD0MAAIA/QwrXIz8iCpMgA5MiBpQgCiAElCIQQwAAgD8gCJMgBZMiB5SSkiAIIASUIhEgBpSTIAkgA5QiEiAHlJMgCiAFlCITIAKUkyIUQwAAAABcBEAgECASk0MAAIA/IBSVIgGUIQwgDiATkyABlCEVIA8gEZMgAZQhFiAJIAaUIAogApSTIAGUIRcgAyAClCAEIAaUkyABlCEYIAogB5QgCCAGlJMgAZQhDSAFIAaUIAMgB5STIAGUIRkgCCAClCAJIAeUkyABlCEaIAQgB5QgBSAClJMgAZQhAQsgACAFIBggHCAdorYiApQgF5IgDCALlJKUOAIMIAAgBCAZIAKUIA2SIBUgC5SSlDgCCCAAIAMgASAClCAaIBYgC5SSkpQ4AgQgAEEBNgIAC5kFAgZ/AX4CQCABKAIIIgIgASgCBCIETw0AIAEoAgAgAmotAABB9QBHDQBBASEHIAEgAkEBaiICNgIICwJAAkAgAiAESQRAIAEoAgAiBiACai0AAEEwayIDQf8BcSIFQQpJDQELDAELIAEgAkEBaiICNgIIAkACQCAFRQRAQQAhAwwBCyADQf8BcSEDA0AgAiAERgRAIAQhAgwDCyACIAZqLQAAQTBrQf8BcSIFQQlLDQEgASACQQFqIgI2AgggA61CCn4iCEIgiFAEQCAFIAinIgVqIgMgBU8NAQsLDAILIAIgBE8NACACIAZqLQAAQd8ARw0AIAEgAkEBaiICNgIICwJAAkACQAJAIAIgAiADaiIFTQRAIAEgBTYCCCAEIAVJDQUgAkUNAiACIARJDQEMAgsMBAsgAiAGaiwAAEG/f0wNAQsgBUUgBCAFTXJFBEAgBSAGaiwAAEG/f0wNAQsgAiAGaiEEIAcNASAAQgE3AgggACADNgIEIAAgBDYCAA8LIAYgBCACIAVBuLLFABC7CQALIAIgBmpBAWshBiADIQECfwNAIAEiAkUEQEEAIQEgBCEFQQEMAgsgAkEBayEBIAIgBmotAABB3wBHDQALAkACQCABRQ0AAkAgASADTwRAIAEgA0cNASACDQJBACEGDAMLIAEgBGosAABBv39KDQELIAQgA0EAIAFByLLFABC7CQALAkAgAiADTwRAIAMhBiACIANHDQEMAgsgAiAEaiwAAEG/f0wNACACIQYMAQsgBCADIAIgA0HYssUAELsJAAsgBCAGaiEFIAMgBmshAyAECyECIANFBEAMAQsgACADNgIMIAAgBTYCCCAAIAE2AgQgACACNgIADwsgAEEANgIAIABBADoABAvbBQIKfwF+IwBBIGsiAyQAAn8CQAJAIAIEQANAIAEgBWosAABBAE4EQCAFQQFqIgUgAkcNAQwDCwsgA0EANgIQIANCgICAgBA3AwggA0EIakEAIAIQ7wUgAygCECEFIAEhByACIQgDQCAFIQYgBywAACIEQQBIBEAgBEH/AHFBAnQoApysSSEEC0EBQQJBAyAEQYAQSSIMGyAEQYABSSIJGyIKIAMoAgggBWtLBH8gA0EIaiAFIAoQ7wUgAygCEAUgBgsgAygCDGohBgJAIAlFBEAgBEEGdiEJIARBP3FBgH9yIQsgDARAIAYgCzoAASAGIAlBwAFyOgAADAILIAYgCzoAAiAGIAlBgAFyOgABIAYgBEEMdkHgAXI6AAAMAQsgBiAEOgAACyADIAUgCmoiBTYCECAHQQFqIQcgCEEBayIIDQALIAMpAwghDUEADAMLIANBADYCECADIAE2AgwMAQsgA0EIaiIGIAEgAhD7AiADKAIIRQ0AIAMgAykCDCINQiCIPgIYIAMgDT4CFCADIAI2AhAgAyABNgIMIAMgAjYCCEHY5sgAQSsgBkG4msgAQciayAAQ4AYACyACrSABrUIghoQhDSACIQVBAQshByANQiCIpyEEAkACQAJAAkACQAJAAkAgBSANpyIITw0AIAVFBEAgBEEEaygCACIGQXhxIgpBBEEIIAZBA3EiBhsgCGpJDQIgBkEAIAogCEEnaksbDQMgBBCiAkEBIQQMAQsgBCAIQQEgBRC7AiIERQ0DCyACRSAHcg0FIAFBBGsoAgAiB0F4cSIIQQRBCCAHQQNxIgcbIAJqSQ0DIAdBACAIIAJBJ2pLGw0EIAEQogIMBQtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgACAFNgIEIAAgBDYCACADQSBqJAALpAQBB38CQAJAIAAoAjgiBQRAIAAoAjQgBUECdEELakF4cSIBayIEQQRrKAIAIgJBeHEiAyABIAVqQQlqIgFBBEEIIAJBA3EiAhtqSQ0BIAJBACADIAFBJ2pLGw0CIAQQogILIAAoAiwhAiAAKAIwIgYEQCACIQEDQCABQawBaigCACIHBEAgAUGoAWooAgAiBUEEaygCACIDQXhxIgRBBEEIIANBA3EiAxsgB2pJDQMgA0EAIAQgB0EnaksbDQQgBRCiAgsgARDqAyABQbgBaiEBIAZBAWsiBg0ACwsgACgCKCIDBEAgAkEEaygCACIBQXhxIgQgA0G4AWwiA0EEQQggAUEDcSIBG2pJDQEgAUEAIAQgA0EnaksbDQIgAhCiAgsgACgCTCIEBEAgACgCSCIDQQRrKAIAIgJBeHEiAUEEQQggAkEDcSICGyAEakkNASACQQAgASAEQSdqSxsNAiADEKICCwJAIAAoAmAiBEUNACAAKAJkIgNFDQAgBEEEaygCACICQXhxIgFBBEEIIAJBA3EiAhsgA2pJDQEgAkEAIAEgA0EnaksbDQIgBBCiAgsCQCAAQX9GDQAgACAAKAIEIgJBAWs2AgQgAkEBRw0AIABBBGsoAgAiAUF4cUHsAEHwACABQQNxIgIbSQ0BIAJBACABQZABTxsNAiAAEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC6kTAxh/BX4BeyMAQSBrIhMkACABKQMQIAEpAxggAigCBCIWIAIoAggiGRCVBCEeIAEoAghFBEACQCABQRBqIRAjAEEgayIMJAACQAJAAkAgASgCDCIUQQFqIgQEQAJAIAEoAgQiCiAKQQFqIhFBA3YiCEEHbCIXIApBCEkbIgVBAXYgBEkEQAJAAkACQAJAAn8gBUEBaiIFIAQgBCAFSRsiBUEPTwRAIAVB/////wFLDQtBfyAFQQN0QQduQQFrZ3ZBAWoMAQtBBCAFQQhxQQhqIAVBBEkbCyIHrUIYfiIcQiCIpw0AIBynIgQgB0EIaiIIaiIFIARJIAVB+P///wdLcg0AIAUQcSIFRQ0BIAQgBWohCyAIBEAgC0H/ASAI/AsACyAHQQFrIg8gB0EDdkEHbCAPQQhJGyEVIAEoAgAhByAUDQJBACEUDAMLIAxBADYCGCAMQQE2AgwgDEHEtcQANgIIIAxCBDcCECAMQQhqQZi1xAAQjQgLAAsgC0EIaiEXIAdBGGshGCAHKQMAQn+FQoCBgoSIkKDAgH+DIR0gECkDCCEfIBApAwAhIEEAIQUgFCEGIAchCANAIB1QBEADQCAFQQhqIQUgCEEIaiIIKQMAQoCBgoSIkKDAgH+DIhxCgIGChIiQoMCAf1ENAAsgHEKAgYKEiJCgwIB/hSEdCyALIA8gICAfIBggHXqnQQN2IAVqIhBBaGxqIgRBBGooAgAgBEEIaigCABCVBKciCXEiBGopAABCgIGChIiQoMCAf4MiHFAEQEEIIQ0DQCAEIA1qIQQgDUEIaiENIAsgBCAPcSIEaikAAEKAgYKEiJCgwIB/gyIcUA0ACwsgHUIBfSAdgyEdIAsgHHqnQQN2IARqIA9xIgRqLAAAQQBOBEAgCykDAEKAgYKEiJCgwIB/g3qnQQN2IQQLIAQgC2ogCUEZdiIJOgAAIBcgBEEIayAPcWogCToAACALIARBf3NBGGxqIglBEGogByAQQX9zQRhsaiIEQRBqKQAANwAAIAkgBP0AAAD9CwAAIAZBAWsiBg0ACwsgASAPNgIEIAEgCzYCACABIBUgFGs2AgggCkUNASAKIApBGGxBH2pBeHEiBWpBCWoiBkUNASAHIAVrIgRBBGsoAgAiBUF4cSIIQQRBCCAFQQNxIgUbIAZqSQ0DIAVBACAIIAZBJ2pLGw0EIAQQogIMAQsgASARBH8gASgCACEJAkACQCAIIBFBB3FBAEdqIgZBAkkEQCAGIQgMAQsgBkEBcSEIIAZB/v///wNxIgdBA3QhDSAHIQQgCSEFA0AgBSAF/QADACIh/U1BB/3NAf0MAQEBAQEBAQEBAQEBAQEBAf1OICH9DH9/f39/f39/f39/f39/f3/9UP3OAf0LAwAgBUEQaiEFIARBAmsiBA0ACyAGIAdGDQELIAkgDWohBQNAIAUgBSkDACIcQn+FQgeIQoGChIiQoMCAAYMgHEL//v379+/fv/8AhHw3AwAgBUEIaiEFIAhBAWsiCA0ACwsCQCARQQhPBEAgCSARaiAJKQAANwAADAELIBFFDQAgCUEIaiAJIBH8CgAACyAJQQhqIQsgECkDCCEfIBApAwAhIEEBIQRBACEFA0AgBSEIIAQhBQJAIAggCWoiDy0AAEGAAUcNACAJIAhBf3NBGGxqIQ4gCSAIQWhsaiIEQRBrIRggBEEUayEQA0AgCiAgIB8gECgCACAYKAIAEJUEpyIVcSIHIQYgByAJaikAAEKAgYKEiJCgwIB/gyIdUARAQQghDQNAIAYgDWohBCANQQhqIQ0gCSAEIApxIgZqKQAAQoCBgoSIkKDAgH+DIh1QDQALCyAJIB16p0EDdiAGaiAKcSIGaiwAAEEATgRAIAkpAwBCgIGChIiQoMCAf4N6p0EDdiEGCyAGIAdrIAggB2tzIApxQQhPBEAgBiAJaiIELQAAIAQgFUEZdiIEOgAAIAsgBkEIayAKcWogBDoAACAJIAZBf3NBGGxqIQZB/wFGBEAgD0H/AToAACALIAogCEEIa3FqQf8BOgAAIAZBEGogDkEQaikAADcAACAGIA79AAAA/QsAAAwDCyAOKQAAIRwgDiAGKQAANwAAIAYgHDcAACAGKQAIIRwgBiAOKQAINwAIIA4gHDcACCAOKAAQIQcgDiAGKAAQNgAQIAYoABQhBCAGIA4oABQ2ABQgDiAENgAUIAYgBzYAEAwBCwsgDyAVQRl2IgQ6AAAgCyAKIAhBCGtxaiAEOgAACyAFIAUgEUkiCGohBCAIDQALIAogFyAKQQhJGwVBAAsgFGs2AggLIAxBIGokAAwECwwCC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgDEEANgIYIAxBATYCDCAMQcS1xAA2AgggDEIENwIQIAxBCGpBmLXEABCNCAALCyABKAIEIgggHqdxIQcgHkIZiCIfQv8Ag0KBgoSIkKDAgAF+ISAgASgCACEEA0ACQAJAAkACQAJAAkAgBCAHaikAACIeICCFIhxCf4UgHEKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIcUEUEQANAIAQgHHqnQQN2IAdqIAhxQWhsaiIFQRBrKAIAIBlGBEAgFiAFQRRrKAIAIBkQ2wdFDQMLIBxCAX0gHIMiHFBFDQALCyAeQoCBgoSIkKDAgH+DIRwgGkUEQCAcUA0DIBx6p0EDdiAHaiAIcSESCyAcIB5CAYaDUARAQQEhGgwGCyAEIBJqLAAAIgdBAE4EQCAEIAQpAwBCgIGChIiQoMCAf4N6p0EDdiISai0AACEHCyAEIBJqIB+nQf8AcSIFOgAAIAQgEkEIayAIcWpBCGogBToAACATQRBqIgUgAkEIaigCADYCACATQRxqIANBCGooAgA2AgAgASABKAIIIAdBAXFrNgIIIAEgASgCDEEBajYCDCAEIBJBaGxqQRhrIgEgAikCADcCACATIAMpAgA3AhQgAUEIaiAFKQMANwIAIAFBEGogE0EYaikDADcCACAAQYCAgIB4NgIADAELIAAgBUEMayIBKQIANwIAIAEgAykCADcCACAAQQhqIAFBCGoiACgCADYCACAAIANBCGooAgA2AgAgAigCACICRQ0AIBZBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIAJqSQ0CIABBACABIAJBJ2pLGw0DIBYQogILIBNBIGokAA8LQQAhGgwCC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgG0EIaiIbIAdqIAhxIQcMAAsAC44FAgx/A34jAEGgAWsiCCQAIAhBAEGgAfwLAAJAAkAgAiAAKAKgASIFTQRAIAVBKU8NAiAFQQFqIQwgBUECdCEJIAEgAkECdGohDQJAA0AgCCAGQQJ0aiEDA0AgBiECIAMhBCABIA1GDQQgA0EEaiEDIAJBAWohBiABKAIAIQcgAUEEaiILIQEgB0UNAAsgB60hEUIAIQ8gCSEHIAIhASAAIQMDQCABQShPDQIgBCAPIAQ1AgB8IAM1AgAgEX58IhA+AgAgEEIgiCEPIARBBGohBCABQQFqIQEgA0EEaiEDIAdBBGsiBw0ACwJAIAogEEKAgICAEFoEfyACIAVqIgFBKE8NASAIIAFBAnRqIA8+AgAgDAUgBQsgAmoiASABIApJGyEKIAshAQwBCwsgAUEoQYyDwgAQjAcACyABQShBjIPCABCMBwALIAJBAWohDSACQQJ0IQwgACAFQQJ0aiEOIAAhAwJAA0AgCCAHQQJ0aiEGA0AgByELIAYhBCADIA5GDQMgBEEEaiEGIAdBAWohByADKAIAIQkgA0EEaiIFIQMgCUUNAAsgCa0hEUIAIQ8gDCEJIAshAyABIQYDQCADQShPDQIgBCAPIAQ1AgB8IAY1AgAgEX58IhA+AgAgEEIgiCEPIARBBGohBCADQQFqIQMgBkEEaiEGIAlBBGsiCQ0ACwJAIAogEEKAgICAEFoEfyACIAtqIgNBKE8NASAIIANBAnRqIA8+AgAgDQUgAgsgC2oiAyADIApJGyEKIAUhAwwBCwsgA0EoQYyDwgAQjAcACyADQShBjIPCABCMBwALIAAgCEGgAfwKAAAgACAKNgKgASAIQaABaiQADwtBACAFQShBjIPCABDqBwALpQUCBX8EfgJAAkACQAJAAkAgAkUEQEEBIQUMAQsgAhBxIgVFDQEgBUEEay0AAEEDcUUgAkVyDQAgBUEAIAL8CwALIAEoAgQiA60hCCADQv////8PIAEpAwgiCSAJQv////8PWhunayIEQQAgAyAETxsgAk8EQCABKAIAIAkgCCAIIAlWG6dqIQMgAkEBRwRAIAJFDQMgBSADIAL8CgAADAMLIAUgAy0AADoAAAwCC0GokMgAKQMAIgtCCIghCiALpyEDIAtC/wGDQgRSDQMMAgsAC0EEIQMLIAkgAq18IQgLIAEgCDcDCAJAAkACQAJAIANB/wFxIgZBBEcEQCAKQhiIpyEBIAqnIgchBAJAAkACQAJAIAZBAWsOAwEAAgMLIAEtAAghBAsgBEH/AXFBJUcNASAAQTI2AgggAEHfi8EANgIEIABBgICAgHg2AgAMBAsgAS0ACEElRg0CCyAAIAE2AgggAEGBgICAeDYCACAAIANB/wFxIAdBCHRyNgIEDAILIAAgAjYCCCAAIAU2AgQgAEGGgICAeDYCAA8LIABBMjYCCCAAQd+LwQA2AgQgAEGAgICAeDYCACABKAIAIQAgAUEEaigCACIDKAIAIgQEQCAAIAQRAwALIAMoAgQiAwRAIABBBGsoAgAiBEF4cSIGQQRBCCAEQQNxIgQbIANqSQ0CIARBACAGIANBJ2pLGw0DIAAQogILIAFBBGsoAgAiAEF4cSIDQRBBFCAAQQNxIgAbSQ0BIABBACADQTRPGw0CIAEQogILIAIEQCAFQQRrKAIAIgBBeHEiAUEEQQggAEEDcSIAGyACakkNASAAQQAgASACQSdqSxsNAiAFEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC40EAQd/AkACQCAAKAIAIgEEQCAAKAIEIgRBBGsoAgAiAkF4cSIDIAFBJGwiAUEEQQggAkEDcSICG2pJDQEgAkEAIAMgAUEnaksbDQIgBBCiAgsgACgCECECIAAoAhQiBQRAIAIhAQNAIAFBFGooAgAiBEEFTwRAIAFBCGooAgAiBkEEaygCACIDQXhxIgcgBEECdCIEQQRBCCADQQNxIgMbakkNAyADQQAgByAEQSdqSxsNBCAGEKICCyABQRhqIQEgBUEBayIFDQALCyAAKAIMIgMEQCACQQRrKAIAIgFBeHEiBCADQRhsIgNBBEEIIAFBA3EiARtqSQ0BIAFBACAEIANBJ2pLGw0CIAIQogILIAAoAhgiAQRAIAAoAhwiBEEEaygCACICQXhxIgMgAUESbCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAIkIgEEQCAAKAIoIgRBBGsoAgAiAkF4cSIDIAFBHmwiAUEEQQggAkEDcSICG2pJDQEgAkEAIAMgAUEnaksbDQIgBBCiAgsgACgCMCICBEAgACgCNCIDQQRrKAIAIgBBeHEiASACQSpsIgJBBEEIIABBA3EiABtqSQ0BIABBACABIAJBJ2pLGw0CIAMQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALjQQBB38CQAJAIAAoAgAiAQRAIAAoAgQiBEEEaygCACICQXhxIgMgAUEYbCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAIQIQIgACgCFCIFBEAgAiEBA0AgAUEUaigCACIEQQVPBEAgAUEIaigCACIGQQRrKAIAIgNBeHEiByAEQQJ0IgRBBEEIIANBA3EiAxtqSQ0DIANBACAHIARBJ2pLGw0EIAYQogILIAFBGGohASAFQQFrIgUNAAsLIAAoAgwiAwRAIAJBBGsoAgAiAUF4cSIEIANBGGwiA0EEQQggAUEDcSIBG2pJDQEgAUEAIAQgA0EnaksbDQIgAhCiAgsgACgCGCIBBEAgACgCHCIEQQRrKAIAIgJBeHEiAyABQQlsIgFBBEEIIAJBA3EiAhtqSQ0BIAJBACADIAFBJ2pLGw0CIAQQogILIAAoAiQiAQRAIAAoAigiBEEEaygCACICQXhxIgMgAUEPbCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAIwIgIEQCAAKAI0IgNBBGsoAgAiAEF4cSIBIAJBFWwiAkEEQQggAEEDcSIAG2pJDQEgAEEAIAEgAkEnaksbDQIgAxCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvLBQIGfwN+IwBBgAFrIgQkACABvCEGAn9BAyABi0MAAIB/Ww0AGkECIAZBgICA/AdxIgVBgICA/AdGDQAaIAZB////A3EiCEGAgIAEciAGQQF0Qf7//wdxIAZBF3ZB/wFxIgcbIgmtIgpCAYMhCyAFRQRAQQQgCEUNARogB0GWAWshB0IBIQwgC1AMAQtCgICAECAKQgGGIAlBgICABEYiCBshCkICQgEgCBshDEHofkHpfiAIGyAHaiEHIAtQCyEFIAQgBzsBeCAEIAw3A3AgBEIBNwNoIAQgCjcDYCAEIAU6AHoCfwJAAkACQAJAAkAgBUH/AXFBAU0EQCADQf//A3EhA0Hqs8UAQQEgBkEASCIFGyEHQeqzxQBByIHCACAFGyEFIAZBH3YhBiAEQSBqIARB4ABqIARBD2oQzwEgBCgCIEUNASAEQdgAaiAEQShqKAIANgIAIAQgBCkCIDcDUAwCCyAFQf8BcSIIQQJGDQJBASEFQeqzxQBByIHCACAGQQBIIgcbQeqzxQBBASAHGyACGyEHQQEgBkEfdiACGyEGIAhBBEcNA0ECIQUgBEECOwEgIANB//8DcQ0EQQEhBSAEQQE2AiggBEGYsMUANgIkIARBIGoMBQsgBEHQAGogBEHgAGogBEEPahBXCyAFIAcgAhshB0EBIAYgAhshBiAEIAQoAlAgBCgCVCAELwFYIAMgBEEgahDsBCAEKAIEIQUgBCgCAAwDCyAEQQM2AiggBEHzncYANgIkIARBAjsBIEEBIQdBACEGQQEhBSAEQSBqDAILIARBAzYCKCAEQeydxgA2AiQgBEECOwEgIARBIGoMAQsgBEEBNgIwIARBADsBLCAEQQI2AiggBEG5g8IANgIkIARBIGoLIQIgBCAFNgJcIAQgAjYCWCAEIAY2AlQgBCAHNgJQIAAgBEHQAGoQvgMgBEGAAWokAAv3BAEIfwJAIAMtAAMiByADLQAEIgtrIgggCEEfdSIIcyAIa0EBdCADLQACIgggAy0ABSIKayIEIARBH3UiBXMgBWtBAXZqIAJB/wFxSw0AIAFB/wFxIgEgAy0AACADLQABIgJrIgUgBUEfdSIFcyAFa0kNACABIgUgAiAIayIGIAZBH3UiBnMgBmtB/wFxSQ0AIAUgCCAHayIGIAZBH3UiBnMgBmsiBkH/AXFJDQAgBSADLQAHIAMtAAYiBWsiCSAJQR91IglzIAlrSQ0AIAEgBSAKayIJIAlBH3UiCXMgCWtB/wFxSQ0AIAEgCiALayIBIAFBH3UiAXMgAWsiAUH/AXFJDQAgAEH/AXEiACAGQf8BcU8gAUH/AXEgAE1xRQRAQQEgAxDiBRoPCyADQf8BIAVB/wBBgH8gCyAHa0EDbEH/AEGAfyAEIARBgH9MGyIAIABB/wBOG2oiACAAQYB/TBsiACAAQf8AThsiAEEJbEE/akEHdSIBayIEQQAgBEEAShsiBCAEQf8BThs6AAYgA0H/AEGAfyAKIABBEmxBP2pBB3UiCmtBgAFrIgQgBEGAf0wbIgQgBEH/AE4bQYABczoABSADQf8AQYB/IAcgAEEbbEE/akEHdSIAakGAAWsiByAHQYB/TBsiByAHQf8AThtBgAFzOgADIANB/wBBgH8gCyAAa0GAAWsiACAAQYB/TBsiACAAQf8AThtBgAFzOgAEIANB/wBBgH8gCCAKakGAAWsiACAAQYB/TBsiACAAQf8AThtBgAFzOgACIANB/wBBgH8gASACakGAAWsiACAAQYB/TBsiACAAQf8AThtBgAFzOgABCwvDBQIHfwF7IwBB0NEAayIDJABBASEHAkACQAJAIAJBAXQiBEEATgRAAkAgAkUNACAEEHEiB0UNAiAHQQRrLQAAQQNxRSAERXINACAHQQAgBPwLAAsgAyAENgIMIAMgBzYCCCADIAQ2AgRBhNIAEHEiBUUNASAFQQA2AuRRIAVB6NEAakEAOwEAIANBkM8AakEAQcAC/AsAIAVB/NEAakEANgAAIAX9DAAAAAAAAAAAAAAAAAAAAAD9CwDtUSADQRBqIgZBAEGAzwD8CwAgBSAGQcDRAPwKAAAgBUHg0QBqQQA2AgAgBUHQ0QBqIAr9CwIAIAUgCv0LAsBRIAVBADoAgFIgBUEAOgDsUSAFQQA7AepRA0AgA0EQaiAFIAEgAiAHIAQgCEEEEEQgAygCGCAIaiEIIAMtABQiBkECRwRAIAYEQCAAIAMpAgQ3AgAgACAGOgAMIABBCGogA0EMaigCADYCAAwGCyAEIAhPBEAgAyAINgIMCyAAIAMpAgQ3AgQgAEGAgICAeDYCACAAQQxqIANBDGooAgA2AgAMBQsgAiADKAIQIgZJDQMgASAGaiEBIAIgBmshAiADIAQEfyAEIQYgAygCBCAEayAESQRAIANBBGogBCAEEPgFIAMoAgghByADKAIMIQYLIAYgB2ohCSAEQQFHBH8gBEEBayIEBEAgCUEAIAT8CwALIAcgBCAGaiIGagUgCQtBADoAACAGQQFqBSAEQQF0CyIENgIMDAALAAtBwPzEABD/BwsACyAAIAMpAgQ3AgAgAEECOgAMIABBCGogA0EMaigCADYCAAsCQCAFQQRrKAIAIgBBeHEiAUGI0gBBjNIAIABBA3EiABtPBEAgAEEAIAFBrNIATxsNASAFEKICIANB0NEAaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALowUBCH8CQAJAAkACQAJAAkACQCABIAIgAyAEIAUgBhDAAwRAIAUgBkEBdCIIayIBIARPDQIgBSAGayICIARPDQMgAEH/AXEiDCABIANqIgotAAAiASACIANqIgstAAAiAmsiByAHQR91IgdzIAdrSQ0GIAUgBmoiByAETw0EIAQgBU0NBSAMIAMgB2oiDS0AACIHIAMgBWoiDi0AACIJayIAIABBH3UiAHMgAGtJDQYgBkF9bCAFaiIAIARPDQcgBSAIaiIFIARPDQEgACADaiIELQAAIQYgAyAFaiIDLQAAIQUgDkH/AEGAfyAJQf8AQYB/IAkgAmtBA2xB/wBBgH8gASAHayIAIABBgH9MGyIAIABB/wBOG2oiACAAQYB/TBsiACAAQf8AThsiAEEbbEE/akEHdSIJa0GAAWsiCCAIQYB/TBsiCCAIQf8AThtBgAFzOgAAIAtB/wBBgH8gAiAJakGAAWsiAiACQYB/TBsiAiACQf8AThtBgAFzOgAAIA1B/wBBgH8gByAAQRJsQT9qQQd1IgJrQYABayIHIAdBgH9MGyIHIAdB/wBOG0GAAXM6AAAgCkH/AEGAfyABIAJqQYABayIBIAFBgH9MGyIBIAFB/wBOG0GAAXM6AAAgA0H/AEGAfyAFIABBCWxBP2pBB3UiAGtBgAFrIgEgAUGAf0wbIgEgAUH/AE4bQYABczoAACAEQf8AQYB/IAAgBmpBgAFrIgAgAEGAf0wbIgAgAEH/AE4bQYABczoAAAsPCyAFIARB2NfEABCMBwALIAEgBEHo18QAEIwHAAsgAiAEQfjXxAAQjAcACyAHIARBiNjEABCMBwALIAUgBEGY2MQAEIwHAAtBASADIAQgBSAGEOgEGg8LIAAgBEHI18QAEIwHAAvMBQIGfwJ+AkAgAkUNACACQQdrIgNBACACIANPGyEHIAFBA2pBfHEgAWshCEEAIQMDQAJAAkACQCABIANqLQAAIgXAIgZBAE4EQCAIIANrQQNxDQEgAyAHTw0CA0AgASADaiIEQQRqKAIAIAQoAgByQYCBgoR4cQ0DIANBCGoiAyAHSQ0ACwwCC0KAgICAgCAhCkKAgICAECEJAkACQAJ+AkACQAJAAkACQAJAAkACQAJAIAUtAPSWQkECaw4DAAECCgsgA0EBaiIEIAJJDQJCACEKQgAhCQwJC0IAIQogA0EBaiIEIAJJDQJCACEJDAgLQgAhCiADQQFqIgQgAkkNAkIAIQkMBwsgASAEaiwAAEG/f0oNBgwHCyABIARqLAAAIQQCQAJAIAVB4AFrIgUEQCAFQQ1GBEAMAgUMAwsACyAEQWBxQaB/Rg0EDAMLIARBn39KDQIMAwsgBkEfakH/AXFBDE8EQCAGQX5xQW5HDQIgBEFASA0DDAILIARBQEgNAgwBCyABIARqLAAAIQQCQAJAAkACQCAFQfABaw4FAQAAAAIACyAGQQ9qQf8BcUECSyAEQUBOcg0DDAILIARB8ABqQf8BcUEwTw0CDAELIARBj39KDQELIAIgA0ECaiIETQRAQgAhCQwFCyABIARqLAAAQb9/Sg0CQgAhCSADQQNqIgQgAk8NBCABIARqLAAAQUBIDQVCgICAgIDgAAwDC0KAgICAgCAMAgtCACEJIANBAmoiBCACTw0CIAEgBGosAABBv39MDQMLQoCAgICAwAALIQpCgICAgBAhCQsgACAKIAOthCAJhDcCBCAAQQE2AgAPCyAEQQFqIQMMAgsgA0EBaiEDDAELIAIgA00NAANAIAEgA2osAABBAEgNASACIANBAWoiA0cNAAsMAgsgAiADSw0ACwsgACACNgIIIAAgATYCBCAAQQA2AgALiwUCB38CewJAAn8CQCABKAIgIgUgA00EQCACIANqIgggBWshByADIAVIBEAgAiEEDAILIAH9AAQQIQsgAf0ABAAhDCABLQAlIQkgAS0AJCEGIAIhBANAIAQgBmr9AAAAIAz9IyAEIAlq/QAAACAL/SP9Tv1kIgoEQCAKaCAEIAJragwECyAHIARBEGoiBE8NAAsMAQsgA0UNAiABLQA0IQUCQAJAAkAgA0EETwRAQYCChAggBUGBgoQIbCIHIAIoAABzIgRrIARyQYCBgoR4cUGAgYKEeEcEQCACIQQDQCAFIAQtAABGDQUgBEEBaiEEIANBAWsiAw0ACwwHCyACQQQgAkEDcSIIayIGaiEEIANBCUkNASAEIAIgA2oiA0EIayIISw0CA0BBgIKECCAEKAIAIAdzIgZrIAZyQYCBgoR4cUGAgYKEeEcNA0GAgoQIIARBBGooAgAgB3MiBmsgBnJBgIGChHhxQYCBgoR4Rw0DIARBCGoiBCAITQ0ACwwCCyAFIAIiBC0AAEYNAiADQQFGDQUgBC0AASAFRgRAIARBAWohBAwDCyADQQJGDQUgBSACLQACRw0FIAJBAmohBAwCCyADIAZNDQQgAyAIakEEayEDA0AgBSAELQAARg0CIARBAWohBCADQQFrIgMNAAsMBAsgAyAETQ0DA0AgBSAELQAARg0BIARBAWoiBCADRw0ACwwDCyAEIAJrIgIgAS0ANWsiAUEAIAEgAk0bDAELQQAhCSAEIAhPDQEgByABLQAkav0AAAAgAf0ABAD9IyAHIAEtACVq/QAAACAB/QAEEP0j/U79ZCIERQ0BIARoIAMgBWtqCyEEQQEhCQsgACAENgIEIAAgCTYCAAuLBQEQfyMAQRBrIgokAAJAIAEoAhAiBiABKAIMIgNJDQAgBiABKAIIIg5LDQAgASgCBCELIAFBFGoiECABLQAYIgdqQQFrLQAAIQgCQCAHQQVPBEADQCADIAtqIQQCQCAGIANrIgVBB00EQCADIAZGDQRBACECA0AgAiAEai0AACAIRg0CIAUgAkEBaiICRw0ACwwECyAKQQhqIAggBCAFEIcFIAooAghBAXFFDQMgCigCDCECCyABIAIgA2pBAWoiAzYCDCADIA5NIAMgB09xRQRAIAMgBk0NAQwECwtBACAHQQRB5LjHABDqBwALIAhBgYKECGwhDwNAIAMgC2ohBQJAAkACQAJAIAYgA2siCUEITwRAIAVBA2pBfHEiAiAFRg0BIAIgBWshBEEAIQIDQCACIAVqLQAAIAhGDQUgBCACQQFqIgJHDQALIAQgCUEIayICSw0DDAILIAMgBkYNBUEAIQIDQCACIAVqLQAAIAhGDQQgAkEBaiICIAlHDQALDAULIAlBCGshAkEAIQQLA0BBgIKECCAEIAVqIgwoAgAgD3MiEWsgEXJBgIKECCAMQQRqKAIAIA9zIgxrIAxycUGAgYKEeHFBgIGChHhHDQEgBEEIaiIEIAJNDQALCyAEIAlGDQIgBCAFaiEFIAYgBGsgA2shCUEAIQIDQCAIIAIgBWotAABHBEAgAkEBaiICIAlHDQEMBAsLIAIgBGohAgsgASACIANqQQFqIgM2AgwCQCADIAdJIAMgDktyRQRAIAsgAyAHayICaiAQIAcQ2wdFDQELIAMgBk0NAQwDCwsgACADNgIIIAAgAjYCBEEBIQ0MAQsgASAGNgIMCyAAIA02AgAgCkEQaiQAC7oEAQR/AkACQAJAAkACQAJAAkACQAJAAkBBFSAAKAIAIgRBgICAgHhzIARBAE4bDhUHBwcHBwcHBwcHBwcBBwIHBwMHBAUACyAAKAIEIQIgACgCCCIABEAgAiEBA0AgARD+AiABQRBqEP4CIAFBIGohASAAQQFrIgANAAsLIARFDQYgAkEEaygCACIAQXhxIgMgBEEFdCIBQQRBCCAAQQNxIgAbckkNCCAARQ0FIAMgAUEnaksNBwwFCyAAKAIEIgNFDQUgACgCCCICQQRrKAIAIgBBeHEiAUEEQQggAEEDcSIAGyADakkNByAARSABIANBJ2pNcg0EDAYLIAAoAgQiA0UNBCAAKAIIIgJBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIANqSQ0GIABFIAEgA0Enak1yDQMMBQsgACgCBCICEP4CIAJBBGsoAgAiAUF4cUEUQRggAUEDcSIAG0kNBSAARSABQThJcg0CDAQLIAAoAgQiAhD+AiACQQRrKAIAIgFBeHFBFEEYIAFBA3EiABtJDQQgAEUgAUE4SXINAQwDCyAAKAIIIQIgACgCDCIDBEAgAiEBA0AgARD+AiABQRBqIQEgA0EBayIDDQALCyAAKAIEIgFFDQEgAkEEaygCACIAQXhxIgMgAUEEdCIBQQRBCCAAQQNxIgAbckkNAyAARSADIAFBJ2pNcg0ADAILIAIQogILDwtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALtAUCB38BeyAFQQNuIQwCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAQRAIAFBAnQiChBxIglFDQUCQCABQQRPBEAgACEIIAkhByABQXxxIgshBgNAIAcgCP0AAgAiDf0fABCJBP0TIA39HwEQiQT9IAEgDf0fAhCJBP0gAiAN/R8DEIkE/SAD/QsCACAIQRBqIQggB0EQaiEHIAZBBGsiBg0ACyABIAtGDQELIAEgC2shBiAAIAtBAnQiB2ohCCAHIAlqIQcDQCAHIAgqAgAQiQQ4AgAgCEEEaiEIIAdBBGohByAGQQFrIgYNAAsLIAVBA08NAQwCC0EEIQkgBUEDSQ0CC0EAIQhBACEHA0AgAyAITQ0HIAEgAiAIaiIALQAAIgZNDQggBSAHTQ0JIAQgCSAGQQJ0aioCADgCACAIQQFqIgYgA08NCiABIABBAWotAAAiBk0NCyAHQQFqIgogBU8NDCAEQQRqIAkgBkECdGoqAgA4AgAgCEECaiIGIANPDQ0gASAAQQJqLQAAIgBNDQ4gB0ECaiIGIAVPDQMgBEEIaiAJIABBAnRqKgIAOAIAIAhBBGohCCAEQQxqIQQgB0EDaiEHIAxBAWsiDA0ACyABQQJ0IQoLIAlBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIApqSQ0DIABBACABIApBJ2pLGw0EIAkQogILDwsgBiAFQbD2xwAQjAcLAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAggA0Gw9ccAEIwHAAsgBiABQcD1xwAQjAcACyAHIAVB0PXHABCMBwALIAYgA0Hg9ccAEIwHAAsgBiABQfD1xwAQjAcACyAKIAVBgPbHABCMBwALIAYgA0GQ9scAEIwHAAsgACABQaD2xwAQjAcAC6QFAwd/AX4BbyMAQTBrIgMkAAJAAn8CQCAAKAIAIgQlAUGBCCUBECNFBEBBAiAEELoKIgVBAEcgBUH///8HRiIFGyEIQQEhByAFDQFBAAwCCyADQQc6ABggA0EYaiABIAIQ0AUhAAwCCyADQRhqIAQQrwogAygCGARAIAMpAyAhCkEDDAELIANBGGogBCUBECQgAygCGCIFBEAgAygCHCIErSEKQQAhB0EFDAELAkACQCAEJQEQJQRAIANBGGogBBCrBiADKQIcIQogAygCGCEGDAELIAQlARAmRQ0BIAQlARAnIQsQ2gQiBCALJgEgA0EYaiAEEKsGIAMpAhwhCiADKAIYIQYgBEGECEkNACAEEJsHCyAGQYCAgIB4Rg0AIAqnIQVBASEJIApCIIghCkEGDAELIAMgAK1CgICAgIAEhDcDECADQgE3AiQgA0EBNgIcIANBoPjHADYCGCADIANBEGo2AiAgA0EEaiADQRhqEOwDQYCAgIB4IQYgAygCCCEFIAMoAgQhBCADNQIMIQpBACEHQRELIQAgAyAKNwMgIAMgBTYCHCADIAg6ABkgAyAAOgAYIANBGGogASACENAFIQACQAJAAkACQAJAIAlFBEAgByAERXINBgwBCyAGBEAgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBmpJDQIgAUEAIAIgBkEnaksbDQMgBRCiAgsgBEUgB3INBQsgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBGpJDQIgAUEAIAIgBEEnaksbDQMgBRCiAgwEC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIANBMGokACAAC+YFAQN/IwBBIGsiAyQAIAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAQ4oAgEBAQEBAQEBAwUBAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQgBAQEBBwALIAFB3ABGDQULIAJBAXFFIAFB/wVNcg0HIAEQ5QRFDQcgA0EOakEAOgAAIANBADsBDCADIAFBFHYtANy2RToADyADIAFBBHZBD3EtANy2RToAEyADIAFBCHZBD3EtANy2RToAEiADIAFBDHZBD3EtANy2RToAESADIAFBEHZBD3EtANy2RToAECABQQFyZ0ECdiICIANBDGoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgAkECayICakHcADoAACADQRRqIgQgAUEPcS0A3LZFOgAAIAAgAykBDDcAACADQf0AOgAVDAgLIABCADcBAiAAQdzgADsBAAwKCyAAQgA3AQIgAEHc6AE7AQAMCQsgAEIANwECIABB3OQBOwEADAgLIABCADcBAiAAQdzcATsBAAwHCyAAQgA3AQIgAEHcuAE7AQAMBgsgAkGAAnFFDQEgAEIANwECIABB3M4AOwEADAULIAJB////B3FBgIAETw0DCyABEOECDQEgA0EYakEAOgAAIANBADsBFiADIAFBFHYtANy2RToAGSADIAFBBHZBD3EtANy2RToAHSADIAFBCHZBD3EtANy2RToA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IAMgAUEDdGoiAiAFNgIEIAIgCjgCACABDQBBACECDAELIAogClsEQANAIAMgAUEBayIGQQF2IgJBA3RqIgcqAgAiCyALWyAKIAtfRXFBfyAKIAtgGyIEQQBMIAUgB0EEaigCAE0gBBsEQCABIQIMAwsgAyABQQN0aiAHKQIANwIAIAIhASAGQQFLDQAMAgsACwNAAkAgAyABQQFrIgRBAXYiAkEDdGoiBioCACILIAtbIAogC19FcQ0AIAUgBkEEaigCAEsNACABIQIMAgsgAyABQQN0aiAGKQIANwIAIAIhASAEQQJPDQALCyADIAJBA3RqIgEgBTYCBCABIAo4AgALIAAgCTYCCCAAIA04AgQgAEEBNgIAC4kGAQV/IwBBIGsiAiQAQQEhBAJAAkACQAJAAkACQEEBIAAoAgAiA0H/////B2ogA0GAgICAeE0bQQFrDgQBAgMEAAsgASgCACIDQcSjxwBBAiABKAIEIgYoAgwiBREAAA0EIABBBGohAAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAURAAANBiAAIAEQrgINBiABKAIAIQMgASgCBCgCDCEFDAELIANB24HCAEECIAURAAANBSACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqEK4CDQUgAigCEEHZgcIAQQIgAigCFCgCDBEAAA0FCyADQd6OyABBASAFEQAAIQQMBAsgASgCACIDQcajxwBBDiABKAIEIgYoAgwiBREAAA0DAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0FIAAoAgQgACgCCCABELUCRQ0BDAULIANB24HCAEECIAURAAANBCACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACgCBCAAKAIIIAJBEGoQtQINBCACQdmBwgBBAhCvAw0ECyADQd6OyABBASAFEQAAIQQMAwsgASgCACIDQdSjxwBBEiABKAIEIgYoAgwiBREAAA0CAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0EIAAoAgQgACgCCCABELUCRQ0BDAQLIANB24HCAEECIAURAAANAyACQQE6AA8gAiAGNgIEIAIg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AkACQAJAAkACQAJAQRUgASgCACIDQYCAgIB4cyADQQBOG0EBaw4IAQIDBAUGBwgACyABIAJBH2pB6OfAABCVCCEBIABBAToAACAAIAE2AgQMCAsgAEEAOgAAIAAgAS0ABDoAAQwHCyABLwEEIgFB/wFNBEAgACABOgABIABBADoAAAwHCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwGCyABKAIEIgFB/wFNBEAgACABOgABIABBADoAAAwGCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwFCyABKQMIIgRC/wFYBEAgACAEPAABIABBADoAAAwFCyACQQE6AAggAiAENwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAEsAAQiAUEASARAIAJBAjoACCACIAGsNwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAAgAToAASAAQQA6AAAMAwsgAS8BBCIBQYACTwRAIAJBAjoACCACIAGtwzcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwDCyAAIAE6AAEgAEEAOgAADAILIAEoAgQiAUGAAk8EQCACQQI6AAggAiABrDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwCCyAAIAE6AAEgAEEAOgAADAELIAACfyABKQMIIgRCgAJaBEAgAkECOgAIIAIgBDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEQQEMAQsgACAEPAABQQALOgAACyACQSBqJAALxgQCBn8DfgJAIAEoAgBBAUYEQCABKQMQIgpQBEAMAgsgASgCGCIGKAIAIAYpAwgiCyAGKAIEIgWtIgwgCyAMVBunaiEHAkAgBUL/////DyALIAtC/////w9aG6drIgRBACAEIAVNGyIFIAogA60iDCAKIAxUG6ciBCAEIAVLGyIEQQFGBEAgAiAHLQAAOgAADAELIARFDQAgAiAHIAT8CgAACyABIAogBK0iCn03AxAgBiAKIAt8NwMIIARFBEBBACEEDAILQQEgBGshCCADQQFrIQYgASgCJCEJIAEoAiAhByABKAIoIQMDQAJAIAIgAi0AACADQQNy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KCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahDUASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2AjggAUEBNgIsIAFBqKPBADYCKCABQgQ3AjAgAUEoahCSByEDCyABQdAAaiQAIAML0wQCB38BfiMAQdAAayIBJAACQCAAEFwiAw0AIAAoAtwEIgJBgYCAgHhGIgRFBEACQAJAIAJBgICAgHhGBEBBACAAIAQbIQUgACgCCCIGQQZ0IQMgACgCBCIHQTxqIQICQANAIAIhBCADRQ0BIANBQGohAyACQUBrIQIgBC0AAEEBRw0ACyAEQTxrIgIoAjggAigCICIERw0DIAQgACgC7AJHDQMLIAZBBnQhAyAHQTxqIQIDQCACIQQgA0UNAiADQUBqIQMgAkFAayECIAQtAABBAkcNAAsgBEE8ayICKAI4IAIoAiBGDQEgAUECNgIsIAFBiKPBADYCKCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahCjASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2Ajgg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rgQCBX8EfiMAQSBrIgIkAEEEIQMgASgCBCIErSEIIAECfgJAIARC/////w8gASkDCCIHIAdC/////w9aG6drIgZBACAEIAZPG0EETwRAIAEoAgAgByAIIAcgCFQbp2ooAAAhBQwBC0GokMgAKQMAIglCCIghCiAJpyEDIAggCUL/AYNCBFINARoLIAdCBHwLIgk3AwgCQCADQf8BcUEERwRAIABBEmogAkEWai8BADsBACACIAOtQv8BgyAKQgiGhDcCDCACQQRqIAJBDWotAAAiAToAACAAIAIpAQ43AQogAiACKAAJIgM2AgAgAEEJaiABOgAAIAAgAzYABSAAQQA6AAQgAEEBNgIADAELIAJBCGpBAXIgBRCYBCACQRxqIAJBDWotAAA6AAAgAiACKAAJIgM2AgAgAiADNgIYAkACQCAEIAkgCCAIIAlWG6ciA2tBBE8EQCABKAIAIANqKAAAIQRBBCEDQgAhBwwBC0EAIQRBqJDIACkDACIKQgiIIQcgCqchAyAKQv8Bg0IEUg0BCyAJQgR8IQgLIAEgCDcDCCADQf8BcUEERwRAIAAgAzoACCAAQQA6AAQgAEEBNgIAIAAgB6ciATsACSAAIAdCGIg+AgwgAEELaiABQRB2OgAADAELIAAgAigCGDYAECAAQQA2AgAgACAErTcDCCAAQRRqIAJBHGotAAA6AAAgAEF/IAQgBEEBcWoiACAAIARJG603AxgLIAJBIGokAAvdBAIHfwF+IwBBEGsiAyQAAkAgAC8BDCICRQRAIAAoAgAgACgCBCABEKEDIQEMAQsgAyAB/QACAP0LAwACQAJ/IAApAggiCaciB0GAgIAIcUUEQCADKAIEDAELIAAoAgAgAygCACADKAIEIgEgACgCBCgCDBEAAA0BIAAgB0GAgID/eXFBsICAgAJyIgc2AgggA0IBNwMAIAIgAUH//wNxayIBQQAgASACTRshAkEACyEIAkAgAygCDCIFRQRADAELIAMoAgghAQNAAn8CQAJAAkACQCABLwEAQQFrDgIBAgALIAFBBGooAgAMAwsgAUECai8BACIEDQFBAQwCCyABQQhqKAIADAELIARB9v8XaiAEQZz/H2pxIARBmPg3aiAEQfCxH2pxc0ERdkEBagsgAUEMaiEBIAZqIQYgBUEBayIFDQALCwJAIAYgCGoiASACQf//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IAEoAiAiAiABKAIcIgFGDQELIAEgB2ohCCACIAFrIQMLIAAgAzYCBCAAIAg2AgAgBkEQaiQAC70DAgZ/AX4jAEHQAGsiAiQAIAJBIGogACAAKAIAKAIEEQEAIAIgAkEwaq1CgICAgLABhDcDKCACIAIpAyA3AjAgASgCACEFIAEoAgQhBiACQgE3AkRBASEDIAJBATYCPCACQaD4xwA2AjggAiACQShqNgJAAkAgBSAGIAJBOGoQwQMNACABLQAKQYABcUUEQEEAIQMMAQsgAkEYaiAAIAAoAgAoAgQRAQAgAkEQaiACKAIYIAIoAhwoAhgRAQAgAigCECIERQRAQQAhAwwBCyACQQhqIAQgAigCFCIHKAIYEQEAIAIoAgwhACACKAIIIQEgAiAHNgIsIAIgBDYCKCACQQE2AjwgAkGA8cEANgI4IAJCATcCRCACIAJBKGqtQoCAgICwAYQiCDcDMCACIAJBMGo2AkAgBSAGIAJBOGoQngkNAANAIAFFBEBBACEDDAILIAIgASAAKAIYEQEAIAIoAgQgAigCACACIAA2AiwgAiABNgIoIAJBATYCPCACQYDxwQA2AjggAkIBNwJEIAIgCDcDMCACIAJBMGo2AkAhASEAIAUgBiACQThqEJ4JRQ0ACwsgAkHQAGokACADC5QDACAAIARqIQACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQf8BcUEBaw4HBwABAgMEBQYLIABBfU0gAEECaiIBIANNcQ0HIAAgASADQbTZxwAQ6gcACyAAQX1NIABBAmoiASADTXENByAAIAEgA0HE2ccAEOoHAAsgAEF7TSAAQQRqIgEgA01xDQcgACABIANB1NnHABDqBwALIABBe00gAEEEaiIBIANNcQ0HIAAgASADQeTZxwAQ6gcACyAAQXtNIABBBGoiASADTXENByAAIAEgA0H02ccAEOoHAAsgAEF3TSAAQQhqIgEgA01xDQcgACABIANBhNrHABDqBwALIAAgA0kNCCAAIANBlNnHABCMBwALIAAgA0kNBiAAIANBpNnHABCMBwALIAAgAmouAACyDwsgACACai8AALMPCyAAIAJqKAAAsg8LIAAgAmooAACzDwsgACACaioAAA8LIAAgAmorAAC2DwsgACACai0AALNDAAB/Q5UPCyAAIAJqLAAA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AAs2AgAgBUEgaiQAC4QDAgJ/AXsCQAJAIARBBE8EQCACIARBBGtBA24iBSACIAVJGyIFQQNNDQEgAiAFQQFqIgIgAkEDcSICQQQgAhtrIgZrIQIgASAGaiAEIAZBfWxqIQQgAyAGQQNsaiEHA0AgAyAAIAH9XAAA/YkB/akBIgj9GwBBAnRqKAAANgAAIANBA2ogACAI/RsBQQJ0aigAADYAACADQQZqIAAgCP0bAkECdGooAAA2AAAgA0EJaiAAIAj9GwNBAnRqKAAANgAAIAFBBGohASADQQxqIQMgBkEEayIGDQALIQEgByEDDAELIAQNAQ8LA0AgAkUEQEEAQQBBpJrFABCMBwALIAMgACABLQAAQQJ0aigAADYAACADQQNqIQMgAkEBayECIAFBAWohASAEQQNrIgRBA0sNAAsLAkAgAgRAIARBA0cNASADIAAgAS0AAEECdGoiAC8AADsAACADQQJqIABBAmotAAA6AAAPC0EAQQBBhJrFABCMBwALQQBBAyAEQZSaxQAQ6gcAC4EDAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB/wFxQQFrDgcHAAECAwQFBgsgA0F9TSADQQJqIgAgAk1xDQcgAyAAIAJBtNjHABDqBwALIANBfU0gA0ECaiIAIAJNcQ0HIAMgACACQcTYxwAQ6gcACyADQXtNIANBBGoiACACTXENByADIAAgAkHU2McAEOoHAAsgA0F7TSADQQRqIgAgAk1xDQcgAyAAIAJB5NjHABDqBwALIANBe00gA0EEaiIAIAJNcQ0HIAMgACACQfTYxwAQ6gcACyADQXdNIANBCGoiACACTXENByADIAAgAkGE2ccAEOoHAAsgAiADTQ0HIAEgA2osAACyDwsgAiADSw0HIAMgAkGk2McAEIwHAAsgASADai4AALIPCyABIANqLwAAsw8LIAEgA2ooAACyDwsgASADaigAALMPCyABIANqKgAADwsgASADaisAALYPCyADIAJBlNjHABCMBwALIAEgA2otAACzC58DAgF+CH8CQAJAAkACQAJAIAAoAgQiBEUNACAAKAIMIggEQCAAKAIAIgJBCGohAyACKQMAQn+FQoCBgoSIkKDAgH+DIQEDQCABUARAA0AgAkGABGshAiADKQMAIANBCGohA0KAgYKEiJCgwIB/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jOrHABCMBwALQezpxwAQ/wcLAAucAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH/AXFBAWsOBwUAAQICAgMECyADQX1NIANBAmoiACACTXENBSADIAAgAkG02scAEOoHAAsgA0F9TSADQQJqIgAgAk1xDQUgAyAAIAJBxNrHABDqBwALIANBe00gA0EEaiIAIAJNcQ0FIAMgACACQdTaxwAQ6gcACyADQXdNIANBCGoiACACTXENBSADIAAgAkHk2scAEOoHAAsgAiADTQ0FIAEgA2osAAAPCyACIANLDQUgAyACQaTaxwAQjAcACyABIANqLgAADwsgASADai8AAA8LIAEgA2ooAAAPCyABIANqKwAA/AMPCyADIAJBlNrHABCMBwALIAEgA2otAAALzQIBBH8jAEEgayIEJAAgASgCDCEFAkAgAAJ/AkACQAJAIAEoAhQiAiABKAIQIgNJBEADQAJAIAIgBWotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgASACQQFqIgI2AhQgAiADRw0ACyADIQILIARBEGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAhQhASAEKAIQIQNBFBBxIgJFDQQgAkEDNgIADAELIARBCGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAgwhASAEKAIIIQNBFBBxIgJFDQMgAkEGNgIACyACIAM2AgwgAiABNgIQQQEMAQsgASACQQFqNgIUIARBGGogARCVAyAEKAIcIQIgBCgCGAs2AgAgACACNgIEIARBIGokAA8LAAu2AgEBfyMAQUBqIgMkACADIAI2AhAgAyABNgIMIAACfwJAAkACQAJAAkACQAJAIAJBA2sOBwAFAQIFBQMFCyABQZDQxwBBAxDbB0UEQCAAQQA6AAFBAAwHCyABQaD3xwBBAxDbBw0DIABBAToAAUEADAYLIAFBo/fHAEEFENsHDQMgAEECOgABQQAMBQsgAUGo98cAQQYQ2wcNAiAAQQM6AAFBAAwECyABQa73xwBBCRDbBw0BIABBBDoAAUEADAMLIAFBt/fHAEEDENsHRQ0BCyADQQE2AiQgA0HQ98cANgIgIANCATcCLCADIANBDGqtQoCAgIAghDcDOCADIANBOGo2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AEGUgICAeEYEQAJAIAACfyADKAIMIgQEQCACIAMoAggQqAMgAigCACIBQYCAgIB4Rw0CIAIoAgQMAQtBACACQQ9qQYTiwAAQ2wYLNgIEIABBgICAgHg2AgAMBAsgAigCBCEDIARBAUYNAiACQQE2AgAgBEEBa0H/////AHFBAWogAkHolcEAENsGIQQgAEGAgICAeDYCACAAIAQ2AgQgAUUNAyADIAFBARCiBwwDCyADIAJBD2pBhOLAABCVCCEBIABBgICAgHg2AgAgACABNgIEDAILQcvawABBLEH42sAAEKsHAAsgACACKAIINgIIIAAgAzYCBCAAIAE2AgALIAJBEGokAAupAgEFfyMAQSBrIgIkAEEBIQMCQCAAKAIAIgQoAgBBAUYEQCABKAIAIgBBw5jIAEEEIAEoAgQiBigCDCIFEQAADQEgBEEIaiEEAkAgAS0ACkGAAXFFBEAgAEG7s8UAQQEgBREAAA0DIAQgARDEBQ0DIAEoAgAhACABKAIEKAIMIQUMAQsgAEHbgcIAQQIgBREAAA0CIAJBAToADyACIAY2AgQgAiAANgIAIAJB4IHCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECAEIAJBEGoQxAUNAiACKAIQQdmBwgBBAiACKAIUKAIMEQAADQILIABB3o7IAEEBIAURAAAhAwwBCyABKAIAQb+YyABBBCABKAIEKAIMEQAAIQMLIAJBIGokACADC5ECAQN/IwBBQGoiASQAAkAgABA9IgINACAALQClU0UEQCABQQA2AjggAUEBNgIsIAFB5KPBADYCKCABQgQ3AjAgAUEoahCSByECDAELIAAoAmRBgICAgHhHBEBBACECIAAtAJgBIgNBCUYNASADQQVGBEAgACgCkAFFDQILIAFBAjYCLCABQZykwQA2AiggAUICNwI0IAEgAEGQAWqtQoCAgIAQhDcDICABIABBmAFqrUKAgICAsASENwMYIAEgAUEYajYCMCABQQxqIgAgAUEoahCxBiAAEI4HIQIMAQsgAUEANgI4IAFBATYCLCABQcCkwQA2AiggAUIENwIwIAFBKGoQkgchAgsgAUFAayQAIAILkgIBA38jAEFAaiIBJAACQCAAED4iAg0AIAAtAMVTRQRAIAFBADYCOCABQQE2AiwgAUHko8EANgIoIAFCBDcC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BEAgACgCtAIgA2ogASAC/AoAAAsgACACIANqNgK4AiAAELgBC1gBAX8gACgC2AIgACgC4AIiA2sgAkkEQCAAQdgCaiADIAJBAUEBEKQFIAAoAuACIQMLIAIEQCAAKALcAiADaiABIAL8CgAACyAAIAIgA2o2AuACIAAQsQELWAEBfyAAKAL4AiAAKAKAAyIDayACSQRAIABB+AJqIAMgAkEBQQEQpAUgACgCgAMhAwsgAgRAIAAoAvwCIANqIAEgAvwKAAALIAAgAiADajYCgAMgABCfAQtXAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEASAAEEELVwEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAEgABBAC1IBAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaCAAED4LUQEBfyAAKAJAIAAoAkgiA2sgAkkEQCAAQUBrIAMgAkEBQQEQpAUgACgCSCEDCyACBEAgACgCRCADaiABIAL8CgAACyAAIAIgA2o2AkggABA9C1ABA38CQAJAIAAEQCAAQQhrIgEgASgCACICQQFqIgM2AgAgA0UNASAAKAIAQf////8HTw0CIAAoAhggASACNgIAQQBHDwsQjgoLAAsQkAoAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcDAxAAgAEEBakHQwMQAIABBAmpB4MDEACACQQxqQfDAxAAQ7gUgAkEQaiQAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcioxwAgAEEBakHYqMcAIABBAmpB6KjHACACQQxqQfioxwAQ7gUgAkEQaiQAC08BAX8gACgCQCAAKAJIIgNrIAJJBEAgAEFAayADIAJBAUEBEKQFIAAoAkghAwsgAgRAIAAoAkQgA2ogASAC/AoAAAsgACACIANqNgJIQQALVQEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAFBAAtVAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEAUEAC1ABAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaEEAC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBqJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFB4J7BADYCACABIAIpAgg3AgQgASAANgIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBxJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC00AIwBBEGsiACQAIAEgAmwiAQR/IAFBwf///wdPBEBB2ObIAEErIABBD2pBtIPJAEHUg8kAEOAGAAtBwAAgARDBBAVBAAsgAEEQaiQAC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFBtLTHADYCACABIAIpAgg3AgQgASAAOgAcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFB7LTHADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1cBAn8jAEEgayIBJAACQCAAEJ8BIgINAEEAIQIgAC0AnAMNACABQQA2AhggAUEBNgIMIAFBxKPBADYCCCABQgQ3AhAgAUEIahCSByECCyABQSBqJAAgAgtXAQJ/IwBBIGsiASQAAkAgABCxASICDQBBACECIAAtAPwCDQAgAUEANgIYIAFBATYCDCABQcSjwQA2AgggAUIENwIQIAFBCGoQ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QeAAaiQADAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAmKAIAICYoAgQgJigCCCAmQRBqJAALTQEBfwJ/AkAgAigCBEUNACACKAIIIgNFDQAgAigCACADQQEgARC7AgwBCyABEHELIQIgACABNgIIIAAgAkEBIAIbNgIEIAAgAkU2AgALSwIBfwJ+IwBBEGsiASQAIAEgADUCiAEgADUChAF+QgRCAyAALQCTARsQ3QYgASkDCCECIAEpAwAhAyABQRBqJABCfyADIAJCAFIbC08AAkACQCACKAIQQQFGBEAgASgChAEgAigCFEsNAQsgAigCGEEBRw0BIAEoAogBIAIoAhxNDQELIABCAjcDCCAAQQM2AgAPCyAAQQY2AgALUAEBfyMAQRBrIgIkACACQQhqIAEgASgCACgCBBEBACACIAIoAgggAigCDCgCGBEBACACKAIEIQEgACACKAIANgIAIAAgATYCBCACQRBqJAALSAEBfyAAKAIAIAAoAggiA2sgAkkEQCAAIAMgAhD3BSAAKAIIIQMLIAIEQCAAKAIEIANqIAEgAvwKAAALIAAgAiADajYCCEEAC0gBAX8gACgCACAAKAIIIgNrIAJJBEAgACADIAIQ+AUgACgCCCEDCyACBEAgACgCBCADaiABIAL8CgAACyAAIAIgA2o2AghBAAtIAQF/IAAoAgAgACgCCCIDayACSQRAIAAgAyACEO8FIAAoAgghAwsgAgRAIAAoAgQgA2ogASAC/AoAAAsgACACIANqNgIIQQALRQEBfwJAIAFBAE4EfyABRQRAQQEhAkEAIQEMAgsgARBxIgINAUEBBSACCyABQcDowQAQkwkACyAAIAI2AgQgACABNgIAC08BAn8gACgCBCECIAAoAgAhAwJAIAAoAggiAC0AAEUNACADQbyLwwBBBCACKAIMEQAARQ0AQQEPCyAAIAFBCkY6AAAgAyABIAIoAhARAgALSgECfyAAIAAoAgQiAyACazYCBCAAIAAoAgAgAiADS3IiBDYCAEEBIQMgBAR/IAMFIAAoAggiACgCACABIAIgACgCBCgCDBEAAAsLSAEBfwJAIAFB4QBrIgFB/wFxQRlLBEBBACEBDAELIAFBAnRB/AdxIgIoAtSQSSEBIAIoAuyPSSECCyAAIAI2AgQgACABNgIAC0kCAn8BfSABKAIIIgNBgICAAXEhAiAAKgIAIQQgA0GAgICAAXFFBEAgASAEIAJBAEdBABD3Ag8LIAEgBCACQQBHIAEvAQ4QvQILRwECfyAALQANIgJBgAFNBEAgASgCACAAIAAtAAwiA2ogAiADayABKAIEKAIMEQAADwsgASgCACAAKAIAIAEoAgQoAhARAgALyQIAAkAgACACTQRAIAAgAU0gASACS3INASMAQTBrIgIkACACIAE2AgQgAiAANgIAIAJBAjYCDCACQfydwgA2AgggAkICNwIUIAIgAkEEaq1CgICAgBCENwMoIAIgAq1CgICAgBCENwMgIAIgAkEgajYCECACQQhqIAMQjQgACyMAQTBrIgEkACABIAI2AgQgASAANgIAIAFBAjYCDCABQaidwgA2AgggAUICNwIUIAEgAUEEaq1CgICAgBCENwMoIAEgAa1CgICAgBCENwMgIAEgAUEgajYCECABQQhqIAMQjQgACyMAQTBrIgAkACAAIAI2AgQgACABNgIAIABBAjYCDCAAQcidwgA2AgggAEICNwIUIAAgAEEEaq1CgICAgBCENwMoIAAgAK1CgICAgBCENwMgIAAgAEEgajYCECAAQQhqIAMQjQgAC0IBAX8jAEEgayIDJAAgA0EANgIQIANBATYCBCADQgQ3AgggAyABNgIcIAMgADYCGCADIANBGGo2AgAgAyACEI0IAAuJDQMHfwV+AXwgASgCCCIDQYCAgAFxIQIgACsDACEOIANBgICAgAFxRQRAIAJBAEchA0EAIQIjAEGAAWsiACQAIA69IQkCf0EDIA6ZRAAAAAAAAPB/YQ0AGkECIAlCgICAgICAgPj/AIMiCkKAgICAgICA+P8AUQ0AGiAJQv////////8HgyINQoCAgICAgIAIhCAJQgGGQv7///////8PgyAJQjSIp0H/D3EiAhsiC0IBgyEMIApQBEBBBCANUA0BGiACQbMIayECQgEhCiAMUAwBC0KAgICAgICAICALQgGGIAtCgICAgICAgAhRIgUbIQtCAkIBIAUbIQpBy3dBzHcgBRsgAmohAiAMUAshBSAAIAI7AXggACAKNwNwIABCATcDaCAAIAs3A2AgACAFOgB6An8CQAJAAkACQCAFQf8BcSICQQFNBEBB6rPFAEEBIAlCAFMiAhshBUHqs8UAQciBwgAg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AnQiACgCwKFJIAAoAqShSSABKAIEKAIMEQAAC+0DAQp/IwBBEGsiAyQAIwBBoANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIEIAQoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAUEIaiAAQQRqQQAQdgJ/IAEoAggiCUECRgRAIAEoAgwhAiABQQA2ApgDIAFCgICAgBA3ApADIAFBnJPBADYC0AEgAUKggICADjcC1AEgASABQZADajYCzAEgAiABQcwBahCvBA0FIAEoApADIQUgASgClAMiCCABKAKYAxDsCCEHIAUEQCAIQQRrKAIAIgZBeHEiCkEEQQggBkEDcSIGGyAFakkNByAGQQAgCiAFQSdqSxsNCCAIEKICCyACIAIoAgAoAgARAwBBAAwBCyABQcwBaiICIAFBCGpBxAH8CgAAIAIQ0QELIQIgACAAKAIAQQFrNgIAIAQgBCgCAEEBayIANgIAIABFBEAgBBDkBgsgAyAHNgIEIAMgAjYCACADIAlBAkY2AgggAUGgA2okAAwGCxCOCgsACxCQCgALQaCexgBBNyABQZ8DakG0k8EAQdiexgAQ4AYAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgAygCACADKAIEIAMoAgggA0EQaiQAC5oFAQp/IwBBEGsiAyQAIwBBsANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIFIAUoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAC0AXCICQQJHBEAgAUEgaiAAQdgAaigCADYCACABQRhqIABB0ABqKQIANwMAIAFBBmogAEHfAGotAAA6AAAgASAA/QACQP0LAwggASAALwBdOwEECyABQfgBaiABQSBqKAIANgIAIAFB8AFqIAFBGGopAwA3AwAgAUH/AWogAUEGai0AADoAACABIAH9AAMI/QsD4AEgASACOgD8ASABIAEvAQQ7AP0BIAFBJGogAEEEakEAIAFB4AFqIgQQcgJ/IAEoAiQiCUECRgRAIAEoAighAiABQQA2AqgDIAFCgICAgBA3AqADIAFBnJPBADYC5AEgAUKggICADjcC6AEgASABQaADajYC4AEgAiAEEK8EDQUgASgCoAMhBCAB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CxCQCgALLAAgASgCACAAKAIALQAAaEECdCIAKAL0h0kgACgC4IdJIAEoAgQoAgwRAAALLAAgASgCACAAKAIALQAAaEECdCIAKAKEjkkgACgC8I1JIAEoAgQoAgwRAAALLgAgAEEcakEAIAEpAgBC2v2W/+no6PrBAIUgASkCCELW+4aRyMDiv/4AhYRQGwssACAAQRxqQQAgASkCAELtwsSbx9P/rT+FIAEpAghC/J7N1v6Dwrh+hYRQGwsuACAAQRxqQQAgASkCAELtuq22zYXU9eMAhSABKQIIQviCmb2V7sbFuX+FhFAbCywAIABBHGpBACABKQIAQvep0+7yobOVe4UgASkCCEKWuaPa9sSH1CeFhFAbCysAIAEoAgAgACgCAC0AAEECdCIAKALohkkgACgCqIZJIAEoAgQoAgwRAAALKQAgASgCACAALQAAaEECdCIAKAKciEkgACgCiIhJIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAqiJSSAAKALoiEkgASgCBCgCDBEAAAslACAARQRAQa35xABBMhCPCgALIAAgAiADIAQgBSABKAIQEQ8ACysAIAEoAgAgACgCAC0AAEECdCIAKALUjUkgACgCuI1JIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAtiOSSAAKAKYjkkgASgCBCgCDBEAAAsrACABKAIAIAAoAgAtAABBAnQiACgC0JFJIAAoAryRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQp6ptofpq8f75ACFIAEpAghChJXY5rmb/qdphYRQGwsrACABKAIAIAAoAgAtAABBAnQiACgC+JFJIAAoAuSRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQvXXvMnIzNazOoUgASkCCEL+28ub8+W5xvUAhYRQGwsuACAAQSBqQQAgASkCAELhypSvjYKC2fIAhSABKQIIQqbKhrK+ypOwu3+FhFAbCy0AIABBHGpBACABKQIAQpLXooDhkqzi9QCFIAEpAghClJ2A4Jq0sLALhYRQGwslACAAQYiWwQA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAK87EEgACgClOxBIAEoAgQoAgwRAAALKAAgASgCACAALQAAQQJ0IgAoAtDtQSAAKAKc7UEgASgCBCgCDBEAAAshACAAQcDOxAA2AgQgACABQQRqQQAgAS0AAEEkRhs2AgALKAAgASgCACAALQAAQQJ0IgAoAsyISSAAKAKwiEkgASgCBCgCDBEAAAsoACABKAIAIAAtAABBAnQiACgCsIpJIAAoAuiJSSABKAIEKAIMEQAACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQsACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWUACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWcACygAIAEoAgAgAC0AAEECdCIAKALwmEkgACgCqJhJIAEoAgQoAgwRAAALIgAgASgCKEECRwRAIAAgASkC3AI3AwAPC0GsmMcAEN0JAAslACAAQailxwA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAKEo0kgACgC3KFJIAEoAgQoAgwRAAALJwAgACgCAC0AAEUEQCABQfKzxQBBBRCXAw8LIAFB97PFAEEEEJcDCyQAIAAtAABFBEAgAUHys8UAQQUQlwMPCyABQfezxQBBBBCXAwshACAARQRAQa35xABBMhCPCgALIAAgAiADIAEoAhARBQALIQAgAEUEQEGt+cQAQTIQjwoACyAAIAIgAyABKAIQEQAACyEAIAEoAgAgAC0AAEECdCgCiOxBQQEgASgCBCgCDBEAAAsiACABIAAtAABBAnQiACgCiIZJIAAoAuiFSSACKAIMEQAACx4AIABBwM7EADYCBCAAQQAgAUEEaiABLQAAGzYCAAscACABIAAoAgAiAEEEaigCACAAQQhqKAIAEJcDCx8AIABFBEBBrfnEAEEyEI8KAAsgACACIAEoAhARAgALthQBEn8Q2gQiCyABJgECfyAAIQ0Q2gQiEiACJgEgCyETIwBBQGoiByQAIAsQuAohAEHUtMkAKAIARQRAAkBBkLXJACgCACELQYy1yQAoAgAhBEGMtckAQoCAgIDAADcCAEGEtckAKAIAIQhBhLXJAEIE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ACgCACEHIA1BACADEOEIIgAQuAohCSAEIAM2AhggBCAJNgIMIAMgCUcNASAAIAcgAxDgCSAAQYQISQ0CIAAQmwcMAgtBACADIABB3OvAABDqBwALDAELIAhBhAhPBEAgCBCbBwtBrLTJAEGstMkAKAIAQQFqNgIAIA1BhAhPBEAgDRCbBwsgDkGECE8EQCAOEJsHCyAEQUBrJAAgAwwBCyAEQQA2AihBACAEQQxqIARBGGogBEEoakHg+cQAEPUHAAsLHAAgAEEEahDqAiAAKAIkIgAgACgCACgCABEDAAscACAAKAIAIgAoAgAgASAAQQRqKAIAKAIQEQIACxwAIAAoAgAiACgCACABIABBBGooAgAoAgwRAgALFAAgACAAIAEgACABXRsgASABXBsLFAAgASABIAAgACABXRsgACAAXBsLGwEBbyAAJQEgASACEAAhAxDaBCIAIAMmASAACxsBAW8gACUBIAElARAJIQIQ2gQiACACJgEgAAscAQFvIAAlASABJQEgARCbByACJQEgAhCbBxALCx8AQYi7yQAtAABFBEBBiLvJAEEBOgAACyAAQQE2AgALHQAgASAALQAAQQJ0IgAoAqSESSAAKAKQhEkQlwMLHAAgASgCACAAKAIAIAAoAgQgASgCBCgCDBEAAAsZACABIAAoAgAiACgCACAAQQRqKAIAEJcDCxkBAW8gACUBIAEQDCECENoEIgAgAiYBIAALFwAgACgCACABIAAoAgRBDGooAgARAgALFQAgACgCACIAQYQITwRAIAAQmwcLCxcBAW8gACABEA8hAhDaBCIAIAImASAACxcBAW8gACABECwhAhDaBCIAIAImASAACxYAIAEgACgCACIAKAIAIAAoAgQQlwMLGQAgASgCAEGQl8cAQRMgASgCBCgCDBEAAAsZACABKAIAQdmXxwBBFyABKAIEKAIMEQAACxkAIAEoAgBB6ZLGAEEIIAEoAgQoAgwRAAALGQAgASgCAEGjl8cAQRAgASgCBCgCDBEAAAsZACABKAIAQaTlwABBFCABKAIEKAIMEQAACxkAIAEoAgBB5ZLGAEEEIAEoAgQoAgwRAAALGQAgASgCAEGilscAQQwgASgCBCgCDBEAAAsZACABKAIAQYWQxgBBAyABKAIEKAIMEQAACxkAIAEoAgBB8JfHAEEUIAEoAgQoAgwR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AgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOQGCwwDCxCOCgsACxCQCgALC4gBAQN/ENoEIgMgASYBAkACQAJAIAAEQCAAQQhrIgIgAigCAEEBaiIENgIAIARFDQEgACgCAA0CIABBfzYCACAAQQhqKAIAIABBDGooAgAgAxCtAyAAIAAoAgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOMGCwwDCxCOCgsACxCQCgALCxEAIAEgACgCACAAKAIEEJcDCxMAIABBKDYCBCAAQZifxwA2AgALEQAgASAAKAIEIAAoAggQlwMLEwAgAEHomsEANgIEIAAgATYCAAsTACAAQaSbwQA2AgQgACABNgIACxMAIABB4JvBADYCBCAAIAE2AgALEwAgAEGMnMEANgIEIAAgATYCAAsTACAAQcicwQA2AgQgACABNgIACxMAIABBhJ3BADYCBCAAIAE2AgALEwAgAEHAncEANgIEIAAgATYCAAsTACAAQfydwQA2AgQgACABNgIACxEAIAAoAgQgACgCCCABELUCCxEAIAEoAgAgASgCBCAAEMEDCxwAIABBmLvP7AM2AgggAELQ5+byk+vFmz83AgALEQAgACgCACAAKAIEIAEQtQILEwAgAEHMs8cANgIEIAAgATYCAAsTACAAQdyxxwA2AgQgACABNgIACxMAIABBiLTHADYCBCAAIAE2AgALEwAgAEHUsscANgIEIAAgATYCAAsTACAAQZiyxwA2AgQgACABNgIACxMAIABBkLPHADYCBCAAIAE2AgALEwAgAEG8jMgANgIEIAAgATYCAAsWAEG4u8kAIAA2AgBBtLvJAEEBOgAACxEBAX8Q2gQiASAAJQEmASABCw4AIAAlASABJQFBABAWCw8AQayewgBBKyAAEOsHAAtpAQF/IwBBMGsiAyQAIAMgADYCBCADIAE2AgAgA0EDNgIMIANB+JvCADYCCCADQgI3AhQgAyADQQRqrUKAgICAEIQ3AyggAyADrUKAgICAEIQ3AyAgAyADQSBqNgIQIANBCGogAhCNCAALEgAgACABLQDoBC0A+J1JOgAACwwAIAAlASABIAIQAgsMACAAIAEgAiUBEAMLDQAgACUBIAElARAIGgsMACAAIAEgAiUBEBkLEQAgAEGohsEA/QACAP0LAgALEQAgAEG4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IAEgAEGAgIB8IApBAWp1IAdxvpMiAJK8BSAJC0GAgH5xviICQwByMT+UIgUgAkOMvr81lCABIAIgAJOTQxhyMT+UkiICkiIAIAAgACAAIACUIgEgASABIAEgAUNMuzEzlEMO6t21kpRDVbOKOJKUQ2ELNruSlEOrqio+kpSTIgGUIAFDAAAAwJKVIAIgACAFk5MiASAAIAGUkpOTQwAAgD+SIgC8IAhBF3RqIglBgICABE4EQCAJvgwBCyAAIAgQsAYLlCECCyACDAMLIAVDYEKiDZRDYEKiDZQMAgsgBUNgQqINlENgQqINlAwBCyAFQ8rySXGUQ8rySXGUCwsIACAAJQEQAQsIACAAJQEQCgsIACAAJQEQFQsIACAAJQEQFwsIACAAJQEQGwsIACAALQDoBAsHABAqEIUICwQAQQALBABBAQsCAAsLtK4JiAEAQYCAwAAL8WFpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdAAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvc3B6LnJzAGxpYnJhcnkvY29yZS9zcmMvc3RyL2xvc3N5LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9wbHkucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL2xlZ2FjeS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL2l0ZXIvYWRhcHRlcnMvc3RlcF9ieS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvdHdvd2F5LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvaW5mbGF0ZS93aW5kb3cucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy95dXYucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZmx0MmRlYy9zdHJhdGVneS9ncmlzdS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc2hhcmVkL3NtYWxsc29ydC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL3F1aWNrc29ydC5ycwBzcGFyay13b3JrZXItcnMvc3JjL3NvcnQucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvYm94ZWQvY29udmVydC5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9mbXQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9mbXQucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZGl5X2Zsb2F0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy90c3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2tzcGxhdC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvYW50aXNwbGF0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9nc3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2NzcGxhdC5ycwBzcGFyay13b3JrZXItcnMvc3JjL2V4dF9zcGxhdHMucnMAc3Bhcmstd29ya2VyLXJzL3NyYy9wYWNrZWRfc3BsYXRzLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvZmRlZmxhdGUtMC4zLjcvc3JjL2RlY29tcHJlc3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzcy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2NvcmUtMS4wLjIyOC9zcmMvZGUvaW1wbHMucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL3NvZ3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlL2luZnRyZWVzLnJzAGxpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9tdXRleC9ub190aHJlYWRzLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9vbmNlL25vX3RocmVhZHMucnMAbGlicmFyeS9hbGxvYy9zcmMvc3RyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaXRlci90cmFpdHMvaXRlcmF0b3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9lcnJvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZXJyb3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2xvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9nZW5lcmljL3BhY2tlZHBhaXIucnMAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9tZW1jaHIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb29wX2ZpbHRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2luZmxhdGUvd3JpdGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaXRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2luZGV4bWFwLTIuMTMuMC9zcmMvaW5uZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9vdXRwdXRfYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci91bmZpbHRlcmluZ19idWZmZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9pbWFnZXMvYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci9yZWFkX2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy92cDhfYXJpdGhtZXRpY19kZWNvZGVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvY29kZWNzL3dlYnAvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL3JlYWQvbWFnaWNfZmluZGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvY21wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9leHRyYV9maWVsZHMvZXh0ZW5kZWRfdGltZXN0YW1wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvbWV0YWRhdGEvY2ljcC5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vc3RkaW8ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2NvbW1vbi5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL29wcy9mdW5jdGlvbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL3N0cmF0ZWd5L2RyYWdvbi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ZkZWZsYXRlLTAuMy43L3NyYy9odWZmbWFuLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvaHVmZm1hbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9iaWdudW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzc190cmFuc2Zvcm0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3RyYW5zZm9ybS5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vYnVmZmVyZWQvbGluZXdyaXRlcnNoaW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3N0cmVhbS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvdGhyZWFkL2xvY2FsLnJzAGxpYnJhcnkvc3RkL3NyYy9zeW5jL2xhenlfbG9jay5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3luYy9yZWVudHJhbnRfbG9jay5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvc3luYy9vbmNlX2xvY2sucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2RlY3MvcG5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwBsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaW8vYm9ycm93ZWRfYnVmLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTcvc3JjL2V4dGVybnJlZi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvdHJhbnNmb3JtL3BhbGV0dGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvYWxsb2NhdGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9jb3JlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvaW8vaW1hZ2VfcmVhZGVyX3R5cGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9zdGFibGUucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3ByaW50YWJsZS5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvY2h1bmtfdHJlZS5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xvZF90cmVlLnJzAHNwYXJrLWxpYi9zcmMvc3BsYXRfZW5jb2RlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtMS4wLjIyOC9zcmMvcHJpdmF0ZS9kZS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZGUucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL3N5bmMvcG9pc29uL29uY2UucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvc2xpY2UucnMAbGlicmFyeS9zdGQvc3JjL2JhY2t0cmFjZS5ycwAvcnVzdC9kZXBzL2hhc2hicm93bi0wLjE1LjUvc3JjL3Jhdy9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9oYXNoYnJvd24tMC4xNi4xL3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvcGFja2VkcGFpci9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL21vZC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy9iaW5hcnlfaGVhcC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL2lvL21vZC5ycwBsaWJyYXJ5L3N0ZC9zcmMvLi4vLi4vYmFja3RyYWNlL3NyYy9zeW1ib2xpemUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWluaXpfb3hpZGUtMC44Ljkvc3JjL2luZmxhdGUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAbGlicmFyeS9zdGQvc3JjL3RocmVhZC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvdmVjL21vZC5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL21vZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvdGlueV9sb2QucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2JoYXR0X2xvZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2NyYzMyL2JyYWlkLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3ZlYy9zcGVjX2Zyb21faXRlcl9uZXN0ZWQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9leHRlbmRlZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvcmFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfanNvbi0xLjAuMTQ1L3NyYy9yZWFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9yZWFkLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjEwL3NyYy9kbG1hbGxvYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvc3BlYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvemxpYi5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NvbnNvbGVfZXJyb3JfcGFuaWNfaG9vay0wLjEuNy9zcmMvbGliLnJzAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI2L3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZS13YXNtLWJpbmRnZW4tMC42LjUvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2pzLXN5cy0wLjMuOTQvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NtYWxsdmVjLTEuMTUuMS9zcmMvbGliLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvdGV4dF9tZXRhZGF0YS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3VuaWNvZGUvdW5pY29kZV9kYXRhLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvdnA4LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvYWRhbTcucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL2NwNDM3LnJzAHNwYXJrLWxpYi9zcmMvc3ltbWF0My5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvY3JjMzIucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL3YwLnJzAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGludmFsaWQgd2luZG93IHNpemUAcmVwZWF0ZWQgY2FsbCB3aXRoIGJhZCBzdGF0ZQBpbnZhbGlkIGJsb2NrIHR5cGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABJSSoA7AUQACQAAABEAwAADQAAAOwFEAAkAAAARQMAAA0AAADsBRAAJAAAAEYDAAANAAAA7AUQACQAAABDAwAAQQAAAOwFEAAkAAAATwMAAA0AAADsBRAAJAAAAE8DAAA+AAAA7AUQACQAAAC4AwAAIQAAAOwFEAAkAAAAuAMAAA0AAADsBRAAJAAAALYDAAAlAAAA7AUQACQAAADGAwAAIQAAAOwFEAAkAAAAxgMAAA0AAADsBRAAJAAAAMQDAAAlAAAA7AUQACQAAABZAwAADQAAAOwFEAAkAAAAWgMAAA0AAADsBRAAJAAAAFsDAAANAAAA7AUQACQAAABYAwAAOwAAAOwFEAAkAAAAhAMAACUAAADsBRAAJAAAAIQDAAA2AAAA7AUQACQAAACGAwAAHQAAAOwFEAAkAAAAgAMAACUAAADsBRAAJAAAAJYDAAAlAAAA7AUQACQAAACWAwAANgAAAOwFEAAkAAAAlgMAAEsAAADsBRAAJAAAAJYDAABgAAAA7AUQACQAAACYAwAAHgAAAOwFEAAkAAAAkgMAACUAAADsBRAAJAAAAKgDAAAlAAAA7AUQACQAAACoAwAANgAAAOwFEAAkAAAAqAMAAEsAAADsBRAAJAAAAKgDAABgAAAA7AUQACQAAACqAwAAHgAAAOwFEAAkAAAApAMAACUAAADsBRAAJAAAAHEDAAANAAAA7AUQACQAAAByAwAADQAAAOwFEAAkAAAAcwMAAA0AAADsBRAAJAAAAHQDAAANAAAA7AUQACQAAABwAwAAPQAAAOwFEAAkAAAAZQMAAA0AAADsBRAAJAAAAGYDAAANAAAA7AUQACQAAABnAwAADQAAAOwFEAAkAAAAZAMAAD8AAACmAxAAUgAAAFIAAAATAAAADQUQAEAAAAB2AAAAIAAAAA0FEABAAAAAdQAAACIAAAANBRAAQAAAAHQAAAAeAAAADQUQAEAAAABzAAAAJgAAAA0FEABAAAAAcgAAACQAAAANBRAAQAAAAFQAAAAXAAAADQUQAEAAAABVAAAAFwAAAA0FEABAAAAAVgAAABcAAAANBRAAQAAAAFgAAAAWAAAADQUQAEAAAABZAAAAFgAAAA0FEABAAAAAWgAAABYAAAANBRAAQAAAAFwAAAAqAAAADQUQAEAAAABcAAAAFAAAAA0FEABAAAAAXQAAACoAAAANBRAAQAAAAF0AAAAUAAAADQUQAEAAAABeAAAAKgAAAA0FEABAAAAAXgAAABQAAAANBRAAQAAAAGAAAAApAAAADQUQAEAAAABgAAAAGAAAAA0FEABAAAAAYgAAACYAAAANBRAAQAAAAGMAAAAmAAAADQUQAEAAAABkAAAAJgAAAA0FEABAAAAAZQAAACYAAAANBRAAQAAAAGgAAAAVAAAADQUQAEAAAABpAAAAFQAAAA0FEABAAAAAagAAABUAAAANBRAAQAAAAGsAAAAVAAAASW52YWxpZCAuc3BsYXQgZmlsZSBzaXpl7CwQABgAAABhdHRlbXB0ZWQgdG8gdGFrZSBvd25lcnNoaXAgb2YgUnVzdCB2YWx1ZSB3aGlsZSBpdCB3YXMgYm9ycm93ZWRNYXBBY2Nlc3M6Om5leHRfdmFsdWUgY2FsbGVkIGJlZm9yZSBuZXh0X2tleQD6GRAAYwAAAGYKAAAfAAAA7AUQACQAAADuAQAAOAAAAOwFEAAkAAAA7gEAAFkAAADsBRAAJAAAAPcBAABHAAAA7AUQACQAAAD3AQAAOQAAAOwFEAAkAAAAZAIAAC4AAADsBRAAJAAAAGQCAAAfAAAA7AUQACQAAABlAgAAHwAAAOwFEAAkAAAAWQIAACoAAADsBRAAJAAAAIQCAAA2AAAA7AUQACQAAACEAgAAIwAAAOwFEAAkAAAAeAIAACoAAADsBRAAJAAAAKQCAAA2AAAA7AUQACQAAACkAgAAIwAAAOwFEAAkAAAAmAIAACoAAADsBRAAJAAAANQCAAAlAAAA7AUQACQAAADYAgAAPAAAAOwFEAAkAAAA2AIAAB0AAADsBRAAJAAAANICAAAyAAAA7AUQACQAAADDAgAAIQAAAOwFEAAkAAAAxwIAADgAAADsBRAAJAAAAMcCAAAZAAAA7AUQACQAAADBAgAALgAAAOwFEAAkAAAAtAIAAB0AAADsBRAAJAAAALcCAAAsAAAA7AUQACQAAAC3AgAAEQAAAOwFEAAkAAAAuAIAADAAAADsBRAAJAAAALICAAAqAAAA7AUQACQAAADjAgAAJgAAAOwFEAAkAAAA5wIAACAAAADsBRAAJAAAAOcCAAATAAAA7AUQACQAAADtAgAAJgAAAOwFEAAkAAAA8QIAACAAAADsBRAAJAAAAPECAAATAAAA7AUQACQAAAB/AQAANgAAAOwFEAAkAAAAgAEAADYAAADsBRAAJAAAAI0BAAAzAAAA7AUQACQAAACOAQAAMwAAAOwFEAAkAAAAigEAAEQAAADsBRAAJAAAAIUBAAApAAAATWlzc2luZyBjaGlsZF9jb3VudHMgb3IgY2hpbGRfc3RhcnRz+C8QACQAAADsBRAAJAAAAAACAAA1AAAA7AUQACQAAAAAAgAAVgAAAOwFEAAkAAAAMAIAACoAAADsBRAAJAAAABsCAAA2AAAA7AUQACQAAAAbAgAAVwAAAOwFEAAkAAAAxgEAABUAAADsBRAAJAAAAMQBAAAlAAAA7AUQACQAAADIAQAAKAAAAOwFEAAkAAAAyQEAACgAAADsBRAAJAAAAMcBAAAoAAAA7AUQACQAAADFAQAAKAAAAOwFEAAkAAAAEgIAADcAAADsBRAAJAAAABICAABYAEH84cAACwUBAAAAfQBBjOLAAAsFAQAAAH4AQZziwAALBQEAAAB/AEGs4sAACwUBAAAAgABBvOLAAAsFAQAAAIEAQcziwAALBQEAAACCAEHc4sAACwUBAAAAgwBB7OLAAAsFAQAAAIQAQfziwAALBQEAAACFAEGM48AACwUBAAAAhgBBnOPAAAsFAQAAAIcAQazjwAALBQEAAACIAEG848AACwUBAAAAiQBBzOPAAAsFAQAAAIoAQdzjwAALBQEAAACLAEHs48AACwUBAAAAjABB/OPAAAsFAQAAAI0AQYzkwAALBQEAAACNAEGc5MAACwUBAAAAjQBBrOTAAAsFAQAAAI0AQbzkwAALBQEAAACNAEHM5MAACwUBAAAAjQBB3OTAAAsFAQAAAI0AQezkwAALBQEAAACNAEH85MAACwUBAAAAjQBBjOXAAAsFAQAAAI0AQZzlwAAL6QEBAAAAjQAAAGFuIGFycmF5IG9mIGxlbmd0aCAxYW4gYXJyYXkgb2YgbGVuZ3RoIDJhbiBhcnJheSBvZiBsZW5ndGggM2FuIGFycmF5IG9mIGxlbmd0aCA0bWlzc2luZyBmaWVsZCBgAPQyEAAPAAAA6JIRAAEAAABpbnZhbGlkIGxlbmd0aCAAFDMQAA8AAAAakxEACwAAAGR1cGxpY2F0ZSBmaWVsZCBgAAAANDMQABEAAADokhEAAQAAAHVua25vd24gdmFyaWFudCBgYCwgZXhwZWN0ZWQgAAAAWDMQABEAAABpMxAADABBkOfAAAsFAQAAAI4AQaDnwAALBQEAAACPAEGw58AACyUBAAAAkAAAAF4aEABgAAAAoAQAACIAAABeGhAAYAAAAJYEAAAmAEHg58AACwUBAAAAkQBB8OfAAAu9BgEAAACSAAAAc2gxc2gyc2gzYXNoM2Jsb2RUcmVlAAAAygUQACEAAAC4AAAAMAAAAMoFEAAhAAAAtgAAADAAAABtYXhTcGxhdHNudW1TcGxhdHNtYXhTaERlZ3JlZWV4dDBleHQxAAAAkwAAAAQAAAAEAAAAIAAAAMoFEAAhAAAATAAAAFMAAADKBRAAIQAAAE8AAABTAAAAygUQACEAAABSAAAAVQAAAMoFEAAhAAAAVQAAAFUAAABzaDFDb2Rlc8oFEAAhAAAAWAAAAF4AAABzaDJDb2Rlc8oFEAAhAAAAWwAAAF4AAABzaDNDb2Rlc8oFEAAhAAAAYQAAAFkAAADKBRAAIQAAAGQAAABcAAAAygUQACEAAABKAAAAZwAAAMoFEAAhAAAASQAAAGcAAADKBRAAIQAAAEgAAABtAAAAygUQACEAAABHAAAAaAAAAMoFEAAhAAAARgAAAGgAAAArIxAAbQAAAJUAAAAOAAAAcmdiTWlucmdiTWF4bG5TY2FsZU1pbmxuU2NhbGVNYXhzaDFNYXhzaDJNYXhzaDNNYXhsb2RPcGFjaXR5YDUQAAYAAABmNRAABgAAAGw1EAAKAAAAdjUQAAoAAACANRAABgAAAIY1EAAGAAAAjDUQAAYAAACSNRAACgAAABAjEAAaAAAAOQAAAC0AAAAQIxAAGgAAAC4AAAAzAAAA7AUQACQAAACKAAAAJwAAAHNoMwDsBRAAJAAAAJsAAAAuAAAAcGFja2VkAADsBRAAJAAAAEUAAABTAAAA7AUQACQAAABIAAAAUwAAAOwFEAAkAAAASwAAAFMAAADsBRAAJAAAAE4AAABeAAAA7AUQACQAAABRAAAAXgAAAOwFEAAkAAAAVAAAAF4AAADsBRAAJAAAAFcAAABcAAAAc3BsYXRFbmNvZGluZwAAAOwFEAAkAAAAWQAAAHwAAADsBRAAJAAAAEMAAABLAAAA7AUQACQAAABCAAAAbQAAAOwFEAAkAAAAQQAAAGgAAADsBRAAJAAAAEAAAABoAAAAECMQABoAAABWAAAALQAAABAjEAAaAAAASwAAADMAAACUAAAA9AAAAAQAAACVAAAAlgAAAJcAQbjuwAALZQEAAACYAAAAECMQABoAAACXAAAAKwAAAGZpbGVUeXBlECMQABoAAACZAAAAaAAAAJkAAAAIAAAABAAAAJoAAAAQIxAAGgAAAJYAAABYAAAAmwAAAJAAAAAEAAAAnAAAAJ0AAACeAEGo78AACy0BAAAAnwAAABAjEAAaAAAAkAEAAFsAAACgAAAAcAAAAAQAAAChAAAAogAAAKMAQeDvwAALLQEAAACkAAAAECMQABoAAAARAQAAWwAAAKUAAADsAAAABAAAAKYAAACnAAAAqABBmPDAAAvhFQEAAACpAAAAECMQABoAAAB5AAAAKwAAABAjEAAaAAAAewAAAGgAAAAQIxAAGgAAAHgAAABbAAAARXhwZWN0ZWQgIGFjdGl2ZSBzcGxhdHMgYnV0IGdvdCBQOBAACQAAAFk4EAAXAAAAigMQABsAAAAzAAAAFQAAAIoDEAAbAAAApwAAABMAAACKAxAAGwAAAJ8AAAATAAAAigMQABsAAACiAAAAHQAAAIoDEAAbAAAAogAAABEAAACKAxAAGwAAAJAAAAAgAAAAigMQABsAAACQAAAAFAAAAIoDEAAbAAAAfAAAABgAAACKAxAAGwAAAH0AAAAYAAAAigMQABsAAAB0AAAAGQAAALwZEAAfAAAA4wAAABYAAABsb2RJZAAAALwZEAAfAAAA7AAAAFQAAAC8GRAAHwAAAAkBAAAWAAAAvBkQAB8AAAATAQAAVAAAALwZEAAfAAAAJAEAAD0AAAC8GRAAHwAAADcBAAArAAAAvBkQAB8AAAA4AQAAKwAAALwZEAAfAAAAMgEAACsAAAC8GRAAHwAAADMBAAArAAAAvBkQAB8AAAC7AAAAMQAAALwZEAAfAAAA2QAAABMAAAC8GRAAHwAAAMoAAAAnAAAAvBkQAB8AAAC8AAAAJgAAALwZEAAfAAAAzwAAADYAAAC8GRAAHwAAAHcBAAAvAAAAvBkQAB8AAAB6AQAAHwAAAGluZGljZXMAvBkQAB8AAACWAQAAVgAAALwZEAAfAAAAgwEAACQAAAC8GRAAHwAAAIkBAAAjAAAAvBkQAB8AAACGAQAAIgAAALwZEAAfAAAAeAEAACYAAABJbnZhbGlkIGNvbmVfZm92cyBsZW5ndGhJbnZhbGlkIGNvbmVfZm92MHMgbGVuZ3RoSW52YWxpZCBjb25lX2ZvdmVhdGVzIGxlbmd0aEludmFsaWQgYmVoaW5kX2ZvdmVhdGVzIGxlbmd0aEludmFsaWQgbG9kX3NjYWxlcyBsZW5ndGhJbnZhbGlkIHZpZXdfdG9fb2JqZWN0cyBsZW5ndGgAALwZEAAfAAAA5wEAACYAAAC8GRAAHwAAAOkBAABDAAAAvBkQAB8AAADtAQAAGAAAALwZEAAfAAAA+wEAABkAAAC8GRAAHwAAAAACAAAZAAAAvBkQAB8AAAAHAgAAKwAAALwZEAAfAAAACwIAABgAAAC8GRAAHwAAABECAAAvAAAAvBkQAB8AAAATAgAAPgAAALwZEAAfAAAAFQIAABwAAAC8GRAAHwAAAAQCAAAYAAAAvBkQAB8AAAArAgAAJAAAAHBpeGVsTGltaXRpbnN0YW5jZUluZGljZXNjaHVua3NvdXRwdXRTaXplZnJvbnRpZXJTaXplbGVhZkNvdW50AAC8GRAAHwAAAFQCAABcAAAAvBkQAB8AAABTAgAAYgAAALwZEAAfAAAAUgIAAF4AAAC8GRAAHwAAAFECAABZAAAAvBkQAB8AAABQAgAAaAAAALwZEAAfAAAATwIAAGIAAAC8GRAAHwAAAD4CAAAjAAAAvBkQAB8AAABBAgAAWgAAALwZEAAfAAAAQAIAAHIAAAC8GRAAHwAAAD8CAABYAAAAvBkQAB8AAAAxAgAAHQAAALwZEAAfAAAAMQIAADMAAAC8GRAAHwAAAC0CAAAjAAAAvBkQAB8AAAAtAgAAHgAAALwZEAAfAAAAKAIAABwAAAC8GRAAHwAAACICAAAUAAAAvBkQAB8AAADSAQAAHQAAALwZEAAfAAAA1QEAADoAAAC8GRAAHwAAANoBAAAZAAAAvBkQAB8AAAC7AQAAMwAAALwZEAAfAAAAwAEAAB0AAAC8GRAAHwAAAMEBAAAiAAAAvBkQAB8AAADCAQAAIAAAALwZEAAfAAAAwwEAACAAAAC8GRAAHwAAAMQBAAAfAAAAvBkQAB8AAADGAQAAHQAAALwZEAAfAAAAvwEAADwAAAC8GRAAHwAAAL4BAAA9AAAAvBkQAB8AAAD1AAAAOgAAALwZEAAfAAAA9wAAAB0AAAC8GRAAHwAAAPgAAAAdAAAAvBkQAB8AAAD/AAAAWAAAAHZlcnNpb25jb3VudG1heFNoY2h1bmtTaXplYWxsQ2h1bmtCeXRlc3NoQ29kZUNvdW50c3RydWN0IFJhZE1ldGEgd2l0aCAxMSBlbGVtZW50cwAAAFY+EAAfAAAAAAAAAAgAAAAEAAAAqgAAAGZpbGVzbWluc21heHNzaGFwZXN0cnVjdCBNZWFucyB3aXRoIDQgZWxlbWVudHMAAKI+EAAcAAAAZW5jb2RpbmdzdHJ1Y3QgUXVhdHMgd2l0aCAyIGVsZW1lbnRz0D4QABwAAABzdHJ1Y3QgU2gwVjEgd2l0aCAzIGVsZW1lbnRz9D4QABwAAABjb2RlYm9va3N0cnVjdCBTaDBWMiB3aXRoIDIgZWxlbWVudHMgPxAAHAAAAHN0cnVjdCBTaE5WMSB3aXRoIDQgZWxlbWVudHNEPxAAHAAAAGJhbmRzc3RydWN0IFNoTlYyIHdpdGggMyBlbGVtZW50cwAAAG0/EAAcAAAAc3RydWN0IE1lYW5zVjEgd2l0aCA0IGVsZW1lbnRzAACUPxAAHgAAAG1lYW5zc2NhbGVzcXVhdHNzaDBzaE5zdHJ1Y3QgUGNTb2dzVjEgd2l0aCA1IGVsZW1lbnRzAAAA0j8QAB8AAABzdHJ1Y3QgUGNTb2dzVjIgd2l0aCA3IGVsZW1lbnRzAPw/EAAfAAAAc3RydWN0IFNjYWxlc1YxIHdpdGggMyBlbGVtZW50cwAkQBAAHwAAAHN0cnVjdCBTY2FsZXNWMiB3aXRoIDIgZWxlbWVudHMATEAQAB8AAABiYXNlcGF5bG9hZEJ5dGVzcHJvcGVydGllc3N0cnVjdCBSYWRDaHVua01ldGEgd2l0aCA4IGVsZW1lbnRzAAAAjkAQACMAAABnc3BsYXQAALxAEAAGAAAAb2Zmc2V0ZmlsZW5hbWVzdHJ1Y3QgUmFkQ2h1bmtSYW5nZSB3aXRoIDUgZWxlbWVudHMAANpAEAAkAAAAY29tcHJlc3Npb25taW5tYXhzdHJ1Y3QgUmFkQ2h1bmtQcm9wZXJ0eSB3aXRoIDcgZWxlbWVudHMZQRAAJwAAAGEgc2VxdWVuY2UAANsGEABmAAAAjQQAABwAAABzdHJ1Y3QgU2V0U3BsYXRFbmNvZGluZyB3aXRoIDggZWxlbWVudHMAZEEQACcAAABjZW50ZXJhbHBoYXJnYm9yaWVudGF0aW9uY2hpbGRfY291bnRjaGlsZF9zdGFydHNoMV9jb2Rlc2gyX2NvZGVzaDNfY29kZXNoX2xhYmVsAJRBEAAGAAAAmkEQAAUAAACfQRAAAwAAAME/EAAGAAAAokEQAAsAAAD4MxAAAwAAAPszEAADAAAADDYQAAMAAACtQRAACwAAALhBEAALAAAAw0EQAAgAAADLQRAACAAAANNBEAAIAAAA20EQAAgAAABmMTZmMzJfbGVieXRlc2YxNl9sZWJ5dGVzcjhyOF9kZWx0YXM4czhfZGVsdGFsbl8wcjhsbl9mMTZvY3Q4OHI4AogRAAMAAABUQhAAAwAAAFdCEAALAAAAYkIQAAsAAABtQhAAAgAAAG9CEAAIAAAAd0IQAAIAAAB5QhAACAAAAIFCEAAGAAAAh0IQAAYAAACNQhAABwAAAAdZEQADAAAABYgRAAMAQYSGwQALBQEAAACrAEGUhsEAC50NAQAAAKwAAABnegAAHEMQAAIAAACGV40hJKv8MZsV7Rqk/AqGIZHXkOAZBnMEwoE6QC5Aw02j52ZMofSR0h1OTNnv/LcqkTKWy/Ri3BOYR0yo5sJKZQUUCIJCw8J7T1YBdnE/LlNbgd6v+j3VsO5PRvEo+g1lOjkDtdomfifhYlnYlyaf521Pxr7v5E2F7c0GCuf+P/3rIsETwTMoA+inBzqud1sRrxXgIBVknwBi1PJVeIx7Aisj8rJUn2yy7loDmsKEpY45WsRC9+oSngcEldKewYpCm/q8AgqVZ7gNAZD9VtBrMivi9KBl2ERiQe5Ii0cFQ/5K+mCCgfdMVeJBLcgvjfuPC2mlqkI9RC+bfJ3D8Sr9x01mLnzmSbxuYaNTlztp3pcpSPbzROrxa62j6ZmoBdH97HYrR635JQTfXlV6a8Ovn+m9tKIApq4QCN4uyBE87DPEa42psDZg7WP62RG4/bUIrvZnfsvyWSH/wjd06x+Py+lMtpuEl8Ltn4DSZSE7nX4v+OWiItk2yi53ifdj62Zde1sqPTuH9PUU2hK7pnF7Y1zUyuJJAK68UxeBqShYoeSyUAtPu+nwuxBgZKitiEsgHhagE5RBXb1l1/jQzzzaT25jZSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAADoRBAAKgAAAL8aEABTAAAAnAAAADIAAABzFBAATwAAAC8CAAAmAAAATw8QAGYAAACkAAAAKgAAAE8PEABmAAAABAEAACUAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAABcRRAAsAAAALEAAACyAAAAsAAAALMAAABBRVMgZW5jcnlwdGVkIGZpbGVzIGNhbm5vdCBiZSBkZWNyeXB0ZWQgd2l0aG91dCB0aGUgYWVzLWNyeXB0byBmZWF0dXJlLlZhcmlhYmxlLWxlbmd0aCBmaWVsZCBleHRlbmRzIGJleW9uZCBmaWxlIGJvdW5kYXJ5QUVTIGVuY3J5cHRpb24gd2l0aG91dCBBRVMgZXh0cmEgZGF0YSBmaWVsZEFyY2hpdmUgaGVhZGVyIGlzIHRvbyBsYXJnZQDOIRAAWQAAAOYCAAAZAAAAziEQAFkAAADqAgAAEwAAAE92ZXJzaXplZCBjZW50cmFsIGRpcmVjdG9yeVN1cHBvcnQgZm9yIG11bHRpLWRpc2sgZmlsZXMgaXMgbm90IGltcGxlbWVudGVkemlwOjp0eXBlczo6WmlwQ2VudHJhbEVudHJ5QmxvY2sAAFBLAQJJbnZhbGlkIENlbnRyYWwgRGlyZWN0b3J5IGhlYWRlcnppcDo6c3BlYzo6WmlwMzJDREVCbG9ja1BLBQZJbnZhbGlkIGRpZ2l0YWwgc2lnbmF0dXJlIGhlYWRlcgAAAIAkRxAAIAAAAHppcDo6c3BlYzo6WmlwNjRDREVMb2NhdG9yQmxvY2tJbnZhbGlkIHppcDY0IGxvY2F0b3IgZGlnaXRhbCBzaWduYXR1cmUgaGVhZGVyAAAAAAAAgG9HEAAuAAAAemlwOjpzcGVjOjpaaXA2NENERUJsb2NrUEsGBkludmFsaWQgRU9DRDY0OiBpbmNvbnNpc3RlbnQgbGVuZ3RoSW52YWxpZCBFT0NENjQ6IGluY29uc2lzdGVuY3kgd2l0aCBMb2NhdG9yIGRhdGFJbnZhbGlkIEVPQ0Q2NDogaW5jb25zaXN0ZW50IG51bWJlciBvZiBmaWxlc0NvdWxkIG5vdCBmaW5kIEVPQ0Q2NE11bHRpLWRpc2sgWklQIGZpbGVzIGFyZSBub3Qgc3VwcG9ydGVkSW52YWxpZCBFT0NENjQgTG9jYXRvciBDRCBvZmZzZXRObyBDREZIIGZvdW5kSW52YWxpZCBDREZIIG9mZnNldCBpbiBFT0NESW52YWxpZCBFT0NEIGNvbW1lbnQgbGVuZ3RoQ291bGQg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AIgCAACvAQAAsAEAALEBAACKAgAAsgEAAIsCAACzAQAAtAEAALUBAAC2AQAAtwEAAJICAAC4AQAAuQEAALwBAAC9AQAAxAEAAMYBAADFAQAAxgEAAMcBAADJAQAAyAEAAMkBAADKAQAAzAEAAMsBAADMAQAAzQEAAM4BAADPAQAA0AEAANEBAADSAQAA0wEAANQBAADVAQAA1gEAANcBAADYAQAA2QEAANoBAADbAQAA3AEAAN4BAADfAQAA4AEAAOEBAADiAQAA4wEAAOQBAADlAQAA5gEAAOcBAADoAQAA6QEAAOoBAADrAQAA7AEAAO0BAADuAQAA7wEAAPEBAADzAQAA8gEAAPMBAAD0AQAA9QEAAPYBAACVAQAA9wEAAL8BAAD4AQAA+QEAAPoBAAD7AQAA/AEAAP0BAAD+AQAA/wEAAAACAAABAgAAAgIAAAMCAAAEAgAABQIAAAYCAAAHAgAACAIAAAkCAAAKAgAACwIAAAwCAAANAgAADgIAAA8CAAAQAgAAEQIAABICAAATAgAAFAIAABUCAAAWAgAAFwIAABgCAAAZAgAAGgIAABsCAAAcAgAAHQIAAB4CAAAfAgAAIAIAAJ4BAAAiAgAAIwIAACQCAAAlAgAAJgIAACcCAAAoAgAAKQIAACoCAAArAgAALAIAAC0CAAAuAgAALwIAADACAAAxAgAAMgIAADMCAAA6AgAAZSwAADsCAAA8AgAAPQIAAJoBAAA+AgAAZiwAAEECAABCAgAAQwIAAIABAABEAgAAiQIAAEUCAACMAgAARgIAAEcCAABIAgAASQIAAEoCAABLAgAATAIAAE0CAABOAgAATwIAAHADAABxAwAAcgMAAHMDAAB2AwAAdwMAAH8DAADzAwAAhgMAAKwDAACIAwAArQMAAIkDAACuAwAAigMAAK8DAACMAwAAzAMAAI4DAADNAwAAjwMAAM4DAACRAwAAsQMAAJIDAACyAwAAkwMAALMDAACUAwAAtAMAAJUDAAC1AwAAlgMAALYDAACXAwAAtwMAAJgDAAC4AwAAmQMAALkDAACaAwAAugMAAJsDAAC7AwAAnAMAALwDAACdAwAAvQMAAJ4DAAC+AwAAnwMAAL8DAACgAwAAwAMAAKEDAADBAwAAowMAAMMDAACkAwAAxAMAAKUDAADFAwAApgMAAMYDAACnAwAAxwMAAKgDAADIAwAAqQMAAMkDAACqAwAAygMAAKsDAADLAwAAzwMAANcDAADYAwAA2QMAANoDAADbAwAA3AMAAN0DAADeAwAA3wMAAOADAADhAwAA4gMAAOMDAADkAwAA5QMAAOYDAADnAwAA6AMAAOkDAADqAwAA6wMAAOwDAADtAwAA7gMAAO8DAAD0AwAAuAMAAPcDAAD4AwAA+QMAAPIDAAD6AwAA+wMAAP0DAAB7AwAA/gMAAHwDAAD/AwAAfQMAAAAEAABQBAAAAQQAAFEEAAACBAAAUgQAAAMEAABTBAAABAQAAFQEAAAFBAAAVQQAAAYEAABWBAAABwQAAFcEAAAIBAAAWAQAAAkEAABZBAAACgQAAFoEAAALBAAAWwQAAAwEAABcBAAADQQAAF0EAAAOBAAAXgQAAA8EAABfBAAAEAQAADAEAAARBAAAMQQAABIEAAAyBAAAEwQAADMEAAAUBAAANAQAABUEAAA1BAAAFgQAADYEAAAXBAAANwQAABgEAAA4BAAAGQQAADkEAAAaBAAAOgQAABsEAAA7BAAAHAQAADwEAAAdBAAAPQQAAB4EAAA+BAAAHwQAAD8EAAAgBAAAQAQAACEEAABBBAAAIgQAAEIEAAAjBAAAQwQAACQEAABEBAAAJQQAAEUEAAAmBAAARgQAACcEAABHBAAAKAQAAEgEAAApBAAASQQAACoEAABKBAAAKwQAAEsEAAAsBAAATAQAAC0EAABNBAAALgQAAE4EAAAvBAAATwQAAGAEAABhBAAAYgQAAGMEAABkBAAAZQQAAGYEAABnBAAAaAQAAGkEAABqBAAAawQAAGwEAABtBAAAbgQAAG8EAABwBAAAcQQAAHIEAABzBAAAdAQAAHUEAAB2BAAAdwQAAHgEAAB5BAAAegQAAHsEAAB8BAAAfQQAAH4EAAB/BAAAgAQAAIEEAACKBAAAiwQAAIwEAACNBAAAjgQAAI8EAACQBAAAkQQAAJIEAACTBAAAlAQAAJUEAACWBAAAlwQAAJgEAACZBAAAmgQAAJsEAACcBAAAnQQAAJ4EAACfBAAAoAQAAKEEAACiBAAAowQAAKQEAAClBAAApgQAAKcEAACoBAAAqQQAAKoEAACrBAAArAQAAK0EAACuBAAArwQAALAEAACxBAAAsgQAALMEAAC0BAAAtQQAALYEAAC3BAAAuAQAALkEAAC6BAAAuwQAALwEAAC9BAAAvgQAAL8EAADABAAAzwQAAMEEAADCBAAAwwQAAMQEAADFBAAAxgQAAMcEAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAADOBAAA0AQAANEEAADSBAAA0wQAANQEAADVBAAA1gQAANcEAADYBAAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAA4gQAAOMEAADkBAAA5QQAAOYEAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAO8EAADwBAAA8QQAAPIEAADzBAAA9AQAAPUEAAD2BAAA9wQAAPgEAAD5BAAA+gQAAPsEAAD8BAAA/QQAAP4EAAD/BAAAAAUAAAEFAAACBQAAAwUAAAQFAAAFBQAABgUAAAcFAAAIBQAACQUAAAoFAAALBQAADAUAAA0FAAAOBQAADwUAABAFAAARBQAAEgUAABMFAAAUBQAAFQUAABYFAAAXBQAAGAUAABkFAAAaBQAAGwUAABwFAAAdBQAAHgUAAB8FAAAgBQAAIQUAACIFAAAjBQAAJAUAACUFAAAmBQAAJwUAACgFAAApBQAAKgUAACsFAAAsBQAALQUAAC4FAAAvBQAAMQUAAGEFAAAyBQAAYgUAADMFAABjBQAANAUAAGQFAAA1BQAAZQUAADYFAABmBQAANwUAAGcFAAA4BQAAaAUAADkFAABpBQAAOgUAAGoFAAA7BQAAawUAADwFAABsBQAAPQUAAG0FAAA+BQAAbgUAAD8FAABvBQAAQAUAAHAFAABBBQAAcQUAAEIFAAByBQAAQwUAAHMFAABEBQAAdAUAAEUFAAB1BQAARgUAAHYFAABHBQAAdwUAAEgFAAB4BQAASQUAAHkFAABKBQAAegUAAEsFAAB7BQAATAUAAHwFAABNBQAAfQUAAE4FAAB+BQAATwUAAH8FAABQBQAAgAUAAFEFAACBBQAAUgUAAIIFAABTBQAAgwUAAFQFAACEBQAAVQUAAIUFAABWBQAAhgUAAKAQAAAALQAAoRAAAAEtAACiEAAAAi0AAKMQAAADLQAApBAAAAQtAAClEAAABS0AAKYQAAAGLQAApxAAAActAACoEAAACC0AAKkQAAAJLQAAqhAAAAotAACrEAAACy0AAKwQAAAMLQAArRAAAA0tAACuEAAADi0AAK8QAAAPLQAAsBAAABAtAACxEAAAES0AALIQAAASLQAAsxAAABMtAAC0EAAAFC0AALUQAAAVLQAAthAAABYtAAC3EAAAFy0AALgQAAAYLQAAuRAAABktAAC6EAAAGi0AALsQAAAbLQAAvBAAABwtAAC9EAAAHS0AAL4QAAAeLQAAvxAAAB8tAADAEAAAIC0AAMEQAAAhLQAAwhAAACItAADDEAAAIy0AAMQQAAAkLQAAxRAAACUtAADHEAAAJy0AAM0QAAAtLQAAoBMAAHCrAAChEwAAcasAAKITAAByqwAAoxMAAHOrAACkEwAAdKsAAKUTAAB1qwAAphMAAHarAACnEwAAd6sAAKgTAAB4qwAAqRMAAHmrAACqEwAAeqsAAKsTAAB7qwAArBMAAHyrAACtEwAAfasAAK4TAAB+qwAArxMAAH+rAACwEwAAgKsAALETAACBqwAAshMAAIKrAACzEwAAg6sAALQTAACEqwAAtRMAAIWrAAC2EwAAhqsAALcTAACHqwAAuBMAAIirAAC5EwAAiasAALoTAACKqwAAuxMAAIurAAC8EwAAjKsAAL0TAACNqwAAvhMAAI6rAAC/EwAAj6sAAMATAACQqwAAwRMAAJGrAADCEwAAkqsAAMMTAACTqwAAxBMAAJSrAADFEwAAlasAAMYTAACWqwAAxxMAAJerAADIEwAAmKsAAMkTAACZqwAAyhMAAJqrAADLEwAAm6sAAMwTAACcqwAAzRMAAJ2rAADOEwAAnqsAAM8TAACfqwAA0BMAAKCrAADREwAAoasAANITAACiqwAA0xMAAKOrAADUEwAApKsAANUTAAClqwAA1hMAAKarAADXEwAAp6sAANgTAACoqwAA2RMAAKmrAADaEwAAqqsAANsTAACrqwAA3BMAAKyrAADdEwAArasAAN4TAACuqwAA3xMAAK+rAADgEwAAsKsAAOETAACxqwAA4hMAALKrAADjEwAAs6sAAOQTAAC0qwAA5RMAALWrAADmEwAAtqsAAOcTAAC3qwAA6BMAALirAADpEwAAuasAAOoTAAC6qwAA6xMAALurAADsEwAAvKsAAO0TAAC9qwAA7hMAAL6rAADvEwAAv6sAAPATAAD4EwAA8RMAAPkTAADyEwAA+hMAAPMTAAD7EwAA9BMAAPwTAAD1EwAA/RMAAIkcAACKHAAAkBwAANAQAACRHAAA0RAAAJIcAADSEAAAkxwAANMQAACUHAAA1BAAAJUcAADVEAAAlhwAANYQAACXHAAA1xAAAJgcAADYEAAAmRwAANkQAACaHAAA2hAAAJscAADbEAAAnBwAANwQAACdHAAA3RAAAJ4cAADeEAAAnxwAAN8QAACgHAAA4BAAAKEcAADhEAAAohwAAOIQAACjHAAA4xAAAKQcAADkEAAApRwAAOUQAACmHAAA5hAAAKccAADnEAAAqBwAAOgQAACpHAAA6RAAAKocAADqEAAAqxwAAOsQAACsHAAA7BAAAK0cAADtEAAArhwAAO4QAACvHAAA7xAAALAcAADwEAAAsRwAAPEQAACyHAAA8hAAALMcAADzEAAAtBwAAPQQAAC1HAAA9RAAALYcAAD2EAAAtxwAAPcQAAC4HAAA+BAAALkcAAD5EAAAuhwAAPoQAAC9HAAA/RAAAL4cAAD+EAAAvxwAAP8QAAAAHgAAAR4AAAIeAAADHgAABB4AAAUeAAAGHgAABx4AAAgeAAAJHgAACh4AAAseAAAMHgAADR4AAA4eAAAPHgAAEB4AABEeAAASHgAAEx4AABQeAAAVHgAAFh4AABceAAAYHgAAGR4AABoeAAAbHgAAHB4AAB0eAAAeHgAAHx4AACAeAAAhHgAAIh4AACMeAAAkHgAAJR4AACYeAAAnHgAAKB4AACkeAAAqHgAAKx4AACweAAAtHgAALh4AAC8eAAAwHgAAMR4AADIeAAAzHgAANB4AADUeAAA2HgAANx4AADgeAAA5HgAAOh4AADseAAA8HgAAPR4AAD4eAAA/HgAAQB4AAEEeAABCHgAAQx4AAEQeAABFHgAARh4AAEceAABIHgAASR4AAEoeAABLHgAATB4AAE0eAABOHgAATx4AAFAeAABRHgAAUh4AAFMeAABUHgAAVR4AAFYeAABXHgAAWB4AAFkeAABaHgAAWx4AAFweAABdHgAAXh4AAF8eAABgHgAAYR4AAGIeAABjHgAAZB4AAGUeAABmHgAAZx4AAGgeAABpHgAAah4AAGseAABsHgAAbR4AAG4eAABvHgAAcB4AAHEeAAByHgAAcx4AAHQeAAB1HgAAdh4AAHceAAB4HgAAeR4AAHoeAAB7HgAAfB4AAH0eAAB+HgAAfx4AAIAeAACBHgAAgh4AAIMeAACEHgAAhR4AAIYeAACHHgAAiB4AAIkeAACKHgAAix4AAIweAACNHgAAjh4AAI8eAACQHgAAkR4AAJIeAACTHgAAlB4AAJUeAACeHgAA3wAAAKAeAAChHgAAoh4AAKMeAACkHgAApR4AAKYeAACnHgAAqB4AAKkeAACqHgAAqx4AAKweAACtHgAArh4AAK8eAACwHgAAsR4AALIeAACzHgAAtB4AALUeAAC2HgAAtx4AALgeAAC5HgAAuh4AALseAAC8HgAAvR4AAL4eAAC/HgAAwB4AAMEeAADCHgAAwx4AAMQeAADFHgAAxh4AAMceAADIHgAAyR4AAMoeAADLHgAAzB4AAM0eAADOHgAAzx4AANAeAADRHgAA0h4AANMeAADUHgAA1R4AANYeAADXHgAA2B4AANkeAADaHgAA2x4AANweAADdHgAA3h4AAN8eAADgHgAA4R4AAOIeAADjHgAA5B4AAOUeAADmHgAA5x4AAOgeAADpHgAA6h4AAOseAADsHgAA7R4AAO4eAADvHgAA8B4AAPEeAADyHgAA8x4AAPQeAAD1HgAA9h4AAPceAAD4HgAA+R4AAPoeAAD7HgAA/B4AAP0eAAD+HgAA/x4AAAgfAAAAHwAACR8AAAEfAAAKHwAAAh8AAAsfAAADHwAADB8AAAQfAAANHwAABR8AAA4fAAAGHwAADx8AAAcfAAAYHwAAEB8AABkfAAARHwAAGh8AABIfAAAbHwAAEx8AABwfAAAUHwAAHR8AABUfAAAoHwAAIB8AACkfAAAhHwAAKh8AACIfAAArHwAAIx8AACwfAAAkHwAALR8AACUfAAAuHwAAJh8AAC8fAAAnHwAAOB8AADAfAAA5HwAAMR8AADofAAAyHwAAOx8AADMfAAA8HwAANB8AAD0fAAA1HwAAPh8AADYfAAA/HwAANx8AAEgfAABAHwAASR8AAEEfAABKHwAAQh8AAEsfAABDHwAATB8AAEQfAABNHwAARR8AAFkfAABRHwAAWx8AAFMfAABdHwAAVR8AAF8fAABXHwAAaB8AAGAfAABpHwAAYR8AAGofAABiHwAAax8AAGMfAABsHwAAZB8AAG0fAABlHwAAbh8AAGYfAABvHwAAZx8AAIgfAACAHwAAiR8AAIEfAACKHwAAgh8AAIsfAACDHwAAjB8AAIQfAACNHwAAhR8AAI4fAACGHwAAjx8AAIcfAACYHwAAkB8AAJkfAACRHwAAmh8AAJIfAACbHwAAkx8AAJwfAACUHwAAnR8AAJUfAACeHwAAlh8AAJ8fAACXHwAAqB8AAKAfAACpHwAAoR8AAKofAACiHwAAqx8AAKMfAACsHwAApB8AAK0fAAClHwAArh8AAKYfAACvHwAApx8AALgfAACwHwAAuR8AALEfAAC6HwAAcB8AALsfAABxHwAAvB8AALMfAADIHwAAch8AAMkfAABzHwAAyh8AAHQfAADLHwAAdR8AAMwfAADDHwAA2B8AANAfAADZHwAA0R8AANofAAB2HwAA2x8AAHcfAADoHwAA4B8AAOkfAADhHwAA6h8AAHofAADrHwAAex8AAOwfAADlHwAA+B8AAHgfAAD5HwAAeR8AAPofAAB8HwAA+x8AAH0fAAD8HwAA8x8AACYhAADJAwAAKiEAAGsAAAArIQAA5QAAADIhAABOIQAAYCEAAHAhAABhIQAAcSEAAGIhAAByIQAAYyEAAHMhAABkIQAAdCEAAGUhAAB1IQAAZiEAAHYhAABnIQAAdyEAAGghAAB4IQAAaSEAAHkhAABqIQAAeiEAAGshAAB7IQAAbCEAAHwhAABtIQAAfSEAAG4hAAB+IQAAbyEAAH8hAACDIQAAhCEAALYkAADQJAAAtyQAANEkAAC4JAAA0iQAALkkAADTJAAAuiQAANQkAAC7JAAA1SQAALwkAADWJAAAvSQAANckAAC+JAAA2CQAAL8kAADZJAAAwCQAANokAADBJAAA2yQAAMIkAADcJAAAwyQAAN0kAADEJAAA3iQAAMUkAADfJAAAxiQAAOAkAADHJAAA4SQAAMgkAADiJAAAySQAAOMkAADKJAAA5CQAAMskAADlJAAAzCQAAOYkAADNJAAA5yQAAM4kAADoJAAAzyQAAOkkAAAALAAAMCwAAAEsAAAxLAAAAiwAADIsAAADLAAAMywAAAQsAAA0LAAABSwAADUsAAAGLAAANiwAAAcsAAA3LAAACCwAADgsAAAJLAAAOSwAAAosAAA6LAAACywAADssAAAMLAAAPCwAAA0sAAA9LAAADiwAAD4sAAAPLAAAPywAABAsAABALAAAESwAAEEsAAASLAAAQiwAABMsAABDLAAAFCwAAEQsAAAVLAAARSwAABYsAABGLAAAFywAAEcsAAAYLAAASCwAABksAABJLAAAGiwAAEosAAAbLAAASywAABwsAABMLAAAHSwAAE0sAAAeLAAATiwAAB8sAABPLAAAICwAAFAsAAAhLAAAUSwAACIsAABSLAAAIywAAFMsAAAkLAAAVCwAACUsAABVLAAAJiwAAFYsAAAnLAAAVywAACgsAABYLAAAKSwAAFksAAAqLAAAWiwAACssAABbLAAALCwAAFwsAAAtLAAAXSwAAC4sAABeLAAALywAAF8sAABgLAAAYSwAAGIsAABrAgAAYywAAH0dAABkLAAAfQIAAGcsAABoLAAAaSwAAGosAABrLAAAbCwAAG0sAABRAgAAbiwAAHECAABvLAAAUAIAAHAsAABSAgAAciwAAHMsAAB1LAAAdiwAAH4sAAA/AgAAfywAAEACAACALAAAgSwAAIIsAACDLAAAhCwAAIUsAACGLAAAhywAAIgsAACJLAAAiiwAAIssAACMLAAAjSwAAI4sAACPLAAAkCwAAJEsAACSLAAAkywAAJQsAACVLAAAliwAAJcsAACYLAAAmSwAAJosAACbLAAAnCwAAJ0sAACeLAAAnywAAKAsAAChLAAAoiwAAKMsAACkLAAApSwAAKYsAACnLAAAqCwAAKksAACqLAAAqywAAKwsAACtLAAAriwAAK8sAACwLAAAsSwAALIsAACzLAAAtCwAALUsAAC2LAAAtywAALgsAAC5LAAAuiwAALssAAC8LAAAvSwAAL4sAAC/LAAAwCwAAMEsAADCLAAAwywAAMQsAADFLAAAxiwAAMcsAADILAAAySwAAMosAADLLAAAzCwAAM0sAADOLAAAzywAANAsAADRLAAA0iwAANMsAADULAAA1SwAANYsAADXLAAA2CwAANksAADaLAAA2ywAANwsAADdLAAA3iwAAN8sAADgLAAA4SwAAOIsAADjLAAA6ywAAOwsAADtLAAA7iwAAPIsAADzLAAAQKYAAEGmAABCpgAAQ6YAAESmAABFpgAARqYAAEemAABIpgAASaYAAEqmAABLpgAATKYAAE2mAABOpgAAT6YAAFCmAABRpgAAUqYAAFOmAABUpgAAVaYAAFamAABXpgAAWKYAAFmmAABapgAAW6YAAFymAABdpgAAXqYAAF+mAABgpgAAYaYAAGKmAABjpgAAZKYAAGWmAABmpgAAZ6YAAGimAABppgAAaqYAAGumAABspgAAbaYAAICmAACBpgAAgqYAAIOmAACEpgAAhaYAAIamAACHpgAAiKYAAImmAACKpgAAi6YAAIymAACNpgAAjqYAAI+mAACQpgAAkaYAAJKmAACTpgAAlKYAAJWmAACWpgAAl6YAAJimAACZpgAAmqYAAJumAAAipwAAI6cAACSnAAAlpwAAJqcAACenAAAopwAAKacAACqnAAArpwAALKcAAC2nAAAupwAAL6cAADKnAAAzpwAANKcAADWnAAA2pwAAN6cAADinAAA5pwAAOqcAADunAAA8pwAAPacAAD6nAAA/pwAAQKcAAEGnAABCpwAAQ6cAAESnAABFpwAARqcAAEenAABIpwAASacAAEqnAABLpwAATKcAAE2nAABOpwAAT6cAAFCnAABRpwAAUqcAAFOnAABUpwAAVacAAFanAABXpwAAWKcAAFmnAABapwAAW6cAAFynAABdpwAAXqcAAF+nAABgpwAAYacAAGKnAABjpwAAZKcAAGWnAABmpwAAZ6cAAGinAABppwAAaqcAAGunAABspwAAbacAAG6nAABvpwAAeacAAHqnAAB7pwAAfKcAAH2nAAB5HQAAfqcAAH+nAACApwAAgacAAIKnAACDpwAAhKcAAIWnAACGpwAAh6cAAIunAACMpwAAjacAAGUCAACQpwAAkacAAJKnAACTpwAAlqcAAJenAACYpwAAmacAAJqnAACbpwAAnKcAAJ2nAACepwAAn6cAAKCnAAChpwAAoqcAAKOnAACkpwAApacAAKanAACnpwAAqKcAAKmnAACqpwAAZgIAAKunAABcAgAArKcAAGECAACtpwAAbAIAAK6nAABqAgAAsKcAAJ4CAACxpwAAhwIAALKnAACdAgAAs6cAAFOrAAC0pwAAtacAALanAAC3pwAAuKcAALmnAAC6pwAAu6cAALynAAC9pwAAvqcAAL+nAADApwAAwacAAMKnAADDpwAAxKcAAJSnAADFpwAAggIAAManAACOHQAAx6cAAMinAADJpwAAyqcAAMunAABkAgAAzKcAAM2nAADQpwAA0acAANanAADXpwAA2KcAANmnAADapwAA26cAANynAACbAQAA9acAAPanAAAh/wAAQf8AACL/AABC/wAAI/8AAEP/AAAk/wAARP8AACX/AABF/wAAJv8AAEb/AAAn/wAAR/8AACj/AABI/wAAKf8AAEn/AAAq/wAASv8AACv/AABL/wAALP8AAEz/AAAt/wAATf8AAC7/AABO/wAAL/8AAE//AAAw/wAAUP8AADH/AABR/wAAMv8AAFL/AAAz/wAAU/8AADT/AABU/wAANf8AAFX/AAA2/wAAVv8AADf/AABX/wAAOP8AAFj/AAA5/wAAWf8AADr/AABa/wAAAAQBACgEAQABBAEAKQQBAAIEAQAqBAEAAwQBACsEAQAEBAEALAQBAAUEAQAtBAEABgQBAC4EAQAHBAEALwQBAAgEAQAwBAEACQQBADEEAQAKBAEAMgQBAAsEAQAzBAEADAQBADQEAQANBAEANQQBAA4EAQA2BAEADwQBADcEAQAQBAEAOAQBABEEAQA5BAEAEgQBADoEAQATBAEAOwQBABQEAQA8BAEAFQQBAD0EAQAWBAEAPgQBABcEAQA/BAEAGAQBAEAEAQAZBAEAQQQBABoEAQBCBAEAGwQBAEMEAQAcBAEARAQBAB0EAQBFBAEAHgQBAEYEAQAfBAEARwQBACAEAQBIBAEAIQQBAEkEAQAiBAEASgQBACMEAQBLBAEAJAQBAEwEAQAlBAEATQQBACYEAQBOBAEAJwQBAE8EAQCwBAEA2AQBALEEAQDZBAEAsgQBANoEAQCzBAEA2wQBALQEAQDcBAEAtQQBAN0EAQC2BAEA3gQBALcEAQDfBAEAuAQBAOAEAQC5BAEA4QQBALoEAQDiBAEAuwQBAOMEAQC8BAEA5AQBAL0EAQDlBAEAvgQBAOYEAQC/BAEA5wQBAMAEAQDoBAEAwQQBAOkEAQDCBAEA6gQBAMMEAQDrBAEAxAQBAOwEAQDFBAEA7QQBAMYEAQDuBAEAxwQBAO8EAQDIBAEA8AQBAMkEAQDxBAEAygQBAPIEAQDLBAEA8wQBAMwEAQD0BAEAzQQBAPUEAQDOBAEA9gQBAM8EAQD3BAEA0AQBAPgEAQDRBAEA+QQBANIEAQD6BAEA0wQBAPsEAQBwBQEAlwUBAHEFAQCYBQEAcgUBAJkFAQBzBQEAmgUBAHQFAQCbBQEAdQUBAJwFAQB2BQEAnQUBAHcFAQCeBQEAeAUBAJ8FAQB5BQEAoAUBAHoFAQChBQEAfAUBAKMFAQB9BQEApAUBAH4FAQClBQEAfwUBAKYFAQCABQEApwUBAIEFAQCoBQEAggUBAKkFAQCDBQEAqgUBAIQFAQCrBQEAhQUBAKwFAQCGBQEArQUBAIcFAQCuBQEAiAUBAK8FAQCJBQEAsAUBAIoFAQCxBQEAjAUBALMFAQCNBQEAtAUBAI4FAQC1BQEAjwUBALYFAQCQBQEAtwUBAJEFAQC4BQEAkgUBALkFAQCUBQEAuwUBAJUFAQC8BQEAgAwBAMAMAQCBDAEAwQwBAIIMAQDCDAEAgwwBAMMMAQCEDAEAxAwBAIUMAQDFDAEAhgwBAMYMAQCHDAEAxwwBAIgMAQDIDAEAiQwBAMkMAQCKDAEAygwBAIsMAQDLDAEAjAwBAMwMAQCNDAEAzQwBAI4MAQDODAEAjwwBAM8MAQCQDAEA0AwBAJEMAQDRDAEAkgwBANIMAQCTDAEA0wwBAJQMAQDUDAEAlQwBANUMAQCWDAEA1gwBAJcMAQDXDAEAmAwBANgMAQCZDAEA2QwBAJoMAQDaDAEAmwwBANsMAQCcDAEA3AwBAJ0MAQDdDAEAngwBAN4MAQCfDAEA3wwBAKAMAQDgDAEAoQwBAOEMAQCiDAEA4gwBAKMMAQDjDAEApAwBAOQMAQClDAEA5QwBAKYMAQDmDAEApwwBAOcMAQCoDAEA6AwBAKkMAQDpDAEAqgwBAOoMAQCrDAEA6wwBAKwMAQDsDAEArQwBAO0MAQCuDAEA7gwBAK8MAQDvDAEAsAwBAPAMAQCxDAEA8QwBALIMAQDyDAEAUA0BAHANAQBRDQEAcQ0BAFINAQByDQEAUw0BAHMNAQBUDQEAdA0BAFUNAQB1DQEAVg0BAHYNAQBXDQEAdw0BAFgNAQB4DQEAWQ0BAHkNAQBaDQEAeg0BAFsNAQB7DQEAXA0BAHwNAQBdDQEAfQ0BAF4NAQB+DQEAXw0BAH8NAQBgDQEAgA0BAGENAQCBDQEAYg0BAIINAQBjDQEAgw0BAGQNAQCEDQEAZQ0BAIUNAQCgGAEAwBgBAKEYAQDBGAEAohgBAMIYAQCjGAEAwxgBAKQYAQDEGAEApRgBAMUYAQCmGAEAxhgBAKcYAQDHGAEAqBgBAMgYAQCpGAEAyRgBAKoYAQDKGAEAqxgBAMsYAQCsGAEAzBgBAK0YAQDNGAEArhgBAM4YAQCvGAEAzxgBALAYAQDQGAEAsRgBANEYAQCyGAEA0hgBALMYAQDTGAEAtBgBANQYAQC1GAEA1RgB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AACBHgAAgR8AAIEgAACBIQAAgSIAAIEjAACBJAAAgSUAAIEmAACBJwAAgSgAAIEpAACBKgAAgSsAAIEsAACBLQAAgS4AAIEvAACBMAAAgTEAAIEyAACBMwAAgTQAAIE1AACBNgAAgTcAAIE4AACBOQAAgToAAIE7AACBPAAAgT0AAIE+AACBPwAAgUAAAIFBAACBQgAAgUMAAIFEAACBRQAAgUYAAIFHAACBSAAAgUkAAIFKAACBSwAAgUwAAIFNAACBTgAAgU8AAIFQAACBUQAAgVIAAIFTAACBVAAAgVUAAIFWAACBVwAAgVgAAIFZAACBWgAAgVsAAIFcAACBXQAAgV4AAIFfAACBYAAAgWEAAIFiAACBYwAAgWQAAIFlAACBZgAAgWcAAIFoAACBaQAAgWoAAIFrAACBbAAAgW0AAIFuAACBbwAAgXAAAIFxAACBcgAAgXMAAIF0AACBdQAAgXYAAIF3AACBeAAAgXkAAIF6AACBewAAgXwAAIF9AACBfgAAgX8AAIGAAACBgQAAgYIAAIGDAACBhAAAgYUAAIGGAACBhwAAgYgAAIGJAACBigAAgYsAAIGMAACBjQAAgY4AAIGPAACBkAAAgZEAAIGSAACBkwAAgZQAAIGVAACBlgAAgZcAAIGYAACBmQAAgZoAAIGbAACBnAAAgZ0AAIGeAACBnwAAgaAAAIGhAACBogAAgaMAAIGkAACBpQAAgaYAAIGnAACBqAAAgakAAIGqAACBqwAAgawAAIGtAACBrgAAga8AAIGwAACBsQAAgbIAAIGzAACBtAAAgbUAAIG2AACBtwAAgbgAAIG5AACBugAAgbsAAIG8AACBvQAAgb4AAIG/AACBwAAAgcEAAIHCAACBwwAAgcQAAIHFAACBxgAAgccAAIHIAACByQAAgcoAAIHLAACBzAAAgc0AAIHOAACBzwAAgdAAAIHRAACB0gAAgdMAAIHUAACB1QAAgdYAAIHXAACB2AAAgdkAAIHaAACB2wAAgdwAAIHdAACB3gAAgd8AAIHgAACB4QAAgeIAAIHjAACB5AAAgeUAAIHmAACB5wAAgegAAIHpAACB6gAAgesAAIHsAACB7QAAge4AAIHvAACB8AAAgfEAAIHyAACB8wAAgfQAAIH1AACB9gAAgfcAAIH4AACB+QAAgfoAAIH7AACB/AAAgf0AAIH+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ZXRyaWMgaW50ZXJwcmV0YXRpb24gb2YgYSBDSUNQIGNvbG9yIHNwYWNlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGBUIxEATAAAAOiSEQABAAAAVGhlIGZpbGUgZXh0ZW5zaW9uICB3YXMgbm90IHJlY29nbml6ZWQgYXMgYW4gaW1hZ2UgZm9ybWF0AAAAsCMRABMAAADDIxEAJgAAAFRoZSBpbWFnZSBmb3JtYXQgY291bGQgbm90IGJlIGRldGVybWluZWRUaGUgaW1hZ2UgZm9ybWF0IAAAACQkEQARAAAAMCMRABEAAABUaGUgZGVjb2RlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmb3JtYXQgZmVhdHVyZSBIJBEAMAAAAFRoZSBkZWNvZGVyIGZvciAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZm9ybWF0IGZlYXR1cmVzIAAAgCQRABAAAACQJBEAJgAAAEVycgAAAAAABAAAAAQAAACtAQAARm9ybWF0RXJyb3JSaWZmU2lnbmF0dXJlSW52YWxpZFdlYnBTaWduYXR1cmVJbnZhbGlkQ2h1bmtNaXNzaW5nQ2h1bmtIZWFkZXJJbnZhbGlkUmVzZXJ2ZWRCaXRTZXRJbnZhbGlkQWxwaGFQcmVwcm9jZXNzaW5nSW52YWxpZENvbXByZXNzaW9uTWV0aG9kQWxwaGFDaHVua1NpemVNaXNtYXRjaEltYWdlVG9vTGFyZ2VGcmFtZU91dHNpZGVJbWFnZUxvc3NsZXNzU2lnbmF0dXJlSW52YWxpZFZlcnNpb25OdW1iZXJJbnZhbGlkSW52YWxpZENvbG9yQ2FjaGVCaXRzSHVmZm1hbkVycm9yQml0U3RyZWFtRXJyb3JUcmFuc2Zvcm1FcnJvclZwOE1hZ2ljSW52YWxpZE5vdEVub3VnaEluaXREYXRhQ29sb3JTcGFjZUludmFsaWRMdW1hUHJlZGljdGlvbk1vZGVJbnZhbGlkSW50cmFQcmVkaWN0aW9uTW9kZUludmFsaWRDaHJvbWFQcmVkaWN0aW9uTW9kZUludmFsaWRJbmNvbnNpc3RlbnRJbWFnZVNpemVzVW5zdXBwb3J0ZWRGZWF0dXJlSW52YWxpZFBhcmFtZXRlck1lbW9yeUxpbWl0RXhjZWVkZWRJbnZhbGlkQ2h1bmtTaXplTm9Nb3JlRnJhbWVzSW52YWxpZERpbWVuc2lvbnMAAAAABAAAAAQAAACuAQAAVHJ5UmVzZXJ2ZUVycm9yTGltaXRzRXhjZWVkZWQAAAC7AAAACAAAAAQAAAAWAAAAuwAAAAgAAAAEAAAAvAAAABYAAAAwJxEAvQAAAL4AAACyAAAAvwAAALMAAABVbnJlcHJlc2VudGFibGVJbnZhbGlkS2V5d29yZFNpemVNaXNzaW5nTnVsbFNlcGFyYXRvckluZmxhdGlvbkVycm9yT3V0T2ZEZWNvbXByZXNzaW9uU3BhY2VJbnZhbGlkQ29tcHJlc3Npb25GbGFnTWlzc2luZ0NvbXByZXNzaW9uRmxhZwAAAAAAAAQAAAAEAAAAwAAAAAAAAAAEAAAABAAAAGMAAABDcmNNaXNtYXRjaGNyY192YWxjcmNfc3VtSW52YWxpZFNpZ25hdHVyZU1pc3NpbmdGY3RsTWlzc2luZ0ltYWdlRGF0YUNodW5rQmVmb3JlSWhkckFmdGVySWRhdEJlZm9yZVBsdGVBZnRlclBsdGVPdXRzaWRlUGx0ZUlkYXREdXBsaWNhdGVDaHVua0FwbmdPcmRlcnByZXNlbnRTaG9ydFBhbGV0dGVsZW4AAAAAAAEAAAABAAAArwEAAEludmFsaWRTYml0Q2h1bmtTaXplY29sb3JfdHlwZQAAAAAAAAEAAAABAAAAsAEAAEludmFsaWRTYml0c2FtcGxlX2RlcHRoc2JpdFBhbGV0dGVSZXF1aXJlZAAAAAAAAAQAAAAEAAAAsQEAAEludmFsaWRDb2xvckJpdERlcHRoYml0X2RlcHRoQ29sb3JXaXRoQmFkVHJuc0ludmFsaWRCaXREZXB0aEludmFsaWRDb2xvclR5cGVJbnZhbGlkRGlzcG9zZU9wSW52YWxpZEJsZW5kT3BJbnZhbGlkVW5pdEludmFsaWRTcmdiUmVuZGVyaW5nSW50ZW50VW5rbm93bkNvbXByZXNzaW9uTWV0aG9kVW5rbm93bkZpbHRlck1ldGhvZFVua25vd25JbnRlcmxhY2VNZXRob2RCYWRTdWJGcmFtZUJvdW5kcwAAAAAAAAAEAAAABAAAALIBAABDb3JydXB0RmxhdGVTdHJlYW1lcnJOb01vcmVJbWFnZURhdGFCYWRUZXh0RW5jb2RpbmdGZGF0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AB4AAAB2JRAAXwAAAAsJAAAXAAAAdiUQAF8AAAAPCQAAJgAAAHYlEABfAAAAEgkAACIAAAB2JRAAXwAAAAwJAAAdAAAAdiUQAF8AAACBCAAABQAAAHYlEABfAAAAhAgAACYAAAB2JRAAXwAAAIgIAAArAAAAdiUQAF8AAACICAAAIAAAAHYlEABfAAAAJQgAAEUAAAB2JRAAXwAAADgIAAAxAAAAdiUQAF8AAAAiCAAAHgAAAHYlEABfAAAAHAgAAEEAAAAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADwAPgBAAEIARABGAEgASgBMAE4AUABSAFQAVgBYAFoAXABeAGAAYgBkAGYAaABqAGwAbgBwAHIAdAB3AHoAfQCAAIMAhgCJAIwAjwCSAJUAmACbAJ4AoQCkAKcAqgCtALEAtQC5AL0AwQDFAMkAzQDRANUA2QDdAOEA5QDqAO8A9QD5AP4AAwEIAQ0BEgEXARwBBAAFAAYABwAIAAkACgAKAAsADAANAA4ADwAQABEAEQASABMAFAAUABUAFQAWABYAFwAXABgAGQAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACUAJgAnACgAKQAqACsALAAtAC4ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWwBdAF8AYABiAGQAZQBmAGgAagBsAG4AcAByAHQAdgB6AHwAfgCAAIIAhACGAIgAigCMAI8AkQCUAJcAmgCdAHYlEABfAAAAaAgAADAAAAB2JRAAXwAAAFwIAAA7AAAAawIQAF8AAABgAAAANQAAAGsCEABfAAAAYwAAAEEAAABrAhAAXwAAAJUAAAAZAAAAawIQAF8AAACUAAAAGQAAAGsCEABfAAAAkwAAABkAAABrAhAAXwAAAJAAAAAkAAAAawIQAF8AAACPAAAAJAAAAGsCEABfAAAAeAAAABUAAABrAhAAXwAAAHcAAAAVAAAAawIQAF8AAAB2AAAAFQAA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UDggY2hyb21hIHByZWRpY3Rpb24gbW9kZTog+DsRACQAAABJbmNvbnNpc3RlbnQgaW1hZ2Ugc2l6ZXNVbnN1cHBvcnRlZCBmZWF0dXJlOiAAAAA8PBEAFQAAAEludmFsaWQgcGFyYW1ldGVyOiAAXDwRABMAAABNZW1vcnkgbGltaXQgZXhjZWVkZWRJbnZhbGlkIGNodW5rIHNpemVObyBtb3JlIGZyYW1lc2Nsb3N1cmUgaW52b2tlZCByZWN1cnNpdmVseSBvciBhZnRlciBiZWluZyBkcm9wcGVkAC0kEABcAAAAhTUAAAEAAAA3NDMyMTAvLi1n8kJD5SwrKikoJyYlJCMiITggHx4dHP+UpJWIoJut3d6GeujK1+DQ3My7t7OxqLLI4sOauK5+eL+dwqq9oqGWwY6Jq7C5p7pwr8C8nIyPe4WAk4qSct+X+dju7P3j2ub3h7Tx6fb054v18/vrycTw1pi2zbV/G9TT0tXkxamfg6xpUGJgYVHPkXRzkIKZeWuEbW58b1Jsdo1xgXd9pXVcalNIY11BT6bto8e+4dHLxtnbzur4nu//////////////////////////////////////////////////////////////////////////////////////mwEQAGcAAADZAQAAHQAAAJsBEABnAAAA2gEAABkAAACbARAAZwAAADECAAAbAAAAmwEQAGcAAAAyAgAAHQAAABYMEAByAAAAKgAAABMAAADYHRAAaAAAANMAAAAcAAAAHBgQAGkAAABrBgAAGgAAABwYEABpAAAAawYAADYAAAAcGBAAaQAAAF4GAAAoAAAAFgwQAHIAAAAgAAAACQAAABwYEABpAAAAcwcAAD4AQaj9xAAL2RoBAQEBAgICAgMDAwMEBAQEBQUFBQAAAAADAAQABQAGAAcACAAJAAoACwANAA8AEQATABcAGwAfACMAKwAzADsAQwBTAGMAcwCDAKMAwwDjAAIBAAIAAgACHBgQAGkAAADZBwAATQAAABwYEABpAAAAPAYAAC0AAAAcGBAAaQAAADwGAAAZAAAAHBgQAGkAAACEBgAAIAAAAAEBAQAEAAEAAgADAAQABQAHAAkADQARABkAIQAxAEEAYQCBAMEAAQGBAQECAQMBBAEGAQgBDAEQARgBIAEwAUABYAAAHBgQAGkAAAARAgAAKAAAAAAAAIAAQADAACAAoABgAOAAEACQAFAA0AAwALAAcADwAAgAiABIAMgAKACoAGgA6AAYAJgAWADYADgAuAB4APgABACEAEQAxAAkAKQAZADkABQAlABUANQANAC0AHQA9AAMAIwATADMACwArABsAOwAHACcAFwA3AA8ALwAfAD8AAIAggBCAMIAIgCiAGIA4gASAJIAUgDSADIAsgByAPIACgCKAEoAygAqAKoAagDqABoAmgBaANoAOgC6AHoA+gAGAIYARgDGACYApgBmAOYAFgCWAFYA1gA2ALYAdgD2AA4AjgBOAM4ALgCuAG4A7gAeAJ4AXgDeAD4AvgB+AP4AAQCBAEEAwQAhAKEAYQDhABEAkQBRANEAMQCxAHEA8QAJAIkASQDJACkAqQBpAOkAGQCZAFkA2QA5ALkAeQD5AAUAhQBFAMUAJQClAGUA5QAVAJUAVQDVADUAtQB1APUADQCNAE0AzQAtAK0AbQDtAB0AnQBdAN0APQC9AH0A/QADAIMAQwDDACMAowBjAOMAEwCTAFMA0wAzALMAcwDzAAsAiwBLAMsAKwCrAGsA6wAbAJsAWwDbADsAuwB7APsABwCHAEcAxwAnAKcAZwDnABcAlwBXANcANwC3AHcA9wAPAI8ATwDPAC8ArwBvAO8AHwCfAF8A3wA/AL8AfwD/gACAgIBAgMCAIICggGCA4IAQgJCAUIDQgDCAsIBwgPCACICIgEiAyIAogKiAaIDogBiAmIBYgNiAOIC4gHiA+IAEgISARIDEgCSApIBkgOSAFICUgFSA1IA0gLSAdID0gAyAjIBMgMyALICsgGyA7IAcgJyAXIDcgDyAvIB8gPyAAoCCgEKAwoAigKKAYoDigBKAkoBSgNKAMoCygHKA8oAKgIqASoDKgCqAqoBqgOqAGoCagFqA2oA6gLqAeoD6gAaAhoBGgMaAJoCmgGaA5oAWgJaAVoDWgDaAtoB2gPaADoCOgE6AzoAugK6AboDugB6AnoBegN6APoC+gH6A/oABgIGAQYDBgCGAoYBhgOGAEYCRgFGA0YAxgLGAcYDxgAmAiYBJgMmAKYCpgGmA6YAZgJmAWYDZgDmAuYB5gPmABYCFgEWAxYAlgKWAZYDlgBWAlYBVgNWANYC1gHWA9YANgI2ATYDNgC2ArYBtgO2AHYCdgF2A3YA9gL2AfYD9gAOAg4BDgMOAI4CjgGOA44ATgJOAU4DTgDOAs4BzgPOAC4CLgEuAy4ArgKuAa4DrgBuAm4BbgNuAO4C7gHuA+4AHgIeAR4DHgCeAp4BngOeAF4CXgFeA14A3gLeAd4D3gA+Aj4BPgM+AL4CvgG+A74AfgJ+AX4DfgD+Av4B/gP8cGBAAaQAAAIYCAAAdAAAAHBgQAGkAAAAiBAAAFAAAABwYEABpAAAAIwQAABIAAABhc3NlcnRpb24gZmFpbGVkOiBvdXRfcG9zICsgMyA8IG91dF9zbGljZS5sZW4oKQAcGBAAaQAAADYEAAANAAAAYXNzZXJ0aW9uIGZhaWxlZDogKHNvdXJjZV9wb3MgKyAzKSAmIG91dF9idWZfc2l6ZV9tYXNrIDwgb3V0X3NsaWNlLmxlbigpHBgQAGkAAAA3BAAADQAAABwYEABpAAAAOQQAACIAAAAcGBAAaQAAADoEAAAmAAAAHBgQAGkAAAA7BAAAJgAAABwYEABpAAAARAQAACMAAAAcGBAAaQAAAEQEAAAOAAAAYXNzZXJ0aW9uIGZhaWxlZDogb3V0X3BvcyArIDEgPCBvdXRfc2xpY2UubGVuKCkAHBgQAGkAAABGBAAADQAAAGFzc2VydGlvbiBmYWlsZWQ6IChzb3VyY2VfcG9zICsgMSkgJiBvdXRfYnVmX3NpemVfbWFzayA8IG91dF9zbGljZS5sZW4oKRwYEABpAAAARwQAAA0AAAAcGBAAaQAAAEgEAAAiAAAAHBgQAGkAAABIBAAADQAAAGFzc2VydGlvbiBmYWlsZWQ6IG91dF9wb3MgKyAyIDwgb3V0X3NsaWNlLmxlbigpABwYEABpAAAATAQAAA0AAABhc3NlcnRpb24gZmFpbGVkOiAoc291cmNlX3BvcyArIDIpICYgb3V0X2J1Zl9zaXplX21hc2sgPCBvdXRfc2xpY2UubGVuKCkcGBAAaQAAAE0EAAANAAAAHBgQAGkAAABOBAAAIgAAABwYEABpAAAATgQAAA0AAAAcGBAAaQAAAE8EAAAmAAAAHBgQAGkAAABPBAAADQAAABwYEABpAAAALAQAABcAAAAAAAAACAAAAAQAAAC2AQAAdW5yZWFjaGFibGUA6SQQAGMAAAC1AAAAJgAAANYlEABbAAAAbAEAABEAAADWJRAAWwAAAHUBAAARAAAA1iUQAFsAAAB+AQAAEQAAANYlEABbAAAAiAEAABEAAADWJRAAWwAAAI8BAAAfAAAA1iUQAFsAAACPAQAAJQAAANYlEABbAAAAjwEAABQAAADWJRAAWwAAAJcBAABCAAAA1iUQAFsAAACYAQAAHwAAANYlEABbAAAAmAEAABQAAAAIAAgACAQIAAQACAQEAgQAAgAEAgIBAgABAAIB1iUQAFsAAABuAAAADgAAANYlEABbAAAAaAAAAA4AAADWJRAAWwAAAEMAAAAJAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogTm90IGEgcG9zc2libGUgYnl0ZSByb3VuZGVkIHBpeGVsIHdpZHRoAAAAZEcRAFEAAABGERAAXAAAAFEDAAASAAAARhEQAFwAAABCAAAAHQAAAIkMEABwAAAA9QAAACYAAACJDBAAcAAAAOQAAAAeAAAAiQwQAHAAAADmAAAAHgAAAIkMEABwAAAADwEAABsAAACJDBAAcAAAADQBAAAOAAAAiQwQAHAAAAA0AQAASQAAAIkMEABwAAAAiAAAACgAAACJDBAAcAAAAGYBAAAxAAAArSIQAGIAAACeAAAAJwAAAK0iEABiAAAA5QAAACEAAAAOFBAAZAAAAM4CAAAnAAAADhQQAGQAAADjAgAAHgAAAA4UEABkAAAAGAMAACcAAAAOFBAAZAAAADMDAAA3AAAADhQQAGQAAADVBAAAJwAAAA4UEABkAAAAhQcAACcAAAAOFBAAZAAAAKAFAAAnAAAADhQQAGQAAAD9BQAAJwAAAA4UEABkAAAAcgYAACcAAAAOFBAAZAAAAIoGAAAnAAAADhQQAGQAAADMBAAAHAAAAA4UEABkAAAAzQUAACcAAAAOFBAAZAAAAHUHAAAcAAAADhQQAGQAAAB1BwAALwAAAA4UEABkAAAAcwcAACYAAAAOFBAAZAAAAHEHAAAZAAAADhQQAGQAAABqBwAAMAAAAA4UEABkAAAAaAcAAC4AAAAOFBAAZAAAADgGAAAnAAAADhQQAGQAAACDBQAAJwAAAA4UEABkAAAA+AQAACcAAAAOFBAAZAAAAAUFAAAnAAAADhQQAGQAAADmBQAAJwAAAA4UEABkAAAAOQcAAA4AAAAOFBAAZAAAADsHAAAOAAAADhQQAGQAAABGBQAAJwAAAA4UEABkAAAATAcAABwAAAAOFBAAZAAAAEwHAAA8AAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogVW5yZWNvZ25pemVkIGNodW5rICBzaG91bGQgaGF2ZSBiZWVuIGNhdWdodCBpbiBzdGFydF9jaHVua0BKEQA9AAAAfUoRACcAAAAOFBAAZAAAAGkEAAASAAAADhQQAGQAAAAnBAAAKgAAAA4UEABkAAAApgYAACcAAAAOFBAAZAAAALgCAAA8AAAADhQQAGQAAAC6AgAAHwAAAGFzc2VydGlvbiBmYWlsZWQ6ICg4IC8gYml0X2RlcHRoIGFzIHVzaXplICogY2hhbm5lbHMpLnNhdHVyYXRpbmdfbXVsKGlucHV0LmxlbigpKSA+PQogICAgb3V0cHV0LmxlbigpAAAAeBMQAGcAAABiAAAABQAAAGlucHV0IGZvciB1bnBhY2sgYml0cyBpcyBub3QgZW1wdHkAAHgTEABnAAAAfgAAACUAAABhc3NlcnRpb24gZmFpbGVkOiBtYXRjaGVzIShiaXRfZGVwdGgsIDEgfCAyIHwgNCB8IDgpeBMQAGcAAABfAAAABQAAAHgTEABnAAAAtgAAABoAQYyYxQALOgEAAAC3AQAAuAEAALkBAAAQAAAAeBMQAGcAAABCAAAAEQAAAAAAAAAEAAAABAAAALoBAAC7AQAAuwEAQdCYxQALxRsBAAAAvAEAAL0BAAC+AQAAeBMQAGcAAABVAAAAHAAAAHgTEABnAAAAVQAAAAkAAAB4ExAAZwAAAL0AAAAaAAAAeBMQAGcAAADBAAAAGQAAAENhbGxlciBzaG91bGQgdmVyaWZ56RYQAG8AAAAoAAAAKwAAAOkWEABvAAAASgAAAA0AAADpFhAAbwAAAEoAAAA9AAAA6RYQAG8AAABWAAAAHQAAAOkWEABvAAAARAAAAA0AAADpFhAAbwAAAGcAAAAiAAAA6RYQAG8AAABoAAAADwAAAOkWEABvAAAAYAAAACIAAAAAAAAAAAQAAAEAAAC/AQAAwAEAAMABAAAAAAAAAAQAAAEAAADBAQAAwgEAAMIBAAAAAAAAAAQAAAEAAADDAQAAxAEAAMQBAAB4ExAAZwAAAFAAAAATAAAAQ2h1bmtUeXBlAAAAAAAAAAQAAAABAAAAxQEAAHR5cGUAAAAAAQAAAAEAAADGAQAAY3JpdGljYWxwcml2YXRlcmVzZXJ2ZWRzYWZlY29weU9uZVR3b0ZvdXJFaWdodFNpeHRlZW5HcmF5c2NhbGVSZ2JJbmRleGVkR3JheXNjYWxlQWxwaGFSZ2JhAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAHdyb25nIGRhdGEgc2l6ZSwgZXhwZWN0ZWQgIGdvdCAAOE4RABoAAABSThEABQAAAEVuZCBvZiBpbWFnZSBoYXMgYmVlbiByZWFjaGVkQSBmYXRhbCBkZWNvZGluZyBlcnJvciBoYXMgYmVlbiBlbmNvdW50ZWQgZWFybGllckNSQyBlcnJvcjogZXhwZWN0ZWQgMHggaGF2ZSAweCB3aGlsZSBkZWNvZGluZyAgY2h1bmsuALZOEQAWAAAAzE4RAAgAAADUThEAEAAAAOROEQAHAAAASW52YWxpZCBQTkcgc2lnbmF0dXJlLmZjVEwgY2h1bmsgbWlzc2luZyBiZWZvcmUgZmRBVCBjaHVuay5JREFUIG9yIGZkQVQgY2h1bmsgaXMgbWlzc2luZy4gY2h1bmsgYXBwZWFyZWQgYmVmb3JlIElIRFIgY2h1bmsAAAEAAAAAAAAAZU8RACEAAABDaHVuayAgaXMgaW52YWxpZCBhZnRlciBJREFUIGNodW5rLgCYTxEABgAAAJ5PEQAdAAAAIGlzIGludmFsaWQgYmVmb3JlIFBMVEUgY2h1bmsuAACYTxEABgAAAMxPEQAeAAAAIGlzIGludmFsaWQgYWZ0ZXIgUExURSBjaHVuay4AAACYTxEABgAAAPxPEQAdAAAAIG11c3QgYXBwZWFyIGJldHdlZW4gUExURSBhbmQgSURBVCBjaHVua3MuAACYTxEABgAAACxQEQAqAAAAIG11c3QgYXBwZWFyIGF0IG1vc3Qgb25jZS4AAJhPEQAGAAAAaFARABoAAABTZXF1ZW5jZSBpcyBub3QgaW4gb3JkZXIsIGV4cGVjdGVkICMgZ290ICMAAJRQEQAkAAAAuFARAAYAAADsXBEAAQAAAE5vdCBlbm91Z2ggcGFsZXR0ZSBlbnRyaWVzLCBleHBlY3QgANhQEQAjAAAAUk4RAAUAAADsXBEAAQAAAFRoZSBzaXplIG9mIHRoZSBzQklUIGNodW5rIHNob3VsZCBiZSAgYnl0ZShzKSwgYnV0ICBieXRlKHMpIHdlcmUgcHJvdmlkZWQgZm9yIHRoZSAgY29sb3IgdHlwZS4AABRREQAlAAAAOVERAA4AAABHUREAHwAAAGZREQAMAAAASW52YWxpZCBzQklUIHZhbHVlIC4gSXQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIHRoZSBzYW1wbGUgZGVwdGggAAAAlFERABMAAACnUREAPgAAAOxcEQABAAAATWlzc2luZyBwYWxldHRlIG9mIGluZGV4ZWQgaW1hZ2UuSW52YWxpZCBjb2xvci9kZXB0aCBjb21iaW5hdGlvbiBpbiBoZWFkZXI6IC8AAAAhUhEAKwAAAExSEQABAAAAVHJhbnNwYXJlbmN5IGNodW5rIGZvdW5kIGZvciBjb2xvciB0eXBlIGBSEQAoAAAA7FwRAAEAAABJbnZhbGlkIGltYWdlIGRpbWVuc2lvbnNJbnZhbGlkIGJpdCBkZXB0aCAAALBSEQASAAAA7FwRAAEAAABJbnZhbGlkIGNvbG9yIHR5cGUgANRSEQATAAAA7FwRAAEAAABJbnZhbGlkIGRpc3Bvc2Ugb3AgAPhSEQATAAAA7FwRAAEAAABJbnZhbGlkIGJsZW5kIG9wIAAAABxTEQARAAAA7FwRAAEAAABJbnZhbGlkIHBoeXNpY2FsIHBpeGVsIHNpemUgdW5pdCAAAABAUxEAIQAAAOxcEQABAAAASW52YWxpZCBzUkdCIHJlbmRlcmluZyBpbnRlbnQgAAB0UxEAHgAAAOxcEQABAAAAVW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QgAKRTEQAbAAAA7FwRAAEAAABVbmtub3duIGZpbHRlciBtZXRob2QgAADQUxEAFgAAAOxcEQABAAAAVW5rbm93biBpbnRlcmxhY2UgbWV0aG9kIAAAAPhTEQAZAAAA7FwRAAEAAABTdWIgZnJhbWUgaXMgb3V0LW9mLWJvdW5kcy5Db3JydXB0IGRlZmxhdGUgc3RyZWFtLiBJREFUIG9yIGZEQVQgY2h1bmsgZG9lcyBub3QgaGF2ZSBlbm91Z2ggZGF0YSBmb3IgaW1hZ2UuVW5yZXByZXNlbnRhYmxlIGRhdGEgaW4gdEVYdCBjaHVuay4AAACOVBEAIwAAAEtleXdvcmQgZW1wdHkgb3IgbG9uZ2VyIHRoYW4gNzkgYnl0ZXMuAAC8VBEAJgAAAE5vIG51bGwgc2VwYXJhdG9yIGluIHRFWHQgY2h1bmsu7FQRACAAAABJbnZhbGlkIGNvbXByZXNzZWQgdGV4dCBkYXRhLgAAABRVEQAdAAAAT3V0IG9mIGRlY29tcHJlc3Npb24gc3BhY2UuIFRyeSB3aXRoIGEgbGFyZ2VyIGxpbWl0LjxVEQA0AAAAVXNpbmcgYW4gdW5yZWNvZ25pemVkIGJ5dGUgYXMgY29tcHJlc3Npb24gbWV0aG9kLgAAAHhVEQAxAAAAVXNpbmcgYSBmbGFnIHRoYXQgaXMgbm90IDAgb3IgMjU1IGFzIGEgY29tcHJlc3Npb24gZmxhZyBmb3IgaVRYdCBjaHVuay4AtFURAEcAAABObyBjb21wcmVzc2lvbiBmbGFnIGluIHRoZSBpVFh0IGNodW5rLgAABFYRACYAAABmZEFUIGNodW5rIHNob3J0ZXIgdGhhbiA0IGJ5dGVzVW5leHBlY3RlZCByZXN0YXJ0IG9mICBjaHVuayBzZXF1ZW5jZVNWEQAWAAAAaVYRAA8AAABDaHVuayBsZW5ndGggd3Jvbmc6IIhWEQAUAAAAVW5yZWNvZ25pemVkIGNyaXRpY2FsIGNodW5rOiAAAACkVhEAHQAAAEJhZCBnYW1tYSB2YWx1ZS5saW1pdHMgYXJlIGV4Y2VlZGVkQmFkWmxpYkhlYWRlckluc3VmZmljaWVudElucHV0SW52YWxpZEJsb2NrVHlwZUludmFsaWRVbmNvbXByZXNzZWRCbG9ja0xlbmd0aEludmFsaWRIbGl0SW52YWxpZEhkaXN0SW52YWxpZENvZGVMZW5ndGhSZXBlYXRCYWRDb2RlTGVuZ3RoSHVmZm1hblRyZWVCYWRMaXRlcmFsTGVuZ3RoSHVmZm1hblRyZWVCYWREaXN0YW5jZUh1ZmZtYW5UcmVlSW52YWxpZExpdGVyYWxMZW5ndGhDb2RlSW52YWxpZERpc3RhbmNlQ29kZUlucHV0U3RhcnRzV2l0aFJ1bkRpc3RhbmNlVG9vRmFyQmFja1dyb25nQ2hlY2tzdW1FeHRyYUlucHV0MAAAAAEnEAAqAAAAHgEA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dgMAABkAAABrIRAAYgAAAHcDAAAZAAAAayEQAGIAAAB4AwAAGQAAAGshEABiAAAAeQMAABkAAABrIRAAYgAAANQDAAARAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAABAAIAAwAEAAUABgAHAAgACQD//////////////////woACwAMAA0ADgAPAP////////////////////////////////////////////////////////////////////8KAAsADAANAA4ADwD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AABAAIAAwAEAAUABgAHAAgACQAP//////////////////oACwAMAA0ADgAPAA/////////////////////////////////////////////////////////////////////6AAsADAANAA4ADwAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2shEABiAAAAswEAABoAAABrIRAAYgAAAAACAAATAAAAayEQAGIAAAAFAgAAMwAAAGshEABiAAAACQIAAD4AAABrIRAAYgAAAA8CAAA6AAAAayEQAGIAAACrAQAAPQAAAGshEABiAAAApgEAAEUAAAAgYXQgbGluZSAAAABCCRAAYwAAAPcBAAAhAAAAQgkQAGMAAAD7AQAADAAAACBjb2x1bW4gQgkQAGMAAAACAgAAIQAAAEIJEABjAAAACwIAACoAAABCCRAAYwAAAA8CAAAsAAAAQgkQAGMAAAAUAgAACQAAAGluZi1pbmZOYU4AALQAAAAMAAAABAAAAIkBAACKAQAA0gEAQZiexgAL5Q0BAAAAuAAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkAwhUQAEsAAAAFCwAADgAAAPYQEABPAAAAPAYAABQAAAD2EBAATwAAADwGAAAhAAAA9hAQAE8AAAAwBgAAFAAAAPYQEABPAAAAMAYAACEAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAACojxEAsAAAALEAAACyAAAAsAAAALMAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmlzX2NoYXJfYm91bmRhcnkobmV3X2xlbilFcnJvcigsIGxpbmU6ICwgY29sdW1uOiAUkBEABgAAABqQEQAIAAAAIpARAAoAAABeBxIAAQAAAGludmFsaWQgdmFsdWU6IABMkBEADwAAABqTEQALAAAARU9GIHdoaWxlIHBhcnNpbmcgYSBsaXN0RU9GIHdoaWxlIHBhcnNpbmcgYW4gb2JqZWN0RU9GIHdoaWxlIHBhcnNpbmcgYSBzdHJpbmdFT0Ygd2hpbGUgcGFyc2lu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AAB2JRAAXwAAAL4FAAA1AAAAdiUQAF8AAAC+BQAAJQAAAHYlEABfAAAAvAUAADoAAABWUDggaW50ZXItcHJlZGljdGlvboQBkQACA5wBgIGjAoKDgAN2JRAAXwAAADUFAAAvAAAAgAHnAIECeAGCAzACBAZZA4MFcwSFhnEFhAd4BocImAeIiXAIgAGYAIECswGCA0ACBAZ+A4MFqgSFhnYFhAcuBocIRgeIiV8IgAGvAIECRQGCA48CBAZQA4MFVQSFhlIFhAdIBocImweIiWcIgAE4AIECOgGCAwoCBAarA4MF2gSFhr0FhAcRBocIDQeIiZgIgAGQAIECRwGCAwoCBAYmA4MFqwSFhtUFhAeQBocIIgeIiRoIgAFyAIECGgGCAxECBAajA4MFLASFhsMFhAcVBocICgeIia0IgAF5AIECGAGCA1ACBAbDA4MFGgSFhj4FhAcsBocIQAeIiVUIgAGqAIECLgGCAzcCBAYTA4MFiASFhqAFhAchBocIzgeIiUcIgAE/AIECFAGCAwgCBAZyA4MFcgSFhtAFhAcMBocICQeIieIIgAFRAIECKAGCAwsCBAZgA4MFtgSFhlQFhAcdBocIEAeIiSQIgAGGAIECtwGCA1kCBAaJA4MFYgSFhmUFhAdqBocIpQeIiZQIgAFIAIECuwGCA2QCBAaCA4MFnQSFhm8FhAcgBocISweIiVAIgAFCAIECZgGCA6cCBAZjA4MFSgSFhj4FhAcoBocI6geIiYAIgAEpAIECNQGCAwkCBAayA4MF8QSFho0FhAcaBocICAeIiWsIgAFoAIECTwGCAwwCBAYbA4MF2QSFhv8FhAdXBocIEQeIiQcIgAFKAIECKwGCAxoCBAaSA4MFSQSFhqYFhAcxBocIFweIiZ0IgAFBAIECJgGCA2kCBAagA4MFMwSFhjQFhAcfBocIcweIiYAIgAFXAIECRAGCA0cCBAYsA4MFcgSFhjMFhAcPBocIugeIiRcIgAEvAIECKQGCAw4CBAZuA4MFtgSFhrcFhAcVBocIEQeIicIIgAFCAIECLQGCAxkCBAZmA4MFxQSFhr0FhAcXBocIEgeIiRYIgAFYAIECWAGCA5MCBAaWA4MFKgSFhi4FhActBocIxAeIic0IgAErAIECYQGCA7cCBAZ1A4MFVQSFhiYFhAcjBocIsweIiT0IgAEnAIECNQGCA8gCBAZXA4MFGgSFhhUFhAcrBocI6AeIiasIgAE4AIECIgGCAzMCBAZoA4MFcgSFhmYFhAcdBocIXQeIiU0IgAFrAIECNgGCAyACBAYaA4MFMwSFhgEFhAdRBocIKweIiR8IgAEnAIECHAGCA1UCBAarA4MFOgSFhqUFhAdaBocIYgeIiUAIgAEiAIECFgGCA3QCBAbOA4MFFwSFhiIFhAcrBocIpgeIiUkIgAFEAIECGQGCA2oCBAYWA4MFQASFhqsFhAckBocI4QeIiXIIgAEiAIECEwGCAxUCBAZmA4MFhASFhrwFhAcQBocITAeIiXwIgAE+AIECEgGCA04CBAZfA4MFVQSFhjkFhAcyBocIMAeIiTMIgAHBAIECZQGCAyMCBAafA4MF1wSFhm8FhAdZBocILgeIiW8IgAE8AIEClAGCAx8CBAasA4MF2wSFhuQFhAcVBocIEgeIiW8IgAFwAIECcQGCA00CBAZVA4MFswSFhv8FhAcmBocIeAeIiXIIgAEoAIECKgGCAwECBAbEA4MF9QSFhtEFhAcKBocIGQeIiW0IgAFkAIECUAGCAwgCBAYrA4MFmgSFhgEFhAczBocIGgeIiUcIgAFYAIECKwGCAx0CBAaMA4MFpgSFhtUFhAclBocIKweIiZoIgAE9AIECPwGCAx4CBAabA4MFQwSFhi0FhAdEBocIAQeIidEIgAGOAIECTgGCA04CBAYQA4MF/wSFhoAFhAciBocIxQeIiasIgAEpAIECKAGCAwUCBAZmA4MF0wSFhrcFhAcEBocIAQeIid0IgAEzAIECMgGCAxECBAaoA4MF0QSFhsAFhAcXBocIGQeIiVIIgAF9AIECYgGCAyoCBAZYA4MFaASFhlUFhAd1BocIrweIiVIIgAFfAIECVAGCAzUCBAZZA4MFgASFhmQFhAdxBocIZQeIiS0IgAFLAIECTwGCA3sCBAYvA4MFMwSFhoAFhAdRBocIqweIiQEIgAE5AIECEQGCAwUCBAZHA4MFZgSFhjkFhAc1BocIKQeIiTEIgAFzAIECFQGCAwICBAYKA4MFZgSFhv8FhAemBocIFweIiQYIgAEmAIECIQGCAw0CBAZ5A4MFOQSFhkkFhAcaBocIAQeIiVUIgAEpAIECCgGCA0MCBAaKA4MFTQSFhm4FhAdaBocILweIiXIIgAFlAIECHQGCAxACBAYKA4MFVQSFhoAFhAdlBocIxAeIiRoIgAE5AIECEgGCAwoCBAZmA4MFZgSFhtUFhAciBocIFAeIiSsIgAF1AIECFAGCAw8CBAYkA4MFowSFhoAFhAdEBocIAQeIiRoIgAGKAIECHwGCAyQCBAarA4MFGwSFhqYFhAcmBocILAeIieUIgAFDAIECVwGCAzoCBAapA4MFUgSFhnMFhAcaBocIOweIibMIgAE/AIECOwGCA1oCBAa0A4MFOwSFhqYFhAddBocISQeIiZoIgAEoAIECKAGCAxUCBAZ0A4MFjwSFhtEFhAciBocIJweIia8IgAE5AIECLgGCAxYCBAYYA4MFgASFhgEFhAc2BocIEQeIiSUIgAEvAIECDwGCAxACBAa3A4MFIgSFht8FhAcxBocILQeIibcIgAEuAIECEQGCAyECBAa3A4MFBgSFhmIFhAcPBocIIAeIibcIgAFBAIECIAGCA0kCBAZzA4MFHASFhoAFhAcXBocIgAeIic0IgAEoAIECAwGCAwkCBAZzA4MFMwSFhsAFhAcSBocIBgeIid8IgAFXAIECJQGCAwkCBAZzA4MFOwSFhk0FhAdABocIFQeIiS8IgAFoAIECNwGCAywCBAbaA4MFCQSFhjYFhAc1BocIggeIieIIgAFAAIECWgGCA0YCBAbNA4MFKASFhikFhAcXBocIGgeIiTkIgAE2AIECOQGCA3ACBAa4A4MFBQSFhikFhAcmBocIpgeIidUIgAEeAIECIgGCAxoCBAaFA4MFmASFhnQFhAcKBocIIAeIiYYIgAFLAIECIAGCAwwCBAYzA4MFwASFhv8FhAegBocIKweIiTMIgAEnAIECEwGCAzUCBAbdA4MFGgSFhnIFhAcgBocISQeIif8IgAEfAIECCQGCA0ECBAbqA4MFAgSFhg8FhAcBBocIdgeIiUkIgAFYAIECHwGCAyMCBAZDA4MFZgSFhlUFhAc3BocIugeIiVUIgAE4AIECFQGCAxcCBAZvA4MFOwSFhs0FhActBocIJQeIicAIgAE3AIECJgGCA0YCBAZ8A4MFSQSFhmYFhAcBBocIIgeIiWIIgAFmAIECPQGCA0cCBAYlA4MFIgSFhjUFhAcfBocI8weIicAIgAFFAIECPAGCA0cCBAYmA4MFSQSFhncFhAccBocI3geIiSUIgAFEAIECLQGCA4ACBAYiA4MFAQSFhi8FhAcLBocI9QeIiasIgAE+AIECEQGCAxMCBAZGA4MFkgSFhlUFhAc3BocIPgeIiUYIgAFLAIECDwGCAwkCBAYJA4MFQASFhv8FhAe4BocIdweIiRAIgAElAIECKwGCAyUCBAaaA4MFZASFhqMFhAdVBocIoAeIiQEIgAE/AIECCQGCA1wCBAaIA4MFHASFhkAFhAcgBocIyQeIiVUIgAFWAIECBgGCAxwCBAYFA4MFQASFhv8FhAcZBocI+AeIiQEIgAE4AIECCAGCAxECBAaEA4MFiQSFhv8FhAc3BocIdAeIiYAIgAE6AIECDwGCAxQCBAZSA4MFhwSFhjkFhAcaBocIeQeIiSgIgAGkAIECMgGCAx8CBAaJA4MFmgSFhoUFhAcZBocIIweIidoIgAEzAIECZwGCAywCBAaDA4MFgwSFhnsFhAcfBocIBgeIiZ4IgAFWAIECKAGCA0ACBAaHA4MFlASFhuAFhActBocItweIiYAIgAEWAIECGgGCAxECBAaDA4MF8ASFhpoFhAcOBocIAQeIidEIgAFTAIECDAGCAw0CBAY2A4MFwASFhv8FhAdEBocILweIiRwIgAEtAIECEAGCAxUCBAZbA4MFQASFht4FhAcHBocIAQeIicUIgAE4AIECFQGCAycCBAabA4MFPASFhooFhAcXBocIZgeIidUIgAFVAIECGgGCA1UCBAZVA4MFgASFhoAFhAcgBocIkgeIiasIgAESAIECCwGCAwcCBAY/A4MFkASFhqsFhAcEBocIBAeIifYIgAEjAIECGwGCAwoCBAaSA4MFrgSFhqsFhAcMBocIGgeIiYAIgAG+AIECUAGCAyMCBAZjA4MFtASFhlAFhAd+BocINgeIiS0IgAFVAIECfgGCAy8CBAZXA4MFsASFhjMFhAcpBocIFAeIiSAIgAFlAIECSwGCA4ACBAaLA4MFdgSFhpIFhAd0BocIgAeIiVUIgAE4AIECKQGCAw8CBAawA4MF7ASFhlUFhAclBocICQeIiT4IgAGSAIECJAGCAxMCBAYeA4MFqwSFhv8FhAdhBocIGweIiRQIgAFHAIECHgGCAxECBAZ3A4MFdgSFhv8FhAcRBocIEgeIiYoIgAFlAIECJgGCAzwCBAaKA4MFNwSFhkYFhAcrBocIGgeIiY4IgAGKAIECLQGCAz0CBAY+A4MF2wSFhgEFhAdRBocIvAeIiUAIgAEgAIECKQGCAxQCBAZ1A4MFlwSFho4FhAcUBocIFQeIiaMIgAFwAIECEwGCAwwCBAY9A4MFwwSFhoAFhAcwBocIBAeIiRgIdiUQAF8AAAA/BQAAJQAAAIABjgCBAnIBgoO3AnYlEABfAAAAUQUAABEAAAB2JRAAXwAAAFIFAAARAAAAdiUQAF8AAABTBQAAEQAAAP///////////////////////////////////////////7D2////////////3/H8///////////5/f3////////////0/P//////////6v7+///////////9///////////////2/v//////////7/3+///////////+//7////////////4/v//////////+//+///////////////////////////9/v//////////+/7+///////////+//7////////////+/f/+////////+v/+//7////////+/////////////////////////////////////////////////////////9n/////////////4fzx/f///v/////q+vH6/f/9/v/////+////////////3/7+///////////u/f7+///////////4/v//////////+f7////////////////////////////9////////////9/7////////////////////////////9/v///////////P/////////////////////////////+/v///////////f/////////////////////////////+/f//////////+v/////////////+/////////////////////////////////////////////////////////7r7+v//////////6vv0/v/////////7+/P9/v/+///////9/v//////////7P3+///////////7/f3+/v/////////+/v///////////v7+///////////////////////////+/////////////v7////////////+/////////////////////////////v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////j/////////////+v78/v/////////4/vn9///////////9/f//////////9v39///////////8/vv+/v/////////+/P//////////+P79///////////9//7+///////////7/v//////////9fv+///////////9/f7////////////7/f///////////P3+/////////////v/////////////8////////////+f/+//////////////7//////////////f//////////+v///////////////////////////////////////////v///////////////////////////3YlEABfAAAAVwcAABcAAACLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAKIAYED/gIEBv8DggXkBIOE2wUHCIAGhYaABwkKgAiHiIAJiYqACosBvQCAAoEBgQPyAgQG/wOCBeMEg4TVBQcI/waFhtsHCQqACIeIgAmJioAKiwFqAIACfgGBA+MCBAb8A4IF1gSDhNEFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJiAYED+AIEBv8DggXsBIOE4gUHCP8GhYb/BwkKgAiHiIAJiYqACosBtQCAAoUBgQPuAgQG/gOCBd0Eg4TqBQcI/waFhpoHCQqACIeIgAmJioAKiwFOAIAChgGBA8oCBAb3A4IFxgSDhLQFBwj/BoWG2wcJCoAIh4iACYmKgAqLAQEAgAK5AYED+QIEBv8DggXzBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBuACAApYBgQP3AgQG/wOCBewEg4TgBQcIgAaFhoAHCQqACIeIgAmJioAKiwFNAIACbgGBA9gCBAb/A4IF7ASDhOYFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAJlAYED+wIEBv8DggXxBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBqgCAAosBgQPxAgQG/AOCBewEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwElAIACdAGBA8QCBAbzA4IF5ASDhP8FBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgALMAYED/gIEBv8DggX1BIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBzwCAAqABgQP6AgQG/wOCBe4Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwFmAIACZwGBA+cCBAb/A4IF0wSDhKsFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKYAYED/AIEBv8DggXwBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBsQCAAocBgQPzAgQG/wOCBeoEg4ThBQcIgAaFhoAHCQqACIeIgAmJioAKiwFQAIACgQGBA9MCBAb/A4IFwgSDhOAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9gCAAgEBgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwH/AIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcYAgAIjAYED7QIEBt8DggXBBIOEuwUHCKIGhYagBwkKkQiHiJsJiYo+CosBgwCAAi0BgQPGAgQG3QOCBawEg4SwBQcI3AaFhp0HCQr8CIeI3QmJigEKiwFEAIACLwGBA5ICBAbQA4IFlQSDhKcFBwjdBoWGogcJCv8Ih4jfCYmKgAqLAQEAgAKVAYED8QIEBv8DggXdBIOE4AUHCP8GhYb/BwkKgAiHiIAJiYqACosBuACAAo0BgQPqAgQG/QOCBd4Eg4TcBQcI/waFhscHCQqACIeIgAmJioAKiwFRAIACYwGBA7UCBAbyA4IFsASDhL4FBwj5BoWGygcJCv8Ih4j/CYmKgAqLAQEAgAKBAYED6AIEBv0DggXWBIOExQUHCPIGhYbEBwkK/wiHiP8JiYqACosBYwCAAnkBgQPSAgQG+gOCBckEg4TGBQcI/waFhsoHCQqACIeIgAmJioAKiwEXAIACWwGBA6MCBAbyA4IFqgSDhLsFBwj3BoWG0gcJCv8Ih4j/CYmKgAqLAQEAgALIAYED9gIEBv8DggXqBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBbQCAArIBgQPxAgQG/wOCBecEg4T1BQcI/waFhv8HCQqACIeIgAmJioAKiwEsAIACggGBA8kCBAb9A4IFzQSDhMAFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAKEAYED7wIEBvsDggXbBIOE0QUHCP8GhYalBwkKgAiHiIAJiYqACosBXgCAAogBgQPhAgQG+wOCBdoEg4S+BQcI/waFhv8HCQqACIeIgAmJioAKiwEWAIACZAGBA64CBAb1A4IFugSDhKEFBwj/BoWGxwcJCoAIh4iACYmKgAqLAQEAgAK2AYED+QIEBv8DggXoBIOE6wUHCIAGhYaABwkKgAiHiIAJiYqACosBfACAAo8BgQPxAgQG/wOCBeMEg4TqBQcIgAaFhoAHCQqACIeIgAmJioAKiwEjAIACTQGBA7UCBAb7A4IFwQSDhNMFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAKdAYED9wIEBv8DggXsBIOE5wUHCP8GhYb/BwkKgAiHiIAJiYqACosBeQCAAo0BgQPrAgQG/wOCBeEEg4TjBQcI/waFhv8HCQqACIeIgAmJioAKiwEtAIACYwGBA7wCBAb7A4IFwwSDhNkFBwj/BoWG4AcJCoAIh4iACYmKgAqLAQEAgAIBAYED+wIEBv8DggXVBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBywCAAgEBgQP4AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGJAIACAQGBA7ECBAb/A4IF4ASDhP8FBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAIJAYED+AIEBvsDggXPBIOE0AUHCP8GhYbABwkKgAiHiIAJiYqACosBrwCAAg0BgQPgAgQG8wOCBcEEg4S5BQcI+QaFhsYHCQr/CIeI/wmJioAKiwFJAIACEQGBA6sCBAbdA4IFoQSDhLMFBwjsBoWGpwcJCv8Ih4jqCYmKgAqLAQEAgAJfAYED9wIEBv0DggXUBIOEtwUHCP8GhYb/BwkKgAiHiIAJiYqACosB7wCAAloBgQP0AgQG+gOCBdMEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwGbAIACTQGBA8MCBAb4A4IFvASDhMMFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAIYAYED7wIEBvsDggXaBIOE2wUHCP8GhYbNBwkKgAiHiIAJiYqACosByQCAAjMBgQPbAgQG/wOCBcQEg4S6BQcIgAaFhoAHCQqACIeIgAmJioAKiwFFAIACLgGBA74CBAbvA4IFyQSDhNoFBwj/BoWG5AcJCoAIh4iACYmKgAqLAQEAgAK/AYED+wIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB3wCAAqUBgQP5AgQG/wOCBdUEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGNAIACfAGBA/gCBAb/A4IF/wSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIQAYED+AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBvgCAAiQBgQPmAgQG/wOCBewEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGVAIACAQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgALiAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9wCAAsABgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwHwAIACgAGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKGAYED/AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB1QCAAj4BgQP6AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwE3AIACXQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcoAgAIYAYED1QIEBusDggW6BIOEvwUHCNwGhYagBwkK8AiHiK8JiYr/CosBfgCAAiYBgQO2AgQG6AOCBakEg4S4BQcI5AaFhq4HCQr/CIeIuwmJioAKiwE9AIACLgGBA4oCBAbbA4IFlwSDhLIFBwjwBoWGqgcJCv8Ih4jYCYmKgAqLAQEAgAJwAYED5gIEBvoDggXHBIOEvwUHCPcGhYafBwkK/wiHiP8JiYqACosBpgCAAm0BgQPkAgQG/AOCBdMEg4TXBQcI/waFhq4HCQqACIeIgAmJioAKiwEnAIACTQGBA6ICBAboA4IFrASDhLQFBwj1BoWGsgcJCv8Ih4j/CYmKgAqLAQEAgAI0AYED3AIEBvYDggXGBIOExwUHCPkGhYbcBwkK/wiHiP8JiYqACosBfACAAkoBgQO/AgQG8wOCBbcEg4TBBQcI+gaFht0HCQr/CIeI/wmJioAKiwEYAIACRwGBA4ICBAbbA4IFmgSDhKoFBwjzBoWGtgcJCv8Ih4j/CYmKgAqLAQEAgAK2AYED4QIEBvkDggXbBIOE8AUHCP8GhYbgBwkKgAiHiIAJiYqACosBlQCAApYBgQPiAgQG/AOCBdgEg4TNBQcI/waFhqsHCQqACIeIgAmJioAKiwEcAIACbAGBA6oCBAbyA4IFtwSDhMIFBwj+BoWG3wcJCv8Ih4j/CYmKgAqLAQEAgAJRAYED5gIEBvwDggXMBIOEywUHCP8GhYbABwkKgAiHiIAJiYqACosBewCAAmYBgQPRAgQG9wOCBbwEg4TEBQcI/waFhukHCQqACIeIgAmJioAKiwEUAIACXwGBA5kCBAbzA4IFpASDhK0FBwj/BoWGywcJCoAIh4iACYmKgAqLAQEAgALeAYED+AIEBv8DggXYBIOE1QUHCIAGhYaABwkKgAiHiIAJiYqACosBqACAAq8BgQP2AgQG/AOCBesEg4TNBQcI/waFhv8HCQqACIeIgAmJioAKiwEvAIACdAGBA9cCBAb/A4IF0wSDhNQFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJ5AYED7AIEBv0DggXUBIOE1gUHCP8GhYb/BwkKgAiHiIAJiYqACosBjQCAAlQBgQPVAgQG/AOCBckEg4TKBQcI/waFhtsHCQqACIeIgAmJioAKiwEqAIACUAGBA6ACBAbwA4IFogSDhLkFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9ACAAgEBgQP/AgQG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AAAA8gEAAAAAAAABAAAAAQAAAPMBAAAAAAAABAAAAAQAAACqAQAAQ2ljcHByaW1hcmllc3RyYW5zZmVybWF0cml4ZnVsbF9yYW5nZURpbWVuc2lvbkVycm9ySW5zdWZmaWNpZW50TWVtb3J5AAAAAAAAACAAAAAIAAAA9AEAAAAAAAAEAAAABAAAAPUBAABsaW1pdHNzdXBwb3J0ZWQA9gEAAAwAAAAEAAAA9wEAAFBhcmFtZXRlckVycm9yQ2FwYWNpdHlPdmVyZmxvdwAAAAAAAAQAAAAEAAAA+AEAAEFsbG9jRXJybGF5b3V0Q3NwbGF0KGNlbnRlcjogAAAATtURAA8AAABv0xEACwAAAHrTEQAHAAAAgdMRAAoAAACL0xEADgAAAF4HEgABAAAARXhhY3ROYW1lUGF0aEV4dGVuc2lvblVua25vd25pbnZhbGlkIHNlZWsgdG8gYSBuZWdhdGl2ZSBvciBvdmVyZmxvd2luZyBwb3NpdGlvbgCt1REAMgAAABQAAACmJhAAWgAAAD0AAAAkAAAARW1wdHlJbnZhbGlkRGlnaXRQb3NPdmVyZmxvd05lZ092ZXJmbG93WmVybwAAAAAABAAAAAQAAAD5AQAAVW5zdXBwb3J0ZWRFcnJvclBuZ0pwZWdHaWZXZWJQUG5tVGlmZlRnYURkc0JtcEljb0hkck9wZW5FeHJGYXJiZmVsZEF2aWZRb2lQY3gAAAAAAAAABAAAAAQAAAD6AQAAUGFyc2VJbnRFcnJvckE4TDFMYTFSZ2IxUmdiYTFMMkxhMlJnYjJSZ2JhMkw0TGE0UmdiNFJnYmE0UmdiNXgxTDhMYThSZ2I4UmdiYThMMTZMYTE2UmdiMTZSZ2JhMTZCZ3I4QmdyYThSZ2IzMkZSZ2JhMzJGQ215azhDbXlrMTZMaW1pdFN1cHBvcnREaW1lbnNpb25NaXNtYXRjaEZhaWxlZEFscmVhZHkAAAAAAAAEAAAABAAAAPsBAABSZ2JDaWNwUmVxdWlyZWRHZW5lcmljTm9Nb3JlRGF0YQAAAAAEAAAAAQAAAPwBAABDaWNwTWlzbWF0Y2hleHBlY3RlZGZvdW5kAAAAAAAAAAgAAAAEAAAAxwAAAAAAAAAIAAAABAAAAHAAAADHAAAAoNcRALAAAADIAAAAsgAAALAAAACzAAAA/QEAACgAAAAI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ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9ybWlkID4gbGVu/wASAAkAAABzdGRvdXRmYWlsZWQgcHJpbnRpbmcgdG8gAAAAFgESABMAAABd/BEAAgAAANoQEAAbAAAAjQQAAAkAAABvcGVyYXRpb24gc3VjY2Vzc2Z1bG9uZS10aW1lIGluaXRpYWxpemF0aW9uIG1heSBub3QgYmUgcGVyZm9ybWVkIHJlY3Vyc2l2ZWx5YAESADgAAABjYW5ub3QgcmVjdXJzaXZlbHkgYWNxdWlyZSBtdXRleKABEgAgAAAA6AcQACwAAAATAAAACQAAAGxvY2sgY291bnQgb3ZlcmZsb3cgaW4gcmVlbnRyYW50IG11dGV4AADlFBAAJgAAACMBAAAtAAAA7xoQACMAAADXAAAAFAAAAO8aEAAjAAAA1wAAADEAAABMYXp5TG9jayBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAAwAhIALgAAAMMUEAAhAAAAlwEAAAUAAABmYWlsZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIHRocmVhZCBJRDogYml0c3BhY2UgZXhoYXVzdGVkAHgCEgA3AAAAph4QAB0AAADUBAAADQAAADoKAACFAQAADAAAAAQAAABIAgAASQIAAEoCAAAAAAAACAAAAAQAAABLAgAATAIAAE0CAABOAgAATwIAABAAAAAEAAAAUAIAAFECAABSAgAAUwIAAGNhbm5vdCBtb2RpZnkgdGhlIHBhbmljIGhvb2sgZnJvbSBhIHBhbmlja2luZyB0aHJlYWQcAxIANAAAAA4WEAAcAAAAkAAAAAkAAAAAAAAABAAAAAQAAABUAgAAV291bGRCbG9jayAob3MgZXJyb3IgAAAAAQAAAAAAAACCAxIACwAAAF4HEgABAAAA2hAQABsAAABcAwAAFAAAAE5vdEZvdW5kUGVybWlzc2lvbkRlbmllZENvbm5lY3Rpb25SZWZ1c2VkQ29ubmVjdGlvblJlc2V0SG9zdFVucmVhY2hhYmxlTmV0d29ya1VucmVhY2hhYmxlQ29ubmVjdGlvbkFib3J0ZWROb3RDb25uZWN0ZWRBZGRySW5Vc2VBZGRyTm90QXZhaWxhYmxlTmV0d29ya0Rvd25Ccm9rZW5QaXBlQWxyZWFkeUV4aXN0c05vdEFEaXJlY3RvcnlJc0FEaXJlY3RvcnlEaXJlY3RvcnlOb3RFbXB0eVJlYWRPbmx5RmlsZXN5c3RlbUZpbGVzeXN0ZW1Mb29wU3RhbGVOZXR3b3JrRmlsZUhhbmRsZUludmFsaWRJbnB1dEludmFsaWREYXRhVGltZWRPdXRXcml0ZVplcm9TdG9yYWdlRnVsbE5vdFNlZWthYmxlUXVvdGFFeGNlZWRlZEZpbGVUb29MYXJnZVJlc291cmNlQnVzeUV4ZWN1dGFibGVGaWxlQnVzeURlYWRsb2NrQ3Jvc3Nlc0RldmljZXNUb29NYW55TGlua3NJbnZhbGlkRmlsZW5hbWVBcmd1bWVudExpc3RUb29Mb25nSW50ZXJydXB0ZWRVbnN1cHBvcnRlZFVuZXhwZWN0ZWRFb2ZPdXRPZk1lbW9yeUluUHJvZ3Jlc3NPdGhlclVuY2F0ZWdvcml6ZWR1bnN1cHBvcnRlZCBiYWNrdHJhY2VkaXNhYmxlZCBiYWNrdHJhY2UAXhsQABwAAACKAQAAHQAAAFUCAAAQAAAABAAAAFYCAABXAgAAcGFuaWNrZWQgYXQgAQAAAAAAAABQ/BEAAQAAAFD8EQABAAAAAAAAAAgAAAAEAAAAWAIAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAACgiEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAAAoIhAAKgAAALcEAAANAAAA4BMQAC0AAAAWAQAAKQAAAIUBAAAMAAAABAAAAFkCAABudWxsIHBvaW50ZXIgcGFzc2VkIHRvIHJ1c3RyZWN1cnNpdmUgdXNlIG9mIGFuIG9iamVjdCBkZXRlY3RlZCB3aGljaCB3b3VsZCBsZWFkIHRvIHVuc2FmZSBhbGlhc2luZyBpbiBydXN0SnNWYWx1ZSgpAFYHEgAIAAAAXgcSAAEAAAB/FhAAaQAAAHwAAAARAAAAfxYQAGkAAACJAAAAEQAAAFpJUDY0IGZvb3RlciBpbmRpY2F0ZXMgbW9yZSBmaWxlcyBvbiB0aGlzIGRpc2sgdGhhbiBpbiB0aGUgd2hvbGUgYXJjaGl2ZUludmFsaWQgY2VudHJhbCBkaXJlY3Rvcnkgc2l6ZSBvciBvZmZzZXRmYWlsZWQgdG8gZmlsbCB3aG9sZSBidWZmZXIAAAgSABsAAAAlAAAAAgAAABwIEgBDUkMzMiBjaGVja3N1bSBmYWlsZWQgb24gVW5pY29kZSBleHRyYSBmaWVsZFVuaWNvZGUgZXh0cmEgZmllbGQgaXMgdG9vIHNtYWxsRXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkIGlzIGVtcHR5AAAA/g8QAHQAAABKAAAAJAAAAGZsYWdzIGFuZCBsZW4gZG9uJ3QgbWF0Y2ggaW4gZXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgYXR0cmlidXRlIHNpemVOVEZTIGV4dHJhIGZpZWxkIGhhcyBhbiB1bnN1cHBvcnRlZCBhdHRyaWJ1dGUgdGFnTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAAQGAAA6AAAARXh0cmEgZmllbGQgY29udGVudCBleGNlZWRzIGRlY2xhcmVkIGxlbmd0aADOIRAAWQAAAAYGAAA7AAAAWklQNjQgZXh0cmEgZmllbGQgdHJ1bmNhdGVkWklQNjQgZXh0cmEtZGF0YSBmaWVsZCBpcyB0aGUgd3JvbmcgbGVuZ3RoAAAAziEQAFkAAABeBgAAEgAAAEFFUyBleHRyYSBmaWVsZCB0cnVuY2F0ZWRJbnZhbGlkIEFFUyBlbmNyeXB0aW9uIHN0cmVuZ3RoSW52YWxpZCBBRVMgdmVuZG9yIHZlcnNpb25JbnZhbGlkIEFFUyB2ZW5kb3JBRVMgZXh0cmEgZGF0YSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAIgGAAAfAAAARXh0cmEgZmllbGQgY29udGVudCB0cnVuY2F0ZWRFeHRyYSBmaWVsZCBoZWFkZXIgdHJ1bmNhdGVkSW52YWxpZCBjaGVja3N1bQBBkJbIAAvjBAEAAAC0AQAAKCkAAMQeEABQAAAAKgIAABEAAABpL28gZXJyb3I6IAAsCxIACwAAAGludmFsaWQgWmlwIGFyY2hpdmU6IAAAAEALEgAVAAAAdW5zdXBwb3J0ZWQgWmlwIGFyY2hpdmU6IAAAAGALEgAZAAAAc3BlY2lmaWVkIGZpbGUgbm90IGZvdW5kIGluIGFyY2hpdmVwcm92aWRlZCBwYXNzd29yZCBpcyBpbmNvcnJlY3QAAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAFV0ZjhFcnJvcnZhbGlkX3VwX3RvZXJyb3JfbGVuAAAAWgIAAAwAAAAEAAAAWwIAAAAAAAAEAAAABAAAAFwCAABGcm9tVXRmOEVycm9yYnl0ZXNlcnJvck5vbmVTb21lACYcEABvAAAAwwAAAAkAAAAmHBAAbwAAALwAAAAqAAAAJhwQAG8AAAC5AAAAKgAAAJsBEABnAAAAdAEAACkAAACbARAAZwAAAHkBAAAcAAAAmwEQAGcAAAB5AQAALQAA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AGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUQERIACAcJBgoFCwQMAw0CDgEPAABZFxAAYAAAAJMAAAAJAAAAAABgB1AAAAgQAAAIcwAUCB8AEgdwAAAIMAAACMAAAAkKABAHYAAACCAAAAigAAAJAAAACIAAAAhAAAAI4AAACQYAEAdYAAAIGAAACJAAAAk7ABMHeAAACDgAAAjQAAAJEQARB2gAAAgoAAAIsAAACQgAAAiIAAAISAAACPAAAAkEABAHVAAACBQAAAjjABUIKwATB3QAAAg0AAAIyAAACQ0AEQdkAAAIJAAACKgAAAkEAAAIhAAACEQAAAjoAAAJCAAQB1wAAAgcAAAImAAACVMAFAd8AAAIPAAACNgAAAkXABIHbAAACCwAAAi4AAAJDAAACIwAAAhMAAAI+AAACQMAEAdSAAAIEgAACKMAFQgjABMHcgAACDIAAAjEAAAJCwARB2IAAAgiAAAIpAAACQIAAAiCAAAIQgAACOQAAAkHABAHWgAACBoAAAiUAAAJQwAUB3oAAAg6AAAI1AAACRMAEgdqAAAIKgAACLQAAAkKAAAIigAACEoAAAj0AAAJBQAQB1YAAAgWAAAIAABACDMAEwd2AAAINgAACMwAAAkPABEHZgAACCYAAAisAAAJBgAACIYAAAhGAAAI7AAACQkAEAdeAAAIHgAACJwAAAljABQHfgAACD4AAAjcAAAJGwASB24AAAguAAAIvAAACQ4AAAiOAAAITgAACPwAAAkAAGAHUQAACBEAAAiDABUIHwASB3EAAAgxAAAIwgAACQoAEAdhAAAIIQAACKIAAAkBAAAIgQAACEEAAAjiAAAJBgAQB1kAAAgZAAAIkgAACTsAEwd5AAAIOQAACNIAAAkRABEHaQAACCkAAAiyAAAJCQAACIkAAAhJAAAI8gAACQQAEAdVAAAIFQAACAIBEAgrABMHdQAACDUAAAjKAAAJDQARB2UAAAglAAAIqgAACQUAAAiFAAAIRQAACOoAAAkIABAHXQAACB0AAAiaAAAJUwAUB30AAAg9AAAI2gAACRcAEgdtAAAILQAACLoAAAkNAAAIjQAACE0AAAj6AAAJAwAQB1MAAAgTAAAIwwAVCCMAEwdzAAAIMwAACMYAAAkLABEHYwAACCMAAAimAAAJAwAACIMAAAhDAAAI5gAACQcAEAdbAAAIGwAACJYAAAlDABQHewAACDsAAAjWAAAJEwASB2sAAAgrAAAItgAACQsAAAiLAAAISwAACPYAAAkFABAHVwAACBcAAAgAAEAIMwATB3cAAAg3AAAIzgAACQ8AEQdnAAAIJwAACK4AAAkHAAAIhwAACEcAAAjuAAAJCQAQB18AAAgfAAAIngAACWMAFAd/AAAIPwAACN4AAAkbABIHbwAACC8AAAi+AAAJDwAACI8AAAhPAAAI/gAACQAAYAdQAAAIEAAACHMAFAgfABIHcAAACDAAAAjBAAAJCgAQB2AAAAggAAAIoQAACQAAAAiAAAAIQAAACOEAAAkGABAHWAAACBgAAAiRAAAJOwATB3gAAAg4AAAI0QAACREAEQdoAAAIKAAACLEAAAkIAAAIiAAACEgAAAjxAAAJBAAQB1QAAAgUAAAI4wAVCCsAEwd0AAAINAAACMkAAAkNABEHZAAACCQAAAipAAAJBAAACIQAAAhEAAAI6QAACQgAEAdcAAAIHAAACJkAAAlTABQHfAAACDwAAAjZAAAJFwASB2wAAAgsAAAIuQAACQwAAAiMAAAITAAACPkAAAkDABAHUgAACBIAAAijABUIIwATB3IAAAgyAAAIxQAACQsAEQdiAAAIIgAACKUAAAkCAAAIggAACEIAAAjlAAAJBwAQB1oAAAgaAAAIlQAACUMAFAd6AAAIOgAACNUAAAkTABIHagAACCoAAAi1AAAJCgAACIoAAAhKAAAI9QAACQUAEAdWAAAIFgAACAAAQAgzABMHdgAACDYAAAjNAAAJDwARB2YAAAgmAAAIrQAACQYAAAiGAAAIRgAACO0AAAkJABAHXgAACB4AAAidAAAJYwAUB34AAAg+AAAI3QAACRsAEgduAAAILgAACL0AAAkOAAAIjgAACE4AAAj9AAAJAABgB1EAAAgRAAAIgwAVCB8AEgdxAAAIMQAACMMAAAkKABAHYQAACCEAAAijAAAJAQAACIEAAAhBAAAI4wAACQYAEAdZAAAIGQAACJMAAAk7ABMHeQAACDkAAAjTAAAJEQARB2kAAAgpAAAIswAACQkAAAiJAAAISQAACPMAAAkEABAHVQAACBUAAAgCARAIKwATB3UAAAg1AAAIywAACQ0AEQdlAAAIJQAACKsAAAkFAAAIhQAA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", self.location.href);\n }\n const imports = __wbg_get_imports();\n if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) {\n module_or_path = fetch(module_or_path);\n }\n const { instance } = await __wbg_load(await module_or_path, imports);\n return __wbg_finalize_init(instance);\n }\n var ch2 = {};\n var wk = function(c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + \';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})\'\n ], { type: "text/javascript" }))));\n w.onmessage = function(e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err2 = new Error(ed[0]);\n err2["code"] = ed[1];\n err2.stack = ed[2];\n cb(err2, null);\n } else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n };\n var u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n var fleb = new u8([\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 0,\n /* unused */\n 0,\n 0,\n /* impossible */\n 0\n ]);\n var fdeb = new u8([\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 2,\n 2,\n 3,\n 3,\n 4,\n 4,\n 5,\n 5,\n 6,\n 6,\n 7,\n 7,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n /* unused */\n 0,\n 0\n ]);\n var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n var freb = function(eb, start) {\n var b = new u16(31);\n for (var i2 = 0; i2 < 31; ++i2) {\n b[i2] = start += 1 << eb[i2 - 1];\n }\n var r = new i32(b[30]);\n for (var i2 = 1; i2 < 30; ++i2) {\n for (var j = b[i2]; j < b[i2 + 1]; ++j) {\n r[j] = j - b[i2] << 5 | i2;\n }\n }\n return { b, r };\n };\n var _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n fl[28] = 258, revfl[258] = 28;\n var _b = freb(fdeb, 0), fd = _b.b;\n var rev = new u16(32768);\n for (var i = 0; i < 32768; ++i) {\n var x = (i & 43690) >> 1 | (i & 21845) << 1;\n x = (x & 52428) >> 2 | (x & 13107) << 2;\n x = (x & 61680) >> 4 | (x & 3855) << 4;\n rev[i] = ((x & 65280) >> 8 | (x & 255) << 8) >> 1;\n }\n var hMap = function(cd, mb, r) {\n var s = cd.length;\n var i2 = 0;\n var l = new u16(mb);\n for (; i2 < s; ++i2) {\n if (cd[i2])\n ++l[cd[i2] - 1];\n }\n var le = new u16(mb);\n for (i2 = 1; i2 < mb; ++i2) {\n le[i2] = le[i2 - 1] + l[i2 - 1] << 1;\n }\n var co;\n if (r) {\n co = new u16(1 << mb);\n var rvb = 15 - mb;\n for (i2 = 0; i2 < s; ++i2) {\n if (cd[i2]) {\n var sv = i2 << 4 | cd[i2];\n var r_1 = mb - cd[i2];\n var v = le[cd[i2] - 1]++ << r_1;\n for (var m = v | (1 << r_1) - 1; v <= m; ++v) {\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n } else {\n co = new u16(s);\n for (i2 = 0; i2 < s; ++i2) {\n if (cd[i2]) {\n co[i2] = rev[le[cd[i2] - 1]++] >> 15 - cd[i2];\n }\n }\n }\n return co;\n };\n var flt = new u8(288);\n for (var i = 0; i < 144; ++i)\n flt[i] = 8;\n for (var i = 144; i < 256; ++i)\n flt[i] = 9;\n for (var i = 256; i < 280; ++i)\n flt[i] = 7;\n for (var i = 280; i < 288; ++i)\n flt[i] = 8;\n var fdt = new u8(32);\n for (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n var flrm = /* @__PURE__ */ hMap(flt, 9, 1);\n var fdrm = /* @__PURE__ */ hMap(fdt, 5, 1);\n var max = function(a) {\n var m = a[0];\n for (var i2 = 1; i2 < a.length; ++i2) {\n if (a[i2] > m)\n m = a[i2];\n }\n return m;\n };\n var bits = function(d, p, m) {\n var o = p / 8 | 0;\n return (d[o] | d[o + 1] << 8) >> (p & 7) & m;\n };\n var bits16 = function(d, p) {\n var o = p / 8 | 0;\n return (d[o] | d[o + 1] << 8 | d[o + 2] << 16) >> (p & 7);\n };\n var shft = function(p) {\n return (p + 7) / 8 | 0;\n };\n var slc = function(v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n return new u8(v.subarray(s, e));\n };\n var ec = [\n "unexpected EOF",\n "invalid block type",\n "invalid length/literal",\n "invalid distance",\n "stream finished",\n "no stream handler",\n ,\n "no callback",\n "invalid UTF-8 data",\n "extra field too long",\n "date not in range 1980-2099",\n "filename too long",\n "stream finishing",\n "invalid zip data"\n // determined by unknown compression method\n ];\n var err = function(ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n };\n var inflt = function(dat, st, buf, dict) {\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n var resize = noBuf || st.i != 2;\n var noSt = st.i;\n if (noBuf)\n buf = new u8(sl * 3);\n var cbuf = function(l2) {\n var bl = buf.length;\n if (l2 > bl) {\n var nbuf = new u8(Math.max(bl * 2, l2));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n var tbts = sl * 8;\n do {\n if (!lm) {\n final = bits(dat, pos, 1);\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n var s = shft(pos) + 4, l = dat[s - 4] | dat[s - 3] << 8, t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + l);\n buf.set(dat.subarray(s, t), bt);\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n } else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n var ldt = new u8(tl);\n var clt = new u8(19);\n for (var i2 = 0; i2 < hcLen; ++i2) {\n clt[clim[i2]] = bits(dat, pos + i2 * 3, 7);\n }\n pos += hcLen * 3;\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n var clm = hMap(clt, clb, 1);\n for (var i2 = 0; i2 < tl; ) {\n var r = clm[bits(dat, pos, clbmsk)];\n pos += r & 15;\n var s = r >> 4;\n if (s < 16) {\n ldt[i2++] = s;\n } else {\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i2 - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i2++] = c;\n }\n }\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n lbt = max(lt);\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n } else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (; ; lpos = pos) {\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n } else {\n var add = sym - 254;\n if (sym > 264) {\n var i2 = sym - 257, b = fleb[i2];\n add = bits(dat, pos, (1 << b) - 1) + fl[i2];\n pos += b;\n }\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n };\n var et = /* @__PURE__ */ new u8(0);\n var mrg = function(a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n };\n var wcln = function(fn, fnStr, td2) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf("[") + 1, st.lastIndexOf("]")).replace(/\\s+/g, "").split(",");\n for (var i2 = 0; i2 < dt.length; ++i2) {\n var v = dt[i2], k = ks[i2];\n if (typeof v == "function") {\n fnStr += ";" + k + "=";\n var st_1 = v.toString();\n if (v.prototype) {\n if (st_1.indexOf("[native code]") != -1) {\n var spInd = st_1.indexOf(" ", 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf("(", spInd));\n } else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ";" + k + ".prototype." + t + "=" + v.prototype[t].toString();\n }\n } else\n fnStr += st_1;\n } else\n td2[k] = v;\n }\n return fnStr;\n };\n var ch = [];\n var cbfs = function(v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n };\n var wrkr = function(fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = "", td_1 = {}, m = fns.length - 1;\n for (var i2 = 0; i2 < m; ++i2)\n fnStr = wcln(fns[i2], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td2 = mrg({}, ch[id].e);\n return wk(ch[id].c + ";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=" + init.toString() + "}", id, td2, cbfs(td2), cb);\n };\n var bInflt = function() {\n return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt];\n };\n var pbf = function(msg) {\n return postMessage(msg, [msg.buffer]);\n };\n var gopt = function(o) {\n return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n };\n };\n var cbify = function(dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function(err2, dat2) {\n w.terminate();\n cb(err2, dat2);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function() {\n w.terminate();\n };\n };\n var b2 = function(d, b) {\n return d[b] | d[b + 1] << 8;\n };\n var b4 = function(d, b) {\n return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0;\n };\n var b8 = function(d, b) {\n return b4(d, b) + b4(d, b + 4) * 4294967296;\n };\n var gzs = function(d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, "invalid gzip data");\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n };\n var Inflate = /* @__PURE__ */ function() {\n function Inflate2(opts, cb) {\n if (typeof opts == "function")\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate2.prototype.e = function(c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate2.prototype.c = function(final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, this.s.p / 8 | 0), this.s.p &= 7;\n };\n Inflate2.prototype.push = function(chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate2;\n }();\n function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != "function")\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function(ev) {\n return pbf(inflateSync(ev.data[0], gopt(ev.data[1])));\n }, 1, cb);\n }\n function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n }\n var Gunzip = /* @__PURE__ */ function() {\n function Gunzip2(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n Gunzip2.prototype.push = function(chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n } else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n Inflate.prototype.c.call(this, final);\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip2;\n }();\n var td = typeof TextDecoder != "undefined" && /* @__PURE__ */ new TextDecoder();\n try {\n td.decode(et, { stream: true });\n } catch (e) {\n }\n var dutf8 = function(d) {\n for (var r = "", i2 = 0; ; ) {\n var c = d[i2++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i2 + eb > d.length)\n return { s: r, r: slc(d, i2 - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i2++] & 63) << 12 | (d[i2++] & 63) << 6 | d[i2++] & 63) - 65536, r += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023);\n } else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | d[i2++] & 63);\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i2++] & 63) << 6 | d[i2++] & 63);\n }\n };\n function strFromU8(dat, latin1) {\n if (latin1) {\n var r = "";\n for (var i2 = 0; i2 < dat.length; i2 += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i2, i2 + 16384));\n return r;\n } else if (td) {\n return td.decode(dat);\n } else {\n var _a2 = dutf8(dat), s = _a2.s, r = _a2.r;\n if (r.length)\n err(8);\n return s;\n }\n }\n var slzh = function(d, b) {\n return b + 30 + b2(d, b + 26) + b2(d, b + 28);\n };\n var zh = function(d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a2 = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a2[0], su = _a2[1], off = _a2[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n };\n var z64e = function(d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n };\n var mt = typeof queueMicrotask == "function" ? queueMicrotask : typeof setTimeout == "function" ? setTimeout : function(fn) {\n fn();\n };\n function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != "function")\n err(7);\n var term = [];\n var tAll = function() {\n for (var i3 = 0; i3 < term.length; ++i3)\n term[i3]();\n };\n var files = {};\n var cbd = function(a, b) {\n mt(function() {\n cb(a, b);\n });\n };\n mt(function() {\n cbd = cb;\n });\n var e = data.length - 22;\n for (; b4(data, e) != 101010256; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 101075792;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function(i3) {\n var _a2 = zh(data, o, z), c_1 = _a2[0], sc = _a2[1], su = _a2[2], fn = _a2[3], no = _a2[4], off = _a2[5], b = slzh(data, off);\n o = no;\n var cbl = function(e2, d) {\n if (e2) {\n tAll();\n cbd(e2, null);\n } else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n } catch (e2) {\n cbl(e2, null);\n }\n } else\n term.push(inflate(infl, { size: su }, cbl));\n } else\n cbl(err(14, "unknown compression type " + c_1, 1), null);\n } else\n cbl(null, null);\n };\n for (var i2 = 0; i2 < c; ++i2) {\n _loop_3(i2);\n }\n } else\n cbd(null, {});\n return tAll;\n }\n function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 101010256; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 101075792;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i2 = 0; i2 < c; ++i2) {\n var _a2 = zh(data, o, z), c_2 = _a2[0], sc = _a2[1], su = _a2[2], fn = _a2[3], no = _a2[4], off = _a2[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, "unknown compression type " + c_2);\n }\n }\n return files;\n }\n /**\n * @license\n * Copyright 2010-2025 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\n const REVISION = "180";\n const NoColorSpace = "";\n const SRGBColorSpace = "srgb";\n const LinearSRGBColorSpace = "srgb-linear";\n const LinearTransfer = "linear";\n const SRGBTransfer = "srgb";\n function clamp(value, min, max2) {\n return Math.max(min, Math.min(max2, value));\n }\n function euclideanModulo(n, m) {\n return (n % m + m) % m;\n }\n function lerp(x2, y, t) {\n return (1 - t) * x2 + t * y;\n }\n class Quaternion {\n /**\n * Constructs a new quaternion.\n *\n * @param {number} [x=0] - The x value of this quaternion.\n * @param {number} [y=0] - The y value of this quaternion.\n * @param {number} [z=0] - The z value of this quaternion.\n * @param {number} [w=1] - The w value of this quaternion.\n */\n constructor(x2 = 0, y = 0, z = 0, w = 1) {\n this.isQuaternion = true;\n this._x = x2;\n this._y = y;\n this._z = z;\n this._w = w;\n }\n /**\n * Interpolates between two quaternions via SLERP. This implementation assumes the\n * quaternion data are managed in flat arrays.\n *\n * @param {Array} dst - The destination array.\n * @param {number} dstOffset - An offset into the destination array.\n * @param {Array} src0 - The source array of the first quaternion.\n * @param {number} srcOffset0 - An offset into the first source array.\n * @param {Array} src1 - The source array of the second quaternion.\n * @param {number} srcOffset1 - An offset into the second source array.\n * @param {number} t - The interpolation factor in the range `[0,1]`.\n * @see {@link Quaternion#slerp}\n */\n static slerpFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t) {\n let x0 = src0[srcOffset0 + 0], y0 = src0[srcOffset0 + 1], z0 = src0[srcOffset0 + 2], w0 = src0[srcOffset0 + 3];\n const x1 = src1[srcOffset1 + 0], y1 = src1[srcOffset1 + 1], z1 = src1[srcOffset1 + 2], w1 = src1[srcOffset1 + 3];\n if (t === 0) {\n dst[dstOffset + 0] = x0;\n dst[dstOffset + 1] = y0;\n dst[dstOffset + 2] = z0;\n dst[dstOffset + 3] = w0;\n return;\n }\n if (t === 1) {\n dst[dstOffset + 0] = x1;\n dst[dstOffset + 1] = y1;\n dst[dstOffset + 2] = z1;\n dst[dstOffset + 3] = w1;\n return;\n }\n if (w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1) {\n let s = 1 - t;\n const cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1, dir = cos >= 0 ? 1 : -1, sqrSin = 1 - cos * cos;\n if (sqrSin > Number.EPSILON) {\n const sin = Math.sqrt(sqrSin), len = Math.atan2(sin, cos * dir);\n s = Math.sin(s * len) / sin;\n t = Math.sin(t * len) / sin;\n }\n const tDir = t * dir;\n x0 = x0 * s + x1 * tDir;\n y0 = y0 * s + y1 * tDir;\n z0 = z0 * s + z1 * tDir;\n w0 = w0 * s + w1 * tDir;\n if (s === 1 - t) {\n const f = 1 / Math.sqrt(x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0);\n x0 *= f;\n y0 *= f;\n z0 *= f;\n w0 *= f;\n }\n }\n dst[dstOffset] = x0;\n dst[dstOffset + 1] = y0;\n dst[dstOffset + 2] = z0;\n dst[dstOffset + 3] = w0;\n }\n /**\n * Multiplies two quaternions. This implementation assumes the quaternion data are managed\n * in flat arrays.\n *\n * @param {Array} dst - The destination array.\n * @param {number} dstOffset - An offset into the destination array.\n * @param {Array} src0 - The source array of the first quaternion.\n * @param {number} srcOffset0 - An offset into the first source array.\n * @param {Array} src1 - The source array of the second quaternion.\n * @param {number} srcOffset1 - An offset into the second source array.\n * @return {Array} The destination array.\n * @see {@link Quaternion#multiplyQuaternions}.\n */\n static multiplyQuaternionsFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1) {\n const x0 = src0[srcOffset0];\n const y0 = src0[srcOffset0 + 1];\n const z0 = src0[srcOffset0 + 2];\n const w0 = src0[srcOffset0 + 3];\n const x1 = src1[srcOffset1];\n const y1 = src1[srcOffset1 + 1];\n const z1 = src1[srcOffset1 + 2];\n const w1 = src1[srcOffset1 + 3];\n dst[dstOffset] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n dst[dstOffset + 1] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n dst[dstOffset + 2] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n dst[dstOffset + 3] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n return dst;\n }\n /**\n * The x value of this quaternion.\n *\n * @type {number}\n * @default 0\n */\n get x() {\n return this._x;\n }\n set x(value) {\n this._x = value;\n this._onChangeCallback();\n }\n /**\n * The y value of this quaternion.\n *\n * @type {number}\n * @default 0\n */\n get y() {\n return this._y;\n }\n set y(value) {\n this._y = value;\n this._onChangeCallback();\n }\n /**\n * The z value of this quaternion.\n *\n * @type {number}\n * @default 0\n */\n get z() {\n return this._z;\n }\n set z(value) {\n this._z = value;\n this._onChangeCallback();\n }\n /**\n * The w value of this quaternion.\n *\n * @type {number}\n * @default 1\n */\n get w() {\n return this._w;\n }\n set w(value) {\n this._w = value;\n this._onChangeCallback();\n }\n /**\n * Sets the quaternion components.\n *\n * @param {number} x - The x value of this quaternion.\n * @param {number} y - The y value of this quaternion.\n * @param {number} z - The z value of this quaternion.\n * @param {number} w - The w value of this quaternion.\n * @return {Quaternion} A reference to this quaternion.\n */\n set(x2, y, z, w) {\n this._x = x2;\n this._y = y;\n this._z = z;\n this._w = w;\n this._onChangeCallback();\n return this;\n }\n /**\n * Returns a new quaternion with copied values from this instance.\n *\n * @return {Quaternion} A clone of this instance.\n */\n clone() {\n return new this.constructor(this._x, this._y, this._z, this._w);\n }\n /**\n * Copies the values of the given quaternion to this instance.\n *\n * @param {Quaternion} quaternion - The quaternion to copy.\n * @return {Quaternion} A reference to this quaternion.\n */\n copy(quaternion) {\n this._x = quaternion.x;\n this._y = quaternion.y;\n this._z = quaternion.z;\n this._w = quaternion.w;\n this._onChangeCallback();\n return this;\n }\n /**\n * Sets this quaternion from the rotation specified by the given\n * Euler angles.\n *\n * @param {Euler} euler - The Euler angles.\n * @param {boolean} [update=true] - Whether the internal `onChange` callback should be executed or not.\n * @return {Quaternion} A reference to this quaternion.\n */\n setFromEuler(euler, update = true) {\n const x2 = euler._x, y = euler._y, z = euler._z, order = euler._order;\n const cos = Math.cos;\n const sin = Math.sin;\n const c1 = cos(x2 / 2);\n const c2 = cos(y / 2);\n const c3 = cos(z / 2);\n const s1 = sin(x2 / 2);\n const s2 = sin(y / 2);\n const s3 = sin(z / 2);\n switch (order) {\n case "XYZ":\n this._x = s1 * c2 * c3 + c1 * s2 * s3;\n this._y = c1 * s2 * c3 - s1 * c2 * s3;\n this._z = c1 * c2 * s3 + s1 * s2 * c3;\n this._w = c1 * c2 * c3 - s1 * s2 * s3;\n break;\n case "YXZ":\n this._x = s1 * c2 * c3 + c1 * s2 * s3;\n this._y = c1 * s2 * c3 - s1 * c2 * s3;\n this._z = c1 * c2 * s3 - s1 * s2 * c3;\n this._w = c1 * c2 * c3 + s1 * s2 * s3;\n break;\n case "ZXY":\n this._x = s1 * c2 * c3 - c1 * s2 * s3;\n this._y = c1 * s2 * c3 + s1 * c2 * s3;\n this._z = c1 * c2 * s3 + s1 * s2 * c3;\n this._w = c1 * c2 * c3 - s1 * s2 * s3;\n break;\n case "ZYX":\n this._x = s1 * c2 * c3 - c1 * s2 * s3;\n this._y = c1 * s2 * c3 + s1 * c2 * s3;\n this._z = c1 * c2 * s3 - s1 * s2 * c3;\n this._w = c1 * c2 * c3 + s1 * s2 * s3;\n break;\n case "YZX":\n this._x = s1 * c2 * c3 + c1 * s2 * s3;\n this._y = c1 * s2 * c3 + s1 * c2 * s3;\n this._z = c1 * c2 * s3 - s1 * s2 * c3;\n this._w = c1 * c2 * c3 - s1 * s2 * s3;\n break;\n case "XZY":\n this._x = s1 * c2 * c3 - c1 * s2 * s3;\n this._y = c1 * s2 * c3 - s1 * c2 * s3;\n this._z = c1 * c2 * s3 + s1 * s2 * c3;\n this._w = c1 * c2 * c3 + s1 * s2 * s3;\n break;\n default:\n console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: " + order);\n }\n if (update === true) this._onChangeCallback();\n return this;\n }\n /**\n * Sets this quaternion from the given axis and angle.\n *\n * @param {Vector3} axis - The normalized axis.\n * @param {number} angle - The angle in radians.\n * @return {Quaternion} A reference to this quaternion.\n */\n setFromAxisAngle(axis, angle) {\n const halfAngle = angle / 2, s = Math.sin(halfAngle);\n this._x = axis.x * s;\n this._y = axis.y * s;\n this._z = axis.z * s;\n this._w = Math.cos(halfAngle);\n this._onChangeCallback();\n return this;\n }\n /**\n * Sets this quaternion from the given rotation matrix.\n *\n * @param {Matrix4} m - A 4x4 matrix of which the upper 3x3 of matrix is a pure rotation matrix (i.e. unscaled).\n * @return {Quaternion} A reference to this quaternion.\n */\n setFromRotationMatrix(m) {\n const te = m.elements, m11 = te[0], m12 = te[4], m13 = te[8], m21 = te[1], m22 = te[5], m23 = te[9], m31 = te[2], m32 = te[6], m33 = te[10], trace = m11 + m22 + m33;\n if (trace > 0) {\n const s = 0.5 / Math.sqrt(trace + 1);\n this._w = 0.25 / s;\n this._x = (m32 - m23) * s;\n this._y = (m13 - m31) * s;\n this._z = (m21 - m12) * s;\n } else if (m11 > m22 && m11 > m33) {\n const s = 2 * Math.sqrt(1 + m11 - m22 - m33);\n this._w = (m32 - m23) / s;\n this._x = 0.25 * s;\n this._y = (m12 + m21) / s;\n this._z = (m13 + m31) / s;\n } else if (m22 > m33) {\n const s = 2 * Math.sqrt(1 + m22 - m11 - m33);\n this._w = (m13 - m31) / s;\n this._x = (m12 + m21) / s;\n this._y = 0.25 * s;\n this._z = (m23 + m32) / s;\n } else {\n const s = 2 * Math.sqrt(1 + m33 - m11 - m22);\n this._w = (m21 - m12) / s;\n this._x = (m13 + m31) / s;\n this._y = (m23 + m32) / s;\n this._z = 0.25 * s;\n }\n this._onChangeCallback();\n return this;\n }\n /**\n * Sets this quaternion to the rotation required to rotate the direction vector\n * `vFrom` to the direction vector `vTo`.\n *\n * @param {Vector3} vFrom - The first (normalized) direction vector.\n * @param {Vector3} vTo - The second (normalized) direction vector.\n * @return {Quaternion} A reference to this quaternion.\n */\n setFromUnitVectors(vFrom, vTo) {\n let r = vFrom.dot(vTo) + 1;\n if (r < 1e-8) {\n r = 0;\n if (Math.abs(vFrom.x) > Math.abs(vFrom.z)) {\n this._x = -vFrom.y;\n this._y = vFrom.x;\n this._z = 0;\n this._w = r;\n } else {\n this._x = 0;\n this._y = -vFrom.z;\n this._z = vFrom.y;\n this._w = r;\n }\n } else {\n this._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n this._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n this._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n this._w = r;\n }\n return this.normalize();\n }\n /**\n * Returns the angle between this quaternion and the given one in radians.\n *\n * @param {Quaternion} q - The quaternion to compute the angle with.\n * @return {number} The angle in radians.\n */\n angleTo(q) {\n return 2 * Math.acos(Math.abs(clamp(this.dot(q), -1, 1)));\n }\n /**\n * Rotates this quaternion by a given angular step to the given quaternion.\n * The method ensures that the final quaternion will not overshoot `q`.\n *\n * @param {Quaternion} q - The target quaternion.\n * @param {number} step - The angular step in radians.\n * @return {Quaternion} A reference to this quaternion.\n */\n rotateTowards(q, step) {\n const angle = this.angleTo(q);\n if (angle === 0) return this;\n const t = Math.min(1, step / angle);\n this.slerp(q, t);\n return this;\n }\n /**\n * Sets this quaternion to the identity quaternion; that is, to the\n * quaternion that represents "no rotation".\n *\n * @return {Quaternion} A reference to this quaternion.\n */\n identity() {\n return this.set(0, 0, 0, 1);\n }\n /**\n * Inverts this quaternion via {@link Quaternion#conjugate}. The\n * quaternion is assumed to have unit length.\n *\n * @return {Quaternion} A reference to this quaternion.\n */\n invert() {\n return this.conjugate();\n }\n /**\n * Returns the rotational conjugate of this quaternion. The conjugate of a\n * quaternion represents the same rotation in the opposite direction about\n * the rotational axis.\n *\n * @return {Quaternion} A reference to this quaternion.\n */\n conjugate() {\n this._x *= -1;\n this._y *= -1;\n this._z *= -1;\n this._onChangeCallback();\n return this;\n }\n /**\n * Calculates the dot product of this quaternion and the given one.\n *\n * @param {Quaternion} v - The quaternion to compute the dot product with.\n * @return {number} The result of the dot product.\n */\n dot(v) {\n return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n }\n /**\n * Computes the squared Euclidean length (straight-line length) of this quaternion,\n * considered as a 4 dimensional vector. This can be useful if you are comparing the\n * lengths of two quaternions, as this is a slightly more efficient calculation than\n * {@link Quaternion#length}.\n *\n * @return {number} The squared Euclidean length.\n */\n lengthSq() {\n return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n }\n /**\n * Computes the Euclidean length (straight-line length) of this quaternion,\n * considered as a 4 dimensional vector.\n *\n * @return {number} The Euclidean length.\n */\n length() {\n return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w);\n }\n /**\n * Normalizes this quaternion - that is, calculated the quaternion that performs\n * the same rotation as this one, but has a length equal to `1`.\n *\n * @return {Quaternion} A reference to this quaternion.\n */\n normalize() {\n let l = this.length();\n if (l === 0) {\n this._x = 0;\n this._y = 0;\n this._z = 0;\n this._w = 1;\n } else {\n l = 1 / l;\n this._x = this._x * l;\n this._y = this._y * l;\n this._z = this._z * l;\n this._w = this._w * l;\n }\n this._onChangeCallback();\n return this;\n }\n /**\n * Multiplies this quaternion by the given one.\n *\n * @param {Quaternion} q - The quaternion.\n * @return {Quaternion} A reference to this quaternion.\n */\n multiply(q) {\n return this.multiplyQuaternions(this, q);\n }\n /**\n * Pre-multiplies this quaternion by the given one.\n *\n * @param {Quaternion} q - The quaternion.\n * @return {Quaternion} A reference to this quaternion.\n */\n premultiply(q) {\n return this.multiplyQuaternions(q, this);\n }\n /**\n * Multiplies the given quaternions and stores the result in this instance.\n *\n * @param {Quaternion} a - The first quaternion.\n * @param {Quaternion} b - The second quaternion.\n * @return {Quaternion} A reference to this quaternion.\n */\n multiplyQuaternions(a, b) {\n const qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\n const qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\n this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n this._onChangeCallback();\n return this;\n }\n /**\n * Performs a spherical linear interpolation between quaternions.\n *\n * @param {Quaternion} qb - The target quaternion.\n * @param {number} t - The interpolation factor in the closed interval `[0, 1]`.\n * @return {Quaternion} A reference to this quaternion.\n */\n slerp(qb, t) {\n if (t === 0) return this;\n if (t === 1) return this.copy(qb);\n const x2 = this._x, y = this._y, z = this._z, w = this._w;\n let cosHalfTheta = w * qb._w + x2 * qb._x + y * qb._y + z * qb._z;\n if (cosHalfTheta < 0) {\n this._w = -qb._w;\n this._x = -qb._x;\n this._y = -qb._y;\n this._z = -qb._z;\n cosHalfTheta = -cosHalfTheta;\n } else {\n this.copy(qb);\n }\n if (cosHalfTheta >= 1) {\n this._w = w;\n this._x = x2;\n this._y = y;\n this._z = z;\n return this;\n }\n const sqrSinHalfTheta = 1 - cosHalfTheta * cosHalfTheta;\n if (sqrSinHalfTheta <= Number.EPSILON) {\n const s = 1 - t;\n this._w = s * w + t * this._w;\n this._x = s * x2 + t * this._x;\n this._y = s * y + t * this._y;\n this._z = s * z + t * this._z;\n this.normalize();\n return this;\n }\n const sinHalfTheta = Math.sqrt(sqrSinHalfTheta);\n const halfTheta = Math.atan2(sinHalfTheta, cosHalfTheta);\n const ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta, ratioB = Math.sin(t * halfTheta) / sinHalfTheta;\n this._w = w * ratioA + this._w * ratioB;\n this._x = x2 * ratioA + this._x * ratioB;\n this._y = y * ratioA + this._y * ratioB;\n this._z = z * ratioA + this._z * ratioB;\n this._onChangeCallback();\n return this;\n }\n /**\n * Performs a spherical linear interpolation between the given quaternions\n * and stores the result in this quaternion.\n *\n * @param {Quaternion} qa - The source quaternion.\n * @param {Quaternion} qb - The target quaternion.\n * @param {number} t - The interpolation factor in the closed interval `[0, 1]`.\n * @return {Quaternion} A reference to this quaternion.\n */\n slerpQuaternions(qa, qb, t) {\n return this.copy(qa).slerp(qb, t);\n }\n /**\n * Sets this quaternion to a uniformly random, normalized quaternion.\n *\n * @return {Quaternion} A reference to this quaternion.\n */\n random() {\n const theta1 = 2 * Math.PI * Math.random();\n const theta2 = 2 * Math.PI * Math.random();\n const x0 = Math.random();\n const r1 = Math.sqrt(1 - x0);\n const r2 = Math.sqrt(x0);\n return this.set(\n r1 * Math.sin(theta1),\n r1 * Math.cos(theta1),\n r2 * Math.sin(theta2),\n r2 * Math.cos(theta2)\n );\n }\n /**\n * Returns `true` if this quaternion is equal with the given one.\n *\n * @param {Quaternion} quaternion - The quaternion to test for equality.\n * @return {boolean} Whether this quaternion is equal with the given one.\n */\n equals(quaternion) {\n return quaternion._x === this._x && quaternion._y === this._y && quaternion._z === this._z && quaternion._w === this._w;\n }\n /**\n * Sets this quaternion\'s components from the given array.\n *\n * @param {Array} array - An array holding the quaternion component values.\n * @param {number} [offset=0] - The offset into the array.\n * @return {Quaternion} A reference to this quaternion.\n */\n fromArray(array, offset = 0) {\n this._x = array[offset];\n this._y = array[offset + 1];\n this._z = array[offset + 2];\n this._w = array[offset + 3];\n this._onChangeCallback();\n return this;\n }\n /**\n * Writes the components of this quaternion to the given array. If no array is provided,\n * the method returns a new instance.\n *\n * @param {Array} [array=[]] - The target array holding the quaternion components.\n * @param {number} [offset=0] - Index of the first element in the array.\n * @return {Array} The quaternion components.\n */\n toArray(array = [], offset = 0) {\n array[offset] = this._x;\n array[offset + 1] = this._y;\n array[offset + 2] = this._z;\n array[offset + 3] = this._w;\n return array;\n }\n /**\n * Sets the components of this quaternion from the given buffer attribute.\n *\n * @param {BufferAttribute} attribute - The buffer attribute holding quaternion data.\n * @param {number} index - The index into the attribute.\n * @return {Quaternion} A reference to this quaternion.\n */\n fromBufferAttribute(attribute, index) {\n this._x = attribute.getX(index);\n this._y = attribute.getY(index);\n this._z = attribute.getZ(index);\n this._w = attribute.getW(index);\n this._onChangeCallback();\n return this;\n }\n /**\n * This methods defines the serialization result of this class. Returns the\n * numerical elements of this quaternion in an array of format `[x, y, z, w]`.\n *\n * @return {Array} The serialized quaternion.\n */\n toJSON() {\n return this.toArray();\n }\n _onChange(callback) {\n this._onChangeCallback = callback;\n return this;\n }\n _onChangeCallback() {\n }\n *[Symbol.iterator]() {\n yield this._x;\n yield this._y;\n yield this._z;\n yield this._w;\n }\n }\n class Vector3 {\n /**\n * Constructs a new 3D vector.\n *\n * @param {number} [x=0] - The x value of this vector.\n * @param {number} [y=0] - The y value of this vector.\n * @param {number} [z=0] - The z value of this vector.\n */\n constructor(x2 = 0, y = 0, z = 0) {\n Vector3.prototype.isVector3 = true;\n this.x = x2;\n this.y = y;\n this.z = z;\n }\n /**\n * Sets the vector components.\n *\n * @param {number} x - The value of the x component.\n * @param {number} y - The value of the y component.\n * @param {number} z - The value of the z component.\n * @return {Vector3} A reference to this vector.\n */\n set(x2, y, z) {\n if (z === void 0) z = this.z;\n this.x = x2;\n this.y = y;\n this.z = z;\n return this;\n }\n /**\n * Sets the vector components to the same value.\n *\n * @param {number} scalar - The value to set for all vector components.\n * @return {Vector3} A reference to this vector.\n */\n setScalar(scalar) {\n this.x = scalar;\n this.y = scalar;\n this.z = scalar;\n return this;\n }\n /**\n * Sets the vector\'s x component to the given value\n *\n * @param {number} x - The value to set.\n * @return {Vector3} A reference to this vector.\n */\n setX(x2) {\n this.x = x2;\n return this;\n }\n /**\n * Sets the vector\'s y component to the given value\n *\n * @param {number} y - The value to set.\n * @return {Vector3} A reference to this vector.\n */\n setY(y) {\n this.y = y;\n return this;\n }\n /**\n * Sets the vector\'s z component to the given value\n *\n * @param {number} z - The value to set.\n * @return {Vector3} A reference to this vector.\n */\n setZ(z) {\n this.z = z;\n return this;\n }\n /**\n * Allows to set a vector component with an index.\n *\n * @param {number} index - The component index. `0` equals to x, `1` equals to y, `2` equals to z.\n * @param {number} value - The value to set.\n * @return {Vector3} A reference to this vector.\n */\n setComponent(index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n case 1:\n this.y = value;\n break;\n case 2:\n this.z = value;\n break;\n default:\n throw new Error("index is out of range: " + index);\n }\n return this;\n }\n /**\n * Returns the value of the vector component which matches the given index.\n *\n * @param {number} index - The component index. `0` equals to x, `1` equals to y, `2` equals to z.\n * @return {number} A vector component value.\n */\n getComponent(index) {\n switch (index) {\n case 0:\n return this.x;\n case 1:\n return this.y;\n case 2:\n return this.z;\n default:\n throw new Error("index is out of range: " + index);\n }\n }\n /**\n * Returns a new vector with copied values from this instance.\n *\n * @return {Vector3} A clone of this instance.\n */\n clone() {\n return new this.constructor(this.x, this.y, this.z);\n }\n /**\n * Copies the values of the given vector to this instance.\n *\n * @param {Vector3} v - The vector to copy.\n * @return {Vector3} A reference to this vector.\n */\n copy(v) {\n this.x = v.x;\n this.y = v.y;\n this.z = v.z;\n return this;\n }\n /**\n * Adds the given vector to this instance.\n *\n * @param {Vector3} v - The vector to add.\n * @return {Vector3} A reference to this vector.\n */\n add(v) {\n this.x += v.x;\n this.y += v.y;\n this.z += v.z;\n return this;\n }\n /**\n * Adds the given scalar value to all components of this instance.\n *\n * @param {number} s - The scalar to add.\n * @return {Vector3} A reference to this vector.\n */\n addScalar(s) {\n this.x += s;\n this.y += s;\n this.z += s;\n return this;\n }\n /**\n * Adds the given vectors and stores the result in this instance.\n *\n * @param {Vector3} a - The first vector.\n * @param {Vector3} b - The second vector.\n * @return {Vector3} A reference to this vector.\n */\n addVectors(a, b) {\n this.x = a.x + b.x;\n this.y = a.y + b.y;\n this.z = a.z + b.z;\n return this;\n }\n /**\n * Adds the given vector scaled by the given factor to this instance.\n *\n * @param {Vector3|Vector4} v - The vector.\n * @param {number} s - The factor that scales `v`.\n * @return {Vector3} A reference to this vector.\n */\n addScaledVector(v, s) {\n this.x += v.x * s;\n this.y += v.y * s;\n this.z += v.z * s;\n return this;\n }\n /**\n * Subtracts the given vector from this instance.\n *\n * @param {Vector3} v - The vector to subtract.\n * @return {Vector3} A reference to this vector.\n */\n sub(v) {\n this.x -= v.x;\n this.y -= v.y;\n this.z -= v.z;\n return this;\n }\n /**\n * Subtracts the given scalar value from all components of this instance.\n *\n * @param {number} s - The scalar to subtract.\n * @return {Vector3} A reference to this vector.\n */\n subScalar(s) {\n this.x -= s;\n this.y -= s;\n this.z -= s;\n return this;\n }\n /**\n * Subtracts the given vectors and stores the result in this instance.\n *\n * @param {Vector3} a - The first vector.\n * @param {Vector3} b - The second vector.\n * @return {Vector3} A reference to this vector.\n */\n subVectors(a, b) {\n this.x = a.x - b.x;\n this.y = a.y - b.y;\n this.z = a.z - b.z;\n return this;\n }\n /**\n * Multiplies the given vector with this instance.\n *\n * @param {Vector3} v - The vector to multiply.\n * @return {Vector3} A reference to this vector.\n */\n multiply(v) {\n this.x *= v.x;\n this.y *= v.y;\n this.z *= v.z;\n return this;\n }\n /**\n * Multiplies the given scalar value with all components of this instance.\n *\n * @param {number} scalar - The scalar to multiply.\n * @return {Vector3} A reference to this vector.\n */\n multiplyScalar(scalar) {\n this.x *= scalar;\n this.y *= scalar;\n this.z *= scalar;\n return this;\n }\n /**\n * Multiplies the given vectors and stores the result in this instance.\n *\n * @param {Vector3} a - The first vector.\n * @param {Vector3} b - The second vector.\n * @return {Vector3} A reference to this vector.\n */\n multiplyVectors(a, b) {\n this.x = a.x * b.x;\n this.y = a.y * b.y;\n this.z = a.z * b.z;\n return this;\n }\n /**\n * Applies the given Euler rotation to this vector.\n *\n * @param {Euler} euler - The Euler angles.\n * @return {Vector3} A reference to this vector.\n */\n applyEuler(euler) {\n return this.applyQuaternion(_quaternion$4.setFromEuler(euler));\n }\n /**\n * Applies a rotation specified by an axis and an angle to this vector.\n *\n * @param {Vector3} axis - A normalized vector representing the rotation axis.\n * @param {number} angle - The angle in radians.\n * @return {Vector3} A reference to this vector.\n */\n applyAxisAngle(axis, angle) {\n return this.applyQuaternion(_quaternion$4.setFromAxisAngle(axis, angle));\n }\n /**\n * Multiplies this vector with the given 3x3 matrix.\n *\n * @param {Matrix3} m - The 3x3 matrix.\n * @return {Vector3} A reference to this vector.\n */\n applyMatrix3(m) {\n const x2 = this.x, y = this.y, z = this.z;\n const e = m.elements;\n this.x = e[0] * x2 + e[3] * y + e[6] * z;\n this.y = e[1] * x2 + e[4] * y + e[7] * z;\n this.z = e[2] * x2 + e[5] * y + e[8] * z;\n return this;\n }\n /**\n * Multiplies this vector by the given normal matrix and normalizes\n * the result.\n *\n * @param {Matrix3} m - The normal matrix.\n * @return {Vector3} A reference to this vector.\n */\n applyNormalMatrix(m) {\n return this.applyMatrix3(m).normalize();\n }\n /**\n * Multiplies this vector (with an implicit 1 in the 4th dimension) by m, and\n * divides by perspective.\n *\n * @param {Matrix4} m - The matrix to apply.\n * @return {Vector3} A reference to this vector.\n */\n applyMatrix4(m) {\n const x2 = this.x, y = this.y, z = this.z;\n const e = m.elements;\n const w = 1 / (e[3] * x2 + e[7] * y + e[11] * z + e[15]);\n this.x = (e[0] * x2 + e[4] * y + e[8] * z + e[12]) * w;\n this.y = (e[1] * x2 + e[5] * y + e[9] * z + e[13]) * w;\n this.z = (e[2] * x2 + e[6] * y + e[10] * z + e[14]) * w;\n return this;\n }\n /**\n * Applies the given Quaternion to this vector.\n *\n * @param {Quaternion} q - The Quaternion.\n * @return {Vector3} A reference to this vector.\n */\n applyQuaternion(q) {\n const vx = this.x, vy = this.y, vz = this.z;\n const qx = q.x, qy = q.y, qz = q.z, qw = q.w;\n const tx = 2 * (qy * vz - qz * vy);\n const ty = 2 * (qz * vx - qx * vz);\n const tz = 2 * (qx * vy - qy * vx);\n this.x = vx + qw * tx + qy * tz - qz * ty;\n this.y = vy + qw * ty + qz * tx - qx * tz;\n this.z = vz + qw * tz + qx * ty - qy * tx;\n return this;\n }\n /**\n * Projects this vector from world space into the camera\'s normalized\n * device coordinate (NDC) space.\n *\n * @param {Camera} camera - The camera.\n * @return {Vector3} A reference to this vector.\n */\n project(camera) {\n return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix);\n }\n /**\n * Unprojects this vector from the camera\'s normalized device coordinate (NDC)\n * space into world space.\n *\n * @param {Camera} camera - The camera.\n * @return {Vector3} A reference to this vector.\n */\n unproject(camera) {\n return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld);\n }\n /**\n * Transforms the direction of this vector by a matrix (the upper left 3 x 3\n * subset of the given 4x4 matrix and then normalizes the result.\n *\n * @param {Matrix4} m - The matrix.\n * @return {Vector3} A reference to this vector.\n */\n transformDirection(m) {\n const x2 = this.x, y = this.y, z = this.z;\n const e = m.elements;\n this.x = e[0] * x2 + e[4] * y + e[8] * z;\n this.y = e[1] * x2 + e[5] * y + e[9] * z;\n this.z = e[2] * x2 + e[6] * y + e[10] * z;\n return this.normalize();\n }\n /**\n * Divides this instance by the given vector.\n *\n * @param {Vector3} v - The vector to divide.\n * @return {Vector3} A reference to this vector.\n */\n divide(v) {\n this.x /= v.x;\n this.y /= v.y;\n this.z /= v.z;\n return this;\n }\n /**\n * Divides this vector by the given scalar.\n *\n * @param {number} scalar - The scalar to divide.\n * @return {Vector3} A reference to this vector.\n */\n divideScalar(scalar) {\n return this.multiplyScalar(1 / scalar);\n }\n /**\n * If this vector\'s x, y or z value is greater than the given vector\'s x, y or z\n * value, replace that value with the corresponding min value.\n *\n * @param {Vector3} v - The vector.\n * @return {Vector3} A reference to this vector.\n */\n min(v) {\n this.x = Math.min(this.x, v.x);\n this.y = Math.min(this.y, v.y);\n this.z = Math.min(this.z, v.z);\n return this;\n }\n /**\n * If this vector\'s x, y or z value is less than the given vector\'s x, y or z\n * value, replace that value with the corresponding max value.\n *\n * @param {Vector3} v - The vector.\n * @return {Vector3} A reference to this vector.\n */\n max(v) {\n this.x = Math.max(this.x, v.x);\n this.y = Math.max(this.y, v.y);\n this.z = Math.max(this.z, v.z);\n return this;\n }\n /**\n * If this vector\'s x, y or z value is greater than the max vector\'s x, y or z\n * value, it is replaced by the corresponding value.\n * If this vector\'s x, y or z value is less than the min vector\'s x, y or z value,\n * it is replaced by the corresponding value.\n *\n * @param {Vector3} min - The minimum x, y and z values.\n * @param {Vector3} max - The maximum x, y and z values in the desired range.\n * @return {Vector3} A reference to this vector.\n */\n clamp(min, max2) {\n this.x = clamp(this.x, min.x, max2.x);\n this.y = clamp(this.y, min.y, max2.y);\n this.z = clamp(this.z, min.z, max2.z);\n return this;\n }\n /**\n * If this vector\'s x, y or z values are greater than the max value, they are\n * replaced by the max value.\n * If this vector\'s x, y or z values are less than the min value, they are\n * replaced by the min value.\n *\n * @param {number} minVal - The minimum value the components will be clamped to.\n * @param {number} maxVal - The maximum value the components will be clamped to.\n * @return {Vector3} A reference to this vector.\n */\n clampScalar(minVal, maxVal) {\n this.x = clamp(this.x, minVal, maxVal);\n this.y = clamp(this.y, minVal, maxVal);\n this.z = clamp(this.z, minVal, maxVal);\n return this;\n }\n /**\n * If this vector\'s length is greater than the max value, it is replaced by\n * the max value.\n * If this vector\'s length is less than the min value, it is replaced by the\n * min value.\n *\n * @param {number} min - The minimum value the vector length will be clamped to.\n * @param {number} max - The maximum value the vector length will be clamped to.\n * @return {Vector3} A reference to this vector.\n */\n clampLength(min, max2) {\n const length = this.length();\n return this.divideScalar(length || 1).multiplyScalar(clamp(length, min, max2));\n }\n /**\n * The components of this vector are rounded down to the nearest integer value.\n *\n * @return {Vector3} A reference to this vector.\n */\n floor() {\n this.x = Math.floor(this.x);\n this.y = Math.floor(this.y);\n this.z = Math.floor(this.z);\n return this;\n }\n /**\n * The components of this vector are rounded up to the nearest integer value.\n *\n * @return {Vector3} A reference to this vector.\n */\n ceil() {\n this.x = Math.ceil(this.x);\n this.y = Math.ceil(this.y);\n this.z = Math.ceil(this.z);\n return this;\n }\n /**\n * The components of this vector are rounded to the nearest integer value\n *\n * @return {Vector3} A reference to this vector.\n */\n round() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n this.z = Math.round(this.z);\n return this;\n }\n /**\n * The components of this vector are rounded towards zero (up if negative,\n * down if positive) to an integer value.\n *\n * @return {Vector3} A reference to this vector.\n */\n roundToZero() {\n this.x = Math.trunc(this.x);\n this.y = Math.trunc(this.y);\n this.z = Math.trunc(this.z);\n return this;\n }\n /**\n * Inverts this vector - i.e. sets x = -x, y = -y and z = -z.\n *\n * @return {Vector3} A reference to this vector.\n */\n negate() {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n return this;\n }\n /**\n * Calculates the dot product of the given vector with this instance.\n *\n * @param {Vector3} v - The vector to compute the dot product with.\n * @return {number} The result of the dot product.\n */\n dot(v) {\n return this.x * v.x + this.y * v.y + this.z * v.z;\n }\n // TODO lengthSquared?\n /**\n * Computes the square of the Euclidean length (straight-line length) from\n * (0, 0, 0) to (x, y, z). If you are comparing the lengths of vectors, you should\n * compare the length squared instead as it is slightly more efficient to calculate.\n *\n * @return {number} The square length of this vector.\n */\n lengthSq() {\n return this.x * this.x + this.y * this.y + this.z * this.z;\n }\n /**\n * Computes the Euclidean length (straight-line length) from (0, 0, 0) to (x, y, z).\n *\n * @return {number} The length of this vector.\n */\n length() {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n }\n /**\n * Computes the Manhattan length of this vector.\n *\n * @return {number} The length of this vector.\n */\n manhattanLength() {\n return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);\n }\n /**\n * Converts this vector to a unit vector - that is, sets it equal to a vector\n * with the same direction as this one, but with a vector length of `1`.\n *\n * @return {Vector3} A reference to this vector.\n */\n normalize() {\n return this.divideScalar(this.length() || 1);\n }\n /**\n * Sets this vector to a vector with the same direction as this one, but\n * with the specified length.\n *\n * @param {number} length - The new length of this vector.\n * @return {Vector3} A reference to this vector.\n */\n setLength(length) {\n return this.normalize().multiplyScalar(length);\n }\n /**\n * Linearly interpolates between the given vector and this instance, where\n * alpha is the percent distance along the line - alpha = 0 will be this\n * vector, and alpha = 1 will be the given one.\n *\n * @param {Vector3} v - The vector to interpolate towards.\n * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n * @return {Vector3} A reference to this vector.\n */\n lerp(v, alpha) {\n this.x += (v.x - this.x) * alpha;\n this.y += (v.y - this.y) * alpha;\n this.z += (v.z - this.z) * alpha;\n return this;\n }\n /**\n * Linearly interpolates between the given vectors, where alpha is the percent\n * distance along the line - alpha = 0 will be first vector, and alpha = 1 will\n * be the second one. The result is stored in this instance.\n *\n * @param {Vector3} v1 - The first vector.\n * @param {Vector3} v2 - The second vector.\n * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n * @return {Vector3} A reference to this vector.\n */\n lerpVectors(v1, v2, alpha) {\n this.x = v1.x + (v2.x - v1.x) * alpha;\n this.y = v1.y + (v2.y - v1.y) * alpha;\n this.z = v1.z + (v2.z - v1.z) * alpha;\n return this;\n }\n /**\n * Calculates the cross product of the given vector with this instance.\n *\n * @param {Vector3} v - The vector to compute the cross product with.\n * @return {Vector3} The result of the cross product.\n */\n cross(v) {\n return this.crossVectors(this, v);\n }\n /**\n * Calculates the cross product of the given vectors and stores the result\n * in this instance.\n *\n * @param {Vector3} a - The first vector.\n * @param {Vector3} b - The second vector.\n * @return {Vector3} A reference to this vector.\n */\n crossVectors(a, b) {\n const ax = a.x, ay = a.y, az = a.z;\n const bx = b.x, by = b.y, bz = b.z;\n this.x = ay * bz - az * by;\n this.y = az * bx - ax * bz;\n this.z = ax * by - ay * bx;\n return this;\n }\n /**\n * Projects this vector onto the given one.\n *\n * @param {Vector3} v - The vector to project to.\n * @return {Vector3} A reference to this vector.\n */\n projectOnVector(v) {\n const denominator = v.lengthSq();\n if (denominator === 0) return this.set(0, 0, 0);\n const scalar = v.dot(this) / denominator;\n return this.copy(v).multiplyScalar(scalar);\n }\n /**\n * Projects this vector onto a plane by subtracting this\n * vector projected onto the plane\'s normal from this vector.\n *\n * @param {Vector3} planeNormal - The plane normal.\n * @return {Vector3} A reference to this vector.\n */\n projectOnPlane(planeNormal) {\n _vector$c.copy(this).projectOnVector(planeNormal);\n return this.sub(_vector$c);\n }\n /**\n * Reflects this vector off a plane orthogonal to the given normal vector.\n *\n * @param {Vector3} normal - The (normalized) normal vector.\n * @return {Vector3} A reference to this vector.\n */\n reflect(normal) {\n return this.sub(_vector$c.copy(normal).multiplyScalar(2 * this.dot(normal)));\n }\n /**\n * Returns the angle between the given vector and this instance in radians.\n *\n * @param {Vector3} v - The vector to compute the angle with.\n * @return {number} The angle in radians.\n */\n angleTo(v) {\n const denominator = Math.sqrt(this.lengthSq() * v.lengthSq());\n if (denominator === 0) return Math.PI / 2;\n const theta = this.dot(v) / denominator;\n return Math.acos(clamp(theta, -1, 1));\n }\n /**\n * Computes the distance from the given vector to this instance.\n *\n * @param {Vector3} v - The vector to compute the distance to.\n * @return {number} The distance.\n */\n distanceTo(v) {\n return Math.sqrt(this.distanceToSquared(v));\n }\n /**\n * Computes the squared distance from the given vector to this instance.\n * If you are just comparing the distance with another distance, you should compare\n * the distance squared instead as it is slightly more efficient to calculate.\n *\n * @param {Vector3} v - The vector to compute the squared distance to.\n * @return {number} The squared distance.\n */\n distanceToSquared(v) {\n const dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\n return dx * dx + dy * dy + dz * dz;\n }\n /**\n * Computes the Manhattan distance from the given vector to this instance.\n *\n * @param {Vector3} v - The vector to compute the Manhattan distance to.\n * @return {number} The Manhattan distance.\n */\n manhattanDistanceTo(v) {\n return Math.abs(this.x - v.x) + Math.abs(this.y - v.y) + Math.abs(this.z - v.z);\n }\n /**\n * Sets the vector components from the given spherical coordinates.\n *\n * @param {Spherical} s - The spherical coordinates.\n * @return {Vector3} A reference to this vector.\n */\n setFromSpherical(s) {\n return this.setFromSphericalCoords(s.radius, s.phi, s.theta);\n }\n /**\n * Sets the vector components from the given spherical coordinates.\n *\n * @param {number} radius - The radius.\n * @param {number} phi - The phi angle in radians.\n * @param {number} theta - The theta angle in radians.\n * @return {Vector3} A reference to this vector.\n */\n setFromSphericalCoords(radius, phi, theta) {\n const sinPhiRadius = Math.sin(phi) * radius;\n this.x = sinPhiRadius * Math.sin(theta);\n this.y = Math.cos(phi) * radius;\n this.z = sinPhiRadius * Math.cos(theta);\n return this;\n }\n /**\n * Sets the vector components from the given cylindrical coordinates.\n *\n * @param {Cylindrical} c - The cylindrical coordinates.\n * @return {Vector3} A reference to this vector.\n */\n setFromCylindrical(c) {\n return this.setFromCylindricalCoords(c.radius, c.theta, c.y);\n }\n /**\n * Sets the vector components from the given cylindrical coordinates.\n *\n * @param {number} radius - The radius.\n * @param {number} theta - The theta angle in radians.\n * @param {number} y - The y value.\n * @return {Vector3} A reference to this vector.\n */\n setFromCylindricalCoords(radius, theta, y) {\n this.x = radius * Math.sin(theta);\n this.y = y;\n this.z = radius * Math.cos(theta);\n return this;\n }\n /**\n * Sets the vector components to the position elements of the\n * given transformation matrix.\n *\n * @param {Matrix4} m - The 4x4 matrix.\n * @return {Vector3} A reference to this vector.\n */\n setFromMatrixPosition(m) {\n const e = m.elements;\n this.x = e[12];\n this.y = e[13];\n this.z = e[14];\n return this;\n }\n /**\n * Sets the vector components to the scale elements of the\n * given transformation matrix.\n *\n * @param {Matrix4} m - The 4x4 matrix.\n * @return {Vector3} A reference to this vector.\n */\n setFromMatrixScale(m) {\n const sx = this.setFromMatrixColumn(m, 0).length();\n const sy = this.setFromMatrixColumn(m, 1).length();\n const sz = this.setFromMatrixColumn(m, 2).length();\n this.x = sx;\n this.y = sy;\n this.z = sz;\n return this;\n }\n /**\n * Sets the vector components from the specified matrix column.\n *\n * @param {Matrix4} m - The 4x4 matrix.\n * @param {number} index - The column index.\n * @return {Vector3} A reference to this vector.\n */\n setFromMatrixColumn(m, index) {\n return this.fromArray(m.elements, index * 4);\n }\n /**\n * Sets the vector components from the specified matrix column.\n *\n * @param {Matrix3} m - The 3x3 matrix.\n * @param {number} index - The column index.\n * @return {Vector3} A reference to this vector.\n */\n setFromMatrix3Column(m, index) {\n return this.fromArray(m.elements, index * 3);\n }\n /**\n * Sets the vector components from the given Euler angles.\n *\n * @param {Euler} e - The Euler angles to set.\n * @return {Vector3} A reference to this vector.\n */\n setFromEuler(e) {\n this.x = e._x;\n this.y = e._y;\n this.z = e._z;\n return this;\n }\n /**\n * Sets the vector components from the RGB components of the\n * given color.\n *\n * @param {Color} c - The color to set.\n * @return {Vector3} A reference to this vector.\n */\n setFromColor(c) {\n this.x = c.r;\n this.y = c.g;\n this.z = c.b;\n return this;\n }\n /**\n * Returns `true` if this vector is equal with the given one.\n *\n * @param {Vector3} v - The vector to test for equality.\n * @return {boolean} Whether this vector is equal with the given one.\n */\n equals(v) {\n return v.x === this.x && v.y === this.y && v.z === this.z;\n }\n /**\n * Sets this vector\'s x value to be `array[ offset ]`, y value to be `array[ offset + 1 ]`\n * and z value to be `array[ offset + 2 ]`.\n *\n * @param {Array} array - An array holding the vector component values.\n * @param {number} [offset=0] - The offset into the array.\n * @return {Vector3} A reference to this vector.\n */\n fromArray(array, offset = 0) {\n this.x = array[offset];\n this.y = array[offset + 1];\n this.z = array[offset + 2];\n return this;\n }\n /**\n * Writes the components of this vector to the given array. If no array is provided,\n * the method returns a new instance.\n *\n * @param {Array} [array=[]] - The target array holding the vector components.\n * @param {number} [offset=0] - Index of the first element in the array.\n * @return {Array} The vector components.\n */\n toArray(array = [], offset = 0) {\n array[offset] = this.x;\n array[offset + 1] = this.y;\n array[offset + 2] = this.z;\n return array;\n }\n /**\n * Sets the components of this vector from the given buffer attribute.\n *\n * @param {BufferAttribute} attribute - The buffer attribute holding vector data.\n * @param {number} index - The index into the attribute.\n * @return {Vector3} A reference to this vector.\n */\n fromBufferAttribute(attribute, index) {\n this.x = attribute.getX(index);\n this.y = attribute.getY(index);\n this.z = attribute.getZ(index);\n return this;\n }\n /**\n * Sets each component of this vector to a pseudo-random value between `0` and\n * `1`, excluding `1`.\n *\n * @return {Vector3} A reference to this vector.\n */\n random() {\n this.x = Math.random();\n this.y = Math.random();\n this.z = Math.random();\n return this;\n }\n /**\n * Sets this vector to a uniformly random point on a unit sphere.\n *\n * @return {Vector3} A reference to this vector.\n */\n randomDirection() {\n const theta = Math.random() * Math.PI * 2;\n const u = Math.random() * 2 - 1;\n const c = Math.sqrt(1 - u * u);\n this.x = c * Math.cos(theta);\n this.y = u;\n this.z = c * Math.sin(theta);\n return this;\n }\n *[Symbol.iterator]() {\n yield this.x;\n yield this.y;\n yield this.z;\n }\n }\n const _vector$c = /* @__PURE__ */ new Vector3();\n const _quaternion$4 = /* @__PURE__ */ new Quaternion();\n class Matrix3 {\n /**\n * Constructs a new 3x3 matrix. The arguments are supposed to be\n * in row-major order. If no arguments are provided, the constructor\n * initializes the matrix as an identity matrix.\n *\n * @param {number} [n11] - 1-1 matrix element.\n * @param {number} [n12] - 1-2 matrix element.\n * @param {number} [n13] - 1-3 matrix element.\n * @param {number} [n21] - 2-1 matrix element.\n * @param {number} [n22] - 2-2 matrix element.\n * @param {number} [n23] - 2-3 matrix element.\n * @param {number} [n31] - 3-1 matrix element.\n * @param {number} [n32] - 3-2 matrix element.\n * @param {number} [n33] - 3-3 matrix element.\n */\n constructor(n11, n12, n13, n21, n22, n23, n31, n32, n33) {\n Matrix3.prototype.isMatrix3 = true;\n this.elements = [\n 1,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 1\n ];\n if (n11 !== void 0) {\n this.set(n11, n12, n13, n21, n22, n23, n31, n32, n33);\n }\n }\n /**\n * Sets the elements of the matrix.The arguments are supposed to be\n * in row-major order.\n *\n * @param {number} [n11] - 1-1 matrix element.\n * @param {number} [n12] - 1-2 matrix element.\n * @param {number} [n13] - 1-3 matrix element.\n * @param {number} [n21] - 2-1 matrix element.\n * @param {number} [n22] - 2-2 matrix element.\n * @param {number} [n23] - 2-3 matrix element.\n * @param {number} [n31] - 3-1 matrix element.\n * @param {number} [n32] - 3-2 matrix element.\n * @param {number} [n33] - 3-3 matrix element.\n * @return {Matrix3} A reference to this matrix.\n */\n set(n11, n12, n13, n21, n22, n23, n31, n32, n33) {\n const te = this.elements;\n te[0] = n11;\n te[1] = n21;\n te[2] = n31;\n te[3] = n12;\n te[4] = n22;\n te[5] = n32;\n te[6] = n13;\n te[7] = n23;\n te[8] = n33;\n return this;\n }\n /**\n * Sets this matrix to the 3x3 identity matrix.\n *\n * @return {Matrix3} A reference to this matrix.\n */\n identity() {\n this.set(\n 1,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 1\n );\n return this;\n }\n /**\n * Copies the values of the given matrix to this instance.\n *\n * @param {Matrix3} m - The matrix to copy.\n * @return {Matrix3} A reference to this matrix.\n */\n copy(m) {\n const te = this.elements;\n const me = m.elements;\n te[0] = me[0];\n te[1] = me[1];\n te[2] = me[2];\n te[3] = me[3];\n te[4] = me[4];\n te[5] = me[5];\n te[6] = me[6];\n te[7] = me[7];\n te[8] = me[8];\n return this;\n }\n /**\n * Extracts the basis of this matrix into the three axis vectors provided.\n *\n * @param {Vector3} xAxis - The basis\'s x axis.\n * @param {Vector3} yAxis - The basis\'s y axis.\n * @param {Vector3} zAxis - The basis\'s z axis.\n * @return {Matrix3} A reference to this matrix.\n */\n extractBasis(xAxis, yAxis, zAxis) {\n xAxis.setFromMatrix3Column(this, 0);\n yAxis.setFromMatrix3Column(this, 1);\n zAxis.setFromMatrix3Column(this, 2);\n return this;\n }\n /**\n * Set this matrix to the upper 3x3 matrix of the given 4x4 matrix.\n *\n * @param {Matrix4} m - The 4x4 matrix.\n * @return {Matrix3} A reference to this matrix.\n */\n setFromMatrix4(m) {\n const me = m.elements;\n this.set(\n me[0],\n me[4],\n me[8],\n me[1],\n me[5],\n me[9],\n me[2],\n me[6],\n me[10]\n );\n return this;\n }\n /**\n * Post-multiplies this matrix by the given 3x3 matrix.\n *\n * @param {Matrix3} m - The matrix to multiply with.\n * @return {Matrix3} A reference to this matrix.\n */\n multiply(m) {\n return this.multiplyMatrices(this, m);\n }\n /**\n * Pre-multiplies this matrix by the given 3x3 matrix.\n *\n * @param {Matrix3} m - The matrix to multiply with.\n * @return {Matrix3} A reference to this matrix.\n */\n premultiply(m) {\n return this.multiplyMatrices(m, this);\n }\n /**\n * Multiples the given 3x3 matrices and stores the result\n * in this matrix.\n *\n * @param {Matrix3} a - The first matrix.\n * @param {Matrix3} b - The second matrix.\n * @return {Matrix3} A reference to this matrix.\n */\n multiplyMatrices(a, b) {\n const ae = a.elements;\n const be = b.elements;\n const te = this.elements;\n const a11 = ae[0], a12 = ae[3], a13 = ae[6];\n const a21 = ae[1], a22 = ae[4], a23 = ae[7];\n const a31 = ae[2], a32 = ae[5], a33 = ae[8];\n const b11 = be[0], b12 = be[3], b13 = be[6];\n const b21 = be[1], b22 = be[4], b23 = be[7];\n const b31 = be[2], b32 = be[5], b33 = be[8];\n te[0] = a11 * b11 + a12 * b21 + a13 * b31;\n te[3] = a11 * b12 + a12 * b22 + a13 * b32;\n te[6] = a11 * b13 + a12 * b23 + a13 * b33;\n te[1] = a21 * b11 + a22 * b21 + a23 * b31;\n te[4] = a21 * b12 + a22 * b22 + a23 * b32;\n te[7] = a21 * b13 + a22 * b23 + a23 * b33;\n te[2] = a31 * b11 + a32 * b21 + a33 * b31;\n te[5] = a31 * b12 + a32 * b22 + a33 * b32;\n te[8] = a31 * b13 + a32 * b23 + a33 * b33;\n return this;\n }\n /**\n * Multiplies every component of the matrix by the given scalar.\n *\n * @param {number} s - The scalar.\n * @return {Matrix3} A reference to this matrix.\n */\n multiplyScalar(s) {\n const te = this.elements;\n te[0] *= s;\n te[3] *= s;\n te[6] *= s;\n te[1] *= s;\n te[4] *= s;\n te[7] *= s;\n te[2] *= s;\n te[5] *= s;\n te[8] *= s;\n return this;\n }\n /**\n * Computes and returns the determinant of this matrix.\n *\n * @return {number} The determinant.\n */\n determinant() {\n const te = this.elements;\n const a = te[0], b = te[1], c = te[2], d = te[3], e = te[4], f = te[5], g = te[6], h = te[7], i2 = te[8];\n return a * e * i2 - a * f * h - b * d * i2 + b * f * g + c * d * h - c * e * g;\n }\n /**\n * Inverts this matrix, using the [analytic method]{@link https://en.wikipedia.org/wiki/Invertible_matrix#Analytic_solution}.\n * You can not invert with a determinant of zero. If you attempt this, the method produces\n * a zero matrix instead.\n *\n * @return {Matrix3} A reference to this matrix.\n */\n invert() {\n const te = this.elements, n11 = te[0], n21 = te[1], n31 = te[2], n12 = te[3], n22 = te[4], n32 = te[5], n13 = te[6], n23 = te[7], n33 = te[8], t11 = n33 * n22 - n32 * n23, t12 = n32 * n13 - n33 * n12, t13 = n23 * n12 - n22 * n13, det = n11 * t11 + n21 * t12 + n31 * t13;\n if (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0);\n const detInv = 1 / det;\n te[0] = t11 * detInv;\n te[1] = (n31 * n23 - n33 * n21) * detInv;\n te[2] = (n32 * n21 - n31 * n22) * detInv;\n te[3] = t12 * detInv;\n te[4] = (n33 * n11 - n31 * n13) * detInv;\n te[5] = (n31 * n12 - n32 * n11) * detInv;\n te[6] = t13 * detInv;\n te[7] = (n21 * n13 - n23 * n11) * detInv;\n te[8] = (n22 * n11 - n21 * n12) * detInv;\n return this;\n }\n /**\n * Transposes this matrix in place.\n *\n * @return {Matrix3} A reference to this matrix.\n */\n transpose() {\n let tmp;\n const m = this.elements;\n tmp = m[1];\n m[1] = m[3];\n m[3] = tmp;\n tmp = m[2];\n m[2] = m[6];\n m[6] = tmp;\n tmp = m[5];\n m[5] = m[7];\n m[7] = tmp;\n return this;\n }\n /**\n * Computes the normal matrix which is the inverse transpose of the upper\n * left 3x3 portion of the given 4x4 matrix.\n *\n * @param {Matrix4} matrix4 - The 4x4 matrix.\n * @return {Matrix3} A reference to this matrix.\n */\n getNormalMatrix(matrix4) {\n return this.setFromMatrix4(matrix4).invert().transpose();\n }\n /**\n * Transposes this matrix into the supplied array, and returns itself unchanged.\n *\n * @param {Array} r - An array to store the transposed matrix elements.\n * @return {Matrix3} A reference to this matrix.\n */\n transposeIntoArray(r) {\n const m = this.elements;\n r[0] = m[0];\n r[1] = m[3];\n r[2] = m[6];\n r[3] = m[1];\n r[4] = m[4];\n r[5] = m[7];\n r[6] = m[2];\n r[7] = m[5];\n r[8] = m[8];\n return this;\n }\n /**\n * Sets the UV transform matrix from offset, repeat, rotation, and center.\n *\n * @param {number} tx - Offset x.\n * @param {number} ty - Offset y.\n * @param {number} sx - Repeat x.\n * @param {number} sy - Repeat y.\n * @param {number} rotation - Rotation, in radians. Positive values rotate counterclockwise.\n * @param {number} cx - Center x of rotation.\n * @param {number} cy - Center y of rotation\n * @return {Matrix3} A reference to this matrix.\n */\n setUvTransform(tx, ty, sx, sy, rotation, cx, cy) {\n const c = Math.cos(rotation);\n const s = Math.sin(rotation);\n this.set(\n sx * c,\n sx * s,\n -sx * (c * cx + s * cy) + cx + tx,\n -sy * s,\n sy * c,\n -sy * (-s * cx + c * cy) + cy + ty,\n 0,\n 0,\n 1\n );\n return this;\n }\n /**\n * Scales this matrix with the given scalar values.\n *\n * @param {number} sx - The amount to scale in the X axis.\n * @param {number} sy - The amount to scale in the Y axis.\n * @return {Matrix3} A reference to this matrix.\n */\n scale(sx, sy) {\n this.premultiply(_m3.makeScale(sx, sy));\n return this;\n }\n /**\n * Rotates this matrix by the given angle.\n *\n * @param {number} theta - The rotation in radians.\n * @return {Matrix3} A reference to this matrix.\n */\n rotate(theta) {\n this.premultiply(_m3.makeRotation(-theta));\n return this;\n }\n /**\n * Translates this matrix by the given scalar values.\n *\n * @param {number} tx - The amount to translate in the X axis.\n * @param {number} ty - The amount to translate in the Y axis.\n * @return {Matrix3} A reference to this matrix.\n */\n translate(tx, ty) {\n this.premultiply(_m3.makeTranslation(tx, ty));\n return this;\n }\n // for 2D Transforms\n /**\n * Sets this matrix as a 2D translation transform.\n *\n * @param {number|Vector2} x - The amount to translate in the X axis or alternatively a translation vector.\n * @param {number} y - The amount to translate in the Y axis.\n * @return {Matrix3} A reference to this matrix.\n */\n makeTranslation(x2, y) {\n if (x2.isVector2) {\n this.set(\n 1,\n 0,\n x2.x,\n 0,\n 1,\n x2.y,\n 0,\n 0,\n 1\n );\n } else {\n this.set(\n 1,\n 0,\n x2,\n 0,\n 1,\n y,\n 0,\n 0,\n 1\n );\n }\n return this;\n }\n /**\n * Sets this matrix as a 2D rotational transformation.\n *\n * @param {number} theta - The rotation in radians.\n * @return {Matrix3} A reference to this matrix.\n */\n makeRotation(theta) {\n const c = Math.cos(theta);\n const s = Math.sin(theta);\n this.set(\n c,\n -s,\n 0,\n s,\n c,\n 0,\n 0,\n 0,\n 1\n );\n return this;\n }\n /**\n * Sets this matrix as a 2D scale transform.\n *\n * @param {number} x - The amount to scale in the X axis.\n * @param {number} y - The amount to scale in the Y axis.\n * @return {Matrix3} A reference to this matrix.\n */\n makeScale(x2, y) {\n this.set(\n x2,\n 0,\n 0,\n 0,\n y,\n 0,\n 0,\n 0,\n 1\n );\n return this;\n }\n /**\n * Returns `true` if this matrix is equal with the given one.\n *\n * @param {Matrix3} matrix - The matrix to test for equality.\n * @return {boolean} Whether this matrix is equal with the given one.\n */\n equals(matrix) {\n const te = this.elements;\n const me = matrix.elements;\n for (let i2 = 0; i2 < 9; i2++) {\n if (te[i2] !== me[i2]) return false;\n }\n return true;\n }\n /**\n * Sets the elements of the matrix from the given array.\n *\n * @param {Array} array - The matrix elements in column-major order.\n * @param {number} [offset=0] - Index of the first element in the array.\n * @return {Matrix3} A reference to this matrix.\n */\n fromArray(array, offset = 0) {\n for (let i2 = 0; i2 < 9; i2++) {\n this.elements[i2] = array[i2 + offset];\n }\n return this;\n }\n /**\n * Writes the elements of this matrix to the given array. If no array is provided,\n * the method returns a new instance.\n *\n * @param {Array} [array=[]] - The target array holding the matrix elements in column-major order.\n * @param {number} [offset=0] - Index of the first element in the array.\n * @return {Array} The matrix elements in column-major order.\n */\n toArray(array = [], offset = 0) {\n const te = this.elements;\n array[offset] = te[0];\n array[offset + 1] = te[1];\n array[offset + 2] = te[2];\n array[offset + 3] = te[3];\n array[offset + 4] = te[4];\n array[offset + 5] = te[5];\n array[offset + 6] = te[6];\n array[offset + 7] = te[7];\n array[offset + 8] = te[8];\n return array;\n }\n /**\n * Returns a matrix with copied values from this instance.\n *\n * @return {Matrix3} A clone of this instance.\n */\n clone() {\n return new this.constructor().fromArray(this.elements);\n }\n }\n const _m3 = /* @__PURE__ */ new Matrix3();\n const _cache = {};\n function warnOnce(message) {\n if (message in _cache) return;\n _cache[message] = true;\n console.warn(message);\n }\n const LINEAR_REC709_TO_XYZ = /* @__PURE__ */ new Matrix3().set(\n 0.4123908,\n 0.3575843,\n 0.1804808,\n 0.212639,\n 0.7151687,\n 0.0721923,\n 0.0193308,\n 0.1191948,\n 0.9505322\n );\n const XYZ_TO_LINEAR_REC709 = /* @__PURE__ */ new Matrix3().set(\n 3.2409699,\n -1.5373832,\n -0.4986108,\n -0.9692436,\n 1.8759675,\n 0.0415551,\n 0.0556301,\n -0.203977,\n 1.0569715\n );\n function createColorManagement() {\n const ColorManagement2 = {\n enabled: true,\n workingColorSpace: LinearSRGBColorSpace,\n /**\n * Implementations of supported color spaces.\n *\n * Required:\n * - primaries: chromaticity coordinates [ rx ry gx gy bx by ]\n * - whitePoint: reference white [ x y ]\n * - transfer: transfer function (pre-defined)\n * - toXYZ: Matrix3 RGB to XYZ transform\n * - fromXYZ: Matrix3 XYZ to RGB transform\n * - luminanceCoefficients: RGB luminance coefficients\n *\n * Optional:\n * - outputColorSpaceConfig: { drawingBufferColorSpace: ColorSpace, toneMappingMode: \'extended\' | \'standard\' }\n * - workingColorSpaceConfig: { unpackColorSpace: ColorSpace }\n *\n * Reference:\n * - https://www.russellcottrell.com/photo/matrixCalculator.htm\n */\n spaces: {},\n convert: function(color, sourceColorSpace, targetColorSpace) {\n if (this.enabled === false || sourceColorSpace === targetColorSpace || !sourceColorSpace || !targetColorSpace) {\n return color;\n }\n if (this.spaces[sourceColorSpace].transfer === SRGBTransfer) {\n color.r = SRGBToLinear(color.r);\n color.g = SRGBToLinear(color.g);\n color.b = SRGBToLinear(color.b);\n }\n if (this.spaces[sourceColorSpace].primaries !== this.spaces[targetColorSpace].primaries) {\n color.applyMatrix3(this.spaces[sourceColorSpace].toXYZ);\n color.applyMatrix3(this.spaces[targetColorSpace].fromXYZ);\n }\n if (this.spaces[targetColorSpace].transfer === SRGBTransfer) {\n color.r = LinearToSRGB(color.r);\n color.g = LinearToSRGB(color.g);\n color.b = LinearToSRGB(color.b);\n }\n return color;\n },\n workingToColorSpace: function(color, targetColorSpace) {\n return this.convert(color, this.workingColorSpace, targetColorSpace);\n },\n colorSpaceToWorking: function(color, sourceColorSpace) {\n return this.convert(color, sourceColorSpace, this.workingColorSpace);\n },\n getPrimaries: function(colorSpace) {\n return this.spaces[colorSpace].primaries;\n },\n getTransfer: function(colorSpace) {\n if (colorSpace === NoColorSpace) return LinearTransfer;\n return this.spaces[colorSpace].transfer;\n },\n getToneMappingMode: function(colorSpace) {\n return this.spaces[colorSpace].outputColorSpaceConfig.toneMappingMode || "standard";\n },\n getLuminanceCoefficients: function(target, colorSpace = this.workingColorSpace) {\n return target.fromArray(this.spaces[colorSpace].luminanceCoefficients);\n },\n define: function(colorSpaces) {\n Object.assign(this.spaces, colorSpaces);\n },\n // Internal APIs\n _getMatrix: function(targetMatrix, sourceColorSpace, targetColorSpace) {\n return targetMatrix.copy(this.spaces[sourceColorSpace].toXYZ).multiply(this.spaces[targetColorSpace].fromXYZ);\n },\n _getDrawingBufferColorSpace: function(colorSpace) {\n return this.spaces[colorSpace].outputColorSpaceConfig.drawingBufferColorSpace;\n },\n _getUnpackColorSpace: function(colorSpace = this.workingColorSpace) {\n return this.spaces[colorSpace].workingColorSpaceConfig.unpackColorSpace;\n },\n // Deprecated\n fromWorkingColorSpace: function(color, targetColorSpace) {\n warnOnce("THREE.ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace().");\n return ColorManagement2.workingToColorSpace(color, targetColorSpace);\n },\n toWorkingColorSpace: function(color, sourceColorSpace) {\n warnOnce("THREE.ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking().");\n return ColorManagement2.colorSpaceToWorking(color, sourceColorSpace);\n }\n };\n const REC709_PRIMARIES = [0.64, 0.33, 0.3, 0.6, 0.15, 0.06];\n const REC709_LUMINANCE_COEFFICIENTS = [0.2126, 0.7152, 0.0722];\n const D65 = [0.3127, 0.329];\n ColorManagement2.define({\n [LinearSRGBColorSpace]: {\n primaries: REC709_PRIMARIES,\n whitePoint: D65,\n transfer: LinearTransfer,\n toXYZ: LINEAR_REC709_TO_XYZ,\n fromXYZ: XYZ_TO_LINEAR_REC709,\n luminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS,\n workingColorSpaceConfig: { unpackColorSpace: SRGBColorSpace },\n outputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace }\n },\n [SRGBColorSpace]: {\n primaries: REC709_PRIMARIES,\n whitePoint: D65,\n transfer: SRGBTransfer,\n toXYZ: LINEAR_REC709_TO_XYZ,\n fromXYZ: XYZ_TO_LINEAR_REC709,\n luminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS,\n outputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace }\n }\n });\n return ColorManagement2;\n }\n const ColorManagement = /* @__PURE__ */ createColorManagement();\n function SRGBToLinear(c) {\n return c < 0.04045 ? c * 0.0773993808 : Math.pow(c * 0.9478672986 + 0.0521327014, 2.4);\n }\n function LinearToSRGB(c) {\n return c < 31308e-7 ? c * 12.92 : 1.055 * Math.pow(c, 0.41666) - 0.055;\n }\n class Box3 {\n /**\n * Constructs a new bounding box.\n *\n * @param {Vector3} [min=(Infinity,Infinity,Infinity)] - A vector representing the lower boundary of the box.\n * @param {Vector3} [max=(-Infinity,-Infinity,-Infinity)] - A vector representing the upper boundary of the box.\n */\n constructor(min = new Vector3(Infinity, Infinity, Infinity), max2 = new Vector3(-Infinity, -Infinity, -Infinity)) {\n this.isBox3 = true;\n this.min = min;\n this.max = max2;\n }\n /**\n * Sets the lower and upper boundaries of this box.\n * Please note that this method only copies the values from the given objects.\n *\n * @param {Vector3} min - The lower boundary of the box.\n * @param {Vector3} max - The upper boundary of the box.\n * @return {Box3} A reference to this bounding box.\n */\n set(min, max2) {\n this.min.copy(min);\n this.max.copy(max2);\n return this;\n }\n /**\n * Sets the upper and lower bounds of this box so it encloses the position data\n * in the given array.\n *\n * @param {Array} array - An array holding 3D position data.\n * @return {Box3} A reference to this bounding box.\n */\n setFromArray(array) {\n this.makeEmpty();\n for (let i2 = 0, il = array.length; i2 < il; i2 += 3) {\n this.expandByPoint(_vector$b.fromArray(array, i2));\n }\n return this;\n }\n /**\n * Sets the upper and lower bounds of this box so it encloses the position data\n * in the given buffer attribute.\n *\n * @param {BufferAttribute} attribute - A buffer attribute holding 3D position data.\n * @return {Box3} A reference to this bounding box.\n */\n setFromBufferAttribute(attribute) {\n this.makeEmpty();\n for (let i2 = 0, il = attribute.count; i2 < il; i2++) {\n this.expandByPoint(_vector$b.fromBufferAttribute(attribute, i2));\n }\n return this;\n }\n /**\n * Sets the upper and lower bounds of this box so it encloses the position data\n * in the given array.\n *\n * @param {Array} points - An array holding 3D position data as instances of {@link Vector3}.\n * @return {Box3} A reference to this bounding box.\n */\n setFromPoints(points) {\n this.makeEmpty();\n for (let i2 = 0, il = points.length; i2 < il; i2++) {\n this.expandByPoint(points[i2]);\n }\n return this;\n }\n /**\n * Centers this box on the given center vector and sets this box\'s width, height and\n * depth to the given size values.\n *\n * @param {Vector3} center - The center of the box.\n * @param {Vector3} size - The x, y and z dimensions of the box.\n * @return {Box3} A reference to this bounding box.\n */\n setFromCenterAndSize(center, size) {\n const halfSize = _vector$b.copy(size).multiplyScalar(0.5);\n this.min.copy(center).sub(halfSize);\n this.max.copy(center).add(halfSize);\n return this;\n }\n /**\n * Computes the world-axis-aligned bounding box for the given 3D object\n * (including its children), accounting for the object\'s, and children\'s,\n * world transforms. The function may result in a larger box than strictly necessary.\n *\n * @param {Object3D} object - The 3D object to compute the bounding box for.\n * @param {boolean} [precise=false] - If set to `true`, the method computes the smallest\n * world-axis-aligned bounding box at the expense of more computation.\n * @return {Box3} A reference to this bounding box.\n */\n setFromObject(object, precise = false) {\n this.makeEmpty();\n return this.expandByObject(object, precise);\n }\n /**\n * Returns a new box with copied values from this instance.\n *\n * @return {Box3} A clone of this instance.\n */\n clone() {\n return new this.constructor().copy(this);\n }\n /**\n * Copies the values of the given box to this instance.\n *\n * @param {Box3} box - The box to copy.\n * @return {Box3} A reference to this bounding box.\n */\n copy(box) {\n this.min.copy(box.min);\n this.max.copy(box.max);\n return this;\n }\n /**\n * Makes this box empty which means in encloses a zero space in 3D.\n *\n * @return {Box3} A reference to this bounding box.\n */\n makeEmpty() {\n this.min.x = this.min.y = this.min.z = Infinity;\n this.max.x = this.max.y = this.max.z = -Infinity;\n return this;\n }\n /**\n * Returns true if this box includes zero points within its bounds.\n * Note that a box with equal lower and upper bounds still includes one\n * point, the one both bounds share.\n *\n * @return {boolean} Whether this box is empty or not.\n */\n isEmpty() {\n return this.max.x < this.min.x || this.max.y < this.min.y || this.max.z < this.min.z;\n }\n /**\n * Returns the center point of this box.\n *\n * @param {Vector3} target - The target vector that is used to store the method\'s result.\n * @return {Vector3} The center point.\n */\n getCenter(target) {\n return this.isEmpty() ? target.set(0, 0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5);\n }\n /**\n * Returns the dimensions of this box.\n *\n * @param {Vector3} target - The target vector that is used to store the method\'s result.\n * @return {Vector3} The size.\n */\n getSize(target) {\n return this.isEmpty() ? target.set(0, 0, 0) : target.subVectors(this.max, this.min);\n }\n /**\n * Expands the boundaries of this box to include the given point.\n *\n * @param {Vector3} point - The point that should be included by the bounding box.\n * @return {Box3} A reference to this bounding box.\n */\n expandByPoint(point) {\n this.min.min(point);\n this.max.max(point);\n return this;\n }\n /**\n * Expands this box equilaterally by the given vector. The width of this\n * box will be expanded by the x component of the vector in both\n * directions. The height of this box will be expanded by the y component of\n * the vector in both directions. The depth of this box will be\n * expanded by the z component of the vector in both directions.\n *\n * @param {Vector3} vector - The vector that should expand the bounding box.\n * @return {Box3} A reference to this bounding box.\n */\n expandByVector(vector) {\n this.min.sub(vector);\n this.max.add(vector);\n return this;\n }\n /**\n * Expands each dimension of the box by the given scalar. If negative, the\n * dimensions of the box will be contracted.\n *\n * @param {number} scalar - The scalar value that should expand the bounding box.\n * @return {Box3} A reference to this bounding box.\n */\n expandByScalar(scalar) {\n this.min.addScalar(-scalar);\n this.max.addScalar(scalar);\n return this;\n }\n /**\n * Expands the boundaries of this box to include the given 3D object and\n * its children, accounting for the object\'s, and children\'s, world\n * transforms. The function may result in a larger box than strictly\n * necessary (unless the precise parameter is set to true).\n *\n * @param {Object3D} object - The 3D object that should expand the bounding box.\n * @param {boolean} precise - If set to `true`, the method expands the bounding box\n * as little as necessary at the expense of more computation.\n * @return {Box3} A reference to this bounding box.\n */\n expandByObject(object, precise = false) {\n object.updateWorldMatrix(false, false);\n const geometry = object.geometry;\n if (geometry !== void 0) {\n const positionAttribute = geometry.getAttribute("position");\n if (precise === true && positionAttribute !== void 0 && object.isInstancedMesh !== true) {\n for (let i2 = 0, l = positionAttribute.count; i2 < l; i2++) {\n if (object.isMesh === true) {\n object.getVertexPosition(i2, _vector$b);\n } else {\n _vector$b.fromBufferAttribute(positionAttribute, i2);\n }\n _vector$b.applyMatrix4(object.matrixWorld);\n this.expandByPoint(_vector$b);\n }\n } else {\n if (object.boundingBox !== void 0) {\n if (object.boundingBox === null) {\n object.computeBoundingBox();\n }\n _box$4.copy(object.boundingBox);\n } else {\n if (geometry.boundingBox === null) {\n geometry.computeBoundingBox();\n }\n _box$4.copy(geometry.boundingBox);\n }\n _box$4.applyMatrix4(object.matrixWorld);\n this.union(_box$4);\n }\n }\n const children = object.children;\n for (let i2 = 0, l = children.length; i2 < l; i2++) {\n this.expandByObject(children[i2], precise);\n }\n return this;\n }\n /**\n * Returns `true` if the given point lies within or on the boundaries of this box.\n *\n * @param {Vector3} point - The point to test.\n * @return {boolean} Whether the bounding box contains the given point or not.\n */\n containsPoint(point) {\n return point.x >= this.min.x && point.x <= this.max.x && point.y >= this.min.y && point.y <= this.max.y && point.z >= this.min.z && point.z <= this.max.z;\n }\n /**\n * Returns `true` if this bounding box includes the entirety of the given bounding box.\n * If this box and the given one are identical, this function also returns `true`.\n *\n * @param {Box3} box - The bounding box to test.\n * @return {boolean} Whether the bounding box contains the given bounding box or not.\n */\n containsBox(box) {\n return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y && this.min.z <= box.min.z && box.max.z <= this.max.z;\n }\n /**\n * Returns a point as a proportion of this box\'s width, height and depth.\n *\n * @param {Vector3} point - A point in 3D space.\n * @param {Vector3} target - The target vector that is used to store the method\'s result.\n * @return {Vector3} A point as a proportion of this box\'s width, height and depth.\n */\n getParameter(point, target) {\n return target.set(\n (point.x - this.min.x) / (this.max.x - this.min.x),\n (point.y - this.min.y) / (this.max.y - this.min.y),\n (point.z - this.min.z) / (this.max.z - this.min.z)\n );\n }\n /**\n * Returns `true` if the given bounding box intersects with this bounding box.\n *\n * @param {Box3} box - The bounding box to test.\n * @return {boolean} Whether the given bounding box intersects with this bounding box.\n */\n intersectsBox(box) {\n return box.max.x >= this.min.x && box.min.x <= this.max.x && box.max.y >= this.min.y && box.min.y <= this.max.y && box.max.z >= this.min.z && box.min.z <= this.max.z;\n }\n /**\n * Returns `true` if the given bounding sphere intersects with this bounding box.\n *\n * @param {Sphere} sphere - The bounding sphere to test.\n * @return {boolean} Whether the given bounding sphere intersects with this bounding box.\n */\n intersectsSphere(sphere) {\n this.clampPoint(sphere.center, _vector$b);\n return _vector$b.distanceToSquared(sphere.center) <= sphere.radius * sphere.radius;\n }\n /**\n * Returns `true` if the given plane intersects with this bounding box.\n *\n * @param {Plane} plane - The plane to test.\n * @return {boolean} Whether the given plane intersects with this bounding box.\n */\n intersectsPlane(plane) {\n let min, max2;\n if (plane.normal.x > 0) {\n min = plane.normal.x * this.min.x;\n max2 = plane.normal.x * this.max.x;\n } else {\n min = plane.normal.x * this.max.x;\n max2 = plane.normal.x * this.min.x;\n }\n if (plane.normal.y > 0) {\n min += plane.normal.y * this.min.y;\n max2 += plane.normal.y * this.max.y;\n } else {\n min += plane.normal.y * this.max.y;\n max2 += plane.normal.y * this.min.y;\n }\n if (plane.normal.z > 0) {\n min += plane.normal.z * this.min.z;\n max2 += plane.normal.z * this.max.z;\n } else {\n min += plane.normal.z * this.max.z;\n max2 += plane.normal.z * this.min.z;\n }\n return min <= -plane.constant && max2 >= -plane.constant;\n }\n /**\n * Returns `true` if the given triangle intersects with this bounding box.\n *\n * @param {Triangle} triangle - The triangle to test.\n * @return {boolean} Whether the given triangle intersects with this bounding box.\n */\n intersectsTriangle(triangle) {\n if (this.isEmpty()) {\n return false;\n }\n this.getCenter(_center);\n _extents.subVectors(this.max, _center);\n _v0$2.subVectors(triangle.a, _center);\n _v1$7.subVectors(triangle.b, _center);\n _v2$4.subVectors(triangle.c, _center);\n _f0.subVectors(_v1$7, _v0$2);\n _f1.subVectors(_v2$4, _v1$7);\n _f2.subVectors(_v0$2, _v2$4);\n let axes = [\n 0,\n -_f0.z,\n _f0.y,\n 0,\n -_f1.z,\n _f1.y,\n 0,\n -_f2.z,\n _f2.y,\n _f0.z,\n 0,\n -_f0.x,\n _f1.z,\n 0,\n -_f1.x,\n _f2.z,\n 0,\n -_f2.x,\n -_f0.y,\n _f0.x,\n 0,\n -_f1.y,\n _f1.x,\n 0,\n -_f2.y,\n _f2.x,\n 0\n ];\n if (!satForAxes(axes, _v0$2, _v1$7, _v2$4, _extents)) {\n return false;\n }\n axes = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n if (!satForAxes(axes, _v0$2, _v1$7, _v2$4, _extents)) {\n return false;\n }\n _triangleNormal.crossVectors(_f0, _f1);\n axes = [_triangleNormal.x, _triangleNormal.y, _triangleNormal.z];\n return satForAxes(axes, _v0$2, _v1$7, _v2$4, _extents);\n }\n /**\n * Clamps the given point within the bounds of this box.\n *\n * @param {Vector3} point - The point to clamp.\n * @param {Vector3} target - The target vector that is used to store the method\'s result.\n * @return {Vector3} The clamped point.\n */\n clampPoint(point, target) {\n return target.copy(point).clamp(this.min, this.max);\n }\n /**\n * Returns the euclidean distance from any edge of this box to the specified point. If\n * the given point lies inside of this box, the distance will be `0`.\n *\n * @param {Vector3} point - The point to compute the distance to.\n * @return {number} The euclidean distance.\n */\n distanceToPoint(point) {\n return this.clampPoint(point, _vector$b).distanceTo(point);\n }\n /**\n * Returns a bounding sphere that encloses this bounding box.\n *\n * @param {Sphere} target - The target sphere that is used to store the method\'s result.\n * @return {Sphere} The bounding sphere that encloses this bounding box.\n */\n getBoundingSphere(target) {\n if (this.isEmpty()) {\n target.makeEmpty();\n } else {\n this.getCenter(target.center);\n target.radius = this.getSize(_vector$b).length() * 0.5;\n }\n return target;\n }\n /**\n * Computes the intersection of this bounding box and the given one, setting the upper\n * bound of this box to the lesser of the two boxes\' upper bounds and the\n * lower bound of this box to the greater of the two boxes\' lower bounds. If\n * there\'s no overlap, makes this box empty.\n *\n * @param {Box3} box - The bounding box to intersect with.\n * @return {Box3} A reference to this bounding box.\n */\n intersect(box) {\n this.min.max(box.min);\n this.max.min(box.max);\n if (this.isEmpty()) this.makeEmpty();\n return this;\n }\n /**\n * Computes the union of this box and another and the given one, setting the upper\n * bound of this box to the greater of the two boxes\' upper bounds and the\n * lower bound of this box to the lesser of the two boxes\' lower bounds.\n *\n * @param {Box3} box - The bounding box that will be unioned with this instance.\n * @return {Box3} A reference to this bounding box.\n */\n union(box) {\n this.min.min(box.min);\n this.max.max(box.max);\n return this;\n }\n /**\n * Transforms this bounding box by the given 4x4 transformation matrix.\n *\n * @param {Matrix4} matrix - The transformation matrix.\n * @return {Box3} A reference to this bounding box.\n */\n applyMatrix4(matrix) {\n if (this.isEmpty()) return this;\n _points[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(matrix);\n _points[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(matrix);\n _points[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(matrix);\n _points[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(matrix);\n _points[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(matrix);\n _points[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(matrix);\n _points[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(matrix);\n _points[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(matrix);\n this.setFromPoints(_points);\n return this;\n }\n /**\n * Adds the given offset to both the upper and lower bounds of this bounding box,\n * effectively moving it in 3D space.\n *\n * @param {Vector3} offset - The offset that should be used to translate the bounding box.\n * @return {Box3} A reference to this bounding box.\n */\n translate(offset) {\n this.min.add(offset);\n this.max.add(offset);\n return this;\n }\n /**\n * Returns `true` if this bounding box is equal with the given one.\n *\n * @param {Box3} box - The box to test for equality.\n * @return {boolean} Whether this bounding box is equal with the given one.\n */\n equals(box) {\n return box.min.equals(this.min) && box.max.equals(this.max);\n }\n /**\n * Returns a serialized structure of the bounding box.\n *\n * @return {Object} Serialized structure with fields representing the object state.\n */\n toJSON() {\n return {\n min: this.min.toArray(),\n max: this.max.toArray()\n };\n }\n /**\n * Returns a serialized structure of the bounding box.\n *\n * @param {Object} json - The serialized json to set the box from.\n * @return {Box3} A reference to this bounding box.\n */\n fromJSON(json) {\n this.min.fromArray(json.min);\n this.max.fromArray(json.max);\n return this;\n }\n }\n const _points = [\n /* @__PURE__ */ new Vector3(),\n /* @__PURE__ */ new Vector3(),\n /* @__PURE__ */ new Vector3(),\n /* @__PURE__ */ new Vector3(),\n /* @__PURE__ */ new Vector3(),\n /* @__PURE__ */ new Vector3(),\n /* @__PURE__ */ new Vector3(),\n /* @__PURE__ */ new Vector3()\n ];\n const _vector$b = /* @__PURE__ */ new Vector3();\n const _box$4 = /* @__PURE__ */ new Box3();\n const _v0$2 = /* @__PURE__ */ new Vector3();\n const _v1$7 = /* @__PURE__ */ new Vector3();\n const _v2$4 = /* @__PURE__ */ new Vector3();\n const _f0 = /* @__PURE__ */ new Vector3();\n const _f1 = /* @__PURE__ */ new Vector3();\n const _f2 = /* @__PURE__ */ new Vector3();\n const _center = /* @__PURE__ */ new Vector3();\n const _extents = /* @__PURE__ */ new Vector3();\n const _triangleNormal = /* @__PURE__ */ new Vector3();\n const _testAxis = /* @__PURE__ */ new Vector3();\n function satForAxes(axes, v0, v1, v2, extents) {\n for (let i2 = 0, j = axes.length - 3; i2 <= j; i2 += 3) {\n _testAxis.fromArray(axes, i2);\n const r = extents.x * Math.abs(_testAxis.x) + extents.y * Math.abs(_testAxis.y) + extents.z * Math.abs(_testAxis.z);\n const p0 = v0.dot(_testAxis);\n const p1 = v1.dot(_testAxis);\n const p2 = v2.dot(_testAxis);\n if (Math.max(-Math.max(p0, p1, p2), Math.min(p0, p1, p2)) > r) {\n return false;\n }\n }\n return true;\n }\n const _colorKeywords = {\n "aliceblue": 15792383,\n "antiquewhite": 16444375,\n "aqua": 65535,\n "aquamarine": 8388564,\n "azure": 15794175,\n "beige": 16119260,\n "bisque": 16770244,\n "black": 0,\n "blanchedalmond": 16772045,\n "blue": 255,\n "blueviolet": 9055202,\n "brown": 10824234,\n "burlywood": 14596231,\n "cadetblue": 6266528,\n "chartreuse": 8388352,\n "chocolate": 13789470,\n "coral": 16744272,\n "cornflowerblue": 6591981,\n "cornsilk": 16775388,\n "crimson": 14423100,\n "cyan": 65535,\n "darkblue": 139,\n "darkcyan": 35723,\n "darkgoldenrod": 12092939,\n "darkgray": 11119017,\n "darkgreen": 25600,\n "darkgrey": 11119017,\n "darkkhaki": 12433259,\n "darkmagenta": 9109643,\n "darkolivegreen": 5597999,\n "darkorange": 16747520,\n "darkorchid": 10040012,\n "darkred": 9109504,\n "darksalmon": 15308410,\n "darkseagreen": 9419919,\n "darkslateblue": 4734347,\n "darkslategray": 3100495,\n "darkslategrey": 3100495,\n "darkturquoise": 52945,\n "darkviolet": 9699539,\n "deeppink": 16716947,\n "deepskyblue": 49151,\n "dimgray": 6908265,\n "dimgrey": 6908265,\n "dodgerblue": 2003199,\n "firebrick": 11674146,\n "floralwhite": 16775920,\n "forestgreen": 2263842,\n "fuchsia": 16711935,\n "gainsboro": 14474460,\n "ghostwhite": 16316671,\n "gold": 16766720,\n "goldenrod": 14329120,\n "gray": 8421504,\n "green": 32768,\n "greenyellow": 11403055,\n "grey": 8421504,\n "honeydew": 15794160,\n "hotpink": 16738740,\n "indianred": 13458524,\n "indigo": 4915330,\n "ivory": 16777200,\n "khaki": 15787660,\n "lavender": 15132410,\n "lavenderblush": 16773365,\n "lawngreen": 8190976,\n "lemonchiffon": 16775885,\n "lightblue": 11393254,\n "lightcoral": 15761536,\n "lightcyan": 14745599,\n "lightgoldenrodyellow": 16448210,\n "lightgray": 13882323,\n "lightgreen": 9498256,\n "lightgrey": 13882323,\n "lightpink": 16758465,\n "lightsalmon": 16752762,\n "lightseagreen": 2142890,\n "lightskyblue": 8900346,\n "lightslategray": 7833753,\n "lightslategrey": 7833753,\n "lightsteelblue": 11584734,\n "lightyellow": 16777184,\n "lime": 65280,\n "limegreen": 3329330,\n "linen": 16445670,\n "magenta": 16711935,\n "maroon": 8388608,\n "mediumaquamarine": 6737322,\n "mediumblue": 205,\n "mediumorchid": 12211667,\n "mediumpurple": 9662683,\n "mediumseagreen": 3978097,\n "mediumslateblue": 8087790,\n "mediumspringgreen": 64154,\n "mediumturquoise": 4772300,\n "mediumvioletred": 13047173,\n "midnightblue": 1644912,\n "mintcream": 16121850,\n "mistyrose": 16770273,\n "moccasin": 16770229,\n "navajowhite": 16768685,\n "navy": 128,\n "oldlace": 16643558,\n "olive": 8421376,\n "olivedrab": 7048739,\n "orange": 16753920,\n "orangered": 16729344,\n "orchid": 14315734,\n "palegoldenrod": 15657130,\n "palegreen": 10025880,\n "paleturquoise": 11529966,\n "palevioletred": 14381203,\n "papayawhip": 16773077,\n "peachpuff": 16767673,\n "peru": 13468991,\n "pink": 16761035,\n "plum": 14524637,\n "powderblue": 11591910,\n "purple": 8388736,\n "rebeccapurple": 6697881,\n "red": 16711680,\n "rosybrown": 12357519,\n "royalblue": 4286945,\n "saddlebrown": 9127187,\n "salmon": 16416882,\n "sandybrown": 16032864,\n "seagreen": 3050327,\n "seashell": 16774638,\n "sienna": 10506797,\n "silver": 12632256,\n "skyblue": 8900331,\n "slateblue": 6970061,\n "slategray": 7372944,\n "slategrey": 7372944,\n "snow": 16775930,\n "springgreen": 65407,\n "steelblue": 4620980,\n "tan": 13808780,\n "teal": 32896,\n "thistle": 14204888,\n "tomato": 16737095,\n "turquoise": 4251856,\n "violet": 15631086,\n "wheat": 16113331,\n "white": 16777215,\n "whitesmoke": 16119285,\n "yellow": 16776960,\n "yellowgreen": 10145074\n };\n const _hslA = { h: 0, s: 0, l: 0 };\n const _hslB = { h: 0, s: 0, l: 0 };\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * 6 * (2 / 3 - t);\n return p;\n }\n class Color {\n /**\n * Constructs a new color.\n *\n * Note that standard method of specifying color in three.js is with a hexadecimal triplet,\n * and that method is used throughout the rest of the documentation.\n *\n * @param {(number|string|Color)} [r] - The red component of the color. If `g` and `b` are\n * not provided, it can be hexadecimal triplet, a CSS-style string or another `Color` instance.\n * @param {number} [g] - The green component.\n * @param {number} [b] - The blue component.\n */\n constructor(r, g, b) {\n this.isColor = true;\n this.r = 1;\n this.g = 1;\n this.b = 1;\n return this.set(r, g, b);\n }\n /**\n * Sets the colors\'s components from the given values.\n *\n * @param {(number|string|Color)} [r] - The red component of the color. If `g` and `b` are\n * not provided, it can be hexadecimal triplet, a CSS-style string or another `Color` instance.\n * @param {number} [g] - The green component.\n * @param {number} [b] - The blue component.\n * @return {Color} A reference to this color.\n */\n set(r, g, b) {\n if (g === void 0 && b === void 0) {\n const value = r;\n if (value && value.isColor) {\n this.copy(value);\n } else if (typeof value === "number") {\n this.setHex(value);\n } else if (typeof value === "string") {\n this.setStyle(value);\n }\n } else {\n this.setRGB(r, g, b);\n }\n return this;\n }\n /**\n * Sets the colors\'s components to the given scalar value.\n *\n * @param {number} scalar - The scalar value.\n * @return {Color} A reference to this color.\n */\n setScalar(scalar) {\n this.r = scalar;\n this.g = scalar;\n this.b = scalar;\n return this;\n }\n /**\n * Sets this color from a hexadecimal value.\n *\n * @param {number} hex - The hexadecimal value.\n * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n * @return {Color} A reference to this color.\n */\n setHex(hex, colorSpace = SRGBColorSpace) {\n hex = Math.floor(hex);\n this.r = (hex >> 16 & 255) / 255;\n this.g = (hex >> 8 & 255) / 255;\n this.b = (hex & 255) / 255;\n ColorManagement.colorSpaceToWorking(this, colorSpace);\n return this;\n }\n /**\n * Sets this color from RGB values.\n *\n * @param {number} r - Red channel value between `0.0` and `1.0`.\n * @param {number} g - Green channel value between `0.0` and `1.0`.\n * @param {number} b - Blue channel value between `0.0` and `1.0`.\n * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n * @return {Color} A reference to this color.\n */\n setRGB(r, g, b, colorSpace = ColorManagement.workingColorSpace) {\n this.r = r;\n this.g = g;\n this.b = b;\n ColorManagement.colorSpaceToWorking(this, colorSpace);\n return this;\n }\n /**\n * Sets this color from RGB values.\n *\n * @param {number} h - Hue value between `0.0` and `1.0`.\n * @param {number} s - Saturation value between `0.0` and `1.0`.\n * @param {number} l - Lightness value between `0.0` and `1.0`.\n * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n * @return {Color} A reference to this color.\n */\n setHSL(h, s, l, colorSpace = ColorManagement.workingColorSpace) {\n h = euclideanModulo(h, 1);\n s = clamp(s, 0, 1);\n l = clamp(l, 0, 1);\n if (s === 0) {\n this.r = this.g = this.b = l;\n } else {\n const p = l <= 0.5 ? l * (1 + s) : l + s - l * s;\n const q = 2 * l - p;\n this.r = hue2rgb(q, p, h + 1 / 3);\n this.g = hue2rgb(q, p, h);\n this.b = hue2rgb(q, p, h - 1 / 3);\n }\n ColorManagement.colorSpaceToWorking(this, colorSpace);\n return this;\n }\n /**\n * Sets this color from a CSS-style string. For example, `rgb(250, 0,0)`,\n * `rgb(100%, 0%, 0%)`, `hsl(0, 100%, 50%)`, `#ff0000`, `#f00`, or `red` ( or\n * any [X11 color name]{@link https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart} -\n * all 140 color names are supported).\n *\n * @param {string} style - Color as a CSS-style string.\n * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n * @return {Color} A reference to this color.\n */\n setStyle(style, colorSpace = SRGBColorSpace) {\n function handleAlpha(string) {\n if (string === void 0) return;\n if (parseFloat(string) < 1) {\n console.warn("THREE.Color: Alpha component of " + style + " will be ignored.");\n }\n }\n let m;\n if (m = /^(\\w+)\\(([^\\)]*)\\)/.exec(style)) {\n let color;\n const name = m[1];\n const components = m[2];\n switch (name) {\n case "rgb":\n case "rgba":\n if (color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n handleAlpha(color[4]);\n return this.setRGB(\n Math.min(255, parseInt(color[1], 10)) / 255,\n Math.min(255, parseInt(color[2], 10)) / 255,\n Math.min(255, parseInt(color[3], 10)) / 255,\n colorSpace\n );\n }\n if (color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n handleAlpha(color[4]);\n return this.setRGB(\n Math.min(100, parseInt(color[1], 10)) / 100,\n Math.min(100, parseInt(color[2], 10)) / 100,\n Math.min(100, parseInt(color[3], 10)) / 100,\n colorSpace\n );\n }\n break;\n case "hsl":\n case "hsla":\n if (color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n handleAlpha(color[4]);\n return this.setHSL(\n parseFloat(color[1]) / 360,\n parseFloat(color[2]) / 100,\n parseFloat(color[3]) / 100,\n colorSpace\n );\n }\n break;\n default:\n console.warn("THREE.Color: Unknown color model " + style);\n }\n } else if (m = /^\\#([A-Fa-f\\d]+)$/.exec(style)) {\n const hex = m[1];\n const size = hex.length;\n if (size === 3) {\n return this.setRGB(\n parseInt(hex.charAt(0), 16) / 15,\n parseInt(hex.charAt(1), 16) / 15,\n parseInt(hex.charAt(2), 16) / 15,\n colorSpace\n );\n } else if (size === 6) {\n return this.setHex(parseInt(hex, 16), colorSpace);\n } else {\n console.warn("THREE.Color: Invalid hex color " + style);\n }\n } else if (style && style.length > 0) {\n return this.setColorName(style, colorSpace);\n }\n return this;\n }\n /**\n * Sets this color from a color name. Faster than {@link Color#setStyle} if\n * you don\'t need the other CSS-style formats.\n *\n * For convenience, the list of names is exposed in `Color.NAMES` as a hash.\n * ```js\n * Color.NAMES.aliceblue // returns 0xF0F8FF\n * ```\n *\n * @param {string} style - The color name.\n * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n * @return {Color} A reference to this color.\n */\n setColorName(style, colorSpace = SRGBColorSpace) {\n const hex = _colorKeywords[style.toLowerCase()];\n if (hex !== void 0) {\n this.setHex(hex, colorSpace);\n } else {\n console.warn("THREE.Color: Unknown color " + style);\n }\n return this;\n }\n /**\n * Returns a new color with copied values from this instance.\n *\n * @return {Color} A clone of this instance.\n */\n clone() {\n return new this.constructor(this.r, this.g, this.b);\n }\n /**\n * Copies the values of the given color to this instance.\n *\n * @param {Color} color - The color to copy.\n * @return {Color} A reference to this color.\n */\n copy(color) {\n this.r = color.r;\n this.g = color.g;\n this.b = color.b;\n return this;\n }\n /**\n * Copies the given color into this color, and then converts this color from\n * `SRGBColorSpace` to `LinearSRGBColorSpace`.\n *\n * @param {Color} color - The color to copy/convert.\n * @return {Color} A reference to this color.\n */\n copySRGBToLinear(color) {\n this.r = SRGBToLinear(color.r);\n this.g = SRGBToLinear(color.g);\n this.b = SRGBToLinear(color.b);\n return this;\n }\n /**\n * Copies the given color into this color, and then converts this color from\n * `LinearSRGBColorSpace` to `SRGBColorSpace`.\n *\n * @param {Color} color - The color to copy/convert.\n * @return {Color} A reference to this color.\n */\n copyLinearToSRGB(color) {\n this.r = LinearToSRGB(color.r);\n this.g = LinearToSRGB(color.g);\n this.b = LinearToSRGB(color.b);\n return this;\n }\n /**\n * Converts this color from `SRGBColorSpace` to `LinearSRGBColorSpace`.\n *\n * @return {Color} A reference to this color.\n */\n convertSRGBToLinear() {\n this.copySRGBToLinear(this);\n return this;\n }\n /**\n * Converts this color from `LinearSRGBColorSpace` to `SRGBColorSpace`.\n *\n * @return {Color} A reference to this color.\n */\n convertLinearToSRGB() {\n this.copyLinearToSRGB(this);\n return this;\n }\n /**\n * Returns the hexadecimal value of this color.\n *\n * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n * @return {number} The hexadecimal value.\n */\n getHex(colorSpace = SRGBColorSpace) {\n ColorManagement.workingToColorSpace(_color.copy(this), colorSpace);\n return 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 /**\n * Returns the hexadecimal value of this color as a string (for example, \'FFFFFF\').\n *\n * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n * @return {string} The hexadecimal value as a string.\n */\n getHexString(colorSpace = SRGBColorSpace) {\n return ("000000" + this.getHex(colorSpace).toString(16)).slice(-6);\n }\n /**\n * Converts the colors RGB values into the HSL format and stores them into the\n * given target object.\n *\n * @param {{h:number,s:number,l:number}} target - The target object that is used to store the method\'s result.\n * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n * @return {{h:number,s:number,l:number}} The HSL representation of this color.\n */\n getHSL(target, colorSpace = ColorManagement.workingColorSpace) {\n ColorManagement.workingToColorSpace(_color.copy(this), colorSpace);\n const r = _color.r, g = _color.g, b = _color.b;\n const max2 = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let hue, saturation;\n const lightness = (min + max2) / 2;\n if (min === max2) {\n hue = 0;\n saturation = 0;\n } else {\n const delta = max2 - min;\n saturation = lightness <= 0.5 ? delta / (max2 + min) : delta / (2 - max2 - min);\n switch (max2) {\n case r:\n hue = (g - b) / delta + (g < b ? 6 : 0);\n break;\n case g:\n hue = (b - r) / delta + 2;\n break;\n case b:\n hue = (r - g) / delta + 4;\n break;\n }\n hue /= 6;\n }\n target.h = hue;\n target.s = saturation;\n target.l = lightness;\n return target;\n }\n /**\n * Returns the RGB values of this color and stores them into the given target object.\n *\n * @param {Color} target - The target color that is used to store the method\'s result.\n * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n * @return {Color} The RGB representation of this color.\n */\n getRGB(target, colorSpace = ColorManagement.workingColorSpace) {\n ColorManagement.workingToColorSpace(_color.copy(this), colorSpace);\n target.r = _color.r;\n target.g = _color.g;\n target.b = _color.b;\n return target;\n }\n /**\n * Returns the value of this color as a CSS style string. Example: `rgb(255,0,0)`.\n *\n * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n * @return {string} The CSS representation of this color.\n */\n getStyle(colorSpace = SRGBColorSpace) {\n ColorManagement.workingToColorSpace(_color.copy(this), colorSpace);\n const r = _color.r, g = _color.g, b = _color.b;\n if (colorSpace !== SRGBColorSpace) {\n return `color(${colorSpace} ${r.toFixed(3)} ${g.toFixed(3)} ${b.toFixed(3)})`;\n }\n return `rgb(${Math.round(r * 255)},${Math.round(g * 255)},${Math.round(b * 255)})`;\n }\n /**\n * Adds the given HSL values to this color\'s values.\n * Internally, this converts the color\'s RGB values to HSL, adds HSL\n * and then converts the color back to RGB.\n *\n * @param {number} h - Hue value between `0.0` and `1.0`.\n * @param {number} s - Saturation value between `0.0` and `1.0`.\n * @param {number} l - Lightness value between `0.0` and `1.0`.\n * @return {Color} A reference to this color.\n */\n offsetHSL(h, s, l) {\n this.getHSL(_hslA);\n return this.setHSL(_hslA.h + h, _hslA.s + s, _hslA.l + l);\n }\n /**\n * Adds the RGB values of the given color to the RGB values of this color.\n *\n * @param {Color} color - The color to add.\n * @return {Color} A reference to this color.\n */\n add(color) {\n this.r += color.r;\n this.g += color.g;\n this.b += color.b;\n return this;\n }\n /**\n * Adds the RGB values of the given colors and stores the result in this instance.\n *\n * @param {Color} color1 - The first color.\n * @param {Color} color2 - The second color.\n * @return {Color} A reference to this color.\n */\n addColors(color1, color2) {\n this.r = color1.r + color2.r;\n this.g = color1.g + color2.g;\n this.b = color1.b + color2.b;\n return this;\n }\n /**\n * Adds the given scalar value to the RGB values of this color.\n *\n * @param {number} s - The scalar to add.\n * @return {Color} A reference to this color.\n */\n addScalar(s) {\n this.r += s;\n this.g += s;\n this.b += s;\n return this;\n }\n /**\n * Subtracts the RGB values of the given color from the RGB values of this color.\n *\n * @param {Color} color - The color to subtract.\n * @return {Color} A reference to this color.\n */\n sub(color) {\n this.r = Math.max(0, this.r - color.r);\n this.g = Math.max(0, this.g - color.g);\n this.b = Math.max(0, this.b - color.b);\n return this;\n }\n /**\n * Multiplies the RGB values of the given color with the RGB values of this color.\n *\n * @param {Color} color - The color to multiply.\n * @return {Color} A reference to this color.\n */\n multiply(color) {\n this.r *= color.r;\n this.g *= color.g;\n this.b *= color.b;\n return this;\n }\n /**\n * Multiplies the given scalar value with the RGB values of this color.\n *\n * @param {number} s - The scalar to multiply.\n * @return {Color} A reference to this color.\n */\n multiplyScalar(s) {\n this.r *= s;\n this.g *= s;\n this.b *= s;\n return this;\n }\n /**\n * Linearly interpolates this color\'s RGB values toward the RGB values of the\n * given color. The alpha argument can be thought of as the ratio between\n * the two colors, where `0.0` is this color and `1.0` is the first argument.\n *\n * @param {Color} color - The color to converge on.\n * @param {number} alpha - The interpolation factor in the closed interval `[0,1]`.\n * @return {Color} A reference to this color.\n */\n lerp(color, alpha) {\n this.r += (color.r - this.r) * alpha;\n this.g += (color.g - this.g) * alpha;\n this.b += (color.b - this.b) * alpha;\n return this;\n }\n /**\n * Linearly interpolates between the given colors and stores the result in this instance.\n * The alpha argument can be thought of as the ratio between the two colors, where `0.0`\n * is the first and `1.0` is the second color.\n *\n * @param {Color} color1 - The first color.\n * @param {Color} color2 - The second color.\n * @param {number} alpha - The interpolation factor in the closed interval `[0,1]`.\n * @return {Color} A reference to this color.\n */\n lerpColors(color1, color2, alpha) {\n this.r = color1.r + (color2.r - color1.r) * alpha;\n this.g = color1.g + (color2.g - color1.g) * alpha;\n this.b = color1.b + (color2.b - color1.b) * alpha;\n return this;\n }\n /**\n * Linearly interpolates this color\'s HSL values toward the HSL values of the\n * given color. It differs from {@link Color#lerp} by not interpolating straight\n * from one color to the other, but instead going through all the hues in between\n * those two colors. The alpha argument can be thought of as the ratio between\n * the two colors, where 0.0 is this color and 1.0 is the first argument.\n *\n * @param {Color} color - The color to converge on.\n * @param {number} alpha - The interpolation factor in the closed interval `[0,1]`.\n * @return {Color} A reference to this color.\n */\n lerpHSL(color, alpha) {\n this.getHSL(_hslA);\n color.getHSL(_hslB);\n const h = lerp(_hslA.h, _hslB.h, alpha);\n const s = lerp(_hslA.s, _hslB.s, alpha);\n const l = lerp(_hslA.l, _hslB.l, alpha);\n this.setHSL(h, s, l);\n return this;\n }\n /**\n * Sets the color\'s RGB components from the given 3D vector.\n *\n * @param {Vector3} v - The vector to set.\n * @return {Color} A reference to this color.\n */\n setFromVector3(v) {\n this.r = v.x;\n this.g = v.y;\n this.b = v.z;\n return this;\n }\n /**\n * Transforms this color with the given 3x3 matrix.\n *\n * @param {Matrix3} m - The matrix.\n * @return {Color} A reference to this color.\n */\n applyMatrix3(m) {\n const r = this.r, g = this.g, b = this.b;\n const e = m.elements;\n this.r = e[0] * r + e[3] * g + e[6] * b;\n this.g = e[1] * r + e[4] * g + e[7] * b;\n this.b = e[2] * r + e[5] * g + e[8] * b;\n return this;\n }\n /**\n * Returns `true` if this color is equal with the given one.\n *\n * @param {Color} c - The color to test for equality.\n * @return {boolean} Whether this bounding color is equal with the given one.\n */\n equals(c) {\n return c.r === this.r && c.g === this.g && c.b === this.b;\n }\n /**\n * Sets this color\'s RGB components from the given array.\n *\n * @param {Array} array - An array holding the RGB values.\n * @param {number} [offset=0] - The offset into the array.\n * @return {Color} A reference to this color.\n */\n fromArray(array, offset = 0) {\n this.r = array[offset];\n this.g = array[offset + 1];\n this.b = array[offset + 2];\n return this;\n }\n /**\n * Writes the RGB components of this color to the given array. If no array is provided,\n * the method returns a new instance.\n *\n * @param {Array} [array=[]] - The target array holding the color components.\n * @param {number} [offset=0] - Index of the first element in the array.\n * @return {Array} The color components.\n */\n toArray(array = [], offset = 0) {\n array[offset] = this.r;\n array[offset + 1] = this.g;\n array[offset + 2] = this.b;\n return array;\n }\n /**\n * Sets the components of this color from the given buffer attribute.\n *\n * @param {BufferAttribute} attribute - The buffer attribute holding color data.\n * @param {number} index - The index into the attribute.\n * @return {Color} A reference to this color.\n */\n fromBufferAttribute(attribute, index) {\n this.r = attribute.getX(index);\n this.g = attribute.getY(index);\n this.b = attribute.getZ(index);\n return this;\n }\n /**\n * This methods defines the serialization result of this class. Returns the color\n * as a hexadecimal value.\n *\n * @return {number} The hexadecimal value.\n */\n toJSON() {\n return this.getHex();\n }\n *[Symbol.iterator]() {\n yield this.r;\n yield this.g;\n yield this.b;\n }\n }\n const _color = /* @__PURE__ */ new Color();\n Color.NAMES = _colorKeywords;\n if (typeof __THREE_DEVTOOLS__ !== "undefined") {\n __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register", { detail: {\n revision: REVISION\n } }));\n }\n if (typeof window !== "undefined") {\n if (window.__THREE__) {\n console.warn("WARNING: Multiple instances of Three.js being imported.");\n } else {\n window.__THREE__ = REVISION;\n }\n }\n const LN_SCALE_MIN = -12;\n const LN_SCALE_MAX = 9;\n const LN_SCALE_ZERO = -30;\n const SCALE_ZERO = Math.exp(LN_SCALE_ZERO);\n const SPLAT_TEX_WIDTH_BITS = 11;\n const SPLAT_TEX_HEIGHT_BITS = 11;\n const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS;\n const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS;\n const SPLAT_TEX_MIN_HEIGHT = 1;\n var SplatFileType = /* @__PURE__ */ ((SplatFileType2) => {\n SplatFileType2["PLY"] = "ply";\n SplatFileType2["SPZ"] = "spz";\n SplatFileType2["SPLAT"] = "splat";\n SplatFileType2["KSPLAT"] = "ksplat";\n SplatFileType2["PCSOGS"] = "pcsogs";\n SplatFileType2["PCSOGSZIP"] = "pcsogszip";\n SplatFileType2["RAD"] = "rad";\n return SplatFileType2;\n })(SplatFileType || {});\n function unindentLines(s) {\n var _a2;\n let seenNonEmpty = false;\n const lines = s.split("\\n").map((line) => {\n const trimmedLine = line.trimEnd();\n if (seenNonEmpty) {\n return trimmedLine;\n }\n if (trimmedLine.length > 0) {\n seenNonEmpty = true;\n return trimmedLine;\n }\n return null;\n }).filter((line) => line != null);\n while (lines.length > 0 && lines[lines.length - 1].length === 0) {\n lines.pop();\n }\n if (lines.length === 0) {\n return [];\n }\n const indent = (_a2 = lines[0].match(/^\\s*/)) == null ? void 0 : _a2[0];\n if (!indent) {\n return lines;\n }\n const regex = new RegExp(`^${indent}`);\n return lines.map((line) => line.replace(regex, ""));\n }\n function unindent(s) {\n return unindentLines(s).join("\\n");\n }\n const f32buffer = new Float32Array(1);\n const u32buffer = new Uint32Array(f32buffer.buffer);\n const supportsFloat16Array = "Float16Array" in globalThis;\n const f16buffer = supportsFloat16Array ? new globalThis["Float16Array"](1) : null;\n const u16buffer = new Uint16Array(f16buffer == null ? void 0 : f16buffer.buffer);\n function normalize(vec) {\n const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0));\n return vec.map((v) => v / norm);\n }\n const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS;\n const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS;\n function toHalfNative(f) {\n f16buffer[0] = f;\n return u16buffer[0];\n }\n function toHalfJS(f) {\n f32buffer[0] = f;\n const bits2 = u32buffer[0];\n const sign = bits2 >> 31 & 1;\n const exp = bits2 >> 23 & 255;\n const frac = bits2 & 8388607;\n const halfSign = sign << 15;\n if (exp === 255) {\n if (frac !== 0) {\n return halfSign | 32767;\n }\n return halfSign | 31744;\n }\n const newExp = exp - 127 + 15;\n if (newExp >= 31) {\n return halfSign | 31744;\n }\n if (newExp <= 0) {\n if (newExp < -10) {\n return halfSign;\n }\n const subFrac = (frac | 8388608) >> 1 - newExp + 13;\n return halfSign | subFrac;\n }\n const halfFrac = frac >> 13;\n return halfSign | newExp << 10 | halfFrac;\n }\n function fromHalfNative(u) {\n u16buffer[0] = u;\n return f16buffer[0];\n }\n function fromHalfJS(h) {\n const sign = h >> 15 & 1;\n const exp = h >> 10 & 31;\n const frac = h & 1023;\n let f32bits;\n if (exp === 0) {\n if (frac === 0) {\n f32bits = sign << 31;\n } else {\n let mant = frac;\n let e = -14;\n while ((mant & 1024) === 0) {\n mant <<= 1;\n e--;\n }\n mant &= 1023;\n const newExp = e + 127;\n const newFrac = mant << 13;\n f32bits = sign << 31 | newExp << 23 | newFrac;\n }\n } else if (exp === 31) {\n if (frac === 0) {\n f32bits = sign << 31 | 2139095040;\n } else {\n f32bits = sign << 31 | 2143289344;\n }\n } else {\n const newExp = exp - 15 + 127;\n const newFrac = frac << 13;\n f32bits = sign << 31 | newExp << 23 | newFrac;\n }\n u32buffer[0] = f32bits;\n return f32buffer[0];\n }\n function floatToUint8(v) {\n return Math.max(0, Math.min(255, Math.round(v * 255)));\n }\n function getTransferable(ctx) {\n const buffers = [];\n const seen = /* @__PURE__ */ new Set();\n function traverse(obj) {\n if (obj && typeof obj === "object" && !seen.has(obj)) {\n seen.add(obj);\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n buffers.push(obj.buffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n traverse(ctx);\n return buffers;\n }\n function setPackedSplat(packedSplats, index, x2, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b, encoding) {\n const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0;\n const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8((encoding == null ? void 0 : encoding.lodOpacity) ? 0.5 * opacity : opacity);\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW)\n );\n const uQuatX = uQuat & 255;\n const uQuatY = uQuat >>> 8 & 255;\n const uQuatZ = uQuat >>> 16 & 255;\n const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN;\n const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX;\n const lnScaleScale = 254 / (lnScaleMax - lnScaleMin);\n const uScaleX = scaleX < SCALE_ZERO ? 0 : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1\n )\n );\n const uScaleY = scaleY < SCALE_ZERO ? 0 : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1\n )\n );\n const uScaleZ = scaleZ < SCALE_ZERO ? 0 : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1\n )\n );\n const uCenterX = toHalf(x2);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n const i4 = index * 4;\n packedSplats[i4] = uR | uG << 8 | uB << 16 | uA << 24;\n packedSplats[i4 + 1] = uCenterX | uCenterY << 16;\n packedSplats[i4 + 2] = uCenterZ | uQuatX << 16 | uQuatY << 24;\n packedSplats[i4 + 3] = uScaleX | uScaleY << 8 | uScaleZ << 16 | uQuatZ << 24;\n }\n function setPackedSplatCenter(packedSplats, index, x2, y, z) {\n const uCenterX = toHalf(x2);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n const i4 = index * 4;\n packedSplats[i4 + 1] = uCenterX | uCenterY << 16;\n packedSplats[i4 + 2] = uCenterZ | packedSplats[i4 + 2] & 4294901760;\n }\n function setPackedSplatScales(packedSplats, index, scaleX, scaleY, scaleZ, encoding) {\n const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN;\n const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX;\n const lnScaleScale = 254 / (lnScaleMax - lnScaleMin);\n const uScaleX = scaleX < SCALE_ZERO ? 0 : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1\n )\n );\n const uScaleY = scaleY < SCALE_ZERO ? 0 : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1\n )\n );\n const uScaleZ = scaleZ < SCALE_ZERO ? 0 : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1\n )\n );\n const i4 = index * 4;\n packedSplats[i4 + 3] = uScaleX | uScaleY << 8 | uScaleZ << 16 | packedSplats[i4 + 3] & 4278190080;\n }\n const tempQuaternion = new Quaternion();\n function setPackedSplatQuat(packedSplats, index, quatX, quatY, quatZ, quatW) {\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW)\n );\n const uQuatX = uQuat & 255;\n const uQuatY = uQuat >>> 8 & 255;\n const uQuatZ = uQuat >>> 16 & 255;\n const i4 = index * 4;\n packedSplats[i4 + 2] = packedSplats[i4 + 2] & 65535 | uQuatX << 16 | uQuatY << 24;\n packedSplats[i4 + 3] = packedSplats[i4 + 3] & 16777215 | uQuatZ << 24;\n }\n function setPackedSplatRgba(packedSplats, index, r, g, b, a, encoding) {\n const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0;\n const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8((encoding == null ? void 0 : encoding.lodOpacity) ? 0.5 * a : a);\n const i4 = index * 4;\n packedSplats[i4] = uR | uG << 8 | uB << 16 | uA << 24;\n }\n function setPackedSplatRgb(packedSplats, index, r, g, b, encoding) {\n const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0;\n const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const i4 = index * 4;\n packedSplats[i4] = uR | uG << 8 | uB << 16 | packedSplats[i4] & 4278190080;\n }\n function setPackedSplatOpacity(packedSplats, index, opacity) {\n const uA = floatToUint8(opacity);\n const i4 = index * 4;\n packedSplats[i4] = packedSplats[i4] & 16777215 | uA << 24;\n }\n new Vector3();\n new Vector3();\n new Color();\n function getTextureSize(numSplats) {\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width))\n );\n const depth = Math.ceil(numSplats / (width * height));\n const maxSplats = width * height * depth;\n return { width, height, depth, maxSplats };\n }\n function computeMaxSplats(numSplats) {\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width))\n );\n const depth = Math.ceil(numSplats / (width * height));\n return width * height * depth;\n }\n unindent(`\n precision highp float;\n\n in vec3 position;\n\n void main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n }\n`);\n const tempNormalizedQuaternion = new Quaternion();\n const tempAxis = new Vector3();\n function encodeQuatOctXy88R8(q) {\n const qnorm = tempNormalizedQuaternion.copy(q).normalize();\n if (qnorm.w < 0) {\n qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w);\n }\n const theta = 2 * Math.acos(qnorm.w);\n const xyz_norm = Math.sqrt(\n qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z\n );\n const axis = xyz_norm < 1e-6 ? tempAxis.set(1, 0, 0) : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm);\n const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z);\n let p_x = axis.x / sum;\n let p_y = axis.y / sum;\n if (axis.z < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n const quantU = Math.round(u_f * 255);\n const quantV = Math.round(v_f * 255);\n const angleInt = Math.round(theta * (255 / Math.PI));\n return angleInt << 16 | quantV << 8 | quantU;\n }\n function packSint8Bytes(b0, b1, b22, b3) {\n const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127)));\n const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127)));\n const clampedB2 = Math.round(Math.max(-127, Math.min(127, b22 * 127)));\n const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127)));\n return clampedB0 & 255 | (clampedB1 & 255) << 8 | (clampedB2 & 255) << 16 | (clampedB3 & 255) << 24;\n }\n function encodeSh1Rgb(sh1Array, index, sh1Rgb, encoding) {\n const sh1Max = (encoding == null ? void 0 : encoding.sh1Max) ?? 1;\n const sh1Scale = 63 / sh1Max;\n const base = index * 2;\n for (let i2 = 0; i2 < 9; ++i2) {\n const s = sh1Rgb[i2] * sh1Scale;\n const value = Math.round(Math.max(-63, Math.min(63, s))) & 127;\n const bitStart = i2 * 7;\n const bitEnd = bitStart + 7;\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = value << bitOffset & 4294967295;\n sh1Array[base + wordStart] |= firstWord;\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = value >>> 32 - bitOffset & 4294967295;\n sh1Array[base + wordStart + 1] |= secondWord;\n }\n }\n }\n function encodeSh2Rgb(sh2Array, index, sh2Rgb, encoding) {\n const sh2Max = (encoding == null ? void 0 : encoding.sh2Max) ?? 1;\n const sh2Scale = 1 / sh2Max;\n sh2Array[index * 4 + 0] = packSint8Bytes(\n sh2Rgb[0] * sh2Scale,\n sh2Rgb[1] * sh2Scale,\n sh2Rgb[2] * sh2Scale,\n sh2Rgb[3] * sh2Scale\n );\n sh2Array[index * 4 + 1] = packSint8Bytes(\n sh2Rgb[4] * sh2Scale,\n sh2Rgb[5] * sh2Scale,\n sh2Rgb[6] * sh2Scale,\n sh2Rgb[7] * sh2Scale\n );\n sh2Array[index * 4 + 2] = packSint8Bytes(\n sh2Rgb[8] * sh2Scale,\n sh2Rgb[9] * sh2Scale,\n sh2Rgb[10] * sh2Scale,\n sh2Rgb[11] * sh2Scale\n );\n sh2Array[index * 4 + 3] = packSint8Bytes(\n sh2Rgb[12] * sh2Scale,\n sh2Rgb[13] * sh2Scale,\n sh2Rgb[14] * sh2Scale,\n 0\n );\n }\n function encodeSh3Rgb(sh3Array, index, sh3Rgb, encoding) {\n const sh3Max = (encoding == null ? void 0 : encoding.sh3Max) ?? 1;\n const sh3Scale = 31 / sh3Max;\n const base = index * 4;\n for (let i2 = 0; i2 < 21; ++i2) {\n const s = sh3Rgb[i2] * sh3Scale;\n const value = Math.round(Math.max(-31, Math.min(31, s))) & 63;\n const bitStart = i2 * 6;\n const bitEnd = bitStart + 6;\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = value << bitOffset & 4294967295;\n sh3Array[base + wordStart] |= firstWord;\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = value >>> 32 - bitOffset & 4294967295;\n sh3Array[base + wordStart + 1] |= secondWord;\n }\n }\n }\n function decompressPartialGzip(fileBytes, numBytes) {\n const chunks = [];\n let totalBytes = 0;\n let result = null;\n const gunzip = new Gunzip((data, final) => {\n chunks.push(data);\n totalBytes += data.length;\n if (final || totalBytes >= numBytes) {\n const allBytes = new Uint8Array(totalBytes);\n let offset2 = 0;\n for (const chunk of chunks) {\n allBytes.set(chunk, offset2);\n offset2 += chunk.length;\n }\n result = allBytes.slice(0, numBytes);\n }\n });\n const CHUNK_SIZE = 1024;\n let offset = 0;\n while (result == null && offset < fileBytes.length) {\n const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE);\n gunzip.push(chunk, false);\n offset += CHUNK_SIZE;\n }\n if (result == null) {\n gunzip.push(new Uint8Array(), true);\n if (result == null) {\n throw new Error("Failed to decompress partial gzip");\n }\n }\n return result;\n }\n class GunzipReader {\n constructor({\n fileBytes,\n chunkBytes = 64 * 1024\n }) {\n this.fileBytes = fileBytes;\n this.chunkBytes = chunkBytes;\n this.chunks = [];\n this.totalBytes = 0;\n const ds = new DecompressionStream("gzip");\n const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds);\n this.reader = decompressionStream.getReader();\n }\n async read(numBytes) {\n while (this.totalBytes < numBytes) {\n const { value: chunk, done: readerDone } = await this.reader.read();\n if (readerDone) {\n break;\n }\n this.chunks.push(chunk);\n this.totalBytes += chunk.length;\n }\n if (this.totalBytes < numBytes) {\n throw new Error(\n `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}`\n );\n }\n const allBytes = new Uint8Array(this.totalBytes);\n let outOffset = 0;\n for (const chunk of this.chunks) {\n allBytes.set(chunk, outOffset);\n outOffset += chunk.length;\n }\n const result = allBytes.subarray(0, numBytes);\n this.chunks = [allBytes.subarray(numBytes)];\n this.totalBytes -= numBytes;\n return result;\n }\n }\n function decodeAntiSplat(fileBytes, initNumSplats, splatCallback) {\n const numSplats = Math.floor(fileBytes.length / 32);\n if (numSplats * 32 !== fileBytes.length) {\n throw new Error("Invalid .splat file size");\n }\n initNumSplats(numSplats);\n const f32 = new Float32Array(fileBytes.buffer);\n for (let i2 = 0; i2 < numSplats; ++i2) {\n const i322 = i2 * 32;\n const i8 = i2 * 8;\n const x2 = f32[i8 + 0];\n const y = f32[i8 + 1];\n const z = f32[i8 + 2];\n const scaleX = f32[i8 + 3];\n const scaleY = f32[i8 + 4];\n const scaleZ = f32[i8 + 5];\n const r = fileBytes[i322 + 24] / 255;\n const g = fileBytes[i322 + 25] / 255;\n const b = fileBytes[i322 + 26] / 255;\n const opacity = fileBytes[i322 + 27] / 255;\n const quatW = (fileBytes[i322 + 28] - 128) / 128;\n const quatX = (fileBytes[i322 + 29] - 128) / 128;\n const quatY = (fileBytes[i322 + 30] - 128) / 128;\n const quatZ = (fileBytes[i322 + 31] - 128) / 128;\n splatCallback(\n i2,\n x2,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b\n );\n }\n }\n function unpackAntiSplat(fileBytes, splatEncoding) {\n let numSplats = 0;\n let maxSplats = 0;\n let packedArray = new Uint32Array(0);\n decodeAntiSplat(\n fileBytes,\n (cbNumSplats) => {\n numSplats = cbNumSplats;\n maxSplats = computeMaxSplats(numSplats);\n packedArray = new Uint32Array(maxSplats * 4);\n },\n (index, x2, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b) => {\n setPackedSplat(\n packedArray,\n index,\n x2,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding\n );\n }\n );\n return { packedArray, numSplats };\n }\n const KSPLAT_COMPRESSION = {\n 0: {\n bytesPerCenter: 12,\n bytesPerScale: 12,\n bytesPerRotation: 16,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 4,\n scaleOffsetBytes: 12,\n rotationOffsetBytes: 24,\n colorOffsetBytes: 40,\n sphericalHarmonicsOffsetBytes: 44,\n scaleRange: 1\n },\n 1: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 2,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767\n },\n 2: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 1,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767\n }\n };\n const KSPLAT_SH_DEGREE_TO_COMPONENTS = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45\n };\n function decodeKsplat(fileBytes, initNumSplats, splatCallback, shCallback) {\n var _a2;\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n for (let section = 0; section < maxSectionCount; ++section) {\n let getSh = function(splatOffset, component) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true\n )\n );\n }\n const t = data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) / 255;\n return minSphericalHarmonicsCoeff + t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff);\n };\n const section2 = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n const sectionSplatCount = section2.getUint32(0, true);\n const sectionMaxSplatCount = section2.getUint32(4, true);\n const bucketSize = section2.getUint32(8, true);\n const bucketCount = section2.getUint32(12, true);\n const bucketBlockSize = section2.getFloat32(16, true);\n const bucketStorageSizeBytes = section2.getUint16(20, true);\n const compressionScaleRange = (section2.getUint32(24, true) || ((_a2 = KSPLAT_COMPRESSION[compressionLevel]) == null ? void 0 : _a2.scaleRange)) ?? 1;\n const fullBucketCount = section2.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section2.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes = bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section2.getUint16(40, true);\n const shComponents = KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat = bytesPerCenter + bytesPerScale + bytesPerRotation + bytesPerColor + shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes = splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9,\n 14,\n 19,\n 10,\n 15,\n 20,\n 11,\n 16,\n 21,\n 12,\n 17,\n 22,\n 13,\n 18,\n 23\n ];\n const sh3Index = [\n 24,\n 31,\n 38,\n 25,\n 32,\n 39,\n 26,\n 33,\n 40,\n 27,\n 34,\n 41,\n 28,\n 35,\n 42,\n 29,\n 36,\n 43,\n 30,\n 37,\n 44\n ];\n const sh1 = sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : void 0;\n const sh2 = sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : void 0;\n const sh3 = sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : void 0;\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount\n );\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n for (let i2 = 0; i2 < sectionSplatCount; ++i2) {\n const splatOffset = i2 * bytesPerSplat;\n let bucketIndex;\n if (i2 < fullBucketSplats) {\n bucketIndex = Math.floor(i2 / bucketSize);\n } else {\n const bucketLength = partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i2 >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n const x2 = compressionLevel === 0 ? data.getFloat32(splatOffset + 0, true) : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) * compressionScaleFactor + bucketArray[3 * bucketIndex + 0];\n const y = compressionLevel === 0 ? data.getFloat32(splatOffset + 4, true) : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) * compressionScaleFactor + bucketArray[3 * bucketIndex + 1];\n const z = compressionLevel === 0 ? data.getFloat32(splatOffset + 8, true) : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) * compressionScaleFactor + bucketArray[3 * bucketIndex + 2];\n const scaleX = compressionLevel === 0 ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true) : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY = compressionLevel === 0 ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true) : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ = compressionLevel === 0 ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true) : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n const quatW = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true)\n );\n const quatX = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true)\n );\n const quatY = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true)\n );\n const quatZ = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true)\n );\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n splatCallback(\n i2,\n x2,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b\n );\n if (sphericalHarmonicsDegree >= 1 && sh1) {\n for (const [i22, key] of sh1Index.entries()) {\n sh1[i22] = getSh(splatOffset, key);\n }\n if (sh2) {\n for (const [i22, key] of sh2Index.entries()) {\n sh2[i22] = getSh(splatOffset, key);\n }\n }\n if (sh3) {\n for (const [i22, key] of sh3Index.entries()) {\n sh3[i22] = getSh(splatOffset, key);\n }\n }\n shCallback == null ? void 0 : shCallback(i2, sh1, sh2, sh3);\n }\n }\n sectionBase += storageSizeBytes;\n }\n }\n function unpackKsplat(fileBytes, splatEncoding) {\n var _a2;\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n const numSplats = splatCount;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra = {};\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n for (let section = 0; section < maxSectionCount; ++section) {\n let getSh = function(splatOffset, component) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true\n )\n );\n }\n const t = data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) / 255;\n return minSphericalHarmonicsCoeff + t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff);\n };\n const section2 = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n const sectionSplatCount = section2.getUint32(0, true);\n const sectionMaxSplatCount = section2.getUint32(4, true);\n const bucketSize = section2.getUint32(8, true);\n const bucketCount = section2.getUint32(12, true);\n const bucketBlockSize = section2.getFloat32(16, true);\n const bucketStorageSizeBytes = section2.getUint16(20, true);\n const compressionScaleRange = (section2.getUint32(24, true) || ((_a2 = KSPLAT_COMPRESSION[compressionLevel]) == null ? void 0 : _a2.scaleRange)) ?? 1;\n const fullBucketCount = section2.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section2.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes = bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section2.getUint16(40, true);\n const shComponents = KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat = bytesPerCenter + bytesPerScale + bytesPerRotation + bytesPerColor + shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes = splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9,\n 14,\n 19,\n 10,\n 15,\n 20,\n 11,\n 16,\n 21,\n 12,\n 17,\n 22,\n 13,\n 18,\n 23\n ];\n const sh3Index = [\n 24,\n 31,\n 38,\n 25,\n 32,\n 39,\n 26,\n 33,\n 40,\n 27,\n 34,\n 41,\n 28,\n 35,\n 42,\n 29,\n 36,\n 43,\n 30,\n 37,\n 44\n ];\n const sh1 = sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : void 0;\n const sh2 = sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : void 0;\n const sh3 = sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : void 0;\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount\n );\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n for (let i2 = 0; i2 < sectionSplatCount; ++i2) {\n const splatOffset = i2 * bytesPerSplat;\n let bucketIndex;\n if (i2 < fullBucketSplats) {\n bucketIndex = Math.floor(i2 / bucketSize);\n } else {\n const bucketLength = partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i2 >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n const x2 = compressionLevel === 0 ? data.getFloat32(splatOffset + 0, true) : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) * compressionScaleFactor + bucketArray[3 * bucketIndex + 0];\n const y = compressionLevel === 0 ? data.getFloat32(splatOffset + 4, true) : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) * compressionScaleFactor + bucketArray[3 * bucketIndex + 1];\n const z = compressionLevel === 0 ? data.getFloat32(splatOffset + 8, true) : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) * compressionScaleFactor + bucketArray[3 * bucketIndex + 2];\n const scaleX = compressionLevel === 0 ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true) : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY = compressionLevel === 0 ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true) : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ = compressionLevel === 0 ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true) : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n const quatW = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true)\n );\n const quatX = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true)\n );\n const quatY = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true)\n );\n const quatZ = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true)\n );\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n setPackedSplat(\n packedArray,\n i2,\n x2,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding\n );\n if (sphericalHarmonicsDegree >= 1) {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n for (const [i22, key] of sh1Index.entries()) {\n sh1[i22] = getSh(splatOffset, key);\n }\n encodeSh1Rgb(extra.sh1, i2, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n for (const [i22, key] of sh2Index.entries()) {\n sh2[i22] = getSh(splatOffset, key);\n }\n encodeSh2Rgb(extra.sh2, i2, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n for (const [i22, key] of sh3Index.entries()) {\n sh3[i22] = getSh(splatOffset, key);\n }\n encodeSh3Rgb(extra.sh3, i2, sh3, splatEncoding);\n }\n }\n }\n sectionBase += storageSizeBytes;\n }\n return { packedArray, numSplats, extra };\n }\n const PLY_PROPERTY_TYPES = [\n "char",\n "uchar",\n "short",\n "ushort",\n "int",\n "uint",\n "float",\n "double"\n ];\n const _PlyReader = class _PlyReader {\n // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet\n constructor({ fileBytes }) {\n this.header = "";\n this.littleEndian = true;\n this.elements = {};\n this.comments = [];\n this.data = null;\n this.numSplats = 0;\n this.fileBytes = fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n }\n // Identify and parse the PLY text header (assumed to be <64KB in size).\n // this.elements will contain all the elements in the file, typically\n // "vertex" contains the Gsplat data.\n async parseHeader() {\n const bufferStream = new ReadableStream({\n start: (controller) => {\n controller.enqueue(this.fileBytes.slice(0, 65536));\n controller.close();\n }\n });\n const decoder = bufferStream.pipeThrough(new TextDecoderStream()).getReader();\n this.header = "";\n const headerTerminator = "end_header\\n";\n while (true) {\n const { value, done } = await decoder.read();\n if (done) {\n throw new Error("Failed to read header");\n }\n this.header += value;\n const endHeader = this.header.indexOf(headerTerminator);\n if (endHeader >= 0) {\n this.header = this.header.slice(0, endHeader + headerTerminator.length);\n break;\n }\n }\n const headerLen = new TextEncoder().encode(this.header).length;\n this.data = new DataView(this.fileBytes.buffer, headerLen);\n this.elements = {};\n let curElement = null;\n this.comments = [];\n this.header.trim().split("\\n").forEach((line, lineIndex) => {\n const trimmedLine = line.trim();\n if (lineIndex === 0) {\n if (trimmedLine !== "ply") {\n throw new Error("Invalid PLY header");\n }\n return;\n }\n if (trimmedLine.length === 0) {\n return;\n }\n const fields = trimmedLine.split(" ");\n switch (fields[0]) {\n case "format":\n if (fields[1] === "binary_little_endian") {\n this.littleEndian = true;\n } else if (fields[1] === "binary_big_endian") {\n this.littleEndian = false;\n } else {\n throw new Error(`Unsupported PLY format: ${fields[1]}`);\n }\n if (fields[2] !== "1.0") {\n throw new Error(`Unsupported PLY version: ${fields[2]}`);\n }\n break;\n case "end_header":\n break;\n case "comment":\n this.comments.push(trimmedLine.slice("comment ".length));\n break;\n case "element": {\n const name = fields[1];\n curElement = {\n name,\n count: Number.parseInt(fields[2]),\n properties: {}\n };\n this.elements[name] = curElement;\n break;\n }\n case "property":\n if (curElement == null) {\n throw new Error("Property must be inside an element");\n }\n if (fields[1] === "list") {\n curElement.properties[fields[4]] = {\n isList: true,\n type: fields[3],\n countType: fields[2]\n };\n } else {\n curElement.properties[fields[2]] = {\n isList: false,\n type: fields[1]\n };\n }\n break;\n }\n });\n if (this.elements.vertex) {\n this.numSplats = this.elements.vertex.count;\n }\n }\n parseData(elementCallback) {\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error("No data to parse");\n }\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const item = createEmptyItem(properties);\n const parseFn = createParseFn(properties, this.littleEndian);\n const callback = elementCallback(element) ?? (() => {\n });\n for (let index = 0; index < count; index++) {\n offset = parseFn(data, offset, item);\n callback(index, item);\n }\n }\n }\n // Parse all the Gsplat data in the PLY file in go, invoking the given\n // callbacks for each Gsplat.\n parseSplats(splatCallback, shCallback) {\n if (this.elements.vertex == null) {\n throw new Error("No vertex element found");\n }\n let isSuperSplat = false;\n const ssChunks = [];\n let numSh = 0;\n let sh1Props = [];\n let sh2Props = [];\n let sh3Props = [];\n let sh1 = void 0;\n let sh2 = void 0;\n let sh3 = void 0;\n function prepareSh() {\n const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh];\n sh1Props = new Array(3).fill(null).flatMap((_, k) => [0, 1, 2].map((_2, d) => k + d * num_f_rest / 3));\n sh2Props = new Array(5).fill(null).flatMap(\n (_, k) => [0, 1, 2].map((_2, d) => 3 + k + d * num_f_rest / 3)\n );\n sh3Props = new Array(7).fill(null).flatMap(\n (_, k) => [0, 1, 2].map((_2, d) => 8 + k + d * num_f_rest / 3)\n );\n sh1 = numSh >= 1 ? new Float32Array(3 * 3) : void 0;\n sh2 = numSh >= 2 ? new Float32Array(5 * 3) : void 0;\n sh3 = numSh >= 3 ? new Float32Array(7 * 3) : void 0;\n }\n function ssShCallback(index, item) {\n if (!sh1) {\n throw new Error("Missing sh1");\n }\n const sh = item.f_rest;\n for (let i2 = 0; i2 < sh1Props.length; i2++) {\n sh1[i2] = sh[sh1Props[i2]] * 8 / 255 - 4;\n }\n if (sh2) {\n for (let i2 = 0; i2 < sh2Props.length; i2++) {\n sh2[i2] = sh[sh2Props[i2]] * 8 / 255 - 4;\n }\n }\n if (sh3) {\n for (let i2 = 0; i2 < sh3Props.length; i2++) {\n sh3[i2] = sh[sh3Props[i2]] * 8 / 255 - 4;\n }\n }\n shCallback == null ? void 0 : shCallback(index, sh1, sh2, sh3);\n }\n function initSuperSplat(element) {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z\n } = element.properties;\n if (!min_x || !min_y || !min_z || !max_x || !max_y || !max_z || !min_scale_x || !min_scale_y || !min_scale_z || !max_scale_x || !max_scale_y || !max_scale_z) {\n throw new Error("Missing PLY chunk properties");\n }\n isSuperSplat = true;\n return (index, item) => {\n const {\n min_x: min_x2,\n min_y: min_y2,\n min_z: min_z2,\n max_x: max_x2,\n max_y: max_y2,\n max_z: max_z2,\n min_scale_x: min_scale_x2,\n min_scale_y: min_scale_y2,\n min_scale_z: min_scale_z2,\n max_scale_x: max_scale_x2,\n max_scale_y: max_scale_y2,\n max_scale_z: max_scale_z2,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b\n } = item;\n ssChunks.push({\n min_x: min_x2,\n min_y: min_y2,\n min_z: min_z2,\n max_x: max_x2,\n max_y: max_y2,\n max_z: max_z2,\n min_scale_x: min_scale_x2,\n min_scale_y: min_scale_y2,\n min_scale_z: min_scale_z2,\n max_scale_x: max_scale_x2,\n max_scale_y: max_scale_y2,\n max_scale_z: max_scale_z2,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b\n });\n };\n }\n function decodeSuperSplat(element) {\n if (shCallback && element.name === "sh") {\n numSh = getNumSh(element.properties);\n prepareSh();\n return ssShCallback;\n }\n if (element.name !== "vertex") {\n return null;\n }\n const { packed_position, packed_rotation, packed_scale, packed_color } = element.properties;\n if (!packed_position || !packed_rotation || !packed_scale || !packed_color) {\n throw new Error(\n "Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color"\n );\n }\n const SQRT2 = Math.sqrt(2);\n return (index, item) => {\n const chunk = ssChunks[index >>> 8];\n if (chunk == null) {\n throw new Error("Missing PLY chunk");\n }\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b\n } = chunk;\n const { packed_position: packed_position2, packed_rotation: packed_rotation2, packed_scale: packed_scale2, packed_color: packed_color2 } = item;\n const x2 = (packed_position2 >>> 21 & 2047) / 2047 * (max_x - min_x) + min_x;\n const y = (packed_position2 >>> 11 & 1023) / 1023 * (max_y - min_y) + min_y;\n const z = (packed_position2 & 2047) / 2047 * (max_z - min_z) + min_z;\n const r0 = ((packed_rotation2 >>> 20 & 1023) / 1023 - 0.5) * SQRT2;\n const r1 = ((packed_rotation2 >>> 10 & 1023) / 1023 - 0.5) * SQRT2;\n const r2 = ((packed_rotation2 & 1023) / 1023 - 0.5) * SQRT2;\n const rr = Math.sqrt(Math.max(0, 1 - r0 * r0 - r1 * r1 - r2 * r2));\n const rOrder = packed_rotation2 >>> 30;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n const scaleX = Math.exp(\n (packed_scale2 >>> 21 & 2047) / 2047 * (max_scale_x - min_scale_x) + min_scale_x\n );\n const scaleY = Math.exp(\n (packed_scale2 >>> 11 & 1023) / 1023 * (max_scale_y - min_scale_y) + min_scale_y\n );\n const scaleZ = Math.exp(\n (packed_scale2 & 2047) / 2047 * (max_scale_z - min_scale_z) + min_scale_z\n );\n const r = (packed_color2 >>> 24 & 255) / 255 * ((max_r ?? 1) - (min_r ?? 0)) + (min_r ?? 0);\n const g = (packed_color2 >>> 16 & 255) / 255 * ((max_g ?? 1) - (min_g ?? 0)) + (min_g ?? 0);\n const b = (packed_color2 >>> 8 & 255) / 255 * ((max_b ?? 1) - (min_b ?? 0)) + (min_b ?? 0);\n const opacity = (packed_color2 & 255) / 255;\n splatCallback(\n index,\n x2,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b\n );\n };\n }\n const elementCallback = (element) => {\n if (element.name === "chunk") {\n return initSuperSplat(element);\n }\n if (isSuperSplat) {\n return decodeSuperSplat(element);\n }\n if (element.name !== "vertex") {\n return null;\n }\n const {\n x: x2,\n y,\n z,\n scale_0,\n scale_1,\n scale_2,\n rot_0,\n rot_1,\n rot_2,\n rot_3,\n opacity,\n f_dc_0,\n f_dc_1,\n f_dc_2,\n red,\n green,\n blue,\n alpha\n } = element.properties;\n if (!x2 || !y || !z) {\n throw new Error("Missing PLY properties: x, y, z");\n }\n const hasScales = scale_0 && scale_1 && scale_2;\n const hasRots = rot_0 && rot_1 && rot_2 && rot_3;\n const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1;\n const redDiv = red != null ? FIELD_SCALE[red.type] : 1;\n const greenDiv = green != null ? FIELD_SCALE[green.type] : 1;\n const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1;\n numSh = getNumSh(element.properties);\n prepareSh();\n return (index, item) => {\n const scaleX = hasScales ? Math.exp(item.scale_0) : _PlyReader.defaultPointScale;\n const scaleY = hasScales ? Math.exp(item.scale_1) : _PlyReader.defaultPointScale;\n const scaleZ = hasScales ? Math.exp(item.scale_2) : _PlyReader.defaultPointScale;\n const quatX = hasRots ? item.rot_1 : 0;\n const quatY = hasRots ? item.rot_2 : 0;\n const quatZ = hasRots ? item.rot_3 : 0;\n const quatW = hasRots ? item.rot_0 : 1;\n const op = opacity != null ? 1 / (1 + Math.exp(-item.opacity)) : alpha != null ? item.alpha / alphaDiv : 1;\n const r = f_dc_0 != null ? item.f_dc_0 * SH_C0$1 + 0.5 : red != null ? item.red / redDiv : 1;\n const g = f_dc_1 != null ? item.f_dc_1 * SH_C0$1 + 0.5 : green != null ? item.green / greenDiv : 1;\n const b = f_dc_2 != null ? item.f_dc_2 * SH_C0$1 + 0.5 : blue != null ? item.blue / blueDiv : 1;\n splatCallback(\n index,\n item.x,\n item.y,\n item.z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n op,\n r,\n g,\n b\n );\n if (shCallback && sh1) {\n const sh = item.f_rest;\n if (sh1) {\n for (let i2 = 0; i2 < sh1Props.length; i2++) {\n sh1[i2] = sh[sh1Props[i2]];\n }\n }\n if (sh2) {\n for (let i2 = 0; i2 < sh2Props.length; i2++) {\n sh2[i2] = sh[sh2Props[i2]];\n }\n }\n if (sh3) {\n for (let i2 = 0; i2 < sh3Props.length; i2++) {\n sh3[i2] = sh[sh3Props[i2]];\n }\n }\n shCallback(index, sh1, sh2, sh3);\n }\n };\n };\n this.parseData(elementCallback);\n }\n // Inject RGBA values into original PLY file, which can be used to modify\n // the color/opacity of the Gsplats and write out the modified PLY file.\n injectRgba(rgba) {\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error("No parsed data");\n }\n if (rgba.length !== this.numSplats * 4) {\n throw new Error("Invalid RGBA array length");\n }\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const parsers = [];\n let rgbaOffset = 0;\n const isVertex = elementName === "vertex";\n if (isVertex) {\n for (const name of ["opacity", "f_dc_0", "f_dc_1", "f_dc_2"]) {\n if (!properties[name] || properties[name].type !== "float") {\n throw new Error(`Can\'t injectRgba due to property: ${name}`);\n }\n }\n }\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!property.isList) {\n if (isVertex) {\n if (propertyName === "f_dc_0" || propertyName === "f_dc_1" || propertyName === "f_dc_2") {\n const component = Number.parseInt(\n propertyName.slice("f_dc_".length)\n );\n parsers.push(() => {\n const value = (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0$1;\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value\n );\n });\n } else if (propertyName === "opacity") {\n parsers.push(() => {\n const value = Math.max(\n -100,\n Math.min(\n 100,\n -Math.log(1 / (rgba[rgbaOffset + 3] / 255) - 1)\n )\n );\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value\n );\n });\n }\n }\n parsers.push(() => {\n offset += FIELD_BYTES[property.type];\n });\n } else {\n parsers.push(() => {\n const length = PARSE_FIELD[property.countType](\n data,\n offset,\n this.littleEndian\n );\n offset += FIELD_BYTES[property.countType];\n offset += length * FIELD_BYTES[property.type];\n });\n }\n }\n for (let index = 0; index < count; index++) {\n for (const parser of parsers) {\n parser();\n }\n if (isVertex) {\n rgbaOffset += 4;\n }\n }\n }\n }\n };\n _PlyReader.defaultPointScale = 1e-3;\n let PlyReader = _PlyReader;\n const SH_C0$1 = 0.28209479177387814;\n const PARSE_FIELD = {\n char: (data, offset, littleEndian) => {\n return data.getInt8(offset);\n },\n uchar: (data, offset, littleEndian) => {\n return data.getUint8(offset);\n },\n short: (data, offset, littleEndian) => {\n return data.getInt16(offset, littleEndian);\n },\n ushort: (data, offset, littleEndian) => {\n return data.getUint16(offset, littleEndian);\n },\n int: (data, offset, littleEndian) => {\n return data.getInt32(offset, littleEndian);\n },\n uint: (data, offset, littleEndian) => {\n return data.getUint32(offset, littleEndian);\n },\n float: (data, offset, littleEndian) => {\n return data.getFloat32(offset, littleEndian);\n },\n double: (data, offset, littleEndian) => {\n return data.getFloat64(offset, littleEndian);\n }\n };\n const SET_FIELD = {\n char: (data, offset, littleEndian, value) => {\n data.setInt8(offset, value);\n },\n uchar: (data, offset, littleEndian, value) => {\n data.setUint8(offset, value);\n },\n short: (data, offset, littleEndian, value) => {\n data.setInt16(offset, value, littleEndian);\n },\n ushort: (data, offset, littleEndian, value) => {\n data.setUint16(offset, value, littleEndian);\n },\n int: (data, offset, littleEndian, value) => {\n data.setInt32(offset, value, littleEndian);\n },\n uint: (data, offset, littleEndian, value) => {\n data.setUint32(offset, value, littleEndian);\n },\n float: (data, offset, littleEndian, value) => {\n data.setFloat32(offset, value, littleEndian);\n },\n double: (data, offset, littleEndian, value) => {\n data.setFloat64(offset, value, littleEndian);\n }\n };\n const FIELD_BYTES = {\n char: 1,\n uchar: 1,\n short: 2,\n ushort: 2,\n int: 4,\n uint: 4,\n float: 4,\n double: 8\n };\n const FIELD_SCALE = {\n char: 127,\n uchar: 255,\n short: 32767,\n ushort: 65535,\n int: 2147483647,\n uint: 4294967295,\n float: 1,\n double: 1\n };\n const NUM_F_REST_TO_NUM_SH = {\n 0: 0,\n 9: 1,\n 24: 2,\n 45: 3\n };\n const NUM_SH_TO_NUM_F_REST = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45\n };\n const F_REST_REGEX = /^f_rest_([0-9]{1,2})$/;\n function createEmptyItem(properties) {\n const item = {};\n for (const [propertyName, property] of Object.entries(properties)) {\n if (F_REST_REGEX.test(propertyName)) {\n item.f_rest = new Array(getNumSh(properties));\n } else {\n item[propertyName] = property.isList ? [] : 0;\n }\n }\n return item;\n }\n function createParseFn(properties, littleEndian) {\n if (safeToCompile(properties)) {\n return createCompiledParserFn(properties, littleEndian);\n }\n return createDynamicParserFn(properties, littleEndian);\n }\n const UNSAFE_EVAL_ALLOWED = (() => {\n try {\n new Function("return 42;");\n } catch (e) {\n return false;\n }\n return true;\n })();\n const PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/;\n function safeToCompile(properties) {\n if (!UNSAFE_EVAL_ALLOWED) {\n return false;\n }\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!PROPERTY_NAME_REGEX.test(propertyName)) {\n return false;\n }\n if (property.isList && !PLY_PROPERTY_TYPES.includes(property.countType)) {\n return false;\n }\n if (!PLY_PROPERTY_TYPES.includes(property.type)) {\n return false;\n }\n }\n return true;\n }\n function createCompiledParserFn(properties, littleEndian) {\n const parserSrc = ["let list;"];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parserSrc.push(\n /*js*/\n `\n item.f_rest[${fRestIndex}] = PARSE_FIELD[\'${property.type}\'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `\n );\n } else if (!property.isList) {\n parserSrc.push(\n /*js*/\n `\n item[\'${propertyName}\'] = PARSE_FIELD[\'${property.type}\'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `\n );\n } else {\n parserSrc.push(\n /*js*/\n `\n list = item[\'${propertyName}\'];\n list.length = PARSE_FIELD[\'${property.countType}\'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.countType]};\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD[\'${property.type}\'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n }\n `\n );\n }\n }\n parserSrc.push("return offset;");\n const fn = new Function(\n "data",\n "offset",\n "item",\n "PARSE_FIELD",\n parserSrc.join("\\n")\n );\n return (data, offset, item) => fn(data, offset, item, PARSE_FIELD);\n }\n function createDynamicParserFn(properties, littleEndian) {\n const parsers = [];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parsers.push(\n (data, offset, item) => {\n item.f_rest[fRestIndex] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian\n );\n return offset + FIELD_BYTES[property.type];\n }\n );\n } else if (!property.isList) {\n parsers.push(\n (data, offset, item) => {\n item[propertyName] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian\n );\n return offset + FIELD_BYTES[property.type];\n }\n );\n } else {\n parsers.push(\n (data, offset, item) => {\n const list = item[propertyName];\n list.length = PARSE_FIELD[property.countType](\n data,\n offset,\n littleEndian\n );\n let currentOffset = offset + FIELD_BYTES[property.countType];\n for (let i2 = 0; i2 < list.length; i2++) {\n list[i2] = PARSE_FIELD[property.type](\n data,\n currentOffset,\n littleEndian\n );\n currentOffset += FIELD_BYTES[property.type];\n }\n return currentOffset;\n }\n );\n }\n }\n return (data, offset, item) => {\n let currentOffset = offset;\n for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) {\n currentOffset = parsers[parserIndex](data, currentOffset, item);\n }\n return currentOffset;\n };\n }\n function getNumSh(properties) {\n let num_f_rest = 0;\n while (properties[`f_rest_${num_f_rest}`]) {\n num_f_rest += 1;\n }\n const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest];\n if (numSh == null) {\n throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`);\n }\n return numSh;\n }\n class SpzReader {\n constructor({ fileBytes }) {\n this.version = -1;\n this.numSplats = 0;\n this.shDegree = 0;\n this.fractionalBits = 0;\n this.flags = 0;\n this.flagAntiAlias = false;\n this.flagLod = false;\n this.reserved = 0;\n this.headerParsed = false;\n this.parsed = false;\n this.fileBytes = fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n this.reader = new GunzipReader({\n fileBytes: this.fileBytes\n });\n }\n async parseHeader() {\n if (this.headerParsed) {\n throw new Error("SPZ file header already parsed");\n }\n const header = new DataView((await this.reader.read(16)).buffer);\n if (header.getUint32(0, true) !== 1347635022) {\n throw new Error("Invalid SPZ file");\n }\n this.version = header.getUint32(4, true);\n if (this.version < 1 || this.version > 3) {\n throw new Error(`Unsupported SPZ version: ${this.version}`);\n }\n this.numSplats = header.getUint32(8, true);\n this.shDegree = header.getUint8(12);\n this.fractionalBits = header.getUint8(13);\n this.flags = header.getUint8(14);\n this.flagAntiAlias = (this.flags & 1) !== 0;\n this.flagLod = (this.flags & 128) !== 0;\n this.reserved = header.getUint8(15);\n this.headerParsed = true;\n this.parsed = false;\n }\n async parseSplats(centerCallback, alphaCallback, rgbCallback, scalesCallback, quatCallback, shCallback, {\n childCounts,\n childStarts\n } = {}) {\n if (!this.headerParsed) {\n throw new Error("SPZ file header must be parsed first");\n }\n if (this.parsed) {\n throw new Error("SPZ file already parsed");\n }\n this.parsed = true;\n if (this.version === 1) {\n const centerBytes = await this.reader.read(this.numSplats * 3 * 2);\n const centerUint16 = new Uint16Array(centerBytes.buffer);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i3 = i2 * 3;\n const x2 = fromHalf(centerUint16[i3]);\n const y = fromHalf(centerUint16[i3 + 1]);\n const z = fromHalf(centerUint16[i3 + 2]);\n centerCallback == null ? void 0 : centerCallback(i2, x2, y, z);\n }\n } else if (this.version === 2 || this.version === 3) {\n const fixed = 1 << this.fractionalBits;\n const centerBytes = await this.reader.read(this.numSplats * 3 * 3);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i9 = i2 * 9;\n const x2 = ((centerBytes[i9 + 2] << 24 | centerBytes[i9 + 1] << 16 | centerBytes[i9] << 8) >> 8) / fixed;\n const y = ((centerBytes[i9 + 5] << 24 | centerBytes[i9 + 4] << 16 | centerBytes[i9 + 3] << 8) >> 8) / fixed;\n const z = ((centerBytes[i9 + 8] << 24 | centerBytes[i9 + 7] << 16 | centerBytes[i9 + 6] << 8) >> 8) / fixed;\n centerCallback == null ? void 0 : centerCallback(i2, x2, y, z);\n }\n } else {\n throw new Error("Unreachable");\n }\n {\n const bytes = await this.reader.read(this.numSplats);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n alphaCallback == null ? void 0 : alphaCallback(i2, bytes[i2] / 255);\n }\n }\n {\n const rgbBytes = await this.reader.read(this.numSplats * 3);\n const scale = SH_C0 / 0.15;\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i3 = i2 * 3;\n const r = (rgbBytes[i3] / 255 - 0.5) * scale + 0.5;\n const g = (rgbBytes[i3 + 1] / 255 - 0.5) * scale + 0.5;\n const b = (rgbBytes[i3 + 2] / 255 - 0.5) * scale + 0.5;\n rgbCallback == null ? void 0 : rgbCallback(i2, r, g, b);\n }\n }\n {\n const scalesBytes = await this.reader.read(this.numSplats * 3);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i3 = i2 * 3;\n const scaleX = Math.exp(scalesBytes[i3] / 16 - 10);\n const scaleY = Math.exp(scalesBytes[i3 + 1] / 16 - 10);\n const scaleZ = Math.exp(scalesBytes[i3 + 2] / 16 - 10);\n scalesCallback == null ? void 0 : scalesCallback(i2, scaleX, scaleY, scaleZ);\n }\n }\n if (this.version === 3) {\n const maxValue = 1 / Math.sqrt(2);\n const quatBytes = await this.reader.read(this.numSplats * 4);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i3 = i2 * 4;\n const quaternion = [0, 0, 0, 0];\n const values = [\n quatBytes[i3],\n quatBytes[i3 + 1],\n quatBytes[i3 + 2],\n quatBytes[i3 + 3]\n ];\n const combinedValues = values[0] + (values[1] << 8) + (values[2] << 16) + (values[3] << 24);\n const valueMask = (1 << 9) - 1;\n const largestIndex = combinedValues >>> 30;\n let remainingValues = combinedValues;\n let sumSquares = 0;\n for (let i22 = 3; i22 >= 0; --i22) {\n if (i22 !== largestIndex) {\n const value = remainingValues & valueMask;\n const sign = remainingValues >>> 9 & 1;\n remainingValues = remainingValues >>> 10;\n quaternion[i22] = maxValue * (value / valueMask);\n quaternion[i22] = sign === 0 ? quaternion[i22] : -quaternion[i22];\n sumSquares += quaternion[i22] * quaternion[i22];\n }\n }\n const square = 1 - sumSquares;\n quaternion[largestIndex] = Math.sqrt(Math.max(square, 0));\n quatCallback == null ? void 0 : quatCallback(\n i2,\n quaternion[0],\n quaternion[1],\n quaternion[2],\n quaternion[3]\n );\n }\n } else {\n const quatBytes = await this.reader.read(this.numSplats * 3);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i3 = i2 * 3;\n const quatX = quatBytes[i3] / 127.5 - 1;\n const quatY = quatBytes[i3 + 1] / 127.5 - 1;\n const quatZ = quatBytes[i3 + 2] / 127.5 - 1;\n const quatW = Math.sqrt(\n Math.max(0, 1 - quatX * quatX - quatY * quatY - quatZ * quatZ)\n );\n quatCallback == null ? void 0 : quatCallback(i2, quatX, quatY, quatZ, quatW);\n }\n }\n if (shCallback && this.shDegree >= 1) {\n const sh1 = new Float32Array(3 * 3);\n const sh2 = this.shDegree >= 2 ? new Float32Array(5 * 3) : void 0;\n const sh3 = this.shDegree >= 3 ? new Float32Array(7 * 3) : void 0;\n const shBytes = await this.reader.read(\n this.numSplats * SH_DEGREE_TO_VECS[this.shDegree] * 3\n );\n let offset = 0;\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n for (let j = 0; j < 9; ++j) {\n sh1[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 9;\n if (sh2) {\n for (let j = 0; j < 15; ++j) {\n sh2[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 15;\n }\n if (sh3) {\n for (let j = 0; j < 21; ++j) {\n sh3[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 21;\n }\n shCallback == null ? void 0 : shCallback(i2, sh1, sh2, sh3);\n }\n }\n if (this.flagLod) {\n let bytes = await this.reader.read(this.numSplats * 2);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i22 = i2 * 2;\n const count = bytes[i22] + (bytes[i22 + 1] << 8);\n childCounts == null ? void 0 : childCounts(i2, count);\n }\n bytes = await this.reader.read(this.numSplats * 4);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i4 = i2 * 4;\n const start = bytes[i4] + (bytes[i4 + 1] << 8) + (bytes[i4 + 2] << 16) + (bytes[i4 + 3] << 24);\n childStarts == null ? void 0 : childStarts(i2, start);\n }\n }\n }\n }\n const SH_DEGREE_TO_VECS = { 1: 3, 2: 8, 3: 15 };\n const SH_C0 = 0.28209479177387814;\n const SPZ_MAGIC = 1347635022;\n const SPZ_VERSION = 3;\n const FLAG_ANTIALIASED = 1;\n class SpzWriter {\n constructor({\n numSplats,\n shDegree,\n fractionalBits = 12,\n flagAntiAlias = true\n }) {\n this.clippedCount = 0;\n const splatSize = 9 + // Position\n 1 + // Opacity\n 3 + // Scale\n 3 + // DC-rgb\n 4 + // Rotation\n (shDegree >= 1 ? 9 : 0) + (shDegree >= 2 ? 15 : 0) + (shDegree >= 3 ? 21 : 0);\n const bufferSize = 16 + numSplats * splatSize;\n this.buffer = new ArrayBuffer(bufferSize);\n this.view = new DataView(this.buffer);\n this.view.setUint32(0, SPZ_MAGIC, true);\n this.view.setUint32(4, SPZ_VERSION, true);\n this.view.setUint32(8, numSplats, true);\n this.view.setUint8(12, shDegree);\n this.view.setUint8(13, fractionalBits);\n this.view.setUint8(14, flagAntiAlias ? FLAG_ANTIALIASED : 0);\n this.view.setUint8(15, 0);\n this.numSplats = numSplats;\n this.shDegree = shDegree;\n this.fractionalBits = fractionalBits;\n this.fraction = 1 << fractionalBits;\n this.flagAntiAlias = flagAntiAlias;\n }\n setCenter(index, x2, y, z) {\n const xRounded = Math.round(x2 * this.fraction);\n const xInt = Math.max(-8388607, Math.min(8388607, xRounded));\n const yRounded = Math.round(y * this.fraction);\n const yInt = Math.max(-8388607, Math.min(8388607, yRounded));\n const zRounded = Math.round(z * this.fraction);\n const zInt = Math.max(-8388607, Math.min(8388607, zRounded));\n const clipped = xRounded !== xInt || yRounded !== yInt || zRounded !== zInt;\n if (clipped) {\n this.clippedCount += 1;\n }\n const i9 = index * 9;\n const base = 16 + i9;\n this.view.setUint8(base, xInt & 255);\n this.view.setUint8(base + 1, xInt >> 8 & 255);\n this.view.setUint8(base + 2, xInt >> 16 & 255);\n this.view.setUint8(base + 3, yInt & 255);\n this.view.setUint8(base + 4, yInt >> 8 & 255);\n this.view.setUint8(base + 5, yInt >> 16 & 255);\n this.view.setUint8(base + 6, zInt & 255);\n this.view.setUint8(base + 7, zInt >> 8 & 255);\n this.view.setUint8(base + 8, zInt >> 16 & 255);\n }\n setAlpha(index, alpha) {\n const base = 16 + this.numSplats * 9 + index;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round(alpha * 255)))\n );\n }\n static scaleRgb(r) {\n const v = ((r - 0.5) / (SH_C0 / 0.15) + 0.5) * 255;\n return Math.max(0, Math.min(255, Math.round(v)));\n }\n setRgb(index, r, g, b) {\n const base = 16 + this.numSplats * 10 + index * 3;\n this.view.setUint8(base, SpzWriter.scaleRgb(r));\n this.view.setUint8(base + 1, SpzWriter.scaleRgb(g));\n this.view.setUint8(base + 2, SpzWriter.scaleRgb(b));\n }\n setScale(index, scaleX, scaleY, scaleZ) {\n const base = 16 + this.numSplats * 13 + index * 3;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleX) + 10) * 16)))\n );\n this.view.setUint8(\n base + 1,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleY) + 10) * 16)))\n );\n this.view.setUint8(\n base + 2,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleZ) + 10) * 16)))\n );\n }\n setQuat(index, ...q) {\n const base = 16 + this.numSplats * 16 + index * 4;\n const quat = normalize(q);\n let iLargest = 0;\n for (let i2 = 1; i2 < 4; ++i2) {\n if (Math.abs(quat[i2]) > Math.abs(quat[iLargest])) {\n iLargest = i2;\n }\n }\n const negate = quat[iLargest] < 0 ? 1 : 0;\n let comp = iLargest;\n for (let i2 = 0; i2 < 4; ++i2) {\n if (i2 !== iLargest) {\n const negbit = (quat[i2] < 0 ? 1 : 0) ^ negate;\n const mag = Math.floor(\n ((1 << 9) - 1) * (Math.abs(quat[i2]) / Math.SQRT1_2) + 0.5\n );\n comp = comp << 10 | negbit << 9 | mag;\n }\n }\n this.view.setUint8(base, comp & 255);\n this.view.setUint8(base + 1, comp >> 8 & 255);\n this.view.setUint8(base + 2, comp >> 16 & 255);\n this.view.setUint8(base + 3, comp >>> 24 & 255);\n }\n static quantizeSh(sh, bits2) {\n const value = Math.round(sh * 128) + 128;\n const bucketSize = 1 << 8 - bits2;\n const quantized = Math.floor((value + bucketSize / 2) / bucketSize) * bucketSize;\n return Math.max(0, Math.min(255, quantized));\n }\n setSh(index, sh1, sh2, sh3) {\n const shVecs = SH_DEGREE_TO_VECS[this.shDegree] || 0;\n const base1 = 16 + this.numSplats * 20 + index * shVecs * 3;\n for (let j = 0; j < 9; ++j) {\n this.view.setUint8(base1 + j, SpzWriter.quantizeSh(sh1[j], 5));\n }\n if (sh2) {\n const base2 = base1 + 9;\n for (let j = 0; j < 15; ++j) {\n this.view.setUint8(base2 + j, SpzWriter.quantizeSh(sh2[j], 4));\n }\n if (sh3) {\n const base3 = base2 + 15;\n for (let j = 0; j < 21; ++j) {\n this.view.setUint8(base3 + j, SpzWriter.quantizeSh(sh3[j], 4));\n }\n }\n }\n }\n async finalize() {\n const input = new Uint8Array(this.buffer);\n const stream = new ReadableStream({\n async start(controller) {\n controller.enqueue(input);\n controller.close();\n }\n });\n const compressed = stream.pipeThrough(new CompressionStream("gzip"));\n const response = new Response(compressed);\n const buffer = await response.arrayBuffer();\n console.log(\n "Compressed",\n input.length,\n "bytes to",\n buffer.byteLength,\n "bytes"\n );\n return new Uint8Array(buffer);\n }\n }\n async function transcodeSpz(input) {\n var _a2, _b2, _c;\n const splats = new SplatData();\n const {\n inputs,\n clipXyz,\n maxSh,\n fractionalBits = 12,\n opacityThreshold\n } = input;\n for (const input2 of inputs) {\n let transformPos = function(pos) {\n pos.multiplyScalar(scale);\n pos.applyQuaternion(quaternion);\n pos.add(translate);\n return pos;\n }, transformScales = function(scales) {\n scales.multiplyScalar(scale);\n return scales;\n }, transformQuaternion = function(quat) {\n quat.premultiply(quaternion);\n return quat;\n }, withinClip = function(p) {\n return !clip || clip.containsPoint(p);\n }, withinOpacity = function(opacity) {\n return opacityThreshold !== void 0 ? opacity >= opacityThreshold : true;\n };\n const scale = ((_a2 = input2.transform) == null ? void 0 : _a2.scale) ?? 1;\n const quaternion = new Quaternion().fromArray(\n ((_b2 = input2.transform) == null ? void 0 : _b2.quaternion) ?? [0, 0, 0, 1]\n );\n const translate = new Vector3().fromArray(\n ((_c = input2.transform) == null ? void 0 : _c.translate) ?? [0, 0, 0]\n );\n const clip = clipXyz ? new Box3(\n new Vector3().fromArray(clipXyz.min),\n new Vector3().fromArray(clipXyz.max)\n ) : void 0;\n let fileType = input2.fileType;\n if (!fileType) {\n fileType = getSplatFileType(input2.fileBytes);\n if (!fileType && input2.pathOrUrl) {\n fileType = getSplatFileTypeFromPath(input2.pathOrUrl);\n }\n }\n switch (fileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes: input2.fileBytes });\n await ply.parseHeader();\n let lastIndex = null;\n ply.parseSplats(\n (index, x2, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b) => {\n const center = transformPos(new Vector3(x2, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new Vector3(scaleX, scaleY, scaleZ)\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion2 = transformQuaternion(\n new Quaternion(quatX, quatY, quatZ, quatW)\n );\n splats.setQuaternion(\n lastIndex,\n quaternion2.x,\n quaternion2.y,\n quaternion2.z,\n quaternion2.w\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (sh1 && lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n }\n if (sh2 && lastIndex !== null) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3 && lastIndex !== null) {\n splats.setSh3(lastIndex, sh3);\n }\n }\n );\n break;\n }\n case SplatFileType.SPZ: {\n const spz2 = new SpzReader({ fileBytes: input2.fileBytes });\n await spz2.parseHeader();\n const mapping = new Int32Array(spz2.numSplats);\n mapping.fill(-1);\n const centers = new Float32Array(spz2.numSplats * 3);\n const center = new Vector3();\n spz2.parseSplats(\n (index, x2, y, z) => {\n const center2 = transformPos(new Vector3(x2, y, z));\n centers[index * 3] = center2.x;\n centers[index * 3 + 1] = center2.y;\n centers[index * 3 + 2] = center2.z;\n },\n (index, alpha) => {\n center.fromArray(centers, index * 3);\n if (withinClip(center) && withinOpacity(alpha)) {\n mapping[index] = splats.pushSplat();\n splats.setCenter(mapping[index], center.x, center.y, center.z);\n splats.setOpacity(mapping[index], alpha);\n }\n },\n (index, r, g, b) => {\n if (mapping[index] >= 0) {\n splats.setColor(mapping[index], r, g, b);\n }\n },\n (index, scaleX, scaleY, scaleZ) => {\n if (mapping[index] >= 0) {\n const scales = transformScales(\n new Vector3(scaleX, scaleY, scaleZ)\n );\n splats.setScale(mapping[index], scales.x, scales.y, scales.z);\n }\n },\n (index, quatX, quatY, quatZ, quatW) => {\n if (mapping[index] >= 0) {\n const quaternion2 = transformQuaternion(\n new Quaternion(quatX, quatY, quatZ, quatW)\n );\n splats.setQuaternion(\n mapping[index],\n quaternion2.x,\n quaternion2.y,\n quaternion2.z,\n quaternion2.w\n );\n }\n },\n (index, sh1, sh2, sh3) => {\n if (mapping[index] >= 0) {\n splats.setSh1(mapping[index], sh1);\n if (sh2) {\n splats.setSh2(mapping[index], sh2);\n }\n if (sh3) {\n splats.setSh3(mapping[index], sh3);\n }\n }\n }\n );\n break;\n }\n case SplatFileType.SPLAT:\n decodeAntiSplat(\n input2.fileBytes,\n (numSplats) => {\n },\n (index, x2, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b) => {\n const center = transformPos(new Vector3(x2, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n const index2 = splats.pushSplat();\n splats.setCenter(index2, center.x, center.y, center.z);\n const scales = transformScales(\n new Vector3(scaleX, scaleY, scaleZ)\n );\n splats.setScale(index2, scales.x, scales.y, scales.z);\n const quaternion2 = transformQuaternion(\n new Quaternion(quatX, quatY, quatZ, quatW)\n );\n splats.setQuaternion(\n index2,\n quaternion2.x,\n quaternion2.y,\n quaternion2.z,\n quaternion2.w\n );\n splats.setOpacity(index2, opacity);\n splats.setColor(index2, r, g, b);\n }\n }\n );\n break;\n case SplatFileType.KSPLAT: {\n let lastIndex = null;\n decodeKsplat(\n input2.fileBytes,\n (numSplats) => {\n },\n (index, x2, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b) => {\n const center = transformPos(new Vector3(x2, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new Vector3(scaleX, scaleY, scaleZ)\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion2 = transformQuaternion(\n new Quaternion(quatX, quatY, quatZ, quatW)\n );\n splats.setQuaternion(\n lastIndex,\n quaternion2.x,\n quaternion2.y,\n quaternion2.z,\n quaternion2.w\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n if (sh2) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3) {\n splats.setSh3(lastIndex, sh3);\n }\n }\n }\n );\n break;\n }\n default:\n throw new Error(`transcodeSpz not implemented for ${fileType}`);\n }\n }\n const shDegree = Math.min(\n maxSh ?? 3,\n splats.sh3 ? 3 : splats.sh2 ? 2 : splats.sh1 ? 1 : 0\n );\n const spz = new SpzWriter({\n numSplats: splats.numSplats,\n shDegree,\n fractionalBits,\n flagAntiAlias: true\n });\n for (let i2 = 0; i2 < splats.numSplats; ++i2) {\n const i3 = i2 * 3;\n const i4 = i2 * 4;\n spz.setCenter(\n i2,\n splats.centers[i3],\n splats.centers[i3 + 1],\n splats.centers[i3 + 2]\n );\n spz.setScale(\n i2,\n splats.scales[i3],\n splats.scales[i3 + 1],\n splats.scales[i3 + 2]\n );\n spz.setQuat(\n i2,\n splats.quaternions[i4],\n splats.quaternions[i4 + 1],\n splats.quaternions[i4 + 2],\n splats.quaternions[i4 + 3]\n );\n spz.setAlpha(i2, splats.opacities[i2]);\n spz.setRgb(\n i2,\n splats.colors[i3],\n splats.colors[i3 + 1],\n splats.colors[i3 + 2]\n );\n if (splats.sh1 && shDegree >= 1) {\n spz.setSh(\n i2,\n splats.sh1.slice(i2 * 9, (i2 + 1) * 9),\n shDegree >= 2 && splats.sh2 ? splats.sh2.slice(i2 * 15, (i2 + 1) * 15) : void 0,\n shDegree >= 3 && splats.sh3 ? splats.sh3.slice(i2 * 21, (i2 + 1) * 21) : void 0\n );\n }\n }\n const spzBytes = await spz.finalize();\n return { fileBytes: spzBytes, clippedCount: spz.clippedCount };\n }\n function getSplatFileType(fileBytes) {\n const view = new DataView(fileBytes.buffer);\n const magic = view.getUint32(0, true);\n if ((magic & 16777215) === 7957616) {\n return SplatFileType.PLY;\n }\n if ((magic & 16777215) === 559903) {\n const header = decompressPartialGzip(fileBytes, 4);\n const gView = new DataView(header.buffer);\n if (gView.getUint32(0, true) === 1347635022) {\n return SplatFileType.SPZ;\n }\n return void 0;\n }\n if (magic === 67324752) {\n if (tryPcSogsZip(fileBytes)) {\n return SplatFileType.PCSOGSZIP;\n }\n return void 0;\n }\n if (magic === 809779538) {\n return SplatFileType.RAD;\n }\n return void 0;\n }\n function getFileExtension(pathOrUrl) {\n const noTrailing = pathOrUrl.split(/[?#]/, 1)[0];\n const lastSlash = Math.max(\n noTrailing.lastIndexOf("/"),\n noTrailing.lastIndexOf("\\\\")\n );\n const filename = noTrailing.slice(lastSlash + 1);\n const lastDot = filename.lastIndexOf(".");\n if (lastDot <= 0 || lastDot === filename.length - 1) {\n return "";\n }\n return filename.slice(lastDot + 1).toLowerCase();\n }\n function getSplatFileTypeFromPath(pathOrUrl) {\n const extension = getFileExtension(pathOrUrl);\n if (extension === "ply") {\n return SplatFileType.PLY;\n }\n if (extension === "spz") {\n return SplatFileType.SPZ;\n }\n if (extension === "splat") {\n return SplatFileType.SPLAT;\n }\n if (extension === "ksplat") {\n return SplatFileType.KSPLAT;\n }\n if (extension === "sog") {\n return SplatFileType.PCSOGSZIP;\n }\n if (extension === "rad") {\n return SplatFileType.RAD;\n }\n return void 0;\n }\n function tryPcSogs(input) {\n try {\n let text;\n if (typeof input === "string") {\n text = input;\n } else {\n const fileBytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n if (fileBytes.length > 65536) {\n return void 0;\n }\n text = new TextDecoder().decode(fileBytes);\n }\n const json = JSON.parse(text);\n if (!json || typeof json !== "object" || Array.isArray(json)) {\n return void 0;\n }\n const isVersion2 = json.version === 2;\n for (const key of ["means", "scales", "quats", "sh0"]) {\n if (!json[key] || typeof json[key] !== "object" || Array.isArray(json[key])) {\n return void 0;\n }\n if (isVersion2) {\n if (!json[key].files) {\n return void 0;\n }\n if ((key === "scales" || key === "sh0") && !json[key].codebook) {\n return void 0;\n }\n if (key === "means" && (!json[key].mins || !json[key].maxs)) {\n return void 0;\n }\n } else {\n if (!json[key].shape || !json[key].files) {\n return void 0;\n }\n if (key !== "quats" && (!json[key].mins || !json[key].maxs)) {\n return void 0;\n }\n }\n }\n return json;\n } catch {\n return void 0;\n }\n }\n function tryPcSogsZip(input) {\n try {\n const fileBytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let metaFilename = null;\n const unzipped = unzipSync(fileBytes, {\n filter: ({ name }) => {\n const filename = name.split(/[\\\\/]/).pop();\n if (filename === "meta.json") {\n metaFilename = name;\n return true;\n }\n return false;\n }\n });\n if (!metaFilename) {\n return void 0;\n }\n const json = tryPcSogs(unzipped[metaFilename]);\n if (!json) {\n return void 0;\n }\n return { name: metaFilename, json };\n } catch {\n return void 0;\n }\n }\n class SplatData {\n constructor({ maxSplats = 1 } = {}) {\n this.numSplats = 0;\n this.maxSplats = getTextureSize(maxSplats).maxSplats;\n this.centers = new Float32Array(this.maxSplats * 3);\n this.scales = new Float32Array(this.maxSplats * 3);\n this.quaternions = new Float32Array(this.maxSplats * 4);\n this.opacities = new Float32Array(this.maxSplats);\n this.colors = new Float32Array(this.maxSplats * 3);\n }\n pushSplat() {\n const index = this.numSplats;\n this.ensureIndex(index);\n this.numSplats += 1;\n return index;\n }\n unpushSplat(index) {\n if (index === this.numSplats - 1) {\n this.numSplats -= 1;\n } else {\n throw new Error("Cannot unpush splat from non-last position");\n }\n }\n ensureCapacity(numSplats) {\n if (numSplats > this.maxSplats) {\n const targetSplats = Math.max(numSplats, this.maxSplats * 2);\n const newCenters = new Float32Array(targetSplats * 3);\n const newScales = new Float32Array(targetSplats * 3);\n const newQuaternions = new Float32Array(targetSplats * 4);\n const newOpacities = new Float32Array(targetSplats);\n const newColors = new Float32Array(targetSplats * 3);\n newCenters.set(this.centers);\n newScales.set(this.scales);\n newQuaternions.set(this.quaternions);\n newOpacities.set(this.opacities);\n newColors.set(this.colors);\n this.centers = newCenters;\n this.scales = newScales;\n this.quaternions = newQuaternions;\n this.opacities = newOpacities;\n this.colors = newColors;\n if (this.sh1) {\n const newSh1 = new Float32Array(targetSplats * 9);\n newSh1.set(this.sh1);\n this.sh1 = newSh1;\n }\n if (this.sh2) {\n const newSh2 = new Float32Array(targetSplats * 15);\n newSh2.set(this.sh2);\n this.sh2 = newSh2;\n }\n if (this.sh3) {\n const newSh3 = new Float32Array(targetSplats * 21);\n newSh3.set(this.sh3);\n this.sh3 = newSh3;\n }\n this.maxSplats = targetSplats;\n }\n }\n ensureIndex(index) {\n this.ensureCapacity(index + 1);\n }\n setCenter(index, x2, y, z) {\n this.centers[index * 3] = x2;\n this.centers[index * 3 + 1] = y;\n this.centers[index * 3 + 2] = z;\n }\n setScale(index, scaleX, scaleY, scaleZ) {\n this.scales[index * 3] = scaleX;\n this.scales[index * 3 + 1] = scaleY;\n this.scales[index * 3 + 2] = scaleZ;\n }\n setQuaternion(index, x2, y, z, w) {\n this.quaternions[index * 4] = x2;\n this.quaternions[index * 4 + 1] = y;\n this.quaternions[index * 4 + 2] = z;\n this.quaternions[index * 4 + 3] = w;\n }\n setOpacity(index, opacity) {\n this.opacities[index] = opacity;\n }\n setColor(index, r, g, b) {\n this.colors[index * 3] = r;\n this.colors[index * 3 + 1] = g;\n this.colors[index * 3 + 2] = b;\n }\n setSh1(index, sh1) {\n if (!this.sh1) {\n this.sh1 = new Float32Array(this.maxSplats * 9);\n }\n for (let j = 0; j < 9; ++j) {\n this.sh1[index * 9 + j] = sh1[j];\n }\n }\n setSh2(index, sh2) {\n if (!this.sh2) {\n this.sh2 = new Float32Array(this.maxSplats * 15);\n }\n for (let j = 0; j < 15; ++j) {\n this.sh2[index * 15 + j] = sh2[j];\n }\n }\n setSh3(index, sh3) {\n if (!this.sh3) {\n this.sh3 = new Float32Array(this.maxSplats * 21);\n }\n for (let j = 0; j < 21; ++j) {\n this.sh3[index * 21 + j] = sh3[j];\n }\n }\n }\n async function unpackPcSogs(json, extraFiles, splatEncoding) {\n const isVersion2 = "version" in json;\n if (!isVersion2 && json.quats.encoding !== "quaternion_packed") {\n throw new Error("Unsupported quaternion encoding");\n }\n const numSplats = isVersion2 ? json.count : json.means.shape[0];\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra = {};\n const meansPromise = Promise.all([\n decodeImageRgba(extraFiles[json.means.files[0]]),\n decodeImageRgba(extraFiles[json.means.files[1]])\n ]).then((means) => {\n for (let i2 = 0; i2 < numSplats; ++i2) {\n const i4 = i2 * 4;\n const fx = (means[0][i4 + 0] + (means[1][i4 + 0] << 8)) / 65535;\n const fy = (means[0][i4 + 1] + (means[1][i4 + 1] << 8)) / 65535;\n const fz = (means[0][i4 + 2] + (means[1][i4 + 2] << 8)) / 65535;\n let x2 = json.means.mins[0] + (json.means.maxs[0] - json.means.mins[0]) * fx;\n let y = json.means.mins[1] + (json.means.maxs[1] - json.means.mins[1]) * fy;\n let z = json.means.mins[2] + (json.means.maxs[2] - json.means.mins[2]) * fz;\n x2 = Math.sign(x2) * (Math.exp(Math.abs(x2)) - 1);\n y = Math.sign(y) * (Math.exp(Math.abs(y)) - 1);\n z = Math.sign(z) * (Math.exp(Math.abs(z)) - 1);\n setPackedSplatCenter(packedArray, i2, x2, y, z);\n }\n });\n const scalesPromise = decodeImageRgba(extraFiles[json.scales.files[0]]).then(\n (scales) => {\n let xLookup;\n let yLookup;\n let zLookup;\n if (isVersion2) {\n xLookup = yLookup = zLookup = json.scales.codebook.map((x2) => Math.exp(x2));\n } else {\n xLookup = new Array(256).fill(0).map(\n (_, i2) => json.scales.mins[0] + (json.scales.maxs[0] - json.scales.mins[0]) * (i2 / 255)\n ).map((x2) => Math.exp(x2));\n yLookup = new Array(256).fill(0).map(\n (_, i2) => json.scales.mins[1] + (json.scales.maxs[1] - json.scales.mins[1]) * (i2 / 255)\n ).map((x2) => Math.exp(x2));\n zLookup = new Array(256).fill(0).map(\n (_, i2) => json.scales.mins[2] + (json.scales.maxs[2] - json.scales.mins[2]) * (i2 / 255)\n ).map((x2) => Math.exp(x2));\n }\n for (let i2 = 0; i2 < numSplats; ++i2) {\n const i4 = i2 * 4;\n setPackedSplatScales(\n packedArray,\n i2,\n xLookup[scales[i4 + 0]],\n yLookup[scales[i4 + 1]],\n zLookup[scales[i4 + 2]],\n splatEncoding\n );\n }\n }\n );\n const quatsPromise = decodeImageRgba(extraFiles[json.quats.files[0]]).then(\n (quats) => {\n const SQRT2 = Math.sqrt(2);\n const lookup = new Array(256).fill(0).map((_, i2) => (i2 / 255 - 0.5) * SQRT2);\n for (let i2 = 0; i2 < numSplats; ++i2) {\n const i4 = i2 * 4;\n const r0 = lookup[quats[i4 + 0]];\n const r1 = lookup[quats[i4 + 1]];\n const r2 = lookup[quats[i4 + 2]];\n const rr = Math.sqrt(Math.max(0, 1 - r0 * r0 - r1 * r1 - r2 * r2));\n const rOrder = quats[i4 + 3] - 252;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n setPackedSplatQuat(packedArray, i2, quatX, quatY, quatZ, quatW);\n }\n }\n );\n const sh0Promise = decodeImageRgba(extraFiles[json.sh0.files[0]]).then(\n (sh0) => {\n const SH_C02 = 0.28209479177387814;\n let rLookup;\n let gLookup;\n let bLookup;\n let aLookup;\n if (isVersion2) {\n rLookup = gLookup = bLookup = json.sh0.codebook.map((x2) => SH_C02 * x2 + 0.5);\n aLookup = new Array(256).fill(0).map((_, i2) => i2 / 255);\n } else {\n rLookup = new Array(256).fill(0).map(\n (_, i2) => json.sh0.mins[0] + (json.sh0.maxs[0] - json.sh0.mins[0]) * (i2 / 255)\n ).map((x2) => SH_C02 * x2 + 0.5);\n gLookup = new Array(256).fill(0).map(\n (_, i2) => json.sh0.mins[1] + (json.sh0.maxs[1] - json.sh0.mins[1]) * (i2 / 255)\n ).map((x2) => SH_C02 * x2 + 0.5);\n bLookup = new Array(256).fill(0).map(\n (_, i2) => json.sh0.mins[2] + (json.sh0.maxs[2] - json.sh0.mins[2]) * (i2 / 255)\n ).map((x2) => SH_C02 * x2 + 0.5);\n aLookup = new Array(256).fill(0).map(\n (_, i2) => json.sh0.mins[3] + (json.sh0.maxs[3] - json.sh0.mins[3]) * (i2 / 255)\n ).map((x2) => 1 / (1 + Math.exp(-x2)));\n }\n for (let i2 = 0; i2 < numSplats; ++i2) {\n const i4 = i2 * 4;\n setPackedSplatRgba(\n packedArray,\n i2,\n rLookup[sh0[i4 + 0]],\n gLookup[sh0[i4 + 1]],\n bLookup[sh0[i4 + 2]],\n aLookup[sh0[i4 + 3]],\n splatEncoding\n );\n }\n }\n );\n const promises = [meansPromise, scalesPromise, quatsPromise, sh0Promise];\n if (json.shN) {\n const useSH3 = isVersion2 ? json.shN.bands >= 3 : json.shN.shape[1] >= 48 - 3;\n const useSH2 = isVersion2 ? json.shN.bands >= 2 : json.shN.shape[1] >= 27 - 3;\n const useSH1 = isVersion2 ? json.shN.bands >= 1 : json.shN.shape[1] >= 12 - 3;\n if (useSH1) extra.sh1 = new Uint32Array(numSplats * 2);\n if (useSH2) extra.sh2 = new Uint32Array(numSplats * 4);\n if (useSH3) extra.sh3 = new Uint32Array(numSplats * 4);\n const sh1 = new Float32Array(9);\n const sh2 = new Float32Array(15);\n const sh3 = new Float32Array(21);\n const shN = json.shN;\n const shNPromise = Promise.all([\n decodeImage(extraFiles[json.shN.files[0]]),\n decodeImage(extraFiles[json.shN.files[1]])\n ]).then(([centroids, labels]) => {\n const lookup = "codebook" in shN ? shN.codebook : new Array(256).fill(0).map((_, i2) => shN.mins + (shN.maxs - shN.mins) * (i2 / 255));\n for (let i2 = 0; i2 < numSplats; ++i2) {\n const i4 = i2 * 4;\n const label = labels.rgba[i4 + 0] + (labels.rgba[i4 + 1] << 8);\n const col = (label & 63) * 15;\n const row = label >>> 6;\n const offset = row * centroids.width + col;\n for (let d = 0; d < 3; ++d) {\n if (useSH1) {\n for (let k = 0; k < 3; ++k) {\n sh1[k * 3 + d] = lookup[centroids.rgba[(offset + k) * 4 + d]];\n }\n }\n if (useSH2) {\n for (let k = 0; k < 5; ++k) {\n sh2[k * 3 + d] = lookup[centroids.rgba[(offset + 3 + k) * 4 + d]];\n }\n }\n if (useSH3) {\n for (let k = 0; k < 7; ++k) {\n sh3[k * 3 + d] = lookup[centroids.rgba[(offset + 8 + k) * 4 + d]];\n }\n }\n }\n if (useSH1)\n encodeSh1Rgb(extra.sh1, i2, sh1, splatEncoding);\n if (useSH2)\n encodeSh2Rgb(extra.sh2, i2, sh2, splatEncoding);\n if (useSH3)\n encodeSh3Rgb(extra.sh3, i2, sh3, splatEncoding);\n }\n });\n promises.push(shNPromise);\n }\n await Promise.all(promises);\n return { packedArray, numSplats, extra };\n }\n let offscreenGlContext = null;\n async function decodeImage(fileBytes) {\n if (!offscreenGlContext) {\n const canvas = new OffscreenCanvas(1, 1);\n offscreenGlContext = canvas.getContext("webgl2");\n if (!offscreenGlContext) {\n throw new Error("Failed to create WebGL2 context");\n }\n }\n const imageBlob = new Blob([fileBytes]);\n const bitmap = await createImageBitmap(imageBlob, {\n premultiplyAlpha: "none"\n });\n const gl = offscreenGlContext;\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, bitmap);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n const framebuffer = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0,\n gl.TEXTURE_2D,\n texture,\n 0\n );\n const data = new Uint8Array(bitmap.width * bitmap.height * 4);\n gl.readPixels(\n 0,\n 0,\n bitmap.width,\n bitmap.height,\n gl.RGBA,\n gl.UNSIGNED_BYTE,\n data\n );\n gl.deleteTexture(texture);\n gl.deleteFramebuffer(framebuffer);\n return { rgba: data, width: bitmap.width, height: bitmap.height };\n }\n async function decodeImageRgba(fileBytes) {\n const { rgba } = await decodeImage(fileBytes);\n return rgba;\n }\n async function unpackPcSogsZip(fileBytes, splatEncoding) {\n var _a2;\n const nameJson = tryPcSogsZip(fileBytes);\n if (!nameJson) {\n throw new Error("Invalid PC SOGS zip file");\n }\n const { name, json } = nameJson;\n const lastSlash = name.lastIndexOf("/");\n const lastBackslash = name.lastIndexOf("\\\\");\n const prefix = name.slice(0, Math.max(lastSlash, lastBackslash) + 1);\n const fileMap = /* @__PURE__ */ new Map();\n const refFiles = [\n ...json.means.files,\n ...json.scales.files,\n ...json.quats.files,\n ...json.sh0.files,\n ...((_a2 = json.shN) == null ? void 0 : _a2.files) ?? []\n ];\n for (const file of refFiles) {\n fileMap.set(prefix + file, file);\n }\n const unzipped = await new Promise(\n (resolve, reject) => {\n unzip(\n fileBytes,\n {\n filter: ({ name: name2 }) => {\n return fileMap.has(name2);\n }\n },\n (err2, files) => {\n if (err2) {\n reject(err2);\n } else {\n resolve(files);\n }\n }\n );\n }\n );\n const extraFiles = {};\n for (const [full, name2] of fileMap.entries()) {\n extraFiles[name2] = unzipped[full];\n }\n return await unpackPcSogs(json, extraFiles, splatEncoding);\n }\n async function onMessage(event) {\n const { name, args, id } = event.data;\n let result = void 0;\n let error = void 0;\n try {\n switch (name) {\n case "unpackPly": {\n const { packedArray, fileBytes, splatEncoding } = args;\n const decoded = await unpackPly({\n packedArray,\n fileBytes,\n splatEncoding\n });\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra\n };\n break;\n }\n case "decodeSpz": {\n const { fileBytes, splatEncoding } = args;\n const decoded = await unpackSpz(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra\n };\n break;\n }\n case "decodeAntiSplat": {\n const { fileBytes, splatEncoding } = args;\n const decoded = unpackAntiSplat(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray\n };\n break;\n }\n case "decodeKsplat": {\n const { fileBytes, splatEncoding } = args;\n const decoded = unpackKsplat(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra\n };\n break;\n }\n case "decodePcSogs": {\n const { fileBytes, extraFiles, splatEncoding } = args;\n const json = JSON.parse(\n new TextDecoder().decode(fileBytes)\n );\n const decoded = await unpackPcSogs(json, extraFiles, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra\n };\n break;\n }\n case "decodePcSogsZip": {\n const { fileBytes, splatEncoding } = args;\n const decoded = await unpackPcSogsZip(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra\n };\n break;\n }\n case "sortSplats": {\n const { totalSplats, readback, ordering } = args;\n result = {\n id,\n readback,\n ...sortSplats({ totalSplats, readback, ordering })\n };\n break;\n }\n case "sortDoubleSplats": {\n const { numSplats, readback, ordering } = args;\n {\n result = {\n id,\n readback,\n ordering,\n activeSplats: sort_splats(numSplats, readback, ordering)\n };\n }\n break;\n }\n case "sort32Splats": {\n const { numSplats, readback, ordering } = args;\n {\n result = {\n id,\n readback,\n ordering,\n activeSplats: sort32_splats(numSplats, readback, ordering)\n };\n }\n break;\n }\n case "transcodeSpz": {\n const input = args;\n const spzBytes = await transcodeSpz(input);\n result = {\n id,\n fileBytes: spzBytes,\n input\n };\n break;\n }\n default: {\n throw new Error(`Unknown name: ${name}`);\n }\n }\n } catch (e) {\n error = e;\n console.error(error);\n }\n self.postMessage(\n { id, result, error },\n { transfer: getTransferable(result) }\n );\n }\n async function unpackPly({\n packedArray,\n fileBytes,\n splatEncoding\n }) {\n const ply = new PlyReader({ fileBytes });\n await ply.parseHeader();\n const numSplats = ply.numSplats;\n const extra = {};\n ply.parseSplats(\n (index, x2, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b) => {\n setPackedSplat(\n packedArray,\n index,\n x2,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding\n );\n },\n (index, sh1, sh2, sh3) => {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n encodeSh1Rgb(extra.sh1, index, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n encodeSh2Rgb(extra.sh2, index, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n encodeSh3Rgb(extra.sh3, index, sh3, splatEncoding);\n }\n }\n );\n return { packedArray, numSplats, extra };\n }\n async function unpackSpz(fileBytes, splatEncoding) {\n const spz = new SpzReader({ fileBytes });\n await spz.parseHeader();\n const numSplats = spz.numSplats;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra = {};\n let extraCallbacks = {};\n if (spz.flagLod) {\n const childCounts = new Uint16Array(numSplats);\n const childStarts = new Uint32Array(numSplats);\n extra.childCounts = childCounts;\n extra.childStarts = childStarts;\n extraCallbacks = {\n childCounts: (index, count) => {\n childCounts[index] = count;\n },\n childStarts: (index, start) => {\n childStarts[index] = start;\n }\n };\n }\n await spz.parseSplats(\n (index, x2, y, z) => {\n setPackedSplatCenter(packedArray, index, x2, y, z);\n },\n (index, alpha) => {\n setPackedSplatOpacity(packedArray, index, alpha);\n },\n (index, r, g, b) => {\n setPackedSplatRgb(packedArray, index, r, g, b, splatEncoding);\n },\n (index, scaleX, scaleY, scaleZ) => {\n setPackedSplatScales(\n packedArray,\n index,\n scaleX,\n scaleY,\n scaleZ,\n splatEncoding\n );\n },\n (index, quatX, quatY, quatZ, quatW) => {\n setPackedSplatQuat(packedArray, index, quatX, quatY, quatZ, quatW);\n },\n (index, sh1, sh2, sh3) => {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n encodeSh1Rgb(extra.sh1, index, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n encodeSh2Rgb(extra.sh2, index, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n encodeSh3Rgb(extra.sh3, index, sh3, splatEncoding);\n }\n },\n extraCallbacks\n );\n return { packedArray, numSplats, extra };\n }\n const DEPTH_INFINITY_F16 = 31744;\n const DEPTH_SIZE_16 = DEPTH_INFINITY_F16 + 1;\n let depthArray16 = null;\n function sortSplats({\n totalSplats,\n readback,\n ordering\n }) {\n if (!depthArray16) {\n depthArray16 = new Uint32Array(DEPTH_SIZE_16);\n }\n depthArray16.fill(0);\n const readbackUint32 = readback.map((layer) => new Uint32Array(layer.buffer));\n const layerSize = readbackUint32[0].length;\n const numLayers = Math.ceil(totalSplats / layerSize);\n let layerBase = 0;\n for (let layer = 0; layer < numLayers; ++layer) {\n const readbackLayer = readbackUint32[layer];\n const layerSplats = Math.min(readbackLayer.length, totalSplats - layerBase);\n for (let i2 = 0; i2 < layerSplats; ++i2) {\n const pri = readbackLayer[i2] & 32767;\n if (pri < DEPTH_INFINITY_F16) {\n depthArray16[pri] += 1;\n }\n }\n layerBase += layerSplats;\n }\n let activeSplats = 0;\n for (let j = 0; j < DEPTH_SIZE_16; ++j) {\n const nextIndex = activeSplats + depthArray16[j];\n depthArray16[j] = activeSplats;\n activeSplats = nextIndex;\n }\n layerBase = 0;\n for (let layer = 0; layer < numLayers; ++layer) {\n const readbackLayer = readbackUint32[layer];\n const layerSplats = Math.min(readbackLayer.length, totalSplats - layerBase);\n for (let i2 = 0; i2 < layerSplats; ++i2) {\n const pri = readbackLayer[i2] & 32767;\n if (pri < DEPTH_INFINITY_F16) {\n ordering[depthArray16[pri]] = layerBase + i2;\n depthArray16[pri] += 1;\n }\n }\n layerBase += layerSplats;\n }\n if (depthArray16[DEPTH_SIZE_16 - 1] !== activeSplats) {\n throw new Error(\n `Expected ${activeSplats} active splats but got ${depthArray16[DEPTH_SIZE_16 - 1]}`\n );\n }\n return { activeSplats, ordering };\n }\n const messageBuffer = [];\n function bufferMessage(event) {\n messageBuffer.push(event);\n }\n async function initialize() {\n self.addEventListener("message", bufferMessage);\n await __wbg_init();\n self.removeEventListener("message", bufferMessage);\n self.addEventListener("message", onMessage);\n for (const event of messageBuffer) {\n onMessage(event);\n }\n messageBuffer.length = 0;\n }\n initialize().catch(console.error);\n})();\n//# sourceMappingURL=oldWorker-DUF0ALOS.js.map\n'; -const blob$1 = typeof self !== "undefined" && self.Blob && new Blob([jsContent$1], { type: "text/javascript;charset=utf-8" }); -function WorkerWrapper$1(options) { - let objURL; - try { - objURL = blob$1 && (self.URL || self.webkitURL).createObjectURL(blob$1); - if (!objURL) throw ""; - const worker = new Worker(objURL, { - name: options == null ? void 0 : options.name - }); - worker.addEventListener("error", () => { - (self.URL || self.webkitURL).revokeObjectURL(objURL); - }); - return worker; - } catch (e) { - return new Worker( - "data:text/javascript;charset=utf-8," + encodeURIComponent(jsContent$1), - { - name: options == null ? void 0 : options.name - } - ); - } finally { - objURL && (self.URL || self.webkitURL).revokeObjectURL(objURL); - } +const LN_SCALE_MIN = -12; +const LN_SCALE_MAX = 9; +const SCALE_MIN = Math.exp(LN_SCALE_MIN); +const SCALE_MAX = Math.exp(LN_SCALE_MAX); +const LN_SCALE_ZERO = -30; +const SCALE_ZERO = Math.exp(LN_SCALE_ZERO); +const SPLAT_TEX_WIDTH_BITS = 11; +const SPLAT_TEX_HEIGHT_BITS = 11; +const SPLAT_TEX_DEPTH_BITS = 11; +const SPLAT_TEX_LAYER_BITS = SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS; +const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS; +const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS; +const SPLAT_TEX_DEPTH = 1 << SPLAT_TEX_DEPTH_BITS; +const SPLAT_TEX_MIN_HEIGHT = 1; +const SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1; +const SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1; +const SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1; +const WASM_SPLAT_SORT = true; +const USE_COMPILED_PARSER_FUNCTION = true; +var SplatFileType = /* @__PURE__ */ ((SplatFileType2) => { + SplatFileType2["PLY"] = "ply"; + SplatFileType2["SPZ"] = "spz"; + SplatFileType2["SPLAT"] = "splat"; + SplatFileType2["KSPLAT"] = "ksplat"; + SplatFileType2["PCSOGS"] = "pcsogs"; + SplatFileType2["PCSOGSZIP"] = "pcsogszip"; + SplatFileType2["RAD"] = "rad"; + return SplatFileType2; +})(SplatFileType || {}); +const DEFAULT_SPLAT_ENCODING = { + rgbMin: 0, + rgbMax: 1, + lnScaleMin: LN_SCALE_MIN, + lnScaleMax: LN_SCALE_MAX, + sh1Max: 1, + sh2Max: 1, + sh3Max: 1, + lodOpacity: false +}; +const defines = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + DEFAULT_SPLAT_ENCODING, + LN_SCALE_MAX, + LN_SCALE_MIN, + LN_SCALE_ZERO, + SCALE_MAX, + SCALE_MIN, + SCALE_ZERO, + SPLAT_TEX_DEPTH, + SPLAT_TEX_DEPTH_BITS, + SPLAT_TEX_DEPTH_MASK, + SPLAT_TEX_HEIGHT, + SPLAT_TEX_HEIGHT_BITS, + SPLAT_TEX_HEIGHT_MASK, + SPLAT_TEX_LAYER_BITS, + SPLAT_TEX_MIN_HEIGHT, + SPLAT_TEX_WIDTH, + SPLAT_TEX_WIDTH_BITS, + SPLAT_TEX_WIDTH_MASK, + SplatFileType, + USE_COMPILED_PARSER_FUNCTION, + WASM_SPLAT_SORT +}, Symbol.toStringTag, { value: "Module" })); +function isBoolType(type) { + return type === "bool" || type === "bvec2" || type === "bvec3" || type === "bvec4"; } -var u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array; -var fleb = new u8([ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 3, - 4, - 4, - 4, - 4, - 5, - 5, - 5, - 5, - 0, - /* unused */ - 0, - 0, - /* impossible */ - 0 -]); -var fdeb = new u8([ - 0, - 0, - 0, - 0, - 1, - 1, - 2, - 2, - 3, - 3, - 4, - 4, - 5, - 5, - 6, - 6, - 7, - 7, - 8, - 8, - 9, - 9, - 10, - 10, - 11, - 11, - 12, - 12, - 13, - 13, - /* unused */ - 0, - 0 -]); -var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); -var freb = function(eb, start) { - var b = new u16(31); - for (var i = 0; i < 31; ++i) { - b[i] = start += 1 << eb[i - 1]; - } - var r = new i32(b[30]); - for (var i = 1; i < 30; ++i) { - for (var j = b[i]; j < b[i + 1]; ++j) { - r[j] = j - b[i] << 5 | i; - } +function isScalarType(type) { + return type === "int" || type === "uint" || type === "float"; +} +function isIntType(type) { + return type === "int" || type === "ivec2" || type === "ivec3" || type === "ivec4"; +} +function isUintType(type) { + return type === "uint" || type === "uvec2" || type === "uvec3" || type === "uvec4"; +} +function isFloatType(type) { + return type === "float" || type === "vec2" || type === "vec3" || type === "vec4"; +} +function isMatFloatType(type) { + return type === "mat2" || type === "mat2x2" || type === "mat2x3" || type === "mat2x4" || type === "mat3" || type === "mat3x2" || type === "mat3x3" || type === "mat3x4" || type === "mat4" || type === "mat4x2" || type === "mat4x3" || type === "mat4x4"; +} +function isAllFloatType(type) { + return isFloatType(type) || isMatFloatType(type); +} +function isVector2Type(type) { + return type === "vec2" || type === "ivec2" || type === "uvec2"; +} +function isVector3Type(type) { + return type === "vec3" || type === "ivec3" || type === "uvec3"; +} +function isVector4Type(type) { + return type === "vec4" || type === "ivec4" || type === "uvec4"; +} +function isVectorType(type) { + return isVector2Type(type) || isVector3Type(type) || isVector4Type(type); +} +function isMat2(type) { + return type === "mat2" || type === "mat2x2"; +} +function isMat3(type) { + return type === "mat3" || type === "mat3x3"; +} +function isMat4(type) { + return type === "mat4" || type === "mat4x4"; +} +function vectorElementType(type) { + switch (type) { + case "vec2": + return "float"; + case "vec3": + return "float"; + case "vec4": + return "float"; + case "ivec2": + return "int"; + case "ivec3": + return "int"; + case "ivec4": + return "int"; + case "uvec2": + return "uint"; + case "uvec3": + return "uint"; + case "uvec4": + return "uint"; + default: + throw new Error(`Invalid vector type: ${type}`); } - return { b, r }; -}; -var _a = freb(fleb, 2), fl = _a.b, revfl = _a.r; -fl[28] = 258, revfl[258] = 28; -var _b = freb(fdeb, 0), fd = _b.b; -var rev = new u16(32768); -for (var i = 0; i < 32768; ++i) { - var x = (i & 43690) >> 1 | (i & 21845) << 1; - x = (x & 52428) >> 2 | (x & 13107) << 2; - x = (x & 61680) >> 4 | (x & 3855) << 4; - rev[i] = ((x & 65280) >> 8 | (x & 255) << 8) >> 1; } -var hMap = function(cd, mb, r) { - var s = cd.length; - var i = 0; - var l = new u16(mb); - for (; i < s; ++i) { - if (cd[i]) - ++l[cd[i] - 1]; +function vectorDim(type) { + switch (type) { + case "vec2": + case "ivec2": + case "uvec2": + return 2; + case "vec3": + case "ivec3": + case "uvec3": + return 3; + case "vec4": + case "ivec4": + case "uvec4": + return 4; + default: + throw new Error(`Invalid vector type: ${type}`); } - var le = new u16(mb); - for (i = 1; i < mb; ++i) { - le[i] = le[i - 1] + l[i - 1] << 1; +} +function sameSizeVec(type) { + if (isScalarType(type)) { + return "float"; } - var co; - if (r) { - co = new u16(1 << mb); - var rvb = 15 - mb; - for (i = 0; i < s; ++i) { - if (cd[i]) { - var sv = i << 4 | cd[i]; - var r_1 = mb - cd[i]; - var v = le[cd[i] - 1]++ << r_1; - for (var m = v | (1 << r_1) - 1; v <= m; ++v) { - co[rev[v] >> rvb] = sv; + if (isVector2Type(type)) { + return "vec2"; + } + if (isVector3Type(type)) { + return "vec3"; + } + if (isVector4Type(type)) { + return "vec4"; + } + throw new Error(`Invalid vector type: ${type}`); +} +function sameSizeUvec(type) { + if (isScalarType(type)) { + return "uint"; + } + if (isVector2Type(type)) { + return "uvec2"; + } + if (isVector3Type(type)) { + return "uvec3"; + } + if (isVector4Type(type)) { + return "uvec4"; + } + throw new Error(`Invalid vector type: ${type}`); +} +function sameSizeIvec(type) { + if (isScalarType(type)) { + return "int"; + } + if (isVector2Type(type)) { + return "ivec2"; + } + if (isVector3Type(type)) { + return "ivec3"; + } + if (isVector4Type(type)) { + return "ivec4"; + } + throw new Error(`Invalid vector type: ${type}`); +} +function typeLiteral(type) { + if (typeof type === "string") { + return type; + } + if (typeof type === "object" && type.type) { + return type.type; + } + throw new Error(`Invalid DynoType: ${String(type)}`); +} +function numberAsInt(value) { + return Math.trunc(value).toString(); +} +function numberAsUint(value) { + const v = Math.max(0, Math.trunc(value)); + return `${v.toString()}u`; +} +function numberAsFloat(value) { + return value === Number.POSITIVE_INFINITY ? "INFINITY" : value === Number.NEGATIVE_INFINITY ? "-INFINITY" : Number.isInteger(value) ? value.toFixed(1) : value.toString(); +} +function valType(val) { + if (val instanceof DynoValue) { + return val.type; + } + const value = val.dynoOut(); + return value.type; +} +class DynoValue { + constructor(type) { + this.__isDynoValue = true; + this.type = type; + } +} +class DynoOutput extends DynoValue { + constructor(dyno2, key) { + super(dyno2.outTypes[key]); + this.dyno = dyno2; + this.key = key; + } +} +class DynoLiteral extends DynoValue { + constructor(type, literal) { + super(type); + this.literal = literal; + } + getLiteral() { + return this.literal; + } +} +function dynoLiteral(type, literal) { + return new DynoLiteral(type, literal); +} +class DynoConst extends DynoLiteral { + constructor(type, value) { + super(type, ""); + this.value = value; + } + getLiteral() { + const { type, value } = this; + switch (type) { + case "bool": + return value ? "true" : "false"; + case "uint": + return numberAsUint(value); + case "int": + return numberAsInt(value); + case "float": + return numberAsFloat(value); + case "bvec2": { + const v = value; + return `bvec2(${v[0]}, ${v[1]})`; + } + case "uvec2": { + if (value instanceof THREE__namespace.Vector2) { + return `uvec2(${numberAsUint(value.x)}, ${numberAsUint(value.y)})`; } + const v = value; + return `uvec2(${numberAsUint(v[0])}, ${numberAsUint(v[1])})`; } - } - } else { - co = new u16(s); - for (i = 0; i < s; ++i) { - if (cd[i]) { - co[i] = rev[le[cd[i] - 1]++] >> 15 - cd[i]; + case "ivec2": { + if (value instanceof THREE__namespace.Vector2) { + return `ivec2(${numberAsInt(value.x)}, ${numberAsInt(value.y)})`; + } + const v = value; + return `ivec2(${numberAsInt(v[0])}, ${numberAsInt(v[1])})`; } - } - } - return co; -}; -var flt = new u8(288); -for (var i = 0; i < 144; ++i) - flt[i] = 8; -for (var i = 144; i < 256; ++i) - flt[i] = 9; -for (var i = 256; i < 280; ++i) - flt[i] = 7; -for (var i = 280; i < 288; ++i) - flt[i] = 8; -var fdt = new u8(32); -for (var i = 0; i < 32; ++i) - fdt[i] = 5; -var flrm = /* @__PURE__ */ hMap(flt, 9, 1); -var fdrm = /* @__PURE__ */ hMap(fdt, 5, 1); -var max$1 = function(a) { - var m = a[0]; - for (var i = 1; i < a.length; ++i) { - if (a[i] > m) - m = a[i]; - } - return m; -}; -var bits = function(d, p, m) { - var o = p / 8 | 0; - return (d[o] | d[o + 1] << 8) >> (p & 7) & m; -}; -var bits16 = function(d, p) { - var o = p / 8 | 0; - return (d[o] | d[o + 1] << 8 | d[o + 2] << 16) >> (p & 7); -}; -var shft = function(p) { - return (p + 7) / 8 | 0; -}; -var slc = function(v, s, e) { - if (s == null || s < 0) - s = 0; - if (e == null || e > v.length) - e = v.length; - return new u8(v.subarray(s, e)); -}; -var ec = [ - "unexpected EOF", - "invalid block type", - "invalid length/literal", - "invalid distance", - "stream finished", - "no stream handler", - , - "no callback", - "invalid UTF-8 data", - "extra field too long", - "date not in range 1980-2099", - "filename too long", - "stream finishing", - "invalid zip data" - // determined by unknown compression method -]; -var err = function(ind, msg, nt) { - var e = new Error(msg || ec[ind]); - e.code = ind; - if (Error.captureStackTrace) - Error.captureStackTrace(e, err); - if (!nt) - throw e; - return e; -}; -var inflt = function(dat, st, buf, dict) { - var sl = dat.length, dl = dict ? dict.length : 0; - if (!sl || st.f && !st.l) - return buf || new u8(0); - var noBuf = !buf; - var resize = noBuf || st.i != 2; - var noSt = st.i; - if (noBuf) - buf = new u8(sl * 3); - var cbuf = function(l2) { - var bl = buf.length; - if (l2 > bl) { - var nbuf = new u8(Math.max(bl * 2, l2)); - nbuf.set(buf); - buf = nbuf; - } - }; - var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n; - var tbts = sl * 8; - do { - if (!lm) { - final = bits(dat, pos, 1); - var type = bits(dat, pos + 1, 3); - pos += 3; - if (!type) { - var s = shft(pos) + 4, l = dat[s - 4] | dat[s - 3] << 8, t = s + l; - if (t > sl) { - if (noSt) - err(0); - break; + case "vec2": { + if (value instanceof THREE__namespace.Vector2) { + return `vec2(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)})`; } - if (resize) - cbuf(bt + l); - buf.set(dat.subarray(s, t), bt); - st.b = bt += l, st.p = pos = t * 8, st.f = final; - continue; - } else if (type == 1) - lm = flrm, dm = fdrm, lbt = 9, dbt = 5; - else if (type == 2) { - var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4; - var tl = hLit + bits(dat, pos + 5, 31) + 1; - pos += 14; - var ldt = new u8(tl); - var clt = new u8(19); - for (var i = 0; i < hcLen; ++i) { - clt[clim[i]] = bits(dat, pos + i * 3, 7); + const v = value; + return `vec2(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])})`; + } + case "bvec3": { + const v = value; + return `bvec3(${v[0]}, ${v[1]}, ${v[2]})`; + } + case "uvec3": { + if (value instanceof THREE__namespace.Vector3) { + return `uvec3(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)})`; } - pos += hcLen * 3; - var clb = max$1(clt), clbmsk = (1 << clb) - 1; - var clm = hMap(clt, clb, 1); - for (var i = 0; i < tl; ) { - var r = clm[bits(dat, pos, clbmsk)]; - pos += r & 15; - var s = r >> 4; - if (s < 16) { - ldt[i++] = s; - } else { - var c = 0, n = 0; - if (s == 16) - n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1]; - else if (s == 17) - n = 3 + bits(dat, pos, 7), pos += 3; - else if (s == 18) - n = 11 + bits(dat, pos, 127), pos += 7; - while (n--) - ldt[i++] = c; - } + const v = value; + return `uvec3(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])})`; + } + case "ivec3": { + if (value instanceof THREE__namespace.Vector3) { + return `ivec3(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)})`; } - var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit); - lbt = max$1(lt); - dbt = max$1(dt); - lm = hMap(lt, lbt, 1); - dm = hMap(dt, dbt, 1); - } else - err(1); - if (pos > tbts) { - if (noSt) - err(0); - break; + const v = value; + return `ivec3(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])})`; } - } - if (resize) - cbuf(bt + 131072); - var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1; - var lpos = pos; - for (; ; lpos = pos) { - var c = lm[bits16(dat, pos) & lms], sym = c >> 4; - pos += c & 15; - if (pos > tbts) { - if (noSt) - err(0); - break; + case "vec3": { + if (value instanceof THREE__namespace.Vector3) { + return `vec3(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)})`; + } + const v = value; + return `vec3(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])})`; } - if (!c) - err(2); - if (sym < 256) - buf[bt++] = sym; - else if (sym == 256) { - lpos = pos, lm = null; - break; - } else { - var add2 = sym - 254; - if (sym > 264) { - var i = sym - 257, b = fleb[i]; - add2 = bits(dat, pos, (1 << b) - 1) + fl[i]; - pos += b; + case "bvec4": { + const v = value; + return `bvec4(${v[0]}, ${v[1]}, ${v[2]}, ${v[3]})`; + } + case "uvec4": { + if (value instanceof THREE__namespace.Vector4) { + return `uvec4(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)}, ${numberAsUint(value.w)})`; } - var d = dm[bits16(dat, pos) & dms], dsym = d >> 4; - if (!d) - err(3); - pos += d & 15; - var dt = fd[dsym]; - if (dsym > 3) { - var b = fdeb[dsym]; - dt += bits16(dat, pos) & (1 << b) - 1, pos += b; + const v = value; + return `uvec4(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])}, ${numberAsUint(v[3])})`; + } + case "ivec4": { + if (value instanceof THREE__namespace.Vector4) { + return `ivec4(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)}, ${numberAsInt(value.w)})`; } - if (pos > tbts) { - if (noSt) - err(0); - break; + const v = value; + return `ivec4(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])}, ${numberAsInt(v[3])})`; + } + case "vec4": { + if (value instanceof THREE__namespace.Vector4) { + return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`; } - if (resize) - cbuf(bt + 131072); - var end = bt + add2; - if (bt < dt) { - var shift = dl - dt, dend = Math.min(dt, end); - if (shift + bt < 0) - err(3); - for (; bt < dend; ++bt) - buf[bt] = dict[shift + bt]; + if (value instanceof THREE__namespace.Quaternion) { + return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`; } - for (; bt < end; ++bt) - buf[bt] = buf[bt - dt]; + const v = value; + return `vec4(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])}, ${numberAsFloat(v[3])})`; + } + case "mat2": + case "mat2x2": { + const m = value; + const e = m instanceof THREE__namespace.Matrix2 ? m.elements : value; + const arg = new Array(4).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat2x3": { + const e = value; + const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat2x4": { + const e = value; + const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat3": + case "mat3x3": { + const m = value; + const e = m instanceof THREE__namespace.Matrix3 ? m.elements : value; + const arg = new Array(9).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat3x2": { + const e = value; + const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat3x4": { + const e = value; + const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat4": + case "mat4x4": { + const m = value; + const e = m instanceof THREE__namespace.Matrix4 ? m.elements : value; + const arg = new Array(16).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat4x2": { + const e = value; + const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat4x3": { + const e = value; + const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; } + default: + throw new Error(`Type not implemented: ${String(type)}`); } - st.l = lm, st.p = lpos, st.b = bt, st.f = final; - if (lm) - final = 1, st.m = lbt, st.d = dm, st.n = dbt; - } while (!final); - return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt); -}; -var et = /* @__PURE__ */ new u8(0); -var b2 = function(d, b) { - return d[b] | d[b + 1] << 8; -}; -var b4 = function(d, b) { - return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0; -}; -var b8 = function(d, b) { - return b4(d, b) + b4(d, b + 4) * 4294967296; -}; -var gzs = function(d) { - if (d[0] != 31 || d[1] != 139 || d[2] != 8) - err(6, "invalid gzip data"); - var flg = d[3]; - var st = 10; - if (flg & 4) - st += (d[10] | d[11] << 8) + 2; - for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++]) - ; - return st + (flg & 2); -}; -var Inflate = /* @__PURE__ */ function() { - function Inflate2(opts, cb) { - if (typeof opts == "function") - cb = opts, opts = {}; - this.ondata = cb; - var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768); - this.s = { i: 0, b: dict ? dict.length : 0 }; - this.o = new u8(32768); - this.p = new u8(0); - if (dict) - this.o.set(dict); } - Inflate2.prototype.e = function(c) { - if (!this.ondata) - err(5); - if (this.d) - err(4); - if (!this.p.length) - this.p = c; - else if (c.length) { - var n = new u8(this.p.length + c.length); - n.set(this.p), n.set(c, this.p.length), this.p = n; - } - }; - Inflate2.prototype.c = function(final) { - this.s.i = +(this.d = final || false); - var bts = this.s.b; - var dt = inflt(this.p, this.s, this.o); - this.ondata(slc(dt, bts, this.s.b), this.d); - this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length; - this.p = slc(this.p, this.s.p / 8 | 0), this.s.p &= 7; - }; - Inflate2.prototype.push = function(chunk, final) { - this.e(chunk), this.c(final); - }; - return Inflate2; -}(); -function inflateSync(data, opts) { - return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary); } -var Gunzip = /* @__PURE__ */ function() { - function Gunzip2(opts, cb) { - this.v = 1; - this.r = 0; - Inflate.call(this, opts, cb); - } - Gunzip2.prototype.push = function(chunk, final) { - Inflate.prototype.e.call(this, chunk); - this.r += chunk.length; - if (this.v) { - var p = this.p.subarray(this.v - 1); - var s = p.length > 3 ? gzs(p) : 4; - if (s > p.length) { - if (!final) - return; - } else if (this.v > 1 && this.onmember) { - this.onmember(this.r - p.length); - } - this.p = p.subarray(s), this.v = 0; - } - Inflate.prototype.c.call(this, final); - if (this.s.f && !this.s.l && !final) { - this.v = shft(this.s.p) + 9; - this.s = { i: 0 }; - this.o = new u8(0); - this.push(new u8(0), final); - } - }; - return Gunzip2; -}(); -var td = typeof TextDecoder != "undefined" && /* @__PURE__ */ new TextDecoder(); -var tds = 0; -try { - td.decode(et, { stream: true }); - tds = 1; -} catch (e) { +function dynoConst(type, value) { + return new DynoConst(type, value); } -var dutf8 = function(d) { - for (var r = "", i = 0; ; ) { - var c = d[i++]; - var eb = (c > 127) + (c > 223) + (c > 239); - if (i + eb > d.length) - return { s: r, r: slc(d, i - 1) }; - if (!eb) - r += String.fromCharCode(c); - else if (eb == 3) { - c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | d[i++] & 63) - 65536, r += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023); - } else if (eb & 1) - r += String.fromCharCode((c & 31) << 6 | d[i++] & 63); - else - r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | d[i++] & 63); +function literalZero(type) { + const typeString = String(type); + if (isBoolType(type)) { + return `${typeString}(false)`; } -}; -function strFromU8(dat, latin1) { - if (latin1) { - var r = ""; - for (var i = 0; i < dat.length; i += 16384) - r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384)); - return r; - } else if (td) { - return td.decode(dat); - } else { - var _a2 = dutf8(dat), s = _a2.s, r = _a2.r; - if (r.length) - err(8); - return s; + if (isAllFloatType(type)) { + return `${typeString}(0.0)`; + } + if (isIntType(type)) { + return `${typeString}(0)`; } + if (isUintType(type)) { + return `${typeString}(0u)`; + } + throw new Error(`Type not implemented: ${typeString}`); } -var slzh = function(d, b) { - return b + 30 + b2(d, b + 26) + b2(d, b + 28); -}; -var zh = function(d, b, z) { - var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20); - var _a2 = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a2[0], su = _a2[1], off = _a2[2]; - return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off]; -}; -var z64e = function(d, b) { - for (; b2(d, b) != 1; b += 4 + b2(d, b + 2)) - ; - return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)]; -}; -function unzipSync(data, opts) { - var files = {}; - var e = data.length - 22; - for (; b4(data, e) != 101010256; --e) { - if (!e || data.length - e > 65558) - err(13); +function literalOne(type) { + const typeString = String(type); + if (isBoolType(type)) { + return `${typeString}(true)`; } - var c = b2(data, e + 8); - if (!c) - return {}; - var o = b4(data, e + 16); - var z = o == 4294967295 || c == 65535; - if (z) { - var ze = b4(data, e - 12); - z = b4(data, ze) == 101075792; - if (z) { - c = b4(data, ze + 32); - o = b4(data, ze + 48); - } + if (isAllFloatType(type)) { + return `${typeString}(1.0)`; } - var fltr = opts && opts.filter; - for (var i = 0; i < c; ++i) { - var _a2 = zh(data, o, z), c_2 = _a2[0], sc = _a2[1], su = _a2[2], fn = _a2[3], no = _a2[4], off = _a2[5], b = slzh(data, off); - o = no; - if (!fltr || fltr({ - name: fn, - size: sc, - originalSize: su, - compression: c_2 - })) { - if (!c_2) - files[fn] = slc(data, b, b + sc); - else if (c_2 == 8) - files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) }); - else - err(14, "unknown compression type " + c_2); - } + if (isIntType(type)) { + return `${typeString}(1)`; } - return files; + if (isUintType(type)) { + return `${typeString}(1u)`; + } + throw new Error(`Type not implemented: ${typeString}`); } -const LN_SCALE_MIN = -12; -const LN_SCALE_MAX = 9; -const SCALE_MIN = Math.exp(LN_SCALE_MIN); -const SCALE_MAX = Math.exp(LN_SCALE_MAX); -const LN_SCALE_ZERO = -30; -const SCALE_ZERO = Math.exp(LN_SCALE_ZERO); -const SPLAT_TEX_WIDTH_BITS = 11; -const SPLAT_TEX_HEIGHT_BITS = 11; -const SPLAT_TEX_DEPTH_BITS = 11; -const SPLAT_TEX_LAYER_BITS = SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS; -const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS; -const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS; -const SPLAT_TEX_DEPTH = 1 << SPLAT_TEX_DEPTH_BITS; -const SPLAT_TEX_MIN_HEIGHT = 1; -const SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1; -const SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1; -const SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1; -const WASM_SPLAT_SORT = true; -const USE_COMPILED_PARSER_FUNCTION = true; -var SplatFileType = /* @__PURE__ */ ((SplatFileType2) => { - SplatFileType2["PLY"] = "ply"; - SplatFileType2["SPZ"] = "spz"; - SplatFileType2["SPLAT"] = "splat"; - SplatFileType2["KSPLAT"] = "ksplat"; - SplatFileType2["PCSOGS"] = "pcsogs"; - SplatFileType2["PCSOGSZIP"] = "pcsogszip"; - SplatFileType2["RAD"] = "rad"; - return SplatFileType2; -})(SplatFileType || {}); -const DEFAULT_SPLAT_ENCODING = { - rgbMin: 0, - rgbMax: 1, - lnScaleMin: LN_SCALE_MIN, - lnScaleMax: LN_SCALE_MAX, - sh1Max: 1, - sh2Max: 1, - sh3Max: 1, - lodOpacity: false -}; -const defines = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ - __proto__: null, - DEFAULT_SPLAT_ENCODING, - LN_SCALE_MAX, - LN_SCALE_MIN, - LN_SCALE_ZERO, - SCALE_MAX, - SCALE_MIN, - SCALE_ZERO, - SPLAT_TEX_DEPTH, - SPLAT_TEX_DEPTH_BITS, - SPLAT_TEX_DEPTH_MASK, - SPLAT_TEX_HEIGHT, - SPLAT_TEX_HEIGHT_BITS, - SPLAT_TEX_HEIGHT_MASK, - SPLAT_TEX_LAYER_BITS, - SPLAT_TEX_MIN_HEIGHT, - SPLAT_TEX_WIDTH, - SPLAT_TEX_WIDTH_BITS, - SPLAT_TEX_WIDTH_MASK, - SplatFileType, - USE_COMPILED_PARSER_FUNCTION, - WASM_SPLAT_SORT -}, Symbol.toStringTag, { value: "Module" })); -function isBoolType(type) { - return type === "bool" || type === "bvec2" || type === "bvec3" || type === "bvec4"; +function literalNegOne(type) { + const typeString = String(type); + if (isBoolType(type)) { + return `${typeString}(true)`; + } + if (isAllFloatType(type)) { + return `${typeString}(-1.0)`; + } + if (isIntType(type)) { + return `${typeString}(-1)`; + } + if (isUintType(type)) { + return `${typeString}(0xFFFFFFFFu)`; + } + throw new Error(`Type not implemented: ${typeString}`); } -function isScalarType(type) { - return type === "int" || type === "uint" || type === "float"; +const DEFAULT_INDENT = " "; +class Compilation { + constructor({ indent } = {}) { + this.globals = /* @__PURE__ */ new Set(); + this.statements = []; + this.uniforms = {}; + this.declares = /* @__PURE__ */ new Set(); + this.updaters = []; + this.sequence = 0; + this.indent = DEFAULT_INDENT; + this.indent = indent ?? DEFAULT_INDENT; + } + nextSequence() { + return this.sequence++; + } } -function isIntType(type) { - return type === "int" || type === "ivec2" || type === "ivec3" || type === "ivec4"; -} -function isUintType(type) { - return type === "uint" || type === "uvec2" || type === "uvec3" || type === "uvec4"; -} -function isFloatType(type) { - return type === "float" || type === "vec2" || type === "vec3" || type === "vec4"; -} -function isMatFloatType(type) { - return type === "mat2" || type === "mat2x2" || type === "mat2x3" || type === "mat2x4" || type === "mat3" || type === "mat3x2" || type === "mat3x3" || type === "mat3x4" || type === "mat4" || type === "mat4x2" || type === "mat4x3" || type === "mat4x4"; -} -function isAllFloatType(type) { - return isFloatType(type) || isMatFloatType(type); -} -function isVector2Type(type) { - return type === "vec2" || type === "ivec2" || type === "uvec2"; -} -function isVector3Type(type) { - return type === "vec3" || type === "ivec3" || type === "uvec3"; -} -function isVector4Type(type) { - return type === "vec4" || type === "ivec4" || type === "uvec4"; -} -function isVectorType(type) { - return isVector2Type(type) || isVector3Type(type) || isVector4Type(type); -} -function isMat2(type) { - return type === "mat2" || type === "mat2x2"; -} -function isMat3(type) { - return type === "mat3" || type === "mat3x3"; -} -function isMat4(type) { - return type === "mat4" || type === "mat4x4"; -} -function vectorElementType(type) { - switch (type) { - case "vec2": - return "float"; - case "vec3": - return "float"; - case "vec4": - return "float"; - case "ivec2": - return "int"; - case "ivec3": - return "int"; - case "ivec4": - return "int"; - case "uvec2": - return "uint"; - case "uvec3": - return "uint"; - case "uvec4": - return "uint"; - default: - throw new Error(`Invalid vector type: ${type}`); - } -} -function vectorDim(type) { - switch (type) { - case "vec2": - case "ivec2": - case "uvec2": - return 2; - case "vec3": - case "ivec3": - case "uvec3": - return 3; - case "vec4": - case "ivec4": - case "uvec4": - return 4; - default: - throw new Error(`Invalid vector type: ${type}`); - } -} -function sameSizeVec(type) { - if (isScalarType(type)) { - return "float"; - } - if (isVector2Type(type)) { - return "vec2"; - } - if (isVector3Type(type)) { - return "vec3"; - } - if (isVector4Type(type)) { - return "vec4"; - } - throw new Error(`Invalid vector type: ${type}`); -} -function sameSizeUvec(type) { - if (isScalarType(type)) { - return "uint"; - } - if (isVector2Type(type)) { - return "uvec2"; - } - if (isVector3Type(type)) { - return "uvec3"; - } - if (isVector4Type(type)) { - return "uvec4"; - } - throw new Error(`Invalid vector type: ${type}`); -} -function sameSizeIvec(type) { - if (isScalarType(type)) { - return "int"; - } - if (isVector2Type(type)) { - return "ivec2"; - } - if (isVector3Type(type)) { - return "ivec3"; - } - if (isVector4Type(type)) { - return "ivec4"; - } - throw new Error(`Invalid vector type: ${type}`); -} -function typeLiteral(type) { - if (typeof type === "string") { - return type; - } - if (typeof type === "object" && type.type) { - return type.type; +class Dyno { + constructor({ + inTypes, + outTypes, + inputs, + update, + globals, + statements, + generate + }) { + this.inTypes = inTypes ?? {}; + this.outTypes = outTypes ?? {}; + this.inputs = inputs ?? {}; + this.update = update; + this.globals = globals; + this.statements = statements; + this.generate = generate ?? (({ inputs: inputs2, outputs, compile }) => { + var _a2, _b2; + return { + globals: (_a2 = this.globals) == null ? void 0 : _a2.call(this, { inputs: inputs2, outputs, compile }), + statements: (_b2 = this.statements) == null ? void 0 : _b2.call(this, { inputs: inputs2, outputs, compile }) + }; + }); } - throw new Error(`Invalid DynoType: ${String(type)}`); -} -function numberAsInt(value) { - return Math.trunc(value).toString(); -} -function numberAsUint(value) { - const v = Math.max(0, Math.trunc(value)); - return `${v.toString()}u`; -} -function numberAsFloat(value) { - return value === Number.POSITIVE_INFINITY ? "INFINITY" : value === Number.NEGATIVE_INFINITY ? "-INFINITY" : Number.isInteger(value) ? value.toFixed(1) : value.toString(); -} -function valType(val) { - if (val instanceof DynoValue) { - return val.type; + get outputs() { + const outputs = {}; + for (const key in this.outTypes) { + outputs[key] = new DynoOutput(this, key); + } + return outputs; } - const value = val.dynoOut(); - return value.type; -} -class DynoValue { - constructor(type) { - this.__isDynoValue = true; - this.type = type; + apply(inputs) { + Object.assign(this.inputs, inputs); + return this.outputs; } -} -class DynoOutput extends DynoValue { - constructor(dyno2, key) { - super(dyno2.outTypes[key]); - this.dyno = dyno2; - this.key = key; + compile({ + inputs, + outputs, + compile + }) { + const result = [ + `// ${this.constructor.name}(${Object.values(inputs).join(", ")}) => (${Object.values(outputs).join(", ")})` + ]; + const declares = []; + for (const key in outputs) { + const name = outputs[key]; + if (name && !compile.declares.has(name)) { + compile.declares.add(name); + declares.push(key); + } + } + const { globals, statements, uniforms } = this.generate({ + inputs, + outputs, + compile + }); + for (const global of globals ?? []) { + compile.globals.add(global); + } + for (const key in uniforms) { + compile.uniforms[key] = uniforms[key]; + } + if (this.update) { + compile.updaters.push(this.update); + } + for (const key of declares) { + const name = outputs[key]; + if (name) { + if (!compile.uniforms[name]) { + result.push(`${dynoDeclare(name, this.outTypes[key])};`); + } + } + } + if (statements == null ? void 0 : statements.length) { + result.push("{"); + result.push(...statements.map((line) => compile.indent + line)); + result.push("}"); + } + return result; } } -class DynoLiteral extends DynoValue { - constructor(type, literal) { - super(type); - this.literal = literal; - } - getLiteral() { - return this.literal; +class DynoBlock extends Dyno { + constructor({ + inTypes, + outTypes, + inputs, + update, + globals, + construct + }) { + super({ + inTypes, + outTypes, + inputs, + update, + globals, + generate: (args) => this.generateBlock(args) + }); + this.construct = construct; } -} -function dynoLiteral(type, literal) { - return new DynoLiteral(type, literal); -} -class DynoConst extends DynoLiteral { - constructor(type, value) { - super(type, ""); - this.value = value; - } - getLiteral() { - const { type, value } = this; - switch (type) { - case "bool": - return value ? "true" : "false"; - case "uint": - return numberAsUint(value); - case "int": - return numberAsInt(value); - case "float": - return numberAsFloat(value); - case "bvec2": { - const v = value; - return `bvec2(${v[0]}, ${v[1]})`; - } - case "uvec2": { - if (value instanceof THREE__namespace.Vector2) { - return `uvec2(${numberAsUint(value.x)}, ${numberAsUint(value.y)})`; - } - const v = value; - return `uvec2(${numberAsUint(v[0])}, ${numberAsUint(v[1])})`; - } - case "ivec2": { - if (value instanceof THREE__namespace.Vector2) { - return `ivec2(${numberAsInt(value.x)}, ${numberAsInt(value.y)})`; - } - const v = value; - return `ivec2(${numberAsInt(v[0])}, ${numberAsInt(v[1])})`; - } - case "vec2": { - if (value instanceof THREE__namespace.Vector2) { - return `vec2(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)})`; - } - const v = value; - return `vec2(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])})`; - } - case "bvec3": { - const v = value; - return `bvec3(${v[0]}, ${v[1]}, ${v[2]})`; - } - case "uvec3": { - if (value instanceof THREE__namespace.Vector3) { - return `uvec3(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)})`; - } - const v = value; - return `uvec3(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])})`; + generateBlock({ + inputs, + outputs, + compile + }) { + var _a2, _b2; + const blockInputs = {}; + const blockOutputs = {}; + for (const key in inputs) { + if (inputs[key] != null) { + blockInputs[key] = new DynoLiteral(this.inTypes[key], inputs[key]); } - case "ivec3": { - if (value instanceof THREE__namespace.Vector3) { - return `ivec3(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)})`; - } - const v = value; - return `ivec3(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])})`; + } + for (const key in outputs) { + if (outputs[key] != null) { + blockOutputs[key] = new DynoValue(this.outTypes[key]); } - case "vec3": { - if (value instanceof THREE__namespace.Vector3) { - return `vec3(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)})`; + } + const options = { roots: [] }; + const returned = this.construct(blockInputs, blockOutputs, options); + for (const global of ((_a2 = this.globals) == null ? void 0 : _a2.call(this, { inputs, outputs, compile })) ?? []) { + compile.globals.add(global); + } + const ordering = []; + const nodeOuts = /* @__PURE__ */ new Map(); + function visit(node, outKey, outName) { + let outs = nodeOuts.get(node); + if (!outs) { + outs = { + sequence: compile.nextSequence(), + outNames: /* @__PURE__ */ new Map(), + newOuts: /* @__PURE__ */ new Set() + }; + nodeOuts.set(node, outs); + for (const key in node.inputs) { + let input = node.inputs[key]; + while (input) { + if (input instanceof DynoValue) { + if (input instanceof DynoOutput) { + visit(input.dyno, input.key); + } + break; + } + if (typeof input.dynoOut !== "function") { + throw new Error( + `dynoOut is not a function for ${input.constructor.name}` + ); + } + input = input.dynoOut(); + } } - const v = value; - return `vec3(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])})`; - } - case "bvec4": { - const v = value; - return `bvec4(${v[0]}, ${v[1]}, ${v[2]}, ${v[3]})`; + ordering.push(node); } - case "uvec4": { - if (value instanceof THREE__namespace.Vector4) { - return `uvec4(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)}, ${numberAsUint(value.w)})`; + if (outKey) { + if (!outName) { + outs.newOuts.add(outKey); } - const v = value; - return `uvec4(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])}, ${numberAsUint(v[3])})`; + outs.outNames.set(outKey, outName ?? `${outKey}_${outs.sequence}`); } - case "ivec4": { - if (value instanceof THREE__namespace.Vector4) { - return `ivec4(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)}, ${numberAsInt(value.w)})`; + } + for (const root of options.roots) { + visit(root); + } + for (const key in blockOutputs) { + let value = (returned == null ? void 0 : returned[key]) ?? blockOutputs[key]; + while (value) { + if (value instanceof DynoValue) { + if (value instanceof DynoOutput) { + visit(value.dyno, value.key, outputs[key]); + } + break; } - const v = value; - return `ivec4(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])}, ${numberAsInt(v[3])})`; + value = value.dynoOut(); } - case "vec4": { - if (value instanceof THREE__namespace.Vector4) { - return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`; - } - if (value instanceof THREE__namespace.Quaternion) { - return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`; + blockOutputs[key] = value; + } + const steps = []; + for (const dyno2 of ordering) { + const inputs2 = {}; + const outputs2 = {}; + for (const key in dyno2.inputs) { + let value = dyno2.inputs[key]; + while (value) { + if (value instanceof DynoValue) { + if (value instanceof DynoLiteral) { + inputs2[key] = value.getLiteral(); + } else if (value instanceof DynoOutput) { + const source = (_b2 = nodeOuts.get(value.dyno)) == null ? void 0 : _b2.outNames.get(value.key); + if (!source) { + throw new Error( + `Source not found for ${value.dyno.constructor.name}.${value.key}` + ); + } + inputs2[key] = source; + } + break; + } + value = value.dynoOut(); } - const v = value; - return `vec4(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])}, ${numberAsFloat(v[3])})`; - } - case "mat2": - case "mat2x2": { - const m = value; - const e = m instanceof THREE__namespace.Matrix2 ? m.elements : value; - const arg = new Array(4).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; - } - case "mat2x3": { - const e = value; - const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; - } - case "mat2x4": { - const e = value; - const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; - } - case "mat3": - case "mat3x3": { - const m = value; - const e = m instanceof THREE__namespace.Matrix3 ? m.elements : value; - const arg = new Array(9).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; - } - case "mat3x2": { - const e = value; - const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; - } - case "mat3x4": { - const e = value; - const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; - } - case "mat4": - case "mat4x4": { - const m = value; - const e = m instanceof THREE__namespace.Matrix4 ? m.elements : value; - const arg = new Array(16).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; } - case "mat4x2": { - const e = value; - const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; + const outs = nodeOuts.get(dyno2) ?? { outNames: /* @__PURE__ */ new Map() }; + for (const [key, name] of outs.outNames.entries()) { + outputs2[key] = name; } - case "mat4x3": { - const e = value; - const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; + const newSteps = dyno2.compile({ inputs: inputs2, outputs: outputs2, compile }); + steps.push(newSteps); + } + const literalOutputs = []; + for (const key in outputs) { + if (blockOutputs[key] instanceof DynoLiteral) { + literalOutputs.push( + `${outputs[key]} = ${blockOutputs[key].getLiteral()};` + ); } - default: - throw new Error(`Type not implemented: ${String(type)}`); } + if (literalOutputs.length > 0) { + steps.push(literalOutputs); + } + const statements = steps.flatMap((step2, index) => { + return index === 0 ? step2 : ["", ...step2]; + }); + return { statements }; } } -function dynoConst(type, value) { - return new DynoConst(type, value); +function dynoBlock(inTypes, outTypes, construct, { update, globals } = {}) { + return new DynoBlock({ inTypes, outTypes, construct, update, globals }); } -function literalZero(type) { - const typeString = String(type); - if (isBoolType(type)) { - return `${typeString}(false)`; - } - if (isAllFloatType(type)) { - return `${typeString}(0.0)`; - } - if (isIntType(type)) { - return `${typeString}(0)`; - } - if (isUintType(type)) { - return `${typeString}(0u)`; - } - throw new Error(`Type not implemented: ${typeString}`); -} -function literalOne(type) { - const typeString = String(type); - if (isBoolType(type)) { - return `${typeString}(true)`; - } - if (isAllFloatType(type)) { - return `${typeString}(1.0)`; - } - if (isIntType(type)) { - return `${typeString}(1)`; - } - if (isUintType(type)) { - return `${typeString}(1u)`; - } - throw new Error(`Type not implemented: ${typeString}`); -} -function literalNegOne(type) { - const typeString = String(type); - if (isBoolType(type)) { - return `${typeString}(true)`; - } - if (isAllFloatType(type)) { - return `${typeString}(-1.0)`; - } - if (isIntType(type)) { - return `${typeString}(-1)`; - } - if (isUintType(type)) { - return `${typeString}(0xFFFFFFFFu)`; - } - throw new Error(`Type not implemented: ${typeString}`); -} -const DEFAULT_INDENT = " "; -class Compilation { - constructor({ indent } = {}) { - this.globals = /* @__PURE__ */ new Set(); - this.statements = []; - this.uniforms = {}; - this.declares = /* @__PURE__ */ new Set(); - this.updaters = []; - this.sequence = 0; - this.indent = DEFAULT_INDENT; - this.indent = indent ?? DEFAULT_INDENT; - } - nextSequence() { - return this.sequence++; - } -} -class Dyno { - constructor({ +function dyno$1({ + inTypes, + outTypes, + inputs, + update, + globals, + statements, + generate +}) { + return new Dyno({ inTypes, outTypes, inputs, @@ -1070,320 +723,85 @@ class Dyno { globals, statements, generate - }) { - this.inTypes = inTypes ?? {}; - this.outTypes = outTypes ?? {}; - this.inputs = inputs ?? {}; - this.update = update; - this.globals = globals; - this.statements = statements; - this.generate = generate ?? (({ inputs: inputs2, outputs, compile }) => { - var _a2, _b2; - return { - globals: (_a2 = this.globals) == null ? void 0 : _a2.call(this, { inputs: inputs2, outputs, compile }), - statements: (_b2 = this.statements) == null ? void 0 : _b2.call(this, { inputs: inputs2, outputs, compile }) - }; - }); + }); +} +function dynoDeclare(name, type, count) { + const typeStr = typeof type === "string" ? type : type.type; + if (!typeStr) { + throw new Error(`Invalid DynoType: ${String(type)}`); } - get outputs() { - const outputs = {}; - for (const key in this.outTypes) { - outputs[key] = new DynoOutput(this, key); + return `${typeStr} ${name}${count != null ? `[${count}]` : ""}`; +} +function unindentLines(s) { + var _a2; + let seenNonEmpty = false; + const lines = s.split("\n").map((line) => { + const trimmedLine = line.trimEnd(); + if (seenNonEmpty) { + return trimmedLine; } - return outputs; + if (trimmedLine.length > 0) { + seenNonEmpty = true; + return trimmedLine; + } + return null; + }).filter((line) => line != null); + while (lines.length > 0 && lines[lines.length - 1].length === 0) { + lines.pop(); } - apply(inputs) { - Object.assign(this.inputs, inputs); - return this.outputs; + if (lines.length === 0) { + return []; } - compile({ - inputs, - outputs, - compile + const indent = (_a2 = lines[0].match(/^\s*/)) == null ? void 0 : _a2[0]; + if (!indent) { + return lines; + } + const regex = new RegExp(`^${indent}`); + return lines.map((line) => line.replace(regex, "")); +} +function unindent(s) { + return unindentLines(s).join("\n"); +} +class UnaryOp extends Dyno { + constructor({ + a, + outKey, + outTypeFunc }) { - const result = [ - `// ${this.constructor.name}(${Object.values(inputs).join(", ")}) => (${Object.values(outputs).join(", ")})` - ]; - const declares = []; - for (const key in outputs) { - const name = outputs[key]; - if (name && !compile.declares.has(name)) { - compile.declares.add(name); - declares.push(key); - } - } - const { globals, statements, uniforms } = this.generate({ - inputs, - outputs, - compile - }); - for (const global of globals ?? []) { - compile.globals.add(global); - } - for (const key in uniforms) { - compile.uniforms[key] = uniforms[key]; - } - if (this.update) { - compile.updaters.push(this.update); - } - for (const key of declares) { - const name = outputs[key]; - if (name) { - if (!compile.uniforms[name]) { - result.push(`${dynoDeclare(name, this.outTypes[key])};`); - } - } - } - if (statements == null ? void 0 : statements.length) { - result.push("{"); - result.push(...statements.map((line) => compile.indent + line)); - result.push("}"); - } - return result; + const inTypes = { a: valType(a) }; + const outType = outTypeFunc(valType(a)); + const outTypes = { [outKey]: outType }; + super({ inTypes, outTypes, inputs: { a } }); + this.outKey = outKey; + } + dynoOut() { + return new DynoOutput(this, this.outKey); } } -class DynoBlock extends Dyno { +class BinaryOp extends Dyno { constructor({ - inTypes, - outTypes, - inputs, - update, - globals, - construct + a, + b, + outKey, + outTypeFunc }) { - super({ - inTypes, - outTypes, - inputs, - update, - globals, - generate: (args) => this.generateBlock(args) - }); - this.construct = construct; + const inTypes = { a: valType(a), b: valType(b) }; + const outType = outTypeFunc(valType(a), valType(b)); + const outTypes = { [outKey]: outType }; + super({ inTypes, outTypes, inputs: { a, b } }); + this.outKey = outKey; } - generateBlock({ - inputs, - outputs, - compile - }) { - var _a2, _b2; - const blockInputs = {}; - const blockOutputs = {}; - for (const key in inputs) { - if (inputs[key] != null) { - blockInputs[key] = new DynoLiteral(this.inTypes[key], inputs[key]); - } - } - for (const key in outputs) { - if (outputs[key] != null) { - blockOutputs[key] = new DynoValue(this.outTypes[key]); - } - } - const options = { roots: [] }; - const returned = this.construct(blockInputs, blockOutputs, options); - for (const global of ((_a2 = this.globals) == null ? void 0 : _a2.call(this, { inputs, outputs, compile })) ?? []) { - compile.globals.add(global); - } - const ordering = []; - const nodeOuts = /* @__PURE__ */ new Map(); - function visit(node, outKey, outName) { - let outs = nodeOuts.get(node); - if (!outs) { - outs = { - sequence: compile.nextSequence(), - outNames: /* @__PURE__ */ new Map(), - newOuts: /* @__PURE__ */ new Set() - }; - nodeOuts.set(node, outs); - for (const key in node.inputs) { - let input = node.inputs[key]; - while (input) { - if (input instanceof DynoValue) { - if (input instanceof DynoOutput) { - visit(input.dyno, input.key); - } - break; - } - if (typeof input.dynoOut !== "function") { - throw new Error( - `dynoOut is not a function for ${input.constructor.name}` - ); - } - input = input.dynoOut(); - } - } - ordering.push(node); - } - if (outKey) { - if (!outName) { - outs.newOuts.add(outKey); - } - outs.outNames.set(outKey, outName ?? `${outKey}_${outs.sequence}`); - } - } - for (const root of options.roots) { - visit(root); - } - for (const key in blockOutputs) { - let value = (returned == null ? void 0 : returned[key]) ?? blockOutputs[key]; - while (value) { - if (value instanceof DynoValue) { - if (value instanceof DynoOutput) { - visit(value.dyno, value.key, outputs[key]); - } - break; - } - value = value.dynoOut(); - } - blockOutputs[key] = value; - } - const steps = []; - for (const dyno2 of ordering) { - const inputs2 = {}; - const outputs2 = {}; - for (const key in dyno2.inputs) { - let value = dyno2.inputs[key]; - while (value) { - if (value instanceof DynoValue) { - if (value instanceof DynoLiteral) { - inputs2[key] = value.getLiteral(); - } else if (value instanceof DynoOutput) { - const source = (_b2 = nodeOuts.get(value.dyno)) == null ? void 0 : _b2.outNames.get(value.key); - if (!source) { - throw new Error( - `Source not found for ${value.dyno.constructor.name}.${value.key}` - ); - } - inputs2[key] = source; - } - break; - } - value = value.dynoOut(); - } - } - const outs = nodeOuts.get(dyno2) ?? { outNames: /* @__PURE__ */ new Map() }; - for (const [key, name] of outs.outNames.entries()) { - outputs2[key] = name; - } - const newSteps = dyno2.compile({ inputs: inputs2, outputs: outputs2, compile }); - steps.push(newSteps); - } - const literalOutputs = []; - for (const key in outputs) { - if (blockOutputs[key] instanceof DynoLiteral) { - literalOutputs.push( - `${outputs[key]} = ${blockOutputs[key].getLiteral()};` - ); - } - } - if (literalOutputs.length > 0) { - steps.push(literalOutputs); - } - const statements = steps.flatMap((step2, index) => { - return index === 0 ? step2 : ["", ...step2]; - }); - return { statements }; - } -} -function dynoBlock(inTypes, outTypes, construct, { update, globals } = {}) { - return new DynoBlock({ inTypes, outTypes, construct, update, globals }); -} -function dyno$1({ - inTypes, - outTypes, - inputs, - update, - globals, - statements, - generate -}) { - return new Dyno({ - inTypes, - outTypes, - inputs, - update, - globals, - statements, - generate - }); -} -function dynoDeclare(name, type, count) { - const typeStr = typeof type === "string" ? type : type.type; - if (!typeStr) { - throw new Error(`Invalid DynoType: ${String(type)}`); - } - return `${typeStr} ${name}${count != null ? `[${count}]` : ""}`; -} -function unindentLines(s) { - var _a2; - let seenNonEmpty = false; - const lines = s.split("\n").map((line) => { - const trimmedLine = line.trimEnd(); - if (seenNonEmpty) { - return trimmedLine; - } - if (trimmedLine.length > 0) { - seenNonEmpty = true; - return trimmedLine; - } - return null; - }).filter((line) => line != null); - while (lines.length > 0 && lines[lines.length - 1].length === 0) { - lines.pop(); - } - if (lines.length === 0) { - return []; - } - const indent = (_a2 = lines[0].match(/^\s*/)) == null ? void 0 : _a2[0]; - if (!indent) { - return lines; - } - const regex = new RegExp(`^${indent}`); - return lines.map((line) => line.replace(regex, "")); -} -function unindent(s) { - return unindentLines(s).join("\n"); -} -class UnaryOp extends Dyno { - constructor({ - a, - outKey, - outTypeFunc - }) { - const inTypes = { a: valType(a) }; - const outType = outTypeFunc(valType(a)); - const outTypes = { [outKey]: outType }; - super({ inTypes, outTypes, inputs: { a } }); - this.outKey = outKey; - } - dynoOut() { - return new DynoOutput(this, this.outKey); - } -} -class BinaryOp extends Dyno { - constructor({ - a, - b, - outKey, - outTypeFunc - }) { - const inTypes = { a: valType(a), b: valType(b) }; - const outType = outTypeFunc(valType(a), valType(b)); - const outTypes = { [outKey]: outType }; - super({ inTypes, outTypes, inputs: { a, b } }); - this.outKey = outKey; - } - dynoOut() { - return new DynoOutput(this, this.outKey); - } -} -class TrinaryOp extends Dyno { - constructor({ - a, - b, - c, - outKey, - outTypeFunc + dynoOut() { + return new DynoOutput(this, this.outKey); + } +} +class TrinaryOp extends Dyno { + constructor({ + a, + b, + c, + outKey, + outTypeFunc }) { const inTypes = { a: valType(a), b: valType(b), c: valType(c) }; const outType = outTypeFunc(valType(a), valType(b), valType(c)); @@ -1395,6593 +813,5903 @@ class TrinaryOp extends Dyno { return new DynoOutput(this, this.outKey); } } -const threeRevision = Number.parseInt(THREE__namespace.REVISION); -const threeMrtArray = threeRevision >= 179; -const f32buffer = new Float32Array(1); -const u32buffer = new Uint32Array(f32buffer.buffer); -const supportsFloat16Array = "Float16Array" in globalThis; -const f16buffer = supportsFloat16Array ? new globalThis["Float16Array"](1) : null; -const u16buffer = new Uint16Array(f16buffer == null ? void 0 : f16buffer.buffer); -function normalize$1(vec) { - const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0)); - return vec.map((v) => v / norm); -} -function floatBitsToUint$1(f) { - f32buffer[0] = f; - return u32buffer[0]; -} -function uintBitsToFloat$1(u) { - u32buffer[0] = u; - return f32buffer[0]; -} -const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS; -const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS; -function toHalfNative(f) { - f16buffer[0] = f; - return u16buffer[0]; -} -function toHalfJS(f) { - f32buffer[0] = f; - const bits2 = u32buffer[0]; - const sign2 = bits2 >> 31 & 1; - const exp3 = bits2 >> 23 & 255; - const frac = bits2 & 8388607; - const halfSign = sign2 << 15; - if (exp3 === 255) { - if (frac !== 0) { - return halfSign | 32767; - } - return halfSign | 31744; - } - const newExp = exp3 - 127 + 15; - if (newExp >= 31) { - return halfSign | 31744; - } - if (newExp <= 0) { - if (newExp < -10) { - return halfSign; - } - const subFrac = (frac | 8388608) >> 1 - newExp + 13; - return halfSign | subFrac; - } - const halfFrac = frac >> 13; - return halfSign | newExp << 10 | halfFrac; -} -function fromHalfNative(u) { - u16buffer[0] = u; - return f16buffer[0]; -} -function fromHalfJS(h) { - const sign2 = h >> 15 & 1; - const exp3 = h >> 10 & 31; - const frac = h & 1023; - let f32bits; - if (exp3 === 0) { - if (frac === 0) { - f32bits = sign2 << 31; - } else { - let mant = frac; - let e = -14; - while ((mant & 1024) === 0) { - mant <<= 1; - e--; - } - mant &= 1023; - const newExp = e + 127; - const newFrac = mant << 13; - f32bits = sign2 << 31 | newExp << 23 | newFrac; - } - } else if (exp3 === 31) { - if (frac === 0) { - f32bits = sign2 << 31 | 2139095040; - } else { - f32bits = sign2 << 31 | 2143289344; - } - } else { - const newExp = exp3 - 15 + 127; - const newFrac = frac << 13; - f32bits = sign2 << 31 | newExp << 23 | newFrac; +const Gsplat = { type: "Gsplat" }; +const CovSplat = { type: "CovSplat" }; +const TPackedSplats = { type: "PackedSplats" }; +const TExtSplats = { type: "ExtSplats" }; +const TCovSplats = { type: "CovSplats" }; +const numPackedSplats = (packedSplats) => new NumPackedSplats({ packedSplats }); +const readPackedSplat = (packedSplats, index) => new ReadPackedSplat({ packedSplats, index }); +const readPackedSplatRange = (packedSplats, index, base, count) => new ReadPackedSplatRange({ packedSplats, index, base, count }); +const numExtSplats = (extSplats) => new NumExtSplats({ extSplats }); +const readExtSplat = (extSplats, index) => new ReadExtSplat({ extSplats, index }); +const numCovSplats = (covsplats) => new NumCovSplats({ covsplats }); +const readCovSplat = (covSplats, index) => new ReadCovSplat({ covSplats, index }); +const gsplatToCovSplat = (gsplat) => new GsplatToCovSplat({ gsplat }); +const splitGsplat = (gsplat) => new SplitGsplat({ gsplat }); +const combineGsplat = ({ + gsplat, + flags, + index, + center, + scales, + quaternion, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b +}) => { + return new CombineGsplat({ + gsplat, + flags, + index, + center, + scales, + quaternion, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + }); +}; +const gsplatNormal = (gsplat) => new GsplatNormal({ gsplat }); +const transformGsplat = (gsplat, { + scale, + rotate, + translate, + recolor +}) => { + return new TransformGsplat({ gsplat, scale, rotate, translate, recolor }); +}; +const splatTexCoord = (index) => new SplatTexCoord({ index }); +const pagedSplatTexCoord = (index) => new PagedSplatTexCoord({ index }); +const defineGsplat = unindent(` + struct Gsplat { + vec3 center; + uint flags; + vec3 scales; + int index; + vec4 quaternion; + vec4 rgba; + }; + const uint GSPLAT_FLAG_ACTIVE = 1u << 0u; + + bool isGsplatActive(uint flags) { + return (flags & GSPLAT_FLAG_ACTIVE) != 0u; } - u32buffer[0] = f32bits; - return f32buffer[0]; -} -function floatToUint8(v) { - return Math.max(0, Math.min(255, Math.round(v * 255))); -} -function floatToSint8(v) { - return Math.max(-127, Math.min(127, Math.round(v * 127))); -} -function Uint8ToFloat(v) { - return v / 255; -} -function Sint8ToFloat(v) { - return v / 127; -} -class DataCache { - // Create a DataCache with a given function that fetches data not in the cache. +`); +const defineCovSplat = unindent(` + struct CovSplat { + vec3 center; + uint flags; + vec4 rgba; + vec3 xxyyzz; + int index; + vec3 xyxzyz; + }; + + bool isCovSplatActive(uint flags) { + return (flags & GSPLAT_FLAG_ACTIVE) != 0u; + } +`); +const definePackedSplats = unindent(` + struct PackedSplats { + usampler2DArray textureArray; + int numSplats; + vec4 rgbMinMaxLnScaleMinMax; + bool lodOpacity; + }; +`); +class NumPackedSplats extends UnaryOp { constructor({ - asyncFetch, - dispose, - maxItems = 5 + packedSplats }) { - this.asyncFetch = asyncFetch; - this.dispose = dispose; - this.maxItems = maxItems; - this.items = []; - this.pending = /* @__PURE__ */ new Map(); - } - has(key) { - return this.items.some((item) => item.key === key); + super({ a: packedSplats, outKey: "numSplats", outTypeFunc: () => "int" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.numSplats} = ${inputs.a}.numSplats;` + ]; } - getImmediate(key) { - const index = this.items.findIndex((item) => item.key === key); - if (index >= 0) { - const item = this.items.splice(index, 1)[0]; - this.items.push(item); - return item.data; +} +const defineReadPackedArray = unindent(` + bool readPackedArray(usampler2DArray texture, int numSplats, vec4 rgbMinMaxLnScaleMinMax, int index, out Gsplat gsplat) { + if ((index >= 0) && (index < numSplats)) { + uvec4 packedData = texelFetch(texture, splatTexCoord(index), 0); + unpackSplatEncoding(packedData, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba, rgbMinMaxLnScaleMinMax); + return true; + } else { + return false; } - return void 0; } - // Fetch data for the key, returning cached data if available. - async getFetch(key) { - const immediate = this.getImmediate(key); - if (immediate !== void 0) { - return immediate; - } - let pending = this.pending.get(key); - if (pending) { - return pending; - } - pending = this.asyncFetch(key).then((data) => { - this.pending.delete(key); - this.items.push({ key, data }); - while (this.items.length > this.maxItems) { - const removed = this.items.shift(); - if (removed && this.dispose) { - this.dispose(removed.data); +`); +class ReadPackedSplat extends Dyno { + constructor({ + packedSplats, + index + }) { + super({ + inTypes: { packedSplats: TPackedSplats, index: "int" }, + outTypes: { gsplat: Gsplat }, + inputs: { packedSplats, index }, + globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray], + statements: ({ inputs, outputs }) => { + const { gsplat } = outputs; + if (!gsplat) { + return []; + } + const { packedSplats: packedSplats2, index: index2 } = inputs; + let statements; + if (packedSplats2 && index2) { + statements = unindentLines(` + ${gsplat}.flags = 0u; + if (readPackedArray(${packedSplats2}.textureArray, ${packedSplats2}.numSplats, ${packedSplats2}.rgbMinMaxLnScaleMinMax, ${index2}, ${gsplat})) { + if (${packedSplats2}.lodOpacity) { + ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a; + } + bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0))); + ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE; + } + `); + } else { + statements = [`${gsplat}.flags = 0u;`]; } + statements.push(`${gsplat}.index = ${index2 ?? "0"};`); + return statements; } - return data; }); - this.pending.set(key, pending); - return pending; } -} -function mapObject(obj, fn) { - const entries = Object.entries(obj).map(([key, value]) => [ - key, - fn(value, key) - ]); - return Object.fromEntries(entries); -} -function mapFilterObject(obj, fn) { - const entries = Object.entries(obj).map(([key, value]) => [key, fn(value, key)]).filter(([_, value]) => value !== void 0); - return Object.fromEntries(entries); -} -function getTransferable(ctx) { - const buffers = []; - const seen = /* @__PURE__ */ new Set(); - function traverse(obj) { - if (obj && typeof obj === "object" && !seen.has(obj)) { - seen.add(obj); - if (obj instanceof ArrayBuffer) { - buffers.push(obj); - } else if (ArrayBuffer.isView(obj)) { - buffers.push(obj.buffer); - } else if (Array.isArray(obj)) { - obj.forEach(traverse); - } else { - Object.values(obj).forEach(traverse); - } - } + dynoOut() { + return new DynoOutput(this, "gsplat"); } - traverse(ctx); - return buffers; -} -function newArray(n, initFunction) { - return new Array(n).fill(null).map((_, i) => initFunction(i)); } -class FreeList { +class ReadPackedSplatRange extends Dyno { constructor({ - // Allocate a new item with the given args - allocate, - // Dispose of an item (optional, if GC is enough) - dispose, - // Check if an existing item in the list is valid for the given args, - // allowing you to store heterogeneous items in the list. - valid + packedSplats, + index, + base, + count }) { - this.items = []; - this.allocate = allocate; - this.dispose = dispose; - this.valid = valid; - } - // Allocate a new item from the free list, first checking if a existing item - // on the freelist is valid for the given args. - alloc(args) { - while (true) { - const item = this.items.pop(); - if (!item) { - break; - } - if (this.valid(item, args)) { - return item; - } - if (this.dispose) { - this.dispose(item); + super({ + inTypes: { + packedSplats: TPackedSplats, + index: "int", + base: "int", + count: "int" + }, + outTypes: { gsplat: Gsplat }, + inputs: { packedSplats, index, base, count }, + globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray], + statements: ({ inputs, outputs }) => { + const { gsplat } = outputs; + if (!gsplat) { + return []; + } + const { packedSplats: packedSplats2, index: index2, base: base2, count: count2 } = inputs; + let statements; + if (packedSplats2 && index2 && base2 && count2) { + statements = unindentLines(` + ${gsplat}.flags = 0u; + if (readPackedArray(${packedSplats2}.textureArray, ${packedSplats2}.numSplats, ${packedSplats2}.rgbMinMaxLnScaleMinMax, ${index2}, ${gsplat})) { + if (${packedSplats2}.lodOpacity) { + ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a; + } + bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0))); + ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE; + } + `); + } else { + statements = [`${gsplat}.flags = 0u;`]; + } + statements.push(`${gsplat}.index = ${index2 ?? "0"};`); + return statements; } - } - return this.allocate(args); + }); } - free(item) { - this.items.push(item); + dynoOut() { + return new DynoOutput(this, "gsplat"); } - disposeAll() { - let item; - item = this.items.pop(); - while (item) { - if (this.dispose) { - this.dispose(item); - } - item = this.items.pop(); - } +} +const defineExtSplats = unindent(` + struct ExtSplats { + usampler2DArray textureArray1; + usampler2DArray textureArray2; + int numSplats; + }; +`); +class NumExtSplats extends UnaryOp { + constructor({ extSplats }) { + super({ a: extSplats, outKey: "numSplats", outTypeFunc: () => "int" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.numSplats} = ${inputs.a}.numSplats;` + ]; } } -function encodeExtSplat(extArrays, index, x, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b) { - const i4 = index * 4; - const [extA, extB] = extArrays; - extA[i4] = floatBitsToUint$1(x); - extA[i4 + 1] = floatBitsToUint$1(y); - extA[i4 + 2] = floatBitsToUint$1(z); - extA[i4 + 3] = toHalf(opacity); - extB[i4] = toHalf(r) | toHalf(g) << 16; - extB[i4 + 1] = toHalf(b) | toHalf(Math.log(scaleX)) << 16; - extB[i4 + 2] = toHalf(Math.log(scaleY)) | toHalf(Math.log(scaleZ)) << 16; - extB[i4 + 3] = encodeQuatOctXy1010R12(quatX, quatY, quatZ, quatW); +const defineReadExtArrays = unindent(` + void readExtArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out Gsplat gsplat) { + gsplat.flags = 0u; + if ((index >= 0) && (index < numSplats)) { + ivec3 coord = splatTexCoord(index); + uvec4 packed1 = texelFetch(texture1, coord, 0); + uvec4 packed2 = texelFetch(texture2, coord, 0); + unpackSplatExt(packed1, packed2, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba); + gsplat.flags = all(equal(gsplat.scales, vec3(0.0, 0.0, 0.0))) ? 0u : GSPLAT_FLAG_ACTIVE; + gsplat.index = index; + } + } +`); +class ReadExtSplat extends Dyno { + constructor({ + extSplats, + index + }) { + super({ + inTypes: { extSplats: TExtSplats, index: "int" }, + outTypes: { gsplat: Gsplat }, + inputs: { extSplats, index }, + globals: () => [defineGsplat, defineExtSplats, defineReadExtArrays], + statements: ({ inputs, outputs }) => { + const { gsplat } = outputs; + if (!gsplat) { + return [`${gsplat}.flags = 0u;`]; + } + const { extSplats: extSplats2, index: index2 } = inputs; + if (extSplats2 && index2) { + return unindentLines(` + readExtArrays(${extSplats2}.textureArray1, ${extSplats2}.textureArray2, ${extSplats2}.numSplats, ${index2}, ${gsplat}); + `); + } + return [`${gsplat}.flags = 0u;`]; + } + }); + } + dynoOut() { + return new DynoOutput(this, "gsplat"); + } } -function decodeExtSplat(extArrays, index) { - const result = packedFields; - const i4 = index * 4; - const [extA, extB] = extArrays; - result.center.x = uintBitsToFloat$1(extA[i4]); - result.center.y = uintBitsToFloat$1(extA[i4 + 1]); - result.center.z = uintBitsToFloat$1(extA[i4 + 2]); - result.opacity = fromHalf(extA[i4 + 3] & 65535); - result.color.r = fromHalf(extB[i4] & 65535); - result.color.g = fromHalf(extB[i4] >>> 16); - result.color.b = fromHalf(extB[i4 + 1] & 65535); - result.scales.x = Math.exp(fromHalf(extB[i4 + 1] >>> 16)); - result.scales.y = Math.exp(fromHalf(extB[i4 + 2] & 65535)); - result.scales.z = Math.exp(fromHalf(extB[i4 + 2] >>> 16)); - decodeQuatOctXy1010R12(extB[i4 + 3], result.quaternion); - return result; +class NumCovSplats extends UnaryOp { + constructor({ covsplats }) { + super({ a: covsplats, outKey: "numSplats", outTypeFunc: () => "int" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.numSplats} = ${inputs.a}.numSplats;` + ]; + } } -function setPackedSplat(packedSplats, index, x, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b, encoding) { - const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; - const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; - const rgbRange = rgbMax - rgbMin; - const uR = floatToUint8((r - rgbMin) / rgbRange); - const uG = floatToUint8((g - rgbMin) / rgbRange); - const uB = floatToUint8((b - rgbMin) / rgbRange); - const uA = floatToUint8((encoding == null ? void 0 : encoding.lodOpacity) ? 0.5 * opacity : opacity); - const uQuat = encodeQuatOctXy88R8( - tempQuaternion.set(quatX, quatY, quatZ, quatW) - ); - const uQuatX = uQuat & 255; - const uQuatY = uQuat >>> 8 & 255; - const uQuatZ = uQuat >>> 16 & 255; - const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN; - const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX; - const lnScaleScale = 254 / (lnScaleMax - lnScaleMin); - const uScaleX = scaleX < SCALE_ZERO ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1 - ) - ); - const uScaleY = scaleY < SCALE_ZERO ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1 - ) - ); - const uScaleZ = scaleZ < SCALE_ZERO ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1 - ) - ); - const uCenterX = toHalf(x); - const uCenterY = toHalf(y); - const uCenterZ = toHalf(z); - const i4 = index * 4; - packedSplats[i4] = uR | uG << 8 | uB << 16 | uA << 24; - packedSplats[i4 + 1] = uCenterX | uCenterY << 16; - packedSplats[i4 + 2] = uCenterZ | uQuatX << 16 | uQuatY << 24; - packedSplats[i4 + 3] = uScaleX | uScaleY << 8 | uScaleZ << 16 | uQuatZ << 24; +const defineReadCovArrays = unindent(` + void readCovArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out CovSplat covsplat) { + covsplat.flags = 0u; + if ((index >= 0) && (index < numSplats)) { + ivec3 coord = splatTexCoord(index); + uvec4 packed1 = texelFetch(texture1, coord, 0); + uvec4 packed2 = texelFetch(texture2, coord, 0); + unpackSplatExtCov(packed1, packed2, covsplat.center, covsplat.rgba, covsplat.xxyyzz, covsplat.xyxzyz); + covsplat.flags = (all(equal(covsplat.xxyyzz, vec3(0.0))) && all(equal(covsplat.xyxzyz, vec3(0.0)))) ? 0u : GSPLAT_FLAG_ACTIVE; + gsplat.index = index; + } + } +`); +class ReadCovSplat extends Dyno { + constructor({ + covSplats, + index + }) { + super({ + inTypes: { covSplats: TCovSplats, index: "int" }, + outTypes: { covsplat: CovSplat }, + inputs: { covSplats, index }, + globals: () => [defineGsplat, defineCovSplat, defineReadCovArrays], + statements: ({ inputs, outputs }) => { + const { covsplat } = outputs; + if (!covsplat) { + return [`${covsplat}.flags = 0u;`]; + } + const { covSplats: covSplats2, index: index2 } = inputs; + if (covSplats2 && index2) { + return unindentLines(` + readCovArrays(${covSplats2}.textureArray, ${covSplats2}.numSplats, ${index2}, ${covsplat}); + `); + } + return [`${covsplat}.flags = 0u;`]; + } + }); + } + dynoOut() { + return new DynoOutput(this, "covsplat"); + } } -function setPackedSplatCenter(packedSplats, index, x, y, z) { - const uCenterX = toHalf(x); - const uCenterY = toHalf(y); - const uCenterZ = toHalf(z); - const i4 = index * 4; - packedSplats[i4 + 1] = uCenterX | uCenterY << 16; - packedSplats[i4 + 2] = uCenterZ | packedSplats[i4 + 2] & 4294901760; -} -function setPackedSplatScales(packedSplats, index, scaleX, scaleY, scaleZ, encoding) { - const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN; - const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX; - const lnScaleScale = 254 / (lnScaleMax - lnScaleMin); - const uScaleX = scaleX < SCALE_ZERO ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1 - ) - ); - const uScaleY = scaleY < SCALE_ZERO ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1 - ) - ); - const uScaleZ = scaleZ < SCALE_ZERO ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1 - ) - ); - const i4 = index * 4; - packedSplats[i4 + 3] = uScaleX | uScaleY << 8 | uScaleZ << 16 | packedSplats[i4 + 3] & 4278190080; -} -const tempQuaternion = new THREE__namespace.Quaternion(); -function setPackedSplatQuat(packedSplats, index, quatX, quatY, quatZ, quatW) { - const uQuat = encodeQuatOctXy88R8( - tempQuaternion.set(quatX, quatY, quatZ, quatW) - ); - const uQuatX = uQuat & 255; - const uQuatY = uQuat >>> 8 & 255; - const uQuatZ = uQuat >>> 16 & 255; - const i4 = index * 4; - packedSplats[i4 + 2] = packedSplats[i4 + 2] & 65535 | uQuatX << 16 | uQuatY << 24; - packedSplats[i4 + 3] = packedSplats[i4 + 3] & 16777215 | uQuatZ << 24; -} -function setPackedSplatRgba(packedSplats, index, r, g, b, a, encoding) { - const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; - const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; - const rgbRange = rgbMax - rgbMin; - const uR = floatToUint8((r - rgbMin) / rgbRange); - const uG = floatToUint8((g - rgbMin) / rgbRange); - const uB = floatToUint8((b - rgbMin) / rgbRange); - const uA = floatToUint8((encoding == null ? void 0 : encoding.lodOpacity) ? 0.5 * a : a); - const i4 = index * 4; - packedSplats[i4] = uR | uG << 8 | uB << 16 | uA << 24; -} -function setPackedSplatRgb(packedSplats, index, r, g, b, encoding) { - const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; - const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; - const rgbRange = rgbMax - rgbMin; - const uR = floatToUint8((r - rgbMin) / rgbRange); - const uG = floatToUint8((g - rgbMin) / rgbRange); - const uB = floatToUint8((b - rgbMin) / rgbRange); - const i4 = index * 4; - packedSplats[i4] = uR | uG << 8 | uB << 16 | packedSplats[i4] & 4278190080; -} -function setPackedSplatOpacity(packedSplats, index, opacity) { - const uA = floatToUint8(opacity); - const i4 = index * 4; - packedSplats[i4] = packedSplats[i4] & 16777215 | uA << 24; -} -const packedCenter = new THREE__namespace.Vector3(); -const packedScales = new THREE__namespace.Vector3(); -const packedQuaternion = new THREE__namespace.Quaternion(); -const packedColor = new THREE__namespace.Color(); -const packedFields = { - center: packedCenter, - scales: packedScales, - quaternion: packedQuaternion, - color: packedColor, - opacity: 0 -}; -function unpackSplat(packedSplats, index, encoding) { - const result = packedFields; - const i4 = index * 4; - const word0 = packedSplats[i4]; - const word1 = packedSplats[i4 + 1]; - const word2 = packedSplats[i4 + 2]; - const word3 = packedSplats[i4 + 3]; - const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; - const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; - const rgbRange = rgbMax - rgbMin; - result.color.set( - rgbMin + (word0 & 255) / 255 * rgbRange, - rgbMin + (word0 >>> 8 & 255) / 255 * rgbRange, - rgbMin + (word0 >>> 16 & 255) / 255 * rgbRange - ); - result.opacity = (word0 >>> 24 & 255) / 255; - if (encoding == null ? void 0 : encoding.lodOpacity) { - result.opacity = 2 * result.opacity; - } - result.center.set( - fromHalf(word1 & 65535), - fromHalf(word1 >>> 16 & 65535), - fromHalf(word2 & 65535) - ); - const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN; - const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX; - const lnScaleScale = (lnScaleMax - lnScaleMin) / 254; - const uScalesX = word3 & 255; - result.scales.x = uScalesX === 0 ? 0 : Math.exp(lnScaleMin + (uScalesX - 1) * lnScaleScale); - const uScalesY = word3 >>> 8 & 255; - result.scales.y = uScalesY === 0 ? 0 : Math.exp(lnScaleMin + (uScalesY - 1) * lnScaleScale); - const uScalesZ = word3 >>> 16 & 255; - result.scales.z = uScalesZ === 0 ? 0 : Math.exp(lnScaleMin + (uScalesZ - 1) * lnScaleScale); - const uQuat = word2 >>> 16 & 65535 | word3 >>> 8 & 16711680; - decodeQuatOctXy88R8(uQuat, result.quaternion); - return result; -} -function getTextureSize(numSplats) { - const width = SPLAT_TEX_WIDTH; - const height = Math.max( - SPLAT_TEX_MIN_HEIGHT, - Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)) - ); - const depth = Math.ceil(numSplats / (width * height)); - const maxSplats = width * height * depth; - return { width, height, depth, maxSplats }; -} -function computeMaxSplats(numSplats) { - const width = SPLAT_TEX_WIDTH; - const height = Math.max( - SPLAT_TEX_MIN_HEIGHT, - Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)) - ); - const depth = Math.ceil(numSplats / (width * height)); - return width * height * depth; -} -function isMobile() { - if (navigator.platform.toLowerCase().startsWith("win")) { - return false; +class GsplatToCovSplat extends Dyno { + constructor({ gsplat }) { + super({ + inTypes: { gsplat: Gsplat }, + outTypes: { covsplat: CovSplat }, + inputs: { gsplat }, + globals: () => [defineGsplat, defineCovSplat], + statements: ({ inputs, outputs }) => { + const { gsplat: gsplat2 } = inputs; + const { covsplat } = outputs; + if (!gsplat2) { + return [`${covsplat}.flags = 0u;`]; + } + return unindentLines(` + ${covsplat}.flags = 0u; + if (isGsplatActive(${gsplat2}.flags)) { + ${covsplat}.flags = ${gsplat2}.flags; + ${covsplat}.index = ${gsplat2}.index; + ${covsplat}.rgba = ${gsplat2}.rgba; + ${covsplat}.center = ${gsplat2}.center; + mat3 m = scaleQuaternionToMatrix(${gsplat2}.scales, ${gsplat2}.quaternion); + m = m * transpose(m); + ${covsplat}.xxyyzz = vec3(m[0][0], m[1][1], m[2][2]); + ${covsplat}.xyxzyz = vec3(m[0][1], m[0][2], m[1][2]); + } + `); + } + }); } - if (navigator.maxTouchPoints > 0) { - return true; + dynoOut() { + return new DynoOutput(this, "covsplat"); } - return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test( - navigator.userAgent - ); } -function isAndroid() { - return /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent); -} -function isOculus() { - return !!navigator.xr && /Oculus/.test(navigator.userAgent); -} -function isQuest2() { - return isOculus() && /Quest 2/.test(navigator.userAgent); -} -function isIos() { - return /iPhone|iPad/.test(navigator.userAgent); -} -function isVisionPro() { - return !!navigator.xr && isIos() && /Safari/.test(navigator.userAgent) && isMobile(); +class SplitGsplat extends Dyno { + constructor({ gsplat }) { + super({ + inTypes: { gsplat: Gsplat }, + outTypes: { + flags: "uint", + active: "bool", + index: "int", + center: "vec3", + scales: "vec3", + quaternion: "vec4", + rgba: "vec4", + rgb: "vec3", + opacity: "float", + x: "float", + y: "float", + z: "float", + r: "float", + g: "float", + b: "float" + }, + inputs: { gsplat }, + globals: () => [defineGsplat], + statements: ({ inputs, outputs }) => { + const { gsplat: gsplat2 } = inputs; + const { + flags, + active, + index, + center, + scales, + quaternion, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + } = outputs; + return [ + !flags ? null : `${flags} = ${gsplat2 ? `${gsplat2}.flags` : "0u"};`, + !active ? null : `${active} = isGsplatActive(${gsplat2 ? `${gsplat2}.flags` : "0u"});`, + !index ? null : `${index} = ${gsplat2 ? `${gsplat2}.index` : "0"};`, + !center ? null : `${center} = ${gsplat2 ? `${gsplat2}.center` : "vec3(0.0, 0.0, 0.0)"};`, + !scales ? null : `${scales} = ${gsplat2 ? `${gsplat2}.scales` : "vec3(0.0, 0.0, 0.0)"};`, + !quaternion ? null : `${quaternion} = ${gsplat2 ? `${gsplat2}.quaternion` : "vec4(0.0, 0.0, 0.0, 1.0)"};`, + !rgba ? null : `${rgba} = ${gsplat2 ? `${gsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)"};`, + !rgb ? null : `${rgb} = ${gsplat2 ? `${gsplat2}.rgba.rgb` : "vec3(0.0, 0.0, 0.0)"};`, + !opacity ? null : `${opacity} = ${gsplat2 ? `${gsplat2}.rgba.a` : "0.0"};`, + !x ? null : `${x} = ${gsplat2 ? `${gsplat2}.center.x` : "0.0"};`, + !y ? null : `${y} = ${gsplat2 ? `${gsplat2}.center.y` : "0.0"};`, + !z ? null : `${z} = ${gsplat2 ? `${gsplat2}.center.z` : "0.0"};`, + !r ? null : `${r} = ${gsplat2 ? `${gsplat2}.rgba.r` : "0.0"};`, + !g ? null : `${g} = ${gsplat2 ? `${gsplat2}.rgba.g` : "0.0"};`, + !b ? null : `${b} = ${gsplat2 ? `${gsplat2}.rgba.b` : "0.0"};` + ].filter(Boolean); + } + }); + } } -function flipPixels(pixels, width, height) { - const tempLine = new Uint8Array(width * 4); - for (let y = 0; y < height / 2; y++) { - const topOffset = y * width * 4; - const bottomOffset = (height - 1 - y) * width * 4; - tempLine.set(pixels.subarray(topOffset, topOffset + width * 4)); - pixels.set( - pixels.subarray(bottomOffset, bottomOffset + width * 4), - topOffset - ); - pixels.set(tempLine, bottomOffset); +class CombineGsplat extends Dyno { + constructor({ + gsplat, + flags, + index, + center, + scales, + quaternion, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + }) { + super({ + inTypes: { + gsplat: Gsplat, + flags: "uint", + index: "int", + center: "vec3", + scales: "vec3", + quaternion: "vec4", + rgba: "vec4", + rgb: "vec3", + opacity: "float", + x: "float", + y: "float", + z: "float", + r: "float", + g: "float", + b: "float" + }, + outTypes: { gsplat: Gsplat }, + inputs: { + gsplat, + flags, + index, + center, + scales, + quaternion, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + }, + globals: () => [defineGsplat], + statements: ({ inputs, outputs }) => { + const { gsplat: outGsplat } = outputs; + if (!outGsplat) { + return []; + } + const { + gsplat: gsplat2, + flags: flags2, + index: index2, + center: center2, + scales: scales2, + quaternion: quaternion2, + rgba: rgba2, + rgb: rgb2, + opacity: opacity2, + x: x2, + y: y2, + z: z2, + r: r2, + g: g2, + b: b22 + } = inputs; + return [ + `${outGsplat}.flags = ${flags2 ?? (gsplat2 ? `${gsplat2}.flags` : "0u")};`, + `${outGsplat}.index = ${index2 ?? (gsplat2 ? `${gsplat2}.index` : "0")};`, + `${outGsplat}.center = ${center2 ?? (gsplat2 ? `${gsplat2}.center` : "vec3(0.0, 0.0, 0.0)")};`, + `${outGsplat}.scales = ${scales2 ?? (gsplat2 ? `${gsplat2}.scales` : "vec3(0.0, 0.0, 0.0)")};`, + `${outGsplat}.quaternion = ${quaternion2 ?? (gsplat2 ? `${gsplat2}.quaternion` : "vec4(0.0, 0.0, 0.0, 1.0)")};`, + `${outGsplat}.rgba = ${rgba2 ?? (gsplat2 ? `${gsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)")};`, + !rgb2 ? null : `${outGsplat}.rgba.rgb = ${rgb2};`, + !opacity2 ? null : `${outGsplat}.rgba.a = ${opacity2};`, + !x2 ? null : `${outGsplat}.center.x = ${x2};`, + !y2 ? null : `${outGsplat}.center.y = ${y2};`, + !z2 ? null : `${outGsplat}.center.z = ${z2};`, + !r2 ? null : `${outGsplat}.rgba.r = ${r2};`, + !g2 ? null : `${outGsplat}.rgba.g = ${g2};`, + !b22 ? null : `${outGsplat}.rgba.b = ${b22};` + ].filter(Boolean); + } + }); } - return pixels; -} -function pixelsToPngUrl(pixels, width, height) { - const canvas = document.createElement("canvas"); - canvas.width = width; - canvas.height = height; - const ctx = canvas.getContext("2d"); - if (!ctx) { - throw new Error("Can't get 2d context"); + dynoOut() { + return new DynoOutput(this, "gsplat"); } - const imageData = ctx.createImageData(width, height); - imageData.data.set(pixels); - ctx.putImageData(imageData, 0, 0); - return canvas.toDataURL("image/png"); -} -function cloneClock(clock) { - const newClock = new THREE__namespace.Clock(clock.autoStart); - newClock.startTime = clock.startTime; - newClock.oldTime = clock.oldTime; - newClock.elapsedTime = clock.elapsedTime; - newClock.running = clock.running; - return newClock; -} -function omitUndefined(obj) { - return Object.fromEntries( - Object.entries(obj).filter(([_, value]) => value !== void 0) - ); } -const IDENT_VERTEX_SHADER = unindent(` - precision highp float; - - in vec3 position; - - void main() { - gl_Position = vec4(position.xy, 0.0, 1.0); +const defineGsplatNormal = unindent(` + vec3 gsplatNormal(vec3 scales, vec4 quaternion) { + float minScale = min(scales.x, min(scales.y, scales.z)); + vec3 normal; + if (scales.z == minScale) { + normal = vec3(0.0, 0.0, 1.0); + } else if (scales.y == minScale) { + normal = vec3(0.0, 1.0, 0.0); + } else { + normal = vec3(1.0, 0.0, 0.0); + } + return quatVec(quaternion, normal); } `); -function averagePositions(positions) { - const sum = new THREE__namespace.Vector3(); - for (const position of positions) { - sum.add(position); +class GsplatNormal extends UnaryOp { + constructor({ gsplat }) { + super({ a: gsplat, outKey: "normal", outTypeFunc: () => "vec3" }); + this.globals = () => [defineGsplat, defineGsplatNormal]; + this.statements = ({ inputs, outputs }) => [ + `${outputs.normal} = gsplatNormal(${inputs.a}.scales, ${inputs.a}.quaternion);` + ]; } - return sum.divideScalar(positions.length); } -function averageQuaternions(quaternions) { - if (quaternions.length === 0) { - return new THREE__namespace.Quaternion(); +class TransformGsplat extends Dyno { + constructor({ + gsplat, + scale, + rotate, + translate, + recolor + }) { + super({ + inTypes: { + gsplat: Gsplat, + scale: "float", + rotate: "vec4", + translate: "vec3", + recolor: "vec4" + }, + outTypes: { gsplat: Gsplat }, + inputs: { gsplat, scale, rotate, translate, recolor }, + globals: () => [defineGsplat], + statements: ({ inputs, outputs, compile }) => { + const { gsplat: gsplat2 } = outputs; + if (!gsplat2 || !inputs.gsplat) { + return []; + } + const { scale: scale2, rotate: rotate2, translate: translate2, recolor: recolor2 } = inputs; + const indent = compile.indent; + const statements = [ + `${gsplat2} = ${inputs.gsplat};`, + `if (isGsplatActive(${gsplat2}.flags)) {`, + scale2 ? `${indent}${gsplat2}.center *= ${scale2};` : null, + rotate2 ? `${indent}${gsplat2}.center = quatVec(${rotate2}, ${gsplat2}.center);` : null, + translate2 ? `${indent}${gsplat2}.center += ${translate2};` : null, + scale2 ? `${indent}${gsplat2}.scales *= ${scale2};` : null, + rotate2 ? `${indent}${gsplat2}.quaternion = quatQuat(${rotate2}, ${gsplat2}.quaternion);` : null, + recolor2 ? `${indent}${gsplat2}.rgba *= ${recolor2};` : null, + "}" + ].filter(Boolean); + return statements; + } + }); } - const sum = quaternions[0].clone(); - for (let i = 1; i < quaternions.length; i++) { - if (quaternions[i].dot(quaternions[0]) < 0) { - sum.x -= quaternions[i].x; - sum.y -= quaternions[i].y; - sum.z -= quaternions[i].z; - sum.w -= quaternions[i].w; - } else { - sum.x += quaternions[i].x; - sum.y += quaternions[i].y; - sum.z += quaternions[i].z; - sum.w += quaternions[i].w; - } + dynoOut() { + return new DynoOutput(this, "gsplat"); } - return sum.normalize(); -} -function coinciDist(matrix1, matrix2) { - const origin1 = new THREE__namespace.Vector3(0, 0, 0).applyMatrix4(matrix1); - const origin2 = new THREE__namespace.Vector3(0, 0, 0).applyMatrix4(matrix2); - const direction1 = new THREE__namespace.Vector3(0, 0, -1).applyMatrix4(matrix1).sub(origin1).normalize(); - const direction2 = new THREE__namespace.Vector3(0, 0, -1).applyMatrix4(matrix2).sub(origin2).normalize(); - const distance2 = origin1.distanceTo(origin2); - const coincidence = direction1.dot(direction2); - return { distance: distance2, coincidence }; -} -function withinDist({ - matrix1, - matrix2, - maxDistance -}) { - const origin1 = new THREE__namespace.Vector3(0, 0, 0).applyMatrix4(matrix1); - const origin2 = new THREE__namespace.Vector3(0, 0, 0).applyMatrix4(matrix2); - return origin1.distanceTo(origin2) <= maxDistance; -} -function withinCoinciDist({ - matrix1, - matrix2, - maxDistance, - minCoincidence -}) { - const { distance: distance2, coincidence } = coinciDist(matrix1, matrix2); - return distance2 <= maxDistance && (minCoincidence == null || coincidence >= minCoincidence); } -function coorientDist(matrix1, matrix2) { - const [origin1, rotate1] = [new THREE__namespace.Vector3(), new THREE__namespace.Quaternion()]; - const [origin2, rotate2] = [new THREE__namespace.Vector3(), new THREE__namespace.Quaternion()]; - matrix1.decompose(origin1, rotate1, new THREE__namespace.Vector3()); - matrix2.decompose(origin2, rotate2, new THREE__namespace.Vector3()); - const distance2 = origin1.distanceTo(origin2); - const coorient = Math.abs(rotate1.dot(rotate2)); - return { distance: distance2, coorient }; -} -function withinCoorientDist({ - matrix1, - matrix2, - maxDistance, - minCoorient -}) { - const { distance: distance2, coorient } = coorientDist(matrix1, matrix2); - return distance2 <= maxDistance && (minCoorient == null || coorient >= minCoorient); -} -function epsilonSign(value, epsilon = 1e-3) { - if (Math.abs(value) < epsilon) { - return 0; +const splitCovSplat = (covsplat) => new SplitCovSplat({ covsplat }); +const combineCovSplat = ({ + covsplat, + flags, + index, + center, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b +}) => { + return new CombineCovSplat({ + covsplat, + flags, + index, + center, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + }); +}; +class SplitCovSplat extends Dyno { + constructor({ covsplat }) { + super({ + inTypes: { covsplat: CovSplat }, + outTypes: { + flags: "uint", + active: "bool", + index: "int", + center: "vec3", + rgba: "vec4", + rgb: "vec3", + opacity: "float", + x: "float", + y: "float", + z: "float", + r: "float", + g: "float", + b: "float" + }, + inputs: { covsplat }, + globals: () => [defineCovSplat], + statements: ({ inputs, outputs }) => { + const { covsplat: covsplat2 } = inputs; + const { + flags, + active, + index, + center, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + } = outputs; + return [ + !flags ? null : `${flags} = ${covsplat2 ? `${covsplat2}.flags` : "0u"};`, + !active ? null : `${active} = isCovSplatActive(${covsplat2 ? `${covsplat2}.flags` : "0u"});`, + !index ? null : `${index} = ${covsplat2 ? `${covsplat2}.index` : "0"};`, + !center ? null : `${center} = ${covsplat2 ? `${covsplat2}.center` : "vec3(0.0, 0.0, 0.0)"};`, + !rgba ? null : `${rgba} = ${covsplat2 ? `${covsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)"};`, + !rgb ? null : `${rgb} = ${covsplat2 ? `${covsplat2}.rgba.rgb` : "vec3(0.0, 0.0, 0.0)"};`, + !opacity ? null : `${opacity} = ${covsplat2 ? `${covsplat2}.rgba.a` : "0.0"};`, + !x ? null : `${x} = ${covsplat2 ? `${covsplat2}.center.x` : "0.0"};`, + !y ? null : `${y} = ${covsplat2 ? `${covsplat2}.center.y` : "0.0"};`, + !z ? null : `${z} = ${covsplat2 ? `${covsplat2}.center.z` : "0.0"};`, + !r ? null : `${r} = ${covsplat2 ? `${covsplat2}.rgba.r` : "0.0"};`, + !g ? null : `${g} = ${covsplat2 ? `${covsplat2}.rgba.g` : "0.0"};`, + !b ? null : `${b} = ${covsplat2 ? `${covsplat2}.rgba.b` : "0.0"};` + ].filter(Boolean); + } + }); } - return Math.sign(value); -} -function encodeQuatXyz888(q) { - const negQuat = q.w < 0; - const iQuatX = floatToSint8(negQuat ? -q.x : q.x); - const iQuatY = floatToSint8(negQuat ? -q.y : q.y); - const iQuatZ = floatToSint8(negQuat ? -q.z : q.z); - const uQuatX = iQuatX & 255; - const uQuatY = iQuatY & 255; - const uQuatZ = iQuatZ & 255; - return uQuatX | uQuatY << 8 | uQuatZ << 16; } -function decodeQuatXyz888(encoded, out) { - const iQuatX = encoded << 24 >> 24; - const iQuatY = encoded << 16 >> 24; - const iQuatZ = encoded << 8 >> 24; - out.set(iQuatX / 127, iQuatY / 127, iQuatZ / 127, 0); - const dotSelf = out.x * out.x + out.y * out.y + out.z * out.z; - out.w = Math.sqrt(Math.max(0, 1 - dotSelf)); - return out; +class CombineCovSplat extends Dyno { + constructor({ + covsplat, + flags, + index, + center, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + }) { + super({ + inTypes: { + covsplat: CovSplat, + flags: "uint", + index: "int", + center: "vec3", + rgba: "vec4", + rgb: "vec3", + opacity: "float", + x: "float", + y: "float", + z: "float", + r: "float", + g: "float", + b: "float" + }, + outTypes: { covsplat: CovSplat }, + inputs: { + covsplat, + flags, + index, + center, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + }, + globals: () => [defineCovSplat], + statements: ({ inputs, outputs }) => { + const { covsplat: outCovSplat } = outputs; + if (!outCovSplat) { + return []; + } + const { + covsplat: covsplat2, + flags: flags2, + index: index2, + center: center2, + rgba: rgba2, + rgb: rgb2, + opacity: opacity2, + x: x2, + y: y2, + z: z2, + r: r2, + g: g2, + b: b22 + } = inputs; + return [ + `${outCovSplat}.flags = ${flags2 ?? (covsplat2 ? `${covsplat2}.flags` : "0u")};`, + `${outCovSplat}.index = ${index2 ?? (covsplat2 ? `${covsplat2}.index` : "0")};`, + `${outCovSplat}.center = ${center2 ?? (covsplat2 ? `${covsplat2}.center` : "vec3(0.0, 0.0, 0.0)")};`, + `${outCovSplat}.rgba = ${rgba2 ?? (covsplat2 ? `${covsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)")};`, + !rgb2 ? null : `${outCovSplat}.rgba.rgb = ${rgb2};`, + !opacity2 ? null : `${outCovSplat}.rgba.a = ${opacity2};`, + !x2 ? null : `${outCovSplat}.center.x = ${x2};`, + !y2 ? null : `${outCovSplat}.center.y = ${y2};`, + !z2 ? null : `${outCovSplat}.center.z = ${z2};`, + !r2 ? null : `${outCovSplat}.rgba.r = ${r2};`, + !g2 ? null : `${outCovSplat}.rgba.g = ${g2};`, + !b22 ? null : `${outCovSplat}.rgba.b = ${b22};`, + `${outCovSplat}.xxyyzz = ${covsplat2 ? `${covsplat2}.xxyyzz` : "vec3(0.0, 0.0, 0.0)"};`, + `${outCovSplat}.xyxzyz = ${covsplat2 ? `${covsplat2}.xyxzyz` : "vec3(0.0, 0.0, 0.0)"};` + ].filter(Boolean); + } + }); + } + dynoOut() { + return new DynoOutput(this, "covsplat"); + } } -const tempNormalizedQuaternion = new THREE__namespace.Quaternion(); -const tempAxis = new THREE__namespace.Vector3(); -function encodeQuatOctXy88R8(q) { - const qnorm = tempNormalizedQuaternion.copy(q).normalize(); - if (qnorm.w < 0) { - qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w); +class SplatTexCoord extends Dyno { + constructor({ index }) { + super({ + inTypes: { index: "int" }, + outTypes: { coord: "ivec3" }, + inputs: { index }, + statements: ({ inputs, outputs }) => { + const { index: index2 } = inputs; + const { coord } = outputs; + if (!index2 || !coord) { + return []; + } + return [`${coord} = splatTexCoord(${index2});`]; + } + }); } - const theta = 2 * Math.acos(qnorm.w); - const xyz_norm = Math.sqrt( - qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z - ); - const axis = xyz_norm < 1e-6 ? tempAxis.set(1, 0, 0) : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm); - const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z); - let p_x = axis.x / sum; - let p_y = axis.y / sum; - if (axis.z < 0) { - const tmp = p_x; - p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1); - p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1); + dynoOut() { + return new DynoOutput(this, "coord"); } - const u_f = p_x * 0.5 + 0.5; - const v_f = p_y * 0.5 + 0.5; - const quantU = Math.round(u_f * 255); - const quantV = Math.round(v_f * 255); - const angleInt = Math.round(theta * (255 / Math.PI)); - return angleInt << 16 | quantV << 8 | quantU; } -function decodeQuatOctXy88R8(encoded, out) { - const quantU = encoded & 255; - const quantV = encoded >>> 8 & 255; - const angleInt = encoded >>> 16 & 255; - const u_f = quantU / 255; - const v_f = quantV / 255; - let f_x = (u_f - 0.5) * 2; - let f_y = (v_f - 0.5) * 2; - const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y)); - const t = Math.max(-f_z, 0); - f_x += f_x >= 0 ? -t : t; - f_y += f_y >= 0 ? -t : t; - const axis = tempAxis.set(f_x, f_y, f_z).normalize(); - const theta = angleInt / 255 * Math.PI; - const halfTheta = theta * 0.5; - const s = Math.sin(halfTheta); - const w = Math.cos(halfTheta); - out.set(axis.x * s, axis.y * s, axis.z * s, w); - return out; -} -function encodeQuatEulerXyz888(q) { - const qNorm = q.clone().normalize(); - const sinr_cosp = 2 * (qNorm.w * qNorm.x + qNorm.y * qNorm.z); - const cosr_cosp = 1 - 2 * (qNorm.x * qNorm.x + qNorm.y * qNorm.y); - const roll = Math.atan2(sinr_cosp, cosr_cosp); - const sinp = 2 * (qNorm.w * qNorm.y - qNorm.z * qNorm.x); - const pitch = Math.abs(sinp) >= 1 ? Math.sign(sinp) * (Math.PI / 2) : Math.asin(sinp); - const siny_cosp = 2 * (qNorm.w * qNorm.z + qNorm.x * qNorm.y); - const cosy_cosp = 1 - 2 * (qNorm.y * qNorm.y + qNorm.z * qNorm.z); - const yaw = Math.atan2(siny_cosp, cosy_cosp); - const normRoll = (roll + Math.PI) / (2 * Math.PI); - const normPitch = (pitch + Math.PI) / (2 * Math.PI); - const normYaw = (yaw + Math.PI) / (2 * Math.PI); - const rollQ = Math.round(normRoll * 255); - const pitchQ = Math.round(normPitch * 255); - const yawQ = Math.round(normYaw * 255); - return yawQ << 16 | pitchQ << 8 | rollQ; -} -function decodeQuatEulerXyz888(encoded, out) { - const rollQ = encoded & 255; - const pitchQ = encoded >>> 8 & 255; - const yawQ = encoded >>> 16 & 255; - const normRoll = rollQ / 255; - const normPitch = pitchQ / 255; - const normYaw = yawQ / 255; - const roll = normRoll * (2 * Math.PI) - Math.PI; - const pitch = normPitch * (2 * Math.PI) - Math.PI; - const yaw = normYaw * (2 * Math.PI) - Math.PI; - const cr = Math.cos(roll * 0.5); - const sr = Math.sin(roll * 0.5); - const cp = Math.cos(pitch * 0.5); - const sp = Math.sin(pitch * 0.5); - const cy = Math.cos(yaw * 0.5); - const sy = Math.sin(yaw * 0.5); - out.w = cr * cp * cy + sr * sp * sy; - out.x = sr * cp * cy - cr * sp * sy; - out.y = cr * sp * cy + sr * cp * sy; - out.z = cr * cp * sy - sr * sp * cy; - out.normalize(); - return out; +class PagedSplatTexCoord extends Dyno { + constructor({ index }) { + super({ + inTypes: { index: "int" }, + outTypes: { coord: "ivec3" }, + inputs: { index }, + statements: ({ inputs, outputs }) => { + const { index: index2 } = inputs; + const { coord } = outputs; + if (!index2 || !coord) { + return []; + } + return [`${coord} = pagedSplatTexCoord(${index2});`]; + } + }); + } + dynoOut() { + return new DynoOutput(this, "coord"); + } } -function encodeQuatOctXy1010R12(qx, qy, qz, qw) { - const qlen = Math.sqrt(qx * qx + qy * qy + qz * qz + qw * qw); - const qnx = (qw < 0 ? -qx : qx) / qlen; - const qny = (qw < 0 ? -qy : qy) / qlen; - const qnz = (qw < 0 ? -qz : qz) / qlen; - const qnw = (qw < 0 ? -qw : qw) / qlen; - const theta = 2 * Math.acos(qnw); - const xyz_norm = Math.sqrt(qnx * qnx + qny * qny + qnz * qnz); - const axisX = xyz_norm < 1e-6 ? 1 : qnx / xyz_norm; - const axisY = xyz_norm < 1e-6 ? 0 : qny / xyz_norm; - const axisZ = xyz_norm < 1e-6 ? 0 : qnz / xyz_norm; - const sum = Math.abs(axisX) + Math.abs(axisY) + Math.abs(axisZ); - let p_x = axisX / sum; - let p_y = axisY / sum; - if (axisZ < 0) { - const tmp = p_x; - p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1); - p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1); +const outputPackedSplat = (gsplat, rgbMinMaxLnScaleMinMax) => new OutputPackedSplat({ gsplat, rgbMinMaxLnScaleMinMax }); +const outputCovSplat = (covsplat, rgbMinMaxLnScaleMinMax) => new OutputCovSplat({ covsplat, rgbMinMaxLnScaleMinMax }); +const outputExtendedSplat = (gsplat) => new OutputExtendedSplat({ gsplat }); +const outputExtCovSplat = (covsplat) => new OutputExtCovSplat({ covsplat }); +const outputSplatDepth = (gsplat, viewCenter, viewDir, sortRadial) => new OutputSplatDepth({ gsplat, viewCenter, viewDir, sortRadial }); +const outputCovSplatDepth = (covsplat, viewCenter, viewDir, sortRadial) => new OutputCovSplatDepth({ covsplat, viewCenter, viewDir, sortRadial }); +const outputRgba8 = (rgba8) => new OutputRgba8({ rgba8 }); +class OutputPackedSplat extends Dyno { + constructor({ + gsplat, + rgbMinMaxLnScaleMinMax + }) { + super({ + inTypes: { gsplat: Gsplat, rgbMinMaxLnScaleMinMax: "vec4" }, + inputs: { gsplat, rgbMinMaxLnScaleMinMax }, + globals: () => [defineGsplat], + statements: ({ inputs, outputs }) => { + const { gsplat: gsplat2, rgbMinMaxLnScaleMinMax: rgbMinMaxLnScaleMinMax2 } = inputs; + if (gsplat2 && rgbMinMaxLnScaleMinMax2) { + return unindentLines(` + if (isGsplatActive(${gsplat2}.flags)) { + target = packSplatEncoding(${gsplat2}.center, ${gsplat2}.scales, ${gsplat2}.quaternion, ${gsplat2}.rgba, ${rgbMinMaxLnScaleMinMax2}); + } else { + target = uvec4(0u, 0u, 0u, 0u); + } + `); + } + return ["target = uvec4(0u, 0u, 0u, 0u);"]; + } + }); } - const u_f = p_x * 0.5 + 0.5; - const v_f = p_y * 0.5 + 0.5; - const quantU = Math.round(u_f * 1023); - const quantV = Math.round(v_f * 1023); - const angleInt = Math.round(theta * (4095 / Math.PI)); - return angleInt << 20 | quantV << 10 | quantU; } -function decodeQuatOctXy1010R12(encoded, out) { - const quantU = encoded & 1023; - const quantV = encoded >>> 10 & 1023; - const angleInt = encoded >>> 20 & 4095; - const u_f = quantU / 1023; - const v_f = quantV / 1023; - let f_x = (u_f - 0.5) * 2; - let f_y = (v_f - 0.5) * 2; - const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y)); - const t = Math.max(-f_z, 0); - f_x += f_x >= 0 ? -t : t; - f_y += f_y >= 0 ? -t : t; - const axisLen = Math.sqrt(f_x * f_x + f_y * f_y + f_z * f_z); - const axisX = axisLen < 1e-6 ? 0 : f_x / axisLen; - const axisY = axisLen < 1e-6 ? 0 : f_y / axisLen; - const axisZ = axisLen < 1e-6 ? 0 : f_z / axisLen; - const theta = angleInt / 4095 * Math.PI; - const halfTheta = theta * 0.5; - const s = Math.sin(halfTheta); - const w = Math.cos(halfTheta); - out.set(axisX * s, axisY * s, axisZ * s, w); - return out; +class OutputCovSplat extends Dyno { + constructor({ + covsplat, + rgbMinMaxLnScaleMinMax + }) { + super({ + inTypes: { covsplat: CovSplat, rgbMinMaxLnScaleMinMax: "vec4" }, + inputs: { covsplat, rgbMinMaxLnScaleMinMax }, + globals: () => [defineCovSplat], + statements: ({ inputs }) => { + const { covsplat: covsplat2, rgbMinMaxLnScaleMinMax: rgbMinMaxLnScaleMinMax2 } = inputs; + if (covsplat2 && rgbMinMaxLnScaleMinMax2) { + return unindentLines(` + if (isCovSplatActive(${covsplat2}.flags)) { + target = packSplatCovEncoding(${covsplat2}.center, ${covsplat2}.rgba, ${covsplat2}.xxyyzz, ${covsplat2}.xyxzyz, ${rgbMinMaxLnScaleMinMax2}); + } else { + target = uvec4(0u); + } + `); + } + return ["target = uvec4(0u);"]; + } + }); + } } -function packSint8Bytes(b0, b1, b22, b3) { - const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127))); - const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127))); - const clampedB2 = Math.round(Math.max(-127, Math.min(127, b22 * 127))); - const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127))); - return clampedB0 & 255 | (clampedB1 & 255) << 8 | (clampedB2 & 255) << 16 | (clampedB3 & 255) << 24; +class OutputExtendedSplat extends Dyno { + constructor({ + gsplat + }) { + super({ + inTypes: { gsplat: Gsplat }, + inputs: { gsplat }, + globals: () => [defineGsplat], + statements: ({ inputs }) => { + const { gsplat: gsplat2 } = inputs; + if (gsplat2) { + return unindentLines(` + if (isGsplatActive(${gsplat2}.flags)) { + packSplatExt(target, target2, ${gsplat2}.center, ${gsplat2}.scales, ${gsplat2}.quaternion, ${gsplat2}.rgba); + } else { + target = uvec4(0u); + target2 = uvec4(0u); + } + `); + } + return ["target = uvec4(0u);", "target2 = uvec4(0u);"]; + } + }); + } } -function encodeSh1Rgb(sh1Array, index, sh1Rgb, encoding) { - const sh1Max = (encoding == null ? void 0 : encoding.sh1Max) ?? 1; - const sh1Scale = 63 / sh1Max; - const base = index * 2; - for (let i = 0; i < 9; ++i) { - const s = sh1Rgb[i] * sh1Scale; - const value = Math.round(Math.max(-63, Math.min(63, s))) & 127; - const bitStart = i * 7; - const bitEnd = bitStart + 7; - const wordStart = Math.floor(bitStart / 32); - const bitOffset = bitStart - wordStart * 32; - const firstWord = value << bitOffset & 4294967295; - sh1Array[base + wordStart] |= firstWord; - if (bitEnd > wordStart * 32 + 32) { - const secondWord = value >>> 32 - bitOffset & 4294967295; - sh1Array[base + wordStart + 1] |= secondWord; - } +class OutputExtCovSplat extends Dyno { + constructor({ + covsplat + }) { + super({ + inTypes: { covsplat: CovSplat }, + inputs: { covsplat }, + globals: () => [defineCovSplat], + statements: ({ inputs }) => { + const { covsplat: covsplat2 } = inputs; + if (covsplat2) { + return unindentLines(` + if (isCovSplatActive(${covsplat2}.flags)) { + packSplatExtCov(target, target2, ${covsplat2}.center, ${covsplat2}.rgba, ${covsplat2}.xxyyzz, ${covsplat2}.xyxzyz); + } else { + target = uvec4(0u); + target2 = uvec4(0u); + } + `); + } + return ["target = uvec4(0u);", "target2 = uvec4(0u);"]; + } + }); } } -function encodeSh2Rgb(sh2Array, index, sh2Rgb, encoding) { - const sh2Max = (encoding == null ? void 0 : encoding.sh2Max) ?? 1; - const sh2Scale = 1 / sh2Max; - sh2Array[index * 4 + 0] = packSint8Bytes( - sh2Rgb[0] * sh2Scale, - sh2Rgb[1] * sh2Scale, - sh2Rgb[2] * sh2Scale, - sh2Rgb[3] * sh2Scale - ); - sh2Array[index * 4 + 1] = packSint8Bytes( - sh2Rgb[4] * sh2Scale, - sh2Rgb[5] * sh2Scale, - sh2Rgb[6] * sh2Scale, - sh2Rgb[7] * sh2Scale - ); - sh2Array[index * 4 + 2] = packSint8Bytes( - sh2Rgb[8] * sh2Scale, - sh2Rgb[9] * sh2Scale, - sh2Rgb[10] * sh2Scale, - sh2Rgb[11] * sh2Scale - ); - sh2Array[index * 4 + 3] = packSint8Bytes( - sh2Rgb[12] * sh2Scale, - sh2Rgb[13] * sh2Scale, - sh2Rgb[14] * sh2Scale, - 0 - ); -} -function encodeSh3Rgb(sh3Array, index, sh3Rgb, encoding) { - const sh3Max = (encoding == null ? void 0 : encoding.sh3Max) ?? 1; - const sh3Scale = 31 / sh3Max; - const base = index * 4; - for (let i = 0; i < 21; ++i) { - const s = sh3Rgb[i] * sh3Scale; - const value = Math.round(Math.max(-31, Math.min(31, s))) & 63; - const bitStart = i * 6; - const bitEnd = bitStart + 6; - const wordStart = Math.floor(bitStart / 32); - const bitOffset = bitStart - wordStart * 32; - const firstWord = value << bitOffset & 4294967295; - sh3Array[base + wordStart] |= firstWord; - if (bitEnd > wordStart * 32 + 32) { - const secondWord = value >>> 32 - bitOffset & 4294967295; - sh3Array[base + wordStart + 1] |= secondWord; - } +class OutputSplatDepth extends Dyno { + constructor({ + gsplat, + viewCenter, + viewDir, + sortRadial + }) { + super({ + inTypes: { + gsplat: Gsplat, + viewCenter: "vec3", + viewDir: "vec3", + sortRadial: "bool" + }, + inputs: { gsplat, viewCenter, viewDir, sortRadial }, + globals: () => [defineGsplat], + statements: ({ inputs }) => { + const { gsplat: gsplat2, viewCenter: viewCenter2, viewDir: viewDir2, sortRadial: sortRadial2 } = inputs; + if (gsplat2 && viewCenter2 && viewDir2 && sortRadial2) { + return unindentLines(` + float metric = 1.0 / 0.0; + if (isGsplatActive(${gsplat2}.flags)) { + vec3 center = ${gsplat2}.center - ${viewCenter2}; + if (${sortRadial2}) { + metric = length(center); + } else { + float bias = 100.0; // reduce popping + metric = dot(center, ${viewDir2}) + bias; + } + } + target3 = floatToVec4(metric); + `); + } + return []; + } + }); } } -function encodeExtRgb(r, g, b) { - const ar = Math.abs(r); - const ag = Math.abs(g); - const ab = Math.abs(b); - const maxAbs = Math.max(ar, ag, ab); - const base = Math.floor(Math.log2(maxAbs)); - const biasedBase = Math.max(0, Math.min(31, base + 15)); - const divisor = 2 ** (biasedBase - 15) / 255; - const uR = Math.round(Math.max(0, Math.min(255, ar / divisor))); - const uG = Math.round(Math.max(0, Math.min(255, ag / divisor))); - const uB = Math.round(Math.max(0, Math.min(255, ab / divisor))); - const expSigns = biasedBase << 3 | ((r < 0 ? 1 : 0) | (g < 0 ? 2 : 0) | (b < 0 ? 4 : 0)); - return uR | uG << 8 | uB << 16 | expSigns << 24; -} -function decodeExtRgb(encoded) { - const color = packedFields.color; - const biasedBase = encoded >>> 27 & 31; - const divisor = 2 ** (biasedBase - 15) / 255; - const r = (encoded & 255) * divisor; - const g = (encoded >>> 8 & 255) * divisor; - const b = (encoded >>> 16 & 255) * divisor; - color.r = encoded & 16777216 ? -r : r; - color.g = encoded & 33554432 ? -g : g; - color.b = encoded & 67108864 ? -b : b; - return color; -} -function encodeExtSh1Rgb(sh1Array, index, sh1Rgb) { - const i4 = index * 4; - for (let k = 0; k < 3; ++k) { - const k3 = k * 3; - sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]); +class OutputCovSplatDepth extends Dyno { + constructor({ + covsplat, + viewCenter, + viewDir, + sortRadial + }) { + super({ + inTypes: { + covsplat: CovSplat, + viewCenter: "vec3", + viewDir: "vec3", + sortRadial: "bool" + }, + inputs: { covsplat, viewCenter, viewDir, sortRadial }, + globals: () => [defineCovSplat], + statements: ({ inputs }) => { + const { covsplat: covsplat2, viewCenter: viewCenter2, viewDir: viewDir2, sortRadial: sortRadial2 } = inputs; + if (covsplat2 && viewCenter2 && viewDir2 && sortRadial2) { + return unindentLines(` + float metric = 1.0 / 0.0; + if (isCovSplatActive(${covsplat2}.flags)) { + vec3 center = ${covsplat2}.center - ${viewCenter2}; + if (${sortRadial2}) { + metric = length(center); + } else { + float bias = 100.0; // reduce popping + metric = dot(center, ${viewDir2}) + bias; + } + } + target3 = floatToVec4(metric); + `); + } + return []; + } + }); } } -function encodeExtSh12Rgb(sh1Array, sh2Array, index, sh1Rgb, sh2Rgb) { - const i4 = index * 4; - for (let k = 0; k < 3; ++k) { - const k3 = k * 3; - sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]); +class OutputRgba8 extends Dyno { + constructor({ rgba8 }) { + super({ + inTypes: { rgba8: "vec4" }, + inputs: { rgba8 }, + statements: ({ inputs, outputs }) => [ + `target = ${inputs.rgba8 ?? "vec4(0.0, 0.0, 0.0, 0.0)"};` + ] + }); } - sh1Array[i4 + 3] = encodeExtRgb(sh2Rgb[0], sh2Rgb[1], sh2Rgb[2]); - for (let k = 1; k < 5; ++k) { - const k5 = k * 5; - sh2Array[i4 + (k - 1)] = encodeExtRgb( - sh2Rgb[k5], - sh2Rgb[k5 + 1], - sh2Rgb[k5 + 2] - ); + dynoOut() { + return new DynoOutput(this, "rgba8"); } } -function encodeExt3Rgb(sh3ArrayA, sh3ArrayB, index, sh3Rgb) { - const i4 = index * 4; - for (let k = 0; k < 4; ++k) { - const k3 = k * 3; - sh3ArrayA[i4 + k] = encodeExtRgb( - sh3Rgb[k3], - sh3Rgb[k3 + 1], - sh3Rgb[k3 + 2] - ); +const uniform = (key, type, value) => new DynoUniform({ key, type, value }); +const dynoBool = (value = false, key) => new DynoBool({ key, value }); +const dynoUint = (value = 0, key) => new DynoUint({ key, value }); +const dynoInt = (value = 0, key) => new DynoInt({ key, value }); +const dynoFloat = (value = 0, key) => new DynoFloat({ key, value }); +const dynoBvec2 = (value, key) => new DynoBvec2({ key, value }); +const dynoUvec2 = (value, key) => new DynoUvec2({ key, value }); +const dynoIvec2 = (value, key) => new DynoIvec2({ key, value }); +const dynoVec2 = (value, key) => new DynoVec2({ key, value }); +const dynoBvec3 = (value, key) => new DynoBvec3({ key, value }); +const dynoUvec3 = (value, key) => new DynoUvec3({ key, value }); +const dynoIvec3 = (value, key) => new DynoIvec3({ key, value }); +const dynoVec3 = (value, key) => new DynoVec3({ key, value }); +const dynoBvec4 = (value, key) => new DynoBvec4({ key, value }); +const dynoUvec4 = (value, key) => new DynoUvec4({ key, value }); +const dynoIvec4 = (value, key) => new DynoIvec4({ key, value }); +const dynoVec4 = (value, key) => new DynoVec4({ key, value }); +const dynoMat2 = (value, key) => new DynoMat2({ key, value }); +const dynoMat2x2 = (value, key) => new DynoMat2x2({ key, value }); +const dynoMat2x3 = (value, key) => new DynoMat2x3({ key, value }); +const dynoMat2x4 = (value, key) => new DynoMat2x4({ key, value }); +const dynoMat3 = (value, key) => new DynoMat3({ key, value }); +const dynoMat3x2 = (value, key) => new DynoMat3x2({ key, value }); +const dynoMat3x3 = (value, key) => new DynoMat3x3({ key, value }); +const dynoMat3x4 = (value, key) => new DynoMat3x4({ key, value }); +const dynoMat4 = (value, key) => new DynoMat4({ key, value }); +const dynoMat4x2 = (value, key) => new DynoMat4x2({ key, value }); +const dynoMat4x3 = (value, key) => new DynoMat4x3({ key, value }); +const dynoMat4x4 = (value, key) => new DynoMat4x4({ key, value }); +const dynoUsampler2D = (value, key) => new DynoUsampler2D({ key, value }); +const dynoIsampler2D = (value, key) => new DynoIsampler2D({ key, value }); +const dynoSampler2D = (value, key) => new DynoSampler2D({ key, value }); +const dynoUsampler2DArray = (value, key) => new DynoUsampler2DArray({ key, value }); +const dynoIsampler2DArray = (key, value) => new DynoIsampler2DArray({ key, value }); +const dynoSampler2DArray = (value, key) => new DynoSampler2DArray({ key, value }); +const dynoUsampler3D = (value, key) => new DynoUsampler3D({ key, value }); +const dynoIsampler3D = (value, key) => new DynoIsampler3D({ key, value }); +const dynoSampler3D = (value, key) => new DynoSampler3D({ key, value }); +const dynoUsamplerCube = (value, key) => new DynoUsamplerCube({ key, value }); +const dynoIsamplerCube = (value, key) => new DynoIsamplerCube({ key, value }); +const dynoSamplerCube = (value, key) => new DynoSamplerCube({ key, value }); +const dynoSampler2DShadow = (value, key) => new DynoSampler2DShadow({ key, value }); +const dynoSampler2DArrayShadow = (value, key) => new DynoSampler2DArrayShadow({ key, value }); +const dynoSamplerCubeShadow = (value, key) => new DynoSamplerCubeShadow({ key, value }); +class DynoUniform extends Dyno { + constructor({ + key, + type, + count, + value, + update, + globals + }) { + key = key ?? "value"; + super({ + outTypes: { [key]: type }, + update: () => { + if (update) { + const value2 = update(this.value); + if (value2 !== void 0) { + this.value = value2; + } + } + this.uniform.value = this.value; + }, + generate: ({ inputs, outputs }) => { + const allGlobals = (globals == null ? void 0 : globals({ inputs, outputs })) ?? []; + const uniforms = {}; + const name = outputs[key]; + if (name) { + allGlobals.push(`uniform ${dynoDeclare(name, type, count)};`); + uniforms[name] = this.uniform; + } + return { globals: allGlobals, uniforms }; + } + }); + this.type = type; + this.count = count; + this.value = value; + this.uniform = { value }; + this.outKey = key; } - for (let k = 4; k < 7; ++k) { - const k3 = k * 3; - sh3ArrayB[i4 + (k - 4)] = encodeExtRgb( - sh3Rgb[k3], - sh3Rgb[k3 + 1], - sh3Rgb[k3 + 2] - ); + dynoOut() { + return new DynoOutput(this, this.outKey); } } -function decompressPartialGzip(fileBytes, numBytes) { - const chunks = []; - let totalBytes = 0; - let result = null; - const gunzip = new Gunzip((data, final) => { - chunks.push(data); - totalBytes += data.length; - if (final || totalBytes >= numBytes) { - const allBytes = new Uint8Array(totalBytes); - let offset2 = 0; - for (const chunk of chunks) { - allBytes.set(chunk, offset2); - offset2 += chunk.length; - } - result = allBytes.slice(0, numBytes); - } - }); - const CHUNK_SIZE = 1024; - let offset = 0; - while (result == null && offset < fileBytes.length) { - const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE); - gunzip.push(chunk, false); - offset += CHUNK_SIZE; +class DynoBool extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "bool", value, update }); } - if (result == null) { - gunzip.push(new Uint8Array(), true); - if (result == null) { - throw new Error("Failed to decompress partial gzip"); - } +} +class DynoUint extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "uint", value, update }); } - return result; } -class GunzipReader { +class DynoInt extends DynoUniform { constructor({ - fileBytes, - chunkBytes = 64 * 1024 + key, + value, + update }) { - this.fileBytes = fileBytes; - this.chunkBytes = chunkBytes; - this.chunks = []; - this.totalBytes = 0; - const ds = new DecompressionStream("gzip"); - const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds); - this.reader = decompressionStream.getReader(); + super({ key, type: "int", value, update }); } - async read(numBytes) { - while (this.totalBytes < numBytes) { - const { value: chunk, done: readerDone } = await this.reader.read(); - if (readerDone) { - break; - } - this.chunks.push(chunk); - this.totalBytes += chunk.length; - } - if (this.totalBytes < numBytes) { - throw new Error( - `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}` - ); - } - const allBytes = new Uint8Array(this.totalBytes); - let outOffset = 0; - for (const chunk of this.chunks) { - allBytes.set(chunk, outOffset); - outOffset += chunk.length; - } - const result = allBytes.subarray(0, numBytes); - this.chunks = [allBytes.subarray(numBytes)]; - this.totalBytes -= numBytes; - return result; +} +class DynoFloat extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "float", value, update }); } } -const utils = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ - __proto__: null, - DataCache, - FreeList, - GunzipReader, - IDENT_VERTEX_SHADER, - Sint8ToFloat, - Uint8ToFloat, - averagePositions, - averageQuaternions, - cloneClock, - coinciDist, - computeMaxSplats, - coorientDist, - decodeExtRgb, - decodeExtSplat, - decodeQuatEulerXyz888, - decodeQuatOctXy1010R12, - decodeQuatOctXy88R8, - decodeQuatXyz888, - decompressPartialGzip, - encodeExt3Rgb, - encodeExtRgb, - encodeExtSh12Rgb, - encodeExtSh1Rgb, - encodeExtSplat, - encodeQuatEulerXyz888, - encodeQuatOctXy1010R12, - encodeQuatOctXy88R8, - encodeQuatXyz888, - encodeSh1Rgb, - encodeSh2Rgb, - encodeSh3Rgb, - epsilonSign, - flipPixels, - floatBitsToUint: floatBitsToUint$1, - floatToSint8, - floatToUint8, - fromHalf, - getTextureSize, - getTransferable, - isAndroid, - isIos, - isMobile, - isOculus, - isQuest2, - isVisionPro, - mapFilterObject, - mapObject, - newArray, - normalize: normalize$1, - omitUndefined, - pixelsToPngUrl, - setPackedSplat, - setPackedSplatCenter, - setPackedSplatOpacity, - setPackedSplatQuat, - setPackedSplatRgb, - setPackedSplatRgba, - setPackedSplatScales, - threeMrtArray, - threeRevision, - toHalf, - uintBitsToFloat: uintBitsToFloat$1, - unpackSplat, - withinCoinciDist, - withinCoorientDist, - withinDist -}, Symbol.toStringTag, { value: "Module" })); -class OldSplatWorker { - constructor() { - this.messages = {}; - this.messageIdNext = 0; - this.worker = new WorkerWrapper$1(); - this.worker.onmessage = (event) => this.onMessage(event); +class DynoBvec2 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "bvec2", value, update }); } - makeMessageId() { - return ++this.messageIdNext; +} +class DynoUvec2 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "uvec2", value, update }); } - makeMessagePromiseId() { - const id = this.makeMessageId(); - const promise = new Promise((resolve, reject) => { - this.messages[id] = { resolve, reject }; - }); - return { id, promise }; +} +class DynoIvec2 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "ivec2", value, update }); } - onMessage(event) { - const { id, result, error } = event.data; - const handler = this.messages[id]; - if (handler) { - delete this.messages[id]; - if (error) { - handler.reject(error); - } else { - handler.resolve(result); - } - } +} +class DynoVec2 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "vec2", value, update }); } - // Invoke an RPC on the worker with the given name and arguments. - // The normal usage of a worker is to run one activity at a time, - // but this function allows for concurrent calls, tagging each request - // with a unique message Id and awaiting a response to that same Id. - // The method will automatically transfer any ArrayBuffers in the - // arguments to the worker. If you'd like to transfer a copy of a - // buffer then you must clone it before passing to this function. - async call(name, args) { - const { id, promise } = this.makeMessagePromiseId(); - this.worker.postMessage( - { name, args, id }, - { transfer: getTransferable(args) } - ); - return promise; +} +class DynoBvec3 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "bvec3", value, update }); } } -let maxWorkers = 4; -let numWorkers = 0; -const freeWorkers = []; -const workerQueue = []; -async function allocWorker() { - const worker = freeWorkers.shift(); - if (worker) { - return worker; +class DynoUvec3 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "uvec3", value, update }); } - if (numWorkers < maxWorkers) { - const worker2 = new OldSplatWorker(); - numWorkers += 1; - return worker2; +} +class DynoIvec3 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "ivec3", value, update }); } - return new Promise((resolve) => { - workerQueue.push(resolve); - }); } -function freeWorker(worker) { - if (numWorkers > maxWorkers) { - numWorkers -= 1; - return; +class DynoVec3 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "vec3", value, update }); } - const waiter = workerQueue.shift(); - if (waiter) { - waiter(worker); - return; +} +class DynoBvec4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "bvec4", value, update }); } - freeWorkers.push(worker); } -async function withWorker(callback) { - const worker = await allocWorker(); - try { - return await callback(worker); - } finally { - freeWorker(worker); +class DynoUvec4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "uvec4", value, update }); } } -const jsContent = '(function() {\n "use strict";\n class ChunkDecoder {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ChunkDecoder.prototype);\n obj.__wbg_ptr = ptr;\n ChunkDecoderFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ChunkDecoderFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_chunkdecoder_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n finish() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.chunkdecoder_finish(ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n */\n push(bytes) {\n const ret = wasm.chunkdecoder_push(this.__wbg_ptr, bytes);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n }\n if (Symbol.dispose) ChunkDecoder.prototype[Symbol.dispose] = ChunkDecoder.prototype.free;\n class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n }\n if (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n }\n if (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n function bhatt_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, rgba) {\n const ret = wasm.bhatt_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function bhatt_lod_packedsplats(num_splats, packed, extra, lod_base, rgba, encoding) {\n const ret = wasm.bhatt_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function decode_to_csplatarray(file_type, path_name, encoding) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_csplatarray(ptr0, len0, ptr1, len1, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function decode_to_extsplats(file_type, path_name, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_extsplats(ptr0, len0, ptr1, len1, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function decode_to_gsplatarray(file_type, path_name) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_gsplatarray(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function decode_to_packedsplats(file_type, path_name, encoding, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_packedsplats(ptr0, len0, ptr1, len1, encoding, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function dispose_lod_tree(lod_id) {\n wasm.dispose_lod_tree(lod_id);\n }\n function get_lod_tree_level(lod_id, level) {\n const ret = wasm.get_lod_tree_level(lod_id, level);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function init_lod_tree(num_splats, lod_tree) {\n const ret = wasm.init_lod_tree(num_splats, lod_tree);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function new_lod_tree(capacity) {\n const ret = wasm.new_lod_tree(capacity);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function new_shared_lod_tree(orig_lod_id) {\n const ret = wasm.new_shared_lod_tree(orig_lod_id);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n }\n function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n }\n function tiny_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, merge_filter, rgba) {\n const ret = wasm.tiny_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function tiny_lod_packedsplats(num_splats, packed, extra, lod_base, merge_filter, rgba, encoding) {\n const ret = wasm.tiny_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 4294967297 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function update_lod_trees(lod_ids, page_bases, chunk_bases, counts, lod_trees) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(page_bases, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_bases, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(counts, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.update_lod_trees(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, lod_trees);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof v === "boolean" ? v : void 0;\n return isLikeNone(ret) ? 16777215 : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof val === "object" && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === void 0;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof obj === "number" ? obj : void 0;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof obj === "string" ? obj : void 0;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() {\n return handleError(function(arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments);\n },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() {\n return handleError(function(arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments);\n },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, void 0);\n table.set(offset + 0, void 0);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n }\n };\n return {\n __proto__: null,\n "./spark_worker_rs_bg.js": import0\n };\n }\n const ChunkDecoderFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\n const CsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\n const GsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n function addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n }\n function debugString(val) {\n const type = typeof val;\n if (type == "number" || type == "boolean" || val == null) {\n return `${val}`;\n }\n if (type == "string") {\n return `"${val}"`;\n }\n if (type == "symbol") {\n const description = val.description;\n if (description == null) {\n return "Symbol";\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == "function") {\n const name = val.name;\n if (typeof name == "string" && name.length > 0) {\n return `Function(${name})`;\n } else {\n return "Function";\n }\n }\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = "[";\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for (let i = 1; i < length; i++) {\n debug += ", " + debugString(val[i]);\n }\n debug += "]";\n return debug;\n }\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n return toString.call(val);\n }\n if (className == "Object") {\n try {\n return "Object(" + JSON.stringify(val) + ")";\n } catch (_) {\n return "Object";\n }\n }\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\n${val.stack}`;\n }\n return className;\n }\n function getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n }\n function getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n }\n function getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n }\n let cachedDataViewMemory0 = null;\n function getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === void 0 && cachedDataViewMemory0.buffer !== wasm.memory.buffer) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n }\n let cachedFloat32ArrayMemory0 = null;\n function getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n }\n function getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n }\n let cachedUint16ArrayMemory0 = null;\n function getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n }\n let cachedUint32ArrayMemory0 = null;\n function getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n }\n let cachedUint8ArrayMemory0 = null;\n function getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n }\n function handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n }\n function isLikeNone(x) {\n return x === void 0 || x === null;\n }\n function passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n }\n function passArrayF32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getFloat32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n }\n function passStringToWasm0(arg, malloc, realloc) {\n if (realloc === void 0) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr2 = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr2;\n }\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n const mem = getUint8ArrayMemory0();\n let offset = 0;\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 127) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n WASM_VECTOR_LEN = offset;\n return ptr;\n }\n function takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n }\n let cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n const MAX_SAFARI_DECODE_BYTES = 2146435072;\n let numBytesDecoded = 0;\n function decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n }\n const cachedTextEncoder = new TextEncoder();\n if (!("encodeInto" in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function(arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n }\n let WASM_VECTOR_LEN = 0;\n let wasm;\n function __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n }\n async function __wbg_load(module, imports) {\n if (typeof Response === "function" && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === "function") {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n if (validResponse && module.headers.get("Content-Type") !== "application/wasm") {\n console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n", e);\n } else {\n throw e;\n }\n }\n }\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n function expectedResponseType(type) {\n switch (type) {\n case "basic":\n case "cors":\n case "default":\n return true;\n }\n return false;\n }\n }\n async function __wbg_init(module_or_path) {\n if (wasm !== void 0) return wasm;\n if (module_or_path !== void 0) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({ module_or_path } = module_or_path);\n } else {\n console.warn("using deprecated parameters for the initialization function; pass a single object instead");\n }\n }\n if (module_or_path === void 0) {\n module_or_path = new URL("data:application/wasm;base64,AGFzbQEAAAAB6wZpYAN/f38Bf2ACf38AYAJ/fwF/YAF/AGABfwF/YAN/f38AYAR/f39/AGAFf39/f38AYAADf39/YAZ/f39/f38AYAd/f39/f39/AGAEf39/fwF/YAFvAX9gCH9/f39/f39/AGABfwN/f39gBX9/f39/AX9gAX0BfWAAAGACf28AYAF/AX5gA399fwBgBn9/f39/fwF/YAZ/f39/f30AYAABf2ACf30AYAV/f39+fwBgA29/fwFvYAN/f28AYAF/AW9gAAFvYAJvbwF/YAl/f39/f39/f38AYAF+AX9gAn9vA39/f2ACfX0BfWADb39/AGACb28Bb2ACb38Bb2ACf38Bb2AEf39/fQF/YAx/f39/f39/f39/f38AYAl/f39/f39/f38Bf2AFf39/fX8AYAd/f39/f39/AX9gBX9/f399AGAEf31/fwF/YBN/f39/f39/f39/f39/f39/f39/AX9gE39/f39/f39/f39/f39/f39/f38AYAN+fn8BfmAHf39/f399fQBgA39+fgBgBX9/fn9/AGAFf398f38AYAV/f31/fwBgBH9vf28Df39/YAN/b28Bf2AAAn9/YANvb28Bf2ADb29vAGADb29/AGABbwFvYAF8AW9gCn9/f39/f39/f38Bf2ALf39/f39/f39/f38Bf2AKf39/f39/f39/fwBgBn9/fX9/fwBgAn9/AX1gBH9/f34AYAN/f38BfmACf34AYAN/fX8Bf2AFf39/fn4AYAZ/fn9/f38AYAZ/f39/fX0AYAF/AX1gBH5+f38BfmAFf39/f38BfWAJf39/f39/fn5+AGAEf39/fwF9YAJ+fwBgA39/ewBgAn9+AX9gAn1/AX1gA319fQF9YAR/fn5/AGAGf39/fn9/AGAGf39/fH9/AGAGf39/fX9/AGATf318f39/f39/f39/f39/f39/fwN/f39gCX9/f39/f39/bwN/f39gCH9/f39vf39/A39/f2AHf29/fX9/bwN/f39gB39vb399f38Df39/YAd/f39/f39/A39/f2AGf29vf31/A39/f2AGf29/fX9vA39/f2AFf39/f28Df39/YAR/b29/A39/f2AEf39/fwN/f39gAn9/A39/f2ACf28Cf39gBH9+f38AYAR/fX9/AGAEf3x/fwBgAXwBfwKdFS0XLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfZDUxZTg5NDU4YjNmZGJmNgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF8xZTcwMTc5OGZkY2FhM2I0AAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzQ0ODEyNjc2OWJmN2MxODEAIxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsX2U0MjI3NWU2MDFlMTRlZWIAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyZfX3diZ19uZXdfd2l0aF9sZW5ndGhfNDFhMjIxOTFiOWJkZmQ2NgAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX25ld180ZjlmYWZiYjM5MDlhZjcyAB0XLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzhlZTJkMzRmYWNiODQ2NmUAORcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfZjNjOWRmNGYzOGYzZjc5OAAdFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzG19fd2JnX3B1c2hfNmJkYmM5OTBiZTVhYzM3YgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX2dldF9mOTY3MDJjNjI0NWU0ZWY5ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMqX193YmdfX193YmluZGdlbl9pc19mYWxzeV9jNmRkZmFlMWJiNTZkNWVmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzZiZTQyNzY4YzY5MGUzODAAOhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19nZXRfNDg0OGUzNTBiNDBhZmMxNgAlFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2dzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2NzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHF9fd2JnX0Vycm9yXzJlNTliMWIzN2E5YTM0YzMAJhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcytfX3diZ19fX3diaW5kZ2VuX2lzX29iamVjdF80MGM1YTgwNTcyZThmOWQzAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMnX193YmdfZ2V0X3dpdGhfcmVmX2tleV82NDEyY2YzMDk0NTk5Njk0ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMuX193YmdfX193YmluZGdlbl9pc191bmRlZmluZWRfYzBjY2E3MmI4MmI4NmY0ZAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJF9fd2JnX19fd2JpbmRnZW5faW5fNGJkN2E1N2U1NDMzNzM2NgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fbnVtYmVyX2dldF83NTc5YWFiMDJhOGE2MjBjABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMtX193YmdfX193YmluZGdlbl9ib29sZWFuX2dldF9hODZjMjE2NTc1YTc1YzMwAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzgxYjQxNzQzNTJlNmEwOTUAOxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx1fX3diZ19sZW5ndGhfMGMzMmNiODU0M2M4ZTRjOAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzH19fd2JnX3N1YmFycmF5XzBmOThkM2ZiNjM0NTA4YWQAGhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsXzNlMDVlYjk1NDU1NjUwNDYAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diZ19zZXRfaW5kZXhfMzM4YTY2ZTQwZmM0NWRlZQAjFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF9hNGNhOWU3ODM1OWI1ZjFmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfNTE3Y2QwZjE4MTFhYjg3MgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfNjRjMjg3YTI3Y2MyNGQyNwAbFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF82ZTgyMWVkZGU0OTdhNTMyAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMkX193YmdfZ2V0X3VuY2hlY2tlZF83ZDdiYWJlMzJlOWU2YTU0ACUXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193YmdfbmV3XzIyN2Q3YzA1NDE0ZWI4NjEAHRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxxfX3diZ19zdGFja18zYjBkOTc0YmJmMzFlNDRmABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMcX193YmdfZXJyb3JfYTZmYTIwMmI1OGFhMWNkMwABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzMF9fd2JnX19fd2JpbmRnZW5fanN2YWxfbG9vc2VfZXFfM2E3MmFlNzY0ZDQ2ZDk0NAAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fc3RyaW5nX2dldF85MTRkZjk3ZmNmYTc4OGYyABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMsX193YmdfaW5zdGFuY2VvZl9VaW50OEFycmF5XzRiOGRhNjgzZGViMjVkNzIADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcy1fX3diZ19pbnN0YW5jZW9mX0FycmF5QnVmZmVyX2ZmN2MxMzM3YTVlM2IzM2EADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfYTU2MDM3OGVhMTI0MGIxNAA8Fy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfODFmYzc3Njc5YWY4M2JjNgABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLl9fd2JnX19fd2JpbmRnZW5fZGVidWdfc3RyaW5nX2RkNWQyZDA3Y2U5ZTZjNTcAEhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx9fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlABEXLi9zcGFya193b3JrZXJfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDEAPRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMgAmA5cKlQoYGBQUAQoKAQkBCgoFCgkKBAQnBAQNJw0BAQYEBAoEBAUNBgQEBAQJCREFBgEJAQQEBAQJCQYBAgcoCQIJASgGBQ0BKQQGAQA+BQE/DQcGAgIGAgYGAQEGBgUEBAQEBgECBgUGBgYCBwkCBgEFBgEBAwMEBA8DBAEHAQcGAAYDBA0BAgEEAQEVAQYBBAIEBQYDBUABDwcDAgEBBwICBSoCCQEFBwQEBgQCBwUfAioGAQcFBgEHBhYGAQcrCQENAAEBAAIFAQIFAQUKLCsGBQcDBgYBDQEFAwEDBAUCBQMCAwMBAQFBAgYBLAcJARADEEIHBwUGAQMHBwECAgQWCQkBAQJDBw0DCUQAAQEBAQELBC0DAwMEAQIBAgECAwMCRQUGBEYBAQEBBwACCRkCBQIBAQcABQQJAQYBRwYGSAMDBQUDAQUDBgUFAwMtBgUKBQYBAwkABQUHAQIDAwMDLi4FCQkvLwkHBwIBAQAGBQEDAwMDAQMAAQIBAQYCAQZJAgsFAQAFAQYJCQQEBAQCBAEVAQICFQABAQUGAwUVBw0ABQUHAgEAAAIFBQAACQUWHwICCgICAQcHAgMHCgUFAwMBARkCBwUwAgUFBQMwBAABAQQBMQMDCgkFAwMEChBKAQUFBQUWBgEDBksHBQEDAwIBBAIBAQUCBgcBAgICAQEDAgQBAkwDTQEHBwcHAQIKBwlOAwNPAgUBAgcHBQsGAgQEBAEDAQIJBgYHAQMPARcHEAIEUAoCBAMGBAQBDwUfAgkDBAsZFAoCAgIQAwcxBAcCAzIAAQcWAQMCAgYBBAECDwEGCwEFAhcGAQICAgICAgYCEAEHAgcDBwUEBAICBAEBAQEBAQIBAgQEAQECAAICAgIBAgMBBwMCAxAEAQMFAgEBAwMAAgMCAQkBAQEFAgIHAwEDAwcCAAcDAwICAgECBwMpBQICAgICAQIFBQEBAQICAgICAlEBAgICAgICAgEDAgkCAQEHAwEDAwEBAQEBCQkCAwIBAQIBAQMBAQEFAQUCAgFSAQICUwMDAQEBBgADAwEDAgELCwUCAgEBBAMBCwMDAgEBAgMDAwEBAQICAAMyAAAHAgUDAwUCAxkFAxQUBwcJAwYFBQUFAwMDAwMDAwYYGAMFAgMABgMEBAQEAgUBBAQECQQDBwQFAwMDAwMCAgICBVQFBAEDEwEDAQEFBARVCVZXAQECBQcCBhAAAAAAAAAAAAAAAAAEAgIAAAAAIAQgAAQgBAQEAgACAgIAWAUTBQEAAAABAgABAgIGBQIBBAICAlkPWgcCBgIHAQFbXF0DEQMDXl8RC2ACNmFiNgEJAgIhIWMhAAICAgICAg4ODg4ODg4ODgQEBAQCAmQBAQEBAgICAgICAgICFQICAgICAgICAQICAQICDwczNTQCAQECAgIGCwIAAQIANzcDAgIiIgACBQMCAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAwECBQEBAQEBAQEBBAIAAgICAgIJAgICAgEBAQECAwEBAQICAgIEaAMDAgcCCQEXBRcSEgIBAgEBAQEBAQEBAgIBAgEBAQEBAQEDBAEDBQEFBQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAwMBAQEBAQEBAQEBEQERAgICAQIBAgECAgICAQEBAQEBAQEEAwEBAQEBAQEBAQMDCgEEAgEiBAQEBAQEEQQXBQQLAnAB4QThBG8AgAgFAwEAEwYPAn8BQYCAwAALfwFBgAgLB7AMPgZtZW1vcnkCABdfX3diZ19jaHVua2RlY29kZXJfZnJlZQCSBBZfX3diZ19jc3BsYXRhcnJheV9mcmVlALYFIV9fd2JnX2dldF9jc3BsYXRhcnJheV9tYXhTaERlZ3JlZQClCB9fX3diZ19nZXRfY3NwbGF0YXJyYXlfbnVtU3BsYXRzAKYIIV9fd2JnX2dldF9nc3BsYXRhcnJheV9tYXhTaERlZ3JlZQCnCB9fX3diZ19nZXRfZ3NwbGF0YXJyYXlfbnVtU3BsYXRzAKgIFl9fd2JnX2dzcGxhdGFycmF5X2ZyZWUAtwUhX193Ymdfc2V0X2NzcGxhdGFycmF5X21heFNoRGVncmVlAKwIH19fd2JnX3NldF9jc3BsYXRhcnJheV9udW1TcGxhdHMArQghX193Ymdfc2V0X2dzcGxhdGFycmF5X21heFNoRGVncmVlAK4IH19fd2JnX3NldF9nc3BsYXRhcnJheV9udW1TcGxhdHMArwgTYmhhdHRfbG9kX2V4dHNwbGF0cwCDCBZiaGF0dF9sb2RfcGFja2Vkc3BsYXRzAIQIE2NodW5rZGVjb2Rlcl9maW5pc2gAoggRY2h1bmtkZWNvZGVyX3B1c2gAqwgVY3NwbGF0YXJyYXlfYmhhdHRfbG9kAP4GE2NzcGxhdGFycmF5X2hhc19sb2QAxgcYY3NwbGF0YXJyYXlfaW5qZWN0X3JnYmE4AMIJD2NzcGxhdGFycmF5X2xlbgDVBxRjc3BsYXRhcnJheV90aW55X2xvZADrBhhjc3BsYXRhcnJheV90b19leHRzcGxhdHMAnAgcY3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzX2xvZACeCBtjc3BsYXRhcnJheV90b19wYWNrZWRzcGxhdHMAnQgfY3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzX2xvZACfCBVkZWNvZGVfdG9fY3NwbGF0YXJyYXkAhwgTZGVjb2RlX3RvX2V4dHNwbGF0cwD+BxVkZWNvZGVfdG9fZ3NwbGF0YXJyYXkAiwgWZGVjb2RlX3RvX3BhY2tlZHNwbGF0cwD0BxBkaXNwb3NlX2xvZF90cmVlAIwCGGV4dHNwbGF0c190b19nc3BsYXRhcnJheQCKCBJnZXRfbG9kX3RyZWVfbGV2ZWwAkwgVZ3NwbGF0YXJyYXlfYmhhdHRfbG9kAP8GGGdzcGxhdGFycmF5X2luamVjdF9yZ2JhOADDCQ9nc3BsYXRhcnJheV9sZW4A1QcUZ3NwbGF0YXJyYXlfdGlueV9sb2QA7AYYZ3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzAKAIHGdzcGxhdGFycmF5X3RvX2V4dHNwbGF0c19sb2QAoQgbZ3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzAJEIH2dzcGxhdGFycmF5X3RvX3BhY2tlZHNwbGF0c19sb2QAkggNaW5pdF9sb2RfdHJlZQCUCAxuZXdfbG9kX3RyZWUApAgTbmV3X3NoYXJlZF9sb2RfdHJlZQCjCBtwYWNrZWRzcGxhdHNfdG9fY3NwbGF0YXJyYXkAjAgbcGFja2Vkc3BsYXRzX3RvX2dzcGxhdGFycmF5AIkIDHNpbWRfZW5hYmxlZADACg1zb3J0MzJfc3BsYXRzANoIC3NvcnRfc3BsYXRzANsIEnRpbnlfbG9kX2V4dHNwbGF0cwD9BxV0aW55X2xvZF9wYWNrZWRzcGxhdHMA/AcSdHJhdmVyc2VfbG9kX3RyZWVzANwHEHVwZGF0ZV9sb2RfdHJlZXMA8gcKd2FzbV9zdGFydACFCBNnc3BsYXRhcnJheV9oYXNfbG9kAMYHEV9fd2JpbmRnZW5fbWFsbG9jANoHEl9fd2JpbmRnZW5fcmVhbGxvYwCGCA9fX3diaW5kZ2VuX2ZyZWUAlgcUX193YmluZGdlbl9leG5fc3RvcmUA2gkXX19leHRlcm5yZWZfdGFibGVfYWxsb2MA2gQVX193YmluZGdlbl9leHRlcm5yZWZzAQEZX19leHRlcm5yZWZfdGFibGVfZGVhbGxvYwCbBxBfX3diaW5kZ2VuX3N0YXJ0AL4KCbgJAQBBAQvgBIsFxAnpCPMD7QiNASwrvAnECboJ0gjoB5sF9QSnAqIE8gHVCMQBggeeBOwHrASyCvwC5wP2AagG0AeJBssF5gaWCMMI3gLRCZsIswa0AsQIhQXGCYkG3APTA8AG0AmSCpMKugW4BZsKkwGPBtkG3Qj0BMcH2AjDApoKuAiZCsYJ1gLEBLIGpwOABu0GyAjcBdUFyQjJCMkIrgevB7YHygiwB9MIuAevB8sIsQfMCK8HlAfICLkIkQfZCPEG1AjuBukHlwrhBpwKugixCLsI/ATSCaMG7wfzBNMFqAXSCc8J5APKAo0GwgGDA9sExQTVBH20CecI/QjyCIMJiAnwCIwJhgn0CP8I9wiLCYUJhAmCCfoIjQnxCIcJgAn1CIEJ/gjqCIUE/QnRA4oHkQHKBogIgATmCdYDiQeQAYEE+gnXA4cHhQGGBOwJ0gOIB5IB5gj2CIkJgwfGCc8JswqUCsUJwQqDB9cHkgWBCpIJnAnaBs4FrgKzB6cKsge6BdIGsQXwBfEF/AWGCsQJoArjBN0EhQPCCKoKwgjGCc8Jnwq5CcQJ/QXtB4kK7QexBK4G6wSNB4UKjQeDCv4FkQmMCo8J8Qe1CuAHjQrFCeAHwQqQCYcK6gaECoIKoQrJBagKigqOCYsK3AiICqUHlAnMCdAGswikB78K9wSZCcsJ0QbBCJgHmgnICdcGsgipB5kHlgnHCZkGtQinB4wGlwnJCZgGvwiVCcoJvga0CJcHmwnNCZsG2AfLBoYHmAnOCZoG9gfNBe4HxQa4CZEK6wHaBYAK5wX7CPgI8wjvCIoJ+QjuCPwItQb/Cb0HuAOHA+oJxAe1BfkG8wnMB4kB8AlI8QlSnAPoCcEH0we8BvUJuge2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gICAeEYNBCADKQJMIR0gAygCVCEMIANBgICAgHg2AlQgDEGAgICAeEYNBCADKQJYISAgAygCPCERIANBgICAgHg2AjwgEUGAgICAeEYNBCADKQJAISIgAygCMCEPIANBgICAgHg2AjAgD0GAgICAeEYNBCADKQI0ISMgAigCzAEiBSACKALAASIGRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIUIAZBACAGIBRNG2tBDGxqIgYgGTcCBCAGIAQ2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIBo3AgQgBCAHNgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAcNwIEIAQgCTYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgHjcCBCAEIAs2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIB03AgQgBCAINgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAgNwIEIAQgDDYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgIjcCBCAEIBE2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEg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SxsNDyAEEKICCyADQQA2AlggA0KAgICAwAA3AlAgA0EANgKMASADQoCAgIDAADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCINIAJBBXQiCWoiBSgCACIGIAAoAggiBEkEQCAAKAIEIgsgBkEkbGoiBv1dAgggBioCECIB/SACIAH9IAMgA/0JAkwiLv3nAf1oIi39HwL8BCEaIC39HwH8BCEbIC39HwD8BCEcIAcgAkEBaiIITQRAIAIhCgwDCyAHQQFrIQogFUEBcQRAIAchCAwDCyAJIA1qQSBqIQYDQCAGKAIAIgkgBE8NAiALIAlBJGxqIgn9XQIIIAkqAhAiAf0gAiAB/SADIC795wH9aCIt/R8A/AQgHFIgLf0fAfwEIBtSckUgLf0fAvwEIBpRcUUEQCAIQQFrIQoMBAsgBkEgaiEGIAcgCEEBaiIIRw0ACyAHIQgMAgsgBiAEQdTAxwAQjAcACyAJIARB1MDHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayILrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiI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ADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCIWIAJBBXQiCWoiBigCACIFIAAoAggiBEkEQCAAKAIEIgogBUEYbGr9AAIAICz9DQABAgMEBQYHCAkKCwgJCgsgA/0JAkwiLf3nAf1oIiz9HwL8BCEaICz9HwH8BCEbICz9HwD8BCEcIAcgAkEBaiIITQRAIAIhCwwDCyAHQQFrIQsgDkEBcQRAIAchCAwDCyAJIBZqQSBqIQUDQCAFKAIAIgkgBE8NAiAKIAlBGGxq/QACACAs/Q0AAQIDBAUGBwgJCgsICQoLIC395wH9aCIs/R8A/AQgHFIgLP0fAfwEIBtSckUgLP0fAvwEIBpRcUUEQCAIQQFrIQsMBAsgBUEgaiEFIAcgCEEBaiIIRw0ACyAHIQgMAgsgBSAEQdy7xwAQjAcACyAJIARB3LvHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayIMrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhCADKQPwASIbQn+FfiIc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IANrIhUNAQwCCwtBqJDIACkDACJ6Qv8Bg0IEUQ0AIHpCIIinIhIgeqciA0H/AXFBBEYNARogekIQiKchFSB6QgiIpyEIQQAhCwwCCyAELwHIDCAELQDKDEEQdHILIRJBASEJIAEgEkEBdkEHcToAKyABIBJBAXEiA0U6ACggASASQQR2QQFxOgApAkACQAJAAkACQAJAAkAgAw0AIARBADoA2hggBEEAOwHYGCABKALoAyELQQMhFSAEQdgYaiEIAkADQAJAIHlQBEBCACF5DAELIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQAgAyAIaiEIIBUgA2siFQ0BDAILC0EAIQtBqJDIACkDACJ6pyIDQf8BcUEERg0AIHpCIIinIRIgekIQiKchFSB6QgiIpyEIDAgLIAECfwJAAkACQAJ/AkACQCAELwHYGCAELQDaGEEQdHIiB0Gdg6gBRgRAIARBADsByAwgASgC6AMhC0ECIRUgBEHIDGohCANAIHlQBEBCACF5DAMLIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQIgAyAIaiEIIBUgA2siFQ0ACwwCCyAHQQh2IQJBESELDA4LQaiQyAApAwAiekL/AYNCBFENACB6QhCIpyEVIHqnIgNB/wFxQQRHDQIgFQwBCyAELwHIDAshESAEQQA7AcgMIAEoAugDIQtBAiEVIARByAxqIQgDQCB5UA0CIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4g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ADcD0EggA0EANgLYSCADQQA6AMJIIANB4MgAaiIBIANBsMUAahCcBCADLQDgSEEoRwRAIAUgARD8AyADKAIYIgFBBkcNBAsgA0EQNgLYSCADQdDRAGoiASADQbDFAGpBsAP8CgAAIANBGGogARCcBCADLQAYIgZBKEcEQCADQarVAGogAy0AGzoAACADIAMvABk7AahVIAMoAhwhBSADKQIgIRQgARCdAQwZCwJAAkAgAygCHCIBLQC+AiICQQN0KQOwkkkgATUCtAIgATEAvwJ+IhR+IhVC8P////8AVg0AIBVCB3xCA4inQQFqrUGAASABKAK4AiIBIAFBgAFPG61+IhVCIIinDQAgFaciAUH/AXEiBEEARyABQYB+cUGAAmoiBiABSXENACAGIAEgBBsiBkGBgAhJDQELQYCACCEGC0EBIQVB/////wchBAJAIAJBA3QpA+iSSSAUfiIUQvD/////AFYNACAUQgd8QgOIp0EBaiIBQf////8DSw0AIAFBAnQiAkFAcUFAayEIIAFBD3EiAUEAIAIgCEsbDQBBgIAIIAggAiABGyIBIAFBgIAITRshBAsgBgRAIAYQcSIFRQ0WCyADQRhqIANB0NEAakGoA/wKAAAgA0H1A2pCADcAACADQbQEakEANgIAIANBAToA3QQgA0EANgLUBCADQQA2AsgDIANCADcDwAMgA0IANwPwAyADQYCAgIB4NgKgBCADQgE3A5gEIANCADcDkAQgAyAFNgKMBCADIAY2AogEIANCfzcDgAQgA/0MAAAAAAAAAAAAAAAAAAAAAP0LAqQEIAMgBDYCuAQgAyADKAL4VDYC2AQgA0ECNgLcAyADQQA6ANwEIANBADYC0AQgA0KAgICAEDcDyAQgA0EANgLABAJAIAMoAiBBAkcEQEEnIQYgAy0A3gJBA3QpA6CTSSADNQLUAiIUIAMxAN8Cfn5C8f////8AVA0BDBkLQayYxwAQ3QkACyADKALYAiEFIANBEGogA0EYaiIBEIoFIAMtABBBA3QpA9iTSSADMQARIBR+fiIUQvD/////AFYNFyAFrSAUQgd8QgOIfiIVQiCIpyAVp0EASHINFyADQZDVAGogARCMASADLQCQVSIGQShHBEAgA0Gq1QBqIAMtAJNVOgAAIAMgAy8AkVU7AahVIAMoApRVIQUgAykCmFUhFAwY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nNPBABCMBwALIAMgCEGs08EAEIwHAAsgCCAHQbzTwQAQjAcACyAIIAdBzNPBABCMBwALIAggB0Hc08EAEIwHAAsgBiABQezSwQAQjAcACyAHIAFB3NLBABCMBwALIAQgAUHM0sEAEIwHAAsgACAAKAKYAiALIAAoAuwBIAAoAvABEKAFAkACQAJAIAAoAuQBIgEgCyAQbCICTwRAIABBADYC5AEgASACayEDIAVFDQEgASACRg0DIANFDQIgACgC4AEiASABIAJqIAP8CgAADAILDBALIAEgAkYNAQsgACADNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0FIABBADYCmAIgAEEFOgCcAgwFCyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0HC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAgD2UQwAAIMGSEIkEOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQngIgACgC5AEiAiAFSQ0WIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkGc0cEAEIwHAAsgASACQazRwQAQjAcACyACIARBvNHBABCMBwALIAIgBEHM0cEAEIwHAAsgAiAEQdzRwQAQjAcACyACIARB7NHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0EIABBADYCmAIgAEEEOgCcAgwECyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0GC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQpAIgACgC5AEiAiAFSQ0VIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkG80MEAEIwHAAsgASACQczQwQAQjAcACyACIARB3NDBABCMBwALIAIgBEHs0MEAEIwHAAsgAiAEQfzQwQAQjAcACyACIARBjNHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0DIABBADYCmAIgAEEDOgCcAgwDCyAAKALkASICIAAoApACIAAoApgCayILSQRAIAIiC0GAgARJDQULQYCABCAL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QCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAgD2UQwAAIMGSEIkEOAIAIAFBAmoiAiAAKALcASIFTw0GIAIgACgC6AEiBU8NByAAKALkASADakEIaiAAKALYASABakECai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgA0EMaiEDIAYgAUEDaiIBRw0ACyAAKALoASEBCyAAIAAoApACIAQgACgC5AEgARDJAyAAKALcASICIAZJDRUgAEEANgLcASACIAZrIQEgCUUNBiACIAZGDQggAUUNByAAKALYASICIAIgBmogAfwKAAAMBwsgASACQZzRwQAQjAcACyABIAJBrNHBABCMBwALIAIgBUG80cEAEIwHAAsgAiAFQczRwQAQjAcACyACIAVB3NHBABCMBwALIAIgBUHs0cEAEIwHAAsgAiAGRg0BCyAAIAE2AtwBCyAAIAAoApACIARqIgI2ApACIAIgACgCiAJHDQUgAEEANgKQAiAAQQQ6AJQCDAULIAAoAtwBIgFBA24iAiAAKAKIAiAAKAKQAmsiCUkEQCACIQkgAUGAgAxJDQQLQYCABCAJIAlBgIAETxsiBEEDbCIGIAAoAugBIgFLBEAgBiABayICIAAoAuABIAFrSwRAIBIgASACQQRBBBCkBSAAKALoASEBCyAAKALkASIFIAFBAnRqIQMgAkECTwR/IAJBAnRBBGsiBwRAIANBACAH/AsACyABIAJqIgJBAWshASAFIAJBAnRqQQRrBSADC0EANgIAIAAgAUEBaiIBNgLoAQsCQAJAAkACQAJAAkACQAJAAkAgCQRAQQAhA0EAIQEDQCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAFBAmoiAiAAKALcASIFTw0GIAIgACgC6AEiBU8NByAAKALkASADakEIaiAAKALYASABakECai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgA0EMaiEDIAYgAUEDaiIBRw0ACyAAKALoASEBCyAAIAAoApACIAQgACgC5AEgARCWBCAAKALcASICIAZJDRQgAEEANgLcASACIAZrIQEgCUUNBiACIAZGDQggAUUNByAAKALYASICIAIgBmogAfwKAAAMBwsgASACQbzQwQAQjAcACyABIAJBzNDBABCMBwALIAIgBUHc0MEAEIwHAAsgAiAFQezQwQAQjAcACyACIAVB/NDBABCMBwALIAIgBUGM0cEAEIwHAAsgAiAGRg0BCyAAIAE2AtwBCyAAIAAoApACIARqIgI2ApACIAIgACgCiAJHDQQgAEEANgKQAiAAQQM6AJQCDAQLIAAoAtwBIgIgACgCiAIgACgCkAJrIgZJBEAgAiIGQYCABEkNAwtBgIAEIAYgBkGAgARPGyIEIAAoAugBIgFLBEAgBCABayICIAAoAuABIAFrSwRAIBIgASACQQRBBBCkBSAAKALoASEBCyAAKALkASIJIAFBAnRqIQMgAkECTwR/IAJBAnRBBGsiBQRAIANBACAF/AsACyABIAJqIgJBAWshASAJIAJBAnRqQQRrBSADC0EANgIAIAAgAUEBajYC6AELAkACQAJAAkACQAJAAkACQCAGBEBDAACAP0MAAABAIAAsAJYCQQBOGyEZQQAhA0EAIQEDQCABIAAoAtwBIgJPDQMgASAAKALoASICTw0EIAAoAuQBIANqIBkgACgC2AEgAWotAACzQwAAf0OVlDgCACADQQRqIQMgBCABQQFqIgFHDQALIAAoAuQBIQcgACgC6AEhCSAAIAAoApACIAQQzANBACECIAQhBSAJIQNBACEBA0AgACgCZCIKIAFBA2pNDQUgAwRAIAAoAmAgAmpBA2pB/wFDAAB/Q0MAAAAAIAEgB2oqAgBDAAAAQEMAAIA/IAAtAJwBQQFxG5VDAAB/Q5QiGSAZQwAAAABdGyIZIBlDAAB/Q14bELkHIhn8AUEAIBlDAAAAAGAbIBlDAAB/Q14bOgAAIAJBEGohAiADQQFrIQMgAUEEaiEBIAVBAWsiBQ0BDAMLCyAJIAlBqNvAABCMBwALIAAgACgCkAIgBBDMAwsgAEEBOgC4ASAAKALcASICIARJDQMgAEEANgLcASACIARrIQEgBkUNBCACIARGDQYgAUUNBSAAKALYASICIAIgBGogAfwKAAAMBQsgASACQZzQwQAQjAcACyABIAJBrNDBABCMBwALIAEgAUEEaiAKQbjbwAAQ6gcAC0EAIAQgAkGEpMcAEOoHAAsgAiAERg0BCyAAIAE2AtwBCyAAIAAoApACIARqIgI2ApACIAIgACgCiAJHDQMgAEEANgKQAiAAQQI6AJQCDAMLIAZFDQBBASAALQCVAnSzIRlBACEJQQAhAUEAIQJBACEDAkACQAJAAkADQCABQQNqIgQgACgC3AEiB0sEQCABIAQgB0GM0MEAEOoHAAsgAyAAKALoASIHTw0BIAAoAuQBIAJqIAAoAtgBIAFqIgdBAmotAAAiCkEQdCAHLQAAciAHQQFqLQAAQQh0ciIHQYCAgHhyIAcgCsBBAEgbsiAZlTgCACABQQZqIgcgACgC3AEiCksNAiADQQFqIgQgACgC6AEiCk8NAyAAKALkASACakEEaiAAKALYASABaiIEQQVqLQAAIgpBEHQgBEEDai0AAHIgBEEEai0AAEEIdHIiBEGAgIB4ciAEIArAQQBIG7IgGZU4AgAgAUEJaiIEIAAoAtwBIgpLDQQgA0ECaiIHIAAoAugBIgpJBEAgACgC5AEgAmpBCGogACgC2AEgAWoiAUEIai0AACIHQRB0IAFBBmotAAByIAFBB2otAABBCHRyIgFBgICAeHIgASAHwEEASBuyIBmVOAIAIAJBDGohAiADQQNqIQMgBCEBIAlBAWoiCSAFSQ0BDAYLCyAHIApB3M/BABCMBwALIAMgB0G8z8EAEIwHAAsgBCAHIApB/M/BABDqBwALIAQgCkHMz8EAEIwHAAsgByAEIApB7M/BABDqBwALIAAgACgCkAIgBSAAKALkASAAKALoARCjAgJAAkACQCAAKALcASIBIAUgDGwiAk8EQCAAQQA2AtwBIAEgAmshAyAGRQ0BIAEgAkYNAyADRQ0CIAAoAtgBIgEgASACaiAD/AoAAAwCCwwKCyABIAJGDQELIAAgAzYC3AELIAAgACgCkAIgBWoiAjYCkAIgAiAAKAKIAkcNASAAQQA2ApACIABBAToAlAIMAQsLIAgtAA8hAQsgDSAUaiENAkACQAJAAkACQCABQf8BcQ4DAQIDAAsgCEEBNgJUIAhBmPfHADYCUCAIQgE3AlwgCCAIQQ9qrUKAgICAoASENwNAIAggCEFAazYCWCAIQRBqIgAgCEHQAGoQsQYgABCOByEBDAYLIABBAToAoVQgDUEIaiANIAAoAsQBIgIgDWsiAUEAIAEgAk0bQQdLGyENDAILIBEgFHJFDQELIA0gACgCxAEiA0kNAQsLIA1FDQAgDSAAKALEASICTQRAQQAhASAAQQA2AsQBIAIgDUYNAiACIA1rIgIEQCAAKALAASIDIAMgDWogAvwKAAALIAAgAjYCxAEMAgtBACANIAJBhKTHABDqBwALQQAhAQsgCEHwAGokACABDwtBACABIANBhKTHABDqBwALQQAgAiABQYSkxwAQ6gcAC0EAIAYgAkGEpMcAEOoHAAvVVgMffwR+AXsjAEGgBWsiDiQAAkACQCAAAn8CQCABLQCjByIKQQdGBEAgAEIANwIEDAELIAUgBk8EQCABKAKIByEIIAFBADYCiAcgBiELAkAgCEEBcUUNACAFIAtrIhUgASgCkAciDCAMIBVLGyIIRSAIRXJFBEAgBCALaiABLQCMByAI/AsACyAMIBVNBEAgBiAMaiELDAELIAFBATYCiAcgACAVNgIIIABBADYCBCABIAwgFWs2ApAHQQAMAwsgASgClAchCCABQQA2ApQHAkACQAJAIAhBAXEEQCAFIAtrIhkgASgCnAciGyAZIBtJGyIRBEBBACEMAkAgEUEBayIJIAEoApgHIhggBSALIBhrIgggBSAISxtqIAtrIgggGUEAIAUgGU8bIhAgCCAQSRsiCCAIIAlLGyIVQQFqIg9BEUkEQEEBIQkMAQtBASEJIBhBD00NACAPQQ9xIghBECAIGyIJIBVBf3NqIQggBCALaiENQQAgGGshFSAPIAlrIgxBAWohCQNAIA0gDSAVav0AAAD9CwAAIA1BEGohDSAIQRBqIggNAAsLIBBBAWohFSARQQFqIQgDQCALIAxqIg8gGGsiDCAFTw0EIAkgFUYNAyAEIA9qIAQgDGotAAA6AAAgCSEMIAggCUEBaiIJRw0ACwsgGSAbSQ0DIAsgG2ohCwsgAUHsBmohIiABQeAGaiEjIAVBEGshHSABQaAGaiEgIAFBgARqIR4gDkE+aiEkIA5BkAVqISUgAyENAkACQANAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCiIVQf8BcSImQQFrDgcCCAcGAAUEAQsgAS0AogciDEUgAS8BoAciCUVyIAUgC01yRQRAIAEpA9AGIScDQAJAIAQgC2ogJzwAACALQQFqIQsgJ0IIiCEnIAxBCGsiDEH/AXFFIAlBAWsiCUH//wNxRXINACAFIAtLDQELCyABIAw6AKIHIAEgJzcD0AYgASAJOwGgBwsgDEH/AXFFBEAgAUIANwPQBgsgBSALSQ0CIAUgC2siCiANIAlB//8DcSIMIAwgDUsbIgggCCAKSxsiCARAIAQgC2ogAiAI/AoAAAsgASAJIAhrOwGgByAIIAtqIQsgAiAIaiECIA0gCGshDSAIIAxHDQogAUEGQQEgAS0ApAcbOgCjBwwKCyANQQhPBEAgASABKQPQBiACKQAAIAEtAKIHIghBP3GthoQiJzcD0AZBPyAIa0EDdiIJIA1NBEAgASAIQThyIgo6AKIHIA0gCWshDQwKCwwVCyABLQCiByEMIA5CADcDIEE/IAxrQQN2IgggDSAIIA1JGyIJBEAgDkEgaiACIAn8CgAACyABIAlBA3QgDGoiCjoAogcgASABKQPQBiAOKQMgIAythkIAIAxBwABJG4QiJzcD0AYgDSAJayENIApB/wFxQRBPDQhBACEVDAoLIAEpA9AGIScgAS0AogchCQNAAkAgDUEITwRAIAEgAikAACAJrYYgJ4QiJzcD0AZBPyAJQf8BcWtBA3YiCCANTQRAIAEgCUE4ciIMOgCiByACIAhqIQIgDSAIayENDAILIAggDSANQZiNxAAQ6gcACyAOQgA3AyBBPyAJQf8BcSIKa0EDdiIIIA0gCCANSRsiCARAIA5BIGogAiAI/AoAAAsgASAIQQN0IAlqIgw6AKIHIAEgDikDICAJrYZCACAKQcAASRsgJ4QiJzcD0AYgAiAIaiECIA0gCGshDSAMQf8BcUEKSQ0KCyABICenIg9BAXEiCDoApAcCQCAAAn8CQAJAAkACQAJAIA9BAXZBA3FBAWsOAwIBBAALIAxBBWpBB3EiCUEjaiIIIAxB/wFxSw0PQQMgJ0J/IAlBE2qtIiqGQn+FgyAJQQNqrYgiKSAnQn8gCK0iKIZCf4WDICqIhUL//wODQv//A1INBBogASApPQGgByABQQU6AKMHIAEgDCAIazoAogcgASAnICiINwPQBgwPCyAMQf8BcUERSQ0OIAEgD0ENdkEPcUEEajYCyAYgASAPQQh2QR9xIglBAWo2AsQGIAEgD0EDdkEfcSIIQYECajYCwAZBBCAIQR1LDQMaIAlBHU0NAUEFDAMLIAEgDEEDazoAogcgASAnQgOINwPQBiAnQvgHg1ANAyABLQClB0UEQCABQQE6AKUHIAEoAvgGIQpBACIIRQRAIApB7J3EAEGAEPwKAAALIAhFBEAgCkGAEGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAIGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAMGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAQGtB7J3EAEGAEPwKAAALIAhFBEAgCkGA0ABqQeydxABBgBD8CgAACyAIRQRAIApBgOAAakHsncQAQYAQ/AoAAAsgCEUEQCAKQYDwAGpB7J3EAEGAEPwKAAALIAEoAvwGIQpBAEUEQCAKQeycxABBgAH8CgAACyAIRQRAIApBgAFqQeycxABBgAH8CgAACyAIRQRAIApBgAJqQeycxABBgAH8CgAACyAIRQRAIApBgANqQeycxABBgAH8CgAACyAIRQRAIApBgARqQeycxABBgAH8CgAACyAIRQRAIApBgAVqQeycxABBgAH8CgAACyAIRQRAIApBgAZqQeycxABBgAH8CgAACyAIRQRAIApBgAdqQeycxABBgAH8CgAACyAIRQRAIApBgAhqQeycxABBgAH8CgAACyAIRQRAIApBgAlqQeycxABBgAH8CgAACyAIRQRAIApBgApqQeycxABBgAH8CgAACyAIRQRAIApBgAtqQeycxABBgAH8CgAACyAIRQRAIApBgAxqQeycxABBgAH8CgAACyAIRQRAIApBgA1qQeycxABBgAH8CgAACyAIRQRAIApBgA5qQeycxABBgAH8CgAACyAIRQRAIApBgA9qQeycxABBgAH8CgAACyABQYCA/AM2AoAHIAFBBzoAhAcLIAFBBDoAowcMDQsgAUEAOgClByABQQI6AKMHIAEgDEERazoAogcgASAnQhGINwPQBgwMC0ECCzoAAUEBDBQLIAEgDEEKayIJOgCiByABICdCCogiJzcD0AYgCA0HIAlB/wFxQQpJDQADQCAnQv8Hg0ICUg0BIAEgCUEKayIPOgCi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QbyNyAAQ6wcAC545Azd/A30BfiMAQYABayIBJAACQAJAAkAgACgCaCICQf8fTQRAIAFBADYCQCABQQE2AjQgAUHwssEANgIwIAFCBDcCOCABQTBqEJIHIQMMAQsgASAAKAJkIgMtAAAiBDoABiABIAMtAAEiBjoAByAEQQEgBhsEQCABQQI2AjQgAUHAssEANgIwIAFCAjcCPCABQoCAgIDwBCI7IAFBB2qthDcDECABIDsgAUEGaq2ENwMIIAEgAUEIajYCOCABQTBqEJIHIQMMAQsgA0EEaigAACEqIAMoABAhDSABIAMvABQiBDYCHCAEQQNPBEAgAUEBNgI0IAFBmLLBADYCMCABQgE3AjwgASABQRxqrUKAgICAEIQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyABIANBJGooAAAiBkGAgID+eyAGQf////8HcRs2AiAgASADKAAoIgZBgICA/gMgBkH/////B3EbNgIkIARBKGxBrKrBAGohECACQYAga0EKdkEBaiEUQQAhBEEAIQIgKkEKdEGAIGoiKyEhAkADQAJAIAQgKkcEQCAUIARBAWoiBEcNASABQQA2AkAgAUEBNgI0IAFB1LHBADYCMCABQgQ3AjggAUEwahCSByEDDAQLIAFBADoAOCABIAI2AjQgASANNgIwIAAgAUEwahDpASAqRQ0CQYAgISFBASEuAkADQCAhIgRBgAhqIiEgACgCaCIDSwRAIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgACgCZCIGIARqIgIoABgiEUUEQCAQKAIkIRELIAMgBEEkckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEockkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEqckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAIoAAQhB0EAIQQgECgCCCAQKAIAIBAoAgRqaiACLwAoIiJBA00EfyAiQQJ0KAKkq0EFIAQLIBAoAhBsakEEaiI1rSAHrX4iO0IgiFBFBEAgAUEANgJAIAFBATYCNCABQdCrwQA2AjAgAUIE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IGooAAAgA0GUIGovAABsaiADQaQgaigAAEECdGoiIU0gA0GACGohAw0ACyABQQA2AkAgAUEBNgI0IAFB9LHBADYCMCABQgQ3AjggAUEwahCSByEDDAELQQAhAwsgAUGAAWokACADDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALnjkDN38DfQF+IwBBgAFrIgEkAAJAAkACQCAAKAJIIgJB/x9NBEAgAUEANgJAIAFBATYCNCABQfCywQA2AjAgAUIENwI4IAFBMGoQkgchAwwBCyABIAAoAkQiAy0AACIEOgAGIAEgAy0AASIGOgAHIARBASAGGwRAIAFBAjYCNCABQcCywQA2AjAgAUICNwI8IAFCgICAgPAEIjsgAUEHaq2ENwMQIAEgOyABQQZqrYQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyADQQRqKAAAISogAygAECENIAEgAy8AFCIENgIcIARBA08EQCABQQE2AjQgAUGYssEANgIwIAFCATcCPCABIAFBHGqtQoCAgIAQhDcDCCABIAFBCGo2AjggAUEwahCSByEDDAELIAEgA0EkaigAACIGQYCAgP57IAZB/////wdxGzYCICABIAMoACgiBkGAgID+AyAGQf////8HcRs2AiQgBEEobEGsqsEAaiEQIAJBgCBrQQp2QQFqIRRBACEEQQAhAiAqQQp0QYAgaiIrISECQANAAkAgBCAqRwRAIBQgBEEBaiIERw0BIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBAsgAUEAOgA4IAEgAjYCNCABIA02AjAgACABQTBqEIQCICpFDQJBgCAhIUEBIS4CQANAICEiBEGACGoiISAAKAJIIgNLBEAgAUEANgJAIAFBATYCNCABQdSxwQA2AjAgAUIENwI4IAFBMGoQkgchAwwGCyAAKAJEIgYgBGoiAigAGCIRRQRAIBAoAiQhEQsgAyAEQSRySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQShySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQSpySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIw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AtwCNwM4IAEoAtgCIgJFBEAgAUE4ahCPByECDAMLIAFBLGogAygCADYCACABIAEpAzg3AiQgASABKQPoAiIpNwMwIAEgAjYCIAJAAkAgKacoAkAiEARAIAFB/ABqIQQgAUHwAGohDCABQewCaiEiIAFB4AJqIQ0DQCABQQA6ALgCIAFBADYCsAIgAUHYAmogAUEgaiAdIAFBsAJqEKgBIAFB0ABqIgIgDUEIaigCADYCACABIA0pAwA3A0gCQAJAAkACQAJAAkACQAJAAkAgASkD2AIiKUIDUgRAIAQgIkG0AfwKAAAgDEEIaiACKAIANgIAIAwgASkDSDcDACABICk3A2gCQCABKAJwIAFB6ABqIClCAlEbIgIoAiwiB0EATgRAIAIoAighAgJAIAdFBEBBASELDAELIAcQcSILRQ0ICyAHBEAgCyACIAf8CgAACyABQegAahD8ASAHQQlJDQhB/NXBACAHIAtqQQlrQQkQ2wcNCSAHIQICQANAIAFBCGpBLyALIAIQqQNBASEdQQAhIiABKAIIQQFxRQRADAILAkAgByABKAIMIgJLBEAgAiALai0AAEEvRg0BCyACIAdNDQEMAgsLIAEgAjYCqAQgASALNgKkBCABIAFBpARqrUKAgICAIIQ3A7ACIAFCATcC5AIgAUECNgLcAiABQazWwQA2AtgCIAEgAUGwAmo2AuACIAFB6ABqIAFB2AJqEOwDIAEoAmgiAkGAgICAeEYNACABKQJsIilCIIinIQUgKachHSACISILIAFB2AJqIAFBIGogCyAHEMkEIAFB4ABqIAFB6AJqKAIANgIAIAEgASkD4AI3A1gCQCABKQPYAiIpQgNRBEAgAUHYAGoQjwchAgwBCyABQfwAaiABQewCakG0AfwKAAAgAUH4AGogAUHgAGooAgA2AgAgASApNwNoIAEgASkDWDcDcCABQQA2ArgCIAFCgICAgBA3ArACIAFB2AJqIAFB6ABqIAFBsAJqEJkBIAEoAtgCQQFGBEAgASkC3AIQzwchAiABKAKwAiIABEAgASgCtAIgAEEBEKIHCyABQegAahD8AQwBCyABKAKwAiEnIAEoArQCISggASgCuAIhAiABQegAahD8ASABQQA2ArgCIAEgAjYCtAIgASAoNgKwAiABQdgCaiABQbACahBGIAEoAtwCIQICQCABKALY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AEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALozADJ38EfQF+IwBBwAxrIgMkAAJAAkACQAJAAkACQAJAIAAoAtwEIgFBgYCAgHhGBEACQCAAKALwBCIKQQRJDQACQCAAKALsBCIELwAAIAQtAAJBEHRyQfDY5QNGBEAgCkELSQ0CIApBCmshAkEAIQECQANAIAEgBGpB+MPBAEELENsHRQ0BIAIgAUEBaiIBRw0ACyAKQf//A00NAyADQQA2AugHIANBATYC3AcgA0Hww8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMCQsgASAKSw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIOQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCkEBcUUEQCADKAKwASEIIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAOIAggBCACEJoBIAMoAtgHIQUgAygCtAwiDUGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiEHIAMoAsQKIQsgA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQkgA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIAk2AtwHIAMgCDYC2AcgAEH0BGogDhClBAwDCyADQZgGaiICIANBCGpBwAH8CgAAIANB2AdqIAIQaiADKALcByECIAMoAtgHIgVBgICAgHhGBEAgAkUNBAwKCyADQbADaiADQeAHakHkAvwKAAAgAygCxAohCyADKALICiEHIANBADoA4AcgAyAHNgLcByADIAs2AtgHIABB9ARqIANB2AdqEKUEQYCAgIB4IQ0MAgsgA0EIahCgAyAFIgINCAwCCyADQQA2AugHIANBATYC3AcgA0Goo8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMBwsgACgC8AQiBCABQQtqIghJDQIgAEEANgLwBCAEIAhHBEAgBCAIayIEBEAgACgC7AQiASABIAhqIAT8CgAACyAAIAQ2AvAECwJAAkACQCAAKALcBEGAgICAeGsOAgECAAsgABC+AgwBCyAAEL0BCyAAIAI2AgQgACAFNgIAIABBCGogA0GwA2pB5AL8CgAAIAAgBzYC8AIgACALNgLsAiAAQfQCaiADQaACakGQAfwKAAAgACAJNgKEBCAAQYgEaiADQcgBakHUAPwKAAAgACAsNwPgBCAAIA02AtwEIApBAXENACADQQhqEKADC0EAIQIgACgC3AQiAUGBgICAeEYNBQsgAUGAgICAeEcNASAAKALoAiICIAAoAghPBEAgACgC8AQhAUEAIQIgAEEANgLwBCABDQQMBQsgAEH0BGohDgJAA0ACQCAAKAIEIAJBBnRqIggoAiQiDwRAIA8gACgC8AQiByAMayICTQ0BDAYLQZTGwQAQgQgACyAILQA8IQVBgIAEIQEgAiAPbiIKIAgoAiAiBCAIKAI4IhBrIgJBACACIARNGyICIAIgCksbIgJBgIAETQRAIAIiAUUNBQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAFQQFrDgMCAQwACyAAIAEgDCAPIAAoAuwEIAcQkQMMCwsgACgChAFBgICAgHhHDQEMCgsgACABIBAgDCAPIAAoAuwEIAcQ5wEiAg0QIAFBA2wiCyAAKAIgIgJLDQEgASAAKAIsIgJLDQIgCyAAKAI4IgJLDQMgCyAAKAJEIgJLDQQgAUECdCIIIAAoAlAiAksNBSAAKAIcIQUgACgCKCEKIAAoAjQhBCAAKAJAIQIgA0IENwKgCCADQgI3ApgIIANCBDcCkAggA0IENwKICCADQgQ3AoAIIAMgCDYC/AcgAyALNgL0ByADIAI2AvAHIAMgCzYC7AcgAyAENgLoByADIAE2AuQHIAMgCjYC4AcgAyALNgLcByADIAU2AtgHIAMgACgCTDYC+AcgDiAQIAEgA0HYB2oQlwEMCQsgACABIAwgDyAAKALsBCAHEOgBIAFBCWwiByAAKAJcIgJLDQUgACgCWCELAkAgACgC8AIiCkECTwRAIAFBD2wiBSAAKAJoIgJNBEAgACgCZCEEIApBAkcNAkEAIQ1BBCEIDAoLQQAgBSACQYTHwQAQ6gcACyAOIBAgASALIAcQzgMMCQsgAUEVbCINIAAoAnQiAksNBiAAKAJwIQgMBwtBACALIAJB5MbBABDqBwALQQAgASACQdTGwQAQ6gcAC0EAIAsgAkHExsEAEOoHAAtBACALIAJBtMbBABDqBwALQQAgCCACQaTGwQAQ6gcAC0EAIAcgAkGUx8EAEOoHAAtBACANIAJB9MbBABDqBwALIA4gECABIAsgBxDOAyAOIBAgASAEIAUQ4gMgDUUNACAOIBAgASAIIA0Q4wMLIAAoAugCIgQgACgCCCICTw0BIAAoAgQgBEEGdGoiCiAKKAI4IAFqIgQ2AjggACgC6AIhAiAKKAIgIARGBEAgACACQQFqIgI2AugCCyABIA9sIAxqIQwgAiAAKAIISQ0ACyAAKALwBCEHDAMLIAQgAkGkx8EAEIwHAAtBACAIIARBhKTHABDqBwALAkACQAJAAkACQAJAAkACQAJAIAAoAvwDIgEEQCAAKALwBCEFIABB9ARqIRsgAEFAayEcIAAoAoAEIQIDQEGAgAQhBwJAAkACQAJAAkAgBSARayIIIAFuIgogACgC+AMiBCACayIBQQAgASAETRsiASABIApLGyIBQYCABEsNACABIgcNACAFIBFJDQFBACECIABBADYC8AQCQCARBEAgBSARRg0UIAhFDQEgACgC7AQiASABIBFqIAj8CgAAIAAgCDYC8AQMFAsgBSARRg0TCyAAIAg2AvAEDBILIAAgBxDsAUEBIQFBACEIQQAhC0EAIQUCQANAIAEhCiAAKAKoAyAALQCsAyAAKALsBCAAKALwBCAAKAL8AyAFbCARaiIGELAEISggBUEDbCIBIAAoApAEIglPDRAgAUECdCINIAAoAowEaiAoOAIAIAAoArADIAAtALQDIAAoAuwEIAAoAvAEIAYQsAQhKCABQQFqIgQgACgCkAQiCU8EQCAEIQEMEQsgBEECdCIPIAAoAowEaiAoOAIAIAAoArgDIAAtALwDIAAoAuwEIAAoAvAEIAYQsAQhKCABQQJqIgIgACgCkAQiCU8EQCACIQEMEQsgAkECdCIQIAAoAowEaiAoOAIAIAAoAvADIAAtAPQDIAAoAuwEIAAoAvAEIAYQsAQhKCAAKAKcBCIOIAVNBEAgBSAOQZTFwQAQjAcACyAAKAKYBCAFQQJ0akMAAIA/ICiMEIkEQwAAgD+SlTgCACAAKALYAyAALQDcAyAAKALsBCAAKALwBCAGELAEISggASAAKAKoBCIJTw0EIAAoAqQEIA1qIChDu26QPpRDAAAAP5I4AgAgACgC4AMgAC0A5AMgACgC7AQgACgC8AQgBhCwBCEoIAAoAqgEIgkgBE0EQCAEIQEMBQsgACgCpAQgD2ogKEO7bpA+lEMAAAA/kjgCACAAKALoAyAALQDsAyAAKALsBCAAKALwBCAGELAEISggACgCqAQiCSACTQRAIAIhAQwFCyAAKAKkBCAQaiAoQ7tukD6UQwAAAD+SOAIAIAAoAsADIAAtAMQDIAAoAuwEIAAoAvAEIAYQsAQhKAJAAkACQAJAAkAgASAAKAK0BCIJTw0AIAAoArAEIA1qICgQiQQ4AgAgACgCyAMgAC0AzAMgACgC7AQgACgC8AQgBhCwBCEoIAAoArQEIgkgBCIBTQ0AIAAoArAEIA9qICgQiQQ4AgAgACgC0AMgAC0A1AMgACgC7AQgACgC8AQgBhCwBCEoIAAoArQEIgkgAiIBTQ0AIAAoArAEIBBqICgQiQQ4AgAgACgCICAALQAkIAAoAuwEIAAoAvAEIAYQsAQhKCAAKAIoIAAtACwgACgC7AQgACgC8AQgBhCwBCEpIAAoAjAgAC0ANCAAKALsBCAAKALwBCAGELAEISogACgCOCAALQA8IAAoAuwEIAAoAvAEIAYQsAQhKyAFQQJ0IgEgACgCwAQiAkkNAQwCCyABIAlB5MXBABCMBwALIAAoArwEIAFBAnRqICggKCAolCApICmUkiAqICqUkiArICuUkpEiKJU4AgAgAUEBciIEIAAoAsAEIgJPBEAgBCEBDAELIAAoArwEIARBAnRqICkgKJU4AgAgAUECciIEIAAoAsAEIgJPBEAgBCEBDAELIAAoArwEIARBAnRqICogKJU4AgAgAUEDciIBIAAoAsAEIgJPDQAgACgCvAQgAUECdGogKyAolTgCACAALQDkAiIBQQhHDQEMAgsgASACQdTFwQAQjAcACyAALQCkAyESIAAoAqADIAAtAJwDIRQgACgCmAMgAC0AlAMhFiAAKAKQAyAALQCMAyEYIAAoAogDIAAtAIQDIRogACgCgAMgAC0A/AIhDCAAKAL4AiAALQD0AiEPIAAoAvACIAAtAOwCIQ4gACgC6AIgACgC4AIgASAAKALsBCAAKALwBCAGELAEISggBUEJbCIBIAAoAswEIgJPDQQgACgCyAQgAUECdGogKDgCACAOIAAoAuwEIAAoAvAEIAYQsAQhKCABQQFqIgQgACgCzAQiAk8EQCAEIQEMBQsgACgCyAQgBEECdGogKDgCACAPIAAoAuwEIAAoAvAEIAYQsAQhKCABQQJqIgQgACgCzAQiAk8EQCAEIQEMBQsgACgCyAQgBEECdGogKDgCACAMIAAoAuwEIAAoAvAEIAYQsAQhKCABQQNqIgQgACgCzAQiAk8EQCAEIQEMBQsgACgCyAQgBEECdGogKDgCACAaIAAoAuwEIAAoAvAEIAYQsAQhKCABQQRqIgQgACgCzAQiAk8EQCAEIQEMBQsgACgCyAQgBEECdGogKDgCACAYIAAoAuwEIAAoAvAEIAYQsAQhKCABQQVqIgQgACgCzAQiAk8EQCAEIQEMBQsgACgCyAQgBEECdGogKDgCACAWIAAoAuwEIAAoAvAEIAYQsAQhKCABQQZqIgQgACgCzAQiAk8EQCAEIQEMBQsgACgCyAQgBEECdGogKDgCACAUIAAoAuwEIAAoAvAEIAYQsAQhKCABQQdqIgQgACgCzAQiAk8EQCAEIQEMBQsgACgCyAQgBEECdGogKDgCACASIAAoAuwEIAAoAvAEIAYQsAQhKCABQQhqIgEgACgCzAQiAk8NBCAAKALIBCABQQJ0aiAoOAIACyAALQDsASIBQQhHBEAgAC0A3AIhHSAAKALYAiAALQDUAiEfIAAoAtACIAAtAMwCISEgACgCyAIgAC0AxAIhIyAAKALAAiAALQC8AiElIAAoArgCIAAtALQCIScgACgCsAIgAC0ArAIhEyAAKAKoAiAALQCkAiEVIAAoAqACIAAtAJwCIRcgACgCmAIgAC0AlAIhGSAAKAKQAiAALQCMAiEJIAAoAogCIAAtAIQCIQ0gACgCgAIgAC0A/AEhECAAKAL4ASAALQD0ASEEIAAoAvABIAAoAugBIAEgACgC7AQgACgC8AQgBhCwBCEoIAVBD2wiASAAKALYBCIFTw0CIAAoAtQEIAFBAnRqICg4AgAgBCAAKALsBCAAKALwBCAGELAEISggAUEBaiICIAAoAtgEIgVPBEAgAiEBDAMLIAAoAtQEIAJBAnRqICg4AgAgECAAKALsBCAAKALwBCAGELAEISggAUECaiICIAAoAtgEIgVPBEAgAiEBDAMLIAAoAtQEIAJBAnRqICg4AgAgDSAAKALsBCAAKALwBCAGELAEISggAUEDaiICIAAoAtgEIgVPBEAgAiEBDAMLIAAoAtQEIAJBAnRqICg4AgAgCSAAKALsBCAAKALwBCAGELAEISggAUEEaiICIAAoAtgEIgVPBEAgAiEBDAMLIAAoAtQEIAJBAnRqICg4AgAgGSAAKALsBCAAKALwBCAGELAEISggAUEFaiICIAAoAtgEIgVPBEAgAiEBDAMLIAAoAtQEIAJBAnRqICg4AgAgFyAAKALsBCAAKALwBCAGELAEISggAUEGaiICIAAoAtgEIgVPBEAgAiEBDAMLIAAoAtQEIAJBAnRqICg4AgAgFSAAKALsBCAAKALwBCAGELAEISggAUEHaiICIAAoAtgEIgVPBEAgAiEBDAMLIAAoAtQEIAJBAnRqICg4AgAgEyAAKALsBCAAKALwBCAGELAEISggAUEIaiICIAAoAtgEIgVPBEAgAiEBDAMLIAAoAtQEIAJBAnRqICg4AgAgJyAAKALsBCAAKALwBCAGELAEISggAUEJaiICIAAoAtgEIgVPBEAgAiEBDAMLIAAoAtQEIAJBAnRqICg4AgAgJSAAKALsBCAAKALwBCAGELAEISggAUEKaiICIAAoAtgEIgVPBEAgAiEBDAMLIAAoAtQEIAJBAnRqICg4AgAgIyAAKALsBCAAKALwBCAGELAEISggAUELaiICIAAoAtgEIgVPBEAgAiEBDAMLIAAoAtQEIAJBAnRqICg4AgAgISAAKALsBCAAKALwBCAGELAEISggAUEMaiICIAAoAtgEIgVPBEAgAiEBDAMLIAAoAtQEIAJBAnRqICg4AgAgHyAAKALsBCAAKALwBCAGELAEISggAUENaiICIAAoAtgEIgVPBEAgAiEBDAMLIAAoAtQEIAJBAnRqICg4AgAgHSAAKALsBCAAKALwBCAGELAEISggAUEOaiIBIAAoAtgEIgVPDQIgACgC1AQgAUECdGogKDgCAAsCQCAALQBEQQhHBEAgA0HYB2ogHEGoAfwKAABBACEFIAghAiALIQEDQCADQdgHaiAFaiIEKAIAIARBBGotAAAgACgC7AQgACgC8AQgBhCwBCEoIAEgACgC5AQiBE8NAiAAKALgBCACaiAoOAIAIAJBBGohAiABQQFqIQEgBUEIaiIFQagBRw0ACwsgCEHUAGohCCALQRVqIQsgCiAHIApLIgJqIQEgCiEFIAJFDQYMAQsLIAEgBEHExcEAEIwHAAsgASAFQbTFwQAQjAcAC0EAIBEgBUGEpMcAEOoHAAsgASACQaTFwQAQjAcACyABIAlB9MXBABCMBwALIAdBA2wiCSAAKAKQBCIBSw0CIAcgACgCnAQiAUsNAyAJIAAoAqgEIgFLDQQgCSAAKAK0BCIBSw0FIAdBAnQiDCAAKALABCIBSw0GIAdBCWxBACAAKAKEBCICGyINIAAoAswEIgFLDQcgB0EPbEEAIAJBAUsbIg8gACgC2AQiAUsNCCAHQRVsQQAgAkECSxsiECAAKALkBCIBSw0JIAAoAoAEIQ4gACgCjAQhCyAAKAKYBCEIIAAoAqQEIQUgACgCsAQhCiAAKAK8BCEEIAAoAsgEIQIgACgC1AQhASADQgQ3AqAIIANCAjcCmAggAyAQNgKUCCADIA82AowIIAMgATYCiAggAyANNgKECCADIAI2AoAIIAMgDDYC/AcgAyAENgL4ByADIAk2AvQHIAMgCjYC8AcgAyAJNgLsByADIAU2AugHIAMgBzYC5AcgAyAINgLgByADIAk2AtwHIAMgCzYC2AcgAyAAKALgBDYCkAggGyAOIAcgA0HYB2oQlwEgACAAKAKABCAHaiICNgKABCAAKAL8AyIBIAdsIBFqIREgACgC8AQhBSABDQALC0GExMEAEIEIAAtBACAJIAFBhMXBABDqBwALQQAgByABQfTEwQAQ6gcAC0EAIAkgAUHkxMEAEOoHAAtBACAJIAFB1MTBABDqBwALQQAgDCABQcTEwQAQ6gcAC0EAIA0gAUG0xMEAEOoHAAtBACAPIAFBpMTBABDqBwALQQAgECABQZTEwQAQ6gcACyABIAlBhMbBABCMBwALIAcgDEkNAkEAIQIgAEEANgLwBCAHIAxrIQEgDARAIAcgDEYNAiABBEAgACgC7AQiBCAEIAxqIAH8CgAACyAAIAE2AvAEDAILIAcgDEYNAQsgACABNgLwBAsgA0HADGokACACDwtBACAMIAdBhKTHABDqBwALQQAgASAKQczDwQAQ6gcAC6EwAyd/BH0BfiMAQcAMayIDJAACQAJAAkACQAJAAkACQCAAKALcBCIBQYGAgIB4RgRAAkAgACgC8AQiCkEESQ0AAkAgACgC7AQiBC8AACAELQACQRB0ckHw2OUDRgRAIApBC0kNAiAKQQprIQJBACEBAkADQCABIARqQfjDwQBBCxDbB0UNASACIAFBAWoiAUcNAAsgCkH//wNNDQMgA0EANgLoByADQQE2AtwHIANB8MPBADYC2AcgA0IENwLgByADQdgHahCSByECDAkLIAEgCksNCiADQdgHaiAEIAEQ+wIgAykC3AchLCADKALYB0EBRgRAICwQzQchAgwJCyADQdgHaiAspyAsQiCIpxBNIAMoAtgHIQIgAygChAkiBEGAgICAeEYEQCACRQ0DDAkLIANBCGpBBHIgA0HYB2oiDkEEckGoAfwKAAAgA0HAAWogA0GQCWopAwAiLDcDACADIAMpA4gJNwO4ASADIAQ2ArQBIAMgAjYCCAJAICynIgpBAXFFBEAgAygCsAEhCCADKAKcASEEIANBmAZqIgIgA0H4AGoQwwMgDiAIIAQgAhCaASADKALYByEFIAMoArQMIg1BgICAgHhGDQEgAygC3AchAiADQbADaiADQeAHakHkAvwKAAAgAygCyAohByADKALECiELIANBoAJqIANBzApqQZAB/AoAACADKALcCyEJIANByAFqIANB4AtqQdQA/AoAACADKQO4DCEsIANBADoA4AcgAyAJNgLcByADIAg2AtgHIABB9ARqIA4Q4QMMAwsgA0GYBmoiAiADQQhqQcAB/AoAACADQdgHaiACEGogAygC3AchAiADKALYByIFQYCAgIB4RgRAIAJFDQQMCgsgA0GwA2ogA0HgB2pB5AL8CgAAIAMoAsQKIQsgAygCyAohByADQQA6AOAHIAMgBzYC3AcgAyALNgLYByAAQfQEaiADQdgHahDhA0GAgICAeCENDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoAvAEIgQgAUELaiIISQ0CIABBADYC8AQgBCAIRwRAIAQgCGsiBARAIAAoAuwEIgEgASAIaiAE/AoAAAsgACAENgLwBAsCQAJAAkAgACgC3ARBgICAgHhrDgIBAgALIAAQvgIMAQsgABC9AQsgACACNgIEIAAgBTYCACAAQQhqIANBsANqQeQC/AoAACAAIAc2AvACIAAgCzYC7AIgAEH0AmogA0GgAmpBkAH8CgAAIAAg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Sw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIJQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCEEBcUUEQCADKAKwASEHIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAJIAcgBCACEJoBIAMoAtgHIQUgAygCtAwiCkGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiELIAMoAsQKIQ4gA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQ0gA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIA02AtwHIAMgBzYC2AcgACAJEIQCDAMLIANBmAZqIgIgA0EIakHAAfwKAAAgA0HYB2ogAhBqIAMoAtwHIQIgAygC2AciBUGAgICAeEYEQCACRQ0EDAoLIANBsANqIANB4AdqQeQC/AoAACADKALECiEOIAMoAsgKIQsgA0EAOgDgByADIAs2AtwHIAMgDjYC2AcgACADQdgHahCEAkGAgICAeCEKDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoArAFIgQgAUELaiIHSQ0CIABBADYCsAUgBCAHRwRAIAQgB2siBARAIAAoAqwFIgEgASAHaiAE/AoAAAsgACAENgKwBQsgAEFAayEBAkACQAJAIAAoApwFQYCAgIB4aw4CAQIACyABEL4CDAELIAEQvQELIAAgAjYCRCAAIAU2AkAgAEHIAGogA0GwA2pB5AL8CgAAIAAgCzYCsAMgACAONgKsAyAAQbQDaiADQaACakGQAfwKAAAgACANNgLEBCAAQcgEaiADQcgBakHUAPwKAAAgACAsNwOgBSAAIAo2ApwFIAhBAXENACADQQhqEKADC0EAIQIgACgCnAUiAUGBgICAeEYNBQsgAEFAayESIAFBgICAgHhHDQEgACgCqAMiAiAAKAJITwRAIAAoArAFIQFB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DyADRQ0GIA8gDygCACgCABEDACADLQAQITggAygCDCE5IAJBgOHHAEELELkFIQMgBEEANgKoAyAEQQE2ApwDIARBqOHHADYCmAMgBEIENwKgAyAEQZgDahCVByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhOiADKAIMITtBCCEeQQghHyACQbDhxwBBBRC5BSICBEAgAigCDCE8IAItABAhHwsgBEEQakG14ccAQQUQuQUiAgRAIAIoAgwhPSACLQAQIR4LQQghGkEIISAgBEEQakG64ccAQQUQuQUiAgRAIAIoAgwhPiACLQAQISALIARBEGpBv+HHAEEFELkFIgIEQCACKAIMIT8gAi0AECEaC0EIISFBCCEiIARBEGpBxOHHAEEFELkFIgIEQCACKAIMIUAgAi0AECEiCyAEQRBqQcnhxwBBBRC5BSICBEAgAigCDCFBIAItABAhIQsgBEHIAGoiAkHO4ccAQQ8QuQUhAyAEQQA2AqgDIARBATYCnAMgBEGA4scANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgA0UNBSASIBIoAgAoAgARAwAgAy0AECFCIAMoAgwhQyACQYjixwBBDxC5BSEDIARBADYCqAMgBEEBNgKcAyAEQbjixwA2ApgDIARCBDcCoAMgBEGYA2oQlQchEiADRQ0FIBIgEigCACgCABEDACADLQAQIUQgAygCDCFFIAJBwOLHAEEMELkFIQMgBEEANgKoAyAEQQE2ApwDIARB7OLHADYCmAMgBEIENwKgAyAEQZgDahCVByESIANFDQUgEiASKAIAKAIAEQMAIAMtABAhRiADKAIMIUcgAkH04scAQQwQuQUhAiAEQQA2AqgDIARBATYCnAMgBEGg48cANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgAkUNBSASIBIoAgAoAgARAwAgAUE4aiEcIAItABAhSCACKAIMIUkgASgCYEGAgICAeEYNByABKAJYICNHDQggBEHUAWqtQoCAgIAQhCFKQQAhEgNAAkAgBCASNgLUASAEQQE2ApwDIARBiNDHADYCmAMgBEIBNwKkAyAEIEo3A9gBIAQgBEHYAWo2AqADIARB0ANqIARBmANqELEGIBwgBCgC1AMiAyAEKALYAxC5BSAEKALQAyECRQ0AIAIEQCADIAJBARCiBwsgBCgC1AFB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DUEBaiINNgJsDAALAAsgASACQe8BakH4v8EAEO4BIQQMBwsgAkEQaiAGIAMgBCADIAMgBEsbEPkBIAIoAhQhAyACKAIQIQVBFBBxIgRFDQMLIAQgBTYCDCAEQRg2AgAgBCADNgIQDAMLIAUgCBDrBSEEDAILIAJBCGogBSADIAQgAyADIARLGxD5ASACKAIMIQMgAigCCCEEQRQQcSIBRQ0AIAEgBDYCDCABQRg2AgAgACABNgIEIABBgICAgHg2AgAgASADNgIQDAULAAtBgICAgHghAyACKAJkIgVFDQAgAigCaCIGQQRrKAIAIgdBeHEiCSAFQShsIgVBBEEIIAdBA3EiBxtqSQ0EIAdBACAJIAVBJ2pLGw0FIAYQogILIAEgAS0AGEEBajoAGCACIAEQugMiBTYCvAEgAiANNgK4ASACIAQ2ArQBIAIgAzYCsAEgA0GAgICAeEcEQCAFRQ0CIAMEQCAEQQRrKAIAIgZBeHEiByADQShsIgNBBEEIIAZBA3EiBhtqSQ0HIAZBACAHIANBJ2pLGw0IIAQQogILIAUhBAwBCyAFRQ0AIAJBvAFqELEECyAEIAEQ6wUhASAAQYCAgIB4NgIAIAAgATYCBAwBCyAAIA02AgggACAENgIEIAAgAzYCAAsgAkHwAWokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvfFwIafwJ8IwBBsARrIgMkACADQgA3A5gBIANCADcDkAEgA0IANwOIASADQgA3A4ABIANCADcDeCADQgA3A3AgA0IANwNoIANCADcDYCADQgA3A1ggA0IANwNQIANCADcDSCADQgA3A0AgA0IANwM4IANCADcDMCADQgA3AyggA0IANwMgIANCADcDGCADQgA3AxAgA0IANwMIIANCADcDACADQgA3A7gCIANCADcDsAIgA0IANwOoAiADQgA3A6ACIANCADcDmAIgA0IANwOQAiADQgA3A4gCIANCADcDgAIgA0IANwP4ASADQgA3A/ABIANCADcD6AEgA0IANwPgASADQgA3A9gBIANCADcD0AEgA0IANwPIASADQgA3A8ABIANCADcDuAEgA0IANwOwASADQgA3A6gBIANCADcDoAEgA0IANwPYAyAD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AgBB3o7IAEEBIAEoAgQoAgwRAAAhAwwLCyABKAIAQZjMxABBESABKAIEKAIMEQAAIQMMCgtBASEDIAIgAEEBajYCDCABKAIAIgBBqczEAEERIAEoAgQiBSgCDCIEEQAADQkCQCABLQAKQYABcUUEQCAAQbuzxQBBASAEEQAADQsgAkEMaiABEMQERQ0BDAsLIABB24HCAEECIAQRAAANCiACQQE6ABMgAiAFNgIYIAIgADYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqEMQEDQogAigCIEHZgcIAQQIgAigCJCgCDBEAAA0KCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCQtBASEDIAEoAgAiBEG6zMQAQRkgASgCBCIGKAIMIgURAAANCCAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQogACABEKcERQ0BDAoLIARB24HCAEECIAURAAANCSACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQkgAigCIEHZgcIAQQIgAigCJCgCDBEAAA0JCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCAtBASEDIAEoAgAiBEHTzMQAQRogASgCBCIGKAIMIgURAAANByAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQkgACABEKcERQ0BDAkLIARB24HCAEECIAURAAANCCACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQggAigCIEHZgcIAQQIgAigCJCgCDBEAAA0ICyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBwtBASEDIAEoAgAiBEHtzMQAQRsgASgCBCIGKAIMIgURAAANBiAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEKcERQ0BDAgLIARB24HCAEECIAURAAANByACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCAC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LQAAQQNrDgUBAAAAAgALIAAgARDKAgwFCyAAKQMIIglC/////////weDIQogCUL///////////8Ag0L/////////9/8AWARAIAlCNIinIQAgCUIAUw0CIAJBsAJqDAMLQeydxgBB753GACAJQgBZIgAbQfOdxgAgClAiAxshBEEDQQQgABtBAyADGyEADAMLIAEoAgBB8ZLGAEEEIAEoAgQoAgwRAAAMAwsgAkEtOgCwAkEBIQggAkGxAmoLIQYCfwJAAkACQAJAAkACQAJAAkAgAEH/D3EiAEUgClBxRQRAIABBAkkgCkIAUnIhBCAKQoCAgICAgIAIhCAKIAAbIglCAoYhCiAJQgGDIQ8CQAJAAkAgAEG1CGtBzHcgABsiAEEASARAIAJBkAJqQYC8xQAgACAAQYWiU2xBFHYgAEF/R2siAGoiB0EEdCIDaykDACIJIApCAoQiCxDdBiACQYACakGIvMUAIANrKQMAIg0gCxDdBiACQfABaiACKQOYAiILIAIpA4ACfCIMIAIpA4gCIAsgDFatfCAAIAdBsdm1H2xBE3ZrQfwAakH/AHFBwABzIgMQoQcgAkGwAWogCSAKIARBf3OsfCILEN0GIAJBoAFqIA0gCxDdBiACQZABaiACKQO4ASILIAIpA6ABfCIMIAIpA6gBIAsgDFatfCADEKEHIAJB4AFqIAkgChDdBiACQdABaiANIAoQ3QYgAkHAAWogAikD6AEiCSACKQPQAXwiDSACKQPYASAJIA1WrXwgAxChByACKQPAASELIAIpA5ABIQkgAikD8AEhDCAAQQJJDQFBACEDIABBP0kNAgwFCyACQYABaiAAQcHoBGxBEnYgAEEDS2siB0EEdCIDKQPg5EUiCSAKQgKEIg0Q3QYgAkHwAGogA0Ho5MUAaikDACILIA0Q3QYgAkHgAGogAikDiAEiDCACKQNwfCIOIAIpA3ggDCAOVq18IAcgAGsgB0HPpsoAbEETdmpB/QBqQf8AcUHAAHMiABChByACQSBqIAkgCiAEQX9zrHwiDBDdBiACQRBqIAsgDBDdBiACIAIpAygiDCACKQMQfCIOIAIpAxggDCAOVq18IAAQoQcgAkHQAGogCSAKEN0GIAJBQGsgCyAKEN0GIAJBMGogAikDWCIJIAIpA0B8IgsgAikDSCAJIAtWrXwgABChByACKQMw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ACABIAA2ArADQdjmyABBKyABQbADakHY6MAAQbDwwAAQ4AYAC0G4u8kAQQA2AgBBtLvJAEEAOgAAIARBhAhPBEAgBBCbBwsgA0GECE8EQCADEJsHCyACQQRrKAIAIgNBeHEiBEHwAUH0ASADQQNxIgMbSQ0CIANBACAEQZQCTxsNACACEKICIAAgBjYCBCAAQQA2AgAgAUHgCWokAA8LC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAvFFwICfwF+IwBBQGoiAiQAIAEoAgQhAyABKAIAIQECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCACIALQAAQQFrDiMBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhsjHB0eHyAhIgALIAIgAEEEajYCBCACIABBCGo2AiAgAiAAQQxqNgIkIAIgAkEkaq1CgICAgLAMhDcDGCACQoCAgIDADCIEIAJBIGqthDcDECACIAQgAkEEaq2ENwMIIAJCAzcCNCACQQQ2AiwgAkHsncUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwrCyABQYyexQBBFiADKAIMEQAADCoLIAFBop7FAEElIAMoAgwRAAAMKQsgAUHHnsUAQR4gAygCDBEAAAwoCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGIn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwnCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkG8n8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwmCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkHsn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwlCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGcoMUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwkCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkHYoMUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwjCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGEocUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwiCyACIABBBGo2AiAgAiAAQQhqNgIkIAJCgICAgNAMIgQgAkEgaq2ENwMQIAIgBCACQSRqrYQ3AwggAkICNwI0IAJBAzYCLCACQcChxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDCELIAIgAEEEajYCICACIABBCGo2AiQgAkKAgICA0AwiBCACQSRqrYQ3AxAgAiAEIAJBIGqthDcDCCACQgI3AjQgAkEDNgIsIAJB/KHFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMIAsgAiAAQQFqNgIEIAIgAEEEajYCICACIABBCGo2AiQgAiACQQRqrUKAgICA4AyENwMYIAJCgICAgNAMIgQgAkEkaq2ENwMQIAIgBCACQSBqrYQ3AwggAkIDNwI0IAJBBDYCLCACQfSixQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDB8LIAIgAEECajYCICACIABBAWo2AiQgAiACQSBqrUKAgICA8AyENwMQIAIgAkEkaq1CgICAgMAIhDcDCCACQgI3AjQgAkEDNgIsIAJB6KPFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMHgsgAUGApMUAQSEgAygCDBEAAAwdCyACIABBAmo2AiAgAiAAQQFqNgIkIAIgAkEkaq1CgICAgPAMhDcDECACIAJBIGqtQoCAgIDgDIQ3AwggAkICNwI0IAJBAjYCLCACQdCkxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDBwLIAIgAEEBajYCJCACIAJBJGqtQoCAgIDgDIQ3AwggAkIBNwI0IAJBAjYCLCACQYilxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDBsLIAFBmKXFAEEYIAMoAgwRAAAMGgsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBxKXFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMGQsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJB6KXFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMGAsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBjKbFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMFwsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBsKbFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMFgsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJB5KbFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMFQsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBlKfFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMFAsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBwKfFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMEwsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJB6KfFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMEgsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBlKjFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMEQsgAUGkqMUAQRsgAygCDBEAAAwQCyABQdeoxQBBNyADKAIMEQAADA8LIAAtAAFBAWsOBwcICQoLDA0GCyABQbSsxQBBHyADKAIMEQAADA0LIAIgAEEBajYCJCACIAJBJGqtQoCAgICwDIQ3AwggAkIBNwI0IAJBAjYCLCACQfisxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDAwLIAIgAEEBajYCJCACIAJBJGqtQoCAgICwDIQ3AwggAkIBNwI0IAJBATYCLCACQZytxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDAsLIAIgAEEBajYCJCACIAJBJGqtQoCAgICwDIQ3AwggAkIBNwI0IAJBATYCLCACQcStxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDAoLIAFBzK3FAEEQIAMoAgwRAAAMCQsgAiAAQQFqNgIkQQEgAUG/qMUAQRggAygCDBEAAA0IGiACQQE2AiwgAkGg+McANgIoIAJCATcCNCACIAJBJGqtQoCAgICADYQ3AwggAiACQQhqNgIwIAEgAyACQShqEJ4JDAgLIAJBADYCOCACQQE2AiwgAkG0qcUANgIoIAJCBDcCMCABIAMgAkEoahCeCQwHCyACQQA2AjggAkEBNgIsIAJB5KnFADYCKCACQgQ3AjAgASADIAJBKGoQngkMBgsgAkEANgI4IAJBATYCLCACQYyqxQA2AiggAkIENwIwIAEgAyACQShqEJ4JDAULIAJBADYCOCACQQE2AiwgAkG0qsUANgIoIAJCBDcCMCABIAMgAkEoahCeCQwECyACQQA2AjggAkEBNgIsIAJB8KrFADYCKCACQgQ3AjAgASADIAJBKGoQngkMAwsgAkEANgI4IAJBATYCLCACQayrxQA2AiggAkIENwIwIAEgAyACQShqEJ4JDAILIAJBADYCOCACQQE2AiwgAkH8q8UANgIoIAJCBDcCMCABIAMgAkEoahCeCQwBCyACQQA2AjggAkEBNgIsIAJBrKzFADYCKCACQgQ3AjAgASADIAJBKGoQngkLIAJBQGskAAvOFgIHfQ5/IwBBIGsiDiQAIAAQowUgAEHAAWpBADoAACAAQgA3ArgBIAAgAhDQBAJAAkAgACgCEEEBRw0AIAAoAhhFDQACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkAgAkECdCINIhEgACgCfCISTQRAIAAoAogBIhMgEU8EQCAAKAJ4IRcgACgChAEhGCACRQ0NQQAgDWshGUEBIRVBFCEMQQMhDQJ/AkADQAJAAn8CQAJAAkACfwJAAkACQAJ/AkACQAJAAkACQAJAAkAgBCAMQRRrSwRAIAxBE2sgBE8NASAMQRJrIARPDQIgDUEDayIPIBFJDQMgDyENDAQLIAxBFGsMDwsgDEETawwKCyAMQRJrDAULQwAAf0MgA0EEaioCACIIiyIFQwAAgD9DAAD4QUMAAAAAIAMqAgAiCYsiBiAFIANBCGoqAgAiCosiCxDgCBDgCBCeBY5DAABwQZIiBSAFQwAAAABdGyIFIAVDAAD4QV4bELkH/AAiD0EPaxCwBkMAAH9DlSIFlSIHIAdDAAB/Q14bELkHIQcgFCAXaiIQQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgD0EbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAMQRFrIARPDQsgDEEQayAETw0HIAxBD2sgBE8NAyARIA1BAmtLBEBDAAB/QyADQRBqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EMaioCACIJiyIGIAUgA0EUaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIPQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAQQQRqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgD0EbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAMQQ5rIARPDQsgDEENayAETw0HIAxBDGsgBE8NAyARIA1BAWtLBEBDAAB/QyADQRxqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EYaioCACIJiyIGIAUgA0EgaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIPQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAQQQhqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgD0EbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAMQQtrIARPDQsgDEEKayAETw0HIAxBCWsgBE8NAyANIBFPDQJDAAB/QyADQShqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EkaioCACIJiyIGIAUgA0EsaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIPQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAQQQxqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgD0EbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAMQQhrIARPDR4gDEEHayAETw0aIAxBBmsgBE8NFiANIBlqIhBBA0cNDyANQQNrDBILIA1BAWshDQwBCyANQQJrIQ0LIA0gEUGovsEAEIwHAAsgDEEJawwCCyAMQQxrDAELIAxBD2sLIARBmL7BABCMBwALIAxBCmsMAgsgDEENawwBCyAMQRBrCyAEQYi+wQAQjAcACyAMQQtrDAILIAxBDmsMAQsgDEERawsgBEH4vcEAEIwHAAtDAAB/QyADQTRqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EwaioCACIJiyIGIAUgA0E4aioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIWQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAUIBhqIg9DAAB/QyAGIAWVIgYgBkMAAH9DXhsQuQf8ASAWQRt0QYCAgAhBACAJQwAAAABdG3JBgICAEEEAIAhDAAAAAF0bckGAgIAgQQAgCkMAAAAAXRtyciAH/AFBCHRyQwAAf0MgCyAFlSIFIAVDAAB/Q14bELkH/AFBEHRyNgIAIAxBBWsgBE8NDSAMQQRrIARPDQkgDEEDayAETw0FIBBBAkYNAUMAAH9DIANBQGsqAgAiCIsiBUMAAIA/QwAA+EFDAAAAACADQTxqKgIAIgmLIgYgBSADQcQAaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIWQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAPQQRqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgFkEbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAMQQJrIARPDQwgDEEBayAETw0IIAQgDE0NByAQQQFHBEBDAAB/QyADQcwAaioCACIIiyIFQwAAgD9DAAD4QUMAAAAAIANByABqKgIAIgmLIgYgBSADQdAAaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIQQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAPQQhqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgEEEbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAUQRBqIRQgDEEVaiEMIANB1ABqIQMgDUEEaiENIAIgFUsgFUEBaiEVDQEMEQsLIA1BAWsMAQsgDUECawsgEUHovcEAEIwHAAtBACARIBNBqL3BABDqBwALQQAgESASQbi+wQAQ6gcACyAMQQNrIQwMAQsgDEEGayEMCyAMIARB2L3BABCMBwALIAxBAWsMAgsgDEEEawwBCyAMQQdrCyAEQci9wQAQjAcACyAMQQJrDAILIAxBBWsMAQsgDEEIawsgBEG4vcEAEIwHAAsgDiAAKAIUIAFBAnQiAyABIAJqQQJ0IgIQ4QgiARC4CiIENgIAIA4gEjYCBCAEIBJHDQEgASAXIBIQ4AkgAUGECE8EQCABEJsHCyAOIAAoAhwgAyACEOEIIgAQuAoiATYCACAOIBM2AgQgASATRw0BIAAgGCATEOAJIABBhAhJDQAgABCbBwsgDkEgaiQADwsgDkEANgIIQQAgDiAOQQRqIA5BCGpB4PnEABD1BwALvhQBDn8jAEEgayIQJAACQAJAIAFBIUkEQCAAIQkgASEKDAELIAJBBGshESACQRBrIRICQAJAA0AgBEUEQCAAIAEgAiADQQEQ3QEMBQsgACABQQN2IghBHGxqIQYgACAIQQR0aiEJIARBAWshBCAQAn8gAUHAAE8EQCAAIAkgBiAIEMIGDAELIAAgBiAJIAAoAgAiCCAJKAIAIglJIgcgCSAGKAIAIgZJcxsgByAGIAhLcxsLIg0oAgAiBjYCBCANIABrQQJ2IQwCQAJAIAUEQCAFKAIAIAZPDQELIAEgA0sNAyACIAFBAnQiE2ohB0EAIQogACEGIAwhCANAIAAgCEEDayIJQQAgCCAJTxtBAnRqIg4gBksEQCANKAIAIQkDQCAKQQJ0IAIgB0EEayAGKAIAIgsgCUkiDxtqIAs2AgAgCiAPaiIKQQJ0IAIgB0EIayAGQQRqKAIAIgsgCUkiDxtqIAs2AgAgCiAPaiIKQQJ0IAIgB0EMayAGQQhqKAIAIgsgCUkiDxtqIAs2AgAgCiAPaiIKQQJ0IAIgB0EQayIHIAZBDGooAgAiCyAJSSIPG2ogCzYCACAKIA9qIQogBkEQaiIGIA5JDQALCyAAIAhBAnRqIgkgBksEQCANKAIAIQ4DQCAKQQJ0IAIgB0EEayIHIAYoAgAiCyAOSSIPG2ogCzYCACAKIA9qIQogBkEEaiIGIAlJDQALCyABIAhHBEAgB0EEayIHIApBAnRqIAYoAgA2AgAgBkEEaiEGIAEhCAwBCwsgCkECdCIOBEAgACACIA78CgAACyABIAprIQsCQCABIApGDQBBACEJIAtBBE8EQCAAIA5qIQYgEiATaiEHIAtBfHEiCSEIA0AgBiAH/QACAP0MAAAAAAAAAAAAAAAAAAAAAP0NDA0ODwgJCgsEBQYHAAECA/0LAgAgB0EQayEHIAZBEGohBiAIQQRrIggNAAsgCSALRg0BCyARIBMgCUECdCIIa2ohBiAAIAhqIA5qIQcgCSABayAKaiEIA0AgByAGKAIANgIAIAZBBGshBiAHQQRqIQcgCEEBaiIIDQALCyAKRQ0AIAEgCk8NASAQQQA2AhggEEEBNgIMIBBBiILIADYCCCAQQgQ3AhAgEEEIakH0lMEAEI0IAAsgASADSw0CIAIgAUECdCIOaiEHQQAhCCAAIQYDQCAAIAxBA2siBUEAIAUgDE0bQQJ0aiIJIAZLBEAgDSgCACEFA0AgCEECdCACIAdBBGsgBSAGKAIAIgpPIgsbaiAKNgIAIAggC2oiCEECdCACIAdBCGsgBSAGQQRqKAIAIgpPIgsbaiAKNgIAIAggC2oiCEECdCACIAdBDGsgBSAGQQhqKAIAIgpPIgsbaiAKNgIAIAggC2oiCEECdCACIAdBEGsiByAFIAZBDGooAgAiCk8iCxtqIAo2AgAgCCALaiEIIAZBEGoiBiAJSQ0ACwsgACAMQQJ0aiIFIAZLBEAgDSgCACEJA0AgCEECdCACIAdBBGsiByAJIAYoAgAiCk8iCxtqIAo2AgAgCCALaiEIIAZBBGoiBiAFSQ0ACwsgASAMRwRAIAIgCEECdGogBigCADYCACAGQQRqIQYgCEEBaiEIIAdBBGshByABIQwMAQsLIAhBAnQiDQRAIAAgAiAN/AoAAAsgASAIRg0FIAAgDWohCUEAIQwCQCABIAhrIgpBBE8EQCAOIBJqIQYgCSEHIApBfHEiDCEFA0AgByAG/QACAP0MAAAAAAAAAAAAAAAAAAAAAP0NDA0ODwgJCgsEBQYHAAECA/0LAgAgBkEQayEGIAdBEGohByAFQQRrIgUNAAsgCiAMRg0BCyARIAxBAnQiBWsgDmohBiAAIAVqIA1qIQcgDCABayAIaiEFA0AgByAGKAIANgIAIAZBBGshBiAHQQRqIQcgBUEBaiIFDQALCyABIAhJDQNBACEFIAkhACAKIgFBIUkNBAwBCyAAIA5qIAsgAiADIAQgEEEEahCVASAKIgFBIU8NAAsgACEJDAILAAsgCCABIAFBhJXBABDqBwALIApBAkkNACAKQQF2IQEgAQJ/IApBD00EQCAKQQdLBEAgAiAJQQhBDCAJKAIMIAkoAghJIgUbaiIIKAIAIgAgCSAJKAIEIgYgCSgCACIHT0ECdGoiAygCACIEIAAgBEsbNgIMIAIgCUEMQQggBRtqIgUoAgAiDCAJIAYgB0lBAnRqIgcoAgAiBiAGIAxLIgYbNgIAIAIgCCADIAUgBhsgACAESSIEGygCACIAIAcgBSADIAQbIAYbKAIAIgMgACADSxs2AgggAiAAIAMgACADSRs2AgQgAiABQQJ0IgBqIgMgACAJaiIAQQhBDCAAKAIMIAAoAghJIggbaiIMKAIAIgQgACAAKAIEIgcgACgCACINT0ECdGoiBSgCACIGIAQgBksbNgIMIAMgAEEMQQggCBtqIggoAgAiDiAAIAcgDUlBAnRqIg0oAgAiACAAIA5LIgcbNgIAIAMgDCAFIAggBxsgBCAGSSIEGygCACIAIA0gCCAFIAQbIAcbKAIAIgQgACAESRs2AgQgAyAAIAQgACAESxs2AghBBAwCCyACIAkoAgA2AgAgAiABQQJ0IgBqIAAgCWooAgA2AgBBAQwBCyAJIAIgAiAKQQJ0aiIAEMwCIAkgAUECdCIDaiACIANqIABBIGoQzAJBCAsiAEsEQCAAQQJ0IQQgAEEBaiEGIAAhBwNAIAYhAyACIAdBAnQiBWoiBiAFIAlqKAIAIgU2AgAgBkEEaygCACIHIAVLBEAgBCEGAn8DQCACIAZqIgggBzYCACACIAZBBEYNARogBkEEayEGIAUgCEEIaygCACIHSQ0ACyACIAZqCyAFNgIACyAEQQRqIQQgAyABIANLIgVqIQYgAyEHIAUNAAsLIAIgAUECdCIDaiEFIAogAWsiBCAASwRAIAMgCWohDCAAQQJ0IQggAEEBaiEGA0AgBiEDIAUgAEECdCIAaiIGIAAgDGooAgAiADYCACAGQQRrKAIAIgcgAEsEQCAIIQYCfwNAIAUgBmoiDSAHNgIAIAUgBkEERg0BGiAGQQRrIQYgACANQQhrKAIAIgdJDQALIAUgBmoLIAA2AgALIAhBBGohCCADIAMgBEkiB2ohBiADIQAgBw0ACwsgBUEEayEIIAIgCkECdEEEayIAaiEMIAAgCWohBANAIAkgBSgCACIGIAIoAgAiByAGIAdJIg0bNgIAIAQgDCgCACIAIAgoAgAiAyAAIANLGzYCACAEQQRrIQQgCUEEaiEJIAhBfEEAIAAgA0kbaiEIIAxBfEEAIAAgA08baiEMIAIgBiAHT0ECdGohAiAFIA1BAnRqIQUgAUEBayIBDQALIAhBBGohACAKQQFxBH8gCSACIAUgACACSyIBGygCADYCACAFIAAgAk1BAnRqIQUgAiABQQJ0agUgAgsgAEYgBSAMQQRqRnENABCACAALIBBBIGokAAv/EwIKfwZ+QQghBQJAIAFBBEkNACAALQAAIgIgAC0AAUcNACABrSEOIAAtAAMhByAALQACIQMCQAJAAkACQAJ+AkACQAJAAkACQAJAAkACQCACQckAaw4FAA0NDQENCyADQSpHIAdyDQwgAUF8cUEERg0BIAA1AAQhDAwICyADIAdBKkdyDQsgAUF8cUEERg0BIAAoAAQhBAwCC0GokMgAKQMAIg2nQf8BcSICQQRGDQYgAkEDRw0KIA1CIIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0JIAMgACACKAIIEKIHDAkLQaiQyAApAwAiDadB/wFxIgJBBEcNAQsgASAEQRh0IARBgP4DcUEIdHIgBEEIdkGA/gNxIARBGHZycq0iECAOIA4gEFYbpyICa0ECSQ0BIAAgAmovAAAhAkEEIQUMAgsgAkEDRw0HIA1CIIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0GIAMgACACKAIIEKIHDAYLQQAhAkGokMgAKQMAIg1CCIghDyANpyEFIA4gDUL/AYNCBFINARoLIBBCAnwLIQwgBUH/AXEiA0EERgRAQQghBUEAIQRBqJDIACkDACIPQv8BgyERIA9CCIghECAPpyEDIAJBCHQgAkGA/gNxQQh2ckH//wNxIQcDQCAEQf//A3EgB08NBgJ+AkAgASAMIA4gDCAOVBunIgJrQQJPBEAgACACai8AAEGBJEYhCEEEIQJCACENDAELQQAhCCAQIQ0gAyECIA4gEUIEUg0BGgsgDEICfAshDCACQf8BcSICQQRHBEAgAkEDRw0HIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0GIAMgACACKAIIEKIHDAYLAn4CQCABIAwgDiAMIA5UG6ciAmtBAk8EQCAAIAJqLwAAQYAGRiEJQQQhAkIAIQ0MAQtBACEJIBAhDSADIQIgDiARQgRSDQEaCyAMQgJ8CyEMIAJB/wFxIgJBBEcEQCACQQNHDQcgDUIYiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQYgAyAAIAIoAggQogcMBgsCfgJAIAEgDCAOIAwgDlQbpyICa0EETwRAIAAgAmooAABBgICACEYhCkEEIQJCACENDAELQQAhCiAQIQ0gAyECIA4gEUIEUg0BGgsgDEIEfAshDCACQf8BcSICQQRHBEAgAkEDRw0HIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0GIAMgACACKAIIEKIHDAYLAn4CQCABIAwgDiAMIA5UG6ciAmtBAk8EQCAAIAJqLwAAIQZBBCECQgAhDQwBC0EAIQYgECENIAMhAiAOIBFCBFINARoLIAxCAnwLIQwCQCACQf8BcUEERgRAIAEgDCAOIAwgDlQbp2tBAUsiAiADQf8BcSILQQRGcg0BIAtBA0cNCCAPQiCIpyIBKAIAIQMgAUEEaigCACICKAIAIgAEQCADIAARAwALIAIoAgQiAEUNByADIAAgAigCCBCiBwwHCyACQf8BcUEDRw0HIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0GIAMgACACKAIIEKIHDAYLIARBAWohBCAMQgJ8Ig0gDSAOIBFCBFEbIAIbIQwgCCAJcSAKcUUNAAtB/wEgBkEIdCAGQYD+A3FBCHZyQf//A3EiACAAQf8BTxtBAWsiAUH/AXFBB0sNBQwCC0EIIQUgA0EDRw0EIA9CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0DIAMgACACKAIIEKIHDAMLAn4CQCABIAwgDiAMIA5UG6ciAmtBAk8EQCAAIAJqLwAAIQJBBCEEDAELQQAhAkGokMgAKQMAIg1CCIghDyANpyEEIA4gDUL/AYNCBFINARoLIAxCAnwLIQwgBEH/AXEiA0EERw0BQQAhBEGokMgAKQMAIg9C/wGDIREgD0IIiCEQIA+nIQMgAkH//wNxIQcDQCAEQf//A3EgB08NBAJ+AkAgASAMIA4gDCAOVBunIgJrQQJPBEAgACACai8AAEGSAkYhCEEEIQJCACENDAELQQAhCCAQIQ0gAyECIA4gEUIEUg0BGgsgDEICfAshDCACQf8BcSICQQRHBEAgAkEDRw0FIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0EIAMgACACKAIIEKIHDAQLAn4CQCABIAwgDiAMIA5UG6ciAmtBAk8EQCAAIAJqLwAAQQNGIQlBBCECQgAhDQwBC0EAIQkgECENIAMhAiAOIBFCBFINARoLIAxCAnwLIQwgAkH/AXEiAkEERwRAIAJBA0cNBSANQhiIpyIBKAIAIQMgAUEEaigCACICKAIAIgAEQCADIAARAwALIAIoAgQiAEUNBCADIAAgAigCCBCiBwwECwJ+AkAgASAMIA4gDCAOVBunIgJrQQRPBEAgACACaigAAEEBRiEKQQQhAkIAIQ0MAQtBACEKIBAhDSADIQIgDiARQgRSDQEaCyAMQgR8CyEMIAJB/wFxIgJBBEcEQCACQQNHDQUgDUIYiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQQgAyAAIAIoAggQogcMBAsCfgJAIAEgDCAOIAwgDlQbpyICa0ECTwRAIAAgAmovAAAhBkEEIQJCACENDAELQQAhBiAQIQ0gAyECIA4gEUIEUg0BGgsgDEICfAshDCACQf8BcSICQQRHBEAgAkEDRw0FIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0EIAMgACACKAIIEKIHDAQLIAEgDCAOIAwgDlQbp2tBAUsiAiADQf8BcSILQQRGckUEQCALQQNHDQUgD0IgiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQQgAyAAIAIoAggQogcMBAsgBEEBaiEEIAxCAnwiDSANIA4gEUIEURsgAhshDCAIIAlxIApxRQ0AC0H/ASAGIAZB/wFPG0EBayIBQf8BcUEITw0DC0KAiIio4KDAgwMgAUEDdK1C+AGDiKchBQwCCyADQQNHDQEgD0IYiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQAgAyAAIAIoAggQogcLIAFBDEEEEKIHQQgPCyAFC4UVAiF/Dn0jAEEQayIRJAAgACABIAIQzAMCQAJAAkACQCADKAIEIhJFBEAgAygCDCEIDAELAkAgAygCDCIIRQ0AIAMoAhQiGEUNACADKAIcIhlFDQAgAygCJCIVRQ0AIAJFDQJDAAAAQEMAAIA/IAAtAJwBGyExIAJBDGwhGyAAKgKMASAAKgKIASIpkyEqIAAqAoQBIAAqAoABIiuTISwgACgCZCEaIAAoAmAhHCADKAIgIR0gAygCGCEeIAMoAhAhHyADKAIIISAgAygCACEhIAghEAJAAkACQAJAAkACQANAIBogBEEEaiILSQRAIAQgCyAaQYThwAAQ6gcACyAGIBJPDQYgEiAGayIFQQAgBSASTRsiBUEBRg0EIAVBAkYNBQJAAkACQCAQBEACQAJAIAYgGE8NAAJAAkAgFyAYakEBaw4CAAEDCyAGQQFqIQYMAQsgBkECaiEGCyAGIBhBtOHAABCMBwALAkACQCAGIBlPDQACQAJAIBcgGWpBAWsOAgABAwsgBkEBaiEGDAELIAZBAmohBgsgBiAZQZThwAAQjAcACyAEIBVPDQcCQCAVIARrIgVBACAFIBVNG0EBaw4DBAYHAAsgEyAhaiIFKAIAIQkgBUEIaigCACEUIAVBBGooAgAhCiAEICBqKgIAIBMgH2oiBCoCACEmIARBCGoqAgAhKCAEQQRqKgIAIScgEyAeaiIEKgIAIS0gBEEIaioCACEuIARBBGoqAgAhLyAWIB1qIgQqAgAhJSARIARBBGoqAgA4AgQgESAlOAIAIBEgBEEIaikCADcCCEMAAH9DQwAAAAAgJyArkyAslUMAAH9DlCIlICVDAAAAAF0bIiUgJUMAAH9DXhsQuQciMEMAAAAAYCEiIDD8ASEjQwAAf0NDAAAAACAoICuTICyVQwAAf0OUIiUgJUMAAAAAXRsiJSAlQwAAf0NeGxC5ByIoQwAAAABgISQgKPwBIQxDAAB/Q0MAAAAAICYgK5MgLJVDAAB/Q5QiJSAlQwAAAABdGyIlICVDAAB/Q14bELkHISYgMZUhJyAJQf///wNxIQUgCUGAgICAeHEhBCAJQYCAgPwHcSIHQYCAgPwHRgRAIARBEHYgBUENdnJBgARBACAFG3JBgPgBciENDAMLIARBEHYhDSAHQYCAgLgESw0BIAdBgICAxANPBEAgCUEMdiAJQf/fAHFBAEdxIAdBDXYgBUENdmpBgIABaiANcmohDQwDCyAHQYCAgJgDSQ0CIAVBgICABHIiCUH+ACAHQRd2IgVrdiEEIAlBHSAFayIFdkEBcQR/IARBAyAFdEEBayAJcUEAR2oFIAQLIA1yIQ0MAgsgCCAIQfTgwAAQjAcACyANQYD4AXIhDQsgCkH///8DcSEFIApBgICAgHhxIQQCQCAKQYCAgPwHcSIHQYCAgPwHRwRAIARBEHYhDiAHQYCAgLgETQRAIAdBgICAxANPBEAgCkEMdiAKQf/fAHFBAEdxIAdBDXYgBUENdmpBgIABaiAOcmohDgwDCyAHQYCAgJgDSQ0CIAVBgICABHIiCUH+ACAHQRd2IgVrdiEEIAlBHSAFayIFdkEBcQR/IARBAyAFdEEBayAJcUEAR2oFIAQLIA5yIQ4MAgsgDkGA+AFyIQ4MAQsgBEEQdiAFQQ12ckGABEEAIAUbckGA+AFyIQ4LIBRB////A3EhBSAUQYCAgIB4cSEEAkAgFEGAgID8B3EiB0GAgID8B0cEQCAEQRB2IQ8gB0GAgIC4BE0EQCAHQYCAgMQDTwRAIBRBDHYgFEH/3wBxQQBHcSAHQQ12IAVBDXZqQYCAAWogD3JqIQ8MAwsgB0GAgICYA0kNAiAFQYCAgARyIglB/gAgB0EXdiIFa3YhBCAJQR0gBWsiBXZBAXEEfyAEQQMgBXRBAWsgCXFBAEdqBSAECyAPciEPDAILIA9BgPgBciEPDAELIAVBDXYgBEEQdnJBgARBACAFG3JBgPgBciEPCyAREJ0EIQpBACEJQQAhBSAtQwAAAABfRQRAQf8BQwAAgD9DAAAAACAtEMYFICmTICqVIiUgJUMAAAAAXRsiJSAlQwAAgD9eG0MAAH5DlBC5ByIl/AFBACAlQwAAAABgGyAlQwAAf0NeG0EBakH/AXEhBQsgL0MAAAAAX0UEQEH/AUMAAIA/QwAAAAAgLxDGBSApkyAqlSIlICVDAAAAAF0bIiUgJUMAAIA/XhtDAAB+Q5QQuQciJfwBQQAgJUMAAAAAYBsgJUMAAH9DXhtBAWpB/wFxQQh0IQkLQQAhBCAuQwAAAABfRQRAQf8BQwAAgD9DAAAAACAuEMYFICmTICqVIiUgJUMAAAAAXRsiJSAlQwAAgD9eG0MAAH5DlBC5ByIl/AFBACAlQwAAAABgGyAlQwAAf0NeG0EBakH/AXFBEHQhBAsgFiAcaiIHQQRqIA1B//8DcSAOQRB0cjYCACAHQQxqIAUgCkEIdEGAgIB4cXIgBCAJcmo2AgAgB0EIaiAPQf//A3EgCkEQdHJB////B3EgCkGA/v8HcUEIdkEYdHI2AgAgB0H/ASAjQQAgIhsgMEMAAH9DXhtBCHRB/wEgDEEAICQbIChDAAB/Q14bQRB0ckH/ASAm/AFBACAmQwAAAABgGyAmQwAAf0NeG3JB/wFDAAB/Q0MAAAAAICdDAAB/Q5QiJSAlQwAAAABdGyIlICVDAAB/Q14bELkHIiX8AUEAICVDAAAAAGAbICVDAAB/Q14bQRh0cjYCACAWQRBqIRYgF0EDayEXIAZBA2ohBiAQQQFrIRAgCyEEIBsgE0EMaiITRw0BDAoLCyAEQQFqIQQMAgsgBEECaiEEDAELIARBA2ohBAsgBCAVQaThwAAQjAcACyAGQQFqIQYMAQsgBkECaiEGCyAGIBJBxOHAABCMBwALIAAgASACIAMoAgAgEhCjAgsgCARAIAMoAgghBCAAIAEgAhDMAyACBEBDAAAAQEMAAIA/IAAtAJwBQQFxGyEnIAJBAnQhECAAKAJkIQUgACgCYCEGIAghCwNAIAxBA2ogBU8NBCALRQ0FIAZBA2pB/wFDAAB/Q0MAAAAAIAQgDGoqAgAgJ5VDAAB/Q5QiJSAlQwAAAABdGyIlICVDAAB/Q14bELkHIiX8AUEAICVDAAAAAGAbICVDAAB/Q14bOgAAIAZBEGohBiALQQFrIQsgECAMQQRqIgxHDQALCyAAQQE6ALgBCyADKAIUIggEQCAAIAEgAiADKAIQIAgQlgQLIAMoAhwiCARAIAAgASACIAMoAhggCBDJAwsgAygCJCIIRQ0AIAAgASACIAMoAiAgCBD7BAsgAEEBOgC4ASADKAI8IQUgAygCOCEQIAMoAjQhBCADKAIwIQsgAygCLCIIBEAgACABIAIgAygCKCAIEM4DCyAEBEAgACABIAIgCyAEEOIDCyAFBEAgACABIAIgECAFEOMDCyADKAJEIggEQCAAIAEgAiADKAJAIAgQtAQLIAMoAkwiCARAIAAgASACIAMoAkggCBC1BAsgEUEQaiQADwsgDCAMQQRqIAVBuNvAABDqBwALIAggCEGo28AAEIwHAAvXFAIWfwF7IwBB0ABrIgQkACAEQRBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAEIBj9CwMAIAEoAgQiCiABKAIIIglBAXQiBmohEyAKIQMCQAJAAkACQAJAAkACQAJAA0AgAyATRwRAIAMvAQAhAiADQQJqIQMgAkUNASACQRBPDQIgBCACQQF0aiICIAIvAQBBAWo7AQAgCEEBaiEIDAELCwJAAkACQAJAAkAgCA4CAwABCyAJBEBBACECIAohAwNAIAMvAQANAyACQQFqIQIgA0ECaiEDIAZBAmsiBg0ACwtB+O3EABDdCQALQRAhBSAEQTBqIBj9CwMAIAQgGP0LAyAgBC8BHiILBEBBDyEDDAYLIAQvARwEQEEPIQVBDiEDDAYLIAQvARoEQEEOIQVBDSEDDAYLIAQvARgEQEENIQVBDCEDDAYLIAQvARYEQEEMIQVBCyEDDAYLIAQvARQEQEELIQVBCiEDDAYLIAQvARIEQEEKIQVBCSEDDAYLIAQvARAEQEEJIQVBCCEDDAYLIAQvAQ4EQEEIIQVBByEDDAYLIAQvAQwEQEEHIQVBBiEDDAYLIAQvAQoEQEEGIQVBBSEDDAYLIAQvAQgEQEEFIQVBBCEDDAYLIAQvAQYEQEEEIQVBAyEDDAYLIAQvAQRFDQJBAyEFQQIhAwwFCyAAIAI7AQQgAEGAgICAeDYCAAwGCyAAQYGAgIB4NgIAIABBDjoABAwFCyAELwECIgJFDQFBASEDIAJBAXQhAkECIQUMAwsgAkEQQZjvxAAQjAcAC0GI7sQAEN0JAAsgBCAELwECQQF0IgI7ASQgBC8BBCACakEBdCECIANBAmoiB0EERgRAQQIhAwwBCyAEIAI7ASYgBC8BBiACakEBdCECIAdBBUYEQEEDIQMMAQsgBCACOwEoIAQvAQggAmpBAXQhAiAHQQZGBEBBBCEDDAELIAQgAjsBKiAELwEKIAJqQQF0IQIgB0EHRgRAQQUhAwwBCyAEIAI7ASwgBC8BDCACakEBdCECIAdBCEYEQEEGIQMMAQsgBCACOwEuIAQvAQ4gAmpBAXQhAiAHQQlGBEBBByEDDAELIAQgAjsBMCAELwEQIAJqQQF0IQIgB0EKRgRAQQghAwwBCyAEIAI7ATIgBC8BEiACakEBdCECIAdBC0YEQEEJIQMMAQsgBCACOwE0IAQvARQgAmpBAXQhAiAHQQxGBEBBCiEDDAELIAQgAjsBNiAELwEWIAJqQQF0IQIgB0ENRgRAQQshAwwBCyAEIAI7ATggBC8BGCACakEBdCECIAdBDkYEQEEMIQMMAQsgBCACOwE6IAQvARogAmpBAXQhAiAHQQ9GBEBBDSEDDAELIAQgAjsBPCAELwEcIAJqQQF0IQIgB0EQRgRAQQ4hAwwBCyAEIAI7AT4gAiALakEBdCECCwJ/AkACQCACQf//A3FBAiADdEH+/wNxRgRAIAVBCiADIANBCk8bIgxBAWoiA0kNASADIAVGDQJBACECQQAhCAJAIAUgA2siB0EITwRAIAQgA0EBdGohAyAHQRhxIgghAgNAIAP9AAEAIBj9jgEhGCADQRBqIQMgAkEIayICDQALIBggGCAY/Q0ICQoLDA0ODwABAAEAAQAB/Y4BIhggGCAY/Q0EBQYHAAEAAQABAAEAAQAB/Y4BIhggGCAY/Q0CAwABAAEAAQABAAEAAQAB/Y4B/RkAIQIgByAIRg0BCyAIQQF0IAxBAXRqIARqQQJqIQMgCCAMaiAFa0EBaiEFA0AgAy8BACACaiECIANBAmohAyAFQQFqIgUNAAsLIAJB//8DcSIDRQ0CIANBBHQQcSIIRQ0FIANBAXQMAwsgAEGBgICAeDYCACAAQQ46AAQMAwsgAyAFQRBBmO7EABDqBwALQQQhCEEACyEDIARBADYCTCAEIAg2AkggBCADNgJEQQQgDHQiDxBxIg1FDQEgDUEEayIWLQAAQQNxRSAPRXJFBEAgDUEAIA/8CwALQQEgDHQiDkEBayEUAkAgCUUNACAKQQJqIQIgBkECa0EBdkEBaiEXQQAhB0EAIQNBASEFIAohCUEAIQsCQANAAkAgCyEQIAkhBiACIQkgBSELAkAgBi8BACIGRQ0AAkAgBkEPTQRAIARBIGogBkEBdGoiAiACLwEAIhJBAWo7AQAgEkEIdCASQQh2ciICQQR2QY8ecSACQY8ecUEEdHIiAkECdkGz5gBxIAJBs+YAcUECdHIiAkEBdkHVqgFxIAJB1aoBcUEBdHIhAgJAAkACQCAGIAxLBEAgDiACQQAgBmtBD3F2IBRxIgJNDQEgDSACQQJ0aiICKAIAIgUNAiACIANBAWoiBzYCACAEKAJEIANGBH8gBEHEAGpByO7EABD5BSAEKAJIBSAICyADQQN0akECOwEAIAQgBzYCTCAHIQIMAwsgDiACQRAgBmt2IgVNDQUgBkEQdCAQciEQQQEgBnQiBkECdCERIA0gBUECdGohAgNAIAIgEDYCACACIBFqIQIgBSAGaiIFIA5JDQALDAULIAIgDkG47sQAEIwHAAsgAyECIAVBAWshAwsgBiAMayIRQf//A3EiBUEBayIGQQAgBSAGTxshBgNAIAYhBQJAAkACQCACIANLBEAgBCgCSCIIIANBA3RqIgYvAQBBAWsOAgoCAQsgAyACQejuxAAQjAcACyAGKAIEIRUMAQsgBkEAOwEAIAYgAiADayIVNgIEIAQoAkQiByACRgRAIARBxABqQfjuxAAQ+QUgBCgCSCEIIAQoAkQhBwsgCCACQQN0akECOwEAIAQgAkEBaiIGNgJMIAYgB0YEfyAEQcQAakGI78QAEPkFIAQoAkgFIAgLIAZBA3RqQQI7AQAgBCACQQJqIgc2AkwgByECCyAFQQFrIQYgEiARQQFrdkEBcSADaiAVaiEDIAUhESAFQf//A3ENAAsMAQsgBkEQQajuxAAQjAcACyADIAdPDQEgBCgCSCIIIANBA3RqIgMvAQBBAkkNAyADIBA7AQIgA0EBOwEAIAchAwsgC0EBaiEFIAlBAkEAIAkgE0cbaiECIAsgF0cNAQwDCwsgAyAHQdjuxAAQjAcACyAAQYGAgIB4NgIAIABBDjoABAJAIBYoAgAiAEF4cSIDQQRBCCAAQQNxIgAbIA9qTwRAIABBACADIA9BJ2pLGw0GIA0QogIgBCgCRCIARQ0DIAhBBGsoAgAiA0F4cSICIABBA3QiAEEEQQggA0EDcSIDG2pJDQUgA0EAIAIgAEEnaksbDQEgCBCiAgwDCwwECwwECyAAIAQpAkQ3AgAgACAUOwEYIAAgDjYCFCAAIA02AhAgACAONgIMIABBCGogBEHMAGooAgA2AgALAkAgASgCACIABEAgCkEEaygCACIBQXhxIgMgAEEBdCIAQQRBCCABQQNxIgEbakkNAyABQQAgAyAAQSdqSxsNASAKEKICCyAEQdAAaiQADwsMAgsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvZFQIPfwN+IwBBMGsiBSQAIAIoAgAiDyACKAIIIg1rIQYCQAJAIAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAqgBQQFrDgIBAgALAkACQEElEHEiAUUNACABQR1qQZ2dxwApAAA3AAAgAUEQakGQnccA/QAAAP0LAAAgAUGAnccA/QAAAP0LAABBDBBxIgJFDQAgAkElNgIIIAIgATYCBCACQSU2AgBBDBBxIgFFDQAgAUEoOgAIIAFB7IrBADYCBCABIAI2AgAgBSABrUIghkIDhDcCAAwBCwALDAILIAZBIE8EQCABKQO4ASESIA8hBCANIQYMCAsgBUEQav0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgBf0MAAAAAAAAAAAAAAAAAAAAAP0LAwACfyABKQO4ASISUARAQgAhEiANDAELIAEoAsABIggoAgAgCCkDCCITIAgoAgQiBK0iFCATIBRUG6dqIQcCQCAEQv////8PIBMgE0L/////D1obp2siA0EAIAMgBE0bIgRCICASIBJCIFobpyIDIAMgBEsbIgRBAUYEQCAFIActAAA6AAAMAQsgBEUNACAFIAcgBPwKAAALIAEgEiAErSIUfSISNwO4ASAIIBMgFHw3AwggDSAEIAZNDQAaIAIgDSAEQQFBARCkBSACKAIICyEIIAQEQCACKAIEIAhqIAUgBPwKAAALIAIgBCAIaiIGNgIIIARFBEBBACEDDAsLIAIoAgAhBAwHCyABKAKsASEHIA8hASANIQgCfwJAIAZBIE8NACAFIAcgAhCPBAJAQQACfyAFLQAAQQRGBEAgBSgCBAwBCyAFKQMAIhNCIIghFCATQv8Bg0IEUg0BIBSnC0UNAhogAigCACEBIAIoAgghCAwBCyATQoB+gyESDAYLQYDAACEJA0ACQCABIA9HIAEgCEdyRQRAIAUgByACEI8EAkACQAJ/IAUtAABBBEYEQCAFKAIEDAELIAUpAwAiE0IgiCEUIBNC/wGDQgRSDQEgFKcLDQEgAigCCCEIDAMLIBNCgH6DIRIMCQsgAigCCCEIIAIoAgAhAQsCQCABIAhHBEAgASAIayEMIAIoAgQhBAwBC0IBIRNCgMwAIRJCACEUIAFBIGoiBCABQQF0IgYgBCAGSxsiBkEASA0IIAUgAQR/IAUgATYCCCAFIAIoAgQ2AgBBAQVBAAs2AgQgBUEkakEBIAYgBRCFByAFKAIkQQFGDQggBSgCKCEEIAIgBjYCACACIAQ2AgQgBiABayEMIAYhAQsgBCAIaiEOIAkgDCAJIAxJGyIGIANrIgQEQCADIA5qQQAgBPwLAAsgBSAHIA4gBhDkAgJAIAUtAABBBEYNACAFKQMAIhJCIIgiFKchBEIAIRMCQAJAAkACQAJAIBKnQf8BcUEBaw4EAgEABAwLIAQtAAhBI0YNAgwKCyAELQAIQSNGDQFCAiETDAoLIBJCgP4Dg0KAxgBRDQBCASETDAkLAn8gEkL/AYNCA1EEQCAEKAIAIQsgBEEEaigCACIDKAIAIgoEQCALIAoRAwALIAMoAgQiAwRAIAtBBGsoAgAiCkF4cSIQQQRBCCAKQQNxIgobIANqTwRAIApBACAQIANBJ2pLGw0VQQAMAwsMEwtBAQwBC0ECCyEDA0ACQAJAAkACQAJAAkACQCADDgIAAQILIAsQogIMBAsgBEEEaygCACIDQXhxIgpBEEEUIANBA3EiAxtJDRYgA0EAIApBNE8bDRcgBBCiAgwBCyAFIAcgDiAGEOQCIAUtAABBBEYNBiAFKQMAIhJCIIgiFKchBAJAAkACQAJAIBKnQf8BcUEBaw4EAAECCRELIBJCgP4Dg0KAxgBRDQJCASETDBALIAQtAAhBI0YNAUICIRMMDwsgBC0ACEEjRw0NCyASQv8Bg0IDUQ0BC0ECIQMMAwsgBCgCACELIARBBGooAgAiAygCACIKBEAgCyAKEQMACyADKAIEIgMNAQtBASEDDAELIAtBBGsoAgAiCkF4cSIQQQRBCCAKQQNxIgobIANqSQ0RIApFIBAgA0Enak1yRQRADBMLQQAhAwwACwALIAIgCDYCCAwBCyAFKAIEIgQgBksEQEG0m8cAQTZB7JvHABDrBwALIAIgBCAIaiIINgIIIARFDQBBfyAJQQF0IAlBAEgbIAkgBCAGRhsgCSAJIAxNGyEJIAYgBGshAwwBCwsgCCANawshAyAHLQC0AUEBRw0JIAIoAggiASANSQ0BIAdBoAFqIAIoAgQgDWogASANaxDeASAHKAKwASAHKAKoAUYNCSAFEJMHCyAFLQAAIQMMBAsgDSABIAFB7KvHABDqBwALQgMhEwsgAiAINgIIIBJCgH6DIRILIAUgFD4CBCAFIBOnIgM6AAAgBSASpyIBQRh2OgADIAUgAUEIdjsAAQsgA0H/AXFBBEYEQCAFKAIEIQMMBAsgBSkDACEUDAELIAEoAsABIQlBgMAAIQsgBUEQaiEQQQAhCANAIAQgD0cgBCAGR3JFBEAgEP0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgBf0MAAAAAAAAAAAAAAAAAAAAAP0LAwACfyASUARAQQAhA0IAIRIgDwwBCyAJKQMIIhMgCSgCBCIErSIUIBMgFFQbpyIHIAkoAgBqIQYCQCAEQv////8PIBMgE0L/////D1obp2siA0EAIAMgBE0bIgNCICASIBJCIFobpyIOIAMgDkkbIgNBAUYEQCAFIAYtAAA6AAAMAQsgA0UNACAFIAYgA/wKAAALIAEgEiADrSIUfSISNwO4ASAJIBMgFHw3AwggDyAEIAdGDQAaIAIgDyADQQFBARCkBSACKAIICyEEIAMEQCACKAIEIARqIAUgA/wKAAALIAIgAyAEaiIGNgIIIANFDQMgAigCACEECwJAIAQgBkcEQCACKAIEIQMMAQtCgcwAIRQgBEEgaiIHIARBAXQiAyADIAdJGyIHQQBIDQIgBSAEBH8gBSAENgIIIAUgAigCBDYCAEEBBUEACzYCBCAFQSRqQQEgByAFEIUHIAUoAiRBAUYNAiAFKAIoIQMgAiAHNgIAIAIgAzYCBCAHIQQLIBJQBEAgAiAGNgIIDAMLIAMgBmohDiAJAn4gCyAEIAZrIgcgByALSxsiB60gElgEQCAJKAIEIgpC/////w8gCSkDCCIUIBRC/////w9aG6drIgNBACADIApNGyIDIAcgAyAHSRsiAwRAIA4gCSgCACAUIAqtIhMgEyAUVhunaiAD/AoAAAsgAyAMIAMgDEsbIQwgFCADrSITfAwBCyAJKAIEIgpC/////w8gCSkDCCIUIBRC/////w9aG6drIgNBACADIApNGyIDIBKnIhEgAyARSRsiAwRAIA4gCSgCACAUIAqtIhMgEyAUVhunaiAD/AoAAAsgAyAMIAMgDEsbIQwgFCADrSITfAs3AwggASASIBN9IhI3A7gBIAIgAyAGaiIGNgIIIANFDQJBf0F/IAsgCEEBakEAIAMgB0kbIghBAUobIAsgByAMRxsiC0EBdCALQQBIGyALIAcgC08bIAsgAyAHRhshCyAMIANrIQwMAAsACyAAIBQ3AgRBAQwCCyAGIA1rIQMLIAAgA603AwhBAAs2AgAgBUEwaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL6CcCMH8GfiMAQbAEayIEJAACf0EAIAMoAgwiC0UNABogAykDECADKQMYQbjTxwBBARCVBCE0IAMoAgQiBiA0p3EhBSA0QhmIQv8Ag0KBgoSIkKDAgAF+ITYgAygCACEHA0ACQCAFIAdqKQAAIjUgNoUiNEJ/hSA0QoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIjRQRQRAA0AgByA0eqdBA3YgBWogBnFBbGxqIghBDGsoAgBBAUYEQCAIQRBrKAIALQAAQfgARg0DCyA0QgF9IDSDIjRQRQ0ACwtBACA1IDVCAYaDQoCBgoSIkKDAgH+DUEUNAhogBSAKQQhqIgpqIAZxIQUMAQsLIAhBFGsLIQUgBEEANgKYAyAEQQE2AowDIARBzNPHADYCiAMgBEIENwKQAyAEQYgDahCVByEGAkACQAJAIAVFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQvwQMAQsgBiAGKAIAKAIAEQMAIAUtABAhFyAFKAIMIRgCf0EAIAtFDQAaIAMpAxAgAykDGEHU08cAQQEQlQQhNCADKAIEIgYgNKdxIQUgNEIZiEL/AINCgYKEiJCgwIABfiE2IAMoAgAhB0EAIQoDQAJAIAUgB2opAAAiNSA2hSI0Qn+FIDRCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiNFBFBEADQCAHIDR6p0EDdiAFaiAGcUFsbGoiCEEMaygCAEEBRgRAIAhBEGsoAgAtAABB+QBGDQMLIDRCAX0gNIMiNFBFDQALC0EAIDUgNUIBhoNCgIGChIiQoMCAf4NQRQ0CGiAFIApBCGoiCmogBnEhBQwBCwsgCEEUawshBSAEQQA2ApgDIARBATYCjAMgBEHo08cANgKIAyAEQgQ3ApADIARBiANqEJUHIQYgBUUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxC/BAwBCyAGIAYoAgAoAgARAwAgBS0AECEZIAUoAgwhGiADQfDTxwBBARC5BSEFIARBADYCmAMgBEEBNgKMAyAEQYTUxwA2AogDIARCBDcCkAMgBEGIA2oQlQchBiAFRQRAIABBgICAgHg2AtwEIAAgBjYCACADEL8EDAELIAYgBigCACgCABEDACAFLQAQIRsgBSgCDCEcIANBjNTHAEEHELkFIQUgBEEANgKYAyAEQQE2AowDIARBrNTHADYCiAMgBEIENwKQAyAEQYgDahCVByEGIAVFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQvwQMAQsgBiAGKAIAKAIAEQMAIAUtABAhHSAFKAIMIR4gA0G01McAQQcQuQUhBSAEQQA2ApgDIARBATYCjAMgBEHU1McANgKIAyAEQgQ3ApADIARBiANqEJUHIQYgBUUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxC/BAwBCyAGIAYoAgAoAgARAwAgBS0AECEfIAUoAgwhICADQdzUxwBBBxC5BSEFIARBADYCmAMgBEEBNgKMAyAEQfzUxwA2AogDIARCBDcCkAMgBEGIA2oQlQchBiAFRQRAIABBgICAgHg2AtwEIAAgBjYCACADEL8EDAELIAYgBigCACgCABEDACAFLQAQISEgBSgCDCEiIANBhNXHAEEFELkFIQUgBEEANgKYAyAEQQE2AowDIARBoNXHADYCiAMgBEIENwKQAyAEQYgDahCVByEGIAVFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQvwQMAQsgBiAGKAIAKAIAEQMAIAUtABAhIyAFKAIMISQgA0Go1ccAQQUQuQUhBSAEQQA2ApgDIARBATYCjAMgBEHE1ccANgKIAyAEQgQ3ApADIARBiANqEJUHIQYgBUUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxC/BAwBCyAGIAYoAgAoAgARAwAgBS0AECElIAUoAgwhJiADQczVxwBBBRC5BSEFIARBADYCmAMgBEEBNgKMAyAEQejVxwA2AogDIARCBDcCkAMgBEGIA2oQlQchBiAFRQRAIABBgICAgHg2AtwEIAAgBjYCACADEL8EDAELIAYgBigCACgCABEDACAFLQAQIScgBSgCDCEoIANB8NXHAEEFELkFIQUgBEEANgKYAyAEQQE2AowDIARBjNbHADYCiAMgBEIENwKQAyAEQYgDahCVByEGIAVFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQvwQMAQsgBiAGKAIAKAIAEQMAIAUtABAhKSAFKAIMISogA0GU1scAQQcQuQUhBSAEQQA2ApgDIARBATYCjAMgBEG01scANgKIAyAEQgQ3ApADIARBiANqEJUHIQYgBUUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxC/BAwBCyAGIAYoAgAoAgARAwAgBS0AECErIAUoAgwhLCADQbzWxwBBBhC5BSEFIARBADYCmAMgBEEBNgKMAyAEQdzWxwA2AogDIARCBDcCkAMgBEGIA2oQlQchBiAFRQRAIABBgICAgHg2AtwEIAAgBjYCACADEL8EDAELIAYgBigCACgCABEDACAFLQAQIS0gBSgCDCEuIANB5NbHAEEGELkFIQUgBEEANgKYAyAEQQE2AowDIARBhNfHADYCiAMgBEIENwKQAyAEQYgDahCVByEGIAVFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQvwQMAQsgBiAGKAIAKAIAEQMAIAUtABAhLyAFKAIMITAgA0GM18cAQQYQuQUhBSAEQQA2ApgDIARBATYCjAMgBEGs18cANgKIAyAEQgQ3ApADIARBiANqEJUHIQYgBUUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxC/BAwBCyAGIAYoAgAoAgARAwAgBEEEaq1CgICAgPABhCE0IAUtABAhMSAFKAIMITJBACEGA0ACQCAEIAY2AgQgBEEBNgKMAyAEQYjQxwA2AogDIARCATcClAMgBCA0NwMYIAQgBEEYajYCkAMgBEEIaiAEQYgDahCxBiADIAQoAgwiCyAEKAIQELkFIAQoAgghBUUNACAFBEAgCyAFQQEQogcLIAQoAgRBAWohBgwBCwsgBQRAIAsgBUEBEKIHC0EBIQZBCCEKQQghE0EIIRICQAJAAkACQAJAAkAgBCgCBCIFDhkFAQEBAQEBAQEEAQEBAQEBAQEBAQEBAQECAAsgBUEtRg0CCyAEQQE2AowDIARB3NfHADYCiAMgBEIBNwKUAyAEIDQ3AwggBCAEQQhqNgKQAyAEQSBqIgEgBEGIA2oQsQYgARCQByEBIABBgICAgHg2AtwEIAAgATYCACADEL8EDAQLQQEhDkECIQYMAQtBASEOQQMhBkEBIRELIARBiANqIQUjAEGAAWsiByQAIAdB5ABqrUKAgICAEIQhNQJAAkAgAygCDARAIAMoAgAhDyADKAIEIQ0gAykDGCE3IAMpAxAhOCAGQQJ0QYiSyQBqKAIAIRVBACEIA0AgByA1NwNYIAcgFSAIIAhB/wFxQQNuIglBA2xrQf8BcWwgCWo2AmQgB0IBNwJ0IAdBATYCbCAHQYjQxwA2AmggByAHQdgAajYCcCAHQcwAaiAHQegAahDsAyANIDggNyAHKAJQIhIgBygCVCIUEJUEIjSncSEJIDRCGYhC/wCDQoGChIiQoMCAAX4hOUEAIRADQAJAIAkgD2opAAAiNiA5hSI0Qn+FIDRCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiNFBFBEADQCAPIDR6p0EDdiAJaiANcUFsbGoiDEEMaygCACAURgRAIBIgDEEQaygCACAUENsHRQ0DCyA0QgF9IDSDIjRQRQ0ACwsgNiA2QgGGg0KAgYKEiJCgwIB/g1BFDQQgCSAQQQhqIhBqIA1xIQkMAQsLIAxBBGstAAAhFCAMQQhrKAIAIQwgBygCTCIJBEAgEkEEaygCACIQQXhxIhZBBEEIIBBBA3EiEBsgCWpJDQcgEEEAIBYgCUEnaksbDQggEhCiAgsgB0EEaiIJIAhBA3RqIhIgFDoABCASIAw2AgAgCEEBaiIIQQlHDQALIAUgCUHIAPwKAAAgB0GAAWokAAwCCyAHIDU3A1ggB0EANgJkIAdCATcCdCAHQQE2AmwgB0GI0McANgJoIAcgB0HYAGo2AnAgB0HMAGogB0HoAGoQ7AMLQfTXxwAQ3QkACyAELQCMAyESIAQoAogDIRQgBEEvaiAEQY0DaiIQQcMA/AoAAAJAIA4EQCMAQbABayIHJAAgB0GUAWqtQoCAgIAQhCE1AkACQCADKAIMBEAgAygCACEMIAMoAgQhCSADKQMYITcgAykDECE4IAZBAnRBlJLJAGooAgAhFUEAIQgDQCAHIDU3A4gBIAcgCEH/AXFBA24iCyAVIAggC0EDbGtB/wFxbGpBA2o2ApQBIAdCATcCpAEgB0EBNgKcASAHQYjQxwA2ApgBIAcgB0GIAWo2AqABIAdB/ABqIAdBmAFqEOwDIAkgOCA3IAcoAoABIg4gBygChAEiExCVBCI0p3EhCyA0QhmIQv8Ag0KBgoSIkKDAgAF+ITlBACEPA0ACQCALIAxqKQAAIjYgOYUiNEJ/hSA0QoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIjRQRQRAA0AgDCA0eqdBA3YgC2ogCXFBbGxqIg1BDGsoAgAgE0YEQCAOIA1BEGsoAgAgExDbB0UNAwsgNEIBfSA0gyI0UEUNAAsLIDYgNkIBhoNCgIGChIiQoMCAf4NQRQ0EIAsgD0EIaiIPaiAJcSELDAELCyANQQRrLQAAIRMgDUEIaygCACENIAcoAnwiCwRAIA5BBGsoAgAiD0F4cSIWQQRBCCAPQQNxIg8bIAtqSQ0JIA9BACAWIAtBJ2pLGw0KIA4QogILIAdBBGoiCyAIQQN0aiIOIBM6AAQgDiANNgIAIAhBAWoiCEEPRw0ACyAFIAtB+AD8CgAAIAdBsAFqJAAMAgsgByA1NwOIASAHQQM2ApQBIAdCATcCpAEgB0EBNgKcASAHQYjQxwA2ApgBIAcgB0GIAWo2AqABIAdB/ABqIAdBmAFqEOwDC0GE2McAEN0JAAsgBC0AjAMhEyAEKAKIAyELIARB8gBqIBBB8wD8CgAAIBENASAGIQUMAgsgEQ0AIAYhBQwBCyAEQYgDaiEPIwBB4AFrIgUkACAFQcQBaq1CgICAgBCEITUCQAJAIAMoAgwEQCADKAIAIQ4gAygCBCEIIAMpAxghNyADKQMQITggBkECdEGgkskAaigCACEQQQAhBwNAIAUgNTcDuAEgBSAHQf8BcUEDbiIKIBAgByAKQQNsa0H/AXFsakEIajYCxAEgBUIBNwLUASAFQQE2AswBIAVBiNDHADYCyAEgBSAFQbgBajYC0AEgBUGsAWogBUHIAWoQ7AMgCCA4IDcgBSgCsAEiCSAFKAK0ASINEJUEIjSncSEKIDRCGYhC/wCDQoGChIiQoMCAAX4hOUEAIQwDQAJAIAogDmopAAAiNiA5hSI0Qn+FIDRCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiNFBFBEADQCAOIDR6p0EDdiAKaiAIcUFsbGoiEUEMaygCACANRgRAIAkgEUEQaygCACANENsHRQ0DCyA0QgF9IDSDIjRQRQ0ACwsgNiA2QgGGg0KAgYKEiJCgwIB/g1BFDQQgCiAMQQhqIgxqIAhxIQoMAQsLIBFBBGstAAAhDSARQQhrKAIAIREgBSgCrAEiCgRAIAlBBGsoAgAiDEF4cSIVQQRBCCAMQQNxIgwbIApqSQ0HIAxBACAVIApBJ2pLGw0IIAkQogILIAVBBGoiCiAHQQN0aiIJIA06AAQgCSARNgIAIAdBAWoiB0EVRw0ACyAPIApBqAH8CgAAIAVB4AFqJAAMAgsgBSA1NwO4ASAFQQg2AsQBIAVCATcC1AEgBUEBNgLMASAFQYjQxwA2AsgBIAUgBUG4AWo2AtABIAVBrAFqIAVByAFqEOwDC0Hk18cAEN0JAAsgBC0AjAMhCiAEKAKIAyEzIARB5QFqIARBjQNqQaMB/AoAACAGIQULIAAgCjoARCAAIDM2AkAgACApOgA8IAAgKjYCOCAAICc6ADQgACAoNgIwIAAgJToALCAAICY2AiggACAjOgAkIAAgJDYCICAAIAP9AAMA/QsDACAAQRBqIANBEGr9AAMA/QsDACAAQcUAaiAEQeUBakGjAfwKAAAgACATOgDsASAAIAs2AugBIABB7QFqIARB8gBqQfMA/AoAACAAIBI6AOQCIAAgFDYC4AIgAEHlAmogBEEvakHDAPwKAAAgAEIENwPgBCAAQgA3A9gEIABCgICAgMAANwPQBCAAQgQ3A8gEIABCADcDwAQgAEKAgICAwAA3A7gEIABCBDcDsAQgAEIANwOoBCAAQoCAgIDAADcDoAQgAEIENwOYBCAAQgA3A5AEIABCgICAgMAANwOIBCAAIAU2AoQEIABBADYCgAQgACACNgL8AyAAIAE2AvgDIAAgKzoA9AMgACAsNgLwAyAAIDE6AOwDIAAgMjYC6AMgACAvOgDkAyAAIDA2AuADIAAgLToA3AMgACAuNgLYAyAAICE6ANQDIAAgIjYC0AMgACAfOgDMAyAAICA2AsgDIAAgHToAxAMgACAeNgLAAyAAIBs6ALwDIAAgHDYCuAMgACAZOgC0AyAAIBo2ArADIAAgFzoArAMgACAYNgKoAwsgBEGwBGokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC5wVBA5/An0BfAJ+IwBBIGsiAiQAAkACQAJAAkACQAJ/AkACQCAAAn8CQAJAAkACQAJAQRUgASgCACIDQYCAgIB4cyADQQBOG0EUaw4CAAEDCwJ9AkACQAJAAn0CQAJAIAEoAgwiAwRAIAJBBGogASgCCCIBEKAEIAIoAgghBiACKAIEIgdBgICAgHhGBEAgBiEBDBILIAIoAhQhCiACKAIQIQkgA0EBRg0EIAIoAhghCyACKAIMIQwCQAJAAkACQAJAAkACQAJAAkBBFSABKAIQIgVBgICAgHhzIAVBAE4bQQFrDgoLAAECAwQFBgcICgsgAS8BFLMMCwsgASgCFLMMCgsgASkDGLUMCQsgASwAFLIMCAsgAS4BFLIMBwsgASgCFLIMBgsgASkDGLQMBQsgASoCFAwECyABKwMYIhK2QwAAgD9DAACAvyASvUIAWRuYDAMLQQBB4P7AAEGA/cAAENsGIQEMEAsgAUEQaiACQR9qQdjnwAAQlQghAQwOCyABLQAUswshECADQQJGDQUCQAJAAkACQAJAAkACQAJAAkBBFSABKAIgIgVBgICAgHhzIAVBAE4bQQFrDgoLAAECAwQFBgcICgsgAS8BJLMMCwsgASgCJLMMCgsgASkDKLUMCQsgASwAJLIMCAsgAS4BJLIMBwsgASgCJLIMBgsgASkDKLQMBQsgASoCJAwECyABKwMoIhK2QwAAgD9DAACAvyASvUIAWRuYDAMLQQFB4P7AAEGA/cAAENsGIQEMCwsgAUEgaiACQR9qQdjnwAAQlQghAQwKCyABLQAkswshEQJAIANBA0cEQCACQQRqIAFBMGoQnwUgAigCBEUNASACKAIIIQEMCgtBA0Hg/sAAQYD9wAAQ2wYhAQwJCyADQQRGBEAgAigCCCEDIAIoAgwMBQsgAkEENgIEIANB/P///wBqQf////8AcUEEaiACQQRqQeiVwQAQ2wYhASAHBEAgBiAHQQEQogcLIAlFDQkgCiAJQQEQogcMCQsgASgCCCIDRQ0FIANBBXQhDiABKAIEIQ9BACEDQYCAgIB4IQcDQAJAAkACQAJAAkACQAJAAkBBFSADIA9qIgEoAgAiBEGAgICAeHMgBEEAThtBAWsODwEAAAIAAAAAAAAAAwQFBgALIAEgAkEfakHU5MAAEJUIIQQgAkEBOgAEIAIgBDYCCAwGCyACQQA6AAQgAkEEIAFBBGotAAAiBCAEQQRPGzoABQwFCyACQQA6AAQgAkIEIAFBCGopAwAiFCAUQgRaGzwABQwECyABQQhqKAIAIQQCfwJAAkACQAJAIAFBDGooAgBBBGsOAgEAAwsgBEGQ/cAAQQUQ2wcNAUEADAMLQQEgBCgAAEHt0rmbB0YNAhogBCgAAEHtwuGbB0cNAUECDAILIARBnf3AAEEFENsHDQBBAwwBC0EECyEEIAJBADoABCACIAQ6AAUMAwsgAUEEaigCACEEAn8CQAJAAkACQCABQQhqKAIAQQRrDgIBAAMLIARBkP3AAEEFENsHDQFBAAwDC0EBIAQoAABB7dK5mwdGDQIaIAQoAABB7cLhmwdHDQFBAgwCCyAEQZ39wABBBRDbBw0AQQMMAQtBBAshBCACQQA6AAQgAiAEOgAFDAILIAJBBGogAUEIaigCACABQQxqKAIAENkFDAELIAJBBGogAUEEaigCACABQQhqKAIAENkFCyACLQAEQQFGBEAgAigCCCEBQQEMCAsgAUEQaiEEAkACQAJAAkACQAJAAkACQCACLQAFDgQAAQIDBwsgB0GAgICAeEcEQEGQ/cAAQQUQnwchAUEBDA8LIAJBBGogBBCgBCACKAIIIQYgAigCBCIHQYCAgIB4RgRAIAYhAQwRCyACKAIYIQsgAigCFCEKIAIoAhAhCSACKAIMIQwMBgsgBQ0CAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAQoAgAiBUGAgICAeHMgBUEAThtBAWsOCgABAgMEBQYHCAkKCyABQRRqLQAAsyEQQQEhBQwPCyABQRRqLwEAsyEQQQEhBQwOCyABQRRqKAIAsyEQQQEhBQwNCyABQRhqKQMAtSEQQQEhBQwMCyABQRRqLAAAsiEQQQEhBQwLCyABQRRqLgEAsiEQQQEhBQwKCyABQRRqKAIAsiEQQQEhBQwJCyABQRhqKQMAtCEQQQEhBQwICyABQRRqKgIAIRBBASEFDAcLIAFBGGorAwAiErZDAACAP0MAAIC/IBK9QgBZG5ghEEEBIQUMBgsgBCACQR9qQdjnwAAQlQghAUEBDA0LIAgNAwJAAkACQAJAAkACQAJAAkACQAJAAkBBFSAEKAIAIghBgICAgHhzIAhBAE4bQQFrDgoAAQIDBAUGBwgJCgsgAUEUai0AALMhEUEBIQgMDgsgAUEUai8BALMhEUEBIQgMDQsgAUEUaigCALMhEUEBIQgMDAsgAUEYaikDALUhEUEBIQgMCwsgAUEUaiwAALIhEUEBIQgMCgsgAUEUai4BALIhEUEBIQgMCQsgAUEUaigCALIhEUEBIQgMCAsgAUEYaikDALQhEUEBIQgMBwsgAUEUaioCACERQQEhCAwGCyABQRhqKwMAIhK2QwAAgD9DAACAvyASvUIAWRuYIRFBASEIDAULIAQgAkEfakHY58AAEJUIIQFBAQwMCyANDQEgAkEEaiAEEJ8FIAIoAgghAUEBIAIoAgQNCxogAa0gAjUCDEIghoQhE0EBIQ0MAwtBlf3AAEEEEJ8HIQFBAQwKC0Gd/cAAQQUQnwchAUEBDAkLQZn9wABBBBCfByEBQQEMCAsgA0EgaiIDIA5HDQALDAILQQJB4P7AAEGA/cAAENsGIQEMBgsgASACQR9qQcTiwAAQlQghAQwGCyAHQYCAgIB4Rg0CIAIgCzYCGCACIAo2AhQgAiAJNgIQIAIgDDYCDCACIAY2AgggAiAHNgIEIAVFBEBBlf3AAEEEEJwHIQEMAgsgCEUEQEGZ/cAAQQQQnAchAQwCCyANRQRAQZ39wABBBRCcByEBDAILIBOnIQMgE0IgiKcLNgIkIAAgAzYCICAAIBE4AhwgACAQOAIYIAAgCzYCFCAAIAo2AhAgACAJNgIMIAAgDDYCCCAAIAY2AgQgACAHNgIADAULIAJBBGoQ5gVBAAwBC0GAgICAeCEHQZD9wABBBRCcByEBQQELRSAHQYCAgIB4RnINAQJAIAcEQCAGQQRrKAIAIgNBeHEiBUEEQQggA0EDcSIDGyAHakkNBSADQQAgBSAHQSdqSxsNBiAGEKICCyAJRQ0CIApBBGsoAgAiBkF4cSIDQQRBCCAGQQNxIgYbIAlqSQ0EIAZBACADIAlBJ2pLGw0AIAoQogIMAgsMBAsgBwRAIAZBBGsoAgAiA0F4cSIFQQRBCCADQQNxIgMbIAdqSQ0DIANBACAFIAdBJ2pLGw0EIAYQogILIAlFDQAgCkEEaygCACIGQXhxIgNBBEEIIAZBA3EiBhsgCWpJDQIgBkEAIAMgCUEnaksbDQMgChCiAgsgAEGBgICAeDYCACAAIAE2AgQLIAJBIGokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC6wUAwZ+EH8BeyMAQSBrIhAkAAJAAkACQAJAAkACQAJAAkACQCAAAn8CQAJAAkAgACgCDCISQQFqIggEQCAAKAIEIg8gD0EBaiINQQN2IglBB2wiFCAPQQhJGyIKQQF2IAhJBEAgCkEBaiIJIAggCCAJSRsiCEEPSQ0CIAhB/////wFNBEBBfyAIQQN0QQduQQFrZ3YiCEH+////AUsNCCAIQQFqIQgMBwsMDgtBACANRQ0EGiAAKAIAIQBBACEIIAkgDUEHcUEAR2oiCkEBTQ0CIAAhCCAKQf7///8DcSILIQkDQCAIIAj9AAMAIhj9TUEH/c0B/QwBAQEBAQEBAQEBAQEBAQEB/U4gGP0Mf39/f39/f39/f39/f39/f/1Q/c4B/QsDACAIQRBqIQggCUECayIJDQALIAogC0YNAyALQQN0IQggCkEBcSEKDAILDAwLQQQgCEEIcUEIaiAIQQRJGyEIDAMLIAAgCGohCANAIAggCCkDACICQn+FQgeIQoGChIiQoMCAAYMgAkL//v379+/fv/8AhHw3AwAgCEEIaiEIIApBAWsiCg0ACwsCQCANQQhPBEAgACANaiAAKQAANwAADAELIA1FDQAgAEEIaiAAIA38CgAACyABKQMAIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQhBSAAQQhqIQsgAEEIayEVIAJCf4UhBiABKQMIIQRBASEBIAAhCUEAIQgDQCAIIQogASEIAkAgACAKaiITLQAAQYABRw0AIBUgCkEDdGshFiAAIApBf3NBA3RqIRcCQANAIA8gBCAWNQIAhSIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEQtKBqpur+oLXp39+IgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQgA0LYotHvwqnlvy1+hSICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEIAZ+IgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQgAiAFfoUgAomnIhFxIgwhASAAIAxqKQAAQoCBgoSIkKDAgH+DIgJQBEBBCCEOA0AgASAOaiEBIA5BCGohDiAAIAEgD3EiAWopAABCgIGChIiQoMCAf4MiAlANAAsLIAAgAnqnQQN2IAFqIA9xIgFqLAAAQQBOBEAgACkDAEKAgYKEiJCgwIB/g3qnQQN2IQELIAEgDGsgCiAMa3MgD3FBCE8EQCAAIAFqIgwtAAAgDCARQRl2Igw6AAAgCyABQQhrIA9xaiAMOgAAQf8BRg0CIAAgAUEDdGshDEF4IQEDQCABIAlqIg4oAAAhESAOIAEgDGoiDigAADYAACAOIBE2AAAgAUEEaiIBDQALDAELCyATIBFBGXYiAToAACALIA8gCkEIa3FqIAE6AAAMAQsgE0H/AToAACALIA8gCkEIa3FqQf8BOgAAIAAgAUF/c0EDdGogFykAADcAAAsgCUEIayEJIAggCCANSSIKaiEBIAoNAAsgDyAUIA9BCEkbCyASazYCCAwFCyAIQQhqIgkgCEEDdCINaiIKIAlJIApB+P///wdLcg0AIAoQcSIKRQ0BIAogDWohCyAJBEAgC0H/ASAJ/AsACyAIQQFrIgwgCEEDdkEHbCAMQQhJGyETIAAoAgAhDSASDQJBACESDAMLIBBBADYCGCAQQQE2AgwgEEHEtcQANgIIIBBCBDcCECAQQQhqQZi1xAAQjQgLAAsgC0EIaiERIAEpAwAiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhCEGIA1BCGshFCACQn+FIQcgDSkDAEJ/hUKAgYKEiJCgwIB/gyEEIAEpAwghBUEAIQggEiEBIA0hCgNAIARQBEADQCAIQQhqIQggCkEIaiIKKQMAQoCBgoSIkKDAgH+DIgJCgIGChIiQoMCAf1ENAAsgAkKAgYKEiJCgwIB/hSEECyALIAwgBSAUIAR6p0EDdiAIaiIVQQN0azUCAIUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCAFQgiIQoCAgPgPgyAFQhiIQoCA/AeDhCAFQiiIQoD+A4MgBUI4iISEhELSgaqbq/qC16d/fiICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEIANC2KLR78Kp5b8tfoUiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhCAHfiIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISEIAIgBn6FIAKJpyIWcSIJaikAAEKAgYKEiJCgwIB/gyICUARAQQghDgNAIAkgDmohCSAOQQhqIQ4gCyAJIAxxIglqKQAAQoCBgoSIkKDAgH+DIgJQDQALCyAEQgF9IASDIQQgCyACeqdBA3YgCWogDHEiCWosAABBAE4EQCALKQMAQoCBgoSIkKDAgH+DeqdBA3YhCQsgCSALaiAWQRl2Ig46AAAgESAJQQhrIAxxaiAOOgAAIAsgCUF/c0EDdGogDSAVQX9zQQN0aikAADcDACABQQFrIgENAAsLIAAgDDYCBCAAIAs2AgAgACATIBJrNgIIIA9FDQAgDyAPQQN0QQ9qQXhxIgFqQQlqIgBFDQAgDSABayIBQQRrKAIAIghBeHEiCUEEQQggCEEDcSIIGyAAakkNASAIQQAgCSAAQSdqSxsNAiABEKICCyAQQSBqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgEEEANgIYIBBBATYCDCAQQcS1xAA2AgggEEIENwIQIBBBCGpBmLXEABCNCAALvw4BB38CQAJAIAAoAuACIgEEQCAAKALkAiIEQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKALwAiIBKAL4BiICQQRrKAIAIgRBeHFBhIABQYiAASAEQQNxIgMbSQ0AIANBACAEQaiAAU8bDQEgAhCiAiABKALgBiIEBEAgASgC5AYiAkEEaygCACIDQXhxIgYgBEEBdCIEQQRBCCADQQNxIgMbakkNASADQQAgBiAEQSdqSxsNAiACEKICCyABKAL8BiICQQRrKAIAIgRBeHFBhBBBiBAgBEEDcSIDG0kNACADQQAgBEGoEE8bDQEgAhCiAiABKALsBiIEBEAgASgC8AYiAkEEaygCACIDQXhxIgYgBEEBdCIEQQRBCCADQQNxIgMbakkNASADQQAgBiAEQSdqSxsNAiACEKICCyABQQRrKAIAIgRBeHFBrAdBsAcgBEEDcSICG0kNACACQQAgBEHQB08bDQEgARCiAgJAIAAoAghBAkYNACAAKALIASIBQYKAgIB4SCABRXJFBEAgACgCzAEiBEEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAWpJDQIgAkEAIAMgAUEnaksbDQMgBBCiAgsgACgC1AEiAUGCgICAeEggAUVyRQRAIAAoAtgBIgRBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAFqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoAuABIgFBgoCAgHhIIAFFckUEQCAAKALkASIEQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNAiACQQAgAyABQSdqSxsNAyAEEKICCyAAKALsASIBQYKAgIB4SCABRXJFBEAgACgC8AEiBEEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAWpJDQIgAkEAIAMgAUEnaksbDQMgBBCiAgsgACgC+AEiAUGCgICAeEggAUVyRQRAIAAoAvwBIgRBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAFqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoAoQCIgFBgoCAgHhIIAFFckUEQCAAKAKIAiIEQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNAiACQQAgAyABQSdqSxsNAyAEEKICCyAAKAKoASEEIAAoAqwBIgIEQCAEIQEDQCABKAIAIgMEQCABQQRqKAIAIgZBBGsoAgAiBUF4cSIHQQRBCCAFQQNxIgUbIANqSQ0EIAVBACAHIANBJ2pLGw0FIAYQogILIAFBDGooAgAiAwRAIAFBEGooAgAiBkEEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAcgA0EnaksbDQUgBhCiAgsgAUEYaiEBIAJBAWsiAg0ACwsgACgCpAEiAQRAIARBBGsoAgAiAkF4cSIDIAFBGGwiAUEEQQggAkEDcSICG2pJDQIgAkEAIAMgAUEnaksbDQMgBBCiAgsgACgCtAEhBCAAKAK4ASICBEAgBEEUaiEBA0AgAUEEaygCACIDBEAgASgCACIGQQRrKAIAIgVBeHEiB0EEQQggBUEDcSIFGyADakkNBCAFQQAgByADQSdqSxsNBSAGEKICCyABQRBrKAIAIgMEQCABQQxrKAIAIgZBBGsoAgAiBUF4cSIHQQRBCCAFQQNxIgUbIANqSQ0EIAVBACAHIANBJ2pLGw0FIAYQogILIAFBHGohASACQQFrIgINAAsLIAAoArABIgEEQCAEQQRrKAIAIgJBeHEiAyABQRxsIgFBBEEIIAJBA3EiAhtqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoAsABIQQgACgCxAEiAgRAIAQhAQNAIAFBEGooAgAiAwRAIAFBFGooAgAiBkEEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAcgA0EnaksbDQUgBhCiAgsgAUEcaigCACIDBEAgAUEgaigCACIGQQRrKAIAIgVBeHEiB0EEQQggBUEDcSIFGyADakkNBCAFQQAgByADQSdqSxsNBSAGEKICCyABQShqKAIAIgMEQCABQSxqKAIAIgZBBGsoAgAiBUF4cSIHQQRBCCAFQQNxIgUbIANqSQ0EIAVBACAHIANBJ2pLGw0FIAYQogILIAFBBGooAgAiAwRAIAFBCGooAgAiBkEEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAcgA0EnaksbDQUgBhCiAgsgAUE4aiEBIAJBAWsiAg0ACwsgACgCvAEiAEUNACAEQQRrKAIAIgFBeHEiAiAAQThsIgBBBEEIIAFBA3EiARtqSQ0BIAFBACACIABBJ2pLGw0CIAQQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALkhMDDn8BewF+IwBBEGsiDCQAAkACQAJAAkACQCAAKAIIIglFBEBBACEJQQEhCEEBIQoMAQsgACgCBCEEIAkQcSIKRQ0CIAQhCANAQQAhBQJAAn8gCEEUai8BACICQf//AXFFBEAgAkEQdAwBCyACQf8HcSEBIAJBgIACcSEGIAJBgPgBcSICQYD4AUYEQCAGQRB0IgJBgICA/AdyIAFFDQEaIAIgAUENdHJBgICA/gdyDAELIAZBEHQiBiACQQ10QYCAgPwAcSABQQ10ckGAgIDAA2pyIAINABogBkGAgIDYA3IgAWdBEGsiAkEXdGsgASACQf//A3FBCGp0Qf///wNxcgu+QwAAAABeRQ0AIAhBHGovAQAhBUEAIQICf0EAIAhBHmovAQAiAUH//wFxIgZBgPgBSw0AGkEAIAVB//8BcSIHQYD4AUsNABogAcFBAE4EQCABIAVLIAXBQQBODQEaIAEgB3JBAEcMAQsgBcFBAEggASAFSXELIQcgASAFIAcbIAUgBkGB+AFJGyEBAkAgCEEgai8BACIGQf//AXEiB0GA+AFLDQAgAUH//wFxIgVBgPgBSw0AIAbBQQBOBEAgAcFBAE4EQCAGIAFB//8DcUshAgwCCyAFIAZyQQBHIQIMAQsgAcFBAEggBiABQf//A3FJcSECC0EAIQUCfyAGIAEgAhsgASAHQYH4AUkbIgJB//8BcUUEQCACQRB0DAELIAJB/wdxIQEgAkGAgAJxIQYgAkGA+AFxIgJBgPgBRgRAIAZBEHQiAkGAgID8B3IgAUUNARogAiABQQ10ckGAgID+B3IMAQsgBkEQdCIGIAJBDXRBgICA/ABxIAFBDXRyQYCAgMADanIgAg0AGiAGQYCAgNgDciABZ0EQayICQRd0ayABIAJB//8DcUEIanRB////A3FyC74QiQRDAAAAAF5FDQAgDCAIKQIAIhAQywIgDP0ABAD9DP///3////9/////f////3/9Tv0MAACAfwAAgH8AAIB/AACAf/05/aQBQQ9HDQAgDCAQEMsCIAz9AAQAIg8gD/3mASIPIA8gD/0NCAkKCwwNDg8AAQIDAAECA/3kASIPIA8gD/0NBAUGBwABAgMAAQIDAAECA/3kAf3jAf0fAEMAAAAAXiEFCyADIApqIAU6AAAgCEEkaiEIIAkgA0EBaiIDRw0ACyAEQSRqIQMgCSAKaiEIQQAhASAKIQUCQAJAA0AgBSAIRg0EIAFBAWohBCAFLQAAQQFHDQEgBUEBaiEFIANBJGohAyAEIgEgCUcNAAtBACECDAELIAQgCUYEQEEBIQIMAQsgASAJayEBQQEhBEEBIQIDQAJAAkAgASAEagRAIAQgBWotAAANASACQQFqIQIMAgtB9KHBABDdCQALIAMgAkFcbGoiBiAD/QACAP0LAgAgBkEgaiADQSBqKAIANgIAIAZBEGogA0EQav0AAgD9CwIACyADQSRqIQMgASAEQQFqIgRqDQALCyAAIAkgAms2AggLIAAoAhQiBgRAQQAhBCAAKAIQIgEhAyAKIQUCQANAAkAgBSAIRwRAIAUtAAANAQJAIAEgBEEYbGoiASgCFCICQQVPBEAgASgCCCIBQQRrKAIAIgdBeHEiCyACQQJ0IgJBBEEIIAdBA3EiBxtqSQ0BIAdBACALIAJBJ2pLGw0KIAEQogILQQEhAiAEQQFqIAZGDQQgBCAGayEHQQEhAQNAIAMhBAJAAkAgCCABIAVqIgtHBEAgA0EYaiEDIAstAAANASACQQFqIQIgBEEsaigCACILQQVJDQIgBEEgaigCACIEQQRrKAIAIg1BeHEiDiALQQJ0IgtBBEEIIA1BA3EiDRtqSQ0MIA1BACAOIAtBJ2pLGw0NIAQQogIMAgtBpKLBABDdCQALIAQgAkFobGoiBEEoaiADQRBqKQIANwIAIARBGGogA/0AAgD9CwIACyAHIAFBAWoiAWoNAAsMBAsMBwtBpKLBABDdCQALIAVBAWohBSADQRhqIQMgBEEBaiIEIAZHDQALQQAhAgsgACAGIAJrNgIUCwJAIAAoAiAiAgRAQQAhBEESIQEgCiEFAkACQANAIAUgCEYNBCAEQQFqIQMgBS0AAEEBRw0BIAVBAWohBSABQRJqIQEgAyIEIAJHDQALQQAhAQwBCyACIANGBEBBASEBDAELIAQgAmshBiAAKAIcIAFqIQNBASEEQQEhAQNAAkACQCAIIAQgBWoiB0cEQCAHLQAADQEgAUEBaiEBDAILQYSiwQAQ3QkACyADIAFBbmxqIgcgA/0AAQD9CwEAIAdBEGogA0EQai8BADsBAAsgA0ESaiEDIAYgBEEBaiIEag0ACwsgACACIAFrNgIgCwJAIAAoAiwiAgRAQQAhBEEeIQEgCiEFAkACQANAIAUgCEYNBCAEQQFqIQMgBS0AAEEBRw0BIAVBAWohBSABQR5qIQEgAyIEIAJHDQALQQAhAQwBCyACIANGBEBBASEBDAELIAQgAmshByAAKAIoIAFqIQNBASEEQQEhAQNAAkACQCAIIAQgBWoiBkcEQCAGLQAADQEgAUEBaiEBDAILQeShwQAQ3QkACyADIAFBYmxqIgYgA/0AAQD9CwEAIAZBFmogA0EWaikBADcBACAGQRBqIANBEGopAQA3AQALIANBHmohAyAHIARBAWoiBGoNAAsLIAAgAiABazYCLAsCQCAAKAI4IgIEQEEAIQRBKiEBIAohBQJAAkADQCAFIAhGDQQgBEEBaiEDIAUtAABBAUcNASAFQQFqIQUgAUEqaiEBIAMiBCACRw0AC0EAIQEMAQsgAiADRgRAQQEhAQwBCyAEIAJrIQcgACgCNCABaiEDQQEhBEEBIQEDQAJAAkAgCCAEIAVqIgZHBEAgBi0AAA0BIAFBAWohAQwCC0GUosEAEN0JAAsgAyABQVZsaiIGIAP9AAEA/QsBACAGQShqIANBKGovAQA7AQAgBkEgaiADQSBqKQEANwEAIAZBEGogA0EQav0AAQD9CwEACyADQSpqIQMgByAEQQFqIgRqDQALCyAAIAIgAWs2AjgLAkAgCQRAIApBBGsoAgAiAEF4cSIFQQRBCCAAQQNxIgAbIAlqSQ0HIABBACAFIAlBJ2pLGw0BIAoQogILIAxBEGokAA8LDAYLQZSiwQAQ3QkAC0HkocEAEN0JAAtBhKLBABDdCQALQfShwQAQ3QkACwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC6oVBAh/BH4HfQF7IwBB4AJrIgEkAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AnANFBEAgACgCACICQQJHDQogACgCiAFBAkcNCiAAKAKAAyICQQNNBEBBACECDAwLIAEgACgC/AIiBSgAACIDNgIQAkAgA0HSgpGaBEcEQCADQdKCkYIDRw0DIAJBCEkNASACIAUoAAQiBEEHakF4cUEIaiIDSQ0BIARBCGoiBiACSyAEQXdLcg0EIAFBADYC2AIgASAENgLUAiABIAVBCGo2AtACIAFBIGogAUHQAmoQWSABKAIkIQQgASgCICIGQQJGBEAgBBDOByECDA4LIAFBsAFqIAFBKGpBgAH8CgAAIAEgBDYCrAEgASAGNgKoASAAKAKAAyICIANJDQUgAEEANgKAAyACIANrIQUgA0UNBiACIANGDQggBUUNByAAKAL8AiICIAIgA2ogBfwKAAAMBwsgAUEIaiAAELkCIAEtAAhFBEAgAS0ACQ0JQQAhAgwNCyABKAIMIQIMDAtBACECDAsLIAA1AoADIQkgAEEANgKAAyAAIAkgACkD2AJ8NwPYAgwKCyABQQE2AjQgAUHMyMEANgIwIAFBATYCJCABQcTIwQA2AiAgAUEBNgIsIAEgAUEQaq1CgICAgJAEhDcD0AIgASABQdACajYCKCABQRRqIgAgAUEgahCxBiAAEI4HIQIMCQtBCCAGIAJBnMjBABDqBwALQQAgAyACQYSkxwAQ6gcACyACIANGDQELIAAgBTYCgAMLIAAgACkD2AIgA618Igk3A+ACIAAgCTcD2AICQAJAAkAgASgCpAJBAUYEQCAAIAEoApQCIgM2AogDIAAgASgCtAEgASgCwAEiAiABKAKwARsiBTYCjAMgBUUNASACIAVuIgcgBSAHbCACR2oiBSADRgRAIAEtAKgCIQMgASAEQQAgBkEBcRs2AiQgASACNgIgIAEgA0EBcSICOgAoIABB+AFqIAFBIGoQ6QEgASgC0AEiBEECRwRAAn0gAC0A0AIiA0ECRgRAQwAAQMEhDUMAABBBIQ5DAACAPyEQQQAhA0MAAIA/IRFDAACAPyESQwAAgD8hE0MAAAAADAELIAFBImogAEHTAmotAAA6AAAgASAALwDRAjsBICAAKgLMAiEQIAAqAsgCIREgACoCxAIhEiAAKgLAAiEOIAAqArwCIQ0gACoCuAIhEyAAKgK0AgshDyAAIAEqAoQCIBAgASgCgAIbOALMAiAAIAEqAvwBIBEgASgC+AEbOALIAiAAIAEqAvQBIBIgASgC8AEbOALEAiAAIAEqAuwBIA4gASgC6AEbOALAAiAAIAEqAuQBIA0gASgC4AEbOAK8AiAAIAEqAtwBIBMgASgC2AEbOAK4AiAAIAMgAS0AiAIiAyADQQJGGzoA0AIgACABKgLUASAPIARBAXEbOAK0AiAAQdMCaiABQSJqLQAAOgAAIAAgAS8BIDsA0QILIAJFDQQCfSAALQDQAkECRgRA/QwAAAAAAACAPwAAQMEAABBBIRRDAACAPyENQwAAgD8hDkMAAIA/DAELIAFBImogAEHTAmotAAA6AAAgASAALwDRAjsBICAAKgLIAiENIAAqAsQCIQ4gAP0AArQCIRQgACoCzAILIQ8gAEEBOgDQAiAAIA84AswCIAAgDTgCyAIgACAOOALEAiAAIBT9CwK0AiAAIAEvASA7ANECIABB0wJqIAFBImotAAA6AAAMBAsgASAFNgLMAiABQQI2AiQgAUHox8EANgIgIAFCAjcCLCABQoCAgIAQIgkgAEGIA2qthDcD2AIgASAJIAFBzAJqrYQ3A9ACIAEgAUHQAmo2AiggAUHAAmoiACABQSBqELEGIAAQjgchAgwCCyABQQE2AiQgAUGUyMEANgIgIAFCATcCLCABIAFBpAJqrUKAgICAEIQ3A9ACIAEgAUHQAmo2AiggAUG0AmoiACABQSBqELEGIAAQjgchAiABKAKUAiEDDAELQbTHwQAQgQgACyABKAKQAiEEIAMEQCAEQSRqIQADQCAAQQRrKAIAIgVBgICAgHhyQYCAgIB4RwRAIAAoAgAgBUEBEKIHCyAAQTBqIQAgA0EBayIDDQALCyABKAKMAiIABEAgBCAAQTBsQQgQogcLIAEoApgCIgBBgICAgHhyQYCAgIB4Rg0FIAEoApwCIABBARCiBwwFCwJAIAAoAgBBAkYNACAAKAJoIQQgACgCbCIDBEAgBEEkaiECA0AgAkEEaygCACIFQYCAgIB4ckGAgICAeEcEQCACKAIAIgZBBGsoAgAiB0F4cSIIQQRBCCAHQQNxIgcbIAVqSQ0FIAdBACAIIAVBJ2pLGw0GIAYQogILIAJBMGohAiADQQFrIgMNAAsLIAAoAmQiAwRAIAQgA0EwbEEIEKIHCyAAKAJwIgNBgICAgHhyQYCAgIB4Rg0AIAAoAnQgA0EBEKIHCyAAIAFBqAFqQYgB/AoAAAsgACgCACECDAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACwJAAkACQAJAAn8CQCACQQJHBEAgACgChAMgACgCiANPDQYgACgCiAFBAkYNAUEADAILIAFBqAFqIAAQYyABKAKsAUEAIAEtAKgBIgMbIQIgAw0GIAEtAKkBQQFxRQ0GIAApA/ACIgsgACkD2AIiCVgEQCAAKAKAAyEDDAULIAAoAoADIQRBACEDIABBADYCgAMgBCALIAl9IgogBK0iDCAKIAxUGyIKpyIFayECIApQRQRAIAQgBUYNBCACRQ0DIAAoAvwCIgMgAyAFaiAC/AoAAAwDCyAEIAVHDQIMAwtBAQshAgNAAkACQAJAAkACQAJAAkACQAJAAkACQCACRQRAIAFBqAFqIAAQYyABKAKsASEDIAEtAKgBIgINAiABLQCpAUEBcUUNAiAAKQPwAiIJIAApA9gCIgtWDQEMBgsgAUGoAWogABC5AiABLQCoAUEBRgRAIAEoAqwBIQIMEQsgAS0AqQENCUEAIQIMEAsgACgCgAMhAyAAQQA2AoADIAMgCSALfSIKIAOtIgwgCiAMVBsiCqciAmshBCAKUA0BIAIgA0YNAyAERQ0CIAAoAvwCIgMgAiADaiAE/AoAAAwCCyADQQAgAhshAgwOCyACIANGDQELIAAgBDYCgAMLIAAgCiALfCILNwPYAiAJIAtWDQELAkAgACgCiAFBAkYNACAAKALkASIDRQ0AIAAoAugBIgJBBGsoAgAiBEF4cSIFIANBKGwiA0EEQQggBEEDcSIEG2pJDQIgBEEAIAUgA0EnaksbDQMgAhCiAgsgAEECNgKIASAAIAAoAoQDQQFqIgM2AoQDIAMgACgCiANJDQQMCQtBACECDAkLQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0EAIQIMAQtBASECDAALAAsgACACNgKAAyACIQMLIAAgCSAKfCIJNwPYAiAJIAtaDQBBACECDAILQQAhAiAAQQA2AoADIABBAToAnAMgACAJIAOtfDcD2AIMAQsgAEEBOgCcAyAANQKAAyEJQQAhAiAAQQA2AoADIAAgCSAAKQPYAnw3A9gCCyABQeACaiQAIAILlhoBC38jAEGAAWsiBSQAIAAoAgwhBgJAAkACQAJAAkAgACgCFCIBIAAoAhAiAkkEQCAAQQxqIQsDQAJAIAEgBmotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEAwsgACABQQFqIgE2AhQgASACRw0ACyACIQELIAVBCGogBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAgwhACAFKAIIIQJBFBBxIgFFDQQgAUEDNgIADAILIAUgBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAgQhACAFKAIAIQJBFBBxIgFFDQMgAUEGNgIADAELIABBADYCCCAAIAFBAWoiATYCFAJAIAEgAk8NAANAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASAGai0AACIEQQlrDiUBAQgIAQgICAgICAgICAgICAgICAgICAEIBwgICAgICAgICAgFAAsgBEHbAGsOIQUHBwcHBwcHBwcHAwcHBwcHBwcBBwcHBwcCBwcHBwcHBQcLIAAgAUEBaiIBNgIUIAEgAkcNCyACIQEMDAsgACABQQFqIgQ2AhQCQCACIARNDQAgACABQQJqIgM2AhQCQCAEIAZqLQAAQfUARw0AIAMgBCACIAIgBEkbIgRGDQEgACABQQNqIgc2AhQgAyAGai0AAEHsAEcEQCAHIQMMAQsgBCAHRg0BIAAgAUEEaiIDNgIUIAYgB2otAABB7ABGDQoLIAVB2ABqIAYgAiADEPkBIAUoAlwhACAFKAJYIQJBFBBxIgFFDQ8gAUEJNgIADA0LIAVB0ABqIAYgAiAEEPkBIAUoAlQhACAFKAJQIQJBFBBxIgFFDQ4gAUEFNgIADAwLIAAgAUEBaiIENgIUAkAgAiAETQ0AIAAgAUECaiIDNgIUAkAgBCAGai0AAEHyAEcNACADIAQgAiACIARJGyIERg0BIAAgAUEDaiIHNgIUIAMgBmotAABB9QBHBEAgByEDDAELIAQgB0YNASAAIAFBBGoiAzYCFCAGIAdqLQAAQeUARg0JCyAFQegAaiAGIAIgAxD5ASAFKAJsIQAgBSgCaCECQRQQcSIBRQ0OIAFBCTYCAAwMCyAFQeAAaiAGIAIgBBD5ASAFKAJkIQAgBSgCYCECQRQQcSIBRQ0NIAFBBTYCAAwLCyAAIAFBAWoiBDYCFAJAIAIgBE0NACAAIAFBAmoiAzYCFAJAIAQgBmotAABB4QBHDQAgAyAEIAIgAiAESRsiBEYNASAAIAFBA2oiBzYCFCADIAZqLQAAQewARwRAIAchAwwBCyAEIAdGDQEgACABQQRqIgg2AhQgBiAHai0AAEHzAEcEQCAIIQMMAQsgBCAIRg0BIAAgAUEFaiIDNgIUIAYgCGotAABB5QBGDQgLIAVB+ABqIAYgAiADEPkBIAUoAnwhACAFKAJ4IQJBFBBxIgFFDQ0gAUEJNgIADAsLIAVB8ABqIAYgAiAEEPkBIAUoAnQhACAFKAJwIQJBFBBxIgFFDQwgAUEFNgIADAoLIAAgAUEBajYCFAwDCyAAKAIAIAAoAggiA2sgCkkEQCAAIAMgCkEBQQEQpAUgACgCCCEDCyAKBEAgACgCBCADaiAJOgAAIANBAWohAwsgACADNgIIIAAgACgCFEEBajYCFEEADAULIAAgAUEBajYCFCALEP0DIgENCAwDCyAEQTBrQf8BcUEKTw0BCwJ/IwBBIGsiByQAIAAoAgwhCAJAAkACQAJAAkAgACgCFCIDIAAoAhAiBEkEQCAAIANBAWoiAjYCFCADIAhqLQAAIgFBMEYEQCACIARPDQQgAiAIai0AAEEwa0H/AXFBCkkNAwwECyABQTFrQf8BcUEITQ0BIAIhAwsgB0EYaiAIIAQgAxD5ASAHKAIcIQIgBygCGCEBQRQQcSIDRQ0EIAMgATYCDCADQQ02AgAgAyACNgIQDAMLIAIgBE8NAQNAIAIgCGotAABBMGtB/wFxQQlLDQIgACACQQFqIgI2AhQgAiAERw0AC0EAIQMMAgsgB0EIaiAIIAQgA0ECaiICIAQgAiAESRsQ+QEgBygCDCECIAcoAgghAUEUEHEiA0UNAiADIAE2AgwgA0ENNgIAIAMgAjYCEAwBC0EAIQMgAiAETw0AAkACQCACIAhqLQAAIgFB5QBGIAFBxQBGckUEQCABQS5HDQMgACACQQFqIgE2AhQgASAETw0BIAEgCGotAABBMGtB/wFxQQlLDQEgAkECaiECA0AgBCACIgFGDQMgAkEBaiECIAEgCGotAAAiBkEwa0H/AXFBCkkNAAsgACABNgIUIAZBIHJB5QBHDQMLAn8jAEEQayIDJAAgACAAKAIUIgFBAWoiAjYCFCAAKAIMIQQCQCACIAAoAhAiCE8NAAJAIAIgBGotAABBK2sOAwABAAELIAAgAUECaiICNgIUCwJAAkACQCADQQhqIAQgCCACIAhJBH8gACACQQFqIgE2AhQgAiAEai0AAEEwa0H/AXFBCU0NASABBSACCxD5ASADKAIMIQEgAygCCCEEQRQQcSICRQ0CIAIgBDYCDCACQQ02AgAgAiABNgIQDAELQQAhAiABIAhPDQADQCABIARqLQAAQTBrQf8BcUEJSw0BIAAgAUEBaiIBNgIUIAEgCEcNAAsLIANBEGokACACDAELAAshAwwCCyAHQRBqIAggBCACQQJqIgIgBCACIARJGxD5ASAHKAIUIQIgBygCECEBQRQQcSIDRQ0CIAMgATYCDCADQQ02AgAgAyACNgIQDAELIAAgBDYCFAsgB0EgaiQAIAMMAQsACyIBRQ0BDAYLIAVByABqIAYgAiABQQFqIgAgAiAAIAJJGxD5ASAFKAJMIQAgBSgCSCECQRQQcSIBRQ0GIAFBCjYCAAwECyAKBEAgACgACCEDIAkhBEEBDAELIAAoAggiAkUEQEEAIQEMBQsgACACQQFrIgM2AgggACgCBCADai0AACEEQQELIQogACgCDCEGAkACfwJAAkACQAJAIAAoAhQiASAAKAIQIgJPBEAgBCEJDAELIAAoAgQhByAEIQkDQAJAAkACQAJAAkACQCABIAZqLQAAIgRBCWsOJAEBCAgBCAgICAgICAgICAgICAgICAgIAQgICAgICAgICAgIAgALIARB3QBGDQIgBEH9AEYNAwwHCyAAIAFBAWoiATYCFCABIAJHDQQgAiEBDAULIApFDQYgACABQQFqIgE2AhQMBgsgCUH/AXFB2wBHDQQMAQsgCUH/AXFB+wBHDQMLIAAgAUEBaiIBNgIUIANFBEBBACEBDAsLIAAgA0EBayIDNgIIIAMgB2otAAAhCUEBIQogASACSQ0ACwtBAiEEAkAgCUH/AXEiAEHbAEcEQCAAQfsARw0BQQMhBAsgBUFAayAGIAIgAUEBaiIAIAIgACACSRsQ+QEgBSgCRCEAIAUoAkAhAkEUEHEiAUUNCiABIAQ2AgAMCAtBpPjGAEEoQbjnwAAQ6wcACyAKRQ0AQQcgCUH/AXEiAEHbAEYNAhogAEH7AEYNAUGk+MYAQShByOfAABDrBwALIAlB/wFxQfsARw0CIAEgAkkEQANAAkACQCABIAZqLQAAQQlrIgNBGUsNAEEBIAN0QZOAgARxDQEgA0EZRw0AIAAgAUEBajYCFCALEP0DIgENCiAAKAIMIQYCQAJAIAAoAhQiASAAKAIQIgJJBEADQAJAIAEgBmotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEAwsgACABQQFqIgE2AhQgASACRw0ACyACIQELIAVBMGogBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAjQhACAFKAIwIQJBFBBxIgFFDQ0gAUEDNgIADAsLIAVBKGogBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAiwhACAFKAIoIQJBFBBxIgFFDQwgAUEGNgIADAoLIAAgAUEBaiIBNgIUDAYLIAVBGGogBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAhwhACAFKAIYIQJBFBBxIgFFDQogAUERNgIADAgLIAAgAUEBaiIBNgIUIAEgAkcNAAsgAiEBCyAFQSBqIAYgAiABQQFqIgAgAiAAIAJJGxD5ASAFKAIkIQAgBSgCICECQRQQcSIBRQ0HIAFBAzYCAAwFC0EICyEDIAVBEGogBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAhQhACAFKAIQIQJBFBBxIgFFDQUgASADNgIADAMLQQEhCiABIAJJDQALCyAFQThqIAYgAiABQQFqIgAgAiAAIAJJGxD5ASAFKAI8IQAgBSgCOCECQRQQcSIBRQ0CIAFBBTYCAAsgASACNgIMIAEgADYCEAsgBUGAAWokACABDwsAC+UQAgp/B30gA0EITwRAIAAgACADQQN2IgNBBHQiBWogACADQRxsIghqIAMgBBChASEAIAEgASAFaiABIAhqIAMgBBChASEBIAIgAiAFaiACIAhqIAMgBBChASECC0MAAIA/IRACfwJAIAAoAgAiBSAEKAIAQQRqKAIAIgMoAggiCEkEQCABKAIAIQYgAygCBCILIAVBGGxqIgQtABMiBSAELQASIgcgBC0AESIKIAcgCksbIgcgBSAHSxsiBwR9QwAAQMEgAyoCRCADLQBYQQJGIgUbIg9DAAAQQSADKgJIIAUbIA+TQwAAfkOVIAdBAWtB/wFxs5SSEIkEIg8gD5IFQwAAAAALIRIgBEEMai8BACIEQf//AXEiDUUEQCAEQRB0DAMLIARB/wdxIQUgBEGAgAJxIQogBEGA+AFxIglBgPgBRgRAIApBEHQiCkGAgID8B3IgBUUNAxogCiAFQQ10ckGAgID+B3IMAwsgCkEQdCEKIAlFDQEgCUENdEGAgID8AHEgBUENdHJBgICAwANqIApyDAILIAUgCEHcu8cAEIwHAAsgBSAFZ0EQayIFQf//A3FBCGp0Qf///wNxIApBgICA2ANyIAVBF3Rrcgu+Ig9DAACAP14EQCAPEMYFQ1T4LUCUQwAAgD+SkSEQC0MAAIA/IQ8CfwJAIAYgCEkEQCALIAZBGGxqIgUtABMiBiAFLQASIgogBS0AESIJIAkgCkkbIgogBiAKSxsiCgR9QwAAQMEgAyoCRCADLQBYQQJGIgYbIhFDAAAQQSADKgJIIAYbIBGTQwAAfkOVIApBAWtB/wFxs5SSEIkEIhEgEZIFQwAAAAALIRMgBUEMai8BACIFQf//AXEiDkUEQCAFQRB0DAMLIAVB/wdxIQYgBUGAgAJxIQkgBUGA+AFxIgxBgPgBRgRAIAlBEHQiCUGAgID8B3IgBkUNAxogCSAGQQ10ckGAgID+B3IMAwsgCUEQdCEJIAxFDQEgDEENdEGAgID8AHEgBkENdHJBgICAwANqIAlyDAILIAYgCEHcu8cAEIwHAAsgBiAGZ0EQayIGQf//A3FBCGp0Qf///wNxIAlBgICA2ANyIAZBF3Rrcgu+IhFDAACAP14EQCAREMYFQ1T4LUCUQwAAgD+SkSEPCyACKAIAIQkgBwR9QwAAQMEgAyoCRCADLQBYQQJGIgYbIhFDAAAQQSADKgJIIAYbIBGTQwAAfkOVIAdBAWtB/wFxs5SSEIkEIhEgEZIFQwAAAAALIRRDAACAPyERAn8gBEEQdCANRQ0AGiAEQf8HcSEGIARBgIACcSEHIARBgPgBcSIEQYD4AUYEQCAHQRB0IgRBgICA/AdyIAZFDQEaIAQgBkENdHJBgICA/gdyDAELIAdBEHQiByAEQQ10QYCAgPwAcSAGQQ10ckGAgIDAA2pyIAQNABogBiAGZ0EQayIEQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIARBF3Rrcgu+IhVDAACAP14EQCAVEMYFQ1T4LUCUQwAAgD+SkSERCwJ/AkAgCCAJSwRAIBIgEJQiECATIA+UYCALIAlBGGxqIgQtABMiBiAELQASIgcgBC0AESIJIAcgCUsbIgcgBiAHSxsiBgR9QwAAQMEgAyoCRCADLQBYQQJGIgcbIg9DAAAQQSADKgJIIAcbIA+TQwAAfkOVIAZBAWtB/wFxs5SSEIkEIg8gD5IFQwAAAAALIRJFIQsgECAQWyEMIARBDGovAQAiBEH//wFxIg1FBEAgBEEQdAwDCyAEQf8HcSEIIARBgIACcSEHIARBgPgBcSIJQYD4AUYEQCAHQRB0IgdBgICA/AdyIAhFDQMaIAcgCEENdHJBgICA/gdyDAMLIAdBEHQhByAJRQ0BIAlBDXRBgICA/ABxIAhBDXRyQYCAgMADaiAHcgwCCyAJIAhB3LvHABCMBwALIAggCGdBEGsiCEH//wNxQQhqdEH///8DcSAHQYCAgNgDciAIQRd0a3ILQwAAgD8hD74iEEMAAIA/XgRAIBAQxgVDVPgtQJRDAACAP5KRIQ8LIAsgDHEiCCAUIBGUIhAgEFsgECASIA+UYEVxRgR/IAIgASAIIAoEfUMAAEDBIAMqAkQgAy0AWEECRiIAGyIPQwAAEEEgAyoCSCAAGyAPk0MAAH5DlSAKQQFrQf8BcbOUkhCJBCIPIA+SBUMAAAAACwJ/IAVBEHQgDkUNABogBUH/B3EhACAFQYCAAnEhASAFQYD4AXEiAkGA+AFGBEAgAUEQdCIBQYCAgPwHciAARQ0BGiABIABBDXRyQYCAgP4HcgwBCyABQRB0IgEgAkENdEGAgID8AHEgAEENdHJBgICAwANqciACDQAaIAAgAGdBEGsiAEH//wNxQQhqdEH///8DcSABQYCAgNgDciAAQRd0a3ILviIPQwAAgD9eBH0gDxDGBUNU+C1AlEMAAIA/kpEFQwAAgD8LlCIPIA9bIA8gBgR9QwAAQMEgAyoCRCADLQBYQQJGIgAbIhBDAAAQQSADKgJIIAAbIBCTQwAAfkOVIAZBAWtB/wFxs5SSEIkEIhAgEJIFQwAAAAALAn8gBEEQdCANRQ0AGiAEQf8HcSEAIARBgIACcSEBIARBgPgBcSICQYD4AUYEQCABQRB0IgFBgICA/AdyIABFDQEaIAEgAEENdHJBgICA/gdyDAELIAFBEHQiASACQQ10QYCAgPwAcSAAQQ10ckGAgIDAA2pyIAINABogACAAZ0EQayIAQf//A3FBCGp0Qf///wNxIAFBgICA2ANyIABBF3Rrcgu+IhBDAACAP14EfSAQEMYFQ1T4LUCUQwAAgD+SkQVDAACAPwuUYEVxcxsFIAALC+oRAw1/AXsJfQJAAkACQAJAAkAgACgCCCIJRQRAQQEhBkEBIQoMAQsgACgCBCEFIAkQcSIKRQ0CQwAAEEEgACoCSCAALQBYQQJGIgQbQwAAQMEgACoCRCAEGyITk0MAAH5DlSEUIAVBFGohBgNAQQAhBAJAAn8gBkEIay8BACIBQf//AXFFBEAgAUEQdAwBCyABQf8HcSECIAFBgIACcSEHIAFBgPgBcSIBQYD4AUYEQCAHQRB0IgFBgICA/AdyIAJFDQEaIAEgAkENdHJBgICA/gdyDAELIAdBEHQiByABQQ10QYCAgPwAcSACQQ10ckGAgIDAA2pyIAENABogAiACZ0EQayICQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAJBF3Rrcgu+QwAAAABeRQ0AIAZBAWstAAAiAiAGQQJrLQAAIgEgBkEDay0AACIHIAEgB0sbIgEgASACSRsiAkUNACATIBQgAkEBa0H/AXGzlJIQiQRDAAAAAF5FDQBDAACAPyAGLwEAIgJBCHaz/RMgAiAGQQJqLQAAIgFBEHRyQf8BcbP9IAH9DAAAf0MAAH9DAAB/QwAAf0P95wEiDiAO/eQB/QwAAIC/AACAvwAAgL8AAIC//eQBIg79HwEiD4uTIA79HwAiFYuTIhGMQwAAAAAQ4AghECABs0MAAH9DlUMAAAA/lEPbD0lAlCIWEJkCIhIgDyAQIBCMIhcgDv0MAAAAAAAAAAAAAAAAAAAAAP1G/U0iDv3HAf0bAkEBcRuSIg8gESARlCAPIA+UIBUgECAXIA79GwBBAXEbkiIQIBCUkpKRIg+VlP0TIBIgECAPlZT9IAEgEiARIA+VlP0gAiAWEJsC/SADIg79DP///3////9/////f////3/9Tv0MAACAfwAAgH8AAIB/AACAf/05/aQBQQ9HDQAgDiAO/eYBIg4gDiAO/Q0ICQoLDA0ODwABAgMAAQID/eQBIg4gDiAO/Q0EBQYHAAECAwABAgMAAQID/eQB/eMB/R8AQwAAAABeIQQLIAMgCmogBDoAACAGQRhqIQYgCSADQQFqIgNHDQALIAVBGGohAyAJIApqIQZBACEBIAohBAJAAkADQCAEIAZGDQQgAUEBaiECIAQtAABBAUcNASAEQQFqIQQgA0EYaiEDIAIiASAJRw0AC0EAIQEMAQsgAiAJRgRAQQEhAQwBCyABIAlrIQVBASECQQEhAQNAAkACQCACIAVqBEAgAiAEai0AAA0BIAFBAWohAQwCC0GUocEAEN0JAAsgAyABQWhsaiIHIAP9AAIA/QsCACAHQRBqIANBEGopAgA3AgALIANBGGohAyAFIAJBAWoiAmoNAAsLIAAgCSABazYCCAsgACgCFCIHBEBBACECIAAoAhAiASEDIAohBAJAA0ACQCAEIAZHBEAgBC0AAA0BAkAgASACQRhsaiIBKAIUIgVBBU8EQCABKAIIIgFBBGsoAgAiCEF4cSILIAVBAnQiBUEEQQggCEEDcSIIG2pJDQEgCEEAIAsgBUEnaksbDQogARCiAgtBASEFIAJBAWogB0YNBCACIAdrIQhBASEBA0AgAyECAkACQCAGIAEgBGoiC0cEQCACQRhqIQMgCy0AAA0BIAVBAWohBSACQSxqKAIAIgtBBUkNAiACQSBqKAIAIgJBBGsoAgAiDEF4cSINIAtBAnQiC0EEQQggDEEDcSIMG2pJDQwgDEEAIA0gC0EnaksbDQ0gAhCiAgwCC0GkocEAEN0JAAsgAiAFQWhsaiICQShqIANBEGopAgA3AgAgAkEYaiAD/QACAP0LAgALIAggAUEBaiIBag0ACwwECwwHC0GkocEAEN0JAAsgBEEBaiEEIANBGGohAyACQQFqIgIgB0cNAAtBACEFCyAAIAcgBWs2AhQLAkAgACgCICIFBEBBACECQQkhASAKIQQCQAJAA0AgBCAGRg0EIAJBAWohAyAELQAAQQFHDQEgBEEBaiEEIAFBCWohASADIgIgBUcNAAtBACEBDAELIAMgBUYEQEEBIQEMAQsgAiAFayEHIAAoAhwgAWohA0EBIQJBASEBA0ACQAJAIAYgAiAEaiIIRwRAIAgtAAANASABQQFqIQEMAgtB1KHBABDdCQALIAMgAUF3bGoiCCADKQAANwAAIAhBCGogA0EIai0AADoAAAsgA0EJaiEDIAcgAkEBaiICag0ACwsgACAFIAFrNgIgCwJAIAAoAiwiBQRAQQAhAkEPIQEgCiEEAkACQANAIAQgBkYNBCACQQFqIQMgBC0AAEEBRw0BIARBAWohBCABQQ9qIQEgAyICIAVHDQALQQAhAQwBCyADIAVGBEBBASEBDAELIAIgBWshByAAKAIoIAFqIQNBASECQQEhAQNAAkACQCAGIAIgBGoiCEcEQCAILQAADQEgAUEBaiEBDAILQbShwQAQ3QkACyADIAFBcWxqIgggAykAADcAACAIQQdqIANBB2opAAA3AAALIANBD2ohAyAHIAJBAWoiAmoNAAsLIAAgBSABazYCLAsCQCAAKAI4IgUEQEEAIQJBFSEBIAohBAJAAkADQCAEIAZGDQQgAkEBaiEDIAQtAABBAUcNASAEQQFqIQQgAUEVaiEBIAMiAiAFRw0AC0EAIQEMAQsgAyAFRgRAQQEhAQwBCyACIAVrIQcgACgCNCABaiEDQQEhAkEBIQEDQAJAAkAgBiACIARqIghHBEAgCC0AAA0BIAFBAWohAQwCC0HEocEAEN0JAAsgAyABQWtsaiIIIAP9AAAA/QsAACAIQQ1qIANBDWopAAA3AAALIANBFWohAyAHIAJBAWoiAmoNAAsLIAAgBSABazYCOAsCQCAJBEAgCkEEaygCACIAQXhxIgRBBEEIIABBA3EiABsgCWpJDQcgAEEAIAQgCUEnaksbDQEgChCiAgsPCwwGC0HEocEAEN0JAAtBtKHBABDdCQALQdShwQAQ3QkAC0GUocEAEN0JAAsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvcEAIcfwV9IwBBMGsiBiQAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AuAFBAUcNACAAKAKsASAAKAKwASIBQQJ0IAAoArQBIgMgAWpBAnQQ4QghASADQQJ0IgMgACgCZCIFSw0BIAAoAmAhBSAGIAEQuAoiAjYCFCAGIAM2AgggAiADRw0HIAEgBSADEOAJIAFBhAhJDQAgARCbBwsgAEIANwKwASAAQbgBakEAOgAAIAAoAmgiAUGAgICAeEYgACgCdCIDQYCAgIB4RnENAiABQYCAgIB4RyADQYCAgIB4R3FFBEAgBkEANgIoIAZBATYCHCAGQZzgwAA2AhggBkIENwIgIAZBGGoQkgchAQwGC0GAgBAhCiAAKAJkIgNB//8PTQRAQYCAECADIgFrIgUgACgCXCABa0sEQCAAQdwAaiABIAVBBEEEEKQFIAAoAmQhAQsgACgCYCICIAFBAnRqIQUgA0H//w9HBH9B/P8/IANBAnRrIggEQCAFQQAgCPwLAAsgASADayIDQf//D2ohASACIANBAnRqQfz/P2oFIAULQQA2AgAgAUEBaiEKCyAAIAo2AmQgACgCpAEiC0ECdBC2CSEQAkAgACgCMEUNACAAKAI0IgFBhAhJDQAgARCbBwsgACAQNgI0IABBATYCMCAAKAJoIhFBgICAgHhGDQQgACgCdCISQYCAgIB4Rg0DIAtFDQFDAAAAQEMAAIA/IAAtAJwBQQFxGyEhIAAqAowBIAAqAogBIh2TQwAAfkOVIR4gACgCeCEXIAAoAmwhGCAAKAJ8IRMgACgCcCEUIAAoAqwBIRkgACgCYCEOQQAhAQNAIApBgIAEIAsgAWsiAyADQYCABE8bIghBAnQiBUkEQEEAIAUgCkHo38AAEOoHAAsgBiAZIAFBAnQiFSABIAhqIgNBAnQiGhDhCCICELgKIgQ2AhQgBiAFNgIIAkAgBCAFRgRAIA4gBSACEOEJIAJBhAhPBEAgAhCbBwsgASALRg0BIAhBBHQhFiAVIBdqIRsgGCABQQF0aiEPQQAhDEEAIQgCQANAIAwgFkYEQCAIIAhBBGogBUHY38AAEOoHAAsCfyAMIA5qIg1BBGooAgAiAkH//wFxRQRAIAJBEHQMAQsgAkH/B3EhBCACQYCAAnEhByACQYD4AXEiCUGA+AFGBEAgB0EQdCIHQYCAgPwHciAERQ0BGiAHIARBDXRyQYCAgP4HcgwBCyAHQRB0IgcgCUENdEGAgID8AHEgBEENdHJBgICAwANqciAJDQAaIAdBgICA2ANyIARnQRBrIgdBF3RrIAQgB0H//wNxQQhqdEH///8DcXILIRwCfyACQYCAfHEgAkEQdiICQf//AXFFDQAaIAJB/wdxIQQgAkGAgAJxIQcgAkGA+AFxIglBgPgBRgRAIAdBEHQiB0GAgID8B3IgBEUNARogByACQQ10ckGAgID+B3IMAQsgB0EQdCICIAlBDXRBgICA/ABxIARBDXRyQYCAgMADanIgCQ0AGiACQYCAgNgDciAEZ0EQayICQRd0ayAEIAJB//8DcUEIanRB////A3FyCyEJIAYCfyANQQhqKAIAIgRB//8BcUUEQCAEQRB0DAELIARB/wdxIQIgBEGAgAJxIQcgBEGA+AFxIgRBgPgBRgRAIAdBEHQiBEGAgID8B3IgAkUNARogBCACQQ10ckGAgID+B3IMAQsgB0EQdCIHIARBDXRBgICA/ABxIAJBDXRyQYCAgMADanIgBA0AGiAHQYCAgNgDciACZ0EQayIEQRd0ayACIARB//8DcUEIanRB////A3FyCzYCECAGIAk2AgwgBiAcNgIIIA0tAAMhByANQQxqKAIAIgJBCHYhBEMAAAAAIR8gAkH/AXEEQCAdIB4gAkEBa0H/AXGzlJIQiQQhHwtDAAAAACEgIARB/wFxBEAgHSAeIARBAWtB/wFxs5SSEIkEISALIAYgAkEQdiICQf8BcQR9IB0gHiACQQFrQf8BcbOUkhCJBAVDAAAAAAs4AiAgBiAgOAIcIAYgHzgCGCABIBRJBEAgASATTw0CIA0gBkEIaiAhIAezQwAAf0OVlEMAAAAAkiAGQRhqIA8vAQAgCCAbaigCABCRAiAIQQRqIQggD0ECaiEPIAFBAWohASAWIAxBEGoiDEcNAQwECwsgASAUQbjfwAAQjAcACyABIBNByN/AABCMBwALDAgLIAYgECAVIBoQ4QgiARC4CiICNgIUIAYgBTYCCCACIAVGBEAgASAOIAUQ4AkgAUGECE8EQCABEJsHCyADIgEgC0kNAQwDCwsMBgtBACADIAVB/OvAABDqBwALIBJBgICAgHhyQYCAgIB4RwRAIAAoAngiAUEEaygCACIDQXhxIgUgEkECdCICQQRBCCADQQNxIgMbakkNBiADQQAgBSACQSdqSxsNByABEKICCyAAQYCAgIB4NgJ0IBFBgICAgHhyQYCAgIB4RwRAIAAoAmwiAUEEaygCACIDQXhxIgUgEUEBdCICQQRBCCADQQNxIgMbakkNBiADQQAgBSACQSdqSxsNByABEKICCyAAQYCAgIB4NgJoC0EAIQEgAEEANgJkIAAoAmAhAyAAKAJcIQUgAEKAgICAwAA3AlwgBUUNAiADQQRrKAIAIgBBeHEiAiAFQQJ0IgVBBEEIIABBA3EiABtqSQ0EIABBACACIAVBJ2pLGw0FIAMQogIMAgtBqN/AABDdCQALQZjfwAAQ3QkACyAGQTBqJAAgAQ8LIAZBADYCGEEAIAZBFGogBkEIaiAGQRhqQeD5xAAQ9QcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvuDwEOfyMAQYABayICJAACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAihBAkcEQCABKALUASIDIAEoAtgBQRxsaiEFAkACQANAIAMiBCAFRiIDDQFB1c3HAEEVIAQoAhQgBCgCGBCsA0UEQCAEQQBBHCADG2ohA0HqzccAQRUgBCgCFCAEKAIYEKwDRQ0BCwsgBCgCGCINQQBIDQMgBCgCFCEDAkAgDUUEQEEBIQEMAQsgDRBxIgFFDQoLIA0EQCABIAMgDfwKAAALIAQoAgBBAUYEQCAEKAIMIgdBAEgNDCAEKAIIIQMCQCAHRQRAQQEhBAwBCyAHEHEiBEUNCwsgBwRAIAQgAyAH/AoAAAsgByEDDAcLIAQoAgwiCUEASA0EIAQoAgghAwJAIAlFBEBBASEKDAELIAkQcSIKRQ0KCyAJBEAgCiADIAn8CgAACyACQThqIAogCUGAgIABEN8BQQEhBCACKAI8IQggAgJ/AkAgAigCOEEBRgRAIAhBgICAgHhHDQFBAwwCCyACKAJEIQsgAigCQCEGIAJBADYCQCACQoCAgIAQNwI4QQAhAyALBEAgAkE4akEAIAsQ7wUgAigCQCEDIAYhBQNAQQFBAiAFLAAAIgdBAE4iDhsiDCACKAI4IAMiBGtLBH8gAkE4aiAEIAwQ7wUgAigCQAUgBAsgAigCPCIEaiIPIA4EfyAHBSAPIAdBvwFxOgABIAdBwAFxQQZ2QUByCzoAACACIAMgDGoiAzYCQCAFQQFqIQUgC0EBayILDQALIAIoAjghBwsgCQRAIApBBGsoAgAiBUF4cSIOQQRBCCAFQQNxIgUbIAlqSQ0PIAVBACAOIAlBJ2pLGw0QIAoQogILIAgEQCAGQQRrKAIAIgVBeHEiCkEEQQggBUEDcSIFGyAIakkNDyAFQQAgCiAIQSdqSxsNECAGEKICCyADQQBODQgMDQsgCARAIAIoAkAiBUEEaygCACIDQXhxIgRBBEEIIANBA3EiAxsgCGpJDQ4gA0EAIAQgCEEnaksbDQ8gBRCiAgtBBAs6ACkgAkEeOgAoIAJBOGogAkEoahD8AyACQRBqIgUgAkHMAGr9AAIA/QsDACACQSBqIgQgAkHcAGooAgA2AgAgAiAC/QACPP0LAwAgAigCOCIDQQZGDQEgACAC/QADAP0LAgQgAEEkaiAEKAIANgIAIABBFGogBf0AAwD9CwIAIAAgAzYCAAwICyABKALIASIDIAEoAswBQRhsaiEFAkADQCADIgQgBUYiAQ0BQdXNxwBBFSAEKAIEIAQoAggQrANFBEAgBEEAQRggARtqIQNB6s3HAEEVIAQoAgQgBCgCCBCsA0UNAQsLIAQoAggiBkEASA0LIAQoAgQhAwJAIAZFBEBBASEBDAELIAYQcSIBRQ0KCyAGBEAgASADIAb8CgAACyAEKAIUIgVBAEgNCyAEKAIQIQQCQCAFRQRAQQEhAwwBCyAFEHEiA0UNCgsgBQRAIAMgBCAF/AoAAAsgACAFNgIMIAAgAzYCCCAAIAU2AgQgAEEGNgIAIAZFDQogAUEEaygCACIAQXhxIgNBBEEIIABBA3EiABsgBmpJDQwgAEEAIAMgBkEnaksbDQ0gARCiAgwKCyAAQoaAgICAgICAgH83AwAMCQsgAiAKIAlBfxDfASACKAIEIQwCQAJAIAIoAgBBAUYEQCAMQYCAgIB4Rg0BIAJBADYCSCACQQE2AjwgAkGoscQANgI4IAJCBDcCQCACQThqQbCxxAAQjQgACyAMQYCAgIB4Rw0BCyACQZ4GOwFkIAAgAkHkAGoQ/AMMBwsgAigCDCELIAIoAgghByACQQA2AnwgAkKAgICAEDcCdEEBIQhBACEDIAsEQCACQfQAakEAIAsQ7wUgAigCfCEGIAchBQNAQQFBAiAFLAAAIgNBAE4iDhsiDyACKAJ0IAYiBGtLBH8gAkH0AGogBCAPEO8FIAIoAnwFIAQLIAIoAngiCGoiBCAOBH8gAwUgBCADQb8BcToAASADQcABcUEGdkFAcgs6AAAgAiAGIA9qIgY2AnwgBUEBaiEFIAtBAWsiCw0ACyACKAJ0IQMLIAwEQCAHQQRrKAIAIgRBeHEiBUEEQQggBEEDcSIEGyAMakkNCyAEQQAgBSAMQSdqSxsNDCAHEKICCyAGQQBIDQMMBQtBrJjHABDdCQALQaTvwQAQ/wcMBQtB2JrIABD/BwALQdiayAAQ/wcACwJAIANFBEBBASEIDAELIAMQcSIIRQ0DCyADBEAgCCAEIAP8CgAACyADIQYgBCEKIAchCQsCQCAGRQRAQQEhBwwBCyAGEHEiB0UNAgsgBgRAIAcgCCAG/AoAAAsgAwRAIAhBBGsoAgAiBEF4cSIFQQRBCCAEQQNxIgQbIANqSQ0FIARBACAFIANBJ2pLGw0GIAgQogILIAAgBjYCDCAAIAc2AgggACAGNgIEIABBBjYCAAsgDQRAIAFBBGsoAgAiAEF4cSIDQQRBCCAAQQNxIgAbIA1qSQ0EIABBACADIA1BJ2pLGw0FIAEQogILIAlFDQEgCkEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgCWpJDQMgAEEAIAEgCUEnaksbDQQgChCiAgwBCwALIAJBgAFqJAAPC0Gk78EAEP8HAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL7Q8CIX8VfSMAQfAAayIGJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AuAFBAUcNACAAKAKsASAAKAKwASIFQQJ0IAAoArQBIgcgBWpBAnQQ4QghBSAHQQJ0IgcgACgCZCIISw0BIAAoAmAhCCAGIAUQuAoiCTYCFCAGIAc2AhggByAJRw0LIAUgCCAHEOAJIAVBhAhJDQAgBRCbBwsgAEIANwKwASAAQbgBakEAOgAAIAAoAhBFDQggACgCFCABQQJ0IAEgAmpBAnQQ4QghDQJAIAJBAnQiASAAKAJkIgVNBEAgACABNgJkIAAoAmAhCiABIQcMAQsgBSEIIAEgBWsiByAAKAJcIAVrSwRAIABB3ABqIAUgB0EEQQQQpAUgACgCZCEICyAAKAJgIgogCEECdCIJaiELIAdBAk8EQCABIAVBf3NqQQJ0IgwEQCALQQAgDPwLAAsgAkEEdCAFQQJ0ayAKaiAJakEEayELIAcgCGpBAWshCAsgC0EANgIAIAAgCEEBaiIHNgJkIAEgB0sNAgsgBiANELgKIgU2AhQgBiABNgIYIAEgBUcNCiAKIAEgDRDhCSAEQRVuIRAgBEEUa0EVbkEBaiERIARBE2tBFW5BAWohEiAEQRJrQRVuQQFqIRMgBEERa0EVbkEBaiEUIARBEGtBFW5BAWohFSAEQQ9rQRVuQQFqIRYgBEEOa0EVbkEBaiEXIARBDWtBFW5BAWohGCAEQQxrQRVuQQFqIRkgBEELa0EVbkEBaiEaIARBCmtBFW5BAWohGyAEQQlrQRVuQQFqIRwgBEEIa0EVbkEBaiEdIARBB2tBFW5BAWohHiAEQQZrQRVuQQFqIR8gBEEFa0EVbkEBaiEgIARBBGtBFW5BAWohISAEQQNrQRVuQQFqISIgBEECa0EVbkEBaiEjIARBAWtBFW5BAWohJEMAAPhBIAAqApgBlSEmQQAhBQNAIAVBAnQiACAHTw0DIABBAXIiASAHTw0EIABBAnIiCCAHTw0FIABBA3IiCSAHTw0HIAogAEECdGooAgAhACAGIAogAUECdGooAgA2AgggBiAANgIEIAYgCiAJQQJ0aigCADYCECAGIAogCEECdGooAgA2AgxBACEMIAZBHGoiDkEAQdQA/AsAIAVBFWwhASAFQQFqQQYhAEEAIQsDQCAGQQRqIABBBmsiD0EDdkH8////AXFqIiUoAgAgD0EecXYhCCAOIA9B4AFxQSBqIABJBH8gC0EPSw0IICUoAgQgDEEecXQgCHIFIAgLQRp0QRp1siAmlTgCACAAQQZqIQAgDEEGayEMIA5BBGohDiALQQFqIgtBFUcNAAsgBSAkRg0KIAYqAmwhJyAGKgJoISggBioCZCEpIAYqAmAhKiAGKgJcISsgBioCWCEsIAYqAlQhLSAGKgJQIS4gBioCTCEvIAYqAkghMCAGKgJEITEgBioCQCEyIAYqAjwhMyAGKgI4ITQgBioCNCE1IAYqAjAhNiAGKgIsITcgBioCKCE4IAYqAiQhOSAGKgIgITogAyABQQJ0aiAGKgIcOAIAIAFBAWohACAFICNGBEAgACEBDAsLIAMgAEECdGogOjgCACABQQJqIQAgBSAiRgRAIAAhAQwLCyADIABBAnRqIDk4AgAgAUEDaiEAIAUgIUYEQCAAIQEMCwsgAyAAQQJ0aiA4OAIAIAFBBGohACAFICBGBEAgACEBDAsLIAMgAEECdGogNzgCACABQQVqIQAgBSAfRgRAIAAhAQwLCyADIABBAnRqIDY4AgAgAUEGaiEAIAUgHkYEQCAAIQEMCwsgAyAAQQJ0aiA1OAIAIAFBB2ohACAFIB1GBEAgACEBDAsLIAMgAEECdGogNDgCACABQQhqIQAgBSAcRgRAIAAhAQwLCyADIABBAnRqIDM4AgAgAUEJaiEAIAUgG0YEQCAAIQEMCwsgAyAAQQJ0aiAyOAIAIAFBCmohACAFIBpGBEAgACEBDAsLIAMgAEECdGogMTgCACABQQtqIQAgBSAZRgRAIAAhAQwLCyADIABBAnRqIDA4AgAgAUEMaiEAIAUgGEYEQCAAIQEMCwsgAyAAQQJ0aiAvOAIAIAFBDWohACAFIBdGBEAgACEBDAsLIAMgAEECdGogLjgCACABQQ5qIQAgBSAWRgRAIAAhAQwLCyADIABBAnRqIC04AgAgAUEPaiEAIAUgFUYEQCAAIQEMCwsgAyAAQQJ0aiAsOAIAIAFBEGohACAFIBRGBEAgACEBDAsLIAMgAEECdGogKzgCACABQRFqIQAgBSATRgRAIAAhAQwLCyADIABBAnRqICo4AgAgAUESaiEAIAUgEkYEQCAAIQEMCwsgAyAAQQJ0aiApOAIAIAFBE2ohACAFIBFGBEAgACEBDAsLIAMgAEECdGogKDgCACABQRRqIQEgBSAQRg0KIAMgAUECdGogJzgCACIFIAJHDQALDAcLQQAgByAIQfzrwAAQ6gcAC0EAIAEgB0GM1cAAEOoHAAsgACAHQbzUwAAQjAcACyABIAdBzNTAABCMBwALIAggB0Hc1MAAEIwHAAtBBEEEQfDPxwAQjAcACyAJIAdB7NTAABCMBwALIA1BhAhJDQAgDRCbBwsgBkHwAGokAA8LIAEgBEH81MAAEIwHAAsgBkEANgIcQQAgBkEUaiAGQRhqIAZBHGpB4PnEABD1BwALvxECE38EfiMAQSBrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgZBgICAgHhzIAZBAE4bQRRrDgIBAgALIAEgAkEfakGE48AAEJUIIQEgAEECNgIAIAAgATYCBAwKCyABKAIMIgNFDQIgAkEEaiABKAIIIgcQoAQgAigCCCEGIAIoAgQiCkGAgICAeEYEQCAGIQEMCQsgAigCFCEJIAIoAhAhBSADQQFGDQEgAigCGCEMIAIoAgwhDSACQQRqIgsgB0EQahDTAiACKAIIIQEgAigCBA0HAkACQAJAIANBAkcEQCACKQIMIRUgCyAHQSBqENMCIAIoAgghCyACKAIEBEAgCyEBDAwLIANBA0YNASACKQIMIRYCQAJAAkBBFSAHQTBqIg4oAgAiD0GAgICAeHMgD0EAThtBEGsOAwYBBgALIAJBBGogDhCfBQwBCyACQQRqIAcoAjQQnwULIAIoAgwhECACKAIIIQQgAigCBEUNAiAEIQEMCwtBAkHA/cAAQYD9wAAQ2wYhAQwKC0EDQcD9wABBgP3AABDbBiEBDAkLQQEhCAsgA0EERwRAIAJBBDYCBCADQfz///8AakH/////AHFBBGogAkEEakHolcEAENsGIQEgAEECNgIAIAAgATYCBCAKBEAgBiAKQQEQogcLIAVFDQogCSAFQQEQogcMCgsgACAWNwI0IAAgCzYCMCAAIBU3AiggACABNgIkIAAgDDYCICAAIAk2AhwgACAFNgIYIAAgDTYCFCAAIAY2AhAgACAKNgIMIAAgEDYCCCAAIAQ2AgQgACAINgIADAkLIAEoAggiBkUNAyAGQQV0IRIgASgCBCETQQAhBkECIQVBgICAgHghBwNAAkACQAJAAkACQAJAAkACQEEVIA4gE2oiASgCACIDQYCAgIB4cyADQQBOG0EBaw4PAQAAAgAAAAAAAAADBAUGAAsgASACQR9qQZTkwAAQlQghAyACQQE6AAQgAiADNgIIDAYLIAJBADoABCACQQQgAUEEai0AACIDIANBBE8bOgAFDAULIAJBADoABCACQgQgAUEIaikDACIVIBVCBFobPAAFDAQLIAFBCGooAgAhAwJ/AkACQAJAAkAgAUEMaigCAEEEaw4CAQADCyADQZD9wABBBRDbBw0BQQAMAwtBASADKAAAQe3SuZsHRg0CGiADKAAAQe3C4ZsHRw0BQQIMAgsgA0Gd/cAAQQUQ2wcNAEEDDAELQQQLIQMgAkEAOgAEIAIgAzoABQwDCyABQQRqKAIAIQMCfwJAAkACQAJAIAFBCGooAgBBBGsOAgEAAwsgA0GQ/cAAQQUQ2wcNAUEADAMLQQEgAygAAEHt0rmbB0YNAhogAygAAEHtwuGbB0cNAUECDAILIANBnf3AAEEFENsHDQBBAwwBC0EECyEDIAJBADoABCACIAM6AAUMAgsgAkEEaiABQQhqKAIAIAFBDGooAgAQ2QUMAQsgAkEEaiABQQRqKAIAIAFBCGooAgAQ2QULIAItAARBAUYEQCACKAIIIQRBASEFDAYLIAFBEGohAwJAAkACQAJAAkACQAJAIAItAAUOBAABAgMGCyAHQYCAgIB4RwRAQQEhBUGQ/cAAQQUQnwchBAwMCyACQQRqIAMQoAQgAigCCCEIIAIoAgQiB0GAgICAeEYEQCAIIQQMDQsgAigCGCEQIAIoAhQhDCACKAIQIQkgAigCDCERDAULIAYNAiACQQRqIAMQ0wIgAigCCCEEIAIoAgRBAUYEQEEBIQUMCwsgAikCDCEWQQEhBgwECyAPDQIgAkEEaiADENMCIAIoAgghCyACKAIEQQFGBEBBASEFIAshBAwKCyACKQIMIRdBASEPDAMLIAVBAkcEQEEBIQVBnf3AAEEFEJ8HIQQMCQtBACEFAkACfwJAAkBBFSADKAIAIhRBgICAgHhzIBRBAE4bQRBrDgMDAQMACyACQQRqIAMQnwUgDSACKAIMIAIoAgQiARsMAQsgAkEEaiABQRRqKAIAEJ8FIA0gAigCDCACKAIEIgEbCyENIAIoAgghCkEBIQUgAUUNACAKIQQMCQsgCq0gDa1CIIaEIRgMAgtBASEFQZX9wABBBBCfByEEDAcLQQEhBUGZ/cAAQQQQnwchBAwGCyAOQSBqIg4gEkcNAAsMAgtBAUHA/cAAQYD9wAAQ2wYhAQwFC0EAQcD9wABBgP3AABDbBiEBDAULIAdBgICAgHhGDQAgAiAQNgIYIAIgDDYCFCACIAk2AhAgAiARNgIMIAIgCDYCCCACIAc2AgQgBkEAIA8bRQRAQZn9wABBlf3AACAGG0EEEJwHIQQgAkEEahDmBUEAIQUMAgsgACAXNwI0IAAgCzYCMCAAIBY3AiggACAENgIkIAAgEDYCICAAIAw2AhwgACAJNgIYIAAgETYCFCAAIAg2AhAgACAHNgIMIABCACAYIAVBAkYiARsiFT4CBCAAQQAgBSABGzYCACAAIBVCIIg+AggMBQtBgICAgHghB0EBIQVBkP3AAEEFEJwHIQQLIAVFIAdBgICAgHhGcg0AIAcEQCAIQQRrKAIAIgFBeHEiBkEEQQggAUEDcSIBGyAHakkNBSABQQAgBiAHQSdqSxsNBiAIEKICCyAJRQ0AIAxBBGsoAgAiAUF4cSIIQQRBCCABQQNxIgEbIAlqSQ0EIAFBACAIIAlBJ2pLGw0FIAwQogILIAAgBDYCBCAAQQI2AgAMAgsgCgRAIAZBBGsoAgAiBEF4cSIIQQRBCCAEQQNxIgQbIApqSQ0DIARBACAIIApBJ2pLGw0EIAYQogILIAVFDQAgCUEEaygCACIEQXhxIghBBEEIIARBA3EiBBsgBWpJDQIgBEEAIAggBUEnaksbDQMgCRCiAgsgACABNgIEIABBAjYCAAsgAkEgaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALqBECB30QfyMAQSBrIgwkACAAEKMFIABBwAFqQQA6AAAgAEIANwK4ASAAIAIQ0AQCQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJ/AkACQAJAAkACQCAAKAIAQQFHDQAgACgCCEUNACACQQJ0Ig0gACgCfCIRSw0SIA0gACgCiAEiEksNEyAAKAJ4IRQgACgChAEhFiAMIAAoAgQiGSABQQJ0IhcgASACakECdCIYEOEIIgEQuAoiDjYCACAMIA02AgQgDSAORw0YIBQgDSABEOEJIAFBhAhPBEAgARCbBwsgAgRAIBRBDGohGiANQQJrIRsgAkH/////A3EhFUEAIQFBACEOA0AgASAETw0WIAFBAWoiDyAETw0XIAFBAmoiDyAETw0YIBVFDRlDAAB/QyADQQRqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgAyoCACIJiyIGIAUgA0EIaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIPQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByATIBpqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgD0EbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACABQQNqIARPDQMgAUEEaiAETw0IIAFBBWogBE8NDSANIA5GDRNDAAB/QyADQRBqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EMaioCACIJiyIGIAUgA0EUaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIQQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByATIBZqIg9DAAB/QyAGIAWVIgYgBkMAAH9DXhsQuQf8ASAQQRt0QYCAgAhBACAJQwAAAABdG3JBgICAEEEAIAhDAAAAAF0bckGAgIAgQQAgCkMAAAAAXRtyciAH/AFBCHRyQwAAf0MgCyAFlSIFIAVDAAB/Q14bELkH/AFBEHRyNgIAIAFBBmogBE8NBCABQQdqIARPDQkgAUEIaiAETw0OQwAAf0MgA0EcaioCACIIiyIFQwAAgD9DAAD4QUMAAAAAIANBGGoqAgAiCYsiBiAFIANBIGoqAgAiCosiCxDgCBDgCBCeBY5DAABwQZIiBSAFQwAAAABdGyIFIAVDAAD4QV4bELkH/AAiEEEPaxCwBkMAAH9DlSIFlSIHIAdDAAB/Q14bELkHIQcgD0EEakMAAH9DIAYgBZUiBiAGQwAAf0NeGxC5B/wBIBBBG3RBgICACEEAIAlDAAAAAF0bckGAgIAQQQAgCEMAAAAAXRtyQYCAgCBBACAKQwAAAABdG3JyIAf8AUEIdHJDAAB/QyALIAWVIgUgBUMAAH9DXhsQuQf8AUEQdHI2AgAgAUEJaiAETw0FIAFBCmogBE8NCiABQQtqIARPDQ8gDiAbRg0SQwAAf0MgA0EoaioCACIIiyIFQwAAgD9DAAD4QUMAAAAAIANBJGoqAgAiCYsiBiAFIANBLGoqAgAiCosiCxDgCBDgCBCeBY5DAABwQZIiBSAFQwAAAABdGyIFIAVDAAD4QV4bELkH/AAiEEEPaxCwBkMAAH9DlSIFlSIHIAdDAAB/Q14bELkHIQcgD0EIakMAAH9DIAYgBZUiBiAGQwAAf0NeGxC5B/wBIBBBG3RBgICACEEAIAlDAAAAAF0bckGAgIAQQQAgCEMAAAAAXRtyQYCAgCBBACAKQwAAAABdG3JyIAf8AUEIdHJDAAB/QyALIAWVIgUgBUMAAH9DXhsQuQf8AUEQdHI2AgAgAUEMaiAETw0GIAFBDWogBE8NCyABQQ5qIARPDRBDAAB/QyADQTRqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EwaioCACIJiyIGIAUgA0E4aioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIQQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAPQQxqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgEEEbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACADQTxqIQMgAUEPaiEBIBNBEGohEyAVQQFrIRUgDkEEaiEOIAJBAWsiAg0ACwsgDCAZIBcgGBDhCCIBELgKIgI2AgAgDCARNgIEIAIgEUcNGCABIBQgERDgCSABQYQITwRAIAEQmwcLIAwgACgCDCAXIBgQ4QgiABC4CiIBNgIAIAwgEjYCBCABIBJHDRggACAWIBIQ4AkgAEGECEkNACAAEJsHCyAMQSBqJAAPCyABQQNqDAMLIAFBBmoMAgsgAUEJagwBCyABQQxqCyAEQdi8wQAQjAcACyABQQRqDAMLIAFBB2oMAgsgAUEKagwBCyABQQ1qCyAEQei8wQAQjAcACyABQQVqDAMLIAFBCGoMAgsgAUELagwBCyABQQ5qCyAEQfi8wQAQjAcACyAOQQJqIQ4LIA4gDUGIvcEAEIwHAAtBACANIBFBmL3BABDqBwALQQAgDSASQYi8wQAQ6gcACyABIARBmLzBABCMBwALIA8gBEGovMEAEIwHAAsgDyAEQbi8wQAQjAcACyAOQQNqIA1ByLzBABCMBwALIAxBADYCCEEAIAwgDEEEaiAMQQhqQeD5xAAQ9QcAC/8SAwt/BH4CeyMAQaACayIEJAACQCABKAIQIgUoAjAgAk0EQCAAQgM3AwAgAEGEgICAeDYCCAwBCyAFKAIsIAJBuAFsaiEGAkACQCADLQAIRQRAIAYtAKABIQUgAygCACICRQ0BIAVBAXENAgtBACECIANBADYCAAwBC0EAIQIgBUEBcUUNACAAQSE2AhAgAEHknccANgIMIABBg4CAgHg2AgggAEIDNwMADAELAkACQCAGLQBoQQNGBEAgBikDYCERDAELIAEoAgQiBa0hEAJAAkAgBUL/////DyAGKQNQIg8gD0L/////D1obp2siCEEAIAUgCE8bQR1NBEBBqJDIACkDACIRpyECAkAgEUL/AYNCBFEEQCABIA9CHnw3AwggAkH/AXFBBEcNAQwDCyABIBA3AwggAkH/AXFBBEYNAgsgEUIgiKchASARQgiIpyIFIQMCQAJAAkACQCACQf8BcSIIQQFrDgMBAAACCyABLQAIIQMLIANB/wFxQSVGDQELIAQgATYCUCAEQYGAgIB4NgJIIAQgBUEIdCAIcjYCTAwFCyAEQR42AiQgBEGFnscANgIgIAQgBEEgaq1CgICAgCCENwMYIARCATcCrAEgBEEBNgKkASAEQbiexwA2AqABIAQgBEEYajYCqAEgBEHIAGogBEGgAWoQ7AMgAkH/AXFBA0cNBCABKAIAIQIgAUEEaigCACIDKAIAIgUEQCACIAURAwALIAMoAgQiBQRAIAIgBSADKAIIEKIHCyABQQxBBBCiBwwECyABIA9CHnwiETcDCCABKAIAIA8gECAPIBBUG6dqIgUoAABB0JaNIEYNAQsgBEHQAGpB5J7HACgCADYCACAEQdyexwApAgA3A0gMAgsgBTMAHCEPIAUzABohECAEQgE3A6ABIAQgDyAQIBF8fCIRNwOoASAGQeAAaiAEQaABahDIBgsgASARNwMIIAQgBikDQCIPNwNAIAQgDzcDOEGDgICAeCEFAn4CQAJAIAYvAYQBIgdBAkYEQEHgnMcAIQFBICECDAELIAQpAjwhECAPQiCIpyEKIA+nIQggBjMBICEPAn8CQAJAAkAgAgRAIA9QDQFBmIvBACEBQccAIQIMBQsgD1ANAUGFgICAeCEFDAQLIAMoAgQhBwJAIAYtAKIBIgxFBEAgBi0AiwEhCwwBCyAGLwGYAUEBcQ0CC0EADAILQgAMBAsgBi0AnQELIQ0CQCAHRQRAQfis0ZEBIQNBic+VmgIhCUGQ8dmiAyEFDAELQZDx2aIDIQVBic+VmgIhCUH4rNGRASEDA0AgBUH/AXEgAi0AACADc0H/AXFBAnQoAvC9SCADQQh2cyIDQf8BcSAJakGFiKLAAGxBAWoiCUEYdnNBAnQoAvC9SCAFQQh2cyEFIAJBAWohAiAHQQFrIgcNAAsLIAQgBTYCwAEgBCAJNgK8ASAEIAM2ArgBIAQgCjYCrAEgBCAQNwKkASAEIAg2AqABIAQgATYCsAEgBEHQAGpBADYCAEIAIRAgBEIANwNIAkACQAJAIAQpA6gBIg9QRQRAIAEoAgAhCiABKAIEIgWtIRAgBEHIAGohB0EMIQMCfgNAIAogESAQIBAgEVYbpyIIaiEJAkAgBSAIayICIA8gA60iEiAPIBJUG6ciDiACIA5JGyICQQFGBEAgByAJLQAAOgAADAELIAJFDQAgByAJIAL8CgAACyAPIAKtIhJ9IQ8gESASfCERIA8gBSAIRg0BGiADIAJrIgNFDQMgAiAHaiEHIA9QRQ0AC0IACyEQIAEgETcDCAsgBCAQNwOoAUGBgICAeCEFQaiQyAApAwAiEEL/AYNCBFENAQwCCyABIBE3AwggBCAPNwOoAQsgBEG4AWoiASAELQBIEM8GGiABIAQtAEkQzwYaIAEgBC0AShDPBhogASAELQBLEM8GGiABIAQtAEwQzwYaIAEgBC0ATRDPBhogASAELQBOEM8GGiABIAQtAE8QzwYaIAEgBC0AUBDPBhogASAELQBREM8GGiABIAQtAFIQzwYaIAEgBC0AUxDPBiECAkACQCAMBEAgAkH/AXEgDUcNAQwCCyACQf8BcSALRg0BC0GFgICAeCEFDAELIAQgAf0AAgD9CwM4IAQpAqQBIRAgBCgCoAEhCCAEKAKwASIBDQIgCCEFCyAQQiCIpyECIBCnIQELIAAgAjYCECAAIAE2AgwgACAFNgIIIABCAzcDAAwDCyAEKAK0ASEDIAQoAqwBIQogBCAE/QADOP0LAyggBi8BhAEhB0IBCyERIAYoAogBIQsCQAJAQYDAABBxIgVFDQAgEEIgiKchAiAQpyEJAn8CQAJAIAdB//8DcUEBaw4CAQQACyAEIAT9AAMo/QsDkAH9DAAAAAAAIAAAAAAAAAAAAAAgBf0cACETIAj9ESAJ/RwBIAL9HAIgCv0cAyEUQgIhD0EADAELIAQgAzYCtAEgBCABNgKwASAEIAo2AqwBIAQgAjYCqAEgBCAJNgKkASAEIAg2AqABIAQgBP0AAyj9CwO4ASAEQcgBahCZBCAEQeAAaiAEQfABav0AAwD9CwMAIARB8ABqIARBgAJq/QADAP0LAwAgBEGAAWogBEGQAmr9AAMA/QsDACAEIAT9AAPYAf0LA5ABIAQgBCkD6AE3A1ggBEHAAWr9AAQAIRQgBCgC1AEhAyAEKALQASEBIAQoArQBIQkgBP0ABKABIRMgESEPIAQpA7gBIREgBCgCsAELIQdBuAEQcSICRQ0AIAIgAzYCVCACIAE2AlAgAiAU/QsDQCACIBE3AzggAiAJNgI0IAIgBzYCMCACIBP9CwMgIAIgDzcDGCACQgA3AgwgAkKAwAA3AgQgAiAFNgIAIAIgBP0AA5AB/QsDWCACIAQpA1g3A2ggAkHwAGogBEHgAGr9AAMA/QsDACACQYABaiAEQfAAav0AAwD9CwMAIAJBkAFqIARBgAFq/QADAP0LAwAgAkEBOgC0ASACIAs2ArABIAJBADYCqAEgAkIANwOgASAAQgI3AwAgACAGNgIIIABBAjYCqAEgACACNgKsAQwDCwALIAVBgMAAQQEQogcgAEEgNgIQIABB4JzHADYCDCAAQYOAgIB4NgIIIABCAzcDAAwBCyAEIAQpAEk3AA0gBCAELQBIOgAMIAQgBC0AUzoAFyAEIAQvAFE7ABUgBCgCDCEBIAAgBCkCEDcCDCAAIAE2AgggAEIDNwMACyAEQaACaiQAC6UQAQ5/IwBBgAhrIgMkAAJAIAFBA2pBfHEgAWsiBCACSwRAQQEhDkEEIQsMAQsgASAEaiILIAIgBGsiAkF8cWohDiACQQNxIQ8gAkECdiEIIAQhAgsgAEF/cyEAAkAgAkUNAEEAIQQgAkEBRwRAIAJBAXEgAkF+cSECA0AgASAEaiIHQQFqLQAAIActAAAgAHNB/wFxQQJ0KALwvUggAEEIdnMiAHNB/wFxQQJ0KALwvUggAEEIdnMhACACIARBAmoiBEcNAAtFDQELIAEgBGotAAAgAHNB/wFxQQJ0KALwvUggAEEIdnMhAAtBACEFIAhBBW4iAUEBayICQQAgASACTxshCQJAIAhBCkkEQEEAIQcMAQtBACECIAshBEEAIQcDQAJAAkAgAiAITw0AIAggAmsiBkEAIAYgCE0bIgZBAUcEQCAGQQJHBEAgBkEDRwRAIAZBBEcNBCACQQRqIQIMAwsgAkEDaiECDAILIAJBAmohAgwBCyACQQFqIQILIAIgCEHgvcgAEIwHAAsgByAEQQhqKAIAcyIHQf8BcUECdCgC0J1IIAdBBnZB/AdxKALQpUhzIAdBDnZB/AdxKALQrUhzIAdBFnZB/AdxKALQtUhzIQcgBSAEQQRqKAIAcyIFQf8BcUECdCgC0J1IIAVBBnZB/AdxKALQpUhzIAVBDnZB/AdxKALQrUhzIAVBFnZB/AdxKALQtUhzIQUgACAEKAIAcyIAQf8BcUECdCgC0J1IIABBBnZB/AdxKALQpUhzIABBDnZB/AdxKALQrUhzIABBFnZB/AdxKALQtUhzIQAgDCAEQRBqKAIAcyIMQf8BcUECdCgC0J1IIAxBBnZB/AdxKALQpUhzIAxBDnZB/AdxKALQrUhzIAxBFnZB/AdxKALQtUhzIQwgBEEMaigCACAKcyIKQf8BcUECdCgC0J1IIApBBnZB/AdxKALQpUhzIApBDnZB/AdxKALQrUhzIApBFnZB/AdxKALQtUhzIQogAkEFaiECIARBFGohBCANQQFqIg0gCUkNAAsLIAlBBWwiAiAITQRAAkAgAiAIRg0AIAsgAkECdGoiBCgCACEJQQAiBkUEQCADQfDFyABBgAj8CgAACyADIAAgCXMiAEH/AXFBAnRqKAIAIQkgBkUEQCADQfDNyABBgAj8CgAACyADIABBBnZB/AdxaigCACENIAZFBEAgA0Hw1cgAQYAI/AoAAAsgAyAAQQ52QfwHcWooAgAhECAGRQRAIANB8N3IAEGACPwKAAALIAMgAEEWdkH8B3FqKAIAIAkgDXMgEHNzIQAgCCACayICQQFGDQAgBCgCBCEJQQBFBEAgA0HwxcgAQYAI/AoAAAsgAyAFIAlzIABzIgBB/wFxQQJ0aigCACEFIAZFBEAgA0HwzcgAQYAI/AoAAAsgAyAAQQZ2QfwHcWooAgAhCSAGRQRAIANB8NXIAEGACPwKAAALIAMgAEEOdkH8B3FqKAIAIQ0gBkUEQCADQfDdyABBgAj8CgAACyADIABBFnZB/AdxaigCACAFIAlzIA1zcyEAIAJBAkYNACAEKAIIIQZBACIFRQRAIANB8MXIAEGACPwKAAALIAMgBiAHcyAAcyIAQf8BcUECdGooAgAhByAFRQRAIANB8M3IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQYgBUUEQCADQfDVyABBgAj8CgAACyADIABBDnZB/AdxaigCACEJIAVFBEAgA0Hw3cgAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgBiAHcyAJc3MhACACQQNGDQAgBCgCDCEHQQBFBEAgA0HwxcgAQYAI/AoAAAsgAyAHIApzIABzIgBB/wFxQQJ0aigCACEHIAVFBEAgA0HwzcgAQYAI/AoAAAsgAyAAQQZ2QfwHcWooAgAhCiAFRQRAIANB8NXIAEGACPwKAAALIAMgAEEOdkH8B3FqKAIAIQYgBUUEQCADQfDdyABBgAj8CgAACyADIABBFnZB/AdxaigCACAHIApzIAZzcyEAIAJBBEYNACAEKAIQIQVBACIERQRAIANB8MXIAEGACPwKAAALIAMgBSAMcyAAcyIAQf8BcUECdGooAgAhBSAERQRAIANB8M3IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQcgBEUEQCADQfDVyABBgAj8CgAACyADIABBDnZB/AdxaigCACEKIARFBEAgA0Hw3cgAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgBSAHcyAKc3MhACACQQVGDQAgAUEUbEEBIAEgARsiBEEUbGsgC2pBFGohAiAIIARBBWxqIAFBBWxrQQVrIQEDQCACKAIAIQtBACIERQRAIANB8MXIAEGACPwKAAALIAMgACALcyIAQf8BcUECdGooAgAhCyAERQRAIANB8M3IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQggBEUEQCADQfDVyABBgAj8CgAACyADIABBDnZB/AdxaigCACEFIARFBEAgA0Hw3cgAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgCCALcyAFc3MhACACQQRqIQIgAUEBayIBDQALCwJAIA9FDQAgDi0AACAAc0H/AXFBAnQoAvC9SCAAQQh2cyEAIA9BAUYNACAOLQABIABzQf8BcUECdCgC8L1IIABBCHZzIQAgD0ECRg0AIA4tAAIgAHNB/wFxQQJ0KALwvUggAEEIdnMhAAsgA0GACGokACAAQX9zDwsgAiAIIAhB0L3IABDqBwALsB8DDn8HfgN7IwBBIGsiDyQAAkACQCABQSFPBEADQCADRQRAIAEiAiACQQF2aiIGBEAgACEDA0ACQAJ/IAIgBkEBayIGTQRAIAYgAmsMAQsgA0EQaiIA/QADACEaIAMgBkEFdGoiAf0AAwAhGyAAIAFBEGoiAP0AAwD9CwMAIAP9AAMAIRkgAyAb/QsDACABIBn9CwMAIAAgGv0LAwBBAAsiAUEBdCIFQQFyIgAgAiAGIAIgBkkbIgdPDQADQCAFQQJqIgUgB0kEQAJ/AkAgAyAAQQV0aiIEKQMIIhMgAyAFQQV0aiIFKQMIIhJSDQAgBCkDECITIAUpAxAiElINAEEAIAQpAxgiEyAFKQMYIhJRDQEaCyASIBNWCyAAaiEACyADIABBBXRqIggpAxghFyADIAFBBXRqIgQpAxghFiAEKQMIIhQhEyAIKQMIIhghEgJAIBQgGFINACAEKQMQIhMgCCkDECISUg0AIBciEiAWIhNRDQILIBIgE1gNASAIKAIUIQUgCCgCECEBIAggBCkDEDcDECAEIBg+AgggCCAUPgIIIAQgGEIgiD4CDCAIIBRCIIg+AgwgBCAXPgIYIAggFj4CGCAEKQMAIRIgBCAIKQMANwMAIAggEjcDACAEIAE2AhAgBCAFNgIUIAQgF0IgiD4CHCAIIBZCIIg+AhwgACIBQQF0IgVBAXIiACAHSQ0ACwsgBg0ACwsMBAsgACABQQN2IgVB4AFsaiEGIAAgBUEHdGohBwJAIAFBwABPBEAgACAHIAYgBRDvBCEFDAELIAcpAxghGCAAKQMYIRcgACkDCCITIRUgBykDCCISIRQCfwJAIBIgE1INACAAKQMQIhUgBykDECIUUg0AQQAgGCIUIBciFVENARoLIBQgFVYLIQQgBikDGCEWIAYpAwgiFSEUAkACQCATIBVSDQAgACkDECITIAYpAxAiFFINACAXIhMgFiIUUg0AIAAhBSAERQ0BDAILIAAhBSAEIBMgFFRzDQELIAYgBwJ/AkAgEiAVUg0AIAcpAxAiEiAGKQMQIhVSDQBBACAYIhIgFiIVUQ0BGgsgEiAVVAsgBHMbIQULIANBAWshAyAFIABrIQUCfwJAIAJFDQACQAJAIAIpAwgiEyAAIAVqIgQpAwgiElINACACKQMQIhMgBCkDECISUg0AIAIpAxgiEyAEKQMYIhJRDQELIBIgE1YNAQsgD0EQaiIQIABBEGoiDv0AAwD9CwMAIA8gAP0AAwD9CwMAIAT9AAMAIRkgDiAEQRBqIgL9AAMA/QsDACAAIBn9CwMAIAIgEP0AAwD9CwMAIAQgD/0AAwD9CwMAQSAhBSAAQSBqIQogACABQQV0IgZqIQkgDikDACEXIABBGGopAwAhFiAAQQhqKQMAIRMgAP0AAzAhGiAA/QADICEbIAApAzghFEEAIQ1BACELA0AgBSEEIAAgDWoiAkFAayEMIAJBIGohCCATIRICfwJAIBMgAkHIAGopAwAiFVINACACQdAAaikDACIVIBciElINAEEBIAJB2ABqKQMAIhUgFiISUQ0BGgsgEiAVWgsgCiALQQV0aiIF/QADACEZIAhBEGogBUEQaiIC/QADAP0LAwAgCCAZ/QsDACACIAxBEGr9AAMA/QsDACAFIAz9AAMA/QsDACAEQSBqIQUgC2ohCyAAIA1BIGoiDWoiB0FAayICIAlJDQALIBv9HQEhGCACIAlGBH8gB0EgagUgBkFAaiEHA0AgACAEaiICQSBqIQwgAkFAayEIIBMhEgJ/AkAgEyACQcgAaikDACIVUg0AIAJB0ABqKQMAIhUgFyISUg0AQQEgAkHYAGopAwAiFSAWIhJRDQEaCyASIBVaCyAKIAtBBXRqIgb9AAMAIRkgDEEQaiAGQRBqIgL9AAMA/QsDACAMIBn9CwMAIAIgCEEQav0AAwD9CwMAIAYgCP0AAwD9CwMAIAtqIQsgByAEQSBqIgRHDQALIAAgBGpBIGoLIQQgCiALQQV0aiIF/QADACEZIARBEGogBUEQaiIC/QADAP0LAwAgBCAZ/QsDACACIBr9CwMAIAUgG/0LAwACfwJAIBMgGFINACAa/R0AIhggFyITUg0AQQEgFiITIBQiGFENARoLIBMgGFoLIAtqIgQgAU8NBCAQIA79AAMA/QsDACAPIAD9AAMA/QsDACAAIARBBXRqIgX9AAMAIRkgDiAFQRBqIgL9AAMA/QsDACAAIBn9CwMAIAIgEP0AAwD9CwMAIAUgD/0AAwD9CwMAIAEgBEEBaiICayEBIAAgAkEFdGohAEEADAELIA9BEGoiDiAAQRBqIhH9AAMA/QsDACAPIAD9AAMA/QsDACAAIAVqIgT9AAMAIRkgESAEQRBqIgX9AAMA/QsDACAAIBn9CwMAIAUgDv0AAwD9CwMAIAQgD/0AAwD9CwMAQSAhBSAAQSBqIRAgACABQQV0IghqIQogESkDACEXIABBGGopAwAhFiAAQQhqKQMAIRMgAP0AAzAhGiAA/QADICEbIAApAzghFEEAIQ1BACELA0AgBSEEIAAgDWoiBUFAayEJIAVBIGohDCATIRICfwJAIAVByABqKQMAIhUgE1INACAXIhIgBUHQAGopAwAiFVINAEEAIBYiEiAFQdgAaikDACIVUQ0BGgsgEiAVVgsgECALQQV0aiIG/QADACEZIAxBEGogBkEQaiIF/QADAP0LAwAgDCAZ/QsDACAFIAlBEGr9AAMA/QsDACAGIAn9AAMA/QsDACAEQSBqIQUgC2ohCyAAIA1BIGoiDWoiBkFAayIHIApJDQALIBv9HQEhGCAHIApGBH8gBkEgagUgCEFAaiEGA0AgACAEaiIFQSBqIQkgBUFAayEMIBMhEgJ/AkAgBUHIAGopAwAiFSATUg0AIBciEiAFQdAAaikDACIVUg0AQQAgFiISIAVB2ABqKQMAIhVRDQEaCyASIBVWCyAQIAtBBXRqIgj9AAMAIRkgCUEQaiAIQRBqIgX9AAMA/QsDACAJIBn9CwMAIAUgDEEQav0AAwD9CwMAIAggDP0AAwD9CwMAIAtqIQsgBiAEQSBqIgRHDQALIAAgBGpBIGoLIQcgECALQQV0aiIE/QADACEZIAdBEGogBEEQaiIF/QADAP0LAwAgByAZ/QsDACAFIBr9CwMAIAQgG/0LAwACfwJAIBMgGFINACAXIhMgGv0dACIYUg0AQQAgFiITIBQiGFENARoLIBMgGFYLIAtqIgQgAU8NAyAOIBH9AAMA/QsDACAPIAD9AAMA/QsDACAAIARBBXRqIgf9AAMAIRkgESAHQRBqIgX9AAMA/QsDACAAIBn9CwMAIAUgDv0AAwD9CwMAIAcgD/0AAwD9CwMAIAAgBCACIAMQqgEgASAEQX9zaiEBIAdBIGohACAHCyECIAFBIU8NAAsLIAAhCiMAQYAMayIHJAACQCABIgxBAkkNAEEBIQIgACABQQF2Ig1BBXQiA2ohESADIAdqIQYCQCABQQhPBEAgACAHEK4DIBEgBhCuA0EEIQIMAQsgB0EQaiAKQRBq/QADAP0LAwAgByAK/QADAP0LAwAgBiAR/QADAP0LAwAgBkEQaiARQRBq/QADAP0LAwALIAIgDUkEQCACQQV0IQEgAkEBaiEFIAIhAANAIAAhAyAFIQAgByADQQV0IgNqIgQgAyAKaiIDKQMANwMAIARBGGogA0EYaikDACIWNwMAIARBEGogA0EQaikDADcDACAEQQhqIANBCGopAwAiEzcDAAJAAkAgBEEYaykDACIUIBMiElINACAEKQMQIhIgBEEQaykDACIUUg0AIARBCGspAwAiFCAWIhJRDQELIBIgFFoNACAEKQMQIRcgBCkDACEYIAEhBQNAAkAgBSAHaiIIIAhBIGsiA/0AAwD9CwMAIAhBEGogA0EQav0AAwD9CwMAIAVBIEYEQCAHIQMMAQsgBEEgayEEAkAgCEE4aykDACIUIBMiElINACAFIAdqQTBrKQMAIhQgFyISUg0AIAhBKGspAwAiFCAWIhJSDQAgBCEDDAELIAVBIGshBSASIBRUDQELCyADIBg3AwAgCEEIayAWNwMAIAhBEGsgFzcDACAIQRhrIBM3AwALIAFBIGohASAAIAAgDUkiA2ohBSADDQALCyAMIA1rIhAgAksEQCACQQV0IQ4gAkEBaiEFQSAhCCAGIQADQCACIQEgBSECIAYgAUEFdCIBaiIEIAEgEWoiASkDADcDACAEQRhqIAFBGGopAwAiFjcDACAEQRBqIAFBEGopAwA3AwAgBEEIaiABQQhqKQMAIhM3AwACQAJAIARBGGspAwAiFCATIhJSDQAgBCkDECISIARBEGspAwAiFFINACAEQQhrKQMAIhQgFiISUQ0BCyASIBRaDQAgBCkDECEXIAQpAwAhGCAIIQMgACEJA0ACQCAJIA5qIgUgBUEgayIB/QADAP0LAwAgBUEQaiABQRBq/QADAP0LAwAgAyAORgRAIAYhAQwBCyAEQSBrIQQCQCAFQThrKQMAIhQgEyISUg0AIAkgDmpBMGspAwAiFCAXIhJSDQAgBUEoaykDACIUIBYiElINACAEIQEMAQsgA0EgaiEDIAlBIGshCSASIBRUDQELCyABIBg3AwAgBUEIayAWNwMAIAVBEGsgFzcDACAFQRhrIBM3AwALIAhBIGshCCAAQSBqIQAgAiACIBBJIgFqIQUgAQ0ACwsgBkEgayEJIAogDEEFdEEgayIAaiEDIAAgB2ohBSAHIQQDQAJAAkACQCAGKQMIIhIgBCkDCCIUUg0AIAYpAxAiEiAEKQMQIhRSDQAgBikDGCISIAQpAxgiFFINACAKIAT9AAMA/QsDACAKQRBqIARBEGr9AAMA/QsDAAwBCyAKIAYgBCASIBRUGyIA/QADAP0LAwAgCkEQaiAAQRBq/QADAP0LAwAgEiAUWg0AIAZBIGohBgwBCyAEQSBqIQQLIApBIGohCiADAn8CQCAFKQMIIhIgCSkDCCIUUg0AIAUpAxAiEiAJKQMQIhRSDQBBACEBIAUgBSkDGCISIAkpAxgiFFENARoLIAkgBSASIBRUIgEbCyIA/QADAP0LAwAgA0EQaiAAQRBq/QADAP0LAwAgA0EgayEDIAkgAUEFdCIAayEJIAAgBWpBIGshBSANQQFrIg0NAAsgCUEgaiECIAxBAXEEfyAKIAQgBiACIARLIgEbIgD9AAMA/QsDACAKQRBqIABBEGr9AAMA/QsDACAGQQBBICABG2ohBiAEQSBBACABG2oFIAQLIAJGIAYgBUEgakZxDQAQgAgACyAHQYAMaiQADAELAAsgD0EgaiQAC/4PAhh/Bn4jAEEwayIGJAAgACgCPCERIAAoAjghAyAAKAI0IQEgACgCMCEEIAD9DAAAAAAAAAAAAQAAAAEAAAD9CwQwIAAoAkAhAiAAQQA2AkAgACgCSCEFIABBATYCSCAAKAJQIQogACgCTCELIABCADcCTCAGIAU2AgwgBiALNgIQIAYgCjYCFEGo58gAIQxBgAQhCAJAAkACQAJAIAAtAJgBQQFrDgMAAQIDCyAAQaQBaiEMQbQKIQgMAgsgAEH0KmohDEG0CiEIDAELIABBxNQAaiEMQdAEIQgLQaj3yAAhDkEgIQ0CQAJAAkACQCAALQCgAUEBaw4DAAECAwsgAEGkAWohDkG0CiENDAILIABB9CpqIQ5BtAohDQwBCyAAQcTUAGohDkHQBCENCyAAKAIMIgVBQGoiB0FBSQRAQn8gADUCnAGGQn8gADUClAGGQn+FIRwgBSAHSSEJIAJB/wFxQQlLBH8gAgUgBK0gAa1CIIaEIAMpAAAgAkEPca2GhCIapyEEIBpCIIinIQEgAyACQQN2QQFxQQdzaiEDIAJBOHILIQUgAEHIAGohEiACQYB+cSEVIAAoAkQhFiAAQQhqIRNCf4UhHkEAIAcgCRshECAcpyEUAkACQANAAkAgBCADKQAAIAWthiIZp3IhAgJAAkACQAJAAkACQAJAAkACQAJAAkAgBUH/AXEiFyAAKAKUAUkEQCAIIAIgFHEiBEsNASAEIAhBqPjIABCMBwALIAggBCAUcSIETQ0BCyAFQThyIQUgASAZQiCIp3IhDyAMIARBAnRqIgEtAAMhBCABLwEAIQkgAS0AAiIBRQ0BIAohBwwCCyAEIAhBuPjIABCMBwALIAogC08NASAGKAIMIhggCmogCToAACAGIApBAWoiBzYCFAJAIAKtIA+tQiCGhCAErYgiGSAcg6ciAiAISQRAIAUgBGshBSAMIAJBAnRqIgIvAQAhCSACLQADIQQgAi0AAiIBRQ0BIBlCIIinIQ8gGachAgwCCyACIAhByPjIABCMBwALIAcgC08NAiAHIBhqIAk6AAAgBiAKQQJqIgc2AhQgCCAZIAStiCIZIByDpyICTQ0DIAUgBGshBSAZQiCIpyEPIAwgAkECdGoiAi8BACEJIAItAAMhBCACLQACIQEgGachAgsgAyAXQQN2QQdzaiEDIAUgBGshBSACrSAPrUIghoQgBK2IIhpCIIghGSAapyEEIAFB/wFxRQ0FAkACQANAIAFBEHENAiABQcAAcQ0BIAkgGkJ/IAGtQi+DhkJ/hYOnakH//wNxIgIgCEkEQCAErSAZQiCGhCAMIAJBAnRqIgItAAMiAUE/ca2IIhpCIIghGSAapyEEIAUgAWshBSACLwEAIQkgAi0AAiIBRQ0JDAELCyACIAhB6PjIABCMBwALIAFBIHFFDQUgAEEMOgAADAgLIA0gGiABrUIPgyIdiCIZIB6DpyICSw0DIAIgDUH4+MgAEIwHAAsgCiALQbz/yAAQjAcACyAHIAtBvP/IABCMBwALIAIgCEHY+MgAEIwHAAsgDiACQQJ0aiIKLQADIQsgCi0AAiEEAn8gBSABQQ9xayIBQf8BcUEcTwRAIAEhBSADDAELIAFBOHIhBSADKQAAIAGthiAZhCEZIAMgAUH4AXFBA3ZBB3NqCyECIAovAQAhAyAFIAtrIQUgGSALrYghGwJAAkACQAJAIARBEHFFBEADQCAEQcAAcQ0DIA0gAyAbQn8gBK1CL4OGQn+Fg6dqQf//A3EiA00NAiAFIA4gA0ECdGoiAS0AAyIDayEFIBsgA0E/ca2IIRsgAS8BACEDIAEtAAIiBEEQcUUNAAsLIAkgGkJ/IB2GQn+Fg6dqIQkgBSAEQQ9xayEFIBsgBK1CD4MiGogiHUIgiCEZIB2nIQQgAyAbQn8gGoZCf4WDp2pB//8DcSIKIAdLDQIgBkEMaiAKIAlB//8DcRDsAiACIQMMBgsgAyANQYj5yAAQjAcACyAbpyEEQefQwAAhAUEWIQgMAQsCQAJAAkACQCAKIAdrIgEgACgCEE0EQCAAKAIUIgMNASAQIAFrIQcMBAsgAC0AAUEEcUUNAUHVz8AAIQFBHiEIDAQLIAEgA0sNASADIAFrIQcMAgsgBkEANgIoIAZBATYCHCAGQcT5yAA2AhggBkIENwIgIAZBGGpBzPnIABCNCAALIBAgASADayIBayEHIAEgCUH//wNxTw0AIAZBDGogEyAHIBAQlAUgCSABayEJQQAhByADIQELIAZBDGogEyAHIAEgCUH//wNxIgMgASADSRsgB2oQlAUgASADTwRAIAIhAwwECyAGQQxqIAogAyABaxDsAiACIQMMAwsgAEEeOgAADAULIABBHjoAAEHL0MAAIQFBHCEIIAMhAgwECyAHIAtPDQQgBigCDCAHaiAJOgAAIAYgB0EBajYCFAsgESADayAFQfgBcUEDdmpBDk0NACAZpyEBIAYoAhAiCyAGKAIUIgprQYMCSw0BCwtBACEBIAMhAgsgACAWNgJEIAAgETYCPCASIAYpAgw3AgAgACAVIAVBB3EiA3I2AkAgEkEIaiAGQRRqKAIANgIAIAAgAiAFQfgBcUEDdms2AjggACAEQX8gA3RBf3NxrTcDMCABBEAgACAINgKIASAAIAE2AoQBCyAGQTBqJAAPCyAHIAtBvP/IABCMBwALQeT8yABBygBBsP3IABDrBwALkBECCX8EfiMAQeACayIBJAACQAJAAkAgAC0A+ANFBEAgACgCkAEiAkECRw0CIAAoAgBBAkcNAiAAKAK4AiIDQQNLDQFBACECDAMLIAA1ArgCIQogAEEANgK4AiAAIAogACkDcHw3A3AMAgsgAEGQAWohBiABIAAoArQCIgQoAAAiAjYCEAJAAkACQAJAAkACQAJAAkAgAkHSgpGaBEcEQCACQdKCkYIDRw0CIANBCEkNASADIAQoAAQiBUEHakF4cUEIaiICSQ0BIAVBCGoiByADSyAFQXdLcg0DIAFBADYC2AIgASAFNgLUAiABIARBCGo2AtACIAFBIGogAUHQAmoQWSABKAIkIQUgASgCICIIQQJGBEAgBRDOByECDAsLIAFBsAFqIAFBKGpBgAH8CgAAIABBADYCuAIgASAFNgKsASABIAg2AqgBIAMgAmshBwJAAkAgAkUNACACIANGDQEgB0UNACAEIAIgBGogB/wKAAALIAAgBzYCuAILIAAgACkDcCACrXwiCjcDeCAAIAo3A3AgASgCpAJBAUcNBCAAIAEoApQCIgQ2ApwCIAAgASgCtAEgASgCwAEiAyABKAKwARsiAjYCoAIgAkUNBSAEIAMgAm4iBCACIARsIANHaiICRgRAIAEtAKgCIQIgASAFQQAgCEEBcRs2AiQgASADNgIgIAEgAkEBcSIDOgAoIABBvAJqIAFBIGoQpQQCQCABKALQASICQQJGDQAgAkEBcQRAIAAgASoC1AE4ArwDCyABKALYAUEBRgRAIAAgASoC3AE4AsADCyABKALgAUEBRgRAIAAgASoC5AE4AsQDCyABKALoAUEBRgRAIAAgASoC7AE4AsgDCyABKALwAUEBRgRAIAAgASoC9AE4AswDCyABKAL4AUEBRgRAIAAgASoC/AE4AtADCyABKAKAAkEBRgRAIAAgASoChAI4AtQDCyABLQCIAiICQQJGDQAgACACOgDYAwsgA0UNCCAAQQE6ANgDDAgLIAEgAjYCzAIgAUECNgIkIAFB6MfBADYCICABQgI3AiwgAUKAgICAECIKIABBnAJqrYQ3A9gCIAEgCiABQcwCaq2ENwPQAiABIAFB0AJqNgIoIAFBwAJqIgAgAUEgahCxBgwGCyABQQhqIAAQugIgAS0ACEUEQCABLQAJDQhBACECDAoLIAEoAgwhAgwJC0EAIQIMCAsgAUEBNgI0IAFBzMjBADYCMCABQQE2AiQgAUHEyMEANgIgIAFBATYCLCABIAFBEGqtQoCAgICQBIQ3A9ACIAEgAUHQAmo2AiggAUEUaiIAIAFBIGoQsQYgABCOByECDAcLQQggByADQZzIwQAQ6gcACyABQQE2AiQgAUGUyMEANgIgIAFCATcCLCABIAFBpAJqrUKAgICAEIQ3A9ACIAEgAUHQAmo2AiggAUG0AmoiACABQSBqELEGDAELQbTHwQAQgQgACyAAEI4HIQIgAUGoAWoQzwQMAwsCQAJAAkAgBigCAEECRg0AIAAoAvgBIQQgACgC/AEiAwRAIARBJGohAgNAIAJBBGsoAgAiBUGAgICAeHJBgICAgHhHBEAgAigCACIHQQRrKAIAIghBeHEiCUEEQQggCEEDcSIIGyAFakkNBCAIQQAgCSAFQSdqSxsNBSAHEKICCyACQTBqIQIgA0EBayIDDQALCyAAKAL0ASIDBEAgBCADQTBsQQgQogcLIAAoAoACIgNBgICAgHhyQYCAgIB4Rg0AIAAoAoQCIANBARCiBwsgBiABQagBakGIAfwKAAAMAgtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAYoAgAhAgsCQAJAAkACQAJ/AkAgAkECRwRAIAAoApgCIAAoApwCTw0GIAAoAgBBAkYNAUEADAILIAFBqAFqIAAQRSABKAKsAUEAIAEtAKgBIgMbIQIgAw0GIAEtAKkBQQFxRQ0GIAApA4gBIgwgACkDcCIKWARAIAAoArgCIQMMBQsgACgCuAIhBEEAIQMgAEEANgK4AiAEIAwgCn0iCyAErSINIAsgDVQbIgunIgZrIQIgC1BFBEAgBCAGRg0EIAJFDQMgACgCtAIiAyADIAZqIAL8CgAADAMLIAQgBkcNAgwDC0EBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAIAJFBEAgAUGoAWogABBFIAEoAqwBIQMgAS0AqAEiAg0CIAEtAKkBQQFxRQ0CIAApA4gBIgogACkDcCIMVg0BDAYLIAFBqAFqIAAQugIgAS0AqAFBAUYEQCABKAKsASECDBELIAEtAKkBDQlBACECDBALIAAoArgCIQMgAEEANgK4AiADIAogDH0iCyADrSINIAsgDVQbIgunIgJrIQQgC1ANASACIANGDQMgBEUNAiAAKAK0AiIDIAIgA2ogBPwKAAAMAgsgA0EAIAIbIQIMDgsgAiADRg0BCyAAIAQ2ArgCCyAAIAsgDHwiDDcDcCAKIAxWDQELAkAgACgCAEECRg0AIAAoAlwiA0UNACAAKAJgIgJBBGsoAgAiBEF4cSIGIANBKGwiA0EEQQggBEEDcSIEG2pJDQIgBEEAIAYgA0EnaksbDQMgAhCiAgsgAEECNgIAIAAgACgCmAJBAWoiAzYCmAIgAyAAKAKcAkkNBAwJC0EAIQIMCQtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQQAhAgwBC0EBIQIMAAsACyAAIAI2ArgCIAIhAwsgACAKIAt8Igo3A3AgCiAMWg0AQQAhAgwCC0EAIQIgAEEANgK4AiAAQQE6APgDIAAgCiADrXw3A3AMAQsgAEEBOgD4AyAANQK4AiEKQQAhAiAAQQA2ArgCIAAgCiAAKQNwfDcDcAsgAUHgAmokACACC4oQAhl/AXsjAEFAaiIJJAAgCUEQav0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgCSAh/QsDAAJAAkAgA0UNACACQQJBACADGyINaiEPIAIgA0EBdCISaiEaIBJBAmohCEEPIQsgAiEMAkACQAJAA0AgDC8BACIKBEAgCkEPSw0CIAkgCkEBdGoiDCAMLwEAQQFqOwEAIA4gCiAKIA5JGyEOIAsgCiAKIAtLGyELCyACIA1qIQwgCCANQQJqIg1HDQALIA5FDQMgCyAOTQRAIAkvAQIiCkECSw0CIAkvAQQiDEEEIApBAXRrIghB/v8DcUsNAiAJLwEGIhYgCCAMa0EBdCIIQf7/A3FLDQIgCS8BCCIbIAggFmtBAXQiCEH+/wNxSw0CIAkvAQoiHCAIIBtrQQF0IghB/v8DcUsNAiAJLwEMIg0gCCAca0EBdCIIQf7/A3FLDQIgCS8BDiIQIAggDWtBAXQiCEH+/wNxSw0CIAkvARAiESAIIBBrQQF0IghB/v8DcUsNAiAIIBFrQf//A3FBAXQiCCAJLwESIhNJDQIgCCATa0EBdCIIIAkvARQiFEkNAiAIIBRrQQF0IgggCS8BFiIVSQ0CIAggFWtBAXQiCCAJLwEYIhdJDQIgCCAXa0EBdCIIIAkvARoiGEkNAiAIIBhrQQF0IgggCS8BHCIZSQ0CIAggGWtBAXQiCCAJLwEeIh1JDQIgCCAdRiABQf8BcUEAIA5BAUYbckUEQCAAQX82AgAMBgsgCyAGIA4gBiAOSRsgBiALSRshCCAJQQA2AiAgCSAKOwEkIAkgCiAMaiIGOwEmIAkgBiAWaiIGOwEoIAkgBiAbaiIGOwEqIAkgBiAcaiIGOwEsIAkgBiANaiIGOwEuIAkgBiAQaiIGOwEwIAkgBiARaiIGOwEyIAkgBiATaiIGOwE0IAkgBiAUaiIGOwE2IAkgBiAVaiIGOwE4IAkgBiAXaiIGOwE6IAkgBiAYaiIGOwE8IAkgBiAZajsBPiASQQJrQQF2QQFqIQwgAiEGQQAhDQNAIA8hCgJAIAYvAQAiBkUNACAGQQ9NBEAgCUEgaiAGQQF0aiIGIAYvAQAiBkEBajsBACAGQaACSQRAIAcgBkEBdGogDTsBAAwCCyAGQaACQZSDyQAQjAcACyAGQRBBhIPJABCMBwALIApBAkEAIAogGkcbaiEPIAohBiAMIA1BAWoiDUcNAAtBFCEUIAFB/wFxIgEhF0EBIRhBAiEZAkACQAJAIAFBAWsOAgABAgsgCEELTw0FQbSAyQAhGUHygMkAIRhBHyEXQYECIRQMAQsgCEEJSw0EQZKByQAhGUHSgckAIRhBICEXQQAhFAtBASAIdCIVQQFrIR4gFEEBa0H//wNxIR8gAUEBayEgQQAhD0EAIRNBACEKQQAhECAIIRJBACERQX8hFgNAAkAgFCAHIAoiG0EBdGovAQAiAUsEQCABQQAgASAfSSIBGyEGQQBB4AAgARshAQwBCyABIBRrQf//A3EiBiAXSQRAIAYgGGotAAAhASAZIAZBAXRqLwEAIQYMAQsgBiAXQYSCyQAQjAcACyAEQX8gCyARayIddCIaQQEgEnQiHCAQIA8gEXZqamoiDUECdGohDCAaQQJ0IQ8gHCEKAkACQAJ/AkACQAJAAkACQAJAA0AgBSANTQ0BIAwgBjsBACAMQQNqIB06AAAgDEECaiABOgAAIAwgD2ohDCANIBpqIQ0gCiAaaiIKDQALIAtBD0sNAUGAgICAeCALQQFrdiATaiITQRh0IBNBgP4DcUEIdHIgE0EIdkGA/gNxIBNBGHZyciIBQQR2QY+evPgAcSABQY+evPgAcUEEdHIiAUECdkGz5syZA3EgAUGz5syZA3FBAnRyIgFBAXZB1arVqgVxIAFB1arVqgVxQQF0ciEPIBtBAWohCiAJIAtBAXRqIgEgAS8BAEEBayIBOwEAAkACQCABQf//A3FFBEAgCyAORg0BIBtBnwJGDQUgAyAHIApBAXRqLwEAIgFNDQYgAiABQQF0ai8BACELCyAIIAtPDQogDyAecSIBIBZHDQEMCgsgE0UNCCAFIBBJDQUgBSAQayIBIA9LBEAgBCAQQQJ0aiAPQQJ0aiIBIB06AAMgAUHAADoAAiABQQA7AQAMCQsgDyABQdSCyQAQjAcAC0EBIAsgESAIIBEbIhFrIhJ0Ig0gCyAOTw0GGiAOIBFrIRIgCSALQQF0aiEMIAshBgNAIA0gDC8BAGsiFkEATARAIAYgEWshEgwHCyAMQQJqIQwgFkEBdCENIAZBAWoiBiAOSQ0ACwwFCyANIAVBlILJABCMBwALIAtBEEGkgskAEIwHAAtBoAJBoAJBtILJABCMBwALIAEgA0HEgskAEIwHAAsgECAFIAVB5ILJABDqBwALQQEgEnQLIBVqIRUCQAJAAkAgIA4CAAECCyAVQbQKTQ0BDAgLIBVB0ARLDQcLIAEgBUkEQCAEIAFBAnRqIgYgCDoAAyAGIBI6AAIgBiAQIBxqIhA7AQAgASEWDAILIAEgBUH0gskAEIwHAAsgACAVNgIIIAAgCDYCBCAAQQA2AgAMBwsgCkGgAkcNAAtBoAJBoAJB9IHJABCMBwALQY2cyABBHEGsnMgAEOsHAAsgCkEQQaSDyQAQjAcACyAAQX82AgAMAgsgAEEBNgIADAELIABBAjYCCCAEQoCAgIqAgICgATcBACAAQoCAgIAQNwIACyAJQUBrJAALsBMEDX8KfQN7AX4jAEGgAmsiAiQAIAEqAgAhESABKgIEIQ8gAiABKgIIIhP9EyABKgIQIhD9IAAgASoCFCIS/SAB/QsEkAEgAiAS/RMgASoCDCIS/SAAIA/9IAH9CwSAASACIBD9EyAR/SAAIBL9IAH9CwRwIAL9DAAAgD8AAAAAAAAAAAAAAAD9CwTAASAC/QwAAAAAAACAPwAAAAAAAAAA/QsEsAEgAv0MAAAAAAAAAAAAAIA/AACAP/0LBKABIBGLIA+LkiATi5JDAACAPxDgCEO9N4Y1lCITIBOUIRQgAkHAAWpBBHIhASACQaABakEEciENIAJBsAFqQQRyIQUgAkGAAWohDkEgIQsCfwNAIAIqAnQiDyAPlCACKgJ4IhAgEJSSIAL9AASAASIZ/R8CIhIgEpSSIBReRQRAIBn9HwG8DAILIAIgGSAC/QAEcCIaIBKLIBCLIhEgD4siDyAPIBFdIgwbXiIDG/0LBGAgGv0fACERIBNBCEEEIAMgDHIiBBsiByACQeAAanIqAgAiEItdBEAgAiAa/QsEUAJ9AkAgAioCmAEgGf0fASIPIAQbIA8gESADG5MiDyAPXCAQIBCSIhEgEVxyRQRAIA+8IghBgICA/ANGBEAgERDcBAwDCyAIQR52QQJxIgogEbwiBkEfdnIhCQJAAkACQAJAAkACQCAGQf////8HcSIGRQRAQ9sPScAhDyAJQQJrDgICBgELIAhB/////wdxIghFDQIgCEGAgID8B0cNAyAGQYCAgPwHRw0EIAlBAnQqAoyxSQwICyARDAcLQ9sPSUAMBgtD2w/JPyARmAwFCyAGQYCAgPwHRiAIQYCAgOgAaiAGSXINAwJ9IAoEQEMAAAAAIAZBgICA6ABqIAhJDQEaCyARIA+VixDcBAshDwJAAkACQCAJQQFrDgMBAgAECyAPQy69uzOSQ9sPScCSDAYLIA+MDAULQ9sPSUAgD0MuvbszkpMMBAsgCUECdCoCnLFJIQ8LIA8MAgsgESAPkgwBC0PbD8k/IBGYCyACQdAAaiIJIAdyKgIAIRBDAAAAP5QiDxCZAiERIANBAnQgCXIqAgAiFSAPEJsCIg+UIBEgEJSTIRIgA60hHAJAIANFBEAgAiASOAJwDAELIAIgEjgCdAtBCEEEIAQbIgkgAkHwAGpyIA8gEJQgESAVlJI4AgAgAiAZ/QsEQCAPIBynQQJ0IgogAkFAayIGcioCACISlCARIAYgB3IqAgAiFZSTIRACQCADBEAgAiAQOAKEAQwBCyACIBA4AoABCyACQfAAakEYQRQgBBtqIA8gFZQgESASlJI4AgAgAiAC/QAEkAH9CwQwIA8gAkEwaiIGIApyKgIAIhKUIBEgBiAHcioCACIVlJMhEAJ/IAMEQCACIBA4ApQBIA4MAQsgAiAQOAKQASACQfAAagshBiACQfAAaiIIQShBJCAEG2ogDyAVlCARIBKUkjgCACAGIA8gAv0ABIABIhkgAv0ABHAgAxv9HwAiEJQgESAC/QAEkAEgGSAEG/0fACISlJM4AgBBIEEQIAQbIAhqIA8gEpQgESAQlJI4AgAgBiAPIAL9AASAASIZIAL9AARwIAMb/R8BIhCUIBEgAv0ABJABIBkgBBv9HwEiEpSTOAIEQSRBFCAEGyAIaiAPIBKUIBEgEJSSOAIAIAYgDyAC/QAEgAEiGSAC/QAEcCIaIAMb/R8CIhCUIBEgAv0ABJABIBkgBBv9HwIiEpSTOAIIQShBGCAEGyAIaiAPIBKUIBEgEJSSOAIAIAYgCWpBADYCAAJ/IANFBEBBIEEQIAwbIAhqQQA2AgBCACEcIAJBwAFqIQMgAkGwAWohBCACQaABagwBCyACQQA2ApQBQgEhHCAFIQQgASEDIA0LIAIgAv0ABMAB/QsEACADIA8gAiAcp0ECdHIqAgAiEJQgESACIAdyKgIAIhKUkzgCACACIAL9AASwAf0LBCAgBCAPIAJBIGoiAyAKcioCACIVlCARIAMgB3IqAgAiFpSTOAIAIAIgAv0ABKAB/QsEECAPIAJBEGoiAyAKcioCACIXlCARIAMgB3IqAgAiGJSTOAIAIAJBwAFqIAlyIBEgEJQgDyASlJI4AgAgAkGwAWogCXIgESAVlCAPIBaUkjgCACACQaABaiAJciARIBeUIA8gGJSSOAIAIBr9HwAhEQsgC0EBayILDQALIAIoAoQBCyEDIAIgAioCmAEiEjgC3AEgAiADNgLYASAC/QAEsAEhGSAC/QAEwAEhGiAC/QAEoAEhGyACIBE4AtQBIAIgGiAZ/Q0ICQoLGBkaGwABAgMAAQIDIBv9DQABAgMEBQYHGBkaGxgZGhv9CwSAAiACIBogGf0NBAUGBxQVFhcAAQIDAAECAyAb/Q0AAQIDBAUGBxQVFhcUFRYX/QsE8AEgAiAaIBn9DQABAgMQERITAAECAwABAgMgG/0NAAECAwQFBgcQERITEBESE/0LBOABIBr9HwAiDyAPlCAZ/R8AIhMgE5SSIBv9HwAiECAQlJIiFEMAAAAAXgRAIAIgECAUkSIQlTgC6AEgAiATIBCVOALkASACIA8gEJU4AuABCyAa/R8BIg8gD5QgGf0fASITIBOUkiAb/R8BIhAgEJSSIhRDAAAAAF4EQCACIBAgFJEiEJU4AvgBIAIgEyAQlTgC9AEgAiAPIBCVOALwAQsgGv0fAiIPIA+UIBn9HwIiEyATlJIgG/0fAiIQIBCUkiIUQwAAAABeBEAgAiAQIBSRIhCVOAKIAiACIBMgEJU4AoQCIAIgDyAQlTgCgAILQQAhBCACQQA2ApwCIAJBATYCmAIgAkHUAWohB0EBIQEgEbwiBSAFQR91QQF2cyIFIANBH3VBAXYgA3MiA0gEQEEBIQQgAkEBNgKcAiACQQA2ApgCIAUhAyACQdgBaiEHQQAhAQsCQCADIBK8IgUgBUEfdUEBdnMiBU4EQEECIQMMAQsgAkGYAmohAyAFIAcoAgAiB0EfdUEBdiAHc0oEfyACIAQ2ApgCIAJBnAJqBSADC0ECNgIAAkAgAigCnAIiBEECTQRAIAIoApgCIgVBA08NASABIQMgBSEBDAILIARBA0Hg98cAEIwHAAsgBUEDQfD3xwAQjAcACyAAIAJB4AFqIgUgA0EEdGr9AAQA/QsEMCAAIAFBBHQgBWr9AAQA/QsEICAAIARBBHQgBWr9AAQA/QsEECAAIAJB1AFqIgUgA0ECdGoqAgA4AgggACABQQJ0IAVqKgIAOAIEIAAgBEECdCAFaioCADgCACACQaACaiQAC7cNAgp/An4gACgCFCECIAAoAhAhBSAAKQMIIQwgACgCBCEIIAAoAgAhCSAAKAIYIgNBAEgEQCAFIAhJBEAgCSAFQQJ0aigAACEHCyAHQRh0IAdBgP4DcUEIdHIgB0EIdkGA/gNxIAdBGHZycq0gDEIghoQhDCAFQQFqIQUgA0EgaiEDCyAMQgAgAiACQQF2IgJrIgatIANBP3GthiINIAwgDVQiBBt9IQxBACEHIAMgBiACIAQbIgJnIgNBGGsiBkEAIAMgBk8bIgZrIQMgAiAGdCECAkACQCAEBEAgBSAITQ0BDAILIANBAEgEQCAFIAhJBEAgCSAFQQJ0aigAACEHCyAHQRh0IAdBgP4DcUEIdHIgB0EIdkGA/gNxIAdBGHZycq0gDEIghoQhDCAFQQFqIQUgA0EgaiEDCyAMQgAgAiACQQF2IgJrIgStIANBP3GthiINIAwgDVQiBxt9IQwgBCACIAcbIgIgAmciAkEYayIEQQAgAiAETxsiAnQhBCADIAJrIgNBAEgEQEEAIQIgBSAISQRAIAkgBUECdGooAAAhAgsgAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnKtIAxCIIaEIQwgBUEBaiEFIANBIGohAwsgDCAEIARBAXYiAmsiBq0gA0E/ca2GIg1CACAMIA1aIgQbfSEMIAIgBiAEGyICIAJnIgJBGGsiBkEAIAIgBk8bIgJ0IQYgAyACayIDQQBIBEBBACECIAUgCEkEQCAJIAVBAnRqKAAAIQILIAJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyrSAMQiCGhCEMIAVBAWohBSADQSBqIQMLIAxCACAGIAZBAXYiAmsiCq0gA0E/ca2GIg0gDCANVCIGG30hDCAKIAIgBhsiAiACZyICQRhrIgpBACACIApPGyICdCIKIApBAXYiCmsiC60gAyACayIDQQBIBEBBACECIAUgCEkEQCAJIAVBAnRqKAAAIQILIAJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyrSAMQiCGhCEMIAVBAWohBSADQSBqIQMLIANBP3GthiINIAxYIgJBAEECIAcbIARyQQJ0QQBBAiAGG3JyIQcgDCANQgAgAht9IQwgAyAKIAsgAhsiAmciA0EYayIEQQAgAyAETxsiBGshAwJ/IAIgBHQiBCABQf8BcUEERg0AGiADQQBIBEBBACECIAUgCEkEQCAJIAVBAnRqKAAAIQILIAJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyrSAMQiCGhCEMIAVBAWohBSADQSBqIQMLIAwgBCAEQQF2IgRrIgatIANBP3GthiINQgAgDCANWiICG30hDCADIAQgBiACGyIEZyIDQRhrIgZBACADIAZPGyIGayEDIAIgB0EBdHIhByAEIAZ0IgQgAUH/AXFBBkkNABogA0EASARAQQAhAiAFIAhJBEAgCSAFQQJ0aigAACECCyACQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZycq0gDEIghoQhDCAFQQFqIQUgA0EgaiEDCyAMIAQgBEEBdiIEayIGrSADQT9xrYYiDUIAIAwgDVoiAht9IQwgAyAEIAYgAhsiBGciA0EYayIGQQAgAyAGTxsiBmshAyACIAdBAXRyIQcgBCAGdCIEIAFB/wFxQQZGDQAaIANBAEgEQEEAIQIgBSAISQRAIAkgBUECdGooAAAhAgsgAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnKtIAxCIIaEIQwgBUEBaiEFIANBIGohAwsgDCAEIARBAXYiBGsiBq0gA0E/ca2GIg1CACAMIA1aIgIbfSEMIAMgBCAGIAIbIgRnIgNBGGsiBkEAIAMgBk8bIgZrIQMgAiAHQQF0ciEHIAQgBnQLIQQgA0EASARAQQAhAiAFIAhJBEAgCSAFQQJ0aigAACECCyACQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZycq0gDEIghoQhDCAFQQFqIQUgA0EgaiEDCyAFIAhLDQEgDEIAIAQgBEEBdiICayIIrSADQT9xrYYiDSAMIA1UIgEbfSEMIAggAiABGyICIAJnIgJBGGsiCEEAIAIgCE8bIgh0IQIgAyAIayEDIAdBACAHayABGyEHCyAAIAM2AhggACACNgIUIAAgBTYCECAAIAw3AwggBw8LIAAQtAoEf0EAIAAgARDwB0H/AXEiAWsgASAAELQKGwVBAAsLjhACDn8EfiMAQSBrIgIkAAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQEEVIAEoAgAiA0GAgICAeHMgA0EAThtBFGsOAgECAAsgASACQR9qQfTiwAAQlQghASAAQYCAgIB4NgIAIAAgATYCBAwLCyABKAIMIgVFDQMgAkEEaiABKAIIIgkQoAQgAigCCCEEIAIoAgQiB0GAgICAeEYEQCAEIQEMCgsgAigCFCEIIAIoAhAhAyAFQQFGDQIgAigCGCEKIAIoAgwhCyACQQRqIgYgCUEQahDTAiACKAIIIQEgAigCBA0IIAVBAkYNASACKQIMIRAgBiAJQSBqENMCIAIoAgghBiACKAIEBEAgBiEBDAkLAkAgBUEDRwRAIAIpAgwhESACQQRqIAlBMGoQnwUgAigCBEUNASACKAIIIQEMCgtBA0G0/8AAQYD9wAAQ2wYhAQwJCyAFQQRHBEAgAkEENgIEIAVB/P///wBqQf////8AcUEEaiACQQRqQeiVwQAQ2wYhASAAQYCAgIB4NgIAIAAgATYCBCAHBEAgBCAHQQEQogcLIANFDQsgCCADQQEQogcMCwsgAigCCCEFIAAgAigCDDYCNCAAIAU2AjAgACARNwIoIAAgBjYCJCAAIBA3AhwgACABNgIYIAAgCjYCFCAAIAg2AhAgACADNgIMIAAgCzYCCCAAIAQ2AgQgACAHNgIADAoLIAEoAggiA0UNBCADQQV0IQ0gASgCBCEBQYCAgIB4IQUDQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgNBgICAgHhzIANBAE4bQQFrDg8BAAACAAAAAAAAAAMEBQYACyABIAJBH2pBxOTAABCVCCEDIAJBAToABCACIAM2AggMBgsgAkEAOgAEIAJBBCABQQRqLQAAIgMgA0EETxs6AAUMBQsgAkEAOgAEIAJCBCABQQhqKQMAIhAgEEIEWhs8AAUMBAsgAUEIaigCACEDAn8CQAJAAkACQCABQQxqKAIAQQRrDgIBAAMLIANBkP3AAEEFENsHDQFBAAwDC0EBIAMoAABB7dK5mwdGDQIaIAMoAABB7cLhmwdHDQFBAgwCCyADQZ39wABBBRDbBw0AQQMMAQtBBAshAyACQQA6AAQgAiADOgAFDAMLIAFBBGooAgAhAwJ/AkACQAJAAkAgAUEIaigCAEEEaw4CAQADCyADQZD9wABBBRDbBw0BQQAMAwtBASADKAAAQe3SuZsHRg0CGiADKAAAQe3C4ZsHRw0BQQIMAgsgA0Gd/cAAQQUQ2wcNAEEDDAELQQQLIQMgAkEAOgAEIAIgAzoABQwCCyACQQRqIAFBCGooAgAgAUEMaigCABDZBQwBCyACQQRqIAFBBGooAgAgAUEIaigCABDZBQsgAi0ABEEBRgRAIAIoAgghBEEBDAcLIAFBEGohAwJAAkACQAJAAkACQAJAAkAgAi0ABQ4EAAECAwcLIAVBgICAgHhHBEBBkP3AAEEFEJ8HIQRBAQwOCyACQQRqIAMQoAQgAigCCCEGIAIoAgQiBUGAgICAeEYEQCAGIQQMDwsgAigCGCEOIAIoAhQhCSACKAIQIQggAigCDCEPDAYLIAoNAiACQQRqIAMQ0wIgAigCCCEEQQEgAigCBEEBRg0MGiACKQIMIRFBASEKDAULIAsNAyACQQRqIAMQ0wIgAigCCCEHIAIoAgRBAUYEQCAHIQRBAQwMCyACKQIMIRJBASELDAQLIAwNASACQQRqIAMQnwUgAigCCCEDIAIoAgRBAUYEQCADIQRBAQwLCyADrSACNQIMQiCGhCETQQEhDAwDC0GV/cAAQQQQnwchBEEBDAkLQZ39wABBBRCfByEEQQEMCAtBmf3AAEEEEJ8HIQRBAQwHCyABQSBqIQEgDUEgayINDQALDAMLQQJBtP/AAEGA/cAAENsGIQEMBgtBAUG0/8AAQYD9wAAQ2wYhAQwFC0EAQbT/wABBgP3AABDbBiEBDAULIAVBgICAgHhGDQAgAiAONgIYIAIgCTYCFCACIAg2AhAgAiAPNgIMIAIgBjYCCCACIAU2AgQCQCAKRQRAQZX9wABBBBCcByEEDAELIAtFBEBBmf3AAEEEEJwHIQQMAQsgDEUEQEGd/cAAQQUQnAchBAwBCyAAIBM3AjAgACASNwIoIAAgBzYCJCAAIBE3AhwgACAENgIYIAAgDjYCFCAAIAk2AhAgACAINgIMIAAgDzYCCCAAIAY2AgQgACAFNgIADAYLIAJBBGoQ5gVBAAwBC0GAgICAeCEFQZD9wABBBRCcByEEQQELRSAFQYCAgIB4RnINACAFBEAgBkEEaygCACIBQXhxIgdBBEEIIAFBA3EiARsgBWpJDQUgAUEAIAcgBUEnaksbDQYgBhCiAgsgCEUNACAJQQRrKAIAIgFBeHEiBkEEQQggAUEDcSIBGyAIakkNBCABQQAgBiAIQSdqSxsNBSAJEKICCyAAIAQ2AgQgAEGAgICAeDYCAAwCCyAHBEAgBEEEaygCACIGQXhxIgVBBEEIIAZBA3EiBhsgB2pJDQMgBkEAIAUgB0EnaksbDQQgBBCiAgsgA0UNACAIQQRrKAIAIgRBeHEiBkEEQQggBEEDcSIEGyADakkNAiAEQQAgBiADQSdqSxsNAyAIEKICCyAAIAE2AgQgAEGAgICAeDYCAAsgAkEgaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALxRACCH8EfiMAQeACayIBJAACQAJAAkACQAJAAkACQAJAAkACQCAALQD8AkUEQCAAKAIAIgJBAkcNCSAAKAKIAUECRw0JIAAoAuACIgNBA00EQEEAIQIMCwsgASAAKALcAiIEKAAAIgI2AhACQCACQdKCkZoERwRAIAJB0oKRggNHDQMgA0EISQ0BIAMgBCgABCIFQQdqQXhxQQhqIgJJDQEgBUEIaiIGIANLIAVBd0tyDQQgAUEANgLYAiABIAU2AtQCIAEgBEEIajYC0AIgAUEgaiABQdACahBZIAEoAiQhBSABKAIgIgdBAkYEQCAFEM4HIQIMDQsgAUGwAWogAUEoakGAAfwKAAAgAEEANgLgAiABIAU2AqwBIAEgBzYCqAEgAyACayEGAkACQCACRQ0AIAIgA0YNASAGRQ0AIAQgAiAEaiAG/AoAAAsgACAGNgLgAgsgACAAKQO4AiACrXwiCTcDwAIgACAJNwO4AiABKAKkAkEBRw0FIAAgASgClAIiAzYC6AIgACABKAK0ASABKALAASICIAEoArABGyIENgLsAiAERQ0GIAIgBG4iBiAEIAZsIAJHaiIEIANGBEAgAS0AqAIhAyABIAVBACAHQQFxGzYCJCABIAI2AiAgASADQQFxOgAoIABB+AFqIAFBIGoQhAICQCAAKAIAQQJGDQAgACgCaCEEIAAoAmwiAwRAIARBJGohAgNAIAJBBGsoAgAiBUGAgICAeHJBgICAgHhHBEAgAigCACIGQQRrKAIAIgdBeHEiCEEEQQggB0EDcSIHGyAFakkNDCAHQQAgCCAFQSdqSxsNDSAGEKICCyACQTBqIQIgA0EBayIDDQALCyAAKAJkIgMEQCAEIANBMGxBCBCiBwsgACgCcCIDQYCAgIB4ckGAgICAeEYNACAAKAJ0IANBARCiBwsgACABQagBakGIAfwKAAAMCwsgASAENgLMAiABQQI2AiQgAUHox8EANgIgIAFCAjcCLCABQoCAgIAQIgkgAEHoAmqthDcD2AIgASAJIAFBzAJqrYQ3A9ACIAEgAUHQAmo2AiggAUHAAmoiACABQSBqELEGIAAQjgchAgwJCyABQQhqIAAQuAIgAS0ACEUEQCABLQAJDQpBACECDAwLIAEoAgwhAgwLC0EAIQIMCgsgADUC4AIhCSAAQQA2AuACIAAgCSAAKQO4Anw3A7gCDAkLIAFBATYCNCABQczIwQA2AjAgAUEBNgIkIAFBxMjBADYCICABQQE2AiwgASABQRBqrUKAgICAkASENwPQAiABIAFB0AJqNgIoIAFBFGoiACABQSBqELEGIAAQjgchAgwIC0EIIAYgA0GcyMEAEOoHAAsgAUEBNgIkIAFBlMjBADYCICABQgE3AiwgASABQaQCaq1CgICAgBCENwPQAiABIAFB0AJqNgIoIAFBtAJqIgAgAUEgahCxBiAAEI4HIQIgASgClAIhAwwDC0G0x8EAEIEIAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAEoApACIQQgAwRAIARBJGohAANAIABBBGsoAgAiBUGAgICAeHJBgICAgHhHBEAgACgCACAFQQEQogcLIABBMGohACADQQFrIgMNAAsLIAEoAowCIgAEQCAEIABBMGxBCBCiBwsgASgCmAIiAEGAgICAeHJBgICAgHhGDQIgASgCnAIgAEEBEKIHDAILIAAoAgAhAgsCQAJAAkACQAJ/AkAgAkECRwRAIAAoAuQCIAAoAugCTw0GIAAoAogBQQJGDQFBAAwCCyABQagBaiAAEFsgASgCrAFBACABLQCoASIDGyECIAMNBiABLQCpAUEBcUUNBiAAKQPQAiILIAApA7gCIglYBEAgACgC4AIhAwwFCyAAKALgAiEEQQAhAyAAQQA2AuACIAQgCyAJfSIKIAStIgwgCiAMVBsiCqciBWshAiAKUEUEQCAEIAVGDQQgAkUNAyAAKALcAiIDIAMgBWogAvwKAAAMAwsgBCAFRw0CDAMLQQELIQIDQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAkUEQCABQagBaiAAEFsgASgCrAEhAyABLQCoASICDQIgAS0AqQFBAXFFDQIgACkD0AIiCSAAKQO4AiILVg0BDAYLIAFBqAFqIAAQuAIgAS0AqAFBAUYEQCABKAKsASECDBELIAEtAKkBDQlBACECDBALIAAoAuACIQMgAEEANgLgAiADIAkgC30iCiADrSIMIAogDFQbIgqnIgJrIQQgClANASACIANGDQMgBEUNAiAAKALcAiIDIAIgA2ogBPwKAAAMAgsgA0EAIAIbIQIMDgsgAiADRg0BCyAAIAQ2AuACCyAAIAogC3wiCzcDuAIgCSALVg0BCwJAIAAoAogBQQJGDQAgACgC5AEiA0UNACAAKALoASICQQRrKAIAIgRBeHEiBSADQShsIgNBBEEIIARBA3EiBBtqSQ0CIARBACAFIANBJ2pLGw0DIAIQogILIABBAjYCiAEgACAAKALkAkEBaiIDNgLkAiADIAAoAugCSQ0EDAkLQQAhAgwJC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBACECDAELQQEhAgwACwALIAAgAjYC4AIgAiEDCyAAIAkgCnwiCTcDuAIgCSALWg0AQQAhAgwCC0EAIQIgAEEANgLgAiAAQQE6APwCIAAgCSADrXw3A7gCDAELIABBAToA/AIgADUC4AIhCUEAIQIgAEEANgLgAiAAIAkgACkDuAJ8NwO4AgsgAUHgAmokACACC70PAg5/AX4jAEEgayICJAACQAJAAkACQAJAAkACQAJ/An8CQAJAAkACQAJAAkACQAJAQRUgASgCACIDQYCAgIB4cyADQQBOG0EUaw4CAAEECyABKAIMIgNFDQIgAkEEaiABKAIIIgEQoAQgAigCCCEIIAIoAgQiBkGAgICAeEYEQCAIIQMMDQsgAigCFCEJIAIoAhAhByADQQFGDQEgAigCGCELIAIoAgwhDCACQQRqIAFBEGoQ0AMgAigCCCEEIAIoAgQiBUGAgICAeEYEQCAEIQMMDAsCQAJ/IANBAkcEQCACKAIMIQ4gAkEEaiABQSBqEKUDIAItAARFDQIgAigCCAwBC0ECQYz/wABBgP3AABDbBgshAyAFRQ0MIARBBGsoAgAiAUF4cSIKIAVBAnQiBUEEQQggAUEDcSIBG2pJDRAgAUEAIAogBUEnaksbDQ8gBBCiAgwMCyADQQNGBEAgAi0ABSEPDAsLIAJBAzYCBCADQf3///8AakH/////AHFBA2ogAkEEakHolcEAENsGIQMgBgRAIAggBkEBEKIHCyAHBEAgCSAHQQEQogcLIAVFDQwgBCAFQQJ0QQQQogcMDAsgASgCCCIDRQRAQYCAgIB4IQUMBgsgA0EFdCEKIAEoAgQhAUGAgICAeCEGQYCAgIB4IQUDQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgNBgICAgHhzIANBAE4bQQFrDg8BAAACAAAAAAAAAAMEBQYACyABIAJBH2pBlOXAABCVCCEDIAJBAToABCACIAM2AggMBgsgAkEAOgAEIAJBAyABQQRqLQAAIgMgA0EDTxs6AAUMBQsgAkEAOgAEIAJCAyABQQhqKQMAIhAgEEIDWhs8AAUMBAsgAUEIaigCACEDAn8CQAJAAkACQCABQQxqKAIAQQVrDgQAAwMBAwsgA0GQ/cAAQQUQ2wcNAUEADAMLIAMpAABC496Rq6bs27frAFINAUEBDAILIANB6P7AAEEFENsHDQBBAgwBC0EDCyEDIAJBADoABCACIAM6AAUMAwsgAUEEaigCACEDAn8CQAJAAkACQCABQQhqKAIAQQVrDgQAAwMBAwsgA0GQ/cAAQQUQ2wcNAUEADAMLIAMpAABC496Rq6bs27frAFINAUEBDAILIANB6P7AAEEFENsHDQBBAgwBC0EDCyEDIAJBADoABCACIAM6AAUMAgsgAkEEaiABQQhqKAIAIAFBDGooAgAQygUMAQsgAkEEaiABQQRqKAIAIAFBCGooAgAQygULIAItAARBAUYNBSABQRBqIQMCQAJAAkACQCACLQAFQQFrDgMBAgMACyAGQYCAgIB4RwRAQZD9wABBBRCfByEDQQEMCwsgAkEEaiADEKAEIAIoAgghAyACKAIEIgZBgICAgHhGBEBBgICAgHghBkEBDAsLIAIoAhghCyACKAIUIQkgAigCECEHIAIoAgwhDCADIQgMAgsgBUGAgICAeEcEQEGY/sAAQQgQnwchA0EBDAoLIAJBBGogAxDQAyACKAIIIQQgAigCBCIFQYCAgIB4RgRAQQEhCiAEIQMMDAsgAigCDCEODAELIA1FBEAgAkEEaiADEKUDIAItAARBAUYNByACLQAFIQ9BASENDAELQej+wABBBRCfByEDQQEMCAsgAUEgaiEBIApBIGsiCg0ACwwDC0EBQYz/wABBgP3AABDbBiEDDAkLQQBBjP/AAEGA/cAAENsGIQMMCQsgASACQR9qQcTjwAAQlQghAwwICyAGQYCAgIB4Rg0BIAIgCzYCGCACIAk2AhQgAiAHNgIQIAIgDDYCDCACIAg2AgggAiAGNgIEAkAgBUGAgICAeEYiAUUEQCANDQdB6P7AAEEFEJwHIQMgBUUNASAEIAVBAnRBBBCiBwwBC0GY/sAAQQgQnAchAwsgAkEEahDmBUEADAMLIAIoAgghA0EBDAELQYCAgIB4IQZBkP3AAEEFEJwHIQNBAQshAUEBCyEKIAVB/////wdxRSABRXINAAJAIARBBGsoAgAiAUF4cSILIAVBAnQiBUEEQQggAUEDcSIBG2pPBEAgAUEAIAsgBUEnaksbDQEgBBCiAgwCCwwHCwwFCyAKRSAGQYCAgIB4RnINAgJAIAYEQCAIQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyAGakkNByABQQAgBCAGQSdqSxsNBiAIEKICCyAHRQ0DIAlBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAdqSQ0GIAFBACAEIAdBJ2pLGw0AIAkQogIMAwsMBAsgACAENgIcIAAgBTYCGCAAIAs2AhQgACAJNgIQIAAgBzYCDCAAIAw2AgggACAINgIEIAAgBjYCACAAIA6tIA+tQv8Bg0IghoQ3AiAMAgsgBgRAIAhBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAZqSQ0EIAFBACAEIAZBJ2pLGw0DIAgQogILIAdFDQAgCUEEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgB2pJDQMgAUEAIAQgB0EnaksbDQIgCRCiAgsgAEGBgICAeDYCACAAIAM2AgQLIAJBIGokAA8LQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC4YRAg1/AX4jAEHgAGsiAiQAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiBEGAgICAeHMgBEEAThtBFGsOAgECAAsgASACQRhqQZTjwAAQlQghASAAQYCAgIB4NgIAIAAgATYCBAwHCyABKAIMIgZFDQICQCABKAIIIgUoAgBBlICAgHhGBEACQCAFKAIMIgEEQCACQcgAaiAFKAIIEKgDIAIoAkgiBEGAgICAeEcNASACKAJMIQEMCQtBACACQRhqQYTiwAAQ2wYhAQwICyACKAJMIQcgAUEBRg0BIAJBATYCSCABQQFrQf////8AcUEBaiACQcgAakHolcEAENsGIQEgBEUNByAHIARBARCiBwwHCyAFIAJBGGpBhOLAABCVCCEBDAYLIAZBAUYNASACKAJQIQkgAkHIAGoiAyAFQRBqEKECIAIoAkwhASACKAJIDQQgAkEQaiACQdgAaigCADYCACACIAIpAlA3AwgCQCAGQQJHBEAgAyAFQSBqEKECIAIoAkwhBSACKAJIRQ0BIAUhAQwGC0ECQZD+wABBgP3AABDbBiEBDAULIAJBMGoiAyACQdgAaigCADYCACACQUBrIgggAkEQaigCADYCACACIAIpAlA3AyggAiACKQMINwM4IAZBA0cEQCACQQM2AkggBkH9////AGpB/////wBxQQNqIAJByABqQeiVwQAQ2wYhASAAQYCAgIB4NgIAIAAgATYCBCAERQ0HIAcgBEEBEKIHDAcLIAAgAikDODcCECAAIAIpAyg3AiAgACAFNgIcIAAgATYCDCAAIAk2AgggACAHNgIEIAAgBDYCACAAQRhqIAgoAgA2AgAgAEEoaiADKAIANgIADAYLIAEoAgQhBCABKAIIIQEgAkEANgIUIAIgBCABQQV0aiIMNgIMAkACQAJAIAFFDQAgAkHQAGohCkGAgICAeCEIA0AgAiAEQSBqIgE2AgggAiACKAIUQQFqNgIUIAIgBEEQaiINNgIQAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQRUgBCgCACIDQYCAgIB4cyADQQBOG0EBaw4PAA4OAQ4ODg4ODg4CAwQFDgsgBC0ABA4DCgUHDwsgBCkDCCIPQgJWDQ4gD6dBAWsOAgQGCQsgBCgCCCEDAkAgBCgCDEEEaw4CAAgOCyADKAAAQe3SuZsHRg0DIAMoAABB7cLhmwdGDQUMDQsgBCgCBCEDAkAgBCgCCEEEaw4CAAYNCyADKAAAQe3SuZsHRg0CIAMoAABB7cLhmwdGDQQMDAsgBCgCCCEDAkACQCAEKAIMQQRrDgIBAA0LIAMtAABB5gBHDQwgAy0AAUHpAEcNDCADLQACQewARw0MIAMtAANB5QBHDQwgAy0ABEHzAEcNDAwHCyADLQAAQe0ARw0LAkACQCADLQABQeEAaw4JAQ0NDQ0NDQ0ADQsgAy0AAkHuAEcNDCADLQADQfMARg0CDAwLIAMtAAJB+ABHDQsgAy0AA0HzAEYNAwwLCyAEKAIEIQMCQAJAIAQoAghBBGsOAgEADAsgAy0AAEHmAEcNCyADLQABQekARw0LIAMtAAJB7ABHDQsgAy0AA0HlAEcNCyADLQAEQfMARw0LDAYLIAMtAABB7QBHDQoCQCADLQABQeEAaw4JAgsLCwsLCwsACwsgAy0AAkHuAEcNCiADLQADQfMARw0KCyAGRQ0FQZX9wABBBBCfBwwICyADLQACQfgARw0IIAMtAANB8wBHDQgLIAtFDQRBmf3AAEEEEJ8HDAYLIANBkP3AAEEFENsHRQ0BDAYLIANBkP3AAEEFENsHDQULIAhBgICAgHhHBEBBkP3AAEEFEJ8HDAQLIAJByABqIAJBCGoQsgUgAigCTCEHIAIoAkgiCEGAgICAeEYEQCAHIQUMCQsgAigCUCEOIAIoAgwhDCACKAIIIQEMBQsgAkEANgIQIAJByABqIA0QoQIgAigCTCIFIAIoAkhBAUYNAhogAkEwaiAKQQhqKAIANgIAIAIgCikCADcDKEEBIQYMBAsgAkEANgIQIAJByABqIA0QoQIgAigCTCEJIAkgAigCSEEBRg0BGiACQUBrIApBCGooAgA2AgAgAiAKKQIANwM4QQEhCwwDCyAEIAJBGGpBhOXAABCVCAshBSAIQYCAgIB4ckGAgICAeEYNBAJAIAdBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAhqTwRAIAFBACAEIAhBJ2pLGw0BIAcQogIMBgtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAJBADYCEAsgDCABIgRHDQALIAhBgICAgHhGDQAgBkEAIAsbDQJBmf3AAEGV/cAAIAYbQQQQnAchBSAIRQ0BIAcgCEEBEKIHDAELQZD9wABBBRCcByEFCyAAIAU2AgQgAEGAgICAeDYCACAAIAIpA0g3AhAgAEEYaiACQdAAaigCADYCAAwDCyACQSBqIAJBQGsoAgA2AgAgAkHQAGogAkEwaigCACIBNgIAIAIgAikDODcDGCACIAIpAygiDzcDSCAAIAU2AgwgACAONgIIIAAgBzYCBCAAIAg2AgAgACAPNwIQIABBGGogATYCACAAIAk2AhwMAgtBAUGQ/sAAQYD9wAAQ2wYhAQwCC0EAQZD+wABBgP3AABDbBiEBDAILIAAgAikDGDcCICAAQShqIAJBIGooAgA2AgAMAgsgBEUNACAHQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyAEakkNAiAFQQAgBiAEQSdqSxsNAyAHEKICCyAAIAE2AgQgAEGAgICAeDYCAAsgAkHgAGokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC+EOAgR/A34jAEGwBWsiBiQAIAYgAjYCECAGIAE2AgwgBiAFNgIYIAYgBDYCFAJAAkACQAJAIAMoAgxFDQAgAykDECADKQMYIAQgBRCVBCEKIAMoAgQiASAKp3EhAiAKQhmIQv8Ag0KBgoSIkKDAgAF+IQwgAygCACEHA0AgAiAHaikAACILIAyFIgpCf4UgCkKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIKUEUEQANAAkAgBSAHIAp6p0EDdiACaiABcUFobGoiCEEQaygCAEcNACAEIAhBFGsoAgAgBRDbBw0AQQAhAwwFCyAKQgF9IAqDIgpQRQ0ACwsgCyALQgGGg0KAgYKEiJCgwIB/g1BFDQEgAiAJQQhqIglqIAFxIQIMAAsACyAGIAZBFGqtQoCAgIAghCIKNwNAIAYgBkEMaq1CgICAgCCENwM4IAZCAjcCzAMgBkECNgLEAyAGQdTvxwA2AsADIAYgBkE4aiIENgLIAyAGQZgFaiIHIAZBwANqIgEQ7AMgBkEANgIkIAZCgICAgBA3AhwgBigCmAUhAiAEIAAgBigCnAUiBSAGKAKgBRDbAQJAAkACQAJAAkACQCAGKQM4QgNSBEAgASAEQcgB/AoAACAHIAEgBkEcahDXASAGKAKYBUEBRgRAIAYpApwFENIHIQMgARDDAQwCCyAGKAIYIgBBAEgNAiAGKAIUIQQCQCAARQRAQQEhAQwBCyAAEHEiAUUNBAsgAARAIAEgBCAA/AoAAAsgBiAANgKgBSAGIAE2ApwFIAYgADYCmAUgBkEoaiADIAZBmAVqIAZBHGoQ8gIgBigCKCIAQYCAgIB4ckGAgICAeEcEQCAGKAIsIgFBBGsoAgAiA0F4cSIEQQRBCCADQQNxIgMbIABqSQ0KIANBACAEIABBJ2pLGw0JIAEQogILIAZBwANqEMMBQQAhAwwFCwJAAkACQAJAQQEgBigCQCIEQf////8HaiAEQYCAgIB4TRsOAgABAwsgBi0AREEDRw0CIAYoAkgiASgCACEEIAFBBGooAgAiBygCACIIBEAgBCAIEQMACyAHKAIEIgcEQCAEQQRrKAIAIghBeHEiCUEEQQggCEEDcSIIGyAHakkNDCAIQQAgCSAHQSdqSxsNCyAEEKICCyABQQRrKAIAIgRBeHEiB0EQQRQgBEEDcSIEG0kNCyAERSAHQTRJcg0BDAoLIARBgICAgHhyQYCAgIB4Rg0BIAYoAkQiAUEEaygCACIHQXhxIghBBEEIIAdBA3EiBxsgBGpJDQogB0UNACAIIARBJ2pLDQkLIAEQogILIAZBwANqIAAgBigCFCAGKAIYENsBIAYgCjcDKCAGQgE3AqQFIAZBAjYCnAUgBkGA8McANgKYBSAGIAZBKGo2AqAFIAZBjAVqIAZBmAVqEOwDIAYpA8ADIgpCA1IEQCAGKALIAyEBIAZBhAJqIAZBzANqQbwB/AoAACAGKAKMBSIABEAgBigCkAUiBEEEaygCACIHQXhxIghBBEEIIAdBA3EiBxsgAGpJDQogB0EAIAggAEEnaksbDQkgBBCiAgsgBiABNgJAIAYgCjcDOCAGQcQAaiAGQYQCakG8AfwKAAAgBkHAA2ogBkE4aiIAIAZBHGoQ1wEgBigCwANBAUYEQCAGKQLEAxDSByEDIAAQwwEMAgsgBigCGCIAQQBIDQQgBigCFCEEAkAgAEUEQEEBIQEMAQsgABBxIgFFDQQLIAAEQCABIAQgAPwKAAALIAYgADYCyAMgBiABNgLEAyAGIAA2AsADIAZBmAVqIAMgBkHAA2ogBkEcahDyAiAGKAKYBSIAQYCAgIB4ckGAgICAeEcEQCAGKAKcBSIBQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyAAakkNCiADQQAgBCAAQSdqSxsNCSABEKICCyAGQThqEMMBIAJFBEBBACEDDAgLIAVBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIAJqSQ0JQQAhAyAARSABIAJBJ2pNcg0GDAgLIwBBMGsiACQAIAAQ5AggAEEgaiIDIAZBjAVqIgFBCGooAgA2AgAgAEEsaiAGQcgDaiIEQQhqKAIANgIAIAAgASkCADcDGCAAIAQpAgA3AiRBNBBxIgFFBEAACyABQcC1xwA2AgAgASAAKQIANwIEIAEgACkDGDcCHCABQQxqIABBCGr9AAIA/QsCACABQSRqIAP9AAMA/QsCACAAQTBqJAAgASEDCyAGKAIcIgBFDQMgBigCICIBQQRrKAIAIgRBeHEiB0EEQQggBEEDcSIEGyAAakkNByAEQQAgByAAQSdqSxsNBiABEKICDAMLQdiayAAQ/wcLAAtB2JrIABD/BwALIAJFDQEgBUEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgAmpPBEAgAEUgASACQSdqTXINAQwDCwwDCyAFEKICCyAGQbAFaiQAIAMPC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAumDwQRfwF8B30BbyMAQSBrIgIkACACIAE2AgACQAJAIAElARAQRQRAIAIgAkEfakH8hcEAEIADIQMgAEECOgAcIAAgAzYCACABIgNBgwhLDQEMAgtBAiEHAkADQCADIQUgBEFAaiEEAkACfwJAAkADQCAEQdzrwABqKAIAIgYgBEHg68AAaigCACIQEM8DIgghAyABJQEgAyUBEBEhGxDaBCIDIBsmAQJAIAMlARASBEAgCCUBIAElARATRQ0BCyAEQcgAaiEEAkACQAJAAkAgEEEGaw4FAAcHBwEHC0EAIAZB4OrAAEEGENsHRQ0HGiAGQebqwABBBhDbBw0BQQEMBwtBAiAGQezqwABBChDbB0UNBhogBkH26sAAQQoQ2wcNAUEDDAYLQQQgBkGA68AAQQYQ2wdFDQUaIAZBhuvAAEEGENsHDQNBBQwFCyAGQZLrwABBChDbBw0DQQcMBAsgA0GECE8EQCADEJsHCyAIQYQITwRAIAgQmwcLIARBCGoiBA0ACyAFIQMMAwtBBiAGQYzrwABBBhDbB0UNARoLQQgLIQUgCEGECE8EQCAIEJsHCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAUOCAECAwQFBgcIAAsgA0GECEkNESADEJsHDBELIAkNByACIAM2AgQgAkEIaiADEK8KAn0gAigCCCIFBEAgAisDECITtkMAAIA/QwAAgL8gE71CAFkbmAwBCyACQQRqIAJBH2pB2OfAABCAA74LIRQgA0GECE8EQCADEJsHCyAFRQ0IQQEhCQwQCyAKDQ0gAiADNgIEIAJBCGogAxCvCgJ9IAIoAggiBQRAIAIrAxAiE7ZDAACAP0MAAIC/IBO9QgBZG5gMAQsgAkEEaiACQR9qQdjnwAAQgAO+CyEVIANBhAhPBEAgAxCbBwsgBQRAQQEhCgwQCyAAIBU4AgBBACEEDBILIAsNCyACIAM2AgQgAkEIaiADEK8KAn0gAigCCCIFBEAgAisDECITtkMAAIA/QwAAgL8gE71CAFkbmAwBCyACQQRqIAJBH2pB2OfAABCAA74LIRYgA0GECE8EQCADEJsHCyAFBEBBASELDA8LIAAgFjgCAEEAIQQMEQsgDA0JIAIgAzYCBCACQQhqIAMQrwoCfSACKAIIIgUEQCACKwMQIhO2QwAAgD9DAACAvyATvUIAWRuYDAELIAJBBGogAkEfakHY58AAEIADvgshFyADQYQITwRAIAMQmwcLIAUEQEEBIQwMDgsgACAXOAIAQQAhBAwQCyANDQcgAiADNgIEIAJBCGogAxCvCgJ9IAIoAggiBQRAIAIrAxAiE7ZDAACAP0MAAIC/IBO9QgBZG5gMAQsgAkEEaiACQR9qQdjnwAAQgAO+CyEYIANBhAhPBEAgAxCbBwsgBQRAQQEhDQwNCyAAIBg4AgBBACEEDA8LIA4NBSACIAM2AgQgAkEIaiADEK8KAn0gAigCCCIFBEAgAisDECITtkMAAIA/QwAAgL8gE71CAFkbmAwBCyACQQRqIAJBH2pB2OfAABCAA74LIRkgA0GECE8EQCADEJsHCyAFBEBBASEODAwLIAAgGTgCAEEAIQQMDgsgDw0DIAIgAzYCBCACQQhqIAMQrwoCfSACKAIIIgUEQCACKwMQIhO2QwAAgD9DAACAvyATvUIAWRuYDAELIAJBBGogAkEfakHY58AAEIADvgshGiADQYQITwRAIAMQmwcLIAUEQEEBIQ8MCwsgACAaOAIAQQAhBAwNCyAHQQJHBEAgAEGS68AAQQoQngc2AgAMCQsgAiADNgIIAkAgAxC6CiIHQf///wdHIgUEQCAFIAdBAEdxIREMAQsgAkEIaiACQR9qQYyGwQAQgAMhEgsgA0GECE8EQCADEJsHCyAFRQRAIAAgEjYCAEEAIQQMDQsgESEHDAkLIABB4OrAAEEGEJ4HNgIADAcLIAAgFDgCAEEAIQQMCgsgAEGM68AAQQYQngc2AgAMBQsgAEGG68AAQQYQngc2AgAMBAsgAEGA68AAQQYQngc2AgAMAwsgAEH26sAAQQoQngc2AgAMAgsgAEHs6sAAQQoQngc2AgAMAQsgAEHm6sAAQQYQngc2AgALQQEhBAwDCyAEQcAARw0BCwsgCUUEQCAAQeDqwABBBhCdBzYCAEEAIQQMAQsgCkUEQCAAQebqwABBBhCdBzYCAEEAIQQMAQsgC0UEQCAAQezqwABBChCdBzYCAEEAIQQMAQsgDEUEQCAAQfbqwABBChCdBzYCAEEAIQQMAQsgDUUEQCAAQYDrwABBBhCdBzYCAEEAIQQMAQsgDkUEQCAAQYbrwABBBhCdBzYCAEEAIQQMAQsgD0UEQCAAQYzrwABBBhCdBzYCAEEAIQQMAQsgB0ECRgRAIABBkuvAAEEKEJ0HNgIAQQAhBAwBCyAAIAc6ABwgACAaOAIYIAAgGTgCFCAAIBg4AhAgACAXOAIMIAAgFjgCCCAAIBU4AgQgACAUOAIAIAEiA0GDCEsNAQwCCyAAQQI6ABwgAUGECE8EQCABEJsHCyAEQQFzIANBhAhJcg0BCyADEJsHCyACQSBqJAALiA4CDn8FfSACIAFBAnRBBGsiCmohDSAAIApqIQsgACABQQF2Ig9BAnRqIgpBBGshDCADQQRqIRADQEMAAIA/IRMCfwJAIAooAgAiBCAQKAIAIgMoAggiBkkEQCAAKAIAIQkgAygCBCIIIARBGGxqIgQtABMiBSAELQASIgcgBC0AESIOIAcgDksbIgcgBSAHSxsiBQR9QwAAQMEgAyoCRCADLQBYQQJGIgcbIhJDAAAQQSADKgJIIAcbIBKTQwAAfkOVIAVBAWtB/wFxs5SSEIkEIhIgEpIFQwAAAAALIRUgBEEMai8BACIFQf//AXFFBEAgBUEQdAwDCyAFQf8HcSEEIAVBgIACcSEHIAVBgPgBcSIFQYD4AUYEQCAHQRB0IgVBgICA/AdyIARFDQMaIAUgBEENdHJBgICA/gdyDAMLIAdBEHQhByAFRQ0BIAVBDXRBgICA/ABxIARBDXRyQYCAgMADaiAHcgwCCyAEIAZB3LvHABCMBwALIAQgBGdBEGsiBEH//wNxQQhqdEH///8DcSAHQYCAgNgDciAEQRd0a3ILviISQwAAgD9eBEAgEhDGBUNU+C1AlEMAAIA/kpEhEwtDAACAPyESAn8CQCAGIAlLBEAgCCAJQRhsaiIELQATIgUgBC0AEiIGIAQtABEiCSAGIAlLGyIGIAUgBksbIgUEfUMAAEDBIAMqAkQgAy0AWEECRiIGGyIUQwAAEEEgAyoCSCAGGyAUk0MAAH5DlSAFQQFrQf8BcbOUkhCJBCIUIBSSBUMAAAAACyEUIARBDGovAQAiBEH//wFxRQRAIARBEHQMAwsgBEH/B3EhAyAEQYCAAnEhBSAEQYD4AXEiBEGA+AFGBEAgBUEQdCIEQYCAgPwHciADRQ0DGiAEIANBDXRyQYCAgP4HcgwDCyAFQRB0IQUgBEUNASAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogBXIMAgsgCSAGQdy7xwAQjAcACyADIANnQRBrIgNB//8DcUEIanRB////A3EgBUGAgIDYA3IgA0EXdGtyC74iFkMAAIA/XgRAIBYQxgVDVPgtQJRDAACAP5KRIRILIAIgCiAAIBUgE5QiEyATWyATIBQgEpRgRXEiBxsoAgA2AgBDAACAPyETAn8CQCALKAIAIgQgECgCACIDKAIIIgZJBEAgDCgCACEJIAMoAgQiDiAEQRhsaiIELQATIgUgBC0AEiIIIAQtABEiESAIIBFLGyIIIAUgCEsbIgUEfUMAAEDBIAMqAkQgAy0AWEECRiIIGyISQwAAEEEgAyoCSCAIGyASk0MAAH5DlSAFQQFrQf8BcbOUkhCJBCISIBKSBUMAAAAACyEVIARBDGovAQAiBUH//wFxRQRAIAVBEHQMAwsgBUH/B3EhBCAFQYCAAnEhCCAFQYD4AXEiBUGA+AFGBEAgCEEQdCIFQYCAgPwHciAERQ0DGiAFIARBDXRyQYCAgP4HcgwDCyAIQRB0IQggBUUNASAFQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogCHIMAgsgBCAGQdy7xwAQjAcACyAEIARnQRBrIgRB//8DcUEIanRB////A3EgCEGAgIDYA3IgBEEXdGtyC74iEkMAAIA/XgRAIBIQxgVDVPgtQJRDAACAP5KRIRMLQwAAgD8hEgJ/AkAgBiAJSwRAIA4gCUEYbGoiBC0AEyIFIAQtABIiBiAELQARIgkgBiAJSxsiBiAFIAZLGyIFBH1DAABAwSADKgJEIAMtAFhBAkYiBhsiFEMAABBBIAMqAkggBhsgFJNDAAB+Q5UgBUEBa0H/AXGzlJIQiQQiFCAUkgVDAAAAAAshFCAHRSEGIARBDGovAQAiBEH//wFxRQRAIARBEHQMAwsgBEH/B3EhAyAEQYCAAnEhBSAEQYD4AXEiBEGA+AFGBEAgBUEQdCIEQYCAgPwHciADRQ0DGiAEIANBDXRyQYCAgP4HcgwDCyAFQRB0IQUgBEUNASAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogBXIMAgsgCSAGQdy7xwAQjAcACyADIANnQRBrIgNB//8DcUEIanRB////A3EgBUGAgIDYA3IgA0EXdGtyC74iFkMAAIA/XgRAIBYQxgVDVPgtQJRDAACAP5KRIRILIAdBAnQgCmohCiAGQQJ0IABqIQAgAkEEaiECIA0gDCALIBUgE5QiEyATWyATIBQgEpRgRXEiAxsoAgA2AgAgDCADQQJ0IgNrIQwgAyALakEEayELIA1BBGshDSAPQQFrIg8NAAsgDEEEaiEDIAFBAXEEfyACIAAgCiAAIANJIgEbKAIANgIAIAogACADT0ECdGohCiAAIAFBAnRqBSAACyADRyAKIAtBBGpHckUEQA8LEIAIAAvnEAILfwF+IwBBIGsiAyQAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiBEGAgICAeHMgBEEAThtBFGsOAgECAAsgASADQRRqQeTjwAAQlQghASAAQYCAgIB4NgIAIAAgATYCBAwHCwJAAkACfwJAIAEoAgwiCARAAkAgASgCCCIFKAIAQZSAgIB4RgRAAkAgBSgCDCIEBEAgA0EEaiAFKAIIEKgDIAMoAgQiAUGAgICAeEcNASADKAIIIQQMBwtBACADQRRqQYTiwAAQ2wYhBAwGCyADKAIIIQIgBEEBRg0BIANBATYCBCAEQQFrQf////8AcUEBaiADQQRqQeiVwQAQ2wYhBCABRQ0FIAIgAUEBEKIHDAULIAUgA0EUakGE4sAAEJUIIQQMBAsgCEEBRg0BIAMoAgwhCUGAgICAeCEGAkACfwJAAkBBFSAFQRBqIgooAgAiC0GAgICAeHMgC0EAThtBEGsOAwMBAwALIANBBGogChCoA0GBgICAeCADKAIEIgQgBEGBgICAeEwbDAELIANBBGogBSgCFBCoA0GBgICAeCADKAIEIgQgBEGBgICAeEwbCyEGIAMoAgwhByADKAIIIgQgBkH/////B2pBAkkNAxoLIAhBAkYNBCADQQI2AgQgCEH+////AGpB/////wBxQQJqIANBBGpB6JXBABDbBiEFIABBgICAgHg2AgAgACAFNgIEIAEEQCACIAFBARCiBwsgBkGAgICAeHJBgICAgHhGDQsgBCAGQQEQogcMCwtBAEHs/cAAQYD9wAAQ2wYhBAwCC0EBQez9wABBgP3AABDbBgshBCABRQ0AIAJBBGsoAgAiBkF4cSIFQQRBCCAGQQNxIgYbIAFqSQ0KIAZBACAFIAFBJ2pLGw0JIAIQogILIAAgBDYCBCAAQYCAgIB4NgIADAcLIAAgBzYCFCAAIAQ2AhAgACAGNgIMIAAgCTYCCCAAIAI2AgQgACABNgIADAYLIAEoAgghBCABKAIEIQEgA0IANwIMIAMgATYCBCADIAEgBEEFdGoiCjYCCCAERQRAQYGAgIB4IQUMAgtBgICAgHghB0GBgICAeCEFA0AgAyABQSBqIgQ2AgQgAyADKAIQQQFqNgIQIAMgAUEQaiILNgIMAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiAkGAgICAeHMgAkEAThtBAWsODwAGBgEGBgYGBgYGAgMEBQYLIAEtAAQiAkUNCEEBQQIgAkEBRhshAgwLCyABKQMIIg1QDQdBAUECIA1CAVEbIQIMCgsgASgCCCECIAEoAgxBBWsOBAULCwcLCyABKAIEIQICQCABKAIIQQVrDgQECwsACwsgAikAAELl3I37xqyat+cAUQ0JDAoLIAEoAgghAgJAAkAgASgCDEEFaw4EAAsLAQsLIAItAABB5gBHDQogAi0AAUHpAEcNCiACLQACQewARw0KIAItAANB5QBHDQogAi0ABEHzAEcNCgwFCyACLQAAQeUARw0JIAItAAFB7gBHDQkgAi0AAkHjAEcNCSACLQADQe8ARw0JIAItAARB5ABHDQkgAi0ABUHpAEcNCSACLQAGQe4ARw0JIAItAAdB5wBGDQgMCQsgASgCBCECAkACQCABKAIIQQVrDgQACgoBCgsgAi0AAEHmAEcNCSACLQABQekARw0JIAItAAJB7ABHDQkgAi0AA0HlAEcNCSACLQAEQfMARw0JDAQLIAItAABB5QBHDQggAi0AAUHuAEcNCCACLQACQeMARw0IIAItAANB7wBHDQggAi0ABEHkAEcNCCACLQAFQekARw0IIAItAAZB7gBHDQggAi0AB0HnAEYNBwwICyABIANBFGpB5OTAABCVCCEBDA0LIAJBkP3AAEEFENsHDQYMAQsgAkGQ/cAAQQUQ2wcNBQsgB0GAgICAeEYNAUGQ/cAAQQUQnwchAQwKCyACKQAAQuXcjfvGrJq35wBRDQIMAwsgA0EUaiADQQRqELIFIAMoAhghASADKAIUIgdBgICAgHhGBEBBgICAgHghBwwJCyADKAIcIQwgAygCCCEKIAMoAgQhBCABIQYMBAsgAkECRg0BCyAFQYGAgIB4Rg0BQcj9wABBCBCfByEBIAVBgICAgHhyQYCAgIB4Rg0IDAcLIANBADYCDAwBCyADQQA2AgxBgICAgHghBQJ/AkACQEEVIAsoAgAiAkGAgICAeHMgAkEAThtBEGsOAwMBAwALIANBFGogCxCoAyAIIAMoAhwgAygCFCIBQYCAgIB4RhshCEGBgICAeCABIAFBgYCAgHhMGwwBCyADQRRqIAEoAhQQqAMgCCADKAIcIAMoAhQiAUGAgICAeEYbIQhBgYCAgHggASABQYGAgIB4TBsLIQUgAygCGCIJIQEgBUGBgICAeEYNBgsgCiAEIgFHDQALDAALIAdBgICAgHhGDQAgACAINgIUIAAgCTYCECAAIAw2AgggACAGNgIEIAAgBzYCACAAQYCAgIB4IAUgBUGBgICAeEYbNgIMDAQLQYCAgIB4IQdBkP3AAEEFEJwHIQELIAVFIAVBgoCAgHhIcg0BCyAJQQRrKAIAIgRBeHEiAkEEQQggBEEDcSIEGyAFakkNAyAEQQAgAiAFQSdqSxsNAiAJEKICCyAHQYCAgIB4ckGAgICAeEcEQCAGQQRrKAIAIgRBeHEiBUEEQQggBEEDcSIEGyAHakkNAyAEQQAgBSAHQSdqSxsNAiAGEKICCyAAQgA3AhAgACABNgIEIABBgICAgHg2AgALIANBIGokAA8LQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC7QPAgl/BH4jAEHgAmsiASQAAkACQAJAIAAtAIAERQRAIAAoApABIgJBAkcNAiAAKAIAQQJHDQIgACgCuAIiA0EDSw0BQQAhAgwDCyAANQK4AiEKIABBADYCuAIgACAKIAApA3B8NwNwDAILIABBkAFqIQggASAAKAK0AiIEKAAAIgI2AhACQAJAAkACQAJAAkACQAJAAkAgAkHSgpGaBEcEQCACQdKCkYIDRw0CIANBCEkNASADIAQoAAQiBUEHakF4cUEIaiICSQ0BIAVBCGoiBiADSyAFQXdLcg0DIAFBADYC2AIgASAFNgLUAiABIARBCGo2AtACIAFBIGogAUHQAmoQWSABKAIkIQUgASgCICIHQQJGBEAgBRDOByECDAwLIAFBsAFqIAFBKGpBgAH8CgAAIABBADYCuAIgASAFNgKsASABIAc2AqgBIAMgAmshBgJAAkAgAkUNACACIANGDQEgBkUNACAEIAIgBGogBvwKAAALIAAgBjYCuAILIAAgACkDcCACrXwiCjcDeCAAIAo3A3AgASgCpAJBAUcNBCAAIAEoApQCIgQ2ApwCIAAgASgCtAEgASgCwAEiAyABKAKwARsiAjYCoAIgAkUNBSAEIAMgAm4iBCACIARsIANHaiICRgRAIAEtAKgCIQIgASAFQQAgB0EBcRs2AiQgASADNgIgIAEgAkEBcToAKCAAQbwCaiABQSBqEOEDAkAgACgCkAFBAkYNACAAKAL4ASEEIAAoAvwBIgMEQCAEQSRqIQIDQCACQQRrKAIAIgVBgICAgHhyQYCAgIB4RwRAIAIoAgAiBkEEaygCACIHQXhxIglBBEEIIAdBA3EiBxsgBWpJDQsgB0EAIAkgBUEnaksbDQwgBhCiAgsgAkEwaiECIANBAWsiAw0ACwsgACgC9AEiAwRAIAQgA0EwbEEIEKIHCyAAKAKAAiIDQYCAgIB4ckGAgICAeEYNACAAKAKEAiADQQEQogcLIAggAUGoAWpBiAH8CgAADAoLIAEgAjYCzAIgAUECNgIkIAFB6MfBADYCICABQgI3AiwgAUKAgICAECIKIABBnAJqrYQ3A9gCIAEgCiABQcwCaq2ENwPQAiABIAFB0AJqNgIoIAFBwAJqIgAgAUEgahCxBgwICyABQQhqIAAQtwIgAS0ACEUEQCABLQAJDQlBACECDAsLIAEoAgwhAgwKC0EAIQIMCQsgAUEBNgI0IAFBzMjBADYCMCABQQE2AiQgAUHEyMEANgIgIAFBATYCLCABIAFBEGqtQoCAgICQBIQ3A9ACIAEgAUHQAmo2AiggAUEUaiIAIAFBIGoQsQYgABCOByECDAgLQQggBiADQZzIwQAQ6gcACyABQQE2AiQgAUGUyMEANgIgIAFCATcCLCABIAFBpAJqrUKAgICAEIQ3A9ACIAEgAUHQAmo2AiggAUG0AmoiACABQSBqELEGDAMLQbTHwQAQgQgAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgABCOByECIAFBqAFqEM8EDAILIAgoAgAhAgsCQAJAAkACQAJ/AkAgAkECRwRAIAAoApgCIAAoApwCTw0GIAAoAgBBAkYNAUEADAILIAFBqAFqIAAQNiABKAKsAUEAIAEtAKgBIgMbIQIgAw0GIAEtAKkBQQFxRQ0GIAApA4gBIgwgACkDcCIKWARAIAAoArgCIQMMBQsgACgCuAIhBEEAIQMgAEEANgK4AiAEIAwgCn0iCyAErSINIAsgDVQbIgunIgVrIQIgC1BFBEAgBCAFRg0EIAJFDQMgACgCtAIiAyADIAVqIAL8CgAADAMLIAQgBUcNAgwDC0EBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAIAJFBEAgAUGoAWogABA2IAEoAqwBIQMgAS0AqAEiAg0CIAEtAKkBQQFxRQ0CIAApA4gBIgogACkDcCIMVg0BDAYLIAFBqAFqIAAQtwIgAS0AqAFBAUYEQCABKAKsASECDBELIAEtAKkBDQlBACECDBALIAAoArgCIQMgAEEANgK4AiADIAogDH0iCyADrSINIAsgDVQbIgunIgJrIQQgC1ANASACIANGDQMgBEUNAiAAKAK0AiIDIAIgA2ogBPwKAAAMAgsgA0EAIAIbIQIMDgsgAiADRg0BCyAAIAQ2ArgCCyAAIAsgDHwiDDcDcCAKIAxWDQELAkAgACgCAEECRg0AIAAoAlwiA0UNACAAKAJgIgJBBGsoAgAiBEF4cSIFIANBKGwiA0EEQQggBEEDcSIEG2pJDQIgBEEAIAUgA0EnaksbDQMgAhCiAgsgAEECNgIAIAAgACgCmAJBAWoiAzYCmAIgAyAAKAKcAkkNBAwJC0EAIQIMCQtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQQAhAgwBC0EBIQIMAAsACyAAIAI2ArgCIAIhAwsgACAKIAt8Igo3A3AgCiAMWg0AQQAhAgwCC0EAIQIgAEEANgK4AiAAQQE6AIAEIAAgCiADrXw3A3AMAQsgAEEBOgCABCAANQK4AiEKQQAhAiAAQQA2ArgCIAAgCiAAKQNwfDcDcAsgAUHgAmokACACC5sMAgh/BH4gACgCFCEDIAAoAhAhBSAAKQMIIQsgACgCBCEJIAAoAgAhCCAAKAIYIgJBAEgEQCAFIAlJBEAgCCAFQQJ0aigAACEGCyAGQRh0IAZBgP4DcUEIdHIgBkEIdkGA/gNxIAZBGHZycq0gC0IghoQhCyAFQQFqIQUgAkEgaiECCyALIAMgA0EBdiIDayIErSACQT9xrYYiDEIAIAsgDFoiBht9IQogAiADIAQgBhsiA2ciAkEYayIEQQAgAiAETxsiBGshAiADIAR0IQQCQCABQf8BcUECSQ0AIAJBAEgEQEEAIQYgBSAJSQRAIAggBUECdGooAAAhBgsgBkEYdCAGQYD+A3FBCHRyIAZBCHZBgP4DcSAGQRh2cnKtIApCIIaEIQogBUEBaiEFIAJBIGohAgsgCiAEIARBAXYiBmsiBK0gAkE/ca2GIg1CACAKIA1aIgMbfSEKIAIgBiAEIAMbIgZnIgJBGGsiBEEAIAIgBE8bIgRrIQIgBiAEdCEEIANBAkEAIAsgDFobciEGIAFB/wFxQQJGDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIHrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAcgAxsiBGciAkEYayIHQQAgAiAHTxsiB2shAiAEIAd0IQQgAyAGQQF0ciEGIAFB/wFxQQRJDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIHrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAcgAxsiBGciAkEYayIHQQAgAiAHTxsiB2shAiAEIAd0IQQgAyAGQQF0ciEGIAFB/wFxQQRGDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIHrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAcgAxsiBGciAkEYayIHQQAgAiAHTxsiB2shAiAEIAd0IQQgAyAGQQF0ciEGIAFB/wFxQQZJDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIHrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAcgAxsiBGciAkEYayIHQQAgAiAHTxsiB2shAiAEIAd0IQQgAyAGQQF0ciEGIAFB/wFxQQZGDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIHrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAcgAxsiBGciAkEYayIHQQAgAiAHTxsiB2shAiAEIAd0IQQgAyAGQQF0ciEGIAFB/wFxQQhJDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIIrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAggAxsiBGciAkEYayIIQQAgAiAITxsiCGshAiAEIAh0IQQgAyAGQQF0ciEGCyAFIAlNBEAgACACNgIYIAAgBDYCFCAAIAU2AhAgACAKNwMIIAYPCyAAIAEQ8AcLyA0CDH8BfiMAQdAAayIIJAAgCEEQaiAAKAIEIgYgACgCCCICQficxgBBCRDhAQJAAkACQCAIKAIQQQFGBEAgCEEYaiEHIAgoAkwhAyAIKAJIIQkgCCgCRCEEIAgoAkAhBSAIKAI0QX9GDQEgCEEEaiAHIAUgBCAJIANBABDeAwwCCyAIAn9BACAILQAeDQAaIAgtAB0hCgJAIAgoAhgiAQRAIAgoAkAhDAJAIAgoAkQiBSABTQRAIAEgBUYNAQwHCyABIAxqLAAAQUBIDQYLIAEgDGoiB0EBaywAACIEQQBIBEAgBEE/cQJ/IAdBAmstAAAiCcAiC0G/f0oEQCAJQR9xDAELIAtBP3ECfyAHQQNrLQAAIgPAIglBv39KBEAgA0EPcQwBCyAJQT9xIAdBBGstAABBB3FBBnRyC0EGdHILQQZ0ciEECyAKQQFxDQECf0F/IARBgAFJDQAaQX4gBEGAEEkNABpBfUF8IARBgIAESRsLIAFqIgFFBEBBACEBDAILAkAgASAFTwRAIAEgBUcNBwwBCyABIAxqLAAAQUBIDQYLIAEgDGoiCUEBaywAAEEATg0BIAlBAmssAAAaDAELQQAiASAKQQFxRQ0BGgsgCCABNgIIQQELNgIEDAELIAhBBGogByAFIAQgCSADQQEQ3gMLAkACQAJAAkAgCCgCBEEBRgRAIAgoAggiCUEJaiIFIQEDQAJAIAFFDQAgASACTwRAIAEgAkYNAQwHCyABIAZqLAAAQUBIDQYLAkAgASACRgR/IAIFIAEgBmotAABBMGtB/wFxQQpJDQEgAQshBCABRQ0DAkAgAiAETQRAIAIgBEcNAQwFCyAEIAZqLAAAQb9/Sg0ECyAGIAIgBCACQZSdxgAQuwkACyABQQFqIQEMAAsAC0EAIQoMAQtBACEKIAIgBGtBCEkNACAEIAZqIgcpAABCoMa949aum7cgUg0AIARBCGoiCyEDAkACQAJAAkADQAJAIANFDQAgAiADTQRAIAIgA0YNAQwICyADIAZqLAAAQUBIDQcLAkACQAJAIAIgA0YEQCACIQMMAQsgAyAGai0AAEEwa0H/AXFBCkkNASACIANLDQgLIAQgBUkNAyAFRQ0BIAUgBmosAABBv39KDQEMAwsgA0EBaiEDDAELCyABBEAgBywAAEFASA0BCyAFIAZqIQECQAJAAkAgBCAFayIEDgIHAAELQQEhByABLQAAQStrDgMGAQYBCyABLQAAQStGBEAgBEEBayEHIAFBAWohASAEQQpJDQEMAwsgBCEHIARBCU8NAgtBACEEA0AgAS0AAEEwayIFQQlLDQQgAUEBaiEBIAUgBEEKbGohBCAHQQFrIgcNAAsMAgsgBiACIAUgBEG8ncYAELsJAAtBACEEA0AgB0UNASABLQAAQTBrIgVBCUsNAiAErUIKfiINQiCIpw0CIAFBAWohASAHQQFrIQcgBSANp2oiBCAFTw0ACwwBCwJAAkAgAyALSQ0AIAsEQCACIAtNBEAgAiADRg0DDAILIAIgA0cNASAGIAtqLAAAQUBIDQEMAgsgAiADRg0BCyAGIAIgCyADQcydxgAQuwkACyAGIAtqIQECQAJAAkACQAJAIAIgC2siBQ4CBgABC0EBIQMgAS0AAEEraw4DBQEFAQsgAS0AAEErRgRAIAVBAWshAyABQQFqIQEgBUEKSQ0BDAILIAUiA0EJTw0BC0EAIQUDQCABLQAAQTBrIgdBCUsNBCABQQFqIQEgByAFQQpsaiEFIANBAWsiAw0ACwwBC0EAIQUDQCADRQ0BIAEtAABBMGsiB0EJSw0DIAWtQgp+Ig1CIIinDQMgAUEBaiEBIANBAWshAyAHIAcgDadqIgVNDQALDAILQQEhCiACIAlJDQEgCUUEQCAJIQIMAgsgAiAJTQRAIAkhAgwCCyAJIgIgBmosAABBv39KDQFB5J/GAEEwQdydxgAQ6wcACwsCQAJAAkACQCAAKAIAIgMgAk0NACACRQRAIAZBBGsoAgAiAEF4cSIJQQRBCCAAQQNxIgAbIANqSQ0CIABBACAJIANBJ2pLGw0DIAYQogJBASEGDAELIAYgA0EBIAIQuwIiBkUNAwtBFBBxIgBFDQIgACACNgIIIAAgBjYCBCAAQQA2AgAgACAFQQAgChs2AhAgACAEQQAgChs2AgwgCEHQAGokACAADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwsACyAGIAIgAyACQaydxgAQuwkACyAGIAIgASACQYSdxgAQuwkACyAMIAVBACABQfylxgAQuwkAC4kOAw5/BH4BeyMAQSBrIgokAAJAAkACQCAAKAIMIgsgAWoiASALTwRAAkAgACgCBCIIIAhBAWoiCUEDdiIDQQdsIg4gCEEISRsiBkEBdiABSQRAAkACQAJAAkACfyAGQQFqIgMgASABIANJGyIBQQ9PBEAgAUH/////AUsNC0F/IAFBA3RBB25BAWtndkEBagwBC0EEIAFBCHFBCGogAUEESRsLIgGtQhR+IhFCIIinDQAgEadBB2pBeHEiAyABQQhqIgZqIgUgA0kgBUH4////B0tyDQAgBRBxIgVFDQEgAyAFaiEEIAYEQCAEQf8BIAb8CwALIAFBAWsiCSABQQN2QQdsIAlBCEkbIQwgACgCACEFIAsNAkEAIQsMAwsgCkEANgIYIApBATYCDCAKQcS1xAA2AgggCkIENwIQIApBCGpBmLXEABCNCAsACyAEQQhqIQ0gBUEUayEOIAUpAwBCf4VCgIGChIiQoMCAf4MhESACKQMIIRMgAikDACEUQQAhASALIQIgBSEGA0AgEVAEQANAIAFBCGohASAGQQhqIgYpAwBCgIGChIiQoMCAf4MiEUKAgYKEiJCgwIB/UQ0ACyARQoCBgoSIkKDAgH+FIRELIAQgCSAUIBMgDiAReqdBA3YgAWoiD0FsbGoiA0EEaigCACADQQhqKAIAEJUEpyIQcSIDaikAAEKAgYKEiJCgwIB/gyISUARAQQghBwNAIAMgB2ohAyAHQQhqIQcgBCADIAlxIgNqKQAAQoCBgoSIkKDAgH+DIhJQDQALCyARQgF9IBGDIREgBCASeqdBA3YgA2ogCXEiA2osAABBAE4EQCAEKQMAQoCBgoSIkKDAgH+DeqdBA3YhAwsgAyAEaiAQQRl2Igc6AAAgDSADQQhrIAlxaiAHOgAAIAQgA0F/c0EUbGoiA0EQaiAFIA9Bf3NBFGxqIgdBEGooAAA2AAAgAyAH/QAAAP0LAAAgAkEBayICDQALCyAAIAk2AgQgACAENgIAIAAgDCALazYCCCAIRQ0BIAggCEEUbEEbakF4cSIBakEJaiIARQ0BIAUgAWsiAUEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAGpJDQMgAkEAIAMgAEEnaksbDQQgARCiAgwBCyAAIAkEfyAAKAIAIQACQAJAIAMgCUEHcUEAR2oiBUECSQRAIAUhBgwBCyAFQQFxIQYgBUH+////A3EiBEEDdCEHIAQhAyAAIQEDQCABIAH9AAMAIhX9TUEH/c0B/QwBAQEBAQEBAQEBAQEBAQEB/U4gFf0Mf39/f39/f39/f39/f39/f/1Q/c4B/QsDACABQRBqIQEgA0ECayIDDQALIAQgBUYNAQsgACAHaiEBA0AgASABKQMAIhFCf4VCB4hCgYKEiJCgwIABgyARQv/+/fv379+//wCEfDcDACABQQhqIQEgBkEBayIGDQALCwJAIAlBCE8EQCAAIAlqIAApAAA3AAAMAQsgCUUNACAAQQhqIAAgCfwKAAALIABBCGohBSACKQMIIRIgAikDACETQQEhA0EAIQEDQCABIQYgAyEBAkAgACAGaiIMLQAAQYABRw0AIAAgBkF/c0EUbGohAyAAIAZBbGxqIgJBDGshDyACQRBrIRADQCAIIBMgEiAQKAIAIA8oAgAQlQSnIg1xIgQhAiAAIARqKQAAQoCBgoSIkKDAgH+DIhFQBEBBCCEHA0AgAiAHaiECIAdBCGohByAAIAIgCHEiAmopAABCgIGChIiQoMCAf4MiEVANAAsLIAAgEXqnQQN2IAJqIAhxIgJqLAAAQQBOBEAgACkDAEKAgYKEiJCgwIB/g3qnQQN2IQILIAIgBGsgBiAEa3MgCHFBCE8EQCAAIAJqIgQtAAAgBCANQRl2IgQ6AAAgBSACQQhrIAhxaiAEOgAAIAAgAkF/c0EUbGohAkH/AUYEQCAMQf8BOgAAIAUgCCAGQQhrcWpB/wE6AAAgAkEQaiADQRBqKAAANgAAIAIgA/0AAAD9CwAADAMLIAMoAAAhBCADIAIoAAA2AAAgAiAENgAAIAIoAAQhBCACIAMoAAQ2AAQgAyAENgAEIAMoAAghBCADIAIoAAg2AAggAiAENgAIIAIoAAwhBCACIAMoAAw2AAwgAyAENgAMIAMoABAhBCADIAIoABA2ABAgAiAENgAQDAELCyAMIA1BGXYiAjoAACAFIAggBkEIa3FqIAI6AAALIAEgASAJSSICaiEDIAINAAsgCCAOIAhBCEkbBUEACyALazYCCAsgCkEgaiQADwsMAgtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIApBADYCGCAKQQE2AgwgCkHEtcQANgIIIApCBDcCECAKQQhqQZi1xAAQjQgAC8cNAQh/An8CQCACIANLBEAgASADQRJsaiIDLwEAIgJB//8BcUUEQCACQRB0DAMLIAJB/wdxIQEgAkGAgAJxIQUgAkGA+AFxIgJBgPgBRgRAIAVBEHQhAiACQYCAgPwHciABRQ0DGiACIAFBDXRyQYCAgP4HcgwDCyAFQRB0IQUgAkUNASACQQ10QYCAgPwAcSABQQ10ckGAgIDAA2ogBXIMAgsgAyACQfTAxwAQjAcACyAFQYCAgNgDciABZ0EQayICQRd0ayABIAJB//8DcUEIanRB////A3FyCyEBAn8gAy8BAiIFQf//AXFFBEAgBUEQdAwBCyAFQf8HcSECIAVBgIACcSEGIAVBgPgBcSIFQYD4AUYEQCAGQRB0IQUgBUGAgID8B3IgAkUNARogBSACQQ10ckGAgID+B3IMAQsgBkEQdCEGIAVBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAGciAFDQAaIAZBgICA2ANyIAJnQRBrIgVBF3RrIAIgBUH//wNxQQhqdEH///8DcXILIQUCfyADLwEEIgZB//8BcUUEQCAGQRB0DAELIAZB/wdxIQIgBkGAgAJxIQcgBkGA+AFxIgZBgPgBRgRAIAdBEHQhBiAGQYCAgPwHciACRQ0BGiAGIAJBDXRyQYCAgP4HcgwBCyAHQRB0IQcgBkENdEGAgID8AHEgAkENdHJBgICAwANqIAdyIAYNABogB0GAgIDYA3IgAmdBEGsiBkEXdGsgAiAGQf//A3FBCGp0Qf///wNxcgshBgJ/IAMvAQYiB0H//wFxRQRAIAdBEHQMAQsgB0H/B3EhAiAHQYCAAnEhCCAHQYD4AXEiB0GA+AFGBEAgCEEQdCEHIAdBgICA/AdyIAJFDQEaIAcgAkENdHJBgICA/gdyDAELIAhBEHQhCCAHQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogCHIgBw0AGiAIQYCAgNgDciACZ0EQayIHQRd0ayACIAdB//8DcUEIanRB////A3FyCyEHAn8gAy8BCCIIQf//AXFFBEAgCEEQdAwBCyAIQf8HcSECIAhBgIACcSEJIAhBgPgBcSIIQYD4AUYEQCAJQRB0IQggCEGAgID8B3IgAkUNARogCCACQQ10ckGAgID+B3IMAQsgCUEQdCEJIAhBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAJciAIDQAaIAlBgICA2ANyIAJnQRBrIghBF3RrIAIgCEH//wNxQQhqdEH///8DcXILIQgCfyADLwEKIglB//8BcUUEQCAJQRB0DAELIAlB/wdxIQIgCUGAgAJxIQogCUGA+AFxIglBgPgBRgRAIApBEHQhCSAJQYCAgPwHciACRQ0BGiAJIAJBDXRyQYCAgP4HcgwBCyAKQRB0IQogCUENdEGAgID8AHEgAkENdHJBgICAwANqIApyIAkNABogCkGAgIDYA3IgAmdBEGsiCUEXdGsgAiAJQf//A3FBCGp0Qf///wNxcgshCQJ/IAMvAQwiCkH//wFxRQRAIApBEHQMAQsgCkH/B3EhAiAKQYCAAnEhBCAKQYD4AXEiCkGA+AFGBEAgBEEQdCEKIApBgICA/AdyIAJFDQEaIAogAkENdHJBgICA/gdyDAELIARBEHQhBCAKQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBHIgCg0AGiAEQYCAgNgDciACZ0EQayIKQRd0ayACIApB//8DcUEIanRB////A3FyCyEKAn8gAy8BDiIEQf//AXFFBEAgBEEQdAwBCyAEQf8HcSECIARBgIACcSELIARBgPgBcSIEQYD4AUYEQCALQRB0IQQgBEGAgID8B3IgAkUNARogBCACQQ10ckGAgID+B3IMAQsgC0EQdCELIARBDXRBgICA/ABxIAJBDXRyQYCAgMADaiALciAEDQAaIAtBgICA2ANyIAJnQRBrIgRBF3RrIAIgBEH//wNxQQhqdEH///8DcXILIQIgAAJ/IAMvARAiBEH//wFxRQRAIARBEHQMAQsgBEH/B3EhAyAEQYCAAnEhCyAEQYD4AXEiBEGA+AFGBEAgC0EQdCEEIARBgICA/AdyIANFDQEaIAQgA0ENdHJBgICA/gdyDAELIAtBEHQhCyAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogC3IgBA0AGiALQYCAgNgDciADZ0EQayIEQRd0ayADIARB//8DcUEIanRB////A3FyCzYCICAAIAI2AhwgACAKNgIYIAAgCTYCFCAAIAg2AhAgACAHNgIMIAAgBjYCCCAAIAU2AgQgACABNgIAC/sJAQd/IAAoAgQhAgJAAkAgACgCCCIFBEAgAiEBA0AgAUEoaigCACIGBEAgAUEsaigCACIHQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyAGakkNAyADQQAgBCAGQSdqSxsNBCAHEKICCyABEL8EIAFBQGshASAFQQFrIgUNAAsLIAAoAgAiAwRAIAJBBGsoAgAiAUF4cSIEIANBBnQiA0EEQQggAUEDcSIBG3JJDQEgAUEAIAQgA0EncksbDQIgAhCiAgsCQCAAKAKEASIBQYCAgIB4Rg0AIAEEQCAAKAKIASIEQQRrKAIAIgJBeHEiAyABQQN0IgFBBEEIIAJBA3EiAhtqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoApABIgEEQCAAKAKUASIEQQRrKAIAIgJBeHEiAyABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoApwBIgEEQCAAKAKgASIEQQRrKAIAIgJBeHEiAyABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoAqgBIgFFDQAgACgCrAEiBEEEaygCACICQXhxIgMgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAIMIgEEQCAAKAIQIgRBBGsoAgAiAkF4cSIDIAFByABsIgFBBEEIIAJBA3EiAhtqSQ0BIAJBACADIAFBJ2pLGw0CIAQQogILIAAoAhgiAQRAIAAoAhwiBEEEaygCACICQXhxIgMgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAIkIgEEQCAAKAIoIgRBBGsoAgAiAkF4cSIDIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAMgAUEnaksbDQIgBBCiAgsgACgCMCIBBEAgACgCNCIEQQRrKAIAIgJBeHEiAyABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACADIAFBJ2pLGw0CIAQQogILIAAoAjwiAQRAIAAoAkAiBEEEaygCACICQXhxIgMgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAJIIgEEQCAAKAJMIgRBBGsoAgAiAkF4cSIDIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAMgAUEnaksbDQIgBBCiAgsgACgCVCIBBEAgACgCWCIEQQRrKAIAIgJBeHEiAyABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACADIAFBJ2pLGw0CIAQQogILIAAoAmAiAQRAIAAoAmQiBEEEaygCACICQXhxIgMgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAJsIgEEQCAAKAJwIgRBBGsoAgAiAkF4cSIDIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAMgAUEnaksbDQIgBBCiAgsgACgCeCICBEAgACgCfCIDQQRrKAIAIgBBeHEiASACQQJ0IgJBBEEIIABBA3EiABtqSQ0BIABBACABIAJBJ2pLGw0CIAMQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL1A0CF38BeyABQeTRAGohEiABQYAEaiETIAFBgM8AaiEUIAFBgB1qIRUgAUGg0QBqIRYgAUGANmohFyABQe3RAGohGCMAQfAAayIIQTBqIRkgAS0A61EhBCAIQRhqIRECfwNAAkACQAJAAkACQAJAIARB/wFxIgsOAwABAgMLIBH9DAAAAAAAAAAAAAAAAAAAAAAiGv0LAwAgCCAa/QsDCEEAIQUgCEEsakEAQcQA/AsAA0AgASAFaiIDQbAEav0MHgMeAx4DHgMeAx4DHgMeAyIa/QsCACADQaAEaiAa/QsCACADQZAEaiAa/QsCACADQYAEaiAa/QsCACAFQUBrIgVBgBBHDQALQaACIQQgEyEMIBQhDwwDCyAR/QwAAAAAAAAAAAAAAAAAAAAAIhr9CwMAIAggGv0LAwhBACEFIAhBLGpBAEHEAPwLAANAIAEgBWoiA0GwHWr9DB4DHgMeAx4DHgMeAx4DHgMiGv0LAgAgA0GgHWogGv0LAgAgA0GQHWogGv0LAgAgA0GAHWogGv0LAgAgBUFAayIFQYAQRw0AC0EgIQQgFSEMIBYhDwwCCyAR/QwAAAAAAAAAAAAAAAAAAAAAIhr9CwMAIAggGv0LAwhBACEFIAhBLGpBAEHEAPwLAANAIAEgBWoiA0GwNmr9DB4DHgMeAx4DHgMeAx4DHgMiGv0LAgAgA0GgNmogGv0LAgAgA0GQNmogGv0LAgAgA0GANmogGv0LAgAgBUFAayIFQYAQRw0AC0ETIQQgFyEMIBghDwwCC0EDDAMLIAxBgBBqQQBBgAn8CwALQRwhCUEDIBIgC0EBdGovAQAiECAESw0BGiAQBEAgECEFIA8hBANAQQMgBC0AACIDQQ9LDQMaIAhBCGogA0EBdGoiAyADLwEAQQFqOwEAIARBAWohBCAFQQFrIgUNAAsLQQAhBEEBIQNBACEFQQAhCgNAAkACfyADRQRAIARBD0sNAiAEQQFqDAELIARBECAEayIGIAMgAyAGSxsiBiAEaiIHIAQgB0sbIgRBD0sNASAGIANrIQYDQCAGBEAgBkEBaiEGIARBAWoiBEEQRw0BDAMLC0EAIQMgBEEBagsgGSAEQQJ0aiAFIAhBCGogBEEBdGovAQAiBGpBAXQiBTYCACAEIApqIQohBAwBCwsgBUGAgARHBEBBASALQQJGIApB//8DcUEBS3INAhoLIAxBgBBqIQ1B//8DIQlBACEKA0AgCiAQSQRAIApBAWohBANAIAohCyAEIQoCQCALIA9qLQAAQQ9xIgdFDQAgCEEsaiAHQQJ0aiIDIAMoAgAiA0EBajYCAAJ/IANBf0EgIAdrdnEiA0GABE8EQCADQQh0IANBgP4DcUEIdnIiA0EEdkGPHnEgA0GPHnFBBHRyIgNBAnZBs+YAcSADQbPmAHFBAnRyIgNBAXZB1aoBcSADQdWqAXFBAXRyDAELIANBAXQvAZT/RAtB//8DcUEQIAdrdiEFIAdBCk0EQCAFQf8HSw0BIAdBCXQgC3IhA0EBIAd0IgZBAXQhCyAMIAVBAXRqIQQDQCAEIAM7AQAgBCALaiEEIAUgBmoiBUGACEkNAAsMAQsgDCAFQf8HcUEBdGoiAy8BACIGQZ4GRwR/IAkFIAMgCTsBACAJIgZBAmsLIQMCQCAHQQtGBEAgBUEJdiEODAELQQohCUEDIAVBCnYiDkEBcSAGQX9zakH//wNxIgRBvwRLDQYaIA0gBEEBdGoiBC8BACIGBH8gAwUgBCADOwEAIAMhBiADQQJrCyEEIAdBDUkEQCAEIQMMAQtBAyAFQQt2Ig5BAXEgBkF/c2pB//8DcSIDQb8ESw0GGiANIANBAXRqIgMvAQAiBgR/IAQFIAMgBDsBACAEIQYgBEECawshAyAHQQ1GDQBBAyAFQQx2Ig5BAXEgBkF/c2pB//8DcSIEQb8ESw0GGiANIARBAXRqIgQvAQAiBgR/IAMFIAQgAzsBACADIQYgA0ECawshBCAHQQ9HBEAgBCEDDAELQQMgBUENdiIOQQFxIAZBf3NqQf//A3EiA0G/BEsNBhogDSADQQF0aiIDLwEAIgYEQCAEIQMMAQsgAyAEOwEAIARBAmshAyAEIQYLIA5BAXZBAXEgBkF/c2pB//8DcSIEQb8ESwRAQQohCUEDDAYLIA0gBEEBdGogCzsBACADIQkMAwsgCiAKIBBJIgNqIQQgAw0ACwsLAkACQAJAIAEtAOtRIgMOAwABAgELIAJBADYCDEEMIQlBAQwDCyABIANBAWsiBDoA61EMAQsLIAJBADYCDEEKIQlBAQshBCAAIAk6AAEgACAEOgAAC6IOBAp/A30BewF+IwBB0ARrIgokAAJAAkACQAJAAnsgAxC5CiISBEBDAACAPyEUQwAAgD8hFUMAAIA/IRb9DAAAAAAAAIA/AABAwQAAEEEMAQsgCkHQAWogAxC1ASAKLQDsASINQQJGBEAgCigC0AEhCyAAQQA2AgAgACALNgIEQQEhDQwCCyAKQQ5qIApB7wFqLQAAOgAAIAogCi8A7QE7AQwgCioC6AEhFCAKKgLkASEVIAoqAuABIRYgCv0ABNABCyEXQQYhDAJAAkACQAJAAkAgASgCACILQYCAgIB4Rg0AIApBEGogASgCBCIOIAEoAggQkQUgCi0AEEEBRgRAIAooAhQhDCAKQQA2ApwDIApCgICAgBA3ApQDIApBnJPBADYC1AEgCkKggICADjcC2AEgCiAKQZQDajYC0AEgDCAKQdABahCvBA0CIAooApQDIQ0gCigCmAMiDyAKKAKcAxDsCCERIA0EQCAPQQRrKAIAIhBBeHEiE0EEQQggEEEDcSIQGyANakkNCSAQQQAgEyANQSdqSxsNCiAPEKICC0EAIQ0gAEEANgIAIAAgETYCBCAMIAwoAgAoAgARAwAgC0UNBiAOQQRrKAIAIgBBeHEiDEEEQQggAEEDcSIAGyALakkNCCAAQQAgDCALQSdqSxsNCSAOEKICDAYLIAotABEhDCALRQ0AIA5BBGsoAgAiAUF4cSIPQQRBCCABQQNxIgEbIAtqSQ0HIAFBACAPIAtBJ2pLGw0IIA4QogILQQQhAUEAIQtBABC2CSEQQQAhDkEEIQ8CQCAEQQFxRQ0AIApB0AFqIAUQlwYgCigC2AEhESAKKALUASEPIAooAtABIQ4gBUGECEkNACAFEJsHC0EAIQUCQCAGQQFxRQ0AIApB0AFqIAcQlwYgCigC2AEhBSAKKALUASEBIAooAtABIQsgB0GECEkNACAHEJsHC0EEIQdBACEGQQAhBAJAIAhBAXFFDQAgCkHQAWogCRCXBiAKKALYASEEIAooAtQBIQcgCigC0AEhBiAJQYQISQ0AIAkQmwcLIAogDToA7AIgCiAUOALoAiAKIBU4AuQCIAogFjgC4AIgCiAX/QsC0AIgCkGAgICAeDYCxAIgCkKAgICAgICAgIB/NwK0AiAKQoCAgIDAADcCrAIgCiAENgKoAiAKIAc2AqQCIAogBjYCoAIgCiAFNgKcAiAKIAE2ApgCIAogCzYClAIgCiARNgKQAiAKIA82AowCIAogDjYCiAIgCkEANgKAAiAKQQA2AvgBIApBADYC8AEgCkEANgLoASAKQQA2AuABIApBADYC2AEgCkEANgLQASAKQYgDakEAOgAAQQIhCSAKQe8CaiAKQQ5qLQAAOgAAIApBADYC+AIgCiAQNgL8AiAKQgA3AvACIApCADcCgAMgCiAKLwEMOwDtAiACKAIAIQQgAigCBCEGIAIoAgghAQJ/IAxBBkcEQCAKIAwgCkHQAWoQ1QMgCigCBCEFIAooAgAMAQsgCkGUA2ogCkHUAWpBuAH8CgAAQQAhCUEACyEIQYCAgIB4IQcgBEGAgICAeEcEQCABQQBIDQICQCABRQRAQQEhBwwBCyABEHEiB0UNBAsgAQRAIAcgBiAB/AoAAAsgB60gAa1CIIaEIRggASEHCyAKQRhqIgIgCkGUA2pBuAH8CgAAQewBEHEiAUUNAiABIAk2AgAgAUEEaiACQbgB/AoAACABIAw6AOgBIAEgBTYC5AEgASAINgLgASABQYCAgIB4NgLUASABIBg3AswBIAEgBzYCyAEgAUEANgLEASABQoCAgIAQNwK8ASAAQZDwwAA2AgwgAEEBNgIIIABB+O/AADYCBCAAIAE2AgAgEkUgA0GECElyDQMgAxCbBwwDC0GgnsYAQTcgCkHPBGpBtJPBAEHYnsYAEOAGAAtB2JrIABD/BwsACyAEQYCAgIB4ckGAgICAeEYNAQJAIAZBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIARqTwRAIABBACABIARBJ2pLGw0BIAYQogIMAwsMAwsMAwsgCEUgCUGECElyRQRAIAkQmwcLIAZFIAdBhAhJckUEQCAHEJsHCyAERSAFQYQISXJFBEAgBRCbBwsgEkUgA0GECElyRQRAIAMQmwcLIAIoAgAiAEGAgICAeHJBgICAgHhHBEAgAigCBCICQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyAAakkNAiADQQAgBCAAQSdqSxsNAyACEKICCyANIAEoAgAiAEGAgICAeEdxRSAARXINACABKAIEIgFBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIABqSQ0BIAJBACADIABBJ2pLGw0CIAEQogILIApB0ARqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvLDQMPfwR+AXsjAEEgayIKJAACQAJAAkAgACgCDCILQQFqIgMEQAJAIAAoAgQiCCAIQQFqIglBA3YiAkEHbCIOIAhBCEkbIgZBAXYgA0kEQAJAAkACQAJAAn8gBkEBaiICIAMgAiADSxsiA0EPTwRAIANB/////wFLDQtBfyADQQN0QQduQQFrZ3ZBAWoMAQtBBCADQQhxQQhqIANBBEkbCyIDrUIYfiIRQiCIpw0AIBGnIgIgA0EIaiIGaiIFIAJJIAVB+P///wdLcg0AIAUQcSIFRQ0BIAIgBWohBCAGBEAgBEH/ASAG/AsACyADQQFrIgkgA0EDdkEHbCAJQQhJGyEMIAAoAgAhBSALDQJBACELDAMLIApBADYCGCAKQQE2AgwgCkHEtcQANgIIIApCBDcCECAKQQhqQZi1xAAQjQgLAAsgBEEIaiENIAVBGGshDiAFKQMAQn+FQoCBgoSIkKDAgH+DIREgASkDCCETIAEpAwAhFEEAIQMgCyEBIAUhBgNAIBFQBEADQCADQQhqIQMgBkEIaiIGKQMAQoCBgoSIkKDAgH+DIhFCgIGChIiQoMCAf1ENAAsgEUKAgYKEiJCgwIB/hSERCyAEIAkgFCATIA4gEXqnQQN2IANqIg9BaGxqEPgDpyIQcSICaikAAEKAgYKEiJCgwIB/gyISUARAQQghBwNAIAIgB2ohAiAHQQhqIQcgBCACIAlxIgJqKQAAQoCBgoSIkKDAgH+DIhJQDQALCyARQgF9IBGDIREgBCASeqdBA3YgAmogCXEiAmosAABBAE4EQCAEKQMAQoCBgoSIkKDAgH+DeqdBA3YhAgsgAiAEaiAQQRl2Igc6AAAgDSACQQhrIAlxaiAHOgAAIAQgAkF/c0EYbGoiAkEQaiAFIA9Bf3NBGGxqIgdBEGopAAA3AAAgAiAH/QAAAP0LAAAgAUEBayIBDQALCyAAIAk2AgQgACAENgIAIAAgDCALazYCCCAIRQ0BIAggCEEYbEEfakF4cSIBakEJaiIARQ0BIAUgAWsiAUEEaygCACIDQXhxIgJBBEEIIANBA3EiAxsgAGpJDQMgA0EAIAIgAEEnaksbDQQgARCiAgwBCyAAIAkEfyAAKAIAIQACQAJAIAIgCUEHcUEAR2oiBUECSQRAIAUhBgwBCyAFQQFxIQYgBUH+////A3EiBEEDdCEHIAQhAiAAIQMDQCADIAP9AAMAIhX9TUEH/c0B/QwBAQEBAQEBAQEBAQEBAQEB/U4gFf0Mf39/f39/f39/f39/f39/f/1Q/c4B/QsDACADQRBqIQMgAkECayICDQALIAQgBUYNAQsgACAHaiEDA0AgAyADKQMAIhFCf4VCB4hCgYKEiJCgwIABgyARQv/+/fv379+//wCEfDcDACADQQhqIQMgBkEBayIGDQALCwJAIAlBCE8EQCAAIAlqIAApAAA3AAAMAQsgCUUNACAAQQhqIAAgCfwKAAALIABBCGohBSAAQRhrIQ8gASkDCCESIAEpAwAhE0EBIQJBACEDA0AgAyEGIAIhAwJAIAAgBmoiDC0AAEGAAUcNACAPIAZBaGxqIRAgACAGQX9zQRhsaiECA0AgCCATIBIgEBD4A6ciDXEiBCEBIAAgBGopAABCgIGChIiQoMCAf4MiEVAEQEEIIQcDQCABIAdqIQEgB0EIaiEHIAAgASAIcSIBaikAAEKAgYKEiJCgwIB/gyIRUA0ACwsgACAReqdBA3YgAWogCHEiAWosAABBAE4EQCAAKQMAQoCBgoSIkKDAgH+DeqdBA3YhAQsgASAEayAGIARrcyAIcUEITwRAIAAgAWoiBC0AACAEIA1BGXYiBDoAACAFIAFBCGsgCHFqIAQ6AAAgACABQX9zQRhsaiEBQf8BRgRAIAxB/wE6AAAgBSAIIAZBCGtxakH/AToAACABQRBqIAJBEGopAAA3AAAgASAC/QAAAP0LAAAMAwsgAikAACERIAIgASkAADcAACABIBE3AAAgASkACCERIAEgAikACDcACCACIBE3AAggAigAECEEIAIgASgAEDYAECABKAAUIQcgASACKAAUNgAUIAIgBzYAFCABIAQ2ABAMAQsLIAwgDUEZdiIBOgAAIAUgCCAGQQhrcWogAToAAAsgAyADIAlJIgFqIQIgAQ0ACyAIIA4gCEEISRsFQQALIAtrNgIICyAKQSBqJAAPCwwCC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgCkEANgIYIApBATYCDCAKQcS1xAA2AgggCkIENwIQIApBCGpBmLXEABCNCAALgg0CCX8HfSADQQhPBEAgACAAIANBA3YiA0EEdCIGaiAAIANBHGwiB2ogAyAEEMEBIQAgASABIAZqIAEgB2ogAyAEEMEBIQEgAiACIAZqIAIgB2ogAyAEEMEBIQILQwAAgD8hDgJ/AkAgACgCACIDIAQoAgBBBGooAgAiBEEIaigCACIHSQRAIAEoAgAhBiAEQQRqKAIAIgkgA0EkbGoiCBCKBCEQIAgvARQiBEH//wFxIgxFBEAgBEEQdAwDCyAEQf8HcSEDIARBgIACcSEFIARBgPgBcSIKQYD4AUYEQCAFQRB0IQUgBUGAgID8B3IgA0UNAxogBSADQQ10ckGAgID+B3IMAwsgBUEQdCEFIApFDQEgCkENdEGAgID8AHEgA0ENdHJBgICAwANqIAVyDAILIAMgB0HUwMcAEIwHAAsgBUGAgIDYA3IgA2dBEGsiBUEXdGsgAyAFQf//A3FBCGp0Qf///wNxcgu+Ig9DAACAP14EQCAPEMYFQ1T4LUCUQwAAgD+SkSEOC0MAAIA/IRICfwJAIAYgB0kEQCAJIAZBJGxqIgoQigQhDyAKLwEUIgZB//8BcSINRQRAIAZBEHQMAwsgBkH/B3EhAyAGQYCAAnEhBSAGQYD4AXEiC0GA+AFGBEAgBUEQdCEFIAVBgICA/AdyIANFDQMaIAUgA0ENdHJBgICA/gdyDAMLIAVBEHQhBSALRQ0BIAtBDXRBgICA/ABxIANBDXRyQYCAgMADaiAFcgwCCyAGIAdB1MDHABCMBwALIAVBgICA2ANyIANnQRBrIgVBF3RrIAMgBUH//wNxQQhqdEH///8DcXILviIRQwAAgD9eBEAgERDGBUNU+C1AlEMAAIA/kpEhEgsgAigCACEFIAgQigQhEUMAAIA/IRMCfyAEQRB0IAxFDQAaIARB/wdxIQMgBEGAgAJxIQggBEGA+AFxIgRBgPgBRgRAIAhBEHQhBCAEQYCAgPwHciADRQ0BGiAEIANBDXRyQYCAgP4HcgwBCyAIQRB0IQggBEENdEGAgID8AHEgA0ENdHJBgICAwANqIAhyIAQNABogCEGAgIDYA3IgA2dBEGsiBEEXdGsgAyAEQf//A3FBCGp0Qf///wNxcgu+IhRDAACAP14EQCAUEMYFQ1T4LUCUQwAAgD+SkSETCwJ/AkAgBSAHSQRAIBAgEJIgDpQiDiAPIA+SIBKUYEUhCCAOIA5bIQsgCSAFQSRsaiIHEIoEIRAgBy8BFCIDQf//AXEiDEUEQCADQRB0DAMLIANB/wdxIQQgA0GAgAJxIQUgA0GA+AFxIglBgPgBRgRAIAVBEHQhBSAFQYCAgPwHciAERQ0DGiAFIARBDXRyQYCAgP4HcgwDCyAFQRB0IQUgCUUNASAJQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogBXIMAgsgBSAHQdTAxwAQjAcACyAFQYCAgNgDciAEZ0EQayIFQRd0ayAEIAVB//8DcUEIanRB////A3FyC0MAAIA/IQ6+Ig9DAACAP14EQCAPEMYFQ1T4LUCUQwAAgD+SkSEOCyAIIAtxIgUgESARkiATlCIPIA9bIA8gECAQkiAOlGBFcUYEfyAKEIoEIRBDAACAPyEPAn8gBkEQdCANRQ0AGiAGQf8HcSEAIAZBgIACcSEEIAZBgPgBcSIGQYD4AUYEQCAEQRB0IQQgBEGAgID8B3IgAEUNARogBCAAQQ10ckGAgID+B3IMAQsgBEEQdCEEIAZBDXRBgICA/ABxIABBDXRyQYCAgMADaiAEciAGDQAaIARBgICA2ANyIABnQRBrIgRBF3RrIAAgBEH//wNxQQhqdEH///8DcXILviIOQwAAgD9eBEAgDhDGBUNU+C1AlEMAAIA/kpEhDwtDAACAPyEOIAIgASAFIBAgEJIgD5QiECAQWyAQIAcQigQiEiASkgJ/IANBEHQgDEUNABogA0H/B3EhACADQYCAAnEhBCADQYD4AXEiA0GA+AFGBEAgBEEQdCEDIANBgICA/AdyIABFDQEaIAMgAEENdHJBgICA/gdyDAELIARBEHQhBCADQQ10QYCAgPwAcSAAQQ10ckGAgIDAA2ogBHIgAw0AGiAEQYCAgNgDciAAZ0EQayIDQRd0ayAAIANB//8DcUEIanRB////A3FyC74iEUMAAIA/XgR9IBEQxgVDVPgtQJRDAACAP5KRBSAOC5RgRXFzGwUgAAsLww0DBHsIfwF+AkACQAJAAkBBfyAELQC/AiILQQ9xdCIJQf8BcUH/AUcEQEH/ASAJQX9zIg9B/wFxbiEMQQEgC3RBlgJxRSALQQhLcg0BIAQoAtABIQogBCgCzAEhDSAEKALUASEQQQggC25BAXStIAGtfiIRQiCIUCARpyADSXENAiAAIAFqIQ4gA0F+cSEEAkAgC0EIRwRAIARFDQZBCCALayEJIA1BgYCAgHhGBEBBACEKQQAgBGshAUF/IQQDQCAEQQBIBEAgACAORg0EIAAtAAAhCiAJIQQgAEEBaiEACyACQQFqQf8BOgAAIAIgCiAEdiAPcSAMbDoAACAEIAtrIQQgAkECaiECIAFBAmoiAQ0ACwwHCyAQBEBBACADQX5xayEBQQAhA0F/IQQDQCAEQQBIBEAgACAORg0EIAAtAAAhAyAJIQQgAEEBaiEACyACIANB/wFxIAR2IA9xIg0gDGw6AAAgAkEBakF/QQAgDSAKLQAARxs6AAAgBCALayEEIAJBAmohAiABQQJqIgENAAsMBwsgAUUNAUEAQQBBkJnFABCMBwALIAFFDQUgDUGBgICAeEYEQCADQQF2IgMgAUEBayIBIAEgA0sbIgFBEEkgACACIAFBAXRqQQJqSSAAIAFqQQFqIAJLcXJFBEAgACABQQFqIgEgAUEPcSIBQRAgARtrIglqIAQgCUEBdCIDayEEIAIgA2ogDP0PIQYDQCACQR9qQf8BOgAAIAJBHWpB/wE6AAAgAkEbakH/AToAACACQRlqQf8BOgAAIAJBF2pB/wE6AAAgAkEVakH/AToAACACQRNqQf8BOgAAIAJBEWpB/wE6AAAgAkEPakH/AToAACACQQ1qQf8BOgAAIAJBC2pB/wE6AAAgAkEJakH/AToAACACQQdqQf8BOgAAIAJBBWpB/wE6AAAgAkEDakH/AToAACACQQFqQf8BOgAAIAJBHmogAP0AAAAiBf0WDyAG/RYPbDoAACACQRxqIAX9Fg4gBv0WDmw6AAAgAkEaaiAF/RYNIAb9Fg1sOgAAIAJBGGogBf0WDCAG/RYMbDoAACACQRZqIAX9FgsgBv0WC2w6AAAgAkEUaiAF/RYKIAb9FgpsOgAAIAJBEmogBf0WCSAG/RYJbDoAACACQRBqIAX9FgggBv0WCGw6AAAgAkEOaiAF/RYHIAb9FgdsOgAAIAJBDGogBf0WBiAG/RYGbDoAACACQQpqIAX9FgUgBv0WBWw6AAAgAkEIaiAF/RYEIAb9FgRsOgAAIAJBBmogBf0WAyAG/RYDbDoAACACQQRqIAX9FgIgBv0WAmw6AAAgAkECaiAF/RYBIAb9FgFsOgAAIAIgBf0WACAG/RYAbDoAACAAQRBqIQAgAkEgaiECIAlBEGsiCQ0ACyECIQALA0AgBEUNByACQQFqQf8BOgAAIAIgAC0AACAMbDoAACAEQQJrIQQgAkECaiECIA4gAEEBaiIARw0ACwwGCyAQBEAgA0EBdiIDIAFBAWsiASABIANLGyIBQQ9NDQUgAiAAIAFqQQFqSSAAIAIgAUEBdGpBAmoiA0lxIAIgCkEBakkgAyAKS3FyDQUgACABQQFqIgEgAUEPcSIBQRAgARtrIglqIAQgCUEBdCIDayEEIAIgA2ohAyAK/QcAACEHIAz9DyEGA0AgAiAA/QAAACIF/RYAIAb9FgBs/Q8gBf0WASAG/RYBbP0XASAF/RYCIAb9FgJs/RcCIAX9FgMgBv0WA2z9FwMgBf0WBCAG/RYEbP0XBCAF/RYFIAb9FgVs/RcFIAX9FgYgBv0WBmz9FwYgBf0WByAG/RYHbP0XByAF/RYIIAb9Fghs/RcIIAX9FgkgBv0WCWz9FwkgBf0WCiAG/RYKbP0XCiAF/RYLIAb9Fgts/RcLIAX9FgwgBv0WDGz9FwwgBf0WDSAG/RYNbP0XDSAF/RYOIAb9Fg5s/RcOIAX9Fg8gBv0WD2z9Fw8iCCAFIAf9JCIF/Q0IGAkZChoLGwwcDR0OHg8f/QsAECACIAggBf0NABABEQISAxMEFAUVBhYHF/0LAAAgAEEQaiEAIAJBIGohAiAJQRBrIgkNAAshACADIQIMBQsgBEUNBUEAQQBBkJnFABCMBwALQfyWxQBBIkGgl8UAEKsHAAtBgJnFABCBCAALQbCXxQBBNEHkl8UAEOsHAAtBhJbFAEHlAEHslsUAEOsHAAsDQCAERQ0BIAIgAC0AACIBIAxsOgAAIAJBAWpBf0EAIAEgCi0AAEcbOgAAIARBAmshBCACQQJqIQIgAEEBaiIAIA5HDQALCwu+DAIGfwR+IwBBwAFrIgQkAAJAAkACQCAAKQMAQgJRDQAgACgCqAEhASAAQQA2AqgBAkACQAJAAkAgAUEBaw4CAQIACyAEQQhqIQICQAJAQSUQcSIBRQ0AIAFBHWpBnZ3HACkAADcAACABQRBqQZCdxwD9AAAA/QsAACABQYCdxwD9AAAA/QsAAEEMEHEiA0UNACADQSU2AgggAyABNgIEIANBJTYCAEEMEHEiAUUNACABQSg6AAggAUG4nccANgIEIAEgAzYCACACQQA2AhAgAiABrUIghkIDhDcDAAwBCwALDAILIARBGGogAEHAAWopAwA3AwAgBCAA/QADsAH9CwMIDAELIAAoAqwBIgFBQGshAiABKAIkIQMgASgCICEFAkAgASkDGCIHQgJSBEAgASkDOCEIIARBMGogAUEQaikDADcDACAEQegAaiACQQhq/QADAP0LAwAgBEGoAWogAUGIAWr9AAMA/QsDACAEQZgBaiABQfgAav0AAwD9CwMAIARBuAFqIAFBmAFqKQMANwMAIAQgAf0AAwD9CwMgIAQgAf0AAyj9CwNIIAQgAikDADcDYCAEIAH9AANY/QsDeCAEIAH9AANo/QsDiAEgBEEYaiAEQdAAaikDADcDACAEIAM2AkQgBCAFNgJAIAQgBzcDOCAEIAg3A1ggBCAE/QADQP0LAwggBCgCJCEDIAQoAiAhBSAEQfgAahCEBQwBCyAEQRhqIAJBEGopAwA3AwAgBCAC/QADAP0LAwgLIAMEQCAFQQRrKAIAIgJBeHEiBkEEQQggAkEDcSICGyADakkNAyACQQAgBiADQSdqSxsNBCAFEKICCyABQQRrKAIAIgNBeHFBvAFBwAEgA0EDcSICG0kNAiACQQAgA0HgAU8bDQMgARCiAgsCQCAEKAIYIgEEQCAEKQMQIghQDQEgASkDCCEHIAEoAgQiA60hCQNAAkAgByADIAcgCSAHIAlUG6ciAmsiBUKAwAAgCCAIQoDAAFobpyIGIAUgBkkbrSIKfCEHIAIgA0YNACAIIAp9IghCAFINAQsLIAEgBzcDCAwBCyAELQAIQQNHDQAgBCgCDCIBKAIAIQMgAUEEaigCACICKAIAIgUEQCADIAURAwALIAIoAgQiAgRAIANBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIAJqSQ0DIAVBACAGIAJBJ2pLGw0EIAMQogILIAFBBGsoAgAiA0F4cSICQRBBFCADQQNxIgMbSQ0CIANBACACQTRPGw0DIAEQogILIAAoAiwiAQRAIAAoAigiA0EEaygCACICQXhxIgVBBEEIIAJBA3EiAhsgAWpJDQIgAkEAIAUgAUEnaksbDQMgAxCiAgsgACgCNCIBBEAgACgCMCIDQQRrKAIAIgJBeHEiBUEEQQggAkEDcSICGyABakkNAiACQQAgBSABQSdqSxsNAyADEKICCwJAIAAoAowBIgFFDQAgASABKAIAIgFBAWs2AgAgAUEBRw0AIAAoAowBEN0FCwJAIAAoApABIgFFDQAgASABKAIAIgFBAWs2AgAgAUEBRw0AIAAoApABEN0FCyAAKAI8IgEEQCAAKAI4IgNBBGsoAgAiAkF4cSIFQQRBCCACQQNxIgIbIAFqSQ0CIAJBACAFIAFBJ2pLGw0DIAMQogILIAAoAngiAUUNACAAKAJ8IgNBBGsoAgAiAkF4cSIFIAFBBXQiAUEEQQggAkEDcSICG3JJDQEgAkEAIAUgAUEnaksbDQIgAxCiAgsgACgCqAFBAk8EQAJAIAAoAqwBIgApAxhCAlEEQCAAKAIkIgFFDQEgACgCICIDQQRrKAIAIgJBeHEiBUEEQQggAkEDcSICGyABakkNAyACQQAgBSABQSdqSxsNBCADEKICDAELIAAoAgQiAQRAIAAoAgAiA0EEaygCACICQXhxIgVBBEEIIAJBA3EiAhsgAWpJDQMgAkEAIAUgAUEnaksbDQQgAxCiAgsgAEHYAGoQhAULIABBBGsoAgAiAUF4cUG8AUHAASABQQNxIgMbSQ0BIANBACABQeABTxsNAiAAEKICCyAEQcABaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALuQ4DBX8CfQF+IwBBIGsiAiQAAkAgASgCACIEQYy1xABBBCABKAIEIgMoAgwiBREAAARAQQEhAwwBCwJAAkACQCABKAIIIgZBgICABHFFBEBBASEDIARBu7PFAEEBIAURAAANBCAGQYCAgAFxIQUgACoCACEHIAZBgICAgAFxDQEgAEEEaiEEIAeLIghDyhsOWmAgB0MAAAAAXCAIQxe30ThdcXJFBEAgASAHIAVBAEdBARD3AkUNAwwFCyABIAcgBUEARxDPAkUNAgwECyAEQduBwgBBAiAFEQAABEBBASEDDAQLIAJBAToADyACIAM2AgQgAiAENgIAIAJB4IHCADYCFCACIAEpAggiCTcCGCAJpyIEQYCAgAFxIQMgAiACQQ9qNgIIIAIgAjYCECAAKgIAIQcCQAJAIARBgICAgAFxRQRAIAeLIghDyhsOWmAgB0MAAAAAXCAIQxe30ThdcXINASACQRBqIAcgA0EAR0EBEPcCDQUMAgsgAkEQaiAHIANBAEcgCUIwiKcQvQJFDQEMBAsgAkEQaiAHIANBAEcQzwINAwsgAigCEEHZgcIAQQIgAigCFCgCDBEAAARAQQEhAwwECyAAQQRqIQQMAQsgASAHIAVBAEcgAS8BDhC9Ag0CIABBBGohBAsCQAJAAkACQAJAIAEoAggiA0GAgIAEcUUEQCABKAIAQeeQxgBBAiABKAIEKAIMEQAABEBBASEDDAgLIANBgICAAXEhBSAEKgIAIQcgA0GAgICAAXENASAAQQhqIQQgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQEEBIQMgASAHIAVBAEdBARD3AkUNBQwICyABIAcgBUEARxDPAkUNBEEBIQMMBwsgASkCACEJIAJBAToADyACIAk3AgAgAkHggcIANgIUIAIgASkCCCIJNwIYIAmnIgVBgICAAXEhAyACIAJBD2o2AgggAiACNgIQIAQqAgAhByAFQYCAgIABcUUNASACQRBqIAcgA0EARyAJQjCIpxC9AkUNAgwECyABIAcgBUEARyABLwEOEL0CBEBBASEDDAYLIABBCGohBAwCCyAHiyIIQ8obDlpgIAdDAAAAAFwgCEMXt9E4XXFyRQRAIAJBEGogByADQQBHQQEQ9wINAwwBCyACQRBqIAcgA0EARxDPAg0CCyACKAIQQdmBwgBBAiACKAIUKAIMEQAARQRAIABBCGohBAwBC0EBIQMMAwsCQAJAAkACQAJAIAEoAggiA0GAgIAEcUUEQCABKAIAQeeQxgBBAiABKAIEKAIMEQAABEBBASEDDAkLIANBgICAAXEhBSAEKgIAIQcgA0GAgICAAXENASAAQQxqIQQgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQEEBIQMgASAHIAVBAEdBARD3AkUNBQwJCyABIAcgBUEARxDPAkUNBEEBIQMMCAsgASkCACEJIAJBAToADyACIAk3AgAgAkHggcIANgIUIAIgASkCCCIJNwIYIAmnIgVBgICAAXEhAyACIAJBD2o2AgggAiACNgIQIAQqAgAhByAFQYCAgIABcUUNASACQRBqIAcgA0EARyAJQjCIpxC9AkUNAgwECyABIAcgBUEARyABLwEOEL0CBEBBASEDDAcLIABBDGohBAwCCyAHiyIIQ8obDlpgIAdDAAAAAFwgCEMXt9E4XXFyRQRAIAJBEGogByADQQBHQQEQ9wINAwwBCyACQRBqIAcgA0EARxDPAg0CCyACKAIQQdmBwgBBAiACKAIUKAIMEQAARQRAIABBDGohBAwBC0EBIQMMBAsCQAJAAkACQAJAIAEoAggiA0GAgIAEcUUEQCABKAIAQeeQxgBBAiABKAIEKAIMEQAABEBBASEDDAoLIANBgICAAXEhACAEKgIAIQcgA0GAgICAAXENASAHiyIIQ8obDlpgIAdDAAAAAFwgCEMXt9E4XXFyRQRAQQEhAyABIAcgAEEAR0EBEPcCRQ0FDAoLQQEhAyABIAcgAEEARxDPAkUNBAwJCyABKQIAIQkgAkEBOgAPIAIgCTcCACACQeCBwgA2AhQgAiABKQIIIgk3AhggCaciA0GAgIABcSEAIAIgAkEPajYCCCACIAI2AhAgBCoCACEHIANBgICAgAFxRQ0BIAJBEGogByAAQQBHIAlCMIinEL0CRQ0CDAQLQQEhAyABIAcgAEEARyABLwEOEL0CDQcMAgsgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQCACQRBqIAcgAEEAR0EBEPcCDQMMAQsgAkEQaiAHIABBAEcQzwINAgsgAigCEEHZgcIAQQIgAigCFCgCDBEAAEUNAEEBIQMMBQsgASgCAEHejsgAQQEgASgCBCgCDBEAACEDDAQLQQEhAwwDC0EBIQMMAgtBASEDDAELQQEhAwsgAkEgaiQAIAML6A4CC38BfiMAQSBrIgMkAEGAgICAeCEHAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiBEGAgICAeHMgBEEAThtBFGsOAgECAAsgASADQRRqQaTjwAAQlQghASAAQYCAgIB4NgIAIAAgATYCBAwKCyABKAIMIgVFDQECQCABKAIIIgEoAgBBlICAgHhGBEACQCABKAIMIgIEQCADQQRqIAEoAggQqAMgAygCBCIEQYCAgIB4Rw0BIAMoAgghAQwMC0EAIANBFGpBhOLAABDbBiEBDAsLIAMoAgghCCACQQFGDQEgA0EBNgIEIAJBAWtB/////wBxQQFqIANBBGpB6JXBABDbBiEBIARFDQogCCAEQQEQogcMCgsgASADQRRqQYTiwAAQlQghAQwJCwJAAn8gBUEBRwRAIAMoAgwhBiADQQRqIgcgAUEQahDQAyADKAIIIgEgAygCBCICQYCAgIB4Rg0BGiAFQQJGDQIgA0ECNgIEIAVB/v///wBqQf////8AcUECaiAHQeiVwQAQ2wYhBSAAQYCAgIB4NgIAIAAgBTYCBCAEBEAgCCAEQQEQogcLIAJFDQwgASACQQJ0QQQQogcMDAtBAUHsgMEAQYD9wAAQ2wYLIQEgBEUNCSAIQQRrKAIAIgVBeHEiAkEEQQggBUEDcSIFGyAEakkNDCAFQQAgAiAEQSdqSxsNCyAIEKICDAkLIAAgAygCDDYCFCAAIAE2AhAgACACNgIMIAAgBjYCCCAAIAg2AgQgACAENgIADAkLIAEoAgghBCABKAIEIQEgA0IANwIMIAMgATYCBCADIAEgBEEFdGoiCTYCCCAERQ0CQYCAgIB4IQYDQCADIAFBIGoiBDYCBCADIAMoAhBBAWo2AhAgAyABQRBqIgo2AgwCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQRUgASgCACICQYCAgIB4cyACQQBOG0EBaw4PAAsLAQsLCwsLCwsCAwQFCwsgAS0ABCIBRQ0HQQFBAiABQQFGGyEBDAsLIAEpAwgiDVANBkEBQQIgDUIBURshAQwKCyABKAIIIQIgASgCDEEFaw4EBAsLBgsLIAEoAgQhAgJAIAEoAghBBWsOBAMLCwALCyACKQAAQuPekaum7Nu36wBRDQkMCgsgASgCCCECAkACQCABKAIMQQVrDgQACwsBCwsgAi0AAEHmAEcNCiACLQABQekARw0KIAItAAJB7ABHDQogAi0AA0HlAEcNCiACLQAEQfMARw0KDAQLIAItAABB4wBHDQkgAi0AAUHvAEcNCSACLQACQeQARw0JIAItAANB5QBHDQkgAi0ABEHiAEcNCSACLQAFQe8ARw0JIAItAAZB7wBHDQkgAi0AB0HrAEYNCAwJCyABKAIEIQICQAJAIAEoAghBBWsOBAAKCgEKCyACLQAAQeYARw0JIAItAAFB6QBHDQkgAi0AAkHsAEcNCSACLQADQeUARw0JIAItAARB8wBHDQkMAwsgAi0AAEHjAEcNCCACLQABQe8ARw0IIAItAAJB5ABHDQggAi0AA0HlAEcNCCACLQAEQeIARw0IIAItAAVB7wBHDQggAi0ABkHvAEcNCCACLQAHQesARg0HDAgLIAJBkP3AAEEFENsHDQcMAQsgAkGQ/cAAQQUQ2wcNBgsgBkGAgICAeEYNAUGQ/cAAQQUQnwchBAwMCyACKQAAQuPekaum7Nu36wBRDQMMBAsgA0EUaiADQQRqELIFIAMoAhghBCADKAIUIgZBgICAgHhGBEBBgICAgHghBgwLCyADKAIcIQsgAygCCCEJIAQhCCADKAIEDAULIAEgA0EUakH048AAEJUIIQQMCQsgAUECRg0BCyAHQYCAgIB4Rg0BQZj+wABBCBCfByEEIAdFDQkMCAsgA0EANgIMIAQMAQsgA0EANgIMIANBFGogChDQAyADKAIYIQUgAygCFCIHQYCAgIB4RgRAIAUhBAwICyADKAIcIQwgBAsiASAJRw0ACwwBC0EAQeyAwQBBgP3AABDbBiEBDAYLIAZBgICAgHhGDQAgB0GAgICAeEYEQEGY/sAAQQgQnAchBCAGRQ0FIAggBkEBEKIHDAULIAAgDDYCFCAAIAU2AhAgACAHNgIMIAAgCzYCCCAAIAg2AgQgACAGNgIADAYLQYCAgIB4IQZBkP3AAEEFEJwHIQQLIAdBgICAgHhyQYCAgIB4Rg0BCyAFQQRrKAIAIgFBeHEiAiAHQQJ0IgdBBEEIIAFBA3EiARtqSQ0FIAFBACACIAdBJ2pLGw0EIAUQogILIAZBgICAgHhyQYCAgIB4Rg0AIAhBBGsoAgAiAUF4cSIFQQRBCCABQQNxIgEbIAZqSQ0EIAFBACAFIAZBJ2pLGw0DIAgQogILIAAgBDYCBCAAQYCAgIB4NgIADAELIAAgATYCBCAAQYCAgIB4NgIACyADQSBqJAAPC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAvoDgILfwF+IwBBIGsiAyQAQYCAgIB4IQcCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQRUgASgCACIEQYCAgIB4cyAEQQBOG0EUaw4CAQIACyABIANBFGpB5OLAABCVCCEBIABBgICAgHg2AgAgACABNgIEDAoLIAEoAgwiBUUNAQJAIAEoAggiASgCAEGUgICAeEYEQAJAIAEoAgwiAgRAIANBBGogASgCCBCoAyADKAIEIgRBgICAgHhHDQEgAygCCCEBDAwLQQAgA0EUakGE4sAAENsGIQEMCwsgAygCCCEIIAJBAUYNASADQQE2AgQgAkEBa0H/////AHFBAWogA0EEakHolcEAENsGIQEgBEUNCiAIIARBARCiBwwKCyABIANBFGpBhOLAABCVCCEBDAkLAkACfyAFQQFHBEAgAygCDCEGIANBBGoiByABQRBqENADIAMoAggiASADKAIEIgJBgICAgHhGDQEaIAVBAkYNAiADQQI2AgQgBUH+////AGpB/////wBxQQJqIAdB6JXBABDbBiEFIABBgICAgHg2AgAgACAFNgIEIAQEQCAIIARBARCiBwsgAkUNDCABIAJBAnRBBBCiBwwMC0EBQbz+wABBgP3AABDbBgshASAERQ0JIAhBBGsoAgAiBUF4cSICQQRBCCAFQQNxIgUbIARqSQ0MIAVBACACIARBJ2pLGw0LIAgQogIMCQsgACADKAIMNgIUIAAgATYCECAAIAI2AgwgACAGNgIIIAAgCDYCBCAAIAQ2AgAMCQsgASgCCCEEIAEoAgQhASADQgA3AgwgAyABNgIEIAMgASAEQQV0aiIJNgIIIARFDQJBgICAgHghBgNAIAMgAUEgaiIENgIEIAMgAygCEEEBajYCECADIAFBEGoiCjYCDAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgJBgICAgHhzIAJBAE4bQQFrDg8ACwsBCwsLCwsLCwIDBAULCyABLQAEIgFFDQdBAUECIAFBAUYbIQEMCwsgASkDCCINUA0GQQFBAiANQgFRGyEBDAoLIAEoAgghAiABKAIMQQVrDgQECwsGCwsgASgCBCECAkAgASgCCEEFaw4EAwsLAAsLIAIpAABC496Rq6bs27frAFENCQwKCyABKAIIIQICQAJAIAEoAgxBBWsOBAALCwELCyACLQAAQeYARw0KIAItAAFB6QBHDQogAi0AAkHsAEcNCiACLQADQeUARw0KIAItAARB8wBHDQoMBAsgAi0AAEHjAEcNCSACLQABQe8ARw0JIAItAAJB5ABHDQkgAi0AA0HlAEcNCSACLQAEQeIARw0JIAItAAVB7wBHDQkgAi0ABkHvAEcNCSACLQAHQesARg0IDAkLIAEoAgQhAgJAAkAgASgCCEEFaw4EAAoKAQoLIAItAABB5gBHDQkgAi0AAUHpAEcNCSACLQACQewARw0JIAItAANB5QBHDQkgAi0ABEHzAEcNCQwDCyACLQAAQeMARw0IIAItAAFB7wBHDQggAi0AAkHkAEcNCCACLQADQeUARw0IIAItAARB4gBHDQggAi0ABUHvAEcNCCACLQAGQe8ARw0IIAItAAdB6wBGDQcMCAsgAkGQ/cAAQQUQ2wcNBwwBCyACQZD9wABBBRDbBw0GCyAGQYCAgIB4Rg0BQZD9wABBBRCfByEEDAwLIAIpAABC496Rq6bs27frAFENAwwECyADQRRqIANBBGoQsgUgAygCGCEEIAMoAhQiBkGAgICAeEYEQEGAgICAeCEGDAsLIAMoAhwhCyADKAIIIQkgBCEIIAMoAgQMBQsgASADQRRqQbTkwAAQlQghBAwJCyABQQJGDQELIAdBgICAgHhGDQFBmP7AAEEIEJ8HIQQgB0UNCQwICyADQQA2AgwgBAwBCyADQQA2AgwgA0EUaiAKENADIAMoAhghBSADKAIUIgdBgICAgHhGBEAgBSEEDAgLIAMoAhwhDCAECyIBIAlHDQALDAELQQBBvP7AAEGA/cAAENsGIQEMBgsgBkGAgICAeEYNACAHQYCAgIB4RgRAQZj+wABBCBCcByEEIAZFDQUgCCAGQQEQogcMBQsgACAMNgIUIAAgBTYCECAAIAc2AgwgACALNgIIIAAgCDYCBCAAIAY2AgAMBgtBgICAgHghBkGQ/cAAQQUQnAchBAsgB0GAgICAeHJBgICAgHhGDQELIAVBBGsoAgAiAUF4cSICIAdBAnQiB0EEQQggAUEDcSIBG2pJDQUgAUEAIAIgB0EnaksbDQQgBRCiAgsgBkGAgICAeHJBgICAgHhGDQAgCEEEaygCACIBQXhxIgVBBEEIIAFBA3EiARsgBmpJDQQgAUEAIAUgBkEnaksbDQMgCBCiAgsgACAENgIEIABBgICAgHg2AgAMAQsgACABNgIEIABBgICAgHg2AgALIANBIGokAA8LQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC5kOAgJ9A38CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACRSAAKAJcQQJJckUEQEMAAP5CQwAA/kIgACoCUJUgAC0AWEECRhshBiAAKAIoIAFBD2xqIQkgACgCLCEIQQAhAANAIAEgCE8NECAAIARPDREgACAJaiIHQf8AQwAA/kJDAAD+wiAGIAMqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQFqIARPDQ8gB0EBakH/AEMAAP5CQwAA/sIgBiADQQRqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEECaiAETw0OIAdBAmpB/wBDAAD+QkMAAP7CIAYgA0EIaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBA2ogBE8NDSAHQQNqQf8AQwAA/kJDAAD+wiAGIANBDGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQRqIARPDQwgB0EEakH/AEMAAP5CQwAA/sIgBiADQRBqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEFaiAETw0LIAdBBWpB/wBDAAD+QkMAAP7CIAYgA0EUaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBBmogBE8NCiAHQQZqQf8AQwAA/kJDAAD+wiAGIANBGGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQdqIARPDQkgB0EHakH/AEMAAP5CQwAA/sIgBiADQRxqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEIaiAETw0IIAdBCGpB/wBDAAD+QkMAAP7CIAYgA0EgaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBCWogBE8NByAHQQlqQf8AQwAA/kJDAAD+wiAGIANBJGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQpqIARPDQYgB0EKakH/AEMAAP5CQwAA/sIgBiADQShqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEELaiAETw0FIAdBC2pB/wBDAAD+QkMAAP7CIAYgA0EsaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBDGogBE8NBCAHQQxqQf8AQwAA/kJDAAD+wiAGIANBMGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQ1qIARPDQMgB0ENakH/AEMAAP5CQwAA/sIgBiADQTRqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEOaiAETw0CIAdBDmpB/wBDAAD+QkMAAP7CIAYgA0E4aioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIANBPGohAyAAQQ9qIQAgAUEBaiEBIAJBAWsiAg0ACwsPCyAAQQ5qIQAMDgsgAEENaiEADA0LIABBDGohAAwMCyAAQQtqIQAMCwsgAEEKaiEADAoLIABBCWohAAwJCyAAQQhqIQAMCAsgAEEHaiEADAcLIABBBmohAAwGCyAAQQVqIQAMBQsgAEEEaiEADAQLIABBA2ohAAwDCyAAQQJqIQAMAgsgAEEBaiEADAELIAAgBE8NACABIAhBpMTHABCMBwALIAAgBEGUxMcAEIwHAAvYDQIEfwF+IwBBMGsiAiQAAn8CQAJAAkACQAJAAkACQCAAKAIAQQFrDgUBAgMEBQALIABBBGohAyABKAIEIQQgASgCACEBIAAoAhQEQCACIABBFGo2AgQgAiACQQRqrUKAgICAkAeENwMQIAIgA61CgICAgKAHhDcDCCACQgI3AiQgAkECNgIcIAJBwMHEADYCGCACIAJBCGo2AiAgASAEIAJBGGoQwQMMBwsgAy0AAEEDRgRAIAFBlcHEAEEMIAQoAgwRAAAMBwsgAiADrUKAgICAoAeENwMIIAJCATcCJCACQQE2AhwgAkG4wcQANgIYIAIgAkEIajYCICABIAQgAkEYahDBAwwGCyAAQQRqIQMgACgCFARAIAIgAEEUajYCBCACIAJBBGqtQoCAgICQB4Q3AxAgAiADrUKAgICAoAeENwMIIAEoAgAgASgCBCACQgI3AiQgAkECNgIcIAJB8MHEADYCGCACIAJBCGo2AiAgAkEYahDBAwwGCyACIAOtQoCAgICgB4Q3AwggASgCACABKAIEIAJCATcCJCACQQE2AhwgAkHowcQANgIYIAIgAkEIajYCICACQRhqEMEDDAULIAEoAgQhAyABKAIAIQQCQAJAAkACQAJAAkACQEEDIAAoAgQiAUGAgICAeHMgAUEAThtBAWsOBQECBQMEAAsgBEGQwsQAQTggAygCDBEAAEUNBUEBDAoLIARByMLEAEHBACADKAIMEQAARQ0EQQEMCQsgAiAAQQhqNgIEIAIgAkEEaq1CgICAgLAHhDcDCCACQgE3AiQgAkECNgIcIAJBtMPEADYCGCACIAJBCGo2AiAgBCADIAJBGGoQwQNFDQNBAQwICyAEQejDxABBJSADKAIMEQAARQ0CQQEMBwsgAiAAQQhqNgIAIAIgAEEMajYCBCACQoCAgICwByIGIAKthDcDECACIAYgAkEEaq2ENwMIIAJCAjcCJCACQQI2AhwgAkG8xMQANgIYIAIgAkEIajYCICAEIAMgAkEYahDBA0UNAUEBDAYLIAIgAEEEajYCBCACIAJBBGqtQoCAgIDAB4Q3AwggAkIBNwIkIAJBATYCHCACQeDDxAA2AhggAiACQQhqNgIgQQEgBCADIAJBGGoQwQMNBRoLQQAgACgCEEUNBBogAiAAQRBqNgIEIAIgAkEEaq1CgICAgJAHhDcDCCACQgE3AiQgAkEBNgIcIAJBzMTEADYCGCACIAJBCGo2AiAgBCADIAJBGGoQwQMMBAsgASgCACEDIAEoAgQoAgwhAQJAAkACQEECIAApAwgiBqdBAmsgBkIBWBtBAWsOAgECAAsgA0G4v8QAQRggAREAAAwFCyADQfj4xABBFSABEQAADAQLIANB0L/EAEHPACABEQAADAMLIABBBGohBCABKAIEIQMgASgCACEBAkACQAJAAkACQEEDIAAtABQiBUEEayAFQQNNG0H/AXFBAWsOBAECAwQACyACIABBFWo2AgQgAiACQQRqrUKAgICA0AeENwMQIAIgBK1CgICAgKAHhDcDCCACQgI3AiQgAkEDNgIcIAJB8MXEADYCGCACIAJBCGo2AiAgASADIAJBGGoQwQMMBgsgAiAAQRVqNgIEIAIgAkEEaq1CgICAgNAHhDcDCCACQgE3AiQgAkECNgIcIAJBxMbEADYCGCACIAJBCGo2AiAgASADIAJBGGoQwQMMBQsgAiAAQRVqNgIEIAIgAkEEaq1CgICAgLAHhDcDCCACQgE3AiQgAkECNgIcIAJBoMfEADYCGCACIAJBCGo2AiAgASADIAJBGGoQwQMMBAsgAEEUaiEAAkACQAJAIAVBAmsOAgECAAsgAiAANgIEIAIgAkEEaq1CgICAgOAHhDcDCCACQgE3AiQgAkECNgIcIAJBuMjEADYCGCACIAJBCGo2AiAgASADIAJBGGoQwQMMBQsgAiAANgIEIAIgAkEEaq1CgICAgOAHhDcDCCACQgE3AiQgAkECNgIcIAJB7MfEADYCGCACIAJBCGo2AiAgASADIAJBGGoQwQMMBAsgAUH8x8QAQSggAygCDBEAAAwDCyACIABBGGo2AgAgAC0ABEEDRg0BIAIgBDYCBCACIAKtQoCAgIDAB4Q3AxAgAiACQQRqrUKAgICA4AeENwMIIAJCAjcCJCACQQI2AhwgAkG4ycQANgIYIAIgAkEIajYCICABIAMgAkEYahDBAwwCCyAAQQRqIAEQngQMAQsgAiACrUKAgICAwAeENwMIIAJCATcCJCACQQE2AhwgAkH4yMQANgIYIAIgAkEIajYCICABIAMgAkEYahDBAwsgAkEwaiQAC+kNAQF/IwBBMGsiAiQAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAtAABBAWsOHAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwACyACIABBBGo2AgwgAiACQQxqrUKAgICA0AaENwMQIAEoAgAgASgCBCACQgE3AiQgAkEBNgIcIAJB9PLEADYCGCACIAJBEGo2AiAgAkEYahDBAwwcCyACIABBAWo2AgwgAiACQQxqrUKAgICAoAiENwMQIAEoAgAgASgCBCACQQE2AiwgAkGc88QANgIoIAJBATYCJCACQQE2AhwgAkGU88QANgIYIAIgAkEQajYCICACQRhqEMEDDBsLIAIgAEEBajYCDCACIAJBDGqtQoCAgICgCIQ3AxAgASgCACABKAIEIAJBATYCLCACQZzzxAA2AiggAkEBNgIkIAJBATYCHCACQczzxAA2AhggAiACQRBqNgIgIAJBGGoQwQMMGgsgASgCAEHU88QAQR0gASgCBCgCDBEAAAwZCyACIABBAWo2AgwgAiACQQxqrUKAgICAoAiENwMQIAEoAgAgASgCBCACQQE2AiwgAkGc88QANgIoIAJBATYCJCACQQE2AhwgAkGI9MQANgIYIAIgAkEQajYCICACQRhqEMEDDBgLIAEoAgBBkPTEAEERIAEoAgQoAgwRAAAMFwsgASgCAEGh9MQAQSYgASgCBCgCDBEAAAwWCyABKAIAQcf0xABBGiABKAIEKAIMEQAADBULIAEoAgBB4fTEAEEZIAEoAgQoAgwRAAAMFAsgASgCAEH69MQAQQ8gASgCBCgCDBEAAAwTCyABKAIAQYn1xABBEyABKAIEKAIMEQAADBILIAIgAEEBajYCDCACIAJBDGqtQoCAgICwCIQ3AxAgASgCACABKAIEIAJBATYCLCACQZzzxAA2AiggAkEBNgIkIAJBATYCHCACQbj1xAA2AhggAiACQRBqNgIgIAJBGGoQwQMMEQsgAiAAQQFqNgIMIAIgAkEMaq1CgICAgMAIhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBATYCHCACQeT1xAA2AhggAiACQRBqNgIgIAJBGGoQwQMMEAsgAiAAQQFqNgIMIAIgAkEMaq1CgICAgMAIhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBATYCHCACQYj2xAA2AhggAiACQRBqNgIgIAJBGGoQwQMMDwsgASgCAEGQ9sQAQRQgASgCBCgCDBEAAAwOCyABKAIAQaT2xABBESABKAIEKAIMEQAADA0LIAEoAgBBtfbEAEERIAEoAgQoAgwRAAAMDAsgAiAAQQFqNgIMIAIgAkEMaq1CgICAgNAIhDcDECABKAIAIAEoAgQgAkEBNgIsIAJBnPPEADYCKCACQQE2AiQgAkEBNgIcIAJB3PbEADYCGCACIAJBEGo2AiAgAkEYahDBAwwLCyABKAIAQeT2xABBGCABKAIEKAIMEQAADAoLIAIgAEEBajYCDCACIAJBDGqtQoCAgIDACIQ3AxAgASgCACABKAIEIAJCATcCJCACQQE2AhwgAkGY98QANgIYIAIgAkEQajYCICACQRhqEMEDDAkLIAIgAEEBajYCDCACIAJBDGqtQoCAgIDgCIQ3AxAgASgCACABKAIEIAJCATcCJCACQQE2AhwgAkHE98QANgIYIAIgAkEQajYCICACQRhqEMEDDAgLIAIgAEEBajYCDCACIAJBDGqtQoCAgIDgCIQ3AxAgASgCACABKAIEIAJCATcCJCACQQE2AhwgAkHw98QANgIYIAIgAkEQajYCICACQRhqEMEDDAcLIAIgAEEBajYCDCACIAJBDGqtQoCAgIDgCIQ3AxAgASgCACABKAIEIAJCATcCJCACQQE2AhwgAkGc+MQANgIYIAIgAkEQajYCICACQRhqEMEDDAYLIAEoAgBBpPjEAEEYIAEoAgQoAgwRAAAMBQsgAiAAQQRqNgIMIAIgAkEMaq1CgICAgMAHhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBATYCHCACQdT4xAA2AhggAiACQRBqNgIgIAJBGGoQwQMMBAsgAiAAQQRqNgIMIAIgAkEMaq1CgICAgMAHhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBATYCHCACQfD4xAA2AhggAiACQRBqNgIgIAJBGGoQwQMMAwsgASgCAEH4+MQAQRUgASgCBCgCDBEAAAwCCyABKAIAQY35xABBEiABKAIEKAIMEQAADAELIAEoAgBBn/nEAEEOIAEoAgQoAgwRAAALIAJBMGokAAvZDAILfwV9QwAAgD8hDwJ/AkAgASgCACIIIAJBBGooAgAiBSgCCCIHSQRAIAFBBGsiCygCACEBIAUoAgQiCSAIQRhsaiIDLQATIgQgAy0AEiIGIAMtABEiCiAGIApLGyIGIAQgBksbIgQEfUMAAEDBIAUqAkQgBS0AWEECRiIGGyIOQwAAEEEgBSoCSCAGGyAOk0MAAH5DlSAEQQFrQf8BcbOUkhCJBCIOIA6SBUMAAAAACyERIANBDGovAQAiBEH//wFxRQRAIARBEHQMAwsgBEH/B3EhAyAEQYCAAnEhBiAEQYD4AXEiBEGA+AFGBEAgBkEQdCIEQYCAgPwHciADRQ0DGiAEIANBDXRyQYCAgP4HcgwDCyAGQRB0IQYgBEUNASAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogBnIMAgsgCCAHQdy7xwAQjAcACyADIANnQRBrIgNB//8DcUEIanRB////A3EgBkGAgIDYA3IgA0EXdGtyC74iDkMAAIA/XgRAIA4QxgVDVPgtQJRDAACAP5KRIQ8LQwAAgD8hDgJ/AkAgASAHSQRAIAkgAUEYbGoiAy0AEyIEIAMtABIiByADLQARIgYgBiAHSRsiByAEIAdLGyIEBH1DAABAwSAFKgJEIAUtAFhBAkYiBxsiEEMAABBBIAUqAkggBxsgEJNDAAB+Q5UgBEEBa0H/AXGzlJIQiQQiECAQkgVDAAAAAAshECADQQxqLwEAIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQUgA0GAgAJxIQQgA0GA+AFxIgNBgPgBRgRAIARBEHQiA0GAgID8B3IgBUUNAxogAyAFQQ10ckGAgID+B3IMAwsgBEEQdCEEIANFDQEgA0ENdEGAgID8AHEgBUENdHJBgICAwANqIARyDAILIAEgB0Hcu8cAEIwHAAsgBSAFZ0EQayIFQf//A3FBCGp0Qf///wNxIARBgICA2ANyIAVBF3Rrcgu+IhJDAACAP14EQCASEMYFQ1T4LUCUQwAAgD+SkSEOCyARIA+UIg8gD1wgDyAQIA6UYHJFBEAgAkEEaiEJIAhBGGwhCgNAAkAgCyICQQRqIAE2AgAgACACRg0AQwAAgD8hDwJ/AkAgCSgCACIFKAIIIgcgCEsEQCACQQRrIgsoAgAhASAFKAIEIgwgCmoiAy0AEyIEIAMtABIiBiADLQARIg0gBiANSxsiBiAEIAZLGyIEBH1DAABAwSAFKgJEIAUtAFhBAkYiBhsiDkMAABBBIAUqAkggBhsgDpNDAAB+Q5UgBEEBa0H/AXGzlJIQiQQiDiAOkgVDAAAAAAshESADQQxqLwEAIgRB//8BcUUEQCAEQRB0DAMLIARB/wdxIQMgBEGAgAJxIQYgBEGA+AFxIgRBgPgBRgRAIAZBEHQiBEGAgID8B3IgA0UNAxogBCADQQ10ckGAgID+B3IMAwsgBkEQdCEGIARFDQEgBEENdEGAgID8AHEgA0ENdHJBgICAwANqIAZyDAILIAggB0Hcu8cAEIwHAAsgAyADZ0EQayIDQf//A3FBCGp0Qf///wNxIAZBgICA2ANyIANBF3Rrcgu+Ig5DAACAP14EQCAOEMYFQ1T4LUCUQwAAgD+SkSEPC0MAAIA/IQ4CfwJAIAEgB0kEQCAMIAFBGGxqIgMtABMiBCADLQASIgcgAy0AESIGIAYgB0kbIgcgBCAHSxsiBAR9QwAAQMEgBSoCRCAFLQBYQQJGIgcbIhBDAAAQQSAFKgJIIAcbIBCTQwAAfkOVIARBAWtB/wFxs5SSEIkEIhAgEJIFQwAAAAALIRAgA0EMai8BACIDQf//AXFFBEAgA0EQdAwDCyADQf8HcSEFIANBgIACcSEEIANBgPgBcSIDQYD4AUYEQCAEQRB0IgNBgICA/AdyIAVFDQMaIAMgBUENdHJBgICA/gdyDAMLIARBEHQhBCADRQ0BIANBDXRBgICA/ABxIAVBDXRyQYCAgMADaiAEcgwCCyABIAdB3LvHABCMBwALIAUgBWdBEGsiBUH//wNxQQhqdEH///8DcSAEQYCAgNgDciAFQRd0a3ILviISQwAAgD9eBEAgEhDGBUNU+C1AlEMAAIA/kpEhDgsgESAPlCIPIA9cDQAgDyAQIA6UYEUNAQsLIAIgCDYCAAsLkAwCCX8BfSMAQYABayIIJAACfwJAIAAoAggiBiABSwRAIAAoAgQgAUEYbGoiBi0AEyIFIAYtABIiByAGLQARIgkgByAJSxsiByAFIAdLGyIFBH1DAABAwSAAKgJEIAAtAFhBAkYiBxsiDkMAABBBIAAqAkggBxsgDpNDAAB+Q5UgBUEBa0H/AXGzlJIQiQQiDiAOkgVDAAAAAAshDiAGQQxqLwEAIgVB//8BcUUEQCAFQRB0DAMLIAVB/wdxIQYgBUGAgAJxIQcgBUGA+AFxIgVBgPgBRgRAIAdBEHQiBUGAgID8B3IgBkUNAxogBSAGQQ10ckGAgID+B3IMAwsgB0EQdCEHIAVFDQEgBUENdEGAgID8AHEgBkENdHJBgICAwANqIAdyDAILIAEgBkHcu8cAEIwHAAsgBiAGZ0EQayIGQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAZBF3RrcgshBgJAAkACQCAOIAa+Ig5DAACAP14EfSAOEMYFQ1T4LUCUQwAAgD+SkQVDAACAPwuUIANdRQRAIAggACgCECIFIAAoAhQiByABEOcCAkAgCCgCJCIGQQlPBEAgCCgCBCIKDQEgCCgCCCIAQQRrKAIAIgFBeHEiAiAGQQJ0IgRBBEEIIAFBA3EiARtqSQ0EIAFBACACIARBJ2pLGw0FIAAQogIMAwsgBiIKRQ0CCyAIQShqIAIoAggiCSAJIApqEIwDIAUgByABAn8gCCgCTCIKQQlPBEAgCCgCLCEKIAgoAjAMAQsgCEEsagsgChDUAiAIQQRqIQECfyAGQQlJBEAgCEEkaiEFIAEMAQsgASEFIAgoAggLIQcCQCAFKAIAIgVBAkkNACAFQRVPBEAgByAFEMEFDAELIAdBBGohBgJAIAVBAXEEQCAGIQkgByEGDAELIAcoAgQiCSAHKAIAIgtJBEAgByAJNgIAIAcgCzYCBAsgB0EIaiEJCyAFQQJGDQAgByAFQQJ0aiENIAlBBGohDANAIAkoAgAiCiAGKAIAIgVJBEAgCSELAn8DQCALIAU2AgAgByAGIAdGDQEaIAYhCyAKIAZBBGsiBigCACIFSQ0ACyAGQQRqCyAKNgIAIAkoAgAhCgsgCiAJKAIEIgtLBEAgDCEFA0ACQCAFIAo2AgAgByAFQQRrIgZGBEAgByEGDAELIAVBCGshCiAGIQUgCyAKKAIAIgpJDQELCyAGIAs2AgALIAlBBGohBiAMQQhqIQwgCUEIaiIJIA1HDQALCyAIKAIkIgchBSAHQQlPBEAgCCgCBCEFIAgoAgghAQsgBQRAIAVBAnQhBiACKAIIIgVBAnQhBwNAIAEoAgAhCSACKAIAIAVGBEAgAkGA5sEAEIsGCyABQQRqIQEgAigCBCAHaiAJNgIAIAIgBUEBaiIFNgIIIAdBBGohByAGQQRrIgYNAAsgCCgCJCEHCyAIKAIEIQUgCEHwAGogCEEgaigCADYCACAIQegAaiAIQRhqKQIANwIAIAggCP0AAgj9CwJYIAggBSAHIAdBCEsiARsiBjYCfCAIIAdBACABGzYCdCAIQQAgBSABGzYCVAJAAkAgBgRAIAdBCU8EQCAIKAJYIgYhAQNAIAAgASgCACACIAMgBBDLASABQQRqIQEgBUEBayIFDQALDAILIAhB1ABqIQFBACEFA0AgCCAFQQFqIgU2AnggACABKAIAIAIgAyAEEMsBIAFBBGohASAFIAdHDQALDAILIAdBCUkNASAIKAJYIQYLIAZBBGsoAgAiAEF4cSIBIAdBAnQiAkEEQQggAEEDcSIAG2pJDQMgAEEAIAEgAkEnaksbDQQgBhCiAgsgCCgCTCIAQQlJDQEgCCgCMCIBQQRrKAIAIgJBeHEiBCAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0CIAJBACAEIABBJ2pLGw0DIAEQogIMAQsgBCgCCCIAIAQoAgBGBEAgBEGQ5sEAEIsGCyAEKAIEIABBAnRqIAE2AgAgBCAAQQFqNgIICyAIQYABaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALshADB38BfgF7IwBBMGsiAyQAAkACQCAAKAIAIgZFBEAgACgCECIARQ0BIABBk7PFAEEBEJcDIQQMAgsgACAAKAIMQQFqIgQ2AgwCQAJAAkACQAJAAkACQAJAIARB9QNPBEAgACgCECIBRQ0BIAFB+rLFAEEZEJcDRQ0BDAgLAkACQAJAAkAgACgCCCICIAAoAgQiCE8EQCAAKAIQIgFFDQEgAUHqssUAQRAQlwMNDAwBC0EBIQQgACACQQFqIgc2AggCQAJAAkACQAJAAkAgAiAGai0AACIFQckAaw4GAgEBAQgFAAsCQCAFQcIAaw4CAwQACyAFQdgAaw4CBwsACyAAKAIQIgFFDQQgAUHqssUAQRAQlwNFDQQMEQsgACABEMwBDRAgAQ0GDAwLIwBBIGsiAiQAAkACQCAAKAIARQRAIAAoAhAiAUUNASABQZOzxQBBARCXAyEBDAILIAIgABCvBiACKAIARQRAIAAoAhAiBQRAQQEhASAFQfqyxQBB6rLFACACLQAEQQFxIgUbQRlBECAFGxCXAw0DCyAAIAL9AAIA/QsCAAwBCyAAKAIQRQ0AIAD9AAIAIQogACAC/QACAP0LAgAgAiAK/QsDECAAIAFBAXEQzAEhASAAIAL9AAMQ/QsCAAwBC0EAIQELIAJBIGokACABRQ0MDA8LIANBIGogAEHzABCsBiADLQAgQQFGBEAgAy0AISEBIAAoAhAiAgRAIAJB+rLFAEHqssUAIAFBAXEiAhtBGUEQIAIbEJcDDRALIAAgAToABAwKCyAAKAIARQRAIAAoAhAiAEUNDiAAQZOzxQBBARCXAyEEDA8LIAMpAyghCSADQSBqIAAQ7wIgAygCIEUEQCADLQAkIQEgACgCECICBEAgAkH6ssUAQeqyxQAgAUEBcSICG0EZQRAgAhsQlwMNEAsgACABOgAEDAoLIAMgA/0AAiD9CwMAIAAoAhAiAUUNCyADIAEQiwINDCAAKAIQIgFFIAlQcg0LIAEoAghBgICABHENCyABKAIAQeiyxQBBASABKAIEKAIMEQAADQ4gACgCECMAQRBrIgIkAEERIQEDQCABIAJqQQJrIAmnQQ9xLQDctkU6AAAgAUEBayEBIAlCD1YgCUIEiCEJDQALQQFBhLTFAEECIAEgAmpBAWtBESABaxDIAyACQRBqJAANDiAAKAIQIgEoAgBB6bLFAEEBIAEoAgQoAgwRAAANDgwLCyAHIAhJBEAgACACQQJqNgIIIAYgB2otAAAiAkHBAGtB/wFxQRpJDQIgAkHhAGtBgIDEACECQf8BcUEaSQ0CCyAAKAIQIgFFDQAgAUHqssUAQRAQlwMNCwtBACEEIABBADoABCAAQQA2AgAMDAtBASEEIAAgARDMAQ0LAkAgACgCAA0AIAAoAhAiAUUNCyABQZSzxQBBAhCXAw0MIAAoAgANAEEAIQQgACgCECIARQ0MIABBk7PFAEEBEJcDIQQMDAsgA0EgaiAAQfMAEKwGIAMtACBBAUYEQCADLQAhIQEgACgCECICBEAgAkH6ssUAQeqyxQAgAUEBcSICG0EZQRAgAhsQlwMNDQsgACABOgAEDAcLIAAoAgBFBEAgACgCECIARQ0LIABBk7PFAEEBEJcDIQQMDAsgAykDKCEJIANBIGogABDvAiADKAIgRQRAIAMtACQhASAAKAIQIgIEQCACQfqyxQBB6rLFACABQQFxIgIbQRlBECACGxCXAw0NCyAAIAE6AAQMBwsgAyAD/QACIP0LAxACQAJAAkAgAkGAgMQARwRAIAAoAhAiAQRAIAFBlrPFAEEDEJcDDQ4LIAJBwwBGDQEgAkHTAEYNAiADIAI2AiAgACgCECIBRQ0DIANBIGogARCoBQ0NDAMLIAMoAhQgAygCHHJFDQsgACgCECIBRQ0LIAFBlLPFAEECEJcDDQ4gACgCECIBRQ0LIANBEGogARCLAkUNCwwOCyAAKAIQIgFFDQEgAUGZs8UAQQcQlwMNCwwBCyAAKAIQIgFFDQAgAUGgs8UAQQQQlwMNCgsgACgCECECIAMoAhQgAygCHHJFDQUgAkUNCCACQdD4xwBBARCXAw0LIAAoAhAiAUUNCCADQRBqIAEQiwINCyAAKAIQIQIMBQsgA0EgaiAAQfMAEKwGIAMtACBBAUcNAiADLQAhIQEgACgCECICBEAgAkH6ssUAQeqyxQAgAUEBcSICG0EZQRAgAhsQlwMNCwsgACABOgAEDAULIAAoAhAiAUUNBSABQZSzxQBBAhCXA0UNBQwJCyAAQQE6AAQMAwsjAEEQayIBJAAgACgCECECIABBADYCECAAQQAQzAEEQEGotMUAQT0gAUEPakGYtMUAQei0xQAQ4AYACyAAIAI2AhAgAUEQaiQACyAAKAIQIgEEQCABQaazxQBBARCXAw0HCyAAEIYCDQQgBUHNAEcEQCAAKAIQIgEEQCABQaezxQBBBBCXAw0GCyAAQQAQzAENBwsgACgCECIBRQ0DIAFBq7PFAEEBEJcDRQ0DDAYLIAJFDQIgAkGks8UAQQEQlwMNBSAAKAIQIQEgAyAJNwMgIAFFDQIgA0EgaiABEIUFDQUgACgCECIBRQ0CIAFBpbPFAEEBEJcDRQ0CDAULQQAhBCAAQQA2AgAMBAsgACgCECIBBEAgAUGms8UAQQEQlwMNBAsgABDuBA0DIAAoAhAiAUUNACABQauzxQBBARCXAw0DC0EAIQQgACgCAEUNAiAAIAAoAgxBAWs2AgwMAgtBASEEDAELQQAhBAsgA0EwaiQAIAQLkB4CFH8CfiMAQeAAayIIJAAgAUFAayEKAkACQCABLQBgIgdBB0sNACAIQdAAaiAKEI4CAkAgCC0AUCIHQR1GBEAgAS0AYCIHQQhPDQJBDyEHDAELIAggCCkBUjcDACAIIAhB2ABqKQEANwEGIAgtAFEhAQsgACABOgABIAAgBzoAACAAIAgpAwA3AQIgAEEIaiAIKQEGNwEADAELIAEgB0EIayIHOgBgIAEgASkDQCIaQgiIIhs3A0ACQAJAAkACQCAapyIGQf8BcUEvRgRAIAdB/wFxQQ1LDQQgCEHQAGogChCOAiAILQBQIgdBHUcNASABLQBgIgdBDk8NA0EPIQcMAgsgACAGOgABIABBCzoAAAwECyAIQRhqIAhB3ABqKAIANgIAIAggCCkCVDcDECAILwFSIQEgCC0AUSEKCyAAIAE7AQIgACAKOgABIAAgBzoAACAAIAgpAxA3AgQgAEEMaiAIQRhqKAIANgIADAILIAopAwAhGwsgASAHQQ5rIgc6AGAgASAbQg6IIho3A0AgASAbp0H//wBxQQFqIgY7AXQgB0H/AXFBDU0EQCAIQdAAaiAKEI4CAkACQCAILQBQIgdBHUYEQCABLQBgIgdBDk8NAkEPIQcMAQsgCEEoaiAIQdwAaigCADYCACAIIAgpAlQ3AyAgCC8BUiEBIAgtAFEhCgsgACABOwECIAAgCjoAASAAIAc6AAAgACAIKQMgNwIEIABBDGogCEEoaigCADYCAAwCCyABKQNAIRogAS8BdCEGCyABIAdBDmsiBzoAYCABIBpCDogiGzcDQCABIBqnQf//AHFBAWoiCTsBdgJAIAIgBkH//wNxRyADIAlHckUEQCAHQf8BcUUEQCAIQdAAaiAKEI4CAkACQCAILQBQIgdBHUYEQCABLQBgIgcNAkEPIQcMAQsgCCAIKQFSNwMwIAggCEHYAGopAQA3ATYgCC0AUSEBCyAAIAE6AAEgACAHOgAAIAAgCCkDMDcBAiAAQQhqIAgpATY3AQAMBAsgCikDACEbCyABIAdBAWsiAjoAYCABIBtCAYgiGjcDQAJAAkAgB0H/AXFBA00EQCAIQdAAaiAKEI4CIAgtAFAiB0EdRw0BIAEtAGAiAkEDSQRAQQ8hBwwDCyAKKQMAIRoLIAEgAkEDazoAYCABIBpCA4g3A0AgGqdBB3EiAkUNAyAAIAI6AAEgAEEMOgAADAQLIAggCCkBUjcDQCAIIAhB2ABqKQEANwFGIAgtAFEhAQsgACAIKQNANwECIABBCGogCCkBRjcBACAAIAE6AAEgACAHOgAADAILIABBFzoAAAwBCyAIQdAAaiELQQAhByMAQeAAayIGJAAgASIDQegAaiEZIANBQGshESADLwF0IRICQAJAA0ACQAJAAkACQAJAAkACQCADLQBgIgkNACAGQcwAaiAREI4CIAsCfyAGLQBMIglBHUYEQCADLQBgIgkNAkEPIQlBAQwBCyAGIAYpAU43AwAgBiAGQdQAaikBADcBBiAGLQBNCzoAASALIAk6AAAgCyAGKQMANwECIAtBCGogBikBBjcBAAwBCyADIAlBAWsiAjoAYCADIAMpA0AiG0IBiCIaNwNAIBtCAYNQRQRAIAlBAk0EQCAGQcwAaiAREI4CAkACQCAGLQBMIglBHUYEQCADLQBgIgJBAk8NAkEPIQkMAQsgBiAGKQFONwMQIAYgBkHUAGopAQA3ARYgBi0ATSEQCyALIBA6AAEgCyAJOgAAIAsgBikDEDcBAiALQQhqIAYpARY3AQAMAwsgESkDACEaCyADIAJBAms6AGAgAyAaQgKINwNAIAMgGqdBA3EiEEEEdGoiDS0AAEEERwRAIAtBEDoAAAwCCyADKAJwIgIgAygCaEYEQCAZQYj7xgAQpwYLIAMoAmwgAmogEDoAACADIAJBAWo2AnACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgEEEBaw4DARECAAsgAy0AYCIJQQJLDQQgBkHMAGogERCOAiAGLQBMIglBHUcNAiADLQBgIglBA08NBEEPIQkMAwsgAy0AYCIJQQJLDQYgBkHMAGogERCOAiAGLQBMIglBHUcNBCADLQBgIglBA08NBkEPIQkMBQsgAy0AYCIJQQdLDQggBkHMAGogERCOAiAGLQBMIglBHUcNBiADLQBgIglBCE8NCEEPIQkMBwsgBiAGKQFONwMgIAYgBkHUAGopAQA3ASYgBi0ATSEXCyALIBc6AAEgCyAJOgAAIAsgBikDIDcBAiALQQhqIAYpASY3AQAMCAsgAyAJQQNrOgBgIAMgAykDQCIaQgOINwNAQX8gGqdBB3EiF0ECaiIPdEF/cyICIBJB//8DcWogD3YiCiACIAMvAXZqIA92IglsIgJBAnQhDAJAIAJFBEBBASEHDAELIAwQcSIHRQ0KIAdBBGstAABBA3FFIAxFcg0AIAdBACAM/AsACyAGQcwAaiADIAogCUEAIAcgDBA6IAYtAEwiCkEdRg0LIAsgBikATTcAASALQQhqIAZB1ABqKQAANwAAIAsgCjoAACACRQ0HIAdBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAxqSQ0MIAJBACADIAxBJ2pLGw0OIAcQogIMBwsgBiAGKQFONwMwIAYgBkHUAGopAQA3ATYgBi0ATSEYCyALIBg6AAEgCyAJOgAAIAsgBikDMDcBAiALQQhqIAYpATY3AQAMBQsgAyAJQQNrOgBgIAMgAykDQCIaQgOINwNAQX8gGqdBB3EiGEECaiIPdEF/cyICIBJB//8DcWogD3YiCiACIAMvAXZqIA92IglsIgJBAnQhDAJAIAJFBEBBASEHDAELIAwQcSIHRQ0HIAdBBGstAABBA3FFIAxFcg0AIAdBACAM/AsACyAGQcwAaiADIAogCUEAIAcgDBA6IAYtAEwiCkEdRg0IIAsgBikATTcAASALQQhqIAZB1ABqKQAANwAAIAsgCjoAACACRQ0EIAdBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAxqSQ0JIAJBACADIAxBJ2pLGw0FIAcQogIMBAsgBkHIAGogBkHYAGooAgA2AgAgBiAGKQJQNwNAIAYvAU4hDiAGLQBNIQMLIAsgDjsBAiALIAM6AAEgCyAJOgAAIAsgBikDQDcCBCALQQxqIAZByABqKAIANgIADAILIAMgCUEIazoAYCADIAMpA0AiGkIIiDcDQCAapyICQf8BcSIOQQFqIhNBAnQiDBBxIgdFDQMgB0EEayIULQAAQQNxRSAMRXJFBEAgB0EAIAz8CwALIAZBzABqIAMgE0EBQQAgByAMEDogBi0ATCIKQR1HBEAgCyAGKQBNNwABIAtBCGogBkHUAGopAAA3AAAgCyAKOgAAIBQoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAxqSQ0HIAJBACADIAxBJ2pLGw0JIAcQogIMAgsgEkH//wNxQQECf0EDIA5BAkkNABpBAiAOQQRJDQAaIA5BEEkLIgp0akEBayAKdiISQf//A00EQCAORQRAQQEhE0EAIQ4MBwtBBCEJIAJBAnRB/AdxIhVBAWsiAiAMIAIgDEkbIgJBBE8EQCACQQFqIgpBA3EiCUEEIAkbIgkgAkF/c2ohFiAKIAlrQQRqIQkgByECA0AgAkEEaiIKIAL9XAAAIAr9XAAA/W79WgAAACAKIQIgFkEEaiIWDQALCyAVQQhqIQIgFUEEaiEKA0AgAiAJRg0GIAkgFGoiFUEEaiIWIBUtAAAgFi0AAGo6AAAgCUEBaiIJIApHDQALDAYLQdjmyABBKyAGQd8AakGY+8YAQaj7xgAQ4AYACyALQR06AAAgCyASOwECCyAGQeAAaiQADAcLQYyNyABBLkG8jcgAEOsHCwALIAlBBGsgDEG4+8YAEIwHAAsCQAJAIA0tAAAiAkEERiACQQJGcg0AIA0oAgQiAkUNACANKAIIIgpBBGsoAgAiCUF4cSIUQQRBCCAJQQNxIgkbIAJqSQ0BIAlBACAUIAJBJ2pLGw0EIAoQogILIA0gDDYCDCANIAc2AgggDSAMNgIEIA0gEzsBAiANIA86AAEgDSAQOgAADAILCwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAgtAFAiAkEdRwRAIAAgCCkCVDcCBCAAQQxqIAhB3ABqKAIANgIAIAgtAFEhASAAIAgvAVI7AQIgACABOgABIAAgAjoAAAwBCyAFIAgvAVIiCSABLwF2IgJsQQJ0IgNPBEAgCEHQAGogASAJIAJBASAEIAMQOiAILQBQIgJBHUcEQCAAIAgpAFE3AAEgAEEIaiAIQdgAaikAADcAACAAIAI6AAAMAgsgASgCcCICBEAgBEEEaiELIAEoAmwiDCACaiEGA0ACQAJAAkACQAJAAkACQAJAIAZBAWsiBi0AACICQQRJBEAgASACQQR0aiICLQAAQQFrDgQEBQIBAwsgAkEEQaj6xgAQjAcAC0G4+sYAEN0JAAsgBCAFIAEvAXQiCSABLwF2IgMgAi8BAiACKAIIIAIoAgwQSiADIAlsQQJ0IQMMBQsgAyAFSw0DIAhB0ABqIAQgAyAJIAEvAXYgAi0AASACKAIIIAIoAgwQTiAILQBQIgJBHUYNBCAAIAgpAFE3AAEgAEEIaiAIQdgAaikAADcAACAAIAI6AAAMCAsgAyAFSw0BIAQgAyAJIAItAAEgAigCCCACKAIMEJcCDAMLIAMgBU0EQCADQXxxIgpFDQMgA0EEayICQQRxBH8gBAUgBCAELQABIgcgBC0AAGo6AAAgBCAHIAQtAAJqOgACIAJBBEkNBCAKQQRrIQogCwshBwNAIAcgB0EBai0AACICIActAABqOgAAIAdBAmoiDSACIA0tAABqOgAAIAdBBGoiAiAHQQVqLQAAIg0gAi0AAGo6AAAgB0EGaiICIA0gAi0AAGo6AAAgB0EIaiEHIApBCGsiCg0ACwwDC0EAIAMgBUHo+sYAEOoHAAtBACADIAVB2PrGABDqBwALQQAgAyAFQcj6xgAQ6gcACyAGIAxHDQALCyAAQR06AAAMAQtBACADIAVB+PrGABDqBwALIAhB4ABqJAAL7g4CDH8DfiMAQTBrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAQRUgASgCACIEQYCAgIB4cyAEQQBOG0EUaw4CAQIACyABIAJBL2pB1OPAABCVCCEBIABBgICAgHg2AgAgACABNgIEDAYLIAEoAgwiBkUNAgJAIAEoAggiBSgCAEGUgICAeEYEQAJAIAUoAgwiAQRAIAJBHGogBSgCCBCoAyACKAIcIgRBgICAgHhHDQEgAigCICEBDAgLQQAgAkEvakGE4sAAENsGIQEMBwsgAigCICEHIAFBAUYNASACQQE2AhwgAUEBa0H/////AHFBAWogAkEcakHolcEAENsGIQEgBEUNBiAHIARBARCiBwwGCyAFIAJBL2pBhOLAABCVCCEBDAULIAZBAUYNASACKAIkIQkgAkEcaiIDIAVBEGoQ0wIgAigCICEBIAIoAhwNAwJAIAZBAkcEQCACKQIkIQ4gAyAFQSBqENMCIAIoAiAhBSACKAIcRQ0BIAUhAQwFC0ECQcSAwQBBgP3AABDbBiEBDAQLIAZBA0cEQCACQQM2AhwgBkH9////AGpB/////wBxQQNqIAJBHGpB6JXBABDbBiEBIABBgICAgHg2AgAgACABNgIEIARFDQYgByAEQQEQogcMBgsgACACKQIkNwIcIAAgBTYCGCAAIA43AhAgACABNgIMIAAgCTYCCCAAIAc2AgQgACAENgIADAULIAEoAgQhBCABKAIIIQEgAkEANgIYIAIgBCABQQV0aiILNgIQAkACQCABRQ0AQYCAgIB4IQgDQCACIARBIGoiATYCDCACIAIoAhhBAWo2AhggAiAEQRBqIgw2AhQCQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBFSAEKAIAIgNBgICAgHhzIANBAE4bQQFrDg8ADg4BDg4ODg4ODgIDBAUOCyAELQAEDgMKBQcPCyAEKQMIIg5CAlYNDiAOp0EBaw4CBAYJCyAEKAIIIQMCQCAEKAIMQQRrDgIACA4LIAMoAABB7dK5mwdGDQMgAygAAEHtwuGbB0YNBQwNCyAEKAIEIQMCQCAEKAIIQQRrDgIABg0LIAMoAABB7dK5mwdGDQIgAygAAEHtwuGbB0YNBAwMCyAEKAIIIQMCQAJAIAQoAgxBBGsOAgEADQsgAy0AAEHmAEcNDCADLQABQekARw0MIAMtAAJB7ABHDQwgAy0AA0HlAEcNDCADLQAEQfMARw0MDAcLIAMtAABB7QBHDQsCQAJAIAMtAAFB4QBrDgkBDQ0NDQ0NDQANCyADLQACQe4ARw0MIAMtAANB8wBGDQIMDAsgAy0AAkH4AEcNCyADLQADQfMARg0DDAsLIAQoAgQhAwJAAkAgBCgCCEEEaw4CAQAMCyADLQAAQeYARw0LIAMtAAFB6QBHDQsgAy0AAkHsAEcNCyADLQADQeUARw0LIAMtAARB8wBHDQsMBgsgAy0AAEHtAEcNCgJAIAMtAAFB4QBrDgkCCwsLCwsLCwALCyADLQACQe4ARw0KIAMtAANB8wBHDQoLIAZFDQVBlf3AAEEEEJ8HDAgLIAMtAAJB+ABHDQggAy0AA0HzAEcNCAsgCkUNBEGZ/cAAQQQQnwcMBgsgA0GQ/cAAQQUQ2wdFDQEMBgsgA0GQ/cAAQQUQ2wcNBQsgCEGAgICAeEcEQEGQ/cAAQQUQnwcMBAsgAkEcaiACQQxqELIFIAIoAiAhByACKAIcIghBgICAgHhGBEAgByEFDAkLIAIoAiQhDSACKAIQIQsgAigCDCEBDAULIAJBADYCFCACQRxqIAwQ0wIgAigCICIFIAIoAhxBAUYNAhogAikCJCEPQQEhBgwECyACQQA2AhQgAkEcaiAMENMCIAIoAiAhCSAJIAIoAhxBAUYNARogAikCJCEQQQEhCgwDCyAEIAJBL2pBhOTAABCVCAshBSAIQYCAgIB4ckGAgICAeEYNBAJAIAdBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAhqTwRAIAFBACAEIAhBJ2pLGw0BIAcQogIMBgtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAJBADYCFAsgCyABIgRHDQALIAhBgICAgHhGDQAgBkEAIAobRQRAQZn9wABBlf3AACAGG0EEEJwHIQUgCEUNAiAHIAhBARCiBwwCCyAAIBA3AhwgACAJNgIYIAAgDzcCECAAIAU2AgwgACANNgIIIAAgBzYCBCAAIAg2AgAMBgtBkP3AAEEFEJwHIQULIAAgBTYCBCAAQYCAgIB4NgIADAQLQQFBxIDBAEGA/cAAENsGIQEMAQtBAEHEgMEAQYD9wAAQ2wYhAQwBCyAERQ0AIAdBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIARqSQ0CIAVBACAGIARBJ2pLGw0DIAcQogILIAAgATYCBCAAQYCAgIB4NgIACyACQTBqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAukDAISfgh/IwBB4ABrIhUkAAJAAn8CQAJAAkACQAJAAkACQCABKQMAIgNQRQRAIAEpAwgiBFANASABKQMQIgVQDQIgBSADQn+FVg0DIAMgBFQNBCADIAV8IgVCgICAgICAgIAgWg0FIBUgAS8BGCIBOwE4IBUgAyAEfSIHNwMwIBUgByAFeSIEhiIIIASIIgY3A0AgBiAHUg0JIBUgATsBOCAVIAM3AzAgFSADIARCP4MiB4YiBiAHiCIHNwNAIAMgB1INCUGgfyABIASnayIXa8FB0ABsQbCnBWpBzhBtIgFB0QBPDQYgFUEgaiABQQR0IgEpA4iFQiIDIAUgBIYQ3QYgFUEQaiADIAgQ3QYgFSADIAYQ3QZCAUEAIBcgAS8BkIVCamtBP3GtIgaGIghCAX0hCiAVKQMQQj+HIQwgFSkDAEI/iCEOIBUpAwghDyABLwGShUIhFyAVKQMYIRAgFSkDKCITIBUpAyBCP4giFHwiEUIBfCIJIAaIpyIWQZDOAE8EQCAWQcCEPUkNCCAWQYDC1y9PBEBBCEEJIBZBgJTr3ANJIgEbIRlBgMLXL0GAlOvcAyABGwwKC0EGQQcgFkGAreIESSIBGyEZQcCEPUGAreIEIAEbDAkLIBZB5ABPBEBBAkEDIBZB6AdJIgEbIRlB5ABB6AcgARsMCQtBCkEBIBZBCUsiGRsMCAtB2I/CAEEcQaSQwgAQ6wcAC0G0kMIAQR1B1JDCABDrBwALQeSQwgBBHEGAkcIAEOsHAAtBuJLCAEE2QfCSwgAQ6wcAC0HwkcIAQTdBqJLCABDrBwALQZCRwgBBLUHAkcIAEOsHAAsgAUHRAEGYj8IAEIwHAAtBBEEFIBZBoI0GSSIBGyEZQZDOAEGgjQYgARsLIQEgCSAKgyEEIA4gD3whCyAZIBdrQQFqIRsgDCAQfSAJfEIBfCINIAqDIQUCQAJAAkACQAJAAkACQAJAAkADQCACIBhqIBYgAW4iHEEwaiIaOgAAIBhBAWohFyANIBYgASAcbGsiFq0gBoYiEiAEfCIDVg0CIBggGUYEQCAXIQFCASEDA0AgAyEHIAFBEUYNBSABIAJqIARCCn4iBCAGiKdBMGoiGDoAACABQQFqIQEgA0IKfiEDIAVCCn4iBSAEIAqDIgRYDQALIAUgBH0iCiAIVCEWIAMgCSALfX4iCSADfCEGIAQgCSADfSIJWg0HIAggClgNAgwHCyABQQpJIBchGCABQQpuIQFFDQALQdCRwgAQgQgACyABIAJqQQFrIRcgBSAIfSELIAggCX0hDUIAIAR9IQoDQCAEIAh8IgMgCVQgCSAKfCAEIA18WnJFBEBBACEWDAYLIBcgGEEBayIYOgAAIAogC3wiDCAIVCEWIAMgCVoNBiAKIAh9IQogAyEEIAggDFgNAAsMBQsgDSADfSIFIAGtIAaGIgdUIQEgCSALfSIGQgF8IQggBSAHVCADIAZCAX0iCVpyDQEgAiAXakEBayEYIAwgEXwgEH0gBCAHfCIEIBJ8fUICfCEKIBEgC30gA30hCyAEIA58IA98IBR9IBN9IBJ8IQZCACEEA0AgAyAHfCIFIAlUIAQgC3wgBlpyRQRAQQAhAQwDCyAYIBpBAWsiGjoAACAEIAp8IgwgB1QhASAFIAlaDQMgBiAHfCEGIAQgB30hBCAFIQMgByAMWA0ACwwCC0ERQRFB4JHCABCMBwALIAMhBQsCQCAFIAhaIAFyDQAgCCAFIAd8IgNYIAggBX0gAyAIfVRxDQAgAEEANgIADAQLIAUgDUIEfVggBUICWnFFBEAgAEEANgIADAQLIAAgGzsBCCAAIBc2AgQMAgsgBCEDCwJAIAMgBlogFnINACAGIAMgCHwiBFggBiADfSAEIAZ9VHENACAAQQA2AgAMAgsgAyAFIAdCWH58WCADIAdCFH5acUUEQCAAQQA2AgAMAgsgACAbOwEIIAAgATYCBAsgACACNgIACyAVQeAAaiQADwsgFUEANgJIIwBBEGsiACQAIAAgFUEwajYCDCAAIBVBQGs2AghBACAAQQhqQfCHwwAgAEEMakHwh8MAIBVByABqQeSWwgAQ8gQAC9ELAhd/AX0jAEEgayIHJAACQAJAAkACQAJAAkACQAJAIAAtALgBQQFHDQAgACgCrAEgACgCsAEiBUECdCAAKAK0ASIGIAVqQQJ0EOEIIQUgBkECdCIGIAAoAmQiCEsNASAAKAJgIQggByAFELgKIgs2AgAgByAGNgIEIAYgC0cNByAFIAggBhDgCSAFQYQISQ0AIAUQmwcLIABCADcCsAEgAEG4AWpBADoAAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAghFDQAgACgCDCABQQJ0IAEgAmpBAnQQ4QghCwJAIAJBAnQiASAAKAJkIgZNBEAgACABNgJkIAAoAmAhCCABIQUMAQsgASAGIgVrIgkgACgCXCAFa0sEQCAAQdwAaiAFIAlBBEEEEKQFIAAoAmQhBQsgACgCYCIIIAVBAnQiDGohCiAJQQJPBEAgASAGQX9zakECdCINBEAgCkEAIA38CwALIAJBBHQgBkECdGsgCGogDGpBBGshCiAFIAlqQQFrIQULIApBADYCACAAIAVBAWoiBTYCZCABIAVLDRILIAcgCxC4CiIGNgIAIAcgATYCBCABIAZHDRYgCCABIAsQ4QkgAkEPbCEMIARBD25BD2whDSAEQQFrQQ9uQQ9sQQ9qIQ4gBEECa0EPbkEPbEEPaiEPIARBA2tBD25BD2xBD2ohECAEQQRrQQ9uQQ9sQQ9qIREgBEEFa0EPbkEPbEEPaiESIARBBmtBD25BD2xBD2ohEyAEQQdrQQ9uQQ9sQQ9qIRQgBEEIa0EPbkEPbEEPaiEVIARBCWtBD25BD2xBD2ohFiAEQQprQQ9uQQ9sQQ9qIRcgBEELa0EPbkEPbEEPaiEYIARBDGtBD25BD2xBD2ohGSAEQQ1rQQ9uQQ9sQQ9qIRogBEEOa0EPbkEPbEEPaiEbQwAA/kIgACoClAGVIRxBACEBQQAhAANAIAEgBU8NEyABQQFqIgIgBU8NFCABQQJqIgIgBU8NFSABQQNqIgIgBU8NFiAAIA5GDRAgCEEEaigCACECIAhBDGooAgAhCSAIQQhqKAIAIQYgAyAIKAIAIgrAsiAclTgCACAAIA9GDQ8gA0EEaiAKQQh2wLIgHJU4AgAgACAQRg0OIANBCGogCkEQdsCyIByVOAIAIAAgEUYNDSADQQxqIApBGHWyIByVOAIAIAAgEkYNDCADQRBqIALAsiAclTgCACAAIBNGDQsgA0EUaiACQQh2wLIgHJU4AgAgACAURg0KIANBGGogAkEQdsCyIByVOAIAIAAgFUYNCSADQRxqIAJBGHWyIByVOAIAIAAgFkYNCCADQSBqIAbAsiAclTgCACAAIBdGDQcgA0EkaiAGQQh2wLIgHJU4AgAgACAYRg0GIANBKGogBkEQdsCyIByVOAIAIAAgGUYNBSADQSxqIAZBGHWyIByVOAIAIAAgGkYNBCADQTBqIAnAsiAclTgCACAAIBtGDQMgA0E0aiAJQQh2wLIgHJU4AgAgACANRg0CIANBOGogCUEQdsCyIByVOAIAIAhBEGohCCABQQRqIQEgA0E8aiEDIAwgAEEPaiIARw0ACyALQYQISQ0AIAsQmwcLIAdBIGokAA8LIABBDmohAAwNCyAAQQ1qIQAMDAsgAEEMaiEADAsLIABBC2ohAAwKCyAAQQpqIQAMCQsgAEEJaiEADAgLIABBCGohAAwHCyAAQQdqIQAMBgsgAEEGaiEADAULIABBBWohAAwECyAAQQRqIQAMAwsgAEEDaiEADAILIABBAmohAAwBCyAAQQFqIQALIAAgBEGc1MAAEIwHAAtBACAGIAhB/OvAABDqBwALQQAgASAFQazUwAAQ6gcACyABIAVB3NPAABCMBwALIAIgBUHs08AAEIwHAAsgAiAFQfzTwAAQjAcACyACIAVBjNTAABCMBwALIAdBADYCCEEAIAcgB0EEaiAHQQhqQeD5xAAQ9QcAC9gQAQR/IwBBEGsiAyQAEL8JIgRBsOjAAEEJEOwIIgIgACgCpAG4ELcJIgEQwAkCQAJAAkACQAJAAkACQAJAAkACQAJAAkBBtLvJAC0AAEUEQEG4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECE8EQCACEJsHCyAEQbnowABBCRDsCCICIAAoAqgBuBC3CSIBEMAJQbS7yQAtAAANAUG4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECE8EQCACEJsHCyAEQcLowABBCxDsCCICIAAoAqwBuBC3CSIBEMAJQbS7yQAtAAANAkG4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECE8EQCACEJsHCyAEQc3owABBBBDsCCICIAAoArABENsJIgEQwAlBtLvJAC0AAA0DQbi7yQBBADYCAEG0u8kAQQA6AAAgAUGECE8EQCABEJsHCyACQYQITwRAIAIQmwcLIARB0ejAAEEEEOwIIgIgACgCtAEQ2wkiARDACUG0u8kALQAADQRBuLvJAEEANgIAQbS7yQBBADoAACABQYQITwRAIAEQmwcLIAJBhAhPBEAgAhCbBwsCQCAAKAIAQQFHDQAgBEH458AAQQMQ7AgiAiAAKAIEENsJIgEQwAlBtLvJAC0AAA0GQbi7yQBBADYCAEG0u8kAQQA6AAAgAUGECE8EQCABEJsHCyACQYQISQ0AIAIQmwcLAkAgACgCCEUNACAEQfvnwABBAxDsCCICIAAoAgwQ2wkiARDACUG0u8kALQAADQdBuLvJAEEANgIAQbS7yQBBADoAACABQYQITwRAIAEQmwcLIAJBhAhJDQAgAhCbBwsCQCAAKAIQRQ0AIARB/ufAAEEEEOwIIgIgACgCFBDbCSIBEMAJQbS7yQAtAAANCEG4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECEkNACACEJsHCwJAIAAoAhhFDQAgBEGC6MAAQQQQ7AgiAiAAKAIcENsJIgEQwAlBtLvJAC0AAA0JQbi7yQBBADYCAEG0u8kAQQA6AAAgAUGECE8EQCABEJsHCyACQYQISQ0AIAIQmwcLAkAgACgCIEUNACAEQajpwABBCBDsCCICIAAoAiQQ2wkiARDACUG0u8kALQAADQpBuLvJAEEANgIAQbS7yQBBADoAACABQYQITwRAIAEQmwcLIAJBhAhJDQAgAhCbBwsCQCAAKAIoRQ0AIARBwOnAAEEIEOwIIgIgACgCLBDbCSIBEMAJQbS7yQAtAAANC0G4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECEkNACACEJsHCwJAIAAoAjBFDQAQwQkiAiAAKAI0ENsJIgEQ4gkgAUGECE8EQCABEJsHCyACIAAoAjgQ2wkiARDiCSABQYQITwRAIAEQmwcLIARB2OnAAEEIEOwIIgEgAhDACUG0u8kALQAADQxBuLvJAEEANgIAQbS7yQBBADoAACACQYQITwRAIAIQmwcLIAFBhAhJDQAgARCbBwsCQCAAKAI8RQ0AIARBhujAAEEHEOwIIgIgACgCQBDbCSIBEMAJQbS7yQAtAAANDUG4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECEkNACACEJsHCyAAEIoCIANBEGokACAEDwtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABBwOrAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQbDqwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEGg6sAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABBkOrAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQYDqwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEHo6MAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABB+OjAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQYjpwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEGY6cAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABBsOnAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQcjpwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEHg6cAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABB8OnAABDgBgAL2BABBX8jAEEQayIDJAAQvwkiBUGw6MAAQQkQ7AgiASAAKAKgAbgQtwkiAhDACQJAAkACQAJAAkACQAJAAkACQAJAAkBBtLvJAC0AAEUEQEG4u8kAQQA2AgBBtLvJAEEAOgAAIAJBhAhPBEAgAhCbBwsgAUGECE8EQCABEJsHCyAFQbnowABBCRDsCCIBIAAoAqQBuBC3CSICEMAJQbS7yQAtAAANAUG4u8kAQQA2AgBBtLvJAEEAOgAAIAJBhAhPBEAgAhCbBwsgAUGECE8EQCABEJsHCyAFQcLowABBCxDsCCIBIAAoAqgBuBC3CSICEMAJQbS7yQAtAAANAkG4u8kAQQA2AgBBtLvJAEEAOgAAIAJBhAhPBEAgAhCbBwsgAUGECE8EQCABEJsHCyAFQaDswABBBhDsCCIBIAAoAqwBEMAJQbS7yQAtAAANA0G4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsCQCAAKAIAQQFHDQAgBUH458AAQQMQ7AgiASAAKAIEENsJIgIQwAlBtLvJAC0AAA0FQbi7yQBBADYCAEG0u8kAQQA6AAAgAkGECE8EQCACEJsHCyABQYQISQ0AIAEQmwcLAkAgACgCCEUNACAFQfvnwABBAxDsCCIBIAAoAgwQ2wkiAhDACUG0u8kALQAADQZBuLvJAEEANgIAQbS7yQBBADoAACACQYQITwRAIAIQmwcLIAFBhAhJDQAgARCbBwsCQCAAKAIQRQ0AIAVBjOzAAEEDEOwIIgEgACgCFBDbCSICEMAJQbS7yQAtAAANB0G4u8kAQQA2AgBBtLvJAEEAOgAAIAJBhAhPBEAgAhCbBwsgAUGECEkNACABEJsHCwJAIAAoAhhFDQAgBUGo6cAAQQgQ7AgiASAAKAIcENsJIgIQwAlBtLvJAC0AAA0IQbi7yQBBADYCAEG0u8kAQQA6AAAgAkGECE8EQCACEJsHCyABQYQISQ0AIAEQmwcLAkAgACgCIEUNACAFQcDpwABBCBDsCCIBIAAoAiQQ2wkiAhDACUG0u8kALQAADQlBuLvJAEEANgIAQbS7yQBBADoAACACQYQITwRAIAIQmwcLIAFBhAhJDQAgARCbBwsCQCAAKAIoRQ0AIAVB2OnAAEEIEOwIIgEgACgCLBDbCSICEMAJQbS7yQAtAAANCkG4u8kAQQA2AgBBtLvJAEEAOgAAIAJBhAhPBEAgAhCbBwsgAUGECEkNACABEJsHCwJAIAAoAjBFDQAgBUGG6MAAQQcQ7AgiASAAKAI0ENsJIgIQwAlBtLvJAC0AAA0LQbi7yQBBADYCAEG0u8kAQQA6AAAgAkGECE8EQCACEJsHCyABQYQISQ0AIAEQmwcLQZjtwABBDRDsCCECEL8JIQEgACoCgAG7ELcJIQQgAUHg6sAAQQYQzwMgBBDjCCAAKgKEAbsQtwkhBCABQebqwABBBhDPAyAEEOMIIAAqAogBuxC3CSEEIAFB7OrAAEEKEM8DIAQQ4wggACoCjAG7ELcJIQQgAUH26sAAQQoQzwMgBBDjCCAAKgKQAbsQtwkhBCABQYDrwABBBhDPAyAEEOMIIAAqApQBuxC3CSEEIAFBhuvAAEEGEM8DIAQQ4wggACoCmAG7ELcJIQQgAUGM68AAQQYQzwMgBBDjCCAALQCcASEEIAFBkuvAAEEKEM8DQYIIQYMIIAQbEOMIIAUgAiABEMAJQbS7yQAtAAANC0G4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECE8EQCACEJsHCyAAEMACIANBEGokACAFDwtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABB6O3AABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQdjtwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEHI7cAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABBuO3AABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQajswAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEG47MAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABByOzAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQdjswAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEHo7MAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABB+OzAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQYjtwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEGo7cAAEOAGAAvODAIDfhB/IwBBIGsiDSQAAkACQEHMtckAKAIARQ0AQcS1yQAoAgAiCUHYtckAKQMAIgQgAK2FIgVCOIYgBUKA/gODQiiGhCAFQoCA/AeDQhiGIAVCgICA+A+DQgiGhIQgBEIIiEKAgID4D4MgBEIYiEKAgPwHg4QgBEIoiEKA/gODIARCOIiEhIRC0oGqm6v6gtenf34iBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhCAFQtii0e/CqeW/LX6FIgRCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgBEIIiEKAgID4D4MgBEIYiEKAgPwHg4QgBEIoiEKA/gODIARCOIiEhIRB0LXJACkDACIFQn+FfiIGQjiGIAZCgP4Dg0IohoQgBkKAgPwHg0IYhiAGQoCAgPgPg0IIhoSEIAZCCIhCgICA+A+DIAZCGIhCgID8B4OEIAZCKIhCgP4DgyAGQjiIhISEIAQgBUI4hiAFQoD+A4NCKIaEIAVCgID8B4NCGIYgBUKAgID4D4NCCIaEhCAFQgiIQoCAgPgPgyAFQhiIQoCA/AeDhCAFQiiIQoD+A4MgBUI4iISEhH6FIASJIgSncSEHIARCGYhC/wCDQoGChIiQoMCAAX4hBkHAtckAKAIAIgtBIGshCgNAIAcgC2opAAAiBSAGhSIEQn+FIARCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiBFBFBEADQCAAIAogBHqnQQN2IAdqIAlxIgxBBXRrKAIARg0EIARCAX0gBIMiBFBFDQALCyAFIAVCAYaDQoCBgoSIkKDAgH+DUEUNASAHIAhBCGoiCGogCXEhBwwACwALQbjzwAAQ3QkACyALQQAgDGtBBXRqQQRrKAIAIgwoAghFBEAgDEF/NgIIQQAhB0HQtskAKAIAIhBFBEBByLbJACgCAEH//w9NBEBByLbJAEEAQYCAEEEEQQQQpAVB0LbJACgCACEHC0HMtskAKAIAIAdBAnRqIgBBAEH8/z/8CwBB0LbJACAHQYCAEGoiEDYCACAAQfz/P2pBADYCAAsgASACaiIAIAwoAhQiCEsEQCAIIQkgACAIQQF0IgogACAKSxsiDiAIayIAIAwoAgwgCGtLBEAgDEEMaiAIIABBBEEQEKQFIAwoAhQhCQsgDCgCECEPIABBA3EiCgRAIAkgCmohCyAPIAlBBHRqIQcgCiEAA0AgB0IANwIAIAdBBmpCADcBACAHQRBqIQcgAEEBayIADQALIAshCSAOIAggCmprIQALIAggDmtBfE0EQCAPIAlBBHRqIQcgCSELA0AgB0IANwIAIAdBBmpCADcBACAHQRBqQgA3AgAgB0EWakIANwEAIAdBIGpCADcCACAHQSZqQgA3AQAgB0EwakIANwIAIAdBNmpCADcBACAHQUBrIQcgC0EEaiELIABBBGsiAA0ACwsgDCALNgIUCyACBEAgAUEEdCEUQQAhCUHMtskAKAIAIQ8DQAJAAkACQCAQQYCABCACIAkiAGsiCSAJQYCABE8bIgpBAnQiC08EQCANIAMgAEECdCAAIApqIglBAnQQ4QgiCBC4CiIHNgIAIA0gCzYCBCAHIAtHDQEgDyALIAgQ4QkgCEGECE8EQCAIEJsHCyAAIAJGDQMgCkEEdCERIAAgAWohCiAUIABBBHRqIRVBACEHQQAhAANAIAAgEUYNAyAMKAIUIgggCksEQCAAIA9qIg4oAgAhEiAOQQRqKAIAIRMgDkEIaigCACEWIAwoAhAgFWogAGoiCCAOQQxqKAIANgIAIAhBDGogFjsBACAIQQpqIBNBEHY7AQAgCEEIaiATOwEAIAhBBmogEkEQdjsBACAIQQRqIBI7AQAgB0EEaiEHIApBAWohCiARIABBEGoiAEYNBQwBCwsgCiAIQcjzwAAQjAcAC0EAIAsgEEHY88AAEOoHAAsgDUEANgIIQQAgDSANQQRqIA1BCGpB4PnEABD1BwALIAcgC0H488AAEIwHAAsgAiAJSw0ACwsgDCAMKAIIQQFqNgIIIA1BIGokAA8LQejzwAAQsAoAC/ELAR1/IwBBMGsiASQAIAAQowUgAEHAAWpBADoAACAAQgA3ArgBAkACQAJAAkACQAJAIAAoAowBIgVBgICAgHhGIAAoApgBIgJBgICAgHhGcUUEQCAFQYCAgIB4RyACQYCAgIB4R3FFBEAgAUEANgIoIAFBATYCHCABQZzgwAA2AhggAUIENwIgIAFBGGoQkgchAgwECyAAQYCABBDQBCAAKAKoASIKQQJ0ELYJIQ8CQCAAKAI8RQ0AIAAoAkAiAkGECEkNACACEJsHCyAAIA82AkAgAEEBNgI8IAAoAowBIhBBgICAgHhGDQIgACgCmAEiEUGAgICAeEYNAQJAIApFDQAgACgCnAEhGSAAKAKQASEaIAAoAqABIRIgACgClAEhEyAAKAK0ASEbIAAoArABIRwgACgCiAEhFCAAKAKEASEVIAAoAnwhFiAAKAJ4IQtBACECA0AgFkGAgAQgCiACayIFIAVBgIAETxsiCEECdCIDSQRAQQAgAyAWQYi7wQAQ6gcACwJAIAMgFE0EQCABIBwgAkECdCIMIAIgCGoiBUECdCIXEOEIIgQQuAoiBzYCFCABIAM2AgggAyAHRgRAIAsgAyAEEOEJIARBhAhPBEAgBBCbBwsgASAbIAwgFxDhCCIEELgKIgc2AhQgASADNgIIIAMgB0YEQCAVIAMgBBDhCSAEQYQITwRAIAQQmwcLIAIgCkYNAyAIQQR0IRggDCAZaiEdIBogAkEBdGohDUEAIQRBACEIAkADQCAEIBhGBEAgCCAIQQRqIANB6LrBABDqBwALIAEgBCALaiIOKQIANwIIIAEgDkEIaioCADgCEAJ/IA5BDGooAgAiBkH//wFxRQRAIAZBEHQMAQsgBkH/B3EhByAGQYCAAnEhCSAGQYD4AXEiBkGA+AFGBEAgCUEQdCEGIAZBgICA/AdyIAdFDQEaIAYgB0ENdHJBgICA/gdyDAELIAlBEHQhCSAGQQ10QYCAgPwAcSAHQQ10ckGAgIDAA2ogCXIgBg0AGiAJQYCAgNgDciAHZ0EQayIGQRd0ayAHIAZB//8DcUEIanRB////A3FyCyEHIAFBGGoiBiAEIBVqEJYDIAIgE0kEQCACIBJPDQIgDiABQQhqIAe+IAYgDS8BACAIIB1qKAIAEJECIAhBBGohCCANQQJqIQ0gAkEBaiECIBggBEEQaiIERw0BDAYLCyACIBNByLrBABCMBwALIAIgEkHYusEAEIwHAAsMCQsMCAtBACADIBRB+LrBABDqBwALIAEgDyAMIBcQ4QgiAhC4CiIENgIUIAEgAzYCCCADIARGBEAgAiALIAMQ4AkgAkGECE8EQCACEJsHCyAFIgIgCkkNAQwCCwsMBQsgEUGAgICAeHJBgICAgHhHBEAgACgCnAEiAkEEaygCACIFQXhxIgMgEUECdCIEQQRBCCAFQQNxIgUbakkNBiAFQQAgAyAEQSdqSxsNByACEKICCyAAQYCAgIB4NgKYASAQQYCAgIB4ckGAgICAeEcEQCAAKAKQASICQQRrKAIAIgVBeHEiAyAQQQF0IgRBBEEIIAVBA3EiBRtqSQ0GIAVBACADIARBJ2pLGw0HIAIQogILIABBgICAgHg2AowBC0EAIQIgAEEANgJ8IAAoAnghBSAAKAJ0IQMgAEKAgICAwAA3AnQgAwRAIAVBBGsoAgAiBEF4cSIIIANBAnQiA0EEQQggBEEDcSIEG2pJDQUgBEEAIAggA0EnaksbDQYgBRCiAgsgAEEANgKIASAAKAKEASEFIAAoAoABIQMgAEKAgICAwAA3AoABIANFDQIgBUEEaygCACIAQXhxIgQgA0ECdCIDQQRBCCAAQQNxIgAbakkNBCAAQQAgBCADQSdqSxsNBSAFEKICDAILQbi6wQAQ3QkAC0GousEAEN0JAAsgAUEwaiQAIAIPCyABQQA2AhhBACABQRRqIAFBCGogAUEYakHg+cQAEPUHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL3hgDB38BfgF7IwBBIGsiBiQAAkACQCAAKAIAIgdFBEAgACgCECIARQ0BIABBk7PFAEEBEJcDIQIMAgsCQAJAAkACQAJAIAAoAggiAiAAKAIEIgVPBEAgACgCECIBRQ0BIAFB6rLFAEEQEJcDRQ0BDAULIAAgAkEBaiIENgIIIAIgB2otAAAhAyAAIAAoAgxBAWoiCDYCDCAIQfUDTwRAIAAoAhAiAQRAIAFB+rLFAEEZEJcDDQYLIABBAToABAwCCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIANB0QBrDikLCgEPARABAQEBAQEBAQEBBAcIAQkBAQMEAwEEAwQDAgEBBAMBAQEEAwALIANBwQBrDgINBAALIAAoAhAiAUUNESABQeqyxQBBEBCXAw0VDBELIAAoAhAiAUUNE0EBIQIgAUGSssUAQQEQlwNFDRMMFgsgACADEIYFDRMMEgsgBCAFTw0QIAQgB2otAABB7gBGDQEMEAsjAEEgayICJAACQAJAIAAoAgBFBEAgACgCECIBRQ0BIAFBk7PFAEEBEJcDIQEMAgsgAiAAEK8GIAIoAgBFBEAgACgCECIDBEBBASEBIANB+rLFAEHqssUAIAItAARBAXEiAxtBGUEQIAMbEJcDDQMLIAAgAv0AAgD9CwIADAELIAAoAhBFDQAgAP0AAgAhCiAAIAL9AAIA/QsCACACIAr9CwMQIAAgAUEBcRDVASEBIAAgAv0AAxD9CwIADAELQQAhAQsgAkEgaiQAIAENEQwQCyAAIAJBAmo2AgggACgCECIBRQ0OQQEhAiABQeqzxQBBARCXA0UNDgwSCyAGQRhqIAAQyAUgBigCGCIBRQRAIAYtABwhASAAKAIQIgMEQEEBIQIgA0H6ssUAQeqyxQAgAUEBcSIDG0EZQRAgAxsQlwMNEwsgACABOgAEDA0LIAZBCGogASAGKAIcEMIEAkACQAJAIAYoAghBAUcNACAGKQMQIglCAVYNACAJp0EBaw0BDAILIAAoAhAiAUUNDSABQeqyxQBBEBCXAw0RDA0LIAAoAhAiAUUNDyABQfKzxQBBBRCXAw0QDA8LIAAoAhAiAUUNDiABQfezxQBBBBCXAw0PDA4LIAZBGGogABDIBSAGKAIYIgFFBEAgBi0AHCEBIAAoAhAiAwRAQQEhAiADQfqyxQBB6rLFACABQQFxIgMbQRlBECADGxCXAw0SCyAAIAE6AAQMDAsgBkEIaiABIAYoAhwQwgQCQCAGKAIIIAYpAxAiCUKAgICAEFRxRQ0AQYCAxAAgCaciASABQYCwA3NBgIDEAGtBgJC8f0kbIgFBgIDEAEYNACAAKAIQIQMjAEEgayICJAACf0EAIANFDQAaAkAgAygCAEEnIAMoAgQoAhARAgANAANAAkACQAJ/AkACQCABQSJHBEAgAUGAgMQARgRAIAMoAgBBJyADKAIEKAIQEQIADAkLAkACQAJAAkACQAJAIAFBJkwEQCABQQlrDgUBAwYGAgULIAFBJ0YNAyABQdwARw0FIAJCADcBAiACQdy4ATsBAAwICyACQgA3AQIgAkHc6AE7AQAMBwsgAkIANwECIAJB3OQBOwEADAYLIAJCADcBAiACQdzcATsBAAwFCyACQgA3AQIgAkHczgA7AQAMBAsgAUUNAgsCQAJAIAFBgAZPBEAgARDlBA0BCyABEOECDQELIAJBEGogARDWBSACQQhqIgUgAkEYaiIHLwAAOwEAIAIgAikAEDcDACACLQAaIQEgAi0AGyEEIAcgBS8BADsBACACIAIpAwA3AxAgAUH/AXEgBEH/AXFJDQUMBgsgAiABNgIAQYEBIQRBgAEMAwtBgIDEACEBIAMoAgBBIiADKAIEKAIQEQIARQ0FDAYLIAJCADcBAiACQdzgADsBAAtBAiEEQQALIQEgAkEYaiACQQhqLwEAOwEAIAIgAikDADcDEAsgBEH/AXEhByABQf8BcSEEIAMoAgAhASADKAIEKAIQIQUgAigCECEIA0AgASAHQYABTQR/IAJBEGogBGotAAAFIAgLIAURAgANAyAHIARBAWoiBEcNAAsLQYCAxAAhAQwACwALQQELIAJBIGokAA0PDA4LIAAoAhAiAUUNCiABQeqyxQBBEBCXAw0ODAoLAkAgAQ0AIAAoAhAiA0UNAEEBIQIgA0H7s8UAQQEQlwMNEAsgACgCECIDBEBBASECIANBsrPFAEEBEJcDDRALIAAQwQINDQwICyAEIAVPDQAgBCAHai0AAEHlAEYNAQsCQCABDQAgACgCECIERQ0AQQEhAiAEQfuzxQBBARCXAw0OCyAAKAIQIgQEQEEBIQIgBEGss8UAQQEQlwMNDgsgA0HSAEcNAQwFCyAAIAJBAmo2AgggABDBAg0KDAkLIAAoAhAiAkUNAyACQa6zxQBBBBCXAw0JDAMLAkAgAQ0AIAAoAhAiA0UNAEEBIQIgA0H7s8UAQQEQlwMNCwsgACgCECIDBEBBASECIANB6LLFAEEBEJcDDQsLIAAQyQYNCCAAKAIQIgNFDQdBASECIANB6bLFAEEBEJcDRQ0DDAoLAkAgAQ0AIAAoAhAiA0UNAEEBIQIgA0H7s8UAQQEQlwMNCgsgACgCECIDBEBBASECIANBu7PFAEEBEJcDDQoLQQAhAgJ/AkAgACgCACIDRQ0AA0ACQCAAKAIIIgQgACgCBE8NACADIARqLQAAQcUARw0AIAAgBEEBajYCCAwCCwJAIAJFDQAgACgCECIDRQ0AIANB55DGAEECEJcDRQ0AQQEMAwtBASAAQQEQ1QENAhogAkEBaiECIAAoAgAiAw0ACwtBAAshAyAGIAI2AgQgBiADNgIAQQEhAiAGKAIAQQFxDQkgBigCBEEBRgRAIAAoAhAiA0UNByADQbyzxQBBARCXAw0KCyAAKAIQIgNFDQYgA0HejsgAQQEQlwNFDQIMCQsCQCABDQAgACgCECIDRQ0AQQEhAiADQfuzxQBBARCXAw0JC0EBIQIgAEEBEMwBDQggACgCACIERQRAIAAoAhAiAEUNCCAAQZOzxQBBARCXAyECDAkLIAAoAggiAyAAKAIETwRAIAAoAhAiAUUNAyABQeqyxQBBEBCXA0UNAwwJCyAAIANBAWo2AggCQAJAAkAgAyAEai0AAEHTAGsOAwIBBAALIAAoAhAiAUUNBCABQeqyxQBBEBCXAw0IDAQLIAAoAhAiAwRAIANBu7PFAEEBEJcDDQoLIAAQyQYNByAAKAIQIgNFDQYgA0HejsgAQQEQlwNFDQIMCQsgACgCECICBEAgAkH8s8UAQQMQlwMNBwtBASECQQAhByMAQSBrIgMkAAJAAkACQCAAKAIAIgRFDQADQAJAIAAoAggiBSAAKAIETw0AIAQgBWotAABBxQBHDQAgACAFQQFqNgIIDAILAkACQCAHRQ0AIAAoAhAiBEUNACAEQeeQxgBBAhCXAw0EIAAoAgANACAAKAIQIgVFDQFBASEEIAVBk7PFAEEBEJcDRQ0BDAULIAMgAEHzABCsBiADLQAAQQFGBEAgAy0AASEHIAAoAhAiBQRAQQEhBCAFQfqyxQBB6rLFACAHQQFxIgUbQRlBECAFGxCXAw0GCyAAIAc6AAQgAEEANgIADAMLIAAoAgBFBEAgACgCECIFRQ0BQQEhBCAFQZOzxQBBARCXA0UNAQwFCyADIAAQ7wIgAygCAEUEQCADLQAEIQcgACgCECIFBEBBASEEIAVB+rLFAEHqssUAIAdBAXEiBRtBGUEQIAUbEJcDDQYLIAAgBzoABCAAQQA2AgAMAwsgAyAD/QACAP0LAxACQCAAKAIQIgRFDQAgA0EQaiAEEIsCDQQgACgCECIERQ0AIARB3fjHAEECEJcDDQQLQQEhBCAAQQEQ1QENBAsgB0EBayEHIAAoAgAiBA0ACwtBACEEDAELQQEhBAsgA0EgaiQAIAQNCCAAKAIQIgNFDQUgA0H/s8UAQQIQlwNFDQEMCAtBASECIABBARDVAQ0HCyABDQMgACgCECIBRQ0DQQEhAiABQaWzxQBBARCXA0UNAwwGC0EAIQIgAEEAOgAEIABBADYCAAwFC0EAIQIgAEEANgIADAQLIAAgAxCGBQ0BC0EAIQIgACgCAEUNAiAAIAAoAgxBAWs2AgwMAgtBASECDAELQQAhAgsgBkEgaiQAIAIL/gwBFn8jAEFAaiIFJAACQCABLQD4AkEIRwRAAkACQCADBEAgAUHIAmohFCABQf0CaiEPIAVBIGpBBXIhFSAFQRBqIREgAUHgAmohGSADIQkDQCAFQR5qIhYgD0ECaiISLQAAOgAAIAEtAPgCIQ4gAUEIOgD4AiAFIA8vAAA7ARwCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgDkEIRwRAIAEoAoQDIQggASgCgAMhECABKAD5AiETIA5BBmtB/wFxQQFqQQAgDkEFSxtBAWsOAgIDAQtBgJHFABDdCQALIBUgDy8AADsAACAVQQJqIBItAAA6AAAgBSATNgAhIAUgDjoAICAFIBA2AjQgCEUgCUEET3ENAyAJQQQgCGsiBiAGIAlLGyIGIAhqIgcgCEkgB0EFT3INBiAGBEAgBUE0aiAIaiACIAb8CgAACyAHQQRGBEAgBUEIaiABIAVBIGogBUE0aiAEIAYQNQwFCyABIAc2AoQDIAEgBSgCNDYCgAMgASAFKQMgNwP4AiAFQQA6ABAgBSAGNgIMIAVBADYCCAwECyABKALcAiIGRQ0EIAEoAuACIAEoAugCayIHIAkgByAJSRsiByAGIAYgB0sbIQsgAS0AkQNFBEAgFCACIAsQ3gELIAEtAOwCDQ4gASgC6AIiCiABKALgAiIHRwRAIAohBgwOCyABKAKIAyIGRQ0BIAEgBiAGIAogBiAKSRsiDWs2AogDQQAhB0EAIQYgCkUNDSAKIA1qIgdBAE4EfyAFIAo2AjwgBUEBNgI4IAUgASgC5AI2AjQgBUEoakEBIAcgBUE0ahCFByAFKAIoQQFHDQcgBSgCMCEMIAUoAiwFIAYLIAxBoJHFABCTCQALIAEoAtwCIgYgCSAGIAlJGyIKIQcgBA0GDAcLIAVBJzoADAwHCyAFQQhqIAEgBUEgaiACIARBBBA1CyAFKAIIQQFxDQYgBS0AECEGDAsLIAFCADcDgAMgAUEEOgD4AkEAIQYgEUEAOgAAIAVCADcDCAwKCyAIIAdBBEGQkcUAEOoHAAsgBSgCLCEGIAEgBzYC4AIgASAGNgLkAiABKALoAiEGDAYLIAEoAvACIg0tAKMHQQdGDQACQCABLQD0Ag0AIAEtAPUCQQFxRQ0AIA1BAToApgcLIAQoAgQiCyAEKAIMIgwoAgAiGkGAQGsiByAHIAtLGyIXIAQoAggiGCgCACIHSQ0DIAVBNGogDSACIAogBCgCACAHaiAXIAdrIBogB2tBABBCIAUtADRFBEAgBSgCOCEHIAwgDCgCACAFKAI8aiIMNgIAAkAgDS0AowdBB0cEQCAMQYCAAkkNASAMQYCAAmsiDCAYKAIATQ0BCyAYIAw2AgALIAFBAToA9AIMAQsgBSAFLQA1OgANIAVBHDoADAwBCyABLQCRA0UEQCAHIApLDQQgFCACIAcQ3gEgASgC3AIhBgsgASAGIAdrNgLcAgJAIAYgB0YEQEEEIQ5BACEQQQAhCAwBCyAPIAUvARw7AAAgEiAWLQAAOgAACyABIAg2AoQDIAEgEzYA+QIgASAOOgD4AiABIBA2AoADQQUhBiAFQQU6ABAgBSAHNgIMIAVBADYCCAwGCyAFQQE2AggLIAAgBf0AAwj9CwIAIABBEGogBUEYaigCADYCAAwKCyAHIBcgC0HwkMUAEOoHAAtBACAHIApBsJHFABDqBwALIAcgBmsgC0kEQCAZIAYgCxDvBSABKALoAiEGCyALBEAgASgC5AIgBmogAiAL/AoAAAsgASAGIAtqNgLoAgsgASABKALcAiIMIAtrNgLcAkEEIQpBACEGQQAhB0EAIQ0gCyAMRwRAIA8gBS8BHDsAACASIBYtAAA6AAAgDiEKIAghDSAQIQcLIAEgDTYChAMgASATNgD5AiABIAo6APgCIAEgBzYCgAMgBUEAOgAQIAUgCzYCDCAFQQA2AggLIAUoAgwhCCAGQf8BcQ0DIAggCUsNAiACIAhqIQIgCSAIayIJDQALCyAAQQA6AAggACADNgIEIABBADYCAAwDCyAIIAkgCUHklcUAEOoHAAsgCCAJTQRAIABBADYCACAAIBEpAgA3AgggAEEQaiARQQhqKAIANgIAIAAgAyAJayAIajYCBAwCCyAIIAkgCUH0lcUAEOoHAAsgAEECNgIIIABBJjoABCAAQQE2AgALIAVBQGskAAvlDAIOfwN+IwBBIGsiAyQAAkACQCAAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAqgBQQFrDgIBAgALIANBEGohBQJAAkBBJRBxIgFFDQAgAUEdakGdnccAKQAANwAAIAFBEGpBkJ3HAP0AAAD9CwAAIAFBgJ3HAP0AAAD9CwAAQQwQcSICRQ0AIAJBJTYCCCACIAE2AgQgAkElNgIAQQwQcSIBRQ0AIAFBKDoACCABQbidxwA2AgQgASACNgIAIAUgAa1CIIZCA4Q3AgAMAQsACwwCCyADQRBqIAFBsAFqIAIQ8wEMAQsgASgCrAEhCiACKAIAIhAhBSACKAIIIgwhBwJ/AkAgECAMa0EgTw0AIANBEGogCiACEI8EAkBBAAJ/IAMtABBBBEYEQCADKAIUDAELIAMpAxAiEUIgiCETIBFC/wGDQgRSDQEgE6cLRQ0CGiACKAIAIQUgAigCCCEHDAELIBFCgH6DIRIMBgtBgMAAIQtBACEBA0ACQCAFIBBHIAUgB0dyRQRAIANBEGogCiACEI8EAkACQAJ/IAMtABBBBEYEQCADKAIUDAELIAMpAxAiEUIgiCETIBFC/wGDQgRSDQEgE6cLDQEgAigCCCEHDAMLIBFCgH6DIRIMCQsgAigCCCEHIAIoAgAhBQsCQCAFIAdHBEAgBSAHayENIAIoAgQhBAwBC0IBIRFCgMwAIRJCACETIAVBIGoiCCAFQQF0IgQgBCAISRsiCEEASA0IIAMgBQR/IAMgBTYCGCADIAIoAgQ2AhBBAQVBAAs2AhQgA0EEakEBIAggA0EQahCFByADKAIEQQFGDQggAygCCCEEIAIgCDYCACACIAQ2AgQgCCAFayENIAghBQsgBCAHaiEOIAsgDSALIA1JGyIIIAFrIgQEQCABIA5qQQAgBPwLAAsgA0EQaiAKIA4gCBDkAgJAIAMtABBBBEYNACADKQMQIhJCIIgiE6chBEIAIRECQAJAAkACQAJAIBKnQf8BcUEBaw4EAgEABAwLIAQtAAhBI0YNAgwKCyAELQAIQSNGDQFCAiERDAoLIBJCgP4Dg0KAxgBRDQBCASERDAkLAn8gEkL/AYNCA1EEQCAEKAIAIQEgBEEEaigCACIGKAIAIgkEQCABIAkRAwALIAYoAgQiBgRAIAFBBGsoAgAiCUF4cSIPQQRBCCAJQQNxIgkbIAZqSQ0RIAlBACAPIAZBJ2pLGw0SIAEQogILIARBBGsoAgAiAUF4cSIGQRBBFCABQQNxIgEbSQ0QIAFBACAGQTRPG0UEQEEADAILDBELQQELIQEDQAJAAkAgAUUEQCAEEKICDAELIANBEGogCiAOIAgQ5AIgAy0AEEEERg0EIAMpAxAiEkIgiCITpyEEAkACQAJAAkAgEqdB/wFxQQFrDgQAAQIHDwsgEkKA/gODQoDGAFENAkIBIREMDgsgBC0ACEEjRg0BQgIhEQwNCyAELQAIQSNHDQsLIBJC/wGDQgNRDQELQQEhAQwBCyAEKAIAIQEgBEEEaigCACIGKAIAIgkEQCABIAkRAwALIAYoAgQiBgRAIAFBBGsoAgAiCUF4cSIPQQRBCCAJQQNxIgkbIAZqSQ0QIAlBACAPIAZBJ2pLGw0RIAEQogILIARBBGsoAgAiAUF4cSIGQRBBFCABQQNxIgEbSQ0PIAFFIAZBNElyRQRADBELQQAhAQwACwALIAIgBzYCCAwBCyADKAIUIgEgCEsEQEG0m8cAQTZB7JvHABDrBwALIAIgASAHaiIHNgIIIAFFDQBBfyALQQF0IAtBAEgbIAsgASAIRhsgCyALIA1NGyELIAggAWshAQwBCwsgByAMawshASAKLQC0AUEBRw0GIAIoAggiBSAMSQ0BIApBoAFqIAIoAgQgDGogBSAMaxDeASAKKAKwASAKKAKoAUYNBiADQRBqEJMHCyADLQAQIQEMBAsgDCAFIAVB7KvHABDqBwALQgMhEQsgAiAHNgIIIBJCgH6DIRILIAMgEz4CFCADIBGnIgE6ABAgAyASpyICQRh2OgATIAMgAkEIdjsAEQsgAUH/AXFBBEcNASADKAIUIQELIAAgAa03AwhBAAwBCyAAIAMpAxA3AgRBAQs2AgAgA0EgaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALtAwCDH8BfiMAQeAEayIJJABBBiELAkACQAJAAkACQAJAAkAgASgCACIKQYCAgIB4Rg0AIAlBEGogASgCBCIMIAEoAggQkQUgCS0AEEEBRgRAIAkoAhQhASAJQQA2AqQDIAlCgICAgBA3ApwDIAlBnJPBADYC3AEgCUKggICADjcC4AEgCSAJQZwDajYC2AEgASAJQdgBahCvBA0CIAkoApwDIQsgCSgCoAMiDSAJKAKkAxDsCCEPIAsEQCANQQRrKAIAIg5BeHEiEEEEQQggDkEDcSIOGyALakkNByAOQQAgECALQSdqSxsNCCANEKICCyAAQQA2AgAgACAPNgIEIAEgASgCACgCABEDACAKBEAgDEEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgCmpJDQcgAEEAIAEgCkEnaksbDQggDBCiAgsgB0UgCEGECElyRQRAIAgQmwcLIAVFIAZBhAhJckUEQCAGEJsHCyADRSAEQYQISXJFBEAgBBCbBwsgAigCACIAQYCAgIB4ckGAgICAeEYNBSACKAIEIgFBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIABqSQ0GIAJBACADIABBJ2pLGw0HIAEQogIMBQsgCS0AESELIApFDQAgDEEEaygCACIBQXhxIg1BBEEIIAFBA3EiARsgCmpJDQUgAUEAIA0gCkEnaksbDQYgDBCiAgtBBCEBQQAhCkEAELYJIRNBABC2CSEUQQAhDEEEIQ0CQCADQQFxRQ0AIAlB2AFqIAQQlwYgCSgC4AEhDyAJKALcASENIAkoAtgBIQwgBEGECEkNACAEEJsHC0EAIQQCQCAFQQFxRQ0AIAlB2AFqIAYQlwYgCSgC4AEhBCAJKALcASEBIAkoAtgBIQogBkGECEkNACAGEJsHC0EEIQZBACEFQQAhA0EEIRACQCAHQQFxRQ0AIAlBnANqIAhBABDoCCIHEJcGIAlB2AFqIAhBARDoCCISEJcGIAkoAuABIREgCSgC3AEhECAJKALYASEOIAkoAqQDIQMgCSgCoAMhBiAJKAKcAyEFIBJBhAhPBEAgEhCbBwsgB0GECE8EQCAHEJsHCyAIQYQISQ0AIAgQmwcLIAkgFDYCjAMgCSATNgKIAyAJQQA2AoQDIAlCADcC/AIgCUGAgICAeDYC8AIgCUGAgICAeDYC5AIgCUIENwLcAiAJQgA3AtQCIAlCgICAgMAANwLMAiAJIBE2AsgCIAkgEDYCxAIgCSAONgLAAiAJIAM2ArwCIAkgBjYCuAIgCSAFNgK0AiAJIAQ2ArACIAkgATYCrAIgCSAKNgKoAiAJIA82AqQCIAkgDTYCoAIgCSAMNgKcAiAJQQA2ApQCIAlBADYCiAIgCUEANgKAAiAJQQA2AvgBIAlBADYC8AEgCUEANgLoASAJQQA2AuABIAlBADYC2AEgCUGYA2pBADoAACAJQgA3ApADIAIoAgAhAyACKAIEIQUgAigCCCEBAn8gC0EGRwRAIAlBCGogCyAJQdgBahDUAyAJKAIMIQQgCSgCCCEHQQIMAQsgCUGcA2ogCUHcAWpBwAH8CgAAQQAhB0EACyEGQYCAgIB4IQggA0GAgICAeEcEQCABQQBIDQICQCABRQRAQQEhCAwBCyABEHEiCEUNBAsgAQRAIAggBSAB/AoAAAsgCK0gAa1CIIaEIRUgASEICyAJQRhqIgIgCUGcA2pBwAH8CgAAQfQBEHEiAUUNAiABIAY2AgAgAUEEaiACQcAB/AoAACABIAs6APABIAEgBDYC7AEgASAHNgLoASABQYCAgIB4NgLcASABIBU3AtQBIAEgCDYC0AEgAUEANgLMASABQoCAgIAQNwLEASAAQbDuwAA2AgwgAEEBNgIIIABBmO7AADYCBCAAIAE2AgAgA0GAgICAeHJBgICAgHhGDQMgBUEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgA2pJDQQgAEEAIAEgA0EnaksbDQUgBRCiAgwDC0GgnsYAQTcgCUHfBGpBtJPBAEHYnsYAEOAGAAtB2JrIABD/BwsACyAJQeAEaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL/Q0BBX8jAEEwayICJAACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOBQECAwQFAAtBASEDIAEoAgAiBEHUpccAQQggASgCBCIGKAIMIgURAAANBiAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEIQGRQ0BDAgLIARB24HCAEECIAURAAANByACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIQGDQcgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0HCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBgtBASEDIAEoAgAiBEHcpccAQQggASgCBCIGKAIMIgURAAANBSAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQcgACABEIUGRQ0BDAcLIARB24HCAEECIAURAAANBiACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIUGDQYgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0GCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBQtBASEDIAEoAgAiBEHkpccAQQkgASgCBCIGKAIMIgURAAANBCAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQYgACABEIYGRQ0B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BwsgA0IANwGCASADQdzkATsBgAEMBgsgA0IANwGCASADQdzcATsBgAEMBQsgA0IANwGCASADQdy4ATsBgAEMBAsgA0IANwGCASADQdzEADsBgAEMAwsgA0IANwGCASADQdzOADsBgAEMAgsgAyAENgKAASAAIAMpAoABNwIAIABBCGogA0GIAWovAQA7AQAgBSAJKAIAIAgoAhARAgBFDQMMBQtBACEADAULQQAhAUECCyEEIAAgAykCgAE3AgAgAEEIaiADQYgBai8BADsBACABIAQgASAESxsiAkH/AXEhBCAIKAIQIQoDQCAFIAAgAWotAAAgChECAA0DIAQgAUEBaiIBRw0ACyADIAI6AGALIAYgB0cNAAtBACEADAELQQEhAAsgA0GQAWokACAAC+MJAQZ/IAFBA2wiBCAAKAKQBCICSwRAIAQgAmsiBSAAKAKIBCACa0sEQCAAQYgEaiACIAVBBEEEEKQFIAAoApAEIQILIAAoAowEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKQBAsgACgCnAQiAiABSQRAIAEgAmsiBSAAKAKUBCACa0sEQCAAQZQEaiACIAVBBEEEEKQFIAAoApwEIQILIAAoApgEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKcBAsgACgCqAQiAiAESQRAIAQgAmsiBSAAKAKgBCACa0sEQCAAQaAEaiACIAVBBEEEEKQFIAAoAqgEIQILIAAoAqQEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKoBAsgACgCtAQiAiAESQRAIAQgAmsiBCAAKAKsBCACa0sEQCAAQawEaiACIARBBEEEEKQFIAAoArQEIQILIAAoArAEIgUgAkECdGohAyAEQQJPBH8gBEECdEEEayIGBEAgA0EAIAb8CwALIAIgBGoiA0EBayECIAUgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgK0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AXI6AABBACEDDAQLIAIoAggiAyACKAIARgRAIAJB+JPGABCnBgsgAiADQQFqNgIIIAIoAgQgA2ogBjoAAEEAIQMMAwsgBiADIANByKXGABDqBwALIARBFDYCFCABIARBFGoQiwchAwwBCyAIIAMgA0HIpcYAEOoHAAsgBEEgaiQAIANFDQ4MDQsgAigCACADRgRAIAJB+JLGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQSI6AAAMCwsgAigCACADRgRAIAJBiJPGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQdwAOgAADAoLIAIoAgAgA0YEQCACQZiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEvOgAADAkLIAIoAgAgA0YEQCACQaiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEIOgAADAgLIAIoAgAgA0YEQCACQbiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEMOgAADAcLIAIoAgAgA0YEQCACQciTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEKOgAADAYLIAIoAgAgA0YEQCACQdiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakENOgAADAULIAIoAgAgA0YEQCACQeiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEJOgAADAQLIAMgBCAGQcicxgAQ6gcACyAHKAIMIQMMAwsgB0EENgIUIAAgASAHQRRqEPIGDAYLIAQgBkGYnMYAEIwHAAsMAQsLIABBAjYCACAAIAM2AgQMAgsgACADNgIIIAAgATYCBCAAQQA2AgAMAQsgACADNgIIIAAgATYCBCAAQQE2AgALIAdBIGokAAvFBwEEfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOBQECAw0EAAsgAC0ABEEDRw0MIAAoAggiAygCACEAIANBBGooAgAiASgCACICBEAgACACEQMACyABKAIEIgEEQCAAQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyABakkNDyACQQAgBCABQSdqSxsNDiAAEKICCyADQQRrKAIAIgBBeHEiAUEQQRQgAEEDcSIAG0kNDiAARSABQTRJcg0LDA0LAkAgAC0ABEEBaw4C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gICAgIAEhDcDECADQgE3AiQgA0EBNgIcIANBoPjHADYCGCADIANBEGo2AiAgA0EEaiADQRhqEOwDQYCAgIB4IQYgAygCCCEFIAMoAgQhBCADNQIMIQpBACEHQRELIQAgAyAKNwMgIAMgBTYCHCADIAg6ABkgAyAAOgAYIANBGGogASACENAFIQACQAJAAkACQAJAIAlFBEAgByAERXINBgwBCyAGBEAgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBmpJDQIgAUEAIAIgBkEnaksbDQMgBRCiAgsgBEUgB3INBQsgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBGpJDQIgAUEAIAIgBEEnaksbDQMgBRCiAgwEC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIANBMGokACAAC+YFAQN/IwBBIGsiAyQAIAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAQ4oAgEBAQEBAQEBAwUBAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQgBAQEBBwALIAFB3ABGDQULIAJBAXFFIAFB/wVNcg0HIAEQ5QRFDQcgA0EOakEAOgAAIANBADsBDCADIAFBFHYtANy2RToADyADIAFBBHZBD3EtANy2RToAEyADIAFBCHZBD3EtANy2RToAEiADIAFBDHZBD3EtANy2RToAESADIAFBEHZBD3EtANy2RToAECABQQFyZ0ECdiICIANBDGoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgAkECayICakHcADoAACADQRRqIgQgAUEPcS0A3LZFOgAAIAAgAykBDDcAACADQf0AOgAVDAgLIABCADcBAiAAQdzgADsBAAwKCyAAQgA3AQIgAEHc6AE7AQAMCQsgAEIANwECIABB3OQBOwEADAgLIABCADcBAiAAQdzcATsBAAwHCyAAQgA3AQIgAEHcuAE7AQAMBgsgAkGAAnFFDQEgAEIANwECIABB3M4AOwEADAULIAJB////B3FBgIAETw0DCyABEOECDQEgA0EYakEAOgAAIANBADsBFiADIAFBFHYtANy2RToAGSADIAFBBHZBD3EtANy2RToAHSADIAFBCHZBD3EtANy2RToA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IAMgAUEDdGoiAiAFNgIEIAIgCjgCACABDQBBACECDAELIAogClsEQANAIAMgAUEBayIGQQF2IgJBA3RqIgcqAgAiCyALWyAKIAtfRXFBfyAKIAtgGyIEQQBMIAUgB0EEaigCAE0gBBsEQCABIQIMAwsgAyABQQN0aiAHKQIANwIAIAIhASAGQQFLDQAMAgsACwNAAkAgAyABQQFrIgRBAXYiAkEDdGoiBioCACILIAtbIAogC19FcQ0AIAUgBkEEaigCAEsNACABIQIMAgsgAyABQQN0aiAGKQIANwIAIAIhASAEQQJPDQALCyADIAJBA3RqIgEgBTYCBCABIAo4AgALIAAgCTYCCCAAIA04AgQgAEEBNgIAC4kGAQV/IwBBIGsiAiQAQQEhBAJAAkACQAJAAkACQEEBIAAoAgAiA0H/////B2ogA0GAgICAeE0bQQFrDgQBAgMEAAsgASgCACIDQcSjxwBBAiABKAIEIgYoAgwiBREAAA0EIABBBGohAAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAURAAANBiAAIAEQrgINBiABKAIAIQMgASgCBCgCDCEFDAELIANB24HCAEECIAURAAANBSACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqEK4CDQUgAigCEEHZgcIAQQIgAigCFCgCDBEAAA0FCyADQd6OyABBASAFEQAAIQQMBAsgASgCACIDQcajxwBBDiABKAIEIgYoAgwiBREAAA0DAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0FIAAoAgQgACgCCCABELUCRQ0BDAULIANB24HCAEECIAURAAANBCACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACgCBCAAKAIIIAJBEGoQtQINBCACQdmBwgBBAhCvAw0ECyADQd6OyABBASAFEQAAIQQMAwsgASgCACIDQdSjxwBBEiABKAIEIgYoAgwiBREAAA0CAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0EIAAoAgQgACgCCCABELUCRQ0BDAQLIANB24HCAEECIAURAAANAyACQQE6AA8gAiAGNgIEIAIg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AkACQAJAAkACQAJAQRUgASgCACIDQYCAgIB4cyADQQBOG0EBaw4IAQIDBAUGBwgACyABIAJBH2pB6OfAABCVCCEBIABBAToAACAAIAE2AgQMCAsgAEEAOgAAIAAgAS0ABDoAAQwHCyABLwEEIgFB/wFNBEAgACABOgABIABBADoAAAwHCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwGCyABKAIEIgFB/wFNBEAgACABOgABIABBADoAAAwGCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwFCyABKQMIIgRC/wFYBEAgACAEPAABIABBADoAAAwFCyACQQE6AAggAiAENwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAEsAAQiAUEASARAIAJBAjoACCACIAGsNwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAAgAToAASAAQQA6AAAMAwsgAS8BBCIBQYACTwRAIAJBAjoACCACIAGtwzcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwDCyAAIAE6AAEgAEEAOgAADAILIAEoAgQiAUGAAk8EQCACQQI6AAggAiABrDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwCCyAAIAE6AAEgAEEAOgAADAELIAACfyABKQMIIgRCgAJaBEAgAkECOgAIIAIgBDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEQQEMAQsgACAEPAABQQALOgAACyACQSBqJAALxgQCBn8DfgJAIAEoAgBBAUYEQCABKQMQIgpQBEAMAgsgASgCGCIGKAIAIAYpAwgiCyAGKAIEIgWtIgwgCyAMVBunaiEHAkAgBUL/////DyALIAtC/////w9aG6drIgRBACAEIAVNGyIFIAogA60iDCAKIAxUG6ciBCAEIAVLGyIEQQFGBEAgAiAHLQAAOgAADAELIARFDQAgAiAHIAT8CgAACyABIAogBK0iCn03AxAgBiAKIAt8NwMIIARFBEBBACEEDAILQQEgBGshCCADQQFrIQYgASgCJCEJIAEoAiAhByABKAIoIQMDQAJAIAIgAi0AACADQQNy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KCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahDUASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2AjggAUEBNgIsIAFBqKPBADYCKCABQgQ3AjAgAUEoahCSByEDCyABQdAAaiQAIAML0wQCB38BfiMAQdAAayIBJAACQCAAEFwiAw0AIAAoAtwEIgJBgYCAgHhGIgRFBEACQAJAIAJBgICAgHhGBEBBACAAIAQbIQUgACgCCCIGQQZ0IQMgACgCBCIHQTxqIQICQANAIAIhBCADRQ0BIANBQGohAyACQUBrIQIgBC0AAEEBRw0ACyAEQTxrIgIoAjggAigCICIERw0DIAQgACgC7AJHDQMLIAZBBnQhAyAHQTxqIQIDQCACIQQgA0UNAiADQUBqIQMgAkFAayECIAQtAABBAkcNAAsgBEE8ayICKAI4IAIoAiBGDQEgAUECNgIsIAFBiKPBADYCKCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahCjASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2Ajgg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rgQCBX8EfiMAQSBrIgIkAEEEIQMgASgCBCIErSEIIAECfgJAIARC/////w8gASkDCCIHIAdC/////w9aG6drIgZBACAEIAZPG0EETwRAIAEoAgAgByAIIAcgCFQbp2ooAAAhBQwBC0GokMgAKQMAIglCCIghCiAJpyEDIAggCUL/AYNCBFINARoLIAdCBHwLIgk3AwgCQCADQf8BcUEERwRAIABBEmogAkEWai8BADsBACACIAOtQv8BgyAKQgiGhDcCDCACQQRqIAJBDWotAAAiAToAACAAIAIpAQ43AQogAiACKAAJIgM2AgAgAEEJaiABOgAAIAAgAzYABSAAQQA6AAQgAEEBNgIADAELIAJBCGpBAXIgBRCYBCACQRxqIAJBDWotAAA6AAAgAiACKAAJIgM2AgAgAiADNgIYAkACQCAEIAkgCCAIIAlWG6ciA2tBBE8EQCABKAIAIANqKAAAIQRBBCEDQgAhBwwBC0EAIQRBqJDIACkDACIKQgiIIQcgCqchAyAKQv8Bg0IEUg0BCyAJQgR8IQgLIAEgCDcDCCADQf8BcUEERwRAIAAgAzoACCAAQQA6AAQgAEEBNgIAIAAgB6ciATsACSAAIAdCGIg+AgwgAEELaiABQRB2OgAADAELIAAgAigCGDYAECAAQQA2AgAgACAErTcDCCAAQRRqIAJBHGotAAA6AAAgAEF/IAQgBEEBcWoiACAAIARJG603AxgLIAJBIGokAAvdBAIHfwF+IwBBEGsiAyQAAkAgAC8BDCICRQRAIAAoAgAgACgCBCABEKEDIQEMAQsgAyAB/QACAP0LAwACQAJ/IAApAggiCaciB0GAgIAIcUUEQCADKAIEDAELIAAoAgAgAygCACADKAIEIgEgACgCBCgCDBEAAA0BIAAgB0GAgID/eXFBsICAgAJyIgc2AgggA0IBNwMAIAIgAUH//wNxayIBQQAgASACTRshAkEACyEIAkAgAygCDCIFRQRADAELIAMoAgghAQNAAn8CQAJAAkACQCABLwEAQQFrDgIBAgALIAFBBGooAgAMAwsgAUECai8BACIEDQFBAQwCCyABQQhqKAIADAELIARB9v8XaiAEQZz/H2pxIARBmPg3aiAEQfCxH2pxc0ERdkEBagsgAUEMaiEBIAZqIQYgBUEBayIFDQALCwJAIAYgCGoiASACQf//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IAEoAiAiAiABKAIcIgFGDQELIAEgB2ohCCACIAFrIQMLIAAgAzYCBCAAIAg2AgAgBkEQaiQAC70DAgZ/AX4jAEHQAGsiAiQAIAJBIGogACAAKAIAKAIEEQEAIAIgAkEwaq1CgICAgLABhDcDKCACIAIpAyA3AjAgASgCACEFIAEoAgQhBiACQgE3AkRBASEDIAJBATYCPCACQaD4xwA2AjggAiACQShqNgJAAkAgBSAGIAJBOGoQwQMNACABLQAKQYABcUUEQEEAIQMMAQsgAkEYaiAAIAAoAgAoAgQRAQAgAkEQaiACKAIYIAIoAhwoAhgRAQAgAigCECIERQRAQQAhAwwBCyACQQhqIAQgAigCFCIHKAIYEQEAIAIoAgwhACACKAIIIQEgAiAHNgIsIAIgBDYCKCACQQE2AjwgAkGA8cEANgI4IAJCATcCRCACIAJBKGqtQoCAgICwAYQiCDcDMCACIAJBMGo2AkAgBSAGIAJBOGoQngkNAANAIAFFBEBBACEDDAILIAIgASAAKAIYEQEAIAIoAgQgAigCACACIAA2AiwgAiABNgIoIAJBATYCPCACQYDxwQA2AjggAkIBNwJEIAIgCDcDMCACIAJBMGo2AkAhASEAIAUgBiACQThqEJ4JRQ0ACwsgAkHQAGokACADC5QDACAAIARqIQACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQf8BcUEBaw4HBwABAgMEBQYLIABBfU0gAEECaiIBIANNcQ0HIAAgASADQbTZxwAQ6gcACyAAQX1NIABBAmoiASADTXENByAAIAEgA0HE2ccAEOoHAAsgAEF7TSAAQQRqIgEgA01xDQcgACABIANB1NnHABDqBwALIABBe00gAEEEaiIBIANNcQ0HIAAgASADQeTZxwAQ6gcACyAAQXtNIABBBGoiASADTXENByAAIAEgA0H02ccAEOoHAAsgAEF3TSAAQQhqIgEgA01xDQcgACABIANBhNrHABDqBwALIAAgA0kNCCAAIANBlNnHABCMBwALIAAgA0kNBiAAIANBpNnHABCMBwALIAAgAmouAACyDwsgACACai8AALMPCyAAIAJqKAAAsg8LIAAgAmooAACzDwsgACACaioAAA8LIAAgAmorAAC2DwsgACACai0AALNDAAB/Q5UPCyAAIAJqLAAA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AAs2AgAgBUEgaiQAC4QDAgJ/AXsCQAJAIARBBE8EQCACIARBBGtBA24iBSACIAVJGyIFQQNNDQEgAiAFQQFqIgIgAkEDcSICQQQgAhtrIgZrIQIgASAGaiAEIAZBfWxqIQQgAyAGQQNsaiEHA0AgAyAAIAH9XAAA/YkB/akBIgj9GwBBAnRqKAAANgAAIANBA2ogACAI/RsBQQJ0aigAADYAACADQQZqIAAgCP0bAkECdGooAAA2AAAgA0EJaiAAIAj9GwNBAnRqKAAANgAAIAFBBGohASADQQxqIQMgBkEEayIGDQALIQEgByEDDAELIAQNAQ8LA0AgAkUEQEEAQQBBpJrFABCMBwALIAMgACABLQAAQQJ0aigAADYAACADQQNqIQMgAkEBayECIAFBAWohASAEQQNrIgRBA0sNAAsLAkAgAgRAIARBA0cNASADIAAgAS0AAEECdGoiAC8AADsAACADQQJqIABBAmotAAA6AAAPC0EAQQBBhJrFABCMBwALQQBBAyAEQZSaxQAQ6gcAC4EDAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB/wFxQQFrDgcHAAECAwQFBgsgA0F9TSADQQJqIgAgAk1xDQcgAyAAIAJBtNjHABDqBwALIANBfU0gA0ECaiIAIAJNcQ0HIAMgACACQcTYxwAQ6gcACyADQXtNIANBBGoiACACTXENByADIAAgAkHU2McAEOoHAAsgA0F7TSADQQRqIgAgAk1xDQcgAyAAIAJB5NjHABDqBwALIANBe00gA0EEaiIAIAJNcQ0HIAMgACACQfTYxwAQ6gcACyADQXdNIANBCGoiACACTXENByADIAAgAkGE2ccAEOoHAAsgAiADTQ0HIAEgA2osAACyDwsgAiADSw0HIAMgAkGk2McAEIwHAAsgASADai4AALIPCyABIANqLwAAsw8LIAEgA2ooAACyDwsgASADaigAALMPCyABIANqKgAADwsgASADaisAALYPCyADIAJBlNjHABCMBwALIAEgA2otAACzC58DAgF+CH8CQAJAAkACQAJAIAAoAgQiBEUNACAAKAIMIggEQCAAKAIAIgJBCGohAyACKQMAQn+FQoCBgoSIkKDAgH+DIQEDQCABUARAA0AgAkGABGshAiADKQMAIANBCGohA0KAgYKEiJCgwIB/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jOrHABCMBwALQezpxwAQ/wcLAAucAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH/AXFBAWsOBwUAAQICAgMECyADQX1NIANBAmoiACACTXENBSADIAAgAkG02scAEOoHAAsgA0F9TSADQQJqIgAgAk1xDQUgAyAAIAJBxNrHABDqBwALIANBe00gA0EEaiIAIAJNcQ0FIAMgACACQdTaxwAQ6gcACyADQXdNIANBCGoiACACTXENBSADIAAgAkHk2scAEOoHAAsgAiADTQ0FIAEgA2osAAAPCyACIANLDQUgAyACQaTaxwAQjAcACyABIANqLgAADwsgASADai8AAA8LIAEgA2ooAAAPCyABIANqKwAA/AMPCyADIAJBlNrHABCMBwALIAEgA2otAAALzQIBBH8jAEEgayIEJAAgASgCDCEFAkAgAAJ/AkACQAJAIAEoAhQiAiABKAIQIgNJBEADQAJAIAIgBWotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgASACQQFqIgI2AhQgAiADRw0ACyADIQILIARBEGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAhQhASAEKAIQIQNBFBBxIgJFDQQgAkEDNgIADAELIARBCGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAgwhASAEKAIIIQNBFBBxIgJFDQMgAkEGNgIACyACIAM2AgwgAiABNgIQQQEMAQsgASACQQFqNgIUIARBGGogARCVAyAEKAIcIQIgBCgCGAs2AgAgACACNgIEIARBIGokAA8LAAu2AgEBfyMAQUBqIgMkACADIAI2AhAgAyABNgIMIAACfwJAAkACQAJAAkACQAJAIAJBA2sOBwAFAQIFBQMFCyABQZDQxwBBAxDbB0UEQCAAQQA6AAFBAAwHCyABQaD3xwBBAxDbBw0DIABBAToAAUEADAYLIAFBo/fHAEEFENsHDQMgAEECOgABQQAMBQsgAUGo98cAQQYQ2wcNAiAAQQM6AAFBAAwECyABQa73xwBBCRDbBw0BIABBBDoAAUEADAMLIAFBt/fHAEEDENsHRQ0BCyADQQE2AiQgA0HQ98cANgIgIANCATcCLCADIANBDGqtQoCAgIAghDcDOCADIANBOGo2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AEGUgICAeEYEQAJAIAACfyADKAIMIgQEQCACIAMoAggQqAMgAigCACIBQYCAgIB4Rw0CIAIoAgQMAQtBACACQQ9qQYTiwAAQ2wYLNgIEIABBgICAgHg2AgAMBAsgAigCBCEDIARBAUYNAiACQQE2AgAgBEEBa0H/////AHFBAWogAkHolcEAENsGIQQgAEGAgICAeDYCACAAIAQ2AgQgAUUNAyADIAFBARCiBwwDCyADIAJBD2pBhOLAABCVCCEBIABBgICAgHg2AgAgACABNgIEDAILQcvawABBLEH42sAAEKsHAAsgACACKAIINgIIIAAgAzYCBCAAIAE2AgALIAJBEGokAAupAgEFfyMAQSBrIgIkAEEBIQMCQCAAKAIAIgQoAgBBAUYEQCABKAIAIgBBw5jIAEEEIAEoAgQiBigCDCIFEQAADQEgBEEIaiEEAkAgAS0ACkGAAXFFBEAgAEG7s8UAQQEgBREAAA0DIAQgARDEBQ0DIAEoAgAhACABKAIEKAIMIQUMAQsgAEHbgcIAQQIgBREAAA0CIAJBAToADyACIAY2AgQgAiAANgIAIAJB4IHCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECAEIAJBEGoQxAUNAiACKAIQQdmBwgBBAiACKAIUKAIMEQAADQILIABB3o7IAEEBIAURAAAhAwwBCyABKAIAQb+YyABBBCABKAIEKAIMEQAAIQMLIAJBIGokACADC5ECAQN/IwBBQGoiASQAAkAgABA9IgINACAALQClU0UEQCABQQA2AjggAUEBNgIsIAFB5KPBADYCKCABQgQ3AjAgAUEoahCSByECDAELIAAoAmRBgICAgHhHBEBBACECIAAtAJgBIgNBCUYNASADQQVGBEAgACgCkAFFDQILIAFBAjYCLCABQZykwQA2AiggAUICNwI0IAEgAEGQAWqtQoCAgIAQhDcDICABIABBmAFqrUKAgICAsASENwMYIAEgAUEYajYCMCABQQxqIgAgAUEoahCxBiAAEI4HIQIMAQsgAUEANgI4IAFBATYCLCABQcCkwQA2AiggAUIENwIwIAFBKGoQkgchAgsgAUFAayQAIAILkgIBA38jAEFAaiIBJAACQCAAED4iAg0AIAAtAMVTRQRAIAFBADYCOCABQQE2AiwgAUHko8EANgIoIAFCBDcC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BEAgACgCtAIgA2ogASAC/AoAAAsgACACIANqNgK4AiAAELgBC1gBAX8gACgC2AIgACgC4AIiA2sgAkkEQCAAQdgCaiADIAJBAUEBEKQFIAAoAuACIQMLIAIEQCAAKALcAiADaiABIAL8CgAACyAAIAIgA2o2AuACIAAQsQELWAEBfyAAKAL4AiAAKAKAAyIDayACSQRAIABB+AJqIAMgAkEBQQEQpAUgACgCgAMhAwsgAgRAIAAoAvwCIANqIAEgAvwKAAALIAAgAiADajYCgAMgABCfAQtXAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEASAAEEELVwEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAEgABBAC1IBAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaCAAED4LUQEBfyAAKAJAIAAoAkgiA2sgAkkEQCAAQUBrIAMgAkEBQQEQpAUgACgCSCEDCyACBEAgACgCRCADaiABIAL8CgAACyAAIAIgA2o2AkggABA9C1ABA38CQAJAIAAEQCAAQQhrIgEgASgCACICQQFqIgM2AgAgA0UNASAAKAIAQf////8HTw0CIAAoAhggASACNgIAQQBHDwsQjgoLAAsQkAoAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcDAxAAgAEEBakHQwMQAIABBAmpB4MDEACACQQxqQfDAxAAQ7gUgAkEQaiQAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcioxwAgAEEBakHYqMcAIABBAmpB6KjHACACQQxqQfioxwAQ7gUgAkEQaiQAC08BAX8gACgCQCAAKAJIIgNrIAJJBEAgAEFAayADIAJBAUEBEKQFIAAoAkghAwsgAgRAIAAoAkQgA2ogASAC/AoAAAsgACACIANqNgJIQQALVQEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAFBAAtVAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEAUEAC1ABAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaEEAC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBqJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFB4J7BADYCACABIAIpAgg3AgQgASAANgIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBxJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC00AIwBBEGsiACQAIAEgAmwiAQR/IAFBwf///wdPBEBB2ObIAEErIABBD2pBtIPJAEHUg8kAEOAGAAtBwAAgARDBBAVBAAsgAEEQaiQAC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFBtLTHADYCACABIAIpAgg3AgQgASAAOgAcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFB7LTHADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1cBAn8jAEEgayIBJAACQCAAEJ8BIgINAEEAIQIgAC0AnAMNACABQQA2AhggAUEBNgIMIAFBxKPBADYCCCABQgQ3AhAgAUEIahCSByECCyABQSBqJAAgAgtXAQJ/IwBBIGsiASQAAkAgABCxASICDQBBACECIAAtAPwCDQAgAUEANgIYIAFBATYCDCABQcSjwQA2AgggAUIENwIQIAFBCGoQ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QeAAaiQADAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAmKAIAICYoAgQgJigCCCAmQRBqJAALTQEBfwJ/AkAgAigCBEUNACACKAIIIgNFDQAgAigCACADQQEgARC7AgwBCyABEHELIQIgACABNgIIIAAgAkEBIAIbNgIEIAAgAkU2AgALSwIBfwJ+IwBBEGsiASQAIAEgADUCiAEgADUChAF+QgRCAyAALQCTARsQ3QYgASkDCCECIAEpAwAhAyABQRBqJABCfyADIAJCAFIbC08AAkACQCACKAIQQQFGBEAgASgChAEgAigCFEsNAQsgAigCGEEBRw0BIAEoAogBIAIoAhxNDQELIABCAjcDCCAAQQM2AgAPCyAAQQY2AgALUAEBfyMAQRBrIgIkACACQQhqIAEgASgCACgCBBEBACACIAIoAgggAigCDCgCGBEBACACKAIEIQEgACACKAIANgIAIAAgATYCBCACQRBqJAALSAEBfyAAKAIAIAAoAggiA2sgAkkEQCAAIAMgAhD3BSAAKAIIIQMLIAIEQCAAKAIEIANqIAEgAvwKAAALIAAgAiADajYCCEEAC0gBAX8gACgCACAAKAIIIgNrIAJJBEAgACADIAIQ+AUgACgCCCEDCyACBEAgACgCBCADaiABIAL8CgAACyAAIAIgA2o2AghBAAtIAQF/IAAoAgAgACgCCCIDayACSQRAIAAgAyACEO8FIAAoAgghAwsgAgRAIAAoAgQgA2ogASAC/AoAAAsgACACIANqNgIIQQALRQEBfwJAIAFBAE4EfyABRQRAQQEhAkEAIQEMAgsgARBxIgINAUEBBSACCyABQcDowQAQkwkACyAAIAI2AgQgACABNgIAC08BAn8gACgCBCECIAAoAgAhAwJAIAAoAggiAC0AAEUNACADQbyLwwBBBCACKAIMEQAARQ0AQQEPCyAAIAFBCkY6AAAgAyABIAIoAhARAgALSgECfyAAIAAoAgQiAyACazYCBCAAIAAoAgAgAiADS3IiBDYCAEEBIQMgBAR/IAMFIAAoAggiACgCACABIAIgACgCBCgCDBEAAAsLSAEBfwJAIAFB4QBrIgFB/wFxQRlLBEBBACEBDAELIAFBAnRB/AdxIgIoAtSQSSEBIAIoAuyPSSECCyAAIAI2AgQgACABNgIAC0kCAn8BfSABKAIIIgNBgICAAXEhAiAAKgIAIQQgA0GAgICAAXFFBEAgASAEIAJBAEdBABD3Ag8LIAEgBCACQQBHIAEvAQ4QvQILRwECfyAALQANIgJBgAFNBEAgASgCACAAIAAtAAwiA2ogAiADayABKAIEKAIMEQAADwsgASgCACAAKAIAIAEoAgQoAhARAgALyQIAAkAgACACTQRAIAAgAU0gASACS3INASMAQTBrIgIkACACIAE2AgQgAiAANgIAIAJBAjYCDCACQfydwgA2AgggAkICNwIUIAIgAkEEaq1CgICAgBCENwMoIAIgAq1CgICAgBCENwMgIAIgAkEgajYCECACQQhqIAMQjQgACyMAQTBrIgEkACABIAI2AgQgASAANgIAIAFBAjYCDCABQaidwgA2AgggAUICNwIUIAEgAUEEaq1CgICAgBCENwMoIAEgAa1CgICAgBCENwMgIAEgAUEgajYCECABQQhqIAMQjQgACyMAQTBrIgAkACAAIAI2AgQgACABNgIAIABBAjYCDCAAQcidwgA2AgggAEICNwIUIAAgAEEEaq1CgICAgBCENwMoIAAgAK1CgICAgBCENwMgIAAgAEEgajYCECAAQQhqIAMQjQgAC0IBAX8jAEEgayIDJAAgA0EANgIQIANBATYCBCADQgQ3AgggAyABNgIcIAMgADYCGCADIANBGGo2AgAgAyACEI0IAAuJDQMHfwV+AXwgASgCCCIDQYCAgAFxIQIgACsDACEOIANBgICAgAFxRQRAIAJBAEchA0EAIQIjAEGAAWsiACQAIA69IQkCf0EDIA6ZRAAAAAAAAPB/YQ0AGkECIAlCgICAgICAgPj/AIMiCkKAgICAgICA+P8AUQ0AGiAJQv////////8HgyINQoCAgICAgIAIhCAJQgGGQv7///////8PgyAJQjSIp0H/D3EiAhsiC0IBgyEMIApQBEBBBCANUA0BGiACQbMIayECQgEhCiAMUAwBC0KAgICAgICAICALQgGGIAtCgICAgICAgAhRIgUbIQtCAkIBIAUbIQpBy3dBzHcgBRsgAmohAiAMUAshBSAAIAI7AXggACAKNwNwIABCATcDaCAAIAs3A2AgACAFOgB6An8CQAJAAkACQCAFQf8BcSICQQFNBEBB6rPFAEEBIAlCAFMiAhshBUHqs8UAQciBwgAg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AnQiACgCwKFJIAAoAqShSSABKAIEKAIMEQAAC+0DAQp/IwBBEGsiAyQAIwBBoANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIEIAQoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAUEIaiAAQQRqQQAQdgJ/IAEoAggiCUECRgRAIAEoAgwhAiABQQA2ApgDIAFCgICAgBA3ApADIAFBnJPBADYC0AEgAUKggICADjcC1AEgASABQZADajYCzAEgAiABQcwBahCvBA0FIAEoApADIQUgASgClAMiCCABKAKYAxDsCCEHIAUEQCAIQQRrKAIAIgZBeHEiCkEEQQggBkEDcSIGGyAFakkNByAGQQAgCiAFQSdqSxsNCCAIEKICCyACIAIoAgAoAgARAwBBAAwBCyABQcwBaiICIAFBCGpBxAH8CgAAIAIQ0QELIQIgACAAKAIAQQFrNgIAIAQgBCgCAEEBayIANgIAIABFBEAgBBDkBgsgAyAHNgIEIAMgAjYCACADIAlBAkY2AgggAUGgA2okAAwGCxCOCgsACxCQCgALQaCexgBBNyABQZ8DakG0k8EAQdiexgAQ4AYAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgAygCACADKAIEIAMoAgggA0EQaiQAC5oFAQp/IwBBEGsiAyQAIwBBsANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIFIAUoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAC0AXCICQQJHBEAgAUEgaiAAQdgAaigCADYCACABQRhqIABB0ABqKQIANwMAIAFBBmogAEHfAGotAAA6AAAgASAA/QACQP0LAwggASAALwBdOwEECyABQfgBaiABQSBqKAIANgIAIAFB8AFqIAFBGGopAwA3AwAgAUH/AWogAUEGai0AADoAACABIAH9AAMI/QsD4AEgASACOgD8ASABIAEvAQQ7AP0BIAFBJGogAEEEakEAIAFB4AFqIgQQcgJ/IAEoAiQiCUECRgRAIAEoAighAiABQQA2AqgDIAFCgICAgBA3AqADIAFBnJPBADYC5AEgAUKggICADjcC6AEgASABQaADajYC4AEgAiAEEK8EDQUgASgCoAMhBCAB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CxCQCgALLAAgASgCACAAKAIALQAAaEECdCIAKAL0h0kgACgC4IdJIAEoAgQoAgwRAAALLAAgASgCACAAKAIALQAAaEECdCIAKAKEjkkgACgC8I1JIAEoAgQoAgwRAAALLgAgAEEcakEAIAEpAgBC2v2W/+no6PrBAIUgASkCCELW+4aRyMDiv/4AhYRQGwssACAAQRxqQQAgASkCAELtwsSbx9P/rT+FIAEpAghC/J7N1v6Dwrh+hYRQGwsuACAAQRxqQQAgASkCAELtuq22zYXU9eMAhSABKQIIQviCmb2V7sbFuX+FhFAbCywAIABBHGpBACABKQIAQvep0+7yobOVe4UgASkCCEKWuaPa9sSH1CeFhFAbCysAIAEoAgAgACgCAC0AAEECdCIAKALohkkgACgCqIZJIAEoAgQoAgwRAAALKQAgASgCACAALQAAaEECdCIAKAKciEkgACgCiIhJIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAqiJSSAAKALoiEkgASgCBCgCDBEAAAslACAARQRAQa35xABBMhCPCgALIAAgAiADIAQgBSABKAIQEQ8ACysAIAEoAgAgACgCAC0AAEECdCIAKALUjUkgACgCuI1JIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAtiOSSAAKAKYjkkgASgCBCgCDBEAAAsrACABKAIAIAAoAgAtAABBAnQiACgC0JFJIAAoAryRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQp6ptofpq8f75ACFIAEpAghChJXY5rmb/qdphYRQGwsrACABKAIAIAAoAgAtAABBAnQiACgC+JFJIAAoAuSRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQvXXvMnIzNazOoUgASkCCEL+28ub8+W5xvUAhYRQGwsuACAAQSBqQQAgASkCAELhypSvjYKC2fIAhSABKQIIQqbKhrK+ypOwu3+FhFAbCy0AIABBHGpBACABKQIAQpLXooDhkqzi9QCFIAEpAghClJ2A4Jq0sLALhYRQGwslACAAQYiWwQA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAK87EEgACgClOxBIAEoAgQoAgwRAAALKAAgASgCACAALQAAQQJ0IgAoAtDtQSAAKAKc7UEgASgCBCgCDBEAAAshACAAQcDOxAA2AgQgACABQQRqQQAgAS0AAEEkRhs2AgALKAAgASgCACAALQAAQQJ0IgAoAsyISSAAKAKwiEkgASgCBCgCDBEAAAsoACABKAIAIAAtAABBAnQiACgCsIpJIAAoAuiJSSABKAIEKAIMEQAACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQsACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWUACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWcACygAIAEoAgAgAC0AAEECdCIAKALwmEkgACgCqJhJIAEoAgQoAgwRAAALIgAgASgCKEECRwRAIAAgASkC3AI3AwAPC0GsmMcAEN0JAAslACAAQailxwA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAKEo0kgACgC3KFJIAEoAgQoAgwRAAALJwAgACgCAC0AAEUEQCABQfKzxQBBBRCXAw8LIAFB97PFAEEEEJcDCyQAIAAtAABFBEAgAUHys8UAQQUQlwMPCyABQfezxQBBBBCXAwshACAARQRAQa35xABBMhCPCgALIAAgAiADIAEoAhARBQALIQAgAEUEQEGt+cQAQTIQjwoACyAAIAIgAyABKAIQEQAACyEAIAEoAgAgAC0AAEECdCgCiOxBQQEgASgCBCgCDBEAAAsiACABIAAtAABBAnQiACgCiIZJIAAoAuiFSSACKAIMEQAACx4AIABBwM7EADYCBCAAQQAgAUEEaiABLQAAGzYCAAscACABIAAoAgAiAEEEaigCACAAQQhqKAIAEJcDCx8AIABFBEBBrfnEAEEyEI8KAAsgACACIAEoAhARAgALthQBEn8Q2gQiCyABJgECfyAAIQ0Q2gQiEiACJgEgCyETIwBBQGoiByQAIAsQuAohAEHUtMkAKAIARQRAAkBBkLXJACgCACELQYy1yQAoAgAhBEGMtckAQoCAgIDAADcCAEGEtckAKAIAIQhBhLXJAEIE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ACgCACEHIA1BACADEOEIIgAQuAohCSAEIAM2AhggBCAJNgIMIAMgCUcNASAAIAcgAxDgCSAAQYQISQ0CIAAQmwcMAgtBACADIABB3OvAABDqBwALDAELIAhBhAhPBEAgCBCbBwtBrLTJAEGstMkAKAIAQQFqNgIAIA1BhAhPBEAgDRCbBwsgDkGECE8EQCAOEJsHCyAEQUBrJAAgAwwBCyAEQQA2AihBACAEQQxqIARBGGogBEEoakHg+cQAEPUHAAsLHAAgAEEEahDqAiAAKAIkIgAgACgCACgCABEDAAscACAAKAIAIgAoAgAgASAAQQRqKAIAKAIQEQIACxwAIAAoAgAiACgCACABIABBBGooAgAoAgwRAgALFAAgACAAIAEgACABXRsgASABXBsLFAAgASABIAAgACABXRsgACAAXBsLGwEBbyAAJQEgASACEAAhAxDaBCIAIAMmASAACxsBAW8gACUBIAElARAJIQIQ2gQiACACJgEgAAscAQFvIAAlASABJQEgARCbByACJQEgAhCbBxALCx8AQYi7yQAtAABFBEBBiLvJAEEBOgAACyAAQQE2AgALHQAgASAALQAAQQJ0IgAoAqSESSAAKAKQhEkQlwMLHAAgASgCACAAKAIAIAAoAgQgASgCBCgCDBEAAAsZACABIAAoAgAiACgCACAAQQRqKAIAEJcDCxkBAW8gACUBIAEQDCECENoEIgAgAiYBIAALFwAgACgCACABIAAoAgRBDGooAgARAgALFQAgACgCACIAQYQITwRAIAAQmwcLCxcBAW8gACABEA8hAhDaBCIAIAImASAACxcBAW8gACABECwhAhDaBCIAIAImASAACxYAIAEgACgCACIAKAIAIAAoAgQQlwMLGQAgASgCAEGQl8cAQRMgASgCBCgCDBEAAAsZACABKAIAQdmXxwBBFyABKAIEKAIMEQAACxkAIAEoAgBB6ZLGAEEIIAEoAgQoAgwRAAALGQAgASgCAEGjl8cAQRAgASgCBCgCDBEAAAsZACABKAIAQaTlwABBFCABKAIEKAIMEQAACxkAIAEoAgBB5ZLGAEEEIAEoAgQoAgwRAAALGQAgASgCAEGilscAQQwgASgCBCgCDBEAAAsZACABKAIAQYWQxgBBAyABKAIEKAIMEQAACxkAIAEoAgBB8JfHAEEUIAEoAgQoAgwR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AgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOQGCwwDCxCOCgsACxCQCgALC4gBAQN/ENoEIgMgASYBAkACQAJAIAAEQCAAQQhrIgIgAigCAEEBaiIENgIAIARFDQEgACgCAA0CIABBfzYCACAAQQhqKAIAIABBDGooAgAgAxCtAyAAIAAoAgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOMGCwwDCxCOCgsACxCQCgALCxEAIAEgACgCACAAKAIEEJcDCxMAIABBKDYCBCAAQZifxwA2AgALEQAgASAAKAIEIAAoAggQlwMLEwAgAEHomsEANgIEIAAgATYCAAsTACAAQaSbwQA2AgQgACABNgIACxMAIABB4JvBADYCBCAAIAE2AgALEwAgAEGMnMEANgIEIAAgATYCAAsTACAAQcicwQA2AgQgACABNgIACxMAIABBhJ3BADYCBCAAIAE2AgALEwAgAEHAncEANgIEIAAgATYCAAsTACAAQfydwQA2AgQgACABNgIACxEAIAAoAgQgACgCCCABELUCCxEAIAEoAgAgASgCBCAAEMEDCxwAIABBmLvP7AM2AgggAELQ5+byk+vFmz83AgALEQAgACgCACAAKAIEIAEQtQILEwAgAEHMs8cANgIEIAAgATYCAAsTACAAQdyxxwA2AgQgACABNgIACxMAIABBiLTHADYCBCAAIAE2AgALEwAgAEHUsscANgIEIAAgATYCAAsTACAAQZiyxwA2AgQgACABNgIACxMAIABBkLPHADYCBCAAIAE2AgALEwAgAEG8jMgANgIEIAAgATYCAAsWAEG4u8kAIAA2AgBBtLvJAEEBOgAACxEBAX8Q2gQiASAAJQEmASABCw4AIAAlASABJQFBABAWCw8AQayewgBBKyAAEOsHAAtpAQF/IwBBMGsiAyQAIAMgADYCBCADIAE2AgAgA0EDNgIMIANB+JvCADYCCCADQgI3AhQgAyADQQRqrUKAgICAEIQ3AyggAyADrUKAgICAEIQ3AyAgAyADQSBqNgIQIANBCGogAhCNCAALEgAgACABLQDoBC0A+J1JOgAACwwAIAAlASABIAIQAgsMACAAIAEgAiUBEAMLDQAgACUBIAElARAIGgsMACAAIAEgAiUBEBkLEQAgAEGohsEA/QACAP0LAgALEQAgAEG4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IAEgAEGAgIB8IApBAWp1IAdxvpMiAJK8BSAJC0GAgH5xviICQwByMT+UIgUgAkOMvr81lCABIAIgAJOTQxhyMT+UkiICkiIAIAAgACAAIACUIgEgASABIAEgAUNMuzEzlEMO6t21kpRDVbOKOJKUQ2ELNruSlEOrqio+kpSTIgGUIAFDAAAAwJKVIAIgACAFk5MiASAAIAGUkpOTQwAAgD+SIgC8IAhBF3RqIglBgICABE4EQCAJvgwBCyAAIAgQsAYLlCECCyACDAMLIAVDYEKiDZRDYEKiDZQMAgsgBUNgQqINlENgQqINlAwBCyAFQ8rySXGUQ8rySXGUCwsIACAAJQEQAQsIACAAJQEQCgsIACAAJQEQFQsIACAAJQEQFwsIACAAJQEQGwsIACAALQDoBAsHABAqEIUICwQAQQALBABBAQsCAAsLtK4JiAEAQYCAwAAL8WFpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdAAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvc3B6LnJzAGxpYnJhcnkvY29yZS9zcmMvc3RyL2xvc3N5LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9wbHkucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL2xlZ2FjeS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL2l0ZXIvYWRhcHRlcnMvc3RlcF9ieS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvdHdvd2F5LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvaW5mbGF0ZS93aW5kb3cucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy95dXYucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZmx0MmRlYy9zdHJhdGVneS9ncmlzdS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc2hhcmVkL3NtYWxsc29ydC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL3F1aWNrc29ydC5ycwBzcGFyay13b3JrZXItcnMvc3JjL3NvcnQucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvYm94ZWQvY29udmVydC5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9mbXQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9mbXQucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZGl5X2Zsb2F0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy90c3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2tzcGxhdC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvYW50aXNwbGF0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9nc3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2NzcGxhdC5ycwBzcGFyay13b3JrZXItcnMvc3JjL2V4dF9zcGxhdHMucnMAc3Bhcmstd29ya2VyLXJzL3NyYy9wYWNrZWRfc3BsYXRzLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvZmRlZmxhdGUtMC4zLjcvc3JjL2RlY29tcHJlc3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzcy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2NvcmUtMS4wLjIyOC9zcmMvZGUvaW1wbHMucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL3NvZ3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlL2luZnRyZWVzLnJzAGxpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9tdXRleC9ub190aHJlYWRzLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9vbmNlL25vX3RocmVhZHMucnMAbGlicmFyeS9hbGxvYy9zcmMvc3RyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaXRlci90cmFpdHMvaXRlcmF0b3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9lcnJvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZXJyb3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2xvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9nZW5lcmljL3BhY2tlZHBhaXIucnMAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9tZW1jaHIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb29wX2ZpbHRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2luZmxhdGUvd3JpdGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaXRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2luZGV4bWFwLTIuMTMuMC9zcmMvaW5uZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9vdXRwdXRfYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci91bmZpbHRlcmluZ19idWZmZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9pbWFnZXMvYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci9yZWFkX2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy92cDhfYXJpdGhtZXRpY19kZWNvZGVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvY29kZWNzL3dlYnAvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL3JlYWQvbWFnaWNfZmluZGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvY21wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9leHRyYV9maWVsZHMvZXh0ZW5kZWRfdGltZXN0YW1wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvbWV0YWRhdGEvY2ljcC5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vc3RkaW8ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2NvbW1vbi5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL29wcy9mdW5jdGlvbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL3N0cmF0ZWd5L2RyYWdvbi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ZkZWZsYXRlLTAuMy43L3NyYy9odWZmbWFuLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvaHVmZm1hbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9iaWdudW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzc190cmFuc2Zvcm0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3RyYW5zZm9ybS5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vYnVmZmVyZWQvbGluZXdyaXRlcnNoaW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3N0cmVhbS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvdGhyZWFkL2xvY2FsLnJzAGxpYnJhcnkvc3RkL3NyYy9zeW5jL2xhenlfbG9jay5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3luYy9yZWVudHJhbnRfbG9jay5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvc3luYy9vbmNlX2xvY2sucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2RlY3MvcG5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwBsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaW8vYm9ycm93ZWRfYnVmLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTcvc3JjL2V4dGVybnJlZi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvdHJhbnNmb3JtL3BhbGV0dGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvYWxsb2NhdGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9jb3JlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvaW8vaW1hZ2VfcmVhZGVyX3R5cGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9zdGFibGUucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3ByaW50YWJsZS5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvY2h1bmtfdHJlZS5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xvZF90cmVlLnJzAHNwYXJrLWxpYi9zcmMvc3BsYXRfZW5jb2RlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtMS4wLjIyOC9zcmMvcHJpdmF0ZS9kZS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZGUucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL3N5bmMvcG9pc29uL29uY2UucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvc2xpY2UucnMAbGlicmFyeS9zdGQvc3JjL2JhY2t0cmFjZS5ycwAvcnVzdC9kZXBzL2hhc2hicm93bi0wLjE1LjUvc3JjL3Jhdy9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9oYXNoYnJvd24tMC4xNi4xL3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvcGFja2VkcGFpci9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL21vZC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy9iaW5hcnlfaGVhcC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL2lvL21vZC5ycwBsaWJyYXJ5L3N0ZC9zcmMvLi4vLi4vYmFja3RyYWNlL3NyYy9zeW1ib2xpemUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWluaXpfb3hpZGUtMC44Ljkvc3JjL2luZmxhdGUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAbGlicmFyeS9zdGQvc3JjL3RocmVhZC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvdmVjL21vZC5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL21vZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvdGlueV9sb2QucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2JoYXR0X2xvZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2NyYzMyL2JyYWlkLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3ZlYy9zcGVjX2Zyb21faXRlcl9uZXN0ZWQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9leHRlbmRlZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvcmFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfanNvbi0xLjAuMTQ1L3NyYy9yZWFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9yZWFkLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjEwL3NyYy9kbG1hbGxvYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvc3BlYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvemxpYi5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NvbnNvbGVfZXJyb3JfcGFuaWNfaG9vay0wLjEuNy9zcmMvbGliLnJzAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI2L3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZS13YXNtLWJpbmRnZW4tMC42LjUvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2pzLXN5cy0wLjMuOTQvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NtYWxsdmVjLTEuMTUuMS9zcmMvbGliLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvdGV4dF9tZXRhZGF0YS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3VuaWNvZGUvdW5pY29kZV9kYXRhLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvdnA4LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvYWRhbTcucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL2NwNDM3LnJzAHNwYXJrLWxpYi9zcmMvc3ltbWF0My5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvY3JjMzIucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL3YwLnJzAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGludmFsaWQgd2luZG93IHNpemUAcmVwZWF0ZWQgY2FsbCB3aXRoIGJhZCBzdGF0ZQBpbnZhbGlkIGJsb2NrIHR5cGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABJSSoA7AUQACQAAABEAwAADQAAAOwFEAAkAAAARQMAAA0AAADsBRAAJAAAAEYDAAANAAAA7AUQACQAAABDAwAA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dWN0IFJhZE1ldGEgd2l0aCAxMSBlbGVtZW50cwAAAFY+EAAfAAAAAAAAAAgAAAAEAAAAqgAAAGZpbGVzbWluc21heHNzaGFwZXN0cnVjdCBNZWFucyB3aXRoIDQgZWxlbWVudHMAAKI+EAAcAAAAZW5jb2RpbmdzdHJ1Y3QgUXVhdHMgd2l0aCAyIGVsZW1lbnRz0D4QABwAAABzdHJ1Y3QgU2gwVjEgd2l0aCAzIGVsZW1lbnRz9D4QABwAAABjb2RlYm9va3N0cnVjdCBTaDBWMiB3aXRoIDIgZWxlbWVudHMgPxAAHAAAAHN0cnVjdCBTaE5WMSB3aXRoIDQgZWxlbWVudHNEPxAAHAAAAGJhbmRzc3RydWN0IFNoTlYyIHdpdGggMyBlbGVtZW50cwAAAG0/EAAcAAAAc3RydWN0IE1lYW5zVjEgd2l0aCA0IGVsZW1lbnRzAACUPxAAHgAAAG1lYW5zc2NhbGVzcXVhdHNzaDBzaE5zdHJ1Y3QgUGNTb2dzVjEgd2l0aCA1IGVsZW1lbnRzAAAA0j8QAB8AAABzdHJ1Y3QgUGNTb2dzVjIgd2l0aCA3IGVsZW1lbnRzAPw/EAAfAAAAc3RydWN0IFNjYWxlc1YxIHdpdGggMyBlbGVtZW50cwAkQBAAHwAAAHN0cnVjdCBTY2FsZXNWMiB3aXRoIDIgZWxlbWVudHMATEAQAB8AAABiYXNlcGF5bG9hZEJ5dGVzcHJvcGVydGllc3N0cnVjdCBSYWRDaHVua01ldGEgd2l0aCA4IGVsZW1lbnRzAAAAjkAQACMAAABnc3BsYXQAALxAEAAGAAAAb2Zmc2V0ZmlsZW5hbWVzdHJ1Y3QgUmFkQ2h1bmtSYW5nZSB3aXRoIDUgZWxlbWVudHMAANpAEAAkAAAAY29tcHJlc3Npb25taW5tYXhzdHJ1Y3QgUmFkQ2h1bmtQcm9wZXJ0eSB3aXRoIDcgZWxlbWVudHMZQRAAJwAAAGEgc2VxdWVuY2UAANsGEABmAAAAjQQAABwAAABzdHJ1Y3QgU2V0U3BsYXRFbmNvZGluZyB3aXRoIDggZWxlbWVudHMAZEEQACcAAABjZW50ZXJhbHBoYXJnYm9yaWVudGF0aW9uY2hpbGRfY291bnRjaGlsZF9zdGFydHNoMV9jb2Rlc2gyX2NvZGVzaDNfY29kZXNoX2xhYmVsAJRBEAAGAAAAmkEQAAUAAACfQRAAAwAAAME/EAAGAAAAokEQAAsAAAD4MxAAAwAAAPszEAADAAAADDYQAAMAAACtQRAACwAAALhBEAALAAAAw0EQAAgAAADLQRAACAAAANNBEAAIAAAA20EQAAgAAABmMTZmMzJfbGVieXRlc2YxNl9sZWJ5dGVzcjhyOF9kZWx0YXM4czhfZGVsdGFsbl8wcjhsbl9mMTZvY3Q4OHI4AogRAAMAAABUQhAAAwAAAFdCEAALAAAAYkIQAAsAAABtQhAAAgAAAG9CEAAIAAAAd0IQAAIAAAB5QhAACAAAAIFCEAAGAAAAh0IQAAYAAACNQhAABwAAAAdZEQADAAAABYgRAAMAQYSGwQALBQEAAACrAEGUhsEAC50NAQAAAKwAAABnegAAHEMQAAIAAACGV40hJKv8MZsV7Rqk/AqGIZHXkOAZBnMEwoE6QC5Aw02j52ZMofSR0h1OTNnv/LcqkTKWy/Ri3BOYR0yo5sJKZQUUCIJCw8J7T1YBdnE/LlNbgd6v+j3VsO5PRvEo+g1lOjkDtdomfifhYlnYlyaf521Pxr7v5E2F7c0GCuf+P/3rIsETwTMoA+inBzqud1sRrxXgIBVknwBi1PJVeIx7Aisj8rJUn2yy7loDmsKEpY45WsRC9+oSngcEldKewYpCm/q8AgqVZ7gNAZD9VtBrMivi9KBl2ERiQe5Ii0cFQ/5K+mCCgfdMVeJBLcgvjfuPC2mlqkI9RC+bfJ3D8Sr9x01mLnzmSbxuYaNTlztp3pcpSPbzROrxa62j6ZmoBdH97HYrR635JQTfXlV6a8Ovn+m9tKIApq4QCN4uyBE87DPEa42psDZg7WP62RG4/bUIrvZnfsvyWSH/wjd06x+Py+lMtpuEl8Ltn4DSZSE7nX4v+OWiItk2yi53ifdj62Zde1sqPTuH9PUU2hK7pnF7Y1zUyuJJAK68UxeBqShYoeSyUAtPu+nwuxBgZKitiEsgHhagE5RBXb1l1/jQzzzaT25jZSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAADoRBAAKgAAAL8aEABTAAAAnAAAADIAAABzFBAATwAAAC8CAAAmAAAATw8QAGYAAACkAAAAKgAAAE8PEABmAAAABAEAACUAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAABcRRAAsAAAALEAAACyAAAAsAAAALMAAABBRVMgZW5jcnlwdGVkIGZpbGVzIGNhbm5vdCBiZSBkZWNyeXB0ZWQgd2l0aG91dCB0aGUgYWVzLWNyeXB0byBmZWF0dXJlLlZhcmlhYmxlLWxlbmd0aCBmaWVsZCBleHRlbmRzIGJleW9uZCBmaWxlIGJvdW5kYXJ5QUVTIGVuY3J5cHRpb24gd2l0aG91dCBBRVMgZXh0cmEgZGF0YSBmaWVsZEFyY2hpdmUgaGVhZGVyIGlzIHRvbyBsYXJnZQDOIRAAWQAAAOYCAAAZAAAAziEQAFkAAADqAgAAEwAAAE92ZXJzaXplZCBjZW50cmFsIGRpcmVjdG9yeVN1cHBvcnQgZm9yIG11bHRpLWRpc2sgZmlsZXMgaXMgbm90IGltcGxlbWVudGVkemlwOjp0eXBlczo6WmlwQ2VudHJhbEVudHJ5QmxvY2sAAFBLAQJJbnZhbGlkIENlbnRyYWwgRGlyZWN0b3J5IGhlYWRlcnppcDo6c3BlYzo6WmlwMzJDREVCbG9ja1BLBQZJbnZhbGlkIGRpZ2l0YWwgc2lnbmF0dXJlIGhlYWRlcgAAAIAkRxAAIAAAAHppcDo6c3BlYzo6WmlwNjRDREVMb2NhdG9yQmxvY2tJbnZhbGlkIHppcDY0IGxvY2F0b3IgZGlnaXRhbCBzaWduYXR1cmUgaGVhZGVyAAAAAAAAgG9HEAAuAAAAemlwOjpzcGVjOjpaaXA2NENERUJsb2NrUEsGBkludmFsaWQgRU9DRDY0OiBpbmNvbnNpc3RlbnQgbGVuZ3RoSW52YWxpZCBFT0NENjQ6IGluY29uc2lzdGVuY3kgd2l0aCBMb2NhdG9yIGRhdGFJbnZhbGlkIEVPQ0Q2NDogaW5jb25zaXN0ZW50IG51bWJlciBvZiBmaWxlc0NvdWxkIG5vdCBmaW5kIEVPQ0Q2NE11bHRpLWRpc2sgWklQIGZpbGVzIGFyZSBub3Qgc3VwcG9ydGVkSW52YWxpZCBFT0NENjQgTG9jYXRvciBDRCBvZmZzZXRObyBDREZIIGZvdW5kSW52YWxpZCBDREZIIG9mZnNldCBpbiBFT0NESW52YWxpZCBFT0NEIGNvbW1lbnQgbGVuZ3RoQ291bGQg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AIgCAACvAQAAsAEAALEBAACKAgAAsgEAAIsCAACzAQAAtAEAALUBAAC2AQAAtwEAAJICAAC4AQAAuQEAALwBAAC9AQAAxAEAAMYBAADFAQAAxgEAAMcBAADJAQAAyAEAAMkBAADKAQAAzAEAAMsBAADMAQAAzQEAAM4BAADPAQAA0AEAANEBAADSAQAA0wEAANQBAADVAQAA1gEAANcBAADYAQAA2QEAANoBAADbAQAA3AEAAN4BAADfAQAA4AEAAOEBAADiAQAA4wEAAOQBAADlAQAA5gEAAOcBAADoAQAA6QEAAOoBAADrAQAA7AEAAO0BAADuAQAA7wEAAPEBAADzAQAA8gEAAPMBAAD0AQAA9QEAAPYBAACVAQAA9wEAAL8BAAD4AQAA+QEAAPoBAAD7AQAA/AEAAP0BAAD+AQAA/wEAAAACAAABAgAAAgIAAAMCAAAEAgAABQIAAAYCAAAHAgAACAIAAAkCAAAKAgAACwIAAAwCAAANAgAADgIAAA8CAAAQAgAAEQIAABICAAATAgAAFAIAABUCAAAWAgAAFwIAABgCAAAZAgAAGgIAABsCAAAcAgAAHQIAAB4CAAAfAgAAIAIAAJ4BAAAiAgAAIwIAACQCAAAlAgAAJgIAACcCAAAoAgAAKQIAACoCAAArAgAALAIAAC0CAAAuAgAALwIAADACAAAxAgAAMgIAADMCAAA6AgAAZSwAADsCAAA8AgAAPQIAAJoBAAA+AgAAZiwAAEECAABCAgAAQwIAAIABAABEAgAAiQIAAEUCAACMAgAARgIAAEcCAABIAgAASQIAAEoCAABLAgAATAIAAE0CAABOAgAATwIAAHADAABxAwAAcgMAAHMDAAB2AwAAdwMAAH8DAADzAwAAhgMAAKwDAACIAwAArQMAAIkDAACuAwAAigMAAK8DAACMAwAAzAMAAI4DAADNAwAAjwMAAM4DAACRAwAAsQMAAJIDAACyAwAAkwMAALMDAACUAwAAtAMAAJUDAAC1AwAAlgMAALYDAACXAwAAtwMAAJgDAAC4AwAAmQMAALkDAACaAwAAugMAAJsDAAC7AwAAnAMAALwDAACdAwAAvQMAAJ4DAAC+AwAAnwMAAL8DAACgAwAAwAMAAKEDAADBAwAAowMAAMMDAACkAwAAxAMAAKUDAADFAwAApgMAAMYDAACnAwAAxwMAAKgDAADIAwAAqQMAAMkDAACqAwAAygMAAKsDAADLAwAAzwMAANcDAADYAwAA2QMAANoDAADbAwAA3AMAAN0DAADeAwAA3wMAAOADAADhAwAA4gMAAOMDAADkAwAA5QMAAOYDAADnAwAA6AMAAOkDAADqAwAA6wMAAOwDAADtAwAA7gMAAO8DAAD0AwAAuAMAAPcDAAD4AwAA+QMAAPIDAAD6AwAA+wMAAP0DAAB7AwAA/gMAAHwDAAD/AwAAfQMAAAAEAABQBAAAAQQAAFEEAAACBAAAUgQAAAMEAABTBAAABAQAAFQEAAAFBAAAVQQAAAYEAABWBAAABwQAAFcEAAAIBAAAWAQAAAkEAABZBAAACgQAAFoEAAALBAAAWwQAAAwEAABcBAAADQQAAF0EAAAOBAAAXgQAAA8EAABfBAAAEAQAADAEAAARBAAAMQQAABIEAAAyBAAAEwQAADMEAAAUBAAANAQAABUEAAA1BAAAFgQAADYEAAAXBAAANwQAABgEAAA4BAAAGQQAADkEAAAaBAAAOgQAABsEAAA7BAAAHAQAADwEAAAdBAAAPQQAAB4EAAA+BAAAHwQAAD8EAAAgBAAAQAQAACEEAABBBAAAIgQAAEIEAAAjBAAAQwQAACQEAABEBAAAJQQAAEUEAAAmBAAARgQAACcEAABHBAAAKAQAAEgEAAApBAAASQQAACoEAABKBAAAKwQAAEsEAAAsBAAATAQAAC0EAABNBAAALgQAAE4EAAAvBAAATwQAAGAEAABhBAAAYgQAAGMEAABkBAAAZQQAAGYEAABnBAAAaAQAAGkEAABqBAAAawQAAGwEAABtBAAAbgQAAG8EAABwBAAAcQQAAHIEAABzBAAAdAQAAHUEAAB2BAAAdwQAAHgEAAB5BAAAegQAAHsEAAB8BAAAfQQAAH4EAAB/BAAAgAQAAIEEAACKBAAAiwQAAIwEAACNBAAAjgQAAI8EAACQBAAAkQQAAJIEAACTBAAAlAQAAJUEAACWBAAAlwQAAJgEAACZBAAAmgQAAJsEAACcBAAAnQQAAJ4EAACfBAAAoAQAAKEEAACiBAAAowQAAKQEAAClBAAApgQAAKcEAACoBAAAqQQAAKoEAACrBAAArAQAAK0EAACuBAAArwQAALAEAACxBAAAsgQAALMEAAC0BAAAtQQAALYEAAC3BAAAuAQAALkEAAC6BAAAuwQAALwEAAC9BAAAvgQAAL8EAADABAAAzwQAAMEEAADCBAAAwwQAAMQEAADFBAAAxgQAAMcEAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAADOBAAA0AQAANEEAADSBAAA0wQAANQEAADVBAAA1gQAANcEAADYBAAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAA4gQAAOMEAADkBAAA5QQAAOYEAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAO8EAADwBAAA8QQAAPIEAADzBAAA9AQAAPUEAAD2BAAA9wQAAPgEAAD5BAAA+gQAAPsEAAD8BAAA/QQAAP4EAAD/BAAAAAUAAAEFAAACBQAAAwUAAAQFAAAFBQAABgUAAAcFAAAIBQAACQUAAAoFAAALBQAADAUAAA0FAAAOBQAADwUAABAFAAARBQAAEgUAABMFAAAUBQAAFQUAABYFAAAXBQAAGAUAABkFAAAaBQAAGwUAABwFAAAdBQAAHgUAAB8FAAAgBQAAIQUAACIFAAAjBQAAJAUAACUFAAAmBQAAJwUAACgFAAApBQAAKgUAACsFAAAsBQAALQUAAC4FAAAvBQAAMQUAAGEFAAAyBQAAYgUAADMFAABjBQAANAUAAGQFAAA1BQAAZQUAADYFAABmBQAANwUAAGcFAAA4BQAAaAUAADkFAABpBQAAOgUAAGoFAAA7BQAAawUAADwFAABsBQAAPQUAAG0FAAA+BQAAbgUAAD8FAABvBQAAQAUAAHAFAABBBQAAcQUAAEIFAAByBQAAQwUAAHMFAABEBQAAdAUAAEUFAAB1BQAARgUAAHYFAABHBQAAdwUAAEgFAAB4BQAASQUAAHkFAABKBQAAegUAAEsFAAB7BQAATAUAAHwFAABNBQAAfQUAAE4FAAB+BQAATwUAAH8FAABQBQAAgAUAAFEFAACBBQAAUgUAAIIFAABTBQAAgwUAAFQFAACEBQAAVQUAAIUFAABWBQAAhgUAAKAQAAAALQAAoRAAAAEtAACiEAAAAi0AAKMQAAADLQAApBAAAAQtAAClEAAABS0AAKYQAAAGLQAApxAAAActAACoEAAACC0AAKkQAAAJLQAAqhAAAAotAACrEAAACy0AAKwQAAAMLQAArRAAAA0tAACuEAAADi0AAK8QAAAPLQAAsBAAABAtAACxEAAAES0AALIQAAASLQAAsxAAABMtAAC0EAAAFC0AALUQAAAVLQAAthAAABYtAAC3EAAAFy0AALgQAAAYLQAAuRAAABktAAC6EAAAGi0AALsQAAAbLQAAvBAAABwtAAC9EAAAHS0AAL4QAAAeLQAAvxAAAB8tAADAEAAAIC0AAMEQAAAhLQAAwhAAACItAADDEAAAIy0AAMQQAAAkLQAAxRAAACUtAADHEAAAJy0AAM0QAAAtLQAAoBMAAHCrAAChEwAAcasAAKITAAByqwAAoxMAAHOrAACkEwAAdKsAAKUTAAB1qwAAphMAAHarAACnEwAAd6sAAKgTAAB4qwAAqRMAAHmrAACqEwAAeqsAAKsTAAB7qwAArBMAAHyrAACtEwAAfasAAK4TAAB+qwAArxMAAH+rAACwEwAAgKsAALETAACBqwAAshMAAIKrAACzEwAAg6sAALQTAACEqwAAtRMAAIWrAAC2EwAAhqsAALcTAACHqwAAuBMAAIirAAC5EwAAiasAALoTAACKqwAAuxMAAIurAAC8EwAAjKsAAL0TAACNqwAAvhMAAI6rAAC/EwAAj6sAAMATAACQqwAAwRMAAJGrAADCEwAAkqsAAMMTAACTqwAAxBMAAJSrAADFEwAAlasAAMYTAACWqwAAxxMAAJerAADIEwAAmKsAAMkTAACZqwAAyhMAAJqrAADLEwAAm6sAAMwTAACcqwAAzRMAAJ2rAADOEwAAnqsAAM8TAACfqwAA0BMAAKCrAADREwAAoasAANITAACiqwAA0xMAAKOrAADUEwAApKsAANUTAAClqwAA1hMAAKarAADXEwAAp6sAANgTAACoqwAA2RMAAKmrAADaEwAAqqsAANsTAACrqwAA3BMAAKyrAADdEwAArasAAN4TAACuqwAA3xMAAK+rAADgEwAAsKsAAOETAACxqwAA4hMAALKrAADjEwAAs6sAAOQTAAC0qwAA5RMAALWrAADmEwAAtqsAAOcTAAC3qwAA6BMAALirAADpEwAAuasAAOoTAAC6qwAA6xMAALurAADsEwAAvKsAAO0TAAC9qwAA7hMAAL6rAADvEwAAv6sAAPATAAD4EwAA8RMAAPkTAADyEwAA+hMAAPMTAAD7EwAA9BMAAPwTAAD1EwAA/RMAAIkcAACKHAAAkBwAANAQAACRHAAA0RAAAJIcAADSEAAAkxwAANMQAACUHAAA1BAAAJUcAADVEAAAlhwAANYQAACXHAAA1xAAAJgcAADYEAAAmRwAANkQAACaHAAA2hAAAJscAADbEAAAnBwAANwQAACdHAAA3RAAAJ4cAADeEAAAnxwAAN8QAACgHAAA4BAAAKEcAADhEAAAohwAAOIQAACjHAAA4xAAAKQcAADkEAAApRwAAOUQAACmHAAA5hAAAKccAADnEAAAqBwAAOgQAACpHAAA6RAAAKocAADqEAAAqxwAAOsQAACsHAAA7BAAAK0cAADtEAAArhwAAO4QAACvHAAA7xAAALAcAADwEAAAsRwAAPEQAACyHAAA8hAAALMcAADzEAAAtBwAAPQQAAC1HAAA9RAAALYcAAD2EAAAtxwAAPcQAAC4HAAA+BAAALkcAAD5EAAAuhwAAPoQAAC9HAAA/RAAAL4cAAD+EAAAvxwAAP8QAAAAHgAAAR4AAAIeAAADHgAABB4AAAUeAAAGHgAABx4AAAgeAAAJHgAACh4AAAseAAAMHgAADR4AAA4eAAAPHgAAEB4AABEeAAASHgAAEx4AABQeAAAVHgAAFh4AABceAAAYHgAAGR4AABoeAAAbHgAAHB4AAB0eAAAeHgAAHx4AACAeAAAhHgAAIh4AACMeAAAkHgAAJR4AACYeAAAnHgAAKB4AACkeAAAqHgAAKx4AACweAAAtHgAALh4AAC8eAAAwHgAAMR4AADIeAAAzHgAANB4AADUeAAA2HgAANx4AADgeAAA5HgAAOh4AADseAAA8HgAAPR4AAD4eAAA/HgAAQB4AAEEeAABCHgAAQx4AAEQeAABFHgAARh4AAEceAABIHgAASR4AAEoeAABLHgAATB4AAE0eAABOHgAATx4AAFAeAABRHgAAUh4AAFMeAABUHgAAVR4AAFYeAABXHgAAWB4AAFkeAABaHgAAWx4AAFweAABdHgAAXh4AAF8eAABgHgAAYR4AAGIeAABjHgAAZB4AAGUeAABmHgAAZx4AAGgeAABpHgAAah4AAGseAABsHgAAbR4AAG4eAABvHgAAcB4AAHEeAAByHgAAcx4AAHQeAAB1HgAAdh4AAHceAAB4HgAAeR4AAHoeAAB7HgAAfB4AAH0eAAB+HgAAfx4AAIAeAACBHgAAgh4AAIMeAACEHgAAhR4AAIYeAACHHgAAiB4AAIkeAACKHgAAix4AAIweAACNHgAAjh4AAI8eAACQHgAAkR4AAJIeAACTHgAAlB4AAJUeAACeHgAA3wAAAKAeAAChHgAAoh4AAKMeAACkHgAApR4AAKYeAACnHgAAqB4AAKkeAACqHgAAqx4AAKweAACtHgAArh4AAK8eAACwHgAAsR4AALIeAACzHgAAtB4AALUeAAC2HgAAtx4AALgeAAC5HgAAuh4AALseAAC8HgAAvR4AAL4eAAC/HgAAwB4AAMEeAADCHgAAwx4AAMQeAADFHgAAxh4AAMceAADIHgAAyR4AAMoeAADLHgAAzB4AAM0eAADOHgAAzx4AANAeAADRHgAA0h4AANMeAADUHgAA1R4AANYeAADXHgAA2B4AANkeAADaHgAA2x4AANweAADdHgAA3h4AAN8eAADgHgAA4R4AAOIeAADjHgAA5B4AAOUeAADmHgAA5x4AAOgeAADpHgAA6h4AAOseAADsHgAA7R4AAO4eAADvHgAA8B4AAPEeAADyHgAA8x4AAPQeAAD1HgAA9h4AAPceAAD4HgAA+R4AAPoeAAD7HgAA/B4AAP0eAAD+HgAA/x4AAAgfAAAAHwAACR8AAAEfAAAKHwAAAh8AAAsfAAADHwAADB8AAAQfAAANHwAABR8AAA4fAAAGHwAADx8AAAcfAAAYHwAAEB8AABkfAAARHwAAGh8AABIfAAAbHwAAEx8AABwfAAAUHwAAHR8AABUfAAAoHwAAIB8AACkfAAAhHwAAKh8AACIfAAArHwAAIx8AACwfAAAkHwAALR8AACUfAAAuHwAAJh8AAC8fAAAnHwAAOB8AADAfAAA5HwAAMR8AADofAAAyHwAAOx8AADMfAAA8HwAANB8AAD0fAAA1HwAAPh8AADYfAAA/HwAANx8AAEgfAABAHwAASR8AAEEfAABKHwAAQh8AAEsfAABDHwAATB8AAEQfAABNHwAARR8AAFkfAABRHwAAWx8AAFMfAABdHwAAVR8AAF8fAABXHwAAaB8AAGAfAABpHwAAYR8AAGofAABiHwAAax8AAGMfAABsHwAAZB8AAG0fAABlHwAAbh8AAGYfAABvHwAAZx8AAIgfAACAHwAAiR8AAIEfAACKHwAAgh8AAIsfAACDHwAAjB8AAIQfAACNHwAAhR8AAI4fAACGHwAAjx8AAIcfAACYHwAAkB8AAJkfAACRHwAAmh8AAJIfAACbHwAAkx8AAJwfAACUHwAAnR8AAJUfAACeHwAAlh8AAJ8fAACXHwAAqB8AAKAfAACpHwAAoR8AAKofAACiHwAAqx8AAKMfAACsHwAApB8AAK0fAAClHwAArh8AAKYfAACvHwAApx8AALgfAACwHwAAuR8AALEfAAC6HwAAcB8AALsfAABxHwAAvB8AALMfAADIHwAAch8AAMkfAABzHwAAyh8AAHQfAADLHwAAdR8AAMwfAADDHwAA2B8AANAfAADZHwAA0R8AANofAAB2HwAA2x8AAHcfAADoHwAA4B8AAOkfAADhHwAA6h8AAHofAADrHwAAex8AAOwfAADlHwAA+B8AAHgfAAD5HwAAeR8AAPofAAB8HwAA+x8AAH0fAAD8HwAA8x8AACYhAADJAwAAKiEAAGsAAAArIQAA5QAAADIhAABOIQAAYCEAAHAhAABhIQAAcSEAAGIhAAByIQAAYyEAAHMhAABkIQAAdCEAAGUhAAB1IQAAZiEAAHYhAABnIQAAdyEAAGghAAB4IQAAaSEAAHkhAABqIQAAeiEAAGshAAB7IQAAbCEAAHwhAABtIQAAfSEAAG4hAAB+IQAAbyEAAH8hAACDIQAAhCEAALYkAADQJAAAtyQAANEkAAC4JAAA0iQAALkkAADTJAAAuiQAANQkAAC7JAAA1SQAALwkAADWJAAAvSQAANckAAC+JAAA2CQAAL8kAADZJAAAwCQAANokAADBJAAA2yQAAMIkAADcJAAAwyQAAN0kAADEJAAA3iQAAMUkAADfJAAAxiQAAOAkAADHJAAA4SQAAMgkAADiJAAAySQAAOMkAADKJAAA5CQAAMskAADlJAAAzCQAAOYkAADNJAAA5yQAAM4kAADoJAAAzyQAAOkkAAAALAAAMCwAAAEsAAAxLAAAAiwAADIsAAADLAAAMywAAAQsAAA0LAAABSwAADUsAAAGLAAANiwAAAcsAAA3LAAACCwAADgsAAAJLAAAOSwAAAosAAA6LAAACywAADssAAAMLAAAPCwAAA0sAAA9LAAADiwAAD4sAAAPLAAAPywAABAsAABALAAAESwAAEEsAAASLAAAQiwAABMsAABDLAAAFCwAAEQsAAAVLAAARSwAABYsAABGLAAAFywAAEcsAAAYLAAASCwAABksAABJLAAAGiwAAEosAAAbLAAASywAABwsAABMLAAAHSwAAE0sAAAeLAAATiwAAB8sAABPLAAAICwAAFAsAAAhLAAAUSwAACIsAABSLAAAIywAAFMsAAAkLAAAVCwAACUsAABVLAAAJiwAAFYsAAAnLAAAVywAACgsAABYLAAAKSwAAFksAAAqLAAAWiwAACssAABbLAAALCwAAFwsAAAtLAAAXSwAAC4sAABeLAAALywAAF8sAABgLAAAYSwAAGIsAABrAgAAYywAAH0dAABkLAAAfQIAAGcsAABoLAAAaSwAAGosAABrLAAAbCwAAG0sAABRAgAAbiwAAHECAABvLAAAUAIAAHAsAABSAgAAciwAAHMsAAB1LAAAdiwAAH4sAAA/AgAAfywAAEACAACALAAAgSwAAIIsAACDLAAAhCwAAIUsAACGLAAAhywAAIgsAACJLAAAiiwAAIssAACMLAAAjSwAAI4sAACPLAAAkCwAAJEsAACSLAAAkywAAJQsAACVLAAAliwAAJcsAACYLAAAmSwAAJosAACbLAAAnCwAAJ0sAACeLAAAnywAAKAsAAChLAAAoiwAAKMsAACkLAAApSwAAKYsAACnLAAAqCwAAKksAACqLAAAqywAAKwsAACtLAAAriwAAK8sAACwLAAAsSwAALIsAACzLAAAtCwAALUsAAC2LAAAtywAALgsAAC5LAAAuiwAALssAAC8LAAAvSwAAL4sAAC/LAAAwCwAAMEsAADCLAAAwywAAMQsAADFLAAAxiwAAMcsAADILAAAySwAAMosAADLLAAAzCwAAM0sAADOLAAAzywAANAsAADRLAAA0iwAANMsAADULAAA1SwAANYsAADXLAAA2CwAANksAADaLAAA2ywAANwsAADdLAAA3iwAAN8sAADgLAAA4SwAAOIsAADjLAAA6ywAAOwsAADtLAAA7iwAAPIsAADzLAAAQKYAAEGmAABCpgAAQ6YAAESmAABFpgAARqYAAEemAABIpgAASaYAAEqmAABLpgAATKYAAE2mAABOpgAAT6YAAFCmAABRpgAAUqYAAFOmAABUpgAAVaYAAFamAABXpgAAWKYAAFmmAABapgAAW6YAAFymAABdpgAAXqYAAF+mAABgpgAAYaYAAGKmAABjpgAAZKYAAGWmAABmpgAAZ6YAAGimAABppgAAaqYAAGumAABspgAAbaYAAICmAACBpgAAgqYAAIOmAACEpgAAhaYAAIamAACHpgAAiKYAAImmAACKpgAAi6YAAIymAACNpgAAjqYAAI+mAACQpgAAkaYAAJKmAACTpgAAlKYAAJWmAACWpgAAl6YAAJimAACZpgAAmqYAAJumAAAipwAAI6cAACSnAAAlpwAAJqcAACenAAAopwAAKacAACqnAAArpwAALKcAAC2nAAAupwAAL6cAADKnAAAzpwAANKcAADWnAAA2pwAAN6cAADinAAA5pwAAOqcAADunAAA8pwAAPacAAD6nAAA/pwAAQKcAAEGnAABCpwAAQ6cAAESnAABFpwAARqcAAEenAABIpwAASacAAEqnAABLpwAATKcAAE2nAABOpwAAT6cAAFCnAABRpwAAUqcAAFOnAABUpwAAVacAAFanAABXpwAAWKcAAFmnAABapwAAW6cAAFynAABdpwAAXqcAAF+nAABgpwAAYacAAGKnAABjpwAAZKcAAGWnAABmpwAAZ6cAAGinAABppwAAaqcAAGunAABspwAAbacAAG6nAABvpwAAeacAAHqnAAB7pwAAfKcAAH2nAAB5HQAAfqcAAH+nAACApwAAgacAAIKnAACDpwAAhKcAAIWnAACGpwAAh6cAAIunAACMpwAAjacAAGUCAACQpwAAkacAAJKnAACTpwAAlqcAAJenAACYpwAAmacAAJqnAACbpwAAnKcAAJ2nAACepwAAn6cAAKCnAAChpwAAoqcAAKOnAACkpwAApacAAKanAACnpwAAqKcAAKmnAACqpwAAZgIAAKunAABcAgAArKcAAGECAACtpwAAbAIAAK6nAABqAgAAsKcAAJ4CAACxpwAAhwIAALKnAACdAgAAs6cAAFOrAAC0pwAAtacAALanAAC3pwAAuKcAALmnAAC6pwAAu6cAALynAAC9pwAAvqcAAL+nAADApwAAwacAAMKnAADDpwAAxKcAAJSnAADFpwAAggIAAManAACOHQAAx6cAAMinAADJpwAAyqcAAMunAABkAgAAzKcAAM2nAADQpwAA0acAANanAADXpwAA2KcAANmnAADapwAA26cAANynAACbAQAA9acAAPanAAAh/wAAQf8AACL/AABC/wAAI/8AAEP/AAAk/wAARP8AACX/AABF/wAAJv8AAEb/AAAn/wAAR/8AACj/AABI/wAAKf8AAEn/AAAq/wAASv8AACv/AABL/wAALP8AAEz/AAAt/wAATf8AAC7/AABO/wAAL/8AAE//AAAw/wAAUP8AADH/AABR/wAAMv8AAFL/AAAz/wAAU/8AADT/AABU/wAANf8AAFX/AAA2/wAAVv8AADf/AABX/wAAOP8AAFj/AAA5/wAAWf8AADr/AABa/wAAAAQBACgEAQABBAEAKQQBAAIEAQAqBAEAAwQBACsEAQAEBAEALAQBAAUEAQAtBAEABgQBAC4EAQAHBAEALwQBAAgEAQAwBAEACQQBADEEAQAKBAEAMgQBAAsEAQAzBAEADAQBADQEAQANBAEANQQBAA4EAQA2BAEADwQBADcEAQAQBAEAOAQBABEEAQA5BAEAEgQBADoEAQATBAEAOwQBABQEAQA8BAEAFQQBAD0EAQAWBAEAPgQBABcEAQA/BAEAGAQBAEAEAQAZBAEAQQQBABoEAQBCBAEAGwQBAEMEAQAcBAEARAQBAB0EAQBFBAEAHgQBAEYEAQAfBAEARwQBACAEAQBIBAEAIQQBAEkEAQAiBAEASgQBACMEAQBLBAEAJAQBAEwEAQAlBAEATQQBACYEAQBOBAEAJwQBAE8EAQCwBAEA2AQBALEEAQDZBAEAsgQBANoEAQCzBAEA2wQBALQEAQDcBAEAtQQBAN0EAQC2BAEA3gQBALcEAQDfBAEAuAQBAOAEAQC5BAEA4QQBALoEAQDiBAEAuwQBAOMEAQC8BAEA5AQBAL0EAQDlBAEAvgQBAOYEAQC/BAEA5wQBAMAEAQDoBAEAwQQBAOkEAQDCBAEA6gQBAMMEAQDrBAEAxAQBAOwEAQDFBAEA7QQBAMYEAQDuBAEAxwQBAO8EAQDIBAEA8AQBAMkEAQDxBAEAygQBAPIEAQDLBAEA8wQBAMwEAQD0BAEAzQQBAPUEAQDOBAEA9gQBAM8EAQD3BAEA0AQBAPgEAQDRBAEA+QQBANIEAQD6BAEA0wQBAPsEAQBwBQEAlwUBAHEFAQCYBQEAcgUBAJkFAQBzBQEAmgUBAHQFAQCbBQEAdQUBAJwFAQB2BQEAnQUBAHcFAQCeBQEAeAUBAJ8FAQB5BQEAoAUBAHoFAQChBQEAfAUBAKMFAQB9BQEApAUBAH4FAQClBQEAfwUBAKYFAQCABQEApwUBAIEFAQCoBQEAggUBAKkFAQCDBQEAqgUBAIQFAQCrBQEAhQUBAKwFAQCGBQEArQUBAIcFAQCuBQEAiAUBAK8FAQCJBQEAsAUBAIoFAQCxBQEAjAUBALMFAQCNBQEAtAUBAI4FAQC1BQEAjwUBALYFAQCQBQEAtwUBAJEFAQC4BQEAkgUBALkFAQCUBQEAuwUBAJUFAQC8BQEAgAwBAMAMAQCBDAEAwQwBAIIMAQDCDAEAgwwBAMMMAQCEDAEAxAwBAIUMAQDFDAEAhgwBAMYMAQCHDAEAxwwBAIgMAQDIDAEAiQwBAMkMAQCKDAEAygwBAIsMAQDLDAEAjAwBAMwMAQCNDAEAzQwBAI4MAQDODAEAjwwBAM8MAQCQDAEA0AwBAJEMAQDRDAEAkgwBANIMAQCTDAEA0wwBAJQMAQDUDAEAlQwBANUMAQCWDAEA1gwBAJcMAQDXDAEAmAwBANgMAQCZDAEA2QwBAJoMAQDaDAEAmwwBANsMAQCcDAEA3AwBAJ0MAQDdDAEAngwBAN4MAQCfDAEA3wwBAKAMAQDgDAEAoQwBAOEMAQCiDAEA4gwBAKMMAQDjDAEApAwBAOQMAQClDAEA5QwBAKYMAQDmDAEApwwBAOcMAQCoDAEA6AwBAKkMAQDpDAEAqgwBAOoMAQCrDAEA6wwBAKwMAQDsDAEArQwBAO0MAQCuDAEA7gwBAK8MAQDvDAEAsAwBAPAMAQCxDAEA8QwBALIMAQDyDAEAUA0BAHANAQBRDQEAcQ0BAFINAQByDQEAUw0BAHMNAQBUDQEAdA0BAFUNAQB1DQEAVg0BAHYNAQBXDQEAdw0BAFgNAQB4DQEAWQ0BAHkNAQBaDQEAeg0BAFsNAQB7DQEAXA0BAHwNAQBdDQEAfQ0BAF4NAQB+DQEAXw0BAH8NAQBgDQEAgA0BAGENAQCBDQEAYg0BAIINAQBjDQEAgw0BAGQNAQCEDQEAZQ0BAIUNAQCgGAEAwBgBAKEYAQDBGAEAohgBAMIYAQCjGAEAwxgBAKQYAQDEGAEApRgBAMUYAQCmGAEAxhgBAKcYAQDHGAEAqBgBAMgYAQCpGAEAyRgBAKoYAQDKGAEAqxgBAMsYAQCsGAEAzBgBAK0YAQDNGAEArhgBAM4YAQCvGAEAzxgBALAYAQDQGAEAsRgBANEYAQCyGAEA0hgBALMYAQDTGAEAtBgBANQYAQC1GAEA1RgB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AACBHgAAgR8AAIEgAACBIQAAgSIAAIEjAACBJAAAgSUAAIEmAACBJwAAgSgAAIEpAACBKgAAgSsAAIEsAACBLQAAgS4AAIEvAACBMAAAgTEAAIEyAACBMwAAgTQAAIE1AACBNgAAgTcAAIE4AACBOQAAgToAAIE7AACBPAAAgT0AAIE+AACBPwAAgUAAAIFBAACBQgAAgUMAAIFEAACBRQAAgUYAAIFHAACBSAAAgUkAAIFKAACBSwAAgUwAAIFNAACBTgAAgU8AAIFQAACBUQAAgVIAAIFTAACBVAAAgVUAAIFWAACBVwAAgVgAAIFZAACBWgAAgVsAAIFcAACBXQAAgV4AAIFfAACBYAAAgWEAAIFiAACBYwAAgWQAAIFlAACBZgAAgWcAAIFoAACBaQAAgWoAAIFrAACBbAAAgW0AAIFuAACBbwAAgXAAAIFxAACBcgAAgXMAAIF0AACBdQAAgXYAAIF3AACBeAAAgXkAAIF6AACBewAAgXwAAIF9AACBfgAAgX8AAIGAAACBgQAAgYIAAIGDAACBhAAAgYUAAIGGAACBhwAAgYgAAIGJAACBigAAgYsAAIGMAACBjQAAgY4AAIGPAACBkAAAgZEAAIGSAACBkwAAgZQAAIGVAACBlgAAgZcAAIGYAACBmQAAgZoAAIGbAACBnAAAgZ0AAIGeAACBnwAAgaAAAIGhAACBogAAgaMAAIGkAACBpQAAgaYAAIGnAACBqAAAgakAAIGqAACBqwAAgawAAIGtAACBrgAAga8AAIGwAACBsQAAgbIAAIGzAACBtAAAgbUAAIG2AACBtwAAgbgAAIG5AACBugAAgbsAAIG8AACBvQAAgb4AAIG/AACBwAAAgcEAAIHCAACBwwAAgcQAAIHFAACBxgAAgccAAIHIAACByQAAgcoAAIHLAACBzAAAgc0AAIHOAACBzwAAgdAAAIHRAACB0gAAgdMAAIHUAACB1QAAgdYAAIHXAACB2AAAgdkAAIHaAACB2wAAgdwAAIHdAACB3gAAgd8AAIHgAACB4QAAgeIAAIHjAACB5AAAgeUAAIHmAACB5wAAgegAAIHpAACB6gAAgesAAIHsAACB7QAAge4AAIHvAACB8AAAgfEAAIHyAACB8wAAgfQAAIH1AACB9gAAgfcAAIH4AACB+QAAgfoAAIH7AACB/AAAgf0AAIH+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ZXRyaWMgaW50ZXJwcmV0YXRpb24gb2YgYSBDSUNQIGNvbG9yIHNwYWNlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGBUIxEATAAAAOiSEQABAAAAVGhlIGZpbGUgZXh0ZW5zaW9uICB3YXMgbm90IHJlY29nbml6ZWQgYXMgYW4gaW1hZ2UgZm9ybWF0AAAAsCMRABMAAADDIxEAJgAAAFRoZSBpbWFnZSBmb3JtYXQgY291bGQgbm90IGJlIGRldGVybWluZWRUaGUgaW1hZ2UgZm9ybWF0IAAAACQkEQARAAAAMCMRABEAAABUaGUgZGVjb2RlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmb3JtYXQgZmVhdHVyZSBIJBEAMAAAAFRoZSBkZWNvZGVyIGZvciAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZm9ybWF0IGZlYXR1cmVzIAAAgCQRABAAAACQJBEAJgAAAEVycgAAAAAABAAAAAQAAACtAQAARm9ybWF0RXJyb3JSaWZmU2lnbmF0dXJlSW52YWxpZFdlYnBTaWduYXR1cmVJbnZhbGlkQ2h1bmtNaXNzaW5nQ2h1bmtIZWFkZXJJbnZhbGlkUmVzZXJ2ZWRCaXRTZXRJbnZhbGlkQWxwaGFQcmVwcm9jZXNzaW5nSW52YWxpZENvbXByZXNzaW9uTWV0aG9kQWxwaGFDaHVua1NpemVNaXNtYXRjaEltYWdlVG9vTGFyZ2VGcmFtZU91dHNpZGVJbWFnZUxvc3NsZXNzU2lnbmF0dXJlSW52YWxpZFZlcnNpb25OdW1iZXJJbnZhbGlkSW52YWxpZENvbG9yQ2FjaGVCaXRzSHVmZm1hbkVycm9yQml0U3RyZWFtRXJyb3JUcmFuc2Zvcm1FcnJvclZwOE1hZ2ljSW52YWxpZE5vdEVub3VnaEluaXREYXRhQ29sb3JTcGFjZUludmFsaWRMdW1hUHJlZGljdGlvbk1vZGVJbnZhbGlkSW50cmFQcmVkaWN0aW9uTW9kZUludmFsaWRDaHJvbWFQcmVkaWN0aW9uTW9kZUludmFsaWRJbmNvbnNpc3RlbnRJbWFnZVNpemVzVW5zdXBwb3J0ZWRGZWF0dXJlSW52YWxpZFBhcmFtZXRlck1lbW9yeUxpbWl0RXhjZWVkZWRJbnZhbGlkQ2h1bmtTaXplTm9Nb3JlRnJhbWVzSW52YWxpZERpbWVuc2lvbnMAAAAABAAAAAQAAACuAQAAVHJ5UmVzZXJ2ZUVycm9yTGltaXRzRXhjZWVkZWQAAAC7AAAACAAAAAQAAAAWAAAAuwAAAAgAAAAEAAAAvAAAABYAAAAwJxEAvQAAAL4AAACyAAAAvwAAALMAAABVbnJlcHJlc2VudGFibGVJbnZhbGlkS2V5d29yZFNpemVNaXNzaW5nTnVsbFNlcGFyYXRvckluZmxhdGlvbkVycm9yT3V0T2ZEZWNvbXByZXNzaW9uU3BhY2VJbnZhbGlkQ29tcHJlc3Npb25GbGFnTWlzc2luZ0NvbXByZXNzaW9uRmxhZwAAAAAAAAQAAAAEAAAAwAAAAAAAAAAEAAAABAAAAGMAAABDcmNNaXNtYXRjaGNyY192YWxjcmNfc3VtSW52YWxpZFNpZ25hdHVyZU1pc3NpbmdGY3RsTWlzc2luZ0ltYWdlRGF0YUNodW5rQmVmb3JlSWhkckFmdGVySWRhdEJlZm9yZVBsdGVBZnRlclBsdGVPdXRzaWRlUGx0ZUlkYXREdXBsaWNhdGVDaHVua0FwbmdPcmRlcnByZXNlbnRTaG9ydFBhbGV0dGVsZW4AAAAAAAEAAAABAAAArwEAAEludmFsaWRTYml0Q2h1bmtTaXplY29sb3JfdHlwZQAAAAAAAAEAAAABAAAAsAEAAEludmFsaWRTYml0c2FtcGxlX2RlcHRoc2JpdFBhbGV0dGVSZXF1aXJlZAAAAAAAAAQAAAAEAAAAsQEAAEludmFsaWRDb2xvckJpdERlcHRoYml0X2RlcHRoQ29sb3JXaXRoQmFkVHJuc0ludmFsaWRCaXREZXB0aEludmFsaWRDb2xvclR5cGVJbnZhbGlkRGlzcG9zZU9wSW52YWxpZEJsZW5kT3BJbnZhbGlkVW5pdEludmFsaWRTcmdiUmVuZGVyaW5nSW50ZW50VW5rbm93bkNvbXByZXNzaW9uTWV0aG9kVW5rbm93bkZpbHRlck1ldGhvZFVua25vd25JbnRlcmxhY2VNZXRob2RCYWRTdWJGcmFtZUJvdW5kcwAAAAAAAAAEAAAABAAAALIBAABDb3JydXB0RmxhdGVTdHJlYW1lcnJOb01vcmVJbWFnZURhdGFCYWRUZXh0RW5jb2RpbmdGZGF0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AB4AAAB2JRAAXwAAAAsJAAAXAAAAdiUQAF8AAAAPCQAAJgAAAHYlEABfAAAAEgkAACIAAAB2JRAAXwAAAAwJAAAdAAAAdiUQAF8AAACBCAAABQAAAHYlEABfAAAAhAgAACYAAAB2JRAAXwAAAIgIAAArAAAAdiUQAF8AAACICAAAIAAAAHYlEABfAAAAJQgAAEUAAAB2JRAAXwAAADgIAAAxAAAAdiUQAF8AAAAiCAAAHgAAAHYlEABfAAAAHAgAAEEAAAAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADwAPgBAAEIARABGAEgASgBMAE4AUABSAFQAVgBYAFoAXABeAGAAYgBkAGYAaABqAGwAbgBwAHIAdAB3AHoAfQCAAIMAhgCJAIwAjwCSAJUAmACbAJ4AoQCkAKcAqgCtALEAtQC5AL0AwQDFAMkAzQDRANUA2QDdAOEA5QDqAO8A9QD5AP4AAwEIAQ0BEgEXARwBBAAFAAYABwAIAAkACgAKAAsADAANAA4ADwAQABEAEQASABMAFAAUABUAFQAWABYAFwAXABgAGQAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACUAJgAnACgAKQAqACsALAAtAC4ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWwBdAF8AYABiAGQAZQBmAGgAagBsAG4AcAByAHQAdgB6AHwAfgCAAIIAhACGAIgAigCMAI8AkQCUAJcAmgCdAHYlEABfAAAAaAgAADAAAAB2JRAAXwAAAFwIAAA7AAAAawIQAF8AAABgAAAANQAAAGsCEABfAAAAYwAAAEEAAABrAhAAXwAAAJUAAAAZAAAAawIQAF8AAACUAAAAGQAAAGsCEABfAAAAkwAAABkAAABrAhAAXwAAAJAAAAAkAAAAawIQAF8AAACPAAAAJAAAAGsCEABfAAAAeAAAABUAAABrAhAAXwAAAHcAAAAVAAAAawIQAF8AAAB2AAAAFQAA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UDggY2hyb21hIHByZWRpY3Rpb24gbW9kZTog+DsRACQAAABJbmNvbnNpc3RlbnQgaW1hZ2Ugc2l6ZXNVbnN1cHBvcnRlZCBmZWF0dXJlOiAAAAA8PBEAFQAAAEludmFsaWQgcGFyYW1ldGVyOiAAXDwRABMAAABNZW1vcnkgbGltaXQgZXhjZWVkZWRJbnZhbGlkIGNodW5rIHNpemVObyBtb3JlIGZyYW1lc2Nsb3N1cmUgaW52b2tlZCByZWN1cnNpdmVseSBvciBhZnRlciBiZWluZyBkcm9wcGVkAC0kEABcAAAAhTUAAAEAAAA3NDMyMTAvLi1n8kJD5SwrKikoJyYlJCMiITggHx4dHP+UpJWIoJut3d6GeujK1+DQ3My7t7OxqLLI4sOauK5+eL+dwqq9oqGWwY6Jq7C5p7pwr8C8nIyPe4WAk4qSct+X+dju7P3j2ub3h7Tx6fb054v18/vrycTw1pi2zbV/G9TT0tXkxamfg6xpUGJgYVHPkXRzkIKZeWuEbW58b1Jsdo1xgXd9pXVcalNIY11BT6bto8e+4dHLxtnbzur4nu//////////////////////////////////////////////////////////////////////////////////////mwEQAGcAAADZAQAAHQAAAJsBEABnAAAA2gEAABkAAACbARAAZwAAADECAAAbAAAAmwEQAGcAAAAyAgAAHQAAABYMEAByAAAAKgAAABMAAADYHRAAaAAAANMAAAAcAAAAHBgQAGkAAABrBgAAGgAAABwYEABpAAAAawYAADYAAAAcGBAAaQAAAF4GAAAoAAAAFgwQAHIAAAAgAAAACQAAABwYEABpAAAAcwcAAD4AQaj9xAAL2RoBAQEBAgICAgMDAwMEBAQEBQUFBQAAAAADAAQABQAGAAcACAAJAAoACwANAA8AEQATABcAGwAfACMAKwAzADsAQwBTAGMAcwCDAKMAwwDjAAIBAAIAAgACHBgQAGkAAADZBwAATQAAABwYEABpAAAAPAYAAC0AAAAcGBAAaQAAADwGAAAZAAAAHBgQAGkAAACEBgAAIAAAAAEBAQAEAAEAAgADAAQABQAHAAkADQARABkAIQAxAEEAYQCBAMEAAQGBAQECAQMBBAEGAQgBDAEQARgBIAEwAUABYAAAHBgQAGkAAAARAgAAKAAAAAAAAIAAQADAACAAoABgAOAAEACQAFAA0AAwALAAcADwAAgAiABIAMgAKACoAGgA6AAYAJgAWADYADgAuAB4APgABACEAEQAxAAkAKQAZADkABQAlABUANQANAC0AHQA9AAMAIwATADMACwArABsAOwAHACcAFwA3AA8ALwAfAD8AAIAggBCAMIAIgCiAGIA4gASAJIAUgDSADIAsgByAPIACgCKAEoAygAqAKoAagDqABoAmgBaANoAOgC6AHoA+gAGAIYARgDGACYApgBmAOYAFgCWAFYA1gA2ALYAdgD2AA4AjgBOAM4ALgCuAG4A7gAeAJ4AXgDeAD4AvgB+AP4AAQCBAEEAwQAhAKEAYQDhABEAkQBRANEAMQCxAHEA8QAJAIkASQDJACkAqQBpAOkAGQCZAFkA2QA5ALkAeQD5AAUAhQBFAMUAJQClAGUA5QAVAJUAVQDVADUAtQB1APUADQCNAE0AzQAtAK0AbQDtAB0AnQBdAN0APQC9AH0A/QADAIMAQwDDACMAowBjAOMAEwCTAFMA0wAzALMAcwDzAAsAiwBLAMsAKwCrAGsA6wAbAJsAWwDbADsAuwB7APsABwCHAEcAxwAnAKcAZwDnABcAlwBXANcANwC3AHcA9wAPAI8ATwDPAC8ArwBvAO8AHwCfAF8A3wA/AL8AfwD/gACAgIBAgMCAIICggGCA4IAQgJCAUIDQgDCAsIBwgPCACICIgEiAyIAogKiAaIDogBiAmIBYgNiAOIC4gHiA+IAEgISARIDEgCSApIBkgOSAFICUgFSA1IA0gLSAdID0gAyAjIBMgMyALICsgGyA7IAcgJyAXIDcgDyAvIB8gPyAAoCCgEKAwoAigKKAYoDigBKAkoBSgNKAMoCygHKA8oAKgIqASoDKgCqAqoBqgOqAGoCagFqA2oA6gLqAeoD6gAaAhoBGgMaAJoCmgGaA5oAWgJaAVoDWgDaAtoB2gPaADoCOgE6AzoAugK6AboDugB6AnoBegN6APoC+gH6A/oABgIGAQYDBgCGAoYBhgOGAEYCRgFGA0YAxgLGAcYDxgAmAiYBJgMmAKYCpgGmA6YAZgJmAWYDZgDmAuYB5gPmABYCFgEWAxYAlgKWAZYDlgBWAlYBVgNWANYC1gHWA9YANgI2ATYDNgC2ArYBtgO2AHYCdgF2A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AAQAAAABAAAAxQEAAHR5cGUAAAAAAQAAAAEAAADGAQAAY3JpdGljYWxwcml2YXRlcmVzZXJ2ZWRzYWZlY29weU9uZVR3b0ZvdXJFaWdodFNpeHRlZW5HcmF5c2NhbGVSZ2JJbmRleGVkR3JheXNjYWxlQWxwaGFSZ2JhAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAHdyb25nIGRhdGEgc2l6ZSwgZXhwZWN0ZWQgIGdvdCAAOE4RABoAAABSThEABQAAAEVuZCBvZiBpbWFnZSBoYXMgYmVlbiByZWFjaGVkQSBmYXRhbCBkZWNvZGluZyBlcnJvciBoYXMgYmVlbiBlbmNvdW50ZWQgZWFybGllckNSQyBlcnJvcjogZXhwZWN0ZWQgMHggaGF2ZSAweCB3aGlsZSBkZWNvZGluZyAgY2h1bmsuALZOEQAWAAAAzE4RAAgAAADUThEAEAAAAOROEQAHAAAASW52YWxpZCBQTkcgc2lnbmF0dXJlLmZjVEwgY2h1bmsgbWlzc2luZyBiZWZvcmUgZmRBVCBjaHVuay5JREFUIG9yIGZkQVQgY2h1bmsgaXMgbWlzc2luZy4gY2h1bmsgYXBwZWFyZWQgYmVmb3JlIElIRFIgY2h1bmsAAAEAAAAAAAAAZU8RACEAAABDaHVuayAgaXMgaW52YWxpZCBhZnRlciBJREFUIGNodW5rLgCYTxEABgAAAJ5PEQAdAAAAIGlzIGludmFsaWQgYmVmb3JlIFBMVEUgY2h1bmsuAACYTxEABgAAAMxPEQAeAAAAIGlzIGludmFsaWQgYWZ0ZXIgUExURSBjaHVuay4AAACYTxEABgAAAPxPEQAdAAAAIG11c3QgYXBwZWFyIGJldHdlZW4gUExURSBhbmQgSURBVCBjaHVua3MuAACYTxEABgAAACxQEQAqAAAAIG11c3QgYXBwZWFyIGF0IG1vc3Qgb25jZS4AAJhPEQAGAAAAaFARABoAAABTZXF1ZW5jZSBpcyBub3QgaW4gb3JkZXIsIGV4cGVjdGVkICMgZ290ICMAAJRQEQAkAAAAuFARAAYAAADsXBEAAQAAAE5vdCBlbm91Z2ggcGFsZXR0ZSBlbnRyaWVzLCBleHBlY3QgANhQEQAjAAAAUk4RAAUAAADsXBEAAQAAAFRoZSBzaXplIG9mIHRoZSBzQklUIGNodW5rIHNob3VsZCBiZSAgYnl0ZShzKSwgYnV0ICBieXRlKHMpIHdlcmUgcHJvdmlkZWQgZm9yIHRoZSAgY29sb3IgdHlwZS4AABRREQAlAAAAOVERAA4AAABHUREAHwAAAGZREQAMAAAASW52YWxpZCBzQklUIHZhbHVlIC4gSXQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIHRoZSBzYW1wbGUgZGVwdGggAAAAlFERABMAAACnUREAPgAAAOxcEQABAAAATWlzc2luZyBwYWxldHRlIG9mIGluZGV4ZWQgaW1hZ2UuSW52YWxpZCBjb2xvci9kZXB0aCBjb21iaW5hdGlvbiBpbiBoZWFkZXI6IC8AAAAhUhEAKwAAAExSEQABAAAAVHJhbnNwYXJlbmN5IGNodW5rIGZvdW5kIGZvciBjb2xvciB0eXBlIGBSEQAoAAAA7FwRAAEAAABJbnZhbGlkIGltYWdlIGRpbWVuc2lvbnNJbnZhbGlkIGJpdCBkZXB0aCAAALBSEQASAAAA7FwRAAEAAABJbnZhbGlkIGNvbG9yIHR5cGUgANRSEQATAAAA7FwRAAEAAABJbnZhbGlkIGRpc3Bvc2Ugb3AgAPhSEQATAAAA7FwRAAEAAABJbnZhbGlkIGJsZW5kIG9wIAAAABxTEQARAAAA7FwRAAEAAABJbnZhbGlkIHBoeXNpY2FsIHBpeGVsIHNpemUgdW5pdCAAAABAUxEAIQAAAOxcEQABAAAASW52YWxpZCBzUkdCIHJlbmRlcmluZyBpbnRlbnQgAAB0UxEAHgAAAOxcEQABAAAAVW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QgAKRTEQAbAAAA7FwRAAEAAABVbmtub3duIGZpbHRlciBtZXRob2QgAADQUxEAFgAAAOxcEQABAAAAVW5rbm93biBpbnRlcmxhY2UgbWV0aG9kIAAAAPhTEQAZAAAA7FwRAAEAAABTdWIgZnJhbWUgaXMgb3V0LW9mLWJvdW5kcy5Db3JydXB0IGRlZmxhdGUgc3RyZWFtLiBJREFUIG9yIGZEQVQgY2h1bmsgZG9lcyBub3QgaGF2ZSBlbm91Z2ggZGF0YSBmb3IgaW1hZ2UuVW5yZXByZXNlbnRhYmxlIGRhdGEgaW4gdEVYdCBjaHVuay4AAACOVBEAIwAAAEtleXdvcmQgZW1wdHkgb3IgbG9uZ2VyIHRoYW4gNzkgYnl0ZXMuAAC8VBEAJgAAAE5vIG51bGwgc2VwYXJhdG9yIGluIHRFWHQgY2h1bmsu7FQRACAAAABJbnZhbGlkIGNvbXByZXNzZWQgdGV4dCBkYXRhLgAAABRVEQAdAAAAT3V0IG9mIGRlY29tcHJlc3Npb24gc3BhY2UuIFRyeSB3aXRoIGEgbGFyZ2VyIGxpbWl0LjxVEQA0AAAAVXNpbmcgYW4gdW5yZWNvZ25pemVkIGJ5dGUgYXMgY29tcHJlc3Npb24gbWV0aG9kLgAAAHhVEQAxAAAAVXNpbmcgYSBmbGFnIHRoYXQgaXMgbm90IDAgb3IgMjU1IGFzIGEgY29tcHJlc3Npb24gZmxhZyBmb3IgaVRYdCBjaHVuay4AtFURAEcAAABObyBjb21wcmVzc2lvbiBmbGFnIGluIHRoZSBpVFh0IGNodW5rLgAABFYRACYAAABmZEFUIGNodW5rIHNob3J0ZXIgdGhhbiA0IGJ5dGVzVW5leHBlY3RlZCByZXN0YXJ0IG9mICBjaHVuayBzZXF1ZW5jZVNWEQAWAAAAaVYRAA8AAABDaHVuayBsZW5ndGggd3Jvbmc6IIhWEQAUAAAAVW5yZWNvZ25pemVkIGNyaXRpY2FsIGNodW5rOiAAAACkVhEAHQAAAEJhZCBnYW1tYSB2YWx1ZS5saW1pdHMgYXJlIGV4Y2VlZGVkQmFkWmxpYkhlYWRlckluc3VmZmljaWVudElucHV0SW52YWxpZEJsb2NrVHlwZUludmFsaWRVbmNvbXByZXNzZWRCbG9ja0xlbmd0aEludmFsaWRIbGl0SW52YWxpZEhkaXN0SW52YWxpZENvZGVMZW5ndGhSZXBlYXRCYWRDb2RlTGVuZ3RoSHVmZm1hblRyZWVCYWRMaXRlcmFsTGVuZ3RoSHVmZm1hblRyZWVCYWREaXN0YW5jZUh1ZmZtYW5UcmVlSW52YWxpZExpdGVyYWxMZW5ndGhDb2RlSW52YWxpZERpc3RhbmNlQ29kZUlucHV0U3RhcnRzV2l0aFJ1bkRpc3RhbmNlVG9vRmFyQmFja1dyb25nQ2hlY2tzdW1FeHRyYUlucHV0MAAAAAEnEAAqAAAAHgEA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dgMAABkAAABrIRAAYgAAAHcDAAAZAAAAayEQAGIAAAB4AwAAGQAAAGshEABiAAAAeQMAABkAAABrIRAAYgAAANQDAAARAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAABAAIAAwAEAAUABgAHAAgACQD//////////////////woACwAMAA0ADgAPAP////////////////////////////////////////////////////////////////////8KAAsADAANAA4ADwD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AABAAIAAwAEAAUABgAHAAgACQAP//////////////////oACwAMAA0ADgAPAA/////////////////////////////////////////////////////////////////////6AAsADAANAA4ADwAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2shEABiAAAAswEAABoAAABrIRAAYgAAAAACAAATAAAAayEQAGIAAAAFAgAAMwAAAGshEABiAAAACQIAAD4AAABrIRAAYgAAAA8CAAA6AAAAayEQAGIAAACrAQAAPQAAAGshEABiAAAApgEAAEUAAAAgYXQgbGluZSAAAABCCRAAYwAAAPcBAAAhAAAAQgkQAGMAAAD7AQAADAAAACBjb2x1bW4gQgkQAGMAAAACAgAAIQAAAEIJEABjAAAACwIAACoAAABCCRAAYwAAAA8CAAAsAAAAQgkQAGMAAAAUAgAACQAAAGluZi1pbmZOYU4AALQAAAAMAAAABAAAAIkBAACKAQAA0gEAQZiexgAL5Q0BAAAAuAAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkAwhUQAEsAAAAFCwAADgAAAPYQEABPAAAAPAYAABQAAAD2EBAATwAAADwGAAAhAAAA9hAQAE8AAAAwBgAAFAAAAPYQEABPAAAAMAYAACEAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAACojxEAsAAAALEAAACyAAAAsAAAALMAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmlzX2NoYXJfYm91bmRhcnkobmV3X2xlbilFcnJvcigsIGxpbmU6ICwgY29sdW1uOiAUkBEABgAAABqQEQAIAAAAIpARAAoAAABeBxIAAQAAAGludmFsaWQgdmFsdWU6IABMkBEADwAAABqTEQALAAAARU9GIHdoaWxlIHBhcnNpbmcgYSBsaXN0RU9GIHdoaWxlIHBhcnNpbmcgYW4gb2JqZWN0RU9GIHdoaWxlIHBhcnNpbmcgYSBzdHJpbmdFT0Ygd2hpbGUgcGFyc2lu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AAB2JRAAXwAAAL4FAAA1AAAAdiUQAF8AAAC+BQAAJQAAAHYlEABfAAAAvAUAADoAAABWUDggaW50ZXItcHJlZGljdGlvboQBkQACA5wBgIGjAoKDgAN2JRAAXwAAADUFAAAvAAAAgAHnAIECeAGCAzACBAZZA4MFcwSFhnEFhAd4BocImAeIiXAIgAGYAIECswGCA0ACBAZ+A4MFqgSFhnYFhAcuBocIRgeIiV8IgAGvAIECRQGCA48CBAZQA4MFVQSFhlIFhAdIBocImweIiWcIgAE4AIECOgGCAwoCBAarA4MF2gSFhr0FhAcRBocIDQeIiZgIgAGQAIECRwGCAwoCBAYmA4MFqwSFhtUFhAeQBocIIgeIiRoIgAFyAIECGgGCAxECBAajA4MFLASFhsMFhAcVBocICgeIia0IgAF5AIECGAGCA1ACBAbDA4MFGgSFhj4FhAcsBocIQAeIiVUIgAGqAIECLgGCAzcCBAYTA4MFiASFhqAFhAchBocIzgeIiUcIgAE/AIECFAGCAwgCBAZyA4MFcgSFhtAFhAcMBocICQeIieIIgAFRAIECKAGCAwsCBAZgA4MFtgSFhlQFhAcdBocIEAeIiSQIgAGGAIECtwGCA1kCBAaJA4MFYgSFhmUFhAdqBocIpQeIiZQIgAFIAIECuwGCA2QCBAaCA4MFnQSFhm8FhAcgBocISweIiVAIgAFCAIECZgGCA6cCBAZjA4MFSgSFhj4FhAcoBocI6geIiYAIgAEpAIECNQGCAwkCBAayA4MF8QSFho0FhAcaBocICAeIiWsIgAFoAIECTwGCAwwCBAYbA4MF2QSFhv8FhAdXBocIEQeIiQcIgAFKAIECKwGCAxoCBAaSA4MFSQSFhqYFhAcxBocIFweIiZ0IgAFBAIECJgGCA2kCBAagA4MFMwSFhjQFhAcfBocIcweIiYAIgAFXAIECRAGCA0cCBAYsA4MFcgSFhjMFhAcPBocIugeIiRcIgAEvAIECKQGCAw4CBAZuA4MFtgSFhrcFhAcVBocIEQeIicIIgAFCAIECLQGCAxkCBAZmA4MFxQSFhr0FhAcXBocIEgeIiRYIgAFYAIECWAGCA5MCBAaWA4MFKgSFhi4FhActBocIxAeIic0IgAErAIECYQGCA7cCBAZ1A4MFVQSFhiYFhAcjBocIsweIiT0IgAEnAIECNQGCA8gCBAZXA4MFGgSFhhUFhAcrBocI6AeIiasIgAE4AIECIgGCAzMCBAZoA4MFcgSFhmYFhAcdBocIXQeIiU0IgAFrAIECNgGCAyACBAYaA4MFMwSFhgEFhAdRBocIKweIiR8IgAEnAIECHAGCA1UCBAarA4MFOgSFhqUFhAdaBocIYgeIiUAIgAEiAIECFgGCA3QCBAbOA4MFFwSFhiIFhAcrBocIpgeIiUkIgAFEAIECGQGCA2oCBAYWA4MFQASFhqsFhAckBocI4QeIiXIIgAEiAIECEwGCAxUCBAZmA4MFhASFhrwFhAcQBocITAeIiXwIgAE+AIECEgGCA04CBAZfA4MFVQSFhjkFhAcyBocIMAeIiTMIgAHBAIECZQGCAyMCBAafA4MF1wSFhm8FhAdZBocILgeIiW8IgAE8AIEClAGCAx8CBAasA4MF2wSFhuQFhAcVBocIEgeIiW8IgAFwAIECcQGCA00CBAZVA4MFswSFhv8FhAcmBocIeAeIiXIIgAEoAIECKgGCAwECBAbEA4MF9QSFhtEFhAcKBocIGQeIiW0IgAFkAIECUAGCAwgCBAYrA4MFmgSFhgEFhAczBocIGgeIiUcIgAFYAIECKwGCAx0CBAaMA4MFpgSFhtUFhAclBocIKweIiZoIgAE9AIECPwGCAx4CBAabA4MFQwSFhi0FhAdEBocIAQeIidEIgAGOAIECTgGCA04CBAYQA4MF/wSFhoAFhAciBocIxQeIiasIgAEpAIECKAGCAwUCBAZmA4MF0wSFhrcFhAcEBocIAQeIid0IgAEzAIECMgGCAxECBAaoA4MF0QSFhsAFhAcXBocIGQeIiVIIgAF9AIECYgGCAyoCBAZYA4MFaASFhlUFhAd1BocIrweIiVIIgAFfAIECVAGCAzUCBAZZA4MFgASFhmQFhAdxBocIZQeIiS0IgAFLAIECTwGCA3sCBAYvA4MFMwSFhoAFhAdRBocIqweIiQEIgAE5AIECEQGCAwUCBAZHA4MFZgSFhjkFhAc1BocIKQeIiTEIgAFzAIECFQGCAwICBAYKA4MFZgSFhv8FhAemBocIFweIiQYIgAEmAIECIQGCAw0CBAZ5A4MFOQSFhkkFhAcaBocIAQeIiVUIgAEpAIECCgGCA0MCBAaKA4MFTQSFhm4FhAdaBocILweIiXIIgAFlAIECHQGCAxACBAYKA4MFVQSFhoAFhAdlBocIxAeIiRoIgAE5AIECEgGCAwoCBAZmA4MFZgSFhtUFhAciBocIFAeIiSsIgAF1AIECFAGCAw8CBAYkA4MFowSFhoAFhAdEBocIAQeIiRoIgAGKAIECHwGCAyQCBAarA4MFGwSFhqYFhAcmBocILAeIieUIgAFDAIECVwGCAzoCBAapA4MFUgSFhnMFhAcaBocIOweIibMIgAE/AIECOwGCA1oCBAa0A4MFOwSFhqYFhAddBocISQeIiZoIgAEoAIECKAGCAxUCBAZ0A4MFjwSFhtEFhAciBocIJweIia8IgAE5AIECLgGCAxYCBAYYA4MFgASFhgEFhAc2BocIEQeIiSUIgAEvAIECDwGCAxACBAa3A4MFIgSFht8FhAcxBocILQeIibcIgAEuAIECEQGCAyECBAa3A4MFBgSFhmIFhAcPBocIIAeIibcIgAFBAIECIAGCA0kCBAZzA4MFHASFhoAFhAcXBocIgAeIic0IgAEoAIECAwGCAwkCBAZzA4MFMwSFhsAFhAcSBocIBgeIid8IgAFXAIECJQGCAwkCBAZzA4MFOwSFhk0FhAdABocIFQeIiS8IgAFoAIECNwGCAywCBAbaA4MFCQSFhjYFhAc1BocIggeIieIIgAFAAIECWgGCA0YCBAbNA4MFKASFhikFhAcXBocIGgeIiTkIgAE2AIECOQGCA3ACBAa4A4MFBQSFhikFhAcmBocIpgeIidUIgAEeAIECIgGCAxoCBAaFA4MFmASFhnQFhAcKBocIIAeIiYYIgAFLAIECIAGCAwwCBAYzA4MFwASFhv8FhAegBocIKweIiTMIgAEnAIECEwGCAzUCBAbdA4MFGgSFhnIFhAcgBocISQeIif8IgAEfAIECCQGCA0ECBAbqA4MFAgSFhg8FhAcBBocIdgeIiUkIgAFYAIECHwGCAyMCBAZDA4MFZgSFhlUFhAc3BocIugeIiVUIgAE4AIECFQGCAxcCBAZvA4MFOwSFhs0FhActBocIJQeIicAIgAE3AIECJgGCA0YCBAZ8A4MFSQSFhmYFhAcBBocIIgeIiWIIgAFmAIECPQGCA0cCBAYlA4MFIgSFhjUFhAcfBocI8weIicAIgAFFAIECPAGCA0cCBAYmA4MFSQSFhncFhAccBocI3geIiSUIgAFEAIECLQGCA4ACBAYiA4MFAQSFhi8FhAcLBocI9QeIiasIgAE+AIECEQGCAxMCBAZGA4MFkgSFhlUFhAc3BocIPgeIiUYIgAFLAIECDwGCAwkCBAYJA4MFQASFhv8FhAe4BocIdweIiRAIgAElAIECKwGCAyUCBAaaA4MFZASFhqMFhAdVBocIoAeIiQEIgAE/AIECCQGCA1wCBAaIA4MFHASFhkAFhAcgBocIyQeIiVUIgAFWAIECBgGCAxwCBAYFA4MFQASFhv8FhAcZBocI+AeIiQEIgAE4AIECCAGCAxECBAaEA4MFiQSFhv8FhAc3BocIdAeIiYAIgAE6AIECDwGCAxQCBAZSA4MFhwSFhjkFhAcaBocIeQeIiSgIgAGkAIECMgGCAx8CBAaJA4MFmgSFhoUFhAcZBocIIweIidoIgAEzAIECZwGCAywCBAaDA4MFgwSFhnsFhAcfBocIBgeIiZ4IgAFWAIECKAGCA0ACBAaHA4MFlASFhuAFhActBocItweIiYAIgAEWAIECGgGCAxECBAaDA4MF8ASFhpoFhAcOBocIAQeIidEIgAFTAIECDAGCAw0CBAY2A4MFwASFhv8FhAdEBocILweIiRwIgAEtAIECEAGCAxUCBAZbA4MFQASFht4FhAcHBocIAQeIicUIgAE4AIECFQGCAycCBAabA4MFPASFhooFhAcXBocIZgeIidUIgAFVAIECGgGCA1UCBAZVA4MFgASFhoAFhAcgBocIkgeIiasIgAESAIECCwGCAwcCBAY/A4MFkASFhqsFhAcEBocIBAeIifYIgAEjAIECGwGCAwoCBAaSA4MFrgSFhqsFhAcMBocIGgeIiYAIgAG+AIECUAGCAyMCBAZjA4MFtASFhlAFhAd+BocINgeIiS0IgAFVAIECfgGCAy8CBAZXA4MFsASFhjMFhAcpBocIFAeIiSAIgAFlAIECSwGCA4ACBAaLA4MFdgSFhpIFhAd0BocIgAeIiVUIgAE4AIECKQGCAw8CBAawA4MF7ASFhlUFhAclBocICQeIiT4IgAGSAIECJAGCAxMCBAYeA4MFqwSFhv8FhAdhBocIGweIiRQIgAFHAIECHgGCAxECBAZ3A4MFdgSFhv8FhAcRBocIEgeIiYoIgAFlAIECJgGCAzwCBAaKA4MFNwSFhkYFhAcrBocIGgeIiY4IgAGKAIECLQGCAz0CBAY+A4MF2wSFhgEFhAdRBocIvAeIiUAIgAEgAIECKQGCAxQCBAZ1A4MFlwSFho4FhAcUBocIFQeIiaMIgAFwAIECEwGCAwwCBAY9A4MFwwSFhoAFhAcwBocIBAeIiRgIdiUQAF8AAAA/BQAAJQAAAIABjgCBAnIBgoO3AnYlEABfAAAAUQUAABEAAAB2JRAAXwAAAFIFAAARAAAAdiUQAF8AAABTBQAAEQAAAP///////////////////////////////////////////7D2////////////3/H8///////////5/f3////////////0/P//////////6v7+///////////9///////////////2/v//////////7/3+///////////+//7////////////4/v//////////+//+///////////////////////////9/v//////////+/7+///////////+//7////////////+/f/+////////+v/+//7////////+/////////////////////////////////////////////////////////9n/////////////4fzx/f///v/////q+vH6/f/9/v/////+////////////3/7+///////////u/f7+///////////4/v//////////+f7////////////////////////////9////////////9/7////////////////////////////9/v///////////P/////////////////////////////+/v///////////f/////////////////////////////+/f//////////+v/////////////+/////////////////////////////////////////////////////////7r7+v//////////6vv0/v/////////7+/P9/v/+///////9/v//////////7P3+///////////7/f3+/v/////////+/v///////////v7+///////////////////////////+/////////////v7////////////+/////////////////////////////v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////j/////////////+v78/v/////////4/vn9///////////9/f//////////9v39///////////8/vv+/v/////////+/P//////////+P79///////////9//7+///////////7/v//////////9fv+///////////9/f7////////////7/f///////////P3+/////////////v/////////////8////////////+f/+//////////////7//////////////f//////////+v///////////////////////////////////////////v///////////////////////////3YlEABfAAAAVwcAABcAAACLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAKIAYED/gIEBv8DggXkBIOE2wUHCIAGhYaABwkKgAiHiIAJiYqACosBvQCAAoEBgQPyAgQG/wOCBeMEg4TVBQcI/waFhtsHCQqACIeIgAmJioAKiwFqAIACfgGBA+MCBAb8A4IF1gSDhNEFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJiAYED+AIEBv8DggXsBIOE4gUHCP8GhYb/BwkKgAiHiIAJiYqACosBtQCAAoUBgQPuAgQG/gOCBd0Eg4TqBQcI/waFhpoHCQqACIeIgAmJioAKiwFOAIAChgGBA8oCBAb3A4IFxgSDhLQFBwj/BoWG2wcJCoAIh4iACYmKgAqLAQEAgAK5AYED+QIEBv8DggXzBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBuACAApYBgQP3AgQG/wOCBewEg4TgBQcIgAaFhoAHCQqACIeIgAmJioAKiwFNAIACbgGBA9gCBAb/A4IF7ASDhOYFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAJlAYED+wIEBv8DggXxBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBqgCAAosBgQPxAgQG/AOCBewEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwElAIACdAGBA8QCBAbzA4IF5ASDhP8FBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgALMAYED/gIEBv8DggX1BIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBzwCAAqABgQP6AgQG/wOCBe4Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwFmAIACZwGBA+cCBAb/A4IF0wSDhKsFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKYAYED/AIEBv8DggXwBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBsQCAAocBgQPzAgQG/wOCBeoEg4ThBQcIgAaFhoAHCQqACIeIgAmJioAKiwFQAIACgQGBA9MCBAb/A4IFwgSDhOAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9gCAAgEBgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwH/AIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcYAgAIjAYED7QIEBt8DggXBBIOEuwUHCKIGhYagBwkKkQiHiJsJiYo+CosBgwCAAi0BgQPGAgQG3QOCBawEg4SwBQcI3AaFhp0HCQr8CIeI3QmJigEKiwFEAIACLwGBA5ICBAbQA4IFlQSDhKcFBwjdBoWGogcJCv8Ih4jfCYmKgAqLAQEAgAKVAYED8QIEBv8DggXdBIOE4AUHCP8GhYb/BwkKgAiHiIAJiYqACosBuACAAo0BgQPqAgQG/QOCBd4Eg4TcBQcI/waFhscHCQqACIeIgAmJioAKiwFRAIACYwGBA7UCBAbyA4IFsASDhL4FBwj5BoWGygcJCv8Ih4j/CYmKgAqLAQEAgAKBAYED6AIEBv0DggXWBIOExQUHCPIGhYbEBwkK/wiHiP8JiYqACosBYwCAAnkBgQPSAgQG+gOCBckEg4TGBQcI/waFhsoHCQqACIeIgAmJioAKiwEXAIACWwGBA6MCBAbyA4IFqgSDhLsFBwj3BoWG0gcJCv8Ih4j/CYmKgAqLAQEAgALIAYED9gIEBv8DggXqBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBbQCAArIBgQPxAgQG/wOCBecEg4T1BQcI/waFhv8HCQqACIeIgAmJioAKiwEsAIACggGBA8kCBAb9A4IFzQSDhMAFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAKEAYED7wIEBvsDggXbBIOE0QUHCP8GhYalBwkKgAiHiIAJiYqACosBXgCAAogBgQPhAgQG+wOCBdoEg4S+BQcI/waFhv8HCQqACIeIgAmJioAKiwEWAIACZAGBA64CBAb1A4IFugSDhKEFBwj/BoWGxwcJCoAIh4iACYmKgAqLAQEAgAK2AYED+QIEBv8DggXoBIOE6wUHCIAGhYaABwkKgAiHiIAJiYqACosBfACAAo8BgQPxAgQG/wOCBeMEg4TqBQcIgAaFhoAHCQqACIeIgAmJioAKiwEjAIACTQGBA7UCBAb7A4IFwQSDhNMFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAKdAYED9wIEBv8DggXsBIOE5wUHCP8GhYb/BwkKgAiHiIAJiYqACosBeQCAAo0BgQPrAgQG/wOCBeEEg4TjBQcI/waFhv8HCQqACIeIgAmJioAKiwEtAIACYwGBA7wCBAb7A4IFwwSDhNkFBwj/BoWG4AcJCoAIh4iACYmKgAqLAQEAgAIBAYED+wIEBv8DggXVBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBywCAAgEBgQP4AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGJAIACAQGBA7ECBAb/A4IF4ASDhP8FBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAIJAYED+AIEBvsDggXPBIOE0AUHCP8GhYbABwkKgAiHiIAJiYqACosBrwCAAg0BgQPgAgQG8wOCBcEEg4S5BQcI+QaFhsYHCQr/CIeI/wmJioAKiwFJAIACEQGBA6sCBAbdA4IFoQSDhLMFBwjsBoWGpwcJCv8Ih4jqCYmKgAqLAQEAgAJfAYED9wIEBv0DggXUBIOEtwUHCP8GhYb/BwkKgAiHiIAJiYqACosB7wCAAloBgQP0AgQG+gOCBdMEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwGbAIACTQGBA8MCBAb4A4IFvASDhMMFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAIYAYED7wIEBvsDggXaBIOE2wUHCP8GhYbNBwkKgAiHiIAJiYqACosByQCAAjMBgQPbAgQG/wOCBcQEg4S6BQcIgAaFhoAHCQqACIeIgAmJioAKiwFFAIACLgGBA74CBAbvA4IFyQSDhNoFBwj/BoWG5AcJCoAIh4iACYmKgAqLAQEAgAK/AYED+wIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB3wCAAqUBgQP5AgQG/wOCBdUEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGNAIACfAGBA/gCBAb/A4IF/wSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIQAYED+AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBvgCAAiQBgQPmAgQG/wOCBewEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGVAIACAQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgALiAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9wCAAsABgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwHwAIACgAGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKGAYED/AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB1QCAAj4BgQP6AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwE3AIACXQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcoAgAIYAYED1QIEBusDggW6BIOEvwUHCNwGhYagBwkK8AiHiK8JiYr/CosBfgCAAiYBgQO2AgQG6AOCBakEg4S4BQcI5AaFhq4HCQr/CIeIuwmJioAKiwE9AIACLgGBA4oCBAbbA4IFlwSDhLIFBwjwBoWGqgcJCv8Ih4jYCYmKgAqLAQEAgAJwAYED5gIEBvoDggXHBIOEvwUHCPcGhYafBwkK/wiHiP8JiYqACosBpgCAAm0BgQPkAgQG/AOCBdMEg4TXBQcI/waFhq4HCQqACIeIgAmJioAKiwEnAIACTQGBA6ICBAboA4IFrASDhLQFBwj1BoWGsgcJCv8Ih4j/CYmKgAqLAQEAgAI0AYED3AIEBvYDggXGBIOExwUHCPkGhYbcBwkK/wiHiP8JiYqACosBfACAAkoBgQO/AgQG8wOCBbcEg4TBBQcI+gaFht0HCQr/CIeI/wmJioAKiwEYAIACRwGBA4ICBAbbA4IFmgSDhKoFBwjzBoWGtgcJCv8Ih4j/CYmKgAqLAQEAgAK2AYED4QIEBvkDggXbBIOE8AUHCP8GhYbgBwkKgAiHiIAJiYqACosBlQCAApYBgQPiAgQG/AOCBdgEg4TNBQcI/waFhqsHCQqACIeIgAmJioAKiwEcAIACbAGBA6oCBAbyA4IFtwSDhMIFBwj+BoWG3wcJCv8Ih4j/CYmKgAqLAQEAgAJRAYED5gIEBvwDggXMBIOEywUHCP8GhYbABwkKgAiHiIAJiYqACosBewCAAmYBgQPRAgQG9wOCBbwEg4TEBQcI/waFhukHCQqACIeIgAmJioAKiwEUAIACXwGBA5kCBAbzA4IFpASDhK0FBwj/BoWGywcJCoAIh4iACYmKgAqLAQEAgALeAYED+AIEBv8DggXYBIOE1QUHCIAGhYaABwkKgAiHiIAJiYqACosBqACAAq8BgQP2AgQG/AOCBesEg4TNBQcI/waFhv8HCQqACIeIgAmJioAKiwEvAIACdAGBA9cCBAb/A4IF0wSDhNQFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJ5AYED7AIEBv0DggXUBIOE1gUHCP8GhYb/BwkKgAiHiIAJiYqACosBjQCAAlQBgQPVAgQG/AOCBckEg4TKBQcI/waFhtsHCQqACIeIgAmJioAKiwEqAIACUAGBA6ACBAbwA4IFogSDhLkFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9ACAAgEBgQP/AgQG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AAAA8gEAAAAAAAABAAAAAQAAAPMBAAAAAAAABAAAAAQAAACqAQAAQ2ljcHByaW1hcmllc3RyYW5zZmVybWF0cml4ZnVsbF9yYW5nZURpbWVuc2lvbkVycm9ySW5zdWZmaWNpZW50TWVtb3J5AAAAAAAAACAAAAAIAAAA9AEAAAAAAAAEAAAABAAAAPUBAABsaW1pdHNzdXBwb3J0ZWQA9gEAAAwAAAAEAAAA9wEAAFBhcmFtZXRlckVycm9yQ2FwYWNpdHlPdmVyZmxvdwAAAAAAAAQAAAAEAAAA+AEAAEFsbG9jRXJybGF5b3V0Q3NwbGF0KGNlbnRlcjogAAAATtURAA8AAABv0xEACwAAAHrTEQAHAAAAgdMRAAoAAACL0xEADgAAAF4HEgABAAAARXhhY3ROYW1lUGF0aEV4dGVuc2lvblVua25vd25pbnZhbGlkIHNlZWsgdG8gYSBuZWdhdGl2ZSBvciBvdmVyZmxvd2luZyBwb3NpdGlvbgCt1REAMgAAABQAAACmJhAAWgAAAD0AAAAkAAAARW1wdHlJbnZhbGlkRGlnaXRQb3NPdmVyZmxvd05lZ092ZXJmbG93WmVybwAAAAAABAAAAAQAAAD5AQAAVW5zdXBwb3J0ZWRFcnJvclBuZ0pwZWdHaWZXZWJQUG5tVGlmZlRnYURkc0JtcEljb0hkck9wZW5FeHJGYXJiZmVsZEF2aWZRb2lQY3gAAAAAAAAABAAAAAQAAAD6AQAAUGFyc2VJbnRFcnJvckE4TDFMYTFSZ2IxUmdiYTFMMkxhMlJnYjJSZ2JhMkw0TGE0UmdiNFJnYmE0UmdiNXgxTDhMYThSZ2I4UmdiYThMMTZMYTE2UmdiMTZSZ2JhMTZCZ3I4QmdyYThSZ2IzMkZSZ2JhMzJGQ215azhDbXlrMTZMaW1pdFN1cHBvcnREaW1lbnNpb25NaXNtYXRjaEZhaWxlZEFscmVhZHkAAAAAAAAEAAAABAAAAPsBAABSZ2JDaWNwUmVxdWlyZWRHZW5lcmljTm9Nb3JlRGF0YQAAAAAEAAAAAQAAAPwBAABDaWNwTWlzbWF0Y2hleHBlY3RlZGZvdW5kAAAAAAAAAAgAAAAEAAAAxwAAAAAAAAAIAAAABAAAAHAAAADHAAAAoNcRALAAAADIAAAAsgAAALAAAACzAAAA/QEAACgAAAAI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ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9ybWlkID4gbGVu/wASAAkAAABzdGRvdXRmYWlsZWQgcHJpbnRpbmcgdG8gAAAAFgESABMAAABd/BEAAgAAANoQEAAbAAAAjQQAAAkAAABvcGVyYXRpb24gc3VjY2Vzc2Z1bG9uZS10aW1lIGluaXRpYWxpemF0aW9uIG1heSBub3QgYmUgcGVyZm9ybWVkIHJlY3Vyc2l2ZWx5YAESADgAAABjYW5ub3QgcmVjdXJzaXZlbHkgYWNxdWlyZSBtdXRleKABEgAgAAAA6AcQACwAAAATAAAACQAAAGxvY2sgY291bnQgb3ZlcmZsb3cgaW4gcmVlbnRyYW50IG11dGV4AADlFBAAJgAAACMBAAAtAAAA7xoQACMAAADXAAAAFAAAAO8aEAAjAAAA1wAAADEAAABMYXp5TG9jayBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAAwAhIALgAAAMMUEAAhAAAAlwEAAAUAAABmYWlsZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIHRocmVhZCBJRDogYml0c3BhY2UgZXhoYXVzdGVkAHgCEgA3AAAAph4QAB0AAADUBAAADQAAADoKAACFAQAADAAAAAQAAABIAgAASQIAAEoCAAAAAAAACAAAAAQAAABLAgAATAIAAE0CAABOAgAATwIAABAAAAAEAAAAUAIAAFECAABSAgAAUwIAAGNhbm5vdCBtb2RpZnkgdGhlIHBhbmljIGhvb2sgZnJvbSBhIHBhbmlja2luZyB0aHJlYWQcAxIANAAAAA4WEAAcAAAAkAAAAAkAAAAAAAAABAAAAAQAAABUAgAAV291bGRCbG9jayAob3MgZXJyb3IgAAAAAQAAAAAAAACCAxIACwAAAF4HEgABAAAA2hAQABsAAABcAwAAFAAAAE5vdEZvdW5kUGVybWlzc2lvbkRlbmllZENvbm5lY3Rpb25SZWZ1c2VkQ29ubmVjdGlvblJlc2V0SG9zdFVucmVhY2hhYmxlTmV0d29ya1VucmVhY2hhYmxlQ29ubmVjdGlvbkFib3J0ZWROb3RDb25uZWN0ZWRBZGRySW5Vc2VBZGRyTm90QXZhaWxhYmxlTmV0d29ya0Rvd25Ccm9rZW5QaXBlQWxyZWFkeUV4aXN0c05vdEFEaXJlY3RvcnlJc0FEaXJlY3RvcnlEaXJlY3RvcnlOb3RFbXB0eVJlYWRPbmx5RmlsZXN5c3RlbUZpbGVzeXN0ZW1Mb29wU3RhbGVOZXR3b3JrRmlsZUhhbmRsZUludmFsaWRJbnB1dEludmFsaWREYXRhVGltZWRPdXRXcml0ZVplcm9TdG9yYWdlRnVsbE5vdFNlZWthYmxlUXVvdGFFeGNlZWRlZEZpbGVUb29MYXJnZVJlc291cmNlQnVzeUV4ZWN1dGFibGVGaWxlQnVzeURlYWRsb2NrQ3Jvc3Nlc0RldmljZXNUb29NYW55TGlua3NJbnZhbGlkRmlsZW5hbWVBcmd1bWVudExpc3RUb29Mb25nSW50ZXJydXB0ZWRVbnN1cHBvcnRlZFVuZXhwZWN0ZWRFb2ZPdXRPZk1lbW9yeUluUHJvZ3Jlc3NPdGhlclVuY2F0ZWdvcml6ZWR1bnN1cHBvcnRlZCBiYWNrdHJhY2VkaXNhYmxlZCBiYWNrdHJhY2UAXhsQABwAAACKAQAAHQAAAFUCAAAQAAAABAAAAFYCAABXAgAAcGFuaWNrZWQgYXQgAQAAAAAAAABQ/BEAAQAAAFD8EQABAAAAAAAAAAgAAAAEAAAAWAIAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAACgiEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAAAoIhAAKgAAALcEAAANAAAA4BMQAC0AAAAWAQAAKQAAAIUBAAAMAAAABAAAAFkCAABudWxsIHBvaW50ZXIgcGFzc2VkIHRvIHJ1c3RyZWN1cnNpdmUgdXNlIG9mIGFuIG9iamVjdCBkZXRlY3RlZCB3aGljaCB3b3VsZCBsZWFkIHRvIHVuc2FmZSBhbGlhc2luZyBpbiBydXN0SnNWYWx1ZSgpAFYHEgAIAAAAXgcSAAEAAAB/FhAAaQAAAHwAAAARAAAAfxYQAGkAAACJAAAAEQAAAFpJUDY0IGZvb3RlciBpbmRpY2F0ZXMgbW9yZSBmaWxlcyBvbiB0aGlzIGRpc2sgdGhhbiBpbiB0aGUgd2hvbGUgYXJjaGl2ZUludmFsaWQgY2VudHJhbCBkaXJlY3Rvcnkgc2l6ZSBvciBvZmZzZXRmYWlsZWQgdG8gZmlsbCB3aG9sZSBidWZmZXIAAAgSABsAAAAlAAAAAgAAABwIEgBDUkMzMiBjaGVja3N1bSBmYWlsZWQgb24gVW5pY29kZSBleHRyYSBmaWVsZFVuaWNvZGUgZXh0cmEgZmllbGQgaXMgdG9vIHNtYWxsRXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkIGlzIGVtcHR5AAAA/g8QAHQAAABKAAAAJAAAAGZsYWdzIGFuZCBsZW4gZG9uJ3QgbWF0Y2ggaW4gZXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgYXR0cmlidXRlIHNpemVOVEZTIGV4dHJhIGZpZWxkIGhhcyBhbiB1bnN1cHBvcnRlZCBhdHRyaWJ1dGUgdGFnTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAAQGAAA6AAAARXh0cmEgZmllbGQgY29udGVudCBleGNlZWRzIGRlY2xhcmVkIGxlbmd0aADOIRAAWQAAAAYGAAA7AAAAWklQNjQgZXh0cmEgZmllbGQgdHJ1bmNhdGVkWklQNjQgZXh0cmEtZGF0YSBmaWVsZCBpcyB0aGUgd3JvbmcgbGVuZ3RoAAAAziEQAFkAAABeBgAAEgAAAEFFUyBleHRyYSBmaWVsZCB0cnVuY2F0ZWRJbnZhbGlkIEFFUyBlbmNyeXB0aW9uIHN0cmVuZ3RoSW52YWxpZCBBRVMgdmVuZG9yIHZlcnNpb25JbnZhbGlkIEFFUyB2ZW5kb3JBRVMgZXh0cmEgZGF0YSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAIgGAAAfAAAARXh0cmEgZmllbGQgY29udGVudCB0cnVuY2F0ZWRFeHRyYSBmaWVsZCBoZWFkZXIgdHJ1bmNhdGVkSW52YWxpZCBjaGVja3N1bQBBkJbIAAvjBAEAAAC0AQAAKCkAAMQeEABQAAAAKgIAABEAAABpL28gZXJyb3I6IAAsCxIACwAAAGludmFsaWQgWmlwIGFyY2hpdmU6IAAAAEALEgAVAAAAdW5zdXBwb3J0ZWQgWmlwIGFyY2hpdmU6IAAAAGALEgAZAAAAc3BlY2lmaWVkIGZpbGUgbm90IGZvdW5kIGluIGFyY2hpdmVwcm92aWRlZCBwYXNzd29yZCBpcyBpbmNvcnJlY3QAAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAFV0ZjhFcnJvcnZhbGlkX3VwX3RvZXJyb3JfbGVuAAAAWgIAAAwAAAAEAAAAWwIAAAAAAAAEAAAABAAAAFwCAABGcm9tVXRmOEVycm9yYnl0ZXNlcnJvck5vbmVTb21lACYcEABvAAAAwwAAAAkAAAAmHBAAbwAAALwAAAAqAAAAJhwQAG8AAAC5AAAAKgAAAJsBEABnAAAAdAEAACkAAACbARAAZwAAAHkBAAAcAAAAmwEQAGcAAAB5AQAALQAA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AGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUQERIACAcJBgoFCwQMAw0CDgEPAABZFxAAYAAAAJMAAAAJAAAAAABgB1AAAAgQAAAIcwAUCB8AEgdwAAAIMAAACMAAAAkKABAHYAAACCAAAAigAAAJAAAACIAAAAhAAAAI4AAACQYAEAdYAAAIGAAACJAAAAk7ABMHeAAACDgAAAjQAAAJEQARB2gAAAgoAAAIsAAACQgAAAiIAAAISAAACPAAAAkEABAHVAAACBQAAAjjABUIKwATB3QAAAg0AAAIyAAACQ0AEQdkAAAIJAAACKgAAAkEAAAIhAAACEQAAAjoAAAJCAAQB1wAAAgcAAAImAAACVMAFAd8AAAIPAAACNgAAAkXABIHbAAACCwAAAi4AAAJDAAACIwAAAhMAAAI+AAACQMAEAdSAAAIEgAACKMAFQgjABMHcgAACDIAAAjEAAAJCwARB2IAAAgiAAAIpAAACQIAAAiCAAAIQgAACOQAAAkHABAHWgAACBoAAAiUAAAJQwAUB3oAAAg6AAAI1AAACRMAEgdqAAAIKgAACLQAAAkKAAAIigAACEoAAAj0AAAJBQAQB1YAAAgWAAAIAABACDMAEwd2AAAINgAACMwAAAkPABEHZgAACCYAAAisAAAJBgAACIYAAAhGAAAI7AAACQkAEAdeAAAIHgAACJwAAAljABQHfgAACD4AAAjcAAAJGwASB24AAAguAAAIvAAACQ4AAAiOAAAITgAACPwAAAkAAGAHUQAACBEAAAiDABUIHwASB3EAAAgxAAAIwgAACQoAEAdhAAAIIQAACKIAAAkBAAAIgQAACEEAAAjiAAAJBgAQB1kAAAgZAAAIkgAACTsAEwd5AAAIOQAACNIAAAkRABEHaQAACCkAAAiyAAAJCQAACIkAAAhJAAAI8gAACQQAEAdVAAAIFQAACAIBEAgrABMHdQAACDUAAAjKAAAJDQARB2UAAAglAAAIqgAACQUAAAiFAAAIRQAACOoAAAkIABAHXQAACB0AAAiaAAAJUwAUB30AAAg9AAAI2gAACRcAEgdtAAAILQAACLoAAAkNAAAIjQAACE0AAAj6AAAJAwAQB1MAAAgTAAAIwwAVCCMAEwdzAAAIMwAACMYAAAkLABEHYwAACCMAAAimAAAJAwAACIMAAAhDAAAI5gAACQcAEAdbAAAIGwAACJYAAAlDABQHewAACDsAAAjWAAAJEwASB2sAAAgrAAAItgAACQsAAAiLAAAISwAACPYAAAkFABAHVwAACBcAAAgAAEAIMwATB3cAAAg3AAAIzgAACQ8AEQdnAAAIJwAACK4AAAkHAAAIhwAACEcAAAjuAAAJCQAQB18AAAgfAAAIngAACWMAFAd/AAAIPwAACN4AAAkbABIHbwAACC8AAAi+AAAJDwAACI8AAAhPAAAI/gAACQAAYAdQAAAIEAAACHMAFAgfABIHcAAACDAAAAjBAAAJCgAQB2AAAAggAAAIoQAACQAAAAiAAAAIQAAACOEAAAkGABAHWAAACBgAAAiRAAAJOwATB3gAAAg4AAAI0QAACREAEQdoAAAIKAAACLEAAAkIAAAIiAAACEgAAAjxAAAJBAAQB1QAAAgUAAAI4wAVCCsAEwd0AAAINAAACMkAAAkNABEHZAAACCQAAAipAAAJBAAACIQAAAhEAAAI6QAACQgAEAdcAAAIHAAACJkAAAlTABQHfAAACDwAAAjZAAAJFwASB2wAAAgsAAAIuQAACQwAAAiMAAAITAAACPkAAAkDABAHUgAACBIAAAijABUIIwATB3IAAAgyAAAIxQAACQsAEQdiAAAIIgAACKUAAAkCAAAIggAACEIAAAjlAAAJBwAQB1oAAAgaAAAIlQAACUMAFAd6AAAIOgAACNUAAAkTABIHagAACCoAAAi1AAAJCgAACIoAAAhKAAAI9QAACQUAEAdWAAAIFgAACAAAQAgzABMHdgAACDYAAAjNAAAJDwARB2YAAAgmAAAIrQAACQYAAAiGAAAIRgAACO0AAAkJABAHXgAACB4AAAidAAAJYwAUB34AAAg+AAAI3QAACRsAEgduAAAILgAACL0AAAkOAAAIjgAACE4AAAj9AAAJAABgB1EAAAgRAAAIgwAVCB8AEgdxAAAIMQAACMMAAAkKABAHYQAACCEAAAijAAAJAQAACIEAAAhBAAAI4wAACQYAEAdZAAAIGQAACJMAAAk7ABMHeQAACDkAAAjTAAAJEQARB2kAAAgpAAAIswAACQkAAAiJAAAISQAACPMAAAkEABAHVQAACBUAAAgCARAIKwATB3UAAAg1AAAIywAACQ0AEQdlAAAIJQAACKsAAAkFAAAIhQAA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", self.location.href);\n }\n const imports = __wbg_get_imports();\n if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) {\n module_or_path = fetch(module_or_path);\n }\n const { instance } = await __wbg_load(await module_or_path, imports);\n return __wbg_finalize_init(instance);\n }\n const rpcHandlers = {\n sortSplats16,\n sortSplats32,\n loadPackedSplats,\n loadExtSplats,\n tinyLodPackedSplats,\n qualityLodPackedSplats,\n tinyLodExtSplats,\n qualityLodExtSplats,\n newLodTree,\n newSharedLodTree,\n initLodTree,\n disposeLodTree,\n updateLodTrees,\n traverseLodTrees,\n getLodTreeLevel,\n nextChunk\n };\n async function onMessage(event) {\n const {\n id,\n name,\n args\n } = event.data;\n try {\n const handler = rpcHandlers[name];\n if (!handler) {\n throw new Error(`Unknown worker RPC: ${name}`);\n }\n const sendStatus = (data) => {\n self.postMessage(\n { id, status: data },\n { transfer: getTransferable(data) }\n );\n };\n const result = await handler(args, { sendStatus });\n self.postMessage({ id, result }, { transfer: getTransferable(result) });\n } catch (error) {\n console.warn(`Worker error: ${error}`);\n self.postMessage({ id, error }, { transfer: getTransferable(error) });\n }\n }\n function sortSplats16({\n numSplats,\n readback,\n ordering\n }) {\n const activeSplats = sort_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n }\n function sortSplats32({\n numSplats,\n readback,\n ordering\n }) {\n const activeSplats = sort32_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n }\n async function decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n }) {\n if (fileBytes) {\n const CHUNK_SIZE = 1048576;\n for (let i = 0; i < fileBytes.length; i += CHUNK_SIZE) {\n decoder.push(\n fileBytes.subarray(i, Math.min(i + CHUNK_SIZE, fileBytes.length))\n );\n }\n } else if (url) {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : void 0,\n credentials: withCredentials ? "include" : "same-origin"\n });\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch "${url}": ${response.status} ${response.statusText}`\n );\n }\n const readStream = response.body.getReader();\n const contentLength = Number.parseInt(\n response.headers.get("Content-Length") || "0"\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n let loaded = 0;\n while (true) {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n break;\n }\n loaded += value.length;\n sendStatus({ loaded, total });\n decoder.push(value);\n }\n } else if (chunked) {\n let loaded = 0;\n const total = chunkedLength ?? 0;\n while (true) {\n const readNextChunk = new Promise((resolve) => {\n nextChunkWaiter = resolve;\n });\n sendStatus({ nextChunk: true });\n const nextChunk2 = await readNextChunk;\n if (nextChunk2.length === 0) {\n break;\n }\n decoder.push(nextChunk2);\n loaded += nextChunk2.length;\n sendStatus({ progress: { loaded, total } });\n }\n if (total === 0) {\n sendStatus({ progress: { loaded, total: loaded } });\n }\n } else {\n throw new Error("No url or fileBytes provided");\n }\n const decoded = decoder.finish();\n return decoded;\n }\n function toPackedResult(packed) {\n return {\n numSplats: packed.numSplats,\n packedArray: packed.packed,\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3: packed.sh3,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree\n },\n splatEncoding: packed.splatEncoding\n };\n }\n async function loadPackedSplats({\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n encoding,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes\n }, {\n sendStatus\n }) {\n if (!lod) {\n const decoder2 = decode_to_packedsplats(\n fileType,\n pathName ?? url,\n encoding,\n sh1Codes,\n sh2Codes,\n sh3Codes\n );\n const decoded2 = await decodeBytesUrl({\n decoder: decoder2,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n const result2 = toPackedResult(decoded2);\n if (result2.splatEncoding.lodOpacity) {\n return { lodSplats: result2 };\n }\n return result2;\n }\n const decoder = decode_to_csplatarray(fileType, pathName ?? url, encoding);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n if (decoded.has_lod()) {\n const result2 = toPackedResult(\n decoded.to_packedsplats_lod()\n );\n return { lodSplats: result2 };\n }\n if (lodAbove !== void 0) {\n if (decoded.len() < lodAbove) {\n return toPackedResult(decoded.to_packedsplats());\n }\n }\n let result = {};\n if (nonLod) {\n result = toPackedResult(decoded.to_packedsplats());\n }\n const initialSplats = decoded.len();\n const lodName = lod === "quality" ? "Bhatt" : "Tiny";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`\n );\n const lodStart = performance.now();\n if (lod === "quality") {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.25));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`\n );\n const lodPacked = decoded.to_packedsplats_lod();\n result.lodSplats = toPackedResult(lodPacked);\n return result;\n }\n function toExtResult(packed) {\n return {\n numSplats: packed.numSplats,\n extArrays: [packed.ext0, packed.ext1],\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3a: packed.sh3a,\n sh3b: packed.sh3b,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree\n }\n };\n }\n async function loadExtSplats({\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes\n }, {\n sendStatus\n }) {\n if (!lod) {\n const decoder2 = decode_to_extsplats(\n fileType,\n pathName ?? url,\n sh1Codes,\n sh2Codes,\n sh3Codes\n );\n const decoded2 = await decodeBytesUrl({\n decoder: decoder2,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n const result2 = toExtResult(decoded2);\n if (result2.extra.lodTree) {\n return { lodSplats: result2 };\n }\n return result2;\n }\n const decoder = decode_to_gsplatarray(fileType, pathName ?? url);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n if (decoded.has_lod()) {\n return {\n lodSplats: toExtResult(decoded.to_extsplats_lod())\n };\n }\n if (lodAbove !== void 0) {\n if (decoded.len() < lodAbove) {\n return toExtResult(decoded.to_extsplats());\n }\n }\n let result = {};\n if (nonLod) {\n result = toExtResult(decoded.to_extsplats());\n }\n const initialSplats = decoded.len();\n const lodName = lod === "quality" ? "Bhatt" : "Tiny";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`\n );\n const lodStart = performance.now();\n if (lod === "quality") {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.75));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`\n );\n const lodPacked = decoded.to_extsplats_lod();\n result.lodSplats = toExtResult(lodPacked);\n return result;\n }\n async function tinyLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_packedsplats(\n numSplats,\n packedArray,\n extra,\n base,\n filter,\n rgba,\n encoding\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n async function qualityLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_packedsplats(\n numSplats,\n packedArray,\n extra,\n base,\n rgba,\n encoding\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n async function tinyLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra,\n base,\n filter,\n rgba\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n async function qualityLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra,\n base,\n rgba\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n function newLodTree({\n capacity\n }) {\n const { lodId } = new_lod_tree(capacity);\n return { lodId };\n }\n function newSharedLodTree({\n lodId\n }) {\n const { lodId: newLodId } = new_shared_lod_tree(lodId);\n return { lodId: newLodId };\n }\n function initLodTree({\n numSplats,\n lodTree\n }) {\n const { lodId, chunkToPage } = init_lod_tree(numSplats, lodTree);\n return { lodId, chunkToPage };\n }\n function disposeLodTree({ lodId }) {\n dispose_lod_tree(lodId);\n }\n function updateLodTrees({\n ranges\n }) {\n const lodIds = new Uint32Array(ranges.map(({ lodId }) => lodId));\n const pageBases = new Uint32Array(ranges.map(({ pageBase }) => pageBase));\n const chunkBases = new Uint32Array(ranges.map(({ chunkBase }) => chunkBase));\n const counts = new Uint32Array(ranges.map(({ count }) => count));\n const lodTreeData = ranges.map(({ lodTreeData: lodTreeData2 }) => lodTreeData2);\n update_lod_trees(\n lodIds,\n pageBases,\n chunkBases,\n counts,\n lodTreeData\n );\n }\n function traverseLodTrees({\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n instances\n }) {\n const keyInstances = Object.entries(instances);\n const lodIds = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.lodId)\n );\n const rootPages = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.rootPage ?? 4294967295)\n );\n const viewToObjects = new Float32Array(\n keyInstances.flatMap(([_key, instance]) => {\n if (instance.viewToObjectCols.length !== 16) {\n throw new Error("Incorrect array size for viewToObjectCols");\n }\n return instance.viewToObjectCols;\n })\n );\n const lodScales = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.lodScale)\n );\n const behindFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.behindFoveate)\n );\n const coneFov0s = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov0)\n );\n const coneFovs = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov)\n );\n const coneFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFoveate)\n );\n const result = traverse_lod_trees(\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n lodIds,\n rootPages,\n viewToObjects,\n lodScales,\n behindFoveates,\n coneFoveates,\n coneFov0s,\n coneFovs\n );\n const { instanceIndices, chunks, pixelLimit } = result;\n const indices = keyInstances.reduce(\n (indices2, [key, _instance], index) => {\n indices2[key] = instanceIndices[index];\n return indices2;\n },\n {}\n );\n return {\n keyIndices: indices,\n chunks,\n pixelLimit\n };\n }\n function getLodTreeLevel({\n lodId,\n level\n }) {\n return get_lod_tree_level(lodId, level);\n }\n let nextChunkWaiter = (_chunk) => {\n };\n async function nextChunk({ chunk }) {\n nextChunkWaiter(chunk);\n }\n function getTransferable(ctx) {\n const buffers = [];\n const seen = /* @__PURE__ */ new Set();\n function traverse(obj) {\n if (obj && typeof obj === "object" && !seen.has(obj)) {\n seen.add(obj);\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n buffers.push(obj.buffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n traverse(ctx);\n return buffers;\n }\n async function initialize() {\n const pending = [];\n const bufferMessage = (event) => {\n pending.push(event);\n };\n self.addEventListener("message", bufferMessage);\n await __wbg_init();\n self.removeEventListener("message", bufferMessage);\n self.addEventListener("message", onMessage);\n for (const event of pending) {\n onMessage(event);\n }\n pending.length = 0;\n }\n initialize().catch(console.error);\n})();\n//# sourceMappingURL=worker-On-THXgb.js.map\n'; -const blob = typeof self !== "undefined" && self.Blob && new Blob([jsContent], { type: "text/javascript;charset=utf-8" }); -function WorkerWrapper(options) { - let objURL; - try { - objURL = blob && (self.URL || self.webkitURL).createObjectURL(blob); - if (!objURL) throw ""; - const worker = new Worker(objURL, { - name: options == null ? void 0 : options.name - }); - worker.addEventListener("error", () => { - (self.URL || self.webkitURL).revokeObjectURL(objURL); - }); - return worker; - } catch (e) { - return new Worker( - "data:text/javascript;charset=utf-8," + encodeURIComponent(jsContent), - { - name: options == null ? void 0 : options.name - } - ); - } finally { - objURL && (self.URL || self.webkitURL).revokeObjectURL(objURL); +class DynoIvec4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "ivec4", value, update }); } } -const _SplatWorker = class _SplatWorker { - constructor() { - this.queue = null; - this.messages = {}; - this.worker = new WorkerWrapper(); - this.worker.onmessage = (event) => this.onMessage(event); +class DynoVec4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "vec4", value, update }); } - onMessage(event) { - var _a2; - const { id, result, error, status } = event.data; - const promise = this.messages[id]; - if (promise) { - if (error !== void 0) { - delete this.messages[id]; - promise.reject(error); - } else if (status !== void 0) { - (_a2 = promise.onStatus) == null ? void 0 : _a2.call(promise, status); - } else { - delete this.messages[id]; - promise.resolve(result); - } - } +} +class DynoMat2 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat2", value, update }); } - tryExclusive(callback) { - return this.queue == null ? this.exclusive(callback) : null; +} +class DynoMat2x2 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat2x2", value, update }); } - async exclusive(callback) { - const queue = this.queue; - if (queue != null) { - await new Promise((resolve) => { - queue.push(() => resolve(void 0)); - }); - } else { - this.queue = []; - } - try { - return await callback(this); - } finally { - if (this.queue != null) { - if (this.queue.length === 0) { - this.queue = null; - } else { - const waiter = this.queue.shift(); - waiter(); - } - } - } +} +class DynoMat2x3 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat2x3", value, update }); } - async call(name, args, options = {}) { - const id = ++_SplatWorker.currentId; - const promise = new Promise((resolve, reject) => { - this.messages[id] = { resolve, reject, onStatus: options.onStatus }; - }); - this.worker.postMessage( - { id, name, args }, - { transfer: getTransferable(args) } - ); - return await promise; +} +class DynoMat2x4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat2x4", value, update }); } - dispose() { - this.worker.terminate(); - const messages = Object.values(this.messages); - this.messages = {}; - for (const message of messages) { - message.reject(new Error("Worker terminate")); - } +} +class DynoMat3 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat3", value, update }); } -}; -_SplatWorker.currentId = 0; -let SplatWorker = _SplatWorker; -class NewSplatWorkerPool { - constructor(maxWorkers2 = 4) { - this.numWorkers = 0; - this.freelist = []; - this.queue = []; - this.maxWorkers = maxWorkers2; +} +class DynoMat3x2 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat3x2", value, update }); } - async withWorker(callback) { - const worker = await this.allocWorker(); - try { - return await callback(worker); - } finally { - this.freeWorker(worker); - } +} +class DynoMat3x3 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat3x3", value, update }); } - async allocWorker() { - const worker = this.freelist.pop(); - if (worker) { - return worker; - } - if (this.numWorkers < this.maxWorkers) { - const worker2 = new SplatWorker(); - this.numWorkers += 1; - return worker2; - } - return new Promise((resolve) => { - this.queue.push(resolve); - }); +} +class DynoMat3x4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat3x4", value, update }); } - freeWorker(worker) { - if (this.numWorkers > this.maxWorkers) { - this.numWorkers -= 1; - return; - } - const waiter = this.queue.shift(); - if (waiter) { - waiter(worker); - return; - } - this.freelist.push(worker); +} +class DynoMat4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat4", value, update }); } } -const workerPool = new NewSplatWorkerPool(); -const Gsplat = { type: "Gsplat" }; -const CovSplat = { type: "CovSplat" }; -const TPackedSplats = { type: "PackedSplats" }; -const TExtSplats = { type: "ExtSplats" }; -const TCovSplats = { type: "CovSplats" }; -const numPackedSplats = (packedSplats) => new NumPackedSplats({ packedSplats }); -const readPackedSplat = (packedSplats, index) => new ReadPackedSplat({ packedSplats, index }); -const readPackedSplatRange = (packedSplats, index, base, count) => new ReadPackedSplatRange({ packedSplats, index, base, count }); -const numExtSplats = (extSplats) => new NumExtSplats({ extSplats }); -const readExtSplat = (extSplats, index) => new ReadExtSplat({ extSplats, index }); -const numCovSplats = (covsplats) => new NumCovSplats({ covsplats }); -const readCovSplat = (covSplats, index) => new ReadCovSplat({ covSplats, index }); -const gsplatToCovSplat = (gsplat) => new GsplatToCovSplat({ gsplat }); -const splitGsplat = (gsplat) => new SplitGsplat({ gsplat }); -const combineGsplat = ({ - gsplat, - flags, - index, - center, - scales, - quaternion, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b -}) => { - return new CombineGsplat({ - gsplat, - flags, - index, - center, - scales, - quaternion, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b - }); -}; -const gsplatNormal = (gsplat) => new GsplatNormal({ gsplat }); -const transformGsplat = (gsplat, { - scale, - rotate, - translate, - recolor -}) => { - return new TransformGsplat({ gsplat, scale, rotate, translate, recolor }); -}; -const splatTexCoord = (index) => new SplatTexCoord({ index }); -const pagedSplatTexCoord = (index) => new PagedSplatTexCoord({ index }); -const defineGsplat = unindent(` - struct Gsplat { - vec3 center; - uint flags; - vec3 scales; - int index; - vec4 quaternion; - vec4 rgba; - }; - const uint GSPLAT_FLAG_ACTIVE = 1u << 0u; - - bool isGsplatActive(uint flags) { - return (flags & GSPLAT_FLAG_ACTIVE) != 0u; - } -`); -const defineCovSplat = unindent(` - struct CovSplat { - vec3 center; - uint flags; - vec4 rgba; - vec3 xxyyzz; - int index; - vec3 xyxzyz; - }; - - bool isCovSplatActive(uint flags) { - return (flags & GSPLAT_FLAG_ACTIVE) != 0u; - } -`); -const definePackedSplats = unindent(` - struct PackedSplats { - usampler2DArray textureArray; - int numSplats; - vec4 rgbMinMaxLnScaleMinMax; - bool lodOpacity; - }; -`); -class NumPackedSplats extends UnaryOp { +class DynoMat4x2 extends DynoUniform { constructor({ - packedSplats + key, + value, + update }) { - super({ a: packedSplats, outKey: "numSplats", outTypeFunc: () => "int" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.numSplats} = ${inputs.a}.numSplats;` - ]; + super({ key, type: "mat4x2", value, update }); } } -const defineReadPackedArray = unindent(` - bool readPackedArray(usampler2DArray texture, int numSplats, vec4 rgbMinMaxLnScaleMinMax, int index, out Gsplat gsplat) { - if ((index >= 0) && (index < numSplats)) { - uvec4 packedData = texelFetch(texture, splatTexCoord(index), 0); - unpackSplatEncoding(packedData, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba, rgbMinMaxLnScaleMinMax); - return true; - } else { - return false; - } - } -`); -class ReadPackedSplat extends Dyno { +class DynoMat4x3 extends DynoUniform { constructor({ - packedSplats, - index + key, + value, + update }) { - super({ - inTypes: { packedSplats: TPackedSplats, index: "int" }, - outTypes: { gsplat: Gsplat }, - inputs: { packedSplats, index }, - globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray], - statements: ({ inputs, outputs }) => { - const { gsplat } = outputs; - if (!gsplat) { - return []; - } - const { packedSplats: packedSplats2, index: index2 } = inputs; - let statements; - if (packedSplats2 && index2) { - statements = unindentLines(` - ${gsplat}.flags = 0u; - if (readPackedArray(${packedSplats2}.textureArray, ${packedSplats2}.numSplats, ${packedSplats2}.rgbMinMaxLnScaleMinMax, ${index2}, ${gsplat})) { - if (${packedSplats2}.lodOpacity) { - ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a; - } - bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0))); - ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE; - } - `); - } else { - statements = [`${gsplat}.flags = 0u;`]; - } - statements.push(`${gsplat}.index = ${index2 ?? "0"};`); - return statements; - } - }); + super({ key, type: "mat4x3", value, update }); } - dynoOut() { - return new DynoOutput(this, "gsplat"); +} +class DynoMat4x4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat4x4", value, update }); } } -class ReadPackedSplatRange extends Dyno { +class DynoUsampler2D extends DynoUniform { constructor({ - packedSplats, - index, - base, - count + key, + value, + update }) { - super({ - inTypes: { - packedSplats: TPackedSplats, - index: "int", - base: "int", - count: "int" - }, - outTypes: { gsplat: Gsplat }, - inputs: { packedSplats, index, base, count }, - globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray], - statements: ({ inputs, outputs }) => { - const { gsplat } = outputs; - if (!gsplat) { - return []; - } - const { packedSplats: packedSplats2, index: index2, base: base2, count: count2 } = inputs; - let statements; - if (packedSplats2 && index2 && base2 && count2) { - statements = unindentLines(` - ${gsplat}.flags = 0u; - if (readPackedArray(${packedSplats2}.textureArray, ${packedSplats2}.numSplats, ${packedSplats2}.rgbMinMaxLnScaleMinMax, ${index2}, ${gsplat})) { - if (${packedSplats2}.lodOpacity) { - ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a; - } - bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0))); - ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE; - } - `); - } else { - statements = [`${gsplat}.flags = 0u;`]; - } - statements.push(`${gsplat}.index = ${index2 ?? "0"};`); - return statements; - } - }); + super({ key, type: "usampler2D", value, update }); } - dynoOut() { - return new DynoOutput(this, "gsplat"); +} +class DynoIsampler2D extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "isampler2D", value, update }); } } -const defineExtSplats = unindent(` - struct ExtSplats { - usampler2DArray textureArray1; - usampler2DArray textureArray2; - int numSplats; - }; -`); -class NumExtSplats extends UnaryOp { - constructor({ extSplats }) { - super({ a: extSplats, outKey: "numSplats", outTypeFunc: () => "int" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.numSplats} = ${inputs.a}.numSplats;` - ]; +class DynoSampler2D extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "sampler2D", value, update }); } } -const defineReadExtArrays = unindent(` - void readExtArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out Gsplat gsplat) { - gsplat.flags = 0u; - if ((index >= 0) && (index < numSplats)) { - ivec3 coord = splatTexCoord(index); - uvec4 packed1 = texelFetch(texture1, coord, 0); - uvec4 packed2 = texelFetch(texture2, coord, 0); - unpackSplatExt(packed1, packed2, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba); - gsplat.flags = all(equal(gsplat.scales, vec3(0.0, 0.0, 0.0))) ? 0u : GSPLAT_FLAG_ACTIVE; - gsplat.index = index; - } +class DynoUsampler2DArray extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "usampler2DArray", value, update }); } -`); -class ReadExtSplat extends Dyno { +} +class DynoIsampler2DArray extends DynoUniform { constructor({ - extSplats, - index + key, + value, + update }) { - super({ - inTypes: { extSplats: TExtSplats, index: "int" }, - outTypes: { gsplat: Gsplat }, - inputs: { extSplats, index }, - globals: () => [defineGsplat, defineExtSplats, defineReadExtArrays], - statements: ({ inputs, outputs }) => { - const { gsplat } = outputs; - if (!gsplat) { - return [`${gsplat}.flags = 0u;`]; - } - const { extSplats: extSplats2, index: index2 } = inputs; - if (extSplats2 && index2) { - return unindentLines(` - readExtArrays(${extSplats2}.textureArray1, ${extSplats2}.textureArray2, ${extSplats2}.numSplats, ${index2}, ${gsplat}); - `); - } - return [`${gsplat}.flags = 0u;`]; - } - }); + super({ key, type: "isampler2DArray", value, update }); } - dynoOut() { - return new DynoOutput(this, "gsplat"); +} +class DynoSampler2DArray extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "sampler2DArray", value, update }); } } -class NumCovSplats extends UnaryOp { - constructor({ covsplats }) { - super({ a: covsplats, outKey: "numSplats", outTypeFunc: () => "int" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.numSplats} = ${inputs.a}.numSplats;` - ]; +class DynoUsampler3D extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "usampler3D", value, update }); } } -const defineReadCovArrays = unindent(` - void readCovArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out CovSplat covsplat) { - covsplat.flags = 0u; - if ((index >= 0) && (index < numSplats)) { - ivec3 coord = splatTexCoord(index); - uvec4 packed1 = texelFetch(texture1, coord, 0); - uvec4 packed2 = texelFetch(texture2, coord, 0); - unpackSplatExtCov(packed1, packed2, covsplat.center, covsplat.rgba, covsplat.xxyyzz, covsplat.xyxzyz); - covsplat.flags = (all(equal(covsplat.xxyyzz, vec3(0.0))) && all(equal(covsplat.xyxzyz, vec3(0.0)))) ? 0u : GSPLAT_FLAG_ACTIVE; - gsplat.index = index; - } - } -`); -class ReadCovSplat extends Dyno { +class DynoIsampler3D extends DynoUniform { constructor({ - covSplats, - index + key, + value, + update }) { - super({ - inTypes: { covSplats: TCovSplats, index: "int" }, - outTypes: { covsplat: CovSplat }, - inputs: { covSplats, index }, - globals: () => [defineGsplat, defineCovSplat, defineReadCovArrays], - statements: ({ inputs, outputs }) => { - const { covsplat } = outputs; - if (!covsplat) { - return [`${covsplat}.flags = 0u;`]; - } - const { covSplats: covSplats2, index: index2 } = inputs; - if (covSplats2 && index2) { - return unindentLines(` - readCovArrays(${covSplats2}.textureArray, ${covSplats2}.numSplats, ${index2}, ${covsplat}); - `); - } - return [`${covsplat}.flags = 0u;`]; - } - }); - } - dynoOut() { - return new DynoOutput(this, "covsplat"); + super({ key, type: "isampler3D", value, update }); } } -class GsplatToCovSplat extends Dyno { - constructor({ gsplat }) { - super({ - inTypes: { gsplat: Gsplat }, - outTypes: { covsplat: CovSplat }, - inputs: { gsplat }, - globals: () => [defineGsplat, defineCovSplat], - statements: ({ inputs, outputs }) => { - const { gsplat: gsplat2 } = inputs; - const { covsplat } = outputs; - if (!gsplat2) { - return [`${covsplat}.flags = 0u;`]; - } - return unindentLines(` - ${covsplat}.flags = 0u; - if (isGsplatActive(${gsplat2}.flags)) { - ${covsplat}.flags = ${gsplat2}.flags; - ${covsplat}.index = ${gsplat2}.index; - ${covsplat}.rgba = ${gsplat2}.rgba; - ${covsplat}.center = ${gsplat2}.center; - mat3 m = scaleQuaternionToMatrix(${gsplat2}.scales, ${gsplat2}.quaternion); - m = m * transpose(m); - ${covsplat}.xxyyzz = vec3(m[0][0], m[1][1], m[2][2]); - ${covsplat}.xyxzyz = vec3(m[0][1], m[0][2], m[1][2]); - } - `); - } - }); - } - dynoOut() { - return new DynoOutput(this, "covsplat"); +class DynoSampler3D extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "sampler3D", value, update }); } } -class SplitGsplat extends Dyno { - constructor({ gsplat }) { - super({ - inTypes: { gsplat: Gsplat }, - outTypes: { - flags: "uint", - active: "bool", - index: "int", - center: "vec3", - scales: "vec3", - quaternion: "vec4", - rgba: "vec4", - rgb: "vec3", - opacity: "float", - x: "float", - y: "float", - z: "float", - r: "float", - g: "float", - b: "float" - }, - inputs: { gsplat }, - globals: () => [defineGsplat], - statements: ({ inputs, outputs }) => { - const { gsplat: gsplat2 } = inputs; - const { - flags, - active, - index, - center, - scales, - quaternion, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b - } = outputs; - return [ - !flags ? null : `${flags} = ${gsplat2 ? `${gsplat2}.flags` : "0u"};`, - !active ? null : `${active} = isGsplatActive(${gsplat2 ? `${gsplat2}.flags` : "0u"});`, - !index ? null : `${index} = ${gsplat2 ? `${gsplat2}.index` : "0"};`, - !center ? null : `${center} = ${gsplat2 ? `${gsplat2}.center` : "vec3(0.0, 0.0, 0.0)"};`, - !scales ? null : `${scales} = ${gsplat2 ? `${gsplat2}.scales` : "vec3(0.0, 0.0, 0.0)"};`, - !quaternion ? null : `${quaternion} = ${gsplat2 ? `${gsplat2}.quaternion` : "vec4(0.0, 0.0, 0.0, 1.0)"};`, - !rgba ? null : `${rgba} = ${gsplat2 ? `${gsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)"};`, - !rgb ? null : `${rgb} = ${gsplat2 ? `${gsplat2}.rgba.rgb` : "vec3(0.0, 0.0, 0.0)"};`, - !opacity ? null : `${opacity} = ${gsplat2 ? `${gsplat2}.rgba.a` : "0.0"};`, - !x ? null : `${x} = ${gsplat2 ? `${gsplat2}.center.x` : "0.0"};`, - !y ? null : `${y} = ${gsplat2 ? `${gsplat2}.center.y` : "0.0"};`, - !z ? null : `${z} = ${gsplat2 ? `${gsplat2}.center.z` : "0.0"};`, - !r ? null : `${r} = ${gsplat2 ? `${gsplat2}.rgba.r` : "0.0"};`, - !g ? null : `${g} = ${gsplat2 ? `${gsplat2}.rgba.g` : "0.0"};`, - !b ? null : `${b} = ${gsplat2 ? `${gsplat2}.rgba.b` : "0.0"};` - ].filter(Boolean); - } - }); +class DynoUsamplerCube extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "usamplerCube", value, update }); } } -class CombineGsplat extends Dyno { +class DynoIsamplerCube extends DynoUniform { constructor({ - gsplat, - flags, - index, - center, - scales, - quaternion, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b + key, + value, + update }) { - super({ - inTypes: { - gsplat: Gsplat, - flags: "uint", - index: "int", - center: "vec3", - scales: "vec3", - quaternion: "vec4", - rgba: "vec4", - rgb: "vec3", - opacity: "float", - x: "float", - y: "float", - z: "float", - r: "float", - g: "float", - b: "float" - }, - outTypes: { gsplat: Gsplat }, - inputs: { - gsplat, - flags, - index, - center, - scales, - quaternion, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b - }, - globals: () => [defineGsplat], - statements: ({ inputs, outputs }) => { - const { gsplat: outGsplat } = outputs; - if (!outGsplat) { - return []; - } - const { - gsplat: gsplat2, - flags: flags2, - index: index2, - center: center2, - scales: scales2, - quaternion: quaternion2, - rgba: rgba2, - rgb: rgb2, - opacity: opacity2, - x: x2, - y: y2, - z: z2, - r: r2, - g: g2, - b: b22 - } = inputs; - return [ - `${outGsplat}.flags = ${flags2 ?? (gsplat2 ? `${gsplat2}.flags` : "0u")};`, - `${outGsplat}.index = ${index2 ?? (gsplat2 ? `${gsplat2}.index` : "0")};`, - `${outGsplat}.center = ${center2 ?? (gsplat2 ? `${gsplat2}.center` : "vec3(0.0, 0.0, 0.0)")};`, - `${outGsplat}.scales = ${scales2 ?? (gsplat2 ? `${gsplat2}.scales` : "vec3(0.0, 0.0, 0.0)")};`, - `${outGsplat}.quaternion = ${quaternion2 ?? (gsplat2 ? `${gsplat2}.quaternion` : "vec4(0.0, 0.0, 0.0, 1.0)")};`, - `${outGsplat}.rgba = ${rgba2 ?? (gsplat2 ? `${gsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)")};`, - !rgb2 ? null : `${outGsplat}.rgba.rgb = ${rgb2};`, - !opacity2 ? null : `${outGsplat}.rgba.a = ${opacity2};`, - !x2 ? null : `${outGsplat}.center.x = ${x2};`, - !y2 ? null : `${outGsplat}.center.y = ${y2};`, - !z2 ? null : `${outGsplat}.center.z = ${z2};`, - !r2 ? null : `${outGsplat}.rgba.r = ${r2};`, - !g2 ? null : `${outGsplat}.rgba.g = ${g2};`, - !b22 ? null : `${outGsplat}.rgba.b = ${b22};` - ].filter(Boolean); - } - }); + super({ key, type: "isamplerCube", value, update }); } - dynoOut() { - return new DynoOutput(this, "gsplat"); +} +class DynoSamplerCube extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "samplerCube", value, update }); } } -const defineGsplatNormal = unindent(` - vec3 gsplatNormal(vec3 scales, vec4 quaternion) { - float minScale = min(scales.x, min(scales.y, scales.z)); - vec3 normal; - if (scales.z == minScale) { - normal = vec3(0.0, 0.0, 1.0); - } else if (scales.y == minScale) { - normal = vec3(0.0, 1.0, 0.0); - } else { - normal = vec3(1.0, 0.0, 0.0); - } - return quatVec(quaternion, normal); - } -`); -class GsplatNormal extends UnaryOp { - constructor({ gsplat }) { - super({ a: gsplat, outKey: "normal", outTypeFunc: () => "vec3" }); - this.globals = () => [defineGsplat, defineGsplatNormal]; - this.statements = ({ inputs, outputs }) => [ - `${outputs.normal} = gsplatNormal(${inputs.a}.scales, ${inputs.a}.quaternion);` - ]; - } -} -class TransformGsplat extends Dyno { +class DynoSampler2DShadow extends DynoUniform { constructor({ - gsplat, - scale, - rotate, - translate, - recolor + key, + value, + update }) { - super({ - inTypes: { - gsplat: Gsplat, - scale: "float", - rotate: "vec4", - translate: "vec3", - recolor: "vec4" - }, - outTypes: { gsplat: Gsplat }, - inputs: { gsplat, scale, rotate, translate, recolor }, - globals: () => [defineGsplat], - statements: ({ inputs, outputs, compile }) => { - const { gsplat: gsplat2 } = outputs; - if (!gsplat2 || !inputs.gsplat) { - return []; - } - const { scale: scale2, rotate: rotate2, translate: translate2, recolor: recolor2 } = inputs; - const indent = compile.indent; - const statements = [ - `${gsplat2} = ${inputs.gsplat};`, - `if (isGsplatActive(${gsplat2}.flags)) {`, - scale2 ? `${indent}${gsplat2}.center *= ${scale2};` : null, - rotate2 ? `${indent}${gsplat2}.center = quatVec(${rotate2}, ${gsplat2}.center);` : null, - translate2 ? `${indent}${gsplat2}.center += ${translate2};` : null, - scale2 ? `${indent}${gsplat2}.scales *= ${scale2};` : null, - rotate2 ? `${indent}${gsplat2}.quaternion = quatQuat(${rotate2}, ${gsplat2}.quaternion);` : null, - recolor2 ? `${indent}${gsplat2}.rgba *= ${recolor2};` : null, - "}" - ].filter(Boolean); - return statements; - } - }); - } - dynoOut() { - return new DynoOutput(this, "gsplat"); + super({ key, type: "sampler2DShadow", value, update }); } } -const splitCovSplat = (covsplat) => new SplitCovSplat({ covsplat }); -const combineCovSplat = ({ - covsplat, - flags, - index, - center, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b -}) => { - return new CombineCovSplat({ - covsplat, - flags, - index, - center, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b - }); -}; -class SplitCovSplat extends Dyno { - constructor({ covsplat }) { - super({ - inTypes: { covsplat: CovSplat }, - outTypes: { - flags: "uint", - active: "bool", - index: "int", - center: "vec3", - rgba: "vec4", - rgb: "vec3", - opacity: "float", - x: "float", - y: "float", - z: "float", - r: "float", - g: "float", - b: "float" - }, - inputs: { covsplat }, - globals: () => [defineCovSplat], - statements: ({ inputs, outputs }) => { - const { covsplat: covsplat2 } = inputs; - const { - flags, - active, - index, - center, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b - } = outputs; - return [ - !flags ? null : `${flags} = ${covsplat2 ? `${covsplat2}.flags` : "0u"};`, - !active ? null : `${active} = isCovSplatActive(${covsplat2 ? `${covsplat2}.flags` : "0u"});`, - !index ? null : `${index} = ${covsplat2 ? `${covsplat2}.index` : "0"};`, - !center ? null : `${center} = ${covsplat2 ? `${covsplat2}.center` : "vec3(0.0, 0.0, 0.0)"};`, - !rgba ? null : `${rgba} = ${covsplat2 ? `${covsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)"};`, - !rgb ? null : `${rgb} = ${covsplat2 ? `${covsplat2}.rgba.rgb` : "vec3(0.0, 0.0, 0.0)"};`, - !opacity ? null : `${opacity} = ${covsplat2 ? `${covsplat2}.rgba.a` : "0.0"};`, - !x ? null : `${x} = ${covsplat2 ? `${covsplat2}.center.x` : "0.0"};`, - !y ? null : `${y} = ${covsplat2 ? `${covsplat2}.center.y` : "0.0"};`, - !z ? null : `${z} = ${covsplat2 ? `${covsplat2}.center.z` : "0.0"};`, - !r ? null : `${r} = ${covsplat2 ? `${covsplat2}.rgba.r` : "0.0"};`, - !g ? null : `${g} = ${covsplat2 ? `${covsplat2}.rgba.g` : "0.0"};`, - !b ? null : `${b} = ${covsplat2 ? `${covsplat2}.rgba.b` : "0.0"};` - ].filter(Boolean); - } - }); +class DynoSampler2DArrayShadow extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "sampler2DArrayShadow", value, update }); } } -class CombineCovSplat extends Dyno { +class DynoSamplerCubeShadow extends DynoUniform { constructor({ - covsplat, - flags, - index, - center, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b + key, + value, + update }) { - super({ - inTypes: { - covsplat: CovSplat, - flags: "uint", - index: "int", - center: "vec3", - rgba: "vec4", - rgb: "vec3", - opacity: "float", - x: "float", - y: "float", - z: "float", - r: "float", - g: "float", - b: "float" - }, - outTypes: { covsplat: CovSplat }, - inputs: { - covsplat, - flags, - index, - center, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b - }, - globals: () => [defineCovSplat], - statements: ({ inputs, outputs }) => { - const { covsplat: outCovSplat } = outputs; - if (!outCovSplat) { - return []; - } - const { - covsplat: covsplat2, - flags: flags2, - index: index2, - center: center2, - rgba: rgba2, - rgb: rgb2, - opacity: opacity2, - x: x2, - y: y2, - z: z2, - r: r2, - g: g2, - b: b22 - } = inputs; - return [ - `${outCovSplat}.flags = ${flags2 ?? (covsplat2 ? `${covsplat2}.flags` : "0u")};`, - `${outCovSplat}.index = ${index2 ?? (covsplat2 ? `${covsplat2}.index` : "0")};`, - `${outCovSplat}.center = ${center2 ?? (covsplat2 ? `${covsplat2}.center` : "vec3(0.0, 0.0, 0.0)")};`, - `${outCovSplat}.rgba = ${rgba2 ?? (covsplat2 ? `${covsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)")};`, - !rgb2 ? null : `${outCovSplat}.rgba.rgb = ${rgb2};`, - !opacity2 ? null : `${outCovSplat}.rgba.a = ${opacity2};`, - !x2 ? null : `${outCovSplat}.center.x = ${x2};`, - !y2 ? null : `${outCovSplat}.center.y = ${y2};`, - !z2 ? null : `${outCovSplat}.center.z = ${z2};`, - !r2 ? null : `${outCovSplat}.rgba.r = ${r2};`, - !g2 ? null : `${outCovSplat}.rgba.g = ${g2};`, - !b22 ? null : `${outCovSplat}.rgba.b = ${b22};`, - `${outCovSplat}.xxyyzz = ${covsplat2 ? `${covsplat2}.xxyyzz` : "vec3(0.0, 0.0, 0.0)"};`, - `${outCovSplat}.xyxzyz = ${covsplat2 ? `${covsplat2}.xyxzyz` : "vec3(0.0, 0.0, 0.0)"};` - ].filter(Boolean); - } - }); - } - dynoOut() { - return new DynoOutput(this, "covsplat"); + super({ key, type: "samplerCubeShadow", value, update }); } } -class SplatTexCoord extends Dyno { - constructor({ index }) { - super({ - inTypes: { index: "int" }, - outTypes: { coord: "ivec3" }, - inputs: { index }, - statements: ({ inputs, outputs }) => { - const { index: index2 } = inputs; - const { coord } = outputs; - if (!index2 || !coord) { - return []; - } - return [`${coord} = splatTexCoord(${index2});`]; - } - }); +var u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array; +var fleb = new u8([ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 4, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 0, + /* unused */ + 0, + 0, + /* impossible */ + 0 +]); +var fdeb = new u8([ + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 4, + 4, + 5, + 5, + 6, + 6, + 7, + 7, + 8, + 8, + 9, + 9, + 10, + 10, + 11, + 11, + 12, + 12, + 13, + 13, + /* unused */ + 0, + 0 +]); +var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); +var freb = function(eb, start) { + var b = new u16(31); + for (var i = 0; i < 31; ++i) { + b[i] = start += 1 << eb[i - 1]; } - dynoOut() { - return new DynoOutput(this, "coord"); + var r = new i32(b[30]); + for (var i = 1; i < 30; ++i) { + for (var j = b[i]; j < b[i + 1]; ++j) { + r[j] = j - b[i] << 5 | i; + } } + return { b, r }; +}; +var _a = freb(fleb, 2), fl = _a.b, revfl = _a.r; +fl[28] = 258, revfl[258] = 28; +var _b = freb(fdeb, 0), fd = _b.b; +var rev = new u16(32768); +for (var i = 0; i < 32768; ++i) { + var x = (i & 43690) >> 1 | (i & 21845) << 1; + x = (x & 52428) >> 2 | (x & 13107) << 2; + x = (x & 61680) >> 4 | (x & 3855) << 4; + rev[i] = ((x & 65280) >> 8 | (x & 255) << 8) >> 1; } -class PagedSplatTexCoord extends Dyno { - constructor({ index }) { - super({ - inTypes: { index: "int" }, - outTypes: { coord: "ivec3" }, - inputs: { index }, - statements: ({ inputs, outputs }) => { - const { index: index2 } = inputs; - const { coord } = outputs; - if (!index2 || !coord) { - return []; - } - return [`${coord} = pagedSplatTexCoord(${index2});`]; - } - }); +var hMap = function(cd, mb, r) { + var s = cd.length; + var i = 0; + var l = new u16(mb); + for (; i < s; ++i) { + if (cd[i]) + ++l[cd[i] - 1]; } - dynoOut() { - return new DynoOutput(this, "coord"); + var le = new u16(mb); + for (i = 1; i < mb; ++i) { + le[i] = le[i - 1] + l[i - 1] << 1; } -} -const outputPackedSplat = (gsplat, rgbMinMaxLnScaleMinMax) => new OutputPackedSplat({ gsplat, rgbMinMaxLnScaleMinMax }); -const outputCovSplat = (covsplat, rgbMinMaxLnScaleMinMax) => new OutputCovSplat({ covsplat, rgbMinMaxLnScaleMinMax }); -const outputExtendedSplat = (gsplat) => new OutputExtendedSplat({ gsplat }); -const outputExtCovSplat = (covsplat) => new OutputExtCovSplat({ covsplat }); -const outputSplatDepth = (gsplat, viewCenter, viewDir, sortRadial) => new OutputSplatDepth({ gsplat, viewCenter, viewDir, sortRadial }); -const outputCovSplatDepth = (covsplat, viewCenter, viewDir, sortRadial) => new OutputCovSplatDepth({ covsplat, viewCenter, viewDir, sortRadial }); -const outputRgba8 = (rgba8) => new OutputRgba8({ rgba8 }); -class OutputPackedSplat extends Dyno { - constructor({ - gsplat, - rgbMinMaxLnScaleMinMax - }) { - super({ - inTypes: { gsplat: Gsplat, rgbMinMaxLnScaleMinMax: "vec4" }, - inputs: { gsplat, rgbMinMaxLnScaleMinMax }, - globals: () => [defineGsplat], - statements: ({ inputs, outputs }) => { - const { gsplat: gsplat2, rgbMinMaxLnScaleMinMax: rgbMinMaxLnScaleMinMax2 } = inputs; - if (gsplat2 && rgbMinMaxLnScaleMinMax2) { - return unindentLines(` - if (isGsplatActive(${gsplat2}.flags)) { - target = packSplatEncoding(${gsplat2}.center, ${gsplat2}.scales, ${gsplat2}.quaternion, ${gsplat2}.rgba, ${rgbMinMaxLnScaleMinMax2}); - } else { - target = uvec4(0u, 0u, 0u, 0u); - } - `); + var co; + if (r) { + co = new u16(1 << mb); + var rvb = 15 - mb; + for (i = 0; i < s; ++i) { + if (cd[i]) { + var sv = i << 4 | cd[i]; + var r_1 = mb - cd[i]; + var v = le[cd[i] - 1]++ << r_1; + for (var m = v | (1 << r_1) - 1; v <= m; ++v) { + co[rev[v] >> rvb] = sv; } - return ["target = uvec4(0u, 0u, 0u, 0u);"]; } - }); - } -} -class OutputCovSplat extends Dyno { - constructor({ - covsplat, - rgbMinMaxLnScaleMinMax - }) { - super({ - inTypes: { covsplat: CovSplat, rgbMinMaxLnScaleMinMax: "vec4" }, - inputs: { covsplat, rgbMinMaxLnScaleMinMax }, - globals: () => [defineCovSplat], - statements: ({ inputs }) => { - const { covsplat: covsplat2, rgbMinMaxLnScaleMinMax: rgbMinMaxLnScaleMinMax2 } = inputs; - if (covsplat2 && rgbMinMaxLnScaleMinMax2) { - return unindentLines(` - if (isCovSplatActive(${covsplat2}.flags)) { - target = packSplatCovEncoding(${covsplat2}.center, ${covsplat2}.rgba, ${covsplat2}.xxyyzz, ${covsplat2}.xyxzyz, ${rgbMinMaxLnScaleMinMax2}); - } else { - target = uvec4(0u); - } - `); - } - return ["target = uvec4(0u);"]; + } + } else { + co = new u16(s); + for (i = 0; i < s; ++i) { + if (cd[i]) { + co[i] = rev[le[cd[i] - 1]++] >> 15 - cd[i]; } - }); + } } -} -class OutputExtendedSplat extends Dyno { - constructor({ - gsplat - }) { - super({ - inTypes: { gsplat: Gsplat }, - inputs: { gsplat }, - globals: () => [defineGsplat], - statements: ({ inputs }) => { - const { gsplat: gsplat2 } = inputs; - if (gsplat2) { - return unindentLines(` - if (isGsplatActive(${gsplat2}.flags)) { - packSplatExt(target, target2, ${gsplat2}.center, ${gsplat2}.scales, ${gsplat2}.quaternion, ${gsplat2}.rgba); - } else { - target = uvec4(0u); - target2 = uvec4(0u); - } - `); - } - return ["target = uvec4(0u);", "target2 = uvec4(0u);"]; - } - }); + return co; +}; +var flt = new u8(288); +for (var i = 0; i < 144; ++i) + flt[i] = 8; +for (var i = 144; i < 256; ++i) + flt[i] = 9; +for (var i = 256; i < 280; ++i) + flt[i] = 7; +for (var i = 280; i < 288; ++i) + flt[i] = 8; +var fdt = new u8(32); +for (var i = 0; i < 32; ++i) + fdt[i] = 5; +var flrm = /* @__PURE__ */ hMap(flt, 9, 1); +var fdrm = /* @__PURE__ */ hMap(fdt, 5, 1); +var max$1 = function(a) { + var m = a[0]; + for (var i = 1; i < a.length; ++i) { + if (a[i] > m) + m = a[i]; } -} -class OutputExtCovSplat extends Dyno { - constructor({ - covsplat - }) { - super({ - inTypes: { covsplat: CovSplat }, - inputs: { covsplat }, - globals: () => [defineCovSplat], - statements: ({ inputs }) => { - const { covsplat: covsplat2 } = inputs; - if (covsplat2) { - return unindentLines(` - if (isCovSplatActive(${covsplat2}.flags)) { - packSplatExtCov(target, target2, ${covsplat2}.center, ${covsplat2}.rgba, ${covsplat2}.xxyyzz, ${covsplat2}.xyxzyz); - } else { - target = uvec4(0u); - target2 = uvec4(0u); - } - `); + return m; +}; +var bits = function(d, p, m) { + var o = p / 8 | 0; + return (d[o] | d[o + 1] << 8) >> (p & 7) & m; +}; +var bits16 = function(d, p) { + var o = p / 8 | 0; + return (d[o] | d[o + 1] << 8 | d[o + 2] << 16) >> (p & 7); +}; +var shft = function(p) { + return (p + 7) / 8 | 0; +}; +var slc = function(v, s, e) { + if (s == null || s < 0) + s = 0; + if (e == null || e > v.length) + e = v.length; + return new u8(v.subarray(s, e)); +}; +var ec = [ + "unexpected EOF", + "invalid block type", + "invalid length/literal", + "invalid distance", + "stream finished", + "no stream handler", + , + "no callback", + "invalid UTF-8 data", + "extra field too long", + "date not in range 1980-2099", + "filename too long", + "stream finishing", + "invalid zip data" + // determined by unknown compression method +]; +var err = function(ind, msg, nt) { + var e = new Error(msg || ec[ind]); + e.code = ind; + if (Error.captureStackTrace) + Error.captureStackTrace(e, err); + if (!nt) + throw e; + return e; +}; +var inflt = function(dat, st, buf, dict) { + var sl = dat.length, dl = dict ? dict.length : 0; + if (!sl || st.f && !st.l) + return buf || new u8(0); + var noBuf = !buf; + var resize = noBuf || st.i != 2; + var noSt = st.i; + if (noBuf) + buf = new u8(sl * 3); + var cbuf = function(l2) { + var bl = buf.length; + if (l2 > bl) { + var nbuf = new u8(Math.max(bl * 2, l2)); + nbuf.set(buf); + buf = nbuf; + } + }; + var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n; + var tbts = sl * 8; + do { + if (!lm) { + final = bits(dat, pos, 1); + var type = bits(dat, pos + 1, 3); + pos += 3; + if (!type) { + var s = shft(pos) + 4, l = dat[s - 4] | dat[s - 3] << 8, t = s + l; + if (t > sl) { + if (noSt) + err(0); + break; } - return ["target = uvec4(0u);", "target2 = uvec4(0u);"]; - } - }); - } -} -class OutputSplatDepth extends Dyno { - constructor({ - gsplat, - viewCenter, - viewDir, - sortRadial - }) { - super({ - inTypes: { - gsplat: Gsplat, - viewCenter: "vec3", - viewDir: "vec3", - sortRadial: "bool" - }, - inputs: { gsplat, viewCenter, viewDir, sortRadial }, - globals: () => [defineGsplat], - statements: ({ inputs }) => { - const { gsplat: gsplat2, viewCenter: viewCenter2, viewDir: viewDir2, sortRadial: sortRadial2 } = inputs; - if (gsplat2 && viewCenter2 && viewDir2 && sortRadial2) { - return unindentLines(` - float metric = 1.0 / 0.0; - if (isGsplatActive(${gsplat2}.flags)) { - vec3 center = ${gsplat2}.center - ${viewCenter2}; - if (${sortRadial2}) { - metric = length(center); - } else { - float bias = 100.0; // reduce popping - metric = dot(center, ${viewDir2}) + bias; - } - } - target3 = floatToVec4(metric); - `); + if (resize) + cbuf(bt + l); + buf.set(dat.subarray(s, t), bt); + st.b = bt += l, st.p = pos = t * 8, st.f = final; + continue; + } else if (type == 1) + lm = flrm, dm = fdrm, lbt = 9, dbt = 5; + else if (type == 2) { + var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4; + var tl = hLit + bits(dat, pos + 5, 31) + 1; + pos += 14; + var ldt = new u8(tl); + var clt = new u8(19); + for (var i = 0; i < hcLen; ++i) { + clt[clim[i]] = bits(dat, pos + i * 3, 7); } - return []; - } - }); - } -} -class OutputCovSplatDepth extends Dyno { - constructor({ - covsplat, - viewCenter, - viewDir, - sortRadial - }) { - super({ - inTypes: { - covsplat: CovSplat, - viewCenter: "vec3", - viewDir: "vec3", - sortRadial: "bool" - }, - inputs: { covsplat, viewCenter, viewDir, sortRadial }, - globals: () => [defineCovSplat], - statements: ({ inputs }) => { - const { covsplat: covsplat2, viewCenter: viewCenter2, viewDir: viewDir2, sortRadial: sortRadial2 } = inputs; - if (covsplat2 && viewCenter2 && viewDir2 && sortRadial2) { - return unindentLines(` - float metric = 1.0 / 0.0; - if (isCovSplatActive(${covsplat2}.flags)) { - vec3 center = ${covsplat2}.center - ${viewCenter2}; - if (${sortRadial2}) { - metric = length(center); - } else { - float bias = 100.0; // reduce popping - metric = dot(center, ${viewDir2}) + bias; - } - } - target3 = floatToVec4(metric); - `); + pos += hcLen * 3; + var clb = max$1(clt), clbmsk = (1 << clb) - 1; + var clm = hMap(clt, clb, 1); + for (var i = 0; i < tl; ) { + var r = clm[bits(dat, pos, clbmsk)]; + pos += r & 15; + var s = r >> 4; + if (s < 16) { + ldt[i++] = s; + } else { + var c = 0, n = 0; + if (s == 16) + n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1]; + else if (s == 17) + n = 3 + bits(dat, pos, 7), pos += 3; + else if (s == 18) + n = 11 + bits(dat, pos, 127), pos += 7; + while (n--) + ldt[i++] = c; + } } - return []; + var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit); + lbt = max$1(lt); + dbt = max$1(dt); + lm = hMap(lt, lbt, 1); + dm = hMap(dt, dbt, 1); + } else + err(1); + if (pos > tbts) { + if (noSt) + err(0); + break; } - }); - } -} -class OutputRgba8 extends Dyno { - constructor({ rgba8 }) { - super({ - inTypes: { rgba8: "vec4" }, - inputs: { rgba8 }, - statements: ({ inputs, outputs }) => [ - `target = ${inputs.rgba8 ?? "vec4(0.0, 0.0, 0.0, 0.0)"};` - ] - }); - } - dynoOut() { - return new DynoOutput(this, "rgba8"); - } -} -const uniform = (key, type, value) => new DynoUniform({ key, type, value }); -const dynoBool = (value = false, key) => new DynoBool({ key, value }); -const dynoUint = (value = 0, key) => new DynoUint({ key, value }); -const dynoInt = (value = 0, key) => new DynoInt({ key, value }); -const dynoFloat = (value = 0, key) => new DynoFloat({ key, value }); -const dynoBvec2 = (value, key) => new DynoBvec2({ key, value }); -const dynoUvec2 = (value, key) => new DynoUvec2({ key, value }); -const dynoIvec2 = (value, key) => new DynoIvec2({ key, value }); -const dynoVec2 = (value, key) => new DynoVec2({ key, value }); -const dynoBvec3 = (value, key) => new DynoBvec3({ key, value }); -const dynoUvec3 = (value, key) => new DynoUvec3({ key, value }); -const dynoIvec3 = (value, key) => new DynoIvec3({ key, value }); -const dynoVec3 = (value, key) => new DynoVec3({ key, value }); -const dynoBvec4 = (value, key) => new DynoBvec4({ key, value }); -const dynoUvec4 = (value, key) => new DynoUvec4({ key, value }); -const dynoIvec4 = (value, key) => new DynoIvec4({ key, value }); -const dynoVec4 = (value, key) => new DynoVec4({ key, value }); -const dynoMat2 = (value, key) => new DynoMat2({ key, value }); -const dynoMat2x2 = (value, key) => new DynoMat2x2({ key, value }); -const dynoMat2x3 = (value, key) => new DynoMat2x3({ key, value }); -const dynoMat2x4 = (value, key) => new DynoMat2x4({ key, value }); -const dynoMat3 = (value, key) => new DynoMat3({ key, value }); -const dynoMat3x2 = (value, key) => new DynoMat3x2({ key, value }); -const dynoMat3x3 = (value, key) => new DynoMat3x3({ key, value }); -const dynoMat3x4 = (value, key) => new DynoMat3x4({ key, value }); -const dynoMat4 = (value, key) => new DynoMat4({ key, value }); -const dynoMat4x2 = (value, key) => new DynoMat4x2({ key, value }); -const dynoMat4x3 = (value, key) => new DynoMat4x3({ key, value }); -const dynoMat4x4 = (value, key) => new DynoMat4x4({ key, value }); -const dynoUsampler2D = (value, key) => new DynoUsampler2D({ key, value }); -const dynoIsampler2D = (value, key) => new DynoIsampler2D({ key, value }); -const dynoSampler2D = (value, key) => new DynoSampler2D({ key, value }); -const dynoUsampler2DArray = (value, key) => new DynoUsampler2DArray({ key, value }); -const dynoIsampler2DArray = (key, value) => new DynoIsampler2DArray({ key, value }); -const dynoSampler2DArray = (value, key) => new DynoSampler2DArray({ key, value }); -const dynoUsampler3D = (value, key) => new DynoUsampler3D({ key, value }); -const dynoIsampler3D = (value, key) => new DynoIsampler3D({ key, value }); -const dynoSampler3D = (value, key) => new DynoSampler3D({ key, value }); -const dynoUsamplerCube = (value, key) => new DynoUsamplerCube({ key, value }); -const dynoIsamplerCube = (value, key) => new DynoIsamplerCube({ key, value }); -const dynoSamplerCube = (value, key) => new DynoSamplerCube({ key, value }); -const dynoSampler2DShadow = (value, key) => new DynoSampler2DShadow({ key, value }); -const dynoSampler2DArrayShadow = (value, key) => new DynoSampler2DArrayShadow({ key, value }); -const dynoSamplerCubeShadow = (value, key) => new DynoSamplerCubeShadow({ key, value }); -class DynoUniform extends Dyno { - constructor({ - key, - type, - count, - value, - update, - globals - }) { - key = key ?? "value"; - super({ - outTypes: { [key]: type }, - update: () => { - if (update) { - const value2 = update(this.value); - if (value2 !== void 0) { - this.value = value2; - } + } + if (resize) + cbuf(bt + 131072); + var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1; + var lpos = pos; + for (; ; lpos = pos) { + var c = lm[bits16(dat, pos) & lms], sym = c >> 4; + pos += c & 15; + if (pos > tbts) { + if (noSt) + err(0); + break; + } + if (!c) + err(2); + if (sym < 256) + buf[bt++] = sym; + else if (sym == 256) { + lpos = pos, lm = null; + break; + } else { + var add2 = sym - 254; + if (sym > 264) { + var i = sym - 257, b = fleb[i]; + add2 = bits(dat, pos, (1 << b) - 1) + fl[i]; + pos += b; } - this.uniform.value = this.value; - }, - generate: ({ inputs, outputs }) => { - const allGlobals = (globals == null ? void 0 : globals({ inputs, outputs })) ?? []; - const uniforms = {}; - const name = outputs[key]; - if (name) { - allGlobals.push(`uniform ${dynoDeclare(name, type, count)};`); - uniforms[name] = this.uniform; + var d = dm[bits16(dat, pos) & dms], dsym = d >> 4; + if (!d) + err(3); + pos += d & 15; + var dt = fd[dsym]; + if (dsym > 3) { + var b = fdeb[dsym]; + dt += bits16(dat, pos) & (1 << b) - 1, pos += b; } - return { globals: allGlobals, uniforms }; + if (pos > tbts) { + if (noSt) + err(0); + break; + } + if (resize) + cbuf(bt + 131072); + var end = bt + add2; + if (bt < dt) { + var shift = dl - dt, dend = Math.min(dt, end); + if (shift + bt < 0) + err(3); + for (; bt < dend; ++bt) + buf[bt] = dict[shift + bt]; + } + for (; bt < end; ++bt) + buf[bt] = buf[bt - dt]; } - }); - this.type = type; - this.count = count; - this.value = value; - this.uniform = { value }; - this.outKey = key; - } - dynoOut() { - return new DynoOutput(this, this.outKey); + } + st.l = lm, st.p = lpos, st.b = bt, st.f = final; + if (lm) + final = 1, st.m = lbt, st.d = dm, st.n = dbt; + } while (!final); + return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt); +}; +var et = /* @__PURE__ */ new u8(0); +var b2 = function(d, b) { + return d[b] | d[b + 1] << 8; +}; +var b4 = function(d, b) { + return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0; +}; +var b8 = function(d, b) { + return b4(d, b) + b4(d, b + 4) * 4294967296; +}; +var gzs = function(d) { + if (d[0] != 31 || d[1] != 139 || d[2] != 8) + err(6, "invalid gzip data"); + var flg = d[3]; + var st = 10; + if (flg & 4) + st += (d[10] | d[11] << 8) + 2; + for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++]) + ; + return st + (flg & 2); +}; +var Inflate = /* @__PURE__ */ function() { + function Inflate2(opts, cb) { + if (typeof opts == "function") + cb = opts, opts = {}; + this.ondata = cb; + var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768); + this.s = { i: 0, b: dict ? dict.length : 0 }; + this.o = new u8(32768); + this.p = new u8(0); + if (dict) + this.o.set(dict); } + Inflate2.prototype.e = function(c) { + if (!this.ondata) + err(5); + if (this.d) + err(4); + if (!this.p.length) + this.p = c; + else if (c.length) { + var n = new u8(this.p.length + c.length); + n.set(this.p), n.set(c, this.p.length), this.p = n; + } + }; + Inflate2.prototype.c = function(final) { + this.s.i = +(this.d = final || false); + var bts = this.s.b; + var dt = inflt(this.p, this.s, this.o); + this.ondata(slc(dt, bts, this.s.b), this.d); + this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length; + this.p = slc(this.p, this.s.p / 8 | 0), this.s.p &= 7; + }; + Inflate2.prototype.push = function(chunk, final) { + this.e(chunk), this.c(final); + }; + return Inflate2; +}(); +function inflateSync(data, opts) { + return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary); } -class DynoBool extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "bool", value, update }); +var Gunzip = /* @__PURE__ */ function() { + function Gunzip2(opts, cb) { + this.v = 1; + this.r = 0; + Inflate.call(this, opts, cb); } + Gunzip2.prototype.push = function(chunk, final) { + Inflate.prototype.e.call(this, chunk); + this.r += chunk.length; + if (this.v) { + var p = this.p.subarray(this.v - 1); + var s = p.length > 3 ? gzs(p) : 4; + if (s > p.length) { + if (!final) + return; + } else if (this.v > 1 && this.onmember) { + this.onmember(this.r - p.length); + } + this.p = p.subarray(s), this.v = 0; + } + Inflate.prototype.c.call(this, final); + if (this.s.f && !this.s.l && !final) { + this.v = shft(this.s.p) + 9; + this.s = { i: 0 }; + this.o = new u8(0); + this.push(new u8(0), final); + } + }; + return Gunzip2; +}(); +var td = typeof TextDecoder != "undefined" && /* @__PURE__ */ new TextDecoder(); +var tds = 0; +try { + td.decode(et, { stream: true }); + tds = 1; +} catch (e) { } -class DynoUint extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "uint", value, update }); +var dutf8 = function(d) { + for (var r = "", i = 0; ; ) { + var c = d[i++]; + var eb = (c > 127) + (c > 223) + (c > 239); + if (i + eb > d.length) + return { s: r, r: slc(d, i - 1) }; + if (!eb) + r += String.fromCharCode(c); + else if (eb == 3) { + c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | d[i++] & 63) - 65536, r += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023); + } else if (eb & 1) + r += String.fromCharCode((c & 31) << 6 | d[i++] & 63); + else + r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | d[i++] & 63); + } +}; +function strFromU8(dat, latin1) { + if (latin1) { + var r = ""; + for (var i = 0; i < dat.length; i += 16384) + r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384)); + return r; + } else if (td) { + return td.decode(dat); + } else { + var _a2 = dutf8(dat), s = _a2.s, r = _a2.r; + if (r.length) + err(8); + return s; } } -class DynoInt extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "int", value, update }); +var slzh = function(d, b) { + return b + 30 + b2(d, b + 26) + b2(d, b + 28); +}; +var zh = function(d, b, z) { + var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20); + var _a2 = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a2[0], su = _a2[1], off = _a2[2]; + return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off]; +}; +var z64e = function(d, b) { + for (; b2(d, b) != 1; b += 4 + b2(d, b + 2)) + ; + return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)]; +}; +function unzipSync(data, opts) { + var files = {}; + var e = data.length - 22; + for (; b4(data, e) != 101010256; --e) { + if (!e || data.length - e > 65558) + err(13); } -} -class DynoFloat extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "float", value, update }); + var c = b2(data, e + 8); + if (!c) + return {}; + var o = b4(data, e + 16); + var z = o == 4294967295 || c == 65535; + if (z) { + var ze = b4(data, e - 12); + z = b4(data, ze) == 101075792; + if (z) { + c = b4(data, ze + 32); + o = b4(data, ze + 48); + } } -} -class DynoBvec2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "bvec2", value, update }); + var fltr = opts && opts.filter; + for (var i = 0; i < c; ++i) { + var _a2 = zh(data, o, z), c_2 = _a2[0], sc = _a2[1], su = _a2[2], fn = _a2[3], no = _a2[4], off = _a2[5], b = slzh(data, off); + o = no; + if (!fltr || fltr({ + name: fn, + size: sc, + originalSize: su, + compression: c_2 + })) { + if (!c_2) + files[fn] = slc(data, b, b + sc); + else if (c_2 == 8) + files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) }); + else + err(14, "unknown compression type " + c_2); + } } + return files; } -class DynoUvec2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "uvec2", value, update }); - } +const threeRevision = Number.parseInt(THREE__namespace.REVISION); +const threeMrtArray = threeRevision >= 179; +const f32buffer = new Float32Array(1); +const u32buffer = new Uint32Array(f32buffer.buffer); +const supportsFloat16Array = "Float16Array" in globalThis; +const f16buffer = supportsFloat16Array ? new globalThis["Float16Array"](1) : null; +const u16buffer = new Uint16Array(f16buffer == null ? void 0 : f16buffer.buffer); +function normalize$1(vec) { + const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0)); + return vec.map((v) => v / norm); } -class DynoIvec2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "ivec2", value, update }); - } +function floatBitsToUint$1(f) { + f32buffer[0] = f; + return u32buffer[0]; } -class DynoVec2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "vec2", value, update }); - } +function uintBitsToFloat$1(u) { + u32buffer[0] = u; + return f32buffer[0]; } -class DynoBvec3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "bvec3", value, update }); - } +const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS; +const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS; +function toHalfNative(f) { + f16buffer[0] = f; + return u16buffer[0]; } -class DynoUvec3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "uvec3", value, update }); +function toHalfJS(f) { + f32buffer[0] = f; + const bits2 = u32buffer[0]; + const sign2 = bits2 >> 31 & 1; + const exp3 = bits2 >> 23 & 255; + const frac = bits2 & 8388607; + const halfSign = sign2 << 15; + if (exp3 === 255) { + if (frac !== 0) { + return halfSign | 32767; + } + return halfSign | 31744; } -} -class DynoIvec3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "ivec3", value, update }); + const newExp = exp3 - 127 + 15; + if (newExp >= 31) { + return halfSign | 31744; } -} -class DynoVec3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "vec3", value, update }); + if (newExp <= 0) { + if (newExp < -10) { + return halfSign; + } + const subFrac = (frac | 8388608) >> 1 - newExp + 13; + return halfSign | subFrac; } + const halfFrac = frac >> 13; + return halfSign | newExp << 10 | halfFrac; } -class DynoBvec4 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "bvec4", value, update }); - } +function fromHalfNative(u) { + u16buffer[0] = u; + return f16buffer[0]; } -class DynoUvec4 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "uvec4", value, update }); +function fromHalfJS(h) { + const sign2 = h >> 15 & 1; + const exp3 = h >> 10 & 31; + const frac = h & 1023; + let f32bits; + if (exp3 === 0) { + if (frac === 0) { + f32bits = sign2 << 31; + } else { + let mant = frac; + let e = -14; + while ((mant & 1024) === 0) { + mant <<= 1; + e--; + } + mant &= 1023; + const newExp = e + 127; + const newFrac = mant << 13; + f32bits = sign2 << 31 | newExp << 23 | newFrac; + } + } else if (exp3 === 31) { + if (frac === 0) { + f32bits = sign2 << 31 | 2139095040; + } else { + f32bits = sign2 << 31 | 2143289344; + } + } else { + const newExp = exp3 - 15 + 127; + const newFrac = frac << 13; + f32bits = sign2 << 31 | newExp << 23 | newFrac; } + u32buffer[0] = f32bits; + return f32buffer[0]; } -class DynoIvec4 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "ivec4", value, update }); - } +function floatToUint8(v) { + return Math.max(0, Math.min(255, Math.round(v * 255))); } -class DynoVec4 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "vec4", value, update }); - } +function floatToSint8(v) { + return Math.max(-127, Math.min(127, Math.round(v * 127))); } -class DynoMat2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat2", value, update }); - } +function Uint8ToFloat(v) { + return v / 255; } -class DynoMat2x2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat2x2", value, update }); - } +function Sint8ToFloat(v) { + return v / 127; } -class DynoMat2x3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat2x3", value, update }); - } -} -class DynoMat2x4 extends DynoUniform { +class DataCache { + // Create a DataCache with a given function that fetches data not in the cache. constructor({ - key, - value, - update + asyncFetch, + dispose, + maxItems = 5 }) { - super({ key, type: "mat2x4", value, update }); + this.asyncFetch = asyncFetch; + this.dispose = dispose; + this.maxItems = maxItems; + this.items = []; + this.pending = /* @__PURE__ */ new Map(); } -} -class DynoMat3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat3", value, update }); + has(key) { + return this.items.some((item) => item.key === key); } -} -class DynoMat3x2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat3x2", value, update }); + getImmediate(key) { + const index = this.items.findIndex((item) => item.key === key); + if (index >= 0) { + const item = this.items.splice(index, 1)[0]; + this.items.push(item); + return item.data; + } + return void 0; } -} -class DynoMat3x3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat3x3", value, update }); + // Fetch data for the key, returning cached data if available. + async getFetch(key) { + const immediate = this.getImmediate(key); + if (immediate !== void 0) { + return immediate; + } + let pending = this.pending.get(key); + if (pending) { + return pending; + } + pending = this.asyncFetch(key).then((data) => { + this.pending.delete(key); + this.items.push({ key, data }); + while (this.items.length > this.maxItems) { + const removed = this.items.shift(); + if (removed && this.dispose) { + this.dispose(removed.data); + } + } + return data; + }); + this.pending.set(key, pending); + return pending; } } -class DynoMat3x4 extends DynoUniform { - constructor({ +function mapObject(obj, fn) { + const entries = Object.entries(obj).map(([key, value]) => [ key, - value, - update - }) { - super({ key, type: "mat3x4", value, update }); - } + fn(value, key) + ]); + return Object.fromEntries(entries); } -class DynoMat4 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat4", value, update }); - } +function mapFilterObject(obj, fn) { + const entries = Object.entries(obj).map(([key, value]) => [key, fn(value, key)]).filter(([_, value]) => value !== void 0); + return Object.fromEntries(entries); } -class DynoMat4x2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat4x2", value, update }); +function getTransferable(ctx) { + const buffers = []; + const seen = /* @__PURE__ */ new Set(); + function traverse(obj) { + if (obj && typeof obj === "object" && !seen.has(obj)) { + seen.add(obj); + if (obj instanceof ArrayBuffer) { + buffers.push(obj); + } else if (ArrayBuffer.isView(obj)) { + buffers.push(obj.buffer); + } else if (Array.isArray(obj)) { + obj.forEach(traverse); + } else { + Object.values(obj).forEach(traverse); + } + } } + traverse(ctx); + return buffers; } -class DynoMat4x3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat4x3", value, update }); - } +function newArray(n, initFunction) { + return new Array(n).fill(null).map((_, i) => initFunction(i)); } -class DynoMat4x4 extends DynoUniform { +class FreeList { constructor({ - key, - value, - update + // Allocate a new item with the given args + allocate, + // Dispose of an item (optional, if GC is enough) + dispose, + // Check if an existing item in the list is valid for the given args, + // allowing you to store heterogeneous items in the list. + valid }) { - super({ key, type: "mat4x4", value, update }); + this.items = []; + this.allocate = allocate; + this.dispose = dispose; + this.valid = valid; } -} -class DynoUsampler2D extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "usampler2D", value, update }); + // Allocate a new item from the free list, first checking if a existing item + // on the freelist is valid for the given args. + alloc(args) { + while (true) { + const item = this.items.pop(); + if (!item) { + break; + } + if (this.valid(item, args)) { + return item; + } + if (this.dispose) { + this.dispose(item); + } + } + return this.allocate(args); } -} -class DynoIsampler2D extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "isampler2D", value, update }); + free(item) { + this.items.push(item); } -} -class DynoSampler2D extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "sampler2D", value, update }); + disposeAll() { + let item; + item = this.items.pop(); + while (item) { + if (this.dispose) { + this.dispose(item); + } + item = this.items.pop(); + } } } -class DynoUsampler2DArray extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "usampler2DArray", value, update }); - } +function encodeExtSplat(extArrays, index, x, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b) { + const i4 = index * 4; + const [extA, extB] = extArrays; + extA[i4] = floatBitsToUint$1(x); + extA[i4 + 1] = floatBitsToUint$1(y); + extA[i4 + 2] = floatBitsToUint$1(z); + extA[i4 + 3] = toHalf(opacity); + extB[i4] = toHalf(r) | toHalf(g) << 16; + extB[i4 + 1] = toHalf(b) | toHalf(Math.log(scaleX)) << 16; + extB[i4 + 2] = toHalf(Math.log(scaleY)) | toHalf(Math.log(scaleZ)) << 16; + extB[i4 + 3] = encodeQuatOctXy1010R12(quatX, quatY, quatZ, quatW); } -class DynoIsampler2DArray extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "isampler2DArray", value, update }); - } +function decodeExtSplat(extArrays, index) { + const result = packedFields; + const i4 = index * 4; + const [extA, extB] = extArrays; + result.center.x = uintBitsToFloat$1(extA[i4]); + result.center.y = uintBitsToFloat$1(extA[i4 + 1]); + result.center.z = uintBitsToFloat$1(extA[i4 + 2]); + result.opacity = fromHalf(extA[i4 + 3] & 65535); + result.color.r = fromHalf(extB[i4] & 65535); + result.color.g = fromHalf(extB[i4] >>> 16); + result.color.b = fromHalf(extB[i4 + 1] & 65535); + result.scales.x = Math.exp(fromHalf(extB[i4 + 1] >>> 16)); + result.scales.y = Math.exp(fromHalf(extB[i4 + 2] & 65535)); + result.scales.z = Math.exp(fromHalf(extB[i4 + 2] >>> 16)); + decodeQuatOctXy1010R12(extB[i4 + 3], result.quaternion); + return result; } -class DynoSampler2DArray extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "sampler2DArray", value, update }); - } +function setPackedSplat(packedSplats, index, x, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b, encoding) { + const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; + const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; + const rgbRange = rgbMax - rgbMin; + const uR = floatToUint8((r - rgbMin) / rgbRange); + const uG = floatToUint8((g - rgbMin) / rgbRange); + const uB = floatToUint8((b - rgbMin) / rgbRange); + const uA = floatToUint8((encoding == null ? void 0 : encoding.lodOpacity) ? 0.5 * opacity : opacity); + const uQuat = encodeQuatOctXy88R8( + tempQuaternion.set(quatX, quatY, quatZ, quatW) + ); + const uQuatX = uQuat & 255; + const uQuatY = uQuat >>> 8 & 255; + const uQuatZ = uQuat >>> 16 & 255; + const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN; + const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX; + const lnScaleScale = 254 / (lnScaleMax - lnScaleMin); + const uScaleX = scaleX < SCALE_ZERO ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1 + ) + ); + const uScaleY = scaleY < SCALE_ZERO ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1 + ) + ); + const uScaleZ = scaleZ < SCALE_ZERO ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1 + ) + ); + const uCenterX = toHalf(x); + const uCenterY = toHalf(y); + const uCenterZ = toHalf(z); + const i4 = index * 4; + packedSplats[i4] = uR | uG << 8 | uB << 16 | uA << 24; + packedSplats[i4 + 1] = uCenterX | uCenterY << 16; + packedSplats[i4 + 2] = uCenterZ | uQuatX << 16 | uQuatY << 24; + packedSplats[i4 + 3] = uScaleX | uScaleY << 8 | uScaleZ << 16 | uQuatZ << 24; } -class DynoUsampler3D extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "usampler3D", value, update }); - } +function setPackedSplatCenter(packedSplats, index, x, y, z) { + const uCenterX = toHalf(x); + const uCenterY = toHalf(y); + const uCenterZ = toHalf(z); + const i4 = index * 4; + packedSplats[i4 + 1] = uCenterX | uCenterY << 16; + packedSplats[i4 + 2] = uCenterZ | packedSplats[i4 + 2] & 4294901760; } -class DynoIsampler3D extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "isampler3D", value, update }); - } +function setPackedSplatScales(packedSplats, index, scaleX, scaleY, scaleZ, encoding) { + const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN; + const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX; + const lnScaleScale = 254 / (lnScaleMax - lnScaleMin); + const uScaleX = scaleX < SCALE_ZERO ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1 + ) + ); + const uScaleY = scaleY < SCALE_ZERO ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1 + ) + ); + const uScaleZ = scaleZ < SCALE_ZERO ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1 + ) + ); + const i4 = index * 4; + packedSplats[i4 + 3] = uScaleX | uScaleY << 8 | uScaleZ << 16 | packedSplats[i4 + 3] & 4278190080; } -class DynoSampler3D extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "sampler3D", value, update }); - } +const tempQuaternion = new THREE__namespace.Quaternion(); +function setPackedSplatQuat(packedSplats, index, quatX, quatY, quatZ, quatW) { + const uQuat = encodeQuatOctXy88R8( + tempQuaternion.set(quatX, quatY, quatZ, quatW) + ); + const uQuatX = uQuat & 255; + const uQuatY = uQuat >>> 8 & 255; + const uQuatZ = uQuat >>> 16 & 255; + const i4 = index * 4; + packedSplats[i4 + 2] = packedSplats[i4 + 2] & 65535 | uQuatX << 16 | uQuatY << 24; + packedSplats[i4 + 3] = packedSplats[i4 + 3] & 16777215 | uQuatZ << 24; } -class DynoUsamplerCube extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "usamplerCube", value, update }); - } +function setPackedSplatRgba(packedSplats, index, r, g, b, a, encoding) { + const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; + const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; + const rgbRange = rgbMax - rgbMin; + const uR = floatToUint8((r - rgbMin) / rgbRange); + const uG = floatToUint8((g - rgbMin) / rgbRange); + const uB = floatToUint8((b - rgbMin) / rgbRange); + const uA = floatToUint8((encoding == null ? void 0 : encoding.lodOpacity) ? 0.5 * a : a); + const i4 = index * 4; + packedSplats[i4] = uR | uG << 8 | uB << 16 | uA << 24; } -class DynoIsamplerCube extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "isamplerCube", value, update }); - } +function setPackedSplatRgb(packedSplats, index, r, g, b, encoding) { + const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; + const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; + const rgbRange = rgbMax - rgbMin; + const uR = floatToUint8((r - rgbMin) / rgbRange); + const uG = floatToUint8((g - rgbMin) / rgbRange); + const uB = floatToUint8((b - rgbMin) / rgbRange); + const i4 = index * 4; + packedSplats[i4] = uR | uG << 8 | uB << 16 | packedSplats[i4] & 4278190080; } -class DynoSamplerCube extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "samplerCube", value, update }); - } +function setPackedSplatOpacity(packedSplats, index, opacity) { + const uA = floatToUint8(opacity); + const i4 = index * 4; + packedSplats[i4] = packedSplats[i4] & 16777215 | uA << 24; } -class DynoSampler2DShadow extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "sampler2DShadow", value, update }); +const packedCenter = new THREE__namespace.Vector3(); +const packedScales = new THREE__namespace.Vector3(); +const packedQuaternion = new THREE__namespace.Quaternion(); +const packedColor = new THREE__namespace.Color(); +const packedFields = { + center: packedCenter, + scales: packedScales, + quaternion: packedQuaternion, + color: packedColor, + opacity: 0 +}; +function unpackSplat(packedSplats, index, encoding) { + const result = packedFields; + const i4 = index * 4; + const word0 = packedSplats[i4]; + const word1 = packedSplats[i4 + 1]; + const word2 = packedSplats[i4 + 2]; + const word3 = packedSplats[i4 + 3]; + const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; + const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; + const rgbRange = rgbMax - rgbMin; + result.color.set( + rgbMin + (word0 & 255) / 255 * rgbRange, + rgbMin + (word0 >>> 8 & 255) / 255 * rgbRange, + rgbMin + (word0 >>> 16 & 255) / 255 * rgbRange + ); + result.opacity = (word0 >>> 24 & 255) / 255; + if (encoding == null ? void 0 : encoding.lodOpacity) { + result.opacity = 2 * result.opacity; } + result.center.set( + fromHalf(word1 & 65535), + fromHalf(word1 >>> 16 & 65535), + fromHalf(word2 & 65535) + ); + const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN; + const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX; + const lnScaleScale = (lnScaleMax - lnScaleMin) / 254; + const uScalesX = word3 & 255; + result.scales.x = uScalesX === 0 ? 0 : Math.exp(lnScaleMin + (uScalesX - 1) * lnScaleScale); + const uScalesY = word3 >>> 8 & 255; + result.scales.y = uScalesY === 0 ? 0 : Math.exp(lnScaleMin + (uScalesY - 1) * lnScaleScale); + const uScalesZ = word3 >>> 16 & 255; + result.scales.z = uScalesZ === 0 ? 0 : Math.exp(lnScaleMin + (uScalesZ - 1) * lnScaleScale); + const uQuat = word2 >>> 16 & 65535 | word3 >>> 8 & 16711680; + decodeQuatOctXy88R8(uQuat, result.quaternion); + return result; } -class DynoSampler2DArrayShadow extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "sampler2DArrayShadow", value, update }); - } +function getTextureSize(numSplats) { + const width = SPLAT_TEX_WIDTH; + const height = Math.max( + SPLAT_TEX_MIN_HEIGHT, + Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)) + ); + const depth = Math.ceil(numSplats / (width * height)); + const maxSplats = width * height * depth; + return { width, height, depth, maxSplats }; } -class DynoSamplerCubeShadow extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "samplerCubeShadow", value, update }); - } +function computeMaxSplats(numSplats) { + const width = SPLAT_TEX_WIDTH; + const height = Math.max( + SPLAT_TEX_MIN_HEIGHT, + Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)) + ); + const depth = Math.ceil(numSplats / (width * height)); + return width * height * depth; } -class DynoProgram { - constructor({ - graph, - inputs, - outputs, - template, - consoleLog - }) { - this.graph = graph; - this.template = template; - this.inputs = inputs ?? {}; - this.outputs = outputs ?? {}; - const compile = new Compilation({ indent: this.template.indent }); - for (const key in this.outputs) { - if (this.outputs[key]) { - compile.declares.add(this.outputs[key]); - } - } - const statements = graph.compile({ - inputs: this.inputs, - outputs: this.outputs, - compile - }); - this.shader = template.generate({ globals: compile.globals, statements }); - this.uniforms = compile.uniforms; - this.updaters = compile.updaters; - if (consoleLog) { - console.log("*** COMPILED SHADER", this.shader); - console.log("*** UNIFORMS", this.uniforms); - } - } - prepareMaterial() { - return getMaterial(this); +function isMobile() { + if (navigator.platform.toLowerCase().startsWith("win")) { + return false; } - update() { - for (const updater of this.updaters) { - updater(); - } + if (navigator.maxTouchPoints > 0) { + return true; } + return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test( + navigator.userAgent + ); } -class DynoProgramTemplate { - constructor(template) { - const globals = template.match(/^([ \t]*)\{\{\s*GLOBALS\s*\}\}/m); - const statements = template.match(/^([ \t]*)\{\{\s*STATEMENTS\s*\}\}/m); - if (!globals || !statements) { - throw new Error( - "Template must contain {{ GLOBALS }} and {{ STATEMENTS }}" - ); - } - this.before = template.substring(0, globals.index); - this.between = template.substring( - globals.index + globals[0].length, - statements.index - ); - this.after = template.substring( - statements.index + statements[0].length +function isAndroid() { + return /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent); +} +function isOculus() { + return !!navigator.xr && /Oculus/.test(navigator.userAgent); +} +function isQuest2() { + return isOculus() && /Quest 2/.test(navigator.userAgent); +} +function isIos() { + return /iPhone|iPad/.test(navigator.userAgent); +} +function isVisionPro() { + return !!navigator.xr && isIos() && /Safari/.test(navigator.userAgent) && isMobile(); +} +function flipPixels(pixels, width, height) { + const tempLine = new Uint8Array(width * 4); + for (let y = 0; y < height / 2; y++) { + const topOffset = y * width * 4; + const bottomOffset = (height - 1 - y) * width * 4; + tempLine.set(pixels.subarray(topOffset, topOffset + width * 4)); + pixels.set( + pixels.subarray(bottomOffset, bottomOffset + width * 4), + topOffset ); - this.indent = statements[1]; - } - generate({ - globals, - statements - }) { - return this.before + Array.from(globals).join("\n\n") + this.between + statements.map((s) => this.indent + s).join("\n") + this.after; + pixels.set(tempLine, bottomOffset); } + return pixels; } -const programMaterial = /* @__PURE__ */ new WeakMap(); -function getMaterial(program) { - let material = programMaterial.get(program); - if (material) { - return material; +function pixelsToPngUrl(pixels, width, height) { + const canvas = document.createElement("canvas"); + canvas.width = width; + canvas.height = height; + const ctx = canvas.getContext("2d"); + if (!ctx) { + throw new Error("Can't get 2d context"); } - material = new THREE__namespace.RawShaderMaterial({ - glslVersion: THREE__namespace.GLSL3, - vertexShader: IDENT_VERTEX_SHADER, - fragmentShader: program.shader, - uniforms: program.uniforms - }); - programMaterial.set(program, material); - return material; + const imageData = ctx.createImageData(width, height); + imageData.data.set(pixels); + ctx.putImageData(imageData, 0, 0); + return canvas.toDataURL("image/png"); } -function addOutputType(a, b, operation = "add") { - const error = () => { - throw new Error(`Invalid ${operation} types: ${a}, ${b}`); - }; - if (a === b) return a; - if (a === "int") { - if (isIntType(b)) return b; - error(); - } - if (b === "int") { - if (isIntType(a)) return a; - error(); - } - if (a === "uint") { - if (isUintType(b)) return b; - error(); +function omitUndefined(obj) { + return Object.fromEntries( + Object.entries(obj).filter(([_, value]) => value !== void 0) + ); +} +const IDENT_VERTEX_SHADER = unindent(` + precision highp float; + + in vec3 position; + + void main() { + gl_Position = vec4(position.xy, 0.0, 1.0); } - if (b === "uint") { - if (isUintType(a)) return a; - error(); +`); +function averagePositions(positions) { + const sum = new THREE__namespace.Vector3(); + for (const position of positions) { + sum.add(position); } - if (a === "float") { - if (isAllFloatType(b)) return b; - error(); + return sum.divideScalar(positions.length); +} +function averageQuaternions(quaternions) { + if (quaternions.length === 0) { + return new THREE__namespace.Quaternion(); } - if (b === "float") { - if (isAllFloatType(a)) return a; - error(); + const sum = quaternions[0].clone(); + for (let i = 1; i < quaternions.length; i++) { + if (quaternions[i].dot(quaternions[0]) < 0) { + sum.x -= quaternions[i].x; + sum.y -= quaternions[i].y; + sum.z -= quaternions[i].z; + sum.w -= quaternions[i].w; + } else { + sum.x += quaternions[i].x; + sum.y += quaternions[i].y; + sum.z += quaternions[i].z; + sum.w += quaternions[i].w; + } } - throw new Error(`Invalid ${operation} types: ${a}, ${b}`); + return sum.normalize(); } -function subOutputType(a, b) { - return addOutputType(a, b, "sub"); +function coinciDist(matrix1, matrix2) { + const origin1 = new THREE__namespace.Vector3(0, 0, 0).applyMatrix4(matrix1); + const origin2 = new THREE__namespace.Vector3(0, 0, 0).applyMatrix4(matrix2); + const direction1 = new THREE__namespace.Vector3(0, 0, -1).applyMatrix4(matrix1).sub(origin1).normalize(); + const direction2 = new THREE__namespace.Vector3(0, 0, -1).applyMatrix4(matrix2).sub(origin2).normalize(); + const distance2 = origin1.distanceTo(origin2); + const coincidence = direction1.dot(direction2); + return { distance: distance2, coincidence }; } -function mulOutputType(a, b) { - const error = () => { - throw new Error(`Invalid mul types: ${a}, ${b}`); - }; - const result = (value) => value; - if (a === "int") { - if (isIntType(b)) return result(b); - error(); - } - if (b === "int") { - if (isIntType(a)) return result(a); - error(); - } - if (a === "uint") { - if (isUintType(b)) return result(b); - error(); - } - if (b === "uint") { - if (isUintType(a)) return result(a); - error(); - } - if (a === "float") { - if (isAllFloatType(b)) return result(b); - error(); - } - if (b === "float") { - if (isAllFloatType(a)) return result(a); - error(); - } - if (isIntType(a) || isUintType(a) || isIntType(b) || isUintType(b)) { - if (a === b) return result(a); - error(); +function withinDist({ + matrix1, + matrix2, + maxDistance +}) { + const origin1 = new THREE__namespace.Vector3(0, 0, 0).applyMatrix4(matrix1); + const origin2 = new THREE__namespace.Vector3(0, 0, 0).applyMatrix4(matrix2); + return origin1.distanceTo(origin2) <= maxDistance; +} +function withinCoinciDist({ + matrix1, + matrix2, + maxDistance, + minCoincidence +}) { + const { distance: distance2, coincidence } = coinciDist(matrix1, matrix2); + return distance2 <= maxDistance && (minCoincidence == null || coincidence >= minCoincidence); +} +function coorientDist(matrix1, matrix2) { + const [origin1, rotate1] = [new THREE__namespace.Vector3(), new THREE__namespace.Quaternion()]; + const [origin2, rotate2] = [new THREE__namespace.Vector3(), new THREE__namespace.Quaternion()]; + matrix1.decompose(origin1, rotate1, new THREE__namespace.Vector3()); + matrix2.decompose(origin2, rotate2, new THREE__namespace.Vector3()); + const distance2 = origin1.distanceTo(origin2); + const coorient = Math.abs(rotate1.dot(rotate2)); + return { distance: distance2, coorient }; +} +function withinCoorientDist({ + matrix1, + matrix2, + maxDistance, + minCoorient +}) { + const { distance: distance2, coorient } = coorientDist(matrix1, matrix2); + return distance2 <= maxDistance && (minCoorient == null || coorient >= minCoorient); +} +function epsilonSign(value, epsilon = 1e-3) { + if (Math.abs(value) < epsilon) { + return 0; } - if (a === "vec2") { - if (b === "vec2" || isMat2(b)) return result("vec2"); - if (b === "mat3x2") return result("vec3"); - if (b === "mat4x2") return result("vec4"); - error(); - } - if (a === "vec3") { - if (b === "mat2x3") return result("vec2"); - if (b === "vec3" || isMat3(b)) return result("vec3"); - if (b === "mat4x3") return result("vec4"); - error(); - } - if (a === "vec4") { - if (b === "mat2x4") return result("vec2"); - if (b === "mat3x4") return result("vec3"); - if (b === "vec4" || isMat4(b)) return result("vec4"); - error(); - } - if (b === "vec2") { - if (isMat2(a)) return result("vec2"); - if (a === "mat2x3") return result("vec3"); - if (a === "mat2x4") return result("vec4"); - error(); - } - if (b === "vec3") { - if (a === "mat3x2") return result("vec2"); - if (isMat3(a)) return result("vec3"); - if (a === "mat3x4") return result("vec4"); - error(); - } - if (b === "vec4") { - if (a === "mat4x2") return result("vec2"); - if (a === "mat4x3") return result("vec3"); - if (isMat4(a)) return result("vec4"); - error(); - } - if (isMat2(a)) { - if (isMat2(b)) return result("mat2"); - if (b === "mat3x2") return result("mat3x2"); - if (b === "mat4x2") return result("mat4x2"); - error(); - } - if (a === "mat2x3") { - if (isMat2(b)) return result("mat2x3"); - if (b === "mat3x2") return result("mat3"); - if (b === "mat4x2") return result("mat4x3"); - error(); - } - if (a === "mat2x4") { - if (isMat2(b)) return result("mat2x4"); - if (b === "mat3x2") return result("mat3x4"); - if (b === "mat4x2") return result("mat4"); - error(); - } - if (a === "mat3x2") { - if (b === "mat2x3") return result("mat2"); - if (isMat3(b)) return result("mat3x2"); - if (b === "mat4x3") return result("mat4x2"); - error(); - } - if (isMat3(a)) { - if (b === "mat2x3") return result("mat2x3"); - if (isMat3(b)) return result("mat3"); - if (b === "mat4x3") return result("mat4x3"); - error(); - } - if (a === "mat3x4") { - if (b === "mat2x3") return result("mat2x4"); - if (isMat3(b)) return result("mat3x4"); - if (b === "mat4x3") return result("mat4"); - error(); - } - if (a === "mat4x2") { - if (b === "mat2x4") return result("mat2"); - if (b === "mat3x4") return result("mat3x2"); - if (isMat4(b)) return result("mat4x2"); - error(); - } - if (a === "mat4x3") { - if (b === "mat2x4") return result("mat2x3"); - if (b === "mat3x4") return result("mat3"); - if (isMat4(b)) return result("mat4x3"); - error(); - } - if (isMat4(a)) { - if (b === "mat2x4") return result("mat2x4"); - if (b === "mat3x4") return result("mat3x4"); - if (isMat4(b)) return result("mat4"); - error(); - } - throw new Error(`Invalid mul types: ${a}, ${b}`); -} -function divOutputType(a, b) { - return addOutputType(a, b, "div"); -} -function imodOutputType(a, b) { - if (a === b) return a; - if (a === "int") { - if (isIntType(b)) return b; - } else if (b === "int") { - if (isIntType(a)) return a; - } else if (a === "uint") { - if (isUintType(b)) return b; - } else if (b === "uint") { - if (isUintType(a)) return a; - } - throw new Error(`Invalid imod types: ${a}, ${b}`); -} -function modOutputType(a, b) { - if (a === b || b === "float") return a; - throw new Error(`Invalid mod types: ${a}, ${b}`); -} -function modfOutputType(a) { - return a; + return Math.sign(value); } -function negOutputType(a) { - return a; +function encodeQuatXyz888(q) { + const negQuat = q.w < 0; + const iQuatX = floatToSint8(negQuat ? -q.x : q.x); + const iQuatY = floatToSint8(negQuat ? -q.y : q.y); + const iQuatZ = floatToSint8(negQuat ? -q.z : q.z); + const uQuatX = iQuatX & 255; + const uQuatY = iQuatY & 255; + const uQuatZ = iQuatZ & 255; + return uQuatX | uQuatY << 8 | uQuatZ << 16; } -function absOutputType(a) { - return a; +function decodeQuatXyz888(encoded, out) { + const iQuatX = encoded << 24 >> 24; + const iQuatY = encoded << 16 >> 24; + const iQuatZ = encoded << 8 >> 24; + out.set(iQuatX / 127, iQuatY / 127, iQuatZ / 127, 0); + const dotSelf = out.x * out.x + out.y * out.y + out.z * out.z; + out.w = Math.sqrt(Math.max(0, 1 - dotSelf)); + return out; } -function signOutputType(a) { - return a; +const tempNormalizedQuaternion = new THREE__namespace.Quaternion(); +const tempAxis = new THREE__namespace.Vector3(); +function encodeQuatOctXy88R8(q) { + const qnorm = tempNormalizedQuaternion.copy(q).normalize(); + if (qnorm.w < 0) { + qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w); + } + const theta = 2 * Math.acos(qnorm.w); + const xyz_norm = Math.sqrt( + qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z + ); + const axis = xyz_norm < 1e-6 ? tempAxis.set(1, 0, 0) : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm); + const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z); + let p_x = axis.x / sum; + let p_y = axis.y / sum; + if (axis.z < 0) { + const tmp = p_x; + p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1); + p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1); + } + const u_f = p_x * 0.5 + 0.5; + const v_f = p_y * 0.5 + 0.5; + const quantU = Math.round(u_f * 255); + const quantV = Math.round(v_f * 255); + const angleInt = Math.round(theta * (255 / Math.PI)); + return angleInt << 16 | quantV << 8 | quantU; } -function floorOutputType(a) { - return a; +function decodeQuatOctXy88R8(encoded, out) { + const quantU = encoded & 255; + const quantV = encoded >>> 8 & 255; + const angleInt = encoded >>> 16 & 255; + const u_f = quantU / 255; + const v_f = quantV / 255; + let f_x = (u_f - 0.5) * 2; + let f_y = (v_f - 0.5) * 2; + const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y)); + const t = Math.max(-f_z, 0); + f_x += f_x >= 0 ? -t : t; + f_y += f_y >= 0 ? -t : t; + const axis = tempAxis.set(f_x, f_y, f_z).normalize(); + const theta = angleInt / 255 * Math.PI; + const halfTheta = theta * 0.5; + const s = Math.sin(halfTheta); + const w = Math.cos(halfTheta); + out.set(axis.x * s, axis.y * s, axis.z * s, w); + return out; } -function ceilOutputType(a) { - return a; +function encodeQuatEulerXyz888(q) { + const qNorm = q.clone().normalize(); + const sinr_cosp = 2 * (qNorm.w * qNorm.x + qNorm.y * qNorm.z); + const cosr_cosp = 1 - 2 * (qNorm.x * qNorm.x + qNorm.y * qNorm.y); + const roll = Math.atan2(sinr_cosp, cosr_cosp); + const sinp = 2 * (qNorm.w * qNorm.y - qNorm.z * qNorm.x); + const pitch = Math.abs(sinp) >= 1 ? Math.sign(sinp) * (Math.PI / 2) : Math.asin(sinp); + const siny_cosp = 2 * (qNorm.w * qNorm.z + qNorm.x * qNorm.y); + const cosy_cosp = 1 - 2 * (qNorm.y * qNorm.y + qNorm.z * qNorm.z); + const yaw = Math.atan2(siny_cosp, cosy_cosp); + const normRoll = (roll + Math.PI) / (2 * Math.PI); + const normPitch = (pitch + Math.PI) / (2 * Math.PI); + const normYaw = (yaw + Math.PI) / (2 * Math.PI); + const rollQ = Math.round(normRoll * 255); + const pitchQ = Math.round(normPitch * 255); + const yawQ = Math.round(normYaw * 255); + return yawQ << 16 | pitchQ << 8 | rollQ; } -function truncOutputType(a) { - return a; +function decodeQuatEulerXyz888(encoded, out) { + const rollQ = encoded & 255; + const pitchQ = encoded >>> 8 & 255; + const yawQ = encoded >>> 16 & 255; + const normRoll = rollQ / 255; + const normPitch = pitchQ / 255; + const normYaw = yawQ / 255; + const roll = normRoll * (2 * Math.PI) - Math.PI; + const pitch = normPitch * (2 * Math.PI) - Math.PI; + const yaw = normYaw * (2 * Math.PI) - Math.PI; + const cr = Math.cos(roll * 0.5); + const sr = Math.sin(roll * 0.5); + const cp = Math.cos(pitch * 0.5); + const sp = Math.sin(pitch * 0.5); + const cy = Math.cos(yaw * 0.5); + const sy = Math.sin(yaw * 0.5); + out.w = cr * cp * cy + sr * sp * sy; + out.x = sr * cp * cy - cr * sp * sy; + out.y = cr * sp * cy + sr * cp * sy; + out.z = cr * cp * sy - sr * sp * cy; + out.normalize(); + return out; } -function roundOutputType(a) { - return a; +function encodeQuatOctXy1010R12(qx, qy, qz, qw) { + const qlen = Math.sqrt(qx * qx + qy * qy + qz * qz + qw * qw); + const qnx = (qw < 0 ? -qx : qx) / qlen; + const qny = (qw < 0 ? -qy : qy) / qlen; + const qnz = (qw < 0 ? -qz : qz) / qlen; + const qnw = (qw < 0 ? -qw : qw) / qlen; + const theta = 2 * Math.acos(qnw); + const xyz_norm = Math.sqrt(qnx * qnx + qny * qny + qnz * qnz); + const axisX = xyz_norm < 1e-6 ? 1 : qnx / xyz_norm; + const axisY = xyz_norm < 1e-6 ? 0 : qny / xyz_norm; + const axisZ = xyz_norm < 1e-6 ? 0 : qnz / xyz_norm; + const sum = Math.abs(axisX) + Math.abs(axisY) + Math.abs(axisZ); + let p_x = axisX / sum; + let p_y = axisY / sum; + if (axisZ < 0) { + const tmp = p_x; + p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1); + p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1); + } + const u_f = p_x * 0.5 + 0.5; + const v_f = p_y * 0.5 + 0.5; + const quantU = Math.round(u_f * 1023); + const quantV = Math.round(v_f * 1023); + const angleInt = Math.round(theta * (4095 / Math.PI)); + return angleInt << 20 | quantV << 10 | quantU; } -function fractOutputType(a) { - return a; -} -function powOutputType(a) { - return a; -} -function expOutputType(a) { - return a; -} -function exp2OutputType(a) { - return a; -} -function logOutputType(a) { - return a; -} -function log2OutputType(a) { - return a; -} -function sqrOutputType(a) { - return a; -} -function sqrtOutputType(a) { - return a; -} -function inversesqrtOutputType(a) { - return a; -} -function minOutputType(a, b, operation = "min") { - if (a === b) return a; - if (b === "float") { - if (isFloatType(a)) return a; - } else if (b === "int") { - if (isIntType(a)) return a; - } else if (b === "uint") { - if (isUintType(a)) return a; - } - throw new Error(`Invalid ${operation} types: ${a}, ${b}`); +function decodeQuatOctXy1010R12(encoded, out) { + const quantU = encoded & 1023; + const quantV = encoded >>> 10 & 1023; + const angleInt = encoded >>> 20 & 4095; + const u_f = quantU / 1023; + const v_f = quantV / 1023; + let f_x = (u_f - 0.5) * 2; + let f_y = (v_f - 0.5) * 2; + const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y)); + const t = Math.max(-f_z, 0); + f_x += f_x >= 0 ? -t : t; + f_y += f_y >= 0 ? -t : t; + const axisLen = Math.sqrt(f_x * f_x + f_y * f_y + f_z * f_z); + const axisX = axisLen < 1e-6 ? 0 : f_x / axisLen; + const axisY = axisLen < 1e-6 ? 0 : f_y / axisLen; + const axisZ = axisLen < 1e-6 ? 0 : f_z / axisLen; + const theta = angleInt / 4095 * Math.PI; + const halfTheta = theta * 0.5; + const s = Math.sin(halfTheta); + const w = Math.cos(halfTheta); + out.set(axisX * s, axisY * s, axisZ * s, w); + return out; } -function maxOutputType(a, b) { - return minOutputType(a, b, "max"); +function packSint8Bytes(b0, b1, b22, b3) { + const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127))); + const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127))); + const clampedB2 = Math.round(Math.max(-127, Math.min(127, b22 * 127))); + const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127))); + return clampedB0 & 255 | (clampedB1 & 255) << 8 | (clampedB2 & 255) << 16 | (clampedB3 & 255) << 24; } -function clampOutputType(a, b, _c) { - if (b === "float") { - if (isFloatType(a)) return a; - } else if (b === "int") { - if (isIntType(a)) return a; - } else if (b === "uint") { - if (isUintType(a)) return a; +function encodeSh1Rgb(sh1Array, index, sh1Rgb, encoding) { + const sh1Max = (encoding == null ? void 0 : encoding.sh1Max) ?? 1; + const sh1Scale = 63 / sh1Max; + const base = index * 2; + for (let i = 0; i < 9; ++i) { + const s = sh1Rgb[i] * sh1Scale; + const value = Math.round(Math.max(-63, Math.min(63, s))) & 127; + const bitStart = i * 7; + const bitEnd = bitStart + 7; + const wordStart = Math.floor(bitStart / 32); + const bitOffset = bitStart - wordStart * 32; + const firstWord = value << bitOffset & 4294967295; + sh1Array[base + wordStart] |= firstWord; + if (bitEnd > wordStart * 32 + 32) { + const secondWord = value >>> 32 - bitOffset & 4294967295; + sh1Array[base + wordStart + 1] |= secondWord; + } } - throw new Error(`Invalid clamp types: ${a}, ${b}`); -} -function mixOutputType(a, b, c) { - if (c === a) return a; - if (c === "float") return a; - if (c === "bool" && a === "float") return a; - if (c === "bvec2" && a === "vec2") return a; - if (c === "bvec3" && a === "vec3") return a; - if (c === "bvec4" && a === "vec4") return a; - throw new Error(`Invalid mix types: ${a}, ${b}, ${c}`); } -function stepOutputType(a, b) { - if (a === b || b === "float") return b; - throw new Error(`Invalid step types: ${a}, ${b}`); +function encodeSh2Rgb(sh2Array, index, sh2Rgb, encoding) { + const sh2Max = (encoding == null ? void 0 : encoding.sh2Max) ?? 1; + const sh2Scale = 1 / sh2Max; + sh2Array[index * 4 + 0] = packSint8Bytes( + sh2Rgb[0] * sh2Scale, + sh2Rgb[1] * sh2Scale, + sh2Rgb[2] * sh2Scale, + sh2Rgb[3] * sh2Scale + ); + sh2Array[index * 4 + 1] = packSint8Bytes( + sh2Rgb[4] * sh2Scale, + sh2Rgb[5] * sh2Scale, + sh2Rgb[6] * sh2Scale, + sh2Rgb[7] * sh2Scale + ); + sh2Array[index * 4 + 2] = packSint8Bytes( + sh2Rgb[8] * sh2Scale, + sh2Rgb[9] * sh2Scale, + sh2Rgb[10] * sh2Scale, + sh2Rgb[11] * sh2Scale + ); + sh2Array[index * 4 + 3] = packSint8Bytes( + sh2Rgb[12] * sh2Scale, + sh2Rgb[13] * sh2Scale, + sh2Rgb[14] * sh2Scale, + 0 + ); } -function smoothstepOutputType(a, b, c) { - if (a === b) { - if (a === c || a === "float") return c; +function encodeSh3Rgb(sh3Array, index, sh3Rgb, encoding) { + const sh3Max = (encoding == null ? void 0 : encoding.sh3Max) ?? 1; + const sh3Scale = 31 / sh3Max; + const base = index * 4; + for (let i = 0; i < 21; ++i) { + const s = sh3Rgb[i] * sh3Scale; + const value = Math.round(Math.max(-31, Math.min(31, s))) & 63; + const bitStart = i * 6; + const bitEnd = bitStart + 6; + const wordStart = Math.floor(bitStart / 32); + const bitOffset = bitStart - wordStart * 32; + const firstWord = value << bitOffset & 4294967295; + sh3Array[base + wordStart] |= firstWord; + if (bitEnd > wordStart * 32 + 32) { + const secondWord = value >>> 32 - bitOffset & 4294967295; + sh3Array[base + wordStart + 1] |= secondWord; + } } - throw new Error(`Invalid smoothstep types: ${a}, ${b}, ${c}`); } -function isNanOutputType(a, operation = "isNan") { - if (a === "float") return "bool"; - if (a === "vec2") return "bvec2"; - if (a === "vec3") return "bvec3"; - if (a === "vec4") return "bvec4"; - throw new Error(`Invalid ${operation} types: ${a}`); +function encodeExtRgb(r, g, b) { + const ar = Math.abs(r); + const ag = Math.abs(g); + const ab = Math.abs(b); + const maxAbs = Math.max(ar, ag, ab); + const base = Math.floor(Math.log2(maxAbs)); + const biasedBase = Math.max(0, Math.min(31, base + 15)); + const divisor = 2 ** (biasedBase - 15) / 255; + const uR = Math.round(Math.max(0, Math.min(255, ar / divisor))); + const uG = Math.round(Math.max(0, Math.min(255, ag / divisor))); + const uB = Math.round(Math.max(0, Math.min(255, ab / divisor))); + const expSigns = biasedBase << 3 | ((r < 0 ? 1 : 0) | (g < 0 ? 2 : 0) | (b < 0 ? 4 : 0)); + return uR | uG << 8 | uB << 16 | expSigns << 24; } -function isInfOutputType(a) { - return isNanOutputType(a, "isInf"); +function decodeExtRgb(encoded) { + const color = packedFields.color; + const biasedBase = encoded >>> 27 & 31; + const divisor = 2 ** (biasedBase - 15) / 255; + const r = (encoded & 255) * divisor; + const g = (encoded >>> 8 & 255) * divisor; + const b = (encoded >>> 16 & 255) * divisor; + color.r = encoded & 16777216 ? -r : r; + color.g = encoded & 33554432 ? -g : g; + color.b = encoded & 67108864 ? -b : b; + return color; } -const add = (a, b) => new Add({ a, b }); -const sub = (a, b) => new Sub({ a, b }); -const mul = (a, b) => new Mul({ a, b }); -const div = (a, b) => new Div({ a, b }); -const imod = (a, b) => new IMod({ a, b }); -const mod = (a, b) => new Mod({ a, b }); -const modf = (a) => new Modf({ a }).outputs; -const neg = (a) => new Neg({ a }); -const abs = (a) => new Abs({ a }); -const sign = (a) => new Sign({ a }); -const floor = (a) => new Floor({ a }); -const ceil = (a) => new Ceil({ a }); -const trunc = (a) => new Trunc({ a }); -const round = (a) => new Round({ a }); -const fract = (a) => new Fract({ a }); -const pow = (a, b) => new Pow({ a, b }); -const exp = (a) => new Exp({ a }); -const exp2 = (a) => new Exp2({ a }); -const log = (a) => new Log({ a }); -const log2 = (a) => new Log2({ a }); -const sqr = (a) => new Sqr({ a }); -const sqrt = (a) => new Sqrt({ a }); -const inversesqrt = (a) => new InverseSqrt({ a }); -const min = (a, b) => new Min({ a, b }); -const max = (a, b) => new Max({ a, b }); -const clamp = (a, min2, max2) => new Clamp({ a, min: min2, max: max2 }); -const mix = (a, b, t) => new Mix({ a, b, t }); -const step = (edge, x) => new Step({ edge, x }); -const smoothstep = (edge0, edge1, x) => new Smoothstep({ edge0, edge1, x }); -const isNan = (a) => new IsNan({ a }); -const isInf = (a) => new IsInf({ a }); -class Add extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "sum", outTypeFunc: addOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.sum} = ${inputs.a} + ${inputs.b};`]; - }; +function encodeExtSh1Rgb(sh1Array, index, sh1Rgb) { + const i4 = index * 4; + for (let k = 0; k < 3; ++k) { + const k3 = k * 3; + sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]); } } -class Sub extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "difference", outTypeFunc: subOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.difference} = ${inputs.a} - ${inputs.b};`]; - }; +function encodeExtSh12Rgb(sh1Array, sh2Array, index, sh1Rgb, sh2Rgb) { + const i4 = index * 4; + for (let k = 0; k < 3; ++k) { + const k3 = k * 3; + sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]); } -} -class Mul extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "product", outTypeFunc: mulOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.product} = ${inputs.a} * ${inputs.b};`]; - }; + sh1Array[i4 + 3] = encodeExtRgb(sh2Rgb[0], sh2Rgb[1], sh2Rgb[2]); + for (let k = 1; k < 5; ++k) { + const k5 = k * 5; + sh2Array[i4 + (k - 1)] = encodeExtRgb( + sh2Rgb[k5], + sh2Rgb[k5 + 1], + sh2Rgb[k5 + 2] + ); } } -class Div extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "quotient", outTypeFunc: divOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.quotient} = ${inputs.a} / ${inputs.b};`]; - }; +function encodeExt3Rgb(sh3ArrayA, sh3ArrayB, index, sh3Rgb) { + const i4 = index * 4; + for (let k = 0; k < 4; ++k) { + const k3 = k * 3; + sh3ArrayA[i4 + k] = encodeExtRgb( + sh3Rgb[k3], + sh3Rgb[k3 + 1], + sh3Rgb[k3 + 2] + ); } -} -class IMod extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "remainder", outTypeFunc: imodOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.remainder} = ${inputs.a} % ${inputs.b};`]; - }; + for (let k = 4; k < 7; ++k) { + const k3 = k * 3; + sh3ArrayB[i4 + (k - 4)] = encodeExtRgb( + sh3Rgb[k3], + sh3Rgb[k3 + 1], + sh3Rgb[k3 + 2] + ); } } -class Mod extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "remainder", outTypeFunc: modOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.remainder} = mod(${inputs.a}, ${inputs.b});`]; - }; +function decompressPartialGzip(fileBytes, numBytes) { + const chunks = []; + let totalBytes = 0; + let result = null; + const gunzip = new Gunzip((data, final) => { + chunks.push(data); + totalBytes += data.length; + if (final || totalBytes >= numBytes) { + const allBytes = new Uint8Array(totalBytes); + let offset2 = 0; + for (const chunk of chunks) { + allBytes.set(chunk, offset2); + offset2 += chunk.length; + } + result = allBytes.slice(0, numBytes); + } + }); + const CHUNK_SIZE = 1024; + let offset = 0; + while (result == null && offset < fileBytes.length) { + const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE); + gunzip.push(chunk, false); + offset += CHUNK_SIZE; } -} -class Modf extends Dyno { - constructor({ a }) { - const inTypes = { a: valType(a) }; - const outType = modfOutputType(inTypes.a); - const outTypes = { - fract: outType, - integer: outType - }; - super({ inTypes, outTypes, inputs: { a } }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.fract} = modf(${inputs.a}, ${outputs.integer});`]; - }; + if (result == null) { + gunzip.push(new Uint8Array(), true); + if (result == null) { + throw new Error("Failed to decompress partial gzip"); + } } + return result; } -class Neg extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "neg", outTypeFunc: negOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.neg} = -${inputs.a};`]; - }; +class GunzipReader { + constructor({ + fileBytes, + chunkBytes = 64 * 1024 + }) { + this.fileBytes = fileBytes; + this.chunkBytes = chunkBytes; + this.chunks = []; + this.totalBytes = 0; + const ds = new DecompressionStream("gzip"); + const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds); + this.reader = decompressionStream.getReader(); } -} -class Abs extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "abs", outTypeFunc: absOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.abs} = abs(${inputs.a});`]; - }; + async read(numBytes) { + while (this.totalBytes < numBytes) { + const { value: chunk, done: readerDone } = await this.reader.read(); + if (readerDone) { + break; + } + this.chunks.push(chunk); + this.totalBytes += chunk.length; + } + if (this.totalBytes < numBytes) { + throw new Error( + `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}` + ); + } + const allBytes = new Uint8Array(this.totalBytes); + let outOffset = 0; + for (const chunk of this.chunks) { + allBytes.set(chunk, outOffset); + outOffset += chunk.length; + } + const result = allBytes.subarray(0, numBytes); + this.chunks = [allBytes.subarray(numBytes)]; + this.totalBytes -= numBytes; + return result; } } -class Sign extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "sign", outTypeFunc: signOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.sign} = sign(${inputs.a});`]; - }; +function uploadU32DataTextureRows(renderer, texture2, width, rows, data) { + const gl = renderer.getContext(); + const props = renderer.properties.get(texture2); + const glTexture = props == null ? void 0 : props.__webglTexture; + if (!glTexture) { + throw new Error("texture not found"); } + const currentFlipY = gl.getParameter(gl.UNPACK_FLIP_Y_WEBGL); + const currentPremultiply = gl.getParameter(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL); + renderer.state.activeTexture(gl.TEXTURE0); + renderer.state.bindTexture(gl.TEXTURE_2D, glTexture); + gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null); + gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false); + gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false); + gl.texSubImage2D( + gl.TEXTURE_2D, + 0, + 0, + 0, + width, + rows, + gl.RGBA_INTEGER, + gl.UNSIGNED_INT, + data + ); + renderer.state.unbindTexture(); + gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, currentFlipY); + gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, currentPremultiply); } -class Floor extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "floor", outTypeFunc: floorOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.floor} = floor(${inputs.a});`]; - }; +const utils = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + DataCache, + FreeList, + GunzipReader, + IDENT_VERTEX_SHADER, + Sint8ToFloat, + Uint8ToFloat, + averagePositions, + averageQuaternions, + coinciDist, + computeMaxSplats, + coorientDist, + decodeExtRgb, + decodeExtSplat, + decodeQuatEulerXyz888, + decodeQuatOctXy1010R12, + decodeQuatOctXy88R8, + decodeQuatXyz888, + decompressPartialGzip, + encodeExt3Rgb, + encodeExtRgb, + encodeExtSh12Rgb, + encodeExtSh1Rgb, + encodeExtSplat, + encodeQuatEulerXyz888, + encodeQuatOctXy1010R12, + encodeQuatOctXy88R8, + encodeQuatXyz888, + encodeSh1Rgb, + encodeSh2Rgb, + encodeSh3Rgb, + epsilonSign, + flipPixels, + floatBitsToUint: floatBitsToUint$1, + floatToSint8, + floatToUint8, + fromHalf, + getTextureSize, + getTransferable, + isAndroid, + isIos, + isMobile, + isOculus, + isQuest2, + isVisionPro, + mapFilterObject, + mapObject, + newArray, + normalize: normalize$1, + omitUndefined, + pixelsToPngUrl, + setPackedSplat, + setPackedSplatCenter, + setPackedSplatOpacity, + setPackedSplatQuat, + setPackedSplatRgb, + setPackedSplatRgba, + setPackedSplatScales, + threeMrtArray, + threeRevision, + toHalf, + uintBitsToFloat: uintBitsToFloat$1, + unpackSplat, + uploadU32DataTextureRows, + withinCoinciDist, + withinCoorientDist, + withinDist +}, Symbol.toStringTag, { value: "Module" })); +class DynoProgram { + constructor({ + graph, + inputs, + outputs, + template, + consoleLog + }) { + this.graph = graph; + this.template = template; + this.inputs = inputs ?? {}; + this.outputs = outputs ?? {}; + const compile = new Compilation({ indent: this.template.indent }); + for (const key in this.outputs) { + if (this.outputs[key]) { + compile.declares.add(this.outputs[key]); + } + } + const statements = graph.compile({ + inputs: this.inputs, + outputs: this.outputs, + compile + }); + this.shader = template.generate({ globals: compile.globals, statements }); + this.uniforms = compile.uniforms; + this.updaters = compile.updaters; + if (consoleLog) { + console.log("*** COMPILED SHADER", this.shader); + console.log("*** UNIFORMS", this.uniforms); + } } -} -class Ceil extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "ceil", outTypeFunc: ceilOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.ceil} = ceil(${inputs.a});`]; - }; + prepareMaterial() { + return getMaterial(this); } -} -class Trunc extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "trunc", outTypeFunc: truncOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.trunc} = trunc(${inputs.a});`]; - }; + update() { + for (const updater of this.updaters) { + updater(); + } } } -class Round extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "round", outTypeFunc: roundOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.round} = round(${inputs.a});`]; - }; +class DynoProgramTemplate { + constructor(template) { + const globals = template.match(/^([ \t]*)\{\{\s*GLOBALS\s*\}\}/m); + const statements = template.match(/^([ \t]*)\{\{\s*STATEMENTS\s*\}\}/m); + if (!globals || !statements) { + throw new Error( + "Template must contain {{ GLOBALS }} and {{ STATEMENTS }}" + ); + } + this.before = template.substring(0, globals.index); + this.between = template.substring( + globals.index + globals[0].length, + statements.index + ); + this.after = template.substring( + statements.index + statements[0].length + ); + this.indent = statements[1]; } -} -class Fract extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "fract", outTypeFunc: fractOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.fract} = fract(${inputs.a});`]; - }; + generate({ + globals, + statements + }) { + return this.before + Array.from(globals).join("\n\n") + this.between + statements.map((s) => this.indent + s).join("\n") + this.after; } } -class Pow extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "power", outTypeFunc: powOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.power} = pow(${inputs.a}, ${inputs.b});`]; - }; +const programMaterial = /* @__PURE__ */ new WeakMap(); +function getMaterial(program) { + let material = programMaterial.get(program); + if (material) { + return material; } + material = new THREE__namespace.RawShaderMaterial({ + glslVersion: THREE__namespace.GLSL3, + vertexShader: IDENT_VERTEX_SHADER, + fragmentShader: program.shader, + uniforms: program.uniforms + }); + programMaterial.set(program, material); + return material; } -class Exp extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "exp", outTypeFunc: expOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.exp} = exp(${inputs.a});`]; - }; +function addOutputType(a, b, operation = "add") { + const error = () => { + throw new Error(`Invalid ${operation} types: ${a}, ${b}`); + }; + if (a === b) return a; + if (a === "int") { + if (isIntType(b)) return b; + error(); } -} -class Exp2 extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "exp2", outTypeFunc: exp2OutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.exp2} = exp2(${inputs.a});`]; - }; + if (b === "int") { + if (isIntType(a)) return a; + error(); } -} -class Log extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "log", outTypeFunc: logOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.log} = log(${inputs.a});`]; - }; + if (a === "uint") { + if (isUintType(b)) return b; + error(); } -} -class Log2 extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "log2", outTypeFunc: log2OutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.log2} = log2(${inputs.a});`]; - }; + if (b === "uint") { + if (isUintType(a)) return a; + error(); } -} -class Sqr extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "sqr", outTypeFunc: sqrOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.sqr} = ${inputs.a} * ${inputs.a};`]; - }; + if (a === "float") { + if (isAllFloatType(b)) return b; + error(); } -} -class Sqrt extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "sqrt", outTypeFunc: sqrtOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.sqrt} = sqrt(${inputs.a});`]; - }; + if (b === "float") { + if (isAllFloatType(a)) return a; + error(); } + throw new Error(`Invalid ${operation} types: ${a}, ${b}`); } -class InverseSqrt extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "inversesqrt", outTypeFunc: inversesqrtOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.inversesqrt} = inversesqrt(${inputs.a});`]; - }; - } +function subOutputType(a, b) { + return addOutputType(a, b, "sub"); } -class Min extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "min", outTypeFunc: minOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.min} = min(${inputs.a}, ${inputs.b});`]; - }; +function mulOutputType(a, b) { + const error = () => { + throw new Error(`Invalid mul types: ${a}, ${b}`); + }; + const result = (value) => value; + if (a === "int") { + if (isIntType(b)) return result(b); + error(); } -} -class Max extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "max", outTypeFunc: maxOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.max} = max(${inputs.a}, ${inputs.b});`]; - }; + if (b === "int") { + if (isIntType(a)) return result(a); + error(); } -} -class Clamp extends TrinaryOp { - constructor({ - a, - min: min2, - max: max2 - }) { - super({ - a, - b: min2, - c: max2, - outKey: "clamp", - outTypeFunc: clampOutputType - }); - this.statements = ({ inputs, outputs }) => { - const { a: a2, b: min3, c: max3 } = inputs; - return [`${outputs.clamp} = clamp(${a2}, ${min3}, ${max3});`]; - }; + if (a === "uint") { + if (isUintType(b)) return result(b); + error(); } -} -class Mix extends TrinaryOp { - constructor({ a, b, t }) { - super({ a, b, c: t, outKey: "mix", outTypeFunc: mixOutputType }); - this.statements = ({ inputs, outputs }) => { - const { a: a2, b: b22, c: t2 } = inputs; - return [`${outputs.mix} = mix(${a2}, ${b22}, ${t2});`]; - }; + if (b === "uint") { + if (isUintType(a)) return result(a); + error(); } -} -class Step extends BinaryOp { - constructor({ edge, x }) { - super({ - a: edge, - b: x, - outKey: "step", - outTypeFunc: stepOutputType - }); - this.statements = ({ inputs, outputs }) => { - const { a: edge2, b: x2 } = inputs; - return [`${outputs.step} = step(${edge2}, ${x2});`]; - }; + if (a === "float") { + if (isAllFloatType(b)) return result(b); + error(); } -} -class Smoothstep extends TrinaryOp { - constructor({ - edge0, - edge1, - x - }) { - super({ - a: edge0, - b: edge1, - c: x, - outKey: "smoothstep", - outTypeFunc: smoothstepOutputType - }); - this.statements = ({ inputs, outputs }) => { - const { a: edge02, b: edge12, c: x2 } = inputs; - return [`${outputs.smoothstep} = smoothstep(${edge02}, ${edge12}, ${x2});`]; - }; + if (b === "float") { + if (isAllFloatType(a)) return result(a); + error(); } -} -class IsNan extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "isNan", outTypeFunc: isNanOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.isNan} = isNan(${inputs.a});`]; - }; + if (isIntType(a) || isUintType(a) || isIntType(b) || isUintType(b)) { + if (a === b) return result(a); + error(); } -} -class IsInf extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "isInf", outTypeFunc: isInfOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.isInf} = isInf(${inputs.a});`]; - }; + if (a === "vec2") { + if (b === "vec2" || isMat2(b)) return result("vec2"); + if (b === "mat3x2") return result("vec3"); + if (b === "mat4x2") return result("vec4"); + error(); } -} -const and = (a, b) => new And({ a, b }); -const or = (a, b) => new Or({ a, b }); -const xor = (a, b) => new Xor({ a, b }); -const not = (a) => new Not({ a }); -const shr = (a, b) => new Shr({ a, b }); -const shl = (a, b) => new Shl({ a, b }); -const lessThan = (a, b) => new LessThan({ a, b }); -const lessThanEqual = (a, b) => new LessThanEqual({ a, b }); -const greaterThan = (a, b) => new GreaterThan({ a, b }); -const greaterThanEqual = (a, b) => new GreaterThanEqual({ a, b }); -const equal = (a, b) => new Equal({ a, b }); -const notEqual = (a, b) => new NotEqual({ a, b }); -const any = (a) => new Any({ a }); -const all = (a) => new All({ a }); -const select = (cond, t, f) => new Select({ cond, t, f }); -const compXor = (a) => new CompXor({ a }); -class And extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "and" }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.and === "bool") { - return [`${outputs.and} = ${inputs.a} && ${inputs.b};`]; - } - return [`${outputs.and} = ${inputs.a} & ${inputs.b};`]; - }; - } -} -class Or extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "or" }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.or === "bool") { - return [`${outputs.or} = ${inputs.a} || ${inputs.b};`]; - } - return [`${outputs.or} = ${inputs.a} | ${inputs.b};`]; - }; - } -} -class Xor extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "xor" }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.xor === "bool") { - return [`${outputs.xor} = ${inputs.a} ^^ ${inputs.b};`]; - } - return [`${outputs.xor} = ${inputs.a} ^ ${inputs.b};`]; - }; - } -} -class Not extends UnaryOp { - constructor({ a }) { - super({ a, outTypeFunc: (aType) => aType, outKey: "not" }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.not === "bool") { - return [`${outputs.not} = !${inputs.a};`]; - } - return [`${outputs.not} = not(${inputs.a});`]; - }; + if (a === "vec3") { + if (b === "mat2x3") return result("vec2"); + if (b === "vec3" || isMat3(b)) return result("vec3"); + if (b === "mat4x3") return result("vec4"); + error(); } -} -class LessThan extends BinaryOp { - constructor({ a, b }) { - super({ - a, - b, - outTypeFunc: (aType, bType) => compareOutputType(aType, "lessThan"), - outKey: "lessThan" - }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.lessThan === "bool") { - return [`${outputs.lessThan} = ${inputs.a} < ${inputs.b};`]; - } - return [`${outputs.lessThan} = lessThan(${inputs.a}, ${inputs.b});`]; - }; + if (a === "vec4") { + if (b === "mat2x4") return result("vec2"); + if (b === "mat3x4") return result("vec3"); + if (b === "vec4" || isMat4(b)) return result("vec4"); + error(); } -} -class LessThanEqual extends BinaryOp { - constructor({ a, b }) { - super({ - a, - b, - outTypeFunc: (aType, bType) => compareOutputType(aType, "lessThanEqual"), - outKey: "lessThanEqual" - }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.lessThanEqual === "bool") { - return [`${outputs.lessThanEqual} = ${inputs.a} <= ${inputs.b};`]; - } - return [ - `${outputs.lessThanEqual} = lessThanEqual(${inputs.a}, ${inputs.b});` - ]; - }; + if (b === "vec2") { + if (isMat2(a)) return result("vec2"); + if (a === "mat2x3") return result("vec3"); + if (a === "mat2x4") return result("vec4"); + error(); } -} -class GreaterThan extends BinaryOp { - constructor({ a, b }) { - super({ - a, - b, - outTypeFunc: (aType, bType) => compareOutputType(aType, "greaterThan"), - outKey: "greaterThan" - }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.greaterThan === "bool") { - return [`${outputs.greaterThan} = ${inputs.a} > ${inputs.b};`]; - } - return [ - `${outputs.greaterThan} = greaterThan(${inputs.a}, ${inputs.b});` - ]; - }; + if (b === "vec3") { + if (a === "mat3x2") return result("vec2"); + if (isMat3(a)) return result("vec3"); + if (a === "mat3x4") return result("vec4"); + error(); } -} -class GreaterThanEqual extends BinaryOp { - constructor({ a, b }) { - super({ - a, - b, - outTypeFunc: (aType, bType) => compareOutputType(aType, "greaterThanEqual"), - outKey: "greaterThanEqual" - }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.greaterThanEqual === "bool") { - return [`${outputs.greaterThanEqual} = ${inputs.a} >= ${inputs.b};`]; - } - return [ - `${outputs.greaterThanEqual} = greaterThanEqual(${inputs.a}, ${inputs.b});` - ]; - }; + if (b === "vec4") { + if (a === "mat4x2") return result("vec2"); + if (a === "mat4x3") return result("vec3"); + if (isMat4(a)) return result("vec4"); + error(); } -} -class Equal extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outTypeFunc: equalOutputType, outKey: "equal" }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.equal === "bool") { - return [`${outputs.equal} = ${inputs.a} == ${inputs.b};`]; - } - return [`${outputs.equal} = equal(${inputs.a}, ${inputs.b});`]; - }; + if (isMat2(a)) { + if (isMat2(b)) return result("mat2"); + if (b === "mat3x2") return result("mat3x2"); + if (b === "mat4x2") return result("mat4x2"); + error(); } -} -class NotEqual extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outTypeFunc: notEqualOutputType, outKey: "notEqual" }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.notEqual === "bool") { - return [`${outputs.notEqual} = ${inputs.a} != ${inputs.b};`]; - } - return [`${outputs.notEqual} = notEqual(${inputs.a}, ${inputs.b});`]; - }; + if (a === "mat2x3") { + if (isMat2(b)) return result("mat2x3"); + if (b === "mat3x2") return result("mat3"); + if (b === "mat4x2") return result("mat4x3"); + error(); } -} -class Any extends UnaryOp { - constructor({ a }) { - super({ a, outTypeFunc: (aType) => "bool", outKey: "any" }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.any} = any(${inputs.a});`]; - }; + if (a === "mat2x4") { + if (isMat2(b)) return result("mat2x4"); + if (b === "mat3x2") return result("mat3x4"); + if (b === "mat4x2") return result("mat4"); + error(); } -} -class All extends UnaryOp { - constructor({ a }) { - super({ a, outTypeFunc: (aType) => "bool", outKey: "all" }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.all} = all(${inputs.a});`]; - }; + if (a === "mat3x2") { + if (b === "mat2x3") return result("mat2"); + if (isMat3(b)) return result("mat3x2"); + if (b === "mat4x3") return result("mat4x2"); + error(); } -} -class Select extends TrinaryOp { - constructor({ - cond, - t, - f - }) { - super({ - a: cond, - b: t, - c: f, - outKey: "select", - outTypeFunc: (aType, bType, cType) => bType - }); - this.statements = ({ inputs, outputs }) => { - const { a: cond2, b: t2, c: f2 } = inputs; - return [`${outputs.select} = (${cond2}) ? (${t2}) : (${f2});`]; - }; + if (isMat3(a)) { + if (b === "mat2x3") return result("mat2x3"); + if (isMat3(b)) return result("mat3"); + if (b === "mat4x3") return result("mat4x3"); + error(); } -} -function compareOutputType(type, operator) { - if (isScalarType(type)) { - return "bool"; + if (a === "mat3x4") { + if (b === "mat2x3") return result("mat2x4"); + if (isMat3(b)) return result("mat3x4"); + if (b === "mat4x3") return result("mat4"); + error(); } - if (type === "ivec2" || type === "uvec2" || type === "vec2") { - return "bvec2"; + if (a === "mat4x2") { + if (b === "mat2x4") return result("mat2"); + if (b === "mat3x4") return result("mat3x2"); + if (isMat4(b)) return result("mat4x2"); + error(); } - if (type === "ivec3" || type === "uvec3" || type === "vec3") { - return "bvec3"; + if (a === "mat4x3") { + if (b === "mat2x4") return result("mat2x3"); + if (b === "mat3x4") return result("mat3"); + if (isMat4(b)) return result("mat4x3"); + error(); } - if (type === "ivec4" || type === "uvec4" || type === "vec4") { - return "bvec4"; + if (isMat4(a)) { + if (b === "mat2x4") return result("mat2x4"); + if (b === "mat3x4") return result("mat3x4"); + if (isMat4(b)) return result("mat4"); + error(); } - throw new Error(`Invalid ${operator} type: ${type}`); + throw new Error(`Invalid mul types: ${a}, ${b}`); } -function equalOutputType(type, operator = "equal") { - if (isScalarType(type)) { - return "bool"; - } - if (isBoolType(type)) { - return type; - } - if (type === "ivec2" || type === "uvec2" || type === "vec2") { - return "bvec2"; - } - if (type === "ivec3" || type === "uvec3" || type === "vec3") { - return "bvec3"; +function divOutputType(a, b) { + return addOutputType(a, b, "div"); +} +function imodOutputType(a, b) { + if (a === b) return a; + if (a === "int") { + if (isIntType(b)) return b; + } else if (b === "int") { + if (isIntType(a)) return a; + } else if (a === "uint") { + if (isUintType(b)) return b; + } else if (b === "uint") { + if (isUintType(a)) return a; } - if (type === "ivec4" || type === "uvec4" || type === "vec4") { - return "bvec4"; + throw new Error(`Invalid imod types: ${a}, ${b}`); +} +function modOutputType(a, b) { + if (a === b || b === "float") return a; + throw new Error(`Invalid mod types: ${a}, ${b}`); +} +function modfOutputType(a) { + return a; +} +function negOutputType(a) { + return a; +} +function absOutputType(a) { + return a; +} +function signOutputType(a) { + return a; +} +function floorOutputType(a) { + return a; +} +function ceilOutputType(a) { + return a; +} +function truncOutputType(a) { + return a; +} +function roundOutputType(a) { + return a; +} +function fractOutputType(a) { + return a; +} +function powOutputType(a) { + return a; +} +function expOutputType(a) { + return a; +} +function exp2OutputType(a) { + return a; +} +function logOutputType(a) { + return a; +} +function log2OutputType(a) { + return a; +} +function sqrOutputType(a) { + return a; +} +function sqrtOutputType(a) { + return a; +} +function inversesqrtOutputType(a) { + return a; +} +function minOutputType(a, b, operation = "min") { + if (a === b) return a; + if (b === "float") { + if (isFloatType(a)) return a; + } else if (b === "int") { + if (isIntType(a)) return a; + } else if (b === "uint") { + if (isUintType(a)) return a; } - throw new Error(`Invalid ${operator} type: ${type}`); + throw new Error(`Invalid ${operation} types: ${a}, ${b}`); } -function notEqualOutputType(type) { - return equalOutputType(type, "notEqual"); +function maxOutputType(a, b) { + return minOutputType(a, b, "max"); } -function compXorOutputType(type) { - if (isBoolType(type)) { - return "bool"; +function clampOutputType(a, b, _c) { + if (b === "float") { + if (isFloatType(a)) return a; + } else if (b === "int") { + if (isIntType(a)) return a; + } else if (b === "uint") { + if (isUintType(a)) return a; } - if (isIntType(type)) { - return "int"; + throw new Error(`Invalid clamp types: ${a}, ${b}`); +} +function mixOutputType(a, b, c) { + if (c === a) return a; + if (c === "float") return a; + if (c === "bool" && a === "float") return a; + if (c === "bvec2" && a === "vec2") return a; + if (c === "bvec3" && a === "vec3") return a; + if (c === "bvec4" && a === "vec4") return a; + throw new Error(`Invalid mix types: ${a}, ${b}, ${c}`); +} +function stepOutputType(a, b) { + if (a === b || b === "float") return b; + throw new Error(`Invalid step types: ${a}, ${b}`); +} +function smoothstepOutputType(a, b, c) { + if (a === b) { + if (a === c || a === "float") return c; } - if (isUintType(type)) { - return "uint"; + throw new Error(`Invalid smoothstep types: ${a}, ${b}, ${c}`); +} +function isNanOutputType(a, operation = "isNan") { + if (a === "float") return "bool"; + if (a === "vec2") return "bvec2"; + if (a === "vec3") return "bvec3"; + if (a === "vec4") return "bvec4"; + throw new Error(`Invalid ${operation} types: ${a}`); +} +function isInfOutputType(a) { + return isNanOutputType(a, "isInf"); +} +const add = (a, b) => new Add({ a, b }); +const sub = (a, b) => new Sub({ a, b }); +const mul = (a, b) => new Mul({ a, b }); +const div = (a, b) => new Div({ a, b }); +const imod = (a, b) => new IMod({ a, b }); +const mod = (a, b) => new Mod({ a, b }); +const modf = (a) => new Modf({ a }).outputs; +const neg = (a) => new Neg({ a }); +const abs = (a) => new Abs({ a }); +const sign = (a) => new Sign({ a }); +const floor = (a) => new Floor({ a }); +const ceil = (a) => new Ceil({ a }); +const trunc = (a) => new Trunc({ a }); +const round = (a) => new Round({ a }); +const fract = (a) => new Fract({ a }); +const pow = (a, b) => new Pow({ a, b }); +const exp = (a) => new Exp({ a }); +const exp2 = (a) => new Exp2({ a }); +const log = (a) => new Log({ a }); +const log2 = (a) => new Log2({ a }); +const sqr = (a) => new Sqr({ a }); +const sqrt = (a) => new Sqrt({ a }); +const inversesqrt = (a) => new InverseSqrt({ a }); +const min = (a, b) => new Min({ a, b }); +const max = (a, b) => new Max({ a, b }); +const clamp = (a, min2, max2) => new Clamp({ a, min: min2, max: max2 }); +const mix = (a, b, t) => new Mix({ a, b, t }); +const step = (edge, x) => new Step({ edge, x }); +const smoothstep = (edge0, edge1, x) => new Smoothstep({ edge0, edge1, x }); +const isNan = (a) => new IsNan({ a }); +const isInf = (a) => new IsInf({ a }); +class Add extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "sum", outTypeFunc: addOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.sum} = ${inputs.a} + ${inputs.b};`]; + }; } - throw new Error(`Invalid compXor type: ${type}`); } -class CompXor extends UnaryOp { - constructor({ a }) { - const outType = compXorOutputType(valType(a)); - super({ a, outTypeFunc: (aType) => outType, outKey: "compXor" }); +class Sub extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "difference", outTypeFunc: subOutputType }); this.statements = ({ inputs, outputs }) => { - if (isScalarType(this.outTypes.compXor)) { - return [`${outputs.compXor} = ${inputs.a};`]; - } - const components = isVector2Type(outType) ? ["x", "y"] : isVector3Type(outType) ? ["x", "y", "z"] : ["x", "y", "z", "w"]; - const operands = components.map((c) => `${inputs.a}.${c}`); - const operator = isBoolType(outType) ? "^^" : "^"; - return [`${outputs.compXor} = ${operands.join(` ${operator} `)};`]; + return [`${outputs.difference} = ${inputs.a} - ${inputs.b};`]; }; } } -class Shr extends BinaryOp { +class Mul extends BinaryOp { constructor({ a, b }) { - super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "shr" }); + super({ a, b, outKey: "product", outTypeFunc: mulOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.shr} = ${inputs.a} >> ${inputs.b};`]; + return [`${outputs.product} = ${inputs.a} * ${inputs.b};`]; }; } } -class Shl extends BinaryOp { +class Div extends BinaryOp { constructor({ a, b }) { - super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "shl" }); + super({ a, b, outKey: "quotient", outTypeFunc: divOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.shl} = ${inputs.a} << ${inputs.b};`]; + return [`${outputs.quotient} = ${inputs.a} / ${inputs.b};`]; }; } } -const bool = (value) => new Bool({ value }); -const int = (value) => new Int({ value }); -const uint = (value) => new Uint({ value }); -const float = (value) => new Float({ value }); -const bvec2 = (value) => new BVec2({ value }); -const bvec3 = (value) => new BVec3({ value }); -const bvec4 = (value) => new BVec4({ value }); -const ivec2 = (value) => new IVec2({ value }); -const ivec3 = (value) => new IVec3({ value }); -const ivec4 = (value) => new IVec4({ value }); -const uvec2 = (value) => new UVec2({ value }); -const uvec3 = (value) => new UVec3({ value }); -const uvec4 = (value) => new UVec4({ value }); -const vec2 = (value) => new Vec2({ value }); -const vec3 = (value) => new Vec3({ value }); -const vec4 = (value) => new Vec4({ value }); -const mat2 = (value) => new Mat2({ value }); -const mat3 = (value) => new Mat3({ value }); -const mat4 = (value) => new Mat4({ value }); -const floatBitsToInt = (value) => new FloatBitsToInt({ value }); -const floatBitsToUint = (value) => new FloatBitsToUint({ value }); -const intBitsToFloat = (value) => new IntBitsToFloat({ value }); -const uintBitsToFloat = (value) => new UintBitsToFloat({ value }); -const packSnorm2x16 = (value) => new PackSnorm2x16({ value }); -const unpackSnorm2x16 = (value) => new UnpackSnorm2x16({ value }); -const packUnorm2x16 = (value) => new PackUnorm2x16({ value }); -const unpackUnorm2x16 = (value) => new UnpackUnorm2x16({ value }); -const packHalf2x16 = (value) => new PackHalf2x16({ value }); -const unpackHalf2x16 = (value) => new UnpackHalf2x16({ value }); -const uintToRgba8 = (value) => new UintToRgba8({ value }); -class SimpleCast extends UnaryOp { - constructor({ - value, - outType, - outKey - }) { - super({ a: value, outTypeFunc: () => outType, outKey }); - this.statements = ({ inputs, outputs }) => [ - `${outputs[outKey]} = ${typeLiteral(outType)}(${inputs.a});` - ]; +class IMod extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "remainder", outTypeFunc: imodOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.remainder} = ${inputs.a} % ${inputs.b};`]; + }; } } -class Bool extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "bool", outKey: "bool" }); +class Mod extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "remainder", outTypeFunc: modOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.remainder} = mod(${inputs.a}, ${inputs.b});`]; + }; } } -class Int extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "int", outKey: "int" }); - } -} -class Uint extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "uint", outKey: "uint" }); - } -} -class Float extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "float", outKey: "float" }); - } -} -class BVec2 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "bvec2", outKey: "bvec2" }); - } -} -class BVec3 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "bvec3", outKey: "bvec3" }); - } -} -class BVec4 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "bvec4", outKey: "bvec4" }); - } -} -class IVec2 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "ivec2", outKey: "ivec2" }); - } -} -class IVec3 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "ivec3", outKey: "ivec3" }); - } -} -class IVec4 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "ivec4", outKey: "ivec4" }); - } -} -class UVec2 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "uvec2", outKey: "uvec2" }); - } -} -class UVec3 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "uvec3", outKey: "uvec3" }); +class Modf extends Dyno { + constructor({ a }) { + const inTypes = { a: valType(a) }; + const outType = modfOutputType(inTypes.a); + const outTypes = { + fract: outType, + integer: outType + }; + super({ inTypes, outTypes, inputs: { a } }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.fract} = modf(${inputs.a}, ${outputs.integer});`]; + }; } } -class UVec4 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "uvec4", outKey: "uvec4" }); +class Neg extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "neg", outTypeFunc: negOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.neg} = -${inputs.a};`]; + }; } } -class Vec2 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "vec2", outKey: "vec2" }); +class Abs extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "abs", outTypeFunc: absOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.abs} = abs(${inputs.a});`]; + }; } } -class Vec3 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "vec3", outKey: "vec3" }); +class Sign extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "sign", outTypeFunc: signOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.sign} = sign(${inputs.a});`]; + }; } } -class Vec4 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "vec4", outKey: "vec4" }); +class Floor extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "floor", outTypeFunc: floorOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.floor} = floor(${inputs.a});`]; + }; } } -class Mat2 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "mat2", outKey: "mat2" }); +class Ceil extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "ceil", outTypeFunc: ceilOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.ceil} = ceil(${inputs.a});`]; + }; } } -class Mat3 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "mat3", outKey: "mat3" }); +class Trunc extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "trunc", outTypeFunc: truncOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.trunc} = trunc(${inputs.a});`]; + }; } } -class Mat4 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "mat4", outKey: "mat4" }); +class Round extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "round", outTypeFunc: roundOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.round} = round(${inputs.a});`]; + }; } } -class FloatBitsToInt extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "int", outTypeFunc: () => "int" }); +class Fract extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "fract", outTypeFunc: fractOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.int} = floatBitsToInt(${inputs.a});`]; + return [`${outputs.fract} = fract(${inputs.a});`]; }; } } -class FloatBitsToUint extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); +class Pow extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "power", outTypeFunc: powOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.uint} = floatBitsToUint(${inputs.a});`]; + return [`${outputs.power} = pow(${inputs.a}, ${inputs.b});`]; }; } } -class IntBitsToFloat extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "float", outTypeFunc: () => "float" }); +class Exp extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "exp", outTypeFunc: expOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.float} = intBitsToFloat(${inputs.a});`]; + return [`${outputs.exp} = exp(${inputs.a});`]; }; } } -class UintBitsToFloat extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "float", outTypeFunc: () => "float" }); +class Exp2 extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "exp2", outTypeFunc: exp2OutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.float} = uintBitsToFloat(${inputs.a});`]; + return [`${outputs.exp2} = exp2(${inputs.a});`]; }; } } -class PackSnorm2x16 extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); +class Log extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "log", outTypeFunc: logOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.uint} = packSnorm2x16(${inputs.a});`]; + return [`${outputs.log} = log(${inputs.a});`]; }; } } -class UnpackSnorm2x16 extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "vec2", outTypeFunc: () => "vec2" }); +class Log2 extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "log2", outTypeFunc: log2OutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.vec2} = unpackSnorm2x16(${inputs.a});`]; + return [`${outputs.log2} = log2(${inputs.a});`]; }; } } -class PackUnorm2x16 extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); +class Sqr extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "sqr", outTypeFunc: sqrOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.uint} = packUnorm2x16(${inputs.a});`]; + return [`${outputs.sqr} = ${inputs.a} * ${inputs.a};`]; }; } } -class UnpackUnorm2x16 extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "vec2", outTypeFunc: () => "vec2" }); +class Sqrt extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "sqrt", outTypeFunc: sqrtOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.vec2} = unpackUnorm2x16(${inputs.a});`]; + return [`${outputs.sqrt} = sqrt(${inputs.a});`]; }; } } -class PackHalf2x16 extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); +class InverseSqrt extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "inversesqrt", outTypeFunc: inversesqrtOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.uint} = packHalf2x16(${inputs.a});`]; + return [`${outputs.inversesqrt} = inversesqrt(${inputs.a});`]; }; } } -class UnpackHalf2x16 extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "vec2", outTypeFunc: () => "vec2" }); +class Min extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "min", outTypeFunc: minOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.vec2} = unpackHalf2x16(${inputs.a});`]; + return [`${outputs.min} = min(${inputs.a}, ${inputs.b});`]; }; } } -class UintToRgba8 extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "rgba8", outTypeFunc: () => "vec4" }); +class Max extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "max", outTypeFunc: maxOutputType }); this.statements = ({ inputs, outputs }) => { - return [ - `uvec4 uRgba = uvec4(${inputs.a} & 0xffu, (${inputs.a} >> 8u) & 0xffu, (${inputs.a} >> 16u) & 0xffu, (${inputs.a} >> 24u) & 0xffu);`, - `${outputs.rgba8} = vec4(uRgba) / 255.0;` - ]; + return [`${outputs.max} = max(${inputs.a}, ${inputs.b});`]; }; } } -const length = (a) => new Length({ a }); -const distance = (a, b) => new Distance({ a, b }); -const dot = (a, b) => new Dot({ a, b }); -const cross = (a, b) => new Cross({ a, b }); -const normalize = (a) => new Normalize({ a }); -const faceforward = (a, b, c) => new FaceForward({ a, b, c }); -const reflectVec = (incident, normal) => new ReflectVec({ incident, normal }); -const refractVec = (incident, normal, eta) => new RefractVec({ incident, normal, eta }); -const split = (vector) => new Split({ vector }); -const combine = ({ - vector, - vectorType, - x, - y, - z, - w, - r, - g, - b, - a -}) => new Combine({ vector, vectorType, x, y, z, w, r, g, b, a }); -const projectH = (a) => new ProjectH({ a }); -const extendVec = (a, b) => new ExtendVec({ a, b }); -const swizzle = (a, select2) => new Swizzle({ vector: a, select: select2 }); -const compMult = (a, b) => new CompMult({ a, b }); -const outer = (a, b) => new Outer({ a, b }); -const transpose = (a) => new Transpose({ a }); -const determinant = (a) => new Determinant({ a }); -const inverse = (a) => new Inverse({ a }); -class Length extends UnaryOp { - constructor({ a }) { - super({ a, outTypeFunc: (aType) => "float", outKey: "length" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.length} = length(${inputs.a});` - ]; +class Clamp extends TrinaryOp { + constructor({ + a, + min: min2, + max: max2 + }) { + super({ + a, + b: min2, + c: max2, + outKey: "clamp", + outTypeFunc: clampOutputType + }); + this.statements = ({ inputs, outputs }) => { + const { a: a2, b: min3, c: max3 } = inputs; + return [`${outputs.clamp} = clamp(${a2}, ${min3}, ${max3});`]; + }; } } -class Distance extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "distance", outTypeFunc: (aType, bType) => "float" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.distance} = distance(${inputs.a}, ${inputs.b});` - ]; +class Mix extends TrinaryOp { + constructor({ a, b, t }) { + super({ a, b, c: t, outKey: "mix", outTypeFunc: mixOutputType }); + this.statements = ({ inputs, outputs }) => { + const { a: a2, b: b22, c: t2 } = inputs; + return [`${outputs.mix} = mix(${a2}, ${b22}, ${t2});`]; + }; } } -class Dot extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "dot", outTypeFunc: (aType, bType) => "float" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.dot} = dot(${inputs.a}, ${inputs.b});` - ]; +class Step extends BinaryOp { + constructor({ edge, x }) { + super({ + a: edge, + b: x, + outKey: "step", + outTypeFunc: stepOutputType + }); + this.statements = ({ inputs, outputs }) => { + const { a: edge2, b: x2 } = inputs; + return [`${outputs.step} = step(${edge2}, ${x2});`]; + }; } } -class Cross extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "cross", outTypeFunc: (aType, bType) => "vec3" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.cross} = cross(${inputs.a}, ${inputs.b});` - ]; +class Smoothstep extends TrinaryOp { + constructor({ + edge0, + edge1, + x + }) { + super({ + a: edge0, + b: edge1, + c: x, + outKey: "smoothstep", + outTypeFunc: smoothstepOutputType + }); + this.statements = ({ inputs, outputs }) => { + const { a: edge02, b: edge12, c: x2 } = inputs; + return [`${outputs.smoothstep} = smoothstep(${edge02}, ${edge12}, ${x2});`]; + }; } } -class Normalize extends UnaryOp { +class IsNan extends UnaryOp { constructor({ a }) { - super({ a, outTypeFunc: (aType) => aType, outKey: "normalize" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.normalize} = normalize(${inputs.a});` - ]; + super({ a, outKey: "isNan", outTypeFunc: isNanOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.isNan} = isNan(${inputs.a});`]; + }; } } -function projectHOutputType(type) { - if (type === "vec3") { - return "vec2"; - } - if (type === "vec4") { - return "vec3"; +class IsInf extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "isInf", outTypeFunc: isInfOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.isInf} = isInf(${inputs.a});`]; + }; } - throw new Error("Invalid type"); } -class ProjectH extends UnaryOp { - constructor({ a }) { - super({ - a, - outTypeFunc: (aType) => projectHOutputType(aType), - outKey: "projected" - }); +const and = (a, b) => new And({ a, b }); +const or = (a, b) => new Or({ a, b }); +const xor = (a, b) => new Xor({ a, b }); +const not = (a) => new Not({ a }); +const shr = (a, b) => new Shr({ a, b }); +const shl = (a, b) => new Shl({ a, b }); +const lessThan = (a, b) => new LessThan({ a, b }); +const lessThanEqual = (a, b) => new LessThanEqual({ a, b }); +const greaterThan = (a, b) => new GreaterThan({ a, b }); +const greaterThanEqual = (a, b) => new GreaterThanEqual({ a, b }); +const equal = (a, b) => new Equal({ a, b }); +const notEqual = (a, b) => new NotEqual({ a, b }); +const any = (a) => new Any({ a }); +const all = (a) => new All({ a }); +const select = (cond, t, f) => new Select({ cond, t, f }); +const compXor = (a) => new CompXor({ a }); +class And extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "and" }); this.statements = ({ inputs, outputs }) => { - if (this.inTypes.a === "vec3") { - return [`${outputs.projected} = ${inputs.a}.xy / ${inputs.a}.z;`]; - } - if (this.inTypes.a === "vec4") { - return [`${outputs.projected} = ${inputs.a}.xyz / ${inputs.a}.w;`]; + if (this.outTypes.and === "bool") { + return [`${outputs.and} = ${inputs.a} && ${inputs.b};`]; } - throw new Error("Invalid type"); + return [`${outputs.and} = ${inputs.a} & ${inputs.b};`]; }; } } -function extendVecOutputType(type) { - if (type === "float") return "vec2"; - if (type === "vec2") return "vec3"; - if (type === "vec3") return "vec4"; - throw new Error("Invalid type"); +class Or extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "or" }); + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.or === "bool") { + return [`${outputs.or} = ${inputs.a} || ${inputs.b};`]; + } + return [`${outputs.or} = ${inputs.a} | ${inputs.b};`]; + }; + } } -class ExtendVec extends BinaryOp { +class Xor extends BinaryOp { constructor({ a, b }) { - const type = valType(a); - const outType = extendVecOutputType(type); - super({ a, b, outKey: "extend", outTypeFunc: () => outType }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.extend} = ${outType}(${inputs.a}, ${inputs.b});` - ]; + super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "xor" }); + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.xor === "bool") { + return [`${outputs.xor} = ${inputs.a} ^^ ${inputs.b};`]; + } + return [`${outputs.xor} = ${inputs.a} ^ ${inputs.b};`]; + }; } } -class FaceForward extends TrinaryOp { - constructor({ a, b, c }) { +class Not extends UnaryOp { + constructor({ a }) { + super({ a, outTypeFunc: (aType) => aType, outKey: "not" }); + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.not === "bool") { + return [`${outputs.not} = !${inputs.a};`]; + } + return [`${outputs.not} = not(${inputs.a});`]; + }; + } +} +class LessThan extends BinaryOp { + constructor({ a, b }) { super({ a, b, - c, - outKey: "forward", - outTypeFunc: (aType, bType, cType) => aType + outTypeFunc: (aType, bType) => compareOutputType(aType, "lessThan"), + outKey: "lessThan" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.forward} = faceforward(${inputs.a}, ${inputs.b}, ${inputs.c});` - ]; + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.lessThan === "bool") { + return [`${outputs.lessThan} = ${inputs.a} < ${inputs.b};`]; + } + return [`${outputs.lessThan} = lessThan(${inputs.a}, ${inputs.b});`]; + }; } } -class ReflectVec extends BinaryOp { - constructor({ - incident, - normal - }) { +class LessThanEqual extends BinaryOp { + constructor({ a, b }) { super({ - a: incident, - b: normal, - outKey: "reflection", - outTypeFunc: (aType, bType) => aType + a, + b, + outTypeFunc: (aType, bType) => compareOutputType(aType, "lessThanEqual"), + outKey: "lessThanEqual" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.reflection} = reflect(${inputs.a}, ${inputs.b});` - ]; + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.lessThanEqual === "bool") { + return [`${outputs.lessThanEqual} = ${inputs.a} <= ${inputs.b};`]; + } + return [ + `${outputs.lessThanEqual} = lessThanEqual(${inputs.a}, ${inputs.b});` + ]; + }; } } -class RefractVec extends TrinaryOp { - constructor({ - incident, - normal, - eta - }) { +class GreaterThan extends BinaryOp { + constructor({ a, b }) { super({ - a: incident, - b: normal, - c: eta, - outKey: "refraction", - outTypeFunc: (aType, bType, cType) => aType + a, + b, + outTypeFunc: (aType, bType) => compareOutputType(aType, "greaterThan"), + outKey: "greaterThan" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.refraction} = refract(${inputs.a}, ${inputs.b}, ${inputs.c});` - ]; + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.greaterThan === "bool") { + return [`${outputs.greaterThan} = ${inputs.a} > ${inputs.b};`]; + } + return [ + `${outputs.greaterThan} = greaterThan(${inputs.a}, ${inputs.b});` + ]; + }; } } -class CompMult extends BinaryOp { +class GreaterThanEqual extends BinaryOp { constructor({ a, b }) { - super({ a, b, outKey: "product", outTypeFunc: (aType, bType) => aType }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.product} = matrixCompMult(${a}, ${b});` - ]; + super({ + a, + b, + outTypeFunc: (aType, bType) => compareOutputType(aType, "greaterThanEqual"), + outKey: "greaterThanEqual" + }); + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.greaterThanEqual === "bool") { + return [`${outputs.greaterThanEqual} = ${inputs.a} >= ${inputs.b};`]; + } + return [ + `${outputs.greaterThanEqual} = greaterThanEqual(${inputs.a}, ${inputs.b});` + ]; + }; } } -function outerOutputType(aType, bType) { - if (aType === "vec2") { - if (bType === "vec2") return "mat2"; - if (bType === "vec3") return "mat3x2"; - if (bType === "vec4") return "mat4x2"; - } - if (aType === "vec3") { - if (bType === "vec2") return "mat2x3"; - if (bType === "vec3") return "mat3"; - if (bType === "vec4") return "mat4x3"; - } - if (aType === "vec4") { - if (bType === "vec2") return "mat2x4"; - if (bType === "vec3") return "mat3x4"; - if (bType === "vec4") return "mat4"; +class Equal extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outTypeFunc: equalOutputType, outKey: "equal" }); + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.equal === "bool") { + return [`${outputs.equal} = ${inputs.a} == ${inputs.b};`]; + } + return [`${outputs.equal} = equal(${inputs.a}, ${inputs.b});`]; + }; } - throw new Error(`Invalid outer type: ${aType}, ${bType}`); } -class Outer extends BinaryOp { +class NotEqual extends BinaryOp { constructor({ a, b }) { - super({ a, b, outKey: "outer", outTypeFunc: outerOutputType }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.outer} = outerProduct(${inputs.a}, ${inputs.b});` - ]; + super({ a, b, outTypeFunc: notEqualOutputType, outKey: "notEqual" }); + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.notEqual === "bool") { + return [`${outputs.notEqual} = ${inputs.a} != ${inputs.b};`]; + } + return [`${outputs.notEqual} = notEqual(${inputs.a}, ${inputs.b});`]; + }; } } -function transposeOutputType(type) { - if (type === "mat2") return "mat2"; - if (type === "mat3") return "mat3"; - if (type === "mat4") return "mat4"; - if (type === "mat2x2") return "mat2x2"; - if (type === "mat2x3") return "mat3x2"; - if (type === "mat2x4") return "mat4x2"; - if (type === "mat3x2") return "mat2x3"; - if (type === "mat3x3") return "mat3x3"; - if (type === "mat3x4") return "mat4x3"; - if (type === "mat4x2") return "mat2x4"; - if (type === "mat4x3") return "mat3x4"; - if (type === "mat4x4") return "mat4x4"; - throw new Error(`Invalid transpose type: ${type}`); -} -class Transpose extends UnaryOp { +class Any extends UnaryOp { constructor({ a }) { - super({ a, outKey: "transpose", outTypeFunc: transposeOutputType }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.transpose} = transpose(${inputs.a});` - ]; + super({ a, outTypeFunc: (aType) => "bool", outKey: "any" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.any} = any(${inputs.a});`]; + }; } } -class Determinant extends UnaryOp { +class All extends UnaryOp { constructor({ a }) { - super({ a, outKey: "det", outTypeFunc: (aType) => "float" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.det} = determinant(${inputs.a});` - ]; + super({ a, outTypeFunc: (aType) => "bool", outKey: "all" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.all} = all(${inputs.a});`]; + }; } } -class Inverse extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "inverse", outTypeFunc: (aType) => aType }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.inverse} = inverse(${a});` - ]; +class Select extends TrinaryOp { + constructor({ + cond, + t, + f + }) { + super({ + a: cond, + b: t, + c: f, + outKey: "select", + outTypeFunc: (aType, bType, cType) => bType + }); + this.statements = ({ inputs, outputs }) => { + const { a: cond2, b: t2, c: f2 } = inputs; + return [`${outputs.select} = (${cond2}) ? (${t2}) : (${f2});`]; + }; } } -function splitOutTypes(type) { - const result = (value) => value; - switch (type) { - case "vec2": - return result({ x: "float", y: "float", r: "float", g: "float" }); - case "vec3": - return result({ - x: "float", - y: "float", - z: "float", - r: "float", - g: "float", - b: "float" - }); - case "vec4": - return result({ - x: "float", - y: "float", - z: "float", - w: "float", - r: "float", - g: "float", - b: "float", - a: "float" - }); - case "ivec2": - return result({ x: "int", y: "int", r: "int", g: "int" }); - case "ivec3": - return result({ - x: "int", - y: "int", - z: "int", - r: "int", - g: "int", - b: "int" - }); - case "ivec4": - return result({ - x: "int", - y: "int", - z: "int", - w: "int", - r: "int", - g: "int", - b: "int", - a: "int" - }); - case "uvec2": - return result({ x: "uint", y: "uint", r: "uint", g: "uint" }); - case "uvec3": - return result({ - x: "uint", - y: "uint", - z: "uint", - r: "uint", - g: "uint", - b: "uint" - }); - case "uvec4": - return result({ - x: "uint", - y: "uint", - z: "uint", - w: "uint", - r: "uint", - g: "uint", - b: "uint", - a: "uint" - }); - default: - throw new Error(`Invalid vector type: ${type}`); +function compareOutputType(type, operator) { + if (isScalarType(type)) { + return "bool"; } + if (type === "ivec2" || type === "uvec2" || type === "vec2") { + return "bvec2"; + } + if (type === "ivec3" || type === "uvec3" || type === "vec3") { + return "bvec3"; + } + if (type === "ivec4" || type === "uvec4" || type === "vec4") { + return "bvec4"; + } + throw new Error(`Invalid ${operator} type: ${type}`); } -class Split extends Dyno { - constructor({ vector }) { - const type = valType(vector); - const inTypes = { vector: type }; - const outTypes = splitOutTypes(inTypes.vector); - super({ inTypes, outTypes, inputs: { vector } }); - this.statements = ({ inputs, outputs }) => { - const { x, y, z, w, r, g, b, a } = outputs; - const { vector: vector2 } = inputs; - return [ - x ? `${x} = ${vector2}.x;` : null, - y ? `${y} = ${vector2}.y;` : null, - z ? `${z} = ${vector2}.z;` : null, - w ? `${w} = ${vector2}.w;` : null, - r ? `${r} = ${vector2}.r;` : null, - g ? `${g} = ${vector2}.g;` : null, - b ? `${b} = ${vector2}.b;` : null, - a ? `${a} = ${vector2}.a;` : null - ].filter(Boolean); - }; +function equalOutputType(type, operator = "equal") { + if (isScalarType(type)) { + return "bool"; + } + if (isBoolType(type)) { + return type; + } + if (type === "ivec2" || type === "uvec2" || type === "vec2") { + return "bvec2"; + } + if (type === "ivec3" || type === "uvec3" || type === "vec3") { + return "bvec3"; + } + if (type === "ivec4" || type === "uvec4" || type === "vec4") { + return "bvec4"; } + throw new Error(`Invalid ${operator} type: ${type}`); } -class Combine extends Dyno { - constructor({ - vector, - vectorType, - x, - y, - z, - w, - r, - g, - b, - a - }) { - if (!vector && !vectorType) { - throw new Error("Either vector or vectorType must be provided"); - } - const vType = vectorType ?? valType(vector); - const elType = vectorElementType(vType); - const dim = vectorDim(vType); - const inTypes = { - vector: vType, - x: elType, - y: elType, - r: elType, - g: elType - }; - const inputs = { vector, x, y, r, g }; - if (dim >= 3) { - Object.assign(inTypes, { z: elType, b: elType }); - Object.assign(inputs, { z, b }); - } - if (dim >= 4) { - Object.assign(inTypes, { w: elType, a: elType }); - Object.assign(inputs, { w, a }); - } - super({ inTypes, outTypes: { vector: vType }, inputs }); - this.statements = ({ inputs: inputs2, outputs }) => { - const { vector: vector2 } = outputs; - const { - vector: input, - x: x2, - y: y2, - z: z2, - w: w2, - r: r2, - g: g2, - b: b22, - a: a2 - } = inputs2; - const statements = [ - `${vector2}.x = ${x2 ?? r2 ?? (input ? `${input}.x` : literalZero(elType))};`, - `${vector2}.y = ${y2 ?? g2 ?? (input ? `${input}.y` : literalZero(elType))};` - ]; - if (dim >= 3) - statements.push( - `${vector2}.z = ${z2 ?? b22 ?? (input ? `${input}.z` : literalZero(elType))};` - ); - if (dim >= 4) - statements.push( - `${vector2}.w = ${w2 ?? a2 ?? (input ? `${input}.w` : literalZero(elType))};` - ); - return statements; - }; +function notEqualOutputType(type) { + return equalOutputType(type, "notEqual"); +} +function compXorOutputType(type) { + if (isBoolType(type)) { + return "bool"; } - dynoOut() { - return new DynoOutput( - this, - "vector" - ); + if (isIntType(type)) { + return "int"; + } + if (isUintType(type)) { + return "uint"; } + throw new Error(`Invalid compXor type: ${type}`); } -function swizzleOutputType(type, swizzle2) { - let result = null; - if (isFloatType(type)) { - result = swizzle2.length === 1 ? "float" : swizzle2.length === 2 ? "vec2" : swizzle2.length === 3 ? "vec3" : swizzle2.length === 4 ? "vec4" : null; - } else if (isIntType(type)) { - result = swizzle2.length === 1 ? "int" : swizzle2.length === 2 ? "ivec2" : swizzle2.length === 3 ? "ivec3" : swizzle2.length === 4 ? "ivec4" : null; - } else if (isUintType(type)) { - result = swizzle2.length === 1 ? "uint" : swizzle2.length === 2 ? "uvec2" : swizzle2.length === 3 ? "uvec3" : swizzle2.length === 4 ? "uvec4" : null; +class CompXor extends UnaryOp { + constructor({ a }) { + const outType = compXorOutputType(valType(a)); + super({ a, outTypeFunc: (aType) => outType, outKey: "compXor" }); + this.statements = ({ inputs, outputs }) => { + if (isScalarType(this.outTypes.compXor)) { + return [`${outputs.compXor} = ${inputs.a};`]; + } + const components = isVector2Type(outType) ? ["x", "y"] : isVector3Type(outType) ? ["x", "y", "z"] : ["x", "y", "z", "w"]; + const operands = components.map((c) => `${inputs.a}.${c}`); + const operator = isBoolType(outType) ? "^^" : "^"; + return [`${outputs.compXor} = ${operands.join(` ${operator} `)};`]; + }; } - if (result == null) { - throw new Error(`Invalid swizzle: ${swizzle2}`); +} +class Shr extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "shr" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.shr} = ${inputs.a} >> ${inputs.b};`]; + }; } - return result; } -class Swizzle extends UnaryOp { - constructor({ vector, select: select2 }) { - super({ - a: vector, - outKey: "swizzle", - outTypeFunc: (aType) => swizzleOutputType(aType, select2) - }); +class Shl extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "shl" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.shl} = ${inputs.a} << ${inputs.b};`]; + }; + } +} +const bool = (value) => new Bool({ value }); +const int = (value) => new Int({ value }); +const uint = (value) => new Uint({ value }); +const float = (value) => new Float({ value }); +const bvec2 = (value) => new BVec2({ value }); +const bvec3 = (value) => new BVec3({ value }); +const bvec4 = (value) => new BVec4({ value }); +const ivec2 = (value) => new IVec2({ value }); +const ivec3 = (value) => new IVec3({ value }); +const ivec4 = (value) => new IVec4({ value }); +const uvec2 = (value) => new UVec2({ value }); +const uvec3 = (value) => new UVec3({ value }); +const uvec4 = (value) => new UVec4({ value }); +const vec2 = (value) => new Vec2({ value }); +const vec3 = (value) => new Vec3({ value }); +const vec4 = (value) => new Vec4({ value }); +const mat2 = (value) => new Mat2({ value }); +const mat3 = (value) => new Mat3({ value }); +const mat4 = (value) => new Mat4({ value }); +const floatBitsToInt = (value) => new FloatBitsToInt({ value }); +const floatBitsToUint = (value) => new FloatBitsToUint({ value }); +const intBitsToFloat = (value) => new IntBitsToFloat({ value }); +const uintBitsToFloat = (value) => new UintBitsToFloat({ value }); +const packSnorm2x16 = (value) => new PackSnorm2x16({ value }); +const unpackSnorm2x16 = (value) => new UnpackSnorm2x16({ value }); +const packUnorm2x16 = (value) => new PackUnorm2x16({ value }); +const unpackUnorm2x16 = (value) => new UnpackUnorm2x16({ value }); +const packHalf2x16 = (value) => new PackHalf2x16({ value }); +const unpackHalf2x16 = (value) => new UnpackHalf2x16({ value }); +const uintToRgba8 = (value) => new UintToRgba8({ value }); +class SimpleCast extends UnaryOp { + constructor({ + value, + outType, + outKey + }) { + super({ a: value, outTypeFunc: () => outType, outKey }); this.statements = ({ inputs, outputs }) => [ - `${outputs.swizzle} = ${inputs.a}.${select2};` + `${outputs[outKey]} = ${typeLiteral(outType)}(${inputs.a});` ]; } } -const remapIndex = (index, from, to) => { - return new DynoRemapIndex({ index, from, to }); -}; -const pcgMix = (value) => { - return new PcgMix({ value }); -}; -const pcgNext = (state) => { - return new PcgNext({ state }); -}; -const pcgHash = (state) => { - return new PcgHash({ state }); -}; -const hash = (value) => { - return new Hash({ value }); -}; -const hash2 = (value) => { - return new Hash2({ value }); -}; -const hash3 = (value) => { - return new Hash3({ value }); -}; -const hash4 = (value) => { - return new Hash4({ value }); -}; -const hashFloat = (value) => { - return new HashFloat({ value }); -}; -const hashVec2 = (value) => { - return new HashVec2({ value }); -}; -const hashVec3 = (value) => { - return new HashVec3({ value }); -}; -const hashVec4 = (value) => { - return new HashVec4({ value }); -}; -const normalizedDepth = (z, zNear, zFar) => { - return new NormalizedDepth({ z, zNear, zFar }).outputs.depth; -}; -const debugColorHue = (index) => { - return new DebugColorHue({ index }); -}; -class DynoRemapIndex extends Dyno { +class Bool extends SimpleCast { constructor({ - from, - to, - index + value }) { - super({ - inTypes: { from: "int", to: "int", index: "int" }, - outTypes: { index: "int" }, - inputs: { from, to, index }, - statements: ({ inputs, outputs }) => { - return [ - `${outputs.index} = ${inputs.index} - ${inputs.from} + ${inputs.to};` - ]; - } - }); - } - dynoOut() { - return new DynoOutput(this, "index"); + super({ value, outType: "bool", outKey: "bool" }); } } -class PcgNext extends Dyno { - constructor({ state }) { - const type = valType(state); - super({ - inTypes: { state: type }, - outTypes: { state: "uint" }, - inputs: { state }, - globals: () => [ - unindent(` - uint pcg_next(uint state) { - return state * 747796405u + 2891336453u; - } - `) - ], - statements: ({ inputs, outputs }) => { - const toUint = type === "uint" ? `${inputs.state}` : type === "int" ? `uint(${inputs.state})` : `floatBitsToUint(${inputs.state})`; - return [`${outputs.state} = pcg_next(${toUint});`]; - } - }); - } - dynoOut() { - return new DynoOutput(this, "state"); +class Int extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "int", outKey: "int" }); } } -class PcgHash extends Dyno { - constructor({ state }) { - super({ - inTypes: { state: "uint" }, - outTypes: { hash: "uint" }, - inputs: { state }, - globals: () => [ - unindent(` - uint pcg_hash(uint state) { - uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u; - return (hash >> 22u) ^ hash; - } - `) - ], - statements: ({ inputs, outputs }) => [ - `${outputs.hash} = pcg_hash(${inputs.state});` - ] - }); +class Uint extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "uint", outKey: "uint" }); } - dynoOut() { - return new DynoOutput(this, "hash"); +} +class Float extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "float", outKey: "float" }); } } -class PcgMix extends Dyno { - constructor({ value }) { - const type = valType(value); - const tempType = sameSizeUvec(type); - super({ - inTypes: { value: type }, - outTypes: { state: "uint" }, - inputs: { value }, - globals: () => [ - unindent(` - uint pcg_mix(uint value) { - return value; - } - uint pcg_mix(uvec2 value) { - return value.x + 0x9e3779b9u * value.y; - } - uint pcg_mix(uvec3 value) { - return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z; - } - uint pcg_mix(uvec4 value) { - return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z + 0xc2b2ae35u * value.w; - } - `) - ], - statements: ({ inputs, outputs }) => { - const toUvec = isUintType(type) ? `${inputs.value}` : isIntType(type) ? `${tempType}(${inputs.value})` : `floatBitsToUint(${inputs.value})`; - return [ - `${tempType} bits = ${toUvec};`, - `${outputs.state} = pcg_mix(bits);` - ]; - } - }); +class BVec2 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "bvec2", outKey: "bvec2" }); } - dynoOut() { - return new DynoOutput(this, "state"); +} +class BVec3 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "bvec3", outKey: "bvec3" }); } } -class Hash extends DynoBlock { - constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "uint" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - let state = new PcgMix({ value: value2 }).outputs.state; - state = new PcgNext({ state }).outputs.state; - return new PcgHash({ state }).outputs; - } - }); +class BVec4 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "bvec4", outKey: "bvec4" }); } - dynoOut() { - return new DynoOutput(this, "hash"); +} +class IVec2 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "ivec2", outKey: "ivec2" }); } } -class Hash2 extends DynoBlock { - constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "uvec2" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - let state = new PcgMix({ value: value2 }).outputs.state; - state = new PcgNext({ state }).outputs.state; - const x = new PcgHash({ state }).outputs.hash; - state = new PcgNext({ state }).outputs.state; - const y = new PcgHash({ state }).outputs.hash; - return { hash: combine({ vectorType: "uvec2", x, y }) }; - } - }); +class IVec3 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "ivec3", outKey: "ivec3" }); } - dynoOut() { - return new DynoOutput(this, "hash"); +} +class IVec4 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "ivec4", outKey: "ivec4" }); } } -class Hash3 extends DynoBlock { - constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "uvec3" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - let state = new PcgMix({ value: value2 }).outputs.state; - state = new PcgNext({ state }).outputs.state; - const x = new PcgHash({ state }).outputs.hash; - state = new PcgNext({ state }).outputs.state; - const y = new PcgHash({ state }).outputs.hash; - state = new PcgNext({ state }).outputs.state; - const z = new PcgHash({ state }).outputs.hash; - return { hash: combine({ vectorType: "uvec3", x, y, z }) }; - } - }); +class UVec2 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "uvec2", outKey: "uvec2" }); } - dynoOut() { - return new DynoOutput(this, "hash"); +} +class UVec3 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "uvec3", outKey: "uvec3" }); } } -class Hash4 extends DynoBlock { - constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "uvec4" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - let state = new PcgMix({ value: value2 }).outputs.state; - state = new PcgNext({ state }).outputs.state; - const x = new PcgHash({ state }).outputs.hash; - state = new PcgNext({ state }).outputs.state; - const y = new PcgHash({ state }).outputs.hash; - state = new PcgNext({ state }).outputs.state; - const z = new PcgHash({ state }).outputs.hash; - state = new PcgNext({ state }).outputs.state; - const w = new PcgHash({ state }).outputs.hash; - return { hash: combine({ vectorType: "uvec4", x, y, z, w }) }; - } - }); +class UVec4 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "uvec4", outKey: "uvec4" }); } - dynoOut() { - return new DynoOutput(this, "hash"); +} +class Vec2 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "vec2", outKey: "vec2" }); } } -class HashFloat extends DynoBlock { - constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "float" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - const word = hash(value2); - return { hash: mul(float(word), dynoConst("float", 1 / 2 ** 32)) }; - } - }); +class Vec3 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "vec3", outKey: "vec3" }); } - dynoOut() { - return new DynoOutput(this, "hash"); +} +class Vec4 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "vec4", outKey: "vec4" }); } } -class HashVec2 extends DynoBlock { - constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "vec2" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - const words = hash2(value2); - return { hash: mul(vec2(words), dynoConst("float", 1 / 2 ** 32)) }; - } - }); +class Mat2 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "mat2", outKey: "mat2" }); } - dynoOut() { - return new DynoOutput(this, "hash"); +} +class Mat3 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "mat3", outKey: "mat3" }); } } -class HashVec3 extends DynoBlock { - constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "vec3" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - const words = hash3(value2); - return { hash: mul(vec3(words), dynoConst("float", 1 / 2 ** 32)) }; - } - }); - } - dynoOut() { - return new DynoOutput(this, "hash"); +class Mat4 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "mat4", outKey: "mat4" }); } } -class HashVec4 extends DynoBlock { +class FloatBitsToInt extends UnaryOp { constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "vec4" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - const words = hash4(value2); - return { hash: mul(vec4(words), dynoConst("float", 1 / 2 ** 32)) }; - } - }); - } - dynoOut() { - return new DynoOutput(this, "hash"); + super({ a: value, outKey: "int", outTypeFunc: () => "int" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.int} = floatBitsToInt(${inputs.a});`]; + }; } } -class NormalizedDepth extends Dyno { - constructor({ - z, - zNear, - zFar - }) { - super({ - inTypes: { z: "float", zNear: "float", zFar: "float" }, - outTypes: { depth: "float" }, - inputs: { z, zNear, zFar }, - statements: ({ inputs, outputs }) => [ - `float clamped = clamp(${inputs.z}, ${inputs.zNear}, ${inputs.zFar});`, - `${outputs.depth} = (log2(clamped + 1.0) - log2(${inputs.zNear} + 1.0)) / (log2(${inputs.zFar} + 1.0) - log2(${inputs.zNear} + 1.0));` - ] - }); +class FloatBitsToUint extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.uint} = floatBitsToUint(${inputs.a});`]; + }; } - dynoOut() { - return new DynoOutput(this, "depth"); +} +class IntBitsToFloat extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "float", outTypeFunc: () => "float" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.float} = intBitsToFloat(${inputs.a});`]; + }; } } -class DebugColorHue extends Dyno { - constructor({ index }) { - super({ - inTypes: { index: "int" }, - outTypes: { color: "vec3" }, - inputs: { index }, - statements: ({ inputs, outputs }) => [ - `${outputs.color} = debugColorHue(uint(${inputs.index}));` - ] - }); +class UintBitsToFloat extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "float", outTypeFunc: () => "float" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.float} = uintBitsToFloat(${inputs.a});`]; + }; } - dynoOut() { - return new DynoOutput(this, "color"); +} +class PackSnorm2x16 extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.uint} = packSnorm2x16(${inputs.a});`]; + }; } } -const transformPos = (position, { - scale, - scales, - rotate, - translate -}) => { - return new TransformPosition({ position, scale, scales, rotate, translate }).outputs.position; -}; -const transformDir = (dir, { - scale, - scales, - rotate -}) => { - return new TransformDir({ dir, scale, scales, rotate }).outputs.dir; -}; -const transformQuat = (quaternion, { rotate }) => { - return new TransformQuaternion({ quaternion, rotate }).outputs.quaternion; -}; -class TransformPosition extends Dyno { - constructor({ - position, - scale, - scales, - rotate, - translate - }) { - super({ - inTypes: { - position: "vec3", - scale: "float", - scales: "vec3", - rotate: "vec4", - translate: "vec3" - }, - outTypes: { position: "vec3" }, - inputs: { position, scale, scales, rotate, translate }, - statements: ({ inputs, outputs }) => { - const { position: position2 } = outputs; - if (!position2) { - return []; - } - const { scale: scale2, scales: scales2, rotate: rotate2, translate: translate2 } = inputs; - return [ - `${position2} = ${inputs.position ?? "vec3(0.0, 0.0, 0.0)"};`, - !scale2 ? null : `${position2} *= ${scale2};`, - !scales2 ? null : `${position2} *= ${scales2};`, - !rotate2 ? null : `${position2} = quatVec(${rotate2}, ${position2});`, - !translate2 ? null : `${position2} += ${translate2};` - ].filter(Boolean); - } - }); +class UnpackSnorm2x16 extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "vec2", outTypeFunc: () => "vec2" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.vec2} = unpackSnorm2x16(${inputs.a});`]; + }; } } -class TransformDir extends Dyno { - constructor({ - dir, - scale, - scales, - rotate - }) { - super({ - inTypes: { dir: "vec3", scale: "float", scales: "vec3", rotate: "vec4" }, - outTypes: { dir: "vec3" }, - inputs: { dir, scale, scales, rotate }, - statements: ({ inputs, outputs }) => { - const { dir: dir2 } = outputs; - if (!dir2) { - return []; - } - const { scale: scale2, scales: scales2, rotate: rotate2 } = inputs; - return [ - `${dir2} = ${inputs.dir ?? "vec3(0.0, 0.0, 0.0)"};`, - !scale2 ? null : `${dir2} *= ${scale2};`, - !scales2 ? null : `${dir2} *= ${scales2};`, - !rotate2 ? null : `${dir2} = quatVec(${rotate2}, ${dir2});` - ].filter(Boolean); - } - }); +class PackUnorm2x16 extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.uint} = packUnorm2x16(${inputs.a});`]; + }; } } -class TransformQuaternion extends Dyno { - constructor({ - quaternion, - rotate - }) { - super({ - inTypes: { quaternion: "vec4", rotate: "vec4" }, - outTypes: { quaternion: "vec4" }, - inputs: { quaternion, rotate }, - statements: ({ inputs, outputs }) => { - const { quaternion: quaternion2 } = outputs; - if (!quaternion2) { - return []; - } - return [ - `${quaternion2} = ${inputs.quaternion ?? "vec4(0.0, 0.0, 0.0, 1.0)"};`, - !rotate ? null : `${quaternion2} = quatQuat(${inputs.rotate}, ${quaternion2});` - ].filter(Boolean); - } - }); +class UnpackUnorm2x16 extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "vec2", outTypeFunc: () => "vec2" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.vec2} = unpackUnorm2x16(${inputs.a});`]; + }; } } -const dynoIf = () => { - throw new Error("Not implemented"); -}; -const dynoSwitch = () => { - throw new Error("Not implemented"); -}; -const dynoFor = () => { - throw new Error("Not implemented"); -}; -const comment = () => { - throw new Error("Not implemented"); -}; -const arrayIndex = () => { - throw new Error("Not implemented"); -}; -const arrayLength = () => { - throw new Error("Not implemented"); -}; -const textureSize = (texture2, lod) => new TextureSize({ texture: texture2, lod }); -const texture = (texture2, coord, bias) => new Texture({ texture: texture2, coord, bias }); -const texelFetch = (texture2, coord, lod) => new TexelFetch({ texture: texture2, coord, lod }); -class TextureSize extends Dyno { - constructor({ texture: texture2, lod }) { - const textureType = valType(texture2); - super({ - inTypes: { texture: textureType, lod: "int" }, - outTypes: { size: textureSizeType(textureType) }, - inputs: { texture: texture2, lod }, - statements: ({ inputs, outputs }) => [ - `${outputs.size} = textureSize(${inputs.texture}, ${inputs.lod ?? "0"});` - ] - }); +class PackHalf2x16 extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.uint} = packHalf2x16(${inputs.a});`]; + }; } - dynoOut() { - return new DynoOutput(this, "size"); +} +class UnpackHalf2x16 extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "vec2", outTypeFunc: () => "vec2" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.vec2} = unpackHalf2x16(${inputs.a});`]; + }; } } -class Texture extends Dyno { - constructor({ - texture: texture2, - coord, - bias - }) { - const textureType = valType(texture2); - super({ - inTypes: { - texture: textureType, - coord: textureCoordType(textureType), - bias: "float" - }, - outTypes: { sample: textureReturnType(textureType) }, - inputs: { texture: texture2, coord, bias }, - statements: ({ inputs, outputs }) => [ - `${outputs.sample} = texture(${inputs.texture}, ${inputs.coord}${inputs.bias ? `, ${inputs.bias}` : ""});` - ] - }); - } - dynoOut() { - return new DynoOutput(this, "sample"); - } -} -class TexelFetch extends Dyno { - constructor({ - texture: texture2, - coord, - lod - }) { - const textureType = valType(texture2); - super({ - inTypes: { - texture: textureType, - coord: textureSizeType(textureType), - lod: "int" - }, - outTypes: { texel: textureReturnType(textureType) }, - inputs: { texture: texture2, coord, lod }, - statements: ({ inputs, outputs }) => [ - `${outputs.texel} = texelFetch(${inputs.texture}, ${inputs.coord}, ${inputs.lod ?? "0"});` - ] - }); - } - dynoOut() { - return new DynoOutput(this, "texel"); - } -} -function textureSizeType(textureType) { - switch (textureType) { - case "sampler2D": - case "usampler2D": - case "isampler2D": - case "samplerCube": - case "usamplerCube": - case "isamplerCube": - case "sampler2DShadow": - case "samplerCubeShadow": - return "ivec2"; - case "sampler3D": - case "usampler3D": - case "isampler3D": - case "sampler2DArray": - case "usampler2DArray": - case "isampler2DArray": - case "sampler2DArrayShadow": - return "ivec3"; - default: - throw new Error(`Invalid texture type: ${textureType}`); - } -} -function textureCoordType(textureType) { - switch (textureType) { - case "sampler2D": - case "usampler2D": - case "isampler2D": - return "vec2"; - case "sampler3D": - case "usampler3D": - case "isampler3D": - case "samplerCube": - case "usamplerCube": - case "isamplerCube": - case "sampler2DArray": - case "usampler2DArray": - case "isampler2DArray": - case "sampler2DShadow": - return "vec3"; - case "samplerCubeShadow": - case "sampler2DArrayShadow": - return "vec4"; - default: - throw new Error(`Invalid texture type: ${textureType}`); - } -} -function textureReturnType(textureType) { - switch (textureType) { - case "sampler2D": - case "sampler2DArray": - case "sampler3D": - case "samplerCube": - case "sampler2DShadow": - return "vec4"; - case "usampler2D": - case "usampler2DArray": - case "usampler3D": - case "usamplerCube": - return "uvec4"; - case "isampler2D": - case "isampler2DArray": - case "isampler3D": - case "isamplerCube": - return "ivec4"; - case "samplerCubeShadow": - case "sampler2DArrayShadow": - return "float"; - default: - throw new Error(`Invalid texture type: ${textureType}`); - } -} -const radians = (degrees2) => new Radians({ degrees: degrees2 }); -const degrees = (radians2) => new Degrees({ radians: radians2 }); -const sin = (radians2) => new Sin({ radians: radians2 }); -const cos = (radians2) => new Cos({ radians: radians2 }); -const tan = (radians2) => new Tan({ radians: radians2 }); -const asin = (sin2) => new Asin({ sin: sin2 }); -const acos = (cos2) => new Acos({ cos: cos2 }); -const atan = (tan2) => new Atan({ tan: tan2 }); -const atan2 = (y, x) => new Atan2({ y, x }); -const sinh = (x) => new Sinh({ x }); -const cosh = (x) => new Cosh({ x }); -const tanh = (x) => new Tanh({ x }); -const asinh = (x) => new Asinh({ x }); -const acosh = (x) => new Acosh({ x }); -const atanh = (x) => new Atanh({ x }); -class Radians extends UnaryOp { - constructor({ degrees: degrees2 }) { - super({ a: degrees2, outTypeFunc: (aType) => aType, outKey: "radians" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.radians} = radians(${inputs.a});` - ]; +class UintToRgba8 extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "rgba8", outTypeFunc: () => "vec4" }); + this.statements = ({ inputs, outputs }) => { + return [ + `uvec4 uRgba = uvec4(${inputs.a} & 0xffu, (${inputs.a} >> 8u) & 0xffu, (${inputs.a} >> 16u) & 0xffu, (${inputs.a} >> 24u) & 0xffu);`, + `${outputs.rgba8} = vec4(uRgba) / 255.0;` + ]; + }; } } -class Degrees extends UnaryOp { - constructor({ radians: radians2 }) { - super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "degrees" }); +const length = (a) => new Length({ a }); +const distance = (a, b) => new Distance({ a, b }); +const dot = (a, b) => new Dot({ a, b }); +const cross = (a, b) => new Cross({ a, b }); +const normalize = (a) => new Normalize({ a }); +const faceforward = (a, b, c) => new FaceForward({ a, b, c }); +const reflectVec = (incident, normal) => new ReflectVec({ incident, normal }); +const refractVec = (incident, normal, eta) => new RefractVec({ incident, normal, eta }); +const split = (vector) => new Split({ vector }); +const combine = ({ + vector, + vectorType, + x, + y, + z, + w, + r, + g, + b, + a +}) => new Combine({ vector, vectorType, x, y, z, w, r, g, b, a }); +const projectH = (a) => new ProjectH({ a }); +const extendVec = (a, b) => new ExtendVec({ a, b }); +const swizzle = (a, select2) => new Swizzle({ vector: a, select: select2 }); +const compMult = (a, b) => new CompMult({ a, b }); +const outer = (a, b) => new Outer({ a, b }); +const transpose = (a) => new Transpose({ a }); +const determinant = (a) => new Determinant({ a }); +const inverse = (a) => new Inverse({ a }); +class Length extends UnaryOp { + constructor({ a }) { + super({ a, outTypeFunc: (aType) => "float", outKey: "length" }); this.statements = ({ inputs, outputs }) => [ - `${outputs.degrees} = degrees(${inputs.a});` + `${outputs.length} = length(${inputs.a});` ]; } } -class Sin extends UnaryOp { - constructor({ radians: radians2 }) { - super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "sin" }); +class Distance extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "distance", outTypeFunc: (aType, bType) => "float" }); this.statements = ({ inputs, outputs }) => [ - `${outputs.sin} = sin(${inputs.a});` + `${outputs.distance} = distance(${inputs.a}, ${inputs.b});` ]; } } -class Cos extends UnaryOp { - constructor({ radians: radians2 }) { - super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "cos" }); +class Dot extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "dot", outTypeFunc: (aType, bType) => "float" }); this.statements = ({ inputs, outputs }) => [ - `${outputs.cos} = cos(${inputs.a});` + `${outputs.dot} = dot(${inputs.a}, ${inputs.b});` ]; } } -class Tan extends UnaryOp { - constructor({ radians: radians2 }) { - super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "tan" }); +class Cross extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "cross", outTypeFunc: (aType, bType) => "vec3" }); this.statements = ({ inputs, outputs }) => [ - `${outputs.tan} = tan(${inputs.a});` + `${outputs.cross} = cross(${inputs.a}, ${inputs.b});` ]; } } -class Asin extends UnaryOp { - constructor({ sin: sin2 }) { - super({ a: sin2, outTypeFunc: (aType) => aType, outKey: "asin" }); +class Normalize extends UnaryOp { + constructor({ a }) { + super({ a, outTypeFunc: (aType) => aType, outKey: "normalize" }); this.statements = ({ inputs, outputs }) => [ - `${outputs.asin} = asin(${inputs.a});` + `${outputs.normalize} = normalize(${inputs.a});` ]; } } -class Acos extends UnaryOp { - constructor({ cos: cos2 }) { - super({ a: cos2, outTypeFunc: (aType) => aType, outKey: "acos" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.acos} = acos(${inputs.a});` - ]; +function projectHOutputType(type) { + if (type === "vec3") { + return "vec2"; } -} -class Atan extends UnaryOp { - constructor({ tan: tan2 }) { - super({ a: tan2, outTypeFunc: (aType) => aType, outKey: "atan" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.atan} = atan(${inputs.a});` - ]; + if (type === "vec4") { + return "vec3"; } + throw new Error("Invalid type"); } -class Atan2 extends BinaryOp { - constructor({ y, x }) { +class ProjectH extends UnaryOp { + constructor({ a }) { super({ - a: y, - b: x, - outTypeFunc: (aType, bType) => aType, - outKey: "atan2" + a, + outTypeFunc: (aType) => projectHOutputType(aType), + outKey: "projected" }); + this.statements = ({ inputs, outputs }) => { + if (this.inTypes.a === "vec3") { + return [`${outputs.projected} = ${inputs.a}.xy / ${inputs.a}.z;`]; + } + if (this.inTypes.a === "vec4") { + return [`${outputs.projected} = ${inputs.a}.xyz / ${inputs.a}.w;`]; + } + throw new Error("Invalid type"); + }; + } +} +function extendVecOutputType(type) { + if (type === "float") return "vec2"; + if (type === "vec2") return "vec3"; + if (type === "vec3") return "vec4"; + throw new Error("Invalid type"); +} +class ExtendVec extends BinaryOp { + constructor({ a, b }) { + const type = valType(a); + const outType = extendVecOutputType(type); + super({ a, b, outKey: "extend", outTypeFunc: () => outType }); this.statements = ({ inputs, outputs }) => [ - `${outputs.atan2} = atan2(${inputs.a}, ${inputs.b});` - ]; - } -} -class Sinh extends UnaryOp { - constructor({ x }) { - super({ a: x, outTypeFunc: (aType) => aType, outKey: "sinh" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.sinh} = sinh(${inputs.a});` + `${outputs.extend} = ${outType}(${inputs.a}, ${inputs.b});` ]; } } -class Cosh extends UnaryOp { - constructor({ x }) { - super({ a: x, outTypeFunc: (aType) => aType, outKey: "cosh" }); +class FaceForward extends TrinaryOp { + constructor({ a, b, c }) { + super({ + a, + b, + c, + outKey: "forward", + outTypeFunc: (aType, bType, cType) => aType + }); this.statements = ({ inputs, outputs }) => [ - `${outputs.cosh} = cosh(${inputs.a});` + `${outputs.forward} = faceforward(${inputs.a}, ${inputs.b}, ${inputs.c});` ]; } } -class Tanh extends UnaryOp { - constructor({ x }) { - super({ a: x, outTypeFunc: (aType) => aType, outKey: "tanh" }); +class ReflectVec extends BinaryOp { + constructor({ + incident, + normal + }) { + super({ + a: incident, + b: normal, + outKey: "reflection", + outTypeFunc: (aType, bType) => aType + }); this.statements = ({ inputs, outputs }) => [ - `${outputs.tanh} = tanh(${inputs.a});` + `${outputs.reflection} = reflect(${inputs.a}, ${inputs.b});` ]; } } -class Asinh extends UnaryOp { - constructor({ x }) { - super({ a: x, outTypeFunc: (aType) => aType, outKey: "asinh" }); +class RefractVec extends TrinaryOp { + constructor({ + incident, + normal, + eta + }) { + super({ + a: incident, + b: normal, + c: eta, + outKey: "refraction", + outTypeFunc: (aType, bType, cType) => aType + }); this.statements = ({ inputs, outputs }) => [ - `${outputs.asinh} = asinh(${inputs.a});` + `${outputs.refraction} = refract(${inputs.a}, ${inputs.b}, ${inputs.c});` ]; } } -class Acosh extends UnaryOp { - constructor({ x }) { - super({ a: x, outTypeFunc: (aType) => aType, outKey: "acosh" }); +class CompMult extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "product", outTypeFunc: (aType, bType) => aType }); this.statements = ({ inputs, outputs }) => [ - `${outputs.acosh} = acosh(${inputs.a});` + `${outputs.product} = matrixCompMult(${a}, ${b});` ]; } } -class Atanh extends UnaryOp { - constructor({ x }) { - super({ a: x, outTypeFunc: (aType) => aType, outKey: "atanh" }); +function outerOutputType(aType, bType) { + if (aType === "vec2") { + if (bType === "vec2") return "mat2"; + if (bType === "vec3") return "mat3x2"; + if (bType === "vec4") return "mat4x2"; + } + if (aType === "vec3") { + if (bType === "vec2") return "mat2x3"; + if (bType === "vec3") return "mat3"; + if (bType === "vec4") return "mat4x3"; + } + if (aType === "vec4") { + if (bType === "vec2") return "mat2x4"; + if (bType === "vec3") return "mat3x4"; + if (bType === "vec4") return "mat4"; + } + throw new Error(`Invalid outer type: ${aType}, ${bType}`); +} +class Outer extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "outer", outTypeFunc: outerOutputType }); this.statements = ({ inputs, outputs }) => [ - `${outputs.atanh} = atanh(${inputs.a});` + `${outputs.outer} = outerProduct(${inputs.a}, ${inputs.b});` ]; } } -const dyno = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ - __proto__: null, - Abs, - Acos, - Acosh, - Add, - All, - And, - Any, - Asin, - Asinh, - Atan, - Atan2, - Atanh, - BVec2, - BVec3, - BVec4, - BinaryOp, - Bool, - Ceil, - Clamp, - Combine, - CombineCovSplat, - CombineGsplat, - CompMult, - CompXor, - Compilation, - Cos, - Cosh, - CovSplat, - Cross, - DebugColorHue, - Degrees, - Determinant, - Distance, - Div, - Dot, - Dyno, - DynoBlock, - DynoBool, - DynoBvec2, - DynoBvec3, - DynoBvec4, - DynoConst, - DynoFloat, - DynoInt, - DynoIsampler2D, - DynoIsampler2DArray, - DynoIsampler3D, - DynoIsamplerCube, - DynoIvec2, - DynoIvec3, - DynoIvec4, - DynoLiteral, - DynoMat2, - DynoMat2x2, - DynoMat2x3, - DynoMat2x4, - DynoMat3, - DynoMat3x2, - DynoMat3x3, - DynoMat3x4, - DynoMat4, - DynoMat4x2, - DynoMat4x3, - DynoMat4x4, - DynoOutput, - DynoProgram, - DynoProgramTemplate, - DynoRemapIndex, - DynoSampler2D, - DynoSampler2DArray, - DynoSampler2DArrayShadow, - DynoSampler2DShadow, - DynoSampler3D, - DynoSamplerCube, - DynoSamplerCubeShadow, - DynoUint, - DynoUniform, - DynoUsampler2D, - DynoUsampler2DArray, - DynoUsampler3D, - DynoUsamplerCube, - DynoUvec2, - DynoUvec3, - DynoUvec4, - DynoValue, - DynoVec2, - DynoVec3, - DynoVec4, - Equal, - Exp, - Exp2, - ExtendVec, - FaceForward, - Float, - FloatBitsToInt, - FloatBitsToUint, - Floor, - Fract, - GreaterThan, - GreaterThanEqual, - Gsplat, - GsplatNormal, - GsplatToCovSplat, - Hash, - Hash2, - Hash3, - Hash4, - HashFloat, - HashVec2, - HashVec3, - HashVec4, - IMod, - IVec2, - IVec3, - IVec4, - Int, - IntBitsToFloat, - Inverse, - InverseSqrt, - IsInf, - IsNan, - Length, - LessThan, - LessThanEqual, - Log, - Log2, - Mat2, - Mat3, - Mat4, - Max, - Min, - Mix, - Mod, - Modf, - Mul, - Neg, - Normalize, - NormalizedDepth, - Not, - NotEqual, - NumCovSplats, - NumExtSplats, - NumPackedSplats, - Or, - Outer, - OutputCovSplat, - OutputExtCovSplat, - OutputExtendedSplat, - OutputPackedSplat, - OutputRgba8, - PackHalf2x16, - PackSnorm2x16, - PackUnorm2x16, - PagedSplatTexCoord, - PcgHash, - PcgMix, - PcgNext, - Pow, - ProjectH, - Radians, - ReadCovSplat, - ReadExtSplat, - ReadPackedSplat, - ReadPackedSplatRange, - ReflectVec, - RefractVec, - Round, - Select, - Shl, - Shr, - Sign, - SimpleCast, - Sin, - Sinh, - Smoothstep, - SplatTexCoord, - Split, - SplitCovSplat, - SplitGsplat, - Sqr, - Sqrt, - Step, - Sub, - Swizzle, - TCovSplats, - TExtSplats, - TPackedSplats, - Tan, - Tanh, - TexelFetch, - Texture, - TextureSize, - TransformDir, - TransformGsplat, - TransformPosition, - TransformQuaternion, - Transpose, - TrinaryOp, - Trunc, - UVec2, - UVec3, - UVec4, - Uint, - UintBitsToFloat, - UintToRgba8, - UnaryOp, - UnpackHalf2x16, - UnpackSnorm2x16, - UnpackUnorm2x16, - Vec2, - Vec3, - Vec4, - Xor, - abs, - acos, - acosh, - add, - all, - and, - any, - arrayIndex, - arrayLength, - asin, - asinh, - atan, - atan2, - atanh, - bool, - bvec2, - bvec3, - bvec4, - ceil, - clamp, - combine, - combineCovSplat, - combineGsplat, - comment, - compMult, - compXor, - cos, - cosh, - cross, - debugColorHue, - defineCovSplat, - defineExtSplats, - defineGsplat, - defineGsplatNormal, - definePackedSplats, - degrees, - determinant, - distance, - div, - dot, - dyno: dyno$1, - dynoBlock, - dynoBool, - dynoBvec2, - dynoBvec3, - dynoBvec4, - dynoConst, - dynoDeclare, - dynoFloat, - dynoFor, - dynoIf, - dynoInt, - dynoIsampler2D, - dynoIsampler2DArray, - dynoIsampler3D, - dynoIsamplerCube, - dynoIvec2, - dynoIvec3, - dynoIvec4, - dynoLiteral, - dynoMat2, - dynoMat2x2, - dynoMat2x3, - dynoMat2x4, - dynoMat3, - dynoMat3x2, - dynoMat3x3, - dynoMat3x4, - dynoMat4, - dynoMat4x2, - dynoMat4x3, - dynoMat4x4, - dynoSampler2D, - dynoSampler2DArray, - dynoSampler2DArrayShadow, - dynoSampler2DShadow, - dynoSampler3D, - dynoSamplerCube, - dynoSamplerCubeShadow, - dynoSwitch, - dynoUint, - dynoUsampler2D, - dynoUsampler2DArray, - dynoUsampler3D, - dynoUsamplerCube, - dynoUvec2, - dynoUvec3, - dynoUvec4, - dynoVec2, - dynoVec3, - dynoVec4, - equal, - exp, - exp2, - extendVec, - faceforward, - float, - floatBitsToInt, - floatBitsToUint, - floor, - fract, - greaterThan, - greaterThanEqual, - gsplatNormal, - gsplatToCovSplat, - hash, - hash2, - hash3, - hash4, - hashFloat, - hashVec2, - hashVec3, - hashVec4, - imod, - int, - intBitsToFloat, - inverse, - inversesqrt, - isAllFloatType, - isBoolType, - isFloatType, - isInf, - isIntType, - isMat2, - isMat3, - isMat4, - isMatFloatType, - isNan, - isScalarType, - isUintType, - isVector2Type, - isVector3Type, - isVector4Type, - isVectorType, - ivec2, - ivec3, - ivec4, - length, - lessThan, - lessThanEqual, - literalNegOne, - literalOne, - literalZero, - log, - log2, - mat2, - mat3, - mat4, - max, - min, - mix, - mod, - modf, - mul, - neg, - normalize, - normalizedDepth, - not, - notEqual, - numCovSplats, - numExtSplats, - numPackedSplats, - numberAsFloat, - numberAsInt, - numberAsUint, - or, - outer, - outputCovSplat, - outputCovSplatDepth, - outputExtCovSplat, - outputExtendedSplat, - outputPackedSplat, - outputRgba8, - outputSplatDepth, - packHalf2x16, - packSnorm2x16, - packUnorm2x16, - pagedSplatTexCoord, - pcgHash, - pcgMix, - pcgNext, - pow, - projectH, - radians, - readCovSplat, - readExtSplat, - readPackedSplat, - readPackedSplatRange, - reflectVec, - refractVec, - remapIndex, - round, - sameSizeIvec, - sameSizeUvec, - sameSizeVec, - select, - shl, - shr, - sign, - sin, - sinh, - smoothstep, - splatTexCoord, - split, - splitCovSplat, - splitGsplat, - sqr, - sqrt, - step, - sub, - swizzle, - tan, - tanh, - texelFetch, - texture, - textureSize, - transformDir, - transformGsplat, - transformPos, - transformQuat, - transpose, - trunc, - typeLiteral, - uint, - uintBitsToFloat, - uintToRgba8, - uniform, - unindent, - unindentLines, - unpackHalf2x16, - unpackSnorm2x16, - unpackUnorm2x16, - uvec2, - uvec3, - uvec4, - valType, - vec2, - vec3, - vec4, - vectorDim, - vectorElementType, - xor -}, Symbol.toStringTag, { value: "Module" })); -const _ExtSplats = class _ExtSplats { - constructor(options = {}) { - this.maxSplats = 0; - this.numSplats = 0; - this.extra = {}; - this.maxSh = 3; - this.isInitialized = false; - this.extArrays = [new Uint32Array(0), new Uint32Array(0)]; - this.textures = [_ExtSplats.emptyTexture, _ExtSplats.emptyTexture]; - this.extra = {}; - this.dyno = new DynoExtSplats({ extSplats: this }); - this.dynoNumSh = new DynoInt({ - key: "numSh", - value: 0, - update: () => { - return Math.min(this.getNumSh(), this.maxSh); - } - }); - this.initialized = Promise.resolve(this); - this.reinitialize(options); +function transposeOutputType(type) { + if (type === "mat2") return "mat2"; + if (type === "mat3") return "mat3"; + if (type === "mat4") return "mat4"; + if (type === "mat2x2") return "mat2x2"; + if (type === "mat2x3") return "mat3x2"; + if (type === "mat2x4") return "mat4x2"; + if (type === "mat3x2") return "mat2x3"; + if (type === "mat3x3") return "mat3x3"; + if (type === "mat3x4") return "mat4x3"; + if (type === "mat4x2") return "mat2x4"; + if (type === "mat4x3") return "mat3x4"; + if (type === "mat4x4") return "mat4x4"; + throw new Error(`Invalid transpose type: ${type}`); +} +class Transpose extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "transpose", outTypeFunc: transposeOutputType }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.transpose} = transpose(${inputs.a});` + ]; } - reinitialize(options) { - this.isInitialized = false; - this.extra = {}; - this.maxSplats = options.maxSplats ?? 0; - this.lod = options.lod; - this.nonLod = options.nonLod; - if (options.url || options.fileBytes || options.stream || options.construct) { - this.initialized = this.asyncInitialize(options).then(() => { - this.isInitialized = true; - return this; +} +class Determinant extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "det", outTypeFunc: (aType) => "float" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.det} = determinant(${inputs.a});` + ]; + } +} +class Inverse extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "inverse", outTypeFunc: (aType) => aType }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.inverse} = inverse(${a});` + ]; + } +} +function splitOutTypes(type) { + const result = (value) => value; + switch (type) { + case "vec2": + return result({ x: "float", y: "float", r: "float", g: "float" }); + case "vec3": + return result({ + x: "float", + y: "float", + z: "float", + r: "float", + g: "float", + b: "float" }); - } else { - this.initialize(options); - this.isInitialized = true; - this.initialized = Promise.resolve(this); + case "vec4": + return result({ + x: "float", + y: "float", + z: "float", + w: "float", + r: "float", + g: "float", + b: "float", + a: "float" + }); + case "ivec2": + return result({ x: "int", y: "int", r: "int", g: "int" }); + case "ivec3": + return result({ + x: "int", + y: "int", + z: "int", + r: "int", + g: "int", + b: "int" + }); + case "ivec4": + return result({ + x: "int", + y: "int", + z: "int", + w: "int", + r: "int", + g: "int", + b: "int", + a: "int" + }); + case "uvec2": + return result({ x: "uint", y: "uint", r: "uint", g: "uint" }); + case "uvec3": + return result({ + x: "uint", + y: "uint", + z: "uint", + r: "uint", + g: "uint", + b: "uint" + }); + case "uvec4": + return result({ + x: "uint", + y: "uint", + z: "uint", + w: "uint", + r: "uint", + g: "uint", + b: "uint", + a: "uint" + }); + default: + throw new Error(`Invalid vector type: ${type}`); + } +} +class Split extends Dyno { + constructor({ vector }) { + const type = valType(vector); + const inTypes = { vector: type }; + const outTypes = splitOutTypes(inTypes.vector); + super({ inTypes, outTypes, inputs: { vector } }); + this.statements = ({ inputs, outputs }) => { + const { x, y, z, w, r, g, b, a } = outputs; + const { vector: vector2 } = inputs; + return [ + x ? `${x} = ${vector2}.x;` : null, + y ? `${y} = ${vector2}.y;` : null, + z ? `${z} = ${vector2}.z;` : null, + w ? `${w} = ${vector2}.w;` : null, + r ? `${r} = ${vector2}.r;` : null, + g ? `${g} = ${vector2}.g;` : null, + b ? `${b} = ${vector2}.b;` : null, + a ? `${a} = ${vector2}.a;` : null + ].filter(Boolean); + }; + } +} +class Combine extends Dyno { + constructor({ + vector, + vectorType, + x, + y, + z, + w, + r, + g, + b, + a + }) { + if (!vector && !vectorType) { + throw new Error("Either vector or vectorType must be provided"); } - } - initialize(options) { - this.extra = options.extra ?? {}; - this.lodSplats = options.lodSplats; - if (options.extArrays) { - this.extArrays = options.extArrays; - this.maxSplats = Math.floor( - Math.min(this.extArrays[0].length / 4, this.extArrays[1].length / 4) - ); - this.numSplats = options.numSplats ?? this.maxSplats; - this.maxSplats = Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - this.numSplats = Math.min( - this.maxSplats, - options.numSplats ?? Number.POSITIVE_INFINITY - ); - this.updateTextures(); - } else { - this.maxSplats = options.maxSplats ?? 0; - this.numSplats = 0; - this.extArrays = [new Uint32Array(0), new Uint32Array(0)]; + const vType = vectorType ?? valType(vector); + const elType = vectorElementType(vType); + const dim = vectorDim(vType); + const inTypes = { + vector: vType, + x: elType, + y: elType, + r: elType, + g: elType + }; + const inputs = { vector, x, y, r, g }; + if (dim >= 3) { + Object.assign(inTypes, { z: elType, b: elType }); + Object.assign(inputs, { z, b }); } - } - async asyncInitialize(options) { - const { - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - construct, - lod, - nonLod, - lodAbove - } = options; - this.lod = lod; - this.nonLod = nonLod; - const loader = new SplatLoader(); - if (fileBytes || url || stream) { - await loader.loadInternalAsync({ - extSplats: this, - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - onProgress: options.onProgress, - lodAbove - }); + if (dim >= 4) { + Object.assign(inTypes, { w: elType, a: elType }); + Object.assign(inputs, { w, a }); } - if (construct) { - const maybePromise = construct(this); - if (maybePromise instanceof Promise) { - await maybePromise; + super({ inTypes, outTypes: { vector: vType }, inputs }); + this.statements = ({ inputs: inputs2, outputs }) => { + const { vector: vector2 } = outputs; + const { + vector: input, + x: x2, + y: y2, + z: z2, + w: w2, + r: r2, + g: g2, + b: b22, + a: a2 + } = inputs2; + const statements = [ + `${vector2}.x = ${x2 ?? r2 ?? (input ? `${input}.x` : literalZero(elType))};`, + `${vector2}.y = ${y2 ?? g2 ?? (input ? `${input}.y` : literalZero(elType))};` + ]; + if (dim >= 3) + statements.push( + `${vector2}.z = ${z2 ?? b22 ?? (input ? `${input}.z` : literalZero(elType))};` + ); + if (dim >= 4) + statements.push( + `${vector2}.w = ${w2 ?? a2 ?? (input ? `${input}.w` : literalZero(elType))};` + ); + return statements; + }; + } + dynoOut() { + return new DynoOutput( + this, + "vector" + ); + } +} +function swizzleOutputType(type, swizzle2) { + let result = null; + if (isFloatType(type)) { + result = swizzle2.length === 1 ? "float" : swizzle2.length === 2 ? "vec2" : swizzle2.length === 3 ? "vec3" : swizzle2.length === 4 ? "vec4" : null; + } else if (isIntType(type)) { + result = swizzle2.length === 1 ? "int" : swizzle2.length === 2 ? "ivec2" : swizzle2.length === 3 ? "ivec3" : swizzle2.length === 4 ? "ivec4" : null; + } else if (isUintType(type)) { + result = swizzle2.length === 1 ? "uint" : swizzle2.length === 2 ? "uvec2" : swizzle2.length === 3 ? "uvec3" : swizzle2.length === 4 ? "uvec4" : null; + } + if (result == null) { + throw new Error(`Invalid swizzle: ${swizzle2}`); + } + return result; +} +class Swizzle extends UnaryOp { + constructor({ vector, select: select2 }) { + super({ + a: vector, + outKey: "swizzle", + outTypeFunc: (aType) => swizzleOutputType(aType, select2) + }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.swizzle} = ${inputs.a}.${select2};` + ]; + } +} +const remapIndex = (index, from, to) => { + return new DynoRemapIndex({ index, from, to }); +}; +const pcgMix = (value) => { + return new PcgMix({ value }); +}; +const pcgNext = (state) => { + return new PcgNext({ state }); +}; +const pcgHash = (state) => { + return new PcgHash({ state }); +}; +const hash = (value) => { + return new Hash({ value }); +}; +const hash2 = (value) => { + return new Hash2({ value }); +}; +const hash3 = (value) => { + return new Hash3({ value }); +}; +const hash4 = (value) => { + return new Hash4({ value }); +}; +const hashFloat = (value) => { + return new HashFloat({ value }); +}; +const hashVec2 = (value) => { + return new HashVec2({ value }); +}; +const hashVec3 = (value) => { + return new HashVec3({ value }); +}; +const hashVec4 = (value) => { + return new HashVec4({ value }); +}; +const normalizedDepth = (z, zNear, zFar) => { + return new NormalizedDepth({ z, zNear, zFar }).outputs.depth; +}; +const debugColorHue = (index) => { + return new DebugColorHue({ index }); +}; +class DynoRemapIndex extends Dyno { + constructor({ + from, + to, + index + }) { + super({ + inTypes: { from: "int", to: "int", index: "int" }, + outTypes: { index: "int" }, + inputs: { from, to, index }, + statements: ({ inputs, outputs }) => { + return [ + `${outputs.index} = ${inputs.index} - ${inputs.from} + ${inputs.to};` + ]; } - } + }); } - // Call this when you are finished with the PackedSplats and want to free - // any buffers it holds. - dispose() { - if (this.textures[0] !== _ExtSplats.emptyTexture) { - this.textures[0].dispose(); - this.textures[0].source.data = null; - this.textures[0] = _ExtSplats.emptyTexture; - } - if (this.textures[1] !== _ExtSplats.emptyTexture) { - this.textures[1].dispose(); - this.textures[1].source.data = null; - this.textures[1] = _ExtSplats.emptyTexture; - } - this.extArrays = [new Uint32Array(0), new Uint32Array(0)]; - for (const key in this.extra) { - const dyno2 = this.extra[key]; - if (dyno2 instanceof DynoUniform) { - const texture2 = dyno2.value; - if (texture2 == null ? void 0 : texture2.isTexture) { - texture2.dispose(); - texture2.source.data = null; - } + dynoOut() { + return new DynoOutput(this, "index"); + } +} +class PcgNext extends Dyno { + constructor({ state }) { + const type = valType(state); + super({ + inTypes: { state: type }, + outTypes: { state: "uint" }, + inputs: { state }, + globals: () => [ + unindent(` + uint pcg_next(uint state) { + return state * 747796405u + 2891336453u; + } + `) + ], + statements: ({ inputs, outputs }) => { + const toUint = type === "uint" ? `${inputs.state}` : type === "int" ? `uint(${inputs.state})` : `floatBitsToUint(${inputs.state})`; + return [`${outputs.state} = pcg_next(${toUint});`]; } - } - this.extra = {}; - this.disposeLodSplats(); + }); } - prepareFetchSplat() { + dynoOut() { + return new DynoOutput(this, "state"); + } +} +class PcgHash extends Dyno { + constructor({ state }) { + super({ + inTypes: { state: "uint" }, + outTypes: { hash: "uint" }, + inputs: { state }, + globals: () => [ + unindent(` + uint pcg_hash(uint state) { + uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u; + return (hash >> 22u) ^ hash; + } + `) + ], + statements: ({ inputs, outputs }) => [ + `${outputs.hash} = pcg_hash(${inputs.state});` + ] + }); } - getNumSplats() { - return this.numSplats; + dynoOut() { + return new DynoOutput(this, "hash"); } - hasRgbDir() { - return Math.min(this.getNumSh(), this.maxSh) > 0; +} +class PcgMix extends Dyno { + constructor({ value }) { + const type = valType(value); + const tempType = sameSizeUvec(type); + super({ + inTypes: { value: type }, + outTypes: { state: "uint" }, + inputs: { value }, + globals: () => [ + unindent(` + uint pcg_mix(uint value) { + return value; + } + uint pcg_mix(uvec2 value) { + return value.x + 0x9e3779b9u * value.y; + } + uint pcg_mix(uvec3 value) { + return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z; + } + uint pcg_mix(uvec4 value) { + return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z + 0xc2b2ae35u * value.w; + } + `) + ], + statements: ({ inputs, outputs }) => { + const toUvec = isUintType(type) ? `${inputs.value}` : isIntType(type) ? `${tempType}(${inputs.value})` : `floatBitsToUint(${inputs.value})`; + return [ + `${tempType} bits = ${toUvec};`, + `${outputs.state} = pcg_mix(bits);` + ]; + } + }); } - getNumSh() { - return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3a || !this.extra.sh3b ? 2 : 3; + dynoOut() { + return new DynoOutput(this, "state"); } - setMaxSh(maxSh) { - this.maxSh = maxSh; +} +class Hash extends DynoBlock { + constructor({ value }) { + super({ + inTypes: { value: valType(value) }, + outTypes: { hash: "uint" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); + } + let state = new PcgMix({ value: value2 }).outputs.state; + state = new PcgNext({ state }).outputs.state; + return new PcgHash({ state }).outputs; + } + }); } - fetchSplat({ - index, - viewOrigin - }) { - let gsplat = readExtSplat(this.dyno, index); - if (this.hasRgbDir() && viewOrigin) { - const splatCenter = splitGsplat(gsplat).outputs.center; - const viewDir = normalize(sub(splatCenter, viewOrigin)); - const { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB } = this.ensureShTextures(); - let { rgb } = evaluateExtSH({ - coord: splatTexCoord(index), - viewDir, - numSh: this.dynoNumSh, - sh1Texture, - sh2Texture, - sh3TextureA, - sh3TextureB - }); - rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); - gsplat = combineGsplat({ gsplat, rgb }); - } - return gsplat; + dynoOut() { + return new DynoOutput(this, "hash"); } - ensureShTextures() { - if (!this.extra.sh1) { - return {}; - } - let sh1Texture = this.extra.sh1Texture; - if (!sh1Texture) { - let sh1 = this.extra.sh1; - const { width, height, depth, maxSplats } = getTextureSize( - sh1.length / 4 - ); - if (sh1.length < maxSplats * 4) { - const newSh1 = new Uint32Array(maxSplats * 4); - newSh1.set(sh1); - this.extra.sh1 = newSh1; - sh1 = newSh1; - } - const texture2 = newUint32ArrayTexture( - sh1, - width, - height, - depth, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType, - "RGBA32UI" - ); - sh1Texture = new DynoUsampler2DArray({ - value: texture2, - key: "sh1" - }); - this.extra.sh1Texture = sh1Texture; - } - if (!this.extra.sh2) { - return { sh1Texture }; - } - let sh2Texture = this.extra.sh2Texture; - if (!sh2Texture) { - let sh2 = this.extra.sh2; - const { width, height, depth, maxSplats } = getTextureSize( - sh2.length / 4 - ); - if (sh2.length < maxSplats * 4) { - const newSh2 = new Uint32Array(maxSplats * 4); - newSh2.set(sh2); - this.extra.sh2 = newSh2; - sh2 = newSh2; - } - const texture2 = newUint32ArrayTexture( - sh2, - width, - height, - depth, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType, - "RGBA32UI" - ); - sh2Texture = new DynoUsampler2DArray({ - value: texture2, - key: "sh2" - }); - this.extra.sh2Texture = sh2Texture; - } - if (!this.extra.sh3a || !this.extra.sh3b) { - return { sh1Texture, sh2Texture }; - } - let sh3TextureA = this.extra.sh3TextureA; - if (!sh3TextureA) { - let sh3a = this.extra.sh3a; - const { width, height, depth, maxSplats } = getTextureSize( - sh3a.length / 4 - ); - if (sh3a.length < maxSplats * 4) { - const newSh3 = new Uint32Array(maxSplats * 4); - newSh3.set(sh3a); - this.extra.sh3a = newSh3; - sh3a = newSh3; - } - const texture2 = newUint32ArrayTexture( - sh3a, - width, - height, - depth, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType, - "RGBA32UI" - ); - sh3TextureA = new DynoUsampler2DArray({ - value: texture2, - key: "sh3" - }); - this.extra.sh3TextureA = sh3TextureA; - } - let sh3TextureB = this.extra.sh3TextureB; - if (!sh3TextureB) { - let sh3b = this.extra.sh3b; - const { width, height, depth, maxSplats } = getTextureSize( - sh3b.length / 4 - ); - if (sh3b.length < maxSplats * 4) { - const newSh3b = new Uint32Array(maxSplats * 4); - newSh3b.set(sh3b); - this.extra.sh3b = newSh3b; - sh3b = newSh3b; +} +class Hash2 extends DynoBlock { + constructor({ value }) { + super({ + inTypes: { value: valType(value) }, + outTypes: { hash: "uvec2" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); + } + let state = new PcgMix({ value: value2 }).outputs.state; + state = new PcgNext({ state }).outputs.state; + const x = new PcgHash({ state }).outputs.hash; + state = new PcgNext({ state }).outputs.state; + const y = new PcgHash({ state }).outputs.hash; + return { hash: combine({ vectorType: "uvec2", x, y }) }; } - const texture2 = newUint32ArrayTexture( - sh3b, - width, - height, - depth, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType, - "RGBA32UI" - ); - sh3TextureB = new DynoUsampler2DArray({ - value: texture2, - key: "sh3b" - }); - this.extra.sh3TextureB = sh3TextureB; - } - return { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB }; + }); } - // Ensures that this.extArrays can fit numSplats Gsplats. If it's too small, - // resize exponentially and copy over the original data. - // - // Typically you don't need to call this, because calling this.setSplat(index, ...) - // and this.pushSplat(...) will automatically call ensureSplats() so we have - // enough splats. - ensureSplats(numSplats) { - const targetSize = numSplats <= this.maxSplats ? this.maxSplats : ( - // Grow exponentially to avoid frequent reallocations - Math.max(numSplats, 2 * this.maxSplats) - ); - const currentSize = !this.extArrays[0] ? 0 : this.extArrays[0].length / 4; - if (!this.extArrays[0] || targetSize > currentSize) { - this.maxSplats = getTextureSize(targetSize).maxSplats; - const newArray0 = new Uint32Array(this.maxSplats * 4); - const newArray1 = new Uint32Array(this.maxSplats * 4); - if (this.extArrays[0]) { - newArray0.set(this.extArrays[0]); - newArray1.set(this.extArrays[1]); + dynoOut() { + return new DynoOutput(this, "hash"); + } +} +class Hash3 extends DynoBlock { + constructor({ value }) { + super({ + inTypes: { value: valType(value) }, + outTypes: { hash: "uvec3" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); + } + let state = new PcgMix({ value: value2 }).outputs.state; + state = new PcgNext({ state }).outputs.state; + const x = new PcgHash({ state }).outputs.hash; + state = new PcgNext({ state }).outputs.state; + const y = new PcgHash({ state }).outputs.hash; + state = new PcgNext({ state }).outputs.state; + const z = new PcgHash({ state }).outputs.hash; + return { hash: combine({ vectorType: "uvec3", x, y, z }) }; } - this.extArrays[0] = newArray0; - this.extArrays[1] = newArray1; - } - return this.extArrays; - } - // Unpack the 16-byte Gsplat data at index into the Three.js components - // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, - // opacity: number 0..1, color: THREE.Color 0..1. - getSplat(index) { - if (index >= this.numSplats) { - throw new Error("Invalid index"); - } - return decodeExtSplat(this.extArrays, index); + }); } - // Set all ExtSplat components at index with the provided Gsplat attributes - // (can be the same objects returned by getSplat). Ensures there is capacity - // for at least index+1 Gsplats. - setSplat(index, center, scales, quaternion, opacity, color) { - const extArrays = this.ensureSplats(index + 1); - encodeExtSplat( - extArrays, - index, - center.x, - center.y, - center.z, - scales.x, - scales.y, - scales.z, - quaternion.x, - quaternion.y, - quaternion.z, - quaternion.w, - opacity, - color.r, - color.g, - color.b - ); - this.numSplats = Math.max(this.numSplats, index + 1); + dynoOut() { + return new DynoOutput(this, "hash"); } - // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on - // construction where you just want to iterate and create a collection of Gsplats. - pushSplat(center, scales, quaternion, opacity, color) { - const extArrays = this.ensureSplats(this.numSplats + 1); - encodeExtSplat( - extArrays, - this.numSplats, - center.x, - center.y, - center.z, - scales.x, - scales.y, - scales.z, - quaternion.x, - quaternion.y, - quaternion.z, - quaternion.w, - opacity, - color.r, - color.g, - color.b - ); - ++this.numSplats; +} +class Hash4 extends DynoBlock { + constructor({ value }) { + super({ + inTypes: { value: valType(value) }, + outTypes: { hash: "uvec4" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); + } + let state = new PcgMix({ value: value2 }).outputs.state; + state = new PcgNext({ state }).outputs.state; + const x = new PcgHash({ state }).outputs.hash; + state = new PcgNext({ state }).outputs.state; + const y = new PcgHash({ state }).outputs.hash; + state = new PcgNext({ state }).outputs.state; + const z = new PcgHash({ state }).outputs.hash; + state = new PcgNext({ state }).outputs.state; + const w = new PcgHash({ state }).outputs.hash; + return { hash: combine({ vectorType: "uvec4", x, y, z, w }) }; + } + }); } - // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat - // and invoke the callback function with the Gsplat attributes. - forEachSplat(callback) { - if (!this.numSplats) { - return; - } - for (let i = 0; i < this.numSplats; ++i) { - const unpacked = decodeExtSplat(this.extArrays, i); - callback( - i, - unpacked.center, - unpacked.scales, - unpacked.quaternion, - unpacked.opacity, - unpacked.color - ); - } + dynoOut() { + return new DynoOutput(this, "hash"); } - // Check if source texture needs to be created/updated - updateTextures() { - if (this.textures[0] !== _ExtSplats.emptyTexture) { - const { width, height, depth } = this.textures[0].image; - if (this.maxSplats !== width * height * depth) { - this.textures[0].dispose(); - this.textures[0] = _ExtSplats.emptyTexture; - this.textures[1].dispose(); - this.textures[1] = _ExtSplats.emptyTexture; +} +class HashFloat extends DynoBlock { + constructor({ value }) { + super({ + inTypes: { value: valType(value) }, + outTypes: { hash: "float" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); + } + const word = hash(value2); + return { hash: mul(float(word), dynoConst("float", 1 / 2 ** 32)) }; } - } - if (this.textures[0] === _ExtSplats.emptyTexture) { - const { width, height, depth } = getTextureSize(this.maxSplats); - this.textures[0] = newUint32ArrayTexture( - this.extArrays[0], - width, - height, - depth, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType, - "RGBA32UI" - ); - this.textures[1] = newUint32ArrayTexture( - this.extArrays[1], - width, - height, - depth, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType, - "RGBA32UI" - ); - } else if (this.extArrays[0].buffer !== this.textures[0].image.data.buffer) { - this.textures[0].image.data = new Uint8Array(this.extArrays[0].buffer); - this.textures[1].image.data = new Uint8Array(this.extArrays[1].buffer); - this.textures[0].needsUpdate = true; - this.textures[1].needsUpdate = true; - } + }); } - extractSplats(indices, pageColoring) { - const maxSplats = getTextureSize(indices.length).maxSplats; - const newSplats = new _ExtSplats({ maxSplats }); - for (let i = 0; i < indices.length; i++) { - const splat = this.getSplat(indices[i]); - if (pageColoring) { - let hue = (indices[i] >>> 16) * 0.61803398875; - hue = hue - Math.floor(hue); - const r = Math.max(0, Math.min(1, Math.abs(hue * 6 - 3) - 1)); - const g = Math.max(0, Math.min(1, Math.abs(hue * 6 + 1) - 1)); - const b = Math.max(0, Math.min(1, Math.abs(hue * 6 - 1) - 1)); - splat.color.r *= r; - splat.color.g *= g; - splat.color.b *= b; + dynoOut() { + return new DynoOutput(this, "hash"); + } +} +class HashVec2 extends DynoBlock { + constructor({ value }) { + super({ + inTypes: { value: valType(value) }, + outTypes: { hash: "vec2" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); + } + const words = hash2(value2); + return { hash: mul(vec2(words), dynoConst("float", 1 / 2 ** 32)) }; } - newSplats.pushSplat( - splat.center, - splat.scales, - splat.quaternion, - splat.opacity, - splat.color - ); - } - return newSplats; + }); } - disposeLodSplats() { - if (this.lodSplats) { - this.lodSplats.dispose(); - this.lodSplats = void 0; - } + dynoOut() { + return new DynoOutput(this, "hash"); } - async createLodSplats({ - rgbaArray, - quality - } = {}) { - const lodBase = typeof this.lod === "number" ? Math.max(1.1, Math.min(2, this.lod)) : quality ? 1.75 : 1.5; - const extArrays = [this.extArrays[0].slice(), this.extArrays[1].slice()]; - const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : void 0; - const extra = { - sh1: this.extra.sh1 ? this.extra.sh1.slice() : void 0, - sh2: this.extra.sh2 ? this.extra.sh2.slice() : void 0, - sh3: this.extra.sh3 ? this.extra.sh3.slice() : void 0 - }; - const decoded = await workerPool.withWorker(async (worker) => { - return await worker.call( - quality ? "qualityLodExtSplats" : "tinyLodExtSplats", - { - numSplats: this.numSplats, - extArrays, - extra, - lodBase, - rgba +} +class HashVec3 extends DynoBlock { + constructor({ value }) { + super({ + inTypes: { value: valType(value) }, + outTypes: { hash: "vec3" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); } - ); + const words = hash3(value2); + return { hash: mul(vec3(words), dynoConst("float", 1 / 2 ** 32)) }; + } }); - const lodSplats = new _ExtSplats(decoded); - if (this.lodSplats) { - this.lodSplats.dispose(); - } - this.lodSplats = lodSplats; - this.nonLod = true; - this.lod = quality ? "quality" : true; } -}; -_ExtSplats.emptyArray = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 4); - const texture2 = new THREE__namespace.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE__namespace.RGBAIntegerFormat; - texture2.type = THREE__namespace.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_ExtSplats.emptyTexture = newUint32ArrayTexture( - null, - 1, - 1, - 1, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType, - "RGBA32UI" -); -_ExtSplats.emptyUint32x4 = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 4); - const texture2 = new THREE__namespace.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE__namespace.RGBAIntegerFormat; - texture2.type = THREE__namespace.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -let ExtSplats = _ExtSplats; -class DynoExtSplats extends DynoUniform { - constructor({ extSplats } = {}) { + dynoOut() { + return new DynoOutput(this, "hash"); + } +} +class HashVec4 extends DynoBlock { + constructor({ value }) { super({ - key: "extSplats", - type: TExtSplats, - globals: () => [defineExtSplats], - value: { - textureArray1: ExtSplats.emptyTexture, - textureArray2: ExtSplats.emptyTexture, - numSplats: 0 - }, - update: (value) => { - var _a2, _b2, _c; - value.textureArray1 = ((_a2 = this.extSplats) == null ? void 0 : _a2.textures[0]) ?? ExtSplats.emptyTexture; - value.textureArray2 = ((_b2 = this.extSplats) == null ? void 0 : _b2.textures[1]) ?? ExtSplats.emptyTexture; - value.numSplats = ((_c = this.extSplats) == null ? void 0 : _c.numSplats) ?? 0; - return value; + inTypes: { value: valType(value) }, + outTypes: { hash: "vec4" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); + } + const words = hash4(value2); + return { hash: mul(vec4(words), dynoConst("float", 1 / 2 ** 32)) }; } }); - this.extSplats = extSplats; + } + dynoOut() { + return new DynoOutput(this, "hash"); } } -const defineEvaluateExtSH1 = unindent(` - vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) { - vec3 sh1_0 = decodeExtRgb(packedData.x); - vec3 sh1_1 = decodeExtRgb(packedData.y); - vec3 sh1_2 = decodeExtRgb(packedData.z); - - return sh1_0 * (-0.4886025 * viewDir.y) - + sh1_1 * (0.4886025 * viewDir.z) - + sh1_2 * (-0.4886025 * viewDir.x); +class NormalizedDepth extends Dyno { + constructor({ + z, + zNear, + zFar + }) { + super({ + inTypes: { z: "float", zNear: "float", zFar: "float" }, + outTypes: { depth: "float" }, + inputs: { z, zNear, zFar }, + statements: ({ inputs, outputs }) => [ + `float clamped = clamp(${inputs.z}, ${inputs.zNear}, ${inputs.zFar});`, + `${outputs.depth} = (log2(clamped + 1.0) - log2(${inputs.zNear} + 1.0)) / (log2(${inputs.zFar} + 1.0) - log2(${inputs.zNear} + 1.0));` + ] + }); } -`); -const defineEvaluateExtSH12 = unindent(` - vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) { - vec3 sh1_0 = decodeExtRgb(packed1.x); - vec3 sh1_1 = decodeExtRgb(packed1.y); - vec3 sh1_2 = decodeExtRgb(packed1.z); - - vec3 sh2_0 = decodeExtRgb(packed1.w); - vec3 sh2_1 = decodeExtRgb(packed2.x); - vec3 sh2_2 = decodeExtRgb(packed2.y); - vec3 sh2_3 = decodeExtRgb(packed2.z); - vec3 sh2_4 = decodeExtRgb(packed2.w); - - vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y) - + sh1_1 * (0.4886025 * viewDir.z) - + sh1_2 * (-0.4886025 * viewDir.x); - - vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y) - + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z) - + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y)) - + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z) - + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y)); - - return sh1Rgb + sh2Rgb; + dynoOut() { + return new DynoOutput(this, "depth"); } -`); -const defineEvaluateExtSH3 = unindent(` - vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) { - vec3 sh3_0 = decodeExtRgb(packedA.x); - vec3 sh3_1 = decodeExtRgb(packedA.y); - vec3 sh3_2 = decodeExtRgb(packedA.z); - vec3 sh3_3 = decodeExtRgb(packedA.w); - vec3 sh3_4 = decodeExtRgb(packedB.x); - vec3 sh3_5 = decodeExtRgb(packedB.y); - vec3 sh3_6 = decodeExtRgb(packedB.z); - - float xx = viewDir.x * viewDir.x; - float yy = viewDir.y * viewDir.y; - float zz = viewDir.z * viewDir.z; - float xy = viewDir.x * viewDir.y; - float yz = viewDir.y * viewDir.z; - float zx = viewDir.z * viewDir.x; - - return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy)) - + sh3_1 * (2.8906114 * xy * viewDir.z) + - + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy)) - + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) - + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy)) - + sh3_5 * (1.4453057 * viewDir.z * (xx - yy)) - + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy)); +} +class DebugColorHue extends Dyno { + constructor({ index }) { + super({ + inTypes: { index: "int" }, + outTypes: { color: "vec3" }, + inputs: { index }, + statements: ({ inputs, outputs }) => [ + `${outputs.color} = debugColorHue(uint(${inputs.index}));` + ] + }); } -`); -function evaluateExtSH({ - coord, - viewDir, - numSh, - sh1Texture, - sh2Texture, - sh3TextureA, - sh3TextureB -}) { - return new Dyno({ - inTypes: { - coord: "ivec3", - viewDir: "vec3", - numSh: "int", - sh1Texture: "usampler2DArray", - sh2Texture: "usampler2DArray", - sh3TextureA: "usampler2DArray", - sh3TextureB: "usampler2DArray" - }, - outTypes: { rgb: "vec3" }, - inputs: { - coord, - viewDir, - numSh, - sh1Texture, - sh2Texture, - sh3TextureA, - sh3TextureB - }, - globals: () => [ - defineEvaluateExtSH1, - defineEvaluateExtSH12, - defineEvaluateExtSH3 - ], - statements: ({ inputs, outputs }) => { - const lines = ["vec3 rgb = vec3(0.0);"]; - if (inputs.sh1Texture) { - if (!inputs.sh2Texture) { - lines.push( - ...unindentLines(` - if (${inputs.numSh} >= 1) { - rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir}); - } - `) - ); - } else { - lines.push( - ...unindentLines(` - if (${inputs.numSh} == 1) { - rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir}); - } else if (${inputs.numSh} >= 2) { - rgb = evaluateExtSH12(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}); - `) - ); - if (inputs.sh3TextureA && inputs.sh3TextureB) { - lines.push( - ...unindentLines(` - if (${inputs.numSh} >= 3) { - rgb += evaluateExtSH3(texelFetch(${inputs.sh3TextureA}, ${inputs.coord}, 0), texelFetch(${inputs.sh3TextureB}, ${inputs.coord}, 0), ${inputs.viewDir}); - } - `) - ); - } - lines.push("}"); + dynoOut() { + return new DynoOutput(this, "color"); + } +} +const transformPos = (position, { + scale, + scales, + rotate, + translate +}) => { + return new TransformPosition({ position, scale, scales, rotate, translate }).outputs.position; +}; +const transformDir = (dir, { + scale, + scales, + rotate +}) => { + return new TransformDir({ dir, scale, scales, rotate }).outputs.dir; +}; +const transformQuat = (quaternion, { rotate }) => { + return new TransformQuaternion({ quaternion, rotate }).outputs.quaternion; +}; +class TransformPosition extends Dyno { + constructor({ + position, + scale, + scales, + rotate, + translate + }) { + super({ + inTypes: { + position: "vec3", + scale: "float", + scales: "vec3", + rotate: "vec4", + translate: "vec3" + }, + outTypes: { position: "vec3" }, + inputs: { position, scale, scales, rotate, translate }, + statements: ({ inputs, outputs }) => { + const { position: position2 } = outputs; + if (!position2) { + return []; } + const { scale: scale2, scales: scales2, rotate: rotate2, translate: translate2 } = inputs; + return [ + `${position2} = ${inputs.position ?? "vec3(0.0, 0.0, 0.0)"};`, + !scale2 ? null : `${position2} *= ${scale2};`, + !scales2 ? null : `${position2} *= ${scales2};`, + !rotate2 ? null : `${position2} = quatVec(${rotate2}, ${position2});`, + !translate2 ? null : `${position2} += ${translate2};` + ].filter(Boolean); } - lines.push(`${outputs.rgb} = rgb;`); - return lines; - } - }).outputs; -} -function newUint32ArrayTexture(data, width, height, depth, format, type, internalFormat) { - const texture2 = new THREE__namespace.DataArrayTexture( - data, - width, - height, - depth - ); - texture2.format = format; - texture2.type = type; - texture2.internalFormat = internalFormat; - texture2.needsUpdate = true; - return texture2; -} -function decode_rad_header(bytes) { - const ret = wasm.decode_rad_header(bytes); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); + }); } - return takeFromExternrefTable0(ret[0]); -} -function get_raycast_buffer() { - const ret = wasm.get_raycast_buffer(); - return ret; -} -function get_raycast_buffer2() { - const ret = wasm.get_raycast_buffer2(); - return ret; -} -function raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count) { - const ret = wasm.raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count); - return ret; -} -function raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity) { - const ret = wasm.raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity); - return ret; } -function __wbg_get_imports() { - const import0 = { - __proto__: null, - __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) { - const ret = Error(getStringFromWasm0(arg0, arg1)); - return ret; - }, - __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) { - throw new Error(getStringFromWasm0(arg0, arg1)); - }, - __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) { - let deferred0_0; - let deferred0_1; - try { - deferred0_0 = arg0; - deferred0_1 = arg1; - console.error(getStringFromWasm0(arg0, arg1)); - } finally { - wasm.__wbindgen_free(deferred0_0, deferred0_1, 1); +class TransformDir extends Dyno { + constructor({ + dir, + scale, + scales, + rotate + }) { + super({ + inTypes: { dir: "vec3", scale: "float", scales: "vec3", rotate: "vec4" }, + outTypes: { dir: "vec3" }, + inputs: { dir, scale, scales, rotate }, + statements: ({ inputs, outputs }) => { + const { dir: dir2 } = outputs; + if (!dir2) { + return []; + } + const { scale: scale2, scales: scales2, rotate: rotate2 } = inputs; + return [ + `${dir2} = ${inputs.dir ?? "vec3(0.0, 0.0, 0.0)"};`, + !scale2 ? null : `${dir2} *= ${scale2};`, + !scales2 ? null : `${dir2} *= ${scales2};`, + !rotate2 ? null : `${dir2} = quatVec(${rotate2}, ${dir2});` + ].filter(Boolean); } - }, - __wbg_length_0c32cb8543c8e4c8: function(arg0) { - const ret = arg0.length; - return ret; - }, - __wbg_length_1e701798fdcaa3b4: function(arg0) { - const ret = arg0.length; - return ret; - }, - __wbg_length_fd4646b401926788: function(arg0) { - const ret = arg0.length; - return ret; - }, - __wbg_new_227d7c05414eb861: function() { - const ret = new Error(); - return ret; - }, - __wbg_new_4f9fafbb3909af72: function() { - const ret = new Object(); - return ret; - }, - __wbg_new_f3c9df4f38f3f798: function() { - const ret = new Array(); - return ret; - }, - __wbg_new_with_length_26bffbe236bf73f9: function(arg0) { - const ret = new Float32Array(arg0 >>> 0); - return ret; - }, - __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) { - Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2); - }, - __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) { - Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2); - }, - __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) { - arg0[arg1] = arg2; - }, - __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) { - arg0[arg1 >>> 0] = arg2; - }, - __wbg_set_8ee2d34facb8466e: function() { - return handleError(function(arg0, arg1, arg2) { - const ret = Reflect.set(arg0, arg1, arg2); - return ret; - }, arguments); - }, - __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) { - arg0.set(getArrayF32FromWasm0(arg1, arg2)); - }, - __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) { - const ret = arg1.stack; - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); - }, - __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) { - const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0); - return ret; - }, - __wbindgen_cast_0000000000000001: function(arg0) { - const ret = arg0; - return ret; - }, - __wbindgen_cast_0000000000000002: function(arg0, arg1) { - const ret = getArrayF32FromWasm0(arg0, arg1); - return ret; - }, - __wbindgen_cast_0000000000000003: function(arg0, arg1) { - const ret = getArrayU32FromWasm0(arg0, arg1); - return ret; - }, - __wbindgen_cast_0000000000000004: function(arg0, arg1) { - const ret = getStringFromWasm0(arg0, arg1); - return ret; - }, - __wbindgen_cast_0000000000000005: function(arg0) { - const ret = BigInt.asUintN(64, arg0); - return ret; - }, - __wbindgen_init_externref_table: function() { - const table = wasm.__wbindgen_externrefs; - const offset = table.grow(4); - table.set(0, void 0); - table.set(offset + 0, void 0); - table.set(offset + 1, null); - table.set(offset + 2, true); - table.set(offset + 3, false); - } - }; - return { - __proto__: null, - "./spark_rs_bg.js": import0 - }; -} -function addToExternrefTable0(obj) { - const idx = wasm.__externref_table_alloc(); - wasm.__wbindgen_externrefs.set(idx, obj); - return idx; + }); + } } -function getArrayF32FromWasm0(ptr, len) { - ptr = ptr >>> 0; - return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len); +class TransformQuaternion extends Dyno { + constructor({ + quaternion, + rotate + }) { + super({ + inTypes: { quaternion: "vec4", rotate: "vec4" }, + outTypes: { quaternion: "vec4" }, + inputs: { quaternion, rotate }, + statements: ({ inputs, outputs }) => { + const { quaternion: quaternion2 } = outputs; + if (!quaternion2) { + return []; + } + return [ + `${quaternion2} = ${inputs.quaternion ?? "vec4(0.0, 0.0, 0.0, 1.0)"};`, + !rotate ? null : `${quaternion2} = quatQuat(${inputs.rotate}, ${quaternion2});` + ].filter(Boolean); + } + }); + } } -function getArrayU32FromWasm0(ptr, len) { - ptr = ptr >>> 0; - return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len); +const dynoIf = () => { + throw new Error("Not implemented"); +}; +const dynoSwitch = () => { + throw new Error("Not implemented"); +}; +const dynoFor = () => { + throw new Error("Not implemented"); +}; +const comment = () => { + throw new Error("Not implemented"); +}; +const arrayIndex = () => { + throw new Error("Not implemented"); +}; +const arrayLength = () => { + throw new Error("Not implemented"); +}; +const textureSize = (texture2, lod) => new TextureSize({ texture: texture2, lod }); +const texture = (texture2, coord, bias) => new Texture({ texture: texture2, coord, bias }); +const texelFetch = (texture2, coord, lod) => new TexelFetch({ texture: texture2, coord, lod }); +class TextureSize extends Dyno { + constructor({ texture: texture2, lod }) { + const textureType = valType(texture2); + super({ + inTypes: { texture: textureType, lod: "int" }, + outTypes: { size: textureSizeType(textureType) }, + inputs: { texture: texture2, lod }, + statements: ({ inputs, outputs }) => [ + `${outputs.size} = textureSize(${inputs.texture}, ${inputs.lod ?? "0"});` + ] + }); + } + dynoOut() { + return new DynoOutput(this, "size"); + } } -function getArrayU8FromWasm0(ptr, len) { - ptr = ptr >>> 0; - return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len); +class Texture extends Dyno { + constructor({ + texture: texture2, + coord, + bias + }) { + const textureType = valType(texture2); + super({ + inTypes: { + texture: textureType, + coord: textureCoordType(textureType), + bias: "float" + }, + outTypes: { sample: textureReturnType(textureType) }, + inputs: { texture: texture2, coord, bias }, + statements: ({ inputs, outputs }) => [ + `${outputs.sample} = texture(${inputs.texture}, ${inputs.coord}${inputs.bias ? `, ${inputs.bias}` : ""});` + ] + }); + } + dynoOut() { + return new DynoOutput(this, "sample"); + } } -let cachedDataViewMemory0 = null; -function getDataViewMemory0() { - if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === void 0 && cachedDataViewMemory0.buffer !== wasm.memory.buffer) { - cachedDataViewMemory0 = new DataView(wasm.memory.buffer); +class TexelFetch extends Dyno { + constructor({ + texture: texture2, + coord, + lod + }) { + const textureType = valType(texture2); + super({ + inTypes: { + texture: textureType, + coord: textureSizeType(textureType), + lod: "int" + }, + outTypes: { texel: textureReturnType(textureType) }, + inputs: { texture: texture2, coord, lod }, + statements: ({ inputs, outputs }) => [ + `${outputs.texel} = texelFetch(${inputs.texture}, ${inputs.coord}, ${inputs.lod ?? "0"});` + ] + }); + } + dynoOut() { + return new DynoOutput(this, "texel"); } - return cachedDataViewMemory0; } -let cachedFloat32ArrayMemory0 = null; -function getFloat32ArrayMemory0() { - if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) { - cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer); +function textureSizeType(textureType) { + switch (textureType) { + case "sampler2D": + case "usampler2D": + case "isampler2D": + case "samplerCube": + case "usamplerCube": + case "isamplerCube": + case "sampler2DShadow": + case "samplerCubeShadow": + return "ivec2"; + case "sampler3D": + case "usampler3D": + case "isampler3D": + case "sampler2DArray": + case "usampler2DArray": + case "isampler2DArray": + case "sampler2DArrayShadow": + return "ivec3"; + default: + throw new Error(`Invalid texture type: ${textureType}`); } - return cachedFloat32ArrayMemory0; } -function getStringFromWasm0(ptr, len) { - ptr = ptr >>> 0; - return decodeText(ptr, len); +function textureCoordType(textureType) { + switch (textureType) { + case "sampler2D": + case "usampler2D": + case "isampler2D": + return "vec2"; + case "sampler3D": + case "usampler3D": + case "isampler3D": + case "samplerCube": + case "usamplerCube": + case "isamplerCube": + case "sampler2DArray": + case "usampler2DArray": + case "isampler2DArray": + case "sampler2DShadow": + return "vec3"; + case "samplerCubeShadow": + case "sampler2DArrayShadow": + return "vec4"; + default: + throw new Error(`Invalid texture type: ${textureType}`); + } } -let cachedUint32ArrayMemory0 = null; -function getUint32ArrayMemory0() { - if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) { - cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer); +function textureReturnType(textureType) { + switch (textureType) { + case "sampler2D": + case "sampler2DArray": + case "sampler3D": + case "samplerCube": + case "sampler2DShadow": + return "vec4"; + case "usampler2D": + case "usampler2DArray": + case "usampler3D": + case "usamplerCube": + return "uvec4"; + case "isampler2D": + case "isampler2DArray": + case "isampler3D": + case "isamplerCube": + return "ivec4"; + case "samplerCubeShadow": + case "sampler2DArrayShadow": + return "float"; + default: + throw new Error(`Invalid texture type: ${textureType}`); } - return cachedUint32ArrayMemory0; } -let cachedUint8ArrayMemory0 = null; -function getUint8ArrayMemory0() { - if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { - cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); +const radians = (degrees2) => new Radians({ degrees: degrees2 }); +const degrees = (radians2) => new Degrees({ radians: radians2 }); +const sin = (radians2) => new Sin({ radians: radians2 }); +const cos = (radians2) => new Cos({ radians: radians2 }); +const tan = (radians2) => new Tan({ radians: radians2 }); +const asin = (sin2) => new Asin({ sin: sin2 }); +const acos = (cos2) => new Acos({ cos: cos2 }); +const atan = (tan2) => new Atan({ tan: tan2 }); +const atan2 = (y, x) => new Atan2({ y, x }); +const sinh = (x) => new Sinh({ x }); +const cosh = (x) => new Cosh({ x }); +const tanh = (x) => new Tanh({ x }); +const asinh = (x) => new Asinh({ x }); +const acosh = (x) => new Acosh({ x }); +const atanh = (x) => new Atanh({ x }); +class Radians extends UnaryOp { + constructor({ degrees: degrees2 }) { + super({ a: degrees2, outTypeFunc: (aType) => aType, outKey: "radians" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.radians} = radians(${inputs.a});` + ]; } - return cachedUint8ArrayMemory0; } -function handleError(f, args) { - try { - return f.apply(this, args); - } catch (e) { - const idx = addToExternrefTable0(e); - wasm.__wbindgen_exn_store(idx); +class Degrees extends UnaryOp { + constructor({ radians: radians2 }) { + super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "degrees" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.degrees} = degrees(${inputs.a});` + ]; } } -function passStringToWasm0(arg, malloc, realloc) { - if (realloc === void 0) { - const buf = cachedTextEncoder.encode(arg); - const ptr2 = malloc(buf.length, 1) >>> 0; - getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf); - WASM_VECTOR_LEN = buf.length; - return ptr2; +class Sin extends UnaryOp { + constructor({ radians: radians2 }) { + super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "sin" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.sin} = sin(${inputs.a});` + ]; } - let len = arg.length; - let ptr = malloc(len, 1) >>> 0; - const mem = getUint8ArrayMemory0(); - let offset = 0; - for (; offset < len; offset++) { - const code = arg.charCodeAt(offset); - if (code > 127) break; - mem[ptr + offset] = code; +} +class Cos extends UnaryOp { + constructor({ radians: radians2 }) { + super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "cos" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.cos} = cos(${inputs.a});` + ]; } - if (offset !== len) { - if (offset !== 0) { - arg = arg.slice(offset); - } - ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; - const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); - const ret = cachedTextEncoder.encodeInto(arg, view); - offset += ret.written; - ptr = realloc(ptr, len, offset, 1) >>> 0; +} +class Tan extends UnaryOp { + constructor({ radians: radians2 }) { + super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "tan" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.tan} = tan(${inputs.a});` + ]; } - WASM_VECTOR_LEN = offset; - return ptr; } -function takeFromExternrefTable0(idx) { - const value = wasm.__wbindgen_externrefs.get(idx); - wasm.__externref_table_dealloc(idx); - return value; +class Asin extends UnaryOp { + constructor({ sin: sin2 }) { + super({ a: sin2, outTypeFunc: (aType) => aType, outKey: "asin" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.asin} = asin(${inputs.a});` + ]; + } } -let cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }); -cachedTextDecoder.decode(); -const MAX_SAFARI_DECODE_BYTES = 2146435072; -let numBytesDecoded = 0; -function decodeText(ptr, len) { - numBytesDecoded += len; - if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) { - cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }); - cachedTextDecoder.decode(); - numBytesDecoded = len; +class Acos extends UnaryOp { + constructor({ cos: cos2 }) { + super({ a: cos2, outTypeFunc: (aType) => aType, outKey: "acos" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.acos} = acos(${inputs.a});` + ]; } - return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); } -const cachedTextEncoder = new TextEncoder(); -if (!("encodeInto" in cachedTextEncoder)) { - cachedTextEncoder.encodeInto = function(arg, view) { - const buf = cachedTextEncoder.encode(arg); - view.set(buf); - return { - read: arg.length, - written: buf.length - }; - }; +class Atan extends UnaryOp { + constructor({ tan: tan2 }) { + super({ a: tan2, outTypeFunc: (aType) => aType, outKey: "atan" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.atan} = atan(${inputs.a});` + ]; + } } -let WASM_VECTOR_LEN = 0; -let wasm; -function __wbg_finalize_init(instance, module2) { - wasm = instance.exports; - cachedDataViewMemory0 = null; - cachedFloat32ArrayMemory0 = null; - cachedUint32ArrayMemory0 = null; - cachedUint8ArrayMemory0 = null; - wasm.__wbindgen_start(); - return wasm; +class Atan2 extends BinaryOp { + constructor({ y, x }) { + super({ + a: y, + b: x, + outTypeFunc: (aType, bType) => aType, + outKey: "atan2" + }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.atan2} = atan2(${inputs.a}, ${inputs.b});` + ]; + } } -async function __wbg_load(module2, imports) { - if (typeof Response === "function" && module2 instanceof Response) { - if (typeof WebAssembly.instantiateStreaming === "function") { - try { - return await WebAssembly.instantiateStreaming(module2, imports); - } catch (e) { - const validResponse = module2.ok && expectedResponseType(module2.type); - if (validResponse && module2.headers.get("Content-Type") !== "application/wasm") { - console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); - } else { - throw e; - } - } - } - const bytes = await module2.arrayBuffer(); - return await WebAssembly.instantiate(bytes, imports); - } else { - const instance = await WebAssembly.instantiate(module2, imports); - if (instance instanceof WebAssembly.Instance) { - return { instance, module: module2 }; - } else { - return instance; - } +class Sinh extends UnaryOp { + constructor({ x }) { + super({ a: x, outTypeFunc: (aType) => aType, outKey: "sinh" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.sinh} = sinh(${inputs.a});` + ]; } - function expectedResponseType(type) { - switch (type) { - case "basic": - case "cors": - case "default": - return true; - } - return false; +} +class Cosh extends UnaryOp { + constructor({ x }) { + super({ a: x, outTypeFunc: (aType) => aType, outKey: "cosh" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.cosh} = cosh(${inputs.a});` + ]; } } -async function __wbg_init(module_or_path) { - if (wasm !== void 0) return wasm; - if (module_or_path !== void 0) { - if (Object.getPrototypeOf(module_or_path) === Object.prototype) { - ({ module_or_path } = module_or_path); - } else { - console.warn("using deprecated parameters for the initialization function; pass a single object instead"); - } +class Tanh extends UnaryOp { + constructor({ x }) { + super({ a: x, outTypeFunc: (aType) => aType, outKey: "tanh" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.tanh} = tanh(${inputs.a});` + ]; } - if (module_or_path === void 0) { - module_or_path = new URL("data:application/wasm;base64,AGFzbQEAAAABlwM3YAN/f38Bf2ACf38Bf2ACf38AYAN/f38AYAF/AGABfwF/YAV/f39/fwBgBH9/f38AYAABb2AAAGACf38Bb2AEf39/fwF/YAZ/f39/f38AYAFvAX9gAX0BfWAFf39/fn8AYAABf2AFf39/f38Bf2ADf39vAGAGf39/f39/AX9gB39/f39/f38AYAV/f35/fwBgBX9/fH9/AGAFf399f38AYAADf39/YANvb28AYANvf28AYANvb28Bf2ADb39/AW9gAX8Bb2ADb39/AGACf28AYAF8AW9gAX4Bb2AKf39/f3t9fX19fwBgB39/f39/f38Bf2AIf397fX1/f38AYAJ+fwBgA39/fgBgAn9+AX9gA39+fgBgBH9+fn8AYAZ/f39+f38AYAZ/f398f38AYAZ/f399f38AYAZ/f39/f30AYA59fX19fX19fX1/b319fwFvYA19fX19fX19fX1/fX1/AW9gAW8Df39/YAp9fX19fX19fX1/AW9gBH9+f38AYAR/fX9/AGAEf3x/fwBgAn19AX1gAXwBfwK7CRgQLi9zcGFya19yc19iZy5qcxpfX3diZ19uZXdfZjNjOWRmNGYzOGYzZjc5OAAIEC4vc3BhcmtfcnNfYmcuanMaX193YmdfbmV3XzRmOWZhZmJiMzkwOWFmNzIACBAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX3NldF82YmU0Mjc2OGM2OTBlMzgwABkQLi9zcGFya19yc19iZy5qcxpfX3diZ19zZXRfNmM2MGIyZThhZDBlOTM4MwAaEC4vc3BhcmtfcnNfYmcuanMdX193YmdfbGVuZ3RoXzBjMzJjYjg1NDNjOGU0YzgADRAuL3NwYXJrX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfM2UwNWViOTU0NTU2NTA0NgASEC4vc3BhcmtfcnNfYmcuanMaX193Ymdfc2V0XzhlZTJkMzRmYWNiODQ2NmUAGxAuL3NwYXJrX3JzX2JnLmpzH19fd2JnX3N1YmFycmF5X2Q1MWU4OTQ1OGIzZmRiZjYAHBAuL3NwYXJrX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF8xZTcwMTc5OGZkY2FhM2I0AA0QLi9zcGFya19yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsX2U0MjI3NWU2MDFlMTRlZWIAEhAuL3NwYXJrX3JzX2JnLmpzJl9fd2JnX25ld193aXRoX2xlbmd0aF8yNmJmZmJlMjM2YmY3M2Y5AB0QLi9zcGFya19yc19iZy5qcx1fX3diZ19sZW5ndGhfZmQ0NjQ2YjQwMTkyNjc4OAANEC4vc3BhcmtfcnNfYmcuanMaX193Ymdfc2V0X2E5OGM4ZGE2NTU3ZTYzZGUAHhAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX25ld18yMjdkN2MwNTQxNGViODYxAAgQLi9zcGFya19yc19iZy5qcxxfX3diZ19zdGFja18zYjBkOTc0YmJmMzFlNDRmAB8QLi9zcGFya19yc19iZy5qcxxfX3diZ19lcnJvcl9hNmZhMjAyYjU4YWExY2QzAAIQLi9zcGFya19yc19iZy5qcxxfX3diZ19FcnJvcl8yZTU5YjFiMzdhOWEzNGMzAAoQLi9zcGFya19yc19iZy5qcydfX3diZ19fX3diaW5kZ2VuX3Rocm93XzgxZmM3NzY3OWFmODNiYzYAAhAuL3NwYXJrX3JzX2JnLmpzH19fd2JpbmRnZW5faW5pdF9leHRlcm5yZWZfdGFibGUACRAuL3NwYXJrX3JzX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAxACAQLi9zcGFya19yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMgAKEC4vc3BhcmtfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDMAChAuL3NwYXJrX3JzX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDA0AAoQLi9zcGFya19yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwNQAhA54CnAIFAAECAQIFAQEGBQAiIwcCAwUBAg4OBAECBQMACwUBBQICAAIFAgQkAgMDAgACAAUCABMBAQkBFAACDwEFBRQOAg8ABQIEJQEDAQICBRAFBQEEBQEPAQEMAgEBBwUBAgEBASYBAQICAgICAQIFBAIBDAYBAgMDJwECBAYCAgMBAQICAQUCASgGAAABBAMDAwMEBgYHAwQABwEDAgADDAQEAQEG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NgIEDAELIAAPCyAAQQhqC98XAhp/AnwjAEGwBGsiAyQAIANCADcDmAEgA0IANwOQASADQgA3A4gBIANCADcDgAEgA0IANwN4IANCADcDcCADQgA3A2ggA0IANwNgIANCADcDWCADQgA3A1AgA0IANwNIIANCADcDQCADQgA3AzggA0IANwMwIANCADcDKCADQgA3AyAgA0IANwMYIANCADcDECADQgA3AwggA0IANwMAIANCADcDuAIgA0IANwOwAiADQgA3A6gCIANCADcDoAIgA0IANwOYAiADQgA3A5ACIANCADcDiAIgA0IANwOAAiADQgA3A/gBIANCADcD8AEgA0IANwPoASADQgA3A+ABIANCADcD2AEgA0IANwPQASADQgA3A8gBIANCADcDwAEgA0IANwO4ASADQgA3A7ABIANCADcDqAEgA0IANwOgASADQgA3A9gDIANCADcD0AMgA0IANwPIAyADQgA3A8ADIANCADcDuAMgA0IANwOwAyADQgA3A6gDIANCADcDoAMgA0IANwOYAyADQgA3A5ADIANCADcDiAMgA0IANwOAAyADQgA3A/gCIANCADcD8AIgA0IANwPoAiADQgA3A+ACIANCADcD2AIgA0IANwPQAiADQgA3A8gCIANCADcDwAIgA0HgA2pBAEHQAPwLAEHQ38EAKAIAIgkhBiACQQNrQRhtIgVBACAFQQBKGyILIQUgC0ECdEHg38EAaiEHA0AgAyAEQQN0aiAFQQBIBHxEAAAAAAAAAAAFIAcoAgC3CzkDACAEIAZJIgoEQCAHQQRqIQcgBUEBaiEFIAQgCmoiBCAGTQ0BCwtBACEFA0BBACEEIANBwAJqIAVBA3RqIB0gACAEQQN0aisDACADIAUgBGtBA3RqKwMAoqA5AwAgBSAJSSIGBEAgBSAGaiIFIAlNDQELC0QAAAAAAADwf0QAAAAAAADgfyACIAtBaGxqIgpBGGsiAkH+D0siEBtEAAAAAAAAAABEAAAAAAAAYAMgAkG5cEkiERtEAAAAAAAA8D8gAkGCeEgiEhsgAkH/B0oiExtB/RcgAiACQf0XTxtB/g9rIApBlwhrIBAbIhVB8GggAiACQfBoTRtBkg9qIApBsQdqIBEbIhYgAiASGyATG0H/B2qtQjSGv6IhHiADQdwDaiIOIAlBAnRqIQ9BLyAKa0Ef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ADYCyAIgAiACQagCajYC0AIgAkHIAmoQSQwQCyABKAIAQdyWwQBBCiABKAIEKAIMEQAADA8LIAEoAgBB5pbBAEEMIAEoAgQoAgwRAAAMDgsgASgCAEHylsEAQQ4gASgCBCgCDBEAAAwNCyABKAIAQYCXwQBBCCABKAIEKAIMEQAADAwLIAEoAgBBiJfBAEEDIAEoAgQoAgwRAAAMCwsgASgCAEGLl8EAQQQgASgCBCgCDBEAAAwKCyABKAIAQY+XwQBBDCABKAIEKAIMEQAADAkLIAEoAgBBm5fBAEEPIAEoAgQoAgwRAAAMCAsgASgCAEGql8EAQQ0gASgCBCgCDBEAAAwHCyABKAIAQbeXwQBBDiABKAIEKAIMEQAADAYLIAEoAgAgACgCBCAAKAIIIAEoAgQoAgwRAAAMBQsgACkDCCIJQv////////8HgyEKIAlC////////////AINC//////////f/AFgEQCAJQjSIpyEAIAlCAFMNAiACQagCagwDC0HUosEAQdeiwQAgCUIAWSIAG0HbosEAIApQIgQbIQNBA0EEIAAbQQMgBBshAAwDCyABKAIAQdqXwQBBBCABKAIEKAIMEQAADAMLIAJBLToAqAJBASEIIAJBqQJqCyEGAn8CQAJAAkACQAJAAkACQAJAIABB/w9xIgBFIApQcUUEQCAAQQJJIApCAFJyIQMgCkKAgICAgICACIQgCiAAGyIJQgKGIQogCUIBgyEPAkACQAJAIABBtQhrQcx3IAAbIgBBAEgEQCACQZACakHQwcAAIAAgAEGFolNsQRR2IABBf0drIgBqIgdBBHQiBGspAwAiCSAKQgKEIgsQngEgAkGAAmpB2MHAACAEaykDACINIAsQngEgAkHwAWogAikDmAIiCyACKQOAAnwiDCACKQOIAiALIAxWrXwgACAHQbHZtR9sQRN2a0H8AGpB/wBxQcAAcyIEELsBIAJBsAFqIAkgCiADQX9zrHwiCxCeASACQaABaiANIAsQngEgAkGQAWogAikDuAEiCyACKQOgAXwiDCACKQOoASALIAxWrXwgBBC7ASACQeABaiAJIAoQngEgAkHQAWogDSAKEJ4BIAJBwAFqIAIpA+gBIgkgAikD0AF8Ig0gAikD2AEgCSANVq18IAQQuwEgAikDwAEhCyACKQOQASEJIAIpA/ABIQwg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QYABcjoAAEEAIQMMBAsgAigCCCIDIAIoAgBGBEAgAkHgmMEAEJQBCyACIANBAWo2AgggAigCBCADaiAGOgAAQQAhAwwDCyAGIAMgA0GcqsEAEM8BAAsgBEEUNgIUIAEgBEEUahCwASEDDAELIAggAyADQZyqwQAQzwEACyAEQSBqJAAgA0UNDgwNCyACKAIAIANGBEAgAkHgl8EAEJQBIAIoAgQhBQsgAiADQQFqNgIIIAMgBWpBIjoAAAwLCyACKAIAIANGBEAgAkHwl8EAEJQBIAIoAgQhBQsgAiADQQFqNgIIIAMgBWpB3AA6AAAMCgsgAigCACADRgRAIAJBgJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQS86AAAMCQsgAigCACADRgRAIAJBkJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQg6AAAMCAsgAigCACADRgRAIAJBoJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQw6AAAMBwsgAigCACADRgRAIAJBsJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQo6AAAMBgsgAigCACADRgRAIAJBwJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQ06AAAMBQsgAigCACADRgRAIAJB0JjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQk6AAAMBAsgAyAEIAZBsKHBABDPAQALIAcoAgwhAwwDCyAHQQQ2AhQgACABIAdBFGoQpAEMBgsgBCAGQYChwQAQsQEACwwBCwsgAEECNgIAIAAgAzYCBAwCCyAAIAM2AgggACABNgIEIABBADYCAAwBCyAAIAM2AgggACABNgIEIABBATYCAAsgB0EgaiQAC68QAwd/An4BeyMAQSBrIgUkAAJAAkAgACgCACICRQRAIAAoAhAiAEUNASAAQbu3wABBARBEIQIMAgsCQAJAAkACQAJAAkACQCAAKAIIIgQgACgCBCIGTwRAIAAoAhAiAkUNASACQZK3wABBEBBERQ0BDAcLIAAgBEEBaiIBNgIIIAVBCGogAiAEai0AACIDEM0BIAUoAggiBwRAIAAoAhAiAEUNCCAAIAcgBSgCDBBEIQIMCQsgACAAKAIMQQFqIgc2AgwgB0H1A08EQCAAKAIQIgIEQCAC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AgBBlObBAEGU5sEAKAIAIABqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAA8LAn9BjObBACgCACICQQEgAEEDdnQiA3FFBEBBjObBACACIANyNgIAIABB+AFxQYTkwQBqIgAMAQsgAEH4AXEiAkGE5MEAaiEAIAJBjOTBAGooAgALIQIgACABNgIIIAIgATYCDCABIAA2AgwgASACNgIIDwsCQAJAIAAgAygCACIDKAIEQXhxRgRAIAMhAgwBCyAAQRkgAkEBdmtBACACQR9HG3QhBANAIAMgBEEddkEEcWoiBSgCECICRQ0CIARBAXQhBCACIQMgAigCBEF4cSAARw0ACwsgAigCCCIAIAE2AgwgAiABNgIIIAFBADYCGCABIAI2AgwgASAANgIIDAELIAVBEGogATYCACABIAM2AhggASABNgIMIAEgATYCCAtBACEBQbTmwQBBtObBACgCAEEBayIANgIAIAANAUH848EAKAIAIgAEQANAIAFBAWohASAAKAIIIgANAAsLQbTmwQBB/x8gASABQf8fTRs2AgAPC0H848EAKAIAIgEEQANAIARBAWohBCABKAIIIgENAAsLQbTmwQBB/x8gBCAEQf8fTRs2AgAgAiADTw0AQazmwQBBfzYCAAsL2AkBBH8jAEFAaiICJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOGAECAwQFBgcICQoLDA0ODxAREhMUFRYXGAALIAEoAgAgACgCBCAAKAIIIAEoAgQoAgwRAAAhAQwYCwJAAkACQAJAIAAtAARBAWsOAwECAwALIAIgACgCCDYCBEEUEBgiAEUNGyAAQRBqQc3UwQAoAAA2AAAgAEG91MEA/QAAAP0LAAAgAkEUNgIQIAIgADYCDCACQRQ2AgggAiACQQRqrUKAgICAgAeENwMgIAIgAkEIaq1CgICAgJAHhDcDGCABKAIAIAEoAgQgAkICNwI0IAJBAzYCLCACQYDYwQA2AiggAiACQRhqNgIwIAJBKGoQSSEBIAIoAggiAEUNGiACKAIMIgRBBGsoAgAiA0F4cSIFQQRBCCADQQNxIgMbIABqSQ0cIANBACAFIABBJ2pLGw0dIAQQLgwaCyACIAAtAAVBAnQiACgC+NxB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/AoAAAsgACACIANqNgIIQQALUAEBfyMAQRBrIgIkACACQQhqIAEgASgCACgCBBECACACIAIoAgggAigCDCgCGBECACACKAIEIQEgACACKAIANgIAIAAgATYCBCACQRBqJAALTwECfyAAKAIEIQIgACgCACEDAkAgACgCCCIALQAARQ0AIANBurPAAEEEIAIoAgwRAABFDQBBAQ8LIAAgAUEKRjoAACADIAEgAigCEBEBAAtKAQJ/IAAgACgCBCIDIAJrNgIEIAAgACgCACACIANLciIENgIAQQEhAyAEBH8gAwUgACgCCCIAKAIAIAEgAiAAKAIEKAIMEQAACwtIAQF/AkAgAUHhAGsiAUH/AXFBGUsEQEEAIQEMAQsgAUECdEH8B3EiAigCwNtBIQEgAigC2NpBIQILIAAgAjYCBCAAIAE2AgALQgEBfyMAQSBrIgMkACADQQA2AhAgA0EBNgIEIANCBDcCCCADIAE2AhwgAyAANgIYIAMgA0EYajYCACADIAIQ2QEAC8kCAAJAIAAgAk0EQCAAIAFNIAEgAktyDQEjAEEwayICJAAgAiABNgIEIAIgADYCACACQQI2AgwgAkG0pMAANgIIIAJCAjcCFCACIAJBBGqtQoCAgIAQhDcDKCACIAKtQoCAgIAQhDcDICACIAJBIGo2AhAgAkEIaiADENkBAAsjAEEwayIBJAAgASACNgIEIAEgADYCACABQQI2AgwgAUHgo8AANgIIIAFCAjcCFCABIAFBBGqtQoCAgIAQhDcDKCABIAGtQoCAgIAQhDcDICABIAFBIGo2AhAgAUEIaiADENkBAAsjAEEwayIAJAAgACACNgIEIAAgATYCACAAQQI2AgwgAEGApMAANgIIIABCAjcCFCAAIABBBGqtQoCAgIAQhDcDKCAAIACtQoCAgIAQhDcDICAAIABBIGo2AhAgAEEIaiADENkBAAs3AAJ/IARBAXEEQCAFuxCOAgwBC0GBCEGACCABLQAAGwshBCACIANBBhBLIAQQ6gEgAEEANgIACzgBAX8jAEEQayICJAAgAkEIaiAAIAAoAgAoAgQRAgAgAigCCCABIAIoAgwoAhARAQAgAkEQaiQACzgAAkAgAkGAgMQARg0AIAAgAiABKAIQEQEARQ0AQQEPCyADRQRAQQAPCyAAIAMgBCABKAIMEQAACzwBAn8gASgCBCECIAEoAgAhA0EIEBgiAUUEQAALIAEgAjYCBCABIAM2AgAgAEGI2cEANgIEIAAgATYCAAs5AQF/IwBBEGsiAyQAIAMgATYCDCADIAA2AgggA0EIakHEscAAIANBDGpBxLHAACACQai0wAAQbwALNwEBfyMAQSBrIgEkACABQQA2AhggAUEBNgIMIAFBxJXAADYCCCABQgQ3AhAgAUEIaiAAENkBAAuUBQIHfwF7EGUiEiAKJgECfyMAQdAAayIOJAAgDkKAgICAwAA3AgQgDkEANgIMIA4gDUEARzoALCAOQYCAgPwDNgIoIA5CgICA/IOAgMA/NwIgIA4gDDgCHCAOIAs4AhggDkKAgICAgICAwD83AhBBrOLBACgCAEUEQBBNCwJAAkACQAJAQbDiwQAoAgBFBEBBsOLBAEF/NgIAAn8gCUUEQEEAIQ1BBAwBC0G84sEAKAIAIRFBuOLBACgCACETIAP9EyAE/SABIRVBACENA0AgEiUBIA1BAnQgDUGAgAQgCSANayIPIA9BgIAETxsiD2oiDUECdBAHIQoQZSIQIAomASAPQQJ0Ig8gEUsNAyAOIBAlARAIIhQ2AjAgDiAPNgI0IA8gFEcNBiATIA8gECUBEAkgDiACOAJAIA4gATgCPCAOIAA4AjggEyAPIA5BBGogDkE4aiAVIAUgBiAHIAggDkEQahAkIBBBhAhPBEAgEBC3AQsgCSANSw0AC0Gw4sEAKAIAQQFqIQ8gDigCDCENIA4oAggLIQlBsOLBACAPNgIAIA0QCiEKEGUiDyAKJgEgDyUBEAshECAOIA02AjQgDiAQNgIwIA0gEEcNBCAPJQEgCSANEAwgDigCBCINBEAgCUEEaygCACIQQXhxIhEgDUECdCINQQRBCCAQQQNxIhAbakkNAyAQQQAgESANQSdqSxsNBCAJEC4LIBJBhAhPBEAgEhC3AQsgDkHQAGokACAPDAULQfCSwAAQqwIAC0EAIA8gEUH4k8AAEM8BAAtBqNnBAEEuQdjZwQAQzgEAC0Ho2cEAQS5BmNrBABDOAQALIA5BADYCOCAOQTBqIA5BNGogDkE4ahDUAQALIgklASAJELcBC8ECAQR/IwBBEGsiASQAQdjiwQAtAABBA0cEQCABQQE6AA8gAUEPaiECIwBBIGsiACQAAkACQAJAAkACQAJAAkACQAJAQdjiwQAtAABBAWsOAwQDAQALQdjiwQBBAjoAACACLQAAIAJBADoAAEUNBEHE5sEAKAIAQf////8HcQRAQbzmwQAoAgANBgtByObBACgCAA0BQdjiwQBBAzoAAEHM5sEAQQE2AgALIABBIGokAAwGCwALIABBADYCGCAAQQE2AgwgAEGM1cEANgIIDAMLIABBADYCGCAAQQE2AgwgAEGsgMAANgIIDAILQeCSwAAQngIACyAAQQA2AhggAEEBNgIMIABBvNfBADYCCCAAQgQ3AhAgAEEIakHE18EAENkBAAsgAEIENwIQIABBCGpBqJPAABDZAQALCyABQRBqJAALLQACQCADaUEBRyABQYCAgIB4IANrS3JFBEAgACABIAMgAhA0IgANAQsACyAAC/wBAgJ/AX4jAEEQayICJAAgAkEBOwEMIAIgATYCCCACIAA2AgQjAEEQayIBJAAgAkEEaiIAKQIAIQQgASAANgIMIAEgBDcCBCMAQRBrIgAkACABQQRqIgEoAgAiAigCDCEDAkACQAJAAkAgAigCBA4CAAECCyADDQFBASECQQAhAwwCCyADDQAgAigCACICKAIEIQMgAigCACECDAELIABBgICAgHg2AgAgACABNgIMIABB7NbBACABKAIEIAEoAggiAC0ACCAALQAJEJIBAAsgACADNgIEIAAgAjYCACAAQdDWwQAgASgCBCABKAIIIgAtAAggAC0ACRCSAQALqQICAX8BbwJ/IwBBMGsiDSQAQaziwQAoAgBFBEAQTQsCQEGw4sEAKAIARQRAQbDiwQBBfzYCAEHU4sEAQQA2AgAgDSAMQQBHOgAgIA1BgICA/AM2AhwgDUKAgID8g4CAwD83AhQgDSALOAIQIA0gCjgCDCANQoCAgICAgIDAPzcCBCAJQQJ0IglBvOLBACgCACIMSw0BQbjiwQAoAgAgDSACOAIsIA0gATgCKCANIAA4AiQgCUHM4sEAIA1BJGogA/0TIAT9IAEgBSAGIAcgCCANQQRqECRB0OLBACgCAEHU4sEAKAIAEO8BQbDiwQBBsOLBACgCAEEBajYCACANQTBqJAAMAgtB8JLAABCrAgALQQAgCSAMQeiTwAAQzwEACyIJJQEgCRC3AQvUVQMefwR+AXwjAEEQayIaJAAQZSIbIAAmASMAQYAIayIBJAACQAJAAkACQAJAAkACQAJ8AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBsQrgIiFUEATgRAAkAgFUUEQEEBIRcMAQsgFRAYIhdFDQwLIBsQrgIhAyAbEK4CIQsgASADNgLABCABIAs2AtADIAMgC0YEQCAXIAMgGyUBEAUgFUEITwRAIAEgFygAACIDNgKoAiADQdKCkYIDRwRAIAFBATYC/AUgAUGgzMEANgL4BSABQQE2AuwFIAFBmMzBADYC6AUgAUEBNgL0BSABIAFBqAJqrUKAgICA0ACENwPABCABIAFBwARqNgLwBSABQawCaiEDIAFB6AVqIgIoAgwhBAJAAkACQAJAAkACQAJAAkAgAigCBA4CAAECCyAEDQFBASEGQQAhBEEBIQIMAwsgBEUNAQsgAyACEFEMBAsgAigCACICKAIEIgRBAEgNASACKAIAIQYgBEUEQEEBIQJBACEEDAELIAQQGCICRQ0CCyAEBEAgAiAGIAT8CgAACyADIAQ2AgggAyACNgIEIAMgBDYCAAwCC0GY2cEAENUBCwALQQMhBCMAQSBrIgYkACAGQQhqEO0BQSgQGCICRQRAAAsgAkHAycEANgIAIAIgBikCCDcCBCACIAMpAgA3AhwgAkEMaiAGQRBq/QACAP0LAgAgAkEkaiADQQhqKAIANgIAIAZBIGokAEQAAAAAAAAAAAwWCyAXKAAEIhNBCGoiAiAVSwRAQQIhBEQAAAAAAAAAAAwWCyATQXhJBEBBACECIAFBADYCuAMgASATNgK0AyABIBdBCGoiBDYCsAMgAUGAAToAvAMgAUEANgKsAyABQoCAgIAQNwKkAwJAIAFByABqIAQgEyATBH8DQCACIARqLQAAIgNBCWsiC0EXS0EBIAt0QZOAgARxRXINAiATIAJBAWoiAkcNAAsgASATNgK4AyATQQFqBUEBCyIDIBMgAyATSRsQJiABKAJMIQsgASgCSCEDQRQQGCICRQ0PIAIgAzYCDCACQQU2AgAgAiALNgIQDBELIAEgAjYCuAMCQCADQdsARwRAIANB+wBGDQEgAUGkA2ogAUH/B2pBkMvBABAjIQIMEQsgAUH/ADoAvAMgASACQQFqNgK4AyABQQE6AIAHIAEgAUGkA2o2AvwGIAFB6AVqIAFB/AZqEEUgAS0A6AVBAUYEQCABKALsBSECQQIhBAwOCwJAAkACQAJAAkACQAJAAkACQAJAAkAgAS0A6QVBAUYEQCABQdgAaiABKAL8BhBDIAEoAlwhCyABKAJYQQFxBEAgCyECQQIhBAwaCyABQegFaiABQfwGahBFIAEtAOgFQQFGBEAgASgC7AUhAkECIQQMGgsgAS0A6QVBAUcNAyABKAL8BhAiIgINASABQegFaiABQfwGahBFIAEtAOgFQQFHDQIgASgC7AUhAkECIQQMGQtBAEGcwsEAEJ0BIQILQQIhBAwXCyABLQDpBUEBRw0CIAFB6AVqIAEoAvwGEEggASgC6AVBAUcNASABKALsBSECQQIhBAwWC0EBQZzCwQAQnQEhAkECIQQMFQsgASkD8AUhICABQegFaiABQfwGahBFIAEtAOgFQQFGBEAgASgC7AUhAkECIQQMFQsgAS0A6QVBAUcNAiABQegFaiABKAL8BhAwIAEoAugFIgpBAkcNASABKALsBSECQQIhBAwUC0ECQZzCwQAQnQEhAkECIQQMEwsgASgC7AUhDiABQegFaiICIAFB/AZqEEUgAS0A6AUNESABLQDpBUEBRw0CIAIgASgC/AYQJyABLQDoBUEBRw0BIAEoAuwFIQJBAiEEDBILQQNBnMLBABCdASECQQIhBAwRCyABLQDpBSEDIAFB6AVqIAFB/AZqEEUgAS0A6AVBAUYEQCABKALsBSECQQIhBAwRCyABLQDpBUEBRw0BIAFB6AVqIAEoAvwGEDBBAiEEIAEoAugFIgZBAkYEQCABKALsBSECDBELIAEoAuwFIQ8gAUHoBWohByMAQRBrIgIkACACIAFB/AZqIggQRQJAIAItAABBAUYEQCAHIAIoAgQ2AgggB0ICNwMADAELIAItAAFFBEAgB0IANwMADAELIAIgCCgCABBIIAIoAgBBAUYEQCAHIAIoAgQ2AgggB0ICNwMADAELIAcgAikDCDcDCCAHQgE3AwALIAJBEGokACABKALwBSEHIAEpA+gFIh9CAlINAiAHIQIMEAtBBEGcwsEAEJ0BIQJBAiEEDA8LQQVBnMLBABCdASECQQIhBAwOCwJAAkAgH6dBAXEEQCABNQL0BSEfIAFB6AVqIQkjAEEQayICJAAgAkEEaiABQfwGaiIIEEUCQCACLQAEQQFGBEAgCSACKAIINgIEIAlBgYCAgHg2AgAMAQsgAi0ABUUEQCAJQYCAgIB4NgIADAELIAJBBGogCCgCABAbIAIoAgRBgICAgHhGBEAgCSACKAIINgIEIAlBgYCAgHg2AgAMAQsgCSACKQIENwIAIAlBCGogAkEMaigCADYCAAsgAkEQaiQAIAEoAuwFIQIgASgC6AUiCUGAgICAeGsOAgEQAgtBBkGcwsEAEJ0BIQIMDwtBB0GcwsEAEJ0BIQIMDgsgASABKALwBTYCjAcgASACNgKIByABIAk2AoQHIAFB6AVqIQIjAEFAaiIJJAAgCUEEaiABQfwGaiIIEEUCQCAJLQAEQQFGBEAgAiAJKAIINgIEIAJBBDYCAAwBCyAJLQAFRQRAIAJBAzYCAAwBCyAJQQRqIAgoAgAQHSAJKAIEQQNGBEAgAiAJKAIINgIEIAJBBDYCAAwBCyACIAn9AAIE/QsCACACQThqIAlBPGooAgA2AgAgAkEwaiAJQTRqKQIANwIAIAJBIGogCUEkav0AAgD9CwIAIAJBEGogCUEUav0AAgD9CwIACyAJQUBrJAAgASgC7AUhCSABKALoBSIRQQRGDQogAUHAB2ogAUGgBmooAgA2AgAgAUGwB2ogAUGQBmr9AAIA/QsDACABQaAHaiABQYAGav0AAgD9CwMAIAEgAf0AAvAF/QsDkAcCQAJAAkACQCARQQNHBEAjAEEQayINJAAgDUEIaiAIEEUCQCANLQAIQQFGBEAgAiANKAIMNgIEIAJBAzYCAAwBCyANLQAJRQRAIAJBAjYCAAwBCyANQQhqIAgoAgAQWCANKAIIIhJBAkYEQCACIA0oAgw2AgQgAkEDNgIADAELIAIgDSgCDDYCBCACIBI2AgALIA1BEGokACABKALsBSINIQIgASgC6AUiEkECaw4CAhABC0EIQZzCwQAQnQEhAgwPCyABQegFaiEFIwBBEGsiAiQAIAJBBGogAUH8BmoiCBBFAkAgAi0ABEEBRgRAIAUgAigCCDYCBCAFQYKAgIB4NgIADAELIAItAAVFBEAgBUGBgICAeDYCAAwBCyACQQRqIAgoAgAQOyACKAIEQYGAgIB4RgRAIAUgAigCCDYCBCAFQYKAgIB4NgIADAELIAUgAikCBDcCACAFQQhqIAJBDGooAgA2AgALIAJBEGokACABKALsBSECIAEoAugFIgVB/////wdqDgICDgELQQlBnMLBABCdASECDA0LIAetIB9CIIaEIR8gASgC8AUhDCABQagFaiABQYwHaigCADYCACABQcAFaiABQaAHav0AAwD9CwMAIAFB0AVqIAFBsAdq/QADAP0LAwAgAUHgBWogAUHAB2ooAgA2AgAgASABKQKEBzcDoAUgASAB/QADkAf9CwOwBSACIRAgDiECIAohBAwOC0EKQZzCwQAQnQEhAgwLCyABQf8AOgC8AyABIAJBAWo2ArgDIAFBAToAiAcgASABQaQDajYChAcgAUHwBWohGEGBgICAeCERQYCAgIB4IQZBAiEWQQMhDkECIRRBAyEZQQIhHANAIAYhCSAEIQ8gBSELIAFB6AVqIgMgAUGEB2oQOCABLQDoBUEBRg0FAn8CQAJAAkACQAJAAkAgAS0A6QVBAUYEQCABKAKEByIIQQA2AgggCCAIKAIUQQFqNgIUIAMgCEEMaiAIECggASgC7AUhAyABKALoBUECRg0OAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKALwBUEEaw4KAwAFARoEGgYaAhoLIANBscHBAEEFEMYBRQ0IIANBtsHBAEEFEMYBDRkgHEECRg0JQbbBwQBBBRC4ASEDDCELIANBpsHBAEEHEMYBRQ0FIANBu8HBAEEHEMYBRQ0JIANB9sHBAEEHEMYBDRggEUGBgICAeEYNEUH2wcEAQQcQuAEhAiAJIQcgEUGAgICAeHJBgICAgHhGDSIgECARELwBDCILIANBy8HBAEENEMYBRQ0KIANB3sHBAEENEMYBDRcgDkEDRg0MQd7BwQBBDRC4ASEDDB8LIAMoAABB9PLBqwZGDQQMFgsgA0HCwcEAQQkQxgENFSAUQQJGDQdBwsHBAEEJELgBIQMMHQsgA0HYwcEAQQYQxgENFCAJQYCAgIB4Rg0IQdjBwQBBBhC4ASEDDBwLIANB68HBAEELEMYBDRMgFkECRg0JQevBwQBBCxC4ASEDDBsLIAcEQEGmwcEAQQcQuAEhAwwbCyAIKAIMIQQCfwJAAkACQCAIKAIUIgMgCCgCECIFSQRAA0ACQCADIARqLQAAQQlrDjIAAAMDAAMDAwMDAwMDAwMDAwMDAwMDAwADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBQMLIAggA0EBaiIDNgIUIAMgBUcNAAsgBSEDCyABQegAaiAEIAUgA0EBaiIDIAUgAyAFSRsQJiABKAJsIQQgASgCaCEDQRQQGCIKRQ0nIApBAzYCAAwBCyABQeAAaiAEIAUgA0EBaiIDIAUgAyAFSRsQJiABKAJkIQQgASgCYCEDQRQQGCIKRQ0mIApBBjYCAAsgCiADNgIMIAogBDYCEEEBDAELIAggA0EBajYCFCABQfAAaiAIEEMgASgCdCEKIAEoAnALQQEhByALIQUgDyEEIAkhBkEBcUUNFCAKIQMMGgsgHQ0MIAgoAgwhBgJAAkAgCCgCFCIDIAgoAhAiBUkEQANAAkAgAyAGai0AAEEJaw4yAAADAwADAwMDAwMDAwMDAwMDAwMDAwMAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIDCyAIIANBAWoiAzYCFCADIAVHDQALIAUhAwsgAUGAAWogBiAFIANBAWoiAyAFIAMgBUkbECYgASgChAEhAiABKAKAASEEQRQQGCIDRQ0kIANBAzYCAAwBCyABQfgAaiAGIAUgA0EBaiIDIAUgAyAFSRsQJiABKAJ8IQIgASgCeCEEQRQQGCIDRQ0jIANBBjYCAAsgAyAENgIMIAMgAjYCEAwZCyAhUEUEQEGxwcEAQQUQuAEhAwwZCyABQegFaiAIEH0gASkD8AUhH0IBISEgASgC6AVBAUcNEgwXCyABQegFaiAIEH4gASgC7AUhAiABKALoBSIcQQJHDREgAiEDDBcLIBlBA0cEQEG7wcEAQQcQuAEhAwwXCyABQegFaiAIEH8gAS0A6QUhGSABLQDoBUEBRw0QDBULIAFB6AVqIAgQfiABKALsBSENIAEoAugFIhRBAkcNDyANIQMMFQsgIlBFBEBBy8HBAEENELgBIQMMFQsgAUHoBWogCBB9IAEpA/AFISBCASEiIAEoAugFQQFHDQ4MEwsgCCgCDCEGAkACQAJAAkAgCCgCFCIDIAgoAhAiBUkEQANAAkAgAyAGai0AAEEJaw4yAAADAwADAwMDAwMDAwMDAwMDAwMDAwMAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwUDCyAIIANBAWoiAzYCFCADIAVHDQALIAUhAwsgAUGgAWogBiAFIANBAWoiAyAFIAMgBUkbECYgASgCpAEhAiABKAKgASEDQRQQGCIERQ0gIARBAzYCAAwBCyABQZgBaiAGIAUgA0EBaiIDIAUgAyAFSRsQJiABKAKcASECIAEoApgBIQNBFBAYIgRFDR8gBEEGNgIACyAEIAM2AgwgBCACNgIQDAELIAggA0EBajYCFCABQegFaiAIEBsgASgC8AUhBSABKALsBSEEIAEoAugFIgZBgICAgHhHDQ4LQYCAgIB4IQcgBCEDDBQLIAgoAgwhBgJAAkAgCCgCFCIDIAgoAhAiBUkEQANAAkAgAyAGai0AAEEJaw4yAAADAwADAwMDAwMDAwMDAwMDAwMDAwMAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQDCyAIIANBAWoiAzYCFCADIAVHDQALIAUhAwsgAUGQAWogBiAFIANBAWoiAyAFIAMgBUkbECYgASgClAEhAiABKAKQASEEQRQQGCIDRQ0dIANBAzYCAAwLCyABQYgBaiAGIAUgA0EBaiIDIAUgAyAFSRsQJiABKAKMASECIAEoAogBIQRBFBAYIgNFDRwgA0EGNgIADAoLIAggA0EBajYCFCABQegFaiAIEB0gASgC7AUhDCABKALoBSIOQQNHDQEgDCEDDBILIAgoAgwhBgJAAkACQCAIKAIUIgMgCCgCECIFSQRAA0ACQCADIAZqLQAAQQlrDjIAAAMDAAMDAwMDAwMDAwMDAwMDAwMDAwADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBQMLIAggA0EBaiIDNgIUIAMgBUcNAAsgBSEDCyABQbABaiAGIAUgA0EBaiIDIAUgAyAFSRsQJiABKAK0ASECIAEoArABIQRBFBAYIgNFDR0gA0EDNgIADAELIAFBqAFqIAYgBSADQQFqIgMgBSADIAVJGxAmIAEoAqwBIQIgASgCqAEhBEEUEBgiA0UNHCADQQY2AgALIAMgBDYCDCADIAI2AhAMEgsgCCADQQFqNgIUIAFB6AVqIAgQWCABKALsBSESIAEoAugFIhZBAkcNASASIQMMEQsgAUHAB2ogGEEwaigCADYCACABQbAHaiAYQSBq/QACAP0LAwAgAUGgB2ogGEEQav0AAgD9CwMAIAEgGP0AAgD9CwOQBwsgCyEFIA8hBCAJIQYMCQsgAUHoBWogCBCAASABKALwBSEeIAEoAuwFIRAgASgC6AUiEUGBgICAeEcNCCAQIQIgBiEHDBALIAdBAXFFBEBBpsHBAEEHELkBIQMMDgsgHUUNAiAhUARAQbHBwQBBBRC5ASEDDA4LICJQBEBBy8HBAEENELkBIQMMDgtBgICAgHghByAJQYCAgIB4Rg0DQQIhAyAOQQNHBEAgAUH4B2ogAUHAB2ooAgA2AgAgAUHoB2ogAUGwB2r9AAIA/QsDACABQdgHaiABQaAHav0AAgD9CwMAIAEgAf0AApAH/QsDyAcgDiEDCyAUQQAgFEECRxshBiAcQQAgHEECRxshBEECIBkgGUEDRhshB0GAgICAeCARIBFBgYCAgHhGGyEFIBZBACAWQQJHGyEUDBALQa3BwQBBBBC4ASEDDAwLQQEhHSAIIANBAWo2AhQgCBAiDAQLQa3BwQBBBBC5ASEDDAoLQdjBwQBBBhC5ASEDDAoLIAMgBDYCDCADIAI2AhAMCAsgCBAeCyEDIAshBSAPIQQgCSEGIANFDQALDAULQQggAiAVQfDLwQAQzwEAC0GBCCEDDBULIAFBADYC6AUgAUHQA2ogAUHABGogAUHoBWoQ1AEAC0GotMAAENUBDAoLIAEoAuwFIQMLIAkhBwsgEUUgEUGCgICAeEhyRQRAIBAgERC8AQsgAyECC0ECIQQCQCAHQYCAgIB4Rg0AIAsEQCAPQSRqIQMDQCADQQRrKAIAIgZBgICAgHhyQYCAgIB4RwRAIAMoAgAiEEEEaygCACIFQXhxIgpBBEEIIAVBA3EiBRsgBmpJDRcgBUEAIAogBkEnaksbDRggEBAuCyADQTBqIQMgC0EBayILDQALCyAHRQ0AIA9BBGsoAgAiC0F4cSIDIAdBMGwiBkEEQQggC0EDcSILG3JJDRQgC0EAIAMgBkEnaksbDRUgDxAuCwsgASABLQC8A0EBajoAvAMgAUGkA2oQZiEOIAFBqAZqIAFB2Adq/QADAP0LAwAgAUG4BmogAUHoB2r9AAMA/QsDACABQcgGaiABQfgHaigCADYCACABIAw2ApQGIAEgAzYCkAYgASAgNwOIBiABIB83A4AGIAEgEjYC/AUgASAUNgL4BSABIA02AvQFIAEgBjYC8AUgASACNgLsBSABIAc6AOgGIAEgDjYC8AYgASAKNgLkBiABIB42AuAGIAEgEDYC3AYgASAFNgLYBiABIAs2AtQGIAEgDzYC0AYgASAJNgLMBiABIAH9AAPIB/0LA5gGIAEgBDYC6AUCQAJAIARBAkcEQCAODQEgAUHABGogAUHwBWpB3AD8CgAAIAEgAUHgBmr9AAMA/QsDsAQMBwsgDg0BQQIhBAwGCyALBEAgD0EkaiECA0AgAkEEaygCACIDQYCAgIB4ckGAgICAeEcEQCACKAIAIgRBBGsoAgAiBkF4cSIHQQRBCCAGQQNxIgYbIANqSQ0WIAZBACAHIANBJ2pLGw0XIAQQLgsgAkEwaiECIAtBAWsiCw0ACwsgCQRAIA8gCUEwbBC8AQtBAiEEIAVBgICAgHhyQYCAgIB4RwRAIBAgBRC8AQsgDiECDAULIAFB8AZqEF1BAiEEDAQLIAkhAgsgAUGEB2oiDigCBCEKIA4oAggiCARAIApBJGohBwNAIAdBBGsoAgAiFEGAgICAeHJBgICAgHhHBEAgBygCACIYQQRrKAIAIhZBeHEiGUEEQQggFkEDcSIWGyAUakkNEyAWQQAgGSAUQSdqSxsNFCAYEC4LIAdBMGohByAIQQFrIggNAAsLIA4oAgAiBwRAIApBBGsoAgAiDkF4cSIIIAdBMGwiB0EEQQggDkEDcSIOG3JJDREgDkEAIAggB0EnaksbDRIgChAuCwwBCyABKALsBSECQQIhBAsgASABLQC8A0EBajoAvAMgAUGkA2oQRyEHIAFBqAZqIAFBwAVq/QADAP0LAwAgAUG4BmogAUHQBWr9AAMA/QsDACABQcgGaiABQeAFaigCADYCACABQdQGaiABQagFaigCADYCACABIAk2ApQGIAEgETYCkAYgASAfNwOIBiABICA3A4AGIAEgDTYC/AUgASASNgL4BSABIA82AvQFIAEgBjYC8AUgASACNgLsBSABIAH9AAOwBf0LA5gGIAEgASkDoAU3AswGIAEgBDYC6AUgASAHNgLwBiABIAM6AOgGIAEgCzYC5AYgASAMNgLgBiABIBA2AtwGIAEgBTYC2AYCQAJAIARBAkcEQCAHDQEgAUHABGogAUHwBWpB3AD8CgAAIAEgAUHgBmr9AAMA/QsDsAQgASgC1AYhCyABKALQBiEPIAEoAswGIQkMAwsgBw0BQQIhBAwCCyABKALQBiEJAkAgASgC1AYiCwRAIAlBJGohAgNAIAJBBGsoAgAiA0GAgICAeHJBgICAgHhHBEAgAigCACIEQQRrKAIAIgZBeHEiD0EEQQggBkEDcSIGGyADakkNEyAGQQAgDyADQSdqSxsNAyAEEC4LIAJBMGohAiALQQFrIgsNAAsLIAEoAswGIgMEQCAJIANBMGwQvAELQQIhBCAFQYCAgIB4ckGAgICAeEcEQCAQIAUQvAELIAchAgwCCwwQCyABQfAGahBdQQIhBAsgBEECRg0BIAFB0ANqIAFBwARqQdwA/AoAACABIAH9AAOwBP0LA8ADAkAgASgCuAMiAyABKAK0AyIGSQRAIAEoArADIQcDQCADIAdqLQAAQQlrIgpBF0tBASAKdEGTgIAEcUVyDQIgBiADQQFqIgNHDQALIAEgBjYCuAMLIAFByAJqIAFB0ANqQdwA/AoAACABIAH9AAPAA/0LA7gCIAEoAqQDIgMNBQwGCyABIAM2ArgDIAFB0ABqIAcgBiADQQFqIgMgBiADIAZJGxAmIAEoAlQhAyABKAJQIQRBFBAYIgJFDQAgAiAENgIMIAJBFjYCACACIAM2AhAgCwRAIA9BJGohBANAIARBBGsoAgAiA0GAgICAeHJBgICAgHhHBEAgBCgCACIGQQRrKAIAIgdBeHEiCkEEQQggB0EDcSIHGyADakkNECAHQQAgCiADQSdqSxsNESAGEC4LIARBMGohBCALQQFrIgsNAAsLIAkEQCAPIAlBMGwQvAELIAVBgICAgHhyQYCAgIB4Rg0DIBAgBRC8AQwDCwALIAIgAUGkA2oQigEhAgsgAUHIAmogAUHQA2pB3AD8CgAAIAEgAf0AA8AD/QsDuAILIAEoAqQDIgNFDQJBAiEECyABKAKoAyIGQQRrKAIAIgdBeHEiCkEEQQggB0EDcSIHGyADakkNCCAHQQAgCiADQSdqSxsNCSAGEC4LIARBAkcNAQtBAyEEIwBBIGsiBiQAIAZBCGoQ7QFBIBAYIgNFBEAACyADQaTJwQA2AgAgAyAGKQIINwIEIAMgAjYCHCADQQxqIAZBEGr9AAIA/QsCACAGQSBqJAAgAyECRAAAAAAAAAAADAELIAFByAFqIAFByAJqQdwA/AoAACABIAH9AAO4Av0LA7gBIBNBB2pBeHFBCGq4CyEjAkACQCAEQQNGBEAgAUEANgLIBCABQoCAgIAQNwLABCABIAIgAigCACgCBBECACABIAFB0ANqrUKAgICA4ACENwPIAiABIAEpAwA3AtADIAFCATcC9AUgAUEBNgLsBSABQdjMwQA2AugFIAEgAUHIAmo2AvAFIAFBwARqQYCTwAAgAUHoBWoQSQ0GIAEoAsAEIQUgASgCxAQiBCABKALIBBDxASEDIAUEQCAEQQRrKAIAIglBeHEiC0EEQQggCUEDcSIJGyAFakkNCCAJQQAgCyAFQSdqSxsNCSAEEC4LIAIgAigCACgCABEEAAwBCyABQcAEaiIGIAFByAFqQdwA/AoAACABIAH9AAO4Af0LA9ADQYEIIQMgBEECRg0CIAEgAjYC7AUgASAENgLoBSABQfAFaiAGQdwA/AoAACABIBA2AtwGIAEgBTYC2AYgASALNgLUBiABIA82AtAGIAEgCTYCzAYgASAB/QAD0AP9CwPgBhCSAiEDQbiTwABBBBDxASEGIAFBADYCyAIgAUHoBmotAAAhByABKALwBSEKIAEoApAGIREgASgC+AUhExCSAiENIAEoAuQGuBCOAiEMIA1BpsHBAEEHEEsgDBDqAUHGwsEAQQYQSyEMIA1BrcHBAEEEEEsgDBDqASABQUBrQQAgASkDgAYQegJAAkACQAJAAkACQAJ/IAEoAkQiDCABKAJAQQFxDQAaIA1BscHBAEEFEEsgDBDqASAEBEAgAUE4akEAIAKtEHogASgCPCICIAEoAjhBAXENARogDUG2wcEAQQUQSyACEOoBCyAHQQJHBEAgDUG7wcEAQQcQS0GCCEGDCCAHQQFxGxDqAQsgCgRAIAFBMGpBACABNQL0BRB6IAEoAjQiAiABKAIwQQFxDQEaIA1BwsHBAEEJEEsgAhDqAQsgAUEoakEAIAEpA4gGEHogASgCLCICIAEoAihBAXENABogDUHLwcEAQQ0QSyACEOoBIAFBIGohCCABQcgCaiEMIA8hBEEAIQ4jAEEgayIKJAAQACEAEGUiByAAJgECQAJAIAsiAgRAIAQgAkEwbGohFCAMQQJqIRIDQCAEQSBqKAIAIARBCGooAgAgBCgCABCSAiEMIApBGGogEi0AACAEQRBqKQMAEHogCigCHCECIAooAhhBAXENAiAMQejCwQBBBhBLIAIQ6gEgCkEQaiASLQAAIARBGGopAwAQeiAKKAIUIQIgCigCEEEBcQ0CIAxB7sLBAEEFEEsgAhDqAQRAIApBCGogEi0AACAEQQRqNQIAEHogCigCDCECIAooAghBAXENAyAMQfPCwQBBBBBLIAIQ6gELBEAgCiASLQAAIARBDGo1AgAQeiAKKAIEIQIgCigCAEEBcQ0DIAxBscHBAEEFEEsgAhDqAQtBgICAgHhHBEAgBEEkaigCACAEQShqKAIAEPEBIQIgDEH3wsEAQQgQSyACEOoBCyAHJQEgDiAMJQEgDBC3ARADIA5BAWohDiAEQTBqIgQgFEcNAAsLIA1B2MHBAEEGEEsgBxDqAUEAIQQMAQsgDEGECE8EQCAMELcBC0EBIQQgB0GECEkNACAHELcBCyAIIAI2AgQgCCAENgIAIApBIGokACABKAIgQQFxBEAgASgCJAwBCwJAIBFBAkYNACABQRhqIQ4gAUHIAmohByMAQRBrIgokAAJAAkACQCABQZAGaiIEKAIAIgxBAkcEQBCSAiECAn8gDEEBcQRAIAQqAgS7EI4CDAELQYEIQYAIIActAAAbCyEMIAJB38PBAEEGEEsgDBDqAQJ/IAQoAghBAUYEQCAEKgIMuxCOAgwBC0GBCEGACCAHLQAAGwshDCACQeXDwQBBBhBLIAwQ6gECfyAEKAIQQQFGBEAgBCoCFLsQjgIMAQtBgQhBgAggBy0AABsLIQwgAkHrw8EAQQoQSyAMEOoBAn8gBCgCGEEBRgRAIAQqAhy7EI4CDAELQYEIQYAIIActAAAbCyEMIAJB9cPBAEEKEEsgDBDqAQJ/IAQoAiBBAUYEQCAEKgIkuxCOAgwBC0GBCEGACCAHLQAAGwshDCACQf/DwQBBBhBLIAwQ6gEgCkEIaiAHIAJBhcTBACAEKAIoIAQqAiwQ0AFBASEMAn8gCigCCEEBcQRAIAooAgwMAQsgCiAHIAJBi8TBACAEKAIwIAQqAjQQ0AEgCigCAEEBcUUNAiAKKAIECyEEIAJBhAhJDQMgAhC3AQwDC0GBCEGACCAHLQAAGyECDAELIActAAAhDCAELQA4IQcgAkGRxMEAQQoQS0GBCEGACCAMQQFxG0GCCEGDCCAHQQFxGyAHQQJGGxDqAQsgDUHewcEAQQ0QSyACEOoBQQAhDAsgDiAENgIEIA4gDDYCACAKQRBqJAAgASgCGEEBcUUNACABKAIcDAELAkAgE0UNACABKAL8BbgQjgIhAiANQevBwQBBCxBLIAIQ6gEgAUEQakEANgIAIAEoAhBBAXFFDQAgASgCFAwBCyAFQYCAgIB4Rg0BIAFBCGogAUHIAmohBwJ/IAFB2AZqIgIoAgBBgICAgHhHBEAgAigCBCACKAIIEPEBDAELQYEIQYAIIActAAAbCyECIA1B9sHBAEEHEEsgAhDqAUEANgIAIAEoAghBAXFFDQEgASgCDAshCiANQYQITw0BDAILIAMgBiANEJMCQdDmwQAtAABFDQJB0ObBAEEAOgAAQdTmwQAoAgAhCkHU5sEAQQA2AgAgDUGECEkNAQsgDRC3AQsgBkGDCEsNAQwCC0HU5sEAQQA2AgBB0ObBAEEAOgAAIA1BhAhPBEAgDRC3AQsgBkGECE8EQCAGELcBCyADQbyTwABBCxDxASIGICMQjgIiAhCTAkHQ5sEALQAARQ0DQdDmwQBBADoAAEHU5sEAKAIAIQpB1ObBAEEANgIAIAJBhAhPBEAgAhC3AQsgBkGDCE0NAQsgBhC3AQsgA0GECE8EQCADELcBCyALBEAgD0EkaiECA0AgAkEEaygCACIDQYCAgIB4ckGAgICAeEcEQCACKAIAIgRBBGsoAgAiBkF4cSIHQQRBCCAGQQNxIgYbIANqSQ0JIAZBACAHIANBJ2pLGw0KIAQQLgsgAkEwaiECIAtBAWsiCw0ACwsgCQRAIA9BBGsoAgAiA0F4cSICIAlBMGwiBEEEQQggA0EDcSIDG3JJDQcgA0EAIAIgBEEnaksbDQggDxAuCyAFQYCAgIB4ckGAgICAeEcEQCAQQQRrKAIAIgNBeHEiAkEEQQggA0EDcSIDGyAFakkNByADQQAgAiAFQSdqSxsNCCAQEC4LIAohAwsgF0EEaygCACICQXhxIgVBBEEIIAJBA3EiAhsgFWpJDQUgAkEAIAUgFUEnaksbDQYgFxAuQQEhAiAbQYQITw0CDAMLQdTmwQBBADYCAEHQ5sEAQQA6AAAgAkGECE8EQCACELcBCyAGQYQITwRAIAYQtwELIAsEQCAPQSRqIQIDQCACQQRrKAIAIgRBgICAgHhyQYCAgIB4RwRAIAIoAgAgBBC8AQsgAkEwaiECIAtBAWsiCw0ACwsgCQRAIA8gCUEwbBC8AQsgBUGAgICAeHJBgICAgHhGDQAgECAFELwBCyAVBEAgF0EEaygCACICQXhxIgVBBEEIIAJBA3EiAhsgFWpJDQQgAkEAIAUgFUEnaksbDQUgFxAuC0EAIQIgG0GDCE0NAQsgGxC3AQsgGiACNgIIIBogA0EAIAIbNgIEIBpBACADIAIbNgIAIAFBgAhqJAAMAwtBiKPBAEE3IAFB/wdqQZiTwABBwKPBABCfAQALQajZwQBBLkHY2cEAEM4BAAtB6NnBAEEuQZjawQAQzgEACyAaKAIAIBooAgQgGigCCCAaQRBqJAALLQAgAEEcakEAIAEpAgBC9de8ycjM1rM6hSABKQIIQv7by5vz5bnG9QCFhFAbCy4AIABBHGpBACABKQIAQtr9lv/p6Oj6wQCFIAEpAghC1vuGkcjA4r/+AIWEUBsL9QsEDH8CewF9AW8CfyMAQUBqIgwkAEGs4sEAKAIARQRAEE0LQbDiwQAoAgBFBEBBsOLBAEF/NgIAQdTiwQBBADYCACAJQQJ0IgpBvOLBACgCACIOTQRAQcjiwQAoAgAiDiAKTwRAQbjiwQAoAgAhE0HE4sEAKAIAIRQgDCACOAIUIAwgATgCECAMIAA4AgxBACEOAkAgCkUNACAJQf////8DcSISRQ0AIAP9EyAE/SABIRcDQAJAIAYCfwJAAkAgEgRAIBEgE2oiC0EMaigCACIKQf//AXFFBEAgCkEQdAwECyAKQf8HcSEJIApBgIACcSEPIApBgPgBcSIKQYD4AUYEQCAPQRB0IQogCQ0CIApBgICA/AdyDAQLIA9BEHQhDyAKRQ0CIApBDXRBgICA/ABxIAlBDXRyQYCAgMADaiAPcgwDC0EDQQBBsMvBABCxAQALIAogCUENdHJBgICA/gdyDAELIA9BgICA2ANyIAlnQRBrIgpBF3RrIAkgCkH//wNxQQhqdEH///8DcXILviIEXg0AIAwgCyoCADgCGCAMIAtBBGopAgA3AhwgESAUaiIPQQhqKAIAIQkCfyAPQQRqKAIAIgtBEHYiCkH//wFxRQRAIAtBgIB8cQwBCyAKQf8HcSELIApBgIACcSENIApBgPgBcSIQQYD4AUYEQCANQRB0Ig1BgICA/AdyIAtFDQEaIA0gCkENdHJBgICA/gdyDAELIA1BEHQiCiAQQQ10QYCAgPwAcSALQQ10ckGAgIDAA2pyIBANABogCyALZ0EQayILQf//A3FBCGp0Qf///wNxIApBgICA2ANyIAtBF3RrcgshFSAJQRB2IQoCfyAJQf//AXEEQCAJQf8HcSELIAlBgIACcSENIAlBgPgBcSIQQYD4AUcEQCANQRB0Ig0gEEENdEGAgID8AHEgC0ENdHJBgICAwANqciAQDQIaIAsgC2dBEGsiC0H//wNxQQhqdEH///8DcSANQYCAgNgDciALQRd0a3IMAgsgDUEQdCINIAtBDXRyQYCAgP4HciALDQEaIA1BgICA/AdyDAELIAlBEHQLIRAgDAJ/IApB//8BcQRAIApB/wdxIQkgCkGAgAJxIQsgCkGA+AFxIg1BgPgBRwRAIAtBEHQiCiANQQ10QYCAgPwAcSAJQQ10ckGAgIDAA2pyIA0NAhogCSAJZ0EQayIJQf//A3FBCGp0Qf///wNxIApBgICA2ANyIAlBF3RrcgwCCyALQRB0IgsgCkENdHJBgICA/gdyIAkNARogC0GAgID8B3IMAQsgCUGAgHxxC74QVzgCLCAMIBC+EFc4AiggDCAVvhBXOAIkIAwgD0EMaigCACIJQRR2s0MA8H9FlUMAAAA/lEPbD0lAlCICEC04AjxDAACAPyAJQQp2/REgCf0cAf0M/wMAAP8DAAD/AwAA/wMAAP1O/fsB/QwAwH9EAMB/RADAf0QAwH9E/ecBIhYgFv3kAf0MAACAvwAAgL8AAIC/AACAv/3kASIW/R8BIgOLkyAW/R8AIhiLkyIAjEMAAAAAEOkBIQEgDCACECwiAiAAIAAgAJQgAyABIAGMIgMgFv0MAAAAAAAAAAAAAAAAAAAAAP1G/U0iFv3HAf0bAkEBcRuSIgAgAJQgGCABIAMgFv0bAEEBcRuSIgEgAZSSkpEiA5WUOAI4IAwgAiABIAOVlDgCNCAMIAIgACADlZQ4AjAgDCAMQQxqIBcgBSAEIAxBGGogDEEkaiAMQTBqED8gDCgCAEEBcUUNACAMKgIEIgAgB2BFIAAgCF9Fcg0AQcziwQAoAgAgDkYEQEHM4sEAQYiUwAAQkAELQdDiwQAoAgAgDkECdGogADgCAEHU4sEAIA5BAWoiDjYCAAsgEUEQaiERIBJBAWsiEg0ACwtB0OLBACgCACAOEO8BQbDiwQBBsOLBACgCAEEBajYCACAMQUBrJAAMAwtBACAKIA5ByJPAABDPAQALQQAgCiAOQdiTwAAQzwEAC0HwksAAEKsCAAsiCSUBIAkQtwELJQAgACgCAC0AAEUEQCABQZq4wABBBRBEDwsgAUGfuMAAQQQQRAsiACAALQAARQRAIAFBmrjAAEEFEEQPCyABQZ+4wABBBBBECx4AIABFBEAQrwIACyAAIAIgAyAEIAUgASgCEBERAAscACAARQRAEK8CAAsgACACIAMgBCABKAIQEQsACxwAIABFBEAQrwIACyAAIAIgAyAEIAEoAhARBwALHAAgAEUEQBCvAgALIAAgAiADIAQgASgCEBEyAAscACAARQRAEK8CAAsgACACIAMgBCABKAIQETMACxwAIABFBEAQrwIACyAAIAIgAyAEIAEoAhARNAALGgAgAEUEQBCvAgALIAAgAiADIAEoAhARAwALGgAgAEUEQBCvAgALIAAgAiADIAEoAhARAAALFAAgASABIAAgACABXRsgACAAXBsLHAEBbyAAJQEgASUBIAEQtwEgAiUBIAIQtwEQAgsYACAARQRAEK8CAAsgACACIAEoAhARAQALHAAgASgCACAAKAIAIAAoAgQgASgCBCgCDBEAAAsfAEG55sEALQAARQRAQbnmwQBBAToAAAsgAEEBNgIACxcAIAAoAgAgASAAKAIEQQxqKAIAEQEACxYBAW8gACABEBQhAhBlIgAgAiYBIAALFgEBbyAAIAEQFSECEGUiACACJgEgAAsWAQFvIAAgARAWIQIQZSIAIAImASAACxkAIAEoAgBBkKTBAEEFIAEoAgQoAgwRAAALDgAgAARAAAsgARDVAQALEwAgASgCBBogAEHclcAAIAEQSQsQACACKAIEGiAAIAEgAhBJCxMAIAEoAgQaIABB8JfAACABEEkLEwAgASgCBBogAEH0lcAAIAEQSQsTACABKAIEGiAAQZSYwAAgARBJCxMAIAEoAgQaIABB4J7AACABEEkLEwAgASgCBBogAEHMv8AAIAEQSQsZACABKAIAQbG9wABBEiABKAIEKAIMEQAACxUAIAEgACgCACIAKAIAIAAoAgQQRAsTACABKAIEGiAAQeCiwQAgARBJCxYAIABBgMjBADYCBCAAIAFBHGo2AgALFgAgAEHEx8EANgIEIAAgAUEcajYCAAsQACAAQQRqED4gAEEcahBdCxkAIAEoAgBB0pfBAEEIIAEoAgQoAgwRAAALGQAgASgCAEGTlcEAQQMgASgCBCgCDBEAAAsZACABKAIAQcjDwQBBFyABKAIEKAIMEQAACxkAIAEoAgBB1MLBAEEUIAEoAgQoAgwRAAALGQAgASgCAEGsw8EAQQog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EGsiASQAIAFB3ZLAADYCDCABIABBB2o2AgggAUEIakHU18EAIAFBDGpB1NfBACAAQQhqQbzVwQAQbwALIwBBIGsiACQAIABBADYCGCAAQQE2AgwgAEGc1sEANgIIIABCBDcCECAAQQhqQaTWwQAQ2QEAC0Hc1cEAEJ4CAAsgAEEANgIYIABBATYCDCAAQYzVwQA2AgggAEIENwIQIABBCGpBzNXBABDZAQALQbjmwQBBADoAACAEQQM6AAALIABBIGokACAJKAIMIQMgAigCUEGAgIAEcSIEDQELIAMgCSgCECIASQ0CIAMgAGshAyAJKAIIIABBDGxqDAELIAkoAggLIQ8gAkGAgICAeDYCWCACQcjOwQApAwAiHzcCXCACIARBF3YiADoAZCACIAA6AHggAkEANgJ0IAJB0NjBADYCcCACIAJByABqNgJoIAIgAkHYAGo2AmwgA0UEQCAfpyEDIB9CIIinDAgLIA8gA0EMbGohGCACQZgBaiEVIAJBlwFqIRkDQAJAIA8oAggiAEUEQCACQQA2AogBIAIgAkHoAGo2AoQBIAJBAzYCkAEgAkECNgLQASACQYQBaiACQZABaiACQdABakEAIAJBACACECUgAigChAEiASABKAIMQQFqNgIMRQ0BDA4LIA8oAgQiCSAAQSxsaiEaA0AgAkEANgKAASACIAJB6ABqNgJ8AkACQAJAAkAgCSgCIEGAgICAeEcEQCACQZABaiIAIAkoAiQiGyAJKAIoIhwQQUECIRcgAigCkAENAyAAIAIoApQBIgggAigCmAEiAUHMusAAQQYQIQJAAkAgAigCkAEEQCACKALMASEAIAIoAsgBIQQgAigCxAEhBiACKALAASEDIAIoArQBQX9GDQEgAkGEAWogFSADIAYgBCAAQQAQVgwCCwNAIAJB0AFqIAJBkAFqECsgAigC0AEiAEEBRg0ACwJAAkAgAEEBaw4CGQEACyACIAIpAtQBNwKIASACQQE2AoQBDAILIAJBADYChAEMAQsgAkGEAWogFSADIAYgBCAAQQEQVgsgAigChAFBAUcNAiACKAKIASIAQQZqIgRFDQECQCABIARNBEAgASAERw0BDAMLIAQgCGosAABBv39KDQILIAggASAEIAFB1LrAABCQAgALIAJBAzYCkAEMAwsgASAIaiEHIAQgCGohAwNAAkAg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IAMMBgsCQCACKAJYIgBBgICAgHhHBEAgAEUNAiACKAJcIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIABqSQ0FIAFFIAQgAEEnak1yDQEMBgsgAi0AXEEDRw0BIAIoAmAiAygCACEAIANBBGooAgAiASgCACIEBEAgACAEEQQACyABKAIEIgEEQCAAQQRrKAIAIgRBeHEiBkEEQQggBEEDcSIEGyABakkNBSAEQQAgBiABQSdqSxsNBiAAEC4LIANBBGsoAgAiAEF4cSIBQRBBFCAAQQNxIgAbSQ0EIABFDQAgAUE0Tw0FCyADEC4LQYijwQBBNyACQd8BakGMlsAAQcCjwQAQnwEACwALQdC4wABBPSACQd8BakHAuMAAQei5wAAQnwEAC0Go2cEAQS5B2NnBABDOAQALQejZwQBBLkGY2sEAEM4BAAsLCAAgACUBEAQLDABB9LPAAEEyEBEACwcAEBIQ1wELBABBAQsEAEEACwIACwub3wE+AEGAgMAAC5UTT25jZSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAAAABAAKgAAAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI2L3NyYy9sZWdhY3kucnMAc3BhcmstcnMvc3JjL3JheWNhc3QucnMAbGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYW55aG93LTEuMC45OC9zcmMvZm10LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9pbXBscy5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3lzL3N5bmMvbXV0ZXgvbm9fdGhyZWFkcy5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvc3lzL3N5bmMvb25jZS9ub190aHJlYWRzLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYW55aG93LTEuMC45OC9zcmMvZXJyb3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL2Vycm9yLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvc3RyL3BhdHRlcm4ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9jb3JlL3NyYy9vcHMvZnVuY3Rpb24ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3luYy9sYXp5X2xvY2sucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAGxpYnJhcnkvc3RkL3NyYy9wYW5pY2tpbmcucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjExNy9zcmMvZXh0ZXJucmVmLnJzAGxpYnJhcnkvY29yZS9zcmMvdW5pY29kZS9wcmludGFibGUucnMAc3BhcmstbGliL3NyYy9zcGxhdF9lbmNvZGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL2RlLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvc3RkL3NyYy9zeW5jL3BvaXNvbi9vbmNlLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3NsaWNlLnJzAGxpYnJhcnkvc3RkL3NyYy9iYWNrdHJhY2UucnMAL3J1c3QvZGVwcy9oYXNoYnJvd24tMC4xNS41L3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwBsaWJyYXJ5L3N0ZC9zcmMvLi4vLi4vYmFja3RyYWNlL3NyYy9zeW1ib2xpemUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAc3BhcmstbGliL3NyYy9yYWQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL3JlYWQucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuMTAvc3JjL2RsbWFsbG9jLnJzAHNwYXJrLXJzL3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9jb25zb2xlX2Vycm9yX3BhbmljX2hvb2stMC4xLjcvc3JjL2xpYi5ycwAvcnVzdC9kZXBzL3J1c3RjLWRlbWFuZ2xlLTAuMS4yNi9zcmMvbGliLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtd2FzbS1iaW5kZ2VuLTAuNi41L3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMu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//////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAEAAgADAAQABQAGAAcACAAJAP//////////////////CgALAAwADQAOAA8A/////////////////////////////////////////////////////////////////////woACwAMAA0ADgAPAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAEAAgADAAQABQAGAAcACAAJAA//////////////////+gALAAwADQAOAA8AD/////////////////////////////////////////////////////////////////////oACwAMAA0ADgAPAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////MgcQAGIAAACzAQAAGgAAADIHEABiAAAAAAIAABMAAAAyBxAAYgAAAAUCAAAzAAAAMgcQAGIAAAAJAgAAPgAAADIHEABiAAAADwIAADoAAAAyBxAAYgAAAKsBAAA9AAAAMgcQAGIAAACmAQAARQAAACBhdCBsaW5lIAAAAEACEABjAAAA9wEAACEAAABAAhAAYwAAAPsBAAAMAAAAIGNvbHVtbiBAAhAAYwAAAAICAAAhAAAAQAIQAGMAAAALAgAAKgAAAEACEABjAAAADwIAACwAAABAAhAAYwAAABQCAAAJAAAAaW5mLWluZk5hTgAAPgAAAAwAAAAEAAAAPwAAAEAAAABYAEGAo8EAC/sHAQAAAEIAAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5ALcDEABLAAAABQsAAA4AAACkAhAATwAAADwGAAAUAAAApAIQAE8AAAA8BgAAIQAAAKQCEABPAAAAMAYAABQAAACkAhAATwAAADAGAAAhAAAARXJyb3Jhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmlzX2NoYXJfYm91bmRhcnkobmV3X2xlbilFcnJvcigsIGxpbmU6ICwgY29sdW1uOiAAAABFUhAABgAAAEtSEAAIAAAAU1IQAAoAAAD/axAAAQAAAGludmFsaWQgdHlwZTogAACAUhAADgAAABtWEAALAAAAaW52YWxpZCB2YWx1ZTogAKBSEAAPAAAAG1YQAAsAAABFT0Ygd2hpbGUgcGFyc2luZyBhIGxpc3RFT0Ygd2hpbGUgcGFyc2luZyBhbiBvYmplY3RFT0Ygd2hpbGUgcGFyc2luZyBhIHN0cmluZ0VPRiB3aGlsZSBwYXJzaW5nIGEgdmFsdWVleHBlY3RlZCBgOmBleHBlY3RlZCBgLGAgb3IgYF1gZXhwZWN0ZWQgYCxgIG9yIGB9YGV4cGVjdGVkIGlkZW50ZXhwZWN0ZWQgdmFsdWVleHBlY3RlZCBgImBpbnZhbGlk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aWQgUkFEIG1hZ2ljOiAweAAAAABmEAAVAAAAAgBBqszBAAsBCABBtMzBAAt1IAAA6W1dy9YsUOtjeEGmV3Ebi7n1Ky+JZFpnOv7tcjMv54x1AQAAAAAAAAACAAAAAAAAAAEAAAABAAAAAAAAACAAAOggICAgICAgICAgICAgYXQgOgAAAIhmEAABAAAACjogAAEAAAAAAAAAlWYQAAIAAAACAEGyzcEACwEEAEG8zcEACzEgAADoIC0gAAEAAAAAAAAAwGYQAAMAAAAgICAgICA8dW5rbm93bj4AAgAAAAAAAAACAEH4zcEAC50NIACA4O+/vQAyBhAANAAAAGcBAAAwAAAAb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybRBnEAAoAAAAJAAAAAAAAAACAAAAOGcQAGVudGl0eSBub3QgZm91bmRwZXJtaXNzaW9uIGRlbmllZGNvbm5lY3Rpb24gcmVmdXNlZGNvbm5lY3Rpb24gcmVzZXRob3N0IHVucmVhY2hhYmxlbmV0d29yayB1bnJlYWNoYWJsZWNvbm5lY3Rpb24gYWJvcnRlZG5vdCBjb25uZWN0ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9yb3BlcmF0aW9uIHN1Y2Nlc3NmdWxvbmUtdGltZSBpbml0aWFsaXphdGlvbiBtYXkgbm90IGJlIHBlcmZvcm1lZCByZWN1cnNpdmVseQAAAFFqEAA4AAAAY2Fubm90IHJlY3Vyc2l2ZWx5IGFjcXVpcmUgbXV0ZXiUahAAIAAAAFgBEAAsAAAAEwAAAAkAAABfBRAAIwAAANcAAAAUAAAAXwUQACMAAADXAAAAMQAAAExhenlMb2NrIGluc3RhbmNlIGhhcyBwcmV2aW91c2x5IGJlZW4gcG9pc29uZWQAAOxqEAAuAAAAlQMQACEAAACXAQAABQAAADoKAABEAAAADAAAAAQAAACKAAAAiwAAAIwAAAAAAAAACAAAAAQAAACNAAAAjgAAAI8AAACQAAAAkQAAABAAAAAEAAAAkgAAAJMAAACUAAAAlQAAAGNhbm5vdCBtb2RpZnkgdGhlIHBhbmljIGhvb2sgZnJvbSBhIHBhbmlja2luZyB0aHJlYWSIaxAANAAAAAMEEAAcAAAAkAAAAAkAAAAAAAAABAAAAAQAAACWAAAAzAYQAFAAAAAqAgAAEQAAACAob3MgZXJyb3IgKQEAAAAAAAAA9GsQAAsAAAD/axAAAQAAAHVuc3VwcG9ydGVkIGJhY2t0cmFjZWRpc2FibGVkIGJhY2t0cmFjZQDOBRAAHAAAAIoBAAAdAAAAlwAAABAAAAAEAAAAmAAAAJkAAABwYW5pY2tlZCBhdCABAAAAAAAAAIhmEAABAAAAiGYQAAEAAAAAAAAACAAAAAQAAACaAAAAgwUQAEoAAAC9AQAAHQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAAJUHEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAACVBxAAKgAAALcEAAANAAAARAAAAAwAAAAEAAAAmwAAACAEEABpAAAAfAAAABEAAAAgBBAAaQAAAIkAAAARAAAAAgAAAAQAAAAEAAAAAwAAAAMAAAADAAAAAAAAAAIAAAAFAAAABQAAAAAAAAADAAAAAwAAAAQAAAAEAAAAAQBBoNvBAAtfAwAAAAMAAAACAAAAAwAAAAAAAAADAAAAAwAAAAEAAAAZGxAADBsQABAbEAA2GxAAFBsQAJNKEAAAAAAALRsQACgbEACcShAAAAAAAB4bEACWShAAJBsQADIbEAA6GxAAQYjcwQALoAYbGxAALxsQABcbEAA7GxAAAAAAACEbEACZShAAORsQAAUAAAAMAAAACwAAAAsAAAAEAAAAdR4QAHoeEACGHhAAkR4QAJweEAAFAAAADAAAAAsAAAALAAAABAAAAHUeEAB6HhAAhh4QAJEeEACcHhAAEAAAABEAAAASAAAAEAAAABAAAAATAAAAEgAAAA0AAAAOAAAAFQAAAAwAAAALAAAAFQAAABUAAAAPAAAADgAAABMAAAAmAAAAOAAAABkAAAAXAAAADAAAAAkAAAAKAAAAEAAAABcAAAAOAAAADgAAAA0AAAAUAAAACAAAABsAAAAOAAAAEAAAABYAAAAVAAAACwAAABYAAAANAAAACwAAAAsAAAATAAAAUGcQAGBnEABxZxAAg2cQAJNnEACjZxAAtmcQAMhnEADVZxAA42cQAPhnEAAEaBAAD2gQACRoEAA5aBAASGgQAFZoEABpaBAAj2gQAMdoEADgaBAA92gQAANpEAAMaRAAFmkQACZpEAA9aRAAS2kQAFlpEABmaRAAemkQAIJpEACdaRAAq2kQALtpEADRaRAA5mkQAPFpEAAHahAAFGoQAB9qEAAqahAAAAAAPwAAAL8DAAAABAAAAAQAAAAGAAAAg/miAERObgD8KRUA0VcnAN009QBi28AAPJmVAEGQQwBjUf4Au96rALdhxQA6biQA0k1CAEkG4AAJ6i4AHJLRAOsd/gApsRwA6D6nAPU1ggBEuy4AnOmEALQmcABBfl8A1pE5AFODOQCc9DkAi1+EACj5vQD4HzsA3v+XAA+YBQARL+8AClqLAG0fbQDPfjYACcsnAEZPtwCeZj8ALepfALondQDl68cAPXvxAPc5BwCSUooA+2vqAB+xXwAIXY0AMANWAHv8RgDwq2sAILzPADb0mgDjqR0AXmGRAAgb5gCFmWUAoBRfAI1AaACA2P8AJ3NNAAYGMQDKVhUAyahzAHviYABrjMAAAAAAQPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNQBBqOLBAAsBBABwCXByb2R1Y2VycwIIbGFuZ3VhZ2UBBFJ1c3QADHByb2Nlc3NlZC1ieQMFcnVzdGMdMS45MS4wIChmODI5N2UzNTEgMjAyNS0xMC0yOCkGd2FscnVzBjAuMjYuMQx3YXNtLWJpbmRnZW4HMC4yLjExNwB0D3RhcmdldF9mZWF0dXJlcwcrD211dGFibGUtZ2xvYmFscysTbm9udHJhcHBpbmctZnB0b2ludCsHc2ltZDEyOCsLYnVsay1tZW1vcnkrCHNpZ24tZXh0Kw9yZWZlcmVuY2UtdHlwZXMrCm11bHRpdmFsdWU=", typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("spark.cjs.js", document.baseURI).href); +} +class Asinh extends UnaryOp { + constructor({ x }) { + super({ a: x, outTypeFunc: (aType) => aType, outKey: "asinh" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.asinh} = asinh(${inputs.a});` + ]; } - const imports = __wbg_get_imports(); - if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) { - module_or_path = fetch(module_or_path); +} +class Acosh extends UnaryOp { + constructor({ x }) { + super({ a: x, outTypeFunc: (aType) => aType, outKey: "acosh" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.acosh} = acosh(${inputs.a});` + ]; + } +} +class Atanh extends UnaryOp { + constructor({ x }) { + super({ a: x, outTypeFunc: (aType) => aType, outKey: "atanh" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.atanh} = atanh(${inputs.a});` + ]; } - const { instance, module: module2 } = await __wbg_load(await module_or_path, imports); - return __wbg_finalize_init(instance); } +const dyno = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + Abs, + Acos, + Acosh, + Add, + All, + And, + Any, + Asin, + Asinh, + Atan, + Atan2, + Atanh, + BVec2, + BVec3, + BVec4, + BinaryOp, + Bool, + Ceil, + Clamp, + Combine, + CombineCovSplat, + CombineGsplat, + CompMult, + CompXor, + Compilation, + Cos, + Cosh, + CovSplat, + Cross, + DebugColorHue, + Degrees, + Determinant, + Distance, + Div, + Dot, + Dyno, + DynoBlock, + DynoBool, + DynoBvec2, + DynoBvec3, + DynoBvec4, + DynoConst, + DynoFloat, + DynoInt, + DynoIsampler2D, + DynoIsampler2DArray, + DynoIsampler3D, + DynoIsamplerCube, + DynoIvec2, + DynoIvec3, + DynoIvec4, + DynoLiteral, + DynoMat2, + DynoMat2x2, + DynoMat2x3, + DynoMat2x4, + DynoMat3, + DynoMat3x2, + DynoMat3x3, + DynoMat3x4, + DynoMat4, + DynoMat4x2, + DynoMat4x3, + DynoMat4x4, + DynoOutput, + DynoProgram, + DynoProgramTemplate, + DynoRemapIndex, + DynoSampler2D, + DynoSampler2DArray, + DynoSampler2DArrayShadow, + DynoSampler2DShadow, + DynoSampler3D, + DynoSamplerCube, + DynoSamplerCubeShadow, + DynoUint, + DynoUniform, + DynoUsampler2D, + DynoUsampler2DArray, + DynoUsampler3D, + DynoUsamplerCube, + DynoUvec2, + DynoUvec3, + DynoUvec4, + DynoValue, + DynoVec2, + DynoVec3, + DynoVec4, + Equal, + Exp, + Exp2, + ExtendVec, + FaceForward, + Float, + FloatBitsToInt, + FloatBitsToUint, + Floor, + Fract, + GreaterThan, + GreaterThanEqual, + Gsplat, + GsplatNormal, + GsplatToCovSplat, + Hash, + Hash2, + Hash3, + Hash4, + HashFloat, + HashVec2, + HashVec3, + HashVec4, + IMod, + IVec2, + IVec3, + IVec4, + Int, + IntBitsToFloat, + Inverse, + InverseSqrt, + IsInf, + IsNan, + Length, + LessThan, + LessThanEqual, + Log, + Log2, + Mat2, + Mat3, + Mat4, + Max, + Min, + Mix, + Mod, + Modf, + Mul, + Neg, + Normalize, + NormalizedDepth, + Not, + NotEqual, + NumCovSplats, + NumExtSplats, + NumPackedSplats, + Or, + Outer, + OutputCovSplat, + OutputExtCovSplat, + OutputExtendedSplat, + OutputPackedSplat, + OutputRgba8, + PackHalf2x16, + PackSnorm2x16, + PackUnorm2x16, + PagedSplatTexCoord, + PcgHash, + PcgMix, + PcgNext, + Pow, + ProjectH, + Radians, + ReadCovSplat, + ReadExtSplat, + ReadPackedSplat, + ReadPackedSplatRange, + ReflectVec, + RefractVec, + Round, + Select, + Shl, + Shr, + Sign, + SimpleCast, + Sin, + Sinh, + Smoothstep, + SplatTexCoord, + Split, + SplitCovSplat, + SplitGsplat, + Sqr, + Sqrt, + Step, + Sub, + Swizzle, + TCovSplats, + TExtSplats, + TPackedSplats, + Tan, + Tanh, + TexelFetch, + Texture, + TextureSize, + TransformDir, + TransformGsplat, + TransformPosition, + TransformQuaternion, + Transpose, + TrinaryOp, + Trunc, + UVec2, + UVec3, + UVec4, + Uint, + UintBitsToFloat, + UintToRgba8, + UnaryOp, + UnpackHalf2x16, + UnpackSnorm2x16, + UnpackUnorm2x16, + Vec2, + Vec3, + Vec4, + Xor, + abs, + acos, + acosh, + add, + all, + and, + any, + arrayIndex, + arrayLength, + asin, + asinh, + atan, + atan2, + atanh, + bool, + bvec2, + bvec3, + bvec4, + ceil, + clamp, + combine, + combineCovSplat, + combineGsplat, + comment, + compMult, + compXor, + cos, + cosh, + cross, + debugColorHue, + defineCovSplat, + defineExtSplats, + defineGsplat, + defineGsplatNormal, + definePackedSplats, + degrees, + determinant, + distance, + div, + dot, + dyno: dyno$1, + dynoBlock, + dynoBool, + dynoBvec2, + dynoBvec3, + dynoBvec4, + dynoConst, + dynoDeclare, + dynoFloat, + dynoFor, + dynoIf, + dynoInt, + dynoIsampler2D, + dynoIsampler2DArray, + dynoIsampler3D, + dynoIsamplerCube, + dynoIvec2, + dynoIvec3, + dynoIvec4, + dynoLiteral, + dynoMat2, + dynoMat2x2, + dynoMat2x3, + dynoMat2x4, + dynoMat3, + dynoMat3x2, + dynoMat3x3, + dynoMat3x4, + dynoMat4, + dynoMat4x2, + dynoMat4x3, + dynoMat4x4, + dynoSampler2D, + dynoSampler2DArray, + dynoSampler2DArrayShadow, + dynoSampler2DShadow, + dynoSampler3D, + dynoSamplerCube, + dynoSamplerCubeShadow, + dynoSwitch, + dynoUint, + dynoUsampler2D, + dynoUsampler2DArray, + dynoUsampler3D, + dynoUsamplerCube, + dynoUvec2, + dynoUvec3, + dynoUvec4, + dynoVec2, + dynoVec3, + dynoVec4, + equal, + exp, + exp2, + extendVec, + faceforward, + float, + floatBitsToInt, + floatBitsToUint, + floor, + fract, + greaterThan, + greaterThanEqual, + gsplatNormal, + gsplatToCovSplat, + hash, + hash2, + hash3, + hash4, + hashFloat, + hashVec2, + hashVec3, + hashVec4, + imod, + int, + intBitsToFloat, + inverse, + inversesqrt, + isAllFloatType, + isBoolType, + isFloatType, + isInf, + isIntType, + isMat2, + isMat3, + isMat4, + isMatFloatType, + isNan, + isScalarType, + isUintType, + isVector2Type, + isVector3Type, + isVector4Type, + isVectorType, + ivec2, + ivec3, + ivec4, + length, + lessThan, + lessThanEqual, + literalNegOne, + literalOne, + literalZero, + log, + log2, + mat2, + mat3, + mat4, + max, + min, + mix, + mod, + modf, + mul, + neg, + normalize, + normalizedDepth, + not, + notEqual, + numCovSplats, + numExtSplats, + numPackedSplats, + numberAsFloat, + numberAsInt, + numberAsUint, + or, + outer, + outputCovSplat, + outputCovSplatDepth, + outputExtCovSplat, + outputExtendedSplat, + outputPackedSplat, + outputRgba8, + outputSplatDepth, + packHalf2x16, + packSnorm2x16, + packUnorm2x16, + pagedSplatTexCoord, + pcgHash, + pcgMix, + pcgNext, + pow, + projectH, + radians, + readCovSplat, + readExtSplat, + readPackedSplat, + readPackedSplatRange, + reflectVec, + refractVec, + remapIndex, + round, + sameSizeIvec, + sameSizeUvec, + sameSizeVec, + select, + shl, + shr, + sign, + sin, + sinh, + smoothstep, + splatTexCoord, + split, + splitCovSplat, + splitGsplat, + sqr, + sqrt, + step, + sub, + swizzle, + tan, + tanh, + texelFetch, + texture, + textureSize, + transformDir, + transformGsplat, + transformPos, + transformQuat, + transpose, + trunc, + typeLiteral, + uint, + uintBitsToFloat, + uintToRgba8, + uniform, + unindent, + unindentLines, + unpackHalf2x16, + unpackSnorm2x16, + unpackUnorm2x16, + uvec2, + uvec3, + uvec4, + valType, + vec2, + vec3, + vec4, + vectorDim, + vectorElementType, + xor +}, Symbol.toStringTag, { value: "Module" })); var computeUvec4_default = "precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout uvec4 target;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n target = uvec4(0u, 0u, 0u, 0u);\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}"; var computeUvec4_Vec4_default = "precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out vec4 target3;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n \n target = uvec4(0u, 0u, 0u, 0u);\n\n \n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}"; var computeUvec4x2_Vec4_default = "precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out uvec4 target2;\nlayout(location = 2) out vec4 target3;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n \n target = uvec4(0u, 0u, 0u, 0u);\n target2 = uvec4(0u, 0u, 0u, 0u);\n\n \n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}"; var computeVec4_default = "precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout vec4 target;\n\n{{ GLOBALS }}\n\nvoid computeReadback(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n if ((index >= 0) && (index < targetCount)) {\n computeReadback(index);\n } else {\n target = vec4(0.0, 0.0, 0.0, 0.0);\n }\n}"; -var oldSplatFragment_default = "precision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool stochastic;\nuniform bool disableFalloff;\nuniform float falloff;\n\nuniform bool splatTexEnable;\nuniform sampler3D splatTexture;\nuniform mat2 splatTexMul;\nuniform vec2 splatTexAdd;\nuniform float splatTexNear;\nuniform float splatTexFar;\nuniform float splatTexMid;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z = dot(vSplatUv, vSplatUv);\n if (!splatTexEnable) {\n if (z > (maxStdDev * maxStdDev)) {\n discard;\n }\n } else {\n vec2 uv = splatTexMul * vSplatUv + splatTexAdd;\n float ndcZ = vNdc.z;\n float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near));\n float clampedFar = max(splatTexFar, splatTexNear);\n float clampedDepth = clamp(depth, splatTexNear, clampedFar);\n float logDepth = log2(clampedDepth + 1.0);\n float logNear = log2(splatTexNear + 1.0);\n float logFar = log2(clampedFar + 1.0);\n\n float texZ;\n if (splatTexMid > 0.0) {\n float clampedMid = clamp(splatTexMid, splatTexNear, clampedFar);\n float logMid = log2(clampedMid + 1.0);\n texZ = (clampedDepth <= clampedMid) ?\n (0.5 * ((logDepth - logNear) / (logMid - logNear))) :\n (0.5 * ((logDepth - logMid) / (logFar - logMid)) + 0.5);\n } else {\n texZ = (logDepth - logNear) / (logFar - logNear);\n }\n\n vec4 modulate = texture(splatTexture, vec3(uv, 1.0 - texZ));\n rgba *= modulate;\n }\n\n rgba.a *= mix(1.0, exp(-0.5 * z), falloff);\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n if (stochastic) {\n const bool STEADY = false;\n uint uTime = STEADY ? 0u : floatBitsToUint(time);\n uvec2 coord = uvec2(gl_FragCoord.xy);\n uint state = uTime + 0x9e3779b9u * coord.x + 0x85ebca6bu * coord.y + 0xc2b2ae35u * uint(vSplatIndex);\n state = state * 747796405u + 2891336453u;\n uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u;\n hash = (hash >> 22u) ^ hash;\n float rand = float(hash) / 4294967296.0;\n if (rand < rgba.a) {\n fragColor = vec4(rgba.rgb, 1.0);\n } else {\n discard;\n }\n } else {\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n }\n}"; -var oldSplatVertex_default = "precision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nattribute uint splatIndex;\n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\n\nuniform vec2 renderSize;\nuniform uint numSplats;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool stochastic;\nuniform bool enable2DGS;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2DArray packedSplats;\nuniform vec4 rgbMinMaxLnScaleMinMax;\n\nvoid main() {\n \n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n if (uint(gl_InstanceID) >= numSplats) {\n return;\n }\n\n ivec3 texCoord;\n if (stochastic) {\n texCoord = ivec3(\n uint(gl_InstanceID) & SPLAT_TEX_WIDTH_MASK,\n (uint(gl_InstanceID) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK,\n (uint(gl_InstanceID) >> SPLAT_TEX_LAYER_BITS)\n );\n } else {\n if (splatIndex == 0xffffffffu) {\n \n return;\n }\n texCoord = ivec3(\n splatIndex & SPLAT_TEX_WIDTH_MASK,\n (splatIndex >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK,\n splatIndex >> SPLAT_TEX_LAYER_BITS\n );\n }\n uvec4 packedData = texelFetch(packedSplats, texCoord, 0);\n\n vec3 center, scales;\n vec4 quaternion, rgba;\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, rgbMinMaxLnScaleMinMax);\n\n if (rgba.a < minAlpha) {\n return;\n }\n bvec3 zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n\n \n vec3 viewCenter = quatVec(renderToViewQuat, center) + renderToViewPos;\n\n \n if (viewCenter.z >= 0.0) {\n return;\n }\n\n \n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n \n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n \n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n \n vSplatIndex = splatIndex;\n\n \n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vRgba = rgba;\n vSplatUv = position.xy * maxStdDev;\n\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n return;\n }\n\n \n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n\n \n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n mat3 cov3D = RS * transpose(RS);\n\n \n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if(isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n \n \n \n \n \n \n \n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n \n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n \n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n \n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n\n \n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = normalize(vec2((abs(b) < 0.001) ? 1.0 : b, eigen1 - a));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, maxStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, maxStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n \n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vRgba = rgba;\n vSplatUv = position.xy * maxStdDev;\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n}"; var splatDefines_default = "const float LN_SCALE_MIN = -12.0;\nconst float LN_SCALE_MAX = 9.0;\n\nconst uint SPLAT_TEX_WIDTH_BITS = 11u;\nconst uint SPLAT_TEX_HEIGHT_BITS = 11u;\nconst uint SPLAT_TEX_DEPTH_BITS = 11u;\nconst uint SPLAT_TEX_LAYER_BITS = SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nconst uint SPLAT_TEX_WIDTH = 1u << SPLAT_TEX_WIDTH_BITS;\nconst uint SPLAT_TEX_HEIGHT = 1u << SPLAT_TEX_HEIGHT_BITS;\nconst uint SPLAT_TEX_DEPTH = 1u << SPLAT_TEX_DEPTH_BITS;\n\nconst uint SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1u;\nconst uint SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1u;\nconst uint SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1u;\n\nconst uint F16_INF = 0x7c00u;\nconst float PI = 3.1415926535897932384626433832795;\n\nconst float INFINITY = 1.0 / 0.0;\nconst float NEG_INFINITY = -INFINITY;\n\nfloat sqr(float x) {\n return x * x;\n}\n\nfloat pow4(float x) {\n float x2 = x * x;\n return x2 * x2;\n}\n\nfloat pow8(float x) {\n float x4 = pow4(x);\n return x4 * x4;\n}\n\nvec3 srgbToLinear(vec3 rgb) {\n return pow(rgb, vec3(2.2));\n}\n\nvec3 linearToSrgb(vec3 rgb) {\n return pow(rgb, vec3(1.0 / 2.2));\n}\n\nuint encodeQuatOctXy88R8(vec4 q) {\n \n if (q.w < 0.0) {\n q = -q;\n }\n \n float theta = 2.0 * acos(q.w);\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n \n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n \n \n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n \n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n \n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n \n uint quantU = uint(clamp(round(u_f * 255.0), 0.0, 255.0));\n uint quantV = uint(clamp(round(v_f * 255.0), 0.0, 255.0));\n \n \n \n uint angleInt = uint(clamp(round((theta / 3.14159265359) * 255.0), 0.0, 255.0));\n \n \n return (angleInt << 16u) | (quantV << 8u) | quantU;\n}\n\nvec4 decodeQuatOctXy88R8(uint encoded) {\n \n uint quantU = encoded & uint(0xFFu); \n uint quantV = (encoded >> 8u) & uint(0xFFu); \n uint angleInt = encoded >> 16u; \n\n \n float u_f = float(quantU) / 255.0;\n float v_f = float(quantV) / 255.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n \n float theta = (float(angleInt) / 255.0) * 3.14159265359;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\nuint encodeQuatOctXy1010R12(vec4 q) {\n \n if (q.w < 0.0) {\n q = -q;\n }\n \n float halfTheta = acos(q.w);\n float theta = 2.0 * halfTheta;\n float s = sin(halfTheta);\n \n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n \n \n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n \n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n \n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n \n uint quantU = uint(clamp(round(u_f * 1023.0), 0.0, 1023.0));\n uint quantV = uint(clamp(round(v_f * 1023.0), 0.0, 1023.0));\n \n \n \n uint angleInt = uint(clamp(round((theta / PI) * 4095.0), 0.0, 4095.0));\n \n \n return (angleInt << 20u) | (quantV << 10u) | quantU;\n}\n\nvec4 decodeQuatOctXy1010R12(uint encoded) {\n \n uint quantU = encoded & uint(0x3FFu); \n uint quantV = (encoded >> 10u) & uint(0x3FFu); \n uint angleInt = encoded >> 20u; \n\n \n float u_f = float(quantU) / 1023.0;\n float v_f = float(quantV) / 1023.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n \n float theta = (float(angleInt) / 4095.0) * PI;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\nuvec4 packSplatEncoding(\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n uint uQuat = encodeQuatOctXy88R8(quaternion);\n \n \n uvec3 uQuat3 = uvec3(uQuat & 0xffu, (uQuat >> 8u) & 0xffu, (uQuat >> 16u) & 0xffu);\n\n \n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n uvec3 uScales = uvec3(\n (scales.x == 0.0) ? 0u : uint(round(clamp((log(scales.x) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.y == 0.0) ? 0u : uint(round(clamp((log(scales.y) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.z == 0.0) ? 0u : uint(round(clamp((log(scales.z) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u\n );\n\n \n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) | (uQuat3.x << 16u) | (uQuat3.y << 24u);\n uint word3 = uScales.x | (uScales.y << 8u) | (uScales.z << 16u) | (uQuat3.z << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\nuvec4 packSplat(vec3 center, vec3 scales, vec4 quaternion, vec4 rgba) {\n return packSplatEncoding(center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nvoid unpackSplatEncoding(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec4(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu)\n ).xyz;\n\n uvec3 uScales = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n scales = vec3(\n (uScales.x == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.x - 1u) * lnScaleScale),\n (uScales.y == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.y - 1u) * lnScaleScale),\n (uScales.z == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.z - 1u) * lnScaleScale)\n );\n\n uint uQuat = ((word2 >> 16u) & 0xFFFFu) | ((word3 >> 8u) & 0xFF0000u);\n quaternion = decodeQuatOctXy88R8(uQuat);\n \n \n}\n\nvoid unpackSplat(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nuvec4 packSplatCovEncoding(\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 255.0 / (2.0 * (lnScaleMax - lnScaleMin));\n uvec3 uXxyyzz = uvec3(round(clamp((log(xxyyzz) - 2.0 * lnScaleMin) * diagScale, 0.0, 255.0)));\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n ivec3 iXyxzyzCor = ivec3(round(xyxzyzCor * 127.0));\n\n \n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) |\n ((uint(iXyxzyzCor.y) & 0xffu) << 16u) |\n ((uint(iXyxzyzCor.z) & 0xffu) << 24u);\n uint word3 =\n uXxyyzz.x | (uXxyyzz.y << 8u) | (uXxyyzz.z << 16u) |\n ((uint(iXyxzyzCor.x) & 0xffu) << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\nvoid unpackSplatCovEncoding(uvec4 packedData, out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec3(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu).x\n );\n\n uvec3 uXxyyzz = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n ivec3 iXyxzyzCor = ivec3(int(word3) >> 24, int(word2 << 8u) >> 24, int(word2) >> 24);\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 2.0 * (lnScaleMax - lnScaleMin) / 255.0;\n xxyyzz = exp(2.0 * lnScaleMin + vec3(uXxyyzz) * diagScale);\n\n vec3 xyxzyzCor = vec3(iXyxzyzCor) / 127.0;\n xyxzyz = xyxzyzCor * vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExtCov(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, rgba.b));\n packedData2.x = packHalf2x16(rgba.rg);\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n xyxzyzCor = sign(xyxzyzCor) * clamp(log(abs(xyxzyzCor)), -100.0, -0.0000001);\n xxyyzz = log(xxyyzz);\n\n packedData2.y = packHalf2x16(vec2(xxyyzz.x, xxyyzz.y));\n packedData2.z = packHalf2x16(vec2(xxyyzz.z, xyxzyzCor.x));\n packedData2.w = packHalf2x16(vec2(xyxzyzCor.y, xyxzyzCor.z));\n}\n\nvoid unpackSplatExtCov(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n\n vec2 ab = unpackHalf2x16(packedData.w);\n vec2 rg = unpackHalf2x16(packedData2.x);\n rgba = vec4(rg, ab.y, ab.x);\n\n vec2 xxyy = unpackHalf2x16(packedData2.y);\n vec2 zzxy = unpackHalf2x16(packedData2.z);\n vec2 xzyz = unpackHalf2x16(packedData2.w);\n xxyyzz = exp(vec3(xxyy.x, xxyy.y, zzxy.x));\n xyxzyz = vec3(zzxy.y, xzyz.x, xzyz.y);\n xyxzyz = -sign(xyxzyz) * exp(-abs(xyxzyz));\n xyxzyz *= vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExt(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, 0.0));\n\n packedData2.x = packHalf2x16(rgba.rg);\n packedData2.y = packHalf2x16(vec2(rgba.b, log(scales.x)));\n packedData2.z = packHalf2x16(log(scales.yz));\n packedData2.w = encodeQuatOctXy1010R12(quaternion);\n}\n\nvec4 unpackSplatExtCenterAlpha(uvec4 packedData) {\n return vec4(\n uintBitsToFloat(packedData.x),\n uintBitsToFloat(packedData.y),\n uintBitsToFloat(packedData.z),\n unpackHalf2x16(packedData.w).x\n );\n}\n\nfloat unpackSplatExtAlpha(uvec4 packedData) {\n return unpackHalf2x16(packedData.w).x;\n}\n\nvoid unpackSplatExt(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n rgba.a = unpackHalf2x16(packedData.w).x;\n\n rgba.rg = unpackHalf2x16(packedData2.x);\n vec2 split = unpackHalf2x16(packedData2.y);\n rgba.b = split.x;\n scales.x = exp(split.y);\n scales.yz = exp(unpackHalf2x16(packedData2.z));\n quaternion = decodeQuatOctXy1010R12(packedData2.w);\n}\n\nuint encodeExtRgb(vec3 rgb) {\n vec3 absRgb = abs(rgb);\n float maxAbs = max(absRgb.r, max(absRgb.g, absRgb.b));\n\n int base = clamp(int(floor(log2(maxAbs))) + 15, 0, 31);\n float divisor = exp2(float(base - 15)) / 255.0;\n\n uvec3 uRgb = uvec3(round(clamp(absRgb / divisor, 0.0, 255.0)));\n uint expSigns = (uint(base) << 3u) | ((rgb.r < 0.0 ? 0x1u : 0u) | (rgb.g < 0.0 ? 0x2u : 0u) | (rgb.b < 0.0 ? 0x4u : 0u));\n return uRgb.r | (uRgb.g << 8u) | (uRgb.b << 16u) | (expSigns << 24u);\n}\n\nvec3 decodeExtRgb(uint encoded) {\n uint biasedBase = (encoded >> 27u) & 0x1fu;\n float divisor = exp2(float(int(biasedBase) - 15)) / 255.0;\n\n vec3 rgb = vec3(uvec3(encoded & 0xffu, (encoded >> 8u) & 0xffu, (encoded >> 16u) & 0xffu));\n rgb *= divisor;\n\n return vec3(\n ((encoded & 0x1000000u) != 0u) ? -rgb.r : rgb.r,\n ((encoded & 0x2000000u) != 0u) ? -rgb.g : rgb.g,\n ((encoded & 0x4000000u) != 0u) ? -rgb.b : rgb.b\n );\n}\n\nvec3 quatVec(vec4 q, vec3 v) {\n \n vec3 t = 2.0 * cross(q.xyz, v);\n return v + q.w * t + cross(q.xyz, t);\n}\n\nvec4 quatQuat(vec4 q1, vec4 q2) {\n return vec4(\n q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,\n q1.w * q2.y - q1.x * q2.z + q1.y * q2.w + q1.z * q2.x,\n q1.w * q2.z + q1.x * q2.y - q1.y * q2.x + q1.z * q2.w,\n q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z\n );\n}\n\nmat3 quaternionToMatrix(vec4 q) {\n return mat3(\n (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n (2.0 * (q.x * q.y + q.w * q.z)),\n (2.0 * (q.x * q.z - q.w * q.y)),\n (2.0 * (q.x * q.y - q.w * q.z)),\n (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n (2.0 * (q.y * q.z + q.w * q.x)),\n (2.0 * (q.x * q.z + q.w * q.y)),\n (2.0 * (q.y * q.z - q.w * q.x)),\n (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\nmat3 scaleQuaternionToMatrix(vec3 s, vec4 q) {\n \n return mat3(\n s.x * (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n s.x * (2.0 * (q.x * q.y + q.w * q.z)),\n s.x * (2.0 * (q.x * q.z - q.w * q.y)),\n s.y * (2.0 * (q.x * q.y - q.w * q.z)),\n s.y * (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n s.y * (2.0 * (q.y * q.z + q.w * q.x)),\n s.z * (2.0 * (q.x * q.z + q.w * q.y)),\n s.z * (2.0 * (q.y * q.z - q.w * q.x)),\n s.z * (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\nvec4 slerp(vec4 q1, vec4 q2, float t) {\n \n float cosHalfTheta = dot(q1, q2);\n\n \n if (abs(cosHalfTheta) >= 0.999) {\n return q1;\n }\n \n \n \n if (cosHalfTheta < 0.0) {\n q2 = -q2;\n cosHalfTheta = -cosHalfTheta;\n }\n\n \n float halfTheta = acos(cosHalfTheta);\n float sinHalfTheta = sqrt(1.0 - cosHalfTheta * cosHalfTheta);\n\n \n float ratioA = sin((1.0 - t) * halfTheta) / sinHalfTheta;\n float ratioB = sin(t * halfTheta) / sinHalfTheta;\n\n \n return q1 * ratioA + q2 * ratioB;\n}\n\nivec3 splatTexCoord(int index) {\n uint x = uint(index) & SPLAT_TEX_WIDTH_MASK;\n uint y = (uint(index) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK;\n uint z = uint(index) >> SPLAT_TEX_LAYER_BITS;\n return ivec3(x, y, z);\n}\n\nivec3 pagedSplatTexCoord(int index) {\n return ivec3(index & 255, (index >> 8) & 255, index >> 16);\n}\n\nvec4 uintToVec4(uint u32) {\n uvec4 bytes = uvec4(\n u32 & 0xFFu,\n (u32 >> 8u) & 0xFFu,\n (u32 >> 16u) & 0xFFu,\n (u32 >> 24u) & 0xFFu\n );\n return vec4(bytes) / 255.0;\n}\n\nvec4 floatToVec4(float f) {\n uint u32 = floatBitsToUint(f);\n return uintToVec4(u32);\n}\n\nvec3 debugColorHue(uint i) {\n \n float hue = fract(float(i) * 0.61803398875);\n \n vec3 rgb = clamp(abs(mod(hue*6.0 + vec3(0.0,4.0,2.0), 6.0) - 3.0) - 1.0, 0.0, 1.0);\n return mix(vec3(1.0), rgb, 0.85); \n}"; var splatFragment_default = "precision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\n#include \n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n if (false) {\n \n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n float min1a = min(1.0, a);\n rgba.a = mix(min1a, min1a * exp(exponent), falloff);\n } else {\n \n if (rgba.a <= 1.0) {\n rgba.a = mix(rgba.a, rgba.a * exp(-0.5 * z2), falloff);\n } else {\n float a = exp((rgba.a*rgba.a - 1.0) / 2.718281828459045);\n float alpha = 1.0 - pow(1.0 - exp(-0.5 * z2), a);\n rgba.a = mix(1.0, alpha, falloff);\n }\n }\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n\n #include \n}"; var splatVertex_default = "precision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\nflat out float adjustedStdDev;\n\nuniform vec2 renderSize;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform mat3 renderToViewBasis;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform bool enableExtSplats;\nuniform bool enableCovSplats;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool enable2DGS;\nuniform bool lodInflate;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2D ordering;\nuniform usampler2DArray extSplats;\nuniform usampler2DArray extSplats2;\n\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == -1.0;\n}\n\n#include \n\nvoid main() {\n \n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n ivec2 orderingCoord = ivec2((gl_InstanceID >> 2) & 4095, gl_InstanceID >> 14);\n uint splatIndex = texelFetch(ordering, orderingCoord, 0)[gl_InstanceID & 3];\n if (splatIndex == 0xffffffffu) {\n \n return;\n }\n\n ivec3 texCoord = splatTexCoord(int(splatIndex));\n vec3 center, scales, xxyyzz, xyxzyz;\n vec4 quaternion, rgba;\n mat3 cov3D;\n bvec3 zeroScales = bvec3(false);\n\n if (enableExtSplats) {\n uvec4 ext1 = texelFetch(extSplats, texCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if ((alpha == 0.0) || (alpha < minAlpha)) {\n return;\n }\n uvec4 ext2 = texelFetch(extSplats2, texCoord, 0);\n\n if (!enableCovSplats) {\n unpackSplatExt(ext1, ext2, center, scales, quaternion, rgba);\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatExtCov(ext1, ext2, center, rgba, xxyyzz, xyxzyz);\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n } else {\n uvec4 packedData = texelFetch(extSplats, texCoord, 0);\n if (!enableCovSplats) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatCovEncoding(packedData, center, rgba, xxyyzz, xyxzyz, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n\n rgba.a *= 2.0;\n if ((rgba.a == 0.0) || (rgba.a < minAlpha)) {\n return;\n }\n }\n\n adjustedStdDev = maxStdDev;\n if (rgba.a > 1.0) {\n \n rgba.a = min(rgba.a * 4.0 - 3.0, 5.0);\n\n if (lodInflate) {\n \n float opacity = exp((rgba.a * rgba.a - 1.0) / 2.718281828459045);\n float rescale = pow(opacity, 1.0 / 3.0);\n scales *= rescale;\n rgba.a = 1.0;\n }\n\n \n adjustedStdDev = maxStdDev + 0.7 * (rgba.a - 1.0);\n }\n\n \n vec3 viewCenter = (!enableCovSplats ? quatVec(renderToViewQuat, center) : (renderToViewBasis * center)) + renderToViewPos;\n\n \n if (viewCenter.z >= 0.0) {\n return;\n }\n\n \n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n \n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n \n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n vRgba = rgba;\n vSplatUv = position.xy * adjustedStdDev;\n\n \n vSplatIndex = splatIndex;\n\n if (!enableCovSplats) {\n \n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n\n #include \n return;\n }\n\n \n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n cov3D = RS * transpose(RS);\n } else {\n cov3D = mat3(\n xxyyzz.x, xyxzyz.x, xyxzyz.y,\n xyxzyz.x, xxyyzz.y, xyxzyz.z,\n xyxzyz.y, xyxzyz.z, xxyyzz.z\n );\n cov3D = renderToViewBasis * cov3D * transpose(renderToViewBasis);\n }\n\n \n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if (isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n \n \n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n \n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n \n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n \n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n vRgba.a = rgba.a;\n\n \n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = (abs(b) > 0.001) ? normalize(vec2(b, eigen1 - a))\n : ((a >= d) ? vec2(1.0, 0.0) : vec2(0.0, 1.0));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n \n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n\n \n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n\n #include \n}"; @@ -7990,8 +6718,6 @@ function getShaders() { if (!shaders) { THREE__namespace.ShaderChunk.splatDefines = splatDefines_default; shaders = { - oldSplatVertex: oldSplatVertex_default, - oldSplatFragment: oldSplatFragment_default, splatVertex: splatVertex_default, splatFragment: splatFragment_default, computeVec4Template: computeVec4_default, @@ -8175,292 +6901,73 @@ const _Readback = class _Readback { subReadback ); promises.push(promise); - baseIndex += SPLAT_TEX_WIDTH * layerYEnd; - } - return Promise.all(promises).then(() => readback); - } - // Perform render operation to run the Rgba8Readback program - // but don't perform the readback yet. - render({ - reader, - count, - renderer - }) { - this.renderer = renderer || this.renderer; - if (!this.renderer) { - throw new Error("No renderer"); - } - this.ensureCapacity(count); - const { program, material } = this.prepareProgramMaterial(reader); - program.update(); - const renderState = this.saveRenderState(this.renderer); - this.process({ count, material }); - this.resetRenderState(this.renderer, renderState); - } - // Perform a readback of the render target, returning a buffer of the - // given type. - async readback({ - readback - }) { - if (!this.renderer) { - throw new Error("No renderer"); - } - const renderState = this.saveRenderState(this.renderer); - const promise = this.read({ readback }); - this.resetRenderState(this.renderer, renderState); - return promise; - } - // Perform a render and readback operation for the given Rgba8Readback, - // and readback buffer (call ensureBuffer first). - async renderReadback({ - reader, - count, - renderer, - readback - }) { - this.renderer = renderer || this.renderer; - if (!this.renderer) { - throw new Error("No renderer"); - } - this.ensureCapacity(count); - const { program, material } = this.prepareProgramMaterial(reader); - program.update(); - const renderState = this.saveRenderState(this.renderer); - this.process({ count, material }); - const promise = this.read({ readback }); - this.resetRenderState(this.renderer, renderState); - return promise; - } - getTexture() { - var _a2; - return (_a2 = this.target) == null ? void 0 : _a2.texture; - } -}; -_Readback.programTemplate = null; -_Readback.readbackProgram = /* @__PURE__ */ new WeakMap(); -_Readback.fullScreenQuad = new Pass_js.FullScreenQuad( - new THREE__namespace.RawShaderMaterial({ visible: false }) -); -let Readback = _Readback; -const _RgbaArray = class _RgbaArray { - constructor(options = {}) { - this.capacity = 0; - this.count = 0; - this.array = null; - this.readback = null; - this.source = null; - this.needsUpdate = true; - this.dyno = new DynoUniform({ - key: "rgbaArray", - type: TRgbaArray, - globals: () => [defineRgbaArray], - value: { - texture: _RgbaArray.getEmpty(), - count: 0 - }, - update: (value) => { - value.texture = this.getTexture(); - value.count = this.count; - return value; - } - }); - if (options.array) { - this.array = options.array; - const splatCount = Math.floor(this.array.length / 4); - this.capacity = Math.ceil(splatCount / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - if (this.capacity > splatCount) { - this.array = new Uint8Array(this.capacity * 4); - this.array.set(options.array); - } - this.count = Math.min( - splatCount, - options.count ?? Number.POSITIVE_INFINITY - ); - } else { - this.capacity = options.capacity ?? 0; - this.count = 0; - } - } - // Free up resources - dispose() { - if (this.readback) { - this.readback.dispose(); - this.readback = null; - } - if (this.source) { - this.source.dispose(); - this.source = null; - } - } - // Ensure that our array is large enough to hold capacity RGBA8 values. - ensureCapacity(capacity) { - var _a2; - if (!this.array || capacity > (((_a2 = this.array) == null ? void 0 : _a2.length) ?? 0) / 4) { - this.capacity = getTextureSize(capacity).maxSplats; - const newArray2 = new Uint8Array(this.capacity * 4); - if (this.array) { - newArray2.set(this.array); - } - this.array = newArray2; - } - return this.array; - } - // Get the THREE.DataArrayTexture from either the readback or the source. - getTexture() { - var _a2; - let texture2 = (_a2 = this.readback) == null ? void 0 : _a2.getTexture(); - if (this.source || this.array) { - texture2 = this.maybeUpdateSource(); - } - return texture2 ?? _RgbaArray.getEmpty(); - } - // Create or get a THREE.DataArrayTexture from the data array. - maybeUpdateSource() { - if (!this.array) { - throw new Error("No array"); - } - if (this.needsUpdate || !this.source) { - this.needsUpdate = false; - if (this.source) { - const { width, height, depth } = this.source.image; - if (this.capacity !== width * height * depth) { - this.source.dispose(); - this.source = null; - } - } - if (!this.source) { - const { width, height, depth } = getTextureSize(this.capacity); - this.source = new THREE__namespace.DataArrayTexture( - this.array, - width, - height, - depth - ); - this.source.format = THREE__namespace.RGBAFormat; - this.source.type = THREE__namespace.UnsignedByteType; - this.source.internalFormat = "RGBA8"; - this.source.needsUpdate = true; - } else if (this.array.buffer !== this.source.image.data.buffer) { - this.source.image.data = new Uint8Array(this.array.buffer); - } - this.source.needsUpdate = true; - } - return this.source; - } - // Generate the RGBA8 values from a Rgba8Readback dyno program. - render({ - reader, - count, - renderer - }) { - if (!this.readback) { - this.readback = new Readback({ renderer }); - } - this.readback.render({ reader, count, renderer }); - this.capacity = this.readback.capacity; - this.count = this.readback.count; + baseIndex += SPLAT_TEX_WIDTH * layerYEnd; + } + return Promise.all(promises).then(() => readback); } - // Extract the RGBA8 values from a PackedSplats collection. - fromPackedSplats({ - packedSplats, - base, + // Perform render operation to run the Rgba8Readback program + // but don't perform the readback yet. + render({ + reader, count, renderer }) { - const { dynoSplats, dynoBase, dynoCount, reader } = _RgbaArray.makeDynos(); - dynoSplats.packedSplats = packedSplats; - dynoBase.value = base; - dynoCount.value = count; - this.render({ reader, count, renderer }); - return this; - } - // Read back the RGBA8 values from the readback buffer. - async read() { - if (!this.readback) { - throw new Error("No readback"); - } - if (!this.array || this.array.length < this.count * 4) { - this.array = new Uint8Array(this.capacity * 4); + this.renderer = renderer || this.renderer; + if (!this.renderer) { + throw new Error("No renderer"); } - const result = await this.readback.readback({ readback: this.array }); - return result.subarray(0, this.count * 4); + this.ensureCapacity(count); + const { program, material } = this.prepareProgramMaterial(reader); + program.update(); + const renderState = this.saveRenderState(this.renderer); + this.process({ count, material }); + this.resetRenderState(this.renderer, renderState); } - async getArray() { - if (this.readback) { - return await this.read(); - } - if (this.array) { - return this.array; + // Perform a readback of the render target, returning a buffer of the + // given type. + async readback({ + readback + }) { + if (!this.renderer) { + throw new Error("No renderer"); } - throw new Error("No array"); + const renderState = this.saveRenderState(this.renderer); + const promise = this.read({ readback }); + this.resetRenderState(this.renderer, renderState); + return promise; } - // Can be used where you need an uninitialized THREE.DataArrayTexture like - // a uniform you will update with the result of this.getTexture() later. - static getEmpty() { - if (!_RgbaArray.emptySource) { - const emptyArray = new Uint8Array(1 * 4); - _RgbaArray.emptySource = new THREE__namespace.DataArrayTexture(emptyArray, 1, 1, 1); - _RgbaArray.emptySource.format = THREE__namespace.RGBAFormat; - _RgbaArray.emptySource.type = THREE__namespace.UnsignedByteType; - _RgbaArray.emptySource.internalFormat = "RGBA8"; - _RgbaArray.emptySource.needsUpdate = true; + // Perform a render and readback operation for the given Rgba8Readback, + // and readback buffer (call ensureBuffer first). + async renderReadback({ + reader, + count, + renderer, + readback + }) { + this.renderer = renderer || this.renderer; + if (!this.renderer) { + throw new Error("No renderer"); } - return _RgbaArray.emptySource; + this.ensureCapacity(count); + const { program, material } = this.prepareProgramMaterial(reader); + program.update(); + const renderState = this.saveRenderState(this.renderer); + this.process({ count, material }); + const promise = this.read({ readback }); + this.resetRenderState(this.renderer, renderState); + return promise; } - // Create a dyno program that can extract RGBA8 values from a PackedSplats - static makeDynos() { - if (!_RgbaArray.dynos) { - const dynoSplats = new DynoPackedSplats(); - const dynoBase = new DynoInt({ value: 0 }); - const dynoCount = new DynoInt({ value: 0 }); - const reader = dynoBlock( - { index: "int" }, - { rgba8: "vec4" }, - ({ index }) => { - if (!index) { - throw new Error("index is undefined"); - } - index = add(index, dynoBase); - const gsplat = readPackedSplatRange( - dynoSplats, - index, - dynoBase, - dynoCount - ); - return { rgba8: splitGsplat(gsplat).outputs.rgba }; - } - ); - _RgbaArray.dynos = { dynoSplats, dynoBase, dynoCount, reader }; - } - return _RgbaArray.dynos; + getTexture() { + var _a2; + return (_a2 = this.target) == null ? void 0 : _a2.texture; } }; -_RgbaArray.emptySource = null; -_RgbaArray.dynos = null; -let RgbaArray = _RgbaArray; -const TRgbaArray = { type: "RgbaArray" }; -const defineRgbaArray = unindent(` - struct RgbaArray { - sampler2DArray texture; - int count; - }; -`); -function readRgbaArray(rgba, index) { - const dyno2 = new Dyno({ - inTypes: { rgba: TRgbaArray, index: "int" }, - outTypes: { rgba: "vec4" }, - inputs: { rgba, index }, - globals: () => [defineRgbaArray], - statements: ({ inputs, outputs }) => unindentLines(` - if ((${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) { - ${outputs.rgba} = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0); - } else { - ${outputs.rgba} = vec4(0.0, 0.0, 0.0, 0.0); - } - `) - }); - return dyno2.outputs.rgba; -} +_Readback.programTemplate = null; +_Readback.readbackProgram = /* @__PURE__ */ new WeakMap(); +_Readback.fullScreenQuad = new Pass_js.FullScreenQuad( + new THREE__namespace.RawShaderMaterial({ visible: false }) +); +let Readback = _Readback; var SplatEditSdfType = /* @__PURE__ */ ((SplatEditSdfType2) => { SplatEditSdfType2["ALL"] = "all"; SplatEditSdfType2["PLANE"] = "plane"; @@ -9213,2142 +7720,2479 @@ class CovSplatTransformer { } }).outputs.covsplat; } - // Update the uniforms to match the given transform matrix. - updateFromMatrix(transform) { - const basis = new THREE__namespace.Matrix3().setFromMatrix4(transform); - const offset = new THREE__namespace.Vector3().setFromMatrixColumn(transform, 3); - const updated = !basis.equals(this.basis.value) || !offset.equals(this.offset.value); - if (updated) { - this.basis.value.copy(basis); - this.offset.value.copy(offset); + // Update the uniforms to match the given transform matrix. + updateFromMatrix(transform) { + const basis = new THREE__namespace.Matrix3().setFromMatrix4(transform); + const offset = new THREE__namespace.Vector3().setFromMatrixColumn(transform, 3); + const updated = !basis.equals(this.basis.value) || !offset.equals(this.offset.value); + if (updated) { + this.basis.value.copy(basis); + this.offset.value.copy(offset); + } + return updated; + } + // Update this transform to match the object's to-world transform. + update(object) { + object.updateMatrixWorld(); + return this.updateFromMatrix(object.matrixWorld); + } +} +class SplatGenerator extends THREE__namespace.Object3D { + constructor({ + numSplats, + generator, + covGenerator, + construct, + update + }) { + super(); + this.numSplats = numSplats ?? 0; + this.generator = generator; + this.covGenerator = covGenerator; + this.frameUpdate = update; + this.version = 0; + this.mappingVersion = 0; + if (construct) { + const constructed = construct(this); + Object.assign(this, constructed); + } + } + updateVersion() { + this.version += 1; + } + updateMappingVersion() { + this.mappingVersion += 1; + this.version += 1; + } + set needsUpdate(value) { + if (value) { + this.updateVersion(); + } + } +} +class CsplatArray { + static __wrap(ptr) { + ptr = ptr >>> 0; + const obj = Object.create(CsplatArray.prototype); + obj.__wbg_ptr = ptr; + CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj); + return obj; + } + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + CsplatArrayFinalization.unregister(this); + return ptr; + } + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_csplatarray_free(ptr, 0); + } + /** + * @param {number} lod_base + */ + bhatt_lod(lod_base) { + wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base); + } + /** + * @returns {boolean} + */ + has_lod() { + const ret = wasm.csplatarray_has_lod(this.__wbg_ptr); + return ret !== 0; + } + /** + * @param {Uint8Array} rgba + */ + inject_rgba8(rgba) { + wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba); + } + /** + * @returns {number} + */ + len() { + const ret = wasm.csplatarray_len(this.__wbg_ptr); + return ret >>> 0; + } + /** + * @param {number} lod_base + * @param {boolean} merge_filter + */ + tiny_lod(lod_base, merge_filter) { + wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter); + } + /** + * @returns {object} + */ + to_extsplats() { + const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); + } + /** + * @returns {object} + */ + to_extsplats_lod() { + const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); + } + /** + * @returns {object} + */ + to_packedsplats() { + const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); + } + /** + * @returns {object} + */ + to_packedsplats_lod() { + const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); + } + /** + * @returns {number} + */ + get maxShDegree() { + const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr); + return ret >>> 0; + } + /** + * @returns {number} + */ + get numSplats() { + const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr); + return ret >>> 0; + } + /** + * @param {number} arg0 + */ + set maxShDegree(arg0) { + wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0); + } + /** + * @param {number} arg0 + */ + set numSplats(arg0) { + wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0); + } +} +if (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free; +class GsplatArray { + static __wrap(ptr) { + ptr = ptr >>> 0; + const obj = Object.create(GsplatArray.prototype); + obj.__wbg_ptr = ptr; + GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj); + return obj; + } + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + GsplatArrayFinalization.unregister(this); + return ptr; + } + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_gsplatarray_free(ptr, 0); + } + /** + * @returns {number} + */ + get maxShDegree() { + const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr); + return ret >>> 0; + } + /** + * @returns {number} + */ + get numSplats() { + const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr); + return ret >>> 0; + } + /** + * @param {number} lod_base + */ + bhatt_lod(lod_base) { + wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base); + } + /** + * @returns {boolean} + */ + has_lod() { + const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr); + return ret !== 0; + } + /** + * @param {Uint8Array} rgba + */ + inject_rgba8(rgba) { + wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba); + } + /** + * @returns {number} + */ + len() { + const ret = wasm.gsplatarray_len(this.__wbg_ptr); + return ret >>> 0; + } + /** + * @param {number} lod_base + * @param {boolean} merge_filter + */ + tiny_lod(lod_base, merge_filter) { + wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter); + } + /** + * @returns {object} + */ + to_extsplats() { + const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); } - return updated; + return takeFromExternrefTable0(ret[0]); } - // Update this transform to match the object's to-world transform. - update(object) { - object.updateMatrixWorld(); - return this.updateFromMatrix(object.matrixWorld); + /** + * @returns {object} + */ + to_extsplats_lod() { + const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); } -} -class SplatGenerator extends THREE__namespace.Object3D { - constructor({ - numSplats, - generator, - covGenerator, - construct, - update - }) { - super(); - this.numSplats = numSplats ?? 0; - this.generator = generator; - this.covGenerator = covGenerator; - this.frameUpdate = update; - this.version = 0; - this.mappingVersion = 0; - if (construct) { - const constructed = construct(this); - Object.assign(this, constructed); + /** + * @param {any} encoding + * @returns {object} + */ + to_packedsplats(encoding) { + const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); } + return takeFromExternrefTable0(ret[0]); } - updateVersion() { - this.version += 1; + /** + * @param {any} encoding + * @returns {object} + */ + to_packedsplats_lod(encoding) { + const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); } - updateMappingVersion() { - this.mappingVersion += 1; - this.version += 1; + /** + * @param {number} arg0 + */ + set maxShDegree(arg0) { + wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0); } - set needsUpdate(value) { - if (value) { - this.updateVersion(); + /** + * @param {number} arg0 + */ + set numSplats(arg0) { + wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0); + } +} +if (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free; +function decode_rad_header(bytes) { + const ret = wasm.decode_rad_header(bytes); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); +} +function get_raycast_buffer() { + const ret = wasm.get_raycast_buffer(); + return ret; +} +function get_raycast_buffer2() { + const ret = wasm.get_raycast_buffer2(); + return ret; +} +function raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count) { + const ret = wasm.raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count); + return ret; +} +function raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity) { + const ret = wasm.raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity); + return ret; +} +function __wbg_get_imports() { + const import0 = { + __proto__: null, + __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) { + const ret = Error(getStringFromWasm0(arg0, arg1)); + return ret; + }, + __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) { + const v = arg0; + const ret = typeof v === "boolean" ? v : void 0; + return isLikeNone(ret) ? 16777215 : ret ? 1 : 0; + }, + __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) { + const ret = debugString(arg1); + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }, + __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) { + const ret = arg0 in arg1; + return ret; + }, + __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) { + const ret = !arg0; + return ret; + }, + __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) { + const val = arg0; + const ret = typeof val === "object" && val !== null; + return ret; + }, + __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) { + const ret = arg0 === void 0; + return ret; + }, + __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) { + const ret = arg0 == arg1; + return ret; + }, + __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) { + const obj = arg1; + const ret = typeof obj === "number" ? obj : void 0; + getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true); + }, + __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) { + const obj = arg1; + const ret = typeof obj === "string" ? obj : void 0; + var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }, + __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }, + __wbg_csplatarray_new: function(arg0) { + const ret = CsplatArray.__wrap(arg0); + return ret; + }, + __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) { + let deferred0_0; + let deferred0_1; + try { + deferred0_0 = arg0; + deferred0_1 = arg1; + console.error(getStringFromWasm0(arg0, arg1)); + } finally { + wasm.__wbindgen_free(deferred0_0, deferred0_1, 1); + } + }, + __wbg_get_4848e350b40afc16: function(arg0, arg1) { + const ret = arg0[arg1 >>> 0]; + return ret; + }, + __wbg_get_f96702c6245e4ef9: function() { + return handleError(function(arg0, arg1) { + const ret = Reflect.get(arg0, arg1); + return ret; + }, arguments); + }, + __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) { + const ret = arg0[arg1 >>> 0]; + return ret; + }, + __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) { + const ret = arg0[arg1]; + return ret; + }, + __wbg_gsplatarray_new: function(arg0) { + const ret = GsplatArray.__wrap(arg0); + return ret; + }, + __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) { + let result; + try { + result = arg0 instanceof ArrayBuffer; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }, + __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) { + let result; + try { + result = arg0 instanceof Uint8Array; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }, + __wbg_length_0c32cb8543c8e4c8: function(arg0) { + const ret = arg0.length; + return ret; + }, + __wbg_length_1e701798fdcaa3b4: function(arg0) { + const ret = arg0.length; + return ret; + }, + __wbg_length_6e821edde497a532: function(arg0) { + const ret = arg0.length; + return ret; + }, + __wbg_length_a4ca9e78359b5f1f: function(arg0) { + const ret = arg0.length; + return ret; + }, + __wbg_length_fd4646b401926788: function(arg0) { + const ret = arg0.length; + return ret; + }, + __wbg_new_227d7c05414eb861: function() { + const ret = new Error(); + return ret; + }, + __wbg_new_4f9fafbb3909af72: function() { + const ret = new Object(); + return ret; + }, + __wbg_new_a560378ea1240b14: function(arg0) { + const ret = new Uint8Array(arg0); + return ret; + }, + __wbg_new_f3c9df4f38f3f798: function() { + const ret = new Array(); + return ret; + }, + __wbg_new_with_length_26bffbe236bf73f9: function(arg0) { + const ret = new Float32Array(arg0 >>> 0); + return ret; + }, + __wbg_new_with_length_41a22191b9bdfd66: function(arg0) { + const ret = new Uint32Array(arg0 >>> 0); + return ret; + }, + __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) { + Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2); + }, + __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) { + Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2); + }, + __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) { + Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2); + }, + __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) { + const ret = arg0.push(arg1); + return ret; + }, + __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) { + arg0.set(getArrayU32FromWasm0(arg1, arg2)); + }, + __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) { + arg0[arg1] = arg2; + }, + __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) { + arg0[arg1 >>> 0] = arg2; + }, + __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) { + arg0.set(arg1, arg2 >>> 0); + }, + __wbg_set_8ee2d34facb8466e: function() { + return handleError(function(arg0, arg1, arg2) { + const ret = Reflect.set(arg0, arg1, arg2); + return ret; + }, arguments); + }, + __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) { + arg0.set(getArrayF32FromWasm0(arg1, arg2)); + }, + __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) { + arg0[arg1 >>> 0] = arg2 >>> 0; + }, + __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) { + const ret = arg1.stack; + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }, + __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) { + const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0); + return ret; + }, + __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) { + const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0); + return ret; + }, + __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) { + const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0); + return ret; + }, + __wbindgen_cast_0000000000000001: function(arg0) { + const ret = arg0; + return ret; + }, + __wbindgen_cast_0000000000000002: function(arg0, arg1) { + const ret = getArrayF32FromWasm0(arg0, arg1); + return ret; + }, + __wbindgen_cast_0000000000000003: function(arg0, arg1) { + const ret = getArrayU32FromWasm0(arg0, arg1); + return ret; + }, + __wbindgen_cast_0000000000000004: function(arg0, arg1) { + const ret = getStringFromWasm0(arg0, arg1); + return ret; + }, + __wbindgen_cast_0000000000000005: function(arg0) { + const ret = BigInt.asUintN(64, arg0); + return ret; + }, + __wbindgen_init_externref_table: function() { + const table = wasm.__wbindgen_externrefs; + const offset = table.grow(4); + table.set(0, void 0); + table.set(offset + 0, void 0); + table.set(offset + 1, null); + table.set(offset + 2, true); + table.set(offset + 3, false); } - } + }; + return { + __proto__: null, + "./spark_rs_bg.js": import0 + }; } -const _SplatAccumulator = class _SplatAccumulator { - constructor({ - extSplats, - covSplats - } = {}) { - this.time = 0; - this.deltaTime = 0; - this.viewToWorld = new THREE__namespace.Matrix4(); - this.viewOrigin = new THREE__namespace.Vector3(); - this.viewDirection = new THREE__namespace.Vector3(); - this.maxSplats = 0; - this.numSplats = 0; - this.target = null; - this.mapping = []; - this.version = -1; - this.mappingVersion = -1; - this.readback = null; - this.readbackSplats = []; - if (!threeMrtArray) { - throw new Error("Spark requires THREE.js r179 or above"); - } - this.extSplats = extSplats ?? true; - this.covSplats = covSplats ?? false; - } - dispose() { - if (this.target) { - this.target.dispose(); - this.target = null; - } - } - // Returns a THREE.DataArrayTexture representing the NewSplatAccumulator - // content as 2 x Uint32x4 data array textures (2048 x 2048 x 2048 in size) - getTextures() { - if (this.target) { - return this.target.textures; - } - return _SplatAccumulator.emptyTextures; +typeof FinalizationRegistry === "undefined" ? {} : new FinalizationRegistry((ptr) => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1)); +const CsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => { +}, unregister: () => { +} } : new FinalizationRegistry((ptr) => wasm.__wbg_csplatarray_free(ptr >>> 0, 1)); +const GsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => { +}, unregister: () => { +} } : new FinalizationRegistry((ptr) => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1)); +function addToExternrefTable0(obj) { + const idx = wasm.__externref_table_alloc(); + wasm.__wbindgen_externrefs.set(idx, obj); + return idx; +} +function debugString(val) { + const type = typeof val; + if (type == "number" || type == "boolean" || val == null) { + return `${val}`; } - // Given an array of splatCounts (.numSplats for each - // SplatGenerator/SplatMesh in the scene), compute a - // "mapping layout" in the composite array of generated outputs. - generateMapping(splatCounts) { - let maxSplats = 0; - const mapping = splatCounts.map((numSplats) => { - const base = maxSplats; - const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - maxSplats += rounded; - return { base, count: numSplats }; - }); - return { maxSplats, mapping }; + if (type == "string") { + return `"${val}"`; } - // Ensures our NewSplatAccumulator.target render target has enough space - // to generate maxSplats total Gsplats, and reallocate if not large enough. - ensureGenerate({ maxSplats }) { - if (this.target && (maxSplats ?? 1) <= this.maxSplats) { - return false; - } - this.dispose(); - const textureSize2 = getTextureSize(maxSplats ?? 1); - const { width, height, depth } = textureSize2; - this.maxSplats = textureSize2.maxSplats; - this.target = new THREE__namespace.WebGLArrayRenderTarget(width, height, depth, { - depthBuffer: false, - stencilBuffer: false, - generateMipmaps: false, - magFilter: THREE__namespace.NearestFilter, - minFilter: THREE__namespace.NearestFilter, - format: THREE__namespace.RGBAIntegerFormat, - type: THREE__namespace.UnsignedIntType - }); - this.target.scissorTest = true; - if (this.extSplats) { - const target2 = this.target.texture.clone(); - const target3 = this.target.texture.clone(); - target3.format = THREE__namespace.RGBAFormat; - target3.type = THREE__namespace.UnsignedByteType; - target3.internalFormat = "RGBA8"; - this.target.textures = [this.target.texture, target2, target3]; + if (type == "symbol") { + const description = val.description; + if (description == null) { + return "Symbol"; } else { - const target3 = this.target.texture.clone(); - target3.format = THREE__namespace.RGBAFormat; - target3.type = THREE__namespace.UnsignedByteType; - target3.internalFormat = "RGBA8"; - this.target.textures = [this.target.texture, target3]; - } - return true; - } - saveRenderState(renderer) { - return { - target: renderer.getRenderTarget(), - xrEnabled: renderer.xr.enabled, - autoClear: renderer.autoClear - }; - } - resetRenderState(renderer, state) { - renderer.setRenderTarget(state.target); - renderer.xr.enabled = state.xrEnabled; - renderer.autoClear = state.autoClear; - } - // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator, - // generating it if necessary and caching the result. - prepareProgramMaterial(generator, covGenerator) { - const theGenerator = generator ?? covGenerator; - if (!theGenerator) { - throw new Error("Either generator or covGenerator must be provided"); - } - let program = _SplatAccumulator.generatorProgram.get(theGenerator); - if (!program) { - const graph = dynoBlock( - { index: "int" }, - {}, - ({ index }, _outputs, { roots }) => { - if (generator) { - generator.inputs.index = index; - } - if (covGenerator) { - covGenerator.inputs.index = index; - } - if (this.extSplats) { - if (!this.covSplats) { - if (generator) { - const output = outputExtendedSplat(generator.outputs.gsplat); - roots.push(output); - } else { - throw new Error("Generator must be provided"); - } - } else { - if (covGenerator) { - const output = outputExtCovSplat(covGenerator.outputs.covsplat); - roots.push(output); - } else if (generator) { - const covsplat = gsplatToCovSplat(generator.outputs.gsplat); - const output = outputExtCovSplat(covsplat); - roots.push(output); - } else { - throw new Error("Generator must be provided"); - } - } - } else { - if (!this.covSplats) { - if (generator) { - const centerSubView = sub( - splitGsplat(generator.outputs.gsplat).outputs.center, - _SplatAccumulator.viewCenterUniform - ); - const halfAlpha = mul( - splitGsplat(generator.outputs.gsplat).outputs.opacity, - dynoConst("float", 0.5) - ); - const gsplat = combineGsplat({ - gsplat: generator.outputs.gsplat, - center: centerSubView, - opacity: halfAlpha - }); - const output = outputPackedSplat( - gsplat, - dynoConst("vec4", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]) - ); - roots.push(output); - } else { - throw new Error("Generator must be provided"); - } - } else { - let covsplat; - if (covGenerator) { - covsplat = covGenerator.outputs.covsplat; - } else if (generator) { - covsplat = gsplatToCovSplat(generator.outputs.gsplat); - } else { - throw new Error("Generator must be provided"); - } - const centerSubView = sub( - splitCovSplat(covsplat).outputs.center, - _SplatAccumulator.viewCenterUniform - ); - const halfAlpha = mul( - splitCovSplat(covsplat).outputs.opacity, - dynoConst("float", 0.5) - ); - covsplat = combineCovSplat({ - covsplat, - center: centerSubView, - opacity: halfAlpha - }); - const output = outputCovSplat( - covsplat, - dynoConst("vec4", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]) - ); - roots.push(output); - } - if (!generator) { - throw new Error("Generator must be provided"); - } - } - if (generator) { - const outputDepth = outputSplatDepth( - generator.outputs.gsplat, - _SplatAccumulator.viewCenterUniform, - _SplatAccumulator.viewDirUniform, - _SplatAccumulator.sortRadialUniform - ); - roots.push(outputDepth); - } - if (covGenerator) { - const outputDepth = outputCovSplatDepth( - covGenerator.outputs.covsplat, - _SplatAccumulator.viewCenterUniform, - _SplatAccumulator.viewDirUniform, - _SplatAccumulator.sortRadialUniform - ); - roots.push(outputDepth); - } - return void 0; - } - ); - program = new DynoProgram({ - graph, - inputs: { index: "_index" }, - outputs: {}, - template: this.extSplats ? _SplatAccumulator.programExtTemplate : _SplatAccumulator.programTemplate - // consoleLog: true, - }); - _SplatAccumulator.generatorProgram.set(theGenerator, program); + return `Symbol(${description})`; } - Object.assign(program.uniforms, { - targetLayer: { value: 0 }, - targetBase: { value: 0 }, - targetCount: { value: 0 } - }); - const material = program.prepareMaterial(); - _SplatAccumulator.fullScreenQuad.material = material; - return { program, material }; } - generate({ - generator, - covGenerator, - base, - count, - renderer - }) { - if (!this.target) { - throw new Error("Target must be initialized with ensureGenerate"); + if (type == "function") { + const name = val.name; + if (typeof name == "string" && name.length > 0) { + return `Function(${name})`; + } else { + return "Function"; } - if (base + count > this.maxSplats) { - throw new Error("Base + count exceeds maxSplats"); + } + if (Array.isArray(val)) { + const length2 = val.length; + let debug = "["; + if (length2 > 0) { + debug += debugString(val[0]); } - const { program, material } = this.prepareProgramMaterial( - generator, - covGenerator - ); - program.update(); - const renderState = this.saveRenderState(renderer); - const nextBase = Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT; - material.uniforms.targetBase.value = base; - material.uniforms.targetCount.value = count; - while (base < nextBase) { - const layer = Math.floor(base / layerSize); - material.uniforms.targetLayer.value = layer; - const layerBase = layer * layerSize; - const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH); - const layerYEnd = Math.min( - SPLAT_TEX_HEIGHT, - Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH) - ); - this.target.scissor.set( - 0, - layerYStart, - SPLAT_TEX_WIDTH, - layerYEnd - layerYStart - ); - renderer.setRenderTarget(this.target, layer); - renderer.xr.enabled = false; - renderer.autoClear = false; - _SplatAccumulator.fullScreenQuad.render(renderer); - base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart); + for (let i = 1; i < length2; i++) { + debug += ", " + debugString(val[i]); } - this.resetRenderState(renderer, renderState); - return { nextBase }; + debug += "]"; + return debug; } - prepareGenerate({ - renderer, - scene, - time, - camera, - sortRadial, - renderSize, - previous, - lodInstances - }) { - var _a2; - this.viewToWorld.copy(camera.matrixWorld); - camera.getWorldPosition(this.viewOrigin); - camera.getWorldDirection(this.viewDirection); - _SplatAccumulator.viewCenterUniform.value.copy(this.viewOrigin); - _SplatAccumulator.viewDirUniform.value.copy(this.viewDirection); - _SplatAccumulator.sortRadialUniform.value = sortRadial; - this.time = time; - this.deltaTime = time - previous.time; - const allGenerators = []; - scene.traverse((node) => { - if (node instanceof SplatGenerator) { - if (!camera.layers || camera.layers.test(node.layers)) { - allGenerators.push(node); - } - } - }); - const globalEditsSet = /* @__PURE__ */ new Set(); - scene.traverseVisible((node) => { - if (node instanceof SplatEdit) { - let ancestor = node.parent; - while (ancestor != null && !(ancestor instanceof SplatMesh)) { - ancestor = ancestor.parent; - } - if (ancestor == null) { - globalEditsSet.add(node); - } - } - }); - const globalEdits = Array.from(globalEditsSet); - for (const object of allGenerators) { - try { - (_a2 = object.frameUpdate) == null ? void 0 : _a2.call(object, { - renderer, - object, - time: this.time, - deltaTime: this.deltaTime, - viewToWorld: this.viewToWorld, - camera, - renderSize, - globalEdits, - lodIndices: lodInstances && object instanceof SplatMesh ? lodInstances.get(object) : void 0 - }); - } catch (error) { - console.error("frameUpdate error", error); - object.generator = void 0; - object.covGenerator = void 0; - object.generatorError = error; - } + const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val)); + let className; + if (builtInMatches && builtInMatches.length > 1) { + className = builtInMatches[1]; + } else { + return toString.call(val); + } + if (className == "Object") { + try { + return "Object(" + JSON.stringify(val) + ")"; + } catch (_) { + return "Object"; } - const visibleGenerators = []; - scene.traverseVisible((node) => { - if (node instanceof SplatGenerator) { - if (!camera.layers || camera.layers.test(node.layers)) { - visibleGenerators.push(node); - } - } - }); - const splatCounts = visibleGenerators.map( - (generator) => generator.numSplats - ); - const { maxSplats, mapping: baseCounts } = this.generateMapping(splatCounts); - const previousMappings = previous.mapping.reduce((mappings, mapping) => { - mappings.set(mapping.node, mapping); - return mappings; - }, /* @__PURE__ */ new Map()); - this.mapping = []; - this.numSplats = 0; - baseCounts.forEach(({ base, count }, index) => { - const node = visibleGenerators[index]; - const previousNode = previousMappings.get(node); - if (previousNode && previousNode.count !== node.numSplats) { - node.updateMappingVersion(); - } - const { generator, covGenerator } = node; - if ((generator || covGenerator) && count > 0) { - const { version, mappingVersion } = node; - this.mapping.push({ - node, - generator, - covGenerator, - version, - mappingVersion, - base, - count - }); - this.numSplats = Math.max(this.numSplats, base + count); - } - }); - const { splatsUpdated, mappingUpdated } = previous.checkVersions( - this.mapping - ); - this.version = previous.version + (splatsUpdated ? 1 : 0); - this.mappingVersion = previous.mappingVersion + (mappingUpdated ? 1 : 0); - return { - sameMapping: !mappingUpdated, - version: this.version, - mappingVersion: this.mappingVersion, - visibleGenerators, - generate: () => { - this.ensureGenerate({ maxSplats }); - for (const { node, base, count } of this.mapping) { - const { generator, covGenerator } = node; - if ((generator || covGenerator) && count > 0) { - this.generate({ generator, covGenerator, base, count, renderer }); - } - } - }, - readback: async () => { - const textures = this.getTextures(); - if (this.readbackSplats.length === 0) { - this.readbackSplats = [ - new DynoUsampler2DArray({ value: textures[0], key: "extSplats" }), - new DynoUsampler2DArray({ value: textures[1], key: "extSplats" }) - ]; - } - this.readbackSplats[0].value = textures[0]; - this.readbackSplats[1].value = textures[1]; - if (!this.readback) { - this.readback = new Readback({ renderer }); - } - const readback = this.readback; - const words = this.extSplats ? 8 : 4; - const array = readback.ensureBuffer( - this.numSplats * words, - new Uint32Array(0) - ); - const reader = dynoBlock( - { index: "int" }, - { rgba8: "vec4" }, - ({ index }) => { - const rgba8 = new Dyno({ - inTypes: { - index: "int", - extSplats1: "usampler2DArray", - extSplats2: "usampler2DArray" - }, - outTypes: { rgba8: "vec4" }, - inputs: { - index, - extSplats1: this.readbackSplats[0], - extSplats2: this.readbackSplats[1] - }, - statements: ({ inputs, outputs }) => { - if (this.extSplats) { - return unindentLines(` - int indexDiv8 = ${inputs.index} >> 3; - ivec3 coord = splatTexCoord(indexDiv8); - uvec4 packedData; - if ((${inputs.index} & 4) == 0) { - packedData = texelFetch(${inputs.extSplats1}, coord, 0); - } else { - packedData = texelFetch(${inputs.extSplats2}, coord, 0); - } - - int indexMod4 = ${inputs.index} & 3; - uint data = (indexMod4 == 0) ? packedData.x - : (indexMod4 == 1) ? packedData.y - : (indexMod4 == 2) ? packedData.z - : packedData.w; - ${outputs.rgba8} = uintToVec4(data); - `); - } - return unindentLines(` - int indexDiv4 = ${inputs.index} >> 2; - ivec3 coord = splatTexCoord(indexDiv4); - uvec4 packedData = texelFetch(${inputs.extSplats1}, coord, 0); - - int indexMod4 = ${inputs.index} & 3; - uint data = (indexMod4 == 0) ? packedData.x - : (indexMod4 == 1) ? packedData.y - : (indexMod4 == 2) ? packedData.z - : packedData.w; - ${outputs.rgba8} = uintToVec4(data); - `); - } - }).outputs.rgba8; - return { rgba8 }; - } - ); - return await readback.renderReadback({ - reader, - count: this.numSplats * words, - renderer, - readback: array - }); - } - }; } - // Check if this accumulator has exactly the same generator mapping as - // the previous one. If so, we can reuse the Gsplat sort order. - checkVersions(otherMapping) { - if (this.mapping.length !== otherMapping.length) { - return { splatsUpdated: true, mappingUpdated: true }; - } - const mappingUpdated = this.mapping.some((item, i) => { - const other = otherMapping[i]; - return item.node !== other.node || item.base !== other.base || item.count !== other.count || item.mappingVersion !== other.mappingVersion; - }); - if (mappingUpdated) { - return { splatsUpdated: true, mappingUpdated: true }; - } - const splatsUpdated = this.mapping.some((item, i) => { - return item.version !== otherMapping[i].version; - }); - return { splatsUpdated, mappingUpdated }; + if (val instanceof Error) { + return `${val.name}: ${val.message} +${val.stack}`; + } + return className; +} +function getArrayF32FromWasm0(ptr, len) { + ptr = ptr >>> 0; + return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len); +} +function getArrayU16FromWasm0(ptr, len) { + ptr = ptr >>> 0; + return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len); +} +function getArrayU32FromWasm0(ptr, len) { + ptr = ptr >>> 0; + return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len); +} +function getArrayU8FromWasm0(ptr, len) { + ptr = ptr >>> 0; + return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len); +} +let cachedDataViewMemory0 = null; +function getDataViewMemory0() { + if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === void 0 && cachedDataViewMemory0.buffer !== wasm.memory.buffer) { + cachedDataViewMemory0 = new DataView(wasm.memory.buffer); + } + return cachedDataViewMemory0; +} +let cachedFloat32ArrayMemory0 = null; +function getFloat32ArrayMemory0() { + if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) { + cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer); + } + return cachedFloat32ArrayMemory0; +} +function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return decodeText(ptr, len); +} +let cachedUint16ArrayMemory0 = null; +function getUint16ArrayMemory0() { + if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) { + cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer); } -}; -_SplatAccumulator.viewCenterUniform = new DynoVec3({ value: new THREE__namespace.Vector3() }); -_SplatAccumulator.viewDirUniform = new DynoVec3({ value: new THREE__namespace.Vector3() }); -_SplatAccumulator.sortRadialUniform = new DynoBool({ value: true }); -_SplatAccumulator.emptyTexture = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 4); - const texture2 = new THREE__namespace.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE__namespace.RGBAIntegerFormat; - texture2.type = THREE__namespace.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_SplatAccumulator.emptyTextures = (() => { - return [_SplatAccumulator.emptyTexture, _SplatAccumulator.emptyTexture]; -})(); -_SplatAccumulator.programExtTemplate = new DynoProgramTemplate( - getShaders().computeUvec4x2Vec4Template -); -_SplatAccumulator.programTemplate = new DynoProgramTemplate( - getShaders().computeUvec4Vec4Template -); -_SplatAccumulator.generatorProgram = /* @__PURE__ */ new WeakMap(); -_SplatAccumulator.fullScreenQuad = new Pass_js.FullScreenQuad( - new THREE__namespace.RawShaderMaterial({ visible: false }) -); -let SplatAccumulator = _SplatAccumulator; -class SplatGeometry extends THREE__namespace.InstancedBufferGeometry { - constructor() { - super(); - this.setAttribute("position", new THREE__namespace.BufferAttribute(QUAD_VERTICES, 3)); - this.setIndex(new THREE__namespace.BufferAttribute(QUAD_INDICES, 1)); + return cachedUint16ArrayMemory0; +} +let cachedUint32ArrayMemory0 = null; +function getUint32ArrayMemory0() { + if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) { + cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer); } + return cachedUint32ArrayMemory0; } -const QUAD_VERTICES = new Float32Array([ - -1, - -1, - 0, - 1, - -1, - 0, - 1, - 1, - 0, - -1, - 1, - 0 -]); -const QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]); -const _SparkRenderer = class _SparkRenderer extends THREE__namespace.Mesh { - constructor(options) { - if (!options) { - throw new Error("SparkRenderer options are required"); - } - if (!options.renderer) { - throw new Error("renderer is required in SparkRenderer options"); +let cachedUint8ArrayMemory0 = null; +function getUint8ArrayMemory0() { + if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { + cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8ArrayMemory0; +} +function handleError(f, args) { + try { + return f.apply(this, args); + } catch (e) { + const idx = addToExternrefTable0(e); + wasm.__wbindgen_exn_store(idx); + } +} +function isLikeNone(x) { + return x === void 0 || x === null; +} +function passStringToWasm0(arg, malloc, realloc) { + if (realloc === void 0) { + const buf = cachedTextEncoder.encode(arg); + const ptr2 = malloc(buf.length, 1) >>> 0; + getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf); + WASM_VECTOR_LEN = buf.length; + return ptr2; + } + let len = arg.length; + let ptr = malloc(len, 1) >>> 0; + const mem = getUint8ArrayMemory0(); + let offset = 0; + for (; offset < len; offset++) { + const code = arg.charCodeAt(offset); + if (code > 127) break; + mem[ptr + offset] = code; + } + if (offset !== len) { + if (offset !== 0) { + arg = arg.slice(offset); } - const uniforms = _SparkRenderer.makeUniforms(); - Object.assign(uniforms, options.extraUniforms ?? {}); - const shaders2 = getShaders(); - const premultipliedAlpha = options.premultipliedAlpha ?? true; - const geometry = new SplatGeometry(); - const material = new THREE__namespace.ShaderMaterial({ - glslVersion: THREE__namespace.GLSL3, - vertexShader: options.vertexShader ?? shaders2.splatVertex, - fragmentShader: options.fragmentShader ?? shaders2.splatFragment, - uniforms, - premultipliedAlpha, - transparent: options.transparent ?? true, - depthTest: options.depthTest ?? true, - depthWrite: options.depthWrite ?? false, - side: THREE__namespace.DoubleSide, - allowOverride: false - }); - super(geometry, material); - this.renderSize = new THREE__namespace.Vector2(); - this.lastFrame = -1; - this.updateTimeoutId = -1; - this.orderingTexture = null; - this.maxSplats = 0; - this.activeSplats = 0; - this.accumulators = []; - this.sorting = false; - this.sortDirty = false; - this.lastSortTime = 0; - this.sortWorker = null; - this.sortTimeoutId = -1; - this.sortedCenter = new THREE__namespace.Vector3().setScalar(Number.NEGATIVE_INFINITY); - this.sortedDir = new THREE__namespace.Vector3().setScalar(0); - this.readback32 = new Uint32Array(0); - this.lastLodRaycastTime = 0; - this.lodWorker = null; - this.lodMeshes = []; - this.lodDirty = false; - this.lodIds = /* @__PURE__ */ new Map(); - this.lodIdToSplats = /* @__PURE__ */ new Map(); - this.lodInitQueue = []; - this.lodInstances = /* @__PURE__ */ new Map(); - this.lodUpdates = []; - this.lastTraverseTime = 0; - this.pagerId = 0; - this.superXY = 1; - this.flushAfterGenerate = false; - this.flushAfterRead = false; - this.readPause = 1; - this.sortPause = 0; - this.sortDelay = 0; - this.pageSizeWarning = false; - this.material = material; - this.uniforms = uniforms; - this.frustumCulled = false; - this.renderer = options.renderer; - this.onDirty = options.onDirty; - this.dirty = true; - this.autoUpdate = options.autoUpdate ?? true; - this.preUpdate = options.preUpdate ?? true; - this.maxStdDev = options.maxStdDev ?? Math.sqrt(8); - this.minPixelRadius = options.minPixelRadius ?? 0; - this.maxPixelRadius = options.maxPixelRadius ?? 512; - this.accumExtSplats = options.accumExtSplats ?? false; - this.covSplats = options.covSplats ?? false; - this.minAlpha = options.minAlpha ?? 0.5 * (1 / 255); - this.enable2DGS = options.enable2DGS ?? false; - this.preBlurAmount = options.preBlurAmount ?? 0; - this.blurAmount = options.blurAmount ?? 0.3; - this.focalDistance = options.focalDistance ?? 0; - this.apertureAngle = options.apertureAngle ?? 0; - this.falloff = options.falloff ?? 1; - this.clipXY = options.clipXY ?? 1.4; - this.focalAdjustment = options.focalAdjustment ?? 1; - this.encodeLinear = options.encodeLinear ?? false; - this.sortRadial = options.sortRadial ?? true; - this.minSortIntervalMs = options.minSortIntervalMs ?? 0; - this.enableLod = options.enableLod ?? true; - this.enableDriveLod = options.enableDriveLod ?? this.enableLod; - this.enableLodFetching = options.enableLodFetching ?? true; - this.lodSplatCount = options.lodSplatCount; - this.lodSplatScale = options.lodSplatScale ?? 1; - this.lodRenderScale = options.lodRenderScale ?? 1; - this.lodInflate = options.lodInflate ?? false; - this.pagedExtSplats = options.pagedExtSplats ?? false; - const defaultPages = isMobile() ? isIos() ? 96 : 128 : 256; - this.maxPagedSplats = options.maxPagedSplats ?? defaultPages * 65536; - this.numLodFetchers = options.numLodFetchers ?? 3; - this.behindFoveate = options.behindFoveate ?? 0.2; - this.coneFov0 = options.coneFov0 ?? 90; - this.coneFov = options.coneFov ?? 120; - this.coneFoveate = options.coneFoveate ?? 0.4; - this.lodRaycast = options.lodRaycast === void 0 ? isMobile() ? 1e4 : 25e3 : options.lodRaycast; - this.lodRaycastIntervalMs = options.lodRaycastIntervalMs ?? 500; - this.clock = options.clock ? cloneClock(options.clock) : new THREE__namespace.Clock(); - const accumulatorOptions = { - extSplats: this.accumExtSplats, - covSplats: this.covSplats + ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; + const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); + const ret = cachedTextEncoder.encodeInto(arg, view); + offset += ret.written; + ptr = realloc(ptr, len, offset, 1) >>> 0; + } + WASM_VECTOR_LEN = offset; + return ptr; +} +function takeFromExternrefTable0(idx) { + const value = wasm.__wbindgen_externrefs.get(idx); + wasm.__externref_table_dealloc(idx); + return value; +} +let cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }); +cachedTextDecoder.decode(); +const MAX_SAFARI_DECODE_BYTES = 2146435072; +let numBytesDecoded = 0; +function decodeText(ptr, len) { + numBytesDecoded += len; + if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) { + cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }); + cachedTextDecoder.decode(); + numBytesDecoded = len; + } + return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); +} +const cachedTextEncoder = new TextEncoder(); +if (!("encodeInto" in cachedTextEncoder)) { + cachedTextEncoder.encodeInto = function(arg, view) { + const buf = cachedTextEncoder.encode(arg); + view.set(buf); + return { + read: arg.length, + written: buf.length }; - this.display = new SplatAccumulator(accumulatorOptions); - this.current = this.display; - this.accumulators.push(new SplatAccumulator(accumulatorOptions)); - this.accumulators.push(new SplatAccumulator(accumulatorOptions)); - if (options.target) { - const { - width, - height, - doubleBuffer, - superXY: origSuperXY, - ...origTargetOptions - } = options.target; - const superXY = Math.max(1, Math.min(4, origSuperXY ?? 1)); - if (width * superXY > 8192 || height * superXY > 8192) { - throw new Error("Target size too large"); - } - this.superXY = superXY; - const superWidth = width * superXY; - const superHeight = height * superXY; - const targetOptions = { - format: THREE__namespace.RGBAFormat, - type: THREE__namespace.UnsignedByteType, - colorSpace: THREE__namespace.SRGBColorSpace, - ...origTargetOptions - }; - this.target = new THREE__namespace.WebGLRenderTarget( - superWidth, - superHeight, - targetOptions - ); - if (doubleBuffer) { - this.backTarget = new THREE__namespace.WebGLRenderTarget( - superWidth, - superHeight, - targetOptions - ); + }; +} +let WASM_VECTOR_LEN = 0; +let wasm; +function __wbg_finalize_init(instance, module2) { + wasm = instance.exports; + cachedDataViewMemory0 = null; + cachedFloat32ArrayMemory0 = null; + cachedUint16ArrayMemory0 = null; + cachedUint32ArrayMemory0 = null; + cachedUint8ArrayMemory0 = null; + wasm.__wbindgen_start(); + return wasm; +} +async function __wbg_load(module2, imports) { + if (typeof Response === "function" && module2 instanceof Response) { + if (typeof WebAssembly.instantiateStreaming === "function") { + try { + return await WebAssembly.instantiateStreaming(module2, imports); + } catch (e) { + const validResponse = module2.ok && expectedResponseType(module2.type); + if (validResponse && module2.headers.get("Content-Type") !== "application/wasm") { + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); + } else { + throw e; + } } - this.encodeLinear = options.encodeLinear ?? true; + } + const bytes = await module2.arrayBuffer(); + return await WebAssembly.instantiate(bytes, imports); + } else { + const instance = await WebAssembly.instantiate(module2, imports); + if (instance instanceof WebAssembly.Instance) { + return { instance, module: module2 }; + } else { + return instance; } } - static makeUniforms() { - const uniforms = { - // // number of active splats to render - // numSplats: { value: 0 }, - // Size of render viewport in pixels - renderSize: { value: new THREE__namespace.Vector2() }, - // Near and far plane distances - near: { value: 0.1 }, - far: { value: 1e3 }, - // SplatAccumulator to view transformation quaternion - renderToViewQuat: { value: new THREE__namespace.Quaternion() }, - // SplatAccumulator to view transformation translation - renderToViewPos: { value: new THREE__namespace.Vector3() }, - renderToViewBasis: { value: new THREE__namespace.Matrix3() }, - renderToViewOffset: { value: new THREE__namespace.Vector3() }, - // Maximum distance (in stddevs) from Gsplat center to render - maxStdDev: { value: 1 }, - // Minimum pixel radius for splat rendering - minPixelRadius: { value: 0 }, - // Maximum pixel radius for splat rendering - maxPixelRadius: { value: 512 }, - // Minimum alpha value for splat rendering - minAlpha: { value: 0.5 * (1 / 255) }, - // Enable interpreting 0-thickness Gsplats as 2DGS - enable2DGS: { value: false }, - // Enable ray-splat max response evaluation - // enableRayEval: { value: false }, - // Inflate LoD splats so that opacity <= 1.0 - lodInflate: { value: false }, - // Add to projected 2D splat covariance diagonal (thickens and brightens) - preBlurAmount: { value: 0 }, - // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing) - blurAmount: { value: 0.3 }, - // Depth-of-field distance to focal plane - focalDistance: { value: 0 }, - // Full-width angle of aperture opening (in radians) - apertureAngle: { value: 0 }, - // Modulate Gaussian kernal falloff. 0 means "no falloff, flat shading", - // 1 is normal e^-x^2 falloff. - falloff: { value: 1 }, - // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds - clipXY: { value: 1.4 }, - // Debug renderSize scale factor - focalAdjustment: { value: 1 }, - // Whether to encode Gsplat with linear RGB (for environment mapping) - encodeLinear: { value: false }, - // Back-to-front sort ordering of splat indices - ordering: { type: "t", value: _SparkRenderer.emptyOrdering }, - enableExtSplats: { value: false }, - enableCovSplats: { value: false }, - // Gsplat collection to render - extSplats: { type: "t", value: SplatAccumulator.emptyTexture }, - extSplats2: { type: "t", value: SplatAccumulator.emptyTexture }, - // Time in seconds for time-based effects - time: { value: 0 }, - // Delta time in seconds since last frame - deltaTime: { value: 0 }, - // Debug flag that alternates each frame - debugFlag: { value: false } - }; - return uniforms; + function expectedResponseType(type) { + switch (type) { + case "basic": + case "cors": + case "default": + return true; + } + return false; } - dispose() { - if (this.target) { - this.target.dispose(); - this.target = void 0; +} +async function __wbg_init(module_or_path) { + if (wasm !== void 0) return wasm; + if (module_or_path !== void 0) { + if (Object.getPrototypeOf(module_or_path) === Object.prototype) { + ({ module_or_path } = module_or_path); + } else { + console.warn("using deprecated parameters for the initialization function; pass a single object instead"); } - if (this.backTarget) { - this.backTarget.dispose(); - this.backTarget = void 0; + } + const imports = __wbg_get_imports(); + if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) { + module_or_path = fetch(module_or_path); + } + const { instance, module: module2 } = await __wbg_load(await module_or_path, imports); + return __wbg_finalize_init(instance); +} +function b64ToUint6(nChr) { + return nChr > 64 && nChr < 91 ? nChr - 65 : nChr > 96 && nChr < 123 ? nChr - 71 : nChr > 47 && nChr < 58 ? nChr + 4 : nChr === 43 ? 62 : nChr === 47 ? 63 : 0; +} +function base64ToUint8(sBase64, nBlocksSize) { + const sB64Enc = sBase64.replace(/[^A-Za-z0-9+/]/g, ""); + const nInLen = sB64Enc.length; + const nOutLen = nBlocksSize ? Math.ceil((nInLen * 3 + 1 >> 2) / nBlocksSize) * nBlocksSize : nInLen * 3 + 1 >> 2; + const taBytes = new Uint8Array(nOutLen); + let nMod3; + let nMod4; + let nUint24 = 0; + let nOutIdx = 0; + for (let nInIdx = 0; nInIdx < nInLen; nInIdx++) { + nMod4 = nInIdx & 3; + nUint24 |= b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 6 * (3 - nMod4); + if (nMod4 === 3 || nInLen - nInIdx === 1) { + nMod3 = 0; + while (nMod3 < 3 && nOutIdx < nOutLen) { + taBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255; + nMod3++; + nOutIdx++; + } + nUint24 = 0; + } + } + return taBytes; +} +function toUint8(b64) { + if (typeof Uint8Array.fromBase64 === "function") return Uint8Array.fromBase64(b64); + let bin = atob(b64); + let len = bin.length; + let bytes = new Uint8Array(len); + for (let i = 0; i < len; i++) { + bytes[i] = bin.charCodeAt(i); + } + return bytes; +} +const decode64 = typeof atob === "function" ? toUint8 : base64ToUint8; +const WASM = decode64("AGFzbQEAAAABzAdyYAN/f38Bf2ACf38AYAJ/fwF/YAF/AGABfwF/YAN/f38AYAR/f39/AGAFf39/f38AYAADf39/YAZ/f39/f38AYAd/f39/f39/AGAEf39/fwF/YAFvAX9gCH9/f39/f39/AGABfwN/f39gAABgBX9/f39/AX9gAX0BfWACf28AYAF/AX5gBn9/f39/fQBgAAFvYAN/fX8AYAZ/f39/f38Bf2AFf39/fn8AYAABf2ABfwFvYAJ/fwFvYAJ/fQBgAX4Bf2ADb39/AW9gA29/fwBgAm9vAX9gA39/bwBgCX9/f39/f39/fwBgB39/f39/f38Bf2ADf39/AX5gAn9vA39/f2ACfX0BfWACb28Bb2ACb38Bb2AEf39/fQF/YAx/f39/f39/f39/f38AYAl/f39/f39/f38Bf2AFf39/fX8AYAV/f39/fQBgBH9/f34AYAR/fX9/AX9gE39/f39/f39/f39/f39/f39/f38Bf2ATf39/f39/f39/f39/f39/f39/fwBgA35+fwF+YAd/f39/f319AGADf35+AGAFf399f38AYAV/f3x/fwBgBX9/fn9/AGATf318f39/f39/f39/f39/f39/fwN/f39gBH9vf28Df39/YAN/b28Bf2AAAn9/YANvb28Bf2ADb29vAGADb39vAGADb29/AGABbwFvYAF8AW9gAX4Bb2AKf39/f39/f39/fwF/YAt/f39/f39/f39/fwF/YAp/f39/f39/f39/AGAGf399f39/AGACf38BfWACf34AYAN/fX8Bf2AGf35/f39/AGAFf39/fn4AYAh/f3t9fX9/fwBgCn9/f397fX19fX8AYAZ/f39/fX0AYAV/f39/fwF9YAR+fn9/AX5gBH9/f38BfWACfn8AYAF/AX1gCX9/f39/f35+fgBgA39/ewBgAn5/AX9gAn9+AX9gAn1/AX1gA319fQF9YAR/fn5/AGAGf39/fX9/AGAGf39/fH9/AGAGf39/fn9/AGAJf39/f39/f39vA39/f2AIf39/f29/f38Df39/YAd/f39/f39/A39/f2AHf29/fX9/bwN/f39gB39vb399f38Df39/YA59fX19fX19fX1/b319fwFvYAZ/b399f28Df39/YAZ/b29/fX8Df39/YAV/f39/bwN/f39gBH9/f38Df39/YAR/b29/A39/f2ACf38Df39/YA19fX19fX19fX1/fX1/AW9gAW8Df39/YAJ/bwJ/f2AKfX19fX19fX19fwFvYAR/fX9/AGAEf3x/fwBgBH9+f38AYAF8AX8CxRU0EC4vc3BhcmtfcnNfYmcuanMaX193YmdfbmV3X2YzYzlkZjRmMzhmM2Y3OTgAFRAuL3NwYXJrX3JzX2JnLmpzJl9fd2JnX25ld193aXRoX2xlbmd0aF80MWEyMjE5MWI5YmRmZDY2ABoQLi9zcGFya19yc19iZy5qcx9fX3diZ19zdWJhcnJheV9kNTFlODk0NThiM2ZkYmY2AB4QLi9zcGFya19yc19iZy5qcx1fX3diZ19sZW5ndGhfMWU3MDE3OThmZGNhYTNiNAAMEC4vc3BhcmtfcnNfYmcuanMaX193Ymdfc2V0XzQ0ODEyNjc2OWJmN2MxODEAHxAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX25ld180ZjlmYWZiYjM5MDlhZjcyABUQLi9zcGFya19yc19iZy5qcxpfX3diZ19zZXRfOGVlMmQzNGZhY2I4NDY2ZQA8EC4vc3BhcmtfcnNfYmcuanMbX193YmdfcHVzaF82YmRiYzk5MGJlNWFjMzdiACAQLi9zcGFya19yc19iZy5qcxVfX3diZ19jc3BsYXRhcnJheV9uZXcAGhAuL3NwYXJrX3JzX2JnLmpzFV9fd2JnX2dzcGxhdGFycmF5X25ldwAaEC4vc3BhcmtfcnNfYmcuanMcX193YmdfRXJyb3JfMmU1OWIxYjM3YTlhMzRjMwAbEC4vc3BhcmtfcnNfYmcuanMrX193YmdfX193YmluZGdlbl9pc19vYmplY3RfNDBjNWE4MDU3MmU4ZjlkMwAMEC4vc3BhcmtfcnNfYmcuanMnX193YmdfZ2V0X3dpdGhfcmVmX2tleV82NDEyY2YzMDk0NTk5Njk0ACcQLi9zcGFya19yc19iZy5qcy5fX3diZ19fX3diaW5kZ2VuX2lzX3VuZGVmaW5lZF9jMGNjYTcyYjgyYjg2ZjRkAAwQLi9zcGFya19yc19iZy5qcyRfX3diZ19fX3diaW5kZ2VuX2luXzRiZDdhNTdlNTQzMzczNjYAIBAuL3NwYXJrX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fbnVtYmVyX2dldF83NTc5YWFiMDJhOGE2MjBjABIQLi9zcGFya19yc19iZy5qcy1fX3diZ19fX3diaW5kZ2VuX2Jvb2xlYW5fZ2V0X2E4NmMyMTY1NzVhNzVjMzAADBAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX3NldF82YmU0Mjc2OGM2OTBlMzgwAD0QLi9zcGFya19yc19iZy5qcxpfX3diZ19zZXRfNmM2MGIyZThhZDBlOTM4MwA+EC4vc3BhcmtfcnNfYmcuanMaX193Ymdfc2V0XzgxYjQxNzQzNTJlNmEwOTUAPxAuL3NwYXJrX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfZTQyMjc1ZTYwMWUxNGVlYgAhEC4vc3BhcmtfcnNfYmcuanMaX193YmdfZ2V0X2Y5NjcwMmM2MjQ1ZTRlZjkAJxAuL3NwYXJrX3JzX2JnLmpzKl9fd2JnX19fd2JpbmRnZW5faXNfZmFsc3lfYzZkZGZhZTFiYjU2ZDVlZgAMEC4vc3BhcmtfcnNfYmcuanMdX193YmdfbGVuZ3RoXzBjMzJjYjg1NDNjOGU0YzgADBAuL3NwYXJrX3JzX2JnLmpzH19fd2JnX3N1YmFycmF5XzBmOThkM2ZiNjM0NTA4YWQAHhAuL3NwYXJrX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfM2UwNWViOTU0NTU2NTA0NgAhEC4vc3BhcmtfcnNfYmcuanMdX193YmdfbGVuZ3RoXzZlODIxZWRkZTQ5N2E1MzIADBAuL3NwYXJrX3JzX2JnLmpzJF9fd2JnX2dldF91bmNoZWNrZWRfN2Q3YmFiZTMyZTllNmE1NAAoEC4vc3BhcmtfcnNfYmcuanMgX193Ymdfc2V0X2luZGV4XzMzOGE2NmU0MGZjNDVkZWUAHxAuL3NwYXJrX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF9hNGNhOWU3ODM1OWI1ZjFmAAwQLi9zcGFya19yc19iZy5qcx9fX3diZ19zdWJhcnJheV81MTdjZDBmMTgxMWFiODcyAB4QLi9zcGFya19yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsXzY0YzI4N2EyN2NjMjRkMjcAIRAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX2dldF80ODQ4ZTM1MGI0MGFmYzE2ACgQLi9zcGFya19yc19iZy5qcyZfX3diZ19uZXdfd2l0aF9sZW5ndGhfMjZiZmZiZTIzNmJmNzNmOQAaEC4vc3BhcmtfcnNfYmcuanMdX193YmdfbGVuZ3RoX2ZkNDY0NmI0MDE5MjY3ODgADBAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX3NldF9hOThjOGRhNjU1N2U2M2RlAB8QLi9zcGFya19yc19iZy5qcxpfX3diZ19uZXdfMjI3ZDdjMDU0MTRlYjg2MQAVEC4vc3BhcmtfcnNfYmcuanMcX193Ymdfc3RhY2tfM2IwZDk3NGJiZjMxZTQ0ZgASEC4vc3BhcmtfcnNfYmcuanMcX193YmdfZXJyb3JfYTZmYTIwMmI1OGFhMWNkMwABEC4vc3BhcmtfcnNfYmcuanMwX193YmdfX193YmluZGdlbl9qc3ZhbF9sb29zZV9lcV8zYTcyYWU3NjRkNDZkOTQ0ACAQLi9zcGFya19yc19iZy5qcyxfX3diZ19fX3diaW5kZ2VuX3N0cmluZ19nZXRfOTE0ZGY5N2ZjZmE3ODhmMgASEC4vc3BhcmtfcnNfYmcuanMsX193YmdfaW5zdGFuY2VvZl9VaW50OEFycmF5XzRiOGRhNjgzZGViMjVkNzIADBAuL3NwYXJrX3JzX2JnLmpzLV9fd2JnX2luc3RhbmNlb2ZfQXJyYXlCdWZmZXJfZmY3YzEzMzdhNWUzYjMzYQAMEC4vc3BhcmtfcnNfYmcuanMaX193YmdfbmV3X2E1NjAzNzhlYTEyNDBiMTQAQBAuL3NwYXJrX3JzX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfODFmYzc3Njc5YWY4M2JjNgABEC4vc3BhcmtfcnNfYmcuanMuX193YmdfX193YmluZGdlbl9kZWJ1Z19zdHJpbmdfZGQ1ZDJkMDdjZTllNmM1NwASEC4vc3BhcmtfcnNfYmcuanMfX193YmluZGdlbl9pbml0X2V4dGVybnJlZl90YWJsZQAPEC4vc3BhcmtfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDEAQRAuL3NwYXJrX3JzX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAyABsQLi9zcGFya19yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMwAbEC4vc3BhcmtfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDQAGxAuL3NwYXJrX3JzX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDA1AEID2wrZChwcFhYBAQoKCQEKCgUJBAQpCgoEDQQpDQEKAQUGBAQEBA0GBAQEBAUGBAQEBA8FCQkJBgEBCQkqBioCAQcJBgkGAgENDQYGBQErBAcBAEMBAUQGBgICAgEGAQQEBAQGAQEFBgYFBgYCAgYBCQIHBQYBAQEDBgQDBAEQAwQHAAYBBwYEAw0CBAEBAQEBFwQGAQIEBQYFA0UFARAHAwIBAQcCBQIBLAkFBwQGBAIEBgECBSIHAiwBAQcHAQYGBhQNASMECQcAAQAAAgEFAgUtBQoFBwYBAwYGAQ0BAQUDCQEBAwIFBgIFAwMCAwEBBAFGAi0GAwEHAQcHEQMRRwUHBgEDBwcBAQECFAICCQkEAgEuBw0BAwkFAQEBAQABCyQELwMBAwMCAQECA0gEBQEGAwQjBUkBAQEBBwAYBQICAUoCCQIBBwEAAQYJAUsGBgYBAwMFBQEFTAMBAwYEBAUFBTAwBAQvAwMxMQYkBQUKAQMJAAUGBQcBAgMDAwMHTQIBBQkJCQUABwMHAQEAAgYFAQMDAwMBAwYBAQECAU4GAgUGAQUBCwAJCQQBARcBAgIHFwABBQYDBQ0FFwEDAAUiAgEFAAAHBQUAABQJDwUHAgIKAgIBAgcHAgMKBQMFAQMEGAUHMgUFBQMyAQEzAAYEAwMKBREJAwMEBwoBBQUFTxQGBQIBAwYCUAUCAQMBAwFRAQQBBwUCBgIYAQJSAgIBAVMDAgEDAgJUAQsHBwcHCgEBAgcDAwkCBQEHBwULBgcEBAQDAQECCQYGAREDEAQEBwEEGRAKVSMEAwECByIHCQUEAhgDAgIFBAsWAgoCEQJWAzMLAgM0AAIBFAMHAQICBAIHAQIBAgICAgIQBgEEBgQBBgIZAgYCBREBAwIDBwUHBAQHBAEBAQEBAQIBAQEBAQIBBAQBAQACAgEBAwEDAgIDEQEDBQEBAgMDAgMCAQkBAQUHAwIBAwMHAgIABwMDAgICAQIHAQEDAgMrBQIHAgIFAgICAwUFAwEBAQICAgICVwECAgICAgIDAQkBAQQDCQEJAi4DAQEBAQEJCQICAQICAgMDBAMDAQEBAwEBAQUBBQFYAQJZAQEBAAEDBgIBCwsCAQYFAgIBAQQDAwEDAgIDAwMLAgEBAgEBAQEAAgM0AAAHBQMDBQMYAgUDFhYHBwkDBgUFBQUDAwMDAwMGHBwAAwYCAwADBAQEBAIFAQQEBAkEBwQFAwMDAwMCAgICBhMFWgUEAQMBAQMBBQQEWwlcXQEBAgUCBwICBhEAAAAAAAAAAAAAAAAEAgIAAAAAHR0EAAQdBAQEAgACAgIAODgFARMFAQAAAAECAAICAgIFAgECBBQCAgJeEF8HAgYCBwFgYWIDDwMCA2NkZQIPC2YCZzk5aAICAQICAgICCQICAgIlaSUlAAICAgICAgICAgICag4ODg4ODg4ODmsEBAQEAgJsAQEBAQABAgICFwICAgICbQECAgEQBzU2NwEBAgILBgIBADo6AwICJiYABQIDAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwMDAQIBAQEBAQEBAQEEAgACAgICAgkCAgICAQEBAQIDAQEBAgECAgICAgIEcR0DAwIHAgkBARkZBRISAgECAQEBAQEBAQEBAgIBAgEBAQEBAQEBAwQBBQUDBQIFBAUBBQUVFQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAgIDAwEBAQEBAQEBAQEBAQEBDwEPAQICAgECAgIBAQICAQEBAQMBAQEBAQEBAQEDAwoBAgQBJgQEBAQEBA8EGQUECwJwAeoE6gRvAIAIBQMBABMGDwJ/AUGAgMAAC38BQYAICwfZDUUGbWVtb3J5AgAXX193YmdfY2h1bmtkZWNvZGVyX2ZyZWUAtgQRY2h1bmtkZWNvZGVyX3B1c2gA9ggTY2h1bmtkZWNvZGVyX2ZpbmlzaADmCAxuZXdfbG9kX3RyZWUA5wgTbmV3X3NoYXJlZF9sb2RfdHJlZQDoCA1pbml0X2xvZF90cmVlANUIEGRpc3Bvc2VfbG9kX3RyZWUAmwIQdXBkYXRlX2xvZF90cmVlcwCrCBJnZXRfbG9kX3RyZWVfbGV2ZWwA1ggSdHJhdmVyc2VfbG9kX3RyZWVzAJEIGmR5bmFtaWNfdHJhdmVyc2VfbG9kX3RyZWVzAJIICndhc21fc3RhcnQAwAgMc2ltZF9lbmFibGVkAIsLC3NvcnRfc3BsYXRzAJkJDXNvcnQzMl9zcGxhdHMAmgkWZGVjb2RlX3RvX3BhY2tlZHNwbGF0cwCtCBNkZWNvZGVfdG9fZXh0c3BsYXRzALQIFl9fd2JnX2dzcGxhdGFycmF5X2ZyZWUA5wUfX193YmdfZ2V0X2dzcGxhdGFycmF5X251bVNwbGF0cwDwCB9fX3diZ19zZXRfZ3NwbGF0YXJyYXlfbnVtU3BsYXRzAPcIIV9fd2JnX2dldF9nc3BsYXRhcnJheV9tYXhTaERlZ3JlZQDxCCFfX3diZ19zZXRfZ3NwbGF0YXJyYXlfbWF4U2hEZWdyZWUA+AgPZ3NwbGF0YXJyYXlfbGVuAIoIFGdzcGxhdGFycmF5X3RpbnlfbG9kAJ8HFWdzcGxhdGFycmF5X2JoYXR0X2xvZACxBxtnc3BsYXRhcnJheV90b19wYWNrZWRzcGxhdHMA1wgfZ3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzX2xvZADYCBhnc3BsYXRhcnJheV90b19leHRzcGxhdHMA6QgcZ3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzX2xvZADqCBhnc3BsYXRhcnJheV9pbmplY3RfcmdiYTgAhQoVZGVjb2RlX3RvX2dzcGxhdGFycmF5AMQIG3BhY2tlZHNwbGF0c190b19nc3BsYXRhcnJheQDFCBZfX3diZ19jc3BsYXRhcnJheV9mcmVlAOgFH19fd2JnX2dldF9jc3BsYXRhcnJheV9udW1TcGxhdHMA8ggfX193Ymdfc2V0X2NzcGxhdGFycmF5X251bVNwbGF0cwD5CCFfX3diZ19nZXRfY3NwbGF0YXJyYXlfbWF4U2hEZWdyZWUA8wghX193Ymdfc2V0X2NzcGxhdGFycmF5X21heFNoRGVncmVlAPoID2NzcGxhdGFycmF5X2xlbgCKCBNjc3BsYXRhcnJheV9oYXNfbG9kAPsHFGNzcGxhdGFycmF5X3RpbnlfbG9kAKAHFWNzcGxhdGFycmF5X2JoYXR0X2xvZACyBxtjc3BsYXRhcnJheV90b19wYWNrZWRzcGxhdHMA6wgfY3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzX2xvZADsCBhjc3BsYXRhcnJheV90b19leHRzcGxhdHMA7QgcY3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzX2xvZADuCBhjc3BsYXRhcnJheV9pbmplY3RfcmdiYTgAhgoVZGVjb2RlX3RvX2NzcGxhdGFycmF5AMIIG3BhY2tlZHNwbGF0c190b19jc3BsYXRhcnJheQDGCBhleHRzcGxhdHNfdG9fZ3NwbGF0YXJyYXkAxwgVdGlueV9sb2RfcGFja2Vkc3BsYXRzALUIFmJoYXR0X2xvZF9wYWNrZWRzcGxhdHMAvQgSdGlueV9sb2RfZXh0c3BsYXRzALYIE2JoYXR0X2xvZF9leHRzcGxhdHMAvggSZ2V0X3JheWNhc3RfYnVmZmVyAK0KE2dldF9yYXljYXN0X2J1ZmZlcjIArgoVcmF5Y2FzdF9wYWNrZWRfYnVmZmVyAOUIE3JheWNhc3RfZXh0X2J1ZmZlcnMAhgkVcmF5Y2FzdF9wYWNrZWRfc3BsYXRzALwIEWRlY29kZV9yYWRfaGVhZGVyAO8IE2dzcGxhdGFycmF5X2hhc19sb2QA+wcRX193YmluZGdlbl9tYWxsb2MAjwgSX193YmluZGdlbl9yZWFsbG9jAMEID19fd2JpbmRnZW5fZnJlZQDIBxRfX3diaW5kZ2VuX2V4bl9zdG9yZQCfChdfX2V4dGVybnJlZl90YWJsZV9hbGxvYwCFBRVfX3diaW5kZ2VuX2V4dGVybnJlZnMBARlfX2V4dGVybnJlZl90YWJsZV9kZWFsbG9jAM0HEF9fd2JpbmRnZW5fc3RhcnQAiQsJyQkBAEEBC+kEowiHCqcJtQStCZsBMi/+CYcK/QqmA4wEgwLfBoUIoQXLCtAB/wG2B5sG/AmJCvoFige/CNoI9wKVCp4IM+MI0wbRAp0D6QfbCJMJnwiYBdAEyASICcoEpQi9AjEwmwaCBJQK5ArjCroI8AacCbYF/AeWCdgC5wrLCOgKiQqBB+sKnAHFBu8C1QTSBs0DjAbGB4sJoQeBBoUGjAnqB4sJgAnEB5gJpQeUCZUJ7QeiB40J4QeMCeIHjAniB+IHjgnjB48J5AegCOwKggehCM4IyQjPCKYFlgrUBqgI7AeHBsUFlgqTCooE8ALOAagDggXsBO0EjQaIAdwG/gqeCvgK9QmlCcUJuwmxCccJ8QnJCb0JtAm2CcAJwgmz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7AI2AgQgAyACKAL4AjYCCCADIAIoAoQDNgIMIAMgAigCkAM2AhAgAyACKAKcAzYCFCADIAIoAqgDNgIYIAMgAigCtAM2AhwgAkEINgJYIAIgAzYCVCACQQg2AlAgAiAkNwOwAiACQgE3AsQDIAJBAjYCvAMgAkGkk8EANgK4AyACIAJBsAJqNgLAAyACQbgDahCEAyACKAJQIgQEQCACKAJUIgZBBGsoAgAiA0F4cSIFIARBAnQiBEEEQQggA0EDcSIDG2pJDRUgA0EAIAUgBEEnaksbDQcgBhC0AgtB4AAQfiIKRQ0RIAogAkHYAmpB4AD8CgAAIAooAgAhDiAKQYCAgIB4NgIAIA5BgICAgHhGDQcgCkEEaiILKQIAIScgCigCDCEPIApBgICAgHg2AgwgD0GAgICAeEYNByAKKQIQISggCigCJCEHIApBgICAgHg2AiQgB0GAgICAeEYNByAKKQIoISkgCigCGCEIIApBgICAgHg2AhggCEGAgICAeEYNByAKKQIcIR8gCigCSCEGIApBgICAgHg2AkggBkGAgICAeEYNByAKKQJMIRsgCigCVCEFIApBgICAgHg2AlQgBUGAgICAeEYNByAKKQJYIRkgCigCPCEEIApBgICAgHg2AjwgBEGAgICAeEYNByAKKQJAIRogCigCMCEDIApBgICAgHg2AjAgA0GAgICAeEYNByACIAopAjQ3ApgEIAIgAzYClAQgAiAaNwKMBCACIAQ2AogEIAIgGTcCgAQgAiAFNgL8AyACIBs3AvQDIAIgBjYC8AMgAiAfNwLoAyACIAg2AuQDIAIgKTcC3AMgAiAHNgLYAyACICg3AtADIAIgDzYCzAMgAiAnNwLEAyACIA42AsADIAJCgICAgIABNwK4AyACKALMASINIAIoAsABIgRGBEAgAkHAAWpBtJPBABDaBiACKALMASENIAIoAsABIQQLIAIoAsQBIgkgAigCyAEiCCANaiIDIARBACADIARPG2tBDGxqIgMgJzcCBCADIA42AgAgAiANQQFqIgY2AswBIAQgBkYEQCACQcABakG0k8EAENoGIAIoAsQBIQkgAigCyAEhCCACKALMASEGIAIoAsABIQQLIAkgBiAIaiIDIARBACADIARPG2tBDGxqIgMgKDcCBCADIA82AgAgAiAGQQFqIgY2AswBIAQgBkYE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AigCTEEBSw0EIAIgACgCCEEBazYC3AEgAkEBNgLEAyACQdS3wQA2AsADIAJCATcCzAMgAiACQdwBaq1CgICAgBCENwOgAiACIAJBoAJqNgLIAyACQbACaiACQcADahDmBiACKAKwAiIEBEAgAigCtAIgBEEBENYHCwJAAkACQCACKALcASIEIAAoAggiA0kEQCACQQE2AsQDIAJBlLvBADYCwAMgAkIBNwLMAyACIAAoAgQgBEEkbGo2AvABIAIgJ0KAgICAoAWENwOgAiACIAJBoAJqNgLIAyACQbACaiACQcADahDmBiACKAKwAiIEBEAgAigCtAIgBEEBENYHCyACQSBqIAAoAghBAXRBAWsQmwhBACEFIAJBADYC6AEgAiACKQMgNwLgASACQeABaiIEIAIoAixBARD3BiAEIAAoAghBABD3BiACKALcASIDIAIoAugBIgpPDQIgAigC5AEiCyADakEBOgAAIAJBwANqIAAgAigC3AEgBCABEKQCQQAhBgJAIApBBE8EQP0MAAAAAAAAAAAAAAAAAAAAACEzIApBfHEiBiEFIAshAwNAIDMgA/1cAAD9iQH9qQH9rgEhMyADQQRqIQMgBUEEayIFDQALIDMgMyAz/Q0ICQoLDA0ODwABAgMAAQID/a4BIjMgMyAz/Q0EBQYHAAECAwABAgMAAQID/a4B/RsAIQUgBiAKRg0BCyAGIAtqIQMgCiAGayEGA0AgBSADLQAAaiEFIANBAWohAyAGQQFrIgYNAAsLIAIoAugDIQwgAigCzAMhDSACIAU2AuwBIAIgACgCCDYC8AEgAkECNgLEAyACQci7wQA2AsADIAJCAjcCzAMgAiAoNwO4AiACIAJB7AFqrUKAgICAEIQiFjcDsAIgAiACQbACajYCyAMgAkGgAmogAkHAA2oQ5gYgAigCoAIiBARAIAIoAqQCIARBARDWBwsgAkEBNgLEAyACQey7wQA2AsADIAJCATcCzAMgAiAnQoCAgICABYQ3A6ACIAIgAigC7AGzIAIoAiyzlTgC8AEgAiACQaACajYCyAMgAkGwAmogAkHAA2oQ5gYgAigCsAIiBARAIAIoArQCIARBARDWBwsgAkEANgL4ASACQoCAgIDAADcC8AEgAigC3AEhBCACQfABakH0u8EAEKwGIAIoAvQBIAQ2AgAgAkEBNgL4ASAC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IANCgICAgMAANwKwASADQQA2ArwBIANBADYC3AEgB0UEQEL///////////8AIRtCgICAgICAgICAfyEdQoCAgICAgICAgH8hHEKAgICAgICAgIB/IR5C////////////ACEfQv///////////wAhIAwEC0KAgICAgICAgIB/IR5C////////////ACEgQQAhAkL///////////8AIR9C////////////ACEbQoCAgICAgICAgH8hHEKAgICAgICAgIB/IR0DQAJAAkAgAygCPCIVIAJBBXQiCWoiBSgCACIGIAAoAggiBEkEQCAAKAIEIg4gBkEkbGoiBv1dAgggBioCECIB/SACIAH9IAMgA/0JAoQBIiz95wH9aCIr/R8C/AQhGCAr/R8B/AQhGSAr/R8A/AQhGiAHIAJBAWoiCE0EQCACIQoMAwsgB0EBayEKIBFBAXEEQCAHIQgMAwsgCSAVakEgaiEGA0AgBigCACIJIARPDQIgDiAJQSRsaiIJ/V0CCCAJKgIQIgH9IAIgAf0gAyAs/ecB/WgiK/0fAPwEIBpSICv9HwH8BCAZUnJFICv9HwL8BCAYUXFFBEAgCEEBayEKDAQLIAZBIGohBiAHIAhBAWoiCEcNAAsgByEIDAILIAYgBEHoyMcAEL8HAAsgCSAEQejIxwAQvwcACyAdIBggGCAdUxshHSAcIBkgGSAcUxshHCAeIBogGiAeUxshHiAbIBggGCAbVRshGyAfIBkgGSAfVRshHyAgIBogGiAgVRshICADIAMoAtwBQQFqNgLcASADKQNoIhggCCACayINrYUiGUI4hiAZQoD+A4NCKIaEIBlCgID8B4NCGIYgGUKAgID4D4NCCIaEhCAYQgiIQoCAgPgPgyAYQhiIQoCA/AeDhCAYQiiIQoD+A4MgGEI4iISEhELSgaqbq/qC16d/fiIYQjiGIBhCgP4Dg0IohoQgGEKAgPwHg0IYhiAYQoCAgPgPg0IIhoSEIBhCCIhCgICA+A+DIBhCGIhCgID8B4OEIBhCKIhCgP4DgyAYQjiIhISEIBlC2KLR78Kp5b8tfoUiGEI4hiAYQoD+A4NCKIaEIBhCgID8B4NCGIYgGEKAgID4D4NCCIaEhCAYQgiIQoCAgPgPgyAYQhiIQoCA/AeDhCAYQiiIQoD+A4MgGEI4iISEhCADKQNgIhlCf4V+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CwMAIARB+Bhq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAEQegYav0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgBP0MAAAAAAAAAAAAAAAAAAAAAP0LA9gYIAJBBE8NAiAEQcgYaiABIARB2BhqIA5BASADIAhqQf8BcSAbIAJBBHRqIgMvAQQgAy8BBhDyASAELQDJGCETIAQtAMgYIghBHUYNAyAEIAQpAcoYNwO4DCAEIARB0BhqKQEANwG+DAwbC0EDIQwgAkEDSw0DDAULIAsgA0H0tcYAEL8HAAsgAkEEQYS2xgAQvwcACyABIBM6AJYFIAEoAqQEIgMgC0sEQCABKAKgBCAFaiATOgAUIARB2BhqIgMgAygCACIIIAMoAjAiB2siDCADKAIQIgogAygCICITayIRazYCMCADIAcgCGoiCCAKIBNqIgdrNgIgIAMgDCARajYCECADIAcgCGo2AgAgAyADKAIkIgggAygCFCIHaiIMIAMoAjQiCiADKAIEIhNqIhFqNgIEIAMgEyAKayIKIAcgCGsiCGs2AjQgAyAIIApqNgIUIAMgESAMazYCJCADIAMoAigiByADKAIYIgxqIgogAygCOCITIAMoAggiEWoiD2oiCDYCCCADIBEgE2siEyAMIAdrIgdrNgI4IAMgDyAKazYCKCADIAcgE2o2AhggAyADKAIsIgwgAygCHCIKaiITIAMoAjwiESADKAIMIg9qIhpqIgc2AgwgAyAKIAxrIgogDyARayIRaiIMNgIcIAMgESAKazYCPCADIBogE2siCjYCLCADIAcgAygCACITakEDaiIRIAggAygCBCIPaiIaa0EDdTYCCCADIBMgB2tBA2oiByAPIAhrIghrQQN1NgIMIAMgByAIakEDdTYCBCADIBEgGmpBA3U2AgAgAyADKAIQIgggDGtBA2oiByADKAIUIhMgAygCGCIRayIPa0EDdTYCHCADIAggDGpBA2oiCCARIBNqIgxrQQN1NgIYIAMgByAPakEDdTYCFCADIAggDGpBA3U2AhAgAyADKAIgIgggCmtBA2oiByADKAIkIgwgAygCKCITayIRa0EDdTYCLCADIAggCmpBA2oiCCAMIBNqIgxrQQN1NgIoIAMgByARakEDdTYCJCADIAggDGpBA3U2AiAgAyADKAIwIgggAygCPCIHa0EDaiIMIAMoAjQiCiADKAI4IhNrIhFrQQN1NgI8IAMgByAIakEDaiIIIAogE2oiB2tBA3U2AjggAyAMIBFqQQN1NgI0IAMgByAIakEDdTYCMCAEIAQoAtgYNgLIDCAEIAQoAtwYNgKIDSAEIAQoAuAYNgLIDSAEIAQoAuQYNgKIDiAEIAQoAugYNgLIDiAEIAQoAuwYNgKIDyAEIAQoAvAYNgLIDyAEIAQoAvQYNgKIECAEIAQoAvgYNgLIECAEIAQoAvwYNgKIESAEIAQoAoAZNgLIESAEIAQoAoQZNgKIEiAEIAQoAogZNgLIEiAEIAQoAowZNgKIEyAEIAQoApAZNgLIEyAEIAQoApQZNgKIFEEAIQwMAwsgCyADQZS2xgAQvwcACyALIAEoAqQEIghPDQ0gAkEEQfy2xgAQvwcACwJAIAZBBEYNACABQQA6AJYFIAEoAqQEIgMgC0sEQCABKAKgBCAFakEAOgAUDAELIAsgA0HcsMYAEL8HAAsgAUEAOgCXBQJAIAsgASgCpAQiB08NACABKAKgBCAFakEAOgAVIAFBADoAmAUgCyABKAKkBCIHTw0AIAEoAqAEIAVqQQA6ABYgAUEAOgCZBSALIAEoAqQEIgdPDQAgASgCoAQgBWpBADoAFyABQQA6AJoFIAsgASgCpAQiB08NACABKAKgBCAFakEAOgAYIAFBADoAmwUgCyABKAKkBCIHTw0AIAEoAqAEIAVqQQA6ABkgAUEAOgCcBSALIAEoAqQEIgdPDQAgASgCoAQgBWpBADoAGiABQQA6AJ0FIAsgASgCpAQiB08NACABKAKgBCAFakEAOgAbIAFBADoAngUgCyABKAKkBCIHTw0AIAEoAqAEIAVqQQA6ABwgBEEoakEAQYAM/AsADAILIAsgB0H8sMYAEL8HAAsgGyACQQR0aiEDQQAhCkGXBSERIAQtAAshAgNAIAsgASgCpAQiCE8NDCAEQdgYaiABIARByAxqIApqIgcgDiAMIAEoAqAEIAVqLQAVIAEgEWoiGi0AAGpB/wFxIAMvAQAgAy8BAhDyASAELQDYGCIIQR1HDRQgBC0A2RghCAJ/AkAgBygCAARAIAcQrQJBASECIAhBAXENAUEADAILQQAgCEEBcUUNARogBxCtAgtBASECQQELIQ8gCyABKAKkBCIITw0FIAEoAqAEIAVqIA86ABUgCyABKAKkBCIITw0MIARB2BhqIAEgB0FAayITIA4gDCABKAKgBCAFai0AFiAPakH/AXEgAy8BACADLwECEPIBIAQtANgYIghBHUcNFCAELQDZGCEIAn8CQCATKAIABEAgExCtAkEBIQIgCEEBcQ0BQQAMAgtBACAIQQFxRQ0BGiATEK0CC0EBIQJBAQshDyALIAEoAqQEIghPDQUgASgCoAQgBWogDzoAFiALIAEoAqQEIghPDQwgBEHYGGogASAHQYABaiITIA4gDCABKAKgBCAFai0AFyAPakH/AXEgAy8BACADLwECEPIBIAQtANgYIghBHUcNFCAELQDZGCEIAn8CQCATKAIABEAgExCtAkEBIQIgCEEBcQ0BQQAMAgtBACAIQQFxRQ0BGiATEK0CC0EBIQJBAQshEyALIAEoAqQEIghPDQUgASgCoAQgBWogEzoAFyALIAEoAqQEIghPDQwgBEHYGGogASAHQcABaiIHIA4gDCABKAKgBCAFai0AGCATakH/AXEgAy8BACADLwECEPIBIAQtANgYIghBHUcNFCAELQDZGCEIAn8CQCAHKAIABEAgBxCtAkEBIQIgCEEBcQ0BQQAMAgtBACAIQQFxRQ0BGiAHEK0CC0EBIQJBAQshByALIAEoAqQEIghPDQUgASgCoAQgBWogBzoAGCAaIAc6AAAgCkGAAmohCiARQZYFayARQQFqIRFBBEkNAAtBeCEKA0ACQCAKQay2xgBqKAIAIgdBCE0EfyALIAEoAqQEIghPDQQgBEHYGGogASAEQcgMakGACEGACiAHQQVGG2oiDCAOQQIgASgCoAQgBWogB2otABQgByBIaiIaLQAAakH/AXEgAy8BCCADLwEKEPIBIAQtANgYIghBHUcNFiAELQDZGCEIAn8CQCAMKAIABEAgDBCtAkEBIQIgCEEBcQ0BQQAMAgtBACAIQQFxRQ0BGiAMEK0CC0EBIQJBAQshDyALIAEoAqQEIghPDQYgASgCoAQgBWogB2ogDzoAFCALIAEoAqQEIghPDQQgB0EBaiETQQkgB2siCEEAIAhBCU0bQQFGDQUgBEHYGGogASAMQUBrIhEgDkECIAEoAqAEIAVqIBNqLQAUIA9qQf8BcSADLwEIIAMvAQoQ8gEgBC0A2BgiCEEdRw0WIAQtANkYIQgCfwJAIBEoAgAEQCAREK0CQQEhAiAIQQFxDQFBAAwCC0EAIAhBAXFFDQEaIBEQrQILQQEhAkEBCyERIAsgASgCpAQiCE8NBiABKAKgBCAFaiATaiAROgAUIBogEToAACAHQQhHDQFBCQUgBwtBCUGstsYAEL8HAAsgCyABKAKkBCIITw0CIARB2BhqIAEgDEGAAWoiESAOQQIgASgCoAQgBWogB2otABQgEyBIaiIPLQAAakH/AXEgAy8BCCADLwEKEPIBIAQtANgYIghBHUcNFCAELQDZGCEIAn8CQCARKAIABEAgERCtAkEBIQIgCEEBcQ0BQQAMAgtBACAIQQFxRQ0BGiAREK0CC0EBIQJBAQshESALIAEoAqQEIghPDQQgASgCoAQgBWogB2ogEToAFCALIAEoAqQEIghPDQIgBEHYGGogASAMQcABaiIHIA5BAiABKAKgBCAFaiATai0AFCARakH/AXEgAy8BCCADLwEKEPIBIAQtANgYIghBHUcNFCAELQDZGCEIAn8CQCAHKAIABEAgBxCtAkEBIQIgCEEBcQ0BQQAMAgtBACAIQQFxRQ0BGiAHEK0CC0EBIQJBAQshByALIAEoAqQEIghPDQQgASgCoAQgBWogE2ogBzoAFCAPIAc6AAAgCkEEaiIKDQALIAQgAjoACyAEID4pAQA3A7gMIAQgPkEGaikBADcBvgwgBC8ByAwhAyBxID1B8Av8CgAAIAQgBCkDuAw3A6gMIAQgBCkBvgw3Aa4MIDxBBmogBCkBrgw3AQAgPCAEKQOoDDcBACAEIAM7ASgLIARByAxqIQogAS8BoAUiQSEFIAEoAqwEInYhDCABKAKwBCIsIQggASgCuAQiEyECIAEoArwEIi0hESMAQfACayIDJAAgA0EIakEAQeQC/AsAAkAgFkUEQCADQRhqQf/+/fsHNgIAIANBEGpC//79+/fv37//ADcDACADQv/+/fv379+//wA3AwgMAQsgC0EEdCIHIAhNBEACQCAHIAhGDQBBAUEQIAggB2siDyAPQRBPGyIPIA9BAU0bIg9FDQAgA0EIaiAHIAxqIA/8CgAACwJAIAVBAWsgC0YEQCAHQQ9yIgcgCE8NASADIAcgDGotAAAiCDoAGyADIAg6ABogAyAIOgAZIAMgCDoAGAwDCyAHQRBqIgcgCE0EQCAHIAhGDQNBAUEEIAggB2siCCAIQQRPGyIIIAhBAU0bIghFDQMgA0EYaiAHIAxqIAj8CgAADAMLIAcgCEGk+MQAEKMKAAsgByAIQcT4xAAQvwcACyAHIAhB1PjEABCjCgALIAMgAy0AGCIIOgCUAiADIAg6AMABIAMgCDoAbCADIAMtABkiCDoAlQIgAyAIOgDBASADIAg6AG0gAyADLQAaIgg6AJYCIAMgCDoAwgEgAyAIOgBuIAMgAy0AGyIIOgCXAiADIAg6AMMBIAMgCDoAbyAKAn8gC0UEQCADQYEBOgDXAiADQYEBOgDCAiADQYEBOgCtAiADQYEBOgCYAiADQYEBOgCDAiADQYEBOgDuASADQYEBOgDZASADQYEBOgDEASADQYEBOgCvASADQYEBOgCaASADQYEBOgCFASADQYEBOgBwIANBgQE6AFsgA0GBAToARiADQYEBOgAxIANBgQE6ABxBgX9B/wAgFhsMAQsCQCARBEAgEUEBayIIRQ0BIAMgAi0AAToAHCAIQQFGDQEgAyACLQACOgAxIAhBAkYNASADIAItAAM6AEYgCEEDRg0BIAMgAi0ABDoAWyAIQQRGDQEgAyACLQAFOgBwIAhBBUYNASADIAItAAY6AIUBIAhBBkYNASADIAItAAc6AJoBIAhBB0YNASADIAItAAg6AK8BIAhBCEYNASADIAItAAk6AMQBIAhBCUYNASADIAItAAo6ANkBIAhBCkYNASADIAItAAs6AO4BIAhBC0YNASADIAItAAw6AIMCIAhBDEYNASADIAItAA06AJgCIAhBDUYNASADIAItAA46AK0CIAhBDkYNASADIAItAA86AMICIAhBD0YNASADIAItABA6ANcCDAELQQFBAEG0+MQAEKMKAAtBgX9B/wAgFhsgFkUNABogAi0AAAs6AAAgCkEBaiADQQhqQeQC/AoAACADQfACaiQAIAZBAWsOBAQFBgcICyALIAhBvLbGABC/BwALIBNBCUHMtsYAEL8HAAsgCyAIQdy2xgAQvwcACyALIAhBjLfGABC/BwALQbB9IQcDQCAEQcgMaiAHaiIDQeYCaiAELQDJDDoAACADQecCaiAELQDKDDoAACADQegCaiAELQDLDDoAACADQekCaiAELQDMDDoAACADQeoCaiAELQDNDDoAACADQesCaiAELQDODDoAACADQewCaiAELQDPDDoAACADQe0CaiAELQDQ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GCICOgCYGSAEIAQoANoYNgCZGSAEIAQvAN4YOwCdGSAEIAQtAOAYOgCfGSAEIAI6AKEZIAQgBC0A2hg6AKIZIAQgAzoAoxkgBCAELQDcGDoApBkgBCAELQDdGDoApRkgBCAELQDeGDoAphkgBCAELQDfGDoApxkgBCAELQDgGDoAqBkgBCAELQDJDDoA0gwgBCAELQDKDDoA0wwgBCAELQDLDDoA1AwgBCAELQDMDDoA1QwgBCAELQDNDDoA1gwgBCAELQDODDoA1wwgBCAELQDPDDoA2AwgBCAELQDQDDoA2QwgBCAELQDJDDoA2wwgBCAELQDKDDoA3AwgBCAELQDLDDoA3QwgBCAELQDMDDoA3gwgBCAELQDNDDoA3wwgBCAELQDODDoA4AwgBCAELQDPDDoA4QwgBCAELQDQDDoA4gwgBCAELQDJDDoA5AwgBCAELQDKDDoA5QwgBCAELQDLDDoA5gwgBCAELQDMDDoA5wwgBCAELQDNDDoA6AwgBCAELQDODDoA6QwgBCAELQDPDDoA6gwgBCAELQDQDDoA6wwgBCAELQDJDDoA7QwgBCAELQDKDDoA7gwgBCAELQDLDDoA7wwgBCAELQDMDDoA8AwgBCAELQDNDDoA8QwgBCAELQDODDoA8gwgBCAELQDPDDoA8wwgBCAELQDQDDoA9AwgBCAELQDJDDoA9gwgBCAELQDKDDoA9wwgBCAELQDLDDoA+AwgBCAELQDMDDoA+QwgBCAELQDNDDoA+gwgBCAELQDODDoA+wwgBCAELQDPDDoA/AwgBCAELQDQDDoA/QwgBCAELQDJDDoA/wwgBCAELQDKDDoAgA0gBCAELQDLDDoAgQ0gBCAELQDMDDoAgg0gBCAELQDNDDoAgw0gBCAELQDODDoAhA0gBCAELQDPDDoAhQ0gBCAELQDQDDoAhg0gBCAELQDJDDoAiA0gBCAELQDKDDoAiQ0gBCAELQDLDDoAig0gBCAELQDMDDoAiw0gBCAELQDNDDoAjA0gBCAELQDODDoAjQ0gBCAELQDPDDoAjg0gBCAELQDQDDoAjw0gBCAELQDJDDoAkQ0gBCAELQDKDDoAkg0gBCAELQDLDDoAkw0gBCAELQDMDDoAlA0gBCAELQDNDDoAlQ0gBCAELQDODDoAlg0gBCAELQDPDDoAlw0gBCAELQDQDDoAmA0M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EL8HAAsgASgCqAMgBWogA2ogAyAUaiIIKAIANgIAIAxBAkYNBSARIAEoAqwDIgZPDQEgASgCqAMgBWogA2pBBGogCEEEaigCADYCACAMQQFGDQYgASgCrAMiBiAXSwRAIAEoAqgDIAVqIANqQQhqIAhBCGooAgA2AgAgA0EQaiEDIAJBBGohAiALIA9JIAtBAWohCw0BDCALCyAKQQJ0IAJqQQFrDAELIApBAnQgAmpBAmsLIAZByNjBABC/BwALDDELDDALIAJBAmsMAgsgAkEBawwBCyACQQNrCyAJQbjYwQAQvwcACyADQQhqDAILIANBC2oMAQsgA0EOagsgBUGI2MEAEL8HAAsgA0EHagwCCyADQQpqDAELIANBDWoLIAVB+NfBABC/BwALIANBBmoMAgsgA0EJagwBCyADQQxqCyAFQejXwQAQvwcACyAEIAEoAuACIA8gChCgCSICEIMLIgM2AnAgBCAINgJYAkACQCADIAhGBEAgAiAVIAgQqQogAkGECE8EQCACEM0HCyAEIAEoAugCIA8gChCgCSICEIMLIgM2AnAgBCAINgJYIAMgCEcNIiACIAwgCBCpCiACQYQITwRAIAIQzQcLIAEoApQDIgMgCkkEQCAKIAMiAmsiBiABKAKMAyACa0sEQCAgIAIgBkEEQQQQ0AUgASgClAMhAgsgASgCkAMiCSACQQJ0IgtqIQUgBkECTwRAIAogA0F/c2pBAnQiCgRAIAVBACAK/AsACyASQQR0IANBAnRrIAlqIAtqQQRrIQUgAiAGakEBayECCyAFQQA2AgAgASACQQFqNgKUAwsgEEUNDCAVQQxqIQogFEEEdEEMciEOQQAhAkEBIQZBACEDAkACQAJAA0AgAkEDaiIFIAhPDQUgAiAPakEDaiIFIAEoAogDIglPDQYgASgChAMgDmogA2ogAyAKaigCADYCACACIBRqIgkgASgClAMiBU8NAyABKAKQAyAPaiADaiADIAxqIgsoAgA2AgAgASgClAMiBSAJQQFqSwRAIAEoApADIA9qIANqQQRqIAtBBGooAgA2AgAgASgClAMiBSAJQQJqTQ0CIAEoApADIA9qIANqQQhqIAtBCGooAgA2AgAgASgClAMiBSAJQQNqTQ0DIAEoApADIA9qIANqQQxqIAtBDGooAgA2AgAgAkEEaiECIANBEGoh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BGogAygCABB7QQQMAgsgAiAIKAIANgIAIAIgAEECdCIDaiADIAhqKAIANgIAQQEMAQsgCCACIAdBAnRqIgMgAUEEaiIEKAIAEHsgCEEQaiADQRBqIAQoAgAQeyADQQggAiABEMIBIAggAEECdCIFaiIGIANBIGoiCiAEKAIAEHsgBkEQaiADQTBqIAQoAgAQeyAKQQggAiAFaiABEMIBQQgLIgNLBEAgACADayENIANBAnQhCgNAIAIgCmoiBCAIIApqKAIANgIAIAIgBCABENUBIApBBGohCiANQQFrIg0NAAsLIAcgAGsgA0sEQCACIABBAnQiBGohBSAIIANBAnQgBGoiBGohDSACIARqIQogACADaiAHayEMA0AgCiANKAIANgIAIAUgCiABENUBIA1BBGohDSAKQQRqIQogDEEBaiIMDQALCyACIAcgCCABEMIBCyAYQSBqJAAPCyAHIApBtNTHABC/BwALIAwgDkG01McAEL8HAAuWbwMVfwd+AnsjAEGw1QBrIgMkACAD/QwAAAAAAAAAAAAAAAAAAAAA/QsD8EggAq0hGwJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkBB8KPHACkDACIcQv8Bg0IEUgRAQhAhGQNAIAIgGiAbIBogG1QbpyIEayIFQoDAACAZIBlCgMAAWhunIgYgBSAGSRsiBQRAIANBGGogASAEaiAF/AoAAAsgAiAERg0CQRBCECAYIBhCEFobpyIGayIEIAUgBCAFSSIHGyIEBEAgA0HwyABqIAZqIANBGGogBPwKAAALIAcNAyAaIAWtIh18IRogBSAKaiEKIBggBK18IRggGSAdfSIZQgBSDQALDAELQhAhGQNAIAIgGiAbIBogG1QbpyIEayIFQoDAACAZIBlCgMAAWhunIgYgBSAGSRsiBQRAIANBGGogASAEaiAF/AoAAAsgAiAERg0BQRBCECAYIBhCEFobpyIGayIEIAUgBCAFSRsiBARAIANB8MgAaiAGaiADQRhqIAT8CgAACyAYIAStfCEYIAUgCmohCiAaIAWtIhx8IRogGSAcfSIZUEUNAAsLQbzMyQAoAgAiDkEASA0CQbzMyQAgDkEBajYCACAKQRFJBEADQCAMQdzXxABqKAIAIQYgDEHY18QAaigCACEFAkAgDEHk18QAaigCACIHRQRAIAYgCksNASAFIANB8MgAaiAGEJAIDQEMBQsgBiAKSw0AIAxB4NfEAGooAgAiBCAHaiEPIANB8MgAaiEHA0AgBkUNBSAGQQFrIQZB/KvHACAEIARFIAQgD0ZyIggbIQ0gBy0AACEJIAUtAAAhCyAHQQFqIQcgBUEBaiEFQQAgBEEBaiAIGyEEIAsgCSANLQAAcUYNAAsLIAxBFGoiDEG4A0cNAAtBvMzJACAONgIAQQMhBUEEIQFBAyEJDA0LIApBEEHsq8cAEKIKAAsgHBCHCCEBIABBgICAgHg2AgAgACABNgIEDAwLQbzMyQAgDjYCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAMQejXxABqLQAAIgQOBAAFBQEFC0GAgAEQfiIERQ0LIARBAEGAgAH8CwBBgBAQfiIGRQ0LIAZBAEGAEPwLACADQSRqQQA7AQAgA0EANgIgQagHEH4iBUUNCyAFQQBB2Ab8CwAgBUEANgKUByAFQQA2AogHIAVBADoAhAcgBUEANgKAByAFIAY2AvwGIAUgBDYC+AYgBUICNwPwBiAFQgA3A+gGIAVCgICAgCA3A+AGIAVBATYC3AYgBUEdNgLYBiAFQQA6AKYHIAUgAykDGDcDmAcgBUGeB2ogAykBHjcBAEGAARB+IgRFDQsgA0HkAmpCADcCACAD/QwAAAAAAAAAAAAAAAAAAAAA/QsC1AIgA0ECNgK4RSADQQA2ArBFIANBvMUAaiADQRhqIgZB1AL8CgAAIANBgAI7AMNIIANBATsBwEggA0KAgICAgiA3A7hIIANCADcDsEggA0EAOgCoSCADQYACOwGkSCADIAU2AqBIIANBADoAnEggA0EANgKYSCADIAQ2ApRIIANBgAE2ApBIIAMgATYCyEggAyACNgLMSCADQgA3A9BIIANBADYC2EggA0EAOgDCSCADQeDIAGoiASADQbDFAGoQwwQgAy0A4EhBKEcEQCAGIAEQnQQgAygCGCIBQQZHDQQLIANBEDYC2EggA0Hg0QBqIgEgA0GwxQBqQbAD/AoAACADQRhqIAEQwwQgAy0AGCIEQShHBEAgA0He0QBqIAMtABs6AAAgAyADLwAZOwHcUSADKAIcIQYgAykCICEbIAEQpwEMDwsCQAJAIAMoAhwiAS0AvgIiAkEDdEH4pMkAaikDACABNQK0AiABMQC/An4iGH4iHEIDiCAcQgeDQgBSrXwiHEL+////D1YNACAcp0EBaq1BgAEgASgCuAIiASABQYABTxutfiIcQiCIpw0AIBynIgRB/wFxIgEEQCAEIAQgAWtBgAJqIgRLDQELIARBgYAISQ0BC0GAgAghBAtBASEGQf////8HIQUCQCACQQN0QbClyQBqKQMAIBh+IhhCA4ggGEIHg0IAUq18IhhC/v///w9WDQAgGKdBAWoiAUH/////A0sNACABQQJ0IghBPHEiAQRAIAggCCABa0FAayIISw0BC0GAgAggCCAIQYCACE0bIQULIAQEQCAEEH4iBkUNDAsgAyAFNgK4BCADQQA2ArQEIANCADcCrAQgA0EANgKQBCADIAY2AowEIAMgBDYCiAQgA0KAgICAgICAgIB/NwKcBCADQoCAgIAQNwKUBCADQn83A4AEIANBGGogA0Hg0QBqQagD/AoAACADQfUDakIANwAAIANCADcD8AMgA0EANgLIAyADQgA3A8ADIANBgAI7AdwEIANCADcD0AQgA0KAgICAEDcDyAQgA0EANgLABCADIAMoAohVNgLYBCADQQI2AtwDAkAgAygCIEECRwRAQSchBCADLQDeAkEDdEHopckAaikDACADNQLUAiIYIAMxAN8Cfn4iG0IDiCAbQgeDQgBSrXxC/////w9UDQEMDwtB5J/HABCkCgALIAMoAtgCIQYgA0EQaiADQRhqIgEQtwUgAywAEEEDdEGgpskAaikDACADMQARIBh+fiIYQgOIIBhCB4NCAFKtfCIbQv7///8PVg0NIBsgBq1+IhhCIIinIBinQQBIcg0NIANBoNUAaiABEJQBIAMtAKBVIgRBKEcEQCADQd7RAGogAy0Ao1U6AAAgAyADLwChVTsB3FEgAygCpFUhBiADKQKoVSEbDA4LIAMoAiAiBkECRg0FQQEhBCADKAJMBEAgAygCUCADLQDRAkECRmohBAsgA0He0QBqIgEgAy0AHzoAACADIAQ2AtQEIAMgAy8AHTsB3FEgAy0AHCEEIAMpAiQhGyADKAIsIQIgAygCMCEIIAMtADQhByADLQA1IQkgAy0ANiELIAMtADchCiAD/QADOCEgIAMoAhghBSADQcDNAGoiDCADQcgAakGYBPwKAAAgBUECRg0OIAMgAy8B3FE7APVIIAMgAS0A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AyAFaiELQQAgCGshDANAIAsoAAAiA0GA/oN4cSADQRB0QYCA/AdxciADQRB2IglB/wFxckG9z9bxAWwgJ3YiCCAfTw0DICQgCEECdGoiCCADQRh2OgADIAggCToAAiAIIANBCHY6AAEgCCADOgAAIAtBBGohCyAMQQRqIgwNAAsMAwsgCCAJQbiFxwAQogoACyADIAZByIXHABCjCgALIAggH0HsgccAEL8HAAsgDSAWagwBCyADIAlB//8DcUGYAkkNABogAS0AYCIIIAtB/wFxSQRAIABBDzoAAAwKCyABIAggC2s6AGAgASAzIAutiDcDQCAGIANBAnQiA0kNBSAGIANrIghBA00NBCAfIAlBmAJrQf//A3EiCE0NASADIAVqICQgCEECdGooAAA2AAAgDUECagsiDUsNAQwCCwsgCCAfQcyDxwAQvwcACyAAQR06AAAMBQtBBCAIQeyDxwAQogoACyADIAZB/IPHABCjCgALQQBBAEGk5cQAEL8HAAsACyAAIAcpALUCNwABIABBCGogB0G8AmopAAA3AAAgACAIOgAACyAdQYCAgIB4ckGAgICAeEYNACAkIB1BAnRBARDWBwsgIARAIB4gIEEBdEECENYHCyAEQQFqIQogFCEBA0AgARCdAiABQYwBaiEBIApBAWsiCg0ACyAhRQ0FIBQgIUGMAWxBBBDWBwwFCyAIIApBnIPHABC/BwALAkAgHUGAgICAeHJBgICAgHhHBEAgJEEEaygCACIBQXhxIgIgHUECdCIDQQRBCCABQQNxIgEbakkNBiABQQAgAiADQSdqSxsNASAkELQCCyAAIDQ3AgggACANNgIEIAAgCzsBAiAAIAk6AAEgACAKOgAADAQLDAULIAcgBykAtwI3AwAgByAHQbwCaikAADcABSAHLQC2AiEBIActALUCIQ4MAQtBDyEKCyAAIAE6AAIgACAOOgABIAAgCjoAACAAIAcpAwA3AAMgAEEIaiAHKQAFNwAACyAHQdACaiQADwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIAMgCUGsgccAEL8HAAuwVgMsfwR+AXsjAEHQAmsiByQAIAFBQGshEQJAAkACQAJAAkACQAJAAkAgAS0ATCIKDQAgB0G0AmogERCfAiAHLQC0AiIKQR1GBEAgAS0ATCIKDQEM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gAIiAUsEQCABIQIgBCABayIIIAAoAvgBIAFrSwRAIBkgASAIQQRBBBDQBSAAKAKAAiECCyAAKAL8ASIDIAJBAnRqIQUgCEECTwR/IAQgAUF/c2pBAnQiAQRAIAVBACAB/AsACyACIAhqIgFBAWshAiADIAFBAnRqQQRrBSAFC0EANgIAIAAgAkEBaiIBNgKAAgsCQAJAAkACQAJAIAYEQEEBIAQgBEEBTRshBUEAIQJBBCEBA0AgASAAKALcASIDSw0DIAIgACgCgAIiA08NAiAAKAL8ASABakEEayAAKALYASABakEEaygAADYCACABQQRqIQEgBSACQQFqIgJHDQALIAAoAoACIQELIAAgACgCkAIgBCAAKAL8ASABEN0EIAAoAtwBIgIgBEECdCIDSQ0fIABBADYC3AEgAiADayEBIAZFDQIgAiADRg0EIAFFDQMgACgC2AEiAiACIANqIAH8CgAADAMLIAIgA0HYp8EAEL8HAAsgASADQcinwQAQogoACyACIANGDQELIAAgATYC3AELIAAgACgCkAIgBGoiAjYCkAIgAiAAKAKIAkcNECAAQQA2ApACQQkhAQsgACABOgCUAgwPCyAAKALcASIBQQF2IgIgACgCiAIgACgCkAJrIgZJBEAgAiEGIAFBgIAISQ0UC0GAgAQgBiAGQYCABE8bIgQgACgC9AEiAUsEQCABIQIgBCABayIIIAAoAuwBIAFrSwRAIBggASAIQQJBAhDQBSAAKAL0ASECCyAAKALwASIDIAJBAXRqIQUgCEECTwR/IAQgAUF/c2pBAXQiAQRAIAVBACAB/AsACyACIAhqIgFBAWshAiADIAFBAXRqQQJrBSAFC0EAOwEAIAAgAkEBaiIBNgL0AQsgBgRAQQEgBCAEQQFNGyEFQQAhAkECIQECQANAIAAoAtwBIgMgAUkEQCABIANBqKfBABCiCgALIAAoAvQBIgMgAksEQCAAKALwASABakECayAAKALYASABakECay8AADsBACABQQJqIQEgBSACQQFqIgJGDQIMAQsLIAIgA0G4p8EAEL8HAAsgACgC9AEhAQsgACAAKAKQAiAEIAAoAvABIAEQ3gQCQAJAAkAgACgC3AEiAiAEQQF0IgNPBEAgAEEANgLcASACIANrIQEgBkUNASACIANGDQMgAUUNAiAAKALYASICIAIgA2ogAfwKAAAMAgsMGwsgAiADRg0BCyAAIAE2AtwBCyAAIAAoApACIARqIgI2ApACIAIgACgCiAJHDQ4gAEEANgKQAiAAQQg6AJQCDA4LQS0hEgwBC0EYIRILIAAoAtwBIBJuIgIgACgCiAIgACgCkAJrIgtJBEAgAiILQYCABEkNEQtBgIAEIAsgC0GAgARPGyIOIBJsIhAgACgC6AEiAUsEQCABIQIgECABayIFIAAoAuABIAFrSwRAIBQgASAFQQRBBBDQBSAAKALoASECCyAAKALkASIDIAJBAnRqIQYgBUECTwR/IBAgAUF/c2pBAnQiAQRAIAZBACAB/AsACyACIAVqIgFBAWshAiADIAFBAnRqQQRrBSAGC0EANgIAIAAgAkEBaiIBNgLoAQsgDkEJbCEPAkAgCwRAIA5B4ABsIQggDkEYbCEGQQEhAUEAIRFBACEFAkADQCAFIQ0gASEFIA0gEmwiASAAKALcASIDTw0DAkACQAJAAkAgDUEJbCICIAAoAugBIgNPDQAgACgC5AEgAkECdGogACgC2AEgAWotAACzQwAAAMOSQwAAADyUOAIAIAFBA2oiByAAKALcASIDTwRAIAchAQwICyACQQNqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBBmoiByAAKALcASIDTwRAIAchAQwICyACQQZqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBAWoiByAAKALcASIDTwRAIAchAQwICyACQQFqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBBGoiByAAKALcASIDTwRAIAchAQwICyACQQRqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBB2oiByAAKALcASIDTwRAIAchAQwICyACQQdqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBAmoiByAAKALcASIDTwRAIAchAQwICyACQQJqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBBWoiByAAKALcASIDTwRAIAchAQwICyACQQVqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBCGoiBCAAKALcASIDTwRAIAQhAQwICyACQQhqIgIgACgC6AEiA08NACAAKALkASACQQJ0aiAAKALYASAEai0AALNDAAAAw5JDAAAAPJQ4AgAgACgCjAJBAUsNAQwCCyACIANBmKfBABC/BwALAkACQCABQQlqIgIgACgC3AEiCk8NACANQQ9sIA9qIgMgACgC6AEiCk8NAyAAKALkASADQQJ0aiAAKALYASACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEMaiICIAAoAtwBIgpPDQAgA0EDaiIEIAAoAugBIgpPBEAgBCEDDAQLIAAoAuQBIARBAnRqIAAoAtgBIAJqLQAAs0MAAADDkkMAAAA8lDgCACABQQ9qIgIgACgC3AEiCk8NACADQQZqIgQgACgC6AEiCk8EQCAEIQMMBAsgACgC5AEgBEECdGogACgC2AEgAmotAACzQwAAAMOSQwAAADyUOAIAIAFBEmoiAiAAKALcASIKTw0AIANBCWoiBCAAKALoASIKTwRAIAQhAwwECyAAKALkASAEQQJ0aiAAKALYASACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEVaiICIAAoAtwBIgpPDQAgA0EMaiIEIAAoAugBIgpPBEAgBCEDDAQLIAAoAuQBIARBAnRqIAAoAtgBIAJqLQAAs0MAAADDkkMAAAA8lDgCACABQQpqIgIgACgC3AEiCk8NACADQQFqIgQgACgC6AEiCk8EQCAEIQMMBAsgACgC5AEgBEECdGogACgC2AEgAmotAACzQwAAAMOSQwAAADyUOAIAIAFBDWoiAiAAKALcASIKTw0AIANBBGoiBCAAKALoASIKTwRAIAQhAwwECyAAKALkASAEQQJ0aiAAKALYASACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEQaiICIAAoAtwBIgpPDQAgA0EHaiIEIAAoAugBIgpPBEAgBCED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f3NqQQJ0IgEEQCAFQQAgAfwLAAsgAiAIaiIBQQFrIQIgAyABQQJ0akEEawUgBQtBADYCACAAIAJBAWoiATYC6AELAkACQAJAAkACQAJAAkACQAJAAkAgBgRAQQEgBCAEQQFNG0EDbCEFQQAhAUEIIQIDQCABIAAoAtwBIgNPDQIgASAAKALoASIDTw0DIAAoAuQBIAJqQQhrIAAoAtgBIAFqLQAAs0MAAIA9lEMAACDBkhCmBDgCACABQQFqIgggACgC3AEiA08NBCAIIAAoAugBIgNPDQUgACgC5AEgAmpBBGsgACgC2AEgAWpBAWotAACzQwAAgD2UQwAAIMGSEKYEOAIAIAFBAmoiCCAAKALcASIDTw0GIAggACgC6AEiA08NByAAKALkASACaiAAKALYASABakECai0AALNDAACAPZRDAAAgwZIQpgQ4AgAgAkEMaiECIAUgAUEDaiIBRw0ACyAAKALoASEBCyAAIAAoApACIAQgACgC5AEgARDiAyAAKALcASICIAdJDQYgAEEANgLcASACIAdrIQEgBkUNByACIAdGDQkgAUUNCCAAKALYASICIAIgB2ogAfwKAAAMCAsgASADQbijwQAQvwcACyABIANByKPBABC/BwALIAggA0HYo8EAEL8HAAsgCCADQeijwQAQvwcACyAIIANB+KPBABC/BwALIAggA0GIpMEAEL8HAAsgByACQdyrxwAQogoACyACIAdGDQELIAAgATYC3AELIAAgACgCkAIgBGoiAjYCkAIgAiAAKAKIAkcNCSAAQQA2ApACIABBBDoAlAIMCQsgACgC3AEiAUEDbiICIAAoAogCIAAoApACayIGSQRAIAIhBiABQYCADEkNDgtBgIAEIAYgBkGAgARPGyIEQQNsIgcgACgC6AEiAUsEQCABIQIgByABayIIIAAoAuABIAFrSwRAIBQgASAIQQRBBBDQBSAAKALoASECCyAAKALkASIDIAJBAnRqIQUgCEECTwR/IAcgAUF/c2pBAnQiAQRAIAVBACAB/AsACyACIAhqIgFBAWshAiADIAFBAnRqQQRrBSAFC0EANgIAIAAgAkEBaiIBNgLoAQsCQAJAAkACQAJAAkACQAJAAkACQCAGBEBBASAEIARBAU0bQQNsIQVBACEBQQghAgNAIAEgACgC3AEiA08NAiABIAAoAugBIgNPDQMgACgC5AEgAmpBCGsgACgC2AEgAWotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAFBAWoiCCAAKALcASIDTw0EIAggACgC6AEiA08NBSAAKALkASACakEEayAAKALYASABakEBai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUECaiIIIAAoAtwBIgNPDQYgCCAAKALoASIDTw0HIAAoAuQBIAJqIAAoAtgBIAFqQQJqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACACQQxqIQIgBSABQQNqIgFHDQALIAAoAugBIQELIAAgACgCkAIgBCAAKALkASABEKsEIAAoAtwBIgIgB0kNBiAAQQA2AtwBIAIgB2shASAGRQ0HIAIgB0YNCSABRQ0IIAAoAtgBIgIgAiAHaiAB/AoAAAwICyABIANB2KLBABC/BwALIAEgA0HoosEAEL8HAAsgCCADQfiiwQAQvwcACyAIIANBiKPBABC/BwALIAggA0GYo8EAEL8HAAsgCCADQaijwQAQvwcACyAHIAJB3KvHABCiCgALIAIgB0YNAQsgACABNgLcAQsgACAAKAKQAiAEaiICNgKQAiACIAAoAogCRw0IIABBADYCkAIgAEEDOgCUAgwICyAAKALcASICIAAoAogCIAAoApACayIGSQRAIAIiBkGAgARJDQ0LQYCABCAGIAZBgIAETxsiBCAAKALoASIBSwRAIAEhAiAEIAFrIgggACgC4AEgAWtLBEAgFCABIAhBBEEEENAFIAAoAugBIQILIAAoAuQBIgMgAkECdGohBSAIQQJPBH8gBCABQX9zakECdCIBBEAgBUEAIAH8CwALIAIgCGoiAUEBayECIAMgAUECdGpBBGsFIAULQQA2AgAgACACQQFqIgE2AugBCwJAAkACQAJAAkACQCAGBEBDAACAP0MAAABAIAAsAJYCQQBOGyEaQQEhA0EBIAQgBEEBTRshBUEAIQEDQCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIAFBAnRqIBogACgC2AEgAWotAACzQwAAf0OVlDgCACADIgFBAWohAyABIAVHDQALIAAoAugBIQELIAAgACgCkAIgBCAAKALkASABEK8DIAAoAtwBIgIgBEkNAiAAQQA2AtwB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ApACIAAoApgCayIGSQRAIAIhBiABQYCADEkNEwtBgIAEIAYgBkGAgARPGyIEQQNsIgcgACgC8AEiAUsEQCABIQIgByABayIIIAAoAugBIAFrSwRAIBQgASAIQQRBBBDQBSAAKALwASECCyAAKALsASIDIAJBAnRqIQUgCEECTwR/IAcgAUF/c2pBAnQiAQRAIAVBACAB/AsACyACIAhqIgFBAWshAiADIAFBAnRqQQRrBSAFC0EANgIAIAAgAkEBaiIBNgLwAQsCQAJAAkACQAJAAkACQAJAAkACQCAGBEBBASAEIARBAU0bQQNsIQVBACEBQQghAgNAIAEgACgC5AEiA08NAiABIAAoAvABIgNPDQMgACgC7AEgAmpBCGsgACgC4AEgAWotAACzQwAAgD2UQwAAIMGSEKYEOAIAIAFBAWoiCCAAKALkASIDTw0EIAggACgC8AEiA08NBSAAKALsASACakEEayAAKALgASABakEBai0AALNDAACAPZRDAAAgwZIQpgQ4AgAgAUECaiIIIAAoAuQBIgNPDQYgCCAAKALwASIDTw0HIAAoAuwBIAJqIAAoAuABIAFqQQJqLQAAs0MAAIA9lEMAACDBkhCmBDgCACACQQxqIQIgBSABQQNqIgFHDQALIAAoAvABIQELIAAgACgCmAIgBCAAKALsASABEKoCIAAoAuQBIgIgB0kNBiAAQQA2AuQBIAIgB2shASAGRQ0HIAIgB0YNCSABRQ0IIAAoAuABIgIgAiAHaiAB/AoAAAwICyABIANBuKPBABC/BwALIAEgA0HIo8EAEL8HAAsgCCADQdijwQAQvwcACyAIIANB6KPBABC/BwALIAggA0H4o8EAEL8HAAsgCCADQYikwQAQvwcACyAHIAJB3KvHABCiCgALIAIgB0YNAQsgACABNgLkAQsgACAAKAKYAiAEaiICNgKYAiACIAAoApACRw0NIABBADYCmAIgAEEEOgCcAgwNCyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIgZJBEAgAiEGIAFBgIAMSQ0SC0GAgAQgBiAGQYCABE8bIgRBA2wiByAAKALwASIBSwRAIAEhAiAHIAFrIgggACgC6AEgAWtLBEAgFCABIAhBBEEEENAFIAAoAvABIQILIAAoAuwBIgMgAkECdGohBSAIQQJPBH8gByABQX9zakECdCIBBEAgBUEAIAH8CwALIAIgCGoiAUEBayECIAMgAUECdGpBBGsFIAULQQA2AgAgACACQQFqIgE2AvABCwJAAkACQAJAAkACQAJAAkACQAJAIAYEQEEBIAQgBEEBTRtBA2whBUEAIQFBCCECA0AgASAAKALkASIDTw0CIAEgACgC8AEiA08NAyAAKALsASACakEIayAAKALgASABai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUEBaiIIIAAoAuQBIgNPDQQgCCAAKALwASIDTw0FIAAoAuwBIAJqQQRrIAAoAuABIAFqQQFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQJqIgggACgC5AEiA08NBiAIIAAoAvABIgNPDQcgACgC7AEgAmogACgC4AEgAWpBAmotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAJBDGohAiAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiAEIAAoAuwBIAEQtgIgACgC5AEiAiAHSQ0GIABBADYC5AEgAiAHayEBIAZFDQcgAiAHRg0JIAFFDQggACgC4AEiAiACIAdqIAH8CgAADAgLIAEgA0HYosEAEL8HAAsgASADQeiiwQAQvwcACyAIIANB+KLBABC/BwALIAggA0GIo8EAEL8HAAsgCCADQZijwQAQvwcACyAIIANBqKPBABC/BwALIAcgAkHcq8cAEKIKAAsgAiAHRg0BCyAAIAE2AuQBCyAAIAAoApgCIARqIgI2ApgCIAIgACgCkAJHDQwgAEEANgKYAiAAQQM6AJwCDAwLIAAoAuQBIgIgACgCkAIgACgCmAJrIgZJBEAgAiIGQYCABEkNEQtBgIAEIAYgBkGAgARPGyIEIAAoAvABIgFLBEAgASECIAQgAWsiCCAAKALoASABa0sEQCAUIAEgCEEEQQQQ0AUgACgC8AEhAgsgACgC7AEiAyACQQJ0aiEFIAhBAk8EfyAEIAFBf3NqQQJ0IgEEQCAFQQAgAfwLAAsgAiAIaiIBQQFrIQIgAyABQQJ0akEEawUgBQtBADYCACAAIAJBAWoiATYC8AELAkACQAJAAkACQAJAIAYEQEMAAIA/QwAAAEAgACwAngJBAE4bIRpBASEDQQEgBCAEQQFNGyEFQQAhAQNAIAEgACgC5AEiAk8NAiABIAAoAvABIgJPDQMgACgC7AEgAUECdGogGiAAKALgASABai0AALNDAAB/Q5WUOAIAIAMiAUEBaiEDIAEgBUcNAAsgACgC8AEhAQsgACAAKAKYAiAEIAAoAuwBIAEQsQIgACgC5AEiAiAESQ0CIABBADYC5AEgAiAEayEBIAZFDQMgAiAERg0FIAFFDQQgACgC4AEiAiACIARqIAH8CgAADAQLIAEgAkG4osEAEL8HAAsgASACQciiwQAQvwcACyAEIAJB3KvHABCiCgALIAIgBEYNAQsgACABNgLkAQsgACAAKAKYAiAEaiICNgKYAiACIAAoApACRw0LIABBADYCmAIgAEECOgCcAgwLCyAIRQ0AQQEgAC0AnQJ0syEaQQkhAUEAIQZBACEDQQAhAgNAIAFBBmsiBCAAKALkASIFSw0EIAIgACgC8AEiBU8NBiAAKALsASADaiAAKALgASABaiIFQQdrLQAAIgRBEHQgBUEJay0AAHIgBUEIay0AAEEIdHIiBUGAgIB4ciAFIATAQQBIG7IgGpU4AgAgAUEDayIEIAAoAuQBIgVLDQUgAkEBaiIEIAAoAvABIgVPDQggACgC7AEgA2pBBGogACgC4AEgAWoiBUEEay0AACIEQRB0IAVBBmstAAByIAVBBWstAABBCHRyIgVBgICAeHIgBSAEwEEASBuyIBqVOAIAIAEgACgC5AEiBUsNByACQQJqIgQgACgC8AEiBU8NAiAAKALsASADakEIaiAAKALgASABaiIFQQFrLQAAIgRBEHQgBUEDay0AAHIgBUECay0AAEEIdHIiBUGAgIB4ciAFIATAQQBIG7IgGpU4AgAgAUEJaiEBIANBDGohAyACQQNqIQIgBkEBaiIGIA9JDQALCyAAIAAoApgCIA8gACgC7AEgACgC8AEQ1QUgACgC5AEiAiANIA9sIgNJDRMgAEEANgLkASACIANrIQEgCEUNASACIANGDQggAUUNByAAKALgASICIAIgA2ogAfwKAAAMBwsgBCAFQaiiwQAQvwcACyACIANHDQUMBgsgBCAFQdihwQAQogoACyAEIAVB+KHBABCiCgALIAIgBUHoocEAEL8HAAsgASAFQZiiwQAQogoACyAEIAVBiKLBABC/BwALIAAgATYC5AELIAAgACgCmAIgD2oiAjYCmAIgAiAAKAKQAkcNACAAQQA2ApgCIABBAToAnAIMAAsACyAJQQE2AlQgCUHQoMEANgJQIAlCATcCXCAJIAlBLGqtQoCAgIAQhDcDQCAJIAlBQGs2AlggCUEwaiIAIAlB0ABqEOYGIAAQwQchAQwHCyAJQQE2AmQgCUGwgsgANgJgIAlBATYCVCAJQfCgwQA2AlAgCUEBNgJcIAkgCUEcaq1CgICAgKADhDcDQCAJIAlBQGs2AlggCUEgaiIAIAlB0ABqEOYGIAAQwQchAQwGCyADIAJB+KfBABCiCgALIAYgA0H4p8EAEKUKAAsgCS0ADyEBCyAMIBVqIQwCQAJAAkACQAJAIAFB/wFxDgMBAgMACyAJQQE2AlQgCUGcg8gANgJQIAlCATcCXCAJIAlBD2qtQoCAgICwA4Q3A0AgCSAJQUBrNgJYIAlBEGoiACAJQdAAahDmBiAAEMEHIQEMBgsgAEEBOgCpVCAMQQhqIAwgACgCzAEiASAMayICQQAgASACTxtBB0sbIQwMAgsgEyAVckUNAQsgDCAAKALMASICSQ0BCwsgDEUNACAMIAAoAswBIgJNBEBBACEBIABBADYCzAEgAiAMRg0CIAIgDGsiAwRAIAAoAsgBIgIgAiAMaiAD/AoAAAsgACADNgLMAQwCCyAMIAJB3KvHABCiCgALQQAhAQsgCUHwAGokACABDwsgAyACQdyrxwAQogoAC5BeBBx/Hn0HewF+IwBBgANrIgUkACAAKAIIIR4gBUEANgLwASAFQQA2AvQCIAUgADYCuAEgBSABIAJBAnRqIhA2ArQBIAUgATYCsAEgBUH0AWohCiAFQfQCaiEJQSAhBwJAAkACQAJAAkACfyACQSFJBEAgCSEIIAoMAQsgBUEgaiAFQfABakF/IAJBAWtndkEBahCXBCAFKAIgIgRBgYCAgHhHBEAgBA0CQaifxwBBEUGAxccAEKIIAAsgBSgC9AIiB0EhSQRAIAchBiAJIQhBICEHIAoMAQsgBSgC9AEhBiAKIQggBSgC+AELIQQCQAJAIAggBiAHSQR/IAQgBkECdGohBANAIAVBGGogBUGwAWoQ5QMgBSgCGEEBcUUNAiAEIAUqAhw4AgAgBEEEaiEEIAcgBkEBaiIGRw0ACyAHBSAGCzYCACAFQTBqIAVBuAFqKAIANgIAIAUgBSkCsAE3AygDQCAFQRBqIAVBKGoQ5QMgBSgCEEEBcUUNAgJ/IAUoAvQCIgdBIUkEQCAHIQQgCSEGQSAhByAKDAELIAUoAvQBIQQgCiEGIAUoAvgBCyEIIAUqAhQhISAEIAdGBH8gBUHwAWoQgwcgBSgC+AEhCCAKIQYgBSgC9AEFIAQLQQJ0IAhqICE4AgAgBiAGKAIAQQFqNgIADAALAAsgCCAGNgIACyAFQShqIAVB8AFqQYgB/AoAAAJAAn8gBSgCrAEiCkEhTwRAIAUoAjAhCSAFKAIsDAELIAVBLGohCSAKCyIERQRAQwAAAIAhIAwBCyAEQQNxIQYCQCAEQQRJBEBBACEHQwAAAIAhIAwBCyAEQXxxIQhBACEHQwAAAIAhICAJIQQDQCAgIAQqAgCSIARBBGoqAgCSIARBCGoqAgCSIARBDGoqAgCSISAgBEEQaiEEIAggB0EEaiIHRw0ACwsgBkUNACAJIAdBAnRqIQQDQCAgIAQqAgCSISAgBEEEaiEEIAZBAWsiBg0ACwsgIENgQqINEJ8JISwgBUEsaiITIQggCkEhTwRAIAUoAiwhCiAFKAIwIQgLAkAgCkUNACAIIQQgCkEBa0H/////A3EiBkEDTwRAIAQgBkEBaiILQfz///8HcSIJQQJ0aiEEICz9EyFAIAkhByAIIQYDQCAGIAb9AAIAIED95wH9CwIAIAZBEGohBiAHQQRrIgcNAAsgCSALRg0BCyAIIApBAnRqIQgDQCAEIAQqAgAgLJU4AgAgBEEEaiIEIAhHDQALCwJ9AkACQAJAAkACQAJAAkAgAkUEQCAFQgA3A8ABDAELQwAAgD8gACoCQCAALQBYIhFBAkYiBBtDAAAAACAAKgI8IAQbIiKTISMgBSgCLCAFKAKsASIEIARBIEsiBBshCyACQQFrQf////8DcUEBaiENIAAoAgQhDiAAKAIIIQxBACEHIAUoAjAgEyAEGyIKIQggAUEEaiIGIQQgASEJA0AgCSgCACIJIAxPDQIgByALTw0DIA4gCUEYbGoiCSoCCCAIKgIAIiEgP/0fAhDoBv0TIAkqAgAgISA//R8AEOgG/SAAIAkqAgQgISA//R8BEOgG/SABIT8gCUEOai8BACEPICIgCUEQai0AACIJs0MAAH9DlSAjlJIgISBB/R8CEOgG/RMgIiAPIAlBEHRyQf8BcbNDAAB/Q5UgI5SSICEgQf0fABDoBv0gACAiIA9BCHazQwAAf0OVICOUkiAhIEH9HwEQ6Ab9IAEhQSAIQQRqIQggBCAEIgkgEEdBAnRqIQQgDSAHQQFqIgdHDQALIAVCADcDwAFDAAAQQSAAKgJIIBFBAkYiBBtDAABAwSAAKgJEIAQbIiKTQwAAfkOVISMgA0MAAAA/lCIDIAOUISBBACEHIAEhBANAIAQoAgAiBCAMTw0EIAcgC08NBSAOIARBGGxqIghBEWovAAAgCEETai0AACIJQRB0ciIEQQh2IQ8gCP0AAgAgCioCACEDQwAAAAAhJUMAAAAAISYgBEH/AXEEQCAiICMgBEEBa0H/AXGzlJIQpgQhJgsgD0H/AXEEQCAiICMgD0EBa0H/AXGzlJIQpgQhJQsgBiEEID/95QEhQCAJBH0gIiAjIAlBAWtB/wFxs5SSEKYEBUMAAAAACyEpQwAAgD8gCEEUai8BACIGQQh2s/0TIAYgCEEWai0AACIIQRB0ckH/AXGz/SAB/QwAAH9DAAB/QwAAf0MAAH9D/ecBIkIgQv3kAf0MAACAvwAAgL8AAIC/AACAv/3kASJC/R8BIiiLkyBC/R8AIiuLkyIkjEMAAAAAEJ8JISEgICBA/R8AIicgJ5QgKf0TIAizQwAAf0OVQwAAAD+UQ9sPSUCUIi0QrAIiKSAoICEgIYwiLiBC/QwAAAAAAAAAAAAAAAAAAAAA/Ub9TSJC/ccB/RsCQQFxG5IiKCAkICSUICggKJQgKyAhIC4gQv0bAEEBcRuSIiggKJSSkpEiK5WUIiEgKSAkICuVlCIuIC6SIiSUIi8gLRCuAiItICkgKCArlZQiKSApkiIolCIrkv0TICkgJJQiMCAtICEgIZIiNJQiNZP9IAFDAACAPyAhIDSUIjQgKSAolCI2kpP9IAL95gEiQv0fACIpICmUICX9EyAhICiUIiUgLSAklCIok/0TQwAAgD8gNCAuICSUIiSSk/0gASAwIDWS/SAC/eYBIkP9HwAiISAhlCAm/RNDAACAPyA2ICSSk/0TICUgKJL9IAEgLyArk/0gAv3mASJE/R8AIiQgJJSSkpKSIAMgPv0fABDoBv0TICAgQP0fASIlICWUIEL9HwEiJiAmlCBD/R8BIiggKJQgRP0fASIrICuUkpKSkiADID79HwEQ6Ab9IAEgICBA/R8CIi4gLpQgQv0fAiItIC2UIEP9HwIiLyAvlCBE/R8CIjAgMJSSkpKSIAMgPv0fAhDoBv0gAiAnICWUICkgJpQgISAolCAkICuUkpKSIAMgPv0fAxDoBv0gAyE+IApBBGohCiAEIAQgEEdBAnRqIQYgJSAulCAmIC2UICggL5QgKyAwlJKSkiADICoQ6AYhKiAnIC6UICkgLZQgISAvlCAkIDCUkpKSIAMgMxDoBiEzIA0gB0EBaiIHRw0ACwsgBSAqOALEASAFIDM4AsABIAUgPv0LBLABIAVB8AFqIAVBsAFqEL0BIAUqAvgBIAUqAvQBITMgBSoC8AEhKSAFKgKIAiIkIAUqApACIgMgBf0ABKACIj79HwEiIpQgBSoClAIiISA+/R8AIiOUk5QgBSoCgAIiKiAhID79HwIiJZQgBSoCmAIiICAilJOUIAUqAoQCIicgAyAllCAgICOUk5STkkMAAAAAXQRAICWM/RMgI4z9IAAgIoz9IAEhPgtDAAAAABCfCSAzQwAAAAAQnwkgKUMAAAAAEJ8JkSIlvEH/////B3FB////+wdLDQSRIiO8Qf////8HcUH////7B0sNBJEiIrxB/////wdxQf////sHSw0EICL9EyAl/SAAICP9IAH9DGBCog1gQqINYEKiDWBCog396wEhQCA+/R8BISUgPv0fACEmID79HwIiIkMAAAAAX0UEQCAiQwAAgD+SISIgKiAhkiIhQwAAAABfRQRAICEgIpIiIUMAAAA/ICGRlSIqlCEhICcgA5MgKpQhIiAmICSTICqUISMgICAlkyAqlAwICyAnIAOTQwAAAD8gIiAhkyIikZUiA5QhISAiIAOUISIgICAlkiADlCEjICQgJpIgA5QMBwtDAACAPyAikyEiICEgKpMiIUMAAAAAX0UNBSAgICWTQwAAAD8gIiAhkyIlkZUiIJQhISAkICaSICCUISIgJyADkiAglCEjICUgIJQMBgsgCSAMQbTUxwAQvwcACyAHIAtBpNbHABC/BwALIAQgDEG01McAEL8HAAsgByALQZTWxwAQvwcAC0GAy8cAQdYAQdTUxwAQoggACyAmICSTQwAAAD8gISAikiIjkZUiJJQhISAgICWSICSUISIgIyAklCEjICcgA5IgJJQLISYgQP0fACIkIED9HwEiJ5RDj8LNPxCCCyEDICQgQP0fAiIllEOPws0/EIILISBDAAB6REO9N4Y1ICwgJyAllEOPws0/EIILIAMgIJKSQwAAQECVQ+ZAHz8QggtD2w9JQZSVIgMgA0O9N4Y1XRsiAyADQwAAekReGwJ/IAAtAFhBAkYEQCAFQfABaiEHIAVB/AJqIQogBUHYAWohCSAFQfgCagwBCyAAQUBrIQkgAEHEAGohCiAAQTxqIQcgAEHIAGoLIQQgBUGAgICKfDYC/AIgBUGAgID8AzYC2AEgBUEANgLwASAFQYCAwIgENgL4ArwiCEH///8DcSELIAhBgICAgHhxIQYgCioCACEDIAkqAgAhLCAHKgIAISAgBCoCACEqAkAgCEGAgID8B3EiBEGAgID8B0YEQCALQQ12IAZBEHZyIAtBAEdBCXRyQYD4AXIhBgwBCyAGQRB2IQYgBEGAgIC4BE0EQCAEQYCAgMQDTwRAIAhBDHYgCEH/3wBxQQBHcSAEQQ12IAtBDXZqQYCAAWogBnJqIQYMAgsgBEGAgICYA0kNASALQYCAgARyIghBHiAEQRd2IgdrdiEEIAhBHSAHayIHdkEBcQR/IARBAyAHdEEBayAIcUEAR2oFIAQLIAZyIQYMAQsgBkGA+AFyIQYLIAUgITgC/AEgBSAiOAL4ASAFICM4AvQBIAUgJjgC8AFDAAB/Q0MAAAAAIEH9HwEgIJMgLCAgkyIilUMAAH9DlCIhICFDAAAAAF0bIiEgIUMAAH9DXhsQ7gchIUEAIQdB/wFDAAB/Q0MAAAAAIEH9HwIgIJMgIpVDAAB/Q5QiIyAjQwAAAABdGyIjICNDAAB/Q14bEO4HIiP8AUEAICNDAAAAAGAbICNDAAB/Q14bQRB0Qf8BICH8AUEAICFDAAAAAGAbICFDAAB/Q14bQQh0ckH/AUMAAH9DQwAAAAAgQf0fACAgkyAilUMAAH9DlCIhICFDAAAAAF0bIiEgIUMAAH9DXhsQ7gciIfwBQQAgIUMAAAAAYBsgIUMAAH9DXhtyIQhB/wFDAACAP0MAAAAAICUQ9AUgA5MgKiADkyIhlSIiICJDAAAAAF0bIiIgIkMAAIA/XhtDAAB+Q5QQ7gciIvwBQQAgIkMAAAAAYBsgIkMAAH9DXhtBEHRB/wFDAACAP0MAAAAAICcQ9AUgA5MgIZUiIiAiQwAAAABdGyIiICJDAACAP14bQwAAfkOUEO4HIiL8AUEAICJDAAAAAGAbICJDAAB/Q14bQQFqQf8BcUEIdHJB/wFDAACAP0MAAAAAICQQ9AUgA5MgIZUiAyADQwAAAABdGyIDIANDAACAP14bQwAAfkOUEO4HIgP8AUEAIANDAAAAAGAbIANDAAB/Q14bQQFqQf8BcXJBgIAEaiEKIAVB8AFqEMQEIQkgACgCCCILIAAoAgBGBEBBACEMIwBBIGsiBCQAAkACQEEEIAAoAgAiDUEBdCIOIA5BBE0bIg6tQhh+IkVCIIhQRQ0AIEWnIg9B/P///wdLDQAgBCANBH8gBCANQRhsNgIcIAQgACgCBDYCFEEEBUEACzYCGCAEQQhqQQQgDyAEQRRqENIHIAQoAghBAUcNASAEKAIQGiAEKAIMIQwLIAxB5NTHABDQCQALIAQoAgwhDCAAIA42AgAgACAMNgIEIARBIGokAAsgACgCBCALQRhsaiIEID/9WgIIAiAEID/9WwIAACAEIAk7ARQgBCAKOwARIAQgCDsBDiAEIAY7AQwgBEEWaiAJQRB2OgAAIARBE2ogCkEQdjoAACAEQRBqIAhBEHY6AAAgACALQQFqNgIIIAVBADYC8AEgBUEANgKEAkEEIQogBUH0AWohCyAFQYQCaiENAn8gAkEFSQRAIAshDCANDAELIAVBCGogBUHwAWpBfyACQQFrZ3ZBAWoQmAQgBSgCCCIEQYGAgIB4RwRAIAQNAkGon8cAQRFBgMXHABCiCAALIAUoAoQCIgpBBUkEQCAKIQcgCyEMQQQhCiANDAELIAUoAvQBIQcgBSgC+AEhDCALCyEOAkACQCAHIApPBEAgASEEDAELAkACQCACQf////8DcSIEIAogB0F/c2oiCCAEIAhJGyIEQQdNDQAgB0ECdCAMaiIGIAFrQRBJDQAgByAEQQFqIgQgBEEDcSIEQQQgBBtrIglqIQcgASAJQQJ0aiEEIAEhCANAIAYgCP0AAgD9CwIAIAhBEGohCCAGQRBqIQYgCUEEayIJDQALDAELIAEhBAsgDCAHQQJ0aiEGAkADQCAEIBBGDQEgBiAEKAIANgIAIAZBBGohBiAEQQRqIQQgCiAHQQFqIgdHDQALIAohBwwBCyAOIAc2AgAMAQsgDiAHNgIAIAQgEEYNAANAAn8gBSgChAIiCEEFSQRAIAghBiALIQlBBCEIIA0MAQsgBSgC9AEhBiAFKAL4ASEJIAsLIQcgBCgCACEKIAYgCEYEfyAFQfABahCEByAFKAL4ASEJIAshByAFKAL0AQUgBgtBAnQgCWogCjYCACAHIAcoAgBBAWo2AgAgBEEEaiIEIBBHDQALCyAFQegBaiIJIAVBgAJqKQIANwMAIAUgBf0AAvAB/QsD2AEgACgCFCIGIAAoAgxGBEBBACEHIwBBIGsiBCQAAkACQEEEIABBDGoiCCgCACIKQQF0IgsgC0EETRsiC61CGH4iRUIgiFBFDQAgRaciDEH8////B0sNACAEIAoEfyAEIApBGGw2AhwgBCAIKAIENgIUQQQFQQALNgIYIARBCGpBBCAMIARBFGoQ0gcgBCgCCEEBRw0BIAQoAhAaIAQoAgwhBwsgB0H01McAENAJAAsgBCgCDCEHIAggCzYCACAIIAc2AgQgBEEgaiQACyAAKAIQIAZBGGxqIgQgBf0AA9gB/QsCACAEQRBqIAkpAwA3AgAgACAGQQFqNgIUIAAoAlxFDQQCQEH/AEMAAP5CQwAA/sICfSACRQRAIAAoAiAhCf0MAAAAAAAAAAAAAAAAAAAAACI/IT5DAAAAAAwBCyAFKAIsIAUoAqwBIgQgBEEgSyIIGyEEIAUoAjAgEyAIGyEHIAFBBGohCCACQQFrQf////8DcUEBaiELIAAoAhwhDCAAKAIgIQlDAAAAACEgQQAhBiABIQr9DAAAAAAAAAAAAAAAAAAAAAAiPiFBA0AgBCAGTQ0EIAooAgAiCiAJTw0CIEEgByoCACID/RMiQCAMIApBCWxqIg39XQABIj/9FQSy/RMgP/0VBbL9IAEgP/0VBrL9IAIgP/0VB7L9IAP95gH9DAAA/kIAAP5CAAD+QgAA/kL95wH95AEhQSA+IEAgP/0VALL9EyA//RUBsv0gASA//RUCsv0gAiA//RUDsv0gA/3mAf0MAAD+QgAA/kIAAP5CAAD+Qv3nAf3kASE+IAdBBGohByAIIAgiCiAQR0ECdGohCCAgIAMgDSwAALKUQwAA/kKVkiEgIAsgBkEBaiIGRw0ACyA+/QwAAP5CAAD+QgAA/kIAAP5C/eYBIT8gQf0MAAD+QgAA/kIAAP5CAAD+Qv3mASE+ICBDAAD+QpQLIgMgA0MAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEKQf8AQwAA/kJDAAD+wiA//R8DIgMgA0MAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyELQf8AQwAA/kJDAAD+wiA//R8CIgMgA0MAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEMQf8AQwAA/kJDAAD+wiA//R8BIgMgA0MAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyENQf8AQwAA/kJDAAD+wiA//R8AIgMgA0MAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEOQf8AQwAA/kJDAAD+wiA+/R8DIgMgA0MAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEPQf8AQwAA/kJDAAD+wiA+/R8CIgMgA0MAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyERQf8AQwAA/kJDAAD+wiA+/R8BIgMgA0MAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEUQf8AQwAA/kJDAAD+wiA+/R8AIgMgA0MAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEVIAAoAhggCUYEQEEAIQYjAEEgayIEJAACQAJAQQQgAEEYaiIIKAIAIgdBAXQiEiASQQRNGyISrUIJfiJFQiCIUEUNACBFpyIWQQBIDQAgBCAHBH8gBCAHQQlsNgIcIAQgCCgCBDYCFEEBBUEACzYCGCAEQQhqQQEgFiAEQRRqENIHIAQoAghBAUcNASAEKAIQGiAEKAIMIQYLIAZBhNXHABDQCQALIAQoAgwhBiAIIBI2AgAgCCAGNgIEIARBIGokAAsgACgCHCAJQQlsaiIEIA86AAggBCAROgAHIAQgFDoABiAEIBU6AAUgBCALOgAEIAQgDDoAAyAEIA06AAIgBCAOOgABIAQgCjoAACAAIAlBAWo2AiAgACgCXEEBTQ0FAkACfSACRQRAQwAAAAAhJEMAAAAAISdDAAAAACEhQwAAAAAhIkMAAAAAISlDAAAAACEoQwAAAAAhK0MAAAAAIS5DAAAAACEtQwAAAAAhL0MAAAAAISBDAAAAACEjQwAAAAAMAQsgBSgCLCAFKAKsASIEIARBIEsiBBshCSAFKAIwIBMgBBshCCABQQRqIQogAkEBa0H/////A3FBAWohDCAAKAIoIQ0gACgCLCELQQAhB0MAAAAAISRDAAAAACEDQwAAAAAhJ0MAAAAAISFDAAAAACEiQwAAAAAhI0MAAAAAISVDAAAAACEmQwAAAAAhLEMAAAAAITBDAAAAACE0QwAAAAAhKiABIQRDAAAAACEzA0AgByAJTw0GIAQoAgAiBiALTw0CIAoiBCAQR0ECdCAEaiEKIDEgCCoCACIgIA0gBkEPbGoiBiwADrKUQwAA/kKVkiExICQgICAGLAANspRDAAD+QpWSISQgAyAgIAYsAAyylEMAAP5ClZIhAyAnICAgBiwAC7KUQwAA/kKVkiEnIDIgICAGLAAKspRDAAD+QpWSITIgISAgIAYsAAmylEMAAP5ClZIhISAiICAgBiwACLKUQwAA/kKVkiEiICMgICAGLAAHspRDAAD+QpWSISMgJSAgIAYsAAaylEMAAP5ClZIhJSAmICAgBiwABbKUQwAA/kKVkiEmICwgICAGLAAEspRDAAD+QpWSISwgMCAgIAYsAAOylEMAAP5ClZIhMCA0ICAgBiwAArKUQwAA/kKVkiE0ICogICAGLAABspRDAAD+QpWSISogMyAgIAYsAACylEMAAP5ClZIhMyAIQQRqIQggDCAHQQFqIgdHDQALIDFDAAD+QpQhICAkQwAA/kKUIS8gA0MAAP5ClCEtICdDAAD+QpQhLiAyQwAA/kKUISsgIUMAAP5ClCEoICJDAAD+QpQhKSAjQwAA/kKUISIgJUMAAP5ClCEhICZDAAD+QpQhMiAsQwAA/kKUIScgNEMAAP5ClCEkICpDAAD+QpQhMSAzQwAA/kKUISMgMEMAAP5ClAshJUH/AEMAAP5CQwAA/sIgICAgQwAA/sJdGyIDIANDAAD+Ql4bEO4HIgP8AEGAfyADQwAAAMNgGyADQwAA/kJeG0EAIAMgA1sbIQlB/wBDAAD+QkMAAP7CIC8gL0MAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyELQf8AQwAA/kJDAAD+wiAtIC1DAAD+wl0bIgMgA0MAAP5CXhsQ7gciA/wAQYB/IANDAAAAw2AbIANDAAD+Ql4bQQAgAyADWxshDEH/AEMAAP5CQwAA/sIgLiAuQwAA/sJdGyIDIANDAAD+Ql4bEO4HIgP8AEGAfyADQwAAAMNgGyADQwAA/kJeG0EAIAMgA1sbIQ1B/wBDAAD+QkMAAP7CICsgK0MAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEOQf8AQwAA/kJDAAD+wiAoIChDAAD+wl0bIgMgA0MAAP5CXhsQ7gciA/wAQYB/IANDAAAAw2AbIANDAAD+Ql4bQQAgAyADWxshD0H/AEMAAP5CQwAA/sIgKSApQwAA/sJdGyIDIANDAAD+Ql4bEO4HIgP8AEGAfyADQwAAAMNgGyADQwAA/kJeG0EAIAMgA1sbIRFB/wBDAAD+QkMAAP7CICIgIkMAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEUQf8AQwAA/kJDAAD+wiAhICFDAAD+wl0bIgMgA0MAAP5CXhsQ7gciA/wAQYB/IANDAAAAw2AbIANDAAD+Ql4bQQAgAyADWxshFUH/AEMAAP5CQwAA/sIgMiAyQwAA/sJdGyIDIANDAAD+Ql4bEO4HIgP8AEGAfyADQwAAAMNgGyADQwAA/kJeG0EAIAMgA1sbIRJB/wBDAAD+QkMAAP7CICcgJ0MAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEWQf8AQwAA/kJDAAD+wiAlICVDAAD+wl0bIgMgA0MAAP5CXhsQ7gciA/wAQYB/IANDAAAAw2AbIANDAAD+Ql4bQQAgAyADWxshGEH/AEMAAP5CQwAA/sIgJCAkQwAA/sJdGyIDIANDAAD+Ql4bEO4HIgP8AEGAfyADQwAAAMNgGyADQwAA/kJeG0EAIAMgA1sbIRlB/wBDAAD+QkMAAP7CIDEgMUMAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEaQf8AQwAA/kJDAAD+wiAjICNDAAD+wl0bIgMgA0MAAP5CXhsQ7gciA/wAQYB/IANDAAAAw2AbIANDAAD+Ql4bQQAgAyADWxshGyAAKAIsIgYgACgCJEYEQEEAIQcjAEEgayIEJAACQAJAQQQgAEEkaiIIKAIAIgpBAXQiFyAXQQRNGyIXrUIPfiJFQiCIUEUNACBFpyIcQQBIDQAgBCAKBH8gBCAKQQ9sNgIcIAQgCCgCBDYCFEEBBUEACzYCGCAEQQhqQQEgHCAEQRRqENIHIAQoAghBAUcNASAEKAIQGiAEKAIMIQcLIAdBlNXHABDQCQALIAQoAgwhByAIIBc2AgAgCCAHNgIEIARBIGokAAsgACgCKCAGQQ9saiIEIAk6AA4gBCALOgANIAQgDDoADCAEIA06AAsgBCAOOgAKIAQgDzoACSAEIBE6AAggBCAUOgAHIAQgFToABiAEIBI6AAUgBCAWOgAEIAQgGDoAAyAEIBk6AAIgBCAaOgABIAQgGzoAACAAIAZBAWo2AiwgACgCXEECTQ0GAkACfSACRQRAQwAAAAAhMUMAAAAAISRDAAAAACEnQwAAAAAhMkMAAAAAISFDAAAAACEiQwAAAAAhI0MAAAAAISVDAAAAACEmQwAAAAAhLEMAAAAAITVDAAAAACE2QwAAAAAhIEMAAAAADAELIAUoAiwgBSgCrAEiBCAEQSBLIggbIQQgBSgCMCATIAgbIQggAUEEaiEKIAJBAWtB/////wNxQQFqIQkgACgCNCELIAAoAjghBkMAAAAAITFBACEHQwAAAAAhJEMAAAAAIQNDAAAAACEnQwAAAAAhMkMAAAAAISFDAAAAACEiQwAAAAAhI0MAAAAAISVDAAAAACEmQwAAAAAhLEMAAAAAITBDAAAAACE0QwAAAAAhKkMAAAAAITNDAAAAACEpQwAAAAAhKEMAAAAAIStDAAAAACEuQwAAAAAhLUMAAAAAIS8DQCAEIAdNDQggASgCACICIAZPDQIgCiIBIBBHQQJ0IAFqIQogMSAIKgIAIiAgCyACQRVsaiICLAAUspRDAAD+QpWSITEgJCAgIAIsABOylEMAAP5ClZIhJCADICAgAiwAErKUQwAA/kKVkiEDICcgICACLAARspRDAAD+QpWSIScgMiAgIAIsABCylEMAAP5ClZIhMiAhICAgAiwAD7KUQwAA/kKVkiEhICIgICACLAAOspRDAAD+QpWSISIgIyAgIAIsAA2ylEMAAP5ClZIhIyAlICAgAiwADLKUQwAA/kKVkiElICYgICACLAALspRDAAD+QpWSISYgLCAgIAIsAAqylEMAAP5ClZIhLCAwICAgAiwACbKUQwAA/kKVkiEwIDQgICACLAAIspRDAAD+QpWSITQgKiAgIAIsAAeylEMAAP5ClZIhKiAzICAgAiwABrKUQwAA/kKVkiEzICkgICACLAAFspRDAAD+QpWSISkgKCAgIAIsAASylEMAAP5ClZIhKCArICAgAiwAA7KUQwAA/kKVkiErIC4gICACLAACspRDAAD+QpWSIS4gLSAgIAIsAAGylEMAAP5ClZIhLSAvICAgAiwAALKUQwAA/kKVkiEvIAhBBGohCCAJIAdBAWoiB0cNAAsgMUMAAP5ClCEgICRDAAD+QpQhPSADQwAA/kKUITwgJ0MAAP5ClCE7IDJDAAD+QpQhOiAhQwAA/kKUITkgIkMAAP5ClCE4ICNDAAD+QpQhNyAlQwAA/kKUITYgJkMAAP5ClCE1ICxDAAD+QpQhLCAwQwAA/kKUISYgNEMAAP5ClCElICpDAAD+QpQhIyAzQwAA/kKUISIgKUMAAP5ClCEhIChDAAD+QpQhMiArQwAA/kKUIScgLUMAAP5ClCEkIC9DAAD+QpQhMSAuQwAA/kKUCyEqQf8AQwAA/kJDAAD+wiAgICBDAAD+wl0bIgMgA0MAAP5CXhsQ7gciA/wAQYB/IANDAAAAw2AbIANDAAD+Ql4bQQAgAyADWxshB0H/AEMAAP5CQwAA/sIgPSA9QwAA/sJdGyIDIANDAAD+Ql4bEO4HIgP8AEGAfyADQwAAAMNgGyADQwAA/kJeG0EAIAMgA1sbIQpB/wBDAAD+QkMAAP7CIDwgPEMAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEJQf8AQwAA/kJDAAD+wiA7IDtDAAD+wl0bIgMgA0MAAP5CXhsQ7gciA/wAQYB/IANDAAAAw2AbIANDAAD+Ql4bQQAgAyADWxshC0H/AEMAAP5CQwAA/sIgOiA6QwAA/sJdGyIDIANDAAD+Ql4bEO4HIgP8AEGAfyADQwAAAMNgGyADQwAA/kJeG0EAIAMgA1sbIQxB/wBDAAD+QkMAAP7CIDkgOUMAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEQQf8AQwAA/kJDAAD+wiA4IDhDAAD+wl0bIgMgA0MAAP5CXhsQ7gciA/wAQYB/IANDAAAAw2AbIANDAAD+Ql4bQQAgAyADWxshE0H/AEMAAP5CQwAA/sIgNyA3QwAA/sJdGyIDIANDAAD+Ql4bEO4HIgP8AEGAfyADQwAAAMNgGyADQwAA/kJeG0EAIAMgA1sbIQ1B/wBDAAD+QkMAAP7CIDYgNkMAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEOQf8AQwAA/kJDAAD+wiA1IDVDAAD+wl0bIgMgA0MAAP5CXhsQ7gciA/wAQYB/IANDAAAAw2AbIANDAAD+Ql4bQQAgAyADWxshD0H/AEMAAP5CQwAA/sIgLCAsQwAA/sJdGyIDIANDAAD+Ql4bEO4HIgP8AEGAfyADQwAAAMNgGyADQwAA/kJeG0EAIAMgA1sbIRFB/wBDAAD+QkMAAP7CICYgJkMAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEUQf8AQwAA/kJDAAD+wiAlICVDAAD+wl0bIgMgA0MAAP5CXhsQ7gciA/wAQYB/IANDAAAAw2AbIANDAAD+Ql4bQQAgAyADWxshFUH/AEMAAP5CQwAA/sIgIyAjQwAA/sJdGyIDIANDAAD+Ql4bEO4HIgP8AEGAfyADQwAAAMNgGyADQwAA/kJeG0EAIAMgA1sbIRJB/wBDAAD+QkMAAP7CICIgIkMAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEWQf8AQwAA/kJDAAD+wiAhICFDAAD+wl0bIgMgA0MAAP5CXhsQ7gciA/wAQYB/IANDAAAAw2AbIANDAAD+Ql4bQQAgAyADWxshGEH/AEMAAP5CQwAA/sIgMiAyQwAA/sJdGyIDIANDAAD+Ql4bEO4HIgP8AEGAfyADQwAAAMNgGyADQwAA/kJeG0EAIAMgA1sbIRlB/wBDAAD+QkMAAP7CICcgJ0MAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEaQf8AQwAA/kJDAAD+wiAqICpDAAD+wl0bIgMgA0MAAP5CXhsQ7gciA/wAQYB/IANDAAAAw2AbIANDAAD+Ql4bQQAgAyADWxshG0H/AEMAAP5CQwAA/sIgJCAkQwAA/sJdGyIDIANDAAD+Ql4bEO4HIgP8AEGAfyADQwAAAMNgGyADQwAA/kJeG0EAIAMgA1sbIRdB/wBDAAD+QkMAAP7CIDEgMUMAAP7CXRsiAyADQwAA/kJeGxDuByID/ABBgH8gA0MAAADDYBsgA0MAAP5CXhtBACADIANbGyEcIAAoAjgiBCAAKAIwRgRAQQAhCCMAQSBrIgEkAAJAAkBBBCAAQTBqIgIoAgAiBkEBdCIdIB1BBE0bIh2tQhV+IkVCIIhQRQ0AIEWnIh9BAEgNACABIAYEfyABIAZBFWw2AhwgASACKAIENgIUQQEFQQALNgIYIAFBCGpBASAfIAFBFGoQ0gcgASgCCEEBRw0BIAEoAhAaIAEoAgwhCAsgCEGk1ccAENAJAAsgASgCDCEIIAIgHTYCACACIAg2AgQgAUEgaiQACyAAKAI0IARBFWxqIgEgBzoAFCABIAo6ABMgASAJOgASIAEgCzoAESABIAw6ABAgASAQOgAPIAEgEzoADiABIA06AA0gASAOOgAMIAEgDzoACyABIBE6AAogASAUOgAJIAEgFToACCABIBI6AAcgASAWOgAGIAEgGDoABSABIBk6AAQgASAaOgADIAEgGzoAAiABIBc6AAEgASAcOgAAIAAgBEEBajYCOAwHCyACIAZBxNXHABC/BwALIAYgC0Hk1ccAEL8HAAsgCiAJQYTWxwAQvwcLAAsgBiAEQfTVxwAQvwcACyAHIAlB1NXHABC/BwALIAcgBEG01ccAEL8HAAsCQAJAIAUoAqwBIgBBIU8EQCAFKAIwIgFBBGsoAgAiAkF4cSIEIABBAnQiAEEEQQggAkEDcSICG2pJDQEgAkEAIAQgAEEnaksbDQIgARC0AgsgBUGAA2okACAeDwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALjU4CH38EeyMAQUBqIgskAAJAAkACQCAFIAZPBEAgAS0AgFIhDSALIAEtAOxROgAwIAsgASgC2FE2AiwgCyABKALUUTYCKCALIAEoAsBRNgIkIAsgASgC3FE2AiBBAUEDIAdBAXEiIBshI0EBQXwgB0ECcSIUGyEkIAFBgNEAaiEcIAFBkNAAaiElIAFB4NEAaiEhIAFB7dEAaiEdIAFBgMYAaiEeIAFBgDZqIR8gAUGg0QBqIRkgAUGAzwBqISIgAUHk0QBqISYgAUGAFGohFiABQYAEaiEXIAFBgC1qIRogAUGAHWohGyAGIRAgAyEOIAIhBwNAQQAhCkEAIQgCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgDSIJQf8BcQ4ZAAsKAQIDHAkbCBoYFgcVFBMSDg0GBQwEIBcLIAH9DAAAAAAAAAAAAQAAAAEAAAD9CwLEUSALQTBqQQA6AAAgC/0MAAAAAAAAAAAAAAAAAAAAAP0LAyAgIyENDCYLIAsoAiQiDUEDTwRAIAsoAiAhCAwdCyAORQ0bIA5BAWshDiALKAIgIActAAAgDXRyIQggB0EBaiEHIA1BCHIhDQwcCyALQQA2AiwgCyALKAIkIgpBeHE2AiQgCyALKAIgIApBB3F2NgIgQQUhDQwkC0EEIAsoAiwiCCAIQQRNGyEMIAsoAiAhDSALKAIkIQkDQCAIIAxGBEAgCyABQeDRAGovAQAiCjYCLEEfIQ0gAS8B4lEgCnNB//8DRw0lQRQhDSAKRQ0lQRFBBiAJGyENDCULAkACQCAJBEAgCUEHSwRAIAkhCgwCCyAORQRAQQUhCQweCyAJQQhyIQogDkEBayEOIActAAAgCXQgDXIhDSAHQQFqIQcMAQsgDgRAIAggIWogBy0AADoAACAHQQFqIQcgDkEBayEOQQAhCQwCC0EFIQlBACEMIBRFDRhBACEODCILIAggIWogDToAACALIApBCGsiCTYCJCALIA1BCHYiDTYCIAsgCyAIQQFqIgg2AiwMAAsAC0EYIQ0gCygCLCIRQQNLDSIgASgCzFEhCAJAAkACQAJAAkACfwJAAkAgCygCJCIMRQRAIA5FDQggASAHLQAAIAhBCHRyIgk2AsxRIAdBAWohByAOQQFrIQ4gCyARQQFqIgo2AiwgCkEERg0rDAELIAsoAiAhCiAMQQdNBEAgDkUNByAOQQFrIQ4gBy0AACAMdCAKciEKIAdBAWohByAMQQhyIQwLIAEgCkH/AXEgCEEIdHIiCTYCzFEgCyAMQQhrIgg2AiQgCyAKQQh2Igw2AiAgCyARQQFqIgo2AiwgCkEERg0qIAhFDQAgCEEHTQ0BIAgMAgsgDkUNBiABIActAAAgCUEIdHIiCTYCzFEgB0EBaiEHIA5BAWshDiALIBFBAmoiCjYCLCAKQQRGDSkMAgsgDkUNBCAOQQFrIQ4gBy0AACAIdCAMciEMIAdBAWohByAIQQhyCyEKIAEgDEH/AXEgCUEIdHIiCTYCzFEgCyAKQQhrIgg2AiQgCyAMQQh2Igw2AiAgCyARQQJqIgo2AiwgCkEERg0nIAhFDQAgCEEHTQRAIA5FDQQgDkEBayEOIActAAAgCHQgDHIhDCAHQQFqIQcgCEEIciEICyABIAxB/wFxIAlBCHRyIgo2AsxRIAsgCEEIayIJNgIkIAsgDEEIdiIMNgIgIAsgEUEDaiIINgIsIAhBBEYNJyAJRQ0BIAsgCUEHSwR/IAkFIA5FDQQgDkEBayEOIActAAAgCXQgDHIhDCAHQQFqIQcgCUEIcgtBCGs2AiQgCyAMQQh2NgIgIAxB/wFxIApBCHRyIQkMAgsgDkUNAyABIActAAAgCUEIdHIiCjYCzFEgB0EBaiEHIA5BAWshDiALIBFBA2oiDDYCLCAMQQRGDSYLIA5FDQIgDkEBayEOIActAAAgCkEIdHIhCSAHQQFqIQcLIAEgCTYCzFEgCyARQQRyNgIsDCQLQRchCQwZC0EXIQlBACEMIBRFDRRBACEODB4LIAsgCygCLCIKQf8DcSIMNgIsQRQhDSAMQYACRg0hQSEhDSAMQZ0CSw0hIAsgCkEBa0EfcSIKQQF0QbSSxQBqLwEANgIsIAsgCkGUksUAai0AACIKOgAwQQ5BDyAKGyENDCELQQMhDSABLQDqUUUNICALIAsoAiQiCEF4cSADIA5rIgwgCEEDdiIHIAcgDEsbIgpBA3RrIgc2AiQgDCAKayIKIANNBEBBGCENIAtBfyAHQRhxdEF/cyALKAIgIAhBB3F2cTYCICADIAprIQ4gAiAKaiEHICBFDSEgC0EANgIsQRchDQwhCyAKIANB8JPFABCjCgALQRUhDSALKAIsIgpB/wFLDR8gBSAQRg0HIAUgEEsEQCAEIBBqIAo6AAAgEEEBaiEQDB8LDCILAkACQANAAkACQCALKAIsIgwgAS8B6FFPBEAgAUETOwHoUSALQRBqIAEgC0EgahDIASALLQAQIghBA0cNAUH/ASEIQQkhCUEAIQoMHQsCQCALKAIkIglBA08EQCALKAIgIQ0MAQsgDkUEQEEJIQkMGwsgDkEBayEOIAsoAiAgBy0AACAJdHIhDSAHQQFqIQcgCUEIciEJCyALIAlBA2s2AiQgCyANQQN2NgIgIAxBEksNAyAMQbj5yABqLQAAIgpBE08NBCAKIB1qIA1BB3E6AAAgCyAMQQFqNgIsQQAhCAwBCyALLQARIQ0LIAhFDQALQQkhCSAIQQJrDSAMGAsgDEETQaiUxQAQvwcACyAKQRNBuJTFABC/BwALIA4EQAJAIAsoAiwiDCAOIAUgEGsiCiAKIA5LGyIKIAogDEsbIgggEGoiCiAITwRAIAUgCkkNASAIBEAgBCAQaiAHIAj8CgAACyALIAwgCGs2AiwgByAIaiEHIA4gCGshDkEGIQ0gCiEQDCALIBAgCkGwk8UAEKUKAAsgCiAFQbCTxQAQogoAC0EHIQlBACEMIBRFDQ9BACEODBkLIA4EQCABIActAAAiDDYCyFFBHUEdQQMgASgCxFEiCkEEdkEIakEQcSAMIApBCHRyQR9wIAxBIHFychsgCkEPcUEIRxshDSAOQQFrIQ4gB0EBaiEHDB0LQQIhCUEAIQwgFEUNDkEAIQ4MGAsgDgRAIAEgBy0AADYCxFEgB0EBaiEHIA5BAWshDkECIQ0MHAtBASEJQQAhDCAURQ0NQQAhDgwXC0EeIQ0gCygCKCIIIAVLIAggEEtyDRogBSALKAIsIgwgEGoiCk8gECAIayAQSSAMQQAgCGtNcnFFBEBBE0EMIAwbIQ0MGwsgECAIayENAkAgDEEDRgRAIBBBA2ogBUsgEEF8S3INASAFIA1NIA1BAmoiCCAFT3INASANQQFqIgwgBU8NASAEIBBqIgkgBCANai0AADoAACAJIAQgDGotAAA6AAEgCSAEIAhqLQAAOgACDAELIAQgBSANIBAgDBCrAgtBDCENIAohEAwaCyALKAIoIQkgCygCLCEIA0AgBSAQRwRAIAQgBSAQIAlrIBAgCCAFIBBrIgwgCCAMSRsiChCrAiAKIBBqIRAgCCAMSyAIIAprIgohCA0BDBkLCyALIAg2AixBEyEJQQIMAgsgBSAQRw0CC0ECCyEIQQAhCiAFIRAMDwsgBSAQSwRAIAQgEGogCygCKDoAACALKAIkIQwgCyALKAIsQQFrIgo2AixBEUEGIAwbQQYgChshDSAQQQFqIRAMFgsMGAsCQCALKAIkIghBCE8EQCALKAIgIQkMAQsgDgRAIA5BAWshDiALKAIgIActAAAgCHRyIQkgB0EBaiEHIAhBCHIhCAwBC0ERIQlBACEMIBRFDQdBACEODBELIAsgCUH/AXE2AiggCyAIQQhrNgIkIAsgCUEIdjYCIEESIQ0MFAsgCygCICENAkAgCygCJCIMIAstADAiD0kEQCAORQRAIAwhCAwCCwJAIA5BAWsiCCAMQX9zIAxBCGoiCiAPIAogD0sbakEDdiIKIAggCkkbIhFBBEkEQCAHIQkgDCEIDAELIBFBAWoiCUEDcSIKQQQgChsiCCARQX9zaiEKIA4gCSAIayIIayEOIAcgCGohCSAMIAhBA3RqIQj9DAAAAAAAAAAAAAAAAAAAAAAgDf0cACEoIAz9Ef0MAAAAAAgAAAAQAAAAGAAAAP2uASEqA0AgB/1cAAD9iQH9qQEiKf0bACAq/QwfAAAAHwAAAB8AAAAfAAAA/U4iJ/0bAHT9ESAp/RsBICf9GwF0/RwBICn9GwIgJ/0bAnT9HAIgKf0bAyAn/RsDdP0cAyAo/VAhKCAHQQRqIQcgKv0MIAAAACAAAAAgAAAAIAAAAP2uASEqIApBBGoiCg0ACyAoICggKf0NCAkKCwwNDg8AAQIDAAECA/1QIicgJyAn/Q0EBQYHAAECAwABAgMAAQID/VD9GwAhDQtBASAOayEHA0ACQCAJLQAAIAh0IA1yIQ0gCEEIaiIIIgwgD08NACAJQQFqIQkgB0EBaiIHQQFHDQEMAwsLQQAgB2shDiAJQQFqIQcLIAsgDCAPazYCJCALIA0gD3Y2AiAgCyALKAIoIA1BfyAPdEF/c3FqNgIoQRYhDQwUCyALIAg2AiQgCyANNgIgQRAhCUEAIQwgFEUNBUEAIQ4MDwsCQAJAAkACQCALKAIkIgxBD08EQCALKAIgIQ0gDCEKDAELAkACQCAOQQFNBEAgGyALKAIgIg1B/wdxQQF0ai4BACIJQQBODQFBCyEKIAxBC0kNAgNAIA0gCkEBa3ZBAXEgCUF/c2oiCUG/BEsNBSAaIAlBAXRqLgEAIglBAE4EQCAMIQoMBQsgDCAKQQFqIgpPDQALDAILIAxBEHIhCiAOQQJrIQ4gCygCICAHLwAAIAx0ciENIAdBAmohBwwCCyAJQYAESSAMIAlBCXZJcg0AIAwhCgwBCwJAIA5FBEAgDCEKDAELIAxBCGohCiAHQQFqIQggBy0AACAMdCANciENQQAhDiAMQQZLBEAgCCEHDAILIBsgDUH/B3FBAXRqLgEAIglBAEgEQCAMQQNJDQFBCyEHA0AgDSAHQQFrdkEBcSAJQX9zaiIJQb8ESw0EIBogCUEBdGouAQAiCUEATgRAIAghBwwECyAKIAdBAWoiB08NAAsMAQsgCUGABEkNACAIIQcgCiAJQQl2Tw0BCyALIAo2AiQgCyANNgIgQQ8hCUEAIQwgFEUNCEEAIQ4MEgsgGyANQf8HcUEBdGouAQAiCUEATg0BQQohCANAAkAgDSAIdkEBcSAJQX9zaiIMQcAETwRAIAhBAWohCEH//wEhCQwBCyAIQQFqIQggGiAMQQF0ai4BACIJQQBIDQELCyAIQf8BcSEIDAILIAlBwARBzITFABC/BwALIAlBCXYhCCAJQf8DcSEJCyALIAogCGs2AiQgCyANIAh2NgIgQSIhDSAJQR1LDRIgCyAJQQF0QfSSxQBqLwEANgIoIAsgCUH+AXFBAXYiDEEBayIKQQAgCiAMTRs6ADBBFkEQIAlBBEkbIQ0MEgsgCygCICENAkAgCygCJCIMIAstADAiD0kEQCAORQRAIAwhCAwCCwJAIA5BAWsiCCAMQX9zIAxBCGoiCiAPIAogD0sbakEDdiIKIAggCkkbIhFBBEkEQCAHIQkgDCEIDAELIBFBAWoiCUEDcSIKQQQgChsiCCARQX9zaiEKIA4gCSAIayIIayEOIAcgCGohCSAMIAhBA3RqIQj9DAAAAAAAAAAAAAAAAAAAAAAgDf0cACEoIAz9Ef0MAAAAAAgAAAAQAAAAGAAAAP2uASEqA0AgB/1cAAD9iQH9qQEiKf0bACAq/QwfAAAAHwAAAB8AAAAfAAAA/U4iJ/0bAHT9ESAp/RsBICf9GwF0/RwBICn9GwIgJ/0bAnT9HAIgKf0bAyAn/RsDdP0cAyAo/VAhKCAHQQRqIQcgKv0MIAAAACAAAAAgAAAAIAAAAP2uASEqIApBBGoiCg0ACyAoICggKf0NCAkKCwwNDg8AAQIDAAECA/1QIicgJyAn/Q0EBQYHAAECAwABAgMAAQID/VD9GwAhDQtBASAOayEHA0ACQCAJLQAAIAh0IA1yIQ0gCEEIaiIIIgwgD08NACAJQQFqIQkgB0EBaiIHQQFHDQEMAwsLQQAgB2shDiAJQQFqIQcLIAsgDCAPazYCJCALIA0gD3Y2AiAgCyALKAIsIA1BfyAPdEF/c3FqNgIsQQ8hDQwSCyALIAg2AiQgCyANNgIgQQ4hCUEAIQwgFEUNA0EAIQ4MDQsgCy0AMCETIAsoAighFSALKAIgIQggCygCJCEPIA4hDCAHIRECQAJAAkADQAJ/AkACQCAMQQRJDQAgBSAQayIHQQJJDQAgDEENSyAHQYMCT3FFBEAgD0EPSQ0CIA8hCiARDAMLIAwhDiARIQcDQCAPQQ5LBH8gDwUgES8AACAPdCAIciEIIBFBAmoiByERIAxBAmsiDiEMIA9BEHILAn8gFyAIQf8HcUEBdGouAQAiCkEASARAQQohCQNAAkAgCCAJdkEBcSAKQX9zaiIKQcAETwRAIAlBAWohCUH//wEhCgwBCyAJQQFqIQkgFiAKQQF0ai4BACIKQQBIDQELCyAJQf8BcQwBCyAKQQl2CyIJayEPIAggCXYhCEGAAiESAkACQAJAIApBgAJxRQRAIA9BDk0EQCARLwAAIA90IAhyIQggEUECaiIHIREgDEECayIOIQwgD0EQciEPCwJ/IBcgCEH/B3FBAXRqLgEAIg1BAEgEQEEKIQkDQAJAIAggCXZBAXEgDUF/c2oiDUHABE8EQCAJQQFqIQlB//8BIQ0MAQsgCUEBaiEJIBYgDUEBdGouAQAiDUEASA0BCwsgCUH/AXEMAQsgDUEJdgshCSAFIBBNDR8gDyAJayEPIAggCXYhCCAEIBBqIAo6AAAgEEEBaiEJIA1BgAJxRQ0BIAkhECANIQoLIApB/wNxIg1BgAJHDQFBFCENDAILIAUgCUsEQCAEIAlqIA06AABBDCENIAUgEEECaiIQa0GDAkkEQCAKIRIMAwsgDEEOTw0DIAohEgwCCyAJIAVBhJLFABC/BwALIA1BnQJLBEBBISEJDAkLIApBAWtBH3EiCkGUksUAai0AACETIApBAXRBtJLFAGovAQAhEgJ/IA9BDksEfyAPBSAMQQFNDR8gES8AACAPdCAIciEIIBFBAmoiByERIAxBAmsiDiEMIA9BEHILIQoCQCATRQ0AIAggE3YhCSAIQX8gE3RBf3NxIBJqIRIgCiATayIIQQ5LBEAgCCEKIAkhCAwBCyAMQQFNDR8gCEEQciEKIBEvAAAgCHQgCXIhCCARQQJqIgchESAMQQJrIg4hDAsgCgJ/IBsgCEH/B3FBAXRqLgEAIg1BAEgEQEEKIQkDQAJAIAggCXZBAXEgDUF/c2oiCkHABE8EQCAJQQFqIQlB//8BIQ0MAQsgCUEBaiEJIBogCkEBdGouAQAiDUEASA0BCwsgCUH/AXEMAQsgDUEJdgsiCmshDyAIIAp2IQggDUH/A3EiGEEdSwRAQSIhCSASIQ0MCgsgDUH/AXEiDUEBdiIJQQFrIgpBACAJIApPGyETIBhBAXRB9JLFAGovAQAiFSANQQRJDQAaAn8gD0EPTwRAIAghCSAPDAELIAxBAU0NHyARLwAAIA90IAhyIQkgEUECaiIHIREgDEECayIOIQwgD0EQcgsgE2shDyAJIBN2IQggCUF/IBN0QX9zcSAVagshFUEeIQkgBSAVSQRAIBIhDQwJCyAQIBVJBEAgEiENDAkLIBAgFWshGAJAIBJBA0YEQCAQQQNqIAVLIBBBfEtyDQEgBSAYTSAYQQJqIgkgBU9yDQEgGEEBaiIKIAVPDQEgBCAQaiINIAQgGGotAAA6AAAgDSAEIApqLQAAOgABIA0gBCAJai0AADoAAgwBCyAEIAUgGCAQIBIQqwILQQwhDSAFIBAgEmoiEGtBgwJJDQAgDEENSw0BCwsgCyATOgAwIAsgEjYCLCALIBU2AiggCyAPNgIkIAsgCDYCIAwXCwJAAkAgD0EOSw0AIAxBAk8EQCAPQRByIQogEUECaiEHIAxBAmshDiARLwAAIA90IAhyIQgMAgsCQAJAIBcgCEH/B3FBAXRqLgEAIg5BAEgEQEELIQcgD0ELSQ0BA0AgCCAHQQFrdkEBcSAOQX9zaiIJQb8ESw0DIBYgCUEBdGouAQAiDkEATg0EIA8gB0EBaiIHTw0ACwwBCyAOQYAESQ0AIA8gDkEJdk8NAgsCQCAMRQ0AIA9BCGohCiARQQFqIQcgES0AACAPdCAIciEIQQAhDiAPQQZLDQMgFyAIQf8HcUEBdGouAQAiCUEASARAIA9BA0kNAUELIQ0DQCAIIA1BAWt2QQFxIAlBf3NqIglBvwRLDQMgFiAJQQF0ai4BACIJQQBODQUgCiANQQFqIg1PDQALDAELIAlBgARJDQAgCiAJQQl2Tw0DCyALIAg2AiAgCyAPIAxBA3RqNgIkQQwhCQwPCyAJQcAEQcyExQAQvwcACyAMIQ4gESEHIA8hCgsCQCAXIAhB/wdxQQF0ai4BACINQQBIBEBBCiEJA0ACQCAIIAl2QQFxIA1Bf3NqIgxBwARPBEAgCUEBaiEJQf//ASENDAELIAlBAWohCSAWIAxBAXRqLgEAIg1BAEgNAQsLIAlB/wFxIQkMAQsgDUEJdiEJIA1B/wNxIQ0LIAsgDTYCLCALIAogCWs2AiQgCyAIIAl2NgIgQQ0hDQwWCyAPQRByIQogDEECayEMIBEvAAAgD3QgCHIhCCARQQJqCyEHIAsgCgJ/IBcgCEH/B3FBAXRqLgEAIglBAEgEQEEKIQ4DQAJAIAggDnZBAXEgCUF/c2oiCkHABE8EQCAOQQFqIQ5B//8BIQkMAQsgDkEBaiEOIBYgCkEBdGouAQAiCUEASA0BCwsgDkH/AXEMAQsgCUEJdgsiCmsiDjYCJCALIAggCnYiCjYCICALIAk2AixBFSENIAlBgAJxBEAgDCEODBULIAsCfyAOQQ5LBEAgByERIA4MAQsgB0ECaiERIAxBAmshDCAHLwAAIA50IApyIQogDkEQcgsCfyAXIApB/wdxQQF0ai4BACIOQQBIBEBBCiEHA0ACQCAKIAd2QQFxIA5Bf3NqIghBwARPBEAgB0EBaiEHQf//ASEODAELIAdBAWohByAWIAhBAXRqLgEAIg5BAEgNAQsLIAdB/wFxDAELIA5BCXYLIgdrIg82AiQgCyAKIAd2Igg2AiAgBSAQSwRAIAQgEGogCToAACAQQQFqIQcgDkGAAnENAiAFIAdNDQMgBCAHaiAOOgAAIBBBAmohEAwBCwsMFgsgCyAONgIsIAchECAMIQ4gESEHDBILIAcgBUGEksUAEL8HAAsgCyATOgAwIAsgDTYCLCALIBU2AiggCyAPNgIkIAsgCDYCIAtB/wEhCEEAIQoMCAsgCygCICENAkAgCygCJCIMIAstADAiEkkEQCAORQRAIAwhCAwCCwJAIA5BAWsiCCAMQX9zIAxBCGoiCiASIAogEksbakEDdiIKIAggCkkbIhFBBEkEQCAHIQkgDCEIDAELIBFBAWoiCUEDcSIKQQQgChsiCCARQX9zaiEKIA4gCSAIayIIayEOIAcgCGohCSAMIAhBA3RqIQj9DAAAAAAAAAAAAAAAAAAAAAAgDf0cACEoIAz9Ef0MAAAAAAgAAAAQAAAAGAAAAP2uASEqA0AgB/1cAAD9iQH9qQEiKf0bACAq/QwfAAAAHwAAAB8AAAAfAAAA/U4iJ/0bAHT9ESAp/RsBICf9GwF0/RwBICn9GwIgJ/0bAnT9HAIgKf0bAyAn/RsDdP0cAyAo/VAhKCAHQQRqIQcgKv0MIAAAACAAAAAgAAAAIAAAAP2uASEqIApBBGoiCg0ACyAoICggKf0NCAkKCwwNDg8AAQIDAAECA/1QIicgJyAn/Q0EBQYHAAECAwABAgMAAQID/VD9GwAhDQtBASAOayEHA0ACQCAJLQAAIAh0IA1yIQ0gCEEIaiIIIgwgEk8NACAJQQFqIQkgB0EBaiIHQQFHDQEMAwsLQQAgB2shDiAJQQFqIQcLIAsgDCASazYCJCALIA0gEnY2AiAgC0ELNgI8IAtCg4CAgDA3AjQgC0E0aiALKAIoIgxBAnFBAnRqKAIAQQAhDyALKAIsIQggDEEQRgRAIAEgCEEBa0H/A3FqLQAAIQ8LIA1BfyASdEF/c3FqIAhqIgxB/wNxIgogCEH/A3EiCE8EQAJAIAggCkYNACAKIAhrIgpFDQAgASAIaiAPIAr8CwALIAsgDDYCLEEKIQ0MEAsgCCAKQciUxQAQpQoACyALIAg2AiQgCyANNgIgQQshCUEAIQwgFEUNAEEAIQ4MCgtB/AEhCEEAIQ4MCgsgByEJA0ACQAJAAkACQAJAAkACQCALKAIsIhEgAS8B5FEiCiABLwHmUWoiB08EQEEaIQ0gByARRg0BIAkhBwwVCwJAAkAgCygCJCIKQQ9PBEAgCygCICENDAELIA5BAUsNASAfIAsoAiAiDUH/B3FBAXRqLgEAIg9BAEgEQEELIQcgCkELSQ0EA0AgDSAHQQFrdkEBcSAPQX9zaiIMQb8ESw0HIB4gDEEBdGouAQAiD0EATg0CIAogB0EBaiIHTw0ACwwECyAPQYAESSAKIA9BCXZJcg0DCyAJIQcgCiEPDAMLIApBEHIhDyAJQQJqIQcgDkECayEOIAsoAiAgCS8AACAKdHIhDQwCCwJAAkAgCkGhAkkEQCAKBEAgIiABIAr8CgAACyABLwHmUSIKIAEvAeRRIgdqQf8DcSIMIAdB/wNxIghJDQEgDCAIayIHIApBH3EiCkcNAiAKBEAgGSABIAhqIAr8CgAACyABIAEtAOtRQQFrOgDrUSALQRhqIAEgC0EgahDIASALLQAYIghBA0YEQEH/ASEIQQohCUEAIQoMEAsgCy0AGSENDAgLIApBoAJBwJPFABCiCgALIAggDEHQk8UAEKUKAAsgCiAHQeCTxQAQpwoACwJAIA5FBEAgCiEPDAELIApBCGohDyAJQQFqIQcgCS0AACAKdCANciENQQAhDiAKQQZLDQEgHyANQf8HcUEBdGouAQAiCUEASARAIApBA0kNAUELIQgDQCANIAhBAWt2QQFxIAlBf3NqIgxBvwRLDQQgHiAMQQF0ai4BACIJQQBODQMgDyAIQQFqIghPDQALDAELIAlBgARJDQAgDyAJQQl2Tw0BCyALIA82AiQgCyANNgIgQQohCQwICyAfIA1B/wdxQQF0ai4BACIJQQBODQFBCiEIA0ACQCANIAh2QQFxIAlBf3NqIgpBwARPBEAgCEEBaiEIQf//ASEJDAELIAhBAWohCCAeIApBAXRqLgEAIglBAEgNAQsLIAhB/wFxIQgMAgsgDEHABEHMhMUAEL8HAAsgCUEJdiEIIAlB/wNxIQkLIAsgDyAIazYCJCALIA0gCHY2AiAgCyAJNgIoIAlBEE8EQCARRQRAQSAhDSAJQRBGDRALIAtBgoYcNgA0IAsgC0E0aiAJQQNxai0AADoAMEELIQ0MDwsgASARQf8DcWogCToAACALIBFBAWo2AixBACEIIAchCQsgCEUNAAsgCSEHIAhBAmsNDEEKIQkMBAtBAyALKAIsIgwgDEEDTRshDyALKAIgIQkgCygCJCERA0ACQAJAIAwgD0cEQCALQQQ2AjwgC0KFgICA0AA3AjQgESALQTRqIAxBAnRqKAIAIhJPDQICQCAOBEBBASAOayENIBEhCANAIActAAAgCHQgCXIhCSAIQQhqIgogEk8NBCAHQQFqIQcgCiEIIA1BAWoiDUEBRw0ACyALIAw2AiwgESAOQQN0aiERDAELIAsgDDYCLAsgCyARNgIkIAsgCTYCIEEIIQkMBQsgHf0MAAAAAAAAAAAAAAAAAAAAAP0LAAAgHUEPakEANgAAIAsgETYCJCALIAk2AiAgC0EANgIsQRtBCUEbIAEvAeZRQR9JGyABLwHkUUGfAk8bIQ0MDgtBACANayEOIAdBAWohByAIQQhqIRELICYgDEEBdCIKaiAKQaCUxQBqLwEAIAlBfyASdEF/c3FqOwEAIAxBAWohDCARIBJrIREgCSASdiEJDAALAAtBAkEHIAUgEEYiDBtBFCALKAIsIgobIQ0gCkUgDEVyDQogBSEQDAILQQAhDiAkIQ0MAQsgASAIQQFxOgDqUSABIAhBAXZBA3EiCjoA61EgCyANQQNrNgIkIAsgCEEDdjYCIEEZIQ0CQAJAAkAgCkEBaw4DAAELBQsgAUGggoABNgLkUSAiQQhBkAH8CwAgJUEJQfAA/AsAIBxBEGpCh46cuPDgwYMHNwIAIBxBCGpCh46cuPDgwYMHNwIAIBxCh46cuPDgwYMHNwIAIAFCiJCgwICBgoQINwKYUSAZQoWKlKjQoMGCBTcCACAZQQhqQoWKlKjQoMGCBTcCACAZQRBqQoWKlKjQoMGCBTcCACAZQRhqQoWKlKjQoMGCBTcCACALQQhqIAEgC0EgahDIASALLQAJIQ0gCy0ACCIMQQFGDQpB/wEhCEEAIQogDEEDaw0BDAMLIAtBADYCLEEIIQ0MCQtBAyEJCyANQf8BcSICQQFGIgogAkH8AUZyDQIgDSEICyALIAsoAiQiAiADIA5rIgcgAkEDdiICIAIgB0sbIgxBA3RrNgIkIAoNAgwDC0EEIQ0MBQtBACEMIA0hCCACQQFHDQELQQFBAUECIAlB/wFxQRdGGyAFIBBHGyEICyABIAk6AIBSIAEgCygCJCICNgLAUSABIAspAyg3AtRRIAEgCy0AMDoA7FEgASALKAIgQX8gAnRBf3NxNgLcUQJAIAjAQQBOICBxRQRAIBAgBmshBwwBCwJAIAYgEE0EQCAFIBBJDQEgCyABKALQUSICIAJBEHYgBCAGaiAQIAZrIgcQ9wIgASALKAIAIgI2AtBRIAhB/wFxDQJBfkEAIAIgASgCzFFHGyEIDAILIAYgEEGAlMUAEKUKAAsgECAFQYCUxQAQogoACyAAIAc2AgggACAIOgAEIAAgAyAMIA5qazYCAAwECyALIAo2AiwLQQwhDQwACwALIABBADYCCCAAQQA2AgAgAEH9AToABAsgC0FAayQADwsgECAFQYSSxQAQvwcAC0ECIAxBvITFABCiCgALnkoDG38EfQF+IwBBwAFrIgIkAAJAAkACQAJAAkAgASgCAEECRwRAIAEoAqQCIgMgASgCZEkEQCABQbwCaiESIAFB7ANqIRMgAUHwAGohGSABQZgDaiEWIAFB9AJqIRogAUGAA2ohGyABQYwDaiEcA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAJgIANBKGxqIgopAxAgASkDgAF8IiEgASkDcFEEQCABKAK4AiIDIAooAhgiBUEHakF4cUkNAiADIAVJDQEgASgCtAIhAyAKLQAgIhgEQCACQRhqIAMgBRCeAyACKAIYIgNBgICAgHhHBEAgAigCHCACQQA2ArgBIAJBATYCrAEgAkHkm8EANgKoASACQgQ3ArABIAJBqAFqEMUHIRQgA0UNIiADQQEQ1gcMIgsgAigCICEUIAIoAhwiFUGAgICAeEYNISACKAIkIQUgFCEDC0EJIQQCQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCi0AIkEBaw4NAQIDGh8dHhscHx0eBAALIAotACEOBAQFBgcJCyAKLQAhDgULCgkJDAkLIAotACEiBg4GDg0QEA8PEAsgCi0AIQ4KEhEREREREREUExELIAotACFBC2sOAhwdGwsgAkEYaiADIAVBAyABKAKsAhCQBQwDCyACQRhqIAMgBUEDIAEoAqwCEIAEDAILIAJBGGogAyAFIAEoAqwCELICDAELIAJBGGogAyAFIAEoAqwCEIoCCyASIAEoAqgCIAEoAqwCIAIoAhwiAyACKAIgELUCIAIoAhgiBEUNNiADQQRrKAIAIgVBeHEiBiAEQQJ0IgRBBEEIIAVBA3EiBRtqSQ08IAVBACAGIARBJ2pLGw09IAMQtAIMNgsgAkEBNgKsASACQYycwQA2AqgBIAJCATcCtAEgAiAKQSFqrUKAgICA4ASENwNYIAIgAkHYAGo2ArABIAJBKGoiASACQagBahDmBiABEMEHIQEMNAsgAkEBNgKsASACQeicwQA2AqgBIAJCATcCtAEgAiAKQSFqrUKAgICA4ASENwNYIAIgAkHYAGo2ArABIAJBNGoiASACQagBahDmBiABEMEHDAMLIAJBGGogAyAFQQEgASgCrAIQgAQMMQsgAkEYaiADIAVBASABKAKsAhCQBQwwCyAKKAIARQRAIAJBADYCuAEgAkEBNgKsASACQcScwQA2AqgBIAJCBDcCsAEgAkGoAWoQxQcMAQsgCigCCA0uIAJBADYCuAEgAkEBNgKsASACQaicwQA2AqgBIAJCBDcCsAEgAkGoAWoQxQcLIQEMLwsgAkEYaiADIAVBAyABKAKsAhCABAwrCyACQRhqIAMgBUEDIAEoAqwCEJAFDCoLIAooAgBFBEAgAkEANgK4ASACQQE2AqwBIAJBxJzBADYCqAEgAkIENwKwASACQagBahDFBwwCCyAKKAIIRQRAIAJBADYCuAEgAkEBNgKsASACQaicwQA2AqgBIAJCBDcCsAEgAkGoAWoQxQcMAgsgCioCBCEdIAEoAqwCIQQgCioCDCEeIAZBBEYNKCACQRhqIAMgBUEDIAQgHSAeEJ4EDCkLIAJBATYCrAEgAkGMncEANgKoASACQgE3ArQBIAIgCkEhaq1CgICAgOAEhDcDWCACIAJB2ABqNgKwASACQUBrIgEgAkGoAWoQ5gYgARDBBwshAQwqCyACQQE2AqwBIAJBtJ3BADYCqAEgAkIBNwK0ASACIApBIWqtQoCAgIDgBIQ3A1ggAiACQdgAajYCsAEgAkHMAGoiASACQagBahDmBiABEMEHDAMLIAJBGGogAyAFQQMgASgCrAIQkAUMIwsgAkEYaiADIAUgASgCrAIQiQIMIgsgCigCAEUEQCACQQA2ArgBIAJBATYCrAEgAkHEnMEANgKoASACQgQ3ArABIAJBqAFqEMUHDAELIAooAggNICACQQA2ArgBIAJBATYCrAEgAkGonMEANgKoASACQgQ3ArABIAJBqAFqEMUHCyEBDCULAkACQAJAAkAgCi0AISIEQQpHBEAgBA4CAgMBCyACQdgAaiADIAUgASgCrAIQ5wMMIQsgAkEBNgKsASACQfCdwQA2AqgBIAJCATcCtAEgAiAKQSFqrUKAgICA4ASENwNwIAIgAkHwAGo2ArABIAJB5ABqIgEgAkGoAWoQ5gYgARDBByEBDCcLIAJBGGogAyAFQQMgASgCrAIQkAUMAQsgAkEYaiADIAVBAyABKAKsAhCABAsgASgCrAIiB0ECdCIFQf////8DSw0MIAdBBHQiA0H9////B08NDAJAIANFBEBBBCEIQQAhBQwBCyADEH4iCEUNDiABKAKsAiEHCyACQQA2ArABIAIgCDYCrAEgAiAFNgKoASAHBEBBACEDQQEhBiACKAIgIQQgAigCHCEFA0AgBkEBayIMIgkgBE8EQCAMIQYMHwsgBCAJayIJQQAgBCAJTxsiCUEBRg0eIAlBAkYNHUMAAIA/IAUqAgAiHSAdlJMgBUEEaioCACIeIB6UkyAFQQhqKgIAIh8gH5STQwAAAAAQnwmRISAgAigCqAEgA2tBA00EQCACQagBaiADQQRBBEEEENAFIAIoAqwBIQggAigCsAEhAwsgCCADQQJ0aiIJICA4AgwgCSAfOAIIIAkgHjgCBCAJIB04AgAgAiADQQRqIgM2ArABIAZBA2ohBiAFQQxqIQUgB0EBayIHDQALCyACQeAAaiACQbABaigCADYCACACIAIpAqgBNwNYIAIoAhgiA0UNHSACKAIcIgRBBGsoAgAiBUF4cSIGIANBAnQiA0EEQQggBUEDcSIFG2pJDSsgBUEAIAYgA0EnaksbDSwgBBC0AgwdCyAKLQAhQQtGDRkgAkEBNgKsASACQZyewQA2AqgBIAJCATcCtAEgAiAKQSFqrUKAgICA4ASENwMYIAIgAkEYajYCsAEgAkGQAWoiASACQagBahDmBiABEMEHIQEMIwsgCi0AIUEMRg0XIAJBATYCrAEgAkHInsEANgKoASACQgE3ArQBIAIgCkEhaq1CgICAgOAEhDcDGCACIAJBGGo2ArABIAJBnAFqIgEgAkGoAWoQ5gYgARDBByEBDCILQQ8hBAwBC0EVIQQLAkACQAJAAkACQCAKLQAhIgYOCAEAAwMCAgQEAwsgAkEYaiADIAUgBCABKAKsAhCABAwXCyACQRhqIAMgBSAEIAEoAqwCEJAFDBYLIAooAgBFBEAgAkEANgK4ASACQQE2AqwBIAJBxJzBADYCqAEgAkIENwKwASACQagBahDFByEBDCILIAooAghFBEAgAkEANgK4ASACQQE2AqwBIAJBqJzBADYCqAEgAkIENwKwASACQagBahDFByEBDCILIAoqAgQhHSABKAKsAiEIIAoqAgwhHiAGQQRGDRQgAkEYaiADIAUgBCAIIB0gHhCeBAwVCyACQQE2AqwBIAJB/J7BADYCqAEgAkIBNwK0ASACIApBIWqtQoCAgIDgBIQ3A1ggAiACQdgAajYCsAEgAkH4AGoiASACQagBahDmBiABEMEHIQEMIAsgCigCCEUEQCACQQA2ArgBIAJBATYCrAEgAkGonMEANgKoASACQgQ3ArABIAJBqAFqEMUHIQEMIAsgASgCrAIhCCAKKgIMIR0gBkEGRg0RIAJBGGogAyAFIAQgCCAdELIEDBMLIAJBATYCrAEgAkGkn8EANgKoASACQgE3ArQBIAIgCkEhaq1CgICAgOAEhDcDWCACIAJB2ABqNgKwASACQYQBaiIBIAJBqAFqEOYGIAEQwQchAQweCyACQRhqIAMgBSABKAKsAhDBBQwBCyACQRhqIAMgBSABKAKsAhD6BAsgAigCHCELIAEoAuQDRQ0KIAEoAqwCIQkgASgCqAIhESACKAIgIQ8CQCABLQD0A0EBRw0AIAEoAugDIAEoAuwDIgNBAnQgASgC8AMiBCADakECdBCgCSEDIARBAnQiBCABKAKgAyIFSw0GIAEoApwDIQUgAiADEIMLIgY2AnAgAiAENgJYIAQgBkcNJSADIAUgBBCpCiABQQA6APQDIANBhAhJDQAgAxDNBwsgE0IANwIAIBNBCGpBADoAACAJQQJ0Ig0hBSABKAKgAyIDIA1JBEAgDSADIgVrIgYgASgCmAMgA2tLBEAgFiADIAZBBEEEENAFIAEoAqADIQULIAEoApwDIgggBUECdCIMaiEEIAZBAk8EfyANIANBf3NqQQJ0IgcEQCAEQQAgB/wLAAsgBSAGakEBayEFIAlBBHQgA0ECdGsgCGogDGpBBGsFIAQLQQA2AgAgBUEBaiEFCyABIAU2AqADIAEoArwCQQFHDQogCUEBdCIOIAVLDQYgASgCnAMhDAJAAkACQCAJBEAgCUH/////B3EhBkEAIQcgDyEDIAkhCCALIQQgDCEFA0AgA0UNAiAEKAIAQQF0IhAgASgC/AIiF08NAyAGRQ0EIAUgASgC+AIgEEECdGooAgA2AgAgEEEBciIQIAEoAvwCIhdPDQ0gBUEEaiABKAL4AiAQQQJ0aigCADYCACADQQFrIQMgBkEBayEGIARBBGohBCAFQQhqIQUgB0ECaiEHIAhBAWsiCA0ACwsgAiABKALAAiARQQF0IAkgEWoiEEEBdBCgCSIDEIMLIgQ2AnAgAiAONgJYIAQgDkcNJyADIAwgDhCpCiADQYQITwRAIAMQzQcLIAEoAuQDQQFGDQ0gASgCxAJBAUcNDSANIAEoAqADIgNLDQogASgCnAMhCCAJRQ0MQQAhByAIIQRBACEFAkACQAJAA0ACQCAHIA9JBEAgBSALaigCAEECdCIDIAEoAogDIgZPDRUgBSANTw0FIAQgASgChAMgA0ECdGooAgA2AgAgA0EBciIMIAEoAogDIgZJDQEgDCEDDBULIA8gD0H4xsEAEL8HAAsgBUEBaiANTw0CIARBBGogASgChAMgDEECdGooAgA2AgAgA0ECciIMIAEoAogDIgZPBEAgDCEDDBQLIAVBAmogDU8NASAEQQhqIAEoAoQDIAxBAnRqKAIANgIAIANBA3IiAyABKAKIAyIGTw0TIA0gBUEDaksEQCAEQQxqIAEoAoQDIANBAnRqKAIANgIAIARBEGohBCAFQQRqIQUgB0EBaiIHIAlJDQEMEQsLIAVBA2ohBQwCCyAFQQJqIQUMAQsgBUEBaiEFCyAFIA1BmMfBABC/BwALIA8gD0Gox8EAEL8HAAsgECAXQbjHwQAQvwcACyAHIA5ByMfBABC/BwALIAIgITcDWCACQQI2AqwBIAJB0J/BADYCqAEgAkICNwK0ASACQoCAgIDwAyIhIAJB2ABqrYQ3AyAgAiAhIBmthDcDGCACIAJBGGo2ArABIAJBDGoiASACQagBahDmBiABEMEHIQEgAEEBOgAAIAAgATYCBAwgCyAFIANBuJvBABCiCgALIABBADsBAAweC0G8ncEAELcICwALIAQgBUG8wcEAEKIKAAsgDiAFQZjGwQAQogoACyANIANBqMbBABCiCgALIBAgF0HYx8EAEL8HAAsgAiABKALIAiARQQJ0Ig4gEEECdCIREKAJIgMQgwsiBDYCcCACIA02AlgCQAJAIAQgDUYEQCADIAggDRCpCiADQYQITwRAIAMQzQcLIAEoAuQDQQJGDQMgASgCzAJBAUcNAyANIAEoAqADIgNLDQEgASgCnAMhCCAJRQ0CQQAhByAIIQRBACEFAkACQAJAA0ACQCAHIA9JBEAgBSALaigCAEECdCIDIAEoApQDIgZPDQogBSANTw0FIAQgASgCkAMgA0ECdGooAgA2AgAgA0EBciIMIAEoApQDIgZJDQEgDCEDDAoLIA8gD0HIxsEAEL8HAAsgBUEBaiANTw0CIARBBGogASgCkAMgDEECdGooAgA2AgAgA0ECciIMIAEoApQDIgZPBEAgDCEDDAkLIAVBAmogDU8NASAEQQhqIAEoApADIAxBAnRqKAIANgIAIANBA3IiAyABKAKUAyIGTw0IIA0gBUEDaksEQCAEQQxqIAEoApADIANBAnRqKAIANgIAIARBEGohBCAFQQRqIQUgB0EBaiIHIAlJDQEMBwsLIAVBA2ohBQwCCyAFQQJqIQUMAQsgBUEBaiEFCyAFIA1B6MbBABC/BwALDBwLIA0gA0G4xsEAEKIKAAsgASgC0AIgDiAREKAJIgMgCCANEOgHIANBhAhJDQAgAxDNBwsgAigCGCIDRQ0RAkAgC0EEaygCACIEQXhxIgUgA0ECdCIDQQRBCCAEQQNxIgQbak8EQCAEQQAgBSADQSdqSxsNASALELQCDBMLDBgLDBgLIAMgBkHYxsEAEL8HAAsgAyAGQYjHwQAQvwcACyACQRhqIAMgBSAEIAggHRCsBQwBCyACQRhqIAMgBSAEIAggHSAeEKQFCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAotACJBBWsOCAYBAgAAAwQFAAtB+P/GAEEoQdCewQAQoggACyASIAEoAqgCIAEoAqwCIAIoAhwiDyACKAIgEIgEDAULIBIgASgCqAIgASgCrAIgAigCHCIPIAIoAiAQiQQMBAsgASgCrAIiByABKAKoAiIMaiINQQF0IQggAigCICEOIAIoAhwhDyABKALUAkEBRwR/QQAFIAEoAtgCEIMLCyAISQRAIAgQ9wkhAwJAIAEoAtQCIgQEfyADIAEoAtgCEKEKIAEoAtQCBSAEC0UNACABKALYAiIEQYQISQ0AIAQQzQcLIAEgAzYC2AIgAUEBNgLUAgsCQCABLQD0A0EBRw0AIAEoAugDIAEoAuwDIgNBAnQgASgC8AMiBCADakECdBCgCSEDIARBAnQiBCABKAKgAyIFSw0FIAEoApwDIQUgAiADEIMLIgY2AnAgAiAENgJYIAQgBkcNJCADIAUgBBCpCiABQQA6APQDIANBhAhJDQAgAxDNBwsgE0IANwIAIBNBCGpBADoAACAHQQJ0IgUgASgCoAMiA0sEQCAFIAMiBmsiBCABKAKYAyADa0sEQCAWIAMgBEEEQQQQ0AUgASgCoAMhBgsgASgCnAMiCyAGQQJ0IhFqIQkgBEECTwRAIAUgA0F/c2pBAnQiBQRAIAlBACAF/AsACyAHQQR0IANBAnRrIAtqIBFqQQRrIQkgBCAGakEBayEGCyAJQQA2AgAgBkEBaiEFCyABIAU2AqADIAEoAtQCRQ0DIAdBAXQiCyAFSw0FIAEoApwDIgUgCyAPIA4gByABKgLMAxC7AiABKALYAiAMQQF0Ig4gCBCgCSIDEIMLIQQgAiALNgJYIAIgBDYCcCAEIAtHDSMgAyAFIAsQqQogA0GECE8EQCADEM0HCyABKAL8AiIDIAhJBEAgCCADIgZrIgQgASgC9AIgA2tLBEAgGiADIARBBEEEENAFIAEoAvwCIQYLIAEoAvgCIhEgBkECdCIQaiEJIARBAk8EQCAIIANBf3NqQQJ0IggEQCAJQQAgCPwLAAsgDUEDdCADQQJ0ayARaiAQakEEayEJIAQgBmpBAWshBgsgCUEANgIAIAEgBkEBajYC/AILIAdFDQMgDEEDdCEDIAdB/////wdxIQRBACEGA0AgBEUNByAGIA5qIgggASgC/AIiCU8NCCABKAL4AiADaiAFKAIANgIAIAhBAWoiCCABKAL8AiIJSQRAIAEoAvgCIANqQQRqIAVBBGooAgA2AgAgA0EIaiEDIAVBCGohBSAGQQJqIQYgBEEBayEEIAdBAWsiBw0BDAULCyAIIAlBqMXBABC/BwALIAEoAqwCIgkgASgCqAIiDGoiDUECdCEFIAIoAiAhCCACKAIcIQ8gASgC3AJBAUcEf0EABSABKALgAhCDCwsgBUkEQCAFEPcJIQMCQCABKALcAiIEBH8gAyABKALgAhChCiABKALcAgUgBAtFDQAgASgC4AIiBEGECEkNACAEEM0HCyABIAM2AuACIAFBATYC3AILAkAgAS0A9ANBAUcNACABKALoAyABKALsAyIDQQJ0IAEoAvADIgQgA2pBAnQQoAkhAyAEQQJ0IgQgASgCoAMiBksNCCABKAKcAyEGIAIgAxCDCyILNgJwIAIgBDYCWCAEIAtHDSMgAyAGIAQQqQogAUEAOgD0AyADQYQISQ0AIAMQzQcLIBNCADcCACATQQhqQQA6AAAgCUECdCILIQMgASgCoAMiBCALSQRAIAsgBCIDayIGIAEoApgDIANrSwRAIBYgAyAGQQRBBBDQBSABKAKgAyEDCyABKAKcAyIOIANBAnQiEWohByAGQQJPBEAgCyAEQX9zakECdCIQBEAgB0EAIBD8CwALIAlBBHQgBEECdGsgDmogEWpBBGshByADIAZqQQFrIQMLIAdBADYCACADQQFqIQMLIAEgAzYCoAMgASgC3AJFDQIgAyALSQ0IIAEoApwDIg4gCyAPIAggCSABKgLQAxDxASABKALgAiAMQQJ0IhEgBRCgCSIDEIMLIQQgAiALNgJYIAIgBDYCcCAEIAtHDSIgAyAOIAsQqQogA0GECE8EQCADEM0HCyABKAKIAyIDIAVJBEAgBSADIgRrIgggASgCgAMgA2tLBEAgGyADIAhBBEEEENAFIAEoAogDIQQLIAEoAoQDIgcgBEECdCIQaiEGIAhBAk8EQCAFIANBf3NqQQJ0IgUEQCAGQQAgBfwLAAsgDUEEdCADQQJ0ayAHaiAQakEEayEGIAQgCGpBAWshBAsgBkEANgIAIAEgBEEBajYCiAMLIAlFDQIgDEEEdCEDIAlB/////wNxIQhBACEFQQAhBwJ/AkACQAJAA0AgCEUNDiAHIBFqIgYgASgCiAMiBEkEQCABKAKEAyADaiAFaiAFIA5qIg0oAgA2AgAgASgCiAMiBCAGQQFqTQ0EIAEoAoQDIANqIAVqQQRqIA1BBGooAgA2AgAgASgCiAMiBCAGQQJqTQ0DIAEoAoQDIANqIAVqQQhqIA1BCGooAgA2AgAgASgCiAMiBCAGQQNqTQ0CIAEoAoQDIANqIAVqQQxqIA1BDGooAgA2AgAgBUEQaiEFIAdBBGohByAIQQFrIQggCUEBayIJDQEMCAsLIAxBAnQgB2oMAwsgDEECdCAHakEDagwCCyAMQQJ0IAdqQQJqDAELIAxBAnQgB2pBAWoLIARB2MXBABC/BwALIAEoAqwCIgkgASgCqAIiDGoiDUECdCEFIAIoAiAhCCACKAIcIQ8gASgC5AJBAUcEf0EABSABKALoAhCDCwsgBUkEQCAFEPcJIQMCQCABKALkAiIEBH8gAyABKALoAhChCiABKALkAgUgBAtFDQAgASgC6AIiBEGECEkNACAEEM0HCyABIAM2AugCIAFBATYC5AILAkAgAS0A9ANBAUcNACABKALoAyABKALsAyIDQQJ0IAEoAvADIgQgA2pBAnQQoAkhAyAEQQJ0IgQgASgCoAMiBksNCiABKAKcAyEGIAIgAxCDCyILNgJwIAIgBDYCWCAEIAtHDSIgAyAGIAQQqQogAUEAOgD0AyADQYQISQ0AIAMQzQcLIBNCADcCACATQQhqQQA6AAAgCUECdCILIQMgASgCoAMiBCALSQRAIAsgBCIDayIGIAEoApgDIANrSwRAIBYgAyAGQQRBBBDQBSABKAKgAyEDCyABKAKcAyIOIANBAnQiEWohByAGQQJPBEAgCyAEQX9zakECdCIQBEAgB0EAIBD8CwALIAlBBHQgBEECdGsgDmogEWpBBGshByADIAZqQQFrIQMLIAdBADYCACADQQFqIQMLIAEgAzYCoAMgASgC5AJFDQEgAyALSQ0KIAEoApwDIg4gCyAPIAggCSABKgLUAxD8AyABKALoAiAMQQJ0IhEgBRCgCSIDEIMLIQQgAiALNgJYIAIgBDYCcCAEIAtHDSEgAyAOIAsQqQogA0GECE8EQCADEM0HCyABKAKUAyIDIAVJBEAgBSADIgRrIgggASgCjAMgA2tLBEAgHCADIAhBBEEEENAFIAEoApQDIQQLIAEoApADIgcgBEECdCIQaiEGIAhBAk8EQCAFIANBf3NqQQJ0IgUEQCAGQQAgBfwLAAsgDUEEdCADQQJ0ayAHaiAQakEEayEGIAQgCGpBAWshBAsgBkEANgIAIAEgBEEBajYClAMLIAlFDQEgDEEEdCEDIAlB/////wNxIQhBACEFQQAhBwJ/AkACQAJAA0AgCEUNECAHIBFqIgYgASgClAMiBEkEQCABKAKQAyADaiAFaiAFIA5qIg0oAgA2AgAgASgClAMiBCAGQQFqTQ0EIAEoApADIANqIAVqQQRqIA1BBGooAgA2AgAgASgClAMiBCAGQQJqTQ0DIAEoApADIANqIAVqQQhqIA1BCGooAgA2AgAgASgClAMiBCAGQQNqTQ0CIAEoApADIANqIAVqQQxqIA1BDGooAgA2AgAgBUEQaiEFIAdBBGohByAIQQFrIQggCUEBayIJDQEMBwsLIAxBAnQgB2oMAwsgDEECdCAHakEDagwCCyAMQQJ0IAdqQQJqDAELIAxBAnQgB2pBAWoLIARBiMbBABC/BwALIBIgASgCqAIgASgCrAIgAigCHCIPIAIoAiAQ9wMLIAIoAhgiA0UNFyAPQQRrKAIAIgRBeHEiBSADQQJ0IgNBBEEIIARBA3EiBBtqSQ0dIARBACAFIANBJ2pLGw0KIA8QtAIMFwsgBCAFQbzBwQAQogoACyALIAVB+MTBABCiCgALIAYgC0GIxcEAEL8HAAsgCCAJQZjFwQAQvwcACyAEIAZBvMHBABCiCgALIAsgA0G4xcEAEKIKAAsgByALQcjFwQAQvwcACyAEIAZBvMHBABCiCgALIAsgA0HoxcEAEKIKAAsgByALQfjFwQAQvwcACwwTCyACQagBaiADIAUgASgCrAIQ+wQgEiABKAKoAiABKAKsAiACKAKsASIDIAIoArABEN0EIAIoAqgBIgRFDQsCQCADQQRrKAIAIgVBeHEiBiAEQQJ0IgRBBEEIIAVBA3EiBRtqTwRAIAVBACAGIARBJ2pLGw0BIAMQtAIMDQsMEgsMEgsgAkGoAWogAyAFIAEoAqwCEMgFIBIgASgCqAIgASgCrAIgAigCrAEiAyACKAKwARDeBCACKAKoASIERQ0KAkAgA0EEaygCACIFQXhxIgYgBEEBdCIEQQRBCCAFQQNxIgUbak8EQCAFQQAgBiAEQSdqSxsNASADELQCDAwLDBELDBELIAZBAWohBgsgBiAEQeCfwQAQvwcACyASIAEoAqgCIAEoAqwCIAIoAlwiAyACKAJgEI4FIAIoAlgiBEUNBwJAIANBBGsoAgAiBUF4cSIGIARBAnQiBEEEQQggBUEDcSIFG2pPBEAgBUEAIAYgBEEnaksbDQEgAxC0AgwJCwwOCwwOCyACQRhqIAMgBSABKAKsAiAKKgIEIAoqAgwQzwMLIBIgASgCqAIgASgCrAIgAigCHCIDIAIoAiAQ4gMgAigCGCIERQ0FAkAgA0EEaygCACIFQXhxIgYgBEECdCIEQQRBCCAFQQNxIgUbak8EQCAFQQAgBiAEQSdqSxsNASADELQCDAcLDAwLDAwLIAJBGGogAyAFQQMgBCAdIB4QpAULIBIgASgCqAIgASgCrAIgAigCHCIDIAIoAiAQqwQgAigCGCIERQ0DAkAgA0EEaygCACIFQXhxIgYgBEECdCIEQQRBCCAFQQNxIgUbak8EQCAFQQAgBiAEQSdqSxsNASADELQCDAULDAoLDAoLIAJBGGogAyAFQQEgASgCrAIgCioCBCAKKgIMEKQFCyASIAEoAqgCIAEoAqwCIAIoAhwiAyACKAIgEK8DIAIoAhgiBEUNAQJAIANBBGsoAgAiBUF4cSIGIARBAnQiBEEEQQggBUEDcSIFG2pPBEAgBUEAIAYgBEEnaksbDQEgAxC0AgwDCwwICwwICyAAQQE6AAAgACABNgIEIBhFIBVFcg0FIBQgFUEBENYHDAULAkACQAJAIAEoArgCIgQgCigCGEEHakF4cSIDTwRAIAFBADYCuAIgBCADayEFIANFDQEgAyAERg0DIAVFDQIgASgCtAIiBCADIARqIAX8CgAADAILIAMgBEHcq8cAEKIKAAsgAyAERg0BCyABIAU2ArgCCyAKKQMYISEgASABKAKkAkEBaiIDNgKkAiABIAEpA3AgIUIHfEL4////D4N8NwNwAkAgGEUgFUVyDQACQCAUQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyAVak8EQCADQQAgBCAVQSdqSxsNASAUELQCIAEoAqQCIQMMAgsMBwsMBwsgAyABKAJkSQ0ACwsgAEGAAjsBAAwCC0Gom8EAEKQKAAsgAEEBOgAAIAAgFDYCBAsgAkHAAWokAA8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyACQQA2AqgBQQAgAkHwAGogAkHYAGogAkGoAWpB3IHFABCuCAAL/k8DFn8FewF+IwBBIGsiEyQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAEQf//A3EiCARAIAhBEEsNDSAEQf8BcSIHIghBA0kNDCAIQQVPBEBBgBAQfiIPRQ0PQQAhCEEAIQQDQEIAISIgByAEQQ9xIgpLBEAgCkECdCIKQQRqIgkgBksNFCAFIApqNQAAISILIAggD2ogByAEQQR2QQ9xIgpLBH4gCkECdCIKQQRqIgkgBksNFCAFIApqNQAAQiCGBUIACyAihDcAACAEQQFqIQQgCEEIaiIIQYAQRw0ACyACQf//A3EiBEUgA0H//wNxRXINDCACIARBAXZrIgZB//8DcSINEH4iBUUNDyANQQFrIgJBACACIA1NGyIRQQN0IRYgBCICQQJ0IQwgBUEEaygCACIaQQNxIhhFIA1FckUEQCAFQQAgDfwLAAsgDUECdCEOIABBAWohFCADQf//A3EhECAMIBZJBEAgASAOIBBBAWsiCmwiCUkNCCAOIAEgCWsiBEsNC0EBIA0gDUEBTRshBEEAIQcCQCAGQf//A3FBEE8EQCAJIBRqIQP9DAwAAAANAAAADgAAAA8AAAAhHv0MCAAAAAkAAAAKAAAACwAAACEf/QwEAAAABQAAAAYAAAAHAAAAISD9DAAAAAABAAAAAgAAAAMAAAAhISAEQfD/A3EiByEIIAUhAgNAIAIgAyAeQQL9qwEiHf0bA2ogAyAd/RsCaiADIB39GwFqIAMgHf0bAGogAyAfQQL9qwEiHf0bA2ogAyAd/RsCaiADIB39GwFqIAMgHf0bAGogAyAgQQL9qwEiHf0bA2ogAyAd/RsCaiADIB39GwFqIAMgHf0bAGogAyAhQQL9qwEiHf0bA2ogAyAd/RsCaiADIB39GwFqIAMgHf0bAGr9BwAA/VQAAAH9VAAAAv1UAAAD/VQAAAT9VAAABf1UAAAG/VQAAAf9VAAACP1UAAAJ/VQAAAr9VAAAC/1UAAAM/VQAAA39VAAADv1UAAAP/QsAACAh/QwQAAAAEAAAABAAAAAQAAAA/a4BISEgAkEQaiECICD9DBAAAAAQAAAAEAAAABAAAAD9rgEhICAf/QwQAAAAEAAAABAAAAAQAAAA/a4BIR8gHv0MEAAAABAAAAAQAAAAEAAAAP2uASEeIAhBEGsiCA0ACyAHIA1GDQELIAcgBGshCCAFIAdqIQQgCSAHQQJ0aiAAakEBaiECA0AgBCACLQAAOgAAIAJBBGohAiAEQQFqIQQgCEEBaiIIDQALCyABIAogDGwiC0kNCSAMIAEgC2siCEsNCgwUCyAMIBZrIRIgBSANakEBayEZIAZB//8DcSIIQQJPBEAgEkEITQRAIBFB/v8DcSEDIA1B8P8DcSEGQQAhBEEAIAJBAnRrIRtBACANQQJ0ayEXIAAgAiAQQQFrIgdsQQJ0aiEKIAcgDWxBAnQgAGpBAWohFSAIQRBJIRxBASEIA0AgASAEQX9zIBBqIgsgDmwiCUkNCiAOIAEgCWsiBEsNDSAIIQJBACEIAkAgHEUEQCAJIBRqIQT9DAwAAAANAAAADgAAAA8AAAAhHv0MCAAAAAkAAAAKAAAACwAAACEf/QwEAAAABQAAAAYAAAAHAAAAISD9DAAAAAABAAAAAgAAAAMAAAAhISAGIQcgBSEIA0AgCCAEIB5BAv2rASId/RsDaiAEIB39GwJqIAQgHf0bAWogBCAd/RsAaiAEIB9BAv2rASId/RsDaiAEIB39GwJqIAQgHf0bAWogBCAd/RsAaiAEICBBAv2rASId/RsDaiAEIB39GwJqIAQgHf0bAWogBCAd/RsAaiAEICFBAv2rASId/RsDaiAEIB39GwJqIAQgHf0bAWogBCAd/RsAav0HAAD9VAAAAf1UAAAC/VQAAAP9VAAABP1UAAAF/VQAAAb9VAAAB/1UAAAI/VQAAAn9VAAACv1UAAAL/VQAAAz9VAAADf1UAAAO/VQAAA/9CwAAICH9DBAAAAAQAAAAEAAAABAAAAD9rgEhISAIQRBqIQggIP0MEAAAABAAAAAQAAAAEAAAAP2uASEgIB/9DBAAAAAQAAAAEAAAABAAAAD9rgEhHyAe/QwQAAAAEAAAABAAAAAQAAAA/a4BIR4gB0EQayIHDQALIAYiCCANRg0BCyANIAhrIQcgBSAIaiEEIBUgCEECdGohCANAIAQgCC0AADoAACAIQQRqIQggBEEBaiEEIAdBAWsiBw0ACwsgASALIAxsIgtJDQsgDCABIAtrIghLDQxBACEEAkAgEUECTwRAIAMhByAFIQQgCiEIA0AgCCAPIAQvAAD9EP2JAf2pASIe/RsBQQN0aiAPIB79GwBBA3Rq/V0AAP1XAAAB/QsAACAEQQJqIQQgCEEQaiEIIAdBAmsiBw0ACyADIgQgEUYNAQsgCiAEQQN0aiEIA0AgCCAPIAQgBWotAABBA3RqKQAANwAAIAhBCGohCCAEQQFqIgQgEUkNAAsLIBIEQCAAIAtqIBZqIA8gGS0AAEEDdGogEvwKAAALIAogG2ohCiAVIBdqIRUgAiACIBBJIgdqIQggAiEEIAcNAAsMDQsgASAOIBBBAWsiA2wiCUkNCCAOIAEgCWsiBEsNCwJAIAZB//8DcUEQTwRAIAkgFGohAv0MDAAAAA0AAAAOAAAADwAAACEe/QwIAAAACQAAAAoAAAALAAAAIR/9DAQAAAAFAAAABgAAAAcAAAAhIP0MAAAAAAEAAAACAAAAAwAAACEhIA1B8P8DcSILIQcgBSEIA0AgCCACIB5BAv2rASId/RsDaiACIB39GwJqIAIgHf0bAWogAiAd/RsAaiACIB9BAv2rASId/RsDaiACIB39GwJqIAIgHf0bAWogAiAd/RsAaiACICBBAv2rASId/RsDaiACIB39GwJqIAIgHf0bAWogAiAd/RsAaiACICFBAv2rASId/RsDaiACIB39GwJqIAIgHf0bAWogAiAd/RsAav0HAAD9VAAAAf1UAAAC/VQAAAP9VAAABP1UAAAF/VQAAAb9VAAAB/1UAAAI/VQAAAn9VAAACv1UAAAL/VQAAAz9VAAADf1UAAAO/VQAAA/9CwAAICH9DBAAAAAQAAAAEAAAABAAAAD9rgEhISAIQRBqIQggIP0MEAAAABAAAAAQAAAAEAAAAP2uASEgIB/9DBAAAAAQAAAAEAAAABAAAAD9rgEhHyAe/QwQAAAAEAAAABAAAAAQAAAA/a4BIR4gB0EQayIHDQALIAsgDUYNAQsgDSALayEHIAUgC2ohBCAJIAtBAnRqIABqQQFqIQgDQCAEIAgtAAA6AAAgCEEEaiEIIARBAWohBCAHQQFrIgcNAAsLIAEgAyAMbCILSQ0JIAwgASALayIISw0KQQEgESARQQFNGyEBQQAhCSARQQJPBEAgACALaiEEIAFB/v8DcSIJIQcgBSEIA0AgBCAPIAgvAAD9EP2JAf2pASIe/RsBQQN0aiAPIB79GwBBA3Rq/V0AAP1XAAAB/QsAACAIQQJqIQggBEEQaiEEIAdBAmsiBw0ACyAJIBFGDQgLIAUgCWohBCAJIAFrIQcgACALIAlBA3RqaiEIA0AgCCAPIAQtAABBA3RqKQAANwAAIAhBCGohCCAEQQFqIQQgB0EBaiIHDQALDAcLIBJBCEsNBSAAIBZqIQAgASAQQQFrIgMgDWxBAnQiCWshBCABIAIgA2xBAnQiC2shCEEBIQcDQCABIAlJDQggBCAOSQ0LIAUgCSAUai0AADoAACABIAtJDQkgCCAMSQ0KIBIEQCAAIAtqIA8gGS0AAEEDdGogEvwKAAALIAQgDmohBCAJIA5rIQkgCCAMaiEIIAsgDGshCyAHIBBJIAdBAWohBw0ACwwLC0GAIBB+Ig1FDQ4gBEH/AXEhCEEAIQQCQAJAAkADQEEAIQsgCCAEQQNxIgdLBEAgB0ECdCIKQQRqIgcgBksNAiAFIApqKAAAIQsLQQAhDkEAIQ8gCCAEQQJ2QQNxIgdLBEAgB0ECdCIKQQRqIgcgBksNAiAFIApqKAAAIQ8LIAggBEEEdkEDcSIHSwRAIAdBAnQiCkEEaiIHIAZLDQIgBSAKaigAACEOC0EAIRAgCCAEQQZ2QQNxIgdLBEAgB0ECdCIKQQRqIgcgBksNAiAFIApqKAAAIRALIAkgDWoiByALNgAAIAdBDGogEDYAACAHQQhqIA42AAAgB0EEaiAPNgAAIARBAWohBCAJQRBqIglBgCBHDQALIAJB//8DcSIERSADQf//A3FFcg0GQQEhBgJAIARBAnYgAkEDcUEAR2oiCUUNACAJEH4iBkUNEiAGQQRrLQAAQQNxRSAJRXINACAGQQAgCfwLAAsgCUECdCEMIABBAWohESADQf//A3EhDgJAAkAgAkH//wNxIgJBAnQiCyAJQQFrIgNBACADIAlNGyIDQQR0IhBJBEAgASAMIA5BAWsiCmwiB0kNAiAMIAEgB2siBEsNAQJAIAlFDQBBACEFIAlBEE8EQCAHIBFqIQP9DAwAAAANAAAADgAAAA8AAAAhHv0MCAAAAAkAAAAKAAAACwAAACEf/QwEAAAABQAAAAYAAAAHAAAAISD9DAAAAAABAAAAAgAAAAMAAAAhISAJQfD/AXEiBSEIIAYhAgNAIAIgAyAeQQL9qwEiHf0bA2ogAyAd/RsCaiADIB39GwFqIAMgHf0bAGogAyAfQQL9qwEiHf0bA2ogAyAd/RsCaiADIB39GwFqIAMgHf0bAGogAyAgQQL9qwEiHf0bA2ogAyAd/RsCaiADIB39GwFqIAMgHf0bAGogAyAhQQL9qwEiHf0bA2ogAyAd/RsCaiADIB39GwFqIAMgHf0bAGr9BwAA/VQAAAH9VAAAAv1UAAAD/VQAAAT9VAAABf1UAAAG/VQAAAf9VAAACP1UAAAJ/VQAAAr9VAAAC/1UAAAM/VQAAA39VAAADv1UAAAP/QsAACAh/QwQAAAAEAAAABAAAAAQAAAA/a4BISEgAkEQaiECICD9DBAAAAAQAAAAEAAAABAAAAD9rgEhICAf/QwQAAAAEAAAABAAAAAQAAAA/a4BIR8gHv0MEAAAABAAAAAQAAAAEAAAAP2uASEeIAhBEGsiCA0ACyAFIAlGDQELIAUgCWshCCAFIAZqIQQgByAFQQJ0aiAAakEBaiECA0AgBCACLQAAOgAAIAJBBGohAiAEQQFqIQQgCEEBaiIIDQALCyABIAogC2wiBEkNByALIAEgBGsiAksNBQwYCyALIBBrIQ8gBiAJakEBayEVIAkgAyADIAlLGyISBEBBACEEQQAgCWshFCASQX5xIRYgEkEBcSEYIAlB8P8BcSEFQQAgAkECdGshGUEAIAlBAnRrIRogACACIA5BAWsiA2xBAnRqIQogAyAJbEECdCAAakEBaiEIIA9BEEshG0EBIQIDQCABIARBf3MgDmoiFyAMbCIHSQ0DIAwgASAHayIESw0CIAIhAwJAIAlFDQBBACECIAlBEE8EQCAHIBFqIQT9DAwAAAANAAAADgAAAA8AAAAhHv0MCAAAAAkAAAAKAAAACwAAACEf/QwEAAAABQAAAAYAAAAHAAAAISD9DAAAAAABAAAAAgAAAAMAAAAhISAFIQcgBiECA0AgAiAEIB5BAv2rASId/RsDaiAEIB39GwJqIAQgHf0bAWogBCAd/RsAaiAEIB9BAv2rASId/RsDaiAEIB39GwJqIAQgHf0bAWogBCAd/RsAaiAEICBBAv2rASId/RsDaiAEIB39GwJqIAQgHf0bAWogBCAd/RsAaiAEICFBAv2rASId/RsDaiAEIB39GwJqIAQgHf0bAWogBCAd/RsAav0HAAD9VAAAAf1UAAAC/VQAAAP9VAAABP1UAAAF/VQAAAb9VAAAB/1UAAAI/VQAAAn9VAAACv1UAAAL/VQAAAz9VAAADf1UAAAO/VQAAA/9CwAAICH9DBAAAAAQAAAAEAAAABAAAAD9rgEhISACQRBqIQIgIP0MEAAAABAAAAAQAAAAEAAAAP2uASEgIB/9DBAAAAAQAAAAEAAAABAAAAD9rgEhHyAe/QwQAAAAEAAAABAAAAAQAAAA/a4BIR4gB0EQayIHDQALIAUiAiAJRg0BCyACIBRqIQcgAiAGaiEEIAggAkECdGohAgNAIAQgAi0AADoAACACQQRqIQIgBEEBaiEEIAdBAWoiBw0ACwsgASALIBdsIgRJDQggCyABIARrIgJLDQYgACAEaiEHQQAhAgJAIBJBAUcEQCAKIQQDQCAEIA0gAiAGaiIXLQAAQQR0av0AAAD9CwAAIARBEGogDSAXQQFqLQAAQQR0av0AAAD9CwAAIARBIGohBCAWIAJBAmoiAkcNAAsgGEUNAQsgByACQQR0aiANIAIgBmotAABBBHRq/QAAAP0LAAALAkAgCUUNACAbDQYgD0UNACAHIBBqIA0gFS0AAEEEdGogD/wKAAALIAogGWohCiAIIBpqIQggAyADIA5JIgdqIQIgAyEEIAcNAAsMCAtBACEFQQAgCWshCCAJQfD/AXEhAyAAIBBqIQpBACAJQQJ0ayEQIA5BAWsgCWxBAnQgAGpBAWohACAPQRFJIRIgCUEQSSEUQQEhBANAIAUhAiAEIQUgASACQX9zIA5qIhYgDGwiB0kNAiAMIAEgB2siBEsNAQJAIAlFDQBBACECIBRFBEAgByARaiEE/QwMAAAADQAAAA4AAAAPAAAAIR79DAgAAAAJAAAACgAAAAsAAAAhH/0MBAAAAAUAAAAGAAAABwAAACEg/QwAAAAAAQAAAAIAAAADAAAAISEgAyEHIAYhAgNAIAIgBCAeQQL9qwEiHf0bA2ogBCAd/RsCaiAEIB39GwFqIAQgHf0bAGogBCAfQQL9qwEiHf0bA2ogBCAd/RsCaiAEIB39GwFqIAQgHf0bAGogBCAgQQL9qwEiHf0bA2ogBCAd/RsCaiAEIB39GwFqIAQgHf0bAGogBCAhQQL9qwEiHf0bA2ogBCAd/RsCaiAEIB39GwFqIAQgHf0bAGr9BwAA/VQAAAH9VAAAAv1UAAAD/VQAAAT9VAAABf1UAAAG/VQAAAf9VAAACP1UAAAJ/VQAAAr9VAAAC/1UAAAM/VQAAA39VAAADv1UAAAP/QsAACAh/QwQAAAAEAAAABAAAAAQAAAA/a4BISEgAkEQaiECICD9DBAAAAAQAAAAEAAAABAAAAD9rgEhICAf/QwQAAAAEAAAABAAAAAQAAAA/a4BIR8gHv0MEAAAABAAAAAQAAAAEAAAAP2uASEeIAdBEGsiBw0ACyADIgIgCUYNAQsgAiAIaiEHIAIgBmohBCAAIAJBAnRqIQIDQCAEIAItAAA6AAAgAkEEaiECIARBAWohBCAHQQFqIgcNAAsLIAEgCyAWbCIESQ0HIAsgASAEayICSw0FAkAgCUUNACASRQ0FIA9FDQAgBCAKaiANIBUtAABBBHRqIA/8CgAACyAAIBBqIQAgBSAFIA5JIgJqIQQgAg0ACwwHCyAMIARB9O3EABCiCgALIAcgAUHE7sQAEKMKAAsgByAGQdTuxAAQogoACyAPQRBBpO7EABCiCgALIAsgAkGE7sQAEKIKAAtBtO3EAEEgQdTtxAAQoggACyAEIAFBtO7EABCjCgALIAlFDQAgBkEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgCWpJDRAgAEEAIAEgCUEnaksbDREgBhC0AgsgDUEEaygCACIAQXhxQYQgQYggIABBA3EiARtJDQ8gAUEAIABBqCBPGw0QIA0QtAIMDAsgASAOIBBBAWsiAGwiCUkNASAOIAEgCWsiBEsNBCAFIAkgFGotAAA6AAAgASAAIAxsIgtJDQIgDCABIAtrIghLDQMLIBJBCEGk7sQAEKIKAAsgCSABQcTuxAAQowoACyALIAFBtO7EABCjCgALIAwgCEGE7sQAEKIKAAsgDiAEQfTtxAAQogoACyAaQXhxIgBBBEEIIBgbIA1qSQ0IIBhBACAAIA1BJ2pLGw0JIAUQtAILIA9BBGsoAgAiAEF4cUGEEEGIECAAQQNxIgEbSQ0HIAFBACAAQagQTxsNCCAPELQCDAQLQYDAABB+Ig1FDQEgBEH/AXEhDEEAIQQCQAJAAkACQAJAAkADQEEAIQsgDCAEQQFxIghLBEAgCEECdCIIQQRqIgcgBksNAiAFIAhqKAAAIQsLQQAhDkEAIQ8gDCAEQQF2QQFxIghLBEAgCEECdCIIQQRqIgcgBksNAiAFIAhqKAAAIQ8LIAwgBEECdkEBcSIISwRAIAhBAnQiCEEEaiIHIAZLDQIgBSAIaigAACEOC0EAIQpBACEQIAwgBEEDdkEBcSIISwRAIAhBAnQiCEEEaiIHIAZLDQIgBSAIaigAACEQCyAMIARBBHZBAXEiCEsEQCAIQQJ0IghBBGoiByAGSw0CIAUgCGooAAAhCgtBACERQQAhCCAMIARBBXZBAXEiB0sEQCAHQQJ0IghBBGoiByAGSw0CIAUgCGooAAAhCAsgDCAEQQZ2QQFxIgdLBEAgB0ECdCIRQQRqIgcgBksNAiAFIBFqKAAAIRELQQAhFSAMIARBB3ZBAXEiB0sEQCAHQQJ0IhJBBGoiByAGSw0CIAUgEmooAAAhFQsgCSANaiIHIAs2AAAgB0EcaiAVNgAAIAdBGGogETYAACAHQRRqIAg2AAAgB0EQaiAKNgAAIAdBDGogEDYAACAHQQhqIA42AAAgB0EEaiAPNgAAIARBAWohBCAJQSBqIglBgMAARw0ACyACQf//A3EiBEUgA0H//wNxRXINBUEBIQUCQCAEQQN2IAJBB3FBAEdqIgpFDQAgChB+IgVFDQggBUEEay0AAEEDcUUgCkVyDQAgBUEAIAr8CwALIApBAnQhDCAAQQFqIRAgA0H//wNxIQ4CQAJAIAJB//8DcSICQQJ0IgsgCkEBayIDQQAgAyAKTRsiA0EFdCIJSQRAIAEgDCAOQQFrIglsIgdJDQIgDCABIAdrIgRLDQECQCAKRQ0AQQAhBiAKQRBPBEAgByAQaiED/QwMAAAADQAAAA4AAAAPAAAAIR79DAgAAAAJAAAACgAAAAsAAAAhH/0MBAAAAAUAAAAGAAAABwAAACEg/QwAAAAAAQAAAAIAAAADAAAAISEgCkHw/wBxIgYhCCAFIQIDQCACIAMgHkEC/asBIh39GwNqIAMgHf0bAmogAyAd/RsBaiADIB39GwBqIAMgH0EC/asBIh39GwNqIAMgHf0bAmogAyAd/RsBaiADIB39GwBqIAMgIEEC/asBIh39GwNqIAMgHf0bAmogAyAd/RsBaiADIB39GwBqIAMgIUEC/asBIh39GwNqIAMgHf0bAmogAyAd/RsBaiADIB39GwBq/QcAAP1UAAAB/VQAAAL9VAAAA/1UAAAE/VQAAAX9VAAABv1UAAAH/VQAAAj9VAAACf1UAAAK/VQAAAv9VAAADP1UAAAN/VQAAA79VAAAD/0LAAAgIf0MEAAAABAAAAAQAAAAEAAAAP2uASEhIAJBEGohAiAg/QwQAAAAEAAAABAAAAAQAAAA/a4BISAgH/0MEAAAABAAAAAQAAAAEAAAAP2uASEfIB79DBAAAAAQAAAAEAAAABAAAAD9rgEhHiAIQRBrIggNAAsgBiAKRg0BCyAGIAprIQggBSAGaiEEIAcgBkECdGogAGpBAWohAgNAIAQgAi0AADoAACACQQRqIQIgBEEBaiEEIAhBAWoiCA0ACwsgASAJIAtsIgRJDQYgCyABIARrIgJLDQUMDgsgCyAJayEPIAUgCmpBAWshFSAKIAMgAyAKSxsiEgRAQQAhBEEAIAprIRQgEkF+cSEWIBJBAXEhGCAKQfD/AHEhBkEAIAJBAnRrIRlBACAKQQJ0ayEaIAAgAiAOQQFrIgNsQQJ0aiEIIAMgCmxBAnQgAGpBAWohESAPQSBLIRtBASECA0AgASAEQX9zIA5qIhcgDGwiB0kNAyAMIAEgB2siBEsNAiACIQMCQCAKRQ0AQQAhAiAKQRBPBEAgByAQaiEE/QwMAAAADQAAAA4AAAAPAAAAIR79DAgAAAAJAAAACgAAAAsAAAAhH/0MBAAAAAUAAAAGAAAABwAAACEg/QwAAAAAAQAAAAIAAAADAAAAISEgBiEHIAUhAgNAIAIgBCAeQQL9qwEiHf0bA2ogBCAd/RsCaiAEIB39GwFqIAQgHf0bAGogBCAfQQL9qwEiHf0bA2ogBCAd/RsCaiAEIB39GwFqIAQgHf0bAGogBCAgQQL9qwEiHf0bA2ogBCAd/RsCaiAEIB39GwFqIAQgHf0bAGogBCAhQQL9qwEiHf0bA2ogBCAd/RsCaiAEIB39GwFqIAQgHf0bAGr9BwAA/VQAAAH9VAAAAv1UAAAD/VQAAAT9VAAABf1UAAAG/VQAAAf9VAAACP1UAAAJ/VQAAAr9VAAAC/1UAAAM/VQAAA39VAAADv1UAAAP/QsAACAh/QwQAAAAEAAAABAAAAAQAAAA/a4BISEgAkEQaiECICD9DBAAAAAQAAAAEAAAABAAAAD9rgEhICAf/QwQAAAAEAAAABAAAAAQAAAA/a4BIR8gHv0MEAAAABAAAAAQAAAAEAAAAP2uASEeIAdBEGsiBw0ACyAGIgIgCkYNAQsgAiAUaiEHIAIgBWohBCARIAJBAnRqIQIDQCAEIAItAAA6AAAgAkEEaiECIARBAWohBCAHQQFqIgcNAAsLIAEgCyAXbCIESQ0HIAsgASAEayICSw0GIAAgBGohB0EAIQICQCASQQFHBEAgCCEEA0AgBCANIAIgBWoiFy0AAEEFdGoiHP0AAAD9CwAAIARBEGogHEEQav0AAAD9CwAAIARBIGogDSAXQQFqLQAAQQV0aiIX/QAAAP0LAAAgBEEwaiAXQRBq/QAAAP0LAAAgBEFAayEEIBYgAkECaiICRw0ACyAYRQ0BCyAHIAJBBXRqIgQgDSACIAVqLQAAQQV0aiIC/QAAAP0LAAAgBEEQaiACQRBq/QAAAP0LAAALAkAgCkUNACAbDQYgD0UNACAHIAlqIA0gFS0AAEEFdGogD/wKAAALIAggGWohCCARIBpqIREgAyADIA5JIgdqIQIgAyEEIAcNAAsMBwtBACEGQQAgCmshCCAKQfD/AHEhAyAAIAlqIRFBACAKQQJ0ayESIA5BAWsgCmxBAnQgAGpBAWohCSAPQSFJIRQgCkEQSSEWQQEhBANAIAYhACAEIQYgASAAQX9zIA5qIhggDGwiB0kNAiAMIAEgB2siBEsNAQJAIApFDQBBACECIBZFBEAgByAQaiEA/QwMAAAADQAAAA4AAAAPAAAAIR79DAgAAAAJAAAACgAAAAsAAAAhH/0MBAAAAAUAAAAGAAAABwAAACEg/QwAAAAAAQAAAAIAAAADAAAAISEgAyEHIAUhAgNAIAIgACAeQQL9qwEiHf0bA2ogACAd/RsCaiAAIB39GwFqIAAgHf0bAGogACAfQQL9qwEiHf0bA2ogACAd/RsCaiAAIB39GwFqIAAgHf0bAGogACAgQQL9qwEiHf0bA2ogACAd/RsCaiAAIB39GwFqIAAgHf0bAGogACAhQQL9qwEiHf0bA2ogACAd/RsCaiAAIB39GwFqIAAgHf0bAGr9BwAA/VQAAAH9VAAAAv1UAAAD/VQAAAT9VAAABf1UAAAG/VQAAAf9VAAACP1UAAAJ/VQAAAr9VAAAC/1UAAAM/VQAAA39VAAADv1UAAAP/QsAACAh/QwQAAAAEAAAABAAAAAQAAAA/a4BISEgAkEQaiECICD9DBAAAAAQAAAAEAAAABAAAAD9rgEhICAf/QwQAAAAEAAAABAAAAAQAAAA/a4BIR8gHv0MEAAAABAAAAAQAAAAEAAAAP2uASEeIAdBEGsiBw0ACyADIgIgCkYNAQsgAiAIaiEHIAIgBWohBCAJIAJBAnRqIQIDQCAEIAItAAA6AAAgAkEEaiECIARBAWohBCAHQQFqIgcNAAsLIAEgCyAYbCIESQ0GIAsgASAEayICSw0FAkAgCkUNACAURQ0FIA9FDQAgBCARaiANIBUtAABBBXRqIA/8CgAACyAJIBJqIQkgBiAGIA5JIgBqIQQgAA0ACwwGCyAMIARB9O3EABCiCgALIAcgAUHE7sQAEKMKAAsgByAGQdTuxAAQogoACyAPQSBBpO7EABCiCgALIAsgAkGE7sQAEKIKAAsgBCABQbTuxAAQowoACyAKRQ0AIAVBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIApqSQ0HIABBACABIApBJ2pLGw0IIAUQtAILIA1BBGsoAgAiAEF4cUGEwABBiMAAIABBA3EiARtJDQYgAUEAIABBqMAATxtFBEAgDRC0AgwECwwHCyAGQQBOBEACQCAGQXxxIgIEQCACEH4iAkUNAyAGQQJ2IQcgBkEEayIDQXxxQQRqIgQEQCACIAUgBPwKAAALIBMgA0ECdkEBaiIENgIMIBMgAjYCCCATIAc2AgQgA0H8B0kNAQwECyATQQA2AgwgE0KAgICAEDcCBEEBIQJBACEECyAEIQhBgAIgBGsiAyAHIARrSwRAQQAhBiMAQSBrIgIkAAJAAkAgAyAEaiIHIBNBBGoiBSgCACIIQQF0IgogByAKSxsiB0H/////A0sNAEEEIAcgB0EETRsiB0ECdCIKQQBIDQAgAiAIBH8gAiAIQQJ0NgIcIAIgBSgCBDYCFEEBBUEACzYCGCACQQhqQQEgCiACQRRqENIHIAIoAghBAUcNASACKAIQGiACKAIMIQYLIAZB/KHIABDQCQALIAIoAgwhBiAFIAc2AgAgBSAGNgIEIAJBIGokACATKAIMIQggEygCCCECCyACIAhBAnRqIQUgBEH/AUcEfyADQQJ0QQRrIgQEQCAFQQAgBPwLAAsgAyAIaiIDQQFrIQggAiADQQJ0akEEawUgBQtBADYAACATIAhBAWoiAjYCDCACQYACRgRAIBMoAgghAgwDC0HA+MgAQSsgE0EfakGE4MQAQeTtxAAQlQcAC0G0h8cAELcICwALAkAgAUF8cSIHRQ0AIAFBBGsiAUEMcUEMRwRAIAcgAUECdkEBakEDcSIEQQJ0ayEHA0AgACACIABBAWotAABBAnRqKAAANgAAIABBBGohACAEQQFrIgQNAAsgAUEMSQ0BC0EAIQgDQCAAIAhqIgEgAiABQQFqLQAAQQJ0aigAADYAACABQQRqIAIgAUEFai0AAEECdGooAAA2AAAgAUEIaiACIAFBCWotAABBAnRqKAAANgAAIAFBDGogAiABQQ1qLQAAQQJ0aigAADYAACAHIAhBEGoiCEcNAAsLIBMoAgQiAEUNACACQQRrKAIAIgFBeHEiAyAAQQJ0IgBBBEEIIAFBA3EiARtqSQ0DIAFBACADIABBJ2pLGw0EIAIQtAILIBNBIGokAA8LIAkgBkHU7sQAEKIKAAsgE0EANgIUIBNBATYCCCATQYSPyAA2AgQgE0IENwIMIBNBBGpBlO7EABDKCAALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC6NNAix/An4jAEGwC2siAiQAIAJByABqIAFBCGooAgA2AgAgAkGAAToATCACQQA2AjwgAkKAgICAEDcCNCACIAEpAgA3AkAgAkHYBmogAkE0ahCLASACKALcBiEVAkACQAJAAkACQAJAIAIoAtgGIgFBlYCAgHhHBEAgAiACKQPgBiIuNwPgAyACIBU2AtwDIAIgATYC2ANBgICAgHghESAupyEDAkACQAJAAn8CfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAFBgICAgHhzIgUgAUEAThtBFGsOAgABAgsCQCAuQoCAgIAQWgRAIAJBGGogAxDSBCACKAIcIhIgAigCGEEBcQ0UGiAuQiCIIi9CAVENBCACQRBqIANBEGoQ0QQgAigCFCETIAIoAhBBAXFFDQEgEwwUC0EAQYzkwABBgIjIABCPBwwTCyAvQgJRDQMgAkGYBmoiBiADQSBqELMBIAIoApwGIgQgAigCmAYiAUECRg0SGiACQbAJaiACQcAGav0AAgD9CwMAIAJBwAlqIAJB0AZqKAIANgIAIAIgAikCuAY3A6gJIAIoArQGIRwgAigCsAYhCyACKAKoBiEIIAIoAqQGIQUgL0IDUQ0EIAIoAqwGIQ4gAigCoAYhGCAGIANBMGoQ0QEgAigCnAYiHSACKAKYBiIKQYCAgIB4Rg0RGiACKAKoBiEaIAIoAqQGIQcgL0IEUQ0FIAIoAqwGISEgAigCoAYhIiAGIANBQGsQwwEgAigCnAYhDyACKAKYBiIRQYCAgIB4Rg0QIAIoAqgGIR4gAigCpAYhFQJAAkACfwJAIC9CBVIEQCACKAKsBiEjIAIoAqAGISQgBiADQdAAahDSASACKAKcBiEMIAIoApgGIglBgICAgHhGDQMgAiAC/QACoAb9CwLACCACIAw2ArwIIAIgCTYCuAggL0IGUQ0BQYCAgIB4IRACQAJAQRUgA0HgAGoiFCgCACIWQYCAgIB4cyAWQQBOG0EQaw4DBgAGAQsgAygCZCEUCyACQZgGaiAUEL8BIAIoApwGIg0gAigCmAYiEEGBgICAeEYNAhogDSAQQYKAgIB4Rg0CGiACKQK4BiEuIAIoArQGIRcgAigCsAYhFCACKAKsBiEbIAIoAqgGIRkgAigCpAYhFiACKAKgBiEfDAQLQQVBjOTAAEGAiMgAEI8HIQwMAgtBBkGM5MAAQYCIyAAQjwcLIQwgAkG4CGoQiQYLIBEEQCAPIBFBARDWBwsgFUGAgICAeHJBgICAgHhHBEAgHiAVQQEQ1gcLIAwhDwwRCyACQZgJaiIDIAJBwAlqKAIANgIAIAJBkAlqIgYgAkG4CWopAwA3AwAgAiAC/QADqAn9CwOACSACIBw2AuwEIAIgCzYC6AQgAiAONgLkBCACIAg2AuAEIAIgBTYC3AQgAiAYNgLYBCACIAQ2AtQEIAIgATYC0AQgAigCwAghJSACKALECCEOIAIoAsgIIRggAigCzAghICACQYgFaiADKAIANgIAIAJBgAVqIAYpAwA3AgAgAiAC/QADgAn9CwLwBCACIBM2AoAGIAIgEjYC/AUgAiAuNwL0BSACIBc2AvAFIAIgFDYC7AUgAiAbNgLoBSACIBk2AuQFIAIgFjYC4AUgAiAfNgLcBSACIA02AtgFIAIgEDYC1AUgAiAgNgLQBSACIBg2AswFIAIgDjYCyAUgAiAlNgLEBSACIAw2AsAFIAIgCTYCvAUgAiAjNgK4BSACIB42ArQFIAIgFTYCsAUgAiAkNgKsBSACIA82AqgFIAIgETYCpAUgAiAhNgKgBSACIBo2ApwFIAIgBzYCmAUgAiAiNgKUBSACIB02ApAFIAIgCjYCjAUgL0IHUgRAIAJBBzYCmAYgL6dB+f///wBqQf////8AcUEHaiACQZgGakH498AAEI8HIQQgAkHQBGoQlAIMFAsgAkHoA2ogAkHYBGpB5AD8CgAADBQLIANFBEBBgYCAgHghEEECIQdBgICAgHghA0GAgICAeCEJDAoLIANBBXQhJyACQfAEaiEaQQIhB0GAgICAeCEDQYCAgIB4IQlBgYCAgHghEANAAkACQAJAAkACQAJAAkACQEEVIAogFWoiASgCACIFQYCAgIB4cyAFQQBOG0EBaw4PAQAAAgAAAAAAAAADBAUGAAsgASACQYAJakGw3sAAENkIIQUgAkEBOgDQBCACIAU2AtQEDAYLIAJBADoA0AQgAkEHIAFBBGotAAAiBSAFQQdPGzoA0QQMBQsgAkEAOgDQBCACQgcgAUEIaikDACIvIC9CB1obPADRBAwECyACQdAEaiABQQhqKAIAIAFBDGooAgAQ4QYMAwsgAkHQBGogAUEEaigCACABQQhqKAIAEOEGDAILIAJB0ARqIAFBCGooAgAgAUEMaigCABDuBAwBCyACQdAEaiABQQRqKAIAIAFBCGooAgAQ7gQLIAItANAEQQFGBEAgAigC1AQhBEEBIQgMDAsgAUEQaiEFAkACQAJAAkACQAJAAkACQCACLQDRBEEBaw4HAQIDBAUGBwALIAhBAUYNECACQSBqIAUQ0gRBASEIIAIoAiQhEiACKAIgQQFxRQ0GIBIhBAwSCyAPQQFGDQ4gAkEoaiAFENEEQQEhDyACKAIsIRMgAigCKEEBcUUNBSATIQRBASEIQQEhCgwSCyAHQQJHBEBBASEIQazjwABBBRDRByEEDBELIAJB0ARqIAUQswEgAigC1AQhBCACKALQBCIHQQJGBEBBASEIQQIhBwwRCyACQbAJaiAaQQhq/QACAP0LAwAgAkHACWogGkEYaigCADYCACACIBopAgA3A6gJIAIoAuwEISEgAigC6AQhHCACKALkBCEoIAIoAuAEISIgAigC3AQhHSACKALYBCEpDAQLIBFBgICAgHhHBEBBASEIQbHjwABBBhDRByEEDBALIAJB0ARqIAUQ0QEgAigC1AQhASACKALQBCIRQYCAgIB4RgRAQQEhCEGAgICAeCERIAEhBAwQCyACKALkBCEqIAIoAuAEISMgAigC3AQhJCACKALYBCErIAEhBgwDCyADQYCAgIB4RwRAQQEhCEG348AAQQUQ0QchBAwPCyACQdAEaiAFEMMBIAIoAtQEIQEgAigC0AQiA0GAgICAeEYEQEEBIQhBgICAgHghAyABIQQMDwsgAigC5AQhLCACKALgBCEmIAIoAtwEIR4gAigC2AQhLSABIQsMAgsgCUGAgICAeEcEQEEBIQhBvOPAAEEDENEHIQQMDgsgAkHQBGogBRDSASACKALUBCEBIAIoAtAEIglBgICAgHhGBEBBASEIQYCAgIB4IQkgASEEDA4LIAIoAuQEISAgAigC4AQhGCACKALcBCEOIAIoAtgEISUgASEMDAELIBBBgYCAgHhHBEBBASEKQb/jwABBAxDRByEEQQEhD0EBIQgMDwtBgICAgHghEAJAAkACQEEVIAUoAgAiFkGAgICAeHMgFkEAThtBEGsOAwIAAgELIAFBFGooAgAhBQsgAkHQBGogBRC/ASACKALQBCIQQYGAgIB4Rw0AIAIoAtQEIQRBASEKQQEhD0EBIQgMEAsgAikC8AQhLiACKALsBCEXIAIoAugEIRQgAigC5AQhGyACKALgBCEZIAIoAtwEIRYgAigC2AQhHyACKALUBCENCyAnIApBIGoiCkcNAAsgCEEBcUUNCSAPQQFxRQRAQQEhCEGyh8gAQQUQzwchBAwLCyAHQQJGIgpFBEAgAkHQBmogAkHACWooAgA2AgAgAkHIBmogAkG4CWopAwA3AgAgAiAC/QADqAn9CwK4BiACICE2ArQGIAIgHDYCsAYgAiAoNgKsBiACICI2AqgGIAIgHTYCpAYgAiApNgKgBiACIAQ2ApwGIAIgBzYCmAYCQAJAIBFBgICAgHhGIg9FBEAgAiAqNgLMCCACICM2AsgIIAIgJDYCxAggAiArNgLACCACIAY2ArwIIAIgETYCuAggA0GAgICAeEYiCA0BIAIgLDYClAkgAiAmNgKQCSACIB42AowJIAIgLTYCiAkgAiALNgKECSACIAM2AoAJIAlBgICAgHhGDQJBgICAgHggECAQQYGAgIB4RhshECACQYAFaiACQaAGaiIBQTBqKAIANgIAIAJB8ARqIAFBIGr9AAIA/QsDACACQeAEaiABQRBq/QACAP0LAwAgAkGMBWogAkHACGr9AAIA/QsCACACQawFaiACQZAJaikCADcCACACIAIpArgINwKEBSACIAL9AAKACf0LApwFIAIgAf0AAgD9CwPQBCAHIQEMEgtBASEIQbHjwABBBhDPByEEDAkLQbfjwABBBRDPByEEDAcLQbzjwABBAxDPByEEIAJBgAlqEIoGDAYLQQEhCEGs48AAQQUQzwchBEEBIQ8MCwsgAkHYA2ogAkGACWpBoN3AABDZCCEEDBMLQQFBjOTAAEGAiMgAEI8HDA8LQQJBjOTAAEGAiMgAEI8HDA4LQQNBjOTAAEGAiMgAEI8HDAwLQQRBjOTAAEGAiMgAEI8HIQ8MCgsgAkG4CGoQiQYLIAJBmAZqEJAGDAQLQQEhCEGyh8gAQQUQ0QchBAwCC0EBIQhBkIjIAEEHENEHIQQMAQtBASEIQZCIyABBBxDPByEEC0EBIQ9BASEKCyAQQYGAgIB4Rg0BCyAQQYCAgIB4Rg0AIBAEQCANQQRrKAIAIgFBeHEiBUEEQQggAUEDcSIBGyAQakkNDiABQQAgBSAQQSdqSxsNDyANELQCCyAWBEAgGUEEaygCACIBQXhxIgVBBEEIIAFBA3EiARsgFmpJDQ4gAUEAIAUgFkEnaksbDQ8gGRC0AgsgFEUNACAXQQRrKAIAIgFBeHEiBSAUQQJ0IhVBBEEIIAFBA3EiARtqSQ0NIAFBACAFIBVBJ2pLGw0OIBcQtAILAkAgCUGAgICAeEYNACAJBEAgDEEEaygCACIBQXhxIgVBBEEIIAFBA3EiARsgCWpJDQ4gAUEAIAUgCUEnaksbDQ8gDBC0AgsgDkUNACAYQQRrKAIAIgFBeHEiBSAOQQJ0IhVBBEEIIAFBA3EiARtqSQ0NIAFBACAFIBVBJ2pLGw0OIBgQtAILAkAgA0GAgICAeEcgCHFFDQAgAwRAIAtBBGsoAgAiAUF4cSIFQQRBCCABQQNxIgEbIANqSQ0OIAFBACAFIANBJ2pLGw0PIAsQtAILIB5BgICAgHhyQYCAgIB4Rg0AICZBBGsoAgAiAUF4cSIDQQRBCCABQQNxIgEbIB5qSQ0NIAFBACADIB5BJ2pLGw0OICYQtAILAkAgEUGAgICAeEcgD3FFDQAgEQRAIAZBBGsoAgAiAUF4cSIDQQRBCCABQQNxIgEbIBFqSQ0OIAFBACADIBFBJ2pLGw0PIAYQtAILICRFDQAgI0EEaygCACIBQXhxIgMgJEECdCIGQQRBCCABQQNxIgEbakkNDSABQQAgAyAGQSdqSxtFBEAgIxC0AgwBCwwOC0ECIQECQCAHQQJHIApxRQ0AIB0EQCAiQQRrKAIAIgNBeHEiBkEEQQggA0EDcSIDGyAdakkNDiADQQAgBiAdQSdqSxsNDyAiELQCCyAcRQ0AICFBBGsoAgAiA0F4cSIGQQRBCCADQQNxIgMbIBxqSQ0NIANBACAGIBxBJ2pLG0UEQCAhELQCDAILDA4LCyACQegDaiACQdAEakHkAPwKAAAMBAsgCgRAIB0gCkEBENYHCyAHBEAgGiAHQQJ0QQQQ1gcLIA8LIAUEQCAIIAVBARDWBwsgCwRAIBwgC0EBENYHCwshBCACQYgEaiACQYgJav0AAwD9CwIAIAJBmARqIAJBmAlqKAIANgIAIAIgAikDgAk3AoAEC0ECIQELIAFBAkYEQCACKALYAyIBQYCAgIB4cyEFDAELIAJB5AZqIAJB6ANqQeQA/AoAACACIBM2AowIIAIgEjYCiAggAiAuNwKACCACIBc2AvwHIAIgFDYC+AcgAiAbNgL0ByACIBk2AvAHIAIgFjYC7AcgAiAfNgLoByACIA02AuQHIAIgEDYC4AcgAiAgNgLcByACIBg2AtgHIAIgDjYC1AcgAiAlNgLQByACIAw2AswHIAIgCTYCyAcgAiAENgLgBiACQZgCaiACQeAGakHAAfwKAABBgICAgHghDQwDCyACQYGAgIB4NgLYBiACIAQ2AtwGIAJB3AZqENcEAkACQAJAAn8CQAJAAkACfwJ/AkACQAJAAkACQAJAAkACQEEVIAUgAUEAThtBFGsOAgECAAsgAkHYA2ogAkGACWpBwN3AABDZCCEBDA8LIAIoAuQDIgxFDQMgAkHoA2ogAigC4AMiBhC7ASACKALsAyEHIAIoAugDIg1BgICAgHhGBEAgByEBDA0LIAJBuAlqIAJBjARq/QACAP0LAwAgAkHICWogAkGcBGooAgA2AgAgAiAC/QAC/AP9CwOoCSACKAL4AyEFIAIoAvQDIQsgDEEBRg0CIAIoAvADIRkgAkHoA2oiCiAGQRBqENcBIAIoAuwDIgEgAigC6AMiEkGAgICAeEYNCxogAkHoCWogAkGIBGooAgA2AgAgAkHgCWogAkGABGoiESkCADcDACACIAL9AALwA/0LA9AJIAxBAkYNASAKIAZBIGoQwwEgAigC7AMhAyACKALoAyIUQYCAgIB4Rg0KIAIoAvgDIRAgAigC9AMhDgJAAn8CQAJAIAxBA0cEQCACKAL8AyEVIAIoAvADIRogCiAGQTBqEL4BIAIoAuwDIgggAigC6AMiBEGAgICAeEYNAxogAkG4BmogAkGQBGooAgA2AgAgAkGoBmogEf0AAgD9CwMAIAIgAv0AAvAD/QsDmAYgDEEERg0BQYCAgIB4IQkCQAJAQRUgBkFAayITKAIAIg9BgICAgHhzIA9BAE4bQRBrDgMGAAYBCyAGKAJEIRMLIAJB6ANqIBMQpAEgAigC7AMhEyACKALoAyIJQYGAgIB4Rg0CIAJBgApqIAJBjARqKAIANgIAIAIgAv0AAvwD/QsD8AkgCUGCgICAeEYNAiACKAL4AyEWIAIoAvQDIQ8gAigC8AMhGAwEC0EDQeTjwABBgIjIABCPBwwCC0EEQeTjwABBgIjIABCPByETCyAEBEAgCCAEQQEQ1gcLIBMLIQggFARAIAMgFEEBENYHCyAOQYCAgIB4ckGAgICAeEcEQCAQIA5BARDWBwsgCCEDDAsLIAJBsAhqIgYgAkGACmooAgA2AgAgAkGQCWoiGyACQbgJav0AAwD9CwMAIAJBoAlqIh8gAkHICWooAgA2AgAgAkH4CGoiCiACQegJaigCADYCACACQfAIaiIgIAJB4AlqKQMANwMAIAIgAv0AA/AJ/QsDoAggAiAC/QADqAn9CwOACSACIAL9AAPQCf0LA+AIIAJB2AhqIhEgAkG4BmooAgA2AgAgAkHICGoiFyACQagGav0AAwD9CwMAIAIgAv0AA5gG/QsDuAggAiAFNgLoBiACIAs2AuQGIAIgGTYC4AYgAiAHNgLcBiACIA02AtgGIAJBjAdqIB8oAgA2AgAgAkH8BmogG/0AAwD9CwIAIAIgAv0AA4AJ/QsC7AYgAiABNgKUByACIBI2ApAHIAJBsAdqIAooAgA2AgAgAkGoB2ogICkDADcCACACIAL9AAPgCP0LApgHIAIgCDYC0AcgAiAENgLMByACIBU2AsgHIAIgEDYCxAcgAiAONgLAByACIBo2ArwHIAIgAzYCuAcgAiAUNgK0ByACQfQHaiARKAIANgIAIAJB5AdqIBf9AAMA/QsCACACIAL9AAO4CP0LAtQHIAIgFjYCiAggAiAPNgKECCACIBg2AoAIIAIgEzYC/AcgAiAJNgL4ByACQZwIaiAGKAIANgIAIAIgAv0AA6AI/QsCjAggDEEFRwRAIAJBBTYC6AMgDEH7////AGpB/////wBxQQVqIAJB6ANqQfj3wAAQjwchASACQdgGahDcAkGAgICAeCENDA4LIAJBiAtqIAJB4AZqIgNBIGr9AAIA/QsDACACQfgKaiADQRBq/QACAP0LAwAgAkHQCmogAkHoCGr9AAMA/QsDACACQeAKaiAKKAIANgIAIAJBwApqIAJBtAdqIhRBEGopAgA3AwAgAkGYCmogF/0AAwD9CwMAIAJBqApqIBEoAgA2AgAgAiACKQPgCDcDyAogAiAC/QADuAj9CwOICiACIAP9AAIA/QsD6AogAiAU/QACAP0LA7AKIAJBqAtqIAYoAgA2AgAgAiAC/QADoAj9CwOYCyABIRQgByEBDA0LIAIoAuADIgFFBEBBgYCAgHghCUGAgICAeCESQYCAgIB4IQ5BgICAgHghBAwFCyACKALcAyEQIAFBBXQhESACQewGaiELIAJB4AZqIQZBACEKQYCAgIB4IQNBgICAgHghEkGAgICAeCEOQYCAgIB4IQRBgYCAgHghCQNAAkACQAJAAkACQAJAAkACQEEVIAogEGoiASgCACIFQYCAgIB4cyAFQQBOG0EBaw4PAQAAAgAAAAAAAAADBAUGAAsgASACQYAJakHA38AAENkIIQUgAkEBOgDYBiACIAU2AtwGDAYLIAJBADoA2AYgAkEFIAFBBGotAAAiBSAFQQVPGzoA2QYMBQsgAkEAOgDYBiACQgUgAUEIaikDACIuIC5CBVobPADZBgwECyACQdgGaiABQQhqKAIAIAFBDGooAgAQlgcMAwsgAkHYBmogAUEEaigCACABQQhqKAIAEJYHDAILIAJB2AZqIAFBCGooAgAgAUEMaigCABDRBQwBCyACQdgGaiABQQRqKAIAIAFBCGooAgAQ0QULIAItANgGQQFGBEAgAigC3AYhAUEBDAcLIAFBEGohBQJAAkACQAJAAkACQCACLQDZBg4FAAECAwQFCyADQYCAgIB4RwRAQazjwABBBRDRByEBQQEMDAsgAkHYBmogBRC7ASACKALcBiEBIAIoAtgGIgNBgICAgHhGBEBBgICAgHghA0EBDAwLIAJBqAZqIAtBEGr9AAIA/QsDACACQbgGaiALQSBqKAIANgIAIAIgC/0AAgD9CwOYBiACKALoBiEXIAIoAuQGIQwgAigC4AYhHyABIQcMBAsgEkGAgICAeEcEQEGx48AAQQYQ0QchAUEBDAsLIAJB2AZqIAUQ1wEgAigC3AYhASACKALYBiISQYCAgIB4RgRAQYCAgIB4IRJBAQwLCyACQcAJaiAGQRhqKAIANgIAIAJBuAlqIAZBEGopAgA3AwAgAiAG/QACAP0LA6gJIAEhFAwDCyAOQYCAgIB4RwRAQbfjwABBBRDRByEBQQEMCgsgAkHYBmogBRDDASACKALcBiEBIAIoAtgGIg5BgICAgHhGBEBBgICAgHghDkEBDAoLIAIoAuwGISAgAigC6AYhGyACKALkBiEZIAIoAuAGIRogASENDAILIARBgICAgHhHBEBBvOPAAEEDENEHIQFBAQwJCyACQdgGaiAFEL4BIAIoAtwGIQEgAigC2AYiBEGAgICAeEYEQEGAgICAeCEEQQEMCQsgAkGIBGogBkEgaigCADYCACACQfgDaiAGQRBq/QACAP0LAwAgAiAG/QACAP0LA+gDIAEhCAwBCyAJQYGAgIB4RwRAQQEhFUG/48AAQQMQ0QchAUEBIQVBASEKDAoLAn8CQAJAAkBBFSAFKAIAIhNBgICAgHhzIBNBAE4bQRBrDgMCAAIBCyABQRRqKAIAIQULIAJB2AZqIAUQpAEgAigC3AYiEyACKALYBiIJQYGAgIB4Rw0BGkEBIRUgEyEBQQEhBUEBIQoMDAtBgICAgHghCSACKALcBgshEyACQcgIaiALQRBqKAIANgIAIAIgC/0AAgD9CwO4CCACKALoBiEWIAIoAuQGIQ8gAigC4AYhGAsgCkEgaiIKIBFHDQALDAMLQQJB5OPAAEGAiMgAEI8HIQMMCAtBAUHk48AAQYCIyAAQjwcMCAtBAEHk48AAQYCIyAAQjwchAQwICyADQYCAgIB4Rg0AIAJBjAdqIAJBuAZqKAIANgIAIAJB/AZqIAJBqAZq/QADAP0LAgAgAiAC/QADmAb9CwLsBiACIBc2AugGIAIgDDYC5AYgAiAfNgLgBiACIAc2AtwGIAIgAzYC2AYCQAJAAkACQAJAAkAgEkGAgICAeEYiBUUEQCAOQYCAgIB4RiIKDQEgAiAgNgKUCSACIBs2ApAJIAIgGTYCjAkgAiAaNgKICSACIA02AoQJIAIgDjYCgAkgBEGAgICAeEYNAiACQeAGaiEBIAlBgYCAgHhHDQNBgICAgHghCQwEC0EBIQpBsePAAEEGEM8HIQEMBQtBt+PAAEEFEM8HIQEMAwtBvOPAAEEDEM8HIQEgAkGACWoQigYMAgsgAkGoC2ogAkHICGooAgA2AgAgAiAC/QADuAj9CwOYCwsgAkGIC2ogAUEgav0AAgD9CwMAIAJB+ApqIAFBEGr9AAIA/QsDACACQdAKaiACQbAJav0AAwD9CwMAIAJB4ApqIAJBwAlqKAIANgIAIAJBwApqIAJBkAlqKQIANwMAIAJBmApqIAJB+ANq/QADAP0LAwAgAkGoCmogAkGIBGooAgA2AgAgAiACKQOoCTcDyAogAiAC/QACgAn9CwOwCiACIAL9AAPoA/0LA4gKIAIgAf0AAgD9CwPoCiAHIQEgAyENDAoLIBJFDQAgFCASQQEQ1gcLIAJB2AZqEJEGQQAMAgtBgICAgHghA0Gs48AAQQUQzwchAUEBCyEKQQEhBUEBCyEVIAlBgYCAgHhGDQELIAlBgICAgHhGDQAgCQRAIBMgCUEBENYHCyAPRQ0AIBYgD0EBENYHCwJAIARBgICAgHhyQYCAgIB4Rg0AAkAgCEEEaygCACIGQXhxIgtBBEEIIAZBA3EiBhsgBGpPBEAgBkEAIAsgBEEnaksbDQEgCBC0AgwCCwwMCwwMCwJAIA5BgICAgHhHIApxRQ0AAkAgDgRAIA1BBGsoAgAiBkF4cSILQQRBCCAGQQNxIgYbIA5qSQ0NIAZBACALIA5BJ2pLGw0BIA0QtAILIBlBgICAgHhyQYCAgIB4Rg0BIBsgGUEBENYHDAELDAwLIAVFIBJBgICAgHhyQYCAgIB4RnJFBEAgFCASQQEQ1gcLQYCAgIB4IQ0CQCADQYCAgIB4RyAVcUUNACADBEAgB0EEaygCACIGQXhxIgtBBEEIIAZBA3EiBhsgA2pJDQwgBkEAIAsgA0EnaksbDQ0gBxC0AgsgDEUNACAXQQRrKAIAIgdBeHEiA0EEQQggB0EDcSIHGyAMakkNCyAHQQAgAyAMQSdqSxtFBEAgFxC0AgwFC0GgjMgAQS5B0IzIABCiCAwJCwwDCyASBEAgASASQQEQ1gcLIAMLIQEgDQRAIAdBBGsoAgAiA0F4cSIMQQRBCCADQQNxIgMbIA1qSQ0JIANBACAMIA1BJ2pLGw0KIAcQtAILIAtFDQAgBUEEaygCACIHQXhxIgNBBEEIIAdBA3EiBxsgC2pJDQggB0EAIAMgC0EnaksbDQkgBRC0AgsgAkGEC2ogAkGQCWr9AAMA/QsCACACQZQLaiACQaAJaigCADYCACACQdAKaiACQegIav0AAwD9CwMAIAJB4ApqIAJB+AhqKAIANgIAIAJBqApqIAJB2AhqKAIANgIAIAJBmApqIAJByAhq/QADAP0LAwAgAiAC/QADgAn9CwL0CiACIAIpA+AINwPICiACIAL9AAO4CP0LA4gKIAJBqAtqIAJBsAhqKAIANgIAIAIgAv0AA6AI/QsDmAtBgICAgHghDQsgDUGAgICAeEcNAgsgAkGBgICAeDYC0AQgAiABNgLUBAJAAkACQAJAIAJB0ARqIgEoAgBBgICAgHhrDgIAAgELIAFBBGoQlAIMAgsgARDcAgwBCyABQQRqENcECyMAQRBrIgQkAEE6EH4iAUUEQAALIAFBOGpBzKrBAC8AADsAACABQTBqQcSqwQApAAA3AAAgAUEgakG0qsEA/QAAAP0LAAAgAUEQakGkqsEA/QAAAP0LAAAgAUGUqsEA/QAAAP0LAAAgBEE6NgIMIAQgATYCCCAEQTo2AgQgBEEEahDFASAEQRBqJAAhFSACQdgDahCiAwsgACAVNgIEIABBgYCAgHg2AgAgAEEIaiACQZgCakHAAfwKAAAMAwsgAkH4BGogAkGIC2r9AAMA/QsCACACQegEaiACQfgKav0AAwD9CwIAIAJBmAVqIAJB0Apq/QADAP0LAgAgAkGoBWogAkHgCmooAgA2AgAgAkG8BWogAkHACmopAwA3AgAgAkHcBWogAkGYCmr9AAMA/QsCACACQewFaiACQagKaigCADYCACACIAL9AAPoCv0LAtgEIAIgAikDyAo3ApAFIAIgAv0AA7AK/QsCrAUgAiAC/QADiAr9CwLMBSACQZQGaiACQagLaigCADYCACACIBI2AogFIAIgFDYCjAUgAiAENgLEBSACIAg2AsgFIAIgCTYC8AUgAiATNgL0BSACIBg2AvgFIAIgDzYC/AUgAiAWNgKABiACIAL9AAOYC/0LAoQGIAJBmAJqIAJB2ARqQcAB/AoAAAsgAkHYA2oQogMgAiABNgJUIAIgDTYCUCACQdgAaiACQZgCakHAAfwKAAACQCACKAJIIgEgAigCRCIESQRAIAJB1ABqIQggAigCQCEHA0AgASAHai0AAEEJayIDQRdLQQEgA3RBk4CABHFFcg0CIAQgAUEBaiIBRw0ACyACIAQ2AkgLIAAgAkHQAGpByAH8CgAADAILIAIgATYCSCACQQhqIAcgBCABQQFqIgEgBCABIARJGxCGAiACKAIMIQQgAigCCCEHQRQQfiIBRQ0AIAEgBzYCDCABQRY2AgAgACABNgIEIABBgYCAgHg2AgAgASAENgIQIA1BgICAgHhGBEAgCBCUAgwCCyACQdAAahDcAgwBCwALAkAgAigCNCIABEAgAigCOCIBQQRrKAIAIgRBeHEiB0EEQQggBEEDcSIEGyAAakkNAiAEQQAgByAAQSdqSxsNASABELQCCyACQbALaiQADwsMAQtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALykIDGn8IfgJ7IwBBoAJrIgMkACADQQA2AhQgA0KAgICAwAA3AgwgA0GAgICAeDYCGCADQQA2AmAgA0EAOwFcIAMgAjYCWCADQQA2AlQgA0EBOgBQIANBCjYCTCADIAI2AkggA0EANgJEIAMgAjYCQCADIAE2AjwgA0EKNgI4IANBJGohFiADQcsAaiEXIANBzABqIRkgA0EcaiIVQRhqIRgCQAJAAkACQAJAAn8CQAJAAkADQCAXIAMtAFAiE2ohGiADKAJAIRsgAygCWCELIAMtAFwhESADKAJIIQcgAygCPCEKA0ACQCAGIAdLIAcgG0tyRQRAIBotAAAiD0GBgoQIbCEMAkAgE0EESwRAA0AgBiAKaiEFAkACQAJAAkAgByAGayIQQQhPBEAgBUEDakF8cSIEIAVrIghFDQFBACECA0AgAiAFai0AACAPRg0FIAggAkEBaiICRw0ACyAIIBBBCGsiEksNAwwCCyAGIAdGBEAgByEGDAcLQQAhAgNAIAIgBWotAAAgD0YNBCAQIAJBAWoiAkcNAAsgByEGDAYLIBBBCGshEkEAIQgLA0BBgIKECCAEKAIAIAxzIgFrIAFyQYCChAggBEEEaigCACAMcyIBayABcnFBgIGChHhxQYCBgoR4Rw0BIARBCGohBCAIQQhqIgggEk0NAAsLIAggEEYEQCAHIQYMBAsgBSAIaiEEIAcgCGsgBmshAUEAIQICQANAIAIgBGotAAAgD0YNASABIAJBAWoiAkcNAAsgByEGDAQLIAIgCGohAgsgEyACIAZqQQFqIgZNIAYgG01xRQRAIAYgB00NAQwDCwsgE0EEQdzBxwAQogoACwNAIAYgCmohBQJAIAcgBmsiEEEHTQRAIAYgB0YEQCAHIQYMBAtBACECA0AgAiAFai0AACAPRg0CIBAgAkEBaiICRw0ACyAHIQYMAwsCQAJAIAVBA2pBfHEiBCAFayIIBEBBACECA0AgAiAFai0AACAPRg0EIAggAkEBaiICRw0ACyAIIBBBCGsiEksNAgwBCyAQQQhrIRJBACEICwNAQYCChAggBCgCACAMcyIBayABckGAgoQIIARBBGooAgAgDHMiAWsgAXJxQYCBgoR4cUGAgYKEeEcNASAEQQhqIQQgCEEIaiIIIBJNDQALCyAIIBBGBEAgByEGDAMLIAUgCGohBCAHIAhrIAZrIQFBACECAkADQCACIARqLQAAIA9GDQEgASACQQFqIgJHDQALIAchBgwDCyACIAhqIQILAkAgAiAGakEBaiIGIBNJIAYgG0tyDQAgCiAGIBNraiAZIBMQkAgNACADIAY2AlQgAyAGNgJEQQAhDyAGIRAgBiECDAQLIAYgB00NAAsLIAMgBjYCRAtBASEPIANBAToAXSARQQFxBEAgCSEQIAshAgwBCyAJIRAgCyICIAlGDQMLIAkgCmohDCACIAlrIQUCQCACIAlGDQAgDCAFQQFrIgJqLQAAQQpHDQAgBUECayIBIAIgAgR/IAxBACABIAxqLQAAQQ1GGwVBAAsiARshBSABIAwgARshDAsgDEUNAiADIA5BAWoiFDYCYCAFIAxqIQRBACEBIAwhAgJAAkAgBUUEQEEAIQgMAQsDQCABIggCfyACIgEsAAAiBUEATgRAIAVB/wFxIQUgAUEBagwBCyABLQABQT9xIQIgBUEfcSEJIAVBX00EQCAJQQZ0IAJyIQUgAUECagwBCyABLQACQT9xIAJBBnRyIQIgBUFwSQRAIAIgCUEMdHIhBSABQQNqDAELIAlBEnRBgIDwAHEgAS0AA0E/cSACQQZ0cnIhBSABQQRqCyICIAFraiEBAkAgBUEgRiAFQQlrQQVJcg0AIAVBgAFJDQICQAJAAkACQCAFQQh2IglBFmsOGwEGBgYGBgYGBgYDBgYGBgYGBgYGBgYGBgYGAgALIAkNBSAFQf8BcUGcqccAai0AAEEBcUUNBQwDCyAFQYAtRw0EDAILIAVBgOAARw0DDAELIAVB/wFxQZypxwBqLQAAQQJxRQ0CCyACIARHDQALQQAhCEEAIQEMAQsgAiAERg0AA0ACQCAEIglBAWsiBCwAACIFQQBIBEAgBUE/cQJ/IAlBAmsiBC0AACISwCIFQUBOBEAgEkEfcQwBCyAFQT9xAn8gCUEDayIELQAAIgXAIg1BQE4EQCAFQQ9xDAELIA1BP3EgCUEEayIELQAAQQdxQQZ0cgtBBnRyC0EGdHIhBQsCQCAFQSBGIAVBCWtBBUlyDQAgBUGAAUkNAQJAAkACQAJAIAVBCHYiEkEWaw4bAAUFBQUFBQUFBQIFBQUFBQUFBQUFBQUFBQUBAwsgBUGALUYNAwwECyAFQYDgAEYNAgwDCyAFQf8BcUGcqccAai0AAEECcQ0BDAILIBINASAFQf8BcUGcqccAai0AAEEBcUUNAQsgAiAERw0BDAILCyABIAJrIAlqIQELIAMgASAIayIJNgJsIAMgCCAMaiISNgJoAkACQCAORQRAIAlBA0YEQCASQfDaxwBBAxCQCEUNAgsgA0EANgLwASADQQE2AuQBIANBiNvHADYC4AEgA0IENwLoASADQeABahDHByEBIABBgICAgHg2AqwBIAAgATYCAAwGCyAJDQELIBAhCSAUIQ4gD0UNAQwDCwsgASAMaiEGQQAhDkEAIQFBACEHIBIiBCECQQAhC0EAIQwDQCALIQ0CfwJAIAxBAXFFBEBBASEMIAIgBkZFBEADQCABIgUCfyACIgEsAAAiC0EATgRAIAtB/wFxIQQgAUEBagwBCyABLQABQT9xIQIgC0EfcSEEIAtBX00EQCAEQQZ0IAJyIQQgAUECagwBCyABLQACQT9xIAJBBnRyIQIgC0FwSQRAIAIgBEEMdHIhBCABQQNqDAELIARBEnRBgIDwAHEgAS0AA0E/cSACQQZ0cnIhBCABQQRqCyICIAFraiEBIARBCWsiC0EXTUEAQQEgC3RBn4CABHEbDQMCQCAEQYABSQ0AAkACQAJAAkAgBEEIdiILQRZrDhsABAQEBAQEBAQEAgQEBAQEBAQEBAQEBAQEBAEDCyAEQYAtRg0HDAMLIARBgOAARg0GDAILIARB/wFxQZypxwBqLQAAQQJxDQUMAQsgCw0AIARB/wFxQZypxwBqLQAAQQFxDQQLIAIgBkcNAAsgBiEEC0EBIQ4gBiECIAkhBSANDAILQQBBAEGQ28cAEL8HAAsgAiEEIAEhB0EAIQwgAQshCyAFIA1GDQALQSAQfiIKRQ0FIAogBSANazYCBCAKIA0gEmo2AgBBASEPQQQhDQNAIAchAiAOIQwDQCACIQgCfwJAIAxBAXFFBEBBASEMIAQgBkcEQANAIAEiCwJ/IAQiASwAACIFQQBOBEAgBUH/AXEhBSABQQFqDAELIAEtAAFBP3EhAiAFQR9xIQQgBUFfTQRAIARBBnQgAnIhBSABQQJqDAELIAEtAAJBP3EgAkEGdHIhAiAFQXBJBEAgAiAEQQx0ciEFIAFBA2oMAQsgBEESdEGAgPAAcSABLQADQT9xIAJBBnRyciEFIAFBBGoLIgQgAWtqIQEgBUEJayICQRdNQQBBASACdEGfgIAEcRsNAwJAIAVBgAFJDQACQAJAAkACQCAFQQh2IgJBFmsOGwAEBAQEBAQEBAQCBAQEBAQEBAQEBAQEBAQEAQMLIAVBgC1GDQcMAwsgBUGA4ABGDQYMAgsgBUH/AXFBnKnHAGotAABBAnENBQwBCyACDQAgBUH/AXFBnKnHAGotAABBAXENBAsgBCAGRw0ACwtBASEOIAkhCyAIDAILIAooAgAhAQJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAooAgRBBmsOBQMAARAEEAsgAUGg28cAQQcQkAgNAQwRCyABKQAAQu/EqfuVzZuz7wBRDRAgASkAAELw5L2D18ycuvkAUg0OIA9BAkkNAyAKKAIMIgFBBEYEQCAKKAIIKAAAQezSzaMHRg0GCyAPQQNHDQMgAygCGEGAgICAeEcNBCADQQA2AvABIANBATYC5AEgA0H43McANgLgASADQgQ3AugBIANB4AFqEMcHDA8LIAFBp9vHAEEHEJAIIA9BA0dyDQ0gAygCGCECIANBgICAgHg2AhggAkGAgICAeEcEQCADKAIUIgEgAygCDEYEQCADQQxqQdDdxwAQtAYLIAMoAhAgAUEFdGoiBCACNgIAIAQgFSkCADcCBCAEQQxqIBVBCGr9AAIA/QsCACAEQRxqIBgoAgA2AgAgAyABQQFqNgIUCyAKKAIQIQIgCigCDCEMIAooAgghC0EAIQQgCigCFCIBDgILBQYLIAFBla/HAEEGEJAIRQ0HDAwLIAFBttvHAEEKEJAIDQsgDUUNEyAKQQRrKAIAIgFBeHEiBCANQQN0IgJBBEEIIAFBA3EiARtqSQ0aIAFBACAEIAJBJ2pLGw0bIAoQtAIMEwsgA0EBNgLkASADQZjdxwA2AuABIANCATcC7AEgAyADQegAaq1CgICAgCCENwOIAiADIANBiAJqNgLoASADQYgBaiIBIANB4AFqEOYGIAEQwwcMCwsgAyAKKAIIIgI2AoACIAMgATYChAICfwJAAkACQAJAAkACQAJAAkACQCABQQNrDgQDAAECBwsgAigAAEHj0IWTB0cNA0EAIQRBAQwICyACQajaxwBBBRCQCEUEQEEBIQRBAQwICyACQa3axwBBBRCQCA0DQQIhBEECDAcLIAJBstrHAEEGEJAIDQNBAyEEQQIMBgsgAkG42scAQQMQkAgNA0EEIQRBBAwFCyACKAAAQfXSuaMHRw0CQQUhBEEEDAQLIAJBu9rHAEEFEJAIDQFBBiEEQQQMAwsgAkHA2scAQQYQkAhFDQELIANBATYC5AEgA0Ho2scANgLgASADQgE3AuwBIAMgA0GAAmqtQoCAgIAghDcDmAIgAyADQZgCajYC6AEgA0GIAmoiASADQeABahDiBCABEMMHDAwLQQchBEEICyECIAooAhAhASAKKAIUIQggAyACIAMoAjQiBmo2AjQgCEEASA0FAkAgCEUEQEEBIQsMAQsgCBB+IgtFDRYLIAgEQCALIAEgCPwKAAALIAMoAiwiDiADKAIkRgRAQQAhBSMAQSBrIhEkAAJAAkBBBCAWKAIAIglBAXQiASABQQRNGyICrUIUfiIdQiCIUEUNACAdpyIBQfz///8HSw0AIBEgCQR/IBEgCUEUbDYCHCARIBYoAgQ2AhRBBAVBAAs2AhggEUEIakEEIAEgEUEUahDSByARKAIIQQFHDQEgESgCEBogESgCDCEFCyAFQZTaxwAQ0AkACyARKAIMIQEgFiACNgIAIBYgATYCBCARQSBqJAALIAMoAiggDkEUbGoiASAEOgAQIAEgBjYCDCABIAg2AgggASALNgIEIAEgCDYCACADIA5BAWo2AiwMCwsgA0EANgLwASADQQE2AuQBIANByN3HADYC4AEgA0IENwLoASADQeABahDHBwwJC0EBIQQgAi0AAEEraw4DBQEFAQsgAi0AAEErRgRAIAFBAWshBCACQQFqIQIgAUEKSQ0BDAQLIAEiBEEJTw0DC0EAIQEDQCACLQAAQTBrIgZBCUsEQEEBEIYIDAgLIAJBAWohAiAGIAFBCmxqIQEgBEEBayIEDQALDAQLIA9BA0cNBCAKQQhqIQECQCAKKAIMQRRHDQAgASgCAEHg3ccAQRQQkAgNACAKQRBqIQEgCigCFEEDRgRAQQEhHCABKAIAQfTdxwBBAxCQCEUNCAsgA0EBNgLkASADQZDexwA2AuABIANCATcC7AEgAyABrUKAgICAIIQ3A4gCIAMgA0GIAmo2AugBIANB/ABqIgEgA0HgAWoQ4gQgARDDBwwGCyADQQE2AuQBIANBsN7HADYC4AEgA0IBNwLsASADIAGtQoCAgIAghDcDiAIgAyADQYgCajYC6AEgA0HwAGoiASADQeABahDiBCABEMMHDAULQfykyAAQtwgAC0EAIQEgBCEFA0AgBUUNAiACLQAAQTBrIglBCUsEQEEBEIYIDAULQQIhBCABrUIKfiIeQiCIpw0BIAJBAWohAiAFQQFrIQUgCSAepyIGaiIBIAZPDQALCyAEEIYIDAILIAxBAE4EQAJAIAxFBEBBASECDAELIAwQfiICRQ0OCyAMBEAgAiALIAz8CgAACyADQQA2AjQgAyABNgIwIANBADYCLCADQoCAgIDAADcCJCADIAw2AiAgAyACNgIcIAMgDDYCGAwDC0H8pMgAELcIAAsgA0EBNgLkASADQdjexwA2AuABIANCATcC7AEgAyADQegAaq1CgICAgCCENwOIAiADIANBiAJqNgLoASADQZQBaiIBIANB4AFqEOIEIAEQwwcLIQEgAEGAgICAeDYCrAEgACABNgIAIA1FDQcgCiANQQN0QQQQ1gcMBwsCQCANBEAgCkEEaygCACIBQXhxIgQgDUEDdCICQQRBCCABQQNxIgEbakkNDiABQQAgBCACQSdqSxsNASAKELQCCyADKAJgIQ4gAygCVCEJIAMoAkQhBiADLQBdQQFxRQ0FDAYLDA0LIAEhB0EAIQwgAQshAiAIIAtGDQALAkACQCANIA9HBEAgDSECDAELIA1BAXRBASANGyICQYCAgIABTw0BQQQgAiACQQRNGyICQQN0IQUCfyANBEAgCiANQQN0QQQgBRDQAgwBCyAFEH4LIgpFDQgLIAogD0EDdGoiBSALIAhrNgIEIAUgCCASajYCACAPQQFqIQ8gAiENDAELCwtB/KHIABC3CAALIAMoAhghAiADQYCAgIB4NgIYIAJBgICAgHhHBEAgAygCFCIBIAMoAgxGBEAgA0EMakHA28cAELQGCyADKAIQIAFBBXRqIgQgAjYCACAEIBUpAgA3AgQgBEEMaiAVQQhq/QACAP0LAgAgBEEcaiAVQRhqKAIANgIAIAMgAUEBajYCFAsgHA0BIANBADYCSCADQQE2AjwgA0Ho28cANgI4IANCBDcCQCADQThqEMcHIQEgAEGAgICAeDYCrAEgACABNgIACwJAIAMoAhgiAEGAgICAeEYNACAABEAgAygCHCAAQQEQ1gcL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AygAJCIGQYCAgP57IAZB/////wdxGzYCICABIAMoACgiBkGAgID+AyAGQf////8HcRs2AiQgBEEobEGgiMEAaiEPIAJBgCBrQQp2QQFqIRFBACEGIClBCnRBgCBqIiohBAJAA0ACQCAIIClHBEAgESAIQQFqIghHDQEgAUEANgJAIAFBATYCNCABQciPwQA2AjAgAUIENwI4IAFBMGoQxQchAwwECyABQQA6ADggASAGNgI0IAEgDTYCMCAAIAFBMGoQhgQgKUUNAkGAICErQQEhLgJAA0AgKyIEQYAIaiIrIAAoAswBIgNLBEAgAUEANgJAIAFBATYCNCABQciPwQA2AjAgAUIENwI4IAFBMGoQxQchAwwGCyAAKALIASIGIARqIgJBGGooAAAiEkUEQCAPKAIkIRILIAMgBEEkciINSQRAIAFBADYCQCABQQE2AjQgAUHkrcEANgIwIAFCBDcCOCABQTBqEMUHIQMMBgsgAyAEQShyIhFJBEAgAUEANgJAIAFBATYCNCABQeStwQA2AjAgAUIENwI4IAFBMGoQxQchAwwGCyADIARBKnJJBEAgAUEANgJAIAFBATYCNCABQeStwQA2AjAgAUIENwI4IAFBMGoQxQchAwwGCyACQQRqKAAAIQRBACEIIA8oAgggDygCACAPKAIEamogBiARai8AACIiQQNNBH8gIkECdEGYicEAaigCAAUgCAsgDygCEGxqQQRqIjWtIAStfiI7QiCIUEUEQCABQQA2AkAgAUEBNgI0IAFBxInBADYCMCABQgQ3AjggAUEwahDFByEDDAYLAkAgAyAqIgQgBiANaigAACIwQQJ0IgkgAkEMaigAACINIAJBFGovAABsamoiESA7pyIHaiIqTwRAIAIoAAAhCCACQRBqKgAAITggAkEIaigAACEvIAJBIGooAAAhGyANRQRAQQAhHgwCCyADIAQgCWoiAiANQQxsak8EQCACIAZqIR4gDUEDbCEfDAILIAFBADYCQCABQQE2AjQgAUHsjsEANgIwIAFCBDcCOCABQTBqEMUHIQMMBwsgAUEANgJAIAFBATYCNCABQYyPwQA2AjAgAUIENwI4IAFBMGoQxQchAwwGCwJAAkAgESAqTQRAAkAgCEEDbCINQf////8DSw0AIAhBDGwiAkH9////B08NAAJAAkACQAJAAkACfyAC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AUGDgICAeEYEQAJAIAAoAvAEIgZBBEkNAAJAAkAgACgC7AQiBC8AACAELQACQRB0ckHw2OUDRgRAIAZBC0kNAyAGQQprIQNBACEBAkADQCABIARqQYyVwQBBCxCQCEUNASADIAFBAWoiAUcNAAsgBkH//wNNDQQgAkEANgLYByACQQE2AswHIAJBhJXBADYCyAcgAkIENwLQByACQcgHahDFByEDDAkLIAEgBksNASACQcgHaiAEIAEQnwMgAikCzAchLCACKALIBwRAICwQggghAwwJCyACQcgHaiAspyAsQiCIpxBPIAIoAsgHIQMgAigC9AgiBEGAgICAeEYEQCADRQ0EDAkLIAJBBHIgAkHIB2oiCEEEckGoAfwKAAAgAiAC/QAD+Aj9CwOwASACIAQ2AqwBIAIgAzYCAAJAAkACQCACLQC5ASIJRQRAIAJB8ABqIQUgAi0AuAENASACKAKoASEGIAIoApQBIQQgAkGIBmoiAyAFEO0DIAggBiAEIAMQowEgAigCyAchBSACKAKkDCIMQYCAgIB4Rg0DIAIoAswHIQMgAkH4BGogAkHQB2pBjAH8CgAAIAIpA+AIISwgAigC3AghDiACQagDaiACQegIakHMAfwKAAAgAigCuAohCiACKAK0CiELIAJBmAJqIAJBvApqQZAB/AoAACACKALMCyENIAJBwAFqIAJB0AtqQdQA/AoAACACKQOoDCEtIAJBADoA0AcgAiANNgLMByACIAY2AsgHIABB9ARqIAgQzAQMBgsgAkGIBmoiAyACQcAB/AoAACACQcgHaiADEHYgAigCzAchAyACKALIByIFQYCAgIB4Rw0BIANFDQYMCwsgAigCqAEhCCACKAKUASEGIAJBiAZqIgMgBRDtAyACQcgHaiIEIAggBiADEJcCIAIoAsgHIQUgAigC3AgiDkGAgICAeEYNASACKALMByEDIAJB+ARqIAJB0AdqQYwB/AoAACACKQPgCCEsIAJBADoA0AcgAkEANgLMByACIAg2AsgHIABB9ARqIAQQzARBgICAgHghDAwECyACQfgEaiACQdAHakGMAfwKAAAgAikC4AghLCACKALcCCEOIAJBqANqIAJB6AhqQcwB/AoAACACKAK0CiELIAIoArgKIQogAkEAOgDQByACIAo2AswHIAIgCzYCyAcgAEH0BGogAkHI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AuwEIAAoAvAEIAcQsQQhKCABIAAoAqgEIg5PDQQgACgCpAQgD2ogKEO7bpA+lEMAAAA/kjgCACAAKALgAyAALQDkAyAAKALsBCAAKALwBCAHELEEISggACgCqAQiDiAETQRAIAQhAQwFCyAAKAKkBCATaiAoQ7tukD6UQwAAAD+SOAIAIAAoAugDIAAtAOwDIAAoAuwEIAAoAvAEIAcQsQQhKCAAKAKoBCIOIANNBEAgAyEBDAULIAAoAqQEIBBqIChDu26QPpRDAAAAP5I4AgAgACgCwAMgAC0AxAMgACgC7AQgACgC8AQgBxCxBCEoAkACQAJAAkACQCABIAAoArQEIg5PDQAgACgCsAQgD2ogKBCmBDgCACAAKALIAyAALQDMAyAAKALsBCAAKALwBCAHELEEISggACgCtAQiDiAEIgFNDQAgACgCsAQgE2ogKBCmBDgCACAAKALQAyAALQDUAyAAKALsBCAAKALwBCAHELEEISggACgCtAQiDiADIgFNDQAgACgCsAQgEGogKBCmBDgCACAAKAIgIAAtACQgACgC7AQgACgC8AQgBxCxBCEoIAAoAiggAC0ALCAAKALsBCAAKALwBCAHELEEISkgACgCMCAALQA0IAAoAuwEIAAoAvAEIAcQsQQhKiAAKAI4IAAtADwgACgC7AQgACgC8AQgBxCxBCErIAVBAnQiASAAKALABCIDSQ0BDAILIAEgDkH4lsEAEL8HAAsgACgCvAQgAUECdGogKCAoICiUICkgKZSSICogKpSSICsgK5SSkSIolTgCACABQQFyIgQgACgCwAQiA08EQCAEIQEMAQsgACgCvAQgBEECdGogKSAolTgCACABQQJyIgQgACgCwAQiA08EQCAEIQEMAQsgACgCvAQgBEECdGogKiAolTgCACABQQNyIgEgACgCwAQiA08NACAAKAK8BCABQQJ0aiArICiVOAIAIAAtAOQCIgFBCEcNAQwCCyABIANB6JbBABC/BwALIAAtAKQDIRUgACgCoAMgAC0AnAMhFyAAKAKYAyAALQCUAyEZIAAoApADIAAtAIwDIQsgACgCiAMgAC0AhAMhDiAAKAKAAyAALQD8AiESIAAoAvgCIAAtAPQCIRMgACgC8AIgAC0A7AIhESAAKALoAiAAKALgAiABIAAoAuwEIAAoAvAEIAcQsQQhKCAF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qAUgBEECdGogKDgCACAbIAAoAswFIAAoAtAFIAcQsQQhKCABQQVqIgQgACgCrAUiA08EQCAEIQEMBQsgACgCqAUgBEECdGogKDgCACAZIAAoAswFIAAoAtAFIAcQsQQhKCABQQZqIgQgACgCrAUiA08EQCAEIQEMBQsgACgCqAUgBEECdGogKDgCACAXIAAoAswFIAAoAtAFIAcQsQQhKCABQQdqIgQgACgCrAUiA08EQCAEIQEMBQsgACgCqAUgBEECdGogKDgCACAVIAAoAswFIAAoAtAFIAcQsQQhKCABQQhqIgEgACgCrAUiA08NBCAAKAKoBSABQQJ0aiAoOAIACyAALQDMAiIBQQhHBEAgAC0AvAMhHSAAKAK4AyAALQC0AyEfIAAoArADIAAtAKwDISEgACgCqAMgAC0ApAMhIyAAKAKgAyAALQCcAyElIAAoApgDIAAtAJQDIScgACgCkAMgAC0AjAMhFiAAKAKIAyAALQCEAyEYIAAoAoADIAAtAPwCIRogACgC+AIgAC0A9AIhDSAAKALwAiAALQDsAiELIAAoAugCIAAtAOQCIRAgACgC4AIgAC0A3AIhEiAAKALYAiAALQDUAiEEIAAoAtACIAAoAsgCIAEgACgCzAUgACgC0AUgBxCxBCEoIAVBD2wiASAAKAK4BSIFTw0CIAAoArQFIAFBAnRqICg4AgAgBCAAKALMBSAAKALQBSAHELEEISggAUEBaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANBAnRqICg4AgAgEiAAKALMBSAAKALQBSAHELEEISggAUECaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANBAnRqICg4AgAgECAAKALMBSAAKALQBSAHELEEISggAUEDaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANBAnRqICg4AgAgCyAAKALMBSAAKALQBSAHELEEISggAUEEaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANBAnRqICg4AgAgDSAAKALMBSAAKALQBSAHELEEISggAUEFaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANBAnRqICg4AgAgGiAAKALMBSAAKALQBSAHELEEISggAUEGaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANB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a0EJEJAIDQggCCECA0ACQCABQS8gCyACENADQQEhHUEAISIgASgCAEEBcUUEQAwBCwJAIAEoAgQiAiAITw0AIAIgC2otAABBL0cNACABIAI2AqgEIAEgCzYCpAQgAUECNgLUAiABQciowQA2AtACIAFCATcC3AIgASABQaQEaq1CgICAgCCENwOoAiABIAFBqAJqNgLYAiABQeAAaiABQdACahDiBCABKAJgIgJBgICAgHhGDQEgASkCZCIpQiCIpyEJICmnIR0gAiEiDAELIAIgCE0NAQsLIAFB0AJqIAFBGGogCyAIEPAEIAFB2ABqIAFB4AJqKAIANgIAIAEgASkD2AI3A1ACQAJAIAEpA9ACIilCA1EEQCABQdAAahDCByECDAELIAFB9ABqIAFB5AJqQbQB/AoAACABQfAAaiABQdgAaigCADYCACABICk3A2AgASABKQNQNwNoIAFBADYCsAIgAUKAgICAEDcCqAIgAUHQAmogAUHgAGogAUGoAmoQogEgASgC0AJBAUYEQCABKQLUAhCDCCECIAEoAqgCIgAEQCABKAKsAiAAQQEQ1gcLIAFB4ABqEIgCDAELIAEoAqgCIScgASgCrAIhKCABKAKwAiECIAFB4ABqEIgCIAFBADYCsAIgASACNgKsAiABICg2AqgCIAFB0AJqIAFBqAJqEE4gASgC1AIhAgJAIAEoAtACIgRBgYCAgHhGBEAgAhDXByECDAELIAFB6ABqIAFB2AJqQcAB/AoAACABIAI2AmQgASAENgJgIAFB5ABqIQMgAQJ7QYDRyQAoAgBBAUYEQEGI0ckA/QADAAwBCyABQdACahDuBkGA0ckAQgE3AwBBkNHJACABKQPYAjcDACAB/QAE0AILIir9CwO4AkGI0ckAICr9HQBCAXw3AwAgAUGYpcgA/QADAP0LA6gCAkAgAUHgAGogHSAJIAFBGGogAUGoAmoiBRD/BCICBEAgBRCLBCAEQYCAgIB4Rw0BIAMQlAIMAgsgASABQagCajYCzAIgBEGAgICAeEcEQCABQdACaiABQeAAakHIAfwKAAAgASgCuAMiJUGAgICAeEYNBCABKALAA0ERRw0EIAEoAoADIQYgASgCvANBzqrBAEEREJAIDQRBACEJIAEoAvADIgVBgICAgHhGDQggASgClAQiAkEtTwRAQQMhCQwJCyACQRdLBEBBAiEJDAkLIAJBCEshCQwICyABQdACaiADQbQB/AoAACABKAKABCEGIAEoAtQDIhJBgICAgHhGDQZBAyEMIAEtAPgDIgJBA08NBkECIAJBAEcgAkECRhshDAwGCyABQeAAahDcAgsgJ0UNACAoICdBARDWBwsgIgRAIB0gIkEBENYHCyALIAhBARDWBwwOCyABQQA2ArQEIAFBATYCqAQgAUHMrMEANgKkBCABQgQ3AqwEIAFBpARqEMUHIQJBAAwECyABQUBrEMIHIQIMDAtB/KTIABC3CAwECyABQQA6AKwEIAEgDDYCqAQgASAGNgKkBCAAIAFBpARqIgIQzAQgAiABQagCaiABKALgAiIeIAEoAuQCEMkEIAEoAqgEIQNBASEFAkAgASgCpAQiBEGAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBBAIAEoAqgEIRMgASgCpAQiFEGAgICAeEYEQEEoEH4iAkUNBSACIBM2AiQgAkEPNgIgIAJB36rBADYCHCACQQM2AgQgAkGYgsEANgIAIARFDQEgAyAEQQEQ1gcMAQsgASgCrAQhDSAEBEAgAyAEQQEQ1gcLIAFBpARqIAFBqAJqIAEoAuwCIAEoAvACEMkEIAEoAqgEIQMCQCABKAKkBCIEQYCAgIB4RgRAIAMhAgwBCyABQaQEaiADIAEoAqwEEEAgASgCqAQhFSABKAKkBCIWQYCAgIB4RgRAQSgQfiICRQ0GIAIgFTYCJCACQQ82AiAgAkHuqsEANgIcIAJBAzYCBCACQZiCwQA2AgAgBEUNASADIARBARDWBwwBCyABKAKsBCEOIAQEQCADIARBARDWBwsgAUGkBGogAUGoAmogASgCkAMgASgClAMQyQQgASgCqAQhAwJAIAEoAqQEIgRBgICAgHhGBEAgAyECDAELIAFBpARqIAMgASgCrAQQQCABKAKoBCEXIAEoAqQEIhhBgICAgHhGBEBBKBB+IgJFDQcgAiAXNgIkIAJBDTYCICACQf2qwQA2AhwgAkEDNgIEIAJBmILBADYCACAERQ0BIAMgBEEBENYHDAELIAEoAqwEIREgBARAIAMgBEEBENYHCyABQaQEaiABQagCaiABKAKoAyABKAKsAxDJBCABKAKoBCEDAkAgASgCpAQiCkGAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBBAIAEoAqgEIRkgASgCpAQiGkGAgICAeEYEQEEoEH4iAkUNCCACIBk2AiQgAkEMNgIgIAJBiqvBADYCHCACQQM2AgQgAkGYgsEANgIAIApFDQEgAyAKQQEQ1gcMAQsgASgCrAQhBCAKBEAgAyAKQQEQ1gcLIAFBpARqIAFBqAJqIAEoAsADIAEoAsQDEMkEIAEoAqgEIQMCQCABKAKkBCIKQYCAgIB4RgRAIAMhAgwBCyABQaQEaiADIAEoAqwEEEAgASgCqAQhGyABKAKkBCIcQYCAgIB4RgRAQSgQfiICRQ0JIAIgGzYCJCACQQo2AiAgAkGWq8EANgIcIAJBAzYCBCACQZiCwQA2AgAgCkUNASADIApBARDWBwwBCyABKAKsBCECIAoEQCADIApBARDWBwsgAUG8BGogBkEDbCIDQdSswQAQmQcgAUHIBGogA0HkrMEAEJkHIAFB1ARqIAZBAnRB9KzBABCZByABQeAEaiADQYStwQAQmQcgAUHsBGogBkGUrcEAEJkHAkACQAJAAkACQCAMRQRAIAFBADYCgAUgAUKAgICAwAA3AvgEDAELIAFB+ARqIAZBCWxBpK3BABCZByAMQQFHDQELIAFBADYCjAUgAUKAgICAwAA3AoQFDAELIAFBhAVqIAZBD2xBtK3BABCZByAMQQJLDQELIAFBADYCrAQgAUKAgICAwAA3AqQEDAELIAFBpARqIAZBFWxBxK3BABCZBwsgAUH0AmogAUGAA2ogEyANIBUgDiABKALABCIjIAEoAsQEIg0Q6gMgASgCnAMgASgCoAMgFyARIAEoAswEIiQgASgC0AQiDhCjAyAZIAQgASgC2AQiJSABKALcBCIREMADIAEoAswDIAEoAtADIBsgAiABKALkBCImIAEoAugEIgQgASgC8AQiByABKAL0BCIDEMUCIAEoAqwEIQ8gASgCqAQhHyABKAKMBSEFIAEoAogFISAgASgCgAUhCiABKAL8BCEhAkACQCASQYCAgIB4RgRAIAEoAqQEIRAMAQsgAUHUA2ogAUHMAmogBiAhIAogICAFIB8gDxB9IQIgASgCpAQhECACDQELIAAgBiAMICMgDSAkIA4gJSARICYgBCAHIAMgISAKICAgBSAfIA8QkwMhAiAQBEAgHyAQQQJ0QQQQ1gcLIAEoAoQFIgAEQCAgIABBAnRBBBDWBwsgASgC+AQiAARAICEgAEECdEEEENYHCyABKALsBCIABEAgByAAQQJ0QQQQ1gcLIAEoAuAEIgAEQCAmIABBAnRBBBDWBwsgASgC1AQiAARAICUgAEECdEEEENYHCyABKALIBCIABEAgJCAAQQJ0QQQQ1gcLIAEoArwEIgAEQCAjIABBAnRBBBDWBwsgHARAIBsgHEEBENYHCyAaBEAgGSAaQQEQ1gcLIBgEQCAXIBhBARDWBwsgFgRAIBUgFkEBENYHCyAUBEAgEyAUQQEQ1gcLIAFB0AJqEJAGIAFBjANqEIkGIAFBpANqEIoGIAFBvANqEIkGDAgLIBAEQCAfIBBBAnRBBBDWBwsgASgChAUiAARAICAgAEECdEEEENYHCyABKAL4BCIABEAgISAAQQJ0QQQQ1gcLIAEoAuwEIgAEQCAHIABBAnRBBBDWBwsgASgC4AQiAARAICYgAEECdEEEENYHCyABKALUBCIABEAgJSAAQQJ0QQQQ1gcLIAEoAsgEIgAEQCAkIABBAnRBBBDWBwsgASgCvAQiAARAICMgAEECdEEEENYHC0EAIQUgHEUNACAbIBxBARDWBwsgGkUNACAZIBpBARDWBwsgGEUNACAXIBhBARDWBwsgFkUNACAVIBZBARDWBwsgFEUNACATIBRBARDWBwsgASgC3AIiAARAIB4gAEEBENYHCyABKALoAiIABEAgASgC7AIgAEEBENYHCyABKAKMAyIABEAgASgCkAMgAEEBENYHCyABKAKYAyIABEAgASgCnAMgAEECdEEEENYHCyABKAKkAyIABEAgASgCqAMgAEEBENYHCyABKAKwAyIAQYCAgIB4ckGAgICAeEcEQCABKAK0AyAAQQEQ1gcLIAEoArwDIgAEQCABKALAAyAAQQEQ1gcLIAEoAsgDIgAEQCABKALMAyAAQQJ0QQQQ1gcLIAVFIBJBgICAgHhGcg0CIBIEQCABKALYAyASQQEQ1gcLIAEoAuADIgAEQCABKALkAyAAQQEQ1gcLIAEoAuwDIgBFDQIgASgC8AMgAEECdEEEENYHDAILIAFBADoArAQgASAJNgKoBCABIAY2AqQEIAAgAUGkBGoiAhDMBCACIAFBqAJqIAEoAtQCIAEoAtgCEMkEIAEoAqgEIQMCQCABKAKkBCIEQYCAgIB4RgRAQQEhByADIQIMAQsgAUGkBGogAyABKAKsBBBAIAEoAqgEIQwgASgCpAQiEEGAgICAeEYEQEEoEH4iAkUNBCACIAw2AiQgAkEPNgIgIAJB36rBADYCHCACQQM2AgQgAkGYgsEANgIAIARFBEBBASEHDAILQQEhByADIARBARDWBwwBCyABKAKsBCENIAQEQCADIARBARDWBwsgAUGkBGogAUGoAmogASgC4AIgASgC5AIQyQQgASgCqAQhA0EBIQcCQCABKAKkBCIEQYCAgIB4RgRAIAMhAgwBCyABQaQEaiADIAEoAqwEEEAgASgCqAQhEiABKAKkBCITQYCAgIB4RgRAQSgQfiICRQ0FIAIgEjYCJCACQQ82AiAgAkHuqsEANgIcIAJBAzYCBCACQZiCwQA2AgAgBEUNASADIARBARDWBwwBCyABKAKsBCEOIAQEQCADIARBARDWBwsgAUGkBGogAUGoAmogASgCjAMiCiABKAKQAxDJBCABKAKoBCEDAkAgASgCpAQiBEGAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBBAIAEoAqgEIRQgASgCpAQiFUGAgICAeEYEQEEoEH4iAkUNBiACIBQ2AiQgAkENNgIgIAJB/arBADYCHCACQQM2AgQgAkGYgsEANgIAIARFDQEgAyAEQQEQ1gcMAQsgASgCrAQhESAEBEAgAyAEQQEQ1gcLIAFBpARqIAFBqAJqIAEoArADIAEoArQDEMkEIAEoAqgEIQMCQCABKAKkBCIeQYCAgIB4RgRAIAMhAgwBCyABQaQEaiADIAEoAqwEEEAgASgCqAQhFiABKAKkBCIXQYCAgIB4RgRAQSgQfiICRQ0HIAIgFjYCJCACQQw2AiAgAkGKq8EANgIcIAJBAzYCBCACQZiCwQA2AgAgHkUNASADIB5BARDWBwwBCyABKAKsBCEEIB4EQCADIB5BARDWBwsgAUGkBGogAUGoAmogASgCyAMiHiABKALMAxDJBCABKAKoBCEDAkAgASgCpAQiD0GAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBBAIAEoAqgEIRggASgCpAQiGUGAgICAeEYEQEEoEH4iAkUNCCACIBg2AiQgAkEKNgIgIAJBlqvBADYCHCACQQM2AgQgAkGYgsEANgIAIA9FDQEgAyAPQQEQ1gcMAQsgASgCrAQhAiAPBEAgAyAPQQEQ1gcLIAFBvARqIAZBA2wiA0Ggq8EAEJkHIAFByARqIANBsKvBABCZByABQdQEaiAGQQJ0QcCrwQAQmQcgAUHgBGogA0HQq8EAEJkHIAFB7ARqIAZB4KvBABCZBwJAAkACQAJAAkAgCUUEQCABQQA2AoAFIAFCgICAgMAANwL4BAwBCyABQfgEaiAGQQlsQfCrwQAQmQcgCUEBRw0BCyABQQA2AowFIAFCgICAgMAANwKEBQwBCyABQYQFaiAGQQ9sQYCswQAQmQcgCUEDRg0BCyABQQA2AqwEIAFCgICAgMAANwKkBAwBCyABQaQEaiAGQRVsQZCswQAQmQcLIAFB6AJqIAFB9AJqIAwgDSASIA4gASgCwAQiHyABKALEBCINEOoDIAFBlANqIAFBoANqIBQgESABKALMBCIgIAEoAtAEIg4QyAIgFiAEIAEoAtgEIiEgASgC3AQiERDAAyABQdADaiABQeADaiAYIAIgASgC5AQiIyABKALoBCIEIAEoAvAEIiQgASgC9AQiAxCMAiABKAKsBCEmIAEoAqgEIRogASgCjAUhByABKAKIBSEbIAEoAoAFIQ8gASgC/AQhHAJAAkAgBUGAgICAeEYEQCABKAKkBCEFDAELIAFB8ANqIAFBzAJqIAYgCSAcIA8gGyAHIBogJhCCASECIAEoAqQEIQUgAg0BCyAAIAYgCSAfIA0gICAOICEgESAjIAQgJCADIBwgDyAbIAcgGiAmEJMDIQIgBQRAIBogBUECdEEEENYHCyABKAKEBSIABEAgGyAAQQJ0QQQQ1gcLIAEoAvgEIgAEQCAcIABBAnRBBBDWBwsgASgC7AQiAARAICQgAEECdEEEENYHCyABKALgBCIABEAgIyAAQQJ0QQQQ1gcLIAEoAtQEIgAEQCAhIABBAnRBBBDWBwsgASgCyAQiAARAICAgAEECdEEEENYHCyABKAK8BCIABEAgHyAAQQJ0QQQQ1gcLIBkEQCAYIBlBARDWBwsgFwRAIBYgF0EBENYHCyAVBEAgFCAVQQEQ1gcLIBMEQCASIBNBARDWBwsgEARAIAwgEEEBENYHCyABQdACahCRBiABKAKIAyIABEAgCiAAQQEQ1gcLIAFBrANqEIoGIAEoAsQDIgBFDQcgHiAAQQEQ1gcMBwsgBQRAIBogBUECdEEEENYHCyABKAKEBSIABEAgGyAAQQJ0QQQQ1gcLIAEoAvgEIgAEQCAcIABBAnRBBBDWBwsgASgC7AQiAARAICQgAEECdEEEENYHCyABKALgBCIABEAgIyAAQQJ0QQQQ1gcLIAEoAtQEIgAEQCAhIABBAnRBBBDWBwsgASgCyAQiAARAICAgAEECdEEEENYHCyABKAK8BCIABEAgHyAAQQJ0QQQQ1gcLQQAhByAZRQ0AIBggGUEBENYHCyAXRQ0AIBYgF0EBENYHCyAVRQ0AIBQgFUEBENYHCyATRQ0AIBIgE0EBENYHCyAQRQ0AIAwgEEEBENYHCyAHRQsgASgC0AIiAwRAIAEoAtQCIANBARDWBwsgASgC3AIiAwRAIAEoAuACIANBARDWBwsgASgCiAMiAwRAIAEoAowDIANBARDWBwsgASgCrAMiAwRAIAEoArADIANBARDWBwsgJUGAgICAeHJBgICAgHhHBEAgASgCvAMgJUEBENYHCyABKALEAyIDBEAgASgCyAMgA0EBENYHCyABKALwAyIAQYCAgIB4RnINACAABEAgASgC9AMgAEEBENYHCyABKAL8AyIARQ0AIAEoAoAEIABBARDWBwsgAUGoAmoQiwQgJwRAICggJ0EBENYHCyAiBEAgHSAiQQEQ1gcLIAsgCEEBENYHIAEoAigiACAAKAIAIgBBAWs2AgAgAEEBRw0LIAEoAigQjAMMCwsACyAIRQ0CAkAgC0EEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgCGpPBEAgAkUNAyADIAhBJ2pLDQEMAwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIAtBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAhqSQ0FIAJFIAMgCEEnak1yDQBBoIzIAEEuQdCMyAAQoggACyALELQCCyARIB1BAWoiHUcNAAsLIAFBADYC4AIgAUEBNgLUAiABQcCowQA2AtACIAFCBDcC2AIgAUHQAmoQxQchAgsgASgCKCIAIAAoAgAiAEEBazYCACAAQQFHDQMgASgCKBCMAwwDC0Hgi8gAQS5BkIzIABCiCAALIAFBADYC4AIgAUEBNgLUAiABQdyHwQA2AtACIAFCBDcC2AIgAUHQAmoQxQchAgwBCyABQQA2AuACIAFBATYC1AIgAUHAh8EANgLQAiABQgQ3AtgCIAFB0AJqEMUHIQILIAFBkAVqJAAgAgubNQMofwF+AXsjAEGQBWsiASQAAkACQCAAKAJIIgNBBE8EQCAAKAJEIgIoAABB0JaNIEcNASABQgA3AxAgASADNgIMIAEgAjYCCCABQdACaiABQQhqEDggAUE4aiIDIAFB3AJqKAIANgIAIAEgASkC1AI3AzAgASgC0AIiAkUEQCABQTBqEMIHIQIMAwsgAUEkaiADKAIANgIAIAEgASkDMDcCHCABIAEpA+ACIik3AyggASACNgIYAkACQCAppygCQCIRBEAgAUH0AGohBCABQegAaiEMIAFB5AJqISIgAUHYAmohDQNAIAFBADoAsAIgAUEANgKoAiABQdACaiABQRhqIB0gAUGoAmoQsgEgAUHIAGoiAiANQQhqKAIANgIAIAEgDSkDADcDQAJAAkACQAJAAkACQAJAAkAgASkD0AIiKUIDUgRAIAQgIkG0AfwKAAAgDEEIaiACKAIANgIAIAwgASkDQDcDACABICk3A2AgASgCaCABQeAAaiApQgJRGyICKAIsIghBAEgNASACKAIoIQICQCAIRQRAQQEhCgwBCyAIEH4iCkUNAwsgCARAIAogAiAI/AoAAAsgAUHgAGoQiAIgCEEJSQ0FQZiowQAgCCAKakEJa0EJEJAIDQYgCCECA0ACQCABQS8gCiACENADQQEhHUEAISIgASgCAEEBcUUEQAwBCwJAIAEoAgQiAiAITw0AIAIgCmotAABBL0cNACABIAI2AqgEIAEgCjYCpAQgAUECNgLUAiABQciowQA2AtACIAFCATcC3AIgASABQaQEaq1CgICAgCCENwOoAiABIAFBqAJqNgLYAiABQeAAaiABQdACahDiBCABKAJgIgJBgICAgHhGDQEgASkCZCIpQiCIpyELICmnIR0gAiEiDAELIAIgCE0NAQsLIAFB0AJqIAFBGGogCiAIEPAEIAFB2ABqIAFB4AJqKAIANgIAIAEgASkD2AI3A1ACQAJAIAEpA9ACIilCA1EEQCABQdAAahDCByECDAELIAFB9ABqIAFB5AJqQbQB/AoAACABQfAAaiABQdgAaigCADYCACABICk3A2AgASABKQNQNwNoIAFBADYCsAIgAUKAgICAEDcCqAIgAUHQAmogAUHgAGogAUGoAmoQogEg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NgIAIAwgASkDQDcDACABICk3A2AgASgCaCABQeAAaiApQgJRGyICKAIsIghBAEgNASACKAIoIQICQCAIRQRAQQEhCgwBCyAIEH4iCkUNAwsgCARAIAogAiAI/AoAAAsgAUHgAGoQiAIgCEEJSQ0FQZiowQAgCCAKakEJa0EJEJAIDQYgCCECA0ACQCABQS8gCiACENADQQEhHUEAISIgASgCAEEBcUUEQAwBCwJAIAEoAgQiAiAITw0AIAIgCmotAABBL0cNACABIAI2AqgEIAEgCjYCpAQgAUECNgLUAiABQciowQA2AtACIAFCATcC3AIgASABQaQEaq1CgICAgCCENwOoAiABIAFBqAJqNgLYAiABQeAAaiABQdACahDiBCABKAJgIgJBgICAgHhGDQEgASkCZCIpQiCIpyELICmnIR0gAiEiDAELIAIgCE0NAQsLIAFB0AJqIAFBGGogCiAIEPAEIAFB2ABqIAFB4AJqKAIANgIAIAEgASkD2AI3A1ACQAJAIAEpA9ACIilCA1EEQCABQdAAahDCByECDAELIAFB9ABqIAFB5AJqQbQB/AoAACABQfAAaiABQdgAaigCADYCACABICk3A2AgASABKQNQNwNoIAFBADYCsAIgAUKAgICAEDcCqAIgAUHQAmogAUHgAGogAUGoAmoQogEgASgC0AJBAUYEQCABKQLUAhCDCCECIAEoAqgCIgAEQCABKAKsAiAAQQEQ1gcLIAFB4ABqEIgCDAELIAEoAqgCIScgASgCrAIhKCABKAKwAiECIAFB4ABqEIgCIAFBADYCsAIgASACNgKsAiABICg2AqgCIAFB0AJqIAFBqAJqEE4gASgC1AIhAgJAIAEoAtACIgRBgYCAgHhGBEAgAhDXByECDAELIAFB6ABqIAFB2AJqQcAB/AoAACABIAI2AmQgASAENgJgIAFB5ABqIQMgAQJ7QYDRyQAoAgBBAUYEQEGI0ckA/QADAAwBCyABQdACahDuBkGA0ckAQgE3AwBBkNHJACABKQPYAjcDACAB/QAE0AILIir9CwO4AkGI0ckAICr9HQBCAXw3AwAgAUGYpcgA/QADAP0LA6gCAkAgAUHgAGogHSALIAFBGGogAUGoAmoiBRD/BCICBEAgBRCLBCAEQYCAgIB4Rw0BIAMQlAIMAgsgASABQagCajYCzAIgBEGAgICAeEcEQCABQdACaiABQeAAakHIAfwKAAAgASgCuAMiJUGAgICAeEYNBCABKALAA0ERRw0EIAEoAoADIQYgASgCvANBzqrBAEEREJAIDQQCf0EAIAEoAvADIgVBgICAgHhGDQAaQQMgASgClAQiAkEsSw0AGkECIAJBF0sNABogAkEISwshCyABQQA6AKwEIAEgCzYCqAQgASAGNgKkBCAAIAFBpARqIgIQ+QEgAiABQagCaiABKALUAiABKALYAhDJBCABKAKoBCEDAkAgASgCpAQiBEGAgICAeEYEQEEBIQcgAyECDAELIAFBpARqIAMgASgCrAQQQCABKAKoBCEOIAEoAqQEIg9BgICAgHhGBEBBKBB+IgJFDQkgAiAONgIkIAJBDzYCICACQd+qwQA2AhwgAkEDNgIEIAJBmILBADYCACAERQRAQQEhBwwCC0EBIQcgAyAEQQEQ1gcMAQsgASgCrAQhDCAEBEAgAyAEQQEQ1gcLIAFBpARqIAFBqAJqIAEoAuACIAEoAuQCEMkEIAEoAqgEIQNBASEHAkAgASgCpAQiBEGAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBBAIAEoAqgEIRIgASgCpAQiE0GAgICAeEYEQEEoEH4iAkUNCiACIBI2AiQgAkEPNgIgIAJB7qrBADYCHCACQQM2AgQgAkGYgsEANgIAIARFDQEgAyAEQQEQ1gcMAQsgASgCrAQhDSAEBEAgAyAEQQEQ1gcLIAFBpARqIAFBqAJqIAEoAowDIgkgASgCkAMQyQQgASgCqAQhAwJAIAEoAqQEIgRBgICAgHhGBEAgAyECDAELIAFBpARqIAMgASgCrAQQQCABKAKoBCEUIAEoAqQEIhVBgICAgHhGBEBBKBB+IgJFDQsgAiAUNgIkIAJBDTYCICACQf2qwQA2AhwgAkEDNgIEIAJBmILBADYCACAERQ0BIAMgBEEBENYHDAELIAEoAqwEIREgBARAIAMgBEEBENYHCyABQaQEaiABQagCaiABKAKwAyABKAK0AxDJBCABKAKoBCEDAkAgASgCpAQiHkGAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBBAIAEoAqgEIRYgASgCpAQiF0GAgICAeEYEQEEoEH4iAkUNDCACIBY2AiQgAkEMNgIgIAJBiqvBADYCHCACQQM2AgQgAkGYgsEANgIAIB5FDQEgAyAeQQEQ1gcMAQsgASgCrAQhBCAeBEAgAyAeQQEQ1gcLIAFBpARqIAFBqAJqIAEoAsgDIh4gASgCzAMQyQQgASgCqAQhAwJAIAEoAqQEIhBBgICAgHhGBEAgAyECDAELIAFBpARqIAMgASgCrAQQQCABKAKoBCEYIAEoAqQEIhlBgICAgHhGBEBBKBB+IgJFDQ0gAiAYNgIkIAJBCjYCICACQZarwQA2AhwgAkEDNgIEIAJBmILBADYCACAQRQ0BIAMgEEEBENYHDAELIAEoAqwEIQIgEARAIAMgEEEBENYHCyABQbwEaiAGQQNsIgNBoKvBABCZByABQcgEaiADQbCrwQAQmQcgAUHUBGogBkECdEHAq8EAEJkHIAFB4ARqIANB0KvBABCZByABQewEaiAGQeCrwQAQmQcCQAJAAkACQAJAIAtFBEAgAUEANgKABSABQoCAgIDAADcC+AQMAQsgAUH4BGogBkEJbEHwq8EAEJkHIAtBAUcNAQsgAUEANgKMBSABQoCAgIDAADcChAUMAQsgAUGEBWogBkEPbEGArMEAEJkHIAtBA0YNAQsgAUEANgKsBCABQoCAgIDAADcCpAQMAQsgAUGkBGogBkEVbEGQrMEAEJkHCyABQegCaiABQfQCaiAOIAwgEiANIAEoAsAEIh8gASgCxAQiDBDqAyABQZQDaiABQaADaiAUIBEgASgCzAQiICABKALQBCINEMgCIBYgBCABKALYBCIhIAEoAtwEIhEQwAMgAUHQA2ogAUHgA2ogGCACIAEoAuQEIiMgASgC6AQiBCABKALwBCIkIAEoAvQEIgMQjAIgASgCrAQhJiABKAKoBCEaIAEoAowFIQcgASgCiAUhGyABKAKABSEQIAEoAvwEIRwCQAJAIAVBgICAgHhGBEAgASgCpAQhBQwBCyABQfADaiABQcwCaiAGIAsgHCAQIBsgByAaICYQggEhAiABKAKkBCEFIAINAQsgACAGIAsgHyAMICAgDSAhIBEgIyAEICQgAyAcIBAgGyAHIBogJhCbAyAFBEAgGiAFQQJ0QQQQ1gcLIAEoAoQFIgAEQCAbIABBAnRBBBDWBwsgASgC+AQiAARAIBwgAEECdEEEENYHCyABKALsBCIABEAgJCAAQQJ0QQQQ1gcLIAEoAuAEIgAEQCAjIABBAnRBBBDWBwsgASgC1AQiAARAICEgAEECdEEEENYHCyABKALIBCIABEAgICAAQQJ0QQQQ1gcLIAEoArwEIgAEQCAfIABBAnRBBBDWBwsgGQRAIBggGUEBENYHCyAXBEAgFiAXQQEQ1gcLIBUEQCAUIBVBARDWBwsgEwRAIBIgE0EBENYHCyAPBEAgDiAPQQEQ1gcLIAFB0AJqEJEGIAEoAogDIgAEQCAJIABBARDWBwsgAUGsA2oQigZBACECIAEoAsQDIgBFDQ8gHiAAQQEQ1gcMDwsgBQRAIBogBUECdEEEENYHCyABKAKEBSIABEAgGyAAQQJ0QQQQ1gcLIAEoAvgEIgAEQCAcIABBAnRBBBDWBwsgASgC7AQiAARAICQgAEECdEEEENYHCyABKALgBCIABEAgIyAAQQJ0QQQQ1gcLIAEoAtQEIgAEQCAhIABBAnRBBBDWBwsgASgCyAQiAARAICAgAEECdEEEENYHCyABKAK8BCIABEAgHyAAQQJ0QQQQ1gcLQQAhByAZRQ0AIBggGUEBENYHCyAXRQ0AIBYgF0EBENYHCyAVRQ0AIBQgFUEBENYHCyATRQ0AIBIgE0EBENYHCyAPRQ0AIA4gD0EBENYHCyAHRSEADAgLIAFB0AJqIANBtAH8CgAAIAEoAoAEIQYCf0EAIAEoAtQDIhJBgICAgHhGDQAaQQMgAS0A+AMiAkECSw0AGkECIAJBAEcgAkECRhsLIQ4gAUEAOgCsBCABIA42AqgEIAEgBjYCpAQgACABQaQEaiICEPkBIAIgAUGoAmogASgC4AIiHiABKALkAhDJBCABKAKoBCEDQQEhBQJAIAEoAqQEIgRBgICAgHhGBEAgAyECDAELIAFBpARqIAMgASgCrAQQQCABKAKoBCETIAEoAqQEIhRBgICAgHhGBEBBKBB+IgJFDQggAiATNgIkIAJBDzYCICACQd+qwQA2AhwgAkEDNgIEIAJBmILBADYCACAERQ0BIAMgBEEBENYHDAELIAEoAqwEIQwgBARAIAMgBEEBENYHCyABQaQEaiABQagCaiABKALsAiABKALwAhDJBCABKAKoBCEDAkAgASgCpAQiBEGAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBBAIAEoAqgEIRUgASgCpAQiFkGAgICAeEYEQEEoEH4iAkUNCSACIBU2AiQgAkEPNgIgIAJB7qrBADYCHCACQQM2AgQgAkGYgsEANgIAIARFDQEgAyAEQQEQ1gcMAQsgASgCrAQhDSAEBEAgAyAEQQEQ1gcLIAFBpARqIAFBqAJqIAEoApADIAEoApQDEMkEIAEoAqgEIQMCQCABKAKkBCIEQYCAgIB4RgRAIAMhAgwBCyABQaQEaiADIAEoAqwEEEAgASgCqAQhFyABKAKkBCIYQYCAgIB4RgRAQSgQfiICRQ0KIAIgFzYCJCACQQ02AiAgAkH9qsEANgIcIAJBAzYCBCACQZiCwQA2AgAgBEUNASADIARBARDWBwwBCyABKAKsBCERIAQEQCADIARBARDWBwsgAUGkBGogAUGoAmogASgCqAMgASgCrAMQyQQgASgCqAQhAwJAIAEoAqQEIglBgICAgHhGBEAgAyECDAELIAFBpARqIAMgASgCrAQQQCABKAKoBCEZIAEoAqQEIhpBgICAgHhGBEBBKBB+IgJFDQsgAiAZNgIkIAJBDDYCICACQYqrwQA2AhwgAkEDNgIEIAJBmILBADYCACAJRQ0BIAMgCUEBENYHDAELIAEoAqwEIQQgCQRAIAMgCUEBENYHCyABQaQEaiABQagCaiABKALAAyABKALEAxDJBCABKAKoBCEDAkAgASgCpAQiCUGAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBBAIAEoAqgEIRsgASgCpAQiHEGAgICAeEYEQEEoEH4iAkUNDCACIBs2AiQgAkEKNgIgIAJBlqvBADYCHCACQQM2AgQgAkGYgsEANgIAIAlFDQEgAyAJQQEQ1gcMAQsgASgCrAQhAiAJBEAgAyAJQQEQ1gcLIAFBvARqIAZBA2wiA0HUrMEAEJkHIAFByARqIANB5KzBABCZByABQdQEaiAGQQJ0QfSswQAQmQcgAUHgBGogA0GErcEAEJkHIAFB7ARqIAZBlK3BABCZBwJAAkACQAJAAkAgDkUEQCABQQA2AoAFIAFCgICAgMAANwL4BAwBCyABQfgEaiAGQQlsQaStwQAQmQcgDkEBRw0BCyABQQA2AowFIAFCgICAgMAANwKEBQwBCyABQYQFaiAGQQ9sQbStwQAQmQcgDkECSw0BCyABQQA2AqwEIAFCgICAgMAANwKkBAwBCyABQaQEaiAGQRVsQcStwQAQmQcLIAFB9AJqIAFBgANqIBMgDCAVIA0gASgCwAQiIyABKALEBCIMEOoDIAEoApwDIAEoAqADIBcgESABKALMBCIkIAEoAtAEIg0QowMgGSAEIAEoAtgEIiUgASgC3AQiERDAAyABKALMAyABKALQAyAbIAIgASgC5AQiJiABKALoBCIEIAEoAvAEIgcgASgC9AQiAxDFAiABKAKsBCEQIAEoAqgEIR8gASgCjAUhBSABKAKIBSEgIAEoAoAFIQkgASgC/AQhIQJAAkAgEkGAgICAeEYEQCABKAKkBCEPDAELIAFB1ANqIAFBzAJqIAYgISAJICAgBSAfIBAQfSECIAEoAqQEIQ8gAg0BCyAAIAYgDiAjIAwgJCANICUgESAmIAQgByADICEgCSAgIAUgHyAQEJsDIA8EQCAfIA9BAnRBBBDWBwsgASgChAUiAARAICAgAEECdEEEENYHCyABKAL4BCIABEAgISAAQQJ0QQQQ1gcLIAEoAuwEIgAEQCAHIABBAnRBBBDWBwsgASgC4AQiAARAICYgAEECdEEEENYHCyABKALUBCIABEAgJSAAQQJ0QQQQ1gcLIAEoAsgEIgAEQCAkIABBAnRBBBDWBwsgASgCvAQiAARAICMgAEECdEEEENYHCyAcBEAgGyAcQQEQ1gcLIBoEQCAZIBpBARDWBwsgGARAIBcgGEEBENYHCyAWBEAgFSAWQQEQ1gcLIBQEQCATIBRBARDWBwsgAUHQAmoQkAYgAUGMA2oQiQYgAUGkA2oQigYgAUG8A2oQiQZBACECDA4LIA8EQCAfIA9BAnRBBBDWBwsgASgChAUiAARAICAgAEECdEEEENYHCyABKAL4BCIABEAgISAAQQJ0QQQQ1gcLIAEoAuwEIgAEQCAHIABBAnRBBBDWBwsgASgC4AQiAARAICYgAEECdEEEENYHCyABKALUBCIABEAgJSAAQQJ0QQQQ1gcLIAEoAsgEIgAEQCAkIABBAnRBBBDWBwsgASgCvAQiAARAICMgAEECdEEEENYHC0EAIQUgHEUNACAbIBxBARDWBwsgGkUNACAZIBpBARDWBwsgGEUNACAXIBhBARDWBwsgFkUNACAVIBZBARDWBwsgFEUNACATIBRBARDWBwsgASgC3AIiAARAIB4gAEEBENYHCyABKALoAiIABEAgASgC7AIgAEEBENYHCyABKAKMAyIABEAgASgCkAMgAEEBENYHCyABKAKYAyIABEAgASgCnAMgAEECdEEEENYHCyABKAKkAyIABEAgASgCqAMgAEEBENYHCyABKAKwAyIAQYCAgIB4ckGAgICAeEcEQCABKAK0AyAAQQEQ1gcLIAEoArwDIgAEQCABKALAAyAAQQEQ1gcLIAEoAsgDIgAEQCABKALMAyAAQQJ0QQQQ1gcLIAVFIBJBgICAgHhGcg0IIBIEQCABKALYAyASQQEQ1gcLIAEoAuADIgAEQCABKALkAyAAQQEQ1gcLIAEoAuwDIgBFDQggASgC8AMgAEECdEEEENYHDAgLIAFB4ABqENwCCyAnRQ0AICggJ0EBENYHCyAiBEAgHSAiQQEQ1gcLIAogCEEBENYHDAwLQQAhACABQQA2ArQEIAFBATYCqAQgAUHMrMEANgKkBCABQgQ3AqwEIAFBpARqEMUHIQIMAwsgAUFAaxDCByECDAoLQfykyAAQtwgLAAsgASgC0AIiAwRAIAEoAtQCIANBARDWBwsgASgC3AIiAwRAIAEoAuACIANBARDWBwsgASgCiAMiAwRAIAEoAowDIANBARDWBwsgASgCrAMiAwRAIAEoArADIANBARDWBwsgJUGAgICAeHJBgICAgHhHBEAgASgCvAMgJUEBENYHCyABKALEAyIDBEAgASgCyAMgA0EBENYHCyAAIAEoAvADIgBBgICAgHhGcg0AIAAEQCABKAL0AyAAQQEQ1gcLIAEoAvwDIgBFDQAgASgCgAQgAEEBENYHCyABQagCahCLBCAnBEAgKCAnQQEQ1gcLICIEQCAdICJBARDWBwsgCiAIQQEQ1gcgASgCKCIAIAAoAgAiAEEBazYCACAAQQFHDQogASgCKBCMAwwKCyAIRQ0CAkAgCkEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgCGpPBEAgAkUNAyADIAhBJ2pLDQEMAwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIApBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAhqSQ0FIAJFIAMgCEEnak1yDQBBoIzIAEEuQdCMyAAQoggACyAKELQCCyARIB1BAWoiHUcNAAsLIAFBADYC4AIgAUEBNgLUAiABQcCowQA2AtACIAFCBDcC2AIgAUHQAmoQxQchAgsgASgCKCIAIAAoAgAiAEEBazYCACAAQQFHDQMgASgCKBCMAwwDC0Hgi8gAQS5BkIzIABCiCAALIAFBADYC4AIgAUEBNgLUAiABQdyHwQA2AtACIAFCBDcC2AIgAUHQAmoQxQchAgwBCyABQQA2AuACIAFBATYC1AIgAUHAh8EANgLQAiABQgQ3AtgCIAFB0AJqEMUHIQILIAFBkAVqJAAgAgueNQMofwF+AXsjAEGQBWsiASQAAkACQCAAKALMASIDQQRPBEAgACgCyAEiAigAAEHQlo0gRw0BIAFCADcDECABIAM2AgwgASACNgIIIAFB0AJqIAFBCGoQOCABQThqIgMgAUHcAmooAgA2AgAgASABKQLUAjcDMCABKALQAiICRQRAIAFBMGoQwgchAgwDCyABQSRqIAMoAgA2AgAgASABKQMwNwIcIAEgASkD4AIiKTcDKCABIAI2AhgCQAJAICmnKAJAIhEEQCABQfQAaiEEIAFB6ABqIQ0gAUHkAmohIiABQdgCaiEOA0AgAUEAOgCwAiABQQA2AqgCIAFB0AJqIAFBGGogHSABQagCahCyASABQcgAaiICIA5BCGooAgA2AgAgASAOKQMANwNAAkACQAJAAkACQAJAAn8CQAJAAkAgASkD0AIiKUIDUgRAIAQgIkG0AfwKAAAgDUEIaiACKAIANgIAIA0gASkDQDcDACABICk3A2AgASgCaCABQeAAaiApQgJRGyICKAIsIghBAEgNASACKAIoIQICQCAIRQRAQQEhCwwBCyAIEH4iC0UNBwsgCARAIAsgAiAI/AoAAAsgAUHgAGoQiAIgCEEJSQ0HQZiowQAgCCALakEJa0EJEJAIDQggCCECA0ACQCABQS8gCyACENADQQEhHUEAISIgASgCAEEBcUUEQAwBCwJAIAEoAgQiAiAITw0AIAIgC2otAABBL0cNACABIAI2AqgEIAEgCzYCpAQgAUECNgLUAiABQciowQA2AtACIAFCATcC3AIgASABQaQEaq1CgICAgCCENwOoAiABIAFBqAJqNgLYAiABQeAAaiABQdACahDiBCABKAJgIgJBgICAgHhGDQEgASkCZCIpQiCIpyEJICmnIR0gAiEiDAELIAIgCE0NAQsLIAFB0AJqIAFBGGogCyAIEPAEIAFB2ABqIAFB4AJqKAIANgIAIAEgASkD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IAItACQiBHIhACAEQQFxIANBAUdyDRQoAgAiAC0ACkGAAXFFBEAgACgCAEHxwMUAQQIgACgCBCgCDBEAACEADBULIAAoAgBBkr3FAEEBIAAoAgQoAgwRAAAhAAwUC0EBIQAgASgCACIEQf3IxABBECABKAIEIgYoAgwiBREAAA0TIANBAWohAwJAIAEtAApBgAFxRQRAIARB+brFAEEBIAURAAANFSABKAIAIAMtAABBAnQiA0HUnckAaigCACADQbidyQBqKAIAIAEoAgQoAgwRAABFDQEMFQsgBEGMocIAQQIgBREAAA0UIAIgBjYCJCACIAQ2AiAgAkEBOgAQIAMtAABBAnQiA0HAm8kAaigCACEEIANB3JvJAGooAgAhAyACIAJBEGo2AiggAkEgaiIFIAMgBBDYAw0UIAVBg6HCAEECENgDDRQLIAEoAgBBpqHIAEEBIAEoAgQoAgwRAAAhAAwTCyABKAIAQZPExABBESABKAIEKAIMEQAAIQAMEgtBASEAIAIgA0EBajYCDCABKAIAIgNBjcnEAEEPIAEoAgQiBSgCDCIEEQAADRECQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADRMgAkEMaiABENUERQ0BDBMLIANBjKHCAEECIAQRAAANEiACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDRIgAigCIEGDocIAQQIgAigCJCgCDBEAAA0SCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMEQtBASEAIAIgA0EBajYCDCABKAIAIgNBnMnEAEEQIAEoAgQiBSgCDCIEEQAADRACQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADRIgAkEMaiABENUERQ0BDBILIANBjKHCAEECIAQRAAANESACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDREgAigCIEGDocIAQQIgAigCJCgCDBEAAA0RCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMEAtBASEAIAIgA0EBajYCDCABKAIAIgNBrMnEAEEQIAEoAgQiBSgCDCIEEQAADQ8CQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADREgAkEMaiABENUERQ0BDBELIANBjKHCAEECIAQRAAANECACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDRAgAigCIEGDocIAQQIgAigCJCgCDBEAAA0QCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMDwtBASEAIAIgA0EBajYCDCABKAIAIgNBvMnEAEEOIAEoAgQiBSgCDCIEEQAADQ4CQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADRAgAkEMaiABENUERQ0BDBALIANBjKHCAEECIAQRAAANDyACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQ8gAigCIEGDocIAQQIgAigCJCgCDBEAAA0PCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMDgtBASEAIAIgA0EBajYCDCABKAIAIgNBysnEAEELIAEoAgQiBSgCDCIEEQAADQ0CQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQ8gAkEMaiABENUERQ0BDA8LIANBjKHCAEECIAQRAAANDiACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQ4gAigCIEGDocIAQQIgAigCJCgCDBEAAA0OCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMDQtBASEAIAIgA0EBajYCDCABKAIAIgNB1cnEAEEaIAEoAgQiBSgCDCIEEQAADQwCQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQ4gAkEMaiABENUERQ0BDA4LIANBjKHCAEECIAQRAAANDSACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQ0gAigCIEGDocIAQQIgAigCJCgCDBEAAA0NCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMDAtBASEAIAIgA0EBajYCDCABKAIAIgNB78nEAEEYIAEoAgQiBSgCDCIEEQAADQsCQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQ0gAkEMaiABENUERQ0BDA0LIANBjKHCAEECIAQRAAANDCACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQwgAigCIEGDocIAQQIgAigCJCgCDBEAAA0MCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMCwtBASEAIAIgA0EBajYCDCABKAIAIgNBh8rEAEETIAEoAgQiBSgCDCIEEQAADQoCQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQwgAkEMaiABENUERQ0BDAwLIANBjKHCAEECIAQRAAANCyACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQsgAigCIEGDocIAQQIgAigCJCgCDBEAAA0LCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMCgtBASEAIAIgA0EBajYCDCABKAIAIgNBmsrEAEEWIAEoAgQiBSgCDCIEEQAADQkCQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQsgAkEMaiABENUERQ0BDAsLIANBjKHCAEECIAQRAAANCiACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQogAigCIEGDocIAQQIgAigCJCgCDBEAAA0KCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMCQsgASgCAEGwysQAQREgASgCBCgCDBEAACEADAgLIAIgA0EBajYCECABKAIAQdTKxABBEiABKAIEKAIMEQAAIQAgAkEAOgAlIAIgADoAJCACIAE2AiAgAkEgakHmysQAQQMgAkEQakHEysQAEL0FIAItACUiAyACLQAkIgRyIQAgBEEBcSADQQFHcg0HKAIAIgAtAApBgAFxRQRAIAAoAgBB8cDFAEECIAAoAgQoAgwRAAAhAAwI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akkNByAGQQAgByADQSdqSxsNCCAEELQCCyAFIQQMAQsgBUUNACACQbwBahDXBAsgBCABEJYGIQEgAEGAgICAeDYCACAAIAE2AgQMAQsgACANNgIIIAAgBDYCBCAAIAM2AgALIAJB8AFqJAAPC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAAL7hcCG38CfCMAQbAEayIDJAAgA0IANwOYASADQgA3A5ABIANCADcDiAEgA0IANwOAASADQgA3A3ggA0IANwNwIANCADcDaCADQgA3A2AgA0IANwNYIANCADcDUCADQgA3A0ggA0IANwNAIANCADcDOCADQgA3AzAgA0IANwMoIANCADcDICADQgA3AxggA0IANwMQIANCADcDCCADQgA3AwAgA0IANwO4AiADQgA3A7ACIANCADcDqAIgA0IANwOgAiADQgA3A5gCIANCADcDkAIgA0IANwOIAiADQgA3A4ACIANCADcD+AEgA0IANwPwASADQgA3A+gBIANCADcD4AEgA0IANwPYASADQgA3A9ABIANCADcDyAEgA0IANwPAASADQgA3A7gBIANCADcDsAEgA0IANwOoASADQgA3A6ABIANCADcD2AMgA0IANwPQAyADQgA3A8gDIANCADcDwAMgA0IANwO4AyADQgA3A7ADIANCADcDqAMgA0IANwOgAyADQgA3A5gDIANCADcDkAMgA0IANwOIAyADQgA3A4ADIANCADcD+AIgA0IANwPwAiADQgA3A+gCIANCADcD4AIgA0IANwPYAiADQgA3A9ACIANCADcDyAIgA0IANwPAAiADQeADakEAQdAA/AsAQYTGyQAoAgAiCiEGIAJBA2tBGG0iBUEAIAVBAEobIgshBSALQQJ0QZTGyQBqIQgDQCADIARBA3RqIAVBAEgEfEQAAAAAAAAAAAUgCCgCALcLOQMAIAQgBkkiDARAIAhBBGohCCAFQQFqIQUgBCAMaiIEIAZNDQELCyACQRhrIQZBACEFA0BBACEEIANBwAJqIAVBA3RqIB4gACAEQQN0aisDACADIAUgBGtBA3RqKwMAoqA5AwAgBSAKSSIEBEAgBCAFaiIFIApNDQELC0QAAAAAAADwf0QAAAAAAADgfyAGIAtB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AiAgAkEMaiACQSBqENUEDRIgAigCIEGDocIAQQIgAigCJCgCDBEAAA0SCyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMEQtBASEDIAIgAEEBajYCDCABKAIAIgBB3MHEAEEUIAEoAgQiBSgCDCIEEQAADRACQCABLQAKQYABcUUEQCAAQfm6xQBBASAEEQAADRIgAkEMaiABENUERQ0BDBILIABBjKHCAEECIAQRAAANESACQQE6ABMgAiAFNgIYIAIgADYCFCACQeSgwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqENUEDREgAigCIEGDocIAQQIgAigCJCgCDBEAAA0RCyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMEAtBASEDIAIgAEEBajYCDCABKAIAIgBB8MHEAEEVIAEoAgQiBSgCDCIEEQAADQ8CQCABLQAKQYABcUUEQCAAQfm6xQBBASAEEQAADREgAkEMaiABENUERQ0BDBELIABBjKHCAEECIAQRAAANECACQQE6ABMgAiAFNgIYIAIgADYCFCACQeSgwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqENUEDRAgAigCIEGDocIAQQIgAigCJCgCDBEAAA0QCyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMDwsgASgCAEGFwsQAQQwgASgCBCgCDBEAACEDDA4LIAEoAgBBkcLEAEEOIAEoAgQoAgwRAAAhAwwNCyABKAIAQZ/CxABBDiABKAIEKAIMEQAAIQMMDAtBASEDIAEoAgAiBEGtwsQAQQ8gASgCBCIGKAIMIgURAAANCyAAQQFqIQACQCABLQAKQYABcUUEQCAEQfm6xQBBASAFEQAADQ0gACABENEDRQ0BDA0LIARBjKHCAEECIAURAAANDCACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqENEDDQwgAigCIEGDocIAQQIgAigCJCgCDBEAAA0MCyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMCwsgASgCAEG8wsQAQREgASgCBCgCDBEAACEDDAoLQQEhAyACIABBAWo2AgwgASgCACIAQc3CxABBESABKAIEIgUoAgwiBBEAAA0JAkAgAS0ACkGAAXFFBEAgAEH5usUAQQEgBBEAAA0LIAJBDGogARDVBEUNAQwLCyAAQYyhwgBBAiAEEQAADQogAkEBOgATIAIgBTYCGCACIAA2AhQgAkHkoMIANgIkIAIgASkCCDcCKCACIAJBE2o2AhwgAiACQRRqNgIgIAJBDGogAkEgahDVBA0KIAIoAiBBg6HCAEECIAIoAiQoAgwRAAANCgsgASgCAEGmocgAQQEgASgCBCgCDBEAACEDDAkLQQEhAyABKAIAIgRB3sLEAEEZIAEoAgQiBigCDCIFEQAADQggAEEBaiEAAkAgAS0ACkGAAXFFBEAgBEH5usUAQQEgBREAAA0KIAAgARC8BEUNAQwKCyAEQYyhwgBBAiAFEQAADQkgAkEBOgAMIAIgBjYCGCACIAQ2AhQgAkHkoMIANgIkIAIgASkCCDcCKCACIAJBDGo2AhwgAiACQRRqNgIgIAAgAkEgahC8BA0JIAIoAiBBg6HCAEECIAIoAiQoAgwRAAANCQsgASgCAEGmocgAQQEgASgCBCgCDBEAACEDDAgLQQEhAyABKAIAIgRB98LEAEEaIAEoAgQiBigCDCIFEQAADQcgAEEBaiEAAkAgAS0ACkGAAXFFBEAgBEH5usUAQQEgBREAAA0JIAAgARC8BEUNAQwJCyAEQYyhwgBBAiAFEQAADQggAkEBOgAMIAIgBjYCGCACIAQ2AhQgAkHkoMIANgIkIAIgASkCCDcCKCACIAJBDGo2AhwgAiACQRRqNgIgIAAgAkEgahC8BA0IIAIoAiBBg6HCAEECIAIoAiQoAgwRAAANCAsgASgCAEGmocgAQQEgASgCBCgCDBEAACEDDAcLQQEhAyABKAIAIgRBkcPEAEEbIAEoAgQiBigCDCIFEQAADQYgAEEBaiEAAkAgAS0ACkGAAXFFBEAgBEH5usUAQQEgBREAAA0IIAAgARC8BEUNAQwICyAEQYyhwgBBAiAFEQAADQcgAkEBOgAMIAIgBjYCGCACIAQ2AhQgAkHkoMIANgIkIAIgASkCCDcCKCACIAJBDGo2AhwgAiACQRRqNgIgIAAgAkEgahC8BA0HIAIoAiBBg6HCAEECIAIoAiQoAgwRAAANBwsgASgCAEGmocgAQQEgASgCBCgCDBEAACEDDAYLIAEoAgBBrMPEAEEWIAEoAgQoAgwRAAAhAwwFC0EBIQMgASgCACIEQcLDxABBEiABKAIEIgYoAgwiBREAAA0EAkAgAS0ACkGAAXFFBEAgBEH5usUAQQEgBREAAA0GIAAoAgggACgCDCABEM4CRQ0BDAYLIARBjKHCAEECIAURAAANBSACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGoiBDYCICAAKAIIIAAoAgwgAkEgahDOAg0FIARBg6HCAEECENgDDQULIAEoAgBBpqHIAEEBIAEoAgQoAgwRAAAhAwwEC0EBIQMgASgCACIEQdTDxABBECABKAIEIgYoAgwiBREAAA0DAkAgAS0ACkGAAXFFBEAgBEH5usUAQQEgBREAAA0FIAAoAgggACgCDCABEM4CRQ0BDAULIARBjKHCAEECIAURAAANBCACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGoiBDYCICAAKAIIIAAoAgwgAkEgahDOAg0EIARBg6HCAEECENgDDQQLIAEoAgBBpqHIAEEBIAEoAgQoAgwRAAAhAwwDCyABKAIAQeTDxABBEyABKAIEKAIMEQAAIQMMAgsgASgCAEH3w8QAQRAgASgCBCgCDBEAACEDDAELIAEoAgBBh8TEAEEMIAEoAgQoAgwRAAAhAwsgAkEwaiQAIAML4BgCDn8CeyMAQUBqIgIkACACIAE2AhwgAkEANgIYIAIgATYCFCACIAA2AhAgAkEBOgAkIAJBPzYCDCACQT82AiAgAkE0aiIDIAJBDGoiBRChAyACIAIoAjggASACKAI0GyIBNgIcIAJBADYCGCACIAE2AhQgAiAANgIQIAJBAToAJCACQSM2AgwgAkEjNgIgIAMgBRChAyACKAI4IQMgAigCNCEGIAJBATsBMCACIAMgASAGGyIBNgIsIAJBADYCKCACQQE6ACQgAkEuNgIgIAIgATYCHCACQQA2AhggAiABNgIUIAIgADYCECACQS42AgwCQAJAAkACQAJAAkACQANAAkAgAigCECEBIAJBNGogAkEMahChAyACKAI0RQRAAkAgAi0AMQ0AAkAgAi0AMEEBRgRAIAIoAiwhACACKAIoIQEMAQsgAigCLCIAIAIoAigiAUYNAQsgAigCECABaiEHIAAgAWshBgwCCyAHDQFBBiEBDAMLIAIoAighACACIAIoAjw2AiggACABaiEHIAIoAjggAGshBiACLQAxQQFxRQ0BCwsgBkEASA0DAkAgBkUEQEEAIQVBASEEDAELIAYQfiIERQ0FIAchASAEIQACQCAGIgNBEEkNACADQfD///8HcSEJQQAhBQNAIAQgBWohACAFIAdqIgH9AAAAIhH9DP/////////////////////9JyIQ/RYBQQFxIBD9FgBBAXFqIBD9FgJBAXFqIBD9FgNBAXFqIBD9FgRBAXFqIBD9FgVBAXFqIBD9FgZBAXFqIBD9FgdBAXFqIBD9FghBAXFqIBD9FglBAXFqIBD9FgpBAXFqIBD9FgtBAXFqIBD9FgxBAXFqIBD9Fg1BAXFqIBD9Fg5BAXFqIBD9Fg9BAXFqQf8BcUEQRwRAIAUhCQwCCyAA/QwgICAgICAgICAgICAgICAg/QwAAAAAAAAAAAAAAAAAAAAAIBH9DL+/v7+/v7+/v7+/v7+/v7/9bv0MGhoaGhoaGhoaGhoaGhoaGv0m/VIgEf1Q/QsAACAFQRBqIQUgA0EQayIDQQ9LDQALIANFBEAgCSEFDAILIAUgB2ohASAEIAVqIQALIAMgCWohBQNAIAEsAAAiCkEATgRAIAAgCkHBAGtB/wFxQRpJQQV0IApyOgAAIABBAWohACABQQFqIQEgCUEBaiEJIANBAWsiAw0BDAILCyACIAk2AhQgAiAENgIQIAEgA2ohDiACIAY2AgwgBiAHaiEPIAkhBUEAIQMDQAJ/An8CQAJAAkAgASwAACIAQQBIBEAgAS0AAUE/cSELIABBH3EhCgJ/IABBX00EQCAKQQZ0IAtyIQAgAUECagwBCyABLQACQT9xIAtBBnRyIQsgAEFwSQRAIAsgCkEMdHIhACABQQNqDAELIApBEnRBgIDwAHEgAS0AA0E/cSALQQZ0cnIhACABQQRqCyIKIAMgAWtqIQsgAEGjB0YEQAJAIAMgCWoiBEUNACAEIAZPBEAgBCAGRg0BDBELIAQgB2osAABBQEgNEAsgBCAHaiEBQQAhCAJAA0BBgwEhDCABIAdGDQEgAUEBayIDLAAAIgBBAEgEQCAAQT9xAn8gAUECayIDLQAAIgDAIg1BQE4EQCAAQR9xDAELIA1BP3ECfyABQQNrIgMtAAAiAMAiDUG/f0oEQCAAQQ9xDAELIA1BP3EgAUEEayIDLQAAQQdxQQZ0cgtBBnRyC0EGdHIiAEGAgMQARg0CCwJ/AkAgCA0AIAAQgQVFDQBBgIDEACEAQQAMAQtBAQshCCADIQEgAEGAgMQARg0ACyAAEJMFRQ0AAkAgBEECaiIARQ0AIAAgBk8EQCAAIAZGDQEMEQsgACAHaiwAAEFASA0QCyAAIAdqIQFBACEDA0BBggEhDCABIA9GDQECfyABLAAAIgBBAE4EQCAAQf8BcSEAIAFBAWoMAQsgAS0AAUE/cSEIIABBH3EhBCAAQV9NBEAgBEEGdCAIciEAIAFBAmoMAQsgAS0AAkE/cSAIQQZ0ciEIIABBcEkEQCAIIARBDHRyIQAgAUEDagwBCyAEQRJ0QYCA8ABxIAEtAANBP3EgCEEGdHJyIgBBgIDEAEYNAiABQQRqCyEBAn8CQCADQQFxDQAgABCBBUUNAEGAgMQAIQBBAAwBC0EBCyEDIABBgIDEAEYNAAtBg39Bgn8gABCTBRshDAsgAigCDCAFIgFrQQFNBH8gAkEMaiABQQIQqAYgAigCFAUgAQsgAigCECIEaiIAIAw6AAEgAEHPAToAACAFQQJqDAYLIABBgAFJDQFBzQVBACAAQdI9TxsiASABQeYCaiIBIAFBA3RBuLvCAGooAgAgAEsbIgEgAUGzAWoiASABQQN0Qbi7wgBqKAIAIABLGyIBIAFB2gBqIgEgAUEDdEG4u8IAaigCACAASxsiASABQS1qIgEgAUEDdEG4u8IAaigCACAASxsiASABQRZqIgEgAUEDdEG4u8IAaigCACAASxsiASABQQtqIgEgAUEDdEG4u8IAaigCACAASxsiASABQQZqIgEgAUEDdEG4u8IAaigCACAASxsiASABQQNqIgEgAUEDdEG4u8IAaigCACAASxsiASABQQFqIgEgAUEDdEG4u8IAaigCACAASxsiASABQQFqIgEgAUEDdEG4u8IAaigCACAASxsiAUEDdEG4u8IAaigCACIDIABGDQIMAwsgAEH/AXEhACABQQFqIgogAyABa2ohCwsgAEHBAGtBGklBBXQgAHIhAEEBIQhBAQwCCwJAIAEgACADS2oiAEGZC00EQEHpACAAQQN0Qby7wgBqKAIAIgAgAEGAsANzQYCAxABrQYCQvH9JIgEbIQAgAQ0BQQEhCCAAQYABTw0CQQEMAwtBmgtBmgtBqLvCABC/BwALIAUhAwJ/QQEgAEGAAUkiCA0AGkECIABBgBBJDQAaQQNBBCAAQYCABEkbCyIBIAIoAgwgBWtLBH8gAkEMaiAFIAEQqAYgAigCECEEIAIoAhQFIAMLIARqIQMCQAJAIAhFBEAgAEGAEEkNASAAQYCABE8EQCADIABBP3FBgAFyOgADIAMgAEESdkHwAXI6AAAgAyAAQQZ2QT9xQYABcjoAAiADIABBDHZBP3FBgAFyOgABDAMLIAMgAEE/cUGAAXI6AAIgAyAAQQx2QeABcjoAACADIABBBnZBP3FBgAFyOgABDAILIAMgADoAAAwBCyADIABBP3FBgAFyOgABIAMgAEEGdkHAAXI6AAALIAIgASAFaiIBNgIUIAIoAgwgASIAa0EBTQR/IAJBDGogAEECEKgGIAIoAhQFIAALIAIoAhAiBGpBzI8COwAAIAFBAmoMAgtBACEIQQIgAEGAEEkNABpBA0EEIABBgIAESRsLIgEgAigCDCAFIgNrSwR/IAJBDGogAyABEKgGIAIoAhAhBCACKAIUBSADCyAEaiEDAkACQAJAIAhFBEAgAEGAEEkNASAAQYCABEkNAiADIABBP3FBgAFyOgADIAMgAEESdkHwAXI6AAAgAyAAQQZ2QT9xQYABcjoAAiADIABBDHZBP3FBgAFyOgABDAMLIAMgADoAAAwCCyADIABBP3FBgAFyOgABIAMgAEEGdkHAAXI6AAAMAQsgAyAAQT9xQYABcjoAAiADIABBDHZB4AFyOgAAIAMgAEEGdkE/cUGAAXI6AAELIAEgBWoLIQUgCyEDIAIgBTYCFCAKIgEgDkcNAAsgAigCECEEIAIoAgwhBgsCQAJAAkACQAJAAkACQCAFQQNrDgQABAECBQsgBEHw2scAQQMQkAhFBEBBACEBDAYLIARByILIAEEDEJAIDQJBASEBDAULIARBy4LIAEEFEJAIDQNBAiEBDAQLIARB0ILIAEEGEJAIDQJBAyEBDAMLQQQhASAEQYCDyABBAxCQCEUNAiAEQYODyABBAxCQCEUNAkEGQQUgBEHfgsgAQQMQkAgbIQEMAgsgBCgAAEHz3p2bB0cNAEEEIQEMAQtBBiEBCyAGRQ0AIARBBGsoAgAiAEF4cSIDQQRBCCAAQQNxIgAbIAZqSQ0BIABBACADIAZBJ2pLGw0CIAQQtAILIAJBQGskACABDwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALQdD3wQAQtwgLAAsgByAGIAAgBkHA98EAEP0JAAsgByAGQQAgBEGw98EAEP0JAAuLHgIMfwF+IwBBsAFrIgIkACABKAIMIQcCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIUIgQgASgCECIGSQRAIAFBDGohBQNAAkACQCAEIAdqLQAAIgNBCWsOJQEBCwsBCwsLCwsLCwsLCwsLCwsLCwsLAQsICwsLCwsLCwsLCwcACyADQdsAaw4hCAoKCgoKCgoKCgoFCgoKCgoKCgMKCgoKCgQKCgoKCgoJCgsgASAEQQFqIgQ2AhQgBCAGRw0ACyAGIQQLIAJBCGogByAGIARBAWoiASAGIAEgBkkbEIYCIAIoAgwhAyACKAIIIQVBFBB+IgFFDR4gASAFNgIMIAFBBTYCACAAIAE2AgQgAEGVgICAeDYCACABIAM2AhAMHQsgASAEQQFqIgU2AhQCQCAFIAZPDQAgASAEQQJqIgM2AhQgBSAHai0AAEH1AEcNGyADIAUgBiAFIAZLGyIFRg0AIAEgBEEDaiIJNgIUIAMgB2otAABB7ABHBEAgCSEDDBwLIAUgCUYNACABIARBBGoiAzYCFCAHIAlqLQAAQewARw0bIABCkoCAgAg3AwAMHQsgAkEQaiAHIAYgBRCGAiACKAIUIQEgAigCECEDQRQQfiIERQ0dIARBBTYCAAwbCyABIARBAWoiBTYCFAJAIAUgBk8NACABIARBAmoiAzYCFCAFIAdqLQAAQfIARw0YIAMgBSAGIAUgBksbIgVGDQAgASAEQQNqIgk2AhQgAyAHai0AAEH1AEcEQCAJIQMMGQsgBSAJRg0AIAEgBEEEaiIDNgIUIAcgCWotAABB5QBHDRggAEKAgICAGDcDAAwcCyACQSBqIAcgBiAFEIYCIAIoAiQhASACKAIgIQNBFBB+IgRFDRwgBEEFNgIADBgLIAEgBEEBaiIFNgIUAkAgBSAGTw0AIAEgBEECaiIDNgIUIAUgB2otAABB4QBHDRUgAyAFIAYgBSAGSxsiBUYNACABIARBA2oiCTYCFCADIAdqLQAAQewARwRAIAkhAwwWCyAFIAlGDQAgASAEQQRqIgg2AhQgByAJai0AAEHzAEcEQCAIIQMMFgsgBSAIRg0AIAEgBEEFaiIDNgIUIAcgCGotAABB5QBHDRUgAEKAgICACDcDAAwbCyACQTBqIAcgBiAFEIYCIAIoAjQhASACKAIwIQNBFBB+IgRFDRsgBEEFNgIADBULIAEgBEEBajYCFCACQeAAaiABQQAQ6QMgAikDYCIOQgNRDRIgACACKQNoNwMIIABBADYCBCAAIA6nQQJ0QfjzwQBqKAIANgIADBkLIAFBADYCCCABIARBAWo2AhQgAkHgAGogBSABEI8CIAIoAmQhBSACKAJgIgNBAkYNECACKAJoIQEgA0EBcUUNBCABQQBIDQMCQCABRQRAQQEhAwwBCyABEH4iA0UNGgsgAQRAIAMgBSAB/AoAAAsgACABNgIMIAAgAzYCCCAAIAE2AgQgAEGMgICAeDYCAAwYCyABIAEtABhBAWsiBToAGCAEQQFqIQMgBUH/AXFFDQ4gASADNgIUIAJBAToAlAEgAiABNgKQASACQoCAgICAATcCoAFBACEEQQghA0EIIQYCQANAAkAgAiAENgKoASACQeAAaiACQZABahDHAwJAAkAgAi0AYEEBRgRAIAIoAmQhBQwBCyACLQBhQQFHDQIgAkHgAGogAigCkAEQiwEgAigCZCEFIAIoAmAiC0GVgICAeEcNAQsgAigCpAEhBiAEBEAgBiEDA0AgAxCiAyADQRBqIQMgBEEBayIEDQALC0GVgICAeCEEQQEhCSACKAKgASIDRQ0DIAZBBGsoAgAiCEF4cSIHIANBBHQiA0EEQQggCEEDcSIIG3JJDQggCEEAIAcgA0EnaksbDQkgBhC0AgwDCyACKQNoIQ4gAigCoAEgBEYEQCMAQSBrIgYkAAJAAkAgAkGgAWoiCCgCACIHQf///z9LDQBBBCAHQQF0IgwgDEEETRsiDEEEdCINQfj///8HSw0AIAYgBwR/IAYgB0EEdDYCHCAGIAgoAgQ2AhRBCAVBAAs2AhggBkEIakEIIA0gBkEUahDSByAGKAIIQQFHDQEgBigCEBogBigCDCEKCyAKQfCEwQAQ0AkACyAGKAIMIQcgCCAMNgIAIAggBzYCBCAGQSBqJAAgAigCpAEhBgsgAyAGaiIIIA43AgAgCEEEayAFNgIAIAhBCGsgCzYCACADQRBqIQMgBEEBaiEEDAELC0GUgICAeCEEIAIpAqQBIQ4gAigCoAEhBQsgASABLQAYQQFqOgAYIAIgARDbAyIDNgJwIAIgDjcDaCACIAU2AmQgAiAENgJgAkACQCAJRQRAIAMNASAOQiCIpyEDIA6nIQkMDwtBlYCAgHghBCADRQ0BIAJB8ABqENcEDAELIAJB4ABqEKIDQZWAgIB4IQQgAyEFCwwMCyABIAEtABhBAWsiBToAGCAEQQFqIQMgBUH/AXFFDQogASADNgIUIAJBAToAgAEgAiABNgJ8IAJBADYCjAEgAkKAgICAgAE3AoQBQQghBQNAIAJB4ABqIAJB/ABqEOcCIAItAGBBAUYEQCACKAJkIQYMCgsgAi0AYUEBRgRAIAIoAnwiCEEANgIIIAggCCgCFEEBajYCFCACQeAAaiAIQQxqIAgQjwIgAigCZCEGIAIoAmAiA0ECRg0KIAIoAmghBAJ/IANBAXEEQCAEQQBIDQkCQCAERQRAQQEhAwwBCyAEEH4iA0UNHAsgBARAIAMgBiAE/AoAAAsgBCEGQYyAgIB4DAELIAQhA0GNgICAeAshCiACIAQ2AqwBIAIgAzYCqAEgAiAGNgKkASACIAo2AqABIAgoAgwhBwJAAkAgCCgCFCIEIAgoAhAiA0kEQANAAkAgBCAHai0AAEEJaw4yAAADAwADAwMDAwMDAwMDAwMDAwMDAwMAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQDCyAIIARBAWoiBDYCFCADIARHDQALIAMhBAsgAkHYAGogByADIARBAWoiBSADIAMgBUsbEIYCIAIoAlwhAyACKAJYIQVBFBB+IgZFDRsgBiAFNgIMIAZBAzYCACAGIAM2AhAMCwsgAkHQAGogByADIARBAWoiBSADIAMgBUsbEIYCIAIoAlQhAyACKAJQIQVBFBB+IgZFDRogBiAFNgIMIAZBBjYCACAGIAM2AhAMCgsgCCAEQQFqNgIUIAJB4ABqIAgQiwEgAigCYEGVgICAeEYNCCACIAL9AANg/QsDkAEgAikDqAEhDiACKAKEASAJRgRAQQAhCCMAQSBrIgMkAAJAAkAgAkGEAWoiBSgCACIEQf///x9LDQBBBCAEQQF0IgcgB0EETRsiB0EFdCILQfj///8HSw0AIAMgBAR/IAMgBEEFdDYCHCADIAUoAgQ2AhRBCAVBAAs2AhggA0EIakEIIAsgA0EUahDSByADKAIIQQFHDQEgAygCEBogAygCDCEICyAIQeCEwQAQ0AkACyADKAIMIQQgBSAHNgIAIAUgBDYCBCADQSBqJAAgAigCiAEhBQsgBSAJQQV0aiIDIA43AgggAyAGNgIEIAMgCjYCACADIAL9AAOQAf0LAhAgAiAJQQFqIgk2AowBDAELCyAJrSEOIAIoAoQBIQQMCQsgA0Ewa0H/AXFBCk8EQCACIAcgBiAEQQFqIgMgBiADIAZJGxCGAiACKAIEIQMgAigCACEEQRQQfiIFRQ0XIAUgBDYCDCAFQQo2AgAgBSADNgIQDAwLIAJB4ABqIAFBARDpAyACKQNgIg5CA1EEQCAAIAIoAmg2AgQgAEGVgICAeDYCAAwWCyAAIAIpA2g3AwggAEEANgIEIAAgDqdBAnRB+PPBAGooAgA2AgAMFQtB/KTIABC3CAALIAAgATYCCCAAIAU2AgQgAEGNgICAeDYCAAwTC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAtB/KTIABC3CAALIAIoAmQhBgsgAkGgAWoQogMLIAIoAogBIQMgCQRAIAMhBANAIAQQogMgBEEQahCiAyAEQSBqIQQgCUEBayIJDQALC0GVgICAeCEEIAIoAoQBIgVFBEAgBiEFDAELIAMgBUEFdEEIENYHIAYhBQsgASABLQAYQQFqOgAYIAIgARCKBSIDNgJwIAIgBTYCZCACIAQ2AmAgAiAONwNoAkACQCAEQZWAgIB4RwRAIAMNASAOQiCIpyEDIA6nIQkMBAsgAw0BQZWAgIB4IQQgDqchCQwDCyACQeAAahCiA0GVgICAeCEEIAMhBSAOpyEJDAILIAJB8ABqENcEQZWAgIB4IQQgDqchCQwBCyACQcgAaiAHIAYgAyAGIAMgBkkbEIYCIAIoAkwhAyACKAJIIQVBFBB+IgFFDQwgASAFNgIMIAFBGDYCACAAIAE2AgQgAEGVgICAeDYCACABIAM2AhAMCwsgBEGVgICAeEYNACAAIAM2AgwgACAJNgIIIAAgBTYCBCAAIAQ2AgAMCgsgBSABEJYGIQEgAEGVgICAeDYCACAAIAE2AgQMCQsgAkFAayAHIAYgAyAGIAMgBkkbEIYCIAIoAkQhAyACKAJAIQVBFBB+IgFFDQkgASAFNgIMIAFBGDYCACAAIAE2AgQgAEGVgICAeDYCACABIAM2AhAMCAsgAEGVgICAeDYCACAAIAU2AgQMBwsgACACKAJoNgIEIABBlYCAgHg2AgAMBgsgAkE4aiAHIAYgAxCGAiACKAI8IQEgAigCOCEDQRQQfiIERQ0GIARBCTYCAAsgBCADNgIMIAAgBDYCBCAAQZWAgIB4NgIAIAQgATYCEAwECyACQShqIAcgBiADEIYCIAIoAiwhASACKAIoIQNBFBB+IgRFDQQgBEEJNgIACyAEIAM2AgwgACAENgIEIABBlYCAgHg2AgAgBCABNgIQDAILIAJBGGogByAGIAMQhgIgAigCHCEBIAIoAhghA0EUEH4iBEUNAiAEQQk2AgALIAQgAzYCDCAAIAQ2AgQgAEGVgICAeDYCACAEIAE2AhALIAJBsAFqJAAPCwALhhYDEX8BfgFvIwBB4AZrIgEkACABQaABaiIHIAIgAygCDBEBAAJAAkACQAJAAkACQCABKQOgAULjuLff5OHXqGOFIAEpA6gBQpWjj9nAx5KMvX+FhFAEQCABQTBqIAJB8AD8CgAAIAEoApQBIgNFDQEgByADIAEoApgBIhIoAgwiCBEBAAJAAkACQAJAAkAgASkDoAFC7sGdmPLCkvmYf4UgASkDqAFChcyOgPfP6dRohYRQRQRAIAcgAyAIEQEAIAEpA6ABQuWH3ryz2rPhxACFIAEpA6gBQqynl6rfstjsyQCFhFANASAHIAMgCBEBACABKQOgAUKA49yut8CX5S+FIAEpA6gBQvGsgrbkgP7hPoWEUA0CIAcgAyAIEQEAIAEpA6ABQqDNkamkofv0k3+FIAEpA6gBQtDM+uGw4u+YEYWEUA0DIAcgAyAIEQEAIAEpA6ABQuvPl52IxIGDon+FIAEpA6gBQveAsPjX6uXBqn+FhFANBCAHIAMgCBEBACABKQOgAULhj7yU1aXQy9YAhSABKQOoAUKupdLzmqHj775/hYRQIhMNBSABQQA2ArABIAFBATYCpAEgAUGws8EANgKgASABQgQ3AqgBIAdBuLPBABDKCAALIAFBoAFqIANBuAX8CgAAIAFBEGogA0Ecav0AAgD9CwMAIAFBIGogA0Esav0AAgD9CwMAIAEgA/0AAgz9CwMAIAMoAjwhByADKAIIIQggAykDACEVIAEoAsgGIgQEQCABKALMBiIFQQRrKAIAIgZBeHEiCUEEQQggBkEDcSIGGyAEakkNDCAGQQAgCSAEQSdqSxsNCyAFELQCCwJAIAEoArwGIgVBg4CAgHhGDQAgAUHgAWohBAJAAkACQEEBIAVBgICAgHhzIAVBAE4bDgIBAgALIAQQyQEMAgsgBBDuAwwBCyAEENQCCyADQQRrKAIAIgRBeHFBvAVBwAUgBEEDcSIFG0kNCyAFRQ0IIARB4AVPDQoMCAsgAUEQaiADQRxq/QACAP0LAwAgAUEgaiADQSxq/QACAP0LAwAgASAD/QACDP0LAwAgAygCgAEhCSADKAJ8IQ0gAygCdCEOIAMoAnAhCyADKAJoIRIgAygCZCEEIAMoAlwhEyADKAJYIQUgAygCUCEMIAMoAkwhBiADKAI8IQcgAygCCCEIIAMpAgAhFSADKAJAIgoEQCADKAJEIg9BBGsoAgAiEEF4cSIRQQRBCCAQQQNxIhAbIApqSQ0LIBBBACARIApBJ2pLGw0KIA8QtAILIAYEQCAMQQRrKAIAIgpBeHEiD0EEQQggCkEDcSIKGyAGakkNCyAKQQAgDyAGQSdqSxsNCiAMELQCCyAFBEAgE0EEaygCACIGQXhxIgxBBEEIIAZBA3EiBhsgBWpJDQsgBkEAIAwgBUEnaksbDQogExC0AgsCQCAEQYCAgIB4Rg0AIAQEQCASQQRrKAIAIgVBeHEiBiAEQQJ0IgRBBEEIIAVBA3EiBRtqSQ0MIAVBACAGIARBJ2pLGw0LIBIQtAILIAsEQCAOQQRrKAIAIgRBeHEiBSALQQF0IgZBBEEIIARBA3EiBBtqSQ0MIARBACAFIAZBJ2pLGw0LIA4QtAILIA1FDQAgCUEEaygCACIEQXhxIgUgDUECdCIGQQRBCCAEQQNxIgQbakkNCyAEQQAgBSAGQSdqSxsNCiAJELQCCyADQQRrKAIAIgRBeHFBrNMAQbDTACAEQQNxIgUbSQ0KIAVFIARB0NMASXINBwwJCyABQRBqIANBHGr9AAIA/QsDACABQSBqIANBLGr9AAIA/QsDACABIAP9AAIM/QsDACADKAI8IQcgAygCCCEIIAMpAgAhFSADKAJAIgQEQCADKAJEIgVBBGsoAgAiBkF4cSIJQQRBCCAGQQNxIgYbIARqSQ0KIAZBACAJIARBJ2pLGw0JIAUQtAILIANBBGsoAgAiBEF4cSIFQdAAQdQAIARBA3EiBBtJDQkgBEUgBUH0AElyDQYMCAsgAUEQaiADQRxq/QACAP0LAwAgAUEgaiADQSxq/QACAP0LAwAgASAD/QACDP0LAwAgAygCPCEHIAMoAgghCCADKQIAIRUgAygCQCIEBEAgAygCRCIFQQRrKAIAIgZBeHEiCUEEQQggBkEDcSIGGyAEakkNCSAGQQAgCSAEQSdqSxsNCCAFELQCCyADQQRrKAIAIgRBeHEiBUHQAEHUACAEQQNxIgQbSQ0IIARFIAVB9ABJcg0FDAcLIAFBEGogA0Ecav0AAgD9CwMAIAFBIGogA0Esav0AAgD9CwMAIAEgA/0AAgz9CwMAIAMoAjwhByADKAIIIQggAykCACEVIAMoAkAiBARAIAMoAkQgBEEBENYHCyADQQRrKAIAIgRBeHEiBUHQAEHUACAEQQNxIgQbSQ0HIARFIAVB9ABJcg0EDAYLIAFBEGogA0GUAmr9AAIA/QsDACABQSBqIANBpAJq/QACAP0LAwAgASAD/QAChAL9CwMAIAMoAoACIQggAykC+AEhFSADKALoASEMIAMoAuQBIQYgAygCiAEhCiADKAJ0IQ8gAygCcCEJIAMoAmwhBSADKAJoIQ0gAygCZCEOIAMoAgAhBCADKAK0AiEHIAMoAtgCIgsEQCADKALcAiALQQEQ1gcLAkAgBEECRg0AIAUEQCANQSRqIQQDQCAEQQRrKAIAIgtBgICAgHhyQYCAgIB4RwRAIAQoAgAiEEEEaygCACIRQXhxIhRBBEEIIBFBA3EiERsgC2pJDQogEUEAIBQgC0EnaksbDQkgEBC0AgsgBEEwaiEEIAVBAWsiBQ0ACwsgDgRAIA0gDkEwbEEIENYHCyAJQYCAgIB4ckGAgICAeEYNACAPIAlBARDWBwsgAyASIBMbIQMgBkUgCkECRnJFBEAgDCAGQShsQQgQ1gcLIANBBGsoAgAiBEF4cUGEA0GIAyAEQQNxIgUbSQ0CIAVFIARBqANJcg0DDAULIAEgAzYCpAEgASACNgKgAUHA+MgAQSsgAUGgAWpBwPHBAEHg8sEAEJUHAAtBjLPBABCkCgALQeCLyABBLkGQjMgAEKIIDAELIAMQtAIgASgCPCIDQYCAgIB4ckGAgICAeEcEQCABKAJAIgRBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIANqSQ0DIAVBACAGIANBJ2pLGw0CIAQQtAILIAEoAkhBgICAgHhHBEAgAUHIAGoQmQMLIAEoAjAiAwRAIAEoAjQiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgA2pJDQMgBUEAIAYgA0EnaksbDQIgBBC0AgsCQCABKAKIASIDQYCAgIB4ckGAgICAeEcEQCABKAKMASIEQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyADakkNBCAFQQAgBiADQSdqSxsNASAEELQCC0HUABB+IgNFDQEgAyAINgIUIAMgFTcCDCADQQA2AgggA0KBgICAEDcCACADIAH9AAMA/QsCGCADIAc2AlAgAyAINgJMIAMgBzYCSCADQShqIAFBEGr9AAMA/QsCACADQThqIAFBIGr9AAMA/QsCACADQQhqEAkhFhCFBSIHIBYmASACQQRrKAIAIgNBeHFB9ABB+AAgA0EDcSIIG0kNAyAIQQAgA0GYAU8bDQIgAhC0AiAAIAc2AgQgAEEANgIAIAFB4AZqJAAPCwwBCwALQaCMyABBLkHQjMgAEKIIAAtB4IvIAEEuQZCMyAAQoggAC+IaAxN/Bn0BfiMAQbABayICJAACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQCABKAIUIgMgASgCECIESQRAIAEoAgwhBgJ+AkADQCADIAZqLQAAIgVBCWsiB0EXS0EBIAd0QZOAgARxRXINASABIANBAWoiAzYCFCADIARHDQALIAQhA0IADAELQoACCyAFrUIQhoRCgIK4A1ENAQsCQCACQShqIAEoAgwiByAEIAMgBEkEfwNAIAMgB2otAAAiCEEJayIFQRdLQQEgBXRBk4CABHFFcg0CIAEgA0EBaiIDNgIUIAMgBEcNAAsgBAUgAwtBAWoiASAEIAEgBEkbEIYCIAIoAiwhASACKAIoIQRBFBB+IgMNAgwQCwJAIAhB2wBHBEAgCEH7AEYNASABIAJBrwFqQYySwQAQ+gEhBQwOCyABIAEtABhBAWsiBToAGCADQQFqIQMgBUH/AXFFDQsgASADNgIUIAIgATYCpAEgAkEBOgCoASACQeQAaiACQaQBahDHAwJAIAItAGRBAUYEQCACKAJoIQRBAiEDDAELAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAItAGVBAUYEQCACQeQAaiACKAKkARDoAiACKAJkIgVBAkYEQCACKAJoIQRBAiEDDA4LIAIoAmghDyACQeQAaiACQaQBahDHAyACLQBkQQFGBEAgAigCaCEEQQIhAwwOCyACLQBlQQFHDQIgAkHkAGogAigCpAEQ6AIgAigCZCIHQQJHDQEgAigCaCEEQQIhAwwNC0EAQdiKyABBgIjIABCPByEEQQIhAwwMCyACKgJoIRUgAkHkAGogAkGkAWoQxwMgAi0AZEEBRgRAIAIoAmghBEECIQMMDAsgAi0AZUEBRw0CIAJB5ABqIAIoAqQBEOgCIAIoAmQiCEECRw0BIAIoAmghBEECIQMMCwtBAUHYisgAQYCIyAAQjwchBEECIQMMCgsgAioCaCEWIAJB5ABqIAJBpAFqEMcDIAItAGRBAUYEQCACKAJoIQRBAiEDDAoLIAItAGVBAUcNAiACQeQAaiACKAKkARDoAiACKAJkIhBBAkcNASACKAJoIQRBAiEDDAkLQQJB2IrIAEGAiMgAEI8HIQRBAiEDDAgLIAIqAmghFyACQeQAaiACQaQBahDHAyACLQBkQQFGBEAgAigCaCEEQQIhAwwICyACLQBlQQFHDQIgAkHkAGogAigCpAEQ6AIgAigCZCIRQQJHDQEgAigCaCEEQQIhAwwHC0EDQdiKyABBgIjIABCPByEEQQIhAwwGCyACKgJoIRggAkHkAGogAkGkAWoQxwMgAi0AZEEBRgRAIAIoAmghBEECIQMMBgsgAi0AZUEBRw0BIAJB5ABqIAIoAqQBEOgCQQIhAyACKAJkIhJBAkYEQCACKAJoIQQMBgsgAigCaCEKIAJB5ABqIAJBpAFqEPoGIAIoAmghBCACKAJkIgtBAmsOAgMFAgtBBEHYisgAQYCIyAAQjwchBEECIQMMBAtBBUHYisgAQYCIyAAQjwchBEECIQMMAwsgAkHkAGohCSMAQRBrIgYkACAGQQhqIAJBpAFqIgwQxwMCQCAGLQAIQQFGBEAgCSAGKAIMNgIEIAlBAToAAAwBCyAGLQAJRQRAIAlBgAY7AQAMAQsgBkEIaiAMKAIAEI0CIAYtAAhBAUYEQCAJIAYoAgw2AgQgCUEBOgAADAELIAkgBi0ACToAASAJQQA6AAALIAZBEGokACACLQBkRQ0BIAIoAmghBAwCC0EGQdiKyABBgIjIABCPByEEDAELIAItAGUiE0EDRwRAIAQhFCAPIQQgBSEDDAELQQdB2IrIAEGAiMgAEI8HIQQLIAEgAS0AGEEBajoAGCACIAEQ2wMiBTYCoAEgAiATOgCcASACIBQ2ApgBIAIgCzYClAEgAiAKNgKQASACIBI2AowBIAIgGDgCiAEgAiARNgKEASACIBc4AoABIAIgEDYCfCACIBY4AnggAiAINgJ0IAIgFTgCcCACIAc2AmwgAiAENgJoIAIgAzYCZEECIQcgA0ECRwRAIAUNCyACQeAAaiACQewAaiIFQTBqKAIANgIAIAJB0ABqIAVBIGr9AAIA/QsDACACQUBrIAVBEGr9AAIA/QsDACACIAX9AAIA/QsDMCADIQcMCgsgBQ0DDAkLIAEgAS0AGEEBayIFOgAYIANBAWohAyAFQf8BcUUNByABIAM2AhQgAkEBOgCoASACIAE2AqQBQQMhBkECIQlBAiEMQQIhDUECIQtBAiEFQQIhDkECIQoCfwJAA0ACQCACQeQAaiIEIAJBpAFqEOcCIAItAGRBAUYNACACLQBlQQFHDQcgAigCpAEiA0EANgIIIAMgAygCFEEBajYCFCAEIANBDGogAxCPAiACKAJoIQQgAigCZEECRg0CAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAmxBBmsOBQADAwMBAwsgBEHeicgAQQYQkAhFDQMgBEHkicgAQQYQkAgNASAOQQJGDQRB5InIAEEGENEHIQRBAgwOCyAEQeqJyABBChCQCEUNBCAEQfSJyABBChCQCEUNBSAEQZCKyABBChCQCA0BIAZBA0YNCUGQisgAQQoQ0QchBEECDA0LIARB/onIAEEGEJAIRQ0FIARBhIrIAEEGEJAIRQ0GIARBiorIAEEGEJAIRQ0HCyADEKsBIgRFDQkMCgsgCkECRwRAQd6JyABBBhDRByEEQQIMCwsgAkHkAGogAxDZBUECIQMgAigCaCIPIQQgAigCZCIKQQJHDQgMEQsgAkHkAGogAxDZBUECIQMgAigCaCIEviEXIAIoAmQiDkECRw0HDBALIAVBAkcEQEHqicgAQQoQ0QchBEECDAkLIAJB5ABqIAMQ2QVBAiEDIAIoAmgiBL4hFSACKAJkIgVBAkcNBgwPCyALQQJHBEBB9InIAEEKENEHIQRBAgwICyACQeQAaiADENkFQQIhAyACKAJoIgS+IRYgAigCZCILQQJHDQUMDgsgDUECRwRAQf6JyABBBhDRByEEQQIMBwsgAkHkAGogAxDZBUECIQMgAigCaCIEviEYIAIoAmQiDUECRw0EDA0LIAxBAkcEQEGEisgAQQYQ0QchBEECDAYLIAJB5ABqIAMQ2QVBAiEDIAIoAmgiBL4hGSACKAJkIgxBAkcNAwwMCyAJQQJHBEBBiorIAEEGENEHIQRBAgwFCyACQeQAaiADENkFQQIhAyACKAJoIgS+IRogAigCZCIJQQJHDQIMCwsgAkHkAGogAxDcBSACLQBlIQYgAi0AZEEBRw0BCwsgAigCaCEEC0ECCyEDDAYLIAEgA0EBaiIFNgIUAkAgBCAFTQ0AIAEgA0ECaiIINgIUIAUgBmotAABB9QBHDQQgCCAFIAQgBCAFSRsiBUYNACABIANBA2oiBzYCFCAGIAhqLQAAQewARwRAIAchCAwFCyAFIAdGDQAgASADQQRqIgg2AhQgBiAHai0AAEHsAEcNBCAAQQI2AgAMDgsgAkEIaiAGIAQgBRCGAiACKAIMIQEgAigCCCEEQRQQfiIDRQ0OIANBBTYCAAwECyADIAQ2AgwgA0EFNgIAIAMgATYCEAwLCyACQaABahDXBAwFCyAKQQAgCkECRxshAyAJQQAgCUECRxshEyAMQQAgDEECRxshEiANQQAgDUECRxshByALQQAgC0ECRxshCCAFQQAgBUECRxshECAOQQAgDkECRxshEUECIAYgBkEDRhshFCAPIQQMAgsgAkEQaiAGIAQgCBCGAiACKAIUIQEgAigCECEEQRQQfiIDRQ0KIANBCTYCAAsgAyAENgIMIAAgAzYCBCAAQQM2AgAgAyABNgIQDAgLIAEgAS0AGEEBajoAGCACIAEQigUiBTYCoAEgAiAUOgCcASACIBo4ApgBIAIgEzYClAEgAiAZOAKQASACIBI2AowBIAIgGDgCiAEgAiAHNgKEASACIBY4AoABIAIgCDYCfCACIBU4AnggAiAQNgJ0IAIgFzgCcCACIBE2AmwgAiAENgJoIAIgAzYCZEECIQcgA0ECRwRAIAUNAyACQeAAaiACQewAaiIFQTBqKAIANgIAIAJB0ABqIAVBIGr9AAIA/QsDACACQUBrIAVBEGr9AAIA/QsDACACIAX9AAIA/QsDMCADIQcgBCEFDAMLIAVFBEAgBCEFDAMLIAJBoAFqENcEIAQhBQwCCyACQSBqIAcgBCADIAQgAyAESRsQhgIgAigCICEEIAIoAiQMAwsgBCEFCyAHQQJGDQIgACAC/QADMP0LAgggAEE4aiACQeAAaigCADYCACAAQShqIAJB0ABq/QADAP0LAgAgAEEYaiACQUBr/QADAP0LAgAgACAFNgIEIAAgBzYCAAwECyACQRhqIAcgBCADIAQgAyAESRsQhgIgAigCGCEEIAIoAhwLIQFBFBB+IgNFDQMgAyAENgIMIANBGDYCACADIAE2AhAMAQsgBSABEJYGIQMLIABBAzYCACAAIAM2AgQLIAJBsAFqJAAPCwAL1BYCH38FfSMAQZABayIBJAACQAJAAkACQAJAAkAgACgCxAEiAkEfcUUEQCABQQA6AEggAUEANgJEIAEgAkEFdiIZNgJAIAAgAUFAaxDMBCABQQA2AgwgAUKAgICAwAA3AgQgAUEANgIYIAFCgICAgMAANwIQIAFBADYCJCABQoCAgIDAADcCHCABQQA2AjAgAUKAgICAwAA3AiggAUEANgI8IAFCgICAgMAANwI0IAJFBEBBBCECIAAQrwEhCkEEIQRBBCEDQQQhEAwDC0EEIRACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkADQCALQYCABCAZIBNrIgIgAkGAgARPGyIOQQNsIgdJBEAgByALIgJrIgMgASgCBCACa0sEQCABQQRqIAIgA0EEQQQQ0AUgASgCCCEQIAEoAgwhAgsgECACQQJ0aiEEIANBAkkEfyACBSAHIAtBf3NqQQJ0IgUEQCAEQQAgBfwLAAsgECACIAdqIAtrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiILNgIMIAEoAhghBQsgBSAOSQRAIA4gBSICayIDIAEoAhAgAmtLBEAgAUEQaiACIANBBEEEENAFIAEoAhghAgsgASgCFCIGIAJBAnRqIQQgA0ECSQR/IAIFIA4gBUF/c2pBAnQiDARAIARBACAM/AsACyAGIAIgDmogBWtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIgU2AhgLIAEoAiQiDCAHSQRAIAcgDCICayIDIAEoAhwgAmtLBEAgAUEcaiACIANBBEEEENAFIAEoAiQhAgsgASgCICIGIAJBAnRqIQQgA0ECSQR/IAIFIAcgDEF/c2pBAnQiDQRAIARBACAN/AsACyAGIAIgB2ogDGtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIgw2AiQLIAEoAjAiDSAHSQRAIAcgDSICayIDIAEoAiggAmtLBEAgAUEoaiACIANBBEEEENAFIAEoAjAhAgsgASgCLCIGIAJBAnRqIQQgA0ECSQR/IAIFIAcgDUF/c2pBAnQiCgRAIARBACAK/AsACyAGIAIgB2ogDWtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIg02AjALIA5BAnQiFCABKAI8IgZLBEAgFCAGIgJrIgMgASgCNCACa0sEQCABQTRqIAIgA0EEQQQQ0AUgASgCPCECCyABKAI4IgogAkECdGohBCADQQJJBH8gAgUgFCAGQX9zakECdCIIBEAgBEEAIAj8CwALIAogAiAUaiAGa0ECdGpBBGshBCACIANqQQFrCyEDIARBADYCACABIANBAWoiBjYCPAsgASgCCCEQAkAgEyAZRwRAIBNBBXQiGiAAKALAAWohG0EBIA4gDkEBTRtBBXQhHCAAKALEASEDQQAhGCABKAI4IRUgASgCFCEdIAEoAiAhHiABKAIsIR8gBSECQQAhF0EAIQ9BACEKA0AgGCAaaiIIQQRqIgQgA0sNIyAIQQhqIgQgA0sNIyAIQQxqIgQgA0sNIyAIQRBqIgQgA0sNIyAIQRRqIgQgA0sNIyAIQRhqIhYgA0sNGSALIA9NDQIgGCAbaiIEQQRqKgAAISAgBEEIaioAACEhIARBDGoqAAAhIiAEQRBqKgAAISMgBEEUaioAACEkIBAgF2oiESAEKgAAOAIAIA9BAWoiCSALTw0EIBFBBGogIDgCACAPQQJqIhIgC08NBSARQQhqICE4AgAgDSAPTQ0GIBcgH2oiESAiOAIAIAkgDU8NByARQQRqICM4AgAgDSASTQ0IIBFBCGogJDgCACADIBZNDQkgDCAPTQ0KIBcgHmoiFiAEQRhqLQAAs0MAAH9DlTgCACAIQRlqIhEgA08NCyAJIAxPDQwgFkEEaiAEQRlqLQAAs0MAAH9DlTgCACAIQRpqIgkgA08NDSAMIBJNDQ4gFkEIaiAEQRpqLQAAs0MAAH9DlTgCACAIQRtqIgkgA08NDyACRQ0QIAogHWogBEEbai0AALNDAAB/Q5U4AgAgCEEcaiIJIANPDREgCEEdaiIJIANPDRIgCEEeaiIJIANPDRMgCEEfaiIIIANPDRQgBiAKTQ0VIARBHGotAAAhCCAEQR5qLQAAIQkgBEEfai0AACESIBUgBEEdai0AALNDAAAAw5JDAAAAPJQ4AgAgCkEBaiIEIAZPDRYgFUEEaiAJs0MAAADDkkMAAAA8lDgCACAKQQJqIgQgBk8NFyAVQQhqIBKzQwAAAMOSQwAAADyUOAIAIApBA2oiBCAGTw0YIBVBDGogCLNDAAAAw5JDAAAAPJQ4AgAgAkEBayECIBVBEGohFSAXQQxqIRcgD0EDaiEPIApBBGohCiAcIBhBIGoiGEcNAAsLIAcgC0sNGCAFIA5JDRkgByAMSw0aIAcgDUsNGyAGIBRJDRwgASgCFCEDIAEoAiAhBCABKAIsIQIgAUIENwKIASABQgI3AoABIAFCBDcCeCABQgQ3AnAgAUIENwJoIAEgFDYCZCABIAEoAjgiBjYCYCABIAc2AlwgASACNgJYIAEgBzYCVCABIAQ2AlAgASAONgJMIAEgAzYCSCABIAc2AkQgASAQNgJAIAAgEyAOIAFBQGsQqAEgDiATaiITIBlPDR4MAQsLIA8gC0H02MAAEL8HAAsgCSALQYTZwAAQvwcACyASIAtBlNnAABC/BwALIA8gDUGk2cAAEL8HAAsgCSANQbTZwAAQvwcACyASIA1BxNnAABC/BwALIBYgA0HU2cAAEL8HAAsgDyAMQeTZwAAQvwcACyARIANB9NnAABC/BwALIAkgDEGE2sAAEL8HAAsgCSADQZTawAAQvwcACyASIAxBpNrAABC/BwALIAkgA0G02sAAEL8HAAsgBSAFQcTawAAQvwcACyAJIANB1NrAABC/BwALIAkgA0Hk2sAAEL8HAAsgCSADQfTawAAQvwcACyAIIANBhNvAABC/BwALIAogBkGU28AAEL8HAAsgBCAGQaTbwAAQvwcACyAEIAZBtNvAABC/BwALIAQgBkHE28AAEL8HAAsgFiADQcy4wQAQogoACyAHIAtBpNjAABCiCgALIA4gBUG02MAAEKIKAAsgByAMQcTYwAAQogoACyAHIA1B1NjAABCiCgALIBQgBkHk2MAAEKIKAAsgAUEANgJQIAFBATYCRCABQezbwAA2AkAgAUIENwJIIAFBQGsQxQchCgwCCyABKAI0IQUgABCvASEKIAVFDQAgBkEEaygCACIAQXhxIgsgBUECdCIFQQRBCCAAQQNxIgAbakkNAyAAQQAgCyAFQSdqSxsNBCAGELQCCyABKAIoIgAEQCACQQRrKAIAIgVBeHEiBiAAQQJ0IgBBBEEIIAVBA3EiBRtqSQ0DIAVBACAGIABBJ2pLGw0EIAIQtAILIAEoAhwiAARAIARBBGsoAgAiAkF4cSIFIABBAnQiAEEEQQggAkEDcSICG2pJDQMgAkEAIAUgAEEnaksbDQQgBBC0AgsgASgCECIABEAgA0EEaygCACICQXhxIgUgAEECdCIAQQRBCCACQQNxIgIbakkNAyACQQAgBSAAQSdqSxsNBCADELQCCyABKAIEIgBFDQAgEEEEaygCACICQXhxIgMgAEECdCIAQQRBCCACQQNxIgIbakkNAiACQQAgAyAAQSdqSxsNAyAQELQCCyABQZABaiQAIAoPCyAEIANBzLjBABCiCgALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC9QWAh9/BX0jAEGQAWsiASQAAkACQAJAAkACQAJAIAAoAswBIgJBH3FFBEAgAUEAOgBIIAFBADYCRCABIAJBBXYiGTYCQCAAIAFBQGsQhgQgAUEANgIMIAFCgICAgMAANwIEIAFBADYCGCABQoCAgIDAADcCECABQQA2AiQgAUKAgICAwAA3AhwgAUEANgIwIAFCgICAgMAANwIoIAFBADYCPCABQoCAgIDAADcCNCACRQRAQQQhAiAAEOABIQpBBCEEQQQhA0EEIRAMAwtBBCEQAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAA0AgC0GAgAQgGSATayICIAJBgIAETxsiDkEDbCIHSQRAIAcgCyICayIDIAEoAgQgAmtLBEAgAUEEaiACIANBBEEEENAFIAEoAgghECABKAIMIQILIBAgAkECdGohBCADQQJJBH8gAgUgByALQX9zakECdCIFBEAgBEEAIAX8CwALIBAgAiAHaiALa0ECdGpBBGshBCACIANqQQFrCyEDIARBADYCACABIANBAWoiCzYCDCABKAIYIQULIAUgDkkEQCAOIAUiAmsiAyABKAIQIAJrSwRAIAFBEGogAiADQQRBBBDQBSABKAIYIQILIAEoAhQiBiACQQJ0aiEEIANBAkkEfyACBSAOIAVBf3NqQQJ0IgwEQCAEQQAgDPwLAAsgBiACIA5qIAVrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiIFNgIYCyABKAIkIgwgB0kEQCAHIAwiAmsiAyABKAIcIAJrSwRAIAFBHGogAiADQQRBBBDQBSABKAIkIQILIAEoAiAiBiACQQJ0aiEEIANBAkkEfyACBSAHIAxBf3NqQQJ0Ig0EQCAEQQAgDfwLAAsgBiACIAdqIAxrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiIMNgIkCyABKAIwIg0gB0kEQCAHIA0iAmsiAyABKAIoIAJrSwRAIAFBKGogAiADQQRBBBDQBSABKAIwIQILIAEoAiwiBiACQQJ0aiEEIANBAkkEfyACBSAHIA1Bf3NqQQJ0IgoEQCAEQQAgCvwLAAsgBiACIAdqIA1rQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiINNgIwCyAOQQJ0IhQgASgCPCIGSwRAIBQgBiICayIDIAEoAjQgAmtLBEAgAUE0aiACIANBBEEEENAFIAEoAjwhAgsgASgCOCIKIAJBAnRqIQQgA0ECSQR/IAIFIBQgBkF/c2pBAnQiCARAIARBACAI/AsACyAKIAIgFGogBmtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIgY2AjwLIAEoAgghEAJAIBMgGUcEQCATQQV0IhogACgCyAFqIRtBASAOIA5BAU0bQQV0IRwgACgCzAEhA0EAIRggASgCOCEVIAEoAhQhHSABKAIgIR4gASgCLCEfIAUhAkEAIRdBACEPQQAhCgNAIBggGmoiCEEEaiIEIANLDSMgCEEIaiIEIANLDSMgCEEMaiIEIANLDSMgCEEQaiIEIANLDSMgCEEUaiIEIANLDSMgCEEYaiIWIANLDRkgCyAPTQ0CIBggG2oiBEEEaioAACEgIARBCGoqAAAhISAEQQxqKgAAISIgBEEQaioAACEjIARBFGoqAAAhJCAQIBdqIhEgBCoAADgCACAPQQFqIgkgC08NBCARQQRqICA4AgAgD0ECaiISIAtPDQUgEUEIaiAhOAIAIA0gD00NBiAXIB9qIhEgIjgCACAJIA1PDQcgEUEEaiAjOAIAIA0gEk0NCCARQQhqICQ4AgAgAyAWTQ0JIAwgD00NCiAXIB5qIhYgBEEYai0AALNDAAB/Q5U4AgAgCEEZaiIRIANPDQsgCSAMTw0MIBZBBGogBEEZai0AALNDAAB/Q5U4AgAgCEEaaiIJIANPDQ0gDCASTQ0OIBZBCGogBEEaai0AALNDAAB/Q5U4AgAgCEEbaiIJIANPDQ8gAkUNECAKIB1qIARBG2otAACzQwAAf0OVOAIAIAhBHGoiCSADTw0RIAhBHWoiCSADTw0SIAhBHmoiCSADTw0TIAhBH2oiCCADTw0UIAYgCk0NFSAEQRxqLQAAIQggBEEeai0AACEJIARBH2otAAAhEiAVIARBHWotAACzQwAAAMOSQwAAADyUOAIAIApBAWoiBCAGTw0WIBVBBGogCbNDAAAAw5JDAAAAPJQ4AgAgCkECaiIEIAZPDRcgFUEIaiASs0MAAADDkkMAAAA8lDgCACAKQQNqIgQgBk8NGCAVQQxqIAizQwAAAMOSQwAAADyUOAIAIAJBAWshAiAVQRBqIRUgF0EMaiEXIA9BA2ohDyAKQQRqIQogHCAYQSBqIhhHDQALCyAHIAtLDRggBSAOSQ0ZIAcgDEsNGiAHIA1LDRsgBiAUSQ0cIAEoAhQhAyABKAIgIQQgASgCLCECIAFCBDcCiAEgAUICNwKAASABQgQ3AnggAUIENwJwIAFCBDcCaCABIBQ2AmQgASABKAI4IgY2AmAgASAHNgJcIAEgAjYCWCABIAc2AlQgASAENgJQIAEgDjYCTCABIAM2AkggASAHNgJEIAEgEDYCQCAAIBMgDiABQUBrEJ0BIA4gE2oiEyAZTw0eDAELCyAPIAtB9NjAABC/BwALIAkgC0GE2cAAEL8HAAsgEiALQZTZwAAQvwcACyAPIA1BpNnAABC/BwALIAkgDUG02cAAEL8HAAsgEiANQcTZwAAQvwcACyAWIANB1NnAABC/BwALIA8gDEHk2cAAEL8HAAsgESADQfTZwAAQvwcACyAJIAxBhNrAABC/BwALIAkgA0GU2sAAEL8HAAsgEiAMQaTawAAQvwcACyAJIANBtNrAABC/BwALIAUgBUHE2sAAEL8HAAsgCSADQdTawAAQvwcACyAJIANB5NrAABC/BwALIAkgA0H02sAAEL8HAAsgCCADQYTbwAAQvwcACyAKIAZBlNvAABC/BwALIAQgBkGk28AAEL8HAAsgBCAGQbTbwAAQvwcACyAEIAZBxNvAABC/BwALIBYgA0HMuMEAEKIKAAsgByALQaTYwAAQogoACyAOIAVBtNjAABCiCgALIAcgDEHE2MAAEKIKAAsgByANQdTYwAAQogoACyAUIAZB5NjAABCiCgALIAFBADYCUCABQQE2AkQgAUHs28AANgJAIAFCBDcCSCABQUBrEMUHIQoMAgsgASgCNCEFIAAQ4AEhCiAFRQ0AIAZBBGsoAgAiAEF4cSILIAVBAnQiBUEEQQggAEEDcSIAG2pJDQMgAEEAIAsgBUEnaksbDQQgBhC0AgsgASgCKCIABEAgAkEEaygCACIFQXhxIgYgAEECdCIAQQRBCCAFQQNxIgUbakkNAyAFQQAgBiAAQSdqSxsNBCACELQCCyABKAIcIgAEQCAEQQRrKAIAIgJBeHEiBSAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0DIAJBACAFIABBJ2pLGw0EIAQQtAILIAEoAhAiAARAIANBBGsoAgAiAkF4cSIFIABBAnQiAEEEQQggAkEDcSICG2pJDQMgAkEAIAUgAEEnaksbDQQgAxC0AgsgASgCBCIARQ0AIBBBBGsoAgAiAkF4cSIDIABBAnQiAEEEQQggAkEDcSICG2pJDQIgAkEAIAMgAEEnaksbDQMgEBC0AgsgAUGQAWokACAKDwsgBCADQcy4wQAQogoAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAvLFgIffwV9IwBBkAFrIgEkAAJAAkACQAJAIAAoAmgiAkEfcQRAIAFBADYCUCABQQE2AkQgAUHs28AANgJAIAFCBDcCSCABQUBrEMUHIQIMAQsgAUEAOgBIIAFBADYCRCABIAJBBXYiGTYCQCAAIAFBQGsQ+QEgAUEANgIMIAFCgICAgMAANwIEIAFBADYCGCABQoCAgIDAADcCECABQQA2AiQgAUKAgICAwAA3AhwgAUEANgIwIAFCgICAgMAANwIoIAFBADYCPCABQoCAgIDAADcCNAJAAkAgAkUEQEEEIQJBBCEEQQQhA0EEIQ8MAQtBBCEPAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkADQCAKQYCABCAZIBNrIgIgAkGAgARPGyINQQNsIgdJBEAgByAKIgJrIgMgASgCBCACa0sEQCABQQRqIAIgA0EEQQQQ0AUgASgCCCEPIAEoAgwhAgsgDyACQQJ0aiEEIANBAkkEfyACBSAHIApBf3NqQQJ0IgUEQCAEQQAgBfwLAAsgDyACIAdqIAprQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiIKNgIMIAEoAhghBQsgBSANSQRAIA0gBSICayIDIAEoAhAgAmtLBEAgAUEQaiACIANBBEEEENAFIAEoAhghAgsgASgCFCIGIAJBAnRqIQQgA0ECSQR/IAIFIA0gBUF/c2pBAnQiCwRAIARBACAL/AsACyAGIAIgDWogBWtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIgU2AhgLIAEoAiQiCyAHSQRAIAcgCyICayIDIAEoAhwgAmtLBEAgAUEcaiACIANBBEEEENAFIAEoAiQhAgsgASgCICIGIAJBAnRqIQQgA0ECSQR/IAIFIAcgC0F/c2pBAnQiDARAIARBACAM/AsACyAGIAIgB2ogC2tBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIgs2AiQLIAEoAjAiDCAHSQRAIAcgDCICayIDIAEoAiggAmtLBEAgAUEoaiACIANBBEEEENAFIAEoAjAhAgsgASgCLCIGIAJBAnRqIQQgA0ECSQR/IAIFIAcgDEF/c2pBAnQiCARAIARBACAI/AsACyAGIAIgB2ogDGtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIgw2AjALIA1BAnQiFCABKAI8IgZLBEAgFCAGIgJrIgMgASgCNCACa0sEQCABQTRqIAIgA0EEQQQQ0AUgASgCPCECCyABKAI4IgggAkECdGohBCADQQJJBH8gAgUgFCAGQX9zakECdCIOBEAgBEEAIA78CwALIAggAiAUaiAGa0ECdGpBBGshBCACIANqQQFrCyEDIARBADYCACABIANBAWoiBjYCPAsgASgCCCEPAkAgEyAZRwRAIBNBBXQiGiAAKAJkaiEbQQEgDSANQQFNG0EFdCEcIAAoAmghA0EAIRggASgCOCEVIAEoAhQhHSABKAIgIR4gASgCLCEfIAUhAkEAIRdBACEOQQAhEANAIBggGmoiCEEEaiIEIANLDSMgCEEIaiIEIANLDSMgCEEMaiIEIANLDSMgCEEQaiIEIANLDSMgCEEUaiIEIANLDSMgCEEYaiIWIANLDRkgCiAOTQ0CIBggG2oiBEEEaioAACEgIARBCGoqAAAhISAEQQxqKgAAISIgBEEQaioAACEjIARBFGoqAAAhJCAPIBdqIhEgBCoAADgCACAOQQFqIgkgCk8NBCARQQRqICA4AgAgDkECaiISIApPDQUgEUEIaiAhOAIAIAwgDk0NBiAXIB9qIhEgIjgCACAJIAxPDQcgEUEEaiAjOAIAIAwgEk0NCCARQQhqICQ4AgAgAyAWTQ0JIAsgDk0NCiAXIB5qIhYgBEEYai0AALNDAAB/Q5U4AgAgCEEZaiIRIANPDQsgCSALTw0MIBZBBGogBEEZai0AALNDAAB/Q5U4AgAgCEEaaiIJIANPDQ0gCyASTQ0OIBZBCGogBEEaai0AALNDAAB/Q5U4AgAgCEEbaiIJIANPDQ8gAkUNECAQIB1qIARBG2otAACzQwAAf0OVOAIAIAhBHGoiCSADTw0RIAhBHWoiCSADTw0SIAhBHmoiCSADTw0TIAhBH2oiCCADTw0UIAYgEE0NFSAEQRxqLQAAIQggBEEeai0AACEJIARBH2otAAAhEiAVIARBHWotAACzQwAAAMOSQwAAADyUOAIAIBBBAWoiBCAGTw0WIBVBBGogCbNDAAAAw5JDAAAAPJQ4AgAgEEECaiIEIAZPDRcgFUEIaiASs0MAAADDkkMAAAA8lDgCACAQQQNqIgQgBk8NGCAVQQxqIAizQwAAAMOSQwAAADyUOAIAIAJBAWshAiAVQRBqIRUgF0EMaiEXIA5BA2ohDiAQQQRqIRAgHCAYQSBqIhhHDQALCyAHIApLDRggBSANSQ0ZIAcgC0sNGiAHIAxLDRsgBiAUSQ0cIAEoAhQhAyABKAIgIQQgASgCLCECIAFCBDcCiAEgAUICNwKAASABQgQ3AnggAUIENwJwIAFCBDcCaCABIBQ2AmQgASABKAI4IgY2AmAgASAHNgJcIAEgAjYCWCABIAc2AlQgASAENgJQIAEgDTYCTCABIAM2AkggASAHNgJEIAEgDzYCQCAAIBMgDSABQUBrEKUCIA0gE2oiEyAZTw0dDAELCyAOIApB9NjAABC/BwALIAkgCkGE2cAAEL8HAAsgEiAKQZTZwAAQvwcACyAOIAxBpNnAABC/BwALIAkgDEG02cAAEL8HAAsgEiAMQcTZwAAQvwcACyAWIANB1NnAABC/BwALIA4gC0Hk2cAAEL8HAAsgESADQfTZwAAQvwcACyAJIAtBhNrAABC/BwALIAkgA0GU2sAAEL8HAAsgEiALQaTawAAQvwcACyAJIANBtNrAABC/BwALIAUgBUHE2sAAEL8HAAsgCSADQdTawAAQvwcACyAJIANB5NrAABC/BwALIAkgA0H02sAAEL8HAAsgCCADQYTbwAAQvwcACyAQIAZBlNvAABC/BwALIAQgBkGk28AAEL8HAAsgBCAGQbTbwAAQvwcACyAEIAZBxNvAABC/BwALIBYgA0HMuMEAEKIKAAsgByAKQaTYwAAQogoACyANIAVBtNjAABCiCgALIAcgC0HE2MAAEKIKAAsgByAMQdTYwAAQogoACyAUIAZB5NjAABCiCgALIAEoAjQiAEUNACAGQQRrKAIAIgVBeHEiCiAAQQJ0IgBBBEEIIAVBA3EiBRtqSQ0EIAVBACAKIABBJ2pLGw0FIAYQtAILIAEoAigiAARAIAJBBGsoAgAiBUF4cSIGIABBAnQiAEEEQQggBUEDcSIFG2pJDQQgBUEAIAYgAEEnaksbDQUgAhC0AgsgASgCHCIABEAgBEEEaygCACICQXhxIgUgAEECdCIAQQRBCCACQQNxIgIbakkNBCACQQAgBSAAQSdqSxsNBSAEELQCCyABKAIQIgAEQCADQQRrKAIAIgJBeHEiBSAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0EIAJBACAFIABBJ2pLGw0FIAMQtAILIAEoAgQiAARAIA9BBGsoAgAiAkF4cSIDIABBAnQiAEEEQQggAkEDcSICG2pJDQQgAkEAIAMgAEEnaksbDQEgDxC0AgtBACECDAELDAMLIAFBkAFqJAAgAg8LIAQgA0HMuMEAEKIKAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALyxYCH38FfSMAQZABayIBJAACQAJAAkACQCAAKAJIIgJBH3EEQCABQQA2AlAgAUEBNgJEIAFB7NvAADYCQCABQgQ3AkggAUFAaxDFByECDAELIAFBADoASCABQQA2AkQgASACQQV2Ihk2AkAgACABQUBrEJMCIAFBADYCDCABQoCAgIDAADcCBCABQQA2AhggAUKAgICAwAA3AhAgAUEANgIkIAFCgICAgMAANwIcIAFBADYCMCABQoCAgIDAADcCKCABQQA2AjwgAUKAgICAwAA3AjQCQAJAIAJFBEBBBCECQQQhBEEEIQNBBCEPDAELQQQhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAA0AgCkGAgAQgGSATayICIAJBgIAETxsiDUEDbCIHSQRAIAcgCiICayIDIAEoAgQgAmtLBEAgAUEEaiACIANBBEEEENAFIAEoAgghDyABKAIMIQILIA8gAkECdGohBCADQQJJBH8gAgUgByAKQX9zakECdCIFBEAgBEEAIAX8CwALIA8gAiAHaiAKa0ECdGpBBGshBCACIANqQQFrCyEDIARBADYCACABIANBAWoiCjYCDCABKAIYIQULIAUgDUkEQCANIAUiAmsiAyABKAIQIAJrSwRAIAFBEGogAiADQQRBBBDQBSABKAIYIQILIAEoAhQiBiACQQJ0aiEEIANBAkkEfyACBSANIAVBf3NqQQJ0IgsEQCAEQQAgC/wLAAsgBiACIA1qIAVrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiIFNgIYCyABKAIkIgsgB0kEQCAHIAsiAmsiAyABKAIcIAJrSwRAIAFBHGogAiADQQRBBBDQBSABKAIkIQILIAEoAiAiBiACQQJ0aiEEIANBAkkEfyACBSAHIAtBf3NqQQJ0IgwEQCAEQQAgDPwLAAsgBiACIAdqIAtrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiILNgIkCyABKAIwIgwgB0kEQCAHIAwiAmsiAyABKAIoIAJrSwRAIAFBKGogAiADQQRBBBDQBSABKAIwIQILIAEoAiwiBiACQQJ0aiEEIANBAkkEfyACBSAHIAxBf3NqQQJ0IggEQCAEQQAgCPwLAAsgBiACIAdqIAxrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiIMNgIwCyANQQJ0IhQgASgCPCIGSwRAIBQgBiICayIDIAEoAjQgAmtLBEAgAUE0aiACIANBBEEEENAFIAEoAjwhAgsgASgCOCIIIAJBAnRqIQQgA0ECSQR/IAIFIBQgBkF/c2pBAnQiDgRAIARBACAO/AsACyAIIAIgFGogBmtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIgY2AjwLIAEoAgghDwJAIBMgGUcEQCATQQV0IhogACgCRGohG0EBIA0gDUEBTRtBBXQhHCAAKAJIIQNBACEYIAEoAjghFSABKAIUIR0gASgCICEeIAEoAiwhHyAFIQJBACEXQQAhDkEAIRADQCAYIBpqIghBBGoiBCADSw0jIAhBCGoiBCADSw0jIAhBDGoiBCADSw0jIAhBEGoiBCADSw0jIAhBFGoiBCADSw0jIAhBGGoiFiADSw0ZIAogDk0NAiAYIBtqIgRBBGoqAAAhICAEQQhqKgAAISEgBEEMaioAACEiIARBEGoqAAAhIyAEQRRqKgAAISQgDyAXaiIRIAQqAAA4AgAgDkEBaiIJIApPDQQgEUEEaiAgOAIAIA5BAmoiEiAKTw0FIBFBCGogITgCACAMIA5NDQYgFyAfaiIRICI4AgAgCSAMTw0HIBFBBGogIzgCACAMIBJNDQggEUEIaiAkOAIAIAMgFk0NCSALIA5NDQogFyAeaiIWIARBGGotAACzQwAAf0OVOAIAIAhBGWoiESADTw0LIAkgC08NDCAWQQRqIARBGWotAACzQwAAf0OVOAIAIAhBGmoiCSADTw0NIAsgEk0NDiAWQQhqIARBGmotAACzQwAAf0OVOAIAIAhBG2oiCSADTw0PIAJFDRAgECAdaiAEQRtqLQAAs0MAAH9DlTgCACAIQRxqIgkgA08NESAIQR1qIgkgA08NEiAIQR5qIgkgA08NEyAIQR9qIgggA08NFCAGIBBNDRUgBEEcai0AACEIIARBHmotAAAhCSAEQR9qLQAAIRIgFSAEQR1qLQAAs0MAAADDkkMAAAA8lDgCACAQQQFqIgQgBk8NFiAVQQRqIAmzQwAAAMOSQwAAADyUOAIAIBBBAmoiBCAGTw0XIBVBCGogErNDAAAAw5JDAAAAPJQ4AgAgEEEDaiIEIAZPDRggFUEMaiAIs0MAAADDkkMAAAA8lDgCACACQQFrIQIgFUEQaiEVIBdBDGohFyAOQQNqIQ4gEEEEaiEQIBwgGEEgaiIYRw0ACwsgByAKSw0YIAUgDUkNGSAHIAtLDRogByAMSw0bIAYgFEkNHCABKAIUIQMgASgCICEEIAEoAiwhAiABQgQ3AogBIAFCAjcCgAEgAUIENwJ4IAFCBDcCcCABQgQ3AmggASAUNgJkIAEgASgCOCIGNgJgIAEgBzYCXCABIAI2AlggASAHNgJUIAEgBDYCUCABIA02AkwgASADNgJIIAEgBzYCRCABIA82AkAgACATIA0gAUFAaxDvASANIBNqIhMgGU8NHQwBCwsgDiAKQfTYwAAQvwcACyAJIApBhNnAABC/BwALIBIgCkGU2cAAEL8HAAsgDiAMQaTZwAAQvwcACyAJIAxBtNnAABC/BwALIBIgDEHE2cAAEL8HAAsgFiADQdTZwAAQvwcACyAOIAtB5NnAABC/BwALIBEgA0H02cAAEL8HAAsgCSALQYTawAAQvwcACyAJIANBlNrAABC/BwALIBIgC0Gk2sAAEL8HAAsgCSADQbTawAAQvwcACyAFIAVBxNrAABC/BwALIAkgA0HU2sAAEL8HAAsgCSADQeTawAAQvwcACyAJIANB9NrAABC/BwALIAggA0GE28AAEL8HAAsgECAGQZTbwAAQvwcACyAEIAZBpNvAABC/BwALIAQgBkG028AAEL8HAAsgBCAGQcTbwAAQvwcACyAWIANBzLjBABCiCgALIAcgCkGk2MAAEKIKAAsgDSAFQbTYwAAQogoACyAHIAtBxNjAABCiCgALIAcgDEHU2MAAEKIKAAsgFCAGQeTYwAAQogoACyABKAI0IgBFDQAgBkEEaygCACIFQXhxIgogAEECdCIAQQRBCCAFQQNxIgUbakkNBCAFQQAgCiAAQSdqSxsNBSAGELQCCyABKAIoIgAEQCACQQRrKAIAIgVBeHEiBiAAQQJ0IgBBBEEIIAVBA3EiBRtqSQ0EIAVBACAGIABBJ2pLGw0FIAIQtAILIAEoAhwiAARAIARBBGsoAgAiAkF4cSIFIABBAnQiAEEEQQggAkEDcSICG2pJDQQgAkEAIAUgAEEnaksbDQUgBBC0AgsgASgCECIABEAgA0EEaygCACICQXhxIgUgAEECdCIAQQRBCCACQQNxIgIbakkNBCACQQAgBSAAQSdqSxsNBSADELQCCyABKAIEIgAEQCAPQQRrKAIAIgJBeHEiAyAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0EIAJBACADIABBJ2pLGw0BIA8QtAILQQAhAgwBCwwDCyABQZABaiQAIAIPCyAEIANBzLjBABCiCgALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC9QXAyR/A30BeyMAQcACayIEJAACeyADLQAcIgVBAkYEQEMAAIA/IShBACEFQwAAgD8hKUMAAIA/ISr9DAAAAAAAAIA/AABAwQAAEEEMAQsgBEHiAWogA0Efai0AADoAACAEIAMvAB07AeABIAMqAhghKCADKgIUISkgAyoCECEqIAP9AAIACyErIARBABD3CTYCsAEgBEEANgKsASAEQgA3AqQBIARBADYCXCAEQoCAgIDAADcCVCAEQgQ3AkwgBEIANwJEIARCgICAgMAANwI8IARBADYCLCAEQQA2AiQgBEEANgIcIARBADYCFCAEQQA2AgwgBEEANgIEIARBADYCNCAEQYCAgIB4NgJsIARBgICAgHg2AnggBCAr/QsChAEgBCAqOAKUASAEICk4ApgBIAQgKDgCnAEgBCAFOgCgASAEQbwBakEAOgAAIARBowFqIARB4gFqLQAAOgAAIARBADYCaCAEQoCAgIDAADcCYCAEQgA3ArQBIAQgBC8B4AE7AKEBIAEoAjwhEyAEIAI6AOgBIAQgEzYC5AEgBCABKAIIIgg2AuABIARBBGogBEHgAWoQzAQgAgRAIARBAToAoAELAkACQAJAAkBBgIAwEH4iEEUNACAQQQRrIh0tAABBA3EEQCAQQQBBgIAw/AsAC0GAgBAQfiIJRQ0AIAlBBGsiHi0AAEEDcQRAIAlBAEGAgBD8CwALQYCAMBB+IhFFDQAgEUEEayIfLQAAQQNxBEAgEUEAQYCAMPwLAAtBgIAwEH4iEkUNACASQQRrIiAtAABBA3EEQCASQQBBgIAw/AsAC0GAgMAAEH4iC0UNACALQQRrIiEtAABBA3EEQCALQQBBgIDAAPwLAAtBgIAIEH4iDEUNACAMQQRrIiItAABBA3EEQCAMQQBBgIAI/AsAC0GAgBAQfiINRQ0AIA1BBGsiIygCACIFQQNxIgMEQCANQQBBgIAQ/AsACyAIBEAgDEECIAIbISQgDUEEIAIbISVBgIAEQQAgAhshGyABKAIQISYgASgCFCEcIAEoAgQhJwNAQYCABCAIIA5rIgMgA0GAgARPGyEUIAggDkcEQCAnIA5BJGxqIQMgJiAOQRhsaiEGQQAhFSAJIRZBACEFIA0hFyAMIRggCyEZA0AgFgJ/AkAgCCAOIBVqIhpLBEAgA0EQaioCACEoIANBDGoqAgAhKSADQQhqKgIAISogBEHAAWogAxDLAyAEQdABaiADEMIDIARB4AFqIAMpAgAQ3QIgBP0ABOABISsgBSAQaiIKICo4AgAgBSARaiIHIAQqAsABOAIAIAUgEmoiDyAEKgLQATgCACAKQQRqICk4AgAgB0EEaiAEKgLEATgCACAPQQRqIAQqAtQBOAIAIApBCGogKDgCACAHQQhqIAQqAsgBOAIAIA9BCGogBCoC2AE4AgAgGSAr/QsCACADQRRqLwEAIgdB//8BcUUEQCAHQRB0DAMLIAdB/wdxIQogB0GAgAJxIQ8gB0GA+AFxIgdBgPgBRgRAIA9BEHQhByAHQYCAgPwHciAKRQ0DGiAHIApBDXRyQYCAgP4HcgwDCyAPQRB0IQ8gB0UNASAHQQ10QYCAgPwAcSAKQQ10ckGAgIDAA2ogD3IMAgsgGiAIQejIxwAQvwcACyAPQYCAgNgDciAKZ0EQayIHQRd0ayAKIAdB//8DcUEIanRB////A3FyCzYCACACBEACfwJAIBogHEkEQAJ/IAZBFGooAgAiCkEESwRAIAZBBGooAgAhCiAGQQhqKAIADAELIAZBBGoLIQcgCg0BQQAhCkEADAILIBogHEHozccAEL8HDAcLIAcoAgALIQcgGCAKOwEAIBcgBzYCAAsgA0EkaiEDIAZBGGohBiAWQQRqIRYgBUEMaiEFIBdBBGohFyAYQQJqIRggGUEQaiEZIBVBAWoiFSAUSQ0ACwsgBCAbNgKsAiAEICU2AqgCIAQgGzYCpAIgBCAkNgKgAiAEQQA2ApwCIARCgICAgMAANwKUAiAEQoCAgIDAADcCjAIgBEKAgJCAwAA3AoQCIAQgCzYCgAIgBEGAgAw2AvwBIAQgEjYC+AEgBEGAgAw2AvQBIAQgETYC8AEgBEGAgAQ2AuwBIAQgCTYC6AEgBEGAgAw2AuQBIAQgEDYC4AEgBEEEaiAOIBQgBEHgAWoQqAEgDiAUaiIOIAhJDQALICMoAgAiBUEDcSEDCwJAAkAgBUF4cUGEgBBBiIAQIAMbTwRAIANBACAFQaiAEE8bDQYgDRC0AiAiKAIAIgJBeHFBhIAIQYiACCACQQNxIgMbSQ0FIANBACACQaiACE8bDQYgDBC0AiAhKAIAIgJBeHFBhIDAAEGIgMAAIAJBA3EiAxtJDQUgA0EAIAJBqIDAAE8bDQYgCxC0AiAgKAIAIgJBeHFBhIAwQYiAMCACQQNxIgMbSQ0FIANBACACQaiAME8bDQYgEhC0AiAfKAIAIgJBeHFBhIAwQYiAMCACQQNxIgMbSQ0FIANBACACQaiAME8bDQYgERC0AiAeKAIAIgJBeHFBhIAQQYiAECACQQNxIgMbSQ0FIANBACACQaiAEE8bDQYgCRC0AiAdKAIAIgJBeHFBhIAwQYiAMCACQQNxIgMbSQ0FIANBACACQaiAME8bDQYgEBC0AiATRQ0EQYCAkAEQfiICRQ0DIAJBBGsiCygCACIFQQNxIgMEQCACQQBBgICQAfwLAAsgCEUNAiABKAIgIQwgASgCHCENQQAhBgNAQYCABCAIIAZrIgMgA0GAgARPGyEJIAYgCEcEQEEAIQUgAiEDA0AgBEHgAWogDSAMIAUgBmoQxwEgAyAE/QAE4AH9CwIAIANBEGogBP0ABPAB/QsCACADQSBqIAQqAoACOAIAIANBJGohAyAFQQFqIgUgCUkNAAsLIARBBGogBiAJIAJBgIAkEPcDIAggBiAJaiIGSw0ACwwBCwwECyALKAIAIgVBA3EhAwsCQCAFQXhxQYSAkAFBiICQASADG08EQCADQQAgBUGogJABTxsNBSACELQCIBNBAUYNA0GAgPABEH4iAkUNAiACQQRrIgsoAgAiBUEDcSIDBEAgAkEAQYCA8AH8CwALIAgEQCABKAIsIQwgASgCKCENQQAhBgNAQYCABCAIIAZrIgMgA0GAgARPGyEJIAYgCEcEQEEAIQUgAiEDA0AgBEHgAWogDSAMIAUgBmoQlgEgAyAE/QAE4AH9CwIAIANBEGogBP0ABPAB/QsCACADQSBqIAT9AASAAv0LAgAgA0EwaiAEKgKQAjgCACADQTRqIAQpApQCNwIAIANBPGohAyAFQQFqIgUgCUkNAAsLIARBBGogBiAJIAJBgIA8EIgEIAYgCWoiBiAISQ0ACyALKAIAIgVBA3EhAwsgBUF4cUGEgPABQYiA8AEgAxtJDQQgA0EAIAVBqIDwAU8bDQUgAhC0AiATQQJNDQNBgIDQAhB+IgJFDQIgAkEEayIJKAIAIgVBA3EiAwRAIAJBAEGAgNAC/AsACyAIBEAgASgCOCELIAEoAjQhDEEAIQYDQEGAgAQgCCAGayIBIAFBgIAETxshASAGIAhHBEBBACEFIAIhAwNAIARB4AFqIAwgCyAFIAZqEHkgAyAE/QAE4AH9CwIAIANBEGogBP0ABPAB/QsCACADQSBqIAT9AASAAv0LAgAgA0EwaiAE/QAEkAL9CwIAIANBQGsgBP0ABKAC/QsCACADQdAAaiAEKgKwAjgCACADQdQAaiEDIAVBAWoiBSABSQ0ACwsgBEEEaiAGIAEgAkGAgNQAEIkEIAEgBmoiBiAISQ0ACyAJKAIAIgVBA3EhAwsgBUF4cUGEgNACQYiA0AIgAxtJDQQgA0EAIAVBqIDQAk8bDQEgAhC0AgwDCwwDCwwDCwALAkAgBEEEaiICEK8BIgEEQCAAQQI2AgAgACABNgIEIAIQ1wIMAQsgACAEQQRqQbwB/AoAAAsgBEHAAmokAA8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC8QbAxN/Bn0BfiMAQbABayICJAACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQCABKAIUIgQgASgCECIDSQRAIAEoAgwhBgJ+AkADQCAEIAZqLQAAIgVBCWsiB0EXS0EBIAd0QZOAgARxRXINASABIARBAWoiBDYCFCADIARHDQALIAMhBEIADAELQoACCyAFrUIQhoRCgIK4A1ENAQsCQCACQShqIAEoAgwiByADIAMgBEsEfwNAIAQgB2otAAAiCUEJayIFQRdLQQEgBXRBk4CABHFFcg0CIAEgBEEBaiIENgIUIAMgBEcNAAsgAwUgBAtBAWoiASADIAEgA0kbEIYCIAIoAiwhASACKAIoIQNBFBB+IgQNAgwQCwJAIAlB2wBHBEAgCUH7AEYNASABIAJBrwFqQfzGxwAQ+wEhBQwOCyABIAEtABhBAWsiBToAGCAEQQFqIQQgBUH/AXFFDQsgASAENgIUIAIgATYCpAEgAkEBOgCoASACQeQAaiACQaQBahDHAwJAIAItAGRBAUYEQCACKAJoIQNBAiEEDAELAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAItAGVBAUYEQCACQeQAaiACKAKkARDqAiACKAJkIgVBAkYEQCACKAJoIQNBAiEEDA4LIAIoAmghDyACQeQAaiACQaQBahDHAyACLQBkQQFGBEAgAigCaCEDQQIhBAwOCyACLQBlQQFHDQIgAkHkAGogAigCpAEQ6gIgAigCZCIHQQJHDQEgAigCaCEDQQIhBAwNC0EAQdiKyAAQkAchA0ECIQQMDAsgAioCaCEVIAJB5ABqIAJBpAFqEMcDIAItAGRBAUYEQCACKAJoIQNBAiEEDAwLIAItAGVBAUcNAiACQeQAaiACKAKkARDqAiACKAJkIglBAkcNASACKAJoIQNBAiEEDAsLQQFB2IrIABCQByEDQQIhBAwKCyACKgJoIRYgAkHkAGogAkGkAWoQxwMgAi0AZEEBRgRAIAIoAmghA0ECIQQMCgsgAi0AZUEBRw0CIAJB5ABqIAIoAqQBEOoCIAIoAmQiEEECRw0BIAIoAmghA0ECIQQMCQtBAkHYisgAEJAHIQNBAiEEDAgLIAIqAmghFyACQeQAaiACQaQBahDHAyACLQBkQQFGBEAgAigCaCEDQQIhBAwICyACLQBlQQFHDQIgAkHkAGogAigCpAEQ6gIgAigCZCIRQQJHDQEgAigCaCEDQQIhBAwHC0EDQdiKyAAQkAchA0ECIQQMBgsgAioCaCEYIAJB5ABqIAJBpAFqEMcDIAItAGRBAUYEQCACKAJoIQNBAiEEDAYLIAItAGVBAUcNASACQeQAaiACKAKkARDqAkECIQQgAigCZCISQQJGBEAgAigCaCEDDAYLIAIoAmghCiACQeQAaiEGIwBBEGsiAyQAIANBCGogAkGkAWoiCBDHAwJAIAMtAAhBAUYEQCAGIAMoAgw2AgQgBkEDNgIADAELIAMtAAlFBEAgBkECNgIADAELIANBCGogCCgCABDqAiADKAIIIghBAkYEQCAGIAMoAgw2AgQgBkEDNgIADAELIAYgAyoCDDgCBCAGIAg2AgALIANBEGokACACKAJoIQMgAigCZCILQQJrDgIDBQILQQRB2IrIABCQByEDQQIhBAwEC0EFQdiKyAAQkAchA0ECIQQMAwsgAkHkAGohCCMAQRBrIgYkACAGQQhqIAJBpAFqIgwQxwMCQCAGLQAIQQFGBEAgCCAGKAIMNgIEIAhBAToAAAwBCyAGLQAJRQRAIAhBgAY7AQAMAQsgBkEIaiAMKAIAEI4CIAYtAAhBAUYEQCAIIAYoAgw2AgQgCEEBOgAADAELIAggBi0ACToAASAIQQA6AAALIAZBEGokACACLQBkRQ0BIAIoAmghAwwCC0EGQdiKyAAQkAchAwwBCyACLQBlIhNBA0cEQCADIRQgDyEDIAUhBAwBC0EHQdiKyAAQkAchAwsgASABLQAYQQFqOgAYIAIgARDbAyIFNgKgASACIBM6AJwBIAIgFDYCmAEgAiALNgKUASACIAo2ApABIAIgEjYCjAEgAiAYOAKIASACIBE2AoQBIAIgFzgCgAEgAiAQNgJ8IAIgFjgCeCACIAk2AnQgAiAVOAJwIAIgBzYCbCACIAM2AmggAiAENgJkQQIhByAEQQJHBEAgBQ0LIAJB4ABqIAJB7ABqIgVBMGooAgA2AgAgAkHQAGogBUEgav0AAgD9CwMAIAJBQGsgBUEQav0AAgD9CwMAIAIgBf0AAgD9CwMwIAQhBwwKCyAFDQMMCQsgASABLQAYQQFrIgU6ABggBEEBaiEEIAVB/wFxRQ0HIAEgBDYCFCACQQE6AKgBIAIgATYCpAFBAyEGQQIhCEECIQxBAiENQQIhC0ECIQVBAiEOQQIhCgJ/AkADQAJAIAJB5ABqIgMgAkGkAWoQ5wIgAi0AZEEBRg0AIAItAGVBAUcNByACKAKkASIEQQA2AgggBCAEKAIUQQFqNgIUIAMgBEEMaiAEEI8CIAIoAmghAyACKAJkQQJGDQICQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAigCbEEGaw4FAAMDAwEDCyADQd6JyABBBhCQCEUNAyADQeSJyABBBhCQCA0BIA5BAkYNBEHkicgAQQYQ0QchA0ECDA4LIANB6onIAEEKEJAIRQ0EIANB9InIAEEKEJAIRQ0FIANBkIrIAEEKEJAIDQEgBkEDRg0JQZCKyABBChDRByEDQQIMDQsgA0H+icgAQQYQkAhFDQUgA0GEisgAQQYQkAhFDQYgA0GKisgAQQYQkAhFDQcLIAQQqwEiA0UNCQwKCyAKQQJHBEBB3onIAEEGENEHIQNBAgwLCyACQeQAaiAEEOQFQQIhBCACKAJoIg8hAyACKAJkIgpBAkcNCAwRCyACQeQAaiAEEOQFQQIhBCACKAJoIgO+IRcgAigCZCIOQQJHDQcMEAsgBUECRwRAQeqJyABBChDRByEDQQIMCQsgAkHkAGogBBDkBUECIQQgAigCaCIDviEVIAIoAmQiBUECRw0GDA8LIAtBAkcEQEH0icgAQQoQ0QchA0ECDAgLIAJB5ABqIAQQ5AVBAiEEIAIoAmgiA74hFiACKAJkIgtBAkcNBQwOCyANQQJHBEBB/onIAEEGENEHIQNBAgwHCyACQeQAaiAEEOQFQQIhBCACKAJoIgO+IRggAigCZCINQQJHDQQMDQsgDEECRwRAQYSKyABBBhDRByEDQQIMBgsgAkHkAGogBBDkBUECIQQgAigCaCIDviEZIAIoAmQiDEECRw0DDAwLIAhBAkcEQEGKisgAQQYQ0QchA0ECDAULIAJB5ABqIAQQ5AVBAiEEIAIoAmgiA74hGiACKAJkIghBAkcNAgwLCyACQeQAaiAEEOEFIAItAGUhBiACLQBkQQFHDQELCyACKAJoIQMLQQILIQQMBgsgASAEQQFqIgU2AhQCQCADIAVNDQAgASAEQQJqIgk2AhQgBSAGai0AAEH1AEcNBCAJIAUgAyADIAVJGyIFRg0AIAEgBEEDaiIHNgIUIAYgCWotAABB7ABHBEAgByEJDAULIAUgB0YNACABIARBBGoiCTYCFCAGIAdqLQAAQewARw0EIABBAjYCAAwOCyACQQhqIAYgAyAFEIYCIAIoAgwhASACKAIIIQNBFBB+IgRFDQ4gBEEFNgIADAQLIAQgAzYCDCAEQQU2AgAgBCABNgIQDAsLIAJBoAFqENcEDAULIApBACAKQQJHGyEEIAhBACAIQQJHGyETIAxBACAMQQJHGyESIA1BACANQQJHGyEHIAtBACALQQJHGyEJIAVBACAFQQJHGyEQIA5BACAOQQJHGyERQQIgBiAGQQNGGyEUIA8hAwwCCyACQRBqIAYgAyAJEIYCIAIoAhQhASACKAIQIQNBFBB+IgRFDQogBEEJNgIACyAEIAM2AgwgACAENgIEIABBAzYCACAEIAE2AhAMCAsgASABLQAYQQFqOgAYIAIgARCKBSIFNgKgASACIBQ6AJwBIAIgGjgCmAEgAiATNgKUASACIBk4ApABIAIgEjYCjAEgAiAYOAKIASACIAc2AoQBIAIgFjgCgAEgAiAJNgJ8IAIgFTgCeCACIBA2AnQgAiAXOAJwIAIgETYCbCACIAM2AmggAiAENgJkQQIhByAEQQJHBEAgBQ0DIAJB4ABqIAJB7ABqIgVBMGooAgA2AgAgAkHQAGogBUEgav0AAgD9CwMAIAJBQGsgBUEQav0AAgD9CwMAIAIgBf0AAgD9CwMwIAQhByADIQUMAwsgBUUEQCADIQUMAwsgAkGgAWoQ1wQgAyEFDAILIAJBIGogByADIAQgAyADIARLGxCGAiACKAIgIQMgAigCJAwDCyADIQULIAdBAkYNAiAAIAL9AAMw/QsCCCAAQThqIAJB4ABqKAIANgIAIABBKGogAkHQAGr9AAMA/QsCACAAQRhqIAJBQGv9AAMA/QsCACAAIAU2AgQgACAHNgIADAQLIAJBGGogByADIAQgAyADIARLGxCGAiACKAIYIQMgAigCHAshAUEUEH4iBEUNAyAEIAM2AgwgBEEYNgIAIAQgATYCEAwBCyAFIAEQlgYhBAsgAEEDNgIAIAAgBDYCBAsgAkGwAWokAA8LAAvFFgIQfwJ+IwBBIGsiCyQAAkACQAJAA0ACfyABKAKcAyICIAEpA6ADIhIgAq0iEyASIBNUG6ciBEYEQEEBIQVBJSEGQQAhCEEAIQJBACEJQQAhByADQYB+cUEkcgwBCyALQQhqIAEgASgCmAMgBGogAiAEa0EAEOYBIAspAhAiEkIoiKchCCASQiCIpyECIBJCGIinIQkgEkIQiKchByASQgiIpyEGIAstABshDCALLQAaIQ0gCy0AGSEOIAstABghCiALKAIMIQQgEqchBSAEIAsoAggNABogASABKQOgAyAErXw3A6ADIANBgH5xQShyCyIDQf8BcUEoRwRAIANBCHYhAQwCCwJAAkACQAJAIAVB/wFxQQFrDgIAAQQLIApB/wFxIgRByQBGDQEgBEHmAEcgDkH/AXFB5ABHciANQf8BcUHBAEcgDEH/AXFB1ABHcnINAwwCCyAGQf8BcUHJAEcgB0H/AXFBxQBHciAJQf8BcUHOAEcgAkH/AXFBxABHcnINAkEDIQMMAwsgDkH/AXFBxABHIA1B/wFxQcEAR3IgDEH/AXFB1ABHcg0BCwsCQAJ/AkACQCABKAIIQQJHBEBBASEHIAFBCGoiA0G4AkGgAiABLQC5AkECRiIFG2ooAgAhBCADQbQCQZwCIAUbaigCACEDIAEtAMQCIgxBAUYEQAJAIARBA3YgBEEHcUEAR2oiBUUNAEEBIQogA0EDdiADQQdxQQBHaiICRQ0AQQEMBQtBASEKIAVFDQIgA0EEayICQQAgAiADTRsiAkEDdiACQQdxQQBHaiICRQ0CQQIhBwwDCyAERQRAQQIhDkEAIQpBACEFQQAhDQwFC0EAIQogBCEFQQAMAwtB5J/HABCkCgALQQMhByAEQQRrIgJBACACIARNGyICQQN2IAJBB3FBAEdqIgUEQCADQQJ2IANBA3FBAEdqIgINAQsCQCAEQQJ2IARBA3FBAEdqIgVFDQAgA0ECayICQQAgAiADTRsiAkECdiACQQNxQQBHaiICRQ0AQQQhBwwBCwJAIARBAmsiAkEAIAIgBE0bIgJBAnYgAkEDcUEAR2oiBUUNACADIANBAXZrIgJFDQBBBSEHDAELAkAgBCAEQQF2ayIFRQ0AIANBAWsiAkEAIAIgA00bIgIgAkEBdmsiAkUNAEEGIQcMAQtBACENQQchB0ECIQ4gBEEBayICQQAgAiAETRsiAiACQQF2ayIFRQRAIAMhAgwDCyADRQRAIAMhAgwDCyADIQILQQELIQ5BASENCyABLQDGAiIIQQJ0Ig9B2KbJAGooAgAgA2whCQJAAkACQCABLQDHAiIGQQhrDgkCAAAAAAAAAAEACyAGQQhNBEAgCUEIIAZuIhBuIhEgCSAQIBFsR2ohCQwCCwwECyAJQQF0IQkLIAFBADoA5AMgASAENgLcAyABIAM2AtgDIAEgBzoA1AMgASACNgLQAyABIAM2AswDIAFBADYCyAMgASAONgLEAyABIAc6AMADIAEgBDYCvAMgASADNgK4AyABIAI2ArQDIAEgBTYCsAMgASANNgKsAyABIAo2AqgDIAEgCUEBaiIFNgLgAwJAAkACQAJAIA9ByKfJAGooAgAgBkEHakEDdmxBAWsiAkEIT0GvASACdkEBcUVyRQRAIAFCgYSMoIDAgYAIIAJBA3StiDwAxQQgDEUEQCAErSAFrX4hEgwFCyAIQQJ0IgJBkKfJAGooAgAgA0EDdiADQQdxQQBHamwhBwJAAkACQCAGQQhrIgUOCQIAAAAAAAAAAQALIAZBCE0EQCAHQQggBm4iCW4iCiAHIAkgCmxHaiEHDAILDAkLIAdBAXQhBwsgAkHkp8kAaigCACADQQRrIgJBACACIANNGyICQQN2IAJBB3FBAEdqbCECAkACQAJAAkACQAJAIAUOCQQAAAAAAAAAAQALIAZBCU8NDCAIQQJ0QYCoyQBqKAIAIANBAnYgA0EDcUEAR2psIQkgAkEIIAZuIgVuIgogAiAFIApsR2pBAWohCiAGQQhrDgkEAgICAgICAgECCyAIQQJ0QYCoyQBqKAIAIANBAnYgA0EDcUEAR2psIQkgAkEBdEEBciEKCyAJQQF0IQkMAgsgBkEITQRAIAlBCCAGbiICbiIFIAkgAiAFbEdqIQkMAgsMCQsgCEECdEGAqMkAaigCACADQQJ2IANBA3FBAEdqbCEJIAJBAWohCgsgCEECdCICQZyoyQBqKAIAIANBAmsiBUEAIAMgBU8bIgVBAnYgBUEDcUEAR2psIQUCQAJAAkACQAJAAkAgBkEIaw4JBAAAAAAAAAABAAsgBkEJTw0MIARBAnYgBEEDcUEAR2ohDiAIQQJ0QbioyQBqKAIAIAMgA0EBdmtsIQIgBUEIIAZuIg1uIgwgBSAMIA1sR2pBAWohDSAGQQhrDgkEAgICAgICAgECCyAEQQJ2IARBA3FBAEdqIQ4gAkG4qMkAaigCACADIANBAXZrbCECIAVBAXRBAXIhDQsgAkEBdCECDAILIAZBCE0EQCACQQggBm4iBW4iDCACIAUgDGxHaiECDAILDAkLIARBAnYgBEEDcUEAR2ohDiACQbioyQBqKAIAIAMgA0EBdmtsIQIgBUEBaiENCyAIQQJ0Ig9B1KjJAGooAgAgA0EBayIFQQAgAyAFTxsiBSAFQQF2a2whBQJAAkACQCAGQQhrDgkAAgICAgICAgECCyAFQQFqIQUgBCAEQQF2ayEMIA9BrKfJAGooAgAgA2whCAwFCyAEIARBAXZrIQwgBUEBdEEBciEFIA9BrKfJAGooAgAgA2whCAwCCyAGQQlPDQcgBUEIIAZuIgxuIg8gBSAMIA9sR2pBAWohBSAEIARBAXZrIQwgCEECdEGsp8kAaigCACADbCEIIAZBCGsOCQMCAgICAgICAQILIAtBADYCGCALQQE2AgwgC0HAmsUANgIIIAtCBDcCECALQQhqQciaxQAQyggACyAIQQF0IQgMAQsgBkEISw0EIAhBCCAGbiIGbiIPIAggBiAPbEdqIQgLIARBBGsiBkEAIAQgBk8bIgZBA3YgBkEHcUEAR2qtIAlBAWqtfiAEQQN2IARBB3FBAEdqrSAKrSAHQQFqrXx+fCAOrSANrX58IARBAmsiBkEAIAQgBk8bIgZBAnYgBkEDcUEAR2qtIAJBAWqtfnwgDK0gBa1+fCAEQQFrIgJBACACIARNGyICIAJBAXZrrSAIQQFqrX58IRIMAAsgAUEANgL4AwJAAkAgASgCiAQiAkGCgICAeEggAkVyRQRAIAEoAowEIgNBBGsoAgAiBEF4cSIFQQRBCCAEQQNxIgQbIAJqSQ0BIARBACAFIAJBJ2pLGw0CIAMQtAIgASgC2AMhAwsgAUEANgKcBCABQgA3ApQEIAFBgICAgHg2AogEIAEgEjcD6AMgCyABELcFIAssAABBAnRB9KbJAGooAgAgA2whAwJAAkACQCALLQABIgJBCGsOCQIAAAAAAAAAAQALIAJBCE0EQCADQQggAm4iAm4iBCADIAIgBGxHaiEDDAILDAYLIANBAXQhAwsgAyABKAKIAyICSwRAIABBJzoAAAwECyAAQSg6AAAgASACIANrNgKIAwwDC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAsgACAIOwAJIAAgATsAASAAIAw6AA8gACANOgAOIAAgDjoADSAAIAo6AAwgACACOgAIIAAgCToAByAAIAc6AAYgACAGOgAFIAAgBToABCAAIAM6AAAgAEELaiAIQRB2OgAAIABBA2ogAUEQdjoAAAsgC0EgaiQADwtB3JnFABC5CAAL5hYCDH8IfUMAAIA/IRACfwJAIAAoAgQiAyACQQhqKAIAIgVJBEAgACgCACEGIAJBBGooAgAiCSADQSRsaiICENMEIQ8gAi8BFCIDQf//AXFFBEAgA0EQdAwDCyADQf8HcSECIANBgIACcSEEIANBgPgBcSIDQYD4AUYEQCAEQRB0IQMgA0GAgID8B3IgAkUNAxogAyACQQ10ckGAgID+B3IMAwsgBEEQdCEEIANFDQEgA0ENdEGAgID8AHEgAkENdHJBgICAwANqIARyDAILIAMgBUHoyMcAEL8HAAsgBEGAgIDYA3IgAmdBEGsiA0EXdGsgAiADQf//A3FBCGp0Qf///wNxcgu+IhFDAACAP14EQCAREPQFQ1T4LUCUQwAAgD+SkSEQC0MAAIA/IRECfwJAIAUgBksEQCAJIAZBJGxqIgIQ0wQhEyACLwEUIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQIgA0GAgAJxIQYgA0GA+AFxIgNBgPgBRgRAIAZBEHQhAyADQYCAgPwHciACRQ0DGiADIAJBDXRyQYCAgP4HcgwDCyAGQRB0IQYgA0UNASADQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBnIMAgsgBiAFQejIxwAQvwcACyAGQYCAgNgDciACZ0EQayIDQRd0ayACIANB//8DcUEIanRB////A3FyC74iEkMAAIA/XgRAIBIQ9AVDVPgtQJRDAACAP5KRIRELQwAAgD8hFAJAAkACfwJAIAUgACgCDCICSwRAIAAoAgghBiAJIAJBJGxqIgIQ0wQhEiACLwEUIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQIgA0GAgAJxIQQgA0GA+AFxIgNBgPgBRgRAIARBEHQhAyADQYCAgPwHciACRQ0DGiADIAJBDXRyQYCAgP4HcgwDCyAEQRB0IQQgA0UNASADQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBHIMAgsMAgsgBEGAgIDYA3IgAmdBEGsiA0EXdGsgAiADQf//A3FBCGp0Qf///wNxcgu+IhVDAACAP14EQCAVEPQFQ1T4LUCUQwAAgD+SkSEUCwJ/AkAgBSAGSwRAIAkgBkEkbGoiAhDTBCEVIAIvARQiA0H//wFxRQRAIANBEHQMAwsgA0H/B3EhAiADQYCAAnEhBiADQYD4AXEiA0GA+AFGBEAgBkEQdCEDIANBgICA/AdyIAJFDQMaIAMgAkENdHJBgICA/gdyDAMLIAZBEHQhBiADRQ0BIANBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAGcgwCCyAGIAVB6MjHABC/BwALIAZBgICA2ANyIAJnQRBrIgNBF3RrIAIgA0H//wNxQQhqdEH///8DcXILIQJDAACAPyEWAn8CQCAFIABBDEEIIBIgEpIgFJQiEiASWyASIBUgFZIgAr4iFEMAAIA/XgR9IBQQ9AVDVPgtQJRDAACAP5KRBSAWC5RgRXEiBxtqIgYoAgAiAksEQCAAIA8gD5IgEJQiDyAPWyAPIBMgE5IgEZRgRXEiCkECdGoiDCgCACEEIAkgAkEkbGoiAhDTBCETIAIvARQiA0H//wFxRQRAIANBEHQMAwsgA0H/B3EhAiADQYCAAnEhCCADQYD4AXEiA0GA+AFGBEAgCEEQdCEDIANBgICA/AdyIAJFDQMaIAMgAkENdHJBgICA/gdyDAMLIAhBEHQhCCADRQ0BIANBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAIcgwCCwwCCyAIQYCAgNgDciACZ0EQayIDQRd0ayACIANB//8DcUEIanRB////A3FyC0MAAIA/IQ++IhBDAACAP14EQCAQEPQFQ1T4LUCUQwAAgD+SkSEPC0MAAIA/IRACfwJAIAQgBUkEQEEIQQwgBxshCCAJIARBJGxqIgIQ0wQhEiACLwEUIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQIgA0GAgAJxIQQgA0GA+AFxIgNBgPgBRgRAIARBEHQhAyADQYCAgPwHciACRQ0DGiADIAJBDXRyQYCAgP4HcgwDCyAEQRB0IQQgA0UNASADQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBHIMAgsMAwsgBEGAgIDYA3IgAmdBEGsiA0EXdGsgAiADQf//A3FBCGp0Qf///wNxcgu+IhFDAACAP14EQCAREPQFQ1T4LUCUQwAAgD+SkSEQC0MAAIA/IRECfwJAIAUgACAIaiIIKAIAIgJLBEAgACAKRUECdGoiAygCACEEIAkgAkEkbGoiABDTBCEUIAAvARQiAkH//wFxRQRAIAJBEHQMAwsgAkH/B3EhACACQYCAAnEhByACQYD4AXEiAkGA+AFGBEAgB0EQdCECIAJBgICA/AdyIABFDQMaIAIgAEENdHJBgICA/gdyDAMLIAdBEHQhByACRQ0BIAJBDXRBgICA/ABxIABBDXRyQYCAgMADaiAHcgwCCwwCCyAHQYCAgNgDciAAZ0EQayICQRd0ayAAIAJB//8DcUEIanRB////A3FyC74iFUMAAIA/XgRAIBUQ9AVDVPgtQJRDAACAP5KRIRELAn8CQCAEIAVJBEAgEyATkiAPlCIPIBIgEpIgEJRgRSEHIA8gD1shCiAJIARBJGxqIgAQ0wQhECAALwEUIgJB//8BcUUEQCACQRB0DAMLIAJB/wdxIQAgAkGAgAJxIQQgAkGA+AFxIgJBgPgBRgRAIARBEHQhAiACQYCAgPwHciAARQ0DGiACIABBDXRyQYCAgP4HcgwDCyAEQRB0IQQgAkUNASACQQ10QYCAgPwAcSAAQQ10ckGAgIDAA2ogBHIMAgsMAwsgBEGAgIDYA3IgAGdBEGsiAkEXdGsgACACQf//A3FBCGp0Qf///wNxcgshAEMAAIA/IQ8CfwJAIAUgCCADIAYgByAKcSIHGyAUIBSSIBGUIhEgEVsgESAQIBCSIAC+IhNDAACAP14EfSATEPQFQ1T4LUCUQwAAgD+SkQUgDwuUYEVxIgobIg0oAgAiAEsEQCAMIAYgAyAKGyAHGyIOKAIAIQQgCSAAQSRsaiIAENMEIRAgAC8BFCICQf//AXFFBEAgAkEQdAwDCyACQf8HcSEAIAJBgIACcSELIAJBgPgBcSICQYD4AUYEQCALQRB0IQIgAkGAgID8B3IgAEUNAxogAiAAQQ10ckGAgID+B3IMAwsgC0EQdCELIAJFDQEgAkENdEGAgID8AHEgAEENdHJBgICAwANqIAtyDAILIAAgBUHoyMcAEL8HAAsgC0GAgIDYA3IgAGdBEGsiAkEXdGsgACACQf//A3FBCGp0Qf///wNxcgtDAACAPyERviIPQwAAgD9eBEAgDxD0BUNU+C1AlEMAAIA/kpEhEQtDAACAPyEPAn8CQCAEIAVJBEAgCSAEQSRsaiIAENMEIRMgAC8BFCICQf//AXFFBEAgAkEQdAwDCyACQf8HcSEAIAJBgIACcSEFIAJBgPgBcSICQYD4AUYEQCAFQRB0IQIgAkGAgID8B3IgAEUNAxogAiAAQQ10ckGAgID+B3IMAwsgBUEQdCEFIAJFDQEgAkENdEGAgID8AHEgAEENdHJBgICAwANqIAVyDAILDAMLIAVBgICA2ANyIABnQRBrIgJBF3RrIAAgAkH//wNxQQhqdEH///8DcXILviISQwAAgD9eBEAgEhD0BUNU+C1AlEMAAIA/kpEhDwsgASAGIAwgBxsoAgA2AgAgASANIA4gECAQkiARlCIQIBBbIBAgEyATkiAPlGBFcSIAGygCADYCBCABIA4gDSAAGygCADYCCCABIAMgCCAKGygCADYCDA8LIAIgBUHoyMcAEL8HAAsgBCAFQejIxwAQvwcAC7UWAQ5/An8CQCACIANLBEAgASADQR5saiIDLwEAIgJB//8BcUUEQCACQRB0DAMLIAJB/wdxIQEgAkGAgAJxIQUgAkGA+AFxIgJBgPgBRgRAIAVBEHQhAiACQYCAgPwHciABRQ0DGiACIAFBDXRyQYCAgP4HcgwDCyAFQRB0IQUgAkUNASACQQ10QYCAgPwAcSABQQ10ckGAgIDAA2ogBXIMAgsgAyACQYjOxwAQvwcACyAFQYCAgNgDciABZ0EQayICQRd0ayABIAJB//8DcUEIanRB////A3FyCyEBAn8gAy8BAiIFQf//AXFFBEAgBUEQdAwBCyAFQf8HcSECIAVBgIACcSEGIAVBgPgBcSIFQYD4AUYEQCAGQRB0IQUgBUGAgID8B3IgAkUNARogBSACQQ10ckGAgID+B3IMAQsgBkEQdCEGIAVBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAGciAFDQAaIAZBgICA2ANyIAJnQRBrIgVBF3RrIAIgBUH//wNxQQhqdEH///8DcXILIQUCfyADLwEEIgZB//8BcUUEQCAGQRB0DAELIAZB/wdxIQIgBkGAgAJxIQcgBkGA+AFxIgZBgPgBRgRAIAdBEHQhBiAGQYCAgPwHciACRQ0BGiAGIAJBDXRyQYCAgP4HcgwBCyAHQRB0IQcgBkENdEGAgID8AHEgAkENdHJBgICAwANqIAdyIAYNABogB0GAgIDYA3IgAmdBEGsiBkEXdGsgAiAGQf//A3FBCGp0Qf///wNxcgshBgJ/IAMvAQYiB0H//wFxRQRAIAdBEHQMAQsgB0H/B3EhAiAHQYCAAnEhCCAHQYD4AXEiB0GA+AFGBEAgCEEQdCEHIAdBgICA/AdyIAJFDQEaIAcgAkENdHJBgICA/gdyDAELIAhBEHQhCCAHQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogCHIgBw0AGiAIQYCAgNgDciACZ0EQayIHQRd0ayACIAdB//8DcUEIanRB////A3FyCyEHAn8gAy8BCCIIQf//AXFFBEAgCEEQdAwBCyAIQf8HcSECIAhBgIACcSEJIAhBgPgBcSIIQYD4AUYEQCAJQRB0IQggCEGAgID8B3IgAkUNARogCCACQQ10ckGAgID+B3IMAQsgCUEQdCEJIAhBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAJciAIDQAaIAlBgICA2ANyIAJnQRBrIghBF3RrIAIgCEH//wNxQQhqdEH///8DcXILIQgCfyADLwEKIglB//8BcUUEQCAJQRB0DAELIAlB/wdxIQIgCUGAgAJxIQogCUGA+AFxIglBgPgBRgRAIApBEHQhCSAJQYCAgPwHciACRQ0BGiAJIAJBDXRyQYCAgP4HcgwBCyAKQRB0IQogCUENdEGAgID8AHEgAkENdHJBgICAwANqIApyIAkNABogCkGAgIDYA3IgAmdBEGsiCUEXdGsgAiAJQf//A3FBCGp0Qf///wNxcgshCQJ/IAMvAQwiCkH//wFxRQRAIApBEHQMAQsgCkH/B3EhAiAKQYCAAnEhCyAKQYD4AXEiCkGA+AFGBEAgC0EQdCEKIApBgICA/AdyIAJFDQEaIAogAkENdHJBgICA/gdyDAELIAtBEHQhCyAKQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogC3IgCg0AGiALQYCAgNgDciACZ0EQayIKQRd0ayACIApB//8DcUEIanRB////A3FyCyEKAn8gAy8BDiILQf//AXFFBEAgC0EQdAwBCyALQf8HcSECIAtBgIACcSEMIAtBgPgBcSILQYD4AUYEQCAMQRB0IQsgC0GAgID8B3IgAkUNARogCyACQQ10ckGAgID+B3IMAQsgDEEQdCEMIAtBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAMciALDQAaIAxBgICA2ANyIAJnQRBrIgtBF3RrIAIgC0H//wNxQQhqdEH///8DcXILIQsCfyADLwEQIgxB//8BcUUEQCAMQRB0DAELIAxB/wdxIQIgDEGAgAJxIQ0gDEGA+AFxIgxBgPgBRgRAIA1BEHQhDCAMQYCAgPwHciACRQ0BGiAMIAJBDXRyQYCAgP4HcgwBCyANQRB0IQ0gDEENdEGAgID8AHEgAkENdHJBgICAwANqIA1yIAwNABogDUGAgIDYA3IgAmdBEGsiDEEXdGsgAiAMQf//A3FBCGp0Qf///wNxcgshDAJ/IAMvARIiDUH//wFxRQRAIA1BEHQMAQsgDUH/B3EhAiANQYCAAnEhDiANQYD4AXEiDUGA+AFGBEAgDkEQdCENIA1BgICA/AdyIAJFDQEaIA0gAkENdHJBgICA/gdyDAELIA5BEHQhDiANQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogDnIgDQ0AGiAOQYCAgNgDciACZ0EQayINQRd0ayACIA1B//8DcUEIanRB////A3FyCyENAn8gAy8BFCIOQf//AXFFBEAgDkEQdAwBCyAOQf8HcSECIA5BgIACcSEPIA5BgPgBcSIOQYD4AUYEQCAPQRB0IQ4gDkGAgID8B3IgAkUNARogDiACQQ10ckGAgID+B3IMAQsgD0EQdCEPIA5BDXRBgICA/ABxIAJBDXRyQYCAgMADaiAPciAODQAaIA9BgICA2ANyIAJnQRBrIg5BF3RrIAIgDkH//wNxQQhqdEH///8DcXILIQ4CfyADLwEWIg9B//8BcUUEQCAPQRB0DAELIA9B/wdxIQIgD0GAgAJxIRAgD0GA+AFxIg9BgPgBRgRAIBBBEHQhDyAPQYCAgPwHciACRQ0BGiAPIAJBDXRyQYCAgP4HcgwBCyAQQRB0IRAgD0ENdEGAgID8AHEgAkENdHJBgICAwANqIBByIA8NABogEEGAgIDYA3IgAmdBEGsiD0EXdGsgAiAPQf//A3FBCGp0Qf///wNxcgshDwJ/IAMvARgiEEH//wFxRQRAIBBBEHQMAQsgEEH/B3EhAiAQQYCAAnEhBCAQQYD4AXEiEEGA+AFGBEAgBEEQdCEQIBBBgICA/AdyIAJFDQEaIBAgAkENdHJBgICA/gdyDAELIARBEHQhBCAQQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBHIgEA0AGiAEQYCAgNgDciACZ0EQayIQQRd0ayACIBBB//8DcUEIanRB////A3FyCyEQAn8gAy8BGiIEQf//AXFFBEAgBEEQdAwBCyAEQf8HcSECIARBgIACcSERIARBgPgBcSIEQYD4AUYEQCARQRB0IQQgBEGAgID8B3IgAkUNARogBCACQQ10ckGAgID+B3IMAQsgEUEQdCERIARBDXRBgICA/ABxIAJBDXRyQYCAgMADaiARciAEDQAaIBFBgICA2ANyIAJnQRBrIgRBF3RrIAIgBEH//wNxQQhqdEH///8DcXILIQIgAAJ/IAMvARwiBEH//wFxRQRAIARBEHQMAQsgBEH/B3EhAyAEQYCAAnEhESAEQYD4AXEiBEGA+AFGBEAgEUEQdCEEIARBgICA/AdyIANFDQEaIAQgA0ENdHJBgICA/gdyDAELIBFBEHQhESAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogEXIgBA0AGiARQYCAgNgDciADZ0EQayIEQRd0ayADIARB//8DcUEIanRB////A3FyCzYCOCAAIAI2AjQgACAQNgIwIAAgDzYCLCAAIA42AiggACANNgIkIAAgDDYCICAAIAs2AhwgACAKNgIYIAAgCTYCFCAAIAg2AhAgACAHNgIMIAAgBjYCCCAAIAU2AgQgACABNgIAC6EUAxF/AX4BbyMAQcAHayIBJAAgAUHgAWoiByACIAMoAgwRAQACQAJAAkACQAJAAkAgASkD4AFCotzE/4a99taZf4UgASkD6AFC2viHx93blNbmAIWEUARAIAFB0ABqIAJBkAH8CgAAIAEoAtQBIgNFDQEgByADIAEoAtgBIhIoAgwiCBEBAAJAAkACQAJAAkAgASkD4AFCwa/Q/prKzJYkhSABKQPoAULzuJ/+p+nNsUaFhFBFBEAgByADIAgRAQAgASkD4AFChZuLttiEpIblAIUgASkD6AFCqdSD8JWulZTLAIWEUA0BIAcgAyAIEQEAIAEpA+ABQrftztKOhPr6M4UgASkD6AFC3/ba84jqlJhVhYRQDQIgByADIAgRAQAgASkD4AFChsPvoeq667y/f4UgASkD6AFC/92etbLaod/9AIWEUA0DIAcgAyAIEQEAIAEpA+ABQoDf7viUprWs0ACFIAEpA+gBQpee4+SGwaSlcYWEUA0EIAcgAyAIEQEAIAEpA+ABQqj/h/v+/vrjVIUgASkD6AFC85mCzIeIn/TMAIWEUCITDQUgAUEANgLwASABQQE2AuQBIAFBsLPBADYC4AEgAUIENwLoASAHQbizwQAQyggACyABQeABaiADQdgF/AoAACADKAIIIQcgAykDACEVIAEgA0EMakHQAPwKAAAgAygCXCEIIAEoAqgHIgQEQCABKAKsByIFQQRrKAIAIgZBeHEiCUEEQQggBkEDcSIGGyAEakkNDCAGQQAgCSAEQSdqSxsNCyAFELQCCwJAIAEoApwHIgVBg4CAgHhGDQAgAUHAAmohBAJAAkACQEEBIAVBgICAgHhzIAVBAE4bDgIBAgALIAQQyQEMAgsgBBDuAwwBCyAEENQCCyADQQRrKAIAIgRBeHFB3AVB4AUgBEEDcSIFG0kNCyAFRQ0IIARBgAZPDQoMCAsgAygCCCEHIAMpAgAhFSABIANBDGpB0AD8CgAAIAMoAqABIQkgAygCnAEhDiADKAKUASEPIAMoApABIQsgAygCiAEhEiADKAKEASEEIAMoAnwhEyADKAJ4IQUgAygCcCENIAMoAmwhBiADKAJcIQggAygCYCIKBEAgAygCZCIQQQRrKAIAIgxBeHEiEUEEQQggDEEDcSIMGyAKakkNCyAMQQAgESAKQSdqSxsNCiAQELQCCyAGBEAgDUEEaygCACIKQXhxIhBBBEEIIApBA3EiChsgBmpJDQsgCkEAIBAgBkEnaksbDQogDRC0AgsgBQRAIBNBBGsoAgAiBkF4cSINQQRBCCAGQQNxIgYbIAVqSQ0LIAZBACANIAVBJ2pLGw0KIBMQtAILAkAgBEGAgICAeEYNACAEBEAgEkEEaygCACIFQXhxIgYgBEECdCIEQQRBCCAFQQNxIgUbakkNDCAFQQAgBiAEQSdqSxsNCyASELQCCyALBEAgD0EEaygCACIEQXhxIgUgC0EBdCIGQQRBCCAEQQNxIgQbakkNDCAEQQAgBSAGQSdqSxsNCyAPELQCCyAORQ0AIAlBBGsoAgAiBEF4cSIFIA5BAnQiBkEEQQggBEEDcSIEG2pJDQsgBEEAIAUgBkEnaksbDQogCRC0AgsgA0EEaygCACIEQXhxQczTAEHQ0wAgBEEDcSIFG0kNCiAFRSAEQfDTAElyDQcMCQsgAygCCCEHIAMpAgAhFSABIANBDGpB0AD8CgAAIAMoAlwhCCADKAJgIgQEQCADKAJkIgVBBGsoAgAiBkF4cSIJQQRBCCAGQQNxIgYbIARqSQ0KIAZBACAJIARBJ2pLGw0JIAUQtAILIANBBGsoAgAiBEF4cSIFQfAAQfQAIARBA3EiBBtJDQkgBEUgBUGUAUlyDQYMCAsgAygCCCEHIAMpAgAhFSABIANBDGpB0AD8CgAAIAMoAlwhCCADKAJgIgQEQCADKAJkIgVBBGsoAgAiBkF4cSIJQQRBCCAGQQNxIgYbIARqSQ0JIAZBACAJIARBJ2pLGw0IIAUQtAILIANBBGsoAgAiBEF4cSIFQfAAQfQAIARBA3EiBBtJDQggBEUgBUGUAUlyDQUMBwsgAygCCCEHIAMpAgAhFSABIANBDGpB0AD8CgAAIAMoAlwhCCADKAJgIgQEQCADKAJkIARBARDWBwsgA0EEaygCACIEQXhxIgVB8ABB9AAgBEEDcSIEG0kNByAERSAFQZQBSXINBAwGCyADKAKAAiEHIAMpAvgBIRUgAygC/AIhCyADKAL4AiEEIAMoAugBIQ0gAygC5AEhBiADKAKIASEKIAMoAnQhECADKAJwIQkgAygCbCEFIAMoAmghDiADKAJkIQ8gAygCACEMIAEgA0GEAmpB0AD8CgAAIAMoAtQCIQggBARAIAsgBEEBENYHCwJAIAxBAkYNACAFBEAgDkEkaiEEA0AgBEEEaygCACILQYCAgIB4ckGAgICAeEcEQCAEKAIAIgxBBGsoAgAiEUF4cSIUQQRBCCARQQNxIhEbIAtqSQ0KIBFBACAUIAtBJ2pLGw0JIAwQtAILIARBMGohBCAFQQFrIgUNAAsLIA8EQCAOIA9BMGxBCBDWBwsgCUGAgICAeHJBgICAgHhGDQAgECAJQQEQ1gcLIAMgEiATGyEDIAZFIApBAkZyRQRAIA0gBkEobEEIENYHCyADQQRrKAIAIgRBeHFBpANBqAMgBEEDcSIFG0kNAiAFRSAEQcgDSXINAwwFCyABIAM2AuQBIAEgAjYC4AFBwPjIAEErIAFB4AFqQcDxwQBBmPPBABCVBwALQYyzwQAQpAoAC0Hgi8gAQS5BkIzIABCiCAwBCyADELQCIAEoAlwiA0GAgICAeHJBgICAgHhHBEAgASgCYCIEQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyADakkNAyAFQQAgBiADQSdqSxsNAiAEELQCCyABKAJoQYCAgIB4RwRAIAFB6ABqEJgDCyABKAJQIgMEQCABKAJUIgRBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIANqSQ0DIAVBACAGIANBJ2pLGw0CIAQQtAILAkAgASgCyAEiA0GAgICAeHJBgICAgHhHBEAgASgCzAEiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAYgA0EnaksbDQEgBBC0AgtB9AAQfiIDRQ0BIAMgBzYCFCADIBU3AgwgA0EANgIIIANCgYCAgBA3AgAgA0EYaiABQdAA/AoAACADIAg2AnAgAyAHNgJsIAMgCDYCaCADQQhqEAghFhCFBSIHIBYmASACQQRrKAIAIgNBeHFBlAFBmAEgA0EDcSIIG0kNAyAIQQAgA0G4AU8bDQIgAhC0AiAAIAc2AgQgAEEANgIAIAFBwAdqJAAPCwwBCwALQaCMyABBLkHQjMgAEKIIAAtB4IvIAEEuQZCMyAAQoggAC7MWAyV/A30BeyMAQdACayIDJABBABD3CSEEIANBABD3CTYCwAEgAyAENgK8ASADQQA2ArgBIANCADcCsAEgA0IENwJ4IANCADcCcCADQoCAgIDAADcCaCADQgQ3AmAgA0IANwJYIANCgICAgMAANwJQIANBADYCPCADQQA2AjQgA0EANgIsIANBADYCJCADQQA2AhwgA0EANgIUIANBADYCDCADQQA2AkggA0GAgICAeDYCmAEgA0GAgICAeDYCpAEgA0HMAWpBADoAACADQgQ3ApABIANCADcCiAEgA0KAgICAwAA3AoABIANCADcCxAEgASgCPCETIAMgAjoA+AEgAyATNgL0ASADIAEoAggiCDYC8AEgA0EMaiADQfABahCGBAJAAkACQAJAQYCAMBB+IhBFDQAgEEEEayIdLQAAQQNxBEAgEEEAQYCAMPwLAAtBgIAQEH4iCUUNACAJQQRrIh4tAABBA3EEQCAJQQBBgIAQ/AsAC0GAgDAQfiIRRQ0AIBFBBGsiHy0AAEEDcQRAIBFBAEGAgDD8CwALQYCAMBB+IhJFDQAgEkEEayIgLQAAQQNxBEAgEkEAQYCAMPwLAAtBgIDAABB+IgtFDQAgC0EEayIhLQAAQQNxBEAgC0EAQYCAwAD8CwALQYCACBB+IgxFDQAgDEEEayIiLQAAQQNxBEAgDEEAQYCACPwLAAtBgIAQEH4iDUUNACANQQRrIiMoAgAiBUEDcSIEBEAgDUEAQYCAEPwLAAsgCARAIAxBAiACGyEkIA1BBCACGyElQYCABEEAIAIbIRsgASgCECEmIAEoAhQhHCABKAIEIScDQEGAgAQgCCAOayIEIARBgIAETxshFCAIIA5HBEAgJyAOQSRsaiEEICYgDkEYbGohBkEAIRUgCSEWQQAhBSANIRcgDCEYIAshGQNAIBYCfwJAIAggDiAVaiIaSwRAIARBEGoqAgAhKCAEQQxqKgIAISkgBEEIaioCACEqIANB0AFqIAQQywMgA0HgAWogBBDCAyADQfABaiAEKQIAEN0CIAP9AATwASErIAUgEGoiCiAqOAIAIAUgEWoiByADKgLQATgCACAFIBJqIg8gAyoC4AE4AgAgCkEEaiApOAIAIAdBBGogAyoC1AE4AgAgD0EEaiADKgLkATgCACAKQQhqICg4AgAgB0EIaiADKgLYATgCACAPQQhqIAMqAugBOAIAIBkgK/0LAgAgBEEUai8BACIHQf//AXFFBEAgB0EQdAwDCyAHQf8HcSEKIAdBgIACcSEPIAdBgPgBcSIHQYD4AUYEQCAPQRB0IQcgB0GAgID8B3IgCkUNAxogByAKQQ10ckGAgID+B3IMAwsgD0EQdCEPIAdFDQEgB0ENdEGAgID8AHEgCkENdHJBgICAwANqIA9yDAILIBogCEHoyMcAEL8HAAsgD0GAgIDYA3IgCmdBEGsiB0EXdGsgCiAHQf//A3FBCGp0Qf///wNxcgs2AgAgAgRAAn8CQCAaIBxJBEACfyAGQRRqKAIAIgpBBEsEQCAGQQRqKAIAIQogBkEIaigCAAwBCyAGQQRqCyEHIAoNAUEAIQpBAAwCCyAaIBxB6M3HABC/BwwHCyAHKAIACyEHIBggCjsBACAXIAc2AgALIARBJGohBCAGQRhqIQYgFkEEaiEWIAVBDGohBSAXQQRqIRcgGEECaiEYIBlBEGohGSAVQQFqIhUgFEkNAAsLIAMgGzYCvAIgAyAlNgK4AiADIBs2ArQCIAMgJDYCsAIgA0EANgKsAiADQoCAgIDAADcCpAIgA0KAgICAwAA3ApwCIANCgICQgMAANwKUAiADIAs2ApACIANBgIAMNgKMAiADIBI2AogCIANBgIAMNgKEAiADIBE2AoACIANBgIAENgL8ASADIAk2AvgBIANBgIAMNgL0ASADIBA2AvABIANBDGogDiAUIANB8AFqEJ0BIA4gFGoiDiAISQ0ACyAjKAIAIgVBA3EhBAsCQAJAIAVBeHFBhIAQQYiAECAEG08EQCAEQQAgBUGogBBPGw0GIA0QtAIgIigCACICQXhxQYSACEGIgAggAkEDcSIEG0kNBSAEQQAgAkGogAhPGw0GIAwQtAIgISgCACICQXhxQYSAwABBiIDAACACQQNxIgQbSQ0FIARBACACQaiAwABPGw0GIAsQtAIgICgCACICQXhxQYSAMEGIgDAgAkEDcSIEG0kNBSAEQQAgAkGogDBPGw0GIBIQtAIgHygCACICQXhxQYSAMEGIgDAgAkEDcSIEG0kNBSAEQQAgAkGogDBPGw0GIBEQtAIgHigCACICQXhxQYSAEEGIgBAgAkEDcSIEG0kNBSAEQQAgAkGogBBPGw0GIAkQtAIgHSgCACICQXhxQYSAMEGIgDAgAkEDcSIEG0kNBSAEQQAgAkGogDBPGw0GIBAQtAIgE0UNBEGAgJABEH4iAkUNAyACQQRrIgsoAgAiBUEDcSIEBEAgAkEAQYCAkAH8CwALIAhFDQIgASgCICEMIAEoAhwhDUEAIQYDQEGAgAQgCCAGayIEIARBgIAETxshCSAGIAhHBEBBACEFIAIhBANAIANB8AFqIA0gDCAFIAZqEMcBIAQgA/0ABPAB/QsCACAEQRBqIAP9AASAAv0LAgAgBEEgaiADKgKQAjgCACAEQSRqIQQgBUEBaiIFIAlJDQALCyADQQxqIAYgCSACQYCAJBD3ASAIIAYgCWoiBksNAAsMAQsMBAsgCygCACIFQQNxIQQLAkAgBUF4cUGEgJABQYiAkAEgBBtPBEAgBEEAIAVBqICQAU8bDQUgAhC0AiATQQFGDQNBgIDwARB+IgJFDQIgAkEEayILKAIAIgVBA3EiBARAIAJBAEGAgPAB/AsACyAIBEAgASgCLCEMIAEoAighDUEAIQYDQEGAgAQgCCAGayIEIARBgIAETxshCSAGIAhHBEBBACEFIAIhBANAIANB8AFqIA0gDCAFIAZqEJYBIAQgA/0ABPAB/QsCACAEQRBqIAP9AASAAv0LAgAgBEEgaiAD/QAEkAL9CwIAIARBMGogAyoCoAI4AgAgBEE0aiADKQKkAjcCACAEQTxqIQQgBUEBaiIFIAlJDQALCyADQQxqIAYgCSACQYCAPBC0ASAGIAlqIgYgCEkNAAsgCygCACIFQQNxIQQLIAVBeHFBhIDwAUGIgPABIAQbSQ0EIARBACAFQaiA8AFPGw0FIAIQtAIgE0ECTQ0DQYCA0AIQfiICRQ0CIAJBBGsiCSgCACIFQQNxIgQEQCACQQBBgIDQAvwLAAsgCARAIAEoAjghCyABKAI0IQxBACEGA0BBgIAEIAggBmsiASABQYCABE8bIQEgBiAIRwRAQQAhBSACIQQDQCADQfABaiAMIAsgBSAGahB5IAQgA/0ABPAB/QsCACAEQRBqIAP9AASAAv0LAgAgBEEgaiAD/QAEkAL9CwIAIARBMGogA/0ABKAC/QsCACAEQUBrIAP9AASwAv0LAgAgBEHQAGogAyoCwAI4AgAgBEHUAGohBCAFQQFqIgUgAUkNAAsLIANBDGogBiABIAJBgIDUABChASABIAZqIgYgCEkNAAsgCSgCACIFQQNxIQQLIAVBeHFBhIDQAkGIgNACIAQbSQ0EIARBACAFQaiA0AJPGw0BIAIQtAIMAwsMAwsMAwsACwJAIANBDGoiAhDgASIBBEAgAEECNgIAIAAgATYCBCACEJoCDAELIAAgA0EMakHEAfwKAAALIANB0AJqJAAPC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAuOFAEQfyMAQeAJayIBJAAgAUGwA2oiBSACIAMoAgwRAQACQAJAAkACQCABKQOwA0Lh5I+q8P7EoMAAhSABKQO4A0Kwn6ug+YTv4TuFhFAEQCACLQDoASISQQZHBEAgAUHEAWogAkHsAfwKAAAgASgCpAMiA0UNAiAFIAMgASgCqAMiECgCDCIEEQEAAkACQAJAAkACQCABKQOwA0LF0aqyxo/W0OEAhSABKQO4A0KQouuknKPo52iFhFBFBEAgBSADIAQRAQAgASkDsANCwOPHtPah7oKIf4UgASkDuANCzq37vMqx7qCgf4WEUA0BIAUgAyAEEQEAIAEpA7ADQururryp5cP+VoUgASkDuANC7uaYmcqG5c/YAIWEUA0CIAUgAyAEEQEAIAEpA7ADQpWkz+yXzf9XhSABKQO4A0KZkaLy7aHJylGFhFANAyAFIAMgBBEBACABKQOwA0Lnl9GDi7qz4aR/hSABKQO4A0LLysXGtdCJ/GyFhFANBCAFIAMgBBEBACABKQOwA0KJ2cvlwdX7hr1/hSABKQO4A0LUgduR+YX4oUaFhFAiEQ0FIAFBADYCwAMgAUEBNgK0AyABQbCzwQA2ArADIAFCBDcCuAMgBUG4s8EAEMoIAAsgAUGwA2ogA0GwBvwKAAAgAUEIaiADQfQEakG8AfwKAAAgASgCmAgiBARAIAEoApwIIgVBBGsoAgAiBkF4cSIHQQRBCCAGQQNxIgYbIARqSQ0LIAZBACAHIARBJ2pLGw0KIAUQtAILAkAgASgCjAgiBEGDgICAeEYNAAJAAkACQEEBIARBgICAgHhzIARBAE4bDgIBAgALIAFBsANqEMkBDAILIAFBsANqEO4DDAELIAFBsANqENQCCyADQQRrKAIAIgRBeHFBtAZBuAYgBEEDcSIFG0kNCiAFRQ0IIARB2AZPDQkMCAsgAUEIaiADQbwB/AoAACADKAL8ASEHIAMoAvgBIQsgAygC8AEhDCADKALsASEJIAMoAuQBIRAgAygC4AEhBCADKALYASERIAMoAtQBIQUgAygCzAEhCiADKALIASEGIAMoArwBIggEQCADKALAASINQQRrKAIAIg5BeHEiD0EEQQggDkEDcSIOGyAIakkNCiAOQQAgDyAIQSdqSxsNCSANELQCCyAGBEAgCkEEaygCACIIQXhxIg1BBEEIIAhBA3EiCBsgBmpJDQogCEEAIA0gBkEnaksbDQkgChC0AgsgBQRAIBFBBGsoAgAiBkF4cSIKQQRBCCAGQQNxIgYbIAVqSQ0KIAZBACAKIAVBJ2pLGw0JIBEQtAILAkAgBEGAgICAeEYNACAEBEAgEEEEaygCACIFQXhxIgYgBEECdCIEQQRBCCAFQQNxIgUbakkNCyAFQQAgBiAEQSdqSxsNCiAQELQCCyAJBEAgDEEEaygCACIEQXhxIgUgCUEBdCIGQQRBCCAEQQNxIgQbakkNCyAEQQAgBSAGQSdqSxsNCiAMELQCCyALRQ0AIAdBBGsoAgAiBEF4cSIFIAtBAnQiBkEEQQggBEEDcSIEG2pJDQogBEEAIAUgBkEnaksbDQkgBxC0AgsgA0EEaygCACIEQXhxIgVBqNQAQazUACAEQQNxIgQbSQ0JIARFIAVBzNQASXINBwwICyABQQhqIANBvAH8CgAAIAMoArwBIgQEQCADKALAASIFQQRrKAIAIgZBeHEiB0EEQQggBkEDcSIGGyAEakkNCSAGQQAgByAEQSdqSxsNCCAFELQCCyADQQRrKAIAIgRBeHFBzAFB0AEgBEEDcSIFG0kNCCAFRSAEQfABSXINBgwHCyABQQhqIANBvAH8CgAAIAMoArwBIgQEQCADKALAASIFQQRrKAIAIgZBeHEiB0EEQQggBkEDcSIGGyAEakkNCCAGQQAgByAEQSdqSxsNByAFELQCCyADQQRrKAIAIgRBeHFBzAFB0AEgBEEDcSIFG0kNByAFRSAEQfABSXINBQwGCyABQQhqIANBvAH8CgAAIAMoArwBIgQEQCADKALAASAEQQEQ1gcLIANBBGsoAgAiBEF4cUHMAUHQASAEQQNxIgUbSQ0GIAVFIARB8AFJcg0EDAULIAMoArQCIQkgAygCsAIhBCADKAKEAiEKIAMoAoACIQYgAygC/AEhBSADKAL4ASEHIAMoAvQBIQsgAygCkAEhCCADKAJgIQ0gAygCXCEMIAMoAgAhDiABQQhqIANBvAJqQbwB/AoAACAEBEAgCSAEQQEQ1gcLAkAgCEECRg0AIAUEQCAHQSRqIQQDQCAEQQRrKAIAIglBgICAgHhyQYCAgIB4RwRAIAQoAgAiCEEEaygCACIPQXhxIhNBBEEIIA9BA3EiDxsgCWpJDQkgD0EAIBMgCUEnaksbDQggCBC0AgsgBEEwaiEEIAVBAWsiBQ0ACwsgCwRAIAcgC0EwbEEIENYHCyAGQYCAgIB4ckGAgICAeEYNACAKIAZBARDWBwsgAyAQIBEbIQMgDEUgDkECRnJFBEAgDSAMQShsQQgQ1gcLIANBBGsoAgAiBEF4cUGEBEGIBCAEQQNxIgUbSQ0FIAVFIARBqARJcg0DDAQLQZjxwQAQpAoACyABIAM2ArQDIAEgAjYCsANBwPjIAEErIAFBsANqQcDxwQBB0PHBABCVBwALQYyzwQAQpAoACyADELQCAkAgASgCjAMiA0GAgICAeHJBgICAgHhHBEAgASgCkAMiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgA2pJDQMgBUEAIAYgA0EnaksbDQIgBBC0AgsgASgCxAFBAkcEQCABQcQBahDXAgsgASgCgAMiAwRAIAEoAoQDIgRBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIANqSQ0DIAVBACAGIANBJ2pLGw0CIAQQtAILIAEoApgDIgNBgICAgHhyQYCAgIB4RwRAIAEoApwDIgRBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIANqSQ0DIAVBACAGIANBJ2pLGw0CIAQQtAILIBJBAnQiA0Gc9MEAaigCACEEIANBhPTBAGooAgAhBSABQQhqEN4BIgZBqPHBAEEIEKwJIgMgBSAEEKwJIgQQhApB+NDJAC0AAARAQfjQyQBBADoAAEH80MkAKAIAIQBB/NDJAEEANgIAIAEgADYCsANBwPjIAEErIAFBsANqQdS/wQBBsPHBABCVBwALQfzQyQBBADYCAEH40MkAQQA6AAAgBEGECE8EQCAEEM0HCyADQYQITwRAIAMQzQcLIAJBBGsoAgAiA0F4cSIEQfABQfQBIANBA3EiAxtJDQIgA0EAIARBlAJPGw0AIAIQtAIgACAGNgIEIABBADYCACABQeAJaiQADwsLQaCMyABBLkHQjMgAEKIIAAtB4IvIAEEuQZCMyAAQoggAC44UARB/IwBBgAprIgEkACABQcADaiIFIAIgAygCDBEBAAJAAkACQAJAIAEpA8ADQqKUvM/+h5L5I4UgASkDyANC7oSH0viX7cxvhYRQBEAgAi0A8AEiEkEGRwRAIAFBzAFqIAJB9AH8CgAAIAEoArQDIgNFDQIgBSADIAEoArgDIhAoAgwiBBEBAAJAAkACQAJAAkAgASkDwANCl9KZp6TMmMCof4UgASkDyANC3fL9zc/Q8eGSf4WEUEUEQCAFIAMgBBEBACABKQPAA0Kuq5bW7ufU8nGFIAEpA8gDQvPQn6DI3NiQ9QCFhFANASAFIAMgBBEBACABKQPAA0L+r+nwrqHMnLN/hSABKQPIA0LFpZiXg4rt0GyFhFANAiAFIAMgBBEBACABKQPAA0KOzNvsmtqovXaFIAEpA8gDQuyK4MaX/+eC9gCFhFANAyAFIAMgBBEBACABKQPAA0LQr/L02oWzkAyFIAEpA8gDQvmH9YjusKn8jn+FhFANBCAFIAMgBBEBACABKQPAA0L7hqHhvIrxojiFIAEpA8gDQvaW1vniq+jAcYWEUCIRDQUgAUEANgLQAyABQQE2AsQDIAFBsLPBADYCwAMgAUIENwLIAyAFQbizwQAQyggACyABQcADaiADQbgG/AoAACABQQhqIANB9ARqQcQB/AoAACABKAKoCCIEBEAgASgCrAgiBUEEaygCACIGQXhxIgdBBEEIIAZBA3EiBhsgBGpJDQsgBkEAIAcgBEEnaksbDQogBRC0AgsCQCABKAKcCCIEQYOAgIB4Rg0AAkACQAJAQQEgBEGAgICAeHMgBEEAThsOAgECAAsgAUHAA2oQyQEMAgsgAUHAA2oQ7gMMAQsgAUHAA2oQ1AILIANBBGsoAgAiBEF4cUG8BkHABiAEQQNxIgUbSQ0KIAVFDQggBEHgBk8NCQwICyABQQhqIANBxAH8CgAAIAMoAoQCIQcgAygCgAIhCyADKAL4ASEMIAMoAvQBIQkgAygC7AEhECADKALoASEEIAMoAuABIREgAygC3AEhBSADKALUASEKIAMoAtABIQYgAygCxAEiCARAIAMoAsgBIg1BBGsoAgAiDkF4cSIPQQRBCCAOQQNxIg4bIAhqSQ0KIA5BACAPIAhBJ2pLGw0JIA0QtAILIAYEQCAKQQRrKAIAIghBeHEiDUEEQQggCEEDcSIIGyAGakkNCiAIQQAgDSAGQSdqSxsNCSAKELQCCyAFBEAgEUEEaygCACIGQXhxIgpBBEEIIAZBA3EiBhsgBWpJDQogBkEAIAogBUEnaksbDQkgERC0AgsCQCAEQYCAgIB4Rg0AIAQEQCAQQQRrKAIAIgVBeHEiBiAEQQJ0IgRBBEEIIAVBA3EiBRtqSQ0LIAVBACAGIARBJ2pLGw0KIBAQtAILIAkEQCAMQQRrKAIAIgRBeHEiBSAJQQF0IgZBBEEIIARBA3EiBBtqSQ0LIARBACAFIAZBJ2pLGw0KIAwQtAILIAtFDQAgB0EEaygCACIEQXhxIgUgC0ECdCIGQQRBCCAEQQNxIgQbakkNCiAEQQAgBSAGQSdqSxsNCSAHELQCCyADQQRrKAIAIgRBeHEiBUGw1ABBtNQAIARBA3EiBBtJDQkgBEUgBUHU1ABJcg0HDAgLIAFBCGogA0HEAfwKAAAgAygCxAEiBARAIAMoAsgBIgVBBGsoAgAiBkF4cSIHQQRBCCAGQQNxIgYbIARqSQ0JIAZBACAHIARBJ2pLGw0IIAUQtAILIANBBGsoAgAiBEF4cUHUAUHYASAEQQNxIgUbSQ0IIAVFIARB+AFJcg0GDAcLIAFBCGogA0HEAfwKAAAgAygCxAEiBARAIAMoAsgBIgVBBGsoAgAiBkF4cSIHQQRBCCAGQQNxIgYbIARqSQ0IIAZBACAHIARBJ2pLGw0HIAUQtAILIANBBGsoAgAiBEF4cUHUAUHYASAEQQNxIgUbSQ0HIAVFIARB+AFJcg0FDAYLIAFBCGogA0HEAfwKAAAgAygCxAEiBARAIAMoAsgBIARBARDWBwsgA0EEaygCACIEQXhxQdQBQdgBIARBA3EiBRtJDQYgBUUgBEH4AUlyDQQMBQsgAygCtAIhCSADKAKwAiEEIAMoAoQCIQogAygCgAIhBiADKAL8ASEFIAMoAvgBIQcgAygC9AEhCyADKAKQASEIIAMoAmAhDSADKAJcIQwgAygCACEOIAFBCGogA0G8AmpBxAH8CgAAIAQEQCAJIARBARDWBwsCQCAIQQJGDQAgBQRAIAdBJGohBANAIARBBGsoAgAiCUGAgICAeHJBgICAgHhHBEAgBCgCACIIQQRrKAIAIg9BeHEiE0EEQQggD0EDcSIPGyAJakkNCSAPQQAgEyAJQSdqSxsNCCAIELQCCyAEQTBqIQQgBUEBayIFDQALCyALBEAgByALQTBsQQgQ1gcLIAZBgICAgHhyQYCAgIB4Rg0AIAogBkEBENYHCyADIBAgERshAyAMRSAOQQJGckUEQCANIAxBKGxBCBDWBwsgA0EEaygCACIEQXhxQYwEQZAEIARBA3EiBRtJDQUgBUUgBEGwBElyDQMMBAtBiPLBABCkCgALIAEgAzYCxAMgASACNgLAA0HA+MgAQSsgAUHAA2pBwPHBAEGo8sEAEJUHAAtBjLPBABCkCgALIAMQtAICQCABKAKcAyIDQYCAgIB4ckGAgICAeEcEQCABKAKgAyIEQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyADakkNAyAFQQAgBiADQSdqSxsNAiAEELQCCyABKALMAUECRwRAIAFBzAFqEJoCCyABKAKQAyIDBEAgASgClAMiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgA2pJDQMgBUEAIAYgA0EnaksbDQIgBBC0AgsgASgCqAMiA0GAgICAeHJBgICAgHhHBEAgASgCrAMiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgA2pJDQMgBUEAIAYgA0EnaksbDQIgBBC0AgsgEkECdCIDQZz0wQBqKAIAIQQgA0GE9MEAaigCACEFIAFBCGoQ3AEiBkGo8cEAQQgQrAkiAyAFIAQQrAkiBBCECkH40MkALQAABEBB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgASAANgLAA0HA+MgAQSsgAUHAA2pB1L/BAEGY8sEAEJUHAAtB/NDJAEEANgIAQfjQyQBBADoAACAEQYQITwRAIAQQzQcLIANBhAhPBEAgAxDNBwsgAkEEaygCACIDQXhxIgRB+AFB/AEgA0EDcSIDG0kNAiADQQAgBEGcAk8bDQAgAhC0AiAAIAY2AgQgAEEANgIAIAFBgApqJAAPCwtBoIzIAEEuQdCMyAAQoggAC0Hgi8gAQS5BkIzIABCiCAALvhUCB38HfiMAQeACayICJAACfwJAAn8CQAJAAkACQCAALQAAQQNrDgUBAAAAAgALIAAgARDwAgwFCyAAKQMIIglC/////////weDIQsgCUL///////////8Ag0L/////////9/8AWARAIAlCNIinIQAgCUIAUw0CIAJByAJqDAMLQdeaxgBB2prGACAJQgBZIgAbQd6axgAgC1AiBBshA0EDQQQgABtBAyAEGyEADAMLIAEoAgBBrKLGAEEEIAEoAgQoAgwRAAAMAwsgAkEtOgDIAkEBIQcgAkHJAmoLIQYCfwJ/AkACQAJAIABB/w9xIgBFIAtQcUUEQCAAQQJJIAtCAFJyIQMgC0KAgICAgICACIQgCyAAGyIJQgKGIQogCUIBgyEPIABBtQhrQcx3IAAbIgBBAEgEQCACQZACakHY7sUAIAAgAEGFolNsQRR2IABBf0drIgBqIgVBBHQiBGspAwAiCSAKQgKEIgwQkgcgAkGAAmpB4O7FACAEaykDACILIAwQkgcgAkHwAWogAikDmAIiDCACKQOAAnwiDSACKQOIAiAMIA1WrXwgACAFQbHZtR9sQRN2a0H8AGpB/wBxQcAAcyIEENUHIAJBsAFqIAkgCiADQX9zrHwiDBCSByACQaABaiALIAwQkgcgAkGQAWogAikDuAEiDCACKQOgAXwiDSACKQOoASAMIA1WrXwgBBDVByACQeABaiAJIAoQkgcgAkHQAWogCyAKEJIHIAJBwAFqIAIpA+gBIgkgAikD0AF8IgsgAikD2AEgCSALVq18IAQQ1QcgAikDwAEhDCACKQOQASENIAIpA/ABIQkgAEECTwRAIApCfyAArYZCf4WDUEUgAEE/T3INBAwFCyAJIA99IQlBASEIIA9QIANxDAULIAJBgAFqIABBwegEbEESdiAAQQNLayIFQQR0IgRB+MPFAGopAwAiCSAKQgKEIgsQkgcgAkHwAGogBEGAxMUAaikDACIMIAsQkgcgAkHgAGogAikDiAEiDSACKQNwfCIOIAIpA3ggDSAOVq18IAUgAGsgBUHPpsoAbEETdmpB/QBqQf8AcUHAAHMiABDVByACQSBqIAkgCiADQX9zrHwiDRCSByACQRBqIAwgDRCSByACIAIpAygiDSACKQMQfCIOIAIpAxggDSAOVq18IAAQ1QcgAkHQAGogCSAKEJIHIAJBQGsgDCAKEJIHIAJBMGogAikDWCIJIAIpA0B8IgwgAikDSCAJIAxWrXwgABDVByACKQMwIQwgAikDACENIAIpA2AhCSAFQRZPDQJBACAKp2sgCkIFgKdBe2xGBEBBfyEAA0AgAEEBaiEAIApCzZmz5syZs+ZMfiIKQrPmzJmz5syZM1gNAAsgACAFTw0EDAMLIA9QRQRAQX8hAANAIABBAWohACALQs2Zs+bMmbPmTH4iC0K05syZs+bMmTNUDQALIAkgACAFT619IQkMAwsgA61Cf4UgCnwhCkF/IQADQCAAQQFqIQAgCkLNmbPmzJmz5kx+IgpCs+bMmbPmzJkzWA0ACwwBCyAGQQJqQbqXxgAtAAA6AAAgBkG4l8YALwAAOwAAIAlCP4inQQNqIQAgAkHIAmohAwwFCyAAIAVJDQBBAQwCC0EAIQMCfyAJQuQAgCILIA1C5ACAIg5YBEAgDSEOIAkhCyAMIQpBAAwBCyAMpyAMQuQAgCIKp0Gcf2xqQTFLIQNBAgshACALQgqAIgsgDkIKgCIJVgR/A0AgAEEBaiEAIAoiDEIKgCEKIAtCCoAiCyAJIg5CCoAiCVYNAAsgDKcgCqdBdmxqQQRLBSADCyAKIA5RcgwCC0EBIQhBAAshBEEAIQMCQCAJQgqAIgogDUIKgCIOWARAQQAhACANIQsgDCEJDAELQQAhAANAIARBACANp2sgDiILp0F2bEZxIQQgAEEBaiEAIAggA0H/AXFFcSEIIAynIAxCCoAiCadBdmxqIQMgCSEMIAshDSAKQgqAIgogC0IKgCIOVg0ACwsCQAJAIAQEQEEAIAunayALQgqAIgynQXZsRg0BCyAJIQoMAQsDQCAAQQFqIQAgCCADQf8BcUVxIQggCacgCUIKgCIKp0F2bGohAyAKIQlBACAMp2sgDCILQgqAIgynQXZsRg0ACwsgD1AgBHFFIAogC1FxQQRBBSAKQgGDUBsgAyADQf8BcUEFRhsgAyAIG0H/AXFBBEtyCyEDAkACfwJ/AkACQAJAAn8CQAJAAkAgACAFaiIEQQBOIAQCf0ERIAogA61CAYN8IglC//+D/qbe4RFWDQAaQRAgCUL//5mm6q/jAVYNABpBDyAJQv//6IOx3hZWDQAaQQ4gCUL/v8rzhKMCVg0AGkENIAlC/5+UpY0dVg0AGkEMIAlC/8/bw/QCVg0AGkELIAlC/8evoCVWDQAaQQogCUL/k+vcA1YNABpBCSAJQv/B1y9WDQAaQQggCUL/rOIEVg0AGkEHIAlCv4Q9Vg0AGkEGIAlCn40GVg0AGkEFIAlCj84AVg0AGkEEIAlC5wdWDQAaQQMgCULjAFYNABpBAkEBIAlCCVYbCyIAaiIFQRFIcUUEQCAFQQFrIgNBEEkNASAFQQRqQQVJDQIgAEEBRw0FIAJByAJqIgAgB2ogCadBMGo6AAAgBkHlADoAASAAIAdBAnIiBmohBCADQQBIDQMgAwwECyAJIAAgBmoQzgQgBEUgACAFTnJFBEAgAkHIAmogAGogB2pBMCAE/AsACyAFIAdqIgAgAkHIAmoiA2pBruAAOwAAIABBAmohAAwKCyAJIAAgB2pBAWoiACACQcgCamoQzgQgBQRAIAYgBkEBaiAF/AoAAAsgBSAGakEuOgAAIAJByAJqIQMMCQsgAkHIAmogB2oiBEEwOgAAIAZBLjoAAUECIAVrIQMCQCAFQQBODQBBAyADIANBA00bQQJrIgVFDQAgBEECakEwIAX8CwALIAkgACAHaiADaiIAIAJByAJqIgNqEM4EDAgLIARBLToAACAEQQFqIQRBASAFawsiAEHjAEoNASAAQQlMBEAgBCAAQTBqOgAAIANBH3ZBAWohAAwGCyAEIABBAXRBrsLFAGovAAA7AAAgA0EfdkECciEADAULIAkgACAHaiIAIAJByAJqIghqIgRBAWoQzgQgByAIaiAGLQABOgAAIAZBLjoAASAEQeUAOgABIAggAEECaiIGaiEEIANBAEgNASADDAILIAQgAEHkAG4iBUEwajoAACAEIAAgBUHkAGxrQQF0Qa7CxQBqLwAAOwABIANBH3ZBA2ohAAwDCyAEQS06AAAgBEEBaiEEQQEgBWsLIgBB4wBMBEAgAEEJTARAIAQgAEEwajoAACADQR92QQFqDAILIAQgAEEBdEGuwsUAai8AADsAACADQR92QQJyDAELIAQgAEHkAG4iBUEwajoAACAEIAAgBUHkAGxrQQF0Qa7CxQBqLwAAOwABIANBH3ZBA2oLIAZqIQAgAkHIAmohAwwBCyAAIAZqIQAgAkHIAmohAwsgAiAANgLEAiACIAM2AsACIAJBAjYCpAIgAkGcosYANgKgAiACQgE3AqwCIAIgAkHAAmqtQoCAgIAghDcDuAIgAiACQbgCajYCqAIgASgCACABKAIEIAJBoAJqEOQDCyACQeACaiQAC8UXAgJ/AX4jAEFAaiICJAAgASgCBCEDIAEoAgAhAQJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAIgAtAABBAWsOIwECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGyMcHR4fICEiAAsgAiAAQQRqNgIEIAIgAEEIajYCICACIABBDGo2AiQgAkEENgIMIAJBoJzFADYCCCACQgM3AhQgAiACQSRqrUKAgICA8AyENwM4IAJCgICAgIANIgQgAkEgaq2ENwMwIAIgBCACQQRqrYQ3AyggAiACQShqNgIQIAEgAyACQQhqEOQDDCsLIAFBwJzFAEEWIAMoAgwRAAAMKgsgAUHWnMUAQSUgAygCDBEAAAwpCyABQfucxQBBHiADKAIMEQAADCgLIAIgAEEBajYCJCACQQI2AiwgAkG8ncUANgIoIAJCATcCNCACIAJBJGqtQoCAgIDwDIQ3AwggAiACQQhqNgIwIAEgAyACQShqEOQDDCcLIAIgAEEBajYCJCACQQI2AiwgAkHwncUANgIoIAJCATcCNCACIAJBJGqtQoCAgIDwDIQ3AwggAiACQQhqNgIwIAEgAyACQShqEOQDDCYLIAIgAEEBajYCJCACQQI2AiwgAkGgnsUANgIoIAJCATcCNCACIAJBJGqtQoCAgIDwDIQ3AwggAiACQQhqNgIwIAEgAyACQShqEOQDDCULIAIgAEEBajYCJCACQQI2AiwgAkHQnsUANgIoIAJCATcCNCACIAJBJGqtQoCAgIDwDIQ3AwggAiACQQhqNgIwIAEgAyACQShqEOQDDCQLIAIgAEEBajYCJCACQQI2AiwgAkGMn8UANgIoIAJCATcCNCACIAJBJGqtQoCAgIDwDIQ3AwggAiACQQhqNgIwIAEgAyACQShqEOQDDCMLIAIgAEEBajYCJCACQQI2AiwgAkG4n8UANgIoIAJCATcCNCACIAJBJGqtQoCAgIDwDIQ3AwggAiACQQhqNgIwIAEgAyACQShqEOQDDCILIAIgAEEEajYCICACIABBCGo2AiQgAkEDNgIsIAJB9J/FADYCKCACQgI3AjQgAkKAgICAkA0iBCACQSBqrYQ3AxAgAiAEIAJBJGqthDcDCCACIAJBCGo2AjAgASADIAJBKGoQ5AMMIQsgAiAAQQRqNgIgIAIgAEEIajYCJCACQQM2AiwgAkGwoMUANgIoIAJCAjcCNCACQoCAgICQDSIEIAJBJGqthDcDECACIAQgAkEgaq2ENwMIIAIgAkEIajYCMCABIAMgAkEoahDkAwwgCyACIABBAWo2AgQgAiAAQQRqNgIgIAIgAEEIajYCJCACQQQ2AgwgAkGoocUANgIIIAJCAzcCFCACIAJBBGqtQoCAgICgDYQ3AzggAkKAgICAkA0iBCACQSRqrYQ3AzAgAiAEIAJBIGqthDcDKCACIAJBKGo2AhAgASADIAJBCGoQ5AMMHwsgAiAAQQJqNgIgIAIgAEEBajYCJCACQQM2AiwgAkGcosUANgIoIAJCAjcCNCACIAJBIGqtQoCAgICwDYQ3AxAgAiACQSRqrUKAgICAgAmENwMIIAIgAkEIajYCMCABIAMgAkEoahDkAwweCyABQbSixQBBISADKAIMEQAADB0LIAIgAEECajYCICACIABBAWo2AiQgAkECNgIsIAJBhKPFADYCKCACQgI3AjQgAiACQSRqrUKAgICAsA2ENwMQIAIgAkEgaq1CgICAgKANhDcDCCACIAJBCGo2AjAgASADIAJBKGoQ5AMMHAsgAiAAQQFqNgIkIAJBAjYCLCACQbyjxQA2AiggAkIBNwI0IAIgAkEkaq1CgICAgKANhDcDCCACIAJBCGo2AjAgASADIAJBKGoQ5AMMGwsgAUHMo8UAQRggAygCDBEAAAwaCyACIABBAWo2AiQgAkECNgIsIAJB+KPFADYCKCACQgE3AjQgAiACQSRqrUKAgICAgAmENwMIIAIgAkEIajYCMCABIAMgAkEoahDkAwwZCyACIABBAWo2AiQgAkECNgIsIAJBnKTFADYCKCACQgE3AjQgAiACQSRqrUKAgICAgAmENwMIIAIgAkEIajYCMCABIAMgAkEoahDkAwwYCyACIABBAWo2AiQgAkECNgIsIAJBwKTFADYCKCACQgE3AjQgAiACQSRqrUKAgICAgAmENwMIIAIgAkEIajYCMCABIAMgAkEoahDkAwwXCyACIABBAWo2AiQgAkECNgIsIAJB5KTFADYCKCACQgE3AjQgAiACQSRqrUKAgICAgAmENwMIIAIgAkEIajYCMCABIAMgAkEoahDkAwwWCyACIABBAWo2AiQgAkECNgIsIAJBmKXFADYCKCACQgE3AjQgAiACQSRqrUKAgICAgAmENwMIIAIgAkEIajYCMCABIAMgAkEoahDkAwwVCyACIABBAWo2AiQgAkECNgIsIAJByKXFADYCKCACQgE3AjQgAiACQSRqrUKAgICAgAmENwMIIAIgAkEIajYCMCABIAMgAkEoahDkAwwUCyACIABBAWo2AiQgAkECNgIsIAJB9KXFADYCKCACQgE3AjQgAiACQSRqrUKAgICAgAmENwMIIAIgAkEIajYCMCABIAMgAkEoahDkAwwTCyACIABBAWo2AiQgAkECNgIsIAJBnKbFADYCKCACQgE3AjQgAiACQSRqrUKAgICAgAmENwMIIAIgAkEIajYCMCABIAMgAkEoahDkAwwSCyACIABBAWo2AiQgAkECNgIsIAJByKbFADYCKCACQgE3AjQgAiACQSRqrUKAgICAgAmENwMIIAIgAkEIajYCMCABIAMgAkEoahDkAwwRCyABQdimxQBBGyADKAIMEQAADBALIAFBi6fFAEE3IAMoAgwRAAAMDwsgAC0AAUEBaw4HBwgJCgsMDQYLIAFB6KrFAEEfIAMoAgwRAAAMDQsgAiAAQQFqNgIkIAJBAjYCLCACQayrxQA2AiggAkIBNwI0IAIgAkEkaq1CgICAgPAMhDcDCCACIAJBCGo2AjAgASADIAJBKGoQ5AMMDAsgAiAAQQFqNgIkIAJBATYCLCACQdCrxQA2AiggAkIBNwI0IAIgAkEkaq1CgICAgPAMhDcDCCACIAJBCGo2AjAgASADIAJBKGoQ5AMMCwsgAiAAQQFqNgIkIAJBATYCLCACQfirxQA2AiggAkIBNwI0IAIgAkEkaq1CgICAgPAMhDcDCCACIAJBCGo2AjAgASADIAJBKGoQ5AMMCgsgAUGArMUAQRAgAygCDBEAAAwJCyACIABBAWo2AiRBASABQfOmxQBBGCADKAIMEQAADQgaIAJBATYCLCACQfCOyAA2AiggAkIBNwI0IAIgAkEkaq1CgICAgMANhDcDCCACIAJBCGo2AjAgASADIAJBKGoQ2wkMCAsgAkEANgI4IAJBATYCLCACQeinxQA2AiggAkIENwIwIAEgAyACQShqENsJDAcLIAJBADYCOCACQQE2AiwgAkGYqMUANgIoIAJCBDcCMCABIAMgAkEoahDbCQwGCyACQQA2AjggAkEBNgIsIAJBwKjFADYCKCACQgQ3AjAgASADIAJBKGoQ2wkMBQsgAkEANgI4IAJBATYCLCACQeioxQA2AiggAkIENwIwIAEgAyACQShqENsJDAQLIAJBADYCOCACQQE2AiwgAkGkqcUANgIoIAJCBDcCMCABIAMgAkEoahDbCQwDCyACQQA2AjggAkEBNgIsIAJB4KnFADYCKCACQgQ3AjAgASADIAJBKGoQ2wkMAgsgAkEANgI4IAJBATYCLCACQbCqxQA2AiggAkIENwIwIAEgAyACQShqENsJDAELIAJBADYCOCACQQE2AiwgAkHgqsUANgIoIAJCBDcCMCABIAMgAkEoahDbCQsgAkFAayQAC8YVAx9/BX0BfiMAQRBrIg4kACAAIAEgAhCSBQJAAkAgAygCBCIPRQRAIAMoAgwhCwwBCwJAIAMoAgwiC0UNACADKAIUIhVFDQAgAygCHCIWRQ0AIAMoAiQiE0UNACACRQ0CIAJBBHQhGiAAKAKEASEbIAAoAogBIRggACgCeCEcIAAoAnwhGSADKAIgIR0gAygCGCEeIAMoAhAhHyADKAIIISAgAygCACEhIAshEQJAAkACQANAAkACQAJAAkAgGSANIgRBBGoiDU8EQCANIBhLDQECQAJAAkACQAJAAkAgCCAPTw0AIA8gCGsiBUEAIAUgD00bIgVBAUcEQCAFQQJHBEAgEUUNByAIIBVPDQUgFCAVakEBaw4CAwQGCyAIQQJqIQgMAQsgCEEBaiEICyAIIA9B+NDBABC/BwALIAhBAWohCAwBCyAIQQJqIQgLIAggFUGI0cEAEL8HAAsCQAJAIAggFk8NAAJAAkAgFCAWakEBaw4CAAEDCyAIQQFqIQgMAQsgCEECaiEICyAIIBZBmNHBABC/BwALIAQgE08NCQJAIBMgBGsiBUEAIAUgE00bQQFrDgMGCAkACyAQICFqIgZBCGooAgAhDCAGQQRqKAIAISIgBCAgaigCACEFIBAgH2oiBCgCACEHIARBCGooAgAhCSAEQQRqKAIAIQogECAeaiIEKgIAISMgBEEIaioCACEkIARBBGoqAgAhJSASIB1qIgQqAgAhJiAEQQRqKgIAIScgBEEIaikCACEoIBIgHGoiFyAGKAIANgIAIBdBCGogDDYCACAXQQRqICI2AgAgDiAnOAIEIA4gJjgCACAOICg3AgggBUH///8DcSEMIAVBgICAgHhxIQQgBUGAgID8B3EiBkGAgID8B0YEQCAEQRB2IAxBDXZyIAxBAEdBCXRyQYD4AXIhBAwFCyAEQRB2IQQgBkGAgIC4BEsNAyAGQYCAgMQDTwRAIAVBDHYgBUH/3wBxQQBHcSAGQQ12IAxBDXZqQYCAAWogBHJqIQQMBQsgBkGAgICYA0kNBCAMQYCAgARyIgxBHiAGQRd2IgZrdiEFIAxBHSAGayIGdkEBcQR/IAVBAyAGdEEBayAMcUEAR2oFIAULIARyIQQMBAsgCyALQejQwQAQvwcACyANIBlByNDBABCiCgALIA0gGEHY0MEAEKIKAAsgBEGA+AFyIQQLIBdBDGogBEH//wNxNgIAIAdB////A3EhBSAHQYCAgIB4cSEGAkAgB0GAgID8B3EiBEGAgID8B0YEQCAGQRB2IAVBDXZyIAVBAEdBCXRyQYD4AXIhBgwBCyAGQRB2IQYgBEGAgIC4BE0EQCAEQYCAgMQDTwRAIAdBDHYgB0H/3wBxQQBHcSAEQQ12IAVBDXZqQYCAAWogBnJqIQYMAgsgBEGAgICYA0kNASAFQYCAgARyIgdBHiAEQRd2IgRrdiEFIAdBHSAEayIEdkEBcQR/IAVBAyAEdEEBayAHcUEAR2oFIAULIAZyIQYMAQsgBkGA+AFyIQYLIApB////A3EhByAKQYCAgIB4cSEEAkAgCkGAgID8B3EiBUGAgID8B0YEQCAEQRB2IAdBDXZyIAdBAEdBCXRyQYD4AXIhBAwBCyAEQRB2IQQgBUGAgIC4BE0EQCAFQYCAgMQDTwRAIApBDHYgCkH/3wBxQQBHcSAFQQ12IAdBDXZqQYCAAWogBHJqIQQMAgsgBUGAgICYA0kNASAHQYCAgARyIgdBHiAFQRd2IgprdiEFIAdBHSAKayIKdkEBcQR/IAVBAyAKdEEBayAHcUEAR2oFIAULIARyIQQMAQsgBEGA+AFyIQQLIBIgG2oiCiAGQf//A3EgBEEQdHI2AgAgCUH///8DcSEGIAlBgICAgHhxIQUCQCAJQYCAgPwHcSIEQYCAgPwHRgRAIAVBEHYgBkENdnIgBkEAR0EJdHJBgPgBciEFDAELIAVBEHYhBSAEQYCAgLgETQRAIARBgICAxANPBEAgCUEMdiAJQf/fAHFBAEdxIARBDXYgBkENdmpBgIABaiAFcmohBQwCCyAEQYCAgJgDSQ0BIAZBgICABHIiBkEeIARBF3YiB2t2IQQgBkEdIAdrIgd2QQFxBH8gBEEDIAd0QQFrIAZxQQBHagUgBAsgBXIhBQwBCyAFQYD4AXIhBQsgIxD0BbwiB0H///8DcSEJIAdBgICAgHhxIQYCQCAHQYCAgPwHcSIEQYCAgPwHRgRAIAZBEHYgCUENdnIgCUEAR0EJdHJBgPgBciEGDAELIAZBEHYhBiAEQYCAgLgETQRAIARBgICAxANPBEAgB0EMdiAHQf/fAHFBAEdxIARBDXYgCUENdmpBgIABaiAGcmohBgwCCyAEQYCAgJgDSQ0BIAlBgICABHIiB0EeIARBF3YiCWt2IQQgB0EdIAlrIgl2QQFxBH8gBEEDIAl0QQFrIAdxQQBHagUgBAsgBnIhBgwBCyAGQYD4AXIhBgsgCkEEaiAFQf//A3EgBkEQdHI2AgAgJRD0BbwiBUH///8DcSEHIAVBgICAgHhxIQYCQCAFQYCAgPwHcSIEQYCAgPwHRgRAIAZBEHYgB0ENdnIgB0EAR0EJdHJBgPgBciEGDAELIAZBEHYhBiAEQYCAgLgETQRAIARBgICAxANPBEAgBUEMdiAFQf/fAHFBAEdxIARBDXYgB0ENdmpBgIABaiAGcmohBgwCCyAEQYCAgJgDSQ0BIAdBgICABHIiBUEeIARBF3YiB2t2IQQgBUEdIAdrIgd2QQFxBH8gBEEDIAd0QQFrIAVxQQBHagUgBAsgBnIhBgwBCyAGQYD4AXIhBgsgJBD0BbwiB0H///8DcSEJIAdBgICAgHhxIQUCQCAHQYCAgPwHcSIEQYCAgPwHRgRAIAVBEHYgCUENdnIgCUEAR0EJdHJBgPgBciEFDAELIAVBEHYhBSAEQYCAgLgETQRAIARBgICAxANPBEAgB0EMdiAHQf/fAHFBAEdxIARBDXYgCUENdmpBgIABaiAFcmohBQwCCyAEQYCAgJgDSQ0BIAlBgICABHIiB0EeIARBF3YiCWt2IQQgB0EdIAlrIgl2QQFxBH8gBEEDIAl0QQFrIAdxQQBHagUgBAsgBXIhBQwBCyAFQYD4AXIhBQsgCkEIaiAGQf//A3EgBUEQdHI2AgAgCkEMaiAOEPQENgIAIBBBDGohECAUQQNrIRQgCEEDaiEIIBFBAWshESAaIBJBEGoiEkcNAQwHCwsgBEEBaiEEDAILIARBAmohBAwBCyAEQQNqIQQLIAQgE0Go0cEAEL8HAAsgACABIAIgAygCACAPENUFCyALBEAgACABIAIgAygCCCALELECCyADKAIUIgQEQCAAIAEgAiADKAIQIAQQtgILIAMoAhwiBARAIAAgASACIAMoAhggBBCqAgsgAygCJCIERQ0AIAAgASACIAMoAiAgBBCuBQsgAEEBOgDAASADKAI8IQQgAygCOCENIAMoAjQhCyADKAIwIREgAygCLCIIBEAgACABIAIgAygCKCAIEPcBCyALBEAgACABIAIgESALELQBCyAEBEAgACABIAIgDSAEEKEBCyADKAJEIgQEQCAAIAEgAiADKAJAIAQQ4AQLIAMoAkwiBARAIAAgASACIAMoAkggBBDfBAsgDkEQaiQAC68VAhd/AXsjAEHgAGsiBCQAIARBGGr9DAAAAAAAAAAAAAAAAAAAAAD9CwMAIAQgGf0LAwggASgCBCIKIAEoAggiCUEBdGohFCAKIQMCQAJAAkACQAJAAkACQAJAA0AgAyAURwRAIAMvAQAhAiADQQJqIQMgAkUNASACQRBPDQIgBEEIaiACQQF0aiICIAIvAQBBAWo7AQAgB0EBaiEHDAELCwJAAkACQAJAAkAgBw4CAwABCyAJBEAgCUEBdCEGQQAhAiAKIQMDQCADLwEADQMgAkEBaiECIANBAmohAyAGQQJrIgYNAAsLQdThxAAQpAoAC0EQIQUgBEE4aiAZ/QsDACAEIBn9CwMoIAQvASYiCwRAQQ8hAwwGCyAELwEkBEBBDyEFQQ4hAwwGCyAELwEiBEBBDiEFQQ0hAwwGCyAELwEgBEBBDSEFQQwhAwwGCyAELwEeBEBBDCEFQQshAwwGCyAELwEcBEBBCyEFQQohAwwGCyAELwEaBEBBCiEFQQkhAwwGCyAELwEYBEBBCSEFQQghAwwGCyAELwEWBEBBCCEFQQchAwwGCyAELwEUBEBBByEFQQYhAwwGCyAELwESBEBBBiEFQQUhAwwGCyAELwEQBEBBBSEFQQQhAwwGCyAELwEOBEBBBCEFQQMhAwwGCyAELwEMRQ0CQQMhBUECIQMMBQsgACACOwEEIABBgICAgHg2AgAMBgsgAEGBgICAeDYCACAAQQ46AAQMBQsgBC8BCiICRQ0BQQEhAyACQQF0IQJBAiEFDAMLIAJBEEH04sQAEL8HAAtB5OHEABCkCgALIAQgBC8BCkEBdCICOwEsIAQvAQwgAmpBAXQhAiADQQJqIgZBBEYEQEECIQMMAQsgBCACOwEuIAQvAQ4gAmpBAXQhAiAGQQVGBEBBAyEDDAELIAQgAjsBMCAELwEQIAJqQQF0IQIgBkEGRgRAQQQhAwwBCyAEIAI7ATIgBC8BEiACakEBdCECIAZBB0YEQEEFIQMMAQsgBCACOwE0IAQvARQgAmpBAXQhAiAGQQhGBEBBBiEDDAELIAQgAjsBNiAELwEWIAJqQQF0IQIgBkEJRgRAQQchAwwBCyAEIAI7ATggBC8BGCACakEBdCECIAZBCkYEQEEIIQMMAQsgBCACOwE6IAQvARogAmpBAXQhAiAGQQtGBEBBCSEDDAELIAQgAjsBPCAELwEcIAJqQQF0IQIgBkEMRgRAQQohAwwBCyAEIAI7AT4gBC8BHiACakEBdCECIAZBDUYEQEELIQMMAQsgBCACOwFAIAQvASAgAmpBAXQhAiAGQQ5GBEBBDCEDDAELIAQgAjsBQiAELwEiIAJqQQF0IQIgBkEPRgRAQQ0hAwwBCyAEIAI7AUQgBC8BJCACakEBdCECIAZBEEYEQEEOIQMMAQsgBCACOwFGIAIgC2pBAXQhAgsCfwJAAkAgAkH//wNxQQIgA3RB/v8DcUYEQCAFQQogAyADQQpPGyIMQQFqIgNJDQEgAyAFRg0CQQAhAkEAIQcCQCAFIANrIgZBCE8EQCAEQQhqIANBAXRqIQMgBkEYcSIHIQIDQCAD/QABACAZ/Y4BIRkgA0EQaiEDIAJBCGsiAg0ACyAZIBkgGf0NCAkKCwwNDg8AAQABAAEAAf2OASIZIBkgGf0NBAUGBwABAAEAAQABAAEAAf2OASIZIBkgGf0NAgMAAQABAAEAAQABAAEAAf2OAf0ZACECIAYgB0YNAQsgBCAHQQF0IAxBAXRqakEKaiEDIAcgDGogBWtBAWohBQNAIAMvAQAgAmohAiADQQJqIQMgBUEBaiIFDQALCyACQf//A3EiA0UNAiADQQR0EH4iB0UNBSADQQF0DAMLIABBgYCAgHg2AgAgAEEOOgAEDAMLIAMgBUH04cQAEKUKAAtBBCEHQQALIQMgBEEANgJQIAQgBzYCTCAEIAM2AkhBBCAMdCISEH4iDUUNASANQQRrIhYtAABBA3FFIBJFckUEQCANQQAgEvwLAAtBASAMdCIOQQFrIRUCQCAJRQ0AIApBAmohAiAJQQFrQf////8HcUEBaiEXQQAhBkEAIQNBASEFIAohCUEAIQsCQANAAkAgCyETIAkhCCACIQkgBSELAkAgCC8BACIIRQ0AAkAgCEEPTQRAIARBKGogCEEBdGoiAiACLwEAIhBBAWo7AQAgEEEIdCAQQQh2ciICQQR2QY8ecSACQY8ecUEEdHIiAkECdkGz5gBxIAJBs+YAcUECdHIiAkEBdkHVqgFxIAJB1aoBcUEBdHJBACAIa0EPcXYhBQJAAkACQCAIIAxLBEAgDiAFIBVxIgJNDQEgDSACQQJ0aiICKAIAIgUNAiACIANBAWoiBjYCACAEKAJIIANGBH8gBEHIAGpBpOLEABCrBiAEKAJMBSAHCyADQQN0aiICQQI7AQAgAiAEKAFUNgECIAJBBmogBEHYAGovAQA7AQAgBCAGNgJQIAYhAgwDCyAFIA5PDQUgCEEQdCATciETQQEgCHQiCEECdCEQIA0gBUECdGohAgNAIAIgEzYCACACIBBqIQIgBSAIaiIFIA5JDQALDAULIAIgDkGU4sQAEL8HAAsgAyECIAVBAWshAwsgCCAMayIIQf//A3EiBUEBayIHQQAgBSAHTxshBwNAIAchBQJAAkACQCACIANLBEAgBCgCTCIHIANBA3RqIg8vAQBBAWsOAgoCAQsgAyACQcTixAAQvwcACyAPKAIEIQ8MAQsgD0EAOwEAIA8gAiADayIPNgIEIAQoAkgiBiACRgRAIARByABqQdTixAAQqwYgBCgCTCEHIAQoAkghBgsgByACQQN0aiIRQQI7AQAgESAEKAFaNgECIBFBBmogBEHeAGoiGC8BADsBACAEIAJBAWoiETYCUCAGIBFGBH8gBEHIAGpB5OLEABCrBiAEKAJMBSAHCyARQQN0aiIGQQI7AQAgBiAEKAFaNgECIAZBBmogGC8BADsBACAEIAJBAmoiBjYCUCAGIQILIAVBAWshByAQIAhBAWt2QQFxIANqIA9qIQMgBSEIIAVB//8DcQ0ACwwBCyAIQRBBhOLEABC/BwALIAMgBk8NASAEKAJMIgcgA0EDdGoiAy8BAEECSQ0DIAMgEzsBAiADQQE7AQAgBiEDCyALQQFqIQUgCSAJIBRHQQF0aiECIAsgF0cNAQwDCwsgAyAGQbTixAAQvwcACyAAQYGAgIB4NgIAIABBDjoABAJAIBYoAgAiAEF4cSIDQQRBCCAAQQNxIgAbIBJqTwRAIABBACADIBJBJ2pLGw0GIA0QtAIgBCgCSCIARQ0DIAdBBGsoAgAiA0F4cSICIABBA3QiAEEEQQggA0EDcSIDG2pJDQUgA0EAIAIgAEEnaksbDQEgBxC0AgwDCwwECwwECyAAIAQpAkg3AgAgACAVOwEYIAAgDjYCFCAAIA02AhAgACAONgIMIABBCGogBEHQAGooAgA2AgALAkAgASgCACIABEAgCkEEaygCACIBQXhxIgMgAEEBdCIAQQRBCCABQQNxIgEbakkNAyABQQAgAyAAQSdqSxsNASAKELQCCyAEQeAAaiQADwsMAgsAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAuzFAEOfyMAQSBrIhAkAAJAAkAgAUEhSQRAIAAhCSABIQoMAQsgAkEEayERIAJBEGshEgJAAkADQCAERQRAIAAgASACIANBARDrAQwFCyAAIAFBA3YiB0EcbGohBiAAIAdBBHRqIQkgBEEBayEEIBACfyABQcAATwRAIAAgCSAGIAcQ8wYMAQsgACAGIAkgACgCACIHIAkoAgAiCUkiCCAJIAYoAgAiBklzGyAIIAYgB0tzGwsiDSgCACIGNgIEIA0gAGtBAnYhDAJAAkAgBQRAIAUoAgAgBk8NAQsgASADSw0DIAIgAUECdCITaiEIQQAhCiAAIQYgDCEHA0AgACAHQQNrIglBACAHIAlPG0ECdGoiDiAGSwRAIA0oAgAhCQNAIApBAnQgAiAIQQRrIAYoAgAiCyAJSSIPG2ogCzYCACAKIA9qIgpBAnQgAiAIQQhrIAZBBGooAgAiCyAJSSIPG2ogCzYCACAKIA9qIgpBAnQgAiAIQQxrIAZBCGooAgAiCyAJSSIPG2ogCzYCACAKIA9qIgpBAnQgAiAIQRBrIgggBkEMaigCACILIAlJIg8baiALNgIAIAogD2ohCiAGQRBqIgYgDkkNAAsLIAAgB0ECdGoiCSAGSwRAIA0oAgAhDgNAIApBAnQgAiAIQQRrIgggBigCACILIA5JIg8baiALNgIAIAogD2ohCiAGQQRqIgYgCUkNAAsLIAEgB0cEQCAIQQRrIgggCkECdGogBigCADYCACAGQQRqIQYgASEHDAELCyAKQQJ0Ig4EQCAAIAIgDvwKAAALIAEgCmshCwJAIAEgCkYNAEEAIQkgC0EETwRAIAAgDmohBiASIBNqIQggC0F8cSIJIQcDQCAGIAj9AAIA/QwAAAAAAAAAAAAAAAAAAAAA/Q0MDQ4PCAkKCwQFBgcAAQID/QsCACAGQRBqIQYgCEEQayEIIAdBBGsiBw0ACyAJIAtGDQELIBEgEyAJQQJ0IgdraiEGIAAgB2ogDmohCCAJIAFrIApqIQcDQCAIIAYoAgA2AgAgBkEEayEGIAhBBGohCCAHQQFqIgcNAAsLIApFDQAgASAKTw0BIBBBADYCGCAQQQE2AgwgEEGEj8gANgIIIBBCBDcCECAQQQhqQYT3wAAQyggACyABIANLDQIgAiABQQJ0Ig5qIQhBACEHIAAhBgNAIAAgDEEDayIFQQAgBSAMTRtBAnRqIgkgBksEQCANKAIAIQUDQCAHQQJ0IAIgCEEEayAFIAYoAgAiCk8iCxtqIAo2AgAgByALaiIHQQJ0IAIgCEEIayAFIAZBBGooAgAiCk8iCxtqIAo2AgAgByALaiIHQQJ0IAIgCEEMayAFIAZBCGooAgAiCk8iCxtqIAo2AgAgByALaiIHQQJ0IAIgCEEQayIIIAUgBkEMaigCACIKTyILG2ogCjYCACAHIAtqIQcgBkEQaiIGIAlJDQALCyAAIAxBAnRqIgUgBksEQCANKAIAIQkDQCAHQQJ0IAIgCEEEayIIIAkgBigCACIKTyILG2ogCjYCACAHIAtqIQcgBkEEaiIGIAVJDQALCyABIAxHBEAgAiAHQQJ0aiAGKAIANgIAIAZBBGohBiAHQQFqIQcgCEEEayEIIAEhDAwBCwsgB0ECdCINBEAgACACIA38CgAACyABIAdGDQUgACANaiEJQQAhDAJAIAEgB2siCkEETwRAIA4gEmohBiAKQXxxIgwhBSAJIQgDQCAIIAb9AAIA/QwAAAAAAAAAAAAAAAAAAAAA/Q0MDQ4PCAkKCwQFBgcAAQID/QsCACAIQRBqIQggBkEQayEGIAVBBGsiBQ0ACyAKIAxGDQELIBEgDEECdCIFayAOaiEGIAAgBWogDWohCCAMIAFrIAdqIQUDQCAIIAYoAgA2AgAgBkEEayEGIAhBBGohCCAFQQFqIgUNAAsLIAEgB0kNA0EAIQUgCSEAIAoiAUEhSQ0EDAELIAAgDmogCyACIAMgBCAQQQRqEJ8BIAoiAUEhTw0ACyAAIQkMAgsACyAHIAFBlPfAABCjCgALIApBAkkNACAKQQF2IQECfyAKQQ9NBEAgCkEHSwRAIAIgCUEIQQwgCSgCDCAJKAIISSIFG2oiBygCACIAIAkgCSgCBCIGIAkoAgAiCE9BAnRqIgMoAgAiBCAAIARLGzYCDCACIAlBDEEIIAUbaiIFKAIAIgwgCSAGIAhJQQJ0aiIIKAIAIgYgBiAMSyIGGzYCACACIAcgAyAFIAYbIAAgBEkiBBsoAgAiACAIIAUgAyAEGyAGGygCACIDIAAgA0sbNgIIIAIgACADIAAgA0kbNgIEIAIgAUECdCIAaiIDIAAgCWoiAEEIQQwgACgCDCAAKAIISSIHG2oiDCgCACIEIAAgACgCBCIIIAAoAgAiDU9BAnRqIgUoAgAiBiAEIAZLGzYCDCADIABBDEEIIAcbaiIHKAIAIg4gACAIIA1JQQJ0aiINKAIAIgAgACAOSyIIGzYCACADIAwgBSAHIAgbIAQgBkkiBBsoAgAiACANIAcgBSAEGyAIGygCACIEIAAgBEkbNgIEIAMgACAEIAAgBEsbNgIIQQQMAgsgAiAJKAIANgIAIAIgAUECdCIAaiAAIAlqKAIANgIAQQEMAQsgCSACIAIgCkECdGoiABDfAiAJIAFBAnQiA2ogAiADaiAAQSBqEN8CQQgLIgBBAWohDSAAIAFJBEAgAEECdCEEIA0hBiAAIQgDQCAGIQMgAiAIQQJ0IgVqIgYgBSAJaigCACIFNgIAIAZBBGsoAgAiCCAFSwRAIAQhBgJ/A0AgAiAGaiIHIAg2AgAgAiAGQQRGDQEaIAZBBGshBiAFIAdBCGsoAgAiCEkNAAsgAiAGagsgBTYCAAsgBEEEaiEEIAMgASADSyIFaiEGIAMhCCAFDQALCyACIAFBAnQiA2ohBSAKIAFrIgQgAEsEQCADIAlqIQMgAEECdCEHA0AgBSAAQQJ0IgBqIgYgACADaigCACIANgIAIAZBBGsoAgAiCCAASwRAIAchBgJ/A0AgBSAGaiIMIAg2AgAgBSAGQQRGDQEaIAZBBGshBiAAIAxBCGsoAgAiCEkNAAsgBSAGagsgADYCAAsgB0EEaiEHIA0iACAESSIGIABqIQ0gBg0ACwsgBUEEayEHIAIgCkECdEEEayIAaiEMIAAgCWohBANAIAkgBSgCACIGIAIoAgAiCCAGIAhJIg0bNgIAIAQgDCgCACIAIAcoAgAiAyAAIANLGzYCACAEQQRrIQQgCUEEaiEJIAdBfEEAIAAgA0kbaiEHIAxBfEEAIAAgA08baiEMIAIgBiAIT0ECdGohAiAFIA1BAnRqIQUgAUEBayIBDQALIAdBBGohACAKQQFxBH8gCSACIAUgACACSyIBGygCADYCACAFIAAgAk1BAnRqIQUgAiABQQJ0agUgAgsgAEYgBSAMQQRqRnENABC4CAALIBBBIGokAAumFAIKfwZ+QQghBQJAAkAgAUEESQ0AIAAtAAAiAiAALQABRw0AIAGtIQ4gAC0AAyEHIAAtAAIhAwJAAkACfgJAAkACQAJAAkACQAJAAkAgAkHJAGsOBQALCwsBCwsgA0EqRyAHcg0KIAFBfHFBBEYNASAANQAEIQwMCQsgAyAHQSpHcg0JIAFBfHFBBEYNASAAKAAEIQQMAgtB4KHIACkDACINp0H/AXEiAkEERg0HIAJBA0cNCCANQiCIpyIBKAIAIQMgAUEEaigCACICKAIAIgAEQCADIAARAwALIAIoAgQiAEUNCSADIAAgAigCCBDWBwwJC0HgocgAKQMAIg2nQf8BcSICQQRHDQELIAEgBEEYdCAEQYD+A3FBCHRyIARBCHZBgP4DcSAEQRh2cnKtIg8gDiAOIA9WG6ciAmtBAkkNASAAIAJqLwAAIQJBBCEFDAILIAJBA0cNBSANQiCIpyIBKAIAIQMgAUEEaigCACICKAIAIgAEQCADIAARAwALIAIoAgQiAEUNAyADIAAgAigCCBDWBwwDC0EAIQJB4KHIACkDACINQgiIIREgDachBSAOIA1C/wGDQgRSDQEaCyAPQgJ8CyEMIAVB/wFxIgNBBEYEQEEIIQVBACEEQeChyAApAwAiDUIgiCERIA1C/wGDIRAgDUIIiCEPIA2nIQMgAkEIdCACQYD+A3FBCHZyQf//A3EhBwNAIARB//8DcSAHTw0EAn4CQCABIAwgDiAMIA5UG6ciAmtBAk8EQCAAIAJqLwAAQYEkRiEIQQQhAkIAIQ0MAQtBACEIIA8hDSADIQIgDiAQQgRSDQEaCyAMQgJ8CyEMIAJB/wFxIgJBBEcEQCACQQNHDQUgDUIYiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQMgAyAAIAIoAggQ1gcMAwsCfgJAIAEgDCAOIAwgDlQbpyICa0ECTwRAIAAgAmovAABBgAZGIQlBBCECQgAhDQwBC0EAIQkgDyENIAMhAiAOIBBCBFINARoLIAxCAnwLIQwgAkH/AXEiAkEERwRAIAJBA0cNBSANQhiIpyIBKAIAIQMgAUEEaigCACICKAIAIgAEQCADIAARAwALIAIoAgQiAEUNAyADIAAgAigCCBDWBwwDCwJ+AkAgASAMIA4gDCAOVBunIgJrQQRPBEAgACACaigAAEGAgIAIRiEKQQQhAkIAIQ0MAQtBACEKIA8hDSADIQIgDiAQQgRSDQEaCyAMQgR8CyEMIAJB/wFxIgJBBEcEQCACQQNHDQUgDUIYiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQMgAyAAIAIoAggQ1gcMAwsCfgJAIAEgDCAOIAwgDlQbpyICa0ECTwRAIAAgAmovAAAhBkEEIQJCACENDAELQQAhBiAPIQ0gAyECIA4gEEIEUg0BGgsgDEICfAshDAJAIAJB/wFxQQRGBEAgASAMIA4gDCAOVBuna0EBSyICIANB/wFxIgtBBEZyDQEgC0EDRw0GIBGnIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0EIAMgACACKAIIENYHDAQLIAJB/wFxQQNHDQUgDUIYiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQMgAyAAIAIoAggQ1gcMAwsgBEEBaiEEIAxCAnwiDSANIA4gEEIEURsgAhshDCAIIAlxIApxRQ0AC0H/ASAGQQh0IAZBgP4DcUEIdnJB//8DcSIAIABB/wFPG0EBayIAQf8BcUEHSw0DQoCIiKjgoMCDAyAAQQN0rUL4AYOIpyEFDAMLQQghBSADQQNHDQIgEUIYiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQAgAyAAIAIoAggQ1gcLIAFBDEEEENYHQQgPCwJ+AkAgASAMIA4gDCAOVBunIgJrQQJPBEAgACACai8AACECQQQhBAwBC0EAIQJB4KHIACkDACINQgiIIREgDachBCAOIA1C/wGDQgRSDQEaCyAMQgJ8CyEMIARB/wFxIgNBBEYEQEEAIQRB4KHIACkDACINQiCIIREgDUL/AYMhECANQgiIIQ8gDachAyACQf//A3EhBwNAIARB//8DcSAHTw0CAn4CQCABIAwgDiAMIA5UG6ciAmtBAk8EQCAAIAJqLwAAQZICRiEIQQQhAkIAIQ0MAQtBACEIIA8hDSADIQIgDiAQQgRSDQEaCyAMQgJ8CyEMIAJB/wFxIgJBBEcEQCACQQNHDQMgDUIYiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQQgAyAAIAIoAggQ1gcMBAsCfgJAIAEgDCAOIAwgDlQbpyICa0ECTwRAIAAgAmovAABBA0YhCUEEIQJCACENDAELQQAhCSAPIQ0gAyECIA4gEEIEUg0BGgsgDEICfAshDCACQf8BcSICQQRHBEAgAkEDRw0DIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0EIAMgACACKAIIENYHDAQLAn4CQCABIAwgDiAMIA5UG6ciAmtBBE8EQCAAIAJqKAAAQQFGIQpBBCECQgAhDQwBC0EAIQogDyENIAMhAiAOIBBCBFINARoLIAxCBHwLIQwgAkH/AXEiAkEERwRAIAJBA0cNAyANQhiIpyIBKAIAIQMgAUEEaigCACICKAIAIgAEQCADIAARAwALIAIoAgQiAEUNBCADIAAgAigCCBDWBwwECwJ+AkAgASAMIA4gDCAOVBunIgJrQQJPBEAgACACai8AACEGQQQhAkIAIQ0MAQtBACEGIA8hDSADIQIgDiAQQgRSDQEaCyAMQgJ8CyEMIAJB/wFxIgJBBEcEQCACQQNHDQMgDUIYiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQQgAyAAIAIoAggQ1gcMBAsgASAMIA4gDCAOVBuna0EBSyICIANB/wFxIgtBBEZyRQRAIAtBA0cNAyARpyIBKAIAIQMgAUEEaigCACICKAIAIgAEQCADIAARAwALIAIoAgQiAEUNBCADIAAgAigCCBDWBwwECyAEQQFqIQQgDEICfCINIA0gDiAQQgRRGyACGyEMIAggCXEgCnFFDQALQf8BIAYgBkH/AU8bQQFrIgBB/wFxQQdLDQFCgIiIqOCgwIMDIABBA3StQvgBg4inDwsgA0EDRw0AIBFCGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0BIAMgACACKAIIENYHDAELIAUPCyABQQxBBBDWB0EIC+EVAgd9Dn8jAEEgayIOJAAgABDPBSAAQcABakEAOgAAIABCADcCuAEgACACEPcEAkACQCAAKAIQQQFHDQAgACgCGEUNAAJAAn8CQAJAAkACfwJAAkACQAJAAkACQCACQQJ0Ig0iESAAKAJ8IhJNBEAgACgCiAEiEyARTwRAIAAoAnghFyAAKAKEASEYIAJFDQ1BACANayEZQQEhFUEUIQxBAyENAn8CQANAAkACfwJAAkACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkACQCAEIAxBFGtLBEAgDEETayAETw0BIAxBEmsgBE8NAiANQQNrIg8gEUkNAyAPIQ0MBAsgDEEUawwPCyAMQRNrDAoLIAxBEmsMBQtDAAB/QyADQQRqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgAyoCACIJiyIGIAUgA0EIaioCACIKiyILEJ8JEJ8JEMsFjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQ7gf8ACIPQQ9rEOUGQwAAf0OVIgWVIgcgB0MAAH9DXhsQ7gchByAUIBdqIhBDAAB/QyAGIAWVIgYgBkMAAH9DXhsQ7gf8ASAPQRt0IAlDAAAAAF1BGHRyIAhDAAAAAF1BGXRyIApDAAAAAF1BGnRyciAH/AFBCHRyQwAAf0MgCyAFlSIFIAVDAAB/Q14bEO4H/AFBEHRyNgIAIAxBEWsgBE8NCyAMQRBrIARPDQcgDEEPayAETw0DIBEgDUECa0sEQEMAAH9DIANBEGoqAgAiCIsiBUMAAIA/QwAA+EFDAAAAACADQQxqKgIAIgmLIgYgBSADQRRqKgIAIgqLIgsQnwkQnwkQywWOQwAAcEGSIgUgBUMAAAAAXRsiBSAFQwAA+EFeGxDuB/wAIg9BD2sQ5QZDAAB/Q5UiBZUiByAHQwAAf0NeGxDuByEHIBBBBGpDAAB/QyAGIAWVIgYgBkMAAH9DXhsQ7gf8ASAPQRt0IAlDAAAAAF1BGHRyIAhDAAAAAF1BGXRyIApDAAAAAF1BGnRyciAH/AFBCHRyQwAAf0MgCyAFlSIFIAVDAAB/Q14bEO4H/AFBEHRyNgIAIAxBDmsgBE8NCyAMQQ1rIARPDQcgDEEMayAETw0DIBEgDUEBa0sEQEMAAH9DIANBHGoqAgAiCIsiBUMAAIA/QwAA+EFDAAAAACADQRhqKgIAIgmLIgYgBSADQSBqKgIAIgqLIgsQnwkQnwkQywWOQwAAcEGSIgUgBUMAAAAAXRsiBSAFQwAA+EFeGxDuB/wAIg9BD2sQ5QZDAAB/Q5UiBZUiByAHQwAAf0NeGxDuByEHIBBBCGpDAAB/QyAGIAWVIgYgBkMAAH9DXhsQ7gf8ASAPQRt0IAlDAAAAAF1BGHRyIAhDAAAAAF1BGXRyIApDAAAAAF1BGnRyciAH/AFBCHRyQwAAf0MgCyAFlSIFIAVDAAB/Q14bEO4H/AFBEHRyNgIAIAxBC2sgBE8NCyAMQQprIARPDQcgDEEJayAETw0DIA0gEU8NAkMAAH9DIANBKGoqAgAiCIsiBUMAAIA/QwAA+EFDAAAAACADQSRqKgIAIgmLIgYgBSADQSxqKgIAIgqLIgsQnwkQnwkQywWOQwAAcEGSIgUgBUMAAAAAXRsiBSAFQwAA+EFeGxDuB/wAIg9BD2sQ5QZDAAB/Q5UiBZUiByAHQwAAf0NeGxDuByEHIBBBDGpDAAB/QyAGIAWVIgYgBkMAAH9DXhsQ7gf8ASAPQRt0IAlDAAAAAF1BGHRyIAhDAAAAAF1BGXRyIApDAAAAAF1BGnRyciAH/AFBCHRyQwAAf0MgCyAFlSIFIAVDAAB/Q14bEO4H/AFBEHRyNgIAIAxBCGsgBE8NHiAMQQdrIARPDRogDEEGayAETw0WIA0gGWoiEEEDRw0PIA1BA2sMEgsgDUEBayENDAELIA1BAmshDQsgDSARQdjVwQAQvwcACyAMQQlrDAILIAxBDGsMAQsgDEEPawsgBEHI1cEAEL8HAAsgDEEKawwCCyAMQQ1rDAELIAxBEGsLIARBuNXBABC/BwALIAxBC2sMAgsgDEEOawwBCyAMQRFrCyAEQajVwQAQvwcAC0MAAH9DIANBNGoqAgAiCIsiBUMAAIA/QwAA+EFDAAAAACADQTBqKgIAIgmLIgYgBSADQThqKgIAIgqLIgsQnwkQnwkQywWOQwAAcEGSIgUgBUMAAAAAXRsiBSAFQwAA+EFeGxDuB/wAIhZBD2sQ5QZDAAB/Q5UiBZUiByAHQwAAf0NeGxDuByEHIBQgGGoiD0MAAH9DIAYgBZUiBiAGQwAAf0NeGxDuB/wBIBZBG3QgCUMAAAAAXUEYdHIgCEMAAAAAXUEZdHIgCkMAAAAAXUEadHJyIAf8AUEIdHJDAAB/QyALIAWVIgUgBUMAAH9DXhsQ7gf8AUEQdHI2AgAgDEEFayAETw0NIAxBBGsgBE8NCSAMQQNrIARPDQUgEEECRg0BQwAAf0MgA0FAayoCACIIiyIFQwAAgD9DAAD4QUMAAAAAIANBPGoqAgAiCYsiBiAFIANBxABqKgIAIgqLIgsQnwkQnwkQywWOQwAAcEGSIgUgBUMAAAAAXRsiBSAFQwAA+EFeGxDuB/wAIhZBD2sQ5QZDAAB/Q5UiBZUiByAHQwAAf0NeGxDuByEHIA9BBGpDAAB/QyAGIAWVIgYgBkMAAH9DXhsQ7gf8ASAWQRt0IAlDAAAAAF1BGHRyIAhDAAAAAF1BGXRyIApDAAAAAF1BGnRyciAH/AFBCHRyQwAAf0MgCyAFlSIFIAVDAAB/Q14bEO4H/AFBEHRyNgIAIAxBAmsgBE8NDCAMQQFrIARPDQggBCAMTQ0HIBBBAUcEQEMAAH9DIANBzABqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0HIAGoqAgAiCYsiBiAFIANB0ABqKgIAIgqLIgsQnwkQnwkQywWOQwAAcEGSIgUgBUMAAAAAXRsiBSAFQwAA+EFeGxDuB/wAIhBBD2sQ5QZDAAB/Q5UiBZUiByAHQwAAf0NeGxDuByEHIA9BCGpDAAB/QyAGIAWVIgYgBkMAAH9DXhsQ7gf8ASAQQRt0IAlDAAAAAF1BGHRyIAhDAAAAAF1BGXRyIApDAAAAAF1BGnRyciAH/AFBCHRyQwAAf0MgCyAFlSIFIAVDAAB/Q14bEO4H/AFBEHRyNgIAIBRBEGohFCAMQRVqIQwgA0HUAGohAyANQQRqIQ0gAiAVSyAVQQFqIRUNAQwRCwsgDUEBawwBCyANQQJrCyARQZjVwQAQvwcACyARIBNB2NTBABCiCgALIBEgEkHI1MEAEKIKAAsgDEEDayEMDAELIAxBBmshDAsgDCAEQYjVwQAQvwcACyAMQQFrDAILIAxBBGsMAQsgDEEHawsgBEH41MEAEL8HAAsgDEECawwCCyAMQQVrDAELIAxBCGsLIARB6NTBABC/BwALIA4gACgCFCABQQJ0IgMgASACakECdCICEKAJIgEQgwsiBDYCACAOIBI2AgQgBCASRw0BIAEgFyASEKkKIAFBhAhPBEAgARDNBwsgDiAAKAIcIAMgAhCgCSIAEIMLIgE2AgAgDiATNgIEIAEgE0cNASAAIBggExCpCiAAQYQISQ0AIAAQzQcLIA5BIGokAA8LIA5BADYCCEEAIA4gDkEEaiAOQQhqQdyBxQAQrggAC+YVAg9/A34jAEEwayIFJAAgAigCACIPIAIoAggiDWshBgJAAkAgAAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCqAFBAWsOAgECAAsCQAJAQSUQfiIBRQ0AIAFBHWpB1aTHACkAADcAACABQRBqQcikxwD9AAAA/QsAACABQbikxwD9AAAA/QsAAEEMEH4iAkUNACACQSU2AgggAiABNgIEIAJBJTYCAEEMEH4iAUUNACABQSg6AAggAUGQ7cAANgIEIAEgAjYCACAFIAGtQiCGQgOENwIADAELAAsMAgsgBkEgTwRAIAEpA7gBIRIgDyEEIA0hBgwICyAFQRBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAF/QwAAAAAAAAAAAAAAAAAAAAA/QsDAAJ/IAEpA7gBIhJQBEBCACESIA0MAQsgASgCwAEiCCgCACAIKQMIIhMgCCgCBCIErSIUIBMgFFQbp2ohBwJAIARC/////w8gEyATQv////8PWhunayIDQQAgAyAETRsiBEIgIBIgEkIgWhunIgMgAyAESxsiBEEBRwRAIARFDQEgBSAHIAT8CgAADAELIAUgBy0AADoAAAsgASASIAStIhR9IhI3A7gBIAggEyAUfDcDCCANIAQgBk0NABogAiANIARBAUEBENAFIAIoAggLIQggBARAIAIoAgQgCGogBSAE/AoAAAsgAiAEIAhqIgY2AgggBEUEQEEAIQMMCwsgAigCACEEDAcLIAEoAqwBIQcgDyEBIA0hCAJ/AkAgBkEgTw0AIAUgByACELQEAkBBAAJ/IAUtAABBBEYEQCAFKAIEDAELIAUpAwAiE0IgiCEUIBNC/wGDQgRSDQEgFKcLRQ0CGiACKAIAIQEgAigCCCEIDAELIBNCgH6DIRIMBgtBgMAAIQkDQAJAIAEgD0cgASAIR3JFBEAgBSAHIAIQtAQCQAJAAn8gBS0AAEEERgRAIAUoAgQMAQsgBSkDACITQiCIIRQgE0L/AYNCBFINASAUpwsNASACKAIIIQgMAwsgE0KAfoMhEgwJCyACKAIIIQggAigCACEBCwJAIAEgCEcEQCABIAhrIQwgAigCBCEEDAELQgEhE0KAzAAhEkIAIRQgAUEgaiIEIAFBAXQiBiAEIAZLGyIGQQBIDQggBSABBH8gBSABNgIIIAUgAigCBDYCAEEBBUEACzYCBCAFQSRqQQEgBiAFENIHIAUoAiRBAUYNCCAFKAIoIQQgAiAGNgIAIAIgBDYCBCAGIAFrIQwgBiEBCyAEIAhqIQ4gCSAMIAkgDEkbIgYgA2siBARAIAMgDmpBACAE/AsACyAFIAcgDiAGEPsCAkAgBS0AAEEERg0AIAUpAwAiEkIgiCIUpyEEQgAhEwJAAkACQAJAAkAgEqdB/wFxQQFrDgQCAQAEDAsgBC0ACEEjRg0CDAoLIAQtAAhBI0YNAUICIRMMCgsgEkKA/gODQoDGAFENAEIBIRMMCQsCfyASQv8Bg0IDUQRAIAQoAgAhCyAEQQRqKAIAIgMoAgAiCgRAIAsgChEDAAsgAygCBCIDBEAgC0EEaygCACIKQXhxIhBBBEEIIApBA3EiChsgA2pPBEAgCkEAIBAgA0EnaksbDRVBAAwDCwwTC0EBDAELQQILIQMDQAJAAkACQAJAAkACQAJAAkACQCADDgIAAQILIAsQtAIMBAsgBEEEaygCACIDQXhxIgpBEEEUIANBA3EiAxtJDRggA0EAIApBNE8bDRkgBBC0AgwBCyAFIAcgDiAGEPsCIAUtAABBBEYNCCAFKQMAIhJCIIgiFKchBAJAAkACQAJAIBKnQf8BcUEBaw4EAgABCxMLIAQtAAhBI0YNAkICIRMMEgsgBC0ACEEjRw0QDAELIBJCgP4Dg0KAxgBSDQULIBJC/wGDQgNRDQELQQIhAwwFCyAEKAIAIQsgBEEEaigCACIDKAIAIgoEQCALIAoRAwALIAMoAgQiAw0BC0EBIQMMAwsgC0EEaygCACIKQXhxIhBBBEEIIApBA3EiChsgA2pJDRMgCkUgECADQSdqTXINAQwUC0IBIRMMCgtBACEDDAALAAsgAiAINgIIDAELIAUoAgQiBCAGSwRAQeyixwBBNkGko8cAEKIIAAsgAiAEIAhqIgg2AgggBEUNAEF/IAlBAXQgCUEASBsgCSAEIAZGGyAJIAkgDE0bIQkgBiAEayEDDAELCyAIIA1rCyEDIActALQBQQFHDQkgAigCCCIBIA1JDQEgB0GgAWogAigCBCANaiABIA1rEMsBIAcoArABIAcoAqgBRg0JIAVBFUGopsgAQRAQtQcLIAUtAAAhAwwECyANIAFBmLLHABCjCgALQgMhEwsgAiAINgIIIBJCgH6DIRILIAUgFD4CBCAFIBOnIgM6AAAgBSASpyIBQRh2OgADIAUgAUEIdjsAAQsgA0H/AXFBBEYEQCAFKAIEIQMMBAsgBSkDACEUDAELIAEoAsABIQlBgMAAIQsgBUEQaiEQQQAhCANAIAQgD0cgBCAGR3JFBEAgEP0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgBf0MAAAAAAAAAAAAAAAAAAAAAP0LAwACfyASUARAQQAhA0IAIRIgDwwBCyAJKQMIIhMgCSgCBCIErSIUIBMgFFQbpyIHIAkoAgBqIQYCQCAEQv////8PIBMgE0L/////D1obp2siA0EAIAMgBE0bIgNCICASIBJCIFobpyIOIAMgDkkbIgNBAUcEQCADRQ0BIAUgBiAD/AoAAAwBCyAFIAYtAAA6AAALIAEgEiADrSIUfSISNwO4ASAJIBMgFHw3AwggDyAEIAdGDQAaIAIgDyADQQFBARDQBSACKAIICyEEIAMEQCACKAIEIARqIAUgA/wKAAALIAIgAyAEaiIGNgIIIANFDQMgAigCACEECwJAIAQgBkcEQCACKAIEIQMMAQtCgcwAIRQgBEEgaiIHIARBAXQiAyADIAdJGyIHQQBIDQIgBSAEBH8gBSAENgIIIAUgAigCBDYCAEEBBUEACzYCBCAFQSRqQQEgByAFENIHIAUoAiRBAUYNAiAFKAIoIQMgAiAHNgIAIAIgAzYCBCAHIQQLIBJQBEAgAiAGNgIIDAMLIAMgBmohDiAJAn4gCyAEIAZrIgcgByALSxsiB60gElgEQCAJKAIEIgpC/////w8gCSkDCCIUIBRC/////w9aG6drIgNBACADIApNGyIDIAcgAyAHSRsiAwRAIA4gCSgCACAUIAqtIhMgEyAUVhunaiAD/AoAAAsgAyAMIAMgDEsbIQwgFCADrSITfAwBCyAJKAIEIgpC/////w8gCSkDCCIUIBRC/////w9aG6drIgNBACADIApNGyIDIBKnIhEgAyARSRsiAwRAIA4gCSgCACAUIAqtIhMgEyAUVhunaiAD/AoAAAsgAyAMIAMgDEsbIQwgFCADrSITfAs3AwggASASIBN9IhI3A7gBIAIgAyAGaiIGNgIIIANFDQJBf0F/IAsgCEEBakEAIAMgB0kbIghBAUobIAsgByAMRxsiC0EBdCALQQBIGyALIAcgC08bIAsgAyAHRhshCyAMIANrIQwMAAsACyAAIBQ3AgRBAQwCCyAGIA1rIQMLIAAgA603AwhBAAs2AgAgBUEwaiQADwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAAL7icCMH8GfiMAQbAEayIFJAACf0EAIAMoAgwiCEUNABogAykDECADKQMYQZvcxwBBARC6BCE0IAMoAgQiBiA0p3EhBCA0QhmIQv8Ag0KBgoSIkKDAgAF+ITYgAygCACEHA0ACQCAEIAdqKQAAIjUgNoUiNEJ/hSA0QoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIjRQRQRAA0AgByA0eqdBA3YgBGogBnFBbGxqIgpBDGsoAgBBAUYEQCAKQRBrKAIALQAAQfgARg0DCyA0QgF9IDSDIjRQRQ0ACwtBACA1IDVCAYaDQoCBgoSIkKDAgH+DUEUNAhogBCALQQhqIgtqIAZxIQQMAQsLIApBFGsLIQQgBUEANgKYAyAFQQE2AowDIAVBgOrHADYCiAMgBUIENwKQAyAFQYgDahDHByEGAkACQAJAIARFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQ5gQMAQsgBiAGKAIAKAIAEQMAIAQtABAhFyAEKAIMIRgCf0EAIAhFDQAaIAMpAxAgAykDGEGc3McAQQEQugQhNCADKAIEIgYgNKdxIQQgNEIZiEL/AINCgYKEiJCgwIABfiE2IAMoAgAhB0EAIQsDQAJAIAQgB2opAAAiNSA2hSI0Qn+FIDRCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiNFBFBEADQCAHIDR6p0EDdiAEaiAGcUFsbGoiCkEMaygCAEEBRgRAIApBEGsoAgAtAABB+QBGDQMLIDRCAX0gNIMiNFBFDQALC0EAIDUgNUIBhoNCgIGChIiQoMCAf4NQRQ0CGiAEIAtBCGoiC2ogBnEhBAwBCwsgCkEUawshBCAFQQA2ApgDIAVBATYCjAMgBUGc6scANgKIAyAFQgQ3ApADIAVBiANqEMcHIQYgBEUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxDmBAwBCyAGIAYoAgAoAgARAwAgBC0AECEZIAQoAgwhGiADQZ3cxwBBARDpBSEEIAVBADYCmAMgBUEBNgKMAyAFQbjqxwA2AogDIAVCBDcCkAMgBUGIA2oQxwchBiAERQRAIABBgICAgHg2AtwEIAAgBjYCACADEOYEDAELIAYgBigCACgCABEDACAELQAQIRsgBCgCDCEcIANBwOrHAEEHEOkFIQQgBUEANgKYAyAFQQE2AowDIAVB4OrHADYCiAMgBUIENwKQAyAFQYgDahDHByEGIARFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQ5gQMAQsgBiAGKAIAKAIAEQMAIAQtABAhHSAEKAIMIR4gA0Ho6scAQQcQ6QUhBCAFQQA2ApgDIAVBATYCjAMgBUGI68cANgKIAyAFQgQ3ApADIAVBiANqEMcHIQYgBEUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxDmBAwBCyAGIAYoAgAoAgARAwAgBC0AECEfIAQoAgwhICADQZDrxwBBBxDpBSEEIAVBADYCmAMgBUEBNgKMAyAFQbDrxwA2AogDIAVCBDcCkAMgBUGIA2oQxwchBiAERQRAIABBgICAgHg2AtwEIAAgBjYCACADEOYEDAELIAYgBigCACgCABEDACAELQAQISEgBCgCDCEiIANBuOvHAEEFEOkFIQQgBUEANgKYAyAFQQE2AowDIAVB1OvHADYCiAMgBUIENwKQAyAFQYgDahDHByEGIARFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQ5gQMAQsgBiAGKAIAKAIAEQMAIAQtABAhIyAEKAIMISQgA0Hc68cAQQUQ6QUhBCAFQQA2ApgDIAVBATYCjAMgBUH468cANgKIAyAFQgQ3ApADIAVBiANqEMcHIQYgBEUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxDmBAwBCyAGIAYoAgAoAgARAwAgBC0AECElIAQoAgwhJiADQYDsxwBBBRDpBSEEIAVBADYCmAMgBUEBNgKMAyAFQZzsxwA2AogDIAVCBDcCkAMgBUGIA2oQxwchBiAERQRAIABBgICAgHg2AtwEIAAgBjYCACADEOYEDAELIAYgBigCACgCABEDACAELQAQIScgBCgCDCEoIANBpOzHAEEFEOkFIQQgBUEANgKYAyAFQQE2AowDIAVBwOzHADYCiAMgBUIENwKQAyAFQYgDahDHByEGIARFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQ5gQMAQsgBiAGKAIAKAIAEQMAIAQtABAhKSAEKAIMISogA0HI7McAQQcQ6QUhBCAFQQA2ApgDIAVBATYCjAMgBUHo7McANgKIAyAFQgQ3ApADIAVBiANqEMcHIQYgBEUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxDmBAwBCyAGIAYoAgAoAgARAwAgBC0AECErIAQoAgwhLCADQfDsxwBBBhDpBSEEIAVBADYCmAMgBUEBNgKMAyAFQZDtxwA2AogDIAVCBDcCkAMgBUGIA2oQxwchBiAERQRAIABBgICAgHg2AtwEIAAgBjYCACADEOYEDAELIAYgBigCACgCABEDACAELQAQIS0gBCgCDCEuIANBmO3HAEEGEOkFIQQgBUEANgKYAyAFQQE2AowDIAVBuO3HADYCiAMgBUIENwKQAyAFQYgDahDHByEGIARFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQ5gQMAQsgBiAGKAIAKAIAEQMAIAQtABAhLyAEKAIMITAgA0HA7ccAQQYQ6QUhBCAFQQA2ApgDIAVBATYCjAMgBUHg7ccANgKIAyAFQgQ3ApADIAVBiANqEMcHIQYgBEUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxDmBAwBCyAGIAYoAgAoAgARAwAgBUEEaq1CgICAgNAEhCE0IAQtABAhMSAEKAIMITJBACEGA0ACQCAFIAY2AgQgBUEBNgKMAyAFQYjlxwA2AogDIAVCATcClAMgBSA0NwMYIAUgBUEYajYCkAMgBUEIaiAFQYgDahDmBiADIAUoAgwiCiAFKAIQEOkFIAUoAgghBEUNACAEBEAgCiAEQQEQ1gcLIAUoAgRBAWohBgwBCwsgBARAIAogBEEBENYHC0EBIQZBCCETQQghC0EIIRECQAJAAkACQAJAAkAgBSgCBCIEDhkFAQEBAQEBAQEEAQEBAQEBAQEBAQEBAQECAAsgBEEtRg0CCyAFQQE2AowDIAVB2OXHADYCiAMgBUIBNwKUAyAFIDQ3AwggBSAFQQhqNgKQAyAFQSBqIgEgBUGIA2oQ5gYgARDDByEBIABBgICAgHg2AtwEIAAgATYCACADEOYEDAQLQQIhBkEBIQkMAQtBAyEGQQEhCUEBIQ8LIAVBiANqIRQjAEGAAWsiBCQAIARB/ABqrUKAgICAEIQhNQJAAkAgAygCDARAIAMoAgAhECADKAIEIQ4gAykDGCE3IAMpAxAhOCAGQQJ0QdCkyQBqKAIAIRVBACEHA0AgBEEBNgJcIARBiOXHADYCWCAEQgE3AmQgBCA1NwNwIAQgFSAHIAdB/wFxQQNuIghBA2xrQf8BcWwgCGo2AnwgBCAEQfAAajYCYCAEQcwAaiAEQdgAahDiBCAOIDggNyAEKAJQIhEgBCgCVCIMELoEIjSncSEIIDRCGYhC/wCDQoGChIiQoMCAAX4hOUEAIRIDQAJAIAggEGopAAAiNiA5hSI0Qn+FIDRCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiNFBFBEADQCAQIDR6p0EDdiAIaiAOcUFsbGoiDUEMaygCACAMRgRAIBEgDUEQaygCACAMEJAIRQ0DCyA0QgF9IDSDIjRQRQ0ACwsgNiA2QgGGg0KAgYKEiJCgwIB/g1BFDQQgCCASQQhqIhJqIA5xIQgMAQsLIA1BBGstAAAhDCANQQhrKAIAIQ0gBCgCTCIIBEAgEUEEaygCACISQXhxIhZBBEEIIBJBA3EiEhsgCGpJDQcgEkEAIBYgCEEnaksbDQggERC0AgsgBEEEaiIIIAdBA3RqIhEgDDoABCARIA02AgAgB0EBaiIHQQlHDQALIBQgCEHIAPwKAAAgBEGAAWokAAwCCyAEQQE2AlwgBEGI5ccANgJYIARCATcCZCAEIDU3A3AgBEEANgJ8IAQgBEHwAGo2AmAgBEHMAGogBEHYAGoQ4gQLQejtxwAQpAoACyAFLQCMAyERIAUoAogDIRIgBUEvaiAFQY0DakHDAPwKAAAgCUUEQEEBIQQMAQsgBUGIA2ohFCMAQbABayIEJAAgBEGsAWqtQoCAgIAQhCE1AkACQCADKAIMBEAgAygCACENIAMoAgQhCCADKQMYITcgAykDECE4IAZBAnRB3KTJAGooAgAhFUEAIQsDQCAEQQE2AowBIARBiOXHADYCiAEgBEIBNwKUASAEIDU3A6ABIAQgC0H/AXFBA24iByAVIAsgB0EDbGtB/wFxbGpBA2o2AqwBIAQgBEGgAWo2ApABIARB/ABqIARBiAFqEOIEIAggOCA3IAQoAoABIgkgBCgChAEiEBC6BCI0p3EhByA0QhmIQv8Ag0KBgoSIkKDAgAF+ITlBACEMA0ACQCAHIA1qKQAAIjYgOYUiNEJ/hSA0QoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIjRQRQRAA0AgDSA0eqdBA3YgB2ogCHFBbGxqIg5BDGsoAgAgEEYEQCAJIA5BEGsoAgAgEBCQCEUNAwsgNEIBfSA0gyI0UEUNAAsLIDYgNkIBhoNCgIGChIiQoMCAf4NQRQ0EIAcgDEEIaiIMaiAIcSEHDAELCyAOQQRrLQAAIRAgDkEIaygCACEOIAQoAnwiBwRAIAlBBGsoAgAiDEF4cSIWQQRBCCAMQQNxIgwbIAdqSQ0HIAxBACAWIAdBJ2pLGw0IIAkQtAILIARBBGoiByALQQN0aiIJIBA6AAQgCSAONgIAIAtBAWoiC0EPRw0ACyAUIAdB+AD8CgAAIARBsAFqJAAMAgsgBEEBNgKMASAEQYjlxwA2AogBIARCATcClAEgBCA1NwOgASAEQQM2AqwBIAQgBEGgAWo2ApABIARB/ABqIARBiAFqEOIEC0H47ccAEKQKAAsgBS0AjAMhCyAFKAKIAyEzIAVB8gBqIAVBjQNqQfMA/AoAACAPRQRAQQIhBAwBCyAFQYgDaiETIwBB4AFrIgQkACAEQdwBaq1CgICAgBCEITUCQAJAIAMoAgwEQCADKAIAIQ4gAygCBCEKIAMpAxghNyADKQMQITggBkECdEHopMkAaigCACEQQQAhBgNAIARBATYCvAEgBEGI5ccANgK4ASAEQgE3AsQBIAQgNTcD0AEgBCAGQf8BcUEDbiIHIBAgBiAHQQNsa0H/AXFsakEIajYC3AEgBCAEQdABajYCwAEgBEGsAWogBEG4AWoQ4gQgCiA4IDcgBCgCsAEiCCAEKAK0ASINELoEIjSncSEHIDRCGYhC/wCDQoGChIiQoMCAAX4hOUEAIQ8DQAJAIAcgDmopAAAiNiA5hSI0Qn+FIDRCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiNFBFBEADQCAOIDR6p0EDdiAHaiAKcUFsbGoiCUEMaygCACANRgRAIAggCUEQaygCACANEJAIRQ0DCyA0QgF9IDSDIjRQRQ0ACwsgNiA2QgGGg0KAgYKEiJCgwIB/g1BFDQQgByAPQQhqIg9qIApxIQcMAQsLIAlBBGstAAAhDSAJQQhrKAIAIQkgBCgCrAEiBwRAIAhBBGsoAgAiD0F4cSIMQQRBCCAPQQNxIg8bIAdqSQ0HIA9BACAMIAdBJ2pLGw0IIAgQtAILIARBBGoiByAGQQN0aiIIIA06AAQgCCAJNgIAIAZBAWoiBkEVRw0ACyATIAdBqAH8CgAAIARB4AFqJAAMAgsgBEEBNgK8ASAEQYjlxwA2ArgBIARCATcCxAEgBCA1NwPQASAEQQg2AtwBIAQgBEHQAWo2AsABIARBrAFqIARBuAFqEOIEC0GI7scAEKQKAAsgBS0AjAMhEyAFKAKIAyEKIAVB5QFqIAVBjQNqQaMB/AoAAEEDIQQLIAAgEzoARCAAIAo2AkAgACApOgA8IAAgKjYCOCAAICc6ADQgACAoNgIwIAAgJToALCAAICY2AiggACAjOgAkIAAgJDYCICAAIAP9AAMA/QsDACAAQRBqIANBEGr9AAMA/QsDACAAQcUAaiAFQeUBakGjAfwKAAAgACALOgDsASAAIDM2AugBIABB7QFqIAVB8gBqQfMA/AoAACAAIBE6AOQCIAAgEjYC4AIgAEHlAmogBUEvakHDAPwKAAAgAEIENwPgBCAAQgA3A9gEIABCgICAgMAANwPQBCAAQgQ3A8gEIABCADcDwAQgAEKAgICAwAA3A7gEIABCBDcDsAQgAEIANwOoBCAAQoCAgIDAADcDoAQgAEIENwOYBCAAQgA3A5AEIABCgICAgMAANwOIBCAAIAQ2AoQEIABBADYCgAQgACACNgL8AyAAIAE2AvgDIAAgKzoA9AMgACAsNgLwAyAAIDE6AOwDIAAgMjYC6AMgACAvOgDkAyAAIDA2AuADIAAgLToA3AMgACAuNgLYAyAAICE6ANQDIAAgIjYC0AMgACAfOgDMAyAAICA2AsgDIAAgHToAxAMgACAeNgLAAyAAIBs6ALwDIAAgHDYCuAMgACAZOgC0AyAAIBo2ArADIAAgFzoArAMgACAYNgKoAwsgBUGwBGokAA8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC5sVBA5/An0BfAJ+IwBBIGsiAiQAAkACQAJAAkACQAJ/AkACQCAAAn8CQAJAAkACQAJAQRUgASgCACIDQYCAgIB4cyADQQBOG0EUaw4CAAEDCwJ9AkACQAJAAn0CQAJAIAEoAgwiAwRAIAJBBGogASgCCCIBEMUEIAIoAgghBiACKAIEIgdBgICAgHhGBEAgBiEBDBILIAIoAhQhCiACKAIQIQkgA0EBRg0EIAIoAhghCyACKAIMIQwCQAJAAkACQAJAAkACQAJAAkBBFSABKAIQIgVBgICAgHhzIAVBAE4bQQFrDgoLAAECAwQFBgcICgsgAS8BFLMMCwsgASgCFLMMCgsgASkDGLUMCQsgASwAFLIMCAsgAS4BFLIMBwsgASgCFLIMBgsgASkDGLQMBQsgASoCFAwECyABKwMYIhK2QwAAgD9DAACAvyASvUIAWRuYDAMLQQBB0OLAAEGAiMgAEI8HIQEMEAsgAUEQaiACQR9qQeDgwAAQ2QghAQwOCyABLQAUswshECADQQJGDQUCQAJAAkACQAJAAkACQAJAAkBBFSABKAIgIgVBgICAgHhzIAVBAE4bQQFrDgoLAAECAwQFBgcICgsgAS8BJLMMCwsgASgCJLMMCgsgASkDKLUMCQsgASwAJLIMCAsgAS4BJLIMBwsgASgCJLIMBgsgASkDKLQMBQsgASoCJAwECyABKwMoIhK2QwAAgD9DAACAvyASvUIAWRuYDAMLQQFB0OLAAEGAiMgAEI8HIQEMCwsgAUEgaiACQR9qQeDgwAAQ2QghAQwKCyABLQAkswshEQJAIANBA0cEQCACQQRqIAFBMGoQzAUgAigCBEUNASACKAIIIQEMCgtBA0HQ4sAAQYCIyAAQjwchAQwJCyADQQRGBEAgAigCCCEDIAIoAgwMBQsgAkEENgIEIANB/P///wBqQf////8AcUEEaiACQQRqQfj3wAAQjwchASAHBEAgBiAHQQEQ1gcLIAlFDQkgCiAJQQEQ1gcMCQsgASgCCCIDRQ0FIAEoAgQhDiADQQV0IQ9BACEDQYCAgIB4IQcDQAJAAkACQAJAAkACQAJAAkBBFSADIA5qIgEoAgAiBEGAgICAeHMgBEEAThtBAWsODwEAAAIAAAAAAAAAAwQFBgALIAEgAkEfakGQ38AAENkIIQQgAkEBOgAEIAIgBDYCCAwGCyACQQA6AAQgAkEEIAFBBGotAAAiBCAEQQRPGzoABQwFCyACQQA6AAQgAkIEIAFBCGopAwAiFCAUQgRaGzwABQwECyABQQhqKAIAIQQCfwJAAkACQAJAIAFBDGooAgBBBGsOAgEAAwsgBEGA4cAAQQUQkAgNAUEADAMLQQEgBCgAAEHt0rmbB0YNAhogBCgAAEHtwuGbB0cNAUECDAILIARBjeHAAEEFEJAIDQBBAwwBC0EECyEEIAJBADoABCACIAQ6AAUMAwsgAUEEaigCACEEAn8CQAJAAkACQCABQQhqKAIAQQRrDgIBAAMLIARBgOHAAEEFEJAIDQFBAAwDC0EBIAQoAABB7dK5mwdGDQIaIAQoAABB7cLhmwdHDQFBAgwCCyAEQY3hwABBBRCQCA0AQQMMAQtBBAshBCACQQA6AAQgAiAEOgAFDAILIAJBBGogAUEIaigCACABQQxqKAIAEIQGDAELIAJBBGogAUEEaigCACABQQhqKAIAEIQGCyACLQAEQQFGBEAgAigCCCEBQQAMCAsgAUEQaiEEAkACQAJAAkACQAJAAkACQCACLQAFDgQAAQIDBwsgB0GAgICAeEcEQEGA4cAAQQUQ0QchAUEADA8LIAJBBGogBBDFBCACKAIIIQYgAigCBCIHQYCAgIB4RgRAIAYhAQwRCyACKAIYIQsgAigCFCEKIAIoAhAhCSACKAIMIQwMBgsgBQ0CAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAQoAgAiBUGAgICAeHMgBUEAThtBAWsOCgABAgMEBQYHCAkKCyABQRRqLQAAsyEQQQEhBQwPCyABQRRqLwEAsyEQQQEhBQwOCyABQRRqKAIAsyEQQQEhBQwNCyABQRhqKQMAtSEQQQEhBQwMCyABQRRqLAAAsiEQQQEhBQwLCyABQRRqLgEAsiEQQQEhBQwKCyABQRRqKAIAsiEQQQEhBQwJCyABQRhqKQMAtCEQQQEhBQwICyABQRRqKgIAIRBBASEFDAcLIAFBGGorAwAiErZDAACAP0MAAIC/IBK9QgBZG5ghEEEBIQUMBgsgBCACQR9qQeDgwAAQ2QghAUEADA0LIAgNAwJAAkACQAJAAkACQAJAAkACQAJAAkBBFSAEKAIAIghBgICAgHhzIAhBAE4bQQFrDgoAAQIDBAUGBwgJCgsgAUEUai0AALMhEUEBIQgMDgsgAUEUai8BALMhEUEBIQgMDQsgAUEUaigCALMhEUEBIQgMDAsgAUEYaikDALUhEUEBIQgMCwsgAUEUaiwAALIhEUEBIQgMCgsgAUEUai4BALIhEUEBIQgMCQsgAUEUaigCALIhEUEBIQgMCAsgAUEYaikDALQhEUEBIQgMBwsgAUEUaioCACERQQEhCAwGCyABQRhqKwMAIhK2QwAAgD9DAACAvyASvUIAWRuYIRFBASEIDAULIAQgAkEfakHg4MAAENkIIQFBAAwMCyANDQEgAkEEaiAEEMwFIAIoAgghAUEAIAIoAgQNCxogAa0gAjUCDEIghoQhE0EBIQ0MAwtBheHAAEEEENEHIQFBAAwKC0GN4cAAQQUQ0QchAUEADAkLQYnhwABBBBDRByEBQQAMCAsgA0EgaiIDIA9HDQALDAILQQJB0OLAAEGAiMgAEI8HIQEMBgsgASACQR9qQYDewAAQ2QghAQwGCyAHQYCAgIB4Rg0CIAIgCzYCGCACIAo2AhQgAiAJNgIQIAIgDDYCDCACIAY2AgggAiAHNgIEIAVFBEBBheHAAEEEEM8HIQEMAgsgCEUEQEGJ4cAAQQQQzwchAQwCCyANRQRAQY3hwABBBRDPByEBDAILIBOnIQMgE0IgiKcLNgIkIAAgAzYCICAAIBE4AhwgACAQOAIYIAAgCzYCFCAAIAo2AhAgACAJNgIMIAAgDDYCCCAAIAY2AgQgACAHNgIADAULIAJBBGoQkQZBAQwBC0GAgICAeCEHQYDhwABBBRDPByEBQQALIAdBgICAgHhGcg0BAkAgBwRAIAZBBGsoAgAiA0F4cSIFQQRBCCADQQNxIgMbIAdqSQ0FIANBACAFIAdBJ2pLGw0GIAYQtAILIAlFDQIgCkEEaygCACIGQXhxIgNBBEEIIAZBA3EiBhsgCWpJDQQgBkEAIAMgCUEnaksbDQAgChC0AgwCCwwECyAHBEAgBkEEaygCACIDQXhxIgVBBEEIIANBA3EiAxsgB2pJDQMgA0EAIAUgB0EnaksbDQQgBhC0AgsgCUUNACAKQQRrKAIAIgZBeHEiA0EEQQggBkEDcSIGGyAJakkNAiAGQQAgAyAJQSdqSxsNAyAKELQCCyAAQYGAgIB4NgIAIAAgATYCBAsgAkEgaiQADwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALtBQDBn4QfwF7IwBBIGsiECQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgwiEUF/RwRAIAAoAgQiDyAPQQFqIg1BA3YiCkEHbCIUIA9BCEkbIghBAXYgEU0EQCAIIBEgCCARSxsiCEEOSQ0CIAhB/v///wFNBEBBfyAIQQN0QQhqQQduQQFrZ3YiCEH+////AUsNByAIQQFqIQgMBgsMDQtBACEIIAAoAgAhCSAKIA1BB3FBAEdqIgtFDQNBASEOIAtBAUYNAiALQQFxIQ4gCSEIIAtB/v///wNxIgwhCgNAIAggCP0AAwAiGP1NQQf9zQH9DAEBAQEBAQEBAQEBAQEBAQH9TiAY/Qx/f39/f39/f39/f39/f39//VD9zgH9CwMAIAhBEGohCCAKQQJrIgoNAAsgCyAMRg0DIAxBA3QhCAwCCwwLC0EEQQhBECAIQQdJGyAIQQNJGyEIDAILIAggCWohCANAIAggCCkDACICQn+FQgeIQoGChIiQoMCAAYMgAkL//v379+/fv/8AhHw3AwAgCEEIaiEIIA5BAWsiDg0ACwsgAAJ/AkAgDUEITwRAIAkgDWogCSkAADcAAAwBCyANBEAgCUEIaiAJIA38CgAACyANDQBBAAwBCyABKQMAIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQhBSAJQQhqIQ4gCUEIayEVIAJCf4UhBiABKQMIIQRBASEBIAkhCkEAIQgDQCAIIQAgASEIAkAgACAJaiITLQAAQYABRw0AIBUgAEEDdGshFiAJIABBf3NBA3RqIRcCQANAIA8gBCAWNQIAhSIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEQtKBqpur+oLXp39+IgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQgA0LYotHvwqnlvy1+hSICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEIAZ+IgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQgAiAFfoUgAomnIhJxIgshASAJIAtqKQAAQoCBgoSIkKDAgH+DIgJQBEBBCCEMA0AgASAMaiEBIAxBCGohDCAJIAEgD3EiAWopAABCgIGChIiQoMCAf4MiAlANAAsLIAkgAnqnQQN2IAFqIA9xIgFqLAAAQQBOBEAgCSkDAEKAgYKEiJCgwIB/g3qnQQN2IQELIAEgC2sgACALa3MgD3FBCE8EQCABIAlqIgstAAAgCyASQRl2Igs6AAAgDiABQQhrIA9xaiALOgAAQf8BRg0CIAkgAUEDdGshC0F4IQEDQCABIApqIgwoAAAhEiAMIAEgC2oiDCgAADYAACAMIBI2AAAgAUEEaiIBDQALDAELCyATIBJBGXYiAToAACAOIA8gAEEIa3FqIAE6AAAMAQsgE0H/AToAACAOIA8gAEEIa3FqQf8BOgAAIAkgAUF/c0EDdGogFykAADcAAAsgCkEIayEKIAggCCANSSIAaiEBIAANAAsgDyAUIA9BCEkbCyARazYCCAwFCyAIQQN0IgkgCEEIaiIKaiIOIAlJIA5B+P///wdLcg0AIA4QfiIORQ0BIAkgDmohDSAKBEAgDUH/ASAK/AsACyAIQQFrIgsgCEEDdkEHbCALQQhJGyETIBENAiAAKAIAIQkMAwsgEEEANgIYIBBBATYCDCAQQbS9xAA2AgggEEIENwIQIBBBCGpBvL3EABDKCAsACyANQQhqIRIgASkDACICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEIQYgAkJ/hSEHIAAoAgAiCUEIayEUIAkpAwBCf4VCgIGChIiQoMCAf4MhBCABKQMIIQVBACEIIBEhASAJIQ4DQCAEUARAA0AgCEEIaiEIIA5BCGoiDikDAEKAgYKEiJCgwIB/gyICQoCBgoSIkKDAgH9RDQALIAJCgIGChIiQoMCAf4UhBAsgDSALIAUgFCAEeqdBA3YgCGoiFUEDdGs1AgCFIgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgBUIIiEKAgID4D4MgBUIYiEKAgPwHg4QgBUIoiEKA/gODIAVCOIiEhIRC0oGqm6v6gtenf34iAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhCADQtii0e/CqeW/LX6FIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQgB34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCACIAZ+hSACiaciFnEiCmopAABCgIGChIiQoMCAf4MiAlAEQEEIIQwDQCAKIAxqIQogDEEIaiEMIA0gCiALcSIKaikAAEKAgYKEiJCgwIB/gyICUA0ACwsgBEIBfSAEgyEEIA0gAnqnQQN2IApqIAtxIgpqLAAAQQBOBEAgDSkDAEKAgYKEiJCgwIB/g3qnQQN2IQoLIAogDWogFkEZdiIMOgAAIBIgCkEIayALcWogDDoAACANIApBf3NBA3RqIAkgFUF/c0EDdGopAAA3AwAgAUEBayIBDQALCyAAIAs2AgQgACANNgIAIAAgEyARazYCCCAPRQ0AIA8gD0EDdEEPakF4cSIBakEJaiIARQ0AIAkgAWsiAUEEaygCACIIQXhxIglBBEEIIAhBA3EiCBsgAGpJDQEgCEEAIAkgAEEnaksbDQIgARC0AgsgEEEgaiQADwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIBBBADYCGCAQQQE2AgwgEEG0vcQANgIIIBBCBDcCECAQQQhqQby9xAAQyggAC/wTAwZ+D38BeyMAQSBrIhAkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIMIhFBf0cEQCAAKAIEIg4gDkEBaiILQQN2IglBB2wiFCAOQQhJGyIIQQF2IBFNBEAgCCARIAggEUsbIghBDkkNAiAIQf7///8BTQRAQX8gCEEDdEEIakEHbkEBa2d2IghB/v///wBLDQcgCEEBaiEIDAYLDA0LQQAhCCAAKAIAIQogCSALQQdxQQBHaiIMRQ0DQQEhDSAMQQFGDQIgDEEBcSENIAohCCAMQf7///8DcSIPIQkDQCAIIAj9AAMAIhf9TUEH/c0B/QwBAQEBAQEBAQEBAQEBAQEB/U4gF/0Mf39/f39/f39/f39/f39/f/1Q/c4B/QsDACAIQRBqIQggCUECayIJDQALIAwgD0YNAyAPQQN0IQgMAgsMCwtBBEEIQRAgCEEHSRsgCEEDSRshCAwCCyAIIApqIQgDQCAIIAgpAwAiAkJ/hUIHiEKBgoSIkKDAgAGDIAJC//79+/fv37//AIR8NwMAIAhBCGohCCANQQFrIg0NAAsLIAACfwJAIAtBCE8EQCAKIAtqIAopAAA3AAAMAQsgCwRAIApBCGogCiAL/AoAAAsgCw0AQQAMAQsgASkDACICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEIQUgCkEIaiENIApBEGshFSACQn+FIQYgASkDCCEEQQEhCUEAIQgDQCAIIQAgCSEIAkAgACAKaiIPLQAAQYABRw0AIBUgAEEEdGshFiAKIABBf3NBBHRqIRIDQCAOIAQgFjUCAIUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhELSgaqbq/qC16d/fiICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEIANC2KLR78Kp5b8tfoUiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhCAGfiIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISEIAIgBX6FIAKJpyITcSIJIQEgCSAKaikAAEKAgYKEiJCgwIB/gyICUARAQQghDANAIAEgDGohASAMQQhqIQwgCiABIA5xIgFqKQAAQoCBgoSIkKDAgH+DIgJQDQALCyAKIAJ6p0EDdiABaiAOcSIBaiwAAEEATgRAIAopAwBCgIGChIiQoMCAf4N6p0EDdiEBCyABIAlrIAAgCWtzIA5xQQhPBEAgASAKaiIJLQAAIAkgE0EZdiIJOgAAIA0gAUEIayAOcWogCToAACAKIAFBf3NBBHRqIQFB/wFGBEAgD0H/AToAACANIA4gAEEIa3FqQf8BOgAAIAEgEv0AAAD9CwAADAMLIBIgAUEQENUDDAELCyAPIBNBGXYiAToAACANIA4gAEEIa3FqIAE6AAALIAggCCALSSIAaiEJIAANAAsgDiAUIA5BCEkbCyARazYCCAwFCyAIQQR0IgogCEEIaiIJaiINIApJIA1B+P///wdLcg0AIA0QfiINRQ0BIAogDWohCyAJBEAgC0H/ASAJ/AsACyAIQQFrIg8gCEEDdkEHbCAPQQhJGyESIBENAiAAKAIAIQoMAwsgEEEANgIYIBBBATYCDCAQQbS9xAA2AgggEEIENwIQIBBBCGpBvL3EABDKCAsACyALQQhqIRMgASkDACICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEIQYgAkJ/hSEHIAAoAgAiCkEQayEUIAopAwBCf4VCgIGChIiQoMCAf4MhBCABKQMIIQVBACEIIBEhASAKIQ0DQCAEUARAA0AgCEEIaiEIIA1BCGoiDSkDAEKAgYKEiJCgwIB/gyICQoCBgoSIkKDAgH9RDQALIAJCgIGChIiQoMCAf4UhBAsgCyAPIAUgFCAEeqdBA3YgCGoiFUEEdGs1AgCFIgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgBUIIiEKAgID4D4MgBUIYiEKAgPwHg4QgBUIoiEKA/gODIAVCOIiEhIRC0oGqm6v6gtenf34iAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhCADQtii0e/CqeW/LX6FIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQgB34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCACIAZ+hSACiaciFnEiCWopAABCgIGChIiQoMCAf4MiAlAEQEEIIQwDQCAJIAxqIQkgDEEIaiEMIAsgCSAPcSIJaikAAEKAgYKEiJCgwIB/gyICUA0ACwsgBEIBfSAEgyEEIAsgAnqnQQN2IAlqIA9xIglqLAAAQQBOBEAgCykDAEKAgYKEiJCgwIB/g3qnQQN2IQkLIAkgC2ogFkEZdiIMOgAAIBMgCUEIayAPcWogDDoAACALIAlBf3NBBHRqIAogFUF/c0EEdGr9AAAA/QsAACABQQFrIgENAAsLIAAgDzYCBCAAIAs2AgAgACASIBFrNgIIIA5FDQAgDiAOQQR0QRdqQXBxIgFqQQlqIgBFDQAgCiABayIBQQRrKAIAIghBeHEiCkEEQQggCEEDcSIIGyAAakkNASAIQQAgCiAAQSdqSxsNAiABELQCCyAQQSBqJAAPC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAsgEEEANgIYIBBBATYCDCAQQbS9xAA2AgggEEIENwIQIBBBCGpBvL3EABDKCAALvw4BB38CQAJAIAAoAuACIgEEQCAAKALkAiIEQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNASACQQAgAyABQSdqSxsNAiAEELQCCyAAKALwAiIBKAL4BiICQQRrKAIAIgRBeHFBhIABQYiAASAEQQNxIgMbSQ0AIANBACAEQaiAAU8bDQEgAhC0AiABKALgBiIEBEAgASgC5AYiAkEEaygCACIDQXhxIgYgBEEBdCIEQQRBCCADQQNxIgMbakkNASADQQAgBiAEQSdqSxsNAiACELQCCyABKAL8BiICQQRrKAIAIgRBeHFBhBBBiBAgBEEDcSIDG0kNACADQQAgBEGoEE8bDQEgAhC0AiABKALsBiIEBEAgASgC8AYiAkEEaygCACIDQXhxIgYgBEEBdCIEQQRBCCADQQNxIgMbakkNASADQQAgBiAEQSdqSxsNAiACELQCCyABQQRrKAIAIgRBeHFBrAdBsAcgBEEDcSICG0kNACACQQAgBEHQB08bDQEgARC0AgJAIAAoAghBAkYNACAAKALIASIBQYKAgIB4SCABRXJFBEAgACgCzAEiBEEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAWpJDQIgAkEAIAMgAUEnaksbDQMgBBC0AgsgACgC1AEiAUGCgICAeEggAUVyRQRAIAAoAtgBIgRBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAFqSQ0CIAJBACADIAFBJ2pLGw0DIAQQtAILIAAoAuABIgFBgoCAgHhIIAFFckUEQCAAKALkASIEQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNAiACQQAgAyABQSdqSxsNAyAEELQCCyAAKALsASIBQYKAgIB4SCABRXJFBEAgACgC8AEiBEEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAWpJDQIgAkEAIAMgAUEnaksbDQMgBBC0AgsgACgC+AEiAUGCgICAeEggAUVyRQRAIAAoAvwBIgRBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAFqSQ0CIAJBACADIAFBJ2pLGw0DIAQQtAILIAAoAoQCIgFBgoCAgHhIIAFFckUEQCAAKAKIAiIEQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNAiACQQAgAyABQSdqSxsNAyAEELQCCyAAKAKoASEEIAAoAqwBIgIEQCAEIQEDQCABKAIAIgMEQCABQQRqKAIAIgZBBGsoAgAiBUF4cSIHQQRBCCAFQQNxIgUbIANqSQ0EIAVBACAHIANBJ2pLGw0FIAYQtAILIAFBDGooAgAiAwRAIAFBEGooAgAiBkEEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAcgA0EnaksbDQUgBhC0AgsgAUEYaiEBIAJBAWsiAg0ACwsgACgCpAEiAQRAIARBBGsoAgAiAkF4cSIDIAFBGGwiAUEEQQggAkEDcSICG2pJDQIgAkEAIAMgAUEnaksbDQMgBBC0AgsgACgCtAEhBCAAKAK4ASICBEAgBEEUaiEBA0AgAUEEaygCACIDBEAgASgCACIGQQRrKAIAIgVBeHEiB0EEQQggBUEDcSIFGyADakkNBCAFQQAgByADQSdqSxsNBSAGELQCCyABQRBrKAIAIgMEQCABQQxrKAIAIgZBBGsoAgAiBUF4cSIHQQRBCCAFQQNxIgUbIANqSQ0EIAVBACAHIANBJ2pLGw0FIAYQtAILIAFBHGohASACQQFrIgINAAsLIAAoArABIgEEQCAEQQRrKAIAIgJBeHEiAyABQRxsIgFBBEEIIAJBA3EiAhtqSQ0CIAJBACADIAFBJ2pLGw0DIAQQtAILIAAoAsABIQQgACgCxAEiAgRAIAQhAQNAIAFBEGooAgAiAwRAIAFBFGooAgAiBkEEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAcgA0EnaksbDQUgBhC0AgsgAUEcaigCACIDBEAgAUEgaigCACIGQQRrKAIAIgVBeHEiB0EEQQggBUEDcSIFGyADakkNBCAFQQAgByADQSdqSxsNBSAGELQCCyABQShqKAIAIgMEQCABQSxqKAIAIgZBBGsoAgAiBUF4cSIHQQRBCCAFQQNxIgUbIANqSQ0EIAVBACAHIANBJ2pLGw0FIAYQtAILIAFBBGooAgAiAwRAIAFBCGooAgAiBkEEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAcgA0EnaksbDQUgBhC0AgsgAUE4aiEBIAJBAWsiAg0ACwsgACgCvAEiAEUNACAEQQRrKAIAIgFBeHEiAiAAQThsIgBBBEEIIAFBA3EiARtqSQ0BIAFBACACIABBJ2pLGw0CIAQQtAILDwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALnBMCIn8NfSMAQRBrIg8kACAAIAEgAhD0AwJAAkAgAygCBCIQRQRAIAMoAgwhCwwBCwJAIAMoAgwiC0UNACADKAIUIhdFDQAgAygCHCIYRQ0AIAMoAiQiFEUNACACRQ0CIAJBDGwhGiAAKgKMASAAKgKIASIqkyErIAAqAoQBIAAqAoABIiyTIS0gACgCYCEbIAAoAmQhGSADKAIgIRwgAygCGCEdIAMoAhAhHiADKAIIIR8gAygCACEgIAAtAJwBQQFxISEgCyERAkACQAJAA0ACQAJAAkAgGSAEQQRqIglPBEACQAJAAkACQAJAAkAgBiAQTw0AIBAgBmsiBUEAIAUgEE0bIgVBAUcEQCAFQQJHBEAgEUUNByAGIBdPDQUgFiAXakEBaw4CAwQGCyAGQQJqIQYMAQsgBkEBaiEGCyAGIBBBiMPBABC/BwALIAZBAWohBgwBCyAGQQJqIQYLIAYgF0GYw8EAEL8HAAsCQAJAIAYgGE8NAAJAAkAgFiAYakEBaw4CAAEDCyAGQQFqIQYMAQsgBkECaiEGCyAGIBhBqMPBABC/BwALIAQgFE8NCAJAIBQgBGsiBUEAIAUgFE0bQQFrDgMFBwgACyASICBqIgUoAgAhCCAFQQhqKAIAIRMgBUEEaigCACEKIAQgH2oqAgAhJyASIB5qIgQqAgAhMiAEQQhqKgIAISggBEEEaioCACEpIBIgHWoiBCoCACEvIARBCGoqAgAhMCAEQQRqKgIAITEgFSAcaiIEKgIAISYgDyAEQQRqKgIAOAIEIA8gJjgCACAPIARBCGopAgA3AghDAAB/Q0MAAAAAICdDAAAAP5QgJyAhG0MAAH9DlCImICZDAAAAAF0bIiYgJkMAAH9DXhsQ7gchLkMAAH9DQwAAAAAgKSAskyAtlUMAAH9DlCImICZDAAAAAF0bIiYgJkMAAH9DXhsQ7gciJ0MAAAAAYCEiICf8ASEjQwAAf0NDAAAAACAoICyTIC2VQwAAf0OUIiYgJkMAAAAAXRsiJiAmQwAAf0NeGxDuByIpQwAAAABgISQgKfwBISVDAAB/Q0MAAAAAIDIgLJMgLZVDAAB/Q5QiJiAmQwAAAABdGyImICZDAAB/Q14bEO4HISggCEH///8DcSEFIAhBgICAgHhxIQQgCEGAgID8B3EiB0GAgID8B0YEQCAEQRB2IAVBDXZyIAVBAEdBCXRyQYD4AXIhDAwECyAEQRB2IQwgB0GAgIC4BEsNAiAHQYCAgMQDTwRAIAhBDHYgCEH/3wBxQQBHcSAHQQ12IAVBDXZqQYCAAWogDHJqIQwMBAsgB0GAgICYA0kNAyAFQYCAgARyIghBHiAHQRd2IgVrdiEEIAhBHSAFayIFdkEBcQR/IARBAyAFdEEBayAIcUEAR2oFIAQLIAxyIQwMAwsgCyALQfjCwQAQvwcACyAJIBlB6MLBABCiCgALIAxBgPgBciEMCyAKQf///wNxIQUgCkGAgICAeHEhBAJAIApBgICA/AdxIgdBgICA/AdHBEAgBEEQdiENIAdBgICAuARNBEAgB0GAgIDEA08EQCAKQQx2IApB/98AcUEAR3EgB0ENdiAFQQ12akGAgAFqIA1yaiENDAMLIAdBgICAmANJDQIgBUGAgIAEciIIQR4gB0EXdiIFa3YhBCAIQR0gBWsiBXZBAXEEfyAEQQMgBXRBAWsgCHFBAEdqBSAECyANciENDAILIA1BgPgBciENDAELIARBEHYgBUENdnIgBUEAR0EJdHJBgPgBciENCyATQf///wNxIQUgE0GAgICAeHEhBAJAIBNBgICA/AdxIgdBgICA/AdHBEAgBEEQdiEOIAdBgICAuARNBEAgB0GAgIDEA08EQCATQQx2IBNB/98AcUEAR3EgB0ENdiAFQQ12akGAgAFqIA5yaiEODAMLIAdBgICAmANJDQIgBUGAgIAEciIIQR4gB0EXdiIFa3YhBCAIQR0gBWsiBXZBAXEEfyAEQQMgBXRBAWsgCHFBAEdqBSAECyAOciEODAILIA5BgPgBciEODAELIAVBDXYgBEEQdnIgBUEAR0EJdHJBgPgBciEOCyAPEMQEIQpBACEIQQAhBSAvQwAAAABfRQRAQf8BQwAAgD9DAAAAACAvEPQFICqTICuVIiYgJkMAAAAAXRsiJiAmQwAAgD9eG0MAAH5DlBDuByIm/AFBACAmQwAAAABgGyAmQwAAf0NeG0EBakH/AXEhBQsgMUMAAAAAX0UEQEH/AUMAAIA/QwAAAAAgMRD0BSAqkyArlSImICZDAAAAAF0bIiYgJkMAAIA/XhtDAAB+Q5QQ7gciJvwBQQAgJkMAAAAAYBsgJkMAAH9DXhtBAWpB/wFxQQh0IQgLQQAhBCAwQwAAAABfRQRAQf8BQwAAgD9DAAAAACAwEPQFICqTICuVIiYgJkMAAAAAXRsiJiAmQwAAgD9eG0MAAH5DlBDuByIm/AFBACAmQwAAAABgGyAmQwAAf0NeG0EBakH/AXFBEHQhBAsgFSAbaiIHQQRqIAxB//8DcSANQRB0cjYCACAHQf8BICNBACAiGyAnQwAAf0NeG0EIdEH/ASAlQQAgJBsgKUMAAH9DXhtBEHRyQf8BICj8AUEAIChDAAAAAGAbIChDAAB/Q14bckH/ASAu/AFBACAuQwAAAABgGyAuQwAAf0NeG0EYdHI2AgAgB0EMaiAFIApBCHRBgICAeHFyIAQgCHJqNgIAIAdBCGogDkH//wNxIApBEHRyQf///wdxIApBgP7/B3FBCHZBGHRyNgIAIBVBEGohFSAWQQNrIRYgBkEDaiEGIBFBAWshESAJIQQgGiASQQxqIhJHDQEMBwsLIARBAWohBAwCCyAEQQJqIQQMAQsgBEEDaiEECyAEIBRBuMPBABC/BwALIAAgASACIAMoAgAgEBC1AgsgCwRAIAAgASACIAMoAgggCxCvAwsgAygCFCIJBEAgACABIAIgAygCECAJEKsECyADKAIcIgkEQCAAIAEgAiADKAIYIAkQ4gMLIAMoAiQiCUUNACAAIAEgAiADKAIgIAkQjgULIABBAToAuAEgAygCPCEFIAMoAjghCyADKAI0IQQgAygCMCERIAMoAiwiCQRAIAAgASACIAMoAiggCRD3AwsgBARAIAAgASACIBEgBBCIBAsgBQRAIAAgASACIAsgBRCJBAsgAygCRCIJBEAgACABIAIgAygCQCAJEN4ECyADKAJMIgkEQCAAIAEgAiADKAJIIAkQ3QQLIA9BEGokAAvIFQQIfwR+AnsDfSMAQfACayIBJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AnANFBEAgACgCACICQQJHDQsgACgCiAFBAkcNCyAAKAKAAyICQQNNBEBBACECDA0LIAEgACgC/AIiBigAACIDNgIgAkAgA0HSgpGaBEcEQCADQdKCkYIDRw0DIAJBCEkNASACIAYoAAQiBEEHakF4cUEIaiIDSQ0BIARBCGohBSAEQXdLDQQgAiAFSQ0FIAFBADYC6AIgASAENgLkAiABIAZBCGo2AuACIAFBMGogAUHgAmoQZyABKAI0IQQgASgCMCIGQQJGBEAgBBCECCECDA8LIAFBwAFqIAFBOGpBgAH8CgAAIAEgBDYCvAEgASAGNgK4ASAAKAKAAyICIANJDQYgAEEANgKAAyACIANrIQUgA0UNByACIANGDQkgBUUNCCAAKAL8AiICIAIgA2ogBfwKAAAMCAsgAUEYaiAAEM0CIAEtABhBAXFFBEAgAS0AGUEBcQ0KQQAhAgwOCyABKAIcIQIMDQtBACECDAwLIAA1AoADIQkgAEEANgKAAyAAIAkgACkD2AJ8NwPYAgwLCyABQQE2AkQgAUGwgsgANgJAIAFBATYCNCABQaiCyAA2AjAgAUEBNgI8IAEgAUEgaq1CgICAgKADhDcD4AIgASABQeACajYCOCABQSRqIgAgAUEwahDmBiAAEMEHIQIMCgtBCCAFQfCawQAQpQoACyAFIAJB8JrBABCiCgALIAMgAkHcq8cAEKIKAAsgAiADRg0BCyAAIAU2AoADCyAAIAApA9gCIAOtfCIJNwPgAiAAIAk3A9gCAkACQAJAIAEoArQCQQFGBEAgACABKAKkAiIDNgKIAyAAIAEoAsQBIAEoAtABIgIgASgCwAEbIgU2AowDIAVFDQEgAiAFbiIHIAUgB2wgAkdqIgUgA0YEQCABLQC4AiEDIAEgBEEAIAZBAXEbNgI0IAEgAjYCMCABIANBAXEiAjoAOCAAQfgBaiABQTBqEPkBIAEoAuABIgRBAkcEQAJ9IAAtANACIgNBAkYEQP0MAAAAAAAAgD8AAEDBAAAQQSEOQQAhA0MAAIA/IQ9DAACAPyEQQwAAgD8MAQsgAUEyaiAAQdMCai0AADoAACABIAAvANECOwEwIAAqAsgCIQ8gACoCxAIhECAA/QACtAIhDiAAKgLMAgshESAAIAEvATA7ANECIAAgASoClAIgESABKAKQAhs4AswCIAAgASoCjAIgDyABKAKIAhs4AsgCIAAgASoChAIgECABKAKAAhs4AsQCIAAgAyABLQCYAiIDIANBAkYbOgDQAiAAQdMCaiABQTJqLQAAOgAAIAEgAf0AAuQBIg39HQFCIIg9AQwgASAN/R0AQiCIPQEUIAAgAUH8AWogAUH0AWogDSAN/R8C/SAB/VYCAAL9VgIAAyAOIAFB+AFqIAT9ESABLwEUQQFx/RwBIAEvAQxBAXH9HAL9VgIAA0Ef/asBQR/9rAH9Uv0LArQCCyACRQ0EAn0gAC0A0AJBAkYEQP0MAAAAAAAAgD8AAEDBAAAQQSENQwAAgD8hD0MAAIA/IRBDAACAPwwBCyABQTJqIABB0wJqLQAAOgAAIAEgAC8A0QI7ATAgACoCyAIhDyAAKgLEAiEQIAD9AAK0AiENIAAqAswCCyERIABBAToA0AIgACAROALMAiAAIA84AsgCIAAgEDgCxAIgACAN/QsCtAIgACABLwEwOwDRAiAAQdMCaiABQTJqLQAAOgAADAQLIAEgBTYC3AIgAUECNgI0IAFBvJrBADYCMCABQgI3AjwgAUKAgICAECIJIABBiANqrYQ3A+gCIAEgCSABQdwCaq2ENwPgAiABIAFB4AJqNgI4IAFB0AJqIgAgAUEwahDmBiAAEMEHIQIMAgsgAUEBNgI0IAFB6JrBADYCMCABQgE3AjwgASABQbQCaq1CgICAgBCENwPgAiABIAFB4AJqNgI4IAFBxAJqIgAgAUEwahDmBiAAEMEHIQIgASgCpAIhAwwBC0GImsEAELkIAAsgASgCoAIhBCADBEAgBEEkaiEAA0AgAEEEaygCACIFQYCAgIB4ckGAgICAeEcEQCAAKAIAIAVBARDWBwsgAEEwaiEAIANBAWsiAw0ACwsgASgCnAIiAARAIAQgAEEwbEEIENYHCyABKAKoAiIAQYCAgIB4ckGAgICAeEYNBSABKAKsAiAAQQEQ1gcMBQsCQCAAKAIAQQJGDQAgACgCaCEEIAAoAmwiAwRAIARBJGohAgNAIAJBBGsoAgAiBUGAgICAeHJBgICAgHhHBEAgAigCACIGQQRrKAIAIgdBeHEiCEEEQQggB0EDcSIHGyAFakkNBSAHQQAgCCAFQSdqSxsNBiAGELQCCyACQTBqIQIgA0EBayIDDQALCyAAKAJkIgMEQCAEIANBMGxBCBDWBwsgACgCcCIDQYCAgIB4ckGAgICAeEYNACAAKAJ0IANBARDWBwsgACABQbgBakGIAfwKAAALIAAoAgAhAgwCC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAsCQAJAAkACQAJ/AkAgAkECRwRAIAAoAoQDIAAoAogDTw0GIAAoAogBQQJGDQFBAAwCCyABQbgBaiAAEG8gASgCvAFBACABLQC4ASIDGyECIAMNBiABLQC5AUEBcUUNBiAAKQPwAiILIAApA9gCIglYBEAgACgCgAMhAwwFCyAAKAKAAyEEQQAhAyAAQQA2AoADIAQgCyAJfSIKIAStIgwgCiAMVBsiCqciBWshAiAKUEUEQCAEIAVGDQQgAkUNAyAAKAL8AiIDIAMgBWogAvwKAAAMAwsgBCAFRw0CDAMLQQELIQIDQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAkUEQCABQbgBaiAAEG8gASgCvAEhAyABLQC4ASICDQIgAS0AuQFBAXFFDQIgACkD8AIiCSAAKQPYAiILVg0BDAYLIAFBuAFqIAAQzQIgAS0AuAFBAUYEQCABKAK8ASECDBELIAEtALkBDQlBACECDBALIAAoAoADIQMgAEEANgKAAyADIAkgC30iCiADrSIMIAogDFQbIgqnIgJrIQQgClANASACIANGDQMgBEUNAiAAKAL8AiIDIAIgA2ogBPwKAAAMAgsgA0EAIAIbIQIMDgsgAiADRg0BCyAAIAQ2AoADCyAAIAogC3wiCzcD2AIgCSALVg0BCwJAIAAoAogBQQJGDQAgACgC5AEiA0UNACAAKALoASICQQRrKAIAIgRBeHEiBSADQShsIgNBBEEIIARBA3EiBBtqSQ0CIARBACAFIANBJ2pLGw0DIAIQtAILIABBAjYCiAEgACAAKAKEA0EBaiIDNgKEAyADIAAoAogDSQ0EDAkLQQAhAgwJC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAtBACECDAELQQEhAgwACwALIAAgAjYCgAMgAiEDCyAAIAkgCnwiCTcD2AIgCSALWg0AQQAhAgwCC0EAIQIgAEEANgKAAyAAQQE6AJwDIAAgCSADrXw3A9gCDAELIABBAToAnAMgADUCgAMhCUEAIQIgAEEANgKAAyAAIAkgACkD2AJ8NwPYAgsgAUHwAmokACACC+wSAw5/AXsBfiMAQRBrIgwkAAJAAkACQAJAAkAgACgCCCIJRQRAQQAhCUEBIQdBASEKDAELIAAoAgQhBiAJEH4iCkUNAiAGIQcDQEEAIQQCQAJ/IAdBFGovAQAiAUH//wFxRQRAIAFBEHQMAQsgAUH/B3EhAiABQYCAAnEhBSABQYD4AXEiAUGA+AFGBEAgBUEQdCIBQYCAgPwHciACRQ0BGiABIAJBDXRyQYCAgP4HcgwBCyAFQRB0IgUgAUENdEGAgID8AHEgAkENdHJBgICAwANqciABDQAaIAVBgICA2ANyIAJnQRBrIgFBF3RrIAIgAUH//wNxQQhqdEH///8DcXILvkMAAAAAXkUNACAHQRxqLwEAIQICQAJAIAdBHmovAQAiAUH//wFxQYD4AUsNACACQf//AXEiBUGA+AFLDQAgAcFBAE4EQCACwUEATgRAIAEgAk0NAgwDCyABIAVyRQ0BDAILIALBQQBODQAgASACSQ0BCyACIQELAkACQCAHQSBqLwEAIgJB//8BcUGA+AFLDQAgAUH//wFxIgVBgPgBSw0AIALBQQBOBEAgAcFBAE4EQCACIAFB//8DcU0NAgwDCyACIAVyRQ0BDAILIAHBQQBODQAgAiABQf//A3FJDQELIAEhAgsCfyACQRB0IAJB//8BcUUNABogAkH/B3EhASACQYCAAnEhBSACQYD4AXEiAkGA+AFGBEAgBUEQdCICQYCAgPwHciABRQ0BGiACIAFBDXRyQYCAgP4HcgwBCyAFQRB0IgUgAkENdEGAgID8AHEgAUENdHJBgICAwANqciACDQAaIAVBgICA2ANyIAFnQRBrIgJBF3RrIAEgAkH//wNxQQhqdEH///8DcXILvhCmBEMAAAAAXkUNACAMIAcpAgAiEBDdAiAM/QAEAP0M////f////3////9/////f/1O/QwAAIB/AACAfwAAgH8AAIB//Tn9pAFBD0cNACAMIBAQ3QIgDP0ABAAiDyAP/eYBIg8gDyAP/Q0ICQoLDA0ODwABAgMAAQID/eQBIg8gDyAP/Q0EBQYHAAECAwABAgMAAQID/eQB/eMB/R8AQwAAAABeIQQLIAMgCmogBDoAACAHQSRqIQcgCSADQQFqIgNHDQALIAZBJGohAyAJIApqIQdBACEBIAohAgJAAkADQCACIAdGDQQgAUEBaiEEIAItAABBAUcNASACQQFqIQIgA0EkaiEDIAQiASAJRw0AC0EAIQEMAQsgBCAJRgRAQQEhAQwBCyABIAlrIQZBASEEQQEhAQNAAkACQCAEIAZqBEAgAiAEai0AAA0BIAFBAWohAQwCC0GwhMEAEKQKAAsgAyABQVxsaiIFIAP9AAIA/QsCACAFQSBqIANBIGooAgA2AgAgBUEQaiADQRBq/QACAP0LAgALIANBJGohAyAGIARBAWoiBGoNAAsLIAAgCSABazYCCAsgACgCFCIFBEBBACEEIAAoAhAiASEDIAohAgJAA0ACQCACIAdHBEAgAi0AAA0BAkAgASAEQRhsaiIBKAIUIgZBBU8EQCABKAIIIgFBBGsoAgAiCEF4cSILIAZBAnQiBkEEQQggCEEDcSIIG2pJDQEgCEEAIAsgBkEnaksbDQogARC0AgtBASEGIARBAWogBUYNBCAEIAVrIQhBASEBA0AgAyEEAkACQCAHIAEgAmoiC0cEQCADQRhqIQMgCy0AAA0BIAZBAWohBiAEQSxqKAIAIgtBBUkNAiAEQSBqKAIAIgRBBGsoAgAiDUF4cSIOIAtBAnQiC0EEQQggDUEDcSING2pJDQwgDUEAIA4gC0EnaksbDQ0gBBC0AgwCC0HQhMEAEKQKAAsgBCAGQWhsaiIEQShqIANBEGopAgA3AgAgBEEYaiAD/QACAP0LAgALIAggAUEBaiIBag0ACwwECwwHC0HQhMEAEKQKAAsgAkEBaiECIANBGGohAyAEQQFqIgQgBUcNAAtBACEGCyAAIAUgBms2AhQLAkAgACgCICIGBEBBACEEQRIhASAKIQICQAJAA0AgAiAHRg0EIARBAWohAyACLQAAQQFHDQEgAkEBaiECIAFBEmohASADIgQgBkcNAAtBACEBDAELIAMgBkYEQEEBIQEMAQsgBCAGayEFIAAoAhwgAWohA0EBIQRBASEBA0ACQAJAIAcgAiAEaiIIRwRAIAgtAAANASABQQFqIQEMAgtBoITBABCkCgALIAMgAUFubGoiCCAD/QABAP0LAQAgCEEQaiADQRBqLwEAOwEACyADQRJqIQMgBSAEQQFqIgRqDQALCyAAIAYgAWs2AiALAkAgACgCLCIGBEBBACEEQR4hASAKIQICQAJAA0AgAiAHRg0EIARBAWohAyACLQAAQQFHDQEgAkEBaiECIAFBHmohASADIgQgBkcNAAtBACEBDAELIAMgBkYEQEEBIQEMAQsgBCAGayEIIAAoAiggAWohA0EBIQRBASEBA0ACQAJAIAcgAiAEaiIFRwRAIAUtAAANASABQQFqIQEMAgtBkITBABCkCgALIAMgAUFibGoiBSAD/QABAP0LAQAgBUEWaiADQRZqKQEANwEAIAVBEGogA0EQaikBADcBAAsgA0EeaiEDIAggBEEBaiIEag0ACwsgACAGIAFrNgIsCwJAIAAoAjgiBgRAQQAhBEEqIQEgCiECAkACQANAIAIgB0YNBCAEQQFqIQMgAi0AAEEBRw0BIAJBAWohAiABQSpqIQEgAyIEIAZHDQALQQAhAQwBCyADIAZGBEBBASEBDAELIAQgBmshCCAAKAI0IAFqIQNBASEEQQEhAQNAAkACQCAHIAIgBGoiBUcEQCAFLQAADQEgAUEBaiEBDAILQcCEwQAQpAoACyADIAFBVmxqIgUgA/0AAQD9CwEAIAVBKGogA0Eoai8BADsBACAFQSBqIANBIGopAQA3AQAgBUEQaiADQRBq/QABAP0LAQALIANBKmohAyAIIARBAWoiBGoNAAsLIAAgBiABazYCOAsCQCAJBEAgCkEEaygCACIAQXhxIgJBBEEIIABBA3EiABsgCWpJDQcgAEEAIAIgCUEnaksbDQEgChC0AgsgDEEQaiQADwsMBgtBwITBABCkCgALQZCEwQAQpAoAC0GghMEAEKQKAAtBsITBABCkCgALAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALlhoBC38jAEGAAWsiBSQAIAAoAgwhBgJAAkACQAJAAkAgACgCFCIBIAAoAhAiAkkEQCAAQQxqIQsDQAJAIAEgBmotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEAwsgACABQQFqIgE2AhQgASACRw0ACyACIQELIAVBCGogBiACIAFBAWoiACACIAAgAkkbEIYCIAUoAgwhACAFKAIIIQJBFBB+IgFFDQQgAUEDNgIADAILIAUgBiACIAFBAWoiACACIAAgAkkbEIYCIAUoAgQhACAFKAIAIQJBFBB+IgFFDQMgAUEGNgIADAELIABBADYCCCAAIAFBAWoiATYCFAJAIAEgAk8NAANAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASAGai0AACIEQQlrDiUBAQgIAQgICAgICAgICAgICAgICAgICAEIBwgICAgICAgICAgFAAsgBEHbAGsOIQUHBwcHBwcHBwcHAwcHBwcHBwcBBwcHBwcCBwcHBwcHBQcLIAAgAUEBaiIBNgIUIAEgAkcNCyACIQEMDAsgACABQQFqIgQ2AhQCQCACIARNDQAgACABQQJqIgM2AhQCQCAEIAZqLQAAQfUARw0AIAMgBCACIAIgBEkbIgRGDQEgACABQQNqIgc2AhQgAyAGai0AAEHsAEcEQCAHIQMMAQsgBCAHRg0BIAAgAUEEaiIDNgIUIAYgB2otAABB7ABGDQoLIAVB2ABqIAYgAiADEIYCIAUoAlwhACAFKAJYIQJBFBB+IgFFDQ8gAUEJNgIADA0LIAVB0ABqIAYgAiAEEIYCIAUoAlQhACAFKAJQIQJBFBB+IgFFDQ4gAUEFNgIADAwLIAAgAUEBaiIENgIUAkAgAiAETQ0AIAAgAUECaiIDNgIUAkAgBCAGai0AAEHyAEcNACADIAQgAiACIARJGyIERg0BIAAgAUEDaiIHNgIUIAMgBmotAABB9QBHBEAgByEDDAELIAQgB0YNASAAIAFBBGoiAzYCFCAGIAdqLQAAQeUARg0JCyAFQegAaiAGIAIgAxCGAiAFKAJsIQAgBSgCaCECQRQQfiIBRQ0OIAFBCTYCAAwMCyAFQeAAaiAGIAIgBBCGAiAFKAJkIQAgBSgCYCECQRQQfiIBRQ0NIAFBBTYCAAwLCyAAIAFBAWoiBDYCFAJAIAIgBE0NACAAIAFBAmoiAzYCFAJAIAQgBmotAABB4QBHDQAgAyAEIAIgAiAESRsiBEYNASAAIAFBA2oiBzYCFCADIAZqLQAAQewARwRAIAchAwwBCyAEIAdGDQEgACABQQRqIgg2AhQgBiAHai0AAEHzAEcEQCAIIQMMAQsgBCAIRg0BIAAgAUEFaiIDNgIUIAYgCGotAABB5QBGDQgLIAVB+ABqIAYgAiADEIYCIAUoAnwhACAFKAJ4IQJBFBB+IgFFDQ0gAUEJNgIADAsLIAVB8ABqIAYgAiAEEIYCIAUoAnQhACAFKAJwIQJBFBB+IgFFDQwgAUEFNgIADAoLIAAgAUEBajYCFAwDCyAAKAIAIAAoAggiA2sgCkkEQCAAIAMgCkEBQQEQ0AUgACgCCCEDCyAKBEAgACgCBCADaiAJOgAAIANBAWohAwsgACADNgIIIAAgACgCFEEBajYCFEEADAULIAAgAUEBajYCFCALEJIEIgENCAwDCyAEQTBrQf8BcUEKTw0BCwJ/IwBBIGsiByQAIAAoAgwhCAJAAkACQAJAAkAgACgCFCIDIAAoAhAiBEkEQCAAIANBAWoiAjYCFCADIAhqLQAAIgFBMEYEQCACIARPDQQgAiAIai0AAEEwa0H/AXFBCkkNAwwECyABQTFrQf8BcUEITQ0BIAIhAwsgB0EYaiAIIAQgAxCGAiAHKAIcIQIgBygCGCEBQRQQfiIDRQ0EIAMgATYCDCADQQ02AgAgAyACNgIQDAMLIAIgBE8NAQNAIAIgCGotAABBMGtB/wFxQQlLDQIgACACQQFqIgI2AhQgAiAERw0AC0EAIQMMAgsgB0EIaiAIIAQgA0ECaiICIAQgAiAESRsQhgIgBygCDCECIAcoAgghAUEUEH4iA0UNAiADIAE2AgwgA0ENNgIAIAMgAjYCEAwBC0EAIQMgAiAETw0AAkACQCACIAhqLQAAIgFB5QBGIAFBxQBGckUEQCABQS5HDQMgACACQQFqIgE2AhQgASAETw0BIAEgCGotAABBMGtB/wFxQQlLDQEgAkECaiECA0AgBCACIgFGDQMgAkEBaiECIAEgCGotAAAiBkEwa0H/AXFBCkkNAAsgACABNgIUIAZBIHJB5QBHDQMLAn8jAEEQayIDJAAgACAAKAIUIgFBAWoiAjYCFCAAKAIMIQQCQCACIAAoAhAiCE8NAAJAIAIgBGotAABBK2sOAwABAAELIAAgAUECaiICNgIUCwJAAkACQCADQQhqIAQgCCACIAhJBH8gACACQQFqIgE2AhQgAiAEai0AAEEwa0H/AXFBCU0NASABBSACCxCGAiADKAIMIQEgAygCCCEEQRQQfiICRQ0CIAIgBDYCDCACQQ02AgAgAiABNgIQDAELQQAhAiABIAhPDQADQCABIARqLQAAQTBrQf8BcUEJSw0BIAAgAUEBaiIBNgIUIAEgCEcNAAsLIANBEGokACACDAELAAshAwwCCyAHQRBqIAggBCACQQJqIgIgBCACIARJGxCGAiAHKAIUIQIgBygCECEBQRQQfiIDRQ0CIAMgATYCDCADQQ02AgAgAyACNgIQDAELIAAgBDYCFAsgB0EgaiQAIAMMAQsACyIBRQ0BDAYLIAVByABqIAYgAiABQQFqIgAgAiAAIAJJGxCGAiAFKAJMIQAgBSgCSCECQRQQfiIBRQ0GIAFBCjYCAAwECyAKBEAgACgACCEDIAkhBEEBDAELIAAoAggiAkUEQEEAIQEMBQsgACACQQFrIgM2AgggACgCBCADai0AACEEQQELIQogACgCDCEGAkACfwJAAkACQAJAIAAoAhQiASAAKAIQIgJPBEAgBCEJDAELIAAoAgQhByAEIQkDQAJAAkACQAJAAkACQCABIAZqLQAAIgRBCWsOJAEBCAgBCAgICAgICAgICAgICAgICAgIAQgICAgICAgICAgIAgALIARB3QBGDQIgBEH9AEYNAwwHCyAAIAFBAWoiATYCFCABIAJHDQQgAiEBDAULIApFDQYgACABQQFqIgE2AhQMBgsgCUH/AXFB2wBHDQQMAQsgCUH/AXFB+wBHDQMLIAAgAUEBaiIBNgIUIANFBEBBACEBDAsLIAAgA0EBayIDNgIIIAMgB2otAAAhCUEBIQogASACSQ0ACwtBAiEEAkAgCUH/AXEiAEHbAEcEQCAAQfsARw0BQQMhBAsgBUFAayAGIAIgAUEBaiIAIAIgACACSRsQhgIgBSgCRCEAIAUoAkAhAkEUEH4iAUUNCiABIAQ2AgAMCAtB+P/GAEEoQcCLxwAQoggACyAKRQ0AQQcgCUH/AXEiAEHbAEYNAhogAEH7AEYNAUH4/8YAQShB0IvHABCiCAALIAlB/wFxQfsARw0CIAEgAkkEQANAAkACQCABIAZqLQAAQQlrIgNBGUsNAEEBIAN0QZOAgARxDQEgA0EZRw0AIAAgAUEBajYCFCALEJIEIgENCiAAKAIMIQYCQAJAIAAoAhQiASAAKAIQIgJJBEADQAJAIAEgBmotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEAwsgACABQQFqIgE2AhQgASACRw0ACyACIQELIAVBMGogBiACIAFBAWoiACACIAAgAkkbEIYCIAUoAjQhACAFKAIwIQJBFBB+IgFFDQ0gAUEDNgIADAsLIAVBKGogBiACIAFBAWoiACACIAAgAkkbEIYCIAUoAiwhACAFKAIoIQJBFBB+IgFFDQwgAUEGNgIADAoLIAAgAUEBaiIBNgIUDAYLIAVBGGogBiACIAFBAWoiACACIAAgAkkbEIYCIAUoAhwhACAFKAIYIQJBFBB+IgFFDQogAUERNgIADAgLIAAgAUEBaiIBNgIUIAEgAkcNAAsgAiEBCyAFQSBqIAYgAiABQQFqIgAgAiAAIAJJGxCGAiAFKAIkIQAgBSgCICECQRQQfiIBRQ0HIAFBAzYCAAwFC0EICyEDIAVBEGogBiACIAFBAWoiACACIAAgAkkbEIYCIAUoAhQhACAFKAIQIQJBFBB+IgFFDQUgASADNgIADAMLQQEhCiABIAJJDQALCyAFQThqIAYgAiABQQFqIgAgAiAAIAJJGxCGAiAFKAI8IQAgBSgCOCECQRQQfiIBRQ0CIAFBBTYCAAsgASACNgIMIAEgADYCEAsgBUGAAWokACABDwsAC74QAQ5/IwBBgAFrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCKEECRwRAIAEoAtQBIgQgASgC2AFBHGxqIQUCQAJAA0AgBCIDIAVGIgQNAUGBxscAQRUgAygCFCADKAIYENcDRQRAIANBAEEcIAQbaiEEQZbGxwBBFSADKAIUIAMoAhgQ1wNFDQELCyADKAIYIg1BAEgNAyADKAIUIQQCQCANRQRAQQEhAQwBCyANEH4iAUUNCgsgDQRAIAEgBCAN/AoAAAsgAygCAEEBRgRAIAMoAgwiBkEASA0NIAMoAgghBAJAIAZFBEBBASEDDAELIAYQfiIDRQ0LCyAGBEAgAyAEIAb8CgAACyACQSg6ACggBiEEDAcLIAMoAgwiBkEASA0EIAMoAgghBAJAIAZFBEBBASEKDAELIAYQfiIKRQ0KCyAGBEAgCiAEIAb8CgAACyACQThqIAogBkGAgIABEO4BQQEhAyACKAI8IQgCQAJAAkAgAigCOCIEQQFGBEAgAkEeOgAoIAhBgICAgHhGDQEgAkEEOgApIAhFDQMgAigCQCIEQQRrKAIAIgNBeHEiBUEEQQggA0EDcSIDGyAIakkNESADRSAFIAhBJ2pNcg0CDA8LQQAhBCACQQA2AnwgAkKAgICAEDcCdCACKAJAIQcgAigCRCILBEAgAkH0AGpBACALEKMGIAIoAnwhBCAHIQUDQEEBQQIgBSwAACIMQQBOIgkbIg4gAigCdCAEIgNrSwR/IAJB9ABqIAMgDhCjBiACKAJ8BSADCyACKAJ4IgNqIg8gCQR/IAwFIA8gDEG/AXE6AAEgDEHAAXFBBnZBQHILOgAAIAIgBCAOaiIENgJ8IAVBAWohBSALQQFrIgsNAAsLIAYEQCAKQQRrKAIAIgVBeHEiCUEEQQggBUEDcSIFGyAGakkNESAFQQAgCSAGQSdqSxsNDyAKELQCCyACKAJ0IQYgCARAIAdBBGsoAgAiBUF4cSIKQQRBCCAFQQNxIgUbIAhqSQ0RIAVBACAKIAhBJ2pLGw0PIAcQtAILIAJBKDoAKCAEQQBODQkMDwsgAkEDOgApIAQNASACKAJAIgRBBGsoAgAiBUF4cUGEgICAeEGIgICAeCAFQQNxIgMbSQ0PIANFDQAgBUGogICAeE8NDQsgBBC0AgsgAkE4aiACQShqEJ0EIAJBEGoiBSACQcwAav0AAgD9CwMAIAJBIGoiAyACQdwAaigCADYCACACIAL9AAI8/QsDACACKAI4IgRBBkYNASAAIAL9AAMA/QsCBCAAQSRqIAMoAgA2AgAgAEEUaiAF/QADAP0LAgAgACAENgIADAgLIAEoAsgBIgQgASgCzAFBGGxqIQUCQANAIAQiAyAFRiIBDQFBgcbHAEEVIAMoAgQgAygCCBDXA0UEQCADQQBBGCABG2ohBEGWxscAQRUgAygCBCADKAIIENcDRQ0BCwsgAygCCCIHQQBIDQwgAygCBCEEAkAgB0UEQEEBIQEMAQsgBxB+IgFFDQoLIAcEQCABIAQgB/wKAAALIAMoAhQiBUEASA0MIAMoAhAhAwJAIAVFBEBBASEEDAELIAUQfiIERQ0KCyAFBEAgBCADIAX8CgAACyAAIAU2AgwgACAENgIIIAAgBTYCBCAAQQY2AgAgB0UNCiABQQRrKAIAIgBBeHEiBEEEQQggAEEDcSIAGyAHakkNDSAAQQAgBCAHQSdqSxsNCyABELQCDAoLIABChoCAgICAgICAfzcDAAwJCyACIAogBkF/EO4BIAIoAgQhCwJAAkAgAigCAEEBRgRAIAtBgICAgHhGDQEgAkEANgJIIAJBATYCPCACQZi5xAA2AjggAkIENwJAIAJBOGpBoLnEABDKCAALIAtBgICAgHhHDQELIAJBngY7AWQgACACQeQAahCdBAwHCyACKAIMIQwgAigCCCEHQQAhBCACQQA2AnwgAkKAgICAEDcCdEEBIQggDARAIAJB9ABqQQAgDBCjBiACKAJ8IQQgByEFA0BBAUECIAUsAAAiCUEATiIPGyIOIAIoAnQgBCIDa0sEfyACQfQAaiADIA4QowYgAigCfAUgAwsgAigCeCIIaiIDIA8EfyAJBSADIAlBvwFxOgABIAlBwAFxQQZ2QUByCzoAACACIAQgDmoiBDYCfCAFQQFqIQUgDEEBayIMDQALIAIoAnQhCQsgCwRAIAdBBGsoAgAiA0F4cSIFQQRBCCADQQNxIgMbIAtqSQ0MIANBACAFIAtBJ2pLGw0KIAcQtAILIARBAEgNAwwFC0Hkn8cAEKQKAAtBoPfBABC3CAwFC0H8pMgAELcIAAtB/KTIABC3CAALAkAgBEUEQEEBIQgMAQsgBBB+IghFDQMLIAQEQCAIIAMgBPwKAAALIAQhCSADIQoLAkAgBEUEQEEBIQMMAQsgBBB+IgNFDQILIAQEQCADIAggBPwKAAALIAkEQCAIQQRrKAIAIgVBeHEiB0EEQQggBUEDcSIFGyAJakkNBiAFQQAgByAJQSdqSxsNBCAIELQCCyAAIAQ2AgwgACADNgIIIAAgBDYCBCAAQQY2AgALIA0EQCABQQRrKAIAIgBBeHEiBEEEQQggAEEDcSIAGyANakkNBSAAQQAgBCANQSdqSxsNAyABELQCCyAGRQ0BIApBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIAZqSQ0EIABBACABIAZBJ2pLGw0CIAoQtAIMAQsACyACQYABaiQADwtBoIzIAEEuQdCMyAAQoggAC0Gg98EAELcIAAtB4IvIAEEuQZCMyAAQoggAC+UQAgp/B30gA0EITwRAIAAgACADQQN2IgNBBHQiBWogACADQRxsIghqIAMgBBCtASEAIAEgASAFaiABIAhqIAMgBBCtASEBIAIgAiAFaiACIAhqIAMgBBCtASECC0MAAIA/IRACfwJAIAAoAgAiBSAEKAIAQQRqKAIAIgMoAggiCEkEQCABKAIAIQYgAygCBCILIAVBGGxqIgQtABMiBSAELQASIgcgBC0AESIKIAcgCksbIgcgBSAHSxsiBwR9QwAAQMEgAyoCRCADLQBYQQJGIgUbIg9DAAAQQSADKgJIIAUbIA+TQwAAfkOVIAdBAWtB/wFxs5SSEKYEIg8gD5IFQwAAAAALIRIgBEEMai8BACIEQf//AXEiDUUEQCAEQRB0DAMLIARB/wdxIQUgBEGAgAJxIQogBEGA+AFxIglBgPgBRgRAIApBEHQiCkGAgID8B3IgBUUNAxogCiAFQQ10ckGAgID+B3IMAwsgCkEQdCEKIAlFDQEgCUENdEGAgID8AHEgBUENdHJBgICAwANqIApyDAILIAUgCEG01McAEL8HAAsgBSAFZ0EQayIFQf//A3FBCGp0Qf///wNxIApBgICA2ANyIAVBF3Rrcgu+Ig9DAACAP14EQCAPEPQFQ1T4LUCUQwAAgD+SkSEQC0MAAIA/IQ8CfwJAIAYgCEkEQCALIAZBGGxqIgUtABMiBiAFLQASIgogBS0AESIJIAkgCkkbIgogBiAKSxsiCgR9QwAAQMEgAyoCRCADLQBYQQJGIgYbIhFDAAAQQSADKgJIIAYbIBGTQwAAfkOVIApBAWtB/wFxs5SSEKYEIhEgEZIFQwAAAAALIRMgBUEMai8BACIFQf//AXEiDkUEQCAFQRB0DAMLIAVB/wdxIQYgBUGAgAJxIQkgBUGA+AFxIgxBgPgBRgRAIAlBEHQiCUGAgID8B3IgBkUNAxogCSAGQQ10ckGAgID+B3IMAwsgCUEQdCEJIAxFDQEgDEENdEGAgID8AHEgBkENdHJBgICAwANqIAlyDAILIAYgCEG01McAEL8HAAsgBiAGZ0EQayIGQf//A3FBCGp0Qf///wNxIAlBgICA2ANyIAZBF3Rrcgu+IhFDAACAP14EQCAREPQFQ1T4LUCUQwAAgD+SkSEPCyACKAIAIQkgBwR9QwAAQMEgAyoCRCADLQBYQQJGIgYbIhFDAAAQQSADKgJIIAYbIBGTQwAAfkOVIAdBAWtB/wFxs5SSEKYEIhEgEZIFQwAAAAALIRRDAACAPyERAn8gBEEQdCANRQ0AGiAEQf8HcSEGIARBgIACcSEHIARBgPgBcSIEQYD4AUYEQCAHQRB0IgRBgICA/AdyIAZFDQEaIAQgBkENdHJBgICA/gdyDAELIAdBEHQiByAEQQ10QYCAgPwAcSAGQQ10ckGAgIDAA2pyIAQNABogBiAGZ0EQayIEQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIARBF3Rrcgu+IhVDAACAP14EQCAVEPQFQ1T4LUCUQwAAgD+SkSERCwJ/AkAgCCAJSwRAIBIgEJQiECATIA+UYCALIAlBGGxqIgQtABMiBiAELQASIgcgBC0AESIJIAcgCUsbIgcgBiAHSxsiBgR9QwAAQMEgAyoCRCADLQBYQQJGIgcbIg9DAAAQQSADKgJIIAcbIA+TQwAAfkOVIAZBAWtB/wFxs5SSEKYEIg8gD5IFQwAAAAALIRJFIQsgECAQWyEMIARBDGovAQAiBEH//wFxIg1FBEAgBEEQdAwDCyAEQf8HcSEIIARBgIACcSEHIARBgPgBcSIJQYD4AUYEQCAHQRB0IgdBgICA/AdyIAhFDQMaIAcgCEENdHJBgICA/gdyDAMLIAdBEHQhByAJRQ0BIAlBDXRBgICA/ABxIAhBDXRyQYCAgMADaiAHcgwCCyAJIAhBtNTHABC/BwALIAggCGdBEGsiCEH//wNxQQhqdEH///8DcSAHQYCAgNgDciAIQRd0a3ILQwAAgD8hD74iEEMAAIA/XgRAIBAQ9AVDVPgtQJRDAACAP5KRIQ8LIAsgDHEiCCAUIBGUIhAgEFsgECASIA+UYEVxRgR/IAIgASAIIAoEfUMAAEDBIAMqAkQgAy0AWEECRiIAGyIPQwAAEEEgAyoCSCAAGyAPk0MAAH5DlSAKQQFrQf8BcbOUkhCmBCIPIA+SBUMAAAAACwJ/IAVBEHQgDkUNABogBUH/B3EhACAFQYCAAnEhASAFQYD4AXEiAkGA+AFGBEAgAUEQdCIBQYCAgPwHciAARQ0BGiABIABBDXRyQYCAgP4HcgwBCyABQRB0IgEgAkENdEGAgID8AHEgAEENdHJBgICAwANqciACDQAaIAAgAGdBEGsiAEH//wNxQQhqdEH///8DcSABQYCAgNgDciAAQRd0a3ILviIPQwAAgD9eBH0gDxD0BUNU+C1AlEMAAIA/kpEFQwAAgD8LlCIPIA9bIA8gBgR9QwAAQMEgAyoCRCADLQBYQQJGIgAbIhBDAAAQQSADKgJIIAAbIBCTQwAAfkOVIAZBAWtB/wFxs5SSEKYEIhAgEJIFQwAAAAALAn8gBEEQdCANRQ0AGiAEQf8HcSEAIARBgIACcSEBIARBgPgBcSICQYD4AUYEQCABQRB0IgFBgICA/AdyIABFDQEaIAEgAEENdHJBgICA/gdyDAELIAFBEHQiASACQQ10QYCAgPwAcSAAQQ10ckGAgIDAA2pyIAINABogACAAZ0EQayIAQf//A3FBCGp0Qf///wNxIAFBgICA2ANyIABBF3Rrcgu+IhBDAACAP14EfSAQEPQFQ1T4LUCUQwAAgD+SkQVDAACAPwuUYEVxcxsFIAALC+oRAw1/AXsJfQJAAkACQAJAAkAgACgCCCIJRQRAQQEhBkEBIQoMAQsgACgCBCEFIAkQfiIKRQ0CQwAAEEEgACoCSCAALQBYQQJGIgQbQwAAQMEgACoCRCAEGyITk0MAAH5DlSEUIAVBFGohBgNAQQAhBAJAAn8gBkEIay8BACIBQf//AXFFBEAgAUEQdAwBCyABQf8HcSECIAFBgIACcSEHIAFBgPgBcSIBQYD4AUYEQCAHQRB0IgFBgICA/AdyIAJFDQEaIAEgAkENdHJBgICA/gdyDAELIAdBEHQiByABQQ10QYCAgPwAcSACQQ10ckGAgIDAA2pyIAENABogAiACZ0EQayICQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAJBF3Rrcgu+QwAAAABeRQ0AIAZBAWstAAAiAiAGQQJrLQAAIgEgBkEDay0AACIHIAEgB0sbIgEgASACSRsiAkUNACATIBQgAkEBa0H/AXGzlJIQpgRDAAAAAF5FDQBDAACAPyAGLwEAIgJBCHaz/RMgAiAGQQJqLQAAIgFBEHRyQf8BcbP9IAH9DAAAf0MAAH9DAAB/QwAAf0P95wEiDiAO/eQB/QwAAIC/AACAvwAAgL8AAIC//eQBIg79HwEiD4uTIA79HwAiFYuTIhGMQwAAAAAQnwkhECABs0MAAH9DlUMAAAA/lEPbD0lAlCIWEKwCIhIgDyAQIBCMIhcgDv0MAAAAAAAAAAAAAAAAAAAAAP1G/U0iDv3HAf0bAkEBcRuSIg8gESARlCAPIA+UIBUgECAXIA79GwBBAXEbkiIQIBCUkpKRIg+VlP0TIBIgECAPlZT9IAEgEiARIA+VlP0gAiAWEK4C/SADIg79DP///3////9/////f////3/9Tv0MAACAfwAAgH8AAIB/AACAf/05/aQBQQ9HDQAgDiAO/eYBIg4gDiAO/Q0ICQoLDA0ODwABAgMAAQID/eQBIg4gDiAO/Q0EBQYHAAECAwABAgMAAQID/eQB/eMB/R8AQwAAAABeIQQLIAMgCmogBDoAACAGQRhqIQYgCSADQQFqIgNHDQALIAVBGGohAyAJIApqIQZBACEBIAohBAJAAkADQCAEIAZGDQQgAUEBaiECIAQtAABBAUcNASAEQQFqIQQgA0EYaiEDIAIiASAJRw0AC0EAIQEMAQsgAiAJRgRAQQEhAQwBCyABIAlrIQVBASECQQEhAQNAAkACQCACIAVqBEAgAiAEai0AAA0BIAFBAWohAQwCC0Hwg8EAEKQKAAsgAyABQWhsaiIHIAP9AAIA/QsCACAHQRBqIANBEGopAgA3AgALIANBGGohAyAFIAJBAWoiAmoNAAsLIAAgCSABazYCCAsgACgCFCIHBEBBACECIAAoAhAiASEDIAohBAJAA0ACQCAEIAZHBEAgBC0AAA0BAkAgASACQRhsaiIBKAIUIgVBBU8EQCABKAIIIgFBBGsoAgAiCEF4cSILIAVBAnQiBUEEQQggCEEDcSIIG2pJDQEgCEEAIAsgBUEnaksbDQogARC0AgtBASEFIAJBAWogB0YNBCACIAdrIQhBASEBA0AgAyECAkACQCAGIAEgBGoiC0cEQCACQRhqIQMgCy0AAA0BIAVBAWohBSACQSxqKAIAIgtBBUkNAiACQSBqKAIAIgJBBGsoAgAiDEF4cSINIAtBAnQiC0EEQQggDEEDcSIMG2pJDQwgDEEAIA0gC0EnaksbDQ0gAhC0AgwCC0GAhMEAEKQKAAsgAiAFQWhsaiICQShqIANBEGopAgA3AgAgAkEYaiAD/QACAP0LAgALIAggAUEBaiIBag0ACwwECwwHC0GAhMEAEKQKAAsgBEEBaiEEIANBGGohAyACQQFqIgIgB0cNAAtBACEFCyAAIAcgBWs2AhQLAkAgACgCICIFBEBBACECQQkhASAKIQQCQAJAA0AgBCAGRg0EIAJBAWohAyAELQAAQQFHDQEgBEEBaiEEIAFBCWohASADIgIgBUcNAAtBACEBDAELIAMgBUYEQEEBIQEMAQsgAiAFayEHIAAoAhwgAWohA0EBIQJBASEBA0ACQAJAIAYgAiAEaiIIRwRAIAgtAAANASABQQFqIQEMAgtB4IPBABCkCgALIAMgAUF3bGoiCCADKQAANwAAIAhBCGogA0EIai0AADoAAAsgA0EJaiEDIAcgAkEBaiICag0ACwsgACAFIAFrNgIgCwJAIAAoAiwiBQRAQQAhAkEPIQEgCiEEAkACQANAIAQgBkYNBCACQQFqIQMgBC0AAEEBRw0BIARBAWohBCABQQ9qIQEgAyICIAVHDQALQQAhAQwBCyADIAVGBEBBASEBDAELIAIgBWshByAAKAIoIAFqIQNBASECQQEhAQNAAkACQCAGIAIgBGoiCEcEQCAILQAADQEgAUEBaiEBDAILQdCDwQAQpAoACyADIAFBcWxqIgggAykAADcAACAIQQdqIANBB2opAAA3AAALIANBD2ohAyAHIAJBAWoiAmoNAAsLIAAgBSABazYCLAsCQCAAKAI4IgUEQEEAIQJBFSEBIAohBAJAAkADQCAEIAZGDQQgAkEBaiEDIAQtAABBAUcNASAEQQFqIQQgAUEVaiEBIAMiAiAFRw0AC0EAIQEMAQsgAyAFRgRAQQEhAQwBCyACIAVrIQcgACgCNCABaiEDQQEhAkEBIQEDQAJAAkAgBiACIARqIghHBEAgCC0AAA0BIAFBAWohAQwCC0HAg8EAEKQKAAsgAyABQWtsaiIIIAP9AAAA/QsAACAIQQ1qIANBDWopAAA3AAALIANBFWohAyAHIAJBAWoiAmoNAAsLIAAgBSABazYCOAsCQCAJBEAgCkEEaygCACIAQXhxIgRBBEEIIABBA3EiABsgCWpJDQcgAEEAIAQgCUEnaksbDQEgChC0AgsPCwwGC0HAg8EAEKQKAAtB0IPBABCkCgALQeCDwQAQpAoAC0Hwg8EAEKQKAAsAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAvfEAIcfwV9IwBBMGsiBiQAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AuAFBAUcNACAAKAKsASAAKAKwASICQQJ0IAAoArQBIgQgAmpBAnQQoAkhAiAEQQJ0IgQgACgCZCIFSw0BIAAoAmAhBSAGIAIQgwsiATYCFCAGIAQ2AgggASAERw0HIAIgBSAEEKkKIAJBhAhJDQAgAhDNBwsgAEIANwKwASAAQbgBakEAOgAAIAAoAmgiAkGAgICAeEYgACgCdCIEQYCAgIB4RnENAiACQYCAgIB4RyAEQYCAgIB4R3FFBEAgBkEANgIoIAZBATYCHCAGQeDCwQA2AhggBkIENwIgIAZBGGoQxQchAgwGC0GAgBAhCiAAKAJkIgRB//8PTQRAQYCAECAEIgJrIgUgACgCXCACa0sEQCAAQdwAaiACIAVBBEEEENAFIAAoAmQhAgsgACgCYCIBIAJBAnRqIQUgBEH//w9HBH9B/P8/IARBAnRrIgMEQCAFQQAgA/wLAAsgAiAEayIEQf//D2ohAiABIARBAnRqQfz/P2oFIAULQQA2AgAgAkEBaiEKCyAAIAo2AmQgACgCpAEiC0ECdBD3CSEQAkAgACgCMEUNACAAKAI0IgJBhAhJDQAgAhDNBwsgACAQNgI0IABBATYCMCAAKAJoIhFBgICAgHhGDQQgACgCdCISQYCAgIB4Rg0DIAtFDQFDAAAAQEMAAIA/IAAtAJwBQQFxGyEhIAAqAowBIAAqAogBIh2TQwAAfkOVIR4gACgCbCEWIAAoAnghFyAAKAJ8IRMgACgCcCEUIAAoAqwBIRggACgCYCENQQAhAgJAAkADQEGAgAQgCyACayIEIARBgIAETxsiAUECdCIFIApLDQIgBiAYIAJBAnQiFSABIAJqIgRBAnQiGRCgCSIDEIMLIgk2AhQgBiAFNgIIIAUgCUcNCSANIAUgAxCrCiADQYQITwRAIAMQzQcLAkAgAiALRwRAIAFBBHQhGiAVIBdqIQ4gFiACQQF0aiEPQQEgASABQQFNG0EEdCEbQQAhCQNAAn8CQCAJIBpHBEAgCSANaiIMQQRqKAIAIgFB//8BcUUEQCABQRB0DAMLIAFB/wdxIQMgAUGAgAJxIQcgAUGA+AFxIghBgPgBRgRAIAdBEHQiB0GAgID8B3IgA0UNAxogByADQQ10ckGAgID+B3IMAwsgB0EQdCEHIAhFDQEgCEENdEGAgID8AHEgA0ENdHJBgICAwANqIAdyDAILIAVBBGogBUGMwsEAEKIKAAsgB0GAgIDYA3IgA2dBEGsiB0EXdGsgAyAHQf//A3FBCGp0Qf///wNxcgshHAJ/IAFBgIB8cSABQRB2IgFB//8BcUUNABogAUH/B3EhAyABQYCAAnEhByABQYD4AXEiCEGA+AFGBEAgB0EQdCIHQYCAgPwHciADRQ0BGiAHIAFBDXRyQYCAgP4HcgwBCyAHQRB0IgEgCEENdEGAgID8AHEgA0ENdHJBgICAwANqciAIDQAaIAFBgICA2ANyIANnQRBrIgFBF3RrIAMgAUH//wNxQQhqdEH///8DcXILIQggBgJ/IAxBCGooAgAiA0H//wFxRQRAIANBEHQMAQsgA0H/B3EhASADQYCAAnEhByADQYD4AXEiA0GA+AFGBEAgB0EQdCIDQYCAgPwHciABRQ0BGiADIAFBDXRyQYCAgP4HcgwBCyAHQRB0IgcgA0ENdEGAgID8AHEgAUENdHJBgICAwANqciADDQAaIAdBgICA2ANyIAFnQRBrIgNBF3RrIAEgA0H//wNxQQhqdEH///8DcXILNgIQIAYgCDYCDCAGIBw2AgggDC0AAyEHIAxBDGooAgAiAUEIdiEDQwAAAAAhHyABQf8BcQRAIB0gHiABQQFrQf8BcbOUkhCmBCEfC0MAAAAAISAgA0H/AXEEQCAdIB4gA0EBa0H/AXGzlJIQpgQhIAsgBiABQRB2IgFB/wFxBH0gHSAeIAFBAWtB/wFxs5SSEKYEBUMAAAAACzgCICAGICA4AhwgBiAfOAIYIAIgFE8NAiACIBNPDQQgDCAGQQhqICEgB7NDAAB/Q5WUQwAAAACSIAZBGGogDy8BACAOKAIAEKICIA5BBGohDiAPQQJqIQ8gAkEBaiECIBsgCUEQaiIJRw0ACwsgBiAQIBUgGRCgCSICEIMLIgE2AhQgBiAFNgIIIAEgBUcNCiACIA0gBRCpCiACQYQITwRAIAIQzQcLIAQiAiALSQ0BDAULCyACIBRBnMLBABC/BwALIAIgE0GswsEAEL8HAAsgBSAKQfzBwQAQogoACyAEIAVBvMHBABCiCgALIBJBgICAgHhyQYCAgIB4RwRAIAAoAngiAkEEaygCACIEQXhxIgUgEkECdCIBQQRBCCAEQQNxIgQbakkNBiAEQQAgBSABQSdqSxsNByACELQCCyAAQYCAgIB4NgJ0IBFBgICAgHhyQYCAgIB4RwRAIAAoAmwiAkEEaygCACIEQXhxIgUgEUEBdCIBQQRBCCAEQQNxIgQbakkNBiAEQQAgBSABQSdqSxsNByACELQCCyAAQYCAgIB4NgJoC0EAIQIgAEEANgJkIAAoAmAhBCAAKAJcIQUgAEKAgICAwAA3AlwgBUUNAiAEQQRrKAIAIgBBeHEiASAFQQJ0IgVBBEEIIABBA3EiABtqSQ0EIABBACABIAVBJ2pLGw0FIAQQtAIMAgtB7MHBABCkCgALQdzBwQAQpAoACyAGQTBqJAAgAg8LIAZBADYCGEEAIAZBFGogBkEIaiAGQRhqQdyBxQAQrggAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAvwDwIhfxV9IwBB8ABrIgYkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAALQC4AUEBRw0AIAAoAqwBIAAoArABIgVBAnQgACgCtAEiByAFakECdBCgCSEFIAdBAnQiByAAKAJkIghLDQEgACgCYCEIIAYgBRCDCyIJNgIUIAYgBzYCGCAHIAlHDQsgBSAIIAcQqQogBUGECEkNACAFEM0HCyAAQgA3ArABIABBuAFqQQA6AAAgACgCEEUNCCAAKAIUIAFBAnQgASACakECdBCgCSENAkAgAkECdCIBIAAoAmQiBU0EQCAAIAE2AmQgACgCYCELIAEhBwwBCyAFIQggASAFayIHIAAoAlwgBWtLBEAgAEHcAGogBSAHQQRBBBDQBSAAKAJkIQgLIAAoAmAiCyAIQQJ0IglqIQogB0ECTwRAIAEgBUF/c2pBAnQiDARAIApBACAM/AsACyACQQR0IAVBAnRrIAtqIAlqQQRrIQogByAIakEBayEICyAKQQA2AgAgACAIQQFqIgc2AmQgASAHSw0CCyAGIA0QgwsiBTYCFCAGIAE2AhggASAFRw0KIAsgASANEKsKIARBFW4hECAEQRRrQRVuQQFqIREgBEETa0EVbkEBaiESIARBEmtBFW5BAWohEyAEQRFrQRVuQQFqIRQgBEEQa0EVbkEBaiEVIARBD2tBFW5BAWohFiAEQQ5rQRVuQQFqIRcgBEENa0EVbkEBaiEYIARBDGtBFW5BAWohGSAEQQtrQRVuQQFqIRogBEEKa0EVbkEBaiEbIARBCWtBFW5BAWohHCAEQQhrQRVuQQFqIR0gBEEHa0EVbkEBaiEeIARBBmtBFW5BAWohHyAEQQVrQRVuQQFqISAgBEEEa0EVbkEBaiEhIARBA2tBFW5BAWohIiAEQQJrQRVuQQFqISMgBEEBa0EVbkEBaiEkQwAA+EEgACoCmAGVISYgACgCYCEMQQAhBQNAIAVBAnQiACAHTw0DIABBAXIiASAHTw0EIABBAnIiCCAHTw0FIABBA3IiCSAHTw0HIAwgAEECdGooAgAhACAGIAwgAUECdGooAgA2AgggBiAANgIEIAYgDCAJQQJ0aigCADYCECAGIAwgCEECdGooAgA2AgxBACEKIAZBHGoiDkEAQdQA/AsAIAVBFWwhASAFQQFqQQYhAEEAIQgDQCAGQQRqIABBBmsiD0EDdkH8////AXFqIiUoAgAgD0EecXYhCyAOIA9B4AFxQSBqIABJBH8gCEEPSw0IICUoAgQgCkEecXQgC3IFIAsLQRp0QRp1siAmlTgCACAAQQZqIQAgCkEGayEKIA5BBGohDiAIQQFqIghBFUcNAAsgBSAkRg0KIAYqAmwhJyAGKgJoISggBioCZCEpIAYqAmAhKiAGKgJcISsgBioCWCEsIAYqAlQhLSAGKgJQIS4gBioCTCEvIAYqAkghMCAGKgJEITEgBioCQCEyIAYqAjwhMyAGKgI4ITQgBioCNCE1IAYqAjAhNiAGKgIsITcgBioCKCE4IAYqAiQhOSAGKgIgITogAyABQQJ0aiAGKgIcOAIAIAFBAWohACAFICNGBEAgACEBDAsLIAMgAEECdGogOjgCACABQQJqIQAgBSAiRgRAIAAhAQwLCyADIABBAnRqIDk4AgAgAUEDaiEAIAUgIUYEQCAAIQEMCwsgAyAAQQJ0aiA4OAIAIAFBBGohACAFICBGBEAgACEBDAsLIAMgAEECdGogNzgCACABQQVqIQAgBSAfRgRAIAAhAQwLCyADIABBAnRqIDY4AgAgAUEGaiEAIAUgHkYEQCAAIQEMCwsgAyAAQQJ0aiA1OAIAIAFBB2ohACAFIB1GBEAgACEBDAsLIAMgAEECdGogNDgCACABQQhqIQAgBSAcRgRAIAAhAQwLCyADIABBAnRqIDM4AgAgAUEJaiEAIAUgG0YEQCAAIQEMCwsgAyAAQQJ0aiAyOAIAIAFBCmohACAFIBpGBEAgACEBDAsLIAMgAEECdGogMTgCACABQQtqIQAgBSAZRgRAIAAhAQwLCyADIABBAnRqIDA4AgAgAUEMaiEAIAUgGEYEQCAAIQEMCwsgAyAAQQJ0aiAvOAIAIAFBDWohACAFIBdGBEAgACEBDAsLIAMgAEECdGogLjgCACABQQ5qIQAgBSAWRgRAIAAhAQwLCyADIABBAnRqIC04AgAgAUEPaiEAIAUgFUYEQCAAIQEMCwsgAyAAQQJ0aiAsOAIAIAFBEGohACAFIBRGBEAgACEBDAsLIAMgAEECdGogKzgCACABQRFqIQAgBSATRgRAIAAhAQwLCyADIABBAnRqICo4AgAgAUESaiEAIAUgEkYEQCAAIQEMCwsgAyAAQQJ0aiApOAIAIAFBE2ohACAFIBFGBEAgACEBDAsLIAMgAEECdGogKDgCACABQRRqIQEgBSAQRg0KIAMgAUECdGogJzgCACIFIAJHDQALDAcLIAcgCEG8wcEAEKIKAAsgASAHQZjMwQAQogoACyAAIAdBqMzBABC/BwALIAEgB0G4zMEAEL8HAAsgCCAHQcjMwQAQvwcAC0EEQQRB5IXIABC/BwALIAkgB0HYzMEAEL8HAAsgDUGECEkNACANEM0HCyAGQfAAaiQADwsgASAEQejMwQAQvwcACyAGQQA2AhxBACAGQRRqIAZBGGogBkEcakHcgcUAEK4IAAuLEQEOfyMAQYAIayIDJAACQCABQQNqQXxxIAFrIgQgAksEQEEBIQ5BBCELDAELIAEgBGoiCyACIARrIgJBfHFqIQ4gAkEDcSEPIAJBAnYhCCAEIQILIABBf3MhAAJAIAJFDQBBACEEIAJBAUcEQCACQQFxIAJBfnEhAgNAIAEgBGoiB0EBai0AACAHLQAAIABzQf8BcUECdEGor8gAaigCACAAQQh2cyIAc0H/AXFBAnRBqK/IAGooAgAgAEEIdnMhACACIARBAmoiBEcNAAtFDQELIAEgBGotAAAgAHNB/wFxQQJ0QaivyABqKAIAIABBCHZzIQALQQAhBSAIQQVuIgFBAWsiAkEAIAEgAk8bIQkCQCAIQQpJBEBBACEHDAELQQAhAiALIQRBACEHA0ACQAJAIAIgCE8NACAIIAJrIgZBACAGIAhNGyIGQQFHBEAgBkECRwRAIAZBA0cEQCAGQQRHDQQgAkEEaiECDAMLIAJBA2ohAgwCCyACQQJqIQIMAQsgAkEBaiECCyACIAhBvNfIABC/BwALIAcgBEEIaigCAHMiB0H/AXFBAnRBzNfIAGooAgAgB0EGdkH8B3FBzN/IAGooAgBzIAdBDnZB/AdxQcznyABqKAIAcyAHQRZ2QfwHcUHM78gAaigCAHMhByAFIARBBGooAgBzIgVB/wFxQQJ0QczXyABqKAIAIAVBBnZB/AdxQczfyABqKAIAcyAFQQ52QfwHcUHM58gAaigCAHMgBUEWdkH8B3FBzO/IAGooAgBzIQUgACAEKAIAcyIAQf8BcUECdEHM18gAaigCACAAQQZ2QfwHcUHM38gAaigCAHMgAEEOdkH8B3FBzOfIAGooAgBzIABBFnZB/AdxQczvyABqKAIAcyEAIAwgBEEQaigCAHMiDEH/AXFBAnRBzNfIAGooAgAgDEEGdkH8B3FBzN/IAGooAgBzIAxBDnZB/AdxQcznyABqKAIAcyAMQRZ2QfwHcUHM78gAaigCAHMhDCAEQQxqKAIAIApzIgpB/wFxQQJ0QczXyABqKAIAIApBBnZB/AdxQczfyABqKAIAcyAKQQ52QfwHcUHM58gAaigCAHMgCkEWdkH8B3FBzO/IAGooAgBzIQogAkEFaiECIARBFGohBCANQQFqIg0gCUkNAAsLIAlBBWwiAiAITQRAAkAgAiAIRg0AIAsgAkECdGoiBCgCACEJQQAiBkUEQCADQai3yABBgAj8CgAACyADIAAgCXMiAEH/AXFBAnRqKAIAIQkgBkUEQCADQai/yABBgAj8CgAACyADIABBBnZB/AdxaigCACENIAZFBEAgA0Gox8gAQYAI/AoAAAsgAyAAQQ52QfwHcWooAgAhECAGRQRAIANBqM/IAEGACPwKAAALIAMgAEEWdkH8B3FqKAIAIAkgDXMgEHNzIQAgCCACayICQQFGDQAgBCgCBCEJQQBFBEAgA0Got8gAQYAI/AoAAAsgAyAFIAlzIABzIgBB/wFxQQJ0aigCACEFIAZFBEAgA0Gov8gAQYAI/AoAAAsgAyAAQQZ2QfwHcWooAgAhCSAGRQRAIANBqMfIAEGACPwKAAALIAMgAEEOdkH8B3FqKAIAIQ0gBkUEQCADQajPyABBgAj8CgAACyADIABBFnZB/AdxaigCACAFIAlzIA1zcyEAIAJBAkYNACAEKAIIIQZBACIFRQRAIANBqLfIAEGACPwKAAALIAMgBiAHcyAAcyIAQf8BcUECdGooAgAhByAFRQRAIANBqL/IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQYgBUUEQCADQajHyABBgAj8CgAACyADIABBDnZB/AdxaigCACEJIAVFBEAgA0Goz8gAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgBiAHcyAJc3MhACACQQNGDQAgBCgCDCEHQQBFBEAgA0Got8gAQYAI/AoAAAsgAyAHIApzIABzIgBB/wFxQQJ0aigCACEHIAVFBEAgA0Gov8gAQYAI/AoAAAsgAyAAQQZ2QfwHcWooAgAhCiAFRQRAIANBqMfIAEGACPwKAAALIAMgAEEOdkH8B3FqKAIAIQYgBUUEQCADQajPyABBgAj8CgAACyADIABBFnZB/AdxaigCACAHIApzIAZzcyEAIAJBBEYNACAEKAIQIQVBACIERQRAIANBqLfIAEGACPwKAAALIAMgBSAMcyAAcyIAQf8BcUECdGooAgAhBSAERQRAIANBqL/IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQcgBEUEQCADQajHyABBgAj8CgAACyADIABBDnZB/AdxaigCACEKIARFBEAgA0Goz8gAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgBSAHcyAKc3MhACACQQVGDQAgAUEUbEEBIAEgARsiBEEUbGsgC2pBFGohAiAIIARBBWxqIAFBBWxrQQVrIQEDQCACKAIAIQtBACIERQRAIANBqLfIAEGACPwKAAALIAMgACALcyIAQf8BcUECdGooAgAhCyAERQRAIANBqL/IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQggBEUEQCADQajHyABBgAj8CgAACyADIABBDnZB/AdxaigCACEFIARFBEAgA0Goz8gAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgCCALcyAFc3MhACACQQRqIQIgAUEBayIBDQALCwJAIA9FDQAgDi0AACAAc0H/AXFBAnRBqK/IAGooAgAgAEEIdnMhACAPQQFGDQAgDi0AASAAc0H/AXFBAnRBqK/IAGooAgAgAEEIdnMhACAPQQJGDQAgDi0AAiAAc0H/AXFBAnRBqK/IAGooAgAgAEEIdnMhAAsgA0GACGokACAAQX9zDwsgAiAIQazXyAAQowoAC6oTAwt/BH4CeyMAQaACayIEJAACQCABKAIQIgUoAjAgAk0EQCAAQgM3AwAgAEGEgICAeDYCCAwBCyAFKAIsIAJBuAFsaiEHAkACQCADLQAIRQRAIActAKABIQUgAygCACICRQ0BIAVBAXENAgtBACECIANBADYCAAwBC0EAIQIgBUEBcUUNACAAQSE2AhAgAEGcpccANgIMIABBg4CAgHg2AgggAEIDNwMADAELAkACQCAHLQBoQQNGBEAgBykDYCERDAELIAEoAgQiBa0hEAJAAkAgBUL/////DyAHKQNQIg8gD0L/////D1obp2siBkEAIAUgBk8bQR1NBEBB4KHIACkDACIRpyECAkAgEUL/AYNCBFEEQCABIA9CHnw3AwggAkH/AXFBBEcNAQwDCyABIBA3AwggAkH/AXFBBEYNAgsgEUIgiKchASARQgiIpyIFIQMCQAJAAkACQCACQf8BcSIGQQFrDgMBAAACCyABLQAIIQMLIANB/wFxQSVGDQELIAQgATYC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NgIAIAAgETYCBCAMIAwoAgAoAgARAwBBASEMIAtFDQYgDkEEaygCACIAQXhxIg1BBEEIIABBA3EiABsgC2pJDQggAEEAIA0gC0EnaksbDQkgDhC0AgwGCyAKLQARIQwgC0UNACAOQQRrKAIAIgFBeHEiD0EEQQggAUEDcSIBGyALakkNByABQQAgDyALQSdqSxsNCCAOELQCC0EEIQFBACELQQAQ9wkhEEEAIQ5BBCEPAkAgBEEBcUUNACAKQdABaiAFEMwGIAooAtgBIREgCigC1AEhDyAKKALQASEOIAVBhAhJDQAgBRDNBwtBACEFAkAgBkEBcUUNACAKQdABaiAHEMwGIAooAtgBIQUgCigC1AEhASAKKALQASELIAdBhAhJDQAgBxDNBwtBBCEHQQAhBkEAIQQCQCAIQQFxRQ0AIApB0AFqIAkQzAYgCigC2AEhBCAKKALUASEHIAooAtABIQYgCUGECEkNACAJEM0HCyAKIA06AOwCIAogFDgC6AIgCiAVOALkAiAKIBY4AuACIAogF/0LAtACIApBgICAgHg2AsQCIApCgICAgICAgICAfzcCtAIgCkKAgICAwAA3AqwCIAogBDYCqAIgCiAHNgKkAiAKIAY2AqACIAogBTYCnAIgCiABNgKYAiAKIAs2ApQCIAogETYCkAIgCiAPNgKMAiAKIA42AogCIApBADYCgAIgCkEANgL4ASAKQQA2AvABIApBADYC6AEgCkEANgLgASAKQQA2AtgBIApBADYC0AEgCkGIA2pBADoAAEECIQkgCkHvAmogCkEOai0AADoAACAKQQA2AvgCIAogEDYC/AIgCkIANwLwAiAKQgA3AoADIAogCi8BDDsA7QIgAigCACEEIAIoAgQhBiACKAIIIQECfyAMQQZHBEAgCiAMIApB0AFqEPgDIAooAgQhBSAKKAIADAELIApBlANqIApB1AFqQbgB/AoAAEEAIQlBAAshCEGAgICAeCEHIARBgICAgHhHBEAgAUEASA0CAkAgAUUEQEEBIQcMAQsgARB+IgdFDQQLIAEEQCAHIAYgAfwKAAALIAetIAGtQiCGhCEYIAEhBwsgCkEYaiICIApBlANqQbgB/AoAAEHsARB+IgFFDQIgASAJNgIAIAFBBGogAkG4AfwKAAAgASAMOgDoASABIAU2AuQBIAEgCDYC4AEgAUGAgICAeDYC1AEgASAYNwLMASABIAc2AsgBIAFBADYCxAEgAUKAgICAEDcCvAEgAEGI8cEANgIMIABBATYCCCAAQfDwwQA2AgQgACABNgIAIBJFIANBgwhNcg0DIAMQzQcMAwtBjJvGAEE3IApBzwRqQeT1wABBxJvGABCVBwALQfykyAAQtwgLAAsgBEGAgICAeHJBgICAgHhGDQECQCAGQQRrKAIAIgBBeHEiAUEEQQggAEEDcSIAGyAEak8EQCAAQQAgASAEQSdqSxsNASAGELQCDAMLDAMLDAMLIAhFIAlBhAhJckUEQCAJEM0HCyAGRSAHQYQISXJFBEAgBxDNBwsgBEUgBUGECElyRQRAIAUQzQcLIBJFIANBgwhNckUEQCADEM0HCyACKAIAIgBBgICAgHhyQYCAgIB4RwRAIAIoAgQiAkEEaygCACIDQXhxIgRBBEEIIANBA3EiAxsgAGpJDQIgA0EAIAQgAEEnaksbDQMgAhC0AgsgDCABKAIAIgBBgICAgHhGciAARXINACABKAIEIgFBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIABqSQ0BIAJBACADIABBJ2pLGw0CIAEQtAILIApB0ARqJAAPC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAv3DQEDfyAAIAApAwAgAq18NwMAIAAoAghBf3MhBCACQcAATwRAA0AgAUEzai0AACABQSNqLQAAIAFBE2otAAAgAS0AACAEQf8BcXNBAnRBiI3EAGooAgAgAUEBai0AACAEQQh2Qf8BcXNBAnRBiIXEAGooAgAgAUECai0AACAEQRB2Qf8BcXNBAnRBiP3DAGooAgAgAUEDai0AACAEQRh2c0ECdEGI9cMAaigCACABQQRqLQAAQQJ0QYjtwwBqKAIAIAFBBWotAABBAnRBiOXDAGooAgAgAUEGai0AAEECdEGI3cMAaigCACABQQdqLQAAQQJ0QYjVwwBqKAIAIAFBCGotAABBAnRBiM3DAGooAgAgAUEJai0AAEECdEGIxcMAaigCACABQQpqLQAAQQJ0QYi9wwBqKAIAIAFBC2otAABBAnRBiLXDAGooAgAgAUEMai0AAEECdEGIrcMAaigCACABQQ1qLQAAQQJ0QYilwwBqKAIAIAFBD2otAABBAnRBiJXDAGooAgAgAUEOai0AAEECdEGIncMAaigCAHNzc3Nzc3Nzc3Nzc3NzcyIDQRh2c0ECdEGI9cMAaigCACABQRRqLQAAQQJ0QYjtwwBqKAIAIAFBFWotAABBAnRBiOXDAGooAgAgAUEWai0AAEECdEGI3cMAaigCACABQRdqLQAAQQJ0QYjVwwBqKAIAIAFBGGotAABBAnRBiM3DAGooAgAgAUEZai0AAEECdEGIxcMAaigCACABQRpqLQAAQQJ0QYi9wwBqKAIAIAFBG2otAABBAnRBiLXDAGooAgAgAUEcai0AAEECdEGIrcMAaigCACABQR1qLQAAQQJ0QYilwwBqKAIAIAFBH2otAABBAnRBiJXDAGooAgAgAUEeai0AAEECdEGIncMAaigCAHNzc3Nzc3Nzc3NzcyABQRJqLQAAIANBEHZB/wFxc0ECdEGI/cMAaigCAHMgAUERai0AACADQQh2Qf8BcXNBAnRBiIXEAGooAgBzIAFBEGotAAAgA0H/AXFzQQJ0QYiNxABqKAIAcyIDQRh2c0ECdEGI9cMAaigCACABQSRqLQAAQQJ0QYjtwwBqKAIAIAFBJWotAABBAnRBiOXDAGooAgAgAUEmai0AAEECdEGI3cMAaigCACABQSdqLQAAQQJ0QYjVwwBqKAIAIAFBKGotAABBAnRBiM3DAGooAgAgAUEpai0AAEECdEGIxcMAaigCACABQSpqLQAAQQJ0QYi9wwBqKAIAIAFBK2otAABBAnRBiLXDAGooAgAgAUEsai0AAEECdEGIrcMAaigCACABQS1qLQAAQQJ0QYilwwBqKAIAIAFBL2otAABBAnRBiJXDAGooAgAgAUEuai0AAEECdEGIncMAaigCAHNzc3Nzc3Nzc3NzcyABQSJqLQAAIANBEHZB/wFxc0ECdEGI/cMAaigCAHMgAUEhai0AACADQQh2Qf8BcXNBAnRBiIXEAGooAgBzIAFBIGotAAAgA0H/AXFzQQJ0QYiNxABqKAIAcyIDQRh2c0ECdEGI9cMAaigCACABQTRqLQAAQQJ0QYjtwwBqKAIAIAFBNWotAABBAnRBiOXDAGooAgAgAUE2ai0AAEECdEGI3cMAaigCACABQTdqLQAAQQJ0QYjVwwBqKAIAIAFBOGotAABBAnRBiM3DAGooAgAgAUE5ai0AAEECdEGIxcMAaigCACABQTpqLQAAQQJ0QYi9wwBqKAIAIAFBO2otAABBAnRBiLXDAGooAgAgAUE8ai0AAEECdEGIrcMAaigCACABQT1qLQAAQQJ0QYilwwBqKAIAIAFBPmotAABBAnRBiJ3DAGooAgAgAUE/ai0AAEECdEGIlcMAaigCAHNzc3Nzc3Nzc3NzcyABQTJqLQAAIANBEHZB/wFxc0ECdEGI/cMAaigCAHMgAUExai0AACADQQh2Qf8BcXNBAnRBiIXEAGooAgBzIAFBMGotAAAgA0H/AXFzQQJ0QYiNxABqKAIAcyEEIAFBQGshASACQUBqIgJBP0sNAAsLAkAgAkUNAAJAIAJBA3EiBUUEQCABIQMMAQsgASEDA0AgAy0AACAEc0H/AXFBAnRBiJXDAGooAgAgBEEIdnMhBCADQQFqIQMgBUEBayIFDQALCyACQQRJDQAgASACaiEBA0AgAy0AACAEc0H/AXFBAnRBiJXDAGooAgAgBEEIdnMiAiADQQFqLQAAc0H/AXFBAnRBiJXDAGooAgAgAkEIdnMiAiADQQJqLQAAc0H/AXFBAnRBiJXDAGooAgAgAkEIdnMiAiADQQNqLQAAc0H/AXFBAnRBiJXDAGooAgAgAkEIdnMhBCADQQRqIgMgAUcNAAsLIAAgBEF/czYCCAvSDQMPfwR+AXsjAEEgayIKJAACQAJAIAACfwJAAkACQCAAKAIMIgtBf0cEQCAAKAIEIgggCEEBaiIJQQN2IgJBB2wiDiAIQQhJGyIDQQF2IAtNBEACQAJAAkACQAJ/IAMgCyADIAtLGyIDQQ5PBEAgA0H+////AUsNDUF/IANBA3RBCGpBB25BAWtndkEBagwBC0EEQQhBECADQQdJGyADQQNJGwsiA61CGH4iEUIgiKcNACARpyICIANBCGoiB2oiBSACSSAFQfj///8HS3INACAFEH4iBUUNASACIAVqIQQgBwRAIARB/wEgB/wLAAsgA0EBayIJIANBA3ZBB2wgCUEISRshDCALDQIgACgCACEFDAMLIApBADYCGCAKQQE2AgwgCkG0vcQANgIIIApCBDcCECAKQQhqQby9xAAQyggLAAsgBEEIaiENIAAoAgAiBUEYayEOIAUpAwBCf4VCgIGChIiQoMCAf4MhESABKQMIIRMgASkDACEUQQAhAyALIQEgBSEHA0AgEVAEQANAIANBCGohAyAHQQhqIgcpAwBCgIGChIiQoMCAf4MiEUKAgYKEiJCgwIB/UQ0ACyARQoCBgoSIkKDAgH+FIRELIAQgCSAUIBMgDiAReqdBA3YgA2oiD0FobGoQmwSnIhBxIgJqKQAAQoCBgoSIkKDAgH+DIhJQBEBBCCEGA0AgAiAGaiECIAZBCGohBiAEIAIgCXEiAmopAABCgIGChIiQoMCAf4MiElANAAsLIBFCAX0gEYMhESAEIBJ6p0EDdiACaiAJcSICaiwAAEEATgRAIAQpAwBCgIGChIiQoMCAf4N6p0EDdiECCyACIARqIBBBGXYiBjoAACANIAJBCGsgCXFqIAY6AAAgBCACQX9zQRhsaiICQRBqIAUgD0F/c0EYbGoiBkEQaikAADcAACACIAb9AAAA/QsAACABQQFrIgENAAsLIAAgCTYCBCAAIAQ2AgAgACAMIAtrNgIIIAhFDQYgCCAIQRhsQR9qQXhxIgFqQQlqIgBFDQYgBSABayIBQQRrKAIAIgNBeHEiAkEEQQggA0EDcSIDGyAAakkNAiADQQAgAiAAQSdqSxsNAyABELQCDAYLIAAoAgAhAAJAIAIgCUEHcUEAR2oiBUUNAAJAIAVBAUYEQCAFIQcMAQsgBUEBcSEHIAVB/v///wNxIgRBA3QhBiAEIQIgACEDA0AgAyAD/QADACIV/U1BB/3NAf0MAQEBAQEBAQEBAQEBAQEBAf1OIBX9DH9/f39/f39/f39/f39/f3/9UP3OAf0LAwAgA0EQaiEDIAJBAmsiAg0ACyAEIAVGDQELIAAgBmohAwNAIAMgAykDACIRQn+FQgeIQoGChIiQoMCAAYMgEUL//v379+/fv/8AhHw3AwAgA0EIaiEDIAdBAWsiBw0ACwsgCUEITwRAIAAgCWogACkAADcAAAwECyAJBEAgAEEIaiAAIAn8CgAACyAJDQNBAAwECwwFC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAsgAEEIaiEFIABBGGshDyABKQMIIRIgASkDACETQQEhAkEAIQMDQCADIQcgAiEDAkAgACAHaiIMLQAAQYABRw0AIA8gB0FobGohECAAIAdBf3NBGGxqIQIDQCAIIBMgEiAQEJsEpyINcSIEIQEgACAEaikAAEKAgYKEiJCgwIB/gyIRUARAQQghBgNAIAEgBmohASAGQQhqIQYgACABIAhxIgFqKQAAQoCBgoSIkKDAgH+DIhFQDQALCyAAIBF6p0EDdiABaiAIcSIBaiwAAEEATgRAIAApAwBCgIGChIiQoMCAf4N6p0EDdiEBCyABIARrIAcgBGtzIAhxQQhPBEAgACABaiIELQAAIAQgDUEZdiIEOgAAIAUgAUEIayAIcWogBDoAACAAIAFBf3NBGGxqIQFB/wFGBEAgDEH/AToAACAFIAggB0EIa3FqQf8BOgAAIAFBEGogAkEQaikAADcAACABIAL9AAAA/QsAAAwDCyACKQAAIREgAiABKQAANwAAIAEgETcAACABKQAIIREgASACKQAINwAIIAIgETcACCACKAAQIQQgAiABKAAQNgAQIAEoABQhBiABIAIoABQ2ABQgAiAGNgAUIAEgBDYAEAwBCwsgDCANQRl2IgE6AAAgBSAIIAdBCGtxaiABOgAACyADIAMgCUkiAWohAiABDQALIAggDiAIQQhJGwsgC2s2AggLIApBIGokAA8LIApBADYCGCAKQQE2AgwgCkG0vcQANgIIIApCBDcCECAKQQhqQby9xAAQyggAC4INAgl/B30gA0EITwRAIAAgACADQQN2IgNBBHQiBmogACADQRxsIgdqIAMgBBDNASEAIAEgASAGaiABIAdqIAMgBBDNASEBIAIgAiAGaiACIAdqIAMgBBDNASECC0MAAIA/IQ4CfwJAIAAoAgAiAyAEKAIAQQRqKAIAIgRBCGooAgAiB0kEQCABKAIAIQYgBEEEaigCACIJIANBJGxqIggQ0wQhECAILwEUIgRB//8BcSIMRQRAIARBEHQMAwsgBEH/B3EhAyAEQYCAAnEhBSAEQYD4AXEiCkGA+AFGBEAgBUEQdCEFIAVBgICA/AdyIANFDQMaIAUgA0ENdHJBgICA/gdyDAMLIAVBEHQhBSAKRQ0BIApBDXRBgICA/ABxIANBDXRyQYCAgMADaiAFcgwCCyADIAdB6MjHABC/BwALIAVBgICA2ANyIANnQRBrIgVBF3RrIAMgBUH//wNxQQhqdEH///8DcXILviIPQwAAgD9eBEAgDxD0BUNU+C1AlEMAAIA/kpEhDgtDAACAPyESAn8CQCAGIAdJBEAgCSAGQSRsaiIKENMEIQ8gCi8BFCIGQf//AXEiDUUEQCAGQRB0DAMLIAZB/wdxIQMgBkGAgAJxIQUgBkGA+AFxIgtBgPgBRgRAIAVBEHQhBSAFQYCAgPwHciADRQ0DGiAFIANBDXRyQYCAgP4HcgwDCyAFQRB0IQUgC0UNASALQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogBXIMAgsgBiAHQejIxwAQvwcACyAFQYCAgNgDciADZ0EQayIFQRd0ayADIAVB//8DcUEIanRB////A3FyC74iEUMAAIA/XgRAIBEQ9AVDVPgtQJRDAACAP5KRIRILIAIoAgAhBSAIENMEIRFDAACAPyETAn8gBEEQdCAMRQ0AGiAEQf8HcSEDIARBgIACcSEIIARBgPgBcSIEQYD4AUYEQCAIQRB0IQQgBEGAgID8B3IgA0UNARogBCADQQ10ckGAgID+B3IMAQsgCEEQdCEIIARBDXRBgICA/ABxIANBDXRyQYCAgMADaiAIciAEDQAaIAhBgICA2ANyIANnQRBrIgRBF3RrIAMgBEH//wNxQQhqdEH///8DcXILviIUQwAAgD9eBEAgFBD0BUNU+C1AlEMAAIA/kpEhEwsCfwJAIAUgB0kEQCAQIBCSIA6UIg4gDyAPkiASlGBFIQggDiAOWyELIAkgBUEkbGoiBxDTBCEQIAcvARQiA0H//wFxIgxFBEAgA0EQdAwDCyADQf8HcSEEIANBgIACcSEFIANBgPgBcSIJQYD4AUYEQCAFQRB0IQUgBUGAgID8B3IgBEUNAxogBSAEQQ10ckGAgID+B3IMAwsgBUEQdCEFIAlFDQEgCUENdEGAgID8AHEgBEENdHJBgICAwANqIAVyDAILIAUgB0HoyMcAEL8HAAsgBUGAgIDYA3IgBGdBEGsiBUEXdGsgBCAFQf//A3FBCGp0Qf///wNxcgtDAACAPyEOviIPQwAAgD9eBEAgDxD0BUNU+C1AlEMAAIA/kpEhDgsgCCALcSIFIBEgEZIgE5QiDyAPWyAPIBAgEJIgDpRgRXFGBH8gChDTBCEQQwAAgD8hDwJ/IAZBEHQgDUUNABogBkH/B3EhACAGQYCAAnEhBCAGQYD4AXEiBkGA+AFGBEAgBEEQdCEEIARBgICA/AdyIABFDQEaIAQgAEENdHJBgICA/gdyDAELIARBEHQhBCAGQQ10QYCAgPwAcSAAQQ10ckGAgIDAA2ogBHIgBg0AGiAEQYCAgNgDciAAZ0EQayIEQRd0ayAAIARB//8DcUEIanRB////A3FyC74iDkMAAIA/XgRAIA4Q9AVDVPgtQJRDAACAP5KRIQ8LQwAAgD8hDiACIAEgBSAQIBCSIA+UIhAgEFsgECAHENMEIhIgEpICfyADQRB0IAxFDQAaIANB/wdxIQAgA0GAgAJxIQQgA0GA+AFxIgNBgPgBRgRAIARBEHQhAyADQYCAgPwHciAARQ0BGiADIABBDXRyQYCAgP4HcgwBCyAEQRB0IQQgA0ENdEGAgID8AHEgAEENdHJBgICAwANqIARyIAMNABogBEGAgIDYA3IgAGdBEGsiA0EXdGsgACADQf//A3FBCGp0Qf///wNxcgu+IhFDAACAP14EfSAREPQFQ1T4LUCUQwAAgD+SkQUgDguUYEVxcxsFIAALC9gNAwR7CH8BfgJAAkACQAJAQX8gBC0AvwIiC0EPcXQiCUH/AXFB/wFHBEBB/wEgCUF/cyIPQf8BcW4hDEEBIAt0QZYCcUUgC0EIS3INASAEKALMASENIAQoAtABIAQoAtQBIRBBCCALbkEBdK0gAa1+IhFCIIhQIBGnIANJcQ0CQQAgDUGBgICAeEcbIQogACABaiEOIANBfnEhBAJAIAtBCEcEQCAERQ0GQQggC2shCSANQYGAgIB4RgRAQQAhCkEAIARrIQFBfyEEA0AgBEEASARAIAAgDkYNBCAALQAAIQogCSEEIABBAWohAAsgAkEBakH/AToAACACIAogBEEHcXYgD3EgDGw6AAAgBCALayEEIAJBAmohAiABQQJqIgENAAsMBwsgEARAQQAgA0F+cWshAUEAIQNBfyEEA0AgBEEASARAIAAgDkYNBCAALQAAIQMgCSEEIABBAWohAAsgAiADQf8BcSAEQQdxdiAPcSINIAxsOgAAIAJBAWpBf0EAIA0gCi0AAEcbOgAAIAQgC2shBCACQQJqIQIgAUECaiIBDQALDAcLIAFFDQFBAEEAQYy2xQAQvwcACyABRQ0FIA1BgYCAgHhGBEAgA0EBdiIDIAFBAWsiASABIANLGyIBQRBJIAAgAiABQQF0akECakkgACABakEBaiACS3FyRQRAIAAgAUEBaiIBIAFBD3EiAUEQIAEbayIJaiAEIAlBAXQiA2shBCACIANqIAz9DyEGA0AgAkEfakH/AToAACACQR1qQf8BOgAAIAJBG2pB/wE6AAAgAkEZakH/AToAACACQRdqQf8BOgAAIAJBFWpB/wE6AAAgAkETakH/AToAACACQRFqQf8BOgAAIAJBD2pB/wE6AAAgAkENakH/AToAACACQQtqQf8BOgAAIAJBCWpB/wE6AAAgAkEHakH/AToAACACQQVqQf8BOgAAIAJBA2pB/wE6AAAgAkEBakH/AToAACACQR5qIAD9AAAAIgX9Fg8gBv0WD2w6AAAgAkEcaiAF/RYOIAb9Fg5sOgAAIAJBGmogBf0WDSAG/RYNbDoAACACQRhqIAX9FgwgBv0WDGw6AAAgAkEWaiAF/RYLIAb9FgtsOgAAIAJBFGogBf0WCiAG/RYKbDoAACACQRJqIAX9FgkgBv0WCWw6AAAgAkEQaiAF/RYIIAb9FghsOgAAIAJBDmogBf0WByAG/RYHbDoAACACQQxqIAX9FgYgBv0WBmw6AAAgAkEKaiAF/RYFIAb9FgVsOgAAIAJBCGogBf0WBCAG/RYEbDoAACACQQZqIAX9FgMgBv0WA2w6AAAgAkEEaiAF/RYCIAb9FgJsOgAAIAJBAmogBf0WASAG/RYBbDoAACACIAX9FgAgBv0WAGw6AAAgAEEQaiEAIAJBIGohAiAJQRBrIgkNAAshAiEACwNAIARFDQcgAkEBakH/AToAACACIAAtAAAgDGw6AAAgBEECayEEIAJBAmohAiAOIABBAWoiAEcNAAsMBgsgEARAIANBAXYiAyABQQFrIgEgASADSxsiAUEPTQ0FIAIgACABakEBakkgACACIAFBAXRqQQJqIgNJcSACIApBAWpJIAMgCktxcg0FIAAgAUEBaiIBIAFBD3EiAUEQIAEbayIJaiAEIAlBAXQiA2shBCACIANqIQMgCv0HAAAhByAM/Q8hBgNAIAJBEGogAP0AAAAiBf0WACAG/RYAbP0PIAX9FgEgBv0WAWz9FwEgBf0WAiAG/RYCbP0XAiAF/RYDIAb9FgNs/RcDIAX9FgQgBv0WBGz9FwQgBf0WBSAG/RYFbP0XBSAF/RYGIAb9FgZs/RcGIAX9FgcgBv0WB2z9FwcgBf0WCCAG/RYIbP0XCCAF/RYJIAb9Fgls/RcJIAX9FgogBv0WCmz9FwogBf0WCyAG/RYLbP0XCyAF/RYMIAb9Fgxs/RcMIAX9Fg0gBv0WDWz9Fw0gBf0WDiAG/RYObP0XDiAF/RYPIAb9Fg9s/RcPIgggBSAH/SQiBf0NCBgJGQoaCxsMHA0dDh4PH/0LAAAgAiAIIAX9DQAQARECEgMTBBQFFQYWBxf9CwAAIABBEGohACACQSBqIQIgCUEQayIJDQALIQAgAyECDAULIARFDQVBAEEAQYy2xQAQvwcAC0H0tMUAQSJBmLXFABDeBwALQfy1xQAQuQgAC0GotcUAQTRB3LXFABCiCAALQfyzxQBB5QBB5LTFABCiCAALA0AgBEUNASACIAAtAAAiASAMbDoAACACQQFqQX9BACABIAotAABHGzoAACAEQQJrIQQgAkECaiECIABBAWoiACAORw0ACwsLvgwCBn8EfiMAQcABayIEJAACQAJAAkAgACkDAEICUQ0AIAAoAqgBIQEgAEEANgKoAQJAAkACQAJAIAFBAWsOAgECAAsgBEEIaiECAkACQEElEH4iAUUNACABQR1qQdWkxwApAAA3AAAgAUEQakHIpMcA/QAAAP0LAAAgAUG4pMcA/QAAAP0LAABBDBB+IgNFDQAgA0ElNgIIIAMgATYCBCADQSU2AgBBDBB+IgFFDQAgAUEoOgAIIAFB8KTHADYCBCABIAM2AgAgAkEANgIQIAIgAa1CIIZCA4Q3AwAMAQsACwwCCyAEQRhqIABBwAFqKQMANwMAIAQgAP0AA7AB/QsDCAwBCyAAKAKsASIBQUBrIQIgASgCJCEDIAEoAiAhBQJAIAEpAxgiB0ICUgRAIAEpAzghCCAEQTBqIAFBEGopAwA3AwAgBEHoAGogAkEIav0AAwD9CwMAIARBqAFqIAFBiAFq/QADAP0LAwAgBEGYAWogAUH4AGr9AAMA/QsDACAEQbgBaiABQZgBaikDADcDACAEIAH9AAMA/QsDICAEIAH9AAMo/QsDSCAEIAIpAwA3A2AgBCAB/QADWP0LA3ggBCAB/QADaP0LA4gBIARBGGogBEHQAGopAwA3AwAgBCADNgJEIAQgBTYCQCAEIAc3AzggBCAINwNYIAQgBP0AA0D9CwMIIAQoAiQhAyAEKAIgIQUgBEH4AGoQrQUMAQsgBEEYaiACQRBqKQMANwMAIAQgAv0AAwD9CwMICyADBEAgBUEEaygCACICQXhxIgZBBEEIIAJBA3EiAhsgA2pJDQMgAkEAIAYgA0EnaksbDQQgBRC0AgsgAUEEaygCACIDQXhxQbwBQcABIANBA3EiAhtJDQIgAkEAIANB4AFPGw0DIAEQtAILAkAgBCgCGCIBBEAgBCkDECIIUA0BIAEpAwghByABKAIEIgOtIQkDQAJAIAcgAyAHIAkgByAJVBunIgJrIgVCgMAAIAggCEKAwABaG6ciBiAFIAZJG60iCnwhByACIANGDQAgCCAKfSIIQgBSDQELCyABIAc3AwgMAQsgBC0ACEEDRw0AIAQoAgwiASgCACEDIAFBBGooAgAiAigCACIFBEAgAyAFEQMACyACKAIEIgIEQCADQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyACakkNAyAFQQAgBiACQSdqSxsNBCADELQCCyABQQRrKAIAIgNBeHEiAkEQQRQgA0EDcSIDG0kNAiADQQAgAkE0TxsNAyABELQCCyAAKAIsIgEEQCAAKAIoIgNBBGsoAgAiAkF4cSIFQQRBCCACQQNxIgIbIAFqSQ0CIAJBACAFIAFBJ2pLGw0DIAMQtAILIAAoAjQiAQRAIAAoAjAiA0EEaygCACICQXhxIgVBBEEIIAJBA3EiAhsgAWpJDQIgAkEAIAUgAUEnaksbDQMgAxC0AgsCQCAAKAKMASIBRQ0AIAEgASgCACIBQQFrNgIAIAFBAUcNACAAKAKMARCGBgsCQCAAKAKQASIBRQ0AIAEgASgCACIBQQFrNgIAIAFBAUcNACAAKAKQARCGBgsgACgCPCIBBEAgACgCOCIDQQRrKAIAIgJBeHEiBUEEQQggAkEDcSICGyABakkNAiACQQAgBSABQSdqSxsNAyADELQCCyAAKAJ4IgFFDQAgACgCfCIDQQRrKAIAIgJBeHEiBSABQQV0IgFBBEEIIAJBA3EiAhtySQ0BIAJBACAFIAFBJ2pLGw0CIAMQtAILIAAoAqgBQQJPBEACQCAAKAKsASIAKQMYQgJRBEAgACgCJCIBRQ0BIAAoAiAiA0EEaygCACICQXhxIgVBBEEIIAJBA3EiAhsgAWpJDQMgAkEAIAUgAUEnaksbDQQgAxC0AgwBCyAAKAIEIgEEQCAAKAIAIgNBBGsoAgAiAkF4cSIFQQRBCCACQQNxIgIbIAFqSQ0DIAJBACAFIAFBJ2pLGw0EIAMQtAILIABB2ABqEK0FCyAAQQRrKAIAIgFBeHFBvAFBwAEgAUEDcSIDG0kNASADQQAgAUHgAU8bDQIgABC0AgsgBEHAAWokAA8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC7kOAwV/An0BfiMAQSBrIgIkAAJAIAEoAgAiBEH8vMQAQQQgASgCBCIDKAIMIgURAAAEQEEBIQMMAQsCQAJAAkAgASgCCCIGQYCAgARxRQRAQQEhAyAEQfm6xQBBASAFEQAADQQgBkGAgIABcSEFIAAqAgAhByAGQYCAgIABcQ0BIABBBGohBCAHiyIIQ8obDlpgIAdDAAAAAFwgCEMXt9E4XXFyRQRAIAEgByAFQQBHQQEQlwNFDQMMBQsgASAHIAVBAEcQ5gJFDQIMBAsgBEGMocIAQQIgBREAAARAQQEhAwwECyACQQE6AA8gAiADNgIEIAIgBDYCACACQeSgwgA2AhQgAiABKQIIIgk3AhggCaciBEGAgIABcSEDIAIgAkEPajYCCCACIAI2AhAgACoCACEHAkACQCAEQYCAgIABcUUEQCAHiyIIQ8obDlpgIAdDAAAAAFwgCEMXt9E4XXFyDQEgAkEQaiAHIANBAEdBARCXAw0FDAILIAJBEGogByADQQBHIAlCMIinENMCRQ0BDAQLIAJBEGogByADQQBHEOYCDQMLIAIoAhBBg6HCAEECIAIoAhQoAgwRAAAEQEEBIQMMBAsgAEEEaiEEDAELIAEgByAFQQBHIAEvAQ4Q0wINAiAAQQRqIQQLAkACQAJAAkACQCABKAIIIgNBgICABHFFBEAgASgCAEHDmsYAQQIgASgCBCgCDBEAAARAQQEhAwwICyADQYCAgAFxIQUgBCoCACEHIANBgICAgAFxDQEgAEEIaiEEIAeLIghDyhsOWmAgB0MAAAAAXCAIQxe30ThdcXJFBEBBASEDIAEgByAFQQBHQQEQlwNFDQUMCAsgASAHIAVBAEcQ5gJFDQRBASEDDAcLIAEpAgAhCSACQQE6AA8gAiAJNwIAIAJB5KDCADYCFCACIAEpAggiCTcCGCAJpyIFQYCAgAFxIQMgAiACQQ9qNgIIIAIgAjYCECAEKgIAIQcgBUGAgICAAXFFDQEgAkEQaiAHIANBAEcgCUIwiKcQ0wJFDQIMBAsgASAHIAVBAEcgAS8BDhDTAgRAQQEhAwwGCyAAQQhqIQQMAgsgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQCACQRBqIAcgA0EAR0EBEJcDDQMMAQsgAkEQaiAHIANBAEcQ5gINAgsgAigCEEGDocIAQQIgAigCFCgCDBEAAEUEQCAAQQhqIQQMAQtBASEDDAMLAkACQAJAAkACQCABKAIIIgNBgICABHFFBEAgASgCAEHDmsYAQQIgASgCBCgCDBEAAARAQQEhAwwJCyADQYCAgAFxIQUgBCoCACEHIANBgICAgAFxDQEgAEEMaiEEIAeLIghDyhsOWmAgB0MAAAAAXCAIQxe30ThdcXJFBEBBASEDIAEgByAFQQBHQQEQlwNFDQUMCQsgASAHIAVBAEcQ5gJFDQRBASEDDAgLIAEpAgAhCSACQQE6AA8gAiAJNwIAIAJB5KDCADYCFCACIAEpAggiCTcCGCAJpyIFQYCAgAFxIQMgAiACQQ9qNgIIIAIgAjYCECAEKgIAIQcgBUGAgICAAXFFDQEgAkEQaiAHIANBAEcgCUIwiKcQ0wJFDQIMBAsgASAHIAVBAEcgAS8BDhDTAgRAQQEhAwwHCyAAQQxqIQQMAgsgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQCACQRBqIAcgA0EAR0EBEJcDDQMMAQsgAkEQaiAHIANBAEcQ5gINAgsgAigCEEGDocIAQQIgAigCFCgCDBEAAEUEQCAAQQxqIQQMAQtBASEDDAQLAkACQAJAAkACQCABKAIIIgNBgICABHFFBEAgASgCAEHDmsYAQQIgASgCBCgCDBEAAARAQQEhAwwKCyADQYCAgAFxIQAgBCoCACEHIANBgICAgAFxDQEgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQEEBIQMgASAHIABBAEdBARCXA0UNBQwKC0EBIQMgASAHIABBAEcQ5gJFDQQMCQsgASkCACEJIAJBAToADyACIAk3AgAgAkHkoMIANgIUIAIgASkCCCIJNwIYIAmnIgNBgICAAXEhACACIAJBD2o2AgggAiACNgIQIAQqAgAhByADQYCAgIABcUUNASACQRBqIAcgAEEARyAJQjCIpxDTAkUNAgwEC0EBIQMgASAHIABBAEcgAS8BDhDTAg0HDAILIAeLIghDyhsOWmAgB0MAAAAAXCAIQxe30ThdcXJFBEAgAkEQaiAHIABBAEdBARCXAw0DDAELIAJBEGogByAAQQBHEOYCDQILIAIoAhBBg6HCAEECIAIoAhQoAgwRAABFDQBBASEDDAULIAEoAgBBpqHIAEEBIAEoAgQoAgwRAAAhAwwEC0EBIQMMAwtBASEDDAILQQEhAwwBC0EBIQMLIAJBIGokACADC+gOAgt/AX4jAEEgayIDJABBgICAgHghBwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgRBgICAgHhzIARBAE4bQRRrDgIBAgALIAEgA0EUakGg3sAAENkIIQEgAEGAgICAeDYCACAAIAE2AgQMCgsgASgCDCIFRQ0BAkAgASgCCCIBKAIAQZSAgIB4RgRAAkAgASgCDCICBEAgA0EEaiABKAIIEM4DIAMoAgQiBEGAgICAeEcNASADKAIIIQEMDAtBACADQRRqQcDcwAAQjwchAQwLCyADKAIIIQggAkEBRg0BIANBATYCBCACQQFrQf////8AcUEBaiADQQRqQfj3wAAQjwchASAERQ0KIAggBEEBENYHDAoLIAEgA0EUakHA3MAAENkIIQEMCQsCQAJ/IAVBAUcEQCADKAIMIQYgA0EEaiIHIAFBEGoQ8wMgAygCCCIBIAMoAgQiAkGAgICAeEYNARogBUECRg0CIANBAjYCBCAFQf7///8AakH/////AHFBAmogB0H498AAEI8HIQUgAEGAgICAeDYCACAAIAU2AgQgBARAIAggBEEBENYHCyACRQ0MIAEgAkECdEEEENYHDAwLQQFB3OTAAEGAiMgAEI8HCyEBIARFDQkgCEEEaygCACIFQXhxIgJBBEEIIAVBA3EiBRsgBGpJDQwgBUEAIAIgBEEnaksbDQsgCBC0AgwJCyAAIAMoAgw2AhQgACABNgIQIAAgAjYCDCAAIAY2AgggACAINgIEIAAgBDYCAAwJCyABKAIIIQQgASgCBCEBIANCADcCDCADIAE2AgQgAyABIARBBXRqIgk2AgggBEUNAkGAgICAeCEGA0AgAyABQSBqIgQ2AgQgAyADKAIQQQFqNgIQIAMgAUEQaiIKNgIMAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgJBgICAgHhzIAJBAE4bQQFrDg8ACQkBCQkJCQkJCQIDBAUJCyABLQAEIgFFDQlBAUECIAFBAUYbIQEMCgsgASkDCCINUA0IQQFBAiANQgFRGyEBDAkLIAEoAgghAiABKAIMQQVrDgQFCgoECgsgASgCBCECAkAgASgCCEEFaw4EAwoKAAoLIAIpAABC496Rq6bs27frAFENCAwJCyABKAIIIQICQAJAIAEoAgxBBWsOBAAKCgEKCyACLQAAQeYARw0JIAItAAFB6QBHDQkgAi0AAkHsAEcNCSACLQADQeUARw0JIAItAARB8wBHDQkMBgsgAi0AAEHjAEcNCCACLQABQe8ARw0IIAItAAJB5ABHDQggAi0AA0HlAEcNCCACLQAEQeIARw0IIAItAAVB7wBHDQggAi0ABkHvAEcNCCACLQAHQesARg0HDAgLIAEoAgQhAgJAAkAgASgCCEEFaw4EAAkJAQkLIAItAABB5gBHDQggAi0AAUHpAEcNCCACLQACQewARw0IIAItAANB5QBHDQggAi0ABEHzAEcNCAwFCyACLQAAQeMARw0HIAItAAFB7wBHDQcgAi0AAkHkAEcNByACLQADQeUARw0HIAItAARB4gBHDQcgAi0ABUHvAEcNByACLQAGQe8ARw0HIAItAAdB6wBGDQYMBwsgAkGA4cAAQQUQkAgNBgwDCyACKQAAQuPekaum7Nu36wBRDQQMBQsgAkGA4cAAQQUQkAgNBAwBCyABIANBFGpB4N7AABDZCCEEDAoLIAZBgICAgHhHBEBBgOHAAEEFENEHIQQMCgsgA0EUaiADQQRqEN4FIAMoAhghBCADKAIUIgZBgICAgHhGBEBBgICAgHghBgwKCyADKAIcIQsgAygCCCEJIAQhCCADKAIEDAQLIAFBAkYNAQsgB0GAgICAeEYNAUGI4sAAQQgQ0QchBCAHRQ0JDAgLIANBADYCDCAEDAELIANBADYCDCADQRRqIAoQ8wMgAygCGCEFIAMoAhQiB0GAgICAeEYEQCAFIQQMCAsgAygCHCEMIAQLIgEgCUcNAAsMAQtBAEHc5MAAQYCIyAAQjwchAQwGCyAGQYCAgIB4Rg0AIAdBgICAgHhGBEBBiOLAAEEIEM8HIQQgBkUNBSAIIAZBARDWBwwFCyAAIAw2AhQgACAFNgIQIAAgBzYCDCAAIAs2AgggACAINgIEIAAgBjYCAAwGC0GAgICAeCEGQYDhwABBBRDPByEECyAHQYCAgIB4ckGAgICAeEYNAQsgBUEEaygCACIBQXhxIgIgB0ECdCIHQQRBCCABQQNxIgEbakkNBSABQQAgAiAHQSdqSxsNBCAFELQCCyAGQYCAgIB4ckGAgICAeEYNACAIQQRrKAIAIgFBeHEiBUEEQQggAUEDcSIBGyAGakkNBCABQQAgBSAGQSdqSxsNAyAIELQCCyAAIAQ2AgQgAEGAgICAeDYCAAwBCyAAIAE2AgQgAEGAgICAeDYCAAsgA0EgaiQADwtBoIzIAEEuQdCMyAAQoggAC0Hgi8gAQS5BkIzIABCiCAAL6A4CC38BfiMAQSBrIgMkAEGAgICAeCEHAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiBEGAgICAeHMgBEEAThtBFGsOAgECAAsgASADQRRqQeDdwAAQ2QghASAAQYCAgIB4NgIAIAAgATYCBAwKCyABKAIMIgVFDQECQCABKAIIIgEoAgBBlICAgHhGBEACQCABKAIMIgIEQCADQQRqIAEoAggQzgMgAygCBCIEQYCAgIB4Rw0BIAMoAgghAQwMC0EAIANBFGpBwNzAABCPByEBDAsLIAMoAgghCCACQQFGDQEgA0EBNgIEIAJBAWtB/////wBxQQFqIANBBGpB+PfAABCPByEBIARFDQogCCAEQQEQ1gcMCgsgASADQRRqQcDcwAAQ2QghAQwJCwJAAn8gBUEBRwRAIAMoAgwhBiADQQRqIgcgAUEQahDzAyADKAIIIgEgAygCBCICQYCAgIB4Rg0BGiAFQQJGDQIgA0ECNgIEIAVB/v///wBqQf////8AcUECaiAHQfj3wAAQjwchBSAAQYCAgIB4NgIAIAAgBTYCBCAEBEAgCCAEQQEQ1gcLIAJFDQwgASACQQJ0QQQQ1gcMDAtBAUGs4sAAQYCIyAAQjwcLIQEgBEUNCSAIQQRrKAIAIgVBeHEiAkEEQQggBUEDcSIFGyAEakkNDCAFQQAgAiAEQSdqSxsNCyAIELQCDAkLIAAgAygCDDYCFCAAIAE2AhAgACACNgIMIAAgBjYCCCAAIAg2AgQgACAENgIADAkLIAEoAgghBCABKAIEIQEgA0IANwIMIAMgATYCBCADIAEgBEEFdGoiCTYCCCAERQ0CQYCAgIB4IQYDQCADIAFBIGoiBDYCBCADIAMoAhBBAWo2AhAgAyABQRBqIgo2AgwCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiAkGAgICAeHMgAkEAThtBAWsODwAJCQEJCQkJCQkJAgMEBQkLIAEtAAQiAUUNCUEBQQIgAUEBRhshAQwKCyABKQMIIg1QDQhBAUECIA1CAVEbIQEMCQsgASgCCCECIAEoAgxBBWsOBAUKCgQKCyABKAIEIQICQCABKAIIQQVrDgQDCgoACgsgAikAAELj3pGrpuzbt+sAUQ0IDAkLIAEoAgghAgJAAkAgASgCDEEFaw4EAAoKAQoLIAItAABB5gBHDQkgAi0AAUHpAEcNCSACLQACQewARw0JIAItAANB5QBHDQkgAi0ABEHzAEcNCQwGCyACLQAAQeMARw0IIAItAAFB7wBHDQggAi0AAkHkAEcNCCACLQADQeUARw0IIAItAARB4gBHDQggAi0ABUHvAEcNCCACLQAGQe8ARw0IIAItAAdB6wBGDQcMCAsgASgCBCECAkACQCABKAIIQQVrDgQACQkBCQsgAi0AAEHmAEcNCCACLQABQekARw0IIAItAAJB7ABHDQggAi0AA0HlAEcNCCACLQAEQfMARw0IDAULIAItAABB4wBHDQcgAi0AAUHvAEcNByACLQACQeQARw0HIAItAANB5QBHDQcgAi0ABEHiAEcNByACLQAFQe8ARw0HIAItAAZB7wBHDQcgAi0AB0HrAEYNBgwHCyACQYDhwABBBRCQCA0GDAMLIAIpAABC496Rq6bs27frAFENBAwFCyACQYDhwABBBRCQCA0EDAELIAEgA0EUakGA38AAENkIIQQMCgsgBkGAgICAeEcEQEGA4cAAQQUQ0QchBAwKCyADQRRqIANBBGoQ3gUgAygCGCEEIAMoAhQiBkGAgICAeEYEQEGAgICAeCEGDAoLIAMoAhwhCyADKAIIIQkgBCEIIAMoAgQMBAsgAUECRg0BCyAHQYCAgIB4Rg0BQYjiwABBCBDRByEEIAdFDQkMCAsgA0EANgIMIAQMAQsgA0EANgIMIANBFGogChDzAyADKAIYIQUgAygCFCIHQYCAgIB4RgRAIAUhBAwICyADKAIcIQwgBAsiASAJRw0ACwwBC0EAQaziwABBgIjIABCPByEBDAYLIAZBgICAgHhGDQAgB0GAgICAeEYEQEGI4sAAQQgQzwchBCAGRQ0FIAggBkEBENYHDAULIAAgDDYCFCAAIAU2AhAgACAHNgIMIAAgCzYCCCAAIAg2AgQgACAGNgIADAYLQYCAgIB4IQZBgOHAAEEFEM8HIQQLIAdBgICAgHhyQYCAgIB4Rg0BCyAFQQRrKAIAIgFBeHEiAiAHQQJ0IgdBBEEIIAFBA3EiARtqSQ0FIAFBACACIAdBJ2pLGw0EIAUQtAILIAZBgICAgHhyQYCAgIB4Rg0AIAhBBGsoAgAiAUF4cSIFQQRBCCABQQNxIgEbIAZqSQ0EIAFBACAFIAZBJ2pLGw0DIAgQtAILIAAgBDYCBCAAQYCAgIB4NgIADAELIAAgATYCBCAAQYCAgIB4NgIACyADQSBqJAAPC0GgjMgAQS5B0IzIABCiCAALQeCLyABBLkGQjMgAEKIIAAuZDgICfQN/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAkUgACgCXEECSXJFBEBDAAD+QkMAAP5CIAAqAlCVIAAtAFhBAkYbIQYgACgCKCABQQ9saiEJIAAoAiwhCEEAIQADQCABIAhPDRAgACAETw0RIAAgCWoiB0H/AEMAAP5CQwAA/sIgBiADKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQ7gciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEBaiAETw0PIAdBAWpB/wBDAAD+QkMAAP7CIAYgA0EEaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bEO4HIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBAmogBE8NDiAHQQJqQf8AQwAA/kJDAAD+wiAGIANBCGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxDuByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQNqIARPDQ0gB0EDakH/AEMAAP5CQwAA/sIgBiADQQxqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQ7gciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEEaiAETw0MIAdBBGpB/wBDAAD+QkMAAP7CIAYgA0EQaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bEO4HIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBBWogBE8NCyAHQQVqQf8AQwAA/kJDAAD+wiAGIANBFGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxDuByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQZqIARPDQogB0EGakH/AEMAAP5CQwAA/sIgBiADQRhqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQ7gciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEHaiAETw0JIAdBB2pB/wBDAAD+QkMAAP7CIAYgA0EcaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bEO4HIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBCGogBE8NCCAHQQhqQf8AQwAA/kJDAAD+wiAGIANBIGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxDuByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQlqIARPDQcgB0EJakH/AEMAAP5CQwAA/sIgBiADQSRqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQ7gciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEKaiAETw0GIAdBCmpB/wBDAAD+QkMAAP7CIAYgA0EoaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bEO4HIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBC2ogBE8NBSAHQQtqQf8AQwAA/kJDAAD+wiAGIANBLGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxDuByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQxqIARPDQQgB0EMakH/AEMAAP5CQwAA/sIgBiADQTBqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQ7gciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEENaiAETw0DIAdBDWpB/wBDAAD+QkMAAP7CIAYgA0E0aioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bEO4HIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBDmogBE8NAiAHQQ5qQf8AQwAA/kJDAAD+wiAGIANBOGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxDuByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACADQTxqIQMgAEEPaiEAIAFBAWohASACQQFrIgINAAsLDwsgAEEOaiEADA4LIABBDWohAAwNCyAAQQxqIQAMDAsgAEELaiEADAsLIABBCmohAAwKCyAAQQlqIQAMCQsgAEEIaiEADAgLIABBB2ohAAwHCyAAQQZqIQAMBgsgAEEFaiEADAULIABBBGohAAwECyAAQQNqIQAMAwsgAEECaiEADAILIABBAWohAAwBCyAAIARPDQAgASAIQfTYxwAQvwcACyAAIARB5NjHABC/BwAL2A0CBH8BfiMAQTBrIgIkAAJ/AkACQAJAAkACQAJAAkAgACgCAEEBaw4FAQIDBAUACyAAQQRqIQMgASgCBCEEIAEoAgAhASAAKAIUBEAgAiAAQRRqNgIEIAJBAjYCDCACQeTTxAA2AgggAkICNwIUIAIgAkEEaq1CgICAgJAHhDcDKCACIAOtQoCAgICgB4Q3AyAgAiACQSBqNgIQIAEgBCACQQhqEOQDDAcLIAMtAABBA0YEQCABQbjTxABBDCAEKAIMEQAADAcLIAJBATYCDCACQdzTxAA2AgggAkIBNwIUIAIgA61CgICAgKAHhDcDICACIAJBIGo2AhAgASAEIAJBCGoQ5AMMBgsgAEEEaiEDIAAoAhQEQCACIABBFGo2AgQgAkECNgIMIAJBqNPEADYCCCACQgI3AhQgAiACQQRqrUKAgICAkAeENwMoIAIgA61CgICAgKAHhDcDICACIAJBIGo2AhAgASgCACABKAIEIAJBCGoQ5AMMBgsgAkEBNgIMIAJBoNPEADYCCCACQgE3AhQgAiADrUKAgICAoAeENwMgIAIgAkEgajYCECABKAIAIAEoAgQgAkEIahDkAwwFCyABKAIEIQMgASgCACEEAkACQAJAAkACQAJAAkBBAyAAKAIEIgFBgICAgHhzIAFBAE4bQQFrDgUBAgUDBAALIARBxNDEAEE4IAMoAgwRAABFDQVBAQwKCyAEQfzQxABBwQAgAygCDBEAAEUNBEEBDAkLIAIgAEEIajYCBCACQQI2AgwgAkHo0cQANgIIIAJCATcCFCACIAJBBGqtQoCAgICwB4Q3AyAgAiACQSBqNgIQIAQgAyACQQhqEOQDRQ0DQQEMCAsgBEGc0sQAQSUgAygCDBEAAEUNAkEBDAcLIAIgAEEIajYCACACIABBDGo2AgQgAkECNgIMIAJB8NLEADYCCCACQgI3AhQgAkKAgICAsAciBiACrYQ3AyggAiAGIAJBBGqthDcDICACIAJBIGo2AhAgBCADIAJBCGoQ5ANFDQFBAQwGCyACIABBBGo2AgQgAkEBNgIMIAJBlNLEADYCCCACQgE3AhQgAiACQQRqrUKAgICAwAeENwMgIAIgAkEgajYCEEEBIAQgAyACQQhqEOQDDQUaC0EAIAAoAhBFDQQaIAIgAEEQajYCBCACQQE2AgwgAkGA08QANgIIIAJCATcCFCACIAJBBGqtQoCAgICQB4Q3AyAgAiACQSBqNgIQIAQgAyACQQhqEOQDDAQLIAEoAgAhAyABKAIEKAIMIQECQAJAAkBBAiAAKQMIIganQQJrIAZCAVgbQQFrDgIBAgALIANB9NPEAEEYIAERAAAMBQsgA0H0gMUAQRUgAREAAAwECyADQYzUxABBzwAgAREAAAwDCyAAQQRqIQQgASgCBCEDIAEoAgAhAQJAAkACQAJAAkBBAyAALQAUIgVBBGsgBUEDTRtB/wFxQQFrDgQBAgMEAAsgAiAAQRVqNgIEIAJBAzYCDCACQezMxAA2AgggAkICNwIUIAIgAkEEaq1CgICAgNAHhDcDKCACIAStQoCAgICgB4Q3AyAgAiACQSBqNgIQIAEgAyACQQhqEOQDDAYLIAIgAEEVajYCBCACQQI2AgwgAkHAzcQANgIIIAJCATcCFCACIAJBBGqtQoCAgIDQB4Q3AyAgAiACQSBqNgIQIAEgAyACQQhqEOQDDAULIAIgAEEVajYCBCACQQI2AgwgAkGczsQANgIIIAJCATcCFCACIAJBBGqtQoCAgICwB4Q3AyAgAiACQSBqNgIQIAEgAyACQQhqEOQDDAQLIABBFGohAAJAAkACQCAFQQJrDgIBAgALIAIgADYCBCACQQI2AgwgAkG0z8QANgIIIAJCATcCFCACIAJBBGqtQoCAgIDgB4Q3AyAgAiACQSBqNgIQIAEgAyACQQhqEOQDDAULIAIgADYCBCACQQI2AgwgAkHozsQANgIIIAJCATcCFCACIAJBBGqtQoCAgIDgB4Q3AyAgAiACQSBqNgIQIAEgAyACQQhqEOQDDAQLIAFB+M7EAEEoIAMoAgwRAAAMAwsgAiAAQRhqNgIAIAAtAARBA0YNASACIAQ2AgQgAkECNgIMIAJBtNDEADYCCCACQgI3AhQgAiACrUKAgICAwAeENwMoIAIgAkEEaq1CgICAgOAHhDcDICACIAJBIGo2AhAgASADIAJBCGoQ5AMMAgsgAEEEaiABEMoEDAELIAJBATYCDCACQfTPxAA2AgggAkIBNwIUIAIgAq1CgICAgMAHhDcDICACIAJBIGo2AhAgASADIAJBCGoQ5AMLIAJBMGokAAvZDAILfwV9QwAAgD8hDwJ/AkAgASgCACIIIAJBBGooAgAiBSgCCCIHSQRAIAFBBGsiCygCACEBIAUoAgQiCSAIQRhsaiIDLQATIgQgAy0AEiIGIAMtABEiCiAGIApLGyIGIAQgBksbIgQEfUMAAEDBIAUqAkQgBS0AWEECRiIGGyIOQwAAEEEgBSoCSCAGGyAOk0MAAH5DlSAEQQFrQf8BcbOUkhCmBCIOIA6SBUMAAAAACyERIANBDGovAQAiBEH//wFxRQRAIARBEHQMAwsgBEH/B3EhAyAEQYCAAnEhBiAEQYD4AXEiBEGA+AFGBEAgBkEQdCIEQYCAgPwHciADRQ0DGiAEIANBDXRyQYCAgP4HcgwDCyAGQRB0IQYgBEUNASAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogBnIMAgsgCCAHQbTUxwAQvwcACyADIANnQRBrIgNB//8DcUEIanRB////A3EgBkGAgIDYA3IgA0EXdGtyC74iDkMAAIA/XgRAIA4Q9AVDVPgtQJRDAACAP5KRIQ8LQwAAgD8hDgJ/AkAgASAHSQRAIAkgAUEYbGoiAy0AEyIEIAMtABIiByADLQARIgYgBiAHSRsiByAEIAdLGyIEBH1DAABAwSAFKgJEIAUtAFhBAkYiBxsiEEMAABBBIAUqAkggBxsgEJNDAAB+Q5UgBEEBa0H/AXGzlJIQpgQiECAQkgVDAAAAAAshECADQQxqLwEAIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQUgA0GAgAJxIQQgA0GA+AFxIgNBgPgBRgRAIARBEHQiA0GAgID8B3IgBUUNAxogAyAFQQ10ckGAgID+B3IMAwsgBEEQdCEEIANFDQEgA0ENdEGAgID8AHEgBUENdHJBgICAwANqIARyDAILIAEgB0G01McAEL8HAAsgBSAFZ0EQayIFQf//A3FBCGp0Qf///wNxIARBgICA2ANyIAVBF3Rrcgu+IhJDAACAP14EQCASEPQFQ1T4LUCUQwAAgD+SkSEOCyARIA+UIg8gD1wgDyAQIA6UYHJFBEAgAkEEaiEJIAhBGGwhCgNAAkAgCyICQQRqIAE2AgAgACACRg0AQwAAgD8hDwJ/AkAgCSgCACIFKAIIIgcgCEsEQCACQQRrIgsoAgAhASAFKAIEIgwgCmoiAy0AEyIEIAMtABIiBiADLQARIg0gBiANSxsiBiAEIAZLGyIEBH1DAABAwSAFKgJEIAUtAFhBAkYiBhsiDkMAABBBIAUqAkggBhsgDpNDAAB+Q5UgBEEBa0H/AXGzlJIQpgQiDiAOkgVDAAAAAAshESADQQxqLwEAIgRB//8BcUUEQCAEQRB0DAMLIARB/wdxIQMgBEGAgAJxIQYgBEGA+AFxIgRBgPgBRgRAIAZBEHQiBEGAgID8B3IgA0UNAxogBCADQQ10ckGAgID+B3IMAwsgBkEQdCEGIARFDQEgBEENdEGAgID8AHEgA0ENdHJBgICAwANqIAZyDAILIAggB0G01McAEL8HAAsgAyADZ0EQayIDQf//A3FBCGp0Qf///wNxIAZBgICA2ANyIANBF3Rrcgu+Ig5DAACAP14EQCAOEPQFQ1T4LUCUQwAAgD+SkSEPC0MAAIA/IQ4CfwJAIAEgB0kEQCAMIAFBGGxqIgMtABMiBCADLQASIgcgAy0AESIGIAYgB0kbIgcgBCAHSxsiBAR9QwAAQMEgBSoCRCAFLQBYQQJGIgcbIhBDAAAQQSAFKgJIIAcbIBCTQwAAfkOVIARBAWtB/wFxs5SSEKYEIhAgEJIFQwAAAAALIRAgA0EMai8BACIDQf//AXFFBEAgA0EQdAwDCyADQf8HcSEFIANBgIACcSEEIANBgPgBcSIDQYD4AUYEQCAEQRB0IgNBgICA/AdyIAVFDQMaIAMgBUENdHJBgICA/gdyDAMLIARBEHQhBCADRQ0BIANBDXRBgICA/ABxIAVBDXRyQYCAgMADaiAEcgwCCyABIAdBtNTHABC/BwALIAUgBWdBEGsiBUH//wNxQQhqdEH///8DcSAEQYCAgNgDciAFQRd0a3ILviISQwAAgD9eBEAgEhD0BUNU+C1AlEMAAIA/kpEhDgsgESAPlCIPIA9cDQAgDyAQIA6UYEUNAQsLIAIgCDYCAAsLxRADB38BfgF7IwBBMGsiAyQAAkACQCAAKAIAIgZFBEAgACgCECIARQ0BIABBicDFAEEBEL4DIQQMAgsgACAAKAIMQQFqIgQ2AgwCQAJAAkACQAJAAkACQAJAIARB9QNPBEAgACgCECIBRQ0BIAFB8L/FAEEZEL4DRQ0BDAgLAkACQAJAAkAgACgCCCICIAAoAgQiCE8EQCAAKAIQIgFFDQEgAUHgv8UAQRAQvgMNDAwBC0EBIQQgACACQQFqIgc2AggCQAJAAkACQAJAAkAgAiAGai0AACIFQckAaw4GAgEBAQgFAAsCQCAFQcIAaw4CAwQACyAFQdgAaw4CBwsACyAAKAIQIgFFDQQgAUHgv8UAQRAQvgNFDQQMEQsgACABENYBDRAgAQ0GDAwLIwBBIGsiAiQAAkACQCAAKAIARQRAIAAoAhAiAUUNASABQYnAxQBBARC+AyEBDAILIAIgABDkBiACKAIARQRAIAAoAhAiBQRAQQEhASAFQfC/xQBB4L/FACACLQAEQQFxIgUbQRlBECAFGxC+Aw0DCyAAIAL9AAIA/QsCAAwBCyAAKAIQRQ0AIAD9AAIAIQogACAC/QACAP0LAgAgAiAK/QsDECAAIAFBAXEQ1gEhASAAIAL9AAMQ/QsCAAwBC0EAIQELIAJBIGokACABRQ0MDA8LIANBIGogAEHzABDjBiADLQAgQQFGBEAgAy0AISEBIAAoAhAiAgRAIAJB8L/FAEHgv8UAIAFBAXEiAhtBGUEQIAIbEL4DDRALIAAgAToABAwKCyAAKAIARQRAIAAoAhAiAEUNDiAAQYnAxQBBARC+AyEEDA8LIAMpAyghCSADQSBqIAAQiwMgAygCIEUEQCADLQAkIQEgACgCECICBEAgAkHwv8UAQeC/xQAgAUEBcSICG0EZQRAgAhsQvgMNEAsgACABOgAEDAoLIAMgA/0AAiD9CwMAIAAoAhAiAUUNCyADIAEQlQINDCAAKAIQIgFFIAlQcg0LIAEoAghBgICABHENCyABKAIAQZHAxQBBASABKAIEKAIMEQAADQ4gACgCECMAQYABayICJABBgQEhAQNAIAEgAmpBAmsgCadBD3EiBUEwciAFQdcAaiAFQQpJGzoAACABQQFrIQEgCUIPViAJQgSIIQkNAAtBAUHzwMUAQQIgASACakEBa0GBASABaxDsAyACQYABaiQADQ4gACgCECIBKAIAQZLAxQBBASABKAIEKAIMEQAADQ4MCwsgByAISQRAIAAgAkECajYCCCAGIAdqLQAAIgJBwQBrQf8BcUEaSQ0CIAJB4QBrQYCAxAAhAkH/AXFBGkkNAgsgACgCECIBRQ0AIAFB4L/FAEEQEL4DDQsLQQAhBCAAQQA6AAQgAEEANgIADAwLQQEhBCAAIAEQ1gENCwJAIAAoAgANACAAKAIQIgFFDQsgAUGAusUAQQIQvgMNDCAAKAIADQBBACEEIAAoAhAiAEUNDCAAQYnAxQBBARC+AyEEDAwLIANBIGogAEHzABDjBiADLQAgQQFGBEAgAy0AISEBIAAoAhAiAgRAIAJB8L/FAEHgv8UAIAFBAXEiAhtBGUEQIAIbEL4DDQ0LIAAgAToABAwHCyAAKAIARQRAIAAoAhAiAEUNCyAAQYnAxQBBARC+AyEEDAwLIAMpAyghCSADQSBqIAAQiwMgAygCIEUEQCADLQAkIQEgACgCECICBEAgAkHwv8UAQeC/xQAgAUEBcSICG0EZQRAgAhsQvgMNDQsgACABOgAEDAcLIAMgA/0AAiD9CwMQAkACQAJAIAJBgIDEAEcEQCAAKAIQIgEEQCABQZPAxQBBAxC+Aw0OCyACQcMARg0BIAJB0wBGDQIgAyACNgIgIAAoAhAiAUUNAyADQSBqIAEQxQUNDQwDCyADKAIUIAMoAhxyRQ0LIAAoAhAiAUUNCyABQYC6xQBBAhC+Aw0OIAAoAhAiAUUNCyADQRBqIAEQlQJFDQsMDgsgACgCECIBRQ0BIAFBlsDFAEEHEL4DDQsMAQsgACgCECIBRQ0AIAFBncDFAEEEEL4DDQoLIAAoAhAhAiADKAIUIAMoAhxyRQ0FIAJFDQggAkGUi8gAQQEQvgMNCyAAKAIQIgFFDQggA0EQaiABEJUCDQsgACgCECECDAULIANBIGogAEHzABDjBiADLQAgQQFHDQIgAy0AISEBIAAoAhAiAgRAIAJB8L/FAEHgv8UAIAFBAXEiAhtBGUEQIAIbEL4DDQsLIAAgAToABAwFCyAAKAIQIgFFDQUgAUGAusUAQQIQvgNFDQUMCQsgAEEBOgAEDAMLIwBBEGsiASQAIAAoAhAhAiAAQQA2AhAgAEEAENYBBEBBmLzFAEE9IAFBD2pBiLzFAEHQv8UAEJUHAAsgACACNgIQIAFBEGokAAsgACgCECIBBEAgAUH7usUAQQEQvgMNBwsgABCgAg0EIAVBzQBHBEAgACgCECIBBEAgAUGiwMUAQQQQvgMNBgsgAEEAENYBDQcLIAAoAhAiAUUNAyABQfq6xQBBARC+A0UNAwwGCyACRQ0CIAJBocDFAEEBEL4DDQUgACgCECEBIAMgCTcDICABRQ0CIANBIGogARCeCA0FIAAoAhAiAUUNAiABQZK9xQBBARC+A0UNAgwFC0EAIQQgAEEANgIADAQLIAAoAhAiAQRAIAFB+7rFAEEBEL4DDQQLIAAQmgVBAXENAyAAKAIQIgFFDQAgAUH6usUAQQEQvgMNAwtBACEEIAAoAgBFDQIgACAAKAIMQQFrNgIMDAILQQEhBAwBC0EAIQQLIANBMGokACAEC+4OAgx/A34jAEEwayICJAACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiBEGAgICAeHMgBEEAThtBFGsOAgECAAsgASACQS9qQdDdwAAQ2QghASAAQYCAgIB4NgIAIAAgATYCBAwGCyABKAIMIgZFDQICQCABKAIIIgUoAgBBlICAgHhGBEACQCAFKAIMIgEEQCACQRxqIAUoAggQzgMgAigCHCIEQYCAgIB4Rw0BIAIoAiAhAQwIC0EAIAJBL2pBwNzAABCPByEBDAcLIAIoAiAhByABQQFGDQEgAkEBNgIcIAFBAWtB/////wBxQQFqIAJBHGpB+PfAABCPByEBIARFDQYgByAEQQEQ1gcMBgsgBSACQS9qQcDcwAAQ2QghAQwFCyAGQQFGDQEgAigCJCEJIAJBHGoiAyAFQRBqEOkCIAIoAiAhASACKAIcDQMCQCAGQQJHBEAgAikCJCEOIAMgBUEgahDpAiACKAIgIQUgAigCHEUNASAFIQEMBQtBAkG05MAAQYCIyAAQjwchAQwECyAGQQNHBEAgAkEDNgIcIAZB/f///wBqQf////8AcUEDaiACQRxqQfj3wAAQjwchASAAQYCAgIB4NgIAIAAgATYCBCAERQ0GIAcgBEEBENYHDAYLIAAgAikCJDcCHCAAIAU2AhggACAONwIQIAAgATYCDCAAIAk2AgggACAHNgIEIAAgBDYCAAwFCyABKAIEIQQgASgCCCEBIAJBADYCGCACIAQgAUEFdGoiCzYCEAJAAkAgAUUNAEGAgICAeCEIA0AgAiAEQSBqIgE2AgwgAiACKAIYQQFqNgIYIAIgBEEQaiIMNgIUAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQRUgBCgCACIDQYCAgIB4cyADQQBOG0EBaw4PAA4OAQ4ODg4ODg4CAwQFDgsgBC0ABA4DCgUHDwsgBCkDCCIOQgJWDQ4gDqdBAWsOAgQGCQsgBCgCCCEDAkAgBCgCDEEEaw4CAAgOCyADKAAAQe3SuZsHRg0DIAMoAABB7cLhmwdGDQUMDQsgBCgCBCEDAkAgBCgCCEEEaw4CAAYNCyADKAAAQe3SuZsHRg0CIAMoAABB7cLhmwdGDQQMDAsgBCgCCCEDAkACQCAEKAIMQQRrDgIBAA0LIAMtAABB5gBHDQwgAy0AAUHpAEcNDCADLQACQewARw0MIAMtAANB5QBHDQwgAy0ABEHzAEcNDAwHCyADLQAAQe0ARw0LAkACQCADLQABQeEAaw4JAQ0NDQ0NDQ0ADQsgAy0AAkHuAEcNDCADLQADQfMARg0CDAwLIAMtAAJB+ABHDQsgAy0AA0HzAEYNAwwLCyAEKAIEIQMCQAJAIAQoAghBBGsOAgEADAsgAy0AAEHmAEcNCyADLQABQekARw0LIAMtAAJB7ABHDQsgAy0AA0HlAEcNCyADLQAEQfMARw0LDAYLIAMtAABB7QBHDQoCQCADLQABQeEAaw4JAgsLCwsLCwsACwsgAy0AAkHuAEcNCiADLQADQfMARw0KCyAGRQ0FQYXhwABBBBDRBwwICyADLQACQfgARw0IIAMtAANB8wBHDQgLIApFDQRBieHAAEEEENEHDAYLIANBgOHAAEEFEJAIRQ0BDAYLIANBgOHAAEEFEJAIDQULIAhBgICAgHhHBEBBgOHAAEEFENEHDAQLIAJBHGogAkEMahDeBSACKAIgIQcgAigCHCIIQYCAgIB4RgRAIAchBQwJCyACKAIkIQ0gAigCECELIAIoAgwhAQwFCyACQQA2AhQgAkEcaiAMEOkCIAIoAiAiBSACKAIcQQFGDQIaIAIpAiQhD0EBIQYMBAsgAkEANgIUIAJBHGogDBDpAiACKAIgIQkgCSACKAIcQQFGDQEaIAIpAiQhEEEBIQoMAwsgBCACQS9qQdDfwAAQ2QgLIQUgCEGAgICAeHJBgICAgHhGDQQCQCAHQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyAIak8EQCABQQAgBCAIQSdqSxsNASAHELQCDAYLQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyACQQA2AhQLIAsgASIERw0ACyAIQYCAgIB4Rg0AIAZBACAKG0UEQEGJ4cAAQYXhwAAgBhtBBBDPByEFIAhFDQIgByAIQQEQ1gcMAgsgACAQNwIcIAAgCTYCGCAAIA83AhAgACAFNgIMIAAgDTYCCCAAIAc2AgQgACAINgIADAYLQYDhwABBBRDPByEFCyAAIAU2AgQgAEGAgICAeDYCAAwEC0EBQbTkwABBgIjIABCPByEBDAELQQBBtOTAAEGAiMgAEI8HIQEMAQsgBEUNACAHQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyAEakkNAiAFQQAgBiAEQSdqSxsNAyAHELQCCyAAIAE2AgQgAEGAgICAeDYCAAsgAkEwaiQADwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALhwwCCX8BfSMAQYABayIIJAACfwJAIAAoAggiBiABSwRAIAAoAgQgAUEYbGoiBi0AEyIHIAYtABIiBSAGLQARIgkgBSAJSxsiBSAFIAdJGyIHBH1DAABAwSAAKgJEIAAtAFhBAkYiBRsiDkMAABBBIAAqAkggBRsgDpNDAAB+Q5UgB0EBa0H/AXGzlJIQpgQiDiAOkgVDAAAAAAshDiAGQQxqLwEAIgdB//8BcUUEQCAHQRB0DAMLIAdB/wdxIQYgB0GAgAJxIQUgB0GA+AFxIgdBgPgBRgRAIAVBEHQiB0GAgID8B3IgBkUNAxogByAGQQ10ckGAgID+B3IMAwsgBUEQdCEFIAdFDQEgB0ENdEGAgID8AHEgBkENdHJBgICAwANqIAVyDAILIAEgBkG01McAEL8HAAsgBiAGZ0EQayIGQf//A3FBCGp0Qf///wNxIAVBgICA2ANyIAZBF3RrcgshBgJAAkACQCAOIAa+Ig5DAACAP14EfSAOEPQFQ1T4LUCUQwAAgD+SkQVDAACAPwuUIANdRQRAIAggACgCECIHIAAoAhQiBSABEIADAkAgCCgCJCIGQQlPBEAgCCgCBCIKDQEgCCgCCCIAQQRrKAIAIgFBeHEiAiAGQQJ0IgRBBEEIIAFBA3EiARtqSQ0EIAFBACACIARBJ2pLGw0FIAAQtAIMAwsgBiIKRQ0CCyAIQShqIAIoAggiBiAGIApqELMDIAcgBSABAn8gCCgCTCIFQQlPBEAgCCgCLCEFIAgoAjAMAQsgCEEsagsgBRDrAiAIQQRqIQECQAJ/IAgoAiRBCUkEQCABIQcgCEEkagwBCyAIKAIIIQcgAQsoAgAiBUECSQ0AIAVBFU8EQCAHIAUQ7wUMAQsgB0EEaiEGAkAgBUEBcQRAIAYhCSAHIQYMAQsgBygCBCIJIAcoAgAiC0kEQCAHIAk2AgAgByALNgIECyAHQQhqIQkLIAVBAkYNACAHIAVBAnRqIQ0gCUEEaiEMA0AgCSgCACIKIAYoAgAiBUkEQCAJIQsCfwNAIAsgBTYCACAHIAYgB0YNARogBiELIAogBkEEayIGKAIAIgVJDQALIAZBBGoLIAo2AgAgCSgCACEKCyAKIAkoAgQiC0sEQCAMIQUDQAJAIAUgCjYCACAHIAVBBGsiBkYEQCAHIQYMAQsgBUEIayEKIAYhBSALIAooAgAiCkkNAQsLIAYgCzYCAAsgCUEEaiEGIAxBCGohDCAJQQhqIgkgDUcNAAsLIAgoAiQiBiEFIAZBCU8EQCAIKAIEIQUgCCgCCCEBCyAFBEAgBUECdCEGIAIoAggiBUECdCEHA0AgASgCACEJIAIoAgAgBUYEQCACQdy4wQAQrAYLIAFBBGohASACKAIEIAdqIAk2AgAgAiAFQQFqIgU2AgggB0EEaiEHIAZBBGsiBg0ACyAIKAIkIQYLIAgoAgQhByAIQfAAaiAIQSBqKAIANgIAIAhB6ABqIAhBGGopAgA3AgAgCCAI/QACCP0LAlggCCAHIAYgBkEISyIFGyIBNgJ8IAggBkEAIAUbNgJ0IAhBACAHIAUbNgJUAkAgAUUNACAGQQlPBEAgCCgCWCEFA0AgACAFKAIAIAIgAyAEENgBIAVBBGohBSABQQFrIgENAAsMAQsgCEHUAGohBUEAIQcDQCAIIAdBAWoiBzYCeCAAIAUoAgAgAiADIAQQ2AEgBUEEaiEFIAEgB0cNAAsLIAZBCU8EQCAIKAJYIgBBBGsoAgAiAUF4cSICIAZBAnQiBEEEQQggAUEDcSIBG2pJDQMgAUEAIAIgBEEnaksbDQQgABC0AgsgCCgCTCIAQQlJDQEgCCgCMCIBQQRrKAIAIgJBeHEiBCAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0CIAJBACAEIABBJ2pLGw0DIAEQtAIMAQsgBCgCCCIAIAQoAgBGBEAgBEHsuMEAEKwGCyAEKAIEIABBAnRqIAE2AgAgBCAAQQFqNgIICyAIQYABaiQADwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALiB4CFH8CfiMAQeAAayIIJAAgAUFAayEKAkACQCABLQBgIgdBB0sNACAIQdAAaiAKEJ4CAkAgCC0AUCIHQR1GBEAgAS0AYCIHQQhPDQJBDyEHDAELIAggCCkBUjcDACAIIAhB2ABqKQEANwEGIAgtAFEhAQsgACABOgABIAAgBzoAACAAIAgpAwA3AQIgAEEIaiAIKQEGNwEADAELIAEgB0EIayIHOgBgIAEgASkDQCIaQgiIIhs3A0ACQAJAAkACQCAapyIGQf8BcUEvRgRAIAdB/wFxQQ1LDQQgCEHQAGogChCeAiAILQBQIgdBHUcNASABLQBgIgdBDk8NA0EPIQcMAgsgACAGOgABIABBCzoAAAwECyAIQRhqIAhB3ABqKAIANgIAIAggCCkCVDcDECAILwFSIQEgCC0AUSEKCyAAIAE7AQIgACAKOgABIAAgBzoAACAAIAgpAxA3AgQgAEEMaiAIQRhqKAIANgIADAILIAopAwAhGwsgASAHQQ5rIgc6AGAgASAbQg6IIho3A0AgASAbp0H//wBxQQFqIgY7AXQgB0H/AXFBDU0EQCAIQdAAaiAKEJ4CAkACQCAILQBQIgdBHUYEQCABLQBgIgdBDk8NAkEPIQcMAQsgCEEoaiAIQdwAaigCADYCACAIIAgpAlQ3AyAgCC8BUiEBIAgtAFEhCgsgACABOwECIAAgCjoAASAAIAc6AAAgACAIKQMgNwIEIABBDGogCEEoaigCADYCAAwCCyABKQNAIRogAS8BdCEGCyABIAdBDmsiBzoAYCABIBpCDogiGzcDQCABIBqnQf//AHFBAWoiCTsBdgJAIAIgBkH//wNxRyADIAlHckUEQCAHQf8BcUUEQCAIQdAAaiAKEJ4CAkACQCAILQBQIgdBHUYEQCABLQBgIgcNAkEPIQcMAQsgCCAIKQFSNwMwIAggCEHYAGopAQA3ATYgCC0AUSEBCyAAIAE6AAEgACAHOgAAIAAgCCkDMDcBAiAAQQhqIAgpATY3AQAMBAsgCikDACEbCyABIAdBAWsiAjoAYCABIBtCAYgiGjcDQAJAAkAgB0H/AXFBA00EQCAIQdAAaiAKEJ4CIAgtAFAiB0EdRw0BIAEtAGAiAkEDSQRAQQ8hBwwDCyAKKQMAIRoLIAEgAkEDazoAYCABIBpCA4g3A0AgGqdBB3EiAkUNAyAAIAI6AAEgAEEMOgAADAQLIAggCCkBUjcDQCAIIAhB2ABqKQEANwFGIAgtAFEhAQsgACAIKQNANwECIABBCGogCCkBRjcBACAAIAE6AAEgACAHOgAADAILIABBFzoAAAwBCyAIQdAAaiELQQAhByMAQeAAayIGJAAgASIDQegAaiEZIANBQGshESADLwF0IRICQAJAA0ACQAJAAkACQAJAAkACQCADLQBgIgkNACAGQcwAaiAREJ4CIAsCfyAGLQBMIglBHUYEQCADLQBgIgkNAkEPIQlBAQwBCyAGIAYpAU43AwAgBiAGQdQAaikBADcBBiAGLQBNCzoAASALIAk6AAAgCyAGKQMANwECIAtBCGogBikBBjcBAAwBCyADIAlBAWsiAjoAYCADIAMpA0AiG0IBiCIaNwNAIBtCAYNQRQRAIAlBAk0EQCAGQcwAaiAREJ4CAkACQCAGLQBMIglBHUYEQCADLQBgIgJBAk8NAkEPIQkMAQsgBiAGKQFONwMQIAYgBkHUAGopAQA3ARYgBi0ATSEQCyALIBA6AAEgCyAJOgAAIAsgBikDEDcBAiALQQhqIAYpARY3AQAMAwsgESkDACEaCyADIAJBAms6AGAgAyAaQgKINwNAIAMgGqdBA3EiEEEEdGoiDS0AAEEERwRAIAtBEDoAAAwCCyADKAJwIgIgAygCaEYEQCAZQdyCxwAQ3gYLIAMoAmwgAmogEDoAACADIAJBAWo2AnACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgEEEBaw4DARECAAsgAy0AYCIJQQJLDQQgBkHMAGogERCeAiAGLQBMIglBHUcNAiADLQBgIglBA08NBEEPIQkMAwsgAy0AYCIJQQJLDQYgBkHMAGogERCeAiAGLQBMIglBHUcNBCADLQBgIglBA08NBkEPIQkMBQsgAy0AYCIJQQdLDQggBkHMAGogERCeAiAGLQBMIglBHUcNBiADLQBgIglBCE8NCEEPIQkMBwsgBiAGKQFONwMgIAYgBkHUAGopAQA3ASYgBi0ATSEXCyALIBc6AAEgCyAJOgAAIAsgBikDIDcBAiALQQhqIAYpASY3AQAMCAsgAyAJQQNrOgBgIAMgAykDQCIaQgOINwNAQX8gGqdBB3EiF0ECaiIPdEF/cyICIBJB//8DcWogD3YiCiACIAMvAXZqIA92IglsIgJBAnQhDAJAIAJFBEBBASEHDAELIAwQfiIHRQ0KIAdBBGstAABBA3FFIAxFcg0AIAdBACAM/AsACyAGQcwAaiADIAogCUEAIAcgDBBFIAYtAEwiCkEdRg0LIAsgBikATTcAASALQQhqIAZB1ABqKQAANwAAIAsgCjoAACACRQ0HIAdBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAxqSQ0MIAJBACADIAxBJ2pLGw0OIAcQtAIMBwsgBiAGKQFONwMwIAYgBkHUAGopAQA3ATYgBi0ATSEYCyALIBg6AAEgCyAJOgAAIAsgBikDMDcBAiALQQhqIAYpATY3AQAMBQsgAyAJQQNrOgBgIAMgAykDQCIaQgOINwNAQX8gGqdBB3EiGEECaiIPdEF/cyICIBJB//8DcWogD3YiCiACIAMvAXZqIA92IglsIgJBAnQhDAJAIAJFBEBBASEHDAELIAwQfiIHRQ0HIAdBBGstAABBA3FFIAxFcg0AIAdBACAM/AsACyAGQcwAaiADIAogCUEAIAcgDBBFIAYtAEwiCkEdRg0IIAsgBikATTcAASALQQhqIAZB1ABqKQAANwAAIAsgCjoAACACRQ0EIAdBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAxqSQ0JIAJBACADIAxBJ2pLGw0FIAcQtAIMBAsgBkHIAGogBkHYAGooAgA2AgAgBiAGKQJQNwNAIAYvAU4hDiAGLQBNIQMLIAsgDjsBAiALIAM6AAEgCyAJOgAAIAsgBikDQDcCBCALQQxqIAZByABqKAIANgIADAILIAMgCUEIazoAYCADIAMpA0AiGkIIiDcDQCAapyICQf8BcSIOQQFqIhNBAnQiDBB+IgdFDQMgB0EEayIULQAAQQNxRSAMRXJFBEAgB0EAIAz8CwALIAZBzABqIAMgE0EBQQAgByAMEEUgBi0ATCIKQR1HBEAgCyAGKQBNNwABIAtBCGogBkHUAGopAAA3AAAgCyAKOgAAIBQoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAxqSQ0HIAJBACADIAxBJ2pLGw0JIAcQtAIMAgsgEkH//wNxQQECf0EDIA5BAkkNABpBAiAOQQRJDQAaIA5BEEkLIgp0akEBayAKdiISQf//A00EQCAORQRAQQEhE0EAIQ4MBwtBBCEJIAJBAnRB/AdxIhVBAWsiAiAMIAIgDEkbIgJBBE8EQCACQQFqIgpBA3EiCUEEIAkbIgkgAkF/c2ohFiAKIAlrQQRqIQkgByECA0AgAkEEaiIKIAL9XAAAIAr9XAAA/W79WgAAACAKIQIgFkEEaiIWDQALCyAVQQhqIQIgFUEEaiEKA0AgAiAJRg0GIAkgFGoiFUEEaiIWIBUtAAAgFi0AAGo6AAAgCUEBaiIJIApHDQALDAYLQcD4yABBKyAGQd8AakHsgscAQfyCxwAQlQcACyALQR06AAAgCyASOwECCyAGQeAAaiQADAcLQaCMyABBLkHQjMgAEKIICwALIAlBBGsgDEGMg8cAEL8HAAsCQAJAIA0tAAAiAkEERiACQQJGcg0AIA0oAgQiAkUNACANKAIIIgpBBGsoAgAiCUF4cSIUQQRBCCAJQQNxIgkbIAJqSQ0BIAlBACAUIAJBJ2pLGw0EIAoQtAILIA0gDDYCDCANIAc2AgggDSAMNgIEIA0gEzsBAiANIA86AAEgDSAQOgAADAILCwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIAgtAFAiAkEdRwRAIAAgCCkCVDcCBCAAQQxqIAhB3ABqKAIANgIAIAgtAFEhASAAIAgvAVI7AQIgACABOgABIAAgAjoAAAwBCwJAAkACQCAFIAgvAVIiCSABLwF2IgJsQQJ0IgNPBEAgCEHQAGogASAJIAJBASAEIAMQRSAILQBQIgJBHUcEQCAAIAgpAFE3AAEgAEEIaiAIQdgAaikAADcAACAAIAI6AAAMBQsgASgCcCICBEAgBEEEaiELIAEoAmwiDCACaiEGA0ACQAJAAkACQAJAAkAgBkEBayIGLQAAIgJBBEkEQCABIAJBBHRqIgItAABBAWsOBAMEBQECCyACQQRBjILHABC/BwALQZyCxwAQpAoACyADIAVLDQcgCEHQAGogBCADIAkgAS8BdiACLQABIAIoAgggAigCDBBVIAgtAFAiAkEdRg0DIAAgCCkAUTcAASAAQQhqIAhB2ABqKQAANwAAIAAgAjoAAAwKCyADIAVLDQcgBCADIAkgAi0AASACKAIIIAIoAgwQkQIMAgsgAyAFSw0HIANBfHEiCkUNASADQQRrIgJBBHEEfyAEBSAEIAQtAAEiByAELQAAajoAACAEIAcgBC0AAmo6AAIgAkEESQ0CIApBBGshCiALCyEHA0AgByAHQQFqLQAAIgIgBy0AAGo6AAAgB0ECaiINIAIgDS0AAGo6AAAgB0EEaiICIAdBBWotAAAiDSACLQAAajoAACAHQQZqIgIgDSACLQAAajoAACAHQQhqIQcgCkEIayIKDQALDAELIAQgBSABLwF0IgkgAS8BdiIDIAIvAQIgAigCCCACKAIMEE0gAyAJbEECdCEDCyAGIAxHDQALCyAAQR06AAAMBAsgAyAFQfyBxwAQogoACyADIAVBrILHABCiCgALIAMgBUG8gscAEKIKAAsgAyAFQcyCxwAQogoACyAIQeAAaiQAC60MAhJ+CH8jAEHgAGsiFSQAAkACfwJAAkACQAJAAkACQAJAIAEpAwAiA1BFBEAgASkDCCIEUA0BIAEpAxAiBVANAiADIAV8IgUgA1QNAyADIARUDQQgBUKAgICAgICAgCBaDQUgFSABLwEYIgE7ATggFSADIAR9Igc3AzAgFSAHIAV5IgSGIgggBIgiBjcDQCAGIAdSDQkgFSABOwE4IBUgAzcDMCAVIAMgBEI/gyIHhiIGIAeIIgc3A0AgAyAHUg0JQaB/IAEgBKdrIhdrwUHQAGxBsKcFakHOEG0iAUHRAE8NBiAVQSBqIAFBBHQiAUGgj8IAaikDACIDIAUgBIYQkgcgFUEQaiADIAgQkgcgFSADIAYQkgdCAUEAIBcgAUGoj8IAai8BAGprQT9xrSIGhiIIQgF9IQogFSkDEEI/hyEMIBUpAwBCP4ghDiAVKQMIIQ8gAUGqj8IAai8BACEXIBUpAxghECAVKQMoIhMgFSkDIEI/iCIUfCIRQgF8IgkgBoinIhZBkM4ATwRAIBZBwIQ9SQ0IIBZBgMLXL08EQEEIQQkgFkGAlOvcA0kiARshGUGAwtcvQYCU69wDIAEbDAoLQQZBByAWQYCt4gRJIgEbIRlBwIQ9QYCt4gQgARsMCQsgFkHkAE8EQEECQQMgFkHoB0kiARshGUHkAEHoByABGwwJC0EKQQEgFkEJSyIZGwwIC0G0i8IAQRxBwJnCABCiCAALQeCLwgBBHUHQmcIAEKIIAAtBkIzCAEEcQeCZwgAQoggAC0G0jcIAQTZB4JrCABCiCAALQeyMwgBBN0HQmsIAEKIIAAtB8JnCAEEtQaCawgAQoggACyABQdEAQbCZwgAQvwcAC0EEQQUgFkGgjQZJIgEbIRlBkM4AQaCNBiABGwshASAJIAqDIQQgDiAPfCELIBkgF2tBAWohGyAMIBB9IAl8QgF8Ig0gCoMhBQJAAkACQAJAAkACQAJAAkADQCACIBhqIBYgAW4iHEEwaiIaOgAAIBhBAWohFwJAIBYgASAcbGsiFq0gBoYiEiAEfCIDIA1aBEAgGCAZRw0BIBchAUIBIQMDQCADIQcgAUERRg0FIAEgAmogBEIKfiIEIAaIp0EwaiIYOgAAIAFBAWohASADQgp+IQMgBUIKfiIFIAQgCoMiBFgNAAsgBSAEfSIKIAhUIRYgAyAJIAt9fiIJIAN8IQYgBCAJIAN9IglaDQcgCCAKWA0DDAcLIA0gA30iBSABrSAGhiIHVCEBIAkgC30iBkIBfCEIIAUgB1QgAyAGQgF9Iglacg0EIAIgF2pBAWshGCAMIBF8IBB9IAQgB3wiBCASfH1CAnwhCiARIAt9IAN9IQsgBCAOfCAPfCAUfSATfSASfCEGQgAhBANAIAMgB3wiBSAJVCAEIAt8IAZackUEQEEAIQEMBgsgGCAaQQFrIho6AAAgBCAKfCIMIAdUIQEgBSAJWg0GIAYgB3whBiAEIAd9IQQgBSEDIAcgDFgNAAsMBQsgAUEKSSAXIRggAUEKbiEBRQ0AC0GwmsIAELkIAAsgASACakEBayEXIAUgCH0hCyAIIAl9IQ1CACAEfSEKA0AgBCAIfCIDIAlUIAkgCnwgBCANfFpyRQRAQQAhFgwFCyAXIBhBAWsiGDoAACAKIAt8IgwgCFQhFiADIAlaDQUgCiAIfSEKIAMhBCAIIAxYDQALDAQLQRFBEUHAmsIAEL8HAAsgAyEFCwJAIAUgCFogAXINACAIIAUgB3wiA1ggCCAFfSADIAh9VHENACAAQQA2AgAMBAsgBSANQgR9WCAFQgJacUUEQCAAQQA2AgAMBAsgACAbOwEIIAAgFzYCBAwCCyAEIQMLAkAgAyAGWiAWcg0AIAYgAyAIfCIEWCAGIAN9IAQgBn1UcQ0AIABBADYCAAwCCyADIAUgB0JYfnxYIAMgB0IUflpxRQRAIABBADYCAAwCCyAAIBs7AQggACABNgIECyAAIAI2AgALIBVB4ABqJAAPCyAVQQA2AkgjAEEQayIAJAAgACAVQTBqNgIMIAAgFUFAazYCCEEAIABBCGpBvJ/CACAAQQxqQbyfwgAgFUHIAGpB4InCABCeBQAL1AsCF38BfSMAQSBrIgckAAJAAkACQAJAAkACQAJAAkAgAC0AuAFBAUcNACAAKAKsASAAKAKwASIFQQJ0IAAoArQBIgYgBWpBAnQQoAkhBSAGQQJ0IgYgACgCZCIJSw0BIAAoAmAhCSAHIAUQgwsiCDYCACAHIAY2AgQgBiAIRw0HIAUgCSAGEKkKIAVBhAhJDQAgBRDNBwsgAEIANwKwASAAQbgBakEAOgAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCCEUNACAAKAIMIAFBAnQgASACakECdBCgCSEJAkAgAkECdCIFIAAoAmQiBk0EQCAAIAU2AmQgACgCYCEIIAUhAQwBCyAFIAYiAWsiCiAAKAJcIAFrSwRAIABB3ABqIAEgCkEEQQQQ0AUgACgCZCEBCyAAKAJgIgggAUECdCIMaiELIApBAk8EQCAFIAZBf3NqQQJ0Ig0EQCALQQAgDfwLAAsgAkEEdCAGQQJ0ayAIaiAMakEEayELIAEgCmpBAWshAQsgC0EANgIAIAAgAUEBaiIBNgJkIAEgBUkNEgsgByAJEIMLIgY2AgAgByAFNgIEIAUgBkcNFiAIIAUgCRCrCiACQQ9sIQwgBEEPbkEPbCENIARBAWtBD25BD2xBD2ohDiAEQQJrQQ9uQQ9sQQ9qIQ8gBEEDa0EPbkEPbEEPaiEQIARBBGtBD25BD2xBD2ohESAEQQVrQQ9uQQ9sQQ9qIRIgBEEGa0EPbkEPbEEPaiETIARBB2tBD25BD2xBD2ohFCAEQQhrQQ9uQQ9sQQ9qIRUgBEEJa0EPbkEPbEEPaiEWIARBCmtBD25BD2xBD2ohFyAEQQtrQQ9uQQ9sQQ9qIRggBEEMa0EPbkEPbEEPaiEZIARBDWtBD25BD2xBD2ohGiAEQQ5rQQ9uQQ9sQQ9qIRtDAAD+QiAAKgKUAZUhHCAAKAJgIQJBACEFQQAhAANAIAEgBU0NEyAFQQFqIgYgAU8NFCAFQQJqIgYgAU8NFSAFQQNqIgYgAU8NFiAAIA5GDRAgAkEEaigCACEGIAJBDGooAgAhCiACQQhqKAIAIQggAyACKAIAIgvAsiAclTgCACAAIA9GDQ8gA0EEaiALQQh2wLIgHJU4AgAgACAQRg0OIANBCGogC0EQdsCyIByVOAIAIAAgEUYNDSADQQxqIAtBGHWyIByVOAIAIAAgEkYNDCADQRBqIAbAsiAclTgCACAAIBNGDQsgA0EUaiAGQQh2wLIgHJU4AgAgACAURg0KIANBGGogBkEQdsCyIByVOAIAIAAgFUYNCSADQRxqIAZBGHWyIByVOAIAIAAgFkYNCCADQSBqIAjAsiAclTgCACAAIBdGDQcgA0EkaiAIQQh2wLIgHJU4AgAgACAYRg0GIANBKGogCEEQdsCyIByVOAIAIAAgGUYNBSADQSxqIAhBGHWyIByVOAIAIAAgGkYNBCADQTBqIArAsiAclTgCACAAIBtGDQMgA0E0aiAKQQh2wLIgHJU4AgAgACANRg0CIANBOGogCkEQdsCyIByVOAIAIAJBEGohAiAFQQRqIQUgA0E8aiEDIAwgAEEPaiIARw0ACyAJQYQISQ0AIAkQzQcLIAdBIGokAA8LIABBDmohAAwNCyAAQQ1qIQAMDAsgAEEMaiEADAsLIABBC2ohAAwKCyAAQQpqIQAMCQsgAEEJaiEADAgLIABBCGohAAwHCyAAQQdqIQAMBgsgAEEGaiEADAULIABBBWohAAwECyAAQQRqIQAMAwsgAEEDaiEADAILIABBAmohAAwBCyAAQQFqIQALIAAgBEGIzMEAEL8HAAsgBiAJQbzBwQAQogoACyAFIAFBuMvBABCiCgALIAUgAUHIy8EAEL8HAAsgBiABQdjLwQAQvwcACyAGIAFB6MvBABC/BwALIAYgAUH4y8EAEL8HAAsgB0EANgIIQQAgByAHQQRqIAdBCGpB3IHFABCuCAAL2BABBH8jAEEQayIDJAAQgwoiBEGwv8EAQQkQrAkiAiAAKAKkAbgQ+AkiARCECgJAAkACQAJAAkACQAJAAkACQAJAAkACQEH40MkALQAARQRAQfzQyQBBADYCAEH40MkAQQA6AAAgAUGECE8EQCABEM0HCyACQYQITwRAIAIQzQcLIARBub/BAEEJEKwJIgIgACgCqAG4EPgJIgEQhApB+NDJAC0AAA0BQfzQyQBBADYCAEH40MkAQQA6AAAgAUGECE8EQCABEM0HCyACQYQITwRAIAIQzQcLIARBwr/BAEELEKwJIgIgACgCrAG4EPgJIgEQhApB+NDJAC0AAA0CQfzQyQBBADYCAEH40MkAQQA6AAAgAUGECE8EQCABEM0HCyACQYQITwRAIAIQzQcLIARB2M3BAEEEEKwJIgIgACgCsAEQoAoiARCECkH40MkALQAADQNB/NDJAEEANgIAQfjQyQBBADoAACABQYQITwRAIAEQzQcLIAJBhAhPBEAgAhDNBwsgBEHczcEAQQQQrAkiAiAAKAK0ARCgCiIBEIQKQfjQyQAtAAANBEH80MkAQQA2AgBB+NDJAEEAOgAAIAFBhAhPBEAgARDNBwsgAkGECE8EQCACEM0HCwJAIAAoAgBBAUcNACAEQfzlwABBAxCsCSICIAAoAgQQoAoiARCECkH40MkALQAADQZB/NDJAEEANgIAQfjQyQBBADoAACABQYQITwRAIAEQzQcLIAJBhAhJDQAgAhDNBwsCQCAAKAIIRQ0AIARB/+XAAEEDEKwJIgIgACgCDBCgCiIBEIQKQfjQyQAtAAANB0H80MkAQQA2AgBB+NDJAEEAOgAAIAFBhAhPBEAgARDNBwsgAkGECEkNACACEM0HCwJAIAAoAhBFDQAgBEGAzsEAQQQQrAkiAiAAKAIUEKAKIgEQhApB+NDJAC0AAA0IQfzQyQBBADYCAEH40MkAQQA6AAAgAUGECE8EQCABEM0HCyACQYQISQ0AIAIQzQcLAkAgACgCGEUNACAEQZTOwQBBBBCsCSICIAAoAhwQoAoiARCECkH40MkALQAADQlB/NDJAEEANgIAQfjQyQBBADoAACABQYQITwRAIAEQzQcLIAJBhAhJDQAgAhDNBwsCQCAAKAIgRQ0AIARBlMDBAEEIEKwJIgIgACgCJBCgCiIBEIQKQfjQyQAtAAANCkH80MkAQQA2AgBB+NDJAEEAOgAAIAFBhAhPBEAgARDNBwsgAkGECEkNACACEM0HCwJAIAAoAihFDQAgBEGswMEAQQgQrAkiAiAAKAIsEKAKIgEQhApB+NDJAC0AAA0LQfzQyQBBADYCAEH40MkAQQA6AAAgAUGECE8EQCABEM0HCyACQYQISQ0AIAIQzQcLAkAgACgCMEUNABCCCiICIAAoAjQQoAoiARCqCiABQYQITwRAIAEQzQcLIAIgACgCOBCgCiIBEKoKIAFBhAhPBEAgARDNBwsgBEHEwMEAQQgQrAkiASACEIQKQfjQyQAtAAANDEH80MkAQQA2AgBB+NDJAEEAOgAAIAJBhAhPBEAgAhDNBwsgAUGECEkNACABEM0HCwJAIAAoAjxFDQAgBEGgiMgAQQcQrAkiAiAAKAJAEKAKIgEQhApB+NDJAC0AAA0NQfzQyQBBADYCAEH40MkAQQA6AAAgAUGECE8EQCABEM0HCyACQYQISQ0AIAIQzQcLIAAQmgIgA0EQaiQAIAQPC0H40MkAQQA6AABB/NDJACgCACEAQfzQyQBBADYCACADIAA2AgxBwPjIAEErIANBDGpB1L/BAEGoz8EAEJUHAAtB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgAyAANgIMQcD4yABBKyADQQxqQdS/wQBBmM/BABCVBwALQfjQyQBBADoAAEH80MkAKAIAIQBB/NDJAEEANgIAIAMgADYCDEHA+MgAQSsgA0EMakHUv8EAQYjPwQAQlQcAC0H40MkAQQA6AABB/NDJACgCACEAQfzQyQBBADYCACADIAA2AgxBwPjIAEErIANBDGpB1L/BAEH4zsEAEJUHAAtB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgAyAANgIMQcD4yABBKyADQQxqQdS/wQBB6M7BABCVBwALQfjQyQBBADoAAEH80MkAKAIAIQBB/NDJAEEANgIAIAMgADYCDEHA+MgAQSsgA0EMakHUv8EAQeDNwQAQlQcAC0H40MkAQQA6AABB/NDJACgCACEAQfzQyQBBADYCACADIAA2AgxBwPjIAEErIANBDGpB1L/BAEHwzcEAEJUHAAtB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgAyAANgIMQcD4yABBKyADQQxqQdS/wQBBhM7BABCVBwALQfjQyQBBADoAAEH80MkAKAIAIQBB/NDJAEEANgIAIAMgADYCDEHA+MgAQSsgA0EMakHUv8EAQZjOwQAQlQcAC0H40MkAQQA6AABB/NDJACgCACEAQfzQyQBBADYCACADIAA2AgxBwPjIAEErIANBDGpB1L/BAEGozsEAEJUHAAtB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgAyAANgIMQcD4yABBKyADQQxqQdS/wQBBuM7BABCVBwALQfjQyQBBADoAAEH80MkAKAIAIQBB/NDJAEEANgIAIAMgADYCDEHA+MgAQSsgA0EMakHUv8EAQcjOwQAQlQcAC0H40MkAQQA6AABB/NDJACgCACEAQfzQyQBBADYCACADIAA2AgxBwPjIAEErIANBDGpB1L/BAEHYzsEAEJUHAAvbDAIRfwN+IwBBIGsiCiQAAkACQEH0yckAKAIARQ0AQezJyQAoAgAiB0GAyskAKQMAIhUgAK2FIhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFUIIiEKAgID4D4MgFUIYiEKAgPwHg4QgFUIoiEKA/gODIBVCOIiEhIRC0oGqm6v6gtenf34iFUI4hiAVQoD+A4NCKIaEIBVCgID8B4NCGIYgFUKAgID4D4NCCIaEhCAVQgiIQoCAgPgPgyAVQhiIQoCA/AeDhCAVQiiIQoD+A4MgFUI4iISEhCAWQtii0e/CqeW/LX6FIhVCOIYgFUKA/gODQiiGhCAVQoCA/AeDQhiGIBVCgICA+A+DQgiGhIQgFUIIiEKAgID4D4MgFUIYiEKAgPwHg4QgFUIoiEKA/gODIBVCOIiEhIRB+MnJACkDACIWQn+FfiIXQjiGIBdCgP4Dg0IohoQgF0KAgPwHg0IYhiAXQoCAgPgPg0IIhoSEIBdCCIhCgICA+A+DIBdCGIhCgID8B4OEIBdCKIhCgP4DgyAXQjiIhISEIBUgFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhH6FIBWJIhWncSEEIBVCGYhC/wCDQoGChIiQoMCAAX4hF0HoyckAKAIAIghBIGshBQNAIAQgCGopAAAiFiAXhSIVQn+FIBVCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiFVBFBEADQCAAIAUgFXqnQQN2IARqIAdxIglBBXRrKAIARg0EIBVCAX0gFYMiFVBFDQALCyAWIBZCAYaDQoCBgoSIkKDAgH+DUEUNASAEIAZBCGoiBmogB3EhBAwACwALQfjgwQAQpAoACyAIQQAgCWtBBXRqQQRrKAIAIgkoAghFBEAgCUF/NgIIQQAhBEH4yskAKAIAIg1FBEBB8MrJACgCAEH//w9NBEBB8MrJAEEAQYCAEEEEQQQQ0AVB+MrJACgCACEEC0H0yskAKAIAIARBAnRqIgBBAEH8/z/8CwBB+MrJACAEQYCAEGoiDTYCACAAQfz/P2pBADYCAAsgASACaiIAIAkoAhQiBksEQCAGIQcgACAGQQF0IgUgACAFSxsiCyAGayIAIAkoAgwgBmtLBEAgCUEMaiAGIABBBEEQENAFIAkoAhQhBwsgCSgCECEMIABBA3EiBQRAIAUgB2ohCCAMIAdBBHRqIQQgBSEAA0AgBEIANwIAIARBBmpCADcBACAEQRBqIQQgAEEBayIADQALIAghByALIAUgBmprIQALIAYgC2tBfE0EQCAMIAdBBHRqIQQgByEIA0AgBEIANwIAIARBBmpCADcBACAEQRBqQgA3AgAgBEEWakIANwEAIARBIGpCADcCACAEQSZqQgA3AQAgBEEwakIANwIAIARBNmpCADcBACAEQUBrIQQgCEEEaiEIIABBBGsiAA0ACwsgCSAINgIUCyACBEAgAUEEdCEQQQAhB0H0yskAKAIAIQwDQAJAAkACQCANQYCABCACIAciAGsiByAHQYCABE8bIgZBAnQiCE8EQCAKIAMgAEECdCAAIAZqIgdBAnQQoAkiBRCDCyIENgIAIAogCDYCBCAEIAhHDQEgDCAIIAUQqwogBUGECE8EQCAFEM0HCyAAIAJGDQMgBkEEdCERIAAgAWohBCAQIABBBHRqIRJBASAGIAZBAU0bQQR0IRNBACEGQQAhAANAIAAgEUYNAyAJKAIUIgUgBEsEQCAAIAxqIgsoAgAhDiALQQRqKAIAIQ8gC0EIaigCACEUIAkoAhAgEmogAGoiBSALQQxqKAIANgIAIAVBDGogFDsBACAFQQpqIA9BEHY7AQAgBUEIaiAPOwEAIAVBBmogDkEQdjsBACAFQQRqIA47AQAgBkEEaiEGIARBAWohBCATIABBEGoiAEYNBQwBCwsgBCAFQZjhwQAQvwcACyAIIA1BiOHBABCiCgALIApBADYCCEEAIAogCkEEaiAKQQhqQdyBxQAQrggACyAGIAhBuOHBABC/BwALIAIgB0sNAAsLIAkgCSgCCEEBajYCCCAKQSBqJAAPC0Go4cEAEPwKAAvYEAEFfyMAQRBrIgMkABCDCiIFQbC/wQBBCRCsCSIBIAAoAqABuBD4CSICEIQKAkACQAJAAkACQAJAAkACQAJAAkACQEH40MkALQAARQRAQfzQyQBBADYCAEH40MkAQQA6AAAgAkGECE8EQCACEM0HCyABQYQITwRAIAEQzQcLIAVBub/BAEEJEKwJIgEgACgCpAG4EPgJIgIQhApB+NDJAC0AAA0BQfzQyQBBADYCAEH40MkAQQA6AAAgAkGECE8EQCACEM0HCyABQYQITwRAIAEQzQcLIAVBwr/BAEELEKwJIgEgACgCqAG4EPgJIgIQhApB+NDJAC0AAA0CQfzQyQBBADYCAEH40MkAQQA6AAAgAkGECE8EQCACEM0HCyABQYQITwRAIAEQzQcLIAVBzb/BAEEGEKwJIgEgACgCrAEQhApB+NDJAC0AAA0DQfzQyQBBADYCAEH40MkAQQA6AAAgAUGECE8EQCABEM0HCwJAIAAoAgBBAUcNACAFQfzlwABBAxCsCSIBIAAoAgQQoAoiAhCECkH40MkALQAADQVB/NDJAEEANgIAQfjQyQBBADoAACACQYQITwRAIAIQzQcLIAFBhAhJDQAgARDNBwsCQCAAKAIIRQ0AIAVB/+XAAEEDEKwJIgEgACgCDBCgCiICEIQKQfjQyQAtAAANBkH80MkAQQA2AgBB+NDJAEEAOgAAIAJBhAhPBEAgAhDNBwsgAUGECEkNACABEM0HCwJAIAAoAhBFDQAgBUGC5sAAQQMQrAkiASAAKAIUEKAKIgIQhApB+NDJAC0AAA0HQfzQyQBBADYCAEH40MkAQQA6AAAgAkGECE8EQCACEM0HCyABQYQISQ0AIAEQzQcLAkAgACgCGEUNACAFQZTAwQBBCBCsCSIBIAAoAhwQoAoiAhCECkH40MkALQAADQhB/NDJAEEANgIAQfjQyQBBADoAACACQYQITwRAIAIQzQcLIAFBhAhJDQAgARDNBwsCQCAAKAIgRQ0AIAVBrMDBAEEIEKwJIgEgACgCJBCgCiICEIQKQfjQyQAtAAANCUH80MkAQQA2AgBB+NDJAEEAOgAAIAJBhAhPBEAgAhDNBwsgAUGECEkNACABEM0HCwJAIAAoAihFDQAgBUHEwMEAQQgQrAkiASAAKAIsEKAKIgIQhApB+NDJAC0AAA0KQfzQyQBBADYCAEH40MkAQQA6AAAgAkGECE8EQCACEM0HCyABQYQISQ0AIAEQzQcLAkAgACgCMEUNACAFQaCIyABBBxCsCSIBIAAoAjQQoAoiAhCECkH40MkALQAADQtB/NDJAEEANgIAQfjQyQBBADoAACACQYQITwRAIAIQzQcLIAFBhAhJDQAgARDNBwtBw4jIAEENEKwJIQIQgwohASAAKgKAAbsQ+AkhBCABQd6JyABBBhDyAyAEEKEJIAAqAoQBuxD4CSEEIAFB5InIAEEGEPIDIAQQoQkgACoCiAG7EPgJIQQgAUHqicgAQQoQ8gMgBBChCSAAKgKMAbsQ+AkhBCABQfSJyABBChDyAyAEEKEJIAAqApABuxD4CSEEIAFB/onIAEEGEPIDIAQQoQkgACoClAG7EPgJIQQgAUGEisgAQQYQ8gMgBBChCSAAKgKYAbsQ+AkhBCABQYqKyABBBhDyAyAEEKEJIAAtAJwBIQQgAUGQisgAQQoQ8gNBgghBgwggBBsQoQkgBSACIAEQhApB+NDJAC0AAA0LQfzQyQBBADYCAEH40MkAQQA6AAAgAUGECE8EQCABEM0HCyACQYQITwRAIAIQzQcLIAAQ1wIgA0EQaiQAIAUPC0H40MkAQQA6AABB/NDJACgCACEAQfzQyQBBADYCACADIAA2AgxBwPjIAEErIANBDGpB1L/BAEGswcEAEJUHAAtB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgAyAANgIMQcD4yABBKyADQQxqQdS/wQBBnMHBABCVBwALQfjQyQBBADoAAEH80MkAKAIAIQBB/NDJAEEANgIAIAMgADYCDEHA+MgAQSsgA0EMakHUv8EAQYzBwQAQlQcAC0H40MkAQQA6AABB/NDJACgCACEAQfzQyQBBADYCACADIAA2AgxBwPjIAEErIANBDGpB1L/BAEH8wMEAEJUHAAtB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgAyAANgIMQcD4yABBKyADQQxqQdS/wQBB5L/BABCVBwALQfjQyQBBADoAAEH80MkAKAIAIQBB/NDJAEEANgIAIAMgADYCDEHA+MgAQSsgA0EMakHUv8EAQfS/wQAQlQcAC0H40MkAQQA6AABB/NDJACgCACEAQfzQyQBBADYCACADIAA2AgxBwPjIAEErIANBDGpB1L/BAEGEwMEAEJUHAAtB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgAyAANgIMQcD4yABBKyADQQxqQdS/wQBBnMDBABCVBwALQfjQyQBBADoAAEH80MkAKAIAIQBB/NDJAEEANgIAIAMgADYCDEHA+MgAQSsgA0EMakHUv8EAQbTAwQAQlQcAC0H40MkAQQA6AABB/NDJACgCACEAQfzQyQBBADYCACADIAA2AgxBwPjIAEErIANBDGpB1L/BAEHMwMEAEJUHAAtB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgAyAANgIMQcD4yABBKyADQQxqQdS/wQBB3MDBABCVBwALQfjQyQBBADoAAEH80MkAKAIAIQBB/NDJAEEANgIAIAMgADYCDEHA+MgAQSsgA0EMakHUv8EAQezAwQAQlQcAC7wYAwd/AX4BeyMAQSBrIgYkAAJAAkAgACgCACIHRQRAIAAoAhAiAEUNASAAQYnAxQBBARC+AyEEDAILAkACQAJAAkACQCAAKAIIIgQgACgCBCIFTwRAIAAoAhAiAUUNASABQeC/xQBBEBC+A0UNAQwFCyAAIARBAWoiAzYCCCAEIAdqLQAAIQIgACAAKAIMQQFqIgg2AgwgCEH1A08EQCAAKAIQIgEEQCABQfC/xQBBGRC+Aw0GCyAAQQE6AAQMAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACQdEAaw4pCwoBDwEQAQEBAQEBAQEBAQQHCAEJAQEDBAMBBAMEAwIBAQQDAQEBBAMACyACQcEAaw4CDQQACyAAKAIQIgFFDREgAUHgv8UAQRAQvgMNFQwRCyAAKAIQIgFFDRNBASEEIAFBir/FAEEBEL4DRQ0TDBYLIAAgAhCxBQ0TDBILIAMgBU8NECADIAdqLQAAQe4ARg0BDBALIwBBIGsiBCQAAkACQCAAKAIARQRAIAAoAhAiAUUNASABQYnAxQBBARC+AyEBDAILIAQgABDkBiAEKAIARQRAIAAoAhAiAgRAQQEhASACQfC/xQBB4L/FACAELQAEQQFxIgIbQRlBECACGxC+Aw0DCyAAIAT9AAIA/QsCAAwBCyAAKAIQRQ0AIAD9AAIAIQogACAE/QACAP0LAgAgBCAK/QsDECAAIAFBAXEQ3wEhASAAIAT9AAMQ/QsCAAwBC0EAIQELIARBIGokACABDREMEAsgACAEQQJqNgIIIAAoAhAiAUUNDkEBIQQgAUGRvcUAQQEQvgNFDQ4MEgsgBkEYaiAAEPUFIAYoAhgiAUUEQCAGLQAcIQEgACgCECICBEBBASEEIAJB8L/FAEHgv8UAIAFBAXEiAhtBGUEQIAIbEL4DDRMLIAAgAToABAwNCyAGQQhqIAEgBigCHBDqBAJAAkACQCAGKAIIQQFHDQAgBikDECIJQgFWDQAgCadBAWsNAQwCCyAAKAIQIgFFDQ0gAUHgv8UAQRAQvgMNEQwNCyAAKAIQIgFFDQ8gAUHkwMUAQQUQvgMNEAwPCyAAKAIQIgFFDQ4gAUHpwMUAQQQQvgMNDwwOCyAGQRhqIAAQ9QUgBigCGCIBRQRAIAYtABwhASAAKAIQIgIEQEEBIQQgAkHwv8UAQeC/xQAgAUEBcSICG0EZQRAgAhsQvgMNEgsgACABOgAEDAwLIAZBCGogASAGKAIcEOoEAkAgBigCCCAGKQMQIglCgICAgBBUcUUNAEGAgMQAIAmnIgEgAUGAsANzQYCAxABrQYCQvH9JGyIBQYCAxABGDQAgACgCECEHIwBBIGsiAyQAAn9BACAHRQ0AGgJAIAcoAgBBJyAHKAIEKAIQEQIADQADQAJ/AkACQAJAAkACQCABQSJHBEAgAUGAgMQARgRAIAcoAgBBJyAHKAIEKAIQEQIADAoLAkACQAJAAkACQAJAIAFBJkwEQCABQQlrDgUBAwYGAgULIAFBJ0YNAyABQdwARw0FIANCADcBAiADQdy4ATsBAAwLCyADQgA3AQIgA0Hc6AE7AQAMCgsgA0IANwECIANB3OQBOwEADAkLIANCADcBAiADQdzcATsBAAwICyADQgA3AQIgA0HczgA7AQAMBwsgAUUNBQsgAUH/BU0NASABEIAFRQ0BDAILQYCAxAAhASAHKAIAQSIgBygCBCgCEBECAEUNBgwHCyABENcGDQELIANBEGogARDtBSADQQhqIANBGGovAAA7AQAgAyADKQAQNwMAIAMtABshBCADLQAaDAMLIAMgATYCAEGBASEEQYABDAILIANCADcBAiADQdzgADsBAAtBAiEEQQALIANBGGogA0EIai8BADsBACADIAMpAwAiCTcDEEH/AXEiASAEQf8BcSIFIAEgBUsbIQggCachAgNAIAEgCEcEQCACIQQgBUGAAU0EQCADQRBqIAFqLQAAIQQLIAFBAWohASAHKAIAIAQgBygCBCgCEBECAEUNAQwDCwtBgIDEACEBDAALAAtBAQsgA0EgaiQADQ8MDgsgACgCECIBRQ0KIAFB4L/FAEEQEL4DDQ4MCgsCQCABDQAgACgCECICRQ0AQQEhBCACQe3AxQBBARC+Aw0QCyAAKAIQIgIEQEEBIQQgAkH9usUAQQEQvgMNEAsgABDeAg0NDAgLIAMgBU8NACADIAdqLQAAQeUARg0BCwJAIAENACAAKAIQIgNFDQBBASEEIANB7cDFAEEBEL4DDQ4LIAAoAhAiAwRAQQEhBCADQfy6xQBBARC+Aw0OCyACQdIARw0BDAULIAAgBEECajYCCCAAEN4CDQoMCQsgACgCECIERQ0DIARBp8DFAEEEEL4DDQkMAwsCQCABDQAgACgCECICRQ0AQQEhBCACQe3AxQBBARC+Aw0LCyAAKAIQIgIEQEEBIQQgAkGRwMUAQQEQvgMNCwtBASEEIAAQ/AZBAXENCiAAKAIQIgJFDQcgAkGSwMUAQQEQvgNFDQMMCgsCQCABDQAgACgCECICRQ0AQQEhBCACQe3AxQBBARC+Aw0KCyAAKAIQIgIEQEEBIQQgAkH5usUAQQEQvgMNCgtBACEEAn8CQCAAKAIAIgJFDQADQAJAIAAoAggiAyAAKAIETw0AIAIgA2otAABBxQBHDQAgACADQQFqNgIIDAILAkAgBEUNACAAKAIQIgJFDQAgAkHDmsYAQQIQvgNFDQBBAQwDC0EBIABBARDfAQ0CGiAEQQFqIQQgACgCACICDQALC0EACyECIAYgBDYCBCAGIAI2AgBBASEEIAYoAgBBAXENCSAGKAIEQQFGBEAgACgCECICRQ0HIAJB+LrFAEEBEL4DDQoLIAAoAhAiAkUNBiACQaahyABBARC+A0UNAgwJCwJAIAENACAAKAIQIgJFDQBBASEEIAJB7cDFAEEBEL4DDQkLQQEhBCAAQQEQ1gENCCAAKAIAIgNFBEAgACgCECIARQ0IIABBicDFAEEBEL4DIQQMCQsgACgCCCICIAAoAgRPBEAgACgCECIBRQ0DIAFB4L/FAEEQEL4DRQ0DDAkLIAAgAkEBajYCCAJAAkACQCACIANqLQAAQdMAaw4DAgEEAAsgACgCECIBRQ0EIAFB4L/FAEEQEL4DDQgMBAsgACgCECICBEAgAkH5usUAQQEQvgMNCgsgABD8BkEBcQ0JIAAoAhAiAkUNBiACQaahyABBARC+A0UNAgwJCyAAKAIQIgQEQCAEQe7AxQBBAxC+Aw0HC0EBIQRBACEHIwBBIGsiAiQAAkACQAJAIAAoAgAiA0UNAANAAkAgACgCCCIFIAAoAgRPDQAgAyAFai0AAEHFAEcNACAAIAVBAWo2AggMAgsCQAJAIAdFDQAgACgCECIDRQ0AIANBw5rGAEECEL4DDQQgACgCAA0AIAAoAhAiBUUNAUEBIQMgBUGJwMUAQQEQvgNFDQEMBQsgAiAAQfMAEOMGIAItAABBAUYEQCACLQABIQMgACgCECIFBEAgBUHwv8UAQeC/xQAgA0EBcSIFG0EZQRAgBRsQvgMNBQsgACADOgAEIABBADYCAAwBCyAAKAIARQRAIAAoAhAiBUUNAUEBIQMgBUGJwMUAQQEQvgNFDQEMBQsgAiAAEIsDIAIoAgBFBEAgAi0ABCEDIAAoAhAiBQRAIAVB8L/FAEHgv8UAIANBAXEiBRtBGUEQIAUbEL4DDQULIAAgAzoABCAAQQA2AgAMAQsgAiAC/QACAP0LAxACQCAAKAIQIgNFDQAgAkEQaiADEJUCDQQgACgCECIDRQ0AIANBgIvIAEECEL4DDQQLQQEhAyAAQQEQ3wENBAsgB0EBayEHIAAoAgAiAw0ACwtBACEDDAELQQEhAwsgAkEgaiQAIANBAXENCCAAKAIQIgJFDQUgAkHxwMUAQQIQvgNFDQEMCAtBASEEIABBARDfAQ0HCyABDQMgACgCECIBRQ0DQQEhBCABQZK9xQBBARC+A0UNAwwGC0EAIQQgAEEAOgAEIABBADYCAAwFC0EAIQQgAEEANgIADAQLIAAgAhCxBQ0BC0EAIQQgACgCAEUNAiAAIAAoAgxBAWs2AgwMAgtBASEEDAELQQAhBAsgBkEgaiQAIAQL8wsBHX8jAEEwayIBJAAgABDPBSAAQcABakEAOgAAIABCADcCuAECQAJAAkACQAJAAkAgACgCjAEiBUGAgICAeEYgACgCmAEiA0GAgICAeEZxRQRAIAVBgICAgHhHIANBgICAgHhHcUUEQCABQQA2AiggAUEBNgIcIAFB4MLBADYCGCABQgQ3AiAgAUEYahDFByEDDAQLIABBgIAEEPcEIAAoAqgBIglBAnQQ9wkhDwJAIAAoAjxFDQAgACgCQCIDQYQISQ0AIAMQzQcLIAAgDzYCQCAAQQE2AjwgACgCjAEiEEGAgICAeEYNAiAAKAKYASIRQYCAgIB4Rg0BAkAgCUUNACAAKAKQASEYIAAoApwBIRkgACgCoAEhEiAAKAKUASETIAAoArQBIRogACgCsAEhGyAAKAKIASEUIAAoAoQBIRUgACgCfCEWIAAoAnghCkEAIQMCQAJAAkADQEGAgAQgCSADayIFIAVBgIAETxsiBEECdCICIBZLDQMgAiAUSw0CIAEgGyADQQJ0IgsgAyAEaiIFQQJ0IhcQoAkiBxCDCyIGNgIUIAEgAjYCCCACIAZHDQkgCiACIAcQqwogB0GECE8EQCAHEM0HCyABIBogCyAXEKAJIgcQgwsiBjYCFCABIAI2AgggAiAGRw0JIBUgAiAHEKsKIAdBhAhPBEAgBxDNBwsCQCADIAlHBEAgBEEEdCEcIAsgGWohDCAYIANBAXRqIQ1BASAEIARBAU0bQQR0IR1BACEEA0ACfwJAIAQgHEcEQCABIAQgCmoiDikCADcCCCABIA5BCGoqAgA4AhAgDkEMaigCACIGQf//AXFFBEAgBkEQdAwDCyAGQf8HcSEHIAZBgIACcSEIIAZBgPgBcSIGQYD4AUYEQCAIQRB0IQYgBkGAgID8B3IgB0UNAxogBiAHQQ10ckGAgID+B3IMAwsgCEEQdCEIIAZFDQEgBkENdEGAgID8AHEgB0ENdHJBgICAwANqIAhyDAILIAJBBGogAkGY0MEAEKIKAAsgCEGAgIDYA3IgB2dBEGsiBkEXdGsgByAGQf//A3FBCGp0Qf///wNxcgshByABQRhqIgYgBCAVakEEEKUDIAMgE08NAiADIBJPDQQgDiABQQhqIAe+IAYgDS8BACAMKAIAEKICIAxBBGohDCANQQJqIQ0gA0EBaiEDIB0gBEEQaiIERw0ACwsgASAPIAsgFxCgCSIDEIMLIgQ2AhQgASACNgIIIAIgBEcNCiADIAogAhCpCiADQYQITwRAIAMQzQcLIAUiAyAJSQ0BDAULCyADIBNBqNDBABC/BwALIAMgEkG40MEAEL8HAAsgAiAUQYjQwQAQogoACyACIBZB+M/BABCiCgALIBFBgICAgHhyQYCAgIB4RwRAIAAoApwBIgNBBGsoAgAiBUF4cSICIBFBAnQiBEEEQQggBUEDcSIFG2pJDQYgBUEAIAIgBEEnaksbDQcgAxC0AgsgAEGAgICAeDYCmAEgEEGAgICAeHJBgICAgHhHBEAgACgCkAEiA0EEaygCACIFQXhxIgIgEEEBdCIEQQRBCCAFQQNxIgUbakkNBiAFQQAgAiAEQSdqSxsNByADELQCCyAAQYCAgIB4NgKMAQtBACEDIABBADYCfCAAKAJ4IQUgACgCdCECIABCgICAgMAANwJ0IAIEQCAFQQRrKAIAIgRBeHEiByACQQJ0IgJBBEEIIARBA3EiBBtqSQ0FIARBACAHIAJBJ2pLGw0GIAUQtAILIABBADYCiAEgACgChAEhBSAAKAKAASECIABCgICAgMAANwKAASACRQ0CIAVBBGsoAgAiAEF4cSIEIAJBAnQiAkEEQQggAEEDcSIAG2pJDQQgAEEAIAQgAkEnaksbDQUgBRC0AgwCC0Hoz8EAEKQKAAtB2M/BABCkCgALIAFBMGokACADDwsgAUEANgIYQQAgAUEUaiABQQhqIAFBGGpB3IHFABCuCAALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC5sOAwp/A34CeyMAQaACayIEJAACQAJAAkACQAJAAkACQAJAAkAgASgCECIFKAIwIgcOAgUBAAsgBSkDGCAFKQMgIAIgAxC6BCEOIAUoAjgiCSAOp3EhBiAOQhmIQv8Ag0KBgoSIkKDAgAF+IRAgBSgCNCILQQRrIQwgBSgCLCEIA0AgBiALaikAACIPIBCFIg5Cf4UgDkKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIOUEUEQANAIAwgDnqnQQN2IAZqIAlxQQJ0aygCACIFIAdPDQQgCCAFQbgBbGoiDUGsAWooAgAgA0YEQCACIA1BqAFqKAIAIAMQkAhFDQcLIA5CAX0gDoMiDlBFDQALCyAPIA9CAYaDQoCBgoSIkKDAgH+DUEUNBSAKQQhqIgogBmogCXEhBgwACwALIAMgBSgCLCIIQawBaigCAEYNAQwDCyAFIAdBuKXIABC/BwALIAIgCCgCqAEgAxCQCA0BQQAhBQsgBSAHTwRAIABCAzcDACAAQYSAgIB4NgIIDAQLIAggBUG4AWxqIgMtAKABDQECQCADLQBoQQNGBEAgAykDYCEODAELIAEoAgQiAq0hDwJAAkACQCACQv////8PIAMpA1AiDiAOQv////8PWhunayIFQQAgAiAFTxtBHU0EQEHgocgAKQMAIhCnIQMCQCAQQv8Bg0IEUQRAIAEgDkIefDcDCCADQf8BcUEERw0BDAMLIAEgDzcDCCADQf8BcUEERg0CCyAQQiCIpyECIBBCCIinIgUhAQJAAkACQAJAIANB/wFxIgZBAWsOAwEAAAILIAItAAghAQsgAUH/AXFBJUYNAQsgBCACNgKsASAEQYGAgIB4NgKkASAEIAVBCHQgBnI2AqgBDAMLIARBATYCJCAEQfClxwA2AiAgBEIBNwIsIARBHjYCRCAEQb2lxwA2AkAgBCAEQUBrrUKAgICAIIQ3AzggBCAEQThqNgIoIARBpAFqIARBIGoQ4gQgA0H/AXFBA0cNAiACKAIAIQEgAkEEaigCACIDKAIAIgUEQCABIAURAwALIAMoAgQiBQRAIAEgBSADKAIIENYHCyACQQxBBBDWBwwCCyABIA5CHnwiEDcDCCABKAIAIA4gDyAOIA9UG6dqIgIoAABB0JaNIEYNAgsgBEGsAWpBnKbHACgCADYCACAEQZSmxwApAgA3AqQBCyAEIAQpAKUBNwAVIAQgBC0ApAE6ABQgBCAELQCvAToAHyAEIAQvAK0BOwAdIAQoAhQhASAAIAQpAhg3AgwgACABNgIIIABCAzcDAAwFCyAEQb0BaiIFIAJBHGovAAA7AAAgBEG1AWogAkEUaikAADcAACAFMwAAIQ4gBDMAuwEhDyAEQgE3A6ABIAQgDiAPIBB8fCIONwOoASADQeAAaiAEQaABahD7BgsgASAONwMIIAQgAykDQCIONwMIIAQgDjcDAAJAIAMvAYQBIglBAkYEf0GDgICAeAUgAy8BIEUNAUGFgICAeAshCCAAQSA2AhAgAEGYpMcANgIMIAAgCDYCCCAAQgM3AwAMBAsgBCkCBCEPIAMoAogBIQpBgMAAEH4iCEUNAiAOQiCIpyECIA6nIQUgD0IgiKchBiAPpyEHAn4gCUUEQCAEIAT9AANI/QsDkAH9DAAAAAAAIAAAAAAAAAAAAAAgCP0cACERIAX9ESAH/RwBIAb9HAIgAv0cAyESQQAhB0ICIQ9CAAwBCyAEIAE2ArABIAQgAjYCrAEgBCAGNgKoASAEIAc2AqQBIAQgBTYCoAEgBCAE/QADSP0LA7gBIARByAFqEL4EIARB4ABqIARB8AFq/QADAP0LAwAgBEHwAGogBEGAAmr9AAMA/QsDACAEQYABaiAEQZACav0AAwD9CwMAIAQgBP0AA9gB/QsDkAEgBCAEKQPoATcDWCAEQcABav0ABAAhEiAEKALUASEFIAQoAtABIQEgBCgCtAEhBiAEKAKwASEHIAT9AASgASERQgAhDyAEKQO4AQshDkG4ARB+IgJFDQIgAiAFNgJUIAIgATYCUCACIBL9CwNAIAIgDjcDOCACIAY2AjQgAiAHNgIwIAIgEf0LAyAgAiAPNwMYIAJCADcCDCACQoDAADcCBCACIAg2AgAgAiAE/QADkAH9CwNYIAIgBCkDWDcDaCACQfAAaiAEQeAAav0AAwD9CwMAIAJBgAFqIARB8ABq/QADAP0LAwAgAkGQAWogBEGAAWr9AAMA/QsDACACQQE6ALQBIAIgCjYCsAEgAkEANgKoASACQgA3A6ABIABCAjcDACAAIAM2AgggAEECNgKoASAAIAI2AqwBDAMLIABCAzcDACAAQYSAgIB4NgIIDAILIABBITYCECAAQZylxwA2AgwgAEGDgICAeDYCCCAAQgM3AwAMAQsACyAEQaACaiQAC80KAQ1/IwBB8ABrIgQkAAJAAkACQAJAAkACQAJAAkACQCABKAIoQQJHBEAgASgC5AFBOGwhAyABKALgAUEYaiECAkACQAJAA0AgAiEBIANFDQEgA0E4ayEDIAFBOGohAkHwxccAQREgAUEEaygCACABKAIAENcDRQ0ACyABQRhrIgEoAhgiCEEASA0EIAEoAhQhAgJAIAhFBEBBASELDAELIAgQfiILRQ0KCyAIBEAgCyACIAj8CgAACyABKAIkIglBAEgNCyABKAIgIQICQCAJRQRAQQEhDAwBCyAJEH4iDEUNCgsgCQRAIAwgAiAJ/AoAAAsgASgCMCIKQQBIDQsgASgCLCECAkAgCkUEQEEBIQ0MAQsgChB+Ig1FDQoLIAoEQCANIAIgCvwKAAALIAEoAgBBAUYEQCABKAIMIgJBAEgNDCABKAIIIQECQCACRQRAQQEhBQwBCyACEH4iBUUNCwsgAgRAIAUgASAC/AoAAAsgBEEoOgAMIAIhAQwHCyABKAIMIgNBAEgNBSABKAIIIQECQCADRQRAQQEhBwwBCyADEH4iB0UNCgsgAwRAIAcgASAD/AoAAAsgBEEsaiAHIANBgICAARDuASAEKAIwIQICQCAEKAIsIgFBAUYEQCAEQR46AAwgAkGAgICAeEYNASAEQQQ6AA0gAkUNBCAEKAI0IgFBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIAJqSQ0OIAVFIAYgAkEnak1yDQMMDAsgBEEsaiAEKAI0IgUgBCgCOCIBEJ8DIAQoAixBAUYEQCACBEAgBUEEaygCACIBQXhxIgZBBEEIIAFBA3EiARsgAmpJDQ8gAUEAIAYgAkEnaksbDQ0gBRC0AgsgBEEeOwEMDAQLIAMEQCAHQQRrKAIAIgZBeHEiDkEEQQggBkEDcSIGGyADakkNDiAGQQAgDiADQSdqSxsNDCAHELQCCyAEQSg6AAwgAUEATg0HDAwLIARBAzoADSABDQIgBCgCNCIBQQRrKAIAIgJBeHFBhICAgHhBiICAgHggAkEDcSIFG0kNDCAFRSACQaiAgIB4SXINAQwKCyAAQoaAgICAgICAgH83AwAMBwsgARC0AgsgACAEQQxqEJ0EDAQLQeSfxwAQpAoAC0Gg98EAELcIDAQLQfykyAAQtwgACwJAIAFFBEBBASEHIAFFIgNFBEBBASAFIAH8CgAACyADDQFBAUEBIAH8CgAADAELIAEQfiIDRQ0DIAFFIgZFBEAgAyAFIAH8CgAACyABEH4iB0UNAyAGRQRAIAcgAyAB/AoAAAsgA0EEaygCACIGQXhxIg5BBEEIIAZBA3EiBhsgAWpJDQYgBkEAIA4gAUEnaksbDQQgAxC0AgsgACABNgIMIAAgBzYCCCAAIAE2AgQgAEEGNgIAIAUhByACIQMLIAgEQCALQQRrKAIAIgBBeHEiAUEEQQggAEEDcSIAGyAIakkNBSAAQQAgASAIQSdqSxsNAyALELQCCyAJBEAgDEEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgCWpJDQUgAEEAIAEgCUEnaksbDQMgDBC0AgsgCgRAIA1BBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIApqSQ0FIABBACABIApBJ2pLGw0DIA0QtAILIANFDQAgB0EEaygCACIAQXhxIgFBBEEIIABBA3EiABsgA2pJDQQgAEEAIAEgA0EnaksbDQIgBxC0AgsgBEHwAGokAA8LAAtBoIzIAEEuQdCMyAAQoggAC0Gg98EAELcIAAtB4IvIAEEuQZCMyAAQoggAC+kNAQF/IwBBMGsiAiQAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAtAABBAWsOHAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwACyACIABBBGo2AgwgAkEBNgIUIAJB8PrEADYCECACQgE3AhwgAiACQQxqrUKAgICAsAiENwMoIAIgAkEoajYCGCABKAIAIAEoAgQgAkEQahDkAwwcCyACIABBAWo2AgwgAkEBNgIkIAJBmPvEADYCICACQQE2AhQgAkGQ+8QANgIQIAJBATYCHCACIAJBDGqtQoCAgIDgCIQ3AyggAiACQShqNgIYIAEoAgAgASgCBCACQRBqEOQDDBsLIAIgAEEBajYCDCACQQE2AiQgAkGY+8QANgIgIAJBATYCFCACQcj7xAA2AhAgAkEBNgIcIAIgAkEMaq1CgICAgOAIhDcDKCACIAJBKGo2AhggASgCACABKAIEIAJBEGoQ5AMMGgsgASgCAEHQ+8QAQR0gASgCBCgCDBEAAAwZCyACIABBAWo2AgwgAkEBNgIkIAJBmPvEADYCICACQQE2AhQgAkGE/MQANgIQIAJBATYCHCACIAJBDGqtQoCAgIDgCIQ3AyggAiACQShqNgIYIAEoAgAgASgCBCACQRBqEOQDDBgLIAEoAgBBjPzEAEERIAEoAgQoAgwRAAAMFwsgASgCAEGd/MQAQSYgASgCBCgCDBEAAAwWCyABKAIAQcP8xABBGiABKAIEKAIMEQAADBULIAEoAgBB3fzEAEEZIAEoAgQoAgwRAAAMFAsgASgCAEH2/MQAQQ8gASgCBCgCDBEAAAwTCyABKAIAQYX9xABBEyABKAIEKAIMEQAADBILIAIgAEEBajYCDCACQQE2AiQgAkGY+8QANgIgIAJBATYCFCACQbT9xAA2AhAgAkEBNgIcIAIgAkEMaq1CgICAgPAIhDcDKCACIAJBKGo2AhggASgCACABKAIEIAJBEGoQ5AMMEQsgAiAAQQFqNgIMIAJBATYCFCACQeD9xAA2AhAgAkIBNwIcIAIgAkEMaq1CgICAgIAJhDcDKCACIAJBKGo2AhggASgCACABKAIEIAJBEGoQ5AMMEAsgAiAAQQFqNgIMIAJBATYCFCACQYT+xAA2AhAgAkIBNwIcIAIgAkEMaq1CgICAgIAJhDcDKCACIAJBKGo2AhggASgCACABKAIEIAJBEGoQ5AMMDwsgASgCAEGM/sQAQRQgASgCBCgCDBEAAAwOCyABKAIAQaD+xABBESABKAIEKAIMEQAADA0LIAEoAgBBsf7EAEERIAEoAgQoAgwRAAAMDAsgAiAAQQFqNgIMIAJBATYCJCACQZj7xAA2AiAgAkEBNgIUIAJB2P7EADYCECACQQE2AhwgAiACQQxqrUKAgICAkAmENwMoIAIgAkEoajYCGCABKAIAIAEoAgQgAkEQahDkAwwLCyABKAIAQeD+xABBGCABKAIEKAIMEQAADAoLIAIgAEEBajYCDCACQQE2AhQgAkGU/8QANgIQIAJCATcCHCACIAJBDGqtQoCAgICACYQ3AyggAiACQShqNgIYIAEoAgAgASgCBCACQRBqEOQDDAkLIAIgAEEBajYCDCACQQE2AhQgAkHA/8QANgIQIAJCATcCHCACIAJBDGqtQoCAgICgCYQ3AyggAiACQShqNgIYIAEoAgAgASgCBCACQRBqEOQDDAgLIAIgAEEBajYCDCACQQE2AhQgAkHs/8QANgIQIAJCATcCHCACIAJBDGqtQoCAgICgCYQ3AyggAiACQShqNgIYIAEoAgAgASgCBCACQRBqEOQDDAcLIAIgAEEBajYCDCACQQE2AhQgAkGYgMUANgIQIAJCATcCHCACIAJBDGqtQoCAgICgCYQ3AyggAiACQShqNgIYIAEoAgAgASgCBCACQRBqEOQDDAYLIAEoAgBBoIDFAEEYIAEoAgQoAgwRAAAMBQsgAiAAQQRqNgIMIAJBATYCFCACQdCAxQA2AhAgAkIBNwIcIAIgAkEMaq1CgICAgMAHhDcDKCACIAJBKGo2AhggASgCACABKAIEIAJBEGoQ5AMMBAsgAiAAQQRqNgIMIAJBATYCFCACQeyAxQA2AhAgAkIBNwIcIAIgAkEMaq1CgICAgMAHhDcDKCACIAJBKGo2AhggASgCACABKAIEIAJBEGoQ5AMMAwsgASgCAEH0gMUAQRUgASgCBCgCDBEAAAwCCyABKAIAQYmBxQBBEiABKAIEKAIMEQAADAELIAEoAgBBm4HFAEEOIAEoAgQoAgwRAAALIAJBMGokAAvyDAIOfwN+IwBBIGsiAyQAAkACQCAAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAqgBQQFrDgIBAgALIANBEGohBQJAAkBBJRB+IgFFDQAgAUEdakHVpMcAKQAANwAAIAFBEGpByKTHAP0AAAD9CwAAIAFBuKTHAP0AAAD9CwAAQQwQfiICRQ0AIAJBJTYCCCACIAE2AgQgAkElNgIAQQwQfiIBRQ0AIAFBKDoACCABQfCkxwA2AgQgASACNgIAIAUgAa1CIIZCA4Q3AgAMAQsACwwCCyADQRBqIAFBsAFqIAIQgAIMAQsgASgCrAEhCiACKAIAIhAhBSACKAIIIgwhBwJ/AkAgECAMa0EgTw0AIANBEGogCiACELQEAkBBAAJ/IAMtABBBBEYEQCADKAIUDAELIAMpAxAiEUIgiCETIBFC/wGDQgRSDQEgE6cLRQ0CGiACKAIAIQUgAigCCCEHDAELIBFCgH6DIRIMBgtBgMAAIQtBACEBA0ACQCAFIBBHIAUgB0dyRQRAIANBEGogCiACELQEAkACQAJ/IAMtABBBBEYEQCADKAIUDAELIAMpAxAiEUIgiCETIBFC/wGDQgRSDQEgE6cLDQEgAigCCCEHDAMLIBFCgH6DIRIMCQsgAigCCCEHIAIoAgAhBQsCQCAFIAdHBEAgBSAHayENIAIoAgQhBAwBC0IBIRFCgMwAIRJCACETIAVBIGoiCCAFQQF0IgQgBCAISRsiCEEASA0IIAMgBQR/IAMgBTYCGCADIAIoAgQ2AhBBAQVBAAs2AhQgA0EEakEBIAggA0EQahDSByADKAIEQQFGDQggAygCCCEEIAIgCDYCACACIAQ2AgQgCCAFayENIAghBQsgBCAHaiEOIAsgDSALIA1JGyIIIAFrIgQEQCABIA5qQQAgBPwLAAsgA0EQaiAKIA4gCBD7AgJAIAMtABBBBEYNACADKQMQIhJCIIgiE6chBEIAIRECQAJAAkACQAJAIBKnQf8BcUEBaw4EAgEABAwLIAQtAAhBI0YNAgwKCyAELQAIQSNGDQFCAiERDAoLIBJCgP4Dg0KAxgBRDQBCASERDAkLAn8gEkL/AYNCA1EEQCAEKAIAIQEgBEEEaigCACIGKAIAIgkEQCABIAkRAwALIAYoAgQiBgRAIAFBBGsoAgAiCUF4cSIPQQRBCCAJQQNxIgkbIAZqSQ0RIAlBACAPIAZBJ2pLGw0SIAEQtAILIARBBGsoAgAiAUF4cSIGQRBBFCABQQNxIgEbSQ0QIAFBACAGQTRPG0UEQEEADAILDBELQQELIQEDQAJAAkACQAJAIAFFBEAgBBC0AgwBCyADQRBqIAogDiAIEPsCIAMtABBBBEYNBiADKQMQIhJCIIgiE6chBAJAAkACQAJAIBKnQf8BcUEBaw4EAgABCRELIAQtAAhBI0YNAkICIREMEAsgBC0ACEEjRw0ODAELIBJCgP4Dg0KAxgBSDQMLIBJC/wGDQgNRDQELQQEhAQwDCyAEKAIAIQEgBEEEaigCACIGKAIAIgkEQCABIAkRAwALIAYoAgQiBgRAIAFBBGsoAgAiCUF4cSIPQQRBCCAJQQNxIgkbIAZqSQ0SIAlBACAPIAZBJ2pLGw0TIAEQtAILIARBBGsoAgAiAUF4cSIGQRBBFCABQQNxIgEbSQ0RIAFFIAZBNElyDQEMEgtCASERDAoLQQAhAQwACwALIAIgBzYCCAwBCyADKAIUIgEgCEsEQEHsoscAQTZBpKPHABCiCAALIAIgASAHaiIHNgIIIAFFDQBBfyALQQF0IAtBAEgbIAsgASAIRhsgCyALIA1NGyELIAggAWshAQwBCwsgByAMawshASAKLQC0AUEBRw0GIAIoAggiBSAMSQ0BIApBoAFqIAIoAgQgDGogBSAMaxDLASAKKAKwASAKKAKoAUYNBiADQRBqQRVBqKbIAEEQELUHCyADLQAQIQEMBAsgDCAFQZiyxwAQowoAC0IDIRELIAIgBzYCCCASQoB+gyESCyADIBM+AhQgAyARpyIBOgAQIAMgEqciAkEYdjoAEyADIAJBCHY7ABELIAFB/wFxQQRHDQEgAygCFCEBCyAAIAGtNwMIQQAMAQsgACADKQMQNwIEQQELNgIAIANBIGokAA8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC7QMAgx/AX4jAEHgBGsiCSQAQQYhCwJAAkACQAJAAkACQAJAIAEoAgAiCkGAgICAeEYNACAJQRBqIAEoAgQiDCABKAIIEMoFIAktABBBAUYEQCAJKAIUIQEgCUEANgKkAyAJQoCAgIAQNwKcAyAJQcz1wAA2AtwBIAlCoICAgA43AuABIAkgCUGcA2o2AtgBIAEgCUHYAWoQ2QQNAiAJKAKcAyELIAkoAqADIg0gCSgCpAMQrAkhDyALBEAgDUEEaygCACIOQXhxIhBBBEEIIA5BA3EiDhsgC2pJDQcgDkEAIBAgC0EnaksbDQggDRC0AgsgAEEANgIAIAAgDzYCBCABIAEoAgAoAgARAwAgCgRAIAxBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIApqSQ0HIABBACABIApBJ2pLGw0IIAwQtAILIAdFIAhBhAhJckUEQCAIEM0HCyAFRSAGQYQISXJFBEAgBhDNBwsgA0UgBEGECElyRQRAIAQQzQcLIAIoAgAiAEGAgICAeHJBgICAgHhGDQUgAigCBCIBQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyAAakkNBiACQQAgAyAAQSdqSxsNByABELQCDAULIAktABEhCyAKRQ0AIAxBBGsoAgAiAUF4cSINQQRBCCABQQNxIgEbIApqSQ0FIAFBACANIApBJ2pLGw0GIAwQtAILQQQhAUEAIQpBABD3CSETQQAQ9wkhFEEAIQxBBCENAkAgA0EBcUUNACAJQdgBaiAEEMwGIAkoAuABIQ8gCSgC3AEhDSAJKALYASEMIARBhAhJDQAgBBDNBwtBACEEAkAgBUEBcUUNACAJQdgBaiAGEMwGIAkoAuABIQQgCSgC3AEhASAJKALYASEKIAZBhAhJDQAgBhDNBwtBBCEGQQAhBUEAIQNBBCEQAkAgB0EBcUUNACAJQZwDaiAIQQAQpgkiBxDMBiAJQdgBaiAIQQEQpgkiEhDMBiAJKALgASERIAkoAtwBIRAgCSgC2AEhDiAJKAKkAyEDIAkoAqADIQYgCSgCnAMhBSASQYQITwRAIBIQzQcLIAdBhAhPBEAgBxDNBwsgCEGECEkNACAIEM0HCyAJIBQ2AowDIAkgEzYCiAMgCUEANgKEAyAJQgA3AvwCIAlBgICAgHg2AvACIAlBgICAgHg2AuQCIAlCBDcC3AIgCUIANwLUAiAJQoCAgIDAADcCzAIgCSARNgLIAiAJIBA2AsQCIAkgDjYCwAIgCSADNgK8AiAJIAY2ArgCIAkgBTYCtAIgCSAENgKwAiAJIAE2AqwCIAkgCjYCqAIgCSAPNgKkAiAJIA02AqACIAkgDDYCnAIgCUEANgKUAiAJQQA2AogCIAlBADYCgAIgCUEANgL4ASAJQQA2AvABIAlBADYC6AEgCUEANgLgASAJQQA2AtgBIAlBmANqQQA6AAAgCUIANwKQAyACKAIAIQMgAigCBCEFIAIoAgghAQJ/IAtBBkcEQCAJQQhqIAsgCUHYAWoQ+QMgCSgCDCEEIAkoAgghB0ECDAELIAlBnANqIAlB3AFqQcAB/AoAAEEAIQdBAAshBkGAgICAeCEIIANBgICAgHhHBEAgAUEASA0CAkAgAUUEQEEBIQgMAQsgARB+IghFDQQLIAEEQCAIIAUgAfwKAAALIAitIAGtQiCGhCEVIAEhCAsgCUEYaiICIAlBnANqQcAB/AoAAEH0ARB+IgFFDQIgASAGNgIAIAFBBGogAkHAAfwKAAAgASALOgDwASABIAQ2AuwBIAEgBzYC6AEgAUGAgICAeDYC3AEgASAVNwLUASABIAg2AtABIAFBADYCzAEgAUKAgICAEDcCxAEgAEH48cEANgIMIABBATYCCCAAQeDxwQA2AgQgACABNgIAIANBgICAgHhyQYCAgIB4Rg0DIAVBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIANqSQ0EIABBACABIANBJ2pLGw0FIAUQtAIMAwtBjJvGAEE3IAlB3wRqQeT1wABBxJvGABCVBwALQfykyAAQtwgLAAsgCUHgBGokAA8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC4ANARV/IwBBQGoiBSQAAkAgAS0A+AJBCEcEQAJAAkAgAwRAIAFByAJqIRQgAUH9AmohDyAFQSBqQQVyIRUgBUEQaiERIAFB4AJqIRggAyEJA0AgBUEeaiIWIA9BAmoiEi0AADoAACABLQD4AiEOIAFBCDoA+AIgBSAPLwAAOwEcAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgDkEIRwRAIAEoAoQDIQggASgCgAMhECABKAD5AiETIA5BBmtB/wFxQQFqQQAgDkEFSxtBAWsOAgIDAQtBsKzFABCkCgALIBUgDy8AADsAACAVQQJqIBItAAA6AAAgBSATNgAhIAUgDjoAICAFIBA2AjQgCUEESSAIckUEQCAFQQhqIAEgBUEgaiACIARBBBA8DAULIAlBBCAIayIGIAYgCUsbIgYgCGoiByAGSQ0GIAdBBEsNByAGBEAgBUE0aiAIaiACIAb8CgAACyAHQQRHDQMgBUEIaiABIAVBIGogBUE0aiAEIAYQPAwECyABKALcAiIGRQ0EIAEoAuACIAEoAugCayIHIAkgByAJSRsiByAGIAYgB0sbIQwgAS0AkQNFBEAgFCACIAwQywELIAEtAOwCDQ8gASgC6AIiCiABKALgAiIHRwRAIAohBgwPCyABKAKIAyIGRQ0BIAEgBiAGIAogBiAKSRsiDWs2AogDQQAhB0EAIQYgCkUNDiAKIA1qIgdBAE4EfyAFIAo2AjwgBUEBNgI4IAUgASgC5AI2AjQgBUEoakEBIAcgBUE0ahDSByAFKAIoQQFHDQggBSgCMCELIAUoAiwFIAYLQdCsxQAQ0AkACyABKALcAiIGIAkgBiAJSRsiCiEHIAQNBwwICyAFQSc6AAwMCAsgASAHNgKEAyABIAUoAjQ2AoADIAEgBSkDIDcD+AIgBUEAOgAQIAUgBjYCDCAFQQA2AggLIAUoAghBAXENByAFLQAQIQYMDAsgAUIANwOAAyABQQQ6APgCQQAhBiARQQA6AAAgBUIANwMIDAsLIAggB0HArMUAEKUKAAsgB0EEQcCsxQAQogoACyAFKAIsIQYgASAHNgLgAiABIAY2AuQCIAEoAugCIQYMBgsgASgC8AIiDS0AowdBB0YNAAJAIAEtAPQCDQAgAS0A9QJFDQAgDUEBOgCmBwsgBCgCBCIHIAQoAgwiDCgCACIZQYBAayILIAcgC0kbIgsgBCgCCCIXKAIAIgdJDQMgBUE0aiANIAIgCiAEKAIAIAdqIAsgB2sgGSAHa0EAEEggBS0ANEUEQCAFKAI4IQcgDCAMKAIAIAUoAjxqIgs2AgACQCANLQCjB0EHRwRAIAtBgIACSQ0BIAtBgIACayILIBcoAgBNDQELIBcgCzYCAAsgAUEBOgD0AgwBCyAFIAUtADU6AA0gBUEcOgAMDAELIAEtAJEDRQRAIAcgCksNBCAUIAIgBxDLASABKALcAiEGCyABIAYgB2s2AtwCAkAgBiAHRgRAQQQhDkEAIRBBACEIDAELIA8gBS8BHDsAACASIBYtAAA6AAALIAEgCDYChAMgASATNgD5AiABIA46APgCIAEgEDYCgANBBSEGIAVBBToAECAFIAc2AgwgBUEANgIIDAYLIAVBATYCCAsgACAF/QADCP0LAgAgAEEQaiAFQRhqKAIANgIADAoLIAcgC0Gst8UAEKUKAAsgByAKQeCsxQAQogoACyAHIAZrIAxJBEAgGCAGIAwQowYgASgC6AIhBgsgDARAIAEoAuQCIAZqIAIgDPwKAAALIAEgBiAMajYC6AILIAEgASgC3AIiCyAMazYC3AJBBCEKQQAhBkEAIQdBACENIAsgDEcEQCAPIAUvARw7AAAgEiAWLQAAOgAAIA4hCiAIIQ0gECEHCyABIA02AoQDIAEgEzYA+QIgASAKOgD4AiABIAc2AoADIAVBADoAECAFIAw2AgwgBUEANgIICyAFKAIMIQggBkH/AXENAyAIIAlLDQIgAiAIaiECIAkgCGsiCQ0ACwsgAEEAOgAIIAAgAzYCBCAAQQA2AgAMAwsgCCAJQZCsxQAQowoACyAIIAlNBEAgAEEANgIAIAAgESkCADcCCCAAQRBqIBFBCGooAgA2AgAgACADIAlrIAhqNgIEDAILIAggCUGgrMUAEKMKAAsgAEECNgIIIABBJjoABCAAQQE2AgALIAVBQGskAAv9DQEFfyMAQTBrIgIkAAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4FAQIDBAUAC0EBIQMgASgCACIEQaytxwBBCCABKAIEIgYoAgwiBREAAA0GIABBBGohAAJAIAEtAApBgAFxRQRAIARB+brFAEEBIAURAAANCCAAIAEQtQZFDQEMCAsgBEGMocIAQQIgBREAAA0HIAJBAToAKCACIAY2AgwgAiAENgIIIAJB5KDCADYCGCACIAEpAgg3AhwgAiACQShqNgIQIAIgAkEIajYCFCAAIAJBFGoQtQYNByACKAIUQYOhwgBBAiACKAIYKAIMEQAADQcLIAEoAgBBpqHIAEEBIAEoAgQoAgwRAAAhAwwGC0EBIQMgASgCACIEQbStxwBBCCABKAIEIgYoAgwiBREAAA0FIABBBGohAAJAIAEtAApBgAFxRQRAIARB+brFAEEBIAURAAANByAAIAEQtgZFDQEMBwsgBEGMocIAQQIgBREAAA0GIAJBAToAKCACIAY2AgwgAiAENgIIIAJB5KDCADYCGCACIAEpAgg3AhwgAiACQShqNgIQIAIgAkEIajYCFCAAIAJBFGoQtgYNBiACKAIUQYOhwgBBAiACKAIYKAIMEQAADQYLIAEoAgBBpqHIAEEBIAEoAgQoAgwRAAAhAwwFC0EBIQMgASgCACIEQbytxwBBCSABKAIEIgYoAgwiBREAAA0EIABBBGohAAJAIAEtAApBgAFxRQRAIARB+brFAEEBIAURAAANBiAAIAEQtwZFDQEMBgsgBEGMocIAQQIgBREAAA0FIAJBAToAKCACIAY2AgwgAiAENgIIIAJB5KDCADYCGCACIAEpAgg3AhwgAiACQShqNgIQIAIgAkEIajYCFCAAIAJBFGoQtwYNBSACKAIUQYOhwgBBAiACKAIYKAIMEQAADQULIAEoAgBBpqHIAEEBIAEoAgQoAgwRAAAhAwwEC0EBIQMgASgCACIEQcWtxwBBBiABKAIEIgYoAgwiBREAAA0DIABBCGohAAJAAkAgAS0ACkGAAXFFBEAgBEH5usUAQQEgBREAAA0GIAIgADYCCCABKAIAQeStxwBBCiABKAIEKAIMEQAAIQAgAkEAOgAZIAIgADoAGCACIAE2AhQgAkEUakGwlcgAQQQgAkEIakHUrccAEL0FIQAgAi0AGCIEQQFxIAItABkiBUEBR3JFBEAgACgCACIALQAKQYABcQ0CIAAoAgBB8cDFAEECIAAoAgQoAgwRAABFDQMMBwsgBQ0GIARBAXFFDQIMBgsgBEGMocIAQQIgBREAAA0FIAIgBjYCDCACIAQ2AgggAkEBOgAHIAJB5KDCADYCGCACIAEpAgg3AhwgAiACQQdqNgIQIAIgAkEIaiIDNgIUIAIgADYCJCADQeStxwBBChDYAyEAIAJBADoALSACIAA6ACwgAiACQRRqNgIoIAJBKGpBsJXIAEEEIAJBJGpB1K3HABC9BSEAAkACQCACLQAsIgNBAXEgAi0ALSIEQQFHckUEQCAAKAIAIgAtAApBgAFxDQEgACgCAEHxwMUAQQIgACgCBCgCDBEAAA0HDAILIAQNBiADQQFxRQ0BDAYLIAAoAgBBkr3FAEEBIAAoAgQoAgwRAAANBQsgAigCFEGDocIAQQIgAigCGCgCDBEAAEUNAUEBIQMMBQsgACgCAEGSvcUAQQEgACgCBCgCDBEAAA0ECyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMAwtBASEDIAEoAgAiBEHNnsgAQQsgASgCBCIGKAIMIgURAAANAiAAQQRqIQACQCABLQAKQYABcUUEQCAEQfm6xQBBASAFEQAADQQgACABELgGRQ0BDAQLIARBjKHCAEECIAURAAANAyACQQE6ACggAiAGNgIMIAIgBDYCCCACQeSgwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqELgGDQMgAigCFEGDocIAQQIgAigCGCgCDBEAAA0DCyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMAgtBASEDIAEoAgAiBEHLrccAQQcgASgCBCIGKAIMIgURAAANASAAQQRqIQACQCABLQAKQYABcUUEQCAEQfm6xQBBASAFEQAADQMgACABELwCRQ0BDAMLIARBjKHCAEECIAURAAANAiACQQE6ACggAiAGNgIMIAIgBDYCCCACQeSgwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqELwCDQIgAigCFEGDocIAQQIgAigCGCgCDBEAAA0CCyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMAQtBASEDCyACQTBqJAAgAwulCwIJfwJ9IwBBgAFrIgckAAJ/AkAgACgCCCIGIAFLBEAgACgCBCABQSRsaiIGENMEIQ4gBi8BFCIFQf//AXFFBEAgBUEQdAwDCyAFQf8HcSEGIAVBgIACcSEIIAVBgPgBcSIFQYD4AUYEQCAIQRB0IQUgBUGAgID8B3IgBkUNAxogBSAGQQ10ckGAgID+B3IMAwsgCEEQdCEIIAVFDQEgBUENdEGAgID8AHEgBkENdHJBgICAwANqIAhyDAILIAEgBkHoyMcAEL8HAAsgCEGAgIDYA3IgBmdBEGsiBUEXdGsgBiAFQf//A3FBCGp0Qf///wNxcgshBUMAAIA/IQ8CQAJAAkAgDiAOkiAFviIOQwAAgD9eBH0gDhD0BUNU+C1AlEMAAIA/kpEFIA8LlCADXUUEQCAHIAAoAhAiCCAAKAIUIgkgARCBAwJAIAcoAiQiBkEJTwRAIAcoAgQiCg0BIAcoAggiAEEEaygCACIBQXhxIgIgBkECdCIEQQRBCCABQQNxIgEbakkNBCABQQAgAiAEQSdqSxsNBSAAELQCDAMLIAYiCkUNAgsgB0EoaiACKAIIIgYgBiAKahCzAyAIIAkgAQJ/IAcoAkwiBUEJTwRAIAcoAiwhBSAHKAIwDAELIAdBLGoLIAUQjwYgB0EEaiEBAkACfyAHKAIkQQlJBEAgASEIIAdBJGoMAQsgBygCCCEIIAELKAIAIgVBAkkNACAFQRVPBEAgCCAFEO8FDAELIAhBBGohBgJAIAVBAXEEQCAGIQkgCCEGDAELIAgoAgQiCSAIKAIAIgtJBEAgCCAJNgIAIAggCzYCBAsgCEEIaiEJCyAFQQJGDQAgCCAFQQJ0aiENIAlBBGohDANAIAkoAgAiCiAGKAIAIgVJBEAgCSELAn8DQCALIAU2AgAgCCAGIAhGDQEaIAYhCyAKIAZBBGsiBigCACIFSQ0ACyAGQQRqCyAKNgIAIAkoAgAhCgsgCiAJKAIEIgtLBEAgDCEFA0ACQCAFIAo2AgAgCCAFQQRrIgZGBEAgCCEGDAELIAVBCGshCiAGIQUgCyAKKAIAIgpJDQELCyAGIAs2AgALIAlBBGohBiAMQQhqIQwgCUEIaiIJIA1HDQALCyAHKAIkIgYhBSAGQQlPBEAgBygCBCEFIAcoAgghAQsgBQRAIAVBAnQhBiACKAIIIgVBAnQhCANAIAEoAgAhCSACKAIAIAVGBEAgAkHcuMEAEKwGCyABQQRqIQEgAigCBCAIaiAJNgIAIAIgBUEBaiIFNgIIIAhBBGohCCAGQQRrIgYNAAsgBygCJCEGCyAHKAIEIQUgB0HwAGogB0EgaigCADYCACAHQegAaiAHQRhqKQIANwIAIAcgB/0AAgj9CwJYIAcgBSAGIAZBCEsiCBsiATYCfCAHIAZBACAIGzYCdCAHQQAgBSAIGzYCVAJAIAFFDQAgBkEJTwRAIAcoAlghBQNAIAAgBSgCACACIAMgBBDoASAFQQRqIQUgAUEBayIBDQALDAELIAdB1ABqIQVBACEIA0AgByAIQQFqIgg2AnggACAFKAIAIAIgAyAEEOgBIAVBBGohBSABIAhHDQALCyAGQQlPBEAgBygCWCIAQQRrKAIAIgFBeHEiAiAGQQJ0IgRBBEEIIAFBA3EiARtqSQ0DIAFBACACIARBJ2pLGw0EIAAQtAILIAcoAkwiAEEJSQ0BIAcoAjAiAUEEaygCACICQXhxIgQgAEECdCIAQQRBCCACQQNxIgIbakkNAiACQQAgBCAAQSdqSxsNAyABELQCDAELIAQoAggiACAEKAIARgRAIARB7LjBABCsBgsgBCgCBCAAQQJ0aiABNgIAIAQgAEEBajYCCAwACyAHQYABaiQADwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALzQoBB38gAUEDbCIGIAAoApAEIgVLBEAgBiAFIgJrIgMgACgCiAQgAmtLBEAgAEGIBGogAiADQQRBBBDQBSAAKAKQBCECCyAAKAKMBCIHIAJBAnRqIQQgA0ECSQR/IAIFIAYgBUF/c2pBAnQiCARAIARBACAI/AsACyAHIAIgBmogBWtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgACADQQFqNgKQBAsgACgCnAQiBSABSQRAIAEgBSICayIDIAAoApQEIAJrSwRAIABBlARqIAIgA0EEQQQQ0AUgACgCnAQhAgsgACgCmAQiByACQQJ0aiEEIANBAkkEfyACBSABIAVBf3NqQQJ0IggEQCAEQQAgCPwLAAsgByABIAJqIAVrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAAgA0EBajYCnAQLIAAoAqgEIgUgBkkEQCAGIAUiAmsiAyAAKAKgBCACa0sEQCAAQaAEaiACIANBBEEEENAFIAAoAqgEIQILIAAoAqQEIgcgAkECdGohBCADQQJJBH8gAgUgBiAFQX9zakECdCIIBEAgBEEAIAj8CwALIAcgAiAGaiAFa0ECdGpBBGshBCACIANqQQFrCyEDIARBADYCACAAIANBAWo2AqgECyAAKAK0BCIFIAZJBEAgBiAFIgJrIgMgACgCrAQgAmtLBEAgAEGsBGogAiADQQRBBBDQBSAAKAK0BCECCyAAKAKwBCIHIAJBAnRqIQQgA0ECSQR/IAIFIAYgBUF/c2pBAnQiCARAIARBACAI/AsACyAHIAIgBmogBWtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgACADQQFqNgK0BAsgAUECdCIGIAAoAsAEIgVLBEAgBiAFIgJrIgMgACgCuAQgAmtLBEAgAEG4BGogAiADQQRBBBDQBSAAKALABCECCyAAKAK8BCIHIAJBAnRqIQQgA0ECSQR/IAIFIAYgBUF/c2pBAnQiCARAIARBACAI/AsACyAHIAIgBmogBWtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgACADQQFqNgLABAsCQAJAIAAoAoQEIgJFDQAgAUEJbCIGIAAoAswEIgVLBEAgBiAFIgJrIgMgACgCxAQgAmtLBEAgAEHEBGogAiADQQRBBBDQBSAAKALMBCECCyAAKALIBCIHIAJBAnRqIQQgA0ECSQR/IAIFIAYgBUF/c2pBAnQiCARAIARBACAI/AsACyAHIAIgBmogBWtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgACADQQFqNgLMBCAAKAKEBCECCyACQQFNDQAgAUEPbCIGIAAoAtgEIgVLBH8gBiAFIgJrIgMgACgC0AQgAmtLBEAgAEHQBGogAiADQQRBBBDQBSAAKALYBCECCyAAKALUBCIHIAJBAnRqIQQgA0ECSQR/IAIFIAYgBUF/c2pBAnQiCARAIARBACAI/AsACyAHIAIgBmogBWtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgACADQQFqNgLYBCAAKAKEBAUgAgtBAk0NACABQRVsIgUgACgC5AQiA0sNAQsPCyADIQEgBSADayIEIAAoAtwEIANrSwRAIABB3ARqIAMgBEEEQQQQ0AUgACgC5AQhAQsgACgC4AQiBiABQQJ0aiECIARBAkkEfyABBSAFIANBf3NqQQJ0IgcEQCACQQAgB/wLAAsgBiABIAVqIANrQQJ0akEEayECIAEgBGpBAWsLIQQgAkEANgIAIAAgBEEBajYC5AQLoQoBB38gAUEDbCIGIAAoAiAiBUsEQCAGIAUiAmsiAyAAKAIYIAJrSwRAIABBGGogAiADQQRBBBDQBSAAKAIgIQILIAAoAhwiByACQQJ0aiEEIANBAkkEfyACBSAGIAVBf3NqQQJ0IggEQCAEQQAgCPwLAAsgByACIAZqIAVrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAAgA0EBajYCIAsgACgCLCIFIAFJBEAgASAFIgJrIgMgACgCJCACa0sEQCAAQSRqIAIgA0EEQQQQ0AUgACgCLCECCyAAKAIoIgcgAkECdGohBCADQQJJBH8gAgUgASAFQX9zakECdCIIBEAgBEEAIAj8CwALIAcgASACaiAFa0ECdGpBBGshBCACIANqQQFrCyEDIARBADYCACAAIANBAWo2AiwLIAAoAjgiBSAGSQRAIAYgBSICayIDIAAoAjAgAmtLBEAgAEEwaiACIANBBEEEENAFIAAoAjghAgsgACgCNCIHIAJBAnRqIQQgA0ECSQR/IAIFIAYgBUF/c2pBAnQiCARAIARBACAI/AsACyAHIAIgBmogBWtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgACADQQFqNgI4CyAAKAJEIgUgBkkEQCAGIAUiAmsiAyAAKAI8IAJrSwRAIABBPGogAiADQQRBBBDQBSAAKAJEIQILIAAoAkAiByACQQJ0aiEEIANBAkkEfyACBSAGIAVBf3NqQQJ0IggEQCAEQQAgCPwLAAsgByACIAZqIAVrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAAgA0EBajYCRAsgAUECdCIGIAAoAlAiBUsEQCAGIAUiAmsiAyAAKAJIIAJrSwRAIABByABqIAIgA0EEQQQQ0AUgACgCUCECCyAAKAJMIgcgAkECdGohBCADQQJJBH8gAgUgBiAFQX9zakECdCIIBEAgBEEAIAj8CwALIAcgAiAGaiAFa0ECdGpBBGshBCACIANqQQFrCyEDIARBADYCACAAIANBAWo2AlALAkACQCAAKALwAiICRQ0AIAFBCWwiBiAAKAJcIgVLBEAgBiAFIgJrIgMgACgCVCACa0sEQCAAQdQAaiACIANBBEEEENAFIAAoAlwhAgsgACgCWCIHIAJBAnRqIQQgA0ECSQR/IAIFIAYgBUF/c2pBAnQiCARAIARBACAI/AsACyAHIAIgBmogBWtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgACADQQFqNgJcIAAoAvACIQILIAJBAU0NACABQQ9sIgYgACgCaCIFSwR/IAYgBSICayIDIAAoAmAgAmtLBEAgAEHgAGogAiADQQRBBBDQBSAAKAJoIQILIAAoAmQiByACQQJ0aiEEIANBAkkEfyACBSAGIAVBf3NqQQJ0IggEQCAEQQAgCPwLAAsgByACIAZqIAVrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAAgA0EBajYCaCAAKALwAgUgAgtBAk0NACABQRVsIgUgACgCdCIDSw0BCw8LIAMhASAFIANrIgQgACgCbCADa0sEQCAAQewAaiADIARBBEEEENAFIAAoAnQhAQsgACgCcCIGIAFBAnRqIQIgBEECSQR/IAEFIAUgA0F/c2pBAnQiBwRAIAJBACAH/AsACyAGIAEgBWogA2tBAnRqQQRrIQIgASAEakEBawshBCACQQA2AgAgACAEQQFqNgJ0C+MKAxN/An4BeyMAQdACayIQJABCgICAgICAgIDAACABrSIYgCIZIBh+QoCAgICAgICAwABSrQJ/IAFBgSBPBEBBASABQQFyZ0EfcyIHQQF2IAdBAXFqIgd0IAEgB3ZqQQF2DAELQcAAIAEgAUEBdmsiByAHQcAATxsLIREgGXwhGCAAQQRrIRUgAEEQayEWIABBCGohFEEBIQcDQEEBIQlBACEPIAEgDEsEQCAAIAxBAnQiDWohDiAMrSIZAn8CQCABIAxrIgkgEUkNAAJAIAlBAkkEQCAJIQUMAQsCQAJAAkACQAJAIA4oAgQiBiAOKAIASSIIRQRAQQIhBSAJQQJGDQYgFCAMQQJ0aiELA0AgBiALKAIAIgZLDQMgC0EEaiELIAkgBUEBaiIFRw0ACwwBCyAJQQJGDQJBAiEFIBQgDEECdGohCwNAIAYgCygCACIGTQ0CIAtBBGohCyAJIAVBAWoiBUcNAAsLIAkhBQsgBSARSQ0EIAhFDQMgBUECTw0BQQEhBQwDCyAOQQhqIQ9BACELQQEhCUECIQUMAQsgBUEBdiEJIA4gBUECdCIGaiEPQQAhCyAFQQhJDQAgFiAGIA1qaiEIIAlB/P///wdxIgshBgNAIA4gCP0AAgAgDv0AAgAiGv0NDA0ODwgJCgsEBQYHAAECA/0LAgAgCCAaIBr9DQwNDg8ICQoLBAUGBwABAgP9CwIAIA5BEGohDiAIQRBrIQggBkEEayIGDQALIAkgC0YNAQsgACALQQJ0IgYgDWpqIQggCSALayELIA8gBmtBBGshBgNAIAgoAgAhCSAIIAYoAgA2AgAgBiAJNgIAIAZBBGshBiAIQQRqIQggC0EBayILDQALCyAFQQF0QQFyDAELIAkgESAJIBFJG0EBdCAERQ0AGiAOQSAgCSAJQSBPGyIGIAIgA0EAQQAQnwEgBkEBdEEBcgsiCUEBdiAMaq18IBh+IAwgB0EBdmutIBl8IBh+hXmnIQ8LAkACQCAKQQJJDQAgFSAMQQJ0IgZqIQ4gACAGaiEXA0AgCkEBayILIBBBjgJqai0AACAPSQ0BAn8CQAJAAkAgAyAQQQRqIAtBAnRqKAIAIgpBAXYiBSAHQQF2Ig1qIhJPIAcgCnJBAXFFcUUEQCAAIAwgEmtBAnRqIQYgCkEBcUUEQCAGIAUgAiADIAVBAXJnQQF0QT5zQQAQnwELIAdBAXFFBEAgBiAFQQJ0aiANIAIgAyANQQFyZ0EBdEE+c0EAEJ8BCyAHQQJJIApBAklyDQMgAyANIAUgBSANSyITGyIHSQ0DIAYgBUECdGohCiAHQQJ0IggEQCACIAogBiATGyAI/AoAAAsgAiAIaiEIIAUgDUsEQCAOIQUDQCAFIAhBBGsiCCgCACIHIApBBGsiDSgCACIKIAcgCksbNgIAIAggByAKSUECdGohCCANIAcgCk9BAnRqIgogBkYNAyAFQQRrIQUgAiAIRw0ACwwCCyAHRQRAIAIhBwwDCyACIQcDQCAGIAooAgAiBSAHKAIAIg0gBSANSSITGzYCACAGQQRqIQYgByAFIA1PQQJ0aiIHIAhGDQMgCiATQQJ0aiIKIBdHDQALDAILIBJBAXQMAwsgCiEGIAIhBwsgCCAHayIFRQ0AIAYgByAF/AoAAAsgEkEBdEEBcgshB0EBIQggCyIKQQFLDQALDAELIAohCAsgEEGOAmogCGogDzoAACAQQQRqIAhBAnRqIAc2AgAgASAMSwRAIAhBAWohCiAJQQF2IAxqIQwgCSEHDAELCyAHQQFxRQRAIAAgASACIAMgAUEBcmdBAXRBPnNBABCfAQsgEEHQAmokAAudCwMKfwJ7AX5BASENQQEhCQJAAkACQAJAAkACQAJAAkACQCAEQQFHBEBBASEGQQEhBwNAIAUgCmoiCSAETw0CIAchCAJAIAMgBmotAAAiBiADIAlqLQAAIglJBEAgBSAHakEBaiIHIAprIQ1BACEFDAELIAYgCUcEQEEBIQ0gCEEBaiEHQQAhBSAIIQoMAQtBACAFQQFqIgcgByANRiIGGyEFIAdBACAGGyAIaiEHCyAFIAdqIgYgBEkNAAtBASEGQQEhB0EAIQVBASEJA0AgBSALaiIMIARPDQMgByEIAkAgAyAGai0AACIGIAMgDGotAAAiDEsEQCAFIAdqQQFqIgcgC2shCUEAIQUMAQsgBiAMRwRAQQEhCSAIQQFqIQdBACEFIAghCwwBC0EAIAVBAWoiByAHIAlGIgYbIQUgB0EAIAYbIAhqIQcLIAUgB2oiBiAESQ0ACwsgBCAKIAsgCiALSyIHGyILSQ0CIA0gCSAHGyIHIAtqIgUgB0kNAyAEIAVJDQQCfyADIAMgB2ogCxCQCARAAkACQCAEQQJJBEBBACEIDAELIARBHnEiCCEHIAMhBQNAQgEgBS8AAP0Q/Qw/Pz8/Pz8/Pz8/Pz8/Pz8//U79iQH9qQH9yQEiEP0dAIb9EkIBIBD9HQGG/R4BIA/9UCEPIAVBAmohBSAHQQJrIgcNAAsgDyAPIA/9DQgJCgsMDQ4PAAECAwQFBgf9UP0dACERIAQgCEYNAQsgAyAIaiEFIAQgCGshBwNAQgEgBTEAAIYgEYQhESAFQQFqIQUgB0EBayIHDQALCyAEIAtrIgcgCyAHIAtLG0EBaiEHQX8hBSALIQpBfwwBC0EBIQpBACEFQQEhBkEAIQ0DQCAEIAYiCCAFaiIMSwRAIAQgBWsgBkF/c2oiBiAETw0IIAQgBUF/c2ogDWsiCSAETw0JAkAgAyAGai0AACIGIAMgCWotAAAiCUkEQCAMQQFqIgYgDWshCkEAIQUMAQsgBiAJRwRAIAhBAWohBkEAIQVBASEKIAghDQwBC0EAIAVBAWoiBiAGIApGIgkbIQUgBkEAIAkbIAhqIQYLIAcgCkcNAQsLQQEhCkEAIQVBASEGQQAhCQNAIAQgBiIIIAVqIg5LBEAgBCAFayAGQX9zaiIGIARPDQogBCAFQX9zaiAJayIMIARPDQsCQCADIAZqLQAAIgYgAyAMai0AACIMSwRAIA5BAWoiBiAJayEKQQAhBQwBCyAGIAxHBEAgCEEBaiEGQQAhBUEBIQogCCEJDAELQQAgBUEBaiIGIAYgCkYiDBshBSAGQQAgDBsgCGohBgsgByAKRw0BCwsgBCAJIA0gCSANSxtrIQpBACEFAn8CQAJAAkACQCAHDgIAAgELIAcMAwsgB0F+cSIFIQYgAyEIA0BCASAILwAA/RD9DD8/Pz8/Pz8/Pz8/Pz8/Pz/9Tv2JAf2pAf3JASIQ/R0Ahv0SQgEgEP0dAYb9HgEgD/1QIQ8gCEECaiEIIAZBAmsiBg0ACyAPIA8gD/0NCAkKCwwNDg8AAQIDBAUGB/1Q/R0AIREgBSAHRg0BCwNAQgEgAyAFajEAAIYgEYQhESAHIAVBAWoiBUcNAAsLQQALIQUgBAshCCAAIAQ2AjwgACADNgI4IAAgAjYCNCAAIAE2AjAgACAINgIoIAAgBTYCJCAAIAI2AiAgAEEANgIcIAAgBzYCGCAAIAo2AhQgACALNgIQIAAgETcDCCAAQQE2AgAPCyAJIARByKbCABC/BwALIAwgBEHIpsIAEL8HAAsgCyAEQaimwgAQogoACyAHIAVBuKbCABClCgALIAUgBEG4psIAEKIKAAsgBiAEQdimwgAQvwcACyAJIARB6KbCABC/BwALIAYgBEHYpsIAEL8HAAsgDCAEQeimwgAQvwcAC9AMAQd/IwBBQGoiBCQAIAEoAgwhBQJAAkACQAJAAkACQCABKAIUIgIgASgCECIDSQRAA0AgAiAFai0AACIHQQlrIgZBGUsNA0EBIAZ0QZOAgARxRQRAIAZBGUcNBCAEQThqIAEQygMgBC0AOEEBRw0DIAAgBCgCPDYCBCAAQQE6AAAMCAsgASACQQFqIgI2AhQgAiADRw0ACyADIQILIARBCGogBSADIAJBAWoiASADIAEgA0kbEIYCIAQoAgwhAiAEKAIIIQNBFBB+IgFFDQIgASADNgIMIAFBBTYCACAAIAE2AgQgAEEBOgAAIAEgAjYCEAwFCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBC0AOUEBaw4NAQIDBAUGBwgJCgsMDQALIABBADoAASAAQQA6AAAMEQsgAEEBOgABIABBADoAAAwQCyAAQQI6AAEgAEEAOgAADA8LIABBAzoAASAAQQA6AAAMDgsgAEEEOgABIABBADoAAAwNCyAAQQU6AAEgAEEAOgAADAwLIABBBjoAASAAQQA6AAAMCwsgAEEHOgABIABBADoAAAwKCyAAQQg6AAEgAEEAOgAADAkLIABBCToAASAAQQA6AAAMCAsgAEEKOgABIABBADoAAAwHCyAAQQs6AAEgAEEAOgAADAYLIABBDDoAASAAQQA6AAAMBQsgAEENOgABIABBADoAAAwECwJAIAdB+wBGBEAgASABLQAYQQFrIgY6ABggAkEBaiECIAZB/wFxDQEgBEEQaiAFIAMgAiADIAIgA0kbEIYCIAQoAhQhAiAEKAIQIQNBFBB+IgFFDQIgASADNgIMIAFBGDYCACAAIAE2AgQgAEEBOgAAIAEgAjYCEAwFCyAEIAUgAyACQQFqIgEgAyABIANJGxCGAiAEKAIEIQIgBCgCACEDQRQQfiIBRQ0BIAEgAzYCDCABQQo2AgAgACABNgIEIABBAToAACABIAI2AhAMBAsgASACNgIUIARBOGogARDKAyAELQA4QQFGBEAgBCgCPCECDAILIAEoAgwhBQJAAkAgASgCFCICIAEoAhAiA0kEQCAELQA5IQYDQAJAIAIgBWotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEAwsgASACQQFqIgI2AhQgAiADRw0ACyADIQILIARBIGogBSADIAJBAWoiAiADIAIgA0kbEIYCIAQoAiQhAyAEKAIgIQVBFBB+IgJFDQIgAiAFNgIMIAJBAzYCACACIAM2AhAMAwsgBEEYaiAFIAMgAkEBaiICIAMgAiADSRsQhgIgBCgCHCEDIAQoAhghBUEUEH4iAkUNASACIAU2AgwgAkEGNgIAIAIgAzYCEAwCCyABIAJBAWo2AhQgARCqBCECIAEgAS0AGEEBajoAGAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAGQQFrDg0AAQIDBAUGBwgJCgsMDQtBAUGAAiACGwwNC0EBQYAEIAIbDAwLQQFBgAYgAhsMCwtBAUGACCACGwwKC0EBQYAKIAIbDAkLQQFBgAwgAhsMCAtBAUGADiACGwwHC0EBQYAQIAIbDAYLQQFBgBIgAhsMBQtBAUGAFCACGwwEC0EBQYAWIAIbDAMLQQFBgBggAhsMAgtBAUGAGiACGwwBCyACQQBHCyIFQQFxDQIgASgCDCEGAkAgASgCFCICIAEoAhAiA0kEQCAFQQh2IQUDQCACIAZqLQAAIgdBCWsiCEEXS0EBIAh0QZOAgARxRXINAiABIAJBAWoiAjYCFCACIANHDQALIAMhAgsgBEEwaiAGIAMgAhCGAiAEKAI0IQIgBCgCMCEDQRQQfiIBRQ0BIAEgAzYCDCABQQM2AgAgACABNgIEIABBAToAACABIAI2AhAMBAsgB0H9AEYEQCAAIAU6AAEgAEEAOgAAIAEgAkEBajYCFAwECyAEQShqIAYgAyACEIYCIAQoAiwhAiAEKAIoIQNBFBB+IgFFDQAgASADNgIMIAFBCjYCACAAIAE2AgQgAEEBOgAAIAEgAjYCEAwDCwALQQEhBSABIAEtABhBAWo6ABgLIAAgAjYCBCAAIAU2AgALIARBQGskAAuLCgEHfyMAQcAHayIEJAACQAJAAkBBgIABEH4iBUUNACAFQQBBgIAB/AsAQYAQEH4iBkUNACAGQQBBgBD8CwAgBEGkB2pBADsBACAEQQA2AqAHIARBADYClAcgBEEANgKIByAEQQA6AIQHIARBADYCgAcgBCAGNgL8BiAEIAU2AvgGIARCAjcD8AYgBEIANwPoBiAEQoCAgIAgNwPgBiAEQQBB2Ab8CwAgBEEAOgCmByAEQQE2AtwGIARBHTYC2AZBgAggAyADQYAITxshBUEBIQgCQCADRQ0AIAUQfiIIRQ0BIAhBBGstAABBA3FFIAVFcg0AIAhBACAF/AsACyAEIAU2ArAHIAQgCDYCrAcgBCAFNgKoBwJAAkADQCAEQbQHaiAEIAEgCWogAiAJayAIIAUgB0EBEEggBC0AtAcEQCAAIAQtALUHOgAIIABCgYCAgICAgICAfzcCACAEKAKoByIABEAgCEEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgAGpJDQYgAUEAIAIgAEEnaksbDQcgCBC0AgsgBCgC+AYiAUEEaygCACIAQXhxQYSAAUGIgAEgAEEDcSICG0kNBSACQQAgAEGogAFPGw0GIAEQtAIgBCgC4AYiAARAIAQoAuQGIgFBBGsoAgAiAkF4cSIDIABBAXQiAEEEQQggAkEDcSICG2pJDQYgAkEAIAMgAEEnaksbDQcgARC0AgsgBCgC/AYiAUEEaygCACIAQXhxQYQQQYgQIABBA3EiAhtJDQUgAkEAIABBqBBPGw0GDAMLIAQtAKMHIgZBB0cgBCgCvAcgB2oiByADR3FFBEAgBSAHSQRAIAcgBWsiASAEKAKoByAFa0sEQCAEQagHaiAFIAFBAUEBENAFIAQoArAHIQULIAQoAqwHIgIgBWohByABQQJPBH8gAUEBayIBBEAgB0EAIAH8CwALIAIgASAFaiIFagUgBwtBADoAACAFQQFqIQcgBC0AowchBgsgACAEKQKoBzcCBCAAQQxqIAc2AgAgACAGQf8BcUEHRzYCACAEKAL4BiIBQQRrKAIAIgBBeHFBhIABQYiAASAAQQNxIgIbTw0CQeCLyABBLkGQjMgAEKIIAAsgBCgCuAcgCWohCSAEAn8gBSADIAdBgIACaiIGIAMgBkkbIgZPBEAgBgwBCyAGIAVrIgogBCgCqAcgBWtLBEAgBEGoB2ogBSAKQQFBARDQBSAEKAKsByEIIAQoArAHIQULIAUgCGohBiAKQQJPBH8gCkEBayIKBEAgBkEAIAr8CwALIAggBSAKaiIFagUgBgtBADoAACAFQQFqCyIFNgKwByACIAlPDQALIAkgAkGwucQAEKMKAAsgAkEAIABBqIABTxsNAyABELQCIAQoAuAGIgAEQCAEKALkBiIBQQRrKAIAIgJBeHEiAyAAQQF0IgBBBEEIIAJBA3EiAhtqSQ0DIAJBACADIABBJ2pLGw0EIAEQtAILIAQoAvwGIgFBBGsoAgAiAEF4cUGEEEGIECAAQQNxIgIbSQ0CIAJBACAAQagQTxsNAwsgARC0AiAEKALsBiIABEAgBCgC8AYiAUEEaygCACICQXhxIgMgAEEBdCIAQQRBCCACQQNxIgIbakkNAiACQQAgAyAAQSdqSxsNAyABELQCCyAEQcAHaiQADwsAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAvkCwQUfwF+AX0BeyMAQdAAayIEJAAgBCACNgIIIAQgATYCBAJAIAMoAgQiDiACQQNsIgVPBEAgAiADKAIMIgxNBEAgBSADKAIUIg9NBEAgBSADKAIcIhBNBEAgAygCJCIRIAJBAnQiBU8EQAJAIAAoAggiEiABIAJqTwRAIAINAUEAIQUMBwsgBCASNgIsIARBAzYCFCAEQfzQxwA2AhAgBEIDNwIcIARCgICAgBAiGCAEQSxqrYQ3A0AgBCAYIARBCGqthDcDOCAEIBggBEEEaq2ENwMwIAQgBEEwajYCGCAEQRBqQZTRxwAQyggACyAAKAIEIAFBJGxqIQIgAygCICETIAMoAhghFCADKAIQIRUgAygCCCEWIAMoAgAhF0EDIQcCQAJAAkADQAJAAkACQCASIAEgC2oiBUsEQCAHIA5LDQEgAkEQaiAKIBdqIgVBCGogBf1dAgD9VgIAAiIa/VoCAAIgAkEIaiAa/VsCAAAgCyAMRwRAIA0gFmooAgAiCUH///8DcSEIIAlBgICAgHhxIQYgCUGAgID8B3EiBUGAgID8B0YEQCAIQQ12IAZBEHZyIAhBAEdBCXRyQYD4AXIhBgwFCyAGQRB2IQYgBUGAgIC4BEsNAyAFQYCAgMQDTwRAIAlBDHYgCUH/3wBxQQBHcSAFQQ12IAhBDXZqQYCAAWogBnJqIQYMBQsgBUGAgICYA0kNBCAIQYCAgARyIglBHiAFQRd2IghrdiEFIAlBHSAIayIIdkEBcQR/IAVBAyAIdEEBayAJcUEAR2oFIAULIAZyIQYMBAsgDCAMQbTRxwAQvwcACyAFIBJB+MjHABC/BwALIAcgDkGk0ccAEKIKAAsgBkGA+AFyIQYLIAJBFGogBjsBACAHIA9NBEAgBCAKIBVqIgX9XQIAIAVBCGoqAgAiGf0gAiAZ/SAD/QsEMCACIARBMGoiBhD6AiAHIBBLDQIgBCAKIBRqIgX9XQIAIAVBCGoqAgAiGf0gAiAZ/SAD/QsEMCACIAYQ8QIgC0H/////A0YNAyANQQRqIg0gEUsNBCAEIBP9AAIA/QsEMCAHQQNqIQcgCkEMaiEKIBNBEGohEyACIAYQoQIgAkEkaiECIAtBAWoiCyAEKAIIIgVPDQoMAQsLIAcgD0HE0ccAEKIKAAsgByAQQdTRxwAQogoAC0F8QQBB5NHHABClCgALIA0gEUHk0ccAEKIKAAsgBCARNgIMIAQgBTYCLCAEQQI2AjQgBEG40McANgIwIARCAjcCPCAEQoCAgIAQIhggBEEsaq2ENwMYIAQgGCAEQQxqrYQ3AxAgBCAEQRBqNgI4IARBMGpByNDHABDKCAALIAQgEDYCDCAEIAU2AiwgBEECNgI0IARBgNDHADYCMCAEQgI3AjwgBEKAgICAECIYIARBLGqthDcDGCAEIBggBEEMaq2ENwMQIAQgBEEQajYCOCAEQTBqQZDQxwAQyggACyAEIA82AgwgBCAFNgIsIARBAjYCNCAEQcjPxwA2AjAgBEICNwI8IARCgICAgBAiGCAEQSxqrYQ3AxggBCAYIARBDGqthDcDECAEIARBEGo2AjggBEEwakHYz8cAEMoIAAsgBCAMNgIsIARBAjYCNCAEQZDPxwA2AjAgBEICNwI8IARCgICAgBAiGCAEQQhqrYQ3AxggBCAYIARBLGqthDcDECAEIARBEGo2AjggBEEwakGgz8cAEMoIAAsgBCAONgIMIAQgBTYCLCAEQQI2AjQgBEHUzscANgIwIARCAjcCPCAEQoCAgIAQIhggBEEsaq2ENwMYIAQgGCAEQQxqrYQ3AxAgBCAEQRBqNgI4IARBMGpB5M7HABDKCAALIAAgASAFIAMoAiggAygCLCADKAIwIAMoAjQgAygCOCADKAI8EPEDAkAgAygCRCICRQ0AIAMoAkwiB0UNACAAKAIQIgYgACgCFCIAIAEgBSADKAJIIAcQtAMgBiAAIAEgBSADKAJAIAIQ2QMLIARB0ABqJAAL9AoCDH8FfSACIAFBAnRBBGsiBmohDCAAIAZqIQogACABQQF2Ig1BAnRqIgZBBGshCyADQQRqIQ4DQEMAAIA/IRACfwJAIAYoAgAiAyAOKAIAIgRBCGooAgAiBUkEQCAAKAIAIQkgBEEEaigCACIHIANBJGxqIgMQ0wQhEiADLwEUIgRB//8BcUUEQCAEQRB0DAMLIARB/wdxIQMgBEGAgAJxIQggBEGA+AFxIgRBgPgBRgRAIAhBEHQhBCAEQYCAgPwHciADRQ0DGiAEIANBDXRyQYCAgP4HcgwDCyAIQRB0IQggBEUNASAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogCHIMAgsgAyAFQejIxwAQvwcACyAIQYCAgNgDciADZ0EQayIEQRd0ayADIARB//8DcUEIanRB////A3FyC74iEUMAAIA/XgRAIBEQ9AVDVPgtQJRDAACAP5KRIRALQwAAgD8hEQJ/AkAgBSAJSwRAIAcgCUEkbGoiAxDTBCETIAMvARQiBEH//wFxRQRAIARBEHQMAwsgBEH/B3EhAyAEQYCAAnEhBSAEQYD4AXEiBEGA+AFGBEAgBUEQdCEEIARBgICA/AdyIANFDQMaIAQgA0ENdHJBgICA/gdyDAMLIAVBEHQhBSAERQ0BIARBDXRBgICA/ABxIANBDXRyQYCAgMADaiAFcgwCCyAJIAVB6MjHABC/BwALIAVBgICA2ANyIANnQRBrIgRBF3RrIAMgBEH//wNxQQhqdEH///8DcXILviIUQwAAgD9eBEAgFBD0BUNU+C1AlEMAAIA/kpEhEQsgAiAGIAAgEiASkiAQlCIQIBBbIBAgEyATkiARlGBFcSIIGygCADYCAEMAAIA/IRACfwJAIAooAgAiAyAOKAIAIgRBCGooAgAiBUkEQCALKAIAIQkgBEEEaigCACIPIANBJGxqIgMQ0wQhEiADLwEUIgRB//8BcUUEQCAEQRB0DAMLIARB/wdxIQMgBEGAgAJxIQcgBEGA+AFxIgRBgPgBRgRAIAdBEHQhBCAEQYCAgPwHciADRQ0DGiAEIANBDXRyQYCAgP4HcgwDCyAHQRB0IQcgBEUNASAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogB3IMAgsgAyAFQejIxwAQvwcACyAHQYCAgNgDciADZ0EQayIEQRd0ayADIARB//8DcUEIanRB////A3FyC74iEUMAAIA/XgRAIBEQ9AVDVPgtQJRDAACAP5KRIRALQwAAgD8hEQJ/AkAgBSAJSwRAIAhFIQcgDyAJQSRsaiIDENMEIRMgAy8BFCIEQf//AXFFBEAgBEEQdAwDCyAEQf8HcSEDIARBgIACcSEFIARBgPgBcSIEQYD4AUYEQCAFQRB0IQQgBEGAgID8B3IgA0UNAxogBCADQQ10ckGAgID+B3IMAwsgBUEQdCEFIARFDQEgBEENdEGAgID8AHEgA0ENdHJBgICAwANqIAVyDAILIAkgBUHoyMcAEL8HAAsgBUGAgIDYA3IgA2dBEGsiBEEXdGsgAyAEQf//A3FBCGp0Qf///wNxcgu+IhRDAACAP14EQCAUEPQFQ1T4LUCUQwAAgD+SkSERCyAIQQJ0IAZqIQYgB0ECdCAAaiEAIAJBBGohAiAMIAsgCiASIBKSIBCUIhAgEFsgECATIBOSIBGUYEVxIgMbKAIANgIAIAsgA0ECdCIDayELIAMgCmpBBGshCiAMQQRrIQwgDUEBayINDQALIAtBBGohAyABQQFxBH8gAiAAIAYgACADSSIBGygCADYCACAGIAAgA09BAnRqIQYgACABQQJ0agUgAAsgA0cgBiAKQQRqR3JFBEAPCxC4CAALuQwCDH0DfwJAAkACQAJAAkACQCAEBEBDAAD+QiAFlSEFQQ8hFANAIBJBxIiRogRGDQMgAyAUSQ0EQwAA/kJDAAD+wiAFIAJBMGoqAgCUIgcgB0MAAP7CXRsiByAHQwAA/kJeGxDuByEHQwAA/kJDAAD+wiAFIAJBNGoqAgCUIgggCEMAAP7CXRsiCCAIQwAA/kJeGxDuByEIQwAA/kJDAAD+wiAFIAJBOGoqAgCUIgkgCUMAAP7CXRsiCSAJQwAA/kJeGxDuByEJQwAA/kJDAAD+wiAFIAJBIGoqAgCUIgogCkMAAP7CXRsiCiAKQwAA/kJeGxDuByEKQwAA/kJDAAD+wiAFIAJBJGoqAgCUIgsgC0MAAP7CXRsiCyALQwAA/kJeGxDuByELQwAA/kJDAAD+wiAFIAJBKGoqAgCUIgwgDEMAAP7CXRsiDCAMQwAA/kJeGxDuByEMQwAA/kJDAAD+wiAFIAJBLGoqAgCUIg0gDUMAAP7CXRsiDSANQwAA/kJeGxDuByENQwAA/kJDAAD+wiAFIAJBEGoqAgCUIg4gDkMAAP7CXRsiDiAOQwAA/kJeGxDuByEOQwAA/kJDAAD+wiAFIAJBFGoqAgCUIg8gD0MAAP7CXRsiDyAPQwAA/kJeGxDuByEPQwAA/kJDAAD+wiAFIAJBGGoqAgCUIhAgEEMAAP7CXRsiECAQQwAA/kJeGxDuByEQQwAA/kJDAAD+wiAFIAJBHGoqAgCUIhEgEUMAAP7CXRsiESARQwAA/kJeGxDuByERIAEgEk0NBSAAQf8AQwAA/kJDAAD+wiAFIAIqAgCUIgYgBkMAAP7CXRsiBiAGQwAA/kJeGxDuByIG/ABBgH8gBkMAAADDYBsgBkMAAP5CXhtBACAGIAZbG0H/AXFB/wBDAAD+QkMAAP7CIAUgAkEEaioCAJQiBiAGQwAA/sJdGyIGIAZDAAD+Ql4bEO4HIgb8AEGAfyAGQwAAAMNgGyAGQwAA/kJeG0EAIAYgBlsbQf8BcUEIdHJB/wBDAAD+QkMAAP7CIAUgAkEIaioCAJQiBiAGQwAA/sJdGyIGIAZDAAD+Ql4bEO4HIgb8AEGAfyAGQwAAAMNgGyAGQwAA/kJeG0EAIAYgBlsbQf8BcUEQdHJB/wBDAAD+QkMAAP7CIAUgAkEMaioCAJQiBiAGQwAA/sJdGyIGIAZDAAD+Ql4bEO4HIgb8AEGAfyAGQwAAAMNgGyAGQwAA/kJeG0EAIAYgBlsbQRh0cjYCACASQQFqIhMgAU8NBiAAQQRqQf8AIA78AEGAfyAOQwAAAMNgGyAOQwAA/kJeG0EAIA4gDlsbQf8BcUH/ACAP/ABBgH8gD0MAAADDYBsgD0MAAP5CXhtBACAPIA9bG0H/AXFBCHRyQf8AIBD8AEGAfyAQQwAAAMNgGyAQQwAA/kJeG0EAIBAgEFsbQf8BcUEQdHJB/wAgEfwAQYB/IBFDAAAAw2AbIBFDAAD+Ql4bQQAgESARWxtBGHRyNgIAIBJBAmoiEyABTw0HIABBCGpB/wAgCvwAQYB/IApDAAAAw2AbIApDAAD+Ql4bQQAgCiAKWxtB/wFxQf8AIAv8AEGAfyALQwAAAMNgGyALQwAA/kJeG0EAIAsgC1sbQf8BcUEIdHJB/wAgDPwAQYB/IAxDAAAAw2AbIAxDAAD+Ql4bQQAgDCAMWxtB/wFxQRB0ckH/ACAN/ABBgH8gDUMAAADDYBsgDUMAAP5CXhtBACANIA1bG0EYdHI2AgAgEkEDaiITIAFPDQIgAEEMakH/ACAH/ABBgH8gB0MAAADDYBsgB0MAAP5CXhtBACAHIAdbG0H/AXFB/wAgCPwAQYB/IAhDAAAAw2AbIAhDAAD+Ql4bQQAgCCAIWxtB/wFxQQh0ckH/ACAJ/ABBgH8gCUMAAADDYBsgCUMAAP5CXhtBACAJIAlbG0H/AXFBEHRyNgIAIABBEGohACAUQQ9qIRQgAkE8aiECIBJBBGohEiAEQQFrIgQNAAsLDwsgEyABQfSEyAAQvwcAC0F/QQ5BtITIABClCgALIBQgA0G0hMgAEKIKAAsgEiABQcSEyAAQvwcACyATIAFB1ITIABC/BwALIBMgAUHkhMgAEL8HAAuRCwENfyMAQTBrIgkkAAJAAkACQCAFQQNJBEAgA0EHSw0CIARFIhNBiLPGAGotAAAiCEEHSw0DQQEhCgJAAkACQAJAIAEgA0EobGpBmAFqIgMgASgC8AQgBEGgCGxqIhQgCEGEAWxqIAVBLGxqIgFBCyABKAAAEO8EQf8BcSIFDgwBAAAAAAAAAAAAAAIACyAFQQFrQQRPBEAgBUEFa0H/AXEiCEEFSw0FAn9BACAIQQxsIgFB0LPGAGotAAAiBUUNABogAUHas8YAai0AACEKIAFB2bPGAGotAAAhCyABQdizxgBqLQAAIQwgAUHXs8YAai0AACENIAFB1rPGAGotAAAhDiABQdWzxgBqLQAAIQ8gAUHUs8YAai0AACEQIAFB07PGAGotAAAhESABQdKzxgBqLQAAIRIgAUHRs8YAai0AACEBIAMgBRDHBSIFIAFFDQAaIAMgARDHBUECQQAgBRtyIgUgEkUNABogAyASEMcFIAVBAXRyIgUgEUUNABogAyAREMcFIAVBAXRyIgUgEEUNABogAyAQEMcFIAVBAXRyIgUgD0UNABogAyAPEMcFIAVBAXRyIgUgDkUNABogAyAOEMcFIAVBAXRyIgUgDUUNABogAyANEMcFIAVBAXRyIgUgDEUNABogAyAMEMcFIAVBAXRyIgUgC0UNABogAyALEMcFIAVBAXRyIgUgCkUNABogAyAKEMcFIAVBAXRyCyAIQZi0xgBqLQAAaiEFCyATQZ60xgBqLQAAIQggAxDWBSEBIAhBD0sNAkEAIQogAiAIQQJ0aiAHIAYgCBvBQQAgBWsgBSABG2w2AgBBAUECIAVBAUYbQQAgBRshBQtBAUECIAQbIQQDQCAEQYizxgBqLQAAIghBCE8NBiAKQQJ0IQFBASELQQEhCgJAAkAgAyAUIAhBhAFsaiAFQSxsaiIFQQsgASAFaigAABDvBEH/AXEiBQ4MAQAAAAAAAAAAAAADAAsgBUEBa0EETwRAIAVBBWtB/wFxIghBBk8NBgJ/QQAgCEEMbCIBQdCzxgBqLQAAIgVFDQAaIAFB2rPGAGotAAAhCiABQdmzxgBqLQAAIQwgAUHYs8YAai0AACENIAFB17PGAGotAAAhDiABQdazxgBqLQAAIQ8gAUHVs8YAai0AACEQIAFB1LPGAGotAAAhESABQdOzxgBqLQAAIRIgAUHSs8YAai0AACETIAFB0bPGAGotAAAhASADIAUQxwUiBSABRQ0AGiADIAEQxwVBAkEAIAUbciIFIBNFDQAaIAMgExDHBSAFQQF0ciIFIBJFDQAaIAMgEhDHBSAFQQF0ciIFIBFFDQAaIAMgERDHBSAFQQF0ciIFIBBFDQAaIAMgEBDHBSAFQQF0ciIFIA9FDQAaIAMgDxDHBSAFQQF0ciIFIA5FDQAaIAMgDhDHBSAFQQF0ciIFIA1FDQAaIAMgDRDHBSAFQQF0ciIFIAxFDQAaIAMgDBDHBSAFQQF0ciIFIApFDQAaIAMgChDHBSAFQQF0cgsgCEGYtMYAai0AAGohBQsgBEGetMYAai0AACEIIAMQ1gUhASAIQQ9LDQNBACEKIAIgCEECdGogByAGIAgbwUEAIAVrIAUgARtsNgIAQQFBAiAFQQFGG0EAIAUbIQULIARBAWoiBEEQRw0ACwtBDyEFIAAgAy0AI0HyAUcEfyAAIAs6AAFBHQUgBQs6AAAgCUEwaiQADwsgCEEQQbC0xgAQvwcAC0HEssYAQSFB6LLGABCiCAALIAkgBToADyAJQQE2AhQgCUG4s8YANgIQIAlCATcCHCAJIAlBD2qtQoCAgIDQD4Q3AyggCSAJQShqNgIYIAlBEGpBwLPGABDKCAALIANBCEH4ssYAEL8HAAsgCEEIQZizxgAQvwcAC64MAQd/IwBBQGoiBCQAIAEoAgwhBQJAAkACQAJAAkACQCABKAIUIgIgASgCECIDSQRAA0AgAiAFai0AACIHQQlrIgZBGUsNA0EBIAZ0QZOAgARxRQRAIAZBGUcNBCAEQThqIAEQ1gMgBC0AOEEBRw0DIAAgBCgCPDYCBCAAQQE6AAAMCAsgASACQQFqIgI2AhQgAiADRw0ACyADIQILIARBCGogBSADIAJBAWoiASADIAEgA0kbEIYCIAQoAgwhAiAEKAIIIQNBFBB+IgFFDQIgASADNgIMIAFBBTYCACAAIAE2AgQgAEEBOgAAIAEgAjYCEAwFCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAQtADlBAWsODAECAwQFBgcICQoLDAALIABBADoAASAAQQA6AAAMEAsgAEEBOgABIABBADoAAAwPCyAAQQI6AAEgAEEAOgAADA4LIABBAzoAASAAQQA6AAAMDQsgAEEEOgABIABBADoAAAwMCyAAQQU6AAEgAEEAOgAADAsLIABBBjoAASAAQQA6AAAMCgsgAEEHOgABIABBADoAAAwJCyAAQQg6AAEgAEEAOgAADAgLIABBCToAASAAQQA6AAAMBwsgAEEKOgABIABBADoAAAwGCyAAQQs6AAEgAEEAOgAADAULIABBDDoAASAAQQA6AAAMBAsCQCAHQfsARgRAIAEgAS0AGEEBayIGOgAYIAJBAWohAiAGQf8BcQ0BIARBEGogBSADIAIgAyACIANJGxCGAiAEKAIUIQIgBCgCECEDQRQQfiIBRQ0CIAEgAzYCDCABQRg2AgAgACABNgIEIABBAToAACABIAI2AhAMBQsgBCAFIAMgAkEBaiIBIAMgASADSRsQhgIgBCgCBCECIAQoAgAhA0EUEH4iAUUNASABIAM2AgwgAUEKNgIAIAAgATYCBCAAQQE6AAAgASACNgIQDAQLIAEgAjYCFCAEQThqIAEQ1gMgBC0AOEEBRgRAIAQoAjwhAgwCCyABKAIMIQUCQAJAIAEoAhQiAiABKAIQIgNJBEAgBC0AOSEGA0ACQCACIAVqLQAAQQlrDjIAAAMDAAMDAwMDAwMDAwMDAwMDAwMDAwADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBAMLIAEgAkEBaiICNgIUIAIgA0cNAAsgAyECCyAEQSBqIAUgAyACQQFqIgIgAyACIANJGxCGAiAEKAIkIQMgBCgCICEFQRQQfiICRQ0CIAIgBTYCDCACQQM2AgAgAiADNgIQDAMLIARBGGogBSADIAJBAWoiAiADIAIgA0kbEIYCIAQoAhwhAyAEKAIYIQVBFBB+IgJFDQEgAiAFNgIMIAJBBjYCACACIAM2AhAMAgsgASACQQFqNgIUIAEQqgQhAiABIAEtABhBAWo6ABgCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAZBAWsODAABAgMEBQYHCAkKCwwLQQFBgAIgAhsMDAtBAUGABCACGwwLC0EBQYAGIAIbDAoLQQFBgAggAhsMCQtBAUGACiACGwwIC0EBQYAMIAIbDAcLQQFBgA4gAhsMBgtBAUGAECACGwwFC0EBQYASIAIbDAQLQQFBgBQgAhsMAwtBAUGAFiACGwwCC0EBQYAYIAIbDAELIAJBAEcLIgVBAXENAiABKAIMIQYCQCABKAIUIgIgASgCECIDSQRAIAVBCHYhBQNAIAIgBmotAAAiB0EJayIIQRdLQQEgCHRBk4CABHFFcg0CIAEgAkEBaiICNgIUIAIgA0cNAAsgAyECCyAEQTBqIAYgAyACEIYCIAQoAjQhAiAEKAIwIQNBFBB+IgFFDQEgASADNgIMIAFBAzYCACAAIAE2AgQgAEEBOgAAIAEgAjYCEAwECyAHQf0ARgRAIAAgBToAASAAQQA6AAAgASACQQFqNgIUDAQLIARBKGogBiADIAIQhgIgBCgCLCECIAQoAighA0EUEH4iAUUNACABIAM2AgwgAUEKNgIAIAAgATYCBCAAQQE6AAAgASACNgIQDAMLAAtBASEFIAEgAS0AGEEBajoAGAsgACACNgIEIAAgBTYCAAsgBEFAayQAC6wLAiB/F30jAEEwayIHJAAgACABEOoBIAFBDGwhHCAALQDUASEdIAAtAMwBIR4gAC0AxAEhHyAALQC8ASEgIAAoAkwhCyAAKAJQIQkgACgCKCEhIAAoAiwhEyAAKAI0ISIgACgCOCEMIAAoAkAhIyAAKAJEIQ0gACgCHCEkIAAoAiAhDiAAKALQASEUIAAoAsgBIRUgACgCwAEhFiAAKAK4ASEXIAAoAhAhJSAAKAIUISZBACEBAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAA0AgByACIBhqIgA2AgACQAJAAkAgJiAAQQh2IgBLBEAgICAFIAYgAyAXahClBSEIIB8gBSAGIAMgFmoQpQUhDyAeIAUgBiADIBVqEKUFIRkgHSAFIAYgAyAUahClBSERICUgAEHIAGxqIgAqAgghLCAAKgIUITUgACoCBCEtIAAqAhAhNiAAKgIAIS4gACoCDCE3QwAAgD8gD0EUdkH/B3GzQwDAf0SVQwAAAL+SQ/MEtT+UIiggKJSTIA9BCnZB/wdxs0MAwH9ElUMAAAC/kkPzBLU/lCIpICmUkyAPQf8HcbNDAMB/RJVDAAAAv5JD8wS1P5QiKiAqlJNDAAAAABCfCZEhJyAoISsgD0EediIaDgIDAQILIAdBATYCFCAHQfToxwA2AhAgB0IBNwIcIAcgB61CgICAgBCENwMoIAcgB0EoajYCGCAHQQRqIgAgB0EQahDmBiAAEMMHIQAMEgsgJyErDAELICkhKwsgASAOTw0CIAAqAjAhLyAAKgI8ITggACoCICEwIAAqAiwhOSAAKgIYITEgACoCJCE6IAAqAjghMiAAKgJEITsgACoCNCEzIAAqAkAhPCAAKgIcITQgACoCKCE9IBIgJGoiGyAuIAhBFXazQwDg/0SVIDcgLpOUkjgCACABQQFqIgAgDk8NAyAbQQRqIC0gCEELdkH/B3GzQwDAf0SVIDYgLZOUkjgCACABQQJqIhAgDk8NBCAbQQhqICwgCEH/D3GzQwDg/0SVIDUgLJOUkjgCACABIA1PDQUgEiAjaiIIIDEgGUEVdrNDAOD/RJUgOiAxk5SSEKYEOAIAIAAgDU8NBiAIQQRqIDQgGUELdkH/B3GzQwDAf0SVID0gNJOUkhCmBDgCACANIBBNDQcgCEEIaiAwIBlB/w9xs0MA4P9ElSA5IDCTlJIQpgQ4AgAgASAMTw0IIBIgImoiCCAvIBFBGHazQwAAf0OVIDggL5OUkjgCACAAIAxPDQkgCEEEaiAzIBFBEHZB/wFxs0MAAH9DlSA8IDOTlJI4AgAgDCAQTQ0KIAhBCGogMiARQQh2Qf8BcbNDAAB/Q5UgOyAyk5SSOAIAIBMgGEYNCyAKICFqIBFB/wFxs0MAAH9DlTgCACAJIApNDQwgCyArOAIAIApBAWoiACAJTw0NIAtBBGogJyAqIBpBAkYbICkgD0EASBs4AgAgCkECaiIAIAlPDQ4gC0EIaiAnICogGkEDRhs4AgAgCkEDaiIAIAlPDQEgC0EMaiAnICggD0GAgICABEkbOAIAIBhBAWohGCAEIBdqIRcgBCAWaiEWIAQgFWohFSAEIBRqIRQgAUEDaiEBIAtBEGohCyAKQQRqIQogHCASQQxqIhJHDQALQQAhAAwOCyAAIAlByOjHABC/BwALIAEgDkH45scAEL8HAAsgACAOQYjnxwAQvwcACyAQIA5BmOfHABC/BwALIAEgDUGo58cAEL8HAAsgACANQbjnxwAQvwcACyAQIA1ByOfHABC/BwALIAEgDEHY58cAEL8HAAsgACAMQejnxwAQvwcACyAQIAxB+OfHABC/BwALIBMgE0GI6McAEL8HAAsgCiAJQZjoxwAQvwcACyAAIAlBqOjHABC/BwALIAAgCUG46McAEL8HAAsgB0EwaiQAIAALqgsBCn8jAEHgAGsiBCQAIAAoAgwhAwJAAkACQCAAKAIUIgEgACgCECICSQRAA0AgASADai0AACIGQQlrIgVBGUsNAkEBIAV0QZOAgARxRQRAIAVBGUcNAyAAEIQFIQEMBAsgACABQQFqIgE2AhQgASACRw0ACyACIQELIARBEGogAyACIAFBAWoiACACIAAgAkkbEIYCIAQoAhQhACAEKAIQIQJBFBB+IgFFDQIgASACNgIMIAFBBTYCACABIAA2AhAMAQsgBkH7AEYEQCAAIAAtABhBAWsiBToAGCABQQFqIQEgBUH/AXEEQCAAIAE2AhQgABCEBSIBRQRAIAAoAgwhBwJAAkACQCAAKAIUIgYgACgCECICSQRAIAYgB2ohCCAGIAJrIQlBACEBA0AgASAGaiEDAkAgASAIai0AAEEJaw4yAAADAwADAwMDAwMDAwMDAwMDAwMDAwMAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQDCyAAIANBAWo2AhQgCSABQQFqIgFqDQALIAIhBgsgBEEoaiAHIAIgBkEBaiIDIAIgAiADSxsQhgIgBCgCLCEGIAQoAighAkEUEH4iAUUNByABQQM2AgAMAgsgBEEgaiAHIAIgA0EBaiIDIAIgAiADSxsQhgIgBCgCJCEGIAQoAiAhAkEUEH4iAUUNBiABQQY2AgAMAQsgACADQQFqIgU2AhQCQAJAIARBMGogByACIAIgBUsEfyAIQQFqIQUDQCABIAZqIQMgASAFai0AACIIQQlrIgpBF0tBASAKdEGTgIAEcUVyDQIgACADQQJqNgIUIAkgAUEBaiIBakF/Rw0ACyACBSAFC0EBaiIDIAIgAiADSxsQhgIgBCgCNCECIAQoAjAhA0EUEH4iAUUNByABIAM2AgwgAUEFNgIAIAEgAjYCEAwBCwJAAkACQCAIQe4ARgRAIAAgA0EBaiIJQQFqIgU2AhQgAiAFTQ0BIAAgCUECaiIDNgIUIAUgB2otAABB9QBHDQMgAyAFIAIgAiAFSRsiBUYNASAAIAlBA2oiCDYCFCADIAdqLQAAQewARwRAIAghAwwECyAFIAhGDQEgACAJQQRqIgM2AhQgByAIai0AAEHsAEcNAyAAIAAtABhBAWo6ABggBEHIAGogByACIAIgA0sEfyAHIAZBBWoiBWohBiAFIAJrIQgDQCABIAVqIQMgASAGai0AACIJQQlrIgpBF0tBASAKdEGTgIAEcUVyDQQgACADQQFqNgIUIAggAUEBaiIBag0ACyACBSADCxCGAiAEKAJMIQAgBCgCSCECQRQQfiIBRQ0KIAEgAjYCDCABQQM2AgAgASAANgIQDAkLIAAgBEHfAGpB7MbHABD7ASAAEJYGIQEMAwsgBEE4aiAHIAIgBRCGAiAEKAI8IQIgBCgCOCEDQRQQfiIBRQ0IIAEgAzYCDCABQQU2AgAgASACNgIQDAILIAlB/QBGBEAgACADQQFqNgIUQQAhAQwHCyAEQUBrIAcgAiADEIYCIAQoAkQhACAEKAJAIQJBFBB+IgFFDQcgASACNgIMIAFBCjYCACABIAA2AhAMBgsgBEHQAGogByACIAMQhgIgBCgCVCECIAQoAlAhA0EUEH4iAUUNBiABIAM2AgwgAUEJNgIAIAEgAjYCEAsgACAALQAYQQFqOgAYDAQLIAEgAjYCDCABIAY2AhALIAAgAC0AGEEBajoAGAwCCyAEQRhqIAMgAiABIAIgASACSRsQhgIgBCgCHCEAIAQoAhghAkEUEH4iAUUNAiABIAI2AgwgAUEYNgIAIAEgADYCEAwBCyAEQQhqIAMgAiABQQFqIgAgAiAAIAJJGxCGAiAEKAIMIQAgBCgCCCECQRQQfiIBRQ0BIAEgAjYCDCABQQo2AgAgASAANgIQCyAEQeAAaiQAIAEPCwALzQoCJn8BfQJAAkACQAJAAkACQAJAAkAgACgChAFBgICAgHhGDQAgACgCtAEiDCAAKAKAASIISwRAIAwgCCIHayIGIAAoAnggB2tLBEAgAEH4AGogByAGQQRBBBDQBSAAKAKAASEHCyAAKAJ8IgogB0ECdGohCSAGQQJJBH8gBwUgDCAIQX9zakECdCILBEAgCUEAIAv8CwALIAogByAMaiAIa0ECdGpBBGshCSAGIAdqQQFrCyEGIAlBADYCACAAIAZBAWo2AoABCyAAIAEQ6gEgACgChAFBgICAgHhGDQAgACgCfCEMIAAoAoABIQ0gACgC8AIiFwRAIAAoAnAhECAAKAJ0IRIgACgCZCETIAAoAmghFCAAKAJYIRUgACgCXCEWIAAoAqwBIhhBBGohICAAKAKgASIZQQRqISEgACgClAEiGkEEaiEiIAAoAogBIhtBCGohIyAYIAAoArABIhxBAnRqISQgGSAAKAKkASIdQQJ0aiElIBogACgCmAEiHkECdGohJiAbIAAoAowBIh9BA3RqIScgHEEBa0H/////A3FBAWohKCAdQQFrQf////8DcUEBaiEpIB5BAWtB/////wNxQQFqISogH0EBa0H/////AXFBAWohK0EAIQtBASEAQQAhCgNAIAohBiAAIQogHwRAIAMgBmwgAmohCEEAIQAgDCEJICMhBiAbIQcDQCAHLQAEIAQgBSAIIAcoAgBqEMIEISwgACANRg0KIAkgLDgCACAJQQRqIQkgBiAGIgcgJ0dBA3RqIQYgKyAAQQFqIgBHDQALCyAeBEAgFiAPIA8gFkkbIREgKiEAIBUhByAPIQggIiEJIBohBgNAIAYoAgAiBiANTw0IIAggEUYNCSAHIAwgBkECdGoqAgBDAAAAQZRDAAB/Q5VDAACAwJI4AgAgB0EEaiEHIAhBAWohCCAJIgYgJkdBAnQgBmohCSAAQQFrIgANAAsLAkAgF0EBRg0AIB0EQCAUIA4gDiAUSRshESApIQAgEyEHIA4hCCAhIQkgGSEGA0AgBigCACIGIA1PDQcgCCARRg0IIAcgDCAGQQJ0aioCAEMAAABBlEMAAH9DlUMAAIDAkjgCACAHQQRqIQcgCEEBaiEIIAkiBiAlR0ECdCAGaiEJIABBAWsiAA0ACwsgHEUgF0ECTXINACASIAsgCyASSRshESAoIQAgECEHIAshCCAgIQkgGCEGA0AgBigCACIGIA1PDQsgCCARRg0FIAcgDCAGQQJ0aioCAEMAAABBlEMAAH9DlUMAAIDAkjgCACAHQQRqIQcgCEEBaiEIIAkiBiAkR0ECdCAGaiEJIABBAWsiAA0ACwsgEEHUAGohECALQRVqIQsgE0E8aiETIA5BD2ohDiAVQSRqIRUgD0EJaiEPIAogASAKSyIGaiEAIAYNAAsMAQsgACgCjAEiBkUNACAAKAKIASILIAZBA3RqIQ8gC0EIaiEOIAZBAWtB/////wFxQQFqIRBBACEAQQEhCANAIAghCiAAIANsIAJqIQggDCEJQQAhACAOIQYgCyEHA0AgBy0ABCAEIAUgCCAHKAIAahDCBCEsIAAgDUYNCCAJICw4AgAgCUEEaiEJIAYgBiIHIA9HQQN0aiEGIBAgAEEBaiIARw0ACyAKIAEgCksiBmohCCAKIQAgBg0ACwsPCyAIIBJBjOnHABC/BwALIAYgDUGc6ccAEL8HAAsgCCAUQazpxwAQvwcACyAGIA1BvOnHABC/BwALIAggFkHM6ccAEL8HAAsgACANQdzpxwAQvwcACyAGIA1B/OjHABC/BwALigsCCX8HfSMAQSBrIggkACAAEM8FIABBwAFqQQA6AAAgAEIANwK4ASACQQJ0IgYhBSAAKAJ8IgcgBkkEQCAGIAciBWsiCyAAKAJ0IAVrSwRAIABB9ABqIAUgC0EEQQQQ0AUgACgCfCEFCyAAKAJ4Ig0gBUECdCIMaiEJIAtBAk8EQCAGIAdBf3NqQQJ0IgoEQCAJQQAgCvwLAAsgAkEEdCAHQQJ0ayANaiAMakEEayEJIAUgC2pBAWshBQsgCUEANgIAIAVBAWohBQsgACAFNgJ8AkACQAJAIAAoAgBBAUcNACAFIAZJDQIgACgCeCELAkAgAkUNACACQf////8DcSEJQQAhDCALIQcgAiENQQghBQJ/AkACQAJ/AkACQAJAA0ACQAJAAkAgBCAFQQhrSwRAIAVBB2sgBE8NASAFQQZrIARPDQIgCQ0DIAwgBkGY08EAEL8HAAsgBUEIawwKCyAFQQdrDAYLIAVBBmshBQwCC0MAAH9DIANBBGoqAgAiEYsiDkMAAIA/QwAA+EFDAAAAACADKgIAIhKLIg8gDiADQQhqKgIAIhOLIhQQnwkQnwkQywWOQwAAcEGSIg4gDkMAAAAAXRsiDiAOQwAA+EFeGxDuB/wAIgpBD2sQ5QZDAAB/Q5UiDpUiECAQQwAAf0NeGxDuByEQIAdDAAB/QyAPIA6VIg8gD0MAAH9DXhsQ7gf8ASAKQRt0IBJDAAAAAF1BGHRyIBFDAAAAAF1BGXRyIBNDAAAAAF1BGnRyciAQ/AFBCHRyQwAAf0MgFCAOlSIOIA5DAAB/Q14bEO4H/AFBEHRyNgIAIAVBBWsgBE8NBiAFQQRrIARPDQMgBCAFQQNrSwRAQwAAf0MgA0EQaioCACIRiyIOQwAAgD9DAAD4QUMAAAAAIANBDGoqAgAiEosiDyAOIANBFGoqAgAiE4siFBCfCRCfCRDLBY5DAABwQZIiDiAOQwAAAABdGyIOIA5DAAD4QV4bEO4H/AAiCkEPaxDlBkMAAH9DlSIOlSIQIBBDAAB/Q14bEO4HIRAgB0EEakMAAH9DIA8gDpUiDyAPQwAAf0NeGxDuB/wBIApBG3QgEkMAAAAAXUEYdHIgEUMAAAAAXUEZdHIgE0MAAAAAXUEadHJyIBD8AUEIdHJDAAB/QyAUIA6VIg4gDkMAAH9DXhsQ7gf8AUEQdHI2AgAgBUECayAETw0GIAVBAWsgBE8NAyAEIAVNDQJDAAB/QyADQRxqKgIAIhGLIg5DAACAP0MAAPhBQwAAAAAgA0EYaioCACISiyIPIA4gA0EgaioCACITiyIUEJ8JEJ8JEMsFjkMAAHBBkiIOIA5DAAAAAF0bIg4gDkMAAPhBXhsQ7gf8ACIKQQ9rEOUGQwAAf0OVIg6VIhAgEEMAAH9DXhsQ7gchECAHQQhqQwAAf0MgDyAOlSIPIA9DAAB/Q14bEO4H/AEgCkEbdCASQwAAAABdQRh0ciARQwAAAABdQRl0ciATQwAAAABdQRp0cnIgEPwBQQh0ckMAAH9DIBQgDpUiDiAOQwAAf0NeGxDuB/wBQRB0cjYCACAHQRBqIQcgDEEEaiEMIAlBAWshCSAFQQlqIQUgA0EkaiEDIA1BAWsiDQ0BDAkLCyAFQQNrIQULIAUgBEGI08EAEL8HAAsgBUEBawwBCyAFQQRrCyAEQfjSwQAQvwcACyAFQQJrDAELIAVBBWsLIARB6NLBABC/BwALIAggACgCBCABQQJ0IAEgAmpBAnQQoAkiABCDCyIBNgIAIAggBjYCBCABIAZHDQEgACALIAYQqQogAEGECEkNACAAEM0HCyAIQSBqJAAPCyAIQQA2AghBACAIIAhBBGogCEEIakHcgcUAEK4IAAsgBiAFQdjSwQAQogoAC6gLAgh/AX4jAEGQAWsiAyQAAn8gAkUEQCADQRBqIANBHGooAgA2AgAgAyADKQIUNwMIIAAoAgAhBSABIQYgASACagwBC0EBIQQCfyABLAAAIgVBAE4EQCAFQf8BcSEFIAFBAWoMAQsgAS0AAUE/cSEHIAVBH3EhBiAFQV9NBEAgBkEGdCAHciEFIAFBAmoMAQsgAS0AAkE/cSAHQQZ0ciEHIAVBcEkEQCAHIAZBDHRyIQUgAUEDagwBCyAGQRJ0QYCA8ABxIAEtAANBP3EgB0EGdHJyIQUgAUEEagshBiADQRRqIAVBgYIEEJADIANBEGogA0EcaigCACIHNgIAIAMgAykCFCILNwMIIAMtACEhCCADLQAgIQkgACgCACEFIANBiAFqIAc2AgAgAyALNwOAASABIAJqCyEHIANByABqIANBiAFqKAIANgIAIAMgAykDgAE3AkAgAyAHNgJ8IAMgBjYCeEEAIQAgA0EANgJkIANBADYCUCADIAg6AE0gAyAJOgBMIAMgBDYCPCADQQA2AiggA0EANgIUAkACQCAEBEAgA0EYaiIEIANBQGv9AAIA/QsCACADLQAkIQECQCADLQAlIgJBgQFPBEAgASACTw0BIAQoAgAhBCAFKAIAIQggBSgCBCgCECEJA0AgCCAEIAkRAgANBCABQQFqIgFB/wFxIAJJDQALIAIhAQwBCyABIAJPDQAgASACIAEgAksbIQIgBSgCACEIIAUoAgQoAhAhCQNAIAggASAEai0AACAJEQIADQMgAiABQQFqIgFHDQALIAIhAQsgAyABOgAkCyAGIAdGDQEgA0HUAGoiCSEAIAUoAgQhCCAFKAIAIQUDQAJAAn8CQAJAAn8gBiwAACIBQQBOBEAgAUH/AXEhBCAGQQFqDAELIAYtAAFBP3EhBCABQR9xIQIgAUFfTQRAIAJBBnQgBHIhBCAGQQJqDAELIAYtAAJBP3EgBEEGdHIhBCABQXBJBEAgBCACQQx0ciEEIAZBA2oMAQsgAkESdEGAgPAAcSAGLQADQT9xIARBBnRyciIEQYCAxABGDQEgBkEEagshBgJAAkACQAJAAkACQAJAAkACQAJAIAQOKAIBAQEBAQEBAQMFAQEEAQEBAQEBAQEBAQEBAQEBAQEBAQEHAQEBAQgACyAEQdwARg0FCyAEENcGDQcgA0EAOgCCASADQQA7AYABIAMgBEEUdkG0uMUAai0AADoAgwEgAyAEQQR2QQ9xQbS4xQBqLQAAOgCHASADIARBCHZBD3FBtLjFAGotAAA6AIYBIAMgBEEMdkEPcUG0uMUAai0AADoAhQEgAyAEQRB2QQ9xQbS4xQBqLQAAOgCEASAEQQFyZ0ECdiIBIANBgAFqIgpqIgJB+wA6AAAgAkEBa0H1ADoAACAKIAFBAmsiAWpB3AA6AAAgA0H9ADoAiQEgAyAEQQ9xQbS4xQBqLQAAOgCIAUEKDAoLIANCADcBggEgA0Hc4AA7AYABDAgLIANCADcBggEgA0Hc6AE7AYABDAcLIANCADcBggEgA0Hc5AE7AYABDAYLIANCADcBggEgA0Hc3AE7AYABDAULIANCADcBggEgA0HcuAE7AYABDAQLIANCADcBggEgA0HcxAA7AYABDAMLIANCADcBggEgA0HczgA7AYABDAILIAMgBDYCgAEgACADKQKAATcCACAAQQhqIANBiAFqLwEAOwEAIAUgCSgCACAIKAIQEQIARQ0DDAULQQAhAAwFC0EAIQFBAgshBCAAIAMpAoABNwIAIABBCGogA0GIAWovAQA7AQAgASAEIAEgBEsbIgJB/wFxIQQgCCgCECEKA0AgBSAAIAFqLQAAIAoRAgANAyAEIAFBAWoiAUcNAAsgAyACOgBgCyAGIAdHDQALQQAhAAwBC0EBIQALIANBkAFqJAAgAAugCgIHfwF7IAAgASgCBDYCXAJAAkACQCABLQAIRQRAIAEoAgAiBbNDAADAP5SN/AEiAiAAKAIAIAAoAggiAWtLBEAgACABIAJBBEEYENAFCyAAKAIMIAAoAhQiAWsgAkkEQCAAQQxqIAEgAkEEQRgQ0AULIAAoAlwiA0UNASAAKAIYIAAoAiAiAWsgAkkEQCAAQRhqIAEgAkEBQQkQ0AUgACgCXCEDCyADQQJJDQEgACgCJCAAKAIsIgFrIAJJBH8gAEEkaiABIAJBAUEPENAFIAAoAlwFIAMLQQNJDQEgAiAAKAIwIAAoAjgiAWtNDQEgAEEwaiABIAJBAUEVENAFDAELIAEoAgAiBSAAKAIUIgJNBEAgACAFNgIUIAIgBUYNASAAKAIQIAVBGGxqIQEDQCABQRRqKAIAIgNBBU8EQCABQQhqKAIAIgZBBGsoAgAiBEF4cSIIIANBAnQiA0EEQQggBEEDcSIEG2pJDQQgBEEAIAggA0EnaksbDQUgBhC0AgsgAUEYaiEBIAUgAkEBayICRw0ACwwBCyACIQQgBSACayIHIAAoAgwgAmtLBEAgAEEMaiACIAdBBEEYENAFIAAoAhQhBAsgACgCECEGIAdBA3EiAwRAIAMgBGogBSACayADayEHIAYgBEEYbGohAQNAIAFBADYCACABQRRqQQA2AgAgAUEYaiEBIANBAWsiAw0ACyEECyACIAVrQXxNBEAgBiAEQRhsaiEBA0AgAUEANgIAIAFB3ABqQQA2AgAgAUHEAGpCADcCACABQSxqQgA3AgAgAUEUakIANwIAIAFB4ABqIQEgBEEEaiEEIAdBBGsiBw0ACwsgACAENgIUCwJAIAAoAggiBiAFIgJPDQAgAiAGIgJrIgQgACgCACACa0sEQCAAIAIgBEEEQRgQ0AUgACgCCCECCyAAKAIEIQcgBEEDcSIDBEAgAiADaiAFIAZrIANrIQQgByACQRhsaiEBA0AgAf0MAAAAAAAAAAAAAAAAAAAAAP0LAgAgAUEPakIANwAAIAFBGGohASADQQFrIgMNAAshAgsgBiAFa0F8Sw0AIAcgAkEYbGohAQNAIAH9DAAAAAAAAAAAAAAAAAAAAAD9CwIAIAFBD2pCADcAACABQRhqIAn9CwIAIAFBJ2pCADcAACABQTBqIAn9CwIAIAFBP2pCADcAACABQcgAaiAJ/QsCACABQdcAakIANwAAIAFB4ABqIQEgAkEEaiECIARBBGsiBA0ACwsgACACNgIIAkAgACgCXCIBRQ0AIAAgACgCICIDIAVPBH8gBQUgBSADayIEIAAoAhggA2tLBEAgAEEYaiADIARBAUEJENAFIAAoAiAhAyAAKAJcIQELIARBCWwiAgRAIAAoAhwgA0EJbGpBACAC/AsACyADIARqCzYCICABQQJJDQAgACAAKAIsIgMgBU8EfyAFBSAFIANrIgQgACgCJCADa0sEQCAAQSRqIAMgBEEBQQ8Q0AUgACgCLCEDIAAoAlwhAQsgBEEPbCICBEAgACgCKCADQQ9sakEAIAL8CwALIAMgBGoLNgIsIAFBA0kNACAAIAAoAjgiASAFSQR/IAUgAWsiBSAAKAIwIAFrSwRAIABBMGogASAFQQFBFRDQBSAAKAI4IQELIAVBFWwiAgRAIAAoAjQgAUEVbGpBACAC/AsACyABIAVqBSAFCzYCOAsPC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAv0CgEIfyMAQYABayIEJAAgACgCDCEGAkACQAJAAkACQAJAAkAgACgCFCIIIAAoAhAiA0kEQAJAAkACQAJAAkACQAJAAkACQCAGIAhqLQAAIgVB2wBrDiEECAgICAgICAgICAMICAgICAgIAQgICAgIAggICAgICAUACyAFQSJrDgwGBwcHBwcHBwcHBwUHCyAAIAhBAWoiBTYCFAJAIAMgBU0NACAAIAhBAmoiBzYCFCAFIAZqLQAAQfUARw0NIAMhBSADIAdGDQAgACAIQQNqIgk2AhQgBiAHai0AAEHsAEcEQCAJIQcMDgsgAyAJRg0AIAAgCEEEaiIHNgIUIAYgCWotAABB7ABHDQ0gBEEHOgBwIARB8ABqIAEgAhCUByAAEJYGIQMMDgsgBEEQaiAGIAMgBRCGAiAEKAIUIQAgBCgCECEBQRQQfiIDRQ0OIAMgATYCDCADQQU2AgAgAyAANgIQDA0LIAAgCEEBaiIFNgIUAkAgAyAFTQ0AIAAgCEECaiIHNgIUIAUgBmotAABB8gBHDQsgAyEFIAMgB0YNACAAIAhBA2oiCTYCFCAGIAdqLQAAQfUARwRAIAkhBwwMCyADIAlGDQAgACAIQQRqIgc2AhQgBiAJai0AAEHlAEcNCyAEQYACOwFwIARB8ABqIAEgAhCUByAAEJYGIQMMDQsgBEEgaiAGIAMgBRCGAiAEKAIkIQAgBCgCICEBQRQQfiIDRQ0NIAMgATYCDCADQQU2AgAgAyAANgIQDAwLIAAgCEEBaiIFNgIUAkAgAyAFTQ0AIAAgCEECaiIHNgIUIAUgBmotAABB4QBHDQkgAyEFIAMgB0YNACAAIAhBA2oiCTYCFCAGIAdqLQAAQewARwRAIAkhBwwKCyADIAlGDQAgACAIQQRqIgo2AhQgBiAJai0AAEHzAEcEQCAKIQcMCgsgAyAKRg0AIAAgCEEFaiIHNgIUIAYgCmotAABB5QBHDQkgBEEAOwFwIARB8ABqIAEgAhCUByAAEJYGIQMMDAsgBEEwaiAGIAMgBRCGAiAEKAI0IQAgBCgCMCEBQRQQfiIDRQ0MIAMgATYCDCADQQU2AgAgAyAANgIQDAsLIARBCjoAcCAEQfAAaiABIAIQlAcgABCWBiEDDAoLIARBCzoAcCAEQfAAaiABIAIQlAcgABCWBiEDDAkLIAAgCEEBajYCFCAEQUBrIgUgAEEAEOkDIAQpA0BCA1ENBCAFIAEgAhC4ByAAEJYGIQMMCAsgAEEANgIIIAAgCEEBajYCFCAEQeQAaiAAQQxqIAAQjwIgBCgCaCEDIAQoAmRBAkYNByAEIAQoAmw2AnggBCADNgJ0IARBBToAcCAEQfAAaiABIAIQlAcgABCWBiEDDAcLIAVBMGtB/wFxQQpJDQELIARBCGogBiADIAhBAWoiASADIAEgA0kbEIYCIAQoAgwhAiAEKAIIIQNBFBB+IgFFDQYgASADNgIMIAFBCjYCACABIAI2AhAgASAAEJYGIQMMBQsgBEHQAGogAEEBEOkDIAQpA1BCA1EEQCAEKAJYIQMMBQsgBEHQAGogASACELgHIAAQlgYhAwwECyAEKAJIIQMMAwsgBEE4aiAGIAMgBxCGAiAEKAI8IQAgBCgCOCEBQRQQfiIDRQ0DIAMgATYCDCADQQk2AgAgAyAANgIQDAILIARBKGogBiADIAcQhgIgBCgCLCEAIAQoAighAUEUEH4iA0UNAiADIAE2AgwgA0EJNgIAIAMgADYCEAwBCyAEQRhqIAYgAyAHEIYCIAQoAhwhACAEKAIYIQFBFBB+IgNFDQEgAyABNgIMIANBCTYCACADIAA2AhALIARBgAFqJAAgAw8LAAv0CgEIfyMAQYABayIEJAAgACgCDCEGAkACQAJAAkACQAJAAkAgACgCFCIIIAAoAhAiA0kEQAJAAkACQAJAAkACQAJAAkACQCAGIAhqLQAAIgVB2wBrDiEECAgICAgICAgICAMICAgICAgIAQgICAgIAggICAgICAUACyAFQSJrDgwGBwcHBwcHBwcHBwUHCyAAIAhBAWoiBTYCFAJAIAMgBU0NACAAIAhBAmoiBzYCFCAFIAZqLQAAQfUARw0NIAMhBSADIAdGDQAgACAIQQNqIgk2AhQgBiAHai0AAEHsAEcEQCAJIQcMDgsgAyAJRg0AIAAgCEEEaiIHNgIUIAYgCWotAABB7ABHDQ0gBEEHOgBwIARB8ABqIAEgAhCUByAAEJYGIQMMDgsgBEEQaiAGIAMgBRCGAiAEKAIUIQAgBCgCECEBQRQQfiIDRQ0OIAMgATYCDCADQQU2AgAgAyAANgIQDA0LIAAgCEEBaiIFNgIUAkAgAyAFTQ0AIAAgCEECaiIHNgIUIAUgBmotAABB8gBHDQsgAyEFIAMgB0YNACAAIAhBA2oiCTYCFCAGIAdqLQAAQfUARwRAIAkhBwwMCyADIAlGDQAgACAIQQRqIgc2AhQgBiAJai0AAEHlAEcNCyAEQYACOwFwIARB8ABqIAEgAhCUByAAEJYGIQMMDQsgBEEgaiAGIAMgBRCGAiAEKAIkIQAgBCgCICEBQRQQfiIDRQ0NIAMgATYCDCADQQU2AgAgAyAANgIQDAwLIAAgCEEBaiIFNgIUAkAgAyAFTQ0AIAAgCEECaiIHNgIUIAUgBmotAABB4QBHDQkgAyEFIAMgB0YNACAAIAhBA2oiCTYCFCAGIAdqLQAAQewARwRAIAkhBwwKCyADIAlGDQAgACAIQQRqIgo2AhQgBiAJai0AAEHzAEcEQCAKIQcMCgsgAyAKRg0AIAAgCEEFaiIHNgIUIAYgCmotAABB5QBHDQkgBEEAOwFwIARB8ABqIAEgAhCUByAAEJYGIQMMDAsgBEEwaiAGIAMgBRCGAiAEKAI0IQAgBCgCMCEBQRQQfiIDRQ0MIAMgATYCDCADQQU2AgAgAyAANgIQDAsLIARBCjoAcCAEQfAAaiABIAIQlAcgABCWBiEDDAoLIARBCzoAcCAEQfAAaiABIAIQlAcgABCWBiEDDAkLIAAgCEEBajYCFCAEQUBrIgUgAEEAEMkCIAQpA0BCA1ENBCAFIAEgAhC4ByAAEJYGIQMMCAsgAEEANgIIIAAgCEEBajYCFCAEQeQAaiAAQQxqIAAQjwIgBCgCaCEDIAQoAmRBAkYNByAEIAQoAmw2AnggBCADNgJ0IARBBToAcCAEQfAAaiABIAIQlAcgABCWBiEDDAcLIAVBMGtB/wFxQQpJDQELIARBCGogBiADIAhBAWoiASADIAEgA0kbEIYCIAQoAgwhAiAEKAIIIQNBFBB+IgFFDQYgASADNgIMIAFBCjYCACABIAI2AhAgASAAEJYGIQMMBQsgBEHQAGogAEEBEMkCIAQpA1BCA1EEQCAEKAJYIQMMBQsgBEHQAGogASACELgHIAAQlgYhAwwECyAEKAJIIQMMAwsgBEE4aiAGIAMgBxCGAiAEKAI8IQAgBCgCOCEBQRQQfiIDRQ0DIAMgATYCDCADQQk2AgAgAyAANgIQDAILIARBKGogBiADIAcQhgIgBCgCLCEAIAQoAighAUEUEH4iA0UNAiADIAE2AgwgA0EJNgIAIAMgADYCEAwBCyAEQRhqIAYgAyAHEIYCIAQoAhwhACAEKAIYIQFBFBB+IgNFDQEgAyABNgIMIANBCTYCACADIAA2AhALIARBgAFqJAAgAw8LAAvbCwEFfyMAQTBrIgIkAEEBIQMCQAJAAkACQAJAAkACQEEBIAAtAAAiBEEkayAEQSNNG0H/AXFBAWsOAwECAwALIAEoAgAiBEHLrccAQQcgASgCBCIGKAIMIgURAAANBSAAQQRqIQACQCABLQAKQYABcUUEQCAEQfm6xQBBASAFEQAADQcgACABELwCRQ0BDAcLIARBjKHCAEECIAURAAANBiACQQE6ACggAiAGNgIIIAIgBDYCBCACQeSgwgA2AhggAiABKQIINwIcIAIgAkEoajYCDCACIAJBBGo2AhQgACACQRRqELwCDQYgAigCFEGDocIAQQIgAigCGCgCDBEAAA0GCyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMBQsgASgCACIEQcXAxwBBBiABKAIEIgYoAgwiBREAAA0EAkACQCABLQAKQYABcUUEQCAEQfm6xQBBASAFEQAADQcgAiAANgIEIAEoAgBBgMDEAEELIAEoAgQoAgwRAAAhACACQQA6ABkgAiAAOgAYIAIgATYCFCACQRRqQZS/xABBBSACQQRqQfC/xAAQvQUhACACLQAYIgRBAXEgAi0AGSIFQQFHckUEQCAAKAIAIgAtAApBgAFxDQIgACgCAEHxwMUAQQIgACgCBCgCDBEAAEUNAwwICyAFDQcgBEEBcUUNAgwHCyAEQYyhwgBBAiAFEQAADQYgAiAGNgIIIAIgBDYCBCACQQE6ABMgAkHkoMIANgIYIAIgASkCCDcCHCACIAJBE2o2AgwgAiACQQRqIgM2AhQgAiAANgIkIANBgMDEAEELENgDIQAgAkEAOgAtIAIgADoALCACIAJBFGo2AiggAkEoakGUv8QAQQUgAkEkakHwv8QAEL0FIQACQAJAIAItACwiA0EBcSACLQAtIgRBAUdyRQRAIAAoAgAiAC0ACkGAAXENASAAKAIAQfHAxQBBAiAAKAIEKAIMEQAADQgMAgsgBA0HIANBAXFFDQEMBwsgACgCAEGSvcUAQQEgACgCBCgCDBEAAA0GCyACKAIUQYOhwgBBAiACKAIYKAIMEQAARQ0BQQEhAwwGCyAAKAIAQZK9xQBBASAAKAIEKAIMEQAADQULIAEoAgBBpqHIAEEBIAEoAgQoAgwRAAAhAwwECyABKAIAIgRBvK3HAEEJIAEoAgQiBigCDCIFEQAADQMgAEEEaiEAAkACQCABLQAKQYABcUUEQCAEQfm6xQBBASAFEQAADQYgAiAANgIEIAEoAgBB/LDHAEEOIAEoAgQoAgwRAAAhACACQQA6ABkgAiAAOgAYIAIgATYCFCACQRRqQZS/xABBBSACQQRqQYS/xAAQvQUhACACLQAYIgRBAXEgAi0AGSIFQQFHckUEQCAAKAIAIgAtAApBgAFxDQIgACgCAEHxwMUAQQIgACgCBCgCDBEAAEUNAwwHCyAFDQYgBEEBcUUNAgwGCyAEQYyhwgBBAiAFEQAADQUgAiAGNgIIIAIgBDYCBCACQQE6ABMgAkHkoMIANgIYIAIgASkCCDcCHCACIAJBE2o2AgwgAiACQQRqIgM2AhQgAiAANgIkIANB/LDHAEEOENgDIQAgAkEAOgAtIAIgADoALCACIAJBFGo2AiggAkEoakGUv8QAQQUgAkEkakGEv8QAEL0FIQACQAJAIAItACwiA0EBcSACLQAtIgRBAUdyRQRAIAAoAgAiAC0ACkGAAXENASAAKAIAQfHAxQBBAiAAKAIEKAIMEQAADQYMAgsgBA0FIANBAXFFDQEMBQsgACgCAEGSvcUAQQEgACgCBCgCDBEAAA0ECyACKAIUQYOhwgBBAiACKAIYKAIMEQAARQ0BQQEhAwwFCyAAKAIAQZK9xQBBASAAKAIEKAIMEQAADQQLIAEoAgBBpqHIAEEBIAEoAgQoAgwRAAAhAwwDCyABKAIAQcPExABBDiABKAIEKAIMEQAAIQMMAgtBASEDDAELQQEhAwsgAkEwaiQAIAML4AoCB38BfiMAQdAAayIEJAAgAAJ/AkACQAJAAkACQAJAIAEoAhQiAiABKAIQIgNJBEAgASgCDCEIAn4CQANAIAIgCGotAAAiBUEJayIHQRdLQQEgB3RBk4CABHFFcg0BIAEgAkEBaiICNgIUIAIgA0cNAAsgAyECQgAMAQtCgAILIAWtQhCGhEKAgrgDUQ0BCyAEQSBqIAEoAgwiBSADIAIgA0kEfwNAIAIgBWotAAAiBkEJayIHQRlLDQNBASAHdEGTgIAEcUUEQCAHQRlHDQQgARDzBCICDQUMCAsgASACQQFqIgI2AhQgAiADRw0ACyADBSACC0EBaiIBIAMgASADSRsQhgIgBCgCJCECIAQoAiAhA0EUEH4iAUUNBCABIAM2AgwgAUEFNgIAIAEgAjYCECAAIAE2AgQMAwsgASACQQFqIgY2AhQCQAJAAkAgAyAGTQ0AIAEgAkECaiIFNgIUIAYgCGotAABB9QBHDQEgBSAGIAMgAyAGSRsiBkYNACABIAJBA2oiBzYCFCAFIAhqLQAAQewARwRAIAchBQwCCyAGIAdGDQAgASACQQRqIgU2AhQgByAIai0AAEHsAEcNASAAQQA6AAFBAAwICyAEQQhqIAggAyAGEIYCIAQoAgwhBiAEKAIIIQFBFBB+IgJFDQUgAkEFNgIADAELIARBEGogCCADIAUQhgIgBCgCFCEGIAQoAhAhAUEUEH4iAkUNBCACQQk2AgALIAIgATYCDCAAIAI2AgQgAiAGNgIQDAILIAZB+wBHBEAgBEEYaiAFIAMgAkEBaiIBIAMgASADSRsQhgIgBCgCHCECIAQoAhghA0EUEH4iAUUNAyABIAM2AgwgAUEKNgIAIAEgAjYCECAAIAE2AgQMAgsgASABLQAYQQFrIgc6ABggAkEBaiECIAdB/wFxRQRAIARBKGogBSADIAIgAyACIANJGxCGAiAEKAIsIQIgBCgCKCEDQRQQfiIBRQ0DIAEgAzYCDCABQRg2AgAgASACNgIQIAAgATYCBAwCCyABIAI2AhQCQCABEPMEIgJFBEAgASgCDCEFAkACQCABKAIUIgIgASgCECIDSQRAA0ACQCACIAVqLQAAQQlrDjIAAAMDAAMDAwMDAwMDAwMDAwMDAwMDAwADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBgMLIAEgAkEBaiICNgIUIAIgA0cNAAsgAyECCyAEQThqIAUgAyACQQFqIgIgAyACIANJGxCGAiAEKAI8IQYgBCgCOCEDQRQQfiICRQ0GIAJBAzYCAAwBCyAEQTBqIAUgAyACQQFqIgIgAyACIANJGxCGAiAEKAI0IQYgBCgCMCEDQRQQfiICRQ0FIAJBBjYCAAsgAiADNgIMIAIgBjYCEAsgASABLQAYQQFqOgAYIAAgAjYCBAwCCyABIAJBAWo2AhQgARCqBCECIAEgAS0AGEEBajoAGCACDQAgASgCDCEFAkAgASgCFCICIAEoAhAiA0kEQANAIAIgBWotAAAiB0EJayIGQRdLQQEgBnRBk4CABHFFcg0CIAEgAkEBaiICNgIUIAIgA0cNAAsgAyECCyAEQcgAaiAFIAMgAhCGAiAEKAJMIQIgBCgCSCEDQRQQfiIBRQ0DIAEgAzYCDCABQQM2AgAgASACNgIQIAAgATYCBAwCCyAHQf0ARgRAIAEgAkEBajYCFAwECyAEQUBrIAUgAyACEIYCIAQoAkQhASAEKAJAIQNBFBB+IgJFDQIgAiADNgIMIAJBCjYCACACIAE2AhALIAAgAjYCBAtBAQwCCwALIABBAToAAUEACzoAACAEQdAAaiQAC8MKAw5/A3sCfiMAQaABayIHJAAgByACNgIEIAcgACgCCCIDNgIIAkACQAJAAkACQAJAAkACQAJAAkAgAiADRgRAIAdBDGogASACEJQEIAcoAhAhAQJAIAcoAhQiDEUNACABIAxBA3RqIQogACgCBCEGIAEhAwNAIAMoAgAiBCACTw0DIANBBGooAgAiBSACTw0MIAYgBEEkbGoiBEEgaiIIKAIAIQkgBiAFQSRsaiIF/QACACESIAVBEGoiC/0AAgAhESAIIAVBIGoiCCgCADYCACAEQRBqIg39AAIAIRMgDSAR/QsCACAE/QACACERIAQgEv0LAgAgCyAT/QsCACAFIBH9CwIAIAggCTYCACADQQhqIgMgCkcNAAsgACgCFCICBEAgACgCECEEIAEhAwNAIAMoAgAiBSACTw0NIANBBGooAgAiBiACTw0FIAQgBUEYbGoiBUEQaiIIKQIAIRQgBCAGQRhsaiIG/QACACESIAggBkEQaiIIKQIANwIAIAX9AAIAIREgBSAS/QsCACAIIBQ3AgAgBiAR/QsCACADQQhqIgMgCkcNAAsLIAAoAiAiAgRAIAAoAhwhBCABIQMDQCADKAIAIgUgAk8NDSADQQRqKAIAIgYgAk8NBiAEIAVBEmxqIgVBEGoiCC8BACEJIAQgBkESbGoiBv0AAQAhEiAIIAZBEGoiCC8BADsBACAF/QABACERIAUgEv0LAQAgCCAJOwEAIAYgEf0LAQAgA0EIaiIDIApHDQALCyAAKAIsIgUEQCAAKAIoIQYgASECA0AgAigCACIDIAVPDQcgAkEEaigCACIEIAVPDQggBiADQR5saiIDQRBqIggpAQAhFCADQRZqKQEAIRUgBiAEQR5saiIEQRxqLwEAIQkgBEEYaigBACELIAT9AAEAIRIgCCAEQRBqIggpAQA3AQAgA/0AAQAhESADIBL9CwEAIANBGGogCzYBACADQRxqIAk7AQAgB0GGAWoiAyAVNwEAIAdBgAFqIgkgFDcDACAEIBH9CwEAIAggCSkDADcBACAEQRZqIAMpAQA3AQAgAkEIaiICIApHDQALCyAAKAI4IgNFIAxFcg0AIAAoAjQhBSABIQIDQCACKAIAIgAgA08NCCACQQRqKAIAIgQgA08NCSAHQZgBaiIMIAUgAEEqbGoiAEEoaiIGLwEAOwEAIAdBkAFqIgggAEEgaiIJKQEANwMAIAdBgAFqIgsgAEEQaiIN/QABAP0LAwAgBSAEQSpsaiIEQRBqIg79AAEAIRIgBP0AAQAhESAEQShqIg8vAQAhECAJIARBIGoiCSkBADcBACAGIBA7AQAgAP0AAQAhEyAAIBH9CwEAIA0gEv0LAQAgByAT/QsDcCAJIAgpAwA3AQAgDyAMLwEAOwEAIAQgB/0AA3D9CwEAIA4gC/0AAwD9CwEAIAJBCGoiAiAKRw0ACwsgBygCDCIABEAgAUEEaygCACICQXhxIgMgAEEDdCIAQQRBCCACQQNxIgIbakkNCSACQQAgAyAAQSdqSxsNCiABELQCCyAHQaABaiQADwsgB0EANgJwQQAgB0EEaiAHQQhqIAdB8ABqQajOxwAQrggACyAEIAJB7MfHABC/BwALIAYgAkHsx8cAEL8HAAsgBiACQezHxwAQvwcACyADIAVB7MfHABC/BwALIAQgBUHsx8cAEL8HAAsgACADQezHxwAQvwcACyAEIANB7MfHABC/BwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyAFIAJB7MfHABC/BwAL+QoDBX8CfQF+IwBBIGsiAiQAAkAgASgCACIEQYC9xABBBSABKAIEIgMoAgwiBREAAARAQQEhAwwBCwJAAkACQCABKAIIIgZBgICABHFFBEBBASEDIARB+brFAEEBIAURAAANBCAGQYCAgAFxIQUgACoCACEHIAZBgICAgAFxDQEgAEEEaiEEIAeLIghDyhsOWmAgB0MAAAAAXCAIQxe30ThdcXJFBEAgASAHIAVBAEdBARCXA0UNAwwFCyABIAcgBUEARxDmAkUNAgwECyAEQYyhwgBBAiAFEQAABEBBASEDDAQLIAJBAToADyACIAM2AgQgAiAENgIAIAJB5KDCADYCFCACIAEpAggiCTcCGCAJpyIEQYCAgAFxIQMgAiACQQ9qNgIIIAIgAjYCECAAKgIAIQcCQAJAIARBgICAgAFxRQRAIAeLIghDyhsOWmAgB0MAAAAAXCAIQxe30ThdcXINASACQRBqIAcgA0EAR0EBEJcDDQUMAgsgAkEQaiAHIANBAEcgCUIwiKcQ0wJFDQEMBAsgAkEQaiAHIANBAEcQ5gINAwsgAigCEEGDocIAQQIgAigCFCgCDBEAAARAQQEhAwwECyAAQQRqIQQMAQsgASAHIAVBAEcgAS8BDhDTAg0CIABBBGohBAsCQAJAAkACQAJAIAEoAggiA0GAgIAEcUUEQCABKAIAQcOaxgBBAiABKAIEKAIMEQAABEBBASEDDAgLIANBgICAAXEhBSAEKgIAIQcgA0GAgICAAXENASAAQQhqIQQgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQEEBIQMgASAHIAVBAEdBARCXA0UNBQwICyABIAcgBUEARxDmAkUNBEEBIQMMBwsgASkCACEJIAJBAToADyACIAk3AgAgAkHkoMIANgIUIAIgASkCCCIJNwIYIAmnIgVBgICAAXEhAyACIAJBD2o2AgggAiACNgIQIAQqAgAhByAFQYCAgIABcUUNASACQRBqIAcgA0EARyAJQjCIpxDTAkUNAgwECyABIAcgBUEARyABLwEOENMCBEBBASEDDAYLIABBCGohBAwCCyAHiyIIQ8obDlpgIAdDAAAAAFwgCEMXt9E4XXFyRQRAIAJBEGogByADQQBHQQEQlwMNAwwBCyACQRBqIAcgA0EARxDmAg0CCyACKAIQQYOhwgBBAiACKAIUKAIMEQAARQRAIABBCGohBAwBC0EBIQMMAwsCQAJAAkACQAJAIAEoAggiA0GAgIAEcUUEQCABKAIAQcOaxgBBAiABKAIEKAIMEQAABEBBASEDDAkLIANBgICAAXEhACAEKgIAIQcgA0GAgICAAXENASAHiyIIQ8obDlpgIAdDAAAAAFwgCEMXt9E4XXFyRQRAQQEhAyABIAcgAEEAR0EBEJcDRQ0FDAkLQQEhAyABIAcgAEEARxDmAkUNBAwICyABKQIAIQkgAkEBOgAPIAIgCTcCACACQeSgwgA2AhQgAiABKQIIIgk3AhggCaciA0GAgIABcSEAIAIgAkEPajYCCCACIAI2AhAgBCoCACEHIANBgICAgAFxRQ0BIAJBEGogByAAQQBHIAlCMIinENMCRQ0CDAQLQQEhAyABIAcgAEEARyABLwEOENMCDQYMAgsgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQCACQRBqIAcgAEEAR0EBEJcDDQMMAQsgAkEQaiAHIABBAEcQ5gINAgsgAigCEEGDocIAQQIgAigCFCgCDBEAAEUNAEEBIQMMBAsgASgCAEGmocgAQQEgASgCBCgCDBEAACEDDAMLQQEhAwwCC0EBIQMMAQtBASEDCyACQSBqJAAgAwvYCQMQfwR+AXsjAEEwayIGJAACQAJAIAIoAgAiDiACKAIIIgtrIgdBIE8EQCABKQMIIRQgDiEFIAshBwwBCyAGQRBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAGIBf9CwMAAn8gASkDCCIVUARAIAsMAQsgASgCECIPKAIAIA8pAwgiEyAPKAIEIgStIhYgEyAWVBunaiEIAkAgBEL/////DyATIBNC/////w9aG6drIgVBACAEIAVPGyIEQiAgFSAVQiBaG6ciBSAEIAVJGyIDQQFHBEAgA0UNASAGIAggA/wKAAAMAQsgBiAILQAAOgAACyABIBUgA60iFn0iFDcDCCAPIBMgFnw3AwggCyADIAdNDQAaIAIgCyADQQFBARDQBSACKAIICyEFIAMEQCACKAIEIAVqIAYgA/wKAAALIAIgAyAFaiIHNgIIIAMEQCACKAIAIQUMAQsgAEEEOgAAIABBADYCBAwBCyABKAIQIQlBgMAAIRAgBkEQaiEPAkADQAJAIAUgB0cgBSAOR3JFBEAgD/0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgBiAX/QsDAAJ/IBRQBEBBACEDQgAhFCAODAELIAkpAwgiFSAJKAIEIgytIhYgFSAWVBunIgcgCSgCAGohCAJAIAxC/////w8gFSAVQv////8PWhunayIFQQAgBSAMTRsiBEIgIBQgFEIgWhunIgUgBCAFSRsiA0EBRwRAIANFDQEgBiAIIAP8CgAADAELIAYgCC0AADoAAAsgASAUIAOtIhZ9IhQ3AwggCSAVIBZ8NwMIIA4gByAMRg0AGiACIA4gA0EBQQEQ0AUgAigCCAshBSADBEAgAigCBCAFaiAGIAP8CgAACyACIAMgBWoiBzYCCCADRQRAIABBBDoAACAAIAcgC2s2AgQMBQsgAigCACEFCwJAIAUgB0cEQCACKAIEIQMMAQsgBUEgaiIIIAVBAXQiBCAEIAhJGyIEQQBIDQFBACEDIAYgBQR/IAYgBTYCCCAGIAIoAgQ2AgBBAQUgAws2AgQgBkEkakEBIAQgBhDSByAGKAIkQQFGDQEgBigCKCEDIAIgBDYCACACIAM2AgQgBCEFCyAUUARAIAIgBzYCCAwDCyADIAdqIRIgCQJ+IBAgBSAHayIEIAQgEEsbIg2tIBRYBEAgCSgCBCIIQv////8PIAkpAwgiEyATQv////8PWhunayIEQQAgBCAITRsiBCANIAQgDUkbIgMEQCASIAkoAgAgEyAIrSIWIBMgFlQbp2ogA/wKAAALIAMgCiADIApLGyEKIBMgA60iFXwMAQsgCSgCBCIMQv////8PIAkpAwgiEyATQv////8PWhunayIEQQAgBCAMTRsiCCAUpyIEIAQgCEsbIgMEQCASIAkoAgAgEyAMrSIWIBMgFlQbp2ogA/wKAAALIAMgCiADIApLGyEKIBMgA60iFXwLNwMIIAEgFCAVfSIUNwMIIAIgAyAHaiIHNgIIIANFDQJBf0F/IBAgEUEBakEAIAMgDUkbIhFBAUobIBAgCiANRxsiBEEBdCAEQQBIGyAEIAQgDU0bIAQgAyANRhshECAKIANrIQoMAQsLIABCgcwANwIADAELIABBBDoAACAAIAcgC2s2AgQLIAZBMGokAAuXCgIHfwR9IwBBsAFrIgUkAAJ/AkAgASgCCCIGIAJLBEAgASgCBCACQRhsaiIGQRFqLwAAIAZBE2otAAAiB0EQdHIiCEEIdiEJQwAAEEEgASoCSCABLQBYQQJGIgobIQ1DAABAwSABKgJEIAobIQwgCEH/AXEEQCAMIA0gDJNDAAB+Q5UgCEEBa0H/AXGzlJIQpgQhDgsgCUH/AXEEQCAMIA0gDJNDAAB+Q5UgCUEBa0H/AXGzlJIQpgQhDwsgBwR9IAwgDSAMk0MAAH5DlSAHQQFrQf8BcbOUkhCmBAVDAAAAAAshDCAOIA+UQ4/CzT8QggshDSAOIAyUQ4/CzT8QggshDiAPIAyUQ4/CzT8QggsgDSAOkpJDAABAQJVD5kAfPxCCC0PbD0lBlCEMIAZBDGovAQAiB0H//wFxRQRAIAdBEHQMAwsgB0H/B3EhBiAHQYCAAnEhCCAHQYD4AXEiB0GA+AFGBEAgCEEQdCIHQYCAgPwHciAGRQ0DGiAHIAZBDXRyQYCAgP4HcgwDCyAIQRB0IQggB0UNASAHQQ10QYCAgPwAcSAGQQ10ckGAgIDAA2ogCHIMAgsgAiAGQbTUxwAQvwcACyAGIAZnQRBrIgZB//8DcUEIanRB////A3EgCEGAgIDYA3IgBkEXdGtyCyEGIAVBCGogASgCECIJIAEoAhQiCiACEIADIAwgBr6UIQ0CQAJ/AkACQCAFKAIsIgZBCU8EQCAFKAIMIgdFDQEgBUEANgIwIAVBADYCVCAFQTRqIQsgBSgCEAwDCyAGDQELIABBATYCKCAAIAI2AgggAEEANgIEIAAgDTgCAAwCCyAFQQA2AjAgBUEANgJUIAVBNGohCyAGIQcgBUEMagshBiAHQQJ0IQcgBUGIAWohCEMAAID/IQwDQCAFQYQBaiABIAYoAgAgAyAEEIECIAVB4ABqIAhBCGr9AAIA/QsDACAFQfAAaiAIQRhq/QACAP0LAwAgBSAIKQIANwNYIAZBBGohBiAFKgKEASEOIAVBMGogBUHYAGoQiwIgDCAOEJ8JIQwgB0EEayIHDQALIAMoAgghAQJAAkACQAJAAkACQCAEIAyUIA1fBEAgASACTQ0BIAMoAgQgAmpBAToAAAsgASACTQ0BIAMoAgQgAmotAABFBEAgCSAKIAJBBEEAEOsCIAAgDDgCACAAQSRqIAVB0ABqKQIANwIAIABBFGogBUFAa/0AAgD9CwIAIAAgBf0AAjD9CwIEDAYLIAkgCiACIAUoAlQiBkEJTwR/IAUoAjQiBkGAgARPDQMgBSgCOAUgCwsgBhDrAiAAQQE2AiggACACNgIIIABBADYCBCAAIA04AgAgBSgCVCIAQQlJDQUgBSgCOCIBQQRrKAIAIgJBeHEiAyAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0DIAJBACADIABBJ2pLGw0EIAEQtAIgBSgCLCEGDAYLIAIgAUHIvcEAEL8HAAsgAiABQdi9wQAQvwcAC0HovcEAQS1BmL7BABCiCAALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyAFKAIsIQYLAkACQCAGQQlPBEAgBSgCECIAQQRrKAIAIgFBeHEiAiAGQQJ0IgNBBEEIIAFBA3EiARtqSQ0BIAFBACACIANBJ2pLGw0CIAAQtAILIAVBsAFqJAAPC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAufCgIJfwZ+IwBBIGsiBSQAAkAgAS0ACCIHQQJHBEAgAiABKQMAIgw3AwggBUIANwMQAkACQAJAAkACQAJAAkACQCABKAKYASIDQQlJBEAgASkDGEJ/IAwgA618Ig4gDCAOVhtUDQQgASgClAEhCCACKAIEIgStIQ0gBEL/////DyAMIAxC/////w9aG6drIgZBACAEIAZPGyADTwRAIAIoAgAgDCANIAwgDVQbp2ohBCADQQFHBEAgA0UNAyAFQRBqIAQgA/wKAAAMAwsgBSAELQAAOgAQDAILQeChyAApAwAiD0IIiCEQIA+nIQYgD0L/AYNCBFINAwwCCyADQQhB8OzAABCiCgALQQQhBgsgDiENCyACIA03AwggBkH/AXEiBEEERwRAIAUgBq1C/wGDIBBCCIaEIg03AxggEEIYiKchAwJ/AkACQCAEQQFrDgMAAQEFCyAQpwwBCyADLQAIC0H/AXFBJUcNAiAHQQFxDQMgBUEYahD7BQwFCyAIIAVBEGogAxCQCEUNAwsgB0EBcUUNAyAAQQA2AgAgAEIANwMIDAULIAAgDTcDCCAAQoGAgICQgICAgH83AwAMBAsgAEEANgIAIABCADcDCCAFQRhqEPsFDAMLIAIgDDcDCCABQQI6AAggACAMNwMQIABCATcDCCAAQQA2AgAMAgsgAUECOgAICwJAAkACQAJAAkAgASkDoAEiDCABKQMQVA0AIAFBIGohCUHgocgAKQMAIg5C/wGDIREgDkIIiCEQIAEpAxghDSACKAIAIQogDqchByACKAIEIgutIQ4DQCAMIA1aDQFCfyAMIAEoAqwBIgOtfCIPIAwgD1YbIg8gDFgNASADIA0gDyANIA9UGyAMfSIPpyIESQ0CIAEoAqgBIQYCQCABKAKwAUUEQCACAn4CQCAEIAsgDCAOIAwgDlQbpyIDa00EQCADIApqIQMgBEEBRwRAIAQEQCAGIAMgBPwKAAALQQQhAwwCCyAGIAMtAAA6AABBBCEDDAELIAchAyAOIBFCBFINARoLIA9C/////w+DIAx8CzcDCCADQf8BcSIDQQRHBEAgEEIYiKchASAQpyICIQQCQAJAAkAgA0EBaw4DAQACCwsgAS0ACCEECyAEQf8BcUElRg0FDAkLIAEtAAhBJUcNCCABKAIAIQIgAUEEaigCACIDKAIAIgcEQCACIAcRAwALIAMoAgQiBwRAIAIgByADKAIIENYHCyABQQxBBBDWBwwEC0EAIQggASgCsAFBAXFFDQELIAQgASgCtAEiCEkNBCAGIAhqIQYgBCAIayEECyAFQgE3AhggASgCmAEiAyAETQRAIAVBCGogCSAFQRhqIAYgBCABKAKUASADIAEoAogBEQoAIAUoAghBAXENBSABKAKYASEDCyABQQA2ArABQn8gASkDoAEiDSABNQKsASADQQFrIgRBACADIARPG619fCIMIAwgDVQbIgwgASkDGCINVARAIAEgDDcDoAEgDCABKQMQWg0BDAILCyABIA03AxALIABCADcDCCAAQQA2AgAMBAsgBCADQeDswAAQogoACyAIIARB/KjIABCjCgALIAUoAgwhAyABQQE2ArABIABCATcDCCACIAOtIAwgCK18fCINNwMIIAEgASgCmAEgAyAIamo2ArQBIAAgDTcDECAAQQA2AgAMAQsgACABNgIMIABBgYCAgHg2AgQgACACQQh0IANyNgIIIABBATYCAAsgBUEgaiQAC/4IAgx/AnsCQAJ/AkACQAJAAkAgASgCICIHIARNBEAgBCADIgJqIhAgB2siCSACSQ0CIBAgBmshDCAB/QAEECETIAH9AAQAIRQgAS0AJSENIAEtACQhDiAGQQRJDQEgBkEDcUECayEPIAUgBkF8cWpBAmohEQNAAkAgAiAOav0AAAAgFP0jIAIgDWr9AAAAIBP9I/1O/WQiCkUNAANAIAUhBCAGIQcgDCACIApoIgtqIghJDQECQANAIAQoAAAgCCISKAAARw0BIAhBBGohCCAEQQRqIQQgB0EEayIHQQNLDQALIAdBAUsEQCAELwAAIAgvAABHDQEgEkEGaiEIIA8hByARIQQLIAdFDQcgBC0AACAILQAARg0HCyAKQQFrIApxIgoNAAsLIAJBEGoiAiAJTQ0ACwwCCwJAIAQgBkkNACADIARqAkAgBkUEQAwBCyADIAZqIQcgAyEEA0AgBC0AACAIQQF0aiEIIARBAWoiBCAHSQ0ACwsgASgCZCEHIAEoAmAhASAGayECIAMhBANAAkAgASAIRw0AIAQgBSAGEOwGRQ0AIAQgA2sMBwsgAiAETQ0BIAQgBmotAAAgCCAHIAQtAABsa0EBdGohCCAEQQFqIQQMAAsACwwFCwJAIAZBAk8EQCAGQQJGDQEDQAJAIAIgDmr9AAAAIBT9IyACIA1q/QAAACAT/SP9Tv1kIgRFDQADQCAMIAIgBGgiC2oiB0kNASAFLwAAIAcvAABGBEAgBS0AAiAHLQACRg0HCyAEQQFrIARxIgQNAAsLIAJBEGoiAiAJTQ0ACwwCCyAGBEADQAJAIAIgDmr9AAAAIBT9IyACIA1q/QAAACAT/SP9Tv1kIgRFDQADQCAMIAIgBGgiC2oiB0kNASAFLQAAIActAABGDQYgBEEBayAEcSIEDQALCyACQRBqIgIgCU0NAAsMAgsDQCACIA5q/QAAACAU/SMgAiANav0AAAAgE/0j/U79ZCIEBEAgDCACIARoIgtqTw0ECyACQRBqIgIgCU0NAAsMAQsDQAJAIAIgDmr9AAAAIBT9IyACIA1q/QAAACAT/SP9Tv1kIgRFDQADQCAMIAIgBGgiC2oiB0kNASAFLwAAIAcvAABGDQQgBEEBayAEcSIEDQALCyACQRBqIgIgCU0NAAsLQQAhDyAGIBAgAmtLIAIgEE9yDQMgCSABLQAkav0AAAAgAf0ABAD9IyAJIAEtACVq/QAAACAB/QAEEP0j/U79ZEF/IAIgCWt0cSIKRQ0DIBAgBmshASAGQQRJIQIDQCAJIApoIgtqIgQgAUsNBCAGIQcgBSEIAkAgAkUEQANAIAgoAAAgBCgAAEcNAiAEQQRqIQQgCEEEaiEIIAdBBGsiB0EDSw0ACwsgB0EBSwRAIAgvAAAgBC8AAEcNASAHQQJrIQcgCEECaiEIIARBAmohBAsgB0UNAyAILQAAIAQtAABGDQMLIApBAWsgCnEiCg0ACwwDCyACIQkLIAsgCSADa2oLIQRBASEPCyAAIAQ2AgQgACAPNgIAC8UJAgl/BX1DAACAPyEOAn8CQCABKAIAIgcgAkEEaigCACIEQQhqKAIAIgVJBEAgAUEEayIJKAIAIQEgBEEEaigCACIIIAdBJGxqIgQQ0wQhDCAELwEUIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQQgA0GAgAJxIQYgA0GA+AFxIgNBgPgBRgRAIAZBEHQhAyADQYCAgPwHciAERQ0DGiADIARBDXRyQYCAgP4HcgwDCyAGQRB0IQYgA0UNASADQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogBnIMAgsgByAFQejIxwAQvwcACyAGQYCAgNgDciAEZ0EQayIDQRd0ayAEIANB//8DcUEIanRB////A3FyC74iDUMAAIA/XgRAIA0Q9AVDVPgtQJRDAACAP5KRIQ4LQwAAgD8hDQJ/AkAgASAFSQRAIAggAUEkbGoiBBDTBCEPIAQvARQiA0H//wFxRQRAIANBEHQMAwsgA0H/B3EhBCADQYCAAnEhBSADQYD4AXEiA0GA+AFGBEAgBUEQdCEDIANBgICA/AdyIARFDQMaIAMgBEENdHJBgICA/gdyDAMLIAVBEHQhBSADRQ0BIANBDXRBgICA/ABxIARBDXRyQYCAgMADaiAFcgwCCyABIAVB6MjHABC/BwALIAVBgICA2ANyIARnQRBrIgNBF3RrIAQgA0H//wNxQQhqdEH///8DcXILviIQQwAAgD9eBEAgEBD0BUNU+C1AlEMAAIA/kpEhDQsgDCAMkiAOlCIMIAxcIAwgDyAPkiANlGByRQRAIAJBBGohCCAHQSRsIQoDQAJAIAkiAkEEaiABNgIAIAAgAkYNAEMAAIA/IQ4CfwJAIAgoAgAiBEEIaigCACIFIAdLBEAgAkEEayIJKAIAIQEgBEEEaigCACILIApqIgQQ0wQhDCAELwEUIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQQgA0GAgAJxIQYgA0GA+AFxIgNBgPgBRgRAIAZBEHQhAyADQYCAgPwHciAERQ0DGiADIARBDXRyQYCAgP4HcgwDCyAGQRB0IQYgA0UNASADQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogBnIMAgsgByAFQejIxwAQvwcACyAGQYCAgNgDciAEZ0EQayIDQRd0ayAEIANB//8DcUEIanRB////A3FyC74iDUMAAIA/XgRAIA0Q9AVDVPgtQJRDAACAP5KRIQ4LQwAAgD8hDQJ/AkAgASAFSQRAIAsgAUEkbGoiBBDTBCEPIAQvARQiA0H//wFxRQRAIANBEHQMAwsgA0H/B3EhBCADQYCAAnEhBSADQYD4AXEiA0GA+AFGBEAgBUEQdCEDIANBgICA/AdyIARFDQMaIAMgBEENdHJBgICA/gdyDAMLIAVBEHQhBSADRQ0BIANBDXRBgICA/ABxIARBDXRyQYCAgMADaiAFcgwCCyABIAVB6MjHABC/BwALIAVBgICA2ANyIARnQRBrIgNBF3RrIAQgA0H//wNxQQhqdEH///8DcXILviIQQwAAgD9eBEAgEBD0BUNU+C1AlEMAAIA/kpEhDQsgDCAMkiAOlCIMIAxcDQAgDCAPIA+SIA2UYEUNAQsLIAIgBzYCAAsL+QgCD38BfSMAQSBrIggkAAJAAkACQAJAAkACQCAALQC4AUEBRw0AIAAoAqwBIAAoArABIgVBAnQgACgCtAEiBiAFakECdBCgCSEFIAZBAnQiBiAAKAJkIgdLDQEgACgCYCEHIAggBRCDCyIJNgIAIAggBjYCBCAGIAlHDQUgBSAHIAYQqQogBUGECEkNACAFEM0HCyAAQgA3ArABIABBuAFqQQA6AAACQAJAAkACQAJAAkACQAJAAkACQCAAKAIARQ0AIAAoAgQgAUEBdCABIAJqQQF0EKAJIQkCQCACQQJ0IgcgACgCZCIGTQRAIAAgBzYCZCACQQF0IQUgACgCYCEBDAELIAcgBiIFayIKIAAoAlwgBWtLBEAgAEHcAGogBSAKQQRBBBDQBSAAKAJkIQULIAAoAmAiASAFQQJ0IgxqIQsgCkECTwRAIAcgBkF/c2pBAnQiBwRAIAtBACAH/AsACyACQQR0IAZBAnRrIAFqIAxqQQRrIQsgBSAKakEBayEFCyALQQA2AgAgACAFQQFqIgc2AmQgAkEBdCIFIAdLDQwLIAggCRCDCyIGNgIAIAggBTYCBCAFIAZHDQ4gASAFIAkQqwogAkEJbCEKIARBCW5BCWwhCyAEQQFrQQluQQlsQQlqIQwgBEECa0EJbkEJbEEJaiENIARBA2tBCW5BCWxBCWohDiAEQQRrQQluQQlsQQlqIQ8gBEEFa0EJbkEJbEEJaiEQIARBBmtBCW5BCWxBCWohESAEQQdrQQluQQlsQQlqIRIgBEEIa0EJbkEJbEEJaiETQwAAfEIgACoCkAGVIRQgACgCYCEFQQAhAUEAIQADQCABIAdPDQ0gAUEBaiICIAdPDQ4gACAMRg0KIAVBBGooAgAhAiADIAUoAgAiBkEZdEEZdbIgFJU4AgAgACANRg0JIANBBGogBkESdEEZdbIgFJU4AgAgACAORg0IIANBCGogBkELdEEZdbIgFJU4AgAgACAPRg0HIANBDGogBkEEdEEZdbIgFJU4AgAgACAQRg0GIANBEGogAkEddCAGQQN2ckEZdbIgFJU4AgAgACARRg0FIANBFGogAkEWdEEZdbIgFJU4AgAgACASRg0EIANBGGogAkEPdEEZdbIgFJU4AgAgACATRg0DIANBHGogAkEIdEEZdbIgFJU4AgAgACALRg0CIANBIGogAkEBdEEZdbIgFJU4AgAgBUEIaiEFIAFBAmohASADQSRqIQMgCiAAQQlqIgBHDQALIAlBhAhJDQAgCRDNBwsgCEEgaiQADwsgAEEIaiEADAcLIABBB2ohAAwGCyAAQQZqIQAMBQsgAEEFaiEADAQLIABBBGohAAwDCyAAQQNqIQAMAgsgAEECaiEADAELIABBAWohAAsgACAEQajLwQAQvwcACyAGIAdBvMHBABCiCgALIAUgB0H4ysEAEKIKAAsgASAHQYjLwQAQvwcACyACIAdBmMvBABC/BwALIAhBADYCCEEAIAggCEEEaiAIQQhqQdyBxQAQrggAC+gLAgh/BXsCQAJAAkACQAJAIAIgA08EQCADRQ0EIAEgA2ohBSADQQ9NBEADQCABIAVPDQYgBUEBayIFLQAAQQpHDQAMBQsACyAFQRBrIgT9AAAA/QwKCgoKCgoKCgoKCgoKCgoKIgz9I/1kIgYEQCAEIAZnQR9zaiEFDAQLAkACQAJAIANBwABJIAMgBUEPcWsiBUHAAElyDQADQCABIAVqIgRBMGsiBv0ABAAgDP0jIg0gBEFAaiII/QAEACAM/SMiDv1QIARBIGsiB/0ABAAgDP0jIg/9UCAEQRBrIgT9AAQAIAz9IyIQ/VD9ZEUEQCAFQUBqIgVBQGtBgAFPDQEMAgsLIBD9ZCIFDQQgD/1kIgQNBSAN/WQiBA0BIAggDv1kZ2tBH2ohBQwGCwNAIAVBD0wEQEEAIQcgBUEASg0DQQAhBAwJCyABIAVBEGsiBWoiBP0AAAAgDP0j/WQiBkUNAAsgBCAGZ0Efc2ohBQwFCyAGIARnQR9zaiEFDAQLQQAhBCAB/QAAACAM/SP9ZCIFRQ0FIAEgBWdrQR9qIQUMAwsgAyACQZCjxgAQogoACyAEIAVnQR9zaiEFDAELIAcgBGdBH3NqIQULIAUgAWsiCUEBaiEHIAIgCUsEQCABIAdqIgogAU0EQEEAIQQMAwsgCUEOTQRAQQAhBAJAIAlBA0kEQCABIQUMAQsgASAHQRxxIgJqIQX9DAAAAAAAAAAAAAAAAAAAAAAhDCACIQQDQCAMIAH9XAAA/QwKCgoKCgoKCgoKCgoKCgoK/SMgDP0NAAAAAAEAAAACAAAAAwAAAP0MAQAAAAEAAAABAAAAAQAAAP1O/a4BIQwgAUEEaiEBIARBBGsiBA0ACyAMIAwgDP0NCAkKCwwNDg8AAQIDAAECA/2uASIMIAwgDP0NBAUGBwABAgMAAQIDAAECA/2uAf0bACEEIAIgB0YNBAsDQCAEIAUtAABBCkZqIQQgBUEBaiIFIApHDQALDAMLQQAhAgJAAkAgAUFwcUEQaiIEIAFBAWoiBiAEIAZLGyABayILQQRJBEAgASEGDAELIAEgC0F8cSIIaiEG/QwAAAAAAAAAAAAAAAAAAAAAIQwgCCECA0AgDCAB/VwAAP0MCgoKCgoKCgoKCgoKCgoKCv0jIAz9DQAAAAABAAAAAgAAAAMAAAD9DAEAAAABAAAAAQAAAAEAAAD9Tv2uASEMIAFBBGohASACQQRrIgINAAsgDCAMIAz9DQgJCgsMDQ4PAAECAwABAgP9rgEiDCAMIAz9DQQFBgcAAQIDAAECAwABAgP9rgH9GwAhAiAIIAtGDQELA0AgAiAGLQAAQQpGaiECIAZBAWoiBiAESQ0ACwsCQCAJQT9JDQAgBCAKQUBqIgFLDQADQCAE/QAEAP0MCgoKCgoKCgoKCgoKCgoKCiIM/SP9ZGkgAmogBEEQav0ABAAgDP0j/WRpaiAEQSBq/QAEACAM/SP9ZGlqIARBMGr9AAQAIAz9I/1kaWohAiAEQUBrIgQgAU0NAAsLIApBEGsiASAETwRAA0AgBP0AAAD9DAoKCgoKCgoKCgoKCgoKCgr9I/1kaSACaiECIARBEGoiBCABTQ0ACwtBACEGAkAgBCAKTw0AAkAgBSAEa0EBaiIJQQRJBEAgBCEBDAELIAQgCUF8cSIIaiEB/QwAAAAAAAAAAAAAAAAAAAAAIQwgCCEFA0AgDCAE/VwAAP0MCgoKCgoKCgoKCgoKCgoKCv0jIAz9DQAAAAABAAAAAgAAAAMAAAD9DAEAAAABAAAAAQAAAAEAAAD9Tv2uASEMIARBBGohBCAFQQRrIgUNAAsgDCAMIAz9DQgJCgsMDQ4PAAECAwABAgP9rgEiDCAMIAz9DQQFBgcAAQIDAAECAwABAgP9rgH9GwAhBiAIIAlGDQELA0AgBiABLQAAQQpGaiEGIAFBAWoiASAKRw0ACwsgAiAGaiEEDAILIAcgAkGgo8YAEKIKAAsLIAAgAyAHazYCBCAAIARBAWo2AgAL+QgCBX8DfgJAAkACQCABQQhPBEAgAUEHcSICRQ0BIAAoAqABIgNBKU8NAiADRQRAIABBADYCoAEMAgsgA0EBa0H/////A3EiBUEBaiIEQQNxIQYgAkECdEHwicIAaigCACACdq0hCQJAIAVBA0kEQCAAIQIMAQsgBEH8////B3EhBSAAIQIDQCACIAI1AgAgCX4gCHwiBz4CACACQQRqIgQgBDUCACAJfiAHQiCIfCIHPgIAIAJBCGoiBCAENQIAIAl+IAdCIIh8Igc+AgAgAkEMaiIEIAQ1AgAgCX4gB0IgiHwiBz4CACAHQiCIIQggAkEQaiECIAVBBGsiBQ0ACwsgBgRAA0AgAiACNQIAIAl+IAh8Igc+AgAgAkEEaiECIAdCIIghCCAGQQFrIgYNAAsLIAAgB0KAgICAEFoEfyADQShGDQQgACADQQJ0aiAIPgIAIANBAWoFIAMLNgKgAQwBCyAAKAKgASIDQSlPDQEgA0UEQCAAQQA2AqABDwsgAUECdEHwicIAajUCACEJIANBAWtB/////wNxIgFBAWoiAkEDcSEGAkAgAUEDSQRAIAAhAgwBCyACQfz///8HcSEFIAAhAgNAIAIgAjUCACAJfiAIfCIHPgIAIAJBBGoiASABNQIAIAl+IAdCIIh8Igc+AgAgAkEIaiIBIAE1AgAgCX4gB0IgiHwiBz4CACACQQxqIgEgATUCACAJfiAHQiCIfCIHPgIAIAdCIIghCCACQRBqIQIgBUEEayIFDQALCyAGBEADQCACIAI1AgAgCX4gCHwiBz4CACACQQRqIQIgB0IgiCEIIAZBAWsiBg0ACwsgACAHQoCAgIAQWgR/IANBKEYNAyAAIANBAnRqIAg+AgAgA0EBagUgAws2AqABDwsCQCABQQhxBEAgACgCoAEiA0EpTw0CAkAgA0UEQEEAIQMMAQsgA0EBa0H/////A3EiAkEBaiIFQQNxIQYCQCACQQNJBEBCACEHIAAhAgwBCyAFQfz///8HcSEFQgAhByAAIQIDQCACIAI1AgBC4esXfiAHfCIHPgIAIAJBBGoiBCAENQIAQuHrF34gB0IgiHwiBz4CACACQQhqIgQgBDUCAELh6xd+IAdCIIh8Igc+AgAgAkEMaiIEIAQ1AgBC4esXfiAHQiCIfCIIPgIAIAhCIIghByACQRBqIQIgBUEEayIFDQALCyAGBEADQCACIAI1AgBC4esXfiAHfCIIPgIAIAJBBGohAiAIQiCIIQcgBkEBayIGDQALCyAIQoCAgIAQVA0AIANBKEYNAiAAIANBAnRqIAc+AgAgA0EBaiEDCyAAIAM2AqABCyABQRBxBEAgAEGYisIAQQIQkQMLIAFBIHEEQCAAQaCKwgBBAxCRAwsgAUHAAHEEQCAAQayKwgBBBRCRAwsgAUGAAXEEQCAAQcCKwgBBChCRAwsgAUGAAnEEQCAAQeiKwgBBExCRAwsgACABEJwCGg8LDAELIANBKEHotMIAEKIKAAtBKEEoQei0wgAQvwcAC9sJAgZ/BH4jAEHAAWsiAiQAAkACQAJAIAApAwBCAlIEQCAAKAKoASEBIABBADYCqAECQAJAAkACQCABQQFrDgIBAgALIAJBCGohAwJAAkBBJRB+IgFFDQAgAUEdakHVpMcAKQAANwAAIAFBEGpByKTHAP0AAAD9CwAAIAFBuKTHAP0AAAD9CwAAQQwQfiIERQ0AIARBJTYCCCAEIAE2AgQgBEElNgIAQQwQfiIBRQ0AIAFBKDoACCABQZDtwAA2AgQgASAENgIAIANBADYCECADIAGtQiCGQgOENwMADAELAAsMAgsgAkEYaiAAQcABaikDADcDACACIAD9AAOwAf0LAwgMAQsgACgCrAEiAUFAayEDIAEoAiQhBCABKAIgIQUCQCABKQMYIgdCAlIEQCABKQM4IQggAkEwaiABQRBqKQMANwMAIAJB6ABqIANBCGr9AAMA/QsDACACQagBaiABQYgBav0AAwD9CwMAIAJBmAFqIAFB+ABq/QADAP0LAwAgAkG4AWogAUGYAWopAwA3AwAgAiAB/QADAP0LAyAgAiAB/QADKP0LA0ggAiADKQMANwNgIAIgAf0AA1j9CwN4IAIgAf0AA2j9CwOIASACQRhqIAJB0ABqKQMANwMAIAIgBDYCRCACIAU2AkAgAiAHNwM4IAIgCDcDWCACIAL9AANA/QsDCCACKAIkIQQgAigCICEFIAJB+ABqEK0FDAELIAJBGGogA0EQaikDADcDACACIAP9AAMA/QsDCAsgBARAIAVBBGsoAgAiA0F4cSIGQQRBCCADQQNxIgMbIARqSQ0EIANBACAGIARBJ2pLGw0FIAUQtAILIAFBBGsoAgAiBEF4cUG8AUHAASAEQQNxIgMbSQ0DIANBACAEQeABTxsNBCABELQCCwJAIAIoAhgiAQRAIAIpAxAiCFANASABKQMIIQcgASgCBCIErSEJA0ACQCAHIAQgByAJIAcgCVQbpyIDayIFQoDAACAIIAhCgMAAWhunIgYgBSAGSRutIgp8IQcgAyAERg0AIAggCn0iCEIAUg0BCwsgASAHNwMIIAAQjgQMAwsgAi0ACEEDRw0AIAIoAgwiASgCACEEIAFBBGooAgAiAygCACIFBEAgBCAFEQMACyADKAIEIgMEQCAEQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyADakkNBCAFQQAgBiADQSdqSxsNBSAEELQCCyABQQRrKAIAIgRBeHEiA0EQQRQgBEEDcSIEG0kNAyAEQQAgA0E0TxsNBCABELQCCyAAEI4EDAELIAAoAqgBQQJJDQACQCAAKAKsASIAKQMYQgJRBEAgACgCJCIBRQ0BIAAoAiAiBEEEaygCACIDQXhxIgVBBEEIIANBA3EiAxsgAWpJDQMgA0EAIAUgAUEnaksbDQQgBBC0AgwBCyAAKAIEIgEEQCAAKAIAIgRBBGsoAgAiA0F4cSIFQQRBCCADQQNxIgMbIAFqSQ0DIANBACAFIAFBJ2pLGw0EIAQQtAILIABB2ABqEK0FCyAAQQRrKAIAIgFBeHFBvAFBwAEgAUEDcSIEG0kNASAEQQAgAUHgAU8bDQIgABC0AgsgAkHAAWokAA8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC+sIAg5/AX0jAEEQayIGJAACQAJAIANBA2wiB0H/////A0sNACADQQxsIgRB/f///wdPDQACQCAERQRAQQQhCkEAIQcMAQsgBBB+IgpFDQILIAZBADYCDCAGIAo2AgggBiAHNgIEAn8CQAJAAkACQAJAIAMEQCABIANBAXQiDmohDyABIANBAnQiEGohEUEAIQcgAyENQQghCwNAIAIgB00EQCAHIQQMBAsgB0EBaiACTw0EIAYoAgQhDAJ/IAEgB2oiBEEBai0AAEEIdCIIIAQtAAByIgRB//8BcQRAIARB/wdxIQQgCEGAgAJxIQUgCEGA+AFxIghBgPgBRwRAIAVBEHQiBSAIQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2pyIAgNAhogBUGAgIDYA3IgBGdBEGsiCEEXdGsgBCAIQf//A3FBCGp0Qf///wNxcgwCCyAFQRB0IgggBEENdHJBgICA/gdyIAQNARogCEGAgID8B3IMAQsgBEEQdAu+EKYEIRIgCSAMRgRAIAZBBGpB8P7HABC8BiAGKAIIIQoLIAogC2pBCGsgEjgCACAGIAlBAWoiCDYCDCAHIA5qIgQgAk8NAyAEQQFqIAJPDQUgBigCBCEMAn8gByAPaiIEQQFqLQAAQQh0IgUgBC0AAHIiBEH//wFxBEAgBEH/B3EhBCAFQYCAAnEhCSAFQYD4AXEiBUGA+AFHBEAgCUEQdCIJIAVBDXRBgICA/ABxIARBDXRyQYCAgMADanIgBQ0CGiAJQYCAgNgDciAEZ0EQayIFQRd0ayAEIAVB//8DcUEIanRB////A3FyDAILIAlBEHQiBSAEQQ10ckGAgID+B3IgBA0BGiAFQYCAgPwHcgwBCyAEQRB0C74QpgQhEiAIIAxGBEAgBkEEakHw/scAELwGIAYoAgghCgsgCiALakEEayASOAIAIAYgCEEBaiIINgIMIAcgEGoiBCACTw0CIARBAWogAk8NBiAGKAIEIQwCfyAHIBFqIgRBAWotAABBCHQiBSAELQAAciIEQf//AXEEQCAEQf8HcSEEIAVBgIACcSEJIAVBgPgBcSIFQYD4AUcEQCAJQRB0IgkgBUENdEGAgID8AHEgBEENdHJBgICAwANqciAFDQIaIAlBgICA2ANyIARnQRBrIgVBF3RrIAQgBUH//wNxQQhqdEH///8DcXIMAgsgCUEQdCIFIARBDXRyQYCAgP4HciAEDQEaIAVBgICA/AdyDAELIARBEHQLvhCmBCESIAggDEYEQCAGQQRqQfD+xwAQvAYgBigCCCEKCyAKIAtqIBI4AgAgBiAIQQFqIgk2AgwgB0ECaiEHIAtBDGohCyANQQFrIg0NAAsLIAAgBikCBDcCACAAQQhqIAZBDGooAgA2AgAgBkEQaiQADwsgA0ECdCAHaiEECyAEIAJB0P7HABC/BwALIAdBAWoMAgsgBEEBagwBCyADQQJ0IAdqQQFqCyACQeD+xwAQvwcAC0HA/scAELcICwAL9ggBE38jAEEQayIHJAACQAJAIANBA2wiDEH/////A0sNACADQQxsIgRB/f///wdPDQACQCAERQRAQQQhCgwBCyAMIQsgBBB+IgpFDQILIAdBADYCDCAHIAo2AgggByALNgIEAkACQAJAAkACQCADBEAgAiADayIEQQAgAiAETxshDSACIAxrIgRBACACIARPGyEOIAEgA2ohDyABIAxqIRAgASADQQJ0IhFqIRIgASADQQVsIhNqIRQgASADQQF0IhVqIRZBCCELA0AgAiAGRgRAIAYhBAwHCyAGIA5GDQUCfyAGIBBqLQAAQQh0IgUgASAGai0AAHIiBEH//wFxBEAgBEH/B3EhBCAFQYCAAnEhCCAFQYD4AXEiBUGA+AFHBEAgCEEQdCEIIAVBDXRBgICA/ABxIARBDXRyQYCAgMADaiAIciAFDQIaIAhBgICA2ANyIARnQRBrIgVBF3RrIAQgBUH//wNxQQhqdEH///8DcXIMAgsgCEEQdCEFIARBDXQgBXJBgICA/gdyIAQNARogBUGAgID8B3IMAQsgBEEQdAshBCAHKAIEIAlGBEAgB0EEakGw/McAELwGIAcoAgghCgsgCiALakEIayAENgIAIAcgCUEBaiIJNgIMIAYgDUYNAyAGIBFqIAJPDQICfyAGIBJqLQAAQQh0IgUgBiAPai0AAHIiBEH//wFxBEAgBEH/B3EhBCAFQYCAAnEhCCAFQYD4AXEiBUGA+AFHBEAgCEEQdCEIIAVBDXRBgICA/ABxIARBDXRyQYCAgMADaiAIciAFDQIaIAhBgICA2ANyIARnQRBrIgVBF3RrIAQgBUH//wNxQQhqdEH///8DcXIMAgsgCEEQdCEFIARBDXQgBXJBgICA/gdyIAQNARogBUGAgID8B3IMAQsgBEEQdAshBCAHKAIEIAlGBEAgB0EEakGw/McAELwGIAcoAgghCgsgCiALakEEayAENgIAIAcgCUEBaiIJNgIMIAYgFWoiBCACTw0GIAYgE2ogAk8NBAJ/IAYgFGotAABBCHQiBSAGIBZqLQAAciIEQf//AXEEQCAEQf8HcSEEIAVBgIACcSEIIAVBgPgBcSIFQYD4AUcEQCAIQRB0IQggBUENdEGAgID8AHEgBEENdHJBgICAwANqIAhyIAUNAhogCEGAgIDYA3IgBGdBEGsiBUEXdGsgBCAFQf//A3FBCGp0Qf///wNxcgwCCyAIQRB0IQUgBEENdCAFckGAgID+B3IgBA0BGiAFQYCAgPwHcgwBCyAEQRB0CyEEIAcoAgQgCUYEQCAHQQRqQbD8xwAQvAYgBygCCCEKCyAKIAtqIAQ2AgAgByAJQQFqIgk2AgwgC0EMaiELIAMgBkEBaiIGRw0ACwsgACAHKQIENwIAIABBCGogB0EMaigCADYCACAHQRBqJAAPCyADQQJ0IAZqIQQMAwsgAyAGaiEEDAILIANBBWwgBmohBAwBCyAGIAxqIQQLIAQgAkHA/McAEL8HAAtBoPzHABC3CAsAC5gJAg1/AX4jAEHwAGsiAiQAQQghBCABKAIEIQUgAUEEQSQgASgCJCIDQQhLIgYbakEANgIAIAJBGGogAUEIav0AAgD9CwMAIAJBKGogAUEYav0AAgD9CwMAIAJBADYCOCACIAUgAyAGGyIINgI8IAIgASkCADcDECAAQSRqIQsCQAJAAkACQAJAAkAgCCAAKAIkIgFBCCABQQhLIgYbIAAoAgQgASAGGyIGa0sEQAJAAkAgBiAIaiIBIAZJDQBBfyABQQFrZ3ZBACABQQJPGyIBQX9GDQAgAkEIaiAAIAFBAWoQjQQgAigCCCIBQYGAgIB4Rg0BIAENAwtBqJ/HAEERQYDFxwAQoggACyALKAIAIQELIABBBGoiBiEMIAshCSABQQlPBEAgACgCCCEMIAYhCSABIQQLAkACQAJAAkAgBCAJKAIAIgVNBEAgBSEEDAELIAIoAhghCiACKAI0Ig5BCE0EQCACQRBqQQRyIQMgBSAEayENIAwgBUECdGohB0EAIQEDQCABIAhGDQMgAiABQQFqIgE2AjggByADKAIANgIAIANBBGohAyAHQQRqIQcgASANag0ACwwBCyAIRQ0DQQAhAQJAIARBAWsiDSAFayIEIAhBAWsiAyADIARLGyIEQQRJDQAgBUECdCAMaiIDIAprQRBJDQAgBEEBaiIBIAFBA3EiAUEEIAEbayIBIQQgCiEHA0AgAyAH/QACAP0LAgAgB0EQaiEHIANBEGohAyAEQQRrIgQNAAsgASAFaiEFCyAMIAVBAnRqIQMgCiABQQJ0aiEHA0ACQCADIAcoAgA2AgAgBUEBaiEEIAFBAWohASAFIA1GDQAgA0EEaiEDIAdBBGohByAEIQUgASAIRw0BDAQLCyACIAE2AjgLIAkgBDYCACACQegAaiACQThqKQMAIg83AwAgAkHgAGogAkEwaikDADcDACACQdAAaiACQSBq/QADAP0LAwAgAiAC/QADEP0LA0AgD6ciASACKAJsRwRAIAJBQGtBBHIhBANAIAIgAUEBajYCaCAEIQMgAigCZEEJTwR/IAIoAkgFIAMLIAFBAnRqKAIAIQkCfyALKAIAIgdBCUkEQCAHIQEgBiEFQQghByALDAELIAAoAgQhASAAKAIIIQUgBgshAyABIAdGBH8gABD9BiAAKAIIIQUgBiEDIAAoAgQFIAELQQJ0IAVqIAk2AgAgAyADKAIAQQFqNgIAIAIoAmgiASACKAJsRw0ACwsgAigCZCIBQQlJDQggAigCSCIDQQRrKAIAIgBBeHEiBiABQQJ0IgFBBEEIIABBA3EiABtqSQ0EIABBACAGIAFBJ2pLGw0FIAMQtAIMCAsgASAFaiEECyAJIAQ2AgAgDkEJSQ0GCyAKQQRrKAIAIgBBeHEiBiAOQQJ0IgFBBEEIIABBA3EiABtqSQ0DIABBACAGIAFBJ2pLGw0EIAoQtAIMBQsAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIAJB8ABqJAALpg0DBn8EewJ9IAEqAgAhEyAAKgIAIRICQAJAAkACQAJAAkACQAJAQYAIEH4iDUUNACATIBKT/RMhDyAS/RMhEP0MAAAAAAEAAAACAAAAAwAAACEOA0AgCCANaiIKIBAgDyAO/fsB/QwAAH9DAAB/QwAAf0MAAH9D/ecB/eYB/eQB/Qy7bpA+u26QPrtukD67bpA+/eYB/QwAAAA/AAAAPwAAAD8AAAA//eQB/QsCACAKQRBqIBAgDyAO/QwEAAAABAAAAAQAAAAEAAAA/a4B/fsB/QwAAH9DAAB/QwAAf0MAAH9D/ecB/eYB/eQB/Qy7bpA+u26QPrtukD67bpA+/eYB/QwAAAA/AAAAPwAAAD8AAAA//eQB/QsCACAO/QwIAAAACAAAAAgAAAAIAAAA/a4BIQ4gCEEgaiIIQYAIRw0ACyABKgIEIAAqAgQhEkGACBB+IgpFDQAgEpP9EyEPIBL9EyEQ/QwAAAAAAQAAAAIAAAADAAAAIQ5BACEIA0AgCCAKaiILIBAgDyAO/fsB/QwAAH9DAAB/QwAAf0MAAH9D/ecB/eYB/eQB/Qy7bpA+u26QPrtukD67bpA+/eYB/QwAAAA/AAAAPwAAAD8AAAA//eQB/QsCACALQRBqIBAgDyAO/QwEAAAABAAAAAQAAAAEAAAA/a4B/fsB/QwAAH9DAAB/QwAAf0MAAH9D/ecB/eYB/eQB/Qy7bpA+u26QPrtukD67bpA+/eYB/QwAAAA/AAAAPwAAAD8AAAA//eQB/QsCACAO/QwIAAAACAAAAAgAAAAIAAAA/a4BIQ4gCEEgaiIIQYAIRw0ACyABKgIIIAAqAgghEkGACBB+IgtFDQAgEpP9EyEPIBL9EyEQ/QwAAAAAAQAAAAIAAAADAAAAIQ5BACEIA0AgCCALaiIMIBAgDyAO/fsB/QwAAH9DAAB/QwAAf0MAAH9D/ecB/eYB/eQB/Qy7bpA+u26QPrtukD67bpA+/eYB/QwAAAA/AAAAPwAAAD8AAAA//eQB/QsCACAMQRBqIBAgDyAO/QwEAAAABAAAAAQAAAAEAAAA/a4B/fsB/QwAAH9DAAB/QwAAf0MAAH9D/ecB/eYB/eQB/Qy7bpA+u26QPrtukD67bpA+/eYB/QwAAAA/AAAAPwAAAD8AAAA//eQB/QsCACAO/QwIAAAACAAAAAgAAAAIAAAA/a4BIQ4gCEEgaiIIQYAIRw0ACyABKgIMIAAqAgwhEkGACBB+IgFFDQAgEpP9EyEQIBL9EyER/QwAAAAAAQAAAAIAAAADAAAAIQ5BACEIA0AgASAIav0MAACAPwAAgD8AAIA/AACAP/0MAACAPwAAgD8AAIA/AACAPyARIBAgDv37Af0MAAB/QwAAf0MAAH9DAAB/Q/3nAf3mAf3kAf3hASIP/R8AEKYE/RMgD/0fARCmBP0gASAP/R8CEKYE/SACIA/9HwMQpgT9IAP95AH95wH9CwIAIA79DAQAAAAEAAAABAAAAAQAAAD9rgEhDiAIQRBqIghBgAhHDQALIAdFDQdBACEAQQAhCANAIAMgCE0EQCAIIANBtPfHABC/BwALIAAgBU8NAiAEIA0gAiAIaiIMLQAAQQJ0aioCADgCACAIQQFqIgkgA08NAyAAQQFqIgkgBU8NBCAEQQRqIAogDEEBai0AAEECdGoqAgA4AgAgCEECaiIJIANPDQUgAEECaiIJIAVPDQYgBEEIaiALIAxBAmotAABBAnRqKgIAOAIAIAhBA2oiCSADTw0HIAYgCGogASAMQQNqLQAAQQJ0aioCADgCACAEQQxqIQQgAEEDaiEAIAhBBGohCCAHQQFrIgcNAAsMBwsACyAAIAVBxPfHABC/BwALIAkgA0HU98cAEL8HAAsgCSAFQeT3xwAQvwcACyAJIANB9PfHABC/BwALIAkgBUGE+McAEL8HAAsgCSADQZT4xwAQvwcACwJAIAFBBGsoAgAiAEF4cUGECEGICCAAQQNxIgIbTwRAAkAgAkEAIABBqAhPGw0CIAEQtAIgC0EEaygCACIAQXhxQYQIQYgIIABBA3EiARtJDQAgAUEAIABBqAhPGw0CIAsQtAIgCkEEaygCACIAQXhxQYQIQYgIIABBA3EiARtJDQAgAUEAIABBqAhPGw0CIAoQtAIgDUEEaygCACIAQXhxQYQIQYgIIABBA3EiARtJDQAgAUEAIABBqAhPGw0CIA0QtAIPCwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALuQkCCH8BfiMAQUBqIgUkAAJAIAACfwJAAkACQCABKAIUIgQgASgCECICSQRAIAEoAgwhCQJ+AkADQCAEIAlqLQAAIghBCWsiA0EXS0EBIAN0QZOAgARxRXINASABIARBAWoiBDYCFCACIARHDQALIAIhBEIADAELQoACCyAIrUIQhoRCgIK4A1ENAQsgBUEQaiABKAIMIgYgAiACIARLBH8DQCAEIAZqLQAAIghBCWsiA0EXS0EBIAN0QZOAgARxRXINAyABIARBAWoiBDYCFCACIARHDQALIAIFIAQLQQFqIgEgAiABIAJJGxCGAiAFKAIUIQMgBSgCECEBQRQQfiICRQ0EIAIgATYCDCACQQU2AgAgAiADNgIQIAAgAjYCBAwCCyABIARBAWoiBjYCFAJAAkACQCACIAZNDQAgASAEQQJqIgM2AhQgBiAJai0AAEH1AEcNASADIAYgAiACIAZJGyIGRg0AIAEgBEEDaiIINgIUIAMgCWotAABB7ABHBEAgCCEDDAILIAYgCEYNACABIARBBGoiAzYCFCAIIAlqLQAAQewARw0BIABBAjoAAUEADAULIAUgCSACIAYQhgIgBSgCBCEGIAUoAgAhAUEUEH4iBEUNBSAEQQU2AgAMAQsgBUEIaiAJIAIgAxCGAiAFKAIMIQYgBSgCCCEBQRQQfiIERQ0EIARBCTYCAAsgBCABNgIMIAAgBDYCBCAEIAY2AhAMAQsCQCAIQeYAayIDBEAgA0EORwRAIAAgASAFQT9qQdTowAAQ+gEgARCWBjYCBAwDCyABIARBAWoiBzYCFAJAIAIgB00NACABIARBAmoiAzYCFCAGIAdqLQAAQfIARw0CIAMgByACIAIgB0kbIgdGDQAgASAEQQNqIgg2AhQgAyAGai0AAEH1AEcEQCAIIQMMAwsgByAIRg0AIAEgBEEEaiIDNgIUIAYgCGotAABB5QBHDQIgAEEBOgABQQAMBAsgBUEYaiAGIAIgBxCGAiAFKAIcIQMgBSgCGCEBQRQQfiICRQ0EIAIgATYCDCACQQU2AgAgAiADNgIQIAAgAjYCBAwCCyABIARBAWoiBzYCFAJAAkAgAiAHTQ0AIAEgBEECaiIDNgIUIAYgB2otAABB4QBHDQEgAyAHIAIgAiAHSRsiB0YNACABIARBA2oiCTYCFCADIAZqLQAAQewARwRAIAkhAwwCCyAHIAlGDQAgASAEQQRqIgg2AhQgBiAJai0AAEHzAEcEQCAIIQMMAgsgByAIRg0AIAEgBEEFaiIDNgIUIAYgCGotAABB5QBHDQEgAEEAOgABQQAMBAsgBUEoaiAGIAIgBxCGAiAFKAIsIQMgBSgCKCEBQRQQfiICRQ0EIAIgATYCDCACQQU2AgAgAiADNgIQIAAgAjYCBAwCCyAFQTBqIAYgAiADEIYCIAUoAjQhAyAFKAIwIQFBFBB+IgJFDQMgAiABNgIMIAJBCTYCACACIAM2AhAgACACNgIEDAELIAVBIGogBiACIAMQhgIgBSgCJCEDIAUoAiAhAUEUEH4iAkUNAiACIAE2AgwgAkEJNgIAIAIgAzYCECAAIAI2AgQLQQELOgAAIAVBQGskAA8LAAu5CQIIfwF+IwBBQGoiBSQAAkAgAAJ/AkACQAJAIAEoAhQiBCABKAIQIgJJBEAgASgCDCEJAn4CQANAIAQgCWotAAAiCEEJayIDQRdLQQEgA3RBk4CABHFFcg0BIAEgBEEBaiIENgIUIAIgBEcNAAsgAiEEQgAMAQtCgAILIAitQhCGhEKAgrgDUQ0BCyAFQRBqIAEoAgwiBiACIAIgBEsEfwNAIAQgBmotAAAiCEEJayIDQRdLQQEgA3RBk4CABHFFcg0DIAEgBEEBaiIENgIUIAIgBEcNAAsgAgUgBAtBAWoiASACIAEgAkkbEIYCIAUoAhQhAyAFKAIQIQFBFBB+IgJFDQQgAiABNgIMIAJBBTYCACACIAM2AhAgACACNgIEDAILIAEgBEEBaiIGNgIUAkACQAJAIAIgBk0NACABIARBAmoiAzYCFCAGIAlqLQAAQfUARw0BIAMgBiACIAIgBkkbIgZGDQAgASAEQQNqIgg2AhQgAyAJai0AAEHsAEcEQCAIIQMMAgsgBiAIRg0AIAEgBEEEaiIDNgIUIAggCWotAABB7ABHDQEgAEECOgABQQAMBQsgBSAJIAIgBhCGAiAFKAIEIQYgBSgCACEBQRQQfiIERQ0FIARBBTYCAAwBCyAFQQhqIAkgAiADEIYCIAUoAgwhBiAFKAIIIQFBFBB+IgRFDQQgBEEJNgIACyAEIAE2AgwgACAENgIEIAQgBjYCEAwBCwJAIAhB5gBrIgMEQCADQQ5HBEAgACABIAVBP2pB3MbHABD7ASABEJYGNgIEDAMLIAEgBEEBaiIHNgIUAkAgAiAHTQ0AIAEgBEECaiIDNgIUIAYgB2otAABB8gBHDQIgAyAHIAIgAiAHSRsiB0YNACABIARBA2oiCDYCFCADIAZqLQAAQfUARwRAIAghAwwDCyAHIAhGDQAgASAEQQRqIgM2AhQgBiAIai0AAEHlAEcNAiAAQQE6AAFBAAwECyAFQRhqIAYgAiAHEIYCIAUoAhwhAyAFKAIYIQFBFBB+IgJFDQQgAiABNgIMIAJBBTYCACACIAM2AhAgACACNgIEDAILIAEgBEEBaiIHNgIUAkACQCACIAdNDQAgASAEQQJqIgM2AhQgBiAHai0AAEHhAEcNASADIAcgAiACIAdJGyIHRg0AIAEgBEEDaiIJNgIUIAMgBmotAABB7ABHBEAgCSEDDAILIAcgCUYNACABIARBBGoiCDYCFCAGIAlqLQAAQfMARwRAIAghAwwCCyAHIAhGDQAgASAEQQVqIgM2AhQgBiAIai0AAEHlAEcNASAAQQA6AAFBAAwECyAFQShqIAYgAiAHEIYCIAUoAiwhAyAFKAIoIQFBFBB+IgJFDQQgAiABNgIMIAJBBTYCACACIAM2AhAgACACNgIEDAILIAVBMGogBiACIAMQhgIgBSgCNCEDIAUoAjAhAUEUEH4iAkUNAyACIAE2AgwgAkEJNgIAIAIgAzYCECAAIAI2AgQMAQsgBUEgaiAGIAIgAxCGAiAFKAIkIQMgBSgCICEBQRQQfiICRQ0CIAIgATYCDCACQQk2AgAgAiADNgIQIAAgAjYCBAtBAQs6AAAgBUFAayQADwsAC9YTAQl/IwBBIGsiBiQAAkADQAJAIAEoAgghAyABEPwFAkACQAJAAkACQAJAIAEoAggiBCABKAIEIgpHBEAgBCAKTw0BAkACQCABKAIAIgcgBGotAAAiBUHcAEcEQCAFQSJGDQEgASAEQQFqNgIIIAZBEDYCFCAAIAEgBkEUahCmBwwMCyADIARLDQQgBCADayIIIAIoAgAgAigCCCIJa0sEQCACIAkgCBCpBiACKAIIIQkLIAIoAgQhBSAIBEAgBSAJaiADIAdqIAj8CgAACyABIARBAWoiCzYCCCACIAggCWoiAzYCCAJAAkACQAJAAkACQAJAAkACQAJAAn8gCiALSwRAIAEgBEECajYCCCAHIAtqLQAADAELIAZBBDYCFCAGQQhqIAEgBkEUahCnByAGLQAIQQFxDQwgBi0ACQtB/wFxQSJrDlQCAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAABQAAAAYAAAAAAAAABwAAAAgACQEACyAGQQw2AhQgASAGQRRqEL4HIQMMEgsjAEEgayIEJAACQAJAAkAgASgCBCIDIAEoAggiB08EQAJAIAMgB2tBA00EQCABIAM2AgggBEEENgIUIARBDGogASAEQRRqEKgHIAMhBQwBCyABIAdBBGoiBTYCCCABKAIAIAdqIgctAAFBAXRBsKXGAGovAQAgBy0AAEEBdEGwqcYAai8BAHLBQQh0IActAAJBAXRBsKnGAGouAQByIActAANBAXRBsKXGAGouAQByIgdBAE4EQCAEQQA7AQwgBCAHOwEODAELIARBDDYCFCAEQQxqIAEgBEEUahCoBwsgBC8BDEEBRgRAIAQoAhAhAwwECyAELwEOIgdBgPgDcUGAuANGDQEgB0GAyABqQf//A3FBgPgDTwRAIAEoAgAhCQJ/IAMgBUsEQCAFIAlqLQAADAELIARBBDYCFCAEQQxqIAEgBEEUahCnByAELQAMQQFxBEAgBCgCECEDDAYLIAQtAA0LIAEgBUEBaiIINgIIQdwARgRAAn8gAyAISwRAIAggCWotAAAMAQsgBEEENgIUIARBDGogASAEQRRqEKcHIAQtAAxBAXEEQCAEKAIQIQMMBwsgBC0ADQsgBUECaiEIQfUARgRAIAMgCEkNBQJAIAMgCGtBA00EQCABIAM2AgggBEEENgIUIARBDGogASAEQRRqEKgHDAELIAEgBUEGajYCCCAIIAlqIgMtAAFBAXRBsKXGAGovAQAgAy0AAEEBdEGwqcYAai8BAHLBQQh0IAMtAAJBAXRBsKnGAGouAQByIAMtAANBAXRBsKXGAGouAQByIgNBAE4EQCAEQQA7AQwgBCADOwEODAELIARBDDYCFCAEQQxqIAEgBEEUahCoBwsgBC8BDEEBRgRAIAQoAhAhAwwHCyAELwEOIgVBgEBrQf//A3FBgPgDTwRAIAVBgMgAakH//wNxIAdBgNAAakH//wNxQQp0ciIIQYCABGohByACKAIAIAIoAggiA2tBA00EQCACIANBBBCpBiACKAIIIQMLIAIgA0EEajYCCCACKAIEIANqIgMgB0ESdkHwAXI6AAAgA0EDaiAFQT9xQYABcjoAACADIAhBBnZBP3FBgAFyOgACIAMgB0EMdkE/cUGAAXI6AAFBACEDDAcLIARBFDYCFCABIARBFGoQvgchAwwGCyABIAg2AgggBEEXNgIUIAEgBEEUahC+ByEDDAULIARBFzYCFCABIARBFGoQvgchAwwECyAHQYABTwRAIAIoAgAgAigCCCIDa0EDTQRAIAIgA0EEEKkGIAIoAgghAwsgAigCBCADaiEFAn8gB0GAEEkEQCAHQQZ2QUByIQhBAgwBCyAFIAdBBnZBP3FBgAFyOgABIAdBDHZBYHIhCEEDCyEJIAUgCDoAACACIAMgCWo2AgggBSAJakEBayAHQT9xQYABcjoAAEEAIQMMBAsgAigCCCIDIAIoAgBGBEAgAkGgpcYAEN4GCyACIANBAWo2AgggAigCBCADaiAHOgAAQQAhAwwDCyAHIANBkKTGABCjCgALIARBFDYCFCABIARBFGoQvgchAwwBCyAIIANBkKTGABCjCgALIARBIGokACADRQ0SDBELIAIoAgAgA0YEQCACQaCkxgAQ3gYgAigCBCEFCyACIANBAWo2AgggAyAFakEiOgAADA8LIAIoAgAgA0YEQCACQbCkxgAQ3gYgAigCBCEFCyACIANBAWo2AgggAyAFakHcADoAAAwOCyACKAIAIANGBEAgAkHApMYAEN4GIAIoAgQhBQsgAiADQQFqNgIIIAMgBWpBLzoAAAwNCyACKAIAIANGBEAgAkHQpMYAEN4GIAIoAgQhBQsgAiADQQFqNgIIIAMgBWpBCDoAAAwMCyACKAIAIANGBEAgAkHgpMYAEN4GIAIoAgQhBQsgAiADQQFqNgIIIAMgBWpBDDoAAAwLCyACKAIAIANGBEAgAkHwpMYAEN4GIAIoAgQhBQsgAiADQQFqNgIIIAMgBWpBCjoAAAwKCyACKAIAIANGBEAgAkGApcYAEN4GIAIoAgQhBQsgAiADQQFqNgIIIAMgBWpBDToAAAwJCyACKAIAIANGBEAgAkGQpcYAEN4GIAIoAgQhBQsgAiADQQFqNgIIIAMgBWpBCToAAAwICyACKAIIIgVFDQYgAyAESw0EIAQgA2siCCACKAIAIAVrSwRAIAIgBSAIEKkGIAIoAgghBQsgAigCBCEJIAgEQCAFIAlqIAMgB2ogCPwKAAALIAEgBEEBajYCCCACIAUgCGoiAjYCCCAGQQhqIAkgAhCfAyAGKAIIRQRAIAYoAhAhAyAGKAIMIQEMBgsgBkEPNgIUIAYgASAGQRRqEKkHIAYoAgAiAQRAIAYoAgQhAwwGCyAAIAYoAgQ2AgQgAEECNgIADAoLIAYoAgwhAwwHCyAGQQQ2AhQgACABIAZBFGoQpgcMCAsgBCAKQcCjxgAQvwcACyADIARB8KPGABClCgALIAMgBEHgo8YAEKUKAAsgACADNgIIIAAgATYCBCAAQQE2AgAMBAsCQCADIARNBEAgASAEQQFqNgIIIAZBCGogAyAHaiAEIANrEJ8DIAYoAghFBEAgBigCECEDIAYoAgwhAQwCCyAGQQ82AhQgBiABIAZBFGoQqQcgBigCACIBBEAgBigCBCEDDAILIAAgBigCBDYCBCAAQQI2AgAMBQsgAyAEQdCjxgAQpQoACyAAIAM2AgggACABNgIEIABBADYCAAwDCwwBCwsgAEECNgIAIAAgAzYCBAsgBkEgaiQAC8UHAQR/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4FAQIDDQQACyAALQAEQQNHDQwgACgCCCIDKAIAIQAgA0EEaigCACIBKAIAIgIEQCAAIAIRAwALIAEoAgQiAQRAIABBBGsoAgAiAkF4cSIEQQRBCCACQQNxIgIbIAFqSQ0PIAJBACAEIAFBJ2pLGw0OIAAQtAILIANBBGsoAgAiAEF4cSIBQRBBFCAAQQNxIgAbSQ0OIABFIAFBNElyDQsMDQsCQCAALQAEQQFrDgIAAAoLIAAoAggiAw0IDAkLAkAgAC0ABEEBaw4CAAAHCyAAKAIIIgMNBQwGCyAAKAIEIgNBAEoEQCAAKAIIIgFBBGsoAgAiAkF4cSIEQQRBCCACQQNxIgIbIANqSQ0MIAJBACAEIANBJ2pLGw0LIAEQtAILIAAoAhAiA0UNCSAAKAIUIgAoAgAiAQRAIAMgAREDAAsgACgCBCIARQ0JIANBBGsoAgAiAUF4cSICQQRBCCABQQNxIgEbIABqSQ0LIAFFDQggAiAAQSdqSw0KDAgLAkAgAC0ABEEBaw4CAAACCyAAKAIIIgMNAAwBCyAAKAIMIgFBBGsoAgAiAkF4cSIEQQRBCCACQQNxIgIbIANqSQ0JIAJBACAEIANBJ2pLGw0IIAEQtAILAkBBAyAALQAUIgNBBGsgA0EDTRtB/wFxDgQHBwcAAQsgA0EBaw4CAAAGCyAAKAIYIgFFDQUgACgCHCIDQQRrKAIAIgBBeHEiAkEEQQggAEEDcSIAGyABak8EQCAARSACIAFBJ2pNcg0FDAcLDAcLIAAoAgwiAUEEaygCACICQXhxIgRBBEEIIAJBA3EiAhsgA2pJDQYgAkEAIAQgA0EnaksbDQUgARC0AgsgACgCFCIDRQ0DIAAoAhgiACgCACIBBEAgAyABEQMACyAAKAIEIgBFDQMgA0EEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgAGpJDQUgAUUgAiAAQSdqTXINAgwECyAAKAIMIgFBBGsoAgAiAkF4cSIEQQRBCCACQQNxIgIbIANqSQ0EIAJBACAEIANBJ2pLGw0DIAEQtAILIAAoAhQiA0UNASAAKAIYIgAoAgAiAQRAIAMgAREDAAsgACgCBCIARQ0BIANBBGsoAgAiAUF4cSICQQRBCCABQQNxIgEbIABqSQ0DIAFFIAIgAEEnak1yDQAMAgsgAxC0AgsPC0GgjMgAQS5B0IzIABCiCAALQeCLyABBLkGQjMgAEKIIAAvqCQIhfwl7IwBBIGsiBiQAAkACQCACQf//A3EiCUEBIAN0akEBayADdiICQf//A00EQCAJRQ0BIAEgASAJQQJ0IgdwayIBIAdPBEAgA0EfcSINQR1LDQMgByANQQJqdkEEIA10IghBAWsgB3FBAEdqIREgAkECdCEWIAEgB2shDgNAAkACQCAWIA8gDXZsIgIgBU0EQCAFIAJrQQJ2IgEgESABIBFJGyIXRQ0CIAIgBGohGEEAIQsgACEJIAchDAwBCyACIAVBpO3EABCjCgALA0ACQCAIIAcgCCALbCICayIBIAEgCEsbIgFFDQAgACACaiECIBggC0ECdGoiAywAACESIAMsAAEhEyADLAACIRQgAUGBgICAfGxBBGsiA0EcTwRAQXwgCCAMIAggDEkbQf////8DbGtBAnZBAWpB+P///wdxIRUgAiADQQJ2QQFqIhlB+P///wdxIhpBAnQiA2ohAiABIANrIQEgEv0RISsgE/0RISwgFP0RIS0gCSEDA0AgA0EOaiIbIANBCmoiHCADQQZqIh0gA0ECaiIe/QcAAP1UAAAE/VQAAAj9VAAADCEuIANBHmoiHyADQRpqIiAgA0EWaiIhIANBEmoiIv0HAAD9VAAABP1UAAAI/VQAAAwhLyADQQxqIiMgA0EIaiIkIANBBGoiJSAD/QcAAP1UAAAB/VQAAAL9VAAAAyEoIANBDWogA0EJaiADQQVqIANBAWr9BwAA/VQAAAH9VAAAAv1UAAADIScgA0EcaiIKIC0gA0EdaiADQRlqIANBFWogA0ERav0HAAD9VAAAAf1UAAAC/VQAAAP9hwH9pwEiKf21AUEF/a0BIAogA0EYaiImIANBFGoiECADQRBqIgr9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akB/a4BIir9GwM6AAAgJiAq/RsCOgAAIBAgKv0bAToAACAKICr9GwA6AAAgIyAtICf9hwH9pwEiJ/21AUEF/a0BICj9iQH9qQH9rgEiKP0bAzoAACAkICj9GwI6AAAgJSAo/RsBOgAAIAMgKP0bADoAACAfIC8gLCAp/bUBQQX9rQH9rgEgKkEY/asBQRj9rAEgK/21AUEF/a0B/a4BIin9GwM6AAAgICAp/RsCOgAAICEgKf0bAToAACAiICn9GwA6AAAgGyAuICwgJ/21AUEF/a0B/a4BIChBGP2rAUEY/awBICv9tQFBBf2tAf2uASIn/RsDOgAAIBwgJ/0bAjoAACAdICf9GwE6AAAgHiAn/RsAOgAAIANBIGohAyAVQQhrIhUNAAsgGSAaRg0BCwNAIAIgAi0AACACQQFqLAAAIhAgFGxBBXZqIgo6AAAgAkECaiIDIAMtAAAgECATbEEFdmogCsAgEmxBBXZqOgAAIAJBBGohAiABQQRrIgENAAsLIAggCWohCSAMIAhrIQwgC0EBaiILIBdHDQALCyAPQQFqIQ8gACAHaiEAIA5BACAHIAcgDksiARtrIQ4gAUUNAAsLIAZBIGokAA8LQcD4yABBKyAGQR9qQcThxABB/ILHABCVBwALIAZBADYCFCAGQQE2AgggBkGUqccANgIEIAZCBDcCDCAGQQRqQYTtxAAQyggACyAGQQA2AhQgBkEBNgIIIAZBlKnHADYCBCAGQgQ3AgwgBkEEakGU7cQAEMoIAAuoCQIMfwF7IwBBgAhrIgUkAAJAAkACQAJAAkAgASgC2AFBgYCAgHhGIgRFBEBBACABKALcASAEGyEDIAEoAtQBQQAgASgCzAEiDEGBgICAeEcbIQogASgC4AEiCEEDbiELIAEoAtABIQ0DQCACIAVq/QwAAAD/AAAA/wAAAP8AAAD//QsAACACQRBqIgJBgAhHDQALIAhBBE8EQCAIQQRrIgRBA24hBkGAAiEBIAUhAiAEQSNNBEAgCCEEDAMLIAUgA0GAAiAEQQNuIgEgAUGAAk8bIgFBA2xqQQRqTyADIAUgAUECdGpBBGpPckUEQCAIIQRBgAIhAQwDC0GAAkGAAiAGIAZBgAJPG0EBaiIBIAFBA3EiAUEEIAEbayIHayEBIAggB0F9bGohBCADIAdBA2xqIAUgB0ECdGohAiAFIQYDQCAGIANBCWogA0EGaiADQQNqIAP9XAAA/VYAAAH9VgAAAv1WAAAD/QsAACADQQxqIQMgBkEQaiEGIAdBBGsiBw0ACyEDDAILIAUhAiAIIgRFDQUMAgtB3LHFAEEUQfCxxQAQ3gcACwNAIAFFDQIgAiADKAAANgAAIAJBBGohAiABQQFrIQEgA0EDaiEDIARBA2siBEEDSw0ACyABDQBBAEEAQYCyxQAQvwcACyAEQQNHDQEgAiADLwAAOwAAIAJBAmogA0ECai0AADoAAAwCC0EAQQBBsLLFABC/BwALQQMgBEGQssUAEKIKAAsCQEEAIAogCiALSyIBGyIHRQ0AQQFBASANIAEbIAxBgYCAgHhGGyEBQYACIAcgB0GAAk8bIQZBACEJAkAgB0EQSQ0AIAVBA2ogASAGakkgASAGQQJ0IgQgBWpJcQ0AIAZB8ANxIQkgBEFAcSEKQQAhAyABIQQDQCADIAVqIgJBP2ogBP0AAAAiDv1YAAAPIAJBO2ogDv1YAAAOIAJBN2ogDv1YAAANIAJBM2ogDv1YAAAMIAJBL2ogDv1YAAALIAJBK2ogDv1YAAAKIAJBJ2ogDv1YAAAJIAJBI2ogDv1YAAAIIAJBH2ogDv1YAAAHIAJBG2ogDv1YAAAGIAJBF2ogDv1YAAAFIAJBE2ogDv1YAAAEIAJBD2ogDv1YAAADIAJBC2ogDv1YAAACIAJBB2ogDv1YAAABIAJBA2ogDv1YAAAAIARBEGohBCAKIANBQGsiA0cNAAsgBiAJRg0BCyAJIQMgBkEDcSIEBEAgA0ECdCAFakEDaiECA0AgAiABIANqLQAAOgAAIAJBBGohAiADQQFqIQMgBEEBayIEDQALCyAJIAZrQXxLDQAgBSADQQJ0aiECA0AgAkEDaiABIANqIgQtAAA6AAAgAkEHaiAEQQFqLQAAOgAAIAJBC2ogBEECai0AADoAACACQQ9qIARBA2otAAA6AAAgAUEEaiEBIAJBEGohAiADIAZBBGsiBkcNAAsLIAhBgwZJBEAgByALRwRAIAtBAnQgB0ECdCIBayEDIAEgBWpBA2ohAgNAIAJB/wE6AAAgAkEEaiECIANBBGsiAw0ACwsgACAFQYAI/AoAACAFQYAIaiQADwsgC0GAAkGgssUAEKIKAAuaCQIIfwF7IAAgASgCBCICNgI8IAEoAgAiBSEDIAAoAggiByAFSQRAIAUgByIDayIGIAAoAgAgA2tLBEAgACADIAZBBEEkENAFIAAoAgghAwsgACgCBCEJIAZBA3EiBARAIAMgBGogBSAHayAEayEGIAkgA0EkbGohAgNAIAL9DAAAAAAAAAAAAAAAAAAAAAD9CwIAIAJBIGpBADsBACACQRBqIAr9CwIAIAJBJGohAiAEQQFrIgQNAAshAwsgByAFa0F8TQRAIAkgA0EkbGohAgNAIAL9DAAAAAAAAAAAAAAAAAAAAAD9CwIAIAJBIGpBADsBACACQRBqIAr9CwIAIAJBJGogCv0LAgAgAkE0aiAK/QsCACACQcQAakEAOwEAIAJByABqIAr9CwIAIAJB2ABqIAr9CwIAIAJB6ABqQQA7AQAgAkHsAGogCv0LAgAgAkH8AGogCv0LAgAgAkGMAWpBADsBACACQZABaiECIANBBGohAyAGQQRrIgYNAAsLIAAoAjwhAgsgAEEANgIgIAAgAzYCCAJAAn8CQAJAIAJFBEAgAEEANgIsDAELIAUEQEEAIQQgACgCGCAFSQRAIABBGGpBACAFQQJBEhDQBSAAKAIgIQQgACgCPCECCyAFQRJsIgMEQCAAKAIcIARBEmxqQQAgA/wLAAsgAEEANgIsIAAgBCAFajYCICACQQFNDQFBACEEIAAoAiQgBUkEQCAAQSRqQQAgBUECQR4Q0AUgACgCLCEEIAAoAjwhAgsgBUEebCIDBEAgACgCKCAEQR5sakEAIAP8CwALIABBADYCOCAAIAQgBWo2AiwgAkECTQ0EQQAhBCAAKAIwIAVJBEAgAEEwakEAIAVBAkEqENAFIAAoAjghBAsgBUEqbCIDBEAgACgCNCAEQSpsakEAIAP8CwALIAQgBWohBCAAQThqDAMLQQAhBCAAQQA2AiwgAkEBRw0BCyAAQQA2AjgMAgsgAEEANgI4IAJBAk0NASAAQThqCyAENgIACyAAKAIUIQQgAEEANgIUIAAoAhAhBwJAAkACQAJAIAQEQCAHIQIDQCACQRRqKAIAIgNBBU8EQCACQQhqKAIAIghBBGsoAgAiBkF4cSIJIANBAnQiA0EEQQggBkEDcSIGG2pJDQMgBkEAIAkgA0EnaksbDQQgCBC0AgsgAkEYaiECIARBAWsiBA0ACwsgAS0ACEUNAyAFRQRAQQAhAwwDC0EAIQMgACgCDCAFSQRAIABBDGpBACAFQQRBGBDQBSAAKAIQIQcgACgCFCEDCyAFQQFrIAVBA3EiBARAIAVBfHEhBSADIARqIAcgA0EYbGohAgNAIAJBADYCACACQRRqQQA2AgAgAkEYaiECIARBAWsiBA0ACyEDC0EDSQ0CIAcgA0EYbGohAgNAIAJBADYCACACQdwAakEANgIAIAJBxABqQgA3AgAgAkEsakIANwIAIAJBFGpCADcCACACQeAAaiECIANBBGohAyAFQQRrIgUNAAsMAgtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIAAgAzYCFAsLyAYBBH8CQAJAIAAoAgwiAgRAIAAoAhAiA0EEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAQgAkEnaksbDQIgAxC0AgsgACgCGCICBEAgACgCHCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADELQCCyAAKAI8IgIEQCAAKAJAIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQtAILIAAoAkgiAgRAIAAoAkwiA0EEaygCACIBQXhxIgQgAkECdCICQQRBCCABQQNxIgEbakkNASABQQAgBCACQSdqSxsNAiADELQCCyAAKAJUIgIEQCAAKAJYIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQtAILIAAoAmAiAkGAgICAeHJBgICAgHhHBEAgACgCZCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADELQCCyAAKAJsIgIEQCAAKAJwIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQtAILIAAoAngiAgRAIAAoAnwiA0EEaygCACIBQXhxIgQgAkECdCICQQRBCCABQQNxIgEbakkNASABQQAgBCACQSdqSxsNAiADELQCCwJAIAAoAoQBIgJBgICAgHhGDQAgAgRAIAAoAogBIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0CIAFBACAEIAJBJ2pLGw0DIAMQtAILIAAoApABIgIEQCAAKAKUASIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNAiABQQAgBCACQSdqSxsNAyADELQCCyAAKAKcASICRQ0AIAAoAqABIgBBBGsoAgAiA0F4cSIBIAJBAnQiAkEEQQggA0EDcSIDG2pJDQEgA0EAIAEgAkEnaksbDQIgABC0AgsPC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAuoCAITfwJ+IwBBkARrIgkkACAJQQxqQQBBgAT8CwACQCAAKAIMIhBFBEAgASgCACAAKAIAIAAoAgQgASgCBCgCDBEAACEADAELIAAoAgAhDCAAKAIIIg0tAAAhCgJAAkAgACgCBCIORQ0AIAwgDmohAyAJQQxqIQQgDCEAA0ACfyAALAAAIgdBAE4EQCAHQf8BcSEFIABBAWoMAQsgAC0AAUE/cSEGIAdBH3EhBSAHQV9NBEAgBUEGdCAGciEFIABBAmoMAQsgAC0AAkE/cSAGQQZ0ciEGIAdBcEkEQCAGIAVBDHRyIQUgAEEDagwBCyAFQRJ0QYCA8ABxIAAtAANBP3EgBkEGdHJyIgVBgIDEAEYNAiAAQQRqCyEAIAJBgAFGDQIgBCAFNgIAIARBBGohBCACQQFqIQIgACADRw0ACwsgDSAQaiERIAJBAnQiAEEEaiELIAAgCWpBCGohD0G8BSESQcgAIRMgDSEGQYABIQcDQCAGQQFqIQZBACEEQSQhAEEBIQNBASEUQQAhBQNAAkAgBEEBcQRAIAYgEUYNBCAGLQAAIQQgBkEBaiEGDAELIAohBCADRQ0DCyAEQeEAayIDQf8BcUEaTwRAIARBMGtB/wFxQQlLDQMgBEEWayEDCyAUrSIVIANB/wFxIgStfiIWQiCIpw0CIAUgFqcgBWoiBUsNAiAEQRpBASAAIBNrIgNBACAAIANPGyIDIANBAU0bIgMgA0EaTxsiA08EQCAAQSRqIQAgFUEkIANrrX4iFachFEEAIQNBASEEIBVCIIhQDQEMAwsLIAUgCGoiAyAISQ0BIAcgAyACQQFqIgRuIgogB2oiB0sgB0GAsANzQYCAxABrQYCQvH9JciAHQYCAxABGIAJB/wBLcnINASAPIQACQCADIAQgCmxrIgggAk8EQCAIQYABSQ0BIAhBgAFB+LzFABC/BwALA0AgAEEEaiAAKAIANgIAIABBBGshACACQQFrIgIgCEsNAAsLIAlBDGogCEECdGogBzYCACAGIBFHBEAgBi0AACEKQQAhAgJAIAUgEm4iACAEbiAAaiIAQcgDSQRAIAAhAwwBCwNAIAJBJGohAiAAQdf8AEsgAEEjbiIDIQANAAsLIAhBAWohCCACIANBJGxB/P8DcSADQSZqQf//A3FuaiETIA9BBGohDyALQQRqIQtBAiESIAQhAgwBCwsgCUEMaiECA0AgCSACKAIANgKMBCAJQYwEaiABEMUFIgANAiACQQRqIQIgC0EEayILDQALDAELQQEhACABKAIAIgJBiL3FAEEJIAEoAgQoAgwiAREAAA0AIA4EQCACIAwgDiABEQAADQEgAkGRvcUAQQEgAREAAA0BCyACIA0gECABEQAADQAgAkGSvcUAQQEgAREAACEACyAJQZAEaiQAIAALxRcCB34QfyABKAIEIg4gAikDECIGIAIpAwgiCCACKQMAIgkgASkDGIUiA0LYotHvwqnlvy1+IANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhIWFIgNC2KLR78Kp5b8tfiADQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISEQtKBqpur+oLXp39+IgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhISFhSIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISEQtKBqpur+oLXp39+IgRCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgBEIIiEKAgID4D4MgBEIYiEKAgPwHg4QgBEIoiEKA/gODIARCOIiEhIQgA0LYotHvwqnlvy1+hSIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISEIAEpAxAiBEJ/hX4iBUI4hiAFQoD+A4NCKIaEIAVCgID8B4NCGIYgBUKAgID4D4NCCIaEhCAFQgiIQoCAgPgPgyAFQhiIQoCA/AeDhCAFQiiIQoD+A4MgBUI4iISEhCADIARCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgBEIIiEKAgID4D4MgBEIYiEKAgPwHg4QgBEIoiEKA/gODIARCOIiEhIR+hSADiSIHp3EhDSAHQhmIQv8Ag0KBgoSIkKDAgAF+IQUgASgCACEQAkADQAJAIA0gEGopAAAiBCAFhSIDQn+FIANCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiA1BFBEADQAJAIBAgA3qnQQN2IA1qIA5xQQZ0ayIKQUBqKQMAIAlSDQAgCkE4aykDACAIUg0AIApBMGspAwAgBlENAwsgA0IBfSADgyIDUEUNAAsLIAQgBEIBhoNCgIGChIiQoMCAf4NQRQ0CIA0gC0EIaiILaiAOcSENDAELCyAAIAE2AgQgACAKNgIAIABBADYCIA8LIAEoAghFBEACQCMAQSBrIgskACALIAFBEGo2AgAgASgCDCENIAsgCzYCBAJAAkACQAJAAkACQAJAAkACfwJAIA1Bf0cEQCABKAIEIhMgE0EBakEDdkEHbCATQQhJGyIKQQF2IA1NBEAgCiANIAogDUsbIgpBDkkNAiAKQf7///8BTQRAQX8gCkEDdEEIakEHbkEBa2d2IgpB/v//H0sNBSAKQQFqDAQLDAsLIAEgC0EEakEjQcAAEP8CDAcLDAkLQQRBCEEQIApBB0kbIApBA0kbCyIKQQZ0Ig4gCkEIaiIQaiIPIA5JIA9B+P///wdLcg0AIA8QfiIPRQ0BIA4gD2ohDyAQBEAgD0H/ASAQ/AsACyAKQQFrIhIgCkEDdkEHbCASQQhJGyEWIA0NAiABKAIAIQoMAwsgC0EANgIYIAtBATYCDCALQbS9xAA2AgggC0IENwIQIAtBCGpBvL3EABDKCAsACyAPQQhqIRcgASgCACIKKQMAQn+FQoCBgoSIkKDAgH+DIQYgCygCACEVIA0hDiAKIRADQCAGUARAA0AgFEEIaiEUIBBBCGoiECkDAEKAgYKEiJCgwIB/gyIDQoCBgoSIkKDAgH9RDQALIANCgIGChIiQoMCAf4UhBgsgDyASIAogBnqnQQN2IBRqIhhBBnRrIgxBQGopAwAgFSkDCIUiA0LYotHvwqnlvy1+IAxBOGspAwCFIANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhIUiA0LYotHvwqnlvy1+IAxBMGspAwCFIANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhIUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhELSgaqbq/qC16d/fiIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEIANC2KLR78Kp5b8tfoUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCAVKQMAIgRCf4V+IgVCOIYgBUKA/gODQiiGhCAFQoCA/AeDQhiGIAVCgICA+A+DQgiGhIQgBUIIiEKAgID4D4MgBUIYiEKAgPwHg4QgBUIoiEKA/gODIAVCOIiEhIQgAyAEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEfoUgA4mnIhlxIgxqKQAAQoCBgoSIkKDAgH+DIgNQBEBBCCERA0AgDCARaiEMIBFBCGohESAPIAwgEnEiDGopAABCgIGChIiQoMCAf4MiA1ANAAsLIAZCAX0gBoMhBiAPIAN6p0EDdiAMaiAScSIMaiwAAEEATgRAIA8pAwBCgIGChIiQoMCAf4N6p0EDdiEMCyAMIA9qIBlBGXYiEToAACAXIAxBCGsgEnFqIBE6AAAgDyAMQX9zQQZ0aiIMQTBqIAogGEF/c0EGdGoiEUEwav0AAAD9CwAAIAxBIGogEUEgav0AAAD9CwAAIAxBEGogEUEQav0AAAD9CwAAIAwgEf0AAAD9CwAAIA5BAWsiDg0ACwsgASASNgIEIAEgDzYCACABIBYgDWs2AgggE0UNACATIBNBBnRBxwBqQUBxIg5qQQlqIg1FDQAgCiAOayIKQQRrKAIAIg5BeHEiEEEEQQggDkEDcSIOGyANakkNASAOQQAgECANQSdqSxsNAiAKELQCCyALQSBqJAAMAwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIAtBADYCGCALQQE2AgwgC0G0vcQANgIIIAtCBDcCECALQQhqQby9xAAQyggACwsgACAHNwMAIAAgAikDADcDCCAAQRBqIAJBCGr9AAMA/QsDACAAIAE2AiALngoCD38DfiMAQSBrIgUkAAJ/QQAgAygCDCIKRQ0AGiADKQMQIAMpAxhBm9zHAEEBELoEIRMgAygCBCIHIBOncSEGIBNCGYhC/wCDQoGChIiQoMCAAX4hFSADKAIAIQgDQAJAIAYgCGopAAAiFCAVhSITQn+FIBNCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiE1BFBEADQCAIIBN6p0EDdiAGaiAHcUFsbGoiBEEMaygCAEEBRgRAIARBEGsoAgAtAABB+ABGDQMLIBNCAX0gE4MiE1BFDQALC0EAIBQgFEIBhoNCgIGChIiQoMCAf4NQRQ0CGiAGIAlBCGoiCWogB3EhBgwBCwsgBEEUawshBCAFQQA2AhggBUEBNgIMIAVBgOrHADYCCCAFQgQ3AhAgBUEIahDHByEGAkACQCAERQ0AIAYgBigCACgCABEDACAELQAQIQsgBCgCDCEMAn9BACAKRQ0AGiADKQMQIAMpAxhBnNzHAEEBELoEIRMgAygCBCIHIBOncSEGIBNCGYhC/wCDQoGChIiQoMCAAX4hFSADKAIAIQhBACEJA0ACQCAGIAhqKQAAIhQgFYUiE0J/hSATQoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIhNQRQRAA0AgCCATeqdBA3YgBmogB3FBbGxqIgRBDGsoAgBBAUYEQCAEQRBrKAIALQAAQfkARg0DCyATQgF9IBODIhNQRQ0ACwtBACAUIBRCAYaDQoCBgoSIkKDAgH+DUEUNAhogBiAJQQhqIglqIAdxIQYMAQsLIARBFGsLIQQgBUEANgIYIAVBATYCDCAFQZzqxwA2AgggBUIENwIQIAVBCGoQxwchBiAERQ0AIAYgBigCACgCABEDACAELQAQIQcgBCgCDCEIIANBndzHAEEBEOkFIQQgBUEANgIYIAVBATYCDCAFQbjqxwA2AgggBUIENwIQIAVBCGoQxwchBiAERQ0AIAYgBigCACgCABEDACAELQAQIQkgBCgCDCEKIANBntzHAEEDEOkFIQQgBUEANgIYIAVBATYCDCAFQazuxwA2AgggBUIENwIQIAVBCGoQxwchBiAERQ0AIAYgBigCACgCABEDACAELQAQIQ0gBCgCDCEOIANBodzHAEEFEOkFIQQgBUEANgIYIAVBATYCDCAFQczuxwA2AgggBUIENwIQIAVBCGoQxwchBiAERQ0AIAYgBigCACgCABEDACAELQAQIQ8gBCgCDCEQIANBptzHAEEEEOkFIQQgBUEANgIYIAVBATYCDCAFQezuxwA2AgggBUIENwIQIAVBCGoQxwchBiAERQ0AIAYgBigCACgCABEDACAELQAQIREgBCgCDCESAkAgA0H07scAQQUQ6QUiBEUEQEEIIQYMAQsgBC0AECEGIAQoAgwhBAsgAEIENwOYASAAQgA3A5ABIABCgICAgMAANwOIASAAQgQ3A4ABIABCADcDeCAAQoCAgIDAADcDcCAAQgQ3A2ggAEIANwNgIAAgAjYCXCAAIAE2AlggACAROgBUIAAgEjYCUCAAIA86AEwgACAQNgJIIAAgDToARCAAIA42AkAgACAJOgA8IAAgCjYCOCAAIAc6ADQgACAINgIwIAAgCzoALCAAIAw2AiggACAGOgAkIAAgBDYCICAAIAP9AAMA/QsDACAAQRBqIANBEGr9AAMA/QsDAAwBCyAAQYCAgIB4NgKUASAAIAY2AgAgAxDmBAsgBUEgaiQAC5MKAQZ/IwBBMGsiAiQAAkACQAJAAkACQAJAQQMgACgCACIELQAAIgBBBGsgAEEDTRtB/wFxQQFrDgQBAgMEAAtBASEAIAEoAgAiA0GnwMcAQQUgASgCBCIGKAIMIgURAAANBCAEQQFqIQQCQCABLQAKQYABcUUEQCADQfm6xQBBASAFEQAADQYgBCABENsCDQYgASgCACEDIAEoAgQoAgwhBQwBCyADQYyhwgBBAiAFEQAADQUgAkEBOgAsIAIgBjYCFCACIAM2AhAgAkHkoMIANgIgIAIgASkCCDcCJCACIAJBLGo2AhggAiACQRBqNgIcIAQgAkEcahDbAg0FIAIoAhxBg6HCAEECIAIoAiAoAgwRAAANBQsgA0GmocgAQQEgBREAACEADAQLQQEhACABKAIAIgNBrMDHAEELIAEoAgQiBigCDCIFEQAADQMgBEEBaiEEAkAgAS0ACkGAAXFFBEAgA0H5usUAQQEgBREAAA0FIAQgARDbAg0FIAEoAgAhAyABKAIEKAIMIQUMAQsgA0GMocIAQQIgBREAAA0EIAJBAToALCACIAY2AhQgAiADNgIQIAJB5KDCADYCICACIAEpAgg3AiQgAiACQSxqNgIYIAIgAkEQajYCHCAEIAJBHGoQ2wINBCACKAIcQYOhwgBBAiACKAIgKAIMEQAADQQLIANBpqHIAEEBIAURAAAhAAwDC0EBIQAgASgCACIDQbfAxwBBDiABKAIEIgcoAgwiBREAAA0CIARBAWohBgJAIAEtAApBgAFxRQRAIANB+brFAEEBIAURAAANBCACIAY2AhwgASAEQQRqQbSvxwAgBEECakHEr8cAIARBA2pB1K/HACACQRxqQeSvxwAQnQYNBCABKAIAIQMgASgCBCgCDCEFDAELIANBjKHCAEECIAURAAANAyACQQE6AA8gAiAHNgIUIAIgAzYCECACQeSgwgA2AiAgAiABKQIINwIkIAIgAkEPajYCGCACIAJBEGo2AhwgAiAGNgIsIAJBHGogBEEEakG0r8cAIARBAmpBxK/HACAEQQNqQdSvxwAgAkEsakHkr8cAEJ0GDQMgAigCHEGDocIAQQIgAigCICgCDBEAAA0DCyADQaahyABBASAFEQAAIQAMAgtBASEAIAEoAgAiA0HFwMcAQQYgASgCBCIGKAIMIgURAAANAQJAIAEtAApBgAFxRQRAIANB+brFAEEBIAURAAANAyAEIAEQsQNFDQEMAwsgA0GMocIAQQIgBREAAA0CIAJBAToALCACIAY2AhQgAiADNgIQIAJB5KDCADYCICACIAEpAgg3AiQgAiACQSxqNgIYIAIgAkEQaiIBNgIcIAQgAkEcahCxAw0CIAFBg6HCAEECENgDDQILIANBpqHIAEEBIAURAAAhAAwBC0EBIQAgASgCACIDQcvAxwBBDiABKAIEIgYoAgwiBREAAA0AAkAgAS0ACkGAAXFFBEAgA0H5usUAQQEgBREAAA0CIARBCGooAgAgBEEMaigCACABEM4CRQ0BDAILIANBjKHCAEECIAURAAANASACQQE6ACwgAiAGNgIUIAIgAzYCECACQeSgwgA2AiAgAiABKQIINwIkIAIgAkEsajYCGCAEQQhqKAIAIARBDGooAgAgAiACQRBqIgY2AhwgAkEcahDOAg0BIAZBg6HCAEECENgDDQELIANBpqHIAEEBIAURAAAhAAsgAkEwaiQAIAAL+ggDCn8CfgJ7IwBB8ABr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KAKUBCIBBEAgACgCmAQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKAKgBCIBBEAgACgCpAQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKAKsBCIBBEAgACgCsAQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKAK4BCIBBEAgACgCvAQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKALEBCIBBEAgACgCyAQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKALQBCIBBEAgACgC1AQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKALcBCIBBEAgACgC4AQiAEEEaygCACIDQXhxIgIgAUECdCIBQQRBCCADQQNxIgMbakkNASADQQAgAiABQSdqSxsNAiAAELQCCw8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC7oGAQh/IwBBIGshCANAIAEoAgAiBEH///8DcSEDIARBgICAgHhxIQYCQCAEQYCAgPwHcSICQYCAgPwHRgRAIANBDXYgBkEQdnIgA0EAR0EJdHJBgPgBciEGDAELIAZBEHYhBiACQYCAgLgETQRAIAJBgICAxANPBEAgBEEMdiAEQf/fAHFBAEdxIAJBDXYgA0ENdmpBgIABaiAGcmohBgwCCyACQYCAgJgDSQ0BIANBgICABHIiBEEeIAJBF3YiA2t2IQIgBEEdIANrIgN2QQFxBH8gAkEDIAN0QQFrIARxQQBHagUgAgsgBnIhBgwBCyAGQYD4AXIhBgsgAUEEaigCACIDQf///wNxIQUgA0GAgICAeHEhBAJAIANBgICA/AdxIgJBgICA/AdHBEAgBEEQdiEEIAJBgICAuARNBEAgAkGAgIDEA08EQCADQQx2IANB/98A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AQEBAQEBAQMFAQEEAQEBAQEBAQEBAQEBAQEBAQEBAQEIAQEBAQcACyABQdwARg0FCyACQQFxRSABQf8FTXINByABEIAFRQ0HIANBDmpBADoAACADQQA7AQwgAyABQRR2QbS4xQBqLQAAOgAPIAMgAUEEdkEPcUG0uMUAai0AADoAEyADIAFBCHZBD3FBtLjFAGotAAA6ABIgAyABQQx2QQ9xQbS4xQBqLQAAOgARIAMgAUEQdkEPcUG0uMUAai0AADoAECABQQFyZ0ECdiICIANBDGoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgAkECayICakHcADoAACADQRRqIgQgAUEPcUG0uMUAai0AADoAACAAIAMpAQw3AAAgA0H9ADoAFQwICyAAQgA3AQIgAEHc4AA7AQAMCgsgAEIANwECIABB3OgBOwEADAkLIABCADcBAiAAQdzkATsBAAwICyAAQgA3AQIgAEHc3AE7AQAMBwsgAEIANwECIABB3LgBOwEADAYLIAJBgAJxRQ0BIABCADcBAiAAQdzOADsBAAwFCyACQf///wdxQYCABE8NAwsgARDXBg0BIANBGGpBADoAACADQQA7ARYgAyABQRR2QbS4xQBqLQAAOgAZIAMgAUEEdkEPcUG0uMUAai0AADoAHSADIAFBCHZBD3FBtLjFAGotAAA6ABwgAyABQQx2QQ9xQbS4xQBqLQAAOgAbIAMgAUEQdkEPcUG0uMUAai0AADoAGiABQQFyZ0ECdiICIANBFmoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgAkECayICakHcADoAACADQR5qIgQgAUEPcUG0uMUAai0AADoAACAAIAMpARY3AAAgA0H9ADoAHwsgAEEIaiAELwEAOwAAQQoMAwsgACABNgIAQYABIQJBgQEMAgsgAEIANwECIABB3MQAOwEAC0EAIQJBAgs6AA0gACACOgAMIANBIGokAAuMBQIMfwN+IwBBoAFrIggkACAIQQBBoAH8CwACQAJAIAIgACgCoAEiBU0EQCAFQSlPDQIgBUECdCEJIAVBAWohDCABIAJBAnRqIQ0CQANAIAggBkECdGohAwNAIAYhAiADIQQgASANRg0EIANBBGohAyACQQFqIQYgASgCACEHIAFBBGoiCyEBIAdFDQALIAetIRFCACEPIAkhByACIQEg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fyMAQSBrIgIkAAJAAkACQAJAAkAgAC0AAEEBaw4DAQIDAAtBASEEIAEoAgAiA0G6sccAQQUgASgCBCIGKAIMIgURAAANAwJAIAEtAApBgAFxRQRAIANB+brFAEEBIAURAAANBSADIAAtAAFBAnQiAEGwqckAaigCACAAQfCoyQBqKAIAIAURAABFDQEMBQsgA0GMocIAQQIgBREAAA0EIAIgBjYCFCACIAM2AhAgAkEBOgAAIAAtAAFBAnQiAEHwqckAaigCACEBIABBsKrJAGooAgAhACACIAI2AhggAkEQaiIGIAAgARDYAw0EIAZBg6HCAEECENgDDQQLIANBpqHIAEEBIAURAAAhBAwDC0EBIQQgASgCACIDQb+xxwBBBCABKAIEIgYoAgwiBREAAA0CAkAgAS0ACkGAAXFFBEAgA0H5usUAQQEgBREAAA0EIABBCGooAgAgAEEMaigCACABEM4CRQ0BDAQLIANBjKHCAEECIAURAAANAyACQQE6AA8gAiAGNgIEIAIgAzYCACACQeSgwgA2AhQgAiABKQIINwIYIABBCGooAgAgAEEMaigCACACIAJBD2o2AgggAiACNgIQIAJBEGoQzgINAyACQYOhwgBBAhDYAw0DCyADQaahyABBASAFEQAAIQQMAgtBASEEIAEoAgAiA0HDsccAQQ0gASgCBCIGKAIMIgURAAANASAAQQRqIQACQCABLQAKQYABcUUEQCADQfm6xQBBASAFEQAADQMgACABELoCRQ0BDAMLIANBjKHCAEECIAURAAANAiACQQE6AA8gAiAGNgIEIAIgAzYCACACQeSgwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqELoCDQIgAkGDocIAQQIQ2AMNAgsgA0GmocgAQQEgBREAACEEDAELIAEoAgBB0LHHAEEHIAEoAgQoAgwRAAAhBAsgAkEgaiQAIAQLmgUDB38FfgJ7IAApAzghDCAAKQMoIgkhCwJAAkACQAJAAkACQCAJIAApAwgiClINACAAKQMwIgsgACkDECIKUg0AIAwhCyAMIAApAxgiClENAQsgCiALWA0AIABBMGohAkECIQMDQCACQShqKQMAIQsgAkEYaikDACINIQoCQCAJIA1SDQAgAkEgaikDACIKIAIpAwAiCVINACAMIQkgCyIK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IARGBEAgA0EUakH09cAAEKwGIAMoAhghAgsgAiAEQQJ0aiABNgIAIAMgBEEBaiIENgIcDAELIAMoAhAiBSADKAIIRgRAIANBCGpBhPbAABCsBgsgAygCDCAFQQJ0aiABNgIAIAMgBUEBajYCEAsgBkEIaiIGIApHDQALCyAHBEAgCEEEaygCACIBQXhxIgIgB0EDdCIEQQRBCCABQQNxIgEbakkNAiABQQAgAiAEQSdqSxsNAyAIELQCCyAAIAMpAgg3AgAgACADKQIUNwIMIABBCGogA0EQaigCADYCACAAQRRqIANBHGooAgA2AgAgA0EgaiQADwsgASAFQejIxwAQvwcAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAv6AwAgACAEaiEAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUH/AXFBAWsOBwcAAQIDBAUGCyAAQQJqIQEgAEF9Sw0NIAEgA00NByABIANBnO/HABCiCgALIABBAmohASAAQX1LDQ0gASADTQ0HIAEgA0Gs78cAEKIKAAsgAEEEaiEBIABBe0sNDSABIANNDQcgASADQbzvxwAQogoACyAAQQRqIQEgAEF7Sw0NIAEgA00NByABIANBzO/HABCiCgALIABBBGohASAAQXtLDQ0gASADTQ0HIAEgA0Hc78cAEKIKAAsgAEEIaiEBIABBd0sNDSABIANNDQcgASADQezvxwAQogoACyAAIANJDQ4gACADQfzuxwAQvwcACyAAIANJDQwgACADQYzvxwAQvwcACyAAIAJqLgAAsg8LIAAgAmovAACzDwsgACACaigAALIPCyAAIAJqKAAAsw8LIAAgAmoqAAAPCyAAIAJqKwAAtg8LIAAgAUGc78cAEKUKAAsgACABQazvxwAQpQoACyAAIAFBvO/HABClCgALIAAgAUHM78cAEKUKAAsgACABQdzvxwAQpQoACyAAIAFB7O/HABClCgALIAAgAmotAACzQwAAf0OVDwsgACACaiwAALJDAAB/Q5ULyQMBC38jAEEQayIHJAACQAJAAkACQCADIARsIgZB/////wNLDQAgBkECdCIJQf3///8HTw0AAkAgCUUEQEEEIQpBACEGDAELIAkQfiIKRQ0CCyAHQQA2AgwgByAKNgII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IAJBH2pBwODAABDZCCEBDAkLIAEtAAQhAQwICyABLwEEIQEMBwsgASgCBCEBDAYLIAEpAwgiBUL/////D1gEQCAFpyEBDAULQQEhAyACQQE6AAggAiAFNwMQIAJBCGogAkEfakHA4MAAEJMHIQEMBQsgASwABCIBQQBIBEAgAkECOgAIIAIgAaw3AxAgAkEIaiACQR9qQcDgwAAQkwchAUEBIQMMBQsgAUH/AXEhAQwDCyABLgEEIgFBAEgEQCACQQI6AAggAiABrDcDECACQQhqIAJBH2pBwODAABCTByEBQQEhAwwECyABQf//A3EhAQwCCyABKAIEIgFBAE4NASACQQI6AAggAiABrDcDECACQQhqIAJBH2pBwODAABCTByEBQQEhAwwCCyABKQMIIgVCgICAgBBaBEAgAkECOgAIIAIgBTcDECACQQhqIAJBH2pBwODAABCTByEBQQEhAwwCCyAFpyEBCwsgACABNgIEIAAgAzYCACACQSBqJAALhAMBA38gAC8BHCECAkACQCAALwEeIgFB//8BcUGA+AFLDQAgAkH//wFxIgNBgPgBSw0AIAHBQQBOBEAgAsFBAE4EQCABIAJNDQIMAwsgASADckUNAQwCCyACwUEATg0AIAEgAkkNAQsgAiEBCwJAAkAgAC8BICIAQf//AXFBgPgBSw0AIAFB//8BcSICQYD4AUsNACAAwUEATgRAIAHBQQBOBEAgACABQf//A3FNDQIMAwsgACACckUNAQwCCyABwUEATg0AIAAgAUH//wNxSQ0BCyABIQALAn8gAEEQdCAAQf//AXFFDQAaIABB/wdxIQEgAEGAgAJxIQIgAEGA+AFxIgBBgPgBRgRAIAJBEHQiAEGAgID8B3IgAUUNARogACABQQ10ckGAgID+B3IMAQsgAkEQdCICIABBDXRBgICA/ABxIAFBDXRyQYCAgMADanIgAA0AGiACQYCAgNgDciABZ0EQayIAQRd0ayABIABB//8DcUEIanRB////A3FyC74QpgQL+gIBBH8CQAJAAkACQAJAAkACQCAALQAADhoABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBAgQLIAAtAARBA0cNAyAAKAIIIgAoAgAhAiAAQQRqKAIAIgEoAgAiAwRAIAIgAxEDAAsgASgCBCIBBEAgAkEEaygCACIDQXhxIgRB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IAJrIgMEQCAEIAIgBGogA/wKAAALIAEgAzYCCAsgAEEBOgABCyAAIAU6AAAgBkEgaiQADwsgAiADQdyrxwAQogoAC88DAQV/IwBBIGsiAiQAIAAoAgAiA0EIaiEFQQEhAAJAIAMoAgBBAUYEQCABKAIAIgNB67/EAEEDIAEoAgQiBigCDCIEEQAADQECQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQMgBSABEKIGRQ0BDAMLIANBjKHCAEECIAQRAAANAiACQQE6AA8gAiAGNgIEIAIgAzYCACACQeSgwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBSACQRBqEKIGDQIgAkGDocIAQQIQ2AMNAgsgA0GmocgAQQEgBBEAACEADAELIAEoAgAiA0HolckAQQIgASgCBCIGKAIMIgQRAAANAAJAIAEtAApBgAFxRQRAIANB+brFAEEBIAQRAAANAiAFIAEQsAUNAiABKAIAIQMgASgCBCgCDCEEDAELIANBjKHCAEECIAQRAAANASACQQE6AA8gAiAGNgIEIAIgAzYCACACQeSgwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBSACQRBqELAFDQEgAigCEEGDocIAQQIgAigCFCgCDBEAAA0BCyADQaahyABBASAEEQAAIQALIAJBIGokACAAC4MDAQF/IwBBIGsiBSQAIAACfwJAIARFBEAgA0EEaiACSyADQXtLckUEQCAAIAEgA2oqAAA4AgQMAgsgBUEANgIYIAVBATYCDCAFQeStwQA2AgggBUIENwIQIAAgBUEIahDFBzYCBEEBDAILIANBfU0gA0ECaiACTXFFBEAgBUEANgIYIAVBATYCDCAFQeStwQA2AgggBUIENwIQIAAgBUEIahDFBzYCBEEBDAILIAACfyABIANqIgEtAAFBCHQiAiABLQAAciIBQf//AXFFBEAgAUEQdAwBCyABQf8HcSEBIAJBgIACcSEDIAJBgPgBcSICQYD4AUYEQCADQRB0IQIgAkGAgID8B3IgAUUNARogAUENdCACckGAgID+B3IMAQsgA0EQdCEDIAJBDXRBgICA/ABxIAFBDXRyQYCAgMADaiADciACDQAaIANBgICA2ANyIAFnQRBrIgJBF3RrIAEgAkH//wNxQQhqdEH///8D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5AMLIAJBMGokAAvmAQEEfyMAQSBrIgAkAEEBIQICQCABKAIAIgNB7KTIAEEPIAEoAgQiBSgCDCIEEQAADQACQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQIgAUHoocgAQQIQvgNFDQEMAgsgA0GMocIAQQIgBBEAAA0BIABBAToADyAAIAU2AgQgACADNgIAIABB5KDCADYCFCAAIAEpAgg3AhggACAAQQ9qNgIIIAAgADYCECAAQRBqQeihyABBAhC+Aw0BIABBg6HCAEECENgDDQELIANBpqHIAEEBIAQRAAAhAgsgAEEgaiQAIAILugEBA38jAEEgayIDJAACQAJ/QQAgASABIAJqIgJLDQAaQQBBCCACIAAoAgAiAUEBdCIEIAIgBEsbIgIgAkEITRsiBEEASA0AGkEAIQIgAyABBH8gAyABNgIcIAMgACgCBDYCFEEBBSACCzYCGCADQQhqQQEgBCADQRRqENIHIAMoAghBAUcNASADKAIQIQUgAygCDAtB/KHIABDQCQALIAMoAgwhASAAIAQ2AgAgACABNgIEIANBIGokAAvmAQEEfyMAQSBrIgAkAEEBIQICQCABKAIAIgNBgN7EAEERIAEoAgQiBSgCDCIEEQAADQACQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQIgAUHoocgAQQIQvgNFDQEMAgsgA0GMocIAQQIgBBEAAA0BIABBAToADyAAIAU2AgQgACADNgIAIABB5KDCADYCFCAAIAEpAgg3AhggACAAQQ9qNgIIIAAgADYCECAAQRBqQeihyABBAhC+Aw0BIABBg6HCAEECENgDDQELIANBpqHIAEEBIAQRAAAhAgsgAEEgaiQAIAIL6QEBA38jAEEQayICJAAgAiAAKAIAIgA2AgQgASgCAEHYrscAQQYgASgCBCgCDBEAACEDIAJBADoADSACIAM6AAwgAiABNgIIIAJBCGpB3q7HAEEEIABBBGpBuK7HABC9BUHirscAQQUgAkEEakHIrscAEL0FIQAgAi0ADSIDIAItAAwiBHIhAQJAIARBAXEgA0EBR3INACAAKAIAIgAtAApBgAFxRQRAIAAoAgBB8cDFAEECIAAoAgQoAgwRAAAhAQwBCyAAKAIAQZK9xQBBASAAKAIEKAIMEQAAIQELIAJBEGokACABQQFxC+kB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ACADIAIgAiADVhunaigAACEHDAELQeChyAApAwAiBUIIiCEEIAWnIQYgBUL/AYNCBFINAQsgA0IEfCECCyABIAI3AwggBkH/AXFBBEcEQCAAIAatQv8BgyAEQgiGhDcCAA8LIABBBDoAACAAIAc2AgQLxwEBA38jAEEQayICJAAgACgCDCEBAkACQAJAAkACQAJAAkACQCAAKAIEDgIAAQILIAENAUEBIQNBACEAQQEhAQwDCyABRQ0BCyACQQRqIAAQ4gQMAgsgACgCACIBKAIEIgBBAEgNAiABKAIAIQMgAEUEQEEBIQFBACEADAELIAAQfiIBRQ0DCyAABEAgASADIAD8CgAACyACIAA2AgwgAiABNgIIIAIgADYCBAsgAkEEahDFASACQRBqJAAPC0H8pMgAELcICwALtAEBBn8jAEEgayIBJAACQAJAIAAoAgAiA0H///8fSw0AQQQgA0EBdCIEIARBBE0bIgRBBXQiBUH4////B0sNACABIAMEfyABIANBBXQ2AhwgASAAKAIENgIUQQgFIAILNgIYIAFBCGpBCCAFIAFBFGoQ0gcgASgCCEEBRw0BIAEoAhAhBiABKAIMIQILIAJBpLbBABDQCQALIAEoAgwhAiAAIAQ2AgAgACACNgIEIAFBIGokAAvPAQACQCABBEAgACAELQAIOgAAIAFBCEsNAUEIIAFBAWtBlPnEABCiCgALQQBBAEGE+cQAEL8HAAsgACAELQAROgABIAAgBC0AGjoAAiAAIAQtACM6AAMgACAELQAsOgAEIAAgBC0ANToABSAAIAQtAD46AAYgACAELQBHOgAHIAAgBC0AUDoACAJAIAVBA3QiACADTQRAIAMgAGsiAUEHSw0BQQggAUGk+cQAEKIKAAsgACADQbT5xAAQowoACyAAIAJqIARByQBqKQAANwAAC8UBAQR/IwBBIGsiAyQAIANBGGoiAiABQSxqKQIANwMAIAMgAf0AAhz9CwMIAkACQEEYEH4iBARAIAQgA/0AAwj9CwIAIARBEGogAikDADcCACABQQRqEIMDIAFBBGsoAgAiAkF4cSIFQThBPCACQQNxIgIbSQ0BIAJBACAFQdwATxsNAiABELQCIABBkLfHADYCBCAAIAQ2AgAgA0EgaiQADwsAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgA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AgA3AgAgASAENgIQIAFBCGogAkEIaigCADYCACADQRBqJAALegEDfyMAQRBrIgMkACADQQhqIAEoAgAgASgCBCABKAIIEIYCIAMoAgwhBCADKAIIIQVBFBB+IgFFBEAACyABIAU2AgwgACABNgIEIABBAToAACABIAIpAgA3AgAgASAENgIQIAFBCGogAkEIaigCADYCACADQRBqJAALegEDfyMAQRBrIgMkACADQQhqIAEoAgAgASgCBCABKAIIEIYCIAMoAgwhBCADKAIIIQVBFBB+IgFFBEAACyABIAU2AgwgACABNgIEIABBATsBACABIAIpAgA3AgAgASAENgIQIAFBCGogAkEIaigCADYCACADQRBqJAALegEDfyMAQRBrIgMkACADQQhqIAEoAgAgASgCBCABKAIIEIYCIAMoAgwhBCADKAIIIQVBFBB+IgFFBEAACyABIAU2AgwgACABNgIEIABBADYCACABIAIpAgA3AgAgASAENgIQIAFBCGogAkEIaigCADYCACADQRBqJAALdgEDfyAAEJoCAkACQCAAKALEASICBEAgACgCyAEiAEEEaygCACIBQXhxIgNBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAMgAkEnaksbDQIgABC0AgsPC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAt2AQN/IAAQ1wICQAJAIAAoArwBIgIEQCAAKALAASIAQQRrKAIAIgFBeHEiA0EEQQggAUEDcSIBGyACakkNASABQQAgAyACQSdqSxsNAiAAELQCCw8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC3QBA38gABCYAwJAAkAgACgCYCICBEAgACgCZCIAQQRrKAIAIgFBeHEiA0EEQQggAUEDcSIBGyACakkNASABQQAgAyACQSdqSxsNAiAAELQCCw8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC3QBA38gABCZAwJAAkAgACgCQCICBEAgACgCRCIAQQRrKAIAIgFBeHEiA0EEQQggAUEDcSIBGyACakkNASABQQAgAyACQSdqSxsNAiAAELQCCw8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC3QBBH8CQAJAIAAoAigiAgRAIAAoAiwi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JAALNAAgASgCACAAKAIALQAAaEECdCIAQYSeyQBqKAIAIABB8J3JAGooAgAgASgCBCgCDBEAAAs0ACABKAIAIAAoAgAtAABoQQJ0IgBBpKDJAGooAgAgAEGQoMkAaigCACABKAIEKAIMEQAAC/4BAgJ/AX4jAEEQayICJAAgAkEBOwEMIAIgATYCCCACIAA2AgQjAEEQayIBJAAgAkEEaiIAKQIAIQQgASAANgIMIAEgBDcCBCMAQRBrIgAkACABQQRqIgEoAgAiAigCDCEDAkACQAJAAkAgAigCBA4CAAECCyADDQFBASECQQAhAwwCCyADDQAgAigCACICKAIEIQMgAigCACECDAELIABBgICAgHg2AgAgACABNgIMIABB/wBBgAEgASgCBCABKAIIIgAtAAggAC0ACRDEBgALIAAgAzYCBCAAIAI2AgAgAEGBAUGCASABKAIEIAEoAggiAC0ACCAALQAJEMQGAAszACABKAIAIAAoAgAtAABBAnQiAEGAm8kAaigCACAAQcCayQBqKAIAIAEoAgQoAgwRAAALMwAgASgCACAAKAIALQAAQQJ0IgBB+JzJAGooAgAgAEG4nMkAaigCACABKAIEKAIMEQAACzEAIAEoAgAgAC0AAGhBAnQiAEGsnskAaigCACAAQZieyQBqKAIAIAEoAgQoAgwRAAALMwAgASgCACAAKAIALQAAQQJ0IgBB9J/JAGooAgAgAEHYn8kAaigCACABKAIEKAIMEQAACzMAIAEoAgAgACgCAC0AAEECdCIAQfigyQBqKAIAIABBuKDJAGooAgAgASgCBCgCDBEAAAsnACACIARGBEAgBARAIAMgASAE/AoAAAsPCyAEIAJBzLPFABCnCgALMwAgASgCACAAKAIALQAAQQJ0IgBBoKLJAGooAgAgAEGMoskAaigCACABKAIEKAIMEQAACzMAIAEoAgAgACgCAC0AAEECdCIAQcCkyQBqKAIAIABBrKTJAGooAgAgASgCBCgCDBEAAAsmAQF/IwBBEGsiAiQAIAEoAgQaIABBsIvIACABEOQDIAJBEGokAAszACABKAIAIAAoAgAoAgBBAnQiAEHwxckAaigCACAAQczFyQBqKAIAIAEoAgQoAgwRAAALhQkCC38BeyMAQRBrIggkABCFBSILIAEmASAAIQdBACEAIwBBQGoiAyQAQdjJyQAoAgBFBEAQYQsCQAJAAkACQAJAAkACQAJAQeDJyQAoAgBFBEBB4MnJAEF/NgIAIAdB/////wBLDQEgB0EEdCIEQf3///8HTw0BQcjKyQAoAgAhDAJAIARFBEBBBCECDAELIAchACAEEH4iAkUNAwtBGBB+IglFDQIgCUEANgIUIAkgAjYCECAJIAA2AgwgCUEANgIIIAlCgYCAgBA3AgACQCAHQRB2IAdB//8DcUEAR2oiBkUEQEEEIQRBBCEFDAELIAZBAnQiBRB+IgRFDQNBACECAkAgBkEETwRA/QwAAAAAAQAAAAIAAAADAAAAIQ0gBkH8P3EiAiEKIAQhAANAIAAgDf0LAgAgAEEQaiEAIA39DAQAAAAEAAAABAAAAAQAAAD9rgEhDSAKQQRrIgoNAAsgAiAGRg0BCyAEIAJBAnRqIQADQCAAIAI2AgAgAEEEaiEAIAYgAkEBaiICRw0ACwsgBRB+IgVFDQNBACECIAZBBE8EQP0MAAAAAAEAAAACAAAAAwAAACENIAZB/D9xIgIhCiAFIQADQCAAIA39CwIAIABBEGohACAN/QwEAAAABAAAAAQAAAAEAAAA/a4BIQ0gCkEEayIKDQALIAIgBkYNAQsgBSACQQJ0aiEAA0AgACACNgIAIABBBGohACAGIAJBAWoiAkcNAAsLIAMgBjYCOCADIAU2AjQgAyAGNgIwIAMgBjYCLCADIAQ2AiggAyAGNgIkIAMgCTYCPCADQQhqIAwgA0EkahCwAgJAIAMoAggiAEGAgICAeEYNACADKAIgIgQgBCgCAEEBayIFNgIAIAVFBEAgBBD+BQsgAARAIAMoAgwiBEEEaygCACIFQXhxIgIgAEECdCIAQQRBCCAFQQNxIgUbakkNBSAFQQAgAiAAQSdqSxsNBiAEELQCCyADKAIUIgBFDQAgAygCGCIEQQRrKAIAIgVBeHEiAiAAQQJ0IgBBBEEIIAVBA3EiBRtqSQ0GIAVBACACIABBJ2pLGw0HIAQQtAILQcjKyQBByMrJACgCAEEBajYCACAMQQAgByALEN0BEIMKIgRBmOLBAEEFEKwJIgAgDLgQ+AkiBxCECkH40MkALQAADQdB/NDJAEEANgIAQfjQyQBBADoAACAHQYQITwRAIAcQzQcLIABBhAhPBEAgABDNBwtB4MnJAEHgyckAKAIAQQFqNgIAIAtBhAhPBEAgCxDNBwsgCEIANwIEIAggBDYCACADQUBrJAAMCAtB0OzAABD8CgALQfDiwQAQtwgLAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC0H40MkAQQA6AABB/NDJACgCACEAQfzQyQBBADYCACADIAA2AiRBwPjIAEErIANBJGpB1L/BAEGA48EAEJUHAAsgCCgCACAIKAIEIAgoAgggCEEQaiQAC58RAwx/A34CfSMAQRBrIg0kACMAQSBrIgQkAEHYyckAKAIARQRAEGELAkACQAJAAkACfwJAAkBB4MnJACgCAEUEQEHgyckAQX82AgACQAJAQfTJyQAoAgBFDQBB7MnJACgCACIJQYDKyQApAwAiDiAArYUiD0I4hiAPQoD+A4NCKIaEIA9CgID8B4NCGIYgD0KAgID4D4NCCIaEhCAOQgiIQoCAgPgPgyAOQhiIQoCA/AeDhCAOQiiIQoD+A4MgDkI4iISEhELSgaqbq/qC16d/fiIOQjiGIA5CgP4Dg0IohoQgDkKAgPwHg0IYhiAOQoCAgPgPg0IIhoSEIA5CCIhCgICA+A+DIA5CGIhCgID8B4OEIA5CKIhCgP4DgyAOQjiIhISEIA9C2KLR78Kp5b8tfoUiEEI4hiAQQoD+A4NCKIaEIBBCgID8B4NCGIYgEEKAgID4D4NCCIaEhCAQQgiIQoCAgPgPgyAQQhiIQoCA/AeDhCAQQiiIQoD+A4MgEEI4iISEhEH4yckAKQMAIg5Cf4V+Ig9COIYgD0KA/gODQiiGhCAPQoCA/AeDQhiGIA9CgICA+A+DQgiGhIQgD0IIiEKAgID4D4MgD0IYiEKAgPwHg4QgD0IoiEKA/gODIA9COIiEhIQgECAOQjiGIA5CgP4Dg0IohoQgDkKAgPwHg0IYhiAOQoCAgPgPg0IIhoSEIA5CCIhCgICA+A+DIA5CGIhCgID8B4OEIA5CKIhCgP4DgyAOQjiIhISEfoUgEIkiD6dxIQMgD0IZiEL/AINCgYKEiJCgwIABfiEOQejJyQAoAgAiBkEgayECA0AgAyAGaikAACIQIA6FIg9Cf4UgD0KBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIPUEUEQANAIAAgAiAPeqdBA3YgA2ogCXEiBUEFdGsoAgBGDQQgD0IBfSAPgyIPUEUNAAsLIBAgEEIBhoNCgIGChIiQoMCAf4NQRQ0BIAMgCEEIaiIIaiAJcSEDDAALAAtB4OPBABCkCgALIAZBACAFa0EFdGpBBGsoAgAiCigCCCIAQf////8HTw0BIAogAEEBajYCCCAKKAIUBEAgCigCEEEKai8BACIAQf//AXFFBEAgAEEQdAwFCyAAQf8HcSECIABBgIACcSEFIABBgPgBcSIAQYD4AUYEQCAFQRB0IgBBgICA/AdyIAJFDQUaIAAgAkENdHJBgICA/gdyDAULIAVBEHQhBSAARQ0DIABBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAFcgwEC0EAQQBB8OPBABC/BwwEC0HQ7MAAEPwKAAtByOTBABD7CgALIAIgAmdBEGsiAEH//wNxQQhqdEH///8DcSAFQYCAgNgDciAAQRd0a3ILQwAAoD8hEUMAAKA/QwAAgD8gASABQR91IgBzIABrIgJBAXEbIRIgAkECTwRAA0AgEiARIBGUIhGUIBIgAkECcRshEiACQQNLIAJBAXYhAg0ACwtBBBB+IgVFDQC+QwAAgD8gEpUgEiABQQBIG5UhESAFQQA2AgAgBEEANgIQIARCgICAgMAANwIIQQQhC0EBIQhBASEDAkADQCAEQQA2AhwgBEKAgICAwAA3AhQgBSADQQJ0aiEGIAUhAANAIAAoAgAiByAKKAIUIgFPBEAgByABQZjkwQAQvwcACwJAIBECfyAKKAIQIAdBBHRqIglBCmovAQAiAUH//wFxRQRAIAFBEHQMAQsgAUH/B3EhAyABQYCAAnEhAiABQYD4AXEiAUGA+AFGBEAgAkEQdCIBQYCAgPwHciADRQ0BGiABIANBDXRyQYCAgP4HcgwBCyACQRB0IgIgAUENdEGAgID8AHEgA0ENdHJBgICAwANqciABDQAaIAMgA2dBEGsiAUH//wNxQQhqdEH///8DcSACQYCAgNgDciABQRd0a3ILvmBFBEAgCSgCACIDIAMgCS8BDCIBak8NASAEKAIcIgJBAnQhBwNAIAQoAhQgAkYEQCAEQRRqQajkwQAQrAYLIAQoAhggB2ogAzYCACAEIAJBAWoiAjYCHCADQQFqIQMgB0EEaiEHIAFBAWsiAQ0ACwwBCyAEKAIIIAxGBEAgBEEIakG45MEAEKwGIAQoAgwhCwsgCyAMQQJ0aiAHNgIAIAQgDEEBaiIMNgIQCyAAQQRqIgAgBkcNAAsCQCAIBEAgBUEEaygCACIAQXhxIgIgCEECdCIBQQRBCCAAQQNxIgAbakkNASAAQQAgAiABQSdqSxsNBiAFELQCCyAEKAIYIQUgBCgCFCEIIAQoAhwiA0UNAgwBCwsMAgsgDBD3CSELIAQoAgwhACAEKAIIIQkgDARAIAxBAnQhB0EAIQMgACECA0AgCyUBIAMgAigCABAcIANBAWohAyACQQRqIQIgB0EEayIHDQALCyAJBEAgAEEEaygCACIBQXhxIgYgCUECdCICQQRBCCABQQNxIgEbakkNAiABQQAgBiACQSdqSxsNAyAAELQCCxCDCiIGQYDkwQBBBxCsCSIAIAsQhAoCQEH40MkALQAARQRAQfzQyQBBADYCAEH40MkAQQA6AAAgC0GECE8EQCALEM0HCyAAQYQITwRAIAAQzQcLIAgEQCAFQQRrKAIAIgBBeHEiAiAIQQJ0IgFBBEEIIABBA3EiABtqSQ0EIABBACACIAFBJ2pLGw0CIAUQtAILIAogCigCCEEBazYCCCANQgA3AgQgDSAGNgIAQeDJyQBB4MnJACgCAEEBajYCACAEQSBqJAAMBQtB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgBCAANgIUQcD4yABBKyAEQRRqQdS/wQBBiOTBABCVBwALDAILAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIA0oAgAgDSgCBCANKAIIIA1BEGokAAvhBQELfyMAQRBrIgUkABCFBSIGIAEmASMAQbADayICJAACQAJAAkACQAJAAkAgAARAIABBCGsiByAHKAIAQQFqIgM2AgAgA0UNASAAKAIAIgRB/////wdPDQIgACAEQQFqNgIAQQIhAwJAIAYQhQsiCkUEQCACQeQBaiAGELwBIAIoAuQBIQQgAi0AgAIiA0ECRgRAQQEhAwwCCyACQSBqIAJB+AFqKQIANwMAIAJBDmogAkGDAmotAAA6AAAgAiAC/QAC6AH9CwMQIAIgAi8AgQI7AQwLIAJB8AFqIAJBGGr9AAMA/QsCACACQYMCaiACQQ5qLQAAOgAAIAIgBDYC5AEgAiACKQMQNwLoASACIAM6AIACIAIgAi8BDDsAgQIgAkEoaiAAQQRqQQAgAkHkAWoiBBCSAQJAIAIoAihBAkYEQCACKAIsIQMgAkEANgKoAyACQoCAgIAQNwKgAyACQcz1wAA2AugBIAJCoICAgA43AuwBIAIgAkGgA2o2AuQBIAMgBBDZBA0GIAIoAqADIQggAigCpAMiCyACKAKoAxCsCSEEIAgEQCALQQRrKAIAIglBeHEiDEEEQQggCUEDcSIJGyAIakkNCCAJQQAgDCAIQSdqSxsNCSALELQCCyADIAMoAgAoAgARAwBBASEDIApFDQIgBkGDCEsNAQwCCyACQeQBaiIDIAJBKGpBvAH8CgAAIAMQ3gEhBEEAIQMgCkUgBkGECElyDQELIAYQzQcLIAAgACgCAEEBazYCACAHIAcoAgBBAWsiADYCACAARQRAIAcQmAcLIAUgAzYCCCAFIARBACADGzYCBCAFQQAgBCADGzYCACACQbADaiQADAYLEN4KCwALEOAKAAtBjJvGAEE3IAJBrwNqQeT1wABBxJvGABCVBwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyAFKAIAIAUoAgQgBSgCCCAFQRBqJAAL4QUBC38jAEEQayIFJAAQhQUiBiABJgEjAEGwA2siAiQAAkACQAJAAkACQAJAIAAEQCAAQQhrIgcgBygCAEEBaiIDNgIAIANFDQEgACgCACIEQf////8HTw0CIAAgBEEBajYCAEECIQMCQCAGEIULIgpFBEAgAkHkAWogBhC8ASACKALkASEEIAItAIACIgNBAkYEQEEBIQMMAgsgAkEgaiACQfgBaikCADcDACACQQ5qIAJBgwJqLQAAOgAAIAIgAv0AAugB/QsDECACIAIvAIECOwEMCyACQfABaiACQRhq/QADAP0LAgAgAkGDAmogAkEOai0AADoAACACIAQ2AuQBIAIgAikDEDcC6AEgAiADOgCAAiACIAIvAQw7AIECIAJBKGogAEEEakEBIAJB5AFqIgQQkgECQCACKAIoQQJGBEAgAigCLCEDIAJBADYCqAMgAkKAgICAEDcCoAMgAkHM9cAANgLoASACQqCAgIAONwLsASACIAJBoANqNgLkASADIAQQ2QQNBiACKAKgAyEIIAIoAqQDIgsgAigCqAMQrAkhBCAIBEAgC0EEaygCACIJQXhxIgxBBEEIIAlBA3EiCRsgCGpJDQggCUEAIAwgCEEnaksbDQkgCxC0AgsgAyADKAIAKAIAEQMAQQEhAyAKRQ0CIAZBgwhLDQEMAgsgAkHkAWoiAyACQShqQbwB/AoAACADEN4BIQRBACEDIApFIAZBhAhJcg0BCyAGEM0HCyAAIAAoAgBBAWs2AgAgByAHKAIAQQFrIgA2AgAgAEUEQCAHEJgHCyAFIAM2AgggBSAEQQAgAxs2AgQgBUEAIAQgAxs2AgAgAkGwA2okAAwGCxDeCgsACxDgCgALQYybxgBBNyACQa8DakHk9cAAQcSbxgAQlQcAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAsgBSgCACAFKAIEIAUoAgggBUEQaiQAC8sDAQN/IwBBEGsiAyQAQQghBAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAAoAgAiBUGAgICAeHMgBUEAThtBAWsOFQECAwQFBgcICQoLDA0ODxQUEBESEwALIAMgAC0ABDoAASADQQA6AAAMFgsgAyAAMQAENwMIDBMLIAMgADMBBDcDCAwSCyADIAA1AgQ3AwgMEQsgAyAAKQMINwMIDBALIAMgADAABDcDCAwQCyADIAAyAQQ3AwgMDwsgAyAANAIENwMIDA4LIAMgACkDCDcDCAwNCyADIAAqAgS7OQMIIANBAzoAAAwNCyADIAArAwg5AwggA0EDOgAADAwLIAMgACgCBDYCBCADQQQ6AAAMCwsgAyAAKQMINwIEIANBBToAAAwKCyADIAApAgQ3AgQgA0EFOgAADAkLIAMgACkDCDcCBCADQQY6AAAMCAsgAyAAKQIENwIEIANBBjoAAAwHCyADQQc6AAAMBgsgA0EJOgAADAULIANBCjoAAAwEC0ELIQQLIAMgBDoAAAwCCyADQQE6AAAMAQsgA0ECOgAACyADIAEgAhCUByADQRBqJAALMAAgASgCACAALQAAQQJ0IgBB6PTBAGooAgAgAEHA9MEAaigCACABKAIEKAIMEQAACzAAIAEoAgAgAC0AAEECdCIAQfz1wQBqKAIAIABByPXBAGooAgAgASgCBCgCDBEAAAswACABKAIAIAAtAABBAnQiAEG4l8kAaigCACAAQfCWyQBqKAIAIAEoAgQoAgwRAAALMAAgASgCACAALAAAQQJ0IgBBxJjJAGooAgAgAEH8l8kAaigCACABKAIEKAIMEQAACzAAIAEoAgAgACwAAEECdCIAQeSZyQBqKAIAIABBjJnJAGooAgAgASgCBCgCDBEAAAswACABKAIAIAAtAABBAnQiAEHcnskAaigCACAAQcCeyQBqKAIAIAEoAgQoAgwRAAALMAAgASgCACAALQAAQQJ0IgBBuKvJAGooAgAgAEHwqskAaigCACABKAIEKAIMEQAACzAAIAEoAgAgACwAAEECdCIAQcSsyQBqKAIAIABB/KvJAGooAgAgASgCBCgCDBEAAAswACABKAIAIAAsAABBAnQiAEHkrckAaigCACAAQYytyQBqKAIAIAEoAgQoAgwRAAALMAAgASgCACAALAAAQQJ0IgBBmLTJAGooAgAgAEH8s8kAaigCACABKAIEKAIMEQAACzAAIAEoAgAgAC0AAEECdCIAQcy1yQBqKAIAIABBpLTJAGooAgAgASgCBCgCDBEAAAupAgIBfwFvAn8jAEEwayINJABB8MvJACgCAEUEQBD+AwsCQEH0y8kAKAIARQRAQfTLyQBBfzYCAEGYzMkAQQA2AgAgDSAMQQBHOgAgIA1BgICA/AM2AhwgDUKAgID8g4CAwD83AhQgDSALOAIQIA0gCjgCDCANQoCAgICAgIDAPzcCBCAJQQJ0IglBgMzJACgCACIMSw0BQfzLyQAoAgAgDSACOAIsIA0gATgCKCANIAA4AiQgCUGQzMkAIA1BJGogA/0TIAT9IAEgBSAGIAcgCCANQQRqELADQZTMyQAoAgBBmMzJACgCABCqCUH0y8kAQfTLyQAoAgBBAWo2AgAgDUEwaiQADAILQdDswAAQ/AoACyAJIAxBqPPBABCiCgALIgklASAJEM0HC+4FAQt/IwBBEGsiByQAIwBBMGsiASQAAkACQAJAAkACQCAABEAgAEEIayIFKAIAQQFHDQEgACgCECEDIAAoAgwhCCAAKAIIIQQgACgCBCECIAVBADYCAAJAIAVBf0YNACAAQQRrIgYgBigCAEEBayIGNgIAIAYNACAAQQxrKAIAIgBBeHEiBkEgQSQgAEEDcSIAG0kNBCAAQQAgBkHEAE8bDQUgBRC0AgsCQCACIAQoAhQRBAAiAARAIAFBADYCGCABQoCAgIAQNwIQIAFBzPXAADYCICABQqCAgIAONwIkIAEgAUEQajYCHCAAIAFBHGoQ2QQNBCABKAIQIQUgASgCFCIKIAEoAhgQrAkhBiAFBEAgCkEEaygCACIJQXhxIgtBBEEIIAlBA3EiCRsgBWpJDQYgCUEAIAsgBUEnaksbDQcgChC0AgsgACAAKAIAKAIAEQMAIAQoAgAiAARAIAIgABEDAAsgBCgCBCIABEAgAkEEaygCACIEQXhxIgVBBEEIIARBA3EiBBsgAGpJDQYgBEEAIAUgAEEnaksbDQcgAhC0AgsgAygCACIABEAgCCAAEQMACyADKAIEIgAEQCAIQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyAAakkNBiACQQAgAyAAQSdqSxsNByAIELQCC0EBIQAMAQsgAUEIaiAIIAIgBCADKAIMEQYAIAEoAgwhBiABKAIIIQAgAygCBCICRQ0AIAhBBGsoAgAiA0F4cSIEQQRBCCADQQNxIgMbIAJqSQ0EIANBACAEIAJBJ2pLGw0FIAgQtAILIAcgAEEBcSIANgIIIAcgBkEAIAAbNgIEIAdBACAGIAAbNgIAIAFBMGokAAwFCxDeCgALQcjhwQBBPxDfCgALQYybxgBBNyABQS9qQeT1wABBxJvGABCVBwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyAHKAIAIAcoAgQgBygCCCAHQRBqJAALtgYBBn8jAEEQayIFJAAjAEFAaiIDJABB2MnJACgCAEUEQBBhCwJAAkACQAJAAkACQAJAAkBB4MnJACgCAEUEQEHgyckAQX82AgAgAEH/////AEsNASAAQQR0IgFB/f///wdPDQFByMrJACgCACEGAkAgAUUEQEEEIQQMAQsgACECIAEQfiIERQ0DC0EYEH4iAUUNAiABQQA2AhQgASAENgIQIAEgAjYCDCABQQA2AgggAUKBgICAEDcCAAJAIABBEHYgAEH//wNxQQBHaiIARQRAQQQhBEEEIQIMAQsgAEECdCICEH4iBEUNAyACEH4iAkUNAwsgA0EANgI4IAMgAjYCNCADIAA2AjAgA0EANgIsIAMgBDYCKCADIAA2AiQgAyABNgI8IANBCGogBiADQSRqELACAkAgAygCCCIAQYCAgIB4Rg0AIAMoAiAiAiACKAIAQQFrIgE2AgAgAUUEQCACEP4FCyAABEAgAygCDCICQQRrKAIAIgFBeHEiBCAAQQJ0IgBBBEEIIAFBA3EiARtqSQ0FIAFBACAEIABBJ2pLGw0GIAIQtAILIAMoAhQiAEUNACADKAIYIgJBBGsoAgAiAUF4cSIEIABBAnQiAEEEQQggAUEDcSIBG2pJDQYgAUEAIAQgAEEnaksbDQcgAhC0AgtByMrJAEHIyskAKAIAQQFqNgIAEIMKIgFBmOLBAEEFEKwJIgAgBrgQ+AkiAhCECkH40MkALQAADQdB/NDJAEEANgIAQfjQyQBBADoAACACQYQITwRAIAIQzQcLIABBhAhPBEAgABDNBwsgBUIANwIEIAUgATYCAEHgyckAQeDJyQAoAgBBAWo2AgAgA0FAayQADAgLQdDswAAQ/AoAC0GI4sEAELcICwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAtB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgAyAANgIkQcD4yABBKyADQSRqQdS/wQBBoOLBABCVBwALIAUoAgAgBSgCBCAFKAIIIAVBEGokAAuBDAIDfgh/IwBBEGsiCCQAIwBBQGoiBiQAQdjJyQAoAgBFBEAQYQsCQAJAAkACQAJAAkACQAJAAkACQEHgyckAKAIARQRAQeDJyQBBfzYCAEH0yckAKAIARQ0IQezJyQAoAgAiB0GAyskAKQMAIgEgAK2FIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIRC0oGqm6v6gtenf34iAUI4hiABQoD+A4NCKIaEIAFCgID8B4NCGIYgAUKAgID4D4NCCIaEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhCACQtii0e/CqeW/LX6FIgFCOIYgAUKA/gODQiiGhCABQoCA/AeDQhiGIAFCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIRB+MnJACkDACICQn+FfiIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISEIAEgAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhH6FIAGJIgGncSEEIAFCGYhC/wCDQoGChIiQoMCAAX4hA0HoyckAKAIAIglBIGshCgNAAkAgBCAJaikAACICIAOFIgFCf4UgAUKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIBUEUEQANAIAAgCiABeqdBA3YgBGogB3EiC0EFdGsoAgBGDQIgAUIBfSABgyIBUEUNAAsLIAIgAkIBhoNCgIGChIiQoMCAf4NQRQ0KIAQgBUEIaiIFaiAHcSEEDAELCyAJQQAgC2tBBXRqIgRBBGsiBygCACIAIAAoAgBBAWoiADYCACAARQ0BIARBHGsoAgAiAEH/////A0sNAiAAQQJ0IgVB/f///wdPDQIgBygCACEKAkAgBUUEQEEEIQVBACEADAELIAUQfiIFRQ0CCyAEQRBrKAIAIgRB/////wNLDQMgBEECdCIHQf3///8HTw0DAkAgB0UEQEEEIQdBACEEDAELIAcQfiIHRQ0CC0HIyskAQcjKyQAoAgAiCUEBajYCACAGQQA2AjggBiAHNgI0IAYgBDYCMCAGQQA2AiwgBiAFNgIoIAYgADYCJCAGIAo2AjwgBkEIaiAJIAZBJGoQsAICQCAGKAIIIgBBgICAgHhGDQAgBigCICIEIAQoAgBBAWsiBTYCACAFRQRAIAQQ/gULIAAEQCAGKAIMIgRBBGsoAgAiBUF4cSIHIABBAnQiAEEEQQggBUEDcSIFG2pJDQYgBUEAIAcgAEEnaksbDQcgBBC0AgsgBigCFCIARQ0AIAYoAhgiBEEEaygCACIFQXhxIgcgAEECdCIAQQRBCCAFQQNxIgUbakkNByAFQQAgByAAQSdqSxsNCCAEELQCCxCDCiIFQZjiwQBBBRCsCSIAIAm4EPgJIgQQhApB+NDJAC0AAA0JQfzQyQBBADYCAEH40MkAQQA6AAAgBEGECE8EQCAEEM0HCyAAQYQITwRAIAAQzQcLIAhCADcCBCAIIAU2AgBB4MnJAEHgyckAKAIAQQFqNgIAIAZBQGskAAwKC0HQ7MAAEPwKCwALQcDiwQAQtwgAC0HQ4sEAELcIAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC0Gw4sEAEKQKAAtB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgBiAANgIkQcD4yABBKyAGQSRqQdS/wQBB4OLBABCVBwALIAgoAgAgCCgCBCAIKAIIIAhBEGokAAvuAwEKfyMAQRBrIgMkACMAQaADayIBJAACQAJAAkACQAJAAkAgAARAIABBCGsiBCAEKAIAQQFqIgI2AgAgAkUNASAAKAIAIgJB/////wdPDQIgACACQQFqNgIAIAFBCGogAEEEakEAEJgBAn8gASgCCCIJQQJGBEAgASgCDCECIAFBADYCmAMgAUKAgICAEDcCkAMgAUHM9cAANgLQASABQqCAgIAONwLUASABIAFBkANqNgLMASACIAFBzAFqENkEDQUgASgCkAMhBSABKAKUAyIIIAEoApgDEKwJIQcgBQRAIAhBBGsoAgAiBkF4cSIKQQRBCCAGQQNxIgYbIAVqSQ0HIAZBACAKIAVBJ2pLGw0IIAgQtAILIAIgAigCACgCABEDAEEADAELIAFBzAFqIgIgAUEIakHEAfwKAAAgAhDcAQshAiAAIAAoAgBBAWs2AgAgBCAEKAIAQQFrIgA2AgAgAEUEQCAEEJgHCyADIAc2AgQgAyACNgIAIAMgCUECRjYCCCABQaADaiQADAYLEN4KCwALEOAKAAtBjJvGAEE3IAFBnwNqQeT1wABBxJvGABCVBwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyADKAIAIAMoAgQgAygCCCADQRBqJAAL5AEBBX8jAEEQayIBJAAjAEEQayIDJAACQAJAAkAgAARAIABBCGsiBCAEKAIAQQFqIgI2AgAgAkUNASAAKAIAIgJB/////wdPDQIgACACQQFqNgIAIANBCGogAEEEahCvBSADKAIMIQIgAygCCCEFIAAgACgCAEEBazYCACAEIAQoAgBBAWsiADYCACAARQRAIAQQmAcLIAEgBUEBcSIANgIIIAEgAkEAIAAbNgIEIAFBACACIAAbNgIAIANBEGokAAwDCxDeCgsACxDgCgALIAEoAgAgASgCBCABKAIIIAFBEGokAAuaBQEKfyMAQRBrIgMkACMAQbADayIBJAACQAJAAkACQAJAAkAgAARAIABBCGsiBSAFKAIAQQFqIgI2AgAgAkUNASAAKAIAIgJB/////wdPDQIgACACQQFqNgIAIAAtAFwiAkECRwRAIAFBIGogAEHYAGooAgA2AgAgAUEYaiAAQdAAaikCADcDACABQQZqIABB3wBqLQAAOgAAIAEgAP0AAkD9CwMIIAEgAC8AXTsBBAsgAUH4AWogAUEgaigCADYCACABQfABaiABQRhqKQMANwMAIAFB/wFqIAFBBmotAAA6AAAgASAB/QADCP0LA+ABIAEgAjoA/AEgASABLwEEOwD9ASABQSRqIABBBGpBACABQeABaiIEEFYCfyABKAIkIglBAkYEQCABKAIoIQIgAUEANgKoAyABQoCAgIAQNwKgAyABQcz1wAA2AuQBIAFCoICAgA43AugBIAEgAUGgA2o2AuABIAIgBBDZBA0FIAEoAqADIQQgASgCpAMiCCABKAKoAxCsCSEHIAQEQCAIQQRrKAIAIgZBeHEiCkEEQQggBkEDcSIGGyAEakkNByAGQQAgCiAEQSdqSxsNCCAIELQCCyACIAIoAgAoAgARAwBBAAwBCyABQeABaiICIAFBJGpBvAH8CgAAIAIQ3gELIQIgACAAKAIAQQFrNgIAIAUgBSgCAEEBayIANgIAIABFBEAgBRCXBwsgAyAHNgIEIAMgAjYCACADIAlBAkY2AgggAUGwA2okAAwGCxDeCgsACxDgCgALQYybxgBBNyABQa8DakHk9cAAQcSbxgAQlQcAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAsgAygCACADKAIEIAMoAgggA0EQaiQAC+QBAQV/IwBBEGsiASQAIwBBEGsiAyQAAkACQAJAIAAEQCAAQQhrIgQgBCgCAEEBaiICNgIAIAJFDQEgACgCACICQf////8HTw0CIAAgAkEBajYCACADQQhqIABBBGoQnAQgAygCDCECIAMoAgghBSAAIAAoAgBBAWs2AgAgBCAEKAIAQQFrIgA2AgAgAEUEQCAEEJcHCyABIAVBAXEiADYCCCABIAJBACAAGzYCBCABQQAgAiAAGzYCACADQRBqJAAMAwsQ3goLAAsQ4AoACyABKAIAIAEoAgQgASgCCCABQRBqJAAL7QMBCn8jAEEQayIDJAAjAEGgA2siASQAAkACQAJAAkACQAJAIAAEQCAAQQhrIgQgBCgCAEEBaiICNgIAIAJFDQEgACgCACICQf////8HTw0CIAAgAkEBajYCACABQQhqIABBBGpBABBbAn8gASgCCCIJQQJGBEAgASgCDCECIAFBADYCmAMgAUKAgICAEDcCkAMgAUHM9cAANgLQASABQqCAgIAONwLUASABIAFBkANqNgLMASACIAFBzAFqENkEDQUgASgCkAMhBSABKAKUAyIIIAEoApgDEKwJIQcgBQRAIAhBBGsoAgAiBkF4cSIKQQRBCCAGQQNxIgYbIAVqSQ0HIAZBACAKIAVBJ2pLGw0IIAgQtAILIAIgAigCACgCABEDAEEADAELIAFBzAFqIgIgAUEIakHEAfwKAAAgAhDcAQshAiAAIAAoAgBBAWs2AgAgBCAEKAIAQQFrIgA2AgAgAEUEQCAEEJcHCyADIAc2AgQgAyACNgIAIAMgCUECRjYCCCABQaADaiQADAYLEN4KCwALEOAKAAtBjJvGAEE3IAFBnwNqQeT1wABBxJvGABCVBwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyADKAIAIAMoAgQgAygCCCADQRBqJAAL7QMBCn8jAEEQayIDJAAjAEGgA2siASQAAkACQAJAAkACQAJAIAAEQCAAQQhrIgQgBCgCAEEBaiICNgIAIAJFDQEgACgCACICQf////8HTw0CIAAgAkEBajYCACABQQhqIABBBGpBARBbAn8gASgCCCIJQQJGBEAgASgCDCECIAFBADYCmAMgAUKAgICAEDcCkAMgAUHM9cAANgLQASABQqCAgIAONwLUASABIAFBkANqNgLMASACIAFBzAFqENkEDQUgASgCkAMhBSABKAKUAyIIIAEoApgDEKwJIQcgBQRAIAhBBGsoAgAiBkF4cSIKQQRBCCAGQQNxIgYbIAVqSQ0HIAZBACAKIAVBJ2pLGw0IIAgQtAILIAIgAigCACgCABEDAEEADAELIAFBzAFqIgIgAUEIakHEAfwKAAAgAhDcAQshAiAAIAAoAgBBAWs2AgAgBCAEKAIAQQFrIgA2AgAgAEUEQCAEEJcHCyADIAc2AgQgAyACNgIAIAMgCUECRjYCCCABQaADaiQADAYLEN4KCwALEOAKAAtBjJvGAEE3IAFBnwNqQeT1wABBxJvGABCVBwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyADKAIAIAMoAgQgAygCCCADQRBqJAAL+FMDHX8EfgF8IwBBEGsiGiQAEIUFIgIgACYBIwBB8AdrIgEkACABQZwBaiACIh0Q4gYgASgCoAEhHAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAKkASIDQQdNBEBBgQghAgwBCyABIBwoAAAiCzYCmAICfCALQdKCkYIDRwRAIAFBATYC7AUgAUGwgsgANgLoBSABQQE2AtwFIAFBqILIADYC2AUgAUEBNgLkBSABIAFBmAJqrUKAgICAoAOENwOwBCABIAFBsARqNgLgBSABQZwCaiICIAFB2AVqEOYGQQMhBCACEMMHIQNEAAAAAAAAAAAMAQsgHCgABCINQQhqIgsgA0sEQEECIQREAAAAAAAAAAAMAQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIA1BeEkEQEEAIQMgAUEANgKoAyABIA02AqQDIAEgHEEIaiIENgKgAyABQYABOgCsAyABQQA2ApwDIAFCgICAgBA3ApQDAkACQCABQShqIAQgDSANBH8DQCADIARqLQAAIgJBCWsiC0EXS0EBIAt0QZOAgARxRXINAiANIANBAWoiA0cNAAsgASANNgKoAyANQQFqBUEBCyICIA0gAiANSRsQhgIgASgCLCELIAEoAighAkEUEH4iAw0BDB0LIAEgAzYCqAMCQCACQdsARwRAIAJB+wBGDQEgAUGUA2ogAUHvB2pBjMfHABD7ASEDDA4LIAFB/wA6AKwDIAEgA0EBajYCqAMgAUEBOgDwBiABIAFBlANqNgLsBiABQdgFaiABQewGahDHAyABLQDYBUEBRgRAIAEoAtwFIQNBAiEEDAwLAkACQAJAAkACQAJAAkACQAJAAkACQCABLQDZBUEBRgRAIAFBOGogASgC7AYQvQMgASgCPCELIAEoAjhBAXEEQCALIQNBAiEEDBgLIAFB2AVqIAFB7AZqEMcDIAEtANgFQQFGBEAgASgC3AUhA0ECIQQMGAsgAS0A2QVBAUcNAyABKALsBhD1ASIDDQEgAUHYBWogAUHsBmoQxwMgAS0A2AVBAUcNAiABKALcBSEDQQIhBAwXC0EAQYiJyAAQkAchAwtBAiEEDBULIAEtANkFQQFHDQIgAUHYBWogASgC7AYQ3QMgASgC2AVBAUcNASABKALcBSEDQQIhBAwUC0EBQYiJyAAQkAchA0ECIQQMEwsgASkD4AUhICABQdgFaiABQewGahDHAyABLQDYBUEBRgRAIAEoAtwFIQNBAiEEDBMLIAEtANkFQQFHDQIgAUHYBWogASgC7AYQuQIgASgC2AUiCkECRw0BIAEoAtwFIQNBAiEEDBILQQJBiInIABCQByEDQQIhBAwRCyABKALcBSEIIAFB2AVqIgMgAUHsBmoQxwMgAS0A2AUNDyABLQDZBUEBRw0CIAMgASgC7AYQjgIgAS0A2AVBAUcNASABKALcBSEDQQIhBAwQC0EDQYiJyAAQkAchA0ECIQQMDwsgAS0A2QUhAiABQdgFaiABQewGahDHAyABLQDYBUEBRgRAIAEoAtwFIQNBAiEEDA8LIAEtANkFQQFHDQEgAUHYBWogASgC7AYQuQJBAiEEIAEoAtgFIgZBAkYEQCABKALcBSEDDA8LIAEoAtwFIQ4gAUHYBWohDyMAQRBrIgkkACAJIAFB7AZqIgMQxwMCQCAJLQAAQQFGBEAgDyAJKAIENgIIIA9CAjcDAAwBCyAJLQABRQRAIA9CADcDAAwBCyAJIAMoAgAQ3QMgCSgCAEEBRgRAIA8gCSgCBDYCCCAPQgI3AwAMAQsgDyAJKQMINwMIIA9CATcDAAsgCUEQaiQAIAEoAuAFIQ8gASkD2AUiH0ICUg0CIA8hAwwOC0EEQYiJyAAQkAchA0ECIQQMDQtBBUGIicgAEJAHIQNBAiEEDAwLAkACQCAfp0EBcQRAIAE1AuQFIR8gAUHYBWohByMAQRBrIgkkACAJQQRqIAFB7AZqIgMQxwMCQCAJLQAEQQFGBEAgByAJKAIINgIEIAdBgYCAgHg2AgAMAQsgCS0ABUUEQCAHQYCAgIB4NgIADAELIAlBBGogAygCABCEASAJKAIEQYCAgIB4RgRAIAcgCSgCCDYCBCAHQYGAgIB4NgIADAELIAcgCSkCBDcCACAHQQhqIAlBDGooAgA2AgALIAlBEGokACABKALcBSEDIAEoAtgFIgdBgICAgHhrDgIBDgILQQZBiInIABCQByEDDA0LQQdBiInIABCQByEDDAwLIAEgASgC4AU2AvwGIAEgAzYC+AYgASAHNgL0BiABQdgFaiIJIQcjAEFAaiIRJAAgEUEEaiABQewGaiIDEMcDAkAgES0ABEEBRgRAIAcgESgCCDYCBCAHQQQ2AgAMAQsgES0ABUUEQCAHQQM2AgAMAQsgEUEEaiADKAIAEJMBIBEoAgRBA0YEQCAHIBEoAgg2AgQgB0EENgIADAELIAcgEf0AAgT9CwIAIAdBOGogEUE8aigCADYCACAHQTBqIBFBNGopAgA3AgAgB0EgaiARQSRq/QACAP0LAgAgB0EQaiARQRRq/QACAP0LAgALIBFBQGskACABKALcBSEHIAEoAtgFIhdBBEYNCCABQbAHaiABQZAGaigCADYCACABQaAHaiABQYAGav0AAgD9CwMAIAFBkAdqIAFB8AVq/QACAP0LAwAgASAB/QAC4AX9CwOABwJAAkACQAJAIBdBA0cEQCMAQRBrIhMkACATQQhqIAMQxwMCQCATLQAIQQFGBEAgCSATKAIMNgIEIAlBAzYCAAwBCyATLQAJRQRAIAlBAjYCAAwBCyATQQhqIAMoAgAQwQQgEygCCCIDQQJGBEAgCSATKAIMNgIEIAlBAzYCAAwBCyAJIBMoAgw2AgQgCSADNgIACyATQRBqJAAgASgC3AUiGyEDIAEoAtgFIhNBAmsOAgIOAQtBCEGIicgAEJAHIQMMDQsgAUHYBWohBSMAQRBrIgkkACAJQQRqIAFB7AZqIgMQxwMCQCAJLQAEQQFGBEAgBSAJKAIINgIEIAVBgoCAgHg2AgAMAQsgCS0ABUUEQCAFQYGAgIB4NgIADAELIAlBBGogAygCABD4AiAJKAIEQYGAgIB4RgRAIAUgCSgCCDYCBCAFQYKAgIB4NgIADAELIAUgCSkCBDcCACAFQQhqIAlBDGooAgA2AgALIAlBEGokACABKALcBSEDIAEoAtgFIgVB/////wdqDgICDAELQQlBiInIABCQByEDDAsLIA+tIB9CIIaEIR8gASgC4AUhECABQZgFaiABQfwGaigCADYCACABQbAFaiABQZAHav0AAwD9CwMAIAFBwAVqIAFBoAdq/QADAP0LAwAgAUHQBWogAUGwB2ooAgA2AgAgASABKQL0BjcDkAUgASAB/QADgAf9CwOgBSADIRQgCCEDIAohBAwMC0EKQYiJyAAQkAchAwwJCyABQf8AOgCsAyABIANBAWo2AqgDIAFBAToA+AYgASABQZQDajYC9AYgAUHgBWohFkGBgICAeCEXQYCAgIB4IQVBAiEYQQMhD0ECIRJBAyERQQIhGQNAIAUhByAEIQ4gBiELIAFB2AVqIgIgAUH0BmoQ5wIgAS0A2AVBAUYNAwJ/AkACQAJAAkACQAJAIAEtANkFQQFGBEAgASgC9AYiDEEANgIIIAwgDCgCFEEBajYCFCACIAxBDGogDBCPAiABKALcBSECIAEoAtgFQQJGDQwCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAuAFQQRrDgoDAAUBGgQaBhoCGgsgAkGyh8gAQQUQkAhFDQggAkGbiMgAQQUQkAgNGSAZQQJGDQlBm4jIAEEFENEHIQIMHwsgAkGQiMgAQQcQkAhFDQUgAkGgiMgAQQcQkAhFDQkgAkGg28cAQQcQkAgNGCAXQYGAgIB4Rg0RQaDbxwBBBxDRByEDIAchCCAXQYCAgIB4ckGAgICAeEYNICAUIBdBARDWBwwgCyACQbCIyABBDRCQCEUNCiACQcOIyABBDRCQCA0XIA9BA0YNDEHDiMgAQQ0Q0QchAgwdCyACKAAAQfTywasGRg0EDBYLIAJBp4jIAEEJEJAIDRUgEkECRg0HQaeIyABBCRDRByECDBsLIAJBvYjIAEEGEJAIDRQgB0GAgICAeEYNCEG9iMgAQQYQ0QchAgwaCyACQdCIyABBCxCQCA0TIBhBAkYNCUHQiMgAQQsQ0QchAgwZCyAIBEBBkIjIAEEHENEHIQIMGQsgDCgCDCEEAn8CQAJAAkAgDCgCFCICIAwoAhAiBUkEQANAAkAgAiAEai0AAEEJaw4yAAADAwADAwMDAwMDAwMDAwMDAwMDAwMAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwUDCyAMIAJBAWoiAjYCFCACIAVHDQALIAUhAgsgAUHIAGogBCAFIAJBAWoiAiAFIAIgBUkbEIYCIAEoAkwhBCABKAJIIQJBFBB+IgpFDTUgCkEDNgIADAELIAFBQGsgBCAFIAJBAWoiAiAFIAIgBUkbEIYCIAEoAkQhBCABKAJAIQJBFBB+IgpFDTQgCkEGNgIACyAKIAI2AgwgCiAENgIQQQEMAQsgDCACQQFqNgIUIAFB0ABqIAwQvQMgASgCVCEKIAEoAlALQQEhCCALIQYgDiEEIAchBUEBcUUNFCAKIQIMGAsgCQ0MIAwoAgwhBgJAAkAgDCgCFCICIAwoAhAiBUkEQANAAkAgAiAGai0AAEEJaw4yAAADAwADAwMDAwMDAwMDAwMDAwMDAwMAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIDCyAMIAJBAWoiAjYCFCACIAVHDQALIAUhAgsgAUHgAGogBiAFIAJBAWoiAiAFIAIgBUkbEIYCIAEoAmQhAyABKAJgIQRBFBB+IgJFDTIgAkEDNgIADAELIAFB2ABqIAYgBSACQQFqIgIgBSACIAVJGxCGAiABKAJcIQMgASgCWCEEQRQQfiICRQ0xIAJBBjYCAAsgAiAENgIMIAIgAzYCEAwXCyAhUEUEQEGyh8gAQQUQ0QchAgwXCyABQdgFaiAMEN8FIAEpA+AFIR9CASEhIAEoAtgFQQFHDRIMFQsgAUHYBWogDBDgBSABKALcBSEDIAEoAtgFIhlBAkcNESADIQIMFQsgEUEDRwRAQaCIyABBBxDRByECDBULIAFB2AVqIAwQ4QUgAS0A2QUhESABLQDYBUEBRw0QDBMLIAFB2AVqIAwQ4AUgASgC3AUhGyABKALYBSISQQJHDQ8gGyECDBMLIB5QRQRAQbCIyABBDRDRByECDBMLIAFB2AVqIAwQ3wUgASkD4AUhIEIBIR4gASgC2AVBAUcNDgwRCyAMKAIMIQYCQAJAAkACQCAMKAIUIgIgDCgCECIFSQRAA0ACQCACIAZqLQAAQQlrDjIAAAMDAAMDAwMDAwMDAwMDAwMDAwMDAwADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBQMLIAwgAkEBaiICNgIUIAIgBUcNAAsgBSECCyABQYABaiAGIAUgAkEBaiICIAUgAiAFSRsQhgIgASgChAEhAyABKAKAASECQRQQfiIERQ0uIARBAzYCAAwBCyABQfgAaiAGIAUgAkEBaiICIAUgAiAFSRsQhgIgASgCfCEDIAEoAnghAkEUEH4iBEUNLSAEQQY2AgALIAQgAjYCDCAEIAM2AhAMAQsgDCACQQFqNgIUIAFB2AVqIAwQhAEgASgC4AUhBiABKALcBSEEIAEoAtgFIgVBgICAgHhHDQ4LQYCAgIB4IQggBCECDBILIAwoAgwhBgJAAkAgDCgCFCICIAwoAhAiBUkEQANAAkAgAiAGai0AAEEJaw4yAAADAwADAwMDAwMDAwMDAwMDAwMDAwMAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQDCyAMIAJBAWoiAjYCFCACIAVHDQALIAUhAgsgAUHwAGogBiAFIAJBAWoiAiAFIAIgBUkbEIYCIAEoAnQhAyABKAJwIQRBFBB+IgJFDSsgAkEDNgIADAsLIAFB6ABqIAYgBSACQQFqIgIgBSACIAVJGxCGAiABKAJsIQMgASgCaCEEQRQQfiICRQ0qIAJBBjYCAAwKCyAMIAJBAWo2AhQgAUHYBWogDBCTASABKALcBSEQIAEoAtgFIg9BA0cNASAQIQIMEAsgDCgCDCEGAkACQAJAIAwoAhQiAiAMKAIQIgVJBEADQAJAIAIgBmotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgDCACQQFqIgI2AhQgAiAFRw0ACyAFIQILIAFBkAFqIAYgBSACQQFqIgIgBSACIAVJGxCGAiABKAKUASEDIAEoApABIQRBFBB+IgJFDSsgAkEDNgIADAELIAFBiAFqIAYgBSACQQFqIgIgBSACIAVJGxCGAiABKAKMASEDIAEoAogBIQRBFBB+IgJFDSogAkEGNgIACyACIAQ2AgwgAiADNgIQDBALIAwgAkEBajYCFCABQdgFaiAMEMEEIAEoAtwFIRMgASgC2AUiGEECRw0BIBMhAgwPCyABQbAHaiAWQTBqKAIANgIAIAFBoAdqIBZBIGr9AAIA/QsDACABQZAHaiAWQRBq/QACAP0LAwAgASAW/QACAP0LA4AHCyALIQYgDiEEIAchBQwJCyABQdgFaiAMEOIFIAEoAuAFIRUgASgC3AUhFCABKALYBSIXQYGAgIB4Rw0IIBQhAyAFIQgMDgsgCEEBcUUEQEGQiMgAQQcQzwchAgwMCyAJRQ0CICFQBEBBsofIAEEFEM8HIQIMDAsgHlAEQEGwiMgAQQ0QzwchAgwMC0GAgICAeCEIIAdBgICAgHhGDQNBAiECIA9BA0cEQCABQegHaiABQbAHaigCADYCACABQdgHaiABQaAHav0AAgD9CwMAIAFByAdqIAFBkAdq/QACAP0LAwAgASAB/QACgAf9CwO4ByAPIQILIBJBACASQQJHGyEGIBlBACAZQQJHGyEEQQIgESARQQNGGyEIQYCAgIB4IBcgF0GBgICAeEYbIQUgGEEAIBhBAkcbIRIMDgtBl4jIAEEEENEHIQIMCgtBASEJIAwgAkEBajYCFCAMEPUBDAQLQZeIyABBBBDPByECDAgLQb2IyABBBhDPByECDAgLIAIgBDYCDCACIAM2AhAMBgsgDBCrAQshAiALIQYgDiEEIAchBSACRQ0ACwwDCyADIAI2AgwgA0EFNgIAIAMgCzYCEAwMC0EIIAtBgILIABClCgALIAEoAtwFIQILIAchCAsgF0UgF0GCgICAeEhyRQRAIBQgF0EBENYHCyACIQMLQQIhBAJAIAhBgICAgHhGDQAgCwRAIA5BJGohAgNAIAJBBGsoAgAiBkGAgICAeHJBgICAgHhHBEAgAigCACIUQQRrKAIAIgVBeHEiCkEEQQggBUEDcSIFGyAGakkNGyAFQQAgCiAGQSdqSxsNHCAUELQCCyACQTBqIQIgC0EBayILDQALCyAIRQ0AIA5BBGsoAgAiC0F4cSICIAhBMGwiBkEEQQggC0EDcSILG3JJDRggC0EAIAIgBkEnaksbDRkgDhC0AgsLIAEgAS0ArANBAWo6AKwDIAFBlANqEIoFIQ8gAUGYBmogAUHIB2r9AAMA/QsDACABQagGaiABQdgHav0AAwD9CwMAIAFBuAZqIAFB6AdqKAIANgIAIAEgEDYChAYgASACNgKABiABICA3A/gFIAEgHzcD8AUgASATNgLsBSABIBI2AugFIAEgGzYC5AUgASAGNgLgBSABIAM2AtwFIAEgCDoA2AYgASAPNgLgBiABIAo2AtQGIAEgFTYC0AYgASAUNgLMBiABIAU2AsgGIAEgCzYCxAYgASAONgLABiABIAc2ArwGIAEgAf0AA7gH/QsDiAYgASAENgLYBQJAAkAgBEECRwRAIA8NASABQbAEaiABQeAFakHcAPwKAAAgASABQdAGav0AAwD9CwOgBAwHCyAPDQFBAiEEDAYLIAsEQCAOQSRqIQMDQCADQQRrKAIAIghBgICAgHhyQYCAgIB4RwRAIAMoAgAiBkEEaygCACICQXhxIgRBBEEIIAJBA3EiAhsgCGpJDRogAkEAIAQgCEEnaksbDRsgBhC0AgsgA0EwaiEDIAtBAWsiCw0ACwsgBwRAIA4gB0EwbEEIENYHC0ECIQQgBUGAgICAeHJBgICAgHhHBEAgFCAFQQEQ1gcLIA8hAwwFCyABQeAGahDXBEECIQQMBAsgByEDCyABQfQGahDNBQwBCyABKALcBSEDQQIhBAsgASABLQCsA0EBajoArAMgAUGUA2oQ2wMhCCABQZgGaiABQbAFav0AAwD9CwMAIAFBqAZqIAFBwAVq/QADAP0LAwAgAUG4BmogAUHQBWooAgA2AgAgAUHEBmogAUGYBWooAgA2AgAgASAHNgKEBiABIBc2AoAGIAEgHzcD+AUgASAgNwPwBSABIBs2AuwFIAEgEzYC6AUgASAONgLkBSABIAY2AuAFIAEgAzYC3AUgASAB/QADoAX9CwOIBiABIAEpA5AFNwK8BiABIAQ2AtgFIAEgCDYC4AYgASACOgDYBiABIAs2AtQGIAEgEDYC0AYgASAUNgLMBiABIAU2AsgGAkACQCAEQQJHBEAgCA0BIAFBsARqIAFB4AVqQdwA/AoAACABIAFB0AZq/QADAP0LA6AEIAEoAsQGIQsgASgCwAYhDiABKAK8BiEHDAMLIAgNAUECIQQMAgsgASgCwAYhBwJAIAEoAsQGIgsEQCAHQSRqIQMDQCADQQRrKAIAIgZBgICAgHhyQYCAgIB4RwRAIAMoAgAiBEEEaygCACICQXhxIg5BBEEIIAJBA3EiAhsgBmpJDRcgAkEAIA4gBkEnaksbDQMgBBC0AgsgA0EwaiEDIAtBAWsiCw0ACwsgASgCvAYiAgRAIAcgAkEwbEEIENYHC0ECIQQgBUGAgICAeHJBgICAgHhHBEAgFCAFQQEQ1gcLIAghAwwCCwwUCyABQeAGahDXBEECIQQLIARBAkYNACABQcADaiABQbAEakHcAPwKAAAgASAB/QADoAT9CwOwAwJAIAEoAqgDIgIgASgCpAMiCkkEQCABKAKgAyEIA0AgAiAIai0AAEEJayIGQRdLQQEgBnRBk4CABHFFcg0CIAogAkEBaiICRw0ACyABIAo2AqgDCyABQbgCaiABQcADakHcAPwKAAAgASAB/QADsAP9CwOoAiABKAKUAyICDQQMBQsgASACNgKoAyABQTBqIAggCiACQQFqIgIgCiACIApJGxCGAiABKAI0IQQgASgCMCECQRQQfiIDRQ0QIAMgAjYCDCADQRY2AgAgAyAENgIQAkAgCwRAIA5BJGohBANAIARBBGsoAgAiCkGAgICAeHJBgICAgHhHBEAgBCgCACIIQQRrKAIAIgJBeHEiBkEEQQggAkEDcSICGyAKakkNFSACQQAgBiAKQSdqSxsNAyAIELQCCyAEQTBqIQQgC0EBayILDQALCyAHBEAgDiAHQTBsQQgQ1gcLIAVBgICAgHhyQYCAgIB4Rg0DIBQgBUEBENYHDAMLDBILIAMgAUGUA2oQlgYhAwsgAUG4AmogAUHAA2pB3AD8CgAAIAEgAf0AA7AD/QsDqAILIAEoApQDIgJFDQJBAiEECyABKAKYAyIKQQRrKAIAIgZBeHEiCEEEQQggBkEDcSIGGyACakkNDSAGQQAgCCACQSdqSxsNDiAKELQCCyAEQQJHDQELQQMhBCMAQSBrIgYkACAGQQhqEKMJQSAQfiICRQRAAAsgAkGQvMcANgIAIAIgBikCCDcCBCACIAM2AhwgAkEMaiAGQRBq/QACAP0LAgAgBkEgaiQAIAIhA0QAAAAAAAAAAAwBCyABQbgBaiABQbgCakHcAPwKAAAgASAB/QADqAL9CwOoASANQQdqQXhxQQhquAshIiAEQQNGBEAgAUEANgK4BCABQoCAgIAQNwKwBCABQcz1wAA2AtwFIAFCoICAgA43AuAFIAEgAUGwBGo2AtgFIAMgAUHYBWoQ2QQNAiABKAKwBCEOIAEoArQEIgQgASgCuAQQrAkhAiAOBEAgBEEEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgDmpJDQsgBUEAIAcgDkEnaksbDQwgBBC0AgsgAyADKAIAKAIAEQMADAYLIAFBsARqIgYgAUG4AWpB3AD8CgAAIAEgAf0AA6gB/QsDuAJBgQghAiAEQQJGDQAgASADNgLcBSABIAQ2AtgFIAFB4AVqIAZB3AD8CgAAIAEgFDYCzAYgASAFNgLIBiABIAs2AsQGIAEgDjYCwAYgASAHNgK8BiABIAH9AAO4Av0LA9AGEIMKIQJB6PPBAEEEEKwJIQYgAUEANgKAByABQdgGai0AACEPIAEoAuAFIAEoAoAGIRAgASgC6AUhGxCDCiESIAEoAtQGuBD4CSEIIBJBkIjIAEEHEPIDIAgQoQlBkInIAEEGEPIDIQggEkGXiMgAQQQQ8gMgCBChCSABIAEpA/AFIh43A7gHIB5C/////////w9WDQIgHroQ+AkhCCASQbKHyABBBRDyAyAIEKEJIAQEQCADuBD4CSEDIBJBm4jIAEEFEPIDIAMQoQkLIA9BAkcEQCASQaCIyABBBxDyA0GCCEGDCCAPQQFxGxChCQsEQCABKALkBbgQ+AkhAyASQaeIyABBCRDyAyADEKEJCyABIAEpA/gFIh43A7gHAkAgHkL/////////D1gEQCAeuhD4CSEDIBJBsIjIAEENEPIDIAMQoQkgAUEgaiEJIAFBgAdqIQQgDiEDQQAhGSMAQTBrIg0kABCCCiEYAkACfwJAIAsEQCADIAtBMGxqIRMgBEECaiERA0AgA0EgaigCACADQQhqKAIAIAMoAgAQgwohFiARLQAAIQQgDSADQRBqKQMAIh43AwgCfyAERQRAIB5CgICAgICAgBBaDQQgHroQ+AkMAQsgHhD5CQshBCAWQaiHyABBBhDyAyAEEKEJIBEtAAAhBCANIANBGGopAwAiHjcDCAJ/IARFBEAgHkKAgICAgICAEFQEQCAeuhD4CQwCCyANQQI2AhQgDUH8rcYANgIQIA1CATcCHCANIA1BCGqtQoCAgIDwA4Q3AyggDSANQShqNgIYIA1BEGoQwgUMBQsgHhD5CQshBCAWQfmiyABBBRDyAyAEEKEJBEAgA0EEaigCACEEAn8gES0AAEUEQCAEuBD4CQwBCyAErRD5CQshBCAWQa6HyABBBBDyAyAEEKEJCwRAIANBDGooAgAhBAJ/IBEtAABFBEAgBLgQ+AkMAQsgBK0Q+QkLIQQgFkGyh8gAQQUQ8gMgBBChCQtBgICAgHhHBEAgA0EkaigCACADQShqKAIAEKwJIQQgFkG3h8gAQQgQ8gMgBBChCQsgGCUBIBkgFiUBIBYQzQcQEiAZQQFqIRkgA0EwaiIDIBNHDQALCyASQb2IyABBBhDyAyAYEKEJQQAhBAwCCyANQQI2AhQgDUH8rcYANgIQIA1CATcCHCANIA1BCGqtQoCAgIDwA4Q3AyggDSANQShqNgIYIA1BEGoQwgULIQMgFkGECE8EQCAWEM0HC0EBIQQgGEGECEkNACAYEM0HCyAJIAM2AgQgCSAENgIAIA1BMGokACABKAIgQQFxRQ0BIAEoAiQhCgwFCyABQQI2AsQDIAFB/K3GADYCwAMgAUIBNwLMAyABIAFBuAdqrUKAgICA8AOENwO4ASABIAFBuAFqNgLIAyABQcADahDCBSEKDAQLAkAgEEECRg0AIAFBGGohCCABQYAHaiEEIwBBEGsiCiQAAkACQAJAIAFBgAZqIhAoAgAiA0ECRwRAEIMKIRUCfyADQQFxBEAgECoCBLsQ+AkMAQtBgQhBgAggBC0AABsLIQMgFUHeicgAQQYQ8gMgAxChCQJ/IBAoAghBAUYEQCAQKgIMuxD4CQwBC0GBCEGACCAELQAAGwshAyAVQeSJyABBBhDyAyADEKEJAn8gECgCEEEBRgRAIBAqAhS7EPgJDAELQYEIQYAIIAQtAAAbCyEDIBVB6onIAEEKEPIDIAMQoQkCfyAQKAIYQQFGBEAgECoCHLsQ+AkMAQtBgQhBgAggBC0AABsLIQMgFUH0icgAQQoQ8gMgAxChCQJ/IBAoAiBBAUYEQCAQKgIkuxD4CQwBC0GBCEGACCAELQAAGwshAyAVQf6JyABBBhDyAyADEKEJIApBCGogBCAVQYSKyAAgECgCKCAQKgIsEKcIQQEhAwJ/IAooAghBAXEEQCAKKAIMDAELIAogBCAVQYqKyAAgECgCMCAQKgI0EKcIIAooAgBBAXFFDQIgCigCBAshECAVQYQISQ0DIBUQzQcMAwtBgQhBgAggBC0AABshFQwBCyAELQAAIQMgEC0AOCEEIBVBkIrIAEEKEPIDQYEIQYAIIANBAXEbQYIIQYMIIARBAXEbIARBAkYbEKEJCyASQcOIyABBDRDyAyAVEKEJQQAhAwsgCCAQNgIEIAggAzYCACAKQRBqJAAgASgCGEEBcUUNACABKAIcIQoMBAsCQCAbRQ0AIAEoAuwFuBD4CSEDIBJB0IjIAEELEPIDIAMQoQkgAUEQakEANgIAIAEoAhBBAXFFDQAgASgCFCEKDAQLAkAgBUGAgICAeEYNACABQQhqIAFBgAdqIQMCfyABQcgGaiIIKAIAQYCAgIB4RwRAIAgoAgQgCCgCCBCsCQwBC0GBCEGACCADLQAAGwshAyASQaDbxwBBBxDyAyADEKEJQQA2AgAgASgCCEEBcUUNACABKAIMIQoMBAsgAiAGIBIQhApB+NDJAC0AAARAQfjQyQBBADoAAEH80MkAKAIAIQpB/NDJAEEANgIADAQLQfzQyQBBADYCAEH40MkAQQA6AAAgEkGECE8EQCASEM0HCyAGQYQITwRAIAYQzQcLIAJB7PPBAEELEKwJIgYgIhD4CSIDEIQKQfjQyQAtAAAEQEH40MkAQQA6AABB/NDJACgCACEKQfzQyQBBADYCACADQYQITwRAIAMQzQcLDAULQfzQyQBBADYCAEH40MkAQQA6AAAgA0GECE8EQCADEM0HCyAGQYQITwRAIAYQzQcLIAsEQCAOQSRqIQMDQCADQQRrKAIAIgRBgICAgHhyQYCAgIB4RwRAIAMoAgAgBEEBENYHCyADQTBqIQMgC0EBayILDQALCyAHBEAgDiAHQTBsQQgQ1gcLIAVBgICAgHhyQYCAgIB4Rg0AIBQgBUEBENYHCyABKAKcASIHBEAgHEEEaygCACIDQXhxIgVBBEEIIANBA3EiAxsgB2pJDQkgA0EAIAUgB0EnaksbDQogHBC0AgtBACEDIB1BgwhNDQYMBQtBjJvGAEE3IAFB7wdqQeT1wABBxJvGABCVBwALIAFBAjYCxAMgAUH8rcYANgLAAyABQgE3AswDIAEgAUG4B2qtQoCAgIDwA4Q3A7gBIAEgAUG4AWo2AsgDIAFBwANqEMIFIQoLIBJBhAhPBEAgEhDNBwsLIAZBgwhLBEAgBhDNBwsgAkGECE8EQCACEM0HCyALBEAgDkEkaiEDA0AgA0EEaygCACIIQYCAgIB4ckGAgICAeEcEQCADKAIAIgZBBGsoAgAiAkF4cSIEQQRBCCACQQNxIgIbIAhqSQ0HIAJBACAEIAhBJ2pLGw0IIAYQtAILIANBMGohAyALQQFrIgsNAAsLIAcEQCAOQQRrKAIAIgJBeHEiBCAHQTBsIgNBBEEIIAJBA3EiAhtySQ0FIAJBACAEIANBJ2pLGw0GIA4QtAILIAVBgICAgHhyQYCAgIB4RwRAIBRBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAVqSQ0FIAJBACADIAVBJ2pLGw0GIBQQtAILIAohAgsgASgCnAEiBwRAIBxBBGsoAgAiA0F4cSIFQQRBCCADQQNxIgMbIAdqSQ0EIANBACAFIAdBJ2pLGw0FIBwQtAILQQEhAyAdQYQISQ0BCyAdEM0HCyAaIAM2AgggGiACQQAgAxs2AgQgGkEAIAIgAxs2AgAgAUHwB2okAAwDCwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyAaKAIAIBooAgQgGigCCCAaQRBqJAALJgACQCAABEAgACgCAEH/////B08NASAAKAJEDwsQ3goACxDgCgALJgACQCAABEAgACgCAEH/////B08NASAAKAJIDwsQ3goACxDgCgALJgACQCAABEAgACgCAEH/////B08NASAAKAJkDwsQ3goACxDgCgALJgACQCAABEAgACgCAEH/////B08NASAAKAJoDwsQ3goACxDgCgALLgAgASgCAEGjw8cAQZjDxwAgACgCAC0AACIAG0EJQQsgABsgASgCBCgCDBEAAAspACAAIAAtAAQgAUEuRnI6AAQgACgCACIAKAIAIAEgACgCBCgCEBECAAusCAEOfyMAQRBrIgokABCFBSIGIAEmASMAQTBrIgIkAAJAAkACQAJAAkACQAJAAkAgACIJBEAgAEEIayILIAsoAgBBAWoiADYCACAARQ0BIAkoAgANAiAJQX82AgAgCUEIaigCACENIAkoAgQhDkHAyckAKAIARQRAAkBBzMnJACgCACEHQcjJyQAoAgAhAEHIyckAQoCAgIAQNwIAQcDJyQAoAgAhBEHAyckAQgE3AgBB0MnJAEEANgIAAkACQCAERSAARXJFBEAgB0EEaygCACIEQXhxIgVBBEEIIARBA3EiBBsgAGpJDQEgBEEAIAUgAEEnaksbDQIgBxC0AgsMAgtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALC0HEyckAKAIADQNBxMnJAEF/NgIAAkBBgIDAACAGEIYLIgAgAEGAgMAATxsiBEHQyckAKAIAIgBNBEBBzMnJACgCACEFDAELIAQgAGsiA0HIyckAKAIAIABrSwRAQcjJyQAgACADQQFBARDQBUHQyckAKAIAIQALQczJyQAoAgAiBSAAaiEHIANBAk8EfyADQQFrIgMEQCAHQQAgA/wLAAsgBSAAIANqIgBqBSAHC0EAOgAAIABBAWohBAtBACEAQdDJyQAgBDYCAAJAAkACQANAIAAiByAGEIYLIg9PDQEgACAEIAYQhgsgAGsiAyADIARLGyIIaiEAIAYlASAHIAAQGCEBEIUFIgMgASYBIAMQhgshDCACIAg2Aggg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yABBFCABKAIEKAIMEQAACxkAIAEoAgBBx5rGAEECIAEoAgQoAgwRAAALGQAgASgCAEGI4MAAQRQgASgCBCgCDBEAAAsZACABKAIAQcqJyABBFCABKAIEKAIMEQAACxkAIAEoAgBBnODAAEEUIAEoAgQoAgwRAAALGQAgASgCAEHbiMgAQQ4gASgCBCgCDBEAAAsZACABKAIAQYqHyABBDCABKAIEKAIMEQAACxkAIAEoAgBByZrGAEEDIAEoAgQoAgwRAAALEgAgAEEEahCDAyAAQSRqENcECxIAIABBBGoQgwMgAEEcahCLBQsSACAAQQRqEIMDIABBHGoQ1wQLFgAgAEHY/MAANgIEIAAgAUEIajYCAAsZACABKAIAQc+VyABBBSABKAIEKAIMEQAACw4AIAAEQAALIAEQtwgACxYAIABB8PnAADYCBCAAIAFBHGo2AgALFgAgAEGs+sAANgIEIAAgAUEcajYCAAsWACAAQZj4wAA2AgQgACABQRxqNgIACxYAIABB6PrAADYCBCAAIAFBHGo2AgALFgAgAEGk+8AANgIEIAAgAUEcajYCAAsWACAAQeD7wAA2AgQgACABQRxqNgIACxYAIABBnPzAADYCBCAAIAFBHGo2AgALFgAgAEHY/MAANgIEIAAgAUEcajYCAAsTACAAIAAgACgCACIAajYCACAACxQAIAEoAgQaIABBsPbBACABEOQDCxEAIAIoAgQaIAAgASACEOQDCxQAIAEoAgQaIABBtPjBACABEOQDCxQAIAEoAgQaIABB4PfBACABEOQDCxQAIAEoAgQaIABB9PnBACABEOQDCxQAIAEoAgQaIABB5KDCACABEOQDCxQAIAEoAgQaIABB3L3EACABEOQDCxQAIAEgAiADIAQgBSAAKAIAEQcACxQAIAEoAgQaIABB5LjFACABEOQDCxkAIAEoAgBBnMLFAEESIAEoAgQoAgwRAAALFAAgASgCBBogAEH4l8YAIAEQ5AMLFAAgASgCBBogAEHkmsYAIAEQ5AMLFgAgAEHMt8cANgIEIAAgAUEcajYCAAsWACAAQYi4xwA2AgQgACABQRxqNgIACxYAIABBmLbHADYCBCAAIAFBHGo2AgALFgAgAEHUtscANgIEIAAgAUEgajYCAAsZACABKAIAQcS0xwBBDCABKAIEKAIMEQAACxIAIABB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iPnAADYCAAsTACAAQYT9wAA2AgQgACABNgIACxMAIABBwP3AADYCBCAAIAE2AgALEwAgAEH8/cAANgIEIAAgATYCAAsTACAAQbj+wAA2AgQgACABNgIACxMAIABB9P7AADYCBCAAIAE2AgALEwAgAEGw/8AANgIEIAAgATYCAAsTACAAQez/wAA2AgQgACABNgIACxMAIABBqIDBADYCBCAAIAE2AgALEQAgACgCBCAAKAIIIAEQzgILEQAgASgCACABKAIEIAAQ5AMLHAAgAEGYu8/sAzYCCCAAQtDn5vKT68WbPzcCAAsRACAAKAIAIAAoAgQgARDOAgsTACAAQYC5xwA2AgQgACABNgIACxMAIABB8LrHADYCBCAAIAE2AgALEwAgAEG8uccANgIEIAAgATYCAAsTACAAQbS6xwA2AgQgACABNgIACxMAIABBxLjHADYCBCAAIAE2AgALEwAgAEH4uccANgIEIAAgATYCAAsTACAAQay7xwA2AgQgACABNgIACxMAIABB5JnIADYCBCAAIAE2AgALFgBB/NDJACAANgIAQfjQyQBBAToAAAsRAQF/EIUFIgEgACUBJgEgAQsOACAAJQEgASUBQQAQEwtpAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0ECNgIMIANBhLfCADYCCCADQgI3AhQgAyADQQRqrUKAgICAEIQ3AyggAyADrUKAgICAEIQ3AyAgAyADQSBqNgIQIANBCGogAhDKCAALaQEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBAjYCDCADQeS2wgA2AgggA0ICNwIUIAMgA0EEaq1CgICAgBCENwMoIAMgA61CgICAgBCENwMgIAMgA0EgajYCECADQQhqIAIQyggACw8AQbWewgBBKyAAEKIIAAtpAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0ECNgIMIANBuLfCADYCCCADQgI3AhQgAyADQQRqrUKAgICAEIQ3AyggAyADrUKAgICAEIQ3AyAgAyADQSBqNgIQIANBCGogAhDKCAALDwAgACgCACgCACABEKoFC2kBAX8jAEEwayIDJAAgAyAANgIEIAMgATYCACADQQM2AgwgA0GcuMIANgIIIANCAjcCFCADIANBBGqtQoCAgIAQhDcDKCADIAOtQoCAgIAQhDcDICADIANBIGo2AhAgA0EIaiACEMoIAAsNAEEDQQIgAC0AkwEbCwwAIAAlASABIAIQBAsNACAAJQEgASUBEAcaCwwAIAAgASACJQEQFAsMACAAIAEgAiUBEBkLZAIBfwFvQfDLyQAoAgBFBEAQ/gMLQfTLyQAoAgAEQEHQ7MAAEPwKAAtB9MvJAEF/NgIAQfzLyQAoAgBBgMzJACgCABCrCSEAQfTLyQBB9MvJACgCAEEBajYCACAAJQEgABDNBwtkAgF/AW9B8MvJACgCAEUEQBD+AwtB9MvJACgCAARAQdDswAAQ/AoAC0H0y8kAQX82AgBBiMzJACgCAEGMzMkAKAIAEKsJIQBB9MvJAEH0y8kAKAIAQQFqNgIAIAAlASAAEM0HCxEAIABBgOnAAP0AAgD9CwIACxEAIABBkOnAAP0AAgD9CwIACxEAIABBoOnAAP0AAgD9CwIACxEAIABBsOnAAP0AAgD9CwIACxEAIABBwOnAAP0AAgD9CwIACxEAIABB0OnAAP0AAgD9CwIACxEAIABB4OnAAP0AAgD9CwIACxEAIABB8OnAAP0AAgD9CwIACxEAIABBgOrAAP0AAgD9CwIACxEAIABBkOrAAP0AAgD9CwIACxEAIABBoOrAAP0AAgD9CwIACxEAIABBsOrAAP0AAgD9CwIACxEAIABBwOrAAP0AAgD9CwIACxEAIABB0OrAAP0AAgD9CwIACxEAIABB4OrAAP0AAgD9CwIACxEAIABB8OrAAP0AAgD9CwIACxEAIABBgOvAAP0AAgD9CwIACxEAIABBkOvAAP0AAgD9CwIACxEAIABBoOvAAP0AAgD9CwIACxEAIABBsOvAAP0AAgD9CwIACxEAIABBwOvAAP0AAgD9CwIACxEAIABB0OvAAP0AAgD9CwIACxEAIABB4OvAAP0AAgD9CwIACxEAIABB8OvAAP0AAgD9CwIACxEAIABBgOzAAP0AAgD9CwIACxEAIABBkOzAAP0AAgD9CwIACxEAIABBoOzAAP0AAgD9CwIACxEAIABBsOzAAP0AAgD9CwIACwwAIAAoAgAgARCqBQsOACAAQeSCwQAgARDkAwsOACAAQcz1wAAgARDkAwsKACAAQQRqEIMDCwoAIABBCGoQ1wQLEQAgAEGU9sAA/QACAP0LAgALEQAgAEGk9sAA/QACAP0LAgALEQAgAEGYqMcA/QACAP0LAgALEQAgAEG09sAA/QACAP0LAgALEQAgAEHE9sAA/QACAP0LAgALEQAgAEG4p8cA/QACAP0LAgALEQAgAEHU9sAA/QACAP0LAgALEQAgAEHk9sAA/QACAP0LAgALEQAgAEGIqMcA/QACAP0LAgALEQAgAEHYqMcA/QACAP0LAgALEQAgAEHop8cA/QACAP0LAgALEQAgAEH09sAA/QACAP0LAgALEQAgAEHoqMcA/QACAP0LAgALEQAgAEH4p8cA/QACAP0LAgALDQBBtKDIAEEbEN8KAAsJACAAIAEQLAALDgBBz6DIAEHPABDfCgALDAAgACABKQIENwMACwsAIAAoAgAgARB1Cw4AIAFB/Z3CAEEgEL4DCw4AIAFBnZ7CAEEYEL4DCxEAIABBqKjHAP0AAgD9CwIACw4AIAFB6KHIAEECEL4DCwwAIAAoAgAgARC2BQsMACAAKAIAIAEQugILEQAgAEGUvsQA/QACAP0LAgALEQAgAEGkvsQA/QACAP0LAgALDAAgACgCACABEMoECwwAIAAoAgAgARCmBQsRACAAQainxwD9AAIA/QsCAAsRACAAQcioxwD9AAIA/QsCAAsRACAAQfimxwD9AAIA/QsCAAsRACAAQcinxwD9AAIA/QsCAAsKACAAQSBqEOgDCw0AIAAgASkChAE3AwALEQAgAEGYp8cA/QACAP0LAgALEQAgAEGIp8cA/QACAP0LAgALEQAgAEHYp8cA/QACAP0LAgALEQAgAEG4qMcA/QACAP0LAgALEQAgAEHgisgA/QACAP0LAgALDAAgACABKQIANwMACxEAIABB8IrIAP0AAgD9CwIACwoAIAAgASUBEA8LTQEBfyMAQTBrIgEkACABQQE2AgwgAUHwjsgANgIIIAFCATcCFCABIAFBL2qtQoCAgIDgBoQ3AyAgASABQSBqNgIQIAFBCGogABDKCAALTQEBfyMAQTBrIgEkACABQQE2AgwgAUHwjsgANgIIIAFCATcCFCABIAFBL2qtQoCAgIDQBoQ3AyAgASABQSBqNgIQIAFBCGogABDKCAALCQAgAEIBNwMACwkAIABBADYCAAsIACAAIAEQdQsKACAAQYABEPgECxIAIABChoCAgICAgICAfzcDAAvkCwIFfQZ/An1DAACAPyECAkACQAJAAkAgALwi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c3JjL3N0ci9sb3NzeS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvRG9jdW1lbnRzL05hdlZpcy9yZXBvcy9zcGFyay1jbG9jay10aW1lci9ydXN0L3NwYXJrLWxpYi9zcmMvcGx5LnJzAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI1L3NyYy9sZWdhY3kucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9pdGVyL2FkYXB0ZXJzL3N0ZXBfYnkucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWVtY2hyLTIuNy42L3NyYy9hcmNoL2FsbC90d293YXkucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pbmRleC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlL3dpbmRvdy5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy95dXYucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZmx0MmRlYy9zdHJhdGVneS9ncmlzdS5ycwBzcGFyay1ycy9zcmMvcmF5Y2FzdC5ycwBsaWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc2hhcmVkL3NtYWxsc29ydC5ycwAvcnVzdGMvMTE1OWU3OGM0NzQ3YjAyZWY5OTZlNTUwODJiNzA0YzA5Yjk3MDU4OC9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL3F1aWNrc29ydC5ycwBzcGFyay1ycy9zcmMvc29ydC5ycwAvcnVzdGMvMTE1OWU3OGM0NzQ3YjAyZWY5OTZlNTUwODJiNzA0YzA5Yjk3MDU4OC9saWJyYXJ5L2FsbG9jL3NyYy9ib3hlZC9jb252ZXJ0LnJzAGxpYnJhcnkvYWxsb2Mvc3JjL2ZtdC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9mbXQucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZGl5X2Zsb2F0LnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci9Eb2N1bWVudHMvTmF2VmlzL3JlcG9zL3NwYXJrLWNsb2NrLXRpbWVyL3J1c3Qvc3BhcmstbGliL3NyYy90c3BsYXQucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyL0RvY3VtZW50cy9OYXZWaXMvcmVwb3Mvc3BhcmstY2xvY2stdGltZXIvcnVzdC9zcGFyay1saWIvc3JjL2tzcGxhdC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvRG9jdW1lbnRzL05hdlZpcy9yZXBvcy9zcGFyay1jbG9jay10aW1lci9ydXN0L3NwYXJrLWxpYi9zcmMvYW50aXNwbGF0LnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci9Eb2N1bWVudHMvTmF2VmlzL3JlcG9zL3NwYXJrLWNsb2NrLXRpbWVyL3J1c3Qvc3BhcmstbGliL3NyYy9nc3BsYXQucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyL0RvY3VtZW50cy9OYXZWaXMvcmVwb3Mvc3BhcmstY2xvY2stdGltZXIvcnVzdC9zcGFyay1saWIvc3JjL2NzcGxhdC5ycwBzcGFyay1ycy9zcmMvZXh0X3NwbGF0cy5ycwBzcGFyay1ycy9zcmMvcGFja2VkX3NwbGF0cy5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9mZGVmbGF0ZS0wLjMuNy9zcmMvZGVjb21wcmVzcy5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzcy5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9jb3JlLTEuMC4yMjgvc3JjL2RlL2ltcGxzLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci9Eb2N1bWVudHMvTmF2VmlzL3JlcG9zL3NwYXJrLWNsb2NrLXRpbWVyL3J1c3Qvc3BhcmstbGliL3NyYy9zb2dzLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2luZmxhdGUvaW5mdHJlZXMucnMAbGlicmFyeS9zdGQvc3JjL3N5cy9zeW5jL211dGV4L25vX3RocmVhZHMucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9zdGQvc3JjL3N5cy9zeW5jL29uY2Uvbm9fdGhyZWFkcy5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9zdHIucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9pdGVyL3RyYWl0cy9pdGVyYXRvci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9lcnJvci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL2Vycm9yLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLTAuMjUuMTAvc3JjL2NvbG9yLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9nZW5lcmljL3BhY2tlZHBhaXIucnMAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9tZW1jaHIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvbG9vcF9maWx0ZXIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvaW5mbGF0ZS93cml0ZXIucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pdGVyLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2luZGV4bWFwLTIuMTMuMC9zcmMvaW5uZXIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWluaXpfb3hpZGUtMC44Ljkvc3JjL2luZmxhdGUvb3V0cHV0X2J1ZmZlci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3VuZmlsdGVyaW5nX2J1ZmZlci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9pbWFnZXMvYnVmZmVyLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvcmVhZF9kZWNvZGVyLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL3ZwOF9hcml0aG1ldGljX2RlY29kZXIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvY29kZWNzL3dlYnAvZGVjb2Rlci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvRG9jdW1lbnRzL05hdlZpcy9yZXBvcy9zcGFyay1jbG9jay10aW1lci9ydXN0L3NwYXJrLWxpYi9zcmMvZGVjb2Rlci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9kZWNvZGVyLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvcmVhZC9tYWdpY19maW5kZXIucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9jbXAucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9leHRyYV9maWVsZHMvZXh0ZW5kZWRfdGltZXN0YW1wLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLTAuMjUuMTAvc3JjL21ldGFkYXRhL2NpY3AucnMAbGlicmFyeS9zdGQvc3JjL2lvL3N0ZGlvLnJzAC9ydXN0Yy8xMTU5ZTc4YzQ3NDdiMDJlZjk5NmU1NTA4MmI3MDRjMDliOTcwNTg4L2xpYnJhcnkvY29yZS9zcmMvc3RyL3BhdHRlcm4ucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvY29tbW9uLnJzAC9ydXN0Yy8xMTU5ZTc4YzQ3NDdiMDJlZjk5NmU1NTA4MmI3MDRjMDliOTcwNTg4L2xpYnJhcnkvY29yZS9zcmMvb3BzL2Z1bmN0aW9uLnJzAGxpYnJhcnkvY29yZS9zcmMvbnVtL2ZsdDJkZWMvc3RyYXRlZ3kvZHJhZ29uLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ZkZWZsYXRlLTAuMy43L3NyYy9odWZmbWFuLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2h1ZmZtYW4ucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vYmlnbnVtLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2xvc3NsZXNzX3RyYW5zZm9ybS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3RyYW5zZm9ybS5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vYnVmZmVyZWQvbGluZXdyaXRlcnNoaW0ucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci9zdHJlYW0ucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3luYy9sYXp5X2xvY2sucnMAbGlicmFyeS9zdGQvc3JjL3N5bmMvcmVlbnRyYW50X2xvY2sucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9zdGQvc3JjL3N5bmMvb25jZV9sb2NrLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLTAuMjUuMTAvc3JjL2NvZGVjcy9wbmcucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAGxpYnJhcnkvc3RkL3NyYy9wYW5pY2tpbmcucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9pby9ib3Jyb3dlZF9idWYucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTcvc3JjL2V4dGVybnJlZi5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3RyYW5zZm9ybS9wYWxldHRlLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2luZmxhdGUucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvYWxsb2NhdGUucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWluaXpfb3hpZGUtMC44Ljkvc3JjL2luZmxhdGUvY29yZS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9pby9pbWFnZV9yZWFkZXJfdHlwZS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9zdGFibGUucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3ByaW50YWJsZS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvRG9jdW1lbnRzL05hdlZpcy9yZXBvcy9zcGFyay1jbG9jay10aW1lci9ydXN0L3NwYXJrLWxpYi9zcmMvY2h1bmtfdHJlZS5ycwBzcGFyay1ycy9zcmMvbG9kX3RyZWUucnMAc3BhcmstbGliL3NyYy9zcGxhdF9lbmNvZGUucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtMS4wLjIyOC9zcmMvcHJpdmF0ZS9kZS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL2RlLnJzAC9ydXN0Yy8xMTU5ZTc4YzQ3NDdiMDJlZjk5NmU1NTA4MmI3MDRjMDliOTcwNTg4L2xpYnJhcnkvc3RkL3NyYy9zeW5jL3BvaXNvbi9vbmNlLnJzAC9ydXN0Yy8xMTU5ZTc4YzQ3NDdiMDJlZjk5NmU1NTA4MmI3MDRjMDliOTcwNTg4L2xpYnJhcnkvYWxsb2Mvc3JjL3NsaWNlLnJzAGxpYnJhcnkvc3RkL3NyYy9iYWNrdHJhY2UucnMAL3J1c3QvZGVwcy9oYXNoYnJvd24tMC4xNS40L3NyYy9yYXcvbW9kLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2hhc2hicm93bi0wLjE2LjEvc3JjL3Jhdy9tb2QucnMAbGlicmFyeS9jb3JlL3NyYy9mbXQvbW9kLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvcGFja2VkcGFpci9tb2QucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci9tb2QucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9hbGxvYy9zcmMvY29sbGVjdGlvbnMvYmluYXJ5X2hlYXAvbW9kLnJzAC9ydXN0Yy8xMTU5ZTc4YzQ3NDdiMDJlZjk5NmU1NTA4MmI3MDRjMDliOTcwNTg4L2xpYnJhcnkvc3RkL3NyYy9pby9tb2QucnMAbGlicmFyeS9zdGQvc3JjLy4uLy4uL2JhY2t0cmFjZS9zcmMvc3ltYm9saXplL21vZC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9tb2QucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAbGlicmFyeS9zdGQvc3JjL3RocmVhZC9tb2QucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9hbGxvYy9zcmMvdmVjL21vZC5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL21vZC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvRG9jdW1lbnRzL05hdlZpcy9yZXBvcy9zcGFyay1jbG9jay10aW1lci9ydXN0L3NwYXJrLWxpYi9zcmMvdGlueV9sb2QucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyL0RvY3VtZW50cy9OYXZWaXMvcmVwb3Mvc3BhcmstY2xvY2stdGltZXIvcnVzdC9zcGFyay1saWIvc3JjL2JoYXR0X2xvZC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9jcmMzMi9icmFpZC5ycwAvcnVzdGMvMTE1OWU3OGM0NzQ3YjAyZWY5OTZlNTUwODJiNzA0YzA5Yjk3MDU4OC9saWJyYXJ5L2FsbG9jL3NyYy92ZWMvc3BlY19mcm9tX2l0ZXJfbmVzdGVkLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2V4dGVuZGVkLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci9Eb2N1bWVudHMvTmF2VmlzL3JlcG9zL3NwYXJrLWNsb2NrLXRpbWVyL3J1c3Qvc3BhcmstbGliL3NyYy9yYWQucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfanNvbi0xLjAuMTQ1L3NyYy9yZWFkLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvcmVhZC5ycwAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi4xMC9zcmMvZGxtYWxsb2MucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9zcGVjLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvemxpYi5ycwBzcGFyay1ycy9zcmMvbGliLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NvbnNvbGVfZXJyb3JfcGFuaWNfaG9vay0wLjEuNy9zcmMvbGliLnJzAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI1L3NyYy9saWIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtd2FzbS1iaW5kZ2VuLTAuNi41L3NyYy9saWIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvanMtc3lzLTAuMy45NC9zcmMvbGliLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NtYWxsdmVjLTEuMTUuMS9zcmMvbGliLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL3RleHRfbWV0YWRhdGEucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3VuaWNvZGVfZGF0YS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy92cDgucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvYWRhbTcucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9jcDQzNy5ycwBzcGFyay1saWIvc3JjL3N5bW1hdDMucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9jcmMzMi5ycwAvcnVzdC9kZXBzL3J1c3RjLWRlbWFuZ2xlLTAuMS4yNS9zcmMvdjAucnMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwBpbnZhbGlkIGNvZGUgLS0gbWlzc2luZyBlbmQtb2YtYmxvY2sAaW5jb3JyZWN0IGhl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7LIcrO4NvdTANpIv4EPG/lca7goxObPFEuYyULSh7MEX1K9RMi0kc9zHf0o3Y8aulcXqPlPl8XPoB4TkYiF1Vh0QAFMAAACbAAAAMgAAAK0WEABPAAAALwIAACYAAABKERAAbQAAAKQAAAAqAAAAShEQAG0AAAAEAQAAJQAAAJ0AAAAMAAAABAAAAJ4AAACdAAAADAAAAAQAAACfAAAAngAAAIA2EACgAAAAoQAAAKIAAACgAAAAowAAAEFFUyBlbmNyeXB0ZWQgZmlsZXMgY2Fubm90IGJlIGRlY3J5cHRlZCB3aXRob3V0IHRoZSBhZXMtY3J5cHRvIGZlYXR1cmUuVmFyaWFibGUtbGVuZ3RoIGZpZWxkIGV4dGVuZHMgYmV5b25kIGZpbGUgYm91bmRhcnlBRVMgZW5jcnlwdGlvbiB3aXRob3V0IEFFUyBleHRyYSBkYXRhIGZpZWxkQXJjaGl2ZSBoZWFkZXIgaXMgdG9vIGxhcmdlAPckEABgAAAA5gIAABkAAAD3JBAAYAAAAOoCAAATAAAAT3ZlcnNpemVkIGNlbnRyYWwgZGlyZWN0b3J5U3VwcG9ydCBmb3IgbXVsdGktZGlzayBmaWxlcyBpcyBub3QgaW1wbGVtZW50ZWR6aXA6OnNwZWM6OlppcDY0Q0RFQmxvY2sAAFBLBgZJbnZhbGlkIGRpZ2l0YWwgc2lnbmF0dXJlIGhlYWRlcgAAAIAEOBAAIAAAAHppcDo6c3BlYzo6WmlwMzJDREVCbG9ja1BLBQZ6aXA6OnNwZWM6OlppcDY0Q0RFTG9jYXRvckJsb2NrSW52YWxpZCB6aXA2NCBsb2NhdG9yIGRpZ2l0YWwgc2lnbmF0dXJlIGhlYWRlcgAAAAAAAIBrOBAALgAAAHppcDo6dHlwZXM6OlppcENlbnRyYWxFbnRyeUJsb2NrUEsBAkludmFsaWQgQ2VudHJhbCBEaXJlY3RvcnkgaGVhZGVyAAAAgMw4EAAgAAAASW52YWxpZCBFT0NENjQ6IGluY29uc2lzdGVudCBsZW5ndGhJbnZhbGlkIEVPQ0Q2NDogaW5jb25zaXN0ZW5jeSB3aXRoIExvY2F0b3IgZGF0YUludmFsaWQgRU9DRDY0OiBpbmNvbnNpc3RlbnQgbnVtYmVyIG9mIGZpbGVzQ291bGQgbm90IGZpbmQg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AAAAtwIAABEAAAA0BxAAHQAAALgCAAAwAAAANAcQAB0AAADjAgAAJgAAADQHEAAdAAAA5wIAACAAAAA0BxAAHQAAAOcCAAATAAAANAcQAB0AAADtAgAAJgAAADQHEAAdAAAA8QIAACAAAAA0BxAAHQAAAPECAAATAAAANAcQAB0AAABDAwAAQQAAADQHEAAdAAAARAMAAA0AAAA0BxAAHQAAAEUDAAANAAAANAcQAB0AAABGAwAADQAAADQHEAAdAAAATwMAAD4AAAA0BxAAHQAAAE8DAAANAAAANAcQAB0AAABYAwAAOwAAADQHEAAdAAAAWQMAAA0AAAA0BxAAHQAAAFoDAAANAAAANAcQAB0AAABbAwAADQAAADQHEAAdAAAAZAMAAD8AAAA0BxAAHQAAAGUDAAANAAAANAcQAB0AAABmAwAADQAAADQHEAAdAAAAZwMAAA0AAAA0BxAAHQAAAHADAAA9AAAANAcQAB0AAABxAwAADQAAADQHEAAdAAAAcgMAAA0AAAA0BxAAHQAAAHMDAAANAAAANAcQAB0AAAB0AwAADQAAADQHEAAdAAAAgAMAACUAAAA0BxAAHQAAAIQDAAAlAAAANAcQAB0AAACEAwAANgAAADQHEAAdAAAAhgMAAB0AAAA0BxAAHQAAAJIDAAAlAAAANAcQAB0AAACWAwAAJQAAADQHEAAdAAAAlgMAADYAAAA0BxAAHQAAAJYDAABLAAAANAcQAB0AAACWAwAAYAAAADQHEAAdAAAAmAMAAB4AAAA0BxAAHQAAAKQDAAAlAAAANAcQAB0AAACoAwAAJQAAADQHEAAdAAAAqAMAADYAAAA0BxAAHQAAAKgDAABLAAAANAcQAB0AAACoAwAAYAAAADQHEAAdAAAAqgMAAB4AAAA0BxAAHQAAALYDAAAlAAAANAcQAB0AAAC4AwAAIQAAADQHEAAdAAAAuAMAAA0AAAA0BxAAHQAAAMQDAAAlAAAANAcQAB0AAADGAwAAIQAAADQHEAAdAAAAxgMAAA0AAABleHQwZXh0MRkHEAAaAAAATAAAAFMAAAAZBxAAGgAAAE8AAABTAAAAc2gzYRkHEAAaAAAAUgAAAFUAAABzaDNiGQcQABoAAABVAAAAVQAAABkHEAAaAAAAWAAAAF4AAAAZBxAAGgAAAFsAAABeAAAAGQcQABoAAABhAAAAWQAAABkHEAAaAAAAZAAAAFwAAAAZBxAAGgAAAEoAAABnAAAAGQcQABoAAABJAAAAZwAAABkHEAAaAAAASAAAAG0AAAAZBxAAGgAAAEcAAABoAAAAGQcQABoAAABGAAAAaAAAABkHEAAaAAAAtgAAADAAAAAZBxAAGgAAALgAAAAwAAAAGQcQABoAAACfAQAANgAAABkHEAAaAAAAoAEAADYAAAAZBxAAGgAAAKUBAAAtAAAAGQcQABoAAACmAQAALQAAABkHEAAaAAAArAEAAEMAAAAZBxAAGgAAAK8BAAAzAAAAGQcQABoAAACwAQAAMwAAABkHEAAaAAAAzgEAACcAAAAZBxAAGgAAAM8BAAAnAAAAGQcQABoAAADRAQAAFQAAABkHEAAaAAAA0AEAACgAAAAZBxAAGgAAANIBAAAoAAAAGQcQABoAAADTAQAAKAAAABkHEAAaAAAA1AEAACgAAAAZBxAAGgAAAPgBAAA3AAAAGQcQABoAAAD4AQAAWAAAABkHEAAaAAAAAQIAADgAAAAZBxAAGgAAAAECAABGAAAAGQcQABoAAAAKAgAANAAAABkHEAAaAAAACgIAAFUAAAAZBxAAGgAAABwCAAA2AAAAGQcQABoAAAAcAgAAVwAAABkHEAAaAAAAJQIAADUAAAAZBxAAGgAAACUCAABWAAAAGQcQABoAAAA6AgAALAAAABkHEAAaAAAAPwIAADYAAAAZBxAAGgAAAD8CAAA/AAAAGQcQABoAAAA/AgAATAAAABkHEAAaAAAAPwIAABUAAAAZBxAAGgAAAEsCAAAyAAAAGQcQABoAAABMAgAAMgAAABkHEAAaAAAAUQIAADgAAAAZBxAAGgAAAFECAABBAAAAGQcQABoAAABRAgAATgAAABkHEAAaAAAAUQIAABUAAAAZBxAAGgAAAFQCAABCAAAAGQcQABoAAABUAgAASwAAABkHEAAaAAAAVAIAAFgAAAAZBxAAGgAAAFQCAAAZAAAAGQcQABoAAABiAgAAMgAAABkHEAAaAAAAYwIAADIAAAAZBxAAGgAAAGwCAABCAAAAGQcQABoAAABsAgAASwAAABkHEAAaAAAAbAIAAFgAAAAZBxAAGgAAAGwCAAAZAAAAGQcQABoAAABoAgAAPAAAABkHEAAaAAAAaAIAAEUAAAAZBxAAGgAAAGgCAABSAAAAGQcQABoAAABoAgAAGQAAABkHEAAaAAAAgwIAACwAAAAZBxAAGgAAAJQCAAA2AAAAGQcQABoAAACUAgAAIwAAABkHEAAaAAAAiAIAADYAAAAZBxAAGgAAAIgCAABFAAAAGQcQABoAAACIAgAAWAAAABkHEAAaAAAAiAIAABUAAAAZBxAAGgAAAKkCAAAyAAAAGQcQABoAAACqAgAAMgAAABkHEAAaAAAAvgIAADYAAAAZBxAAGgAAAL4CAAAjAAAAGQcQABoAAADAAgAAJwAAABkHEAAaAAAArwIAADgAAAAZBxAAGgAAAK8CAABHAAAAGQcQABoAAACvAgAAWgAAABkHEAAaAAAArwIAABUAAAAZBxAAGgAAALICAABCAAAAGQcQABoAAACyAgAAUQAAABkHEAAaAAAAsgIAAGQAAAAZBxAAGgAAANkCAAAuAAAAGQcQABoAAADaAgAALgAAABkHEAAaAAAA9AIAAD8AAAAZBxAAGgAAAPQCAAAmAAAAGQcQABoAAADxAgAAOQAAABkHEAAaAAAA8QIAACYAAAAZBxAAGgAAAOMCAAA+AAAAGQcQABoAAADjAgAATQAAABkHEAAaAAAA4wIAAGAAAAAZBxAAGgAAAOMCAAAVAAAAGQcQABoAAADfAgAAOAAAABkHEAAaAAAA3wIAAEcAAAAZBxAAGgAAAN8CAABaAAAAGQcQABoAAADfAgAAFQAAABkHEAAaAAAAAgMAAC4AAAAZBxAAGgAAABIDAAAyAAAAGQcQABoAAAAnAwAAKQAAABkHEAAaAAAALgMAAEsAAAAZBxAAGgAAAC4DAAAhAAAAGQcQABoAAAArAwAARQAAABkHEAAaAAAAKwMAACEAAAAZBxAAGgAAABQDAAAhAAAAGQcQABoAAAAXAwAANgAAABkHEAAaAAAAFwMAABUAAAAZBxAAGgAAABkDAABAAAAAGQcQABoAAAAEAwAAHQAAABkHEAAaAAAACAMAADYAAAAZBxAAGgAAAAgDAAAVAAAAGQcQABoAAAA7AwAAJgAAABkHEAAaAAAAPwMAACAAAAAZBxAAGgAAAD8DAAATAAAAGQcQABoAAABFAwAAJgAAABkHEAAaAAAASQMAACAAAAAZBxAAGgAAAEkDAAATAAAAGQcQABoAAACcAwAAQAAAABkHEAAaAAAAnQMAAA0AAAAZBxAAGgAAAJ8DAAANAAAAGQcQABoAAACoAwAAPQAAABkHEAAaAAAAqAMAAA0AAAAZBxAAGgAAALEDAAA6AAAAGQcQABoAAACyAwAADQAAABkHEAAaAAAAvQMAAD4AAAAZBxAAGgAAAL4DAAANAAAAGQcQABoAAADJAwAAPAAAABkHEAAaAAAAygMAAA0AAAAZBxAAGgAAANkDAAAnAAAAGQcQABoAAADeAwAANwAAABkHEAAaAAAA3wMAABEAAAAZBxAAGgAAAPIDAAAoAAAAGQcQABoAAADzAwAAKAAAABkHEAAaAAAA9wMAADMAAAAZBxAAGgAAAPgDAAANAAAAGQcQABoAAAD9AwAANwAAABkHEAAaAAAA/gMAABEAAAAZBxAAGgAAAP8DAAARAAAAGQcQABoAAAAABAAAEQAAABkHEAAaAAAAEQQAACgAAAAZBxAAGgAAABIEAAAoAAAAGQcQABoAAAAeBAAANwAAABkHEAAaAAAAHwQAABEAAAAZBxAAGgAAACAEAAARAAAAGQcQABoAAAAhBAAAEQAAABkHEAAaAAAAFwQAADcAAAAZBxAAGgAAABgEAAARAAAAGQcQABoAAAAuBAAAJwAAABkHEAAaAAAAMAQAACMAAAAZBxAAGgAAADAEAAANAAAAGQcQABoAAAA8BAAAJwAAABkHEAAaAAAAPgQAACMAAAAZBxAAGgAAAD4EAAANAAAATBwQABgAAAC7AAAAMQAAAEwcEAAYAAAAygAAACcAAABMHBAAGAAAANkAAAATAAAATBwQABgAAAC8AAAAJgAAAEwcEAAYAAAAzwAAADYAAABhdHRlbXB0ZWQgdG8gdGFrZSBvd25lcnNoaXAgb2YgUnVzdCB2YWx1ZSB3aGlsZSBpdCB3YXMgYm9ycm93ZWQATBwQABgAAADjAAAAFgAAAGxvZElkAAAATBwQABgAAADsAAAAVAAAAEwcEAAYAAAA9QAAADoAAABMHBAAGAAAAPcAAAAdAAAATBwQABgAAAD4AAAAHQAAAEwcEAAYAAAA/wAAAFgAAABMHBAAGAAAAAkBAAAWAAAATBwQABgAAAATAQAAVAAAAEwcEAAYAAAAJAEAAD0AAABMHBAAGAAAADcBAAArAAAATBwQABgAAAA4AQAAKwAAAEwcEAAYAAAAMgEAACsAAABMHBAAGAAAADMBAAArAAAATBwQABgAAAB3AQAALwAAAEwcEAAYAAAAegEAAB8AAABpbmRpY2VzAEwcEAAYAAAAlgEAAFYAAABMHBAAGAAAAIMBAAAkAAAATBwQABgAAACJAQAAIwAAAEwcEAAYAAAAhgEAACIAAABMHBAAGAAAAHgBAAAmAAAASW52YWxpZCBjb25lX2ZvdnMgbGVuZ3RoSW52YWxpZCBjb25lX2ZvdjBzIGxlbmd0aEludmFsaWQgY29uZV9mb3ZlYXRlcyBsZW5ndGhJbnZhbGlkIGJlaGluZF9mb3ZlYXRlcyBsZW5ndGhJbnZhbGlkIGxvZF9zY2FsZXMgbGVuZ3RoSW52YWxpZCB2aWV3X3RvX29iamVjdHMgbGVuZ3RoAABMHBAAGAAAAOcBAAAmAAAATBwQABgAAADpAQAAQwAAAEwcEAAYAAAA7QEAABgAAABMHBAAGAAAAPsBAAAZAAAATBwQABgAAAAAAgAAGQAAAEwcEAAYAAAABwIAACsAAABMHBAAGAAAAAsCAAAYAAAATBwQABgAAAARAgAALwAAAEwcEAAYAAAAEwIAAD4AAABMHBAAGAAAABUCAAAcAAAATBwQABgAAAAEAgAAGAAAAEwcEAAYAAAAKwIAACQAAABwaXhlbExpbWl0aW5zdGFuY2VJbmRpY2Vzb3V0cHV0U2l6ZWZyb250aWVyU2l6ZWxlYWZDb3VudEwcEAAYAAAAVAIAAFwAAABMHBAAGAAAAFMCAABiAAAATBwQABgAAABSAgAAXgAAAEwcEAAYAAAAUQIAAFkAAABMHBAAGAAAAFACAABoAAAATBwQABgAAABPAgAAYgAAAEwcEAAYAAAAPgIAACMAAABMHBAAGAAAAEECAABaAAAATBwQABgAAABAAgAAcgAAAEwcEAAYAAAAPwIAAFgAAABMHBAAGAAAADECAAAdAAAATBwQABgAAAAxAgAAMwAAAEwcEAAYAAAALQIAACMAAABMHBAAGAAAAC0CAAAeAAAATBwQABgAAAAoAgAAHAAAAEwcEAAYAAAAIgIAABQAAABMHBAAGAAAANIBAAAdAAAATBwQABgAAADVAQAAOgAAAEwcEAAYAAAA2gEAABkAAABMHBAAGAAAALsBAAAzAAAATBwQABgAAAC+AQAAPQAAAEwcEAAYAAAAvwEAADwAAABMHBAAGAAAAMABAAAdAAAATBwQABgAAADBAQAAIgAAAEwcEAAYAAAAwgEAACAAAABMHBAAGAAAAMMBAAAgAAAATBwQABgAAADEAQAAHwAAAEwcEAAYAAAAxgEAAB0AAABMHBAAGAAAAKoCAAAbAAAATBwQABgAAADFAgAAFwAAAG1pc3NpbmdDb3VudEwcEAAYAAAASAMAAGIAAABMHBAAGAAAAEcDAABcAAAATBwQABgAAABGAwAAXgAAAEwcEAAYAAAARQMAAFkAAABMHBAAGAAAAEQDAABoAAAATBwQABgAAABDAwAAYgAAAEwcEAAYAAAAMgMAACMAAABMHBAAGAAAADUDAABaAAAATBwQABgAAAA0AwAAbQAAAEwcEAAYAAAAMwMAAFgAAABMHBAAGAAAANUCAABLAAAATBwQABgAAADXAgAAKQAAAEwcEAAYAAAA4gIAAEAAAABMHBAAGAAAAOMCAAA/AAAATBwQABgAAADqAgAAMwAAAEwcEAAYAAAA7gIAACkAAABMHBAAGAAAAPUCAAA3AAAATBwQABgAAAD3AgAARgAAAEwcEAAYAAAA/wIAACMAAABMHBAAGAAAAPwCAAAqAAAATBwQABgAAAD6AgAAMQAAAEwcEAAYAAAA5gIAACkAAABMHBAAGAAAANECAAAiAAAATBwQABgAAAAFAwAAGQAAAEwcEAAYAAAArQIAAB0AAABMHBAAGAAAALACAAA5AAAATBwQABgAAACzAgAAFQAAAEwcEAAYAAAAmwIAADMAAABMHBAAGAAAAJ4CAAA9AAAATBwQABgAAACfAgAAPAAAAEwcEAAYAAAAoAIAAB0AAABMHBAAGAAAAKECAAAiAAAATBwQABgAAACiAgAAIAAAAEwcEAAYAAAAowIAACAAAABMHBAAGAAAAKQCAAAfAAAATBwQABgAAAClAgAAHQAAAGImEAB0AAAAlQAAAA4AAABOJhAAEwAAADEAAAAzAAAATiYQABMAAAA8AAAALQAAAE4mEAATAAAATgAAADMAAABOJhAAEwAAAFkAAAAtAAAAeAEAAOwAAAAEAAAAeQEAAHoBAAB7AQBBkPHBAAtmAQAAAHwBAABOJhAAEwAAAHwAAAArAAAAZmlsZVR5cGVOJhAAEwAAAH4AAABoAAAAfQEAAAgAAAAEAAAAfgEAAE4mEAATAAAAewAAAFsAAAB/AQAA9AAAAAQAAACAAQAAgQEAAIIBAEGA8sEAC04BAAAAgwEAAE4mEAATAAAAmgAAACsAAABOJhAAEwAAAJwAAABoAAAATiYQABMAAACZAAAAWAAAAIQBAABwAAAABAAAAIUBAACGAQAAhwEAQdjywQALLgEAAACIAQAATiYQABMAAAAUAQAAWwAAAIkBAACQAAAABAAAAIoBAACLAQAAjAEAQZDzwQAL7QMBAAAAjQEAAE4mEAATAAAAkwEAAFsAAABOJhAAEwAAAAQCAAAgAAAATiYQABMAAAAYAgAAIAAAAE4mEAATAAAAGQIAACIAAABOJhAAEwAAADkCAAAoAAAAbWV0YWNodW5rc1N0YXJ0AAoAAIAEAACACAAAgHDtEQBIARIASwESAFABEgBWARIAXwESAAMAAAADAAAABQAAAAYAAAAJAAAAAwAAAHQ8EAB1PBAAdjwQAAcAAAAGAAAAAwAAAAYAAAAFAAAAAgAAAAkAAAALAAAACwAAAAQAAACnPBAArjwQAPFbEQC0PBAAujwQAL88EADBPBAAyjwQANU8EAAI4BEAGAAAAAgAAAAPAAAABgAAAAQAAAAOAAAADQAAANPfEQDr3xEA898RAALgEQAI4BEADOARABrgEQADAAAAAwAAAAoAAAAKAAAAAgAAAAcAAAACAAAABwAAAAUAAAAFAAAABwAAAAMAAAADAAAAfEEQAH9BEACCQRAAjEEQAJZBEACYQRAAn0EQAKFBEACoQRAArUEQALJBEAC5QRAAvEEQAI4BAAAMAAAABAAAAI8BAACQAQAAkQEAAKjPEQARAAAAriEQACAAAAAuAgAAEQAAADMYEAAbAAAA6AEAABcAAACIBBAAIgAAAFIAAAATAEGI98EAC24BAAAAkgEAAKsEEAAYAAAAigIAAA4AAADaHRAAGgAAAL0BAAAdAAAA7AkQABgAAACfAQAAPwAAAOwJEAAYAAAAoAEAADMAAADsCRAAGAAAAIMCAAATAAAApAAAAAwAAAAEAAAAkwEAAJQBAACVAQBBgPjBAAvVAQEAAACoAAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi5pc19jaGFyX2JvdW5kYXJ5KG4pAAAAAAAAEAAAAAQAAACWAQAAlwEAAJgBAABiYWNrdHJhY2UgY2FwdHVyZSBmYWlsZWReChAAZQAAAGcEAAAOAAAAgAUSAAIAAAAKCkNhdXNlZCBieToKCnN0YWNrIGJhY2t0cmFjZTpTdGFjayBiYWNrdHJhY2U6CgCafBAAEQAAAMQEEABjAAAANgAAAB8AAADEBBAAYwAAADwAAAAbAAAAAgBB3vnBAAsBBQBB6PnBAAsiIAAAqCAgICAgICAApAAAAAwAAAAEAAAAkwEAAJQBAACZAQBBlPrBAAv4GQEAAACoAAAACgpTdGFjazoKCicBBgELASMBAQFHAQQBAQEEAQICAMAEAgQBCQIBAfsHzwEFATEtAQEBAgECAQEsAQsGCgsBASMBChUQAWUIAQoBBCEBAQEeG1sLOgsEAQIBGBgrAywBBwIFCSk6NwEBAQQIBAEDBwoCDQEPAToBBAQIARQCGgECAjkBBAIEAgIDAwEeAgMBCwI5AQQFAQIEARQCFgYBAToBAgEBBAgBBwILAh4BPQEMATIBAwE3AQEDBQMBBAcCCwIdAToBAgEGAQUCFAIcAjkCBAQIARQCHQFIAQcDAQFaAQIHCwliAQIJCQEBB0kCGwEBAQEBNw4BBQECBQsBJAkBZgQBBgECAgIZAgQDEAQNAQICBgEPAV4BAAMAAx0CHgIeAkACAQcIAQILAwEFAS0FMwFBAiIBdgMEAgkBBgPbAgIBOgEBBwEBAQECCAYKAgEnAQgfMQQwAQEFAQEFASgJDAIgBAICAQM4AQECAwEBAzoIAgJABlIDAQ0BBwQBBgEDAjI/DQEiZQABAQMLAw0DDQMNAgwFCAIKAQIBAgUxBQEKAQENARANMyEAAnEDfQEPAWAgLwEAASQEAwUFAV0GXQMAAQAGAAFiBAEKAQEcBFACDiJOARcDZwMDAggBAwEEARkCBQGXAhoSDQEmCBkLLgMwAQIEAgIRARUCQgYCAgICDAEIASMBCwEzAQEDAgIFAgEBGwEOAgUCAQFkBQkDeQECAQQBAAGTEQAQAwEMECIBAgGpAQcBBgELASMBAQEvAS0CQwEVAwAB4gGVBQAGASoBCQADAQIFBCgDBAGlAgAEJgEaBQEBAAJPBEYLMQR7ATYPKQECAgoDMQQCAgIBBAEKATIDJAUBCD4BDAI0CQoEAgFfAwIBAQIGAQIBnQEDCBUCOQIDASUHAwVGBg0BAQEBAQ4CVQgCAwEBFwFUBgEBBAIBAu4EBgIBAhsCVQgCAQECagEBAQIGAQFlAQEBAgQBBQAJAQIAAgEBBAGQBAICBAEgCigGAgQIAQkGAgMuDQECAAcBBgEBUhYCBwECAQJ6BgMBAQIBBwEBSAIDAQEBAAILAjQFBQEBARcBABEGDwAMAwMABTsHCQQAAygCAAE/EUACAQIABAEHAQIAAgEEAC4CFwADCRACBx4ElAMANwQyCAEOARYFAQ8ABwERAgcBAgEFBT4hAaAOAAE9BAAF/gIAB20IAAUAAR5ggPAAQRoGGi8BCgEEAQUXAR8BwwEEBNABJAcCHgVgASoEAgICBAEBBgEBAwEBARQBUwGLCKYBJgkpACYBAQUBAisBBABWAgYACwUrAgNAwEAAAgYCJgIGAggBAQEBAQEBHwI1AQcBAQMDAQcDBAIGBA0FAwEHdAENARANZQEEAQIKAQEDBQYBAQEBAQEEAQYEAQIEBQUEAREgAwIANADlBgQDAgwmAQEFAQAuEh6EZgMEAT4CAgEBAQgVBQEDACsBDgZQAAcMBQAaBhoAUGAkBCR0CwEPAQcBAgELAQ8BBwECAAECAwEqAQkAMw0zXRYKFgBAAEAAVQFHAQICAQICAgQBDAEBAQcBQQEEAggBBwEcAQQBBQEBAwcBAAIZARkBHwEZAR8BGQEfARkBHwEZAQgACgEUBgYAPgBEABoGGgYaAABwAAcALQEBAQIBAgEBSAswFRABZQcCBgICAQQjAR4bWws6CQkBGAQBCQEDAQUrAzsJKhgBIDcBAQEECAQBAwcKAh0BOgEBAQIECAEJAQoCGgECAjkBBAIEAgIDAwEeAgMBCwI5AQQFAQIEARQCFgYBAToBAQIBBAgBBwMKAh4BOwEBAQwBCQEoAQMBNwEBAwUDAQQHAgsCHQE6AQICAQEDAwEEBwILAhwCOQIBAQIECAEJAQoCHQFIAQQBAgMBAQgBUQECBwwIYgECCQsHSQIbAQEBAQE3DgEFAQIFCwEkCQFmBAEGAQICAhkCBAMQBA0BAgIGAQ8BAAMABBwDHQIeAkACAQcIAQILCQEtAwEBdQIiAXYDBAIJAQYD2wICAToBAQcBAQEBAggGCgIBMB8xBDAKBAMmCQwCIAQCBjgBAQIDAQEFOAgCApgDAQ0BBwQBBgEDAsZAAAHDIQADjQFgIAAGaQIABAEKIAJQAgABAwEEARkCBQGXAhoSDQEmCBkLAQEsAzABAgQCAgIBJAFD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AABQAQAAUQEAAFIBAABTAQAAVAEAAFUBAABWAQAAVwEAAFgBAABZAQAAWgEAAFsBAABcAQAAXQEAAF4BAABfAQAAYAEAAGEBAABiAQAAYwEAAGQBAABlAQAAZgEAAGcBAABoAQAAaQEAAGoBAABrAQAAbAEAAG0BAABuAQAAbwEAAHABAABxAQAAcgEAAHMBAAB0AQAAdQEAAHYBAAB3AQAAeAEAAP8AAAB5AQAAegEAAHsBAAB8AQAAfQEAAH4BAACBAQAAUwIAAIIBAACDAQAAhAEAAIUBAACGAQAAVAIAAIcBAACIAQAAiQEAAFYCAACKAQAAVwIAAIsBAACMAQAAjgEAAN0BAACPAQAAWQIAAJABAABbAgAAkQEAAJIBAACTAQAAYAIAAJQBAABjAgAAlgEAAGkCAACXAQAAaAIAAJgBAACZAQAAnAEAAG8CAACdAQAAcgIAAJ8BAAB1AgAAoAEAAKEBAACiAQAAowEAAKQBAAClAQAApgEAAIACAACnAQAAqAEAAKkBAACDAgAArAEAAK0BAACuAQAAiAIAAK8BAACwAQAAsQEAAIoCAACyAQAAiwIAALMBAAC0AQAAtQEAALYBAAC3AQAAkgIAALgBAAC5AQAAvAEAAL0BAADEAQAAxgEAAMUBAADGAQAAxwEAAMkBAADIAQAAyQEAAMoBAADMAQAAywEAAMwBAADNAQAAzgEAAM8BAADQAQAA0QEAANIBAADTAQAA1AEAANUBAADWAQAA1wEAANgBAADZAQAA2gEAANsBAADcAQAA3gEAAN8BAADgAQAA4QEAAOIBAADjAQAA5AEAAOUBAADmAQAA5wEAAOgBAADpAQAA6gEAAOsBAADsAQAA7QEAAO4BAADvAQAA8QEAAPMBAADyAQAA8wEAAPQBAAD1AQAA9gEAAJUBAAD3AQAAvwEAAPgBAAD5AQAA+gEAAPsBAAD8AQAA/QEAAP4BAAD/AQAAAAIAAAECAAACAgAAAwIAAAQCAAAFAgAABgIAAAcCAAAIAgAACQIAAAoCAAALAgAADAIAAA0CAAAOAgAADwIAABACAAARAgAAEgIAABMCAAAUAgAAFQIAABYCAAAXAgAAGAIAABkCAAAaAgAAGwIAABwCAAAdAgAAHgIAAB8CAAAgAgAAngEAACICAAAjAgAAJAIAACUCAAAmAgAAJwIAACgC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AABiBQAAMwUAAGMFAAA0BQAAZAUAADUFAABlBQAANgUAAGYFAAA3BQAAZwUAADgFAABoBQAAOQUAAGkFAAA6BQAAagUAADsFAABrBQAAPAUAAGwFAAA9BQAAbQUAAD4FAABuBQAAPwUAAG8FAABABQAAcAUAAEEFAABxBQAAQgUAAHIFAABDBQAAcwUAAEQFAAB0BQAARQUAAHUFAABGBQAAdgUAAEcFAAB3BQAASAUAAHgFAABJBQAAeQUAAEoFAAB6BQAASwUAAHsFAABMBQAAfAUAAE0FAAB9BQAATgUAAH4FAABPBQAAfwUAAFAFAACABQAAUQUAAIEFAABSBQAAggUAAFMFAACDBQAAVAUAAIQFAABVBQAAhQUAAFYFAACGBQAAoBAAAAAtAAChEAAAAS0AAKIQAAACLQAAoxAAAAMtAACkEAAABC0AAKUQAAAFLQAAphAAAAYtAACnEAAABy0AAKgQAAAILQAAqRAAAAktAACqEAAACi0AAKsQAAALLQAArBAAAAwtAACtEAAADS0AAK4QAAAOLQAArxAAAA8tAACwEAAAEC0AALEQAAARLQAAshAAABItAACzEAAAEy0AALQQAAAULQAAtRAAABUtAAC2EAAAFi0AALcQAAAXLQAAuBAAABgtAAC5EAAAGS0AALoQAAAaLQAAuxAAABstAAC8EAAAHC0AAL0QAAAdLQAAvhAAAB4tAAC/EAAAHy0AAMAQAAAgLQAAwRAAACEtAADCEAAAIi0AAMMQAAAjLQAAxBAAACQtAADFEAAAJS0AAMcQAAAnLQAAzRAAAC0tAACgEwAAcKsAAKETAABxqwAAohMAAHKrAACjEwAAc6sAAKQTAAB0qwAApRMAAHWrAACmEwAAdqsAAKcTAAB3qwAAqBMAAHirAACpEwAAeasAAKoTAAB6qwAAqxMAAHurAACsEwAAfKsAAK0TAAB9qwAArhMAAH6rAACvEwAAf6sAALATAACAqwAAsRMAAIGrAACyEwAAgqsAALMTAACDqwAAtBMAAISrAAC1EwAAhasAALYTAACGqwAAtxMAAIerAAC4EwAAiKsAALkTAACJqwAAuhMAAIqrAAC7EwAAi6sAALwTAACMqwAAvRMAAI2rAAC+EwAAjqsAAL8TAACPqwAAwBMAAJCrAADBEwAAkasAAMITAACSqwAAwxMAAJOrAADEEwAAlKsAAMUTAACVqwAAxhMAAJarAADHEwAAl6sAAMgTAACYqwAAyRMAAJmrAADKEwAAmqsAAMsTAACbqwAAzBMAAJyrAADNEwAAnasAAM4TAACeqwAAzxMAAJ+rAADQEwAAoKsAANETAAChqwAA0hMAAKKrAADTEwAAo6sAANQTAACkqwAA1RMAAKWrAADWEwAApqsAANcTAACnqwAA2BMAAKirAADZEwAAqasAANoTAACqqwAA2xMAAKurAADcEwAArKsAAN0TAACtqwAA3hMAAK6rAADfEwAAr6sAAOATAACwqwAA4RMAALGrAADiEwAAsqsAAOMTAACzqwAA5BMAALSrAADlEwAAtasAAOYTAAC2qwAA5xMAALerAADoEwAAuKsAAOkTAAC5qwAA6hMAALqrAADrEwAAu6sAAOwTAAC8qwAA7RMAAL2rAADuEwAAvqsAAO8TAAC/qwAA8BMAAPgTAADxEwAA+RMAAPITAAD6EwAA8xMAAPsTAAD0EwAA/BMAAPUTAAD9EwAAiRwAAIocAACQHAAA0BAAAJEcAADREAAAkhwAANIQAACTHAAA0xAAAJQcAADUEAAAlRwAANUQAACWHAAA1hAAAJccAADXEAAAmBwAANgQAACZHAAA2RAAAJocAADaEAAAmxwAANsQAACcHAAA3BAAAJ0cAADdEAAAnhwAAN4QAACfHAAA3xAAAKAcAADgEAAAoRwAAOEQAACiHAAA4hAAAKMcAADjEAAApBwAAOQQAAClHAAA5RAAAKYcAADmEAAApxwAAOcQAACoHAAA6BAAAKkcAADpEAAAqhwAAOoQAACrHAAA6xAAAKwcAADsEAAArRwAAO0QAACuHAAA7hAAAK8cAADvEAAAsBwAAPAQAACxHAAA8RAAALIcAADyEAAAsxwAAPMQAAC0HAAA9BAAALUcAAD1EAAAthwAAPYQAAC3HAAA9xAAALgcAAD4EAAAuRwAAPkQAAC6HAAA+hAAAL0cAAD9EAAAvhwAAP4QAAC/HAAA/xAAAAAeAAABHgAAAh4AAAMeAAAEHgAABR4AAAYeAAAHHgAACB4AAAkeAAAKHgAACx4AAAweAAANHgAADh4AAA8eAAAQHgAAER4AABIeAAATHgAAFB4AABUeAAAWHgAAFx4AABgeAAAZHgAAGh4AABseAAAcHgAAHR4AAB4eAAAfHgAAIB4AACEeAAAiHgAAIx4AACQeAAAlHgAAJh4AACceAAAoHgAAKR4AACoeAAArHgAALB4AAC0eAAAuHgAALx4AADAeAAAxHgAAMh4AADMeAAA0HgAANR4AADYeAAA3HgAAOB4AADkeAAA6HgAAOx4AADweAAA9HgAAPh4AAD8eAABAHgAAQR4AAEIeAABDHgAARB4AAEUeAABGHgAARx4AAEgeAABJHgAASh4AAEseAABMHgAATR4AAE4eAABPHgAAUB4AAFEeAABSHgAAUx4AAFQeAABVHgAAVh4AAFceAABYHgAAWR4AAFoeAABbHgAAXB4AAF0eAABeHgAAXx4AAGAeAABhHgAAYh4AAGMeAABkHgAAZR4AAGYeAABnHgAAaB4AAGkeAABqHgAAax4AAGweAABtHgAAbh4AAG8eAABwHgAAcR4AAHIeAABzHgAAdB4AAHUeAAB2HgAAdx4AAHgeAAB5HgAAeh4AAHseAAB8HgAAfR4AAH4eAAB/HgAAgB4AAIEeAACCHgAAgx4AAIQeAACFHgAAhh4AAIceAACIHgAAiR4AAIoeAACLHgAAjB4AAI0eAACOHgAAjx4AAJAeAACRHgAAkh4AAJMeAACUHgAAlR4AAJ4eAADfAAAAoB4AAKEeAACiHgAAox4AAKQeAAClHgAAph4AAKceAACoHgAAqR4AAKoeAACrHgAArB4AAK0eAACuHgAArx4AALAeAACxHgAAsh4AALMeAAC0HgAAtR4AALYeAAC3HgAAuB4AALkeAAC6HgAAux4AALweAAC9HgAAvh4AAL8eAADAHgAAwR4AAMIeAADDHgAAxB4AAMUeAADGHgAAxx4AAMgeAADJHgAAyh4AAMseAADMHgAAzR4AAM4eAADPHgAA0B4AANEeAADSHgAA0x4AANQeAADVHgAA1h4AANceAADYHgAA2R4AANoeAADbHgAA3B4AAN0eAADeHgAA3x4AAOAeAADhHgAA4h4AAOMeAADkHgAA5R4AAOYeAADnHgAA6B4AAOkeAADqHgAA6x4AAOweAADtHgAA7h4AAO8eAADwHgAA8R4AAPIeAADzHgAA9B4AAPUeAAD2HgAA9x4AAPgeAAD5HgAA+h4AAPseAAD8HgAA/R4AAP4eAAD/HgAACB8AAAAfAAAJHwAAAR8AAAofAAACHwAACx8AAAMfAAAMHwAABB8AAA0fAAAFHwAADh8AAAYfAAAPHwAABx8AABgfAAAQHwAAGR8AABEfAAAaHwAAEh8AABsfAAATHwAAHB8AABQfAAAdHwAAFR8AACgfAAAgHwAAKR8AACEfAAAqHwAAIh8AACsfAAAjHwAALB8AACQfAAAtHwAAJR8AAC4fAAAmHwAALx8AACcfAAA4HwAAMB8AADkfAAAxHwAAOh8AADIfAAA7HwAAMx8AADwfAAA0HwAAPR8AADUfAAA+HwAANh8AAD8fAAA3HwAASB8AAEAfAABJHwAAQR8AAEofAABCHwAASx8AAEMfAABMHwAARB8AAE0fAABFHwAAWR8AAFEfAABbHwAAUx8AAF0fAABVHwAAXx8AAFcfAABoHwAAYB8AAGkfAABhHwAAah8AAGIfAABrHwAAYx8AAGwfAABkHwAAbR8AAGUfAABuHwAAZh8AAG8fAABnHwAAiB8AAIAfAACJHwAAgR8AAIofAACCHwAAix8AAIMfAACMHwAAhB8AAI0fAACFHwAAjh8AAIYfAACPHwAAhx8AAJgfAACQHwAAmR8AAJEfAACaHwAAkh8AAJsfAACTHwAAnB8AAJQfAACdHwAAlR8AAJ4fAACWHwAAnx8AAJcfAACoHwAAoB8AAKkfAAChHwAAqh8AAKIfAACrHwAAox8AAKwfAACkHwAArR8AAKUfAACuHwAAph8AAK8fAACnHwAAuB8AALAfAAC5HwAAsR8AALofAABwHwAAux8AAHEfAAC8HwAAsx8AAMgfAAByHwAAyR8AAHMfAADKHwAAdB8AAMsfAAB1HwAAzB8AAMMfAADYHwAA0B8AANkfAADRHwAA2h8AAHYfAADbHwAAdx8AAOgfAADgHwAA6R8AAOEfAADqHwAAeh8AAOsfAAB7HwAA7B8AAOUfAAD4HwAAeB8AAPkfAAB5HwAA+h8AAHwfAAD7HwAAfR8AAPwfAADzHwAAJiEAAMkDAAAqIQAAawAAACshAADlAAAAMiEAAE4hAABgIQAAcCEAAGEhAABxIQAAYiEAAHIhAABjIQAAcyEAAGQhAAB0IQAAZSEAAHUhAABmIQAAdiEAAGchAAB3IQAAaCEAAHghAABpIQAAeSEAAGohAAB6IQAAayEAAHshAABsIQAAfCEAAG0hAAB9IQAAbiEAAH4hAABvIQAAfyEAAIMhAACEIQAAtiQAANAkAAC3JAAA0SQAALgkAADSJAAAuSQAANMkAAC6JAAA1CQAALskAADVJAAAvCQAANYkAAC9JAAA1yQAAL4kAADYJAAAvyQAANkkAADAJAAA2iQAAMEkAADbJAAAwiQAANwkAADDJAAA3SQAAMQkAADeJAAAxSQAAN8kAADGJAAA4CQAAMckAADhJAAAyCQAAOIkAADJJAAA4yQAAMokAADkJAAAyyQAAOUkAADMJAAA5iQAAM0kAADnJAAAziQAAOgkAADPJAAA6SQAAAAsAAAwLAAAASwAADEsAAACLAAAMiwAAAMsAAAzLAAABCwAADQsAAAFLAAANSwAAAYsAAA2LAAABywAADcsAAAILAAAOCwAAAksAAA5LAAACiwAADosAAALLAAAOywAAAwsAAA8LAAADSwAAD0sAAAOLAAAPiwAAA8sAAA/LAAAECwAAEAsAAARLAAAQSwAABIsAABCLAAAEywAAEMsAAAULAAARCwAABUsAABFLAAAFiwAAEYsAAAXLAAARywAABgsAABILAAAGSwAAEksAAAaLAAASiwAABssAABLLAAAHCwAAEwsAAAdLAAATSwAAB4sAABOLAAAHywAAE8sAAAgLAAAUCwAACEsAABRLAAAIiwAAFIsAAAjLAAAUywAACQsAABULAAAJSwAAFUsAAAmLAAAViwAACcsAABXLAAAKCwAAFgsAAApLAAAWSwAACosAABaLAAAKywAAFssAAAsLAAAXCwAAC0sAABdLAAALiwAAF4sAAAvLAAAXywAAGAsAABhLAAAYiwAAGsCAABjLAAAfR0AAGQsAAB9AgAAZywAAGgsAABpLAAAaiwAAGssAABsLAAAbSwAAFECAABuLAAAcQIAAG8sAABQAgAAcCwAAFICAAByLAAAcywAAHUsAAB2LAAAfiwAAD8CAAB/LAAAQAIAAIAsAACBLAAAgiwAAIMsAACELAAAhSwAAIYsAACHLAAAiCwAAIksAACKLAAAiywAAIwsAACNLAAAjiwAAI8sAACQLAAAkSwAAJIsAACTLAAAlCwAAJUsAACWLAAAlywAAJgsAACZLAAAmiwAAJssAACcLAAAnSwAAJ4sAACfLAAAoCwAAKEsAACiLAAAoywAAKQsAAClLAAApiwAAKcsAACoLAAAqSwAAKosAACrLAAArCwAAK0sAACuLAAArywAALAsAACxLAAAsiwAALMsAAC0LAAAtSwAALYsAAC3LAAAuCwAALksAAC6LAAAuywAALwsAAC9LAAAviwAAL8sAADALAAAwSwAAMIsAADDLAAAxCwAAMUsAADGLAAAxywAAMgsAADJLAAAyiwAAMssAADMLAAAzSwAAM4sAADPLAAA0CwAANEsAADSLAAA0ywAANQsAADVLAAA1iwAANcsAADYLAAA2SwAANosAADbLAAA3CwAAN0sAADeLAAA3ywAAOAsAADhLAAA4iwAAOMsAADrLAAA7CwAAO0sAADuLAAA8iwAAPMsAABApgAAQaYAAEKmAABDpgAARKYAAEWmAABGpgAAR6YAAEimAABJpgAASqYAAEumAABMpgAATaYAAE6mAABPpgAAUKYAAFGmAABSpgAAU6YAAFSmAABVpgAAVqYAAFemAABYpgAAWaYAAFqmAABbpgAAXKYAAF2mAABepgAAX6YAAGCmAABhpgAAYqYAAGOmAABkpgAAZaYAAGamAABnpgAAaKYAAGmmAABqpgAAa6YAAGymAABtpgAAgKYAAIGmAACCpgAAg6YAAISmAACFpgAAhqYAAIemAACIpgAAiaYAAIqmAACLpgAAjKYAAI2mAACOpgAAj6YAAJCmAACRpgAAkqYAAJOmAACUpgAAlaYAAJamAACXpgAAmKYAAJmmAACapgAAm6YAACKnAAAjpwAAJKcAACWnAAAmpwAAJ6cAACinAAAppwAAKqcAACunAAAspwAALacAAC6nAAAvpwAAMqcAADOnAAA0pwAANacAADanAAA3pwAAOKcAADmnAAA6pwAAO6cAADynAAA9pwAAPqcAAD+nAABApwAAQacAAEKnAABDpwAARKcAAEWnAABGpwAAR6cAAEinAABJpwAASqcAAEunAABMpwAATacAAE6nAABPpwAAUKcAAFGnAABSpwAAU6cAAFSnAABVpwAAVqcAAFenAABYpwAAWacAAFqnAABbpwAAXKcAAF2nAABepwAAX6cAAGCnAABhpwAAYqcAAGOnAABkpwAAZacAAGanAABnpwAAaKcAAGmnAABqpwAAa6cAAGynAABtpwAAbqcAAG+nAAB5pwAAeqcAAHunAAB8pwAAfacAAHkdAAB+pwAAf6cAAICnAACBpwAAgqcAAIOnAACEpwAAhacAAIan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AAAAgQAAAIEBAACBAgAAgQMAAIEEAACBBQAAgQYAAIEHAACBCAAAgQkAAIEKAACBCwAAgQwAAIENAACBDgAAgQ8AAIEQAACBEQAAgRIAAIETAACBFAAAgRUAAIEWAACBFwAAgRgAAIEZAACBGgAAgRsAAIEcAACBHQAAgR4AAIEfAACBIAAAgSEAAIEiAACBIwAAgSQAAIElAACBJgAAgScAAIEoAACBKQAAgSoAAIErAACBLAAAgS0AAIEuAACBLwAAgTAAAIExAACBMgAAgTMAAIE0AACBNQAAgTYAAIE3AACBOAAAgTkAAIE6AACBOwAAgTwAAIE9AACBPgAAgT8AAIFAAACBQQAAgUIAAIFDAACBRAAAgUUAAIFGAACBRwAAgUgAAIFJAACBSgAAgUsAAIFMAACBTQAAgU4AAIFPAACBUAAAgVEAAIFSAACBUwAAgVQAAIFVAACBVgAAgVcAAIFYAACBWQAAgVoAAIFbAACBXAAAgV0AAIFeAACBXwAAgWAAAIFhAACBYgAAgWMAAIFkAACBZQAAgWYAAIFnAACBaAAAgWkAAIFqAACBawAAgWwAAIFtAACBbgAAgW8AAIFwAACBcQAAgXIAAIFzAACBdAAAgXUAAIF2AACBdwAAgXgAAIF5AACBegAAgXsAAIF8AACBfQAAgX4AAIF/AACBgAAAgYEAAIGCAACBgwAAgYQAAIGFAACBhgAAgYcAAIGIAACBiQAAgYoAAIGLAACBjAAAgY0AAIGOAACBjwAAgZAAAIGRAACBkgAAgZMAAIGUAACBlQAAgZYAAIGXAACBmAAAgZkAAIGaAACBmwAAgZwAAIGdAACBngAAgZ8AAIGgAACBoQAAgaIAAIGjAACBpAAAgaUAAIGmAACBpwAAgagAAIGpAACBqgAAgasAAIGsAACBrQAAga4AAIGvAACBsAAAgbEAAIGyAACBswAAgbQAAIG1AACBtgAAgbcAAIG4AACBuQAAgboAAIG7AACBvAAAgb0AAIG+AACBvwAAgcAAAIHBAACBwgAAgcMAAIHEAACBxQAAgcYAAIHHAACByAAAgckAAIHKAACBywAAgcwAAIHNAACBzgAAgc8AAIHQAACB0QAAgdIAAIHTAACB1AAAgdUAAIHWAACB1wAAgdgAAIHZAACB2gAAgdsAAIHcAACB3QAAgd4AAIHfAACB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AGoAAAAlAAAAKAAAAEhhc2ggdGFibGUgY2FwYWNpdHkgb3ZlcmZsb3eYHhEAHAAAABIeEAAqAAAAJQAAACgAAACkFBAAagAAALYAAAAUAAAApAAAAAwAAAAEAAAAoAEAAKEBAACiAQBB/L3EAAvlGQEAAACoAAAAAAAAAAQAAAAEAAAARwAAAJP0KqYkdcJruBMj36YIMbHK3Z7guRk0Y3X0d+GGnSFzAAAAAAQAAAAEAAAAowEAAAAAAAAEAAAABAAAAKQBAAAAAAAABAAAAAQAAACkAQAAAAAAAAQAAAAEAAAAsQAAAAAAAAAEAAAABAAAALIAAAAAAAAABAAAAAQAAAClAQAAaW5uZXIAAAAAAAAABAAAAAQAAACmAQAASW1hZ2VCdWZmZXJTaXplYWN0dWFsUG9sbGVkQWZ0ZXJFbmRPZkltYWdlUG9sbGVkQWZ0ZXJGYXRhbEVycm9yRXJyAAAAAAAABAAAAAQAAACnAQAARm9ybWF0RXJyb3JSaWZmU2lnbmF0dXJlSW52YWxpZFdlYnBTaWduYXR1cmVJbnZhbGlkQ2h1bmtNaXNzaW5nQ2h1bmtIZWFkZXJJbnZhbGlkUmVzZXJ2ZWRCaXRTZXRJbnZhbGlkQWxwaGFQcmVwcm9jZXNzaW5nSW52YWxpZENvbXByZXNzaW9uTWV0aG9kQWxwaGFDaHVua1NpemVNaXNtYXRjaEltYWdlVG9vTGFyZ2VGcmFtZU91dHNpZGVJbWFnZUxvc3NsZXNzU2lnbmF0dXJlSW52YWxpZFZlcnNpb25OdW1iZXJJbnZhbGlkSW52YWxpZENvbG9yQ2FjaGVCaXRzSHVmZm1hbkVycm9yQml0U3RyZWFtRXJyb3JUcmFuc2Zvcm1FcnJvclZwOE1hZ2ljSW52YWxpZE5vdEVub3VnaEluaXREYXRhQ29sb3JTcGFjZUludmFsaWRMdW1hUHJlZGljdGlvbk1vZGVJbnZhbGlkSW50cmFQcmVkaWN0aW9uTW9kZUludmFsaWRDaHJvbWFQcmVkaWN0aW9uTW9kZUludmFsaWRJbmNvbnNpc3RlbnRJbWFnZVNpemVzVW5zdXBwb3J0ZWRGZWF0dXJlSW52YWxpZFBhcmFtZXRlck1lbW9yeUxpbWl0RXhjZWVkZWRJbnZhbGlkQ2h1bmtTaXplTm9Nb3JlRnJhbWVzSW52YWxpZERpbWVuc2lvbnMAAAAABAAAAAQAAACoAQAAVHJ5UmVzZXJ2ZUVycm9yTGltaXRzRXhjZWVkZWQAAACrAAAACAAAAAQAAAAtAAAAqwAAAAgAAAAEAAAArAAAAC0AAABUIhEArQAAAK4AAACvAAAAsAAAAKMAAABVbnJlcHJlc2VudGFibGVJbnZhbGlkS2V5d29yZFNpemVNaXNzaW5nTnVsbFNlcGFyYXRvckluZmxhdGlvbkVycm9yT3V0T2ZEZWNvbXByZXNzaW9uU3BhY2VJbnZhbGlkQ29tcHJlc3Npb25GbGFnTWlzc2luZ0NvbXByZXNzaW9uRmxhZwAAAAAAAAQAAAAEAAAAsQAAAAAAAAAEAAAABAAAAGcAAABDcmNNaXNtYXRjaGNyY192YWxjcmNfc3VtSW52YWxpZFNpZ25hdHVyZU1pc3NpbmdGY3RsTWlzc2luZ0ltYWdlRGF0YUNodW5rQmVmb3JlSWhkckFmdGVySWRhdEJlZm9yZVBsdGVBZnRlclBsdGVPdXRzaWRlUGx0ZUlkYXREdXBsaWNhdGVDaHVua0FwbmdPcmRlcnByZXNlbnRTaG9ydFBhbGV0dGVsZW4AAAAAAAEAAAABAAAAqQEAAEludmFsaWRTYml0Q2h1bmtTaXplY29sb3JfdHlwZQAAAAAAAAEAAAABAAAAqgEAAEludmFsaWRTYml0c2FtcGxlX2RlcHRoc2JpdFBhbGV0dGVSZXF1aXJlZAAAAAAAAAQAAAAEAAAAqwEAAEludmFsaWRDb2xvckJpdERlcHRoYml0X2RlcHRoQ29sb3JXaXRoQmFkVHJuc0ludmFsaWRCaXREZXB0aEludmFsaWRDb2xvclR5cGVJbnZhbGlkRGlzcG9zZU9wSW52YWxpZEJsZW5kT3BJbnZhbGlkVW5pdEludmFsaWRTcmdiUmVuZGVyaW5nSW50ZW50VW5rbm93bkNvbXByZXNzaW9uTWV0aG9kVW5rbm93bkZpbHRlck1ldGhvZFVua25vd25JbnRlcmxhY2VNZXRob2RCYWRTdWJGcmFtZUJvdW5kcwAAAAAAAAAEAAAABAAAAKwBAABDb3JydXB0RmxhdGVTdHJlYW1lcnJOb01vcmVJbWFnZURhdGFCYWRUZXh0RW5jb2RpbmdGZGF0U2hvcnRlclRoYW5Gb3VyQnl0ZXNVbmV4cGVjdGVkUmVzdGFydE9mRGF0YUNodW5rU2VxdWVuY2VDaHVua0xlbmd0aFdyb25nVW5yZWNvZ25pemVkQ3JpdGljYWxDaHVua3R5cGVfc3RyQmFkR2FtbWFWYWx1ZQAAAAAAAAAIAAAABAAAAK0BAABBbGxvY0Vycm9ybm9uX2V4aGF1c3RpdmVUaGUgZW5jb2RlciBvciBkZWNvZGVyIGZvciAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgY29sb3IgdHlwZSBgAAAALCYRABsAAABHJhEAIgAAAP/EEQABAAAAQ29udmVydGluZyB3aXRoIHRoZSB0ZXhlbCBtZW1vcnkgbGF5b3V0ICBpcyBub3Qgc3VwcG9ydGVkAAAAhCYRACgAAACsJhEAEQAAAFRoZSBjb2xvcmltZXRyaWMgaW50ZXJwcmV0YXRpb24gb2YgYSBDSUNQIGNvbG9yIHNwYWNlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGDQJhEATAAAAP/EEQABAAAAVGhlIGZpbGUgZXh0ZW5zaW9uICB3YXMgbm90IHJlY29nbml6ZWQgYXMgYW4gaW1hZ2UgZm9ybWF0AAAALCcRABMAAAA/JxEAJgAAAFRoZSBpbWFnZSBmb3JtYXQgY291bGQgbm90IGJlIGRldGVybWluZWRUaGUgaW1hZ2UgZm9ybWF0IAAAAKAnEQARAAAArCYRABEAAABUaGUgZGVjb2RlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmb3JtYXQgZmVhdHVyZSDEJxEAMAAAAFRoZSBkZWNvZGVyIGZvciAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZm9ybWF0IGZlYXR1cmVzIAAA/CcRABAAAAAMKBEAJgAAAFRoZSBJbWFnZSdzIGRpbWVuc2lvbnMgYXJlIGVpdGhlciB0b28gc21hbGwgb3IgdG9vIGxhcmdlVGhlIGVuZCB0aGUgaW1hZ2Ugc3RyZWFtIGhhcyBiZWVuIHJlYWNoZWQgZHVlIHRvIGEgcHJldmlvdXMgZXJyb3JUaGUgQ0lDUCAgY2FuIG5vdCBiZSB1c2VkIGZvciBSR0IgaW1hZ2VzAAAAvSgRAAkAAADGKBEAHwAAAFRoZSBwYXJhbWV0ZXIgaXMgbWFsZm9ybWVkOiD4KBEAHAAAAFRoZSBlbmQgb2YgdGhlIGltYWdlIGhhcyBiZWVuIHJlYWNoZWRUaGUgY29sb3Igc3BhY2UgIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCAAAEEpEQAQAAAAUSkRAB0AAADQDBIAAQAAAEZvcm1hdCBlcnJvciBlbmNvZGluZyAAAIgpEQAWAAAAiCkRABYAAADkCxIAAgAAAEZvcm1hdCBlcnJvckZvcm1hdCBlcnJvciBkZWNvZGluZyAAAMQpEQAWAAAAxCkRABYAAACABRIAAgAAAEltYWdlIHNpemUgZXhjZWVkcyBsaW1pdFRoZSBmb2xsb3dpbmcgc3RyaWN0IGxpbWl0cyBhcmUgc3BlY2lmaWVkIGJ1dCBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBvcGVydGF0aW9uOiBgLgAAAFsqEQACAAAA/8QRAAEAAABgVW5rbm93bmAAAACuAQAAEAAAAAQAAACvAQAArgEAABAAAAAEAAAAsAEAAK8BAAB8KhEAoAAAALEBAAC6AAAAsgEAAKMAAACzAQAAEAAAAAQAAAC0AQAAswEAABAAAAAEAAAAtQEAALQBAAC4KhEAtgEAALcBAAC6AAAAuAEAAKMAAAAvCxAAZQAAAA4CAAA/AAAAtA4QAG0AAADRAgAAQwAAALQOEABtAAAA0gIAABMAAABjYXN0X3BpeGVscyByZXR1cm5lZCB0aGUgcmlnaHQgbnVtYmVyIG9mIHBpeGVscwC0DhAAbQAAAJcGAAAOAAAAiVBORw0KGgr/2P9HSUY4OWFHSUY4N2FSSUZGAAAAAFdFQlD/////AAAAAE1NACpERFMgQk0AAAEAIz9SQURJQU5DRQAAAABmdHlwYXZpZv//AAB2LzEBcW9pZlAxUDJQM1A0UDVQNlA3ZmFyYmZlbGQAAABkKxEACAAAAAEAQezXxAALlQhsKxEAAwAAAAEAAAAAAAAAAQAAAG8rEQAGAAAAAQAAAAAAAAACAAAAdSsRAAYAAAABAAAAAAAAAAIAAAB7KxEADAAAAIcrEQAIAAAAAwAAAI8rEQAEAAAAAQAAAAAAAAAFAAAADiwQAAQAAAABAAAAAAAAAAUAAACTKxEABAAAAAEAAAAAAAAABwAAAJcrEQACAAAAAQAAAAAAAAAIAAAAmSsRAAQAAAABAAAAAAAAAAkAAACdKxEACgAAAAEAAAAAAAAACgAAAKcrEQAMAAAAsysRAAQAAAANAAAAtysRAAQAAAABAAAAAAAAAAsAAAC7KxEABAAAAAEAAAAAAAAADgAAAL8rEQACAAAAAQAAAAAAAAAEAAAAwSsRAAIAAAABAAAAAAAAAAQAAADDKxEAAgAAAAEAAAAAAAAABAAAAMUrEQACAAAAAQAAAAAAAAAEAAAAxysRAAIAAAABAAAAAAAAAAQAAADJKxEAAgAAAAEAAAAAAAAABAAAAMsrEQACAAAAAQAAAAAAAAAEAAAAzSsRAAgAAAABAAAAAAAAAAwAAAB8EhAAbQAAAEMEAAAnAAAAfBIQAG0AAABHBAAANgAAAHwSEABtAAAASgQAADcAAAB8EhAAbQAAAE0EAAA7AAAAfBIQAG0AAABQBAAAPAAAAHwSEABtAAAAYgQAAB0AAAB8EhAAbQAAAHEEAAAdAAAAfBIQAG0AAAB6BAAAQwAAAGFzc2VydGlvbiBmYWlsZWQ6IGJ1ZmZlci5sZW4oKS5pc19tdWx0aXBsZV9vZihmcm9tX2xheW91dC5jaGFubmVscygpKQAAAHwSEABtAAAAnAQAAAkAAAAAAAAACAAAAAQAAAC5AQAAaW5wdXQgbGF5b3V0IGFscmVhZHkgYWxsb2NhdGVkIHdpdGggYXBwcm9wcmlhdGUgbGF5b3V0AAB8EhAAbQAAAKIEAAAOAAAAAAAAAAEAAAABAAAAugEAAAAAAAABAAAAAQAAALsBAAAAAAAAAQAAAAEAAAC8AQAAAAAAAAQAAAAEAAAAvQEAAFRyeUZyb21TbGljZUVycm9yAAAAyCMQAGsAAAA2AAAAFAAAAMgjEABrAAAAYQAAAEEAAADIIxAAawAAAGEAAAAxAAAAyCMQAGsAAABUAAAAQQAAAMgjEABrAAAAVAAAADEAAADIIxAAawAAAIsAAAAoAAAAyCMQAGsAAACMAAAANQAAAMgjEABrAAAAjAAAACUAAADIIxAAawAAAIsAAAAfAAAAyCMQAGsAAACDAAAAIwAAAMgjEABrAAAAgwAAAFYAAADIIxAAawAAAIMAAABHAAAAyCMQAGsAAACDAAAAEwAAAMgjEABrAAAAdAAAADIAAADIIxAAawAAAHUAAAA5AEGM4MQAC7UBAQAAAL4BAADIIxAAawAAAHUAAAApAAAAyCMQAGsAAAB0AAAAIwAAAMgjEABrAAAApAAAABEAAADIIxAAawAAAKcAAAARAAAAyCMQAGsAAACvAAAAEQAAAMgjEABrAAAAsgAAABEAAADIIxAAawAAALoAAAAfAAAAyCMQAGsAAAC/AAAAHwAAAMgjEABrAAAAxAAAACAAAADIIxAAawAAAMYAAAAfAAAAyCMQAGsAAADIAAAAJABBzOHEAAvVGQEAAAC/AQAApBQQAGoAAAA3AAAASQAAAKQUEABqAAAAPgAAAE4AAACkFBAAagAAAE0AAAApAAAApBQQAGoAAABZAAAAGAAAAKQUEABqAAAAZgAAACgAAACkFBAAagAAAG0AAAAaAAAApBQQAGoAAACHAAAAGwAAAKQUEABqAAAAdQAAACQAAACkFBAAagAAAHwAAAAiAAAApBQQAGoAAAB9AAAAIgAAAKQUEABqAAAALwAAAA0AAAAtDBAAbgAAACIAAAASAAAALQwQAG4AAAAjAAAAEgAAAC0MEABuAAAAJAAAABIAAAAtDBAAbgAAACUAAAASAAAALQwQAG4AAABVAAAAFAAAAC0MEABuAAAAVQAAACwAAAAtDBAAbgAAAFYAAAAaAAAALQwQAG4AAABWAAAANgAAAC0MEABuAAAAbAAAABEAAAAtDBAAbgAAAGwAAAAtAAAALQwQAG4AAABvAAAAEQAAAC0MEABuAAAAbwAAAC0AAAAtDBAAbgAAAIQAAAAKAAAALQwQAG4AAACEAAAAJgAAAC0MEABuAAAAhQAAABEAAAAtDBAAbgAAAIUAAAApAAAALQwQAG4AAADfAAAAGgAAAC0MEABuAAAA5QAAABoAAAC+BxAAawAAALICAAA7AAAALhUQAHUAAAAlAAAAFQAAAC4VEAB1AAAAMQAAAB0AAAAuFRAAdQAAACoAAAARAAAALhUQAHUAAAAqAAAAPAAAAGFzc2VydGlvbiBmYWlsZWQ6IHJhbmdlLmVuZCA8PSBpbWFnZV9kYXRhLmxlbigpAC4VEAB1AAAATAAAAAUAAAAuFRAAdQAAAFQAAAAFAAAALhUQAHUAAABXAAAANAAAAC4VEAB1AAAAXAAAAAUAAAAuFRAAdQAAAF8AAAA0AAAALhUQAHUAAABkAAAABQAAAC4VEAB1AAAAZwAAADQAAAAuFRAAdQAAAGwAAAAFAAAALhUQAHUAAABvAAAANAAAAC4VEAB1AAAAdAAAACQAAAAuFRAAdQAAAHQAAAAyAAAALhUQAHUAAAB4AAAAEwAAAC4VEAB1AAAAdwAAABkAAAAuFRAAdQAAAHYAAAAgAAAALhUQAHUAAACJAAAABQAAAC4VEAB1AAAAjQAAADEAAAAuFRAAdQAAAI0AAABEAAAALhUQAHUAAACSAAAAJAAAAC4VEAB1AAAAkgAAADIAAAAuFRAAdQAAAJUAAAAuAAAALhUQAHUAAACVAAAAEwAAAC4VEAB1AAAAlAAAACAAAAAuFRAAdQAAALQAAAAFAAAALhUQAHUAAAC4AAAADQAAAC4VEAB1AAAAuQAAAA0AAAAuFRAAdQAAAL8AAAAFAAAALhUQAHUAAADDAAAADQAAAC4VEAB1AAAAxAAAAA0AAAAuFRAAdQAAAMoAAAAkAAAALhUQAHUAAADKAAAAMgAAAC4VEAB1AAAAzwAAABkAAAAuFRAAdQAAAM4AAAATAAAALhUQAHUAAADNAAAAGAAAAC4VEAB1AAAAywAAACAAAAAuFRAAdQAAAOEAAAAkAAAALhUQAHUAAADhAAAAMgAAAC4VEAB1AAAA5QAAABMAAAAuFRAAdQAAAOsAAAATAAAALhUQAHUAAADsAAAAEwAAAC4VEAB1AAAA7QAAABMAAAAuFRAAdQAAAO4AAAATAAAALhUQAHUAAADiAAAAEwAAAC4VEAB1AAAAGwEAACQAAAAuFRAAdQAAABsBAAAyAAAALhUQAHUAAAAfAQAAEwAAAC4VEAB1AAAAHgEAABgAAAAuFRAAdQAAABwBAAAgAAAALhUQAHUAAABAAQAAJAAAAC4VEAB1AAAAQAEAADIAAAAuFRAAdQAAAEMBAAA3AAAALhUQAHUAAABEAQAALgAAAC4VEAB1AAAARAEAABMAAAAuFRAAdQAAAEMBAAAYAAAALhUQAHUAAABBAQAAIAAAAC4VEAB1AAAAagEAACAAAAAuFRAAdQAAAHIBAAAOAAAALhUQAHUAAABvAQAAKgAAAGFzc2VydGlvbiBmYWlsZWQ6IHRhYmxlX3NpemUgPiAwLhUQAHUAAACXAQAABQAAAC4VEAB1AAAAowEAAEIAAAAuFRAAdQAAABgCAAA6AAAALhUQAHUAAAAjAgAAOAAAAC4VEAB1AAAAKAIAACIAAAAuFRAAdQAAADwCAAA5AAAALhUQAHUAAAAjAgAAHAAAAC4VEAB1AAAAGAIAABgAAAAuFRAAdQAAAPMBAAAfAAAAlA8QAHkAAABaAAAAGAAAAJQPEAB5AAAAbQEAABgAAAAFAxAAZgAAAFoAAAAeAAAABQMQAGYAAABbAAAAHgAAAAUDEABmAAAAXAAAAB4AAAAFAxAAZgAAAF0AAAAlAAAABQMQAGYAAABgAAAANQAAAAUDEABmAAAAYwAAACUAAAAFAxAAZgAAAGMAAABBAAAABQMQAGYAAACTAAAAGQAAAAUDEABmAAAAlAAAABkAAAAFAxAAZgAAAJUAAAAZAAAABQMQAGYAAACQAAAAJAAAAAUDEABmAAAAjwAAACQAAAAFAxAAZgAAAHYAAAAVAAAABQMQAGYAAAB3AAAAFQAAAAUDEABmAAAAeAAAABUAAAAFAxAAZgAAAKUAAAAjAAAABQMQAGYAAACmAAAAFwAAAAUDEABmAAAAqAAAAC4AAAAFAxAAZgAAAKgAAABGAAAABQMQAGYAAACpAAAALgAAAAUDEABmAAAAqQAAAEYAAAAFAxAAZgAAANAAAAApAAAABQMQAGYAAADRAAAAKQAAAAUDEABmAAAA0wAAACkAAAAFAxAAZgAAANQAAAApAAAABQMQAGYAAADWAAAAHAAAAAUDEABmAAAArQAAACoAAAAFAxAAZgAAAOYAAAAjAAAABQMQAGYAAADnAAAAFwAAAAUDEABmAAAA6QAAABcAAAAFAxAAZgAAAOoAAAAXAAAABQMQAGYAAAAMAQAAJQAAAAUDEABmAAAADQEAACUAAAAFAxAAZgAAAO8AAAApAAAABQMQAGYAAAAeAQAABQAAAAUDEABmAAAAHwEAAAUAAAAFAxAAZgAAACABAAAFAAAABQMQAGYAAAAvAQAACgAAAAUDEABmAAAANgEAAAoAAAAFAxAAZgAAADwBAAATAAAABQMQAGYAAAA9AQAAEwAAAAUDEABmAAAAPgEAABMAAAAEAAUABgAHAAgACQAKAAoACwAMAA0ADgAPABAAEQARABIAEwAUABQAFQAVABYAFgAXABcAGAAZABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJQAmACcAKAApACoAKwAsAC0ALgAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBbAF0AXwBgAGIAZABlAGYAaABqAGwAbgBwAHIAdAB2AHoAfAB+AIAAggCEAIYAiACKAIwAjwCRAJQAlwCaAJ0ABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA8AD4AQABCAEQARgBIAEoATABOAFAAUgBUAFYAWABaAFwAXgBgAGIAZABmAGgAagBsAG4AcAByAHQAdwB6AH0AgACDAIYAiQCMAI8AkgCVAJgAmwCeAKEApACnAKoArQCxALUAuQC9AMEAxQDJAM0A0QDVANkA3QDhAOUA6gDvAPUA+QD+AAMBCAENARIBFwEcAdAoEABmAAAAJQgAAEUAAADQKBAAZgAAADgIAAAxAAAA0CgQAGYAAAAiCAAAHgAAANAoEABmAAAAHAgAAEEAAADQKBAAZgAAAGgIAAAwAAAA0CgQAGYAAABcCAAAOwAAANAoEABmAAAAgQgAAAUAAADQKBAAZgAAAIQIAAAmAAAA0CgQAGYAAACICAAAKwAAANAoEABmAAAAiAgAACAAAADQKBAAZgAAAKIIAAAlAAAA0CgQAGYAAACiCAAAHgAAANAoEABmAAAA8AgAACIAAADQKBAAZgAAAPAIAAAKAAAA0CgQAGYAAADdCAAAHgAAANAoEABmAAAACgkAAB4AAADQKBAAZgAAAAsJAAAXAAAA0CgQAGYAAAAPCQAAJgAAANAoEABmAAAAEgkAACIAAADQKBAAZgAAAAwJAAAdAAAASU8gRXJyb3I6IAAAZD0RAAoAAABJbnZhbGlkIFJJRkYgc2lnbmF0dXJlOiB4PREAGAAAAAIAAAAAAAAAAgBBrPvEAAvlFiAAAOJJbnZhbGlkIFdlYlAgc2lnbmF0dXJlOiCwPREAGAAAAEFuIGV4cGVjdGVkIGNodW5rIHdhcyBtaXNzaW5nSW52YWxpZCBDaHVuayBoZWFkZXI6IADtPREAFgAAAFJlc2VydmVkIGJpdHMgc2V0QWxwaGEgY2h1bmsgcHJlcHJvY2Vzc2luZyBmbGFnIGludmFsaWRJbnZhbGlkIGNvbXByZXNzaW9uIG1ldGhvZEFscGhhIGNodW5rIHNpemUgbWlzbWF0Y2hJbWFnZSB0b28gbGFyZ2VGcmFtZSBvdXRzaWRlIGltYWdlSW52YWxpZCBsb3NzbGVzcyBzaWduYXR1cmU6IJg+EQAcAAAASW52YWxpZCBsb3NzbGVzcyB2ZXJzaW9uIG51bWJlcjogAAAAvD4RACEAAABJbnZhbGlkIGNvbG9yIGNhY2hlIGJpdHM6IAAA6D4RABoAAABJbnZhbGlkIEh1ZmZtYW4gY29kZUNvcnJ1cHQgYml0c3RyZWFtSW52YWxpZCB0cmFuc2Zvcm1JbnZhbGlkIFZQOCBtYWdpYzogAAAAQj8RABMAAABOb3QgZW5vdWdoIFZQOCBpbml0IGRhdGFJbnZhbGlkIFZQOCBjb2xvciBzcGFjZTogAAAAeD8RABkAAABJbnZhbGlkIFZQOCBsdW1hIHByZWRpY3Rpb24gbW9kZTogAACcPxEAIgAAAEludmFsaWQgVlA4IGludHJhIHByZWRpY3Rpb24gbW9kZTogAMg/EQAjAAAASW52YWxpZCBWUDggY2hyb21hIHByZWRpY3Rpb24gbW9kZTog9D8RACQAAABJbmNvbnNpc3RlbnQgaW1hZ2Ugc2l6ZXNVbnN1cHBvcnRlZCBmZWF0dXJlOiAAAAA4QBEAFQAAAEludmFsaWQgcGFyYW1ldGVyOiAAWEARABMAAABNZW1vcnkgbGltaXQgZXhjZWVkZWRJbnZhbGlkIGNodW5rIHNpemVObyBtb3JlIGZyYW1lc2Nsb3N1cmUgaW52b2tlZCByZWN1cnNpdmVseSBvciBhZnRlciBiZWluZyBkcm9wcGVkAHInEABjAAAAhTUAAAEAAAA3NDMyMTAvLi1n8kJD5SwrKikoJyYlJCMiITggHx4dHP+UpJWIoJut3d6GeujK1+DQ3My7t7OxqLLI4sOauK5+eL+dwqq9oqGWwY6Jq7C5p7pwr8C8nIyPe4WAk4qSct+X+dju7P3j2ub3h7Tx6fb054v18/vrycTw1pi2zbV/G9TT0tXkxamfg6xpUGJgYVHPkXRzkIKZeWuEbW58b1Jsdo1xgXd9pXVcalNIY11BT6bto8e+4dHLxtnbzur4nu//////////////////////////////////////////////////////////////////////////////////////1wEQAG4AAADZAQAAHQAAANcBEABuAAAA2gEAABkAAADXARAAbgAAADECAAAbAAAA1wEQAG4AAAAyAgAAHQAAAEYCEABPAAAAYQMAADIAAAB5GhAAcAAAABECAAAoAAAAeRoQAHAAAACGAgAAHQAAAAAAAIAAQADAACAAoABgAOAAEACQAFAA0AAwALAAcADwAAgAiABIAMgAKACoAGgA6AAYAJgAWADYADgAuAB4APgABACEAEQAxAAkAKQAZADkABQAlABUANQANAC0AHQA9AAMAIwATADMACwArABsAOwAHACcAFwA3AA8ALwAfAD8AAIAggBCAMIAIgCiAGIA4gASAJIAUgDSADIAsgByAPIACgCKAEoAygAqAKoAagDqABoAmgBaANoAOgC6AHoA+gAGAIYARgDGACYApgBmAOYAFgCWAFYA1gA2ALYAdgD2AA4AjgBOAM4ALgCuAG4A7gAeAJ4AXgDeAD4AvgB+AP4AAQCBAEEAwQAhAKEAYQDhABEAkQBRANEAMQCxAHEA8QAJAIkASQDJACkAqQBpAOkAGQCZAFkA2QA5ALkAeQD5AAUAhQBFAMUAJQClAGUA5QAVAJUAVQDVADUAtQB1APUADQCNAE0AzQAtAK0AbQDtAB0AnQBdAN0APQC9AH0A/QADAIMAQwDDACMAowBjAOMAEwCTAFMA0wAzALMAcwDzAAsAiwBLAMsAKwCrAGsA6wAbAJsAWwDbADsAuwB7APsABwCHAEcAxwAnAKcAZwDnABcAlwBXANcANwC3AHcA9wAPAI8ATwDPAC8ArwBvAO8AHwCfAF8A3wA/AL8AfwD/gACAgIBAgMCAIICggGCA4IAQgJCAUIDQgDCAsIBwgPCACICIgEiAyIAogKiAaIDogBiAmIBYgNiAOIC4gHiA+IAEgISARIDEgCSApIBkgOSAFICUgFSA1IA0gLSAdID0gAyAjIBMgMyALICsgGyA7IAcgJyAXIDcgDyAvIB8gPyAAoCCgEKAwoAigKKAYoDigBKAkoBSgNKAMoCygHKA8oAKgIqASoDKgCqAqoBqgOqAGoCagFqA2oA6gLqAeoD6gAaAhoBGgMaAJoCmgGaA5oAWgJaAVoDWgDaAtoB2gPaADoCO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AAAlAAAANykQAGIAAACPAQAAFAAAADcpEABiAAAAlwEAAEIAAAA3KRAAYgAAAJgBAAAfAAAANykQAGIAAACYAQAAFAAAAENodW5rVHlwZQAAAAAAAAAEAAAAAQAAAMABAAAAAAAAAQAAAAEAAADBAQAAY3JpdGljYWxwcml2YXRlcmVzZXJ2ZWRzYWZlY29weQBWExAAYwAAAEIAAAAdAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogTm90IGEgcG9zc2libGUgYnl0ZSByb3VuZGVkIHBpeGVsIHdpZHRoAAAA7EwRAFEAAABWExAAYwAAAFEDAAASAAAAd3JvbmcgZGF0YSBzaXplLCBleHBlY3RlZCAgZ290IABYTREAGgAAAHJNEQAFAAAARW5kIG9mIGltYWdlIGhhcyBiZWVuIHJlYWNoZWRBIGZhdGFsIGRlY29kaW5nIGVycm9yIGhhcyBiZWVuIGVuY291bnRlZCBlYXJsaWVybGltaXRzIGFyZSBleGNlZWRlZENSQyBlcnJvcjogZXhwZWN0ZWQgMHggaGF2ZSAweCB3aGlsZSBkZWNvZGluZyAgY2h1bmsuAADpTREAFgAAAP9NEQAIAAAAB04RABAAAAAXThEABwAAAEludmFsaWQgUE5HIHNpZ25hdHVyZS5mY1RMIGNodW5rIG1pc3NpbmcgYmVmb3JlIGZkQVQgY2h1bmsuSURBVCBvciBmZEFUIGNodW5rIGlzIG1pc3NpbmcuIGNodW5rIGFwcGVhcmVkIGJlZm9yZSBJSERSIGNodW5rAAABAAAAAAAAAJlOEQAhAAAAQ2h1bmsgIGlzIGludmFsaWQgYWZ0ZXIgSURBVCBjaHVuay4AzE4RAAYAAADSThEAHQAAACBpcyBpbnZhbGlkIGJlZm9yZSBQTFRFIGNodW5rLgAAzE4RAAYAAAAATxEAHgAAACBpcyBpbnZhbGlkIGFmdGVyIFBMVEUgY2h1bmsuAAAAzE4RAAYAAAAwTxEAHQAAACBtdXN0IGFwcGVhciBiZXR3ZWVuIFBMVEUgYW5kIElEQVQgY2h1bmtzLgAAzE4RAAYAAABgTxEAKgAAACBtdXN0IGFwcGVhciBhdCBtb3N0IG9uY2UuAADMThEABgAAAJxPEQAaAAAAU2VxdWVuY2UgaXMgbm90IGluIG9yZGVyLCBleHBlY3RlZCAjIGdvdCAjAADITxEAJAAAAOxPEQAGAAAAoF0RAAEAAABOb3QgZW5vdWdoIHBhbGV0dGUgZW50cmllcywgZXhwZWN0IAAMUBEAIwAAAHJNEQAFAAAAoF0RAAEAAABUaGUgc2l6ZSBvZiB0aGUgc0JJVCBjaHVuayBzaG91bGQgYmUgIGJ5dGUocyksIGJ1dCAgYnl0ZShzKSB3ZXJlIHByb3ZpZGVkIGZvciB0aGUgIGNvbG9yIHR5cGUuAABIUBEAJQAAAG1QEQAOAAAAe1ARAB8AAACaUBEADAAAAEludmFsaWQgc0JJVCB2YWx1ZSAuIEl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8gYW5kIGxlc3MgdGhhbiB0aGUgc2FtcGxlIGRlcHRoIAAAAMhQEQATAAAA21ARAD4AAACgXREAAQAAAE1pc3NpbmcgcGFsZXR0ZSBvZiBpbmRleGVkIGltYWdlLkludmFsaWQgY29sb3IvZGVwdGggY29tYmluYXRpb24gaW4gaGVhZGVyOiAvAAAAVVERACsAAACAUREAAQAAAFRyYW5zcGFyZW5jeSBjaHVuayBmb3VuZCBmb3IgY29sb3IgdHlwZSCUUREAKAAAAKBdEQABAAAASW52YWxpZCBpbWFnZSBkaW1lbnNpb25zSW52YWxpZCBiaXQgZGVwdGggAADkUREAEgAAAKBdEQABAAAASW52YWxpZCBjb2xvciB0eXBlIAAIUhEAEwAAAKBdEQABAAAASW52YWxpZCBkaXNwb3NlIG9wIAAsUhEAEwAAAKBdEQABAAAASW52YWxpZCBibGVuZCBvcCAAAABQUhEAEQAAAKBdEQABAAAASW52YWxpZCBwaHlzaWNhbCBwaXhlbCBzaXplIHVuaXQgAAAAdFIRACEAAACgXREAAQAAAEludmFsaWQgc1JHQiByZW5kZXJpbmcgaW50ZW50IAAAqFIRAB4AAACgXREAAQAAAFVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIADYUhEAGwAAAKBdEQABAAAAVW5rbm93biBmaWx0ZXIgbWV0aG9kIAAABFMRABYAAACgXREAAQAAAFVua25vd24gaW50ZXJsYWNlIG1ldGhvZCAAAAAsUxEAGQAAAKBdEQABAAAAU3ViIGZyYW1lIGlzIG91dC1vZi1ib3VuZHMuQ29ycnVwdCBkZWZsYXRlIHN0cmVhbS4gSURBVCBvciBmREFUIGNodW5rIGRvZXMgbm90IGhhdmUgZW5vdWdoIGRhdGEgZm9yIGltYWdlLlVucmVwcmVzZW50YWJsZSBkYXRhIGluIHRFWHQgY2h1bmsuAAAAwlMRACMAAABLZXl3b3JkIGVtcHR5IG9yIGxvbmdlciB0aGFuIDc5IGJ5dGVzLgAA8FMRACYAAABObyBudWxsIHNlcGFyYXRvciBpbiB0RVh0IGNodW5rLiBUEQAgAAAASW52YWxpZCBjb21wcmVzc2VkIHRleHQgZGF0YS4AAABIVBEAHQAAAE91dCBvZiBkZWNvbXByZXNzaW9uIHNwYWNlLiBUcnkgd2l0aCBhIGxhcmdlciBsaW1pdC5wVBEANAAAAFVzaW5nIGFuIHVucmVjb2duaXplZCBieXRlIGFzIGNvbXByZXNzaW9uIG1ldGhvZC4AAACsVBEAMQAAAFVzaW5nIGEgZmxhZyB0aGF0IGlzIG5vdCAwIG9yIDI1NSBhcyBhIGNvbXByZXNzaW9uIGZsYWcgZm9yIGlUWHQgY2h1bmsuAOhUEQBHAAAATm8gY29tcHJlc3Npb24gZmxhZyBpbiB0aGUgaVRYdCBjaHVuay4AADhVEQAmAAAAZmRBVCBjaHVuayBzaG9ydGVyIHRoYW4gNCBieXRlc1VuZXhwZWN0ZWQgcmVzdGFydCBvZiAgY2h1bmsgc2VxdWVuY2WHVREAFgAAAJ1VEQAPAAAAQ2h1bmsgbGVuZ3RoIHdyb25nOiC8VREAFAAAAFVucmVjb2duaXplZCBjcml0aWNhbCBjaHVuazogAAAA2FURAB0AAABCYWQgZ2FtbWEgdmFsdWUuQRYQAGsAAAC4AgAAPAAAAEEWEABrAAAAugIAAB8AAABBFhAAawAAAM4CAAAnAAAAQRYQAGsAAADjAgAAHgAAAEEWEABrAAAAGAMAACcAAABBFhAAawAAADMDAAA3AAAAQRYQAGsAAAAnBAAAKgAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IFVucmVjb2duaXplZCBjaHVuayAgc2hvdWxkIGhhdmUgYmVlbiBjYXVnaHQg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AAAAAAAIAAAABAAAANkBAADaAQAA2wEAAHVuaXRhIGJvb2xlYW5hIHN0cmluZ2J5dGUgYXJyYXlib29sZWFuIGAvjBEACQAAAP/EEQABAAAAaW50ZWdlciBgAAAASIwRAAkAAAD/xBEAAQAAAGNoYXJhY3RlciBgAGSMEQALAAAA/8QRAAEAAABzdHJpbmcgAICMEQAHAAAAdW5pdCB2YWx1ZU9wdGlvbiB2YWx1ZW5ld3R5cGUgc3RydWN0c2VxdWVuY2VtYXBlbnVtdW5pdCB2YXJpYW50bmV3dHlwZSB2YXJpYW50dHVwbGUgdmFyaWFudHN0cnVjdCB2YXJpYW50AAAA9CAQAGsAAAAkCQAAEgAAAP/EEQABAAAA/8QRAAEAAABgIG9yIGAAAP/EEQABAAAAHI0RAAYAAAD/xBEAAQAAAG9uZSBvZiAsIC4wdTh1MzJ1NjR1c2l6ZWYzMmluZi1pbmZOYU4AAACkAAAADAAAAAQAAACTAQAAlAEAANwBAEGEm8YAC80YAQAAAKgAAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5AAMYEABLAAAADwsAAA4AAAAGExAATwAAADwGAAAUAAAABhMQAE8AAAA8BgAAIQAAAAYTEABPAAAAMAYAABQAAAAGExAATwAAADAGAAAhAAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi5pc19jaGFyX2JvdW5kYXJ5KG5ld19sZW4pBhMQAE8AAAC9BAAAJAAAAEVPRiB3aGlsZSBwYXJzaW5nIGEgbGlzdEVPRiB3aGlsZSBwYXJzaW5nIGFuIG9iamVjdEVPRiB3aGlsZSBwYXJzaW5nIGEgc3RyaW5nRU9GIHdoaWxlIHBhcnNpbmcgYSB2YWx1ZWV4cGVjdGVkIGA6YGV4cGVjdGVkIGAsYCBvciBgXWBleHBlY3RlZCBgLGAgb3IgYH1gZXhwZWN0ZWQgaWRlbnRleHBlY3RlZCB2YWx1ZWV4cGVjdGVkIGAiYGludmFsaWQgZXNjYXBlaW52YWxpZCBudW1iZXJudW1iZXIgb3V0IG9mIHJhbmdlaW52YWxpZCB1bmljb2RlIGNvZGUgcG9pbnRjb250cm9sIGNoYXJhY3RlciAoXHUwMDAwLVx1MDAxRikgZm91bmQgd2hpbGUgcGFyc2luZyBhIHN0cmluZ2tleSBtdXN0IGJlIGEgc3RyaW5naW52YWxpZCB2YWx1ZTogZXhwZWN0ZWQga2V5IHRvIGJlIGEgbnVtYmVyIGluIHF1b3Rlc2Zsb2F0IGtleSBtdXN0IGJlIGZpbml0ZSAoZ290IE5hTiBvciArLy1pbmYpbG9uZSBsZWFkaW5nIHN1cnJvZ2F0ZSBpbiBoZXggZXNjYXBldHJhaWxpbmcgY29tbWF0cmFpbGluZyBjaGFyYWN0ZXJzdW5leHBlY3RlZCBlbmQgb2YgaGV4IGVzY2FwZXJlY3Vyc2lvbiBsaW1pdCBleGNlZWRlZCBhdCBsaW5lICBjb2x1bW4gAAAAAQAAAAAAAACIkBEACQAAAJGQEQAIAAAARXJyb3IoLCBsaW5lOiAsIGNvbHVtbjogtJARAAYAAAC6kBEACAAAAMKQEQAKAAAAphASAAEAAABpbnZhbGlkIHZhbHVlOiAA7JARAA8AAAAfxREACwAAAGZsb2F0aW5nIHBvaW50IGAMkREAEAAAAP/EEQABAAAAbnVsbMQKEABqAAAA9wEAACEAAADEChAAagAAAPsBAAAMAAAAxAoQAGoAAAACAgAAIQAAAMQKEABqAAAACwIAACoAAADEChAAagAAAA8CAAAsAAAAxAoQAGoAAAAUAgAACQAAAI0kEABpAAAApgEAAEUAAACNJBAAaQAAAKsBAAA9AAAAjSQQAGkAAACzAQAAGgAAAI0kEABpAAAAAAIAABMAAACNJBAAaQAAAAUCAAAzAAAAjSQQAGkAAAAJAgAAPgAAAI0kEABpAAAADwIAADoAAACNJBAAaQAAAFwCAAATAAAAjSQQAGkAAABuAgAAGQAAAI0kEABpAAAAcgMAABkAAACNJBAAaQAAAHMDAAAaAAAAjSQQAGkAAAB0AwAAGQAAAI0kEABpAAAAdQMAABkAAACNJBAAaQAAAHYDAAAZAAAAjSQQAGkAAAB3AwAAGQAAAI0kEABpAAAAeAMAABkAAACNJBAAaQAAAHkDAAAZAAAAjSQQAGkAAADUAwAAEQAAAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAQACAAMABAAFAAYABwAIAAkA//////////////////8KAAsADAANAA4ADwD/////////////////////////////////////////////////////////////////////CgALAAwADQAOAA8A////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAQACAAMABAAFAAYABwAIAAkAD//////////////////6AAsADAANAA4ADwAP////////////////////////////////////////////////////////////////////+gALAAwADQAOAA8AD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9pbnZhbGlkIHR5cGU6IAAAsJYRAA4AAAAfxREACwAAACBjYW4ndCBiZSByZXByZXNlbnRlZCBhcyBhIEphdmFTY3JpcHQgbnVtYmVyAQAAAAAAAADQlhEALAAAAAMnEABuAAAANQAAAA4AAAALDRAATgAAACMIAAARAAAADhAQAHMAAAA5AAAACQAAANAoEABmAAAApQYAAEsAAADQKBAAZgAAAKsGAABLAAAA0CgQAGYAAACrBgAAMQAAANAoEABmAAAApQYAADEAAADQKBAAZgAAAJkGAABJAAAA0CgQAGYAAACZBgAAMQAAANAoEABmAAAA1gYAAEsAAADQKBAAZgAAAN0GAABLAAAA0CgQAGYAAADdBgAAMQAAANAoEABmAAAA1gYAADEAAADQKBAAZgAAAMkGAABNAAAA0CgQAGYAAADJBgAANQAAANAoEABmAAAAuwYAAE0AAADQKBAAZgAAALsGAAA1AAAA0CgQAGYAAACNBgAASQAAANAoEABmAAAAjQYAADEAAADQKBAAZgAAAMUHAAAqAAAA0CgQAGYAAACiBwAAFQAAANAoEABmAAAArAcAACEAAADQKBAAZgAAALoHAAAiAAAA0CgQAGYAAACxBwAAIQAAANAoEABmAAAABwQAAB0AAADQKBAAZgAAABoEAAAaAAAA0CgQAGYAAAAbBAAAMQAAANAoEABmAAAAHAQAAAkAAADQKBAAZgAAABIEAAAtAAAA0CgQAGYAAAATBAAAEQAAAKsAAAAIAAAABAAAAKwAAABSZWFkaW5nIGZyb20gJlt1OF0gY2FuJ3QgZmFpbCBhbmQgdGhlIGNodW5rIGlzIGNvbXBsZXRlANAoEABmAAAADQQAABYAAABhc3NlcnRpb24gZmFpbGVkOiBjb21wbGV4aXR5IDw9IDIAAADQKBAAZgAAANMFAAAJAAAA0CgQAGYAAADXBQAAHAAAAAABAgMGBAUGBgYGBgYGBgfQKBAAZgAAAOEFAAAZAAAAdW5rbm93biB0b2tlbjogAKiZEQAPAAAA0CgQAGYAAAADBgAAFgAAAJ8AQdyzxgALAqWRAEHos8YACwOtlIwAQfSzxgAL9U6wm4yHAAAAAAAAAAC0nY2GggAAAAAAAAD+/vPmxLGZjIWCgQAFBwsTI0MAAQQIBQIDBgkMDQoHCw4PAADQKBAAZgAAABUGAAANAAAA0CgQAGYAAACxBAAAEQAAANAoEABmAAAAswQAABEAAADQKBAAZgAAALUEAAARAAAA0CgQAGYAAADFBAAAJQAAAE5vbi1rZXlmcmFtZSBmcmFtZXMA0CgQAGYAAABzBQAAGwAAANAoEABmAAAAdQUAADEAAADQKBAAZgAAAHkFAAA3AAAA0CgQAGYAAACBBQAAVgAAANAoEABmAAAAgQUAAC8AAADQKBAAZgAAAHkFAAArAAAA0CgQAGYAAAAoBgAAJgAAANAoEABmAAAAKgYAABcAAADQKBAAZgAAAC8GAAAVAAAABQAAAAcAAADQKBAAZgAAAFcGAAAgAAAA0CgQAGYAAABeBgAALgAAANAoEABmAAAAXgYAACYAAADQKBAAZgAAAGoGAAAdAAAA0CgQAGYAAABBBgAAKgAAANAoEABmAAAAQgYAABsAAADQKBAAZgAAAE0GAAAZAAAA0CgQAGYAAAC8BQAASgAAANAoEABmAAAAvgUAADUAAADQKBAAZgAAAL4FAAAlAAAA0CgQAGYAAAC8BQAAOgAAAFZQOCBpbnRlci1wcmVkaWN0aW9uhAGRAAIDnAGAgaMCgoOAA9AoEABmAAAANQUAAC8AAACAAecAgQJ4AYIDMAIEBlkDgwVzBIWGcQWEB3gGhwiYB4iJcAiAAZgAgQKzAYIDQAIEBn4DgwWqBIWGdgWEBy4GhwhGB4iJXwiAAa8AgQJFAYIDjwIEBlADgwVVBIWGUgWEB0gGhwibB4iJZwiAATgAgQI6AYIDCgIEBqsDgwXaBIWGvQWEBxEGhwgNB4iJmAiAAZAAgQJHAYIDCgIEBiYDgwWrBIWG1QWEB5AGhwgiB4iJGgiAAXIAgQIaAYIDEQIEBqMDgwUsBIWGwwWEBxUGhwgKB4iJrQiAAXkAgQIYAYIDUAIEBsMDgwUaBIWGPgWEBywGhwhAB4iJVQiAAaoAgQIuAYIDNwIEBhMDgwWIBIWGoAWEByEGhwjOB4iJRwiAAT8AgQIUAYIDCAIEBnIDgwVyBIWG0AWEBwwGhwgJB4iJ4giAAVEAgQIoAYIDCwIEBmADgwW2BIWGVAWEBx0GhwgQB4iJJAiAAYYAgQK3AYIDWQIEBokDgwViBIWGZQWEB2oGhwilB4iJlAiAAUgAgQK7AYIDZAIEBoIDgwWdBIWGbwWEByAGhwhLB4iJUAiAAUIAgQJmAYIDpwIEBmMDgwVKBIWGPgWEBygGhwjqB4iJgAiAASkAgQI1AYIDCQIEBrIDgwXxBIWGjQWEBxoGhwgIB4iJawiAAWgAgQJPAYIDDAIEBhsDgwXZBIWG/wWEB1cGhwgRB4iJBwiAAUoAgQIrAYIDGgIEBpIDgwVJBIWGpgWEBzEGhwgXB4iJnQiAAUEAgQImAYIDaQIEBqADgwUzBIWGNAWEBx8GhwhzB4iJgAiAAVcAgQJEAYIDRwIEBiwDgwVyBIWGMwWEBw8Ghwi6B4iJFwiAAS8AgQIpAYIDDgIEBm4DgwW2BIWGtwWEBxUGhwgRB4iJwgiAAUIAgQItAYIDGQIEBmYDgwXFBIWGvQWEBxcGhwgSB4iJFgiAAVgAgQJYAYIDkwIEBpYDgwUqBIWGLgWEBy0GhwjEB4iJzQiAASsAgQJhAYIDtwIEBnUDgwVVBIWGJgWEByMGhwizB4iJPQiAAScAgQI1AYIDyAIEBlcDgwUaBIWGFQWEBysGhwjoB4iJqwiAATgAgQIiAYIDMwIEBmgDgwVyBIWGZgWEBx0GhwhdB4iJTQiAAWsAgQI2AYIDIAIEBhoDgwUzBIWGAQWEB1EGhwgrB4iJHwiAAScAgQIcAYIDVQIEBqsDgwU6BIWGpQWEB1oGhwhiB4iJQAiAASIAgQIWAYIDdAIEBs4DgwUXBIWGIgWEBysGhwimB4iJSQiAAUQAgQIZAYIDagIEBhYDgwVABIWGqwWEByQGhwjhB4iJcgiAASIAgQITAYIDFQIEBmYDgwWEBIWGvAWEBxAGhwhMB4iJfAiAAT4AgQISAYIDTgIEBl8DgwVVBIWGOQWEBzIGhwgwB4iJMwiAAcEAgQJlAYIDIwIEBp8DgwXXBIWGbwWEB1kGhwguB4iJbwiAATwAgQKUAYIDHwIEBqwDgwXbBIWG5AWEBxUGhwgSB4iJbwiAAXAAgQJxAYIDTQIEBlUDgwWzBIWG/wWEByYGhwh4B4iJcgiAASgAgQIqAYIDAQIEBsQDgwX1BIWG0QWEBwoGhwgZB4iJbQiAAWQAgQJQAYIDCAIEBisDgwWaBIWGAQWEBzMGhwgaB4iJRwiAAVgAgQIrAYIDHQIEBowDgwWmBIWG1QWEByUGhwgrB4iJmgiAAT0AgQI/AYIDHgIEBpsDgwVDBIWGLQWEB0QGhwgBB4iJ0QiAAY4AgQJOAYIDTgIEBhADgwX/BIWGgAWEByIGhwjFB4iJqwiAASkAgQIoAYIDBQIEBmYDgwXTBIWGtwWEBwQGhwgBB4iJ3QiAATMAgQIyAYIDEQIEBqgDgwXRBIWGwAWEBxcGhwgZB4iJUgiAAX0AgQJiAYIDKgIEBlgDgwVoBIWGVQWEB3UGhwivB4iJUgiAAV8AgQJUAYIDNQIEBlkDgwWABIWGZAWEB3EGhwhlB4iJLQiAAUsAgQJPAYIDewIEBi8DgwUzBIWGgAWEB1EGhwirB4iJAQiAATkAgQIRAYIDBQIEBkcDgwVmBIWGOQWEBzUGhwgpB4iJMQiAAXMAgQIVAYIDAgIEBgoDgwVmBIWG/wWEB6YGhwgXB4iJBgiAASYAgQIhAYIDDQIEBnkDgwU5BIWGSQWEBxoGhwgBB4iJVQiAASkAgQIKAYIDQwIEBooDgwVNBIWGbgWEB1oGhwgvB4iJcgiAAWUAgQIdAYIDEAIEBgoDgwVVBIWGgAWEB2UGhwjEB4iJGgiAATkAgQISAYIDCgIEBmYDgwVmBIWG1QWEByIGhwgUB4iJKwiAAXUAgQIUAYIDDwIEBiQDgwWjBIWGgAWEB0QGhwgBB4iJGgiAAYoAgQIfAYIDJAIEBqsDgwUbBIWGpgWEByYGhwgsB4iJ5QiAAUMAgQJXAYIDOgIEBqkDgwVSBIWGcwWEBxoGhwg7B4iJswiAAT8AgQI7AYIDWgIEBrQDgwU7BIWGpgWEB10GhwhJB4iJmgiAASgAgQIoAYIDFQIEBnQDgwWPBIWG0QWEByIGhwgnB4iJrwiAATkAgQIuAYIDFgIEBhgDgwWABIWGAQWEBzYGhwgRB4iJJQiAAS8AgQIPAYIDEAIEBrcDgwUiBIWG3wWEBzEGhwgtB4iJtwiAAS4AgQIRAYIDIQIEBrcDgwUGBIWGYgWEBw8GhwggB4iJtwiAAUEAgQIgAYIDSQIEBnMDgwUcBIWGgAWEBxcGhwiAB4iJzQiAASgAgQIDAYIDCQIEBnMDgwUzBIWGwAWEBxIGhwgGB4iJ3wiAAVcAgQIlAYIDCQIEBnMDgwU7BIWGTQWEB0AGhwgVB4iJLwiAAWgAgQI3AYIDLAIEBtoDgwUJBIWGNgWEBzUGhwiCB4iJ4giAAUAAgQJaAYIDRgIEBs0DgwUoBIWGKQWEBxcGhwgaB4iJOQiAATYAgQI5AYIDcAIEBrgDgwUFBIWGKQWEByYGhwimB4iJ1QiAAR4AgQIiAYIDGgIEBoUDgwWYBIWGdAWEBwoGhwggB4iJhgiAAUsAgQIgAYIDDAIEBjMDgwXABIWG/wWEB6AGhwgrB4iJMwiAAScAgQITAYIDNQIEBt0DgwUaBIWGcgWEByAGhwhJB4iJ/wiAAR8AgQIJAYIDQQIEBuoDgwUCBIWGDwWEBwEGhwh2B4iJSQiAAVgAgQIfAYIDIwIEBkMDgwVmBIWGVQWEBzcGhwi6B4iJVQiAATgAgQIVAYIDFwIEBm8DgwU7BIWGzQWEBy0GhwglB4iJwAiAATcAgQImAYIDRgIEBnwDgwVJBIWGZgWEBwEGhwgiB4iJYgiAAWYAgQI9AYIDRwIEBiUDgwUiBIWGNQWEBx8GhwjzB4iJwAiAAUUAgQI8AYIDRwIEBiYDgwVJBIWGdwWEBxwGhwjeB4iJJQiAAUQAgQItAYIDgAIEBiIDgwUBBIWGLwWEBwsGhwj1B4iJqwiAAT4AgQIRAYIDEwIEBkYDgwWSBIWGVQWEBzcGhwg+B4iJRgiAAUsAgQIPAYIDCQIEBgkDgwVABIWG/wWEB7gGhwh3B4iJEAiAASUAgQIrAYIDJQIEBpoDgwVkBIWGowWEB1UGhwigB4iJAQiAAT8AgQIJAYIDXAIEBogDgwUcBIWGQAWEByAGhwjJB4iJVQiAAVYAgQIGAYIDHAIEBgUDgwVABIWG/wWEBxkGhwj4B4iJAQiAATgAgQIIAYIDEQIEBoQDgwWJBIWG/wWEBzcGhwh0B4iJgAiAAToAgQIPAYIDFAIEBlIDgwWHBIWGOQWEBxoGhwh5B4iJKAiAAaQAgQIyAYIDHwIEBokDgwWaBIWGhQWEBxkGhwgjB4iJ2giAATMAgQJnAYIDLAIEBoMDgwWDBIWGewWEBx8GhwgGB4iJngiAAVYAgQIoAYIDQAIEBocDgwWUBIWG4AWEBy0Ghwi3B4iJgAiAARYAgQIaAYIDEQIEBoMDgwXwBIWGmgWEBw4GhwgBB4iJ0QiAAVMAgQIMAYIDDQIEBjYDgwXABIWG/wWEB0QGhwgvB4iJHAiAAS0AgQIQAYIDFQIEBlsDgwVABIWG3gWEBwcGhwgBB4iJxQiAATgAgQIVAYIDJwIEBpsDgwU8BIWGigWEBxcGhwhmB4iJ1QiAAVUAgQIaAYIDVQIEBlUDgwWABIWGgAWEByAGhwiSB4iJqwiAARIAgQILAYIDBwIEBj8DgwWQBIWGqwWEBwQGhwgEB4iJ9giAASMAgQIbAYIDCgIEBpIDgwWuBIWGqwWEBwwGhwgaB4iJgAiAAb4AgQJQAYIDIwIEBmMDgwW0BIWGUAWEB34Ghwg2B4iJLQiAAVUAgQJ+AYIDLwIEBlcDgwWwBIWGMwWEBykGhwgUB4iJIAiAAWUAgQJLAYIDgAIEBosDgwV2BIWGkgWEB3QGhwiAB4iJVQiAATgAgQIpAYIDDwIEBrADgwXsBIWGVQWEByUGhwgJB4iJPgiAAZIAgQIkAYIDEwIEBh4DgwWrBIWG/wWEB2EGhwgbB4iJFAiAAUcAgQIeAYIDEQIEBncDgwV2BIWG/wWEBxEGhwgSB4iJigiAAWUAgQImAYIDPAIEBooDgwU3BIWGRgWEBysGhwgaB4iJjgiAAYoAgQItAYIDPQIEBj4DgwXbBIWGAQWEB1EGhwi8B4iJQAiAASAAgQIpAYIDFAIEBnUDgwWXBIWGjgWEBxQGhwgVB4iJowiAAXAAgQITAYIDDAIEBj0DgwXDBIWGgAWEBzAGhwgEB4iJGAjQKBAAZgAAAD8FAAAlAAAAgAGOAIECcgGCg7cC0CgQAGYAAABRBQAAEQAAANAoEABmAAAAUgUAABEAAADQKBAAZgAAAFMFAAARAAAA////////////////////////////////////////////sPb////////////f8fz///////////n9/f////////////T8///////////q/v7///////////3///////////////b+///////////v/f7///////////7//v////////////j+///////////7//7///////////////////////////3+///////////7/v7///////////7//v////////////79//7////////6//7//v////////7/////////////////////////////////////////////////////////2f/////////////h/PH9///+/////+r68fr9//3+//////7////////////f/v7//////////+79/v7///////////j+///////////5/v////////////////////////////3////////////3/v////////////////////////////3+///////////8//////////////////////////////7+///////////9//////////////////////////////79///////////6//////////////7/////////////////////////////////////////////////////////uvv6///////////q+/T+//////////v78/3+//7///////3+///////////s/f7///////////v9/f7+//////////7+///////////+/v7///////////////////////////7////////////+/v////////////7////////////////////////////+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+P/////////////6/vz+//////////j++f3///////////39///////////2/f3///////////z++/7+//////////78///////////4/v3///////////3//v7///////////v+///////////1+/7///////////39/v////////////v9///////////8/f7////////////+//////////////z////////////5//7//////////////v/////////////9///////////6///////////////////////////////////////////+////////////////////////////0CgQAGYAAABXBwAAFwAAAIsBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB/QCAAogBgQP+AgQG/wOCBeQEg4TbBQcIgAaFhoAHCQqACIeIgAmJioAKiwG9AIACgQGBA/ICBAb/A4IF4wSDhNUFBwj/BoWG2wcJCoAIh4iACYmKgAqLAWoAgAJ+AYED4wIEBvwDggXWBIOE0QUHCP8GhYb/BwkKgAiHiIAJiYqACosBAQCAAmIBgQP4AgQG/wOCBewEg4TiBQcI/waFhv8HCQqACIeIgAmJioAKiwG1AIAChQGBA+4CBAb+A4IF3QSDhOoFBwj/BoWGmgcJCoAIh4iACYmKgAqLAU4AgAKGAYEDygIEBvcDggXGBIOEtAUHCP8GhYbbBwkKgAiHiIAJiYqACosBAQCAArkBgQP5AgQG/wOCBfMEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwG4AIAClgGBA/cCBAb/A4IF7ASDhOAFBwiABoWGgAcJCoAIh4iACYmKgAqLAU0AgAJuAYED2AIEBv8DggXsBIOE5gUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAAmUBgQP7AgQG/wOCBfEEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGqAIACiwGBA/ECBAb8A4IF7ASDhNEFBwj/BoWG/wcJCoAIh4iACYmKgAqLASUAgAJ0AYEDxAIEBvMDggXkBIOE/wUHCP8GhYb/BwkKgAiHiIAJiYqACosBAQCAAswBgQP+AgQG/wOCBfUEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwHPAIACoAGBA/oCBAb/A4IF7gSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAWYAgAJnAYED5wIEBv8DggXTBIOEqwUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAApgBgQP8AgQG/wOCBfAEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGxAIAChwGBA/MCBAb/A4IF6gSDhOEFBwiABoWGgAcJCoAIh4iACYmKgAqLAVAAgAKBAYED0wIEBv8DggXCBIOE4AUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAAgEBgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwH2AIACAQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAf8AgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBxgCAAiMBgQPtAgQG3wOCBcEEg4S7BQcIogaFhqAHCQqRCIeImwmJij4KiwGDAIACLQGBA8YCBAbdA4IFrASDhLAFBwjcBoWGnQcJCvwIh4jdCYmKAQqLAUQAgAIvAYEDkgIEBtADggWVBIOEpwUHCN0GhYaiBwkK/wiHiN8JiYqACosBAQCAApUBgQPxAgQG/wOCBd0Eg4TgBQcI/waFhv8HCQqACIeIgAmJioAKiwG4AIACjQGBA+oCBAb9A4IF3gSDhNwFBwj/BoWGxwcJCoAIh4iACYmKgAqLAVEAgAJjAYEDtQIEBvIDggWwBIOEvgUHCPkGhYbKBwkK/wiHiP8JiYqACosBAQCAAoEBgQPoAgQG/QOCBdYEg4TFBQcI8gaFhsQHCQr/CIeI/wmJioAKiwFjAIACeQGBA9ICBAb6A4IFyQSDhMYFBwj/BoWGygcJCoAIh4iACYmKgAqLARcAgAJbAYEDowIEBvIDggWqBIOEuwUHCPcGhYbSBwkK/wiHiP8JiYqACosBAQCAAsgBgQP2AgQG/wOCBeoEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwFtAIACsgGBA/ECBAb/A4IF5wSDhPUFBwj/BoWG/wcJCoAIh4iACYmKgAqLASwAgAKCAYEDyQIEBv0DggXNBIOEwAUHCP8GhYb/BwkKgAiHiIAJiYqACosBAQCAAoQBgQPvAgQG+wOCBdsEg4TRBQcI/waFhqUHCQqACIeIgAmJioAKiwFeAIACiAGBA+ECBAb7A4IF2gSDhL4FBwj/BoWG/wcJCoAIh4iACYmKgAqLARYAgAJkAYEDrgIEBvUDggW6BIOEoQUHCP8GhYbHBwkKgAiHiIAJiYqACosBAQCAArYBgQP5AgQG/wOCBegEg4TrBQcIgAaFhoAHCQqACIeIgAmJioAKiwF8AIACjwGBA/ECBAb/A4IF4wSDhOoFBwiABoWGgAcJCoAIh4iACYmKgAqLASMAgAJNAYEDtQIEBvsDggXBBIOE0wUHCP8GhYbNBwkKgAiHiIAJiYqACosBAQCAAp0BgQP3AgQG/wOCBewEg4TnBQcI/waFhv8HCQqACIeIgAmJioAKiwF5AIACjQGBA+sCBAb/A4IF4QSDhOMFBwj/BoWG/wcJCoAIh4iACYmKgAqLAS0AgAJjAYEDvAIEBvsDggXDBIOE2QUHCP8GhYbgBwkKgAiHiIAJiYqACosBAQCAAgEBgQP7AgQG/wOCBdUEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwHLAIACAQGBA/gCBAb/A4IF/wSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYkAgAIBAYEDsQIEBv8DggXgBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosB/QCAAgkBgQP4AgQG+wOCBc8Eg4TQBQcI/waFhsAHCQqACIeIgAmJioAKiwGvAIACDQGBA+ACBAbzA4IFwQSDhLkFBwj5BoWGxgcJCv8Ih4j/CYmKgAqLAUkAgAIRAYEDqwIEBt0DggWhBIOEswUHCOwGhYanBwkK/wiHiOoJiYqACosBAQCAAl8BgQP3AgQG/QOCBdQEg4S3BQcI/waFhv8HCQqACIeIgAmJioAKiwHvAIACWgGBA/QCBAb6A4IF0wSDhNEFBwj/BoWG/wcJCoAIh4iACYmKgAqLAZsAgAJNAYEDwwIEBvgDggW8BIOEwwUHCP8GhYb/BwkKgAiHiIAJiYqACosBAQCAAhgBgQPvAgQG+wOCBdoEg4TbBQcI/waFhs0HCQqACIeIgAmJioAKiwHJAIACMwGBA9sCBAb/A4IFxASDhLoFBwiABoWGgAcJCoAIh4iACYmKgAqLAUUAgAIuAYEDvgIEBu8DggXJBIOE2gUHCP8GhYbkBwkKgAiHiIAJiYqACosBAQCAAr8BgQP7AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwHfAIACpQGBA/kCBAb/A4IF1QSDhP8FBwiABoWGgAcJCoAIh4iACYmKgAqLAY0AgAJ8AYED+AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAAhABgQP4AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwG+AIACJAGBA+YCBAb/A4IF7ASDhP8FBwiABoWGgAcJCoAIh4iACYmKgAqLAZUAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAAuIBgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwH3AIACwAGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAfAAgAKAAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAAoYBgQP8AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwHVAIACPgGBA/oCBAb/A4IF/wSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLATcAgAJdAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBygCAAhgBgQPVAgQG6wOCBboEg4S/BQcI3AaFhqAHCQrwCIeIrwmJiv8KiwF+AIACJgGBA7YCBAboA4IFqQSDhLgFBwjkBoWGrgcJCv8Ih4i7CYmKgAqLAT0AgAIuAYEDigIEBtsDggWXBIOEsgUHCPAGhYaqBwkK/wiHiNgJiYqACosBAQCAAnABgQPmAgQG+gOCBccEg4S/BQcI9waFhp8HCQr/CIeI/wmJioAKiwGmAIACbQGBA+QCBAb8A4IF0wSDhNcFBwj/BoWGrgcJCoAIh4iACYmKgAqLAScAgAJNAYEDogIEBugDggWsBIOEtAUHCPUGhYayBwkK/wiHiP8JiYqACosBAQCAAjQBgQPcAgQG9gOCBcYEg4THBQcI+QaFhtwHCQr/CIeI/wmJioAKiwF8AIACSgGBA78CBAbzA4IFtwSDhMEFBwj6BoWG3QcJCv8Ih4j/CYmKgAqLARgAgAJHAYEDggIEBtsDggWaBIOEqgUHCPMGhYa2BwkK/wiHiP8JiYqACosBAQCAArYBgQPhAgQG+QOCBdsEg4TwBQcI/waFhuAHCQqACIeIgAmJioAKiwGVAIAClgGBA+ICBAb8A4IF2ASDhM0FBwj/BoWGqwcJCoAIh4iACYmKgAqLARwAgAJsAYEDqgIEBvIDggW3BIOEwgUHCP4GhYbfBwkK/wiHiP8JiYqACosBAQCAAlEBgQPmAgQG/AOCBcwEg4TLBQcI/waFhsAHCQqACIeIgAmJ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AABw1hEArQAAAK4AAACvAAAAsAAAAKMAAABEZWNvZGluZ0VuY29kaW5nUGFyYW1ldGVyTGltaXRzSW9FcnJvcgAAAAAAAAQAAAAEAAAA9QEAAExpbWl0RXJyb3IAAAAAAAAIAAAABAAAAPYBAAAAAAAABAAAAAQAAAD3AQAAbWF4X2ltYWdlX3dpZHRobWF4X2ltYWdlX2hlaWdodG1heF9hbGxvYwAAAAAEAAAABAAAALEAAAAAAAAABAAAAAQAAACyAAAATGF5b3V0c2l6ZWFsaWduAPgBAAAQAAAABAAAAPkBAAAAAAAABAAAAAQAAAD6AQAARGVjb2RpbmdFcnJvcmZvcm1hdHVuZGVybHlpbmdFbmNvZGluZ0Vycm9yAAAAAAAAAQAAAAEAAAD7AQAAAAAAAAEAAAABAAAA/AEAAAAAAAABAAAAAQAAAP0BAAAAAAAABAAAAAQAAAC9AQAAQ2ljcHByaW1hcmllc3RyYW5zZmVybWF0cml4ZnVsbF9yYW5nZURpbWVuc2lvbkVycm9ySW5zdWZmaWNpZW50TWVtb3J5AAAAAAAAACAAAAAIAAAA/gEAAAAAAAAEAAAABAAAAP8BAABsaW1pdHNzdXBwb3J0ZWQAAAIAAAwAAAAEAAAAAQIAAFBhcmFtZXRlckVycm9yQ2FwYWNpdHlPdmVyZmxvdwAAAAAAAAQAAAAEAAAAAgIAAEFsbG9jRXJybGF5b3V0RXhhY3ROYW1lUGF0aEV4dGVuc2lvblVua25vd25pbnZhbGlkIHNlZWsgdG8gYSBuZWdhdGl2ZSBvciBvdmVyZmxvd2luZyBwb3NpdGlvbgAAANfYEQAyAAAAFAAAABUqEABhAAAAPQAAACQAAABFbXB0eUludmFsaWREaWdpdFBvc092ZXJmbG93TmVnT3ZlcmZsb3daZXJvAAAAAAAEAAAABAAAAAMCAABVbnN1cHBvcnRlZEVycm9yUG5nSnBlZ0dpZldlYlBQbm1UaWZmVGdhRGRzQm1wSWNvSGRyT3BlbkV4ckZhcmJmZWxkQXZpZlFvaVBjeAAAAAAAAAAEAAAABAAAAAQCAABQYXJzZUludEVycm9yQThMMUxhMVJnYjFSZ2JhMUwyTGEyUmdiMlJnYmEyTDRMYTRSZ2I0UmdiYTRSZ2I1eDFMOExhOFJnYjhSZ2JhOEwxNkxh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b3J0ZWQgUExZIGhlYWRlciBsaW5lOiAAAAA47xEAHQAAAE1pc3NpbmcgY2h1bmsgZWxlbWVudCBmb3IgU3VwZXJTcGxhdCBQTFlg7xEAKAAAAG1pbl94TWlzc2luZyBtaW5feCBwcm9wZXJ0eQCV7xEAFgAAAG1pbl95TWlzc2luZyBtaW5feSBwcm9wZXJ0eQC57xEAFgAAAG1pbl96TWlzc2luZyBtaW5feiBwcm9wZXJ0eQDd7xEAFgAAAG1heF94TWlzc2luZyBtYXhfeCBwcm9wZXJ0eQAB8BEAFgAAAG1heF95TWlzc2luZyBtYXhfeSBwcm9wZXJ0eQAl8BEAFgAAAG1heF96TWlzc2luZyBtYXhfeiBwcm9wZXJ0eQBJ8BEAFgAAAG1pbl9zY2FsZV94TWlzc2luZyBtaW5fc2NhbGVfeCBwcm9wZXJ0eQBz8BEAHAAAAG1pbl9zY2FsZV95TWlzc2luZyBtaW5fc2NhbGVfeSBwcm9wZXJ0eQCj8BEAHAAAAG1pbl9zY2FsZV96TWlzc2luZyBtaW5fc2NhbGVfeiBwcm9wZXJ0eQDT8BEAHAAAAG1heF9zY2FsZV94TWlzc2luZyBtYXhfc2NhbGVfeCBwcm9wZXJ0eQAD8REAHAAAAG1heF9zY2FsZV95TWlzc2luZyBtYXhfc2NhbGVfeSBwcm9wZXJ0eQAz8REAHAAAAG1heF9zY2FsZV96TWlzc2luZyBtYXhfc2NhbGVfeiBwcm9wZXJ0eQBj8REAHAAAAG1pbl9ybWluX2dtaW5fYm1heF9ybWF4X2dtYXhfYnBhY2tlZF9wb3NpdGlvbk1pc3NpbmcgcGFja2VkX3Bvc2l0aW9uIHByb3BlcnR5AAAAtfERACAAAABwYWNrZWRfcm90YXRpb25NaXNzaW5nIHBhY2tlZF9yb3RhdGlvbiBwcm9wZXJ0eQDv8REAIAAAAHBhY2tlZF9zY2FsZU1pc3NpbmcgcGFja2VkX3NjYWxlIHByb3BlcnR5AAAAJPIRAB0AAABwYWNrZWRfY29sb3JNaXNzaW5nIHBhY2tlZF9jb2xvciBwcm9wZXJ0eQAAAFjyEQAdAAAAZl9yZXN0XwCA8hEABwAAADkBEAAUAAAAhgIAADAAAAA5ARAAFAAAAIoCAAAfAAAASW52YWxpZCBudW1iZXIgb2Yg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b3VudHN0cnVjdCBSYWRNZXRhc3RydWN0IFJhZE1ldGEgd2l0aCAxMSBlbGVtZW50c2kEEgAfAAAAZ3NwbGF0AACQBBIABgAAAHN0cnVjdCBSYWRDaHVua01ldGFzdHJ1Y3QgUmFkQ2h1bmtQcm9wZXJ0eXN0cnVjdCBTcGxhdEVuY29kaW5ncmdiTWlucmdiTWF4bG5TY2FsZU1pbmxuU2NhbGVNYXhzaDFNYXhzaDJNYXhzaDNNYXhsb2RPcGFjaXR5c3RydWN0IFNldFNwbGF0RW5jb2RpbmdzdHJ1Y3QgU2V0U3BsYXRFbmNvZGluZyB3aXRoIDggZWxlbWVudHMxBRIAJwAAAG1dy9YsUOtjeEGmV3Ebi7kJBmaBAfO5VKIIL0OCV3QyOiAAAAAAAAAEAAAABAAAAFECAAA6AAAAAQAAAAAAAACUBRIAAQAAAJQFEgABAAAAUgIAAAwAAAAEAAAAUwIAAFQCAABVAgAAjgEAAAwAAAAEAAAAVgIAAFcCAABYAgAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPj0gc2l6ZSArIG1pbl9vdmVyaGVhZAAAWCUQACoAAACxBAAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplIDw9IHNpemUgKyBtYXhfb3ZlcmhlYWQAAFglEAAqAAAAtwQAAA0AAABmYWlsZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIHRocmVhZCBJRDogYml0c3BhY2UgZXhoYXVzdGVkAGAGEgA3AAAAYCEQAB0AAAC8BAAADQAAAP0WEAAhAAAA0QAAABMAAAACAAAAAAAAAAIAQdSNyAALwQwgAIDgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybdgGEgAoAAAAJAAAAAAAAAACAAAAAAcSAHVuc3VwcG9ydGVkIGJhY2t0cmFjZWRpc2FibGVkIGJhY2t0cmFjZQD1HRAAHAAAAIoBAAAdAAAAWQIAABAAAAAEAAAAWgIAAFsCAABXb3VsZEJsb2NrAAABAAAAAAAAAG1pZCA+IGxlbgAAAHgHEgAJAAAAExYQAC0AAAAWAQAAKQAAAGVudGl0eSBub3QgZm91bmRwZXJtaXNzaW9uIGRlbmllZGNvbm5lY3Rpb24gcmVmdXNlZGNvbm5lY3Rpb24gcmVzZXRob3N0IHVucmVhY2hhYmxlbmV0d29yayB1bnJlYWNoYWJsZWNvbm5lY3Rpb24gYWJvcnRlZG5vdCBjb25uZWN0ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9yT3MAAAAAAAQAAAAEAAAAXAIAAGNvZGUAAAAAAQAAAAEAAABdAgAAa2luZI4BAAAMAAAABAAAAF4CAABtZXNzYWdlS2luZEVycm9yAAAAAAgAAAAEAAAAXwIAAAAAAAAEAAAABAAAAGACAABDdXN0b20gKG9zIGVycm9yIAAAAAEAAAAAAAAA+goSAAsAAACmEBIAAQAAAOoSEAAbAAAAXAMAABQAAABmYWlsZWQgcHJpbnRpbmcgdG8gADALEgATAAAAgAUSAAIAAADqEhAAGwAAAI0EAAAJAAAAc3Rkb3V0YSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHdoZW4gdGhlIHVuZGVybHlpbmcgc3RyZWFtIGRpZCBub3RqCxIAVgAAADUgEAAZAAAAiAIAABEAAABwYW5pY2tlZCBhdCA6CmNhbm5vdCByZWN1cnNpdmVseSBhY3F1aXJlIG11dGV4AADmCxIAIAAAAGMJEAAsAAAAEwAAAAkAAACGHRAAIwAAAJsAAAAyAAAAhh0QACMAAADWAAAAFAAAAGxvY2sgY291bnQgb3ZlcmZsb3cgaW4gcmVlbnRyYW50IG11dGV4AAAfFxAAJgAAACQBAAAtAAAAPHVua25vd24+77+9Y2Fubm90IG1vZGlmeSB0aGUgcGFuaWMgaG9vayBmcm9tIGEgcGFuaWNraW5nIHRocmVhZIQMEgA0AAAATxgQABwAAACQAAAACQAAAAoAAACOAQAADAAAAAQAAABhAgAAAAAAAAgAAAAEAAAAYgIAAE8gEAA0AAAAZwEAADAAAAABAAAAAAAAAIAFEgACAAAAAgBBnprIAAsBBABBqJrIAAvCByAAAOggLSAAAQAAAAAAAAAsDRIAAwAAAAIAAAAAAAAAAQAAAAEAAAAAAAAAIAAA6CAgICAgICAgICAgICAgICAgICBhdCAAAJQFEgABAAAATm90Rm91bmRQZXJtaXNzaW9uRGVuaWVkQ29ubmVjdGlvblJlZnVzZWRDb25uZWN0aW9uUmVzZXRIb3N0VW5yZWFjaGFibGVOZXR3b3JrVW5yZWFjaGFibGVDb25uZWN0aW9uQWJvcnRlZE5vdENvbm5lY3RlZEFkZHJJblVzZUFkZHJOb3RBdmFpbGFibGVOZXR3b3JrRG93bkJyb2tlblBpcGVBbHJlYWR5RXhpc3RzTm90QURpcmVjdG9yeUlzQURpcmVjdG9yeURpcmVjdG9yeU5vdEVtcHR5UmVhZE9ubHlGaWxlc3lzdGVtRmlsZXN5c3RlbUxvb3BTdGFsZU5ldHdvcmtGaWxlSGFuZGxlSW52YWxpZElucHV0SW52YWxpZERhdGFUaW1lZE91dFdyaXRlWmVyb1N0b3JhZ2VGdWxsTm90U2Vla2FibGVRdW90YUV4Y2VlZGVkRmlsZVRvb0xhcmdlUmVzb3VyY2VCdXN5RXhlY3V0YWJsZUZpbGVCdXN5RGVhZGxvY2tDcm9zc2VzRGV2aWNlc1Rvb01hbnlMaW5rc0ludmFsaWRGaWxlbmFtZUFyZ3VtZW50TGlzdFRvb0xvbmdJbnRlcnJ1cHRlZFVuc3VwcG9ydGVkVW5leHBlY3RlZEVvZk91dE9mTWVtb3J5SW5Qcm9ncmVzc090aGVyVW5jYXRlZ29yaXplZG9wZXJhdGlvbiBzdWNjZXNzZnVsT25jZSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAACgDxIAKgAAAG9uZS10aW1lIGluaXRpYWxpemF0aW9uIG1heSBub3QgYmUgcGVyZm9ybWVkIHJlY3Vyc2l2ZWx51A8SADgAAADAGBAAcAAAAHwAAAARAAAAwBgQAHAAAACJAAAAEQAAAG51bGwgcG9pbnRlciBwYXNzZWQgdG8gcnVzdHJlY3Vyc2l2ZSB1c2Ugb2YgYW4gb2JqZWN0IGRldGVjdGVkIHdoaWNoIHdvdWxkIGxlYWQgdG8gdW5zYWZlIGFsaWFzaW5nIGluIHJ1c3RKc1ZhbHVlKCkAnhASAAgAAACmEBIAAQAAAGZhaWxlZCB0byBmaWxsIHdob2xlIGJ1ZmZlcgC4EBIAGwAAACUAAAACAAAA1BASACgpAEH0ocgAC6cDAQAAAL8BAAB+IRAAUAAAAC4CAAARAAAAAAAAAAQAAAAEAAAAsQAAAAAAAAAEAAAABAAAALMAAABVdGY4RXJyb3J2YWxpZF91cF90b2Vycm9yX2xlbgAAAGMCAAAMAAAABAAAAGQCAAAAAAAABAAAAAQAAABlAgAARnJvbVV0ZjhFcnJvcmJ5dGVzZXJyb3JOb25lU29tZQDEHhAAdgAAAMMAAAAJAAAAxB4QAHYAAAC8AAAAKgAAAMQeEAB2AAAAuQAAACoAAADXARAAbgAAAHQBAAApAAAA1wEQAG4AAAB5AQAAHAAAANcBEABuAAAAeQEAAC0AAADXARAAbgAAAIABAAAwAAAA1wEQAG4AAABLAQAAKQAAANcBEABuAAAAUQEAABwAAADXARAAbgAAAFEBAAAtAAAA1wEQAG4AAABZAQAAJAAAANcBEABuAAAAWQEAADEAAACVCxAAdgAAADoAAAAbAAAAlQsQAHYAAAA7AAAAGwAAAFRyeUZyb21JbnRFcnJvcgCqHRAASgAAAL0BAAAdAAAAAAAAAP//////////kBISAEGopcgAC4VTWg0QAGcAAABzAAAAFgAAAFoNEABnAAAALgAAACMAAABaDRAAZwAAAEMBAAAWAAAAWg0QAGcAAABPAQAAOAAAAFoNEABnAAAA6AEAABYAAABaDRAAZwAAACYAAAAPAAAAZgIAABQAAAAEAAAAZwIAAJopEABhAAAAHwAAACwAAABJbnZhbGlkIGNoZWNrc3VtRXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkIGlzIGVtcHR5AAAAABIQAHsAAABKAAAAJAAAAGZsYWdzIGFuZCBsZW4gZG9uJ3QgbWF0Y2ggaW4gZXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgYXR0cmlidXRlIHNpemVOVEZTIGV4dHJhIGZpZWxkIGhhcyBhbiB1bnN1cHBvcnRlZCBhdHRyaWJ1dGUgdGFnTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoQ1JDMzIgY2hlY2tzdW0gZmFpbGVkIG9uIFVuaWNvZGUgZXh0cmEgZmllbGRVbmljb2RlIGV4dHJhIGZpZWxkIGlzIHRvbyBzbWFsbAAAShEQAG0AAAAdAAAAEQAAAEoREABtAAAARgAAABEAAABaSVA2NCBmb290ZXIgaW5kaWNhdGVzIG1vcmUgZmlsZXMgb24gdGhpcyBkaXNrIHRoYW4gaW4gdGhlIHdob2xlIGFyY2hpdmVJbnZhbGlkIGNlbnRyYWwgZGlyZWN0b3J5IHNpemUgb3Igb2Zmc2V09yQQAGAAAAAEBgAAOgAAAPckEABgAAAABgYAADsAAABFeHRyYSBmaWVsZCBjb250ZW50IGV4Y2VlZHMgZGVjbGFyZWQgbGVuZ3RoWklQNjQgZXh0cmEgZmllbGQgdHJ1bmNhdGVkWklQNjQgZXh0cmEtZGF0YSBmaWVsZCBpcyB0aGUgd3JvbmcgbGVuZ3Ro9yQQAGAAAABeBgAAEgAAAEFFUyBleHRyYSBmaWVsZCB0cnVuY2F0ZWRJbnZhbGlkIEFFUyBlbmNyeXB0aW9uIHN0cmVuZ3RoSW52YWxpZCBBRVMgdmVu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ABAHWAAACBgAAAiQAAAJOwATB3gAAAg4AAAI0AAACREAEQdoAAAIKAAACLAAAAkIAAAIiAAACEgAAAjwAAAJBAAQB1QAAAgUAAAI4wAVCCsAEwd0AAAINAAACMgAAAkNABEHZAAACCQAAAioAAAJBAAACIQAAAhEAAAI6AAACQgAEAdcAAAIHAAACJgAAAlTABQHfAAACDwAAAjYAAAJFwASB2wAAAgsAAAIuAAACQwAAAiMAAAITAAACPgAAAkDABAHUgAACBIAAAijABUIIwATB3IAAAgyAAAIxAAACQsAEQdiAAAIIgAACKQAAAkCAAAIggAACEIAAAjkAAAJBwAQB1oAAAgaAAAIlAAACUMAFAd6AAAIOgAACNQAAAkTABIHagAACCoAAAi0AAAJCgAACIoAAAhKAAAI9AAACQUAEAdWAAAIFgAACAAAQAgzABMHdgAACDYAAAjMAAAJDwARB2YAAAgmAAAIrAAACQYAAAiGAAAIRgAACOwAAAkJABAHXgAACB4AAAicAAAJYwAUB34AAAg+AAAI3AAACRsAEgduAAAILgAACLwAAAkOAAAIjgAACE4AAAj8AAAJAABgB1EAAAgRAAAIgwAVCB8AEgdxAAAIMQAACMIAAAkKABAHYQAACCEAAAiiAAAJAQAACIEAAAhBAAAI4gAACQYAEAdZAAAIGQAACJIAAAk7ABMHeQAACDkAAAjSAAAJEQARB2kAAAgpAAAIsgAACQkAAAiJAAAISQAACPIAAAkEABAHVQAACBUAAAgCARAIKwATB3UAAAg1AAAIygAACQ0AEQdlAAAIJQAACKoAAAkFAAAIhQAACEUAAAjqAAAJCAAQB10AAAgdAAAImgAACVMAFAd9AAAIPQAACNoAAAkXABIHbQAACC0AAAi6AAAJDQAACI0AAAhNAAAI+gAACQMAEAdTAAAIEwAACMMAFQgjABMHcwAACDMAAAjGAAAJCwARB2MAAAgjAAAIpgAACQMAAAiDAAAIQwAACOYAAAkHABAHWwAACBsAAAiWAAAJQwAUB3sAAAg7AAAI1gAACRMAEgdrAAAIKwAACLYAAAkLAAAIiwAACEsAAAj2AAAJBQAQB1cAAAgXAAAIAABACDMAEwd3AAAINwAACM4AAAkPABEHZwAACCcAAAiuAAAJBwAACIcAAAhHAAAI7gAACQkAEAdfAAAIHwAACJ4AAAljABQHfwAACD8AAAjeAAAJGwASB28AAAgvAAAIvgAACQ8AAAiPAAAITwAACP4AAAkAAGAHUAAACBAAAAhzABQIHwASB3AAAAgwAAAIwQAACQoAEAdgAAAIIAAACKEAAAkAAAAIgAAACEAAAAjhAAAJBgAQB1gAAAgYAAAIkQAACTsAEwd4AAAIOAAACNEAAAkRABEHaAAACCgAAAixAAAJCAAACIgAAAhIAAAI8QAACQQAEAdUAAAIFAAACOMAFQgrABMHdAAACDQAAAjJAAAJDQARB2QAAAgkAAAIqQAACQQAAAiEAAAIRAAACOkAAAkIABAHXAAACBwAAAiZAAAJUwAUB3wAAAg8AAAI2QAACRcAEgdsAAAILAAACLkAAAkMAAAIjAAACEwAAAj5AAAJAwAQB1IAAAgSAAAIowAVCCMAEwdyAAAIMgAACMUAAAkLABEHYgAACCIAAAilAAAJAgAACIIAAAhCAAAI5QAACQcAEAdaAAAIGgAACJUAAAlDABQHegAACDoAAAjVAAAJEwASB2oAAAgqAAAItQAACQoAAAiKAAAISgAACPUAAAkFABAHVgAACBYAAAgAAEAIMwATB3YAAAg2AAAIzQAACQ8AEQdmAAAIJgAACK0AAAkGAAAIhgAACEYAAAjtAAAJCQAQB14AAAgeAAAInQAACWMAFAd+AAAIPgAACN0AAAkbABIHbgAACC4AAAi9AAAJDgAACI4AAAhOAAAI/QAACQAAYAdRAAAIEQAACIMAFQgfABIHcQAACDEAAAjDAAAJCgAQB2EAAAghAAAIowAACQEAAAiBAAAIQQAACOMAAAkGABAHWQAACBkAAAiTAAAJOwATB3kAAAg5AAAI0wAACREAEQdpAAAIKQAACLMAAAkJAAAIiQAACEkAAAjzAAAJBAAQB1UAAAgVAAAIAgEQCCsAEwd1AAAINQAACMsAAAkNABEHZQAACCUAAAirAAAJBQAACIUAAAhFAAAI6wAACQgAEAddAAAIHQAACJsAAAlTABQHfQAACD0AAAjbAAAJFwASB20AAAgtAAAIuwAACQ0AAAiNAAAITQAACPsAAAkDABAHUwAACBMAAAjDABUIIwATB3MAAAgzAAAIxwAACQsAEQdjAAAIIwAACKcAAAkDAAAIgwAACEMAAAjnAAAJBwAQB1sAAAgb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").buffer; +const WASM_MODULE = WebAssembly.compile(WASM); +let initialized = false; +const initialization = __wbg_init({ module_or_path: WASM_MODULE }).then( + (_) => { + initialized = true; + } +); +function isInitialized() { + return initialized; +} +const jsContent = '(function() {\n "use strict";\n class ChunkDecoder {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ChunkDecoder.prototype);\n obj.__wbg_ptr = ptr;\n ChunkDecoderFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ChunkDecoderFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_chunkdecoder_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n finish() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.chunkdecoder_finish(ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n */\n push(bytes) {\n const ret = wasm.chunkdecoder_push(this.__wbg_ptr, bytes);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n }\n if (Symbol.dispose) ChunkDecoder.prototype[Symbol.dispose] = ChunkDecoder.prototype.free;\n class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n }\n if (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n }\n if (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n function bhatt_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, rgba) {\n const ret = wasm.bhatt_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function bhatt_lod_packedsplats(num_splats, packed, extra, lod_base, rgba, encoding) {\n const ret = wasm.bhatt_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function decode_to_csplatarray(file_type, path_name, encoding) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_csplatarray(ptr0, len0, ptr1, len1, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function decode_to_extsplats(file_type, path_name, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_extsplats(ptr0, len0, ptr1, len1, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function decode_to_gsplatarray(file_type, path_name) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_gsplatarray(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function decode_to_packedsplats(file_type, path_name, encoding, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_packedsplats(ptr0, len0, ptr1, len1, encoding, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function dispose_lod_tree(lod_id) {\n wasm.dispose_lod_tree(lod_id);\n }\n function dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 4294967297 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function get_lod_tree_level(lod_id, level) {\n const ret = wasm.get_lod_tree_level(lod_id, level);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function init_lod_tree(num_splats, lod_tree) {\n const ret = wasm.init_lod_tree(num_splats, lod_tree);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function new_lod_tree(capacity) {\n const ret = wasm.new_lod_tree(capacity);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function new_shared_lod_tree(orig_lod_id) {\n const ret = wasm.new_shared_lod_tree(orig_lod_id);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n }\n function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n }\n function tiny_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, merge_filter, rgba) {\n const ret = wasm.tiny_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function tiny_lod_packedsplats(num_splats, packed, extra, lod_base, merge_filter, rgba, encoding) {\n const ret = wasm.tiny_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 4294967297 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function update_lod_trees(lod_ids, page_bases, chunk_bases, counts, lod_trees) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(page_bases, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_bases, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(counts, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.update_lod_trees(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, lod_trees);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof v === "boolean" ? v : void 0;\n return isLikeNone(ret) ? 16777215 : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof val === "object" && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === void 0;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof obj === "number" ? obj : void 0;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof obj === "string" ? obj : void 0;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() {\n return handleError(function(arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments);\n },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_fd4646b401926788: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_26bffbe236bf73f9: function(arg0) {\n const ret = new Float32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() {\n return handleError(function(arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments);\n },\n __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) {\n arg0.set(getArrayF32FromWasm0(arg1, arg2));\n },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n const ret = getArrayF32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000003: function(arg0, arg1) {\n const ret = getArrayU32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000004: function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000005: function(arg0) {\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, void 0);\n table.set(offset + 0, void 0);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n }\n };\n return {\n __proto__: null,\n "./spark_rs_bg.js": import0\n };\n }\n const ChunkDecoderFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\n const CsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\n const GsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n function addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n }\n function debugString(val) {\n const type = typeof val;\n if (type == "number" || type == "boolean" || val == null) {\n return `${val}`;\n }\n if (type == "string") {\n return `"${val}"`;\n }\n if (type == "symbol") {\n const description = val.description;\n if (description == null) {\n return "Symbol";\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == "function") {\n const name = val.name;\n if (typeof name == "string" && name.length > 0) {\n return `Function(${name})`;\n } else {\n return "Function";\n }\n }\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = "[";\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for (let i = 1; i < length; i++) {\n debug += ", " + debugString(val[i]);\n }\n debug += "]";\n return debug;\n }\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n return toString.call(val);\n }\n if (className == "Object") {\n try {\n return "Object(" + JSON.stringify(val) + ")";\n } catch (_) {\n return "Object";\n }\n }\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\n${val.stack}`;\n }\n return className;\n }\n function getArrayF32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n }\n function getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n }\n function getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n }\n function getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n }\n let cachedDataViewMemory0 = null;\n function getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === void 0 && cachedDataViewMemory0.buffer !== wasm.memory.buffer) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n }\n let cachedFloat32ArrayMemory0 = null;\n function getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n }\n function getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n }\n let cachedUint16ArrayMemory0 = null;\n function getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n }\n let cachedUint32ArrayMemory0 = null;\n function getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n }\n let cachedUint8ArrayMemory0 = null;\n function getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n }\n function handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n }\n function isLikeNone(x) {\n return x === void 0 || x === null;\n }\n function passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n }\n function passArrayF32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getFloat32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n }\n function passStringToWasm0(arg, malloc, realloc) {\n if (realloc === void 0) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr2 = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr2;\n }\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n const mem = getUint8ArrayMemory0();\n let offset = 0;\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 127) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n WASM_VECTOR_LEN = offset;\n return ptr;\n }\n function takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n }\n let cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n const MAX_SAFARI_DECODE_BYTES = 2146435072;\n let numBytesDecoded = 0;\n function decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n }\n const cachedTextEncoder = new TextEncoder();\n if (!("encodeInto" in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function(arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n }\n let WASM_VECTOR_LEN = 0;\n let wasm;\n function __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n }\n async function __wbg_load(module, imports) {\n if (typeof Response === "function" && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === "function") {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n if (validResponse && module.headers.get("Content-Type") !== "application/wasm") {\n console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n", e);\n } else {\n throw e;\n }\n }\n }\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n function expectedResponseType(type) {\n switch (type) {\n case "basic":\n case "cors":\n case "default":\n return true;\n }\n return false;\n }\n }\n async function __wbg_init(module_or_path) {\n if (wasm !== void 0) return wasm;\n if (module_or_path !== void 0) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({ module_or_path } = module_or_path);\n } else {\n console.warn("using deprecated parameters for the initialization function; pass a single object instead");\n }\n }\n const imports = __wbg_get_imports();\n if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) {\n module_or_path = fetch(module_or_path);\n }\n const { instance } = await __wbg_load(await module_or_path, imports);\n return __wbg_finalize_init(instance);\n }\n const rpcHandlers = {\n sortSplats16,\n sortSplats32,\n loadPackedSplats,\n loadExtSplats,\n tinyLodPackedSplats,\n qualityLodPackedSplats,\n tinyLodExtSplats,\n qualityLodExtSplats,\n newLodTree,\n newSharedLodTree,\n initLodTree,\n disposeLodTree,\n updateLodTrees,\n traverseLodTrees,\n getLodTreeLevel,\n nextChunk\n };\n async function onMessage(event) {\n const {\n id,\n name,\n args\n } = event.data;\n try {\n const handler = rpcHandlers[name];\n if (!handler) {\n throw new Error(`Unknown worker RPC: ${name}`);\n }\n const sendStatus = (data) => {\n self.postMessage(\n { id, status: data },\n { transfer: getTransferable(data) }\n );\n };\n const result = await handler(args, { sendStatus });\n self.postMessage({ id, result }, { transfer: getTransferable(result) });\n } catch (error) {\n console.warn(`Worker error: ${error}`);\n self.postMessage({ id, error }, { transfer: getTransferable(error) });\n }\n }\n function sortSplats16({\n numSplats,\n readback,\n ordering\n }) {\n const activeSplats = sort_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n }\n function sortSplats32({\n numSplats,\n readback,\n ordering\n }) {\n const activeSplats = sort32_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n }\n async function decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n }) {\n if (fileBytes) {\n const CHUNK_SIZE = 1048576;\n for (let i = 0; i < fileBytes.length; i += CHUNK_SIZE) {\n decoder.push(\n fileBytes.subarray(i, Math.min(i + CHUNK_SIZE, fileBytes.length))\n );\n }\n } else if (url) {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : void 0,\n credentials: withCredentials ? "include" : "same-origin"\n });\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch "${url}": ${response.status} ${response.statusText}`\n );\n }\n const readStream = response.body.getReader();\n const contentLength = Number.parseInt(\n response.headers.get("Content-Length") || "0"\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n let loaded = 0;\n while (true) {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n break;\n }\n loaded += value.length;\n sendStatus({ loaded, total });\n decoder.push(value);\n }\n } else if (chunked) {\n let loaded = 0;\n const total = chunkedLength ?? 0;\n while (true) {\n const readNextChunk = new Promise((resolve) => {\n nextChunkWaiter = resolve;\n });\n sendStatus({ nextChunk: true });\n const nextChunk2 = await readNextChunk;\n if (nextChunk2.length === 0) {\n break;\n }\n decoder.push(nextChunk2);\n loaded += nextChunk2.length;\n sendStatus({ progress: { loaded, total } });\n }\n if (total === 0) {\n sendStatus({ progress: { loaded, total: loaded } });\n }\n } else {\n throw new Error("No url or fileBytes provided");\n }\n const decoded = decoder.finish();\n return decoded;\n }\n function toPackedResult(packed) {\n return {\n numSplats: packed.numSplats,\n packedArray: packed.packed,\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3: packed.sh3,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree\n },\n splatEncoding: packed.splatEncoding\n };\n }\n async function loadPackedSplats({\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n encoding,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes\n }, {\n sendStatus\n }) {\n if (!lod) {\n const decoder2 = decode_to_packedsplats(\n fileType,\n pathName ?? url,\n encoding,\n sh1Codes,\n sh2Codes,\n sh3Codes\n );\n const decoded2 = await decodeBytesUrl({\n decoder: decoder2,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n const result2 = toPackedResult(decoded2);\n if (result2.splatEncoding.lodOpacity) {\n return { lodSplats: result2 };\n }\n return result2;\n }\n const decoder = decode_to_csplatarray(fileType, pathName ?? url, encoding);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n if (decoded.has_lod()) {\n const result2 = toPackedResult(\n decoded.to_packedsplats_lod()\n );\n return { lodSplats: result2 };\n }\n if (lodAbove !== void 0) {\n if (decoded.len() < lodAbove) {\n return toPackedResult(decoded.to_packedsplats());\n }\n }\n let result = {};\n if (nonLod) {\n result = toPackedResult(decoded.to_packedsplats());\n }\n const initialSplats = decoded.len();\n const lodName = lod === "quality" ? "Bhatt" : "Tiny";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`\n );\n const lodStart = performance.now();\n if (lod === "quality") {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.25));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`\n );\n const lodPacked = decoded.to_packedsplats_lod();\n result.lodSplats = toPackedResult(lodPacked);\n return result;\n }\n function toExtResult(packed) {\n return {\n numSplats: packed.numSplats,\n extArrays: [packed.ext0, packed.ext1],\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3a: packed.sh3a,\n sh3b: packed.sh3b,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree\n }\n };\n }\n async function loadExtSplats({\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes\n }, {\n sendStatus\n }) {\n if (!lod) {\n const decoder2 = decode_to_extsplats(\n fileType,\n pathName ?? url,\n sh1Codes,\n sh2Codes,\n sh3Codes\n );\n const decoded2 = await decodeBytesUrl({\n decoder: decoder2,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n const result2 = toExtResult(decoded2);\n if (result2.extra.lodTree) {\n return { lodSplats: result2 };\n }\n return result2;\n }\n const decoder = decode_to_gsplatarray(fileType, pathName ?? url);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n if (decoded.has_lod()) {\n return {\n lodSplats: toExtResult(decoded.to_extsplats_lod())\n };\n }\n if (lodAbove !== void 0) {\n if (decoded.len() < lodAbove) {\n return toExtResult(decoded.to_extsplats());\n }\n }\n let result = {};\n if (nonLod) {\n result = toExtResult(decoded.to_extsplats());\n }\n const initialSplats = decoded.len();\n const lodName = lod === "quality" ? "Bhatt" : "Tiny";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`\n );\n const lodStart = performance.now();\n if (lod === "quality") {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.75));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`\n );\n const lodPacked = decoded.to_extsplats_lod();\n result.lodSplats = toExtResult(lodPacked);\n return result;\n }\n async function tinyLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_packedsplats(\n numSplats,\n packedArray,\n extra,\n base,\n filter,\n rgba,\n encoding\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n async function qualityLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_packedsplats(\n numSplats,\n packedArray,\n extra,\n base,\n rgba,\n encoding\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n async function tinyLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra,\n base,\n filter,\n rgba\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n async function qualityLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra,\n base,\n rgba\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n function newLodTree({\n capacity\n }) {\n const { lodId } = new_lod_tree(capacity);\n return { lodId };\n }\n function newSharedLodTree({\n lodId\n }) {\n const { lodId: newLodId } = new_shared_lod_tree(lodId);\n return { lodId: newLodId };\n }\n function initLodTree({\n numSplats,\n lodTree\n }) {\n const { lodId, chunkToPage } = init_lod_tree(numSplats, lodTree);\n return { lodId, chunkToPage };\n }\n function disposeLodTree({ lodId }) {\n dispose_lod_tree(lodId);\n }\n function updateLodTrees({\n ranges\n }) {\n const lodIds = new Uint32Array(ranges.map(({ lodId }) => lodId));\n const pageBases = new Uint32Array(ranges.map(({ pageBase }) => pageBase));\n const chunkBases = new Uint32Array(ranges.map(({ chunkBase }) => chunkBase));\n const counts = new Uint32Array(ranges.map(({ count }) => count));\n const lodTreeData = ranges.map(({ lodTreeData: lodTreeData2 }) => lodTreeData2);\n update_lod_trees(\n lodIds,\n pageBases,\n chunkBases,\n counts,\n lodTreeData\n );\n }\n function traverseLodTrees({\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n instances,\n traverseMode\n }) {\n const keyInstances = Object.entries(instances);\n const lodIds = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.lodId)\n );\n const rootPages = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.rootPage ?? 4294967295)\n );\n const viewToObjects = new Float32Array(\n keyInstances.flatMap(([_key, instance]) => {\n if (instance.viewToObjectCols.length !== 16) {\n throw new Error("Incorrect array size for viewToObjectCols");\n }\n return instance.viewToObjectCols;\n })\n );\n const lodScales = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.lodScale)\n );\n const behindFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.behindFoveate)\n );\n const coneFov0s = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov0)\n );\n const coneFovs = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov)\n );\n const coneFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFoveate)\n );\n const lodFunction = traverseMode === "dynamic" ? dynamic_traverse_lod_trees : traverse_lod_trees;\n const result = lodFunction(\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n lodIds,\n rootPages,\n viewToObjects,\n lodScales,\n behindFoveates,\n coneFoveates,\n coneFov0s,\n coneFovs\n );\n const { instanceIndices, chunks, pixelLimit } = result;\n const indices = keyInstances.reduce(\n (indices2, [key, _instance], index) => {\n indices2[key] = instanceIndices[index];\n return indices2;\n },\n {}\n );\n return {\n keyIndices: indices,\n chunks,\n pixelLimit\n };\n }\n function getLodTreeLevel({\n lodId,\n level\n }) {\n return get_lod_tree_level(lodId, level);\n }\n let nextChunkWaiter = (_chunk) => {\n };\n async function nextChunk({ chunk }) {\n nextChunkWaiter(chunk);\n }\n function getTransferable(ctx) {\n const buffers = [];\n const seen = /* @__PURE__ */ new Set();\n function traverse(obj) {\n if (obj && typeof obj === "object" && !seen.has(obj)) {\n seen.add(obj);\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n buffers.push(obj.buffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n traverse(ctx);\n return buffers;\n }\n async function initialize() {\n let resolveWaitForModule;\n const waitForModule = new Promise((resolve) => {\n resolveWaitForModule = resolve;\n });\n const pending = [];\n const bufferMessage = (event) => {\n if (event.data.name === "init-wasm") {\n resolveWaitForModule(event.data.module);\n return;\n }\n pending.push(event);\n };\n self.addEventListener("message", bufferMessage);\n await __wbg_init({ module_or_path: await waitForModule });\n self.removeEventListener("message", bufferMessage);\n self.addEventListener("message", onMessage);\n for (const event of pending) {\n onMessage(event);\n }\n pending.length = 0;\n }\n initialize().catch(console.error);\n})();\n//# sourceMappingURL=worker-D9w847yb.js.map\n'; +const blob = typeof self !== "undefined" && self.Blob && new Blob([jsContent], { type: "text/javascript;charset=utf-8" }); +function WorkerWrapper(options) { + let objURL; + try { + objURL = blob && (self.URL || self.webkitURL).createObjectURL(blob); + if (!objURL) throw ""; + const worker = new Worker(objURL, { + name: options == null ? void 0 : options.name + }); + worker.addEventListener("error", () => { + (self.URL || self.webkitURL).revokeObjectURL(objURL); + }); + return worker; + } catch (e) { + return new Worker( + "data:text/javascript;charset=utf-8," + encodeURIComponent(jsContent), + { + name: options == null ? void 0 : options.name + } + ); + } finally { + objURL && (self.URL || self.webkitURL).revokeObjectURL(objURL); + } +} +const _SplatWorker = class _SplatWorker { + constructor() { + this.queue = null; + this.messages = {}; + this.worker = new WorkerWrapper(); + this.worker.onmessage = (event) => this.onMessage(event); + WASM_MODULE.then((module2) => { + this.worker.postMessage({ name: "init-wasm", module: module2 }); + }); + } + onMessage(event) { + var _a2; + const { id, result, error, status } = event.data; + const promise = this.messages[id]; + if (promise) { + if (error !== void 0) { + delete this.messages[id]; + promise.reject(error); + } else if (status !== void 0) { + (_a2 = promise.onStatus) == null ? void 0 : _a2.call(promise, status); + } else { + delete this.messages[id]; + promise.resolve(result); + } } - if (this.orderingTexture) { - this.orderingTexture.dispose(); - this.orderingTexture = null; + } + tryExclusive(callback) { + return this.queue == null ? this.exclusive(callback) : null; + } + async exclusive(callback) { + const queue = this.queue; + if (queue != null) { + await new Promise((resolve) => { + queue.push(() => resolve(void 0)); + }); + } else { + this.queue = []; } - const accumulators = /* @__PURE__ */ new Set(); - accumulators.add(this.display); - accumulators.add(this.current); - for (const accumulator of this.accumulators) { - accumulators.add(accumulator); + try { + return await callback(this); + } finally { + if (this.queue != null) { + if (this.queue.length === 0) { + this.queue = null; + } else { + const waiter = this.queue.shift(); + waiter(); + } + } + } + } + async call(name, args, options = {}) { + const id = ++_SplatWorker.currentId; + const promise = new Promise((resolve, reject) => { + this.messages[id] = { resolve, reject, onStatus: options.onStatus }; + }); + this.worker.postMessage( + { id, name, args }, + { transfer: getTransferable(args) } + ); + return await promise; + } + dispose() { + this.worker.terminate(); + const messages = Object.values(this.messages); + this.messages = {}; + for (const message of messages) { + message.reject(new Error("Worker terminate")); } - for (const accumulator of accumulators) { - accumulator.dispose(); + } +}; +_SplatWorker.currentId = 0; +let SplatWorker = _SplatWorker; +class NewSplatWorkerPool { + constructor(maxWorkers = 4) { + this.numWorkers = 0; + this.freelist = []; + this.queue = []; + this.maxWorkers = maxWorkers; + } + async withWorker(callback) { + const worker = await this.allocWorker(); + try { + return await callback(worker); + } finally { + this.freeWorker(worker); } - const instances = this.lodInstances.values(); - this.lodInstances.clear(); - for (const instance of instances) { - instance.texture.dispose(); + } + async allocWorker() { + const worker = this.freelist.pop(); + if (worker) { + return worker; } - if (this.sortWorker) { - this.sortWorker.dispose(); - this.sortWorker = null; + if (this.numWorkers < this.maxWorkers) { + const worker2 = new SplatWorker(); + this.numWorkers += 1; + return worker2; } - if (this.lodWorker) { - this.lodWorker.dispose(); - this.lodWorker = null; + return new Promise((resolve) => { + this.queue.push(resolve); + }); + } + freeWorker(worker) { + if (this.numWorkers > this.maxWorkers) { + this.numWorkers -= 1; + return; } - if (this.pager) { - this.pager.dispose(); - this.pager = void 0; + const waiter = this.queue.shift(); + if (waiter) { + waiter(worker); + return; } + this.freelist.push(worker); } - setDirty() { - var _a2; - if (!this.dirty) { - this.dirty = true; - (_a2 = this.onDirty) == null ? void 0 : _a2.call(this); - } +} +const workerPool = new NewSplatWorkerPool(); +const _PackedSplats = class _PackedSplats { + constructor(options = {}) { + this.maxSplats = 0; + this.numSplats = 0; + this.packedArray = null; + this.maxSh = 3; + this.isInitialized = false; + this.target = null; + this.source = null; + this.needsUpdate = true; + this.extra = {}; + this.dyno = new DynoPackedSplats({ packedSplats: this }); + this.dynoRgbMinMaxLnScaleMinMax = new DynoVec4({ + key: "rgbMinMaxLnScaleMinMax", + value: new THREE__namespace.Vector4(0, 1, LN_SCALE_MIN, LN_SCALE_MAX), + update: (value) => { + var _a2, _b2, _c, _d; + value.set( + ((_a2 = this.splatEncoding) == null ? void 0 : _a2.rgbMin) ?? 0, + ((_b2 = this.splatEncoding) == null ? void 0 : _b2.rgbMax) ?? 1, + ((_c = this.splatEncoding) == null ? void 0 : _c.lnScaleMin) ?? LN_SCALE_MIN, + ((_d = this.splatEncoding) == null ? void 0 : _d.lnScaleMax) ?? LN_SCALE_MAX + ); + return value; + } + }); + this.dynoNumSh = new DynoInt({ + key: "numSh", + value: 0, + update: () => { + return Math.min(this.getNumSh(), this.maxSh); + } + }); + this.dynoShMax = new DynoVec3({ + key: "shMax", + value: new THREE__namespace.Vector3(), + update: (value) => { + var _a2, _b2, _c; + value.set( + ((_a2 = this.splatEncoding) == null ? void 0 : _a2.sh1Max) ?? 1, + ((_b2 = this.splatEncoding) == null ? void 0 : _b2.sh2Max) ?? 1, + ((_c = this.splatEncoding) == null ? void 0 : _c.sh3Max) ?? 1 + ); + return value; + } + }); + this.initialized = Promise.resolve(this); + this.reinitialize(options); } - onBeforeRender(renderer, scene, camera) { - var _a2; - const spark = _SparkRenderer.sparkOverride ?? this; - const frame = renderer.info.render.frame; - const isNewFrame = frame !== spark.lastFrame; - spark.lastFrame = frame; - if (spark.target) { - spark.renderSize.set(spark.target.width, spark.target.height); + reinitialize(options) { + this.isInitialized = false; + this.extra = {}; + this.maxSplats = options.maxSplats ?? 0; + this.splatEncoding = options.splatEncoding; + this.lod = options.lod; + this.nonLod = options.nonLod; + if (options.url || options.fileBytes || options.stream || options.construct) { + this.initialized = this.asyncInitialize(options).then(() => { + this.isInitialized = true; + return this; + }); } else { - const renderSize = renderer.getDrawingBufferSize(spark.renderSize); - if (renderer.xr.isPresenting) { - if (renderSize.x === 1 && renderSize.y === 1) { - const baseLayer = (_a2 = renderer.xr.getSession()) == null ? void 0 : _a2.renderState.baseLayer; - if (baseLayer) { - renderSize.x = baseLayer.framebufferWidth; - renderSize.y = baseLayer.framebufferHeight; - } - } - } - } - this.uniforms.renderSize.value.copy(spark.renderSize); - const typedCamera = camera; - this.uniforms.near.value = typedCamera.near; - this.uniforms.far.value = typedCamera.far; - const geometry = this.geometry; - geometry.instanceCount = spark.activeSplats; - const accumToWorld = new THREE__namespace.Matrix4(); - if (!this.display.extSplats) { - accumToWorld.makeTranslation(spark.display.viewOrigin); + this.initialize(options); + this.isInitialized = true; + this.initialized = Promise.resolve(this); } - const cameraToWorld = camera.matrixWorld.clone(); - const worldToCamera = cameraToWorld.invert(); - const accumToCamera = worldToCamera.multiply(accumToWorld); - accumToCamera.decompose( - this.uniforms.renderToViewPos.value, - this.uniforms.renderToViewQuat.value, - new THREE__namespace.Vector3() - ); - this.uniforms.renderToViewBasis.value.setFromMatrix4(accumToCamera); - this.uniforms.maxStdDev.value = spark.maxStdDev; - this.uniforms.minPixelRadius.value = spark.minPixelRadius; - this.uniforms.maxPixelRadius.value = spark.maxPixelRadius; - this.uniforms.minAlpha.value = spark.minAlpha; - this.uniforms.enable2DGS.value = spark.enable2DGS; - this.uniforms.lodInflate.value = spark.lodInflate; - this.uniforms.preBlurAmount.value = spark.preBlurAmount; - this.uniforms.blurAmount.value = spark.blurAmount; - this.uniforms.focalDistance.value = spark.focalDistance; - this.uniforms.apertureAngle.value = spark.apertureAngle; - this.uniforms.falloff.value = spark.falloff; - this.uniforms.clipXY.value = spark.clipXY; - this.uniforms.focalAdjustment.value = spark.focalAdjustment; - this.uniforms.encodeLinear.value = spark.encodeLinear; - this.uniforms.ordering.value = spark.orderingTexture ?? _SparkRenderer.emptyOrdering; - this.uniforms.enableExtSplats.value = this.display.extSplats; - this.uniforms.enableCovSplats.value = this.display.covSplats; - if (this.display.extSplats) { - const extSplats = spark.display.getTextures(); - this.uniforms.extSplats.value = extSplats[0]; - this.uniforms.extSplats2.value = extSplats[1]; + } + initialize(options) { + this.extra = options.extra ?? {}; + this.splatEncoding = options.splatEncoding ?? this.splatEncoding; + this.lodSplats = options.lodSplats; + if (options.packedArray) { + this.packedArray = options.packedArray; + this.numSplats = options.numSplats ?? this.packedArray.length / 4; + this.maxSplats = Math.floor(this.packedArray.length / 4); + this.maxSplats = Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + this.numSplats = Math.min( + this.maxSplats, + options.numSplats ?? Number.POSITIVE_INFINITY + ); } else { - const packedSplats = spark.display.getTextures(); - this.uniforms.extSplats.value = packedSplats[0]; - this.uniforms.extSplats2.value = packedSplats[0]; + this.maxSplats = options.maxSplats ?? 0; + this.numSplats = 0; } - this.uniforms.time.value = spark.display.time; - this.uniforms.deltaTime.value = spark.display.deltaTime; - this.uniforms.debugFlag.value = performance.now() / 1e3 % 2 < 1; - if (spark.autoUpdate && isNewFrame) { - const preUpdate = spark.preUpdate && !renderer.xr.isPresenting; - const useCamera = renderer.xr.isPresenting ? renderer.xr.getCamera() : camera; - if (preUpdate) { - spark.updateInternal({ - scene, - camera: useCamera, - autoUpdate: true - }); - } else { - if (spark.updateTimeoutId === -1) { - spark.updateTimeoutId = setTimeout(() => { - spark.updateTimeoutId = -1; - spark.updateInternal({ - scene, - camera: useCamera, - autoUpdate: true - }); - }, 1); - } + } + async asyncInitialize(options) { + const { + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + construct, + lod, + nonLod, + lodAbove + } = options; + this.lod = lod; + this.nonLod = nonLod; + const loader = new SplatLoader(); + if (fileBytes || url || stream) { + await loader.loadInternalAsync({ + packedSplats: this, + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + onProgress: options.onProgress, + lodAbove + }); + } + if (construct) { + const maybePromise = construct(this); + if (maybePromise instanceof Promise) { + await maybePromise; } } - spark.dirty = false; - } - clearSplats() { - this.activeSplats = 0; - this.display.numSplats = 0; - this.setDirty(); - } - async update({ - scene, - camera - }) { - await this.updateInternal({ scene, camera, autoUpdate: false }); } - // /** - // * Provide additional cameras to prefetch paged splat chunks without - // * affecting main LOD selection. - // */ - // setPrefetchCameras(cameras?: THREE.Camera[], lodScaleMultiplier = 1.0) { - // const next = cameras?.filter(Boolean) ?? []; - // const sameCameras = - // this.prefetchCameras.length === next.length && - // this.prefetchCameras.every((camera, index) => camera === next[index]); - // if (sameCameras && this.prefetchLodScale === lodScaleMultiplier) { - // return; - // } - // this.prefetchCameras = next; - // this.prefetchLodScale = lodScaleMultiplier; - // this.invalidatePrefetchCache(); - // } - // /** - // * Invalidate the prefetch meshes cache. Call this when SplatMeshes are - // * added or removed from the scene. - // */ - // invalidatePrefetchCache() { - // this.prefetchMeshesCacheScene = undefined; - // } - async updateInternal({ - scene, - camera, - autoUpdate - }) { - const renderer = this.renderer; - const time = this.time ?? this.clock.getElapsedTime(); - const center = camera.getWorldPosition(new THREE__namespace.Vector3()); - const dir = camera.getWorldDirection(new THREE__namespace.Vector3()); - const viewChanged = center.distanceTo(this.sortedCenter) > 1e-3 || dir.dot(this.sortedDir) < 0.999; - const next = this.accumulators.pop(); - if (!next) { - throw new Error("No next accumulator"); - } - if (next === this.current) { - throw new Error( - "Next accumulator is the same as the current accumulator" - ); - } - const { version, mappingVersion, visibleGenerators, generate } = next.prepareGenerate({ - renderer, - scene, - time, - camera, - sortRadial: this.sortRadial ?? true, - renderSize: this.renderSize, - previous: this.current, - lodInstances: this.enableLod ? this.lodInstances : void 0 - }); - let doUpdate = true; - const needsUpdate = viewChanged || version !== this.current.version; - const mappingUpdated = mappingVersion !== this.display.mappingVersion; - if (autoUpdate && !needsUpdate) { - doUpdate = false; + // Call this when you are finished with the PackedSplats and want to free + // any buffers it holds. + dispose() { + if (this.target) { + this.target.dispose(); + this.target.texture.source.data = null; + this.target = null; } - if (mappingUpdated && this.sorting) { - doUpdate = false; + if (this.source) { + this.source.dispose(); + this.source.source.data = null; + this.source = null; } - if (!doUpdate) { - this.accumulators.push(next); - } else { - generate(); - if (this.flushAfterGenerate) { - const gl = renderer.getContext(); - gl.flush(); - } - if (this.display.mappingVersion === next.mappingVersion) { - this.accumulators.push(this.display); - this.display = next; - } else { - if (this.display !== this.current) { - this.accumulators.push(this.current); + this.packedArray = null; + for (const key in this.extra) { + const dyno2 = this.extra[key]; + if (dyno2 instanceof DynoUniform) { + const texture2 = dyno2.value; + if (texture2 == null ? void 0 : texture2.isTexture) { + texture2.dispose(); + texture2.source.data = null; } } - this.current = next; - this.sortDirty = true; - this.setDirty(); - } - if (this.enableDriveLod) { - this.driveLod({ visibleGenerators, camera, scene }); } - await this.driveSort(); + this.extra = {}; + this.disposeLodSplats(); } - async driveSort() { - if (this.sorting || !this.sortDirty) { - return; + prepareFetchSplat() { + } + getNumSplats() { + return this.numSplats; + } + hasRgbDir() { + return Math.min(this.getNumSh(), this.maxSh) > 0; + } + getNumSh() { + return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3 ? 2 : 3; + } + setMaxSh(maxSh) { + this.maxSh = maxSh; + } + fetchSplat({ + index, + viewOrigin + }) { + let gsplat = readPackedSplat(this.dyno, index); + if (this.hasRgbDir() && viewOrigin) { + const splatCenter = splitGsplat(gsplat).outputs.center; + const viewDir = normalize(sub(splatCenter, viewOrigin)); + const { sh1Texture, sh2Texture, sh3Texture } = this.ensureShTextures(); + let { rgb } = evaluatePackedSH({ + coord: splatTexCoord(index), + viewDir, + numSh: this.dynoNumSh, + sh1Texture, + sh2Texture, + sh3Texture, + shMax: this.dynoShMax + }); + rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); + gsplat = combineGsplat({ gsplat, rgb }); } - if (this.sortTimeoutId !== -1) { - clearTimeout(this.sortTimeoutId); - this.sortTimeoutId = -1; + return gsplat; + } + ensureShTextures() { + if (!this.extra.sh1) { + return {}; } - const now = performance.now(); - const nextSortTime = this.lastSortTime ? this.lastSortTime + this.minSortIntervalMs : now; - if (now < nextSortTime) { - this.sortTimeoutId = setTimeout(() => { - this.sortTimeoutId = -1; - this.driveSort(); - }, nextSortTime - now); - return; + let sh1Texture = this.extra.sh1Texture; + if (!sh1Texture) { + let sh1 = this.extra.sh1; + const { width, height, depth, maxSplats } = getTextureSize( + sh1.length / 2 + ); + if (sh1.length < maxSplats * 2) { + const newSh1 = new Uint32Array(maxSplats * 2); + newSh1.set(sh1); + this.extra.sh1 = newSh1; + sh1 = newSh1; + } + const texture2 = new THREE__namespace.DataArrayTexture(sh1, width, height, depth); + texture2.format = THREE__namespace.RGIntegerFormat; + texture2.type = THREE__namespace.UnsignedIntType; + texture2.internalFormat = "RG32UI"; + texture2.needsUpdate = true; + sh1Texture = new DynoUsampler2DArray({ + value: texture2, + key: "sh1" + }); + this.extra.sh1Texture = sh1Texture; } - this.sorting = true; - this.sortDirty = false; - this.lastSortTime = now; - if (this.readPause > 0) { - await new Promise((resolve) => setTimeout(resolve, this.readPause)); + if (!this.extra.sh2) { + return { sh1Texture }; } - const current = this.current; - this.sortedCenter.copy(current.viewOrigin); - this.sortedDir.copy(current.viewDirection); - const { numSplats, maxSplats } = current; - const rows = Math.max(1, Math.ceil(maxSplats / 16384)); - const orderingMaxSplats = rows * 16384; - this.maxSplats = Math.max(this.maxSplats, orderingMaxSplats); - const ordering = new Uint32Array(this.maxSplats); - const readback = Readback.ensureBuffer(maxSplats, this.readback32); - this.readback32 = readback; - await this.readbackDepth({ - current, - renderer: this.renderer, - numSplats, - readback - }); - if (this.sortPause > 0) { - await new Promise((resolve) => setTimeout(resolve, this.sortPause)); + let sh2Texture = this.extra.sh2Texture; + if (!sh2Texture) { + let sh2 = this.extra.sh2; + const { width, height, depth, maxSplats } = getTextureSize( + sh2.length / 4 + ); + if (sh2.length < maxSplats * 4) { + const newSh2 = new Uint32Array(maxSplats * 4); + newSh2.set(sh2); + this.extra.sh2 = newSh2; + sh2 = newSh2; + } + const texture2 = new THREE__namespace.DataArrayTexture(sh2, width, height, depth); + texture2.format = THREE__namespace.RGBAIntegerFormat; + texture2.type = THREE__namespace.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + sh2Texture = new DynoUsampler2DArray({ + value: texture2, + key: "sh2" + }); + this.extra.sh2Texture = sh2Texture; } - if (!this.sortWorker) { - this.sortWorker = new SplatWorker(); + if (!this.extra.sh3) { + return { sh1Texture, sh2Texture }; } - const result = await this.sortWorker.call("sortSplats32", { - numSplats, - readback, - ordering - }); - if (this.sortDelay > 0) { - await new Promise((resolve) => setTimeout(resolve, this.sortDelay)); + let sh3Texture = this.extra.sh3Texture; + if (!sh3Texture) { + let sh3 = this.extra.sh3; + const { width, height, depth, maxSplats } = getTextureSize( + sh3.length / 4 + ); + if (sh3.length < maxSplats * 4) { + const newSh3 = new Uint32Array(maxSplats * 4); + newSh3.set(sh3); + this.extra.sh3 = newSh3; + sh3 = newSh3; + } + const texture2 = new THREE__namespace.DataArrayTexture(sh3, width, height, depth); + texture2.format = THREE__namespace.RGBAIntegerFormat; + texture2.type = THREE__namespace.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + sh3Texture = new DynoUsampler2DArray({ + value: texture2, + key: "sh3" + }); + this.extra.sh3Texture = sh3Texture; } - this.readback32 = result.readback; - this.activeSplats = result.activeSplats; - if (this.orderingTexture) { - if (rows > this.orderingTexture.image.height) { - this.orderingTexture.dispose(); - this.orderingTexture = null; + return { sh1Texture, sh2Texture, sh3Texture }; + } + // Ensures that this.packedArray can fit numSplats Gsplats. If it's too small, + // resize exponentially and copy over the original data. + // + // Typically you don't need to call this, because calling this.setSplat(index, ...) + // and this.pushSplat(...) will automatically call ensureSplats() so we have + // enough splats. + ensureSplats(numSplats) { + const targetSize = numSplats <= this.maxSplats ? this.maxSplats : ( + // Grow exponentially to avoid frequent reallocations + Math.max(numSplats, 2 * this.maxSplats) + ); + const currentSize = !this.packedArray ? 0 : this.packedArray.length / 4; + if (!this.packedArray || targetSize > currentSize) { + this.maxSplats = getTextureSize(targetSize).maxSplats; + const newArray2 = new Uint32Array(this.maxSplats * 4); + if (this.packedArray) { + newArray2.set(this.packedArray); } + this.packedArray = newArray2; } - if (!this.orderingTexture) { - const orderingTexture = new THREE__namespace.DataTexture( - result.ordering, - 4096, - rows, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType - ); - orderingTexture.internalFormat = "RGBA32UI"; - orderingTexture.needsUpdate = true; - this.orderingTexture = orderingTexture; + return this.packedArray; + } + // Ensure the extra array for the given level is large enough to hold numSplats + ensureSplatsSh(level, numSplats) { + let wordsPerSplat; + let key; + if (level === 0) { + return this.ensureSplats(numSplats); + } + if (level === 1) { + wordsPerSplat = 2; + key = "sh1"; + } else if (level === 2) { + wordsPerSplat = 4; + key = "sh2"; + } else if (level === 3) { + wordsPerSplat = 4; + key = "sh3"; } else { - const renderer = this.renderer; - const gl = renderer.getContext(); - if (!renderer.properties.has(this.orderingTexture)) { - this.orderingTexture.needsUpdate = true; - } else { - const props = renderer.properties.get(this.orderingTexture); - const glTexture = props.__webglTexture; - if (!glTexture) { - throw new Error("ordering texture not found"); - } - renderer.state.activeTexture(gl.TEXTURE0); - renderer.state.bindTexture(gl.TEXTURE_2D, glTexture); - gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null); - gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false); - gl.texSubImage2D( - gl.TEXTURE_2D, - 0, - 0, - 0, - 4096, - rows, - gl.RGBA_INTEGER, - gl.UNSIGNED_INT, - // data, - result.ordering - ); - renderer.state.bindTexture(gl.TEXTURE_2D, null); - } + throw new Error(`Invalid level: ${level}`); } - if (this.current.mappingVersion === current.mappingVersion) { - if (this.current.mappingVersion !== this.display.mappingVersion) { - this.accumulators.push(this.display); - this.display = this.current; + let maxSplats = !this.extra[key] ? 0 : this.extra[key].length / wordsPerSplat; + const targetSize = numSplats <= maxSplats ? maxSplats : Math.max(numSplats, 2 * maxSplats); + if (!this.extra[key] || targetSize > maxSplats) { + maxSplats = getTextureSize(targetSize).maxSplats; + const newArray2 = new Uint32Array(maxSplats * wordsPerSplat); + if (this.extra[key]) { + newArray2.set(this.extra[key]); } + this.extra[key] = newArray2; } - this.sorting = false; - this.setDirty(); - this.driveSort(); + return this.extra[key]; } - ensureLodWorker() { - if (!this.lodWorker) { - this.lodWorker = new SplatWorker(); + // Unpack the 16-byte Gsplat data at index into the Three.js components + // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, + // opacity: number 0..1, color: THREE.Color 0..1. + getSplat(index) { + if (!this.packedArray || index >= this.numSplats) { + throw new Error("Invalid index"); } - return this.lodWorker; + return unpackSplat(this.packedArray, index, this.splatEncoding); } - defaultSplatTarget() { - return isOculus() ? 5e5 : isVisionPro() ? 75e4 : isAndroid() ? 1e6 : isIos() ? 15e5 : 25e5; + // Set all PackedSplat components at index with the provided Gsplat attributes + // (can be the same objects returned by getSplat). Ensures there is capacity + // for at least index+1 Gsplats. + setSplat(index, center, scales, quaternion, opacity, color) { + const packedSplats = this.ensureSplats(index + 1); + setPackedSplat( + packedSplats, + index, + center.x, + center.y, + center.z, + scales.x, + scales.y, + scales.z, + quaternion.x, + quaternion.y, + quaternion.z, + quaternion.w, + opacity, + color.r, + color.g, + color.b + ); + this.numSplats = Math.max(this.numSplats, index + 1); } - driveLod({ - visibleGenerators, - camera, - scene - }) { - var _a2, _b2; - const defaultSplatCount = this.defaultSplatTarget(); - const splatCount = this.lodSplatCount ?? defaultSplatCount; - const maxSplats = splatCount * this.lodSplatScale; - let pixelScaleLimit = 0; - if (camera instanceof THREE__namespace.PerspectiveCamera) { - const tanYfov = Math.tan(0.5 * camera.fov * Math.PI / 180); - pixelScaleLimit = 2 * tanYfov / this.renderSize.y; - } else if (camera instanceof THREE__namespace.OrthographicCamera) { - const viewHeight = (camera.top - camera.bottom) / camera.zoom; - const viewWidth = (camera.right - camera.left) / camera.zoom; - const pxY = viewHeight / Math.max(1, this.renderSize.y); - const pxX = viewWidth / Math.max(1, this.renderSize.x); - pixelScaleLimit = Math.min(pxX, pxY); + // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on + // construction where you just want to iterate and create a collection of Gsplats. + pushSplat(center, scales, quaternion, opacity, color) { + const packedSplats = this.ensureSplats(this.numSplats + 1); + setPackedSplat( + packedSplats, + this.numSplats, + center.x, + center.y, + center.z, + scales.x, + scales.y, + scales.z, + quaternion.x, + quaternion.y, + quaternion.z, + quaternion.w, + opacity, + color.r, + color.g, + color.b + ); + ++this.numSplats; + } + // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat + // and invoke the callback function with the Gsplat attributes. + forEachSplat(callback) { + if (!this.packedArray || !this.numSplats) { + return; } - pixelScaleLimit *= this.lodRenderScale; - const viewPos = new THREE__namespace.Vector3(); - const viewQuat = new THREE__namespace.Quaternion(); - this.current.viewToWorld.decompose(viewPos, viewQuat, new THREE__namespace.Vector3()); - if (this.lodPosOverride) { - viewPos.copy(this.lodPosOverride); + for (let i = 0; i < this.numSplats; ++i) { + const unpacked = unpackSplat(this.packedArray, i, this.splatEncoding); + callback( + i, + unpacked.center, + unpacked.scales, + unpacked.quaternion, + unpacked.opacity, + unpacked.color + ); } - if (this.lodQuatOverride) { - viewQuat.copy(this.lodQuatOverride).normalize(); + } + // Ensures our PackedSplats.target render target has enough space to generate + // maxSplats total Gsplats, and reallocate if not large enough. + ensureGenerate(maxSplats) { + if (this.target && (maxSplats ?? 1) <= this.maxSplats) { + return false; } - if (this.lastLod) { - if (this.lastLod.pixelScaleLimit !== pixelScaleLimit || this.lastLod.maxSplats !== maxSplats) { - this.lodDirty = true; - } - const distance2 = viewPos.distanceTo(this.lastLod.pos); - const distanceRamp = Math.max(0, 1 - distance2 / 1); - const dot2 = viewQuat.dot(this.lastLod.quat); - const quatRamp = Math.max(0, 1 - (1 - dot2) / 0.01); - const similarity = distanceRamp * quatRamp; - if (similarity < 0.999) { - this.lodDirty = true; - } + if (this.target) { + this.target.dispose(); } - const lodMeshes = !this.enableLod ? [] : visibleGenerators.filter((generator) => { - var _a3, _b3; - return generator instanceof SplatMesh && (((_a3 = generator.packedSplats) == null ? void 0 : _a3.lodSplats) || ((_b3 = generator.extSplats) == null ? void 0 : _b3.lodSplats) || generator.paged) && generator.enableLod !== false; + const textureSize2 = getTextureSize(maxSplats ?? 1); + const { width, height, depth } = textureSize2; + this.maxSplats = textureSize2.maxSplats; + this.target = new THREE__namespace.WebGLArrayRenderTarget(width, height, depth, { + depthBuffer: false, + stencilBuffer: false, + generateMipmaps: false, + magFilter: THREE__namespace.NearestFilter, + minFilter: THREE__namespace.NearestFilter }); - const hasPaged = lodMeshes.some((mesh) => mesh.paged); - if (this.lodMeshes.length !== lodMeshes.length) { - this.lodDirty = true; - } else { - if (lodMeshes.some( - (m, i) => m !== this.lodMeshes[i].mesh || m.version > this.lodMeshes[i].version - )) { - this.lodDirty = true; - } + this.target.texture.format = THREE__namespace.RGBAIntegerFormat; + this.target.texture.type = THREE__namespace.UnsignedIntType; + this.target.texture.internalFormat = "RGBA32UI"; + this.target.scissorTest = true; + return true; + } + // Given an array of splatCounts (.numSplats for each + // SplatGenerator/SplatMesh in the scene), compute a + // "mapping layout" in the composite array of generated outputs. + generateMapping(splatCounts) { + let maxSplats = 0; + const mapping = splatCounts.map((numSplats) => { + const base = maxSplats; + const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + maxSplats += rounded; + return { base, count: numSplats }; + }); + return { maxSplats, mapping }; + } + // Returns a THREE.DataArrayTexture representing the PackedSplats content as + // a Uint32x4 data array texture (2048 x 2048 x depth in size) + getTexture() { + if (this.target) { + return this.target.texture; } - this.lodMeshes = lodMeshes.map((mesh) => ({ - mesh, - version: mesh.version + 1 - })); - this.lodInitQueue = []; - const now = performance.now(); - for (const mesh of lodMeshes) { - const splats = ((_a2 = mesh.packedSplats) == null ? void 0 : _a2.lodSplats) ?? ((_b2 = mesh.extSplats) == null ? void 0 : _b2.lodSplats) ?? mesh.paged; - if (splats) { - const record = this.lodIds.get(splats); - if (record) { - record.lastTouched = now; - } else { - this.lodInitQueue.push(splats); - } - } + if (this.source || this.packedArray) { + const source = this.maybeUpdateSource(); + return source; } - this.ensureLodWorker().tryExclusive(async (worker) => { - if (hasPaged && !this.pager) { - this.pager = new SplatPager({ - renderer: this.renderer, - extSplats: this.pagedExtSplats, - maxSplats: this.maxPagedSplats, - numFetchers: this.numLodFetchers - }); - const { lodId } = await worker.call("newLodTree", { - capacity: this.pager.maxSplats - }); - this.pagerId = lodId; - } - if (this.pager) { - for (const { mesh } of this.lodMeshes) { - if (mesh.paged && !mesh.paged.pager) { - mesh.paged.pager = this.pager; - } - } - } - if (this.lodInitQueue.length > 0) { - const lodInitQueue = this.lodInitQueue; - this.lodInitQueue = []; - while (lodInitQueue.length > 0) { - const splats = lodInitQueue.shift(); - if (splats) { - await this.initLodTree(worker, splats); - this.lodDirty = true; - } - } - } - if (this.pager) { - const updates = this.pager.consumeLodTreeUpdates(); - for (const { splats, page, chunk, numSplats, lodTree } of updates) { - const record = this.lodIds.get(splats); - if (record) { - if (lodTree && chunk === 0) { - record.rootPage = page; - } - this.lodUpdates.push({ - lodId: record.lodId, - pageBase: page * this.pager.pageSplats, - chunkBase: chunk * this.pager.pageSplats, - count: numSplats, - lodTreeData: lodTree - }); - } + return _PackedSplats.getEmptyArray; + } + // Check if source texture needs to be created/updated + maybeUpdateSource() { + if (!this.packedArray) { + throw new Error("No packed splats"); + } + if (this.needsUpdate || !this.source) { + this.needsUpdate = false; + if (this.source) { + const { width, height, depth } = this.source.image; + if (this.maxSplats !== width * height * depth) { + this.source.dispose(); + this.source = null; } } - if (this.lodUpdates.length > 0) { - const lodUpdates = this.lodUpdates; - this.lodUpdates = []; - await worker.call("updateLodTrees", { ranges: lodUpdates }); - this.lodDirty = true; - } - if (this.lodDirty) { - const now2 = performance.now(); - const deltaPred = new THREE__namespace.Vector3(); - if (this.lastLod) { - const deltaTime = Math.max(1, now2 - this.lastLod.timestamp); - deltaPred.copy(viewPos).sub(this.lastLod.pos).multiplyScalar(this.lastTraverseTime / deltaTime); - } - this.lastLod = { - pos: viewPos, - quat: viewQuat, - pixelScaleLimit, - maxSplats, - timestamp: now2 - }; - this.lodDirty = false; - await this.updateLodInstances( - worker, - deltaPred, - lodMeshes, - maxSplats, - viewPos, - viewQuat, - pixelScaleLimit + if (!this.source) { + const { width, height, depth } = getTextureSize(this.maxSplats); + this.source = new THREE__namespace.DataArrayTexture( + this.packedArray, + width, + height, + depth ); - this.currentLod = this.lastLod; - this.setDirty(); + this.source.format = THREE__namespace.RGBAIntegerFormat; + this.source.type = THREE__namespace.UnsignedIntType; + this.source.internalFormat = "RGBA32UI"; + this.source.needsUpdate = true; + } else if (this.packedArray.buffer !== this.source.image.data.buffer) { + this.source.image.data = new Uint8Array(this.packedArray.buffer); } - await this.cleanupLodTrees(worker); - }); - } - async initLodTree(worker, splats) { - if (splats instanceof PackedSplats || splats instanceof ExtSplats) { - const { lodId } = await worker.call("initLodTree", { - numSplats: splats.numSplats ?? 0, - lodTree: splats.extra.lodTree.slice() - }); - this.lodIds.set(splats, { lodId, lastTouched: performance.now() }); - this.lodIdToSplats.set(lodId, splats); - } else { - const { lodId } = await worker.call("newSharedLodTree", { - lodId: this.pagerId - }); - this.lodIds.set(splats, { lodId, lastTouched: performance.now() }); - this.lodIdToSplats.set(lodId, splats); + this.source.needsUpdate = true; } + return this.source; } - async updateLodInstances(worker, deltaPred, lodMeshes, maxSplats, viewPos, viewQuat, pixelScaleLimit) { - const uuidToMesh = /* @__PURE__ */ new Map(); - const cameraToWorld = new THREE__namespace.Matrix4().compose( - viewPos, - viewQuat, - new THREE__namespace.Vector3().setScalar(1) - ); - const instances = lodMeshes.reduce( - (instances2, mesh) => { - var _a2, _b2; - uuidToMesh.set(mesh.uuid, mesh); - const viewToObject = mesh.matrixWorld.clone().invert().multiply(cameraToWorld); - const splats = ((_a2 = mesh.packedSplats) == null ? void 0 : _a2.lodSplats) ?? ((_b2 = mesh.extSplats) == null ? void 0 : _b2.lodSplats) ?? mesh.paged; - if (!splats) { - return instances2; - } - const record = this.lodIds.get(splats); - if (!record) { - return instances2; - } - if (this.pager && mesh.paged && record.rootPage === void 0) { - return instances2; - } - instances2[mesh.uuid] = { - instanceId: mesh.uuid, - lodId: record.lodId, - rootPage: record.rootPage, - viewToObjectCols: viewToObject.elements, - lodScale: mesh.lodScale, - behindFoveate: mesh.behindFoveate ?? this.behindFoveate, - coneFov0: mesh.coneFov0 ?? this.coneFov0, - coneFov: mesh.coneFov ?? this.coneFov, - coneFoveate: mesh.coneFoveate ?? this.coneFoveate - }; - return instances2; - }, - {} - ); - const traverseStart = performance.now(); - const result = await worker.call("traverseLodTrees", { - maxSplats, - pixelScaleLimit, - lastPixelLimit: this.lastPixelLimit, - instances - }); - this.lastTraverseTime = performance.now() - traverseStart; - const { keyIndices, chunks, pixelLimit } = result; - this.lastPixelLimit = pixelLimit; - const totalLodSplats = Object.values(keyIndices).reduce( - (sum, { numSplats }) => sum + numSplats, - 0 - ); - this.updateLodIndices(uuidToMesh, keyIndices); - if (this.pager) { - this.pager.processUploads(); - const pagedMeshes = lodMeshes.map((mesh) => { - if (!mesh.paged || !this.pager) { - return null; + // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator, + // generating it if necessary and caching the result. + prepareProgramMaterial(generator) { + let program = _PackedSplats.generatorProgram.get(generator); + if (!program) { + const graph = dynoBlock( + { index: "int" }, + {}, + ({ index }, _outputs, { roots }) => { + generator.inputs.index = index; + const gsplat = generator.outputs.gsplat; + const output = outputPackedSplat( + gsplat, + this.dynoRgbMinMaxLnScaleMinMax + ); + roots.push(output); + return void 0; } - const meshPosition = mesh.getWorldPosition(new THREE__namespace.Vector3()); - return { - splats: mesh.paged, - distance: meshPosition.distanceTo(viewPos) - }; - }).filter((result2) => result2 !== null); - if (!this.pageSizeWarning && pagedMeshes.length > this.pager.maxPages) { - this.pageSizeWarning = true; - console.warn( - `# paged SplatMeshes exceeds maxPages: ${pagedMeshes.length} > ${this.pager.maxPages}` + ); + if (!_PackedSplats.programTemplate) { + _PackedSplats.programTemplate = new DynoProgramTemplate( + getShaders().computeUvec4Template ); } - pagedMeshes.sort((a, b) => a.distance - b.distance); - this.pager.fetchPriority = pagedMeshes.map(({ splats }) => ({ - splats, - chunk: 0 - })); - for (const [lodId, chunk] of chunks) { - const splats = this.lodIdToSplats.get(lodId); - if (splats instanceof PagedSplats) { - if (chunk !== 0) { - this.pager.fetchPriority.push({ splats, chunk }); - } - } - } - this.pager.autoDrive = this.enableLodFetching; - if (this.enableLodFetching) { - this.pager.driveFetchers(); - } - } - if (this.lodRaycast && performance.now() - this.lastLodRaycastTime >= this.lodRaycastIntervalMs) { - this.lastLodRaycastTime = performance.now(); - const traverseStart2 = performance.now(); - const result2 = await worker.call("traverseLodTrees", { - maxSplats: Math.min(this.lodRaycast, Math.round(totalLodSplats * 0.1)), - pixelScaleLimit, - instances + program = new DynoProgram({ + graph, + inputs: { index: "_index" }, + outputs: { output: "target" }, + template: _PackedSplats.programTemplate }); - performance.now() - traverseStart2; - const { keyIndices: keyIndices2 } = result2; - Object.values(keyIndices2).reduce( - (sum, { numSplats }) => sum + numSplats, - 0 + Object.assign(program.uniforms, { + targetLayer: { value: 0 }, + targetBase: { value: 0 }, + targetCount: { value: 0 } + }); + _PackedSplats.generatorProgram.set(generator, program); + } + const material = program.prepareMaterial(); + _PackedSplats.fullScreenQuad.material = material; + return { program, material }; + } + saveRenderState(renderer) { + return { + target: renderer.getRenderTarget(), + xrEnabled: renderer.xr.enabled, + autoClear: renderer.autoClear + }; + } + resetRenderState(renderer, state) { + renderer.setRenderTarget(state.target); + renderer.xr.enabled = state.xrEnabled; + renderer.autoClear = state.autoClear; + } + // Executes a dyno program specified by generator which is any DynoBlock that + // maps { index: "int" } to { gsplat: Gsplat }. This is called in + // SparkRenderer.updateInternal() to re-generate Gsplats in the scene for + // SplatGenerator instances whose version is newer than what was generated + // for it last time. + generate({ + generator, + base, + count, + renderer + }) { + if (!this.target) { + throw new Error("Target must be initialized with ensureSplats"); + } + if (base + count > this.maxSplats) { + throw new Error("Base + count exceeds maxSplats"); + } + const { program, material } = this.prepareProgramMaterial(generator); + program.update(); + const renderState = this.saveRenderState(renderer); + const nextBase = Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT; + material.uniforms.targetBase.value = base; + material.uniforms.targetCount.value = count; + while (base < nextBase) { + const layer = Math.floor(base / layerSize); + material.uniforms.targetLayer.value = layer; + const layerBase = layer * layerSize; + const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH); + const layerYEnd = Math.min( + SPLAT_TEX_HEIGHT, + Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH) ); - for (const [uuid, countIndices] of Object.entries(keyIndices2)) { - const mesh = uuidToMesh.get(uuid); - mesh.raycastIndices = countIndices; - } + this.target.scissor.set( + 0, + layerYStart, + SPLAT_TEX_WIDTH, + layerYEnd - layerYStart + ); + renderer.setRenderTarget(this.target, layer); + renderer.xr.enabled = false; + renderer.autoClear = false; + _PackedSplats.fullScreenQuad.render(renderer); + base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart); } + this.resetRenderState(renderer, renderState); + return { nextBase }; } - async cleanupLodTrees(worker) { - const DISPOSE_TIMEOUT_MS = 3e3; - const now = performance.now(); - let oldest = null; - for (const [splats, record] of this.lodIds.entries()) { - if (oldest == null || record.lastTouched < oldest.lastTouched) { - oldest = { - splats, - lastTouched: record.lastTouched, - lodId: record.lodId - }; - } + disposeLodSplats() { + if (this.lodSplats) { + this.lodSplats.dispose(); + this.lodSplats = void 0; } - if (!oldest || oldest.lastTouched > now - DISPOSE_TIMEOUT_MS) { - return; + } + async createLodSplats({ + rgbaArray, + quality + } = {}) { + const lodBase = typeof this.lod === "number" ? Math.max(1.1, Math.min(2, this.lod)) : quality ? 1.75 : 1.5; + const packedArray = this.packedArray.slice(); + const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : void 0; + const extra = { + sh1: this.extra.sh1 ? this.extra.sh1.slice() : void 0, + sh2: this.extra.sh2 ? this.extra.sh2.slice() : void 0, + sh3: this.extra.sh3 ? this.extra.sh3.slice() : void 0 + }; + const decoded = await workerPool.withWorker(async (worker) => { + return await worker.call( + quality ? "qualityLodPackedSplats" : "tinyLodPackedSplats", + { + numSplats: this.numSplats, + packedArray, + extra, + lodBase, + rgba, + encoding: this.splatEncoding ?? DEFAULT_SPLAT_ENCODING + } + ); + }); + const lodSplats = new _PackedSplats(decoded); + if (this.lodSplats) { + this.lodSplats.dispose(); } - this.lodIds.delete(oldest.splats); - this.lodIdToSplats.delete(oldest.lodId); - for (const [mesh, instance] of this.lodInstances.entries()) { - if (instance.lodId === oldest.lodId) { - instance.texture.dispose(); - this.lodInstances.delete(mesh); + this.lodSplats = lodSplats; + this.nonLod = true; + this.lod = quality ? "quality" : true; + } + extractSplats(indices, pageColoring) { + const maxSplats = getTextureSize(indices.length).maxSplats; + const newSplats = new _PackedSplats({ maxSplats }); + for (let i = 0; i < indices.length; i++) { + const splat = this.getSplat(indices[i]); + if (pageColoring) { + let hue = (indices[i] >>> 16) * 0.61803398875; + hue = hue - Math.floor(hue); + const r = Math.max(0, Math.min(1, Math.abs(hue * 6 - 3) - 1)); + const g = Math.max(0, Math.min(1, Math.abs(hue * 6 + 1) - 1)); + const b = Math.max(0, Math.min(1, Math.abs(hue * 6 - 1) - 1)); + splat.color.r *= r; + splat.color.g *= g; + splat.color.b *= b; } + newSplats.pushSplat( + splat.center, + splat.scales, + splat.quaternion, + splat.opacity, + splat.color + ); } - await worker.call("disposeLodTree", { lodId: oldest.lodId }); + return newSplats; } - updateLodIndices(uuidToMesh, keyIndices) { - for (const [uuid, countIndices] of Object.entries(keyIndices)) { - const { lodId, numSplats, indices } = countIndices; - const mesh = uuidToMesh.get(uuid); - if (mesh.paged) { - mesh.paged.update(numSplats, indices); - } else { - let instance = this.lodInstances.get(mesh); - if (instance) { - if (indices.length > instance.indices.length) { - instance.texture.dispose(); - instance = void 0; - } - } - const rows = Math.ceil(indices.length / 16384); - if (!instance) { - const capacity = rows * 16384; - if (indices.length !== capacity) { - throw new Error("Indices length != capacity"); - } - const texture2 = new THREE__namespace.DataTexture( - indices, - 4096, - rows, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType - ); - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - instance = { lodId, numSplats, indices, texture: texture2 }; - this.lodInstances.set(mesh, instance); - } else { - instance.numSplats = numSplats; - const renderer = this.renderer; - const gl = renderer.getContext(); - if (renderer.properties.has(instance.texture)) { - const props = renderer.properties.get(instance.texture); - const glTexture = props.__webglTexture; - if (!glTexture) { - throw new Error("lodIndices texture not found"); - } - renderer.state.activeTexture(gl.TEXTURE0); - renderer.state.bindTexture(gl.TEXTURE_2D, glTexture); - gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null); - gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false); - gl.texSubImage2D( - gl.TEXTURE_2D, - 0, - 0, - 0, - 4096, - rows, - gl.RGBA_INTEGER, - gl.UNSIGNED_INT, - indices - ); - renderer.state.bindTexture(gl.TEXTURE_2D, null); - } - } +}; +_PackedSplats.getEmptyArray = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 4); + const texture2 = new THREE__namespace.DataArrayTexture( + emptyArray, + width, + height, + depth + ); + texture2.format = THREE__namespace.RGBAIntegerFormat; + texture2.type = THREE__namespace.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +_PackedSplats.programTemplate = null; +_PackedSplats.generatorProgram = /* @__PURE__ */ new WeakMap(); +_PackedSplats.fullScreenQuad = new Pass_js.FullScreenQuad( + new THREE__namespace.RawShaderMaterial({ visible: false }) +); +_PackedSplats.emptyUint32x4 = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 4); + const texture2 = new THREE__namespace.DataArrayTexture( + emptyArray, + width, + height, + depth + ); + texture2.format = THREE__namespace.RGBAIntegerFormat; + texture2.type = THREE__namespace.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +_PackedSplats.emptyUint32x2 = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 2); + const texture2 = new THREE__namespace.DataArrayTexture( + emptyArray, + width, + height, + depth + ); + texture2.format = THREE__namespace.RGIntegerFormat; + texture2.type = THREE__namespace.UnsignedIntType; + texture2.internalFormat = "RG32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +let PackedSplats = _PackedSplats; +class DynoPackedSplats extends DynoUniform { + constructor({ packedSplats } = {}) { + super({ + key: "packedSplats", + type: TPackedSplats, + globals: () => [definePackedSplats], + value: { + textureArray: PackedSplats.getEmptyArray, + numSplats: 0, + rgbMinMaxLnScaleMinMax: new THREE__namespace.Vector4( + 0, + 1, + LN_SCALE_MIN, + LN_SCALE_MAX + ), + lodOpacity: false + }, + update: (value) => { + var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l; + value.textureArray = ((_a2 = this.packedSplats) == null ? void 0 : _a2.getTexture()) ?? PackedSplats.getEmptyArray; + value.numSplats = ((_b2 = this.packedSplats) == null ? void 0 : _b2.numSplats) ?? 0; + value.rgbMinMaxLnScaleMinMax.set( + ((_d = (_c = this.packedSplats) == null ? void 0 : _c.splatEncoding) == null ? void 0 : _d.rgbMin) ?? 0, + ((_f = (_e = this.packedSplats) == null ? void 0 : _e.splatEncoding) == null ? void 0 : _f.rgbMax) ?? 1, + ((_h = (_g = this.packedSplats) == null ? void 0 : _g.splatEncoding) == null ? void 0 : _h.lnScaleMin) ?? LN_SCALE_MIN, + ((_j = (_i = this.packedSplats) == null ? void 0 : _i.splatEncoding) == null ? void 0 : _j.lnScaleMax) ?? LN_SCALE_MAX + ); + value.lodOpacity = ((_l = (_k = this.packedSplats) == null ? void 0 : _k.splatEncoding) == null ? void 0 : _l.lodOpacity) ?? false; + return value; } - mesh.updateMappingVersion(); - } + }); + this.packedSplats = packedSplats; } - async readbackDepth({ - current, - renderer, - numSplats, - readback - }) { - if (!renderer) { - throw new Error("No renderer"); - } - if (!current.target) { - throw new Error("No target"); - } - const roundedCount = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - if (readback.byteLength < roundedCount * 4) { - throw new Error( - `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}` - ); - } - const readbackUint8 = new Uint8Array(readback.buffer); - const renderState = this.saveRenderState(renderer); - const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT; - let baseIndex = 0; - const promises = []; - while (baseIndex < numSplats) { - const layer = Math.floor(baseIndex / layerSize); - const layerBase = layer * layerSize; - const layerYEnd = Math.min( - SPLAT_TEX_HEIGHT, - Math.ceil((numSplats - layerBase) / SPLAT_TEX_WIDTH) - ); - const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4; - const subReadback = readbackUint8.subarray( - layerBase * 4, - layerBase * 4 + readbackSize - ); - renderer.setRenderTarget(current.target, layer); - const promise = renderer.readRenderTargetPixelsAsync( - current.target, - 0, - 0, - SPLAT_TEX_WIDTH, - layerYEnd, - subReadback, - void 0, - current.extSplats ? 2 : 1 - ); - promises.push(promise); - if (this.flushAfterRead) { - const gl = renderer.getContext(); - gl.flush(); +} +const defineEvalPackedSH1 = unindent(` + vec3 evaluatePackedSH1(uvec2 packedData, vec3 viewDir, float sh1Max) { + // Extract sint7 values packed into 2 x uint32 + vec3 sh1_0 = vec3(ivec3( + int(packedData.x << 25u) >> 25, + int(packedData.x << 18u) >> 25, + int(packedData.x << 11u) >> 25 + )); + vec3 sh1_1 = vec3(ivec3( + int(packedData.x << 4u) >> 25, + int((packedData.x >> 3u) | (packedData.y << 29u)) >> 25, + int(packedData.y << 22u) >> 25 + )); + vec3 sh1_2 = vec3(ivec3( + int(packedData.y << 15u) >> 25, + int(packedData.y << 8u) >> 25, + int(packedData.y << 1u) >> 25 + )); + + vec3 rgb = sh1_0 * (-0.4886025 * viewDir.y) + + sh1_1 * (0.4886025 * viewDir.z) + + sh1_2 * (-0.4886025 * viewDir.x); + return rgb * (sh1Max / 63.0); + } +`); +const defineEvalPackedSH2 = unindent(` + vec3 evaluatePackedSH2(uvec4 packedData, vec3 viewDir, float sh2Max) { + // Extract sint8 values packed into 4 x uint32 + vec3 sh2_0 = vec3(ivec3( + int(packedData.x << 24u) >> 24, + int(packedData.x << 16u) >> 24, + int(packedData.x << 8u) >> 24 + )); + vec3 sh2_1 = vec3(ivec3( + int(packedData.x) >> 24, + int(packedData.y << 24u) >> 24, + int(packedData.y << 16u) >> 24 + )); + vec3 sh2_2 = vec3(ivec3( + int(packedData.y << 8u) >> 24, + int(packedData.y) >> 24, + int(packedData.z << 24u) >> 24 + )); + vec3 sh2_3 = vec3(ivec3( + int(packedData.z << 16u) >> 24, + int(packedData.z << 8u) >> 24, + int(packedData.z) >> 24 + )); + vec3 sh2_4 = vec3(ivec3( + int(packedData.w << 24u) >> 24, + int(packedData.w << 16u) >> 24, + int(packedData.w << 8u) >> 24 + )); + + vec3 rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y) + + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z) + + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y)) + + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z) + + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y)); + return rgb * (sh2Max / 127.0); + } +`); +const defineEvalPackedSH3 = unindent(` + vec3 evaluatePackedSH3(uvec4 packedData, vec3 viewDir, float sh3Max) { + // Extract sint6 values packed into 4 x uint32 + vec3 sh3_0 = vec3(ivec3( + int(packedData.x << 26u) >> 26, + int(packedData.x << 20u) >> 26, + int(packedData.x << 14u) >> 26 + )); + vec3 sh3_1 = vec3(ivec3( + int(packedData.x << 8u) >> 26, + int(packedData.x << 2u) >> 26, + int((packedData.x >> 4u) | (packedData.y << 28u)) >> 26 + )); + vec3 sh3_2 = vec3(ivec3( + int(packedData.y << 22u) >> 26, + int(packedData.y << 16u) >> 26, + int(packedData.y << 10u) >> 26 + )); + vec3 sh3_3 = vec3(ivec3( + int(packedData.y << 4u) >> 26, + int((packedData.y >> 2u) | (packedData.z << 30u)) >> 26, + int(packedData.z << 24u) >> 26 + )); + vec3 sh3_4 = vec3(ivec3( + int(packedData.z << 18u) >> 26, + int(packedData.z << 12u) >> 26, + int(packedData.z << 6u) >> 26 + )); + vec3 sh3_5 = vec3(ivec3( + int(packedData.z) >> 26, + int(packedData.w << 26u) >> 26, + int(packedData.w << 20u) >> 26 + )); + vec3 sh3_6 = vec3(ivec3( + int(packedData.w << 14u) >> 26, + int(packedData.w << 8u) >> 26, + int(packedData.w << 2u) >> 26 + )); + + float xx = viewDir.x * viewDir.x; + float yy = viewDir.y * viewDir.y; + float zz = viewDir.z * viewDir.z; + float xy = viewDir.x * viewDir.y; + float yz = viewDir.y * viewDir.z; + float zx = viewDir.z * viewDir.x; + + vec3 rgb = sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy)) + + sh3_1 * (2.8906114 * xy * viewDir.z) + + + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy)) + + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) + + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy)) + + sh3_5 * (1.4453057 * viewDir.z * (xx - yy)) + + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy)); + return rgb * (sh3Max / 31.0); + } +`); +function evaluatePackedSH({ + coord, + viewDir, + numSh, + sh1Texture, + sh2Texture, + sh3Texture, + shMax +}) { + return new Dyno({ + inTypes: { + coord: "ivec3", + viewDir: "vec3", + numSh: "int", + sh1Texture: "usampler2DArray", + sh2Texture: "usampler2DArray", + sh3Texture: "usampler2DArray", + shMax: "vec3" + }, + outTypes: { rgb: "vec3" }, + inputs: { + coord, + viewDir, + numSh, + sh1Texture, + sh2Texture, + sh3Texture, + shMax + }, + globals: () => [ + defineEvalPackedSH1, + defineEvalPackedSH2, + defineEvalPackedSH3 + ], + statements: ({ inputs, outputs }) => { + const lines = ["vec3 rgb = vec3(0.0);"]; + if (inputs.sh1Texture) { + lines.push( + ...unindentLines(` + if (${inputs.numSh} >= 1) { + vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0).rg, ${inputs.viewDir}, ${inputs.shMax}.x); + rgb += sh1Rgb; + `) + ); + if (inputs.sh2Texture) { + lines.push( + ...unindentLines(` + if (${inputs.numSh} >= 2) { + vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.y); + rgb += sh2Rgb; + `) + ); + if (inputs.sh3Texture) { + lines.push( + ...unindentLines(` + if (${inputs.numSh} >= 3) { + vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${inputs.sh3Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.z); + rgb += sh3Rgb; + } + `) + ); + } + lines.push("}"); + } + lines.push("}"); } - baseIndex += SPLAT_TEX_WIDTH * layerYEnd; + lines.push(`${outputs.rgb} = rgb;`); + return lines; } - this.resetRenderState(renderer, renderState); - return Promise.all(promises).then(() => readback); + }).outputs; +} +class SplatLoader extends THREE.Loader { + constructor(manager) { + super(manager); + this.fileLoader = new THREE.FileLoader(manager); } - saveRenderState(renderer) { - return { - target: renderer.getRenderTarget(), - xrEnabled: renderer.xr.enabled, - autoClear: renderer.autoClear - }; + load(url, onLoad, onProgress, onError) { + return this.loadInternal({ + url, + onLoad, + onProgress, + onError + }); } - resetRenderState(renderer, state) { - renderer.setRenderTarget(state.target); - renderer.xr.enabled = state.xrEnabled; - renderer.autoClear = state.autoClear; + async loadAsync(url, onProgress) { + return new Promise((resolve, reject) => { + this.load( + url, + (decoded) => { + resolve(decoded); + }, + onProgress, + reject + ); + }); } - render(scene, camera) { - try { - _SparkRenderer.sparkOverride = this; - this.renderer.render(scene, camera); - } finally { - _SparkRenderer.sparkOverride = void 0; - } + parse(packedSplats) { + return new SplatMesh({ packedSplats }); } - renderTarget({ - scene, - camera + loadInternal({ + packedSplats, + extSplats, + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + onLoad, + onProgress, + onError, + lod, + nonLod, + lodAbove, + lodBase }) { - const target = this.backTarget ?? this.target; - if (!target) { - throw new Error("No target"); - } - const previousTarget = this.renderer.getRenderTarget(); - try { - this.renderer.setRenderTarget(target); - _SparkRenderer.sparkOverride = this; - this.renderer.render(scene, camera); - } finally { - _SparkRenderer.sparkOverride = void 0; - this.renderer.setRenderTarget(previousTarget); - } - if (target !== this.target) { - [this.target, this.backTarget] = [this.backTarget, this.target]; - } - return target; - } - // Read back the previously rendered target image as a Uint8Array of packed - // RGBA values (in that order). Subsequent calls to this.readTarget() - // will reuse the same buffers to minimize memory allocations. - async readTarget() { - if (!this.target) { - throw new Error("Must initialize with target"); - } - const { width, height } = this.target; - const byteSize = width * height * 4; - if (!this.superPixels || this.superPixels.length < byteSize) { - this.superPixels = new Uint8Array(byteSize); - } - const superPixels = this.superPixels; - await this.renderer.readRenderTargetPixelsAsync( - this.target, - 0, - 0, - width, - height, - superPixels - ); - const { superXY } = this; - if (superXY === 1) { - return superPixels; - } - const subWidth = width / superXY; - const subHeight = height / superXY; - const subSize = subWidth * subHeight * 4; - if (!this.targetPixels || this.targetPixels.length < subSize) { - this.targetPixels = new Uint8Array(subSize); + if (fileBytes instanceof ArrayBuffer) { + fileBytes = new Uint8Array(fileBytes); } - const targetPixels = this.targetPixels; - const super2 = superXY * superXY; - for (let y = 0; y < subHeight; y++) { - const row = y * subWidth; - for (let x = 0; x < subWidth; x++) { - const superCol = x * superXY; - let r = 0; - let g = 0; - let b = 0; - let a = 0; - for (let sy = 0; sy < superXY; sy++) { - const superRow = (y * superXY + sy) * width; - for (let sx = 0; sx < superXY; sx++) { - const superIndex = (superRow + superCol + sx) * 4; - r += superPixels[superIndex]; - g += superPixels[superIndex + 1]; - b += superPixels[superIndex + 2]; - a += superPixels[superIndex + 3]; + const resolvedURL = fileBytes ? void 0 : this.manager.resolveURL((this.path ?? "") + (url ?? "")); + let readStream = stream == null ? void 0 : stream.getReader(); + this.manager.itemStart(resolvedURL ?? ""); + workerPool.withWorker(async (worker) => { + const splatsLod = (packedSplats == null ? void 0 : packedSplats.lod) ?? (extSplats == null ? void 0 : extSplats.lod); + if (splatsLod) { + lod = splatsLod; + } + const splatsNonLod = (packedSplats == null ? void 0 : packedSplats.nonLod) ?? (extSplats == null ? void 0 : extSplats.nonLod); + if (splatsNonLod !== void 0) { + nonLod = splatsNonLod; + } + const onStatus = async (data) => { + const { loaded, total } = data; + if (loaded !== void 0 && onProgress) { + onProgress( + new ProgressEvent("progress", { + lengthComputable: total !== 0, + loaded, + total + }) + ); + } + if (data.nextChunk) { + let chunk; + if (!readStream) { + chunk = new Uint8Array(0); + } else { + const { done, value } = await readStream.read(); + if (done) { + readStream.releaseLock(); + readStream = void 0; + chunk = new Uint8Array(0); + } else { + chunk = value; + } } + worker.call("nextChunk", { chunk }); + } + }; + const basedUrl = resolvedURL ? new URL(resolvedURL, window.location.href).toString() : void 0; + const decoded = await worker.call( + extSplats ? "loadExtSplats" : "loadPackedSplats", + { + url: basedUrl, + requestHeader: this.requestHeader, + withCredentials: this.withCredentials, + fileBytes: fileBytes == null ? void 0 : fileBytes.slice(), + fileType, + pathName: resolvedURL || fileName, + chunked: stream !== void 0, + chunkedLength: streamLength, + encoding: packedSplats == null ? void 0 : packedSplats.splatEncoding, + lod, + lodBase, + nonLod, + lodAbove + }, + { onStatus } + ); + if (decoded.lodSplats) { + if (extSplats) { + decoded.lodSplats = new ExtSplats({ + ...decoded.lodSplats + }); + } else { + decoded.lodSplats = new PackedSplats({ + ...decoded.lodSplats, + maxSplats: packedSplats == null ? void 0 : packedSplats.maxSplats + }); + } + } + if (extSplats) { + const initExtSplats = { + // ...(initExt ?? {}), + ...decoded + }; + extSplats.initialize(initExtSplats); + onLoad == null ? void 0 : onLoad(extSplats); + } else { + const initSplats = { + // ...(init ?? {}), + ...decoded + }; + if (packedSplats) { + packedSplats.initialize(initSplats); + onLoad == null ? void 0 : onLoad(packedSplats); + } else { + onLoad == null ? void 0 : onLoad(new PackedSplats(initSplats)); } - const pixelIndex = (row + x) * 4; - targetPixels[pixelIndex] = r / super2; - targetPixels[pixelIndex + 1] = g / super2; - targetPixels[pixelIndex + 2] = b / super2; - targetPixels[pixelIndex + 3] = a / super2; } - } - return targetPixels; - } - async renderReadTarget({ - scene, - camera - }) { - this.renderTarget({ scene, camera }); - return this.readTarget(); + }).catch((error) => { + this.manager.itemError(resolvedURL ?? ""); + onError == null ? void 0 : onError(error); + }).finally(() => { + this.manager.itemEnd(resolvedURL ?? ""); + }); } - // Renders out the scene to a cube map that can be used for - // Image-based lighting or similar applications. First optionally updates Gsplats, - // sorts them with respect to the provided worldCenter, renders 6 cube faces. - async renderCubeMap({ - scene, - worldCenter, - size = 256, - near = 0.1, - far = 1e3, - hideObjects = [], - update = true, - filter = false + async loadInternalAsync({ + packedSplats, + extSplats, + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + onProgress, + lod, + nonLod, + lodAbove, + lodBase }) { - if (!_SparkRenderer.cubeRender || _SparkRenderer.cubeRender.target.width !== size || _SparkRenderer.cubeRender.near !== near || _SparkRenderer.cubeRender.far !== far) { - if (_SparkRenderer.cubeRender) { - _SparkRenderer.cubeRender.target.dispose(); - } - const target2 = new THREE__namespace.WebGLCubeRenderTarget(size, { - format: THREE__namespace.RGBAFormat, - type: THREE__namespace.UnsignedByteType, - generateMipmaps: filter, - minFilter: filter ? THREE__namespace.LinearMipMapLinearFilter : THREE__namespace.LinearFilter, - magFilter: THREE__namespace.LinearFilter, - colorSpace: filter ? THREE__namespace.LinearSRGBColorSpace : THREE__namespace.SRGBColorSpace + return new Promise((resolve, reject) => { + this.loadInternal({ + packedSplats, + extSplats, + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + onLoad: resolve, + onProgress, + onError: reject, + lod, + nonLod, + lodAbove, + lodBase }); - const cubeCamera2 = new THREE__namespace.CubeCamera(near, far, target2); - _SparkRenderer.cubeRender = { target: target2, cubeCamera: cubeCamera2, near, far }; - } - const { target, cubeCamera } = _SparkRenderer.cubeRender; - cubeCamera.position.copy(worldCenter); - const objectVisibility = /* @__PURE__ */ new Map(); - for (const object of hideObjects) { - objectVisibility.set(object, object.visible); - object.visible = false; - } - if (update) { - const tempCamera = new THREE__namespace.Camera(); - tempCamera.position.copy(worldCenter); - await this.update({ scene, camera: tempCamera }); - } - try { - _SparkRenderer.sparkOverride = this; - cubeCamera.update(this.renderer, scene); - } finally { - _SparkRenderer.sparkOverride = void 0; - } - for (const [object, visible] of objectVisibility.entries()) { - object.visible = visible; - } - return target.texture; + }); } - async readCubeTargets() { - if (!_SparkRenderer.cubeRender) { - throw new Error("No cube render"); - } - const textures = _SparkRenderer.cubeRender.target.texture; - const promises = []; - const buffers = []; - for (let i = 0; i < textures.images.length; ++i) { - const { width, height } = textures.images[i]; - const byteSize = width * height * 4; - const readback = new Uint8Array(byteSize); - buffers.push(readback); - const promise = this.renderer.readRenderTargetPixelsAsync( - _SparkRenderer.cubeRender.target, - 0, - 0, - width, - height, - readback, - i - ); - promises.push(promise); +} +function getSplatFileType(fileBytes) { + const view = new DataView(fileBytes.buffer); + const magic = view.getUint32(0, true); + if ((magic & 16777215) === 7957616) { + return SplatFileType.PLY; + } + if ((magic & 16777215) === 559903) { + const header = decompressPartialGzip(fileBytes, 4); + const gView = new DataView(header.buffer); + if (gView.getUint32(0, true) === 1347635022) { + return SplatFileType.SPZ; } - await Promise.all(promises); - return buffers; + return void 0; } - // Renders out the scene to an environment map that can be used for - // Image-based lighting or similar applications. First optionally updates Gsplats, - // sorts them with respect to the provided worldCenter, renders 6 cube faces, - // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture - // that can assigned directly to a THREE.MeshStandardMaterial.envMap property. - async renderEnvMap({ - scene, - worldCenter, - size = 256, - near = 0.1, - far = 1e3, - hideObjects = [], - update = true - }) { - var _a2; - const cubeTexture = await this.renderCubeMap({ - scene, - worldCenter, - size, - near, - far, - hideObjects, - update, - filter: true - }); - if (!_SparkRenderer.pmrem) { - _SparkRenderer.pmrem = new THREE__namespace.PMREMGenerator(this.renderer); + if (magic === 67324752) { + if (tryPcSogsZip(fileBytes)) { + return SplatFileType.PCSOGSZIP; } - return (_a2 = _SparkRenderer.pmrem) == null ? void 0 : _a2.fromCubemap(cubeTexture).texture; + return void 0; } - // Utility function to recursively set the envMap property for any - // THREE.MeshStandardMaterial within the subtree of root. - recurseSetEnvMap(root, envMap) { - root.traverse((node) => { - if (node instanceof THREE__namespace.Mesh) { - if (Array.isArray(node.material)) { - for (const material of node.material) { - if (material instanceof THREE__namespace.MeshStandardMaterial) { - material.envMap = envMap; - } - } - } else { - if (node.material instanceof THREE__namespace.MeshStandardMaterial) { - node.material.envMap = envMap; - } + if (magic === 809779538) { + return SplatFileType.RAD; + } + return void 0; +} +function getFileExtension(pathOrUrl) { + const noTrailing = pathOrUrl.split(/[?#]/, 1)[0]; + const lastSlash = Math.max( + noTrailing.lastIndexOf("/"), + noTrailing.lastIndexOf("\\") + ); + const filename = noTrailing.slice(lastSlash + 1); + const lastDot = filename.lastIndexOf("."); + if (lastDot <= 0 || lastDot === filename.length - 1) { + return ""; + } + return filename.slice(lastDot + 1).toLowerCase(); +} +function getSplatFileTypeFromPath(pathOrUrl) { + const extension = getFileExtension(pathOrUrl); + if (extension === "ply") { + return SplatFileType.PLY; + } + if (extension === "spz") { + return SplatFileType.SPZ; + } + if (extension === "splat") { + return SplatFileType.SPLAT; + } + if (extension === "ksplat") { + return SplatFileType.KSPLAT; + } + if (extension === "sog") { + return SplatFileType.PCSOGSZIP; + } + if (extension === "rad") { + return SplatFileType.RAD; + } + return void 0; +} +function isPcSogs(input) { + return tryPcSogs(input) !== void 0; +} +function tryPcSogs(input) { + try { + let text; + if (typeof input === "string") { + text = input; + } else { + const fileBytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input; + if (fileBytes.length > 65536) { + return void 0; + } + text = new TextDecoder().decode(fileBytes); + } + const json = JSON.parse(text); + if (!json || typeof json !== "object" || Array.isArray(json)) { + return void 0; + } + const isVersion2 = json.version === 2; + for (const key of ["means", "scales", "quats", "sh0"]) { + if (!json[key] || typeof json[key] !== "object" || Array.isArray(json[key])) { + return void 0; + } + if (isVersion2) { + if (!json[key].files) { + return void 0; + } + if ((key === "scales" || key === "sh0") && !json[key].codebook) { + return void 0; + } + if (key === "means" && (!json[key].mins || !json[key].maxs)) { + return void 0; + } + } else { + if (!json[key].shape || !json[key].files) { + return void 0; + } + if (key !== "quats" && (!json[key].mins || !json[key].maxs)) { + return void 0; } } - }); - } - async getLodTreeLevel(splats, level, pageColoring = false) { - var _a2, _b2; - const instance = this.lodInstances.get(splats); - if (!instance) { - return null; } - const result = await this.ensureLodWorker().exclusive(async (worker) => { - return await worker.call("getLodTreeLevel", { - lodId: instance.lodId, - level - }); + return json; + } catch { + return void 0; + } +} +function tryPcSogsZip(input) { + try { + const fileBytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input; + let metaFilename = null; + const unzipped = unzipSync(fileBytes, { + filter: ({ name }) => { + const filename = name.split(/[\\/]/).pop(); + if (filename === "meta.json") { + metaFilename = name; + return true; + } + return false; + } }); - if ((_a2 = splats.packedSplats) == null ? void 0 : _a2.lodSplats) { - const newSplats = splats.packedSplats.lodSplats.extractSplats( - result.indices, - pageColoring - ); - return new SplatMesh({ packedSplats: newSplats }); + if (!metaFilename) { + return void 0; } - if ((_b2 = splats.extSplats) == null ? void 0 : _b2.lodSplats) { - const newSplats = splats.extSplats.lodSplats.extractSplats( - result.indices, - pageColoring - ); - return new SplatMesh({ extSplats: newSplats }); + const json = tryPcSogs(unzipped[metaFilename]); + if (!json) { + return void 0; } - throw new Error( - "Only LoD-enabled PackedSplats and ExtSplats are supported" - ); + return { name: metaFilename, json }; + } catch { + return void 0; } - get premultipliedAlpha() { - return this.material.premultipliedAlpha; +} +class SplatData { + constructor({ maxSplats = 1 } = {}) { + this.numSplats = 0; + this.maxSplats = getTextureSize(maxSplats).maxSplats; + this.centers = new Float32Array(this.maxSplats * 3); + this.scales = new Float32Array(this.maxSplats * 3); + this.quaternions = new Float32Array(this.maxSplats * 4); + this.opacities = new Float32Array(this.maxSplats); + this.colors = new Float32Array(this.maxSplats * 3); } - set premultipliedAlpha(value) { - if (this.material.premultipliedAlpha !== value) { - this.material.premultipliedAlpha = value; - this.material.needsUpdate = true; - } + pushSplat() { + const index = this.numSplats; + this.ensureIndex(index); + this.numSplats += 1; + return index; } -}; -_SparkRenderer.emptyOrdering = (() => { - const numIndices = 4 * 4096 * 1; - const emptyArray = new Uint32Array(numIndices); - const texture2 = new THREE__namespace.DataTexture(emptyArray, 4096, 1); - texture2.format = THREE__namespace.RGBAIntegerFormat; - texture2.type = THREE__namespace.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_SparkRenderer.cubeRender = null; -_SparkRenderer.pmrem = null; -let SparkRenderer = _SparkRenderer; -class PagedSplats { - constructor(options) { - var _a2; - this.pager = options.pager; - this.rootUrl = options.rootUrl ?? ""; - this.requestHeader = options.requestHeader; - this.withCredentials = options.withCredentials; - this.numSh = 0; - this.maxSh = ((_a2 = options.pager) == null ? void 0 : _a2.maxSh) ?? 3; - this.numSplats = 0; - this.dynoNumSplats = new DynoInt({ value: 0 }); - this.dynoIndices = new DynoUsampler2D({ - value: SplatPager.emptyIndicesTexture - }); - this.rgbMinMaxLnScaleMinMax = new DynoVec4({ - value: new THREE__namespace.Vector4(0, 1, LN_SCALE_MIN, LN_SCALE_MAX) - }); - this.lodOpacity = new DynoBool({ - value: false - }); - this.dynoNumSh = new DynoInt({ value: 0 }); - this.shMax = new DynoVec3({ value: new THREE__namespace.Vector3() }); - this.fileBytes = options.fileBytes; - this.fileType = options.fileType; - if (!this.fileType && this.fileBytes) { - this.fileType = getSplatFileType(this.fileBytes); + unpushSplat(index) { + if (index === this.numSplats - 1) { + this.numSplats -= 1; + } else { + throw new Error("Cannot unpush splat from non-last position"); } - if (!this.fileType && this.rootUrl) { - this.fileType = getSplatFileTypeFromPath(this.rootUrl); + } + ensureCapacity(numSplats) { + if (numSplats > this.maxSplats) { + const targetSplats = Math.max(numSplats, this.maxSplats * 2); + const newCenters = new Float32Array(targetSplats * 3); + const newScales = new Float32Array(targetSplats * 3); + const newQuaternions = new Float32Array(targetSplats * 4); + const newOpacities = new Float32Array(targetSplats); + const newColors = new Float32Array(targetSplats * 3); + newCenters.set(this.centers); + newScales.set(this.scales); + newQuaternions.set(this.quaternions); + newOpacities.set(this.opacities); + newColors.set(this.colors); + this.centers = newCenters; + this.scales = newScales; + this.quaternions = newQuaternions; + this.opacities = newOpacities; + this.colors = newColors; + if (this.sh1) { + const newSh1 = new Float32Array(targetSplats * 9); + newSh1.set(this.sh1); + this.sh1 = newSh1; + } + if (this.sh2) { + const newSh2 = new Float32Array(targetSplats * 15); + newSh2.set(this.sh2); + this.sh2 = newSh2; + } + if (this.sh3) { + const newSh3 = new Float32Array(targetSplats * 21); + newSh3.set(this.sh3); + this.sh3 = newSh3; + } + this.maxSplats = targetSplats; } - if (!this.fileType) { - throw new Error("Unable to determine file type"); + } + ensureIndex(index) { + this.ensureCapacity(index + 1); + } + setCenter(index, x, y, z) { + this.centers[index * 3] = x; + this.centers[index * 3 + 1] = y; + this.centers[index * 3 + 2] = z; + } + setScale(index, scaleX, scaleY, scaleZ) { + this.scales[index * 3] = scaleX; + this.scales[index * 3 + 1] = scaleY; + this.scales[index * 3 + 2] = scaleZ; + } + setQuaternion(index, x, y, z, w) { + this.quaternions[index * 4] = x; + this.quaternions[index * 4 + 1] = y; + this.quaternions[index * 4 + 2] = z; + this.quaternions[index * 4 + 3] = w; + } + setOpacity(index, opacity) { + this.opacities[index] = opacity; + } + setColor(index, r, g, b) { + this.colors[index * 3] = r; + this.colors[index * 3 + 1] = g; + this.colors[index * 3 + 2] = b; + } + setSh1(index, sh1) { + if (!this.sh1) { + this.sh1 = new Float32Array(this.maxSplats * 9); } - if (this.fileType === SplatFileType.RAD) { - this.radMetaPromise = this.getRadMeta(); + for (let j = 0; j < 9; ++j) { + this.sh1[index * 9 + j] = sh1[j]; } } - dispose() { - if (this.dynoIndices.value !== SplatPager.emptyIndicesTexture) { - this.dynoIndices.value.dispose(); - this.dynoIndices.value = SplatPager.emptyIndicesTexture; + setSh2(index, sh2) { + if (!this.sh2) { + this.sh2 = new Float32Array(this.maxSplats * 15); + } + for (let j = 0; j < 15; ++j) { + this.sh2[index * 15 + j] = sh2[j]; } } - setMaxSh(maxSh) { - this.maxSh = maxSh; - } - getRadMeta() { - if (this.radMetaPromise) { - return this.radMetaPromise; + setSh3(index, sh3) { + if (!this.sh3) { + this.sh3 = new Float32Array(this.maxSplats * 21); } - this.radMetaPromise = (async () => { - await wasmInitialized; - if (this.fileBytes) { - const metaStart = decode_rad_header(this.fileBytes.slice(0, 1048576)); - if (metaStart) { - return metaStart; - } - throw new Error("Failed to decode RAD header"); - } - if (!this.rootUrl) { - throw new Error("No url or fileBytes provided"); - } - for (const tryBytes of [65536, 256 * 1024, 1024 * 1024]) { - const bytes = await fetchRange({ - url: this.rootUrl, - requestHeader: this.requestHeader, - withCredentials: this.withCredentials, - offset: 0, - bytes: tryBytes - }); - const metaStart = decode_rad_header(bytes); - if (metaStart) { - return metaStart; - } + for (let j = 0; j < 21; ++j) { + this.sh3[index * 21 + j] = sh3[j]; + } + } +} +const _ExtSplats = class _ExtSplats { + constructor(options = {}) { + this.maxSplats = 0; + this.numSplats = 0; + this.extra = {}; + this.maxSh = 3; + this.isInitialized = false; + this.extArrays = [new Uint32Array(0), new Uint32Array(0)]; + this.textures = [_ExtSplats.emptyTexture, _ExtSplats.emptyTexture]; + this.extra = {}; + this.dyno = new DynoExtSplats({ extSplats: this }); + this.dynoNumSh = new DynoInt({ + key: "numSh", + value: 0, + update: () => { + return Math.min(this.getNumSh(), this.maxSh); } - throw new Error("Failed to decode RAD header"); - })().then((metaStart) => { - return metaStart; - }); - this.radMetaPromise.catch((error) => { - console.error(error); }); - return this.radMetaPromise; - } - chunkUrl(chunk) { - return this.rootUrl.replace(/-lod-0\./, `-lod-${chunk}.`); + this.initialized = Promise.resolve(this); + this.reinitialize(options); } - async fetchDecodeChunk(chunk) { - let decodeBytes = void 0; - if (this.fileType === SplatFileType.RAD) { - const { meta, chunksStart } = await this.getRadMeta(); - if (chunk < 0 || chunk >= meta.chunks.length) { - throw new Error( - `Chunk index out of range: ${chunk} (max: ${meta.chunks.length - 1})` - ); - } - let { offset, bytes, filename } = meta.chunks[chunk]; - if (filename) { - if (this.fileBytes) { - throw new Error("Chunked RAD file not supported with fileBytes"); - } - const resolvedRoot = new URL( - this.rootUrl, - window.location.href - ).toString(); - const chunkUrl = new URL(filename, resolvedRoot).toString(); - decodeBytes = await fetchRange({ - url: chunkUrl, - requestHeader: this.requestHeader, - withCredentials: this.withCredentials - }); - } else { - offset += chunksStart; - if (this.fileBytes) { - if (offset < 0 || offset + bytes > this.fileBytes.length) { - throw new Error( - `Invalid chunk offset or bytes: ${offset} + ${bytes} > ${this.fileBytes.length}` - ); - } - decodeBytes = this.fileBytes.slice(offset, offset + bytes); - } else if (this.rootUrl) { - decodeBytes = await fetchRange({ - url: this.rootUrl, - requestHeader: this.requestHeader, - withCredentials: this.withCredentials, - offset, - bytes - }); - } else { - throw new Error("No url or fileBytes provided"); - } - } - } else if (this.fileBytes) ; - else if (this.rootUrl) { - const url = this.chunkUrl(chunk); - const request = new Request(url, { - headers: this.requestHeader ? new Headers(this.requestHeader) : void 0, - credentials: this.withCredentials ? "include" : "same-origin" + reinitialize(options) { + this.isInitialized = false; + this.extra = {}; + this.maxSplats = options.maxSplats ?? 0; + this.lod = options.lod; + this.nonLod = options.nonLod; + if (options.url || options.fileBytes || options.stream || options.construct) { + this.initialized = this.asyncInitialize(options).then(() => { + this.isInitialized = true; + return this; }); - const response = await fetch(request); - if (!response.ok || !response.body) { - throw new Error( - `Failed to fetch "${url}": ${response.status} ${response.statusText}` - ); - } - decodeBytes = new Uint8Array(await response.arrayBuffer()); } else { - throw new Error("No url or fileBytes provided"); + this.initialize(options); + this.isInitialized = true; + this.initialized = Promise.resolve(this); } - return await workerPool.withWorker(async (worker) => { - var _a2, _b2, _c, _d, _e; - if (!this.pager) { - throw new Error("PagedSplats.pager not set"); - } - if (!this.pager.extSplats) { - const result2 = await worker.call("loadPackedSplats", { - fileBytes: decodeBytes, - pathName: this.chunkUrl(chunk), - sh1Codes: (_a2 = this.sh1Codes) == null ? void 0 : _a2.slice(), - sh2Codes: (_b2 = this.sh2Codes) == null ? void 0 : _b2.slice(), - sh3Codes: (_c = this.sh3Codes) == null ? void 0 : _c.slice() - }); - const lodSplats2 = result2.lodSplats; - if (!this.splatEncoding) { - this.splatEncoding = lodSplats2.splatEncoding; - this.numSh = lodSplats2.extra.sh3 ? 3 : lodSplats2.extra.sh2 ? 2 : lodSplats2.extra.sh1 ? 1 : 0; - this.rgbMinMaxLnScaleMinMax.value.set( - this.splatEncoding.rgbMin ?? 0, - this.splatEncoding.rgbMax ?? 1, - this.splatEncoding.lnScaleMin ?? LN_SCALE_MIN, - this.splatEncoding.lnScaleMax ?? LN_SCALE_MAX - ); - this.lodOpacity.value = this.splatEncoding.lodOpacity ?? false; - this.shMax.value.set( - this.splatEncoding.sh1Max ?? 1, - this.splatEncoding.sh2Max ?? 1, - this.splatEncoding.sh3Max ?? 1 - ); - } - this.sh1Codes = lodSplats2.extra.sh1Codes ?? this.sh1Codes; - this.sh2Codes = lodSplats2.extra.sh2Codes ?? this.sh2Codes; - this.sh3Codes = lodSplats2.extra.sh3Codes ?? this.sh3Codes; - return lodSplats2; - } - const sh3Codes = this.sh3Codes; - const result = await worker.call("loadExtSplats", { - fileBytes: decodeBytes, - pathName: this.chunkUrl(chunk), - sh1Codes: (_d = this.sh1Codes) == null ? void 0 : _d.slice(), - sh2Codes: (_e = this.sh2Codes) == null ? void 0 : _e.slice(), - sh3Codes: sh3Codes ? [sh3Codes[0].slice(), sh3Codes[1].slice()] : void 0 + } + initialize(options) { + this.extra = options.extra ?? {}; + this.lodSplats = options.lodSplats; + if (options.extArrays) { + this.extArrays = options.extArrays; + this.maxSplats = Math.floor( + Math.min(this.extArrays[0].length / 4, this.extArrays[1].length / 4) + ); + this.numSplats = options.numSplats ?? this.maxSplats; + this.maxSplats = Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + this.numSplats = Math.min( + this.maxSplats, + options.numSplats ?? Number.POSITIVE_INFINITY + ); + this.updateTextures(); + } else { + this.maxSplats = options.maxSplats ?? 0; + this.numSplats = 0; + this.extArrays = [new Uint32Array(0), new Uint32Array(0)]; + } + } + async asyncInitialize(options) { + const { + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + construct, + lod, + nonLod, + lodAbove + } = options; + this.lod = lod; + this.nonLod = nonLod; + const loader = new SplatLoader(); + if (fileBytes || url || stream) { + await loader.loadInternalAsync({ + extSplats: this, + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + onProgress: options.onProgress, + lodAbove }); - const lodSplats = result.lodSplats; - if (!this.splatEncoding) { - this.splatEncoding = DEFAULT_SPLAT_ENCODING; - this.numSh = lodSplats.extra.sh3a && lodSplats.extra.sh3b ? 3 : lodSplats.extra.sh2 ? 2 : lodSplats.extra.sh1 ? 1 : 0; + } + if (construct) { + const maybePromise = construct(this); + if (maybePromise instanceof Promise) { + await maybePromise; } - this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes; - this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes; - this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes; - return lodSplats; - }); + } } - update(numSplats, indices) { - if (!this.pager) { - throw new Error("PagedSplats.pager not set"); + // Call this when you are finished with the PackedSplats and want to free + // any buffers it holds. + dispose() { + if (this.textures[0] !== _ExtSplats.emptyTexture) { + this.textures[0].dispose(); + this.textures[0].source.data = null; + this.textures[0] = _ExtSplats.emptyTexture; } - const renderer = this.pager.renderer; - this.numSplats = numSplats; - this.dynoNumSplats.value = this.numSplats; - const rows = Math.ceil(numSplats / 16384); - let indicesTexture = this.dynoIndices.value === SplatPager.emptyIndicesTexture ? void 0 : this.dynoIndices.value; - if (indicesTexture && rows > indicesTexture.image.height) { - indicesTexture.dispose(); - indicesTexture = void 0; + if (this.textures[1] !== _ExtSplats.emptyTexture) { + this.textures[1].dispose(); + this.textures[1].source.data = null; + this.textures[1] = _ExtSplats.emptyTexture; } - if (!indicesTexture) { - indicesTexture = new THREE__namespace.DataTexture( - indices, - 4096, - rows, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType - ); - indicesTexture.internalFormat = "RGBA32UI"; - indicesTexture.needsUpdate = true; - renderer.initTexture(indicesTexture); - this.dynoIndices.value = indicesTexture; - } else { - const textureIndices = indicesTexture.image.data; - textureIndices.set(indices.subarray(0, numSplats)); - const gl = renderer.getContext(); - renderer.state.activeTexture(gl.TEXTURE0); - renderer.state.bindTexture( - gl.TEXTURE_2D, - getGlTexture(renderer, indicesTexture) - ); - gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null); - gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false); - gl.texSubImage2D( - gl.TEXTURE_2D, - 0, - 0, - 0, - 4096, - rows, - gl.RGBA_INTEGER, - gl.UNSIGNED_INT, - indices - ); - renderer.state.bindTexture(gl.TEXTURE_2D, null); + this.extArrays = [new Uint32Array(0), new Uint32Array(0)]; + for (const key in this.extra) { + const dyno2 = this.extra[key]; + if (dyno2 instanceof DynoUniform) { + const texture2 = dyno2.value; + if (texture2 == null ? void 0 : texture2.isTexture) { + texture2.dispose(); + texture2.source.data = null; + } + } } + this.extra = {}; + this.disposeLodSplats(); } prepareFetchSplat() { } @@ -11356,75 +10200,248 @@ class PagedSplats { return this.numSplats; } hasRgbDir() { - if (!this.pager) { - return false; - } - return Math.min(this.numSh, this.pager.maxSh) > 0; + return Math.min(this.getNumSh(), this.maxSh) > 0; } getNumSh() { - return this.numSh; + return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3a || !this.extra.sh3b ? 2 : 3; + } + setMaxSh(maxSh) { + this.maxSh = maxSh; } fetchSplat({ index, viewOrigin }) { - if (!this.pager) { - throw new Error("PagedSplats.pager not set"); + let gsplat = readExtSplat(this.dyno, index); + if (this.hasRgbDir() && viewOrigin) { + const splatCenter = splitGsplat(gsplat).outputs.center; + const viewDir = normalize(sub(splatCenter, viewOrigin)); + const { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB } = this.ensureShTextures(); + let { rgb } = evaluateExtSH({ + coord: splatTexCoord(index), + viewDir, + numSh: this.dynoNumSh, + sh1Texture, + sh2Texture, + sh3TextureA, + sh3TextureB + }); + rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); + gsplat = combineGsplat({ gsplat, rgb }); } - const splatIndex = this.pager.readIndex.apply({ - index, - numSplats: this.dynoNumSplats, - indices: this.dynoIndices - }).index; - if (!this.pager.extSplats) { - if (this.hasRgbDir() && viewOrigin) { - this.dynoNumSh.value = Math.min( - this.numSh, - this.maxSh, - this.pager.maxSh - ); - return this.pager.readSplatDir.apply({ - index: splatIndex, - rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax, - lodOpacity: this.lodOpacity, - viewOrigin, - numSh: this.dynoNumSh, - shMax: this.shMax - }).gsplat; + return gsplat; + } + ensureShTextures() { + if (!this.extra.sh1) { + return {}; + } + let sh1Texture = this.extra.sh1Texture; + if (!sh1Texture) { + let sh1 = this.extra.sh1; + const { width, height, depth, maxSplats } = getTextureSize( + sh1.length / 4 + ); + if (sh1.length < maxSplats * 4) { + const newSh1 = new Uint32Array(maxSplats * 4); + newSh1.set(sh1); + this.extra.sh1 = newSh1; + sh1 = newSh1; } - return this.pager.readSplat.apply({ - index: splatIndex, - rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax, - lodOpacity: this.lodOpacity - }).gsplat; + const texture2 = newUint32ArrayTexture( + sh1, + width, + height, + depth, + THREE__namespace.RGBAIntegerFormat, + THREE__namespace.UnsignedIntType, + "RGBA32UI" + ); + sh1Texture = new DynoUsampler2DArray({ + value: texture2, + key: "sh1" + }); + this.extra.sh1Texture = sh1Texture; } - if (this.hasRgbDir() && viewOrigin) { - this.dynoNumSh.value = Math.min(this.numSh, this.maxSh, this.pager.maxSh); - return this.pager.readSplatExtDir.apply({ - index: splatIndex, - viewOrigin, - numSh: this.dynoNumSh - }).gsplat; + if (!this.extra.sh2) { + return { sh1Texture }; } - return this.pager.readSplatExt.apply({ index: splatIndex }).gsplat; + let sh2Texture = this.extra.sh2Texture; + if (!sh2Texture) { + let sh2 = this.extra.sh2; + const { width, height, depth, maxSplats } = getTextureSize( + sh2.length / 4 + ); + if (sh2.length < maxSplats * 4) { + const newSh2 = new Uint32Array(maxSplats * 4); + newSh2.set(sh2); + this.extra.sh2 = newSh2; + sh2 = newSh2; + } + const texture2 = newUint32ArrayTexture( + sh2, + width, + height, + depth, + THREE__namespace.RGBAIntegerFormat, + THREE__namespace.UnsignedIntType, + "RGBA32UI" + ); + sh2Texture = new DynoUsampler2DArray({ + value: texture2, + key: "sh2" + }); + this.extra.sh2Texture = sh2Texture; + } + if (!this.extra.sh3a || !this.extra.sh3b) { + return { sh1Texture, sh2Texture }; + } + let sh3TextureA = this.extra.sh3TextureA; + if (!sh3TextureA) { + let sh3a = this.extra.sh3a; + const { width, height, depth, maxSplats } = getTextureSize( + sh3a.length / 4 + ); + if (sh3a.length < maxSplats * 4) { + const newSh3 = new Uint32Array(maxSplats * 4); + newSh3.set(sh3a); + this.extra.sh3a = newSh3; + sh3a = newSh3; + } + const texture2 = newUint32ArrayTexture( + sh3a, + width, + height, + depth, + THREE__namespace.RGBAIntegerFormat, + THREE__namespace.UnsignedIntType, + "RGBA32UI" + ); + sh3TextureA = new DynoUsampler2DArray({ + value: texture2, + key: "sh3" + }); + this.extra.sh3TextureA = sh3TextureA; + } + let sh3TextureB = this.extra.sh3TextureB; + if (!sh3TextureB) { + let sh3b = this.extra.sh3b; + const { width, height, depth, maxSplats } = getTextureSize( + sh3b.length / 4 + ); + if (sh3b.length < maxSplats * 4) { + const newSh3b = new Uint32Array(maxSplats * 4); + newSh3b.set(sh3b); + this.extra.sh3b = newSh3b; + sh3b = newSh3b; + } + const texture2 = newUint32ArrayTexture( + sh3b, + width, + height, + depth, + THREE__namespace.RGBAIntegerFormat, + THREE__namespace.UnsignedIntType, + "RGBA32UI" + ); + sh3TextureB = new DynoUsampler2DArray({ + value: texture2, + key: "sh3b" + }); + this.extra.sh3TextureB = sh3TextureB; + } + return { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB }; + } + // Ensures that this.extArrays can fit numSplats Gsplats. If it's too small, + // resize exponentially and copy over the original data. + // + // Typically you don't need to call this, because calling this.setSplat(index, ...) + // and this.pushSplat(...) will automatically call ensureSplats() so we have + // enough splats. + ensureSplats(numSplats) { + const targetSize = numSplats <= this.maxSplats ? this.maxSplats : ( + // Grow exponentially to avoid frequent reallocations + Math.max(numSplats, 2 * this.maxSplats) + ); + const currentSize = !this.extArrays[0] ? 0 : this.extArrays[0].length / 4; + if (!this.extArrays[0] || targetSize > currentSize) { + this.maxSplats = getTextureSize(targetSize).maxSplats; + const newArray0 = new Uint32Array(this.maxSplats * 4); + const newArray1 = new Uint32Array(this.maxSplats * 4); + if (this.extArrays[0]) { + newArray0.set(this.extArrays[0]); + newArray1.set(this.extArrays[1]); + } + this.extArrays[0] = newArray0; + this.extArrays[1] = newArray1; + } + return this.extArrays; + } + // Unpack the 16-byte Gsplat data at index into the Three.js components + // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, + // opacity: number 0..1, color: THREE.Color 0..1. + getSplat(index) { + if (index >= this.numSplats) { + throw new Error("Invalid index"); + } + return decodeExtSplat(this.extArrays, index); + } + // Set all ExtSplat components at index with the provided Gsplat attributes + // (can be the same objects returned by getSplat). Ensures there is capacity + // for at least index+1 Gsplats. + setSplat(index, center, scales, quaternion, opacity, color) { + const extArrays = this.ensureSplats(index + 1); + encodeExtSplat( + extArrays, + index, + center.x, + center.y, + center.z, + scales.x, + scales.y, + scales.z, + quaternion.x, + quaternion.y, + quaternion.z, + quaternion.w, + opacity, + color.r, + color.g, + color.b + ); + this.numSplats = Math.max(this.numSplats, index + 1); + } + // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on + // construction where you just want to iterate and create a collection of Gsplats. + pushSplat(center, scales, quaternion, opacity, color) { + const extArrays = this.ensureSplats(this.numSplats + 1); + encodeExtSplat( + extArrays, + this.numSplats, + center.x, + center.y, + center.z, + scales.x, + scales.y, + scales.z, + quaternion.x, + quaternion.y, + quaternion.z, + quaternion.w, + opacity, + color.r, + color.g, + color.b + ); + ++this.numSplats; } // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat // and invoke the callback function with the Gsplat attributes. forEachSplat(callback) { - if (!this.pager || !this.numSplats) { + if (!this.numSplats) { return; } - const extSplats = this.pager.extSplats; - const indices = this.dynoIndices.value.image.data; - const packedSplatArray = this.pager.packedTexture.value.image.data; - const extPackedSplatArray = this.pager.extTexture.value.image.data; - const extArrays = [ - packedSplatArray, - extPackedSplatArray - ]; for (let i = 0; i < this.numSplats; ++i) { - const splatIndex = indices[i]; - const unpacked = extSplats ? decodeExtSplat(extArrays, splatIndex) : unpackSplat(packedSplatArray, splatIndex, this.splatEncoding); + const unpacked = decodeExtSplat(this.extArrays, i); callback( i, unpacked.center, @@ -11435,3299 +10452,3807 @@ class PagedSplats { ); } } -} -const _SplatPager = class _SplatPager { - constructor(options) { - this.fetchPause = 0; - this.splatsChunkToPage = /* @__PURE__ */ new Map(); - this.pageToSplatsChunk = []; - this.renderer = options.renderer; - this.extSplats = options.extSplats ?? false; - this.pageSplats = 65536; - this.maxSplats = options.maxSplats ?? 16777216; - this.maxPages = Math.ceil(this.maxSplats / this.pageSplats); - this.maxSplats = this.maxPages * this.pageSplats; - this.maxSh = options.maxSh ?? 3; - this.curSh = 0; - this.autoDrive = options.autoDrive ?? true; - this.numFetchers = options.numFetchers ?? 3; - this.splatsChunkToPage = /* @__PURE__ */ new Map(); - this.pageToSplatsChunk = new Array(this.maxPages); - this.pageFreelist = Array.from({ length: this.maxPages }, (_, i) => i); - this.pageLru = /* @__PURE__ */ new Set(); - this.freeablePages = []; - this.newUploads = []; - this.readyUploads = []; - this.lodTreeUpdates = []; - this.fetchers = []; - this.fetched = []; - this.fetchPriority = []; - this.packedTexture = new DynoUsampler2DArray({ - value: this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, + // Check if source texture needs to be created/updated + updateTextures() { + if (this.textures[0] !== _ExtSplats.emptyTexture) { + const { width, height, depth } = this.textures[0].image; + if (this.maxSplats !== width * height * depth) { + this.textures[0].dispose(); + this.textures[0] = _ExtSplats.emptyTexture; + this.textures[1].dispose(); + this.textures[1] = _ExtSplats.emptyTexture; + } + } + if (this.textures[0] === _ExtSplats.emptyTexture) { + const { width, height, depth } = getTextureSize(this.maxSplats); + this.textures[0] = newUint32ArrayTexture( + this.extArrays[0], + width, + height, + depth, THREE__namespace.RGBAIntegerFormat, THREE__namespace.UnsignedIntType, "RGBA32UI" - ) - }); - this.extTexture = new DynoUsampler2DArray({ - value: this.extSplats ? this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, + ); + this.textures[1] = newUint32ArrayTexture( + this.extArrays[1], + width, + height, + depth, THREE__namespace.RGBAIntegerFormat, THREE__namespace.UnsignedIntType, "RGBA32UI" - ) : _SplatPager.emptyExtTexture - }); - this.sh1Texture = new DynoUsampler2DArray({ - value: this.extSplats ? _SplatPager.emptyExtSh1Texture : _SplatPager.emptySh1Texture - }); - this.sh2Texture = new DynoUsampler2DArray({ - value: this.extSplats ? _SplatPager.emptyExtSh2Texture : _SplatPager.emptySh2Texture - }); - this.sh3Texture = new DynoUsampler2DArray({ - value: this.extSplats ? _SplatPager.emptyExtSh3Texture : _SplatPager.emptySh3Texture - }); - this.sh3TextureB = new DynoUsampler2DArray({ - value: _SplatPager.emptyExtSh3BTexture - }); - this.readIndex = dynoBlock( - { index: "int", numSplats: "int", indices: "usampler2D" }, - { index: "int" }, - ({ index, numSplats, indices }) => { - return new Dyno({ - inTypes: { - index: "int", - numSplats: "int", - indices: "usampler2D" - }, - outTypes: { index: "int" }, - inputs: { - index, - numSplats, - indices - }, - statements: ({ inputs, outputs }) => unindentLines(` - if (${inputs.index} >= ${inputs.numSplats}) { - return; - } - - ivec2 indexCoord = ivec2((${inputs.index} >> 2) & 4095, ${inputs.index} >> 14); - uint index = texelFetch(${inputs.indices}, indexCoord, 0)[${inputs.index} & 3]; - ${outputs.index} = int(index); - `) - }).outputs; - } - ); - this.readSplat = dynoBlock( - { index: "int", rgbMinMaxLnScaleMinMax: "vec4", lodOpacity: "bool" }, - { gsplat: Gsplat }, - ({ index, rgbMinMaxLnScaleMinMax, lodOpacity }) => { - return new Dyno({ - inTypes: { - index: "int", - packedTexture: "usampler2DArray", - rgbMinMaxLnScaleMinMax: "vec4", - lodOpacity: "bool" - }, - outTypes: { gsplat: Gsplat }, - inputs: { - index, - packedTexture: this.packedTexture, - rgbMinMaxLnScaleMinMax, - lodOpacity - }, - globals: () => [defineGsplat], - statements: ({ inputs, outputs }) => unindentLines(` - int index = ${inputs.index}; - ivec3 splatCoord = pagedSplatTexCoord(index); - uvec4 packedData = texelFetch(${inputs.packedTexture}, splatCoord, 0); - - unpackSplatEncoding(packedData, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba, ${inputs.rgbMinMaxLnScaleMinMax}); - if ((${outputs.gsplat}.rgba.a == 0.0) || all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { - return; - } - - ${outputs.gsplat}.index = index; - ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE; - if (${inputs.lodOpacity}) { - ${outputs.gsplat}.rgba.a *= 2.0; - } - `) - }).outputs; + ); + } else if (this.extArrays[0].buffer !== this.textures[0].image.data.buffer) { + this.textures[0].image.data = new Uint8Array(this.extArrays[0].buffer); + this.textures[1].image.data = new Uint8Array(this.extArrays[1].buffer); + this.textures[0].needsUpdate = true; + this.textures[1].needsUpdate = true; + } + } + extractSplats(indices, pageColoring) { + const maxSplats = getTextureSize(indices.length).maxSplats; + const newSplats = new _ExtSplats({ maxSplats }); + for (let i = 0; i < indices.length; i++) { + const splat = this.getSplat(indices[i]); + if (pageColoring) { + let hue = (indices[i] >>> 16) * 0.61803398875; + hue = hue - Math.floor(hue); + const r = Math.max(0, Math.min(1, Math.abs(hue * 6 - 3) - 1)); + const g = Math.max(0, Math.min(1, Math.abs(hue * 6 + 1) - 1)); + const b = Math.max(0, Math.min(1, Math.abs(hue * 6 - 1) - 1)); + splat.color.r *= r; + splat.color.g *= g; + splat.color.b *= b; } - ); - this.readSplatDir = dynoBlock( - { - index: "int", - rgbMinMaxLnScaleMinMax: "vec4", - lodOpacity: "bool", - viewOrigin: "vec3", - numSh: "int", - shMax: "vec3" + newSplats.pushSplat( + splat.center, + splat.scales, + splat.quaternion, + splat.opacity, + splat.color + ); + } + return newSplats; + } + disposeLodSplats() { + if (this.lodSplats) { + this.lodSplats.dispose(); + this.lodSplats = void 0; + } + } + async createLodSplats({ + rgbaArray, + quality + } = {}) { + const lodBase = typeof this.lod === "number" ? Math.max(1.1, Math.min(2, this.lod)) : quality ? 1.75 : 1.5; + const extArrays = [this.extArrays[0].slice(), this.extArrays[1].slice()]; + const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : void 0; + const extra = { + sh1: this.extra.sh1 ? this.extra.sh1.slice() : void 0, + sh2: this.extra.sh2 ? this.extra.sh2.slice() : void 0, + sh3: this.extra.sh3 ? this.extra.sh3.slice() : void 0 + }; + const decoded = await workerPool.withWorker(async (worker) => { + return await worker.call( + quality ? "qualityLodExtSplats" : "tinyLodExtSplats", + { + numSplats: this.numSplats, + extArrays, + extra, + lodBase, + rgba + } + ); + }); + const lodSplats = new _ExtSplats(decoded); + if (this.lodSplats) { + this.lodSplats.dispose(); + } + this.lodSplats = lodSplats; + this.nonLod = true; + this.lod = quality ? "quality" : true; + } +}; +_ExtSplats.emptyArray = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 4); + const texture2 = new THREE__namespace.DataArrayTexture( + emptyArray, + width, + height, + depth + ); + texture2.format = THREE__namespace.RGBAIntegerFormat; + texture2.type = THREE__namespace.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +_ExtSplats.emptyTexture = newUint32ArrayTexture( + null, + 1, + 1, + 1, + THREE__namespace.RGBAIntegerFormat, + THREE__namespace.UnsignedIntType, + "RGBA32UI" +); +_ExtSplats.emptyUint32x4 = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 4); + const texture2 = new THREE__namespace.DataArrayTexture( + emptyArray, + width, + height, + depth + ); + texture2.format = THREE__namespace.RGBAIntegerFormat; + texture2.type = THREE__namespace.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +let ExtSplats = _ExtSplats; +class DynoExtSplats extends DynoUniform { + constructor({ extSplats } = {}) { + super({ + key: "extSplats", + type: TExtSplats, + globals: () => [defineExtSplats], + value: { + textureArray1: ExtSplats.emptyTexture, + textureArray2: ExtSplats.emptyTexture, + numSplats: 0 }, - { gsplat: Gsplat }, - ({ - index, - rgbMinMaxLnScaleMinMax, - lodOpacity, - viewOrigin, - numSh, - shMax - }) => { - if (!index || !rgbMinMaxLnScaleMinMax || !lodOpacity || !viewOrigin || !numSh || !shMax) { - throw new Error("index and viewOrigin are required"); - } - let gsplat = this.readSplat.apply({ - index, - rgbMinMaxLnScaleMinMax, - lodOpacity - }).gsplat; - const splatCenter = splitGsplat(gsplat).outputs.center; - const viewDir = normalize(sub(splatCenter, viewOrigin)); - let rgb = evaluatePackedSH({ - coord: pagedSplatTexCoord(index), - viewDir, - numSh, - sh1Texture: this.sh1Texture, - sh2Texture: this.sh2Texture, - sh3Texture: this.sh3Texture, - shMax - }).rgb; - rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); - gsplat = combineGsplat({ gsplat, rgb }); - return { gsplat }; + update: (value) => { + var _a2, _b2, _c; + value.textureArray1 = ((_a2 = this.extSplats) == null ? void 0 : _a2.textures[0]) ?? ExtSplats.emptyTexture; + value.textureArray2 = ((_b2 = this.extSplats) == null ? void 0 : _b2.textures[1]) ?? ExtSplats.emptyTexture; + value.numSplats = ((_c = this.extSplats) == null ? void 0 : _c.numSplats) ?? 0; + return value; } - ); - this.readSplatExt = dynoBlock( - { index: "int" }, - { gsplat: Gsplat }, - ({ index }) => { - return new Dyno({ - inTypes: { - index: "int", - extTexture1: "usampler2DArray", - extTexture2: "usampler2DArray" - }, - outTypes: { gsplat: Gsplat }, - inputs: { - index, - extTexture1: this.packedTexture, - extTexture2: this.extTexture - }, - globals: () => [defineGsplat], - statements: ({ inputs, outputs }) => unindentLines(` - int index = ${inputs.index}; - ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16); - uvec4 ext1 = texelFetch(${inputs.extTexture1}, splatCoord, 0); - float alpha = unpackSplatExtAlpha(ext1); - if (alpha == 0.0) { - return; - } + }); + this.extSplats = extSplats; + } +} +const defineEvaluateExtSH1 = unindent(` + vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) { + vec3 sh1_0 = decodeExtRgb(packedData.x); + vec3 sh1_1 = decodeExtRgb(packedData.y); + vec3 sh1_2 = decodeExtRgb(packedData.z); - uvec4 ext2 = texelFetch(${inputs.extTexture2}, splatCoord, 0); - unpackSplatExt(ext1, ext2, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba); - if (all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { - return; - } + return sh1_0 * (-0.4886025 * viewDir.y) + + sh1_1 * (0.4886025 * viewDir.z) + + sh1_2 * (-0.4886025 * viewDir.x); + } +`); +const defineEvaluateExtSH12 = unindent(` + vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) { + vec3 sh1_0 = decodeExtRgb(packed1.x); + vec3 sh1_1 = decodeExtRgb(packed1.y); + vec3 sh1_2 = decodeExtRgb(packed1.z); - ${outputs.gsplat}.index = index; - ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE; - `) - }).outputs; - } - ); - this.readSplatExtDir = dynoBlock( - { - index: "int", - viewOrigin: "vec3", - numSh: "int" - }, - { gsplat: Gsplat }, - ({ index, viewOrigin, numSh }) => { - if (!index || !viewOrigin || !numSh) { - throw new Error("index and viewOrigin are required"); - } - let gsplat = this.readSplatExt.apply({ index }).gsplat; - const splatCenter = splitGsplat(gsplat).outputs.center; - const viewDir = normalize(sub(splatCenter, viewOrigin)); - let rgb = evaluateExtSH({ - coord: pagedSplatTexCoord(index), - viewDir, - numSh, - sh1Texture: this.sh1Texture, - sh2Texture: this.sh2Texture, - sh3TextureA: this.sh3Texture, - sh3TextureB: this.sh3TextureB - }).rgb; - rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); - gsplat = combineGsplat({ gsplat, rgb }); - return { gsplat }; - } - ); + vec3 sh2_0 = decodeExtRgb(packed1.w); + vec3 sh2_1 = decodeExtRgb(packed2.x); + vec3 sh2_2 = decodeExtRgb(packed2.y); + vec3 sh2_3 = decodeExtRgb(packed2.z); + vec3 sh2_4 = decodeExtRgb(packed2.w); + + vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y) + + sh1_1 * (0.4886025 * viewDir.z) + + sh1_2 * (-0.4886025 * viewDir.x); + + vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y) + + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z) + + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y)) + + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z) + + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y)); + + return sh1Rgb + sh2Rgb; } - dispose() { - this.autoDrive = false; - this.numFetchers = 0; - this.packedTexture.value.dispose(); - this.packedTexture.value.source.data = null; - if (this.extTexture.value !== _SplatPager.emptyExtTexture) { - this.extTexture.value.dispose(); - this.extTexture.value.source.data = null; - } - if (!this.extSplats) { - if (this.sh1Texture.value !== _SplatPager.emptySh1Texture) { - this.sh1Texture.value.dispose(); - this.sh1Texture.value.source.data = null; - } - if (this.sh2Texture.value !== _SplatPager.emptySh2Texture) { - this.sh2Texture.value.dispose(); - this.sh2Texture.value.source.data = null; - } - if (this.sh3Texture.value !== _SplatPager.emptySh3Texture) { - this.sh3Texture.value.dispose(); - this.sh3Texture.value.source.data = null; - } - } else { - if (this.sh1Texture.value !== _SplatPager.emptyExtSh1Texture) { - this.sh1Texture.value.dispose(); - this.sh1Texture.value.source.data = null; - } - if (this.sh2Texture.value !== _SplatPager.emptyExtSh2Texture) { - this.sh2Texture.value.dispose(); - this.sh2Texture.value.source.data = null; - } - if (this.sh3Texture.value !== _SplatPager.emptyExtSh3Texture) { - this.sh3Texture.value.dispose(); - this.sh3Texture.value.source.data = null; - } - if (this.sh3TextureB.value !== _SplatPager.emptyExtSh3BTexture) { - this.sh3TextureB.value.dispose(); - this.sh3TextureB.value.source.data = null; +`); +const defineEvaluateExtSH3 = unindent(` + vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) { + vec3 sh3_0 = decodeExtRgb(packedA.x); + vec3 sh3_1 = decodeExtRgb(packedA.y); + vec3 sh3_2 = decodeExtRgb(packedA.z); + vec3 sh3_3 = decodeExtRgb(packedA.w); + vec3 sh3_4 = decodeExtRgb(packedB.x); + vec3 sh3_5 = decodeExtRgb(packedB.y); + vec3 sh3_6 = decodeExtRgb(packedB.z); + + float xx = viewDir.x * viewDir.x; + float yy = viewDir.y * viewDir.y; + float zz = viewDir.z * viewDir.z; + float xy = viewDir.x * viewDir.y; + float yz = viewDir.y * viewDir.z; + float zx = viewDir.z * viewDir.x; + + return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy)) + + sh3_1 * (2.8906114 * xy * viewDir.z) + + + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy)) + + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) + + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy)) + + sh3_5 * (1.4453057 * viewDir.z * (xx - yy)) + + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy)); + } +`); +function evaluateExtSH({ + coord, + viewDir, + numSh, + sh1Texture, + sh2Texture, + sh3TextureA, + sh3TextureB +}) { + return new Dyno({ + inTypes: { + coord: "ivec3", + viewDir: "vec3", + numSh: "int", + sh1Texture: "usampler2DArray", + sh2Texture: "usampler2DArray", + sh3TextureA: "usampler2DArray", + sh3TextureB: "usampler2DArray" + }, + outTypes: { rgb: "vec3" }, + inputs: { + coord, + viewDir, + numSh, + sh1Texture, + sh2Texture, + sh3TextureA, + sh3TextureB + }, + globals: () => [ + defineEvaluateExtSH1, + defineEvaluateExtSH12, + defineEvaluateExtSH3 + ], + statements: ({ inputs, outputs }) => { + const lines = ["vec3 rgb = vec3(0.0);"]; + if (inputs.sh1Texture) { + if (!inputs.sh2Texture) { + lines.push( + ...unindentLines(` + if (${inputs.numSh} >= 1) { + rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir}); + } + `) + ); + } else { + lines.push( + ...unindentLines(` + if (${inputs.numSh} == 1) { + rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir}); + } else if (${inputs.numSh} >= 2) { + rgb = evaluateExtSH12(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}); + `) + ); + if (inputs.sh3TextureA && inputs.sh3TextureB) { + lines.push( + ...unindentLines(` + if (${inputs.numSh} >= 3) { + rgb += evaluateExtSH3(texelFetch(${inputs.sh3TextureA}, ${inputs.coord}, 0), texelFetch(${inputs.sh3TextureB}, ${inputs.coord}, 0), ${inputs.viewDir}); + } + `) + ); + } + lines.push("}"); + } } + lines.push(`${outputs.rgb} = rgb;`); + return lines; } - } - ensureShTextures(numSh) { - this.curSh = Math.max(this.curSh, numSh); - if (!this.extSplats) { - if (this.curSh >= 1 && this.sh1Texture.value === _SplatPager.emptySh1Texture) { - this.sh1Texture.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 2), - 256, - 256, - this.maxPages, - THREE__namespace.RGIntegerFormat, - THREE__namespace.UnsignedIntType, - "RG32UI" - ); + }).outputs; +} +function newUint32ArrayTexture(data, width, height, depth, format, type, internalFormat) { + const texture2 = new THREE__namespace.DataArrayTexture( + data, + width, + height, + depth + ); + texture2.format = format; + texture2.type = type; + texture2.internalFormat = internalFormat; + texture2.needsUpdate = true; + return texture2; +} +const _RgbaArray = class _RgbaArray { + constructor(options = {}) { + this.capacity = 0; + this.count = 0; + this.array = null; + this.readback = null; + this.source = null; + this.needsUpdate = true; + this.dyno = new DynoUniform({ + key: "rgbaArray", + type: TRgbaArray, + globals: () => [defineRgbaArray], + value: { + texture: _RgbaArray.getEmpty(), + count: 0 + }, + update: (value) => { + value.texture = this.getTexture(); + value.count = this.count; + return value; } - } else { - if (this.curSh >= 1 && this.sh1Texture.value === _SplatPager.emptyExtSh1Texture) { - this.sh1Texture.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType, - "RGBA32UI" - ); + }); + if (options.array) { + this.array = options.array; + const splatCount = Math.floor(this.array.length / 4); + this.capacity = Math.ceil(splatCount / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + if (this.capacity > splatCount) { + this.array = new Uint8Array(this.capacity * 4); + this.array.set(options.array); } - } - if (this.curSh >= 2 && this.sh2Texture.value === (!this.extSplats ? _SplatPager.emptySh2Texture : _SplatPager.emptyExtSh2Texture)) { - this.sh2Texture.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType, - "RGBA32UI" + this.count = Math.min( + splatCount, + options.count ?? Number.POSITIVE_INFINITY ); - } - if (!this.extSplats) { - if (this.curSh >= 3 && this.sh3Texture.value === _SplatPager.emptySh3Texture) { - this.sh3Texture.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType, - "RGBA32UI" - ); - } } else { - if (this.curSh >= 3) { - if (this.sh3Texture.value === _SplatPager.emptyExtSh3Texture) { - this.sh3Texture.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType, - "RGBA32UI" - ); - } - if (this.sh3TextureB.value === _SplatPager.emptyExtSh3BTexture) { - this.sh3TextureB.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType, - "RGBA32UI" - ); - } - } - } - } - allocatePage() { - return this.pageFreelist.shift(); - } - freePage(page) { - this.pageFreelist.push(page); - } - getSplatsChunk(splats, chunk) { - const chunks = this.splatsChunkToPage.get(splats); - if (!chunks) { - return void 0; + this.capacity = options.capacity ?? 0; + this.count = 0; } - return chunks[chunk]; } - insertSplatsChunkPage(splats, chunk, page, now) { - if (!this.splatsChunkToPage.has(splats)) { - this.splatsChunkToPage.set(splats, []); - } - const chunks = this.splatsChunkToPage.get(splats); - if (!chunks) { - throw new Error("impossible"); + // Free up resources + dispose() { + if (this.readback) { + this.readback.dispose(); + this.readback = null; } - if (chunk >= chunks.length) { - chunks.length = chunk + 1; + if (this.source) { + this.source.dispose(); + this.source = null; } - const pageLru = { page, lru: now }; - chunks[chunk] = pageLru; - this.pageLru.add(pageLru); - this.pageToSplatsChunk[page] = { splats, chunk, time: performance.now() }; - return this.pageToSplatsChunk[page]; } - removeSplatsChunkPage(splats, chunk, page) { - const chunks = this.splatsChunkToPage.get(splats); - if (!chunks) { - throw new Error("impossible"); - } - const pageLru = chunks[chunk]; - if (!pageLru) { - throw new Error( - `pageLru not found for splats: ${splats}, chunk: ${chunk}, page: ${page}` - ); - } - this.pageLru.delete(pageLru); - chunks[chunk] = void 0; - while (chunks.length > 0 && chunks[chunks.length - 1] === void 0) { - chunks.pop(); - } - if (chunks.length === 0) { - this.splatsChunkToPage.delete(splats); - } - this.pageToSplatsChunk[page] = void 0; - while (this.pageToSplatsChunk.length > 0 && this.pageToSplatsChunk[this.pageToSplatsChunk.length - 1] === void 0) { - this.pageToSplatsChunk.pop(); + // Ensure that our array is large enough to hold capacity RGBA8 values. + ensureCapacity(capacity) { + var _a2; + if (!this.array || capacity > (((_a2 = this.array) == null ? void 0 : _a2.length) ?? 0) / 4) { + this.capacity = getTextureSize(capacity).maxSplats; + const newArray2 = new Uint8Array(this.capacity * 4); + if (this.array) { + newArray2.set(this.array); + } + this.array = newArray2; } + return this.array; } - uploadPage(page, packedArray, extra, extArray) { - const pageBase = page * this.pageSplats; - const array = this.packedTexture.value.image.data; - array.subarray(pageBase * 4, pageBase * 4 + packedArray.length).set(packedArray); - this.packedTexture.value.addLayerUpdate(page); - this.packedTexture.value.needsUpdate = true; - if (extArray) { - const array2 = this.extTexture.value.image.data; - array2.subarray(pageBase * 4, pageBase * 4 + extArray.length).set(extArray); - this.extTexture.value.addLayerUpdate(page); - this.extTexture.value.needsUpdate = true; + // Get the THREE.DataArrayTexture from either the readback or the source. + getTexture() { + var _a2; + let texture2 = (_a2 = this.readback) == null ? void 0 : _a2.getTexture(); + if (this.source || this.array) { + texture2 = this.maybeUpdateSource(); } - const numSh = this.extSplats ? extra.sh3a && extra.sh3b ? 3 : extra.sh2 ? 2 : extra.sh1 ? 1 : 0 : extra.sh3 ? 3 : extra.sh2 ? 2 : extra.sh1 ? 1 : 0; - this.ensureShTextures(numSh); - if (!this.extSplats) { - if (this.sh1Texture.value !== _SplatPager.emptySh1Texture && extra.sh1) { - const sh1 = extra.sh1; - const array2 = this.sh1Texture.value.image.data; - array2.subarray(pageBase * 2, pageBase * 2 + sh1.length).set(sh1); - this.sh1Texture.value.addLayerUpdate(page); - this.sh1Texture.value.needsUpdate = true; - } - } else { - if (this.sh1Texture.value !== _SplatPager.emptyExtSh1Texture && extra.sh1) { - const sh1 = extra.sh1; - const array2 = this.sh1Texture.value.image.data; - array2.subarray(pageBase * 4, pageBase * 4 + sh1.length).set(sh1); - this.sh1Texture.value.addLayerUpdate(page); - this.sh1Texture.value.needsUpdate = true; - } - } - if (this.sh2Texture.value !== _SplatPager.emptySh2Texture && extra.sh2) { - const sh2 = extra.sh2; - const array2 = this.sh2Texture.value.image.data; - array2.subarray(pageBase * 4, pageBase * 4 + sh2.length).set(sh2); - this.sh2Texture.value.addLayerUpdate(page); - this.sh2Texture.value.needsUpdate = true; - } - if (!this.extSplats) { - if (this.sh3Texture.value !== _SplatPager.emptySh3Texture && extra.sh3) { - const sh3 = extra.sh3; - const array2 = this.sh3Texture.value.image.data; - array2.subarray(pageBase * 4, pageBase * 4 + sh3.length).set(sh3); - this.sh3Texture.value.addLayerUpdate(page); - this.sh3Texture.value.needsUpdate = true; - } - } else { - if (this.sh3Texture.value !== _SplatPager.emptyExtSh3Texture && extra.sh3a) { - const sh3a = extra.sh3a; - const array2 = this.sh3Texture.value.image.data; - array2.subarray(pageBase * 4, pageBase * 4 + sh3a.length).set(sh3a); - this.sh3Texture.value.addLayerUpdate(page); - this.sh3Texture.value.needsUpdate = true; - } - if (this.sh3TextureB.value !== _SplatPager.emptyExtSh3BTexture && extra.sh3b) { - const sh3b = extra.sh3b; - const array2 = this.sh3TextureB.value.image.data; - array2.subarray(pageBase * 4, pageBase * 4 + sh3b.length).set(sh3b); - this.sh3TextureB.value.addLayerUpdate(page); - this.sh3TextureB.value.needsUpdate = true; - } - } - } - getGlTexture(texture2) { - return getGlTexture(this.renderer, texture2); - } - newUint32ArrayTexture(data, width, height, depth, format, type, internalFormat) { - const texture2 = new THREE__namespace.DataArrayTexture(data, width, height, depth); - texture2.format = format; - texture2.type = type; - texture2.internalFormat = internalFormat; - texture2.needsUpdate = true; - this.renderer.initTexture(texture2); - return texture2; + return texture2 ?? _RgbaArray.getEmpty(); } - driveFetchers() { - const needed = []; - const overflow = []; - let numPages = 0; - for (const { splats, chunk } of this.fetchPriority) { - const pageLru = this.getSplatsChunk(splats, chunk); - if (pageLru) { - if (numPages >= this.maxPages) { - overflow.push(pageLru); - } else { - needed.push(pageLru); + // Create or get a THREE.DataArrayTexture from the data array. + maybeUpdateSource() { + if (!this.array) { + throw new Error("No array"); + } + if (this.needsUpdate || !this.source) { + this.needsUpdate = false; + if (this.source) { + const { width, height, depth } = this.source.image; + if (this.capacity !== width * height * depth) { + this.source.dispose(); + this.source = null; } - numPages += 1; - continue; } - if (this.fetched.some( - ({ splats: s, chunk: c }) => splats === s && chunk === c - ) || this.fetchers.some( - ({ splats: s, chunk: c }) => splats === s && chunk === c - )) { - numPages += 1; - continue; - } - if (numPages < this.maxPages && this.fetchers.length < this.numFetchers) { - numPages += 1; - const promise = splats.fetchDecodeChunk(chunk).then( - async (data) => { - this.fetched.push({ splats, chunk, data }); - if (this.fetchPause > 0) { - await new Promise( - (resolve) => setTimeout(resolve, this.fetchPause) - ); - } - }, - async (error) => { - console.warn(error); - const backoff = 250 + 500 * Math.random(); - await new Promise((resolve) => setTimeout(resolve, backoff)); - } - ).finally(() => { - this.fetchers = this.fetchers.filter( - ({ splats: s, chunk: c }) => splats !== s || chunk !== c - ); - this.processFetched(); - }); - this.fetchers.push({ splats, chunk, promise }); - promise.then((data) => { - if (this.autoDrive) { - this.driveFetchers(); - } - }); + if (!this.source) { + const { width, height, depth } = getTextureSize(this.capacity); + this.source = new THREE__namespace.DataArrayTexture( + this.array, + width, + height, + depth + ); + this.source.format = THREE__namespace.RGBAFormat; + this.source.type = THREE__namespace.UnsignedByteType; + this.source.internalFormat = "RGBA8"; + this.source.needsUpdate = true; + } else if (this.array.buffer !== this.source.image.data.buffer) { + this.source.image.data = new Uint8Array(this.array.buffer); } + this.source.needsUpdate = true; } - const now = performance.now(); - for (const pageLru of overflow.reverse()) { - pageLru.lru = now; - this.pageLru.delete(pageLru); - this.pageLru.add(pageLru); + return this.source; + } + // Generate the RGBA8 values from a Rgba8Readback dyno program. + render({ + reader, + count, + renderer + }) { + if (!this.readback) { + this.readback = new Readback({ renderer }); + } + this.readback.render({ reader, count, renderer }); + this.capacity = this.readback.capacity; + this.count = this.readback.count; + } + // Extract the RGBA8 values from a PackedSplats collection. + fromPackedSplats({ + packedSplats, + base, + count, + renderer + }) { + const { dynoSplats, dynoBase, dynoCount, reader } = _RgbaArray.makeDynos(); + dynoSplats.packedSplats = packedSplats; + dynoBase.value = base; + dynoCount.value = count; + this.render({ reader, count, renderer }); + return this; + } + // Read back the RGBA8 values from the readback buffer. + async read() { + if (!this.readback) { + throw new Error("No readback"); } - const extraPages = new Set(this.pageLru); - for (const pageLru of needed.reverse()) { - extraPages.delete(pageLru); - pageLru.lru = now; - this.pageLru.delete(pageLru); - this.pageLru.add(pageLru); + if (!this.array || this.array.length < this.count * 4) { + this.array = new Uint8Array(this.capacity * 4); } - this.freeablePages = Array.from(extraPages).map(({ page }) => page); + const result = await this.readback.readback({ readback: this.array }); + return result.subarray(0, this.count * 4); } - allocateFreeable() { - const page = this.freeablePages.shift(); - if (page === void 0) { - return void 0; + async getArray() { + if (this.readback) { + return await this.read(); } - const splatsChunk = this.pageToSplatsChunk[page]; - if (!splatsChunk) { - throw new Error(`splatsChunk not found for page: ${page}`); + if (this.array) { + return this.array; } - const { splats, chunk } = splatsChunk; - this.removeSplatsChunkPage(splats, chunk, page); - this.lodTreeUpdates.push({ - splats, - page, - chunk, - numSplats: this.pageSplats - }); - return page; + throw new Error("No array"); } - processFetched() { - const now = performance.now(); - while (true) { - const fetched = this.fetched.shift(); - if (!fetched) { - break; - } - const { splats, chunk, data } = fetched; - let page = this.allocatePage(); - if (page === void 0) { - page = this.allocateFreeable(); - if (page === void 0) { - return; - } - } - this.insertSplatsChunkPage(splats, chunk, page, now); - const { numSplats, extra } = data; - this.lodTreeUpdates.push({ - splats, - page, - chunk, - numSplats, - lodTree: extra.lodTree - }); - if (!this.extSplats) { - const packedArray = data.packedArray; - this.newUploads.push({ page, numSplats, packedArray, extra }); - } else { - const extArrays = data.extArrays; - const packedArray = extArrays[0]; - const extArray = extArrays[1]; - this.newUploads.push({ page, numSplats, packedArray, extArray, extra }); - } + // Can be used where you need an uninitialized THREE.DataArrayTexture like + // a uniform you will update with the result of this.getTexture() later. + static getEmpty() { + if (!_RgbaArray.emptySource) { + const emptyArray = new Uint8Array(1 * 4); + _RgbaArray.emptySource = new THREE__namespace.DataArrayTexture(emptyArray, 1, 1, 1); + _RgbaArray.emptySource.format = THREE__namespace.RGBAFormat; + _RgbaArray.emptySource.type = THREE__namespace.UnsignedByteType; + _RgbaArray.emptySource.internalFormat = "RGBA8"; + _RgbaArray.emptySource.needsUpdate = true; } + return _RgbaArray.emptySource; } - processUploads() { - while (true) { - const upload = this.readyUploads.shift(); - if (!upload) { - break; - } - const { page, numSplats, packedArray, extArray, extra } = upload; - this.uploadPage(page, packedArray, extra, extArray); + // Create a dyno program that can extract RGBA8 values from a PackedSplats + static makeDynos() { + if (!_RgbaArray.dynos) { + const dynoSplats = new DynoPackedSplats(); + const dynoBase = new DynoInt({ value: 0 }); + const dynoCount = new DynoInt({ value: 0 }); + const reader = dynoBlock( + { index: "int" }, + { rgba8: "vec4" }, + ({ index }) => { + if (!index) { + throw new Error("index is undefined"); + } + index = add(index, dynoBase); + const gsplat = readPackedSplatRange( + dynoSplats, + index, + dynoBase, + dynoCount + ); + return { rgba8: splitGsplat(gsplat).outputs.rgba }; + } + ); + _RgbaArray.dynos = { dynoSplats, dynoBase, dynoCount, reader }; } - } - consumeLodTreeUpdates() { - const updates = this.lodTreeUpdates; - this.lodTreeUpdates = []; - this.readyUploads.push(...this.newUploads); - this.newUploads = []; - return updates; + return _RgbaArray.dynos; } }; -_SplatPager.emptyUint32x4 = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 4); - const texture2 = new THREE__namespace.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE__namespace.RGBAIntegerFormat; - texture2.type = THREE__namespace.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_SplatPager.emptyUint32x2 = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 2); - const texture2 = new THREE__namespace.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE__namespace.RGIntegerFormat; - texture2.type = THREE__namespace.UnsignedIntType; - texture2.internalFormat = "RG32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_SplatPager.emptyIndicesTexture = (() => { - const emptyArray = new Uint32Array(4096 * 4); - const texture2 = new THREE__namespace.DataTexture(emptyArray, 4096, 1); - texture2.format = THREE__namespace.RGBAIntegerFormat; - texture2.type = THREE__namespace.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_SplatPager.emptyPackedTexture = _SplatPager.emptyUint32x4; -_SplatPager.emptyExtTexture = _SplatPager.emptyUint32x4; -_SplatPager.emptySh1Texture = _SplatPager.emptyUint32x2; -_SplatPager.emptySh2Texture = _SplatPager.emptyUint32x4; -_SplatPager.emptySh3Texture = _SplatPager.emptyUint32x4; -_SplatPager.emptyExtSh1Texture = _SplatPager.emptyUint32x4; -_SplatPager.emptyExtSh2Texture = _SplatPager.emptyUint32x4; -_SplatPager.emptyExtSh3Texture = _SplatPager.emptyUint32x4; -_SplatPager.emptyExtSh3BTexture = _SplatPager.emptyUint32x4; -let SplatPager = _SplatPager; -function getGlTexture(renderer, texture2) { - if (!renderer.properties.has(texture2)) { - throw new Error("texture not found"); - } - const props = renderer.properties.get(texture2); - const glTexture = props.__webglTexture; - if (!glTexture) { - throw new Error("texture not found"); - } - return glTexture; -} -const wasmInitialized = __wbg_init(); -async function fetchRange({ - url, - requestHeader, - withCredentials, - offset, - bytes -}) { - const request = new Request(url, { - headers: requestHeader ? new Headers(requestHeader) : void 0, - credentials: withCredentials ? "include" : "same-origin" +_RgbaArray.emptySource = null; +_RgbaArray.dynos = null; +let RgbaArray = _RgbaArray; +const TRgbaArray = { type: "RgbaArray" }; +const defineRgbaArray = unindent(` + struct RgbaArray { + sampler2DArray texture; + int count; + }; +`); +function readRgbaArray(rgba, index) { + const dyno2 = new Dyno({ + inTypes: { rgba: TRgbaArray, index: "int" }, + outTypes: { rgba: "vec4" }, + inputs: { rgba, index }, + globals: () => [defineRgbaArray], + statements: ({ inputs, outputs }) => unindentLines(` + if ((${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) { + ${outputs.rgba} = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0); + } else { + ${outputs.rgba} = vec4(0.0, 0.0, 0.0, 0.0); + } + `) }); - if (offset !== void 0 && bytes !== void 0) { - request.headers.set("Range", `bytes=${offset}-${offset + bytes - 1}`); - } - const response = await fetch(request); - if (!response.ok || !response.body) { - throw new Error( - `Failed to fetch "${url}": ${response.status} ${response.statusText}` - ); - } - return new Uint8Array(await response.arrayBuffer()); + return dyno2.outputs.rgba; } -class EmptySplatSource { - constructor() { - this.fetchDyno = new Dyno({ - inTypes: {}, - outTypes: { gsplat: Gsplat }, - globals: () => [defineGsplat], - statements: ({ outputs }) => unindentLines(` - ${outputs.gsplat}.flags = 0u; - return; - `) - }).outputs.gsplat; - } - prepareFetchSplat() { +const PAGE_WIDTH = 256; +const PAGE_HEIGHT = 256; +const PAGE_SPLATS = PAGE_WIDTH * PAGE_HEIGHT; +class PagedSplats { + constructor(options) { + var _a2; + this.pager = options.pager; + this.rootUrl = options.rootUrl ?? ""; + this.requestHeader = options.requestHeader; + this.withCredentials = options.withCredentials; + this.numSh = 0; + this.maxSh = ((_a2 = options.pager) == null ? void 0 : _a2.maxSh) ?? 3; + this.numSplats = 0; + this.dynoNumSplats = new DynoInt({ value: 0 }); + this.dynoIndices = new DynoUsampler2D({ + value: SplatPager.emptyIndicesTexture + }); + this.rgbMinMaxLnScaleMinMax = new DynoVec4({ + value: new THREE__namespace.Vector4(0, 1, LN_SCALE_MIN, LN_SCALE_MAX) + }); + this.lodOpacity = new DynoBool({ + value: false + }); + this.dynoNumSh = new DynoInt({ value: 0 }); + this.shMax = new DynoVec3({ value: new THREE__namespace.Vector3() }); + this.fileBytes = options.fileBytes; + this.fileType = options.fileType; + if (!this.fileType && this.fileBytes) { + this.fileType = getSplatFileType(this.fileBytes); + } + if (!this.fileType && this.rootUrl) { + this.fileType = getSplatFileTypeFromPath(this.rootUrl); + } + if (!this.fileType) { + throw new Error("Unable to determine file type"); + } + if (this.fileType === SplatFileType.RAD) { + this.radMetaPromise = this.getRadMeta(); + } } dispose() { - } - getNumSplats() { - return 0; - } - hasRgbDir() { - return false; - } - getNumSh() { - return 0; + if (this.dynoIndices.value !== SplatPager.emptyIndicesTexture) { + this.dynoIndices.value.dispose(); + this.dynoIndices.value = SplatPager.emptyIndicesTexture; + } } setMaxSh(maxSh) { + this.maxSh = maxSh; } - fetchSplat({ index }) { - return this.fetchDyno; + getRadMeta() { + if (this.radMetaPromise) { + return this.radMetaPromise; + } + this.radMetaPromise = (async () => { + await initialization; + if (this.fileBytes) { + const metaStart = decode_rad_header(this.fileBytes.slice(0, 1048576)); + if (metaStart) { + return metaStart; + } + throw new Error("Failed to decode RAD header"); + } + if (!this.rootUrl) { + throw new Error("No url or fileBytes provided"); + } + for (const tryBytes of [65536, 256 * 1024, 1024 * 1024]) { + const bytes = await fetchRange({ + url: this.rootUrl, + requestHeader: this.requestHeader, + withCredentials: this.withCredentials, + offset: 0, + bytes: tryBytes + }); + const metaStart = decode_rad_header(bytes); + if (metaStart) { + return metaStart; + } + } + throw new Error("Failed to decode RAD header"); + })().then((metaStart) => { + return metaStart; + }); + this.radMetaPromise.catch((error) => { + console.error(error); + }); + return this.radMetaPromise; } - forEachSplat() { + chunkUrl(chunk) { + return this.rootUrl.replace(/-lod-0\./, `-lod-${chunk}.`); } -} -const _SplatMesh = class _SplatMesh extends SplatGenerator { - constructor(options = {}) { - super({ - update: (context) => this.update(context) - }); - this.isInitialized = false; - this.recolor = new THREE__namespace.Color(1, 1, 1); - this.opacity = 1; - this.generatorDirty = true; - this.enableViewToObject = false; - this.enableViewToWorld = false; - this.enableWorldToView = false; - this.skinning = null; - this.edits = null; - this.rgbaDisplaceEdits = null; - this.splatRgba = null; - this.maxSh = 3; - this.showLodPageDyno = new DynoInt({ value: 0 }); - if (options.splats) { - this.splats = options.splats; - this.numSplats = options.splats.getNumSplats(); - } else if (options.paged) { - if (options.extSplats) { - console.warn( - "To set extSplats with the paged option, set SparkRenderer.pagedExtSplats" + async fetchDecodeChunk(chunk) { + let decodeBytes = void 0; + if (this.fileType === SplatFileType.RAD) { + const { meta, chunksStart } = await this.getRadMeta(); + if (chunk < 0 || chunk >= meta.chunks.length) { + throw new Error( + `Chunk index out of range: ${chunk} (max: ${meta.chunks.length - 1})` ); } - const rootUrl = options.url ?? ""; - if (options.paged === true) { - this.paged = new PagedSplats({ rootUrl }); - } else if (options.paged instanceof PagedSplats) { - this.paged = options.paged; - } else if (options.paged instanceof SplatPager) { - this.paged = new PagedSplats({ rootUrl, pager: options.paged }); + let { offset, bytes, filename } = meta.chunks[chunk]; + if (filename) { + if (this.fileBytes) { + throw new Error("Chunked RAD file not supported with fileBytes"); + } + const resolvedRoot = new URL( + this.rootUrl, + window.location.href + ).toString(); + const chunkUrl = new URL(filename, resolvedRoot).toString(); + decodeBytes = await fetchRange({ + url: chunkUrl, + requestHeader: this.requestHeader, + withCredentials: this.withCredentials + }); } else { - throw new Error("Invalid paged option"); - } - this.splats = this.paged; - } else if (options.extSplats) { - this.extSplats = options.extSplats instanceof ExtSplats ? options.extSplats : new ExtSplats(); - options.extSplats = this.extSplats; - this.numSplats = this.extSplats.numSplats; - this.splats = this.extSplats; - } else if (options.packedSplats) { - this.packedSplats = options.packedSplats; - this.packedSplats.splatEncoding = options.splatEncoding ?? { - ...DEFAULT_SPLAT_ENCODING - }; - this.splats = this.packedSplats; - } else { - this.packedSplats = new PackedSplats(); - } - this.editable = options.editable ?? true; - this.raycastable = options.raycastable ?? true; - this.minRaycastOpacity = options.minRaycastOpacity ?? 0.2; - this.onFrame = options.onFrame; - this.context = { - transform: new SplatTransformer(), - viewToWorld: new SplatTransformer(), - worldToView: new SplatTransformer(), - viewToObject: new SplatTransformer(), - covTransform: new CovSplatTransformer(), - covViewToWorld: new CovSplatTransformer(), - covWorldToView: new CovSplatTransformer(), - covViewToObject: new CovSplatTransformer(), - recolor: new DynoVec4({ - value: new THREE__namespace.Vector4().setScalar(Number.NEGATIVE_INFINITY) - }), - time: new DynoFloat({ value: 0 }), - deltaTime: new DynoFloat({ value: 0 }), - numSplats: new DynoInt({ value: 0 }), - splats: new EmptySplatSource(), - enableLod: new DynoBool({ value: false }), - lodIndices: new DynoUsampler2D({ - value: emptyLodIndices, - key: "lodIndices" - }) - }; - this.covSplats = options.covSplats ?? false; - if (this.covSplats && !this.extSplats) { - throw new Error("CovSplats requires ExtSplats"); - } - this.objectModifiers = options.objectModifier ? [options.objectModifier] : void 0; - this.worldModifiers = options.worldModifier ? [options.worldModifier] : void 0; - if (options.objectModifiers) { - this.objectModifiers = options.objectModifiers; - } - if (options.worldModifiers) { - this.worldModifiers = options.worldModifiers; - } - this.enableLod = options.enableLod; - this.lodScale = options.lodScale ?? 1; - this.behindFoveate = options.behindFoveate; - this.coneFov0 = options.coneFov0; - this.coneFov = options.coneFov; - this.coneFoveate = options.coneFoveate; - this.updateGenerator(); - if (options.url || options.fileBytes || options.stream || options.constructSplats || options.packedSplats && !options.packedSplats.isInitialized || this.extSplats && !this.extSplats.isInitialized) { - this.initialized = this.asyncInitialize(options).then(async () => { - this.updateGenerator(); - this.isInitialized = true; - if (options.onLoad) { - const maybePromise = options.onLoad(this); - if (maybePromise instanceof Promise) { - await maybePromise; + offset += chunksStart; + if (this.fileBytes) { + if (offset < 0 || offset + bytes > this.fileBytes.length) { + throw new Error( + `Invalid chunk offset or bytes: ${offset} + ${bytes} > ${this.fileBytes.length}` + ); } - } - return this; - }); - } else { - this.isInitialized = true; - this.initialized = Promise.resolve(this); - if (options.onLoad) { - const maybePromise = options.onLoad(this); - if (maybePromise instanceof Promise) { - this.initialized = maybePromise.then(() => this); + decodeBytes = this.fileBytes.slice(offset, offset + bytes); + } else if (this.rootUrl) { + decodeBytes = await fetchRange({ + url: this.rootUrl, + requestHeader: this.requestHeader, + withCredentials: this.withCredentials, + offset, + bytes + }); + } else { + throw new Error("No url or fileBytes provided"); } } - } - } - async asyncInitialize(options) { - const { - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - maxSplats, - constructSplats, - onProgress, - splatEncoding, - lod, - nonLod, - lodAbove - } = options; - if (this.packedSplats) { - if (url || fileBytes || stream || constructSplats) { - const packedSplatsOptions = { - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - maxSplats, - construct: constructSplats, - onProgress, - splatEncoding, - lod, - nonLod, - lodAbove - }; - this.packedSplats.reinitialize(packedSplatsOptions); + } else if (this.fileBytes) ; + else if (this.rootUrl) { + const url = this.chunkUrl(chunk); + const request = new Request(url, { + headers: this.requestHeader ? new Headers(this.requestHeader) : void 0, + credentials: this.withCredentials ? "include" : "same-origin" + }); + const response = await fetch(request); + if (!response.ok || !response.body) { + throw new Error( + `Failed to fetch "${url}": ${response.status} ${response.statusText}` + ); } - await this.packedSplats.initialized; - this.splats = this.packedSplats; - } else if (this.extSplats) { - if (url || fileBytes || stream || constructSplats) { - const construct = constructSplats; - this.extSplats.reinitialize({ - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - maxSplats, - construct, - onProgress, - lod, - nonLod, - lodAbove + decodeBytes = new Uint8Array(await response.arrayBuffer()); + } else { + throw new Error("No url or fileBytes provided"); + } + return await workerPool.withWorker(async (worker) => { + var _a2, _b2, _c, _d, _e; + if (!this.pager) { + throw new Error("PagedSplats.pager not set"); + } + if (!this.pager.extSplats) { + const result2 = await worker.call("loadPackedSplats", { + fileBytes: decodeBytes, + pathName: this.chunkUrl(chunk), + sh1Codes: (_a2 = this.sh1Codes) == null ? void 0 : _a2.slice(), + sh2Codes: (_b2 = this.sh2Codes) == null ? void 0 : _b2.slice(), + sh3Codes: (_c = this.sh3Codes) == null ? void 0 : _c.slice() }); - await this.extSplats.initialized; - this.splats = this.extSplats; + const lodSplats2 = result2.lodSplats; + if (!this.splatEncoding) { + this.splatEncoding = lodSplats2.splatEncoding; + this.numSh = lodSplats2.extra.sh3 ? 3 : lodSplats2.extra.sh2 ? 2 : lodSplats2.extra.sh1 ? 1 : 0; + this.rgbMinMaxLnScaleMinMax.value.set( + this.splatEncoding.rgbMin ?? 0, + this.splatEncoding.rgbMax ?? 1, + this.splatEncoding.lnScaleMin ?? LN_SCALE_MIN, + this.splatEncoding.lnScaleMax ?? LN_SCALE_MAX + ); + this.lodOpacity.value = this.splatEncoding.lodOpacity ?? false; + this.shMax.value.set( + this.splatEncoding.sh1Max ?? 1, + this.splatEncoding.sh2Max ?? 1, + this.splatEncoding.sh3Max ?? 1 + ); + } + this.sh1Codes = lodSplats2.extra.sh1Codes ?? this.sh1Codes; + this.sh2Codes = lodSplats2.extra.sh2Codes ?? this.sh2Codes; + this.sh3Codes = lodSplats2.extra.sh3Codes ?? this.sh3Codes; + return lodSplats2; + } + const sh3Codes = this.sh3Codes; + const result = await worker.call("loadExtSplats", { + fileBytes: decodeBytes, + pathName: this.chunkUrl(chunk), + sh1Codes: (_d = this.sh1Codes) == null ? void 0 : _d.slice(), + sh2Codes: (_e = this.sh2Codes) == null ? void 0 : _e.slice(), + sh3Codes: sh3Codes ? [sh3Codes[0].slice(), sh3Codes[1].slice()] : void 0 + }); + const lodSplats = result.lodSplats; + if (!this.splatEncoding) { + this.splatEncoding = DEFAULT_SPLAT_ENCODING; + this.numSh = lodSplats.extra.sh3a && lodSplats.extra.sh3b ? 3 : lodSplats.extra.sh2 ? 2 : lodSplats.extra.sh1 ? 1 : 0; } + this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes; + this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes; + this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes; + return lodSplats; + }); + } + update(numSplats, indices) { + if (!this.pager) { + throw new Error("PagedSplats.pager not set"); } - if (this.splats) { - this.numSplats = this.splats.getNumSplats(); - this.updateGenerator(); + const renderer = this.pager.renderer; + this.numSplats = numSplats; + this.dynoNumSplats.value = this.numSplats; + const rows = Math.ceil(numSplats / 16384); + let indicesTexture = this.dynoIndices.value === SplatPager.emptyIndicesTexture ? void 0 : this.dynoIndices.value; + if (indicesTexture && rows > indicesTexture.image.height) { + indicesTexture.dispose(); + indicesTexture = void 0; + } + if (!indicesTexture) { + indicesTexture = new THREE__namespace.DataTexture( + indices, + 4096, + rows, + THREE__namespace.RGBAIntegerFormat, + THREE__namespace.UnsignedIntType + ); + indicesTexture.internalFormat = "RGBA32UI"; + indicesTexture.needsUpdate = true; + renderer.initTexture(indicesTexture); + this.dynoIndices.value = indicesTexture; + } else { + const textureIndices = indicesTexture.image.data; + textureIndices.set(indices.subarray(0, numSplats)); + uploadU32DataTextureRows( + renderer, + indicesTexture, + 4096, + rows, + textureIndices + ); } } - static async staticInitialize() { - await __wbg_init(); - _SplatMesh.isStaticInitialized = true; + prepareFetchSplat() { } - // Creates a new Gsplat with the provided parameters (all values in "float" space, - // i.e. 0-1 for opacity and color) and adds it to the end of the packedSplats, - // increasing numSplats by 1. If necessary, reallocates the buffer with an exponential - // doubling strategy to fit the new data, so it's fairly efficient to just - // pushSplat(...) each Gsplat you want to create in a loop. - pushSplat(center, scales, quaternion, opacity, color) { - if (this.packedSplats) { - this.packedSplats.pushSplat(center, scales, quaternion, opacity, color); - } else if (this.extSplats) { - this.extSplats.pushSplat(center, scales, quaternion, opacity, color); + getNumSplats() { + return this.numSplats; + } + hasRgbDir() { + if (!this.pager) { + return false; } + return Math.min(this.numSh, this.pager.maxSh) > 0; } - // This method iterates over all Gsplats in this instance's packedSplats, - // invoking the provided callback with index: number in 0..=(this.numSplats-1) and - // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, - // opacity: number (0..1), and color: THREE.Color (rgb values in 0..1). - // Note that the objects passed in as center etc. are the same for every callback - // invocation: these objects are reused for efficiency. Changing these values has - // no effect as they are decoded/unpacked copies of the underlying data. To update - // the packedSplats, call .packedSplats.setSplat(index, center, scales, - // quaternion, opacity, color). - forEachSplat(callback) { - var _a2; - (_a2 = this.splats) == null ? void 0 : _a2.forEachSplat(callback); + getNumSh() { + return this.numSh; } - // Call this when you are finished with the SplatMesh and want to free - // any buffers it holds (via packedSplats). - dispose() { - if (this.splats && this.splats !== this.packedSplats && this.splats !== this.extSplats) { - this.splats.dispose(); - this.splats = void 0; + fetchSplat({ + index, + viewOrigin + }) { + if (!this.pager) { + throw new Error("PagedSplats.pager not set"); } - if (this.packedSplats) { - this.packedSplats.dispose(); - this.packedSplats = void 0; + const splatIndex = this.pager.readIndex.apply({ + index, + numSplats: this.dynoNumSplats, + indices: this.dynoIndices + }).index; + if (!this.pager.extSplats) { + if (this.hasRgbDir() && viewOrigin) { + this.dynoNumSh.value = Math.min( + this.numSh, + this.maxSh, + this.pager.maxSh + ); + return this.pager.readSplatDir.apply({ + index: splatIndex, + rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax, + lodOpacity: this.lodOpacity, + viewOrigin, + numSh: this.dynoNumSh, + shMax: this.shMax + }).gsplat; + } + return this.pager.readSplat.apply({ + index: splatIndex, + rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax, + lodOpacity: this.lodOpacity + }).gsplat; } - if (this.extSplats) { - this.extSplats.dispose(); - this.extSplats = void 0; + if (this.hasRgbDir() && viewOrigin) { + this.dynoNumSh.value = Math.min(this.numSh, this.maxSh, this.pager.maxSh); + return this.pager.readSplatExtDir.apply({ + index: splatIndex, + viewOrigin, + numSh: this.dynoNumSh + }).gsplat; } + return this.pager.readSplatExt.apply({ index: splatIndex }).gsplat; } - // Returns axis-aligned bounding box of the SplatMesh. If centers_only is true, - // only the centers of the splats are used to compute the bounding box. - // IMPORTANT: This should only be called after the SplatMesh is initialized. - getBoundingBox(centers_only = true) { - var _a2; - if (!this.initialized) { - throw new Error( - "Cannot get bounding box before SplatMesh is initialized" + // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat + // and invoke the callback function with the Gsplat attributes. + forEachSplat(callback) { + if (!this.pager || !this.numSplats) { + return; + } + const extSplats = this.pager.extSplats; + const indices = this.dynoIndices.value.image.data; + const packedSplatArray = this.pager.packedTexture.value.image.data; + const extPackedSplatArray = this.pager.extTexture.value.image.data; + const extArrays = [ + packedSplatArray, + extPackedSplatArray + ]; + for (let i = 0; i < this.numSplats; ++i) { + const splatIndex = indices[i]; + const unpacked = extSplats ? decodeExtSplat(extArrays, splatIndex) : unpackSplat(packedSplatArray, splatIndex, this.splatEncoding); + callback( + i, + unpacked.center, + unpacked.scales, + unpacked.quaternion, + unpacked.opacity, + unpacked.color ); } - const minVec = new THREE__namespace.Vector3( - Number.POSITIVE_INFINITY, - Number.POSITIVE_INFINITY, - Number.POSITIVE_INFINITY + } +} +const _SplatPager = class _SplatPager { + constructor(options) { + this.fetchPause = 0; + this.splatsChunkToPage = /* @__PURE__ */ new Map(); + this.pageToSplatsChunk = []; + this.renderer = options.renderer; + this.extSplats = options.extSplats ?? false; + this.pageSplats = PAGE_SPLATS; + this.maxSplats = options.maxSplats ?? 16777216; + this.maxPages = Math.ceil(this.maxSplats / PAGE_SPLATS); + this.maxSplats = this.maxPages * PAGE_SPLATS; + this.maxSh = options.maxSh ?? 3; + this.curSh = 0; + this.autoDrive = options.autoDrive ?? true; + this.numFetchers = options.numFetchers ?? 3; + this.splatsChunkToPage = /* @__PURE__ */ new Map(); + this.pageToSplatsChunk = new Array(this.maxPages); + this.pageFreelist = Array.from({ length: this.maxPages }, (_, i) => i); + this.pageLru = /* @__PURE__ */ new Set(); + this.freeablePages = []; + this.newUploads = []; + this.readyUploads = []; + this.lodTreeUpdates = []; + this.fetchers = []; + this.fetched = []; + this.fetchPriority = []; + this.packedTexture = new DynoUsampler2DArray({ + value: this.newUint32ArrayTexture(4) + }); + this.extTexture = new DynoUsampler2DArray({ + value: this.extSplats ? this.newUint32ArrayTexture(4) : _SplatPager.emptyExtTexture + }); + const emptyShTextures = this.extSplats ? _SplatPager.emptyExtShTextures : _SplatPager.emptyShTextures; + this.shTextures = emptyShTextures.map( + (texture2) => new DynoUsampler2DArray({ + value: texture2 + }) ); - const maxVec = new THREE__namespace.Vector3( - Number.NEGATIVE_INFINITY, - Number.NEGATIVE_INFINITY, - Number.NEGATIVE_INFINITY + this.readIndex = dynoBlock( + { index: "int", numSplats: "int", indices: "usampler2D" }, + { index: "int" }, + ({ index, numSplats, indices }) => { + return new Dyno({ + inTypes: { + index: "int", + numSplats: "int", + indices: "usampler2D" + }, + outTypes: { index: "int" }, + inputs: { + index, + numSplats, + indices + }, + statements: ({ inputs, outputs }) => unindentLines(` + if (${inputs.index} >= ${inputs.numSplats}) { + return; + } + + ivec2 indexCoord = ivec2((${inputs.index} >> 2) & 4095, ${inputs.index} >> 14); + uint index = texelFetch(${inputs.indices}, indexCoord, 0)[${inputs.index} & 3]; + ${outputs.index} = int(index); + `) + }).outputs; + } ); - const corners = new THREE__namespace.Vector3(); - const signs = [-1, 1]; - function callback(_index, center, scales, quaternion, _opacity, _color) { - if (centers_only) { - minVec.min(center); - maxVec.max(center); - } else { - for (const x of signs) { - for (const y of signs) { - for (const z of signs) { - corners.set(x * scales.x, y * scales.y, z * scales.z); - corners.applyQuaternion(quaternion); - corners.add(center); - minVec.min(corners); - maxVec.max(corners); + this.readSplat = dynoBlock( + { index: "int", rgbMinMaxLnScaleMinMax: "vec4", lodOpacity: "bool" }, + { gsplat: Gsplat }, + ({ index, rgbMinMaxLnScaleMinMax, lodOpacity }) => { + return new Dyno({ + inTypes: { + index: "int", + packedTexture: "usampler2DArray", + rgbMinMaxLnScaleMinMax: "vec4", + lodOpacity: "bool" + }, + outTypes: { gsplat: Gsplat }, + inputs: { + index, + packedTexture: this.packedTexture, + rgbMinMaxLnScaleMinMax, + lodOpacity + }, + globals: () => [defineGsplat], + statements: ({ inputs, outputs }) => unindentLines(` + int index = ${inputs.index}; + ivec3 splatCoord = pagedSplatTexCoord(index); + uvec4 packedData = texelFetch(${inputs.packedTexture}, splatCoord, 0); + + unpackSplatEncoding(packedData, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba, ${inputs.rgbMinMaxLnScaleMinMax}); + if ((${outputs.gsplat}.rgba.a == 0.0) || all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { + return; } - } - } + + ${outputs.gsplat}.index = index; + ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE; + if (${inputs.lodOpacity}) { + ${outputs.gsplat}.rgba.a *= 2.0; + } + `) + }).outputs; } - } - (_a2 = this.splats) == null ? void 0 : _a2.forEachSplat(callback); - const box = new THREE__namespace.Box3(minVec, maxVec); - return box; - } - set objectModifier(modifier) { - if (modifier) { - this.objectModifiers = [modifier]; - } else { - this.objectModifiers = void 0; - } - } - set worldModifier(modifier) { - if (modifier) { - this.worldModifiers = [modifier]; - } else { - this.worldModifiers = void 0; - } - } - constructGenerator(context) { - if (this.covSplats) { - return this.constructCovGenerator(context); - } - const { transform, viewToObject, recolor } = context; - const generator = dynoBlock( - { index: "int" }, + ); + this.readSplatDir = dynoBlock( + { + index: "int", + rgbMinMaxLnScaleMinMax: "vec4", + lodOpacity: "bool", + viewOrigin: "vec3", + numSh: "int", + shMax: "vec3" + }, { gsplat: Gsplat }, - ({ index }) => { - if (!index) { - throw new Error("index is undefined"); + ({ + index, + rgbMinMaxLnScaleMinMax, + lodOpacity, + viewOrigin, + numSh, + shMax + }) => { + if (!index || !rgbMinMaxLnScaleMinMax || !lodOpacity || !viewOrigin || !numSh || !shMax) { + throw new Error("index and viewOrigin are required"); } - index = maybeLookupIndex( - context.lodIndices, - index, - context.numSplats, - context.enableLod, - this.showLodPageDyno - ); - context.splats.setMaxSh(this.maxSh); - context.splats.prepareFetchSplat(); - let gsplat = context.splats.fetchSplat({ + let gsplat = this.readSplat.apply({ index, - viewOrigin: viewToObject.translate - }); - if (this.splatRgba) { - gsplat = maybeInjectSplatRgba( - gsplat, - this.splatRgba.dyno, - index, - context.enableLod - ); - } - if (this.skinning) { - gsplat = this.skinning.modify(gsplat); - } - if (this.objectModifiers) { - for (const modifier of this.objectModifiers) { - gsplat = modifier.apply({ gsplat }).gsplat; - } - } - gsplat = transform.applyGsplat(gsplat); - const recolorRgba = mul(recolor, splitGsplat(gsplat).outputs.rgba); - gsplat = combineGsplat({ gsplat, rgba: recolorRgba }); - if (this.rgbaDisplaceEdits) { - gsplat = this.rgbaDisplaceEdits.modify(gsplat); - } - if (this.worldModifiers) { - for (const modifier of this.worldModifiers) { - gsplat = modifier.apply({ gsplat }).gsplat; - } - } + rgbMinMaxLnScaleMinMax, + lodOpacity + }).gsplat; + const splatCenter = splitGsplat(gsplat).outputs.center; + const viewDir = normalize(sub(splatCenter, viewOrigin)); + let rgb = evaluatePackedSH({ + coord: pagedSplatTexCoord(index), + viewDir, + numSh, + sh1Texture: this.shTextures[0], + sh2Texture: this.shTextures[1], + sh3Texture: this.shTextures[2], + shMax + }).rgb; + rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); + gsplat = combineGsplat({ gsplat, rgb }); return { gsplat }; } ); - this.generator = generator; - this.covGenerator = void 0; - } - constructCovGenerator(context) { - const { covTransform, covViewToObject, recolor } = context; - const generator = dynoBlock( + this.readSplatExt = dynoBlock( { index: "int" }, - { covsplat: CovSplat }, + { gsplat: Gsplat }, ({ index }) => { - if (!index) { - throw new Error("index is undefined"); - } - index = maybeLookupIndex( - context.lodIndices, - index, - context.numSplats, - context.enableLod, - this.showLodPageDyno - ); - context.splats.prepareFetchSplat(); - let gsplat = context.splats.fetchSplat({ - index, - viewOrigin: covViewToObject.offset - }); - if (this.splatRgba) { - gsplat = maybeInjectSplatRgba( - gsplat, - this.splatRgba.dyno, - index, - context.enableLod - ); - } - if (this.objectModifiers) { - for (const modifier of this.objectModifiers) { - gsplat = modifier.apply({ gsplat }).gsplat; - } - } - let covsplat = gsplatToCovSplat(gsplat); - if (this.skinning) { - covsplat = this.skinning.modifyCov(covsplat); - } - if (this.covObjectModifiers) { - for (const modifier of this.covObjectModifiers) { - covsplat = modifier.apply({ covsplat }).covsplat; - } - } - covsplat = covTransform.applyCovSplat(covsplat); - const recolorRgba = mul(recolor, splitCovSplat(covsplat).outputs.rgba); - covsplat = combineCovSplat({ covsplat, rgba: recolorRgba }); - if (this.rgbaDisplaceEdits) { - covsplat = this.rgbaDisplaceEdits.modifyCov(covsplat); - } - if (this.covWorldModifiers) { - for (const modifier of this.covWorldModifiers) { - covsplat = modifier.apply({ covsplat }).covsplat; - } + return new Dyno({ + inTypes: { + index: "int", + extTexture1: "usampler2DArray", + extTexture2: "usampler2DArray" + }, + outTypes: { gsplat: Gsplat }, + inputs: { + index, + extTexture1: this.packedTexture, + extTexture2: this.extTexture + }, + globals: () => [defineGsplat], + statements: ({ inputs, outputs }) => unindentLines(` + int index = ${inputs.index}; + ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16); + uvec4 ext1 = texelFetch(${inputs.extTexture1}, splatCoord, 0); + float alpha = unpackSplatExtAlpha(ext1); + if (alpha == 0.0) { + return; + } + + uvec4 ext2 = texelFetch(${inputs.extTexture2}, splatCoord, 0); + unpackSplatExt(ext1, ext2, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba); + if (all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { + return; + } + + ${outputs.gsplat}.index = index; + ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE; + `) + }).outputs; + } + ); + this.readSplatExtDir = dynoBlock( + { + index: "int", + viewOrigin: "vec3", + numSh: "int" + }, + { gsplat: Gsplat }, + ({ index, viewOrigin, numSh }) => { + if (!index || !viewOrigin || !numSh) { + throw new Error("index and viewOrigin are required"); } - return { covsplat }; + let gsplat = this.readSplatExt.apply({ index }).gsplat; + const splatCenter = splitGsplat(gsplat).outputs.center; + const viewDir = normalize(sub(splatCenter, viewOrigin)); + let rgb = evaluateExtSH({ + coord: pagedSplatTexCoord(index), + viewDir, + numSh, + sh1Texture: this.shTextures[0], + sh2Texture: this.shTextures[1], + sh3TextureA: this.shTextures[2], + sh3TextureB: this.shTextures[3] + }).rgb; + rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); + gsplat = combineGsplat({ gsplat, rgb }); + return { gsplat }; } ); - this.generator = void 0; - this.covGenerator = generator; } - // Call this whenever something changes in the Gsplat processing pipeline, - // for example changing maxSh or updating objectModifier or worldModifier. - // Compiled generators are cached for efficiency and re-use when the same - // pipeline structure emerges after successive changes. - updateGenerator() { - this.generatorDirty = true; + dispose() { + this.autoDrive = false; + this.numFetchers = 0; + this.packedTexture.value.dispose(); + this.packedTexture.value.source.data = null; + if (this.extTexture.value !== _SplatPager.emptyExtTexture) { + this.extTexture.value.dispose(); + this.extTexture.value.source.data = null; + } + const emptyShTextures = this.extSplats ? _SplatPager.emptyExtShTextures : _SplatPager.emptyShTextures; + for (let i = 0; i < emptyShTextures.length; i++) { + const texture2 = this.shTextures[i].value; + if (texture2 !== emptyShTextures[i]) { + texture2.dispose(); + texture2.source.data = null; + } + } } - // This is called automatically by SparkRenderer and you should not have to - // call it. It updates parameters for the generated pipeline and calls - // updateGenerator() if the pipeline needs to change. - update({ - renderer, - time, - deltaTime, - viewToWorld, - camera, - renderSize, - globalEdits, - lodIndices - }) { - var _a2, _b2, _c; - this.context.time.value = time; - this.context.deltaTime.value = deltaTime; - _SplatMesh.dynoTime.value = time; - this.showLodPageDyno.value = this.showLodPage ?? -1; - const splats = this.splats ?? this.packedSplats ?? this.extSplats; - if (splats) { - this.context.splats = splats; + ensureShTextures(numSh) { + this.curSh = Math.max(this.curSh, numSh); + const emptyShTextures = this.extSplats ? _SplatPager.emptyExtShTextures : _SplatPager.emptyShTextures; + for (let i = 0; i < this.curSh; i++) { + if (this.shTextures[i].value === emptyShTextures[i]) { + const elementsPerSplat = this.shTextures[i].value === _SplatPager.emptyUint32x2 ? 2 : 4; + this.shTextures[i].value = this.newUint32ArrayTexture(elementsPerSplat); + } } - this.numSplats = this.context.splats.getNumSplats(); - let updated = false; - const lodSplats = ((_a2 = this.packedSplats) == null ? void 0 : _a2.lodSplats) ?? ((_b2 = this.extSplats) == null ? void 0 : _b2.lodSplats); - this.context.enableLod.value = lodSplats != null && lodIndices != null; - if (this.enableLod === false) { - this.context.enableLod.value = false; + } + allocatePage() { + return this.pageFreelist.shift(); + } + getSplatsChunk(splats, chunk) { + const chunks = this.splatsChunkToPage.get(splats); + if (!chunks) { + return void 0; } - this.context.lodIndices.value = (lodIndices == null ? void 0 : lodIndices.texture) ?? emptyLodIndices; - if (this.context.enableLod.value && lodSplats) { - this.context.splats = lodSplats; - this.numSplats = (lodIndices == null ? void 0 : lodIndices.numSplats) ?? 0; + return chunks[chunk]; + } + insertSplatsChunkPage(splats, chunk, page, now) { + if (!this.splatsChunkToPage.has(splats)) { + this.splatsChunkToPage.set(splats, []); } - this.context.numSplats.value = this.numSplats; - if (this.context.splats !== this.lastSplats) { - this.lastSplats = this.context.splats; - this.generatorDirty = true; + const chunks = this.splatsChunkToPage.get(splats); + if (!chunks) { + throw new Error("impossible"); } - if (!this.covSplats) { - if (this.context.transform.update(this)) { - updated = true; - } - if (this.context.viewToWorld.updateFromMatrix(viewToWorld) && this.enableViewToWorld) { - updated = true; - } - const worldToView = viewToWorld.clone().invert(); - if (this.context.worldToView.updateFromMatrix(worldToView) && this.enableWorldToView) { - updated = true; - } - const objectToWorld = new THREE__namespace.Matrix4().compose( - this.context.transform.translate.value, - this.context.transform.rotate.value, - new THREE__namespace.Vector3().setScalar(this.context.transform.scale.value) + if (chunk >= chunks.length) { + chunks.length = chunk + 1; + } + const pageLru = { page, lru: now }; + chunks[chunk] = pageLru; + this.pageLru.add(pageLru); + this.pageToSplatsChunk[page] = { splats, chunk, time: performance.now() }; + return this.pageToSplatsChunk[page]; + } + removeSplatsChunkPage(splats, chunk, page) { + const chunks = this.splatsChunkToPage.get(splats); + if (!chunks) { + throw new Error("impossible"); + } + const pageLru = chunks[chunk]; + if (!pageLru) { + throw new Error( + `pageLru not found for splats: ${splats}, chunk: ${chunk}, page: ${page}` ); - const worldToObject = objectToWorld.invert(); - const viewToObjectMatrix = worldToObject.multiply(viewToWorld); - if (this.context.viewToObject.updateFromMatrix(viewToObjectMatrix) && (this.enableViewToObject || this.context.splats.hasRgbDir())) { - updated = true; - } - } else { - if (this.context.covTransform.update(this)) { - updated = true; + } + this.pageLru.delete(pageLru); + chunks[chunk] = void 0; + while (chunks.length > 0 && chunks[chunks.length - 1] === void 0) { + chunks.pop(); + } + if (chunks.length === 0) { + this.splatsChunkToPage.delete(splats); + } + this.pageToSplatsChunk[page] = void 0; + while (this.pageToSplatsChunk.length > 0 && this.pageToSplatsChunk[this.pageToSplatsChunk.length - 1] === void 0) { + this.pageToSplatsChunk.pop(); + } + } + removeSplats(splats) { + const chunks = this.splatsChunkToPage.get(splats); + if (!chunks) { + return; + } + const freedPages = /* @__PURE__ */ new Set(); + while (chunks.length > 0) { + const chunk = chunks.pop(); + if (chunk) { + const { page } = chunk; + this.pageToSplatsChunk[page] = void 0; + freedPages.add(page); + this.pageFreelist.push(page); + this.pageLru.delete(chunk); } - if (this.context.covViewToWorld.updateFromMatrix(viewToWorld) && this.enableViewToWorld) { - updated = true; + } + this.splatsChunkToPage.delete(splats); + this.freeablePages = this.freeablePages.filter( + (page) => !freedPages.has(page) + ); + } + uploadPage(page, packedArray, shArrays, extArray) { + const pageBase = page * PAGE_SPLATS; + uploadTextureLayer(this.packedTexture, page, pageBase * 4, packedArray); + if (extArray) { + uploadTextureLayer(this.extTexture, page, pageBase * 4, extArray); + } + const numSh = Math.min(shArrays.length, 3); + this.ensureShTextures(numSh); + for (let i = 0; i < shArrays.length; i++) { + const array = shArrays[i]; + const elementsPerSplat = this.shTextures[i].value.format === THREE__namespace.RGIntegerFormat ? 2 : 4; + uploadTextureLayer( + this.shTextures[i], + page, + pageBase * elementsPerSplat, + array + ); + } + } + newUint32ArrayTexture(elementsPerSplat) { + const data = new Uint32Array( + this.maxPages * PAGE_WIDTH * PAGE_HEIGHT * elementsPerSplat + ); + const texture2 = new THREE__namespace.DataArrayTexture( + data, + PAGE_WIDTH, + PAGE_HEIGHT, + this.maxPages + ); + texture2.format = elementsPerSplat === 2 ? THREE__namespace.RGIntegerFormat : THREE__namespace.RGBAIntegerFormat; + texture2.type = THREE__namespace.UnsignedIntType; + texture2.internalFormat = elementsPerSplat === 2 ? "RG32UI" : "RGBA32UI"; + texture2.needsUpdate = true; + texture2.source.dataReady = false; + this.renderer.initTexture(texture2); + return texture2; + } + driveFetchers() { + const needed = []; + const overflow = []; + let numPages = 0; + for (const { splats, chunk } of this.fetchPriority) { + const pageLru = this.getSplatsChunk(splats, chunk); + if (pageLru) { + if (numPages >= this.maxPages) { + overflow.push(pageLru); + } else { + needed.push(pageLru); + } + numPages += 1; + continue; } - const worldToView = viewToWorld.clone().invert(); - if (this.context.covWorldToView.updateFromMatrix(worldToView) && this.enableWorldToView) { - updated = true; + if (this.fetched.some( + ({ splats: s, chunk: c }) => splats === s && chunk === c + ) || this.fetchers.some( + ({ splats: s, chunk: c }) => splats === s && chunk === c + )) { + numPages += 1; + continue; } - const worldToObject = this.matrixWorld.clone().invert(); - const viewToObjectMatrix = worldToObject.multiply(viewToWorld); - if (this.context.covViewToObject.updateFromMatrix(viewToObjectMatrix) && (this.enableViewToObject || this.context.splats.hasRgbDir())) { - updated = true; + if (numPages < this.maxPages && this.fetchers.length < this.numFetchers) { + numPages += 1; + const promise = splats.fetchDecodeChunk(chunk).then( + async (data) => { + this.fetched.push({ splats, chunk, data }); + if (this.fetchPause > 0) { + await new Promise( + (resolve) => setTimeout(resolve, this.fetchPause) + ); + } + }, + async (error) => { + console.warn(error); + const backoff = 250 + 500 * Math.random(); + await new Promise((resolve) => setTimeout(resolve, backoff)); + } + ).finally(() => { + this.fetchers = this.fetchers.filter( + ({ splats: s, chunk: c }) => splats !== s || chunk !== c + ); + this.processFetched(); + }); + this.fetchers.push({ splats, chunk, promise }); + promise.then((data) => { + if (this.autoDrive) { + this.driveFetchers(); + } + }); } } - const newRecolor = new THREE__namespace.Vector4( - this.recolor.r, - this.recolor.g, - this.recolor.b, - this.opacity - ); - if (!newRecolor.equals(this.context.recolor.value)) { - this.context.recolor.value.copy(newRecolor); - updated = true; - } - const edits = this.editable ? (this.edits ?? []).concat(globalEdits) : []; - if (this.editable && !this.edits) { - this.traverseVisible((node) => { - if (node instanceof SplatEdit) { - edits.push(node); - } - }); - } - edits.sort((a, b) => a.ordering - b.ordering); - const editsSdfs = edits.map((edit) => { - if (edit.sdfs != null) { - return { edit, sdfs: edit.sdfs }; - } - const sdfs = []; - edit.traverseVisible((node) => { - if (node instanceof SplatEditSdf) { - sdfs.push(node); - } - }); - return { edit, sdfs }; - }); - if (editsSdfs.length > 0 && !this.rgbaDisplaceEdits) { - const edits2 = editsSdfs.length; - const sdfs = editsSdfs.reduce( - (total, edit) => total + edit.sdfs.length, - 0 - ); - this.rgbaDisplaceEdits = new SplatEdits({ - maxEdits: edits2, - maxSdfs: sdfs - }); - this.generatorDirty = true; + const now = performance.now(); + for (const pageLru of overflow.reverse()) { + pageLru.lru = now; + this.pageLru.delete(pageLru); + this.pageLru.add(pageLru); } - if (this.rgbaDisplaceEdits) { - const editResult = this.rgbaDisplaceEdits.update(editsSdfs); - updated || (updated = editResult.updated); - if (editResult.dynoUpdated) { - this.generatorDirty = true; - } + const extraPages = new Set(this.pageLru); + for (const pageLru of needed.reverse()) { + extraPages.delete(pageLru); + pageLru.lru = now; + this.pageLru.delete(pageLru); + this.pageLru.add(pageLru); } - if (this.generatorDirty) { - this.constructGenerator(this.context); - this.generatorDirty = false; - updated = true; + this.freeablePages = Array.from(extraPages).map(({ page }) => page); + } + allocateFreeable() { + const page = this.freeablePages.shift(); + if (page === void 0) { + return void 0; } - if (updated) { - this.updateVersion(); + const splatsChunk = this.pageToSplatsChunk[page]; + if (!splatsChunk) { + throw new Error(`splatsChunk not found for page: ${page}`); } - (_c = this.onFrame) == null ? void 0 : _c.call(this, { mesh: this, time, deltaTime }); + const { splats, chunk } = splatsChunk; + this.removeSplatsChunkPage(splats, chunk, page); + this.lodTreeUpdates.push({ + splats, + page, + chunk, + numSplats: PAGE_SPLATS + }); + return page; } - // This method conforms to the standard THREE.Raycaster API, performing object-ray - // intersections using this method to populate the provided intersects[] array - // with each intersection point. - raycast(raycaster, intersects) { - var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w; - if (!_SplatMesh.isStaticInitialized || !this.raycastable || !this.packedSplats && !this.extSplats && !this.paged) { - return; - } - const paged = this.paged != null; - const ext = paged ? ((_b2 = (_a2 = this.paged) == null ? void 0 : _a2.pager) == null ? void 0 : _b2.extSplats) ?? false : this.extSplats != null; - const { near, far, ray } = raycaster; - const worldToMesh = this.matrixWorld.clone().invert(); - const worldToMeshRot = new THREE__namespace.Matrix3().setFromMatrix4(worldToMesh); - const origin = ray.origin.clone().applyMatrix4(worldToMesh); - const direction = ray.direction.clone().applyMatrix3(worldToMeshRot); - const buffer = get_raycast_buffer(); - const bufferSize = buffer.length / 4; - let intersections = 0; - const numSplats = ((_c = this.raycastIndices) == null ? void 0 : _c.numSplats) ?? (paged ? (_d = this.paged) == null ? void 0 : _d.numSplats : this.context.numSplats.value) ?? 0; - const indices = ((_e = this.raycastIndices) == null ? void 0 : _e.indices) ?? (paged ? (_f = this.paged) == null ? void 0 : _f.dynoIndices.value.image.data : this.context.enableLod.value ? this.context.lodIndices.value.image.data : null) ?? null; - if (!ext) { - const packed = paged ? (_h = (_g = this.paged) == null ? void 0 : _g.pager) == null ? void 0 : _h.packedTexture.value.image.data : indices ? (_j = (_i = this.packedSplats) == null ? void 0 : _i.lodSplats) == null ? void 0 : _j.packedArray : (_k = this.packedSplats) == null ? void 0 : _k.packedArray; - if (!packed) { - return; - } - const splatEncoding = paged ? (_l = this.paged) == null ? void 0 : _l.splatEncoding : (_m = this.packedSplats) == null ? void 0 : _m.splatEncoding; - for (let base = 0; base < numSplats; base += bufferSize) { - const count = Math.min(bufferSize, numSplats - base); - if (!indices) { - buffer.set(packed.subarray(base * 4, (base + count) * 4)); - } else { - for (let i = 0; i < count; ++i) { - const index = indices[base + i]; - const i4 = i * 4; - const index4 = index * 4; - buffer[i4] = packed[index4]; - buffer[i4 + 1] = packed[index4 + 1]; - buffer[i4 + 2] = packed[index4 + 2]; - buffer[i4 + 3] = packed[index4 + 3]; - } - } - const newIntersections = raycast_packed_buffer( - origin.x, - origin.y, - origin.z, - direction.x, - direction.y, - direction.z, - this.minRaycastOpacity, - near, - far, - count, - (splatEncoding == null ? void 0 : splatEncoding.lnScaleMin) ?? LN_SCALE_MIN, - (splatEncoding == null ? void 0 : splatEncoding.lnScaleMax) ?? LN_SCALE_MAX, - (splatEncoding == null ? void 0 : splatEncoding.lodOpacity) ?? false - ); - intersections = this.appendRaycastBuffer( - intersections, - newIntersections - ); - } - } else { - const buffer2 = get_raycast_buffer2(); - const ext1 = paged ? (_o = (_n = this.paged) == null ? void 0 : _n.pager) == null ? void 0 : _o.packedTexture.value.image.data : indices ? (_q = (_p = this.extSplats) == null ? void 0 : _p.lodSplats) == null ? void 0 : _q.extArrays[0] : (_r = this.extSplats) == null ? void 0 : _r.extArrays[0]; - const ext2 = paged ? (_t = (_s = this.paged) == null ? void 0 : _s.pager) == null ? void 0 : _t.extTexture.value.image.data : indices ? (_v = (_u = this.extSplats) == null ? void 0 : _u.lodSplats) == null ? void 0 : _v.extArrays[1] : (_w = this.extSplats) == null ? void 0 : _w.extArrays[1]; - if (!ext1 || !ext2) { - return; + processFetched() { + const now = performance.now(); + while (true) { + const fetched = this.fetched.shift(); + if (!fetched) { + break; } - for (let base = 0; base < numSplats; base += bufferSize) { - const count = Math.min(bufferSize, numSplats - base); - if (!indices) { - buffer.set(ext1.subarray(base * 4, (base + count) * 4)); - buffer2.set(ext2.subarray(base * 4, (base + count) * 4)); - } else { - for (let i = 0; i < count; ++i) { - const index = indices[base + i]; - const i4 = i * 4; - const index4 = index * 4; - buffer[i4] = ext1[index4]; - buffer[i4 + 1] = ext1[index4 + 1]; - buffer[i4 + 2] = ext1[index4 + 2]; - buffer[i4 + 3] = ext1[index4 + 3]; - buffer2[i4] = ext2[index4]; - buffer2[i4 + 1] = ext2[index4 + 1]; - buffer2[i4 + 2] = ext2[index4 + 2]; - buffer2[i4 + 3] = ext2[index4 + 3]; - } + const { splats, chunk, data } = fetched; + let page = this.allocatePage(); + if (page === void 0) { + page = this.allocateFreeable(); + if (page === void 0) { + return; } - const newIntersections = raycast_ext_buffers( - origin.x, - origin.y, - origin.z, - direction.x, - direction.y, - direction.z, - this.minRaycastOpacity, - near, - far, - count - ); - intersections = this.appendRaycastBuffer( - intersections, - newIntersections - ); } - } - for (const distance2 of _SplatMesh.raycastBuffer.subarray(0, intersections)) { - const point = ray.direction.clone().multiplyScalar(distance2).add(ray.origin); - intersects.push({ - distance: distance2, - point, - object: this + this.insertSplatsChunkPage(splats, chunk, page, now); + const { numSplats, extra } = data; + this.lodTreeUpdates.push({ + splats, + page, + chunk, + numSplats, + lodTree: extra.lodTree }); + if (isExtResult(data, this.extSplats)) { + const extArrays = data.extArrays; + const packedArray = extArrays[0]; + const extArray = extArrays[1]; + const shArrays = [ + data.extra.sh1, + data.extra.sh2, + data.extra.sh3a, + data.extra.sh3b + ]; + shArrays.length = shArrays.findIndex((sh) => !sh); + this.newUploads.push({ + page, + numSplats, + packedArray, + extArray, + shArrays + }); + } else { + const packedArray = data.packedArray; + const shArrays = [ + data.extra.sh1, + data.extra.sh2, + data.extra.sh3 + ]; + shArrays.length = shArrays.findIndex((sh) => !sh); + this.newUploads.push({ + page, + numSplats, + packedArray, + shArrays + }); + } } } - appendRaycastBuffer(count, additional) { - const total = count + additional.length; - let capacity = _SplatMesh.raycastBuffer.length; - if (total > capacity) { - while (capacity < total) { - capacity *= 2; + processUploads() { + while (true) { + const upload = this.readyUploads.shift(); + if (!upload) { + break; } - const newBuffer = new Float32Array(capacity); - newBuffer.set(_SplatMesh.raycastBuffer.subarray(0, count)); - _SplatMesh.raycastBuffer = newBuffer; + const { page, numSplats, packedArray, extArray, shArrays } = upload; + this.uploadPage(page, packedArray, shArrays, extArray); } - _SplatMesh.raycastBuffer.set(additional, count); - return count + additional.length; } - async createLodSplats({ - rgbaArray, - quality - } = {}) { - if (this.packedSplats) { - await this.packedSplats.createLodSplats({ quality, rgbaArray }); - } else if (this.extSplats) { - await this.extSplats.createLodSplats({ quality, rgbaArray }); - } + consumeLodTreeUpdates() { + const updates = this.lodTreeUpdates; + this.lodTreeUpdates = []; + this.readyUploads.push(...this.newUploads); + this.newUploads = []; + return updates; } }; -_SplatMesh.staticInitialized = _SplatMesh.staticInitialize(); -_SplatMesh.isStaticInitialized = false; -_SplatMesh.dynoTime = new DynoFloat({ value: 0 }); -_SplatMesh.raycastBuffer = new Float32Array(1024); -let SplatMesh = _SplatMesh; -function maybeLookupIndex(lodIndices, index, numSplats, enableLod, showLodPage) { - return dyno$1({ - inTypes: { - lodIndices: "usampler2D", - index: "int", - numSplats: "int", - enableLod: "bool", - showLodPage: "int" - }, - outTypes: { - index: "int" - }, - inputs: { - lodIndices, - index, - numSplats, - enableLod, - showLodPage - }, - statements: ({ inputs, outputs }) => unindentLines(` - int index = ${inputs.index}; - if (${inputs.showLodPage} < 0) { - if (index >= ${inputs.numSplats}) { - return; - } - if (${inputs.enableLod}) { - ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14); - uint splatIndex = texelFetch(${inputs.lodIndices}, lodIndexCoord, 0)[index & 3]; - ${outputs.index} = int(splatIndex); - } else { - ${outputs.index} = index; - } - } else { - int start = ${inputs.showLodPage} << 16; - if (index >= 65536) { - return; - } - ${outputs.index} = start + index; - } - `) - }).outputs.index; -} -function maybeInjectSplatRgba(gsplat, rgba, index, enableLod) { - return dyno$1({ - inTypes: { - gsplat: Gsplat, - rgba: TRgbaArray, - index: "int", - enableLod: "bool" - }, - outTypes: { gsplat: Gsplat }, - inputs: { gsplat, rgba, index, enableLod }, - statements: ({ inputs, outputs }) => unindentLines(` - ${outputs.gsplat} = ${inputs.gsplat}; - if (!${inputs.enableLod} && (${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) { - ${outputs.gsplat}.rgba = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0); - } - `) - }).outputs.gsplat; -} -const emptyLodIndices = (() => { - const texture2 = new THREE__namespace.DataTexture( - new Uint32Array(16384), - 4096, - 1, - THREE__namespace.RGBAIntegerFormat, - THREE__namespace.UnsignedIntType +_SplatPager.emptyUint32x4 = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 4); + const texture2 = new THREE__namespace.DataArrayTexture( + emptyArray, + width, + height, + depth ); + texture2.format = THREE__namespace.RGBAIntegerFormat; + texture2.type = THREE__namespace.UnsignedIntType; texture2.internalFormat = "RGBA32UI"; texture2.needsUpdate = true; return texture2; })(); -new THREE__namespace.BufferGeometry(); -new THREE__namespace.ShaderMaterial(); -const PLY_PROPERTY_TYPES = [ - "char", - "uchar", - "short", - "ushort", - "int", - "uint", - "float", - "double" +_SplatPager.emptyUint32x2 = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 2); + const texture2 = new THREE__namespace.DataArrayTexture( + emptyArray, + width, + height, + depth + ); + texture2.format = THREE__namespace.RGIntegerFormat; + texture2.type = THREE__namespace.UnsignedIntType; + texture2.internalFormat = "RG32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +_SplatPager.emptyIndicesTexture = (() => { + const emptyArray = new Uint32Array(4096 * 4); + const texture2 = new THREE__namespace.DataTexture(emptyArray, 4096, 1); + texture2.format = THREE__namespace.RGBAIntegerFormat; + texture2.type = THREE__namespace.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +_SplatPager.emptyPackedTexture = _SplatPager.emptyUint32x4; +_SplatPager.emptyExtTexture = _SplatPager.emptyUint32x4; +_SplatPager.emptyShTextures = [ + _SplatPager.emptyUint32x2, + _SplatPager.emptyUint32x4, + _SplatPager.emptyUint32x4 ]; -const _PlyReader = class _PlyReader { - // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet - constructor({ fileBytes }) { - this.header = ""; - this.littleEndian = true; - this.elements = {}; - this.comments = []; - this.data = null; - this.numSplats = 0; - this.fileBytes = fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes; +_SplatPager.emptyExtShTextures = [ + _SplatPager.emptyUint32x4, + _SplatPager.emptyUint32x4, + _SplatPager.emptyUint32x4, + // SH3A + _SplatPager.emptyUint32x4 + // SH3B +]; +let SplatPager = _SplatPager; +function isExtResult(data, extSplats) { + return extSplats; +} +function uploadTextureLayer(texture2, layer, dstOffset, data) { + const array = texture2.value.image.data; + array.subarray(dstOffset, dstOffset + data.length).set(data); + texture2.value.addLayerUpdate(layer); + texture2.value.needsUpdate = true; + texture2.value.source.dataReady = true; +} +async function fetchRange({ + url, + requestHeader, + withCredentials, + offset, + bytes +}) { + const request = new Request(url, { + headers: requestHeader ? new Headers(requestHeader) : void 0, + credentials: withCredentials ? "include" : "same-origin" + }); + if (offset !== void 0 && bytes !== void 0) { + request.headers.set("Range", `bytes=${offset}-${offset + bytes - 1}`); } - // Identify and parse the PLY text header (assumed to be <64KB in size). - // this.elements will contain all the elements in the file, typically - // "vertex" contains the Gsplat data. - async parseHeader() { - const bufferStream = new ReadableStream({ - start: (controller) => { - controller.enqueue(this.fileBytes.slice(0, 65536)); - controller.close(); - } + const response = await fetch(request); + if (!response.ok || !response.body) { + throw new Error( + `Failed to fetch "${url}": ${response.status} ${response.statusText}` + ); + } + return new Uint8Array(await response.arrayBuffer()); +} +class EmptySplatSource { + constructor() { + this.fetchDyno = new Dyno({ + inTypes: {}, + outTypes: { gsplat: Gsplat }, + globals: () => [defineGsplat], + statements: ({ outputs }) => unindentLines(` + ${outputs.gsplat}.flags = 0u; + return; + `) + }).outputs.gsplat; + } + prepareFetchSplat() { + } + dispose() { + } + getNumSplats() { + return 0; + } + hasRgbDir() { + return false; + } + getNumSh() { + return 0; + } + setMaxSh(maxSh) { + } + fetchSplat({ index }) { + return this.fetchDyno; + } + forEachSplat() { + } +} +const _SplatMesh = class _SplatMesh extends SplatGenerator { + constructor(options = {}) { + super({ + update: (context) => this.update(context) }); - const decoder = bufferStream.pipeThrough(new TextDecoderStream()).getReader(); - this.header = ""; - const headerTerminator = "end_header\n"; - while (true) { - const { value, done } = await decoder.read(); - if (done) { - throw new Error("Failed to read header"); + this.isInitialized = false; + this.recolor = new THREE__namespace.Color(1, 1, 1); + this.opacity = 1; + this.generatorDirty = true; + this.enableViewToObject = false; + this.enableViewToWorld = false; + this.enableWorldToView = false; + this.skinning = null; + this.edits = null; + this.rgbaDisplaceEdits = null; + this.splatRgba = null; + this.maxSh = 3; + this.showLodPageDyno = new DynoInt({ value: 0 }); + if (options.splats) { + this.splats = options.splats; + this.numSplats = options.splats.getNumSplats(); + } else if (options.paged) { + if (options.extSplats) { + console.warn( + "To set extSplats with the paged option, set SparkRenderer.pagedExtSplats" + ); } - this.header += value; - const endHeader = this.header.indexOf(headerTerminator); - if (endHeader >= 0) { - this.header = this.header.slice(0, endHeader + headerTerminator.length); - break; + const rootUrl = options.url ?? ""; + if (options.paged === true) { + this.paged = new PagedSplats({ rootUrl }); + } else if (options.paged instanceof PagedSplats) { + this.paged = options.paged; + } else if (options.paged instanceof SplatPager) { + this.paged = new PagedSplats({ rootUrl, pager: options.paged }); + } else { + throw new Error("Invalid paged option"); } + this.splats = this.paged; + } else if (options.extSplats) { + this.extSplats = options.extSplats instanceof ExtSplats ? options.extSplats : new ExtSplats(); + options.extSplats = this.extSplats; + this.numSplats = this.extSplats.numSplats; + this.splats = this.extSplats; + } else if (options.packedSplats) { + this.packedSplats = options.packedSplats; + this.packedSplats.splatEncoding = options.splatEncoding ?? { + ...DEFAULT_SPLAT_ENCODING + }; + this.splats = this.packedSplats; + } else { + this.packedSplats = new PackedSplats(); + } + this.editable = options.editable ?? true; + this.raycastable = options.raycastable ?? true; + this.minRaycastOpacity = options.minRaycastOpacity ?? 0.2; + this.onFrame = options.onFrame; + this.context = { + transform: new SplatTransformer(), + viewToWorld: new SplatTransformer(), + worldToView: new SplatTransformer(), + viewToObject: new SplatTransformer(), + covTransform: new CovSplatTransformer(), + covViewToWorld: new CovSplatTransformer(), + covWorldToView: new CovSplatTransformer(), + covViewToObject: new CovSplatTransformer(), + recolor: new DynoVec4({ + value: new THREE__namespace.Vector4().setScalar(Number.NEGATIVE_INFINITY) + }), + time: new DynoFloat({ value: 0 }), + deltaTime: new DynoFloat({ value: 0 }), + numSplats: new DynoInt({ value: 0 }), + splats: new EmptySplatSource(), + enableLod: new DynoBool({ value: false }), + lodIndices: new DynoUsampler2D({ + value: emptyLodIndices, + key: "lodIndices" + }) + }; + this.covSplats = options.covSplats ?? false; + if (this.covSplats && !this.extSplats) { + throw new Error("CovSplats requires ExtSplats"); } - const headerLen = new TextEncoder().encode(this.header).length; - this.data = new DataView(this.fileBytes.buffer, headerLen); - this.elements = {}; - let curElement = null; - this.comments = []; - this.header.trim().split("\n").forEach((line, lineIndex) => { - const trimmedLine = line.trim(); - if (lineIndex === 0) { - if (trimmedLine !== "ply") { - throw new Error("Invalid PLY header"); - } - return; - } - if (trimmedLine.length === 0) { - return; - } - const fields = trimmedLine.split(" "); - switch (fields[0]) { - case "format": - if (fields[1] === "binary_little_endian") { - this.littleEndian = true; - } else if (fields[1] === "binary_big_endian") { - this.littleEndian = false; - } else { - throw new Error(`Unsupported PLY format: ${fields[1]}`); - } - if (fields[2] !== "1.0") { - throw new Error(`Unsupported PLY version: ${fields[2]}`); + this.objectModifiers = options.objectModifier ? [options.objectModifier] : void 0; + this.worldModifiers = options.worldModifier ? [options.worldModifier] : void 0; + if (options.objectModifiers) { + this.objectModifiers = options.objectModifiers; + } + if (options.worldModifiers) { + this.worldModifiers = options.worldModifiers; + } + this.enableLod = options.enableLod; + this.lodScale = options.lodScale ?? 1; + this.behindFoveate = options.behindFoveate; + this.coneFov0 = options.coneFov0; + this.coneFov = options.coneFov; + this.coneFoveate = options.coneFoveate; + this.updateGenerator(); + if (options.url || options.fileBytes || options.stream || options.constructSplats || options.packedSplats && !options.packedSplats.isInitialized || this.extSplats && !this.extSplats.isInitialized) { + this.initialized = this.asyncInitialize(options).then(async () => { + this.updateGenerator(); + this.isInitialized = true; + if (options.onLoad) { + const maybePromise = options.onLoad(this); + if (maybePromise instanceof Promise) { + await maybePromise; } - break; - case "end_header": - break; - case "comment": - this.comments.push(trimmedLine.slice("comment ".length)); - break; - case "element": { - const name = fields[1]; - curElement = { - name, - count: Number.parseInt(fields[2]), - properties: {} - }; - this.elements[name] = curElement; - break; } - case "property": - if (curElement == null) { - throw new Error("Property must be inside an element"); - } - if (fields[1] === "list") { - curElement.properties[fields[4]] = { - isList: true, - type: fields[3], - countType: fields[2] - }; - } else { - curElement.properties[fields[2]] = { - isList: false, - type: fields[1] - }; - } - break; + return this; + }); + } else { + this.isInitialized = true; + this.initialized = Promise.resolve(this); + if (options.onLoad) { + const maybePromise = options.onLoad(this); + if (maybePromise instanceof Promise) { + this.initialized = maybePromise.then(() => this); + } } - }); - if (this.elements.vertex) { - this.numSplats = this.elements.vertex.count; } } - parseData(elementCallback) { - let offset = 0; - const data = this.data; - if (data == null) { - throw new Error("No data to parse"); - } - for (const elementName in this.elements) { - const element = this.elements[elementName]; - const { count, properties } = element; - const item = createEmptyItem(properties); - const parseFn = createParseFn(properties, this.littleEndian); - const callback = elementCallback(element) ?? (() => { - }); - for (let index = 0; index < count; index++) { - offset = parseFn(data, offset, item); - callback(index, item); + async asyncInitialize(options) { + const { + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + maxSplats, + constructSplats, + onProgress, + splatEncoding, + lod, + nonLod, + lodAbove + } = options; + if (this.packedSplats) { + if (url || fileBytes || stream || constructSplats) { + const packedSplatsOptions = { + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + maxSplats, + construct: constructSplats, + onProgress, + splatEncoding, + lod, + nonLod, + lodAbove + }; + this.packedSplats.reinitialize(packedSplatsOptions); + } + await this.packedSplats.initialized; + this.splats = this.packedSplats; + } else if (this.extSplats) { + if (url || fileBytes || stream || constructSplats) { + const construct = constructSplats; + this.extSplats.reinitialize({ + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + maxSplats, + construct, + onProgress, + lod, + nonLod, + lodAbove + }); + await this.extSplats.initialized; + this.splats = this.extSplats; } } + if (this.splats) { + this.numSplats = this.splats.getNumSplats(); + this.updateGenerator(); + } } - // Parse all the Gsplat data in the PLY file in go, invoking the given - // callbacks for each Gsplat. - parseSplats(splatCallback, shCallback) { - if (this.elements.vertex == null) { - throw new Error("No vertex element found"); + // Creates a new Gsplat with the provided parameters (all values in "float" space, + // i.e. 0-1 for opacity and color) and adds it to the end of the packedSplats, + // increasing numSplats by 1. If necessary, reallocates the buffer with an exponential + // doubling strategy to fit the new data, so it's fairly efficient to just + // pushSplat(...) each Gsplat you want to create in a loop. + pushSplat(center, scales, quaternion, opacity, color) { + if (this.packedSplats) { + this.packedSplats.pushSplat(center, scales, quaternion, opacity, color); + } else if (this.extSplats) { + this.extSplats.pushSplat(center, scales, quaternion, opacity, color); } - let isSuperSplat = false; - const ssChunks = []; - let numSh = 0; - let sh1Props = []; - let sh2Props = []; - let sh3Props = []; - let sh1 = void 0; - let sh2 = void 0; - let sh3 = void 0; - function prepareSh() { - const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh]; - sh1Props = new Array(3).fill(null).flatMap((_, k) => [0, 1, 2].map((_2, d) => k + d * num_f_rest / 3)); - sh2Props = new Array(5).fill(null).flatMap( - (_, k) => [0, 1, 2].map((_2, d) => 3 + k + d * num_f_rest / 3) - ); - sh3Props = new Array(7).fill(null).flatMap( - (_, k) => [0, 1, 2].map((_2, d) => 8 + k + d * num_f_rest / 3) + } + // This method iterates over all Gsplats in this instance's packedSplats, + // invoking the provided callback with index: number in 0..=(this.numSplats-1) and + // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, + // opacity: number (0..1), and color: THREE.Color (rgb values in 0..1). + // Note that the objects passed in as center etc. are the same for every callback + // invocation: these objects are reused for efficiency. Changing these values has + // no effect as they are decoded/unpacked copies of the underlying data. To update + // the packedSplats, call .packedSplats.setSplat(index, center, scales, + // quaternion, opacity, color). + forEachSplat(callback) { + var _a2; + (_a2 = this.splats) == null ? void 0 : _a2.forEachSplat(callback); + } + // Call this when you are finished with the SplatMesh and want to free + // any buffers it holds (via packedSplats). + dispose() { + if (this.splats && this.splats !== this.packedSplats && this.splats !== this.extSplats) { + this.splats.dispose(); + this.splats = void 0; + } + if (this.packedSplats) { + this.packedSplats.dispose(); + this.packedSplats = void 0; + } + if (this.extSplats) { + this.extSplats.dispose(); + this.extSplats = void 0; + } + } + // Returns axis-aligned bounding box of the SplatMesh. If centers_only is true, + // only the centers of the splats are used to compute the bounding box. + // IMPORTANT: This should only be called after the SplatMesh is initialized. + getBoundingBox(centers_only = true) { + var _a2; + if (!this.initialized) { + throw new Error( + "Cannot get bounding box before SplatMesh is initialized" ); - sh1 = numSh >= 1 ? new Float32Array(3 * 3) : void 0; - sh2 = numSh >= 2 ? new Float32Array(5 * 3) : void 0; - sh3 = numSh >= 3 ? new Float32Array(7 * 3) : void 0; } - function ssShCallback(index, item) { - if (!sh1) { - throw new Error("Missing sh1"); - } - const sh = item.f_rest; - for (let i = 0; i < sh1Props.length; i++) { - sh1[i] = sh[sh1Props[i]] * 8 / 255 - 4; - } - if (sh2) { - for (let i = 0; i < sh2Props.length; i++) { - sh2[i] = sh[sh2Props[i]] * 8 / 255 - 4; - } - } - if (sh3) { - for (let i = 0; i < sh3Props.length; i++) { - sh3[i] = sh[sh3Props[i]] * 8 / 255 - 4; + const minVec = new THREE__namespace.Vector3( + Number.POSITIVE_INFINITY, + Number.POSITIVE_INFINITY, + Number.POSITIVE_INFINITY + ); + const maxVec = new THREE__namespace.Vector3( + Number.NEGATIVE_INFINITY, + Number.NEGATIVE_INFINITY, + Number.NEGATIVE_INFINITY + ); + const corners = new THREE__namespace.Vector3(); + const signs = [-1, 1]; + function callback(_index, center, scales, quaternion, _opacity, _color) { + if (centers_only) { + minVec.min(center); + maxVec.max(center); + } else { + for (const x of signs) { + for (const y of signs) { + for (const z of signs) { + corners.set(x * scales.x, y * scales.y, z * scales.z); + corners.applyQuaternion(quaternion); + corners.add(center); + minVec.min(corners); + maxVec.max(corners); + } + } } } - shCallback == null ? void 0 : shCallback(index, sh1, sh2, sh3); } - function initSuperSplat(element) { - const { - min_x, - min_y, - min_z, - max_x, - max_y, - max_z, - min_scale_x, - min_scale_y, - min_scale_z, - max_scale_x, - max_scale_y, - max_scale_z - } = element.properties; - if (!min_x || !min_y || !min_z || !max_x || !max_y || !max_z || !min_scale_x || !min_scale_y || !min_scale_z || !max_scale_x || !max_scale_y || !max_scale_z) { - throw new Error("Missing PLY chunk properties"); - } - isSuperSplat = true; - return (index, item) => { - const { - min_x: min_x2, - min_y: min_y2, - min_z: min_z2, - max_x: max_x2, - max_y: max_y2, - max_z: max_z2, - min_scale_x: min_scale_x2, - min_scale_y: min_scale_y2, - min_scale_z: min_scale_z2, - max_scale_x: max_scale_x2, - max_scale_y: max_scale_y2, - max_scale_z: max_scale_z2, - min_r, - min_g, - min_b, - max_r, - max_g, - max_b - } = item; - ssChunks.push({ - min_x: min_x2, - min_y: min_y2, - min_z: min_z2, - max_x: max_x2, - max_y: max_y2, - max_z: max_z2, - min_scale_x: min_scale_x2, - min_scale_y: min_scale_y2, - min_scale_z: min_scale_z2, - max_scale_x: max_scale_x2, - max_scale_y: max_scale_y2, - max_scale_z: max_scale_z2, - min_r, - min_g, - min_b, - max_r, - max_g, - max_b - }); - }; + (_a2 = this.splats) == null ? void 0 : _a2.forEachSplat(callback); + const box = new THREE__namespace.Box3(minVec, maxVec); + return box; + } + set objectModifier(modifier) { + if (modifier) { + this.objectModifiers = [modifier]; + } else { + this.objectModifiers = void 0; } - function decodeSuperSplat(element) { - if (shCallback && element.name === "sh") { - numSh = getNumSh(element.properties); - prepareSh(); - return ssShCallback; - } - if (element.name !== "vertex") { - return null; - } - const { packed_position, packed_rotation, packed_scale, packed_color } = element.properties; - if (!packed_position || !packed_rotation || !packed_scale || !packed_color) { - throw new Error( - "Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color" - ); - } - const SQRT2 = Math.sqrt(2); - return (index, item) => { - const chunk = ssChunks[index >>> 8]; - if (chunk == null) { - throw new Error("Missing PLY chunk"); - } - const { - min_x, - min_y, - min_z, - max_x, - max_y, - max_z, - min_scale_x, - min_scale_y, - min_scale_z, - max_scale_x, - max_scale_y, - max_scale_z, - min_r, - min_g, - min_b, - max_r, - max_g, - max_b - } = chunk; - const { packed_position: packed_position2, packed_rotation: packed_rotation2, packed_scale: packed_scale2, packed_color: packed_color2 } = item; - const x = (packed_position2 >>> 21 & 2047) / 2047 * (max_x - min_x) + min_x; - const y = (packed_position2 >>> 11 & 1023) / 1023 * (max_y - min_y) + min_y; - const z = (packed_position2 & 2047) / 2047 * (max_z - min_z) + min_z; - const r0 = ((packed_rotation2 >>> 20 & 1023) / 1023 - 0.5) * SQRT2; - const r1 = ((packed_rotation2 >>> 10 & 1023) / 1023 - 0.5) * SQRT2; - const r2 = ((packed_rotation2 & 1023) / 1023 - 0.5) * SQRT2; - const rr = Math.sqrt(Math.max(0, 1 - r0 * r0 - r1 * r1 - r2 * r2)); - const rOrder = packed_rotation2 >>> 30; - const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1; - const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2; - const quatZ = rOrder <= 2 ? r2 : rr; - const quatW = rOrder === 0 ? rr : r0; - const scaleX = Math.exp( - (packed_scale2 >>> 21 & 2047) / 2047 * (max_scale_x - min_scale_x) + min_scale_x - ); - const scaleY = Math.exp( - (packed_scale2 >>> 11 & 1023) / 1023 * (max_scale_y - min_scale_y) + min_scale_y - ); - const scaleZ = Math.exp( - (packed_scale2 & 2047) / 2047 * (max_scale_z - min_scale_z) + min_scale_z - ); - const r = (packed_color2 >>> 24 & 255) / 255 * ((max_r ?? 1) - (min_r ?? 0)) + (min_r ?? 0); - const g = (packed_color2 >>> 16 & 255) / 255 * ((max_g ?? 1) - (min_g ?? 0)) + (min_g ?? 0); - const b = (packed_color2 >>> 8 & 255) / 255 * ((max_b ?? 1) - (min_b ?? 0)) + (min_b ?? 0); - const opacity = (packed_color2 & 255) / 255; - splatCallback( - index, - x, - y, - z, - scaleX, - scaleY, - scaleZ, - quatX, - quatY, - quatZ, - quatW, - opacity, - r, - g, - b - ); - }; + } + set worldModifier(modifier) { + if (modifier) { + this.worldModifiers = [modifier]; + } else { + this.worldModifiers = void 0; } - const elementCallback = (element) => { - if (element.name === "chunk") { - return initSuperSplat(element); - } - if (isSuperSplat) { - return decodeSuperSplat(element); - } - if (element.name !== "vertex") { - return null; - } - const { - x, - y, - z, - scale_0, - scale_1, - scale_2, - rot_0, - rot_1, - rot_2, - rot_3, - opacity, - f_dc_0, - f_dc_1, - f_dc_2, - red, - green, - blue, - alpha - } = element.properties; - if (!x || !y || !z) { - throw new Error("Missing PLY properties: x, y, z"); + } + constructGenerator(context) { + if (this.covSplats) { + return this.constructCovGenerator(context); + } + const { transform, viewToObject, recolor } = context; + const generator = dynoBlock( + { index: "int" }, + { gsplat: Gsplat }, + ({ index }) => { + if (!index) { + throw new Error("index is undefined"); + } + index = maybeLookupIndex( + context.lodIndices, + index, + context.numSplats, + context.enableLod, + this.showLodPageDyno + ); + context.splats.setMaxSh(this.maxSh); + context.splats.prepareFetchSplat(); + let gsplat = context.splats.fetchSplat({ + index, + viewOrigin: viewToObject.translate + }); + if (this.splatRgba) { + gsplat = maybeInjectSplatRgba( + gsplat, + this.splatRgba.dyno, + index, + context.enableLod + ); + } + if (this.skinning) { + gsplat = this.skinning.modify(gsplat); + } + if (this.objectModifiers) { + for (const modifier of this.objectModifiers) { + gsplat = modifier.apply({ gsplat }).gsplat; + } + } + gsplat = transform.applyGsplat(gsplat); + const recolorRgba = mul(recolor, splitGsplat(gsplat).outputs.rgba); + gsplat = combineGsplat({ gsplat, rgba: recolorRgba }); + if (this.rgbaDisplaceEdits) { + gsplat = this.rgbaDisplaceEdits.modify(gsplat); + } + if (this.worldModifiers) { + for (const modifier of this.worldModifiers) { + gsplat = modifier.apply({ gsplat }).gsplat; + } + } + return { gsplat }; } - const hasScales = scale_0 && scale_1 && scale_2; - const hasRots = rot_0 && rot_1 && rot_2 && rot_3; - const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1; - const redDiv = red != null ? FIELD_SCALE[red.type] : 1; - const greenDiv = green != null ? FIELD_SCALE[green.type] : 1; - const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1; - numSh = getNumSh(element.properties); - prepareSh(); - return (index, item) => { - const scaleX = hasScales ? Math.exp(item.scale_0) : _PlyReader.defaultPointScale; - const scaleY = hasScales ? Math.exp(item.scale_1) : _PlyReader.defaultPointScale; - const scaleZ = hasScales ? Math.exp(item.scale_2) : _PlyReader.defaultPointScale; - const quatX = hasRots ? item.rot_1 : 0; - const quatY = hasRots ? item.rot_2 : 0; - const quatZ = hasRots ? item.rot_3 : 0; - const quatW = hasRots ? item.rot_0 : 1; - const op = opacity != null ? 1 / (1 + Math.exp(-item.opacity)) : alpha != null ? item.alpha / alphaDiv : 1; - const r = f_dc_0 != null ? item.f_dc_0 * SH_C0$1 + 0.5 : red != null ? item.red / redDiv : 1; - const g = f_dc_1 != null ? item.f_dc_1 * SH_C0$1 + 0.5 : green != null ? item.green / greenDiv : 1; - const b = f_dc_2 != null ? item.f_dc_2 * SH_C0$1 + 0.5 : blue != null ? item.blue / blueDiv : 1; - splatCallback( + ); + this.generator = generator; + this.covGenerator = void 0; + } + constructCovGenerator(context) { + const { covTransform, covViewToObject, recolor } = context; + const generator = dynoBlock( + { index: "int" }, + { covsplat: CovSplat }, + ({ index }) => { + if (!index) { + throw new Error("index is undefined"); + } + index = maybeLookupIndex( + context.lodIndices, index, - item.x, - item.y, - item.z, - scaleX, - scaleY, - scaleZ, - quatX, - quatY, - quatZ, - quatW, - op, - r, - g, - b + context.numSplats, + context.enableLod, + this.showLodPageDyno ); - if (shCallback && sh1) { - const sh = item.f_rest; - if (sh1) { - for (let i = 0; i < sh1Props.length; i++) { - sh1[i] = sh[sh1Props[i]]; - } + context.splats.prepareFetchSplat(); + let gsplat = context.splats.fetchSplat({ + index, + viewOrigin: covViewToObject.offset + }); + if (this.splatRgba) { + gsplat = maybeInjectSplatRgba( + gsplat, + this.splatRgba.dyno, + index, + context.enableLod + ); + } + if (this.objectModifiers) { + for (const modifier of this.objectModifiers) { + gsplat = modifier.apply({ gsplat }).gsplat; } - if (sh2) { - for (let i = 0; i < sh2Props.length; i++) { - sh2[i] = sh[sh2Props[i]]; - } + } + let covsplat = gsplatToCovSplat(gsplat); + if (this.skinning) { + covsplat = this.skinning.modifyCov(covsplat); + } + if (this.covObjectModifiers) { + for (const modifier of this.covObjectModifiers) { + covsplat = modifier.apply({ covsplat }).covsplat; } - if (sh3) { - for (let i = 0; i < sh3Props.length; i++) { - sh3[i] = sh[sh3Props[i]]; - } + } + covsplat = covTransform.applyCovSplat(covsplat); + const recolorRgba = mul(recolor, splitCovSplat(covsplat).outputs.rgba); + covsplat = combineCovSplat({ covsplat, rgba: recolorRgba }); + if (this.rgbaDisplaceEdits) { + covsplat = this.rgbaDisplaceEdits.modifyCov(covsplat); + } + if (this.covWorldModifiers) { + for (const modifier of this.covWorldModifiers) { + covsplat = modifier.apply({ covsplat }).covsplat; } - shCallback(index, sh1, sh2, sh3); } - }; - }; - this.parseData(elementCallback); + return { covsplat }; + } + ); + this.generator = void 0; + this.covGenerator = generator; } - // Inject RGBA values into original PLY file, which can be used to modify - // the color/opacity of the Gsplats and write out the modified PLY file. - injectRgba(rgba) { - let offset = 0; - const data = this.data; - if (data == null) { - throw new Error("No parsed data"); + // Call this whenever something changes in the Gsplat processing pipeline, + // for example changing maxSh or updating objectModifier or worldModifier. + // Compiled generators are cached for efficiency and re-use when the same + // pipeline structure emerges after successive changes. + updateGenerator() { + this.generatorDirty = true; + } + // This is called automatically by SparkRenderer and you should not have to + // call it. It updates parameters for the generated pipeline and calls + // updateGenerator() if the pipeline needs to change. + update({ + renderer, + time, + deltaTime, + viewToWorld, + camera, + renderSize, + globalEdits, + lodIndices + }) { + var _a2, _b2, _c; + this.context.time.value = time; + this.context.deltaTime.value = deltaTime; + _SplatMesh.dynoTime.value = time; + this.showLodPageDyno.value = this.showLodPage ?? -1; + const splats = this.splats ?? this.packedSplats ?? this.extSplats; + if (splats) { + this.context.splats = splats; } - if (rgba.length !== this.numSplats * 4) { - throw new Error("Invalid RGBA array length"); + this.numSplats = this.context.splats.getNumSplats(); + let updated = false; + const lodSplats = ((_a2 = this.packedSplats) == null ? void 0 : _a2.lodSplats) ?? ((_b2 = this.extSplats) == null ? void 0 : _b2.lodSplats); + this.context.enableLod.value = lodSplats != null && lodIndices != null; + if (this.enableLod === false) { + this.context.enableLod.value = false; } - for (const elementName in this.elements) { - const element = this.elements[elementName]; - const { count, properties } = element; - const parsers = []; - let rgbaOffset = 0; - const isVertex = elementName === "vertex"; - if (isVertex) { - for (const name of ["opacity", "f_dc_0", "f_dc_1", "f_dc_2"]) { - if (!properties[name] || properties[name].type !== "float") { - throw new Error(`Can't injectRgba due to property: ${name}`); - } - } + this.context.lodIndices.value = (lodIndices == null ? void 0 : lodIndices.texture) ?? emptyLodIndices; + if (this.context.enableLod.value && lodSplats) { + this.context.splats = lodSplats; + this.numSplats = (lodIndices == null ? void 0 : lodIndices.numSplats) ?? 0; + } + this.context.numSplats.value = this.numSplats; + if (this.context.splats !== this.lastSplats) { + this.lastSplats = this.context.splats; + this.generatorDirty = true; + } + if (!this.covSplats) { + if (this.context.transform.update(this)) { + updated = true; + } + if (this.context.viewToWorld.updateFromMatrix(viewToWorld) && this.enableViewToWorld) { + updated = true; + } + const worldToView = viewToWorld.clone().invert(); + if (this.context.worldToView.updateFromMatrix(worldToView) && this.enableWorldToView) { + updated = true; + } + const objectToWorld = new THREE__namespace.Matrix4().compose( + this.context.transform.translate.value, + this.context.transform.rotate.value, + new THREE__namespace.Vector3().setScalar(this.context.transform.scale.value) + ); + const worldToObject = objectToWorld.invert(); + const viewToObjectMatrix = worldToObject.multiply(viewToWorld); + if (this.context.viewToObject.updateFromMatrix(viewToObjectMatrix) && (this.enableViewToObject || this.context.splats.hasRgbDir())) { + updated = true; + } + } else { + if (this.context.covTransform.update(this)) { + updated = true; + } + if (this.context.covViewToWorld.updateFromMatrix(viewToWorld) && this.enableViewToWorld) { + updated = true; + } + const worldToView = viewToWorld.clone().invert(); + if (this.context.covWorldToView.updateFromMatrix(worldToView) && this.enableWorldToView) { + updated = true; } - for (const [propertyName, property] of Object.entries(properties)) { - if (!property.isList) { - if (isVertex) { - if (propertyName === "f_dc_0" || propertyName === "f_dc_1" || propertyName === "f_dc_2") { - const component = Number.parseInt( - propertyName.slice("f_dc_".length) - ); - parsers.push(() => { - const value = (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0$1; - SET_FIELD[property.type]( - data, - offset, - this.littleEndian, - value - ); - }); - } else if (propertyName === "opacity") { - parsers.push(() => { - const value = Math.max( - -100, - Math.min( - 100, - -Math.log(1 / (rgba[rgbaOffset + 3] / 255) - 1) - ) - ); - SET_FIELD[property.type]( - data, - offset, - this.littleEndian, - value - ); - }); - } - } - parsers.push(() => { - offset += FIELD_BYTES[property.type]; - }); - } else { - parsers.push(() => { - const length2 = PARSE_FIELD[property.countType]( - data, - offset, - this.littleEndian - ); - offset += FIELD_BYTES[property.countType]; - offset += length2 * FIELD_BYTES[property.type]; - }); - } + const worldToObject = this.matrixWorld.clone().invert(); + const viewToObjectMatrix = worldToObject.multiply(viewToWorld); + if (this.context.covViewToObject.updateFromMatrix(viewToObjectMatrix) && (this.enableViewToObject || this.context.splats.hasRgbDir())) { + updated = true; } - for (let index = 0; index < count; index++) { - for (const parser of parsers) { - parser(); + } + const newRecolor = new THREE__namespace.Vector4( + this.recolor.r, + this.recolor.g, + this.recolor.b, + this.opacity + ); + if (!newRecolor.equals(this.context.recolor.value)) { + this.context.recolor.value.copy(newRecolor); + updated = true; + } + const edits = this.editable ? (this.edits ?? []).concat(globalEdits) : []; + if (this.editable && !this.edits) { + this.traverseVisible((node) => { + if (node instanceof SplatEdit) { + edits.push(node); } - if (isVertex) { - rgbaOffset += 4; + }); + } + edits.sort((a, b) => a.ordering - b.ordering); + const editsSdfs = edits.map((edit) => { + if (edit.sdfs != null) { + return { edit, sdfs: edit.sdfs }; + } + const sdfs = []; + edit.traverseVisible((node) => { + if (node instanceof SplatEditSdf) { + sdfs.push(node); } + }); + return { edit, sdfs }; + }); + if (editsSdfs.length > 0 && !this.rgbaDisplaceEdits) { + const edits2 = editsSdfs.length; + const sdfs = editsSdfs.reduce( + (total, edit) => total + edit.sdfs.length, + 0 + ); + this.rgbaDisplaceEdits = new SplatEdits({ + maxEdits: edits2, + maxSdfs: sdfs + }); + this.generatorDirty = true; + } + if (this.rgbaDisplaceEdits) { + const editResult = this.rgbaDisplaceEdits.update(editsSdfs); + updated || (updated = editResult.updated); + if (editResult.dynoUpdated) { + this.generatorDirty = true; } } + if (this.generatorDirty) { + this.constructGenerator(this.context); + this.generatorDirty = false; + updated = true; + } + if (updated) { + this.updateVersion(); + } + (_c = this.onFrame) == null ? void 0 : _c.call(this, { mesh: this, time, deltaTime }); } -}; -_PlyReader.defaultPointScale = 1e-3; -let PlyReader = _PlyReader; -const SH_C0$1 = 0.28209479177387814; -const PARSE_FIELD = { - char: (data, offset, littleEndian) => { - return data.getInt8(offset); - }, - uchar: (data, offset, littleEndian) => { - return data.getUint8(offset); - }, - short: (data, offset, littleEndian) => { - return data.getInt16(offset, littleEndian); - }, - ushort: (data, offset, littleEndian) => { - return data.getUint16(offset, littleEndian); - }, - int: (data, offset, littleEndian) => { - return data.getInt32(offset, littleEndian); - }, - uint: (data, offset, littleEndian) => { - return data.getUint32(offset, littleEndian); - }, - float: (data, offset, littleEndian) => { - return data.getFloat32(offset, littleEndian); - }, - double: (data, offset, littleEndian) => { - return data.getFloat64(offset, littleEndian); - } -}; -const SET_FIELD = { - char: (data, offset, littleEndian, value) => { - data.setInt8(offset, value); - }, - uchar: (data, offset, littleEndian, value) => { - data.setUint8(offset, value); - }, - short: (data, offset, littleEndian, value) => { - data.setInt16(offset, value, littleEndian); - }, - ushort: (data, offset, littleEndian, value) => { - data.setUint16(offset, value, littleEndian); - }, - int: (data, offset, littleEndian, value) => { - data.setInt32(offset, value, littleEndian); - }, - uint: (data, offset, littleEndian, value) => { - data.setUint32(offset, value, littleEndian); - }, - float: (data, offset, littleEndian, value) => { - data.setFloat32(offset, value, littleEndian); - }, - double: (data, offset, littleEndian, value) => { - data.setFloat64(offset, value, littleEndian); - } -}; -const FIELD_BYTES = { - char: 1, - uchar: 1, - short: 2, - ushort: 2, - int: 4, - uint: 4, - float: 4, - double: 8 -}; -const FIELD_SCALE = { - char: 127, - uchar: 255, - short: 32767, - ushort: 65535, - int: 2147483647, - uint: 4294967295, - float: 1, - double: 1 -}; -const NUM_F_REST_TO_NUM_SH = { - 0: 0, - 9: 1, - 24: 2, - 45: 3 -}; -const NUM_SH_TO_NUM_F_REST = { - 0: 0, - 1: 9, - 2: 24, - 3: 45 -}; -const F_REST_REGEX = /^f_rest_([0-9]{1,2})$/; -function createEmptyItem(properties) { - const item = {}; - for (const [propertyName, property] of Object.entries(properties)) { - if (F_REST_REGEX.test(propertyName)) { - item.f_rest = new Array(getNumSh(properties)); + // This method conforms to the standard THREE.Raycaster API, performing object-ray + // intersections using this method to populate the provided intersects[] array + // with each intersection point. + raycast(raycaster, intersects) { + var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w; + if (!isInitialized() || !this.raycastable || !this.packedSplats && !this.extSplats && !this.paged) { + return; + } + const paged = this.paged != null; + const ext = paged ? ((_b2 = (_a2 = this.paged) == null ? void 0 : _a2.pager) == null ? void 0 : _b2.extSplats) ?? false : this.extSplats != null; + const { near, far, ray } = raycaster; + const worldToMesh = this.matrixWorld.clone().invert(); + const worldToMeshRot = new THREE__namespace.Matrix3().setFromMatrix4(worldToMesh); + const origin = ray.origin.clone().applyMatrix4(worldToMesh); + const direction = ray.direction.clone().applyMatrix3(worldToMeshRot); + const buffer = get_raycast_buffer(); + const bufferSize = buffer.length / 4; + let intersections = 0; + const numSplats = ((_c = this.raycastIndices) == null ? void 0 : _c.numSplats) ?? (paged ? (_d = this.paged) == null ? void 0 : _d.numSplats : this.context.numSplats.value) ?? 0; + const indices = ((_e = this.raycastIndices) == null ? void 0 : _e.indices) ?? (paged ? (_f = this.paged) == null ? void 0 : _f.dynoIndices.value.image.data : this.context.enableLod.value ? this.context.lodIndices.value.image.data : null) ?? null; + if (!ext) { + const packed = paged ? (_h = (_g = this.paged) == null ? void 0 : _g.pager) == null ? void 0 : _h.packedTexture.value.image.data : indices ? (_j = (_i = this.packedSplats) == null ? void 0 : _i.lodSplats) == null ? void 0 : _j.packedArray : (_k = this.packedSplats) == null ? void 0 : _k.packedArray; + if (!packed) { + return; + } + const splatEncoding = paged ? (_l = this.paged) == null ? void 0 : _l.splatEncoding : (_m = this.packedSplats) == null ? void 0 : _m.splatEncoding; + for (let base = 0; base < numSplats; base += bufferSize) { + const count = Math.min(bufferSize, numSplats - base); + if (!indices) { + buffer.set(packed.subarray(base * 4, (base + count) * 4)); + } else { + for (let i = 0; i < count; ++i) { + const index = indices[base + i]; + const i4 = i * 4; + const index4 = index * 4; + buffer[i4] = packed[index4]; + buffer[i4 + 1] = packed[index4 + 1]; + buffer[i4 + 2] = packed[index4 + 2]; + buffer[i4 + 3] = packed[index4 + 3]; + } + } + const newIntersections = raycast_packed_buffer( + origin.x, + origin.y, + origin.z, + direction.x, + direction.y, + direction.z, + this.minRaycastOpacity, + near, + far, + count, + (splatEncoding == null ? void 0 : splatEncoding.lnScaleMin) ?? LN_SCALE_MIN, + (splatEncoding == null ? void 0 : splatEncoding.lnScaleMax) ?? LN_SCALE_MAX, + (splatEncoding == null ? void 0 : splatEncoding.lodOpacity) ?? false + ); + intersections = this.appendRaycastBuffer( + intersections, + newIntersections + ); + } } else { - item[propertyName] = property.isList ? [] : 0; - } - } - return item; -} -function createParseFn(properties, littleEndian) { - if (safeToCompile(properties)) { - return createCompiledParserFn(properties, littleEndian); - } - return createDynamicParserFn(properties, littleEndian); -} -const UNSAFE_EVAL_ALLOWED = (() => { - try { - new Function("return 42;"); - } catch (e) { - return false; - } - return true; -})(); -const PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/; -function safeToCompile(properties) { - if (!UNSAFE_EVAL_ALLOWED) { - return false; - } - for (const [propertyName, property] of Object.entries(properties)) { - if (!PROPERTY_NAME_REGEX.test(propertyName)) { - return false; + const buffer2 = get_raycast_buffer2(); + const ext1 = paged ? (_o = (_n = this.paged) == null ? void 0 : _n.pager) == null ? void 0 : _o.packedTexture.value.image.data : indices ? (_q = (_p = this.extSplats) == null ? void 0 : _p.lodSplats) == null ? void 0 : _q.extArrays[0] : (_r = this.extSplats) == null ? void 0 : _r.extArrays[0]; + const ext2 = paged ? (_t = (_s = this.paged) == null ? void 0 : _s.pager) == null ? void 0 : _t.extTexture.value.image.data : indices ? (_v = (_u = this.extSplats) == null ? void 0 : _u.lodSplats) == null ? void 0 : _v.extArrays[1] : (_w = this.extSplats) == null ? void 0 : _w.extArrays[1]; + if (!ext1 || !ext2) { + return; + } + for (let base = 0; base < numSplats; base += bufferSize) { + const count = Math.min(bufferSize, numSplats - base); + if (!indices) { + buffer.set(ext1.subarray(base * 4, (base + count) * 4)); + buffer2.set(ext2.subarray(base * 4, (base + count) * 4)); + } else { + for (let i = 0; i < count; ++i) { + const index = indices[base + i]; + const i4 = i * 4; + const index4 = index * 4; + buffer[i4] = ext1[index4]; + buffer[i4 + 1] = ext1[index4 + 1]; + buffer[i4 + 2] = ext1[index4 + 2]; + buffer[i4 + 3] = ext1[index4 + 3]; + buffer2[i4] = ext2[index4]; + buffer2[i4 + 1] = ext2[index4 + 1]; + buffer2[i4 + 2] = ext2[index4 + 2]; + buffer2[i4 + 3] = ext2[index4 + 3]; + } + } + const newIntersections = raycast_ext_buffers( + origin.x, + origin.y, + origin.z, + direction.x, + direction.y, + direction.z, + this.minRaycastOpacity, + near, + far, + count + ); + intersections = this.appendRaycastBuffer( + intersections, + newIntersections + ); + } } - if (property.isList && !PLY_PROPERTY_TYPES.includes(property.countType)) { - return false; + for (const distance2 of _SplatMesh.raycastBuffer.subarray(0, intersections)) { + const point = ray.direction.clone().multiplyScalar(distance2).add(ray.origin); + intersects.push({ + distance: distance2, + point, + object: this + }); } - if (!PLY_PROPERTY_TYPES.includes(property.type)) { - return false; + } + appendRaycastBuffer(count, additional) { + const total = count + additional.length; + let capacity = _SplatMesh.raycastBuffer.length; + if (total > capacity) { + while (capacity < total) { + capacity *= 2; + } + const newBuffer = new Float32Array(capacity); + newBuffer.set(_SplatMesh.raycastBuffer.subarray(0, count)); + _SplatMesh.raycastBuffer = newBuffer; } + _SplatMesh.raycastBuffer.set(additional, count); + return count + additional.length; } - return true; -} -function createCompiledParserFn(properties, littleEndian) { - const parserSrc = ["let list;"]; - for (const [propertyName, property] of Object.entries(properties)) { - const fRestMatch = propertyName.match(F_REST_REGEX); - if (fRestMatch) { - const fRestIndex = +fRestMatch[1]; - parserSrc.push( - /*js*/ - ` - item.f_rest[${fRestIndex}] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian}); - offset += ${FIELD_BYTES[property.type]}; - ` - ); - } else if (!property.isList) { - parserSrc.push( - /*js*/ - ` - item['${propertyName}'] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian}); - offset += ${FIELD_BYTES[property.type]}; - ` - ); - } else { - parserSrc.push( - /*js*/ - ` - list = item['${propertyName}']; - list.length = PARSE_FIELD['${property.countType}'](data, offset, ${littleEndian}); - offset += ${FIELD_BYTES[property.countType]}; - for (let i = 0; i < list.length; i++) { - list[i] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian}); - offset += ${FIELD_BYTES[property.type]}; - } - ` - ); + async createLodSplats({ + rgbaArray, + quality + } = {}) { + if (this.packedSplats) { + await this.packedSplats.createLodSplats({ quality, rgbaArray }); + } else if (this.extSplats) { + await this.extSplats.createLodSplats({ quality, rgbaArray }); } } - parserSrc.push("return offset;"); - const fn = new Function( - "data", - "offset", - "item", - "PARSE_FIELD", - parserSrc.join("\n") - ); - return (data, offset, item) => fn(data, offset, item, PARSE_FIELD); -} -function createDynamicParserFn(properties, littleEndian) { - const parsers = []; - for (const [propertyName, property] of Object.entries(properties)) { - const fRestMatch = propertyName.match(F_REST_REGEX); - if (fRestMatch) { - const fRestIndex = +fRestMatch[1]; - parsers.push( - (data, offset, item) => { - item.f_rest[fRestIndex] = PARSE_FIELD[property.type]( - data, - offset, - littleEndian - ); - return offset + FIELD_BYTES[property.type]; - } - ); - } else if (!property.isList) { - parsers.push( - (data, offset, item) => { - item[propertyName] = PARSE_FIELD[property.type]( - data, - offset, - littleEndian - ); - return offset + FIELD_BYTES[property.type]; - } - ); - } else { - parsers.push( - (data, offset, item) => { - const list = item[propertyName]; - list.length = PARSE_FIELD[property.countType]( - data, - offset, - littleEndian - ); - let currentOffset = offset + FIELD_BYTES[property.countType]; - for (let i = 0; i < list.length; i++) { - list[i] = PARSE_FIELD[property.type]( - data, - currentOffset, - littleEndian - ); - currentOffset += FIELD_BYTES[property.type]; +}; +_SplatMesh.dynoTime = new DynoFloat({ value: 0 }); +_SplatMesh.raycastBuffer = new Float32Array(1024); +let SplatMesh = _SplatMesh; +function maybeLookupIndex(lodIndices, index, numSplats, enableLod, showLodPage) { + return dyno$1({ + inTypes: { + lodIndices: "usampler2D", + index: "int", + numSplats: "int", + enableLod: "bool", + showLodPage: "int" + }, + outTypes: { + index: "int" + }, + inputs: { + lodIndices, + index, + numSplats, + enableLod, + showLodPage + }, + statements: ({ inputs, outputs }) => unindentLines(` + int index = ${inputs.index}; + if (${inputs.showLodPage} < 0) { + if (index >= ${inputs.numSplats}) { + return; } - return currentOffset; + if (${inputs.enableLod}) { + ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14); + uint splatIndex = texelFetch(${inputs.lodIndices}, lodIndexCoord, 0)[index & 3]; + ${outputs.index} = int(splatIndex); + } else { + ${outputs.index} = index; + } + } else { + int start = ${inputs.showLodPage} << 16; + if (index >= 65536) { + return; + } + ${outputs.index} = start + index; + } + `) + }).outputs.index; +} +function maybeInjectSplatRgba(gsplat, rgba, index, enableLod) { + return dyno$1({ + inTypes: { + gsplat: Gsplat, + rgba: TRgbaArray, + index: "int", + enableLod: "bool" + }, + outTypes: { gsplat: Gsplat }, + inputs: { gsplat, rgba, index, enableLod }, + statements: ({ inputs, outputs }) => unindentLines(` + ${outputs.gsplat} = ${inputs.gsplat}; + if (!${inputs.enableLod} && (${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) { + ${outputs.gsplat}.rgba = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0); } - ); + `) + }).outputs.gsplat; +} +const emptyLodIndices = (() => { + const texture2 = new THREE__namespace.DataTexture( + new Uint32Array(16384), + 4096, + 1, + THREE__namespace.RGBAIntegerFormat, + THREE__namespace.UnsignedIntType + ); + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +const _SplatAccumulator = class _SplatAccumulator { + constructor({ + extSplats, + covSplats + } = {}) { + this.time = 0; + this.deltaTime = 0; + this.viewToWorld = new THREE__namespace.Matrix4(); + this.viewOrigin = new THREE__namespace.Vector3(); + this.viewDirection = new THREE__namespace.Vector3(); + this.maxSplats = 0; + this.numSplats = 0; + this.target = null; + this.mapping = []; + this.version = -1; + this.mappingVersion = -1; + this.readback = null; + this.readbackSplats = []; + if (!threeMrtArray) { + throw new Error("Spark requires THREE.js r179 or above"); } + this.extSplats = extSplats ?? true; + this.covSplats = covSplats ?? false; } - return (data, offset, item) => { - let currentOffset = offset; - for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) { - currentOffset = parsers[parserIndex](data, currentOffset, item); + dispose() { + if (this.target) { + this.target.dispose(); + this.target = null; } - return currentOffset; - }; -} -function getNumSh(properties) { - let num_f_rest = 0; - while (properties[`f_rest_${num_f_rest}`]) { - num_f_rest += 1; } - const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest]; - if (numSh == null) { - throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`); + // Returns a THREE.DataArrayTexture representing the NewSplatAccumulator + // content as 2 x Uint32x4 data array textures (2048 x 2048 x 2048 in size) + getTextures() { + if (this.target) { + return this.target.textures; + } + return _SplatAccumulator.emptyTextures; } - return numSh; -} -class SplatLoader extends THREE.Loader { - constructor(manager) { - super(manager); - this.fileLoader = new THREE.FileLoader(manager); + // Given an array of splatCounts (.numSplats for each + // SplatGenerator/SplatMesh in the scene), compute a + // "mapping layout" in the composite array of generated outputs. + generateMapping(splatCounts) { + let maxSplats = 0; + const mapping = splatCounts.map((numSplats) => { + const base = maxSplats; + const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + maxSplats += rounded; + return { base, count: numSplats }; + }); + return { maxSplats, mapping }; } - load(url, onLoad, onProgress, onError) { - return this.loadInternal({ - url, - onLoad, - onProgress, - onError + // Ensures our NewSplatAccumulator.target render target has enough space + // to generate maxSplats total Gsplats, and reallocate if not large enough. + ensureGenerate({ maxSplats }) { + if (this.target && (maxSplats ?? 1) <= this.maxSplats) { + return false; + } + this.dispose(); + const textureSize2 = getTextureSize(maxSplats ?? 1); + const { width, height, depth } = textureSize2; + this.maxSplats = textureSize2.maxSplats; + this.target = new THREE__namespace.WebGLArrayRenderTarget(width, height, depth, { + depthBuffer: false, + stencilBuffer: false, + generateMipmaps: false, + magFilter: THREE__namespace.NearestFilter, + minFilter: THREE__namespace.NearestFilter, + format: THREE__namespace.RGBAIntegerFormat, + type: THREE__namespace.UnsignedIntType }); + this.target.scissorTest = true; + if (this.extSplats) { + const target2 = this.target.texture.clone(); + const target3 = this.target.texture.clone(); + target3.format = THREE__namespace.RGBAFormat; + target3.type = THREE__namespace.UnsignedByteType; + target3.internalFormat = "RGBA8"; + this.target.textures = [this.target.texture, target2, target3]; + } else { + const target3 = this.target.texture.clone(); + target3.format = THREE__namespace.RGBAFormat; + target3.type = THREE__namespace.UnsignedByteType; + target3.internalFormat = "RGBA8"; + this.target.textures = [this.target.texture, target3]; + } + return true; } - async loadAsync(url, onProgress) { - return new Promise((resolve, reject) => { - this.load( - url, - (decoded) => { - resolve(decoded); - }, - onProgress, - reject + saveRenderState(renderer) { + return { + target: renderer.getRenderTarget(), + activeCubeFace: renderer.getActiveCubeFace(), + activeMipmapLevel: renderer.getActiveMipmapLevel(), + xrEnabled: renderer.xr.enabled, + autoClear: renderer.autoClear + }; + } + resetRenderState(renderer, state) { + renderer.setRenderTarget( + state.target, + state.activeCubeFace, + state.activeMipmapLevel + ); + renderer.xr.enabled = state.xrEnabled; + renderer.autoClear = state.autoClear; + } + // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator, + // generating it if necessary and caching the result. + prepareProgramMaterial(generator, covGenerator) { + const theGenerator = generator ?? covGenerator; + if (!theGenerator) { + throw new Error("Either generator or covGenerator must be provided"); + } + let program = _SplatAccumulator.generatorProgram.get(theGenerator); + if (!program) { + const graph = dynoBlock( + { index: "int" }, + {}, + ({ index }, _outputs, { roots }) => { + if (generator) { + generator.inputs.index = index; + } + if (covGenerator) { + covGenerator.inputs.index = index; + } + if (this.extSplats) { + if (!this.covSplats) { + if (generator) { + const output = outputExtendedSplat(generator.outputs.gsplat); + roots.push(output); + } else { + throw new Error("Generator must be provided"); + } + } else { + if (covGenerator) { + const output = outputExtCovSplat(covGenerator.outputs.covsplat); + roots.push(output); + } else if (generator) { + const covsplat = gsplatToCovSplat(generator.outputs.gsplat); + const output = outputExtCovSplat(covsplat); + roots.push(output); + } else { + throw new Error("Generator must be provided"); + } + } + } else { + if (!this.covSplats) { + if (generator) { + const centerSubView = sub( + splitGsplat(generator.outputs.gsplat).outputs.center, + _SplatAccumulator.viewCenterUniform + ); + const halfAlpha = mul( + splitGsplat(generator.outputs.gsplat).outputs.opacity, + dynoConst("float", 0.5) + ); + const gsplat = combineGsplat({ + gsplat: generator.outputs.gsplat, + center: centerSubView, + opacity: halfAlpha + }); + const output = outputPackedSplat( + gsplat, + dynoConst("vec4", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]) + ); + roots.push(output); + } else { + throw new Error("Generator must be provided"); + } + } else { + let covsplat; + if (covGenerator) { + covsplat = covGenerator.outputs.covsplat; + } else if (generator) { + covsplat = gsplatToCovSplat(generator.outputs.gsplat); + } else { + throw new Error("Generator must be provided"); + } + const centerSubView = sub( + splitCovSplat(covsplat).outputs.center, + _SplatAccumulator.viewCenterUniform + ); + const halfAlpha = mul( + splitCovSplat(covsplat).outputs.opacity, + dynoConst("float", 0.5) + ); + covsplat = combineCovSplat({ + covsplat, + center: centerSubView, + opacity: halfAlpha + }); + const output = outputCovSplat( + covsplat, + dynoConst("vec4", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]) + ); + roots.push(output); + } + if (!generator) { + throw new Error("Generator must be provided"); + } + } + if (generator) { + const outputDepth = outputSplatDepth( + generator.outputs.gsplat, + _SplatAccumulator.viewCenterUniform, + _SplatAccumulator.viewDirUniform, + _SplatAccumulator.sortRadialUniform + ); + roots.push(outputDepth); + } + if (covGenerator) { + const outputDepth = outputCovSplatDepth( + covGenerator.outputs.covsplat, + _SplatAccumulator.viewCenterUniform, + _SplatAccumulator.viewDirUniform, + _SplatAccumulator.sortRadialUniform + ); + roots.push(outputDepth); + } + return void 0; + } ); + program = new DynoProgram({ + graph, + inputs: { index: "_index" }, + outputs: {}, + template: this.extSplats ? _SplatAccumulator.programExtTemplate : _SplatAccumulator.programTemplate + // consoleLog: true, + }); + _SplatAccumulator.generatorProgram.set(theGenerator, program); + } + Object.assign(program.uniforms, { + targetLayer: { value: 0 }, + targetBase: { value: 0 }, + targetCount: { value: 0 } }); + const material = program.prepareMaterial(); + _SplatAccumulator.fullScreenQuad.material = material; + return { program, material }; } - parse(packedSplats) { - return new SplatMesh({ packedSplats }); - } - loadInternal({ - packedSplats, - extSplats, - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - onLoad, - onProgress, - onError, - lod, - nonLod, - lodAbove, - lodBase + generate({ + generator, + covGenerator, + base, + count, + renderer }) { - if (fileBytes instanceof ArrayBuffer) { - fileBytes = new Uint8Array(fileBytes); + if (!this.target) { + throw new Error("Target must be initialized with ensureGenerate"); } - const resolvedURL = fileBytes ? void 0 : this.manager.resolveURL((this.path ?? "") + (url ?? "")); - let readStream = stream == null ? void 0 : stream.getReader(); - this.manager.itemStart(resolvedURL ?? ""); - workerPool.withWorker(async (worker) => { - const splatsLod = (packedSplats == null ? void 0 : packedSplats.lod) ?? (extSplats == null ? void 0 : extSplats.lod); - if (splatsLod) { - lod = splatsLod; - } - const splatsNonLod = (packedSplats == null ? void 0 : packedSplats.nonLod) ?? (extSplats == null ? void 0 : extSplats.nonLod); - if (splatsNonLod !== void 0) { - nonLod = splatsNonLod; + if (base + count > this.maxSplats) { + throw new Error("Base + count exceeds maxSplats"); + } + const { program, material } = this.prepareProgramMaterial( + generator, + covGenerator + ); + program.update(); + const renderState = this.saveRenderState(renderer); + const nextBase = Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT; + material.uniforms.targetBase.value = base; + material.uniforms.targetCount.value = count; + while (base < nextBase) { + const layer = Math.floor(base / layerSize); + material.uniforms.targetLayer.value = layer; + const layerBase = layer * layerSize; + const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH); + const layerYEnd = Math.min( + SPLAT_TEX_HEIGHT, + Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH) + ); + this.target.scissor.set( + 0, + layerYStart, + SPLAT_TEX_WIDTH, + layerYEnd - layerYStart + ); + renderer.setRenderTarget(this.target, layer); + renderer.xr.enabled = false; + renderer.autoClear = false; + _SplatAccumulator.fullScreenQuad.render(renderer); + base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart); + } + this.resetRenderState(renderer, renderState); + return { nextBase }; + } + prepareGenerate({ + renderer, + scene, + time, + camera, + sortRadial, + renderSize, + previous, + lodInstances + }) { + var _a2; + this.viewToWorld.copy(camera.matrixWorld); + camera.getWorldPosition(this.viewOrigin); + camera.getWorldDirection(this.viewDirection); + _SplatAccumulator.viewCenterUniform.value.copy(this.viewOrigin); + _SplatAccumulator.viewDirUniform.value.copy(this.viewDirection); + _SplatAccumulator.sortRadialUniform.value = sortRadial; + this.time = time; + this.deltaTime = time - previous.time; + const allGenerators = []; + scene.traverse((node) => { + if (node instanceof SplatGenerator) { + if (!camera.layers || camera.layers.test(node.layers)) { + allGenerators.push(node); + } } - const onStatus = async (data) => { - const { loaded, total } = data; - if (loaded !== void 0 && onProgress) { - onProgress( - new ProgressEvent("progress", { - lengthComputable: total !== 0, - loaded, - total - }) - ); + }); + const globalEditsSet = /* @__PURE__ */ new Set(); + scene.traverseVisible((node) => { + if (node instanceof SplatEdit) { + let ancestor = node.parent; + while (ancestor != null && !(ancestor instanceof SplatMesh)) { + ancestor = ancestor.parent; } - if (data.nextChunk) { - let chunk; - if (!readStream) { - chunk = new Uint8Array(0); - } else { - const { done, value } = await readStream.read(); - if (done) { - readStream.releaseLock(); - readStream = void 0; - chunk = new Uint8Array(0); - } else { - chunk = value; - } - } - worker.call("nextChunk", { chunk }); + if (ancestor == null) { + globalEditsSet.add(node); } - }; - const basedUrl = resolvedURL ? new URL(resolvedURL, window.location.href).toString() : void 0; - const decoded = await worker.call( - extSplats ? "loadExtSplats" : "loadPackedSplats", - { - url: basedUrl, - requestHeader: this.requestHeader, - withCredentials: this.withCredentials, - fileBytes: fileBytes == null ? void 0 : fileBytes.slice(), - fileType, - pathName: resolvedURL || fileName, - chunked: stream !== void 0, - chunkedLength: streamLength, - encoding: packedSplats == null ? void 0 : packedSplats.splatEncoding, - lod, - lodBase, - nonLod, - lodAbove - }, - { onStatus } - ); - if (decoded.lodSplats) { - if (extSplats) { - decoded.lodSplats = new ExtSplats({ - ...decoded.lodSplats - }); - } else { - decoded.lodSplats = new PackedSplats({ - ...decoded.lodSplats, - maxSplats: packedSplats == null ? void 0 : packedSplats.maxSplats - }); + } + }); + const globalEdits = Array.from(globalEditsSet); + for (const object of allGenerators) { + try { + (_a2 = object.frameUpdate) == null ? void 0 : _a2.call(object, { + renderer, + object, + time: this.time, + deltaTime: this.deltaTime, + viewToWorld: this.viewToWorld, + camera, + renderSize, + globalEdits, + lodIndices: lodInstances && object instanceof SplatMesh ? lodInstances.get(object) : void 0 + }); + } catch (error) { + console.error("frameUpdate error", error); + object.generator = void 0; + object.covGenerator = void 0; + object.generatorError = error; + } + } + const visibleGenerators = []; + scene.traverseVisible((node) => { + if (node instanceof SplatGenerator) { + if (!camera.layers || camera.layers.test(node.layers)) { + visibleGenerators.push(node); + } + } + }); + const splatCounts = visibleGenerators.map( + (generator) => generator.numSplats + ); + const { maxSplats, mapping: baseCounts } = this.generateMapping(splatCounts); + const previousMappings = previous.mapping.reduce((mappings, mapping) => { + mappings.set(mapping.node, mapping); + return mappings; + }, /* @__PURE__ */ new Map()); + this.mapping = []; + this.numSplats = 0; + baseCounts.forEach(({ base, count }, index) => { + const node = visibleGenerators[index]; + const previousNode = previousMappings.get(node); + if (previousNode && previousNode.count !== node.numSplats) { + node.updateMappingVersion(); + } + const { generator, covGenerator } = node; + if ((generator || covGenerator) && count > 0) { + const { version, mappingVersion } = node; + this.mapping.push({ + node, + generator, + covGenerator, + version, + mappingVersion, + base, + count + }); + this.numSplats = Math.max(this.numSplats, base + count); + } + }); + const { splatsUpdated, mappingUpdated } = previous.checkVersions( + this.mapping + ); + this.version = previous.version + (splatsUpdated ? 1 : 0); + this.mappingVersion = previous.mappingVersion + (mappingUpdated ? 1 : 0); + return { + sameMapping: !mappingUpdated, + version: this.version, + mappingVersion: this.mappingVersion, + visibleGenerators, + generate: () => { + this.ensureGenerate({ maxSplats }); + for (const { node, base, count } of this.mapping) { + const { generator, covGenerator } = node; + if ((generator || covGenerator) && count > 0) { + this.generate({ generator, covGenerator, base, count, renderer }); + } } - } - if (extSplats) { - const initExtSplats = { - // ...(initExt ?? {}), - ...decoded - }; - extSplats.initialize(initExtSplats); - onLoad == null ? void 0 : onLoad(extSplats); - } else { - const initSplats = { - // ...(init ?? {}), - ...decoded - }; - if (packedSplats) { - packedSplats.initialize(initSplats); - onLoad == null ? void 0 : onLoad(packedSplats); - } else { - onLoad == null ? void 0 : onLoad(new PackedSplats(initSplats)); + }, + readback: async () => { + const textures = this.getTextures(); + if (this.readbackSplats.length === 0) { + this.readbackSplats = [ + new DynoUsampler2DArray({ value: textures[0], key: "extSplats" }), + new DynoUsampler2DArray({ value: textures[1], key: "extSplats" }) + ]; } + this.readbackSplats[0].value = textures[0]; + this.readbackSplats[1].value = textures[1]; + if (!this.readback) { + this.readback = new Readback({ renderer }); + } + const readback = this.readback; + const words = this.extSplats ? 8 : 4; + const array = readback.ensureBuffer( + this.numSplats * words, + new Uint32Array(0) + ); + const reader = dynoBlock( + { index: "int" }, + { rgba8: "vec4" }, + ({ index }) => { + const rgba8 = new Dyno({ + inTypes: { + index: "int", + extSplats1: "usampler2DArray", + extSplats2: "usampler2DArray" + }, + outTypes: { rgba8: "vec4" }, + inputs: { + index, + extSplats1: this.readbackSplats[0], + extSplats2: this.readbackSplats[1] + }, + statements: ({ inputs, outputs }) => { + if (this.extSplats) { + return unindentLines(` + int indexDiv8 = ${inputs.index} >> 3; + ivec3 coord = splatTexCoord(indexDiv8); + uvec4 packedData; + if ((${inputs.index} & 4) == 0) { + packedData = texelFetch(${inputs.extSplats1}, coord, 0); + } else { + packedData = texelFetch(${inputs.extSplats2}, coord, 0); + } + + int indexMod4 = ${inputs.index} & 3; + uint data = (indexMod4 == 0) ? packedData.x + : (indexMod4 == 1) ? packedData.y + : (indexMod4 == 2) ? packedData.z + : packedData.w; + ${outputs.rgba8} = uintToVec4(data); + `); + } + return unindentLines(` + int indexDiv4 = ${inputs.index} >> 2; + ivec3 coord = splatTexCoord(indexDiv4); + uvec4 packedData = texelFetch(${inputs.extSplats1}, coord, 0); + + int indexMod4 = ${inputs.index} & 3; + uint data = (indexMod4 == 0) ? packedData.x + : (indexMod4 == 1) ? packedData.y + : (indexMod4 == 2) ? packedData.z + : packedData.w; + ${outputs.rgba8} = uintToVec4(data); + `); + } + }).outputs.rgba8; + return { rgba8 }; + } + ); + return await readback.renderReadback({ + reader, + count: this.numSplats * words, + renderer, + readback: array + }); } - }).catch((error) => { - this.manager.itemError(resolvedURL ?? ""); - onError == null ? void 0 : onError(error); - }).finally(() => { - this.manager.itemEnd(resolvedURL ?? ""); - }); - } - async loadInternalAsync({ - packedSplats, - extSplats, - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - onProgress, - lod, - nonLod, - lodAbove, - lodBase - }) { - return new Promise((resolve, reject) => { - this.loadInternal({ - packedSplats, - extSplats, - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - onLoad: resolve, - onProgress, - onError: reject, - lod, - nonLod, - lodAbove, - lodBase - }); - }); - } -} -function getSplatFileType(fileBytes) { - const view = new DataView(fileBytes.buffer); - const magic = view.getUint32(0, true); - if ((magic & 16777215) === 7957616) { - return SplatFileType.PLY; + }; } - if ((magic & 16777215) === 559903) { - const header = decompressPartialGzip(fileBytes, 4); - const gView = new DataView(header.buffer); - if (gView.getUint32(0, true) === 1347635022) { - return SplatFileType.SPZ; + // Check if this accumulator has exactly the same generator mapping as + // the previous one. If so, we can reuse the Gsplat sort order. + checkVersions(otherMapping) { + if (this.mapping.length !== otherMapping.length) { + return { splatsUpdated: true, mappingUpdated: true }; } - return void 0; - } - if (magic === 67324752) { - if (tryPcSogsZip(fileBytes)) { - return SplatFileType.PCSOGSZIP; + const mappingUpdated = this.mapping.some((item, i) => { + const other = otherMapping[i]; + return item.node !== other.node || item.base !== other.base || item.count !== other.count || item.mappingVersion !== other.mappingVersion; + }); + if (mappingUpdated) { + return { splatsUpdated: true, mappingUpdated: true }; } - return void 0; - } - if (magic === 809779538) { - return SplatFileType.RAD; + const splatsUpdated = this.mapping.some((item, i) => { + return item.version !== otherMapping[i].version; + }); + return { splatsUpdated, mappingUpdated }; } - return void 0; -} -function getFileExtension(pathOrUrl) { - const noTrailing = pathOrUrl.split(/[?#]/, 1)[0]; - const lastSlash = Math.max( - noTrailing.lastIndexOf("/"), - noTrailing.lastIndexOf("\\") +}; +_SplatAccumulator.viewCenterUniform = new DynoVec3({ value: new THREE__namespace.Vector3() }); +_SplatAccumulator.viewDirUniform = new DynoVec3({ value: new THREE__namespace.Vector3() }); +_SplatAccumulator.sortRadialUniform = new DynoBool({ value: true }); +_SplatAccumulator.emptyTexture = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 4); + const texture2 = new THREE__namespace.DataArrayTexture( + emptyArray, + width, + height, + depth ); - const filename = noTrailing.slice(lastSlash + 1); - const lastDot = filename.lastIndexOf("."); - if (lastDot <= 0 || lastDot === filename.length - 1) { - return ""; - } - return filename.slice(lastDot + 1).toLowerCase(); -} -function getSplatFileTypeFromPath(pathOrUrl) { - const extension = getFileExtension(pathOrUrl); - if (extension === "ply") { - return SplatFileType.PLY; - } - if (extension === "spz") { - return SplatFileType.SPZ; - } - if (extension === "splat") { - return SplatFileType.SPLAT; - } - if (extension === "ksplat") { - return SplatFileType.KSPLAT; - } - if (extension === "sog") { - return SplatFileType.PCSOGSZIP; - } - if (extension === "rad") { - return SplatFileType.RAD; + texture2.format = THREE__namespace.RGBAIntegerFormat; + texture2.type = THREE__namespace.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +_SplatAccumulator.emptyTextures = (() => { + return [_SplatAccumulator.emptyTexture, _SplatAccumulator.emptyTexture]; +})(); +_SplatAccumulator.programExtTemplate = new DynoProgramTemplate( + getShaders().computeUvec4x2Vec4Template +); +_SplatAccumulator.programTemplate = new DynoProgramTemplate( + getShaders().computeUvec4Vec4Template +); +_SplatAccumulator.generatorProgram = /* @__PURE__ */ new WeakMap(); +_SplatAccumulator.fullScreenQuad = new Pass_js.FullScreenQuad( + new THREE__namespace.RawShaderMaterial({ visible: false }) +); +let SplatAccumulator = _SplatAccumulator; +class SplatGeometry extends THREE__namespace.InstancedBufferGeometry { + constructor() { + super(); + this.setAttribute("position", new THREE__namespace.BufferAttribute(QUAD_VERTICES, 3)); + this.setIndex(new THREE__namespace.BufferAttribute(QUAD_INDICES, 1)); } - return void 0; -} -function isPcSogs(input) { - return tryPcSogs(input) !== void 0; } -function tryPcSogs(input) { - try { - let text; - if (typeof input === "string") { - text = input; - } else { - const fileBytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input; - if (fileBytes.length > 65536) { - return void 0; - } - text = new TextDecoder().decode(fileBytes); +const QUAD_VERTICES = new Float32Array([ + -1, + -1, + 0, + 1, + -1, + 0, + 1, + 1, + 0, + -1, + 1, + 0 +]); +const QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]); +const _SparkRenderer = class _SparkRenderer extends THREE__namespace.Mesh { + constructor(options) { + if (!options) { + throw new Error("SparkRenderer options are required"); } - const json = JSON.parse(text); - if (!json || typeof json !== "object" || Array.isArray(json)) { - return void 0; + if (!options.renderer) { + throw new Error("renderer is required in SparkRenderer options"); } - const isVersion2 = json.version === 2; - for (const key of ["means", "scales", "quats", "sh0"]) { - if (!json[key] || typeof json[key] !== "object" || Array.isArray(json[key])) { - return void 0; + const uniforms = _SparkRenderer.makeUniforms(); + Object.assign(uniforms, options.extraUniforms ?? {}); + const shaders2 = getShaders(); + const premultipliedAlpha = options.premultipliedAlpha ?? true; + const geometry = new SplatGeometry(); + const material = new THREE__namespace.ShaderMaterial({ + glslVersion: THREE__namespace.GLSL3, + vertexShader: options.vertexShader ?? shaders2.splatVertex, + fragmentShader: options.fragmentShader ?? shaders2.splatFragment, + uniforms, + premultipliedAlpha, + transparent: options.transparent ?? true, + depthTest: options.depthTest ?? true, + depthWrite: options.depthWrite ?? false, + side: THREE__namespace.DoubleSide, + allowOverride: false + }); + super(geometry, material); + this.renderSize = new THREE__namespace.Vector2(); + this.lastFrame = -1; + this.updateTimeoutId = -1; + this.orderingTexture = null; + this.maxSplats = 0; + this.activeSplats = 0; + this.accumulators = []; + this.sorting = false; + this.sortDirty = false; + this.lastSortTime = 0; + this.sortWorker = null; + this.sortTimeoutId = -1; + this.sortedCenter = new THREE__namespace.Vector3().setScalar(Number.NEGATIVE_INFINITY); + this.sortedDir = new THREE__namespace.Vector3().setScalar(0); + this.readback32 = new Uint32Array(0); + this.lastLodRaycastTime = 0; + this.lodWorker = null; + this.lodMeshes = []; + this.lodDirty = false; + this.lodIds = /* @__PURE__ */ new Map(); + this.lodIdToSplats = /* @__PURE__ */ new Map(); + this.lodInitQueue = []; + this.lodInstances = /* @__PURE__ */ new Map(); + this.lodUpdates = []; + this.lastTraverseTime = 0; + this.pagerId = 0; + this.superXY = 1; + this.flushAfterGenerate = false; + this.flushAfterRead = false; + this.readPause = 1; + this.sortPause = 0; + this.sortDelay = 0; + this.pageSizeWarning = false; + this.material = material; + this.uniforms = uniforms; + this.frustumCulled = false; + this.renderer = options.renderer; + this.onDirty = options.onDirty; + this.dirty = true; + this.autoUpdate = options.autoUpdate ?? true; + this.preUpdate = options.preUpdate ?? true; + this.maxStdDev = options.maxStdDev ?? Math.sqrt(8); + this.minPixelRadius = options.minPixelRadius ?? 0; + this.maxPixelRadius = options.maxPixelRadius ?? 512; + this.accumExtSplats = options.accumExtSplats ?? false; + this.covSplats = options.covSplats ?? false; + this.minAlpha = options.minAlpha ?? 0.5 * (1 / 255); + this.enable2DGS = options.enable2DGS ?? false; + this.preBlurAmount = options.preBlurAmount ?? 0; + this.blurAmount = options.blurAmount ?? 0.3; + this.focalDistance = options.focalDistance ?? 0; + this.apertureAngle = options.apertureAngle ?? 0; + this.falloff = options.falloff ?? 1; + this.clipXY = options.clipXY ?? 1.4; + this.focalAdjustment = options.focalAdjustment ?? 1; + this.sortRadial = options.sortRadial ?? true; + this.minSortIntervalMs = options.minSortIntervalMs ?? 0; + this.enableLod = options.enableLod ?? true; + this.enableDriveLod = options.enableDriveLod ?? this.enableLod; + this.enableLodFetching = options.enableLodFetching ?? true; + this.lodSplatCount = options.lodSplatCount; + this.lodSplatScale = options.lodSplatScale ?? 1; + this.lodRenderScale = options.lodRenderScale ?? 1; + this.lodInflate = options.lodInflate ?? false; + this.lodTraverseMode = options.lodTraverseMode ?? "standard"; + this.pagedExtSplats = options.pagedExtSplats ?? false; + const defaultPages = isMobile() ? isIos() ? 96 : 128 : 256; + this.maxPagedSplats = options.maxPagedSplats ?? defaultPages * 65536; + this.numLodFetchers = options.numLodFetchers ?? 3; + this.behindFoveate = options.behindFoveate ?? 0.2; + this.coneFov0 = options.coneFov0 ?? 90; + this.coneFov = options.coneFov ?? 120; + this.coneFoveate = options.coneFoveate ?? 0.4; + this.lodRaycast = options.lodRaycast === void 0 ? isMobile() ? 1e4 : 25e3 : options.lodRaycast; + this.lodRaycastIntervalMs = options.lodRaycastIntervalMs ?? 500; + this.timer = options.timer ?? new THREE__namespace.Timer(); + const accumulatorOptions = { + extSplats: this.accumExtSplats, + covSplats: this.covSplats + }; + this.display = new SplatAccumulator(accumulatorOptions); + this.current = this.display; + this.accumulators.push(new SplatAccumulator(accumulatorOptions)); + this.accumulators.push(new SplatAccumulator(accumulatorOptions)); + const provokingVertexExt = this.renderer.getContext().getExtension("WEBGL_provoking_vertex"); + if (provokingVertexExt) { + provokingVertexExt.provokingVertexWEBGL( + provokingVertexExt.FIRST_VERTEX_CONVENTION_WEBGL + ); + } + if (options.target) { + const { + width, + height, + doubleBuffer, + superXY: origSuperXY, + ...origTargetOptions + } = options.target; + const superXY = Math.max(1, Math.min(4, origSuperXY ?? 1)); + if (width * superXY > 8192 || height * superXY > 8192) { + throw new Error("Target size too large"); } - if (isVersion2) { - if (!json[key].files) { - return void 0; - } - if ((key === "scales" || key === "sh0") && !json[key].codebook) { - return void 0; - } - if (key === "means" && (!json[key].mins || !json[key].maxs)) { - return void 0; - } - } else { - if (!json[key].shape || !json[key].files) { - return void 0; - } - if (key !== "quats" && (!json[key].mins || !json[key].maxs)) { - return void 0; - } + this.superXY = superXY; + const superWidth = width * superXY; + const superHeight = height * superXY; + const targetOptions = { + format: THREE__namespace.RGBAFormat, + type: THREE__namespace.UnsignedByteType, + colorSpace: THREE__namespace.SRGBColorSpace, + ...origTargetOptions + }; + this.target = new THREE__namespace.WebGLRenderTarget( + superWidth, + superHeight, + targetOptions + ); + if (doubleBuffer) { + this.backTarget = new THREE__namespace.WebGLRenderTarget( + superWidth, + superHeight, + targetOptions + ); } } - return json; - } catch { - return void 0; } -} -function tryPcSogsZip(input) { - try { - const fileBytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input; - let metaFilename = null; - const unzipped = unzipSync(fileBytes, { - filter: ({ name }) => { - const filename = name.split(/[\\/]/).pop(); - if (filename === "meta.json") { - metaFilename = name; - return true; - } - return false; - } - }); - if (!metaFilename) { - return void 0; + static makeUniforms() { + const uniforms = { + // // number of active splats to render + // numSplats: { value: 0 }, + // Size of render viewport in pixels + renderSize: { value: new THREE__namespace.Vector2() }, + // Near and far plane distances + near: { value: 0.1 }, + far: { value: 1e3 }, + // SplatAccumulator to view transformation quaternion + renderToViewQuat: { value: new THREE__namespace.Quaternion() }, + // SplatAccumulator to view transformation translation + renderToViewPos: { value: new THREE__namespace.Vector3() }, + renderToViewBasis: { value: new THREE__namespace.Matrix3() }, + renderToViewOffset: { value: new THREE__namespace.Vector3() }, + // Maximum distance (in stddevs) from Gsplat center to render + maxStdDev: { value: 1 }, + // Minimum pixel radius for splat rendering + minPixelRadius: { value: 0 }, + // Maximum pixel radius for splat rendering + maxPixelRadius: { value: 512 }, + // Minimum alpha value for splat rendering + minAlpha: { value: 0.5 * (1 / 255) }, + // Enable interpreting 0-thickness Gsplats as 2DGS + enable2DGS: { value: false }, + // Enable ray-splat max response evaluation + // enableRayEval: { value: false }, + // Inflate LoD splats so that opacity <= 1.0 + lodInflate: { value: false }, + // Add to projected 2D splat covariance diagonal (thickens and brightens) + preBlurAmount: { value: 0 }, + // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing) + blurAmount: { value: 0.3 }, + // Depth-of-field distance to focal plane + focalDistance: { value: 0 }, + // Full-width angle of aperture opening (in radians) + apertureAngle: { value: 0 }, + // Modulate Gaussian kernal falloff. 0 means "no falloff, flat shading", + // 1 is normal e^-x^2 falloff. + falloff: { value: 1 }, + // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds + clipXY: { value: 1.4 }, + // Debug renderSize scale factor + focalAdjustment: { value: 1 }, + // Whether to encode Gsplat with linear RGB (for environment mapping) + encodeLinear: { value: false }, + // Back-to-front sort ordering of splat indices + ordering: { type: "t", value: _SparkRenderer.emptyOrdering }, + enableExtSplats: { value: false }, + enableCovSplats: { value: false }, + // Gsplat collection to render + extSplats: { type: "t", value: SplatAccumulator.emptyTexture }, + extSplats2: { type: "t", value: SplatAccumulator.emptyTexture }, + // Time in seconds for time-based effects + time: { value: 0 }, + // Delta time in seconds since last frame + deltaTime: { value: 0 }, + // Debug flag that alternates each frame + debugFlag: { value: false } + }; + return uniforms; + } + dispose() { + if (this.target) { + this.target.dispose(); + this.target = void 0; } - const json = tryPcSogs(unzipped[metaFilename]); - if (!json) { - return void 0; + if (this.backTarget) { + this.backTarget.dispose(); + this.backTarget = void 0; } - return { name: metaFilename, json }; - } catch { - return void 0; - } -} -async function unpackSplats({ - input, - extraFiles, - fileType, - pathOrUrl, - splatEncoding -}) { - const fileBytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input; - let splatFileType = fileType; - if (!fileType) { - splatFileType = getSplatFileType(fileBytes); - if (!splatFileType && pathOrUrl) { - splatFileType = getSplatFileTypeFromPath(pathOrUrl); - } - } - switch (splatFileType) { - case SplatFileType.PLY: { - const ply = new PlyReader({ fileBytes }); - await ply.parseHeader(); - const numSplats = ply.numSplats; - const maxSplats = getTextureSize(numSplats).maxSplats; - const args = { - fileBytes, - packedArray: new Uint32Array(maxSplats * 4), - splatEncoding - }; - return await withWorker(async (worker) => { - const { packedArray, numSplats: numSplats2, extra } = await worker.call( - "unpackPly", - args - ); - return { packedArray, numSplats: numSplats2, extra }; - }); + if (this.orderingTexture) { + this.orderingTexture.dispose(); + this.orderingTexture = null; } - case SplatFileType.SPZ: { - return await withWorker(async (worker) => { - const { packedArray, numSplats, extra } = await worker.call( - "decodeSpz", - { - fileBytes, - splatEncoding - } - ); - return { packedArray, numSplats, extra }; - }); + const accumulators = /* @__PURE__ */ new Set(); + accumulators.add(this.display); + accumulators.add(this.current); + for (const accumulator of this.accumulators) { + accumulators.add(accumulator); } - case SplatFileType.SPLAT: { - return await withWorker(async (worker) => { - const { packedArray, numSplats } = await worker.call( - "decodeAntiSplat", - { - fileBytes, - splatEncoding - } - ); - return { packedArray, numSplats }; - }); + for (const accumulator of accumulators) { + accumulator.dispose(); } - case SplatFileType.KSPLAT: { - return await withWorker(async (worker) => { - const { packedArray, numSplats, extra } = await worker.call( - "decodeKsplat", - { fileBytes, splatEncoding } - ); - return { packedArray, numSplats, extra }; - }); + const instances = this.lodInstances.values(); + this.lodInstances.clear(); + for (const instance of instances) { + instance.texture.dispose(); } - case SplatFileType.PCSOGS: { - return await withWorker(async (worker) => { - const { packedArray, numSplats, extra } = await worker.call( - "decodePcSogs", - { fileBytes, extraFiles, splatEncoding } - ); - return { packedArray, numSplats, extra }; - }); + if (this.sortWorker) { + this.sortWorker.dispose(); + this.sortWorker = null; } - case SplatFileType.PCSOGSZIP: { - return await withWorker(async (worker) => { - const { packedArray, numSplats, extra } = await worker.call( - "decodePcSogsZip", - { fileBytes, splatEncoding } - ); - return { packedArray, numSplats, extra }; - }); + if (this.lodWorker) { + this.lodWorker.dispose(); + this.lodWorker = null; } - default: { - throw new Error(`Unknown splat file type: ${splatFileType}`); + if (this.pager) { + this.pager.dispose(); + this.pager = void 0; } } -} -class SplatData { - constructor({ maxSplats = 1 } = {}) { - this.numSplats = 0; - this.maxSplats = getTextureSize(maxSplats).maxSplats; - this.centers = new Float32Array(this.maxSplats * 3); - this.scales = new Float32Array(this.maxSplats * 3); - this.quaternions = new Float32Array(this.maxSplats * 4); - this.opacities = new Float32Array(this.maxSplats); - this.colors = new Float32Array(this.maxSplats * 3); - } - pushSplat() { - const index = this.numSplats; - this.ensureIndex(index); - this.numSplats += 1; - return index; + setDirty() { + var _a2; + if (!this.dirty) { + this.dirty = true; + (_a2 = this.onDirty) == null ? void 0 : _a2.call(this); + } } - unpushSplat(index) { - if (index === this.numSplats - 1) { - this.numSplats -= 1; + onBeforeRender(renderer, scene, camera) { + var _a2; + const spark = _SparkRenderer.sparkOverride ?? this; + const frame = renderer.info.render.frame; + const isNewFrame = frame !== spark.lastFrame; + spark.lastFrame = frame; + const currentRenderTarget = renderer.getRenderTarget(); + const isXRRenderTarget = checkIsXRRenderTarget(currentRenderTarget); + if (currentRenderTarget) { + spark.renderSize.set( + currentRenderTarget.width, + currentRenderTarget.height + ); + if (isXRRenderTarget && spark.renderSize.x === 1 && spark.renderSize.y === 1) { + const baseLayer = (_a2 = renderer.xr.getSession()) == null ? void 0 : _a2.renderState.baseLayer; + if (baseLayer) { + spark.renderSize.x = baseLayer.framebufferWidth; + spark.renderSize.y = baseLayer.framebufferHeight; + } + } } else { - throw new Error("Cannot unpush splat from non-last position"); + renderer.getDrawingBufferSize(spark.renderSize); + } + this.uniforms.renderSize.value.copy(spark.renderSize); + const typedCamera = camera; + this.uniforms.near.value = typedCamera.near; + this.uniforms.far.value = typedCamera.far; + const geometry = this.geometry; + geometry.instanceCount = spark.activeSplats; + const accumToWorld = new THREE__namespace.Matrix4(); + if (!this.display.extSplats) { + accumToWorld.makeTranslation(spark.display.viewOrigin); + } + const cameraToWorld = camera.matrixWorld.clone(); + const worldToCamera = cameraToWorld.invert(); + const accumToCamera = worldToCamera.multiply(accumToWorld); + accumToCamera.decompose( + this.uniforms.renderToViewPos.value, + this.uniforms.renderToViewQuat.value, + new THREE__namespace.Vector3() + ); + this.uniforms.renderToViewBasis.value.setFromMatrix4(accumToCamera); + this.uniforms.maxStdDev.value = spark.maxStdDev; + this.uniforms.minPixelRadius.value = spark.minPixelRadius; + this.uniforms.maxPixelRadius.value = spark.maxPixelRadius; + this.uniforms.minAlpha.value = spark.minAlpha; + this.uniforms.enable2DGS.value = spark.enable2DGS; + this.uniforms.lodInflate.value = spark.lodInflate; + this.uniforms.preBlurAmount.value = spark.preBlurAmount; + this.uniforms.blurAmount.value = spark.blurAmount; + this.uniforms.focalDistance.value = spark.focalDistance; + this.uniforms.apertureAngle.value = spark.apertureAngle; + this.uniforms.falloff.value = spark.falloff; + this.uniforms.clipXY.value = spark.clipXY; + this.uniforms.focalAdjustment.value = spark.focalAdjustment; + const outputColorSpace = currentRenderTarget === null ? renderer.outputColorSpace : isXRRenderTarget ? currentRenderTarget.texture.colorSpace : THREE__namespace.ColorManagement.workingColorSpace; + this.uniforms.encodeLinear.value = outputColorSpace !== THREE__namespace.SRGBColorSpace; + this.uniforms.ordering.value = spark.orderingTexture ?? _SparkRenderer.emptyOrdering; + this.uniforms.enableExtSplats.value = this.display.extSplats; + this.uniforms.enableCovSplats.value = this.display.covSplats; + if (this.display.extSplats) { + const extSplats = spark.display.getTextures(); + this.uniforms.extSplats.value = extSplats[0]; + this.uniforms.extSplats2.value = extSplats[1]; + } else { + const packedSplats = spark.display.getTextures(); + this.uniforms.extSplats.value = packedSplats[0]; + this.uniforms.extSplats2.value = packedSplats[0]; + } + this.uniforms.time.value = spark.display.time; + this.uniforms.deltaTime.value = spark.display.deltaTime; + this.uniforms.debugFlag.value = performance.now() / 1e3 % 2 < 1; + if (spark.autoUpdate && isNewFrame) { + const preUpdate = spark.preUpdate && !renderer.xr.isPresenting; + const useCamera = renderer.xr.isPresenting ? renderer.xr.getCamera() : camera; + if (preUpdate) { + spark.updateInternal({ + scene, + camera: useCamera, + autoUpdate: true + }); + } else { + if (spark.updateTimeoutId === -1) { + spark.updateTimeoutId = setTimeout(() => { + spark.updateTimeoutId = -1; + spark.updateInternal({ + scene, + camera: useCamera, + autoUpdate: true + }); + }, 1); + } + } + } + spark.dirty = false; + } + clearSplats() { + this.activeSplats = 0; + this.display.numSplats = 0; + this.setDirty(); + } + async update({ + scene, + camera + }) { + await this.updateInternal({ scene, camera, autoUpdate: false }); + } + // /** + // * Provide additional cameras to prefetch paged splat chunks without + // * affecting main LOD selection. + // */ + // setPrefetchCameras(cameras?: THREE.Camera[], lodScaleMultiplier = 1.0) { + // const next = cameras?.filter(Boolean) ?? []; + // const sameCameras = + // this.prefetchCameras.length === next.length && + // this.prefetchCameras.every((camera, index) => camera === next[index]); + // if (sameCameras && this.prefetchLodScale === lodScaleMultiplier) { + // return; + // } + // this.prefetchCameras = next; + // this.prefetchLodScale = lodScaleMultiplier; + // this.invalidatePrefetchCache(); + // } + // /** + // * Invalidate the prefetch meshes cache. Call this when SplatMeshes are + // * added or removed from the scene. + // */ + // invalidatePrefetchCache() { + // this.prefetchMeshesCacheScene = undefined; + // } + async updateInternal({ + scene, + camera, + autoUpdate + }) { + const renderer = this.renderer; + this.timer.update(); + const time = this.time ?? this.timer.getElapsed(); + const center = camera.getWorldPosition(new THREE__namespace.Vector3()); + const dir = camera.getWorldDirection(new THREE__namespace.Vector3()); + const viewChanged = center.distanceTo(this.sortedCenter) > 1e-3 || dir.dot(this.sortedDir) < 0.999; + const next = this.accumulators.pop(); + if (!next) { + throw new Error("No next accumulator"); + } + if (next === this.current) { + throw new Error( + "Next accumulator is the same as the current accumulator" + ); + } + const { version, mappingVersion, visibleGenerators, generate } = next.prepareGenerate({ + renderer, + scene, + time, + camera, + sortRadial: this.sortRadial ?? true, + renderSize: this.renderSize, + previous: this.current, + lodInstances: this.enableLod ? this.lodInstances : void 0 + }); + let doUpdate = true; + const needsUpdate = viewChanged || version !== this.current.version; + const mappingUpdated = mappingVersion !== this.display.mappingVersion; + if (autoUpdate && !needsUpdate) { + doUpdate = false; + } + if (mappingUpdated && this.sorting) { + doUpdate = false; } - } - ensureCapacity(numSplats) { - if (numSplats > this.maxSplats) { - const targetSplats = Math.max(numSplats, this.maxSplats * 2); - const newCenters = new Float32Array(targetSplats * 3); - const newScales = new Float32Array(targetSplats * 3); - const newQuaternions = new Float32Array(targetSplats * 4); - const newOpacities = new Float32Array(targetSplats); - const newColors = new Float32Array(targetSplats * 3); - newCenters.set(this.centers); - newScales.set(this.scales); - newQuaternions.set(this.quaternions); - newOpacities.set(this.opacities); - newColors.set(this.colors); - this.centers = newCenters; - this.scales = newScales; - this.quaternions = newQuaternions; - this.opacities = newOpacities; - this.colors = newColors; - if (this.sh1) { - const newSh1 = new Float32Array(targetSplats * 9); - newSh1.set(this.sh1); - this.sh1 = newSh1; - } - if (this.sh2) { - const newSh2 = new Float32Array(targetSplats * 15); - newSh2.set(this.sh2); - this.sh2 = newSh2; + if (!doUpdate) { + this.accumulators.push(next); + } else { + generate(); + if (this.flushAfterGenerate) { + const gl = renderer.getContext(); + gl.flush(); } - if (this.sh3) { - const newSh3 = new Float32Array(targetSplats * 21); - newSh3.set(this.sh3); - this.sh3 = newSh3; + if (this.display.mappingVersion === next.mappingVersion) { + this.accumulators.push(this.display); + this.display = next; + } else { + if (this.display !== this.current) { + this.accumulators.push(this.current); + } } - this.maxSplats = targetSplats; - } - } - ensureIndex(index) { - this.ensureCapacity(index + 1); - } - setCenter(index, x, y, z) { - this.centers[index * 3] = x; - this.centers[index * 3 + 1] = y; - this.centers[index * 3 + 2] = z; - } - setScale(index, scaleX, scaleY, scaleZ) { - this.scales[index * 3] = scaleX; - this.scales[index * 3 + 1] = scaleY; - this.scales[index * 3 + 2] = scaleZ; - } - setQuaternion(index, x, y, z, w) { - this.quaternions[index * 4] = x; - this.quaternions[index * 4 + 1] = y; - this.quaternions[index * 4 + 2] = z; - this.quaternions[index * 4 + 3] = w; - } - setOpacity(index, opacity) { - this.opacities[index] = opacity; - } - setColor(index, r, g, b) { - this.colors[index * 3] = r; - this.colors[index * 3 + 1] = g; - this.colors[index * 3 + 2] = b; - } - setSh1(index, sh1) { - if (!this.sh1) { - this.sh1 = new Float32Array(this.maxSplats * 9); + this.current = next; + this.sortDirty = true; + this.setDirty(); } - for (let j = 0; j < 9; ++j) { - this.sh1[index * 9 + j] = sh1[j]; + if (this.enableDriveLod) { + this.driveLod({ visibleGenerators, camera, scene }); } + await this.driveSort(); } - setSh2(index, sh2) { - if (!this.sh2) { - this.sh2 = new Float32Array(this.maxSplats * 15); + async driveSort() { + if (this.sorting || !this.sortDirty) { + return; } - for (let j = 0; j < 15; ++j) { - this.sh2[index * 15 + j] = sh2[j]; + if (this.sortTimeoutId !== -1) { + clearTimeout(this.sortTimeoutId); + this.sortTimeoutId = -1; } - } - setSh3(index, sh3) { - if (!this.sh3) { - this.sh3 = new Float32Array(this.maxSplats * 21); + const now = performance.now(); + const nextSortTime = this.lastSortTime ? this.lastSortTime + this.minSortIntervalMs : now; + if (now < nextSortTime) { + this.sortTimeoutId = setTimeout(() => { + this.sortTimeoutId = -1; + this.driveSort(); + }, nextSortTime - now); + return; } - for (let j = 0; j < 21; ++j) { - this.sh3[index * 21 + j] = sh3[j]; + this.sorting = true; + this.sortDirty = false; + this.lastSortTime = now; + if (this.readPause > 0) { + await new Promise((resolve) => setTimeout(resolve, this.readPause)); } - } -} -const _PackedSplats = class _PackedSplats { - constructor(options = {}) { - this.maxSplats = 0; - this.numSplats = 0; - this.packedArray = null; - this.maxSh = 3; - this.isInitialized = false; - this.target = null; - this.source = null; - this.needsUpdate = true; - this.extra = {}; - this.dyno = new DynoPackedSplats({ packedSplats: this }); - this.dynoRgbMinMaxLnScaleMinMax = new DynoVec4({ - key: "rgbMinMaxLnScaleMinMax", - value: new THREE__namespace.Vector4(0, 1, LN_SCALE_MIN, LN_SCALE_MAX), - update: (value) => { - var _a2, _b2, _c, _d; - value.set( - ((_a2 = this.splatEncoding) == null ? void 0 : _a2.rgbMin) ?? 0, - ((_b2 = this.splatEncoding) == null ? void 0 : _b2.rgbMax) ?? 1, - ((_c = this.splatEncoding) == null ? void 0 : _c.lnScaleMin) ?? LN_SCALE_MIN, - ((_d = this.splatEncoding) == null ? void 0 : _d.lnScaleMax) ?? LN_SCALE_MAX - ); - return value; - } - }); - this.dynoNumSh = new DynoInt({ - key: "numSh", - value: 0, - update: () => { - return Math.min(this.getNumSh(), this.maxSh); - } - }); - this.dynoShMax = new DynoVec3({ - key: "shMax", - value: new THREE__namespace.Vector3(), - update: (value) => { - var _a2, _b2, _c; - value.set( - ((_a2 = this.splatEncoding) == null ? void 0 : _a2.sh1Max) ?? 1, - ((_b2 = this.splatEncoding) == null ? void 0 : _b2.sh2Max) ?? 1, - ((_c = this.splatEncoding) == null ? void 0 : _c.sh3Max) ?? 1 - ); - return value; - } + const current = this.current; + this.sortedCenter.copy(current.viewOrigin); + this.sortedDir.copy(current.viewDirection); + const { numSplats, maxSplats } = current; + const rows = Math.max(1, Math.ceil(maxSplats / 16384)); + const orderingMaxSplats = rows * 16384; + this.maxSplats = Math.max(this.maxSplats, orderingMaxSplats); + const ordering = new Uint32Array(this.maxSplats); + const readback = Readback.ensureBuffer(maxSplats, this.readback32); + this.readback32 = readback; + await this.readbackDepth({ + current, + renderer: this.renderer, + numSplats, + readback }); - this.initialized = Promise.resolve(this); - this.reinitialize(options); - } - reinitialize(options) { - this.isInitialized = false; - this.extra = {}; - this.maxSplats = options.maxSplats ?? 0; - this.splatEncoding = options.splatEncoding; - this.lod = options.lod; - this.nonLod = options.nonLod; - if (options.url || options.fileBytes || options.stream || options.construct) { - this.initialized = this.asyncInitialize(options).then(() => { - this.isInitialized = true; - return this; - }); - } else { - this.initialize(options); - this.isInitialized = true; - this.initialized = Promise.resolve(this); + if (this.sortPause > 0) { + await new Promise((resolve) => setTimeout(resolve, this.sortPause)); } - } - initialize(options) { - this.extra = options.extra ?? {}; - this.splatEncoding = options.splatEncoding ?? this.splatEncoding; - this.lodSplats = options.lodSplats; - if (options.packedArray) { - this.packedArray = options.packedArray; - this.numSplats = options.numSplats ?? this.packedArray.length / 4; - this.maxSplats = Math.floor(this.packedArray.length / 4); - this.maxSplats = Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - this.numSplats = Math.min( - this.maxSplats, - options.numSplats ?? Number.POSITIVE_INFINITY - ); - } else { - this.maxSplats = options.maxSplats ?? 0; - this.numSplats = 0; + if (!this.sortWorker) { + this.sortWorker = new SplatWorker(); } - } - async asyncInitialize(options) { - const { - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - construct, - lod, - nonLod, - lodAbove - } = options; - this.lod = lod; - this.nonLod = nonLod; - const loader = new SplatLoader(); - if (fileBytes || url || stream) { - await loader.loadInternalAsync({ - packedSplats: this, - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - onProgress: options.onProgress, - lodAbove - }); + const result = await this.sortWorker.call("sortSplats32", { + numSplats, + readback, + ordering + }); + if (this.sortDelay > 0) { + await new Promise((resolve) => setTimeout(resolve, this.sortDelay)); } - if (construct) { - const maybePromise = construct(this); - if (maybePromise instanceof Promise) { - await maybePromise; + this.readback32 = result.readback; + this.activeSplats = result.activeSplats; + if (this.orderingTexture) { + if (rows > this.orderingTexture.image.height) { + this.orderingTexture.dispose(); + this.orderingTexture = null; } } - } - // Call this when you are finished with the PackedSplats and want to free - // any buffers it holds. - dispose() { - if (this.target) { - this.target.dispose(); - this.target.texture.source.data = null; - this.target = null; - } - if (this.source) { - this.source.dispose(); - this.source.source.data = null; - this.source = null; + if (!this.orderingTexture) { + const orderingTexture = new THREE__namespace.DataTexture( + result.ordering, + 4096, + rows, + THREE__namespace.RGBAIntegerFormat, + THREE__namespace.UnsignedIntType + ); + orderingTexture.internalFormat = "RGBA32UI"; + orderingTexture.needsUpdate = true; + this.orderingTexture = orderingTexture; + } else { + const renderer = this.renderer; + if (!renderer.properties.has(this.orderingTexture)) { + this.orderingTexture.needsUpdate = true; + } else { + uploadU32DataTextureRows( + renderer, + this.orderingTexture, + 4096, + rows, + result.ordering + ); + } } - this.packedArray = null; - for (const key in this.extra) { - const dyno2 = this.extra[key]; - if (dyno2 instanceof DynoUniform) { - const texture2 = dyno2.value; - if (texture2 == null ? void 0 : texture2.isTexture) { - texture2.dispose(); - texture2.source.data = null; - } + if (this.current.mappingVersion === current.mappingVersion) { + if (this.current.mappingVersion !== this.display.mappingVersion) { + this.accumulators.push(this.display); + this.display = this.current; } } - this.extra = {}; - this.disposeLodSplats(); - } - prepareFetchSplat() { - } - getNumSplats() { - return this.numSplats; - } - hasRgbDir() { - return Math.min(this.getNumSh(), this.maxSh) > 0; + this.sorting = false; + this.setDirty(); + this.driveSort(); } - getNumSh() { - return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3 ? 2 : 3; + ensureLodWorker() { + if (!this.lodWorker) { + this.lodWorker = new SplatWorker(); + } + return this.lodWorker; } - setMaxSh(maxSh) { - this.maxSh = maxSh; + defaultSplatTarget() { + return isOculus() ? 5e5 : isVisionPro() ? 75e4 : isAndroid() ? 1e6 : isIos() ? 15e5 : 25e5; } - fetchSplat({ - index, - viewOrigin + driveLod({ + visibleGenerators, + camera, + scene }) { - let gsplat = readPackedSplat(this.dyno, index); - if (this.hasRgbDir() && viewOrigin) { - const splatCenter = splitGsplat(gsplat).outputs.center; - const viewDir = normalize(sub(splatCenter, viewOrigin)); - const { sh1Texture, sh2Texture, sh3Texture } = this.ensureShTextures(); - let { rgb } = evaluatePackedSH({ - coord: splatTexCoord(index), - viewDir, - numSh: this.dynoNumSh, - sh1Texture, - sh2Texture, - sh3Texture, - shMax: this.dynoShMax - }); - rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); - gsplat = combineGsplat({ gsplat, rgb }); - } - return gsplat; - } - ensureShTextures() { - if (!this.extra.sh1) { - return {}; - } - let sh1Texture = this.extra.sh1Texture; - if (!sh1Texture) { - let sh1 = this.extra.sh1; - const { width, height, depth, maxSplats } = getTextureSize( - sh1.length / 2 - ); - if (sh1.length < maxSplats * 2) { - const newSh1 = new Uint32Array(maxSplats * 2); - newSh1.set(sh1); - this.extra.sh1 = newSh1; - sh1 = newSh1; - } - const texture2 = new THREE__namespace.DataArrayTexture(sh1, width, height, depth); - texture2.format = THREE__namespace.RGIntegerFormat; - texture2.type = THREE__namespace.UnsignedIntType; - texture2.internalFormat = "RG32UI"; - texture2.needsUpdate = true; - sh1Texture = new DynoUsampler2DArray({ - value: texture2, - key: "sh1" - }); - this.extra.sh1Texture = sh1Texture; - } - if (!this.extra.sh2) { - return { sh1Texture }; + var _a2, _b2; + const defaultSplatCount = this.defaultSplatTarget(); + const splatCount = this.lodSplatCount ?? defaultSplatCount; + const maxSplats = splatCount * this.lodSplatScale; + let pixelScaleLimit = 0; + if (camera instanceof THREE__namespace.PerspectiveCamera) { + const tanYfov = Math.tan(0.5 * camera.fov * Math.PI / 180); + pixelScaleLimit = 2 * tanYfov / this.renderSize.y; + } else if (camera instanceof THREE__namespace.OrthographicCamera) { + const viewHeight = (camera.top - camera.bottom) / camera.zoom; + const viewWidth = (camera.right - camera.left) / camera.zoom; + const pxY = viewHeight / Math.max(1, this.renderSize.y); + const pxX = viewWidth / Math.max(1, this.renderSize.x); + pixelScaleLimit = Math.min(pxX, pxY); } - let sh2Texture = this.extra.sh2Texture; - if (!sh2Texture) { - let sh2 = this.extra.sh2; - const { width, height, depth, maxSplats } = getTextureSize( - sh2.length / 4 - ); - if (sh2.length < maxSplats * 4) { - const newSh2 = new Uint32Array(maxSplats * 4); - newSh2.set(sh2); - this.extra.sh2 = newSh2; - sh2 = newSh2; - } - const texture2 = new THREE__namespace.DataArrayTexture(sh2, width, height, depth); - texture2.format = THREE__namespace.RGBAIntegerFormat; - texture2.type = THREE__namespace.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - sh2Texture = new DynoUsampler2DArray({ - value: texture2, - key: "sh2" - }); - this.extra.sh2Texture = sh2Texture; + pixelScaleLimit *= this.lodRenderScale; + const viewPos = new THREE__namespace.Vector3(); + const viewQuat = new THREE__namespace.Quaternion(); + this.current.viewToWorld.decompose(viewPos, viewQuat, new THREE__namespace.Vector3()); + if (this.lodPosOverride) { + viewPos.copy(this.lodPosOverride); } - if (!this.extra.sh3) { - return { sh1Texture, sh2Texture }; + if (this.lodQuatOverride) { + viewQuat.copy(this.lodQuatOverride).normalize(); } - let sh3Texture = this.extra.sh3Texture; - if (!sh3Texture) { - let sh3 = this.extra.sh3; - const { width, height, depth, maxSplats } = getTextureSize( - sh3.length / 4 - ); - if (sh3.length < maxSplats * 4) { - const newSh3 = new Uint32Array(maxSplats * 4); - newSh3.set(sh3); - this.extra.sh3 = newSh3; - sh3 = newSh3; + if (this.lastLod) { + if (this.lastLod.pixelScaleLimit !== pixelScaleLimit || this.lastLod.maxSplats !== maxSplats) { + this.lodDirty = true; } - const texture2 = new THREE__namespace.DataArrayTexture(sh3, width, height, depth); - texture2.format = THREE__namespace.RGBAIntegerFormat; - texture2.type = THREE__namespace.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - sh3Texture = new DynoUsampler2DArray({ - value: texture2, - key: "sh3" - }); - this.extra.sh3Texture = sh3Texture; - } - return { sh1Texture, sh2Texture, sh3Texture }; - } - // Ensures that this.packedArray can fit numSplats Gsplats. If it's too small, - // resize exponentially and copy over the original data. - // - // Typically you don't need to call this, because calling this.setSplat(index, ...) - // and this.pushSplat(...) will automatically call ensureSplats() so we have - // enough splats. - ensureSplats(numSplats) { - const targetSize = numSplats <= this.maxSplats ? this.maxSplats : ( - // Grow exponentially to avoid frequent reallocations - Math.max(numSplats, 2 * this.maxSplats) - ); - const currentSize = !this.packedArray ? 0 : this.packedArray.length / 4; - if (!this.packedArray || targetSize > currentSize) { - this.maxSplats = getTextureSize(targetSize).maxSplats; - const newArray2 = new Uint32Array(this.maxSplats * 4); - if (this.packedArray) { - newArray2.set(this.packedArray); + const distance2 = viewPos.distanceTo(this.lastLod.pos); + const distanceRamp = Math.max(0, 1 - distance2 / 1); + const dot2 = viewQuat.dot(this.lastLod.quat); + const quatRamp = Math.max(0, 1 - (1 - dot2) / 0.01); + const similarity = distanceRamp * quatRamp; + if (similarity < 0.999) { + this.lodDirty = true; } - this.packedArray = newArray2; - } - return this.packedArray; - } - // Ensure the extra array for the given level is large enough to hold numSplats - ensureSplatsSh(level, numSplats) { - let wordsPerSplat; - let key; - if (level === 0) { - return this.ensureSplats(numSplats); } - if (level === 1) { - wordsPerSplat = 2; - key = "sh1"; - } else if (level === 2) { - wordsPerSplat = 4; - key = "sh2"; - } else if (level === 3) { - wordsPerSplat = 4; - key = "sh3"; + const lodMeshes = !this.enableLod ? [] : visibleGenerators.filter((generator) => { + var _a3, _b3; + return generator instanceof SplatMesh && (((_a3 = generator.packedSplats) == null ? void 0 : _a3.lodSplats) || ((_b3 = generator.extSplats) == null ? void 0 : _b3.lodSplats) || generator.paged) && generator.enableLod !== false; + }); + const hasPaged = lodMeshes.some((mesh) => mesh.paged); + if (this.lodMeshes.length !== lodMeshes.length) { + this.lodDirty = true; } else { - throw new Error(`Invalid level: ${level}`); + if (lodMeshes.some( + (m, i) => m !== this.lodMeshes[i].mesh || m.version > this.lodMeshes[i].version + )) { + this.lodDirty = true; + } } - let maxSplats = !this.extra[key] ? 0 : this.extra[key].length / wordsPerSplat; - const targetSize = numSplats <= maxSplats ? maxSplats : Math.max(numSplats, 2 * maxSplats); - if (!this.extra[key] || targetSize > maxSplats) { - maxSplats = getTextureSize(targetSize).maxSplats; - const newArray2 = new Uint32Array(maxSplats * wordsPerSplat); - if (this.extra[key]) { - newArray2.set(this.extra[key]); + this.lodMeshes = lodMeshes.map((mesh) => ({ + mesh, + version: mesh.version + 1 + })); + this.lodInitQueue = []; + const now = performance.now(); + for (const mesh of lodMeshes) { + const splats = ((_a2 = mesh.packedSplats) == null ? void 0 : _a2.lodSplats) ?? ((_b2 = mesh.extSplats) == null ? void 0 : _b2.lodSplats) ?? mesh.paged; + if (splats) { + const record = this.lodIds.get(splats); + if (record) { + record.lastTouched = now; + } else { + this.lodInitQueue.push(splats); + } } - this.extra[key] = newArray2; } - return this.extra[key]; + this.ensureLodWorker().tryExclusive(async (worker) => { + if (hasPaged && !this.pager) { + this.pager = new SplatPager({ + renderer: this.renderer, + extSplats: this.pagedExtSplats, + maxSplats: this.maxPagedSplats, + numFetchers: this.numLodFetchers + }); + const { lodId } = await worker.call("newLodTree", { + capacity: this.pager.maxSplats + }); + this.pagerId = lodId; + } + if (this.pager) { + for (const { mesh } of this.lodMeshes) { + if (mesh.paged && !mesh.paged.pager) { + mesh.paged.pager = this.pager; + } + } + } + if (this.lodInitQueue.length > 0) { + const lodInitQueue = this.lodInitQueue; + this.lodInitQueue = []; + while (lodInitQueue.length > 0) { + const splats = lodInitQueue.shift(); + if (splats) { + await this.initLodTree(worker, splats); + this.lodDirty = true; + } + } + } + if (this.pager) { + const updates = this.pager.consumeLodTreeUpdates(); + for (const { splats, page, chunk, numSplats, lodTree } of updates) { + const record = this.lodIds.get(splats); + if (record) { + if (lodTree && chunk === 0) { + record.rootPage = page; + } + this.lodUpdates.push({ + lodId: record.lodId, + pageBase: page * this.pager.pageSplats, + chunkBase: chunk * this.pager.pageSplats, + count: numSplats, + lodTreeData: lodTree + }); + } + } + } + if (this.lodUpdates.length > 0) { + const lodUpdates = this.lodUpdates; + this.lodUpdates = []; + await worker.call("updateLodTrees", { ranges: lodUpdates }); + this.lodDirty = true; + } + if (this.lodDirty) { + const now2 = performance.now(); + const deltaPred = new THREE__namespace.Vector3(); + if (this.lastLod) { + const deltaTime = Math.max(1, now2 - this.lastLod.timestamp); + deltaPred.copy(viewPos).sub(this.lastLod.pos).multiplyScalar(this.lastTraverseTime / deltaTime); + } + this.lastLod = { + pos: viewPos, + quat: viewQuat, + pixelScaleLimit, + maxSplats, + timestamp: now2 + }; + this.lodDirty = false; + await this.updateLodInstances( + worker, + deltaPred, + lodMeshes, + maxSplats, + viewPos, + viewQuat, + pixelScaleLimit + ); + this.currentLod = this.lastLod; + this.setDirty(); + } + await this.cleanupLodTrees(worker); + }); } - // Unpack the 16-byte Gsplat data at index into the Three.js components - // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, - // opacity: number 0..1, color: THREE.Color 0..1. - getSplat(index) { - if (!this.packedArray || index >= this.numSplats) { - throw new Error("Invalid index"); + async initLodTree(worker, splats) { + if (splats instanceof PackedSplats || splats instanceof ExtSplats) { + const { lodId } = await worker.call("initLodTree", { + numSplats: splats.numSplats ?? 0, + lodTree: splats.extra.lodTree.slice() + }); + this.lodIds.set(splats, { lodId, lastTouched: performance.now() }); + this.lodIdToSplats.set(lodId, splats); + } else { + const { lodId } = await worker.call("newSharedLodTree", { + lodId: this.pagerId + }); + this.lodIds.set(splats, { lodId, lastTouched: performance.now() }); + this.lodIdToSplats.set(lodId, splats); } - return unpackSplat(this.packedArray, index, this.splatEncoding); } - // Set all PackedSplat components at index with the provided Gsplat attributes - // (can be the same objects returned by getSplat). Ensures there is capacity - // for at least index+1 Gsplats. - setSplat(index, center, scales, quaternion, opacity, color) { - const packedSplats = this.ensureSplats(index + 1); - setPackedSplat( - packedSplats, - index, - center.x, - center.y, - center.z, - scales.x, - scales.y, - scales.z, - quaternion.x, - quaternion.y, - quaternion.z, - quaternion.w, - opacity, - color.r, - color.g, - color.b + async updateLodInstances(worker, deltaPred, lodMeshes, maxSplats, viewPos, viewQuat, pixelScaleLimit) { + const uuidToMesh = /* @__PURE__ */ new Map(); + const cameraToWorld = new THREE__namespace.Matrix4().compose( + viewPos, + viewQuat, + new THREE__namespace.Vector3().setScalar(1) ); - this.numSplats = Math.max(this.numSplats, index + 1); - } - // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on - // construction where you just want to iterate and create a collection of Gsplats. - pushSplat(center, scales, quaternion, opacity, color) { - const packedSplats = this.ensureSplats(this.numSplats + 1); - setPackedSplat( - packedSplats, - this.numSplats, - center.x, - center.y, - center.z, - scales.x, - scales.y, - scales.z, - quaternion.x, - quaternion.y, - quaternion.z, - quaternion.w, - opacity, - color.r, - color.g, - color.b + const instances = lodMeshes.reduce( + (instances2, mesh) => { + var _a2, _b2; + uuidToMesh.set(mesh.uuid, mesh); + const viewToObject = mesh.matrixWorld.clone().invert().multiply(cameraToWorld); + const splats = ((_a2 = mesh.packedSplats) == null ? void 0 : _a2.lodSplats) ?? ((_b2 = mesh.extSplats) == null ? void 0 : _b2.lodSplats) ?? mesh.paged; + if (!splats) { + return instances2; + } + const record = this.lodIds.get(splats); + if (!record) { + return instances2; + } + if (this.pager && mesh.paged && record.rootPage === void 0) { + return instances2; + } + instances2[mesh.uuid] = { + instanceId: mesh.uuid, + lodId: record.lodId, + rootPage: record.rootPage, + viewToObjectCols: viewToObject.elements, + lodScale: mesh.lodScale, + behindFoveate: mesh.behindFoveate ?? this.behindFoveate, + coneFov0: mesh.coneFov0 ?? this.coneFov0, + coneFov: mesh.coneFov ?? this.coneFov, + coneFoveate: mesh.coneFoveate ?? this.coneFoveate + }; + return instances2; + }, + {} ); - ++this.numSplats; - } - // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat - // and invoke the callback function with the Gsplat attributes. - forEachSplat(callback) { - if (!this.packedArray || !this.numSplats) { - return; + const traverseStart = performance.now(); + const result = await worker.call("traverseLodTrees", { + maxSplats, + pixelScaleLimit, + lastPixelLimit: this.lastPixelLimit, + instances, + traverseMode: this.lodTraverseMode + }); + this.lastTraverseTime = performance.now() - traverseStart; + const { keyIndices, chunks, pixelLimit } = result; + this.lastPixelLimit = pixelLimit; + const totalLodSplats = Object.values(keyIndices).reduce( + (sum, { numSplats }) => sum + numSplats, + 0 + ); + this.updateLodIndices(uuidToMesh, keyIndices); + if (this.pager) { + this.pager.processUploads(); + const pagedMeshes = lodMeshes.map((mesh) => { + if (!mesh.paged || !this.pager) { + return null; + } + const meshPosition = mesh.getWorldPosition(new THREE__namespace.Vector3()); + return { + splats: mesh.paged, + distance: meshPosition.distanceTo(viewPos) + }; + }).filter((result2) => result2 !== null); + if (!this.pageSizeWarning && pagedMeshes.length > this.pager.maxPages) { + this.pageSizeWarning = true; + console.warn( + `# paged SplatMeshes exceeds maxPages: ${pagedMeshes.length} > ${this.pager.maxPages}` + ); + } + pagedMeshes.sort((a, b) => a.distance - b.distance); + this.pager.fetchPriority = pagedMeshes.map(({ splats }) => ({ + splats, + chunk: 0 + })); + for (const [lodId, chunk] of chunks) { + const splats = this.lodIdToSplats.get(lodId); + if (splats instanceof PagedSplats) { + if (chunk !== 0) { + this.pager.fetchPriority.push({ splats, chunk }); + } + } + } + this.pager.autoDrive = this.enableLodFetching; + if (this.enableLodFetching) { + this.pager.driveFetchers(); + } } - for (let i = 0; i < this.numSplats; ++i) { - const unpacked = unpackSplat(this.packedArray, i, this.splatEncoding); - callback( - i, - unpacked.center, - unpacked.scales, - unpacked.quaternion, - unpacked.opacity, - unpacked.color + if (this.lodRaycast && performance.now() - this.lastLodRaycastTime >= this.lodRaycastIntervalMs) { + this.lastLodRaycastTime = performance.now(); + const traverseStart2 = performance.now(); + const result2 = await worker.call("traverseLodTrees", { + maxSplats: Math.min(this.lodRaycast, Math.round(totalLodSplats * 0.1)), + pixelScaleLimit, + instances + }); + performance.now() - traverseStart2; + const { keyIndices: keyIndices2 } = result2; + Object.values(keyIndices2).reduce( + (sum, { numSplats }) => sum + numSplats, + 0 ); + for (const [uuid, countIndices] of Object.entries(keyIndices2)) { + const mesh = uuidToMesh.get(uuid); + mesh.raycastIndices = countIndices; + } } } - // Ensures our PackedSplats.target render target has enough space to generate - // maxSplats total Gsplats, and reallocate if not large enough. - ensureGenerate(maxSplats) { - if (this.target && (maxSplats ?? 1) <= this.maxSplats) { - return false; + async cleanupLodTrees(worker) { + var _a2; + const DISPOSE_TIMEOUT_MS = 3e3; + const now = performance.now(); + let oldest = null; + for (const [splats, record] of this.lodIds.entries()) { + if (oldest == null || record.lastTouched < oldest.lastTouched) { + oldest = { + splats, + lastTouched: record.lastTouched, + lodId: record.lodId + }; + } } - if (this.target) { - this.target.dispose(); + if (!oldest || oldest.lastTouched > now - DISPOSE_TIMEOUT_MS) { + return; } - const textureSize2 = getTextureSize(maxSplats ?? 1); - const { width, height, depth } = textureSize2; - this.maxSplats = textureSize2.maxSplats; - this.target = new THREE__namespace.WebGLArrayRenderTarget(width, height, depth, { - depthBuffer: false, - stencilBuffer: false, - generateMipmaps: false, - magFilter: THREE__namespace.NearestFilter, - minFilter: THREE__namespace.NearestFilter - }); - this.target.texture.format = THREE__namespace.RGBAIntegerFormat; - this.target.texture.type = THREE__namespace.UnsignedIntType; - this.target.texture.internalFormat = "RGBA32UI"; - this.target.scissorTest = true; - return true; - } - // Given an array of splatCounts (.numSplats for each - // SplatGenerator/SplatMesh in the scene), compute a - // "mapping layout" in the composite array of generated outputs. - generateMapping(splatCounts) { - let maxSplats = 0; - const mapping = splatCounts.map((numSplats) => { - const base = maxSplats; - const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - maxSplats += rounded; - return { base, count: numSplats }; - }); - return { maxSplats, mapping }; - } - // Returns a THREE.DataArrayTexture representing the PackedSplats content as - // a Uint32x4 data array texture (2048 x 2048 x depth in size) - getTexture() { - if (this.target) { - return this.target.texture; + this.lodIds.delete(oldest.splats); + this.lodIdToSplats.delete(oldest.lodId); + for (const [mesh, instance] of this.lodInstances.entries()) { + if (instance.lodId === oldest.lodId) { + instance.texture.dispose(); + this.lodInstances.delete(mesh); + } } - if (this.source || this.packedArray) { - const source = this.maybeUpdateSource(); - return source; + if (oldest.splats instanceof PagedSplats) { + (_a2 = this.pager) == null ? void 0 : _a2.removeSplats(oldest.splats); } - return _PackedSplats.getEmptyArray; + await worker.call("disposeLodTree", { lodId: oldest.lodId }); } - // Check if source texture needs to be created/updated - maybeUpdateSource() { - if (!this.packedArray) { - throw new Error("No packed splats"); - } - if (this.needsUpdate || !this.source) { - this.needsUpdate = false; - if (this.source) { - const { width, height, depth } = this.source.image; - if (this.maxSplats !== width * height * depth) { - this.source.dispose(); - this.source = null; + updateLodIndices(uuidToMesh, keyIndices) { + for (const [uuid, countIndices] of Object.entries(keyIndices)) { + const { lodId, numSplats, indices } = countIndices; + const mesh = uuidToMesh.get(uuid); + if (mesh.paged) { + mesh.paged.update(numSplats, indices); + } else { + let instance = this.lodInstances.get(mesh); + if (instance) { + if (indices.length > instance.indices.length) { + instance.texture.dispose(); + instance = void 0; + } + } + const rows = Math.ceil(indices.length / 16384); + if (!instance) { + const capacity = rows * 16384; + if (indices.length !== capacity) { + throw new Error("Indices length != capacity"); + } + const texture2 = new THREE__namespace.DataTexture( + indices, + 4096, + rows, + THREE__namespace.RGBAIntegerFormat, + THREE__namespace.UnsignedIntType + ); + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + instance = { lodId, numSplats, indices, texture: texture2 }; + this.lodInstances.set(mesh, instance); + } else { + instance.numSplats = numSplats; + const renderer = this.renderer; + const gl = renderer.getContext(); + if (renderer.properties.has(instance.texture)) { + const props = renderer.properties.get(instance.texture); + const glTexture = props.__webglTexture; + if (!glTexture) { + throw new Error("lodIndices texture not found"); + } + renderer.state.activeTexture(gl.TEXTURE0); + renderer.state.bindTexture(gl.TEXTURE_2D, glTexture); + gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null); + gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false); + gl.texSubImage2D( + gl.TEXTURE_2D, + 0, + 0, + 0, + 4096, + rows, + gl.RGBA_INTEGER, + gl.UNSIGNED_INT, + indices + ); + renderer.state.bindTexture(gl.TEXTURE_2D, null); + } } } - if (!this.source) { - const { width, height, depth } = getTextureSize(this.maxSplats); - this.source = new THREE__namespace.DataArrayTexture( - this.packedArray, - width, - height, - depth - ); - this.source.format = THREE__namespace.RGBAIntegerFormat; - this.source.type = THREE__namespace.UnsignedIntType; - this.source.internalFormat = "RGBA32UI"; - this.source.needsUpdate = true; - } else if (this.packedArray.buffer !== this.source.image.data.buffer) { - this.source.image.data = new Uint8Array(this.packedArray.buffer); - } - this.source.needsUpdate = true; + mesh.updateMappingVersion(); } - return this.source; } - // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator, - // generating it if necessary and caching the result. - prepareProgramMaterial(generator) { - let program = _PackedSplats.generatorProgram.get(generator); - if (!program) { - const graph = dynoBlock( - { index: "int" }, - {}, - ({ index }, _outputs, { roots }) => { - generator.inputs.index = index; - const gsplat = generator.outputs.gsplat; - const output = outputPackedSplat( - gsplat, - this.dynoRgbMinMaxLnScaleMinMax - ); - roots.push(output); - return void 0; - } + async readbackDepth({ + current, + renderer, + numSplats, + readback + }) { + if (!renderer) { + throw new Error("No renderer"); + } + if (!current.target) { + throw new Error("No target"); + } + const roundedCount = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + if (readback.byteLength < roundedCount * 4) { + throw new Error( + `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}` + ); + } + const readbackUint8 = new Uint8Array(readback.buffer); + const renderState = this.saveRenderState(renderer); + const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT; + let baseIndex = 0; + const promises = []; + while (baseIndex < numSplats) { + const layer = Math.floor(baseIndex / layerSize); + const layerBase = layer * layerSize; + const layerYEnd = Math.min( + SPLAT_TEX_HEIGHT, + Math.ceil((numSplats - layerBase) / SPLAT_TEX_WIDTH) + ); + const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4; + const subReadback = readbackUint8.subarray( + layerBase * 4, + layerBase * 4 + readbackSize + ); + renderer.setRenderTarget(current.target, layer); + const promise = renderer.readRenderTargetPixelsAsync( + current.target, + 0, + 0, + SPLAT_TEX_WIDTH, + layerYEnd, + subReadback, + void 0, + current.extSplats ? 2 : 1 ); - if (!_PackedSplats.programTemplate) { - _PackedSplats.programTemplate = new DynoProgramTemplate( - getShaders().computeUvec4Template - ); + promises.push(promise); + if (this.flushAfterRead) { + const gl = renderer.getContext(); + gl.flush(); } - program = new DynoProgram({ - graph, - inputs: { index: "_index" }, - outputs: { output: "target" }, - template: _PackedSplats.programTemplate - }); - Object.assign(program.uniforms, { - targetLayer: { value: 0 }, - targetBase: { value: 0 }, - targetCount: { value: 0 } - }); - _PackedSplats.generatorProgram.set(generator, program); + baseIndex += SPLAT_TEX_WIDTH * layerYEnd; } - const material = program.prepareMaterial(); - _PackedSplats.fullScreenQuad.material = material; - return { program, material }; + this.resetRenderState(renderer, renderState); + return Promise.all(promises).then(() => readback); } saveRenderState(renderer) { return { @@ -14741,1681 +14266,1036 @@ const _PackedSplats = class _PackedSplats { renderer.xr.enabled = state.xrEnabled; renderer.autoClear = state.autoClear; } - // Executes a dyno program specified by generator which is any DynoBlock that - // maps { index: "int" } to { gsplat: Gsplat }. This is called in - // SparkRenderer.updateInternal() to re-generate Gsplats in the scene for - // SplatGenerator instances whose version is newer than what was generated - // for it last time. - generate({ - generator, - base, - count, - renderer - }) { - if (!this.target) { - throw new Error("Target must be initialized with ensureSplats"); - } - if (base + count > this.maxSplats) { - throw new Error("Base + count exceeds maxSplats"); - } - const { program, material } = this.prepareProgramMaterial(generator); - program.update(); - const renderState = this.saveRenderState(renderer); - const nextBase = Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT; - material.uniforms.targetBase.value = base; - material.uniforms.targetCount.value = count; - while (base < nextBase) { - const layer = Math.floor(base / layerSize); - material.uniforms.targetLayer.value = layer; - const layerBase = layer * layerSize; - const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH); - const layerYEnd = Math.min( - SPLAT_TEX_HEIGHT, - Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH) - ); - this.target.scissor.set( - 0, - layerYStart, - SPLAT_TEX_WIDTH, - layerYEnd - layerYStart - ); - renderer.setRenderTarget(this.target, layer); - renderer.xr.enabled = false; - renderer.autoClear = false; - _PackedSplats.fullScreenQuad.render(renderer); - base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart); + render(scene, camera) { + try { + _SparkRenderer.sparkOverride = this; + this.renderer.render(scene, camera); + } finally { + _SparkRenderer.sparkOverride = void 0; } - this.resetRenderState(renderer, renderState); - return { nextBase }; } - disposeLodSplats() { - if (this.lodSplats) { - this.lodSplats.dispose(); - this.lodSplats = void 0; + renderTarget({ + scene, + camera + }) { + const target = this.backTarget ?? this.target; + if (!target) { + throw new Error("No target"); } - } - async createLodSplats({ - rgbaArray, - quality - } = {}) { - const lodBase = typeof this.lod === "number" ? Math.max(1.1, Math.min(2, this.lod)) : quality ? 1.75 : 1.5; - const packedArray = this.packedArray.slice(); - const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : void 0; - const extra = { - sh1: this.extra.sh1 ? this.extra.sh1.slice() : void 0, - sh2: this.extra.sh2 ? this.extra.sh2.slice() : void 0, - sh3: this.extra.sh3 ? this.extra.sh3.slice() : void 0 - }; - const decoded = await workerPool.withWorker(async (worker) => { - return await worker.call( - quality ? "qualityLodPackedSplats" : "tinyLodPackedSplats", - { - numSplats: this.numSplats, - packedArray, - extra, - lodBase, - rgba, - encoding: this.splatEncoding ?? DEFAULT_SPLAT_ENCODING - } - ); - }); - const lodSplats = new _PackedSplats(decoded); - if (this.lodSplats) { - this.lodSplats.dispose(); + const previousTarget = this.renderer.getRenderTarget(); + try { + this.renderer.setRenderTarget(target); + _SparkRenderer.sparkOverride = this; + this.renderer.render(scene, camera); + } finally { + _SparkRenderer.sparkOverride = void 0; + this.renderer.setRenderTarget(previousTarget); } - this.lodSplats = lodSplats; - this.nonLod = true; - this.lod = quality ? "quality" : true; - } - extractSplats(indices, pageColoring) { - const maxSplats = getTextureSize(indices.length).maxSplats; - const newSplats = new _PackedSplats({ maxSplats }); - for (let i = 0; i < indices.length; i++) { - const splat = this.getSplat(indices[i]); - if (pageColoring) { - let hue = (indices[i] >>> 16) * 0.61803398875; - hue = hue - Math.floor(hue); - const r = Math.max(0, Math.min(1, Math.abs(hue * 6 - 3) - 1)); - const g = Math.max(0, Math.min(1, Math.abs(hue * 6 + 1) - 1)); - const b = Math.max(0, Math.min(1, Math.abs(hue * 6 - 1) - 1)); - splat.color.r *= r; - splat.color.g *= g; - splat.color.b *= b; - } - newSplats.pushSplat( - splat.center, - splat.scales, - splat.quaternion, - splat.opacity, - splat.color - ); + if (target !== this.target) { + [this.target, this.backTarget] = [this.backTarget, this.target]; } - return newSplats; + return target; } -}; -_PackedSplats.getEmptyArray = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 4); - const texture2 = new THREE__namespace.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE__namespace.RGBAIntegerFormat; - texture2.type = THREE__namespace.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_PackedSplats.programTemplate = null; -_PackedSplats.generatorProgram = /* @__PURE__ */ new WeakMap(); -_PackedSplats.fullScreenQuad = new Pass_js.FullScreenQuad( - new THREE__namespace.RawShaderMaterial({ visible: false }) -); -_PackedSplats.emptyUint32x4 = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 4); - const texture2 = new THREE__namespace.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE__namespace.RGBAIntegerFormat; - texture2.type = THREE__namespace.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_PackedSplats.emptyUint32x2 = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 2); - const texture2 = new THREE__namespace.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE__namespace.RGIntegerFormat; - texture2.type = THREE__namespace.UnsignedIntType; - texture2.internalFormat = "RG32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -let PackedSplats = _PackedSplats; -class DynoPackedSplats extends DynoUniform { - constructor({ packedSplats } = {}) { - super({ - key: "packedSplats", - type: TPackedSplats, - globals: () => [definePackedSplats], - value: { - textureArray: PackedSplats.getEmptyArray, - numSplats: 0, - rgbMinMaxLnScaleMinMax: new THREE__namespace.Vector4( - 0, - 1, - LN_SCALE_MIN, - LN_SCALE_MAX - ), - lodOpacity: false - }, - update: (value) => { - var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l; - value.textureArray = ((_a2 = this.packedSplats) == null ? void 0 : _a2.getTexture()) ?? PackedSplats.getEmptyArray; - value.numSplats = ((_b2 = this.packedSplats) == null ? void 0 : _b2.numSplats) ?? 0; - value.rgbMinMaxLnScaleMinMax.set( - ((_d = (_c = this.packedSplats) == null ? void 0 : _c.splatEncoding) == null ? void 0 : _d.rgbMin) ?? 0, - ((_f = (_e = this.packedSplats) == null ? void 0 : _e.splatEncoding) == null ? void 0 : _f.rgbMax) ?? 1, - ((_h = (_g = this.packedSplats) == null ? void 0 : _g.splatEncoding) == null ? void 0 : _h.lnScaleMin) ?? LN_SCALE_MIN, - ((_j = (_i = this.packedSplats) == null ? void 0 : _i.splatEncoding) == null ? void 0 : _j.lnScaleMax) ?? LN_SCALE_MAX - ); - value.lodOpacity = ((_l = (_k = this.packedSplats) == null ? void 0 : _k.splatEncoding) == null ? void 0 : _l.lodOpacity) ?? false; - return value; + // Read back the previously rendered target image as a Uint8Array of packed + // RGBA values (in that order). Subsequent calls to this.readTarget() + // will reuse the same buffers to minimize memory allocations. + async readTarget() { + if (!this.target) { + throw new Error("Must initialize with target"); + } + const { width, height } = this.target; + const byteSize = width * height * 4; + if (!this.superPixels || this.superPixels.length < byteSize) { + this.superPixels = new Uint8Array(byteSize); + } + const superPixels = this.superPixels; + await this.renderer.readRenderTargetPixelsAsync( + this.target, + 0, + 0, + width, + height, + superPixels + ); + const { superXY } = this; + if (superXY === 1) { + return superPixels; + } + const subWidth = width / superXY; + const subHeight = height / superXY; + const subSize = subWidth * subHeight * 4; + if (!this.targetPixels || this.targetPixels.length < subSize) { + this.targetPixels = new Uint8Array(subSize); + } + const targetPixels = this.targetPixels; + const super2 = superXY * superXY; + for (let y = 0; y < subHeight; y++) { + const row = y * subWidth; + for (let x = 0; x < subWidth; x++) { + const superCol = x * superXY; + let r = 0; + let g = 0; + let b = 0; + let a = 0; + for (let sy = 0; sy < superXY; sy++) { + const superRow = (y * superXY + sy) * width; + for (let sx = 0; sx < superXY; sx++) { + const superIndex = (superRow + superCol + sx) * 4; + r += superPixels[superIndex]; + g += superPixels[superIndex + 1]; + b += superPixels[superIndex + 2]; + a += superPixels[superIndex + 3]; + } + } + const pixelIndex = (row + x) * 4; + targetPixels[pixelIndex] = r / super2; + targetPixels[pixelIndex + 1] = g / super2; + targetPixels[pixelIndex + 2] = b / super2; + targetPixels[pixelIndex + 3] = a / super2; } - }); - this.packedSplats = packedSplats; + } + return targetPixels; } -} -const defineEvalPackedSH1 = unindent(` - vec3 evaluatePackedSH1(uvec2 packedData, vec3 viewDir, float sh1Max) { - // Extract sint7 values packed into 2 x uint32 - vec3 sh1_0 = vec3(ivec3( - int(packedData.x << 25u) >> 25, - int(packedData.x << 18u) >> 25, - int(packedData.x << 11u) >> 25 - )); - vec3 sh1_1 = vec3(ivec3( - int(packedData.x << 4u) >> 25, - int((packedData.x >> 3u) | (packedData.y << 29u)) >> 25, - int(packedData.y << 22u) >> 25 - )); - vec3 sh1_2 = vec3(ivec3( - int(packedData.y << 15u) >> 25, - int(packedData.y << 8u) >> 25, - int(packedData.y << 1u) >> 25 - )); - - vec3 rgb = sh1_0 * (-0.4886025 * viewDir.y) - + sh1_1 * (0.4886025 * viewDir.z) - + sh1_2 * (-0.4886025 * viewDir.x); - return rgb * (sh1Max / 63.0); + async renderReadTarget({ + scene, + camera + }) { + this.renderTarget({ scene, camera }); + return this.readTarget(); } -`); -const defineEvalPackedSH2 = unindent(` - vec3 evaluatePackedSH2(uvec4 packedData, vec3 viewDir, float sh2Max) { - // Extract sint8 values packed into 4 x uint32 - vec3 sh2_0 = vec3(ivec3( - int(packedData.x << 24u) >> 24, - int(packedData.x << 16u) >> 24, - int(packedData.x << 8u) >> 24 - )); - vec3 sh2_1 = vec3(ivec3( - int(packedData.x) >> 24, - int(packedData.y << 24u) >> 24, - int(packedData.y << 16u) >> 24 - )); - vec3 sh2_2 = vec3(ivec3( - int(packedData.y << 8u) >> 24, - int(packedData.y) >> 24, - int(packedData.z << 24u) >> 24 - )); - vec3 sh2_3 = vec3(ivec3( - int(packedData.z << 16u) >> 24, - int(packedData.z << 8u) >> 24, - int(packedData.z) >> 24 - )); - vec3 sh2_4 = vec3(ivec3( - int(packedData.w << 24u) >> 24, - int(packedData.w << 16u) >> 24, - int(packedData.w << 8u) >> 24 - )); - - vec3 rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y) - + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z) - + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y)) - + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z) - + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y)); - return rgb * (sh2Max / 127.0); + // Renders out the scene to a cube map that can be used for + // Image-based lighting or similar applications. First optionally updates Gsplats, + // sorts them with respect to the provided worldCenter, renders 6 cube faces. + async renderCubeMap({ + scene, + worldCenter, + size = 256, + near = 0.1, + far = 1e3, + hideObjects = [], + update = true, + filter = false + }) { + if (!_SparkRenderer.cubeRender || _SparkRenderer.cubeRender.target.width !== size || _SparkRenderer.cubeRender.near !== near || _SparkRenderer.cubeRender.far !== far) { + if (_SparkRenderer.cubeRender) { + _SparkRenderer.cubeRender.target.dispose(); + } + const target2 = new THREE__namespace.WebGLCubeRenderTarget(size, { + format: THREE__namespace.RGBAFormat, + type: THREE__namespace.UnsignedByteType, + generateMipmaps: filter, + minFilter: filter ? THREE__namespace.LinearMipMapLinearFilter : THREE__namespace.LinearFilter, + magFilter: THREE__namespace.LinearFilter, + colorSpace: filter ? THREE__namespace.LinearSRGBColorSpace : THREE__namespace.SRGBColorSpace + }); + const cubeCamera2 = new THREE__namespace.CubeCamera(near, far, target2); + _SparkRenderer.cubeRender = { target: target2, cubeCamera: cubeCamera2, near, far }; + } + const { target, cubeCamera } = _SparkRenderer.cubeRender; + cubeCamera.position.copy(worldCenter); + const objectVisibility = /* @__PURE__ */ new Map(); + for (const object of hideObjects) { + objectVisibility.set(object, object.visible); + object.visible = false; + } + if (update) { + const tempCamera = new THREE__namespace.Camera(); + tempCamera.position.copy(worldCenter); + await this.update({ scene, camera: tempCamera }); + } + try { + _SparkRenderer.sparkOverride = this; + cubeCamera.update(this.renderer, scene); + } finally { + _SparkRenderer.sparkOverride = void 0; + } + for (const [object, visible] of objectVisibility.entries()) { + object.visible = visible; + } + return target.texture; } -`); -const defineEvalPackedSH3 = unindent(` - vec3 evaluatePackedSH3(uvec4 packedData, vec3 viewDir, float sh3Max) { - // Extract sint6 values packed into 4 x uint32 - vec3 sh3_0 = vec3(ivec3( - int(packedData.x << 26u) >> 26, - int(packedData.x << 20u) >> 26, - int(packedData.x << 14u) >> 26 - )); - vec3 sh3_1 = vec3(ivec3( - int(packedData.x << 8u) >> 26, - int(packedData.x << 2u) >> 26, - int((packedData.x >> 4u) | (packedData.y << 28u)) >> 26 - )); - vec3 sh3_2 = vec3(ivec3( - int(packedData.y << 22u) >> 26, - int(packedData.y << 16u) >> 26, - int(packedData.y << 10u) >> 26 - )); - vec3 sh3_3 = vec3(ivec3( - int(packedData.y << 4u) >> 26, - int((packedData.y >> 2u) | (packedData.z << 30u)) >> 26, - int(packedData.z << 24u) >> 26 - )); - vec3 sh3_4 = vec3(ivec3( - int(packedData.z << 18u) >> 26, - int(packedData.z << 12u) >> 26, - int(packedData.z << 6u) >> 26 - )); - vec3 sh3_5 = vec3(ivec3( - int(packedData.z) >> 26, - int(packedData.w << 26u) >> 26, - int(packedData.w << 20u) >> 26 - )); - vec3 sh3_6 = vec3(ivec3( - int(packedData.w << 14u) >> 26, - int(packedData.w << 8u) >> 26, - int(packedData.w << 2u) >> 26 - )); - - float xx = viewDir.x * viewDir.x; - float yy = viewDir.y * viewDir.y; - float zz = viewDir.z * viewDir.z; - float xy = viewDir.x * viewDir.y; - float yz = viewDir.y * viewDir.z; - float zx = viewDir.z * viewDir.x; - - vec3 rgb = sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy)) - + sh3_1 * (2.8906114 * xy * viewDir.z) + - + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy)) - + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) - + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy)) - + sh3_5 * (1.4453057 * viewDir.z * (xx - yy)) - + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy)); - return rgb * (sh3Max / 31.0); + async readCubeTargets() { + if (!_SparkRenderer.cubeRender) { + throw new Error("No cube render"); + } + const textures = _SparkRenderer.cubeRender.target.texture; + const promises = []; + const buffers = []; + for (let i = 0; i < textures.images.length; ++i) { + const { width, height } = textures.images[i]; + const byteSize = width * height * 4; + const readback = new Uint8Array(byteSize); + buffers.push(readback); + const promise = this.renderer.readRenderTargetPixelsAsync( + _SparkRenderer.cubeRender.target, + 0, + 0, + width, + height, + readback, + i + ); + promises.push(promise); + } + await Promise.all(promises); + return buffers; + } + // Renders out the scene to an environment map that can be used for + // Image-based lighting or similar applications. First optionally updates Gsplats, + // sorts them with respect to the provided worldCenter, renders 6 cube faces, + // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture + // that can assigned directly to a THREE.MeshStandardMaterial.envMap property. + async renderEnvMap({ + scene, + worldCenter, + size = 256, + near = 0.1, + far = 1e3, + hideObjects = [], + update = true + }) { + var _a2; + const cubeTexture = await this.renderCubeMap({ + scene, + worldCenter, + size, + near, + far, + hideObjects, + update, + filter: true + }); + if (!_SparkRenderer.pmrem) { + _SparkRenderer.pmrem = new THREE__namespace.PMREMGenerator(this.renderer); + } + return (_a2 = _SparkRenderer.pmrem) == null ? void 0 : _a2.fromCubemap(cubeTexture).texture; } -`); -function evaluatePackedSH({ - coord, - viewDir, - numSh, - sh1Texture, - sh2Texture, - sh3Texture, - shMax -}) { - return new Dyno({ - inTypes: { - coord: "ivec3", - viewDir: "vec3", - numSh: "int", - sh1Texture: "usampler2DArray", - sh2Texture: "usampler2DArray", - sh3Texture: "usampler2DArray", - shMax: "vec3" - }, - outTypes: { rgb: "vec3" }, - inputs: { - coord, - viewDir, - numSh, - sh1Texture, - sh2Texture, - sh3Texture, - shMax - }, - globals: () => [ - defineEvalPackedSH1, - defineEvalPackedSH2, - defineEvalPackedSH3 - ], - statements: ({ inputs, outputs }) => { - const lines = ["vec3 rgb = vec3(0.0);"]; - if (inputs.sh1Texture) { - lines.push( - ...unindentLines(` - if (${inputs.numSh} >= 1) { - vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0).rg, ${inputs.viewDir}, ${inputs.shMax}.x); - rgb += sh1Rgb; - `) - ); - if (inputs.sh2Texture) { - lines.push( - ...unindentLines(` - if (${inputs.numSh} >= 2) { - vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.y); - rgb += sh2Rgb; - `) - ); - if (inputs.sh3Texture) { - lines.push( - ...unindentLines(` - if (${inputs.numSh} >= 3) { - vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${inputs.sh3Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.z); - rgb += sh3Rgb; - } - `) - ); + // Utility function to recursively set the envMap property for any + // THREE.MeshStandardMaterial within the subtree of root. + recurseSetEnvMap(root, envMap) { + root.traverse((node) => { + if (node instanceof THREE__namespace.Mesh) { + if (Array.isArray(node.material)) { + for (const material of node.material) { + if (material instanceof THREE__namespace.MeshStandardMaterial) { + material.envMap = envMap; + } + } + } else { + if (node.material instanceof THREE__namespace.MeshStandardMaterial) { + node.material.envMap = envMap; } - lines.push("}"); } - lines.push("}"); } - lines.push(`${outputs.rgb} = rgb;`); - return lines; + }); + } + async getLodTreeLevel(splats, level, pageColoring = false) { + var _a2, _b2; + const instance = this.lodInstances.get(splats); + if (!instance) { + return null; } - }).outputs; + const result = await this.ensureLodWorker().exclusive(async (worker) => { + return await worker.call("getLodTreeLevel", { + lodId: instance.lodId, + level + }); + }); + if ((_a2 = splats.packedSplats) == null ? void 0 : _a2.lodSplats) { + const newSplats = splats.packedSplats.lodSplats.extractSplats( + result.indices, + pageColoring + ); + return new SplatMesh({ packedSplats: newSplats }); + } + if ((_b2 = splats.extSplats) == null ? void 0 : _b2.lodSplats) { + const newSplats = splats.extSplats.lodSplats.extractSplats( + result.indices, + pageColoring + ); + return new SplatMesh({ extSplats: newSplats }); + } + throw new Error( + "Only LoD-enabled PackedSplats and ExtSplats are supported" + ); + } + get premultipliedAlpha() { + return this.material.premultipliedAlpha; + } + set premultipliedAlpha(value) { + if (this.material.premultipliedAlpha !== value) { + this.material.premultipliedAlpha = value; + this.material.needsUpdate = true; + } + } +}; +_SparkRenderer.emptyOrdering = (() => { + const numIndices = 4 * 4096 * 1; + const emptyArray = new Uint32Array(numIndices); + const texture2 = new THREE__namespace.DataTexture(emptyArray, 4096, 1); + texture2.format = THREE__namespace.RGBAIntegerFormat; + texture2.type = THREE__namespace.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +_SparkRenderer.cubeRender = null; +_SparkRenderer.pmrem = null; +let SparkRenderer = _SparkRenderer; +function checkIsXRRenderTarget(renderTarget) { + return renderTarget == null ? void 0 : renderTarget.isXRRenderTarget; } -const _OldSparkViewpoint = class _OldSparkViewpoint { - constructor(options) { - this.lastTime = null; - this.encodeLinear = false; - this.superXY = 1; - this.display = null; - this.sorting = null; - this.pending = null; - this.sortingCheck = false; - this.readback16 = new Uint16Array(0); - this.readback32 = new Uint32Array(0); - this.spark = options.spark; - this.camera = options.camera; - this.viewToWorld = options.viewToWorld ?? new THREE__namespace.Matrix4(); - if (options.target) { - const { width, height, doubleBuffer } = options.target; - const superXY = Math.max(1, Math.min(4, options.target.superXY ?? 1)); - this.superXY = superXY; - if (width * superXY > 8192 || height * superXY > 8192) { - throw new Error("Target size too large"); +const PLY_PROPERTY_TYPES = [ + "char", + "uchar", + "short", + "ushort", + "int", + "uint", + "float", + "double" +]; +const _PlyReader = class _PlyReader { + // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet + constructor({ fileBytes }) { + this.header = ""; + this.littleEndian = true; + this.elements = {}; + this.comments = []; + this.data = null; + this.numSplats = 0; + this.fileBytes = fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes; + } + // Identify and parse the PLY text header (assumed to be <64KB in size). + // this.elements will contain all the elements in the file, typically + // "vertex" contains the Gsplat data. + async parseHeader() { + const bufferStream = new ReadableStream({ + start: (controller) => { + controller.enqueue(this.fileBytes.slice(0, 65536)); + controller.close(); } - this.target = new THREE__namespace.WebGLRenderTarget( - width * superXY, - height * superXY, - { - format: THREE__namespace.RGBAFormat, - type: THREE__namespace.UnsignedByteType, - colorSpace: THREE__namespace.SRGBColorSpace + }); + const decoder = bufferStream.pipeThrough(new TextDecoderStream()).getReader(); + this.header = ""; + const headerTerminator = "end_header\n"; + while (true) { + const { value, done } = await decoder.read(); + if (done) { + throw new Error("Failed to read header"); + } + this.header += value; + const endHeader = this.header.indexOf(headerTerminator); + if (endHeader >= 0) { + this.header = this.header.slice(0, endHeader + headerTerminator.length); + break; + } + } + const headerLen = new TextEncoder().encode(this.header).length; + this.data = new DataView(this.fileBytes.buffer, headerLen); + this.elements = {}; + let curElement = null; + this.comments = []; + this.header.trim().split("\n").forEach((line, lineIndex) => { + const trimmedLine = line.trim(); + if (lineIndex === 0) { + if (trimmedLine !== "ply") { + throw new Error("Invalid PLY header"); } - ); - if (doubleBuffer) { - this.back = new THREE__namespace.WebGLRenderTarget( - width * superXY, - height * superXY, - { - format: THREE__namespace.RGBAFormat, - type: THREE__namespace.UnsignedByteType, - colorSpace: THREE__namespace.SRGBColorSpace + return; + } + if (trimmedLine.length === 0) { + return; + } + const fields = trimmedLine.split(" "); + switch (fields[0]) { + case "format": + if (fields[1] === "binary_little_endian") { + this.littleEndian = true; + } else if (fields[1] === "binary_big_endian") { + this.littleEndian = false; + } else { + throw new Error(`Unsupported PLY format: ${fields[1]}`); + } + if (fields[2] !== "1.0") { + throw new Error(`Unsupported PLY version: ${fields[2]}`); + } + break; + case "end_header": + break; + case "comment": + this.comments.push(trimmedLine.slice("comment ".length)); + break; + case "element": { + const name = fields[1]; + curElement = { + name, + count: Number.parseInt(fields[2]), + properties: {} + }; + this.elements[name] = curElement; + break; + } + case "property": + if (curElement == null) { + throw new Error("Property must be inside an element"); } - ); + if (fields[1] === "list") { + curElement.properties[fields[4]] = { + isList: true, + type: fields[3], + countType: fields[2] + }; + } else { + curElement.properties[fields[2]] = { + isList: false, + type: fields[1] + }; + } + break; } - this.encodeLinear = true; - } - this.onTextureUpdated = options.onTextureUpdated; - this.sortRadial = options.sortRadial ?? true; - this.sortDistance = options.sortDistance; - this.sortCoorient = options.sortCoorient; - this.depthBias = options.depthBias; - this.sort360 = options.sort360; - this.sort32 = options.sort32; - this.stochastic = options.stochastic ?? false; - this.orderingFreelist = new FreeList({ - allocate: (maxSplats) => new Uint32Array(maxSplats), - valid: (ordering, maxSplats) => ordering.length === maxSplats }); - this.autoUpdate = false; - this.setAutoUpdate(options.autoUpdate ?? false); - } - // Call this when you are done with the SparkViewpoint and want to - // free up its resources (GPU targets, pixel buffers, etc.) - dispose() { - var _a2; - this.setAutoUpdate(false); - if (this.target) { - this.target.dispose(); - this.target = void 0; - } - if (this.back) { - this.back.dispose(); - this.back = void 0; - } - if (this.display) { - this.spark.releaseAccumulator(this.display.accumulator); - this.display.geometry.dispose(); - this.display = null; - } - if ((_a2 = this.pending) == null ? void 0 : _a2.accumulator) { - this.spark.releaseAccumulator(this.pending.accumulator); - this.pending = null; - } - } - // Use this function to change whether this viewpoint will auto-update - // its sort order whenever the attached SparkRenderer updates the Gsplats. - // Turn this on or off depending on whether you expect to do renders from - // this viewpoint most frames. - setAutoUpdate(autoUpdate) { - if (!this.autoUpdate && autoUpdate) { - this.spark.autoViewpoints.push(this); - } else if (this.autoUpdate && !autoUpdate) { - this.spark.autoViewpoints = this.spark.autoViewpoints.filter( - (v) => v !== this - ); + if (this.elements.vertex) { + this.numSplats = this.elements.vertex.count; } - this.autoUpdate = autoUpdate; } - // See below async prepareRenderPixels() for explanation of parameters. - // Awaiting this method updates the Gsplats in the scene and performs a sort of the - // Gsplats from this viewpoint, preparing it for a subsequent this.renderTarget() - // call in the same tick. - async prepare({ - scene, - camera, - viewToWorld, - update, - forceOrigin - }) { - if (viewToWorld) { - this.viewToWorld = viewToWorld; - } else { - this.camera = camera ?? this.camera; - if (this.camera) { - this.camera.updateMatrixWorld(); - this.viewToWorld = this.camera.matrixWorld.clone(); - } + parseData(elementCallback) { + let offset = 0; + const data = this.data; + if (data == null) { + throw new Error("No data to parse"); } - while (update ?? true) { - const originToWorld = forceOrigin ? this.viewToWorld : this.spark.matrixWorld; - const updated = this.spark.updateInternal({ scene, originToWorld }); - if (updated) { - break; + for (const elementName in this.elements) { + const element = this.elements[elementName]; + const { count, properties } = element; + const item = createEmptyItem(properties); + const parseFn = createParseFn(properties, this.littleEndian); + const callback = elementCallback(element) ?? (() => { + }); + for (let index = 0; index < count; index++) { + offset = parseFn(data, offset, item); + callback(index, item); } - await new Promise((resolve) => setTimeout(resolve, 10)); - } - const accumulator = this.spark.active; - accumulator.refCount += 1; - await this.sortUpdate({ accumulator, viewToWorld: this.viewToWorld }); - this.spark.releaseAccumulator(accumulator); - } - // Render out the viewpoint to the view target RGBA buffer. - // Swaps buffers if doubleBuffer: true was set. - // Calls onTextureUpdated(texture) with the resulting texture. - renderTarget({ - scene, - camera - }) { - var _a2; - const target = this.back ?? this.target; - if (!target) { - throw new Error("Must initialize SparkViewpoint with target"); - } - camera = camera ?? this.camera; - if (!camera) { - throw new Error("Must provide camera"); - } - if (camera instanceof THREE__namespace.PerspectiveCamera) { - const newCam = new THREE__namespace.PerspectiveCamera().copy(camera, false); - newCam.aspect = target.width / target.height; - newCam.updateProjectionMatrix(); - camera = newCam; } - this.viewToWorld = camera.matrixWorld.clone(); - const previousTarget = this.spark.renderer.getRenderTarget(); - try { - this.spark.renderer.setRenderTarget(target); - this.spark.prepareViewpoint(this); - this.spark.renderer.render(scene, camera); - } finally { - this.spark.prepareViewpoint(this.spark.defaultView); - this.spark.renderer.setRenderTarget(previousTarget); - } - if (target !== this.target) { - [this.target, this.back] = [this.back, this.target]; - } - (_a2 = this.onTextureUpdated) == null ? void 0 : _a2.call(this, target.texture); } - // Read back the previously rendered target image as a Uint8Array of packed - // RGBA values (in that order). If superXY was set greater than 1 then - // downsampling is performed in the target pixel array with simple averaging - // to derive the returned pixel values. Subsequent calls to this.readTarget() - // will reuse the same buffers to minimize memory allocations. - async readTarget() { - if (!this.target) { - throw new Error("Must initialize SparkViewpoint with target"); - } - const { width, height } = this.target; - const byteSize = width * height * 4; - if (!this.superPixels || this.superPixels.length < byteSize) { - this.superPixels = new Uint8Array(byteSize); - } - await this.spark.renderer.readRenderTargetPixelsAsync( - this.target, - 0, - 0, - width, - height, - this.superPixels - ); - const { superXY } = this; - if (superXY === 1) { - return this.superPixels; + // Parse all the Gsplat data in the PLY file in go, invoking the given + // callbacks for each Gsplat. + parseSplats(splatCallback, shCallback) { + if (this.elements.vertex == null) { + throw new Error("No vertex element found"); } - const subWidth = width / superXY; - const subHeight = height / superXY; - const subSize = subWidth * subHeight * 4; - if (!this.pixels || this.pixels.length < subSize) { - this.pixels = new Uint8Array(subSize); + let isSuperSplat = false; + const ssChunks = []; + let numSh = 0; + let sh1Props = []; + let sh2Props = []; + let sh3Props = []; + let sh1 = void 0; + let sh2 = void 0; + let sh3 = void 0; + function prepareSh() { + const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh]; + sh1Props = new Array(3).fill(null).flatMap((_, k) => [0, 1, 2].map((_2, d) => k + d * num_f_rest / 3)); + sh2Props = new Array(5).fill(null).flatMap( + (_, k) => [0, 1, 2].map((_2, d) => 3 + k + d * num_f_rest / 3) + ); + sh3Props = new Array(7).fill(null).flatMap( + (_, k) => [0, 1, 2].map((_2, d) => 8 + k + d * num_f_rest / 3) + ); + sh1 = numSh >= 1 ? new Float32Array(3 * 3) : void 0; + sh2 = numSh >= 2 ? new Float32Array(5 * 3) : void 0; + sh3 = numSh >= 3 ? new Float32Array(7 * 3) : void 0; } - const { superPixels, pixels } = this; - const super2 = superXY * superXY; - for (let y = 0; y < subHeight; y++) { - const row = y * subWidth; - for (let x = 0; x < subWidth; x++) { - const superCol = x * superXY; - let r = 0; - let g = 0; - let b = 0; - let a = 0; - for (let sy = 0; sy < superXY; sy++) { - const superRow = (y * superXY + sy) * this.target.width; - for (let sx = 0; sx < superXY; sx++) { - const superIndex = (superRow + superCol + sx) * 4; - r += superPixels[superIndex]; - g += superPixels[superIndex + 1]; - b += superPixels[superIndex + 2]; - a += superPixels[superIndex + 3]; - } - } - const pixelIndex = (row + x) * 4; - pixels[pixelIndex] = r / super2; - pixels[pixelIndex + 1] = g / super2; - pixels[pixelIndex + 2] = b / super2; - pixels[pixelIndex + 3] = a / super2; - } - } - return pixels; - } - // Render out a viewpoint as a Uint8Array of RGBA values for the provided scene - // and any camera/viewToWorld viewpoint overrides. By default update is true, - // which triggers its SparkRenderer to check and potentially update the Gsplats. - // Setting update to false disables this and sorts the Gsplats as they are. - // Setting forceOrigin (default: false) to true forces the view update to - // recalculate the splats with this view origin, potentially altering any - // view-dependent effects. If you expect view-dependent effects to play a role - // in the rendering quality, enable this. - // - // Underneath, prepareRenderPixels() simply calls await this.prepare(...), - // this.renderTarget(...), and finally returns the result this.readTarget(), - // a Promise to a Uint8Array with RGBA values for all the pixels (potentially - // downsampled if the superXY parameter was used). These steps can also be called - // manually, for example if you need to alter the scene before and after - // this.renderTarget(...) to hide UI elements from being rendered. - async prepareRenderPixels({ - scene, - camera, - viewToWorld, - update, - forceOrigin - }) { - await this.prepare({ scene, camera, viewToWorld, update, forceOrigin }); - this.renderTarget({ scene, camera }); - return this.readTarget(); - } - // This is called automatically by SparkRenderer, there is no need to call it! - // The method cannot be private because then SparkRenderer would - // not be able to call it. - autoPoll({ accumulator }) { - var _a2, _b2, _c; - if (this.camera) { - this.camera.updateMatrixWorld(); - this.viewToWorld = this.camera.matrixWorld.clone(); - } - let needsSort = false; - let displayed = false; - if (!this.display) { - needsSort = true; - } else if (accumulator) { - needsSort = true; - const { mappingVersion } = this.display.accumulator; - if (accumulator.mappingVersion === mappingVersion) { - accumulator.refCount += 1; - this.spark.releaseAccumulator(this.display.accumulator); - this.display.accumulator = accumulator; - this.display.viewToWorld.copy(this.viewToWorld); - displayed = true; - if (this.spark.viewpoint === this) { - this.spark.prepareViewpoint(this); - } + function ssShCallback(index, item) { + if (!sh1) { + throw new Error("Missing sh1"); } - } - const latestView = ((_a2 = this.sorting) == null ? void 0 : _a2.viewToWorld) ?? ((_b2 = this.display) == null ? void 0 : _b2.viewToWorld); - if (latestView && !withinCoorientDist({ - matrix1: this.viewToWorld, - matrix2: latestView, - // By default update sort each 1 cm - maxDistance: this.sortDistance ?? 0.01, - // By default for radial sort, update for intermittent movement so that - // we bring back splats culled by being behind the camera. - // For depth sort, small rotations can change sort order a lot, so - // update sort for even small rotations. - minCoorient: this.sortCoorient ?? this.sortRadial ? 0.99 : 0.999 - })) { - needsSort = true; - } - if (!needsSort) { - return; - } - if (accumulator) { - accumulator.refCount += 1; - } - if ((_c = this.pending) == null ? void 0 : _c.accumulator) { - this.spark.releaseAccumulator(this.pending.accumulator); - } - this.pending = { accumulator, viewToWorld: this.viewToWorld, displayed }; - this.driveSort(); - } - async driveSort() { - var _a2; - while (true) { - if (this.sorting || !this.pending) { - return; + const sh = item.f_rest; + for (let i = 0; i < sh1Props.length; i++) { + sh1[i] = sh[sh1Props[i]] * 8 / 255 - 4; } - const { viewToWorld, displayed } = this.pending; - let accumulator = this.pending.accumulator; - if (!accumulator) { - accumulator = ((_a2 = this.display) == null ? void 0 : _a2.accumulator) ?? this.spark.active; - accumulator.refCount += 1; + if (sh2) { + for (let i = 0; i < sh2Props.length; i++) { + sh2[i] = sh[sh2Props[i]] * 8 / 255 - 4; + } } - this.pending = null; - if (!accumulator) { - throw new Error("No accumulator to sort"); + if (sh3) { + for (let i = 0; i < sh3Props.length; i++) { + sh3[i] = sh[sh3Props[i]] * 8 / 255 - 4; + } } - this.sorting = { viewToWorld }; - await this.sortUpdate({ accumulator, viewToWorld, displayed }); - this.sorting = null; - this.spark.releaseAccumulator(accumulator); + shCallback == null ? void 0 : shCallback(index, sh1, sh2, sh3); } - } - async sortUpdate({ - accumulator, - viewToWorld, - displayed = false - }) { - if (this.sortingCheck) { - throw new Error("Only one sort at a time"); - } - this.sortingCheck = true; - accumulator = accumulator ?? this.spark.active; - const { numSplats, maxSplats } = accumulator.splats; - let activeSplats = 0; - let ordering = this.orderingFreelist.alloc(maxSplats); - if (this.stochastic) { - activeSplats = numSplats; - for (let i = 0; i < numSplats; ++i) { - ordering[i] = i; - } - } else if (numSplats > 0) { + function initSuperSplat(element) { const { - reader, - doubleSortReader, - sort32Reader, - dynoSortRadial, - dynoOrigin, - dynoDirection, - dynoDepthBias, - dynoSort360, - dynoSplats - } = _OldSparkViewpoint.makeSorter(); - const sort32 = this.sort32 ?? false; - let readback; - if (sort32) { - this.readback32 = reader.ensureBuffer(maxSplats, this.readback32); - readback = this.readback32; - } else { - const halfMaxSplats = Math.ceil(maxSplats / 2); - this.readback16 = reader.ensureBuffer(halfMaxSplats, this.readback16); - readback = this.readback16; - } - const worldToOrigin = accumulator.toWorld.clone().invert(); - const viewToOrigin = viewToWorld.clone().premultiply(worldToOrigin); - dynoSortRadial.value = this.sort360 ? true : this.sortRadial; - dynoOrigin.value.set(0, 0, 0).applyMatrix4(viewToOrigin); - dynoDirection.value.set(0, 0, -1).applyMatrix4(viewToOrigin).sub(dynoOrigin.value).normalize(); - dynoDepthBias.value = this.depthBias ?? 1; - dynoSort360.value = this.sort360 ?? false; - dynoSplats.packedSplats = accumulator.splats; - const sortReader = sort32 ? sort32Reader : doubleSortReader; - const count = sort32 ? numSplats : Math.ceil(numSplats / 2); - await reader.renderReadback({ - renderer: this.spark.renderer, - reader: sortReader, - count, - readback - }); - const result = await withWorker(async (worker) => { - const rpcName = sort32 ? "sort32Splats" : "sortDoubleSplats"; - return worker.call(rpcName, { - maxSplats, - numSplats, - readback, - ordering - }); - }); - if (sort32) { - this.readback32 = result.readback; - } else { - this.readback16 = result.readback; + min_x, + min_y, + min_z, + max_x, + max_y, + max_z, + min_scale_x, + min_scale_y, + min_scale_z, + max_scale_x, + max_scale_y, + max_scale_z + } = element.properties; + if (!min_x || !min_y || !min_z || !max_x || !max_y || !max_z || !min_scale_x || !min_scale_y || !min_scale_z || !max_scale_x || !max_scale_y || !max_scale_z) { + throw new Error("Missing PLY chunk properties"); } - ordering = result.ordering; - activeSplats = result.activeSplats; - } - this.updateDisplay({ - accumulator, - viewToWorld, - ordering, - activeSplats, - displayed - }); - this.sortingCheck = false; - } - updateDisplay({ - accumulator, - viewToWorld, - ordering, - activeSplats, - displayed = false - }) { - if (!this.display) { - accumulator.refCount += 1; - this.display = { - accumulator, - viewToWorld, - geometry: new OldSplatGeometry(ordering, activeSplats) + isSuperSplat = true; + return (index, item) => { + const { + min_x: min_x2, + min_y: min_y2, + min_z: min_z2, + max_x: max_x2, + max_y: max_y2, + max_z: max_z2, + min_scale_x: min_scale_x2, + min_scale_y: min_scale_y2, + min_scale_z: min_scale_z2, + max_scale_x: max_scale_x2, + max_scale_y: max_scale_y2, + max_scale_z: max_scale_z2, + min_r, + min_g, + min_b, + max_r, + max_g, + max_b + } = item; + ssChunks.push({ + min_x: min_x2, + min_y: min_y2, + min_z: min_z2, + max_x: max_x2, + max_y: max_y2, + max_z: max_z2, + min_scale_x: min_scale_x2, + min_scale_y: min_scale_y2, + min_scale_z: min_scale_z2, + max_scale_x: max_scale_x2, + max_scale_y: max_scale_y2, + max_scale_z: max_scale_z2, + min_r, + min_g, + min_b, + max_r, + max_g, + max_b + }); }; - } else { - if (!displayed && accumulator !== this.display.accumulator) { - accumulator.refCount += 1; - this.spark.releaseAccumulator(this.display.accumulator); - this.display.accumulator = accumulator; - } - this.display.viewToWorld = viewToWorld; - const oldOrdering = this.display.geometry.ordering; - if (oldOrdering.length === ordering.length) { - this.display.geometry.update(ordering, activeSplats); - } else { - this.display.geometry.dispose(); - this.display.geometry = new OldSplatGeometry(ordering, activeSplats); + } + function decodeSuperSplat(element) { + if (shCallback && element.name === "sh") { + numSh = getNumSh(element.properties); + prepareSh(); + return ssShCallback; + } + if (element.name !== "vertex") { + return null; } - this.orderingFreelist.free(oldOrdering); - } - if (this.spark.viewpoint === this) { - this.spark.prepareViewpoint(this); - } - } - static makeSorter() { - if (!_OldSparkViewpoint.dynos) { - const dynoSortRadial = new DynoBool({ value: true }); - const dynoOrigin = new DynoVec3({ value: new THREE__namespace.Vector3() }); - const dynoDirection = new DynoVec3({ value: new THREE__namespace.Vector3() }); - const dynoDepthBias = new DynoFloat({ value: 1 }); - const dynoSort360 = new DynoBool({ value: false }); - const dynoSplats = new DynoPackedSplats(); - const reader = new Readback(); - const doubleSortReader = dynoBlock( - { index: "int" }, - { rgba8: "vec4" }, - ({ index }) => { - if (!index) { - throw new Error("No index"); - } - const sortParams = { - sortRadial: dynoSortRadial, - sortOrigin: dynoOrigin, - sortDirection: dynoDirection, - sortDepthBias: dynoDepthBias, - sort360: dynoSort360 - }; - const index2 = mul(index, dynoConst("int", 2)); - const gsplat0 = readPackedSplat(dynoSplats, index2); - const metric0 = computeSortMetric({ gsplat: gsplat0, ...sortParams }); - const gsplat1 = readPackedSplat( - dynoSplats, - add(index2, dynoConst("int", 1)) - ); - const metric1 = computeSortMetric({ gsplat: gsplat1, ...sortParams }); - const combined = combine({ - vectorType: "vec2", - x: metric0, - y: metric1 - }); - const rgba8 = uintToRgba8(packHalf2x16(combined)); - return { rgba8 }; - } - ); - const sort32Reader = dynoBlock( - { index: "int" }, - { rgba8: "vec4" }, - ({ index }) => { - if (!index) { - throw new Error("No index"); - } - const sortParams = { - sortRadial: dynoSortRadial, - sortOrigin: dynoOrigin, - sortDirection: dynoDirection, - sortDepthBias: dynoDepthBias, - sort360: dynoSort360 - }; - const gsplat = readPackedSplat(dynoSplats, index); - const metric = computeSortMetric({ gsplat, ...sortParams }); - const rgba8 = uintToRgba8(floatBitsToUint(metric)); - return { rgba8 }; + const { packed_position, packed_rotation, packed_scale, packed_color } = element.properties; + if (!packed_position || !packed_rotation || !packed_scale || !packed_color) { + throw new Error( + "Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color" + ); + } + const SQRT2 = Math.sqrt(2); + return (index, item) => { + const chunk = ssChunks[index >>> 8]; + if (chunk == null) { + throw new Error("Missing PLY chunk"); } - ); - _OldSparkViewpoint.dynos = { - dynoSortRadial, - dynoOrigin, - dynoDirection, - dynoDepthBias, - dynoSort360, - dynoSplats, - reader, - doubleSortReader, - sort32Reader + const { + min_x, + min_y, + min_z, + max_x, + max_y, + max_z, + min_scale_x, + min_scale_y, + min_scale_z, + max_scale_x, + max_scale_y, + max_scale_z, + min_r, + min_g, + min_b, + max_r, + max_g, + max_b + } = chunk; + const { packed_position: packed_position2, packed_rotation: packed_rotation2, packed_scale: packed_scale2, packed_color: packed_color2 } = item; + const x = (packed_position2 >>> 21 & 2047) / 2047 * (max_x - min_x) + min_x; + const y = (packed_position2 >>> 11 & 1023) / 1023 * (max_y - min_y) + min_y; + const z = (packed_position2 & 2047) / 2047 * (max_z - min_z) + min_z; + const r0 = ((packed_rotation2 >>> 20 & 1023) / 1023 - 0.5) * SQRT2; + const r1 = ((packed_rotation2 >>> 10 & 1023) / 1023 - 0.5) * SQRT2; + const r2 = ((packed_rotation2 & 1023) / 1023 - 0.5) * SQRT2; + const rr = Math.sqrt(Math.max(0, 1 - r0 * r0 - r1 * r1 - r2 * r2)); + const rOrder = packed_rotation2 >>> 30; + const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1; + const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2; + const quatZ = rOrder <= 2 ? r2 : rr; + const quatW = rOrder === 0 ? rr : r0; + const scaleX = Math.exp( + (packed_scale2 >>> 21 & 2047) / 2047 * (max_scale_x - min_scale_x) + min_scale_x + ); + const scaleY = Math.exp( + (packed_scale2 >>> 11 & 1023) / 1023 * (max_scale_y - min_scale_y) + min_scale_y + ); + const scaleZ = Math.exp( + (packed_scale2 & 2047) / 2047 * (max_scale_z - min_scale_z) + min_scale_z + ); + const r = (packed_color2 >>> 24 & 255) / 255 * ((max_r ?? 1) - (min_r ?? 0)) + (min_r ?? 0); + const g = (packed_color2 >>> 16 & 255) / 255 * ((max_g ?? 1) - (min_g ?? 0)) + (min_g ?? 0); + const b = (packed_color2 >>> 8 & 255) / 255 * ((max_b ?? 1) - (min_b ?? 0)) + (min_b ?? 0); + const opacity = (packed_color2 & 255) / 255; + splatCallback( + index, + x, + y, + z, + scaleX, + scaleY, + scaleZ, + quatX, + quatY, + quatZ, + quatW, + opacity, + r, + g, + b + ); }; } - return _OldSparkViewpoint.dynos; - } -}; -_OldSparkViewpoint.EMPTY_TEXTURE = new THREE__namespace.Texture(); -_OldSparkViewpoint.dynos = null; -let OldSparkViewpoint = _OldSparkViewpoint; -const defineComputeSortMetric = unindent(` - float computeSort(Gsplat gsplat, bool sortRadial, vec3 sortOrigin, vec3 sortDirection, float sortDepthBias, bool sort360) { - if (!isGsplatActive(gsplat.flags)) { - return INFINITY; - } - - vec3 center = gsplat.center - sortOrigin; - float biasedDepth = dot(center, sortDirection) + sortDepthBias; - if (!sort360 && (biasedDepth <= 0.0)) { - return INFINITY; - } - - return sortRadial ? length(center) : biasedDepth; - } -`); -function computeSortMetric({ - gsplat, - sortRadial, - sortOrigin, - sortDirection, - sortDepthBias, - sort360 -}) { - return dyno$1({ - inTypes: { - gsplat: Gsplat, - sortRadial: "bool", - sortOrigin: "vec3", - sortDirection: "vec3", - sortDepthBias: "float", - sort360: "bool" - }, - outTypes: { metric: "float" }, - globals: () => [defineGsplat, defineComputeSortMetric], - inputs: { - gsplat, - sortRadial, - sortOrigin, - sortDirection, - sortDepthBias, - sort360 - }, - statements: ({ inputs, outputs }) => { - const { - gsplat: gsplat2, - sortRadial: sortRadial2, - sortOrigin: sortOrigin2, - sortDirection: sortDirection2, - sortDepthBias: sortDepthBias2, - sort360: sort3602 - } = inputs; - return unindentLines(` - ${outputs.metric} = computeSort(${gsplat2}, ${sortRadial2}, ${sortOrigin2}, ${sortDirection2}, ${sortDepthBias2}, ${sort3602}); - `); - } - }).outputs.metric; -} -class OldSplatAccumulator { - constructor() { - this.splats = new PackedSplats(); - this.toWorld = new THREE__namespace.Matrix4(); - this.mapping = []; - this.refCount = 0; - this.splatsVersion = -1; - this.mappingVersion = -1; - } - ensureGenerate(maxSplats) { - if (this.splats.ensureGenerate(maxSplats)) { - this.mapping = []; - } - } - // Generate all Gsplats from an array of generators - generateSplats({ - renderer, - modifier, - generators: generators2, - forceUpdate, - originToWorld - }) { - const mapping = this.mapping.reduce((map, record) => { - map.set(record.node, record); - return map; - }, /* @__PURE__ */ new Map()); - let updated = 0; - let numSplats = 0; - for (const { node, generator, version, base, count } of generators2) { - const current = mapping.get(node); - if (forceUpdate || generator !== (current == null ? void 0 : current.generator) || version !== (current == null ? void 0 : current.version) || base !== (current == null ? void 0 : current.base) || count !== (current == null ? void 0 : current.count)) { - if (generator && count > 0) { - const modGenerator = modifier.apply(generator); - try { - this.splats.generate({ - generator: modGenerator, - base, - count, - renderer - }); - } catch (error) { - node.generator = void 0; - node.generatorError = error; - } - updated += 1; - } + const elementCallback = (element) => { + if (element.name === "chunk") { + return initSuperSplat(element); } - numSplats = Math.max(numSplats, base + count); - } - this.splats.numSplats = numSplats; - this.toWorld.copy(originToWorld); - this.mapping = generators2; - return updated !== 0; - } - // Check if this accumulator has exactly the same generator mapping as - // the previous one. If so, we can reuse the Gsplat sort order. - hasCorrespondence(other) { - if (this.mapping.length !== other.mapping.length) { - return false; - } - return this.mapping.every(({ node, base, count }, i) => { - const { - node: otherNode, - base: otherBase, - count: otherCount - } = other.mapping[i]; - return node === otherNode && base === otherBase && count === otherCount; - }); - } -} -const MAX_ACCUMULATORS = 5; -const _OldSparkRenderer = class _OldSparkRenderer extends THREE__namespace.Mesh { - constructor(options) { - const uniforms = _OldSparkRenderer.makeUniforms(); - const shaders2 = getShaders(); - const premultipliedAlpha = options.premultipliedAlpha ?? true; - const material = new THREE__namespace.ShaderMaterial({ - glslVersion: THREE__namespace.GLSL3, - vertexShader: shaders2.oldSplatVertex, - fragmentShader: shaders2.oldSplatFragment, - uniforms, - premultipliedAlpha, - transparent: true, - depthTest: true, - depthWrite: false, - side: THREE__namespace.DoubleSide - }); - super(EMPTY_GEOMETRY, material); - this.splatTexture = null; - this.autoViewpoints = []; - this.rotateToAccumulator = new DynoVec4({ value: new THREE__namespace.Quaternion() }); - this.translateToAccumulator = new DynoVec3({ value: new THREE__namespace.Vector3() }); - this.lastFrame = -1; - this.lastUpdateTime = null; - this.defaultCameras = []; - this.lastStochastic = null; - this.pendingUpdate = { - scene: null, - originToWorld: new THREE__namespace.Matrix4(), - timeoutId: -1 - }; - this.envViewpoint = null; - this.frustumCulled = false; - this.renderer = options.renderer; - this.material = material; - this.uniforms = uniforms; - const modifier = dynoBlock( - { gsplat: Gsplat }, - { gsplat: Gsplat }, - ({ gsplat }) => { - if (!gsplat) { - throw new Error("gsplat not defined"); - } - gsplat = transformGsplat(gsplat, { - rotate: this.rotateToAccumulator, - translate: this.translateToAccumulator - }); - return { gsplat }; + if (isSuperSplat) { + return decodeSuperSplat(element); } - ); - this.modifier = new SplatModifier(modifier); - this.premultipliedAlpha = premultipliedAlpha; - this.autoUpdate = options.autoUpdate ?? true; - this.preUpdate = options.preUpdate ?? false; - this.needsUpdate = false; - this.originDistance = options.originDistance ?? 1; - this.maxStdDev = options.maxStdDev ?? Math.sqrt(8); - this.minPixelRadius = options.minPixelRadius ?? 0; - this.maxPixelRadius = options.maxPixelRadius ?? 512; - this.minAlpha = options.minAlpha ?? 0.5 * (1 / 255); - this.enable2DGS = options.enable2DGS ?? false; - this.preBlurAmount = options.preBlurAmount ?? 0; - this.blurAmount = options.blurAmount ?? 0.3; - this.focalDistance = options.focalDistance ?? 0; - this.apertureAngle = options.apertureAngle ?? 0; - this.falloff = options.falloff ?? 1; - this.clipXY = options.clipXY ?? 1.4; - this.focalAdjustment = options.focalAdjustment ?? 1; - this.splatEncoding = options.splatEncoding ?? { ...DEFAULT_SPLAT_ENCODING }; - this.active = new OldSplatAccumulator(); - this.active.refCount = 1; - this.accumulatorCount = 1; - this.freeAccumulators = []; - for (let count = 0; count < 1; ++count) { - this.freeAccumulators.push(new OldSplatAccumulator()); - this.accumulatorCount += 1; - } - this.defaultView = new OldSparkViewpoint({ - ...options.view, - autoUpdate: true, - spark: this - }); - this.viewpoint = this.defaultView; - this.prepareViewpoint(this.viewpoint); - this.clock = options.clock ? cloneClock(options.clock) : new THREE__namespace.Clock(); - } - static makeUniforms() { - const uniforms = { - // Size of render viewport in pixels - renderSize: { value: new THREE__namespace.Vector2() }, - // Near and far plane distances - near: { value: 0.1 }, - far: { value: 1e3 }, - // Total number of Gsplats in packedSplats to render - numSplats: { value: 0 }, - // SplatAccumulator to view transformation quaternion - renderToViewQuat: { value: new THREE__namespace.Quaternion() }, - // SplatAccumulator to view transformation translation - renderToViewPos: { value: new THREE__namespace.Vector3() }, - // Maximum distance (in stddevs) from Gsplat center to render - maxStdDev: { value: 1 }, - // Minimum pixel radius for splat rendering - minPixelRadius: { value: 0 }, - // Maximum pixel radius for splat rendering - maxPixelRadius: { value: 512 }, - // Minimum alpha value for splat rendering - minAlpha: { value: 0.5 * (1 / 255) }, - // Enable stochastic splat rendering - stochastic: { value: false }, - // Enable interpreting 0-thickness Gsplats as 2DGS - enable2DGS: { value: false }, - // Add to projected 2D splat covariance diagonal (thickens and brightens) - preBlurAmount: { value: 0 }, - // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing) - blurAmount: { value: 0.3 }, - // Depth-of-field distance to focal plane - focalDistance: { value: 0 }, - // Full-width angle of aperture opening (in radians) - apertureAngle: { value: 0 }, - // Modulate Gaussian kernal falloff. 0 means "no falloff, flat shading", - // 1 is normal e^-x^2 falloff. - falloff: { value: 1 }, - // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds - clipXY: { value: 1.4 }, - // Debug renderSize scale factor - focalAdjustment: { value: 1 }, - // Enable splat texture rendering - splatTexEnable: { value: false }, - // Splat texture to render - splatTexture: { type: "t", value: _OldSparkRenderer.EMPTY_SPLAT_TEXTURE }, - // Splat texture UV transform (multiply) - splatTexMul: { value: new THREE__namespace.Matrix2() }, - // Splat texture UV transform (add) - splatTexAdd: { value: new THREE__namespace.Vector2() }, - // Splat texture near plane distance - splatTexNear: { value: 0.1 }, - // Splat texture far plane distance - splatTexFar: { value: 1e3 }, - // Splat texture mid plane distance, or 0.0 to disable - splatTexMid: { value: 0 }, - // Gsplat collection to render - packedSplats: { type: "t", value: PackedSplats.getEmptyArray }, - // Splat encoding ranges - rgbMinMaxLnScaleMinMax: { value: new THREE__namespace.Vector4() }, - // Time in seconds for time-based effects - time: { value: 0 }, - // Delta time in seconds since last frame - deltaTime: { value: 0 }, - // Whether to encode Gsplat with linear RGB (for environment mapping) - encodeLinear: { value: false }, - // Debug flag that alternates each frame - debugFlag: { value: false } + if (element.name !== "vertex") { + return null; + } + const { + x, + y, + z, + scale_0, + scale_1, + scale_2, + rot_0, + rot_1, + rot_2, + rot_3, + opacity, + f_dc_0, + f_dc_1, + f_dc_2, + red, + green, + blue, + alpha + } = element.properties; + if (!x || !y || !z) { + throw new Error("Missing PLY properties: x, y, z"); + } + const hasScales = scale_0 && scale_1 && scale_2; + const hasRots = rot_0 && rot_1 && rot_2 && rot_3; + const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1; + const redDiv = red != null ? FIELD_SCALE[red.type] : 1; + const greenDiv = green != null ? FIELD_SCALE[green.type] : 1; + const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1; + numSh = getNumSh(element.properties); + prepareSh(); + return (index, item) => { + const scaleX = hasScales ? Math.exp(item.scale_0) : _PlyReader.defaultPointScale; + const scaleY = hasScales ? Math.exp(item.scale_1) : _PlyReader.defaultPointScale; + const scaleZ = hasScales ? Math.exp(item.scale_2) : _PlyReader.defaultPointScale; + const quatX = hasRots ? item.rot_1 : 0; + const quatY = hasRots ? item.rot_2 : 0; + const quatZ = hasRots ? item.rot_3 : 0; + const quatW = hasRots ? item.rot_0 : 1; + const op = opacity != null ? 1 / (1 + Math.exp(-item.opacity)) : alpha != null ? item.alpha / alphaDiv : 1; + const r = f_dc_0 != null ? item.f_dc_0 * SH_C0$1 + 0.5 : red != null ? item.red / redDiv : 1; + const g = f_dc_1 != null ? item.f_dc_1 * SH_C0$1 + 0.5 : green != null ? item.green / greenDiv : 1; + const b = f_dc_2 != null ? item.f_dc_2 * SH_C0$1 + 0.5 : blue != null ? item.blue / blueDiv : 1; + splatCallback( + index, + item.x, + item.y, + item.z, + scaleX, + scaleY, + scaleZ, + quatX, + quatY, + quatZ, + quatW, + op, + r, + g, + b + ); + if (shCallback && sh1) { + const sh = item.f_rest; + if (sh1) { + for (let i = 0; i < sh1Props.length; i++) { + sh1[i] = sh[sh1Props[i]]; + } + } + if (sh2) { + for (let i = 0; i < sh2Props.length; i++) { + sh2[i] = sh[sh2Props[i]]; + } + } + if (sh3) { + for (let i = 0; i < sh3Props.length; i++) { + sh3[i] = sh[sh3Props[i]]; + } + } + shCallback(index, sh1, sh2, sh3); + } + }; }; - return uniforms; - } - canAllocAccumulator() { - return this.freeAccumulators.length > 0 || this.accumulatorCount < MAX_ACCUMULATORS; + this.parseData(elementCallback); } - maybeAllocAccumulator() { - let accumulator = this.freeAccumulators.pop(); - if (accumulator === void 0) { - if (this.accumulatorCount >= MAX_ACCUMULATORS) { - return null; - } - accumulator = new OldSplatAccumulator(); - this.accumulatorCount += 1; + // Inject RGBA values into original PLY file, which can be used to modify + // the color/opacity of the Gsplats and write out the modified PLY file. + injectRgba(rgba) { + let offset = 0; + const data = this.data; + if (data == null) { + throw new Error("No parsed data"); } - accumulator.refCount = 1; - return accumulator; - } - releaseAccumulator(accumulator) { - accumulator.refCount -= 1; - if (accumulator.refCount === 0) { - this.freeAccumulators.push(accumulator); + if (rgba.length !== this.numSplats * 4) { + throw new Error("Invalid RGBA array length"); } - } - newViewpoint(options) { - return new OldSparkViewpoint({ ...options, spark: this }); - } - onBeforeRender(renderer, scene, camera) { - var _a2, _b2; - const time = this.time ?? this.clock.getElapsedTime(); - const deltaTime = time - (this.viewpoint.lastTime ?? time); - this.viewpoint.lastTime = time; - const frame = renderer.info.render.frame; - const isNewFrame = frame !== this.lastFrame; - this.lastFrame = frame; - const viewpoint = this.viewpoint; - if (viewpoint === this.defaultView) { - if (isNewFrame) { - if (!renderer.xr.isPresenting) { - this.defaultView.viewToWorld = camera.matrixWorld.clone(); - this.defaultCameras = [this.defaultView.viewToWorld]; - } else { - const cameras = renderer.xr.getCamera().cameras; - this.defaultCameras = cameras.map((camera2) => camera2.matrixWorld); - this.defaultView.viewToWorld = averageOriginToWorlds(this.defaultCameras) ?? new THREE__namespace.Matrix4(); + for (const elementName in this.elements) { + const element = this.elements[elementName]; + const { count, properties } = element; + const parsers = []; + let rgbaOffset = 0; + const isVertex = elementName === "vertex"; + if (isVertex) { + for (const name of ["opacity", "f_dc_0", "f_dc_1", "f_dc_2"]) { + if (!properties[name] || properties[name].type !== "float") { + throw new Error(`Can't injectRgba due to property: ${name}`); + } } } - if (this.autoUpdate) { - this.update({ scene, viewToWorld: this.defaultView.viewToWorld }); - } - } - if (isNewFrame) { - if (this.material.premultipliedAlpha !== this.premultipliedAlpha) { - this.material.premultipliedAlpha = this.premultipliedAlpha; - this.material.needsUpdate = true; - } - this.uniforms.time.value = time; - this.uniforms.deltaTime.value = deltaTime; - this.uniforms.debugFlag.value = performance.now() / 1e3 % 2 < 1; - if (viewpoint.display && viewpoint.stochastic) { - this.geometry.instanceCount = this.uniforms.numSplats.value; - } - } - if (viewpoint.target) { - this.uniforms.renderSize.value.set( - viewpoint.target.width, - viewpoint.target.height - ); - } else { - const renderSize = renderer.getDrawingBufferSize( - this.uniforms.renderSize.value - ); - if (renderSize.x === 1 && renderSize.y === 1) { - const baseLayer = (_a2 = renderer.xr.getSession()) == null ? void 0 : _a2.renderState.baseLayer; - if (baseLayer) { - renderSize.x = baseLayer.framebufferWidth; - renderSize.y = baseLayer.framebufferHeight; + for (const [propertyName, property] of Object.entries(properties)) { + if (!property.isList) { + if (isVertex) { + if (propertyName === "f_dc_0" || propertyName === "f_dc_1" || propertyName === "f_dc_2") { + const component = Number.parseInt( + propertyName.slice("f_dc_".length) + ); + parsers.push(() => { + const value = (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0$1; + SET_FIELD[property.type]( + data, + offset, + this.littleEndian, + value + ); + }); + } else if (propertyName === "opacity") { + parsers.push(() => { + const value = Math.max( + -100, + Math.min( + 100, + -Math.log(1 / (rgba[rgbaOffset + 3] / 255) - 1) + ) + ); + SET_FIELD[property.type]( + data, + offset, + this.littleEndian, + value + ); + }); + } + } + parsers.push(() => { + offset += FIELD_BYTES[property.type]; + }); + } else { + parsers.push(() => { + const length2 = PARSE_FIELD[property.countType]( + data, + offset, + this.littleEndian + ); + offset += FIELD_BYTES[property.countType]; + offset += length2 * FIELD_BYTES[property.type]; + }); } } - } - const typedCamera = camera; - this.uniforms.near.value = typedCamera.near; - this.uniforms.far.value = typedCamera.far; - this.uniforms.encodeLinear.value = viewpoint.encodeLinear; - this.uniforms.maxStdDev.value = this.maxStdDev; - this.uniforms.minPixelRadius.value = this.minPixelRadius; - this.uniforms.maxPixelRadius.value = this.maxPixelRadius; - this.uniforms.minAlpha.value = this.minAlpha; - this.uniforms.stochastic.value = viewpoint.stochastic; - this.uniforms.enable2DGS.value = this.enable2DGS; - this.uniforms.preBlurAmount.value = this.preBlurAmount; - this.uniforms.blurAmount.value = this.blurAmount; - this.uniforms.focalDistance.value = this.focalDistance; - this.uniforms.apertureAngle.value = this.apertureAngle; - this.uniforms.falloff.value = this.falloff; - this.uniforms.clipXY.value = this.clipXY; - this.uniforms.focalAdjustment.value = this.focalAdjustment; - if (this.lastStochastic !== !viewpoint.stochastic) { - this.lastStochastic = !viewpoint.stochastic; - this.material.transparent = !viewpoint.stochastic; - this.material.depthWrite = viewpoint.stochastic; - this.material.needsUpdate = true; - } - if (this.splatTexture) { - const { enable, texture: texture2, multiply, add: add2, near, far, mid } = this.splatTexture; - if (enable && texture2) { - this.uniforms.splatTexEnable.value = true; - this.uniforms.splatTexture.value = texture2; - if (multiply) { - this.uniforms.splatTexMul.value.fromArray(multiply.elements); - } else { - this.uniforms.splatTexMul.value.set( - 0.5 / this.maxStdDev, - 0, - 0, - 0.5 / this.maxStdDev - ); + for (let index = 0; index < count; index++) { + for (const parser of parsers) { + parser(); + } + if (isVertex) { + rgbaOffset += 4; } - this.uniforms.splatTexAdd.value.set((add2 == null ? void 0 : add2.x) ?? 0.5, (add2 == null ? void 0 : add2.y) ?? 0.5); - this.uniforms.splatTexNear.value = near ?? this.uniforms.near.value; - this.uniforms.splatTexFar.value = far ?? this.uniforms.far.value; - this.uniforms.splatTexMid.value = mid ?? 0; - } else { - this.uniforms.splatTexEnable.value = false; - this.uniforms.splatTexture.value = _OldSparkRenderer.EMPTY_SPLAT_TEXTURE; } + } + } +}; +_PlyReader.defaultPointScale = 1e-3; +let PlyReader = _PlyReader; +const SH_C0$1 = 0.28209479177387814; +const PARSE_FIELD = { + char: (data, offset, littleEndian) => { + return data.getInt8(offset); + }, + uchar: (data, offset, littleEndian) => { + return data.getUint8(offset); + }, + short: (data, offset, littleEndian) => { + return data.getInt16(offset, littleEndian); + }, + ushort: (data, offset, littleEndian) => { + return data.getUint16(offset, littleEndian); + }, + int: (data, offset, littleEndian) => { + return data.getInt32(offset, littleEndian); + }, + uint: (data, offset, littleEndian) => { + return data.getUint32(offset, littleEndian); + }, + float: (data, offset, littleEndian) => { + return data.getFloat32(offset, littleEndian); + }, + double: (data, offset, littleEndian) => { + return data.getFloat64(offset, littleEndian); + } +}; +const SET_FIELD = { + char: (data, offset, littleEndian, value) => { + data.setInt8(offset, value); + }, + uchar: (data, offset, littleEndian, value) => { + data.setUint8(offset, value); + }, + short: (data, offset, littleEndian, value) => { + data.setInt16(offset, value, littleEndian); + }, + ushort: (data, offset, littleEndian, value) => { + data.setUint16(offset, value, littleEndian); + }, + int: (data, offset, littleEndian, value) => { + data.setInt32(offset, value, littleEndian); + }, + uint: (data, offset, littleEndian, value) => { + data.setUint32(offset, value, littleEndian); + }, + float: (data, offset, littleEndian, value) => { + data.setFloat32(offset, value, littleEndian); + }, + double: (data, offset, littleEndian, value) => { + data.setFloat64(offset, value, littleEndian); + } +}; +const FIELD_BYTES = { + char: 1, + uchar: 1, + short: 2, + ushort: 2, + int: 4, + uint: 4, + float: 4, + double: 8 +}; +const FIELD_SCALE = { + char: 127, + uchar: 255, + short: 32767, + ushort: 65535, + int: 2147483647, + uint: 4294967295, + float: 1, + double: 1 +}; +const NUM_F_REST_TO_NUM_SH = { + 0: 0, + 9: 1, + 24: 2, + 45: 3 +}; +const NUM_SH_TO_NUM_F_REST = { + 0: 0, + 1: 9, + 2: 24, + 3: 45 +}; +const F_REST_REGEX = /^f_rest_([0-9]{1,2})$/; +function createEmptyItem(properties) { + const item = {}; + for (const [propertyName, property] of Object.entries(properties)) { + if (F_REST_REGEX.test(propertyName)) { + item.f_rest = new Array(getNumSh(properties)); } else { - this.uniforms.splatTexEnable.value = false; - this.uniforms.splatTexture.value = _OldSparkRenderer.EMPTY_SPLAT_TEXTURE; + item[propertyName] = property.isList ? [] : 0; } - const accumToWorld = ((_b2 = viewpoint.display) == null ? void 0 : _b2.accumulator.toWorld) ?? new THREE__namespace.Matrix4(); - const worldToCamera = camera.matrixWorld.clone().invert(); - const originToCamera = accumToWorld.clone().premultiply(worldToCamera); - originToCamera.decompose( - this.uniforms.renderToViewPos.value, - this.uniforms.renderToViewQuat.value, - new THREE__namespace.Vector3() - ); } - // Update the uniforms for the given viewpoint. - // Note that the client expects to be able to call render() at any point - // to update the canvas, so we must switch the viewpoint back to - // defaultView when we're finished. - prepareViewpoint(viewpoint) { - var _a2, _b2, _c, _d; - this.viewpoint = viewpoint ?? this.viewpoint; - if (this.viewpoint.display) { - const { accumulator, geometry } = this.viewpoint.display; - this.uniforms.numSplats.value = accumulator.splats.numSplats; - this.uniforms.packedSplats.value = accumulator.splats.getTexture(); - this.uniforms.rgbMinMaxLnScaleMinMax.value.set( - ((_a2 = accumulator.splats.splatEncoding) == null ? void 0 : _a2.rgbMin) ?? 0, - ((_b2 = accumulator.splats.splatEncoding) == null ? void 0 : _b2.rgbMax) ?? 1, - ((_c = accumulator.splats.splatEncoding) == null ? void 0 : _c.lnScaleMin) ?? LN_SCALE_MIN, - ((_d = accumulator.splats.splatEncoding) == null ? void 0 : _d.lnScaleMax) ?? LN_SCALE_MAX - ); - this.geometry = geometry; - this.material.transparent = !this.viewpoint.stochastic; - this.material.depthWrite = this.viewpoint.stochastic; - this.material.needsUpdate = true; - } else { - this.uniforms.numSplats.value = 0; - this.uniforms.packedSplats.value = PackedSplats.getEmptyArray; - this.geometry = EMPTY_GEOMETRY; - } + return item; +} +function createParseFn(properties, littleEndian) { + if (safeToCompile(properties)) { + return createCompiledParserFn(properties, littleEndian); } - // If spark.autoUpdate is false then you must manually call - // spark.update({ scene }) to have the scene Gsplats be re-generated. - update({ - scene, - viewToWorld - }) { - const originToWorld = this.matrixWorld; - if (this.preUpdate) { - this.updateInternal({ - scene, - originToWorld: originToWorld.clone(), - viewToWorld - }); - } else { - this.pendingUpdate.scene = scene; - this.pendingUpdate.originToWorld.copy(originToWorld); - if (this.pendingUpdate.timeoutId === -1) { - this.pendingUpdate.timeoutId = setTimeout(() => { - const { scene: scene2, originToWorld: originToWorld2 } = this.pendingUpdate; - this.pendingUpdate.scene = null; - this.pendingUpdate.timeoutId = -1; - const updated = this.updateInternal({ - scene: scene2, - originToWorld: originToWorld2, - viewToWorld - }); - if (updated) { - const gl = this.renderer.getContext(); - gl.flush(); - } - }, 1); - } - } + return createDynamicParserFn(properties, littleEndian); +} +const UNSAFE_EVAL_ALLOWED = (() => { + try { + new Function("return 42;"); + } catch (e) { + return false; } - updateInternal({ - scene, - originToWorld, - viewToWorld - }) { - var _a2; - if (!this.canAllocAccumulator()) { + return true; +})(); +const PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/; +function safeToCompile(properties) { + if (!UNSAFE_EVAL_ALLOWED) { + return false; + } + for (const [propertyName, property] of Object.entries(properties)) { + if (!PROPERTY_NAME_REGEX.test(propertyName)) { return false; } - if (!originToWorld) { - originToWorld = this.active.toWorld; - } - viewToWorld = viewToWorld ?? originToWorld.clone(); - const time = this.time ?? this.clock.getElapsedTime(); - const deltaTime = time - (this.lastUpdateTime ?? time); - this.lastUpdateTime = time; - const activeMapping = this.active.mapping.reduce((map, record) => { - map.set(record.node, record); - return map; - }, /* @__PURE__ */ new Map()); - const { generators: generators2, visibleGenerators, globalEdits } = this.compileScene(scene); - for (const object of generators2) { - (_a2 = object.frameUpdate) == null ? void 0 : _a2.call(object, { - renderer: this.renderer, - object, - time, - deltaTime, - viewToWorld, - globalEdits - }); + if (property.isList && !PLY_PROPERTY_TYPES.includes(property.countType)) { + return false; } - const visibleGenHash = new Set(visibleGenerators.map((g) => g.uuid)); - for (const object of generators2) { - const current = activeMapping.get(object); - const isVisible = object.generator && visibleGenHash.has(object.uuid); - const numSplats = isVisible ? object.numSplats : 0; - if (this.needsUpdate || object.generator !== (current == null ? void 0 : current.generator) || numSplats !== (current == null ? void 0 : current.count)) { - object.updateVersion(); - } + if (!PLY_PROPERTY_TYPES.includes(property.type)) { + return false; } - const originUpdate = !withinCoorientDist({ - matrix1: originToWorld, - matrix2: this.active.toWorld, - maxDistance: this.originDistance - }); - const needsUpdate = this.needsUpdate || originUpdate || generators2.length !== activeMapping.size || generators2.some((g) => { - var _a3; - return g.version !== ((_a3 = activeMapping.get(g)) == null ? void 0 : _a3.version); - }); - this.needsUpdate = false; - let accumulator = null; - if (needsUpdate) { - accumulator = this.maybeAllocAccumulator(); - if (!accumulator) { - throw new Error("Unreachable"); - } - const originChanged = !withinCoorientDist({ - matrix1: originToWorld, - matrix2: accumulator.toWorld, - maxDistance: 1e-5, - minCoorient: 0.99999 - }); - const sorted = visibleGenerators.map((g, gIndex) => { - const lastGen = activeMapping.get(g); - return !lastGen ? [Number.POSITIVE_INFINITY, g.version, g] : ( - // Sort by version deltas then by previous ordering in the mapping, - // attempting to keep unchanging generators near the front - // to improve our chances of avoiding a re-generation. - [g.version - lastGen.version, lastGen.base, g] - ); - }).sort((a, b) => { - if (a[0] !== b[0]) { - return a[0] - b[0]; + } + return true; +} +function createCompiledParserFn(properties, littleEndian) { + const parserSrc = ["let list;"]; + for (const [propertyName, property] of Object.entries(properties)) { + const fRestMatch = propertyName.match(F_REST_REGEX); + if (fRestMatch) { + const fRestIndex = +fRestMatch[1]; + parserSrc.push( + /*js*/ + ` + item.f_rest[${fRestIndex}] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian}); + offset += ${FIELD_BYTES[property.type]}; + ` + ); + } else if (!property.isList) { + parserSrc.push( + /*js*/ + ` + item['${propertyName}'] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian}); + offset += ${FIELD_BYTES[property.type]}; + ` + ); + } else { + parserSrc.push( + /*js*/ + ` + list = item['${propertyName}']; + list.length = PARSE_FIELD['${property.countType}'](data, offset, ${littleEndian}); + offset += ${FIELD_BYTES[property.countType]}; + for (let i = 0; i < list.length; i++) { + list[i] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian}); + offset += ${FIELD_BYTES[property.type]}; } - return a[1] - b[1]; - }); - const genOrder = sorted.map(([_version, _seq, g]) => g); - const splatCounts = genOrder.map((g) => g.numSplats); - const { maxSplats, mapping } = accumulator.splats.generateMapping(splatCounts); - const newGenerators = genOrder.map((node, gIndex) => { - const { base, count } = mapping[gIndex]; - return { - node, - generator: node.generator, - version: node.version, - base, - count - }; - }); - originToWorld.clone().invert().decompose( - this.translateToAccumulator.value, - this.rotateToAccumulator.value, - new THREE__namespace.Vector3() + ` ); - accumulator.ensureGenerate(maxSplats); - accumulator.splats.splatEncoding = { ...this.splatEncoding }; - accumulator.generateSplats({ - renderer: this.renderer, - modifier: this.modifier, - generators: newGenerators, - forceUpdate: originChanged, - originToWorld - }); - accumulator.splatsVersion = this.active.splatsVersion + 1; - const hasCorrespondence = accumulator.hasCorrespondence(this.active); - accumulator.mappingVersion = this.active.mappingVersion + (hasCorrespondence ? 0 : 1); - this.releaseAccumulator(this.active); - this.active = accumulator; - this.prepareViewpoint(); - } - setTimeout(() => { - for (const view of this.autoViewpoints) { - view.autoPoll({ accumulator: accumulator ?? void 0 }); - } - }, 1); - return true; + } } - compileScene(scene) { - const generators2 = []; - scene.traverse((node) => { - if (node instanceof SplatGenerator) { - generators2.push(node); - } - }); - const visibleGenerators = []; - scene.traverseVisible((node) => { - if (node instanceof SplatGenerator) { - visibleGenerators.push(node); - } - }); - const globalEdits = /* @__PURE__ */ new Set(); - scene.traverseVisible((node) => { - if (node instanceof SplatEdit) { - let ancestor = node.parent; - while (ancestor != null && !(ancestor instanceof SplatMesh)) { - ancestor = ancestor.parent; + parserSrc.push("return offset;"); + const fn = new Function( + "data", + "offset", + "item", + "PARSE_FIELD", + parserSrc.join("\n") + ); + return (data, offset, item) => fn(data, offset, item, PARSE_FIELD); +} +function createDynamicParserFn(properties, littleEndian) { + const parsers = []; + for (const [propertyName, property] of Object.entries(properties)) { + const fRestMatch = propertyName.match(F_REST_REGEX); + if (fRestMatch) { + const fRestIndex = +fRestMatch[1]; + parsers.push( + (data, offset, item) => { + item.f_rest[fRestIndex] = PARSE_FIELD[property.type]( + data, + offset, + littleEndian + ); + return offset + FIELD_BYTES[property.type]; } - if (ancestor == null) { - globalEdits.add(node); + ); + } else if (!property.isList) { + parsers.push( + (data, offset, item) => { + item[propertyName] = PARSE_FIELD[property.type]( + data, + offset, + littleEndian + ); + return offset + FIELD_BYTES[property.type]; } - } - }); - return { - generators: generators2, - visibleGenerators, - globalEdits: Array.from(globalEdits) - }; - } - // Renders out the scene to an environment map that can be used for - // Image-based lighting or similar applications. First optionally updates Gsplats, - // sorts them with respect to the provided worldCenter, renders 6 cube faces, - // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture - // that can assigned directly to a THREE.MeshStandardMaterial.envMap property. - async renderEnvMap({ - renderer, - scene, - worldCenter, - size = 256, - near = 0.1, - far = 1e3, - hideObjects = [], - update = false - }) { - var _a2, _b2; - if (!this.envViewpoint) { - this.envViewpoint = this.newViewpoint({ sort360: true }); - } - if (!_OldSparkRenderer.cubeRender || _OldSparkRenderer.cubeRender.target.width !== size || _OldSparkRenderer.cubeRender.near !== near || _OldSparkRenderer.cubeRender.far !== far) { - if (_OldSparkRenderer.cubeRender) { - _OldSparkRenderer.cubeRender.target.dispose(); - } - const target2 = new THREE__namespace.WebGLCubeRenderTarget(size, { - format: THREE__namespace.RGBAFormat, - generateMipmaps: true, - minFilter: THREE__namespace.LinearMipMapLinearFilter - }); - const camera2 = new THREE__namespace.CubeCamera(near, far, target2); - _OldSparkRenderer.cubeRender = { target: target2, camera: camera2, near, far }; - } - if (!_OldSparkRenderer.pmrem) { - _OldSparkRenderer.pmrem = new THREE__namespace.PMREMGenerator( - renderer ?? this.renderer ); - } - const viewToWorld = new THREE__namespace.Matrix4().setPosition(worldCenter); - await ((_a2 = this.envViewpoint) == null ? void 0 : _a2.prepare({ scene, viewToWorld, update })); - const { target, camera } = _OldSparkRenderer.cubeRender; - camera.position.copy(worldCenter); - const objectVisibility = /* @__PURE__ */ new Map(); - for (const object of hideObjects) { - objectVisibility.set(object, object.visible); - object.visible = false; - } - this.prepareViewpoint(this.envViewpoint); - camera.update(renderer ?? this.renderer, scene); - this.prepareViewpoint(this.defaultView); - for (const [object, visible] of objectVisibility.entries()) { - object.visible = visible; - } - return (_b2 = _OldSparkRenderer.pmrem) == null ? void 0 : _b2.fromCubemap(target.texture).texture; - } - // Utility function to recursively set the envMap property for any - // THREE.MeshStandardMaterial within the subtree of root. - recurseSetEnvMap(root, envMap) { - root.traverse((node) => { - if (node instanceof THREE__namespace.Mesh) { - if (Array.isArray(node.material)) { - for (const material of node.material) { - if (material instanceof THREE__namespace.MeshStandardMaterial) { - material.envMap = envMap; - } - } - } else { - if (node.material instanceof THREE__namespace.MeshStandardMaterial) { - node.material.envMap = envMap; + } else { + parsers.push( + (data, offset, item) => { + const list = item[propertyName]; + list.length = PARSE_FIELD[property.countType]( + data, + offset, + littleEndian + ); + let currentOffset = offset + FIELD_BYTES[property.countType]; + for (let i = 0; i < list.length; i++) { + list[i] = PARSE_FIELD[property.type]( + data, + currentOffset, + littleEndian + ); + currentOffset += FIELD_BYTES[property.type]; } + return currentOffset; } - } - }); - } - // Utility function that helps extract the Gsplat RGBA values from a - // SplatGenerator, including the result of any real-time RGBA SDF edits applied - // to a SplatMesh. This effectively "bakes" any computed RGBA values, which can - // now be used as a pipeline input via SplatMesh.splatRgba to inject these - // baked values into the Gsplat data. - getRgba({ - generator, - rgba - }) { - const mapping = this.active.mapping.find(({ node }) => node === generator); - if (!mapping) { - throw new Error("Generator not found"); - } - rgba = rgba ?? new RgbaArray(); - rgba.fromPackedSplats({ - packedSplats: this.active.splats, - base: mapping.base, - count: mapping.count, - renderer: this.renderer - }); - return rgba; - } - // Utility function that builds on getRgba({ generator }) and additionally - // reads back the RGBA values to the CPU in a Uint8Array with packed RGBA - // in that byte order. - async readRgba({ - generator, - rgba - }) { - rgba = this.getRgba({ generator, rgba }); - return rgba.read(); + ); + } } -}; -_OldSparkRenderer.cubeRender = null; -_OldSparkRenderer.pmrem = null; -_OldSparkRenderer.EMPTY_SPLAT_TEXTURE = new THREE__namespace.Data3DTexture(); -let OldSparkRenderer = _OldSparkRenderer; -const EMPTY_GEOMETRY = new OldSplatGeometry(new Uint32Array(1), 0); -dynoBlock( - { packedSplats: TPackedSplats, index: "int" }, - { gsplat: Gsplat }, - ({ packedSplats, index }) => { - if (!packedSplats || !index) { - throw new Error("Invalid input"); - } - const gsplat = readPackedSplat(packedSplats, index); - return { gsplat }; + return (data, offset, item) => { + let currentOffset = offset; + for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) { + currentOffset = parsers[parserIndex](data, currentOffset, item); + } + return currentOffset; + }; +} +function getNumSh(properties) { + let num_f_rest = 0; + while (properties[`f_rest_${num_f_rest}`]) { + num_f_rest += 1; } -); -function averageOriginToWorlds(originToWorlds) { - if (originToWorlds.length === 0) { - return null; + const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest]; + if (numSh == null) { + throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`); } - const position = new THREE__namespace.Vector3(); - const quaternion = new THREE__namespace.Quaternion(); - const scale = new THREE__namespace.Vector3(); - const positions = []; - const quaternions = []; - for (const matrix of originToWorlds) { - matrix.decompose(position, quaternion, scale); - positions.push(position); - quaternions.push(quaternion); - } - return new THREE__namespace.Matrix4().compose( - averagePositions(positions), - averageQuaternions(quaternions), - new THREE__namespace.Vector3(1, 1, 1) - ); + return numSh; } function decodeAntiSplat(fileBytes, initNumSplats, splatCallback) { const numSplats = Math.floor(fileBytes.length / 32); @@ -20629,9 +19509,6 @@ exports.JointSplats = JointSplats; exports.LN_SCALE_MAX = LN_SCALE_MAX; exports.LN_SCALE_MIN = LN_SCALE_MIN; exports.NUM_JOINTS = NUM_JOINTS; -exports.OldSparkRenderer = OldSparkRenderer; -exports.OldSparkViewpoint = OldSparkViewpoint; -exports.OldSplatAccumulator = OldSplatAccumulator; exports.PackedSplats = PackedSplats; exports.PagedSplats = PagedSplats; exports.PlyReader = PlyReader; @@ -20691,6 +19568,5 @@ exports.textSplats = textSplats; exports.toHalf = toHalf; exports.transcodeSpz = transcodeSpz; exports.unpackSplat = unpackSplat; -exports.unpackSplats = unpackSplats; exports.utils = utils; //# sourceMappingURL=spark.cjs.js.map diff --git a/dist/spark.cjs.js.map b/dist/spark.cjs.js.map index 75e32034..b99c09a8 100644 --- a/dist/spark.cjs.js.map +++ b/dist/spark.cjs.js.map @@ -1 +1 @@ -{"version":3,"file":"spark.cjs.js","sources":["../src/OldSplatGeometry.ts","../node_modules/fflate/esm/browser.js","../src/defines.ts","../src/dyno/types.ts","../src/dyno/value.ts","../src/dyno/base.ts","../src/utils.ts","../src/OldSplatWorker.ts","../src/SplatWorker.ts","../src/dyno/splats.ts","../src/dyno/output.ts","../src/dyno/uniforms.ts","../src/dyno/program.ts","../src/dyno/mathTypes.ts","../src/dyno/math.ts","../src/dyno/logic.ts","../src/dyno/convert.ts","../src/dyno/vecmat.ts","../src/dyno/util.ts","../src/dyno/transform.ts","../src/dyno/control.ts","../src/dyno/texture.ts","../src/dyno/trig.ts","../src/ExtSplats.ts","../rust/spark-rs/pkg/spark_rs.js","../src/shaders/computeUvec4.glsl","../src/shaders/computeUvec4_Vec4.glsl","../src/shaders/computeUvec4x2_Vec4.glsl","../src/shaders/computeVec4.glsl","../src/shaders/oldSplatFragment.glsl","../src/shaders/oldSplatVertex.glsl","../src/shaders/splatDefines.glsl","../src/shaders/splatFragment.glsl","../src/shaders/splatVertex.glsl","../src/shaders.ts","../src/Readback.ts","../src/RgbaArray.ts","../src/SplatEdit.ts","../src/SplatGenerator.ts","../src/SplatAccumulator.ts","../src/SplatGeometry.ts","../src/SparkRenderer.ts","../src/SplatPager.ts","../src/SplatMesh.ts","../src/ply.ts","../src/SplatLoader.ts","../src/PackedSplats.ts","../src/OldSparkViewpoint.ts","../src/OldSplatAccumulator.ts","../src/OldSparkRenderer.ts","../src/antisplat.ts","../src/ksplat.ts","../src/spz.ts","../src/SplatSkinning.ts","../src/splatConstructors.ts","../src/generators/static.ts","../src/generators/snow.ts","../src/modifiers/normalColor.ts","../src/modifiers/depthColor.ts","../src/SparkXr.ts","../src/hands.ts","../src/controls.ts","../src/SparkPortals.ts"],"sourcesContent":["import * as THREE from \"three\";\n\n// SplatGeometry is an internal class used by SparkRenderer to render a collection\n// of Gsplats in a single draw call by extending THREE.InstancedBufferGeometry.\n// Each Gsplat is drawn as two triangles, with the order of the Gsplats determined\n// by the instance attribute \"ordering\".\n\nexport class OldSplatGeometry extends THREE.InstancedBufferGeometry {\n ordering: Uint32Array;\n attribute: THREE.InstancedBufferAttribute;\n\n constructor(ordering: Uint32Array, activeSplats: number) {\n super();\n\n this.ordering = ordering;\n\n this.setAttribute(\"position\", new THREE.BufferAttribute(QUAD_VERTICES, 3));\n this.setIndex(new THREE.BufferAttribute(QUAD_INDICES, 1));\n\n // Hack to work around Three.js\n // @ts-ignore\n this._maxInstanceCount = ordering.length;\n this.instanceCount = activeSplats;\n\n this.attribute = new THREE.InstancedBufferAttribute(ordering, 1, false, 1);\n this.attribute.setUsage(THREE.DynamicDrawUsage);\n this.setAttribute(\"splatIndex\", this.attribute);\n }\n\n update(ordering: Uint32Array, activeSplats: number) {\n this.ordering = ordering;\n this.attribute.array = ordering;\n this.instanceCount = activeSplats;\n this.attribute.addUpdateRange(0, activeSplats);\n this.attribute.needsUpdate = true;\n }\n}\n\n// Each instance draws to triangles covering a quad over coords (-1,-1,0)..(1,1,0)\nconst QUAD_VERTICES = new Float32Array([\n -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0,\n]);\n\nconst QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]);\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","// LN_SCALE_MIN..LN_SCALE_MAX define the internal scale range of for Gsplats,\n// covering approx 0.0001..8000 in range with discrete steps 7% apart.\n// The value \"0\" is reserved for truly flat scales, indicating a 2DGS.\n// If these values are changed, the corresponding values in splatDefines.glsl\n// must also be updated to match.\n\nexport const LN_SCALE_MIN = -12.0;\nexport const LN_SCALE_MAX = 9.0;\nexport const SCALE_MIN = Math.exp(LN_SCALE_MIN);\nexport const SCALE_MAX = Math.exp(LN_SCALE_MAX);\n\nexport const LN_SCALE_ZERO = -30.0;\nexport const SCALE_ZERO = Math.exp(LN_SCALE_ZERO);\n\n// Gsplats are stored in textures that are 2^11 x 2^11 x up to 2^11\n// Most WebGL2 implementations support 2D textures up to 2^12 x 2^12 (max 16M Gsplats)\n// 2D array textures and 3D textures up to 2^11 x 2^11 x 2^11 (max 8G Gsplats),\n// so we use 2D array textures for our representation for higher limits.\n\nexport const SPLAT_TEX_WIDTH_BITS = 11;\nexport const SPLAT_TEX_HEIGHT_BITS = 11;\nexport const SPLAT_TEX_DEPTH_BITS = 11;\nexport const SPLAT_TEX_LAYER_BITS =\n SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nexport const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS; // 2048\nexport const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS; // 2048\nexport const SPLAT_TEX_DEPTH = 1 << SPLAT_TEX_DEPTH_BITS; // 2048\nexport const SPLAT_TEX_MIN_HEIGHT = 1;\n\nexport const SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1;\nexport const SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1;\nexport const SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1;\n\n// Enable/disable Gsplat sorting via Rust WASM code. In testing the sorting\n// time between pure JS and WASM are minimal and don't make a big difference.\n\nexport const WASM_SPLAT_SORT = true;\n\n// Enable/disable compiling a dedicated parse function per element type\n// in the plyReader.\n\nexport const USE_COMPILED_PARSER_FUNCTION = true;\n\nexport enum SplatFileType {\n PLY = \"ply\",\n SPZ = \"spz\",\n SPLAT = \"splat\",\n KSPLAT = \"ksplat\",\n PCSOGS = \"pcsogs\",\n PCSOGSZIP = \"pcsogszip\",\n RAD = \"rad\",\n}\n\nexport type SplatEncoding = {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n sh1Max?: number;\n sh2Max?: number;\n sh3Max?: number;\n lodOpacity?: boolean;\n};\n\nexport const DEFAULT_SPLAT_ENCODING: SplatEncoding = {\n rgbMin: 0,\n rgbMax: 1,\n lnScaleMin: LN_SCALE_MIN,\n lnScaleMax: LN_SCALE_MAX,\n sh1Max: 1,\n sh2Max: 1,\n sh3Max: 1,\n lodOpacity: false,\n};\n\nexport type RadMeta = {\n version: number;\n type: string;\n count: number;\n maxSh?: number;\n lodTree?: boolean;\n chunkSize?: number;\n chunks: {\n offset: number;\n bytes: number;\n base?: number;\n count?: number;\n filename?: string;\n }[];\n splatEncoding?: SplatEncoding;\n};\n\nexport type PackedExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type PackedResult = {\n numSplats: number;\n packedArray: Uint32Array;\n extra: PackedExtra;\n splatEncoding: SplatEncoding;\n};\n\nexport type ExtExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3a?: Uint32Array;\n sh3b?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type ExtResult = {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: ExtExtra;\n};\n","import type * as THREE from \"three\";\n\nexport type BoolTypes = \"bool\" | \"bvec2\" | \"bvec3\" | \"bvec4\";\nexport type IntTypes = \"int\" | \"ivec2\" | \"ivec3\" | \"ivec4\";\nexport type UintTypes = \"uint\" | \"uvec2\" | \"uvec3\" | \"uvec4\";\nexport type AllIntTypes = IntTypes | UintTypes;\nexport type FloatTypes = \"float\" | \"vec2\" | \"vec3\" | \"vec4\";\nexport type ScalarTypes = \"uint\" | \"int\" | \"float\";\nexport type Vector2Types = \"vec2\" | \"ivec2\" | \"uvec2\";\nexport type Vector3Types = \"vec3\" | \"ivec3\" | \"uvec3\";\nexport type Vector4Types = \"vec4\" | \"ivec4\" | \"uvec4\";\nexport type VectorTypes = Vector2Types | Vector3Types | Vector4Types;\nexport type MatFloatTypes =\n | \"mat2\"\n | \"mat2x2\"\n | \"mat2x3\"\n | \"mat2x4\"\n | \"mat3\"\n | \"mat3x2\"\n | \"mat3x3\"\n | \"mat3x4\"\n | \"mat4\"\n | \"mat4x2\"\n | \"mat4x3\"\n | \"mat4x4\";\nexport type SquareMatTypes =\n | \"mat2\"\n | \"mat3\"\n | \"mat4\"\n | \"mat2x2\"\n | \"mat3x3\"\n | \"mat4x4\";\nexport type AllFloatTypes = FloatTypes | MatFloatTypes;\nexport type SignedTypes = IntTypes | FloatTypes;\nexport type AllSignedTypes = SignedTypes | MatFloatTypes;\nexport type ValueTypes = FloatTypes | IntTypes | UintTypes;\nexport type AllValueTypes = AllFloatTypes | IntTypes | UintTypes;\nexport type SimpleTypes = BoolTypes | AllValueTypes;\n\nexport type VectorElementType = A extends FloatTypes\n ? \"float\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nexport type SameSizeVec = T extends ScalarTypes\n ? \"float\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"vec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"vec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"vec4\"\n : never;\n\nexport type SameSizeUvec = T extends ScalarTypes\n ? \"uint\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"uvec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"uvec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"uvec4\"\n : never;\n\nexport type SameSizeIvec = T extends ScalarTypes\n ? \"int\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"ivec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"ivec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"ivec4\"\n : never;\n\nexport type SamplerTypes =\n | \"sampler2D\"\n | \"sampler2DArray\"\n | \"sampler3D\"\n | \"samplerCube\";\nexport type UsamplerTypes =\n | \"usampler2D\"\n | \"usampler2DArray\"\n | \"usampler3D\"\n | \"usamplerCube\";\nexport type IsamplerTypes =\n | \"isampler2D\"\n | \"isampler2DArray\"\n | \"isampler3D\"\n | \"isamplerCube\";\nexport type NormalSamplerTypes = SamplerTypes | UsamplerTypes | IsamplerTypes;\nexport type SamplerShadowTypes =\n | \"sampler2DShadow\"\n | \"sampler2DArrayShadow\"\n | \"samplerCubeShadow\";\nexport type AllSamplerTypes = NormalSamplerTypes | SamplerShadowTypes;\nexport type Sampler2DTypes =\n | \"sampler2D\"\n | \"usampler2D\"\n | \"isampler2D\"\n | \"sampler2DShadow\";\nexport type Sampler2DArrayTypes =\n | \"sampler2DArray\"\n | \"usampler2DArray\"\n | \"isampler2DArray\"\n | \"sampler2DArrayShadow\";\nexport type Sampler3DTypes = \"sampler3D\" | \"usampler3D\" | \"isampler3D\";\nexport type SamplerCubeTypes =\n | \"samplerCube\"\n | \"usamplerCube\"\n | \"isamplerCube\"\n | \"samplerCubeShadow\";\n\nexport function isBoolType(type: DynoType): boolean {\n return (\n type === \"bool\" || type === \"bvec2\" || type === \"bvec3\" || type === \"bvec4\"\n );\n}\n\nexport function isScalarType(type: DynoType): boolean {\n return type === \"int\" || type === \"uint\" || type === \"float\";\n}\n\nexport function isIntType(type: DynoType): boolean {\n return (\n type === \"int\" || type === \"ivec2\" || type === \"ivec3\" || type === \"ivec4\"\n );\n}\n\nexport function isUintType(type: DynoType): boolean {\n return (\n type === \"uint\" || type === \"uvec2\" || type === \"uvec3\" || type === \"uvec4\"\n );\n}\n\nexport function isFloatType(type: DynoType): boolean {\n return (\n type === \"float\" || type === \"vec2\" || type === \"vec3\" || type === \"vec4\"\n );\n}\n\nexport function isMatFloatType(type: DynoType): boolean {\n return (\n type === \"mat2\" ||\n type === \"mat2x2\" ||\n type === \"mat2x3\" ||\n type === \"mat2x4\" ||\n type === \"mat3\" ||\n type === \"mat3x2\" ||\n type === \"mat3x3\" ||\n type === \"mat3x4\" ||\n type === \"mat4\" ||\n type === \"mat4x2\" ||\n type === \"mat4x3\" ||\n type === \"mat4x4\"\n );\n}\n\nexport function isAllFloatType(type: DynoType): boolean {\n return isFloatType(type) || isMatFloatType(type);\n}\n\nexport function isVector2Type(type: DynoType): boolean {\n return type === \"vec2\" || type === \"ivec2\" || type === \"uvec2\";\n}\n\nexport function isVector3Type(type: DynoType): boolean {\n return type === \"vec3\" || type === \"ivec3\" || type === \"uvec3\";\n}\n\nexport function isVector4Type(type: DynoType): boolean {\n return type === \"vec4\" || type === \"ivec4\" || type === \"uvec4\";\n}\n\nexport function isVectorType(type: DynoType): boolean {\n return isVector2Type(type) || isVector3Type(type) || isVector4Type(type);\n}\n\nexport function isMat2(type: DynoType): boolean {\n return type === \"mat2\" || type === \"mat2x2\";\n}\nexport function isMat3(type: DynoType): boolean {\n return type === \"mat3\" || type === \"mat3x3\";\n}\nexport function isMat4(type: DynoType): boolean {\n return type === \"mat4\" || type === \"mat4x4\";\n}\n\nexport function vectorElementType(\n type: A,\n): VectorElementType {\n switch (type) {\n case \"vec2\":\n return \"float\" as VectorElementType;\n case \"vec3\":\n return \"float\" as VectorElementType;\n case \"vec4\":\n return \"float\" as VectorElementType;\n case \"ivec2\":\n return \"int\" as VectorElementType;\n case \"ivec3\":\n return \"int\" as VectorElementType;\n case \"ivec4\":\n return \"int\" as VectorElementType;\n case \"uvec2\":\n return \"uint\" as VectorElementType;\n case \"uvec3\":\n return \"uint\" as VectorElementType;\n case \"uvec4\":\n return \"uint\" as VectorElementType;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function vectorDim(type: A): number {\n switch (type) {\n case \"vec2\":\n case \"ivec2\":\n case \"uvec2\":\n return 2;\n case \"vec3\":\n case \"ivec3\":\n case \"uvec3\":\n return 3;\n case \"vec4\":\n case \"ivec4\":\n case \"uvec4\":\n return 4;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function sameSizeVec(type: T): SameSizeVec {\n if (isScalarType(type)) {\n return \"float\" as SameSizeVec;\n }\n if (isVector2Type(type)) {\n return \"vec2\" as SameSizeVec;\n }\n if (isVector3Type(type)) {\n return \"vec3\" as SameSizeVec;\n }\n if (isVector4Type(type)) {\n return \"vec4\" as SameSizeVec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeUvec(type: T): SameSizeUvec {\n if (isScalarType(type)) {\n return \"uint\" as SameSizeUvec;\n }\n if (isVector2Type(type)) {\n return \"uvec2\" as SameSizeUvec;\n }\n if (isVector3Type(type)) {\n return \"uvec3\" as SameSizeUvec;\n }\n if (isVector4Type(type)) {\n return \"uvec4\" as SameSizeUvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeIvec(type: T): SameSizeIvec {\n if (isScalarType(type)) {\n return \"int\" as SameSizeIvec;\n }\n if (isVector2Type(type)) {\n return \"ivec2\" as SameSizeIvec;\n }\n if (isVector3Type(type)) {\n return \"ivec3\" as SameSizeIvec;\n }\n if (isVector4Type(type)) {\n return \"ivec4\" as SameSizeIvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport type BaseType = SimpleTypes | AllSamplerTypes;\nexport type UserType = { type: string };\nexport type DynoType = BaseType | UserType;\n\nexport type DynoJsType = T extends \"bool\"\n ? boolean\n : T extends \"uint\"\n ? number\n : T extends \"int\"\n ? number\n : T extends \"float\"\n ? number\n : T extends \"bvec2\"\n ? [boolean, boolean]\n : T extends \"uvec2\"\n ? THREE.Vector2 | [number, number] | Uint32Array\n : T extends \"ivec2\"\n ? THREE.Vector2 | [number, number] | Int32Array\n : T extends \"vec2\"\n ? THREE.Vector2 | [number, number] | Float32Array\n : T extends \"bvec3\"\n ? [boolean, boolean, boolean]\n : T extends \"uvec3\"\n ? THREE.Vector3 | [number, number, number] | Uint32Array\n : T extends \"ivec3\"\n ? THREE.Vector3 | [number, number, number] | Int32Array\n : T extends \"vec3\"\n ?\n | THREE.Vector3\n | THREE.Color\n | [number, number, number]\n | Float32Array\n : T extends \"bvec4\"\n ? [boolean, boolean, boolean, boolean]\n : T extends \"uvec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Uint32Array\n : T extends \"ivec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Int32Array\n : T extends \"vec4\"\n ?\n | THREE.Vector4\n | THREE.Quaternion\n | [number, number, number, number]\n | Float32Array\n : T extends \"mat2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x3\"\n ? Float32Array\n : T extends \"mat2x4\"\n ? Float32Array\n : T extends \"mat3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x2\"\n ? Float32Array\n : T extends \"mat3x3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x4\"\n ? Float32Array\n : T extends \"mat4\"\n ? THREE.Matrix4 | Float32Array\n : T extends \"mat4x2\"\n ? Float32Array\n : T extends \"mat4x3\"\n ? Float32Array\n : T extends \"mat4x4\"\n ?\n | THREE.Matrix4\n | Float32Array\n : T extends \"usampler2D\"\n ? THREE.Texture\n : T extends \"isampler2D\"\n ? THREE.Texture\n : T extends \"sampler2D\"\n ? THREE.Texture\n : T extends \"sampler2DShadow\"\n ? THREE.Texture\n : T extends \"usampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"isampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArrayShadow\"\n ? THREE.Texture\n : T extends \"usampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"isampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"sampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"usamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"isamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCubeShadow\"\n ? THREE.Texture\n : unknown;\n\nexport function typeLiteral(type: DynoType): string {\n if (typeof type === \"string\") {\n return type;\n }\n if (typeof type === \"object\" && type.type) {\n return type.type;\n }\n throw new Error(`Invalid DynoType: ${String(type)}`);\n}\n\nexport function numberAsInt(value: number): string {\n return Math.trunc(value).toString();\n}\n\nexport function numberAsUint(value: number): string {\n const v = Math.max(0, Math.trunc(value));\n return `${v.toString()}u`;\n}\n\nexport function numberAsFloat(value: number): string {\n return value === Number.POSITIVE_INFINITY\n ? \"INFINITY\"\n : value === Number.NEGATIVE_INFINITY\n ? \"-INFINITY\"\n : Number.isInteger(value)\n ? value.toFixed(1)\n : value.toString();\n}\n","import * as THREE from \"three\";\n\nimport type { Dyno, IOTypes } from \"./base\";\nimport {\n type DynoJsType,\n type DynoType,\n type SimpleTypes,\n isAllFloatType,\n isBoolType,\n isIntType,\n isUintType,\n numberAsFloat,\n numberAsInt,\n numberAsUint,\n} from \"./types\";\n\nexport type DynoVal = DynoValue | HasDynoOut;\n\nexport function valType(val: DynoVal): T {\n if (val instanceof DynoValue) {\n return val.type;\n }\n const value = val.dynoOut();\n return value.type;\n}\n\nexport interface HasDynoOut {\n dynoOut(): DynoValue;\n}\n\nexport class DynoValue {\n type: T;\n // This field prevents TypeScript structural matching on objects with a \"type\" field\n private __isDynoValue = true;\n\n constructor(type: T) {\n this.type = type;\n }\n}\n\nexport class DynoOutput<\n T extends DynoType,\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends DynoValue {\n dyno: Dyno;\n key: string;\n\n constructor(dyno: Dyno, key: string) {\n super(dyno.outTypes[key] as T);\n this.dyno = dyno;\n this.key = key;\n }\n}\n\nexport class DynoLiteral extends DynoValue {\n literal: string;\n\n constructor(type: T, literal: string) {\n super(type);\n this.literal = literal;\n }\n\n getLiteral(): string {\n return this.literal;\n }\n}\n\nexport function dynoLiteral(\n type: T,\n literal: string,\n): DynoLiteral {\n return new DynoLiteral(type, literal);\n}\n\nexport class DynoConst extends DynoLiteral {\n value: DynoJsType;\n\n constructor(type: T, value: DynoJsType) {\n super(type, \"\");\n this.value = value;\n }\n\n getLiteral(): string {\n const { type, value } = this;\n switch (type) {\n case \"bool\":\n return value ? \"true\" : \"false\";\n case \"uint\":\n return numberAsUint(value as number);\n case \"int\":\n return numberAsInt(value as number);\n case \"float\":\n return numberAsFloat(value as number);\n case \"bvec2\": {\n const v = value as [boolean, boolean];\n return `bvec2(${v[0]}, ${v[1]})`;\n }\n case \"uvec2\": {\n if (value instanceof THREE.Vector2) {\n return `uvec2(${numberAsUint(value.x)}, ${numberAsUint(value.y)})`;\n }\n const v = value as [number, number] | Uint32Array;\n return `uvec2(${numberAsUint(v[0])}, ${numberAsUint(v[1])})`;\n }\n case \"ivec2\": {\n if (value instanceof THREE.Vector2) {\n return `ivec2(${numberAsInt(value.x)}, ${numberAsInt(value.y)})`;\n }\n const v = value as [number, number] | Int32Array;\n return `ivec2(${numberAsInt(v[0])}, ${numberAsInt(v[1])})`;\n }\n case \"vec2\": {\n if (value instanceof THREE.Vector2) {\n return `vec2(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)})`;\n }\n const v = value as [number, number] | Float32Array;\n return `vec2(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])})`;\n }\n case \"bvec3\": {\n const v = value as [boolean, boolean, boolean];\n return `bvec3(${v[0]}, ${v[1]}, ${v[2]})`;\n }\n case \"uvec3\": {\n if (value instanceof THREE.Vector3) {\n return `uvec3(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)})`;\n }\n const v = value as [number, number, number] | Uint32Array;\n return `uvec3(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])})`;\n }\n case \"ivec3\": {\n if (value instanceof THREE.Vector3) {\n return `ivec3(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)})`;\n }\n const v = value as [number, number, number] | Int32Array;\n return `ivec3(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])})`;\n }\n case \"vec3\": {\n if (value instanceof THREE.Vector3) {\n return `vec3(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)})`;\n }\n const v = value as [number, number, number] | Float32Array;\n return `vec3(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])})`;\n }\n case \"bvec4\": {\n const v = value as [boolean, boolean, boolean, boolean];\n return `bvec4(${v[0]}, ${v[1]}, ${v[2]}, ${v[3]})`;\n }\n case \"uvec4\": {\n if (value instanceof THREE.Vector4) {\n return `uvec4(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)}, ${numberAsUint(value.w)})`;\n }\n const v = value as [number, number, number, number] | Uint32Array;\n return `uvec4(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])}, ${numberAsUint(v[3])})`;\n }\n case \"ivec4\": {\n if (value instanceof THREE.Vector4) {\n return `ivec4(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)}, ${numberAsInt(value.w)})`;\n }\n const v = value as [number, number, number, number] | Int32Array;\n return `ivec4(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])}, ${numberAsInt(v[3])})`;\n }\n case \"vec4\": {\n if (value instanceof THREE.Vector4) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n if (value instanceof THREE.Quaternion) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n const v = value as [number, number, number, number] | Float32Array;\n return `vec4(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])}, ${numberAsFloat(v[3])})`;\n }\n case \"mat2\":\n case \"mat2x2\": {\n const m = value as DynoJsType<\"mat2\">;\n const e =\n m instanceof THREE.Matrix2 ? m.elements : (value as Float32Array);\n const arg = new Array(4).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x3\": {\n const e = value as DynoJsType<\"mat2x3\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x4\": {\n const e = value as DynoJsType<\"mat2x4\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3\":\n case \"mat3x3\": {\n const m = value as DynoJsType<\"mat3\">;\n const e =\n m instanceof THREE.Matrix3 ? m.elements : (value as Float32Array);\n const arg = new Array(9).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x2\": {\n const e = value as DynoJsType<\"mat3x2\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x4\": {\n const e = value as DynoJsType<\"mat3x4\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4\":\n case \"mat4x4\": {\n const m = value as DynoJsType<\"mat4\">;\n const e =\n m instanceof THREE.Matrix4 ? m.elements : (value as Float32Array);\n const arg = new Array(16).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x2\": {\n const e = value as DynoJsType<\"mat4x2\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x3\": {\n const e = value as DynoJsType<\"mat4x3\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n default:\n throw new Error(`Type not implemented: ${String(type)}`);\n }\n }\n}\n\nexport function dynoConst(\n type: T,\n value: DynoJsType,\n): DynoConst {\n return new DynoConst(type, value);\n}\n\nexport function literalZero(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(false)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(0.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(0)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(1u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalNegOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(-1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(-1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0xFFFFFFFFu)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n","import type { IUniform } from \"three\";\nimport type { DynoType } from \"./types\";\nimport {\n DynoLiteral,\n DynoOutput,\n type DynoVal,\n DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nconst DEFAULT_INDENT = \" \";\n\nexport class Compilation {\n globals: Set = new Set();\n statements: string[] = [];\n uniforms: Record = {};\n declares: Set = new Set();\n updaters: (() => void)[] = [];\n sequence = 0;\n indent: string = DEFAULT_INDENT;\n\n constructor({ indent }: { indent?: string } = {}) {\n this.indent = indent ?? DEFAULT_INDENT;\n }\n\n nextSequence() {\n return this.sequence++;\n }\n}\n\nexport type IOTypes = Record;\ntype GenerateContext = {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n};\n\nexport class Dyno {\n inTypes: InTypes;\n outTypes: OutTypes;\n\n inputs: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n }) {\n this.inTypes = inTypes ?? ({} as InTypes);\n this.outTypes = outTypes ?? ({} as OutTypes);\n this.inputs = inputs ?? {};\n this.update = update;\n\n this.globals = globals;\n this.statements = statements;\n this.generate =\n generate ??\n (({ inputs, outputs, compile }) => {\n return {\n globals: this.globals?.({ inputs, outputs, compile }),\n statements: this.statements?.({ inputs, outputs, compile }),\n };\n });\n }\n\n get outputs(): { [K in keyof OutTypes]: DynoVal } {\n const outputs = {} as { [K in keyof OutTypes]: DynoVal };\n for (const key in this.outTypes) {\n outputs[key] = new DynoOutput(this, key);\n }\n return outputs;\n }\n\n apply(inputs: { [K in keyof InTypes]?: DynoVal }): {\n [K in keyof OutTypes]: DynoVal;\n } {\n Object.assign(this.inputs, inputs);\n return this.outputs;\n }\n\n compile({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }): string[] {\n const result = [\n `// ${this.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`,\n ];\n\n const declares: (keyof OutTypes)[] = [];\n for (const key in outputs) {\n const name = outputs[key];\n if (name && !compile.declares.has(name)) {\n compile.declares.add(name);\n declares.push(key);\n }\n }\n\n const { globals, statements, uniforms } = this.generate({\n inputs,\n outputs,\n compile,\n });\n for (const global of globals ?? []) {\n compile.globals.add(global);\n }\n for (const key in uniforms) {\n compile.uniforms[key] = uniforms[key];\n }\n if (this.update) {\n compile.updaters.push(this.update);\n }\n\n for (const key of declares) {\n const name = outputs[key];\n if (name) {\n if (!compile.uniforms[name]) {\n result.push(`${dynoDeclare(name, this.outTypes[key])};`);\n }\n }\n }\n\n if (statements?.length) {\n result.push(\"{\");\n result.push(...statements.map((line) => compile.indent + line));\n result.push(\"}\");\n }\n return result;\n }\n}\n\nexport type DynoBlockType = (\n inputs: { [K in keyof InTypes]?: DynoVal },\n outputs: { [K in keyof OutTypes]?: DynoVal },\n { roots }: { roots: Dyno[] },\n) => { [K in keyof OutTypes]?: DynoVal } | undefined;\n\nexport class DynoBlock<\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends Dyno {\n construct: DynoBlockType;\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n construct,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n construct: DynoBlockType;\n }) {\n super({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n generate: (args) => this.generateBlock(args),\n });\n this.construct = construct;\n }\n\n generateBlock({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }) {\n const blockInputs: { [K in keyof InTypes]?: DynoVal } = {};\n const blockOutputs: { [K in keyof OutTypes]?: DynoVal } = {};\n\n for (const key in inputs) {\n if (inputs[key] != null) {\n blockInputs[key] = new DynoLiteral(this.inTypes[key], inputs[key]);\n }\n }\n for (const key in outputs) {\n if (outputs[key] != null) {\n blockOutputs[key] = new DynoValue(this.outTypes[key]);\n }\n }\n\n const options: { roots: Dyno[] } = { roots: [] };\n const returned = this.construct(blockInputs, blockOutputs, options);\n\n for (const global of this.globals?.({ inputs, outputs, compile }) ?? []) {\n compile.globals.add(global);\n }\n\n const ordering: Dyno[] = [];\n const nodeOuts = new Map<\n Dyno,\n { sequence: number; outNames: Map; newOuts: Set }\n >();\n\n function visit(\n node: Dyno,\n outKey?: string,\n outName?: string,\n ) {\n let outs = nodeOuts.get(node);\n if (!outs) {\n // First time visiting this node\n outs = {\n sequence: compile.nextSequence(),\n outNames: new Map(),\n newOuts: new Set(),\n };\n nodeOuts.set(node, outs);\n\n for (const key in node.inputs) {\n let input = node.inputs[key];\n while (input) {\n if (input instanceof DynoValue) {\n if (input instanceof DynoOutput) {\n visit(input.dyno, input.key);\n }\n break;\n }\n // Must be as HasDynoOut\n if (typeof input.dynoOut !== \"function\") {\n throw new Error(\n `dynoOut is not a function for ${input.constructor.name}`,\n );\n }\n input = input.dynoOut();\n }\n }\n ordering.push(node);\n }\n if (outKey) {\n if (!outName) {\n outs.newOuts.add(outKey);\n }\n outs.outNames.set(outKey, outName ?? `${outKey}_${outs.sequence}`);\n }\n }\n\n for (const root of options.roots) {\n visit(root);\n }\n\n for (const key in blockOutputs) {\n let value = returned?.[key] ?? blockOutputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoOutput) {\n visit(value.dyno, value.key, outputs[key]);\n }\n break;\n }\n // Must be as HasDynoOut\n value = value.dynoOut();\n }\n blockOutputs[key] = value;\n }\n\n const steps = [];\n\n for (const dyno of ordering) {\n // compile.statements.push(`// ${dyno.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`);\n\n const inputs: Record = {};\n const outputs: Record = {};\n\n for (const key in dyno.inputs) {\n let value = dyno.inputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoLiteral) {\n inputs[key] = value.getLiteral();\n } else if (value instanceof DynoOutput) {\n const source = nodeOuts.get(value.dyno)?.outNames.get(value.key);\n if (!source) {\n throw new Error(\n `Source not found for ${value.dyno.constructor.name}.${value.key}`,\n );\n }\n inputs[key] = source;\n }\n break;\n }\n // Must be as HasDynOut\n value = value.dynoOut();\n }\n }\n\n const outs = nodeOuts.get(dyno) ?? { outNames: new Map() };\n for (const [key, name] of outs.outNames.entries()) {\n outputs[key] = name;\n }\n\n const newSteps = dyno.compile({ inputs, outputs, compile });\n steps.push(newSteps);\n }\n\n const literalOutputs = [];\n for (const key in outputs) {\n if (blockOutputs[key] instanceof DynoLiteral) {\n literalOutputs.push(\n `${outputs[key]} = ${blockOutputs[key].getLiteral()};`,\n );\n }\n }\n if (literalOutputs.length > 0) {\n steps.push(literalOutputs);\n }\n\n const statements = steps.flatMap((step, index) => {\n // Add a blank line between steps\n return index === 0 ? step : [\"\", ...step];\n });\n return { statements };\n }\n}\n\nexport function dynoBlock<\n InTypes extends Record,\n OutTypes extends Record,\n>(\n inTypes: InTypes,\n outTypes: OutTypes,\n construct: DynoBlockType,\n { update, globals }: { update?: () => void; globals?: () => string[] } = {},\n) {\n return new DynoBlock({ inTypes, outTypes, construct, update, globals });\n}\n\nexport function dyno<\n InTypes extends Record,\n OutTypes extends Record,\n>({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n}: {\n inTypes: InTypes;\n outTypes: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n}) {\n return new Dyno({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n });\n}\n\nexport function dynoDeclare(name: string, type: DynoType, count?: number) {\n const typeStr = typeof type === \"string\" ? type : type.type;\n if (!typeStr) {\n throw new Error(`Invalid DynoType: ${String(type)}`);\n }\n return `${typeStr} ${name}${count != null ? `[${count}]` : \"\"}`;\n}\n\nexport function unindentLines(s: string): string[] {\n let seenNonEmpty = false;\n const lines = s\n .split(\"\\n\")\n .map((line) => {\n const trimmedLine = line.trimEnd();\n if (seenNonEmpty) {\n return trimmedLine;\n }\n if (trimmedLine.length > 0) {\n seenNonEmpty = true;\n return trimmedLine;\n }\n return null;\n })\n .filter((line) => line != null);\n while (lines.length > 0 && lines[lines.length - 1].length === 0) {\n lines.pop();\n }\n if (lines.length === 0) {\n return [];\n }\n\n const indent = lines[0].match(/^\\s*/)?.[0];\n if (!indent) {\n return lines; // No indent, return as is\n }\n // Remove indent from the beginning of each line\n const regex = new RegExp(`^${indent}`);\n return lines.map((line) => line.replace(regex, \"\"));\n}\n\nexport function unindent(s: string): string {\n return unindentLines(s).join(\"\\n\");\n}\n\nexport class UnaryOp<\n A extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n outKey,\n outTypeFunc,\n }: { a: DynoVal; outKey: OutKey; outTypeFunc: (aType: A) => OutType }) {\n const inTypes = { a: valType(a) };\n const outType = outTypeFunc(valType(a));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class BinaryOp<\n A extends DynoType,\n B extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b) };\n const outType = outTypeFunc(valType(a), valType(b));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class TrinaryOp<\n A extends DynoType,\n B extends DynoType,\n C extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B; c: C }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n c,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n c: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B, cType: C) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b), c: valType(c) };\n const outType = outTypeFunc(valType(a), valType(b), valType(c));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b, c } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n","import { Gunzip } from \"fflate\";\nimport * as THREE from \"three\";\n\n// Miscellaneous utility functions for Spark\n\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SCALE_ZERO,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_MIN_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines.js\";\nimport { unindent } from \"./dyno/base.js\";\n\nexport const threeRevision = Number.parseInt(THREE.REVISION);\nexport const threeMrtArray = threeRevision >= 179;\n\nconst f32buffer = new Float32Array(1);\nconst u32buffer = new Uint32Array(f32buffer.buffer);\nconst supportsFloat16Array = \"Float16Array\" in globalThis;\nconst f16buffer = supportsFloat16Array\n ? new globalThis[\"Float16Array\" as keyof typeof globalThis](1)\n : null;\nconst u16buffer = new Uint16Array(f16buffer?.buffer);\n\n// Returns a normalized array of numbers\nexport function normalize(vec: number[]) {\n const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0));\n return vec.map((v) => v / norm);\n}\n\n// Reinterpret the bits of a float32 as a uint32\nexport function floatBitsToUint(f: number): number {\n f32buffer[0] = f;\n return u32buffer[0];\n}\n\n// Reinterpret the bits of a uint32 as a float32\nexport function uintBitsToFloat(u: number): number {\n u32buffer[0] = u;\n return f32buffer[0];\n}\n\nexport const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS;\nexport const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS;\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfNative(f: number): number {\n f16buffer[0] = f;\n return u16buffer[0];\n}\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfJS(f: number): number {\n // Store the value into the shared Float32 array.\n f32buffer[0] = f;\n const bits = u32buffer[0];\n\n // Extract sign (1 bit), exponent (8 bits), and fraction (23 bits)\n const sign = (bits >> 31) & 0x1;\n const exp = (bits >> 23) & 0xff;\n const frac = bits & 0x7fffff;\n const halfSign = sign << 15;\n\n // Handle special cases: NaN and Infinity\n if (exp === 0xff) {\n // NaN: set all exponent bits to 1 and some nonzero fraction bits.\n if (frac !== 0) {\n return halfSign | 0x7fff;\n }\n // Infinity\n return halfSign | 0x7c00;\n }\n\n // Adjust the exponent from float32 bias (127) to float16 bias (15)\n const newExp = exp - 127 + 15;\n\n // Handle overflow: too large to represent in half precision.\n if (newExp >= 0x1f) {\n return halfSign | 0x7c00; // Infinity\n }\n if (newExp <= 0) {\n // Handle subnormals and underflow.\n if (newExp < -10) {\n // Too small: underflows to zero.\n return halfSign;\n }\n // Convert to subnormal: add the implicit leading 1 to the fraction,\n // then shift to align with the half-precision's 10 fraction bits.\n const subFrac = (frac | 0x800000) >> (1 - newExp + 13);\n return halfSign | subFrac;\n }\n\n // Normalized half-precision number: shift fraction to fit into 10 bits.\n const halfFrac = frac >> 13;\n return halfSign | (newExp << 10) | halfFrac;\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfNative(u: number): number {\n u16buffer[0] = u;\n return f16buffer[0];\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfJS(h: number): number {\n // Extract the sign (1 bit), exponent (5 bits), and fraction (10 bits)\n const sign = (h >> 15) & 0x1;\n const exp = (h >> 10) & 0x1f;\n const frac = h & 0x3ff;\n\n let f32bits: number;\n\n if (exp === 0) {\n if (frac === 0) {\n // Zero (positive or negative)\n f32bits = sign << 31;\n } else {\n // Subnormal half-precision number.\n // Normalize the subnormal number:\n let mant = frac;\n let e = -14; // For half, the exponent for subnormals is fixed at -14.\n // Shift left until the implicit leading 1 is in place.\n while ((mant & 0x400) === 0) {\n // 0x400 === 1 << 10\n mant <<= 1;\n e--;\n }\n // Remove the leading 1 (which is now implicit)\n mant &= 0x3ff;\n // Convert the half exponent (e) to the 32-bit float exponent:\n const newExp = e + 127; // 32-bit float bias is 127.\n const newFrac = mant << 13; // Align to 23-bit fraction (23 - 10 = 13)\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n } else if (exp === 0x1f) {\n // Handle special cases for Infinity and NaN.\n if (frac === 0) {\n // Infinity\n f32bits = (sign << 31) | 0x7f800000;\n } else {\n // NaN (we choose a quiet NaN)\n f32bits = (sign << 31) | 0x7fc00000;\n }\n } else {\n // Normalized half-precision number.\n // Adjust exponent from half (bias 15) to float32 (bias 127)\n const newExp = exp - 15 + 127;\n const newFrac = frac << 13;\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n\n // Write the 32-bit bit pattern to the shared buffer,\n // then read it as a float32 to return a JavaScript number.\n u32buffer[0] = f32bits;\n return f32buffer[0];\n}\n\n// Convert a number 0..1 to a 0..255 uint\nexport function floatToUint8(v: number): number {\n // Converts from 0..1 float to 0..255 uint8\n return Math.max(0, Math.min(255, Math.round(v * 255)));\n}\n\n// Convert a number -1..1 to a -127..127 int\nexport function floatToSint8(v: number): number {\n // Converts from -1..1 float to -127..127 int8\n return Math.max(-127, Math.min(127, Math.round(v * 127)));\n}\n\n// Convert a 0..255 uint to a 0..1 float\nexport function Uint8ToFloat(v: number): number {\n // Converts from 0..255 uint8 to 0..1 float\n return v / 255;\n}\n\n// Convert a -127..127 int to a -1..1 float\nexport function Sint8ToFloat(v: number): number {\n // Converts from -127..127 int8 to -1..1 float\n return v / 127;\n}\n\n// A simple utility class for caching a fixed number of items\nexport class DataCache {\n // Maximum number of items to cache\n maxItems: number;\n\n // Function to fetch data for a key\n asyncFetch: (key: string) => Promise;\n\n // Function to dispose of data when it is no longer needed\n dispose?: (data: unknown) => void;\n\n // Array of cached items\n items: { key: string; data: unknown }[];\n\n // In-progress fetch promises\n pending: Map>;\n\n // Create a DataCache with a given function that fetches data not in the cache.\n constructor({\n asyncFetch,\n dispose,\n maxItems = 5,\n }: {\n asyncFetch: (key: string) => Promise;\n dispose?: (data: unknown) => void;\n maxItems?: number;\n }) {\n this.asyncFetch = asyncFetch;\n this.dispose = dispose;\n this.maxItems = maxItems;\n this.items = [];\n this.pending = new Map();\n }\n\n has(key: string): boolean {\n return this.items.some((item) => item.key === key);\n }\n\n getImmediate(key: string): unknown | undefined {\n const index = this.items.findIndex((item) => item.key === key);\n if (index >= 0) {\n // Data exists in our cache, move it to the end of the array\n const item = this.items.splice(index, 1)[0];\n this.items.push(item);\n // Return the cached data\n return item.data;\n }\n return undefined;\n }\n\n // Fetch data for the key, returning cached data if available.\n async getFetch(key: string): Promise {\n const immediate = this.getImmediate(key);\n if (immediate !== undefined) {\n return immediate;\n }\n\n let pending = this.pending.get(key);\n if (pending) {\n return pending;\n }\n\n pending = this.asyncFetch(key).then((data) => {\n this.pending.delete(key);\n\n // Add the data to the cache\n this.items.push({ key, data });\n // If the cache is too large, remove the oldest accessed item\n while (this.items.length > this.maxItems) {\n const removed = this.items.shift();\n if (removed && this.dispose) {\n this.dispose(removed.data);\n }\n }\n // Return the fetched data\n return data;\n });\n this.pending.set(key, pending);\n return pending;\n }\n}\n\n// Like Array.map but for objects\nexport function mapObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n const entries = Object.entries(obj).map(([key, value]) => [\n key,\n fn(value, key),\n ]);\n // Returns a new object with the mapped values\n return Object.fromEntries(entries);\n}\n\n// Like Array.map().filter() but for objects.\n// The callback fn() should return undefined to filter out the key.\nexport function mapFilterObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n // If no return (or return undefined), the key is not included in the result\n const entries = Object.entries(obj)\n .map(([key, value]) => [key, fn(value, key)])\n .filter(([_, value]) => value !== undefined);\n // Returns a new object with the filtered values\n return Object.fromEntries(entries);\n}\n\n// Recursively finds all ArrayBuffers in an object and returns them as an array\n// to use as transferable objects to send between workers.\nexport function getTransferable(ctx: unknown): Transferable[] {\n const buffers: Transferable[] = [];\n const seen = new Set();\n\n function traverse(obj: unknown) {\n if (obj && typeof obj === \"object\" && !seen.has(obj)) {\n seen.add(obj);\n\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n // Handles TypedArrays and DataView\n buffers.push(obj.buffer as ArrayBuffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n\n traverse(ctx);\n return buffers;\n}\n\n// Create an array of the given size and initialize element with initFunction()\nexport function newArray(\n n: number,\n initFunction: (index: number) => T,\n): T[] {\n // Creates a new array and calls a constructor function for each element with index\n return new Array(n).fill(null).map((_, i) => initFunction(i));\n}\n\n// A free list that has a pool of items of type T, with callbacks\n// for constructing, disposing, and checking if an item is valid for the given args.\nexport class FreeList {\n items: T[];\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n\n constructor({\n // Allocate a new item with the given args\n allocate,\n // Dispose of an item (optional, if GC is enough)\n dispose,\n // Check if an existing item in the list is valid for the given args,\n // allowing you to store heterogeneous items in the list.\n valid,\n }: {\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n }) {\n this.items = [];\n this.allocate = allocate;\n this.dispose = dispose;\n this.valid = valid;\n }\n\n // Allocate a new item from the free list, first checking if a existing item\n // on the freelist is valid for the given args.\n alloc(args: Args): T {\n while (true) {\n const item = this.items.pop();\n if (!item) {\n // No items in the free list, allocate a new one\n break;\n }\n if (this.valid(item, args)) {\n // Found a valid item, return it\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): found valid item. Reusing...`);\n return item;\n }\n // Item isn't valid for our args, dispose of it and try again\n if (this.dispose) {\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): disposing invalid item.`);\n this.dispose(item);\n }\n }\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): allocating new item`);\n return this.allocate(args);\n }\n\n free(item: T) {\n // Return item to the free list\n this.items.push(item);\n }\n\n disposeAll() {\n // Disposes of all items in the free list\n let item: T | undefined;\n item = this.items.pop();\n while (item) {\n if (this.dispose) {\n this.dispose(item);\n }\n item = this.items.pop();\n }\n }\n}\n\nexport function encodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) {\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n extA[i4] = floatBitsToUint(x);\n extA[i4 + 1] = floatBitsToUint(y);\n extA[i4 + 2] = floatBitsToUint(z);\n extA[i4 + 3] = toHalf(opacity);\n extB[i4] = toHalf(r) | (toHalf(g) << 16);\n extB[i4 + 1] = toHalf(b) | (toHalf(Math.log(scaleX)) << 16);\n extB[i4 + 2] = toHalf(Math.log(scaleY)) | (toHalf(Math.log(scaleZ)) << 16);\n extB[i4 + 3] = encodeQuatOctXy1010R12(quatX, quatY, quatZ, quatW);\n}\n\nexport function decodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n result.center.x = uintBitsToFloat(extA[i4]);\n result.center.y = uintBitsToFloat(extA[i4 + 1]);\n result.center.z = uintBitsToFloat(extA[i4 + 2]);\n result.opacity = fromHalf(extA[i4 + 3] & 0xffff);\n result.color.r = fromHalf(extB[i4] & 0xffff);\n result.color.g = fromHalf(extB[i4] >>> 16);\n result.color.b = fromHalf(extB[i4 + 1] & 0xffff);\n result.scales.x = Math.exp(fromHalf(extB[i4 + 1] >>> 16));\n result.scales.y = Math.exp(fromHalf(extB[i4 + 2] & 0xffff));\n result.scales.z = Math.exp(fromHalf(extB[i4 + 2] >>> 16));\n decodeQuatOctXy1010R12(extB[i4 + 3], result.quaternion);\n return result;\n}\n\n// Encode a PackedSplat as 4 consecutive Uint32 elements in the packedSplats array.\n// The center coordinates x,y,z are encoded as float16, the scales x,y,z as a\n// logarithmic uint8, rotation as three uint8s representing rotation axis and angle,\n// and RGBA as 4xuint8.\nexport function setPackedSplat(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * opacity : opacity);\n\n // Alternate internal encodings commented out below.\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n // Encode the splat as 4 consecutive Uint32 elements\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] =\n uScaleX | (uScaleY << 8) | (uScaleZ << 16) | (uQuatZ << 24);\n}\n\n// Encode the center coordinates x,y,z in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatCenter(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n) {\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n const i4 = index * 4;\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (packedSplats[i4 + 2] & 0xffff0000);\n}\n\n// Encode the scales x,y,z in the packedSplats Uint32Array, leaving all other fields as is.\nexport function setPackedSplatScales(\n packedSplats: Uint32Array,\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n encoding?: {\n lnScaleMin?: number;\n lnScaleMax?: number;\n },\n) {\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const i4 = index * 4;\n packedSplats[i4 + 3] =\n uScaleX |\n (uScaleY << 8) |\n (uScaleZ << 16) |\n (packedSplats[i4 + 3] & 0xff000000);\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempQuaternion = new THREE.Quaternion();\n\n// Encode the rotation quatX, quatY, quatZ, quatW in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatQuat(\n packedSplats: Uint32Array,\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n) {\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n const i4 = index * 4;\n packedSplats[i4 + 2] =\n (packedSplats[i4 + 2] & 0x0000ffff) | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] = (packedSplats[i4 + 3] & 0x00ffffff) | (uQuatZ << 24);\n}\n\n// Encode the RGBA color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgba(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n a: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * a : a);\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n}\n\n// Encode the RGB color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgb(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n\n const i4 = index * 4;\n packedSplats[i4] =\n uR | (uG << 8) | (uB << 16) | (packedSplats[i4] & 0xff000000);\n}\n\n// Encode the opacity in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatOpacity(\n packedSplats: Uint32Array,\n index: number,\n opacity: number,\n) {\n const uA = floatToUint8(opacity);\n\n const i4 = index * 4;\n packedSplats[i4] = (packedSplats[i4] & 0x00ffffff) | (uA << 24);\n}\n\nconst packedCenter = new THREE.Vector3();\nconst packedScales = new THREE.Vector3();\nconst packedQuaternion = new THREE.Quaternion();\nconst packedColor = new THREE.Color();\nconst packedFields = {\n center: packedCenter,\n scales: packedScales,\n quaternion: packedQuaternion,\n color: packedColor,\n opacity: 0.0,\n};\n\n// Unpack all components of a PackedSplat from the packedSplats Uint32Array into\n// THREE.js vector objects. The returned objects will be reused each call.\nexport function unpackSplat(\n packedSplats: Uint32Array,\n index: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n\n const i4 = index * 4;\n const word0 = packedSplats[i4];\n const word1 = packedSplats[i4 + 1];\n const word2 = packedSplats[i4 + 2];\n const word3 = packedSplats[i4 + 3];\n\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n result.color.set(\n rgbMin + ((word0 & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 8) & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 16) & 0xff) / 255) * rgbRange,\n );\n result.opacity = ((word0 >>> 24) & 0xff) / 255;\n if (encoding?.lodOpacity) {\n result.opacity = 2.0 * result.opacity;\n }\n result.center.set(\n fromHalf(word1 & 0xffff),\n fromHalf((word1 >>> 16) & 0xffff),\n fromHalf(word2 & 0xffff),\n );\n\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n const uScalesX = word3 & 0xff;\n result.scales.x =\n uScalesX === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesX - 1) * lnScaleScale);\n const uScalesY = (word3 >>> 8) & 0xff;\n result.scales.y =\n uScalesY === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesY - 1) * lnScaleScale);\n const uScalesZ = (word3 >>> 16) & 0xff;\n result.scales.z =\n uScalesZ === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesZ - 1) * lnScaleScale);\n\n const uQuat = ((word2 >>> 16) & 0xffff) | ((word3 >>> 8) & 0xff0000);\n decodeQuatOctXy88R8(uQuat, result.quaternion);\n // decodeQuatXyz888(uQuat, result.quaternion);\n // decodeQuatEulerXyz888(uQuat, result.quaternion);\n\n return result;\n}\n\n// Compute a texture array size that is large enough to fit numSplats. The most\n// common 2D texture size in WebGL2 is 4096x4096 which only allows for 16M splats,\n// so Spark stores Gsplat data in a 2D texture array, which most platforms support\n// up to 2048x2048x2048 = 8G splats. Allocations that fit within a single 2D texture\n// array layer will be rounded up to fill an entire texture row. Once a texture\n// array layer is filled, the allocation will be rounded up to fill an entire layer.\n// This is done so the entire set of splats can be covered by min/max coords across\n// each dimension.\nexport function getTextureSize(numSplats: number): {\n width: number;\n height: number;\n depth: number;\n maxSplats: number;\n} {\n // Compute a texture array size that is large enough to fit numSplats.\n // The width is always 2048, the height sized to fit the splats but no larger than 2048.\n // The depth is the number of layers needed to fit the splats.\n // maxSplats is computed as the new total available splats that can be stored.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n const maxSplats = width * height * depth;\n return { width, height, depth, maxSplats };\n}\n\nexport function computeMaxSplats(numSplats: number): number {\n // Compute the size of a Gsplat array texture (2048x2048xD) that can fit\n // numSplats splats, and return the total number of splats that can be stored\n // in such a texture.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n return width * height * depth;\n}\n\n// Heuristic function to determine if we are running on a mobile device.\nexport function isMobile(): boolean {\n if (navigator.platform.toLowerCase().startsWith(\"win\")) {\n return false;\n }\n if (navigator.maxTouchPoints > 0) {\n // Touch-enabled device, assume it's mobile\n return true;\n }\n return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test(\n navigator.userAgent,\n );\n}\n\n// Heuristic function to determine if we are running on an Android device.\n// (does not include Oculus Quest)\nexport function isAndroid(): boolean {\n return (\n /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent)\n );\n}\n\n// Heuristic function to determine if we are running on an Oculus Quest device.\nexport function isOculus(): boolean {\n return !!navigator.xr && /Oculus/.test(navigator.userAgent);\n}\n\nexport function isQuest2() {\n return isOculus() && /Quest 2/.test(navigator.userAgent);\n}\n\nexport function isIos(): boolean {\n return /iPhone|iPad/.test(navigator.userAgent);\n}\n\nexport function isVisionPro(): boolean {\n return (\n !!navigator.xr &&\n isIos() &&\n /Safari/.test(navigator.userAgent) &&\n isMobile()\n );\n}\n\n// Take an array of RGBA8 encoded pixels and flip them vertically in-place.\n// This is useful for converting between top-left and bottom-left coordinate systems\n// in standard 2D images vs WebGL2.\nexport function flipPixels(\n pixels: Uint8Array,\n width: number,\n height: number,\n): Uint8Array {\n // Flips pixels vertically in-place, returns original array.\n const tempLine = new Uint8Array(width * 4);\n\n // Only need to process half the height since we're swapping\n for (let y = 0; y < height / 2; y++) {\n const topOffset = y * width * 4;\n const bottomOffset = (height - 1 - y) * width * 4;\n\n // Save top line to temp buffer\n tempLine.set(pixels.subarray(topOffset, topOffset + width * 4));\n // Move bottom line to top\n pixels.set(\n pixels.subarray(bottomOffset, bottomOffset + width * 4),\n topOffset,\n );\n // Move saved top line to bottom\n pixels.set(tempLine, bottomOffset);\n }\n return pixels;\n}\n\n// Utility to take an array of RGBA8 encoded pixels and convert them to a\n// PNG-encoded image data URL that can be downloaded to the client.\nexport function pixelsToPngUrl(\n pixels: Uint8Array,\n width: number,\n height: number,\n): string {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Can't get 2d context\");\n }\n const imageData = ctx.createImageData(width, height);\n imageData.data.set(pixels);\n ctx.putImageData(imageData, 0, 0);\n return canvas.toDataURL(\"image/png\");\n}\n\n// Manually clone a THREE.Clock object.\nexport function cloneClock(clock: THREE.Clock): THREE.Clock {\n const newClock = new THREE.Clock(clock.autoStart);\n newClock.startTime = clock.startTime;\n newClock.oldTime = clock.oldTime;\n newClock.elapsedTime = clock.elapsedTime;\n newClock.running = clock.running;\n return newClock;\n}\n\n// Utility to filter out an undefined values from an object.\nexport function omitUndefined(obj: T): Partial {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => value !== undefined),\n ) as Partial;\n}\n\n// \"Identity\" vertex shader that just passes through the position.\nexport const IDENT_VERTEX_SHADER = unindent(`\n precision highp float;\n\n in vec3 position;\n\n void main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n }\n`);\n\n// Returns the average position of an array of THREE.Vector3.\nexport function averagePositions(positions: THREE.Vector3[]): THREE.Vector3 {\n const sum = new THREE.Vector3();\n for (const position of positions) {\n sum.add(position);\n }\n return sum.divideScalar(positions.length);\n}\n\n// Returns an \"average\" of an array of THREE.Quaternion objects.\n// Note that this is not a spherical lerp between quaternions but\n// rather an arithmetic mean that is normalized to unit length.\nexport function averageQuaternions(\n quaternions: THREE.Quaternion[],\n): THREE.Quaternion {\n if (quaternions.length === 0) {\n return new THREE.Quaternion();\n }\n const sum = quaternions[0].clone();\n for (let i = 1; i < quaternions.length; i++) {\n if (quaternions[i].dot(quaternions[0]) < 0.0) {\n sum.x -= quaternions[i].x;\n sum.y -= quaternions[i].y;\n sum.z -= quaternions[i].z;\n sum.w -= quaternions[i].w;\n } else {\n sum.x += quaternions[i].x;\n sum.y += quaternions[i].y;\n sum.z += quaternions[i].z;\n sum.w += quaternions[i].w;\n }\n }\n return sum.normalize();\n}\n\n// Compare two coordinates given by matrix1 and matrix2, returning the distance\n// between their origins and the \"coincidence\" of their orientations, defined\n// as the dot product of their \"-z\" axes.\nexport function coinciDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n const direction1 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix1)\n .sub(origin1)\n .normalize();\n const direction2 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix2)\n .sub(origin2)\n .normalize();\n\n const distance = origin1.distanceTo(origin2);\n const coincidence = direction1.dot(direction2);\n return { distance, coincidence };\n}\n\n// Utility function that returns whether two coordinate system origins\n// given by matrix1 and matrix2 are within a certain maxDistance of each other.\nexport function withinDist({\n matrix1,\n matrix2,\n maxDistance,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n}): boolean {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n return origin1.distanceTo(origin2) <= maxDistance;\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined by a maxDistance and a minCoincidence.\nexport function withinCoinciDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoincidence,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoincidence?: number;\n}): boolean {\n const { distance, coincidence } = coinciDist(matrix1, matrix2);\n return (\n distance <= maxDistance &&\n (minCoincidence == null || coincidence >= minCoincidence)\n );\n}\n\n// Compare two coordinate systems given by matrix1 and matrix2, returning the\n// distance between their origins and the \"coorientation\" of their orientations,\n// define as the dot product of their quaternion transforms (flipping their\n// orientation to be on the same hemisphere if necessary).\nexport function coorientDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const [origin1, rotate1] = [new THREE.Vector3(), new THREE.Quaternion()];\n const [origin2, rotate2] = [new THREE.Vector3(), new THREE.Quaternion()];\n matrix1.decompose(origin1, rotate1, new THREE.Vector3());\n matrix2.decompose(origin2, rotate2, new THREE.Vector3());\n\n const distance = origin1.distanceTo(origin2);\n const coorient = Math.abs(rotate1.dot(rotate2));\n return { distance, coorient };\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined a maxDistance and a minCoorient.\nexport function withinCoorientDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoorient,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoorient?: number;\n}): boolean {\n const { distance, coorient } = coorientDist(matrix1, matrix2);\n return (\n distance <= maxDistance && (minCoorient == null || coorient >= minCoorient)\n );\n}\n\n// Like Math.sign but with a custom epsilon value.\nexport function epsilonSign(value: number, epsilon = 0.001): number {\n if (Math.abs(value) < epsilon) {\n return 0;\n }\n return Math.sign(value);\n}\n\n// Encode a THREE.Quaternion into a 24-bit integer, converting the xyz coordinates\n// to signed 8-bit integers (w can be derived from xyz), and flipping the sign\n// of the quaternion if necessary to make this possible (q == -q for quaternions).\nexport function encodeQuatXyz888(q: THREE.Quaternion): number {\n const negQuat = q.w < 0.0;\n const iQuatX = floatToSint8(negQuat ? -q.x : q.x);\n const iQuatY = floatToSint8(negQuat ? -q.y : q.y);\n const iQuatZ = floatToSint8(negQuat ? -q.z : q.z);\n const uQuatX = iQuatX & 0xff;\n const uQuatY = iQuatY & 0xff;\n const uQuatZ = iQuatZ & 0xff;\n return uQuatX | (uQuatY << 8) | (uQuatZ << 16);\n}\n\n// Decode a 24-bit integer of the quaternion's xyz coordinates into a THREE.Quaternion.\nexport function decodeQuatXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n const iQuatX = (encoded << 24) >> 24;\n const iQuatY = (encoded << 16) >> 24;\n const iQuatZ = (encoded << 8) >> 24;\n out.set(iQuatX / 127.0, iQuatY / 127.0, iQuatZ / 127.0, 0.0);\n const dotSelf = out.x * out.x + out.y * out.y + out.z * out.z;\n out.w = Math.sqrt(Math.max(0.0, 1.0 - dotSelf));\n return out;\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempNormalizedQuaternion = new THREE.Quaternion();\nconst tempAxis = new THREE.Vector3();\n\n/**\n * Encodes a THREE.Quaternion into a 24‐bit integer.\n *\n * Bit layout (LSB → MSB):\n * - Bits 0–7: quantized U (8 bits)\n * - Bits 8–15: quantized V (8 bits)\n * - Bits 16–23: quantized angle θ (8 bits) from [0,π]\n *\n * This version uses folded octahedral mapping (all inline).\n */\nexport function encodeQuatOctXy88R8(q: THREE.Quaternion): number {\n // Force the minimal representation (q.w >= 0)\n const qnorm = tempNormalizedQuaternion.copy(q).normalize();\n if (qnorm.w < 0) {\n qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w);\n }\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnorm.w);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(\n qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z,\n );\n const axis =\n xyz_norm < 1e-6\n ? tempAxis.set(1, 0, 0)\n : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm);\n // const foldAxis = (axis.z < 0);\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z);\n let p_x = axis.x / sum;\n let p_y = axis.y / sum;\n // Fold the lower hemisphere.\n if (axis.z < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 7 bits (0..127)\n const quantU = Math.round(u_f * 255);\n const quantV = Math.round(v_f * 255);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 10 bits (0..1023) ---\n const angleInt = Math.round(theta * (255 / Math.PI));\n\n // Pack into 24 bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16) | (quantV << 8) | quantU;\n}\n\n/**\n * Decodes a 24‐bit encoded quaternion (packed in a number) back to a THREE.Quaternion.\n *\n * Assumes the same bit layout as in encodeQuatOctXy88R8.\n */\nexport function decodeQuatOctXy88R8(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 8‐bit quantU and quantV, and 8‐bit angleInt.\n const quantU = encoded & 0xff; // bits 0–7\n const quantV = (encoded >>> 8) & 0xff; // bits 8–15\n const angleInt = (encoded >>> 16) & 0xff; // bits 16–23\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 255;\n const v_f = quantV / 255;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axis = tempAxis.set(f_x, f_y, f_z).normalize();\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 255) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axis.x * s, axis.y * s, axis.z * s, w);\n return out;\n}\n\n/**\n * Encodes a THREE.Quaternion into a 24‑bit unsigned integer\n * by converting it to Euler angles (roll, pitch, yaw).\n * The Euler angles are assumed to be in radians in the range [-π, π].\n * Each angle is normalized to [0,1] and quantized to 8 bits.\n * Bit layout (LSB→MSB):\n * - Bits 0–7: roll (quantized)\n * - Bits 8–15: pitch (quantized)\n * - Bits 16–23: yaw (quantized)\n */\nexport function encodeQuatEulerXyz888(q: THREE.Quaternion): number {\n // Normalize quaternion to ensure a proper rotation.\n const qNorm = q.clone().normalize();\n\n // Tait–Bryan angles (roll, pitch, yaw)\n const sinr_cosp = 2.0 * (qNorm.w * qNorm.x + qNorm.y * qNorm.z);\n const cosr_cosp = 1.0 - 2.0 * (qNorm.x * qNorm.x + qNorm.y * qNorm.y);\n const roll = Math.atan2(sinr_cosp, cosr_cosp);\n\n const sinp = 2.0 * (qNorm.w * qNorm.y - qNorm.z * qNorm.x);\n const pitch =\n Math.abs(sinp) >= 1.0 ? Math.sign(sinp) * (Math.PI / 2) : Math.asin(sinp);\n\n const siny_cosp = 2.0 * (qNorm.w * qNorm.z + qNorm.x * qNorm.y);\n const cosy_cosp = 1.0 - 2.0 * (qNorm.y * qNorm.y + qNorm.z * qNorm.z);\n const yaw = Math.atan2(siny_cosp, cosy_cosp);\n\n // Map each angle from [-π, π] to [0, 1]\n const normRoll = (roll + Math.PI) / (2 * Math.PI);\n const normPitch = (pitch + Math.PI) / (2 * Math.PI);\n const normYaw = (yaw + Math.PI) / (2 * Math.PI);\n\n // Quantize to 8 bits (0 to 255)\n const rollQ = Math.round(normRoll * 255);\n const pitchQ = Math.round(normPitch * 255);\n const yawQ = Math.round(normYaw * 255);\n\n // Pack into a 24-bit unsigned integer:\n // Bits 0–7: rollQ, Bits 8–15: pitchQ, Bits 16–23: yawQ.\n return (yawQ << 16) | (pitchQ << 8) | rollQ;\n}\n\n/**\n * Decodes a 24‑bit unsigned integer into a THREE.Quaternion\n * by unpacking three 8‑bit values (roll, pitch, yaw) in the range [0,255]\n * and then converting them back to Euler angles in [-π, π] and to a quaternion.\n */\nexport function decodeQuatEulerXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Unpack 8‑bit values.\n const rollQ = encoded & 0xff;\n const pitchQ = (encoded >>> 8) & 0xff;\n const yawQ = (encoded >>> 16) & 0xff;\n\n // Convert quantized values back to normalized [0,1] values.\n const normRoll = rollQ / 255;\n const normPitch = pitchQ / 255;\n const normYaw = yawQ / 255;\n\n // Map from [0,1] to [-π, π]\n const roll = normRoll * (2 * Math.PI) - Math.PI;\n const pitch = normPitch * (2 * Math.PI) - Math.PI;\n const yaw = normYaw * (2 * Math.PI) - Math.PI;\n\n // Convert Euler angles to quaternion (Tait–Bryan: roll, pitch, yaw).\n const cr = Math.cos(roll * 0.5);\n const sr = Math.sin(roll * 0.5);\n const cp = Math.cos(pitch * 0.5);\n const sp = Math.sin(pitch * 0.5);\n const cy = Math.cos(yaw * 0.5);\n const sy = Math.sin(yaw * 0.5);\n\n out.w = cr * cp * cy + sr * sp * sy;\n out.x = sr * cp * cy - cr * sp * sy;\n out.y = cr * sp * cy + sr * cp * sy;\n out.z = cr * cp * sy - sr * sp * cy;\n out.normalize();\n return out;\n}\n\nexport function encodeQuatOctXy1010R12(\n qx: number,\n qy: number,\n qz: number,\n qw: number,\n): number {\n const qlen = Math.sqrt(qx * qx + qy * qy + qz * qz + qw * qw);\n // Force the minimal representation (q.w >= 0)\n const qnx = (qw < 0 ? -qx : qx) / qlen;\n const qny = (qw < 0 ? -qy : qy) / qlen;\n const qnz = (qw < 0 ? -qz : qz) / qlen;\n const qnw = (qw < 0 ? -qw : qw) / qlen;\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnw);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(qnx * qnx + qny * qny + qnz * qnz);\n const axisX = xyz_norm < 1e-6 ? 1 : qnx / xyz_norm;\n const axisY = xyz_norm < 1e-6 ? 0 : qny / xyz_norm;\n const axisZ = xyz_norm < 1e-6 ? 0 : qnz / xyz_norm;\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axisX) + Math.abs(axisY) + Math.abs(axisZ);\n let p_x = axisX / sum;\n let p_y = axisY / sum;\n // Fold the lower hemisphere.\n if (axisZ < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 10 bits (0..1023)\n const quantU = Math.round(u_f * 1023);\n const quantV = Math.round(v_f * 1023);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 12 bits (0..4095) ---\n const angleInt = Math.round(theta * (4095 / Math.PI));\n\n // Pack into 32 bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20) | (quantV << 10) | quantU;\n}\n\nexport function decodeQuatOctXy1010R12(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 10‐bit quantU and quantV, and 12‐bit angleInt.\n const quantU = encoded & 0x3ff; // bits 0–9\n const quantV = (encoded >>> 10) & 0x3ff; // bits 10–19\n const angleInt = (encoded >>> 20) & 0xfff; // bits 20–31\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 1023;\n const v_f = quantV / 1023;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axisLen = Math.sqrt(f_x * f_x + f_y * f_y + f_z * f_z);\n const axisX = axisLen < 1e-6 ? 0 : f_x / axisLen;\n const axisY = axisLen < 1e-6 ? 0 : f_y / axisLen;\n const axisZ = axisLen < 1e-6 ? 0 : f_z / axisLen;\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 4095) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axisX * s, axisY * s, axisZ * s, w);\n return out;\n}\n\n// Pack four signed 8-bit values into a single uint32.\nfunction packSint8Bytes(\n b0: number,\n b1: number,\n b2: number,\n b3: number,\n): number {\n const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127)));\n const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127)));\n const clampedB2 = Math.round(Math.max(-127, Math.min(127, b2 * 127)));\n const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127)));\n return (\n (clampedB0 & 0xff) |\n ((clampedB1 & 0xff) << 8) |\n ((clampedB2 & 0xff) << 16) |\n ((clampedB3 & 0xff) << 24)\n );\n}\n\n// Encode an array of 9 signed RGB SH1 coefficients (clamped to [-1,1]) into\n// a pair of uint32 values, where each coefficient is stored as a sint7\nexport function encodeSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n encoding?: {\n sh1Max?: number;\n },\n) {\n const sh1Max = encoding?.sh1Max ?? 1;\n const sh1Scale = 63 / sh1Max;\n\n // Pack sint7 values into 2 x uint32\n const base = index * 2;\n for (let i = 0; i < 9; ++i) {\n const s = sh1Rgb[i] * sh1Scale;\n const value = Math.round(Math.max(-63, Math.min(63, s))) & 0x7f;\n const bitStart = i * 7;\n const bitEnd = bitStart + 7;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh1Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh1Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\n// Encode an array of 15 signed RGB SH2 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint8.\nexport function encodeSh2Rgb(\n sh2Array: Uint32Array,\n index: number,\n sh2Rgb: Float32Array,\n encoding?: {\n sh2Max?: number;\n },\n) {\n const sh2Max = encoding?.sh2Max ?? 1;\n const sh2Scale = 1 / sh2Max;\n\n // Pack sint8 values into 4 x uint32\n sh2Array[index * 4 + 0] = packSint8Bytes(\n sh2Rgb[0] * sh2Scale,\n sh2Rgb[1] * sh2Scale,\n sh2Rgb[2] * sh2Scale,\n sh2Rgb[3] * sh2Scale,\n );\n sh2Array[index * 4 + 1] = packSint8Bytes(\n sh2Rgb[4] * sh2Scale,\n sh2Rgb[5] * sh2Scale,\n sh2Rgb[6] * sh2Scale,\n sh2Rgb[7] * sh2Scale,\n );\n sh2Array[index * 4 + 2] = packSint8Bytes(\n sh2Rgb[8] * sh2Scale,\n sh2Rgb[9] * sh2Scale,\n sh2Rgb[10] * sh2Scale,\n sh2Rgb[11] * sh2Scale,\n );\n sh2Array[index * 4 + 3] = packSint8Bytes(\n sh2Rgb[12] * sh2Scale,\n sh2Rgb[13] * sh2Scale,\n sh2Rgb[14] * sh2Scale,\n 0,\n );\n}\n\n// Encode an array of 21 signed RGB SH3 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint6.\nexport function encodeSh3Rgb(\n sh3Array: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n encoding?: {\n sh3Max?: number;\n },\n) {\n const sh3Max = encoding?.sh3Max ?? 1;\n const sh3Scale = 31 / sh3Max;\n\n // Pack sint6 values into 4 x uint32\n const base = index * 4;\n for (let i = 0; i < 21; ++i) {\n const s = sh3Rgb[i] * sh3Scale;\n const value = Math.round(Math.max(-31, Math.min(31, s))) & 0x3f;\n const bitStart = i * 6;\n const bitEnd = bitStart + 6;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh3Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh3Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\nexport function encodeExtRgb(r: number, g: number, b: number): number {\n const ar = Math.abs(r);\n const ag = Math.abs(g);\n const ab = Math.abs(b);\n const maxAbs = Math.max(ar, ag, ab);\n const base = Math.floor(Math.log2(maxAbs));\n const biasedBase = Math.max(0, Math.min(31, base + 15));\n const divisor = 2 ** (biasedBase - 15) / 255;\n const uR = Math.round(Math.max(0, Math.min(255, ar / divisor)));\n const uG = Math.round(Math.max(0, Math.min(255, ag / divisor)));\n const uB = Math.round(Math.max(0, Math.min(255, ab / divisor)));\n const expSigns =\n (biasedBase << 3) |\n ((r < 0 ? 0x1 : 0) | (g < 0 ? 0x2 : 0) | (b < 0 ? 0x4 : 0));\n return uR | (uG << 8) | (uB << 16) | (expSigns << 24);\n}\n\nexport function decodeExtRgb(encoded: number): THREE.Color {\n const color = packedFields.color;\n const biasedBase = (encoded >>> 27) & 0x1f;\n const divisor = 2 ** (biasedBase - 15) / 255;\n const r = (encoded & 0xff) * divisor;\n const g = ((encoded >>> 8) & 0xff) * divisor;\n const b = ((encoded >>> 16) & 0xff) * divisor;\n color.r = encoded & 0x1000000 ? -r : r;\n color.g = encoded & 0x2000000 ? -g : g;\n color.b = encoded & 0x4000000 ? -b : b;\n return color;\n}\n\nexport function encodeExtSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n}\n\nexport function encodeExtSh12Rgb(\n sh1Array: Uint32Array,\n sh2Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n sh2Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n sh1Array[i4 + 3] = encodeExtRgb(sh2Rgb[0], sh2Rgb[1], sh2Rgb[2]);\n for (let k = 1; k < 5; ++k) {\n const k5 = k * 5;\n sh2Array[i4 + (k - 1)] = encodeExtRgb(\n sh2Rgb[k5],\n sh2Rgb[k5 + 1],\n sh2Rgb[k5 + 2],\n );\n }\n}\n\nexport function encodeExt3Rgb(\n sh3ArrayA: Uint32Array,\n sh3ArrayB: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 4; ++k) {\n const k3 = k * 3;\n sh3ArrayA[i4 + k] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n for (let k = 4; k < 7; ++k) {\n const k3 = k * 3;\n sh3ArrayB[i4 + (k - 4)] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n}\n\n// Partially decompress a gzip-encoded Uint8Array, returning a Uint8Array of\n// the specified numBytes from the start of the file.\nexport function decompressPartialGzip(\n fileBytes: Uint8Array,\n numBytes: number,\n): Uint8Array {\n const chunks: Uint8Array[] = [];\n let totalBytes = 0;\n let result: Uint8Array | null = null;\n\n const gunzip = new Gunzip((data, final) => {\n chunks.push(data);\n totalBytes += data.length;\n if (final || totalBytes >= numBytes) {\n const allBytes = new Uint8Array(totalBytes);\n let offset = 0;\n for (const chunk of chunks) {\n allBytes.set(chunk, offset);\n offset += chunk.length;\n }\n result = allBytes.slice(0, numBytes);\n }\n });\n\n const CHUNK_SIZE = 1024;\n let offset = 0;\n while (result == null && offset < fileBytes.length) {\n const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE);\n gunzip.push(chunk, false);\n offset += CHUNK_SIZE;\n }\n\n if (result == null) {\n gunzip.push(new Uint8Array(), true);\n if (result == null) {\n throw new Error(\"Failed to decompress partial gzip\");\n }\n }\n return result;\n}\n\nexport class GunzipReader {\n fileBytes: Uint8Array;\n chunkBytes: number;\n\n chunks: Uint8Array[];\n totalBytes: number;\n reader: ReadableStreamDefaultReader;\n\n constructor({\n fileBytes,\n chunkBytes = 64 * 1024,\n }: { fileBytes: Uint8Array; chunkBytes?: number }) {\n this.fileBytes = fileBytes;\n this.chunkBytes = chunkBytes;\n this.chunks = [];\n this.totalBytes = 0;\n\n const ds = new DecompressionStream(\"gzip\");\n const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds);\n this.reader = decompressionStream.getReader();\n }\n\n async read(numBytes: number): Promise {\n while (this.totalBytes < numBytes) {\n const { value: chunk, done: readerDone } = await this.reader.read();\n if (readerDone) {\n break;\n }\n\n this.chunks.push(chunk);\n this.totalBytes += chunk.length;\n }\n\n if (this.totalBytes < numBytes) {\n throw new Error(\n `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}`,\n );\n }\n\n const allBytes = new Uint8Array(this.totalBytes);\n let outOffset = 0;\n for (const chunk of this.chunks) {\n allBytes.set(chunk, outOffset);\n outOffset += chunk.length;\n }\n\n const result = allBytes.subarray(0, numBytes);\n this.chunks = [allBytes.subarray(numBytes)];\n this.totalBytes -= numBytes;\n return result;\n }\n}\n","import BundledWorker from \"./oldWorker?worker&inline\";\nimport { getTransferable } from \"./utils.js\";\n\n// SplatWorker is an internal class that manages a WebWorker for executing\n// longer running CPU tasks such as Gsplat file decoding and sorting.\n// Although a SplatWorker can be created and used directly, the utility\n// function withWorker() is recommended to allocate from a managed\n// pool of SplatWorkers.\n\nexport class OldSplatWorker {\n worker: Worker;\n messages: Record<\n number,\n { resolve: (value: unknown) => void; reject: (reason?: unknown) => void }\n > = {};\n messageIdNext = 0;\n\n constructor() {\n // this.worker = new Worker(new URL(\"./worker\", import.meta.url), { type: \"module\" });\n this.worker = new BundledWorker();\n this.worker.onmessage = (event) => this.onMessage(event);\n }\n\n makeMessageId(): number {\n return ++this.messageIdNext;\n }\n\n makeMessagePromiseId(): { id: number; promise: Promise } {\n const id = this.makeMessageId();\n const promise = new Promise((resolve, reject) => {\n this.messages[id] = { resolve, reject };\n });\n return { id, promise };\n }\n\n onMessage(event: MessageEvent) {\n // console.log(\"SplatWorker.onMessage:\", event);\n const { id, result, error } = event.data;\n // console.log(`SplatWorker.onMessage(${id}):`, result, error);\n const handler = this.messages[id];\n if (handler) {\n delete this.messages[id];\n if (error) {\n handler.reject(error);\n } else {\n handler.resolve(result);\n }\n }\n }\n\n // Invoke an RPC on the worker with the given name and arguments.\n // The normal usage of a worker is to run one activity at a time,\n // but this function allows for concurrent calls, tagging each request\n // with a unique message Id and awaiting a response to that same Id.\n // The method will automatically transfer any ArrayBuffers in the\n // arguments to the worker. If you'd like to transfer a copy of a\n // buffer then you must clone it before passing to this function.\n async call(name: string, args: unknown): Promise {\n const { id, promise } = this.makeMessagePromiseId();\n // console.log(`SplatWorker.call(${name}):`, args);\n this.worker.postMessage(\n { name, args, id },\n { transfer: getTransferable(args) },\n );\n return promise;\n }\n}\n\nlet maxWorkers = 4;\n\nlet numWorkers = 0;\nconst freeWorkers: OldSplatWorker[] = [];\nconst workerQueue: ((worker: OldSplatWorker) => void)[] = [];\n\n// Set the maximum number of workers to allocate for the pool. (default: 4)\nexport function setWorkerPool(count = 4) {\n maxWorkers = count;\n}\n\n// Allocate a worker from the pool. If none are available and we are below the\n// maximum, create a new one. Otherwise, add the request to a queue and wait\n// for it to be fulfilled.\nexport async function allocWorker(): Promise {\n const worker = freeWorkers.shift();\n if (worker) {\n return worker;\n }\n\n if (numWorkers < maxWorkers) {\n const worker = new OldSplatWorker();\n numWorkers += 1;\n return worker;\n }\n\n return new Promise((resolve) => {\n workerQueue.push(resolve);\n });\n}\n\n// Return a worker to the pool. Pass the worker to any pending waiter.\nexport function freeWorker(worker: OldSplatWorker) {\n if (numWorkers > maxWorkers) {\n // Worker no longer needed\n numWorkers -= 1;\n return;\n }\n\n const waiter = workerQueue.shift();\n if (waiter) {\n waiter(worker);\n return;\n }\n\n freeWorkers.push(worker);\n}\n\n// Allocate a worker from the pool and invoke the callback with the worker.\n// When the callback completes, the worker will be returned to the pool.\nexport async function withWorker(\n callback: (worker: OldSplatWorker) => Promise,\n): Promise {\n const worker = await allocWorker();\n try {\n return await callback(worker);\n } finally {\n freeWorker(worker);\n }\n}\n","import { getTransferable } from \"./utils\";\nimport BundledWorker from \"./worker?worker&inline\";\n\ntype PromiseRecord = {\n resolve: (value: unknown) => void;\n reject: (reason?: unknown) => void;\n onStatus?: (data: unknown) => void;\n};\n\nexport class SplatWorker {\n worker: Worker;\n queue: (() => void)[] | null = null;\n messages: Record = {};\n static currentId = 0;\n\n constructor() {\n this.worker = new BundledWorker();\n this.worker.onmessage = (event) => this.onMessage(event);\n }\n\n onMessage(event: MessageEvent) {\n const { id, result, error, status } = event.data;\n const promise = this.messages[id];\n if (promise) {\n if (error !== undefined) {\n delete this.messages[id];\n promise.reject(error);\n } else if (status !== undefined) {\n promise.onStatus?.(status);\n } else {\n delete this.messages[id];\n promise.resolve(result);\n }\n }\n }\n\n tryExclusive(callback: (worker: SplatWorker) => Promise) {\n return this.queue == null ? this.exclusive(callback) : null;\n }\n\n async exclusive(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const queue = this.queue;\n if (queue != null) {\n await new Promise((resolve) => {\n queue.push(() => resolve(undefined));\n });\n } else {\n this.queue = [];\n }\n\n try {\n return await callback(this);\n } finally {\n if (this.queue != null) {\n if (this.queue.length === 0) {\n this.queue = null;\n } else {\n const waiter = this.queue.shift() as () => void;\n waiter();\n }\n }\n }\n }\n\n async call(\n name: string,\n args: unknown,\n options: { onStatus?: (data: unknown) => void } = {},\n ): Promise {\n const id = ++SplatWorker.currentId;\n const promise = new Promise((resolve, reject) => {\n this.messages[id] = { resolve, reject, onStatus: options.onStatus };\n });\n this.worker.postMessage(\n { id, name, args },\n { transfer: getTransferable(args) },\n );\n return await promise;\n }\n\n dispose() {\n this.worker.terminate();\n\n const messages = Object.values(this.messages);\n this.messages = {};\n for (const message of messages) {\n message.reject(new Error(\"Worker terminate\"));\n }\n }\n}\n\nexport class NewSplatWorkerPool {\n maxWorkers;\n numWorkers = 0;\n freelist: SplatWorker[] = [];\n queue: ((worker: SplatWorker) => void)[] = [];\n\n constructor(maxWorkers = 4) {\n this.maxWorkers = maxWorkers;\n }\n\n async withWorker(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const worker = await this.allocWorker();\n try {\n return await callback(worker);\n } finally {\n this.freeWorker(worker);\n }\n }\n\n async allocWorker(): Promise {\n const worker = this.freelist.pop();\n if (worker) {\n return worker;\n }\n\n if (this.numWorkers < this.maxWorkers) {\n const worker = new SplatWorker();\n this.numWorkers += 1;\n return worker;\n }\n\n return new Promise((resolve) => {\n this.queue.push(resolve);\n });\n }\n\n freeWorker(worker: SplatWorker) {\n if (this.numWorkers > this.maxWorkers) {\n // Worker no longer needed\n this.numWorkers -= 1;\n return;\n }\n\n const waiter = this.queue.shift();\n if (waiter) {\n waiter(worker);\n return;\n }\n\n this.freelist.push(worker);\n }\n}\n\nexport const workerPool = new NewSplatWorkerPool();\n","import { Dyno, UnaryOp, unindent, unindentLines } from \"./base\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const Gsplat = { type: \"Gsplat\" } as { type: \"Gsplat\" };\nexport const CovSplat = { type: \"CovSplat\" } as { type: \"CovSplat\" };\nexport const TPackedSplats = { type: \"PackedSplats\" } as {\n type: \"PackedSplats\";\n};\nexport const TExtSplats = { type: \"ExtSplats\" } as {\n type: \"ExtSplats\";\n};\nexport const TCovSplats = { type: \"CovSplats\" } as {\n type: \"CovSplats\";\n};\n\nexport const numPackedSplats = (\n packedSplats: DynoVal,\n): DynoVal<\"int\"> => new NumPackedSplats({ packedSplats });\nexport const readPackedSplat = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadPackedSplat({ packedSplats, index });\nexport const readPackedSplatRange = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n base: DynoVal<\"int\">,\n count: DynoVal<\"int\">,\n): DynoVal =>\n new ReadPackedSplatRange({ packedSplats, index, base, count });\n\nexport const numExtSplats = (\n extSplats: DynoVal,\n): DynoVal<\"int\"> => new NumExtSplats({ extSplats });\nexport const readExtSplat = (\n extSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadExtSplat({ extSplats, index });\n\nexport const numCovSplats = (\n covsplats: DynoVal,\n): DynoVal<\"int\"> => new NumCovSplats({ covsplats });\nexport const readCovSplat = (\n covSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadCovSplat({ covSplats, index });\n\nexport const gsplatToCovSplat = (\n gsplat: DynoVal,\n): DynoVal => new GsplatToCovSplat({ gsplat });\n\nexport const splitGsplat = (gsplat: DynoVal) =>\n new SplitGsplat({ gsplat });\nexport const combineGsplat = ({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineGsplat({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\nexport const gsplatNormal = (gsplat: DynoVal): DynoVal<\"vec3\"> =>\n new GsplatNormal({ gsplat });\n\nexport const transformGsplat = (\n gsplat: DynoVal,\n {\n scale,\n rotate,\n translate,\n recolor,\n }: {\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n },\n): DynoVal => {\n return new TransformGsplat({ gsplat, scale, rotate, translate, recolor });\n};\n\nexport const splatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new SplatTexCoord({ index });\n\nexport const pagedSplatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new PagedSplatTexCoord({ index });\n\nexport const defineGsplat = unindent(`\n struct Gsplat {\n vec3 center;\n uint flags;\n vec3 scales;\n int index;\n vec4 quaternion;\n vec4 rgba;\n };\n const uint GSPLAT_FLAG_ACTIVE = 1u << 0u;\n\n bool isGsplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const defineCovSplat = unindent(`\n struct CovSplat {\n vec3 center;\n uint flags;\n vec4 rgba;\n vec3 xxyyzz;\n int index;\n vec3 xyxzyz;\n };\n\n bool isCovSplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const definePackedSplats = unindent(`\n struct PackedSplats {\n usampler2DArray textureArray;\n int numSplats;\n vec4 rgbMinMaxLnScaleMinMax;\n bool lodOpacity;\n };\n`);\n\nexport class NumPackedSplats extends UnaryOp<\n typeof TPackedSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({\n packedSplats,\n }: { packedSplats: DynoVal }) {\n super({ a: packedSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadPackedArray = unindent(`\n bool readPackedArray(usampler2DArray texture, int numSplats, vec4 rgbMinMaxLnScaleMinMax, int index, out Gsplat gsplat) {\n if ((index >= 0) && (index < numSplats)) {\n uvec4 packedData = texelFetch(texture, splatTexCoord(index), 0);\n unpackSplatEncoding(packedData, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba, rgbMinMaxLnScaleMinMax);\n return true;\n } else {\n return false;\n }\n }\n`);\n\nexport class ReadPackedSplat\n extends Dyno<\n { packedSplats: typeof TPackedSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n }: { packedSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { packedSplats: TPackedSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index } = inputs;\n let statements: string[];\n if (packedSplats && index) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class ReadPackedSplatRange\n extends Dyno<\n {\n packedSplats: typeof TPackedSplats;\n index: \"int\";\n base: \"int\";\n count: \"int\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n base,\n count,\n }: {\n packedSplats?: DynoVal;\n index?: DynoVal<\"int\">;\n base?: DynoVal<\"int\">;\n count?: DynoVal<\"int\">;\n }) {\n super({\n inTypes: {\n packedSplats: TPackedSplats,\n index: \"int\",\n base: \"int\",\n count: \"int\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index, base, count },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index, base, count } = inputs;\n let statements: string[];\n if (packedSplats && index && base && count) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineExtSplats = unindent(`\n struct ExtSplats {\n usampler2DArray textureArray1;\n usampler2DArray textureArray2;\n int numSplats;\n };\n`);\n\nexport class NumExtSplats extends UnaryOp<\n typeof TExtSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ extSplats }: { extSplats: DynoVal }) {\n super({ a: extSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadExtArrays = unindent(`\n void readExtArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out Gsplat gsplat) {\n gsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExt(packed1, packed2, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba);\n gsplat.flags = all(equal(gsplat.scales, vec3(0.0, 0.0, 0.0))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadExtSplat\n extends Dyno<\n { extSplats: typeof TExtSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n extSplats,\n index,\n }: { extSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { extSplats: TExtSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { extSplats, index },\n globals: () => [defineGsplat, defineExtSplats, defineReadExtArrays],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [`${gsplat}.flags = 0u;`];\n }\n const { extSplats, index } = inputs;\n let statements: string[];\n if (extSplats && index) {\n return unindentLines(`\n readExtArrays(${extSplats}.textureArray1, ${extSplats}.textureArray2, ${extSplats}.numSplats, ${index}, ${gsplat});\n `);\n }\n return [`${gsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class NumCovSplats extends UnaryOp<\n typeof TCovSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ covsplats }: { covsplats: DynoVal }) {\n super({ a: covsplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadCovArrays = unindent(`\n void readCovArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out CovSplat covsplat) {\n covsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExtCov(packed1, packed2, covsplat.center, covsplat.rgba, covsplat.xxyyzz, covsplat.xyxzyz);\n covsplat.flags = (all(equal(covsplat.xxyyzz, vec3(0.0))) && all(equal(covsplat.xyxzyz, vec3(0.0)))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadCovSplat\n extends Dyno<\n { covSplats: typeof TCovSplats; index: \"int\" },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covSplats,\n index,\n }: { covSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { covSplats: TCovSplats, index: \"int\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covSplats, index },\n globals: () => [defineGsplat, defineCovSplat, defineReadCovArrays],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = outputs;\n if (!covsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n const { covSplats, index } = inputs;\n let statements: string[];\n if (covSplats && index) {\n return unindentLines(`\n readCovArrays(${covSplats}.textureArray, ${covSplats}.numSplats, ${index}, ${covsplat});\n `);\n }\n return [`${covsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class GsplatToCovSplat extends Dyno<\n { gsplat: typeof Gsplat },\n { covsplat: typeof CovSplat }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: { covsplat: CovSplat },\n inputs: { gsplat },\n globals: () => [defineGsplat, defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const { covsplat } = outputs;\n if (!gsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n\n return unindentLines(`\n ${covsplat}.flags = 0u;\n if (isGsplatActive(${gsplat}.flags)) {\n ${covsplat}.flags = ${gsplat}.flags;\n ${covsplat}.index = ${gsplat}.index;\n ${covsplat}.rgba = ${gsplat}.rgba;\n ${covsplat}.center = ${gsplat}.center;\n mat3 m = scaleQuaternionToMatrix(${gsplat}.scales, ${gsplat}.quaternion);\n m = m * transpose(m);\n ${covsplat}.xxyyzz = vec3(m[0][0], m[1][1], m[2][2]);\n ${covsplat}.xyxzyz = vec3(m[0][1], m[0][2], m[1][2]);\n }\n `);\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplitGsplat extends Dyno<\n { gsplat: typeof Gsplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags ? null : `${flags} = ${gsplat ? `${gsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isGsplatActive(${gsplat ? `${gsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${gsplat ? `${gsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !scales\n ? null\n : `${scales} = ${gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !quaternion\n ? null\n : `${quaternion} = ${gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${gsplat ? `${gsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${gsplat ? `${gsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${gsplat ? `${gsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${gsplat ? `${gsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${gsplat ? `${gsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${gsplat ? `${gsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${gsplat ? `${gsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${gsplat ? `${gsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat: outGsplat } = outputs;\n if (!outGsplat) {\n return [];\n }\n const {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outGsplat}.flags = ${flags ?? (gsplat ? `${gsplat}.flags` : \"0u\")};`,\n `${outGsplat}.index = ${index ?? (gsplat ? `${gsplat}.index` : \"0\")};`,\n `${outGsplat}.center = ${center ?? (gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.scales = ${scales ?? (gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.quaternion = ${quaternion ?? (gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\")};`,\n `${outGsplat}.rgba = ${rgba ?? (gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outGsplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outGsplat}.rgba.a = ${opacity};`,\n !x ? null : `${outGsplat}.center.x = ${x};`,\n !y ? null : `${outGsplat}.center.y = ${y};`,\n !z ? null : `${outGsplat}.center.z = ${z};`,\n !r ? null : `${outGsplat}.rgba.r = ${r};`,\n !g ? null : `${outGsplat}.rgba.g = ${g};`,\n !b ? null : `${outGsplat}.rgba.b = ${b};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineGsplatNormal = unindent(`\n vec3 gsplatNormal(vec3 scales, vec4 quaternion) {\n float minScale = min(scales.x, min(scales.y, scales.z));\n vec3 normal;\n if (scales.z == minScale) {\n normal = vec3(0.0, 0.0, 1.0);\n } else if (scales.y == minScale) {\n normal = vec3(0.0, 1.0, 0.0);\n } else {\n normal = vec3(1.0, 0.0, 0.0);\n }\n return quatVec(quaternion, normal);\n }\n`);\n\nexport class GsplatNormal extends UnaryOp {\n constructor({ gsplat }: { gsplat: DynoVal }) {\n super({ a: gsplat, outKey: \"normal\", outTypeFunc: () => \"vec3\" });\n this.globals = () => [defineGsplat, defineGsplatNormal];\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normal} = gsplatNormal(${inputs.a}.scales, ${inputs.a}.quaternion);`,\n ];\n }\n}\n\nexport class TransformGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n scale: \"float\";\n rotate: \"vec4\";\n translate: \"vec3\";\n recolor: \"vec4\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n scale,\n rotate,\n translate,\n recolor,\n }: {\n gsplat?: DynoVal;\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n scale: \"float\",\n rotate: \"vec4\",\n translate: \"vec3\",\n recolor: \"vec4\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, scale, rotate, translate, recolor },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs, compile }) => {\n const { gsplat } = outputs;\n if (!gsplat || !inputs.gsplat) {\n return [];\n }\n const { scale, rotate, translate, recolor } = inputs;\n const indent = compile.indent;\n const statements = [\n `${gsplat} = ${inputs.gsplat};`,\n `if (isGsplatActive(${gsplat}.flags)) {`,\n\n scale ? `${indent}${gsplat}.center *= ${scale};` : null,\n rotate\n ? `${indent}${gsplat}.center = quatVec(${rotate}, ${gsplat}.center);`\n : null,\n translate ? `${indent}${gsplat}.center += ${translate};` : null,\n\n scale ? `${indent}${gsplat}.scales *= ${scale};` : null,\n\n rotate\n ? `${indent}${gsplat}.quaternion = quatQuat(${rotate}, ${gsplat}.quaternion);`\n : null,\n recolor ? `${indent}${gsplat}.rgba *= ${recolor};` : null,\n \"}\",\n ].filter(Boolean) as string[];\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const splitCovSplat = (covsplat: DynoVal) =>\n new SplitCovSplat({ covsplat });\nexport const combineCovSplat = ({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineCovSplat({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\n\nexport class SplitCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ covsplat }: { covsplat?: DynoVal }) {\n super({\n inTypes: { covsplat: CovSplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags\n ? null\n : `${flags} = ${covsplat ? `${covsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isCovSplatActive(${covsplat ? `${covsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${covsplat ? `${covsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${covsplat ? `${covsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${covsplat ? `${covsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${covsplat ? `${covsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${covsplat ? `${covsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${covsplat ? `${covsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${covsplat ? `${covsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${covsplat ? `${covsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${covsplat ? `${covsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineCovSplat\n extends Dyno<\n {\n covsplat: typeof CovSplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { covsplat: CovSplat },\n inputs: {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat: outCovSplat } = outputs;\n if (!outCovSplat) {\n return [];\n }\n const {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outCovSplat}.flags = ${flags ?? (covsplat ? `${covsplat}.flags` : \"0u\")};`,\n `${outCovSplat}.index = ${index ?? (covsplat ? `${covsplat}.index` : \"0\")};`,\n `${outCovSplat}.center = ${center ?? (covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outCovSplat}.rgba = ${rgba ?? (covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outCovSplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outCovSplat}.rgba.a = ${opacity};`,\n !x ? null : `${outCovSplat}.center.x = ${x};`,\n !y ? null : `${outCovSplat}.center.y = ${y};`,\n !z ? null : `${outCovSplat}.center.z = ${z};`,\n !r ? null : `${outCovSplat}.rgba.r = ${r};`,\n !g ? null : `${outCovSplat}.rgba.g = ${g};`,\n !b ? null : `${outCovSplat}.rgba.b = ${b};`,\n `${outCovSplat}.xxyyzz = ${covsplat ? `${covsplat}.xxyyzz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n `${outCovSplat}.xyxzyz = ${covsplat ? `${covsplat}.xyxzyz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = splatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n\nexport class PagedSplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = pagedSplatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n","import * as THREE from \"three\";\nimport { Dyno, unindentLines } from \"./base\";\nimport { CovSplat, Gsplat, defineCovSplat, defineGsplat } from \"./splats\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const outputPackedSplat = (\n gsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputPackedSplat({ gsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputCovSplat = (\n covsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputCovSplat({ covsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputExtendedSplat = (gsplat: DynoVal) =>\n new OutputExtendedSplat({ gsplat });\n\nexport const outputExtCovSplat = (covsplat: DynoVal) =>\n new OutputExtCovSplat({ covsplat });\n\nexport const outputSplatDepth = (\n gsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputSplatDepth({ gsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputCovSplatDepth = (\n covsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputCovSplatDepth({ covsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputRgba8 = (rgba8: DynoVal<\"vec4\">) =>\n new OutputRgba8({ rgba8 });\n\nexport class OutputPackedSplat extends Dyno<\n { gsplat: typeof Gsplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n gsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n gsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { gsplat: Gsplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { gsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (gsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n target = packSplatEncoding(${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u, 0u, 0u, 0u);\n }\n `);\n }\n return [\"target = uvec4(0u, 0u, 0u, 0u);\"];\n },\n });\n }\n}\n\nexport class OutputCovSplat extends Dyno<\n { covsplat: typeof CovSplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n covsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n covsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { covsplat: CovSplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { covsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (covsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n target = packSplatCovEncoding(${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtendedSplat extends Dyno<\n { gsplat: typeof Gsplat },\n Record\n> {\n constructor({\n gsplat,\n }: {\n gsplat?: DynoVal;\n }) {\n super({\n inTypes: { gsplat: Gsplat },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat } = inputs;\n if (gsplat) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n packSplatExt(target, target2, ${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n Record\n> {\n constructor({\n covsplat,\n }: {\n covsplat?: DynoVal;\n }) {\n super({\n inTypes: { covsplat: CovSplat },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat } = inputs;\n if (covsplat) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n packSplatExtCov(target, target2, ${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nclass OutputSplatDepth extends Dyno<\n {\n gsplat: typeof Gsplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n gsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n gsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { gsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (gsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isGsplatActive(${gsplat}.flags)) {\n vec3 center = ${gsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nclass OutputCovSplatDepth extends Dyno<\n {\n covsplat: typeof CovSplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n covsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n covsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { covsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (covsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isCovSplatActive(${covsplat}.flags)) {\n vec3 center = ${covsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nexport class OutputRgba8\n extends Dyno<{ rgba8: \"vec4\" }, { rgba8: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ rgba8 }: { rgba8?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { rgba8: \"vec4\" },\n inputs: { rgba8 },\n statements: ({ inputs, outputs }) => [\n `target = ${inputs.rgba8 ?? \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"rgba8\");\n }\n}\n","import type { IUniform } from \"three\";\nimport { Dyno, dynoDeclare } from \"./base\";\nimport type { DynoJsType, DynoType } from \"./types\";\nimport { DynoOutput, type DynoValue, type HasDynoOut } from \"./value\";\n\nexport const uniform = >(\n key: string,\n type: DynoType,\n value: V,\n) => new DynoUniform({ key, type, value });\nexport const dynoBool = (value = false, key?: string) =>\n new DynoBool({ key, value });\nexport const dynoUint = (value = 0, key?: string) =>\n new DynoUint({ key, value });\nexport const dynoInt = (value = 0, key?: string) => new DynoInt({ key, value });\nexport const dynoFloat = (value = 0.0, key?: string) =>\n new DynoFloat({ key, value });\n\nexport const dynoBvec2 = >(\n value: V,\n key?: string,\n) => new DynoBvec2({ key, value });\nexport const dynoUvec2 = >(\n value: V,\n key?: string,\n) => new DynoUvec2({ key, value });\nexport const dynoIvec2 = >(\n value: V,\n key?: string,\n) => new DynoIvec2({ key, value });\nexport const dynoVec2 = >(\n value: V,\n key?: string,\n) => new DynoVec2({ key, value });\n\nexport const dynoBvec3 = >(\n value: V,\n key?: string,\n) => new DynoBvec3({ key, value });\nexport const dynoUvec3 = >(\n value: V,\n key?: string,\n) => new DynoUvec3({ key, value });\nexport const dynoIvec3 = >(\n value: V,\n key?: string,\n) => new DynoIvec3({ key, value });\nexport const dynoVec3 = >(\n value: V,\n key?: string,\n) => new DynoVec3({ key, value });\n\nexport const dynoBvec4 = >(\n value: V,\n key?: string,\n) => new DynoBvec4({ key, value });\nexport const dynoUvec4 = >(\n value: V,\n key?: string,\n) => new DynoUvec4({ key, value });\nexport const dynoIvec4 = >(\n value: V,\n key?: string,\n) => new DynoIvec4({ key, value });\nexport const dynoVec4 = >(\n value: V,\n key?: string,\n) => new DynoVec4({ key, value });\n\nexport const dynoMat2 = >(\n value: V,\n key?: string,\n) => new DynoMat2({ key, value });\nexport const dynoMat2x2 = >(\n value: V,\n key?: string,\n) => new DynoMat2x2({ key, value });\nexport const dynoMat2x3 = >(\n value: V,\n key?: string,\n) => new DynoMat2x3({ key, value });\nexport const dynoMat2x4 = >(\n value: V,\n key?: string,\n) => new DynoMat2x4({ key, value });\n\nexport const dynoMat3 = >(\n value: V,\n key?: string,\n) => new DynoMat3({ key, value });\nexport const dynoMat3x2 = >(\n value: V,\n key?: string,\n) => new DynoMat3x2({ key, value });\nexport const dynoMat3x3 = >(\n value: V,\n key?: string,\n) => new DynoMat3x3({ key, value });\nexport const dynoMat3x4 = >(\n value: V,\n key?: string,\n) => new DynoMat3x4({ key, value });\n\nexport const dynoMat4 = >(\n value: V,\n key?: string,\n) => new DynoMat4({ key, value });\nexport const dynoMat4x2 = >(\n value: V,\n key?: string,\n) => new DynoMat4x2({ key, value });\nexport const dynoMat4x3 = >(\n value: V,\n key?: string,\n) => new DynoMat4x3({ key, value });\nexport const dynoMat4x4 = >(\n value: V,\n key?: string,\n) => new DynoMat4x4({ key, value });\n\nexport const dynoUsampler2D = >(\n value: V,\n key?: string,\n) => new DynoUsampler2D({ key, value });\nexport const dynoIsampler2D = >(\n value: V,\n key?: string,\n) => new DynoIsampler2D({ key, value });\nexport const dynoSampler2D = >(\n value: V,\n key?: string,\n) => new DynoSampler2D({ key, value });\n\nexport const dynoUsampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoUsampler2DArray({ key, value });\nexport const dynoIsampler2DArray = >(\n key: string,\n value: V,\n) => new DynoIsampler2DArray({ key, value });\nexport const dynoSampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoSampler2DArray({ key, value });\n\nexport const dynoUsampler3D = >(\n value: V,\n key?: string,\n) => new DynoUsampler3D({ key, value });\nexport const dynoIsampler3D = >(\n value: V,\n key?: string,\n) => new DynoIsampler3D({ key, value });\nexport const dynoSampler3D = >(\n value: V,\n key?: string,\n) => new DynoSampler3D({ key, value });\n\nexport const dynoUsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoUsamplerCube({ key, value });\nexport const dynoIsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoIsamplerCube({ key, value });\nexport const dynoSamplerCube = >(\n value: V,\n key?: string,\n) => new DynoSamplerCube({ key, value });\n\nexport const dynoSampler2DShadow = >(\n value: V,\n key?: string,\n) => new DynoSampler2DShadow({ key, value });\nexport const dynoSampler2DArrayShadow = <\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSampler2DArrayShadow({ key, value });\nexport const dynoSamplerCubeShadow = <\n V extends DynoJsType<\"samplerCubeShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSamplerCubeShadow({ key, value });\n\nexport class DynoUniform<\n T extends DynoType,\n K extends string = \"value\",\n V extends DynoJsType = DynoJsType,\n >\n extends Dyno, { [key in K]: T }>\n implements HasDynoOut\n{\n public type: T;\n public count?: number;\n public outKey: K;\n public value: V;\n public uniform: { value: V; type?: string };\n\n constructor({\n key,\n type,\n count,\n value,\n update,\n globals,\n }: {\n key?: K;\n type: T;\n count?: number;\n value: V;\n update?: (value: V) => V | undefined;\n globals?: ({\n inputs,\n outputs,\n }: { inputs: unknown; outputs: { [key in K]?: string } }) => string[];\n }) {\n key = (key ?? \"value\") as K;\n super({\n outTypes: { [key]: type } as { [key in K]: T },\n update: () => {\n if (update) {\n const value = update(this.value);\n if (value !== undefined) {\n this.value = value;\n }\n }\n this.uniform.value = this.value;\n },\n generate: ({ inputs, outputs }) => {\n const allGlobals = globals?.({ inputs, outputs }) ?? [];\n const uniforms: Record = {};\n const name = outputs[key];\n if (name) {\n allGlobals.push(`uniform ${dynoDeclare(name, type, count)};`);\n uniforms[name] = this.uniform;\n }\n return { globals: allGlobals, uniforms };\n },\n });\n this.type = type;\n this.count = count;\n this.value = value;\n this.uniform = { value };\n this.outKey = key;\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class DynoBool extends DynoUniform<\n \"bool\",\n K,\n boolean\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: boolean;\n update?: (value: boolean) => boolean | undefined;\n }) {\n super({ key, type: \"bool\", value, update });\n }\n}\n\nexport class DynoUint extends DynoUniform<\"uint\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"uint\", value, update });\n }\n}\n\nexport class DynoInt extends DynoUniform<\"int\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"int\", value, update });\n }\n}\n\nexport class DynoFloat extends DynoUniform<\n \"float\",\n K,\n number\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"float\", value, update });\n }\n}\n\nexport class DynoBvec2<\n K extends string,\n V extends DynoJsType<\"bvec2\">,\n> extends DynoUniform<\"bvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec2\", value, update });\n }\n}\n\nexport class DynoUvec2<\n K extends string,\n V extends DynoJsType<\"uvec2\">,\n> extends DynoUniform<\"uvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec2\", value, update });\n }\n}\n\nexport class DynoIvec2<\n K extends string,\n V extends DynoJsType<\"ivec2\">,\n> extends DynoUniform<\"ivec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec2\", value, update });\n }\n}\n\nexport class DynoVec2<\n K extends string,\n V extends DynoJsType<\"vec2\">,\n> extends DynoUniform<\"vec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec2\", value, update });\n }\n}\n\nexport class DynoBvec3<\n K extends string,\n V extends DynoJsType<\"bvec3\">,\n> extends DynoUniform<\"bvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec3\", value, update });\n }\n}\n\nexport class DynoUvec3<\n V extends DynoJsType<\"uvec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"uvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec3\", value, update });\n }\n}\n\nexport class DynoIvec3<\n V extends DynoJsType<\"ivec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"ivec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec3\", value, update });\n }\n}\n\nexport class DynoVec3<\n V extends DynoJsType<\"vec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec3\", value, update });\n }\n}\n\nexport class DynoBvec4<\n K extends string,\n V extends DynoJsType<\"bvec4\">,\n> extends DynoUniform<\"bvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec4\", value, update });\n }\n}\n\nexport class DynoUvec4<\n K extends string,\n V extends DynoJsType<\"uvec4\">,\n> extends DynoUniform<\"uvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec4\", value, update });\n }\n}\n\nexport class DynoIvec4<\n K extends string,\n V extends DynoJsType<\"ivec4\">,\n> extends DynoUniform<\"ivec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec4\", value, update });\n }\n}\n\nexport class DynoVec4<\n V extends DynoJsType<\"vec4\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec4\", value, update });\n }\n}\n\nexport class DynoMat2<\n K extends string,\n V extends DynoJsType<\"mat2\">,\n> extends DynoUniform<\"mat2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2\", value, update });\n }\n}\n\nexport class DynoMat2x2<\n K extends string,\n V extends DynoJsType<\"mat2x2\">,\n> extends DynoUniform<\"mat2x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x2\", value, update });\n }\n}\n\nexport class DynoMat2x3<\n K extends string,\n V extends DynoJsType<\"mat2x3\">,\n> extends DynoUniform<\"mat2x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x3\", value, update });\n }\n}\n\nexport class DynoMat2x4<\n K extends string,\n V extends DynoJsType<\"mat2x4\">,\n> extends DynoUniform<\"mat2x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x4\", value, update });\n }\n}\n\nexport class DynoMat3<\n K extends string,\n V extends DynoJsType<\"mat3\">,\n> extends DynoUniform<\"mat3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3\", value, update });\n }\n}\n\nexport class DynoMat3x2<\n K extends string,\n V extends DynoJsType<\"mat3x2\">,\n> extends DynoUniform<\"mat3x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x2\", value, update });\n }\n}\n\nexport class DynoMat3x3<\n K extends string,\n V extends DynoJsType<\"mat3x3\">,\n> extends DynoUniform<\"mat3x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x3\", value, update });\n }\n}\n\nexport class DynoMat3x4<\n K extends string,\n V extends DynoJsType<\"mat3x4\">,\n> extends DynoUniform<\"mat3x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x4\", value, update });\n }\n}\n\nexport class DynoMat4<\n K extends string,\n V extends DynoJsType<\"mat4\">,\n> extends DynoUniform<\"mat4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4\", value, update });\n }\n}\n\nexport class DynoMat4x2<\n K extends string,\n V extends DynoJsType<\"mat4x2\">,\n> extends DynoUniform<\"mat4x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x2\", value, update });\n }\n}\n\nexport class DynoMat4x3<\n K extends string,\n V extends DynoJsType<\"mat4x3\">,\n> extends DynoUniform<\"mat4x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x3\", value, update });\n }\n}\n\nexport class DynoMat4x4<\n K extends string,\n V extends DynoJsType<\"mat4x4\">,\n> extends DynoUniform<\"mat4x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x4\", value, update });\n }\n}\n\nexport class DynoUsampler2D<\n K extends string,\n V extends DynoJsType<\"usampler2D\">,\n> extends DynoUniform<\"usampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2D\", value, update });\n }\n}\n\nexport class DynoIsampler2D<\n K extends string,\n V extends DynoJsType<\"isampler2D\">,\n> extends DynoUniform<\"isampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2D\", value, update });\n }\n}\n\nexport class DynoSampler2D<\n K extends string,\n V extends DynoJsType<\"sampler2D\">,\n> extends DynoUniform<\"sampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2D\", value, update });\n }\n}\n\nexport class DynoUsampler2DArray<\n K extends string,\n V extends DynoJsType<\"usampler2DArray\">,\n> extends DynoUniform<\"usampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2DArray\", value, update });\n }\n}\n\nexport class DynoIsampler2DArray<\n K extends string,\n V extends DynoJsType<\"isampler2DArray\">,\n> extends DynoUniform<\"isampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2DArray\", value, update });\n }\n}\n\nexport class DynoSampler2DArray<\n K extends string,\n V extends DynoJsType<\"sampler2DArray\">,\n> extends DynoUniform<\"sampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArray\", value, update });\n }\n}\n\nexport class DynoUsampler3D<\n K extends string,\n V extends DynoJsType<\"usampler3D\">,\n> extends DynoUniform<\"usampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler3D\", value, update });\n }\n}\n\nexport class DynoIsampler3D<\n K extends string,\n V extends DynoJsType<\"isampler3D\">,\n> extends DynoUniform<\"isampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler3D\", value, update });\n }\n}\n\nexport class DynoSampler3D<\n K extends string,\n V extends DynoJsType<\"sampler3D\">,\n> extends DynoUniform<\"sampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler3D\", value, update });\n }\n}\n\nexport class DynoUsamplerCube<\n K extends string,\n V extends DynoJsType<\"usamplerCube\">,\n> extends DynoUniform<\"usamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usamplerCube\", value, update });\n }\n}\n\nexport class DynoIsamplerCube<\n K extends string,\n V extends DynoJsType<\"isamplerCube\">,\n> extends DynoUniform<\"isamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isamplerCube\", value, update });\n }\n}\n\nexport class DynoSamplerCube<\n K extends string,\n V extends DynoJsType<\"samplerCube\">,\n> extends DynoUniform<\"samplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCube\", value, update });\n }\n}\n\nexport class DynoSampler2DShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DShadow\">,\n> extends DynoUniform<\"sampler2DShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DShadow\", value, update });\n }\n}\n\nexport class DynoSampler2DArrayShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n> extends DynoUniform<\"sampler2DArrayShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArrayShadow\", value, update });\n }\n}\n\nexport class DynoSamplerCubeShadow<\n K extends string,\n V extends DynoJsType<\"samplerCubeShadow\">,\n> extends DynoUniform<\"samplerCubeShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCubeShadow\", value, update });\n }\n}\n","import * as THREE from \"three\";\n\nimport { IDENT_VERTEX_SHADER } from \"../utils\";\nimport { Compilation, type Dyno, type IOTypes } from \"./base\";\n\nexport class DynoProgram {\n graph: Dyno;\n template: DynoProgramTemplate;\n inputs: Record;\n outputs: Record;\n shader: string;\n uniforms: Record;\n updaters: (() => void)[];\n\n constructor({\n graph,\n inputs,\n outputs,\n template,\n consoleLog,\n }: {\n graph: Dyno;\n inputs?: Record;\n outputs?: Record;\n template: DynoProgramTemplate;\n consoleLog?: boolean;\n }) {\n this.graph = graph;\n this.template = template;\n this.inputs = inputs ?? {};\n this.outputs = outputs ?? {};\n\n const compile = new Compilation({ indent: this.template.indent });\n for (const key in this.outputs) {\n if (this.outputs[key]) {\n compile.declares.add(this.outputs[key]);\n }\n }\n const statements = graph.compile({\n inputs: this.inputs,\n outputs: this.outputs,\n compile,\n });\n\n this.shader = template.generate({ globals: compile.globals, statements });\n this.uniforms = compile.uniforms;\n this.updaters = compile.updaters;\n if (consoleLog) {\n console.log(\"*** COMPILED SHADER\", this.shader);\n console.log(\"*** UNIFORMS\", this.uniforms);\n }\n }\n\n prepareMaterial(): THREE.RawShaderMaterial {\n return getMaterial(this);\n }\n\n update() {\n for (const updater of this.updaters) {\n updater();\n }\n }\n}\n\nexport class DynoProgramTemplate {\n before: string;\n between: string;\n after: string;\n indent: string;\n\n constructor(template: string) {\n const globals = template.match(/^([ \\t]*)\\{\\{\\s*GLOBALS\\s*\\}\\}/m);\n const statements = template.match(/^([ \\t]*)\\{\\{\\s*STATEMENTS\\s*\\}\\}/m);\n if (!globals || !statements) {\n throw new Error(\n \"Template must contain {{ GLOBALS }} and {{ STATEMENTS }}\",\n );\n }\n\n this.before = template.substring(0, globals.index);\n this.between = template.substring(\n (globals.index as number) + globals[0].length,\n statements.index,\n );\n this.after = template.substring(\n (statements.index as number) + statements[0].length,\n );\n this.indent = statements[1];\n }\n\n generate({\n globals,\n statements,\n }: { globals: Set; statements: string[] }): string {\n return (\n this.before +\n Array.from(globals).join(\"\\n\\n\") +\n this.between +\n statements.map((s) => this.indent + s).join(\"\\n\") +\n this.after\n );\n }\n}\n\nconst programMaterial = new WeakMap();\n\nfunction getMaterial(program: DynoProgram): THREE.RawShaderMaterial {\n let material = programMaterial.get(program);\n if (material) {\n return material;\n }\n\n material = new THREE.RawShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: IDENT_VERTEX_SHADER,\n fragmentShader: program.shader,\n uniforms: program.uniforms,\n });\n programMaterial.set(program, material);\n return material;\n}\n","import {\n type AllFloatTypes,\n type AllIntTypes,\n type AllSignedTypes,\n type AllValueTypes,\n type BaseType,\n type BoolTypes,\n type FloatTypes,\n type IntTypes,\n type SignedTypes,\n type UintTypes,\n type ValueTypes,\n isAllFloatType,\n isFloatType,\n isIntType,\n isMat2,\n isMat3,\n isMat4,\n isUintType,\n} from \"./types\";\n\nexport type AddOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : never);\n\nexport type SubOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type MulOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : A extends IntTypes\n ? B extends A\n ? A\n : never\n : B extends IntTypes\n ? A extends B\n ? A\n : never\n : A extends UintTypes\n ? B extends A\n ? A\n : never\n : B extends UintTypes\n ? A extends B\n ? A\n : never\n : // Vector * Matrix/Vector\n A extends \"vec2\"\n ? B extends \"vec2\" | \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : B extends \"mat3x2\"\n ? \"vec3\"\n : B extends \"mat4x2\"\n ? \"vec4\"\n : never\n : A extends \"vec3\"\n ? B extends \"mat2x3\"\n ? \"vec2\"\n : B extends \"vec3\" | \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : B extends \"mat4x3\"\n ? \"vec4\"\n : never\n : A extends \"vec4\"\n ? B extends \"mat2x4\"\n ? \"vec2\"\n : B extends \"mat3x4\"\n ? \"vec3\"\n : B extends \"vec4\" | \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Vector\n B extends \"vec2\"\n ? A extends \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : A extends \"mat2x3\"\n ? \"vec3\"\n : A extends \"mat2x4\"\n ? \"vec4\"\n : never\n : B extends \"vec3\"\n ? A extends \"mat3x2\"\n ? \"vec2\"\n : A extends \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : A extends \"mat3x4\"\n ? \"vec4\"\n : never\n : B extends \"vec4\"\n ? A extends \"mat4x2\"\n ? \"vec2\"\n : A extends \"mat4x3\"\n ? \"vec3\"\n : A extends \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n A extends \"mat2\" | \"mat2x2\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2\"\n : B extends \"mat3x2\"\n ? \"mat3x2\"\n : B extends \"mat4x2\"\n ? \"mat4x2\"\n : never\n : A extends \"mat2x3\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x3\"\n : B extends \"mat3x2\"\n ? \"mat3\"\n : B extends \"mat4x2\"\n ? \"mat4x3\"\n : never\n : A extends \"mat2x4\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x4\"\n : B extends \"mat3x2\"\n ? \"mat3x4\"\n : B extends \"mat4x2\"\n ? \"mat4\"\n : never\n : A extends \"mat3x2\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x2\"\n : B extends \"mat4x3\"\n ? \"mat4x2\"\n : never\n : A extends \"mat3\" | \"mat3x3\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x3\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3\"\n : B extends \"mat4x3\"\n ? \"mat4x3\"\n : never\n : A extends \"mat3x4\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x4\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x4\"\n : B extends \"mat4x3\"\n ? \"mat4\"\n : never\n : A extends \"mat4x2\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2\"\n : B extends \"mat3x4\"\n ? \"mat3x2\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x2\"\n : never\n : A extends \"mat4x3\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x3\"\n : B extends \"mat3x4\"\n ? \"mat3\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x3\"\n : never\n : A extends \"mat4\" | \"mat4x4\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x4\"\n : B extends \"mat3x4\"\n ? \"mat3x4\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4\"\n : never\n : never);\n\nexport type DivOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type IModOutput<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\n\nexport type ModOutput = BaseType &\n (A extends B ? A : B extends \"float\" ? A : never);\n\nexport type PowOutput = BaseType &\n (A extends B ? A : never);\n\nexport type MinOutput = BaseType &\n (A extends B\n ? A\n : B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MaxOutput = MinOutput<\n A,\n B\n>;\nexport type ClampOutput = BaseType &\n (B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MixOutput<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> = BaseType &\n (T extends A\n ? A\n : T extends \"float\"\n ? A\n : T extends \"bool\"\n ? A extends \"float\"\n ? A\n : never\n : T extends \"bvec2\"\n ? A extends \"vec2\"\n ? A\n : never\n : T extends \"bvec3\"\n ? A extends \"vec3\"\n ? A\n : never\n : T extends \"bvec4\"\n ? A extends \"vec4\"\n ? A\n : never\n : never);\nexport type StepOutput = BaseType &\n (A extends B ? B : A extends \"float\" ? B : never);\nexport type SmoothstepOutput<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n> = BaseType &\n (A extends B ? (A extends C ? C : A extends \"float\" ? C : never) : never);\n\nexport type IsNanOutput = BaseType &\n (A extends \"float\"\n ? \"bool\"\n : A extends \"vec2\"\n ? \"bvec2\"\n : A extends \"vec3\"\n ? \"bvec3\"\n : A extends \"vec4\"\n ? \"bvec4\"\n : never);\nexport type IsInfOutput = IsNanOutput;\n\n// // Run-time type helper functions\n\nexport function addOutputType(\n a: A,\n b: B,\n operation = \"add\",\n): AddOutput {\n const error = () => {\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n };\n // @ts-ignore\n if (a === b) return a as AddOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as AddOutput;\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return a as AddOutput;\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return b as AddOutput;\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return a as AddOutput;\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return b as AddOutput;\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return a as AddOutput;\n error();\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function subOutputType(\n a: A,\n b: B,\n): SubOutput {\n return addOutputType(a, b, \"sub\");\n}\n\nexport function mulOutputType(\n a: A,\n b: B,\n): MulOutput {\n const error = () => {\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n };\n const result = (value: unknown) => value as MulOutput;\n if (a === \"int\") {\n if (isIntType(b)) return result(b);\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return result(a);\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return result(b);\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return result(a);\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return result(b);\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return result(a);\n error();\n }\n if (isIntType(a) || isUintType(a) || isIntType(b) || isUintType(b)) {\n // @ts-ignore\n if (a === b) return result(a);\n error();\n }\n // Vector * Matrix/Vector\n if (a === \"vec2\") {\n if (b === \"vec2\" || isMat2(b)) return result(\"vec2\");\n if (b === \"mat3x2\") return result(\"vec3\");\n if (b === \"mat4x2\") return result(\"vec4\");\n error();\n }\n if (a === \"vec3\") {\n if (b === \"mat2x3\") return result(\"vec2\");\n if (b === \"vec3\" || isMat3(b)) return result(\"vec3\");\n if (b === \"mat4x3\") return result(\"vec4\");\n error();\n }\n if (a === \"vec4\") {\n if (b === \"mat2x4\") return result(\"vec2\");\n if (b === \"mat3x4\") return result(\"vec3\");\n if (b === \"vec4\" || isMat4(b)) return result(\"vec4\");\n error();\n }\n // Matrix * Vector\n if (b === \"vec2\") {\n if (isMat2(a)) return result(\"vec2\");\n if (a === \"mat2x3\") return result(\"vec3\");\n if (a === \"mat2x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec3\") {\n if (a === \"mat3x2\") return result(\"vec2\");\n if (isMat3(a)) return result(\"vec3\");\n if (a === \"mat3x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec4\") {\n if (a === \"mat4x2\") return result(\"vec2\");\n if (a === \"mat4x3\") return result(\"vec3\");\n if (isMat4(a)) return result(\"vec4\");\n error();\n }\n // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n if (isMat2(a)) {\n if (isMat2(b)) return result(\"mat2\");\n if (b === \"mat3x2\") return result(\"mat3x2\");\n if (b === \"mat4x2\") return result(\"mat4x2\");\n error();\n }\n if (a === \"mat2x3\") {\n if (isMat2(b)) return result(\"mat2x3\");\n if (b === \"mat3x2\") return result(\"mat3\");\n if (b === \"mat4x2\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat2x4\") {\n if (isMat2(b)) return result(\"mat2x4\");\n if (b === \"mat3x2\") return result(\"mat3x4\");\n if (b === \"mat4x2\") return result(\"mat4\");\n error();\n }\n if (a === \"mat3x2\") {\n if (b === \"mat2x3\") return result(\"mat2\");\n if (isMat3(b)) return result(\"mat3x2\");\n if (b === \"mat4x3\") return result(\"mat4x2\");\n error();\n }\n if (isMat3(a)) {\n if (b === \"mat2x3\") return result(\"mat2x3\");\n if (isMat3(b)) return result(\"mat3\");\n if (b === \"mat4x3\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat3x4\") {\n if (b === \"mat2x3\") return result(\"mat2x4\");\n if (isMat3(b)) return result(\"mat3x4\");\n if (b === \"mat4x3\") return result(\"mat4\");\n error();\n }\n if (a === \"mat4x2\") {\n if (b === \"mat2x4\") return result(\"mat2\");\n if (b === \"mat3x4\") return result(\"mat3x2\");\n if (isMat4(b)) return result(\"mat4x2\");\n error();\n }\n if (a === \"mat4x3\") {\n if (b === \"mat2x4\") return result(\"mat2x3\");\n if (b === \"mat3x4\") return result(\"mat3\");\n if (isMat4(b)) return result(\"mat4x3\");\n error();\n }\n if (isMat4(a)) {\n if (b === \"mat2x4\") return result(\"mat2x4\");\n if (b === \"mat3x4\") return result(\"mat3x4\");\n if (isMat4(b)) return result(\"mat4\");\n error();\n }\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n}\n\nexport function divOutputType(\n a: A,\n b: B,\n): DivOutput {\n return addOutputType(a, b, \"div\");\n}\n\nexport function imodOutputType(\n a: A,\n b: B,\n): IModOutput {\n // @ts-ignore\n if (a === b) return a as IModOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as IModOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as IModOutput;\n } else if (a === \"uint\") {\n if (isUintType(b)) return b as IModOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as IModOutput;\n }\n throw new Error(`Invalid imod types: ${a}, ${b}`);\n}\n\nexport function modOutputType(\n a: A,\n b: B,\n): ModOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return a as ModOutput;\n throw new Error(`Invalid mod types: ${a}, ${b}`);\n}\n\nexport function modfOutputType(a: A): A {\n return a;\n}\n\nexport function negOutputType(a: A): A {\n return a;\n}\n\nexport function absOutputType(a: A): A {\n return a;\n}\n\nexport function signOutputType(a: A): A {\n return a;\n}\n\nexport function floorOutputType(a: A): A {\n return a;\n}\n\nexport function ceilOutputType(a: A): A {\n return a;\n}\n\nexport function truncOutputType(a: A): A {\n return a;\n}\n\nexport function roundOutputType(a: A): A {\n return a;\n}\n\nexport function fractOutputType(a: A): A {\n return a;\n}\n\nexport function powOutputType(a: A): A {\n return a;\n}\n\nexport function expOutputType(a: A): A {\n return a;\n}\n\nexport function exp2OutputType(a: A): A {\n return a;\n}\n\nexport function logOutputType(a: A): A {\n return a;\n}\n\nexport function log2OutputType(a: A): A {\n return a;\n}\n\nexport function sqrOutputType(a: A): A {\n return a;\n}\n\nexport function sqrtOutputType(a: A): A {\n return a;\n}\n\nexport function inversesqrtOutputType(a: A): A {\n return a;\n}\n\nexport function minOutputType(\n a: A,\n b: B,\n operation = \"min\",\n): MinOutput {\n // @ts-ignore\n if (a === b) return a as MinOutput;\n if (b === \"float\") {\n if (isFloatType(a)) return a as MinOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as MinOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as MinOutput;\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function maxOutputType(\n a: A,\n b: B,\n): MaxOutput {\n return minOutputType(a, b, \"max\");\n}\n\nexport function clampOutputType(\n a: A,\n b: B,\n _c: B,\n): ClampOutput {\n if (b === \"float\") {\n if (isFloatType(a)) return a as ClampOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as ClampOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as ClampOutput;\n }\n throw new Error(`Invalid clamp types: ${a}, ${b}`);\n}\n\nexport function mixOutputType<\n A extends FloatTypes,\n C extends FloatTypes | BoolTypes,\n>(a: A, b: A, c: C): MixOutput {\n // @ts-ignore\n if (c === a) return a as MixOutput;\n if (c === \"float\") return a as MixOutput;\n if (c === \"bool\" && a === \"float\") return a as MixOutput;\n if (c === \"bvec2\" && a === \"vec2\") return a as MixOutput;\n if (c === \"bvec3\" && a === \"vec3\") return a as MixOutput;\n if (c === \"bvec4\" && a === \"vec4\") return a as MixOutput;\n throw new Error(`Invalid mix types: ${a}, ${b}, ${c}`);\n}\n\nexport function stepOutputType(\n a: A,\n b: B,\n): StepOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return b as StepOutput;\n throw new Error(`Invalid step types: ${a}, ${b}`);\n}\n\nexport function smoothstepOutputType<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n>(a: A, b: B, c: C): SmoothstepOutput {\n // @ts-ignore\n if (a === b) {\n if (a === c || a === \"float\") return c as SmoothstepOutput;\n }\n throw new Error(`Invalid smoothstep types: ${a}, ${b}, ${c}`);\n}\n\nexport function isNanOutputType(\n a: A,\n operation = \"isNan\",\n): IsNanOutput {\n if (a === \"float\") return \"bool\" as IsNanOutput;\n if (a === \"vec2\") return \"bvec2\" as IsNanOutput;\n if (a === \"vec3\") return \"bvec3\" as IsNanOutput;\n if (a === \"vec4\") return \"bvec4\" as IsNanOutput;\n throw new Error(`Invalid ${operation} types: ${a}`);\n}\n\nexport function isInfOutputType(a: A): IsInfOutput {\n return isNanOutputType(a, \"isInf\");\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AddOutput,\n type ClampOutput,\n type DivOutput,\n type IModOutput,\n type IsInfOutput,\n type IsNanOutput,\n type MaxOutput,\n type MinOutput,\n type MixOutput,\n type ModOutput,\n type MulOutput,\n type SmoothstepOutput,\n type StepOutput,\n type SubOutput,\n absOutputType,\n addOutputType,\n ceilOutputType,\n clampOutputType,\n divOutputType,\n exp2OutputType,\n expOutputType,\n floorOutputType,\n fractOutputType,\n imodOutputType,\n inversesqrtOutputType,\n isInfOutputType,\n isNanOutputType,\n log2OutputType,\n logOutputType,\n maxOutputType,\n minOutputType,\n mixOutputType,\n modOutputType,\n modfOutputType,\n mulOutputType,\n negOutputType,\n powOutputType,\n roundOutputType,\n signOutputType,\n smoothstepOutputType,\n sqrOutputType,\n sqrtOutputType,\n stepOutputType,\n subOutputType,\n truncOutputType,\n} from \"./mathTypes\";\nimport type {\n AllIntTypes,\n AllSignedTypes,\n AllValueTypes,\n BoolTypes,\n FloatTypes,\n SignedTypes,\n ValueTypes,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const add = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Add({ a, b });\nexport const sub = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Sub({ a, b });\nexport const mul = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mul({ a, b });\nexport const div = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Div({ a, b });\nexport const imod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new IMod({ a, b });\nexport const mod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mod({ a, b });\nexport const modf = (a: DynoVal) =>\n new Modf({ a }).outputs;\n\nexport const neg = (a: DynoVal): DynoVal =>\n new Neg({ a });\nexport const abs = (a: DynoVal): DynoVal =>\n new Abs({ a });\nexport const sign = (a: DynoVal): DynoVal =>\n new Sign({ a });\nexport const floor = (a: DynoVal): DynoVal =>\n new Floor({ a });\nexport const ceil = (a: DynoVal): DynoVal =>\n new Ceil({ a });\nexport const trunc = (a: DynoVal): DynoVal =>\n new Trunc({ a });\nexport const round = (a: DynoVal): DynoVal =>\n new Round({ a });\nexport const fract = (a: DynoVal): DynoVal =>\n new Fract({ a });\n\nexport const pow = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Pow({ a, b });\nexport const exp = (a: DynoVal): DynoVal =>\n new Exp({ a });\nexport const exp2 = (a: DynoVal): DynoVal =>\n new Exp2({ a });\nexport const log = (a: DynoVal): DynoVal =>\n new Log({ a });\nexport const log2 = (a: DynoVal): DynoVal =>\n new Log2({ a });\nexport const sqr = (a: DynoVal): DynoVal =>\n new Sqr({ a });\nexport const sqrt = (a: DynoVal): DynoVal =>\n new Sqrt({ a });\nexport const inversesqrt = (a: DynoVal): DynoVal =>\n new InverseSqrt({ a });\n\nexport const min = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Min({ a, b });\nexport const max = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Max({ a, b });\nexport const clamp = (\n a: DynoVal,\n min: DynoVal,\n max: DynoVal,\n): DynoVal> => new Clamp({ a, min, max });\nexport const mix = (\n a: DynoVal,\n b: DynoVal,\n t: DynoVal,\n): DynoVal> => new Mix({ a, b, t });\nexport const step = (\n edge: DynoVal,\n x: DynoVal,\n): DynoVal> => new Step({ edge, x });\nexport const smoothstep = (\n edge0: DynoVal,\n edge1: DynoVal,\n x: DynoVal,\n): DynoVal> =>\n new Smoothstep({ edge0, edge1, x });\n\nexport const isNan = (\n a: DynoVal,\n): DynoVal> => new IsNan({ a });\nexport const isInf = (\n a: DynoVal,\n): DynoVal> => new IsInf({ a });\n\nexport class Add<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"sum\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"sum\", outTypeFunc: addOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sum} = ${inputs.a} + ${inputs.b};`];\n };\n }\n}\n\nexport class Sub<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"difference\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"difference\", outTypeFunc: subOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.difference} = ${inputs.a} - ${inputs.b};`];\n };\n }\n}\n\nexport class Mul<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"product\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: mulOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.product} = ${inputs.a} * ${inputs.b};`];\n };\n }\n}\n\nexport class Div<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"quotient\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"quotient\", outTypeFunc: divOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.quotient} = ${inputs.a} / ${inputs.b};`];\n };\n }\n}\n\nexport class IMod<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> extends BinaryOp, \"remainder\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: imodOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = ${inputs.a} % ${inputs.b};`];\n };\n }\n}\n\nexport class Mod extends BinaryOp<\n A,\n B,\n ModOutput,\n \"remainder\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: modOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = mod(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Modf extends Dyno<\n { a: A },\n { fract: A; integer: A }\n> {\n constructor({ a }: { a: DynoVal }) {\n const inTypes = { a: valType(a) };\n const outType = modfOutputType(inTypes.a);\n const outTypes = {\n fract: outType,\n integer: outType,\n };\n super({ inTypes, outTypes, inputs: { a } });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = modf(${inputs.a}, ${outputs.integer});`];\n };\n }\n}\n\nexport class Neg extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"neg\", outTypeFunc: negOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.neg} = -${inputs.a};`];\n };\n }\n}\n\nexport class Abs extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"abs\", outTypeFunc: absOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.abs} = abs(${inputs.a});`];\n };\n }\n}\n\nexport class Sign extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sign\", outTypeFunc: signOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sign} = sign(${inputs.a});`];\n };\n }\n}\n\nexport class Floor extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"floor\", outTypeFunc: floorOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.floor} = floor(${inputs.a});`];\n };\n }\n}\n\nexport class Ceil extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"ceil\", outTypeFunc: ceilOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.ceil} = ceil(${inputs.a});`];\n };\n }\n}\n\nexport class Trunc extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"trunc\", outTypeFunc: truncOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.trunc} = trunc(${inputs.a});`];\n };\n }\n}\n\nexport class Round extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"round\", outTypeFunc: roundOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.round} = round(${inputs.a});`];\n };\n }\n}\n\nexport class Fract extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"fract\", outTypeFunc: fractOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = fract(${inputs.a});`];\n };\n }\n}\n\nexport class Pow extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"power\", outTypeFunc: powOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.power} = pow(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Exp extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp\", outTypeFunc: expOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp} = exp(${inputs.a});`];\n };\n }\n}\n\nexport class Exp2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp2\", outTypeFunc: exp2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp2} = exp2(${inputs.a});`];\n };\n }\n}\n\nexport class Log extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log\", outTypeFunc: logOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log} = log(${inputs.a});`];\n };\n }\n}\n\nexport class Log2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log2\", outTypeFunc: log2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log2} = log2(${inputs.a});`];\n };\n }\n}\n\nexport class Sqr extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqr\", outTypeFunc: sqrOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqr} = ${inputs.a} * ${inputs.a};`];\n };\n }\n}\n\nexport class Sqrt extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqrt\", outTypeFunc: sqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqrt} = sqrt(${inputs.a});`];\n };\n }\n}\n\nexport class InverseSqrt extends UnaryOp<\n A,\n A,\n \"inversesqrt\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inversesqrt\", outTypeFunc: inversesqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.inversesqrt} = inversesqrt(${inputs.a});`];\n };\n }\n}\n\nexport class Min extends BinaryOp<\n A,\n B,\n MinOutput,\n \"min\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"min\", outTypeFunc: minOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.min} = min(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Max extends BinaryOp<\n A,\n B,\n MaxOutput,\n \"max\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"max\", outTypeFunc: maxOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.max} = max(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Clamp<\n A extends ValueTypes,\n MinMax extends ValueTypes,\n> extends TrinaryOp, \"clamp\"> {\n constructor({\n a,\n min,\n max,\n }: { a: DynoVal; min: DynoVal; max: DynoVal }) {\n super({\n a,\n b: min,\n c: max,\n outKey: \"clamp\",\n outTypeFunc: clampOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a, b: min, c: max } = inputs;\n return [`${outputs.clamp} = clamp(${a}, ${min}, ${max});`];\n };\n }\n}\n\nexport class Mix<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> extends TrinaryOp, \"mix\"> {\n constructor({ a, b, t }: { a: DynoVal; b: DynoVal; t: DynoVal }) {\n super({ a, b, c: t, outKey: \"mix\", outTypeFunc: mixOutputType });\n this.statements = ({ inputs, outputs }) => {\n const { a, b, c: t } = inputs;\n return [`${outputs.mix} = mix(${a}, ${b}, ${t});`];\n };\n }\n}\n\nexport class Step<\n Edge extends FloatTypes,\n X extends FloatTypes,\n> extends BinaryOp, \"step\"> {\n constructor({ edge, x }: { edge: DynoVal; x: DynoVal }) {\n super({\n a: edge,\n b: x,\n outKey: \"step\",\n outTypeFunc: stepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge, b: x } = inputs;\n return [`${outputs.step} = step(${edge}, ${x});`];\n };\n }\n}\n\nexport class Smoothstep<\n X extends FloatTypes,\n Edge extends X | \"float\",\n> extends TrinaryOp<\n Edge,\n Edge,\n X,\n SmoothstepOutput,\n \"smoothstep\"\n> {\n constructor({\n edge0,\n edge1,\n x,\n }: { edge0: DynoVal; edge1: DynoVal; x: DynoVal }) {\n super({\n a: edge0,\n b: edge1,\n c: x,\n outKey: \"smoothstep\",\n outTypeFunc: smoothstepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge0, b: edge1, c: x } = inputs;\n return [`${outputs.smoothstep} = smoothstep(${edge0}, ${edge1}, ${x});`];\n };\n }\n}\n\nexport class IsNan extends UnaryOp<\n A,\n IsNanOutput,\n \"isNan\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isNan\", outTypeFunc: isNanOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isNan} = isNan(${inputs.a});`];\n };\n }\n}\n\nexport class IsInf extends UnaryOp<\n A,\n IsInfOutput,\n \"isInf\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isInf\", outTypeFunc: isInfOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isInf} = isInf(${inputs.a});`];\n };\n }\n}\n","import { BinaryOp, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AllIntTypes,\n type BoolTypes,\n type IntTypes,\n type ScalarTypes,\n type SimpleTypes,\n type UintTypes,\n type ValueTypes,\n isBoolType,\n isIntType,\n isScalarType,\n isUintType,\n isVector2Type,\n isVector3Type,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const and = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new And({ a, b });\nexport const or = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Or({ a, b });\nexport const xor = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Xor({ a, b });\nexport const not = (\n a: DynoVal,\n): DynoVal => new Not({ a });\n\nexport const shr = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shr({ a, b });\n\nexport const shl = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shl({ a, b });\n\nexport const lessThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThan({ a, b });\nexport const lessThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThanEqual({ a, b });\nexport const greaterThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThan({ a, b });\nexport const greaterThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThanEqual({ a, b });\nexport const equal = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Equal({ a, b });\nexport const notEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new NotEqual({ a, b });\n\nexport const any = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new Any({ a });\nexport const all = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new All({ a });\nexport const select = (\n cond: DynoVal<\"bool\">,\n t: DynoVal,\n f: DynoVal,\n): DynoVal => new Select({ cond, t, f });\n\nexport const compXor = (\n a: DynoVal,\n): DynoVal> => new CompXor({ a });\n\nexport class And extends BinaryOp<\n T,\n T,\n T,\n \"and\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"and\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.and === \"bool\") {\n return [`${outputs.and} = ${inputs.a} && ${inputs.b};`];\n }\n return [`${outputs.and} = ${inputs.a} & ${inputs.b};`];\n };\n }\n}\n\nexport class Or extends BinaryOp<\n T,\n T,\n T,\n \"or\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"or\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.or === \"bool\") {\n return [`${outputs.or} = ${inputs.a} || ${inputs.b};`];\n }\n return [`${outputs.or} = ${inputs.a} | ${inputs.b};`];\n };\n }\n}\n\nexport class Xor extends BinaryOp<\n T,\n T,\n T,\n \"xor\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"xor\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.xor === \"bool\") {\n return [`${outputs.xor} = ${inputs.a} ^^ ${inputs.b};`];\n }\n return [`${outputs.xor} = ${inputs.a} ^ ${inputs.b};`];\n };\n }\n}\n\nexport class Not extends UnaryOp<\n T,\n T,\n \"not\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => aType, outKey: \"not\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.not === \"bool\") {\n return [`${outputs.not} = !${inputs.a};`];\n }\n return [`${outputs.not} = not(${inputs.a});`];\n };\n }\n}\n\nexport class LessThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) => compareOutputType(aType, \"lessThan\"),\n outKey: \"lessThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThan === \"bool\") {\n return [`${outputs.lessThan} = ${inputs.a} < ${inputs.b};`];\n }\n return [`${outputs.lessThan} = lessThan(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class LessThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"lessThanEqual\"),\n outKey: \"lessThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThanEqual === \"bool\") {\n return [`${outputs.lessThanEqual} = ${inputs.a} <= ${inputs.b};`];\n }\n return [\n `${outputs.lessThanEqual} = lessThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThan\"),\n outKey: \"greaterThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThan === \"bool\") {\n return [`${outputs.greaterThan} = ${inputs.a} > ${inputs.b};`];\n }\n return [\n `${outputs.greaterThan} = greaterThan(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThanEqual\"),\n outKey: \"greaterThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThanEqual === \"bool\") {\n return [`${outputs.greaterThanEqual} = ${inputs.a} >= ${inputs.b};`];\n }\n return [\n `${outputs.greaterThanEqual} = greaterThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class Equal extends BinaryOp<\n T,\n T,\n EqualOutput,\n \"equal\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: equalOutputType, outKey: \"equal\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.equal === \"bool\") {\n return [`${outputs.equal} = ${inputs.a} == ${inputs.b};`];\n }\n return [`${outputs.equal} = equal(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class NotEqual extends BinaryOp<\n T,\n T,\n NotEqualOutput,\n \"notEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: notEqualOutputType, outKey: \"notEqual\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.notEqual === \"bool\") {\n return [`${outputs.notEqual} = ${inputs.a} != ${inputs.b};`];\n }\n return [`${outputs.notEqual} = notEqual(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Any extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"any\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.any} = any(${inputs.a});`];\n };\n }\n}\n\nexport class All extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"all\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.all} = all(${inputs.a});`];\n };\n }\n}\n\nexport class Select extends TrinaryOp<\n \"bool\",\n T,\n T,\n T,\n \"select\"\n> {\n constructor({\n cond,\n t,\n f,\n }: { cond: DynoVal<\"bool\">; t: DynoVal; f: DynoVal }) {\n super({\n a: cond,\n b: t,\n c: f,\n outKey: \"select\",\n outTypeFunc: (aType: \"bool\", bType: T, cType: T) => bType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: cond, b: t, c: f } = inputs;\n return [`${outputs.select} = (${cond}) ? (${t}) : (${f});`];\n };\n }\n}\n\ntype CompareOutput = T extends ScalarTypes\n ? \"bool\"\n : T extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : T extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : T extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction compareOutputType(\n type: T,\n operator: string,\n): CompareOutput {\n if (isScalarType(type)) {\n return \"bool\" as CompareOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as CompareOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as CompareOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as CompareOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype EqualOutput = A extends ScalarTypes\n ? \"bool\"\n : A extends BoolTypes\n ? A\n : A extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : A extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : A extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction equalOutputType(\n type: A,\n operator = \"equal\",\n): EqualOutput {\n if (isScalarType(type)) {\n return \"bool\" as EqualOutput;\n }\n if (isBoolType(type)) {\n return type as EqualOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as EqualOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as EqualOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as EqualOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype NotEqualOutput = EqualOutput;\n\nfunction notEqualOutputType(\n type: A,\n): NotEqualOutput {\n return equalOutputType(type, \"notEqual\");\n}\n\ntype CompXorOutput = A extends BoolTypes\n ? \"bool\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nfunction compXorOutputType(\n type: A,\n): CompXorOutput {\n if (isBoolType(type)) {\n return \"bool\" as CompXorOutput;\n }\n if (isIntType(type)) {\n return \"int\" as CompXorOutput;\n }\n if (isUintType(type)) {\n return \"uint\" as CompXorOutput;\n }\n throw new Error(`Invalid compXor type: ${type}`);\n}\n\nexport class CompXor extends UnaryOp<\n T,\n CompXorOutput,\n \"compXor\"\n> {\n constructor({ a }: { a: DynoVal }) {\n const outType = compXorOutputType(valType(a));\n super({ a, outTypeFunc: (aType: T) => outType, outKey: \"compXor\" });\n this.statements = ({ inputs, outputs }) => {\n if (isScalarType(this.outTypes.compXor)) {\n return [`${outputs.compXor} = ${inputs.a};`];\n }\n const components = isVector2Type(outType)\n ? [\"x\", \"y\"]\n : isVector3Type(outType)\n ? [\"x\", \"y\", \"z\"]\n : [\"x\", \"y\", \"z\", \"w\"];\n const operands = components.map((c) => `${inputs.a}.${c}`);\n const operator = isBoolType(outType) ? \"^^\" : \"^\";\n return [`${outputs.compXor} = ${operands.join(` ${operator} `)};`];\n };\n }\n}\n\nexport class Shr extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shr\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shr} = ${inputs.a} >> ${inputs.b};`];\n };\n }\n}\n\nexport class Shl extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shl\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shl} = ${inputs.a} << ${inputs.b};`];\n };\n }\n}\n","import { UnaryOp } from \"./base\";\nimport { type SimpleTypes, typeLiteral } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const bool = (\n value: DynoVal,\n): DynoVal<\"bool\"> => new Bool({ value });\nexport const int = (\n value: DynoVal,\n): DynoVal<\"int\"> => new Int({ value });\nexport const uint = (\n value: DynoVal,\n): DynoVal<\"uint\"> => new Uint({ value });\nexport const float = (\n value: DynoVal,\n): DynoVal<\"float\"> => new Float({ value });\n\nexport const bvec2 = (\n value: DynoVal,\n): DynoVal<\"bvec2\"> => new BVec2({ value });\nexport const bvec3 = (\n value: DynoVal,\n): DynoVal<\"bvec3\"> => new BVec3({ value });\nexport const bvec4 = (\n value: DynoVal,\n): DynoVal<\"bvec4\"> => new BVec4({ value });\n\nexport const ivec2 = (\n value: DynoVal,\n): DynoVal<\"ivec2\"> => new IVec2({ value });\nexport const ivec3 = (\n value: DynoVal,\n): DynoVal<\"ivec3\"> => new IVec3({ value });\nexport const ivec4 = (\n value: DynoVal,\n): DynoVal<\"ivec4\"> => new IVec4({ value });\n\nexport const uvec2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => new UVec2({ value });\nexport const uvec3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => new UVec3({ value });\nexport const uvec4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => new UVec4({ value });\n\nexport const vec2 = <\n T extends \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec2\"> => new Vec2({ value });\nexport const vec3 = <\n T extends \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec3\"> => new Vec3({ value });\nexport const vec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => new Vec4({ value });\n\nexport const mat2 = (\n value: DynoVal,\n): DynoVal<\"mat2\"> => new Mat2({ value });\nexport const mat3 = (\n value: DynoVal,\n): DynoVal<\"mat3\"> => new Mat3({ value });\nexport const mat4 = (\n value: DynoVal,\n): DynoVal<\"mat4\"> => new Mat4({ value });\n\nexport const floatBitsToInt = (value: DynoVal<\"float\">): DynoVal<\"int\"> =>\n new FloatBitsToInt({ value });\nexport const floatBitsToUint = (value: DynoVal<\"float\">): DynoVal<\"uint\"> =>\n new FloatBitsToUint({ value });\nexport const intBitsToFloat = (value: DynoVal<\"int\">): DynoVal<\"float\"> =>\n new IntBitsToFloat({ value });\nexport const uintBitsToFloat = (value: DynoVal<\"uint\">): DynoVal<\"float\"> =>\n new UintBitsToFloat({ value });\n\nexport const packSnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackSnorm2x16({ value });\nexport const unpackSnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackSnorm2x16({ value });\nexport const packUnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackUnorm2x16({ value });\nexport const unpackUnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackUnorm2x16({ value });\n\nexport const packHalf2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackHalf2x16({ value });\nexport const unpackHalf2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackHalf2x16({ value });\n\nexport const uintToRgba8 = (value: DynoVal<\"uint\">): DynoVal<\"vec4\"> =>\n new UintToRgba8({ value });\n\nexport class SimpleCast<\n Allowed extends SimpleTypes,\n OutType extends SimpleTypes,\n OutKey extends string,\n> extends UnaryOp {\n constructor({\n value,\n outType,\n outKey,\n }: { value: DynoVal; outType: OutType; outKey: OutKey }) {\n super({ a: value, outTypeFunc: () => outType, outKey });\n this.statements = ({ inputs, outputs }) => [\n `${outputs[outKey]} = ${typeLiteral(outType)}(${inputs.a});`,\n ];\n }\n}\n\nexport class Bool extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"bool\",\n \"bool\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"bool\", outKey: \"bool\" });\n }\n}\n\nexport class Int extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"int\",\n \"int\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"int\", outKey: \"int\" });\n }\n}\n\nexport class Uint extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"uint\",\n \"uint\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"uint\", outKey: \"uint\" });\n }\n}\n\nexport class Float extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"float\",\n \"float\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"float\", outKey: \"float\" });\n }\n}\n\nexport class BVec2 extends SimpleCast<\n \"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"bvec2\",\n \"bvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"bvec2\", outKey: \"bvec2\" });\n }\n}\n\nexport class BVec3 extends SimpleCast<\n \"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"bvec3\",\n \"bvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"bvec3\", outKey: \"bvec3\" });\n }\n}\n\nexport class BVec4 extends SimpleCast<\n \"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"bvec4\",\n \"bvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"bvec4\", outKey: \"bvec4\" });\n }\n}\n\nexport class IVec2 extends SimpleCast<\n \"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"ivec2\",\n \"ivec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"ivec2\", outKey: \"ivec2\" });\n }\n}\n\nexport class IVec3 extends SimpleCast<\n \"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"ivec3\",\n \"ivec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"ivec3\", outKey: \"ivec3\" });\n }\n}\n\nexport class IVec4 extends SimpleCast<\n \"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"ivec4\",\n \"ivec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"ivec4\", outKey: \"ivec4\" });\n }\n}\n\nexport class UVec2 extends SimpleCast<\n \"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\",\n \"uvec2\",\n \"uvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"uvec2\", outKey: \"uvec2\" });\n }\n}\n\nexport class UVec3 extends SimpleCast<\n \"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\",\n \"uvec3\",\n \"uvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"uvec3\", outKey: \"uvec3\" });\n }\n}\n\nexport class UVec4 extends SimpleCast<\n \"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\",\n \"uvec4\",\n \"uvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"uvec4\", outKey: \"uvec4\" });\n }\n}\n\nexport class Vec2 extends SimpleCast<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n \"vec2\",\n \"vec2\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec2\", outKey: \"vec2\" });\n }\n}\n\nexport class Vec3 extends SimpleCast<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\",\n \"vec3\",\n \"vec3\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec3\", outKey: \"vec3\" });\n }\n}\n\nexport class Vec4 extends SimpleCast<\n \"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"vec4\",\n \"vec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"vec4\", outKey: \"vec4\" });\n }\n}\n\nexport class Mat2 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat2\",\n \"mat2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat2\", outKey: \"mat2\" });\n }\n}\n\nexport class Mat3 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat3\",\n \"mat3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat3\", outKey: \"mat3\" });\n }\n}\n\nexport class Mat4 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat4\",\n \"mat4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat4\", outKey: \"mat4\" });\n }\n}\n\nexport class FloatBitsToInt extends UnaryOp<\"float\", \"int\", \"int\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"int\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.int} = floatBitsToInt(${inputs.a});`];\n };\n }\n}\n\nexport class FloatBitsToUint extends UnaryOp<\"float\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = floatBitsToUint(${inputs.a});`];\n };\n }\n}\n\nexport class IntBitsToFloat extends UnaryOp<\"int\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"int\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = intBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class UintBitsToFloat extends UnaryOp<\"uint\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = uintBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class PackSnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackSnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackUnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackUnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackHalf2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackHalf2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UintToRgba8 extends UnaryOp<\"uint\", \"vec4\", \"rgba8\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"rgba8\", outTypeFunc: () => \"vec4\" });\n this.statements = ({ inputs, outputs }) => {\n return [\n `uvec4 uRgba = uvec4(${inputs.a} & 0xffu, (${inputs.a} >> 8u) & 0xffu, (${inputs.a} >> 16u) & 0xffu, (${inputs.a} >> 24u) & 0xffu);`,\n `${outputs.rgba8} = vec4(uRgba) / 255.0;`,\n ];\n };\n }\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type FloatTypes,\n type IntTypes,\n type MatFloatTypes,\n type SquareMatTypes,\n type UintTypes,\n type VectorElementType,\n type VectorTypes,\n isFloatType,\n isIntType,\n isUintType,\n vectorDim,\n vectorElementType,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n literalZero,\n valType,\n} from \"./value\";\n\nexport const length = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Length({ a });\nexport const distance = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Distance({ a, b });\nexport const dot = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Dot({ a, b });\nexport const cross = (\n a: DynoVal<\"vec3\">,\n b: DynoVal<\"vec3\">,\n): DynoVal<\"vec3\"> => new Cross({ a, b });\nexport const normalize = (\n a: DynoVal,\n): DynoVal => new Normalize({ a });\nexport const faceforward = (\n a: DynoVal,\n b: DynoVal,\n c: DynoVal,\n): DynoVal => new FaceForward({ a, b, c });\nexport const reflectVec = (\n incident: DynoVal,\n normal: DynoVal,\n): DynoVal => new ReflectVec({ incident, normal });\nexport const refractVec = (\n incident: DynoVal,\n normal: DynoVal,\n eta: DynoVal<\"float\">,\n): DynoVal => new RefractVec({ incident, normal, eta });\nexport const split = (vector: DynoVal): Split =>\n new Split({ vector });\nexport const combine = >({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n}: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n}): DynoVal => new Combine({ vector, vectorType, x, y, z, w, r, g, b, a });\nexport const projectH = (\n a: DynoVal,\n): DynoVal> => new ProjectH({ a });\nexport const extendVec = (\n a: DynoVal,\n b: DynoVal<\"float\">,\n): DynoVal> => new ExtendVec({ a, b });\nexport const swizzle = (\n a: DynoVal,\n select: S,\n): DynoVal>> =>\n new Swizzle({ vector: a, select });\nexport const compMult = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new CompMult({ a, b });\nexport const outer = <\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Outer({ a, b });\nexport const transpose = (\n a: DynoVal,\n): DynoVal> => new Transpose({ a });\nexport const determinant = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Determinant({ a });\nexport const inverse = (a: DynoVal): DynoVal =>\n new Inverse({ a });\n\nexport class Length extends UnaryOp<\n A,\n \"float\",\n \"length\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => \"float\", outKey: \"length\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.length} = length(${inputs.a});`,\n ];\n }\n}\n\nexport class Distance extends BinaryOp<\n A,\n A,\n \"float\",\n \"distance\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"distance\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.distance} = distance(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Dot extends BinaryOp<\n A,\n A,\n \"float\",\n \"dot\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"dot\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.dot} = dot(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Cross extends BinaryOp<\"vec3\", \"vec3\", \"vec3\", \"cross\"> {\n constructor({ a, b }: { a: DynoVal<\"vec3\">; b: DynoVal<\"vec3\"> }) {\n super({ a, b, outKey: \"cross\", outTypeFunc: (aType, bType) => \"vec3\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cross} = cross(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Normalize extends UnaryOp<\n A,\n A,\n \"normalize\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => aType, outKey: \"normalize\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normalize} = normalize(${inputs.a});`,\n ];\n }\n}\n\ntype ProjectHOutput = A extends \"vec3\"\n ? \"vec2\"\n : A extends \"vec4\"\n ? \"vec3\"\n : never;\n\nfunction projectHOutputType(\n type: A,\n): ProjectHOutput {\n if (type === \"vec3\") {\n return \"vec2\" as ProjectHOutput;\n }\n if (type === \"vec4\") {\n return \"vec3\" as ProjectHOutput;\n }\n throw new Error(\"Invalid type\");\n}\n\nexport class ProjectH extends UnaryOp<\n A,\n ProjectHOutput,\n \"projected\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({\n a,\n outTypeFunc: (aType) => projectHOutputType(aType),\n outKey: \"projected\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.inTypes.a === \"vec3\") {\n return [`${outputs.projected} = ${inputs.a}.xy / ${inputs.a}.z;`];\n }\n if (this.inTypes.a === \"vec4\") {\n return [`${outputs.projected} = ${inputs.a}.xyz / ${inputs.a}.w;`];\n }\n throw new Error(\"Invalid type\");\n };\n }\n}\n\ntype ExtendVecOutput = A extends \"float\"\n ? \"vec2\"\n : A extends \"vec2\"\n ? \"vec3\"\n : A extends \"vec3\"\n ? \"vec4\"\n : never;\n\nfunction extendVecOutputType(\n type: A,\n): ExtendVecOutput {\n if (type === \"float\") return \"vec2\" as ExtendVecOutput;\n if (type === \"vec2\") return \"vec3\" as ExtendVecOutput;\n if (type === \"vec3\") return \"vec4\" as ExtendVecOutput;\n throw new Error(\"Invalid type\");\n}\n\nexport class ExtendVec extends BinaryOp<\n A,\n \"float\",\n ExtendVecOutput,\n \"extend\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal<\"float\"> }) {\n const type = valType(a);\n const outType = extendVecOutputType(type);\n super({ a, b, outKey: \"extend\", outTypeFunc: () => outType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.extend} = ${outType}(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class FaceForward extends TrinaryOp<\n A,\n A,\n A,\n A,\n \"forward\"\n> {\n constructor({ a, b, c }: { a: DynoVal; b: DynoVal; c: DynoVal }) {\n super({\n a,\n b,\n c,\n outKey: \"forward\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.forward} = faceforward(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class ReflectVec extends BinaryOp<\n A,\n A,\n A,\n \"reflection\"\n> {\n constructor({\n incident,\n normal,\n }: { incident: DynoVal; normal: DynoVal }) {\n super({\n a: incident,\n b: normal,\n outKey: \"reflection\",\n outTypeFunc: (aType, bType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.reflection} = reflect(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class RefractVec extends TrinaryOp<\n A,\n A,\n \"float\",\n A,\n \"refraction\"\n> {\n constructor({\n incident,\n normal,\n eta,\n }: { incident: DynoVal; normal: DynoVal; eta: DynoVal<\"float\"> }) {\n super({\n a: incident,\n b: normal,\n c: eta,\n outKey: \"refraction\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.refraction} = refract(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class CompMult extends BinaryOp<\n A,\n A,\n A,\n \"product\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: (aType, bType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.product} = matrixCompMult(${a}, ${b});`,\n ];\n }\n}\n\ntype OuterOutput<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> = A extends \"vec2\"\n ? B extends \"vec2\"\n ? \"mat2\"\n : B extends \"vec3\"\n ? \"mat3x2\"\n : B extends \"vec4\"\n ? \"mat4x2\"\n : never\n : A extends \"vec3\"\n ? B extends \"vec2\"\n ? \"mat2x3\"\n : B extends \"vec3\"\n ? \"mat3\"\n : B extends \"vec4\"\n ? \"mat4x3\"\n : never\n : A extends \"vec4\"\n ? B extends \"vec2\"\n ? \"mat2x4\"\n : B extends \"vec3\"\n ? \"mat3x4\"\n : B extends \"vec4\"\n ? \"mat4\"\n : never\n : never;\n\nfunction outerOutputType<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(aType: A, bType: B): OuterOutput {\n if (aType === \"vec2\") {\n if (bType === \"vec2\") return \"mat2\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x2\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x2\" as OuterOutput;\n }\n if (aType === \"vec3\") {\n if (bType === \"vec2\") return \"mat2x3\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x3\" as OuterOutput;\n }\n if (aType === \"vec4\") {\n if (bType === \"vec2\") return \"mat2x4\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x4\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4\" as OuterOutput;\n }\n throw new Error(`Invalid outer type: ${aType}, ${bType}`);\n}\n\nexport class Outer<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> extends BinaryOp, \"outer\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"outer\", outTypeFunc: outerOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.outer} = outerProduct(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\ntype TransposeOutput = A extends SquareMatTypes\n ? A\n : A extends \"mat2x3\"\n ? \"mat3x2\"\n : A extends \"mat2x4\"\n ? \"mat4x2\"\n : A extends \"mat3x2\"\n ? \"mat2x3\"\n : A extends \"mat3x4\"\n ? \"mat4x3\"\n : A extends \"mat4x2\"\n ? \"mat2x4\"\n : A extends \"mat4x3\"\n ? \"mat3x4\"\n : never;\n\nfunction transposeOutputType(\n type: A,\n): TransposeOutput {\n if (type === \"mat2\") return \"mat2\" as TransposeOutput;\n if (type === \"mat3\") return \"mat3\" as TransposeOutput;\n if (type === \"mat4\") return \"mat4\" as TransposeOutput;\n if (type === \"mat2x2\") return \"mat2x2\" as TransposeOutput;\n if (type === \"mat2x3\") return \"mat3x2\" as TransposeOutput;\n if (type === \"mat2x4\") return \"mat4x2\" as TransposeOutput;\n if (type === \"mat3x2\") return \"mat2x3\" as TransposeOutput;\n if (type === \"mat3x3\") return \"mat3x3\" as TransposeOutput;\n if (type === \"mat3x4\") return \"mat4x3\" as TransposeOutput;\n if (type === \"mat4x2\") return \"mat2x4\" as TransposeOutput;\n if (type === \"mat4x3\") return \"mat3x4\" as TransposeOutput;\n if (type === \"mat4x4\") return \"mat4x4\" as TransposeOutput;\n throw new Error(`Invalid transpose type: ${type}`);\n}\n\nexport class Transpose extends UnaryOp<\n A,\n TransposeOutput,\n \"transpose\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"transpose\", outTypeFunc: transposeOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.transpose} = transpose(${inputs.a});`,\n ];\n }\n}\n\nexport class Determinant extends UnaryOp<\n A,\n \"float\",\n \"det\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"det\", outTypeFunc: (aType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.det} = determinant(${inputs.a});`,\n ];\n }\n}\n\nexport class Inverse extends UnaryOp<\n A,\n A,\n \"inverse\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inverse\", outTypeFunc: (aType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.inverse} = inverse(${a});`,\n ];\n }\n}\n\ntype SplitOutTypes = A extends \"vec2\"\n ? { x: \"float\"; y: \"float\"; r: \"float\"; g: \"float\" }\n : A extends \"vec3\"\n ? { x: \"float\"; y: \"float\"; z: \"float\"; r: \"float\"; g: \"float\"; b: \"float\" }\n : A extends \"vec4\"\n ? {\n x: \"float\";\n y: \"float\";\n z: \"float\";\n w: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n a: \"float\";\n }\n : A extends \"ivec2\"\n ? { x: \"int\"; y: \"int\"; r: \"int\"; g: \"int\" }\n : A extends \"ivec3\"\n ? { x: \"int\"; y: \"int\"; z: \"int\"; r: \"int\"; g: \"int\"; b: \"int\" }\n : A extends \"ivec4\"\n ? {\n x: \"int\";\n y: \"int\";\n z: \"int\";\n w: \"int\";\n r: \"int\";\n g: \"int\";\n b: \"int\";\n a: \"int\";\n }\n : A extends \"uvec2\"\n ? { x: \"uint\"; y: \"uint\"; r: \"uint\"; g: \"uint\" }\n : A extends \"uvec3\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n }\n : A extends \"uvec4\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n w: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n a: \"uint\";\n }\n : never;\n\nfunction splitOutTypes(type: A): SplitOutTypes {\n const result = (value: unknown) => value as SplitOutTypes;\n switch (type) {\n case \"vec2\":\n return result({ x: \"float\", y: \"float\", r: \"float\", g: \"float\" });\n case \"vec3\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n });\n case \"vec4\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n w: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n a: \"float\",\n });\n case \"ivec2\":\n return result({ x: \"int\", y: \"int\", r: \"int\", g: \"int\" });\n case \"ivec3\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n });\n case \"ivec4\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n w: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n a: \"int\",\n });\n case \"uvec2\":\n return result({ x: \"uint\", y: \"uint\", r: \"uint\", g: \"uint\" });\n case \"uvec3\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n });\n case \"uvec4\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n w: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n a: \"uint\",\n });\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport class Split extends Dyno<\n { vector: V },\n SplitOutTypes\n> {\n constructor({ vector }: { vector: DynoVal }) {\n const type = valType(vector);\n const inTypes = { vector: type };\n const outTypes = splitOutTypes(inTypes.vector);\n super({ inTypes, outTypes, inputs: { vector } });\n this.statements = ({ inputs, outputs }) => {\n const { x, y, z, w, r, g, b, a } = outputs as unknown as Record<\n string,\n string\n >;\n const { vector } = inputs;\n return [\n x ? `${x} = ${vector}.x;` : null,\n y ? `${y} = ${vector}.y;` : null,\n z ? `${z} = ${vector}.z;` : null,\n w ? `${w} = ${vector}.w;` : null,\n r ? `${r} = ${vector}.r;` : null,\n g ? `${g} = ${vector}.g;` : null,\n b ? `${b} = ${vector}.b;` : null,\n a ? `${a} = ${vector}.a;` : null,\n ].filter(Boolean) as string[];\n };\n }\n}\n\nexport class Combine>\n extends Dyno & { vector: V }, { vector: V }>\n implements HasDynoOut\n{\n constructor({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n }: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n }) {\n if (!vector && !vectorType) {\n throw new Error(\"Either vector or vectorType must be provided\");\n }\n const vType = vectorType ?? valType(vector as DynoVal);\n const elType = vectorElementType(vType);\n const dim = vectorDim(vType);\n\n const inTypes = {\n vector: vType,\n x: elType,\n y: elType,\n r: elType,\n g: elType,\n } as unknown as SplitOutTypes & { vector: V };\n const inputs = { vector, x, y, r, g };\n if (dim >= 3) {\n Object.assign(inTypes, { z: elType, b: elType });\n Object.assign(inputs, { z, b });\n }\n if (dim >= 4) {\n Object.assign(inTypes, { w: elType, a: elType });\n Object.assign(inputs, { w, a });\n }\n // @ts-ignore\n super({ inTypes, outTypes: { vector: vType }, inputs });\n this.statements = ({ inputs, outputs }) => {\n const { vector } = outputs;\n const {\n vector: input,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n } = inputs as Record;\n const statements = [\n `${vector}.x = ${x ?? r ?? (input ? `${input}.x` : literalZero(elType))};`,\n `${vector}.y = ${y ?? g ?? (input ? `${input}.y` : literalZero(elType))};`,\n ];\n if (dim >= 3)\n statements.push(\n `${vector}.z = ${z ?? b ?? (input ? `${input}.z` : literalZero(elType))};`,\n );\n if (dim >= 4)\n statements.push(\n `${vector}.w = ${w ?? a ?? (input ? `${input}.w` : literalZero(elType))};`,\n );\n return statements;\n };\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput & { vector: V }, { vector: V }>(\n this,\n \"vector\",\n );\n }\n}\n\ntype SwizzleOutput<\n A extends VectorTypes,\n Len extends number,\n> = A extends FloatTypes\n ? Len extends 1\n ? \"float\"\n : Len extends 2\n ? \"vec2\"\n : Len extends 3\n ? \"vec3\"\n : Len extends 4\n ? \"vec4\"\n : never\n : A extends IntTypes\n ? Len extends 1\n ? \"int\"\n : Len extends 2\n ? \"ivec2\"\n : Len extends 3\n ? \"ivec3\"\n : Len extends 4\n ? \"ivec4\"\n : never\n : A extends UintTypes\n ? Len extends 1\n ? \"uint\"\n : Len extends 2\n ? \"uvec2\"\n : Len extends 3\n ? \"uvec3\"\n : Len extends 4\n ? \"uvec4\"\n : never\n : never;\n\ntype SwizzleSelectLen = S extends Swizzle1Select\n ? 1\n : S extends Swizzle2Select\n ? 2\n : S extends Swizzle3Select\n ? 3\n : S extends Swizzle4Select\n ? 4\n : never;\n\nfunction swizzleOutputType(\n type: A,\n swizzle: S,\n): SwizzleOutput> {\n let result = null;\n if (isFloatType(type)) {\n result =\n swizzle.length === 1\n ? \"float\"\n : swizzle.length === 2\n ? \"vec2\"\n : swizzle.length === 3\n ? \"vec3\"\n : swizzle.length === 4\n ? \"vec4\"\n : null;\n } else if (isIntType(type)) {\n result =\n swizzle.length === 1\n ? \"int\"\n : swizzle.length === 2\n ? \"ivec2\"\n : swizzle.length === 3\n ? \"ivec3\"\n : swizzle.length === 4\n ? \"ivec4\"\n : null;\n } else if (isUintType(type)) {\n result =\n swizzle.length === 1\n ? \"uint\"\n : swizzle.length === 2\n ? \"uvec2\"\n : swizzle.length === 3\n ? \"uvec3\"\n : swizzle.length === 4\n ? \"uvec4\"\n : null;\n }\n if (result == null) {\n throw new Error(`Invalid swizzle: ${swizzle}`);\n }\n return result as SwizzleOutput>;\n}\n\ntype Swizzle1Select = `${\"x\" | \"y\" | \"z\" | \"w\"}|${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle2Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle3Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle4Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype SwizzleSelect =\n | Swizzle1Select\n | Swizzle2Select\n | Swizzle3Select\n | Swizzle4Select;\n\nexport class Swizzle<\n A extends VectorTypes,\n S extends SwizzleSelect,\n> extends UnaryOp>, \"swizzle\"> {\n constructor({ vector, select }: { vector: DynoVal; select: S }) {\n super({\n a: vector,\n outKey: \"swizzle\",\n outTypeFunc: (aType) => swizzleOutputType(aType, select),\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.swizzle} = ${inputs.a}.${select};`,\n ];\n }\n}\n","import { Dyno, DynoBlock, unindent } from \"./base\";\nimport { float, vec2, vec3, vec4 } from \"./convert\";\nimport { mul } from \"./math\";\nimport { type ValueTypes, isIntType, isUintType, sameSizeUvec } from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n dynoConst,\n valType,\n} from \"./value\";\nimport { combine } from \"./vecmat\";\n\nexport const remapIndex = (\n index: DynoVal<\"int\">,\n from: DynoVal<\"int\">,\n to: DynoVal<\"int\">,\n): DynoVal<\"int\"> => {\n return new DynoRemapIndex({ index, from, to });\n};\nexport const pcgMix = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new PcgMix({ value });\n};\nexport const pcgNext = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgNext({ state });\n};\nexport const pcgHash = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgHash({ state });\n};\nexport const hash = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new Hash({ value });\n};\nexport const hash2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => {\n return new Hash2({ value });\n};\nexport const hash3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => {\n return new Hash3({ value });\n};\nexport const hash4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => {\n return new Hash4({ value });\n};\nexport const hashFloat = (\n value: DynoVal,\n): DynoVal<\"float\"> => {\n return new HashFloat({ value });\n};\nexport const hashVec2 = (\n value: DynoVal,\n): DynoVal<\"vec2\"> => {\n return new HashVec2({ value });\n};\nexport const hashVec3 = (\n value: DynoVal,\n): DynoVal<\"vec3\"> => {\n return new HashVec3({ value });\n};\nexport const hashVec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => {\n return new HashVec4({ value });\n};\nexport const normalizedDepth = (\n z: DynoVal<\"float\">,\n zNear: DynoVal<\"float\">,\n zFar: DynoVal<\"float\">,\n): DynoVal<\"float\"> => {\n return new NormalizedDepth({ z, zNear, zFar }).outputs.depth;\n};\n\nexport const debugColorHue = (index: DynoVal<\"int\">): DynoVal<\"vec3\"> => {\n return new DebugColorHue({ index });\n};\n\nexport class DynoRemapIndex\n extends Dyno<{ from: \"int\"; to: \"int\"; index: \"int\" }, { index: \"int\" }>\n implements HasDynoOut<\"int\">\n{\n constructor({\n from,\n to,\n index,\n }: { from: DynoVal<\"int\">; to: DynoVal<\"int\">; index: DynoVal<\"int\"> }) {\n super({\n inTypes: { from: \"int\", to: \"int\", index: \"int\" },\n outTypes: { index: \"int\" },\n inputs: { from, to, index },\n statements: ({ inputs, outputs }) => {\n return [\n `${outputs.index} = ${inputs.index} - ${inputs.from} + ${inputs.to};`,\n ];\n },\n });\n }\n\n dynoOut(): DynoValue<\"int\"> {\n return new DynoOutput(this, \"index\");\n }\n}\n\nexport class PcgNext\n extends Dyno<{ state: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal }) {\n const type = valType(state);\n super({\n inTypes: { state: type },\n outTypes: { state: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_next(uint state) {\n return state * 747796405u + 2891336453u;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUint =\n type === \"uint\"\n ? `${inputs.state}`\n : type === \"int\"\n ? `uint(${inputs.state})`\n : `floatBitsToUint(${inputs.state})`;\n return [`${outputs.state} = pcg_next(${toUint});`];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class PcgHash\n extends Dyno<{ state: \"uint\" }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal<\"uint\"> }) {\n super({\n inTypes: { state: \"uint\" },\n outTypes: { hash: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_hash(uint state) {\n uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u;\n return (hash >> 22u) ^ hash;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => [\n `${outputs.hash} = pcg_hash(${inputs.state});`,\n ],\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class PcgMix\n extends Dyno<{ value: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n const type = valType(value);\n const tempType = sameSizeUvec(type);\n super({\n inTypes: { value: type },\n outTypes: { state: \"uint\" },\n inputs: { value },\n globals: () => [\n unindent(`\n uint pcg_mix(uint value) {\n return value;\n }\n uint pcg_mix(uvec2 value) {\n return value.x + 0x9e3779b9u * value.y;\n }\n uint pcg_mix(uvec3 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z;\n }\n uint pcg_mix(uvec4 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z + 0xc2b2ae35u * value.w;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUvec = isUintType(type)\n ? `${inputs.value}`\n : isIntType(type)\n ? `${tempType}(${inputs.value})`\n : `floatBitsToUint(${inputs.value})`;\n return [\n `${tempType} bits = ${toUvec};`,\n `${outputs.state} = pcg_mix(bits);`,\n ];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class Hash\n extends DynoBlock<{ value: T }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uint\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n return new PcgHash({ state }).outputs;\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash2\n extends DynoBlock<{ value: T }, { hash: \"uvec2\" }>\n implements HasDynoOut<\"uvec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec2\", x, y }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash3\n extends DynoBlock<{ value: T }, { hash: \"uvec3\" }>\n implements HasDynoOut<\"uvec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec3\", x, y, z }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash4\n extends DynoBlock<{ value: T }, { hash: \"uvec4\" }>\n implements HasDynoOut<\"uvec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const w = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec4\", x, y, z, w }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashFloat\n extends DynoBlock<{ value: T }, { hash: \"float\" }>\n implements HasDynoOut<\"float\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"float\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const word = hash(value);\n return { hash: mul(float(word), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec2\n extends DynoBlock<{ value: T }, { hash: \"vec2\" }>\n implements HasDynoOut<\"vec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash2(value);\n return { hash: mul(vec2(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec3\n extends DynoBlock<{ value: T }, { hash: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash3(value);\n return { hash: mul(vec3(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec4\n extends DynoBlock<{ value: T }, { hash: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash4(value);\n return { hash: mul(vec4(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class NormalizedDepth\n extends Dyno<\n { z: \"float\"; zNear: \"float\"; zFar: \"float\" },\n { depth: \"float\" }\n >\n implements HasDynoOut<\"float\">\n{\n constructor({\n z,\n zNear,\n zFar,\n }: { z: DynoVal<\"float\">; zNear: DynoVal<\"float\">; zFar: DynoVal<\"float\"> }) {\n super({\n inTypes: { z: \"float\", zNear: \"float\", zFar: \"float\" },\n outTypes: { depth: \"float\" },\n inputs: { z, zNear, zFar },\n statements: ({ inputs, outputs }) => [\n `float clamped = clamp(${inputs.z}, ${inputs.zNear}, ${inputs.zFar});`,\n `${outputs.depth} = (log2(clamped + 1.0) - log2(${inputs.zNear} + 1.0)) / (log2(${inputs.zFar} + 1.0) - log2(${inputs.zNear} + 1.0));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"depth\");\n }\n}\n\nexport class DebugColorHue\n extends Dyno<{ index: \"int\" }, { color: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ index }: { index: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { color: \"vec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => [\n `${outputs.color} = debugColorHue(uint(${inputs.index}));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"color\");\n }\n}\n","import { Dyno } from \"./base\";\nimport type { DynoVal } from \"./value\";\n\nexport const transformPos = (\n position: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n translate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformPosition({ position, scale, scales, rotate, translate })\n .outputs.position;\n};\nexport const transformDir = (\n dir: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformDir({ dir, scale, scales, rotate }).outputs.dir;\n};\nexport const transformQuat = (\n quaternion: DynoVal<\"vec4\">,\n { rotate }: { rotate?: DynoVal<\"vec4\"> },\n): DynoVal<\"vec4\"> => {\n return new TransformQuaternion({ quaternion, rotate }).outputs.quaternion;\n};\n\nexport class TransformPosition extends Dyno<\n {\n position: \"vec3\";\n scale: \"float\";\n scales: \"vec3\";\n rotate: \"vec4\";\n translate: \"vec3\";\n },\n { position: \"vec3\" }\n> {\n constructor({\n position,\n scale,\n scales,\n rotate,\n translate,\n }: {\n position?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n }) {\n super({\n inTypes: {\n position: \"vec3\",\n scale: \"float\",\n scales: \"vec3\",\n rotate: \"vec4\",\n translate: \"vec3\",\n },\n outTypes: { position: \"vec3\" },\n inputs: { position, scale, scales, rotate, translate },\n statements: ({ inputs, outputs }) => {\n const { position } = outputs;\n if (!position) {\n return [];\n }\n const { scale, scales, rotate, translate } = inputs;\n return [\n `${position} = ${inputs.position ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${position} *= ${scale};`,\n !scales ? null : `${position} *= ${scales};`,\n !rotate ? null : `${position} = quatVec(${rotate}, ${position});`,\n !translate ? null : `${position} += ${translate};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformDir extends Dyno<\n { dir: \"vec3\"; scale: \"float\"; scales: \"vec3\"; rotate: \"vec4\" },\n { dir: \"vec3\" }\n> {\n constructor({\n dir,\n scale,\n scales,\n rotate,\n }: {\n dir?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { dir: \"vec3\", scale: \"float\", scales: \"vec3\", rotate: \"vec4\" },\n outTypes: { dir: \"vec3\" },\n inputs: { dir, scale, scales, rotate },\n statements: ({ inputs, outputs }) => {\n const { dir } = outputs;\n if (!dir) {\n return [];\n }\n const { scale, scales, rotate } = inputs;\n return [\n `${dir} = ${inputs.dir ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${dir} *= ${scale};`,\n !scales ? null : `${dir} *= ${scales};`,\n !rotate ? null : `${dir} = quatVec(${rotate}, ${dir});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformQuaternion extends Dyno<\n { quaternion: \"vec4\"; rotate: \"vec4\" },\n { quaternion: \"vec4\" }\n> {\n constructor({\n quaternion,\n rotate,\n }: { quaternion?: DynoVal<\"vec4\">; rotate?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { quaternion: \"vec4\", rotate: \"vec4\" },\n outTypes: { quaternion: \"vec4\" },\n inputs: { quaternion, rotate },\n statements: ({ inputs, outputs }) => {\n const { quaternion } = outputs;\n if (!quaternion) {\n return [];\n }\n return [\n `${quaternion} = ${inputs.quaternion ?? \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rotate\n ? null\n : `${quaternion} = quatQuat(${inputs.rotate}, ${quaternion});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n","// TODO:\n// if, switch, for, comment,\n// arrayIndex, arrayLength,\n\nexport const dynoIf = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoSwitch = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoFor = () => {\n throw new Error(\"Not implemented\");\n};\nexport const comment = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayIndex = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayLength = () => {\n throw new Error(\"Not implemented\");\n};\n","import { Dyno } from \"./base\";\nimport type {\n AllSamplerTypes,\n IsamplerTypes,\n NormalSamplerTypes,\n Sampler2DArrayTypes,\n Sampler2DTypes,\n Sampler3DTypes,\n SamplerCubeTypes,\n SamplerShadowTypes,\n SamplerTypes,\n UsamplerTypes,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nexport const textureSize = (\n texture: DynoVal,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TextureSize({ texture, lod });\nexport const texture = (\n texture: DynoVal,\n coord: DynoVal>,\n bias?: DynoVal<\"float\">,\n): DynoVal> => new Texture({ texture, coord, bias });\nexport const texelFetch = (\n texture: DynoVal,\n coord: DynoVal>,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TexelFetch({ texture, coord, lod });\n\nexport class TextureSize\n extends Dyno<{ texture: T; lod: \"int\" }, { size: TextureSizeType }>\n implements HasDynoOut>\n{\n constructor({ texture, lod }: { texture: DynoVal; lod?: DynoVal<\"int\"> }) {\n const textureType = valType(texture);\n super({\n inTypes: { texture: textureType, lod: \"int\" },\n outTypes: { size: textureSizeType(textureType) },\n inputs: { texture, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.size} = textureSize(${inputs.texture}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"size\");\n }\n}\n\nexport class Texture\n extends Dyno<\n { texture: T; coord: TextureCoordType; bias: \"float\" },\n { sample: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n bias,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n bias?: DynoVal<\"float\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureCoordType(textureType),\n bias: \"float\",\n },\n outTypes: { sample: textureReturnType(textureType) },\n inputs: { texture, coord, bias },\n statements: ({ inputs, outputs }) => [\n `${outputs.sample} = texture(${inputs.texture}, ${inputs.coord}${inputs.bias ? `, ${inputs.bias}` : \"\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"sample\");\n }\n}\n\nexport class TexelFetch\n extends Dyno<\n { texture: T; coord: TextureSizeType; lod: \"int\" },\n { texel: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n lod,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n lod?: DynoVal<\"int\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureSizeType(textureType),\n lod: \"int\",\n },\n outTypes: { texel: textureReturnType(textureType) },\n inputs: { texture, coord, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.texel} = texelFetch(${inputs.texture}, ${inputs.coord}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"texel\");\n }\n}\n\ntype TextureSizeType = T extends\n | Sampler2DTypes\n | SamplerCubeTypes\n ? \"ivec2\"\n : T extends Sampler3DTypes | Sampler2DArrayTypes\n ? \"ivec3\"\n : never;\n\nfunction textureSizeType(\n textureType: T,\n): TextureSizeType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DShadow\":\n case \"samplerCubeShadow\":\n return \"ivec2\" as TextureSizeType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DArrayShadow\":\n return \"ivec3\" as TextureSizeType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureCoordType = T extends Sampler2DTypes\n ? \"vec2\"\n : T extends\n | Sampler3DTypes\n | Sampler2DArrayTypes\n | SamplerCubeTypes\n | Sampler2DArrayTypes\n ? \"vec3\"\n : T extends \"samperCubeShadow\" | \"sampler2DArrayShadow\"\n ? \"vec4\"\n : never;\n\nfunction textureCoordType(\n textureType: T,\n): TextureCoordType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n return \"vec2\" as TextureCoordType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DShadow\":\n return \"vec3\" as TextureCoordType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"vec4\" as TextureCoordType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureReturnType = T extends SamplerTypes\n ? \"vec4\"\n : T extends UsamplerTypes\n ? \"uvec4\"\n : T extends IsamplerTypes\n ? \"ivec4\"\n : T extends SamplerShadowTypes\n ? \"float\"\n : never;\n\nfunction textureReturnType(\n textureType: T,\n): TextureReturnType {\n switch (textureType) {\n case \"sampler2D\":\n case \"sampler2DArray\":\n case \"sampler3D\":\n case \"samplerCube\":\n case \"sampler2DShadow\":\n return \"vec4\" as TextureReturnType;\n case \"usampler2D\":\n case \"usampler2DArray\":\n case \"usampler3D\":\n case \"usamplerCube\":\n return \"uvec4\" as TextureReturnType;\n case \"isampler2D\":\n case \"isampler2DArray\":\n case \"isampler3D\":\n case \"isamplerCube\":\n return \"ivec4\" as TextureReturnType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"float\" as TextureReturnType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n","import { BinaryOp, UnaryOp } from \"./base\";\nimport type { FloatTypes } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const radians = (\n degrees: DynoVal,\n): DynoVal => new Radians({ degrees });\nexport const degrees = (\n radians: DynoVal,\n): DynoVal => new Degrees({ radians });\n\nexport const sin = (radians: DynoVal): DynoVal =>\n new Sin({ radians });\nexport const cos = (radians: DynoVal): DynoVal =>\n new Cos({ radians });\nexport const tan = (radians: DynoVal): DynoVal =>\n new Tan({ radians });\n\nexport const asin = (sin: DynoVal): DynoVal =>\n new Asin({ sin });\nexport const acos = (cos: DynoVal): DynoVal =>\n new Acos({ cos });\nexport const atan = (tan: DynoVal): DynoVal =>\n new Atan({ tan });\nexport const atan2 = (\n y: DynoVal,\n x: DynoVal,\n): DynoVal => new Atan2({ y, x });\n\nexport const sinh = (x: DynoVal): DynoVal =>\n new Sinh({ x });\nexport const cosh = (x: DynoVal): DynoVal =>\n new Cosh({ x });\nexport const tanh = (x: DynoVal): DynoVal =>\n new Tanh({ x });\n\nexport const asinh = (x: DynoVal): DynoVal =>\n new Asinh({ x });\nexport const acosh = (x: DynoVal): DynoVal =>\n new Acosh({ x });\nexport const atanh = (x: DynoVal): DynoVal =>\n new Atanh({ x });\n\nexport class Radians extends UnaryOp {\n constructor({ degrees }: { degrees: DynoVal }) {\n super({ a: degrees, outTypeFunc: (aType) => aType, outKey: \"radians\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.radians} = radians(${inputs.a});`,\n ];\n }\n}\n\nexport class Degrees extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"degrees\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.degrees} = degrees(${inputs.a});`,\n ];\n }\n}\n\nexport class Sin extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"sin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sin} = sin(${inputs.a});`,\n ];\n }\n}\n\nexport class Cos extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"cos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cos} = cos(${inputs.a});`,\n ];\n }\n}\n\nexport class Tan extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"tan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tan} = tan(${inputs.a});`,\n ];\n }\n}\n\nexport class Asin extends UnaryOp {\n constructor({ sin }: { sin: DynoVal }) {\n super({ a: sin, outTypeFunc: (aType) => aType, outKey: \"asin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asin} = asin(${inputs.a});`,\n ];\n }\n}\n\nexport class Acos extends UnaryOp {\n constructor({ cos }: { cos: DynoVal }) {\n super({ a: cos, outTypeFunc: (aType) => aType, outKey: \"acos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acos} = acos(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan extends UnaryOp {\n constructor({ tan }: { tan: DynoVal }) {\n super({ a: tan, outTypeFunc: (aType) => aType, outKey: \"atan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan} = atan(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan2 extends BinaryOp {\n constructor({ y, x }: { y: DynoVal; x: DynoVal }) {\n super({\n a: y,\n b: x,\n outTypeFunc: (aType, bType) => aType,\n outKey: \"atan2\",\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan2} = atan2(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Sinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"sinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sinh} = sinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Cosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"cosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cosh} = cosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Tanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"tanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tanh} = tanh(${inputs.a});`,\n ];\n }\n}\n\nexport class Asinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"asinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asinh} = asinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Acosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"acosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acosh} = acosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Atanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"atanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atanh} = atanh(${inputs.a});`,\n ];\n }\n}\n","import * as THREE from \"three\";\nimport type { RgbaArray } from \"./RgbaArray\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { SPLAT_TEX_WIDTH, type SplatFileType } from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n type Gsplat,\n TExtSplats,\n add,\n combineGsplat,\n defineExtSplats,\n normalize,\n readExtSplat,\n splatTexCoord,\n splitGsplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { decodeExtSplat, encodeExtSplat, getTextureSize } from \"./utils\";\n\nexport type ExtSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided pair of uint32 arrays, where blocks of 4 uint32s in each,\n // encode an \"extended packed\" Gsplat. (default: undefined)\n extArrays?: [Uint32Array, Uint32Array];\n // Override number of splats in packed arrays to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: ExtSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the ExtSplats\n lodSplats?: ExtSplats;\n};\n\nexport class ExtSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record = {};\n maxSh = 3;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: ExtSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n textures: [THREE.DataArrayTexture, THREE.DataArrayTexture];\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoNumSh: DynoInt<\"numSh\">;\n\n constructor(options: ExtSplatsOptions = {}) {\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n this.textures = [ExtSplats.emptyTexture, ExtSplats.emptyTexture];\n\n this.extra = {};\n this.dyno = new DynoExtSplats({ extSplats: this });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: ExtSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: ExtSplatsOptions) {\n this.extra = options.extra ?? {};\n this.lodSplats = options.lodSplats;\n\n if (options.extArrays) {\n this.extArrays = options.extArrays;\n this.maxSplats = Math.floor(\n Math.min(this.extArrays[0].length / 4, this.extArrays[1].length / 4),\n );\n this.numSplats = options.numSplats ?? this.maxSplats;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n this.updateTextures();\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n }\n }\n\n async asyncInitialize(options: ExtSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n extSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n this.textures[0].dispose();\n this.textures[0].source.data = null;\n this.textures[0] = ExtSplats.emptyTexture;\n }\n if (this.textures[1] !== ExtSplats.emptyTexture) {\n this.textures[1].dispose();\n this.textures[1].source.data = null;\n this.textures[1] = ExtSplats.emptyTexture;\n }\n\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"ExtSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1\n ? 0\n : !this.extra.sh2\n ? 1\n : !this.extra.sh3a || !this.extra.sh3b\n ? 2\n : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readExtSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB } =\n this.ensureShTextures();\n let { rgb } = evaluateExtSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 4,\n );\n if (sh1.length < maxSplats * 4) {\n const newSh1 = new Uint32Array(maxSplats * 4);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n const texture = newUint32ArrayTexture(\n sh1,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = newUint32ArrayTexture(\n sh2,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3a || !this.extra.sh3b) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3TextureA = this.extra.sh3TextureA as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureA) {\n let sh3a = this.extra.sh3a as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3a.length / 4,\n );\n if (sh3a.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3a);\n this.extra.sh3a = newSh3;\n sh3a = newSh3;\n }\n\n const texture = newUint32ArrayTexture(\n sh3a,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureA = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3TextureA = sh3TextureA;\n }\n\n let sh3TextureB = this.extra.sh3TextureB as\n | DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureB) {\n let sh3b = this.extra.sh3b as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3b.length / 4,\n );\n if (sh3b.length < maxSplats * 4) {\n const newSh3b = new Uint32Array(maxSplats * 4);\n newSh3b.set(sh3b);\n this.extra.sh3b = newSh3b;\n sh3b = newSh3b;\n }\n\n const texture = newUint32ArrayTexture(\n sh3b,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureB = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3b\",\n });\n this.extra.sh3TextureB = sh3TextureB;\n }\n\n return { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB };\n }\n\n // Ensures that this.extArrays can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): [Uint32Array, Uint32Array] {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.extArrays[0] ? 0 : this.extArrays[0].length / 4;\n\n if (!this.extArrays[0] || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray0 = new Uint32Array(this.maxSplats * 4);\n const newArray1 = new Uint32Array(this.maxSplats * 4);\n if (this.extArrays[0]) {\n // Copy over existing data\n newArray0.set(this.extArrays[0]);\n newArray1.set(this.extArrays[1]);\n }\n this.extArrays[0] = newArray0;\n this.extArrays[1] = newArray1;\n }\n return this.extArrays;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return decodeExtSplat(this.extArrays, index);\n }\n\n // Set all ExtSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(index + 1);\n encodeExtSplat(\n extArrays,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(this.numSplats + 1);\n encodeExtSplat(\n extArrays,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = decodeExtSplat(this.extArrays, i);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Check if source texture needs to be created/updated\n private updateTextures() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n const { width, height, depth } = this.textures[0].image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.textures[0].dispose();\n this.textures[0] = ExtSplats.emptyTexture;\n this.textures[1].dispose();\n this.textures[1] = ExtSplats.emptyTexture;\n }\n }\n if (this.textures[0] === ExtSplats.emptyTexture) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.textures[0] = newUint32ArrayTexture(\n this.extArrays[0],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n this.textures[1] = newUint32ArrayTexture(\n this.extArrays[1],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n } else if (\n this.extArrays[0].buffer !== this.textures[0].image.data.buffer\n ) {\n this.textures[0].image.data = new Uint8Array(this.extArrays[0].buffer);\n this.textures[1].image.data = new Uint8Array(this.extArrays[1].buffer);\n // Indicate to Three.js that the source textures needs to be uploaded to the GPU\n this.textures[0].needsUpdate = true;\n this.textures[1].needsUpdate = true;\n }\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new ExtSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static emptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTexture = newUint32ArrayTexture(\n null,\n 1,\n 1,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const extArrays = [this.extArrays[0].slice(), this.extArrays[1].slice()];\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodExtSplats\" : \"tinyLodExtSplats\",\n {\n numSplats: this.numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n },\n )) as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n };\n });\n\n const lodSplats = new ExtSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\nexport const dynoExtSplats = (extSplats?: ExtSplats) =>\n new DynoExtSplats({ extSplats });\n\nexport class DynoExtSplats extends DynoUniform<\n typeof TExtSplats,\n \"extSplats\",\n {\n textureArray1: THREE.DataArrayTexture;\n textureArray2: THREE.DataArrayTexture;\n numSplats: number;\n }\n> {\n extSplats?: ExtSplats;\n\n constructor({ extSplats }: { extSplats?: ExtSplats } = {}) {\n super({\n key: \"extSplats\",\n type: TExtSplats,\n globals: () => [defineExtSplats],\n value: {\n textureArray1: ExtSplats.emptyTexture,\n textureArray2: ExtSplats.emptyTexture,\n numSplats: 0,\n },\n update: (value) => {\n value.textureArray1 =\n this.extSplats?.textures[0] ?? ExtSplats.emptyTexture;\n value.textureArray2 =\n this.extSplats?.textures[1] ?? ExtSplats.emptyTexture;\n value.numSplats = this.extSplats?.numSplats ?? 0;\n return value;\n },\n });\n this.extSplats = extSplats;\n }\n}\n\nexport const defineEvaluateExtSH1 = unindent(`\n vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packedData.x);\n vec3 sh1_1 = decodeExtRgb(packedData.y);\n vec3 sh1_2 = decodeExtRgb(packedData.z);\n\n return sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n }\n`);\n\nexport const defineEvaluateExtSH12 = unindent(`\n vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packed1.x);\n vec3 sh1_1 = decodeExtRgb(packed1.y);\n vec3 sh1_2 = decodeExtRgb(packed1.z);\n\n vec3 sh2_0 = decodeExtRgb(packed1.w);\n vec3 sh2_1 = decodeExtRgb(packed2.x);\n vec3 sh2_2 = decodeExtRgb(packed2.y);\n vec3 sh2_3 = decodeExtRgb(packed2.z);\n vec3 sh2_4 = decodeExtRgb(packed2.w);\n\n vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n\n vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n\n return sh1Rgb + sh2Rgb;\n }\n`);\n\nexport const defineEvaluateExtSH3 = unindent(`\n vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) {\n vec3 sh3_0 = decodeExtRgb(packedA.x);\n vec3 sh3_1 = decodeExtRgb(packedA.y);\n vec3 sh3_2 = decodeExtRgb(packedA.z);\n vec3 sh3_3 = decodeExtRgb(packedA.w);\n vec3 sh3_4 = decodeExtRgb(packedB.x);\n vec3 sh3_5 = decodeExtRgb(packedB.y);\n vec3 sh3_6 = decodeExtRgb(packedB.z);\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n }\n`);\n\nexport function evaluateExtSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3TextureA: \"usampler2DArray\",\n sh3TextureB: \"usampler2DArray\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n },\n globals: () => [\n defineEvaluateExtSH1,\n defineEvaluateExtSH12,\n defineEvaluateExtSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n if (!inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n } else {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} == 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n } else if (${inputs.numSh} >= 2) {\n rgb = evaluateExtSH12(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n `),\n );\n\n if (inputs.sh3TextureA && inputs.sh3TextureB) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n rgb += evaluateExtSH3(texelFetch(${inputs.sh3TextureA}, ${inputs.coord}, 0), texelFetch(${inputs.sh3TextureB}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n }\n\n lines.push(\"}\");\n }\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n\nfunction newUint32ArrayTexture(\n data: Uint32Array | null,\n width: number,\n height: number,\n depth: number,\n format: THREE.AnyPixelFormat,\n type: THREE.TextureDataType,\n internalFormat: THREE.PixelFormatGPU,\n): THREE.DataArrayTexture {\n const texture = new THREE.DataArrayTexture(\n data as Uint32Array,\n width,\n height,\n depth,\n );\n texture.format = format;\n texture.type = type;\n texture.internalFormat = internalFormat;\n texture.needsUpdate = true;\n return texture;\n}\n","/* @ts-self-types=\"./spark_rs.d.ts\" */\n\n/**\n * @param {Uint8Array} bytes\n * @returns {any}\n */\nexport function decode_rad_header(bytes) {\n const ret = wasm.decode_rad_header(bytes);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer() {\n const ret = wasm.get_raycast_buffer();\n return ret;\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer2() {\n const ret = wasm.get_raycast_buffer2();\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @returns {Float32Array}\n */\nexport function raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count) {\n const ret = wasm.raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} num_splats\n * @param {Uint32Array} packed_splats\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @returns {boolean}\n */\nexport function simd_enabled() {\n const ret = wasm.simd_enabled();\n return ret !== 0;\n}\n\nexport function wasm_start() {\n wasm.wasm_start();\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_fd4646b401926788: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_26bffbe236bf73f9: function(arg0) {\n const ret = new Float32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n },\n __wbg_set_8ee2d34facb8466e: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) {\n arg0.set(getArrayF32FromWasm0(arg1, arg2));\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(F32)) -> NamedExternref(\"Float32Array\")`.\n const ret = getArrayF32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000003: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U32)) -> NamedExternref(\"Uint32Array\")`.\n const ret = getArrayU32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000004: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000005: function(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./spark_rs_bg.js\": import0,\n };\n}\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction getArrayF32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\nfunction getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (module_or_path === undefined) {\n module_or_path = new URL('spark_rs_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout uvec4 target;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n target = uvec4(0u, 0u, 0u, 0u);\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out vec4 target3;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial target to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize depthTarget to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out uvec4 target2;\nlayout(location = 2) out vec4 target3;\n// layout(location = 0) out vec4 target3;\n// layout(location = 1) out uvec4 target;\n// layout(location = 2) out uvec4 target2;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial targets to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n target2 = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize target3 to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout vec4 target;\n\n{{ GLOBALS }}\n\nvoid computeReadback(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n if ((index >= 0) && (index < targetCount)) {\n computeReadback(index);\n } else {\n target = vec4(0.0, 0.0, 0.0, 0.0);\n }\n}\n","\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool stochastic;\nuniform bool disableFalloff;\nuniform float falloff;\n\nuniform bool splatTexEnable;\nuniform sampler3D splatTexture;\nuniform mat2 splatTexMul;\nuniform vec2 splatTexAdd;\nuniform float splatTexNear;\nuniform float splatTexFar;\nuniform float splatTexMid;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z = dot(vSplatUv, vSplatUv);\n if (!splatTexEnable) {\n if (z > (maxStdDev * maxStdDev)) {\n discard;\n }\n } else {\n vec2 uv = splatTexMul * vSplatUv + splatTexAdd;\n float ndcZ = vNdc.z;\n float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near));\n float clampedFar = max(splatTexFar, splatTexNear);\n float clampedDepth = clamp(depth, splatTexNear, clampedFar);\n float logDepth = log2(clampedDepth + 1.0);\n float logNear = log2(splatTexNear + 1.0);\n float logFar = log2(clampedFar + 1.0);\n\n float texZ;\n if (splatTexMid > 0.0) {\n float clampedMid = clamp(splatTexMid, splatTexNear, clampedFar);\n float logMid = log2(clampedMid + 1.0);\n texZ = (clampedDepth <= clampedMid) ?\n (0.5 * ((logDepth - logNear) / (logMid - logNear))) :\n (0.5 * ((logDepth - logMid) / (logFar - logMid)) + 0.5);\n } else {\n texZ = (logDepth - logNear) / (logFar - logNear);\n }\n\n vec4 modulate = texture(splatTexture, vec3(uv, 1.0 - texZ));\n rgba *= modulate;\n }\n\n rgba.a *= mix(1.0, exp(-0.5 * z), falloff);\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n if (stochastic) {\n const bool STEADY = false;\n uint uTime = STEADY ? 0u : floatBitsToUint(time);\n uvec2 coord = uvec2(gl_FragCoord.xy);\n uint state = uTime + 0x9e3779b9u * coord.x + 0x85ebca6bu * coord.y + 0xc2b2ae35u * uint(vSplatIndex);\n state = state * 747796405u + 2891336453u;\n uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u;\n hash = (hash >> 22u) ^ hash;\n float rand = float(hash) / 4294967296.0;\n if (rand < rgba.a) {\n fragColor = vec4(rgba.rgb, 1.0);\n } else {\n discard;\n }\n } else {\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n }\n}\n","\nprecision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nattribute uint splatIndex;\n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\n\nuniform vec2 renderSize;\nuniform uint numSplats;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool stochastic;\nuniform bool enable2DGS;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2DArray packedSplats;\nuniform vec4 rgbMinMaxLnScaleMinMax;\n\nvoid main() {\n // Default to outside the frustum so it's discarded if we return early\n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n if (uint(gl_InstanceID) >= numSplats) {\n return;\n }\n\n ivec3 texCoord;\n if (stochastic) {\n texCoord = ivec3(\n uint(gl_InstanceID) & SPLAT_TEX_WIDTH_MASK,\n (uint(gl_InstanceID) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK,\n (uint(gl_InstanceID) >> SPLAT_TEX_LAYER_BITS)\n );\n } else {\n if (splatIndex == 0xffffffffu) {\n // Special value reserved for \"no splat\"\n return;\n }\n texCoord = ivec3(\n splatIndex & SPLAT_TEX_WIDTH_MASK,\n (splatIndex >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK,\n splatIndex >> SPLAT_TEX_LAYER_BITS\n );\n }\n uvec4 packedData = texelFetch(packedSplats, texCoord, 0);\n\n vec3 center, scales;\n vec4 quaternion, rgba;\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, rgbMinMaxLnScaleMinMax);\n\n if (rgba.a < minAlpha) {\n return;\n }\n bvec3 zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n\n // Compute the view space center of the splat\n vec3 viewCenter = quatVec(renderToViewQuat, center) + renderToViewPos;\n\n // Discard splats behind the camera\n if (viewCenter.z >= 0.0) {\n return;\n }\n\n // Compute the clip space center of the splat\n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n // Discard splats outside near/far planes\n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n // Discard splats more than clipXY times outside the XY frustum\n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n // Record the splat index for entropy\n vSplatIndex = splatIndex;\n\n // Compute view space quaternion of splat\n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vRgba = rgba;\n vSplatUv = position.xy * maxStdDev;\n\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n return;\n }\n\n // Compute NDC center of the splat\n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n\n // Compute the 3D covariance matrix of the splat\n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n mat3 cov3D = RS * transpose(RS);\n\n // Compute the Jacobian of the splat's projection at its center\n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if(isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n // Compute the 2D covariance by projecting the 3D covariance\n // and picking out the XY plane components.\n // Keeping below because we may need it in the future\n // for skinning deformations.\n // mat3 W = transpose(mat3(viewMatrix));\n // mat3 T = W * J;\n // mat3 cov2D = transpose(T) * cov3D * T;\n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n // Optionally pre-blur the splat to match non-antialias optimized splats\n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n // Do convolution with a 0.5-pixel Gaussian for anti-aliasing: sqrt(0.3) ~= 0.5\n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n // Compute anti-aliasing intensity scaling factor\n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n\n // Compute the eigenvalue and eigenvectors of the 2D covariance matrix\n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = normalize(vec2((abs(b) < 0.001) ? 1.0 : b, eigen1 - a));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, maxStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, maxStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n // Compute the NDC coordinates for the ellipsoid's diagonal axes.\n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vRgba = rgba;\n vSplatUv = position.xy * maxStdDev;\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n}\n","const float LN_SCALE_MIN = -12.0;\nconst float LN_SCALE_MAX = 9.0;\n\nconst uint SPLAT_TEX_WIDTH_BITS = 11u;\nconst uint SPLAT_TEX_HEIGHT_BITS = 11u;\nconst uint SPLAT_TEX_DEPTH_BITS = 11u;\nconst uint SPLAT_TEX_LAYER_BITS = SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nconst uint SPLAT_TEX_WIDTH = 1u << SPLAT_TEX_WIDTH_BITS;\nconst uint SPLAT_TEX_HEIGHT = 1u << SPLAT_TEX_HEIGHT_BITS;\nconst uint SPLAT_TEX_DEPTH = 1u << SPLAT_TEX_DEPTH_BITS;\n\nconst uint SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1u;\nconst uint SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1u;\nconst uint SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1u;\n\nconst uint F16_INF = 0x7c00u;\nconst float PI = 3.1415926535897932384626433832795;\n\nconst float INFINITY = 1.0 / 0.0;\nconst float NEG_INFINITY = -INFINITY;\n\nfloat sqr(float x) {\n return x * x;\n}\n\nfloat pow4(float x) {\n float x2 = x * x;\n return x2 * x2;\n}\n\nfloat pow8(float x) {\n float x4 = pow4(x);\n return x4 * x4;\n}\n\nvec3 srgbToLinear(vec3 rgb) {\n return pow(rgb, vec3(2.2));\n}\n\nvec3 linearToSrgb(vec3 rgb) {\n return pow(rgb, vec3(1.0 / 2.2));\n}\n\n// Encode a quaternion (vec4) into a 24‐bit uint with folded octahedral mapping.\nuint encodeQuatOctXy88R8(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float theta = 2.0 * acos(q.w);\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 8 bits (0 to 255)\n uint quantU = uint(clamp(round(u_f * 255.0), 0.0, 255.0));\n uint quantV = uint(clamp(round(v_f * 255.0), 0.0, 255.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 8 bits (0 to 255)\n uint angleInt = uint(clamp(round((theta / 3.14159265359) * 255.0), 0.0, 255.0));\n \n // Pack bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16u) | (quantV << 8u) | quantU;\n}\n\n// Decode a 24‐bit encoded uint into a quaternion (vec4) using the folded octahedral inverse.\nvec4 decodeQuatOctXy88R8(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0xFFu); // bits 0–7\n uint quantV = (encoded >> 8u) & uint(0xFFu); // bits 8–15\n uint angleInt = encoded >> 16u; // bits 16–23\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 255.0;\n float v_f = float(quantV) / 255.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 255.0) * 3.14159265359;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\nuint encodeQuatOctXy1010R12(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float halfTheta = acos(q.w);\n float theta = 2.0 * halfTheta;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 10 bits (0 to 1023)\n uint quantU = uint(clamp(round(u_f * 1023.0), 0.0, 1023.0));\n uint quantV = uint(clamp(round(v_f * 1023.0), 0.0, 1023.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 12 bits (0 to 4095)\n uint angleInt = uint(clamp(round((theta / PI) * 4095.0), 0.0, 4095.0));\n \n // Pack bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20u) | (quantV << 10u) | quantU;\n}\n\nvec4 decodeQuatOctXy1010R12(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0x3FFu); // bits 0–9\n uint quantV = (encoded >> 10u) & uint(0x3FFu); // bits 10–19\n uint angleInt = encoded >> 20u; // bits 20–31\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 1023.0;\n float v_f = float(quantV) / 1023.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 4095.0) * PI;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplatEncoding(\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n uint uQuat = encodeQuatOctXy88R8(quaternion);\n // uint uQuat = encodeQuatXyz888(quaternion);\n // uint uQuat = encodeQuatEulerXyz888(quaternion);\n uvec3 uQuat3 = uvec3(uQuat & 0xffu, (uQuat >> 8u) & 0xffu, (uQuat >> 16u) & 0xffu);\n\n // Encode scales in three uint8s, where 0=>0.0 and 1..=255 stores log scale\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n uvec3 uScales = uvec3(\n (scales.x == 0.0) ? 0u : uint(round(clamp((log(scales.x) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.y == 0.0) ? 0u : uint(round(clamp((log(scales.y) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.z == 0.0) ? 0u : uint(round(clamp((log(scales.z) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u\n );\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) | (uQuat3.x << 16u) | (uQuat3.y << 24u);\n uint word3 = uScales.x | (uScales.y << 8u) | (uScales.z << 16u) | (uQuat3.z << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplat(vec3 center, vec3 scales, vec4 quaternion, vec4 rgba) {\n return packSplatEncoding(center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nvoid unpackSplatEncoding(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec4(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu)\n ).xyz;\n\n uvec3 uScales = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n scales = vec3(\n (uScales.x == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.x - 1u) * lnScaleScale),\n (uScales.y == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.y - 1u) * lnScaleScale),\n (uScales.z == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.z - 1u) * lnScaleScale)\n );\n\n\n uint uQuat = ((word2 >> 16u) & 0xFFFFu) | ((word3 >> 8u) & 0xFF0000u);\n quaternion = decodeQuatOctXy88R8(uQuat);\n // quaternion = decodeQuatXyz888(uQuat);\n // quaternion = decodeQuatEulerXyz888(uQuat);\n}\n\n// Unpack a Gsplat from a uvec4\nvoid unpackSplat(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nuvec4 packSplatCovEncoding(\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 255.0 / (2.0 * (lnScaleMax - lnScaleMin));\n uvec3 uXxyyzz = uvec3(round(clamp((log(xxyyzz) - 2.0 * lnScaleMin) * diagScale, 0.0, 255.0)));\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n ivec3 iXyxzyzCor = ivec3(round(xyxzyzCor * 127.0));\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) |\n ((uint(iXyxzyzCor.y) & 0xffu) << 16u) |\n ((uint(iXyxzyzCor.z) & 0xffu) << 24u);\n uint word3 =\n uXxyyzz.x | (uXxyyzz.y << 8u) | (uXxyyzz.z << 16u) |\n ((uint(iXyxzyzCor.x) & 0xffu) << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\nvoid unpackSplatCovEncoding(uvec4 packedData, out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec3(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu).x\n );\n\n uvec3 uXxyyzz = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n ivec3 iXyxzyzCor = ivec3(int(word3) >> 24, int(word2 << 8u) >> 24, int(word2) >> 24);\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 2.0 * (lnScaleMax - lnScaleMin) / 255.0;\n xxyyzz = exp(2.0 * lnScaleMin + vec3(uXxyyzz) * diagScale);\n\n vec3 xyxzyzCor = vec3(iXyxzyzCor) / 127.0;\n xyxzyz = xyxzyzCor * vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExtCov(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, rgba.b));\n packedData2.x = packHalf2x16(rgba.rg);\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n xyxzyzCor = sign(xyxzyzCor) * clamp(log(abs(xyxzyzCor)), -100.0, -0.0000001);\n xxyyzz = log(xxyyzz);\n\n packedData2.y = packHalf2x16(vec2(xxyyzz.x, xxyyzz.y));\n packedData2.z = packHalf2x16(vec2(xxyyzz.z, xyxzyzCor.x));\n packedData2.w = packHalf2x16(vec2(xyxzyzCor.y, xyxzyzCor.z));\n}\n\nvoid unpackSplatExtCov(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n\n vec2 ab = unpackHalf2x16(packedData.w);\n vec2 rg = unpackHalf2x16(packedData2.x);\n rgba = vec4(rg, ab.y, ab.x);\n\n vec2 xxyy = unpackHalf2x16(packedData2.y);\n vec2 zzxy = unpackHalf2x16(packedData2.z);\n vec2 xzyz = unpackHalf2x16(packedData2.w);\n xxyyzz = exp(vec3(xxyy.x, xxyy.y, zzxy.x));\n xyxzyz = vec3(zzxy.y, xzyz.x, xzyz.y);\n xyxzyz = -sign(xyxzyz) * exp(-abs(xyxzyz));\n xyxzyz *= vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExt(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, 0.0));\n\n packedData2.x = packHalf2x16(rgba.rg);\n packedData2.y = packHalf2x16(vec2(rgba.b, log(scales.x)));\n packedData2.z = packHalf2x16(log(scales.yz));\n packedData2.w = encodeQuatOctXy1010R12(quaternion);\n}\n\nvec4 unpackSplatExtCenterAlpha(uvec4 packedData) {\n return vec4(\n uintBitsToFloat(packedData.x),\n uintBitsToFloat(packedData.y),\n uintBitsToFloat(packedData.z),\n unpackHalf2x16(packedData.w).x\n );\n}\n\nfloat unpackSplatExtAlpha(uvec4 packedData) {\n return unpackHalf2x16(packedData.w).x;\n}\n\nvoid unpackSplatExt(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n rgba.a = unpackHalf2x16(packedData.w).x;\n\n rgba.rg = unpackHalf2x16(packedData2.x);\n vec2 split = unpackHalf2x16(packedData2.y);\n rgba.b = split.x;\n scales.x = exp(split.y);\n scales.yz = exp(unpackHalf2x16(packedData2.z));\n quaternion = decodeQuatOctXy1010R12(packedData2.w);\n}\n\nuint encodeExtRgb(vec3 rgb) {\n vec3 absRgb = abs(rgb);\n float maxAbs = max(absRgb.r, max(absRgb.g, absRgb.b));\n\n int base = clamp(int(floor(log2(maxAbs))) + 15, 0, 31);\n float divisor = exp2(float(base - 15)) / 255.0;\n\n uvec3 uRgb = uvec3(round(clamp(absRgb / divisor, 0.0, 255.0)));\n uint expSigns = (uint(base) << 3u) | ((rgb.r < 0.0 ? 0x1u : 0u) | (rgb.g < 0.0 ? 0x2u : 0u) | (rgb.b < 0.0 ? 0x4u : 0u));\n return uRgb.r | (uRgb.g << 8u) | (uRgb.b << 16u) | (expSigns << 24u);\n}\n\nvec3 decodeExtRgb(uint encoded) {\n uint biasedBase = (encoded >> 27u) & 0x1fu;\n float divisor = exp2(float(int(biasedBase) - 15)) / 255.0;\n\n vec3 rgb = vec3(uvec3(encoded & 0xffu, (encoded >> 8u) & 0xffu, (encoded >> 16u) & 0xffu));\n rgb *= divisor;\n\n return vec3(\n ((encoded & 0x1000000u) != 0u) ? -rgb.r : rgb.r,\n ((encoded & 0x2000000u) != 0u) ? -rgb.g : rgb.g,\n ((encoded & 0x4000000u) != 0u) ? -rgb.b : rgb.b\n );\n}\n\n// Rotate vector v by quaternion q\nvec3 quatVec(vec4 q, vec3 v) {\n // Rotate vector v by quaternion q\n vec3 t = 2.0 * cross(q.xyz, v);\n return v + q.w * t + cross(q.xyz, t);\n}\n\n// Apply quaternion q1 after quaternion q2\nvec4 quatQuat(vec4 q1, vec4 q2) {\n return vec4(\n q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,\n q1.w * q2.y - q1.x * q2.z + q1.y * q2.w + q1.z * q2.x,\n q1.w * q2.z + q1.x * q2.y - q1.y * q2.x + q1.z * q2.w,\n q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z\n );\n}\n\nmat3 quaternionToMatrix(vec4 q) {\n return mat3(\n (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n (2.0 * (q.x * q.y + q.w * q.z)),\n (2.0 * (q.x * q.z - q.w * q.y)),\n (2.0 * (q.x * q.y - q.w * q.z)),\n (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n (2.0 * (q.y * q.z + q.w * q.x)),\n (2.0 * (q.x * q.z + q.w * q.y)),\n (2.0 * (q.y * q.z - q.w * q.x)),\n (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\nmat3 scaleQuaternionToMatrix(vec3 s, vec4 q) {\n // Compute the matrix of scaling by s then rotating by q\n return mat3(\n s.x * (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n s.x * (2.0 * (q.x * q.y + q.w * q.z)),\n s.x * (2.0 * (q.x * q.z - q.w * q.y)),\n s.y * (2.0 * (q.x * q.y - q.w * q.z)),\n s.y * (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n s.y * (2.0 * (q.y * q.z + q.w * q.x)),\n s.z * (2.0 * (q.x * q.z + q.w * q.y)),\n s.z * (2.0 * (q.y * q.z - q.w * q.x)),\n s.z * (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\n// Spherical lerp between two quaternions\nvec4 slerp(vec4 q1, vec4 q2, float t) {\n // Compute the cosine of the angle between the two vectors\n float cosHalfTheta = dot(q1, q2);\n\n // If q1=q2 or q1=-q2 then theta = 0 and we can return q1\n if (abs(cosHalfTheta) >= 0.999) {\n return q1;\n }\n \n // If q1 and q2 are more than 180 degrees apart, \n // we need to negate one to get the shortest path\n if (cosHalfTheta < 0.0) {\n q2 = -q2;\n cosHalfTheta = -cosHalfTheta;\n }\n\n // Calculate temporary values\n float halfTheta = acos(cosHalfTheta);\n float sinHalfTheta = sqrt(1.0 - cosHalfTheta * cosHalfTheta);\n\n // Calculate the interpolation factors\n float ratioA = sin((1.0 - t) * halfTheta) / sinHalfTheta;\n float ratioB = sin(t * halfTheta) / sinHalfTheta;\n\n // Calculate the interpolated quaternion\n return q1 * ratioA + q2 * ratioB;\n}\n\nivec3 splatTexCoord(int index) {\n uint x = uint(index) & SPLAT_TEX_WIDTH_MASK;\n uint y = (uint(index) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK;\n uint z = uint(index) >> SPLAT_TEX_LAYER_BITS;\n return ivec3(x, y, z);\n}\n\nivec3 pagedSplatTexCoord(int index) {\n return ivec3(index & 255, (index >> 8) & 255, index >> 16);\n}\n\nvec4 uintToVec4(uint u32) {\n uvec4 bytes = uvec4(\n u32 & 0xFFu,\n (u32 >> 8u) & 0xFFu,\n (u32 >> 16u) & 0xFFu,\n (u32 >> 24u) & 0xFFu\n );\n return vec4(bytes) / 255.0;\n}\n\nvec4 floatToVec4(float f) {\n uint u32 = floatBitsToUint(f);\n return uintToVec4(u32);\n}\n\nvec3 debugColorHue(uint i) {\n // Golden ratio conjugate; spreads hues evenly\n float hue = fract(float(i) * 0.61803398875);\n // HSV to RGB with fixed S/V\n vec3 rgb = clamp(abs(mod(hue*6.0 + vec3(0.0,4.0,2.0), 6.0) - 3.0) - 1.0, 0.0, 1.0);\n return mix(vec3(1.0), rgb, 0.85); // saturation ~0.85, value ~1.0\n}\n","\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\n#include \n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n if (false) {\n // if (debugFlag) {\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n float min1a = min(1.0, a);\n rgba.a = mix(min1a, min1a * exp(exponent), falloff);\n } else {\n // New falloff function, more or less equivalent\n if (rgba.a <= 1.0) {\n rgba.a = mix(rgba.a, rgba.a * exp(-0.5 * z2), falloff);\n } else {\n float a = exp((rgba.a*rgba.a - 1.0) / 2.718281828459045);\n float alpha = 1.0 - pow(1.0 - exp(-0.5 * z2), a);\n rgba.a = mix(1.0, alpha, falloff);\n }\n }\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n\n #include \n}\n","\nprecision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\nflat out float adjustedStdDev;\n\n// uniform uint numSplats;\nuniform vec2 renderSize;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform mat3 renderToViewBasis;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform bool enableExtSplats;\nuniform bool enableCovSplats;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool enable2DGS;\nuniform bool lodInflate;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2D ordering;\nuniform usampler2DArray extSplats;\nuniform usampler2DArray extSplats2;\n\n// Required by logdepthbuf_pars_vertex (normally defined in three.js #include )\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == -1.0;\n}\n\n#include \n\nvoid main() {\n // Default to outside the frustum so it's discarded if we return early\n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n ivec2 orderingCoord = ivec2((gl_InstanceID >> 2) & 4095, gl_InstanceID >> 14);\n uint splatIndex = texelFetch(ordering, orderingCoord, 0)[gl_InstanceID & 3];\n if (splatIndex == 0xffffffffu) {\n // Special value reserved for \"no splat\"\n return;\n }\n\n ivec3 texCoord = splatTexCoord(int(splatIndex));\n vec3 center, scales, xxyyzz, xyxzyz;\n vec4 quaternion, rgba;\n mat3 cov3D;\n bvec3 zeroScales = bvec3(false);\n\n if (enableExtSplats) {\n uvec4 ext1 = texelFetch(extSplats, texCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if ((alpha == 0.0) || (alpha < minAlpha)) {\n return;\n }\n uvec4 ext2 = texelFetch(extSplats2, texCoord, 0);\n\n if (!enableCovSplats) {\n unpackSplatExt(ext1, ext2, center, scales, quaternion, rgba);\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatExtCov(ext1, ext2, center, rgba, xxyyzz, xyxzyz);\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n } else {\n uvec4 packedData = texelFetch(extSplats, texCoord, 0);\n if (!enableCovSplats) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatCovEncoding(packedData, center, rgba, xxyyzz, xyxzyz, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n\n rgba.a *= 2.0;\n if ((rgba.a == 0.0) || (rgba.a < minAlpha)) {\n return;\n }\n }\n\n adjustedStdDev = maxStdDev;\n if (rgba.a > 1.0) {\n // Stretch 1..2 to 1..5\n rgba.a = min(rgba.a * 4.0 - 3.0, 5.0);\n\n if (lodInflate) {\n // Adjust size to componsate for loss of opacity\n float opacity = exp((rgba.a * rgba.a - 1.0) / 2.718281828459045);\n float rescale = pow(opacity, 1.0 / 3.0);\n scales *= rescale;\n rgba.a = 1.0;\n }\n\n // Expand the maximum std dev to approximately cover the larger range\n adjustedStdDev = maxStdDev + 0.7 * (rgba.a - 1.0);\n }\n\n // Compute the view space center of the splat\n vec3 viewCenter = (!enableCovSplats ? quatVec(renderToViewQuat, center) : (renderToViewBasis * center)) + renderToViewPos;\n\n // Discard splats behind the camera\n if (viewCenter.z >= 0.0) {\n return;\n }\n\n // Compute the clip space center of the splat\n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n // Discard splats outside near/far planes\n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n // Discard splats more than clipXY times outside the XY frustum\n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n vRgba = rgba;\n vSplatUv = position.xy * adjustedStdDev;\n\n // Record the splat index for entropy\n vSplatIndex = splatIndex;\n\n if (!enableCovSplats) {\n // Compute view space quaternion of splat\n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n\n #include \n return;\n }\n\n // Compute the 3D covariance matrix of the splat\n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n cov3D = RS * transpose(RS);\n } else {\n cov3D = mat3(\n xxyyzz.x, xyxzyz.x, xyxzyz.y,\n xyxzyz.x, xxyyzz.y, xyxzyz.z,\n xyxzyz.y, xyxzyz.z, xxyyzz.z\n );\n cov3D = renderToViewBasis * cov3D * transpose(renderToViewBasis);\n }\n\n // Compute the Jacobian of the splat's projection at its center\n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if (isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n // Compute the 2D covariance by projecting the 3D covariance\n // and picking out the XY plane components.\n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n // Optionally pre-blur the splat to match non-antialias optimized splats\n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n // Do convolution with a 0.5-pixel Gaussian for anti-aliasing: sqrt(0.3) ~= 0.5\n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n // Compute anti-aliasing intensity scaling factor\n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n vRgba.a = rgba.a;\n\n // Compute the eigenvalue and eigenvectors of the 2D covariance matrix\n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = (abs(b) > 0.001) ? normalize(vec2(b, eigen1 - a))\n : ((a >= d) ? vec2(1.0, 0.0) : vec2(0.0, 1.0));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n // Compute the NDC coordinates for the ellipsoid's diagonal axes.\n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n\n // Compute NDC center of the splat\n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n\n #include \n}\n","import * as THREE from \"three\";\n\nimport computeUvec4Template from \"./shaders/computeUvec4.glsl\";\nimport computeUvec4Vec4Template from \"./shaders/computeUvec4_Vec4.glsl\";\nimport computeUvec4x2Vec4Template from \"./shaders/computeUvec4x2_Vec4.glsl\";\nimport computeVec4Template from \"./shaders/computeVec4.glsl\";\nimport oldSplatFragment from \"./shaders/oldSplatFragment.glsl\";\nimport oldSplatVertex from \"./shaders/oldSplatVertex.glsl\";\nimport splatDefines from \"./shaders/splatDefines.glsl\";\nimport splatFragment from \"./shaders/splatFragment.glsl\";\nimport splatVertex from \"./shaders/splatVertex.glsl\";\n\nlet shaders: Record | null = null;\n\nexport function getShaders(): Record {\n if (!shaders) {\n // @ts-ignore\n THREE.ShaderChunk.splatDefines = splatDefines;\n shaders = {\n oldSplatVertex,\n oldSplatFragment,\n splatVertex,\n splatFragment,\n computeVec4Template,\n computeUvec4Vec4Template,\n computeUvec4x2Vec4Template,\n computeUvec4Template,\n };\n }\n return shaders;\n}\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { type Dyno, OutputRgba8, dynoBlock } from \"./dyno\";\nimport { DynoProgram, DynoProgramTemplate } from \"./dyno/program\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize } from \"./utils\";\n\n// Readback can be used to run a Dyno program that maps an index to a 32-bit\n// RGBA8 value, which is the only allowed, portable readback format for WebGL2.\n// Using data packing and conversion you can read back any 32-bit value, which\n// Spark uses to read back 2 float16 Gsplat distance values per index.\n\nexport type Rgba8Readback = Dyno<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n\n// Readback can be performed with various typed buffers, making it convenient\n// to encode readback data in a variety of formats.\n\nexport type ReadbackBuffer =\n | ArrayBuffer\n | Uint8Array\n | Uint8ClampedArray\n | Int8Array\n | Uint16Array\n | Int16Array\n | Uint32Array\n | Int32Array\n | Float32Array;\n\nexport class Readback {\n renderer?: THREE.WebGLRenderer;\n target?: THREE.WebGLArrayRenderTarget;\n capacity: number;\n count: number;\n\n constructor({ renderer }: { renderer?: THREE.WebGLRenderer } = {}) {\n this.renderer = renderer;\n this.capacity = 0;\n this.count = 0;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n }\n\n // Ensure we have a buffer large enough for the readback of count indices.\n // Pass in previous bufer of the desired type.\n static ensureBuffer(count: number, buffer: B): B {\n // Readback is performed in a 2D array of pixels, so round up with SPLAT_TEX_WIDTH\n const roundedCount =\n Math.ceil(Math.max(1, count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const bytes = roundedCount * 4;\n if (buffer.byteLength >= bytes) {\n return buffer;\n }\n\n // Need a larger buffer, create a new one of the same type\n const newBuffer = new ArrayBuffer(bytes);\n if (buffer instanceof ArrayBuffer) {\n return newBuffer as B;\n }\n\n const ctor = buffer.constructor as { new (arrayBuffer: ArrayBuffer): B };\n return new ctor(newBuffer) as B;\n }\n\n ensureBuffer(count: number, buffer: B): B {\n return Readback.ensureBuffer(count, buffer);\n }\n\n // Ensure our render target is large enough for the readback of capacity indices.\n ensureCapacity(capacity: number) {\n const { width, height, depth, maxSplats } = getTextureSize(capacity);\n if (!this.target || maxSplats > this.capacity) {\n this.dispose();\n this.capacity = maxSplats;\n\n // The only portable readback format for WebGL2 is RGBA8\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAFormat;\n this.target.texture.type = THREE.UnsignedByteType;\n this.target.texture.internalFormat = \"RGBA8\";\n this.target.scissorTest = true;\n }\n }\n\n // Get a program and THREE.RawShaderMaterial for a given Rgba8Readback,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(reader: Rgba8Readback): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = Readback.readbackProgram.get(reader);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n reader.inputs.index = index;\n const rgba8 = new OutputRgba8({ rgba8: reader.outputs.rgba8 });\n return { rgba8 };\n },\n );\n if (!Readback.programTemplate) {\n Readback.programTemplate = new DynoProgramTemplate(\n getShaders().computeVec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { rgba8: \"target\" },\n template: Readback.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n Readback.readbackProgram.set(reader, program);\n }\n\n const material = program.prepareMaterial();\n Readback.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private process({\n count,\n material,\n }: { count: number; material: THREE.RawShaderMaterial }) {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n // Run the program in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of indices.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = 0;\n material.uniforms.targetCount.value = count;\n let baseIndex = 0;\n\n // Keep generating layers until completed count items\n while (baseIndex < count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((count - layerBase) / SPLAT_TEX_WIDTH),\n );\n material.uniforms.targetLayer.value = layer;\n\n // Render the desired portion of the layer\n this.target.scissor.set(0, 0, SPLAT_TEX_WIDTH, layerYEnd);\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n Readback.fullScreenQuad.render(renderer);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.count = count;\n }\n\n private async read({\n readback,\n }: { readback: B }): Promise {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(this.count / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(\n readback instanceof ArrayBuffer ? readback : readback.buffer,\n );\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < this.count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((this.count - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n renderer.setRenderTarget(this.target, layer);\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n const promise = renderer?.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n );\n promises.push(promise);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n // const gl = renderer.getContext() as WebGL2RenderingContext;\n // gl.flush();\n return Promise.all(promises).then(() => readback);\n }\n\n // Perform render operation to run the Rgba8Readback program\n // but don't perform the readback yet.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer?: THREE.WebGLRenderer }) {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n this.process({ count, material });\n this.resetRenderState(this.renderer, renderState);\n }\n\n // Perform a readback of the render target, returning a buffer of the\n // given type.\n async readback({\n readback,\n }: { readback: B }): Promise {\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n const renderState = this.saveRenderState(this.renderer);\n const promise = this.read({ readback });\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n // Perform a render and readback operation for the given Rgba8Readback,\n // and readback buffer (call ensureBuffer first).\n async renderReadback({\n reader,\n count,\n renderer,\n readback,\n }: {\n reader: Rgba8Readback;\n count: number;\n renderer?: THREE.WebGLRenderer;\n readback: B;\n }): Promise {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n\n // Generate output\n this.process({ count, material });\n\n // Initiate readback\n const promise = this.read({ readback });\n\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n getTexture(): THREE.DataArrayTexture | undefined {\n return this.target?.texture;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for Rgba8Readback programs\n static readbackProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n}\n","import * as THREE from \"three\";\n\nimport { DynoPackedSplats, type PackedSplats } from \"./PackedSplats\";\nimport { Readback, type Rgba8Readback } from \"./Readback\";\nimport { SPLAT_TEX_WIDTH } from \"./defines\";\nimport {\n Dyno,\n type DynoBlock,\n DynoInt,\n DynoUniform,\n type DynoVal,\n add,\n dynoBlock,\n readPackedSplatRange,\n splitGsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize } from \"./utils\";\n\n// An RgbaArray is a collection of ordered RGBA8 values, which can be used as a dyno\n// data source, for example for recoloring Gsplats via SplatMesh.splatRgba.\n// It can be instantiated from a Uint8Array of RGBA8 values, or it can be\n// generated using a Rgba8Readback dyno program.\n\nexport type RgbaArrayOptions = {\n // Reserve space for at least this many RGBA values.\n capacity?: number;\n // Use the provided array of RGBA8 values as the source.\n array?: Uint8Array;\n // The number of actual RGBA8 values in the array.\n count?: number;\n};\n\nexport class RgbaArray {\n capacity = 0;\n count = 0;\n array: Uint8Array | null = null;\n\n readback: Readback | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source array is updated to have it upload to GPU\n needsUpdate = true;\n\n // Use this as a TRgbaArray in a dyno graph\n dyno: DynoUniform;\n\n constructor(options: RgbaArrayOptions = {}) {\n this.dyno = new DynoUniform({\n key: \"rgbaArray\",\n type: TRgbaArray,\n globals: () => [defineRgbaArray],\n value: {\n texture: RgbaArray.getEmpty(),\n count: 0,\n },\n update: (value) => {\n value.texture = this.getTexture();\n value.count = this.count;\n return value;\n },\n });\n\n if (options.array) {\n // Initialize with given array\n this.array = options.array;\n const splatCount = Math.floor(this.array.length / 4);\n this.capacity = Math.ceil(splatCount / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (this.capacity > splatCount) {\n this.array = new Uint8Array(this.capacity * 4);\n this.array.set(options.array);\n }\n this.count = Math.min(\n splatCount,\n options.count ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.capacity = options.capacity ?? 0;\n this.count = 0;\n }\n }\n\n // Free up resources\n dispose() {\n if (this.readback) {\n this.readback.dispose();\n this.readback = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source = null;\n }\n }\n\n // Ensure that our array is large enough to hold capacity RGBA8 values.\n ensureCapacity(capacity: number): Uint8Array {\n if (!this.array || capacity > (this.array?.length ?? 0) / 4) {\n this.capacity = getTextureSize(capacity).maxSplats;\n const newArray = new Uint8Array(this.capacity * 4);\n if (this.array) {\n // Copy over existing data\n newArray.set(this.array);\n }\n this.array = newArray;\n }\n return this.array;\n }\n\n // Get the THREE.DataArrayTexture from either the readback or the source.\n getTexture(): THREE.DataArrayTexture {\n let texture = this.readback?.getTexture();\n if (this.source || this.array) {\n texture = this.maybeUpdateSource();\n }\n return texture ?? RgbaArray.getEmpty();\n }\n\n // Create or get a THREE.DataArrayTexture from the data array.\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.array) {\n throw new Error(\"No array\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.capacity !== width * height * depth) {\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n const { width, height, depth } = getTextureSize(this.capacity);\n this.source = new THREE.DataArrayTexture(\n this.array as Uint8Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAFormat;\n this.source.type = THREE.UnsignedByteType;\n this.source.internalFormat = \"RGBA8\";\n this.source.needsUpdate = true;\n } else if (this.array.buffer !== this.source.image.data.buffer) {\n this.source.image.data = new Uint8Array(this.array.buffer);\n }\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n // Generate the RGBA8 values from a Rgba8Readback dyno program.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer: THREE.WebGLRenderer }) {\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n this.readback.render({ reader, count, renderer });\n this.capacity = this.readback.capacity;\n this.count = this.readback.count;\n }\n\n // Extract the RGBA8 values from a PackedSplats collection.\n fromPackedSplats({\n packedSplats,\n base,\n count,\n renderer,\n }: {\n packedSplats: PackedSplats;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n const { dynoSplats, dynoBase, dynoCount, reader } = RgbaArray.makeDynos();\n dynoSplats.packedSplats = packedSplats;\n dynoBase.value = base;\n dynoCount.value = count;\n this.render({ reader, count, renderer });\n return this;\n }\n\n // Read back the RGBA8 values from the readback buffer.\n async read(): Promise {\n if (!this.readback) {\n throw new Error(\"No readback\");\n }\n if (!this.array || this.array.length < this.count * 4) {\n this.array = new Uint8Array(this.capacity * 4);\n }\n const result = await this.readback.readback({ readback: this.array });\n return result.subarray(0, this.count * 4);\n }\n\n async getArray(): Promise {\n if (this.readback) {\n return await this.read();\n }\n if (this.array) {\n return this.array;\n }\n throw new Error(\"No array\");\n }\n\n private static emptySource: THREE.DataArrayTexture | null = null;\n\n // Can be used where you need an uninitialized THREE.DataArrayTexture like\n // a uniform you will update with the result of this.getTexture() later.\n static getEmpty(): THREE.DataArrayTexture {\n if (!RgbaArray.emptySource) {\n const emptyArray = new Uint8Array(1 * 4);\n RgbaArray.emptySource = new THREE.DataArrayTexture(emptyArray, 1, 1, 1);\n RgbaArray.emptySource.format = THREE.RGBAFormat;\n RgbaArray.emptySource.type = THREE.UnsignedByteType;\n RgbaArray.emptySource.internalFormat = \"RGBA8\";\n RgbaArray.emptySource.needsUpdate = true;\n }\n return RgbaArray.emptySource;\n }\n\n private static dynos: {\n dynoSplats: DynoPackedSplats;\n dynoBase: DynoInt;\n dynoCount: DynoInt;\n reader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n } | null = null;\n\n // Create a dyno program that can extract RGBA8 values from a PackedSplats\n private static makeDynos() {\n if (!RgbaArray.dynos) {\n const dynoSplats = new DynoPackedSplats();\n const dynoBase = new DynoInt({ value: 0 });\n const dynoCount = new DynoInt({ value: 0 });\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n index = add(index, dynoBase);\n const gsplat = readPackedSplatRange(\n dynoSplats,\n index,\n dynoBase,\n dynoCount,\n );\n return { rgba8: splitGsplat(gsplat).outputs.rgba };\n },\n );\n RgbaArray.dynos = { dynoSplats, dynoBase, dynoCount, reader };\n }\n return RgbaArray.dynos;\n }\n}\n\n// Dyno types and definitions\n\nexport const TRgbaArray = { type: \"RgbaArray\" } as { type: \"RgbaArray\" };\n\nexport const defineRgbaArray = unindent(`\n struct RgbaArray {\n sampler2DArray texture;\n int count;\n };\n`);\n\nexport function readRgbaArray(\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal<\"vec4\"> {\n const dyno = new Dyno<\n { rgba: typeof TRgbaArray; index: \"int\" },\n { rgba: \"vec4\" }\n >({\n inTypes: { rgba: TRgbaArray, index: \"int\" },\n outTypes: { rgba: \"vec4\" },\n inputs: { rgba, index },\n globals: () => [defineRgbaArray],\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n if ((${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.rgba} = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n } else {\n ${outputs.rgba} = vec4(0.0, 0.0, 0.0, 0.0);\n }\n `),\n });\n return dyno.outputs.rgba;\n}\n","import * as THREE from \"three\";\n\nimport {\n CovSplat,\n Dyno,\n DynoInt,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { newArray } from \"./utils\";\n\n// Spark provides the ability to apply \"edits\" to Gsplats as part of the standard\n// SplatMesh pipeline. These edits take the form of a sequence of operations,\n// applied one at a time to the set of Gsplats in its packedSplats. Each operation\n// evaluates a 7-dimensional field (RGBA and XYZ displacement) at each point in\n// space that derives from N=1 or more Signed Distance Field shapes (such as spheres,\n// boxes, planes, etc.), blended together and across inside-outisde boundaries.\n\n// The result is a an RGBA,XYZ value for each point in space, which combined with\n// SplatEditRgbaBlendMode.MULTIPLY/SET_RGB/ADD_RGBA can be used to create special\n// effects, for example simulating simple lighting or applying deformations in space,\n// whose parameters can be updated each frame to create animated effects.\n\n// RGBA-XYZ values are computed by blending together values from all SDF shapes using\n// the exponential \"softmax\" function, which is commutative (so blending order within\n// a SplatEdit operation doesn't matter). The parameter SplatEdit.sdfSmooth controls\n// the blending scale between SDF shapes, while SplatEdit.softEdge controls the scale\n// of soft inside-outside shape edit blending. Their default values start at 0.0 and\n// should be increased to soften the effect.\n\n// Note that XYZ displacement values are blended in the same way as RGBA, with a\n// resulting displacement field that can be quite complex but \"softly\" blending\n// between shapes. These RGBA-XYZ edits, along with time-based and overlapping\n// fields can create many interesting animations and special effects, such as\n// rippling leaves in the wind, an angry fire, or a looping water effects. Simply\n// update the SplatEdit and SplatEditSdf objects and the operations will be applied\n// immediately to the Gsplats in the scene.\n\nexport enum SplatEditSdfType {\n // ALL: Affects all points in space\n ALL = \"all\",\n // PLANE: Infinite plane (position, rotation)\n PLANE = \"plane\",\n // SPHERE: Sphere (position, radius)\n SPHERE = \"sphere\",\n // BOX: Rounded box (position, rotation, sizes, radius)\n BOX = \"box\",\n // ELLIPSOID: Ellipsoid (position, rotation, sizes)\n ELLIPSOID = \"ellipsoid\",\n // CYLINDER: Cylinder (position, rotation, radius, size_y)\n CYLINDER = \"cylinder\",\n // CAPSULE: Capsule (position, rotation, radius, size_y)\n CAPSULE = \"capsule\",\n // INFINITE_CONE: Infinite cone (position, rotation, radius=angle)\n INFINITE_CONE = \"infinite_cone\",\n}\n\nfunction sdfTypeToNumber(type: SplatEditSdfType) {\n switch (type) {\n case SplatEditSdfType.ALL:\n return 0;\n case SplatEditSdfType.PLANE:\n return 1;\n case SplatEditSdfType.SPHERE:\n return 2;\n case SplatEditSdfType.BOX:\n return 3;\n case SplatEditSdfType.ELLIPSOID:\n return 4;\n case SplatEditSdfType.CYLINDER:\n return 5;\n case SplatEditSdfType.CAPSULE:\n return 6;\n case SplatEditSdfType.INFINITE_CONE:\n return 7;\n default:\n throw new Error(`Unknown SDF type: ${type}`);\n }\n}\n\nexport enum SplatEditRgbaBlendMode {\n // The RGBA of the splat is multiplied component-wise by the SDF’s\n // RGBA value at that point in space.\n MULTIPLY = \"multiply\",\n // Ignore the Alpha value in the SDF, but set the splat’s RGB to\n // equal the SDF’s RGB value at that point.\n SET_RGB = \"set_rgb\",\n // Add the SDF’s RGBA value at that point to the RGBA value of\n // the Gsplat. This can produce hyper-saturated results, but is useful\n // to easily “light up” areas.\n ADD_RGBA = \"add_rgba\",\n}\n\nfunction rgbaBlendModeToNumber(mode: SplatEditRgbaBlendMode) {\n switch (mode) {\n case SplatEditRgbaBlendMode.MULTIPLY:\n return 0;\n case SplatEditRgbaBlendMode.SET_RGB:\n return 1;\n case SplatEditRgbaBlendMode.ADD_RGBA:\n return 2;\n default:\n throw new Error(`Unknown blend mode: ${mode}`);\n }\n}\n\nexport type SplatEditSdfOptions = {\n // The SDF shape type: ALL, PLANE, SPHERE, BOX, ELLIPSOID, CYLINDER, CAPSULE,\n // or INFINITE_CONE. (default: SplatEditSdfType.SPHERE)\n type?: SplatEditSdfType;\n // Invert the SDF evaluation, swapping inside and outside regions. (default: false)\n invert?: boolean;\n // Opacity / \"alpha\" value used differently by blending modes (default: 1.0)\n opacity?: number;\n // RGB color applied within the shape. (default: new THREE.Color(1.0, 1.0, 1.0))\n color?: THREE.Color;\n // XYZ displacement applied to splat positions inside the shape.\n // (default: new THREE.Vector3(0.0, 0.0, 0.0))\n displace?: THREE.Vector3;\n // Shape-specific size parameter: sphere radius, box corner rounding,\n // cylinder/capsule radius, or for the infinite cone the angle factor\n // (opening half-angle = π/4 × radius).\n radius?: number;\n};\n\nexport class SplatEditSdf extends THREE.Object3D {\n type: SplatEditSdfType;\n invert: boolean;\n opacity: number;\n color: THREE.Color;\n displace: THREE.Vector3;\n radius: number;\n\n constructor(options: SplatEditSdfOptions = {}) {\n super();\n const { type, invert, opacity, color, displace, radius } = options;\n this.type = type ?? SplatEditSdfType.SPHERE;\n this.invert = invert ?? false;\n this.opacity = opacity ?? 1.0;\n this.color = color ?? new THREE.Color(1.0, 1.0, 1.0);\n this.displace = displace ?? new THREE.Vector3(0.0, 0.0, 0.0);\n this.radius = radius ?? 0.0;\n }\n}\n\nexport type SplatEditOptions = {\n // Name of this edit operation. If you omit it, a default \"Edit 1\", \"Edit 2\", ...\n // is assigned.\n name?: string;\n // How the SDF’s RGBA modifies each splat’s RGBA: multiply, overwrite RGB,\n // or add RGBA. (default: MULTIPLY)\n rgbaBlendMode?: SplatEditRgbaBlendMode;\n // Smoothing (in world‐space units) for blending between multiple SDF shapes\n // at their boundaries. (default: 0.0)\n sdfSmooth?: number;\n // Soft‐edge falloff radius (in world‐space units) around each SDF shape’s surface.\n // (default: 0.0)\n softEdge?: number;\n // Invert the SDF evaluation (inside/outside swap). (default: false)\n invert?: boolean;\n // Explicit array of SplatEditSdf objects to include. If null, any child\n // SplatEditSdf instances are used.\n sdfs?: SplatEditSdf[];\n};\n\nexport class SplatEdit extends THREE.Object3D {\n // ordering used to apply SplatEdit operations to Gsplats. This is implicitly\n // increased with each new SplatEdit. Reassigning ordering can be used to\n // reorder the operations.\n ordering: number;\n rgbaBlendMode: SplatEditRgbaBlendMode;\n sdfSmooth: number;\n softEdge: number;\n invert: boolean;\n\n // Optional list of explicit SDFs to including in this edit. If it is null, then\n // any SplatEditSdf children in the scene graph will be added automatically.\n sdfs: SplatEditSdf[] | null;\n\n // The next ordering number to use for a new SplatEdit, auto-incremented\n static nextOrdering = 1;\n\n constructor(options: SplatEditOptions = {}) {\n const {\n name,\n rgbaBlendMode = SplatEditRgbaBlendMode.MULTIPLY,\n sdfSmooth = 0.0,\n softEdge = 0.0,\n invert = false,\n sdfs = null,\n } = options;\n\n super();\n this.rgbaBlendMode = rgbaBlendMode;\n this.sdfSmooth = sdfSmooth;\n this.softEdge = softEdge;\n this.invert = invert;\n this.sdfs = sdfs;\n // Assign and auto-increment unique ordering number for this edit\n this.ordering = SplatEdit.nextOrdering++;\n // Automatically assign a default name if not provided\n this.name = name ?? `Edit ${this.ordering}`;\n }\n\n addSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n this.sdfs = [];\n }\n if (!this.sdfs.includes(sdf)) {\n this.sdfs.push(sdf);\n }\n }\n\n removeSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n return;\n }\n this.sdfs = this.sdfs.filter((s) => s !== sdf);\n }\n}\n\n// Dyno implementation of RGBA-XYZ SDF editing.\n// The SDFs are encoded in a texture while the edits are encoded\n// as a uniform uvec4 array.\n\nexport class SplatEdits {\n // Maximum number of SDFs allocated\n maxSdfs: number;\n // Number of SDFs currently in use\n numSdfs: number;\n // Encoded SDF data\n sdfData: Uint32Array;\n // Float interpretation of SDF data\n sdfFloatData: Float32Array;\n // Texture with encoded SDF data\n sdfTexture: THREE.DataTexture;\n // An SdfArray dyno uniform\n dynoSdfArray: DynoUniform;\n\n // Maximum number of edits allocated\n maxEdits: number;\n // Number of edits currently in use\n numEdits: number;\n // Encoded edit data\n editData: Uint32Array;\n // Float interpretation of edit data\n editFloatData: Float32Array;\n // A dyno uniform for the number of edits\n dynoNumEdits: DynoUniform<\"int\", \"numEdits\">;\n // A dyno uniform for the encoded edits, one uvec4 per edit\n dynoEdits: DynoUniform<\"uvec4\", \"edits\">;\n\n constructor({ maxSdfs, maxEdits }: { maxSdfs?: number; maxEdits?: number }) {\n // Allocate at least 16 SDFs for efficiency\n this.maxSdfs = Math.max(16, maxSdfs ?? 0);\n this.numSdfs = 0;\n\n // Allocate space: 8 x (u)vec4 values per SDF, Uint32 and Float32 arrays\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n this.dynoSdfArray = new DynoUniform({\n key: \"sdfArray\",\n type: SdfArray,\n globals: () => [defineSdfArray],\n value: {\n numSdfs: 0,\n sdfTexture: this.sdfTexture,\n },\n update: (uniform) => {\n uniform.numSdfs = this.numSdfs;\n uniform.sdfTexture = this.sdfTexture;\n return uniform;\n },\n });\n\n // Allocate at least 16 edits slots for efficiency\n this.maxEdits = Math.max(16, maxEdits ?? 0);\n this.numEdits = 0;\n // Allocate space: 1 uvec4 per edit\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoNumEdits = new DynoInt({ value: 0 });\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n }\n\n private newSdfTexture(data: Uint32Array, maxSdfs: number) {\n const texture = new THREE.DataTexture(\n data,\n 8,\n maxSdfs,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n }\n\n private newEdits(data: Uint32Array, maxEdits: number) {\n return new DynoUniform({\n key: \"edits\",\n type: \"uvec4\",\n count: maxEdits,\n globals: () => [defineEdit],\n value: data,\n });\n }\n\n // Ensure our SDF texture and edits uniform array have enough capacity.\n // Reallocate if not.\n private ensureCapacity({\n maxSdfs,\n maxEdits,\n }: { maxSdfs: number; maxEdits: number }): boolean {\n let dynoUpdated = false;\n if (maxSdfs > this.sdfTexture.image.height) {\n this.sdfTexture.dispose();\n // At least double the size to avoid frequent reallocations\n this.maxSdfs = Math.max(this.maxSdfs * 2, maxSdfs);\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n }\n if (maxEdits > (this.dynoEdits.count ?? 0)) {\n // At least double the size to avoid frequent reallocations\n this.maxEdits = Math.max(this.maxEdits * 2, maxEdits);\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n dynoUpdated = true;\n }\n return dynoUpdated;\n }\n\n private updateEditData(offset: number, value: number): boolean {\n // Update an edit uint32 value and return true if it changed\n const updated = this.editData[offset] !== value;\n this.editData[offset] = value;\n return updated;\n }\n\n private updateEditFloatData(offset: number, value: number): boolean {\n // Update an edit float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.editFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.editFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeEdit(\n editIndex: number,\n {\n sdfFirst,\n sdfCount,\n invert,\n rgbaBlendMode,\n softEdge,\n sdfSmooth,\n }: {\n sdfFirst: number;\n sdfCount: number;\n invert: boolean;\n rgbaBlendMode: number;\n softEdge: number;\n sdfSmooth: number;\n },\n ): boolean {\n const base = editIndex * 4;\n let updated = false;\n // Encode the edit fields into the editData array and check if any changed\n updated =\n this.updateEditData(base + 0, rgbaBlendMode | (invert ? 1 << 8 : 0)) ||\n updated;\n updated =\n this.updateEditData(base + 1, sdfFirst | (sdfCount << 16)) || updated;\n updated = this.updateEditFloatData(base + 2, softEdge) || updated;\n updated = this.updateEditFloatData(base + 3, sdfSmooth) || updated;\n return updated;\n }\n\n private updateSdfData(offset: number, value: number): boolean {\n // Update an SDF uint32 value and return true if it changed\n const updated = this.sdfData[offset] !== value;\n this.sdfData[offset] = value;\n return updated;\n }\n\n private updateSdfFloatData(offset: number, value: number): boolean {\n // Update an SDF float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.sdfFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.sdfFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeSdf(\n sdfIndex: number,\n {\n sdfType,\n invert,\n center,\n quaternion,\n scale,\n sizes,\n }: {\n sdfType: number;\n invert?: boolean;\n center?: THREE.Vector3;\n quaternion?: THREE.Quaternion;\n scale?: THREE.Vector3;\n sizes?: THREE.Vector4;\n },\n values: THREE.Vector4[],\n ): boolean {\n // Encode the SDF fields into the sdfData array and check if any changed\n const base = sdfIndex * (8 * 4);\n const flags = sdfType | (invert ? 1 << 8 : 0);\n let updated = false;\n\n updated = this.updateSdfFloatData(base + 0, center?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 1, center?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 2, center?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 3, flags) || updated;\n\n updated = this.updateSdfFloatData(base + 4, quaternion?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 5, quaternion?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 6, quaternion?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 7, quaternion?.w ?? 0) || updated;\n\n updated = this.updateSdfFloatData(base + 8, scale?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 9, scale?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 10, scale?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 11, 0) || updated;\n\n updated = this.updateSdfFloatData(base + 12, sizes?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 13, sizes?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 14, sizes?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 15, sizes?.w ?? 0) || updated;\n\n const nValues = Math.min(4, values.length);\n for (let i = 0; i < nValues; ++i) {\n const vBase = base + 16 + i * 4;\n updated = this.updateSdfFloatData(vBase + 0, values[i].x) || updated;\n updated = this.updateSdfFloatData(vBase + 1, values[i].y) || updated;\n updated = this.updateSdfFloatData(vBase + 2, values[i].z) || updated;\n updated = this.updateSdfFloatData(vBase + 3, values[i].w) || updated;\n }\n return updated;\n }\n\n // Update the SDFs and edits from an array of SplatEdits and their\n // associated SplatEditSdfs, updating it for the dyno shader program.\n update(edits: { edit: SplatEdit; sdfs: SplatEditSdf[] }[]): {\n updated: boolean;\n dynoUpdated: boolean;\n } {\n const sdfCount = edits.reduce((total, { sdfs }) => total + sdfs.length, 0);\n const dynoUpdated = this.ensureCapacity({\n maxEdits: edits.length,\n maxSdfs: sdfCount,\n });\n\n const values = [new THREE.Vector4(), new THREE.Vector4()];\n const center = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const scale = new THREE.Vector3();\n const sizes = new THREE.Vector4();\n\n let sdfIndex = 0;\n let updated = dynoUpdated;\n\n if (edits.length !== this.dynoNumEdits.value) {\n this.dynoNumEdits.value = edits.length;\n this.numEdits = edits.length;\n updated = true;\n }\n\n for (const [editIndex, { edit, sdfs }] of edits.entries()) {\n updated =\n this.encodeEdit(editIndex, {\n sdfFirst: sdfIndex,\n sdfCount: sdfs.length,\n invert: edit.invert,\n rgbaBlendMode: rgbaBlendModeToNumber(edit.rgbaBlendMode),\n softEdge: edit.softEdge,\n sdfSmooth: edit.sdfSmooth,\n }) || updated;\n\n let sdfUpdated = false;\n for (const sdf of sdfs) {\n sizes.set(sdf.scale.x, sdf.scale.y, sdf.scale.z, sdf.radius);\n // Temporarily set the SDF scale to 1.0 to get the world-to-SDF\n // transform without scaling. The SDF treats the scale separately.\n sdf.scale.setScalar(1.0);\n sdf.updateMatrixWorld();\n const worldToSdf = sdf.matrixWorld.clone().invert();\n worldToSdf.decompose(center, quaternion, scale);\n\n sdf.scale.set(sizes.x, sizes.y, sizes.z);\n sdf.updateMatrixWorld();\n\n values[0].set(sdf.color.r, sdf.color.g, sdf.color.b, sdf.opacity);\n values[1].set(sdf.displace.x, sdf.displace.y, sdf.displace.z, 1.0);\n\n sdfUpdated =\n this.encodeSdf(\n sdfIndex,\n {\n sdfType: sdfTypeToNumber(sdf.type),\n invert: sdf.invert,\n center,\n quaternion,\n scale,\n sizes,\n },\n values,\n ) || sdfUpdated;\n\n sdfIndex += 1;\n }\n this.numSdfs = sdfIndex;\n if (sdfUpdated) {\n this.sdfTexture.needsUpdate = true;\n }\n updated ||= sdfUpdated;\n }\n return { updated, dynoUpdated };\n }\n\n // Modify a Gsplat in a dyno shader program using the current edits and SDFs.\n modify(gsplat: DynoVal): DynoVal {\n return applyGsplatRgbaDisplaceEdits(\n gsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n return applyCovSplatRgbaDisplaceEdits(\n covsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n}\n\n// Dyno types and components:\n\n// An SdfArray contains a collection of SDFs encoded in a texture.\n// Each SDF has a type and geometric parameters, but also encodes\n// 4 x vec4 values, which can all be blended across multiple SDFs.\n// The SplatEdit system uses 7 of these 16 values to encode RGBA-XYZ edits,\n// but more can be added, and these SDFs can be used for entirely different\n// purposes as well.\n\nexport const SdfArray = { type: \"SdfArray\" } as { type: \"SdfArray\" };\n\nexport const defineSdfArray = unindent(`\n struct SdfArray {\n int numSdfs;\n usampler2D sdfTexture;\n };\n\n void unpackSdfArray(\n usampler2D sdfTexture, int sdfIndex, out uint flags,\n out vec3 center, out vec4 quaternion, out vec3 scale, out vec4 sizes,\n int numValues, out vec4 values[4]\n ) {\n uvec4 temp = texelFetch(sdfTexture, ivec2(0, sdfIndex), 0);\n flags = temp.w;\n center = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(1, sdfIndex), 0);\n quaternion = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n temp = texelFetch(sdfTexture, ivec2(2, sdfIndex), 0);\n scale = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(3, sdfIndex), 0);\n sizes = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n for (int i = 0; i < numValues; ++i) {\n temp = texelFetch(sdfTexture, ivec2(4 + i, sdfIndex), 0);\n values[i] = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n }\n }\n\n const uint SDF_FLAG_TYPE = 0xFFu;\n const uint SDF_FLAG_INVERT = 1u << 8u;\n\n const uint SDF_TYPE_ALL = 0u;\n const uint SDF_TYPE_PLANE = 1u;\n const uint SDF_TYPE_SPHERE = 2u;\n const uint SDF_TYPE_BOX = 3u;\n const uint SDF_TYPE_ELLIPSOID = 4u;\n const uint SDF_TYPE_CYLINDER = 5u;\n const uint SDF_TYPE_CAPSULE = 6u;\n const uint SDF_TYPE_INFINITE_CONE = 7u;\n\n float evaluateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 outValues[4]\n ) {\n float distanceAccum = (smoothK == 0.0) ? 1.0 / 0.0 : 0.0;\n float maxExp = -1.0 / 0.0;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = vec4(0.0);\n }\n\n uint flags;\n vec3 center, scale;\n vec4 quaternion, sizes;\n vec4 values[4];\n\n int sdfLast = min(sdfFirst + sdfCount, numSdfs);\n for (int index = sdfFirst; index < sdfLast; ++index) {\n unpackSdfArray(sdfTexture, index, flags, center, quaternion, scale, sizes, numValues, values);\n uint sdfType = flags & SDF_FLAG_TYPE;\n vec3 sdfPos = quatVec(quaternion, pos * scale) + center;\n\n float distance;\n switch (sdfType) {\n case SDF_TYPE_ALL:\n distance = -1.0 / 0.0;\n break;\n case SDF_TYPE_PLANE: {\n distance = sdfPos.z;\n break;\n }\n case SDF_TYPE_SPHERE: {\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_BOX: {\n vec3 q = abs(sdfPos) - sizes.xyz + sizes.w;\n distance = length(max(q, 0.0)) + min(max(q.x, max(q.y, q.z)), 0.0) - sizes.w;\n break;\n }\n case SDF_TYPE_ELLIPSOID: {\n vec3 sizes = sizes.xyz;\n float k0 = length(sdfPos / sizes);\n float k1 = length(sdfPos / dot(sizes, sizes));\n distance = k0 * (k0 - 1.0) / k1;\n break;\n }\n case SDF_TYPE_CYLINDER: {\n vec2 d = abs(vec2(length(sdfPos.xz), sdfPos.y)) - sizes.wy;\n distance = min(max(d.x, d.y), 0.0) + length(max(d, 0.0));\n break;\n }\n case SDF_TYPE_CAPSULE: {\n sdfPos.y -= clamp(sdfPos.y, -0.5 * sizes.y, 0.5 * sizes.y);\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_INFINITE_CONE: {\n float angle = 0.25 * PI * sizes.w;\n vec2 c = vec2(sin(angle), cos(angle));\n vec2 q = vec2(length(sdfPos.xy), -sdfPos.z);\n float d = length(q - c * max(dot(q, c), 0.0));\n distance = d * (((q.x * c.y - q.y * c.x) < 0.0) ? -1.0 : 1.0);\n break;\n }\n }\n\n if ((flags & SDF_FLAG_INVERT) != 0u) {\n distance = -distance;\n }\n\n if (smoothK == 0.0) {\n if (distance < distanceAccum) {\n distanceAccum = distance;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = values[i];\n }\n }\n } else {\n float scaledDistance = -distance / smoothK;\n if (scaledDistance > maxExp) {\n float scale = exp(maxExp - scaledDistance);\n distanceAccum *= scale;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] *= scale;\n }\n maxExp = scaledDistance;\n }\n\n float weight = exp(scaledDistance - maxExp);\n distanceAccum += weight;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] += weight * values[i];\n }\n }\n }\n\n if (smoothK == 0.0) {\n return distanceAccum;\n } else {\n // Very distant SDFs may result in 0 accumulation\n if (distanceAccum == 0.0) {\n return 1.0 / 0.0;\n }\n for (int i = 0; i < numValues; ++i) {\n outValues[i] /= distanceAccum;\n }\n return (-log(distanceAccum) - maxExp) * smoothK;\n }\n }\n\n float modulateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 values[4],\n float softEdge, bool invert\n ) {\n float distance = evaluateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, numValues, values);\n if (invert) {\n distance = -distance;\n }\n\n return (softEdge == 0.0) ? ((distance < 0.0) ? 1.0 : 0.0)\n : clamp(-distance / softEdge + 0.5, 0.0, 1.0);\n }\n`);\n\nexport const defineEdit = unindent(`\n const uint EDIT_FLAG_BLEND = 0xFFu;\n const uint EDIT_BLEND_MULTIPLY = 0u;\n const uint EDIT_BLEND_SET_RGB = 1u;\n const uint EDIT_BLEND_ADD_RGBA = 2u;\n const uint EDIT_FLAG_INVERT = 0x100u;\n\n void decodeEdit(\n uvec4 packedEdit, out int sdfFirst, out int sdfCount,\n out bool invert, out uint rgbaBlendMode, out float softEdge, out float sdfSmooth\n ) {\n rgbaBlendMode = packedEdit.x & EDIT_FLAG_BLEND;\n invert = (packedEdit.x & EDIT_FLAG_INVERT) != 0u;\n\n sdfFirst = int(packedEdit.y & 0xFFFFu);\n sdfCount = int(packedEdit.y >> 16u);\n\n softEdge = uintBitsToFloat(packedEdit.z);\n sdfSmooth = uintBitsToFloat(packedEdit.w);\n }\n\n void applyRgbaDisplaceEdit(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, inout vec3 pos,\n float smoothK, float softEdge, bool invert, uint rgbaBlendMode, inout vec4 rgba\n ) {\n vec4 values[4];\n float modulate = modulateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, 2, values, softEdge, invert);\n // On Android, moving values[0] is necessary to work around a compiler bug.\n vec4 sdfRgba = values[0];\n vec4 sdfDisplaceScale = values[1];\n\n vec4 target;\n switch (rgbaBlendMode) {\n case EDIT_BLEND_MULTIPLY:\n target = rgba * sdfRgba;\n break;\n case EDIT_BLEND_SET_RGB:\n target = vec4(sdfRgba.rgb, rgba.a * sdfRgba.a);\n break;\n case EDIT_BLEND_ADD_RGBA:\n target = rgba + sdfRgba;\n break;\n default:\n // Debug output if blend mode not set\n target = vec4(fract(pos), 1.0);\n }\n rgba = mix(rgba, target, modulate);\n pos += sdfDisplaceScale.xyz * modulate;\n }\n\n void applyPackedRgbaDisplaceEdit(uvec4 packedEdit, usampler2D sdfTexture, int numSdfs, inout vec3 pos, inout vec4 rgba) {\n int sdfFirst, sdfCount;\n bool invert;\n uint rgbaBlendMode;\n float softEdge, sdfSmooth;\n decodeEdit(packedEdit, sdfFirst, sdfCount, invert, rgbaBlendMode, softEdge, sdfSmooth);\n applyRgbaDisplaceEdit(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, sdfSmooth, softEdge, invert, rgbaBlendMode, rgba);\n }\n`);\n\nfunction applyGsplatRgbaDisplaceEdits(\n gsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n gsplat: typeof Gsplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { gsplat: typeof Gsplat }\n >({\n inTypes: {\n gsplat: Gsplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { gsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${gsplat}.center, ${gsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nfunction applyCovSplatRgbaDisplaceEdits(\n covsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n covsplat: typeof CovSplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { covsplat: typeof CovSplat }\n >({\n inTypes: {\n covsplat: CovSplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { covsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${covsplat}.center, ${covsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nconst tempFloat32 = new Float32Array(1);\n","import * as THREE from \"three\";\nimport type { SplatEdit } from \"./SplatEdit\";\nimport {\n CovSplat,\n Dyno,\n DynoFloat,\n DynoMat3,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n Gsplat,\n add,\n dynoBlock,\n mul,\n transformDir,\n transformGsplat,\n transformPos,\n unindentLines,\n} from \"./dyno\";\n\n// A GsplatGenerator is a dyno program that maps an index to a Gsplat's properties\n\nexport type GsplatGenerator = Dyno<{ index: \"int\" }, { gsplat: typeof Gsplat }>;\n\nexport type CovSplatGenerator = Dyno<\n { index: \"int\" },\n { covsplat: typeof CovSplat }\n>;\n\n// A GsplatModifier is a dyno program that inputs a Gsplat, modifies, and outputs it\n\nexport type GsplatModifier = Dyno<\n { gsplat: typeof Gsplat },\n { gsplat: typeof Gsplat }\n>;\n\nexport type CovSplatModifier = Dyno<\n { covsplat: typeof CovSplat },\n { covsplat: typeof CovSplat }\n>;\n\n// A SplatModifier is a utility class to apply a GsplatModifier to\n// a GsplatGenerator pipeline, caching the combined result for efficiency.\n\nexport class SplatModifier {\n modifier: GsplatModifier;\n cache: Map;\n\n constructor(modifier: GsplatModifier) {\n this.modifier = modifier;\n this.cache = new Map();\n }\n\n apply(generator: GsplatGenerator): GsplatGenerator {\n let modified = this.cache.get(generator);\n if (!modified) {\n modified = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n const { gsplat } = generator.apply({ index });\n return this.modifier.apply({ gsplat });\n },\n );\n this.cache.set(generator, modified);\n }\n return modified;\n }\n}\n\n// A SplatTransformer is a utility class to apply a transform to a Gsplat\n// via a scale, rotation, and translation. Scale is a single float because\n// anisotropic scaling of Gsplats is not supported.\n\nexport class SplatTransformer {\n scale: DynoFloat;\n rotate: DynoVec4;\n translate: DynoVec3;\n\n // Create the dyno uniforms that parameterize the transform, setting them\n // to initial values that are different from any valid transform.\n constructor() {\n this.scale = new DynoFloat({ value: Number.NEGATIVE_INFINITY });\n this.rotate = new DynoVec4({\n value: new THREE.Quaternion(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n this.translate = new DynoVec3({\n value: new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformPos(position, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformDir(dir, {\n rotate: this.rotate,\n });\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyGsplat(gsplat: DynoVal): DynoVal {\n return transformGsplat(gsplat, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const scale = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const position = new THREE.Vector3();\n transform.decompose(position, quaternion, scale);\n const newScale = (scale.x + scale.y + scale.z) / 3;\n\n let updated = false;\n if (newScale !== this.scale.value) {\n this.scale.value = newScale;\n updated = true;\n }\n if (!position.equals(this.translate.value)) {\n this.translate.value.copy(position);\n updated = true;\n }\n if (!quaternion.equals(this.rotate.value)) {\n this.rotate.value.copy(quaternion);\n updated = true;\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\nexport class CovSplatTransformer {\n basis: DynoMat3<\"basis\", THREE.Matrix3>;\n offset: DynoVec3;\n\n constructor() {\n this.basis = new DynoMat3({ value: new THREE.Matrix3() });\n this.offset = new DynoVec3({ value: new THREE.Vector3() });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n const rebased = mul(this.basis, position);\n return add(rebased, this.offset);\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return mul(this.basis, dir);\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyCovSplat(covsplat: DynoVal): DynoVal {\n return new Dyno({\n inTypes: { covsplat: CovSplat, basis: \"mat3\", offset: \"vec3\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covsplat, basis: this.basis, offset: this.offset },\n statements: ({ inputs, outputs }) => {\n const { covsplat, basis, offset } = inputs;\n if (!covsplat || !basis || !offset) {\n return [`${outputs.covsplat}.flags = 0u;`];\n }\n return unindentLines(`\n ${outputs.covsplat}.flags = 0u;\n if (isCovSplatActive(${covsplat}.flags)) {\n ${outputs.covsplat}.flags = ${covsplat}.flags;\n ${outputs.covsplat}.index = ${covsplat}.index;\n ${outputs.covsplat}.rgba = ${covsplat}.rgba;\n\n ${outputs.covsplat}.center = ${basis} * ${covsplat}.center + ${offset};\n \n mat3 cov = mat3(\n ${covsplat}.xxyyzz.x, ${covsplat}.xyxzyz.x, ${covsplat}.xyxzyz.y,\n ${covsplat}.xyxzyz.x, ${covsplat}.xxyyzz.y, ${covsplat}.xyxzyz.z,\n ${covsplat}.xyxzyz.y, ${covsplat}.xyxzyz.z, ${covsplat}.xxyyzz.z\n );\n cov = ${basis} * cov * transpose(${basis});\n ${outputs.covsplat}.xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n ${outputs.covsplat}.xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n `);\n },\n }).outputs.covsplat;\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const basis = new THREE.Matrix3().setFromMatrix4(transform);\n const offset = new THREE.Vector3().setFromMatrixColumn(transform, 3);\n\n const updated =\n !basis.equals(this.basis.value) || !offset.equals(this.offset.value);\n if (updated) {\n this.basis.value.copy(basis);\n this.offset.value.copy(offset);\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\n// SplatGenerator is an Object3D that can be placed anywhere in the scene\n// to generate Gsplats into the world for SparkRenderer. All Gsplats from\n// SplatGenerators across the scene will be accumulated into a single\n// SplatAccumulator, which are sorted and rendered together.\n//\n// Each SplatGenerator has two main properties:\n// - numSplats: the number of Gsplats to generate\n// - generator: a GsplatGenerator dyno program that maps a splat index\n// to a Gsplat's properties\n// Each of these properties can be changed at anytime, however changing\n// numSplats means we no longer have a correspondence between Gsplats\n// in successive frames, meaning we can't reuse the previous Gsplat sort\n// order. Similarly, changing the generator requires re-generating the\n// shader program, which will trigger a GPU shader compilation the first\n// time (possibly a perceptible \"hickup\" in the framerate) but is cached\n// subsequence times if the generator is the same as one that was used previously.\n//\n// A SplatGenerator also has a custom frameUpdate function that is called\n// on each execution, allowing you to update uniforms or other parameters that\n// affect the generation. If the Gsplats are changed, you must call\n// updateVersion() (alternatively, set needsUpdate to true) to trigger a\n// re-generation of the Gsplats for this SplatGenerator.\n\nexport interface FrameUpdateContext {\n renderer: THREE.WebGLRenderer;\n object: SplatGenerator;\n time: number;\n deltaTime: number;\n viewToWorld: THREE.Matrix4;\n camera?: THREE.Camera;\n renderSize?: THREE.Vector2;\n globalEdits: SplatEdit[];\n lodIndices?: { numSplats: number; texture: THREE.DataTexture };\n}\n\nexport class SplatGenerator extends THREE.Object3D {\n numSplats: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n generatorError?: unknown;\n covGeneratorError?: unknown;\n frameUpdate?: (context: FrameUpdateContext) => void;\n version: number;\n mappingVersion: number;\n\n constructor({\n numSplats,\n generator,\n covGenerator,\n construct,\n update,\n }: {\n numSplats?: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n construct?: (object: SplatGenerator) => {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n numSplats?: number;\n frameUpdate?: (context: FrameUpdateContext) => void;\n };\n update?: (context: FrameUpdateContext) => void;\n }) {\n super();\n\n this.numSplats = numSplats ?? 0;\n this.generator = generator;\n this.covGenerator = covGenerator;\n this.frameUpdate = update;\n this.version = 0;\n this.mappingVersion = 0;\n\n if (construct) {\n const constructed = construct(this);\n // If we returned something, update our properties\n Object.assign(this, constructed);\n }\n }\n\n updateVersion() {\n this.version += 1;\n }\n\n updateMappingVersion() {\n this.mappingVersion += 1;\n this.version += 1;\n }\n\n set needsUpdate(value: boolean) {\n if (value) {\n this.updateVersion();\n }\n }\n}\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\nimport { Readback } from \"./Readback\";\nimport { SplatEdit } from \"./SplatEdit\";\nimport {\n type CovSplatGenerator,\n type GsplatGenerator,\n SplatGenerator,\n} from \"./SplatGenerator\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines\";\nimport {\n type CovSplat,\n Dyno,\n DynoBool,\n DynoProgram,\n DynoProgramTemplate,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n combineCovSplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n gsplatToCovSplat,\n mul,\n outputCovSplat,\n outputCovSplatDepth,\n outputExtCovSplat,\n outputExtendedSplat,\n outputPackedSplat,\n outputSplatDepth,\n splitCovSplat,\n splitGsplat,\n sub,\n unindentLines,\n} from \"./dyno\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, threeMrtArray } from \"./utils\";\n\n// A GeneratorMapping describes a Gsplat range that was generated, including\n// which generator and its version number.\nexport type GeneratorMapping = {\n node: SplatGenerator;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n version: number;\n mappingVersion?: number;\n base: number;\n count: number;\n};\n\nexport class SplatAccumulator {\n time = 0;\n deltaTime = 0;\n viewToWorld = new THREE.Matrix4();\n viewOrigin = new THREE.Vector3();\n viewDirection = new THREE.Vector3();\n static viewCenterUniform = new DynoVec3({ value: new THREE.Vector3() });\n static viewDirUniform = new DynoVec3({ value: new THREE.Vector3() });\n static sortRadialUniform = new DynoBool({ value: true });\n maxSplats = 0;\n numSplats = 0;\n target: THREE.WebGLArrayRenderTarget | null = null;\n mapping: GeneratorMapping[] = [];\n version = -1;\n mappingVersion = -1;\n extSplats: boolean;\n covSplats: boolean;\n readback: Readback | null = null;\n readbackSplats: DynoUsampler2DArray<\"extSplats\", THREE.DataArrayTexture>[] =\n [];\n\n constructor({\n extSplats,\n covSplats,\n }: { extSplats?: boolean; covSplats?: boolean } = {}) {\n if (!threeMrtArray) {\n throw new Error(\"Spark requires THREE.js r179 or above\");\n }\n this.extSplats = extSplats ?? true;\n this.covSplats = covSplats ?? false;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = null;\n }\n }\n\n // Returns a THREE.DataArrayTexture representing the NewSplatAccumulator\n // content as 2 x Uint32x4 data array textures (2048 x 2048 x 2048 in size)\n getTextures(): THREE.DataArrayTexture[] {\n if (this.target) {\n return this.target.textures;\n }\n return SplatAccumulator.emptyTextures;\n }\n\n static emptyTexture = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTextures = (() => {\n return [SplatAccumulator.emptyTexture, SplatAccumulator.emptyTexture];\n })();\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Ensures our NewSplatAccumulator.target render target has enough space\n // to generate maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate({ maxSplats }: { maxSplats: number }) {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n this.dispose();\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n format: THREE.RGBAIntegerFormat,\n type: THREE.UnsignedIntType,\n });\n this.target.scissorTest = true;\n\n if (this.extSplats) {\n const target2 = this.target.texture.clone();\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target2, target3];\n } else {\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target3];\n }\n\n return true;\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(\n generator?: GsplatGenerator,\n covGenerator?: CovSplatGenerator,\n ) {\n const theGenerator = generator ?? covGenerator;\n if (!theGenerator) {\n throw new Error(\"Either generator or covGenerator must be provided\");\n }\n\n let program = SplatAccumulator.generatorProgram.get(theGenerator);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n if (generator) {\n generator.inputs.index = index;\n }\n if (covGenerator) {\n covGenerator.inputs.index = index;\n }\n\n if (this.extSplats) {\n if (!this.covSplats) {\n if (generator) {\n const output = outputExtendedSplat(generator.outputs.gsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n if (covGenerator) {\n const output = outputExtCovSplat(covGenerator.outputs.covsplat);\n roots.push(output);\n } else if (generator) {\n const covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n const output = outputExtCovSplat(covsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n }\n } else {\n if (!this.covSplats) {\n if (generator) {\n const centerSubView = sub(\n splitGsplat(generator.outputs.gsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n // Use expanded LoD opacity encoding\n const halfAlpha = mul(\n splitGsplat(generator.outputs.gsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n const gsplat = combineGsplat({\n gsplat: generator.outputs.gsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputPackedSplat(\n gsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n let covsplat: DynoVal;\n if (covGenerator) {\n covsplat = covGenerator.outputs.covsplat;\n } else if (generator) {\n covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n const centerSubView = sub(\n splitCovSplat(covsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n const halfAlpha = mul(\n splitCovSplat(covsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n covsplat = combineCovSplat({\n covsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputCovSplat(\n covsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n }\n if (!generator) {\n throw new Error(\"Generator must be provided\");\n }\n }\n if (generator) {\n const outputDepth = outputSplatDepth(\n generator.outputs.gsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n if (covGenerator) {\n const outputDepth = outputCovSplatDepth(\n covGenerator.outputs.covsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n return undefined;\n },\n );\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: {},\n template: this.extSplats\n ? SplatAccumulator.programExtTemplate\n : SplatAccumulator.programTemplate,\n // consoleLog: true,\n });\n\n SplatAccumulator.generatorProgram.set(theGenerator, program);\n }\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n\n const material = program.prepareMaterial();\n SplatAccumulator.fullScreenQuad.material = material;\n return { program, material };\n }\n\n static programExtTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4x2Vec4Template,\n );\n static programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Vec4Template,\n );\n static generatorProgram = new WeakMap<\n GsplatGenerator | CovSplatGenerator,\n DynoProgram\n >();\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n generate({\n generator,\n covGenerator,\n base,\n count,\n renderer,\n }: {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureGenerate\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(\n generator,\n covGenerator,\n );\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n SplatAccumulator.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial,\n renderSize,\n previous,\n lodInstances,\n }: {\n renderer: THREE.WebGLRenderer;\n scene: THREE.Scene;\n time: number;\n camera: THREE.Camera;\n sortRadial: boolean;\n renderSize: THREE.Vector2;\n previous: SplatAccumulator;\n lodInstances?: Map<\n SplatMesh,\n { numSplats: number; texture: THREE.DataTexture }\n >;\n }) {\n this.viewToWorld.copy(camera.matrixWorld);\n camera.getWorldPosition(this.viewOrigin);\n camera.getWorldDirection(this.viewDirection);\n SplatAccumulator.viewCenterUniform.value.copy(this.viewOrigin);\n SplatAccumulator.viewDirUniform.value.copy(this.viewDirection);\n SplatAccumulator.sortRadialUniform.value = sortRadial;\n\n this.time = time;\n this.deltaTime = time - previous.time;\n\n const allGenerators: SplatGenerator[] = [];\n scene.traverse((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n allGenerators.push(node);\n }\n }\n });\n\n const globalEditsSet = new Set();\n scene.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n let ancestor = node.parent;\n while (ancestor != null && !(ancestor instanceof SplatMesh)) {\n ancestor = ancestor.parent;\n }\n if (ancestor == null) {\n // Not part of a SplatMesh so it's a global edit\n globalEditsSet.add(node);\n }\n }\n });\n const globalEdits = Array.from(globalEditsSet);\n\n for (const object of allGenerators) {\n try {\n object.frameUpdate?.({\n renderer,\n object,\n time: this.time,\n deltaTime: this.deltaTime,\n viewToWorld: this.viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices:\n lodInstances && object instanceof SplatMesh\n ? lodInstances.get(object)\n : undefined,\n });\n } catch (error) {\n console.error(\"frameUpdate error\", error);\n object.generator = undefined;\n object.covGenerator = undefined;\n object.generatorError = error;\n }\n }\n\n const visibleGenerators: SplatGenerator[] = [];\n scene.traverseVisible((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n visibleGenerators.push(node);\n }\n }\n });\n\n const splatCounts = visibleGenerators.map(\n (generator) => generator.numSplats,\n );\n const { maxSplats, mapping: baseCounts } =\n this.generateMapping(splatCounts);\n\n const previousMappings = previous.mapping.reduce((mappings, mapping) => {\n mappings.set(mapping.node, mapping);\n return mappings;\n }, new Map());\n\n this.mapping = [];\n this.numSplats = 0;\n\n baseCounts.forEach(({ base, count }, index) => {\n const node = visibleGenerators[index];\n const previousNode = previousMappings.get(node);\n if (previousNode && previousNode.count !== node.numSplats) {\n node.updateMappingVersion();\n }\n\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n const { version, mappingVersion } = node;\n this.mapping.push({\n node,\n generator,\n covGenerator,\n version,\n mappingVersion,\n base,\n count,\n });\n this.numSplats = Math.max(this.numSplats, base + count);\n }\n });\n const { splatsUpdated, mappingUpdated } = previous.checkVersions(\n this.mapping,\n );\n this.version = previous.version + (splatsUpdated ? 1 : 0);\n this.mappingVersion = previous.mappingVersion + (mappingUpdated ? 1 : 0);\n\n return {\n sameMapping: !mappingUpdated,\n version: this.version,\n mappingVersion: this.mappingVersion,\n visibleGenerators,\n generate: () => {\n this.ensureGenerate({ maxSplats });\n\n for (const { node, base, count } of this.mapping) {\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n this.generate({ generator, covGenerator, base, count, renderer });\n }\n }\n },\n readback: async () => {\n const textures = this.getTextures();\n if (this.readbackSplats.length === 0) {\n this.readbackSplats = [\n new DynoUsampler2DArray({ value: textures[0], key: \"extSplats\" }),\n new DynoUsampler2DArray({ value: textures[1], key: \"extSplats\" }),\n ];\n }\n this.readbackSplats[0].value = textures[0];\n this.readbackSplats[1].value = textures[1];\n\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n const readback = this.readback;\n const words = this.extSplats ? 8 : 4;\n const array = readback.ensureBuffer(\n this.numSplats * words,\n new Uint32Array(0),\n );\n\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n const rgba8 = new Dyno({\n inTypes: {\n index: \"int\",\n extSplats1: \"usampler2DArray\",\n extSplats2: \"usampler2DArray\",\n },\n outTypes: { rgba8: \"vec4\" },\n inputs: {\n index,\n extSplats1: this.readbackSplats[0],\n extSplats2: this.readbackSplats[1],\n },\n statements: ({ inputs, outputs }) => {\n if (this.extSplats) {\n return unindentLines(`\n int indexDiv8 = ${inputs.index} >> 3;\n ivec3 coord = splatTexCoord(indexDiv8);\n uvec4 packedData;\n if ((${inputs.index} & 4) == 0) {\n packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n } else {\n packedData = texelFetch(${inputs.extSplats2}, coord, 0);\n }\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n }\n return unindentLines(`\n int indexDiv4 = ${inputs.index} >> 2;\n ivec3 coord = splatTexCoord(indexDiv4);\n uvec4 packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n },\n }).outputs.rgba8;\n return { rgba8 };\n },\n );\n\n return await readback.renderReadback({\n reader,\n count: this.numSplats * words,\n renderer,\n readback: array,\n });\n },\n };\n }\n\n // Check if this accumulator has exactly the same generator mapping as\n // the previous one. If so, we can reuse the Gsplat sort order.\n checkVersions(otherMapping: GeneratorMapping[]) {\n if (this.mapping.length !== otherMapping.length) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const mappingUpdated = this.mapping.some((item, i) => {\n const other = otherMapping[i];\n return (\n item.node !== other.node ||\n item.base !== other.base ||\n item.count !== other.count ||\n item.mappingVersion !== other.mappingVersion\n );\n });\n if (mappingUpdated) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const splatsUpdated = this.mapping.some((item, i) => {\n return item.version !== otherMapping[i].version;\n });\n return { splatsUpdated, mappingUpdated };\n }\n}\n","import * as THREE from \"three\";\n\n// SplatGeometry is an internal class used by SparkRenderer to render a collection\n// of Gsplats in a single draw call by extending THREE.InstancedBufferGeometry.\n// Each Gsplat is drawn as two triangles, with the order of the Gsplats determined\n// by a texture lookup via gl_InstanceID.\n\nexport class SplatGeometry extends THREE.InstancedBufferGeometry {\n constructor() {\n super();\n this.setAttribute(\"position\", new THREE.BufferAttribute(QUAD_VERTICES, 3));\n this.setIndex(new THREE.BufferAttribute(QUAD_INDICES, 1));\n }\n}\n\n// Each instance draws to triangles covering a quad over coords (-1,-1,0)..(1,1,0)\nconst QUAD_VERTICES = new Float32Array([\n -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0,\n]);\n\nconst QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]);\n","import * as THREE from \"three\";\nimport {\n ExtSplats,\n PackedSplats,\n PagedSplats,\n Readback,\n type SplatGenerator,\n SplatMesh,\n SplatPager,\n} from \".\";\nimport { SplatAccumulator } from \"./SplatAccumulator\";\nimport { SplatGeometry } from \"./SplatGeometry\";\nimport { SplatWorker } from \"./SplatWorker\";\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { getShaders } from \"./shaders\";\nimport {\n cloneClock,\n isAndroid,\n isIos,\n isMobile,\n isOculus,\n isVisionPro,\n} from \"./utils\";\n\nexport interface SparkRendererOptions {\n /**\n * Pass in your THREE.WebGLRenderer instance so Spark can perform work\n * outside the usual render loop. Should be created with antialias: false\n * (default setting) as WebGL anti-aliasing doesn't improve Gaussian Splatting\n * rendering and significantly reduces performance.\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Callback function to be called when SparkRenderer needs to re-render,\n * for example when splat sort order or LoD updates complete.\n */\n onDirty?: () => void;\n /**\n * Whether to use premultiplied alpha when accumulating splat RGB\n * @default true\n */\n premultipliedAlpha?: boolean;\n /**\n * Whether to encode Gsplat with linear RGB (for environment mapping)\n * @default false\n */\n encodeLinear?: boolean;\n /**\n * Pass in a THREE.Clock to synchronize time-based effects across different\n * systems. Alternatively, you can set the property time directly.\n * (default: new THREE.Clock)\n */\n clock?: THREE.Clock;\n /**\n * Controls whether to check and automatically update Gsplat collection\n * each frame render.\n * @default true\n */\n autoUpdate?: boolean;\n /**\n * Controls whether to update the Gsplats before or after rendering. For WebXR\n * this is set to false in order to complete rendering as soon as possible.\n * @default true (if not WebXR)\n */\n preUpdate?: boolean;\n /**\n * Maximum standard deviations from the center to render Gaussians. Values\n * Math.sqrt(4)..Math.sqrt(9) produce acceptable results and can be tweaked for\n * performance.\n * @default Math.sqrt(8)\n */\n maxStdDev?: number;\n /*\n **\n * Minimum pixel radius for splat rendering.\n * @default 0.0\n */\n minPixelRadius?: number;\n /**\n * Maximum pixel radius for splat rendering.\n * @default 512.0\n */\n maxPixelRadius?: number;\n /**\n * Whether to use extended Gsplat encoding for intermediary accumulator splats.\n * @default false\n */\n accumExtSplats?: boolean;\n /**\n * Whether to use covariance Gsplat encoding for intermediary splats.\n * @default false\n */\n covSplats?: boolean;\n /**\n * Minimum alpha value for splat rendering.\n * @default 0.5 * (1.0 / 255.0)\n */\n minAlpha?: number;\n /**\n * Enable 2D Gaussian splatting rendering ability. When this mode is enabled,\n * any scale x/y/z component that is exactly 0 (minimum quantized value) results\n * in the other two non-0 axis being interpreted as an oriented 2D Gaussian Splat,\n * rather instead of the usual projected 3DGS Z-slice. When reading PLY files,\n * scale values less than e^-30 will be interpreted as 0.\n * @default false\n */\n enable2DGS?: boolean;\n /**\n * Enable alternative ray-splat max response evaluation, used by 3DGUT (unscented transform),\n * 3DGRT, and HTGS.\n * @default false\n */\n // enableRayEval?: boolean;\n /**\n * Scalar value to add to 2D splat covariance diagonal, effectively blurring +\n * enlarging splats. In scenes trained without the Gsplat anti-aliasing tweak\n * this value was typically 0.3, but with anti-aliasing it is 0.0\n * @default 0.0\n */\n preBlurAmount?: number;\n /**\n * Scalar value to add to 2D splat covarianve diagonal, with opacity adjustment\n * to correctly account for \"blurring\" when anti-aliasing. Typically 0.3\n * (equivalent to approx 0.5 pixel radius) in scenes trained with anti-aliasing.\n */\n blurAmount?: number;\n /**\n * Depth-of-field distance to focal plane\n */\n focalDistance?: number;\n /**\n * Full-width angle of aperture opening (in radians), 0.0 to disable\n * @default 0.0\n */\n apertureAngle?: number;\n /**\n * Modulate Gaussian kernel falloff. 0 means \"no falloff, flat shading\",\n * while 1 is the normal Gaussian kernel.\n * @default 1.0\n */\n falloff?: number;\n /**\n * X/Y clipping boundary factor for Gsplat centers against view frustum.\n * 1.0 clips any centers that are exactly out of bounds, while 1.4 clips\n * centers that are 40% beyond the bounds.\n * @default 1.4\n */\n clipXY?: number;\n /**\n * Parameter to adjust projected splat scale calculation to match other renderers,\n * similar to the same parameter in the MKellogg 3DGS renderer. Higher values will\n * tend to sharpen the splats. A value 2.0 can be used to match the behavior of\n * the PlayCanvas renderer.\n * @default 1.0\n */\n focalAdjustment?: number;\n /**\n * Whether to sort splats radially (geometric distance) from the viewpoint (true)\n * or by Z-depth (false). Most scenes are trained with the Z-depth `sort `metric\n * and will render more accurately at certain viewpoints. However, radial sorting\n * is more stable under viewpoint rotations.\n * @default true\n */\n sortRadial?: boolean;\n /**\n * Minimum interval between sort calls in milliseconds.\n * @default 0\n */\n minSortIntervalMs?: number;\n /*\n * Flag to control whether LoD is enabled. @default true\n */\n enableLod?: boolean;\n /**\n * Whether to drive LOD updates (compute lodInstances, update pager, etc.).\n * Set to false to use LOD instances from another renderer without driving updates.\n * Only has effect if enableLod is true.\n * @default true (if enableLod is true)\n */\n enableDriveLod?: boolean;\n /**\n * Whether to enable page fetching for LoD.\n * @default true\n */\n enableLodFetching?: boolean;\n /**\n * Set the target # splats for LoD. If this isn't set then default base LoD splat\n * counts will apply: 500K-750K for WebXR, 1-1.5M for mobile, and 2.5M for desktop.\n * @default 500K-2500K depending on platform\n */\n lodSplatCount?: number;\n /**\n * Scale factor for target # splats for LoD. 2.0 means 2x the base LoD splat count.\n * This is the easiest LoD parameter to adjust and will scale detail appropriately\n * for the platform.\n * @default 1.0\n */\n lodSplatScale?: number;\n /**\n * Determines the minimum screen pixel size of LoD splats. The default 1.0 means\n * the splat LoD tree will pick splats that are no smaller than 1 pixel in size.\n * Setting this to a higher value as high as 5.0 will often be indistinguishable\n * but will avoid wasting rendering capacity on tiny splats.\n * @default 1.0\n */\n lodRenderScale?: number;\n /**\n * Inflate LoD splats to ensure opacity stays <= 1.0, producing a softer appearance.\n * @default false\n */\n lodInflate?: boolean;\n /**\n * Whether to use extended Gsplat encoding for paged splats, useful for eliminating\n * quantization artifacts from splat scenes with large internal position coordinates.\n * @default false\n */\n pagedExtSplats?: boolean;\n /**\n * Allocation size of paged splats. This must be a multiple of the page size (65536).\n * @default 16777216 (256 * 65536) for desktop, 6291456 for iOS, 8,388,608 for other mobile\n */\n maxPagedSplats?: number;\n /**\n * Number of parallel chunk fetchers for LoD. These are run within a shared pool\n * of 4 background WebWorker threads, so setting it above 4 will not have any\n * effect. Setting it 3 leaves one spare worker for other loading/decoding tasks.\n * @default 3\n */\n numLodFetchers?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with no foveation applied (full resolution, foveate=1.0). Set to 0 to disable.\n * @default 90.0\n */\n coneFov0?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with reduced resolution specified by `coneFoveate`. Foveation will be applied\n * smoothly from 1.0 down to `coneFoveate` as you move outward from\n * `coneFov0` to `coneFov`. Set to 0 to disable.\n * @default 120.0\n */\n coneFov?: number;\n /**\n * Foveation scale to apply to LoD splats at the edge of coneFov. Foveation will\n * be applied smoothly from `coneFoveate` down to `behindFoveate` as you move\n * outward from `coneFov` to 180 degrees (behind the viewer).\n * @default 0.4\n */\n coneFoveate?: number;\n /**\n * Foveation scale to apply to LoD splats behind the viewer. Setting this to 0.1\n * for example will result in splats 10x larger than inside the viewing frustum.\n * @default 0.2\n */\n behindFoveate?: number;\n /**\n * How many LoD splats to generate for raycasting\n * @default 10000-25000 iff default canvas target is used\n */\n lodRaycast?: number;\n lodRaycastIntervalMs?: number;\n /**\n * Configures an offline render target for the SparkRenderer (as opposed to\n * rendering to the canvas). This is useful for rendering environment maps,\n * additional viewpoints, or video frame rendering.\n * @default undefined\n */\n target?: {\n /**\n * Width of the render target in pixels.\n */\n width: number;\n /**\n * Height of the render target in pixels.\n */\n height: number;\n /**\n * If you want to be able to render a scene that depends on this target's\n * output (for example, a recursive viewport), set this to true to enable\n * double buffering.\n * @default false\n */\n doubleBuffer?: boolean;\n /**\n * Super-sampling factor for the render target. Values 1-4 are supported.\n * Note that re-sampling back down to .width x .height is done on the CPU\n * with simple averaging only when calling readTarget().\n * @default 1\n */\n superXY?: number;\n } & THREE.RenderTargetOptions;\n /**\n * Extra uniform values to pass to the shader.\n * @default undefined = no extra uniforms\n */\n extraUniforms?: Record;\n /**\n * Replace the default `splatVertex.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatVertex.glsl` shader\n */\n vertexShader?: string;\n /**\n * Replace the default `splatFragment.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatFragment.glsl` shader\n */\n fragmentShader?: string;\n /**\n * Set the splat shader material to be transparent which determines if the\n * splats are rendered during the first opaque THREE.js render pass or the\n * second transparent render pass.\n * @default undefined = true\n */\n transparent?: boolean;\n /**\n * Set the splat shader material to enable depth testing which determines if the\n * splats respect the Z depth buffer and blend with other opaque objects in the scene.\n * @default undefined = true\n */\n depthTest?: boolean;\n /**\n * Set the splat shader material to enable depth writing which determines if the\n * splats write to the Z depth buffer. Note that enabling this may produce\n * undesirable results because most of the Gsplat is transparent.\n * @default undefined = false\n */\n depthWrite?: boolean;\n}\n\nexport class SparkRenderer extends THREE.Mesh {\n readonly renderer: THREE.WebGLRenderer;\n readonly material: THREE.ShaderMaterial;\n readonly uniforms: ReturnType;\n\n autoUpdate: boolean;\n preUpdate: boolean;\n static sparkOverride?: SparkRenderer;\n\n renderSize = new THREE.Vector2();\n maxStdDev: number;\n minPixelRadius: number;\n maxPixelRadius: number;\n accumExtSplats: boolean;\n covSplats: boolean;\n minAlpha: number;\n enable2DGS: boolean;\n // enableRayEval: boolean;\n preBlurAmount: number;\n blurAmount: number;\n focalDistance: number;\n apertureAngle: number;\n falloff: number;\n clipXY: number;\n focalAdjustment: number;\n encodeLinear: boolean;\n\n sortRadial: boolean;\n minSortIntervalMs: number;\n\n clock: THREE.Clock;\n time?: number;\n lastFrame = -1;\n updateTimeoutId = -1;\n onDirty?: () => void;\n dirty: boolean;\n\n orderingTexture: THREE.DataTexture | null = null;\n maxSplats = 0;\n activeSplats = 0;\n\n display: SplatAccumulator;\n current: SplatAccumulator;\n accumulators: SplatAccumulator[] = [];\n\n sorting = false;\n sortDirty = false;\n lastSortTime = 0;\n sortWorker: SplatWorker | null = null;\n sortTimeoutId = -1;\n sortedCenter = new THREE.Vector3().setScalar(Number.NEGATIVE_INFINITY);\n sortedDir = new THREE.Vector3().setScalar(0);\n readback32 = new Uint32Array(0);\n\n enableLod: boolean;\n enableDriveLod: boolean;\n enableLodFetching: boolean;\n lodSplatCount?: number;\n lodSplatScale: number;\n lodRenderScale: number;\n lodInflate: boolean;\n pagedExtSplats: boolean;\n maxPagedSplats: number;\n numLodFetchers: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n\n lodRaycast?: number;\n lodRaycastIntervalMs: number;\n lastLodRaycastTime = 0;\n\n lodWorker: SplatWorker | null = null;\n lodMeshes: { mesh: SplatMesh; version: number }[] = [];\n lodDirty = false;\n lodIds: Map<\n PackedSplats | ExtSplats | PagedSplats,\n { lodId: number; lastTouched: number; rootPage?: number }\n > = new Map();\n lodIdToSplats: Map =\n new Map();\n lodInitQueue: (PackedSplats | ExtSplats | PagedSplats)[] = [];\n lastLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n currentLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n lodPosOverride?: THREE.Vector3;\n lodQuatOverride?: THREE.Quaternion;\n lodInstances: Map<\n SplatMesh,\n {\n lodId: number;\n numSplats: number;\n indices: Uint32Array;\n texture: THREE.DataTexture;\n }\n > = new Map();\n lodUpdates: {\n lodId: number;\n pageBase: number;\n chunkBase: number;\n count: number;\n lodTreeData?: Uint32Array;\n }[] = [];\n lastTraverseTime = 0;\n lastPixelLimit?: number;\n\n pager?: SplatPager;\n pagerId = 0;\n // prefetchCameras: THREE.Camera[] = [];\n // prefetchLodScale = 1.0;\n // prefetchMeshesCache: SplatMesh[] = [];\n // prefetchMeshesCacheScene?: THREE.Scene;\n\n target?: THREE.WebGLRenderTarget;\n backTarget?: THREE.WebGLRenderTarget;\n superPixels?: Uint8Array;\n targetPixels?: Uint8Array;\n superXY = 1;\n\n flushAfterGenerate = false;\n flushAfterRead = false;\n readPause = 1;\n sortPause = 0;\n sortDelay = 0;\n\n constructor(options: SparkRendererOptions) {\n if (!options) {\n throw new Error(\"SparkRenderer options are required\");\n }\n if (!options.renderer) {\n throw new Error(\"renderer is required in SparkRenderer options\");\n }\n\n const uniforms = SparkRenderer.makeUniforms();\n Object.assign(uniforms, options.extraUniforms ?? {});\n\n const shaders = getShaders();\n const premultipliedAlpha = options.premultipliedAlpha ?? true;\n const geometry = new SplatGeometry();\n const material = new THREE.ShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: options.vertexShader ?? shaders.splatVertex,\n fragmentShader: options.fragmentShader ?? shaders.splatFragment,\n uniforms,\n premultipliedAlpha,\n transparent: options.transparent ?? true,\n depthTest: options.depthTest ?? true,\n depthWrite: options.depthWrite ?? false,\n side: THREE.DoubleSide,\n allowOverride: false,\n });\n\n super(geometry, material);\n this.material = material;\n this.uniforms = uniforms;\n // Disable frustum culling because we want to always draw them all\n // and cull Gsplats individually in the shader\n this.frustumCulled = false;\n\n // By default SparkRenderer will only render for layer 0\n // this.layers.enableAll();\n\n // sparkRendererInstance = this;\n this.renderer = options.renderer;\n this.onDirty = options.onDirty;\n this.dirty = true;\n this.autoUpdate = options.autoUpdate ?? true;\n this.preUpdate = options.preUpdate ?? true;\n\n this.maxStdDev = options.maxStdDev ?? Math.sqrt(8.0);\n this.minPixelRadius = options.minPixelRadius ?? 0.0; //1.6;\n this.maxPixelRadius = options.maxPixelRadius ?? 512.0;\n this.accumExtSplats = options.accumExtSplats ?? false;\n this.covSplats = options.covSplats ?? false;\n this.minAlpha = options.minAlpha ?? 0.5 * (1.0 / 255.0);\n this.enable2DGS = options.enable2DGS ?? false;\n // this.enableRayEval = options.enableRayEval ?? false;\n this.preBlurAmount = options.preBlurAmount ?? 0.0;\n this.blurAmount = options.blurAmount ?? 0.3;\n this.focalDistance = options.focalDistance ?? 0.0;\n this.apertureAngle = options.apertureAngle ?? 0.0;\n this.falloff = options.falloff ?? 1.0;\n this.clipXY = options.clipXY ?? 1.4;\n this.focalAdjustment = options.focalAdjustment ?? 1.0;\n this.encodeLinear = options.encodeLinear ?? false;\n\n this.sortRadial = options.sortRadial ?? true;\n this.minSortIntervalMs = options.minSortIntervalMs ?? 0;\n\n this.enableLod = options.enableLod ?? true;\n // enableDriveLod defaults to true if enableLod is true, false otherwise\n this.enableDriveLod = options.enableDriveLod ?? this.enableLod;\n this.enableLodFetching = options.enableLodFetching ?? true;\n this.lodSplatCount = options.lodSplatCount;\n this.lodSplatScale = options.lodSplatScale ?? 1.0;\n this.lodRenderScale = options.lodRenderScale ?? 1.0;\n this.lodInflate = options.lodInflate ?? false;\n this.pagedExtSplats = options.pagedExtSplats ?? false;\n const defaultPages = isMobile() ? (isIos() ? 96 : 128) : 256;\n this.maxPagedSplats = options.maxPagedSplats ?? defaultPages * 65536;\n this.numLodFetchers = options.numLodFetchers ?? 3;\n this.behindFoveate = options.behindFoveate ?? 0.2;\n this.coneFov0 = options.coneFov0 ?? 90.0;\n this.coneFov = options.coneFov ?? 120.0;\n this.coneFoveate = options.coneFoveate ?? 0.4;\n\n this.lodRaycast =\n options.lodRaycast === undefined\n ? isMobile()\n ? 10000\n : 25000\n : options.lodRaycast;\n this.lodRaycastIntervalMs = options.lodRaycastIntervalMs ?? 500;\n\n this.clock = options.clock ? cloneClock(options.clock) : new THREE.Clock();\n\n const accumulatorOptions = {\n extSplats: this.accumExtSplats,\n covSplats: this.covSplats,\n };\n this.display = new SplatAccumulator(accumulatorOptions);\n this.current = this.display;\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n\n if (options.target) {\n const {\n width,\n height,\n doubleBuffer,\n superXY: origSuperXY,\n ...origTargetOptions\n } = options.target;\n const superXY = Math.max(1, Math.min(4, origSuperXY ?? 1));\n if (width * superXY > 8192 || height * superXY > 8192) {\n throw new Error(\"Target size too large\");\n }\n this.superXY = superXY;\n\n const superWidth = width * superXY;\n const superHeight = height * superXY;\n const targetOptions: THREE.RenderTargetOptions = {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n ...origTargetOptions,\n };\n\n this.target = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n if (doubleBuffer) {\n this.backTarget = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n }\n this.encodeLinear = options.encodeLinear ?? true;\n }\n }\n\n static makeUniforms() {\n const uniforms = {\n // // number of active splats to render\n // numSplats: { value: 0 },\n // Size of render viewport in pixels\n renderSize: { value: new THREE.Vector2() },\n // Near and far plane distances\n near: { value: 0.1 },\n far: { value: 1000.0 },\n // SplatAccumulator to view transformation quaternion\n renderToViewQuat: { value: new THREE.Quaternion() },\n // SplatAccumulator to view transformation translation\n renderToViewPos: { value: new THREE.Vector3() },\n renderToViewBasis: { value: new THREE.Matrix3() },\n renderToViewOffset: { value: new THREE.Vector3() },\n // Maximum distance (in stddevs) from Gsplat center to render\n maxStdDev: { value: 1.0 },\n // Minimum pixel radius for splat rendering\n minPixelRadius: { value: 0.0 },\n // Maximum pixel radius for splat rendering\n maxPixelRadius: { value: 512.0 },\n // Minimum alpha value for splat rendering\n minAlpha: { value: 0.5 * (1.0 / 255.0) },\n // Enable interpreting 0-thickness Gsplats as 2DGS\n enable2DGS: { value: false },\n // Enable ray-splat max response evaluation\n // enableRayEval: { value: false },\n // Inflate LoD splats so that opacity <= 1.0\n lodInflate: { value: false },\n // Add to projected 2D splat covariance diagonal (thickens and brightens)\n preBlurAmount: { value: 0.0 },\n // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing)\n blurAmount: { value: 0.3 },\n // Depth-of-field distance to focal plane\n focalDistance: { value: 0.0 },\n // Full-width angle of aperture opening (in radians)\n apertureAngle: { value: 0.0 },\n // Modulate Gaussian kernal falloff. 0 means \"no falloff, flat shading\",\n // 1 is normal e^-x^2 falloff.\n falloff: { value: 1.0 },\n // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds\n clipXY: { value: 1.4 },\n // Debug renderSize scale factor\n focalAdjustment: { value: 1.0 },\n // Whether to encode Gsplat with linear RGB (for environment mapping)\n encodeLinear: { value: false },\n // Back-to-front sort ordering of splat indices\n ordering: { type: \"t\", value: SparkRenderer.emptyOrdering },\n enableExtSplats: { value: false },\n enableCovSplats: { value: false },\n // Gsplat collection to render\n extSplats: { type: \"t\", value: SplatAccumulator.emptyTexture },\n extSplats2: { type: \"t\", value: SplatAccumulator.emptyTexture },\n // Time in seconds for time-based effects\n time: { value: 0 },\n // Delta time in seconds since last frame\n deltaTime: { value: 0 },\n // Debug flag that alternates each frame\n debugFlag: { value: false },\n };\n return uniforms;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n if (this.backTarget) {\n this.backTarget.dispose();\n this.backTarget = undefined;\n }\n if (this.orderingTexture) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n\n const accumulators = new Set();\n accumulators.add(this.display);\n accumulators.add(this.current);\n for (const accumulator of this.accumulators) {\n accumulators.add(accumulator);\n }\n for (const accumulator of accumulators) {\n accumulator.dispose();\n }\n\n const instances = this.lodInstances.values();\n this.lodInstances.clear();\n for (const instance of instances) {\n instance.texture.dispose();\n }\n\n if (this.sortWorker) {\n this.sortWorker.dispose();\n this.sortWorker = null;\n }\n if (this.lodWorker) {\n this.lodWorker.dispose();\n this.lodWorker = null;\n }\n if (this.pager) {\n this.pager.dispose();\n this.pager = undefined;\n }\n }\n\n setDirty() {\n if (!this.dirty) {\n this.dirty = true;\n this.onDirty?.();\n }\n }\n\n onBeforeRender(\n renderer: THREE.WebGLRenderer,\n scene: THREE.Scene,\n camera: THREE.Camera,\n ) {\n const spark = SparkRenderer.sparkOverride ?? this;\n\n const frame = renderer.info.render.frame;\n const isNewFrame = frame !== spark.lastFrame;\n spark.lastFrame = frame;\n\n if (spark.target) {\n spark.renderSize.set(spark.target.width, spark.target.height);\n } else {\n const renderSize = renderer.getDrawingBufferSize(spark.renderSize);\n if (renderer.xr.isPresenting) {\n if (renderSize.x === 1 && renderSize.y === 1) {\n // WebXR mode on Apple Vision Pro returns 1x1 when presenting.\n // Use a different means to figure out the render size.\n const baseLayer = renderer.xr.getSession()?.renderState.baseLayer;\n if (baseLayer) {\n renderSize.x = baseLayer.framebufferWidth;\n renderSize.y = baseLayer.framebufferHeight;\n }\n }\n }\n }\n this.uniforms.renderSize.value.copy(spark.renderSize);\n\n const typedCamera = camera as\n | THREE.PerspectiveCamera\n | THREE.OrthographicCamera;\n\n this.uniforms.near.value = typedCamera.near;\n this.uniforms.far.value = typedCamera.far;\n\n const geometry = this.geometry as SplatGeometry;\n geometry.instanceCount = spark.activeSplats;\n\n const accumToWorld = new THREE.Matrix4();\n if (!this.display.extSplats) {\n accumToWorld.makeTranslation(spark.display.viewOrigin);\n }\n const cameraToWorld = camera.matrixWorld.clone();\n const worldToCamera = cameraToWorld.invert();\n const accumToCamera = worldToCamera.multiply(accumToWorld);\n accumToCamera.decompose(\n this.uniforms.renderToViewPos.value,\n this.uniforms.renderToViewQuat.value,\n new THREE.Vector3(),\n );\n this.uniforms.renderToViewBasis.value.setFromMatrix4(accumToCamera);\n\n this.uniforms.maxStdDev.value = spark.maxStdDev;\n this.uniforms.minPixelRadius.value = spark.minPixelRadius;\n this.uniforms.maxPixelRadius.value = spark.maxPixelRadius;\n this.uniforms.minAlpha.value = spark.minAlpha;\n this.uniforms.enable2DGS.value = spark.enable2DGS;\n // this.uniforms.enableRayEval.value = spark.enableRayEval;\n this.uniforms.lodInflate.value = spark.lodInflate;\n this.uniforms.preBlurAmount.value = spark.preBlurAmount;\n this.uniforms.blurAmount.value = spark.blurAmount;\n this.uniforms.focalDistance.value = spark.focalDistance;\n this.uniforms.apertureAngle.value = spark.apertureAngle;\n this.uniforms.falloff.value = spark.falloff;\n this.uniforms.clipXY.value = spark.clipXY;\n this.uniforms.focalAdjustment.value = spark.focalAdjustment;\n this.uniforms.encodeLinear.value = spark.encodeLinear;\n\n this.uniforms.ordering.value =\n spark.orderingTexture ?? SparkRenderer.emptyOrdering;\n this.uniforms.enableExtSplats.value = this.display.extSplats;\n this.uniforms.enableCovSplats.value = this.display.covSplats;\n if (this.display.extSplats) {\n const extSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = extSplats[0];\n this.uniforms.extSplats2.value = extSplats[1];\n } else {\n const packedSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = packedSplats[0];\n this.uniforms.extSplats2.value = packedSplats[0];\n }\n\n this.uniforms.time.value = spark.display.time;\n this.uniforms.deltaTime.value = spark.display.deltaTime;\n // Alternating debug flag that can aid in visual debugging\n this.uniforms.debugFlag.value = (performance.now() / 1000.0) % 2.0 < 1.0;\n\n if (spark.autoUpdate && isNewFrame) {\n const preUpdate = spark.preUpdate && !renderer.xr.isPresenting;\n const useCamera = renderer.xr.isPresenting\n ? renderer.xr.getCamera()\n : camera;\n if (preUpdate) {\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n } else {\n if (spark.updateTimeoutId === -1) {\n spark.updateTimeoutId = setTimeout(() => {\n spark.updateTimeoutId = -1;\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n }, 1);\n }\n }\n }\n\n spark.dirty = false;\n }\n\n clearSplats() {\n this.activeSplats = 0;\n this.display.numSplats = 0;\n this.setDirty();\n }\n\n async update({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }) {\n await this.updateInternal({ scene, camera, autoUpdate: false });\n }\n\n // /**\n // * Provide additional cameras to prefetch paged splat chunks without\n // * affecting main LOD selection.\n // */\n // setPrefetchCameras(cameras?: THREE.Camera[], lodScaleMultiplier = 1.0) {\n // const next = cameras?.filter(Boolean) ?? [];\n // const sameCameras =\n // this.prefetchCameras.length === next.length &&\n // this.prefetchCameras.every((camera, index) => camera === next[index]);\n // if (sameCameras && this.prefetchLodScale === lodScaleMultiplier) {\n // return;\n // }\n // this.prefetchCameras = next;\n // this.prefetchLodScale = lodScaleMultiplier;\n // this.invalidatePrefetchCache();\n // }\n\n // /**\n // * Invalidate the prefetch meshes cache. Call this when SplatMeshes are\n // * added or removed from the scene.\n // */\n // invalidatePrefetchCache() {\n // this.prefetchMeshesCacheScene = undefined;\n // }\n\n private async updateInternal({\n scene,\n camera,\n autoUpdate,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n autoUpdate: boolean;\n }) {\n const renderer = this.renderer;\n const time = this.time ?? this.clock.getElapsedTime();\n\n const center = camera.getWorldPosition(new THREE.Vector3());\n const dir = camera.getWorldDirection(new THREE.Vector3());\n\n const viewChanged =\n center.distanceTo(this.sortedCenter) > 0.001 ||\n dir.dot(this.sortedDir) < 0.999;\n\n const next = this.accumulators.pop();\n if (!next) {\n // Should never happen\n throw new Error(\"No next accumulator\");\n }\n if (next === this.current) {\n // Should never happen\n throw new Error(\n \"Next accumulator is the same as the current accumulator\",\n );\n }\n const { version, mappingVersion, visibleGenerators, generate } =\n next.prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial: this.sortRadial ?? true,\n renderSize: this.renderSize,\n previous: this.current,\n lodInstances: this.enableLod ? this.lodInstances : undefined,\n });\n\n let doUpdate = true;\n const needsUpdate = viewChanged || version !== this.current.version;\n const mappingUpdated = mappingVersion !== this.display.mappingVersion;\n\n if (autoUpdate && !needsUpdate) {\n // Triggered by auto-update but no change\n doUpdate = false;\n }\n\n if (mappingUpdated && this.sorting) {\n // We need to be able to sort the splats because the mapping has changed.\n // Try again next time around.\n doUpdate = false;\n }\n\n if (!doUpdate) {\n // Restore unused accumulator to the free list\n this.accumulators.push(next);\n } else {\n generate();\n\n if (this.flushAfterGenerate) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n if (this.display.mappingVersion === next.mappingVersion) {\n // Same splat mapping so let's display it immediately and\n // reuse the sort order\n this.accumulators.push(this.display);\n this.display = next;\n } else {\n if (this.display !== this.current) {\n // The previous current is not being displayed, so replace it\n this.accumulators.push(this.current);\n }\n }\n\n this.current = next;\n this.sortDirty = true;\n this.setDirty();\n }\n\n if (this.enableDriveLod) {\n this.driveLod({ visibleGenerators, camera, scene });\n }\n await this.driveSort();\n }\n\n private async driveSort() {\n if (this.sorting || !this.sortDirty) {\n return;\n }\n\n if (this.sortTimeoutId !== -1) {\n clearTimeout(this.sortTimeoutId);\n this.sortTimeoutId = -1;\n }\n\n const now = performance.now();\n const nextSortTime = this.lastSortTime\n ? this.lastSortTime + this.minSortIntervalMs\n : now;\n if (now < nextSortTime) {\n this.sortTimeoutId = setTimeout(() => {\n this.sortTimeoutId = -1;\n this.driveSort();\n }, nextSortTime - now);\n return;\n }\n\n this.sorting = true;\n this.sortDirty = false;\n this.lastSortTime = now;\n\n if (this.readPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.readPause));\n }\n\n const current = this.current;\n\n this.sortedCenter.copy(current.viewOrigin);\n this.sortedDir.copy(current.viewDirection);\n\n const { numSplats, maxSplats } = current;\n const rows = Math.max(1, Math.ceil(maxSplats / 16384));\n const orderingMaxSplats = rows * 16384;\n this.maxSplats = Math.max(this.maxSplats, orderingMaxSplats);\n\n const ordering = new Uint32Array(this.maxSplats);\n const readback = Readback.ensureBuffer(maxSplats, this.readback32);\n this.readback32 = readback;\n\n await this.readbackDepth({\n current,\n renderer: this.renderer,\n numSplats,\n readback,\n });\n\n if (this.sortPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortPause));\n }\n\n if (!this.sortWorker) {\n this.sortWorker = new SplatWorker();\n }\n const result = (await this.sortWorker.call(\"sortSplats32\", {\n numSplats,\n readback,\n ordering,\n })) as {\n readback: Uint32Array;\n ordering: Uint32Array;\n activeSplats: number;\n };\n\n if (this.sortDelay > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortDelay));\n }\n\n this.readback32 = result.readback;\n\n this.activeSplats = result.activeSplats;\n\n if (this.orderingTexture) {\n if (rows > this.orderingTexture.image.height) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n }\n\n if (!this.orderingTexture) {\n // console.log(`Allocating orderingTexture: ${4096}x${rows}`);\n const orderingTexture = new THREE.DataTexture(\n result.ordering,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n orderingTexture.internalFormat = \"RGBA32UI\";\n orderingTexture.needsUpdate = true;\n this.orderingTexture = orderingTexture;\n } else {\n const renderer = this.renderer;\n const gl = renderer.getContext() as WebGL2RenderingContext;\n if (!renderer.properties.has(this.orderingTexture)) {\n this.orderingTexture.needsUpdate = true;\n } else {\n const props = renderer.properties.get(this.orderingTexture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"ordering texture not found\");\n }\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n // data,\n result.ordering,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n\n // console.log(`Sorted (${this.minSortIntervalMs}) ${numSplats} splats in ${(performance.now() - now).toFixed(0)} ms`);\n\n if (this.current.mappingVersion === current.mappingVersion) {\n if (this.current.mappingVersion !== this.display.mappingVersion) {\n this.accumulators.push(this.display);\n this.display = this.current;\n }\n }\n this.sorting = false;\n this.setDirty();\n\n this.driveSort();\n }\n\n private ensureLodWorker() {\n if (!this.lodWorker) {\n this.lodWorker = new SplatWorker();\n }\n return this.lodWorker;\n }\n\n defaultSplatTarget() {\n return isOculus()\n ? 500000\n : isVisionPro()\n ? 750000\n : isAndroid()\n ? 1000000\n : isIos()\n ? 1500000\n : 2500000;\n }\n\n private driveLod({\n visibleGenerators,\n camera,\n scene,\n }: {\n visibleGenerators: SplatGenerator[];\n camera: THREE.Camera;\n scene: THREE.Scene;\n }) {\n const defaultSplatCount = this.defaultSplatTarget();\n const splatCount = this.lodSplatCount ?? defaultSplatCount;\n const maxSplats = splatCount * this.lodSplatScale;\n\n let pixelScaleLimit = 0.0;\n if (camera instanceof THREE.PerspectiveCamera) {\n const tanYfov = Math.tan((0.5 * camera.fov * Math.PI) / 180);\n pixelScaleLimit = (2.0 * tanYfov) / this.renderSize.y;\n } else if (camera instanceof THREE.OrthographicCamera) {\n // Effective visible size after zoom\n const viewHeight = (camera.top - camera.bottom) / camera.zoom;\n const viewWidth = (camera.right - camera.left) / camera.zoom;\n // World/view units per pixel (constant with depth for ortho)\n const pxY = viewHeight / Math.max(1, this.renderSize.y);\n const pxX = viewWidth / Math.max(1, this.renderSize.x);\n pixelScaleLimit = Math.min(pxX, pxY);\n }\n\n pixelScaleLimit *= this.lodRenderScale;\n\n const viewPos = new THREE.Vector3();\n const viewQuat = new THREE.Quaternion();\n this.current.viewToWorld.decompose(viewPos, viewQuat, new THREE.Vector3());\n\n if (this.lodPosOverride) {\n viewPos.copy(this.lodPosOverride);\n }\n if (this.lodQuatOverride) {\n viewQuat.copy(this.lodQuatOverride).normalize();\n }\n\n if (this.lastLod) {\n if (\n this.lastLod.pixelScaleLimit !== pixelScaleLimit ||\n this.lastLod.maxSplats !== maxSplats\n ) {\n this.lodDirty = true;\n }\n\n const distance = viewPos.distanceTo(this.lastLod.pos);\n const distanceRamp = Math.max(0.0, 1.0 - distance / 1.0);\n const dot = viewQuat.dot(this.lastLod.quat);\n const quatRamp = Math.max(0.0, 1.0 - (1.0 - dot) / 0.01);\n const similarity = distanceRamp * quatRamp;\n if (similarity < 0.999) {\n this.lodDirty = true;\n }\n }\n\n const lodMeshes = !this.enableLod\n ? []\n : (visibleGenerators.filter((generator) => {\n return (\n generator instanceof SplatMesh &&\n (generator.packedSplats?.lodSplats ||\n generator.extSplats?.lodSplats ||\n generator.paged) &&\n generator.enableLod !== false\n );\n }) as SplatMesh[]);\n const hasPaged = lodMeshes.some((mesh) => mesh.paged);\n\n if (this.lodMeshes.length !== lodMeshes.length) {\n this.lodDirty = true;\n } else {\n if (\n lodMeshes.some(\n (m, i) =>\n m !== this.lodMeshes[i].mesh ||\n m.version > this.lodMeshes[i].version,\n )\n ) {\n this.lodDirty = true;\n }\n }\n\n this.lodMeshes = lodMeshes.map((mesh) => ({\n mesh,\n version: mesh.version + 1,\n }));\n\n // if (!this.lodDirty && lodMeshes.length === 0 && this.lodIds.size === 0) {\n // return;\n // }\n\n this.lodInitQueue = [];\n const now = performance.now();\n\n for (const mesh of lodMeshes) {\n const splats =\n mesh.packedSplats?.lodSplats ?? mesh.extSplats?.lodSplats ?? mesh.paged;\n if (splats) {\n const record = this.lodIds.get(splats);\n if (record) {\n record.lastTouched = now;\n } else {\n this.lodInitQueue.push(splats);\n }\n }\n }\n\n this.ensureLodWorker().tryExclusive(async (worker) => {\n if (hasPaged && !this.pager) {\n this.pager = new SplatPager({\n renderer: this.renderer,\n extSplats: this.pagedExtSplats,\n maxSplats: this.maxPagedSplats,\n numFetchers: this.numLodFetchers,\n });\n\n const { lodId } = (await worker.call(\"newLodTree\", {\n capacity: this.pager.maxSplats,\n })) as { lodId: number };\n this.pagerId = lodId;\n }\n\n // Assign pager to any new meshes that don't have one yet\n // (must run every frame, not just when pager is first created)\n if (this.pager) {\n for (const { mesh } of this.lodMeshes) {\n if (mesh.paged && !mesh.paged.pager) {\n mesh.paged.pager = this.pager;\n }\n }\n }\n\n if (this.lodInitQueue.length > 0) {\n const lodInitQueue = this.lodInitQueue;\n this.lodInitQueue = [];\n while (lodInitQueue.length > 0) {\n const splats = lodInitQueue.shift();\n if (splats) {\n await this.initLodTree(worker, splats);\n this.lodDirty = true;\n }\n }\n }\n\n if (this.pager) {\n const updates = this.pager.consumeLodTreeUpdates();\n\n for (const { splats, page, chunk, numSplats, lodTree } of updates) {\n const record = this.lodIds.get(splats);\n if (record) {\n if (lodTree && chunk === 0) {\n record.rootPage = page;\n }\n this.lodUpdates.push({\n lodId: record.lodId,\n pageBase: page * this.pager.pageSplats,\n chunkBase: chunk * this.pager.pageSplats,\n count: numSplats,\n lodTreeData: lodTree,\n });\n }\n }\n }\n\n if (this.lodUpdates.length > 0) {\n const lodUpdates = this.lodUpdates;\n this.lodUpdates = [];\n await worker.call(\"updateLodTrees\", { ranges: lodUpdates });\n this.lodDirty = true;\n }\n\n if (this.lodDirty) {\n const now = performance.now();\n const deltaPred = new THREE.Vector3();\n if (this.lastLod) {\n const deltaTime = Math.max(1, now - this.lastLod.timestamp);\n deltaPred\n .copy(viewPos)\n .sub(this.lastLod.pos)\n .multiplyScalar(this.lastTraverseTime / deltaTime);\n }\n this.lastLod = {\n pos: viewPos,\n quat: viewQuat,\n pixelScaleLimit,\n maxSplats,\n timestamp: now,\n };\n this.lodDirty = false;\n\n await this.updateLodInstances(\n worker,\n deltaPred,\n lodMeshes,\n maxSplats,\n viewPos,\n viewQuat,\n pixelScaleLimit,\n );\n this.currentLod = this.lastLod;\n this.setDirty();\n }\n\n await this.cleanupLodTrees(worker);\n });\n }\n\n private async initLodTree(\n worker: SplatWorker,\n splats: PackedSplats | ExtSplats | PagedSplats,\n ) {\n if (splats instanceof PackedSplats || splats instanceof ExtSplats) {\n const { lodId } = (await worker.call(\"initLodTree\", {\n numSplats: splats.numSplats ?? 0,\n lodTree: (splats.extra.lodTree as Uint32Array).slice(),\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** initLodTree\", lodId, splats.extra.lodTree, splats);\n } else {\n const { lodId } = (await worker.call(\"newSharedLodTree\", {\n lodId: this.pagerId,\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** newSharedLodTree\", lodId, this.pagerId, splats);\n }\n }\n\n private pageSizeWarning = false;\n\n private async updateLodInstances(\n worker: SplatWorker,\n deltaPred: THREE.Vector3,\n lodMeshes: SplatMesh[],\n maxSplats: number,\n viewPos: THREE.Vector3,\n viewQuat: THREE.Quaternion,\n pixelScaleLimit: number,\n ) {\n // Commented out because it makes LoDing less stable\n // viewPos.add(deltaPred);\n\n const uuidToMesh: Map = new Map();\n const cameraToWorld = new THREE.Matrix4().compose(\n viewPos,\n viewQuat,\n new THREE.Vector3().setScalar(1),\n );\n\n const instances = lodMeshes.reduce(\n (instances, mesh) => {\n uuidToMesh.set(mesh.uuid, mesh);\n const viewToObject = mesh.matrixWorld\n .clone()\n .invert()\n .multiply(cameraToWorld);\n\n const splats =\n mesh.packedSplats?.lodSplats ??\n mesh.extSplats?.lodSplats ??\n mesh.paged;\n if (!splats) {\n return instances;\n }\n const record = this.lodIds.get(splats);\n if (!record) {\n return instances;\n }\n\n if (this.pager && mesh.paged && record.rootPage === undefined) {\n return instances;\n }\n\n instances[mesh.uuid] = {\n instanceId: mesh.uuid,\n lodId: record.lodId,\n rootPage: record.rootPage,\n viewToObjectCols: viewToObject.elements,\n lodScale: mesh.lodScale,\n behindFoveate: mesh.behindFoveate ?? this.behindFoveate,\n coneFov0: mesh.coneFov0 ?? this.coneFov0,\n coneFov: mesh.coneFov ?? this.coneFov,\n coneFoveate: mesh.coneFoveate ?? this.coneFoveate,\n };\n return instances;\n },\n {} as Record<\n string,\n {\n instanceId: string;\n lodId: number;\n rootPage?: number;\n viewToObjectCols: number[];\n lodScale: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n }\n >,\n );\n\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit: this.lastPixelLimit,\n instances,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n chunks: [number, number][];\n pixelLimit?: number;\n };\n this.lastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices, chunks, pixelLimit } = result;\n this.lastPixelLimit = pixelLimit;\n const totalLodSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n // console.log(\n // `traverseLodTrees in ${this.lastTraverseTime} ms, pixelLimit=${pixelLimit}, totalLodSplats=${totalLodSplats}`,\n // );\n\n this.updateLodIndices(uuidToMesh, keyIndices);\n // console.log(\"chunks.length =\", chunks.length);\n\n if (this.pager) {\n this.pager.processUploads();\n\n const pagedMeshes = lodMeshes\n .map((mesh) => {\n if (!mesh.paged || !this.pager) {\n return null;\n }\n const meshPosition = mesh.getWorldPosition(new THREE.Vector3());\n return {\n splats: mesh.paged,\n distance: meshPosition.distanceTo(viewPos),\n };\n })\n .filter((result) => result !== null);\n\n if (!this.pageSizeWarning && pagedMeshes.length > this.pager.maxPages) {\n this.pageSizeWarning = true;\n console.warn(\n `# paged SplatMeshes exceeds maxPages: ${pagedMeshes.length} > ${this.pager.maxPages}`,\n );\n }\n\n // Fetch root chunk of each paged splats in priority of distance to camera\n pagedMeshes.sort((a, b) => a.distance - b.distance);\n this.pager.fetchPriority = pagedMeshes.map(({ splats }) => ({\n splats,\n chunk: 0,\n }));\n\n for (const [lodId, chunk] of chunks) {\n const splats = this.lodIdToSplats.get(lodId);\n if (splats instanceof PagedSplats) {\n if (chunk !== 0) {\n this.pager.fetchPriority.push({ splats, chunk });\n }\n }\n }\n\n this.pager.autoDrive = this.enableLodFetching;\n if (this.enableLodFetching) {\n this.pager.driveFetchers();\n }\n }\n\n if (\n this.lodRaycast &&\n performance.now() - this.lastLodRaycastTime >= this.lodRaycastIntervalMs\n ) {\n this.lastLodRaycastTime = performance.now();\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats: Math.min(this.lodRaycast, Math.round(totalLodSplats * 0.1)),\n pixelScaleLimit,\n instances,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n };\n const raycastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices } = result;\n const totalRaycastSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n mesh.raycastIndices = countIndices;\n // console.log(\"Set raycast indices\", uuid, countIndices.numSplats, countIndices.indices.length);\n }\n // console.log(`raycast traverse in ${raycastTraverseTime} ms, totalRaycastSplats=${totalRaycastSplats}`);\n }\n }\n\n private async cleanupLodTrees(worker: SplatWorker) {\n const DISPOSE_TIMEOUT_MS = 3000;\n const now = performance.now();\n\n let oldest = null;\n for (const [splats, record] of this.lodIds.entries()) {\n if (oldest == null || record.lastTouched < oldest.lastTouched) {\n oldest = {\n splats,\n lastTouched: record.lastTouched,\n lodId: record.lodId,\n };\n }\n }\n if (!oldest || oldest.lastTouched > now - DISPOSE_TIMEOUT_MS) {\n return;\n }\n\n this.lodIds.delete(oldest.splats);\n this.lodIdToSplats.delete(oldest.lodId);\n\n for (const [mesh, instance] of this.lodInstances.entries()) {\n if (instance.lodId === oldest.lodId) {\n instance.texture.dispose();\n this.lodInstances.delete(mesh);\n }\n }\n\n await worker.call(\"disposeLodTree\", { lodId: oldest.lodId });\n // console.log(\"disposed lodTree\", oldest.lodId);\n }\n\n private updateLodIndices(\n uuidToMesh: Map,\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >,\n ) {\n // console.log(\"updateLodIndices\", keyIndices);\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const { lodId, numSplats, indices } = countIndices;\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n\n if (mesh.paged) {\n mesh.paged.update(numSplats, indices);\n // console.log(\"*** paged.update\", lodId, numSplats, indices.slice(0, 5).join(\",\"));\n } else {\n let instance = this.lodInstances.get(mesh);\n if (instance) {\n if (indices.length > instance.indices.length) {\n instance.texture.dispose();\n instance = undefined;\n }\n }\n\n const rows = Math.ceil(indices.length / 16384);\n if (!instance) {\n const capacity = rows * 16384;\n if (indices.length !== capacity) {\n throw new Error(\"Indices length != capacity\");\n }\n const texture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n instance = { lodId, numSplats, indices, texture };\n this.lodInstances.set(mesh, instance);\n } else {\n instance.numSplats = numSplats;\n // instance.indices.set(indices.subarray(0, numSplats));\n\n const renderer = this.renderer;\n const gl = renderer.getContext() as WebGL2RenderingContext;\n if (renderer.properties.has(instance.texture)) {\n const props = renderer.properties.get(instance.texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"lodIndices texture not found\");\n }\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n indices,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n }\n mesh.updateMappingVersion();\n }\n }\n\n private async readbackDepth({\n current,\n renderer,\n numSplats,\n readback,\n }: {\n current: SplatAccumulator;\n renderer: THREE.WebGLRenderer;\n numSplats: number;\n readback: Uint32Array;\n }) {\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!current.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(readback.buffer);\n const renderState = this.saveRenderState(renderer);\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < numSplats) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((numSplats - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n renderer.setRenderTarget(current.target, layer);\n\n const promise = renderer.readRenderTargetPixelsAsync(\n current.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n undefined,\n current.extSplats ? 2 : 1,\n );\n promises.push(promise);\n\n if (this.flushAfterRead) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.resetRenderState(renderer, renderState);\n return Promise.all(promises).then(() => readback);\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private static emptyOrdering = (() => {\n const numIndices = 4 * 4096 * 1;\n const emptyArray = new Uint32Array(numIndices);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n render(scene: THREE.Scene, camera: THREE.Camera) {\n try {\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n }\n\n renderTarget({\n scene,\n camera,\n }: { scene: THREE.Scene; camera: THREE.Camera }): THREE.WebGLRenderTarget {\n const target = this.backTarget ?? this.target;\n if (!target) {\n throw new Error(\"No target\");\n }\n\n const previousTarget = this.renderer.getRenderTarget();\n try {\n this.renderer.setRenderTarget(target);\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n this.renderer.setRenderTarget(previousTarget);\n }\n\n if (target !== this.target) {\n // Swap back buffer and target\n [this.target, this.backTarget] = [this.backTarget, this.target];\n }\n return target;\n }\n\n // Read back the previously rendered target image as a Uint8Array of packed\n // RGBA values (in that order). Subsequent calls to this.readTarget()\n // will reuse the same buffers to minimize memory allocations.\n async readTarget(): Promise {\n if (!this.target) {\n throw new Error(\"Must initialize with target\");\n }\n const { width, height } = this.target;\n const byteSize = width * height * 4;\n if (!this.superPixels || this.superPixels.length < byteSize) {\n this.superPixels = new Uint8Array(byteSize);\n // console.log(`Allocated superPixels: ${width}x${height} = ${pixelCount} bytes`);\n }\n const superPixels = this.superPixels;\n\n await this.renderer.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n width,\n height,\n superPixels,\n );\n\n const { superXY } = this;\n if (superXY === 1) {\n return superPixels;\n }\n\n const subWidth = width / superXY;\n const subHeight = height / superXY;\n const subSize = subWidth * subHeight * 4;\n if (!this.targetPixels || this.targetPixels.length < subSize) {\n this.targetPixels = new Uint8Array(subSize);\n // console.log(`Allocated targetPixels: ${subWidth}x${subHeight} = ${subSize} bytes`);\n }\n const targetPixels = this.targetPixels;\n\n const super2 = superXY * superXY;\n for (let y = 0; y < subHeight; y++) {\n const row = y * subWidth;\n for (let x = 0; x < subWidth; x++) {\n const superCol = x * superXY;\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n for (let sy = 0; sy < superXY; sy++) {\n const superRow = (y * superXY + sy) * width;\n for (let sx = 0; sx < superXY; sx++) {\n const superIndex = (superRow + superCol + sx) * 4;\n r += superPixels[superIndex];\n g += superPixels[superIndex + 1];\n b += superPixels[superIndex + 2];\n a += superPixels[superIndex + 3];\n }\n }\n const pixelIndex = (row + x) * 4;\n targetPixels[pixelIndex] = r / super2;\n targetPixels[pixelIndex + 1] = g / super2;\n targetPixels[pixelIndex + 2] = b / super2;\n targetPixels[pixelIndex + 3] = a / super2;\n }\n }\n return targetPixels;\n }\n\n async renderReadTarget({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }): Promise {\n this.renderTarget({ scene, camera });\n return this.readTarget();\n }\n\n // Data and buffers used for environment map rendering\n private static cubeRender: {\n target: THREE.WebGLCubeRenderTarget;\n cubeCamera: THREE.CubeCamera;\n near: number;\n far: number;\n } | null = null;\n private static pmrem: THREE.PMREMGenerator | null = null;\n\n // Renders out the scene to a cube map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces.\n async renderCubeMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n filter = false,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n filter: boolean;\n }): Promise {\n if (\n !SparkRenderer.cubeRender ||\n SparkRenderer.cubeRender.target.width !== size ||\n SparkRenderer.cubeRender.near !== near ||\n SparkRenderer.cubeRender.far !== far\n ) {\n if (SparkRenderer.cubeRender) {\n SparkRenderer.cubeRender.target.dispose();\n }\n const target = new THREE.WebGLCubeRenderTarget(size, {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n generateMipmaps: filter,\n minFilter: filter ? THREE.LinearMipMapLinearFilter : THREE.LinearFilter,\n magFilter: THREE.LinearFilter,\n colorSpace: filter ? THREE.LinearSRGBColorSpace : THREE.SRGBColorSpace,\n });\n const cubeCamera = new THREE.CubeCamera(near, far, target);\n SparkRenderer.cubeRender = { target, cubeCamera, near, far };\n }\n\n const { target, cubeCamera } = SparkRenderer.cubeRender;\n cubeCamera.position.copy(worldCenter);\n\n // Save the visibility state of objects we want to hide before render\n const objectVisibility = new Map();\n for (const object of hideObjects) {\n objectVisibility.set(object, object.visible);\n object.visible = false;\n }\n\n if (update) {\n const tempCamera = new THREE.Camera();\n tempCamera.position.copy(worldCenter);\n await this.update({ scene, camera: tempCamera });\n }\n\n try {\n SparkRenderer.sparkOverride = this;\n // Update the CubeCamera, which performs 6 cube face renders\n cubeCamera.update(this.renderer, scene);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n\n // Restore viewpoint to default and object visibility\n for (const [object, visible] of objectVisibility.entries()) {\n object.visible = visible;\n }\n\n return target.texture;\n }\n\n async readCubeTargets(): Promise {\n if (!SparkRenderer.cubeRender) {\n throw new Error(\"No cube render\");\n }\n\n const textures = SparkRenderer.cubeRender.target.texture;\n const promises = [];\n const buffers = [];\n\n for (let i = 0; i < textures.images.length; ++i) {\n const { width, height } = textures.images[i];\n const byteSize = width * height * 4;\n const readback = new Uint8Array(byteSize);\n buffers.push(readback);\n const promise = this.renderer.readRenderTargetPixelsAsync(\n SparkRenderer.cubeRender.target,\n 0,\n 0,\n width,\n height,\n readback,\n i,\n );\n promises.push(promise);\n }\n\n await Promise.all(promises);\n return buffers;\n }\n\n // Renders out the scene to an environment map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces,\n // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture\n // that can assigned directly to a THREE.MeshStandardMaterial.envMap property.\n async renderEnvMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n }): Promise {\n const cubeTexture = await this.renderCubeMap({\n scene,\n worldCenter,\n size,\n near,\n far,\n hideObjects,\n update,\n filter: true,\n });\n // Pre-filter the cube map using THREE.PMREMGenerator if requested\n if (!SparkRenderer.pmrem) {\n SparkRenderer.pmrem = new THREE.PMREMGenerator(this.renderer);\n }\n\n return SparkRenderer.pmrem?.fromCubemap(cubeTexture).texture;\n }\n\n // Utility function to recursively set the envMap property for any\n // THREE.MeshStandardMaterial within the subtree of root.\n recurseSetEnvMap(root: THREE.Object3D, envMap: THREE.Texture) {\n root.traverse((node) => {\n if (node instanceof THREE.Mesh) {\n if (Array.isArray(node.material)) {\n for (const material of node.material) {\n if (material instanceof THREE.MeshStandardMaterial) {\n material.envMap = envMap;\n }\n }\n } else {\n if (node.material instanceof THREE.MeshStandardMaterial) {\n node.material.envMap = envMap;\n }\n }\n }\n });\n }\n\n async getLodTreeLevel(\n splats: SplatMesh,\n level: number,\n pageColoring = false,\n ) {\n const instance = this.lodInstances.get(splats);\n if (!instance) {\n return null;\n }\n\n const result = await this.ensureLodWorker().exclusive(async (worker) => {\n return (await worker.call(\"getLodTreeLevel\", {\n lodId: instance.lodId,\n level,\n })) as { indices: Uint32Array };\n });\n\n if (splats.packedSplats?.lodSplats) {\n const newSplats = splats.packedSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ packedSplats: newSplats });\n }\n if (splats.extSplats?.lodSplats) {\n const newSplats = splats.extSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ extSplats: newSplats });\n }\n throw new Error(\n \"Only LoD-enabled PackedSplats and ExtSplats are supported\",\n );\n }\n\n get premultipliedAlpha(): boolean {\n return this.material.premultipliedAlpha;\n }\n\n set premultipliedAlpha(value: boolean) {\n if (this.material.premultipliedAlpha !== value) {\n this.material.premultipliedAlpha = value;\n this.material.needsUpdate = true;\n }\n }\n}\n","import * as THREE from \"three\";\n\nimport init_wasm, { decode_rad_header } from \"spark-rs\";\nimport { LN_SCALE_MAX, LN_SCALE_MIN, dyno } from \".\";\nimport { evaluateExtSH } from \"./ExtSplats\";\nimport { evaluatePackedSH } from \"./PackedSplats\";\nimport { getSplatFileType, getSplatFileTypeFromPath } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n type ExtResult,\n type PackedResult,\n type RadMeta,\n type SplatEncoding,\n SplatFileType,\n} from \"./defines\";\nimport { pagedSplatTexCoord } from \"./dyno\";\nimport { decodeExtSplat, getTextureSize, unpackSplat } from \"./utils\";\n\nexport interface PagedSplatsOptions {\n pager?: SplatPager;\n rootUrl?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n maxSh?: number;\n}\n\nexport class PagedSplats implements SplatSource {\n pager?: SplatPager;\n rootUrl: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n\n numSh: number;\n maxSh: number;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array | [Uint32Array, Uint32Array];\n\n numSplats: number;\n splatEncoding?: SplatEncoding;\n radMetaPromise?: Promise<{ meta: RadMeta; chunksStart: number }>;\n\n dynoNumSplats: dyno.DynoInt<\"numSplats\">;\n dynoIndices: dyno.DynoUsampler2D<\"indices\", THREE.DataTexture>;\n rgbMinMaxLnScaleMinMax: dyno.DynoVec4<\n THREE.Vector4,\n \"rgbMinMaxLnScaleMinMax\"\n >;\n lodOpacity: dyno.DynoBool<\"lodOpacity\">;\n dynoNumSh: dyno.DynoInt<\"numSh\">;\n shMax: dyno.DynoVec3;\n\n constructor(options: PagedSplatsOptions) {\n this.pager = options.pager;\n this.rootUrl = options.rootUrl ?? \"\";\n this.requestHeader = options.requestHeader;\n this.withCredentials = options.withCredentials;\n this.numSh = 0;\n this.maxSh = options.pager?.maxSh ?? 3;\n\n this.numSplats = 0;\n\n this.dynoNumSplats = new dyno.DynoInt({ value: 0 });\n this.dynoIndices = new dyno.DynoUsampler2D({\n value: SplatPager.emptyIndicesTexture,\n });\n\n this.rgbMinMaxLnScaleMinMax = new dyno.DynoVec4({\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n });\n this.lodOpacity = new dyno.DynoBool({\n value: false,\n });\n\n this.dynoNumSh = new dyno.DynoInt({ value: 0 });\n this.shMax = new dyno.DynoVec3({ value: new THREE.Vector3() });\n\n this.fileBytes = options.fileBytes;\n this.fileType = options.fileType;\n if (!this.fileType && this.fileBytes) {\n this.fileType = getSplatFileType(this.fileBytes);\n }\n if (!this.fileType && this.rootUrl) {\n this.fileType = getSplatFileTypeFromPath(this.rootUrl);\n }\n if (!this.fileType) {\n throw new Error(\"Unable to determine file type\");\n }\n if (this.fileType === SplatFileType.RAD) {\n this.radMetaPromise = this.getRadMeta();\n }\n }\n\n dispose() {\n if (this.dynoIndices.value !== SplatPager.emptyIndicesTexture) {\n this.dynoIndices.value.dispose();\n this.dynoIndices.value = SplatPager.emptyIndicesTexture;\n }\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n getRadMeta(): Promise<{ meta: RadMeta; chunksStart: number }> {\n if (this.radMetaPromise) {\n return this.radMetaPromise;\n }\n\n this.radMetaPromise = (async () => {\n await wasmInitialized;\n\n if (this.fileBytes) {\n // Shouldn't be more than 1 MB, so don't send more data than that.\n const metaStart = decode_rad_header(this.fileBytes.slice(0, 1048576));\n if (metaStart) {\n return metaStart;\n }\n throw new Error(\"Failed to decode RAD header\");\n }\n if (!this.rootUrl) {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n // We don't know how big the header will be. Most likely 64KB will be enough,\n // but try larger blocks in backoff if it wasn't enough.\n for (const tryBytes of [65536, 256 * 1024, 1024 * 1024]) {\n const bytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset: 0,\n bytes: tryBytes,\n });\n const metaStart = decode_rad_header(bytes);\n if (metaStart) {\n return metaStart;\n }\n }\n throw new Error(\"Failed to decode RAD header\");\n })().then((metaStart) => {\n // console.log(\"RAD meta: \", metaStart.meta);\n return metaStart;\n });\n\n this.radMetaPromise.catch((error) => {\n console.error(error);\n // Allow it to be tried again\n // this.radMetaPromise = undefined;\n });\n\n return this.radMetaPromise;\n }\n\n chunkUrl(chunk: number): string {\n return this.rootUrl.replace(/-lod-0\\./, `-lod-${chunk}.`);\n }\n\n async fetchDecodeChunk(chunk: number) {\n let decodeBytes = undefined;\n\n if (this.fileType === SplatFileType.RAD) {\n const { meta, chunksStart } = await this.getRadMeta();\n if (chunk < 0 || chunk >= meta.chunks.length) {\n throw new Error(\n `Chunk index out of range: ${chunk} (max: ${meta.chunks.length - 1})`,\n );\n }\n let { offset, bytes, filename } = meta.chunks[chunk];\n\n if (filename) {\n if (this.fileBytes) {\n throw new Error(\"Chunked RAD file not supported with fileBytes\");\n }\n const resolvedRoot = new URL(\n this.rootUrl,\n window.location.href,\n ).toString();\n const chunkUrl = new URL(filename, resolvedRoot).toString();\n decodeBytes = await fetchRange({\n url: chunkUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n });\n } else {\n offset += chunksStart;\n // console.log(`Fetching chunk ${chunk} at offset ${offset} with bytes ${bytes}`);\n if (this.fileBytes) {\n if (offset < 0 || offset + bytes > this.fileBytes.length) {\n throw new Error(\n `Invalid chunk offset or bytes: ${offset} + ${bytes} > ${this.fileBytes.length}`,\n );\n }\n decodeBytes = this.fileBytes.slice(offset, offset + bytes);\n } else if (this.rootUrl) {\n decodeBytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset,\n bytes,\n });\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n }\n } else if (this.fileBytes) {\n // Fall through\n } else if (this.rootUrl) {\n const url = this.chunkUrl(chunk);\n const request = new Request(url, {\n headers: this.requestHeader\n ? new Headers(this.requestHeader)\n : undefined,\n credentials: this.withCredentials ? \"include\" : \"same-origin\",\n });\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n decodeBytes = new Uint8Array(await response.arrayBuffer());\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n return await workerPool.withWorker(async (worker) => {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n if (!this.pager.extSplats) {\n const result = (await worker.call(\"loadPackedSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: this.sh3Codes?.slice(),\n })) as { lodSplats: PackedResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = lodSplats.splatEncoding;\n\n this.numSh = lodSplats.extra.sh3\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n\n this.rgbMinMaxLnScaleMinMax.value.set(\n this.splatEncoding.rgbMin ?? 0.0,\n this.splatEncoding.rgbMax ?? 1.0,\n this.splatEncoding.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding.lnScaleMax ?? LN_SCALE_MAX,\n );\n\n this.lodOpacity.value = this.splatEncoding.lodOpacity ?? false;\n\n this.shMax.value.set(\n this.splatEncoding.sh1Max ?? 1.0,\n this.splatEncoding.sh2Max ?? 1.0,\n this.splatEncoding.sh3Max ?? 1.0,\n );\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n }\n\n const sh3Codes = this.sh3Codes as [Uint32Array, Uint32Array] | undefined;\n const result = (await worker.call(\"loadExtSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: sh3Codes\n ? [sh3Codes[0].slice(), sh3Codes[1].slice()]\n : undefined,\n })) as { lodSplats: ExtResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = DEFAULT_SPLAT_ENCODING;\n this.numSh =\n lodSplats.extra.sh3a && lodSplats.extra.sh3b\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n });\n }\n\n update(numSplats: number, indices: Uint32Array) {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const renderer = this.pager.renderer;\n this.numSplats = numSplats;\n this.dynoNumSplats.value = this.numSplats;\n const rows = Math.ceil(numSplats / 16384);\n\n let indicesTexture =\n this.dynoIndices.value === SplatPager.emptyIndicesTexture\n ? undefined\n : this.dynoIndices.value;\n if (indicesTexture && rows > indicesTexture.image.height) {\n indicesTexture.dispose();\n indicesTexture = undefined;\n }\n\n if (!indicesTexture) {\n indicesTexture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n indicesTexture.internalFormat = \"RGBA32UI\";\n indicesTexture.needsUpdate = true;\n renderer.initTexture(indicesTexture);\n this.dynoIndices.value = indicesTexture;\n } else {\n const textureIndices = indicesTexture.image.data as Uint32Array;\n textureIndices.set(indices.subarray(0, numSplats));\n\n const gl = renderer.getContext() as WebGL2RenderingContext;\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(\n gl.TEXTURE_2D,\n getGlTexture(renderer, indicesTexture),\n );\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n indices,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n\n prepareFetchSplat() {}\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n if (!this.pager) {\n return false;\n }\n return Math.min(this.numSh, this.pager.maxSh) > 0;\n }\n\n getNumSh(): number {\n return this.numSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: {\n index: dyno.DynoVal<\"int\">;\n viewOrigin?: dyno.DynoVal<\"vec3\">;\n }): dyno.DynoVal {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const splatIndex = this.pager.readIndex.apply({\n index,\n numSplats: this.dynoNumSplats,\n indices: this.dynoIndices,\n }).index;\n\n if (!this.pager.extSplats) {\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(\n this.numSh,\n this.maxSh,\n this.pager.maxSh,\n );\n return this.pager.readSplatDir.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n viewOrigin,\n numSh: this.dynoNumSh,\n shMax: this.shMax,\n }).gsplat;\n }\n return this.pager.readSplat.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n }).gsplat;\n }\n\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(this.numSh, this.maxSh, this.pager.maxSh);\n return this.pager.readSplatExtDir.apply({\n index: splatIndex,\n viewOrigin,\n numSh: this.dynoNumSh,\n }).gsplat;\n }\n return this.pager.readSplatExt.apply({ index: splatIndex }).gsplat;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.pager || !this.numSplats) {\n return;\n }\n const extSplats = this.pager.extSplats;\n const indices = this.dynoIndices.value.image.data as Uint32Array;\n const packedSplatArray = this.pager.packedTexture.value.image\n .data as Uint32Array;\n const extPackedSplatArray = this.pager.extTexture.value.image\n .data as Uint32Array;\n const extArrays: [Uint32Array, Uint32Array] = [\n packedSplatArray,\n extPackedSplatArray,\n ];\n\n for (let i = 0; i < this.numSplats; ++i) {\n const splatIndex = indices[i];\n const unpacked = extSplats\n ? decodeExtSplat(extArrays, splatIndex)\n : unpackSplat(packedSplatArray, splatIndex, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n}\n\nexport interface SplatPagerOptions {\n /**\n * THREE.WebGLRenderer instance to upload texture data\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Whether to use extended Gsplat encoding for paged splats.\n * @default false\n */\n extSplats?: boolean;\n /**\n * Maximum size of splat page pool\n * @default 65536 * 256 = 16777216\n */\n maxSplats?: number;\n /**\n * Maximum number of spherical harmonics to keep\n * @default 3\n */\n maxSh?: number;\n /**\n * Automatically drive page fetching, or poll via drive()\n * @default true\n */\n autoDrive?: boolean;\n /**\n * Number of parallel chunk fetchers\n * @default 3\n */\n numFetchers?: number;\n}\n\nexport class SplatPager {\n renderer: THREE.WebGLRenderer;\n\n extSplats: boolean;\n maxPages: number;\n maxSplats: number;\n pageSplats: number;\n\n maxSh: number;\n curSh: number;\n\n autoDrive: boolean;\n numFetchers: number;\n fetchPause = 0;\n\n splatsChunkToPage: Map<\n PagedSplats,\n ({ page: number; lru: number } | undefined)[]\n > = new Map();\n pageToSplatsChunk: (\n | { splats: PagedSplats; chunk: number; time: number }\n | undefined\n )[] = [];\n pageFreelist: number[];\n pageLru: Set<{ page: number; lru: number }>;\n freeablePages: number[];\n newUploads: {\n page: number;\n numSplats: number;\n packedArray: Uint32Array;\n extArray?: Uint32Array;\n extra: Record;\n }[];\n readyUploads: {\n page: number;\n numSplats: number;\n packedArray: Uint32Array;\n extArray?: Uint32Array;\n extra: Record;\n }[];\n lodTreeUpdates: {\n splats: PagedSplats;\n page: number;\n chunk: number;\n numSplats: number;\n lodTree?: Uint32Array;\n }[];\n\n fetchers: { splats: PagedSplats; chunk: number; promise: Promise }[];\n fetched: {\n splats: PagedSplats;\n chunk: number;\n data: PackedResult | ExtResult;\n }[];\n fetchPriority: { splats: PagedSplats; chunk: number }[];\n\n packedTexture: dyno.DynoUsampler2DArray<\n \"packedTexture\",\n THREE.DataArrayTexture\n >;\n extTexture: dyno.DynoUsampler2DArray<\"extTexture\", THREE.DataArrayTexture>;\n\n sh1Texture: dyno.DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture: dyno.DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture: dyno.DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB: dyno.DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n\n readIndex: dyno.DynoBlock<\n { index: \"int\"; numSplats: \"int\"; indices: \"usampler2D\" },\n { index: \"int\" }\n >;\n readSplat: dyno.DynoBlock<\n { index: \"int\"; rgbMinMaxLnScaleMinMax: \"vec4\"; lodOpacity: \"bool\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExt: dyno.DynoBlock<\n { index: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatDir: dyno.DynoBlock<\n {\n index: \"int\";\n rgbMinMaxLnScaleMinMax: \"vec4\";\n lodOpacity: \"bool\";\n viewOrigin: \"vec3\";\n numSh: \"int\";\n shMax: \"vec3\";\n },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExtDir: dyno.DynoBlock<\n { index: \"int\"; viewOrigin: \"vec3\"; numSh: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n\n constructor(options: SplatPagerOptions) {\n this.renderer = options.renderer;\n this.extSplats = options.extSplats ?? false;\n\n this.pageSplats = 65536;\n this.maxSplats = options.maxSplats ?? 16777216;\n this.maxPages = Math.ceil(this.maxSplats / this.pageSplats);\n this.maxSplats = this.maxPages * this.pageSplats;\n\n this.maxSh = options.maxSh ?? 3;\n this.curSh = 0;\n\n this.autoDrive = options.autoDrive ?? true;\n this.numFetchers = options.numFetchers ?? 3;\n\n this.splatsChunkToPage = new Map();\n this.pageToSplatsChunk = new Array(this.maxPages);\n this.pageFreelist = Array.from({ length: this.maxPages }, (_, i) => i);\n this.pageLru = new Set();\n this.freeablePages = [];\n this.newUploads = [];\n this.readyUploads = [];\n this.lodTreeUpdates = [];\n\n this.fetchers = [];\n this.fetched = [];\n this.fetchPriority = [];\n\n this.packedTexture = new dyno.DynoUsampler2DArray({\n value: this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n ),\n });\n this.extTexture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n )\n : SplatPager.emptyExtTexture,\n });\n this.sh1Texture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? SplatPager.emptyExtSh1Texture\n : SplatPager.emptySh1Texture,\n });\n this.sh2Texture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? SplatPager.emptyExtSh2Texture\n : SplatPager.emptySh2Texture,\n });\n this.sh3Texture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? SplatPager.emptyExtSh3Texture\n : SplatPager.emptySh3Texture,\n });\n this.sh3TextureB = new dyno.DynoUsampler2DArray({\n value: SplatPager.emptyExtSh3BTexture,\n });\n\n this.readIndex = dyno.dynoBlock(\n { index: \"int\", numSplats: \"int\", indices: \"usampler2D\" },\n { index: \"int\" },\n ({ index, numSplats, indices }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n numSplats: \"int\",\n indices: \"usampler2D\",\n },\n outTypes: { index: \"int\" },\n inputs: {\n index,\n numSplats,\n indices,\n },\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n if (${inputs.index} >= ${inputs.numSplats}) {\n return;\n }\n\n ivec2 indexCoord = ivec2((${inputs.index} >> 2) & 4095, ${inputs.index} >> 14);\n uint index = texelFetch(${inputs.indices}, indexCoord, 0)[${inputs.index} & 3];\n ${outputs.index} = int(index);\n `),\n }).outputs;\n },\n );\n\n this.readSplat = dyno.dynoBlock(\n { index: \"int\", rgbMinMaxLnScaleMinMax: \"vec4\", lodOpacity: \"bool\" },\n { gsplat: dyno.Gsplat },\n ({ index, rgbMinMaxLnScaleMinMax, lodOpacity }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n packedTexture: \"usampler2DArray\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n packedTexture: this.packedTexture,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = pagedSplatTexCoord(index);\n uvec4 packedData = texelFetch(${inputs.packedTexture}, splatCoord, 0);\n\n unpackSplatEncoding(packedData, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba, ${inputs.rgbMinMaxLnScaleMinMax});\n if ((${outputs.gsplat}.rgba.a == 0.0) || all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n \n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n if (${inputs.lodOpacity}) {\n ${outputs.gsplat}.rgba.a *= 2.0;\n }\n `),\n }).outputs;\n },\n );\n\n this.readSplatDir = dyno.dynoBlock(\n {\n index: \"int\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n shMax: \"vec3\",\n },\n { gsplat: dyno.Gsplat },\n ({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n viewOrigin,\n numSh,\n shMax,\n }) => {\n if (\n !index ||\n !rgbMinMaxLnScaleMinMax ||\n !lodOpacity ||\n !viewOrigin ||\n !numSh ||\n !shMax\n ) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplat.apply({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluatePackedSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.sh1Texture,\n sh2Texture: this.sh2Texture,\n sh3Texture: this.sh3Texture,\n shMax,\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n\n this.readSplatExt = dyno.dynoBlock(\n { index: \"int\" },\n { gsplat: dyno.Gsplat },\n ({ index }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n extTexture1: \"usampler2DArray\",\n extTexture2: \"usampler2DArray\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n extTexture1: this.packedTexture,\n extTexture2: this.extTexture,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16);\n uvec4 ext1 = texelFetch(${inputs.extTexture1}, splatCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if (alpha == 0.0) {\n return;\n }\n\n uvec4 ext2 = texelFetch(${inputs.extTexture2}, splatCoord, 0);\n unpackSplatExt(ext1, ext2, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba);\n if (all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n\n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n `),\n }).outputs;\n },\n );\n\n this.readSplatExtDir = dyno.dynoBlock(\n {\n index: \"int\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n },\n { gsplat: dyno.Gsplat },\n ({ index, viewOrigin, numSh }) => {\n if (!index || !viewOrigin || !numSh) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplatExt.apply({ index }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluateExtSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.sh1Texture,\n sh2Texture: this.sh2Texture,\n sh3TextureA: this.sh3Texture,\n sh3TextureB: this.sh3TextureB,\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n }\n\n dispose() {\n this.autoDrive = false;\n this.numFetchers = 0;\n\n this.packedTexture.value.dispose();\n this.packedTexture.value.source.data = null;\n if (this.extTexture.value !== SplatPager.emptyExtTexture) {\n this.extTexture.value.dispose();\n this.extTexture.value.source.data = null;\n }\n\n if (!this.extSplats) {\n if (this.sh1Texture.value !== SplatPager.emptySh1Texture) {\n this.sh1Texture.value.dispose();\n this.sh1Texture.value.source.data = null;\n }\n if (this.sh2Texture.value !== SplatPager.emptySh2Texture) {\n this.sh2Texture.value.dispose();\n this.sh2Texture.value.source.data = null;\n }\n if (this.sh3Texture.value !== SplatPager.emptySh3Texture) {\n this.sh3Texture.value.dispose();\n this.sh3Texture.value.source.data = null;\n }\n } else {\n if (this.sh1Texture.value !== SplatPager.emptyExtSh1Texture) {\n this.sh1Texture.value.dispose();\n this.sh1Texture.value.source.data = null;\n }\n if (this.sh2Texture.value !== SplatPager.emptyExtSh2Texture) {\n this.sh2Texture.value.dispose();\n this.sh2Texture.value.source.data = null;\n }\n if (this.sh3Texture.value !== SplatPager.emptyExtSh3Texture) {\n this.sh3Texture.value.dispose();\n this.sh3Texture.value.source.data = null;\n }\n if (this.sh3TextureB.value !== SplatPager.emptyExtSh3BTexture) {\n this.sh3TextureB.value.dispose();\n this.sh3TextureB.value.source.data = null;\n }\n }\n }\n\n private ensureShTextures(numSh: number) {\n this.curSh = Math.max(this.curSh, numSh);\n if (!this.extSplats) {\n if (\n this.curSh >= 1 &&\n this.sh1Texture.value === SplatPager.emptySh1Texture\n ) {\n this.sh1Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 2),\n 256,\n 256,\n this.maxPages,\n THREE.RGIntegerFormat,\n THREE.UnsignedIntType,\n \"RG32UI\",\n );\n }\n } else {\n if (\n this.curSh >= 1 &&\n this.sh1Texture.value === SplatPager.emptyExtSh1Texture\n ) {\n this.sh1Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n }\n if (\n this.curSh >= 2 &&\n this.sh2Texture.value ===\n (!this.extSplats\n ? SplatPager.emptySh2Texture\n : SplatPager.emptyExtSh2Texture)\n ) {\n this.sh2Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n if (!this.extSplats) {\n if (\n this.curSh >= 3 &&\n this.sh3Texture.value === SplatPager.emptySh3Texture\n ) {\n this.sh3Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n } else {\n if (this.curSh >= 3) {\n if (this.sh3Texture.value === SplatPager.emptyExtSh3Texture) {\n this.sh3Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n if (this.sh3TextureB.value === SplatPager.emptyExtSh3BTexture) {\n this.sh3TextureB.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n }\n }\n }\n\n private allocatePage(): number | undefined {\n return this.pageFreelist.shift();\n }\n\n private freePage(page: number) {\n this.pageFreelist.push(page);\n }\n\n getSplatsChunk(splats: PagedSplats, chunk: number) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n return undefined;\n }\n return chunks[chunk];\n }\n\n private insertSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n now: number,\n ) {\n if (!this.splatsChunkToPage.has(splats)) {\n this.splatsChunkToPage.set(splats, []);\n }\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n if (chunk >= chunks.length) {\n chunks.length = chunk + 1;\n }\n const pageLru = { page, lru: now };\n chunks[chunk] = pageLru;\n this.pageLru.add(pageLru);\n\n this.pageToSplatsChunk[page] = { splats, chunk, time: performance.now() };\n return this.pageToSplatsChunk[page];\n }\n\n private removeSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n ) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n\n const pageLru = chunks[chunk];\n if (!pageLru) {\n throw new Error(\n `pageLru not found for splats: ${splats}, chunk: ${chunk}, page: ${page}`,\n );\n }\n this.pageLru.delete(pageLru);\n\n chunks[chunk] = undefined;\n\n while (chunks.length > 0 && chunks[chunks.length - 1] === undefined) {\n chunks.pop();\n }\n if (chunks.length === 0) {\n this.splatsChunkToPage.delete(splats);\n }\n\n this.pageToSplatsChunk[page] = undefined;\n while (\n this.pageToSplatsChunk.length > 0 &&\n this.pageToSplatsChunk[this.pageToSplatsChunk.length - 1] === undefined\n ) {\n this.pageToSplatsChunk.pop();\n }\n }\n\n private uploadPage(\n page: number,\n packedArray: Uint32Array,\n extra: Record,\n extArray?: Uint32Array,\n ) {\n const pageBase = page * this.pageSplats;\n\n // const gl = this.renderer.getContext() as WebGL2RenderingContext;\n\n // this.renderer.state.activeTexture(gl.TEXTURE0);\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.packedTexture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RGBA_INTEGER,\n // gl.UNSIGNED_INT,\n // packedArray,\n // );\n\n const array = this.packedTexture.value.image.data;\n array\n .subarray(pageBase * 4, pageBase * 4 + packedArray.length)\n .set(packedArray);\n this.packedTexture.value.addLayerUpdate(page);\n this.packedTexture.value.needsUpdate = true;\n\n if (extArray) {\n const array = this.extTexture.value.image.data;\n array\n .subarray(pageBase * 4, pageBase * 4 + extArray.length)\n .set(extArray);\n this.extTexture.value.addLayerUpdate(page);\n this.extTexture.value.needsUpdate = true;\n }\n\n const numSh = this.extSplats\n ? extra.sh3a && extra.sh3b\n ? 3\n : extra.sh2\n ? 2\n : extra.sh1\n ? 1\n : 0\n : extra.sh3\n ? 3\n : extra.sh2\n ? 2\n : extra.sh1\n ? 1\n : 0;\n this.ensureShTextures(numSh);\n\n if (!this.extSplats) {\n if (this.sh1Texture.value !== SplatPager.emptySh1Texture && extra.sh1) {\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.sh1Texture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RG_INTEGER,\n // gl.UNSIGNED_INT,\n // extra.sh1 as Uint32Array,\n // );\n const sh1 = extra.sh1 as Uint32Array;\n const array = this.sh1Texture.value.image.data;\n array.subarray(pageBase * 2, pageBase * 2 + sh1.length).set(sh1);\n this.sh1Texture.value.addLayerUpdate(page);\n this.sh1Texture.value.needsUpdate = true;\n }\n } else {\n if (\n this.sh1Texture.value !== SplatPager.emptyExtSh1Texture &&\n extra.sh1\n ) {\n const sh1 = extra.sh1 as Uint32Array;\n const array = this.sh1Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh1.length).set(sh1);\n this.sh1Texture.value.addLayerUpdate(page);\n this.sh1Texture.value.needsUpdate = true;\n }\n }\n\n if (this.sh2Texture.value !== SplatPager.emptySh2Texture && extra.sh2) {\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.sh2Texture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RGBA_INTEGER,\n // gl.UNSIGNED_INT,\n // extra.sh2 as Uint32Array,\n // );\n const sh2 = extra.sh2 as Uint32Array;\n const array = this.sh2Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh2.length).set(sh2);\n this.sh2Texture.value.addLayerUpdate(page);\n this.sh2Texture.value.needsUpdate = true;\n }\n\n if (!this.extSplats) {\n if (this.sh3Texture.value !== SplatPager.emptySh3Texture && extra.sh3) {\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.sh3Texture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RGBA_INTEGER,\n // gl.UNSIGNED_INT,\n // extra.sh3 as Uint32Array,\n // );\n const sh3 = extra.sh3 as Uint32Array;\n const array = this.sh3Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh3.length).set(sh3);\n this.sh3Texture.value.addLayerUpdate(page);\n this.sh3Texture.value.needsUpdate = true;\n }\n } else {\n if (\n this.sh3Texture.value !== SplatPager.emptyExtSh3Texture &&\n extra.sh3a\n ) {\n const sh3a = extra.sh3a as Uint32Array;\n const array = this.sh3Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh3a.length).set(sh3a);\n this.sh3Texture.value.addLayerUpdate(page);\n this.sh3Texture.value.needsUpdate = true;\n }\n if (\n this.sh3TextureB.value !== SplatPager.emptyExtSh3BTexture &&\n extra.sh3b\n ) {\n const sh3b = extra.sh3b as Uint32Array;\n const array = this.sh3TextureB.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh3b.length).set(sh3b);\n this.sh3TextureB.value.addLayerUpdate(page);\n this.sh3TextureB.value.needsUpdate = true;\n }\n }\n\n // this.renderer.state.bindTexture(gl.TEXTURE_2D_ARRAY, null);\n }\n\n private getGlTexture(texture: THREE.Texture): WebGLTexture {\n return getGlTexture(this.renderer, texture);\n }\n\n private newUint32ArrayTexture(\n data: Uint32Array | null,\n width: number,\n height: number,\n depth: number,\n format: THREE.AnyPixelFormat,\n type: THREE.TextureDataType,\n internalFormat: THREE.PixelFormatGPU,\n ): THREE.DataArrayTexture {\n const texture = new THREE.DataArrayTexture(data, width, height, depth);\n texture.format = format;\n texture.type = type;\n texture.internalFormat = internalFormat;\n texture.needsUpdate = true;\n this.renderer.initTexture(texture);\n return texture;\n }\n\n driveFetchers() {\n const needed = [];\n const overflow = [];\n let numPages = 0;\n\n for (const { splats, chunk } of this.fetchPriority) {\n const pageLru = this.getSplatsChunk(splats, chunk);\n if (pageLru) {\n if (numPages >= this.maxPages) {\n overflow.push(pageLru);\n } else {\n needed.push(pageLru);\n }\n numPages += 1;\n continue;\n }\n\n if (\n this.fetched.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n ) ||\n this.fetchers.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n )\n ) {\n numPages += 1;\n continue;\n }\n\n if (numPages < this.maxPages && this.fetchers.length < this.numFetchers) {\n numPages += 1;\n const promise = splats\n .fetchDecodeChunk(chunk)\n .then(\n async (data) => {\n // Place data in ready queue and remove self from active fetchers list\n this.fetched.push({ splats, chunk, data });\n if (this.fetchPause > 0) {\n await new Promise((resolve) =>\n setTimeout(resolve, this.fetchPause),\n );\n }\n },\n async (error) => {\n console.warn(error);\n const backoff = 250 + 500 * Math.random();\n await new Promise((resolve) => setTimeout(resolve, backoff));\n },\n )\n .finally(() => {\n this.fetchers = this.fetchers.filter(\n ({ splats: s, chunk: c }) => splats !== s || chunk !== c,\n );\n this.processFetched();\n });\n // Add self to active fetchers list\n this.fetchers.push({ splats, chunk, promise });\n\n promise.then((data) => {\n if (this.autoDrive) {\n this.driveFetchers();\n }\n });\n }\n }\n\n // Update LRU ordering in reverse priority order\n const now = performance.now();\n\n for (const pageLru of overflow.reverse()) {\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n\n // Create set of pages not needed\n const extraPages = new Set(this.pageLru);\n for (const pageLru of needed.reverse()) {\n extraPages.delete(pageLru);\n\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n this.freeablePages = Array.from(extraPages).map(({ page }) => page);\n }\n\n private allocateFreeable(): number | undefined {\n const page = this.freeablePages.shift();\n if (page === undefined) {\n // No freeable pages available\n return undefined;\n }\n\n const splatsChunk = this.pageToSplatsChunk[page];\n if (!splatsChunk) {\n throw new Error(`splatsChunk not found for page: ${page}`);\n }\n\n const { splats, chunk } = splatsChunk;\n this.removeSplatsChunkPage(splats, chunk, page);\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats: this.pageSplats,\n });\n return page;\n }\n\n private processFetched() {\n const now = performance.now();\n while (true) {\n const fetched = this.fetched.shift();\n if (!fetched) {\n break;\n }\n const { splats, chunk, data } = fetched;\n\n let page = this.allocatePage();\n if (page === undefined) {\n page = this.allocateFreeable();\n if (page === undefined) {\n // No pages available, stop for now\n return;\n }\n }\n\n this.insertSplatsChunkPage(splats, chunk, page, now);\n const { numSplats, extra } = data;\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats,\n lodTree: extra.lodTree as Uint32Array,\n });\n\n if (!this.extSplats) {\n const packedArray = (data as PackedResult).packedArray;\n this.newUploads.push({ page, numSplats, packedArray, extra });\n } else {\n const extArrays = (data as ExtResult).extArrays;\n const packedArray = extArrays[0];\n const extArray = extArrays[1];\n this.newUploads.push({ page, numSplats, packedArray, extArray, extra });\n }\n }\n }\n\n processUploads() {\n while (true) {\n const upload = this.readyUploads.shift();\n if (!upload) {\n break;\n }\n const { page, numSplats, packedArray, extArray, extra } = upload;\n this.uploadPage(page, packedArray, extra, extArray);\n }\n }\n\n consumeLodTreeUpdates() {\n const updates = this.lodTreeUpdates;\n this.lodTreeUpdates = [];\n\n this.readyUploads.push(...this.newUploads);\n this.newUploads = [];\n return updates;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyIndicesTexture = (() => {\n const emptyArray = new Uint32Array(4096 * 4);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyPackedTexture = this.emptyUint32x4;\n static emptyExtTexture = this.emptyUint32x4;\n static emptySh1Texture = this.emptyUint32x2;\n static emptySh2Texture = this.emptyUint32x4;\n static emptySh3Texture = this.emptyUint32x4;\n static emptyExtSh1Texture = this.emptyUint32x4;\n static emptyExtSh2Texture = this.emptyUint32x4;\n static emptyExtSh3Texture = this.emptyUint32x4;\n static emptyExtSh3BTexture = this.emptyUint32x4;\n}\n\nfunction getGlTexture(\n renderer: THREE.WebGLRenderer,\n texture: THREE.Texture,\n): WebGLTexture {\n if (!renderer.properties.has(texture)) {\n throw new Error(\"texture not found\");\n }\n const props = renderer.properties.get(texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"texture not found\");\n }\n return glTexture;\n}\n\nconst wasmInitialized = init_wasm();\n\nasync function fetchRange({\n url,\n requestHeader,\n withCredentials,\n offset,\n bytes,\n}: {\n url: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n offset?: number;\n bytes?: number;\n}): Promise {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n if (offset !== undefined && bytes !== undefined) {\n request.headers.set(\"Range\", `bytes=${offset}-${offset + bytes - 1}`);\n }\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n return new Uint8Array(await response.arrayBuffer());\n}\n","import * as THREE from \"three\";\n\nimport init_wasm, {\n get_raycast_buffer,\n get_raycast_buffer2,\n raycast_ext_buffers,\n raycast_packed_buffer,\n} from \"spark-rs\";\nimport { ExtSplats } from \"./ExtSplats\";\nimport { OldSparkRenderer } from \"./OldSparkRenderer\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { type RgbaArray, TRgbaArray } from \"./RgbaArray\";\nimport { SparkRenderer } from \"./SparkRenderer\";\nimport { SplatEdit, SplatEditSdf, SplatEdits } from \"./SplatEdit\";\nimport {\n type CovSplatModifier,\n CovSplatTransformer,\n type FrameUpdateContext,\n type GsplatModifier,\n SplatGenerator,\n SplatTransformer,\n} from \"./SplatGenerator\";\nimport { PagedSplats, SplatPager } from \"./SplatPager\";\nimport type { SplatSkinning } from \"./SplatSkinning\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n CovSplat,\n Dyno,\n DynoBool,\n DynoFloat,\n DynoInt,\n DynoUsampler2D,\n type DynoVal,\n DynoVec4,\n Gsplat,\n combineCovSplat,\n combineGsplat,\n defineGsplat,\n dyno,\n dynoBlock,\n gsplatToCovSplat,\n mul,\n splitCovSplat,\n splitGsplat,\n unindentLines,\n} from \"./dyno\";\n\nexport type SplatMeshOptions = {\n // URL to fetch a Gaussian splat file from(supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Use an existing PackedSplats object as the source instead of loading from\n // a file. Can be used to share a collection of Gsplats among multiple SplatMeshes\n // (default: undefined creates a new empty PackedSplats or decoded from a\n // data source above)\n packedSplats?: PackedSplats;\n // Use an existing SplatSource object as the source instead of loading from file.\n splats?: SplatSource;\n // Reserve space for at least this many splats when constructing the mesh\n // initially. (default: determined by file)\n maxSplats?: number;\n // Callback function to programmatically create splats at initialization\n // in provided PackedSplats. (default: undefined)\n constructSplats?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Callback function that is called when mesh initialization is complete.\n // (default: undefined)\n onLoad?: (mesh: SplatMesh) => Promise | void;\n // Controls whether SplatEdits have any effect on this mesh. (default: true)\n editable?: boolean;\n // Controls whether SplatMesh participates in Three.js raycasting (default: true)\n raycastable?: boolean;\n // Minimum opacity for raycasting splats. (default: 0.2)\n minRaycastOpacity?: number;\n // Callback function that is called every frame to update the mesh.\n // Call mesh.updateVersion() if splats need to be regenerated due to some change.\n // Calling updateVersion() is not necessary for object transformations, recoloring,\n // or opacity adjustments as these are auto-detected. (default: undefined)\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n // Gsplat modifier to apply in object-space before any transformations.\n // A GsplatModifier is a dyno shader-graph block that transforms an input\n // gsplat: DynoVal to an output gsplat: DynoVal with gsplat.center\n // coordinate in object-space. (default: undefined)\n objectModifier?: GsplatModifier;\n objectModifiers?: GsplatModifier[];\n // Gsplat modifier to apply in world-space after transformations.\n // (default: undefined)\n worldModifier?: GsplatModifier;\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Set to true to load/use \"extended splat\" encoding with float32 x/y/z\n extSplats?: boolean | ExtSplats;\n // Set to true to output covariance splats for anisotropic scaling\n covSplats?: boolean;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Only create LoD if the input splat acount is above this (default: undefined=0)\n lodAbove?: number;\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Force enable/disable LoD (default: enabled iff packedSplats.lodSplats is not null)\n enableLod?: boolean;\n // LoD scale to apply @default 1.0\n lodScale?: number;\n // Foveation scale to apply behind viewer\n // (default: 1.0)\n behindFoveate?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction\n // with perfection foveation=1.0\n // (default: 0.0)\n coneFov0?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction. 0.0=disable\n // (default: 0.0)\n coneFov?: number;\n // Foveation scale to apply at the edge of the cone\n // (default: 1.0)\n coneFoveate?: number;\n paged?: boolean | PagedSplats | SplatPager;\n};\n\nexport type SplatMeshContext = {\n transform: SplatTransformer;\n viewToWorld: SplatTransformer;\n worldToView: SplatTransformer;\n viewToObject: SplatTransformer;\n covTransform: CovSplatTransformer;\n covViewToWorld: CovSplatTransformer;\n covWorldToView: CovSplatTransformer;\n covViewToObject: CovSplatTransformer;\n recolor: DynoVec4;\n time: DynoFloat;\n deltaTime: DynoFloat;\n numSplats: DynoInt;\n splats: SplatSource;\n enableLod: DynoBool;\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>;\n};\n\nexport interface SplatSource {\n prepareFetchSplat(): void;\n dispose(): void;\n\n getNumSplats(): number;\n hasRgbDir(): boolean;\n getNumSh(): number;\n setMaxSh(maxSh: number): void;\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n >;\n\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ): void;\n}\n\nexport class EmptySplatSource implements SplatSource {\n fetchDyno = new Dyno({\n inTypes: {},\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplat],\n statements: ({ outputs }) =>\n unindentLines(`\n ${outputs.gsplat}.flags = 0u;\n return;\n `),\n }).outputs.gsplat;\n\n prepareFetchSplat() {}\n dispose() {}\n\n getNumSplats() {\n return 0;\n }\n hasRgbDir() {\n return false;\n }\n getNumSh() {\n return 0;\n }\n setMaxSh(maxSh: number) {}\n\n fetchSplat({ index }: { index: DynoVal<\"int\"> }): DynoVal {\n return this.fetchDyno;\n }\n\n forEachSplat() {}\n}\n\nexport class SplatMesh extends SplatGenerator {\n // A Promise you can await to ensure fetching, parsing,\n // and initialization has completed\n initialized: Promise;\n // A boolean indicating whether initialization is complete\n isInitialized = false;\n\n // If you modify packedSplats you should set\n // splatMesh.packedSplats.needsUpdate = true to signal to Three.js that it\n // should re-upload the data to the underlying texture. Use this sparingly with\n // objects with smaller Gsplat counts as it requires a CPU-GPU data transfer for\n // each frame. Thousands to tens of thousands of Gsplats is fine. (See hands.ts\n // for an example of rendering \"Gsplat hands\" in WebXR using this technique.)\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n covSplats: boolean;\n splats?: SplatSource;\n lastSplats?: SplatSource;\n paged?: PagedSplats;\n\n // A THREE.Color that can be used to tint all splats in the mesh.\n // (default: new THREE.Color(1, 1, 1))\n recolor: THREE.Color = new THREE.Color(1, 1, 1);\n // Global opacity multiplier for all splats in the mesh. (default: 1)\n opacity = 1;\n\n // A SplatMeshContext consisting of useful scene and object dyno uniforms that can\n // be used to in the Gsplat processing pipeline, for example via objectModifier and\n // worldModifier. (created on construction)\n context: SplatMeshContext;\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n generatorDirty = true;\n\n objectModifiers?: GsplatModifier[];\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Set to true to have the viewToObject property in context be updated each frame.\n // If the mesh has extra.sh1 (first order spherical harmonics directional lighting)\n // this property will always be updated. (default: false)\n enableViewToObject = false;\n // Set to true to have context.viewToWorld updated each frame. (default: false)\n enableViewToWorld = false;\n // Set to true to have context.worldToView updated each frame. (default: false)\n enableWorldToView = false;\n\n // Optional SplatSkinning instance for animating splats with dual-quaternion\n // skeletal animation. (default: null)\n skinning: SplatSkinning | null = null;\n\n // Optional list of SplatEdits to apply to the mesh. If null, any SplatEdit\n // children in the scene graph will be added automatically. (default: null)\n edits: SplatEdit[] | null = null;\n editable: boolean;\n raycastable: boolean;\n minRaycastOpacity: number;\n raycastIndices?: { numSplats: number; indices: Uint32Array };\n // Compiled SplatEdits for applying SDF edits to splat RGBA + centers\n rgbaDisplaceEdits: SplatEdits | null = null;\n // Optional RgbaArray to overwrite splat RGBA values with custom values.\n // Useful for \"baking\" RGB and opacity edits into the SplatMesh. (default: null)\n splatRgba: RgbaArray | null = null;\n\n // Maximum Spherical Harmonics level to use. Call updateGenerator()\n // after changing. (default: 3)\n maxSh = 3;\n\n enableLod?: boolean;\n lodScale: number;\n behindFoveate?: number;\n coneFov0?: number;\n coneFov?: number;\n coneFoveate?: number;\n\n showLodPage?: number;\n showLodPageDyno = new DynoInt({ value: 0 });\n\n constructor(options: SplatMeshOptions = {}) {\n super({\n update: (context) => this.update(context),\n });\n\n if (options.splats) {\n this.splats = options.splats;\n this.numSplats = options.splats.getNumSplats();\n } else if (options.paged) {\n if (options.extSplats) {\n console.warn(\n \"To set extSplats with the paged option, set SparkRenderer.pagedExtSplats\",\n );\n }\n const rootUrl = options.url ?? \"\";\n if (options.paged === true) {\n this.paged = new PagedSplats({ rootUrl });\n } else if (options.paged instanceof PagedSplats) {\n this.paged = options.paged;\n } else if (options.paged instanceof SplatPager) {\n this.paged = new PagedSplats({ rootUrl, pager: options.paged });\n } else {\n throw new Error(\"Invalid paged option\");\n }\n this.splats = this.paged;\n } else if (options.extSplats) {\n this.extSplats =\n options.extSplats instanceof ExtSplats\n ? options.extSplats\n : new ExtSplats();\n options.extSplats = this.extSplats;\n this.numSplats = this.extSplats.numSplats;\n this.splats = this.extSplats;\n } else if (options.packedSplats) {\n this.packedSplats = options.packedSplats;\n this.packedSplats.splatEncoding = options.splatEncoding ?? {\n ...DEFAULT_SPLAT_ENCODING,\n };\n this.splats = this.packedSplats;\n } else {\n this.packedSplats = new PackedSplats();\n }\n\n this.editable = options.editable ?? true;\n this.raycastable = options.raycastable ?? true;\n this.minRaycastOpacity = options.minRaycastOpacity ?? 0.2;\n this.onFrame = options.onFrame;\n\n this.context = {\n transform: new SplatTransformer(),\n viewToWorld: new SplatTransformer(),\n worldToView: new SplatTransformer(),\n viewToObject: new SplatTransformer(),\n covTransform: new CovSplatTransformer(),\n covViewToWorld: new CovSplatTransformer(),\n covWorldToView: new CovSplatTransformer(),\n covViewToObject: new CovSplatTransformer(),\n recolor: new DynoVec4({\n value: new THREE.Vector4().setScalar(Number.NEGATIVE_INFINITY),\n }),\n time: new DynoFloat({ value: 0 }),\n deltaTime: new DynoFloat({ value: 0 }),\n numSplats: new DynoInt({ value: 0 }),\n splats: new EmptySplatSource(),\n enableLod: new DynoBool({ value: false }),\n lodIndices: new DynoUsampler2D({\n value: emptyLodIndices,\n key: \"lodIndices\",\n }),\n };\n\n this.covSplats = options.covSplats ?? false;\n if (this.covSplats && !this.extSplats) {\n throw new Error(\"CovSplats requires ExtSplats\");\n }\n\n this.objectModifiers = options.objectModifier\n ? [options.objectModifier]\n : undefined;\n this.worldModifiers = options.worldModifier\n ? [options.worldModifier]\n : undefined;\n\n if (options.objectModifiers) {\n this.objectModifiers = options.objectModifiers;\n }\n if (options.worldModifiers) {\n this.worldModifiers = options.worldModifiers;\n }\n\n this.enableLod = options.enableLod;\n this.lodScale = options.lodScale ?? 1.0;\n this.behindFoveate = options.behindFoveate;\n this.coneFov0 = options.coneFov0;\n this.coneFov = options.coneFov;\n this.coneFoveate = options.coneFoveate;\n\n this.updateGenerator();\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.constructSplats ||\n (options.packedSplats && !options.packedSplats.isInitialized) ||\n (this.extSplats && !this.extSplats.isInitialized)\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(async () => {\n this.updateGenerator();\n\n this.isInitialized = true;\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n return this;\n });\n } else {\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n // If onLoad returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n this.initialized = maybePromise.then(() => this);\n }\n }\n }\n\n // this.add(createRendererDetectionMesh());\n }\n\n async asyncInitialize(options: SplatMeshOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n } = options;\n if (this.packedSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const packedSplatsOptions = {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct: constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n };\n this.packedSplats.reinitialize(packedSplatsOptions);\n }\n await this.packedSplats.initialized;\n this.splats = this.packedSplats;\n } else if (this.extSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const construct = constructSplats as\n | ((splats: ExtSplats) => Promise)\n | undefined;\n this.extSplats.reinitialize({\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n });\n await this.extSplats.initialized;\n this.splats = this.extSplats;\n }\n }\n\n if (this.splats) {\n this.numSplats = this.splats.getNumSplats();\n this.updateGenerator();\n }\n }\n\n static staticInitialized = SplatMesh.staticInitialize();\n static isStaticInitialized = false;\n\n static dynoTime = new DynoFloat({ value: 0 });\n\n static async staticInitialize() {\n await init_wasm();\n SplatMesh.isStaticInitialized = true;\n }\n\n // Creates a new Gsplat with the provided parameters (all values in \"float\" space,\n // i.e. 0-1 for opacity and color) and adds it to the end of the packedSplats,\n // increasing numSplats by 1. If necessary, reallocates the buffer with an exponential\n // doubling strategy to fit the new data, so it's fairly efficient to just\n // pushSplat(...) each Gsplat you want to create in a loop.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n if (this.packedSplats) {\n this.packedSplats.pushSplat(center, scales, quaternion, opacity, color);\n } else if (this.extSplats) {\n this.extSplats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n\n // This method iterates over all Gsplats in this instance's packedSplats,\n // invoking the provided callback with index: number in 0..=(this.numSplats-1) and\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number (0..1), and color: THREE.Color (rgb values in 0..1).\n // Note that the objects passed in as center etc. are the same for every callback\n // invocation: these objects are reused for efficiency. Changing these values has\n // no effect as they are decoded/unpacked copies of the underlying data. To update\n // the packedSplats, call .packedSplats.setSplat(index, center, scales,\n // quaternion, opacity, color).\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n this.splats?.forEachSplat(callback);\n }\n\n // Call this when you are finished with the SplatMesh and want to free\n // any buffers it holds (via packedSplats).\n dispose() {\n if (\n this.splats &&\n this.splats !== this.packedSplats &&\n this.splats !== this.extSplats\n ) {\n this.splats.dispose();\n this.splats = undefined;\n }\n if (this.packedSplats) {\n this.packedSplats.dispose();\n this.packedSplats = undefined;\n }\n if (this.extSplats) {\n this.extSplats.dispose();\n this.extSplats = undefined;\n }\n }\n\n // Returns axis-aligned bounding box of the SplatMesh. If centers_only is true,\n // only the centers of the splats are used to compute the bounding box.\n // IMPORTANT: This should only be called after the SplatMesh is initialized.\n getBoundingBox(centers_only = true) {\n if (!this.initialized) {\n throw new Error(\n \"Cannot get bounding box before SplatMesh is initialized\",\n );\n }\n const minVec = new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n );\n const maxVec = new THREE.Vector3(\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n );\n const corners = new THREE.Vector3();\n const signs = [-1, 1];\n\n function callback(\n _index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n _opacity: number,\n _color: THREE.Color,\n ) {\n if (centers_only) {\n minVec.min(center);\n maxVec.max(center);\n } else {\n // Get the 8 corners of the AABB in local space\n for (const x of signs) {\n for (const y of signs) {\n for (const z of signs) {\n corners.set(x * scales.x, y * scales.y, z * scales.z);\n // Transform corner by rotation and position\n corners.applyQuaternion(quaternion);\n corners.add(center);\n minVec.min(corners);\n maxVec.max(corners);\n }\n }\n }\n }\n }\n\n this.splats?.forEachSplat(callback);\n const box = new THREE.Box3(minVec, maxVec);\n return box;\n }\n\n set objectModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.objectModifiers = [modifier];\n } else {\n this.objectModifiers = undefined;\n }\n }\n\n set worldModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.worldModifiers = [modifier];\n } else {\n this.worldModifiers = undefined;\n }\n }\n\n private constructGenerator(context: SplatMeshContext) {\n if (this.covSplats) {\n return this.constructCovGenerator(context);\n }\n\n const { transform, viewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.setMaxSh(this.maxSh);\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: viewToObject.translate,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n gsplat = this.skinning.modify(gsplat);\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // Transform from object to world-space\n gsplat = transform.applyGsplat(gsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitGsplat(gsplat).outputs.rgba);\n gsplat = combineGsplat({ gsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n gsplat = this.rgbaDisplaceEdits.modify(gsplat);\n }\n\n if (this.worldModifiers) {\n // Inject world-space Gsplat modifier dyno\n for (const modifier of this.worldModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { gsplat };\n },\n );\n this.generator = generator;\n this.covGenerator = undefined;\n }\n\n constructCovGenerator(context: SplatMeshContext) {\n // console.log(\"CovSplatMesh.constructCovGenerator\");\n const { covTransform, covViewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { covsplat: CovSplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: covViewToObject.offset,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n let covsplat = gsplatToCovSplat(gsplat);\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n covsplat = this.skinning.modifyCov(covsplat);\n }\n\n if (this.covObjectModifiers) {\n // Inject object-space CovSplat modifier dyno\n for (const modifier of this.covObjectModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // Transform from object to world-space\n covsplat = covTransform.applyCovSplat(covsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitCovSplat(covsplat).outputs.rgba);\n covsplat = combineCovSplat({ covsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n covsplat = this.rgbaDisplaceEdits.modifyCov(covsplat);\n }\n\n if (this.covWorldModifiers) {\n // Inject world-space CovSplat modifier dyno\n for (const modifier of this.covWorldModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { covsplat };\n },\n );\n this.generator = undefined;\n this.covGenerator = generator;\n }\n\n // Call this whenever something changes in the Gsplat processing pipeline,\n // for example changing maxSh or updating objectModifier or worldModifier.\n // Compiled generators are cached for efficiency and re-use when the same\n // pipeline structure emerges after successive changes.\n updateGenerator() {\n this.generatorDirty = true;\n }\n\n // This is called automatically by SparkRenderer and you should not have to\n // call it. It updates parameters for the generated pipeline and calls\n // updateGenerator() if the pipeline needs to change.\n update({\n renderer,\n time,\n deltaTime,\n viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices,\n }: FrameUpdateContext) {\n this.context.time.value = time;\n this.context.deltaTime.value = deltaTime;\n SplatMesh.dynoTime.value = time;\n this.showLodPageDyno.value = this.showLodPage ?? -1;\n\n const splats = this.splats ?? this.packedSplats ?? this.extSplats;\n if (splats) {\n this.context.splats = splats;\n }\n this.numSplats = this.context.splats.getNumSplats();\n\n let updated = false;\n\n const lodSplats = this.packedSplats?.lodSplats ?? this.extSplats?.lodSplats;\n this.context.enableLod.value = lodSplats != null && lodIndices != null;\n if (this.enableLod === false) {\n this.context.enableLod.value = false;\n }\n this.context.lodIndices.value = lodIndices?.texture ?? emptyLodIndices;\n\n if (this.context.enableLod.value && lodSplats) {\n this.context.splats = lodSplats;\n this.numSplats = lodIndices?.numSplats ?? 0;\n }\n\n this.context.numSplats.value = this.numSplats;\n\n if (this.context.splats !== this.lastSplats) {\n this.lastSplats = this.context.splats;\n this.generatorDirty = true;\n }\n\n if (!this.covSplats) {\n if (this.context.transform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.viewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.worldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const objectToWorld = new THREE.Matrix4().compose(\n this.context.transform.translate.value,\n this.context.transform.rotate.value,\n new THREE.Vector3().setScalar(this.context.transform.scale.value),\n );\n const worldToObject = objectToWorld.invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.viewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n } else {\n if (this.context.covTransform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.covViewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.covWorldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const worldToObject = this.matrixWorld.clone().invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.covViewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n }\n\n const newRecolor = new THREE.Vector4(\n this.recolor.r,\n this.recolor.g,\n this.recolor.b,\n this.opacity,\n );\n if (!newRecolor.equals(this.context.recolor.value)) {\n this.context.recolor.value.copy(newRecolor);\n updated = true;\n }\n\n const edits = this.editable ? (this.edits ?? []).concat(globalEdits) : [];\n if (this.editable && !this.edits) {\n // If we haven't set any explicit edits, add any child SplatEdits\n this.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n edits.push(node);\n }\n });\n }\n\n edits.sort((a, b) => a.ordering - b.ordering);\n const editsSdfs = edits.map((edit) => {\n if (edit.sdfs != null) {\n return { edit, sdfs: edit.sdfs };\n }\n const sdfs: SplatEditSdf[] = [];\n edit.traverseVisible((node) => {\n if (node instanceof SplatEditSdf) {\n sdfs.push(node);\n }\n });\n return { edit, sdfs };\n });\n\n if (editsSdfs.length > 0 && !this.rgbaDisplaceEdits) {\n const edits = editsSdfs.length;\n const sdfs = editsSdfs.reduce(\n (total, edit) => total + edit.sdfs.length,\n 0,\n );\n this.rgbaDisplaceEdits = new SplatEdits({\n maxEdits: edits,\n maxSdfs: sdfs,\n });\n this.generatorDirty = true;\n }\n if (this.rgbaDisplaceEdits) {\n const editResult = this.rgbaDisplaceEdits.update(editsSdfs);\n updated ||= editResult.updated;\n if (editResult.dynoUpdated) {\n this.generatorDirty = true;\n }\n }\n\n if (this.generatorDirty) {\n this.constructGenerator(this.context);\n this.generatorDirty = false;\n updated = true;\n }\n\n if (updated) {\n this.updateVersion();\n }\n\n this.onFrame?.({ mesh: this, time, deltaTime });\n }\n\n // This method conforms to the standard THREE.Raycaster API, performing object-ray\n // intersections using this method to populate the provided intersects[] array\n // with each intersection point.\n raycast(\n raycaster: THREE.Raycaster,\n intersects: {\n distance: number;\n point: THREE.Vector3;\n object: THREE.Object3D;\n }[],\n ) {\n if (\n !SplatMesh.isStaticInitialized ||\n !this.raycastable ||\n (!this.packedSplats && !this.extSplats && !this.paged)\n ) {\n return;\n }\n const paged = this.paged != null;\n const ext = paged\n ? (this.paged?.pager?.extSplats ?? false)\n : this.extSplats != null;\n\n const { near, far, ray } = raycaster;\n const worldToMesh = this.matrixWorld.clone().invert();\n const worldToMeshRot = new THREE.Matrix3().setFromMatrix4(worldToMesh);\n const origin = ray.origin.clone().applyMatrix4(worldToMesh);\n const direction = ray.direction.clone().applyMatrix3(worldToMeshRot);\n\n const buffer = get_raycast_buffer();\n const bufferSize = buffer.length / 4;\n let intersections = 0;\n\n const numSplats =\n this.raycastIndices?.numSplats ??\n (paged ? this.paged?.numSplats : this.context.numSplats.value) ??\n 0;\n const indices =\n this.raycastIndices?.indices ??\n (paged\n ? (this.paged?.dynoIndices.value.image.data as Uint32Array)\n : this.context.enableLod.value\n ? (this.context.lodIndices.value.image.data as Uint32Array)\n : null) ??\n null;\n\n if (!ext) {\n const packed = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.packedSplats?.lodSplats?.packedArray\n : this.packedSplats?.packedArray;\n if (!packed) {\n return;\n }\n const splatEncoding = paged\n ? this.paged?.splatEncoding\n : this.packedSplats?.splatEncoding;\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(packed.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = packed[index4];\n buffer[i4 + 1] = packed[index4 + 1];\n buffer[i4 + 2] = packed[index4 + 2];\n buffer[i4 + 3] = packed[index4 + 3];\n }\n }\n\n const newIntersections = raycast_packed_buffer(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n splatEncoding?.lodOpacity ?? false,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n } else {\n const buffer2 = get_raycast_buffer2();\n const ext1 = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[0]\n : this.extSplats?.extArrays[0];\n const ext2 = paged\n ? (this.paged?.pager?.extTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[1]\n : this.extSplats?.extArrays[1];\n if (!ext1 || !ext2) {\n return;\n }\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(ext1.subarray(base * 4, (base + count) * 4));\n buffer2.set(ext2.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = ext1[index4];\n buffer[i4 + 1] = ext1[index4 + 1];\n buffer[i4 + 2] = ext1[index4 + 2];\n buffer[i4 + 3] = ext1[index4 + 3];\n buffer2[i4] = ext2[index4];\n buffer2[i4 + 1] = ext2[index4 + 1];\n buffer2[i4 + 2] = ext2[index4 + 2];\n buffer2[i4 + 3] = ext2[index4 + 3];\n }\n }\n\n const newIntersections = raycast_ext_buffers(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n }\n\n for (const distance of SplatMesh.raycastBuffer.subarray(0, intersections)) {\n const point = ray.direction\n .clone()\n .multiplyScalar(distance)\n .add(ray.origin);\n intersects.push({\n distance,\n point,\n object: this,\n });\n }\n }\n\n static raycastBuffer = new Float32Array(1024);\n\n private appendRaycastBuffer(count: number, additional: Float32Array) {\n const total = count + additional.length;\n let capacity = SplatMesh.raycastBuffer.length;\n\n if (total > capacity) {\n while (capacity < total) {\n capacity *= 2;\n }\n const newBuffer = new Float32Array(capacity);\n newBuffer.set(SplatMesh.raycastBuffer.subarray(0, count));\n SplatMesh.raycastBuffer = newBuffer;\n }\n\n SplatMesh.raycastBuffer.set(additional, count);\n return count + additional.length;\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n if (this.packedSplats) {\n await this.packedSplats.createLodSplats({ quality, rgbaArray });\n } else if (this.extSplats) {\n await this.extSplats.createLodSplats({ quality, rgbaArray });\n }\n }\n}\n\nexport function maybeLookupIndex(\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>,\n index: DynoVal<\"int\">,\n numSplats: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n showLodPage: DynoVal<\"int\">,\n) {\n return dyno({\n inTypes: {\n lodIndices: \"usampler2D\",\n index: \"int\",\n numSplats: \"int\",\n enableLod: \"bool\",\n showLodPage: \"int\",\n },\n outTypes: {\n index: \"int\",\n },\n inputs: {\n lodIndices,\n index,\n numSplats,\n enableLod,\n showLodPage,\n },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n int index = ${inputs.index};\n if (${inputs.showLodPage} < 0) {\n if (index >= ${inputs.numSplats}) {\n return;\n }\n if (${inputs.enableLod}) {\n ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14);\n uint splatIndex = texelFetch(${inputs.lodIndices}, lodIndexCoord, 0)[index & 3];\n ${outputs.index} = int(splatIndex);\n } else {\n ${outputs.index} = index;\n }\n } else {\n int start = ${inputs.showLodPage} << 16;\n if (index >= 65536) {\n return;\n }\n ${outputs.index} = start + index;\n }\n `),\n }).outputs.index;\n}\n\nexport function maybeInjectSplatRgba(\n gsplat: DynoVal,\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n): DynoVal {\n return dyno({\n inTypes: {\n gsplat: Gsplat,\n rgba: TRgbaArray,\n index: \"int\",\n enableLod: \"bool\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, rgba, index, enableLod },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n ${outputs.gsplat} = ${inputs.gsplat};\n if (!${inputs.enableLod} && (${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.gsplat}.rgba = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n }\n `),\n }).outputs.gsplat;\n}\n\nexport const emptyLodIndices = (() => {\n const texture = new THREE.DataTexture(\n new Uint32Array(16384),\n 4096,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n})();\n\nconst EMPTY_GEOMETRY = new THREE.BufferGeometry();\nconst EMPTY_MATERIAL = new THREE.ShaderMaterial();\n\n// Creates an empty mesh to hook into Three.js rendering.\n// This is used to detect if a SparkRenderer is present in the scene.\n// If not, one will be injected automatically.\nfunction createRendererDetectionMesh(): THREE.Mesh {\n const mesh = new THREE.Mesh(EMPTY_GEOMETRY, EMPTY_MATERIAL);\n mesh.frustumCulled = false;\n mesh.onBeforeRender = function (renderer, scene) {\n if (!scene.isScene) {\n // The SplatMesh is part of render call that doesn't have a Scene at its root\n // Don't auto-inject a renderer.\n this.removeFromParent();\n return;\n }\n\n // Check if the scene has a SparkRenderer instance\n let hasSparkRenderer = false;\n scene.traverse((c) => {\n if (c instanceof SparkRenderer || c instanceof OldSparkRenderer) {\n hasSparkRenderer = true;\n }\n });\n\n if (!hasSparkRenderer) {\n // No spark renderer present in the scene, inject one.\n scene.add(new SparkRenderer({ renderer }));\n }\n\n // Remove mesh to stop checking\n this.removeFromParent();\n };\n return mesh;\n}\n","// PLY file format reader\n\nimport { USE_COMPILED_PARSER_FUNCTION } from \"./defines\";\n\nconst PLY_PROPERTY_TYPES = [\n \"char\",\n \"uchar\",\n \"short\",\n \"ushort\",\n \"int\",\n \"uint\",\n \"float\",\n \"double\",\n] as const;\nexport type PlyPropertyType = (typeof PLY_PROPERTY_TYPES)[number];\n\nexport type PlyElement = {\n name: string;\n count: number;\n properties: Record;\n};\n\nexport type PlyProperty = {\n isList: boolean;\n type: PlyPropertyType;\n countType?: PlyPropertyType;\n};\n\n// Callback for parseSplats base Gsplat data\nexport type SplatCallback = (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) => void;\n\n// Callback for parseSplats SH coefficients\nexport type SplatShCallback = (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n) => void;\n\n// A PlyReader is used to parse PLY files for Gsplat data.\n// It takes a Uint8Array/ArrayBuffer as input fileBytes, parses the text header,\n// and provides a method parseData to iterate over the entire binary data\n// efficiently, or parseSplats to iterate over Gsplat data.\n\nexport class PlyReader {\n fileBytes: Uint8Array;\n header = \"\";\n littleEndian = true;\n elements: Record = {};\n comments: string[] = [];\n data: DataView | null = null;\n static defaultPointScale = 0.001;\n\n numSplats = 0;\n\n // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n }\n\n // Identify and parse the PLY text header (assumed to be <64KB in size).\n // this.elements will contain all the elements in the file, typically\n // \"vertex\" contains the Gsplat data.\n async parseHeader() {\n const bufferStream = new ReadableStream({\n start: (\n controller: ReadableStreamController>,\n ) => {\n // Assume the header is less than 64KB\n controller.enqueue(this.fileBytes.slice(0, 65536));\n controller.close();\n },\n });\n const decoder = bufferStream\n .pipeThrough(new TextDecoderStream())\n .getReader();\n\n // Find the end of the text section of the PLY file\n this.header = \"\";\n const headerTerminator = \"end_header\\n\";\n while (true) {\n const { value, done } = await decoder.read();\n if (done) {\n throw new Error(\"Failed to read header\");\n }\n\n this.header += value as string;\n const endHeader = this.header.indexOf(headerTerminator);\n if (endHeader >= 0) {\n this.header = this.header.slice(0, endHeader + headerTerminator.length);\n break;\n }\n }\n // Partition the file into header and binary data\n const headerLen = new TextEncoder().encode(this.header).length;\n this.data = new DataView(this.fileBytes.buffer, headerLen);\n\n this.elements = {};\n let curElement: PlyElement | null = null;\n this.comments = [];\n\n this.header\n .trim()\n .split(\"\\n\")\n .forEach((line: string, lineIndex: number) => {\n const trimmedLine = line.trim();\n if (lineIndex === 0) {\n if (trimmedLine !== \"ply\") {\n throw new Error(\"Invalid PLY header\");\n }\n return;\n }\n if (trimmedLine.length === 0) {\n return; // Skip empty lines\n }\n\n const fields = trimmedLine.split(\" \");\n switch (fields[0]) {\n case \"format\":\n if (fields[1] === \"binary_little_endian\") {\n this.littleEndian = true;\n } else if (fields[1] === \"binary_big_endian\") {\n this.littleEndian = false;\n } else {\n // ascii formats not supported\n throw new Error(`Unsupported PLY format: ${fields[1]}`);\n }\n if (fields[2] !== \"1.0\") {\n throw new Error(`Unsupported PLY version: ${fields[2]}`);\n }\n break;\n case \"end_header\":\n break;\n case \"comment\":\n this.comments.push(trimmedLine.slice(\"comment \".length));\n break;\n case \"element\": {\n const name = fields[1];\n curElement = {\n name,\n count: Number.parseInt(fields[2]),\n properties: {},\n };\n this.elements[name] = curElement;\n break;\n }\n case \"property\":\n if (curElement == null) {\n throw new Error(\"Property must be inside an element\");\n }\n if (fields[1] === \"list\") {\n curElement.properties[fields[4]] = {\n isList: true,\n type: fields[3] as PlyPropertyType,\n countType: fields[2] as PlyPropertyType,\n };\n } else {\n curElement.properties[fields[2]] = {\n isList: false,\n type: fields[1] as PlyPropertyType,\n };\n }\n break;\n default:\n // console.warn(`Skipping unsupported PLY keyword: ${fields[0]}`);\n }\n });\n\n if (this.elements.vertex) {\n this.numSplats = this.elements.vertex.count;\n }\n }\n\n parseData(\n elementCallback: (\n element: PlyElement,\n ) =>\n | null\n | ((index: number, item: Record) => void),\n ) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No data to parse\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const item = createEmptyItem(properties);\n // Construct a parse function\n const parseFn = createParseFn(properties, this.littleEndian);\n\n // Parse all the items in the element\n const callback = elementCallback(element) ?? (() => {});\n for (let index = 0; index < count; index++) {\n offset = parseFn(data, offset, item);\n callback(index, item);\n }\n }\n }\n\n // Parse all the Gsplat data in the PLY file in go, invoking the given\n // callbacks for each Gsplat.\n parseSplats(splatCallback: SplatCallback, shCallback?: SplatShCallback) {\n if (this.elements.vertex == null) {\n throw new Error(\"No vertex element found\");\n }\n\n let isSuperSplat = false;\n const ssChunks: SSChunk[] = [];\n\n let numSh = 0;\n let sh1Props: number[] = [];\n let sh2Props: number[] = [];\n let sh3Props: number[] = [];\n let sh1: Float32Array | undefined = undefined;\n let sh2: Float32Array | undefined = undefined;\n let sh3: Float32Array | undefined = undefined;\n\n function prepareSh() {\n // Prepare SH coefficient names and arrays for numSh total SH levels\n const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh];\n sh1Props = new Array(3)\n .fill(null)\n .flatMap((_, k) => [0, 1, 2].map((_, d) => k + (d * num_f_rest) / 3));\n sh2Props = new Array(5)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 3 + k + (d * num_f_rest) / 3),\n );\n sh3Props = new Array(7)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 8 + k + (d * num_f_rest) / 3),\n );\n sh1 = numSh >= 1 ? new Float32Array(3 * 3) : undefined;\n sh2 = numSh >= 2 ? new Float32Array(5 * 3) : undefined;\n sh3 = numSh >= 3 ? new Float32Array(7 * 3) : undefined;\n }\n\n function ssShCallback(\n index: number,\n item: Record,\n ) {\n // Decode SH for SuperSplat compressed data\n if (!sh1) {\n throw new Error(\"Missing sh1\");\n }\n const sh = item.f_rest as number[];\n\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = (sh[sh1Props[i]] * 8) / 255 - 4;\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = (sh[sh2Props[i]] * 8) / 255 - 4;\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = (sh[sh3Props[i]] * 8) / 255 - 4;\n }\n }\n shCallback?.(index, sh1, sh2, sh3);\n }\n\n function initSuperSplat(element: PlyElement) {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n } = element.properties;\n if (\n !min_x ||\n !min_y ||\n !min_z ||\n !max_x ||\n !max_y ||\n !max_z ||\n !min_scale_x ||\n !min_scale_y ||\n !min_scale_z ||\n !max_scale_x ||\n !max_scale_y ||\n !max_scale_z\n ) {\n throw new Error(\"Missing PLY chunk properties\");\n }\n\n // SuperSplat chunks are used to quantize splat data, so we need to store them\n isSuperSplat = true;\n return (index: number, item: Record) => {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = item as Record;\n ssChunks.push({\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n });\n };\n }\n\n function decodeSuperSplat(element: PlyElement) {\n // Decode SuperSplat compressed data in vertex and sh elements\n if (shCallback && element.name === \"sh\") {\n numSh = getNumSh(element.properties);\n prepareSh();\n return ssShCallback;\n }\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n element.properties;\n if (\n !packed_position ||\n !packed_rotation ||\n !packed_scale ||\n !packed_color\n ) {\n throw new Error(\n \"Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color\",\n );\n }\n\n const SQRT2 = Math.sqrt(2);\n\n return (index: number, item: Record) => {\n // SuperSplat data are quantized within chunks with 256 Gsplats each\n const chunk = ssChunks[index >>> 8];\n if (chunk == null) {\n throw new Error(\"Missing PLY chunk\");\n }\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = chunk;\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n item as Record;\n\n const x =\n (((packed_position >>> 21) & 2047) / 2047) * (max_x - min_x) + min_x;\n const y =\n (((packed_position >>> 11) & 1023) / 1023) * (max_y - min_y) + min_y;\n const z = ((packed_position & 2047) / 2047) * (max_z - min_z) + min_z;\n\n const r0 = (((packed_rotation >>> 20) & 1023) / 1023 - 0.5) * SQRT2;\n const r1 = (((packed_rotation >>> 10) & 1023) / 1023 - 0.5) * SQRT2;\n const r2 = ((packed_rotation & 1023) / 1023 - 0.5) * SQRT2;\n const rr = Math.sqrt(Math.max(0, 1.0 - r0 * r0 - r1 * r1 - r2 * r2));\n\n const rOrder = packed_rotation >>> 30;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n\n const scaleX = Math.exp(\n (((packed_scale >>> 21) & 2047) / 2047) *\n (max_scale_x - min_scale_x) +\n min_scale_x,\n );\n const scaleY = Math.exp(\n (((packed_scale >>> 11) & 1023) / 1023) *\n (max_scale_y - min_scale_y) +\n min_scale_y,\n );\n const scaleZ = Math.exp(\n ((packed_scale & 2047) / 2047) * (max_scale_z - min_scale_z) +\n min_scale_z,\n );\n\n const r =\n (((packed_color >>> 24) & 255) / 255) *\n ((max_r ?? 1) - (min_r ?? 0)) +\n (min_r ?? 0);\n const g =\n (((packed_color >>> 16) & 255) / 255) *\n ((max_g ?? 1) - (min_g ?? 0)) +\n (min_g ?? 0);\n const b =\n (((packed_color >>> 8) & 255) / 255) * ((max_b ?? 1) - (min_b ?? 0)) +\n (min_b ?? 0);\n const opacity = (packed_color & 255) / 255;\n\n splatCallback(\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n };\n }\n\n const elementCallback = (element: PlyElement) => {\n if (element.name === \"chunk\") {\n // \"chunk\" could conceivably be used for other formats, and we would\n // ideally check for the comment: Generated by SuperSplat 2.*\n // but gsplat also outputs this format without such a comment.\n // In order to support both, let's assume a \"chunk\" element should\n // be interpreted as this format.\n return initSuperSplat(element);\n }\n if (isSuperSplat) {\n return decodeSuperSplat(element);\n }\n\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const {\n x,\n y,\n z,\n scale_0,\n scale_1,\n scale_2,\n rot_0,\n rot_1,\n rot_2,\n rot_3,\n opacity,\n f_dc_0,\n f_dc_1,\n f_dc_2,\n red,\n green,\n blue,\n alpha,\n } = element.properties;\n\n if (!x || !y || !z) {\n throw new Error(\"Missing PLY properties: x, y, z\");\n }\n // Pure point cloud PLY files have no scales or rotations\n const hasScales = scale_0 && scale_1 && scale_2;\n const hasRots = rot_0 && rot_1 && rot_2 && rot_3;\n // Quantization scale factor for argb values\n const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1;\n const redDiv = red != null ? FIELD_SCALE[red.type] : 1;\n const greenDiv = green != null ? FIELD_SCALE[green.type] : 1;\n const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1;\n\n numSh = getNumSh(element.properties);\n prepareSh();\n\n return (index: number, item: Record) => {\n const scaleX = hasScales\n ? Math.exp(item.scale_0 as number)\n : PlyReader.defaultPointScale;\n const scaleY = hasScales\n ? Math.exp(item.scale_1 as number)\n : PlyReader.defaultPointScale;\n const scaleZ = hasScales\n ? Math.exp(item.scale_2 as number)\n : PlyReader.defaultPointScale;\n\n const quatX = hasRots ? (item.rot_1 as number) : 0;\n const quatY = hasRots ? (item.rot_2 as number) : 0;\n const quatZ = hasRots ? (item.rot_3 as number) : 0;\n const quatW = hasRots ? (item.rot_0 as number) : 1;\n\n const op =\n opacity != null\n ? 1.0 / (1.0 + Math.exp(-item.opacity as number))\n : alpha != null\n ? (item.alpha as number) / alphaDiv\n : 1.0;\n const r =\n f_dc_0 != null\n ? (item.f_dc_0 as number) * SH_C0 + 0.5\n : red != null\n ? (item.red as number) / redDiv\n : 1.0;\n const g =\n f_dc_1 != null\n ? (item.f_dc_1 as number) * SH_C0 + 0.5\n : green != null\n ? (item.green as number) / greenDiv\n : 1.0;\n const b =\n f_dc_2 != null\n ? (item.f_dc_2 as number) * SH_C0 + 0.5\n : blue != null\n ? (item.blue as number) / blueDiv\n : 1.0;\n\n splatCallback(\n index,\n item.x as number,\n item.y as number,\n item.z as number,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n op,\n r,\n g,\n b,\n );\n\n if (shCallback && sh1) {\n const sh = item.f_rest as number[];\n if (sh1) {\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = sh[sh1Props[i]];\n }\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = sh[sh2Props[i]];\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = sh[sh3Props[i]];\n }\n }\n shCallback(index, sh1, sh2, sh3);\n }\n };\n };\n\n this.parseData(elementCallback);\n }\n\n // Inject RGBA values into original PLY file, which can be used to modify\n // the color/opacity of the Gsplats and write out the modified PLY file.\n injectRgba(rgba: Uint8Array) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No parsed data\");\n }\n if (rgba.length !== this.numSplats * 4) {\n throw new Error(\"Invalid RGBA array length\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const parsers = [];\n\n let rgbaOffset = 0;\n const isVertex = elementName === \"vertex\";\n if (isVertex) {\n for (const name of [\"opacity\", \"f_dc_0\", \"f_dc_1\", \"f_dc_2\"]) {\n if (!properties[name] || properties[name].type !== \"float\") {\n throw new Error(`Can't injectRgba due to property: ${name}`);\n }\n }\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!property.isList) {\n if (isVertex) {\n if (\n propertyName === \"f_dc_0\" ||\n propertyName === \"f_dc_1\" ||\n propertyName === \"f_dc_2\"\n ) {\n const component = Number.parseInt(\n propertyName.slice(\"f_dc_\".length),\n );\n parsers.push(() => {\n // Inject DC coefficients\n const value =\n (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0;\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n } else if (propertyName === \"opacity\") {\n parsers.push(() => {\n // Inject opacity sigmoid, clamped to [-100, 100]\n const value = Math.max(\n -100,\n Math.min(\n 100,\n -Math.log(1.0 / (rgba[rgbaOffset + 3] / 255) - 1.0),\n ),\n );\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n }\n }\n parsers.push(() => {\n offset += FIELD_BYTES[property.type];\n });\n } else {\n parsers.push(() => {\n const length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n this.littleEndian,\n );\n offset += FIELD_BYTES[property.countType as PlyPropertyType];\n offset += length * FIELD_BYTES[property.type];\n });\n }\n }\n\n for (let index = 0; index < count; index++) {\n // Go through all the data and field parsers to compute offset\n for (const parser of parsers) {\n parser();\n }\n if (isVertex) {\n rgbaOffset += 4;\n }\n }\n }\n }\n}\n\nexport const SH_C0 = 0.28209479177387814;\n\ntype FieldParser = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n) => number;\ntype FieldSetter = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n) => void;\n\nconst PARSE_FIELD: Record = {\n char: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt8(offset);\n },\n uchar: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint8(offset);\n },\n short: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt16(offset, littleEndian);\n },\n ushort: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint16(offset, littleEndian);\n },\n int: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt32(offset, littleEndian);\n },\n uint: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint32(offset, littleEndian);\n },\n float: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat32(offset, littleEndian);\n },\n double: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat64(offset, littleEndian);\n },\n};\n\nconst SET_FIELD: Record = {\n char: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt8(offset, value);\n },\n uchar: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint8(offset, value);\n },\n short: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt16(offset, value, littleEndian);\n },\n ushort: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint16(offset, value, littleEndian);\n },\n int: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt32(offset, value, littleEndian);\n },\n uint: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint32(offset, value, littleEndian);\n },\n float: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat32(offset, value, littleEndian);\n },\n double: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat64(offset, value, littleEndian);\n },\n};\n\nconst FIELD_BYTES: Record = {\n char: 1,\n uchar: 1,\n short: 2,\n ushort: 2,\n int: 4,\n uint: 4,\n float: 4,\n double: 8,\n};\n\nconst FIELD_SCALE: Record = {\n char: 127,\n uchar: 255,\n short: 32767,\n ushort: 65535,\n int: 2147483647,\n uint: 4294967295,\n float: 1,\n double: 1,\n};\n\nconst NUM_F_REST_TO_NUM_SH: Record = {\n 0: 0,\n 9: 1,\n 24: 2,\n 45: 3,\n};\nconst NUM_SH_TO_NUM_F_REST: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nconst F_REST_REGEX = /^f_rest_([0-9]{1,2})$/;\n\nfunction createEmptyItem(\n properties: Record,\n): Record {\n const item: Record = {};\n for (const [propertyName, property] of Object.entries(properties)) {\n // Treat f_rest properties as a single array for performance\n if (F_REST_REGEX.test(propertyName)) {\n item.f_rest = new Array(getNumSh(properties));\n } else {\n item[propertyName] = property.isList ? [] : 0;\n }\n }\n return item;\n}\n\nfunction createParseFn(\n properties: Record,\n littleEndian: boolean,\n) {\n if (USE_COMPILED_PARSER_FUNCTION && safeToCompile(properties)) {\n return createCompiledParserFn(properties, littleEndian);\n }\n return createDynamicParserFn(properties, littleEndian);\n}\n\n// Detect if unsafe eval is allowed in the current execution context\nconst UNSAFE_EVAL_ALLOWED = (() => {\n try {\n new Function(\"return 42;\");\n } catch (e) {\n return false;\n }\n return true;\n})();\nconst PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/;\n\nfunction safeToCompile(properties: Record) {\n if (!UNSAFE_EVAL_ALLOWED) {\n return false;\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!PROPERTY_NAME_REGEX.test(propertyName)) {\n return false;\n }\n\n if (\n property.isList &&\n !PLY_PROPERTY_TYPES.includes(property.countType as PlyPropertyType)\n ) {\n return false;\n }\n\n if (!PLY_PROPERTY_TYPES.includes(property.type)) {\n return false;\n }\n }\n return true;\n}\n\nfunction createCompiledParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct the parser function source.\n const parserSrc: string[] = [\"let list;\"];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parserSrc.push(/*js*/ `\n item.f_rest[${fRestIndex}] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else if (!property.isList) {\n parserSrc.push(/*js*/ `\n item['${propertyName}'] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else {\n // Property is a list, so parse the count first\n parserSrc.push(/*js*/ `\n list = item['${propertyName}'];\n list.length = PARSE_FIELD['${property.countType}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.countType as PlyPropertyType]};\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n }\n `);\n }\n }\n parserSrc.push(\"return offset;\");\n\n const fn = new Function(\n \"data\",\n \"offset\",\n \"item\",\n \"PARSE_FIELD\",\n parserSrc.join(\"\\n\"),\n );\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => fn(data, offset, item, PARSE_FIELD);\n}\n\nfunction createDynamicParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct an array of parser function to parse each property in an item\n const parsers: Array<\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => number\n > = [];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n (item.f_rest as number[])[fRestIndex] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else if (!property.isList) {\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n item[propertyName] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else {\n // Property is a list, so parse the count first\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n const list = item[propertyName] as number[];\n list.length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n littleEndian,\n );\n let currentOffset =\n offset + FIELD_BYTES[property.countType as PlyPropertyType];\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD[property.type](\n data,\n currentOffset,\n littleEndian,\n );\n currentOffset += FIELD_BYTES[property.type];\n }\n return currentOffset;\n },\n );\n }\n }\n\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n let currentOffset = offset;\n for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) {\n currentOffset = parsers[parserIndex](data, currentOffset, item);\n }\n return currentOffset;\n };\n}\n\nfunction getNumSh(properties: Record) {\n let num_f_rest = 0;\n while (properties[`f_rest_${num_f_rest}`]) {\n num_f_rest += 1;\n }\n const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest];\n if (numSh == null) {\n throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`);\n }\n return numSh;\n}\n\ntype SSChunk = {\n min_x: number;\n min_y: number;\n min_z: number;\n max_x: number;\n max_y: number;\n max_z: number;\n min_scale_x: number;\n min_scale_y: number;\n min_scale_z: number;\n max_scale_x: number;\n max_scale_y: number;\n max_scale_z: number;\n min_r?: number;\n min_g?: number;\n min_b?: number;\n max_r?: number;\n max_g?: number;\n max_b?: number;\n};\n","import { unzipSync } from \"fflate\";\nimport { FileLoader, Loader, type LoadingManager } from \"three\";\nimport { ExtSplats, type ExtSplatsOptions } from \"./ExtSplats\";\nimport { withWorker } from \"./OldSplatWorker\";\nimport { PackedSplats, type PackedSplatsOptions } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { type SplatEncoding, SplatFileType } from \"./defines\";\nimport { PlyReader } from \"./ply\";\nimport { decompressPartialGzip, getTextureSize } from \"./utils\";\n\n// SplatLoader implements the THREE.Loader interface and supports loading a variety\n// of different Gsplat file formats. Formats .PLY and .SPZ can be auto-detected\n// from the file contents, while .SPLAT and .KSPLAT require either having the\n// appropriate file extension as part of the path, or it can be explicitly set\n// in the loader using the fileType property.\n\nexport class SplatLoader extends Loader {\n fileLoader: FileLoader;\n\n constructor(manager?: LoadingManager) {\n super(manager);\n this.fileLoader = new FileLoader(manager);\n }\n\n load(\n url: string,\n onLoad?: (decoded: PackedSplats | ExtSplats) => void,\n onProgress?: (event: ProgressEvent) => void,\n onError?: (error: unknown) => void,\n ) {\n return this.loadInternal({\n url,\n onLoad,\n onProgress,\n onError,\n });\n }\n\n async loadAsync(\n url: string,\n onProgress?: (event: ProgressEvent) => void,\n ): Promise {\n return new Promise((resolve, reject) => {\n this.load(\n url,\n (decoded) => {\n resolve(decoded);\n },\n onProgress,\n reject,\n );\n });\n }\n\n parse(packedSplats: PackedSplats): SplatMesh {\n return new SplatMesh({ packedSplats });\n }\n\n loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad,\n onProgress,\n onError,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onLoad?: (decoded: PackedSplats | ExtSplats) => void;\n onProgress?: (event: ProgressEvent) => void;\n onError?: (error: unknown) => void;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n if (fileBytes instanceof ArrayBuffer) {\n fileBytes = new Uint8Array(fileBytes);\n }\n const resolvedURL = fileBytes\n ? undefined\n : this.manager.resolveURL((this.path ?? \"\") + (url ?? \"\"));\n\n let readStream = stream?.getReader();\n\n this.manager.itemStart(resolvedURL ?? \"\");\n // let calledOnLoad = false;\n\n workerPool\n .withWorker(async (worker) => {\n // If LoD is set and not falsey\n const splatsLod = packedSplats?.lod ?? extSplats?.lod;\n if (splatsLod) {\n lod = splatsLod;\n }\n const splatsNonLod = packedSplats?.nonLod ?? extSplats?.nonLod;\n if (splatsNonLod !== undefined) {\n nonLod = splatsNonLod;\n }\n\n // let init: {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // } | null = null;\n // let initExt: {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // } | null = null;\n\n const onStatus = async (data: unknown) => {\n const { loaded, total } = data as { loaded: number; total: number };\n if (loaded !== undefined && onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n\n if ((data as { nextChunk?: boolean }).nextChunk) {\n let chunk: Uint8Array;\n if (!readStream) {\n chunk = new Uint8Array(0);\n } else {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n readStream = undefined;\n chunk = new Uint8Array(0);\n } else {\n chunk = value;\n }\n }\n worker.call(\"nextChunk\", { chunk });\n }\n\n // if ((data as { orig?: unknown }).orig) {\n // if (extSplats) {\n // initExt = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // };\n // extSplats.initialize({\n // numSplats: initExt?.numSplats,\n // extArrays: [initExt?.ext0, initExt?.ext1],\n // extra: initExt?.extra,\n // });\n // calledOnLoad = true;\n // onLoad?.(extSplats);\n // } else if (packedSplats) {\n // init = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // };\n // packedSplats.initialize({\n // numSplats: init?.numSplats,\n // packedArray: init?.packedArray,\n // extra: init?.extra,\n // splatEncoding: init?.splatEncoding,\n // });\n // calledOnLoad = true;\n // onLoad?.(packedSplats);\n // } else {\n // console.warn(\"No splats to initialize\");\n // }\n // }\n };\n\n const basedUrl = resolvedURL\n ? new URL(resolvedURL, window.location.href).toString()\n : undefined;\n const decoded = (await worker.call(\n extSplats ? \"loadExtSplats\" : \"loadPackedSplats\",\n {\n url: basedUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n fileBytes: fileBytes?.slice(),\n fileType,\n pathName: resolvedURL || fileName,\n chunked: stream !== undefined,\n chunkedLength: streamLength,\n encoding: packedSplats?.splatEncoding,\n lod,\n lodBase,\n nonLod,\n lodAbove,\n },\n { onStatus },\n )) as {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n lodSplats?:\n | {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n }\n | PackedSplats\n | ExtSplats;\n };\n\n if (decoded.lodSplats) {\n if (extSplats) {\n decoded.lodSplats = new ExtSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n }),\n });\n } else {\n decoded.lodSplats = new PackedSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n }),\n maxSplats: packedSplats?.maxSplats,\n });\n }\n }\n\n if (extSplats) {\n const initExtSplats = {\n // ...(initExt ?? {}),\n ...decoded,\n };\n extSplats.initialize(initExtSplats as ExtSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(extSplats);\n // }\n } else {\n const initSplats = {\n // ...(init ?? {}),\n ...decoded,\n };\n if (packedSplats) {\n packedSplats.initialize(initSplats as PackedSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(packedSplats);\n // }\n } else {\n // if (!calledOnLoad) {\n onLoad?.(new PackedSplats(initSplats as PackedSplatsOptions));\n // }\n }\n }\n })\n .catch((error) => {\n this.manager.itemError(resolvedURL ?? \"\");\n onError?.(error);\n })\n .finally(() => {\n this.manager.itemEnd(resolvedURL ?? \"\");\n });\n }\n\n async loadInternalAsync({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onProgress?: (event: ProgressEvent) => void;\n lod?: boolean;\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n return new Promise((resolve, reject) => {\n this.loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad: resolve,\n onProgress,\n onError: reject,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n });\n });\n }\n}\n\nasync function fetchWithProgress(\n request: Request,\n onProgress?: (event: ProgressEvent) => void,\n) {\n const response = await fetch(request);\n if (!response.ok) {\n throw new Error(\n `${response.status} \"${response.statusText}\" fetching URL: ${request.url}`,\n );\n }\n if (!response.body) {\n throw new Error(`Response body is null for URL: ${request.url}`);\n }\n\n const reader = response.body.getReader();\n let loaded = 0;\n const chunks: Uint8Array[] = [];\n try {\n const contentLength = Number.parseInt(\n response.headers.get(\"Content-Length\") || \"0\",\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n loaded += value.length;\n\n if (onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n }\n } catch (err) {\n try {\n const reason = err instanceof Error ? err.message : \"Unknown error\";\n await reader.cancel(reason);\n } catch {}\n throw err;\n }\n\n // Combine chunks into a single buffer\n const bytes = new Uint8Array(loaded);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.length;\n }\n return bytes.buffer;\n}\n\nexport function getSplatFileType(\n fileBytes: Uint8Array,\n): SplatFileType | undefined {\n const view = new DataView(fileBytes.buffer);\n const magic = view.getUint32(0, true);\n if ((magic & 0x00ffffff) === 0x00796c70) {\n return SplatFileType.PLY;\n }\n if ((magic & 0x00ffffff) === 0x00088b1f) {\n // Gzipped file, unpack beginning to check magic number\n const header = decompressPartialGzip(fileBytes, 4);\n const gView = new DataView(header.buffer);\n if (gView.getUint32(0, true) === 0x5053474e) {\n return SplatFileType.SPZ;\n }\n // Unknown Gzipped file type\n return undefined;\n }\n if (magic === 0x04034b50) {\n // PKZip file\n if (tryPcSogsZip(fileBytes)) {\n return SplatFileType.PCSOGSZIP;\n }\n // Unknown PKZip file type\n return undefined;\n }\n if (magic === 0x30444152) {\n return SplatFileType.RAD;\n }\n // Unknown file type\n return undefined;\n}\n\n// Returns the lowercased file extension from a path or URL\nexport function getFileExtension(pathOrUrl: string): string {\n const noTrailing = pathOrUrl.split(/[?#]/, 1)[0];\n const lastSlash = Math.max(\n noTrailing.lastIndexOf(\"/\"),\n noTrailing.lastIndexOf(\"\\\\\"),\n );\n const filename = noTrailing.slice(lastSlash + 1);\n const lastDot = filename.lastIndexOf(\".\");\n if (lastDot <= 0 || lastDot === filename.length - 1) {\n return \"\"; // No extension\n }\n return filename.slice(lastDot + 1).toLowerCase();\n}\n\nexport function getSplatFileTypeFromPath(\n pathOrUrl: string,\n): SplatFileType | undefined {\n const extension = getFileExtension(pathOrUrl);\n if (extension === \"ply\") {\n return SplatFileType.PLY;\n }\n if (extension === \"spz\") {\n return SplatFileType.SPZ;\n }\n if (extension === \"splat\") {\n return SplatFileType.SPLAT;\n }\n if (extension === \"ksplat\") {\n return SplatFileType.KSPLAT;\n }\n if (extension === \"sog\") {\n return SplatFileType.PCSOGSZIP;\n }\n if (extension === \"rad\") {\n return SplatFileType.RAD;\n }\n return undefined;\n}\n\nexport type PcSogsJson = {\n means: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n quats: { shape: number[]; dtype: string; encoding?: string; files: string[] };\n sh0: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n shN?: {\n shape: number[];\n dtype: string;\n mins: number;\n maxs: number;\n quantization: number;\n files: string[];\n };\n};\n\nexport type PcSogsV2Json = {\n version: 2;\n count: number;\n antialias?: boolean;\n means: {\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n codebook: number[];\n files: string[];\n };\n quats: { files: string[] };\n sh0: {\n codebook: number[];\n files: string[];\n };\n shN?: {\n count: number;\n bands: number;\n codebook: number[];\n files: string[];\n };\n};\n\nexport function isPcSogs(input: ArrayBuffer | Uint8Array | string): boolean {\n // Returns true if the input seems to be a valid PC SOGS file\n return tryPcSogs(input) !== undefined;\n}\n\nexport function tryPcSogs(\n input: ArrayBuffer | Uint8Array | string,\n): PcSogsJson | PcSogsV2Json | undefined {\n // Try to parse input as SOGS JSON and see if it's valid\n try {\n let text: string;\n if (typeof input === \"string\") {\n text = input;\n } else {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n if (fileBytes.length > 65536) {\n // Should be only a few KB, definitely not a SOGS JSON file\n return undefined;\n }\n text = new TextDecoder().decode(fileBytes);\n }\n\n const json = JSON.parse(text);\n if (!json || typeof json !== \"object\" || Array.isArray(json)) {\n return undefined;\n }\n const isVersion2 = json.version === 2;\n\n for (const key of [\"means\", \"scales\", \"quats\", \"sh0\"]) {\n if (\n !json[key] ||\n typeof json[key] !== \"object\" ||\n Array.isArray(json[key])\n ) {\n return undefined;\n }\n if (isVersion2) {\n // Expect files\n if (!json[key].files) {\n return undefined;\n }\n\n // Scales and sh0 should have codebooks\n if ((key === \"scales\" || key === \"sh0\") && !json[key].codebook) {\n return undefined;\n }\n // Means should have mins and maxs defined\n if (key === \"means\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n } else {\n // Expect shape and files\n if (!json[key].shape || !json[key].files) {\n return undefined;\n }\n // Besides 'quats' all other properties have mins and maxs\n if (key !== \"quats\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n }\n }\n // This is probably a PC SOGS file\n return json as PcSogsJson | PcSogsV2Json;\n } catch {\n return undefined;\n }\n}\n\nexport function tryPcSogsZip(\n input: ArrayBuffer | Uint8Array,\n): { name: string; json: PcSogsJson | PcSogsV2Json } | undefined {\n try {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let metaFilename: string | null = null;\n\n const unzipped = unzipSync(fileBytes, {\n filter: ({ name }) => {\n const filename = name.split(/[\\\\/]/).pop() as string;\n if (filename === \"meta.json\") {\n metaFilename = name;\n return true;\n }\n return false;\n },\n });\n if (!metaFilename) {\n return undefined;\n }\n\n // Check for PC SOGS V1 and V2 (aka SOG)\n const json = tryPcSogs(unzipped[metaFilename]);\n if (!json) {\n return undefined;\n }\n return { name: metaFilename, json };\n } catch {\n return undefined;\n }\n}\n\nexport async function unpackSplats({\n input,\n extraFiles,\n fileType,\n pathOrUrl,\n splatEncoding,\n}: {\n input: Uint8Array | ArrayBuffer;\n extraFiles?: Record;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n splatEncoding?: SplatEncoding;\n}): Promise<{\n packedArray: Uint32Array;\n numSplats: number;\n extra?: Record;\n}> {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let splatFileType = fileType;\n if (!fileType) {\n splatFileType = getSplatFileType(fileBytes);\n if (!splatFileType && pathOrUrl) {\n splatFileType = getSplatFileTypeFromPath(pathOrUrl);\n }\n }\n\n switch (splatFileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes });\n await ply.parseHeader();\n const numSplats = ply.numSplats;\n const maxSplats = getTextureSize(numSplats).maxSplats;\n const args = {\n fileBytes,\n packedArray: new Uint32Array(maxSplats * 4),\n splatEncoding,\n };\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"unpackPly\",\n args,\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.SPZ: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodeSpz\",\n {\n fileBytes,\n splatEncoding,\n },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.SPLAT: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats } = (await worker.call(\n \"decodeAntiSplat\",\n {\n fileBytes,\n splatEncoding,\n },\n )) as { packedArray: Uint32Array; numSplats: number };\n return { packedArray, numSplats };\n });\n }\n case SplatFileType.KSPLAT: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodeKsplat\",\n { fileBytes, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.PCSOGS: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodePcSogs\",\n { fileBytes, extraFiles, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.PCSOGSZIP: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodePcSogsZip\",\n { fileBytes, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n default: {\n throw new Error(`Unknown splat file type: ${splatFileType}`);\n }\n }\n}\n\nexport class SplatData {\n numSplats: number;\n maxSplats: number;\n centers: Float32Array;\n scales: Float32Array;\n quaternions: Float32Array;\n opacities: Float32Array;\n colors: Float32Array;\n sh1?: Float32Array;\n sh2?: Float32Array;\n sh3?: Float32Array;\n\n constructor({ maxSplats = 1 }: { maxSplats?: number } = {}) {\n this.numSplats = 0;\n this.maxSplats = getTextureSize(maxSplats).maxSplats;\n this.centers = new Float32Array(this.maxSplats * 3);\n this.scales = new Float32Array(this.maxSplats * 3);\n this.quaternions = new Float32Array(this.maxSplats * 4);\n this.opacities = new Float32Array(this.maxSplats);\n this.colors = new Float32Array(this.maxSplats * 3);\n }\n\n pushSplat(): number {\n const index = this.numSplats;\n this.ensureIndex(index);\n this.numSplats += 1;\n return index;\n }\n\n unpushSplat(index: number) {\n if (index === this.numSplats - 1) {\n this.numSplats -= 1;\n } else {\n throw new Error(\"Cannot unpush splat from non-last position\");\n }\n }\n\n ensureCapacity(numSplats: number) {\n if (numSplats > this.maxSplats) {\n const targetSplats = Math.max(numSplats, this.maxSplats * 2);\n const newCenters = new Float32Array(targetSplats * 3);\n const newScales = new Float32Array(targetSplats * 3);\n const newQuaternions = new Float32Array(targetSplats * 4);\n const newOpacities = new Float32Array(targetSplats);\n const newColors = new Float32Array(targetSplats * 3);\n newCenters.set(this.centers);\n newScales.set(this.scales);\n newQuaternions.set(this.quaternions);\n newOpacities.set(this.opacities);\n newColors.set(this.colors);\n this.centers = newCenters;\n this.scales = newScales;\n this.quaternions = newQuaternions;\n this.opacities = newOpacities;\n this.colors = newColors;\n\n if (this.sh1) {\n const newSh1 = new Float32Array(targetSplats * 9);\n newSh1.set(this.sh1);\n this.sh1 = newSh1;\n }\n if (this.sh2) {\n const newSh2 = new Float32Array(targetSplats * 15);\n newSh2.set(this.sh2);\n this.sh2 = newSh2;\n }\n if (this.sh3) {\n const newSh3 = new Float32Array(targetSplats * 21);\n newSh3.set(this.sh3);\n this.sh3 = newSh3;\n }\n\n this.maxSplats = targetSplats;\n }\n }\n\n ensureIndex(index: number) {\n this.ensureCapacity(index + 1);\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n this.centers[index * 3] = x;\n this.centers[index * 3 + 1] = y;\n this.centers[index * 3 + 2] = z;\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n this.scales[index * 3] = scaleX;\n this.scales[index * 3 + 1] = scaleY;\n this.scales[index * 3 + 2] = scaleZ;\n }\n\n setQuaternion(index: number, x: number, y: number, z: number, w: number) {\n this.quaternions[index * 4] = x;\n this.quaternions[index * 4 + 1] = y;\n this.quaternions[index * 4 + 2] = z;\n this.quaternions[index * 4 + 3] = w;\n }\n\n setOpacity(index: number, opacity: number) {\n this.opacities[index] = opacity;\n }\n\n setColor(index: number, r: number, g: number, b: number) {\n this.colors[index * 3] = r;\n this.colors[index * 3 + 1] = g;\n this.colors[index * 3 + 2] = b;\n }\n\n setSh1(index: number, sh1: Float32Array) {\n if (!this.sh1) {\n this.sh1 = new Float32Array(this.maxSplats * 9);\n }\n for (let j = 0; j < 9; ++j) {\n this.sh1[index * 9 + j] = sh1[j];\n }\n }\n\n setSh2(index: number, sh2: Float32Array) {\n if (!this.sh2) {\n this.sh2 = new Float32Array(this.maxSplats * 15);\n }\n for (let j = 0; j < 15; ++j) {\n this.sh2[index * 15 + j] = sh2[j];\n }\n }\n\n setSh3(index: number, sh3: Float32Array) {\n if (!this.sh3) {\n this.sh3 = new Float32Array(this.maxSplats * 21);\n }\n for (let j = 0; j < 21; ++j) {\n this.sh3[index * 21 + j] = sh3[j];\n }\n }\n}\n\nexport async function transcodeSpz(\n input: TranscodeSpzInput,\n): Promise<{ input: TranscodeSpzInput; fileBytes: Uint8Array }> {\n return await withWorker(async (worker) => {\n const result = (await worker.call(\"transcodeSpz\", input)) as {\n input: TranscodeSpzInput;\n fileBytes: Uint8Array;\n };\n return result;\n });\n}\n\nexport type FileInput = {\n fileBytes: Uint8Array;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n transform?: { translate?: number[]; quaternion?: number[]; scale?: number };\n};\n\nexport type TranscodeSpzInput = {\n inputs: FileInput[];\n maxSh?: number;\n clipXyz?: { min: number[]; max: number[] };\n fractionalBits?: number;\n opacityThreshold?: number;\n};\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport type { RgbaArray } from \"./RgbaArray\";\nimport type { GsplatGenerator } from \"./SplatGenerator\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n DynoProgram,\n DynoProgramTemplate,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n add,\n dynoBlock,\n normalize,\n outputPackedSplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport {\n type Gsplat,\n TPackedSplats,\n combineGsplat,\n definePackedSplats,\n readPackedSplat,\n splatTexCoord,\n splitGsplat,\n} from \"./dyno/splats\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, setPackedSplat, unpackSplat } from \"./utils\";\n\n// Initialize a PackedSplats collection from source data via\n// url, fileBytes, or packedArray. Creates an empty array if none are set,\n// and splat data can be constructed using pushSplat()/setSplat(). The maximum\n// splat size allocation will grow automatically, starting from maxSplats.\nexport type PackedSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided packed data array, where each 4 consecutive uint32 values\n // encode one \"packed\" Gsplat. (default: undefined)\n packedArray?: Uint32Array;\n // Override number of splats in packed array to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the PackedSplats\n lodSplats?: PackedSplats;\n};\n\n// A PackedSplats is a collection of Gaussian splats, packed into a format that\n// takes exactly 16 bytes per Gsplat to maximize memory and cache efficiency.\n// The center xyz coordinates are encoded as float16 (3 x 2 bytes), scale xyz\n// as 3 x uint8 that encode a log scale from e^-12 to e^9, rgba as 4 x uint8,\n// and quaternion encoded via axis+angle using 2 x uint8 for octahedral encoding\n// of the axis direction and a uint8 to encode rotation amount from 0..Pi.\n\nexport class PackedSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n packedArray: Uint32Array | null = null;\n extra: Record;\n maxSh = 3;\n splatEncoding?: SplatEncoding;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: PackedSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n // Either target or source will be non-null, depending on whether the PackedSplats\n // is being used as a data source or generated to.\n target: THREE.WebGLArrayRenderTarget | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source packedArray is updated to have it upload to GPU\n needsUpdate = true;\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoRgbMinMaxLnScaleMinMax: DynoUniform<\"vec4\", \"rgbMinMaxLnScaleMinMax\">;\n dynoNumSh: DynoInt<\"numSh\">;\n dynoShMax: DynoVec3;\n\n constructor(options: PackedSplatsOptions = {}) {\n this.extra = {};\n this.dyno = new DynoPackedSplats({ packedSplats: this });\n this.dynoRgbMinMaxLnScaleMinMax = new DynoVec4({\n key: \"rgbMinMaxLnScaleMinMax\",\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n update: (value) => {\n value.set(\n this.splatEncoding?.rgbMin ?? 0.0,\n this.splatEncoding?.rgbMax ?? 1.0,\n this.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n return value;\n },\n });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n this.dynoShMax = new DynoVec3({\n key: \"shMax\",\n value: new THREE.Vector3(),\n update: (value) => {\n value.set(\n this.splatEncoding?.sh1Max ?? 1.0,\n this.splatEncoding?.sh2Max ?? 1.0,\n this.splatEncoding?.sh3Max ?? 1.0,\n );\n return value;\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: PackedSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.splatEncoding = options.splatEncoding;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: PackedSplatsOptions) {\n this.extra = options.extra ?? {};\n this.splatEncoding = options.splatEncoding ?? this.splatEncoding;\n this.lodSplats = options.lodSplats;\n\n if (options.packedArray) {\n this.packedArray = options.packedArray;\n this.numSplats = options.numSplats ?? this.packedArray.length / 4;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats = Math.floor(this.packedArray.length / 4);\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n }\n }\n\n async asyncInitialize(options: PackedSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n packedSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target.texture.source.data = null;\n this.target = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source.source.data = null;\n this.source = null;\n }\n\n this.packedArray = null;\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"PackedSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3 ? 2 : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readPackedSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3Texture } = this.ensureShTextures();\n let { rgb } = evaluatePackedSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax: this.dynoShMax,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 2,\n );\n if (sh1.length < maxSplats * 2) {\n const newSh1 = new Uint32Array(maxSplats * 2);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n\n const texture = new THREE.DataArrayTexture(sh1, width, height, depth);\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = new THREE.DataArrayTexture(sh2, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3Texture = this.extra.sh3Texture as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3Texture) {\n let sh3 = this.extra.sh3 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3.length / 4,\n );\n if (sh3.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3);\n this.extra.sh3 = newSh3;\n sh3 = newSh3;\n }\n\n const texture = new THREE.DataArrayTexture(sh3, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh3Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3Texture = sh3Texture;\n }\n\n return { sh1Texture, sh2Texture, sh3Texture };\n }\n\n // Ensures that this.packedArray can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): Uint32Array {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.packedArray ? 0 : this.packedArray.length / 4;\n\n if (!this.packedArray || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(this.maxSplats * 4);\n if (this.packedArray) {\n // Copy over existing data\n newArray.set(this.packedArray);\n }\n this.packedArray = newArray;\n }\n return this.packedArray;\n }\n\n // Ensure the extra array for the given level is large enough to hold numSplats\n ensureSplatsSh(level: number, numSplats: number): Uint32Array {\n let wordsPerSplat: number;\n let key: string;\n if (level === 0) {\n return this.ensureSplats(numSplats);\n }\n if (level === 1) {\n // 3 x 3 uint7 = 63 bits = 2 uint32\n wordsPerSplat = 2;\n key = \"sh1\";\n } else if (level === 2) {\n // 5 x 3 uint8 = 120 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh2\";\n } else if (level === 3) {\n // 7 x 3 uint6 = 126 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh3\";\n } else {\n throw new Error(`Invalid level: ${level}`);\n }\n\n // Figure out our current and desired maxSplats\n let maxSplats: number = !this.extra[key]\n ? 0\n : (this.extra[key] as Uint32Array).length / wordsPerSplat;\n const targetSize =\n numSplats <= maxSplats ? maxSplats : Math.max(numSplats, 2 * maxSplats);\n\n if (!this.extra[key] || targetSize > maxSplats) {\n // Reallocate the array\n maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(maxSplats * wordsPerSplat);\n if (this.extra[key]) {\n // Copy over existing data\n newArray.set(this.extra[key] as Uint32Array);\n }\n this.extra[key] = newArray;\n }\n return this.extra[key] as Uint32Array;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (!this.packedArray || index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return unpackSplat(this.packedArray, index, this.splatEncoding);\n }\n\n // Set all PackedSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(index + 1);\n setPackedSplat(\n packedSplats,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(this.numSplats + 1);\n setPackedSplat(\n packedSplats,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.packedArray || !this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = unpackSplat(this.packedArray, i, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Ensures our PackedSplats.target render target has enough space to generate\n // maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate(maxSplats: number): boolean {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n if (this.target) {\n this.target.dispose();\n }\n\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAIntegerFormat;\n this.target.texture.type = THREE.UnsignedIntType;\n this.target.texture.internalFormat = \"RGBA32UI\";\n this.target.scissorTest = true;\n return true;\n }\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Returns a THREE.DataArrayTexture representing the PackedSplats content as\n // a Uint32x4 data array texture (2048 x 2048 x depth in size)\n getTexture(): THREE.DataArrayTexture {\n if (this.target) {\n // Return the render target's texture\n return this.target.texture;\n }\n if (this.source || this.packedArray) {\n // Update source texture if needed and return\n const source = this.maybeUpdateSource();\n return source;\n }\n\n return PackedSplats.getEmptyArray;\n }\n\n // Check if source texture needs to be created/updated\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.packedArray) {\n throw new Error(\"No packed splats\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.source = new THREE.DataArrayTexture(\n this.packedArray as Uint32Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAIntegerFormat;\n this.source.type = THREE.UnsignedIntType;\n this.source.internalFormat = \"RGBA32UI\";\n this.source.needsUpdate = true;\n } else if (this.packedArray.buffer !== this.source.image.data.buffer) {\n // The source texture is the right size, update the data\n this.source.image.data = new Uint8Array(this.packedArray.buffer);\n }\n // Indicate to Three.js that the source texture needs to be uploaded to the GPU\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n static getEmptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(generator: GsplatGenerator): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = PackedSplats.generatorProgram.get(generator);\n if (!program) {\n // A Gsplat needs to be turned into a packed uvec4 for the dyno graph\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n generator.inputs.index = index;\n const gsplat = generator.outputs.gsplat;\n const output = outputPackedSplat(\n gsplat,\n this.dynoRgbMinMaxLnScaleMinMax,\n );\n roots.push(output);\n return undefined;\n },\n );\n if (!PackedSplats.programTemplate) {\n PackedSplats.programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { output: \"target\" },\n template: PackedSplats.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n PackedSplats.generatorProgram.set(generator, program);\n }\n\n // Prepare and update our material we'll use to render the Gsplats\n const material = program.prepareMaterial();\n PackedSplats.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Executes a dyno program specified by generator which is any DynoBlock that\n // maps { index: \"int\" } to { gsplat: Gsplat }. This is called in\n // SparkRenderer.updateInternal() to re-generate Gsplats in the scene for\n // SplatGenerator instances whose version is newer than what was generated\n // for it last time.\n generate({\n generator,\n base,\n count,\n renderer,\n }: {\n generator: GsplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }): { nextBase: number } {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureSplats\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(generator);\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n PackedSplats.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const packedArray = (this.packedArray as Uint32Array).slice();\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodPackedSplats\" : \"tinyLodPackedSplats\",\n {\n numSplats: this.numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding: this.splatEncoding ?? DEFAULT_SPLAT_ENCODING,\n },\n )) as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n };\n });\n\n const lodSplats = new PackedSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new PackedSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for GsplatGenerator programs\n static generatorProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\n// You can use a PackedSplats as a dyno block using the function\n// dyno.readPackedSplats(packedSplats.dyno, dynoIndex) where\n// dynoIndex is of type DynoVal<\"int\">. If you need to be able to change\n// the input PackedSplats dynamically, however, you should create a\n// DynoPackedSplats, whose property packedSplats you can change to any\n// PackedSplats and that will be used in the dyno shader program.\n\nexport const dynoPackedSplats = (packedSplats?: PackedSplats) =>\n new DynoPackedSplats({ packedSplats });\n\nexport class DynoPackedSplats extends DynoUniform<\n typeof TPackedSplats,\n \"packedSplats\",\n {\n textureArray: THREE.DataArrayTexture;\n numSplats: number;\n rgbMinMaxLnScaleMinMax: THREE.Vector4;\n lodOpacity: boolean;\n }\n> {\n packedSplats?: PackedSplats;\n\n constructor({ packedSplats }: { packedSplats?: PackedSplats } = {}) {\n super({\n key: \"packedSplats\",\n type: TPackedSplats,\n globals: () => [definePackedSplats],\n value: {\n textureArray: PackedSplats.getEmptyArray,\n numSplats: 0,\n rgbMinMaxLnScaleMinMax: new THREE.Vector4(\n 0,\n 1,\n LN_SCALE_MIN,\n LN_SCALE_MAX,\n ),\n lodOpacity: false,\n },\n update: (value) => {\n value.textureArray =\n this.packedSplats?.getTexture() ?? PackedSplats.getEmptyArray;\n value.numSplats = this.packedSplats?.numSplats ?? 0;\n value.rgbMinMaxLnScaleMinMax.set(\n this.packedSplats?.splatEncoding?.rgbMin ?? 0,\n this.packedSplats?.splatEncoding?.rgbMax ?? 1,\n this.packedSplats?.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.packedSplats?.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n value.lodOpacity =\n this.packedSplats?.splatEncoding?.lodOpacity ?? false;\n return value;\n },\n });\n this.packedSplats = packedSplats;\n }\n}\n\nexport const defineEvalPackedSH1 = unindent(`\n vec3 evaluatePackedSH1(uvec2 packedData, vec3 viewDir, float sh1Max) {\n // Extract sint7 values packed into 2 x uint32\n vec3 sh1_0 = vec3(ivec3(\n int(packedData.x << 25u) >> 25,\n int(packedData.x << 18u) >> 25,\n int(packedData.x << 11u) >> 25\n ));\n vec3 sh1_1 = vec3(ivec3(\n int(packedData.x << 4u) >> 25,\n int((packedData.x >> 3u) | (packedData.y << 29u)) >> 25,\n int(packedData.y << 22u) >> 25\n ));\n vec3 sh1_2 = vec3(ivec3(\n int(packedData.y << 15u) >> 25,\n int(packedData.y << 8u) >> 25,\n int(packedData.y << 1u) >> 25\n ));\n\n vec3 rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n return rgb * (sh1Max / 63.0);\n }\n`);\n\nexport const defineEvalPackedSH2 = unindent(`\n vec3 evaluatePackedSH2(uvec4 packedData, vec3 viewDir, float sh2Max) {\n // Extract sint8 values packed into 4 x uint32\n vec3 sh2_0 = vec3(ivec3(\n int(packedData.x << 24u) >> 24,\n int(packedData.x << 16u) >> 24,\n int(packedData.x << 8u) >> 24\n ));\n vec3 sh2_1 = vec3(ivec3(\n int(packedData.x) >> 24,\n int(packedData.y << 24u) >> 24,\n int(packedData.y << 16u) >> 24\n ));\n vec3 sh2_2 = vec3(ivec3(\n int(packedData.y << 8u) >> 24,\n int(packedData.y) >> 24,\n int(packedData.z << 24u) >> 24\n ));\n vec3 sh2_3 = vec3(ivec3(\n int(packedData.z << 16u) >> 24,\n int(packedData.z << 8u) >> 24,\n int(packedData.z) >> 24\n ));\n vec3 sh2_4 = vec3(ivec3(\n int(packedData.w << 24u) >> 24,\n int(packedData.w << 16u) >> 24,\n int(packedData.w << 8u) >> 24\n ));\n\n vec3 rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n return rgb * (sh2Max / 127.0);\n }\n`);\n\nexport const defineEvalPackedSH3 = unindent(`\n vec3 evaluatePackedSH3(uvec4 packedData, vec3 viewDir, float sh3Max) {\n // Extract sint6 values packed into 4 x uint32\n vec3 sh3_0 = vec3(ivec3(\n int(packedData.x << 26u) >> 26,\n int(packedData.x << 20u) >> 26,\n int(packedData.x << 14u) >> 26\n ));\n vec3 sh3_1 = vec3(ivec3(\n int(packedData.x << 8u) >> 26,\n int(packedData.x << 2u) >> 26,\n int((packedData.x >> 4u) | (packedData.y << 28u)) >> 26\n ));\n vec3 sh3_2 = vec3(ivec3(\n int(packedData.y << 22u) >> 26,\n int(packedData.y << 16u) >> 26,\n int(packedData.y << 10u) >> 26\n ));\n vec3 sh3_3 = vec3(ivec3(\n int(packedData.y << 4u) >> 26,\n int((packedData.y >> 2u) | (packedData.z << 30u)) >> 26,\n int(packedData.z << 24u) >> 26\n ));\n vec3 sh3_4 = vec3(ivec3(\n int(packedData.z << 18u) >> 26,\n int(packedData.z << 12u) >> 26,\n int(packedData.z << 6u) >> 26\n ));\n vec3 sh3_5 = vec3(ivec3(\n int(packedData.z) >> 26,\n int(packedData.w << 26u) >> 26,\n int(packedData.w << 20u) >> 26\n ));\n vec3 sh3_6 = vec3(ivec3(\n int(packedData.w << 14u) >> 26,\n int(packedData.w << 8u) >> 26,\n int(packedData.w << 2u) >> 26\n ));\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n vec3 rgb = sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n return rgb * (sh3Max / 31.0);\n }\n`);\n\nexport function evaluatePackedSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n shMax: DynoVal<\"vec3\">;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3Texture: \"usampler2DArray\",\n shMax: \"vec3\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n },\n globals: () => [\n defineEvalPackedSH1,\n defineEvalPackedSH2,\n defineEvalPackedSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0).rg, ${inputs.viewDir}, ${inputs.shMax}.x);\n rgb += sh1Rgb;\n `),\n );\n if (inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 2) {\n vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.y);\n rgb += sh2Rgb;\n `),\n );\n if (inputs.sh3Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${inputs.sh3Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.z);\n rgb += sh3Rgb;\n }\n `),\n );\n }\n lines.push(\"}\");\n }\n lines.push(\"}\");\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n","import * as THREE from \"three\";\n\nimport type { OldSparkRenderer } from \"./OldSparkRenderer\";\nimport type { OldSplatAccumulator } from \"./OldSplatAccumulator\";\nimport { OldSplatGeometry } from \"./OldSplatGeometry\";\nimport { withWorker } from \"./OldSplatWorker\";\nimport { DynoPackedSplats } from \"./PackedSplats\";\nimport { Readback } from \"./Readback\";\nimport {\n type DynoBlock,\n DynoBool,\n DynoFloat,\n type DynoVal,\n DynoVec3,\n Gsplat,\n add,\n combine,\n defineGsplat,\n dyno,\n dynoBlock,\n dynoConst,\n floatBitsToUint,\n mul,\n packHalf2x16,\n readPackedSplat,\n uintToRgba8,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { FreeList, withinCoorientDist } from \"./utils\";\n\nexport type OldSparkViewpointOptions = {\n /**\n * Controls whether to auto-update its sort order whenever the SparkRenderer\n * updates the Gsplats. If you expect to render/display from this viewpoint\n * most frames, set this to true.\n * @default false\n */\n autoUpdate?: boolean;\n /**\n * Set a THREE.Camera for this viewpoint to follow.\n * @default undefined\n */\n camera?: THREE.Camera;\n /**\n * Set an explicit view-to-world transformation matrix for this viewpoint (equivalent\n * to camera.matrixWorld), overrides any camera setting.\n * @default undefined\n */\n viewToWorld?: THREE.Matrix4;\n /**\n * Configure viewpoint with an off-screen render target.\n * @default undefined\n */\n target?: {\n /**\n * Width of the render target in pixels.\n */\n width: number;\n /**\n * Height of the render target in pixels.\n */\n height: number;\n /**\n * If you want to be able to render a scene that depends on this target's\n * output (for example, a recursive viewport), set this to true to enable\n * double buffering.\n * @default false\n */\n doubleBuffer?: boolean;\n /**\n * Super-sampling factor for the render target. Values 1-4 are supported.\n * Note that re-sampling back down to .width x .height is done on the CPU\n * with simple averaging only when calling readTarget().\n * @default 1\n */\n superXY?: number;\n };\n /**\n * Callback function that is called when the render target texture is updated.\n * Receives the texture as a parameter. Use this to update a viewport with\n * the latest viewpoint render each frame.\n * @default undefined\n */\n onTextureUpdated?: (texture: THREE.Texture) => void;\n /**\n * Whether to sort splats radially (geometric distance) from the viewpoint (true)\n * or by Z-depth (false). Most scenes are trained with the Z-depth sort metric\n * and will render more accurately at certain viewpoints. However, radial sorting\n * is more stable under viewpoint rotations.\n * @default true\n */\n sortRadial?: boolean;\n /**\n * Distance threshold for re-sorting splats. If the viewpoint moves more than\n * this distance, splats will be re-sorted.\n * @default 0.01 units\n */\n sortDistance?: number;\n /**\n * View direction dot product threshold for re-sorting splats. For\n * sortRadial: true we use 0.99 while sortRadial: false uses 0.999 because it is\n * more sensitive to view direction.\n * @default 0.99 if sortRadial else 0.999\n */\n sortCoorient?: boolean;\n /**\n * Constant added to Z-depth to bias values into the positive range for\n * sortRadial: false, but also used for culling Gsplats \"well behind\"\n * the viewpoint origin\n * @default 1.0\n */\n depthBias?: number;\n /**\n * Set this to true if rendering a 360 to disable \"behind the viewpoint\"\n * culling during sorting. This is set automatically when rendering 360 envMaps\n * using the SparkRenderer.renderEnvMap() utility function.\n * @default false\n */\n sort360?: boolean;\n /*\n * Set this to true to sort with float32 precision with two-pass sort.\n * @default true\n */\n sort32?: boolean;\n /*\n * Set this to true to enable sort-free stochastic splat rendering.\n * @default false\n */\n stochastic?: boolean;\n};\n\n// A SparkViewpoint is created from and tied to a SparkRenderer, and represents\n// an independent viewpoint of all the scene Gsplats and their sort order. Making\n// these viewpoints explicit allows us to have multiple, simultaneous viewpoint\n// renders, for example for camera preview panes or overhead map views.\n//\n// When creating a SparkRenderer it automatically creates a default viewpoint\n// .defaultView that is used in the normal render loop when drawing to the canvas,\n// and is automatically updated whenever the camera moves. Additional viewpoints\n// can be created and configured separately.\n\nexport class OldSparkViewpoint {\n spark: OldSparkRenderer;\n autoUpdate: boolean;\n camera?: THREE.Camera;\n viewToWorld: THREE.Matrix4;\n lastTime: number | null = null;\n\n target?: THREE.WebGLRenderTarget;\n private back?: THREE.WebGLRenderTarget;\n onTextureUpdated?: (texture: THREE.Texture) => void;\n encodeLinear = false;\n superXY = 1;\n private superPixels?: Uint8Array;\n private pixels?: Uint8Array;\n\n sortRadial: boolean;\n sortDistance?: number;\n sortCoorient?: boolean;\n depthBias?: number;\n sort360?: boolean;\n sort32?: boolean;\n stochastic: boolean;\n\n display: {\n accumulator: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n geometry: OldSplatGeometry;\n } | null = null;\n\n private sorting: { viewToWorld: THREE.Matrix4 } | null = null;\n private pending: {\n accumulator?: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n displayed: boolean;\n } | null = null;\n private sortingCheck = false;\n\n private readback16: Uint16Array = new Uint16Array(0);\n private readback32: Uint32Array = new Uint32Array(0);\n private orderingFreelist: FreeList;\n\n constructor(options: OldSparkViewpointOptions & { spark: OldSparkRenderer }) {\n this.spark = options.spark;\n this.camera = options.camera;\n this.viewToWorld = options.viewToWorld ?? new THREE.Matrix4();\n\n if (options.target) {\n const { width, height, doubleBuffer } = options.target;\n const superXY = Math.max(1, Math.min(4, options.target.superXY ?? 1));\n this.superXY = superXY;\n if (width * superXY > 8192 || height * superXY > 8192) {\n throw new Error(\"Target size too large\");\n }\n\n this.target = new THREE.WebGLRenderTarget(\n width * superXY,\n height * superXY,\n {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n },\n );\n if (doubleBuffer) {\n this.back = new THREE.WebGLRenderTarget(\n width * superXY,\n height * superXY,\n {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n },\n );\n }\n this.encodeLinear = true;\n }\n this.onTextureUpdated = options.onTextureUpdated;\n\n this.sortRadial = options.sortRadial ?? true;\n this.sortDistance = options.sortDistance;\n this.sortCoorient = options.sortCoorient;\n this.depthBias = options.depthBias;\n this.sort360 = options.sort360;\n this.sort32 = options.sort32;\n this.stochastic = options.stochastic ?? false;\n\n this.orderingFreelist = new FreeList({\n allocate: (maxSplats) =>\n new Uint32Array(maxSplats) as Uint32Array,\n valid: (ordering, maxSplats) => ordering.length === maxSplats,\n });\n\n this.autoUpdate = false;\n this.setAutoUpdate(options.autoUpdate ?? false);\n }\n\n // Call this when you are done with the SparkViewpoint and want to\n // free up its resources (GPU targets, pixel buffers, etc.)\n dispose() {\n this.setAutoUpdate(false);\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n if (this.back) {\n this.back.dispose();\n this.back = undefined;\n }\n if (this.display) {\n this.spark.releaseAccumulator(this.display.accumulator);\n this.display.geometry.dispose();\n this.display = null;\n }\n if (this.pending?.accumulator) {\n this.spark.releaseAccumulator(this.pending.accumulator);\n this.pending = null;\n }\n }\n\n // Use this function to change whether this viewpoint will auto-update\n // its sort order whenever the attached SparkRenderer updates the Gsplats.\n // Turn this on or off depending on whether you expect to do renders from\n // this viewpoint most frames.\n setAutoUpdate(autoUpdate: boolean) {\n if (!this.autoUpdate && autoUpdate) {\n this.spark.autoViewpoints.push(this);\n } else if (this.autoUpdate && !autoUpdate) {\n this.spark.autoViewpoints = this.spark.autoViewpoints.filter(\n (v) => v !== this,\n );\n }\n this.autoUpdate = autoUpdate;\n }\n\n // See below async prepareRenderPixels() for explanation of parameters.\n // Awaiting this method updates the Gsplats in the scene and performs a sort of the\n // Gsplats from this viewpoint, preparing it for a subsequent this.renderTarget()\n // call in the same tick.\n async prepare({\n scene,\n camera,\n viewToWorld,\n update,\n forceOrigin,\n }: {\n scene: THREE.Scene;\n camera?: THREE.Camera;\n viewToWorld?: THREE.Matrix4;\n update?: boolean;\n forceOrigin?: boolean;\n }) {\n if (viewToWorld) {\n this.viewToWorld = viewToWorld;\n } else {\n this.camera = camera ?? this.camera;\n if (this.camera) {\n this.camera.updateMatrixWorld();\n this.viewToWorld = this.camera.matrixWorld.clone();\n }\n }\n while (update ?? true) {\n // Force an update, possibly with origin centered at this camera\n // to yield the best quality output.\n const originToWorld = forceOrigin\n ? this.viewToWorld\n : this.spark.matrixWorld;\n const updated = this.spark.updateInternal({ scene, originToWorld });\n if (updated) {\n break;\n }\n // A bit of a hack, but try again. We shouldn't be starved for long.\n await new Promise((resolve) => setTimeout(resolve, 10));\n }\n\n const accumulator = this.spark.active;\n // Hold reference to accumulator while sorting\n accumulator.refCount += 1;\n await this.sortUpdate({ accumulator, viewToWorld: this.viewToWorld });\n // Release accumulator reference\n this.spark.releaseAccumulator(accumulator);\n }\n\n // Render out the viewpoint to the view target RGBA buffer.\n // Swaps buffers if doubleBuffer: true was set.\n // Calls onTextureUpdated(texture) with the resulting texture.\n renderTarget({\n scene,\n camera,\n }: { scene: THREE.Scene; camera?: THREE.Camera }) {\n const target = this.back ?? this.target;\n if (!target) {\n throw new Error(\"Must initialize SparkViewpoint with target\");\n }\n\n camera = camera ?? this.camera;\n if (!camera) {\n throw new Error(\"Must provide camera\");\n }\n if (camera instanceof THREE.PerspectiveCamera) {\n const newCam = new THREE.PerspectiveCamera().copy(camera, false);\n newCam.aspect = target.width / target.height;\n newCam.updateProjectionMatrix();\n camera = newCam;\n }\n this.viewToWorld = camera.matrixWorld.clone();\n\n const previousTarget = this.spark.renderer.getRenderTarget();\n try {\n this.spark.renderer.setRenderTarget(target);\n this.spark.prepareViewpoint(this);\n\n this.spark.renderer.render(scene, camera);\n } finally {\n this.spark.prepareViewpoint(this.spark.defaultView);\n this.spark.renderer.setRenderTarget(previousTarget);\n }\n\n if (target !== this.target) {\n // Swap back buffer and target\n [this.target, this.back] = [this.back, this.target];\n }\n this.onTextureUpdated?.(target.texture);\n }\n\n // Read back the previously rendered target image as a Uint8Array of packed\n // RGBA values (in that order). If superXY was set greater than 1 then\n // downsampling is performed in the target pixel array with simple averaging\n // to derive the returned pixel values. Subsequent calls to this.readTarget()\n // will reuse the same buffers to minimize memory allocations.\n async readTarget(): Promise {\n if (!this.target) {\n throw new Error(\"Must initialize SparkViewpoint with target\");\n }\n const { width, height } = this.target;\n const byteSize = width * height * 4;\n if (!this.superPixels || this.superPixels.length < byteSize) {\n this.superPixels = new Uint8Array(byteSize);\n }\n await this.spark.renderer.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n width,\n height,\n this.superPixels,\n );\n\n const { superXY } = this;\n if (superXY === 1) {\n return this.superPixels;\n }\n\n const subWidth = width / superXY;\n const subHeight = height / superXY;\n const subSize = subWidth * subHeight * 4;\n if (!this.pixels || this.pixels.length < subSize) {\n this.pixels = new Uint8Array(subSize);\n }\n\n const { superPixels, pixels } = this;\n const super2 = superXY * superXY;\n for (let y = 0; y < subHeight; y++) {\n const row = y * subWidth;\n for (let x = 0; x < subWidth; x++) {\n const superCol = x * superXY;\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n for (let sy = 0; sy < superXY; sy++) {\n const superRow = (y * superXY + sy) * this.target.width;\n for (let sx = 0; sx < superXY; sx++) {\n const superIndex = (superRow + superCol + sx) * 4;\n r += superPixels[superIndex];\n g += superPixels[superIndex + 1];\n b += superPixels[superIndex + 2];\n a += superPixels[superIndex + 3];\n }\n }\n const pixelIndex = (row + x) * 4;\n pixels[pixelIndex] = r / super2;\n pixels[pixelIndex + 1] = g / super2;\n pixels[pixelIndex + 2] = b / super2;\n pixels[pixelIndex + 3] = a / super2;\n }\n }\n return pixels;\n }\n\n // Render out a viewpoint as a Uint8Array of RGBA values for the provided scene\n // and any camera/viewToWorld viewpoint overrides. By default update is true,\n // which triggers its SparkRenderer to check and potentially update the Gsplats.\n // Setting update to false disables this and sorts the Gsplats as they are.\n // Setting forceOrigin (default: false) to true forces the view update to\n // recalculate the splats with this view origin, potentially altering any\n // view-dependent effects. If you expect view-dependent effects to play a role\n // in the rendering quality, enable this.\n //\n // Underneath, prepareRenderPixels() simply calls await this.prepare(...),\n // this.renderTarget(...), and finally returns the result this.readTarget(),\n // a Promise to a Uint8Array with RGBA values for all the pixels (potentially\n // downsampled if the superXY parameter was used). These steps can also be called\n // manually, for example if you need to alter the scene before and after\n // this.renderTarget(...) to hide UI elements from being rendered.\n async prepareRenderPixels({\n scene,\n camera,\n viewToWorld,\n update,\n forceOrigin,\n }: {\n scene: THREE.Scene;\n camera?: THREE.Camera;\n viewToWorld?: THREE.Matrix4;\n update?: boolean;\n forceOrigin?: boolean;\n }) {\n await this.prepare({ scene, camera, viewToWorld, update, forceOrigin });\n this.renderTarget({ scene, camera });\n return this.readTarget();\n }\n\n // This is called automatically by SparkRenderer, there is no need to call it!\n // The method cannot be private because then SparkRenderer would\n // not be able to call it.\n autoPoll({ accumulator }: { accumulator?: OldSplatAccumulator }) {\n if (this.camera) {\n this.camera.updateMatrixWorld();\n this.viewToWorld = this.camera.matrixWorld.clone();\n }\n\n let needsSort = false;\n let displayed = false;\n\n if (!this.display) {\n // Need to do first sort\n needsSort = true;\n } else if (accumulator) {\n needsSort = true;\n const { mappingVersion } = this.display.accumulator;\n if (accumulator.mappingVersion === mappingVersion) {\n // Splat mapping has not changed, so reuse the existing sorted\n // geometry to show updates faster. We will still fire off\n // a re-sort if necessary. First release old accumulator.\n accumulator.refCount += 1;\n this.spark.releaseAccumulator(this.display.accumulator);\n this.display.accumulator = accumulator;\n this.display.viewToWorld.copy(this.viewToWorld);\n displayed = true;\n\n if (this.spark.viewpoint === this) {\n this.spark.prepareViewpoint(this);\n }\n }\n }\n\n const latestView = this.sorting?.viewToWorld ?? this.display?.viewToWorld;\n if (\n latestView &&\n !withinCoorientDist({\n matrix1: this.viewToWorld,\n matrix2: latestView,\n // By default update sort each 1 cm\n maxDistance: this.sortDistance ?? 0.01,\n // By default for radial sort, update for intermittent movement so that\n // we bring back splats culled by being behind the camera.\n // For depth sort, small rotations can change sort order a lot, so\n // update sort for even small rotations.\n minCoorient: (this.sortCoorient ?? this.sortRadial) ? 0.99 : 0.999,\n })\n ) {\n needsSort = true;\n }\n\n if (!needsSort) {\n // Stop here, no sort necessary\n return;\n }\n\n if (accumulator) {\n // Hold a reference to the accumulator for sorting\n accumulator.refCount += 1;\n }\n\n if (this.pending?.accumulator) {\n this.spark.releaseAccumulator(this.pending.accumulator);\n }\n this.pending = { accumulator, viewToWorld: this.viewToWorld, displayed };\n\n // Don't await this, just trigger the sort if necessary\n this.driveSort();\n }\n\n private async driveSort() {\n while (true) {\n if (this.sorting || !this.pending) {\n return; // Sort already in process or nothing to sort\n }\n\n const { viewToWorld, displayed } = this.pending;\n let accumulator = this.pending.accumulator;\n if (!accumulator) {\n // Hold a reference to the accumulator while sorting\n accumulator = this.display?.accumulator ?? this.spark.active;\n accumulator.refCount += 1;\n }\n this.pending = null;\n if (!accumulator) {\n throw new Error(\"No accumulator to sort\");\n }\n\n this.sorting = { viewToWorld };\n await this.sortUpdate({ accumulator, viewToWorld, displayed });\n this.sorting = null;\n\n // Release the reference to the accumulator\n this.spark.releaseAccumulator(accumulator);\n\n // Continue in loop with any queued sort\n }\n }\n\n private async sortUpdate({\n accumulator,\n viewToWorld,\n displayed = false,\n }: {\n accumulator?: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n displayed?: boolean;\n }) {\n if (this.sortingCheck) {\n throw new Error(\"Only one sort at a time\");\n }\n this.sortingCheck = true;\n\n accumulator = accumulator ?? this.spark.active;\n const { numSplats, maxSplats } = accumulator.splats;\n let activeSplats = 0;\n let ordering = this.orderingFreelist.alloc(maxSplats);\n\n if (this.stochastic) {\n activeSplats = numSplats;\n // Render all splats in order since the Z-buffer\n // will handle ordering.\n for (let i = 0; i < numSplats; ++i) {\n ordering[i] = i;\n }\n } else if (numSplats > 0) {\n const {\n reader,\n doubleSortReader,\n sort32Reader,\n dynoSortRadial,\n dynoOrigin,\n dynoDirection,\n dynoDepthBias,\n dynoSort360,\n dynoSplats,\n } = OldSparkViewpoint.makeSorter();\n const sort32 = this.sort32 ?? false;\n let readback: Uint16Array | Uint32Array;\n if (sort32) {\n this.readback32 = reader.ensureBuffer(maxSplats, this.readback32);\n readback = this.readback32;\n } else {\n const halfMaxSplats = Math.ceil(maxSplats / 2);\n this.readback16 = reader.ensureBuffer(halfMaxSplats, this.readback16);\n readback = this.readback16;\n }\n\n const worldToOrigin = accumulator.toWorld.clone().invert();\n const viewToOrigin = viewToWorld.clone().premultiply(worldToOrigin);\n\n dynoSortRadial.value = this.sort360 ? true : this.sortRadial;\n dynoOrigin.value.set(0, 0, 0).applyMatrix4(viewToOrigin);\n dynoDirection.value\n .set(0, 0, -1)\n .applyMatrix4(viewToOrigin)\n .sub(dynoOrigin.value)\n .normalize();\n dynoDepthBias.value = this.depthBias ?? 1.0;\n dynoSort360.value = this.sort360 ?? false;\n dynoSplats.packedSplats = accumulator.splats;\n\n const sortReader = sort32 ? sort32Reader : doubleSortReader;\n const count = sort32 ? numSplats : Math.ceil(numSplats / 2);\n await reader.renderReadback({\n renderer: this.spark.renderer,\n reader: sortReader,\n count,\n readback,\n });\n\n const result = (await withWorker(async (worker) => {\n const rpcName = sort32 ? \"sort32Splats\" : \"sortDoubleSplats\";\n return worker.call(rpcName, {\n maxSplats,\n numSplats,\n readback,\n ordering,\n });\n })) as {\n readback: Uint16Array | Uint32Array;\n ordering: Uint32Array;\n activeSplats: number;\n };\n if (sort32) {\n this.readback32 = result.readback as Uint32Array;\n } else {\n this.readback16 = result.readback as Uint16Array;\n }\n ordering = result.ordering;\n activeSplats = result.activeSplats;\n }\n\n this.updateDisplay({\n accumulator,\n viewToWorld,\n ordering,\n activeSplats,\n displayed,\n });\n this.sortingCheck = false;\n }\n\n private updateDisplay({\n accumulator,\n viewToWorld,\n ordering,\n activeSplats,\n displayed = false,\n }: {\n accumulator: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n ordering: Uint32Array;\n activeSplats: number;\n displayed?: boolean;\n }) {\n if (!this.display) {\n // Hold a reference to the accumulator while part of display\n accumulator.refCount += 1;\n this.display = {\n accumulator,\n viewToWorld,\n geometry: new OldSplatGeometry(ordering, activeSplats),\n };\n } else {\n if (!displayed && accumulator !== this.display.accumulator) {\n // Hold a reference to the new accumulator being displayed\n accumulator.refCount += 1;\n // Release the reference to the previously displayed accumulator\n this.spark.releaseAccumulator(this.display.accumulator);\n this.display.accumulator = accumulator;\n }\n\n this.display.viewToWorld = viewToWorld;\n\n const oldOrdering = this.display.geometry.ordering;\n if (oldOrdering.length === ordering.length) {\n this.display.geometry.update(ordering, activeSplats);\n } else {\n this.display.geometry.dispose();\n // console.log(\"*** alloc SplatGeometry\", ordering.length);\n this.display.geometry = new OldSplatGeometry(ordering, activeSplats);\n }\n this.orderingFreelist.free(oldOrdering);\n }\n if (this.spark.viewpoint === this) {\n this.spark.prepareViewpoint(this);\n }\n }\n\n // If you need an empty THREE.Texture to use to initialize a uniform that is\n // updated via onTextureUpdated(texture), this static texture can be handy.\n static EMPTY_TEXTURE = new THREE.Texture();\n\n private static dynos: {\n dynoSortRadial: DynoBool;\n dynoOrigin: DynoVec3;\n dynoDirection: DynoVec3;\n dynoDepthBias: DynoFloat;\n dynoSort360: DynoBool;\n dynoSplats: DynoPackedSplats;\n reader: Readback;\n doubleSortReader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n sort32Reader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n } | null = null;\n\n private static makeSorter() {\n if (!OldSparkViewpoint.dynos) {\n const dynoSortRadial = new DynoBool({ value: true });\n const dynoOrigin = new DynoVec3({ value: new THREE.Vector3() });\n const dynoDirection = new DynoVec3({ value: new THREE.Vector3() });\n const dynoDepthBias = new DynoFloat({ value: 1.0 });\n const dynoSort360 = new DynoBool({ value: false });\n const dynoSplats = new DynoPackedSplats();\n\n const reader = new Readback();\n const doubleSortReader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"No index\");\n }\n const sortParams = {\n sortRadial: dynoSortRadial,\n sortOrigin: dynoOrigin,\n sortDirection: dynoDirection,\n sortDepthBias: dynoDepthBias,\n sort360: dynoSort360,\n };\n const index2 = mul(index, dynoConst(\"int\", 2));\n\n const gsplat0 = readPackedSplat(dynoSplats, index2);\n const metric0 = computeSortMetric({ gsplat: gsplat0, ...sortParams });\n\n const gsplat1 = readPackedSplat(\n dynoSplats,\n add(index2, dynoConst(\"int\", 1)),\n );\n const metric1 = computeSortMetric({ gsplat: gsplat1, ...sortParams });\n\n const combined = combine({\n vectorType: \"vec2\",\n x: metric0,\n y: metric1,\n });\n const rgba8 = uintToRgba8(packHalf2x16(combined));\n return { rgba8 };\n },\n );\n\n const sort32Reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"No index\");\n }\n const sortParams = {\n sortRadial: dynoSortRadial,\n sortOrigin: dynoOrigin,\n sortDirection: dynoDirection,\n sortDepthBias: dynoDepthBias,\n sort360: dynoSort360,\n };\n\n const gsplat = readPackedSplat(dynoSplats, index);\n const metric = computeSortMetric({ gsplat, ...sortParams });\n const rgba8 = uintToRgba8(floatBitsToUint(metric));\n return { rgba8 };\n },\n );\n\n OldSparkViewpoint.dynos = {\n dynoSortRadial,\n dynoOrigin,\n dynoDirection,\n dynoDepthBias,\n dynoSort360,\n dynoSplats,\n reader,\n doubleSortReader,\n sort32Reader,\n };\n }\n return OldSparkViewpoint.dynos;\n }\n}\n\nconst defineComputeSortMetric = unindent(`\n float computeSort(Gsplat gsplat, bool sortRadial, vec3 sortOrigin, vec3 sortDirection, float sortDepthBias, bool sort360) {\n if (!isGsplatActive(gsplat.flags)) {\n return INFINITY;\n }\n\n vec3 center = gsplat.center - sortOrigin;\n float biasedDepth = dot(center, sortDirection) + sortDepthBias;\n if (!sort360 && (biasedDepth <= 0.0)) {\n return INFINITY;\n }\n\n return sortRadial ? length(center) : biasedDepth;\n }\n`);\n\nfunction computeSortMetric({\n gsplat,\n sortRadial,\n sortOrigin,\n sortDirection,\n sortDepthBias,\n sort360,\n}: {\n gsplat: DynoVal;\n sortRadial: DynoVal<\"bool\">;\n sortOrigin: DynoVal<\"vec3\">;\n sortDirection: DynoVal<\"vec3\">;\n sortDepthBias: DynoVal<\"float\">;\n sort360: DynoVal<\"bool\">;\n}) {\n return dyno({\n inTypes: {\n gsplat: Gsplat,\n sortRadial: \"bool\",\n sortOrigin: \"vec3\",\n sortDirection: \"vec3\",\n sortDepthBias: \"float\",\n sort360: \"bool\",\n },\n outTypes: { metric: \"float\" },\n globals: () => [defineGsplat, defineComputeSortMetric],\n inputs: {\n gsplat,\n sortRadial,\n sortOrigin,\n sortDirection,\n sortDepthBias,\n sort360,\n },\n statements: ({ inputs, outputs }) => {\n const {\n gsplat,\n sortRadial,\n sortOrigin,\n sortDirection,\n sortDepthBias,\n sort360,\n } = inputs;\n return unindentLines(`\n ${outputs.metric} = computeSort(${gsplat}, ${sortRadial}, ${sortOrigin}, ${sortDirection}, ${sortDepthBias}, ${sort360});\n `);\n },\n }).outputs.metric;\n}\n","import * as THREE from \"three\";\n\nimport { PackedSplats } from \"./PackedSplats\";\nimport type { GeneratorMapping } from \"./SplatAccumulator\";\nimport type { SplatGenerator, SplatModifier } from \"./SplatGenerator\";\n\n// SplatAccumulator helps manage the generation of splats from multiple\n// SplatGenerators, keeping track of the splat mapping, coordinate system,\n// and reference count.\n\nexport class OldSplatAccumulator {\n splats = new PackedSplats();\n // The transform from Accumulator coordinate system to world coordinates.\n toWorld = new THREE.Matrix4();\n // An array of all Gsplat mappings that were used for generation\n mapping: GeneratorMapping[] = [];\n // Number of SparkViewpoints (or other) that reference this accumulator, used\n // to figure out when it can be recycled for use\n refCount = 0;\n\n // Incremented every time the splats are updated/generated.\n splatsVersion = -1;\n // Incremented every time the splat mapping/layout is updated.\n // Splat sort order can be reused between equivalent mapping versions.\n mappingVersion = -1;\n\n ensureGenerate(maxSplats: number) {\n if (this.splats.ensureGenerate(maxSplats)) {\n // If we had to resize our PackedSplats then clear all previous mappings\n this.mapping = [];\n }\n }\n\n // Generate all Gsplats from an array of generators\n generateSplats({\n renderer,\n modifier,\n generators,\n forceUpdate,\n originToWorld,\n }: {\n renderer: THREE.WebGLRenderer;\n modifier: SplatModifier;\n generators: GeneratorMapping[];\n forceUpdate?: boolean;\n originToWorld: THREE.Matrix4;\n }) {\n // Create a lookup from last SplatGenerator\n const mapping = this.mapping.reduce((map, record) => {\n map.set(record.node, record);\n return map;\n }, new Map());\n\n // Run generators that are different from existing mapping\n let updated = 0;\n let numSplats = 0;\n for (const { node, generator, version, base, count } of generators) {\n const current = mapping.get(node);\n if (\n forceUpdate ||\n generator !== current?.generator ||\n version !== current?.version ||\n base !== current?.base ||\n count !== current?.count\n ) {\n // Something is different from before so we should generate these Gsplats\n if (generator && count > 0) {\n const modGenerator = modifier.apply(generator);\n try {\n this.splats.generate({\n generator: modGenerator,\n base,\n count,\n renderer,\n });\n } catch (error) {\n node.generator = undefined;\n node.generatorError = error;\n }\n updated += 1;\n }\n }\n numSplats = Math.max(numSplats, base + count);\n }\n\n this.splats.numSplats = numSplats;\n this.toWorld.copy(originToWorld);\n this.mapping = generators;\n return updated !== 0;\n }\n\n // Check if this accumulator has exactly the same generator mapping as\n // the previous one. If so, we can reuse the Gsplat sort order.\n hasCorrespondence(other: OldSplatAccumulator) {\n if (this.mapping.length !== other.mapping.length) {\n return false;\n }\n return this.mapping.every(({ node, base, count }, i) => {\n const {\n node: otherNode,\n base: otherBase,\n count: otherCount,\n } = other.mapping[i];\n return node === otherNode && base === otherBase && count === otherCount;\n });\n }\n}\n","import * as THREE from \"three\";\n\nimport {\n OldSparkViewpoint,\n type OldSparkViewpointOptions,\n} from \"./OldSparkViewpoint\";\nimport { OldSplatAccumulator } from \"./OldSplatAccumulator\";\nimport { OldSplatGeometry } from \"./OldSplatGeometry\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { RgbaArray } from \"./RgbaArray\";\nimport type { GeneratorMapping } from \"./SplatAccumulator\";\nimport { SplatEdit } from \"./SplatEdit\";\nimport { SplatGenerator, SplatModifier } from \"./SplatGenerator\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n type SplatEncoding,\n} from \"./defines\";\nimport {\n DynoVec3,\n DynoVec4,\n Gsplat,\n TPackedSplats,\n dynoBlock,\n readPackedSplat,\n transformGsplat,\n} from \"./dyno\";\nimport { getShaders } from \"./shaders\";\nimport {\n averagePositions,\n averageQuaternions,\n cloneClock,\n withinCoorientDist,\n} from \"./utils\";\n\n// SparkRenderer aggregates splats from multiple generators into a single\n// accumulated collection per frame. In normal operation we only need a\n// maximum of 3 accumulators: One currently being viewed, one currently\n// being sorted, and one more for generating the next frame. Accumulators\n// must be \"released\" by each viewpoint using it, so in unusual cases\n// such as slow render-outs, we may want to allow more than 3 so the\n// pipeline can continue generating new frames, but we limit to a maximum\n// of 5 to avoid excessive memory usage.\nconst MAX_ACCUMULATORS = 5;\n\nexport type OldSparkRendererOptions = {\n /**\n * Pass in your THREE.WebGLRenderer instance so Spark can perform work\n * outside the usual render loop. Should be created with antialias: false\n * (default setting) as WebGL anti-aliasing doesn't improve Gaussian Splatting\n * rendering and significantly reduces performance.\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Whether to use premultiplied alpha when accumulating splat RGB\n * @default true\n */\n premultipliedAlpha?: boolean;\n /**\n * Pass in a THREE.Clock to synchronize time-based effects across different\n * systems. Alternatively, you can set the SparkRenderer properties time and\n * deltaTime directly. (default: new THREE.Clock)\n */\n clock?: THREE.Clock;\n /**\n * Controls whether to check and automatically update Gsplat collection after\n * each frame render.\n * @default true\n */\n autoUpdate?: boolean;\n /**\n * Controls whether to update the Gsplats before or after rendering. For WebXR\n * this must be false in order to complete rendering as soon as possible.\n * @default false\n */\n preUpdate?: boolean;\n /**\n * Distance threshold for SparkRenderer movement triggering a Gsplat update at\n * the new origin.\n * @default 1.0\n */\n originDistance?: number;\n /**\n * Maximum standard deviations from the center to render Gaussians. Values\n * Math.sqrt(5)..Math.sqrt(8) produce good results and can be tweaked for\n * performance.\n * @default Math.sqrt(8)\n */\n maxStdDev?: number;\n /**\n * Minimum pixel radius for splat rendering.\n * @default 0.0\n */\n minPixelRadius?: number;\n /**\n * Maximum pixel radius for splat rendering.\n * @default 512.0\n */\n maxPixelRadius?: number;\n /**\n * Minimum alpha value for splat rendering.\n * @default 0.5 * (1.0 / 255.0)\n */\n minAlpha?: number;\n /**\n * Enable 2D Gaussian splatting rendering ability. When this mode is enabled,\n * any scale x/y/z component that is exactly 0 (minimum quantized value) results\n * in the other two non-0 axis being interpreted as an oriented 2D Gaussian Splat,\n * rather instead of the usual projected 3DGS Z-slice. When reading PLY files,\n * scale values less than e^-30 will be interpreted as 0.\n * @default false\n */\n enable2DGS?: boolean;\n /**\n * Scalar value to add to 2D splat covariance diagonal, effectively blurring +\n * enlarging splats. In scenes trained without the Gsplat anti-aliasing tweak\n * this value was typically 0.3, but with anti-aliasing it is 0.0\n * @default 0.0\n */\n preBlurAmount?: number;\n /**\n * Scalar value to add to 2D splat covarianve diagonal, with opacity adjustment\n * to correctly account for \"blurring\" when anti-aliasing. Typically 0.3\n * (equivalent to approx 0.5 pixel radius) in scenes trained with anti-aliasing.\n */\n blurAmount?: number;\n /**\n * Depth-of-field distance to focal plane\n */\n focalDistance?: number;\n /**\n * Full-width angle of aperture opening (in radians), 0.0 to disable\n * @default 0.0\n */\n apertureAngle?: number;\n /**\n * Modulate Gaussian kernel falloff. 0 means \"no falloff, flat shading\",\n * while 1 is the normal Gaussian kernel.\n * @default 1.0\n */\n falloff?: number;\n /**\n * X/Y clipping boundary factor for Gsplat centers against view frustum.\n * 1.0 clips any centers that are exactly out of bounds, while 1.4 clips\n * centers that are 40% beyond the bounds.\n * @default 1.4\n */\n clipXY?: number;\n /**\n * Parameter to adjust projected splat scale calculation to match other renderers,\n * similar to the same parameter in the MKellogg 3DGS renderer. Higher values will\n * tend to sharpen the splats. A value 2.0 can be used to match the behavior of\n * the PlayCanvas renderer.\n * @default 1.0\n */\n focalAdjustment?: number;\n /**\n * Configures the SparkViewpointOptions for the default SparkViewpoint\n * associated with this SparkRenderer. Notable option: sortRadial (sort by\n * radial distance or Z-depth)\n */\n view?: OldSparkViewpointOptions;\n /**\n * Override the default splat encoding ranges for the PackedSplats.\n * (default: undefined)\n */\n splatEncoding?: SplatEncoding;\n};\n\nexport class OldSparkRenderer extends THREE.Mesh {\n renderer: THREE.WebGLRenderer;\n premultipliedAlpha: boolean;\n material: THREE.ShaderMaterial;\n uniforms: ReturnType;\n\n autoUpdate: boolean;\n preUpdate: boolean;\n needsUpdate: boolean;\n originDistance: number;\n maxStdDev: number;\n minPixelRadius: number;\n maxPixelRadius: number;\n minAlpha: number;\n enable2DGS: boolean;\n preBlurAmount: number;\n blurAmount: number;\n focalDistance: number;\n apertureAngle: number;\n falloff: number;\n clipXY: number;\n focalAdjustment: number;\n splatEncoding: SplatEncoding;\n\n splatTexture: null | {\n enable?: boolean;\n texture?: THREE.Data3DTexture;\n multiply?: THREE.Matrix2;\n add?: THREE.Vector2;\n near?: number;\n far?: number;\n mid?: number;\n } = null;\n\n time?: number;\n deltaTime?: number;\n clock: THREE.Clock;\n\n // Latest Gsplat collection being displayed\n active: OldSplatAccumulator;\n // Free list of accumulators for reuse\n private freeAccumulators: OldSplatAccumulator[];\n // Total number of accumulators currently allocated\n private accumulatorCount: number;\n // Default SparkViewpoint used for rendering to the canvas\n defaultView: OldSparkViewpoint;\n // List of SparkViewpoints with autoUpdate enabled\n autoViewpoints: OldSparkViewpoint[] = [];\n\n // Dynos used to transform Gsplats to the accumulator coordinate system\n private rotateToAccumulator = new DynoVec4({ value: new THREE.Quaternion() });\n private translateToAccumulator = new DynoVec3({ value: new THREE.Vector3() });\n private modifier: SplatModifier;\n\n // Last rendered frame number so we know when we're rendering a new frame\n private lastFrame = -1;\n // Last update timestamp to compute deltaTime\n private lastUpdateTime: number | null = null;\n // List of cameras used for the current viewpoint (for WebXR)\n private defaultCameras: THREE.Matrix4[] = [];\n private lastStochastic: boolean | null = null;\n\n // Should be set to the defaultView, but can be temporarily changed to another\n // viewpoint using prepareViewpoint() for rendering from a different viewpoint.\n viewpoint: OldSparkViewpoint;\n\n // Holds data needed to perform a scheduled Gsplat update.\n private pendingUpdate = {\n scene: null as THREE.Scene | null,\n originToWorld: new THREE.Matrix4(),\n timeoutId: -1,\n };\n\n // Internal SparkViewpoint used for environment map rendering.\n private envViewpoint: OldSparkViewpoint | null = null;\n\n // Data and buffers used for environment map rendering\n private static cubeRender: {\n target: THREE.WebGLCubeRenderTarget;\n camera: THREE.CubeCamera;\n near: number;\n far: number;\n } | null = null;\n private static pmrem: THREE.PMREMGenerator | null = null;\n\n static EMPTY_SPLAT_TEXTURE = new THREE.Data3DTexture();\n\n constructor(options: OldSparkRendererOptions) {\n const uniforms = OldSparkRenderer.makeUniforms();\n const shaders = getShaders();\n const premultipliedAlpha = options.premultipliedAlpha ?? true;\n const material = new THREE.ShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: shaders.oldSplatVertex,\n fragmentShader: shaders.oldSplatFragment,\n uniforms,\n premultipliedAlpha,\n transparent: true,\n depthTest: true,\n depthWrite: false,\n side: THREE.DoubleSide,\n });\n\n super(EMPTY_GEOMETRY, material);\n // Disable frustum culling because we want to always draw them all\n // and cull Gsplats individually in the shader\n this.frustumCulled = false;\n\n this.renderer = options.renderer;\n this.material = material;\n this.uniforms = uniforms;\n\n // Create a Gsplat modifier that takes the output of any SplatGenerator\n // and transforms them into the accumulator's coordinate system\n const modifier = dynoBlock(\n { gsplat: Gsplat },\n { gsplat: Gsplat },\n ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"gsplat not defined\");\n }\n gsplat = transformGsplat(gsplat, {\n rotate: this.rotateToAccumulator,\n translate: this.translateToAccumulator,\n });\n return { gsplat };\n },\n );\n this.modifier = new SplatModifier(modifier);\n\n this.premultipliedAlpha = premultipliedAlpha;\n this.autoUpdate = options.autoUpdate ?? true;\n this.preUpdate = options.preUpdate ?? false;\n this.needsUpdate = false;\n this.originDistance = options.originDistance ?? 1;\n this.maxStdDev = options.maxStdDev ?? Math.sqrt(8.0);\n this.minPixelRadius = options.minPixelRadius ?? 0.0;\n this.maxPixelRadius = options.maxPixelRadius ?? 512.0;\n this.minAlpha = options.minAlpha ?? 0.5 * (1.0 / 255.0);\n this.enable2DGS = options.enable2DGS ?? false;\n this.preBlurAmount = options.preBlurAmount ?? 0.0;\n this.blurAmount = options.blurAmount ?? 0.3;\n this.focalDistance = options.focalDistance ?? 0.0;\n this.apertureAngle = options.apertureAngle ?? 0.0;\n this.falloff = options.falloff ?? 1.0;\n this.clipXY = options.clipXY ?? 1.4;\n this.focalAdjustment = options.focalAdjustment ?? 1.0;\n this.splatEncoding = options.splatEncoding ?? { ...DEFAULT_SPLAT_ENCODING };\n\n this.active = new OldSplatAccumulator();\n this.active.refCount = 1;\n this.accumulatorCount = 1;\n this.freeAccumulators = [];\n // Start with the minimum of 2 total accumulators\n for (let count = 0; count < 1; ++count) {\n this.freeAccumulators.push(new OldSplatAccumulator());\n this.accumulatorCount += 1;\n }\n\n // Create a default SparkViewpoint that is used when we call render()\n // on the scene and has the sorted Gsplat collection from that viewpoint.\n this.defaultView = new OldSparkViewpoint({\n ...options.view,\n autoUpdate: true,\n spark: this,\n });\n this.viewpoint = this.defaultView;\n this.prepareViewpoint(this.viewpoint);\n\n this.clock = options.clock ? cloneClock(options.clock) : new THREE.Clock();\n }\n\n static makeUniforms() {\n // Create uniforms used for Gsplat vertex and fragment shaders\n const uniforms = {\n // Size of render viewport in pixels\n renderSize: { value: new THREE.Vector2() },\n // Near and far plane distances\n near: { value: 0.1 },\n far: { value: 1000.0 },\n // Total number of Gsplats in packedSplats to render\n numSplats: { value: 0 },\n // SplatAccumulator to view transformation quaternion\n renderToViewQuat: { value: new THREE.Quaternion() },\n // SplatAccumulator to view transformation translation\n renderToViewPos: { value: new THREE.Vector3() },\n // Maximum distance (in stddevs) from Gsplat center to render\n maxStdDev: { value: 1.0 },\n // Minimum pixel radius for splat rendering\n minPixelRadius: { value: 0.0 },\n // Maximum pixel radius for splat rendering\n maxPixelRadius: { value: 512.0 },\n // Minimum alpha value for splat rendering\n minAlpha: { value: 0.5 * (1.0 / 255.0) },\n // Enable stochastic splat rendering\n stochastic: { value: false },\n // Enable interpreting 0-thickness Gsplats as 2DGS\n enable2DGS: { value: false },\n // Add to projected 2D splat covariance diagonal (thickens and brightens)\n preBlurAmount: { value: 0.0 },\n // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing)\n blurAmount: { value: 0.3 },\n // Depth-of-field distance to focal plane\n focalDistance: { value: 0.0 },\n // Full-width angle of aperture opening (in radians)\n apertureAngle: { value: 0.0 },\n // Modulate Gaussian kernal falloff. 0 means \"no falloff, flat shading\",\n // 1 is normal e^-x^2 falloff.\n falloff: { value: 1.0 },\n // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds\n clipXY: { value: 1.4 },\n // Debug renderSize scale factor\n focalAdjustment: { value: 1.0 },\n // Enable splat texture rendering\n splatTexEnable: { value: false },\n // Splat texture to render\n splatTexture: { type: \"t\", value: OldSparkRenderer.EMPTY_SPLAT_TEXTURE },\n // Splat texture UV transform (multiply)\n splatTexMul: { value: new THREE.Matrix2() },\n // Splat texture UV transform (add)\n splatTexAdd: { value: new THREE.Vector2() },\n // Splat texture near plane distance\n splatTexNear: { value: 0.1 },\n // Splat texture far plane distance\n splatTexFar: { value: 1000.0 },\n // Splat texture mid plane distance, or 0.0 to disable\n splatTexMid: { value: 0.0 },\n // Gsplat collection to render\n packedSplats: { type: \"t\", value: PackedSplats.getEmptyArray },\n // Splat encoding ranges\n rgbMinMaxLnScaleMinMax: { value: new THREE.Vector4() },\n // Time in seconds for time-based effects\n time: { value: 0 },\n // Delta time in seconds since last frame\n deltaTime: { value: 0 },\n // Whether to encode Gsplat with linear RGB (for environment mapping)\n encodeLinear: { value: false },\n // Debug flag that alternates each frame\n debugFlag: { value: false },\n };\n return uniforms;\n }\n\n private canAllocAccumulator(): boolean {\n // Returns true if can allocate an accumulator immediately\n return (\n this.freeAccumulators.length > 0 ||\n this.accumulatorCount < MAX_ACCUMULATORS\n );\n }\n\n private maybeAllocAccumulator(): OldSplatAccumulator | null {\n // Allocate an accumulator immediately if possible, else return null\n let accumulator = this.freeAccumulators.pop();\n if (accumulator === undefined) {\n if (this.accumulatorCount >= MAX_ACCUMULATORS) {\n return null;\n }\n accumulator = new OldSplatAccumulator();\n this.accumulatorCount += 1;\n }\n accumulator.refCount = 1;\n return accumulator;\n }\n\n releaseAccumulator(accumulator: OldSplatAccumulator) {\n // Decrement reference count and recycle if no longer in use\n accumulator.refCount -= 1;\n if (accumulator.refCount === 0) {\n this.freeAccumulators.push(accumulator);\n }\n }\n\n newViewpoint(options: OldSparkViewpointOptions) {\n // Create a new SparkViewpoint for this SparkRenderer.\n // Note that every SparkRenderer has an initial spark.defaultView: SparkViewpoint\n // from construction, which is used for the default canvas render loop.\n // Calling this method allows you to create additional viewpoints, which can be\n // updated automatically each frame (performing Gsplat sorting every time there\n // is an update), or updated on-demand for controlled rendering for video render\n // or similar applications.\n return new OldSparkViewpoint({ ...options, spark: this });\n }\n\n onBeforeRender(\n renderer: THREE.WebGLRenderer,\n scene: THREE.Scene,\n camera: THREE.Camera,\n ) {\n // throw new Error(\"onBeforeRender disabled in SparkRenderer\");\n\n // Called by Three.js before rendering this SparkRenderer.\n // At this point we can't modify the geometry or material, all these must\n // be set in the scene already before this is called. Update the uniforms\n // to render the Gsplats from the current active viewpoint.\n const time = this.time ?? this.clock.getElapsedTime();\n const deltaTime = time - (this.viewpoint.lastTime ?? time);\n this.viewpoint.lastTime = time;\n\n const frame = renderer.info.render.frame;\n const isNewFrame = frame !== this.lastFrame;\n this.lastFrame = frame;\n\n const viewpoint = this.viewpoint;\n if (viewpoint === this.defaultView) {\n // When rendering is triggered on the default viewpoint,\n // perform automatic updates.\n if (isNewFrame) {\n if (!renderer.xr.isPresenting) {\n // Non-WebXR mode, just a single camera\n this.defaultView.viewToWorld = camera.matrixWorld.clone();\n this.defaultCameras = [this.defaultView.viewToWorld];\n } else {\n // In WebXR mode we are called multiple times, once for each eye,\n // so use their average to compute the sort center.\n const cameras = renderer.xr.getCamera().cameras;\n this.defaultCameras = cameras.map((camera) => camera.matrixWorld);\n this.defaultView.viewToWorld =\n averageOriginToWorlds(this.defaultCameras) ?? new THREE.Matrix4();\n }\n }\n\n if (this.autoUpdate) {\n this.update({ scene, viewToWorld: this.defaultView.viewToWorld });\n }\n }\n\n // Update uniforms for rendering\n\n if (isNewFrame) {\n // Keep these uniforms the same for both eyes if in WebXR\n if (this.material.premultipliedAlpha !== this.premultipliedAlpha) {\n this.material.premultipliedAlpha = this.premultipliedAlpha;\n this.material.needsUpdate = true;\n }\n this.uniforms.time.value = time;\n this.uniforms.deltaTime.value = deltaTime;\n // Alternating debug flag that can aid in visual debugging\n this.uniforms.debugFlag.value = (performance.now() / 1000.0) % 2.0 < 1.0;\n\n if (viewpoint.display && viewpoint.stochastic) {\n (this.geometry as OldSplatGeometry).instanceCount =\n this.uniforms.numSplats.value;\n }\n }\n\n if (viewpoint.target) {\n // Rendering to a texture target, so its dimensions\n this.uniforms.renderSize.value.set(\n viewpoint.target.width,\n viewpoint.target.height,\n );\n } else {\n // Rendering to the canvas or WebXR\n const renderSize = renderer.getDrawingBufferSize(\n this.uniforms.renderSize.value,\n );\n if (renderSize.x === 1 && renderSize.y === 1) {\n // WebXR mode on Apple Vision Pro returns 1x1 when presenting.\n // Use a different means to figure out the render size.\n const baseLayer = renderer.xr.getSession()?.renderState.baseLayer;\n if (baseLayer) {\n renderSize.x = baseLayer.framebufferWidth;\n renderSize.y = baseLayer.framebufferHeight;\n }\n }\n }\n\n // Update uniforms from instance properties\n const typedCamera = camera as\n | THREE.PerspectiveCamera\n | THREE.OrthographicCamera;\n this.uniforms.near.value = typedCamera.near;\n this.uniforms.far.value = typedCamera.far;\n this.uniforms.encodeLinear.value = viewpoint.encodeLinear;\n this.uniforms.maxStdDev.value = this.maxStdDev;\n this.uniforms.minPixelRadius.value = this.minPixelRadius;\n this.uniforms.maxPixelRadius.value = this.maxPixelRadius;\n this.uniforms.minAlpha.value = this.minAlpha;\n this.uniforms.stochastic.value = viewpoint.stochastic;\n this.uniforms.enable2DGS.value = this.enable2DGS;\n this.uniforms.preBlurAmount.value = this.preBlurAmount;\n this.uniforms.blurAmount.value = this.blurAmount;\n this.uniforms.focalDistance.value = this.focalDistance;\n this.uniforms.apertureAngle.value = this.apertureAngle;\n this.uniforms.falloff.value = this.falloff;\n this.uniforms.clipXY.value = this.clipXY;\n this.uniforms.focalAdjustment.value = this.focalAdjustment;\n\n if (this.lastStochastic !== !viewpoint.stochastic) {\n this.lastStochastic = !viewpoint.stochastic;\n this.material.transparent = !viewpoint.stochastic;\n this.material.depthWrite = viewpoint.stochastic;\n this.material.needsUpdate = true;\n }\n\n if (this.splatTexture) {\n const { enable, texture, multiply, add, near, far, mid } =\n this.splatTexture;\n if (enable && texture) {\n this.uniforms.splatTexEnable.value = true;\n this.uniforms.splatTexture.value = texture;\n if (multiply) {\n this.uniforms.splatTexMul.value.fromArray(multiply.elements);\n } else {\n this.uniforms.splatTexMul.value.set(\n 0.5 / this.maxStdDev,\n 0,\n 0,\n 0.5 / this.maxStdDev,\n );\n }\n this.uniforms.splatTexAdd.value.set(add?.x ?? 0.5, add?.y ?? 0.5);\n this.uniforms.splatTexNear.value = near ?? this.uniforms.near.value;\n this.uniforms.splatTexFar.value = far ?? this.uniforms.far.value;\n this.uniforms.splatTexMid.value = mid ?? 0.0;\n } else {\n this.uniforms.splatTexEnable.value = false;\n this.uniforms.splatTexture.value = OldSparkRenderer.EMPTY_SPLAT_TEXTURE;\n }\n } else {\n this.uniforms.splatTexEnable.value = false;\n this.uniforms.splatTexture.value = OldSparkRenderer.EMPTY_SPLAT_TEXTURE;\n }\n\n // Calculate the transform from the accumulator to the current camera\n const accumToWorld =\n viewpoint.display?.accumulator.toWorld ?? new THREE.Matrix4();\n const worldToCamera = camera.matrixWorld.clone().invert();\n const originToCamera = accumToWorld.clone().premultiply(worldToCamera);\n originToCamera.decompose(\n this.uniforms.renderToViewPos.value,\n this.uniforms.renderToViewQuat.value,\n new THREE.Vector3(),\n );\n }\n\n // Update the uniforms for the given viewpoint.\n // Note that the client expects to be able to call render() at any point\n // to update the canvas, so we must switch the viewpoint back to\n // defaultView when we're finished.\n prepareViewpoint(viewpoint?: OldSparkViewpoint) {\n this.viewpoint = viewpoint ?? this.viewpoint;\n\n if (this.viewpoint.display) {\n const { accumulator, geometry } = this.viewpoint.display;\n this.uniforms.numSplats.value = accumulator.splats.numSplats;\n this.uniforms.packedSplats.value = accumulator.splats.getTexture();\n this.uniforms.rgbMinMaxLnScaleMinMax.value.set(\n accumulator.splats.splatEncoding?.rgbMin ?? 0.0,\n accumulator.splats.splatEncoding?.rgbMax ?? 1.0,\n accumulator.splats.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n accumulator.splats.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n this.geometry = geometry;\n this.material.transparent = !this.viewpoint.stochastic;\n this.material.depthWrite = this.viewpoint.stochastic;\n this.material.needsUpdate = true;\n } else {\n // No Gsplats to display for this viewpoint yet\n this.uniforms.numSplats.value = 0;\n this.uniforms.packedSplats.value = PackedSplats.getEmptyArray;\n this.geometry = EMPTY_GEOMETRY;\n }\n }\n\n // If spark.autoUpdate is false then you must manually call\n // spark.update({ scene }) to have the scene Gsplats be re-generated.\n update({\n scene,\n viewToWorld,\n }: { scene: THREE.Scene; viewToWorld?: THREE.Matrix4 }) {\n // Compute the transform for the SparkRenderer to use as origin\n // for Gsplat generation and accumulation.\n const originToWorld = this.matrixWorld;\n\n // Either do the update now, or in the next \"tick\" depending on preUpdate\n if (this.preUpdate) {\n this.updateInternal({\n scene,\n originToWorld: originToWorld.clone(),\n viewToWorld,\n });\n } else {\n // Pass the update parameters to be performed on the next tick\n this.pendingUpdate.scene = scene;\n this.pendingUpdate.originToWorld.copy(originToWorld);\n\n // Schedule a timeout if there isn't one already\n if (this.pendingUpdate.timeoutId === -1) {\n this.pendingUpdate.timeoutId = setTimeout(() => {\n const { scene, originToWorld } = this.pendingUpdate;\n this.pendingUpdate.scene = null;\n this.pendingUpdate.timeoutId = -1;\n const updated = this.updateInternal({\n scene: scene as THREE.Scene,\n originToWorld,\n viewToWorld,\n });\n\n if (updated) {\n // Flush to encourage eager execution\n const gl = this.renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n }, 1);\n }\n }\n }\n\n updateInternal({\n scene,\n originToWorld,\n viewToWorld,\n }: {\n scene: THREE.Scene;\n originToWorld?: THREE.Matrix4;\n viewToWorld?: THREE.Matrix4;\n }): boolean {\n if (!this.canAllocAccumulator()) {\n // We don't have any available accumulators because of sorting\n // back pressure, so don't update this time but try again next time.\n // Signal update not attempted.\n return false;\n }\n\n // Figure out the frame of the SparkRenderer and current view\n if (!originToWorld) {\n originToWorld = this.active.toWorld;\n }\n viewToWorld = viewToWorld ?? originToWorld.clone();\n\n const time = this.time ?? this.clock.getElapsedTime();\n const deltaTime = time - (this.lastUpdateTime ?? time);\n this.lastUpdateTime = time;\n\n // Create a lookup from last active SplatGenerator to Gsplat mapping record\n const activeMapping = this.active.mapping.reduce((map, record) => {\n map.set(record.node, record);\n return map;\n }, new Map());\n\n // Traverse visible scene to find all SplatGenerators and global SplatEdits\n const { generators, visibleGenerators, globalEdits } =\n this.compileScene(scene);\n\n // Let all SplatGenerators run their frameUpdate() method\n for (const object of generators) {\n object.frameUpdate?.({\n renderer: this.renderer,\n object,\n time,\n deltaTime,\n viewToWorld,\n globalEdits,\n });\n }\n\n const visibleGenHash = new Set(visibleGenerators.map((g) => g.uuid));\n\n // Make sure we have new version numbers for any objects with either\n // generator or numSplats that have changed since the last frame.\n for (const object of generators) {\n const current = activeMapping.get(object);\n const isVisible = object.generator && visibleGenHash.has(object.uuid);\n const numSplats = isVisible ? object.numSplats : 0;\n if (\n this.needsUpdate ||\n object.generator !== current?.generator ||\n numSplats !== current?.count\n ) {\n object.updateVersion();\n }\n }\n\n // Check if the origin is within the maximum allowed distance before\n // we trigger an update.\n const originUpdate = !withinCoorientDist({\n matrix1: originToWorld,\n matrix2: this.active.toWorld,\n maxDistance: this.originDistance,\n });\n\n // Check if we need any update at all\n const needsUpdate =\n this.needsUpdate ||\n originUpdate ||\n generators.length !== activeMapping.size ||\n generators.some((g) => g.version !== activeMapping.get(g)?.version);\n this.needsUpdate = false;\n\n let accumulator: OldSplatAccumulator | null = null;\n if (needsUpdate) {\n // Need to update, so allocate an accumulator\n accumulator = this.maybeAllocAccumulator();\n if (!accumulator) {\n // This should never happen since we checked canAllocAccumulator() above\n throw new Error(\"Unreachable\");\n }\n\n // Compute whether our view frame has changed enough to warrant\n // doing a Gsplat sort. Check both distance epsilon and\n // minimum co-orientation (dot product of quaternions)\n const originChanged = !withinCoorientDist({\n matrix1: originToWorld,\n matrix2: accumulator.toWorld,\n maxDistance: 0.00001,\n minCoorient: 0.99999,\n });\n\n // Compute an ordering of the generators with the rough goal\n // of keeping unchanging generators near the front to minimize\n // the number of Gsplats that need to be regenerated.\n const sorted = visibleGenerators\n .map((g, gIndex): [number, number, SplatGenerator] => {\n const lastGen = activeMapping.get(g);\n // If no previous generator, sort by absolute version, which will\n // tend to push frequently updated generators toward the end\n return !lastGen\n ? [Number.POSITIVE_INFINITY, g.version, g]\n : // Sort by version deltas then by previous ordering in the mapping,\n // attempting to keep unchanging generators near the front\n // to improve our chances of avoiding a re-generation.\n [g.version - lastGen.version, lastGen.base, g];\n })\n .sort((a, b) => {\n // Sort by first then second element of the tuple\n if (a[0] !== b[0]) {\n return a[0] - b[0];\n }\n return a[1] - b[1];\n });\n const genOrder = sorted.map(([_version, _seq, g]) => g);\n\n // Compute sequential layout of generated splats\n const splatCounts = genOrder.map((g) => g.numSplats);\n const { maxSplats, mapping } =\n accumulator.splats.generateMapping(splatCounts);\n const newGenerators = genOrder.map((node, gIndex) => {\n const { base, count } = mapping[gIndex];\n return {\n node,\n generator: node.generator,\n version: node.version,\n base,\n count,\n };\n });\n\n // Compute worldToAccumulator origin transform (no scale)\n originToWorld\n .clone()\n .invert()\n .decompose(\n this.translateToAccumulator.value,\n this.rotateToAccumulator.value,\n new THREE.Vector3(),\n );\n\n // Generate the Gsplats according to the mapping that need updating\n accumulator.ensureGenerate(maxSplats);\n accumulator.splats.splatEncoding = { ...this.splatEncoding };\n const generated = accumulator.generateSplats({\n renderer: this.renderer,\n modifier: this.modifier,\n generators: newGenerators,\n forceUpdate: originChanged,\n originToWorld,\n });\n\n // Update splat version number\n accumulator.splatsVersion = this.active.splatsVersion + 1;\n // Increment the mapping version if the mapping isn't identical to before\n const hasCorrespondence = accumulator.hasCorrespondence(this.active);\n accumulator.mappingVersion =\n this.active.mappingVersion + (hasCorrespondence ? 0 : 1);\n\n // Release the old accumulator and make the new one active\n this.releaseAccumulator(this.active);\n this.active = accumulator;\n this.prepareViewpoint();\n }\n\n // Let the system breath before potentially triggering sorts\n setTimeout(() => {\n // Notify all auto-updating viewpoints that we updated the Gsplats\n for (const view of this.autoViewpoints) {\n view.autoPoll({ accumulator: accumulator ?? undefined });\n }\n }, 1);\n\n // Signal update was performed\n return true;\n }\n\n private compileScene(scene: THREE.Scene): {\n generators: SplatGenerator[];\n visibleGenerators: SplatGenerator[];\n globalEdits: SplatEdit[];\n } {\n // Take a snapshot of the SplatGenerators and SplatEdits in the scene\n // to be used to run an update.\n const generators: SplatGenerator[] = [];\n // Collect all SplatGenerators, even if not visible, because we want to\n // be able to call their update functions every frame.\n scene.traverse((node) => {\n if (node instanceof SplatGenerator) {\n generators.push(node);\n }\n });\n\n const visibleGenerators: SplatGenerator[] = [];\n scene.traverseVisible((node) => {\n if (node instanceof SplatGenerator) {\n visibleGenerators.push(node);\n }\n });\n\n const globalEdits = new Set();\n scene.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n let ancestor = node.parent;\n while (ancestor != null && !(ancestor instanceof SplatMesh)) {\n ancestor = ancestor.parent;\n }\n if (ancestor == null) {\n // Not part of a SplatMesh so it's a global edit\n globalEdits.add(node);\n }\n }\n });\n return {\n generators,\n visibleGenerators,\n globalEdits: Array.from(globalEdits),\n };\n }\n\n // Renders out the scene to an environment map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces,\n // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture\n // that can assigned directly to a THREE.MeshStandardMaterial.envMap property.\n async renderEnvMap({\n renderer,\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = false,\n }: {\n renderer?: THREE.WebGLRenderer;\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects?: THREE.Object3D[];\n update?: boolean;\n }): Promise {\n if (!this.envViewpoint) {\n this.envViewpoint = this.newViewpoint({ sort360: true });\n }\n if (\n !OldSparkRenderer.cubeRender ||\n OldSparkRenderer.cubeRender.target.width !== size ||\n OldSparkRenderer.cubeRender.near !== near ||\n OldSparkRenderer.cubeRender.far !== far\n ) {\n if (OldSparkRenderer.cubeRender) {\n OldSparkRenderer.cubeRender.target.dispose();\n }\n const target = new THREE.WebGLCubeRenderTarget(size, {\n format: THREE.RGBAFormat,\n generateMipmaps: true,\n minFilter: THREE.LinearMipMapLinearFilter,\n });\n const camera = new THREE.CubeCamera(near, far, target);\n OldSparkRenderer.cubeRender = { target, camera, near, far };\n }\n\n if (!OldSparkRenderer.pmrem) {\n OldSparkRenderer.pmrem = new THREE.PMREMGenerator(\n renderer ?? this.renderer,\n );\n }\n\n // Prepare the viewpoint, sorting Gsplats for this view origin.\n const viewToWorld = new THREE.Matrix4().setPosition(worldCenter);\n await this.envViewpoint?.prepare({ scene, viewToWorld, update });\n\n const { target, camera } = OldSparkRenderer.cubeRender;\n camera.position.copy(worldCenter);\n\n // Save the visibility state of objects we want to hide before render\n const objectVisibility = new Map();\n for (const object of hideObjects) {\n objectVisibility.set(object, object.visible);\n object.visible = false;\n }\n\n // Update the CubeCamera, which performs 6 cube face renders\n this.prepareViewpoint(this.envViewpoint);\n camera.update(renderer ?? this.renderer, scene);\n\n // Restore viewpoint to default and object visibility\n this.prepareViewpoint(this.defaultView);\n for (const [object, visible] of objectVisibility.entries()) {\n object.visible = visible;\n }\n\n // Pre-filter the cube map using THREE.PMREMGenerator\n return OldSparkRenderer.pmrem?.fromCubemap(target.texture).texture;\n }\n\n // Utility function to recursively set the envMap property for any\n // THREE.MeshStandardMaterial within the subtree of root.\n recurseSetEnvMap(root: THREE.Object3D, envMap: THREE.Texture) {\n root.traverse((node) => {\n if (node instanceof THREE.Mesh) {\n if (Array.isArray(node.material)) {\n for (const material of node.material) {\n if (material instanceof THREE.MeshStandardMaterial) {\n material.envMap = envMap;\n }\n }\n } else {\n if (node.material instanceof THREE.MeshStandardMaterial) {\n node.material.envMap = envMap;\n }\n }\n }\n });\n }\n\n // Utility function that helps extract the Gsplat RGBA values from a\n // SplatGenerator, including the result of any real-time RGBA SDF edits applied\n // to a SplatMesh. This effectively \"bakes\" any computed RGBA values, which can\n // now be used as a pipeline input via SplatMesh.splatRgba to inject these\n // baked values into the Gsplat data.\n getRgba({\n generator,\n rgba,\n }: { generator: SplatGenerator; rgba?: RgbaArray }): RgbaArray {\n const mapping = this.active.mapping.find(({ node }) => node === generator);\n if (!mapping) {\n throw new Error(\"Generator not found\");\n }\n\n rgba = rgba ?? new RgbaArray();\n rgba.fromPackedSplats({\n packedSplats: this.active.splats,\n base: mapping.base,\n count: mapping.count,\n renderer: this.renderer,\n });\n return rgba;\n }\n\n // Utility function that builds on getRgba({ generator }) and additionally\n // reads back the RGBA values to the CPU in a Uint8Array with packed RGBA\n // in that byte order.\n async readRgba({\n generator,\n rgba,\n }: { generator: SplatGenerator; rgba?: RgbaArray }): Promise {\n rgba = this.getRgba({ generator, rgba });\n return rgba.read();\n }\n}\n\nconst EMPTY_GEOMETRY = new OldSplatGeometry(new Uint32Array(1), 0);\n\nconst reorderSplats = dynoBlock(\n { packedSplats: TPackedSplats, index: \"int\" },\n { gsplat: Gsplat },\n ({ packedSplats, index }) => {\n if (!packedSplats || !index) {\n throw new Error(\"Invalid input\");\n }\n const gsplat = readPackedSplat(packedSplats, index);\n return { gsplat };\n },\n);\n\nfunction averageOriginToWorlds(\n originToWorlds: THREE.Matrix4[],\n): THREE.Matrix4 | null {\n if (originToWorlds.length === 0) {\n return null;\n }\n\n const position = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const scale = new THREE.Vector3();\n\n const positions: THREE.Vector3[] = [];\n const quaternions: THREE.Quaternion[] = [];\n for (const matrix of originToWorlds) {\n matrix.decompose(position, quaternion, scale);\n positions.push(position);\n quaternions.push(quaternion);\n }\n\n return new THREE.Matrix4().compose(\n averagePositions(positions),\n averageQuaternions(quaternions),\n new THREE.Vector3(1, 1, 1),\n );\n}\n","import type { SplatEncoding } from \"./defines\";\nimport { computeMaxSplats, setPackedSplat } from \"./utils\";\n\nexport function decodeAntiSplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n) {\n const numSplats = Math.floor(fileBytes.length / 32); // 32 bytes per splat\n if (numSplats * 32 !== fileBytes.length) {\n throw new Error(\"Invalid .splat file size\");\n }\n initNumSplats(numSplats);\n\n const f32 = new Float32Array(fileBytes.buffer);\n for (let i = 0; i < numSplats; ++i) {\n const i32 = i * 32;\n const i8 = i * 8;\n const x = f32[i8 + 0];\n const y = f32[i8 + 1];\n const z = f32[i8 + 2];\n const scaleX = f32[i8 + 3];\n const scaleY = f32[i8 + 4];\n const scaleZ = f32[i8 + 5];\n const r = fileBytes[i32 + 24] / 255;\n const g = fileBytes[i32 + 25] / 255;\n const b = fileBytes[i32 + 26] / 255;\n const opacity = fileBytes[i32 + 27] / 255;\n const quatW = (fileBytes[i32 + 28] - 128) / 128;\n const quatX = (fileBytes[i32 + 29] - 128) / 128;\n const quatY = (fileBytes[i32 + 30] - 128) / 128;\n const quatZ = (fileBytes[i32 + 31] - 128) / 128;\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n }\n}\n\nexport function unpackAntiSplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n} {\n let numSplats = 0;\n let maxSplats = 0;\n let packedArray = new Uint32Array(0);\n decodeAntiSplat(\n fileBytes,\n (cbNumSplats) => {\n numSplats = cbNumSplats;\n maxSplats = computeMaxSplats(numSplats);\n packedArray = new Uint32Array(maxSplats * 4);\n },\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n setPackedSplat(\n packedArray,\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n },\n );\n return { packedArray, numSplats };\n}\n","import type { SplatEncoding } from \"./defines\";\nimport {\n computeMaxSplats,\n encodeSh1Rgb,\n encodeSh2Rgb,\n encodeSh3Rgb,\n fromHalf,\n setPackedSplat,\n} from \"./utils\";\n\ntype KsplatCompression = {\n bytesPerCenter: number;\n bytesPerScale: number;\n bytesPerRotation: number;\n bytesPerColor: number;\n bytesPerSphericalHarmonicsComponent: number;\n scaleOffsetBytes: number;\n rotationOffsetBytes: number;\n colorOffsetBytes: number;\n sphericalHarmonicsOffsetBytes: number;\n scaleRange: number;\n};\n\nconst KSPLAT_COMPRESSION: Record = {\n 0: {\n bytesPerCenter: 12,\n bytesPerScale: 12,\n bytesPerRotation: 16,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 4,\n scaleOffsetBytes: 12,\n rotationOffsetBytes: 24,\n colorOffsetBytes: 40,\n sphericalHarmonicsOffsetBytes: 44,\n scaleRange: 1,\n },\n 1: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 2,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n 2: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 1,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n};\n\nconst KSPLAT_SH_DEGREE_TO_COMPONENTS: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nexport function decodeKsplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n) {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n initNumSplats(numSplats);\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n\n if (sphericalHarmonicsDegree >= 1 && sh1) {\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n if (sh2) {\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n }\n if (sh3) {\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n sectionBase += storageSizeBytes;\n }\n}\n\nexport function unpackKsplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n} {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n setPackedSplat(\n packedArray,\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n\n if (sphericalHarmonicsDegree >= 1) {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n encodeSh1Rgb(extra.sh1 as Uint32Array, i, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n encodeSh2Rgb(extra.sh2 as Uint32Array, i, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n encodeSh3Rgb(extra.sh3 as Uint32Array, i, sh3, splatEncoding);\n }\n }\n }\n sectionBase += storageSizeBytes;\n }\n return { packedArray, numSplats, extra };\n}\n","import * as THREE from \"three\";\nimport {\n SplatData,\n type TranscodeSpzInput,\n getSplatFileType,\n getSplatFileTypeFromPath,\n} from \"./SplatLoader\";\nimport { GunzipReader, fromHalf, normalize } from \"./utils\";\n\nimport { decodeAntiSplat } from \"./antisplat\";\nimport { SplatFileType } from \"./defines\";\nimport { decodeKsplat } from \"./ksplat\";\nimport { PlyReader } from \"./ply\";\n\n// SPZ file format reader\n\nexport class SpzReader {\n fileBytes: Uint8Array;\n reader: GunzipReader;\n\n version = -1;\n numSplats = 0;\n shDegree = 0;\n fractionalBits = 0;\n flags = 0;\n flagAntiAlias = false;\n flagLod = false;\n reserved = 0;\n headerParsed = false;\n parsed = false;\n\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n this.reader = new GunzipReader({\n fileBytes: this.fileBytes as Uint8Array,\n });\n }\n\n async parseHeader() {\n if (this.headerParsed) {\n throw new Error(\"SPZ file header already parsed\");\n }\n\n const header = new DataView((await this.reader.read(16)).buffer);\n if (header.getUint32(0, true) !== 0x5053474e) {\n throw new Error(\"Invalid SPZ file\");\n }\n this.version = header.getUint32(4, true);\n if (this.version < 1 || this.version > 3) {\n throw new Error(`Unsupported SPZ version: ${this.version}`);\n }\n\n this.numSplats = header.getUint32(8, true);\n this.shDegree = header.getUint8(12);\n this.fractionalBits = header.getUint8(13);\n this.flags = header.getUint8(14);\n this.flagAntiAlias = (this.flags & 0x01) !== 0;\n this.flagLod = (this.flags & 0x80) !== 0;\n this.reserved = header.getUint8(15);\n this.headerParsed = true;\n this.parsed = false;\n }\n\n async parseSplats(\n centerCallback?: (index: number, x: number, y: number, z: number) => void,\n alphaCallback?: (index: number, alpha: number) => void,\n rgbCallback?: (index: number, r: number, g: number, b: number) => void,\n scalesCallback?: (\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n ) => void,\n quatCallback?: (\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n {\n childCounts,\n childStarts,\n }: {\n childCounts?: (index: number, count: number) => void;\n childStarts?: (index: number, start: number) => void;\n } = {},\n ) {\n if (!this.headerParsed) {\n throw new Error(\"SPZ file header must be parsed first\");\n }\n if (this.parsed) {\n throw new Error(\"SPZ file already parsed\");\n }\n this.parsed = true;\n\n if (this.version === 1) {\n // float16 centers\n const centerBytes = await this.reader.read(this.numSplats * 3 * 2);\n const centerUint16 = new Uint16Array(centerBytes.buffer);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const x = fromHalf(centerUint16[i3]);\n const y = fromHalf(centerUint16[i3 + 1]);\n const z = fromHalf(centerUint16[i3 + 2]);\n centerCallback?.(i, x, y, z);\n }\n } else if (this.version === 2 || this.version === 3) {\n // 24-bit fixed-point centers\n const fixed = 1 << this.fractionalBits;\n const centerBytes = await this.reader.read(this.numSplats * 3 * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i9 = i * 9;\n const x =\n (((centerBytes[i9 + 2] << 24) |\n (centerBytes[i9 + 1] << 16) |\n (centerBytes[i9] << 8)) >>\n 8) /\n fixed;\n const y =\n (((centerBytes[i9 + 5] << 24) |\n (centerBytes[i9 + 4] << 16) |\n (centerBytes[i9 + 3] << 8)) >>\n 8) /\n fixed;\n const z =\n (((centerBytes[i9 + 8] << 24) |\n (centerBytes[i9 + 7] << 16) |\n (centerBytes[i9 + 6] << 8)) >>\n 8) /\n fixed;\n centerCallback?.(i, x, y, z);\n }\n } else {\n throw new Error(\"Unreachable\");\n }\n\n {\n const bytes = await this.reader.read(this.numSplats);\n for (let i = 0; i < this.numSplats; i++) {\n alphaCallback?.(i, bytes[i] / 255);\n }\n }\n {\n const rgbBytes = await this.reader.read(this.numSplats * 3);\n const scale = SH_C0 / 0.15;\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const r = (rgbBytes[i3] / 255 - 0.5) * scale + 0.5;\n const g = (rgbBytes[i3 + 1] / 255 - 0.5) * scale + 0.5;\n const b = (rgbBytes[i3 + 2] / 255 - 0.5) * scale + 0.5;\n rgbCallback?.(i, r, g, b);\n }\n }\n {\n const scalesBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const scaleX = Math.exp(scalesBytes[i3] / 16 - 10);\n const scaleY = Math.exp(scalesBytes[i3 + 1] / 16 - 10);\n const scaleZ = Math.exp(scalesBytes[i3 + 2] / 16 - 10);\n scalesCallback?.(i, scaleX, scaleY, scaleZ);\n }\n }\n if (this.version === 3) {\n // Version 3 uses a trick called \"smallest three\" to compress the rotation quaternions\n // achieving better precision. \"Optimizing orientation\" section at https://gafferongames.com/post/snapshot_compression/ A quaternion length must be 1: x^2+y^2+z^2+w^2 = 1\n // We can drop one component and reconstruct it with the identity above.\n // Largest component is dropped for best numerical precision.\n // Quaternion stored in 32 bits\n // 10 bits singed integer for each of the 3 components + 2 bits indicating the index of dropped component.\n // vs 8 bits for each component uncompressed (spz version < 3)\n // Max Value after extracting largest component v is another component v\n // (v,v,0,0)\n // v^2 + v^2 = 1\n // v = 1 / sqrt(2);\n const maxValue = 1 / Math.sqrt(2); // 0.7071\n const quatBytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 4;\n const quaternion = [0, 0, 0, 0];\n const values = [\n quatBytes[i3],\n quatBytes[i3 + 1],\n quatBytes[i3 + 2],\n quatBytes[i3 + 3],\n ];\n // all values are packed in 32 bits (10 per each of 3 components + 2 bits of index of larged value)\n const combinedValues =\n values[0] + (values[1] << 8) + (values[2] << 16) + (values[3] << 24);\n // each component value is 9 bits + sign (1 bit)\n const valueMask = (1 << 9) - 1;\n // extract index of the largest element. 2 top bits.\n const largestIndex = combinedValues >>> 30;\n let remainingValues = combinedValues;\n let sumSquares = 0;\n\n for (let i = 3; i >= 0; --i) {\n if (i !== largestIndex) {\n // extract current value and sign.\n const value = remainingValues & valueMask;\n const sign = (remainingValues >>> 9) & 0x1;\n // each value is represented as 10 bits. Shift to next one.\n remainingValues = remainingValues >>> 10;\n // convert to range [0,1] and then to [0, 0.7071]\n quaternion[i] = maxValue * (value / valueMask);\n // apply sign.\n quaternion[i] = sign === 0 ? quaternion[i] : -quaternion[i];\n // accumulate the sum of squares\n sumSquares += quaternion[i] * quaternion[i];\n }\n }\n\n // quartenion length must be 1 (x^2+y^2+z^2+w^2 = 1)\n // so can reconstruct largest component from the other 3.\n // w = sqrt(1 - x^2 - y^2 - z^2);\n const square = 1 - sumSquares;\n quaternion[largestIndex] = Math.sqrt(Math.max(square, 0));\n\n quatCallback?.(\n i,\n quaternion[0],\n quaternion[1],\n quaternion[2],\n quaternion[3],\n );\n }\n } else {\n const quatBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const quatX = quatBytes[i3] / 127.5 - 1;\n const quatY = quatBytes[i3 + 1] / 127.5 - 1;\n const quatZ = quatBytes[i3 + 2] / 127.5 - 1;\n const quatW = Math.sqrt(\n Math.max(0, 1 - quatX * quatX - quatY * quatY - quatZ * quatZ),\n );\n quatCallback?.(i, quatX, quatY, quatZ, quatW);\n }\n }\n\n if (shCallback && this.shDegree >= 1) {\n const sh1 = new Float32Array(3 * 3);\n const sh2 = this.shDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 = this.shDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n const shBytes = await this.reader.read(\n this.numSplats * SH_DEGREE_TO_VECS[this.shDegree] * 3,\n );\n\n let offset = 0;\n for (let i = 0; i < this.numSplats; i++) {\n for (let j = 0; j < 9; ++j) {\n sh1[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 9;\n if (sh2) {\n for (let j = 0; j < 15; ++j) {\n sh2[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 15;\n }\n if (sh3) {\n for (let j = 0; j < 21; ++j) {\n sh3[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 21;\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n if (this.flagLod) {\n let bytes = await this.reader.read(this.numSplats * 2);\n for (let i = 0; i < this.numSplats; i++) {\n const i2 = i * 2;\n const count = bytes[i2] + (bytes[i2 + 1] << 8);\n childCounts?.(i, count);\n }\n\n bytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i4 = i * 4;\n const start =\n bytes[i4] +\n (bytes[i4 + 1] << 8) +\n (bytes[i4 + 2] << 16) +\n (bytes[i4 + 3] << 24);\n childStarts?.(i, start);\n }\n }\n }\n}\n\nconst SH_DEGREE_TO_VECS: Record = { 1: 3, 2: 8, 3: 15 };\nconst SH_C0 = 0.28209479177387814;\n\nexport const SPZ_MAGIC = 0x5053474e; // NGSP = Niantic gaussian splat\nexport const SPZ_VERSION = 3;\nexport const FLAG_ANTIALIASED = 0x1;\n\nexport class SpzWriter {\n buffer: ArrayBuffer;\n view: DataView;\n numSplats: number;\n shDegree: number;\n fractionalBits: number;\n fraction: number;\n flagAntiAlias: boolean;\n clippedCount = 0;\n\n constructor({\n numSplats,\n shDegree,\n fractionalBits = 12,\n flagAntiAlias = true,\n }: {\n numSplats: number;\n shDegree: number;\n fractionalBits?: number;\n flagAntiAlias?: boolean;\n }) {\n const splatSize =\n 9 + // Position\n 1 + // Opacity\n 3 + // Scale\n 3 + // DC-rgb\n 4 + // Rotation\n (shDegree >= 1 ? 9 : 0) +\n (shDegree >= 2 ? 15 : 0) +\n (shDegree >= 3 ? 21 : 0);\n const bufferSize = 16 + numSplats * splatSize;\n this.buffer = new ArrayBuffer(bufferSize);\n this.view = new DataView(this.buffer);\n\n this.view.setUint32(0, SPZ_MAGIC, true); // NGSP\n this.view.setUint32(4, SPZ_VERSION, true);\n this.view.setUint32(8, numSplats, true);\n this.view.setUint8(12, shDegree);\n this.view.setUint8(13, fractionalBits);\n this.view.setUint8(14, flagAntiAlias ? FLAG_ANTIALIASED : 0);\n this.view.setUint8(15, 0); // Reserved\n\n this.numSplats = numSplats;\n this.shDegree = shDegree;\n this.fractionalBits = fractionalBits;\n this.fraction = 1 << fractionalBits;\n this.flagAntiAlias = flagAntiAlias;\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n // Divide by this.fraction and round to nearest integer,\n // then write as 3-bytes per x then y then z.\n const xRounded = Math.round(x * this.fraction);\n const xInt = Math.max(-0x7fffff, Math.min(0x7fffff, xRounded));\n const yRounded = Math.round(y * this.fraction);\n const yInt = Math.max(-0x7fffff, Math.min(0x7fffff, yRounded));\n const zRounded = Math.round(z * this.fraction);\n const zInt = Math.max(-0x7fffff, Math.min(0x7fffff, zRounded));\n const clipped = xRounded !== xInt || yRounded !== yInt || zRounded !== zInt;\n if (clipped) {\n this.clippedCount += 1;\n // if (this.clippedCount < 10) {\n // // Write x y z also in hex\n // console.log(`Clipped ${index}: ${x}, ${y}, ${z} (0x${x.toString(16)}, 0x${y.toString(16)}, 0x${z.toString(16)}) -> ${xRounded}, ${yRounded}, ${zRounded} (0x${xRounded.toString(16)}, 0x${yRounded.toString(16)}, 0x${zRounded.toString(16)}) -> ${xInt}, ${yInt}, ${zInt} (0x${xInt.toString(16)}, 0x${yInt.toString(16)}, 0x${zInt.toString(16)})`);\n // }\n }\n const i9 = index * 9;\n const base = 16 + i9;\n this.view.setUint8(base, xInt & 0xff);\n this.view.setUint8(base + 1, (xInt >> 8) & 0xff);\n this.view.setUint8(base + 2, (xInt >> 16) & 0xff);\n this.view.setUint8(base + 3, yInt & 0xff);\n this.view.setUint8(base + 4, (yInt >> 8) & 0xff);\n this.view.setUint8(base + 5, (yInt >> 16) & 0xff);\n this.view.setUint8(base + 6, zInt & 0xff);\n this.view.setUint8(base + 7, (zInt >> 8) & 0xff);\n this.view.setUint8(base + 8, (zInt >> 16) & 0xff);\n }\n\n setAlpha(index: number, alpha: number) {\n const base = 16 + this.numSplats * 9 + index;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round(alpha * 255))),\n );\n }\n\n static scaleRgb(r: number) {\n const v = ((r - 0.5) / (SH_C0 / 0.15) + 0.5) * 255;\n return Math.max(0, Math.min(255, Math.round(v)));\n }\n\n setRgb(index: number, r: number, g: number, b: number) {\n const base = 16 + this.numSplats * 10 + index * 3;\n this.view.setUint8(base, SpzWriter.scaleRgb(r));\n this.view.setUint8(base + 1, SpzWriter.scaleRgb(g));\n this.view.setUint8(base + 2, SpzWriter.scaleRgb(b));\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n const base = 16 + this.numSplats * 13 + index * 3;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleX) + 10) * 16))),\n );\n this.view.setUint8(\n base + 1,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleY) + 10) * 16))),\n );\n this.view.setUint8(\n base + 2,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleZ) + 10) * 16))),\n );\n }\n\n setQuat(\n index: number,\n ...q: [number, number, number, number] // x, y, z, w\n ) {\n const base = 16 + this.numSplats * 16 + index * 4;\n\n const quat = normalize(q);\n\n // Find largest component\n let iLargest = 0;\n for (let i = 1; i < 4; ++i) {\n if (Math.abs(quat[i]) > Math.abs(quat[iLargest])) {\n iLargest = i;\n }\n }\n\n // Since -quat represents the same rotation as quat, transform the quaternion so the largest element\n // is positive. This avoids having to send its sign bit.\n const negate = quat[iLargest] < 0 ? 1 : 0;\n\n // Do compression using sign bit and 9-bit precision per element.\n let comp = iLargest;\n for (let i = 0; i < 4; ++i) {\n if (i !== iLargest) {\n const negbit = (quat[i] < 0 ? 1 : 0) ^ negate;\n const mag = Math.floor(\n ((1 << 9) - 1) * (Math.abs(quat[i]) / Math.SQRT1_2) + 0.5,\n );\n comp = (comp << 10) | (negbit << 9) | mag;\n }\n }\n\n this.view.setUint8(base, comp & 0xff);\n this.view.setUint8(base + 1, (comp >> 8) & 0xff);\n this.view.setUint8(base + 2, (comp >> 16) & 0xff);\n this.view.setUint8(base + 3, (comp >>> 24) & 0xff);\n }\n\n static quantizeSh(sh: number, bits: number) {\n const value = Math.round(sh * 128) + 128;\n const bucketSize = 1 << (8 - bits);\n const quantized =\n Math.floor((value + bucketSize / 2) / bucketSize) * bucketSize;\n return Math.max(0, Math.min(255, quantized));\n }\n\n setSh(\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) {\n const shVecs = SH_DEGREE_TO_VECS[this.shDegree] || 0;\n const base1 = 16 + this.numSplats * 20 + index * shVecs * 3;\n for (let j = 0; j < 9; ++j) {\n this.view.setUint8(base1 + j, SpzWriter.quantizeSh(sh1[j], 5));\n }\n if (sh2) {\n const base2 = base1 + 9;\n for (let j = 0; j < 15; ++j) {\n this.view.setUint8(base2 + j, SpzWriter.quantizeSh(sh2[j], 4));\n }\n if (sh3) {\n const base3 = base2 + 15;\n for (let j = 0; j < 21; ++j) {\n this.view.setUint8(base3 + j, SpzWriter.quantizeSh(sh3[j], 4));\n }\n }\n }\n }\n\n async finalize(): Promise {\n const input = new Uint8Array(this.buffer);\n const stream = new ReadableStream({\n async start(controller) {\n controller.enqueue(input);\n controller.close();\n },\n });\n const compressed = stream.pipeThrough(new CompressionStream(\"gzip\"));\n const response = new Response(compressed);\n const buffer = await response.arrayBuffer();\n console.log(\n \"Compressed\",\n input.length,\n \"bytes to\",\n buffer.byteLength,\n \"bytes\",\n );\n return new Uint8Array(buffer);\n }\n}\n\nexport async function transcodeSpz(input: TranscodeSpzInput) {\n const splats = new SplatData();\n const {\n inputs,\n clipXyz,\n maxSh,\n fractionalBits = 12,\n opacityThreshold,\n } = input;\n for (const input of inputs) {\n const scale = input.transform?.scale ?? 1;\n const quaternion = new THREE.Quaternion().fromArray(\n input.transform?.quaternion ?? [0, 0, 0, 1],\n );\n const translate = new THREE.Vector3().fromArray(\n input.transform?.translate ?? [0, 0, 0],\n );\n const clip = clipXyz\n ? new THREE.Box3(\n new THREE.Vector3().fromArray(clipXyz.min),\n new THREE.Vector3().fromArray(clipXyz.max),\n )\n : undefined;\n\n function transformPos(pos: THREE.Vector3) {\n pos.multiplyScalar(scale);\n pos.applyQuaternion(quaternion);\n pos.add(translate);\n return pos;\n }\n\n function transformScales(scales: THREE.Vector3) {\n scales.multiplyScalar(scale);\n return scales;\n }\n\n function transformQuaternion(quat: THREE.Quaternion) {\n quat.premultiply(quaternion);\n return quat;\n }\n\n function withinClip(p: THREE.Vector3) {\n return !clip || clip.containsPoint(p);\n }\n\n function withinOpacity(opacity: number) {\n return opacityThreshold !== undefined\n ? opacity >= opacityThreshold\n : true;\n }\n\n let fileType = input.fileType;\n if (!fileType) {\n fileType = getSplatFileType(input.fileBytes);\n if (!fileType && input.pathOrUrl) {\n fileType = getSplatFileTypeFromPath(input.pathOrUrl);\n }\n }\n switch (fileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes: input.fileBytes });\n await ply.parseHeader();\n let lastIndex: number | null = null;\n ply.parseSplats(\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (sh1 && lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n }\n if (sh2 && lastIndex !== null) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3 && lastIndex !== null) {\n splats.setSh3(lastIndex, sh3);\n }\n },\n );\n break;\n }\n case SplatFileType.SPZ: {\n const spz = new SpzReader({ fileBytes: input.fileBytes });\n await spz.parseHeader();\n const mapping = new Int32Array(spz.numSplats);\n mapping.fill(-1);\n const centers = new Float32Array(spz.numSplats * 3);\n const center = new THREE.Vector3();\n spz.parseSplats(\n (index, x, y, z) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n centers[index * 3] = center.x;\n centers[index * 3 + 1] = center.y;\n centers[index * 3 + 2] = center.z;\n },\n (index, alpha) => {\n center.fromArray(centers, index * 3);\n if (withinClip(center) && withinOpacity(alpha)) {\n mapping[index] = splats.pushSplat();\n splats.setCenter(mapping[index], center.x, center.y, center.z);\n splats.setOpacity(mapping[index], alpha);\n }\n },\n (index, r, g, b) => {\n if (mapping[index] >= 0) {\n splats.setColor(mapping[index], r, g, b);\n }\n },\n (index, scaleX, scaleY, scaleZ) => {\n if (mapping[index] >= 0) {\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(mapping[index], scales.x, scales.y, scales.z);\n }\n },\n (index, quatX, quatY, quatZ, quatW) => {\n if (mapping[index] >= 0) {\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n mapping[index],\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n }\n },\n (index, sh1, sh2, sh3) => {\n if (mapping[index] >= 0) {\n splats.setSh1(mapping[index], sh1);\n if (sh2) {\n splats.setSh2(mapping[index], sh2);\n }\n if (sh3) {\n splats.setSh3(mapping[index], sh3);\n }\n }\n },\n );\n break;\n }\n case SplatFileType.SPLAT:\n decodeAntiSplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n const index = splats.pushSplat();\n splats.setCenter(index, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(index, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n index,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(index, opacity);\n splats.setColor(index, r, g, b);\n }\n },\n );\n break;\n case SplatFileType.KSPLAT: {\n let lastIndex: number | null = null;\n decodeKsplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n if (sh2) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3) {\n splats.setSh3(lastIndex, sh3);\n }\n }\n },\n );\n break;\n }\n default:\n throw new Error(`transcodeSpz not implemented for ${fileType}`);\n }\n }\n\n const shDegree = Math.min(\n maxSh ?? 3,\n splats.sh3 ? 3 : splats.sh2 ? 2 : splats.sh1 ? 1 : 0,\n );\n const spz = new SpzWriter({\n numSplats: splats.numSplats,\n shDegree,\n fractionalBits,\n flagAntiAlias: true,\n });\n\n for (let i = 0; i < splats.numSplats; ++i) {\n const i3 = i * 3;\n const i4 = i * 4;\n spz.setCenter(\n i,\n splats.centers[i3],\n splats.centers[i3 + 1],\n splats.centers[i3 + 2],\n );\n spz.setScale(\n i,\n splats.scales[i3],\n splats.scales[i3 + 1],\n splats.scales[i3 + 2],\n );\n spz.setQuat(\n i,\n splats.quaternions[i4],\n splats.quaternions[i4 + 1],\n splats.quaternions[i4 + 2],\n splats.quaternions[i4 + 3],\n );\n spz.setAlpha(i, splats.opacities[i]);\n spz.setRgb(\n i,\n splats.colors[i3],\n splats.colors[i3 + 1],\n splats.colors[i3 + 2],\n );\n if (splats.sh1 && shDegree >= 1) {\n spz.setSh(\n i,\n splats.sh1.slice(i * 9, (i + 1) * 9),\n shDegree >= 2 && splats.sh2\n ? splats.sh2.slice(i * 15, (i + 1) * 15)\n : undefined,\n shDegree >= 3 && splats.sh3\n ? splats.sh3.slice(i * 21, (i + 1) * 21)\n : undefined,\n );\n }\n }\n\n const spzBytes = await spz.finalize();\n return { fileBytes: spzBytes, clippedCount: spz.clippedCount };\n}\n","import * as THREE from \"three\";\n\n// SplatSkinning is an experimental class that implements dual-quaternion\n// skeletal animation for Gsplats. A skeletal animation system consists\n// of a set of bones, each with a \"rest\" pose that consists of a position\n// and orientation, and a weighting of up to 4 bones for each Gsplat.\n// By moving and rotating the bones you can animate all the Gsplats like\n// your would for a normal 3D animated mesh.\n// Note that the dual-quaternion formulation assumes that mass/volume\n// is conserved through these transformations, which helps avoid common\n// issues with linear blend skinning such as joint collapse or bulging.\n// However, it is not as good a fit for animations that involve explicit\n// deformations, such as cartoon animations.\n\nimport type { SplatMesh } from \"./SplatMesh\";\nimport {\n CovSplat,\n Dyno,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize, newArray } from \"./utils\";\n\nexport enum SplatSkinningMode {\n DUAL_QUATERNION = \"dual_quaternion\",\n LINEAR_BLEND = \"linear_blend\",\n}\n\nexport type SplatSkinningOptions = {\n // Specifies the SplatMesh that will be animated.\n mesh: SplatMesh;\n // Overrides the number of Gsplats in the mesh that will be animated.\n // (default: mesh.numSplats)\n numSplats?: number;\n // Set the number of bones used to animate the SplatMesh, with a maximum\n // of 256 (in order to compactly encode the bone index). (default: 256)\n numBones?: number;\n // Set the mode of skinning to use.\n // (default: DUAL_QUATERNION)\n mode?: SplatSkinningMode;\n};\n\nexport class SplatSkinning {\n mesh: SplatMesh;\n numSplats: number;\n mode: SplatSkinningMode;\n\n // Store the skinning weights for each Gsplat, composed of a 4-vector\n // of bone indices and weight\n skinData: Uint16Array;\n skinTexture: THREE.DataArrayTexture;\n\n numBones: number;\n boneData: Float32Array;\n boneTexture: THREE.DataTexture;\n\n boneRestQuatPosScale: {\n quat: THREE.Quaternion;\n pos: THREE.Vector3;\n scale: THREE.Vector3;\n }[];\n boneRestInvMats: THREE.Matrix4[];\n\n uniform: DynoUniform;\n\n constructor(options: SplatSkinningOptions) {\n this.mesh = options.mesh;\n this.numSplats = options.numSplats ?? this.mesh.numSplats;\n this.mode = options.mode ?? SplatSkinningMode.DUAL_QUATERNION;\n\n const { width, height, depth, maxSplats } = getTextureSize(this.numSplats);\n this.skinData = new Uint16Array(maxSplats * 4);\n this.skinTexture = new THREE.DataArrayTexture(\n this.skinData,\n width,\n height,\n depth,\n );\n this.skinTexture.format = THREE.RGBAIntegerFormat;\n this.skinTexture.type = THREE.UnsignedShortType;\n this.skinTexture.internalFormat = \"RGBA16UI\";\n this.skinTexture.needsUpdate = true;\n\n this.numBones = options.numBones ?? 256;\n this.boneData = new Float32Array(this.numBones * 16);\n this.boneTexture = new THREE.DataTexture(\n this.boneData,\n 4,\n this.numBones,\n THREE.RGBAFormat,\n THREE.FloatType,\n );\n this.boneTexture.internalFormat = \"RGBA32F\";\n this.boneTexture.needsUpdate = true;\n\n this.boneRestQuatPosScale = newArray(this.numBones, () => ({\n quat: new THREE.Quaternion(),\n pos: new THREE.Vector3(),\n scale: new THREE.Vector3(),\n }));\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats = newArray(this.numBones, () => new THREE.Matrix4());\n } else {\n this.boneRestInvMats = [];\n }\n\n this.uniform = new DynoUniform({\n key: \"skinning\",\n type: GsplatSkinning,\n globals: () => [defineGsplatSkinning],\n value: {\n numSplats: this.numSplats,\n numBones: this.numBones,\n skinTexture: this.skinTexture,\n boneTexture: this.boneTexture,\n },\n });\n }\n\n // Apply the skeletal animation to a Gsplat in a dyno program.\n modify(gsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"Linear blend skinning requires covSplats=true\");\n }\n return applyGsplatSkinning(gsplat, this.uniform);\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n return applyCovSplatDQSkinning(covsplat, this.uniform);\n }\n return applyCovSplatLBSkinning(covsplat, this.uniform);\n }\n\n // Set the \"rest\" pose for a bone with position and quaternion orientation.\n setRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(SplatSkinning.UNIT_SCALE);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex]\n .compose(pos, quat, SplatSkinning.UNIT_SCALE)\n .invert();\n }\n\n this.setBoneQuatPos(boneIndex, quat, pos);\n }\n\n getRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n }\n\n setRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(scale);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex].compose(pos, quat, scale).invert();\n }\n\n this.setBoneQuatPosScale(boneIndex, quat, pos, scale);\n }\n\n getRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n scale.copy(this.boneRestQuatPosScale[boneIndex].scale);\n }\n\n setRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setRestMat only supported for linear blend skinning\");\n }\n this.boneRestInvMats[boneIndex].copy(matrix).invert();\n this.setBoneMatrix(boneIndex, matrix);\n }\n\n getRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"getRestMat only supported for linear blend skinning\");\n }\n matrix.copy(this.boneRestInvMats[boneIndex]).invert();\n }\n\n // Set the \"current\" position and orientation of a bone.\n setBoneQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n SplatSkinning.relQuat\n .copy(this.boneRestQuatPosScale[boneIndex].quat)\n .invert();\n SplatSkinning.relPos\n .copy(pos)\n .sub(this.boneRestQuatPosScale[boneIndex].pos);\n SplatSkinning.relQuat.multiply(quat);\n SplatSkinning.dual\n .set(\n SplatSkinning.relPos.x,\n SplatSkinning.relPos.y,\n SplatSkinning.relPos.z,\n 0.0,\n )\n .multiply(SplatSkinning.relQuat);\n\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.relQuat.x;\n this.boneData[i16 + 1] = SplatSkinning.relQuat.y;\n this.boneData[i16 + 2] = SplatSkinning.relQuat.z;\n this.boneData[i16 + 3] = SplatSkinning.relQuat.w;\n this.boneData[i16 + 4] = 0.5 * SplatSkinning.dual.x;\n this.boneData[i16 + 5] = 0.5 * SplatSkinning.dual.y;\n this.boneData[i16 + 6] = 0.5 * SplatSkinning.dual.z;\n this.boneData[i16 + 7] = 0.5 * SplatSkinning.dual.w;\n } else {\n this.setBoneQuatPosScale(boneIndex, quat, pos, SplatSkinning.UNIT_SCALE);\n }\n }\n\n setBoneQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n throw new Error(\n \"setBoneQuatPosScale only supported for linear blend skinning\",\n );\n }\n\n SplatSkinning.skinMat.compose(pos, quat, scale);\n this.setBoneMatrix(boneIndex, SplatSkinning.skinMat);\n }\n\n setBoneMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setBoneMatrix only supported for linear blend skinning\");\n }\n\n SplatSkinning.skinMat.multiplyMatrices(\n this.boneRestInvMats[boneIndex],\n matrix,\n );\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.skinMat.elements[0];\n this.boneData[i16 + 1] = SplatSkinning.skinMat.elements[1];\n this.boneData[i16 + 2] = SplatSkinning.skinMat.elements[2];\n this.boneData[i16 + 3] = SplatSkinning.skinMat.elements[4];\n this.boneData[i16 + 4] = SplatSkinning.skinMat.elements[5];\n this.boneData[i16 + 5] = SplatSkinning.skinMat.elements[6];\n this.boneData[i16 + 6] = SplatSkinning.skinMat.elements[8];\n this.boneData[i16 + 7] = SplatSkinning.skinMat.elements[9];\n this.boneData[i16 + 8] = SplatSkinning.skinMat.elements[10];\n this.boneData[i16 + 9] = SplatSkinning.skinMat.elements[12];\n this.boneData[i16 + 10] = SplatSkinning.skinMat.elements[13];\n this.boneData[i16 + 11] = SplatSkinning.skinMat.elements[14];\n }\n\n // Set up to 4 bone indices and weights for a Gsplat. For fewer than 4 bones,\n // you can set the remaining weights to 0 (and index=0).\n setSplatBones(\n splatIndex: number,\n boneIndices: THREE.Vector4,\n weights: THREE.Vector4,\n ) {\n const i4 = splatIndex * 4;\n this.skinData[i4 + 0] =\n Math.min(255, Math.max(0, Math.round(weights.x * 255.0))) +\n (boneIndices.x << 8);\n this.skinData[i4 + 1] =\n Math.min(255, Math.max(0, Math.round(weights.y * 255.0))) +\n (boneIndices.y << 8);\n this.skinData[i4 + 2] =\n Math.min(255, Math.max(0, Math.round(weights.z * 255.0))) +\n (boneIndices.z << 8);\n this.skinData[i4 + 3] =\n Math.min(255, Math.max(0, Math.round(weights.w * 255.0))) +\n (boneIndices.w << 8);\n }\n\n // Call this to indicate that the bones have changed and the Gsplats need to be\n // re-generated with updated skinning.\n updateBones() {\n this.boneTexture.needsUpdate = true;\n this.mesh.needsUpdate = true;\n }\n\n private static UNIT_SCALE = new THREE.Vector3(1, 1, 1);\n private static relQuat = new THREE.Quaternion();\n private static relPos = new THREE.Vector3();\n private static dual = new THREE.Quaternion();\n private static skinMat = new THREE.Matrix4();\n}\n\n// dyno program definitions for SplatSkinning\n\nexport const GsplatSkinning = { type: \"GsplatSkinning\" } as {\n type: \"GsplatSkinning\";\n};\n\nexport const defineGsplatSkinning = unindent(`\n struct GsplatSkinning {\n int numSplats;\n int numBones;\n usampler2DArray skinTexture;\n sampler2D boneTexture;\n };\n`);\n\nexport const defineApplyGsplatSkinning = unindent(`\n void applyGsplatSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec4 quaternion\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n\n center = quatVec(quat, center) + translate;\n quaternion = quatQuat(quat, quaternion);\n }\n`);\n\nfunction applyGsplatSkinning(\n gsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { gsplat: typeof Gsplat; skinning: typeof GsplatSkinning },\n { gsplat: typeof Gsplat }\n >({\n inTypes: { gsplat: Gsplat, skinning: GsplatSkinning },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplatSkinning, defineApplyGsplatSkinning],\n inputs: { gsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n applyGsplatSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${gsplat}.index, ${gsplat}.center, ${gsplat}.quaternion\n );\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nexport const defineApplyCovSplatDQSkinning = unindent(`\n void applyCovSplatDQSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n mat3 basis = quaternionToMatrix(quat);\n\n center = quatVec(quat, center) + translate;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nexport const defineApplyCovSplatLBSkinning = unindent(`\n void applyCovSplatLBSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n mat3 basis = mat3(0.0);\n vec3 offset = vec3(0.0);\n\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n if (boneIndex < numBones) {\n vec4 v0 = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n vec4 v1 = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n vec4 v2 = texelFetch(boneTexture, ivec2(2, boneIndex), 0);\n basis += weights[i] * mat3(v0.x, v0.y, v0.z, v0.w, v1.x, v1.y, v1.z, v1.w, v2.x);\n offset += weights[i] * vec3(v2.y, v2.z, v2.w);\n }\n }\n }\n\n center = basis * center + offset;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nfunction applyCovSplatDQSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatDQSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatDQSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nfunction applyCovSplatLBSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatLBSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatLBSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n","import * as THREE from \"three\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport function constructGrid({\n // PackedSplats object to add splats to\n splats,\n // min and max box extents of the grid\n extents,\n // step size along each grid axis\n stepSize = 1,\n // spherical radius of each Gsplat\n pointRadius = 0.01,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n pointShadowScale = 2.0,\n // Gsplat opacity\n opacity = 1.0,\n // Gsplat color (THREE.Color) or function to set color for position:\n // ((THREE.Color, THREE.Vector3) => void) (default: RGB-modulated grid)\n color,\n}: {\n splats: PackedSplats;\n extents: THREE.Box3;\n stepSize?: number;\n pointRadius?: number;\n pointShadowScale?: number;\n opacity?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const EPSILON = 1.0e-6;\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n if (color == null) {\n color = (color, point) =>\n color.set(\n 0.55 + 0.45 * Math.cos(point.x * 1),\n 0.55 + 0.45 * Math.cos(point.y * 1),\n 0.55 + 0.45 * Math.cos(point.z * 1),\n );\n }\n const pointColor = new THREE.Color();\n for (let z = extents.min.z; z < extents.max.z + EPSILON; z += stepSize) {\n for (let y = extents.min.y; y < extents.max.y + EPSILON; y += stepSize) {\n for (let x = extents.min.x; x < extents.max.x + EPSILON; x += stepSize) {\n center.set(x, y, z);\n for (let layer = 0; layer < 2; ++layer) {\n scales.setScalar(pointRadius * (layer ? 1 : pointShadowScale));\n if (!layer) {\n pointColor.setScalar(0.0);\n } else if (typeof color === \"function\") {\n color(pointColor, center);\n } else {\n pointColor.copy(color);\n }\n splats.pushSplat(center, scales, quaternion, opacity, pointColor);\n }\n }\n }\n }\n}\n\nexport function constructAxes({\n // PackedSplats object to add splats to\n splats,\n // scale (Gsplat scale along axis)\n scale = 0.25,\n // radius of the axes (Gsplat scale orthogonal to axis)\n axisRadius = 0.0075,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n axisShadowScale = 2.0,\n // origins of the axes (default single axis at origin)\n origins = [new THREE.Vector3()],\n}: {\n splats: PackedSplats;\n scale?: number;\n axisRadius?: number;\n axisShadowScale?: number;\n origins?: THREE.Vector3[];\n}) {\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const color = new THREE.Color();\n const opacity = 1.0;\n for (const origin of origins) {\n for (let axis = 0; axis < 3; ++axis) {\n center.set(\n origin.x + (axis === 0 ? scale : 0),\n origin.y + (axis === 1 ? scale : 0),\n origin.z + (axis === 2 ? scale : 0),\n );\n for (let layer = 0; layer < 2; ++layer) {\n scales.set(\n (axis === 0 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 1 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 2 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n );\n color.setRGB(\n layer === 0 ? 0.0 : axis === 0 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 1 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 2 ? 1.0 : 0.0,\n );\n splats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n }\n}\n\nexport function constructSpherePoints({\n // PackedSplats object to add splats to\n splats,\n // center of the sphere (default: origin)\n origin = new THREE.Vector3(),\n // radius of the sphere\n radius = 1.0,\n // maximum depth of recursion for subdividing the sphere\n // Warning: Gsplat count grows exponentially with depth\n maxDepth = 3,\n // filter function to apply to each point, for example to select\n // points in a certain direction or other function ((THREE.Vector3) => boolean)\n // (default: null)\n filter = null,\n // radius of each oriented Gsplat\n pointRadius = 0.02,\n // flatness of each oriented Gsplat\n pointThickness = 0.001,\n // color of each Gsplat (THREE.Color) or function to set color for point:\n // ((THREE.Color, THREE.Vector3) => void) (default: white)\n color = new THREE.Color(1, 1, 1),\n}: {\n splats: PackedSplats;\n origin?: THREE.Vector3;\n radius?: number;\n maxDepth?: number;\n filter?: ((point: THREE.Vector3) => boolean) | null;\n pointRadius?: number;\n pointThickness?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const pointsHash: { [key: string]: THREE.Vector3 } = {};\n\n function addPoint(p: THREE.Vector3) {\n if (filter && !filter(p)) {\n return;\n }\n const key = `${p.x},${p.y},${p.z}`;\n if (!pointsHash[key]) {\n pointsHash[key] = p;\n }\n }\n\n function recurse(\n depth: number,\n p0: THREE.Vector3,\n p1: THREE.Vector3,\n p2: THREE.Vector3,\n ) {\n addPoint(p0);\n addPoint(p1);\n addPoint(p2);\n if (depth >= maxDepth) {\n return;\n }\n const p01 = new THREE.Vector3().addVectors(p0, p1).normalize();\n const p12 = new THREE.Vector3().addVectors(p1, p2).normalize();\n const p20 = new THREE.Vector3().addVectors(p2, p0).normalize();\n recurse(depth + 1, p0, p01, p20);\n recurse(depth + 1, p01, p1, p12);\n recurse(depth + 1, p20, p12, p2);\n recurse(depth + 1, p01, p12, p20);\n }\n\n for (const x of [-1, 1]) {\n for (const y of [-1, 1]) {\n for (const z of [-1, 1]) {\n const p0 = new THREE.Vector3(x, 0, 0);\n const p1 = new THREE.Vector3(0, y, 0);\n const p2 = new THREE.Vector3(0, 0, z);\n recurse(0, p0, p1, p2);\n }\n }\n }\n\n const points = Object.values(pointsHash);\n const scales = new THREE.Vector3(pointRadius, pointRadius, pointThickness);\n const quaternion = new THREE.Quaternion();\n const pointColor = typeof color === \"function\" ? new THREE.Color() : color;\n for (const point of points) {\n quaternion.setFromUnitVectors(new THREE.Vector3(0, 0, -1), point);\n if (typeof color === \"function\") {\n color(pointColor, point);\n }\n point.multiplyScalar(radius);\n point.add(origin);\n splats.pushSplat(point, scales, quaternion, 1.0, pointColor);\n }\n}\n\nexport function textSplats({\n // text string to display\n text,\n // browser font to render text with (default: \"Arial\")\n font,\n // font size in pixels/Gsplats (default: 32)\n fontSize,\n // SplatMesh.recolor tint assuming white Gsplats (default: white)\n color,\n // Individual Gsplat color (default: white)\n rgb,\n // Gsplat radius (default: 0.8 covers 1-unit spacing well)\n dotRadius,\n // text alignment: \"left\", \"center\", \"right\", \"start\", \"end\" (default: \"start\")\n textAlign,\n // line spacing multiplier, lines delimited by \"\\n\" (default: 1.0)\n lineHeight,\n // Coordinate scale in object-space (default: 1.0)\n objectScale,\n}: {\n text: string;\n font?: string;\n fontSize?: number;\n color?: THREE.Color;\n rgb?: THREE.Color;\n dotRadius?: number;\n textAlign?: \"left\" | \"center\" | \"right\" | \"start\" | \"end\";\n lineHeight?: number;\n objectScale?: number;\n}) {\n font = font ?? \"Arial\";\n fontSize = fontSize ?? 32;\n color = color ?? new THREE.Color(1, 1, 1);\n dotRadius = dotRadius ?? 0.8;\n textAlign = textAlign ?? \"start\";\n lineHeight = lineHeight ?? 1;\n objectScale = objectScale ?? 1;\n const lines = text.split(\"\\n\");\n\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Failed to create canvas context\");\n }\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n const metrics = ctx.measureText(\"\");\n const fontHeight =\n metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent;\n\n let minLeft = Number.POSITIVE_INFINITY;\n let maxRight = Number.NEGATIVE_INFINITY;\n let minTop = Number.POSITIVE_INFINITY;\n let maxBottom = Number.NEGATIVE_INFINITY;\n for (let line = 0; line < lines.length; ++line) {\n const metrics = ctx.measureText(lines[line]);\n const y = fontHeight * lineHeight * line;\n minLeft = Math.min(minLeft, -metrics.actualBoundingBoxLeft);\n maxRight = Math.max(maxRight, metrics.actualBoundingBoxRight);\n minTop = Math.min(minTop, y - metrics.actualBoundingBoxAscent);\n maxBottom = Math.max(maxBottom, y + metrics.actualBoundingBoxDescent);\n }\n const originLeft = Math.floor(minLeft);\n const originTop = Math.floor(minTop);\n const width = Math.ceil(maxRight) - originLeft;\n const height = Math.ceil(maxBottom) - originTop;\n canvas.width = width;\n canvas.height = height;\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n ctx.textBaseline = \"alphabetic\";\n ctx.fillStyle = \"#FFFFFF\";\n for (let i = 0; i < lines.length; ++i) {\n const y = fontHeight * lineHeight * i - originTop;\n ctx.fillText(lines[i], -originLeft, y);\n }\n\n const imageData = ctx.getImageData(0, 0, width, height);\n const rgba = new Uint8Array(imageData.data.buffer);\n const splats = new PackedSplats();\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius * objectScale);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n rgb = rgb ?? new THREE.Color(1, 1, 1);\n\n let offset = 0;\n for (let y = 0; y < height; ++y) {\n for (let x = 0; x < width; ++x) {\n const a = rgba[offset + 3];\n if (a > 0) {\n const opacity = a / 255;\n center.set(x - 0.5 * (width - 1), 0.5 * (height - 1) - y, 0);\n center.multiplyScalar(objectScale);\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n offset += 4;\n }\n }\n\n const mesh = new SplatMesh({ packedSplats: splats });\n mesh.recolor = color;\n return mesh;\n}\n\nexport function imageSplats({\n // URL of the image to convert to splats (example: `url: \"./image.png\"`)\n url,\n // Radius of each Gsplat, default covers 1-unit spacing well (default: 0.8)\n dotRadius,\n // Subsampling factor for the image. Higher values reduce resolution,\n // for example 2 will halve the width and height by averaging (default: 1)\n subXY,\n // Optional callback function to modify each Gsplat before it's added.\n // Return null to skip adding the Gsplat, or a number to set the opacity\n // and add the Gsplat with parameter values in the objects center, rgba etc. were\n // passed into the forEachSplat callback. Ending the callback in `return opacity;`\n // will retain the original opacity.\n // ((width: number, height: number, index: number, center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, opacity: number, color: THREE.Color) => number | null)\n forEachSplat,\n}: {\n url: string;\n dotRadius?: number;\n subXY?: number;\n forEachSplat?: (\n width: number,\n height: number,\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => number | null;\n}): SplatMesh {\n dotRadius = dotRadius ?? 0.8;\n subXY = Math.max(1, Math.floor(subXY ?? 1));\n\n return new SplatMesh({\n constructSplats: async (splats) => {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.onerror = reject;\n img.onload = () => {\n const { width, height } = img;\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n reject(new Error(\"Failed to create canvas context\"));\n return;\n }\n ctx.imageSmoothingEnabled = true;\n ctx.imageSmoothingQuality = \"high\";\n const destWidth = Math.round(width / subXY);\n const destHeight = Math.round(height / subXY);\n ctx.drawImage(img, 0, 0, destWidth, destHeight);\n try {\n const imageData = ctx.getImageData(0, 0, destWidth, destHeight);\n const rgba = new Uint8Array(imageData.data.buffer);\n\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const rgb = new THREE.Color();\n\n let index = 0;\n for (let y = 0; y < destHeight; ++y) {\n for (let x = 0; x < destWidth; ++x) {\n const offset = index * 4;\n const a = rgba[offset + 3];\n if (a > 0) {\n let opacity = a / 255;\n rgb.set(\n rgba[offset + 0] / 255,\n rgba[offset + 1] / 255,\n rgba[offset + 2] / 255,\n );\n center.set(\n x - 0.5 * (destWidth - 1),\n 0.5 * (destHeight - 1) - y,\n 0,\n );\n scales.setScalar(dotRadius);\n quaternion.set(0, 0, 0, 1);\n let push = true;\n if (forEachSplat) {\n const maybeOpacity = forEachSplat(\n destWidth,\n destHeight,\n index,\n center,\n scales,\n quaternion,\n opacity,\n rgb,\n );\n opacity = maybeOpacity ?? opacity;\n push = maybeOpacity !== null;\n }\n if (push) {\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n }\n index += 1;\n }\n }\n resolve();\n } catch (error) {\n reject(error);\n }\n };\n img.src = url;\n });\n },\n });\n}\n","import * as THREE from \"three\";\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n type DynoVal,\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n div,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n floatBitsToInt,\n hashVec3,\n imod,\n mul,\n split,\n sub,\n vec3,\n} from \"../dyno\";\n\nexport function staticBox({\n box,\n cells,\n dotScale,\n color,\n opacity,\n}: {\n box: THREE.Box3;\n cells: THREE.Vector3;\n dotScale: number;\n color?: THREE.Color;\n opacity?: number;\n}) {\n cells.x = Math.max(1, Math.round(cells.x));\n cells.y = Math.max(1, Math.round(cells.y));\n cells.z = Math.max(1, Math.round(cells.z));\n opacity = opacity ?? 1;\n const numSplats = cells.x * cells.y * cells.z;\n const dynoX = dynoConst(\"int\", cells.x);\n const dynoY = dynoConst(\"int\", cells.y);\n const dynoZ = dynoConst(\"int\", cells.z);\n\n const dynoTime = dynoFloat(0);\n const generator = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n const cellX = imod(index, dynoX);\n const index2 = div(index, dynoX);\n const cellY = imod(index2, dynoY);\n const cellZ = div(index2, dynoY);\n const cell = combine({\n vectorType: \"ivec3\",\n x: cellX,\n y: cellY,\n z: cellZ,\n });\n\n const intTime = floatBitsToInt(dynoTime);\n const inputs = combine({ vectorType: \"ivec2\", x: index, y: intTime });\n const random = hashVec3(inputs);\n const min = dynoConst(\"vec3\", box.min);\n const max = dynoConst(\"vec3\", box.max);\n const size = sub(max, min);\n const coord = div(add(vec3(cell), random), dynoConst(\"vec3\", cells));\n let r: DynoVal<\"float\">;\n let g: DynoVal<\"float\">;\n let b: DynoVal<\"float\">;\n if (color) {\n r = dynoConst(\"float\", color.r);\n g = dynoConst(\"float\", color.g);\n b = dynoConst(\"float\", color.b);\n } else {\n ({ r, g, b } = split(coord).outputs);\n }\n const rgba = combine({\n vectorType: \"vec4\",\n r,\n g,\n b,\n a: dynoConst(\"float\", opacity),\n });\n const center = add(min, mul(size, coord));\n const scales = vec3(dynoConst(\"float\", dotScale));\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgba,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ time }) => {\n dynoTime.value = time;\n const _updated = transformer.update(generator);\n generator.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return generator;\n}\n","import * as THREE from \"three\";\n\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n fract,\n hashVec4,\n max,\n mix,\n mod,\n mul,\n sin,\n split,\n sub,\n vec3,\n} from \"../dyno\";\nimport { dynoVec3 } from \"../dyno\";\n\n// snowBox produces Gsplat trajectories that move in a deterministic fashion over time,\n// with high similarity between adjacent frames. See examples/atmospheric/main.js\n// for an example that creates a snowBox.\n\n// A snowBox instance has a collection of properties that can be tuned to achieve\n// different particle effects. The below DEFAULT_SNOW and DEFAULT_RAIN are example\n// parameter sets that look a lot like snow and rain, and can be used as a starting\n// point for further tweaking: `const mySnow = { ...DEFAULT_SNOW, density: 500 };`\n\nexport const DEFAULT_SNOW = {\n box: new THREE.Box3(\n new THREE.Vector3(-1, -1, -1),\n new THREE.Vector3(1, 1, 1),\n ),\n density: 100,\n fallDirection: new THREE.Vector3(-1, -3, 1).normalize(),\n fallVelocity: 0.02,\n wanderScale: 0.04,\n wanderVariance: 2,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.5, 0.5, 1),\n minScale: 0.001,\n maxScale: 0.005,\n anisoScale: new THREE.Vector3(1, 1, 1),\n};\n\nexport const DEFAULT_RAIN = {\n box: new THREE.Box3(\n new THREE.Vector3(-2, -1, -2),\n new THREE.Vector3(2, 5, 2),\n ),\n density: 10,\n fallDirection: new THREE.Vector3(0, -1, 0),\n fallVelocity: 2,\n wanderScale: 0.1,\n wanderVariance: 1,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.25, 0.25, 0.5),\n minScale: 0.005,\n maxScale: 0.01,\n anisoScale: new THREE.Vector3(0.1, 1, 0.1),\n};\n\n// Calling snowBox creates a new snowBox instance and returns an object with\n// the snowBox itself as well `as` a collection of controls that can be used to\n// adjust the snowBox's properties over time:\n//\n// - snow: the SplatGenerator snowBox instance\n// - min: the vec3 uniform of the snowBox minimum position\n// - max: the vec3 uniform of the snowBox maximum position\n// - minY: the float uniform of the snowBox minimum y-coordinate\n// - color1: the vec3 uniform of the snowBox first color\n// - color2: the vec3 uniform of the snowBox second color\n// - opacity: the float uniform of the snowBox opacity\n// - fallVelocity: the float uniform of the snowBox fall velocity\n// - wanderVariance: the float uniform of the snowBox wander variance\n// - wanderScale: the float uniform of the snowBox wander scale\n// - fallDirection: the vec3 uniform of the snowBox fall direction\n// - minScale: the float uniform of the snowBox minimum scale\n// - maxScale: the float uniform of the snowBox maximum scale\n// - anisoScale: the vec3 uniform of the snowBox anisotropic scale\n\nexport function snowBox({\n // min and max box extents of the snowBox\n box,\n // minimum y-coordinate to clamp particle position, which can be used to\n // fake hitting a ground plane and lingering there for a bit\n minY,\n // number of Gsplats to generate (default: calculated from box and density)\n numSplats,\n // density of Gsplats per unit volume (default: 100)\n density,\n // The xyz anisotropic scale of the Gsplat, which can be used for example\n // to elongate rain particles (default: (1, 1, 1))\n anisoScale,\n // Minimum Gsplat particle scale (default: 0.001)\n minScale,\n // Maximum Gsplat particle scale (default: 0.005)\n maxScale,\n // The average direction of fall (default: (0, -1, 0))\n fallDirection,\n // The average speed of the fall (multiplied with fallDirection) (default: 0.02)\n fallVelocity,\n // The world scale of wandering overlay motion (default: 0.01)\n wanderScale,\n // Controls how uniformly the particles wander in sync, more variance mean\n // more randomness in the motion (default: 2)\n wanderVariance,\n // Color 1 of the two colors interpolated between (default: (1, 1, 1))\n color1,\n // Color 2 of the two colors interpolated between (default: (0.5, 0.5, 1))\n color2,\n // The base opacity of the Gsplats (default: 1)\n opacity,\n // Optional callback function to call each frame.\n onFrame,\n}: {\n box?: THREE.Box3;\n minY?: number;\n numSplats?: number;\n density?: number;\n anisoScale?: THREE.Vector3;\n minScale?: number;\n maxScale?: number;\n fallDirection?: THREE.Vector3;\n fallVelocity?: number;\n wanderScale?: number;\n wanderVariance?: number;\n color1?: THREE.Color;\n color2?: THREE.Color;\n opacity?: number;\n onFrame?: ({\n object,\n time,\n deltaTime,\n }: { object: SplatGenerator; time: number; deltaTime: number }) => void;\n}) {\n box =\n box ??\n new THREE.Box3(new THREE.Vector3(-1, -1, -1), new THREE.Vector3(1, 1, 1));\n const volume =\n (box.max.x - box.min.x) * (box.max.y - box.min.y) * (box.max.z - box.min.z);\n density = density ?? 100;\n numSplats =\n numSplats ?? Math.max(1, Math.min(1000000, Math.round(volume * density)));\n\n const dynoMinScale = dynoFloat(minScale ?? 0.001);\n const dynoMaxScale = dynoFloat(maxScale ?? 0.005);\n const dynoAnisoScale = dynoVec3(\n (anisoScale?.clone() ?? new THREE.Vector3(1, 1, 1)).normalize(),\n );\n const dynoFallDirection = dynoVec3(\n (fallDirection ?? new THREE.Vector3(0, -1, 0)).normalize(),\n );\n const dynoFallVelocity = dynoFloat(fallVelocity ?? 0.02);\n const dynoWanderScale = dynoFloat(wanderScale ?? 0.01);\n const dynoWanderVariance = dynoFloat(wanderVariance ?? 2);\n const dynoColor1 = dynoVec3(color1 ?? new THREE.Color(1, 1, 1));\n const dynoColor2 = dynoVec3(color2 ?? new THREE.Color(0.5, 0.5, 1));\n const dynoOpacity = dynoFloat(opacity ?? 1);\n\n const dynoTime = dynoFloat(0);\n const globalOffset = dynoVec3(new THREE.Vector3(0, 0, 0));\n const dynoMin = dynoVec3(box.min);\n const dynoMax = dynoVec3(box.max);\n const dynoMinY = dynoFloat(minY ?? Number.NEGATIVE_INFINITY);\n const minMax = sub(dynoMax, dynoMin);\n const snow = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index not defined\");\n }\n const random = hashVec4(index);\n const randomW = split(random).outputs.w;\n let position = vec3(random);\n\n let size = fract(mul(randomW, dynoConst(\"float\", 100)));\n size = sin(mul(dynoLiteral(\"float\", \"PI\"), size));\n size = add(dynoMinScale, mul(size, sub(dynoMaxScale, dynoMinScale)));\n const scales = mul(size, dynoAnisoScale);\n\n const intensity = fract(mul(randomW, dynoConst(\"float\", 10)));\n const hue = fract(randomW);\n const color = mix(dynoColor1, dynoColor2, hue);\n const rgb = mul(color, intensity);\n\n const random2 = hashVec4(\n combine({\n vectorType: \"ivec2\",\n x: index,\n y: dynoConst(\"int\", 0x1ab5),\n }),\n );\n let perturb = vec3(random2);\n let timeOffset = mul(split(random2).outputs.w, dynoWanderVariance);\n timeOffset = add(dynoTime, timeOffset);\n\n position = add(position, globalOffset);\n const modulo = mod(\n position,\n dynoConst(\"vec3\", new THREE.Vector3(1, 1, 1)),\n );\n position = add(dynoMin, mul(minMax, modulo));\n\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n\n perturb = sin(add(vec3(timeOffset), perturb));\n perturb = mul(perturb, dynoWanderScale);\n let center = add(position, perturb);\n\n let centerY = split(center).outputs.y;\n centerY = max(dynoMinY, centerY);\n center = combine({ vector: center, y: centerY });\n\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgb,\n opacity: dynoOpacity,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ object, time, deltaTime }) => {\n dynoTime.value = time;\n const _updated = transformer.update(snow);\n\n const fallDelta = dynoFallDirection.value\n .clone()\n .multiplyScalar(dynoFallVelocity.value * deltaTime);\n globalOffset.value.add(fallDelta);\n\n // Enable/disable splats based on opacity\n object.visible = dynoOpacity.value > 0;\n\n onFrame?.({ object, time, deltaTime });\n snow.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return {\n snow,\n min: dynoMin,\n max: dynoMax,\n minY: dynoMinY,\n color1: dynoColor1,\n color2: dynoColor2,\n opacity: dynoOpacity,\n fallVelocity: dynoFallVelocity,\n wanderVariance: dynoWanderVariance,\n wanderScale: dynoWanderScale,\n fallDirection: dynoFallDirection,\n minScale: dynoMinScale,\n maxScale: dynoMaxScale,\n anisoScale: dynoAnisoScale,\n };\n}\n\nexport type SNOW_RESULT_TYPE = ReturnType;\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n Gsplat,\n add,\n combineGsplat,\n dot,\n dynoBlock,\n dynoConst,\n greaterThanEqual,\n gsplatNormal,\n mul,\n neg,\n select,\n splitGsplat,\n} from \"../dyno\";\n\nexport function makeNormalColorModifier(splatToView: SplatTransformer) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let normal = gsplatNormal(gsplat);\n\n const viewGsplat = splatToView.applyGsplat(gsplat);\n const viewCenter = splitGsplat(viewGsplat).outputs.center;\n const viewNormal = gsplatNormal(viewGsplat);\n const splatDot = dot(viewCenter, viewNormal);\n\n const sameDir = greaterThanEqual(splatDot, dynoConst(\"float\", 0));\n normal = select(sameDir, neg(normal), normal);\n const rgb = add(\n mul(normal, dynoConst(\"float\", 0.5)),\n dynoConst(\"float\", 0.5),\n );\n\n gsplat = combineGsplat({ gsplat, rgb });\n return { gsplat };\n });\n}\n\nexport function setWorldNormalColor(splats: SplatMesh) {\n splats.enableWorldToView = true;\n splats.worldModifier = makeNormalColorModifier(splats.context.worldToView);\n splats.updateGenerator();\n}\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n type DynoVal,\n Gsplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n neg,\n normalizedDepth,\n select,\n split,\n splitGsplat,\n sub,\n} from \"../dyno\";\n\nexport function makeDepthColorModifier(\n splatToView: SplatTransformer,\n minDepth: DynoVal<\"float\">,\n maxDepth: DynoVal<\"float\">,\n reverse: DynoVal<\"bool\">,\n) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let { center } = splitGsplat(gsplat).outputs;\n center = splatToView.apply(center);\n const { z } = split(center).outputs;\n let depth = normalizedDepth(neg(z), minDepth, maxDepth);\n depth = select(reverse, sub(dynoConst(\"float\", 1), depth), depth);\n\n gsplat = combineGsplat({ gsplat, r: depth, g: depth, b: depth });\n return { gsplat };\n });\n}\n\nexport function setDepthColor(\n splats: SplatMesh,\n minDepth: number,\n maxDepth: number,\n reverse?: boolean,\n) {\n splats.enableWorldToView = true;\n const dynoMinDepth = dynoConst(\"float\", minDepth);\n const dynoMaxDepth = dynoConst(\"float\", maxDepth);\n const dynoReverse = dynoConst(\"bool\", reverse ?? false);\n splats.worldModifier = makeDepthColorModifier(\n splats.context.worldToView,\n dynoMinDepth,\n dynoMaxDepth,\n dynoReverse,\n );\n splats.updateGenerator();\n return {\n minDepth: dynoMinDepth,\n maxDepth: dynoMaxDepth,\n reverse: dynoReverse,\n };\n}\n","import * as THREE from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport interface SparkXrOptions {\n renderer: THREE.WebGLRenderer;\n // Element to attach enter/exit click handler to\n element?: HTMLElement;\n // ID of element to attach enter/exit click handler to\n elementId?: string;\n // Create a button to enter/exit XR\n // Optionally provide button text or HTML\n // Default is true - create a button\n button?: boolean | SparkXrButton;\n // Blur out element when mouse leaves it\n // Default is 0.5 - 50% opacity\n onMouseLeaveOpacity?: number;\n // Default is \"vrar\" - Try VR then AR\n mode?: \"vr\" | \"ar\" | \"arvr\" | \"vrar\";\n // fixedFoveation: XrManager.setFoveation(...)\n fixedFoveation?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRWebGLLayer/XRWebGLLayer#framebufferscalefactor\n // Default is 0.5 - 50% resolution for better frame rate\n frameBufferScaleFactor?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpace#reference_space_types\n // Defaults is \"local\" - origin is the user's position when starting XR session\n referenceSpaceType?: \"local\" | \"local-floor\" | \"unbounded\" | \"viewer\";\n // Enable hand tracking\n // Default is false\n enableHands?: boolean;\n // Allow WebXR entry on mobile phones that expose navigator.xr\n // Defaults to false - blocks phones to avoid unusable split-screen modes\n allowMobileXr?: boolean;\n // Session init options\n // Default is empty - no additional options\n sessionInit?: XRSessionInit;\n // Callback function called when SparkXr is ready\n // Default is undefined - no callback\n onReady?: (supported: boolean) => void | Promise;\n // Callback function called when entering XR\n // Default is undefined - no callback\n onEnterXr?: () => void | Promise;\n // Callback function called when exiting XR\n // Default is undefined - no callback\n onExitXr?: () => void | Promise;\n // ztroller movement and rotation options\n controllers?: SparkXrControllers;\n}\n\nexport interface SparkXrButton {\n enterXrHtml?: string;\n exitXrHtml?: string;\n enterVrHtml?: string;\n exitVrHtml?: string;\n enterArHtml?: string;\n exitArHtml?: string;\n enterXrText?: string;\n exitXrText?: string;\n enterVrText?: string;\n exitVrText?: string;\n enterArText?: string;\n exitArText?: string;\n style?: CSSStyleDeclaration;\n enterStyle?: CSSStyleDeclaration;\n exitStyle?: CSSStyleDeclaration;\n zIndex?: number;\n}\n\nexport type XrGamepads = {\n left?: Gamepad;\n right?: Gamepad;\n leftIsHand?: boolean;\n rightIsHand?: boolean;\n};\n\nexport interface SparkXrControllers {\n moveSpeed?: number;\n rotateSpeed?: number;\n rollSpeed?: number;\n fastMultiplier?: number;\n slowMultiplier?: number;\n moveHeading?: boolean;\n moveDirection?: boolean;\n getMove?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getRotate?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getFast?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n getSlow?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n}\n\nexport const DEFAULT_CONTROLLER_MOVE_SPEED = 1.0;\nexport const DEFAULT_CONTROLLER_ROTATE_SPEED = 4.0;\nexport const DEFAULT_CONTROLLER_ROLL_SPEED = 2.0;\nexport const DEFAULT_CONTROLLER_FAST_MULTIPLIER = 5;\nexport const DEFAULT_CONTROLLER_SLOW_MULTIPLIER = 1 / 5;\nexport const DEFAULT_CONTROLLER_MOVE_HEADING = false;\n\nexport const DEFAULT_CONTROLLER_GETMOVE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.leftIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(\n gamepads.left?.axes[2] ?? 0,\n (gamepads.left?.buttons[0].value ?? 0) -\n (gamepads.left?.buttons[1].value ?? 0),\n gamepads.left?.axes[3] ?? 0,\n );\nexport const DEFAULT_CONTROLLER_GETROTATE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(gamepads.right?.axes[2] ?? 0, 0, 0);\nexport const DEFAULT_CONTROLLER_GETFAST = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[0]?.pressed ?? false);\nexport const DEFAULT_CONTROLLER_GETSLOW = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[1]?.pressed ?? false);\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.015,\n t1: 0.012,\n t2: 0.0105,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nconst XR_HEADSET_HINTS =\n /Quest|OculusBrowser|VisionOS|XRBrowser|Pico|Lynx|MagicLeap/i;\n\nfunction isLikelyMobilePhone() {\n const ua = navigator.userAgent ?? \"\";\n if (XR_HEADSET_HINTS.test(ua)) {\n return false;\n }\n\n const androidMobile = /Android/i.test(ua) || /Mobile/i.test(ua);\n if (androidMobile) {\n return true;\n }\n\n const uaData = (\n navigator as Navigator & {\n userAgentData?: { mobile?: boolean };\n }\n ).userAgentData;\n if (uaData && typeof uaData.mobile === \"boolean\") {\n return uaData.mobile;\n }\n\n return false;\n}\n\nexport type Joint = {\n position: THREE.Vector3;\n quaternion: THREE.Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\n\nexport class SparkXr {\n renderer: THREE.WebGLRenderer;\n xr?: XRSystem;\n element?: HTMLElement;\n button?: SparkXrButton;\n mode: XRSessionMode | \"initializing\" | \"not_supported\";\n sessionInit?: XRSessionInit;\n session?: XRSession;\n onEnterXr?: () => void;\n onExitXr?: () => void;\n\n controllers?: SparkXrControllers;\n lastControllersUpdate = 0;\n\n enableHands: boolean;\n hands: XrHand[] = [];\n\n constructor(options: SparkXrOptions) {\n this.renderer = options.renderer;\n this.xr = navigator.xr;\n this.mode = \"initializing\";\n this.onEnterXr = options.onEnterXr;\n this.onExitXr = options.onExitXr;\n this.enableHands = options.enableHands ?? false;\n this.controllers = options.controllers;\n\n Promise.resolve()\n .then(() => {\n if (!this.xr) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (!options.allowMobileXr && isLikelyMobilePhone()) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (this.enableHands) {\n this.hands = [new XrHand(Hand.left), new XrHand(Hand.right)];\n }\n\n let element: HTMLElement | undefined = undefined;\n let button: SparkXrButton | undefined = undefined;\n if (options.element) {\n element = options.element;\n } else if (options.elementId) {\n element = document.getElementById(options.elementId) ?? undefined;\n } else {\n element = SparkXr.createButton();\n button =\n options.button == null || typeof options.button === \"boolean\"\n ? {}\n : options.button;\n }\n\n if (!element) {\n throw new Error(\"No element or button provided\");\n }\n\n element.style.display = \"none\";\n element.classList.add(\"hidden\");\n this.button = button;\n this.element = element;\n\n const opacity = options.onMouseLeaveOpacity?.toString();\n if (opacity !== undefined) {\n element.addEventListener(\"mouseleave\", () => {\n element.style.opacity = opacity;\n });\n element.addEventListener(\"mouseenter\", () => {\n element.style.opacity = \"\";\n });\n }\n\n return this.initializeXr(options);\n })\n .then(() => {\n return options.onReady?.(this.mode !== \"not_supported\");\n })\n .catch((error) => {\n alert(`Error initializing SparkXr: ${error}`);\n });\n }\n\n private async initializeXr(options: SparkXrOptions) {\n if (!this.xr || !this.element) {\n return;\n }\n const element = this.element;\n\n const modes = {\n vr: [\"immersive-vr\"],\n ar: [\"immersive-ar\"],\n arvr: [\"immersive-ar\", \"immersive-vr\"],\n vrar: [\"immersive-vr\", \"immersive-ar\"],\n }[options.mode ?? \"vrar\"] as XRSessionMode[] | undefined;\n if (!modes) {\n throw new Error(`Invalid mode: ${options.mode}`);\n }\n\n let supported = null;\n for (const mode of modes) {\n if (await this.xr.isSessionSupported(mode)) {\n supported = mode;\n break;\n }\n }\n\n if (!supported) {\n this.mode = \"not_supported\";\n return;\n }\n this.mode = supported;\n\n const referenceSpaceType = options.referenceSpaceType ?? \"local\";\n\n this.renderer.xr.enabled = true;\n this.renderer.xr.setReferenceSpaceType(referenceSpaceType);\n\n if (options.fixedFoveation !== undefined) {\n this.renderer.xr.setFoveation(options.fixedFoveation);\n }\n const frameBufferScaleFactor = options.frameBufferScaleFactor ?? 0.5;\n this.renderer.xr.setFramebufferScaleFactor(frameBufferScaleFactor);\n\n const optionalFeatures = options.sessionInit?.optionalFeatures ?? [];\n if (options.enableHands) {\n optionalFeatures.push(\"hand-tracking\");\n }\n\n const requiredFeatures = options.sessionInit?.requiredFeatures ?? [];\n requiredFeatures.push(referenceSpaceType);\n\n this.sessionInit = {\n ...options.sessionInit,\n optionalFeatures,\n requiredFeatures,\n };\n // console.log(\"* this.sessionInit\", this.sessionInit);\n\n element.addEventListener(\"click\", () => {\n this.toggleXr();\n });\n\n this.updateElement();\n }\n\n async toggleXr() {\n if (!this.xr || !this.sessionInit) {\n // console.log(\"* !this.xr || !this.sessionInit\");\n return;\n }\n\n if (!this.session) {\n try {\n const mode = this.mode as XRSessionMode;\n const session = await this.xr.requestSession(mode, this.sessionInit);\n this.session = session;\n // console.log(\"* this.session\", this.session);\n\n const onSessionEnded = () => {\n session?.removeEventListener(\"end\", onSessionEnded);\n session?.removeEventListener(\"visibilitychange\", visibilityChanged);\n this.session = undefined;\n\n this.updateElement();\n this.onExitXr?.();\n };\n\n let lastVisibilityState = session.visibilityState;\n const visibilityChanged = () => {\n if (\n session?.visibilityState === \"visible-blurred\" &&\n lastVisibilityState === \"visible\"\n ) {\n session?.end();\n }\n lastVisibilityState = session?.visibilityState;\n };\n\n this.session?.addEventListener(\"end\", onSessionEnded);\n this.session?.addEventListener(\"visibilitychange\", visibilityChanged);\n\n await this.renderer.xr.setSession(this.session);\n // console.log(\"* setSession\");\n\n return this.onEnterXr?.();\n } catch (error) {\n console.error(\"Error requesting XR session\", error);\n return;\n }\n } else {\n this.session.end();\n // console.log(\"* end session\");\n }\n }\n\n private updateElement() {\n const mode = this.mode as XRSessionMode;\n const element = this.element;\n if (element) {\n element.style.display = \"\";\n element.classList.remove(\"hidden\");\n\n const button = typeof this.button === \"boolean\" ? {} : this.button;\n if (button) {\n if (!this.session) {\n const enterHtml =\n (mode === \"immersive-vr\"\n ? button.enterVrHtml\n : button.enterArHtml) ?? button.enterXrHtml;\n const enterText =\n (mode === \"immersive-vr\"\n ? button.enterVrText\n : button.enterArText) ?? button.enterXrText;\n if (enterHtml) {\n element.innerHTML = enterHtml;\n } else if (enterText) {\n element.textContent = enterText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"ENTER VR\" : \"ENTER AR\";\n }\n } else {\n const exitHtml =\n (mode === \"immersive-vr\" ? button.exitVrHtml : button.exitArHtml) ??\n button.exitXrHtml;\n const exitText =\n (mode === \"immersive-vr\" ? button.exitVrText : button.exitArText) ??\n button.exitXrText;\n if (exitHtml) {\n element.innerHTML = exitHtml;\n } else if (exitText) {\n element.textContent = exitText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"EXIT VR\" : \"EXIT AR\";\n }\n }\n\n element.style.display = \"\";\n }\n }\n }\n\n private static createButton() {\n const button = document.createElement(\"button\");\n Object.assign(button.style, {\n position: \"absolute\",\n bottom: \"20px\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n padding: \"40px 40px\",\n border: \"2px solid #fff\",\n borderRadius: \"16px\",\n background: \"rgba(0,0,0,0.1)\",\n color: \"#fff\",\n font: \"bold 28px sans-serif\",\n textAlign: \"center\",\n userSelect: \"none\",\n zIndex: \"999\",\n });\n document.body.appendChild(button);\n return button;\n }\n\n xrSupported() {\n return !!this.xr;\n }\n\n static JointEnum = JointEnum;\n static JOINT_IDS = JOINT_IDS;\n static NUM_JOINTS = NUM_JOINTS;\n static JOINT_INDEX = JOINT_INDEX;\n static JOINT_RADIUS = JOINT_RADIUS;\n static JOINT_SEGMENTS = JOINT_SEGMENTS;\n static JOINT_SEGMENT_STEPS = JOINT_SEGMENT_STEPS;\n static JOINT_TIPS = JOINT_TIPS;\n static FINGER_TIPS = FINGER_TIPS;\n static Hand = Hand;\n static HANDS = HANDS;\n\n left() {\n return this.hands[0];\n }\n\n right() {\n return this.hands[1];\n }\n\n updateControllers(camera: THREE.Camera) {\n const cameraFrame = camera.parent as THREE.Group;\n\n const now = performance.now();\n const deltaTime = (now - (this.lastControllersUpdate || now)) / 1000;\n this.lastControllersUpdate = now;\n\n const xrGamepads: XrGamepads = {};\n for (const source of this.renderer.xr.getSession()?.inputSources ?? []) {\n const gamepad = source.gamepad;\n if (\n gamepad &&\n (source.handedness === \"left\" || source.handedness === \"right\")\n ) {\n xrGamepads[source.handedness] = gamepad;\n if (source.handedness === \"left\") {\n xrGamepads.leftIsHand = !!source.hand;\n } else if (source.handedness === \"right\") {\n xrGamepads.rightIsHand = !!source.hand;\n }\n }\n }\n\n const rotate = (\n this.controllers?.getRotate ?? DEFAULT_CONTROLLER_GETROTATE\n )(xrGamepads, this);\n rotate.multiply(\n new THREE.Vector3(\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rollSpeed ?? DEFAULT_CONTROLLER_ROLL_SPEED,\n ),\n );\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler(-rotate.y, -rotate.x, rotate.z, \"YXZ\");\n const quat = new THREE.Quaternion().setFromEuler(eulers);\n\n const pivot = camera.getWorldPosition(new THREE.Vector3());\n cameraFrame.parent?.worldToLocal(pivot);\n\n cameraFrame.position.sub(pivot);\n cameraFrame.position.applyQuaternion(quat);\n cameraFrame.position.add(pivot);\n cameraFrame.quaternion.premultiply(quat);\n }\n\n const move = (this.controllers?.getMove ?? DEFAULT_CONTROLLER_GETMOVE)(\n xrGamepads,\n this,\n );\n\n let moveSpeed =\n this.controllers?.moveSpeed ?? DEFAULT_CONTROLLER_MOVE_SPEED;\n if (\n (this.controllers?.getFast ?? DEFAULT_CONTROLLER_GETFAST)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_FAST_MULTIPLIER;\n }\n if (\n (this.controllers?.getSlow ?? DEFAULT_CONTROLLER_GETSLOW)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_SLOW_MULTIPLIER;\n }\n\n if (this.controllers?.moveHeading) {\n move.applyQuaternion(camera.quaternion);\n } else if (this.controllers?.moveDirection) {\n SCRATCH_EULER.setFromQuaternion(camera.quaternion, \"YXZ\");\n SCRATCH_EULER.x = 0;\n SCRATCH_EULER.z = 0;\n SCRATCH_QUAT_A.setFromEuler(SCRATCH_EULER);\n move.applyQuaternion(SCRATCH_QUAT_A);\n }\n move.applyQuaternion(cameraFrame.quaternion);\n\n move.multiplyScalar(deltaTime * moveSpeed);\n cameraFrame.position.add(move);\n }\n\n updateHands({ xrFrame }: { xrFrame: XRFrame }) {\n const xrSession = this.renderer.xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = this.renderer.xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n for (const hand of this.hands) {\n if (hand) {\n hand.lastJoints = hand.joints;\n hand.joints = undefined;\n }\n }\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n const hand = inputSource.handedness as Hand;\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n if (!xrHand) {\n continue;\n }\n\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n\n if (!xrHand.joints) {\n xrHand.joints = {};\n }\n xrHand.joints[jointId] = {\n position: new THREE.Vector3(position.x, position.y, position.z),\n quaternion: new THREE.Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: JOINT_RADIUS[jointId],\n };\n }\n }\n }\n }\n }\n\n makeJointSplats(hand: Hand): JointSplats {\n const mesh = new JointSplats(hand);\n mesh.onFrame = () => {\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n const joints = xrHand?.joints;\n mesh.updateJoints(joints);\n };\n return mesh;\n }\n\n snapshotHands(time: number) {\n const hands = [\n this.hands[0]?.snapshotJoints(),\n this.hands[1]?.snapshotJoints(),\n ];\n return { time, hands };\n }\n}\n\ntype JointSnapshot = { pos: number[]; quat: number[]; radius: number };\ntype HandSnapshot = { [key in JointId]?: JointSnapshot };\ntype HandsSnapshot = {\n time: number;\n hands: (HandSnapshot | undefined)[];\n};\n\nconst round4 = (value: number) => Math.round(value * 10000) / 10000;\nconst SCRATCH_EULER = new THREE.Euler(0, 0, 0, \"YXZ\");\nconst SCRATCH_QUAT_A = new THREE.Quaternion();\nconst SCRATCH_QUAT_B = new THREE.Quaternion();\n\nexport function lerpHandsSnapshots(\n snapshots: HandsSnapshot[],\n time: number,\n): HandsSnapshot | null {\n if (!snapshots.length) {\n return null;\n }\n\n const first = snapshots[0];\n const last = snapshots[snapshots.length - 1];\n\n if (time < first.time || time > last.time) {\n return null;\n }\n\n const floorIndex = findSnapshotFloorIndex(snapshots, time);\n if (floorIndex === -1) {\n return null;\n }\n\n const from = snapshots[floorIndex];\n const to = snapshots[floorIndex + 1];\n if (!to) {\n return cloneSnapshot(from, time);\n }\n\n const span = to.time - from.time;\n const factor = span > 0 ? (time - from.time) / span : 0;\n\n return interpolateSnapshots(from, to, factor, time);\n}\n\nfunction interpolateSnapshots(\n from: HandsSnapshot,\n to: HandsSnapshot,\n factor: number,\n time: number,\n): HandsSnapshot {\n const maxHands = Math.max(from.hands.length, to.hands.length);\n const hands = Array.from({ length: maxHands }, (_, handIndex) =>\n lerpHandSnapshot(from.hands[handIndex], to.hands[handIndex], factor),\n );\n return { time, hands };\n}\n\nfunction cloneSnapshot(snapshot: HandsSnapshot, time: number): HandsSnapshot {\n return {\n time,\n hands: snapshot.hands.map((hand) => cloneHandSnapshot(hand)),\n };\n}\n\nexport class XrHand {\n hand: Hand;\n joints?: HandJoints;\n lastJoints?: HandJoints;\n\n constructor(hand: Hand) {\n this.hand = hand;\n }\n\n static newFromSnapshot(hand: Hand, snapshot: HandSnapshot) {\n const h = new XrHand(hand);\n h.joints = {};\n for (const jointId of JOINT_IDS) {\n const joint = snapshot[jointId];\n if (!joint) {\n continue;\n }\n h.joints[jointId] = {\n position: new THREE.Vector3(joint.pos[0], joint.pos[1], joint.pos[2]),\n quaternion: new THREE.Quaternion(\n joint.quat[0],\n joint.quat[1],\n joint.quat[2],\n joint.quat[3],\n ),\n radius: joint.radius,\n };\n }\n return h;\n }\n\n valid() {\n return !!this.joints;\n }\n\n snapshotJoints() {\n if (!this.joints) {\n return undefined;\n }\n\n const snapshot: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (!joint) {\n continue;\n }\n snapshot[jointId] = {\n pos: joint.position.toArray().map(round4),\n quat: joint.quaternion.toArray().map(round4),\n radius: round4(joint.radius),\n };\n }\n return snapshot;\n }\n\n toFlatArray() {\n if (!this.joints) {\n return undefined;\n }\n const array = new Float32Array(1 + 25 * 7);\n array[0] = this.hand === Hand.left ? 0 : 1;\n let index = 1;\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (joint) {\n array[index] = joint.position.x;\n array[index + 1] = joint.position.y;\n array[index + 2] = joint.position.z;\n array[index + 3] = joint.quaternion.x;\n array[index + 4] = joint.quaternion.y;\n array[index + 5] = joint.quaternion.z;\n array[index + 6] = joint.quaternion.w;\n }\n index += 7;\n }\n return array;\n }\n}\n\nfunction findSnapshotFloorIndex(snapshots: HandsSnapshot[], time: number) {\n let low = 0;\n let high = snapshots.length - 1;\n while (low <= high) {\n const mid = (low + high) >> 1;\n if (snapshots[mid].time <= time) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n return high;\n}\n\nfunction lerpHandSnapshot(\n fromHand?: HandSnapshot,\n toHand?: HandSnapshot,\n factor = 0,\n) {\n if (!fromHand || !toHand) {\n return undefined;\n }\n const hand: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = lerpJointSnapshot(fromHand[jointId], toHand[jointId], factor);\n if (joint) {\n hand[jointId] = joint;\n }\n }\n return hand;\n}\n\nfunction lerpJointSnapshot(\n fromJoint?: JointSnapshot,\n toJoint?: JointSnapshot,\n factor = 0,\n) {\n if (!fromJoint || !toJoint) {\n return undefined;\n }\n const pos = fromJoint.pos.map(\n (value, index) => value + (toJoint.pos[index] - value) * factor,\n );\n const quat = SCRATCH_QUAT_A.fromArray(fromJoint.quat)\n .slerp(SCRATCH_QUAT_B.fromArray(toJoint.quat), factor)\n .toArray();\n const radius =\n fromJoint.radius + (toJoint.radius - fromJoint.radius) * factor;\n\n return { pos, quat, radius };\n}\n\nfunction cloneHandSnapshot(hand?: HandSnapshot) {\n if (!hand) {\n return undefined;\n }\n const clone: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = hand[jointId];\n if (joint) {\n clone[jointId] = cloneJointSnapshot(joint);\n }\n }\n return clone;\n}\n\nfunction cloneJointSnapshot(joint: JointSnapshot): JointSnapshot {\n return {\n pos: [...joint.pos],\n quat: [...joint.quat],\n radius: joint.radius,\n };\n}\n\nexport class JointSplats extends SplatMesh {\n hand: Hand;\n\n constructor(hand: Hand) {\n super({});\n this.hand = hand;\n }\n\n private scratchCenter = new THREE.Vector3();\n private scratchQuat = new THREE.Quaternion(0, 0, 0, 1);\n private scratchScales = new THREE.Vector3().setScalar(0.01);\n private scratchColor = new THREE.Color(1, 1, 1);\n\n updateJoints(joints?: HandJoints) {\n this.visible = false;\n\n if (!joints || !this.packedSplats) {\n return;\n }\n\n this.visible = true;\n let splatIndex = 0;\n\n for (const jointId of JOINT_IDS) {\n const joint = joints[jointId];\n if (!joint) {\n continue;\n }\n this.scratchCenter.copy(joint.position);\n this.scratchQuat.copy(joint.quaternion);\n this.scratchScales.set(\n joint.radius,\n 0.75 * joint.radius,\n 1.5 * joint.radius,\n );\n // this.scratchColor.set((joint.radius * 123) % 1, (joint.radius * 345) % 1, (joint.radius * 234) % 1);\n const opacity = 0.75;\n\n this.packedSplats.setSplat(\n splatIndex,\n this.scratchCenter,\n this.scratchScales,\n this.scratchQuat,\n opacity,\n this.scratchColor,\n );\n splatIndex += 1;\n }\n\n this.packedSplats.numSplats = splatIndex;\n this.packedSplats.needsUpdate = true;\n this.numSplats = splatIndex;\n this.updateVersion();\n }\n}\n","import {\n Color,\n Matrix4,\n type Object3D,\n Quaternion,\n Vector3,\n type WebXRManager,\n} from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\n// Experimental WebXR hand tracking and movement\n\nconst DEFAULT_MOVE_INERTIA = 0.5;\nconst DEFAULT_ROTATE_INERTIA = 0.5;\nconst TOUCH_BIAS = 0.0;\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.02,\n t1: 0.014,\n t2: 0.0115,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nexport type Joint = {\n position: Vector3;\n quaternion: Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\nexport type HandsJoints = { [key in Hand]?: HandJoints };\n\nexport class XrHands {\n hands: HandsJoints = {};\n last: HandsJoints = {};\n\n values: Record = {};\n tests: Record = {};\n lastTests: Record = {};\n\n updated = false;\n\n update({ xr, xrFrame }: { xr: WebXRManager; xrFrame: XRFrame }) {\n const xrSession = xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n this.last = this.hands;\n this.lastTests = this.tests;\n\n this.hands = {};\n this.values = {};\n this.tests = {};\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n\n const hand = inputSource.handedness as Hand;\n this.hands[hand] = {};\n\n // Iterate over JointId\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n this.hands[hand][jointId] = {\n position: new Vector3(position.x, position.y, position.z),\n quaternion: new Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: jointPose.radius || 0.001,\n };\n }\n }\n }\n }\n\n for (const hand of HANDS) {\n for (const { key, value } of [\n { key: `${hand}AllTips`, value: this.allTipsTouching(hand) },\n {\n key: `${hand}IndexThumb`,\n value: this.touching(hand, \"i4\", hand, \"t3\"),\n },\n {\n key: `${hand}MiddleThumb`,\n value: this.touching(hand, \"m4\", hand, \"t3\"),\n },\n {\n key: `${hand}RingThumb`,\n value: this.touching(hand, \"r4\", hand, \"t3\"),\n },\n {\n key: `${hand}PinkyThumb`,\n value: this.touching(hand, \"p4\", hand, \"t3\"),\n },\n { key: `${hand}TriTips`, value: this.triTipsTouching(hand) },\n ]) {\n this.values[key] = value;\n this.tests[key] =\n value === 1.0\n ? true\n : value === 0.0\n ? false\n : (this.lastTests[key] ?? false);\n }\n }\n }\n\n makeGhostMesh(): SplatMesh {\n const center = new Vector3();\n const scales = new Vector3(0.01, 0.01, 0.01);\n const quaternion = new Quaternion(0, 0, 0, 1);\n const color = new Color(1, 1, 1);\n const CYCLE = Math.PI * 3;\n const WHITE = new Color(1, 1, 1);\n let opacity = 1.0;\n\n const mesh = new SplatMesh({\n onFrame: () => {\n if (!mesh.packedSplats) {\n return;\n }\n let splatIndex = 0;\n for (const handedness of HANDS) {\n const xrHand = this.hands[handedness];\n for (const [index, segment] of JOINT_SEGMENTS.entries()) {\n for (let i = 1; i < segment.length; ++i) {\n const segmentSplats = JOINT_SEGMENT_STEPS[index][i - 1] * 2;\n const lastSegment = i + 1 === segment.length;\n const jointA = xrHand?.[segment[i - 1]];\n const jointB = xrHand?.[segment[i]];\n\n for (let j = 0; j < segmentSplats; ++j) {\n const t = (j + 0.5) / segmentSplats;\n opacity = 0.0;\n if (jointA && jointB) {\n center.copy(jointA.position).lerp(jointB.position, t);\n quaternion\n .copy(jointA.quaternion)\n .slerp(jointB.quaternion, t);\n const radiusA = JOINT_RADIUS[segment[i - 1]];\n const radiusB = JOINT_RADIUS[segment[i]];\n let radius = (1 - t) * radiusA + t * radiusB;\n if (lastSegment && t > 0.8) {\n // Round out finger tips\n radius *= Math.sqrt(1 - ((t - 0.8) / 0.2) ** 2);\n }\n scales.set(0.65 * radius, 0.5 * radius, 0.003);\n color.set(\n 0.55 + 0.45 * Math.sin(center.x * CYCLE),\n 0.55 + 0.45 * Math.sin(center.y * CYCLE),\n 0.55 + 0.45 * Math.sin(center.z * CYCLE),\n );\n if (handedness === \"right\") {\n color.set(1 - color.r, 1 - color.g, 1 - color.b);\n }\n opacity = 0.75;\n }\n mesh.packedSplats.setSplat(\n splatIndex,\n center,\n scales,\n quaternion,\n opacity,\n color,\n );\n splatIndex += 1;\n }\n }\n }\n }\n mesh.packedSplats.numSplats = splatIndex;\n mesh.packedSplats.needsUpdate = true;\n mesh.numSplats = splatIndex;\n mesh.updateVersion();\n },\n });\n return mesh;\n }\n\n distance(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const hA = last ? this.last[handA] : this.hands[handA];\n const hB = last ? this.last[handB] : this.hands[handB];\n const jA = hA?.[jointA];\n const jB = hB?.[jointB];\n if (!jA || !jB) {\n return Number.POSITIVE_INFINITY;\n }\n return jA.position.distanceTo(jB.position);\n }\n\n separation(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.distance(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return d - JOINT_RADIUS[jointA] - JOINT_RADIUS[jointB];\n }\n\n touching(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.separation(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return 1 - Math.max(0, Math.min(1, d / 0.01 - TOUCH_BIAS));\n }\n\n allTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"r4\", last),\n this.touching(hand, \"r4\", hand, \"p4\", last),\n // this.touching(hand, \"p4\", hand, \"t3\", last),\n );\n }\n\n triTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"t3\", last),\n );\n }\n}\n\nexport class HandMovement {\n xrHands: XrHands;\n control: Object3D;\n moveInertia: number;\n rotateInertia: number;\n\n lastGrip: { [key in Hand]?: Vector3 } = {};\n lastPivot: Vector3 = new Vector3();\n rotateVelocity = 0;\n velocity: Vector3 = new Vector3();\n\n constructor({\n xrHands,\n control,\n moveInertia,\n rotateInertia,\n }: {\n xrHands: XrHands;\n control: Object3D;\n moveInertia?: number;\n rotateInertia?: number;\n }) {\n this.xrHands = xrHands;\n this.control = control;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n }\n\n update(deltaTime: number) {\n const grip: { [key in Hand]?: Vector3 } = {};\n for (const handedness of HANDS) {\n const hand = this.xrHands.hands[handedness];\n if (hand && this.xrHands.tests[`${handedness}MiddleThumb`]) {\n grip[handedness] = new Vector3()\n .add(hand.t3?.position ?? new Vector3())\n .add(hand.i4?.position ?? new Vector3())\n .add(hand.m4?.position ?? new Vector3())\n .add(hand.r4?.position ?? new Vector3())\n .add(hand.p4?.position ?? new Vector3())\n .multiplyScalar(1 / 5);\n }\n }\n\n if (grip.left && grip.right && this.lastGrip.left && this.lastGrip.right) {\n const mid = grip.left.clone().add(grip.right).multiplyScalar(0.5);\n const lastMid = this.lastGrip.left\n .clone()\n .add(this.lastGrip.right)\n .multiplyScalar(0.5);\n this.lastPivot = mid;\n\n const delta = mid.clone().applyMatrix4(this.control.matrix);\n delta.sub(lastMid.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n\n const angle = Math.atan2(grip.left.z - mid.z, grip.left.x - mid.x);\n const lastAngle = Math.atan2(\n this.lastGrip.left.z - lastMid.z,\n this.lastGrip.left.x - lastMid.x,\n );\n // Find closest rotation over circle between angle and lastAngle\n let closestAngle = angle - lastAngle;\n if (closestAngle > Math.PI) {\n closestAngle -= Math.PI * 2;\n } else if (closestAngle < -Math.PI) {\n closestAngle += Math.PI * 2;\n }\n const rotateVelocity = closestAngle / deltaTime;\n\n const blend = Math.exp(-20 * deltaTime);\n this.rotateVelocity =\n this.rotateVelocity * blend + rotateVelocity * (1 - blend);\n } else {\n this.rotateVelocity *= Math.exp(-deltaTime / this.rotateInertia);\n\n if (grip.left && this.lastGrip.left) {\n const delta = grip.left.clone().applyMatrix4(this.control.matrix);\n delta.sub(this.lastGrip.left.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else if (grip.right && this.lastGrip.right) {\n const delta = grip.right.clone().applyMatrix4(this.control.matrix);\n delta.sub(\n this.lastGrip.right.clone().applyMatrix4(this.control.matrix),\n );\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else {\n this.velocity.multiplyScalar(Math.exp(-deltaTime / this.moveInertia));\n }\n }\n\n const negPivot = this.lastPivot.clone().negate();\n const rotate = new Matrix4()\n .makeTranslation(negPivot)\n .premultiply(new Matrix4().makeRotationY(this.rotateVelocity * deltaTime))\n .premultiply(new Matrix4().makeTranslation(this.lastPivot));\n this.control.matrix.multiply(rotate);\n this.control.matrix.decompose(\n this.control.position,\n this.control.quaternion,\n this.control.scale,\n );\n this.control.updateMatrixWorld(true);\n\n this.control.position.sub(this.velocity.clone().multiplyScalar(deltaTime));\n this.lastGrip = grip;\n }\n}\n","import * as THREE from \"three\";\nimport { isAndroid, isIos } from \"./utils\";\n\n// Spark controls for keyboard + mouse, game pad, or mobile multi-touch\n\nconst DEFAULT_MOVEMENT_SPEED = 1.0;\nconst DEFAULT_ROLL_SPEED = 2.0;\nconst DEFAULT_ROTATE_SPEED = 0.002;\nconst DEFAULT_SLIDE_SPEED = 0.006;\nconst DEFAULT_SCROLL_SPEED = 0.0015;\nconst DEFAULT_ROLL_SPRING = 0.0;\nconst DEFAULT_ROTATE_INERTIA = 0.15;\nconst DEFAULT_MOVE_INERTIA = 0.15;\nconst DEFAULT_STICK_THRESHOLD = 0.1;\nconst DEFAULT_FPS_ROTATE_SPEED = 2.0;\n// const DEFAULT_POINTER_ROLL_SCALE = 1.0;\nconst DEFAULT_POINTER_ROLL_SCALE = 0.0;\nconst DEFAULT_PRESS_MOVE_DELAY_MS = 500;\nconst DEFAULT_PRESS_MOVE_ACCEL_MS = 500;\n\n// Time limit for double-finger press (pinch etc)\nconst DUAL_PRESS_MS = 200;\n// Time limit for double-click/double-tap\nconst DOUBLE_PRESS_LIMIT_MS = 400;\n// Distance limit for double-click.\nconst DOUBLE_PRESS_DISTANCE = 25;\n\nconst MOVEMENT_THRESHOLD = 1.0e-4;\n\n// Standard WASD movement keys with R+F for up/down\nconst WASD_KEYCODE_MOVE = {\n KeyW: new THREE.Vector3(0, 0, -1),\n KeyS: new THREE.Vector3(0, 0, 1),\n KeyA: new THREE.Vector3(-1, 0, 0),\n KeyD: new THREE.Vector3(1, 0, 0),\n KeyE: new THREE.Vector3(0, 1, 0),\n KeyQ: new THREE.Vector3(0, -1, 0),\n};\n\n// Arrow key movement with PageUp/PageDown\nconst ARROW_KEYCODE_MOVE = {\n ArrowUp: new THREE.Vector3(0, 0, -1),\n ArrowDown: new THREE.Vector3(0, 0, 1),\n ArrowLeft: new THREE.Vector3(-1, 0, 0),\n ArrowRight: new THREE.Vector3(1, 0, 0),\n PageUp: new THREE.Vector3(0, 1, 0),\n PageDown: new THREE.Vector3(0, -1, 0),\n};\n\n// Rolling with Q/E\nconst QE_KEYCODE_ROTATE = {\n KeyQ: new THREE.Vector3(0, 0, 1),\n KeyE: new THREE.Vector3(0, 0, -1),\n};\n\n// Home/End/Insert/Delete for rotation\nconst ARROW_KEYCODE_ROTATE = {\n Home: new THREE.Vector3(0, -1, 0),\n End: new THREE.Vector3(0, 1, 0),\n Insert: new THREE.Vector3(-1, 0, 0),\n Delete: new THREE.Vector3(1, 0, 0),\n};\n\n// SparkControls provides simple, intuitive controls for navigating 3D space that\n// use the keyboard + mouse, game pad, or mobile multi-touch. Internally it\n// instantiates and updates a `FpsMovement` and `PointerControls` instance.\n\nexport class SparkControls {\n fpsMovement: FpsMovement;\n pointerControls: PointerControls;\n lastTime = 0;\n\n constructor({ canvas }: { canvas: HTMLCanvasElement }) {\n this.fpsMovement = new FpsMovement({});\n this.pointerControls = new PointerControls({ canvas });\n }\n\n update(control: THREE.Object3D, camera?: THREE.Camera) {\n const time = performance.now();\n const deltaTime = (time - (this.lastTime || time)) / 1000;\n this.lastTime = time;\n\n let updated = this.fpsMovement.update(deltaTime, control);\n if (this.pointerControls.update(deltaTime, control, camera)) {\n updated = true;\n }\n return updated;\n }\n}\n\n// FpsMovement implements controls that will be familiar to anyone who plays\n// First Person Shooters using keyboard + mouse or a gamepad. Creating a FpsMovement\n// instance provides many parameters for configuring the controls.\n//\n// When gamepads are connected, FpsMovement will always use gamepad index 0\n// for twin-stick movement and rotation.\n//\n// If xr is passed in, the WebXR controllers can be used as a split gamepad\n// to control movement and rotation. (tested on Quest 3)\n\nexport class FpsMovement {\n moveSpeed: number;\n rollSpeed: number;\n stickThreshold: number;\n rotateSpeed: number;\n keycodeMoveMapping: { [key: string]: THREE.Vector3 };\n keycodeRotateMapping: { [key: string]: THREE.Vector3 };\n gamepadMapping: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n capsMultiplier: number;\n shiftMultiplier: number;\n ctrlMultiplier: number;\n xr?: THREE.WebXRManager;\n // Enable/disable controls updates\n enable = true;\n extraMove = new THREE.Vector3();\n\n // Currently active event.key values\n keydown: { [key: string]: boolean };\n // Currently active event.code values\n keycode: { [key: string]: boolean };\n\n constructor({\n moveSpeed,\n rollSpeed,\n stickThreshold,\n rotateSpeed,\n keycodeMoveMapping,\n keycodeRotateMapping,\n gamepadMapping,\n capsMultiplier,\n shiftMultiplier,\n ctrlMultiplier,\n xr,\n }: {\n // Base movement speed (default DEFAULT_MOVEMENT_SPEED)\n moveSpeed?: number;\n // Base roll speed (default DEFAULT_ROLL_SPEED)\n rollSpeed?: number;\n // Stick threshold (default DEFAULT_STICK_THRESHOLD)\n stickThreshold?: number;\n // Speed of rotation when using gamepad or keys (default DEFAULT_FPS_ROTATE_SPEED)\n rotateSpeed?: number;\n // Maps keyboard keys to movement directions\n // (default {...WASD_KEYCODE_MOVE, ...ARROW_KEYCODE_MOVE})\n keycodeMoveMapping?: { [key: string]: THREE.Vector3 };\n // Maps keyboard keys to rotation directions\n // (default { ...ARROW_KEYCODE_ROTATE})\n keycodeRotateMapping?: { [key: string]: THREE.Vector3 };\n // Maps gamepad buttons to control actions\n // (default {4: \"rollLeft\", 5: \"rollRight\", 6: \"ctrl\", 7: \"shift\"})\n gamepadMapping?: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n // Speed multiplier when Caps Lock is active (default: 10)\n capsMultiplier?: number;\n // Speed multiplier when Shift is active (default: 5)\n shiftMultiplier?: number;\n // Speed multiplier when Ctrl is active (default: 1/5)\n ctrlMultiplier?: number;\n // Optional WebXR manager for XR controller stick support\n xr?: THREE.WebXRManager;\n } = {}) {\n this.moveSpeed = moveSpeed ?? DEFAULT_MOVEMENT_SPEED;\n this.rollSpeed = rollSpeed ?? DEFAULT_ROLL_SPEED;\n this.stickThreshold = stickThreshold ?? DEFAULT_STICK_THRESHOLD;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_FPS_ROTATE_SPEED;\n this.keycodeMoveMapping = keycodeMoveMapping ?? {\n ...WASD_KEYCODE_MOVE,\n ...ARROW_KEYCODE_MOVE,\n };\n this.keycodeRotateMapping = keycodeRotateMapping ?? {\n // ...QE_KEYCODE_ROTATE,\n ...ARROW_KEYCODE_ROTATE,\n };\n this.gamepadMapping = gamepadMapping ?? {\n 4: \"rollLeft\",\n 5: \"rollRight\",\n 6: \"ctrl\",\n 7: \"shift\",\n };\n this.capsMultiplier = capsMultiplier ?? 10.0;\n this.shiftMultiplier = shiftMultiplier ?? 5.0;\n this.ctrlMultiplier = ctrlMultiplier ?? 1.0 / 5.0;\n\n this.xr = xr;\n\n this.keydown = {};\n this.keycode = {};\n\n document.addEventListener(\"keydown\", (event) => {\n this.keydown[event.key] = true;\n this.keycode[event.code] = true;\n });\n document.addEventListener(\"keyup\", (event) => {\n this.keydown[event.key] = false;\n this.keycode[event.code] = false;\n });\n window.addEventListener(\"blur\", () => {\n this.keydown = {};\n this.keycode = {};\n });\n }\n\n // Call this method in your render loop with `control` set to the object to control\n // (`THREE.Camera` or a `THREE.Object3D` that contains it), with `deltaTime`\n // in seconds since the last update.\n update(deltaTime: number, control: THREE.Object3D) {\n if (!this.enable) {\n return false;\n }\n\n // Update gamepad / XR controllers\n\n const sticks = [new THREE.Vector2(), new THREE.Vector2()];\n const gamepad = navigator.getGamepads()[0];\n if (gamepad) {\n sticks[0].set(gamepad.axes[0], gamepad.axes[1]);\n sticks[1].set(gamepad.axes[2], gamepad.axes[3]);\n }\n const gamepadButtons =\n gamepad?.buttons.map((button) => button.pressed) || [];\n\n const xrSources = Array.from(this.xr?.getSession()?.inputSources ?? []);\n for (const source of xrSources) {\n const gamepad = source.gamepad;\n if (gamepad) {\n switch (source.handedness) {\n case \"none\": {\n sticks[0].x += gamepad.axes[0];\n sticks[0].y += gamepad.axes[1];\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n case \"left\": {\n sticks[0].x += gamepad.axes[2];\n sticks[0].y += gamepad.axes[3];\n break;\n }\n case \"right\": {\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n }\n }\n }\n\n for (const stick of sticks) {\n stick.x = Math.abs(stick.x) >= this.stickThreshold ? stick.x : 0;\n stick.y = Math.abs(stick.y) >= this.stickThreshold ? stick.y : 0;\n }\n\n // Rotation\n\n const rotate = new THREE.Vector3(\n sticks[1].x,\n sticks[1].y,\n 0,\n ).multiplyScalar(this.rotateSpeed);\n\n for (const [keycode, rot] of Object.entries(this.keycodeRotateMapping)) {\n if (this.keycode[keycode]) {\n rotate.add(rot);\n }\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"rollLeft\":\n rotate.z += 1;\n break;\n case \"rollRight\":\n rotate.z -= 1;\n break;\n }\n }\n }\n\n rotate.multiply(\n new THREE.Vector3(this.rotateSpeed, this.rotateSpeed, this.rollSpeed),\n );\n\n let updated = rotate.length() > MOVEMENT_THRESHOLD;\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z = Math.max(-Math.PI, Math.min(Math.PI, eulers.z + rotate.z));\n control.quaternion.setFromEuler(eulers);\n }\n\n // Movement\n\n const moveVector = new THREE.Vector3(sticks[0].x, 0, sticks[0].y);\n moveVector.add(this.extraMove);\n\n for (const [keycode, move] of Object.entries(this.keycodeMoveMapping)) {\n if (this.keycode[keycode]) {\n moveVector.add(move);\n }\n }\n\n let speedMultiplier = 1.0;\n if (this.keydown.CapsLock) {\n speedMultiplier *= this.capsMultiplier;\n }\n if (this.keycode.ShiftLeft || this.keycode.ShiftRight) {\n speedMultiplier *= this.shiftMultiplier;\n }\n if (this.keycode.ControlLeft || this.keycode.ControlRight) {\n speedMultiplier *= this.ctrlMultiplier;\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"shift\":\n speedMultiplier *= this.shiftMultiplier;\n break;\n case \"ctrl\":\n speedMultiplier *= this.ctrlMultiplier;\n break;\n }\n }\n }\n\n if (moveVector.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Apply movement in view direction\n moveVector.applyQuaternion(control.quaternion);\n control.position.add(\n moveVector.multiplyScalar(this.moveSpeed * speedMultiplier * deltaTime),\n );\n\n return updated;\n }\n}\n\ntype PointerState = {\n initial: THREE.Vector2;\n last: THREE.Vector2;\n position: THREE.Vector2;\n pointerId: number;\n button?: number;\n timeStamp: DOMHighResTimeStamp;\n};\n\n// `PointerControls` implements pointer/mouse/touch controls on the canvas,\n// for both desktop and mobile web applications.\n\nexport class PointerControls {\n canvas: HTMLCanvasElement;\n rotateSpeed: number;\n slideSpeed: number;\n scrollSpeed: number;\n swapRotateSlide: boolean;\n reverseRotate: boolean;\n reverseSlide: boolean;\n reverseSwipe: boolean;\n reverseScroll: boolean;\n moveInertia: number;\n rotateInertia: number;\n pointerRollScale: number;\n // Enable/disable controls updates\n enable = true;\n\n doublePress: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n // Time limit for double press (default DOUBLE_PRESS_LIMIT_MS)\n doublePressLimitMs: number;\n // Distance limit for double press (default DOUBLE_PRESS_DISTANCE)\n doublePressDistance: number;\n\n // Time delay in ms for press move to start\n pressMoveDelayMs: number;\n // Time in ms for press move to accelerate\n pressMoveAccelMs: number;\n // Speed of movement on press (default: 0)\n pressMoveSpeed: number;\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed: number;\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed: number;\n // Whether to move toward the screen center or finger when pressing to move\n pressMoveCenter: boolean;\n pressHeld?: boolean;\n doublePressed?: number;\n triplePressed: boolean;\n // Last pointer up event (default: null)\n lastUp: { position: THREE.Vector2; timeStamp: number } | null;\n lastLastUp: { position: THREE.Vector2; timeStamp: number } | null;\n\n // Pointer state for currently active rotating pointer\n rotating: PointerState | null;\n // Pointer state for currently active sliding pointer\n sliding: PointerState | null;\n // Pointer state for last pointer that downed\n lastDown: PointerState | null;\n // Whether we pressed two pointers at the same time\n dualPress: boolean;\n // Cumulative scroll movement\n scroll: THREE.Vector3;\n\n // Current rotation velocity\n rotateVelocity: THREE.Vector3;\n // Current movement velocity\n moveVelocity: THREE.Vector3;\n\n constructor({\n // The HTML canvas element to attach pointer events to\n canvas,\n // Speed of rotation (default DEFAULT_ROTATE_SPEED)\n rotateSpeed,\n // Speed of sliding when dragging with right/middle mouse button or two fingers\n // (default DEFAULT_SLIDE_SPEED)\n slideSpeed,\n // Speed of movement when using mouse scroll wheel (default DEFAULT_SCROLL_SPEED)\n scrollSpeed,\n // Swap the direction of rotation and sliding (default: false)\n swapRotateSlide,\n // Reverse the direction of rotation (default: false)\n reverseRotate,\n // Reverse the direction of sliding (default: false)\n reverseSlide,\n // Reverse the direction of swipe gestures (default: false)\n reverseSwipe,\n // Reverse the direction of scroll wheel movement (default: false)\n reverseScroll,\n // Inertia factor for movement (default: DEFAULT_MOVE_INERTIA)\n moveInertia,\n // Inertia factor for rotation (default: DEFAULT_ROTATE_INERTIA)\n rotateInertia,\n // Pointer rolling scale factor (default: DEFAULT_POINTER_ROLL_SCALE)\n pointerRollScale,\n // Callback for double press events (default: () => {})\n doublePress,\n // Time delay in ms for press move to start (default: DEFAULT_PRESS_MOVE_DELAY_MS)\n pressMoveDelayMs,\n // Time in ms for press move to accelerate (default: DEFAULT_PRESS_MOVE_ACCEL_MS)\n pressMoveAccelMs,\n // Speed of movement on press (default: 0)\n pressMoveSpeed,\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed,\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed,\n // Whether to move toward the screen center or finger when pressing to move (default: true)\n pressMoveCenter,\n }: {\n canvas: HTMLCanvasElement;\n rotateSpeed?: number;\n slideSpeed?: number;\n scrollSpeed?: number;\n swapRotateSlide?: boolean;\n reverseRotate?: boolean;\n reverseSlide?: boolean;\n reverseSwipe?: boolean;\n reverseScroll?: boolean;\n moveInertia?: number;\n rotateInertia?: number;\n pointerRollScale?: number;\n doublePress?: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n pressMoveDelayMs?: number;\n pressMoveAccelMs?: number;\n pressMoveSpeed?: number;\n doublePressMoveSpeed?: number;\n triplePressMoveSpeed?: number;\n pressMoveCenter?: boolean;\n }) {\n this.canvas = canvas;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_ROTATE_SPEED;\n this.slideSpeed = slideSpeed ?? DEFAULT_SLIDE_SPEED;\n this.scrollSpeed = scrollSpeed ?? DEFAULT_SCROLL_SPEED;\n this.swapRotateSlide = swapRotateSlide ?? false;\n this.reverseRotate = reverseRotate ?? (isAndroid() || isIos());\n this.reverseSlide = reverseSlide ?? false;\n this.reverseSwipe = reverseSwipe ?? false;\n this.reverseScroll = reverseScroll ?? false;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n this.pointerRollScale = pointerRollScale ?? DEFAULT_POINTER_ROLL_SCALE;\n\n this.doublePress = doublePress ?? (() => {});\n this.doublePressLimitMs = DOUBLE_PRESS_LIMIT_MS;\n this.doublePressDistance = DOUBLE_PRESS_DISTANCE;\n\n this.pressMoveDelayMs = pressMoveDelayMs ?? DEFAULT_PRESS_MOVE_DELAY_MS;\n this.pressMoveAccelMs = pressMoveAccelMs ?? DEFAULT_PRESS_MOVE_ACCEL_MS;\n this.pressMoveSpeed = pressMoveSpeed ?? 0;\n this.doublePressMoveSpeed =\n doublePressMoveSpeed ?? this.pressMoveSpeed * 5.0;\n this.triplePressMoveSpeed =\n triplePressMoveSpeed ?? this.doublePressMoveSpeed * 5.0;\n this.pressMoveCenter = pressMoveCenter ?? true;\n this.doublePressed = undefined;\n this.triplePressed = false;\n this.lastUp = null;\n this.lastLastUp = null;\n\n this.rotating = null;\n this.sliding = null;\n this.lastDown = null;\n this.dualPress = false;\n this.scroll = new THREE.Vector3();\n\n this.rotateVelocity = new THREE.Vector3();\n this.moveVelocity = new THREE.Vector3();\n\n canvas.addEventListener(\"pointerdown\", (event: PointerEvent) => {\n const position = this.getPointerPosition(event);\n const initial = position.clone();\n const last = position.clone();\n\n // Determine if we're starting a rotation pointer action\n const isRotate =\n (!this.swapRotateSlide &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 0)) ||\n (this.swapRotateSlide &&\n this.sliding &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 1));\n // const isRotate =\n // !this.rotating && (event.pointerType !== \"mouse\" || event.button === 0);\n const { pointerId } = event;\n const timeStamp = performance.now();\n\n if (isRotate) {\n this.rotating = { initial, last, position, pointerId, timeStamp };\n this.lastDown = this.rotating;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n this.dualPress = false;\n } else if (!this.sliding) {\n // If it's not a rotation action and we're not yet sliding, the next\n // pointer activates a sliding action\n const button = event.pointerType === \"mouse\" ? event.button : undefined;\n this.sliding = {\n initial,\n last,\n position,\n pointerId,\n button,\n timeStamp,\n };\n this.lastDown = this.sliding;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n // Check if we pressed both pointers at roughly the same time\n this.dualPress =\n this.rotating != null &&\n timeStamp - this.rotating.timeStamp < DUAL_PRESS_MS;\n }\n\n if (this.lastUp) {\n const distance = this.lastUp.position.distanceTo(position);\n const intervalMs = timeStamp - this.lastUp.timeStamp;\n if (\n distance < this.doublePressDistance &&\n intervalMs < this.doublePressLimitMs\n ) {\n this.doublePressed = performance.now();\n this.triplePressed = false;\n\n if (this.lastLastUp) {\n const lastDistance = this.lastLastUp.position.distanceTo(\n this.lastUp.position,\n );\n const lastIntervalMs =\n this.lastUp.timeStamp - this.lastLastUp.timeStamp;\n if (\n lastDistance < this.doublePressDistance &&\n lastIntervalMs < this.doublePressLimitMs\n ) {\n this.triplePressed = true;\n }\n }\n }\n }\n });\n\n const pointerUp = (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.sliding) {\n canvas.releasePointerCapture(this.sliding.pointerId);\n this.sliding = null;\n }\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.rotating) {\n canvas.releasePointerCapture(this.rotating.pointerId);\n this.rotating = null;\n }\n }\n\n this.doublePressed = undefined;\n this.triplePressed = false;\n\n const position = this.getPointerPosition(event);\n const lastUp = this.lastUp;\n this.lastLastUp = this.lastUp;\n const timeStamp = performance.now();\n this.lastUp = { position, timeStamp };\n\n if (lastUp) {\n const distance = lastUp.position.distanceTo(position);\n if (distance < this.doublePressDistance) {\n const intervalMs = timeStamp - lastUp.timeStamp;\n if (intervalMs < this.doublePressLimitMs) {\n // We pressed and release twice within the time and distance limits\n // this.lastUp = null;\n this.doublePress({ position, intervalMs });\n }\n }\n }\n };\n\n document.addEventListener(\"pointerup\", pointerUp);\n document.addEventListener(\"pointercancel\", pointerUp);\n\n document.addEventListener(\"pointermove\", (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating.position = this.getPointerPosition(event);\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding.position = this.getPointerPosition(event);\n }\n });\n\n canvas.addEventListener(\"contextmenu\", (event: MouseEvent) => {\n // Prevent context menu appearing on right click\n event.preventDefault();\n });\n\n canvas.addEventListener(\"wheel\", (event: WheelEvent) => {\n this.scroll.add(\n new THREE.Vector3(event.deltaX, event.deltaY, event.deltaZ),\n );\n event.preventDefault();\n });\n }\n\n getPointerPosition(event: PointerEvent): THREE.Vector2 {\n const rect = this.canvas.getBoundingClientRect();\n return new THREE.Vector2(\n event.clientX - rect.left,\n event.clientY - rect.top,\n );\n }\n\n update(deltaTime: number, control: THREE.Object3D, camera?: THREE.Camera) {\n if (!this.enable) {\n return false;\n }\n\n const now = performance.now();\n let updated = false;\n\n if (this.dualPress && this.rotating && this.sliding) {\n // We pressed both pointers at the same time, either pinching or sliding\n const motion = [\n this.rotating.position.clone().sub(this.rotating.last),\n this.sliding.position.clone().sub(this.sliding.last),\n ];\n const coincidence = motion[0].dot(motion[1]);\n\n if (coincidence >= 0.2) {\n // Similar directions so slide the camera on the XY plane\n const totalMotion = motion[0].clone().add(motion[1]);\n const slide = new THREE.Vector3(totalMotion.x, -totalMotion.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSwipe ? 1 : -1));\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else if (coincidence <= -0.2) {\n // Opposite directions so either pinch or roll motion\n const deltaDir = this.sliding.last.clone().sub(this.rotating.last);\n const deltaDist = deltaDir.length();\n deltaDir.multiplyScalar(1 / deltaDist).normalize();\n\n const orthoDir = new THREE.Vector2(-deltaDir.y, deltaDir.x);\n const motionDir = [motion[0].dot(deltaDir), motion[1].dot(deltaDir)];\n const motionOrtho = [motion[0].dot(orthoDir), motion[1].dot(orthoDir)];\n\n // Pinching motion\n const midpoint = this.rotating.last\n .clone()\n .add(this.sliding.last)\n .multiplyScalar(0.5);\n let midpointDir = new THREE.Vector3();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcMidpoint = new THREE.Vector2(\n (midpoint.x / this.canvas.clientWidth) * 2 - 1,\n -(midpoint.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcMidpoint, theCamera);\n midpointDir = raycaster.ray.direction;\n }\n const pinchOut = motionDir[1] - motionDir[0];\n const slide = midpointDir.multiplyScalar(pinchOut * this.slideSpeed);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Rolling motion\n // Calculate angle of orthogonal motion change over distance deltaDist/2\n // motionOrtho[0] and 1 are already in float distance\n const angles = [\n Math.atan(motionOrtho[0] / (-0.5 * deltaDist)),\n Math.atan(motionOrtho[1] / (0.5 * deltaDist)),\n ];\n const rotate = 0.5 * (angles[0] + angles[1]) * this.pointerRollScale;\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.z = Math.max(\n -Math.PI,\n Math.min(Math.PI, eulers.z + 0.5 * rotate),\n );\n control.quaternion.setFromEuler(eulers);\n\n if (Math.abs(rotate) > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n this.rotating.last.copy(this.rotating.position);\n this.sliding.last.copy(this.sliding.position);\n } else {\n // Didn't press both pointers at the same time, so we're in rotating\n // or FPS mode\n const rotate = new THREE.Vector3();\n if (this.rotating && !this.dualPress) {\n const delta = this.rotating.position.clone().sub(this.rotating.last);\n this.rotating.last.copy(this.rotating.position);\n rotate.set(delta.x, delta.y, 0);\n rotate.multiplyScalar(this.rotateSpeed * (this.reverseRotate ? -1 : 1));\n // Update rotation velocity from last delta\n this.rotateVelocity = rotate.clone().multiplyScalar(1 / deltaTime);\n\n if (rotate.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n // Continue to rotate with inertia\n this.rotateVelocity.multiplyScalar(\n Math.exp(-deltaTime / this.rotateInertia),\n );\n rotate.addScaledVector(this.rotateVelocity, deltaTime);\n\n if (this.rotateVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n // Apply rotation in Euler angles space\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z *= Math.exp(-DEFAULT_ROLL_SPRING * deltaTime);\n control.quaternion.setFromEuler(eulers);\n\n if (this.sliding && !this.dualPress) {\n const delta = this.sliding.position.clone().sub(this.sliding.last);\n this.sliding.last.copy(this.sliding.position);\n\n // Slide on plane depending on center/right mouse button\n const slide =\n this.sliding.button !== 2\n ? new THREE.Vector3(delta.x, 0, delta.y)\n : new THREE.Vector3(delta.x, -delta.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSlide ? -1 : 1));\n\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n // Update movement velocity from last delta\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n const target = new THREE.Vector3();\n if (this.sliding || this.rotating) {\n const point = this.lastDown?.last ?? new THREE.Vector2();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcPoint = this.pressMoveCenter\n ? new THREE.Vector2(0, 0)\n : new THREE.Vector2(\n (point.x / this.canvas.clientWidth) * 2 - 1,\n -(point.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcPoint, theCamera);\n target.copy(raycaster.ray.direction).normalize();\n }\n\n if (!this.doublePressed) {\n let intensity = 0;\n if (this.lastDown) {\n intensity =\n (now -\n (this.lastDown?.timeStamp ?? now) -\n this.pressMoveDelayMs) /\n this.pressMoveAccelMs;\n\n if (\n this.lastDown.position.distanceTo(this.lastDown.initial) <\n this.doublePressDistance\n ) {\n if (this.pressHeld === undefined) {\n if (intensity > 0) {\n this.pressHeld = true;\n }\n }\n } else if (this.pressHeld === undefined) {\n this.pressHeld = false;\n }\n }\n\n if (this.pressHeld) {\n target.multiplyScalar(\n this.pressMoveSpeed * Math.max(0, Math.min(1, intensity)),\n );\n } else {\n target.set(0, 0, 0);\n }\n } else {\n this.pressHeld = false;\n let intensity =\n (performance.now() - this.doublePressed) / this.pressMoveAccelMs;\n intensity = Math.max(0, Math.min(1, intensity));\n target.multiplyScalar(\n (this.triplePressed\n ? this.triplePressMoveSpeed\n : this.doublePressMoveSpeed) * intensity,\n );\n }\n } else {\n this.pressHeld = undefined;\n }\n // Continue to move with inertia\n const s = Math.exp(-deltaTime / this.moveInertia);\n this.moveVelocity.lerpVectors(target, this.moveVelocity, s);\n control.position.addScaledVector(this.moveVelocity, deltaTime);\n\n if (this.moveVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n }\n\n const scroll = this.scroll.multiplyScalar(this.scrollSpeed);\n scroll.set(scroll.x, scroll.z, scroll.y);\n if (this.reverseScroll) {\n scroll.multiplyScalar(-1);\n }\n scroll.applyQuaternion(control.quaternion);\n control.position.add(scroll);\n\n if (scroll.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n this.scroll.set(0, 0, 0);\n\n return updated;\n }\n}\n","import * as THREE from \"three\";\nimport { SparkRenderer, type SparkRendererOptions } from \"./SparkRenderer\";\n\n/**\n * Fragment shader for portal disk clipping.\n * - diskRadius > 0: render \"behind portal\" only through the disk\n * - diskRadius < 0: render \"in front of portal\" everywhere except behind disk\n */\nexport const DISK_PORTAL_FRAGMENT_SHADER = `\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform mat4 projectionMatrix;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nuniform vec3 diskCenter;\nuniform vec3 diskNormal;\nuniform float diskRadius;\nuniform bool diskTwoSided;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\nvoid main() {\n if (diskRadius != 0.0) {\n // Portal rendering:\n // - diskRadius > 0: render \"behind portal\" only through the disk (discard outside or in-front-of plane).\n // - diskRadius < 0: render \"in front of portal\" everywhere, but discard fragments behind the plane when looking through the disk.\n\n // View ray direction from NDC (view space is -Z forward).\n vec3 viewDir = normalize(vec3(\n vNdc.x / projectionMatrix[0][0],\n vNdc.y / projectionMatrix[1][1],\n -1.0\n ));\n\n // Reconstruct view-space *axial* depth (-viewPos.z) from NDC Z.\n float ndcZ = vNdc.z;\n float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near));\n // Convert axial depth to ray-parameter t (viewPos = t * viewDir).\n float rayT = depth / max(1e-6, -viewDir.z);\n\n float radius = abs(diskRadius);\n float radius2 = radius * radius;\n bool renderBehind = (diskRadius > 0.0);\n\n vec3 diskN = normalize(diskNormal);\n\n // Ray-plane intersection for plane (diskCenter, diskN), with ray origin at (0,0,0).\n float denom = dot(viewDir, diskN);\n bool allowPortal = diskTwoSided ? (abs(denom) > 1e-6) : (denom < -1e-6);\n\n bool hitsDisk = false;\n float t = 0.0;\n if (allowPortal) {\n t = dot(diskCenter, diskN) / denom;\n if (t > 0.0) {\n vec3 q = t * viewDir - diskCenter;\n hitsDisk = (dot(q, q) <= radius2);\n }\n }\n\n // Small bias to avoid flicker at the plane.\n float eps = 1e-4 * max(1.0, abs(t));\n\n if (renderBehind) {\n // Behind-pass: only render through the portal disk, and only behind the plane along the ray.\n if (!hitsDisk) discard;\n if (rayT <= t + eps) discard;\n } else {\n // Front-pass: render everything, except when the ray goes through the disk, discard what's behind the plane.\n if (hitsDisk && (rayT >= t - eps)) discard;\n }\n }\n\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n rgba.a = min(1.0, a) * exp(exponent);\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n}\n`;\n\n/**\n * Callback function called when a portal is crossed.\n * @param pair The portal pair that was crossed\n * @param fromEntry True if crossing from entry to exit, false if crossing from exit to entry\n */\nexport type PortalCrossCallback = (\n pair: PortalPair,\n fromEntry: boolean,\n) => void | Promise;\n\n/**\n * A pair of connected portals. Walking through one teleports you to the other.\n */\nexport interface PortalPair {\n /** First portal endpoint */\n entryPortal: THREE.Object3D;\n /** Second portal endpoint */\n exitPortal: THREE.Object3D;\n /** Radius of this portal pair's disks */\n radius: number;\n /** Optional callback function called when this portal is crossed */\n onCross?: PortalCrossCallback;\n /** Scratch matrix for tracking portal position before frame updates */\n _entryBefore: THREE.Matrix4;\n /** Scratch matrix for tracking portal position before frame updates */\n _exitBefore: THREE.Matrix4;\n}\n\nexport interface SparkPortalsOptions {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n /** Options passed to both SparkRenderer instances */\n sparkOptions?: Partial;\n /** Default portal disk radius for new pairs (default: 1.0) */\n defaultPortalRadius?: number;\n /** Epsilon for portal crossing detection (default: 1e-6) */\n portalCrossEps?: number;\n}\n\n/**\n * SparkPortals\n *\n * Portal implementation to connect two non-contiguous areas of a scene.\n * Supports multiple portal pairs - each pair connects two locations.\n *\n * The rough approach is to use two SparkRenderers: one for the \"front\"/portal\n * view (portalRenderer), and one for the \"behind portal\" pass (behindRenderer).\n *\n * Example:\n * ```typescript\n * const portals = new SparkPortals({ renderer, scene, camera, localFrame });\n *\n * // Add a portal pair\n * const pair = portals.addPortalPair();\n * pair.entryPortal.position.set(0, 0, -1);\n * pair.exitPortal.position.set(-3, 0, -4.5);\n *\n * // Add another pair\n * const pair2 = portals.addPortalPair({ radius: 0.5 });\n * pair2.entryPortal.position.set(5, 0, 0);\n * pair2.exitPortal.position.set(10, 0, 0);\n *\n * // In animation loop:\n * portals.animateLoopHook();\n * ```\n */\nexport class SparkPortals {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n\n /** Primary renderer with portal shader (added to scene) */\n portalRenderer: SparkRenderer;\n /** Secondary renderer for behind-portal pass (not in scene) */\n behindRenderer: SparkRenderer;\n /** Secondary camera for behind-portal view */\n camera2: THREE.PerspectiveCamera;\n\n /** All portal pairs */\n portalPairs: PortalPair[] = [];\n /** Default radius for new portal pairs */\n defaultPortalRadius: number;\n /** Epsilon for portal crossing detection */\n portalCrossEps: number;\n\n /** Used to detect crossing between frames */\n private lastCameraWorld = new THREE.Vector3().setScalar(Number.NaN);\n /** Whether portal LoD prefetch is currently enabled */\n private prefetchActive = false;\n\n // Preallocated objects for scratch work to avoid per frame allocations\n private scratch = {\n quat: new THREE.Quaternion(),\n scale: new THREE.Vector3(),\n center0: new THREE.Vector3(),\n center1: new THREE.Vector3(),\n normal0: new THREE.Vector3(),\n normal1: new THREE.Vector3(),\n centerT: new THREE.Vector3(),\n normalT: new THREE.Vector3(),\n prevCameraWorld: new THREE.Vector3(),\n currCameraWorld: new THREE.Vector3(),\n hit: new THREE.Vector3(),\n offset: new THREE.Vector3(),\n camWorld: new THREE.Matrix4(),\n newCamWorld: new THREE.Matrix4(),\n invCamLocal: new THREE.Matrix4(),\n newLocalFrame: new THREE.Matrix4(),\n cameraWorldPos: new THREE.Vector3(),\n viewDir: new THREE.Vector3(),\n portalCenter: new THREE.Vector3(),\n toPortal: new THREE.Vector3(),\n };\n\n constructor(options: SparkPortalsOptions) {\n this.renderer = options.renderer;\n this.scene = options.scene;\n this.camera = options.camera;\n this.localFrame = options.localFrame;\n this.defaultPortalRadius = options.defaultPortalRadius ?? 1.0;\n this.portalCrossEps = options.portalCrossEps ?? 1e-6;\n\n const sparkOpts = options.sparkOptions ?? {};\n\n // Primary renderer with portal shader\n this.portalRenderer = new SparkRenderer({\n renderer: this.renderer,\n extraUniforms: {\n diskCenter: { value: new THREE.Vector3() },\n diskNormal: { value: new THREE.Vector3() },\n diskRadius: { value: 0 },\n diskTwoSided: { value: false },\n },\n fragmentShader: DISK_PORTAL_FRAGMENT_SHADER,\n ...sparkOpts,\n });\n this.scene.add(this.portalRenderer);\n\n // Secondary renderer for behind-portal pass\n // enableDriveLod: false prevents this renderer from driving LOD updates,\n // avoiding race conditions with portalRenderer's pager operations\n this.behindRenderer = new SparkRenderer({\n renderer: this.renderer,\n enableDriveLod: false,\n ...sparkOpts,\n });\n\n // Secondary camera for behind-portal view\n this.camera2 = this.camera.clone();\n this.scene.add(this.camera2);\n }\n\n /**\n * Add a new portal pair to the system.\n * @param options Optional configuration for this pair\n * @returns The created PortalPair - position the entryPortal and exitPortal as needed\n */\n addPortalPair(options?: {\n radius?: number;\n onCross?: PortalCrossCallback;\n }): PortalPair {\n const pair: PortalPair = {\n entryPortal: new THREE.Object3D(),\n exitPortal: new THREE.Object3D(),\n radius: options?.radius ?? this.defaultPortalRadius,\n onCross: options?.onCross,\n _entryBefore: new THREE.Matrix4(),\n _exitBefore: new THREE.Matrix4(),\n };\n\n this.scene.add(pair.entryPortal);\n this.scene.add(pair.exitPortal);\n this.portalPairs.push(pair);\n\n return pair;\n }\n\n /**\n * Remove a portal pair from the system.\n */\n removePortalPair(pair: PortalPair): void {\n const index = this.portalPairs.indexOf(pair);\n if (index !== -1) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n this.portalPairs.splice(index, 1);\n }\n }\n\n /**\n * Get transform from entry portal to exit portal.\n */\n getEntryToExitTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.entryPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.exitPortal.matrixWorld);\n }\n\n /**\n * Get transform from exit portal to entry portal.\n */\n getExitToEntryTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.exitPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.entryPortal.matrixWorld);\n }\n\n /** Set portal disk uniforms for shader clipping */\n private setPortalDiskUniforms(\n camera: THREE.Camera,\n portal: THREE.Object3D,\n radius: number,\n twoSided: boolean,\n ): void {\n camera.updateMatrixWorld(true);\n portal.updateMatrixWorld(true);\n\n const inverseCamera = camera.matrixWorld.clone().invert();\n const portalInCamera = portal.matrixWorld\n .clone()\n .premultiply(inverseCamera);\n const portalQuat = new THREE.Quaternion();\n\n // Extend the base uniform type with our portal-specific uniforms so TS is happy.\n const uniforms = this.portalRenderer\n .uniforms as typeof this.portalRenderer.uniforms & {\n diskCenter: { value: THREE.Vector3 };\n diskNormal: { value: THREE.Vector3 };\n diskRadius: { value: number };\n diskTwoSided: { value: boolean };\n };\n\n portalInCamera.decompose(\n uniforms.diskCenter.value,\n portalQuat,\n new THREE.Vector3(),\n );\n\n uniforms.diskNormal.value.set(0, 0, 1).applyQuaternion(portalQuat);\n uniforms.diskRadius.value = radius;\n uniforms.diskTwoSided.value = twoSided;\n }\n\n /** Extract portal plane from matrix */\n private getPortalPlane(\n matrix: THREE.Matrix4,\n outCenter: THREE.Vector3,\n outNormal: THREE.Vector3,\n ): void {\n matrix.decompose(outCenter, this.scratch.quat, this.scratch.scale);\n outNormal.set(0, 0, 1).applyQuaternion(this.scratch.quat).normalize();\n }\n\n /**\n * Detect if the user path crosses over a portal. If so, return the parametric position (0,1)\n * along the segment where the crossing occurs. If not, return null.\n */\n private getSegmentDiskCrossing(\n prevCam: THREE.Vector3,\n currCam: THREE.Vector3,\n beforeMatrix: THREE.Matrix4,\n afterMatrix: THREE.Matrix4,\n radius: number,\n ): number | null {\n this.getPortalPlane(\n beforeMatrix,\n this.scratch.center0,\n this.scratch.normal0,\n );\n this.getPortalPlane(\n afterMatrix,\n this.scratch.center1,\n this.scratch.normal1,\n );\n\n const startPlaneDist = this.scratch.offset\n .copy(prevCam)\n .sub(this.scratch.center0)\n .dot(this.scratch.normal0);\n const endPlaneDist = this.scratch.offset\n .copy(currCam)\n .sub(this.scratch.center1)\n .dot(this.scratch.normal1);\n\n if (\n (startPlaneDist > this.portalCrossEps &&\n endPlaneDist > this.portalCrossEps) ||\n (startPlaneDist < -this.portalCrossEps &&\n endPlaneDist < -this.portalCrossEps)\n ) {\n return null;\n }\n\n const denom = startPlaneDist - endPlaneDist;\n if (Math.abs(denom) < this.portalCrossEps) return null;\n\n const t = startPlaneDist / denom;\n if (t < 0 || t > 1) return null;\n\n this.scratch.hit.lerpVectors(prevCam, currCam, t);\n this.scratch.centerT\n .copy(this.scratch.center0)\n .lerp(this.scratch.center1, t);\n this.scratch.normalT\n .copy(this.scratch.normal0)\n .lerp(this.scratch.normal1, t)\n .normalize();\n\n this.scratch.offset.copy(this.scratch.hit).sub(this.scratch.centerT);\n this.scratch.offset.addScaledVector(\n this.scratch.normalT,\n -this.scratch.offset.dot(this.scratch.normalT),\n );\n\n if (this.scratch.offset.lengthSq() > radius * radius) return null;\n return t;\n }\n\n /** Teleport camera through portal */\n private teleport(transform: THREE.Matrix4): void {\n this.scratch.camWorld.copy(this.camera.matrixWorld);\n this.scratch.newCamWorld.copy(this.scratch.camWorld).premultiply(transform);\n this.scratch.invCamLocal.copy(this.camera.matrix).invert();\n this.scratch.newLocalFrame\n .copy(this.scratch.newCamWorld)\n .multiply(this.scratch.invCamLocal);\n\n this.scratch.newLocalFrame.decompose(\n this.localFrame.position,\n this.localFrame.quaternion,\n this.localFrame.scale,\n );\n this.localFrame.updateMatrixWorld(true);\n this.camera.updateMatrixWorld(true);\n }\n\n /**\n * Check for portal crossing and teleport if needed.\n * Checks all portal pairs and takes the earliest crossing.\n * Call this after updating controls but before render().\n */\n updateTeleportation(): void {\n if (this.portalPairs.length === 0) return;\n\n this.camera.getWorldPosition(this.scratch.currCameraWorld);\n if (!Number.isFinite(this.lastCameraWorld.x)) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n this.scratch.prevCameraWorld.copy(this.lastCameraWorld);\n\n // Store portal matrices before any updates and find earliest crossing\n let earliestT: number | null = null;\n let crossedPair: PortalPair | null = null;\n let crossedEntry = true; // true = crossed entry portal, false = crossed exit portal\n\n for (const pair of this.portalPairs) {\n pair.entryPortal.updateMatrixWorld(true);\n pair.exitPortal.updateMatrixWorld(true);\n pair._entryBefore.copy(pair.entryPortal.matrixWorld);\n pair._exitBefore.copy(pair.exitPortal.matrixWorld);\n\n // Check entry portal crossing\n const entryT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._entryBefore,\n pair.entryPortal.matrixWorld,\n pair.radius,\n );\n\n if (entryT !== null && (earliestT === null || entryT < earliestT)) {\n earliestT = entryT;\n crossedPair = pair;\n crossedEntry = true;\n }\n\n // Check exit portal crossing\n const exitT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._exitBefore,\n pair.exitPortal.matrixWorld,\n pair.radius,\n );\n\n if (exitT !== null && (earliestT === null || exitT < earliestT)) {\n earliestT = exitT;\n crossedPair = pair;\n crossedEntry = false;\n }\n }\n\n // No portal crossed\n if (crossedPair === null) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n // Teleport through the crossed portal\n if (crossedEntry) {\n this.teleport(this.getEntryToExitTransform(crossedPair));\n } else {\n this.teleport(this.getExitToEntryTransform(crossedPair));\n }\n\n this.camera.getWorldPosition(this.lastCameraWorld);\n\n // Call the portal's onCross callback if provided\n if (crossedPair.onCross) {\n // Call async callback but don't await (updateTeleportation is synchronous)\n // Errors will be logged but won't block teleportation\n Promise.resolve(crossedPair.onCross(crossedPair, crossedEntry)).catch(\n (error) => {\n console.error(\"Error in portal onCross callback:\", error);\n },\n );\n }\n }\n\n /**\n * Find the most relevant portal for rendering (closest to camera view direction).\n * Returns the portal pair and which portal (entry or exit) is primary.\n */\n private findPrimaryPortal(): {\n pair: PortalPair;\n primaryIsEntry: boolean;\n primaryPortal: THREE.Object3D;\n otherPortal: THREE.Object3D;\n } | null {\n if (this.portalPairs.length === 0) return null;\n\n this.camera.getWorldPosition(this.scratch.cameraWorldPos);\n this.camera.getWorldDirection(this.scratch.viewDir);\n\n let bestScore = Number.NEGATIVE_INFINITY;\n let bestPair: PortalPair | null = null;\n let bestIsEntry = true;\n\n for (const pair of this.portalPairs) {\n // Score entry portal\n pair.entryPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const entryDist = this.scratch.toPortal.length();\n const entryScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / entryDist;\n\n if (entryScore > bestScore) {\n bestScore = entryScore;\n bestPair = pair;\n bestIsEntry = true;\n }\n\n // Score exit portal\n pair.exitPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const exitDist = this.scratch.toPortal.length();\n const exitScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / exitDist;\n\n if (exitScore > bestScore) {\n bestScore = exitScore;\n bestPair = pair;\n bestIsEntry = false;\n }\n }\n\n if (!bestPair) return null;\n\n return {\n pair: bestPair,\n primaryIsEntry: bestIsEntry,\n primaryPortal: bestIsEntry ? bestPair.entryPortal : bestPair.exitPortal,\n otherPortal: bestIsEntry ? bestPair.exitPortal : bestPair.entryPortal,\n };\n }\n\n /**\n * Render the scene with portals using two-pass rendering.\n * Renders the most relevant portal pair (closest to camera view).\n * Call this instead of renderer.render() in your animation loop.\n */\n render(): void {\n const primary = this.findPrimaryPortal();\n\n // No portals - just render normally\n if (!primary) {\n if (this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras();\n this.prefetchActive = false;\n }\n this.renderer.autoClear = true;\n this.renderer.render(this.scene, this.camera);\n return;\n }\n\n if (!this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras([this.camera2]);\n this.prefetchActive = true;\n }\n\n const { pair, primaryIsEntry, primaryPortal, otherPortal } = primary;\n\n // Compute camera2 position (transformed through portal)\n const camera2Matrix = primaryIsEntry\n ? this.camera.matrixWorld\n .clone()\n .premultiply(this.getEntryToExitTransform(pair))\n : this.camera.matrixWorld\n .clone()\n .premultiply(this.getExitToEntryTransform(pair));\n camera2Matrix.decompose(\n this.camera2.position,\n this.camera2.quaternion,\n this.camera2.scale,\n );\n this.camera2.updateMatrixWorld(true);\n\n // Share lodInstances from portalRenderer to behindRenderer BEFORE Pass 1.\n // This uses previous frame's lodInstances (computed with main camera),\n // ensuring both passes use consistent splat selections to avoid flickering.\n this.shareLodInstances();\n\n // Pass 1: Behind portal view (uses shared lodInstances)\n this.setPortalDiskUniforms(this.camera2, otherPortal, pair.radius, true);\n this.renderer.autoClear = true;\n this.behindRenderer.render(this.scene, this.camera2);\n\n // Pass 2: Main view (updates portalRenderer's lodInstances for next frame)\n this.setPortalDiskUniforms(this.camera, primaryPortal, -pair.radius, true);\n this.renderer.autoClear = false;\n this.portalRenderer.render(this.scene, this.camera);\n }\n\n /**\n * Share lodInstances from portalRenderer to behindRenderer.\n * Uses previous frame's values to ensure both passes render consistent splats.\n */\n private shareLodInstances(): void {\n // Clear and copy lodInstances from portalRenderer to behindRenderer\n this.behindRenderer.lodInstances.clear();\n for (const [mesh, data] of this.portalRenderer.lodInstances) {\n this.behindRenderer.lodInstances.set(mesh, data);\n }\n }\n\n /**\n * Convenience hook for animation loop.\n * Calls updateTeleportation() then render().\n */\n animateLoopHook(): void {\n this.updateTeleportation();\n this.render();\n }\n\n /** Update camera2 aspect ratio on window resize */\n updateAspect(aspect: number): void {\n this.camera2.aspect = aspect;\n this.camera2.updateProjectionMatrix();\n }\n\n /** Dispose of resources */\n dispose(): void {\n this.scene.remove(this.portalRenderer);\n this.scene.remove(this.camera2);\n\n for (const pair of this.portalPairs) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n }\n this.portalPairs = [];\n\n this.portalRenderer.dispose();\n this.behindRenderer.dispose();\n }\n}\n"],"names":["THREE","QUAD_VERTICES","QUAD_INDICES","max","l","add","Inflate","Gunzip","_a","SplatFileType","dyno","inputs","_b","outputs","step","normalize","floatBitsToUint","uintBitsToFloat","bits","sign","exp","distance","b2","offset","BundledWorker","worker","maxWorkers","packedSplats","index","base","count","extSplats","covSplats","gsplat","flags","center","scales","quaternion","rgba","rgb","opacity","x","y","z","r","g","b","scale","rotate","translate","recolor","covsplat","rgbMinMaxLnScaleMinMax","viewCenter","viewDir","sortRadial","value","min","a","t","edge","edge0","edge1","cond","f","select","vector","w","swizzle","position","dir","texture","degrees","radians","sin","cos","tan","ptr","module","splatDefines","oldSplatVertex","oldSplatFragment","splatVertex","splatFragment","computeVec4Template","computeUvec4Vec4Template","computeUvec4x2Vec4Template","computeUvec4Template","FullScreenQuad","newArray","SplatEditSdfType","SplatEditRgbaBlendMode","uniform","sdfArray","numEdits","rgbaDisplaceEdits","textureSize","shaders","dot","now","instances","result","traverseStart","keyIndices","target","cubeCamera","dyno.DynoInt","dyno.DynoUsampler2D","dyno.DynoVec4","dyno.DynoBool","dyno.DynoVec3","lodSplats","dyno.DynoUsampler2DArray","dyno.dynoBlock","dyno.Dyno","dyno.unindentLines","dyno.Gsplat","dyno.defineGsplat","dyno.splitGsplat","dyno.normalize","dyno.sub","dyno.add","dyno.combineGsplat","array","init_wasm","edits","_","min_x","min_y","min_z","max_x","max_y","max_z","min_scale_x","min_scale_y","min_scale_z","max_scale_x","max_scale_y","max_scale_z","packed_position","packed_rotation","packed_scale","packed_color","SH_C0","length","Loader","FileLoader","numSplats","sortOrigin","sortDirection","sortDepthBias","sort360","generators","camera","scene","originToWorld","i32","section","i","input","transformPos","spz","SplatSkinningMode","skinning","color","metrics","JointEnum","JOINT_IDS","NUM_JOINTS","JOINT_INDEX","JOINT_RADIUS","JOINT_SEGMENTS","JOINT_SEGMENT_STEPS","JOINT_TIPS","FINGER_TIPS","Hand","HANDS","DEFAULT_MOVE_INERTIA","DEFAULT_ROTATE_INERTIA","Vector3","Quaternion","Color","Matrix4","gamepad"],"mappings":"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","x_google_ignoreList":[1]} \ No newline at end of file +{"version":3,"file":"spark.cjs.js","sources":["../src/defines.ts","../src/dyno/types.ts","../src/dyno/value.ts","../src/dyno/base.ts","../src/dyno/splats.ts","../src/dyno/output.ts","../src/dyno/uniforms.ts","../node_modules/fflate/esm/browser.js","../src/utils.ts","../src/dyno/program.ts","../src/dyno/mathTypes.ts","../src/dyno/math.ts","../src/dyno/logic.ts","../src/dyno/convert.ts","../src/dyno/vecmat.ts","../src/dyno/util.ts","../src/dyno/transform.ts","../src/dyno/control.ts","../src/dyno/texture.ts","../src/dyno/trig.ts","../src/shaders/computeUvec4.glsl","../src/shaders/computeUvec4_Vec4.glsl","../src/shaders/computeUvec4x2_Vec4.glsl","../src/shaders/computeVec4.glsl","../src/shaders/splatDefines.glsl","../src/shaders/splatFragment.glsl","../src/shaders/splatVertex.glsl","../src/shaders.ts","../src/Readback.ts","../src/SplatEdit.ts","../src/SplatGenerator.ts","../rust/spark-rs/pkg/spark_rs.js","../virtual:decode-64","../src/wasm.ts","../src/SplatWorker.ts","../src/PackedSplats.ts","../src/SplatLoader.ts","../src/ExtSplats.ts","../src/RgbaArray.ts","../src/SplatPager.ts","../src/SplatMesh.ts","../src/SplatAccumulator.ts","../src/SplatGeometry.ts","../src/SparkRenderer.ts","../src/ply.ts","../src/antisplat.ts","../src/ksplat.ts","../src/spz.ts","../src/SplatSkinning.ts","../src/splatConstructors.ts","../src/generators/static.ts","../src/generators/snow.ts","../src/modifiers/normalColor.ts","../src/modifiers/depthColor.ts","../src/SparkXr.ts","../src/hands.ts","../src/controls.ts","../src/SparkPortals.ts"],"sourcesContent":["// LN_SCALE_MIN..LN_SCALE_MAX define the internal scale range of for Gsplats,\n// covering approx 0.0001..8000 in range with discrete steps 7% apart.\n// The value \"0\" is reserved for truly flat scales, indicating a 2DGS.\n// If these values are changed, the corresponding values in splatDefines.glsl\n// must also be updated to match.\n\nexport const LN_SCALE_MIN = -12.0;\nexport const LN_SCALE_MAX = 9.0;\nexport const SCALE_MIN = Math.exp(LN_SCALE_MIN);\nexport const SCALE_MAX = Math.exp(LN_SCALE_MAX);\n\nexport const LN_SCALE_ZERO = -30.0;\nexport const SCALE_ZERO = Math.exp(LN_SCALE_ZERO);\n\n// Gsplats are stored in textures that are 2^11 x 2^11 x up to 2^11\n// Most WebGL2 implementations support 2D textures up to 2^12 x 2^12 (max 16M Gsplats)\n// 2D array textures and 3D textures up to 2^11 x 2^11 x 2^11 (max 8G Gsplats),\n// so we use 2D array textures for our representation for higher limits.\n\nexport const SPLAT_TEX_WIDTH_BITS = 11;\nexport const SPLAT_TEX_HEIGHT_BITS = 11;\nexport const SPLAT_TEX_DEPTH_BITS = 11;\nexport const SPLAT_TEX_LAYER_BITS =\n SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nexport const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS; // 2048\nexport const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS; // 2048\nexport const SPLAT_TEX_DEPTH = 1 << SPLAT_TEX_DEPTH_BITS; // 2048\nexport const SPLAT_TEX_MIN_HEIGHT = 1;\n\nexport const SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1;\nexport const SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1;\nexport const SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1;\n\n// Enable/disable Gsplat sorting via Rust WASM code. In testing the sorting\n// time between pure JS and WASM are minimal and don't make a big difference.\n\nexport const WASM_SPLAT_SORT = true;\n\n// Enable/disable compiling a dedicated parse function per element type\n// in the plyReader.\n\nexport const USE_COMPILED_PARSER_FUNCTION = true;\n\nexport enum SplatFileType {\n PLY = \"ply\",\n SPZ = \"spz\",\n SPLAT = \"splat\",\n KSPLAT = \"ksplat\",\n PCSOGS = \"pcsogs\",\n PCSOGSZIP = \"pcsogszip\",\n RAD = \"rad\",\n}\n\nexport type SplatEncoding = {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n sh1Max?: number;\n sh2Max?: number;\n sh3Max?: number;\n lodOpacity?: boolean;\n};\n\nexport const DEFAULT_SPLAT_ENCODING: SplatEncoding = {\n rgbMin: 0,\n rgbMax: 1,\n lnScaleMin: LN_SCALE_MIN,\n lnScaleMax: LN_SCALE_MAX,\n sh1Max: 1,\n sh2Max: 1,\n sh3Max: 1,\n lodOpacity: false,\n};\n\nexport type RadMeta = {\n version: number;\n type: string;\n count: number;\n maxSh?: number;\n lodTree?: boolean;\n chunkSize?: number;\n chunks: {\n offset: number;\n bytes: number;\n base?: number;\n count?: number;\n filename?: string;\n }[];\n splatEncoding?: SplatEncoding;\n};\n\nexport type PackedExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type PackedResult = {\n numSplats: number;\n packedArray: Uint32Array;\n extra: PackedExtra;\n splatEncoding: SplatEncoding;\n};\n\nexport type ExtExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3a?: Uint32Array;\n sh3b?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type ExtResult = {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: ExtExtra;\n};\n","import type * as THREE from \"three\";\n\nexport type BoolTypes = \"bool\" | \"bvec2\" | \"bvec3\" | \"bvec4\";\nexport type IntTypes = \"int\" | \"ivec2\" | \"ivec3\" | \"ivec4\";\nexport type UintTypes = \"uint\" | \"uvec2\" | \"uvec3\" | \"uvec4\";\nexport type AllIntTypes = IntTypes | UintTypes;\nexport type FloatTypes = \"float\" | \"vec2\" | \"vec3\" | \"vec4\";\nexport type ScalarTypes = \"uint\" | \"int\" | \"float\";\nexport type Vector2Types = \"vec2\" | \"ivec2\" | \"uvec2\";\nexport type Vector3Types = \"vec3\" | \"ivec3\" | \"uvec3\";\nexport type Vector4Types = \"vec4\" | \"ivec4\" | \"uvec4\";\nexport type VectorTypes = Vector2Types | Vector3Types | Vector4Types;\nexport type MatFloatTypes =\n | \"mat2\"\n | \"mat2x2\"\n | \"mat2x3\"\n | \"mat2x4\"\n | \"mat3\"\n | \"mat3x2\"\n | \"mat3x3\"\n | \"mat3x4\"\n | \"mat4\"\n | \"mat4x2\"\n | \"mat4x3\"\n | \"mat4x4\";\nexport type SquareMatTypes =\n | \"mat2\"\n | \"mat3\"\n | \"mat4\"\n | \"mat2x2\"\n | \"mat3x3\"\n | \"mat4x4\";\nexport type AllFloatTypes = FloatTypes | MatFloatTypes;\nexport type SignedTypes = IntTypes | FloatTypes;\nexport type AllSignedTypes = SignedTypes | MatFloatTypes;\nexport type ValueTypes = FloatTypes | IntTypes | UintTypes;\nexport type AllValueTypes = AllFloatTypes | IntTypes | UintTypes;\nexport type SimpleTypes = BoolTypes | AllValueTypes;\n\nexport type VectorElementType = A extends FloatTypes\n ? \"float\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nexport type SameSizeVec = T extends ScalarTypes\n ? \"float\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"vec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"vec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"vec4\"\n : never;\n\nexport type SameSizeUvec = T extends ScalarTypes\n ? \"uint\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"uvec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"uvec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"uvec4\"\n : never;\n\nexport type SameSizeIvec = T extends ScalarTypes\n ? \"int\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"ivec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"ivec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"ivec4\"\n : never;\n\nexport type SamplerTypes =\n | \"sampler2D\"\n | \"sampler2DArray\"\n | \"sampler3D\"\n | \"samplerCube\";\nexport type UsamplerTypes =\n | \"usampler2D\"\n | \"usampler2DArray\"\n | \"usampler3D\"\n | \"usamplerCube\";\nexport type IsamplerTypes =\n | \"isampler2D\"\n | \"isampler2DArray\"\n | \"isampler3D\"\n | \"isamplerCube\";\nexport type NormalSamplerTypes = SamplerTypes | UsamplerTypes | IsamplerTypes;\nexport type SamplerShadowTypes =\n | \"sampler2DShadow\"\n | \"sampler2DArrayShadow\"\n | \"samplerCubeShadow\";\nexport type AllSamplerTypes = NormalSamplerTypes | SamplerShadowTypes;\nexport type Sampler2DTypes =\n | \"sampler2D\"\n | \"usampler2D\"\n | \"isampler2D\"\n | \"sampler2DShadow\";\nexport type Sampler2DArrayTypes =\n | \"sampler2DArray\"\n | \"usampler2DArray\"\n | \"isampler2DArray\"\n | \"sampler2DArrayShadow\";\nexport type Sampler3DTypes = \"sampler3D\" | \"usampler3D\" | \"isampler3D\";\nexport type SamplerCubeTypes =\n | \"samplerCube\"\n | \"usamplerCube\"\n | \"isamplerCube\"\n | \"samplerCubeShadow\";\n\nexport function isBoolType(type: DynoType): boolean {\n return (\n type === \"bool\" || type === \"bvec2\" || type === \"bvec3\" || type === \"bvec4\"\n );\n}\n\nexport function isScalarType(type: DynoType): boolean {\n return type === \"int\" || type === \"uint\" || type === \"float\";\n}\n\nexport function isIntType(type: DynoType): boolean {\n return (\n type === \"int\" || type === \"ivec2\" || type === \"ivec3\" || type === \"ivec4\"\n );\n}\n\nexport function isUintType(type: DynoType): boolean {\n return (\n type === \"uint\" || type === \"uvec2\" || type === \"uvec3\" || type === \"uvec4\"\n );\n}\n\nexport function isFloatType(type: DynoType): boolean {\n return (\n type === \"float\" || type === \"vec2\" || type === \"vec3\" || type === \"vec4\"\n );\n}\n\nexport function isMatFloatType(type: DynoType): boolean {\n return (\n type === \"mat2\" ||\n type === \"mat2x2\" ||\n type === \"mat2x3\" ||\n type === \"mat2x4\" ||\n type === \"mat3\" ||\n type === \"mat3x2\" ||\n type === \"mat3x3\" ||\n type === \"mat3x4\" ||\n type === \"mat4\" ||\n type === \"mat4x2\" ||\n type === \"mat4x3\" ||\n type === \"mat4x4\"\n );\n}\n\nexport function isAllFloatType(type: DynoType): boolean {\n return isFloatType(type) || isMatFloatType(type);\n}\n\nexport function isVector2Type(type: DynoType): boolean {\n return type === \"vec2\" || type === \"ivec2\" || type === \"uvec2\";\n}\n\nexport function isVector3Type(type: DynoType): boolean {\n return type === \"vec3\" || type === \"ivec3\" || type === \"uvec3\";\n}\n\nexport function isVector4Type(type: DynoType): boolean {\n return type === \"vec4\" || type === \"ivec4\" || type === \"uvec4\";\n}\n\nexport function isVectorType(type: DynoType): boolean {\n return isVector2Type(type) || isVector3Type(type) || isVector4Type(type);\n}\n\nexport function isMat2(type: DynoType): boolean {\n return type === \"mat2\" || type === \"mat2x2\";\n}\nexport function isMat3(type: DynoType): boolean {\n return type === \"mat3\" || type === \"mat3x3\";\n}\nexport function isMat4(type: DynoType): boolean {\n return type === \"mat4\" || type === \"mat4x4\";\n}\n\nexport function vectorElementType(\n type: A,\n): VectorElementType {\n switch (type) {\n case \"vec2\":\n return \"float\" as VectorElementType;\n case \"vec3\":\n return \"float\" as VectorElementType;\n case \"vec4\":\n return \"float\" as VectorElementType;\n case \"ivec2\":\n return \"int\" as VectorElementType;\n case \"ivec3\":\n return \"int\" as VectorElementType;\n case \"ivec4\":\n return \"int\" as VectorElementType;\n case \"uvec2\":\n return \"uint\" as VectorElementType;\n case \"uvec3\":\n return \"uint\" as VectorElementType;\n case \"uvec4\":\n return \"uint\" as VectorElementType;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function vectorDim(type: A): number {\n switch (type) {\n case \"vec2\":\n case \"ivec2\":\n case \"uvec2\":\n return 2;\n case \"vec3\":\n case \"ivec3\":\n case \"uvec3\":\n return 3;\n case \"vec4\":\n case \"ivec4\":\n case \"uvec4\":\n return 4;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function sameSizeVec(type: T): SameSizeVec {\n if (isScalarType(type)) {\n return \"float\" as SameSizeVec;\n }\n if (isVector2Type(type)) {\n return \"vec2\" as SameSizeVec;\n }\n if (isVector3Type(type)) {\n return \"vec3\" as SameSizeVec;\n }\n if (isVector4Type(type)) {\n return \"vec4\" as SameSizeVec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeUvec(type: T): SameSizeUvec {\n if (isScalarType(type)) {\n return \"uint\" as SameSizeUvec;\n }\n if (isVector2Type(type)) {\n return \"uvec2\" as SameSizeUvec;\n }\n if (isVector3Type(type)) {\n return \"uvec3\" as SameSizeUvec;\n }\n if (isVector4Type(type)) {\n return \"uvec4\" as SameSizeUvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeIvec(type: T): SameSizeIvec {\n if (isScalarType(type)) {\n return \"int\" as SameSizeIvec;\n }\n if (isVector2Type(type)) {\n return \"ivec2\" as SameSizeIvec;\n }\n if (isVector3Type(type)) {\n return \"ivec3\" as SameSizeIvec;\n }\n if (isVector4Type(type)) {\n return \"ivec4\" as SameSizeIvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport type BaseType = SimpleTypes | AllSamplerTypes;\nexport type UserType = { type: string };\nexport type DynoType = BaseType | UserType;\n\nexport type DynoJsType = T extends \"bool\"\n ? boolean\n : T extends \"uint\"\n ? number\n : T extends \"int\"\n ? number\n : T extends \"float\"\n ? number\n : T extends \"bvec2\"\n ? [boolean, boolean]\n : T extends \"uvec2\"\n ? THREE.Vector2 | [number, number] | Uint32Array\n : T extends \"ivec2\"\n ? THREE.Vector2 | [number, number] | Int32Array\n : T extends \"vec2\"\n ? THREE.Vector2 | [number, number] | Float32Array\n : T extends \"bvec3\"\n ? [boolean, boolean, boolean]\n : T extends \"uvec3\"\n ? THREE.Vector3 | [number, number, number] | Uint32Array\n : T extends \"ivec3\"\n ? THREE.Vector3 | [number, number, number] | Int32Array\n : T extends \"vec3\"\n ?\n | THREE.Vector3\n | THREE.Color\n | [number, number, number]\n | Float32Array\n : T extends \"bvec4\"\n ? [boolean, boolean, boolean, boolean]\n : T extends \"uvec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Uint32Array\n : T extends \"ivec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Int32Array\n : T extends \"vec4\"\n ?\n | THREE.Vector4\n | THREE.Quaternion\n | [number, number, number, number]\n | Float32Array\n : T extends \"mat2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x3\"\n ? Float32Array\n : T extends \"mat2x4\"\n ? Float32Array\n : T extends \"mat3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x2\"\n ? Float32Array\n : T extends \"mat3x3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x4\"\n ? Float32Array\n : T extends \"mat4\"\n ? THREE.Matrix4 | Float32Array\n : T extends \"mat4x2\"\n ? Float32Array\n : T extends \"mat4x3\"\n ? Float32Array\n : T extends \"mat4x4\"\n ?\n | THREE.Matrix4\n | Float32Array\n : T extends \"usampler2D\"\n ? THREE.Texture\n : T extends \"isampler2D\"\n ? THREE.Texture\n : T extends \"sampler2D\"\n ? THREE.Texture\n : T extends \"sampler2DShadow\"\n ? THREE.Texture\n : T extends \"usampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"isampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArrayShadow\"\n ? THREE.Texture\n : T extends \"usampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"isampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"sampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"usamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"isamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCubeShadow\"\n ? THREE.Texture\n : unknown;\n\nexport function typeLiteral(type: DynoType): string {\n if (typeof type === \"string\") {\n return type;\n }\n if (typeof type === \"object\" && type.type) {\n return type.type;\n }\n throw new Error(`Invalid DynoType: ${String(type)}`);\n}\n\nexport function numberAsInt(value: number): string {\n return Math.trunc(value).toString();\n}\n\nexport function numberAsUint(value: number): string {\n const v = Math.max(0, Math.trunc(value));\n return `${v.toString()}u`;\n}\n\nexport function numberAsFloat(value: number): string {\n return value === Number.POSITIVE_INFINITY\n ? \"INFINITY\"\n : value === Number.NEGATIVE_INFINITY\n ? \"-INFINITY\"\n : Number.isInteger(value)\n ? value.toFixed(1)\n : value.toString();\n}\n","import * as THREE from \"three\";\n\nimport type { Dyno, IOTypes } from \"./base\";\nimport {\n type DynoJsType,\n type DynoType,\n type SimpleTypes,\n isAllFloatType,\n isBoolType,\n isIntType,\n isUintType,\n numberAsFloat,\n numberAsInt,\n numberAsUint,\n} from \"./types\";\n\nexport type DynoVal = DynoValue | HasDynoOut;\n\nexport function valType(val: DynoVal): T {\n if (val instanceof DynoValue) {\n return val.type;\n }\n const value = val.dynoOut();\n return value.type;\n}\n\nexport interface HasDynoOut {\n dynoOut(): DynoValue;\n}\n\nexport class DynoValue {\n type: T;\n // This field prevents TypeScript structural matching on objects with a \"type\" field\n private __isDynoValue = true;\n\n constructor(type: T) {\n this.type = type;\n }\n}\n\nexport class DynoOutput<\n T extends DynoType,\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends DynoValue {\n dyno: Dyno;\n key: string;\n\n constructor(dyno: Dyno, key: string) {\n super(dyno.outTypes[key] as T);\n this.dyno = dyno;\n this.key = key;\n }\n}\n\nexport class DynoLiteral extends DynoValue {\n literal: string;\n\n constructor(type: T, literal: string) {\n super(type);\n this.literal = literal;\n }\n\n getLiteral(): string {\n return this.literal;\n }\n}\n\nexport function dynoLiteral(\n type: T,\n literal: string,\n): DynoLiteral {\n return new DynoLiteral(type, literal);\n}\n\nexport class DynoConst extends DynoLiteral {\n value: DynoJsType;\n\n constructor(type: T, value: DynoJsType) {\n super(type, \"\");\n this.value = value;\n }\n\n getLiteral(): string {\n const { type, value } = this;\n switch (type) {\n case \"bool\":\n return value ? \"true\" : \"false\";\n case \"uint\":\n return numberAsUint(value as number);\n case \"int\":\n return numberAsInt(value as number);\n case \"float\":\n return numberAsFloat(value as number);\n case \"bvec2\": {\n const v = value as [boolean, boolean];\n return `bvec2(${v[0]}, ${v[1]})`;\n }\n case \"uvec2\": {\n if (value instanceof THREE.Vector2) {\n return `uvec2(${numberAsUint(value.x)}, ${numberAsUint(value.y)})`;\n }\n const v = value as [number, number] | Uint32Array;\n return `uvec2(${numberAsUint(v[0])}, ${numberAsUint(v[1])})`;\n }\n case \"ivec2\": {\n if (value instanceof THREE.Vector2) {\n return `ivec2(${numberAsInt(value.x)}, ${numberAsInt(value.y)})`;\n }\n const v = value as [number, number] | Int32Array;\n return `ivec2(${numberAsInt(v[0])}, ${numberAsInt(v[1])})`;\n }\n case \"vec2\": {\n if (value instanceof THREE.Vector2) {\n return `vec2(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)})`;\n }\n const v = value as [number, number] | Float32Array;\n return `vec2(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])})`;\n }\n case \"bvec3\": {\n const v = value as [boolean, boolean, boolean];\n return `bvec3(${v[0]}, ${v[1]}, ${v[2]})`;\n }\n case \"uvec3\": {\n if (value instanceof THREE.Vector3) {\n return `uvec3(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)})`;\n }\n const v = value as [number, number, number] | Uint32Array;\n return `uvec3(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])})`;\n }\n case \"ivec3\": {\n if (value instanceof THREE.Vector3) {\n return `ivec3(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)})`;\n }\n const v = value as [number, number, number] | Int32Array;\n return `ivec3(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])})`;\n }\n case \"vec3\": {\n if (value instanceof THREE.Vector3) {\n return `vec3(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)})`;\n }\n const v = value as [number, number, number] | Float32Array;\n return `vec3(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])})`;\n }\n case \"bvec4\": {\n const v = value as [boolean, boolean, boolean, boolean];\n return `bvec4(${v[0]}, ${v[1]}, ${v[2]}, ${v[3]})`;\n }\n case \"uvec4\": {\n if (value instanceof THREE.Vector4) {\n return `uvec4(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)}, ${numberAsUint(value.w)})`;\n }\n const v = value as [number, number, number, number] | Uint32Array;\n return `uvec4(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])}, ${numberAsUint(v[3])})`;\n }\n case \"ivec4\": {\n if (value instanceof THREE.Vector4) {\n return `ivec4(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)}, ${numberAsInt(value.w)})`;\n }\n const v = value as [number, number, number, number] | Int32Array;\n return `ivec4(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])}, ${numberAsInt(v[3])})`;\n }\n case \"vec4\": {\n if (value instanceof THREE.Vector4) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n if (value instanceof THREE.Quaternion) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n const v = value as [number, number, number, number] | Float32Array;\n return `vec4(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])}, ${numberAsFloat(v[3])})`;\n }\n case \"mat2\":\n case \"mat2x2\": {\n const m = value as DynoJsType<\"mat2\">;\n const e =\n m instanceof THREE.Matrix2 ? m.elements : (value as Float32Array);\n const arg = new Array(4).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x3\": {\n const e = value as DynoJsType<\"mat2x3\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x4\": {\n const e = value as DynoJsType<\"mat2x4\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3\":\n case \"mat3x3\": {\n const m = value as DynoJsType<\"mat3\">;\n const e =\n m instanceof THREE.Matrix3 ? m.elements : (value as Float32Array);\n const arg = new Array(9).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x2\": {\n const e = value as DynoJsType<\"mat3x2\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x4\": {\n const e = value as DynoJsType<\"mat3x4\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4\":\n case \"mat4x4\": {\n const m = value as DynoJsType<\"mat4\">;\n const e =\n m instanceof THREE.Matrix4 ? m.elements : (value as Float32Array);\n const arg = new Array(16).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x2\": {\n const e = value as DynoJsType<\"mat4x2\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x3\": {\n const e = value as DynoJsType<\"mat4x3\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n default:\n throw new Error(`Type not implemented: ${String(type)}`);\n }\n }\n}\n\nexport function dynoConst(\n type: T,\n value: DynoJsType,\n): DynoConst {\n return new DynoConst(type, value);\n}\n\nexport function literalZero(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(false)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(0.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(0)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(1u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalNegOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(-1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(-1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0xFFFFFFFFu)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n","import type { IUniform } from \"three\";\nimport type { DynoType } from \"./types\";\nimport {\n DynoLiteral,\n DynoOutput,\n type DynoVal,\n DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nconst DEFAULT_INDENT = \" \";\n\nexport class Compilation {\n globals: Set = new Set();\n statements: string[] = [];\n uniforms: Record = {};\n declares: Set = new Set();\n updaters: (() => void)[] = [];\n sequence = 0;\n indent: string = DEFAULT_INDENT;\n\n constructor({ indent }: { indent?: string } = {}) {\n this.indent = indent ?? DEFAULT_INDENT;\n }\n\n nextSequence() {\n return this.sequence++;\n }\n}\n\nexport type IOTypes = Record;\ntype GenerateContext = {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n};\n\nexport class Dyno {\n inTypes: InTypes;\n outTypes: OutTypes;\n\n inputs: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n }) {\n this.inTypes = inTypes ?? ({} as InTypes);\n this.outTypes = outTypes ?? ({} as OutTypes);\n this.inputs = inputs ?? {};\n this.update = update;\n\n this.globals = globals;\n this.statements = statements;\n this.generate =\n generate ??\n (({ inputs, outputs, compile }) => {\n return {\n globals: this.globals?.({ inputs, outputs, compile }),\n statements: this.statements?.({ inputs, outputs, compile }),\n };\n });\n }\n\n get outputs(): { [K in keyof OutTypes]: DynoVal } {\n const outputs = {} as { [K in keyof OutTypes]: DynoVal };\n for (const key in this.outTypes) {\n outputs[key] = new DynoOutput(this, key);\n }\n return outputs;\n }\n\n apply(inputs: { [K in keyof InTypes]?: DynoVal }): {\n [K in keyof OutTypes]: DynoVal;\n } {\n Object.assign(this.inputs, inputs);\n return this.outputs;\n }\n\n compile({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }): string[] {\n const result = [\n `// ${this.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`,\n ];\n\n const declares: (keyof OutTypes)[] = [];\n for (const key in outputs) {\n const name = outputs[key];\n if (name && !compile.declares.has(name)) {\n compile.declares.add(name);\n declares.push(key);\n }\n }\n\n const { globals, statements, uniforms } = this.generate({\n inputs,\n outputs,\n compile,\n });\n for (const global of globals ?? []) {\n compile.globals.add(global);\n }\n for (const key in uniforms) {\n compile.uniforms[key] = uniforms[key];\n }\n if (this.update) {\n compile.updaters.push(this.update);\n }\n\n for (const key of declares) {\n const name = outputs[key];\n if (name) {\n if (!compile.uniforms[name]) {\n result.push(`${dynoDeclare(name, this.outTypes[key])};`);\n }\n }\n }\n\n if (statements?.length) {\n result.push(\"{\");\n result.push(...statements.map((line) => compile.indent + line));\n result.push(\"}\");\n }\n return result;\n }\n}\n\nexport type DynoBlockType = (\n inputs: { [K in keyof InTypes]?: DynoVal },\n outputs: { [K in keyof OutTypes]?: DynoVal },\n { roots }: { roots: Dyno[] },\n) => { [K in keyof OutTypes]?: DynoVal } | undefined;\n\nexport class DynoBlock<\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends Dyno {\n construct: DynoBlockType;\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n construct,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n construct: DynoBlockType;\n }) {\n super({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n generate: (args) => this.generateBlock(args),\n });\n this.construct = construct;\n }\n\n generateBlock({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }) {\n const blockInputs: { [K in keyof InTypes]?: DynoVal } = {};\n const blockOutputs: { [K in keyof OutTypes]?: DynoVal } = {};\n\n for (const key in inputs) {\n if (inputs[key] != null) {\n blockInputs[key] = new DynoLiteral(this.inTypes[key], inputs[key]);\n }\n }\n for (const key in outputs) {\n if (outputs[key] != null) {\n blockOutputs[key] = new DynoValue(this.outTypes[key]);\n }\n }\n\n const options: { roots: Dyno[] } = { roots: [] };\n const returned = this.construct(blockInputs, blockOutputs, options);\n\n for (const global of this.globals?.({ inputs, outputs, compile }) ?? []) {\n compile.globals.add(global);\n }\n\n const ordering: Dyno[] = [];\n const nodeOuts = new Map<\n Dyno,\n { sequence: number; outNames: Map; newOuts: Set }\n >();\n\n function visit(\n node: Dyno,\n outKey?: string,\n outName?: string,\n ) {\n let outs = nodeOuts.get(node);\n if (!outs) {\n // First time visiting this node\n outs = {\n sequence: compile.nextSequence(),\n outNames: new Map(),\n newOuts: new Set(),\n };\n nodeOuts.set(node, outs);\n\n for (const key in node.inputs) {\n let input = node.inputs[key];\n while (input) {\n if (input instanceof DynoValue) {\n if (input instanceof DynoOutput) {\n visit(input.dyno, input.key);\n }\n break;\n }\n // Must be as HasDynoOut\n if (typeof input.dynoOut !== \"function\") {\n throw new Error(\n `dynoOut is not a function for ${input.constructor.name}`,\n );\n }\n input = input.dynoOut();\n }\n }\n ordering.push(node);\n }\n if (outKey) {\n if (!outName) {\n outs.newOuts.add(outKey);\n }\n outs.outNames.set(outKey, outName ?? `${outKey}_${outs.sequence}`);\n }\n }\n\n for (const root of options.roots) {\n visit(root);\n }\n\n for (const key in blockOutputs) {\n let value = returned?.[key] ?? blockOutputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoOutput) {\n visit(value.dyno, value.key, outputs[key]);\n }\n break;\n }\n // Must be as HasDynoOut\n value = value.dynoOut();\n }\n blockOutputs[key] = value;\n }\n\n const steps = [];\n\n for (const dyno of ordering) {\n // compile.statements.push(`// ${dyno.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`);\n\n const inputs: Record = {};\n const outputs: Record = {};\n\n for (const key in dyno.inputs) {\n let value = dyno.inputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoLiteral) {\n inputs[key] = value.getLiteral();\n } else if (value instanceof DynoOutput) {\n const source = nodeOuts.get(value.dyno)?.outNames.get(value.key);\n if (!source) {\n throw new Error(\n `Source not found for ${value.dyno.constructor.name}.${value.key}`,\n );\n }\n inputs[key] = source;\n }\n break;\n }\n // Must be as HasDynOut\n value = value.dynoOut();\n }\n }\n\n const outs = nodeOuts.get(dyno) ?? { outNames: new Map() };\n for (const [key, name] of outs.outNames.entries()) {\n outputs[key] = name;\n }\n\n const newSteps = dyno.compile({ inputs, outputs, compile });\n steps.push(newSteps);\n }\n\n const literalOutputs = [];\n for (const key in outputs) {\n if (blockOutputs[key] instanceof DynoLiteral) {\n literalOutputs.push(\n `${outputs[key]} = ${blockOutputs[key].getLiteral()};`,\n );\n }\n }\n if (literalOutputs.length > 0) {\n steps.push(literalOutputs);\n }\n\n const statements = steps.flatMap((step, index) => {\n // Add a blank line between steps\n return index === 0 ? step : [\"\", ...step];\n });\n return { statements };\n }\n}\n\nexport function dynoBlock<\n InTypes extends Record,\n OutTypes extends Record,\n>(\n inTypes: InTypes,\n outTypes: OutTypes,\n construct: DynoBlockType,\n { update, globals }: { update?: () => void; globals?: () => string[] } = {},\n) {\n return new DynoBlock({ inTypes, outTypes, construct, update, globals });\n}\n\nexport function dyno<\n InTypes extends Record,\n OutTypes extends Record,\n>({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n}: {\n inTypes: InTypes;\n outTypes: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n}) {\n return new Dyno({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n });\n}\n\nexport function dynoDeclare(name: string, type: DynoType, count?: number) {\n const typeStr = typeof type === \"string\" ? type : type.type;\n if (!typeStr) {\n throw new Error(`Invalid DynoType: ${String(type)}`);\n }\n return `${typeStr} ${name}${count != null ? `[${count}]` : \"\"}`;\n}\n\nexport function unindentLines(s: string): string[] {\n let seenNonEmpty = false;\n const lines = s\n .split(\"\\n\")\n .map((line) => {\n const trimmedLine = line.trimEnd();\n if (seenNonEmpty) {\n return trimmedLine;\n }\n if (trimmedLine.length > 0) {\n seenNonEmpty = true;\n return trimmedLine;\n }\n return null;\n })\n .filter((line) => line != null);\n while (lines.length > 0 && lines[lines.length - 1].length === 0) {\n lines.pop();\n }\n if (lines.length === 0) {\n return [];\n }\n\n const indent = lines[0].match(/^\\s*/)?.[0];\n if (!indent) {\n return lines; // No indent, return as is\n }\n // Remove indent from the beginning of each line\n const regex = new RegExp(`^${indent}`);\n return lines.map((line) => line.replace(regex, \"\"));\n}\n\nexport function unindent(s: string): string {\n return unindentLines(s).join(\"\\n\");\n}\n\nexport class UnaryOp<\n A extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n outKey,\n outTypeFunc,\n }: { a: DynoVal; outKey: OutKey; outTypeFunc: (aType: A) => OutType }) {\n const inTypes = { a: valType(a) };\n const outType = outTypeFunc(valType(a));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class BinaryOp<\n A extends DynoType,\n B extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b) };\n const outType = outTypeFunc(valType(a), valType(b));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class TrinaryOp<\n A extends DynoType,\n B extends DynoType,\n C extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B; c: C }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n c,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n c: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B, cType: C) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b), c: valType(c) };\n const outType = outTypeFunc(valType(a), valType(b), valType(c));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b, c } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n","import { Dyno, UnaryOp, unindent, unindentLines } from \"./base\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const Gsplat = { type: \"Gsplat\" } as { type: \"Gsplat\" };\nexport const CovSplat = { type: \"CovSplat\" } as { type: \"CovSplat\" };\nexport const TPackedSplats = { type: \"PackedSplats\" } as {\n type: \"PackedSplats\";\n};\nexport const TExtSplats = { type: \"ExtSplats\" } as {\n type: \"ExtSplats\";\n};\nexport const TCovSplats = { type: \"CovSplats\" } as {\n type: \"CovSplats\";\n};\n\nexport const numPackedSplats = (\n packedSplats: DynoVal,\n): DynoVal<\"int\"> => new NumPackedSplats({ packedSplats });\nexport const readPackedSplat = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadPackedSplat({ packedSplats, index });\nexport const readPackedSplatRange = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n base: DynoVal<\"int\">,\n count: DynoVal<\"int\">,\n): DynoVal =>\n new ReadPackedSplatRange({ packedSplats, index, base, count });\n\nexport const numExtSplats = (\n extSplats: DynoVal,\n): DynoVal<\"int\"> => new NumExtSplats({ extSplats });\nexport const readExtSplat = (\n extSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadExtSplat({ extSplats, index });\n\nexport const numCovSplats = (\n covsplats: DynoVal,\n): DynoVal<\"int\"> => new NumCovSplats({ covsplats });\nexport const readCovSplat = (\n covSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadCovSplat({ covSplats, index });\n\nexport const gsplatToCovSplat = (\n gsplat: DynoVal,\n): DynoVal => new GsplatToCovSplat({ gsplat });\n\nexport const splitGsplat = (gsplat: DynoVal) =>\n new SplitGsplat({ gsplat });\nexport const combineGsplat = ({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineGsplat({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\nexport const gsplatNormal = (gsplat: DynoVal): DynoVal<\"vec3\"> =>\n new GsplatNormal({ gsplat });\n\nexport const transformGsplat = (\n gsplat: DynoVal,\n {\n scale,\n rotate,\n translate,\n recolor,\n }: {\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n },\n): DynoVal => {\n return new TransformGsplat({ gsplat, scale, rotate, translate, recolor });\n};\n\nexport const splatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new SplatTexCoord({ index });\n\nexport const pagedSplatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new PagedSplatTexCoord({ index });\n\nexport const defineGsplat = unindent(`\n struct Gsplat {\n vec3 center;\n uint flags;\n vec3 scales;\n int index;\n vec4 quaternion;\n vec4 rgba;\n };\n const uint GSPLAT_FLAG_ACTIVE = 1u << 0u;\n\n bool isGsplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const defineCovSplat = unindent(`\n struct CovSplat {\n vec3 center;\n uint flags;\n vec4 rgba;\n vec3 xxyyzz;\n int index;\n vec3 xyxzyz;\n };\n\n bool isCovSplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const definePackedSplats = unindent(`\n struct PackedSplats {\n usampler2DArray textureArray;\n int numSplats;\n vec4 rgbMinMaxLnScaleMinMax;\n bool lodOpacity;\n };\n`);\n\nexport class NumPackedSplats extends UnaryOp<\n typeof TPackedSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({\n packedSplats,\n }: { packedSplats: DynoVal }) {\n super({ a: packedSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadPackedArray = unindent(`\n bool readPackedArray(usampler2DArray texture, int numSplats, vec4 rgbMinMaxLnScaleMinMax, int index, out Gsplat gsplat) {\n if ((index >= 0) && (index < numSplats)) {\n uvec4 packedData = texelFetch(texture, splatTexCoord(index), 0);\n unpackSplatEncoding(packedData, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba, rgbMinMaxLnScaleMinMax);\n return true;\n } else {\n return false;\n }\n }\n`);\n\nexport class ReadPackedSplat\n extends Dyno<\n { packedSplats: typeof TPackedSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n }: { packedSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { packedSplats: TPackedSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index } = inputs;\n let statements: string[];\n if (packedSplats && index) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class ReadPackedSplatRange\n extends Dyno<\n {\n packedSplats: typeof TPackedSplats;\n index: \"int\";\n base: \"int\";\n count: \"int\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n base,\n count,\n }: {\n packedSplats?: DynoVal;\n index?: DynoVal<\"int\">;\n base?: DynoVal<\"int\">;\n count?: DynoVal<\"int\">;\n }) {\n super({\n inTypes: {\n packedSplats: TPackedSplats,\n index: \"int\",\n base: \"int\",\n count: \"int\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index, base, count },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index, base, count } = inputs;\n let statements: string[];\n if (packedSplats && index && base && count) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineExtSplats = unindent(`\n struct ExtSplats {\n usampler2DArray textureArray1;\n usampler2DArray textureArray2;\n int numSplats;\n };\n`);\n\nexport class NumExtSplats extends UnaryOp<\n typeof TExtSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ extSplats }: { extSplats: DynoVal }) {\n super({ a: extSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadExtArrays = unindent(`\n void readExtArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out Gsplat gsplat) {\n gsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExt(packed1, packed2, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba);\n gsplat.flags = all(equal(gsplat.scales, vec3(0.0, 0.0, 0.0))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadExtSplat\n extends Dyno<\n { extSplats: typeof TExtSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n extSplats,\n index,\n }: { extSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { extSplats: TExtSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { extSplats, index },\n globals: () => [defineGsplat, defineExtSplats, defineReadExtArrays],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [`${gsplat}.flags = 0u;`];\n }\n const { extSplats, index } = inputs;\n let statements: string[];\n if (extSplats && index) {\n return unindentLines(`\n readExtArrays(${extSplats}.textureArray1, ${extSplats}.textureArray2, ${extSplats}.numSplats, ${index}, ${gsplat});\n `);\n }\n return [`${gsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class NumCovSplats extends UnaryOp<\n typeof TCovSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ covsplats }: { covsplats: DynoVal }) {\n super({ a: covsplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadCovArrays = unindent(`\n void readCovArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out CovSplat covsplat) {\n covsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExtCov(packed1, packed2, covsplat.center, covsplat.rgba, covsplat.xxyyzz, covsplat.xyxzyz);\n covsplat.flags = (all(equal(covsplat.xxyyzz, vec3(0.0))) && all(equal(covsplat.xyxzyz, vec3(0.0)))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadCovSplat\n extends Dyno<\n { covSplats: typeof TCovSplats; index: \"int\" },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covSplats,\n index,\n }: { covSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { covSplats: TCovSplats, index: \"int\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covSplats, index },\n globals: () => [defineGsplat, defineCovSplat, defineReadCovArrays],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = outputs;\n if (!covsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n const { covSplats, index } = inputs;\n let statements: string[];\n if (covSplats && index) {\n return unindentLines(`\n readCovArrays(${covSplats}.textureArray, ${covSplats}.numSplats, ${index}, ${covsplat});\n `);\n }\n return [`${covsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class GsplatToCovSplat extends Dyno<\n { gsplat: typeof Gsplat },\n { covsplat: typeof CovSplat }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: { covsplat: CovSplat },\n inputs: { gsplat },\n globals: () => [defineGsplat, defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const { covsplat } = outputs;\n if (!gsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n\n return unindentLines(`\n ${covsplat}.flags = 0u;\n if (isGsplatActive(${gsplat}.flags)) {\n ${covsplat}.flags = ${gsplat}.flags;\n ${covsplat}.index = ${gsplat}.index;\n ${covsplat}.rgba = ${gsplat}.rgba;\n ${covsplat}.center = ${gsplat}.center;\n mat3 m = scaleQuaternionToMatrix(${gsplat}.scales, ${gsplat}.quaternion);\n m = m * transpose(m);\n ${covsplat}.xxyyzz = vec3(m[0][0], m[1][1], m[2][2]);\n ${covsplat}.xyxzyz = vec3(m[0][1], m[0][2], m[1][2]);\n }\n `);\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplitGsplat extends Dyno<\n { gsplat: typeof Gsplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags ? null : `${flags} = ${gsplat ? `${gsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isGsplatActive(${gsplat ? `${gsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${gsplat ? `${gsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !scales\n ? null\n : `${scales} = ${gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !quaternion\n ? null\n : `${quaternion} = ${gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${gsplat ? `${gsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${gsplat ? `${gsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${gsplat ? `${gsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${gsplat ? `${gsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${gsplat ? `${gsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${gsplat ? `${gsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${gsplat ? `${gsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${gsplat ? `${gsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat: outGsplat } = outputs;\n if (!outGsplat) {\n return [];\n }\n const {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outGsplat}.flags = ${flags ?? (gsplat ? `${gsplat}.flags` : \"0u\")};`,\n `${outGsplat}.index = ${index ?? (gsplat ? `${gsplat}.index` : \"0\")};`,\n `${outGsplat}.center = ${center ?? (gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.scales = ${scales ?? (gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.quaternion = ${quaternion ?? (gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\")};`,\n `${outGsplat}.rgba = ${rgba ?? (gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outGsplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outGsplat}.rgba.a = ${opacity};`,\n !x ? null : `${outGsplat}.center.x = ${x};`,\n !y ? null : `${outGsplat}.center.y = ${y};`,\n !z ? null : `${outGsplat}.center.z = ${z};`,\n !r ? null : `${outGsplat}.rgba.r = ${r};`,\n !g ? null : `${outGsplat}.rgba.g = ${g};`,\n !b ? null : `${outGsplat}.rgba.b = ${b};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineGsplatNormal = unindent(`\n vec3 gsplatNormal(vec3 scales, vec4 quaternion) {\n float minScale = min(scales.x, min(scales.y, scales.z));\n vec3 normal;\n if (scales.z == minScale) {\n normal = vec3(0.0, 0.0, 1.0);\n } else if (scales.y == minScale) {\n normal = vec3(0.0, 1.0, 0.0);\n } else {\n normal = vec3(1.0, 0.0, 0.0);\n }\n return quatVec(quaternion, normal);\n }\n`);\n\nexport class GsplatNormal extends UnaryOp {\n constructor({ gsplat }: { gsplat: DynoVal }) {\n super({ a: gsplat, outKey: \"normal\", outTypeFunc: () => \"vec3\" });\n this.globals = () => [defineGsplat, defineGsplatNormal];\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normal} = gsplatNormal(${inputs.a}.scales, ${inputs.a}.quaternion);`,\n ];\n }\n}\n\nexport class TransformGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n scale: \"float\";\n rotate: \"vec4\";\n translate: \"vec3\";\n recolor: \"vec4\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n scale,\n rotate,\n translate,\n recolor,\n }: {\n gsplat?: DynoVal;\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n scale: \"float\",\n rotate: \"vec4\",\n translate: \"vec3\",\n recolor: \"vec4\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, scale, rotate, translate, recolor },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs, compile }) => {\n const { gsplat } = outputs;\n if (!gsplat || !inputs.gsplat) {\n return [];\n }\n const { scale, rotate, translate, recolor } = inputs;\n const indent = compile.indent;\n const statements = [\n `${gsplat} = ${inputs.gsplat};`,\n `if (isGsplatActive(${gsplat}.flags)) {`,\n\n scale ? `${indent}${gsplat}.center *= ${scale};` : null,\n rotate\n ? `${indent}${gsplat}.center = quatVec(${rotate}, ${gsplat}.center);`\n : null,\n translate ? `${indent}${gsplat}.center += ${translate};` : null,\n\n scale ? `${indent}${gsplat}.scales *= ${scale};` : null,\n\n rotate\n ? `${indent}${gsplat}.quaternion = quatQuat(${rotate}, ${gsplat}.quaternion);`\n : null,\n recolor ? `${indent}${gsplat}.rgba *= ${recolor};` : null,\n \"}\",\n ].filter(Boolean) as string[];\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const splitCovSplat = (covsplat: DynoVal) =>\n new SplitCovSplat({ covsplat });\nexport const combineCovSplat = ({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineCovSplat({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\n\nexport class SplitCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ covsplat }: { covsplat?: DynoVal }) {\n super({\n inTypes: { covsplat: CovSplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags\n ? null\n : `${flags} = ${covsplat ? `${covsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isCovSplatActive(${covsplat ? `${covsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${covsplat ? `${covsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${covsplat ? `${covsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${covsplat ? `${covsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${covsplat ? `${covsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${covsplat ? `${covsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${covsplat ? `${covsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${covsplat ? `${covsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${covsplat ? `${covsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${covsplat ? `${covsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineCovSplat\n extends Dyno<\n {\n covsplat: typeof CovSplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { covsplat: CovSplat },\n inputs: {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat: outCovSplat } = outputs;\n if (!outCovSplat) {\n return [];\n }\n const {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outCovSplat}.flags = ${flags ?? (covsplat ? `${covsplat}.flags` : \"0u\")};`,\n `${outCovSplat}.index = ${index ?? (covsplat ? `${covsplat}.index` : \"0\")};`,\n `${outCovSplat}.center = ${center ?? (covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outCovSplat}.rgba = ${rgba ?? (covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outCovSplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outCovSplat}.rgba.a = ${opacity};`,\n !x ? null : `${outCovSplat}.center.x = ${x};`,\n !y ? null : `${outCovSplat}.center.y = ${y};`,\n !z ? null : `${outCovSplat}.center.z = ${z};`,\n !r ? null : `${outCovSplat}.rgba.r = ${r};`,\n !g ? null : `${outCovSplat}.rgba.g = ${g};`,\n !b ? null : `${outCovSplat}.rgba.b = ${b};`,\n `${outCovSplat}.xxyyzz = ${covsplat ? `${covsplat}.xxyyzz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n `${outCovSplat}.xyxzyz = ${covsplat ? `${covsplat}.xyxzyz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = splatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n\nexport class PagedSplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = pagedSplatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n","import * as THREE from \"three\";\nimport { Dyno, unindentLines } from \"./base\";\nimport { CovSplat, Gsplat, defineCovSplat, defineGsplat } from \"./splats\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const outputPackedSplat = (\n gsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputPackedSplat({ gsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputCovSplat = (\n covsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputCovSplat({ covsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputExtendedSplat = (gsplat: DynoVal) =>\n new OutputExtendedSplat({ gsplat });\n\nexport const outputExtCovSplat = (covsplat: DynoVal) =>\n new OutputExtCovSplat({ covsplat });\n\nexport const outputSplatDepth = (\n gsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputSplatDepth({ gsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputCovSplatDepth = (\n covsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputCovSplatDepth({ covsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputRgba8 = (rgba8: DynoVal<\"vec4\">) =>\n new OutputRgba8({ rgba8 });\n\nexport class OutputPackedSplat extends Dyno<\n { gsplat: typeof Gsplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n gsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n gsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { gsplat: Gsplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { gsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (gsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n target = packSplatEncoding(${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u, 0u, 0u, 0u);\n }\n `);\n }\n return [\"target = uvec4(0u, 0u, 0u, 0u);\"];\n },\n });\n }\n}\n\nexport class OutputCovSplat extends Dyno<\n { covsplat: typeof CovSplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n covsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n covsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { covsplat: CovSplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { covsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (covsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n target = packSplatCovEncoding(${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtendedSplat extends Dyno<\n { gsplat: typeof Gsplat },\n Record\n> {\n constructor({\n gsplat,\n }: {\n gsplat?: DynoVal;\n }) {\n super({\n inTypes: { gsplat: Gsplat },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat } = inputs;\n if (gsplat) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n packSplatExt(target, target2, ${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n Record\n> {\n constructor({\n covsplat,\n }: {\n covsplat?: DynoVal;\n }) {\n super({\n inTypes: { covsplat: CovSplat },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat } = inputs;\n if (covsplat) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n packSplatExtCov(target, target2, ${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nclass OutputSplatDepth extends Dyno<\n {\n gsplat: typeof Gsplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n gsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n gsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { gsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (gsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isGsplatActive(${gsplat}.flags)) {\n vec3 center = ${gsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nclass OutputCovSplatDepth extends Dyno<\n {\n covsplat: typeof CovSplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n covsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n covsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { covsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (covsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isCovSplatActive(${covsplat}.flags)) {\n vec3 center = ${covsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nexport class OutputRgba8\n extends Dyno<{ rgba8: \"vec4\" }, { rgba8: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ rgba8 }: { rgba8?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { rgba8: \"vec4\" },\n inputs: { rgba8 },\n statements: ({ inputs, outputs }) => [\n `target = ${inputs.rgba8 ?? \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"rgba8\");\n }\n}\n","import type { IUniform } from \"three\";\nimport { Dyno, dynoDeclare } from \"./base\";\nimport type { DynoJsType, DynoType } from \"./types\";\nimport { DynoOutput, type DynoValue, type HasDynoOut } from \"./value\";\n\nexport const uniform = >(\n key: string,\n type: DynoType,\n value: V,\n) => new DynoUniform({ key, type, value });\nexport const dynoBool = (value = false, key?: string) =>\n new DynoBool({ key, value });\nexport const dynoUint = (value = 0, key?: string) =>\n new DynoUint({ key, value });\nexport const dynoInt = (value = 0, key?: string) => new DynoInt({ key, value });\nexport const dynoFloat = (value = 0.0, key?: string) =>\n new DynoFloat({ key, value });\n\nexport const dynoBvec2 = >(\n value: V,\n key?: string,\n) => new DynoBvec2({ key, value });\nexport const dynoUvec2 = >(\n value: V,\n key?: string,\n) => new DynoUvec2({ key, value });\nexport const dynoIvec2 = >(\n value: V,\n key?: string,\n) => new DynoIvec2({ key, value });\nexport const dynoVec2 = >(\n value: V,\n key?: string,\n) => new DynoVec2({ key, value });\n\nexport const dynoBvec3 = >(\n value: V,\n key?: string,\n) => new DynoBvec3({ key, value });\nexport const dynoUvec3 = >(\n value: V,\n key?: string,\n) => new DynoUvec3({ key, value });\nexport const dynoIvec3 = >(\n value: V,\n key?: string,\n) => new DynoIvec3({ key, value });\nexport const dynoVec3 = >(\n value: V,\n key?: string,\n) => new DynoVec3({ key, value });\n\nexport const dynoBvec4 = >(\n value: V,\n key?: string,\n) => new DynoBvec4({ key, value });\nexport const dynoUvec4 = >(\n value: V,\n key?: string,\n) => new DynoUvec4({ key, value });\nexport const dynoIvec4 = >(\n value: V,\n key?: string,\n) => new DynoIvec4({ key, value });\nexport const dynoVec4 = >(\n value: V,\n key?: string,\n) => new DynoVec4({ key, value });\n\nexport const dynoMat2 = >(\n value: V,\n key?: string,\n) => new DynoMat2({ key, value });\nexport const dynoMat2x2 = >(\n value: V,\n key?: string,\n) => new DynoMat2x2({ key, value });\nexport const dynoMat2x3 = >(\n value: V,\n key?: string,\n) => new DynoMat2x3({ key, value });\nexport const dynoMat2x4 = >(\n value: V,\n key?: string,\n) => new DynoMat2x4({ key, value });\n\nexport const dynoMat3 = >(\n value: V,\n key?: string,\n) => new DynoMat3({ key, value });\nexport const dynoMat3x2 = >(\n value: V,\n key?: string,\n) => new DynoMat3x2({ key, value });\nexport const dynoMat3x3 = >(\n value: V,\n key?: string,\n) => new DynoMat3x3({ key, value });\nexport const dynoMat3x4 = >(\n value: V,\n key?: string,\n) => new DynoMat3x4({ key, value });\n\nexport const dynoMat4 = >(\n value: V,\n key?: string,\n) => new DynoMat4({ key, value });\nexport const dynoMat4x2 = >(\n value: V,\n key?: string,\n) => new DynoMat4x2({ key, value });\nexport const dynoMat4x3 = >(\n value: V,\n key?: string,\n) => new DynoMat4x3({ key, value });\nexport const dynoMat4x4 = >(\n value: V,\n key?: string,\n) => new DynoMat4x4({ key, value });\n\nexport const dynoUsampler2D = >(\n value: V,\n key?: string,\n) => new DynoUsampler2D({ key, value });\nexport const dynoIsampler2D = >(\n value: V,\n key?: string,\n) => new DynoIsampler2D({ key, value });\nexport const dynoSampler2D = >(\n value: V,\n key?: string,\n) => new DynoSampler2D({ key, value });\n\nexport const dynoUsampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoUsampler2DArray({ key, value });\nexport const dynoIsampler2DArray = >(\n key: string,\n value: V,\n) => new DynoIsampler2DArray({ key, value });\nexport const dynoSampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoSampler2DArray({ key, value });\n\nexport const dynoUsampler3D = >(\n value: V,\n key?: string,\n) => new DynoUsampler3D({ key, value });\nexport const dynoIsampler3D = >(\n value: V,\n key?: string,\n) => new DynoIsampler3D({ key, value });\nexport const dynoSampler3D = >(\n value: V,\n key?: string,\n) => new DynoSampler3D({ key, value });\n\nexport const dynoUsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoUsamplerCube({ key, value });\nexport const dynoIsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoIsamplerCube({ key, value });\nexport const dynoSamplerCube = >(\n value: V,\n key?: string,\n) => new DynoSamplerCube({ key, value });\n\nexport const dynoSampler2DShadow = >(\n value: V,\n key?: string,\n) => new DynoSampler2DShadow({ key, value });\nexport const dynoSampler2DArrayShadow = <\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSampler2DArrayShadow({ key, value });\nexport const dynoSamplerCubeShadow = <\n V extends DynoJsType<\"samplerCubeShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSamplerCubeShadow({ key, value });\n\nexport class DynoUniform<\n T extends DynoType,\n K extends string = \"value\",\n V extends DynoJsType = DynoJsType,\n >\n extends Dyno, { [key in K]: T }>\n implements HasDynoOut\n{\n public type: T;\n public count?: number;\n public outKey: K;\n public value: V;\n public uniform: { value: V; type?: string };\n\n constructor({\n key,\n type,\n count,\n value,\n update,\n globals,\n }: {\n key?: K;\n type: T;\n count?: number;\n value: V;\n update?: (value: V) => V | undefined;\n globals?: ({\n inputs,\n outputs,\n }: { inputs: unknown; outputs: { [key in K]?: string } }) => string[];\n }) {\n key = (key ?? \"value\") as K;\n super({\n outTypes: { [key]: type } as { [key in K]: T },\n update: () => {\n if (update) {\n const value = update(this.value);\n if (value !== undefined) {\n this.value = value;\n }\n }\n this.uniform.value = this.value;\n },\n generate: ({ inputs, outputs }) => {\n const allGlobals = globals?.({ inputs, outputs }) ?? [];\n const uniforms: Record = {};\n const name = outputs[key];\n if (name) {\n allGlobals.push(`uniform ${dynoDeclare(name, type, count)};`);\n uniforms[name] = this.uniform;\n }\n return { globals: allGlobals, uniforms };\n },\n });\n this.type = type;\n this.count = count;\n this.value = value;\n this.uniform = { value };\n this.outKey = key;\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class DynoBool extends DynoUniform<\n \"bool\",\n K,\n boolean\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: boolean;\n update?: (value: boolean) => boolean | undefined;\n }) {\n super({ key, type: \"bool\", value, update });\n }\n}\n\nexport class DynoUint extends DynoUniform<\"uint\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"uint\", value, update });\n }\n}\n\nexport class DynoInt extends DynoUniform<\"int\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"int\", value, update });\n }\n}\n\nexport class DynoFloat extends DynoUniform<\n \"float\",\n K,\n number\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"float\", value, update });\n }\n}\n\nexport class DynoBvec2<\n K extends string,\n V extends DynoJsType<\"bvec2\">,\n> extends DynoUniform<\"bvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec2\", value, update });\n }\n}\n\nexport class DynoUvec2<\n K extends string,\n V extends DynoJsType<\"uvec2\">,\n> extends DynoUniform<\"uvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec2\", value, update });\n }\n}\n\nexport class DynoIvec2<\n K extends string,\n V extends DynoJsType<\"ivec2\">,\n> extends DynoUniform<\"ivec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec2\", value, update });\n }\n}\n\nexport class DynoVec2<\n K extends string,\n V extends DynoJsType<\"vec2\">,\n> extends DynoUniform<\"vec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec2\", value, update });\n }\n}\n\nexport class DynoBvec3<\n K extends string,\n V extends DynoJsType<\"bvec3\">,\n> extends DynoUniform<\"bvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec3\", value, update });\n }\n}\n\nexport class DynoUvec3<\n V extends DynoJsType<\"uvec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"uvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec3\", value, update });\n }\n}\n\nexport class DynoIvec3<\n V extends DynoJsType<\"ivec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"ivec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec3\", value, update });\n }\n}\n\nexport class DynoVec3<\n V extends DynoJsType<\"vec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec3\", value, update });\n }\n}\n\nexport class DynoBvec4<\n K extends string,\n V extends DynoJsType<\"bvec4\">,\n> extends DynoUniform<\"bvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec4\", value, update });\n }\n}\n\nexport class DynoUvec4<\n K extends string,\n V extends DynoJsType<\"uvec4\">,\n> extends DynoUniform<\"uvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec4\", value, update });\n }\n}\n\nexport class DynoIvec4<\n K extends string,\n V extends DynoJsType<\"ivec4\">,\n> extends DynoUniform<\"ivec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec4\", value, update });\n }\n}\n\nexport class DynoVec4<\n V extends DynoJsType<\"vec4\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec4\", value, update });\n }\n}\n\nexport class DynoMat2<\n K extends string,\n V extends DynoJsType<\"mat2\">,\n> extends DynoUniform<\"mat2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2\", value, update });\n }\n}\n\nexport class DynoMat2x2<\n K extends string,\n V extends DynoJsType<\"mat2x2\">,\n> extends DynoUniform<\"mat2x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x2\", value, update });\n }\n}\n\nexport class DynoMat2x3<\n K extends string,\n V extends DynoJsType<\"mat2x3\">,\n> extends DynoUniform<\"mat2x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x3\", value, update });\n }\n}\n\nexport class DynoMat2x4<\n K extends string,\n V extends DynoJsType<\"mat2x4\">,\n> extends DynoUniform<\"mat2x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x4\", value, update });\n }\n}\n\nexport class DynoMat3<\n K extends string,\n V extends DynoJsType<\"mat3\">,\n> extends DynoUniform<\"mat3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3\", value, update });\n }\n}\n\nexport class DynoMat3x2<\n K extends string,\n V extends DynoJsType<\"mat3x2\">,\n> extends DynoUniform<\"mat3x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x2\", value, update });\n }\n}\n\nexport class DynoMat3x3<\n K extends string,\n V extends DynoJsType<\"mat3x3\">,\n> extends DynoUniform<\"mat3x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x3\", value, update });\n }\n}\n\nexport class DynoMat3x4<\n K extends string,\n V extends DynoJsType<\"mat3x4\">,\n> extends DynoUniform<\"mat3x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x4\", value, update });\n }\n}\n\nexport class DynoMat4<\n K extends string,\n V extends DynoJsType<\"mat4\">,\n> extends DynoUniform<\"mat4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4\", value, update });\n }\n}\n\nexport class DynoMat4x2<\n K extends string,\n V extends DynoJsType<\"mat4x2\">,\n> extends DynoUniform<\"mat4x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x2\", value, update });\n }\n}\n\nexport class DynoMat4x3<\n K extends string,\n V extends DynoJsType<\"mat4x3\">,\n> extends DynoUniform<\"mat4x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x3\", value, update });\n }\n}\n\nexport class DynoMat4x4<\n K extends string,\n V extends DynoJsType<\"mat4x4\">,\n> extends DynoUniform<\"mat4x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x4\", value, update });\n }\n}\n\nexport class DynoUsampler2D<\n K extends string,\n V extends DynoJsType<\"usampler2D\">,\n> extends DynoUniform<\"usampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2D\", value, update });\n }\n}\n\nexport class DynoIsampler2D<\n K extends string,\n V extends DynoJsType<\"isampler2D\">,\n> extends DynoUniform<\"isampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2D\", value, update });\n }\n}\n\nexport class DynoSampler2D<\n K extends string,\n V extends DynoJsType<\"sampler2D\">,\n> extends DynoUniform<\"sampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2D\", value, update });\n }\n}\n\nexport class DynoUsampler2DArray<\n K extends string,\n V extends DynoJsType<\"usampler2DArray\">,\n> extends DynoUniform<\"usampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2DArray\", value, update });\n }\n}\n\nexport class DynoIsampler2DArray<\n K extends string,\n V extends DynoJsType<\"isampler2DArray\">,\n> extends DynoUniform<\"isampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2DArray\", value, update });\n }\n}\n\nexport class DynoSampler2DArray<\n K extends string,\n V extends DynoJsType<\"sampler2DArray\">,\n> extends DynoUniform<\"sampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArray\", value, update });\n }\n}\n\nexport class DynoUsampler3D<\n K extends string,\n V extends DynoJsType<\"usampler3D\">,\n> extends DynoUniform<\"usampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler3D\", value, update });\n }\n}\n\nexport class DynoIsampler3D<\n K extends string,\n V extends DynoJsType<\"isampler3D\">,\n> extends DynoUniform<\"isampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler3D\", value, update });\n }\n}\n\nexport class DynoSampler3D<\n K extends string,\n V extends DynoJsType<\"sampler3D\">,\n> extends DynoUniform<\"sampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler3D\", value, update });\n }\n}\n\nexport class DynoUsamplerCube<\n K extends string,\n V extends DynoJsType<\"usamplerCube\">,\n> extends DynoUniform<\"usamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usamplerCube\", value, update });\n }\n}\n\nexport class DynoIsamplerCube<\n K extends string,\n V extends DynoJsType<\"isamplerCube\">,\n> extends DynoUniform<\"isamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isamplerCube\", value, update });\n }\n}\n\nexport class DynoSamplerCube<\n K extends string,\n V extends DynoJsType<\"samplerCube\">,\n> extends DynoUniform<\"samplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCube\", value, update });\n }\n}\n\nexport class DynoSampler2DShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DShadow\">,\n> extends DynoUniform<\"sampler2DShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DShadow\", value, update });\n }\n}\n\nexport class DynoSampler2DArrayShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n> extends DynoUniform<\"sampler2DArrayShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArrayShadow\", value, update });\n }\n}\n\nexport class DynoSamplerCubeShadow<\n K extends string,\n V extends DynoJsType<\"samplerCubeShadow\">,\n> extends DynoUniform<\"samplerCubeShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCubeShadow\", value, update });\n }\n}\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","import { Gunzip } from \"fflate\";\nimport * as THREE from \"three\";\n\n// Miscellaneous utility functions for Spark\n\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SCALE_ZERO,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_MIN_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines.js\";\nimport { unindent } from \"./dyno/base.js\";\n\nexport const threeRevision = Number.parseInt(THREE.REVISION);\nexport const threeMrtArray = threeRevision >= 179;\n\nconst f32buffer = new Float32Array(1);\nconst u32buffer = new Uint32Array(f32buffer.buffer);\nconst supportsFloat16Array = \"Float16Array\" in globalThis;\nconst f16buffer = supportsFloat16Array\n ? new globalThis[\"Float16Array\" as keyof typeof globalThis](1)\n : null;\nconst u16buffer = new Uint16Array(f16buffer?.buffer);\n\n// Returns a normalized array of numbers\nexport function normalize(vec: number[]) {\n const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0));\n return vec.map((v) => v / norm);\n}\n\n// Reinterpret the bits of a float32 as a uint32\nexport function floatBitsToUint(f: number): number {\n f32buffer[0] = f;\n return u32buffer[0];\n}\n\n// Reinterpret the bits of a uint32 as a float32\nexport function uintBitsToFloat(u: number): number {\n u32buffer[0] = u;\n return f32buffer[0];\n}\n\nexport const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS;\nexport const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS;\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfNative(f: number): number {\n f16buffer[0] = f;\n return u16buffer[0];\n}\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfJS(f: number): number {\n // Store the value into the shared Float32 array.\n f32buffer[0] = f;\n const bits = u32buffer[0];\n\n // Extract sign (1 bit), exponent (8 bits), and fraction (23 bits)\n const sign = (bits >> 31) & 0x1;\n const exp = (bits >> 23) & 0xff;\n const frac = bits & 0x7fffff;\n const halfSign = sign << 15;\n\n // Handle special cases: NaN and Infinity\n if (exp === 0xff) {\n // NaN: set all exponent bits to 1 and some nonzero fraction bits.\n if (frac !== 0) {\n return halfSign | 0x7fff;\n }\n // Infinity\n return halfSign | 0x7c00;\n }\n\n // Adjust the exponent from float32 bias (127) to float16 bias (15)\n const newExp = exp - 127 + 15;\n\n // Handle overflow: too large to represent in half precision.\n if (newExp >= 0x1f) {\n return halfSign | 0x7c00; // Infinity\n }\n if (newExp <= 0) {\n // Handle subnormals and underflow.\n if (newExp < -10) {\n // Too small: underflows to zero.\n return halfSign;\n }\n // Convert to subnormal: add the implicit leading 1 to the fraction,\n // then shift to align with the half-precision's 10 fraction bits.\n const subFrac = (frac | 0x800000) >> (1 - newExp + 13);\n return halfSign | subFrac;\n }\n\n // Normalized half-precision number: shift fraction to fit into 10 bits.\n const halfFrac = frac >> 13;\n return halfSign | (newExp << 10) | halfFrac;\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfNative(u: number): number {\n u16buffer[0] = u;\n return f16buffer[0];\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfJS(h: number): number {\n // Extract the sign (1 bit), exponent (5 bits), and fraction (10 bits)\n const sign = (h >> 15) & 0x1;\n const exp = (h >> 10) & 0x1f;\n const frac = h & 0x3ff;\n\n let f32bits: number;\n\n if (exp === 0) {\n if (frac === 0) {\n // Zero (positive or negative)\n f32bits = sign << 31;\n } else {\n // Subnormal half-precision number.\n // Normalize the subnormal number:\n let mant = frac;\n let e = -14; // For half, the exponent for subnormals is fixed at -14.\n // Shift left until the implicit leading 1 is in place.\n while ((mant & 0x400) === 0) {\n // 0x400 === 1 << 10\n mant <<= 1;\n e--;\n }\n // Remove the leading 1 (which is now implicit)\n mant &= 0x3ff;\n // Convert the half exponent (e) to the 32-bit float exponent:\n const newExp = e + 127; // 32-bit float bias is 127.\n const newFrac = mant << 13; // Align to 23-bit fraction (23 - 10 = 13)\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n } else if (exp === 0x1f) {\n // Handle special cases for Infinity and NaN.\n if (frac === 0) {\n // Infinity\n f32bits = (sign << 31) | 0x7f800000;\n } else {\n // NaN (we choose a quiet NaN)\n f32bits = (sign << 31) | 0x7fc00000;\n }\n } else {\n // Normalized half-precision number.\n // Adjust exponent from half (bias 15) to float32 (bias 127)\n const newExp = exp - 15 + 127;\n const newFrac = frac << 13;\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n\n // Write the 32-bit bit pattern to the shared buffer,\n // then read it as a float32 to return a JavaScript number.\n u32buffer[0] = f32bits;\n return f32buffer[0];\n}\n\n// Convert a number 0..1 to a 0..255 uint\nexport function floatToUint8(v: number): number {\n // Converts from 0..1 float to 0..255 uint8\n return Math.max(0, Math.min(255, Math.round(v * 255)));\n}\n\n// Convert a number -1..1 to a -127..127 int\nexport function floatToSint8(v: number): number {\n // Converts from -1..1 float to -127..127 int8\n return Math.max(-127, Math.min(127, Math.round(v * 127)));\n}\n\n// Convert a 0..255 uint to a 0..1 float\nexport function Uint8ToFloat(v: number): number {\n // Converts from 0..255 uint8 to 0..1 float\n return v / 255;\n}\n\n// Convert a -127..127 int to a -1..1 float\nexport function Sint8ToFloat(v: number): number {\n // Converts from -127..127 int8 to -1..1 float\n return v / 127;\n}\n\n// A simple utility class for caching a fixed number of items\nexport class DataCache {\n // Maximum number of items to cache\n maxItems: number;\n\n // Function to fetch data for a key\n asyncFetch: (key: string) => Promise;\n\n // Function to dispose of data when it is no longer needed\n dispose?: (data: unknown) => void;\n\n // Array of cached items\n items: { key: string; data: unknown }[];\n\n // In-progress fetch promises\n pending: Map>;\n\n // Create a DataCache with a given function that fetches data not in the cache.\n constructor({\n asyncFetch,\n dispose,\n maxItems = 5,\n }: {\n asyncFetch: (key: string) => Promise;\n dispose?: (data: unknown) => void;\n maxItems?: number;\n }) {\n this.asyncFetch = asyncFetch;\n this.dispose = dispose;\n this.maxItems = maxItems;\n this.items = [];\n this.pending = new Map();\n }\n\n has(key: string): boolean {\n return this.items.some((item) => item.key === key);\n }\n\n getImmediate(key: string): unknown | undefined {\n const index = this.items.findIndex((item) => item.key === key);\n if (index >= 0) {\n // Data exists in our cache, move it to the end of the array\n const item = this.items.splice(index, 1)[0];\n this.items.push(item);\n // Return the cached data\n return item.data;\n }\n return undefined;\n }\n\n // Fetch data for the key, returning cached data if available.\n async getFetch(key: string): Promise {\n const immediate = this.getImmediate(key);\n if (immediate !== undefined) {\n return immediate;\n }\n\n let pending = this.pending.get(key);\n if (pending) {\n return pending;\n }\n\n pending = this.asyncFetch(key).then((data) => {\n this.pending.delete(key);\n\n // Add the data to the cache\n this.items.push({ key, data });\n // If the cache is too large, remove the oldest accessed item\n while (this.items.length > this.maxItems) {\n const removed = this.items.shift();\n if (removed && this.dispose) {\n this.dispose(removed.data);\n }\n }\n // Return the fetched data\n return data;\n });\n this.pending.set(key, pending);\n return pending;\n }\n}\n\n// Like Array.map but for objects\nexport function mapObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n const entries = Object.entries(obj).map(([key, value]) => [\n key,\n fn(value, key),\n ]);\n // Returns a new object with the mapped values\n return Object.fromEntries(entries);\n}\n\n// Like Array.map().filter() but for objects.\n// The callback fn() should return undefined to filter out the key.\nexport function mapFilterObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n // If no return (or return undefined), the key is not included in the result\n const entries = Object.entries(obj)\n .map(([key, value]) => [key, fn(value, key)])\n .filter(([_, value]) => value !== undefined);\n // Returns a new object with the filtered values\n return Object.fromEntries(entries);\n}\n\n// Recursively finds all ArrayBuffers in an object and returns them as an array\n// to use as transferable objects to send between workers.\nexport function getTransferable(ctx: unknown): Transferable[] {\n const buffers: Transferable[] = [];\n const seen = new Set();\n\n function traverse(obj: unknown) {\n if (obj && typeof obj === \"object\" && !seen.has(obj)) {\n seen.add(obj);\n\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n // Handles TypedArrays and DataView\n buffers.push(obj.buffer as ArrayBuffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n\n traverse(ctx);\n return buffers;\n}\n\n// Create an array of the given size and initialize element with initFunction()\nexport function newArray(\n n: number,\n initFunction: (index: number) => T,\n): T[] {\n // Creates a new array and calls a constructor function for each element with index\n return new Array(n).fill(null).map((_, i) => initFunction(i));\n}\n\n// A free list that has a pool of items of type T, with callbacks\n// for constructing, disposing, and checking if an item is valid for the given args.\nexport class FreeList {\n items: T[];\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n\n constructor({\n // Allocate a new item with the given args\n allocate,\n // Dispose of an item (optional, if GC is enough)\n dispose,\n // Check if an existing item in the list is valid for the given args,\n // allowing you to store heterogeneous items in the list.\n valid,\n }: {\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n }) {\n this.items = [];\n this.allocate = allocate;\n this.dispose = dispose;\n this.valid = valid;\n }\n\n // Allocate a new item from the free list, first checking if a existing item\n // on the freelist is valid for the given args.\n alloc(args: Args): T {\n while (true) {\n const item = this.items.pop();\n if (!item) {\n // No items in the free list, allocate a new one\n break;\n }\n if (this.valid(item, args)) {\n // Found a valid item, return it\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): found valid item. Reusing...`);\n return item;\n }\n // Item isn't valid for our args, dispose of it and try again\n if (this.dispose) {\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): disposing invalid item.`);\n this.dispose(item);\n }\n }\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): allocating new item`);\n return this.allocate(args);\n }\n\n free(item: T) {\n // Return item to the free list\n this.items.push(item);\n }\n\n disposeAll() {\n // Disposes of all items in the free list\n let item: T | undefined;\n item = this.items.pop();\n while (item) {\n if (this.dispose) {\n this.dispose(item);\n }\n item = this.items.pop();\n }\n }\n}\n\nexport function encodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) {\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n extA[i4] = floatBitsToUint(x);\n extA[i4 + 1] = floatBitsToUint(y);\n extA[i4 + 2] = floatBitsToUint(z);\n extA[i4 + 3] = toHalf(opacity);\n extB[i4] = toHalf(r) | (toHalf(g) << 16);\n extB[i4 + 1] = toHalf(b) | (toHalf(Math.log(scaleX)) << 16);\n extB[i4 + 2] = toHalf(Math.log(scaleY)) | (toHalf(Math.log(scaleZ)) << 16);\n extB[i4 + 3] = encodeQuatOctXy1010R12(quatX, quatY, quatZ, quatW);\n}\n\nexport function decodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n result.center.x = uintBitsToFloat(extA[i4]);\n result.center.y = uintBitsToFloat(extA[i4 + 1]);\n result.center.z = uintBitsToFloat(extA[i4 + 2]);\n result.opacity = fromHalf(extA[i4 + 3] & 0xffff);\n result.color.r = fromHalf(extB[i4] & 0xffff);\n result.color.g = fromHalf(extB[i4] >>> 16);\n result.color.b = fromHalf(extB[i4 + 1] & 0xffff);\n result.scales.x = Math.exp(fromHalf(extB[i4 + 1] >>> 16));\n result.scales.y = Math.exp(fromHalf(extB[i4 + 2] & 0xffff));\n result.scales.z = Math.exp(fromHalf(extB[i4 + 2] >>> 16));\n decodeQuatOctXy1010R12(extB[i4 + 3], result.quaternion);\n return result;\n}\n\n// Encode a PackedSplat as 4 consecutive Uint32 elements in the packedSplats array.\n// The center coordinates x,y,z are encoded as float16, the scales x,y,z as a\n// logarithmic uint8, rotation as three uint8s representing rotation axis and angle,\n// and RGBA as 4xuint8.\nexport function setPackedSplat(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * opacity : opacity);\n\n // Alternate internal encodings commented out below.\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n // Encode the splat as 4 consecutive Uint32 elements\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] =\n uScaleX | (uScaleY << 8) | (uScaleZ << 16) | (uQuatZ << 24);\n}\n\n// Encode the center coordinates x,y,z in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatCenter(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n) {\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n const i4 = index * 4;\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (packedSplats[i4 + 2] & 0xffff0000);\n}\n\n// Encode the scales x,y,z in the packedSplats Uint32Array, leaving all other fields as is.\nexport function setPackedSplatScales(\n packedSplats: Uint32Array,\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n encoding?: {\n lnScaleMin?: number;\n lnScaleMax?: number;\n },\n) {\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const i4 = index * 4;\n packedSplats[i4 + 3] =\n uScaleX |\n (uScaleY << 8) |\n (uScaleZ << 16) |\n (packedSplats[i4 + 3] & 0xff000000);\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempQuaternion = new THREE.Quaternion();\n\n// Encode the rotation quatX, quatY, quatZ, quatW in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatQuat(\n packedSplats: Uint32Array,\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n) {\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n const i4 = index * 4;\n packedSplats[i4 + 2] =\n (packedSplats[i4 + 2] & 0x0000ffff) | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] = (packedSplats[i4 + 3] & 0x00ffffff) | (uQuatZ << 24);\n}\n\n// Encode the RGBA color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgba(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n a: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * a : a);\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n}\n\n// Encode the RGB color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgb(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n\n const i4 = index * 4;\n packedSplats[i4] =\n uR | (uG << 8) | (uB << 16) | (packedSplats[i4] & 0xff000000);\n}\n\n// Encode the opacity in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatOpacity(\n packedSplats: Uint32Array,\n index: number,\n opacity: number,\n) {\n const uA = floatToUint8(opacity);\n\n const i4 = index * 4;\n packedSplats[i4] = (packedSplats[i4] & 0x00ffffff) | (uA << 24);\n}\n\nconst packedCenter = new THREE.Vector3();\nconst packedScales = new THREE.Vector3();\nconst packedQuaternion = new THREE.Quaternion();\nconst packedColor = new THREE.Color();\nconst packedFields = {\n center: packedCenter,\n scales: packedScales,\n quaternion: packedQuaternion,\n color: packedColor,\n opacity: 0.0,\n};\n\n// Unpack all components of a PackedSplat from the packedSplats Uint32Array into\n// THREE.js vector objects. The returned objects will be reused each call.\nexport function unpackSplat(\n packedSplats: Uint32Array,\n index: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n\n const i4 = index * 4;\n const word0 = packedSplats[i4];\n const word1 = packedSplats[i4 + 1];\n const word2 = packedSplats[i4 + 2];\n const word3 = packedSplats[i4 + 3];\n\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n result.color.set(\n rgbMin + ((word0 & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 8) & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 16) & 0xff) / 255) * rgbRange,\n );\n result.opacity = ((word0 >>> 24) & 0xff) / 255;\n if (encoding?.lodOpacity) {\n result.opacity = 2.0 * result.opacity;\n }\n result.center.set(\n fromHalf(word1 & 0xffff),\n fromHalf((word1 >>> 16) & 0xffff),\n fromHalf(word2 & 0xffff),\n );\n\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n const uScalesX = word3 & 0xff;\n result.scales.x =\n uScalesX === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesX - 1) * lnScaleScale);\n const uScalesY = (word3 >>> 8) & 0xff;\n result.scales.y =\n uScalesY === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesY - 1) * lnScaleScale);\n const uScalesZ = (word3 >>> 16) & 0xff;\n result.scales.z =\n uScalesZ === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesZ - 1) * lnScaleScale);\n\n const uQuat = ((word2 >>> 16) & 0xffff) | ((word3 >>> 8) & 0xff0000);\n decodeQuatOctXy88R8(uQuat, result.quaternion);\n // decodeQuatXyz888(uQuat, result.quaternion);\n // decodeQuatEulerXyz888(uQuat, result.quaternion);\n\n return result;\n}\n\n// Compute a texture array size that is large enough to fit numSplats. The most\n// common 2D texture size in WebGL2 is 4096x4096 which only allows for 16M splats,\n// so Spark stores Gsplat data in a 2D texture array, which most platforms support\n// up to 2048x2048x2048 = 8G splats. Allocations that fit within a single 2D texture\n// array layer will be rounded up to fill an entire texture row. Once a texture\n// array layer is filled, the allocation will be rounded up to fill an entire layer.\n// This is done so the entire set of splats can be covered by min/max coords across\n// each dimension.\nexport function getTextureSize(numSplats: number): {\n width: number;\n height: number;\n depth: number;\n maxSplats: number;\n} {\n // Compute a texture array size that is large enough to fit numSplats.\n // The width is always 2048, the height sized to fit the splats but no larger than 2048.\n // The depth is the number of layers needed to fit the splats.\n // maxSplats is computed as the new total available splats that can be stored.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n const maxSplats = width * height * depth;\n return { width, height, depth, maxSplats };\n}\n\nexport function computeMaxSplats(numSplats: number): number {\n // Compute the size of a Gsplat array texture (2048x2048xD) that can fit\n // numSplats splats, and return the total number of splats that can be stored\n // in such a texture.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n return width * height * depth;\n}\n\n// Heuristic function to determine if we are running on a mobile device.\nexport function isMobile(): boolean {\n if (navigator.platform.toLowerCase().startsWith(\"win\")) {\n return false;\n }\n if (navigator.maxTouchPoints > 0) {\n // Touch-enabled device, assume it's mobile\n return true;\n }\n return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test(\n navigator.userAgent,\n );\n}\n\n// Heuristic function to determine if we are running on an Android device.\n// (does not include Oculus Quest)\nexport function isAndroid(): boolean {\n return (\n /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent)\n );\n}\n\n// Heuristic function to determine if we are running on an Oculus Quest device.\nexport function isOculus(): boolean {\n return !!navigator.xr && /Oculus/.test(navigator.userAgent);\n}\n\nexport function isQuest2() {\n return isOculus() && /Quest 2/.test(navigator.userAgent);\n}\n\nexport function isIos(): boolean {\n return /iPhone|iPad/.test(navigator.userAgent);\n}\n\nexport function isVisionPro(): boolean {\n return (\n !!navigator.xr &&\n isIos() &&\n /Safari/.test(navigator.userAgent) &&\n isMobile()\n );\n}\n\n// Take an array of RGBA8 encoded pixels and flip them vertically in-place.\n// This is useful for converting between top-left and bottom-left coordinate systems\n// in standard 2D images vs WebGL2.\nexport function flipPixels(\n pixels: Uint8Array,\n width: number,\n height: number,\n): Uint8Array {\n // Flips pixels vertically in-place, returns original array.\n const tempLine = new Uint8Array(width * 4);\n\n // Only need to process half the height since we're swapping\n for (let y = 0; y < height / 2; y++) {\n const topOffset = y * width * 4;\n const bottomOffset = (height - 1 - y) * width * 4;\n\n // Save top line to temp buffer\n tempLine.set(pixels.subarray(topOffset, topOffset + width * 4));\n // Move bottom line to top\n pixels.set(\n pixels.subarray(bottomOffset, bottomOffset + width * 4),\n topOffset,\n );\n // Move saved top line to bottom\n pixels.set(tempLine, bottomOffset);\n }\n return pixels;\n}\n\n// Utility to take an array of RGBA8 encoded pixels and convert them to a\n// PNG-encoded image data URL that can be downloaded to the client.\nexport function pixelsToPngUrl(\n pixels: Uint8Array,\n width: number,\n height: number,\n): string {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Can't get 2d context\");\n }\n const imageData = ctx.createImageData(width, height);\n imageData.data.set(pixels);\n ctx.putImageData(imageData, 0, 0);\n return canvas.toDataURL(\"image/png\");\n}\n\n// Utility to filter out an undefined values from an object.\nexport function omitUndefined(obj: T): Partial {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => value !== undefined),\n ) as Partial;\n}\n\n// \"Identity\" vertex shader that just passes through the position.\nexport const IDENT_VERTEX_SHADER = unindent(`\n precision highp float;\n\n in vec3 position;\n\n void main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n }\n`);\n\n// Returns the average position of an array of THREE.Vector3.\nexport function averagePositions(positions: THREE.Vector3[]): THREE.Vector3 {\n const sum = new THREE.Vector3();\n for (const position of positions) {\n sum.add(position);\n }\n return sum.divideScalar(positions.length);\n}\n\n// Returns an \"average\" of an array of THREE.Quaternion objects.\n// Note that this is not a spherical lerp between quaternions but\n// rather an arithmetic mean that is normalized to unit length.\nexport function averageQuaternions(\n quaternions: THREE.Quaternion[],\n): THREE.Quaternion {\n if (quaternions.length === 0) {\n return new THREE.Quaternion();\n }\n const sum = quaternions[0].clone();\n for (let i = 1; i < quaternions.length; i++) {\n if (quaternions[i].dot(quaternions[0]) < 0.0) {\n sum.x -= quaternions[i].x;\n sum.y -= quaternions[i].y;\n sum.z -= quaternions[i].z;\n sum.w -= quaternions[i].w;\n } else {\n sum.x += quaternions[i].x;\n sum.y += quaternions[i].y;\n sum.z += quaternions[i].z;\n sum.w += quaternions[i].w;\n }\n }\n return sum.normalize();\n}\n\n// Compare two coordinates given by matrix1 and matrix2, returning the distance\n// between their origins and the \"coincidence\" of their orientations, defined\n// as the dot product of their \"-z\" axes.\nexport function coinciDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n const direction1 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix1)\n .sub(origin1)\n .normalize();\n const direction2 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix2)\n .sub(origin2)\n .normalize();\n\n const distance = origin1.distanceTo(origin2);\n const coincidence = direction1.dot(direction2);\n return { distance, coincidence };\n}\n\n// Utility function that returns whether two coordinate system origins\n// given by matrix1 and matrix2 are within a certain maxDistance of each other.\nexport function withinDist({\n matrix1,\n matrix2,\n maxDistance,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n}): boolean {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n return origin1.distanceTo(origin2) <= maxDistance;\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined by a maxDistance and a minCoincidence.\nexport function withinCoinciDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoincidence,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoincidence?: number;\n}): boolean {\n const { distance, coincidence } = coinciDist(matrix1, matrix2);\n return (\n distance <= maxDistance &&\n (minCoincidence == null || coincidence >= minCoincidence)\n );\n}\n\n// Compare two coordinate systems given by matrix1 and matrix2, returning the\n// distance between their origins and the \"coorientation\" of their orientations,\n// define as the dot product of their quaternion transforms (flipping their\n// orientation to be on the same hemisphere if necessary).\nexport function coorientDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const [origin1, rotate1] = [new THREE.Vector3(), new THREE.Quaternion()];\n const [origin2, rotate2] = [new THREE.Vector3(), new THREE.Quaternion()];\n matrix1.decompose(origin1, rotate1, new THREE.Vector3());\n matrix2.decompose(origin2, rotate2, new THREE.Vector3());\n\n const distance = origin1.distanceTo(origin2);\n const coorient = Math.abs(rotate1.dot(rotate2));\n return { distance, coorient };\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined a maxDistance and a minCoorient.\nexport function withinCoorientDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoorient,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoorient?: number;\n}): boolean {\n const { distance, coorient } = coorientDist(matrix1, matrix2);\n return (\n distance <= maxDistance && (minCoorient == null || coorient >= minCoorient)\n );\n}\n\n// Like Math.sign but with a custom epsilon value.\nexport function epsilonSign(value: number, epsilon = 0.001): number {\n if (Math.abs(value) < epsilon) {\n return 0;\n }\n return Math.sign(value);\n}\n\n// Encode a THREE.Quaternion into a 24-bit integer, converting the xyz coordinates\n// to signed 8-bit integers (w can be derived from xyz), and flipping the sign\n// of the quaternion if necessary to make this possible (q == -q for quaternions).\nexport function encodeQuatXyz888(q: THREE.Quaternion): number {\n const negQuat = q.w < 0.0;\n const iQuatX = floatToSint8(negQuat ? -q.x : q.x);\n const iQuatY = floatToSint8(negQuat ? -q.y : q.y);\n const iQuatZ = floatToSint8(negQuat ? -q.z : q.z);\n const uQuatX = iQuatX & 0xff;\n const uQuatY = iQuatY & 0xff;\n const uQuatZ = iQuatZ & 0xff;\n return uQuatX | (uQuatY << 8) | (uQuatZ << 16);\n}\n\n// Decode a 24-bit integer of the quaternion's xyz coordinates into a THREE.Quaternion.\nexport function decodeQuatXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n const iQuatX = (encoded << 24) >> 24;\n const iQuatY = (encoded << 16) >> 24;\n const iQuatZ = (encoded << 8) >> 24;\n out.set(iQuatX / 127.0, iQuatY / 127.0, iQuatZ / 127.0, 0.0);\n const dotSelf = out.x * out.x + out.y * out.y + out.z * out.z;\n out.w = Math.sqrt(Math.max(0.0, 1.0 - dotSelf));\n return out;\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempNormalizedQuaternion = new THREE.Quaternion();\nconst tempAxis = new THREE.Vector3();\n\n/**\n * Encodes a THREE.Quaternion into a 24‐bit integer.\n *\n * Bit layout (LSB → MSB):\n * - Bits 0–7: quantized U (8 bits)\n * - Bits 8–15: quantized V (8 bits)\n * - Bits 16–23: quantized angle θ (8 bits) from [0,π]\n *\n * This version uses folded octahedral mapping (all inline).\n */\nexport function encodeQuatOctXy88R8(q: THREE.Quaternion): number {\n // Force the minimal representation (q.w >= 0)\n const qnorm = tempNormalizedQuaternion.copy(q).normalize();\n if (qnorm.w < 0) {\n qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w);\n }\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnorm.w);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(\n qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z,\n );\n const axis =\n xyz_norm < 1e-6\n ? tempAxis.set(1, 0, 0)\n : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm);\n // const foldAxis = (axis.z < 0);\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z);\n let p_x = axis.x / sum;\n let p_y = axis.y / sum;\n // Fold the lower hemisphere.\n if (axis.z < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 7 bits (0..127)\n const quantU = Math.round(u_f * 255);\n const quantV = Math.round(v_f * 255);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 10 bits (0..1023) ---\n const angleInt = Math.round(theta * (255 / Math.PI));\n\n // Pack into 24 bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16) | (quantV << 8) | quantU;\n}\n\n/**\n * Decodes a 24‐bit encoded quaternion (packed in a number) back to a THREE.Quaternion.\n *\n * Assumes the same bit layout as in encodeQuatOctXy88R8.\n */\nexport function decodeQuatOctXy88R8(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 8‐bit quantU and quantV, and 8‐bit angleInt.\n const quantU = encoded & 0xff; // bits 0–7\n const quantV = (encoded >>> 8) & 0xff; // bits 8–15\n const angleInt = (encoded >>> 16) & 0xff; // bits 16–23\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 255;\n const v_f = quantV / 255;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axis = tempAxis.set(f_x, f_y, f_z).normalize();\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 255) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axis.x * s, axis.y * s, axis.z * s, w);\n return out;\n}\n\n/**\n * Encodes a THREE.Quaternion into a 24‑bit unsigned integer\n * by converting it to Euler angles (roll, pitch, yaw).\n * The Euler angles are assumed to be in radians in the range [-π, π].\n * Each angle is normalized to [0,1] and quantized to 8 bits.\n * Bit layout (LSB→MSB):\n * - Bits 0–7: roll (quantized)\n * - Bits 8–15: pitch (quantized)\n * - Bits 16–23: yaw (quantized)\n */\nexport function encodeQuatEulerXyz888(q: THREE.Quaternion): number {\n // Normalize quaternion to ensure a proper rotation.\n const qNorm = q.clone().normalize();\n\n // Tait–Bryan angles (roll, pitch, yaw)\n const sinr_cosp = 2.0 * (qNorm.w * qNorm.x + qNorm.y * qNorm.z);\n const cosr_cosp = 1.0 - 2.0 * (qNorm.x * qNorm.x + qNorm.y * qNorm.y);\n const roll = Math.atan2(sinr_cosp, cosr_cosp);\n\n const sinp = 2.0 * (qNorm.w * qNorm.y - qNorm.z * qNorm.x);\n const pitch =\n Math.abs(sinp) >= 1.0 ? Math.sign(sinp) * (Math.PI / 2) : Math.asin(sinp);\n\n const siny_cosp = 2.0 * (qNorm.w * qNorm.z + qNorm.x * qNorm.y);\n const cosy_cosp = 1.0 - 2.0 * (qNorm.y * qNorm.y + qNorm.z * qNorm.z);\n const yaw = Math.atan2(siny_cosp, cosy_cosp);\n\n // Map each angle from [-π, π] to [0, 1]\n const normRoll = (roll + Math.PI) / (2 * Math.PI);\n const normPitch = (pitch + Math.PI) / (2 * Math.PI);\n const normYaw = (yaw + Math.PI) / (2 * Math.PI);\n\n // Quantize to 8 bits (0 to 255)\n const rollQ = Math.round(normRoll * 255);\n const pitchQ = Math.round(normPitch * 255);\n const yawQ = Math.round(normYaw * 255);\n\n // Pack into a 24-bit unsigned integer:\n // Bits 0–7: rollQ, Bits 8–15: pitchQ, Bits 16–23: yawQ.\n return (yawQ << 16) | (pitchQ << 8) | rollQ;\n}\n\n/**\n * Decodes a 24‑bit unsigned integer into a THREE.Quaternion\n * by unpacking three 8‑bit values (roll, pitch, yaw) in the range [0,255]\n * and then converting them back to Euler angles in [-π, π] and to a quaternion.\n */\nexport function decodeQuatEulerXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Unpack 8‑bit values.\n const rollQ = encoded & 0xff;\n const pitchQ = (encoded >>> 8) & 0xff;\n const yawQ = (encoded >>> 16) & 0xff;\n\n // Convert quantized values back to normalized [0,1] values.\n const normRoll = rollQ / 255;\n const normPitch = pitchQ / 255;\n const normYaw = yawQ / 255;\n\n // Map from [0,1] to [-π, π]\n const roll = normRoll * (2 * Math.PI) - Math.PI;\n const pitch = normPitch * (2 * Math.PI) - Math.PI;\n const yaw = normYaw * (2 * Math.PI) - Math.PI;\n\n // Convert Euler angles to quaternion (Tait–Bryan: roll, pitch, yaw).\n const cr = Math.cos(roll * 0.5);\n const sr = Math.sin(roll * 0.5);\n const cp = Math.cos(pitch * 0.5);\n const sp = Math.sin(pitch * 0.5);\n const cy = Math.cos(yaw * 0.5);\n const sy = Math.sin(yaw * 0.5);\n\n out.w = cr * cp * cy + sr * sp * sy;\n out.x = sr * cp * cy - cr * sp * sy;\n out.y = cr * sp * cy + sr * cp * sy;\n out.z = cr * cp * sy - sr * sp * cy;\n out.normalize();\n return out;\n}\n\nexport function encodeQuatOctXy1010R12(\n qx: number,\n qy: number,\n qz: number,\n qw: number,\n): number {\n const qlen = Math.sqrt(qx * qx + qy * qy + qz * qz + qw * qw);\n // Force the minimal representation (q.w >= 0)\n const qnx = (qw < 0 ? -qx : qx) / qlen;\n const qny = (qw < 0 ? -qy : qy) / qlen;\n const qnz = (qw < 0 ? -qz : qz) / qlen;\n const qnw = (qw < 0 ? -qw : qw) / qlen;\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnw);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(qnx * qnx + qny * qny + qnz * qnz);\n const axisX = xyz_norm < 1e-6 ? 1 : qnx / xyz_norm;\n const axisY = xyz_norm < 1e-6 ? 0 : qny / xyz_norm;\n const axisZ = xyz_norm < 1e-6 ? 0 : qnz / xyz_norm;\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axisX) + Math.abs(axisY) + Math.abs(axisZ);\n let p_x = axisX / sum;\n let p_y = axisY / sum;\n // Fold the lower hemisphere.\n if (axisZ < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 10 bits (0..1023)\n const quantU = Math.round(u_f * 1023);\n const quantV = Math.round(v_f * 1023);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 12 bits (0..4095) ---\n const angleInt = Math.round(theta * (4095 / Math.PI));\n\n // Pack into 32 bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20) | (quantV << 10) | quantU;\n}\n\nexport function decodeQuatOctXy1010R12(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 10‐bit quantU and quantV, and 12‐bit angleInt.\n const quantU = encoded & 0x3ff; // bits 0–9\n const quantV = (encoded >>> 10) & 0x3ff; // bits 10–19\n const angleInt = (encoded >>> 20) & 0xfff; // bits 20–31\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 1023;\n const v_f = quantV / 1023;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axisLen = Math.sqrt(f_x * f_x + f_y * f_y + f_z * f_z);\n const axisX = axisLen < 1e-6 ? 0 : f_x / axisLen;\n const axisY = axisLen < 1e-6 ? 0 : f_y / axisLen;\n const axisZ = axisLen < 1e-6 ? 0 : f_z / axisLen;\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 4095) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axisX * s, axisY * s, axisZ * s, w);\n return out;\n}\n\n// Pack four signed 8-bit values into a single uint32.\nfunction packSint8Bytes(\n b0: number,\n b1: number,\n b2: number,\n b3: number,\n): number {\n const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127)));\n const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127)));\n const clampedB2 = Math.round(Math.max(-127, Math.min(127, b2 * 127)));\n const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127)));\n return (\n (clampedB0 & 0xff) |\n ((clampedB1 & 0xff) << 8) |\n ((clampedB2 & 0xff) << 16) |\n ((clampedB3 & 0xff) << 24)\n );\n}\n\n// Encode an array of 9 signed RGB SH1 coefficients (clamped to [-1,1]) into\n// a pair of uint32 values, where each coefficient is stored as a sint7\nexport function encodeSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n encoding?: {\n sh1Max?: number;\n },\n) {\n const sh1Max = encoding?.sh1Max ?? 1;\n const sh1Scale = 63 / sh1Max;\n\n // Pack sint7 values into 2 x uint32\n const base = index * 2;\n for (let i = 0; i < 9; ++i) {\n const s = sh1Rgb[i] * sh1Scale;\n const value = Math.round(Math.max(-63, Math.min(63, s))) & 0x7f;\n const bitStart = i * 7;\n const bitEnd = bitStart + 7;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh1Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh1Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\n// Encode an array of 15 signed RGB SH2 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint8.\nexport function encodeSh2Rgb(\n sh2Array: Uint32Array,\n index: number,\n sh2Rgb: Float32Array,\n encoding?: {\n sh2Max?: number;\n },\n) {\n const sh2Max = encoding?.sh2Max ?? 1;\n const sh2Scale = 1 / sh2Max;\n\n // Pack sint8 values into 4 x uint32\n sh2Array[index * 4 + 0] = packSint8Bytes(\n sh2Rgb[0] * sh2Scale,\n sh2Rgb[1] * sh2Scale,\n sh2Rgb[2] * sh2Scale,\n sh2Rgb[3] * sh2Scale,\n );\n sh2Array[index * 4 + 1] = packSint8Bytes(\n sh2Rgb[4] * sh2Scale,\n sh2Rgb[5] * sh2Scale,\n sh2Rgb[6] * sh2Scale,\n sh2Rgb[7] * sh2Scale,\n );\n sh2Array[index * 4 + 2] = packSint8Bytes(\n sh2Rgb[8] * sh2Scale,\n sh2Rgb[9] * sh2Scale,\n sh2Rgb[10] * sh2Scale,\n sh2Rgb[11] * sh2Scale,\n );\n sh2Array[index * 4 + 3] = packSint8Bytes(\n sh2Rgb[12] * sh2Scale,\n sh2Rgb[13] * sh2Scale,\n sh2Rgb[14] * sh2Scale,\n 0,\n );\n}\n\n// Encode an array of 21 signed RGB SH3 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint6.\nexport function encodeSh3Rgb(\n sh3Array: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n encoding?: {\n sh3Max?: number;\n },\n) {\n const sh3Max = encoding?.sh3Max ?? 1;\n const sh3Scale = 31 / sh3Max;\n\n // Pack sint6 values into 4 x uint32\n const base = index * 4;\n for (let i = 0; i < 21; ++i) {\n const s = sh3Rgb[i] * sh3Scale;\n const value = Math.round(Math.max(-31, Math.min(31, s))) & 0x3f;\n const bitStart = i * 6;\n const bitEnd = bitStart + 6;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh3Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh3Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\nexport function encodeExtRgb(r: number, g: number, b: number): number {\n const ar = Math.abs(r);\n const ag = Math.abs(g);\n const ab = Math.abs(b);\n const maxAbs = Math.max(ar, ag, ab);\n const base = Math.floor(Math.log2(maxAbs));\n const biasedBase = Math.max(0, Math.min(31, base + 15));\n const divisor = 2 ** (biasedBase - 15) / 255;\n const uR = Math.round(Math.max(0, Math.min(255, ar / divisor)));\n const uG = Math.round(Math.max(0, Math.min(255, ag / divisor)));\n const uB = Math.round(Math.max(0, Math.min(255, ab / divisor)));\n const expSigns =\n (biasedBase << 3) |\n ((r < 0 ? 0x1 : 0) | (g < 0 ? 0x2 : 0) | (b < 0 ? 0x4 : 0));\n return uR | (uG << 8) | (uB << 16) | (expSigns << 24);\n}\n\nexport function decodeExtRgb(encoded: number): THREE.Color {\n const color = packedFields.color;\n const biasedBase = (encoded >>> 27) & 0x1f;\n const divisor = 2 ** (biasedBase - 15) / 255;\n const r = (encoded & 0xff) * divisor;\n const g = ((encoded >>> 8) & 0xff) * divisor;\n const b = ((encoded >>> 16) & 0xff) * divisor;\n color.r = encoded & 0x1000000 ? -r : r;\n color.g = encoded & 0x2000000 ? -g : g;\n color.b = encoded & 0x4000000 ? -b : b;\n return color;\n}\n\nexport function encodeExtSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n}\n\nexport function encodeExtSh12Rgb(\n sh1Array: Uint32Array,\n sh2Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n sh2Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n sh1Array[i4 + 3] = encodeExtRgb(sh2Rgb[0], sh2Rgb[1], sh2Rgb[2]);\n for (let k = 1; k < 5; ++k) {\n const k5 = k * 5;\n sh2Array[i4 + (k - 1)] = encodeExtRgb(\n sh2Rgb[k5],\n sh2Rgb[k5 + 1],\n sh2Rgb[k5 + 2],\n );\n }\n}\n\nexport function encodeExt3Rgb(\n sh3ArrayA: Uint32Array,\n sh3ArrayB: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 4; ++k) {\n const k3 = k * 3;\n sh3ArrayA[i4 + k] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n for (let k = 4; k < 7; ++k) {\n const k3 = k * 3;\n sh3ArrayB[i4 + (k - 4)] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n}\n\n// Partially decompress a gzip-encoded Uint8Array, returning a Uint8Array of\n// the specified numBytes from the start of the file.\nexport function decompressPartialGzip(\n fileBytes: Uint8Array,\n numBytes: number,\n): Uint8Array {\n const chunks: Uint8Array[] = [];\n let totalBytes = 0;\n let result: Uint8Array | null = null;\n\n const gunzip = new Gunzip((data, final) => {\n chunks.push(data);\n totalBytes += data.length;\n if (final || totalBytes >= numBytes) {\n const allBytes = new Uint8Array(totalBytes);\n let offset = 0;\n for (const chunk of chunks) {\n allBytes.set(chunk, offset);\n offset += chunk.length;\n }\n result = allBytes.slice(0, numBytes);\n }\n });\n\n const CHUNK_SIZE = 1024;\n let offset = 0;\n while (result == null && offset < fileBytes.length) {\n const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE);\n gunzip.push(chunk, false);\n offset += CHUNK_SIZE;\n }\n\n if (result == null) {\n gunzip.push(new Uint8Array(), true);\n if (result == null) {\n throw new Error(\"Failed to decompress partial gzip\");\n }\n }\n return result;\n}\n\nexport class GunzipReader {\n fileBytes: Uint8Array;\n chunkBytes: number;\n\n chunks: Uint8Array[];\n totalBytes: number;\n reader: ReadableStreamDefaultReader;\n\n constructor({\n fileBytes,\n chunkBytes = 64 * 1024,\n }: { fileBytes: Uint8Array; chunkBytes?: number }) {\n this.fileBytes = fileBytes;\n this.chunkBytes = chunkBytes;\n this.chunks = [];\n this.totalBytes = 0;\n\n const ds = new DecompressionStream(\"gzip\");\n const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds);\n this.reader = decompressionStream.getReader();\n }\n\n async read(numBytes: number): Promise {\n while (this.totalBytes < numBytes) {\n const { value: chunk, done: readerDone } = await this.reader.read();\n if (readerDone) {\n break;\n }\n\n this.chunks.push(chunk);\n this.totalBytes += chunk.length;\n }\n\n if (this.totalBytes < numBytes) {\n throw new Error(\n `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}`,\n );\n }\n\n const allBytes = new Uint8Array(this.totalBytes);\n let outOffset = 0;\n for (const chunk of this.chunks) {\n allBytes.set(chunk, outOffset);\n outOffset += chunk.length;\n }\n\n const result = allBytes.subarray(0, numBytes);\n this.chunks = [allBytes.subarray(numBytes)];\n this.totalBytes -= numBytes;\n return result;\n }\n}\n\nexport function uploadU32DataTextureRows(\n renderer: THREE.WebGLRenderer,\n texture: THREE.Texture,\n width: number,\n rows: number,\n data: Uint32Array,\n) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n\n const props = renderer.properties.get(texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props?.__webglTexture;\n if (!glTexture) {\n throw new Error(\"texture not found\");\n }\n // Note: instead of saving and restoring the pixelStorei parameters\n // renderer.state.pixelStorei can be used with Three.js >= r184\n const currentFlipY = gl.getParameter(gl.UNPACK_FLIP_Y_WEBGL);\n const currentPremultiply = gl.getParameter(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL);\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n width,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n data,\n );\n renderer.state.unbindTexture();\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, currentFlipY);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, currentPremultiply);\n}\n","import * as THREE from \"three\";\n\nimport { IDENT_VERTEX_SHADER } from \"../utils\";\nimport { Compilation, type Dyno, type IOTypes } from \"./base\";\n\nexport class DynoProgram {\n graph: Dyno;\n template: DynoProgramTemplate;\n inputs: Record;\n outputs: Record;\n shader: string;\n uniforms: Record;\n updaters: (() => void)[];\n\n constructor({\n graph,\n inputs,\n outputs,\n template,\n consoleLog,\n }: {\n graph: Dyno;\n inputs?: Record;\n outputs?: Record;\n template: DynoProgramTemplate;\n consoleLog?: boolean;\n }) {\n this.graph = graph;\n this.template = template;\n this.inputs = inputs ?? {};\n this.outputs = outputs ?? {};\n\n const compile = new Compilation({ indent: this.template.indent });\n for (const key in this.outputs) {\n if (this.outputs[key]) {\n compile.declares.add(this.outputs[key]);\n }\n }\n const statements = graph.compile({\n inputs: this.inputs,\n outputs: this.outputs,\n compile,\n });\n\n this.shader = template.generate({ globals: compile.globals, statements });\n this.uniforms = compile.uniforms;\n this.updaters = compile.updaters;\n if (consoleLog) {\n console.log(\"*** COMPILED SHADER\", this.shader);\n console.log(\"*** UNIFORMS\", this.uniforms);\n }\n }\n\n prepareMaterial(): THREE.RawShaderMaterial {\n return getMaterial(this);\n }\n\n update() {\n for (const updater of this.updaters) {\n updater();\n }\n }\n}\n\nexport class DynoProgramTemplate {\n before: string;\n between: string;\n after: string;\n indent: string;\n\n constructor(template: string) {\n const globals = template.match(/^([ \\t]*)\\{\\{\\s*GLOBALS\\s*\\}\\}/m);\n const statements = template.match(/^([ \\t]*)\\{\\{\\s*STATEMENTS\\s*\\}\\}/m);\n if (!globals || !statements) {\n throw new Error(\n \"Template must contain {{ GLOBALS }} and {{ STATEMENTS }}\",\n );\n }\n\n this.before = template.substring(0, globals.index);\n this.between = template.substring(\n (globals.index as number) + globals[0].length,\n statements.index,\n );\n this.after = template.substring(\n (statements.index as number) + statements[0].length,\n );\n this.indent = statements[1];\n }\n\n generate({\n globals,\n statements,\n }: { globals: Set; statements: string[] }): string {\n return (\n this.before +\n Array.from(globals).join(\"\\n\\n\") +\n this.between +\n statements.map((s) => this.indent + s).join(\"\\n\") +\n this.after\n );\n }\n}\n\nconst programMaterial = new WeakMap();\n\nfunction getMaterial(program: DynoProgram): THREE.RawShaderMaterial {\n let material = programMaterial.get(program);\n if (material) {\n return material;\n }\n\n material = new THREE.RawShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: IDENT_VERTEX_SHADER,\n fragmentShader: program.shader,\n uniforms: program.uniforms,\n });\n programMaterial.set(program, material);\n return material;\n}\n","import {\n type AllFloatTypes,\n type AllIntTypes,\n type AllSignedTypes,\n type AllValueTypes,\n type BaseType,\n type BoolTypes,\n type FloatTypes,\n type IntTypes,\n type SignedTypes,\n type UintTypes,\n type ValueTypes,\n isAllFloatType,\n isFloatType,\n isIntType,\n isMat2,\n isMat3,\n isMat4,\n isUintType,\n} from \"./types\";\n\nexport type AddOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : never);\n\nexport type SubOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type MulOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : A extends IntTypes\n ? B extends A\n ? A\n : never\n : B extends IntTypes\n ? A extends B\n ? A\n : never\n : A extends UintTypes\n ? B extends A\n ? A\n : never\n : B extends UintTypes\n ? A extends B\n ? A\n : never\n : // Vector * Matrix/Vector\n A extends \"vec2\"\n ? B extends \"vec2\" | \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : B extends \"mat3x2\"\n ? \"vec3\"\n : B extends \"mat4x2\"\n ? \"vec4\"\n : never\n : A extends \"vec3\"\n ? B extends \"mat2x3\"\n ? \"vec2\"\n : B extends \"vec3\" | \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : B extends \"mat4x3\"\n ? \"vec4\"\n : never\n : A extends \"vec4\"\n ? B extends \"mat2x4\"\n ? \"vec2\"\n : B extends \"mat3x4\"\n ? \"vec3\"\n : B extends \"vec4\" | \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Vector\n B extends \"vec2\"\n ? A extends \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : A extends \"mat2x3\"\n ? \"vec3\"\n : A extends \"mat2x4\"\n ? \"vec4\"\n : never\n : B extends \"vec3\"\n ? A extends \"mat3x2\"\n ? \"vec2\"\n : A extends \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : A extends \"mat3x4\"\n ? \"vec4\"\n : never\n : B extends \"vec4\"\n ? A extends \"mat4x2\"\n ? \"vec2\"\n : A extends \"mat4x3\"\n ? \"vec3\"\n : A extends \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n A extends \"mat2\" | \"mat2x2\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2\"\n : B extends \"mat3x2\"\n ? \"mat3x2\"\n : B extends \"mat4x2\"\n ? \"mat4x2\"\n : never\n : A extends \"mat2x3\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x3\"\n : B extends \"mat3x2\"\n ? \"mat3\"\n : B extends \"mat4x2\"\n ? \"mat4x3\"\n : never\n : A extends \"mat2x4\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x4\"\n : B extends \"mat3x2\"\n ? \"mat3x4\"\n : B extends \"mat4x2\"\n ? \"mat4\"\n : never\n : A extends \"mat3x2\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x2\"\n : B extends \"mat4x3\"\n ? \"mat4x2\"\n : never\n : A extends \"mat3\" | \"mat3x3\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x3\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3\"\n : B extends \"mat4x3\"\n ? \"mat4x3\"\n : never\n : A extends \"mat3x4\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x4\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x4\"\n : B extends \"mat4x3\"\n ? \"mat4\"\n : never\n : A extends \"mat4x2\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2\"\n : B extends \"mat3x4\"\n ? \"mat3x2\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x2\"\n : never\n : A extends \"mat4x3\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x3\"\n : B extends \"mat3x4\"\n ? \"mat3\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x3\"\n : never\n : A extends \"mat4\" | \"mat4x4\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x4\"\n : B extends \"mat3x4\"\n ? \"mat3x4\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4\"\n : never\n : never);\n\nexport type DivOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type IModOutput<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\n\nexport type ModOutput = BaseType &\n (A extends B ? A : B extends \"float\" ? A : never);\n\nexport type PowOutput = BaseType &\n (A extends B ? A : never);\n\nexport type MinOutput = BaseType &\n (A extends B\n ? A\n : B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MaxOutput = MinOutput<\n A,\n B\n>;\nexport type ClampOutput = BaseType &\n (B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MixOutput<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> = BaseType &\n (T extends A\n ? A\n : T extends \"float\"\n ? A\n : T extends \"bool\"\n ? A extends \"float\"\n ? A\n : never\n : T extends \"bvec2\"\n ? A extends \"vec2\"\n ? A\n : never\n : T extends \"bvec3\"\n ? A extends \"vec3\"\n ? A\n : never\n : T extends \"bvec4\"\n ? A extends \"vec4\"\n ? A\n : never\n : never);\nexport type StepOutput = BaseType &\n (A extends B ? B : A extends \"float\" ? B : never);\nexport type SmoothstepOutput<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n> = BaseType &\n (A extends B ? (A extends C ? C : A extends \"float\" ? C : never) : never);\n\nexport type IsNanOutput = BaseType &\n (A extends \"float\"\n ? \"bool\"\n : A extends \"vec2\"\n ? \"bvec2\"\n : A extends \"vec3\"\n ? \"bvec3\"\n : A extends \"vec4\"\n ? \"bvec4\"\n : never);\nexport type IsInfOutput = IsNanOutput;\n\n// // Run-time type helper functions\n\nexport function addOutputType(\n a: A,\n b: B,\n operation = \"add\",\n): AddOutput {\n const error = () => {\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n };\n // @ts-ignore\n if (a === b) return a as AddOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as AddOutput;\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return a as AddOutput;\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return b as AddOutput;\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return a as AddOutput;\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return b as AddOutput;\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return a as AddOutput;\n error();\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function subOutputType(\n a: A,\n b: B,\n): SubOutput {\n return addOutputType(a, b, \"sub\");\n}\n\nexport function mulOutputType(\n a: A,\n b: B,\n): MulOutput {\n const error = () => {\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n };\n const result = (value: unknown) => value as MulOutput;\n if (a === \"int\") {\n if (isIntType(b)) return result(b);\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return result(a);\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return result(b);\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return result(a);\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return result(b);\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return result(a);\n error();\n }\n if (isIntType(a) || isUintType(a) || isIntType(b) || isUintType(b)) {\n // @ts-ignore\n if (a === b) return result(a);\n error();\n }\n // Vector * Matrix/Vector\n if (a === \"vec2\") {\n if (b === \"vec2\" || isMat2(b)) return result(\"vec2\");\n if (b === \"mat3x2\") return result(\"vec3\");\n if (b === \"mat4x2\") return result(\"vec4\");\n error();\n }\n if (a === \"vec3\") {\n if (b === \"mat2x3\") return result(\"vec2\");\n if (b === \"vec3\" || isMat3(b)) return result(\"vec3\");\n if (b === \"mat4x3\") return result(\"vec4\");\n error();\n }\n if (a === \"vec4\") {\n if (b === \"mat2x4\") return result(\"vec2\");\n if (b === \"mat3x4\") return result(\"vec3\");\n if (b === \"vec4\" || isMat4(b)) return result(\"vec4\");\n error();\n }\n // Matrix * Vector\n if (b === \"vec2\") {\n if (isMat2(a)) return result(\"vec2\");\n if (a === \"mat2x3\") return result(\"vec3\");\n if (a === \"mat2x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec3\") {\n if (a === \"mat3x2\") return result(\"vec2\");\n if (isMat3(a)) return result(\"vec3\");\n if (a === \"mat3x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec4\") {\n if (a === \"mat4x2\") return result(\"vec2\");\n if (a === \"mat4x3\") return result(\"vec3\");\n if (isMat4(a)) return result(\"vec4\");\n error();\n }\n // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n if (isMat2(a)) {\n if (isMat2(b)) return result(\"mat2\");\n if (b === \"mat3x2\") return result(\"mat3x2\");\n if (b === \"mat4x2\") return result(\"mat4x2\");\n error();\n }\n if (a === \"mat2x3\") {\n if (isMat2(b)) return result(\"mat2x3\");\n if (b === \"mat3x2\") return result(\"mat3\");\n if (b === \"mat4x2\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat2x4\") {\n if (isMat2(b)) return result(\"mat2x4\");\n if (b === \"mat3x2\") return result(\"mat3x4\");\n if (b === \"mat4x2\") return result(\"mat4\");\n error();\n }\n if (a === \"mat3x2\") {\n if (b === \"mat2x3\") return result(\"mat2\");\n if (isMat3(b)) return result(\"mat3x2\");\n if (b === \"mat4x3\") return result(\"mat4x2\");\n error();\n }\n if (isMat3(a)) {\n if (b === \"mat2x3\") return result(\"mat2x3\");\n if (isMat3(b)) return result(\"mat3\");\n if (b === \"mat4x3\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat3x4\") {\n if (b === \"mat2x3\") return result(\"mat2x4\");\n if (isMat3(b)) return result(\"mat3x4\");\n if (b === \"mat4x3\") return result(\"mat4\");\n error();\n }\n if (a === \"mat4x2\") {\n if (b === \"mat2x4\") return result(\"mat2\");\n if (b === \"mat3x4\") return result(\"mat3x2\");\n if (isMat4(b)) return result(\"mat4x2\");\n error();\n }\n if (a === \"mat4x3\") {\n if (b === \"mat2x4\") return result(\"mat2x3\");\n if (b === \"mat3x4\") return result(\"mat3\");\n if (isMat4(b)) return result(\"mat4x3\");\n error();\n }\n if (isMat4(a)) {\n if (b === \"mat2x4\") return result(\"mat2x4\");\n if (b === \"mat3x4\") return result(\"mat3x4\");\n if (isMat4(b)) return result(\"mat4\");\n error();\n }\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n}\n\nexport function divOutputType(\n a: A,\n b: B,\n): DivOutput {\n return addOutputType(a, b, \"div\");\n}\n\nexport function imodOutputType(\n a: A,\n b: B,\n): IModOutput {\n // @ts-ignore\n if (a === b) return a as IModOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as IModOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as IModOutput;\n } else if (a === \"uint\") {\n if (isUintType(b)) return b as IModOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as IModOutput;\n }\n throw new Error(`Invalid imod types: ${a}, ${b}`);\n}\n\nexport function modOutputType(\n a: A,\n b: B,\n): ModOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return a as ModOutput;\n throw new Error(`Invalid mod types: ${a}, ${b}`);\n}\n\nexport function modfOutputType(a: A): A {\n return a;\n}\n\nexport function negOutputType(a: A): A {\n return a;\n}\n\nexport function absOutputType(a: A): A {\n return a;\n}\n\nexport function signOutputType(a: A): A {\n return a;\n}\n\nexport function floorOutputType(a: A): A {\n return a;\n}\n\nexport function ceilOutputType(a: A): A {\n return a;\n}\n\nexport function truncOutputType(a: A): A {\n return a;\n}\n\nexport function roundOutputType(a: A): A {\n return a;\n}\n\nexport function fractOutputType(a: A): A {\n return a;\n}\n\nexport function powOutputType(a: A): A {\n return a;\n}\n\nexport function expOutputType(a: A): A {\n return a;\n}\n\nexport function exp2OutputType(a: A): A {\n return a;\n}\n\nexport function logOutputType(a: A): A {\n return a;\n}\n\nexport function log2OutputType(a: A): A {\n return a;\n}\n\nexport function sqrOutputType(a: A): A {\n return a;\n}\n\nexport function sqrtOutputType(a: A): A {\n return a;\n}\n\nexport function inversesqrtOutputType(a: A): A {\n return a;\n}\n\nexport function minOutputType(\n a: A,\n b: B,\n operation = \"min\",\n): MinOutput {\n // @ts-ignore\n if (a === b) return a as MinOutput;\n if (b === \"float\") {\n if (isFloatType(a)) return a as MinOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as MinOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as MinOutput;\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function maxOutputType(\n a: A,\n b: B,\n): MaxOutput {\n return minOutputType(a, b, \"max\");\n}\n\nexport function clampOutputType(\n a: A,\n b: B,\n _c: B,\n): ClampOutput {\n if (b === \"float\") {\n if (isFloatType(a)) return a as ClampOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as ClampOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as ClampOutput;\n }\n throw new Error(`Invalid clamp types: ${a}, ${b}`);\n}\n\nexport function mixOutputType<\n A extends FloatTypes,\n C extends FloatTypes | BoolTypes,\n>(a: A, b: A, c: C): MixOutput {\n // @ts-ignore\n if (c === a) return a as MixOutput;\n if (c === \"float\") return a as MixOutput;\n if (c === \"bool\" && a === \"float\") return a as MixOutput;\n if (c === \"bvec2\" && a === \"vec2\") return a as MixOutput;\n if (c === \"bvec3\" && a === \"vec3\") return a as MixOutput;\n if (c === \"bvec4\" && a === \"vec4\") return a as MixOutput;\n throw new Error(`Invalid mix types: ${a}, ${b}, ${c}`);\n}\n\nexport function stepOutputType(\n a: A,\n b: B,\n): StepOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return b as StepOutput;\n throw new Error(`Invalid step types: ${a}, ${b}`);\n}\n\nexport function smoothstepOutputType<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n>(a: A, b: B, c: C): SmoothstepOutput {\n // @ts-ignore\n if (a === b) {\n if (a === c || a === \"float\") return c as SmoothstepOutput;\n }\n throw new Error(`Invalid smoothstep types: ${a}, ${b}, ${c}`);\n}\n\nexport function isNanOutputType(\n a: A,\n operation = \"isNan\",\n): IsNanOutput {\n if (a === \"float\") return \"bool\" as IsNanOutput;\n if (a === \"vec2\") return \"bvec2\" as IsNanOutput;\n if (a === \"vec3\") return \"bvec3\" as IsNanOutput;\n if (a === \"vec4\") return \"bvec4\" as IsNanOutput;\n throw new Error(`Invalid ${operation} types: ${a}`);\n}\n\nexport function isInfOutputType(a: A): IsInfOutput {\n return isNanOutputType(a, \"isInf\");\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AddOutput,\n type ClampOutput,\n type DivOutput,\n type IModOutput,\n type IsInfOutput,\n type IsNanOutput,\n type MaxOutput,\n type MinOutput,\n type MixOutput,\n type ModOutput,\n type MulOutput,\n type SmoothstepOutput,\n type StepOutput,\n type SubOutput,\n absOutputType,\n addOutputType,\n ceilOutputType,\n clampOutputType,\n divOutputType,\n exp2OutputType,\n expOutputType,\n floorOutputType,\n fractOutputType,\n imodOutputType,\n inversesqrtOutputType,\n isInfOutputType,\n isNanOutputType,\n log2OutputType,\n logOutputType,\n maxOutputType,\n minOutputType,\n mixOutputType,\n modOutputType,\n modfOutputType,\n mulOutputType,\n negOutputType,\n powOutputType,\n roundOutputType,\n signOutputType,\n smoothstepOutputType,\n sqrOutputType,\n sqrtOutputType,\n stepOutputType,\n subOutputType,\n truncOutputType,\n} from \"./mathTypes\";\nimport type {\n AllIntTypes,\n AllSignedTypes,\n AllValueTypes,\n BoolTypes,\n FloatTypes,\n SignedTypes,\n ValueTypes,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const add = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Add({ a, b });\nexport const sub = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Sub({ a, b });\nexport const mul = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mul({ a, b });\nexport const div = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Div({ a, b });\nexport const imod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new IMod({ a, b });\nexport const mod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mod({ a, b });\nexport const modf = (a: DynoVal) =>\n new Modf({ a }).outputs;\n\nexport const neg = (a: DynoVal): DynoVal =>\n new Neg({ a });\nexport const abs = (a: DynoVal): DynoVal =>\n new Abs({ a });\nexport const sign = (a: DynoVal): DynoVal =>\n new Sign({ a });\nexport const floor = (a: DynoVal): DynoVal =>\n new Floor({ a });\nexport const ceil = (a: DynoVal): DynoVal =>\n new Ceil({ a });\nexport const trunc = (a: DynoVal): DynoVal =>\n new Trunc({ a });\nexport const round = (a: DynoVal): DynoVal =>\n new Round({ a });\nexport const fract = (a: DynoVal): DynoVal =>\n new Fract({ a });\n\nexport const pow = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Pow({ a, b });\nexport const exp = (a: DynoVal): DynoVal =>\n new Exp({ a });\nexport const exp2 = (a: DynoVal): DynoVal =>\n new Exp2({ a });\nexport const log = (a: DynoVal): DynoVal =>\n new Log({ a });\nexport const log2 = (a: DynoVal): DynoVal =>\n new Log2({ a });\nexport const sqr = (a: DynoVal): DynoVal =>\n new Sqr({ a });\nexport const sqrt = (a: DynoVal): DynoVal =>\n new Sqrt({ a });\nexport const inversesqrt = (a: DynoVal): DynoVal =>\n new InverseSqrt({ a });\n\nexport const min = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Min({ a, b });\nexport const max = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Max({ a, b });\nexport const clamp = (\n a: DynoVal,\n min: DynoVal,\n max: DynoVal,\n): DynoVal> => new Clamp({ a, min, max });\nexport const mix = (\n a: DynoVal,\n b: DynoVal,\n t: DynoVal,\n): DynoVal> => new Mix({ a, b, t });\nexport const step = (\n edge: DynoVal,\n x: DynoVal,\n): DynoVal> => new Step({ edge, x });\nexport const smoothstep = (\n edge0: DynoVal,\n edge1: DynoVal,\n x: DynoVal,\n): DynoVal> =>\n new Smoothstep({ edge0, edge1, x });\n\nexport const isNan = (\n a: DynoVal,\n): DynoVal> => new IsNan({ a });\nexport const isInf = (\n a: DynoVal,\n): DynoVal> => new IsInf({ a });\n\nexport class Add<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"sum\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"sum\", outTypeFunc: addOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sum} = ${inputs.a} + ${inputs.b};`];\n };\n }\n}\n\nexport class Sub<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"difference\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"difference\", outTypeFunc: subOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.difference} = ${inputs.a} - ${inputs.b};`];\n };\n }\n}\n\nexport class Mul<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"product\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: mulOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.product} = ${inputs.a} * ${inputs.b};`];\n };\n }\n}\n\nexport class Div<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"quotient\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"quotient\", outTypeFunc: divOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.quotient} = ${inputs.a} / ${inputs.b};`];\n };\n }\n}\n\nexport class IMod<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> extends BinaryOp, \"remainder\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: imodOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = ${inputs.a} % ${inputs.b};`];\n };\n }\n}\n\nexport class Mod extends BinaryOp<\n A,\n B,\n ModOutput,\n \"remainder\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: modOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = mod(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Modf extends Dyno<\n { a: A },\n { fract: A; integer: A }\n> {\n constructor({ a }: { a: DynoVal }) {\n const inTypes = { a: valType(a) };\n const outType = modfOutputType(inTypes.a);\n const outTypes = {\n fract: outType,\n integer: outType,\n };\n super({ inTypes, outTypes, inputs: { a } });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = modf(${inputs.a}, ${outputs.integer});`];\n };\n }\n}\n\nexport class Neg extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"neg\", outTypeFunc: negOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.neg} = -${inputs.a};`];\n };\n }\n}\n\nexport class Abs extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"abs\", outTypeFunc: absOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.abs} = abs(${inputs.a});`];\n };\n }\n}\n\nexport class Sign extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sign\", outTypeFunc: signOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sign} = sign(${inputs.a});`];\n };\n }\n}\n\nexport class Floor extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"floor\", outTypeFunc: floorOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.floor} = floor(${inputs.a});`];\n };\n }\n}\n\nexport class Ceil extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"ceil\", outTypeFunc: ceilOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.ceil} = ceil(${inputs.a});`];\n };\n }\n}\n\nexport class Trunc extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"trunc\", outTypeFunc: truncOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.trunc} = trunc(${inputs.a});`];\n };\n }\n}\n\nexport class Round extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"round\", outTypeFunc: roundOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.round} = round(${inputs.a});`];\n };\n }\n}\n\nexport class Fract extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"fract\", outTypeFunc: fractOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = fract(${inputs.a});`];\n };\n }\n}\n\nexport class Pow extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"power\", outTypeFunc: powOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.power} = pow(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Exp extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp\", outTypeFunc: expOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp} = exp(${inputs.a});`];\n };\n }\n}\n\nexport class Exp2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp2\", outTypeFunc: exp2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp2} = exp2(${inputs.a});`];\n };\n }\n}\n\nexport class Log extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log\", outTypeFunc: logOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log} = log(${inputs.a});`];\n };\n }\n}\n\nexport class Log2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log2\", outTypeFunc: log2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log2} = log2(${inputs.a});`];\n };\n }\n}\n\nexport class Sqr extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqr\", outTypeFunc: sqrOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqr} = ${inputs.a} * ${inputs.a};`];\n };\n }\n}\n\nexport class Sqrt extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqrt\", outTypeFunc: sqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqrt} = sqrt(${inputs.a});`];\n };\n }\n}\n\nexport class InverseSqrt extends UnaryOp<\n A,\n A,\n \"inversesqrt\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inversesqrt\", outTypeFunc: inversesqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.inversesqrt} = inversesqrt(${inputs.a});`];\n };\n }\n}\n\nexport class Min extends BinaryOp<\n A,\n B,\n MinOutput,\n \"min\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"min\", outTypeFunc: minOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.min} = min(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Max extends BinaryOp<\n A,\n B,\n MaxOutput,\n \"max\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"max\", outTypeFunc: maxOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.max} = max(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Clamp<\n A extends ValueTypes,\n MinMax extends ValueTypes,\n> extends TrinaryOp, \"clamp\"> {\n constructor({\n a,\n min,\n max,\n }: { a: DynoVal; min: DynoVal; max: DynoVal }) {\n super({\n a,\n b: min,\n c: max,\n outKey: \"clamp\",\n outTypeFunc: clampOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a, b: min, c: max } = inputs;\n return [`${outputs.clamp} = clamp(${a}, ${min}, ${max});`];\n };\n }\n}\n\nexport class Mix<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> extends TrinaryOp, \"mix\"> {\n constructor({ a, b, t }: { a: DynoVal; b: DynoVal; t: DynoVal }) {\n super({ a, b, c: t, outKey: \"mix\", outTypeFunc: mixOutputType });\n this.statements = ({ inputs, outputs }) => {\n const { a, b, c: t } = inputs;\n return [`${outputs.mix} = mix(${a}, ${b}, ${t});`];\n };\n }\n}\n\nexport class Step<\n Edge extends FloatTypes,\n X extends FloatTypes,\n> extends BinaryOp, \"step\"> {\n constructor({ edge, x }: { edge: DynoVal; x: DynoVal }) {\n super({\n a: edge,\n b: x,\n outKey: \"step\",\n outTypeFunc: stepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge, b: x } = inputs;\n return [`${outputs.step} = step(${edge}, ${x});`];\n };\n }\n}\n\nexport class Smoothstep<\n X extends FloatTypes,\n Edge extends X | \"float\",\n> extends TrinaryOp<\n Edge,\n Edge,\n X,\n SmoothstepOutput,\n \"smoothstep\"\n> {\n constructor({\n edge0,\n edge1,\n x,\n }: { edge0: DynoVal; edge1: DynoVal; x: DynoVal }) {\n super({\n a: edge0,\n b: edge1,\n c: x,\n outKey: \"smoothstep\",\n outTypeFunc: smoothstepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge0, b: edge1, c: x } = inputs;\n return [`${outputs.smoothstep} = smoothstep(${edge0}, ${edge1}, ${x});`];\n };\n }\n}\n\nexport class IsNan extends UnaryOp<\n A,\n IsNanOutput,\n \"isNan\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isNan\", outTypeFunc: isNanOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isNan} = isNan(${inputs.a});`];\n };\n }\n}\n\nexport class IsInf extends UnaryOp<\n A,\n IsInfOutput,\n \"isInf\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isInf\", outTypeFunc: isInfOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isInf} = isInf(${inputs.a});`];\n };\n }\n}\n","import { BinaryOp, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AllIntTypes,\n type BoolTypes,\n type IntTypes,\n type ScalarTypes,\n type SimpleTypes,\n type UintTypes,\n type ValueTypes,\n isBoolType,\n isIntType,\n isScalarType,\n isUintType,\n isVector2Type,\n isVector3Type,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const and = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new And({ a, b });\nexport const or = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Or({ a, b });\nexport const xor = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Xor({ a, b });\nexport const not = (\n a: DynoVal,\n): DynoVal => new Not({ a });\n\nexport const shr = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shr({ a, b });\n\nexport const shl = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shl({ a, b });\n\nexport const lessThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThan({ a, b });\nexport const lessThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThanEqual({ a, b });\nexport const greaterThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThan({ a, b });\nexport const greaterThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThanEqual({ a, b });\nexport const equal = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Equal({ a, b });\nexport const notEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new NotEqual({ a, b });\n\nexport const any = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new Any({ a });\nexport const all = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new All({ a });\nexport const select = (\n cond: DynoVal<\"bool\">,\n t: DynoVal,\n f: DynoVal,\n): DynoVal => new Select({ cond, t, f });\n\nexport const compXor = (\n a: DynoVal,\n): DynoVal> => new CompXor({ a });\n\nexport class And extends BinaryOp<\n T,\n T,\n T,\n \"and\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"and\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.and === \"bool\") {\n return [`${outputs.and} = ${inputs.a} && ${inputs.b};`];\n }\n return [`${outputs.and} = ${inputs.a} & ${inputs.b};`];\n };\n }\n}\n\nexport class Or extends BinaryOp<\n T,\n T,\n T,\n \"or\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"or\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.or === \"bool\") {\n return [`${outputs.or} = ${inputs.a} || ${inputs.b};`];\n }\n return [`${outputs.or} = ${inputs.a} | ${inputs.b};`];\n };\n }\n}\n\nexport class Xor extends BinaryOp<\n T,\n T,\n T,\n \"xor\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"xor\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.xor === \"bool\") {\n return [`${outputs.xor} = ${inputs.a} ^^ ${inputs.b};`];\n }\n return [`${outputs.xor} = ${inputs.a} ^ ${inputs.b};`];\n };\n }\n}\n\nexport class Not extends UnaryOp<\n T,\n T,\n \"not\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => aType, outKey: \"not\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.not === \"bool\") {\n return [`${outputs.not} = !${inputs.a};`];\n }\n return [`${outputs.not} = not(${inputs.a});`];\n };\n }\n}\n\nexport class LessThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) => compareOutputType(aType, \"lessThan\"),\n outKey: \"lessThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThan === \"bool\") {\n return [`${outputs.lessThan} = ${inputs.a} < ${inputs.b};`];\n }\n return [`${outputs.lessThan} = lessThan(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class LessThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"lessThanEqual\"),\n outKey: \"lessThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThanEqual === \"bool\") {\n return [`${outputs.lessThanEqual} = ${inputs.a} <= ${inputs.b};`];\n }\n return [\n `${outputs.lessThanEqual} = lessThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThan\"),\n outKey: \"greaterThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThan === \"bool\") {\n return [`${outputs.greaterThan} = ${inputs.a} > ${inputs.b};`];\n }\n return [\n `${outputs.greaterThan} = greaterThan(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThanEqual\"),\n outKey: \"greaterThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThanEqual === \"bool\") {\n return [`${outputs.greaterThanEqual} = ${inputs.a} >= ${inputs.b};`];\n }\n return [\n `${outputs.greaterThanEqual} = greaterThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class Equal extends BinaryOp<\n T,\n T,\n EqualOutput,\n \"equal\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: equalOutputType, outKey: \"equal\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.equal === \"bool\") {\n return [`${outputs.equal} = ${inputs.a} == ${inputs.b};`];\n }\n return [`${outputs.equal} = equal(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class NotEqual extends BinaryOp<\n T,\n T,\n NotEqualOutput,\n \"notEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: notEqualOutputType, outKey: \"notEqual\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.notEqual === \"bool\") {\n return [`${outputs.notEqual} = ${inputs.a} != ${inputs.b};`];\n }\n return [`${outputs.notEqual} = notEqual(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Any extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"any\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.any} = any(${inputs.a});`];\n };\n }\n}\n\nexport class All extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"all\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.all} = all(${inputs.a});`];\n };\n }\n}\n\nexport class Select extends TrinaryOp<\n \"bool\",\n T,\n T,\n T,\n \"select\"\n> {\n constructor({\n cond,\n t,\n f,\n }: { cond: DynoVal<\"bool\">; t: DynoVal; f: DynoVal }) {\n super({\n a: cond,\n b: t,\n c: f,\n outKey: \"select\",\n outTypeFunc: (aType: \"bool\", bType: T, cType: T) => bType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: cond, b: t, c: f } = inputs;\n return [`${outputs.select} = (${cond}) ? (${t}) : (${f});`];\n };\n }\n}\n\ntype CompareOutput = T extends ScalarTypes\n ? \"bool\"\n : T extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : T extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : T extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction compareOutputType(\n type: T,\n operator: string,\n): CompareOutput {\n if (isScalarType(type)) {\n return \"bool\" as CompareOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as CompareOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as CompareOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as CompareOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype EqualOutput = A extends ScalarTypes\n ? \"bool\"\n : A extends BoolTypes\n ? A\n : A extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : A extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : A extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction equalOutputType(\n type: A,\n operator = \"equal\",\n): EqualOutput {\n if (isScalarType(type)) {\n return \"bool\" as EqualOutput;\n }\n if (isBoolType(type)) {\n return type as EqualOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as EqualOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as EqualOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as EqualOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype NotEqualOutput = EqualOutput;\n\nfunction notEqualOutputType(\n type: A,\n): NotEqualOutput {\n return equalOutputType(type, \"notEqual\");\n}\n\ntype CompXorOutput = A extends BoolTypes\n ? \"bool\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nfunction compXorOutputType(\n type: A,\n): CompXorOutput {\n if (isBoolType(type)) {\n return \"bool\" as CompXorOutput;\n }\n if (isIntType(type)) {\n return \"int\" as CompXorOutput;\n }\n if (isUintType(type)) {\n return \"uint\" as CompXorOutput;\n }\n throw new Error(`Invalid compXor type: ${type}`);\n}\n\nexport class CompXor extends UnaryOp<\n T,\n CompXorOutput,\n \"compXor\"\n> {\n constructor({ a }: { a: DynoVal }) {\n const outType = compXorOutputType(valType(a));\n super({ a, outTypeFunc: (aType: T) => outType, outKey: \"compXor\" });\n this.statements = ({ inputs, outputs }) => {\n if (isScalarType(this.outTypes.compXor)) {\n return [`${outputs.compXor} = ${inputs.a};`];\n }\n const components = isVector2Type(outType)\n ? [\"x\", \"y\"]\n : isVector3Type(outType)\n ? [\"x\", \"y\", \"z\"]\n : [\"x\", \"y\", \"z\", \"w\"];\n const operands = components.map((c) => `${inputs.a}.${c}`);\n const operator = isBoolType(outType) ? \"^^\" : \"^\";\n return [`${outputs.compXor} = ${operands.join(` ${operator} `)};`];\n };\n }\n}\n\nexport class Shr extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shr\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shr} = ${inputs.a} >> ${inputs.b};`];\n };\n }\n}\n\nexport class Shl extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shl\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shl} = ${inputs.a} << ${inputs.b};`];\n };\n }\n}\n","import { UnaryOp } from \"./base\";\nimport { type SimpleTypes, typeLiteral } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const bool = (\n value: DynoVal,\n): DynoVal<\"bool\"> => new Bool({ value });\nexport const int = (\n value: DynoVal,\n): DynoVal<\"int\"> => new Int({ value });\nexport const uint = (\n value: DynoVal,\n): DynoVal<\"uint\"> => new Uint({ value });\nexport const float = (\n value: DynoVal,\n): DynoVal<\"float\"> => new Float({ value });\n\nexport const bvec2 = (\n value: DynoVal,\n): DynoVal<\"bvec2\"> => new BVec2({ value });\nexport const bvec3 = (\n value: DynoVal,\n): DynoVal<\"bvec3\"> => new BVec3({ value });\nexport const bvec4 = (\n value: DynoVal,\n): DynoVal<\"bvec4\"> => new BVec4({ value });\n\nexport const ivec2 = (\n value: DynoVal,\n): DynoVal<\"ivec2\"> => new IVec2({ value });\nexport const ivec3 = (\n value: DynoVal,\n): DynoVal<\"ivec3\"> => new IVec3({ value });\nexport const ivec4 = (\n value: DynoVal,\n): DynoVal<\"ivec4\"> => new IVec4({ value });\n\nexport const uvec2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => new UVec2({ value });\nexport const uvec3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => new UVec3({ value });\nexport const uvec4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => new UVec4({ value });\n\nexport const vec2 = <\n T extends \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec2\"> => new Vec2({ value });\nexport const vec3 = <\n T extends \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec3\"> => new Vec3({ value });\nexport const vec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => new Vec4({ value });\n\nexport const mat2 = (\n value: DynoVal,\n): DynoVal<\"mat2\"> => new Mat2({ value });\nexport const mat3 = (\n value: DynoVal,\n): DynoVal<\"mat3\"> => new Mat3({ value });\nexport const mat4 = (\n value: DynoVal,\n): DynoVal<\"mat4\"> => new Mat4({ value });\n\nexport const floatBitsToInt = (value: DynoVal<\"float\">): DynoVal<\"int\"> =>\n new FloatBitsToInt({ value });\nexport const floatBitsToUint = (value: DynoVal<\"float\">): DynoVal<\"uint\"> =>\n new FloatBitsToUint({ value });\nexport const intBitsToFloat = (value: DynoVal<\"int\">): DynoVal<\"float\"> =>\n new IntBitsToFloat({ value });\nexport const uintBitsToFloat = (value: DynoVal<\"uint\">): DynoVal<\"float\"> =>\n new UintBitsToFloat({ value });\n\nexport const packSnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackSnorm2x16({ value });\nexport const unpackSnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackSnorm2x16({ value });\nexport const packUnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackUnorm2x16({ value });\nexport const unpackUnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackUnorm2x16({ value });\n\nexport const packHalf2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackHalf2x16({ value });\nexport const unpackHalf2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackHalf2x16({ value });\n\nexport const uintToRgba8 = (value: DynoVal<\"uint\">): DynoVal<\"vec4\"> =>\n new UintToRgba8({ value });\n\nexport class SimpleCast<\n Allowed extends SimpleTypes,\n OutType extends SimpleTypes,\n OutKey extends string,\n> extends UnaryOp {\n constructor({\n value,\n outType,\n outKey,\n }: { value: DynoVal; outType: OutType; outKey: OutKey }) {\n super({ a: value, outTypeFunc: () => outType, outKey });\n this.statements = ({ inputs, outputs }) => [\n `${outputs[outKey]} = ${typeLiteral(outType)}(${inputs.a});`,\n ];\n }\n}\n\nexport class Bool extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"bool\",\n \"bool\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"bool\", outKey: \"bool\" });\n }\n}\n\nexport class Int extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"int\",\n \"int\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"int\", outKey: \"int\" });\n }\n}\n\nexport class Uint extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"uint\",\n \"uint\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"uint\", outKey: \"uint\" });\n }\n}\n\nexport class Float extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"float\",\n \"float\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"float\", outKey: \"float\" });\n }\n}\n\nexport class BVec2 extends SimpleCast<\n \"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"bvec2\",\n \"bvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"bvec2\", outKey: \"bvec2\" });\n }\n}\n\nexport class BVec3 extends SimpleCast<\n \"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"bvec3\",\n \"bvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"bvec3\", outKey: \"bvec3\" });\n }\n}\n\nexport class BVec4 extends SimpleCast<\n \"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"bvec4\",\n \"bvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"bvec4\", outKey: \"bvec4\" });\n }\n}\n\nexport class IVec2 extends SimpleCast<\n \"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"ivec2\",\n \"ivec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"ivec2\", outKey: \"ivec2\" });\n }\n}\n\nexport class IVec3 extends SimpleCast<\n \"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"ivec3\",\n \"ivec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"ivec3\", outKey: \"ivec3\" });\n }\n}\n\nexport class IVec4 extends SimpleCast<\n \"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"ivec4\",\n \"ivec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"ivec4\", outKey: \"ivec4\" });\n }\n}\n\nexport class UVec2 extends SimpleCast<\n \"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\",\n \"uvec2\",\n \"uvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"uvec2\", outKey: \"uvec2\" });\n }\n}\n\nexport class UVec3 extends SimpleCast<\n \"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\",\n \"uvec3\",\n \"uvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"uvec3\", outKey: \"uvec3\" });\n }\n}\n\nexport class UVec4 extends SimpleCast<\n \"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\",\n \"uvec4\",\n \"uvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"uvec4\", outKey: \"uvec4\" });\n }\n}\n\nexport class Vec2 extends SimpleCast<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n \"vec2\",\n \"vec2\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec2\", outKey: \"vec2\" });\n }\n}\n\nexport class Vec3 extends SimpleCast<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\",\n \"vec3\",\n \"vec3\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec3\", outKey: \"vec3\" });\n }\n}\n\nexport class Vec4 extends SimpleCast<\n \"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"vec4\",\n \"vec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"vec4\", outKey: \"vec4\" });\n }\n}\n\nexport class Mat2 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat2\",\n \"mat2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat2\", outKey: \"mat2\" });\n }\n}\n\nexport class Mat3 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat3\",\n \"mat3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat3\", outKey: \"mat3\" });\n }\n}\n\nexport class Mat4 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat4\",\n \"mat4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat4\", outKey: \"mat4\" });\n }\n}\n\nexport class FloatBitsToInt extends UnaryOp<\"float\", \"int\", \"int\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"int\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.int} = floatBitsToInt(${inputs.a});`];\n };\n }\n}\n\nexport class FloatBitsToUint extends UnaryOp<\"float\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = floatBitsToUint(${inputs.a});`];\n };\n }\n}\n\nexport class IntBitsToFloat extends UnaryOp<\"int\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"int\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = intBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class UintBitsToFloat extends UnaryOp<\"uint\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = uintBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class PackSnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackSnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackUnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackUnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackHalf2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackHalf2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UintToRgba8 extends UnaryOp<\"uint\", \"vec4\", \"rgba8\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"rgba8\", outTypeFunc: () => \"vec4\" });\n this.statements = ({ inputs, outputs }) => {\n return [\n `uvec4 uRgba = uvec4(${inputs.a} & 0xffu, (${inputs.a} >> 8u) & 0xffu, (${inputs.a} >> 16u) & 0xffu, (${inputs.a} >> 24u) & 0xffu);`,\n `${outputs.rgba8} = vec4(uRgba) / 255.0;`,\n ];\n };\n }\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type FloatTypes,\n type IntTypes,\n type MatFloatTypes,\n type SquareMatTypes,\n type UintTypes,\n type VectorElementType,\n type VectorTypes,\n isFloatType,\n isIntType,\n isUintType,\n vectorDim,\n vectorElementType,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n literalZero,\n valType,\n} from \"./value\";\n\nexport const length = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Length({ a });\nexport const distance = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Distance({ a, b });\nexport const dot = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Dot({ a, b });\nexport const cross = (\n a: DynoVal<\"vec3\">,\n b: DynoVal<\"vec3\">,\n): DynoVal<\"vec3\"> => new Cross({ a, b });\nexport const normalize = (\n a: DynoVal,\n): DynoVal => new Normalize({ a });\nexport const faceforward = (\n a: DynoVal,\n b: DynoVal,\n c: DynoVal,\n): DynoVal => new FaceForward({ a, b, c });\nexport const reflectVec = (\n incident: DynoVal,\n normal: DynoVal,\n): DynoVal => new ReflectVec({ incident, normal });\nexport const refractVec = (\n incident: DynoVal,\n normal: DynoVal,\n eta: DynoVal<\"float\">,\n): DynoVal => new RefractVec({ incident, normal, eta });\nexport const split = (vector: DynoVal): Split =>\n new Split({ vector });\nexport const combine = >({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n}: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n}): DynoVal => new Combine({ vector, vectorType, x, y, z, w, r, g, b, a });\nexport const projectH = (\n a: DynoVal,\n): DynoVal> => new ProjectH({ a });\nexport const extendVec = (\n a: DynoVal,\n b: DynoVal<\"float\">,\n): DynoVal> => new ExtendVec({ a, b });\nexport const swizzle = (\n a: DynoVal,\n select: S,\n): DynoVal>> =>\n new Swizzle({ vector: a, select });\nexport const compMult = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new CompMult({ a, b });\nexport const outer = <\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Outer({ a, b });\nexport const transpose = (\n a: DynoVal,\n): DynoVal> => new Transpose({ a });\nexport const determinant = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Determinant({ a });\nexport const inverse = (a: DynoVal): DynoVal =>\n new Inverse({ a });\n\nexport class Length extends UnaryOp<\n A,\n \"float\",\n \"length\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => \"float\", outKey: \"length\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.length} = length(${inputs.a});`,\n ];\n }\n}\n\nexport class Distance extends BinaryOp<\n A,\n A,\n \"float\",\n \"distance\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"distance\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.distance} = distance(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Dot extends BinaryOp<\n A,\n A,\n \"float\",\n \"dot\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"dot\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.dot} = dot(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Cross extends BinaryOp<\"vec3\", \"vec3\", \"vec3\", \"cross\"> {\n constructor({ a, b }: { a: DynoVal<\"vec3\">; b: DynoVal<\"vec3\"> }) {\n super({ a, b, outKey: \"cross\", outTypeFunc: (aType, bType) => \"vec3\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cross} = cross(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Normalize extends UnaryOp<\n A,\n A,\n \"normalize\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => aType, outKey: \"normalize\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normalize} = normalize(${inputs.a});`,\n ];\n }\n}\n\ntype ProjectHOutput = A extends \"vec3\"\n ? \"vec2\"\n : A extends \"vec4\"\n ? \"vec3\"\n : never;\n\nfunction projectHOutputType(\n type: A,\n): ProjectHOutput {\n if (type === \"vec3\") {\n return \"vec2\" as ProjectHOutput;\n }\n if (type === \"vec4\") {\n return \"vec3\" as ProjectHOutput;\n }\n throw new Error(\"Invalid type\");\n}\n\nexport class ProjectH extends UnaryOp<\n A,\n ProjectHOutput,\n \"projected\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({\n a,\n outTypeFunc: (aType) => projectHOutputType(aType),\n outKey: \"projected\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.inTypes.a === \"vec3\") {\n return [`${outputs.projected} = ${inputs.a}.xy / ${inputs.a}.z;`];\n }\n if (this.inTypes.a === \"vec4\") {\n return [`${outputs.projected} = ${inputs.a}.xyz / ${inputs.a}.w;`];\n }\n throw new Error(\"Invalid type\");\n };\n }\n}\n\ntype ExtendVecOutput = A extends \"float\"\n ? \"vec2\"\n : A extends \"vec2\"\n ? \"vec3\"\n : A extends \"vec3\"\n ? \"vec4\"\n : never;\n\nfunction extendVecOutputType(\n type: A,\n): ExtendVecOutput {\n if (type === \"float\") return \"vec2\" as ExtendVecOutput;\n if (type === \"vec2\") return \"vec3\" as ExtendVecOutput;\n if (type === \"vec3\") return \"vec4\" as ExtendVecOutput;\n throw new Error(\"Invalid type\");\n}\n\nexport class ExtendVec extends BinaryOp<\n A,\n \"float\",\n ExtendVecOutput,\n \"extend\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal<\"float\"> }) {\n const type = valType(a);\n const outType = extendVecOutputType(type);\n super({ a, b, outKey: \"extend\", outTypeFunc: () => outType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.extend} = ${outType}(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class FaceForward extends TrinaryOp<\n A,\n A,\n A,\n A,\n \"forward\"\n> {\n constructor({ a, b, c }: { a: DynoVal; b: DynoVal; c: DynoVal }) {\n super({\n a,\n b,\n c,\n outKey: \"forward\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.forward} = faceforward(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class ReflectVec extends BinaryOp<\n A,\n A,\n A,\n \"reflection\"\n> {\n constructor({\n incident,\n normal,\n }: { incident: DynoVal; normal: DynoVal }) {\n super({\n a: incident,\n b: normal,\n outKey: \"reflection\",\n outTypeFunc: (aType, bType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.reflection} = reflect(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class RefractVec extends TrinaryOp<\n A,\n A,\n \"float\",\n A,\n \"refraction\"\n> {\n constructor({\n incident,\n normal,\n eta,\n }: { incident: DynoVal; normal: DynoVal; eta: DynoVal<\"float\"> }) {\n super({\n a: incident,\n b: normal,\n c: eta,\n outKey: \"refraction\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.refraction} = refract(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class CompMult extends BinaryOp<\n A,\n A,\n A,\n \"product\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: (aType, bType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.product} = matrixCompMult(${a}, ${b});`,\n ];\n }\n}\n\ntype OuterOutput<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> = A extends \"vec2\"\n ? B extends \"vec2\"\n ? \"mat2\"\n : B extends \"vec3\"\n ? \"mat3x2\"\n : B extends \"vec4\"\n ? \"mat4x2\"\n : never\n : A extends \"vec3\"\n ? B extends \"vec2\"\n ? \"mat2x3\"\n : B extends \"vec3\"\n ? \"mat3\"\n : B extends \"vec4\"\n ? \"mat4x3\"\n : never\n : A extends \"vec4\"\n ? B extends \"vec2\"\n ? \"mat2x4\"\n : B extends \"vec3\"\n ? \"mat3x4\"\n : B extends \"vec4\"\n ? \"mat4\"\n : never\n : never;\n\nfunction outerOutputType<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(aType: A, bType: B): OuterOutput {\n if (aType === \"vec2\") {\n if (bType === \"vec2\") return \"mat2\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x2\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x2\" as OuterOutput;\n }\n if (aType === \"vec3\") {\n if (bType === \"vec2\") return \"mat2x3\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x3\" as OuterOutput;\n }\n if (aType === \"vec4\") {\n if (bType === \"vec2\") return \"mat2x4\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x4\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4\" as OuterOutput;\n }\n throw new Error(`Invalid outer type: ${aType}, ${bType}`);\n}\n\nexport class Outer<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> extends BinaryOp, \"outer\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"outer\", outTypeFunc: outerOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.outer} = outerProduct(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\ntype TransposeOutput = A extends SquareMatTypes\n ? A\n : A extends \"mat2x3\"\n ? \"mat3x2\"\n : A extends \"mat2x4\"\n ? \"mat4x2\"\n : A extends \"mat3x2\"\n ? \"mat2x3\"\n : A extends \"mat3x4\"\n ? \"mat4x3\"\n : A extends \"mat4x2\"\n ? \"mat2x4\"\n : A extends \"mat4x3\"\n ? \"mat3x4\"\n : never;\n\nfunction transposeOutputType(\n type: A,\n): TransposeOutput {\n if (type === \"mat2\") return \"mat2\" as TransposeOutput;\n if (type === \"mat3\") return \"mat3\" as TransposeOutput;\n if (type === \"mat4\") return \"mat4\" as TransposeOutput;\n if (type === \"mat2x2\") return \"mat2x2\" as TransposeOutput;\n if (type === \"mat2x3\") return \"mat3x2\" as TransposeOutput;\n if (type === \"mat2x4\") return \"mat4x2\" as TransposeOutput;\n if (type === \"mat3x2\") return \"mat2x3\" as TransposeOutput;\n if (type === \"mat3x3\") return \"mat3x3\" as TransposeOutput;\n if (type === \"mat3x4\") return \"mat4x3\" as TransposeOutput;\n if (type === \"mat4x2\") return \"mat2x4\" as TransposeOutput;\n if (type === \"mat4x3\") return \"mat3x4\" as TransposeOutput;\n if (type === \"mat4x4\") return \"mat4x4\" as TransposeOutput;\n throw new Error(`Invalid transpose type: ${type}`);\n}\n\nexport class Transpose extends UnaryOp<\n A,\n TransposeOutput,\n \"transpose\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"transpose\", outTypeFunc: transposeOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.transpose} = transpose(${inputs.a});`,\n ];\n }\n}\n\nexport class Determinant extends UnaryOp<\n A,\n \"float\",\n \"det\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"det\", outTypeFunc: (aType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.det} = determinant(${inputs.a});`,\n ];\n }\n}\n\nexport class Inverse extends UnaryOp<\n A,\n A,\n \"inverse\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inverse\", outTypeFunc: (aType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.inverse} = inverse(${a});`,\n ];\n }\n}\n\ntype SplitOutTypes = A extends \"vec2\"\n ? { x: \"float\"; y: \"float\"; r: \"float\"; g: \"float\" }\n : A extends \"vec3\"\n ? { x: \"float\"; y: \"float\"; z: \"float\"; r: \"float\"; g: \"float\"; b: \"float\" }\n : A extends \"vec4\"\n ? {\n x: \"float\";\n y: \"float\";\n z: \"float\";\n w: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n a: \"float\";\n }\n : A extends \"ivec2\"\n ? { x: \"int\"; y: \"int\"; r: \"int\"; g: \"int\" }\n : A extends \"ivec3\"\n ? { x: \"int\"; y: \"int\"; z: \"int\"; r: \"int\"; g: \"int\"; b: \"int\" }\n : A extends \"ivec4\"\n ? {\n x: \"int\";\n y: \"int\";\n z: \"int\";\n w: \"int\";\n r: \"int\";\n g: \"int\";\n b: \"int\";\n a: \"int\";\n }\n : A extends \"uvec2\"\n ? { x: \"uint\"; y: \"uint\"; r: \"uint\"; g: \"uint\" }\n : A extends \"uvec3\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n }\n : A extends \"uvec4\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n w: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n a: \"uint\";\n }\n : never;\n\nfunction splitOutTypes(type: A): SplitOutTypes {\n const result = (value: unknown) => value as SplitOutTypes;\n switch (type) {\n case \"vec2\":\n return result({ x: \"float\", y: \"float\", r: \"float\", g: \"float\" });\n case \"vec3\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n });\n case \"vec4\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n w: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n a: \"float\",\n });\n case \"ivec2\":\n return result({ x: \"int\", y: \"int\", r: \"int\", g: \"int\" });\n case \"ivec3\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n });\n case \"ivec4\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n w: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n a: \"int\",\n });\n case \"uvec2\":\n return result({ x: \"uint\", y: \"uint\", r: \"uint\", g: \"uint\" });\n case \"uvec3\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n });\n case \"uvec4\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n w: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n a: \"uint\",\n });\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport class Split extends Dyno<\n { vector: V },\n SplitOutTypes\n> {\n constructor({ vector }: { vector: DynoVal }) {\n const type = valType(vector);\n const inTypes = { vector: type };\n const outTypes = splitOutTypes(inTypes.vector);\n super({ inTypes, outTypes, inputs: { vector } });\n this.statements = ({ inputs, outputs }) => {\n const { x, y, z, w, r, g, b, a } = outputs as unknown as Record<\n string,\n string\n >;\n const { vector } = inputs;\n return [\n x ? `${x} = ${vector}.x;` : null,\n y ? `${y} = ${vector}.y;` : null,\n z ? `${z} = ${vector}.z;` : null,\n w ? `${w} = ${vector}.w;` : null,\n r ? `${r} = ${vector}.r;` : null,\n g ? `${g} = ${vector}.g;` : null,\n b ? `${b} = ${vector}.b;` : null,\n a ? `${a} = ${vector}.a;` : null,\n ].filter(Boolean) as string[];\n };\n }\n}\n\nexport class Combine>\n extends Dyno & { vector: V }, { vector: V }>\n implements HasDynoOut\n{\n constructor({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n }: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n }) {\n if (!vector && !vectorType) {\n throw new Error(\"Either vector or vectorType must be provided\");\n }\n const vType = vectorType ?? valType(vector as DynoVal);\n const elType = vectorElementType(vType);\n const dim = vectorDim(vType);\n\n const inTypes = {\n vector: vType,\n x: elType,\n y: elType,\n r: elType,\n g: elType,\n } as unknown as SplitOutTypes & { vector: V };\n const inputs = { vector, x, y, r, g };\n if (dim >= 3) {\n Object.assign(inTypes, { z: elType, b: elType });\n Object.assign(inputs, { z, b });\n }\n if (dim >= 4) {\n Object.assign(inTypes, { w: elType, a: elType });\n Object.assign(inputs, { w, a });\n }\n // @ts-ignore\n super({ inTypes, outTypes: { vector: vType }, inputs });\n this.statements = ({ inputs, outputs }) => {\n const { vector } = outputs;\n const {\n vector: input,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n } = inputs as Record;\n const statements = [\n `${vector}.x = ${x ?? r ?? (input ? `${input}.x` : literalZero(elType))};`,\n `${vector}.y = ${y ?? g ?? (input ? `${input}.y` : literalZero(elType))};`,\n ];\n if (dim >= 3)\n statements.push(\n `${vector}.z = ${z ?? b ?? (input ? `${input}.z` : literalZero(elType))};`,\n );\n if (dim >= 4)\n statements.push(\n `${vector}.w = ${w ?? a ?? (input ? `${input}.w` : literalZero(elType))};`,\n );\n return statements;\n };\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput & { vector: V }, { vector: V }>(\n this,\n \"vector\",\n );\n }\n}\n\ntype SwizzleOutput<\n A extends VectorTypes,\n Len extends number,\n> = A extends FloatTypes\n ? Len extends 1\n ? \"float\"\n : Len extends 2\n ? \"vec2\"\n : Len extends 3\n ? \"vec3\"\n : Len extends 4\n ? \"vec4\"\n : never\n : A extends IntTypes\n ? Len extends 1\n ? \"int\"\n : Len extends 2\n ? \"ivec2\"\n : Len extends 3\n ? \"ivec3\"\n : Len extends 4\n ? \"ivec4\"\n : never\n : A extends UintTypes\n ? Len extends 1\n ? \"uint\"\n : Len extends 2\n ? \"uvec2\"\n : Len extends 3\n ? \"uvec3\"\n : Len extends 4\n ? \"uvec4\"\n : never\n : never;\n\ntype SwizzleSelectLen = S extends Swizzle1Select\n ? 1\n : S extends Swizzle2Select\n ? 2\n : S extends Swizzle3Select\n ? 3\n : S extends Swizzle4Select\n ? 4\n : never;\n\nfunction swizzleOutputType(\n type: A,\n swizzle: S,\n): SwizzleOutput> {\n let result = null;\n if (isFloatType(type)) {\n result =\n swizzle.length === 1\n ? \"float\"\n : swizzle.length === 2\n ? \"vec2\"\n : swizzle.length === 3\n ? \"vec3\"\n : swizzle.length === 4\n ? \"vec4\"\n : null;\n } else if (isIntType(type)) {\n result =\n swizzle.length === 1\n ? \"int\"\n : swizzle.length === 2\n ? \"ivec2\"\n : swizzle.length === 3\n ? \"ivec3\"\n : swizzle.length === 4\n ? \"ivec4\"\n : null;\n } else if (isUintType(type)) {\n result =\n swizzle.length === 1\n ? \"uint\"\n : swizzle.length === 2\n ? \"uvec2\"\n : swizzle.length === 3\n ? \"uvec3\"\n : swizzle.length === 4\n ? \"uvec4\"\n : null;\n }\n if (result == null) {\n throw new Error(`Invalid swizzle: ${swizzle}`);\n }\n return result as SwizzleOutput>;\n}\n\ntype Swizzle1Select = `${\"x\" | \"y\" | \"z\" | \"w\"}|${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle2Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle3Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle4Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype SwizzleSelect =\n | Swizzle1Select\n | Swizzle2Select\n | Swizzle3Select\n | Swizzle4Select;\n\nexport class Swizzle<\n A extends VectorTypes,\n S extends SwizzleSelect,\n> extends UnaryOp>, \"swizzle\"> {\n constructor({ vector, select }: { vector: DynoVal; select: S }) {\n super({\n a: vector,\n outKey: \"swizzle\",\n outTypeFunc: (aType) => swizzleOutputType(aType, select),\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.swizzle} = ${inputs.a}.${select};`,\n ];\n }\n}\n","import { Dyno, DynoBlock, unindent } from \"./base\";\nimport { float, vec2, vec3, vec4 } from \"./convert\";\nimport { mul } from \"./math\";\nimport { type ValueTypes, isIntType, isUintType, sameSizeUvec } from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n dynoConst,\n valType,\n} from \"./value\";\nimport { combine } from \"./vecmat\";\n\nexport const remapIndex = (\n index: DynoVal<\"int\">,\n from: DynoVal<\"int\">,\n to: DynoVal<\"int\">,\n): DynoVal<\"int\"> => {\n return new DynoRemapIndex({ index, from, to });\n};\nexport const pcgMix = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new PcgMix({ value });\n};\nexport const pcgNext = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgNext({ state });\n};\nexport const pcgHash = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgHash({ state });\n};\nexport const hash = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new Hash({ value });\n};\nexport const hash2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => {\n return new Hash2({ value });\n};\nexport const hash3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => {\n return new Hash3({ value });\n};\nexport const hash4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => {\n return new Hash4({ value });\n};\nexport const hashFloat = (\n value: DynoVal,\n): DynoVal<\"float\"> => {\n return new HashFloat({ value });\n};\nexport const hashVec2 = (\n value: DynoVal,\n): DynoVal<\"vec2\"> => {\n return new HashVec2({ value });\n};\nexport const hashVec3 = (\n value: DynoVal,\n): DynoVal<\"vec3\"> => {\n return new HashVec3({ value });\n};\nexport const hashVec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => {\n return new HashVec4({ value });\n};\nexport const normalizedDepth = (\n z: DynoVal<\"float\">,\n zNear: DynoVal<\"float\">,\n zFar: DynoVal<\"float\">,\n): DynoVal<\"float\"> => {\n return new NormalizedDepth({ z, zNear, zFar }).outputs.depth;\n};\n\nexport const debugColorHue = (index: DynoVal<\"int\">): DynoVal<\"vec3\"> => {\n return new DebugColorHue({ index });\n};\n\nexport class DynoRemapIndex\n extends Dyno<{ from: \"int\"; to: \"int\"; index: \"int\" }, { index: \"int\" }>\n implements HasDynoOut<\"int\">\n{\n constructor({\n from,\n to,\n index,\n }: { from: DynoVal<\"int\">; to: DynoVal<\"int\">; index: DynoVal<\"int\"> }) {\n super({\n inTypes: { from: \"int\", to: \"int\", index: \"int\" },\n outTypes: { index: \"int\" },\n inputs: { from, to, index },\n statements: ({ inputs, outputs }) => {\n return [\n `${outputs.index} = ${inputs.index} - ${inputs.from} + ${inputs.to};`,\n ];\n },\n });\n }\n\n dynoOut(): DynoValue<\"int\"> {\n return new DynoOutput(this, \"index\");\n }\n}\n\nexport class PcgNext\n extends Dyno<{ state: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal }) {\n const type = valType(state);\n super({\n inTypes: { state: type },\n outTypes: { state: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_next(uint state) {\n return state * 747796405u + 2891336453u;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUint =\n type === \"uint\"\n ? `${inputs.state}`\n : type === \"int\"\n ? `uint(${inputs.state})`\n : `floatBitsToUint(${inputs.state})`;\n return [`${outputs.state} = pcg_next(${toUint});`];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class PcgHash\n extends Dyno<{ state: \"uint\" }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal<\"uint\"> }) {\n super({\n inTypes: { state: \"uint\" },\n outTypes: { hash: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_hash(uint state) {\n uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u;\n return (hash >> 22u) ^ hash;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => [\n `${outputs.hash} = pcg_hash(${inputs.state});`,\n ],\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class PcgMix\n extends Dyno<{ value: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n const type = valType(value);\n const tempType = sameSizeUvec(type);\n super({\n inTypes: { value: type },\n outTypes: { state: \"uint\" },\n inputs: { value },\n globals: () => [\n unindent(`\n uint pcg_mix(uint value) {\n return value;\n }\n uint pcg_mix(uvec2 value) {\n return value.x + 0x9e3779b9u * value.y;\n }\n uint pcg_mix(uvec3 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z;\n }\n uint pcg_mix(uvec4 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z + 0xc2b2ae35u * value.w;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUvec = isUintType(type)\n ? `${inputs.value}`\n : isIntType(type)\n ? `${tempType}(${inputs.value})`\n : `floatBitsToUint(${inputs.value})`;\n return [\n `${tempType} bits = ${toUvec};`,\n `${outputs.state} = pcg_mix(bits);`,\n ];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class Hash\n extends DynoBlock<{ value: T }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uint\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n return new PcgHash({ state }).outputs;\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash2\n extends DynoBlock<{ value: T }, { hash: \"uvec2\" }>\n implements HasDynoOut<\"uvec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec2\", x, y }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash3\n extends DynoBlock<{ value: T }, { hash: \"uvec3\" }>\n implements HasDynoOut<\"uvec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec3\", x, y, z }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash4\n extends DynoBlock<{ value: T }, { hash: \"uvec4\" }>\n implements HasDynoOut<\"uvec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const w = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec4\", x, y, z, w }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashFloat\n extends DynoBlock<{ value: T }, { hash: \"float\" }>\n implements HasDynoOut<\"float\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"float\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const word = hash(value);\n return { hash: mul(float(word), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec2\n extends DynoBlock<{ value: T }, { hash: \"vec2\" }>\n implements HasDynoOut<\"vec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash2(value);\n return { hash: mul(vec2(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec3\n extends DynoBlock<{ value: T }, { hash: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash3(value);\n return { hash: mul(vec3(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec4\n extends DynoBlock<{ value: T }, { hash: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash4(value);\n return { hash: mul(vec4(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class NormalizedDepth\n extends Dyno<\n { z: \"float\"; zNear: \"float\"; zFar: \"float\" },\n { depth: \"float\" }\n >\n implements HasDynoOut<\"float\">\n{\n constructor({\n z,\n zNear,\n zFar,\n }: { z: DynoVal<\"float\">; zNear: DynoVal<\"float\">; zFar: DynoVal<\"float\"> }) {\n super({\n inTypes: { z: \"float\", zNear: \"float\", zFar: \"float\" },\n outTypes: { depth: \"float\" },\n inputs: { z, zNear, zFar },\n statements: ({ inputs, outputs }) => [\n `float clamped = clamp(${inputs.z}, ${inputs.zNear}, ${inputs.zFar});`,\n `${outputs.depth} = (log2(clamped + 1.0) - log2(${inputs.zNear} + 1.0)) / (log2(${inputs.zFar} + 1.0) - log2(${inputs.zNear} + 1.0));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"depth\");\n }\n}\n\nexport class DebugColorHue\n extends Dyno<{ index: \"int\" }, { color: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ index }: { index: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { color: \"vec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => [\n `${outputs.color} = debugColorHue(uint(${inputs.index}));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"color\");\n }\n}\n","import { Dyno } from \"./base\";\nimport type { DynoVal } from \"./value\";\n\nexport const transformPos = (\n position: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n translate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformPosition({ position, scale, scales, rotate, translate })\n .outputs.position;\n};\nexport const transformDir = (\n dir: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformDir({ dir, scale, scales, rotate }).outputs.dir;\n};\nexport const transformQuat = (\n quaternion: DynoVal<\"vec4\">,\n { rotate }: { rotate?: DynoVal<\"vec4\"> },\n): DynoVal<\"vec4\"> => {\n return new TransformQuaternion({ quaternion, rotate }).outputs.quaternion;\n};\n\nexport class TransformPosition extends Dyno<\n {\n position: \"vec3\";\n scale: \"float\";\n scales: \"vec3\";\n rotate: \"vec4\";\n translate: \"vec3\";\n },\n { position: \"vec3\" }\n> {\n constructor({\n position,\n scale,\n scales,\n rotate,\n translate,\n }: {\n position?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n }) {\n super({\n inTypes: {\n position: \"vec3\",\n scale: \"float\",\n scales: \"vec3\",\n rotate: \"vec4\",\n translate: \"vec3\",\n },\n outTypes: { position: \"vec3\" },\n inputs: { position, scale, scales, rotate, translate },\n statements: ({ inputs, outputs }) => {\n const { position } = outputs;\n if (!position) {\n return [];\n }\n const { scale, scales, rotate, translate } = inputs;\n return [\n `${position} = ${inputs.position ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${position} *= ${scale};`,\n !scales ? null : `${position} *= ${scales};`,\n !rotate ? null : `${position} = quatVec(${rotate}, ${position});`,\n !translate ? null : `${position} += ${translate};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformDir extends Dyno<\n { dir: \"vec3\"; scale: \"float\"; scales: \"vec3\"; rotate: \"vec4\" },\n { dir: \"vec3\" }\n> {\n constructor({\n dir,\n scale,\n scales,\n rotate,\n }: {\n dir?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { dir: \"vec3\", scale: \"float\", scales: \"vec3\", rotate: \"vec4\" },\n outTypes: { dir: \"vec3\" },\n inputs: { dir, scale, scales, rotate },\n statements: ({ inputs, outputs }) => {\n const { dir } = outputs;\n if (!dir) {\n return [];\n }\n const { scale, scales, rotate } = inputs;\n return [\n `${dir} = ${inputs.dir ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${dir} *= ${scale};`,\n !scales ? null : `${dir} *= ${scales};`,\n !rotate ? null : `${dir} = quatVec(${rotate}, ${dir});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformQuaternion extends Dyno<\n { quaternion: \"vec4\"; rotate: \"vec4\" },\n { quaternion: \"vec4\" }\n> {\n constructor({\n quaternion,\n rotate,\n }: { quaternion?: DynoVal<\"vec4\">; rotate?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { quaternion: \"vec4\", rotate: \"vec4\" },\n outTypes: { quaternion: \"vec4\" },\n inputs: { quaternion, rotate },\n statements: ({ inputs, outputs }) => {\n const { quaternion } = outputs;\n if (!quaternion) {\n return [];\n }\n return [\n `${quaternion} = ${inputs.quaternion ?? \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rotate\n ? null\n : `${quaternion} = quatQuat(${inputs.rotate}, ${quaternion});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n","// TODO:\n// if, switch, for, comment,\n// arrayIndex, arrayLength,\n\nexport const dynoIf = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoSwitch = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoFor = () => {\n throw new Error(\"Not implemented\");\n};\nexport const comment = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayIndex = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayLength = () => {\n throw new Error(\"Not implemented\");\n};\n","import { Dyno } from \"./base\";\nimport type {\n AllSamplerTypes,\n IsamplerTypes,\n NormalSamplerTypes,\n Sampler2DArrayTypes,\n Sampler2DTypes,\n Sampler3DTypes,\n SamplerCubeTypes,\n SamplerShadowTypes,\n SamplerTypes,\n UsamplerTypes,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nexport const textureSize = (\n texture: DynoVal,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TextureSize({ texture, lod });\nexport const texture = (\n texture: DynoVal,\n coord: DynoVal>,\n bias?: DynoVal<\"float\">,\n): DynoVal> => new Texture({ texture, coord, bias });\nexport const texelFetch = (\n texture: DynoVal,\n coord: DynoVal>,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TexelFetch({ texture, coord, lod });\n\nexport class TextureSize\n extends Dyno<{ texture: T; lod: \"int\" }, { size: TextureSizeType }>\n implements HasDynoOut>\n{\n constructor({ texture, lod }: { texture: DynoVal; lod?: DynoVal<\"int\"> }) {\n const textureType = valType(texture);\n super({\n inTypes: { texture: textureType, lod: \"int\" },\n outTypes: { size: textureSizeType(textureType) },\n inputs: { texture, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.size} = textureSize(${inputs.texture}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"size\");\n }\n}\n\nexport class Texture\n extends Dyno<\n { texture: T; coord: TextureCoordType; bias: \"float\" },\n { sample: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n bias,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n bias?: DynoVal<\"float\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureCoordType(textureType),\n bias: \"float\",\n },\n outTypes: { sample: textureReturnType(textureType) },\n inputs: { texture, coord, bias },\n statements: ({ inputs, outputs }) => [\n `${outputs.sample} = texture(${inputs.texture}, ${inputs.coord}${inputs.bias ? `, ${inputs.bias}` : \"\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"sample\");\n }\n}\n\nexport class TexelFetch\n extends Dyno<\n { texture: T; coord: TextureSizeType; lod: \"int\" },\n { texel: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n lod,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n lod?: DynoVal<\"int\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureSizeType(textureType),\n lod: \"int\",\n },\n outTypes: { texel: textureReturnType(textureType) },\n inputs: { texture, coord, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.texel} = texelFetch(${inputs.texture}, ${inputs.coord}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"texel\");\n }\n}\n\ntype TextureSizeType = T extends\n | Sampler2DTypes\n | SamplerCubeTypes\n ? \"ivec2\"\n : T extends Sampler3DTypes | Sampler2DArrayTypes\n ? \"ivec3\"\n : never;\n\nfunction textureSizeType(\n textureType: T,\n): TextureSizeType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DShadow\":\n case \"samplerCubeShadow\":\n return \"ivec2\" as TextureSizeType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DArrayShadow\":\n return \"ivec3\" as TextureSizeType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureCoordType = T extends Sampler2DTypes\n ? \"vec2\"\n : T extends\n | Sampler3DTypes\n | Sampler2DArrayTypes\n | SamplerCubeTypes\n | Sampler2DArrayTypes\n ? \"vec3\"\n : T extends \"samperCubeShadow\" | \"sampler2DArrayShadow\"\n ? \"vec4\"\n : never;\n\nfunction textureCoordType(\n textureType: T,\n): TextureCoordType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n return \"vec2\" as TextureCoordType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DShadow\":\n return \"vec3\" as TextureCoordType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"vec4\" as TextureCoordType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureReturnType = T extends SamplerTypes\n ? \"vec4\"\n : T extends UsamplerTypes\n ? \"uvec4\"\n : T extends IsamplerTypes\n ? \"ivec4\"\n : T extends SamplerShadowTypes\n ? \"float\"\n : never;\n\nfunction textureReturnType(\n textureType: T,\n): TextureReturnType {\n switch (textureType) {\n case \"sampler2D\":\n case \"sampler2DArray\":\n case \"sampler3D\":\n case \"samplerCube\":\n case \"sampler2DShadow\":\n return \"vec4\" as TextureReturnType;\n case \"usampler2D\":\n case \"usampler2DArray\":\n case \"usampler3D\":\n case \"usamplerCube\":\n return \"uvec4\" as TextureReturnType;\n case \"isampler2D\":\n case \"isampler2DArray\":\n case \"isampler3D\":\n case \"isamplerCube\":\n return \"ivec4\" as TextureReturnType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"float\" as TextureReturnType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n","import { BinaryOp, UnaryOp } from \"./base\";\nimport type { FloatTypes } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const radians = (\n degrees: DynoVal,\n): DynoVal => new Radians({ degrees });\nexport const degrees = (\n radians: DynoVal,\n): DynoVal => new Degrees({ radians });\n\nexport const sin = (radians: DynoVal): DynoVal =>\n new Sin({ radians });\nexport const cos = (radians: DynoVal): DynoVal =>\n new Cos({ radians });\nexport const tan = (radians: DynoVal): DynoVal =>\n new Tan({ radians });\n\nexport const asin = (sin: DynoVal): DynoVal =>\n new Asin({ sin });\nexport const acos = (cos: DynoVal): DynoVal =>\n new Acos({ cos });\nexport const atan = (tan: DynoVal): DynoVal =>\n new Atan({ tan });\nexport const atan2 = (\n y: DynoVal,\n x: DynoVal,\n): DynoVal => new Atan2({ y, x });\n\nexport const sinh = (x: DynoVal): DynoVal =>\n new Sinh({ x });\nexport const cosh = (x: DynoVal): DynoVal =>\n new Cosh({ x });\nexport const tanh = (x: DynoVal): DynoVal =>\n new Tanh({ x });\n\nexport const asinh = (x: DynoVal): DynoVal =>\n new Asinh({ x });\nexport const acosh = (x: DynoVal): DynoVal =>\n new Acosh({ x });\nexport const atanh = (x: DynoVal): DynoVal =>\n new Atanh({ x });\n\nexport class Radians extends UnaryOp {\n constructor({ degrees }: { degrees: DynoVal }) {\n super({ a: degrees, outTypeFunc: (aType) => aType, outKey: \"radians\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.radians} = radians(${inputs.a});`,\n ];\n }\n}\n\nexport class Degrees extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"degrees\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.degrees} = degrees(${inputs.a});`,\n ];\n }\n}\n\nexport class Sin extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"sin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sin} = sin(${inputs.a});`,\n ];\n }\n}\n\nexport class Cos extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"cos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cos} = cos(${inputs.a});`,\n ];\n }\n}\n\nexport class Tan extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"tan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tan} = tan(${inputs.a});`,\n ];\n }\n}\n\nexport class Asin extends UnaryOp {\n constructor({ sin }: { sin: DynoVal }) {\n super({ a: sin, outTypeFunc: (aType) => aType, outKey: \"asin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asin} = asin(${inputs.a});`,\n ];\n }\n}\n\nexport class Acos extends UnaryOp {\n constructor({ cos }: { cos: DynoVal }) {\n super({ a: cos, outTypeFunc: (aType) => aType, outKey: \"acos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acos} = acos(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan extends UnaryOp {\n constructor({ tan }: { tan: DynoVal }) {\n super({ a: tan, outTypeFunc: (aType) => aType, outKey: \"atan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan} = atan(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan2 extends BinaryOp {\n constructor({ y, x }: { y: DynoVal; x: DynoVal }) {\n super({\n a: y,\n b: x,\n outTypeFunc: (aType, bType) => aType,\n outKey: \"atan2\",\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan2} = atan2(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Sinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"sinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sinh} = sinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Cosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"cosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cosh} = cosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Tanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"tanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tanh} = tanh(${inputs.a});`,\n ];\n }\n}\n\nexport class Asinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"asinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asinh} = asinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Acosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"acosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acosh} = acosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Atanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"atanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atanh} = atanh(${inputs.a});`,\n ];\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout uvec4 target;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n target = uvec4(0u, 0u, 0u, 0u);\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out vec4 target3;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial target to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize depthTarget to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out uvec4 target2;\nlayout(location = 2) out vec4 target3;\n// layout(location = 0) out vec4 target3;\n// layout(location = 1) out uvec4 target;\n// layout(location = 2) out uvec4 target2;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial targets to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n target2 = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize target3 to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout vec4 target;\n\n{{ GLOBALS }}\n\nvoid computeReadback(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n if ((index >= 0) && (index < targetCount)) {\n computeReadback(index);\n } else {\n target = vec4(0.0, 0.0, 0.0, 0.0);\n }\n}\n","const float LN_SCALE_MIN = -12.0;\nconst float LN_SCALE_MAX = 9.0;\n\nconst uint SPLAT_TEX_WIDTH_BITS = 11u;\nconst uint SPLAT_TEX_HEIGHT_BITS = 11u;\nconst uint SPLAT_TEX_DEPTH_BITS = 11u;\nconst uint SPLAT_TEX_LAYER_BITS = SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nconst uint SPLAT_TEX_WIDTH = 1u << SPLAT_TEX_WIDTH_BITS;\nconst uint SPLAT_TEX_HEIGHT = 1u << SPLAT_TEX_HEIGHT_BITS;\nconst uint SPLAT_TEX_DEPTH = 1u << SPLAT_TEX_DEPTH_BITS;\n\nconst uint SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1u;\nconst uint SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1u;\nconst uint SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1u;\n\nconst uint F16_INF = 0x7c00u;\nconst float PI = 3.1415926535897932384626433832795;\n\nconst float INFINITY = 1.0 / 0.0;\nconst float NEG_INFINITY = -INFINITY;\n\nfloat sqr(float x) {\n return x * x;\n}\n\nfloat pow4(float x) {\n float x2 = x * x;\n return x2 * x2;\n}\n\nfloat pow8(float x) {\n float x4 = pow4(x);\n return x4 * x4;\n}\n\nvec3 srgbToLinear(vec3 rgb) {\n return pow(rgb, vec3(2.2));\n}\n\nvec3 linearToSrgb(vec3 rgb) {\n return pow(rgb, vec3(1.0 / 2.2));\n}\n\n// Encode a quaternion (vec4) into a 24‐bit uint with folded octahedral mapping.\nuint encodeQuatOctXy88R8(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float theta = 2.0 * acos(q.w);\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 8 bits (0 to 255)\n uint quantU = uint(clamp(round(u_f * 255.0), 0.0, 255.0));\n uint quantV = uint(clamp(round(v_f * 255.0), 0.0, 255.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 8 bits (0 to 255)\n uint angleInt = uint(clamp(round((theta / 3.14159265359) * 255.0), 0.0, 255.0));\n \n // Pack bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16u) | (quantV << 8u) | quantU;\n}\n\n// Decode a 24‐bit encoded uint into a quaternion (vec4) using the folded octahedral inverse.\nvec4 decodeQuatOctXy88R8(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0xFFu); // bits 0–7\n uint quantV = (encoded >> 8u) & uint(0xFFu); // bits 8–15\n uint angleInt = encoded >> 16u; // bits 16–23\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 255.0;\n float v_f = float(quantV) / 255.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 255.0) * 3.14159265359;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\nuint encodeQuatOctXy1010R12(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float halfTheta = acos(q.w);\n float theta = 2.0 * halfTheta;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 10 bits (0 to 1023)\n uint quantU = uint(clamp(round(u_f * 1023.0), 0.0, 1023.0));\n uint quantV = uint(clamp(round(v_f * 1023.0), 0.0, 1023.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 12 bits (0 to 4095)\n uint angleInt = uint(clamp(round((theta / PI) * 4095.0), 0.0, 4095.0));\n \n // Pack bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20u) | (quantV << 10u) | quantU;\n}\n\nvec4 decodeQuatOctXy1010R12(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0x3FFu); // bits 0–9\n uint quantV = (encoded >> 10u) & uint(0x3FFu); // bits 10–19\n uint angleInt = encoded >> 20u; // bits 20–31\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 1023.0;\n float v_f = float(quantV) / 1023.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 4095.0) * PI;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplatEncoding(\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n uint uQuat = encodeQuatOctXy88R8(quaternion);\n // uint uQuat = encodeQuatXyz888(quaternion);\n // uint uQuat = encodeQuatEulerXyz888(quaternion);\n uvec3 uQuat3 = uvec3(uQuat & 0xffu, (uQuat >> 8u) & 0xffu, (uQuat >> 16u) & 0xffu);\n\n // Encode scales in three uint8s, where 0=>0.0 and 1..=255 stores log scale\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n uvec3 uScales = uvec3(\n (scales.x == 0.0) ? 0u : uint(round(clamp((log(scales.x) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.y == 0.0) ? 0u : uint(round(clamp((log(scales.y) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.z == 0.0) ? 0u : uint(round(clamp((log(scales.z) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u\n );\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) | (uQuat3.x << 16u) | (uQuat3.y << 24u);\n uint word3 = uScales.x | (uScales.y << 8u) | (uScales.z << 16u) | (uQuat3.z << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplat(vec3 center, vec3 scales, vec4 quaternion, vec4 rgba) {\n return packSplatEncoding(center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nvoid unpackSplatEncoding(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec4(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu)\n ).xyz;\n\n uvec3 uScales = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n scales = vec3(\n (uScales.x == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.x - 1u) * lnScaleScale),\n (uScales.y == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.y - 1u) * lnScaleScale),\n (uScales.z == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.z - 1u) * lnScaleScale)\n );\n\n\n uint uQuat = ((word2 >> 16u) & 0xFFFFu) | ((word3 >> 8u) & 0xFF0000u);\n quaternion = decodeQuatOctXy88R8(uQuat);\n // quaternion = decodeQuatXyz888(uQuat);\n // quaternion = decodeQuatEulerXyz888(uQuat);\n}\n\n// Unpack a Gsplat from a uvec4\nvoid unpackSplat(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nuvec4 packSplatCovEncoding(\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 255.0 / (2.0 * (lnScaleMax - lnScaleMin));\n uvec3 uXxyyzz = uvec3(round(clamp((log(xxyyzz) - 2.0 * lnScaleMin) * diagScale, 0.0, 255.0)));\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n ivec3 iXyxzyzCor = ivec3(round(xyxzyzCor * 127.0));\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) |\n ((uint(iXyxzyzCor.y) & 0xffu) << 16u) |\n ((uint(iXyxzyzCor.z) & 0xffu) << 24u);\n uint word3 =\n uXxyyzz.x | (uXxyyzz.y << 8u) | (uXxyyzz.z << 16u) |\n ((uint(iXyxzyzCor.x) & 0xffu) << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\nvoid unpackSplatCovEncoding(uvec4 packedData, out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec3(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu).x\n );\n\n uvec3 uXxyyzz = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n ivec3 iXyxzyzCor = ivec3(int(word3) >> 24, int(word2 << 8u) >> 24, int(word2) >> 24);\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 2.0 * (lnScaleMax - lnScaleMin) / 255.0;\n xxyyzz = exp(2.0 * lnScaleMin + vec3(uXxyyzz) * diagScale);\n\n vec3 xyxzyzCor = vec3(iXyxzyzCor) / 127.0;\n xyxzyz = xyxzyzCor * vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExtCov(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, rgba.b));\n packedData2.x = packHalf2x16(rgba.rg);\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n xyxzyzCor = sign(xyxzyzCor) * clamp(log(abs(xyxzyzCor)), -100.0, -0.0000001);\n xxyyzz = log(xxyyzz);\n\n packedData2.y = packHalf2x16(vec2(xxyyzz.x, xxyyzz.y));\n packedData2.z = packHalf2x16(vec2(xxyyzz.z, xyxzyzCor.x));\n packedData2.w = packHalf2x16(vec2(xyxzyzCor.y, xyxzyzCor.z));\n}\n\nvoid unpackSplatExtCov(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n\n vec2 ab = unpackHalf2x16(packedData.w);\n vec2 rg = unpackHalf2x16(packedData2.x);\n rgba = vec4(rg, ab.y, ab.x);\n\n vec2 xxyy = unpackHalf2x16(packedData2.y);\n vec2 zzxy = unpackHalf2x16(packedData2.z);\n vec2 xzyz = unpackHalf2x16(packedData2.w);\n xxyyzz = exp(vec3(xxyy.x, xxyy.y, zzxy.x));\n xyxzyz = vec3(zzxy.y, xzyz.x, xzyz.y);\n xyxzyz = -sign(xyxzyz) * exp(-abs(xyxzyz));\n xyxzyz *= vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExt(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, 0.0));\n\n packedData2.x = packHalf2x16(rgba.rg);\n packedData2.y = packHalf2x16(vec2(rgba.b, log(scales.x)));\n packedData2.z = packHalf2x16(log(scales.yz));\n packedData2.w = encodeQuatOctXy1010R12(quaternion);\n}\n\nvec4 unpackSplatExtCenterAlpha(uvec4 packedData) {\n return vec4(\n uintBitsToFloat(packedData.x),\n uintBitsToFloat(packedData.y),\n uintBitsToFloat(packedData.z),\n unpackHalf2x16(packedData.w).x\n );\n}\n\nfloat unpackSplatExtAlpha(uvec4 packedData) {\n return unpackHalf2x16(packedData.w).x;\n}\n\nvoid unpackSplatExt(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n rgba.a = unpackHalf2x16(packedData.w).x;\n\n rgba.rg = unpackHalf2x16(packedData2.x);\n vec2 split = unpackHalf2x16(packedData2.y);\n rgba.b = split.x;\n scales.x = exp(split.y);\n scales.yz = exp(unpackHalf2x16(packedData2.z));\n quaternion = decodeQuatOctXy1010R12(packedData2.w);\n}\n\nuint encodeExtRgb(vec3 rgb) {\n vec3 absRgb = abs(rgb);\n float maxAbs = max(absRgb.r, max(absRgb.g, absRgb.b));\n\n int base = clamp(int(floor(log2(maxAbs))) + 15, 0, 31);\n float divisor = exp2(float(base - 15)) / 255.0;\n\n uvec3 uRgb = uvec3(round(clamp(absRgb / divisor, 0.0, 255.0)));\n uint expSigns = (uint(base) << 3u) | ((rgb.r < 0.0 ? 0x1u : 0u) | (rgb.g < 0.0 ? 0x2u : 0u) | (rgb.b < 0.0 ? 0x4u : 0u));\n return uRgb.r | (uRgb.g << 8u) | (uRgb.b << 16u) | (expSigns << 24u);\n}\n\nvec3 decodeExtRgb(uint encoded) {\n uint biasedBase = (encoded >> 27u) & 0x1fu;\n float divisor = exp2(float(int(biasedBase) - 15)) / 255.0;\n\n vec3 rgb = vec3(uvec3(encoded & 0xffu, (encoded >> 8u) & 0xffu, (encoded >> 16u) & 0xffu));\n rgb *= divisor;\n\n return vec3(\n ((encoded & 0x1000000u) != 0u) ? -rgb.r : rgb.r,\n ((encoded & 0x2000000u) != 0u) ? -rgb.g : rgb.g,\n ((encoded & 0x4000000u) != 0u) ? -rgb.b : rgb.b\n );\n}\n\n// Rotate vector v by quaternion q\nvec3 quatVec(vec4 q, vec3 v) {\n // Rotate vector v by quaternion q\n vec3 t = 2.0 * cross(q.xyz, v);\n return v + q.w * t + cross(q.xyz, t);\n}\n\n// Apply quaternion q1 after quaternion q2\nvec4 quatQuat(vec4 q1, vec4 q2) {\n return vec4(\n q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,\n q1.w * q2.y - q1.x * q2.z + q1.y * q2.w + q1.z * q2.x,\n q1.w * q2.z + q1.x * q2.y - q1.y * q2.x + q1.z * q2.w,\n q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z\n );\n}\n\nmat3 quaternionToMatrix(vec4 q) {\n return mat3(\n (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n (2.0 * (q.x * q.y + q.w * q.z)),\n (2.0 * (q.x * q.z - q.w * q.y)),\n (2.0 * (q.x * q.y - q.w * q.z)),\n (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n (2.0 * (q.y * q.z + q.w * q.x)),\n (2.0 * (q.x * q.z + q.w * q.y)),\n (2.0 * (q.y * q.z - q.w * q.x)),\n (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\nmat3 scaleQuaternionToMatrix(vec3 s, vec4 q) {\n // Compute the matrix of scaling by s then rotating by q\n return mat3(\n s.x * (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n s.x * (2.0 * (q.x * q.y + q.w * q.z)),\n s.x * (2.0 * (q.x * q.z - q.w * q.y)),\n s.y * (2.0 * (q.x * q.y - q.w * q.z)),\n s.y * (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n s.y * (2.0 * (q.y * q.z + q.w * q.x)),\n s.z * (2.0 * (q.x * q.z + q.w * q.y)),\n s.z * (2.0 * (q.y * q.z - q.w * q.x)),\n s.z * (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\n// Spherical lerp between two quaternions\nvec4 slerp(vec4 q1, vec4 q2, float t) {\n // Compute the cosine of the angle between the two vectors\n float cosHalfTheta = dot(q1, q2);\n\n // If q1=q2 or q1=-q2 then theta = 0 and we can return q1\n if (abs(cosHalfTheta) >= 0.999) {\n return q1;\n }\n \n // If q1 and q2 are more than 180 degrees apart, \n // we need to negate one to get the shortest path\n if (cosHalfTheta < 0.0) {\n q2 = -q2;\n cosHalfTheta = -cosHalfTheta;\n }\n\n // Calculate temporary values\n float halfTheta = acos(cosHalfTheta);\n float sinHalfTheta = sqrt(1.0 - cosHalfTheta * cosHalfTheta);\n\n // Calculate the interpolation factors\n float ratioA = sin((1.0 - t) * halfTheta) / sinHalfTheta;\n float ratioB = sin(t * halfTheta) / sinHalfTheta;\n\n // Calculate the interpolated quaternion\n return q1 * ratioA + q2 * ratioB;\n}\n\nivec3 splatTexCoord(int index) {\n uint x = uint(index) & SPLAT_TEX_WIDTH_MASK;\n uint y = (uint(index) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK;\n uint z = uint(index) >> SPLAT_TEX_LAYER_BITS;\n return ivec3(x, y, z);\n}\n\nivec3 pagedSplatTexCoord(int index) {\n return ivec3(index & 255, (index >> 8) & 255, index >> 16);\n}\n\nvec4 uintToVec4(uint u32) {\n uvec4 bytes = uvec4(\n u32 & 0xFFu,\n (u32 >> 8u) & 0xFFu,\n (u32 >> 16u) & 0xFFu,\n (u32 >> 24u) & 0xFFu\n );\n return vec4(bytes) / 255.0;\n}\n\nvec4 floatToVec4(float f) {\n uint u32 = floatBitsToUint(f);\n return uintToVec4(u32);\n}\n\nvec3 debugColorHue(uint i) {\n // Golden ratio conjugate; spreads hues evenly\n float hue = fract(float(i) * 0.61803398875);\n // HSV to RGB with fixed S/V\n vec3 rgb = clamp(abs(mod(hue*6.0 + vec3(0.0,4.0,2.0), 6.0) - 3.0) - 1.0, 0.0, 1.0);\n return mix(vec3(1.0), rgb, 0.85); // saturation ~0.85, value ~1.0\n}\n","\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\n#include \n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n if (false) {\n // if (debugFlag) {\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n float min1a = min(1.0, a);\n rgba.a = mix(min1a, min1a * exp(exponent), falloff);\n } else {\n // New falloff function, more or less equivalent\n if (rgba.a <= 1.0) {\n rgba.a = mix(rgba.a, rgba.a * exp(-0.5 * z2), falloff);\n } else {\n float a = exp((rgba.a*rgba.a - 1.0) / 2.718281828459045);\n float alpha = 1.0 - pow(1.0 - exp(-0.5 * z2), a);\n rgba.a = mix(1.0, alpha, falloff);\n }\n }\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n\n #include \n}\n","\nprecision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\nflat out float adjustedStdDev;\n\n// uniform uint numSplats;\nuniform vec2 renderSize;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform mat3 renderToViewBasis;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform bool enableExtSplats;\nuniform bool enableCovSplats;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool enable2DGS;\nuniform bool lodInflate;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2D ordering;\nuniform usampler2DArray extSplats;\nuniform usampler2DArray extSplats2;\n\n// Required by logdepthbuf_pars_vertex (normally defined in three.js #include )\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == -1.0;\n}\n\n#include \n\nvoid main() {\n // Default to outside the frustum so it's discarded if we return early\n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n ivec2 orderingCoord = ivec2((gl_InstanceID >> 2) & 4095, gl_InstanceID >> 14);\n uint splatIndex = texelFetch(ordering, orderingCoord, 0)[gl_InstanceID & 3];\n if (splatIndex == 0xffffffffu) {\n // Special value reserved for \"no splat\"\n return;\n }\n\n ivec3 texCoord = splatTexCoord(int(splatIndex));\n vec3 center, scales, xxyyzz, xyxzyz;\n vec4 quaternion, rgba;\n mat3 cov3D;\n bvec3 zeroScales = bvec3(false);\n\n if (enableExtSplats) {\n uvec4 ext1 = texelFetch(extSplats, texCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if ((alpha == 0.0) || (alpha < minAlpha)) {\n return;\n }\n uvec4 ext2 = texelFetch(extSplats2, texCoord, 0);\n\n if (!enableCovSplats) {\n unpackSplatExt(ext1, ext2, center, scales, quaternion, rgba);\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatExtCov(ext1, ext2, center, rgba, xxyyzz, xyxzyz);\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n } else {\n uvec4 packedData = texelFetch(extSplats, texCoord, 0);\n if (!enableCovSplats) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatCovEncoding(packedData, center, rgba, xxyyzz, xyxzyz, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n\n rgba.a *= 2.0;\n if ((rgba.a == 0.0) || (rgba.a < minAlpha)) {\n return;\n }\n }\n\n adjustedStdDev = maxStdDev;\n if (rgba.a > 1.0) {\n // Stretch 1..2 to 1..5\n rgba.a = min(rgba.a * 4.0 - 3.0, 5.0);\n\n if (lodInflate) {\n // Adjust size to componsate for loss of opacity\n float opacity = exp((rgba.a * rgba.a - 1.0) / 2.718281828459045);\n float rescale = pow(opacity, 1.0 / 3.0);\n scales *= rescale;\n rgba.a = 1.0;\n }\n\n // Expand the maximum std dev to approximately cover the larger range\n adjustedStdDev = maxStdDev + 0.7 * (rgba.a - 1.0);\n }\n\n // Compute the view space center of the splat\n vec3 viewCenter = (!enableCovSplats ? quatVec(renderToViewQuat, center) : (renderToViewBasis * center)) + renderToViewPos;\n\n // Discard splats behind the camera\n if (viewCenter.z >= 0.0) {\n return;\n }\n\n // Compute the clip space center of the splat\n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n // Discard splats outside near/far planes\n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n // Discard splats more than clipXY times outside the XY frustum\n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n vRgba = rgba;\n vSplatUv = position.xy * adjustedStdDev;\n\n // Record the splat index for entropy\n vSplatIndex = splatIndex;\n\n if (!enableCovSplats) {\n // Compute view space quaternion of splat\n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n\n #include \n return;\n }\n\n // Compute the 3D covariance matrix of the splat\n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n cov3D = RS * transpose(RS);\n } else {\n cov3D = mat3(\n xxyyzz.x, xyxzyz.x, xyxzyz.y,\n xyxzyz.x, xxyyzz.y, xyxzyz.z,\n xyxzyz.y, xyxzyz.z, xxyyzz.z\n );\n cov3D = renderToViewBasis * cov3D * transpose(renderToViewBasis);\n }\n\n // Compute the Jacobian of the splat's projection at its center\n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if (isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n // Compute the 2D covariance by projecting the 3D covariance\n // and picking out the XY plane components.\n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n // Optionally pre-blur the splat to match non-antialias optimized splats\n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n // Do convolution with a 0.5-pixel Gaussian for anti-aliasing: sqrt(0.3) ~= 0.5\n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n // Compute anti-aliasing intensity scaling factor\n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n vRgba.a = rgba.a;\n\n // Compute the eigenvalue and eigenvectors of the 2D covariance matrix\n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = (abs(b) > 0.001) ? normalize(vec2(b, eigen1 - a))\n : ((a >= d) ? vec2(1.0, 0.0) : vec2(0.0, 1.0));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n // Compute the NDC coordinates for the ellipsoid's diagonal axes.\n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n\n // Compute NDC center of the splat\n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n\n #include \n}\n","import * as THREE from \"three\";\n\nimport computeUvec4Template from \"./shaders/computeUvec4.glsl\";\nimport computeUvec4Vec4Template from \"./shaders/computeUvec4_Vec4.glsl\";\nimport computeUvec4x2Vec4Template from \"./shaders/computeUvec4x2_Vec4.glsl\";\nimport computeVec4Template from \"./shaders/computeVec4.glsl\";\nimport splatDefines from \"./shaders/splatDefines.glsl\";\nimport splatFragment from \"./shaders/splatFragment.glsl\";\nimport splatVertex from \"./shaders/splatVertex.glsl\";\n\nlet shaders: Record | null = null;\n\nexport function getShaders(): Record {\n if (!shaders) {\n // @ts-ignore\n THREE.ShaderChunk.splatDefines = splatDefines;\n shaders = {\n splatVertex,\n splatFragment,\n computeVec4Template,\n computeUvec4Vec4Template,\n computeUvec4x2Vec4Template,\n computeUvec4Template,\n };\n }\n return shaders;\n}\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { type Dyno, OutputRgba8, dynoBlock } from \"./dyno\";\nimport { DynoProgram, DynoProgramTemplate } from \"./dyno/program\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize } from \"./utils\";\n\n// Readback can be used to run a Dyno program that maps an index to a 32-bit\n// RGBA8 value, which is the only allowed, portable readback format for WebGL2.\n// Using data packing and conversion you can read back any 32-bit value, which\n// Spark uses to read back 2 float16 Gsplat distance values per index.\n\nexport type Rgba8Readback = Dyno<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n\n// Readback can be performed with various typed buffers, making it convenient\n// to encode readback data in a variety of formats.\n\nexport type ReadbackBuffer =\n | ArrayBuffer\n | Uint8Array\n | Uint8ClampedArray\n | Int8Array\n | Uint16Array\n | Int16Array\n | Uint32Array\n | Int32Array\n | Float32Array;\n\nexport class Readback {\n renderer?: THREE.WebGLRenderer;\n target?: THREE.WebGLArrayRenderTarget;\n capacity: number;\n count: number;\n\n constructor({ renderer }: { renderer?: THREE.WebGLRenderer } = {}) {\n this.renderer = renderer;\n this.capacity = 0;\n this.count = 0;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n }\n\n // Ensure we have a buffer large enough for the readback of count indices.\n // Pass in previous bufer of the desired type.\n static ensureBuffer(count: number, buffer: B): B {\n // Readback is performed in a 2D array of pixels, so round up with SPLAT_TEX_WIDTH\n const roundedCount =\n Math.ceil(Math.max(1, count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const bytes = roundedCount * 4;\n if (buffer.byteLength >= bytes) {\n return buffer;\n }\n\n // Need a larger buffer, create a new one of the same type\n const newBuffer = new ArrayBuffer(bytes);\n if (buffer instanceof ArrayBuffer) {\n return newBuffer as B;\n }\n\n const ctor = buffer.constructor as { new (arrayBuffer: ArrayBuffer): B };\n return new ctor(newBuffer) as B;\n }\n\n ensureBuffer(count: number, buffer: B): B {\n return Readback.ensureBuffer(count, buffer);\n }\n\n // Ensure our render target is large enough for the readback of capacity indices.\n ensureCapacity(capacity: number) {\n const { width, height, depth, maxSplats } = getTextureSize(capacity);\n if (!this.target || maxSplats > this.capacity) {\n this.dispose();\n this.capacity = maxSplats;\n\n // The only portable readback format for WebGL2 is RGBA8\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAFormat;\n this.target.texture.type = THREE.UnsignedByteType;\n this.target.texture.internalFormat = \"RGBA8\";\n this.target.scissorTest = true;\n }\n }\n\n // Get a program and THREE.RawShaderMaterial for a given Rgba8Readback,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(reader: Rgba8Readback): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = Readback.readbackProgram.get(reader);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n reader.inputs.index = index;\n const rgba8 = new OutputRgba8({ rgba8: reader.outputs.rgba8 });\n return { rgba8 };\n },\n );\n if (!Readback.programTemplate) {\n Readback.programTemplate = new DynoProgramTemplate(\n getShaders().computeVec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { rgba8: \"target\" },\n template: Readback.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n Readback.readbackProgram.set(reader, program);\n }\n\n const material = program.prepareMaterial();\n Readback.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private process({\n count,\n material,\n }: { count: number; material: THREE.RawShaderMaterial }) {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n // Run the program in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of indices.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = 0;\n material.uniforms.targetCount.value = count;\n let baseIndex = 0;\n\n // Keep generating layers until completed count items\n while (baseIndex < count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((count - layerBase) / SPLAT_TEX_WIDTH),\n );\n material.uniforms.targetLayer.value = layer;\n\n // Render the desired portion of the layer\n this.target.scissor.set(0, 0, SPLAT_TEX_WIDTH, layerYEnd);\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n Readback.fullScreenQuad.render(renderer);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.count = count;\n }\n\n private async read({\n readback,\n }: { readback: B }): Promise {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(this.count / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(\n readback instanceof ArrayBuffer ? readback : readback.buffer,\n );\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < this.count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((this.count - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n renderer.setRenderTarget(this.target, layer);\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n const promise = renderer?.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n );\n promises.push(promise);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n // const gl = renderer.getContext() as WebGL2RenderingContext;\n // gl.flush();\n return Promise.all(promises).then(() => readback);\n }\n\n // Perform render operation to run the Rgba8Readback program\n // but don't perform the readback yet.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer?: THREE.WebGLRenderer }) {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n this.process({ count, material });\n this.resetRenderState(this.renderer, renderState);\n }\n\n // Perform a readback of the render target, returning a buffer of the\n // given type.\n async readback({\n readback,\n }: { readback: B }): Promise {\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n const renderState = this.saveRenderState(this.renderer);\n const promise = this.read({ readback });\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n // Perform a render and readback operation for the given Rgba8Readback,\n // and readback buffer (call ensureBuffer first).\n async renderReadback({\n reader,\n count,\n renderer,\n readback,\n }: {\n reader: Rgba8Readback;\n count: number;\n renderer?: THREE.WebGLRenderer;\n readback: B;\n }): Promise {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n\n // Generate output\n this.process({ count, material });\n\n // Initiate readback\n const promise = this.read({ readback });\n\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n getTexture(): THREE.DataArrayTexture | undefined {\n return this.target?.texture;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for Rgba8Readback programs\n static readbackProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n}\n","import * as THREE from \"three\";\n\nimport {\n CovSplat,\n Dyno,\n DynoInt,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { newArray } from \"./utils\";\n\n// Spark provides the ability to apply \"edits\" to Gsplats as part of the standard\n// SplatMesh pipeline. These edits take the form of a sequence of operations,\n// applied one at a time to the set of Gsplats in its packedSplats. Each operation\n// evaluates a 7-dimensional field (RGBA and XYZ displacement) at each point in\n// space that derives from N=1 or more Signed Distance Field shapes (such as spheres,\n// boxes, planes, etc.), blended together and across inside-outisde boundaries.\n\n// The result is a an RGBA,XYZ value for each point in space, which combined with\n// SplatEditRgbaBlendMode.MULTIPLY/SET_RGB/ADD_RGBA can be used to create special\n// effects, for example simulating simple lighting or applying deformations in space,\n// whose parameters can be updated each frame to create animated effects.\n\n// RGBA-XYZ values are computed by blending together values from all SDF shapes using\n// the exponential \"softmax\" function, which is commutative (so blending order within\n// a SplatEdit operation doesn't matter). The parameter SplatEdit.sdfSmooth controls\n// the blending scale between SDF shapes, while SplatEdit.softEdge controls the scale\n// of soft inside-outside shape edit blending. Their default values start at 0.0 and\n// should be increased to soften the effect.\n\n// Note that XYZ displacement values are blended in the same way as RGBA, with a\n// resulting displacement field that can be quite complex but \"softly\" blending\n// between shapes. These RGBA-XYZ edits, along with time-based and overlapping\n// fields can create many interesting animations and special effects, such as\n// rippling leaves in the wind, an angry fire, or a looping water effects. Simply\n// update the SplatEdit and SplatEditSdf objects and the operations will be applied\n// immediately to the Gsplats in the scene.\n\nexport enum SplatEditSdfType {\n // ALL: Affects all points in space\n ALL = \"all\",\n // PLANE: Infinite plane (position, rotation)\n PLANE = \"plane\",\n // SPHERE: Sphere (position, radius)\n SPHERE = \"sphere\",\n // BOX: Rounded box (position, rotation, sizes, radius)\n BOX = \"box\",\n // ELLIPSOID: Ellipsoid (position, rotation, sizes)\n ELLIPSOID = \"ellipsoid\",\n // CYLINDER: Cylinder (position, rotation, radius, size_y)\n CYLINDER = \"cylinder\",\n // CAPSULE: Capsule (position, rotation, radius, size_y)\n CAPSULE = \"capsule\",\n // INFINITE_CONE: Infinite cone (position, rotation, radius=angle)\n INFINITE_CONE = \"infinite_cone\",\n}\n\nfunction sdfTypeToNumber(type: SplatEditSdfType) {\n switch (type) {\n case SplatEditSdfType.ALL:\n return 0;\n case SplatEditSdfType.PLANE:\n return 1;\n case SplatEditSdfType.SPHERE:\n return 2;\n case SplatEditSdfType.BOX:\n return 3;\n case SplatEditSdfType.ELLIPSOID:\n return 4;\n case SplatEditSdfType.CYLINDER:\n return 5;\n case SplatEditSdfType.CAPSULE:\n return 6;\n case SplatEditSdfType.INFINITE_CONE:\n return 7;\n default:\n throw new Error(`Unknown SDF type: ${type}`);\n }\n}\n\nexport enum SplatEditRgbaBlendMode {\n // The RGBA of the splat is multiplied component-wise by the SDF’s\n // RGBA value at that point in space.\n MULTIPLY = \"multiply\",\n // Ignore the Alpha value in the SDF, but set the splat’s RGB to\n // equal the SDF’s RGB value at that point.\n SET_RGB = \"set_rgb\",\n // Add the SDF’s RGBA value at that point to the RGBA value of\n // the Gsplat. This can produce hyper-saturated results, but is useful\n // to easily “light up” areas.\n ADD_RGBA = \"add_rgba\",\n}\n\nfunction rgbaBlendModeToNumber(mode: SplatEditRgbaBlendMode) {\n switch (mode) {\n case SplatEditRgbaBlendMode.MULTIPLY:\n return 0;\n case SplatEditRgbaBlendMode.SET_RGB:\n return 1;\n case SplatEditRgbaBlendMode.ADD_RGBA:\n return 2;\n default:\n throw new Error(`Unknown blend mode: ${mode}`);\n }\n}\n\nexport type SplatEditSdfOptions = {\n // The SDF shape type: ALL, PLANE, SPHERE, BOX, ELLIPSOID, CYLINDER, CAPSULE,\n // or INFINITE_CONE. (default: SplatEditSdfType.SPHERE)\n type?: SplatEditSdfType;\n // Invert the SDF evaluation, swapping inside and outside regions. (default: false)\n invert?: boolean;\n // Opacity / \"alpha\" value used differently by blending modes (default: 1.0)\n opacity?: number;\n // RGB color applied within the shape. (default: new THREE.Color(1.0, 1.0, 1.0))\n color?: THREE.Color;\n // XYZ displacement applied to splat positions inside the shape.\n // (default: new THREE.Vector3(0.0, 0.0, 0.0))\n displace?: THREE.Vector3;\n // Shape-specific size parameter: sphere radius, box corner rounding,\n // cylinder/capsule radius, or for the infinite cone the angle factor\n // (opening half-angle = π/4 × radius).\n radius?: number;\n};\n\nexport class SplatEditSdf extends THREE.Object3D {\n type: SplatEditSdfType;\n invert: boolean;\n opacity: number;\n color: THREE.Color;\n displace: THREE.Vector3;\n radius: number;\n\n constructor(options: SplatEditSdfOptions = {}) {\n super();\n const { type, invert, opacity, color, displace, radius } = options;\n this.type = type ?? SplatEditSdfType.SPHERE;\n this.invert = invert ?? false;\n this.opacity = opacity ?? 1.0;\n this.color = color ?? new THREE.Color(1.0, 1.0, 1.0);\n this.displace = displace ?? new THREE.Vector3(0.0, 0.0, 0.0);\n this.radius = radius ?? 0.0;\n }\n}\n\nexport type SplatEditOptions = {\n // Name of this edit operation. If you omit it, a default \"Edit 1\", \"Edit 2\", ...\n // is assigned.\n name?: string;\n // How the SDF’s RGBA modifies each splat’s RGBA: multiply, overwrite RGB,\n // or add RGBA. (default: MULTIPLY)\n rgbaBlendMode?: SplatEditRgbaBlendMode;\n // Smoothing (in world‐space units) for blending between multiple SDF shapes\n // at their boundaries. (default: 0.0)\n sdfSmooth?: number;\n // Soft‐edge falloff radius (in world‐space units) around each SDF shape’s surface.\n // (default: 0.0)\n softEdge?: number;\n // Invert the SDF evaluation (inside/outside swap). (default: false)\n invert?: boolean;\n // Explicit array of SplatEditSdf objects to include. If null, any child\n // SplatEditSdf instances are used.\n sdfs?: SplatEditSdf[];\n};\n\nexport class SplatEdit extends THREE.Object3D {\n // ordering used to apply SplatEdit operations to Gsplats. This is implicitly\n // increased with each new SplatEdit. Reassigning ordering can be used to\n // reorder the operations.\n ordering: number;\n rgbaBlendMode: SplatEditRgbaBlendMode;\n sdfSmooth: number;\n softEdge: number;\n invert: boolean;\n\n // Optional list of explicit SDFs to including in this edit. If it is null, then\n // any SplatEditSdf children in the scene graph will be added automatically.\n sdfs: SplatEditSdf[] | null;\n\n // The next ordering number to use for a new SplatEdit, auto-incremented\n static nextOrdering = 1;\n\n constructor(options: SplatEditOptions = {}) {\n const {\n name,\n rgbaBlendMode = SplatEditRgbaBlendMode.MULTIPLY,\n sdfSmooth = 0.0,\n softEdge = 0.0,\n invert = false,\n sdfs = null,\n } = options;\n\n super();\n this.rgbaBlendMode = rgbaBlendMode;\n this.sdfSmooth = sdfSmooth;\n this.softEdge = softEdge;\n this.invert = invert;\n this.sdfs = sdfs;\n // Assign and auto-increment unique ordering number for this edit\n this.ordering = SplatEdit.nextOrdering++;\n // Automatically assign a default name if not provided\n this.name = name ?? `Edit ${this.ordering}`;\n }\n\n addSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n this.sdfs = [];\n }\n if (!this.sdfs.includes(sdf)) {\n this.sdfs.push(sdf);\n }\n }\n\n removeSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n return;\n }\n this.sdfs = this.sdfs.filter((s) => s !== sdf);\n }\n}\n\n// Dyno implementation of RGBA-XYZ SDF editing.\n// The SDFs are encoded in a texture while the edits are encoded\n// as a uniform uvec4 array.\n\nexport class SplatEdits {\n // Maximum number of SDFs allocated\n maxSdfs: number;\n // Number of SDFs currently in use\n numSdfs: number;\n // Encoded SDF data\n sdfData: Uint32Array;\n // Float interpretation of SDF data\n sdfFloatData: Float32Array;\n // Texture with encoded SDF data\n sdfTexture: THREE.DataTexture;\n // An SdfArray dyno uniform\n dynoSdfArray: DynoUniform;\n\n // Maximum number of edits allocated\n maxEdits: number;\n // Number of edits currently in use\n numEdits: number;\n // Encoded edit data\n editData: Uint32Array;\n // Float interpretation of edit data\n editFloatData: Float32Array;\n // A dyno uniform for the number of edits\n dynoNumEdits: DynoUniform<\"int\", \"numEdits\">;\n // A dyno uniform for the encoded edits, one uvec4 per edit\n dynoEdits: DynoUniform<\"uvec4\", \"edits\">;\n\n constructor({ maxSdfs, maxEdits }: { maxSdfs?: number; maxEdits?: number }) {\n // Allocate at least 16 SDFs for efficiency\n this.maxSdfs = Math.max(16, maxSdfs ?? 0);\n this.numSdfs = 0;\n\n // Allocate space: 8 x (u)vec4 values per SDF, Uint32 and Float32 arrays\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n this.dynoSdfArray = new DynoUniform({\n key: \"sdfArray\",\n type: SdfArray,\n globals: () => [defineSdfArray],\n value: {\n numSdfs: 0,\n sdfTexture: this.sdfTexture,\n },\n update: (uniform) => {\n uniform.numSdfs = this.numSdfs;\n uniform.sdfTexture = this.sdfTexture;\n return uniform;\n },\n });\n\n // Allocate at least 16 edits slots for efficiency\n this.maxEdits = Math.max(16, maxEdits ?? 0);\n this.numEdits = 0;\n // Allocate space: 1 uvec4 per edit\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoNumEdits = new DynoInt({ value: 0 });\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n }\n\n private newSdfTexture(data: Uint32Array, maxSdfs: number) {\n const texture = new THREE.DataTexture(\n data,\n 8,\n maxSdfs,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n }\n\n private newEdits(data: Uint32Array, maxEdits: number) {\n return new DynoUniform({\n key: \"edits\",\n type: \"uvec4\",\n count: maxEdits,\n globals: () => [defineEdit],\n value: data,\n });\n }\n\n // Ensure our SDF texture and edits uniform array have enough capacity.\n // Reallocate if not.\n private ensureCapacity({\n maxSdfs,\n maxEdits,\n }: { maxSdfs: number; maxEdits: number }): boolean {\n let dynoUpdated = false;\n if (maxSdfs > this.sdfTexture.image.height) {\n this.sdfTexture.dispose();\n // At least double the size to avoid frequent reallocations\n this.maxSdfs = Math.max(this.maxSdfs * 2, maxSdfs);\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n }\n if (maxEdits > (this.dynoEdits.count ?? 0)) {\n // At least double the size to avoid frequent reallocations\n this.maxEdits = Math.max(this.maxEdits * 2, maxEdits);\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n dynoUpdated = true;\n }\n return dynoUpdated;\n }\n\n private updateEditData(offset: number, value: number): boolean {\n // Update an edit uint32 value and return true if it changed\n const updated = this.editData[offset] !== value;\n this.editData[offset] = value;\n return updated;\n }\n\n private updateEditFloatData(offset: number, value: number): boolean {\n // Update an edit float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.editFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.editFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeEdit(\n editIndex: number,\n {\n sdfFirst,\n sdfCount,\n invert,\n rgbaBlendMode,\n softEdge,\n sdfSmooth,\n }: {\n sdfFirst: number;\n sdfCount: number;\n invert: boolean;\n rgbaBlendMode: number;\n softEdge: number;\n sdfSmooth: number;\n },\n ): boolean {\n const base = editIndex * 4;\n let updated = false;\n // Encode the edit fields into the editData array and check if any changed\n updated =\n this.updateEditData(base + 0, rgbaBlendMode | (invert ? 1 << 8 : 0)) ||\n updated;\n updated =\n this.updateEditData(base + 1, sdfFirst | (sdfCount << 16)) || updated;\n updated = this.updateEditFloatData(base + 2, softEdge) || updated;\n updated = this.updateEditFloatData(base + 3, sdfSmooth) || updated;\n return updated;\n }\n\n private updateSdfData(offset: number, value: number): boolean {\n // Update an SDF uint32 value and return true if it changed\n const updated = this.sdfData[offset] !== value;\n this.sdfData[offset] = value;\n return updated;\n }\n\n private updateSdfFloatData(offset: number, value: number): boolean {\n // Update an SDF float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.sdfFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.sdfFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeSdf(\n sdfIndex: number,\n {\n sdfType,\n invert,\n center,\n quaternion,\n scale,\n sizes,\n }: {\n sdfType: number;\n invert?: boolean;\n center?: THREE.Vector3;\n quaternion?: THREE.Quaternion;\n scale?: THREE.Vector3;\n sizes?: THREE.Vector4;\n },\n values: THREE.Vector4[],\n ): boolean {\n // Encode the SDF fields into the sdfData array and check if any changed\n const base = sdfIndex * (8 * 4);\n const flags = sdfType | (invert ? 1 << 8 : 0);\n let updated = false;\n\n updated = this.updateSdfFloatData(base + 0, center?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 1, center?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 2, center?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 3, flags) || updated;\n\n updated = this.updateSdfFloatData(base + 4, quaternion?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 5, quaternion?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 6, quaternion?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 7, quaternion?.w ?? 0) || updated;\n\n updated = this.updateSdfFloatData(base + 8, scale?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 9, scale?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 10, scale?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 11, 0) || updated;\n\n updated = this.updateSdfFloatData(base + 12, sizes?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 13, sizes?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 14, sizes?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 15, sizes?.w ?? 0) || updated;\n\n const nValues = Math.min(4, values.length);\n for (let i = 0; i < nValues; ++i) {\n const vBase = base + 16 + i * 4;\n updated = this.updateSdfFloatData(vBase + 0, values[i].x) || updated;\n updated = this.updateSdfFloatData(vBase + 1, values[i].y) || updated;\n updated = this.updateSdfFloatData(vBase + 2, values[i].z) || updated;\n updated = this.updateSdfFloatData(vBase + 3, values[i].w) || updated;\n }\n return updated;\n }\n\n // Update the SDFs and edits from an array of SplatEdits and their\n // associated SplatEditSdfs, updating it for the dyno shader program.\n update(edits: { edit: SplatEdit; sdfs: SplatEditSdf[] }[]): {\n updated: boolean;\n dynoUpdated: boolean;\n } {\n const sdfCount = edits.reduce((total, { sdfs }) => total + sdfs.length, 0);\n const dynoUpdated = this.ensureCapacity({\n maxEdits: edits.length,\n maxSdfs: sdfCount,\n });\n\n const values = [new THREE.Vector4(), new THREE.Vector4()];\n const center = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const scale = new THREE.Vector3();\n const sizes = new THREE.Vector4();\n\n let sdfIndex = 0;\n let updated = dynoUpdated;\n\n if (edits.length !== this.dynoNumEdits.value) {\n this.dynoNumEdits.value = edits.length;\n this.numEdits = edits.length;\n updated = true;\n }\n\n for (const [editIndex, { edit, sdfs }] of edits.entries()) {\n updated =\n this.encodeEdit(editIndex, {\n sdfFirst: sdfIndex,\n sdfCount: sdfs.length,\n invert: edit.invert,\n rgbaBlendMode: rgbaBlendModeToNumber(edit.rgbaBlendMode),\n softEdge: edit.softEdge,\n sdfSmooth: edit.sdfSmooth,\n }) || updated;\n\n let sdfUpdated = false;\n for (const sdf of sdfs) {\n sizes.set(sdf.scale.x, sdf.scale.y, sdf.scale.z, sdf.radius);\n // Temporarily set the SDF scale to 1.0 to get the world-to-SDF\n // transform without scaling. The SDF treats the scale separately.\n sdf.scale.setScalar(1.0);\n sdf.updateMatrixWorld();\n const worldToSdf = sdf.matrixWorld.clone().invert();\n worldToSdf.decompose(center, quaternion, scale);\n\n sdf.scale.set(sizes.x, sizes.y, sizes.z);\n sdf.updateMatrixWorld();\n\n values[0].set(sdf.color.r, sdf.color.g, sdf.color.b, sdf.opacity);\n values[1].set(sdf.displace.x, sdf.displace.y, sdf.displace.z, 1.0);\n\n sdfUpdated =\n this.encodeSdf(\n sdfIndex,\n {\n sdfType: sdfTypeToNumber(sdf.type),\n invert: sdf.invert,\n center,\n quaternion,\n scale,\n sizes,\n },\n values,\n ) || sdfUpdated;\n\n sdfIndex += 1;\n }\n this.numSdfs = sdfIndex;\n if (sdfUpdated) {\n this.sdfTexture.needsUpdate = true;\n }\n updated ||= sdfUpdated;\n }\n return { updated, dynoUpdated };\n }\n\n // Modify a Gsplat in a dyno shader program using the current edits and SDFs.\n modify(gsplat: DynoVal): DynoVal {\n return applyGsplatRgbaDisplaceEdits(\n gsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n return applyCovSplatRgbaDisplaceEdits(\n covsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n}\n\n// Dyno types and components:\n\n// An SdfArray contains a collection of SDFs encoded in a texture.\n// Each SDF has a type and geometric parameters, but also encodes\n// 4 x vec4 values, which can all be blended across multiple SDFs.\n// The SplatEdit system uses 7 of these 16 values to encode RGBA-XYZ edits,\n// but more can be added, and these SDFs can be used for entirely different\n// purposes as well.\n\nexport const SdfArray = { type: \"SdfArray\" } as { type: \"SdfArray\" };\n\nexport const defineSdfArray = unindent(`\n struct SdfArray {\n int numSdfs;\n usampler2D sdfTexture;\n };\n\n void unpackSdfArray(\n usampler2D sdfTexture, int sdfIndex, out uint flags,\n out vec3 center, out vec4 quaternion, out vec3 scale, out vec4 sizes,\n int numValues, out vec4 values[4]\n ) {\n uvec4 temp = texelFetch(sdfTexture, ivec2(0, sdfIndex), 0);\n flags = temp.w;\n center = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(1, sdfIndex), 0);\n quaternion = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n temp = texelFetch(sdfTexture, ivec2(2, sdfIndex), 0);\n scale = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(3, sdfIndex), 0);\n sizes = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n for (int i = 0; i < numValues; ++i) {\n temp = texelFetch(sdfTexture, ivec2(4 + i, sdfIndex), 0);\n values[i] = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n }\n }\n\n const uint SDF_FLAG_TYPE = 0xFFu;\n const uint SDF_FLAG_INVERT = 1u << 8u;\n\n const uint SDF_TYPE_ALL = 0u;\n const uint SDF_TYPE_PLANE = 1u;\n const uint SDF_TYPE_SPHERE = 2u;\n const uint SDF_TYPE_BOX = 3u;\n const uint SDF_TYPE_ELLIPSOID = 4u;\n const uint SDF_TYPE_CYLINDER = 5u;\n const uint SDF_TYPE_CAPSULE = 6u;\n const uint SDF_TYPE_INFINITE_CONE = 7u;\n\n float evaluateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 outValues[4]\n ) {\n float distanceAccum = (smoothK == 0.0) ? 1.0 / 0.0 : 0.0;\n float maxExp = -1.0 / 0.0;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = vec4(0.0);\n }\n\n uint flags;\n vec3 center, scale;\n vec4 quaternion, sizes;\n vec4 values[4];\n\n int sdfLast = min(sdfFirst + sdfCount, numSdfs);\n for (int index = sdfFirst; index < sdfLast; ++index) {\n unpackSdfArray(sdfTexture, index, flags, center, quaternion, scale, sizes, numValues, values);\n uint sdfType = flags & SDF_FLAG_TYPE;\n vec3 sdfPos = quatVec(quaternion, pos * scale) + center;\n\n float distance;\n switch (sdfType) {\n case SDF_TYPE_ALL:\n distance = -1.0 / 0.0;\n break;\n case SDF_TYPE_PLANE: {\n distance = sdfPos.z;\n break;\n }\n case SDF_TYPE_SPHERE: {\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_BOX: {\n vec3 q = abs(sdfPos) - sizes.xyz + sizes.w;\n distance = length(max(q, 0.0)) + min(max(q.x, max(q.y, q.z)), 0.0) - sizes.w;\n break;\n }\n case SDF_TYPE_ELLIPSOID: {\n vec3 sizes = sizes.xyz;\n float k0 = length(sdfPos / sizes);\n float k1 = length(sdfPos / dot(sizes, sizes));\n distance = k0 * (k0 - 1.0) / k1;\n break;\n }\n case SDF_TYPE_CYLINDER: {\n vec2 d = abs(vec2(length(sdfPos.xz), sdfPos.y)) - sizes.wy;\n distance = min(max(d.x, d.y), 0.0) + length(max(d, 0.0));\n break;\n }\n case SDF_TYPE_CAPSULE: {\n sdfPos.y -= clamp(sdfPos.y, -0.5 * sizes.y, 0.5 * sizes.y);\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_INFINITE_CONE: {\n float angle = 0.25 * PI * sizes.w;\n vec2 c = vec2(sin(angle), cos(angle));\n vec2 q = vec2(length(sdfPos.xy), -sdfPos.z);\n float d = length(q - c * max(dot(q, c), 0.0));\n distance = d * (((q.x * c.y - q.y * c.x) < 0.0) ? -1.0 : 1.0);\n break;\n }\n }\n\n if ((flags & SDF_FLAG_INVERT) != 0u) {\n distance = -distance;\n }\n\n if (smoothK == 0.0) {\n if (distance < distanceAccum) {\n distanceAccum = distance;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = values[i];\n }\n }\n } else {\n float scaledDistance = -distance / smoothK;\n if (scaledDistance > maxExp) {\n float scale = exp(maxExp - scaledDistance);\n distanceAccum *= scale;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] *= scale;\n }\n maxExp = scaledDistance;\n }\n\n float weight = exp(scaledDistance - maxExp);\n distanceAccum += weight;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] += weight * values[i];\n }\n }\n }\n\n if (smoothK == 0.0) {\n return distanceAccum;\n } else {\n // Very distant SDFs may result in 0 accumulation\n if (distanceAccum == 0.0) {\n return 1.0 / 0.0;\n }\n for (int i = 0; i < numValues; ++i) {\n outValues[i] /= distanceAccum;\n }\n return (-log(distanceAccum) - maxExp) * smoothK;\n }\n }\n\n float modulateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 values[4],\n float softEdge, bool invert\n ) {\n float distance = evaluateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, numValues, values);\n if (invert) {\n distance = -distance;\n }\n\n return (softEdge == 0.0) ? ((distance < 0.0) ? 1.0 : 0.0)\n : clamp(-distance / softEdge + 0.5, 0.0, 1.0);\n }\n`);\n\nexport const defineEdit = unindent(`\n const uint EDIT_FLAG_BLEND = 0xFFu;\n const uint EDIT_BLEND_MULTIPLY = 0u;\n const uint EDIT_BLEND_SET_RGB = 1u;\n const uint EDIT_BLEND_ADD_RGBA = 2u;\n const uint EDIT_FLAG_INVERT = 0x100u;\n\n void decodeEdit(\n uvec4 packedEdit, out int sdfFirst, out int sdfCount,\n out bool invert, out uint rgbaBlendMode, out float softEdge, out float sdfSmooth\n ) {\n rgbaBlendMode = packedEdit.x & EDIT_FLAG_BLEND;\n invert = (packedEdit.x & EDIT_FLAG_INVERT) != 0u;\n\n sdfFirst = int(packedEdit.y & 0xFFFFu);\n sdfCount = int(packedEdit.y >> 16u);\n\n softEdge = uintBitsToFloat(packedEdit.z);\n sdfSmooth = uintBitsToFloat(packedEdit.w);\n }\n\n void applyRgbaDisplaceEdit(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, inout vec3 pos,\n float smoothK, float softEdge, bool invert, uint rgbaBlendMode, inout vec4 rgba\n ) {\n vec4 values[4];\n float modulate = modulateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, 2, values, softEdge, invert);\n // On Android, moving values[0] is necessary to work around a compiler bug.\n vec4 sdfRgba = values[0];\n vec4 sdfDisplaceScale = values[1];\n\n vec4 target;\n switch (rgbaBlendMode) {\n case EDIT_BLEND_MULTIPLY:\n target = rgba * sdfRgba;\n break;\n case EDIT_BLEND_SET_RGB:\n target = vec4(sdfRgba.rgb, rgba.a * sdfRgba.a);\n break;\n case EDIT_BLEND_ADD_RGBA:\n target = rgba + sdfRgba;\n break;\n default:\n // Debug output if blend mode not set\n target = vec4(fract(pos), 1.0);\n }\n rgba = mix(rgba, target, modulate);\n pos += sdfDisplaceScale.xyz * modulate;\n }\n\n void applyPackedRgbaDisplaceEdit(uvec4 packedEdit, usampler2D sdfTexture, int numSdfs, inout vec3 pos, inout vec4 rgba) {\n int sdfFirst, sdfCount;\n bool invert;\n uint rgbaBlendMode;\n float softEdge, sdfSmooth;\n decodeEdit(packedEdit, sdfFirst, sdfCount, invert, rgbaBlendMode, softEdge, sdfSmooth);\n applyRgbaDisplaceEdit(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, sdfSmooth, softEdge, invert, rgbaBlendMode, rgba);\n }\n`);\n\nfunction applyGsplatRgbaDisplaceEdits(\n gsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n gsplat: typeof Gsplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { gsplat: typeof Gsplat }\n >({\n inTypes: {\n gsplat: Gsplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { gsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${gsplat}.center, ${gsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nfunction applyCovSplatRgbaDisplaceEdits(\n covsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n covsplat: typeof CovSplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { covsplat: typeof CovSplat }\n >({\n inTypes: {\n covsplat: CovSplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { covsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${covsplat}.center, ${covsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nconst tempFloat32 = new Float32Array(1);\n","import * as THREE from \"three\";\nimport type { SplatEdit } from \"./SplatEdit\";\nimport {\n CovSplat,\n Dyno,\n DynoFloat,\n DynoMat3,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n Gsplat,\n add,\n dynoBlock,\n mul,\n transformDir,\n transformGsplat,\n transformPos,\n unindentLines,\n} from \"./dyno\";\n\n// A GsplatGenerator is a dyno program that maps an index to a Gsplat's properties\n\nexport type GsplatGenerator = Dyno<{ index: \"int\" }, { gsplat: typeof Gsplat }>;\n\nexport type CovSplatGenerator = Dyno<\n { index: \"int\" },\n { covsplat: typeof CovSplat }\n>;\n\n// A GsplatModifier is a dyno program that inputs a Gsplat, modifies, and outputs it\n\nexport type GsplatModifier = Dyno<\n { gsplat: typeof Gsplat },\n { gsplat: typeof Gsplat }\n>;\n\nexport type CovSplatModifier = Dyno<\n { covsplat: typeof CovSplat },\n { covsplat: typeof CovSplat }\n>;\n\n// A SplatModifier is a utility class to apply a GsplatModifier to\n// a GsplatGenerator pipeline, caching the combined result for efficiency.\n\nexport class SplatModifier {\n modifier: GsplatModifier;\n cache: Map;\n\n constructor(modifier: GsplatModifier) {\n this.modifier = modifier;\n this.cache = new Map();\n }\n\n apply(generator: GsplatGenerator): GsplatGenerator {\n let modified = this.cache.get(generator);\n if (!modified) {\n modified = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n const { gsplat } = generator.apply({ index });\n return this.modifier.apply({ gsplat });\n },\n );\n this.cache.set(generator, modified);\n }\n return modified;\n }\n}\n\n// A SplatTransformer is a utility class to apply a transform to a Gsplat\n// via a scale, rotation, and translation. Scale is a single float because\n// anisotropic scaling of Gsplats is not supported.\n\nexport class SplatTransformer {\n scale: DynoFloat;\n rotate: DynoVec4;\n translate: DynoVec3;\n\n // Create the dyno uniforms that parameterize the transform, setting them\n // to initial values that are different from any valid transform.\n constructor() {\n this.scale = new DynoFloat({ value: Number.NEGATIVE_INFINITY });\n this.rotate = new DynoVec4({\n value: new THREE.Quaternion(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n this.translate = new DynoVec3({\n value: new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformPos(position, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformDir(dir, {\n rotate: this.rotate,\n });\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyGsplat(gsplat: DynoVal): DynoVal {\n return transformGsplat(gsplat, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const scale = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const position = new THREE.Vector3();\n transform.decompose(position, quaternion, scale);\n const newScale = (scale.x + scale.y + scale.z) / 3;\n\n let updated = false;\n if (newScale !== this.scale.value) {\n this.scale.value = newScale;\n updated = true;\n }\n if (!position.equals(this.translate.value)) {\n this.translate.value.copy(position);\n updated = true;\n }\n if (!quaternion.equals(this.rotate.value)) {\n this.rotate.value.copy(quaternion);\n updated = true;\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\nexport class CovSplatTransformer {\n basis: DynoMat3<\"basis\", THREE.Matrix3>;\n offset: DynoVec3;\n\n constructor() {\n this.basis = new DynoMat3({ value: new THREE.Matrix3() });\n this.offset = new DynoVec3({ value: new THREE.Vector3() });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n const rebased = mul(this.basis, position);\n return add(rebased, this.offset);\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return mul(this.basis, dir);\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyCovSplat(covsplat: DynoVal): DynoVal {\n return new Dyno({\n inTypes: { covsplat: CovSplat, basis: \"mat3\", offset: \"vec3\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covsplat, basis: this.basis, offset: this.offset },\n statements: ({ inputs, outputs }) => {\n const { covsplat, basis, offset } = inputs;\n if (!covsplat || !basis || !offset) {\n return [`${outputs.covsplat}.flags = 0u;`];\n }\n return unindentLines(`\n ${outputs.covsplat}.flags = 0u;\n if (isCovSplatActive(${covsplat}.flags)) {\n ${outputs.covsplat}.flags = ${covsplat}.flags;\n ${outputs.covsplat}.index = ${covsplat}.index;\n ${outputs.covsplat}.rgba = ${covsplat}.rgba;\n\n ${outputs.covsplat}.center = ${basis} * ${covsplat}.center + ${offset};\n \n mat3 cov = mat3(\n ${covsplat}.xxyyzz.x, ${covsplat}.xyxzyz.x, ${covsplat}.xyxzyz.y,\n ${covsplat}.xyxzyz.x, ${covsplat}.xxyyzz.y, ${covsplat}.xyxzyz.z,\n ${covsplat}.xyxzyz.y, ${covsplat}.xyxzyz.z, ${covsplat}.xxyyzz.z\n );\n cov = ${basis} * cov * transpose(${basis});\n ${outputs.covsplat}.xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n ${outputs.covsplat}.xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n `);\n },\n }).outputs.covsplat;\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const basis = new THREE.Matrix3().setFromMatrix4(transform);\n const offset = new THREE.Vector3().setFromMatrixColumn(transform, 3);\n\n const updated =\n !basis.equals(this.basis.value) || !offset.equals(this.offset.value);\n if (updated) {\n this.basis.value.copy(basis);\n this.offset.value.copy(offset);\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\n// SplatGenerator is an Object3D that can be placed anywhere in the scene\n// to generate Gsplats into the world for SparkRenderer. All Gsplats from\n// SplatGenerators across the scene will be accumulated into a single\n// SplatAccumulator, which are sorted and rendered together.\n//\n// Each SplatGenerator has two main properties:\n// - numSplats: the number of Gsplats to generate\n// - generator: a GsplatGenerator dyno program that maps a splat index\n// to a Gsplat's properties\n// Each of these properties can be changed at anytime, however changing\n// numSplats means we no longer have a correspondence between Gsplats\n// in successive frames, meaning we can't reuse the previous Gsplat sort\n// order. Similarly, changing the generator requires re-generating the\n// shader program, which will trigger a GPU shader compilation the first\n// time (possibly a perceptible \"hickup\" in the framerate) but is cached\n// subsequence times if the generator is the same as one that was used previously.\n//\n// A SplatGenerator also has a custom frameUpdate function that is called\n// on each execution, allowing you to update uniforms or other parameters that\n// affect the generation. If the Gsplats are changed, you must call\n// updateVersion() (alternatively, set needsUpdate to true) to trigger a\n// re-generation of the Gsplats for this SplatGenerator.\n\nexport interface FrameUpdateContext {\n renderer: THREE.WebGLRenderer;\n object: SplatGenerator;\n time: number;\n deltaTime: number;\n viewToWorld: THREE.Matrix4;\n camera?: THREE.Camera;\n renderSize?: THREE.Vector2;\n globalEdits: SplatEdit[];\n lodIndices?: { numSplats: number; texture: THREE.DataTexture };\n}\n\nexport class SplatGenerator extends THREE.Object3D {\n numSplats: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n generatorError?: unknown;\n covGeneratorError?: unknown;\n frameUpdate?: (context: FrameUpdateContext) => void;\n version: number;\n mappingVersion: number;\n\n constructor({\n numSplats,\n generator,\n covGenerator,\n construct,\n update,\n }: {\n numSplats?: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n construct?: (object: SplatGenerator) => {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n numSplats?: number;\n frameUpdate?: (context: FrameUpdateContext) => void;\n };\n update?: (context: FrameUpdateContext) => void;\n }) {\n super();\n\n this.numSplats = numSplats ?? 0;\n this.generator = generator;\n this.covGenerator = covGenerator;\n this.frameUpdate = update;\n this.version = 0;\n this.mappingVersion = 0;\n\n if (construct) {\n const constructed = construct(this);\n // If we returned something, update our properties\n Object.assign(this, constructed);\n }\n }\n\n updateVersion() {\n this.version += 1;\n }\n\n updateMappingVersion() {\n this.mappingVersion += 1;\n this.version += 1;\n }\n\n set needsUpdate(value: boolean) {\n if (value) {\n this.updateVersion();\n }\n }\n}\n","/* @ts-self-types=\"./spark_rs.d.ts\" */\n\nexport class ChunkDecoder {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ChunkDecoder.prototype);\n obj.__wbg_ptr = ptr;\n ChunkDecoderFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ChunkDecoderFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_chunkdecoder_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n finish() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.chunkdecoder_finish(ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n */\n push(bytes) {\n const ret = wasm.chunkdecoder_push(this.__wbg_ptr, bytes);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n}\nif (Symbol.dispose) ChunkDecoder.prototype[Symbol.dispose] = ChunkDecoder.prototype.free;\n\nexport class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n\nexport class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function bhatt_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, rgba) {\n const ret = wasm.bhatt_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function bhatt_lod_packedsplats(num_splats, packed, extra, lod_base, rgba, encoding) {\n const ret = wasm.bhatt_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {any}\n */\nexport function decode_rad_header(bytes) {\n const ret = wasm.decode_rad_header(bytes);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @returns {ChunkDecoder}\n */\nexport function decode_to_csplatarray(file_type, path_name, encoding) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_csplatarray(ptr0, len0, ptr1, len1, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_extsplats(file_type, path_name, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_extsplats(ptr0, len0, ptr1, len1, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_gsplatarray(file_type, path_name) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_gsplatarray(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Uint32Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_packedsplats(file_type, path_name, encoding, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_packedsplats(ptr0, len0, ptr1, len1, encoding, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n */\nexport function dispose_lod_tree(lod_id) {\n wasm.dispose_lod_tree(lod_id);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null} [extra]\n * @returns {GsplatArray}\n */\nexport function extsplats_to_gsplatarray(num_splats, ext1, ext2, extra) {\n const ret = wasm.extsplats_to_gsplatarray(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n * @param {number} level\n * @returns {object}\n */\nexport function get_lod_tree_level(lod_id, level) {\n const ret = wasm.get_lod_tree_level(lod_id, level);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer() {\n const ret = wasm.get_raycast_buffer();\n return ret;\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer2() {\n const ret = wasm.get_raycast_buffer2();\n return ret;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} lod_tree\n * @returns {object}\n */\nexport function init_lod_tree(num_splats, lod_tree) {\n const ret = wasm.init_lod_tree(num_splats, lod_tree);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} capacity\n * @returns {object}\n */\nexport function new_lod_tree(capacity) {\n const ret = wasm.new_lod_tree(capacity);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} orig_lod_id\n * @returns {object}\n */\nexport function new_shared_lod_tree(orig_lod_id) {\n const ret = wasm.new_shared_lod_tree(orig_lod_id);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {CsplatArray}\n */\nexport function packedsplats_to_csplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_csplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return CsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {GsplatArray}\n */\nexport function packedsplats_to_gsplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_gsplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @returns {Float32Array}\n */\nexport function raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count) {\n const ret = wasm.raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} num_splats\n * @param {Uint32Array} packed_splats\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @returns {boolean}\n */\nexport function simd_enabled() {\n const ret = wasm.simd_enabled();\n return ret !== 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint16Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function tiny_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, merge_filter, rgba) {\n const ret = wasm.tiny_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function tiny_lod_packedsplats(num_splats, packed, extra, lod_base, merge_filter, rgba, encoding) {\n const ret = wasm.tiny_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} page_bases\n * @param {Uint32Array} chunk_bases\n * @param {Uint32Array} counts\n * @param {Array} lod_trees\n * @returns {object}\n */\nexport function update_lod_trees(lod_ids, page_bases, chunk_bases, counts, lod_trees) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(page_bases, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_bases, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(counts, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.update_lod_trees(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, lod_trees);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\nexport function wasm_start() {\n wasm.wasm_start();\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments); },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_fd4646b401926788: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_26bffbe236bf73f9: function(arg0) {\n const ret = new Float32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) {\n arg0.set(getArrayF32FromWasm0(arg1, arg2));\n },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(F32)) -> NamedExternref(\"Float32Array\")`.\n const ret = getArrayF32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000003: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U32)) -> NamedExternref(\"Uint32Array\")`.\n const ret = getArrayU32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000004: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000005: function(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./spark_rs_bg.js\": import0,\n };\n}\n\nconst ChunkDecoderFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\nconst CsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\nconst GsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayF32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\nfunction getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint16ArrayMemory0 = null;\nfunction getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayF32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getFloat32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","function b64ToUint6(nChr) {\n return nChr > 64 && nChr < 91\n ? nChr - 65\n : nChr > 96 && nChr < 123\n ? nChr - 71\n : nChr > 47 && nChr < 58\n ? nChr + 4\n : nChr === 43\n ? 62\n : nChr === 47\n ? 63\n : 0\n}\n\nfunction base64ToUint8(sBase64, nBlocksSize) {\n const sB64Enc = sBase64.replace(/[^A-Za-z0-9+/]/g, \"\")\n const nInLen = sB64Enc.length\n const nOutLen = nBlocksSize\n ? Math.ceil(((nInLen * 3 + 1) >> 2) / nBlocksSize) * nBlocksSize\n : (nInLen * 3 + 1) >> 2\n const taBytes = new Uint8Array(nOutLen)\n\n let nMod3\n let nMod4\n let nUint24 = 0\n let nOutIdx = 0\n for (let nInIdx = 0; nInIdx < nInLen; nInIdx++) {\n nMod4 = nInIdx & 3\n nUint24 |= b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << (6 * (3 - nMod4))\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\n nMod3 = 0\n while (nMod3 < 3 && nOutIdx < nOutLen) {\n taBytes[nOutIdx] = (nUint24 >>> ((16 >>> nMod3) & 24)) & 255\n nMod3++\n nOutIdx++\n }\n nUint24 = 0\n }\n }\n\n return taBytes\n}\nfunction toUint8(b64) {\n if (typeof Uint8Array.fromBase64 === \"function\") return Uint8Array.fromBase64(b64)\n let bin = atob(b64)\n let len = bin.length\n let bytes = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n bytes[i] = bin.charCodeAt(i)\n }\n return bytes\n}\n\nconst decode64 = typeof atob === \"function\" ? toUint8 : base64ToUint8\n\nexport default decode64\n","import init_wasm from \"spark-rs\";\nimport WASM from \"spark-rs/spark_rs_bg.wasm?arraybuffer&base64\";\n\nexport const WASM_MODULE = WebAssembly.compile(WASM);\n\n// Flag indicating if the spark-rs project has been initialized\nlet initialized = false;\n\n/**\n * Promise for module instantiation, ensuring calls to\n * imports from the spark-rs project can be used.\n */\nexport const initialization = init_wasm({ module_or_path: WASM_MODULE }).then(\n (_) => {\n initialized = true;\n },\n);\n\n/**\n * Indicates if the wasm module instantiation has completed or not.\n */\nexport function isInitialized() {\n return initialized;\n}\n","import { getTransferable } from \"./utils\";\nimport { WASM_MODULE } from \"./wasm\";\nimport BundledWorker from \"./worker?worker&inline\";\n\ntype PromiseRecord = {\n resolve: (value: unknown) => void;\n reject: (reason?: unknown) => void;\n onStatus?: (data: unknown) => void;\n};\n\nexport class SplatWorker {\n worker: Worker;\n queue: (() => void)[] | null = null;\n messages: Record = {};\n static currentId = 0;\n\n constructor() {\n this.worker = new BundledWorker();\n this.worker.onmessage = (event) => this.onMessage(event);\n WASM_MODULE.then((module) => {\n this.worker.postMessage({ name: \"init-wasm\", module });\n });\n }\n\n onMessage(event: MessageEvent) {\n const { id, result, error, status } = event.data;\n const promise = this.messages[id];\n if (promise) {\n if (error !== undefined) {\n delete this.messages[id];\n promise.reject(error);\n } else if (status !== undefined) {\n promise.onStatus?.(status);\n } else {\n delete this.messages[id];\n promise.resolve(result);\n }\n }\n }\n\n tryExclusive(callback: (worker: SplatWorker) => Promise) {\n return this.queue == null ? this.exclusive(callback) : null;\n }\n\n async exclusive(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const queue = this.queue;\n if (queue != null) {\n await new Promise((resolve) => {\n queue.push(() => resolve(undefined));\n });\n } else {\n this.queue = [];\n }\n\n try {\n return await callback(this);\n } finally {\n if (this.queue != null) {\n if (this.queue.length === 0) {\n this.queue = null;\n } else {\n const waiter = this.queue.shift() as () => void;\n waiter();\n }\n }\n }\n }\n\n async call(\n name: string,\n args: unknown,\n options: { onStatus?: (data: unknown) => void } = {},\n ): Promise {\n const id = ++SplatWorker.currentId;\n const promise = new Promise((resolve, reject) => {\n this.messages[id] = { resolve, reject, onStatus: options.onStatus };\n });\n this.worker.postMessage(\n { id, name, args },\n { transfer: getTransferable(args) },\n );\n return await promise;\n }\n\n dispose() {\n this.worker.terminate();\n\n const messages = Object.values(this.messages);\n this.messages = {};\n for (const message of messages) {\n message.reject(new Error(\"Worker terminate\"));\n }\n }\n}\n\nexport class NewSplatWorkerPool {\n maxWorkers;\n numWorkers = 0;\n freelist: SplatWorker[] = [];\n queue: ((worker: SplatWorker) => void)[] = [];\n\n constructor(maxWorkers = 4) {\n this.maxWorkers = maxWorkers;\n }\n\n async withWorker(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const worker = await this.allocWorker();\n try {\n return await callback(worker);\n } finally {\n this.freeWorker(worker);\n }\n }\n\n async allocWorker(): Promise {\n const worker = this.freelist.pop();\n if (worker) {\n return worker;\n }\n\n if (this.numWorkers < this.maxWorkers) {\n const worker = new SplatWorker();\n this.numWorkers += 1;\n return worker;\n }\n\n return new Promise((resolve) => {\n this.queue.push(resolve);\n });\n }\n\n freeWorker(worker: SplatWorker) {\n if (this.numWorkers > this.maxWorkers) {\n // Worker no longer needed\n this.numWorkers -= 1;\n return;\n }\n\n const waiter = this.queue.shift();\n if (waiter) {\n waiter(worker);\n return;\n }\n\n this.freelist.push(worker);\n }\n}\n\nexport const workerPool = new NewSplatWorkerPool();\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport type { RgbaArray } from \"./RgbaArray\";\nimport type { GsplatGenerator } from \"./SplatGenerator\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n DynoProgram,\n DynoProgramTemplate,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n add,\n dynoBlock,\n normalize,\n outputPackedSplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport {\n type Gsplat,\n TPackedSplats,\n combineGsplat,\n definePackedSplats,\n readPackedSplat,\n splatTexCoord,\n splitGsplat,\n} from \"./dyno/splats\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, setPackedSplat, unpackSplat } from \"./utils\";\n\n// Initialize a PackedSplats collection from source data via\n// url, fileBytes, or packedArray. Creates an empty array if none are set,\n// and splat data can be constructed using pushSplat()/setSplat(). The maximum\n// splat size allocation will grow automatically, starting from maxSplats.\nexport type PackedSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided packed data array, where each 4 consecutive uint32 values\n // encode one \"packed\" Gsplat. (default: undefined)\n packedArray?: Uint32Array;\n // Override number of splats in packed array to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the PackedSplats\n lodSplats?: PackedSplats;\n};\n\n// A PackedSplats is a collection of Gaussian splats, packed into a format that\n// takes exactly 16 bytes per Gsplat to maximize memory and cache efficiency.\n// The center xyz coordinates are encoded as float16 (3 x 2 bytes), scale xyz\n// as 3 x uint8 that encode a log scale from e^-12 to e^9, rgba as 4 x uint8,\n// and quaternion encoded via axis+angle using 2 x uint8 for octahedral encoding\n// of the axis direction and a uint8 to encode rotation amount from 0..Pi.\n\nexport class PackedSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n packedArray: Uint32Array | null = null;\n extra: Record;\n maxSh = 3;\n splatEncoding?: SplatEncoding;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: PackedSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n // Either target or source will be non-null, depending on whether the PackedSplats\n // is being used as a data source or generated to.\n target: THREE.WebGLArrayRenderTarget | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source packedArray is updated to have it upload to GPU\n needsUpdate = true;\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoRgbMinMaxLnScaleMinMax: DynoUniform<\"vec4\", \"rgbMinMaxLnScaleMinMax\">;\n dynoNumSh: DynoInt<\"numSh\">;\n dynoShMax: DynoVec3;\n\n constructor(options: PackedSplatsOptions = {}) {\n this.extra = {};\n this.dyno = new DynoPackedSplats({ packedSplats: this });\n this.dynoRgbMinMaxLnScaleMinMax = new DynoVec4({\n key: \"rgbMinMaxLnScaleMinMax\",\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n update: (value) => {\n value.set(\n this.splatEncoding?.rgbMin ?? 0.0,\n this.splatEncoding?.rgbMax ?? 1.0,\n this.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n return value;\n },\n });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n this.dynoShMax = new DynoVec3({\n key: \"shMax\",\n value: new THREE.Vector3(),\n update: (value) => {\n value.set(\n this.splatEncoding?.sh1Max ?? 1.0,\n this.splatEncoding?.sh2Max ?? 1.0,\n this.splatEncoding?.sh3Max ?? 1.0,\n );\n return value;\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: PackedSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.splatEncoding = options.splatEncoding;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: PackedSplatsOptions) {\n this.extra = options.extra ?? {};\n this.splatEncoding = options.splatEncoding ?? this.splatEncoding;\n this.lodSplats = options.lodSplats;\n\n if (options.packedArray) {\n this.packedArray = options.packedArray;\n this.numSplats = options.numSplats ?? this.packedArray.length / 4;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats = Math.floor(this.packedArray.length / 4);\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n }\n }\n\n async asyncInitialize(options: PackedSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n packedSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target.texture.source.data = null;\n this.target = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source.source.data = null;\n this.source = null;\n }\n\n this.packedArray = null;\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"PackedSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3 ? 2 : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readPackedSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3Texture } = this.ensureShTextures();\n let { rgb } = evaluatePackedSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax: this.dynoShMax,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 2,\n );\n if (sh1.length < maxSplats * 2) {\n const newSh1 = new Uint32Array(maxSplats * 2);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n\n const texture = new THREE.DataArrayTexture(sh1, width, height, depth);\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = new THREE.DataArrayTexture(sh2, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3Texture = this.extra.sh3Texture as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3Texture) {\n let sh3 = this.extra.sh3 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3.length / 4,\n );\n if (sh3.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3);\n this.extra.sh3 = newSh3;\n sh3 = newSh3;\n }\n\n const texture = new THREE.DataArrayTexture(sh3, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh3Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3Texture = sh3Texture;\n }\n\n return { sh1Texture, sh2Texture, sh3Texture };\n }\n\n // Ensures that this.packedArray can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): Uint32Array {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.packedArray ? 0 : this.packedArray.length / 4;\n\n if (!this.packedArray || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(this.maxSplats * 4);\n if (this.packedArray) {\n // Copy over existing data\n newArray.set(this.packedArray);\n }\n this.packedArray = newArray;\n }\n return this.packedArray;\n }\n\n // Ensure the extra array for the given level is large enough to hold numSplats\n ensureSplatsSh(level: number, numSplats: number): Uint32Array {\n let wordsPerSplat: number;\n let key: string;\n if (level === 0) {\n return this.ensureSplats(numSplats);\n }\n if (level === 1) {\n // 3 x 3 uint7 = 63 bits = 2 uint32\n wordsPerSplat = 2;\n key = \"sh1\";\n } else if (level === 2) {\n // 5 x 3 uint8 = 120 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh2\";\n } else if (level === 3) {\n // 7 x 3 uint6 = 126 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh3\";\n } else {\n throw new Error(`Invalid level: ${level}`);\n }\n\n // Figure out our current and desired maxSplats\n let maxSplats: number = !this.extra[key]\n ? 0\n : (this.extra[key] as Uint32Array).length / wordsPerSplat;\n const targetSize =\n numSplats <= maxSplats ? maxSplats : Math.max(numSplats, 2 * maxSplats);\n\n if (!this.extra[key] || targetSize > maxSplats) {\n // Reallocate the array\n maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(maxSplats * wordsPerSplat);\n if (this.extra[key]) {\n // Copy over existing data\n newArray.set(this.extra[key] as Uint32Array);\n }\n this.extra[key] = newArray;\n }\n return this.extra[key] as Uint32Array;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (!this.packedArray || index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return unpackSplat(this.packedArray, index, this.splatEncoding);\n }\n\n // Set all PackedSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(index + 1);\n setPackedSplat(\n packedSplats,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(this.numSplats + 1);\n setPackedSplat(\n packedSplats,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.packedArray || !this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = unpackSplat(this.packedArray, i, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Ensures our PackedSplats.target render target has enough space to generate\n // maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate(maxSplats: number): boolean {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n if (this.target) {\n this.target.dispose();\n }\n\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAIntegerFormat;\n this.target.texture.type = THREE.UnsignedIntType;\n this.target.texture.internalFormat = \"RGBA32UI\";\n this.target.scissorTest = true;\n return true;\n }\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Returns a THREE.DataArrayTexture representing the PackedSplats content as\n // a Uint32x4 data array texture (2048 x 2048 x depth in size)\n getTexture(): THREE.DataArrayTexture {\n if (this.target) {\n // Return the render target's texture\n return this.target.texture;\n }\n if (this.source || this.packedArray) {\n // Update source texture if needed and return\n const source = this.maybeUpdateSource();\n return source;\n }\n\n return PackedSplats.getEmptyArray;\n }\n\n // Check if source texture needs to be created/updated\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.packedArray) {\n throw new Error(\"No packed splats\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.source = new THREE.DataArrayTexture(\n this.packedArray as Uint32Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAIntegerFormat;\n this.source.type = THREE.UnsignedIntType;\n this.source.internalFormat = \"RGBA32UI\";\n this.source.needsUpdate = true;\n } else if (this.packedArray.buffer !== this.source.image.data.buffer) {\n // The source texture is the right size, update the data\n this.source.image.data = new Uint8Array(this.packedArray.buffer);\n }\n // Indicate to Three.js that the source texture needs to be uploaded to the GPU\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n static getEmptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(generator: GsplatGenerator): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = PackedSplats.generatorProgram.get(generator);\n if (!program) {\n // A Gsplat needs to be turned into a packed uvec4 for the dyno graph\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n generator.inputs.index = index;\n const gsplat = generator.outputs.gsplat;\n const output = outputPackedSplat(\n gsplat,\n this.dynoRgbMinMaxLnScaleMinMax,\n );\n roots.push(output);\n return undefined;\n },\n );\n if (!PackedSplats.programTemplate) {\n PackedSplats.programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { output: \"target\" },\n template: PackedSplats.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n PackedSplats.generatorProgram.set(generator, program);\n }\n\n // Prepare and update our material we'll use to render the Gsplats\n const material = program.prepareMaterial();\n PackedSplats.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Executes a dyno program specified by generator which is any DynoBlock that\n // maps { index: \"int\" } to { gsplat: Gsplat }. This is called in\n // SparkRenderer.updateInternal() to re-generate Gsplats in the scene for\n // SplatGenerator instances whose version is newer than what was generated\n // for it last time.\n generate({\n generator,\n base,\n count,\n renderer,\n }: {\n generator: GsplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }): { nextBase: number } {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureSplats\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(generator);\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n PackedSplats.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const packedArray = (this.packedArray as Uint32Array).slice();\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodPackedSplats\" : \"tinyLodPackedSplats\",\n {\n numSplats: this.numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding: this.splatEncoding ?? DEFAULT_SPLAT_ENCODING,\n },\n )) as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n };\n });\n\n const lodSplats = new PackedSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new PackedSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for GsplatGenerator programs\n static generatorProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\n// You can use a PackedSplats as a dyno block using the function\n// dyno.readPackedSplats(packedSplats.dyno, dynoIndex) where\n// dynoIndex is of type DynoVal<\"int\">. If you need to be able to change\n// the input PackedSplats dynamically, however, you should create a\n// DynoPackedSplats, whose property packedSplats you can change to any\n// PackedSplats and that will be used in the dyno shader program.\n\nexport const dynoPackedSplats = (packedSplats?: PackedSplats) =>\n new DynoPackedSplats({ packedSplats });\n\nexport class DynoPackedSplats extends DynoUniform<\n typeof TPackedSplats,\n \"packedSplats\",\n {\n textureArray: THREE.DataArrayTexture;\n numSplats: number;\n rgbMinMaxLnScaleMinMax: THREE.Vector4;\n lodOpacity: boolean;\n }\n> {\n packedSplats?: PackedSplats;\n\n constructor({ packedSplats }: { packedSplats?: PackedSplats } = {}) {\n super({\n key: \"packedSplats\",\n type: TPackedSplats,\n globals: () => [definePackedSplats],\n value: {\n textureArray: PackedSplats.getEmptyArray,\n numSplats: 0,\n rgbMinMaxLnScaleMinMax: new THREE.Vector4(\n 0,\n 1,\n LN_SCALE_MIN,\n LN_SCALE_MAX,\n ),\n lodOpacity: false,\n },\n update: (value) => {\n value.textureArray =\n this.packedSplats?.getTexture() ?? PackedSplats.getEmptyArray;\n value.numSplats = this.packedSplats?.numSplats ?? 0;\n value.rgbMinMaxLnScaleMinMax.set(\n this.packedSplats?.splatEncoding?.rgbMin ?? 0,\n this.packedSplats?.splatEncoding?.rgbMax ?? 1,\n this.packedSplats?.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.packedSplats?.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n value.lodOpacity =\n this.packedSplats?.splatEncoding?.lodOpacity ?? false;\n return value;\n },\n });\n this.packedSplats = packedSplats;\n }\n}\n\nexport const defineEvalPackedSH1 = unindent(`\n vec3 evaluatePackedSH1(uvec2 packedData, vec3 viewDir, float sh1Max) {\n // Extract sint7 values packed into 2 x uint32\n vec3 sh1_0 = vec3(ivec3(\n int(packedData.x << 25u) >> 25,\n int(packedData.x << 18u) >> 25,\n int(packedData.x << 11u) >> 25\n ));\n vec3 sh1_1 = vec3(ivec3(\n int(packedData.x << 4u) >> 25,\n int((packedData.x >> 3u) | (packedData.y << 29u)) >> 25,\n int(packedData.y << 22u) >> 25\n ));\n vec3 sh1_2 = vec3(ivec3(\n int(packedData.y << 15u) >> 25,\n int(packedData.y << 8u) >> 25,\n int(packedData.y << 1u) >> 25\n ));\n\n vec3 rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n return rgb * (sh1Max / 63.0);\n }\n`);\n\nexport const defineEvalPackedSH2 = unindent(`\n vec3 evaluatePackedSH2(uvec4 packedData, vec3 viewDir, float sh2Max) {\n // Extract sint8 values packed into 4 x uint32\n vec3 sh2_0 = vec3(ivec3(\n int(packedData.x << 24u) >> 24,\n int(packedData.x << 16u) >> 24,\n int(packedData.x << 8u) >> 24\n ));\n vec3 sh2_1 = vec3(ivec3(\n int(packedData.x) >> 24,\n int(packedData.y << 24u) >> 24,\n int(packedData.y << 16u) >> 24\n ));\n vec3 sh2_2 = vec3(ivec3(\n int(packedData.y << 8u) >> 24,\n int(packedData.y) >> 24,\n int(packedData.z << 24u) >> 24\n ));\n vec3 sh2_3 = vec3(ivec3(\n int(packedData.z << 16u) >> 24,\n int(packedData.z << 8u) >> 24,\n int(packedData.z) >> 24\n ));\n vec3 sh2_4 = vec3(ivec3(\n int(packedData.w << 24u) >> 24,\n int(packedData.w << 16u) >> 24,\n int(packedData.w << 8u) >> 24\n ));\n\n vec3 rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n return rgb * (sh2Max / 127.0);\n }\n`);\n\nexport const defineEvalPackedSH3 = unindent(`\n vec3 evaluatePackedSH3(uvec4 packedData, vec3 viewDir, float sh3Max) {\n // Extract sint6 values packed into 4 x uint32\n vec3 sh3_0 = vec3(ivec3(\n int(packedData.x << 26u) >> 26,\n int(packedData.x << 20u) >> 26,\n int(packedData.x << 14u) >> 26\n ));\n vec3 sh3_1 = vec3(ivec3(\n int(packedData.x << 8u) >> 26,\n int(packedData.x << 2u) >> 26,\n int((packedData.x >> 4u) | (packedData.y << 28u)) >> 26\n ));\n vec3 sh3_2 = vec3(ivec3(\n int(packedData.y << 22u) >> 26,\n int(packedData.y << 16u) >> 26,\n int(packedData.y << 10u) >> 26\n ));\n vec3 sh3_3 = vec3(ivec3(\n int(packedData.y << 4u) >> 26,\n int((packedData.y >> 2u) | (packedData.z << 30u)) >> 26,\n int(packedData.z << 24u) >> 26\n ));\n vec3 sh3_4 = vec3(ivec3(\n int(packedData.z << 18u) >> 26,\n int(packedData.z << 12u) >> 26,\n int(packedData.z << 6u) >> 26\n ));\n vec3 sh3_5 = vec3(ivec3(\n int(packedData.z) >> 26,\n int(packedData.w << 26u) >> 26,\n int(packedData.w << 20u) >> 26\n ));\n vec3 sh3_6 = vec3(ivec3(\n int(packedData.w << 14u) >> 26,\n int(packedData.w << 8u) >> 26,\n int(packedData.w << 2u) >> 26\n ));\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n vec3 rgb = sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n return rgb * (sh3Max / 31.0);\n }\n`);\n\nexport function evaluatePackedSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n shMax: DynoVal<\"vec3\">;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3Texture: \"usampler2DArray\",\n shMax: \"vec3\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n },\n globals: () => [\n defineEvalPackedSH1,\n defineEvalPackedSH2,\n defineEvalPackedSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0).rg, ${inputs.viewDir}, ${inputs.shMax}.x);\n rgb += sh1Rgb;\n `),\n );\n if (inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 2) {\n vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.y);\n rgb += sh2Rgb;\n `),\n );\n if (inputs.sh3Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${inputs.sh3Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.z);\n rgb += sh3Rgb;\n }\n `),\n );\n }\n lines.push(\"}\");\n }\n lines.push(\"}\");\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n","import { unzipSync } from \"fflate\";\nimport { FileLoader, Loader, type LoadingManager } from \"three\";\nimport { ExtSplats, type ExtSplatsOptions } from \"./ExtSplats\";\nimport { PackedSplats, type PackedSplatsOptions } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { type SplatEncoding, SplatFileType } from \"./defines\";\nimport { PlyReader } from \"./ply\";\nimport { decompressPartialGzip, getTextureSize } from \"./utils\";\n\n// SplatLoader implements the THREE.Loader interface and supports loading a variety\n// of different Gsplat file formats. Formats .PLY and .SPZ can be auto-detected\n// from the file contents, while .SPLAT and .KSPLAT require either having the\n// appropriate file extension as part of the path, or it can be explicitly set\n// in the loader using the fileType property.\n\nexport class SplatLoader extends Loader {\n fileLoader: FileLoader;\n\n constructor(manager?: LoadingManager) {\n super(manager);\n this.fileLoader = new FileLoader(manager);\n }\n\n load(\n url: string,\n onLoad?: (decoded: PackedSplats | ExtSplats) => void,\n onProgress?: (event: ProgressEvent) => void,\n onError?: (error: unknown) => void,\n ) {\n return this.loadInternal({\n url,\n onLoad,\n onProgress,\n onError,\n });\n }\n\n async loadAsync(\n url: string,\n onProgress?: (event: ProgressEvent) => void,\n ): Promise {\n return new Promise((resolve, reject) => {\n this.load(\n url,\n (decoded) => {\n resolve(decoded);\n },\n onProgress,\n reject,\n );\n });\n }\n\n parse(packedSplats: PackedSplats): SplatMesh {\n return new SplatMesh({ packedSplats });\n }\n\n loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad,\n onProgress,\n onError,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onLoad?: (decoded: PackedSplats | ExtSplats) => void;\n onProgress?: (event: ProgressEvent) => void;\n onError?: (error: unknown) => void;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n if (fileBytes instanceof ArrayBuffer) {\n fileBytes = new Uint8Array(fileBytes);\n }\n const resolvedURL = fileBytes\n ? undefined\n : this.manager.resolveURL((this.path ?? \"\") + (url ?? \"\"));\n\n let readStream = stream?.getReader();\n\n this.manager.itemStart(resolvedURL ?? \"\");\n // let calledOnLoad = false;\n\n workerPool\n .withWorker(async (worker) => {\n // If LoD is set and not falsey\n const splatsLod = packedSplats?.lod ?? extSplats?.lod;\n if (splatsLod) {\n lod = splatsLod;\n }\n const splatsNonLod = packedSplats?.nonLod ?? extSplats?.nonLod;\n if (splatsNonLod !== undefined) {\n nonLod = splatsNonLod;\n }\n\n // let init: {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // } | null = null;\n // let initExt: {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // } | null = null;\n\n const onStatus = async (data: unknown) => {\n const { loaded, total } = data as { loaded: number; total: number };\n if (loaded !== undefined && onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n\n if ((data as { nextChunk?: boolean }).nextChunk) {\n let chunk: Uint8Array;\n if (!readStream) {\n chunk = new Uint8Array(0);\n } else {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n readStream = undefined;\n chunk = new Uint8Array(0);\n } else {\n chunk = value;\n }\n }\n worker.call(\"nextChunk\", { chunk });\n }\n\n // if ((data as { orig?: unknown }).orig) {\n // if (extSplats) {\n // initExt = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // };\n // extSplats.initialize({\n // numSplats: initExt?.numSplats,\n // extArrays: [initExt?.ext0, initExt?.ext1],\n // extra: initExt?.extra,\n // });\n // calledOnLoad = true;\n // onLoad?.(extSplats);\n // } else if (packedSplats) {\n // init = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // };\n // packedSplats.initialize({\n // numSplats: init?.numSplats,\n // packedArray: init?.packedArray,\n // extra: init?.extra,\n // splatEncoding: init?.splatEncoding,\n // });\n // calledOnLoad = true;\n // onLoad?.(packedSplats);\n // } else {\n // console.warn(\"No splats to initialize\");\n // }\n // }\n };\n\n const basedUrl = resolvedURL\n ? new URL(resolvedURL, window.location.href).toString()\n : undefined;\n const decoded = (await worker.call(\n extSplats ? \"loadExtSplats\" : \"loadPackedSplats\",\n {\n url: basedUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n fileBytes: fileBytes?.slice(),\n fileType,\n pathName: resolvedURL || fileName,\n chunked: stream !== undefined,\n chunkedLength: streamLength,\n encoding: packedSplats?.splatEncoding,\n lod,\n lodBase,\n nonLod,\n lodAbove,\n },\n { onStatus },\n )) as {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n lodSplats?:\n | {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n }\n | PackedSplats\n | ExtSplats;\n };\n\n if (decoded.lodSplats) {\n if (extSplats) {\n decoded.lodSplats = new ExtSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n }),\n });\n } else {\n decoded.lodSplats = new PackedSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n }),\n maxSplats: packedSplats?.maxSplats,\n });\n }\n }\n\n if (extSplats) {\n const initExtSplats = {\n // ...(initExt ?? {}),\n ...decoded,\n };\n extSplats.initialize(initExtSplats as ExtSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(extSplats);\n // }\n } else {\n const initSplats = {\n // ...(init ?? {}),\n ...decoded,\n };\n if (packedSplats) {\n packedSplats.initialize(initSplats as PackedSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(packedSplats);\n // }\n } else {\n // if (!calledOnLoad) {\n onLoad?.(new PackedSplats(initSplats as PackedSplatsOptions));\n // }\n }\n }\n })\n .catch((error) => {\n this.manager.itemError(resolvedURL ?? \"\");\n onError?.(error);\n })\n .finally(() => {\n this.manager.itemEnd(resolvedURL ?? \"\");\n });\n }\n\n async loadInternalAsync({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onProgress?: (event: ProgressEvent) => void;\n lod?: boolean;\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n return new Promise((resolve, reject) => {\n this.loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad: resolve,\n onProgress,\n onError: reject,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n });\n });\n }\n}\n\nasync function fetchWithProgress(\n request: Request,\n onProgress?: (event: ProgressEvent) => void,\n) {\n const response = await fetch(request);\n if (!response.ok) {\n throw new Error(\n `${response.status} \"${response.statusText}\" fetching URL: ${request.url}`,\n );\n }\n if (!response.body) {\n throw new Error(`Response body is null for URL: ${request.url}`);\n }\n\n const reader = response.body.getReader();\n let loaded = 0;\n const chunks: Uint8Array[] = [];\n try {\n const contentLength = Number.parseInt(\n response.headers.get(\"Content-Length\") || \"0\",\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n loaded += value.length;\n\n if (onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n }\n } catch (err) {\n try {\n const reason = err instanceof Error ? err.message : \"Unknown error\";\n await reader.cancel(reason);\n } catch {}\n throw err;\n }\n\n // Combine chunks into a single buffer\n const bytes = new Uint8Array(loaded);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.length;\n }\n return bytes.buffer;\n}\n\nexport function getSplatFileType(\n fileBytes: Uint8Array,\n): SplatFileType | undefined {\n const view = new DataView(fileBytes.buffer);\n const magic = view.getUint32(0, true);\n if ((magic & 0x00ffffff) === 0x00796c70) {\n return SplatFileType.PLY;\n }\n if ((magic & 0x00ffffff) === 0x00088b1f) {\n // Gzipped file, unpack beginning to check magic number\n const header = decompressPartialGzip(fileBytes, 4);\n const gView = new DataView(header.buffer);\n if (gView.getUint32(0, true) === 0x5053474e) {\n return SplatFileType.SPZ;\n }\n // Unknown Gzipped file type\n return undefined;\n }\n if (magic === 0x04034b50) {\n // PKZip file\n if (tryPcSogsZip(fileBytes)) {\n return SplatFileType.PCSOGSZIP;\n }\n // Unknown PKZip file type\n return undefined;\n }\n if (magic === 0x30444152) {\n return SplatFileType.RAD;\n }\n // Unknown file type\n return undefined;\n}\n\n// Returns the lowercased file extension from a path or URL\nexport function getFileExtension(pathOrUrl: string): string {\n const noTrailing = pathOrUrl.split(/[?#]/, 1)[0];\n const lastSlash = Math.max(\n noTrailing.lastIndexOf(\"/\"),\n noTrailing.lastIndexOf(\"\\\\\"),\n );\n const filename = noTrailing.slice(lastSlash + 1);\n const lastDot = filename.lastIndexOf(\".\");\n if (lastDot <= 0 || lastDot === filename.length - 1) {\n return \"\"; // No extension\n }\n return filename.slice(lastDot + 1).toLowerCase();\n}\n\nexport function getSplatFileTypeFromPath(\n pathOrUrl: string,\n): SplatFileType | undefined {\n const extension = getFileExtension(pathOrUrl);\n if (extension === \"ply\") {\n return SplatFileType.PLY;\n }\n if (extension === \"spz\") {\n return SplatFileType.SPZ;\n }\n if (extension === \"splat\") {\n return SplatFileType.SPLAT;\n }\n if (extension === \"ksplat\") {\n return SplatFileType.KSPLAT;\n }\n if (extension === \"sog\") {\n return SplatFileType.PCSOGSZIP;\n }\n if (extension === \"rad\") {\n return SplatFileType.RAD;\n }\n return undefined;\n}\n\nexport type PcSogsJson = {\n means: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n quats: { shape: number[]; dtype: string; encoding?: string; files: string[] };\n sh0: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n shN?: {\n shape: number[];\n dtype: string;\n mins: number;\n maxs: number;\n quantization: number;\n files: string[];\n };\n};\n\nexport type PcSogsV2Json = {\n version: 2;\n count: number;\n antialias?: boolean;\n means: {\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n codebook: number[];\n files: string[];\n };\n quats: { files: string[] };\n sh0: {\n codebook: number[];\n files: string[];\n };\n shN?: {\n count: number;\n bands: number;\n codebook: number[];\n files: string[];\n };\n};\n\nexport function isPcSogs(input: ArrayBuffer | Uint8Array | string): boolean {\n // Returns true if the input seems to be a valid PC SOGS file\n return tryPcSogs(input) !== undefined;\n}\n\nexport function tryPcSogs(\n input: ArrayBuffer | Uint8Array | string,\n): PcSogsJson | PcSogsV2Json | undefined {\n // Try to parse input as SOGS JSON and see if it's valid\n try {\n let text: string;\n if (typeof input === \"string\") {\n text = input;\n } else {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n if (fileBytes.length > 65536) {\n // Should be only a few KB, definitely not a SOGS JSON file\n return undefined;\n }\n text = new TextDecoder().decode(fileBytes);\n }\n\n const json = JSON.parse(text);\n if (!json || typeof json !== \"object\" || Array.isArray(json)) {\n return undefined;\n }\n const isVersion2 = json.version === 2;\n\n for (const key of [\"means\", \"scales\", \"quats\", \"sh0\"]) {\n if (\n !json[key] ||\n typeof json[key] !== \"object\" ||\n Array.isArray(json[key])\n ) {\n return undefined;\n }\n if (isVersion2) {\n // Expect files\n if (!json[key].files) {\n return undefined;\n }\n\n // Scales and sh0 should have codebooks\n if ((key === \"scales\" || key === \"sh0\") && !json[key].codebook) {\n return undefined;\n }\n // Means should have mins and maxs defined\n if (key === \"means\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n } else {\n // Expect shape and files\n if (!json[key].shape || !json[key].files) {\n return undefined;\n }\n // Besides 'quats' all other properties have mins and maxs\n if (key !== \"quats\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n }\n }\n // This is probably a PC SOGS file\n return json as PcSogsJson | PcSogsV2Json;\n } catch {\n return undefined;\n }\n}\n\nexport function tryPcSogsZip(\n input: ArrayBuffer | Uint8Array,\n): { name: string; json: PcSogsJson | PcSogsV2Json } | undefined {\n try {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let metaFilename: string | null = null;\n\n const unzipped = unzipSync(fileBytes, {\n filter: ({ name }) => {\n const filename = name.split(/[\\\\/]/).pop() as string;\n if (filename === \"meta.json\") {\n metaFilename = name;\n return true;\n }\n return false;\n },\n });\n if (!metaFilename) {\n return undefined;\n }\n\n // Check for PC SOGS V1 and V2 (aka SOG)\n const json = tryPcSogs(unzipped[metaFilename]);\n if (!json) {\n return undefined;\n }\n return { name: metaFilename, json };\n } catch {\n return undefined;\n }\n}\n\nexport class SplatData {\n numSplats: number;\n maxSplats: number;\n centers: Float32Array;\n scales: Float32Array;\n quaternions: Float32Array;\n opacities: Float32Array;\n colors: Float32Array;\n sh1?: Float32Array;\n sh2?: Float32Array;\n sh3?: Float32Array;\n\n constructor({ maxSplats = 1 }: { maxSplats?: number } = {}) {\n this.numSplats = 0;\n this.maxSplats = getTextureSize(maxSplats).maxSplats;\n this.centers = new Float32Array(this.maxSplats * 3);\n this.scales = new Float32Array(this.maxSplats * 3);\n this.quaternions = new Float32Array(this.maxSplats * 4);\n this.opacities = new Float32Array(this.maxSplats);\n this.colors = new Float32Array(this.maxSplats * 3);\n }\n\n pushSplat(): number {\n const index = this.numSplats;\n this.ensureIndex(index);\n this.numSplats += 1;\n return index;\n }\n\n unpushSplat(index: number) {\n if (index === this.numSplats - 1) {\n this.numSplats -= 1;\n } else {\n throw new Error(\"Cannot unpush splat from non-last position\");\n }\n }\n\n ensureCapacity(numSplats: number) {\n if (numSplats > this.maxSplats) {\n const targetSplats = Math.max(numSplats, this.maxSplats * 2);\n const newCenters = new Float32Array(targetSplats * 3);\n const newScales = new Float32Array(targetSplats * 3);\n const newQuaternions = new Float32Array(targetSplats * 4);\n const newOpacities = new Float32Array(targetSplats);\n const newColors = new Float32Array(targetSplats * 3);\n newCenters.set(this.centers);\n newScales.set(this.scales);\n newQuaternions.set(this.quaternions);\n newOpacities.set(this.opacities);\n newColors.set(this.colors);\n this.centers = newCenters;\n this.scales = newScales;\n this.quaternions = newQuaternions;\n this.opacities = newOpacities;\n this.colors = newColors;\n\n if (this.sh1) {\n const newSh1 = new Float32Array(targetSplats * 9);\n newSh1.set(this.sh1);\n this.sh1 = newSh1;\n }\n if (this.sh2) {\n const newSh2 = new Float32Array(targetSplats * 15);\n newSh2.set(this.sh2);\n this.sh2 = newSh2;\n }\n if (this.sh3) {\n const newSh3 = new Float32Array(targetSplats * 21);\n newSh3.set(this.sh3);\n this.sh3 = newSh3;\n }\n\n this.maxSplats = targetSplats;\n }\n }\n\n ensureIndex(index: number) {\n this.ensureCapacity(index + 1);\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n this.centers[index * 3] = x;\n this.centers[index * 3 + 1] = y;\n this.centers[index * 3 + 2] = z;\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n this.scales[index * 3] = scaleX;\n this.scales[index * 3 + 1] = scaleY;\n this.scales[index * 3 + 2] = scaleZ;\n }\n\n setQuaternion(index: number, x: number, y: number, z: number, w: number) {\n this.quaternions[index * 4] = x;\n this.quaternions[index * 4 + 1] = y;\n this.quaternions[index * 4 + 2] = z;\n this.quaternions[index * 4 + 3] = w;\n }\n\n setOpacity(index: number, opacity: number) {\n this.opacities[index] = opacity;\n }\n\n setColor(index: number, r: number, g: number, b: number) {\n this.colors[index * 3] = r;\n this.colors[index * 3 + 1] = g;\n this.colors[index * 3 + 2] = b;\n }\n\n setSh1(index: number, sh1: Float32Array) {\n if (!this.sh1) {\n this.sh1 = new Float32Array(this.maxSplats * 9);\n }\n for (let j = 0; j < 9; ++j) {\n this.sh1[index * 9 + j] = sh1[j];\n }\n }\n\n setSh2(index: number, sh2: Float32Array) {\n if (!this.sh2) {\n this.sh2 = new Float32Array(this.maxSplats * 15);\n }\n for (let j = 0; j < 15; ++j) {\n this.sh2[index * 15 + j] = sh2[j];\n }\n }\n\n setSh3(index: number, sh3: Float32Array) {\n if (!this.sh3) {\n this.sh3 = new Float32Array(this.maxSplats * 21);\n }\n for (let j = 0; j < 21; ++j) {\n this.sh3[index * 21 + j] = sh3[j];\n }\n }\n}\n\nexport type FileInput = {\n fileBytes: Uint8Array;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n transform?: { translate?: number[]; quaternion?: number[]; scale?: number };\n};\n\nexport type TranscodeSpzInput = {\n inputs: FileInput[];\n maxSh?: number;\n clipXyz?: { min: number[]; max: number[] };\n fractionalBits?: number;\n opacityThreshold?: number;\n};\n","import * as THREE from \"three\";\nimport type { RgbaArray } from \"./RgbaArray\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { SPLAT_TEX_WIDTH, type SplatFileType } from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n type Gsplat,\n TExtSplats,\n add,\n combineGsplat,\n defineExtSplats,\n normalize,\n readExtSplat,\n splatTexCoord,\n splitGsplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { decodeExtSplat, encodeExtSplat, getTextureSize } from \"./utils\";\n\nexport type ExtSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided pair of uint32 arrays, where blocks of 4 uint32s in each,\n // encode an \"extended packed\" Gsplat. (default: undefined)\n extArrays?: [Uint32Array, Uint32Array];\n // Override number of splats in packed arrays to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: ExtSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the ExtSplats\n lodSplats?: ExtSplats;\n};\n\nexport class ExtSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record = {};\n maxSh = 3;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: ExtSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n textures: [THREE.DataArrayTexture, THREE.DataArrayTexture];\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoNumSh: DynoInt<\"numSh\">;\n\n constructor(options: ExtSplatsOptions = {}) {\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n this.textures = [ExtSplats.emptyTexture, ExtSplats.emptyTexture];\n\n this.extra = {};\n this.dyno = new DynoExtSplats({ extSplats: this });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: ExtSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: ExtSplatsOptions) {\n this.extra = options.extra ?? {};\n this.lodSplats = options.lodSplats;\n\n if (options.extArrays) {\n this.extArrays = options.extArrays;\n this.maxSplats = Math.floor(\n Math.min(this.extArrays[0].length / 4, this.extArrays[1].length / 4),\n );\n this.numSplats = options.numSplats ?? this.maxSplats;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n this.updateTextures();\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n }\n }\n\n async asyncInitialize(options: ExtSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n extSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n this.textures[0].dispose();\n this.textures[0].source.data = null;\n this.textures[0] = ExtSplats.emptyTexture;\n }\n if (this.textures[1] !== ExtSplats.emptyTexture) {\n this.textures[1].dispose();\n this.textures[1].source.data = null;\n this.textures[1] = ExtSplats.emptyTexture;\n }\n\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"ExtSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1\n ? 0\n : !this.extra.sh2\n ? 1\n : !this.extra.sh3a || !this.extra.sh3b\n ? 2\n : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readExtSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB } =\n this.ensureShTextures();\n let { rgb } = evaluateExtSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 4,\n );\n if (sh1.length < maxSplats * 4) {\n const newSh1 = new Uint32Array(maxSplats * 4);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n const texture = newUint32ArrayTexture(\n sh1,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = newUint32ArrayTexture(\n sh2,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3a || !this.extra.sh3b) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3TextureA = this.extra.sh3TextureA as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureA) {\n let sh3a = this.extra.sh3a as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3a.length / 4,\n );\n if (sh3a.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3a);\n this.extra.sh3a = newSh3;\n sh3a = newSh3;\n }\n\n const texture = newUint32ArrayTexture(\n sh3a,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureA = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3TextureA = sh3TextureA;\n }\n\n let sh3TextureB = this.extra.sh3TextureB as\n | DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureB) {\n let sh3b = this.extra.sh3b as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3b.length / 4,\n );\n if (sh3b.length < maxSplats * 4) {\n const newSh3b = new Uint32Array(maxSplats * 4);\n newSh3b.set(sh3b);\n this.extra.sh3b = newSh3b;\n sh3b = newSh3b;\n }\n\n const texture = newUint32ArrayTexture(\n sh3b,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureB = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3b\",\n });\n this.extra.sh3TextureB = sh3TextureB;\n }\n\n return { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB };\n }\n\n // Ensures that this.extArrays can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): [Uint32Array, Uint32Array] {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.extArrays[0] ? 0 : this.extArrays[0].length / 4;\n\n if (!this.extArrays[0] || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray0 = new Uint32Array(this.maxSplats * 4);\n const newArray1 = new Uint32Array(this.maxSplats * 4);\n if (this.extArrays[0]) {\n // Copy over existing data\n newArray0.set(this.extArrays[0]);\n newArray1.set(this.extArrays[1]);\n }\n this.extArrays[0] = newArray0;\n this.extArrays[1] = newArray1;\n }\n return this.extArrays;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return decodeExtSplat(this.extArrays, index);\n }\n\n // Set all ExtSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(index + 1);\n encodeExtSplat(\n extArrays,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(this.numSplats + 1);\n encodeExtSplat(\n extArrays,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = decodeExtSplat(this.extArrays, i);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Check if source texture needs to be created/updated\n private updateTextures() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n const { width, height, depth } = this.textures[0].image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.textures[0].dispose();\n this.textures[0] = ExtSplats.emptyTexture;\n this.textures[1].dispose();\n this.textures[1] = ExtSplats.emptyTexture;\n }\n }\n if (this.textures[0] === ExtSplats.emptyTexture) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.textures[0] = newUint32ArrayTexture(\n this.extArrays[0],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n this.textures[1] = newUint32ArrayTexture(\n this.extArrays[1],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n } else if (\n this.extArrays[0].buffer !== this.textures[0].image.data.buffer\n ) {\n this.textures[0].image.data = new Uint8Array(this.extArrays[0].buffer);\n this.textures[1].image.data = new Uint8Array(this.extArrays[1].buffer);\n // Indicate to Three.js that the source textures needs to be uploaded to the GPU\n this.textures[0].needsUpdate = true;\n this.textures[1].needsUpdate = true;\n }\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new ExtSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static emptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTexture = newUint32ArrayTexture(\n null,\n 1,\n 1,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const extArrays = [this.extArrays[0].slice(), this.extArrays[1].slice()];\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodExtSplats\" : \"tinyLodExtSplats\",\n {\n numSplats: this.numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n },\n )) as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n };\n });\n\n const lodSplats = new ExtSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\nexport const dynoExtSplats = (extSplats?: ExtSplats) =>\n new DynoExtSplats({ extSplats });\n\nexport class DynoExtSplats extends DynoUniform<\n typeof TExtSplats,\n \"extSplats\",\n {\n textureArray1: THREE.DataArrayTexture;\n textureArray2: THREE.DataArrayTexture;\n numSplats: number;\n }\n> {\n extSplats?: ExtSplats;\n\n constructor({ extSplats }: { extSplats?: ExtSplats } = {}) {\n super({\n key: \"extSplats\",\n type: TExtSplats,\n globals: () => [defineExtSplats],\n value: {\n textureArray1: ExtSplats.emptyTexture,\n textureArray2: ExtSplats.emptyTexture,\n numSplats: 0,\n },\n update: (value) => {\n value.textureArray1 =\n this.extSplats?.textures[0] ?? ExtSplats.emptyTexture;\n value.textureArray2 =\n this.extSplats?.textures[1] ?? ExtSplats.emptyTexture;\n value.numSplats = this.extSplats?.numSplats ?? 0;\n return value;\n },\n });\n this.extSplats = extSplats;\n }\n}\n\nexport const defineEvaluateExtSH1 = unindent(`\n vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packedData.x);\n vec3 sh1_1 = decodeExtRgb(packedData.y);\n vec3 sh1_2 = decodeExtRgb(packedData.z);\n\n return sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n }\n`);\n\nexport const defineEvaluateExtSH12 = unindent(`\n vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packed1.x);\n vec3 sh1_1 = decodeExtRgb(packed1.y);\n vec3 sh1_2 = decodeExtRgb(packed1.z);\n\n vec3 sh2_0 = decodeExtRgb(packed1.w);\n vec3 sh2_1 = decodeExtRgb(packed2.x);\n vec3 sh2_2 = decodeExtRgb(packed2.y);\n vec3 sh2_3 = decodeExtRgb(packed2.z);\n vec3 sh2_4 = decodeExtRgb(packed2.w);\n\n vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n\n vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n\n return sh1Rgb + sh2Rgb;\n }\n`);\n\nexport const defineEvaluateExtSH3 = unindent(`\n vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) {\n vec3 sh3_0 = decodeExtRgb(packedA.x);\n vec3 sh3_1 = decodeExtRgb(packedA.y);\n vec3 sh3_2 = decodeExtRgb(packedA.z);\n vec3 sh3_3 = decodeExtRgb(packedA.w);\n vec3 sh3_4 = decodeExtRgb(packedB.x);\n vec3 sh3_5 = decodeExtRgb(packedB.y);\n vec3 sh3_6 = decodeExtRgb(packedB.z);\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n }\n`);\n\nexport function evaluateExtSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3TextureA: \"usampler2DArray\",\n sh3TextureB: \"usampler2DArray\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n },\n globals: () => [\n defineEvaluateExtSH1,\n defineEvaluateExtSH12,\n defineEvaluateExtSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n if (!inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n } else {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} == 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n } else if (${inputs.numSh} >= 2) {\n rgb = evaluateExtSH12(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n `),\n );\n\n if (inputs.sh3TextureA && inputs.sh3TextureB) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n rgb += evaluateExtSH3(texelFetch(${inputs.sh3TextureA}, ${inputs.coord}, 0), texelFetch(${inputs.sh3TextureB}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n }\n\n lines.push(\"}\");\n }\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n\nfunction newUint32ArrayTexture(\n data: Uint32Array | null,\n width: number,\n height: number,\n depth: number,\n format: THREE.AnyPixelFormat,\n type: THREE.TextureDataType,\n internalFormat: THREE.PixelFormatGPU,\n): THREE.DataArrayTexture {\n const texture = new THREE.DataArrayTexture(\n data as Uint32Array,\n width,\n height,\n depth,\n );\n texture.format = format;\n texture.type = type;\n texture.internalFormat = internalFormat;\n texture.needsUpdate = true;\n return texture;\n}\n","import * as THREE from \"three\";\n\nimport { DynoPackedSplats, type PackedSplats } from \"./PackedSplats\";\nimport { Readback, type Rgba8Readback } from \"./Readback\";\nimport { SPLAT_TEX_WIDTH } from \"./defines\";\nimport {\n Dyno,\n type DynoBlock,\n DynoInt,\n DynoUniform,\n type DynoVal,\n add,\n dynoBlock,\n readPackedSplatRange,\n splitGsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize } from \"./utils\";\n\n// An RgbaArray is a collection of ordered RGBA8 values, which can be used as a dyno\n// data source, for example for recoloring Gsplats via SplatMesh.splatRgba.\n// It can be instantiated from a Uint8Array of RGBA8 values, or it can be\n// generated using a Rgba8Readback dyno program.\n\nexport type RgbaArrayOptions = {\n // Reserve space for at least this many RGBA values.\n capacity?: number;\n // Use the provided array of RGBA8 values as the source.\n array?: Uint8Array;\n // The number of actual RGBA8 values in the array.\n count?: number;\n};\n\nexport class RgbaArray {\n capacity = 0;\n count = 0;\n array: Uint8Array | null = null;\n\n readback: Readback | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source array is updated to have it upload to GPU\n needsUpdate = true;\n\n // Use this as a TRgbaArray in a dyno graph\n dyno: DynoUniform;\n\n constructor(options: RgbaArrayOptions = {}) {\n this.dyno = new DynoUniform({\n key: \"rgbaArray\",\n type: TRgbaArray,\n globals: () => [defineRgbaArray],\n value: {\n texture: RgbaArray.getEmpty(),\n count: 0,\n },\n update: (value) => {\n value.texture = this.getTexture();\n value.count = this.count;\n return value;\n },\n });\n\n if (options.array) {\n // Initialize with given array\n this.array = options.array;\n const splatCount = Math.floor(this.array.length / 4);\n this.capacity = Math.ceil(splatCount / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (this.capacity > splatCount) {\n this.array = new Uint8Array(this.capacity * 4);\n this.array.set(options.array);\n }\n this.count = Math.min(\n splatCount,\n options.count ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.capacity = options.capacity ?? 0;\n this.count = 0;\n }\n }\n\n // Free up resources\n dispose() {\n if (this.readback) {\n this.readback.dispose();\n this.readback = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source = null;\n }\n }\n\n // Ensure that our array is large enough to hold capacity RGBA8 values.\n ensureCapacity(capacity: number): Uint8Array {\n if (!this.array || capacity > (this.array?.length ?? 0) / 4) {\n this.capacity = getTextureSize(capacity).maxSplats;\n const newArray = new Uint8Array(this.capacity * 4);\n if (this.array) {\n // Copy over existing data\n newArray.set(this.array);\n }\n this.array = newArray;\n }\n return this.array;\n }\n\n // Get the THREE.DataArrayTexture from either the readback or the source.\n getTexture(): THREE.DataArrayTexture {\n let texture = this.readback?.getTexture();\n if (this.source || this.array) {\n texture = this.maybeUpdateSource();\n }\n return texture ?? RgbaArray.getEmpty();\n }\n\n // Create or get a THREE.DataArrayTexture from the data array.\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.array) {\n throw new Error(\"No array\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.capacity !== width * height * depth) {\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n const { width, height, depth } = getTextureSize(this.capacity);\n this.source = new THREE.DataArrayTexture(\n this.array as Uint8Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAFormat;\n this.source.type = THREE.UnsignedByteType;\n this.source.internalFormat = \"RGBA8\";\n this.source.needsUpdate = true;\n } else if (this.array.buffer !== this.source.image.data.buffer) {\n this.source.image.data = new Uint8Array(this.array.buffer);\n }\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n // Generate the RGBA8 values from a Rgba8Readback dyno program.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer: THREE.WebGLRenderer }) {\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n this.readback.render({ reader, count, renderer });\n this.capacity = this.readback.capacity;\n this.count = this.readback.count;\n }\n\n // Extract the RGBA8 values from a PackedSplats collection.\n fromPackedSplats({\n packedSplats,\n base,\n count,\n renderer,\n }: {\n packedSplats: PackedSplats;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n const { dynoSplats, dynoBase, dynoCount, reader } = RgbaArray.makeDynos();\n dynoSplats.packedSplats = packedSplats;\n dynoBase.value = base;\n dynoCount.value = count;\n this.render({ reader, count, renderer });\n return this;\n }\n\n // Read back the RGBA8 values from the readback buffer.\n async read(): Promise {\n if (!this.readback) {\n throw new Error(\"No readback\");\n }\n if (!this.array || this.array.length < this.count * 4) {\n this.array = new Uint8Array(this.capacity * 4);\n }\n const result = await this.readback.readback({ readback: this.array });\n return result.subarray(0, this.count * 4);\n }\n\n async getArray(): Promise {\n if (this.readback) {\n return await this.read();\n }\n if (this.array) {\n return this.array;\n }\n throw new Error(\"No array\");\n }\n\n private static emptySource: THREE.DataArrayTexture | null = null;\n\n // Can be used where you need an uninitialized THREE.DataArrayTexture like\n // a uniform you will update with the result of this.getTexture() later.\n static getEmpty(): THREE.DataArrayTexture {\n if (!RgbaArray.emptySource) {\n const emptyArray = new Uint8Array(1 * 4);\n RgbaArray.emptySource = new THREE.DataArrayTexture(emptyArray, 1, 1, 1);\n RgbaArray.emptySource.format = THREE.RGBAFormat;\n RgbaArray.emptySource.type = THREE.UnsignedByteType;\n RgbaArray.emptySource.internalFormat = \"RGBA8\";\n RgbaArray.emptySource.needsUpdate = true;\n }\n return RgbaArray.emptySource;\n }\n\n private static dynos: {\n dynoSplats: DynoPackedSplats;\n dynoBase: DynoInt;\n dynoCount: DynoInt;\n reader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n } | null = null;\n\n // Create a dyno program that can extract RGBA8 values from a PackedSplats\n private static makeDynos() {\n if (!RgbaArray.dynos) {\n const dynoSplats = new DynoPackedSplats();\n const dynoBase = new DynoInt({ value: 0 });\n const dynoCount = new DynoInt({ value: 0 });\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n index = add(index, dynoBase);\n const gsplat = readPackedSplatRange(\n dynoSplats,\n index,\n dynoBase,\n dynoCount,\n );\n return { rgba8: splitGsplat(gsplat).outputs.rgba };\n },\n );\n RgbaArray.dynos = { dynoSplats, dynoBase, dynoCount, reader };\n }\n return RgbaArray.dynos;\n }\n}\n\n// Dyno types and definitions\n\nexport const TRgbaArray = { type: \"RgbaArray\" } as { type: \"RgbaArray\" };\n\nexport const defineRgbaArray = unindent(`\n struct RgbaArray {\n sampler2DArray texture;\n int count;\n };\n`);\n\nexport function readRgbaArray(\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal<\"vec4\"> {\n const dyno = new Dyno<\n { rgba: typeof TRgbaArray; index: \"int\" },\n { rgba: \"vec4\" }\n >({\n inTypes: { rgba: TRgbaArray, index: \"int\" },\n outTypes: { rgba: \"vec4\" },\n inputs: { rgba, index },\n globals: () => [defineRgbaArray],\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n if ((${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.rgba} = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n } else {\n ${outputs.rgba} = vec4(0.0, 0.0, 0.0, 0.0);\n }\n `),\n });\n return dyno.outputs.rgba;\n}\n","import * as THREE from \"three\";\n\nimport { decode_rad_header } from \"spark-rs\";\nimport { LN_SCALE_MAX, LN_SCALE_MIN, dyno } from \".\";\nimport { evaluateExtSH } from \"./ExtSplats\";\nimport { evaluatePackedSH } from \"./PackedSplats\";\nimport { getSplatFileType, getSplatFileTypeFromPath } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n type ExtResult,\n type PackedResult,\n type RadMeta,\n type SplatEncoding,\n SplatFileType,\n} from \"./defines\";\nimport { type DynoUsampler2DArray, pagedSplatTexCoord } from \"./dyno\";\nimport {\n decodeExtSplat,\n getTextureSize,\n unpackSplat,\n uploadU32DataTextureRows,\n} from \"./utils\";\nimport * as wasm from \"./wasm\";\n\nexport interface PagedSplatsOptions {\n pager?: SplatPager;\n rootUrl?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n maxSh?: number;\n}\n\nconst PAGE_WIDTH = 256;\nconst PAGE_HEIGHT = 256;\nconst PAGE_SPLATS = PAGE_WIDTH * PAGE_HEIGHT; // 65536\n\nexport class PagedSplats implements SplatSource {\n pager?: SplatPager;\n rootUrl: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n\n numSh: number;\n maxSh: number;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array | [Uint32Array, Uint32Array];\n\n numSplats: number;\n splatEncoding?: SplatEncoding;\n radMetaPromise?: Promise<{ meta: RadMeta; chunksStart: number }>;\n\n dynoNumSplats: dyno.DynoInt<\"numSplats\">;\n dynoIndices: dyno.DynoUsampler2D<\"indices\", THREE.DataTexture>;\n rgbMinMaxLnScaleMinMax: dyno.DynoVec4<\n THREE.Vector4,\n \"rgbMinMaxLnScaleMinMax\"\n >;\n lodOpacity: dyno.DynoBool<\"lodOpacity\">;\n dynoNumSh: dyno.DynoInt<\"numSh\">;\n shMax: dyno.DynoVec3;\n\n constructor(options: PagedSplatsOptions) {\n this.pager = options.pager;\n this.rootUrl = options.rootUrl ?? \"\";\n this.requestHeader = options.requestHeader;\n this.withCredentials = options.withCredentials;\n this.numSh = 0;\n this.maxSh = options.pager?.maxSh ?? 3;\n\n this.numSplats = 0;\n\n this.dynoNumSplats = new dyno.DynoInt({ value: 0 });\n this.dynoIndices = new dyno.DynoUsampler2D({\n value: SplatPager.emptyIndicesTexture,\n });\n\n this.rgbMinMaxLnScaleMinMax = new dyno.DynoVec4({\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n });\n this.lodOpacity = new dyno.DynoBool({\n value: false,\n });\n\n this.dynoNumSh = new dyno.DynoInt({ value: 0 });\n this.shMax = new dyno.DynoVec3({ value: new THREE.Vector3() });\n\n this.fileBytes = options.fileBytes;\n this.fileType = options.fileType;\n if (!this.fileType && this.fileBytes) {\n this.fileType = getSplatFileType(this.fileBytes);\n }\n if (!this.fileType && this.rootUrl) {\n this.fileType = getSplatFileTypeFromPath(this.rootUrl);\n }\n if (!this.fileType) {\n throw new Error(\"Unable to determine file type\");\n }\n if (this.fileType === SplatFileType.RAD) {\n this.radMetaPromise = this.getRadMeta();\n }\n }\n\n dispose() {\n if (this.dynoIndices.value !== SplatPager.emptyIndicesTexture) {\n this.dynoIndices.value.dispose();\n this.dynoIndices.value = SplatPager.emptyIndicesTexture;\n }\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n getRadMeta(): Promise<{ meta: RadMeta; chunksStart: number }> {\n if (this.radMetaPromise) {\n return this.radMetaPromise;\n }\n\n this.radMetaPromise = (async () => {\n await wasm.initialization;\n\n if (this.fileBytes) {\n // Shouldn't be more than 1 MB, so don't send more data than that.\n const metaStart = decode_rad_header(this.fileBytes.slice(0, 1048576));\n if (metaStart) {\n return metaStart;\n }\n throw new Error(\"Failed to decode RAD header\");\n }\n if (!this.rootUrl) {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n // We don't know how big the header will be. Most likely 64KB will be enough,\n // but try larger blocks in backoff if it wasn't enough.\n for (const tryBytes of [65536, 256 * 1024, 1024 * 1024]) {\n const bytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset: 0,\n bytes: tryBytes,\n });\n const metaStart = decode_rad_header(bytes);\n if (metaStart) {\n return metaStart;\n }\n }\n throw new Error(\"Failed to decode RAD header\");\n })().then((metaStart) => {\n // console.log(\"RAD meta: \", metaStart.meta);\n return metaStart;\n });\n\n this.radMetaPromise.catch((error) => {\n console.error(error);\n // Allow it to be tried again\n // this.radMetaPromise = undefined;\n });\n\n return this.radMetaPromise;\n }\n\n chunkUrl(chunk: number): string {\n return this.rootUrl.replace(/-lod-0\\./, `-lod-${chunk}.`);\n }\n\n async fetchDecodeChunk(chunk: number) {\n let decodeBytes = undefined;\n\n if (this.fileType === SplatFileType.RAD) {\n const { meta, chunksStart } = await this.getRadMeta();\n if (chunk < 0 || chunk >= meta.chunks.length) {\n throw new Error(\n `Chunk index out of range: ${chunk} (max: ${meta.chunks.length - 1})`,\n );\n }\n let { offset, bytes, filename } = meta.chunks[chunk];\n\n if (filename) {\n if (this.fileBytes) {\n throw new Error(\"Chunked RAD file not supported with fileBytes\");\n }\n const resolvedRoot = new URL(\n this.rootUrl,\n window.location.href,\n ).toString();\n const chunkUrl = new URL(filename, resolvedRoot).toString();\n decodeBytes = await fetchRange({\n url: chunkUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n });\n } else {\n offset += chunksStart;\n // console.log(`Fetching chunk ${chunk} at offset ${offset} with bytes ${bytes}`);\n if (this.fileBytes) {\n if (offset < 0 || offset + bytes > this.fileBytes.length) {\n throw new Error(\n `Invalid chunk offset or bytes: ${offset} + ${bytes} > ${this.fileBytes.length}`,\n );\n }\n decodeBytes = this.fileBytes.slice(offset, offset + bytes);\n } else if (this.rootUrl) {\n decodeBytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset,\n bytes,\n });\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n }\n } else if (this.fileBytes) {\n // Fall through\n } else if (this.rootUrl) {\n const url = this.chunkUrl(chunk);\n const request = new Request(url, {\n headers: this.requestHeader\n ? new Headers(this.requestHeader)\n : undefined,\n credentials: this.withCredentials ? \"include\" : \"same-origin\",\n });\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n decodeBytes = new Uint8Array(await response.arrayBuffer());\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n return await workerPool.withWorker(async (worker) => {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n if (!this.pager.extSplats) {\n const result = (await worker.call(\"loadPackedSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: this.sh3Codes?.slice(),\n })) as { lodSplats: PackedResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = lodSplats.splatEncoding;\n\n this.numSh = lodSplats.extra.sh3\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n\n this.rgbMinMaxLnScaleMinMax.value.set(\n this.splatEncoding.rgbMin ?? 0.0,\n this.splatEncoding.rgbMax ?? 1.0,\n this.splatEncoding.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding.lnScaleMax ?? LN_SCALE_MAX,\n );\n\n this.lodOpacity.value = this.splatEncoding.lodOpacity ?? false;\n\n this.shMax.value.set(\n this.splatEncoding.sh1Max ?? 1.0,\n this.splatEncoding.sh2Max ?? 1.0,\n this.splatEncoding.sh3Max ?? 1.0,\n );\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n }\n\n const sh3Codes = this.sh3Codes as [Uint32Array, Uint32Array] | undefined;\n const result = (await worker.call(\"loadExtSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: sh3Codes\n ? [sh3Codes[0].slice(), sh3Codes[1].slice()]\n : undefined,\n })) as { lodSplats: ExtResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = DEFAULT_SPLAT_ENCODING;\n this.numSh =\n lodSplats.extra.sh3a && lodSplats.extra.sh3b\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n });\n }\n\n update(numSplats: number, indices: Uint32Array) {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const renderer = this.pager.renderer;\n this.numSplats = numSplats;\n this.dynoNumSplats.value = this.numSplats;\n const rows = Math.ceil(numSplats / 16384);\n\n let indicesTexture =\n this.dynoIndices.value === SplatPager.emptyIndicesTexture\n ? undefined\n : this.dynoIndices.value;\n if (indicesTexture && rows > indicesTexture.image.height) {\n indicesTexture.dispose();\n indicesTexture = undefined;\n }\n\n if (!indicesTexture) {\n indicesTexture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n indicesTexture.internalFormat = \"RGBA32UI\";\n indicesTexture.needsUpdate = true;\n renderer.initTexture(indicesTexture);\n this.dynoIndices.value = indicesTexture;\n } else {\n const textureIndices = indicesTexture.image.data as Uint32Array;\n textureIndices.set(indices.subarray(0, numSplats));\n\n uploadU32DataTextureRows(\n renderer,\n indicesTexture,\n 4096,\n rows,\n textureIndices,\n );\n }\n }\n\n prepareFetchSplat() {}\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n if (!this.pager) {\n return false;\n }\n return Math.min(this.numSh, this.pager.maxSh) > 0;\n }\n\n getNumSh(): number {\n return this.numSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: {\n index: dyno.DynoVal<\"int\">;\n viewOrigin?: dyno.DynoVal<\"vec3\">;\n }): dyno.DynoVal {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const splatIndex = this.pager.readIndex.apply({\n index,\n numSplats: this.dynoNumSplats,\n indices: this.dynoIndices,\n }).index;\n\n if (!this.pager.extSplats) {\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(\n this.numSh,\n this.maxSh,\n this.pager.maxSh,\n );\n return this.pager.readSplatDir.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n viewOrigin,\n numSh: this.dynoNumSh,\n shMax: this.shMax,\n }).gsplat;\n }\n return this.pager.readSplat.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n }).gsplat;\n }\n\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(this.numSh, this.maxSh, this.pager.maxSh);\n return this.pager.readSplatExtDir.apply({\n index: splatIndex,\n viewOrigin,\n numSh: this.dynoNumSh,\n }).gsplat;\n }\n return this.pager.readSplatExt.apply({ index: splatIndex }).gsplat;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.pager || !this.numSplats) {\n return;\n }\n const extSplats = this.pager.extSplats;\n const indices = this.dynoIndices.value.image.data as Uint32Array;\n const packedSplatArray = this.pager.packedTexture.value.image\n .data as Uint32Array;\n const extPackedSplatArray = this.pager.extTexture.value.image\n .data as Uint32Array;\n const extArrays: [Uint32Array, Uint32Array] = [\n packedSplatArray,\n extPackedSplatArray,\n ];\n\n for (let i = 0; i < this.numSplats; ++i) {\n const splatIndex = indices[i];\n const unpacked = extSplats\n ? decodeExtSplat(extArrays, splatIndex)\n : unpackSplat(packedSplatArray, splatIndex, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n}\n\nexport interface SplatPagerOptions {\n /**\n * THREE.WebGLRenderer instance to upload texture data\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Whether to use extended Gsplat encoding for paged splats.\n * @default false\n */\n extSplats?: boolean;\n /**\n * Maximum size of splat page pool\n * @default 65536 * 256 = 16777216\n */\n maxSplats?: number;\n /**\n * Maximum number of spherical harmonics to keep\n * @default 3\n */\n maxSh?: number;\n /**\n * Automatically drive page fetching, or poll via drive()\n * @default true\n */\n autoDrive?: boolean;\n /**\n * Number of parallel chunk fetchers\n * @default 3\n */\n numFetchers?: number;\n}\n\ninterface PageUpload {\n page: number;\n numSplats: number;\n packedArray: Uint32Array;\n extArray?: Uint32Array;\n shArrays: Array;\n}\n\nexport class SplatPager {\n readonly renderer: THREE.WebGLRenderer;\n\n readonly extSplats: boolean;\n readonly maxPages: number;\n readonly maxSplats: number;\n readonly pageSplats: number;\n\n readonly maxSh: number;\n curSh: number;\n\n autoDrive: boolean;\n numFetchers: number;\n fetchPause = 0;\n\n splatsChunkToPage: Map<\n PagedSplats,\n ({ page: number; lru: number } | undefined)[]\n > = new Map();\n pageToSplatsChunk: (\n | { splats: PagedSplats; chunk: number; time: number }\n | undefined\n )[] = [];\n pageFreelist: number[];\n pageLru: Set<{ page: number; lru: number }>;\n freeablePages: number[];\n newUploads: PageUpload[];\n readyUploads: PageUpload[];\n lodTreeUpdates: {\n splats: PagedSplats;\n page: number;\n chunk: number;\n numSplats: number;\n lodTree?: Uint32Array;\n }[];\n\n fetchers: { splats: PagedSplats; chunk: number; promise: Promise }[];\n fetched: {\n splats: PagedSplats;\n chunk: number;\n data: PackedResult | ExtResult;\n }[];\n fetchPriority: { splats: PagedSplats; chunk: number }[];\n\n packedTexture: dyno.DynoUsampler2DArray<\n \"packedTexture\",\n THREE.DataArrayTexture\n >;\n extTexture: dyno.DynoUsampler2DArray<\"extTexture\", THREE.DataArrayTexture>;\n readonly shTextures: [\n dyno.DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>,\n dyno.DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>,\n dyno.DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>,\n dyno.DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>,\n ];\n\n readIndex: dyno.DynoBlock<\n { index: \"int\"; numSplats: \"int\"; indices: \"usampler2D\" },\n { index: \"int\" }\n >;\n readSplat: dyno.DynoBlock<\n { index: \"int\"; rgbMinMaxLnScaleMinMax: \"vec4\"; lodOpacity: \"bool\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExt: dyno.DynoBlock<\n { index: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatDir: dyno.DynoBlock<\n {\n index: \"int\";\n rgbMinMaxLnScaleMinMax: \"vec4\";\n lodOpacity: \"bool\";\n viewOrigin: \"vec3\";\n numSh: \"int\";\n shMax: \"vec3\";\n },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExtDir: dyno.DynoBlock<\n { index: \"int\"; viewOrigin: \"vec3\"; numSh: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n\n constructor(options: SplatPagerOptions) {\n this.renderer = options.renderer;\n this.extSplats = options.extSplats ?? false;\n\n this.pageSplats = PAGE_SPLATS;\n this.maxSplats = options.maxSplats ?? 16777216;\n this.maxPages = Math.ceil(this.maxSplats / PAGE_SPLATS);\n this.maxSplats = this.maxPages * PAGE_SPLATS;\n\n this.maxSh = options.maxSh ?? 3;\n this.curSh = 0;\n\n this.autoDrive = options.autoDrive ?? true;\n this.numFetchers = options.numFetchers ?? 3;\n\n this.splatsChunkToPage = new Map();\n this.pageToSplatsChunk = new Array(this.maxPages);\n this.pageFreelist = Array.from({ length: this.maxPages }, (_, i) => i);\n this.pageLru = new Set();\n this.freeablePages = [];\n this.newUploads = [];\n this.readyUploads = [];\n this.lodTreeUpdates = [];\n\n this.fetchers = [];\n this.fetched = [];\n this.fetchPriority = [];\n\n this.packedTexture = new dyno.DynoUsampler2DArray({\n value: this.newUint32ArrayTexture(4),\n });\n this.extTexture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? this.newUint32ArrayTexture(4)\n : SplatPager.emptyExtTexture,\n });\n\n const emptyShTextures = this.extSplats\n ? SplatPager.emptyExtShTextures\n : SplatPager.emptyShTextures;\n this.shTextures = emptyShTextures.map(\n (texture) =>\n new dyno.DynoUsampler2DArray({\n value: texture,\n }),\n ) as typeof this.shTextures;\n\n this.readIndex = dyno.dynoBlock(\n { index: \"int\", numSplats: \"int\", indices: \"usampler2D\" },\n { index: \"int\" },\n ({ index, numSplats, indices }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n numSplats: \"int\",\n indices: \"usampler2D\",\n },\n outTypes: { index: \"int\" },\n inputs: {\n index,\n numSplats,\n indices,\n },\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n if (${inputs.index} >= ${inputs.numSplats}) {\n return;\n }\n\n ivec2 indexCoord = ivec2((${inputs.index} >> 2) & 4095, ${inputs.index} >> 14);\n uint index = texelFetch(${inputs.indices}, indexCoord, 0)[${inputs.index} & 3];\n ${outputs.index} = int(index);\n `),\n }).outputs;\n },\n );\n\n this.readSplat = dyno.dynoBlock(\n { index: \"int\", rgbMinMaxLnScaleMinMax: \"vec4\", lodOpacity: \"bool\" },\n { gsplat: dyno.Gsplat },\n ({ index, rgbMinMaxLnScaleMinMax, lodOpacity }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n packedTexture: \"usampler2DArray\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n packedTexture: this.packedTexture,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = pagedSplatTexCoord(index);\n uvec4 packedData = texelFetch(${inputs.packedTexture}, splatCoord, 0);\n\n unpackSplatEncoding(packedData, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba, ${inputs.rgbMinMaxLnScaleMinMax});\n if ((${outputs.gsplat}.rgba.a == 0.0) || all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n \n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n if (${inputs.lodOpacity}) {\n ${outputs.gsplat}.rgba.a *= 2.0;\n }\n `),\n }).outputs;\n },\n );\n\n this.readSplatDir = dyno.dynoBlock(\n {\n index: \"int\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n shMax: \"vec3\",\n },\n { gsplat: dyno.Gsplat },\n ({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n viewOrigin,\n numSh,\n shMax,\n }) => {\n if (\n !index ||\n !rgbMinMaxLnScaleMinMax ||\n !lodOpacity ||\n !viewOrigin ||\n !numSh ||\n !shMax\n ) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplat.apply({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluatePackedSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.shTextures[0],\n sh2Texture: this.shTextures[1],\n sh3Texture: this.shTextures[2],\n shMax,\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n\n this.readSplatExt = dyno.dynoBlock(\n { index: \"int\" },\n { gsplat: dyno.Gsplat },\n ({ index }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n extTexture1: \"usampler2DArray\",\n extTexture2: \"usampler2DArray\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n extTexture1: this.packedTexture,\n extTexture2: this.extTexture,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16);\n uvec4 ext1 = texelFetch(${inputs.extTexture1}, splatCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if (alpha == 0.0) {\n return;\n }\n\n uvec4 ext2 = texelFetch(${inputs.extTexture2}, splatCoord, 0);\n unpackSplatExt(ext1, ext2, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba);\n if (all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n\n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n `),\n }).outputs;\n },\n );\n\n this.readSplatExtDir = dyno.dynoBlock(\n {\n index: \"int\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n },\n { gsplat: dyno.Gsplat },\n ({ index, viewOrigin, numSh }) => {\n if (!index || !viewOrigin || !numSh) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplatExt.apply({ index }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluateExtSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.shTextures[0],\n sh2Texture: this.shTextures[1],\n sh3TextureA: this.shTextures[2],\n sh3TextureB: this.shTextures[3],\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n }\n\n dispose() {\n this.autoDrive = false;\n this.numFetchers = 0;\n\n this.packedTexture.value.dispose();\n this.packedTexture.value.source.data = null;\n if (this.extTexture.value !== SplatPager.emptyExtTexture) {\n this.extTexture.value.dispose();\n this.extTexture.value.source.data = null;\n }\n\n const emptyShTextures = this.extSplats\n ? SplatPager.emptyExtShTextures\n : SplatPager.emptyShTextures;\n for (let i = 0; i < emptyShTextures.length; i++) {\n const texture = this.shTextures[i].value;\n if (texture !== emptyShTextures[i]) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n\n private ensureShTextures(numSh: number) {\n this.curSh = Math.max(this.curSh, numSh);\n\n const emptyShTextures = this.extSplats\n ? SplatPager.emptyExtShTextures\n : SplatPager.emptyShTextures;\n for (let i = 0; i < this.curSh; i++) {\n if (this.shTextures[i].value === emptyShTextures[i]) {\n const elementsPerSplat =\n this.shTextures[i].value === SplatPager.emptyUint32x2 ? 2 : 4;\n this.shTextures[i].value = this.newUint32ArrayTexture(elementsPerSplat);\n }\n }\n }\n\n private allocatePage(): number | undefined {\n return this.pageFreelist.shift();\n }\n\n getSplatsChunk(splats: PagedSplats, chunk: number) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n return undefined;\n }\n return chunks[chunk];\n }\n\n private insertSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n now: number,\n ) {\n if (!this.splatsChunkToPage.has(splats)) {\n this.splatsChunkToPage.set(splats, []);\n }\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n if (chunk >= chunks.length) {\n chunks.length = chunk + 1;\n }\n const pageLru = { page, lru: now };\n chunks[chunk] = pageLru;\n this.pageLru.add(pageLru);\n\n this.pageToSplatsChunk[page] = { splats, chunk, time: performance.now() };\n return this.pageToSplatsChunk[page];\n }\n\n private removeSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n ) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n\n const pageLru = chunks[chunk];\n if (!pageLru) {\n throw new Error(\n `pageLru not found for splats: ${splats}, chunk: ${chunk}, page: ${page}`,\n );\n }\n this.pageLru.delete(pageLru);\n\n chunks[chunk] = undefined;\n\n while (chunks.length > 0 && chunks[chunks.length - 1] === undefined) {\n chunks.pop();\n }\n if (chunks.length === 0) {\n this.splatsChunkToPage.delete(splats);\n }\n\n this.pageToSplatsChunk[page] = undefined;\n while (\n this.pageToSplatsChunk.length > 0 &&\n this.pageToSplatsChunk[this.pageToSplatsChunk.length - 1] === undefined\n ) {\n this.pageToSplatsChunk.pop();\n }\n }\n\n removeSplats(splats: PagedSplats) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n return;\n }\n\n const freedPages = new Set();\n\n while (chunks.length > 0) {\n const chunk = chunks.pop();\n if (chunk) {\n const { page } = chunk;\n this.pageToSplatsChunk[page] = undefined;\n freedPages.add(page);\n this.pageFreelist.push(page);\n this.pageLru.delete(chunk);\n }\n }\n this.splatsChunkToPage.delete(splats);\n this.freeablePages = this.freeablePages.filter(\n (page) => !freedPages.has(page),\n );\n }\n\n private uploadPage(\n page: number,\n packedArray: Uint32Array,\n shArrays: Array,\n extArray?: Uint32Array,\n ) {\n const pageBase = page * PAGE_SPLATS;\n\n uploadTextureLayer(this.packedTexture, page, pageBase * 4, packedArray);\n\n if (extArray) {\n uploadTextureLayer(this.extTexture, page, pageBase * 4, extArray);\n }\n\n // In case of extSplats there can be 4 shArrays for 3 sh degrees\n const numSh = Math.min(shArrays.length, 3);\n this.ensureShTextures(numSh);\n\n for (let i = 0; i < shArrays.length; i++) {\n const array = shArrays[i];\n const elementsPerSplat =\n this.shTextures[i].value.format === THREE.RGIntegerFormat ? 2 : 4;\n uploadTextureLayer(\n this.shTextures[i],\n page,\n pageBase * elementsPerSplat,\n array,\n );\n }\n }\n\n private newUint32ArrayTexture(\n elementsPerSplat: 2 | 4,\n ): THREE.DataArrayTexture {\n const data = new Uint32Array(\n this.maxPages * PAGE_WIDTH * PAGE_HEIGHT * elementsPerSplat,\n );\n const texture = new THREE.DataArrayTexture(\n data,\n PAGE_WIDTH,\n PAGE_HEIGHT,\n this.maxPages,\n );\n texture.format =\n elementsPerSplat === 2 ? THREE.RGIntegerFormat : THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = elementsPerSplat === 2 ? \"RG32UI\" : \"RGBA32UI\";\n texture.needsUpdate = true;\n // Avoid initial upload of empty/null data\n texture.source.dataReady = false;\n this.renderer.initTexture(texture);\n return texture;\n }\n\n driveFetchers() {\n const needed = [];\n const overflow = [];\n let numPages = 0;\n\n for (const { splats, chunk } of this.fetchPriority) {\n const pageLru = this.getSplatsChunk(splats, chunk);\n if (pageLru) {\n if (numPages >= this.maxPages) {\n overflow.push(pageLru);\n } else {\n needed.push(pageLru);\n }\n numPages += 1;\n continue;\n }\n\n if (\n this.fetched.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n ) ||\n this.fetchers.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n )\n ) {\n numPages += 1;\n continue;\n }\n\n if (numPages < this.maxPages && this.fetchers.length < this.numFetchers) {\n numPages += 1;\n const promise = splats\n .fetchDecodeChunk(chunk)\n .then(\n async (data) => {\n // Place data in ready queue and remove self from active fetchers list\n this.fetched.push({ splats, chunk, data });\n if (this.fetchPause > 0) {\n await new Promise((resolve) =>\n setTimeout(resolve, this.fetchPause),\n );\n }\n },\n async (error) => {\n console.warn(error);\n const backoff = 250 + 500 * Math.random();\n await new Promise((resolve) => setTimeout(resolve, backoff));\n },\n )\n .finally(() => {\n this.fetchers = this.fetchers.filter(\n ({ splats: s, chunk: c }) => splats !== s || chunk !== c,\n );\n this.processFetched();\n });\n // Add self to active fetchers list\n this.fetchers.push({ splats, chunk, promise });\n\n promise.then((data) => {\n if (this.autoDrive) {\n this.driveFetchers();\n }\n });\n }\n }\n\n // Update LRU ordering in reverse priority order\n const now = performance.now();\n\n for (const pageLru of overflow.reverse()) {\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n\n // Create set of pages not needed\n const extraPages = new Set(this.pageLru);\n for (const pageLru of needed.reverse()) {\n extraPages.delete(pageLru);\n\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n this.freeablePages = Array.from(extraPages).map(({ page }) => page);\n }\n\n private allocateFreeable(): number | undefined {\n const page = this.freeablePages.shift();\n if (page === undefined) {\n // No freeable pages available\n return undefined;\n }\n\n const splatsChunk = this.pageToSplatsChunk[page];\n if (!splatsChunk) {\n throw new Error(`splatsChunk not found for page: ${page}`);\n }\n\n const { splats, chunk } = splatsChunk;\n this.removeSplatsChunkPage(splats, chunk, page);\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats: PAGE_SPLATS,\n });\n return page;\n }\n\n private processFetched() {\n const now = performance.now();\n while (true) {\n const fetched = this.fetched.shift();\n if (!fetched) {\n break;\n }\n const { splats, chunk, data } = fetched;\n\n let page = this.allocatePage();\n if (page === undefined) {\n page = this.allocateFreeable();\n if (page === undefined) {\n // No pages available, stop for now\n return;\n }\n }\n\n this.insertSplatsChunkPage(splats, chunk, page, now);\n const { numSplats, extra } = data;\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats,\n lodTree: extra.lodTree as Uint32Array,\n });\n\n if (isExtResult(data, this.extSplats)) {\n const extArrays = data.extArrays;\n const packedArray = extArrays[0];\n const extArray = extArrays[1];\n const shArrays = [\n data.extra.sh1 as Uint32Array,\n data.extra.sh2 as Uint32Array,\n data.extra.sh3a as Uint32Array,\n data.extra.sh3b as Uint32Array,\n ];\n shArrays.length = shArrays.findIndex((sh) => !sh);\n this.newUploads.push({\n page,\n numSplats,\n packedArray,\n extArray,\n shArrays,\n });\n } else {\n const packedArray = data.packedArray;\n const shArrays = [\n data.extra.sh1 as Uint32Array,\n data.extra.sh2 as Uint32Array,\n data.extra.sh3 as Uint32Array,\n ];\n shArrays.length = shArrays.findIndex((sh) => !sh);\n this.newUploads.push({\n page,\n numSplats,\n packedArray,\n shArrays,\n });\n }\n }\n }\n\n processUploads() {\n while (true) {\n const upload = this.readyUploads.shift();\n if (!upload) {\n break;\n }\n const { page, numSplats, packedArray, extArray, shArrays } = upload;\n this.uploadPage(page, packedArray, shArrays, extArray);\n }\n }\n\n consumeLodTreeUpdates() {\n const updates = this.lodTreeUpdates;\n this.lodTreeUpdates = [];\n\n this.readyUploads.push(...this.newUploads);\n this.newUploads = [];\n return updates;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyIndicesTexture = (() => {\n const emptyArray = new Uint32Array(4096 * 4);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyPackedTexture = this.emptyUint32x4;\n static emptyExtTexture = this.emptyUint32x4;\n static emptyShTextures = [\n this.emptyUint32x2,\n this.emptyUint32x4,\n this.emptyUint32x4,\n ] as const;\n static emptyExtShTextures = [\n this.emptyUint32x4,\n this.emptyUint32x4,\n this.emptyUint32x4, // SH3A\n this.emptyUint32x4, // SH3B\n ] as const;\n}\n\n// Convenience function to distinguish ExtResult and PackedResult\nfunction isExtResult(\n data: ExtResult | PackedResult,\n extSplats: boolean,\n): data is ExtResult {\n return extSplats;\n}\n\nfunction uploadTextureLayer(\n texture: DynoUsampler2DArray,\n layer: number,\n dstOffset: number,\n data: Uint32Array,\n) {\n const array = texture.value.image.data;\n array.subarray(dstOffset, dstOffset + data.length).set(data);\n\n texture.value.addLayerUpdate(layer);\n texture.value.needsUpdate = true;\n texture.value.source.dataReady = true;\n}\n\nasync function fetchRange({\n url,\n requestHeader,\n withCredentials,\n offset,\n bytes,\n}: {\n url: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n offset?: number;\n bytes?: number;\n}): Promise {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n if (offset !== undefined && bytes !== undefined) {\n request.headers.set(\"Range\", `bytes=${offset}-${offset + bytes - 1}`);\n }\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n return new Uint8Array(await response.arrayBuffer());\n}\n","import * as THREE from \"three\";\n\nimport {\n get_raycast_buffer,\n get_raycast_buffer2,\n raycast_ext_buffers,\n raycast_packed_buffer,\n} from \"spark-rs\";\nimport { ExtSplats } from \"./ExtSplats\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { type RgbaArray, TRgbaArray } from \"./RgbaArray\";\nimport { SplatEdit, SplatEditSdf, SplatEdits } from \"./SplatEdit\";\nimport {\n type CovSplatModifier,\n CovSplatTransformer,\n type FrameUpdateContext,\n type GsplatModifier,\n SplatGenerator,\n SplatTransformer,\n} from \"./SplatGenerator\";\nimport { PagedSplats, SplatPager } from \"./SplatPager\";\nimport type { SplatSkinning } from \"./SplatSkinning\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n CovSplat,\n Dyno,\n DynoBool,\n DynoFloat,\n DynoInt,\n DynoUsampler2D,\n type DynoVal,\n DynoVec4,\n Gsplat,\n combineCovSplat,\n combineGsplat,\n defineGsplat,\n dyno,\n dynoBlock,\n gsplatToCovSplat,\n mul,\n splitCovSplat,\n splitGsplat,\n unindentLines,\n} from \"./dyno\";\nimport * as wasm from \"./wasm\";\n\nexport type SplatMeshOptions = {\n // URL to fetch a Gaussian splat file from(supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Use an existing PackedSplats object as the source instead of loading from\n // a file. Can be used to share a collection of Gsplats among multiple SplatMeshes\n // (default: undefined creates a new empty PackedSplats or decoded from a\n // data source above)\n packedSplats?: PackedSplats;\n // Use an existing SplatSource object as the source instead of loading from file.\n splats?: SplatSource;\n // Reserve space for at least this many splats when constructing the mesh\n // initially. (default: determined by file)\n maxSplats?: number;\n // Callback function to programmatically create splats at initialization\n // in provided PackedSplats. (default: undefined)\n constructSplats?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Callback function that is called when mesh initialization is complete.\n // (default: undefined)\n onLoad?: (mesh: SplatMesh) => Promise | void;\n // Controls whether SplatEdits have any effect on this mesh. (default: true)\n editable?: boolean;\n // Controls whether SplatMesh participates in Three.js raycasting (default: true)\n raycastable?: boolean;\n // Minimum opacity for raycasting splats. (default: 0.2)\n minRaycastOpacity?: number;\n // Callback function that is called every frame to update the mesh.\n // Call mesh.updateVersion() if splats need to be regenerated due to some change.\n // Calling updateVersion() is not necessary for object transformations, recoloring,\n // or opacity adjustments as these are auto-detected. (default: undefined)\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n // Gsplat modifier to apply in object-space before any transformations.\n // A GsplatModifier is a dyno shader-graph block that transforms an input\n // gsplat: DynoVal to an output gsplat: DynoVal with gsplat.center\n // coordinate in object-space. (default: undefined)\n objectModifier?: GsplatModifier;\n objectModifiers?: GsplatModifier[];\n // Gsplat modifier to apply in world-space after transformations.\n // (default: undefined)\n worldModifier?: GsplatModifier;\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Set to true to load/use \"extended splat\" encoding with float32 x/y/z\n extSplats?: boolean | ExtSplats;\n // Set to true to output covariance splats for anisotropic scaling\n covSplats?: boolean;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Only create LoD if the input splat acount is above this (default: undefined=0)\n lodAbove?: number;\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Force enable/disable LoD (default: enabled iff packedSplats.lodSplats is not null)\n enableLod?: boolean;\n // LoD scale to apply @default 1.0\n lodScale?: number;\n // Foveation scale to apply behind viewer\n // (default: 1.0)\n behindFoveate?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction\n // with perfection foveation=1.0\n // (default: 0.0)\n coneFov0?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction. 0.0=disable\n // (default: 0.0)\n coneFov?: number;\n // Foveation scale to apply at the edge of the cone\n // (default: 1.0)\n coneFoveate?: number;\n paged?: boolean | PagedSplats | SplatPager;\n};\n\nexport type SplatMeshContext = {\n transform: SplatTransformer;\n viewToWorld: SplatTransformer;\n worldToView: SplatTransformer;\n viewToObject: SplatTransformer;\n covTransform: CovSplatTransformer;\n covViewToWorld: CovSplatTransformer;\n covWorldToView: CovSplatTransformer;\n covViewToObject: CovSplatTransformer;\n recolor: DynoVec4;\n time: DynoFloat;\n deltaTime: DynoFloat;\n numSplats: DynoInt;\n splats: SplatSource;\n enableLod: DynoBool;\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>;\n};\n\nexport interface SplatSource {\n prepareFetchSplat(): void;\n dispose(): void;\n\n getNumSplats(): number;\n hasRgbDir(): boolean;\n getNumSh(): number;\n setMaxSh(maxSh: number): void;\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n >;\n\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ): void;\n}\n\nexport class EmptySplatSource implements SplatSource {\n fetchDyno = new Dyno({\n inTypes: {},\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplat],\n statements: ({ outputs }) =>\n unindentLines(`\n ${outputs.gsplat}.flags = 0u;\n return;\n `),\n }).outputs.gsplat;\n\n prepareFetchSplat() {}\n dispose() {}\n\n getNumSplats() {\n return 0;\n }\n hasRgbDir() {\n return false;\n }\n getNumSh() {\n return 0;\n }\n setMaxSh(maxSh: number) {}\n\n fetchSplat({ index }: { index: DynoVal<\"int\"> }): DynoVal {\n return this.fetchDyno;\n }\n\n forEachSplat() {}\n}\n\nexport class SplatMesh extends SplatGenerator {\n // A Promise you can await to ensure fetching, parsing,\n // and initialization has completed\n initialized: Promise;\n // A boolean indicating whether initialization is complete\n isInitialized = false;\n\n // If you modify packedSplats you should set\n // splatMesh.packedSplats.needsUpdate = true to signal to Three.js that it\n // should re-upload the data to the underlying texture. Use this sparingly with\n // objects with smaller Gsplat counts as it requires a CPU-GPU data transfer for\n // each frame. Thousands to tens of thousands of Gsplats is fine. (See hands.ts\n // for an example of rendering \"Gsplat hands\" in WebXR using this technique.)\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n covSplats: boolean;\n splats?: SplatSource;\n lastSplats?: SplatSource;\n paged?: PagedSplats;\n\n // A THREE.Color that can be used to tint all splats in the mesh.\n // (default: new THREE.Color(1, 1, 1))\n recolor: THREE.Color = new THREE.Color(1, 1, 1);\n // Global opacity multiplier for all splats in the mesh. (default: 1)\n opacity = 1;\n\n // A SplatMeshContext consisting of useful scene and object dyno uniforms that can\n // be used to in the Gsplat processing pipeline, for example via objectModifier and\n // worldModifier. (created on construction)\n context: SplatMeshContext;\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n generatorDirty = true;\n\n objectModifiers?: GsplatModifier[];\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Set to true to have the viewToObject property in context be updated each frame.\n // If the mesh has extra.sh1 (first order spherical harmonics directional lighting)\n // this property will always be updated. (default: false)\n enableViewToObject = false;\n // Set to true to have context.viewToWorld updated each frame. (default: false)\n enableViewToWorld = false;\n // Set to true to have context.worldToView updated each frame. (default: false)\n enableWorldToView = false;\n\n // Optional SplatSkinning instance for animating splats with dual-quaternion\n // skeletal animation. (default: null)\n skinning: SplatSkinning | null = null;\n\n // Optional list of SplatEdits to apply to the mesh. If null, any SplatEdit\n // children in the scene graph will be added automatically. (default: null)\n edits: SplatEdit[] | null = null;\n editable: boolean;\n raycastable: boolean;\n minRaycastOpacity: number;\n raycastIndices?: { numSplats: number; indices: Uint32Array };\n // Compiled SplatEdits for applying SDF edits to splat RGBA + centers\n rgbaDisplaceEdits: SplatEdits | null = null;\n // Optional RgbaArray to overwrite splat RGBA values with custom values.\n // Useful for \"baking\" RGB and opacity edits into the SplatMesh. (default: null)\n splatRgba: RgbaArray | null = null;\n\n // Maximum Spherical Harmonics level to use. Call updateGenerator()\n // after changing. (default: 3)\n maxSh = 3;\n\n enableLod?: boolean;\n lodScale: number;\n behindFoveate?: number;\n coneFov0?: number;\n coneFov?: number;\n coneFoveate?: number;\n\n showLodPage?: number;\n showLodPageDyno = new DynoInt({ value: 0 });\n\n constructor(options: SplatMeshOptions = {}) {\n super({\n update: (context) => this.update(context),\n });\n\n if (options.splats) {\n this.splats = options.splats;\n this.numSplats = options.splats.getNumSplats();\n } else if (options.paged) {\n if (options.extSplats) {\n console.warn(\n \"To set extSplats with the paged option, set SparkRenderer.pagedExtSplats\",\n );\n }\n const rootUrl = options.url ?? \"\";\n if (options.paged === true) {\n this.paged = new PagedSplats({ rootUrl });\n } else if (options.paged instanceof PagedSplats) {\n this.paged = options.paged;\n } else if (options.paged instanceof SplatPager) {\n this.paged = new PagedSplats({ rootUrl, pager: options.paged });\n } else {\n throw new Error(\"Invalid paged option\");\n }\n this.splats = this.paged;\n } else if (options.extSplats) {\n this.extSplats =\n options.extSplats instanceof ExtSplats\n ? options.extSplats\n : new ExtSplats();\n options.extSplats = this.extSplats;\n this.numSplats = this.extSplats.numSplats;\n this.splats = this.extSplats;\n } else if (options.packedSplats) {\n this.packedSplats = options.packedSplats;\n this.packedSplats.splatEncoding = options.splatEncoding ?? {\n ...DEFAULT_SPLAT_ENCODING,\n };\n this.splats = this.packedSplats;\n } else {\n this.packedSplats = new PackedSplats();\n }\n\n this.editable = options.editable ?? true;\n this.raycastable = options.raycastable ?? true;\n this.minRaycastOpacity = options.minRaycastOpacity ?? 0.2;\n this.onFrame = options.onFrame;\n\n this.context = {\n transform: new SplatTransformer(),\n viewToWorld: new SplatTransformer(),\n worldToView: new SplatTransformer(),\n viewToObject: new SplatTransformer(),\n covTransform: new CovSplatTransformer(),\n covViewToWorld: new CovSplatTransformer(),\n covWorldToView: new CovSplatTransformer(),\n covViewToObject: new CovSplatTransformer(),\n recolor: new DynoVec4({\n value: new THREE.Vector4().setScalar(Number.NEGATIVE_INFINITY),\n }),\n time: new DynoFloat({ value: 0 }),\n deltaTime: new DynoFloat({ value: 0 }),\n numSplats: new DynoInt({ value: 0 }),\n splats: new EmptySplatSource(),\n enableLod: new DynoBool({ value: false }),\n lodIndices: new DynoUsampler2D({\n value: emptyLodIndices,\n key: \"lodIndices\",\n }),\n };\n\n this.covSplats = options.covSplats ?? false;\n if (this.covSplats && !this.extSplats) {\n throw new Error(\"CovSplats requires ExtSplats\");\n }\n\n this.objectModifiers = options.objectModifier\n ? [options.objectModifier]\n : undefined;\n this.worldModifiers = options.worldModifier\n ? [options.worldModifier]\n : undefined;\n\n if (options.objectModifiers) {\n this.objectModifiers = options.objectModifiers;\n }\n if (options.worldModifiers) {\n this.worldModifiers = options.worldModifiers;\n }\n\n this.enableLod = options.enableLod;\n this.lodScale = options.lodScale ?? 1.0;\n this.behindFoveate = options.behindFoveate;\n this.coneFov0 = options.coneFov0;\n this.coneFov = options.coneFov;\n this.coneFoveate = options.coneFoveate;\n\n this.updateGenerator();\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.constructSplats ||\n (options.packedSplats && !options.packedSplats.isInitialized) ||\n (this.extSplats && !this.extSplats.isInitialized)\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(async () => {\n this.updateGenerator();\n\n this.isInitialized = true;\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n return this;\n });\n } else {\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n // If onLoad returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n this.initialized = maybePromise.then(() => this);\n }\n }\n }\n\n // this.add(createRendererDetectionMesh());\n }\n\n async asyncInitialize(options: SplatMeshOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n } = options;\n if (this.packedSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const packedSplatsOptions = {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct: constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n };\n this.packedSplats.reinitialize(packedSplatsOptions);\n }\n await this.packedSplats.initialized;\n this.splats = this.packedSplats;\n } else if (this.extSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const construct = constructSplats as\n | ((splats: ExtSplats) => Promise)\n | undefined;\n this.extSplats.reinitialize({\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n });\n await this.extSplats.initialized;\n this.splats = this.extSplats;\n }\n }\n\n if (this.splats) {\n this.numSplats = this.splats.getNumSplats();\n this.updateGenerator();\n }\n }\n\n static dynoTime = new DynoFloat({ value: 0 });\n\n // Creates a new Gsplat with the provided parameters (all values in \"float\" space,\n // i.e. 0-1 for opacity and color) and adds it to the end of the packedSplats,\n // increasing numSplats by 1. If necessary, reallocates the buffer with an exponential\n // doubling strategy to fit the new data, so it's fairly efficient to just\n // pushSplat(...) each Gsplat you want to create in a loop.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n if (this.packedSplats) {\n this.packedSplats.pushSplat(center, scales, quaternion, opacity, color);\n } else if (this.extSplats) {\n this.extSplats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n\n // This method iterates over all Gsplats in this instance's packedSplats,\n // invoking the provided callback with index: number in 0..=(this.numSplats-1) and\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number (0..1), and color: THREE.Color (rgb values in 0..1).\n // Note that the objects passed in as center etc. are the same for every callback\n // invocation: these objects are reused for efficiency. Changing these values has\n // no effect as they are decoded/unpacked copies of the underlying data. To update\n // the packedSplats, call .packedSplats.setSplat(index, center, scales,\n // quaternion, opacity, color).\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n this.splats?.forEachSplat(callback);\n }\n\n // Call this when you are finished with the SplatMesh and want to free\n // any buffers it holds (via packedSplats).\n dispose() {\n if (\n this.splats &&\n this.splats !== this.packedSplats &&\n this.splats !== this.extSplats\n ) {\n this.splats.dispose();\n this.splats = undefined;\n }\n if (this.packedSplats) {\n this.packedSplats.dispose();\n this.packedSplats = undefined;\n }\n if (this.extSplats) {\n this.extSplats.dispose();\n this.extSplats = undefined;\n }\n }\n\n // Returns axis-aligned bounding box of the SplatMesh. If centers_only is true,\n // only the centers of the splats are used to compute the bounding box.\n // IMPORTANT: This should only be called after the SplatMesh is initialized.\n getBoundingBox(centers_only = true) {\n if (!this.initialized) {\n throw new Error(\n \"Cannot get bounding box before SplatMesh is initialized\",\n );\n }\n const minVec = new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n );\n const maxVec = new THREE.Vector3(\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n );\n const corners = new THREE.Vector3();\n const signs = [-1, 1];\n\n function callback(\n _index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n _opacity: number,\n _color: THREE.Color,\n ) {\n if (centers_only) {\n minVec.min(center);\n maxVec.max(center);\n } else {\n // Get the 8 corners of the AABB in local space\n for (const x of signs) {\n for (const y of signs) {\n for (const z of signs) {\n corners.set(x * scales.x, y * scales.y, z * scales.z);\n // Transform corner by rotation and position\n corners.applyQuaternion(quaternion);\n corners.add(center);\n minVec.min(corners);\n maxVec.max(corners);\n }\n }\n }\n }\n }\n\n this.splats?.forEachSplat(callback);\n const box = new THREE.Box3(minVec, maxVec);\n return box;\n }\n\n set objectModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.objectModifiers = [modifier];\n } else {\n this.objectModifiers = undefined;\n }\n }\n\n set worldModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.worldModifiers = [modifier];\n } else {\n this.worldModifiers = undefined;\n }\n }\n\n private constructGenerator(context: SplatMeshContext) {\n if (this.covSplats) {\n return this.constructCovGenerator(context);\n }\n\n const { transform, viewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.setMaxSh(this.maxSh);\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: viewToObject.translate,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n gsplat = this.skinning.modify(gsplat);\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // Transform from object to world-space\n gsplat = transform.applyGsplat(gsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitGsplat(gsplat).outputs.rgba);\n gsplat = combineGsplat({ gsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n gsplat = this.rgbaDisplaceEdits.modify(gsplat);\n }\n\n if (this.worldModifiers) {\n // Inject world-space Gsplat modifier dyno\n for (const modifier of this.worldModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { gsplat };\n },\n );\n this.generator = generator;\n this.covGenerator = undefined;\n }\n\n constructCovGenerator(context: SplatMeshContext) {\n // console.log(\"CovSplatMesh.constructCovGenerator\");\n const { covTransform, covViewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { covsplat: CovSplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: covViewToObject.offset,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n let covsplat = gsplatToCovSplat(gsplat);\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n covsplat = this.skinning.modifyCov(covsplat);\n }\n\n if (this.covObjectModifiers) {\n // Inject object-space CovSplat modifier dyno\n for (const modifier of this.covObjectModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // Transform from object to world-space\n covsplat = covTransform.applyCovSplat(covsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitCovSplat(covsplat).outputs.rgba);\n covsplat = combineCovSplat({ covsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n covsplat = this.rgbaDisplaceEdits.modifyCov(covsplat);\n }\n\n if (this.covWorldModifiers) {\n // Inject world-space CovSplat modifier dyno\n for (const modifier of this.covWorldModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { covsplat };\n },\n );\n this.generator = undefined;\n this.covGenerator = generator;\n }\n\n // Call this whenever something changes in the Gsplat processing pipeline,\n // for example changing maxSh or updating objectModifier or worldModifier.\n // Compiled generators are cached for efficiency and re-use when the same\n // pipeline structure emerges after successive changes.\n updateGenerator() {\n this.generatorDirty = true;\n }\n\n // This is called automatically by SparkRenderer and you should not have to\n // call it. It updates parameters for the generated pipeline and calls\n // updateGenerator() if the pipeline needs to change.\n update({\n renderer,\n time,\n deltaTime,\n viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices,\n }: FrameUpdateContext) {\n this.context.time.value = time;\n this.context.deltaTime.value = deltaTime;\n SplatMesh.dynoTime.value = time;\n this.showLodPageDyno.value = this.showLodPage ?? -1;\n\n const splats = this.splats ?? this.packedSplats ?? this.extSplats;\n if (splats) {\n this.context.splats = splats;\n }\n this.numSplats = this.context.splats.getNumSplats();\n\n let updated = false;\n\n const lodSplats = this.packedSplats?.lodSplats ?? this.extSplats?.lodSplats;\n this.context.enableLod.value = lodSplats != null && lodIndices != null;\n if (this.enableLod === false) {\n this.context.enableLod.value = false;\n }\n this.context.lodIndices.value = lodIndices?.texture ?? emptyLodIndices;\n\n if (this.context.enableLod.value && lodSplats) {\n this.context.splats = lodSplats;\n this.numSplats = lodIndices?.numSplats ?? 0;\n }\n\n this.context.numSplats.value = this.numSplats;\n\n if (this.context.splats !== this.lastSplats) {\n this.lastSplats = this.context.splats;\n this.generatorDirty = true;\n }\n\n if (!this.covSplats) {\n if (this.context.transform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.viewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.worldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const objectToWorld = new THREE.Matrix4().compose(\n this.context.transform.translate.value,\n this.context.transform.rotate.value,\n new THREE.Vector3().setScalar(this.context.transform.scale.value),\n );\n const worldToObject = objectToWorld.invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.viewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n } else {\n if (this.context.covTransform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.covViewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.covWorldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const worldToObject = this.matrixWorld.clone().invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.covViewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n }\n\n const newRecolor = new THREE.Vector4(\n this.recolor.r,\n this.recolor.g,\n this.recolor.b,\n this.opacity,\n );\n if (!newRecolor.equals(this.context.recolor.value)) {\n this.context.recolor.value.copy(newRecolor);\n updated = true;\n }\n\n const edits = this.editable ? (this.edits ?? []).concat(globalEdits) : [];\n if (this.editable && !this.edits) {\n // If we haven't set any explicit edits, add any child SplatEdits\n this.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n edits.push(node);\n }\n });\n }\n\n edits.sort((a, b) => a.ordering - b.ordering);\n const editsSdfs = edits.map((edit) => {\n if (edit.sdfs != null) {\n return { edit, sdfs: edit.sdfs };\n }\n const sdfs: SplatEditSdf[] = [];\n edit.traverseVisible((node) => {\n if (node instanceof SplatEditSdf) {\n sdfs.push(node);\n }\n });\n return { edit, sdfs };\n });\n\n if (editsSdfs.length > 0 && !this.rgbaDisplaceEdits) {\n const edits = editsSdfs.length;\n const sdfs = editsSdfs.reduce(\n (total, edit) => total + edit.sdfs.length,\n 0,\n );\n this.rgbaDisplaceEdits = new SplatEdits({\n maxEdits: edits,\n maxSdfs: sdfs,\n });\n this.generatorDirty = true;\n }\n if (this.rgbaDisplaceEdits) {\n const editResult = this.rgbaDisplaceEdits.update(editsSdfs);\n updated ||= editResult.updated;\n if (editResult.dynoUpdated) {\n this.generatorDirty = true;\n }\n }\n\n if (this.generatorDirty) {\n this.constructGenerator(this.context);\n this.generatorDirty = false;\n updated = true;\n }\n\n if (updated) {\n this.updateVersion();\n }\n\n this.onFrame?.({ mesh: this, time, deltaTime });\n }\n\n // This method conforms to the standard THREE.Raycaster API, performing object-ray\n // intersections using this method to populate the provided intersects[] array\n // with each intersection point.\n raycast(\n raycaster: THREE.Raycaster,\n intersects: {\n distance: number;\n point: THREE.Vector3;\n object: THREE.Object3D;\n }[],\n ) {\n if (\n !wasm.isInitialized() ||\n !this.raycastable ||\n (!this.packedSplats && !this.extSplats && !this.paged)\n ) {\n return;\n }\n const paged = this.paged != null;\n const ext = paged\n ? (this.paged?.pager?.extSplats ?? false)\n : this.extSplats != null;\n\n const { near, far, ray } = raycaster;\n const worldToMesh = this.matrixWorld.clone().invert();\n const worldToMeshRot = new THREE.Matrix3().setFromMatrix4(worldToMesh);\n const origin = ray.origin.clone().applyMatrix4(worldToMesh);\n const direction = ray.direction.clone().applyMatrix3(worldToMeshRot);\n\n const buffer = get_raycast_buffer();\n const bufferSize = buffer.length / 4;\n let intersections = 0;\n\n const numSplats =\n this.raycastIndices?.numSplats ??\n (paged ? this.paged?.numSplats : this.context.numSplats.value) ??\n 0;\n const indices =\n this.raycastIndices?.indices ??\n (paged\n ? (this.paged?.dynoIndices.value.image.data as Uint32Array)\n : this.context.enableLod.value\n ? (this.context.lodIndices.value.image.data as Uint32Array)\n : null) ??\n null;\n\n if (!ext) {\n const packed = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.packedSplats?.lodSplats?.packedArray\n : this.packedSplats?.packedArray;\n if (!packed) {\n return;\n }\n const splatEncoding = paged\n ? this.paged?.splatEncoding\n : this.packedSplats?.splatEncoding;\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(packed.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = packed[index4];\n buffer[i4 + 1] = packed[index4 + 1];\n buffer[i4 + 2] = packed[index4 + 2];\n buffer[i4 + 3] = packed[index4 + 3];\n }\n }\n\n const newIntersections = raycast_packed_buffer(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n splatEncoding?.lodOpacity ?? false,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n } else {\n const buffer2 = get_raycast_buffer2();\n const ext1 = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[0]\n : this.extSplats?.extArrays[0];\n const ext2 = paged\n ? (this.paged?.pager?.extTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[1]\n : this.extSplats?.extArrays[1];\n if (!ext1 || !ext2) {\n return;\n }\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(ext1.subarray(base * 4, (base + count) * 4));\n buffer2.set(ext2.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = ext1[index4];\n buffer[i4 + 1] = ext1[index4 + 1];\n buffer[i4 + 2] = ext1[index4 + 2];\n buffer[i4 + 3] = ext1[index4 + 3];\n buffer2[i4] = ext2[index4];\n buffer2[i4 + 1] = ext2[index4 + 1];\n buffer2[i4 + 2] = ext2[index4 + 2];\n buffer2[i4 + 3] = ext2[index4 + 3];\n }\n }\n\n const newIntersections = raycast_ext_buffers(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n }\n\n for (const distance of SplatMesh.raycastBuffer.subarray(0, intersections)) {\n const point = ray.direction\n .clone()\n .multiplyScalar(distance)\n .add(ray.origin);\n intersects.push({\n distance,\n point,\n object: this,\n });\n }\n }\n\n static raycastBuffer = new Float32Array(1024);\n\n private appendRaycastBuffer(count: number, additional: Float32Array) {\n const total = count + additional.length;\n let capacity = SplatMesh.raycastBuffer.length;\n\n if (total > capacity) {\n while (capacity < total) {\n capacity *= 2;\n }\n const newBuffer = new Float32Array(capacity);\n newBuffer.set(SplatMesh.raycastBuffer.subarray(0, count));\n SplatMesh.raycastBuffer = newBuffer;\n }\n\n SplatMesh.raycastBuffer.set(additional, count);\n return count + additional.length;\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n if (this.packedSplats) {\n await this.packedSplats.createLodSplats({ quality, rgbaArray });\n } else if (this.extSplats) {\n await this.extSplats.createLodSplats({ quality, rgbaArray });\n }\n }\n}\n\nexport function maybeLookupIndex(\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>,\n index: DynoVal<\"int\">,\n numSplats: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n showLodPage: DynoVal<\"int\">,\n) {\n return dyno({\n inTypes: {\n lodIndices: \"usampler2D\",\n index: \"int\",\n numSplats: \"int\",\n enableLod: \"bool\",\n showLodPage: \"int\",\n },\n outTypes: {\n index: \"int\",\n },\n inputs: {\n lodIndices,\n index,\n numSplats,\n enableLod,\n showLodPage,\n },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n int index = ${inputs.index};\n if (${inputs.showLodPage} < 0) {\n if (index >= ${inputs.numSplats}) {\n return;\n }\n if (${inputs.enableLod}) {\n ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14);\n uint splatIndex = texelFetch(${inputs.lodIndices}, lodIndexCoord, 0)[index & 3];\n ${outputs.index} = int(splatIndex);\n } else {\n ${outputs.index} = index;\n }\n } else {\n int start = ${inputs.showLodPage} << 16;\n if (index >= 65536) {\n return;\n }\n ${outputs.index} = start + index;\n }\n `),\n }).outputs.index;\n}\n\nexport function maybeInjectSplatRgba(\n gsplat: DynoVal,\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n): DynoVal {\n return dyno({\n inTypes: {\n gsplat: Gsplat,\n rgba: TRgbaArray,\n index: \"int\",\n enableLod: \"bool\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, rgba, index, enableLod },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n ${outputs.gsplat} = ${inputs.gsplat};\n if (!${inputs.enableLod} && (${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.gsplat}.rgba = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n }\n `),\n }).outputs.gsplat;\n}\n\nexport const emptyLodIndices = (() => {\n const texture = new THREE.DataTexture(\n new Uint32Array(16384),\n 4096,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n})();\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\nimport { Readback } from \"./Readback\";\nimport { SplatEdit } from \"./SplatEdit\";\nimport {\n type CovSplatGenerator,\n type GsplatGenerator,\n SplatGenerator,\n} from \"./SplatGenerator\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines\";\nimport {\n type CovSplat,\n Dyno,\n DynoBool,\n DynoProgram,\n DynoProgramTemplate,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n combineCovSplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n gsplatToCovSplat,\n mul,\n outputCovSplat,\n outputCovSplatDepth,\n outputExtCovSplat,\n outputExtendedSplat,\n outputPackedSplat,\n outputSplatDepth,\n splitCovSplat,\n splitGsplat,\n sub,\n unindentLines,\n} from \"./dyno\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, threeMrtArray } from \"./utils\";\n\n// A GeneratorMapping describes a Gsplat range that was generated, including\n// which generator and its version number.\nexport type GeneratorMapping = {\n node: SplatGenerator;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n version: number;\n mappingVersion?: number;\n base: number;\n count: number;\n};\n\nexport class SplatAccumulator {\n time = 0;\n deltaTime = 0;\n viewToWorld = new THREE.Matrix4();\n viewOrigin = new THREE.Vector3();\n viewDirection = new THREE.Vector3();\n static viewCenterUniform = new DynoVec3({ value: new THREE.Vector3() });\n static viewDirUniform = new DynoVec3({ value: new THREE.Vector3() });\n static sortRadialUniform = new DynoBool({ value: true });\n maxSplats = 0;\n numSplats = 0;\n target: THREE.WebGLArrayRenderTarget | null = null;\n mapping: GeneratorMapping[] = [];\n version = -1;\n mappingVersion = -1;\n extSplats: boolean;\n covSplats: boolean;\n readback: Readback | null = null;\n readbackSplats: DynoUsampler2DArray<\"extSplats\", THREE.DataArrayTexture>[] =\n [];\n\n constructor({\n extSplats,\n covSplats,\n }: { extSplats?: boolean; covSplats?: boolean } = {}) {\n if (!threeMrtArray) {\n throw new Error(\"Spark requires THREE.js r179 or above\");\n }\n this.extSplats = extSplats ?? true;\n this.covSplats = covSplats ?? false;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = null;\n }\n }\n\n // Returns a THREE.DataArrayTexture representing the NewSplatAccumulator\n // content as 2 x Uint32x4 data array textures (2048 x 2048 x 2048 in size)\n getTextures(): THREE.DataArrayTexture[] {\n if (this.target) {\n return this.target.textures;\n }\n return SplatAccumulator.emptyTextures;\n }\n\n static emptyTexture = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTextures = (() => {\n return [SplatAccumulator.emptyTexture, SplatAccumulator.emptyTexture];\n })();\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Ensures our NewSplatAccumulator.target render target has enough space\n // to generate maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate({ maxSplats }: { maxSplats: number }) {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n this.dispose();\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n format: THREE.RGBAIntegerFormat,\n type: THREE.UnsignedIntType,\n });\n this.target.scissorTest = true;\n\n if (this.extSplats) {\n const target2 = this.target.texture.clone();\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target2, target3];\n } else {\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target3];\n }\n\n return true;\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n activeCubeFace: renderer.getActiveCubeFace(),\n activeMipmapLevel: renderer.getActiveMipmapLevel(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n activeCubeFace: number;\n activeMipmapLevel: number;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(\n state.target,\n state.activeCubeFace,\n state.activeMipmapLevel,\n );\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(\n generator?: GsplatGenerator,\n covGenerator?: CovSplatGenerator,\n ) {\n const theGenerator = generator ?? covGenerator;\n if (!theGenerator) {\n throw new Error(\"Either generator or covGenerator must be provided\");\n }\n\n let program = SplatAccumulator.generatorProgram.get(theGenerator);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n if (generator) {\n generator.inputs.index = index;\n }\n if (covGenerator) {\n covGenerator.inputs.index = index;\n }\n\n if (this.extSplats) {\n if (!this.covSplats) {\n if (generator) {\n const output = outputExtendedSplat(generator.outputs.gsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n if (covGenerator) {\n const output = outputExtCovSplat(covGenerator.outputs.covsplat);\n roots.push(output);\n } else if (generator) {\n const covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n const output = outputExtCovSplat(covsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n }\n } else {\n if (!this.covSplats) {\n if (generator) {\n const centerSubView = sub(\n splitGsplat(generator.outputs.gsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n // Use expanded LoD opacity encoding\n const halfAlpha = mul(\n splitGsplat(generator.outputs.gsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n const gsplat = combineGsplat({\n gsplat: generator.outputs.gsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputPackedSplat(\n gsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n let covsplat: DynoVal;\n if (covGenerator) {\n covsplat = covGenerator.outputs.covsplat;\n } else if (generator) {\n covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n const centerSubView = sub(\n splitCovSplat(covsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n const halfAlpha = mul(\n splitCovSplat(covsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n covsplat = combineCovSplat({\n covsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputCovSplat(\n covsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n }\n if (!generator) {\n throw new Error(\"Generator must be provided\");\n }\n }\n if (generator) {\n const outputDepth = outputSplatDepth(\n generator.outputs.gsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n if (covGenerator) {\n const outputDepth = outputCovSplatDepth(\n covGenerator.outputs.covsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n return undefined;\n },\n );\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: {},\n template: this.extSplats\n ? SplatAccumulator.programExtTemplate\n : SplatAccumulator.programTemplate,\n // consoleLog: true,\n });\n\n SplatAccumulator.generatorProgram.set(theGenerator, program);\n }\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n\n const material = program.prepareMaterial();\n SplatAccumulator.fullScreenQuad.material = material;\n return { program, material };\n }\n\n static programExtTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4x2Vec4Template,\n );\n static programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Vec4Template,\n );\n static generatorProgram = new WeakMap<\n GsplatGenerator | CovSplatGenerator,\n DynoProgram\n >();\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n generate({\n generator,\n covGenerator,\n base,\n count,\n renderer,\n }: {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureGenerate\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(\n generator,\n covGenerator,\n );\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n SplatAccumulator.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial,\n renderSize,\n previous,\n lodInstances,\n }: {\n renderer: THREE.WebGLRenderer;\n scene: THREE.Scene;\n time: number;\n camera: THREE.Camera;\n sortRadial: boolean;\n renderSize: THREE.Vector2;\n previous: SplatAccumulator;\n lodInstances?: Map<\n SplatMesh,\n { numSplats: number; texture: THREE.DataTexture }\n >;\n }) {\n this.viewToWorld.copy(camera.matrixWorld);\n camera.getWorldPosition(this.viewOrigin);\n camera.getWorldDirection(this.viewDirection);\n SplatAccumulator.viewCenterUniform.value.copy(this.viewOrigin);\n SplatAccumulator.viewDirUniform.value.copy(this.viewDirection);\n SplatAccumulator.sortRadialUniform.value = sortRadial;\n\n this.time = time;\n this.deltaTime = time - previous.time;\n\n const allGenerators: SplatGenerator[] = [];\n scene.traverse((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n allGenerators.push(node);\n }\n }\n });\n\n const globalEditsSet = new Set();\n scene.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n let ancestor = node.parent;\n while (ancestor != null && !(ancestor instanceof SplatMesh)) {\n ancestor = ancestor.parent;\n }\n if (ancestor == null) {\n // Not part of a SplatMesh so it's a global edit\n globalEditsSet.add(node);\n }\n }\n });\n const globalEdits = Array.from(globalEditsSet);\n\n for (const object of allGenerators) {\n try {\n object.frameUpdate?.({\n renderer,\n object,\n time: this.time,\n deltaTime: this.deltaTime,\n viewToWorld: this.viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices:\n lodInstances && object instanceof SplatMesh\n ? lodInstances.get(object)\n : undefined,\n });\n } catch (error) {\n console.error(\"frameUpdate error\", error);\n object.generator = undefined;\n object.covGenerator = undefined;\n object.generatorError = error;\n }\n }\n\n const visibleGenerators: SplatGenerator[] = [];\n scene.traverseVisible((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n visibleGenerators.push(node);\n }\n }\n });\n\n const splatCounts = visibleGenerators.map(\n (generator) => generator.numSplats,\n );\n const { maxSplats, mapping: baseCounts } =\n this.generateMapping(splatCounts);\n\n const previousMappings = previous.mapping.reduce((mappings, mapping) => {\n mappings.set(mapping.node, mapping);\n return mappings;\n }, new Map());\n\n this.mapping = [];\n this.numSplats = 0;\n\n baseCounts.forEach(({ base, count }, index) => {\n const node = visibleGenerators[index];\n const previousNode = previousMappings.get(node);\n if (previousNode && previousNode.count !== node.numSplats) {\n node.updateMappingVersion();\n }\n\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n const { version, mappingVersion } = node;\n this.mapping.push({\n node,\n generator,\n covGenerator,\n version,\n mappingVersion,\n base,\n count,\n });\n this.numSplats = Math.max(this.numSplats, base + count);\n }\n });\n const { splatsUpdated, mappingUpdated } = previous.checkVersions(\n this.mapping,\n );\n this.version = previous.version + (splatsUpdated ? 1 : 0);\n this.mappingVersion = previous.mappingVersion + (mappingUpdated ? 1 : 0);\n\n return {\n sameMapping: !mappingUpdated,\n version: this.version,\n mappingVersion: this.mappingVersion,\n visibleGenerators,\n generate: () => {\n this.ensureGenerate({ maxSplats });\n\n for (const { node, base, count } of this.mapping) {\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n this.generate({ generator, covGenerator, base, count, renderer });\n }\n }\n },\n readback: async () => {\n const textures = this.getTextures();\n if (this.readbackSplats.length === 0) {\n this.readbackSplats = [\n new DynoUsampler2DArray({ value: textures[0], key: \"extSplats\" }),\n new DynoUsampler2DArray({ value: textures[1], key: \"extSplats\" }),\n ];\n }\n this.readbackSplats[0].value = textures[0];\n this.readbackSplats[1].value = textures[1];\n\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n const readback = this.readback;\n const words = this.extSplats ? 8 : 4;\n const array = readback.ensureBuffer(\n this.numSplats * words,\n new Uint32Array(0),\n );\n\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n const rgba8 = new Dyno({\n inTypes: {\n index: \"int\",\n extSplats1: \"usampler2DArray\",\n extSplats2: \"usampler2DArray\",\n },\n outTypes: { rgba8: \"vec4\" },\n inputs: {\n index,\n extSplats1: this.readbackSplats[0],\n extSplats2: this.readbackSplats[1],\n },\n statements: ({ inputs, outputs }) => {\n if (this.extSplats) {\n return unindentLines(`\n int indexDiv8 = ${inputs.index} >> 3;\n ivec3 coord = splatTexCoord(indexDiv8);\n uvec4 packedData;\n if ((${inputs.index} & 4) == 0) {\n packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n } else {\n packedData = texelFetch(${inputs.extSplats2}, coord, 0);\n }\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n }\n return unindentLines(`\n int indexDiv4 = ${inputs.index} >> 2;\n ivec3 coord = splatTexCoord(indexDiv4);\n uvec4 packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n },\n }).outputs.rgba8;\n return { rgba8 };\n },\n );\n\n return await readback.renderReadback({\n reader,\n count: this.numSplats * words,\n renderer,\n readback: array,\n });\n },\n };\n }\n\n // Check if this accumulator has exactly the same generator mapping as\n // the previous one. If so, we can reuse the Gsplat sort order.\n checkVersions(otherMapping: GeneratorMapping[]) {\n if (this.mapping.length !== otherMapping.length) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const mappingUpdated = this.mapping.some((item, i) => {\n const other = otherMapping[i];\n return (\n item.node !== other.node ||\n item.base !== other.base ||\n item.count !== other.count ||\n item.mappingVersion !== other.mappingVersion\n );\n });\n if (mappingUpdated) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const splatsUpdated = this.mapping.some((item, i) => {\n return item.version !== otherMapping[i].version;\n });\n return { splatsUpdated, mappingUpdated };\n }\n}\n","import * as THREE from \"three\";\n\n// SplatGeometry is an internal class used by SparkRenderer to render a collection\n// of Gsplats in a single draw call by extending THREE.InstancedBufferGeometry.\n// Each Gsplat is drawn as two triangles, with the order of the Gsplats determined\n// by a texture lookup via gl_InstanceID.\n\nexport class SplatGeometry extends THREE.InstancedBufferGeometry {\n constructor() {\n super();\n this.setAttribute(\"position\", new THREE.BufferAttribute(QUAD_VERTICES, 3));\n this.setIndex(new THREE.BufferAttribute(QUAD_INDICES, 1));\n }\n}\n\n// Each instance draws to triangles covering a quad over coords (-1,-1,0)..(1,1,0)\nconst QUAD_VERTICES = new Float32Array([\n -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0,\n]);\n\nconst QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]);\n","import * as THREE from \"three\";\nimport {\n ExtSplats,\n PackedSplats,\n PagedSplats,\n Readback,\n type SplatGenerator,\n SplatMesh,\n SplatPager,\n} from \".\";\nimport { SplatAccumulator } from \"./SplatAccumulator\";\nimport { SplatGeometry } from \"./SplatGeometry\";\nimport { SplatWorker } from \"./SplatWorker\";\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { getShaders } from \"./shaders\";\nimport {\n isAndroid,\n isIos,\n isMobile,\n isOculus,\n isVisionPro,\n uploadU32DataTextureRows,\n} from \"./utils\";\n\nexport interface SparkRendererOptions {\n /**\n * Pass in your THREE.WebGLRenderer instance so Spark can perform work\n * outside the usual render loop. Should be created with antialias: false\n * (default setting) as WebGL anti-aliasing doesn't improve Gaussian Splatting\n * rendering and significantly reduces performance.\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Callback function to be called when SparkRenderer needs to re-render,\n * for example when splat sort order or LoD updates complete.\n */\n onDirty?: () => void;\n /**\n * Whether to use premultiplied alpha when accumulating splat RGB\n * @default true\n */\n premultipliedAlpha?: boolean;\n /**\n * Pass in a THREE.Timer to synchronize time-based effects across different\n * systems. Alternatively, you can set the property time directly.\n * (default: new THREE.Timer)\n */\n timer?: THREE.Timer;\n /**\n * Controls whether to check and automatically update Gsplat collection\n * each frame render.\n * @default true\n */\n autoUpdate?: boolean;\n /**\n * Controls whether to update the Gsplats before or after rendering. For WebXR\n * this is set to false in order to complete rendering as soon as possible.\n * @default true (if not WebXR)\n */\n preUpdate?: boolean;\n /**\n * Maximum standard deviations from the center to render Gaussians. Values\n * Math.sqrt(4)..Math.sqrt(9) produce acceptable results and can be tweaked for\n * performance.\n * @default Math.sqrt(8)\n */\n maxStdDev?: number;\n /*\n **\n * Minimum pixel radius for splat rendering.\n * @default 0.0\n */\n minPixelRadius?: number;\n /**\n * Maximum pixel radius for splat rendering.\n * @default 512.0\n */\n maxPixelRadius?: number;\n /**\n * Whether to use extended Gsplat encoding for intermediary accumulator splats.\n * @default false\n */\n accumExtSplats?: boolean;\n /**\n * Whether to use covariance Gsplat encoding for intermediary splats.\n * @default false\n */\n covSplats?: boolean;\n /**\n * Minimum alpha value for splat rendering.\n * @default 0.5 * (1.0 / 255.0)\n */\n minAlpha?: number;\n /**\n * Enable 2D Gaussian splatting rendering ability. When this mode is enabled,\n * any scale x/y/z component that is exactly 0 (minimum quantized value) results\n * in the other two non-0 axis being interpreted as an oriented 2D Gaussian Splat,\n * rather instead of the usual projected 3DGS Z-slice. When reading PLY files,\n * scale values less than e^-30 will be interpreted as 0.\n * @default false\n */\n enable2DGS?: boolean;\n /**\n * Enable alternative ray-splat max response evaluation, used by 3DGUT (unscented transform),\n * 3DGRT, and HTGS.\n * @default false\n */\n // enableRayEval?: boolean;\n /**\n * Scalar value to add to 2D splat covariance diagonal, effectively blurring +\n * enlarging splats. In scenes trained without the Gsplat anti-aliasing tweak\n * this value was typically 0.3, but with anti-aliasing it is 0.0\n * @default 0.0\n */\n preBlurAmount?: number;\n /**\n * Scalar value to add to 2D splat covarianve diagonal, with opacity adjustment\n * to correctly account for \"blurring\" when anti-aliasing. Typically 0.3\n * (equivalent to approx 0.5 pixel radius) in scenes trained with anti-aliasing.\n */\n blurAmount?: number;\n /**\n * Depth-of-field distance to focal plane\n */\n focalDistance?: number;\n /**\n * Full-width angle of aperture opening (in radians), 0.0 to disable\n * @default 0.0\n */\n apertureAngle?: number;\n /**\n * Modulate Gaussian kernel falloff. 0 means \"no falloff, flat shading\",\n * while 1 is the normal Gaussian kernel.\n * @default 1.0\n */\n falloff?: number;\n /**\n * X/Y clipping boundary factor for Gsplat centers against view frustum.\n * 1.0 clips any centers that are exactly out of bounds, while 1.4 clips\n * centers that are 40% beyond the bounds.\n * @default 1.4\n */\n clipXY?: number;\n /**\n * Parameter to adjust projected splat scale calculation to match other renderers,\n * similar to the same parameter in the MKellogg 3DGS renderer. Higher values will\n * tend to sharpen the splats. A value 2.0 can be used to match the behavior of\n * the PlayCanvas renderer.\n * @default 1.0\n */\n focalAdjustment?: number;\n /**\n * Whether to sort splats radially (geometric distance) from the viewpoint (true)\n * or by Z-depth (false). Most scenes are trained with the Z-depth `sort `metric\n * and will render more accurately at certain viewpoints. However, radial sorting\n * is more stable under viewpoint rotations.\n * @default true\n */\n sortRadial?: boolean;\n /**\n * Minimum interval between sort calls in milliseconds.\n * @default 0\n */\n minSortIntervalMs?: number;\n /*\n * Flag to control whether LoD is enabled. @default true\n */\n enableLod?: boolean;\n /**\n * Whether to drive LOD updates (compute lodInstances, update pager, etc.).\n * Set to false to use LOD instances from another renderer without driving updates.\n * Only has effect if enableLod is true.\n * @default true (if enableLod is true)\n */\n enableDriveLod?: boolean;\n /**\n * Whether to enable page fetching for LoD.\n * @default true\n */\n enableLodFetching?: boolean;\n /**\n * Set the target # splats for LoD. If this isn't set then default base LoD splat\n * counts will apply: 500K-750K for WebXR, 1-1.5M for mobile, and 2.5M for desktop.\n * @default 500K-2500K depending on platform\n */\n lodSplatCount?: number;\n /**\n * Scale factor for target # splats for LoD. 2.0 means 2x the base LoD splat count.\n * This is the easiest LoD parameter to adjust and will scale detail appropriately\n * for the platform.\n * @default 1.0\n */\n lodSplatScale?: number;\n /**\n * Determines the minimum screen pixel size of LoD splats. The default 1.0 means\n * the splat LoD tree will pick splats that are no smaller than 1 pixel in size.\n * Setting this to a higher value as high as 5.0 will often be indistinguishable\n * but will avoid wasting rendering capacity on tiny splats.\n * @default 1.0\n */\n lodRenderScale?: number;\n /**\n * Inflate LoD splats to ensure opacity stays <= 1.0, producing a softer appearance.\n * @default false\n */\n lodInflate?: boolean;\n lodTraverseMode?: \"dynamic\" | \"standard\";\n /**\n * Whether to use extended Gsplat encoding for paged splats, useful for eliminating\n * quantization artifacts from splat scenes with large internal position coordinates.\n * @default false\n */\n pagedExtSplats?: boolean;\n /**\n * Allocation size of paged splats. This must be a multiple of the page size (65536).\n * @default 16777216 (256 * 65536) for desktop, 6291456 for iOS, 8,388,608 for other mobile\n */\n maxPagedSplats?: number;\n /**\n * Number of parallel chunk fetchers for LoD. These are run within a shared pool\n * of 4 background WebWorker threads, so setting it above 4 will not have any\n * effect. Setting it 3 leaves one spare worker for other loading/decoding tasks.\n * @default 3\n */\n numLodFetchers?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with no foveation applied (full resolution, foveate=1.0). Set to 0 to disable.\n * @default 90.0\n */\n coneFov0?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with reduced resolution specified by `coneFoveate`. Foveation will be applied\n * smoothly from 1.0 down to `coneFoveate` as you move outward from\n * `coneFov0` to `coneFov`. Set to 0 to disable.\n * @default 120.0\n */\n coneFov?: number;\n /**\n * Foveation scale to apply to LoD splats at the edge of coneFov. Foveation will\n * be applied smoothly from `coneFoveate` down to `behindFoveate` as you move\n * outward from `coneFov` to 180 degrees (behind the viewer).\n * @default 0.4\n */\n coneFoveate?: number;\n /**\n * Foveation scale to apply to LoD splats behind the viewer. Setting this to 0.1\n * for example will result in splats 10x larger than inside the viewing frustum.\n * @default 0.2\n */\n behindFoveate?: number;\n /**\n * How many LoD splats to generate for raycasting\n * @default 10000-25000 iff default canvas target is used\n */\n lodRaycast?: number;\n lodRaycastIntervalMs?: number;\n /**\n * Configures an offline render target for the SparkRenderer (as opposed to\n * rendering to the canvas). This is useful for rendering environment maps,\n * additional viewpoints, or video frame rendering.\n * @default undefined\n */\n target?: {\n /**\n * Width of the render target in pixels.\n */\n width: number;\n /**\n * Height of the render target in pixels.\n */\n height: number;\n /**\n * If you want to be able to render a scene that depends on this target's\n * output (for example, a recursive viewport), set this to true to enable\n * double buffering.\n * @default false\n */\n doubleBuffer?: boolean;\n /**\n * Super-sampling factor for the render target. Values 1-4 are supported.\n * Note that re-sampling back down to .width x .height is done on the CPU\n * with simple averaging only when calling readTarget().\n * @default 1\n */\n superXY?: number;\n } & THREE.RenderTargetOptions;\n /**\n * Extra uniform values to pass to the shader.\n * @default undefined = no extra uniforms\n */\n extraUniforms?: Record;\n /**\n * Replace the default `splatVertex.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatVertex.glsl` shader\n */\n vertexShader?: string;\n /**\n * Replace the default `splatFragment.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatFragment.glsl` shader\n */\n fragmentShader?: string;\n /**\n * Set the splat shader material to be transparent which determines if the\n * splats are rendered during the first opaque THREE.js render pass or the\n * second transparent render pass.\n * @default undefined = true\n */\n transparent?: boolean;\n /**\n * Set the splat shader material to enable depth testing which determines if the\n * splats respect the Z depth buffer and blend with other opaque objects in the scene.\n * @default undefined = true\n */\n depthTest?: boolean;\n /**\n * Set the splat shader material to enable depth writing which determines if the\n * splats write to the Z depth buffer. Note that enabling this may produce\n * undesirable results because most of the Gsplat is transparent.\n * @default undefined = false\n */\n depthWrite?: boolean;\n}\n\nexport class SparkRenderer extends THREE.Mesh {\n readonly renderer: THREE.WebGLRenderer;\n readonly material: THREE.ShaderMaterial;\n readonly uniforms: ReturnType;\n\n autoUpdate: boolean;\n preUpdate: boolean;\n static sparkOverride?: SparkRenderer;\n\n renderSize = new THREE.Vector2();\n maxStdDev: number;\n minPixelRadius: number;\n maxPixelRadius: number;\n accumExtSplats: boolean;\n covSplats: boolean;\n minAlpha: number;\n enable2DGS: boolean;\n // enableRayEval: boolean;\n preBlurAmount: number;\n blurAmount: number;\n focalDistance: number;\n apertureAngle: number;\n falloff: number;\n clipXY: number;\n focalAdjustment: number;\n\n sortRadial: boolean;\n minSortIntervalMs: number;\n\n timer: THREE.Timer;\n time?: number;\n lastFrame = -1;\n updateTimeoutId = -1;\n onDirty?: () => void;\n dirty: boolean;\n\n orderingTexture: THREE.DataTexture | null = null;\n maxSplats = 0;\n activeSplats = 0;\n\n display: SplatAccumulator;\n current: SplatAccumulator;\n accumulators: SplatAccumulator[] = [];\n\n sorting = false;\n sortDirty = false;\n lastSortTime = 0;\n sortWorker: SplatWorker | null = null;\n sortTimeoutId = -1;\n sortedCenter = new THREE.Vector3().setScalar(Number.NEGATIVE_INFINITY);\n sortedDir = new THREE.Vector3().setScalar(0);\n readback32 = new Uint32Array(0);\n\n enableLod: boolean;\n enableDriveLod: boolean;\n enableLodFetching: boolean;\n lodSplatCount?: number;\n lodSplatScale: number;\n lodRenderScale: number;\n lodInflate: boolean;\n lodTraverseMode: \"dynamic\" | \"standard\";\n pagedExtSplats: boolean;\n maxPagedSplats: number;\n numLodFetchers: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n\n lodRaycast?: number;\n lodRaycastIntervalMs: number;\n lastLodRaycastTime = 0;\n\n lodWorker: SplatWorker | null = null;\n lodMeshes: { mesh: SplatMesh; version: number }[] = [];\n lodDirty = false;\n lodIds: Map<\n PackedSplats | ExtSplats | PagedSplats,\n { lodId: number; lastTouched: number; rootPage?: number }\n > = new Map();\n lodIdToSplats: Map =\n new Map();\n lodInitQueue: (PackedSplats | ExtSplats | PagedSplats)[] = [];\n lastLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n currentLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n lodPosOverride?: THREE.Vector3;\n lodQuatOverride?: THREE.Quaternion;\n lodInstances: Map<\n SplatMesh,\n {\n lodId: number;\n numSplats: number;\n indices: Uint32Array;\n texture: THREE.DataTexture;\n }\n > = new Map();\n lodUpdates: {\n lodId: number;\n pageBase: number;\n chunkBase: number;\n count: number;\n lodTreeData?: Uint32Array;\n }[] = [];\n lastTraverseTime = 0;\n lastPixelLimit?: number;\n\n pager?: SplatPager;\n pagerId = 0;\n // prefetchCameras: THREE.Camera[] = [];\n // prefetchLodScale = 1.0;\n // prefetchMeshesCache: SplatMesh[] = [];\n // prefetchMeshesCacheScene?: THREE.Scene;\n\n target?: THREE.WebGLRenderTarget;\n backTarget?: THREE.WebGLRenderTarget;\n superPixels?: Uint8Array;\n targetPixels?: Uint8Array;\n superXY = 1;\n\n flushAfterGenerate = false;\n flushAfterRead = false;\n readPause = 1;\n sortPause = 0;\n sortDelay = 0;\n\n constructor(options: SparkRendererOptions) {\n if (!options) {\n throw new Error(\"SparkRenderer options are required\");\n }\n if (!options.renderer) {\n throw new Error(\"renderer is required in SparkRenderer options\");\n }\n\n const uniforms = SparkRenderer.makeUniforms();\n Object.assign(uniforms, options.extraUniforms ?? {});\n\n const shaders = getShaders();\n const premultipliedAlpha = options.premultipliedAlpha ?? true;\n const geometry = new SplatGeometry();\n const material = new THREE.ShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: options.vertexShader ?? shaders.splatVertex,\n fragmentShader: options.fragmentShader ?? shaders.splatFragment,\n uniforms,\n premultipliedAlpha,\n transparent: options.transparent ?? true,\n depthTest: options.depthTest ?? true,\n depthWrite: options.depthWrite ?? false,\n side: THREE.DoubleSide,\n allowOverride: false,\n });\n\n super(geometry, material);\n this.material = material;\n this.uniforms = uniforms;\n // Disable frustum culling because we want to always draw them all\n // and cull Gsplats individually in the shader\n this.frustumCulled = false;\n\n // By default SparkRenderer will only render for layer 0\n // this.layers.enableAll();\n\n // sparkRendererInstance = this;\n this.renderer = options.renderer;\n this.onDirty = options.onDirty;\n this.dirty = true;\n this.autoUpdate = options.autoUpdate ?? true;\n this.preUpdate = options.preUpdate ?? true;\n\n this.maxStdDev = options.maxStdDev ?? Math.sqrt(8.0);\n this.minPixelRadius = options.minPixelRadius ?? 0.0; //1.6;\n this.maxPixelRadius = options.maxPixelRadius ?? 512.0;\n this.accumExtSplats = options.accumExtSplats ?? false;\n this.covSplats = options.covSplats ?? false;\n this.minAlpha = options.minAlpha ?? 0.5 * (1.0 / 255.0);\n this.enable2DGS = options.enable2DGS ?? false;\n // this.enableRayEval = options.enableRayEval ?? false;\n this.preBlurAmount = options.preBlurAmount ?? 0.0;\n this.blurAmount = options.blurAmount ?? 0.3;\n this.focalDistance = options.focalDistance ?? 0.0;\n this.apertureAngle = options.apertureAngle ?? 0.0;\n this.falloff = options.falloff ?? 1.0;\n this.clipXY = options.clipXY ?? 1.4;\n this.focalAdjustment = options.focalAdjustment ?? 1.0;\n\n this.sortRadial = options.sortRadial ?? true;\n this.minSortIntervalMs = options.minSortIntervalMs ?? 0;\n\n this.enableLod = options.enableLod ?? true;\n // enableDriveLod defaults to true if enableLod is true, false otherwise\n this.enableDriveLod = options.enableDriveLod ?? this.enableLod;\n this.enableLodFetching = options.enableLodFetching ?? true;\n this.lodSplatCount = options.lodSplatCount;\n this.lodSplatScale = options.lodSplatScale ?? 1.0;\n this.lodRenderScale = options.lodRenderScale ?? 1.0;\n this.lodInflate = options.lodInflate ?? false;\n this.lodTraverseMode = options.lodTraverseMode ?? \"standard\";\n this.pagedExtSplats = options.pagedExtSplats ?? false;\n const defaultPages = isMobile() ? (isIos() ? 96 : 128) : 256;\n this.maxPagedSplats = options.maxPagedSplats ?? defaultPages * 65536;\n this.numLodFetchers = options.numLodFetchers ?? 3;\n this.behindFoveate = options.behindFoveate ?? 0.2;\n this.coneFov0 = options.coneFov0 ?? 90.0;\n this.coneFov = options.coneFov ?? 120.0;\n this.coneFoveate = options.coneFoveate ?? 0.4;\n\n this.lodRaycast =\n options.lodRaycast === undefined\n ? isMobile()\n ? 10000\n : 25000\n : options.lodRaycast;\n this.lodRaycastIntervalMs = options.lodRaycastIntervalMs ?? 500;\n\n this.timer = options.timer ?? new THREE.Timer();\n\n const accumulatorOptions = {\n extSplats: this.accumExtSplats,\n covSplats: this.covSplats,\n };\n this.display = new SplatAccumulator(accumulatorOptions);\n this.current = this.display;\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n\n // Check if the provoking vertex convention should be changed\n const provokingVertexExt = this.renderer\n .getContext()\n .getExtension(\"WEBGL_provoking_vertex\");\n if (provokingVertexExt) {\n provokingVertexExt.provokingVertexWEBGL(\n provokingVertexExt.FIRST_VERTEX_CONVENTION_WEBGL,\n );\n }\n\n if (options.target) {\n const {\n width,\n height,\n doubleBuffer,\n superXY: origSuperXY,\n ...origTargetOptions\n } = options.target;\n const superXY = Math.max(1, Math.min(4, origSuperXY ?? 1));\n if (width * superXY > 8192 || height * superXY > 8192) {\n throw new Error(\"Target size too large\");\n }\n this.superXY = superXY;\n\n const superWidth = width * superXY;\n const superHeight = height * superXY;\n const targetOptions: THREE.RenderTargetOptions = {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n ...origTargetOptions,\n };\n\n this.target = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n if (doubleBuffer) {\n this.backTarget = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n }\n }\n }\n\n static makeUniforms() {\n const uniforms = {\n // // number of active splats to render\n // numSplats: { value: 0 },\n // Size of render viewport in pixels\n renderSize: { value: new THREE.Vector2() },\n // Near and far plane distances\n near: { value: 0.1 },\n far: { value: 1000.0 },\n // SplatAccumulator to view transformation quaternion\n renderToViewQuat: { value: new THREE.Quaternion() },\n // SplatAccumulator to view transformation translation\n renderToViewPos: { value: new THREE.Vector3() },\n renderToViewBasis: { value: new THREE.Matrix3() },\n renderToViewOffset: { value: new THREE.Vector3() },\n // Maximum distance (in stddevs) from Gsplat center to render\n maxStdDev: { value: 1.0 },\n // Minimum pixel radius for splat rendering\n minPixelRadius: { value: 0.0 },\n // Maximum pixel radius for splat rendering\n maxPixelRadius: { value: 512.0 },\n // Minimum alpha value for splat rendering\n minAlpha: { value: 0.5 * (1.0 / 255.0) },\n // Enable interpreting 0-thickness Gsplats as 2DGS\n enable2DGS: { value: false },\n // Enable ray-splat max response evaluation\n // enableRayEval: { value: false },\n // Inflate LoD splats so that opacity <= 1.0\n lodInflate: { value: false },\n // Add to projected 2D splat covariance diagonal (thickens and brightens)\n preBlurAmount: { value: 0.0 },\n // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing)\n blurAmount: { value: 0.3 },\n // Depth-of-field distance to focal plane\n focalDistance: { value: 0.0 },\n // Full-width angle of aperture opening (in radians)\n apertureAngle: { value: 0.0 },\n // Modulate Gaussian kernal falloff. 0 means \"no falloff, flat shading\",\n // 1 is normal e^-x^2 falloff.\n falloff: { value: 1.0 },\n // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds\n clipXY: { value: 1.4 },\n // Debug renderSize scale factor\n focalAdjustment: { value: 1.0 },\n // Whether to encode Gsplat with linear RGB (for environment mapping)\n encodeLinear: { value: false },\n // Back-to-front sort ordering of splat indices\n ordering: { type: \"t\", value: SparkRenderer.emptyOrdering },\n enableExtSplats: { value: false },\n enableCovSplats: { value: false },\n // Gsplat collection to render\n extSplats: { type: \"t\", value: SplatAccumulator.emptyTexture },\n extSplats2: { type: \"t\", value: SplatAccumulator.emptyTexture },\n // Time in seconds for time-based effects\n time: { value: 0 },\n // Delta time in seconds since last frame\n deltaTime: { value: 0 },\n // Debug flag that alternates each frame\n debugFlag: { value: false },\n };\n return uniforms;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n if (this.backTarget) {\n this.backTarget.dispose();\n this.backTarget = undefined;\n }\n if (this.orderingTexture) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n\n const accumulators = new Set();\n accumulators.add(this.display);\n accumulators.add(this.current);\n for (const accumulator of this.accumulators) {\n accumulators.add(accumulator);\n }\n for (const accumulator of accumulators) {\n accumulator.dispose();\n }\n\n const instances = this.lodInstances.values();\n this.lodInstances.clear();\n for (const instance of instances) {\n instance.texture.dispose();\n }\n\n if (this.sortWorker) {\n this.sortWorker.dispose();\n this.sortWorker = null;\n }\n if (this.lodWorker) {\n this.lodWorker.dispose();\n this.lodWorker = null;\n }\n if (this.pager) {\n this.pager.dispose();\n this.pager = undefined;\n }\n }\n\n setDirty() {\n if (!this.dirty) {\n this.dirty = true;\n this.onDirty?.();\n }\n }\n\n onBeforeRender(\n renderer: THREE.WebGLRenderer,\n scene: THREE.Scene,\n camera: THREE.Camera,\n ) {\n const spark = SparkRenderer.sparkOverride ?? this;\n\n const frame = renderer.info.render.frame;\n const isNewFrame = frame !== spark.lastFrame;\n spark.lastFrame = frame;\n\n // Determine render target\n const currentRenderTarget = renderer.getRenderTarget();\n const isXRRenderTarget = checkIsXRRenderTarget(currentRenderTarget);\n if (currentRenderTarget) {\n spark.renderSize.set(\n currentRenderTarget.width,\n currentRenderTarget.height,\n );\n\n // WebXR mode on Apple Vision Pro returns 1x1 when presenting.\n // Use a different means to figure out the render size.\n if (\n isXRRenderTarget &&\n spark.renderSize.x === 1 &&\n spark.renderSize.y === 1\n ) {\n const baseLayer = renderer.xr.getSession()?.renderState.baseLayer;\n if (baseLayer) {\n spark.renderSize.x = baseLayer.framebufferWidth;\n spark.renderSize.y = baseLayer.framebufferHeight;\n }\n }\n } else {\n renderer.getDrawingBufferSize(spark.renderSize);\n }\n this.uniforms.renderSize.value.copy(spark.renderSize);\n\n const typedCamera = camera as\n | THREE.PerspectiveCamera\n | THREE.OrthographicCamera;\n\n this.uniforms.near.value = typedCamera.near;\n this.uniforms.far.value = typedCamera.far;\n\n const geometry = this.geometry as SplatGeometry;\n geometry.instanceCount = spark.activeSplats;\n\n const accumToWorld = new THREE.Matrix4();\n if (!this.display.extSplats) {\n accumToWorld.makeTranslation(spark.display.viewOrigin);\n }\n const cameraToWorld = camera.matrixWorld.clone();\n const worldToCamera = cameraToWorld.invert();\n const accumToCamera = worldToCamera.multiply(accumToWorld);\n accumToCamera.decompose(\n this.uniforms.renderToViewPos.value,\n this.uniforms.renderToViewQuat.value,\n new THREE.Vector3(),\n );\n this.uniforms.renderToViewBasis.value.setFromMatrix4(accumToCamera);\n\n this.uniforms.maxStdDev.value = spark.maxStdDev;\n this.uniforms.minPixelRadius.value = spark.minPixelRadius;\n this.uniforms.maxPixelRadius.value = spark.maxPixelRadius;\n this.uniforms.minAlpha.value = spark.minAlpha;\n this.uniforms.enable2DGS.value = spark.enable2DGS;\n // this.uniforms.enableRayEval.value = spark.enableRayEval;\n this.uniforms.lodInflate.value = spark.lodInflate;\n this.uniforms.preBlurAmount.value = spark.preBlurAmount;\n this.uniforms.blurAmount.value = spark.blurAmount;\n this.uniforms.focalDistance.value = spark.focalDistance;\n this.uniforms.apertureAngle.value = spark.apertureAngle;\n this.uniforms.falloff.value = spark.falloff;\n this.uniforms.clipXY.value = spark.clipXY;\n this.uniforms.focalAdjustment.value = spark.focalAdjustment;\n\n const outputColorSpace =\n currentRenderTarget === null\n ? renderer.outputColorSpace\n : isXRRenderTarget\n ? currentRenderTarget.texture.colorSpace\n : THREE.ColorManagement.workingColorSpace;\n this.uniforms.encodeLinear.value =\n outputColorSpace !== THREE.SRGBColorSpace;\n\n this.uniforms.ordering.value =\n spark.orderingTexture ?? SparkRenderer.emptyOrdering;\n this.uniforms.enableExtSplats.value = this.display.extSplats;\n this.uniforms.enableCovSplats.value = this.display.covSplats;\n if (this.display.extSplats) {\n const extSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = extSplats[0];\n this.uniforms.extSplats2.value = extSplats[1];\n } else {\n const packedSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = packedSplats[0];\n this.uniforms.extSplats2.value = packedSplats[0];\n }\n\n this.uniforms.time.value = spark.display.time;\n this.uniforms.deltaTime.value = spark.display.deltaTime;\n // Alternating debug flag that can aid in visual debugging\n this.uniforms.debugFlag.value = (performance.now() / 1000.0) % 2.0 < 1.0;\n\n if (spark.autoUpdate && isNewFrame) {\n const preUpdate = spark.preUpdate && !renderer.xr.isPresenting;\n const useCamera = renderer.xr.isPresenting\n ? renderer.xr.getCamera()\n : camera;\n if (preUpdate) {\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n } else {\n if (spark.updateTimeoutId === -1) {\n spark.updateTimeoutId = setTimeout(() => {\n spark.updateTimeoutId = -1;\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n }, 1);\n }\n }\n }\n\n spark.dirty = false;\n }\n\n clearSplats() {\n this.activeSplats = 0;\n this.display.numSplats = 0;\n this.setDirty();\n }\n\n async update({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }) {\n await this.updateInternal({ scene, camera, autoUpdate: false });\n }\n\n // /**\n // * Provide additional cameras to prefetch paged splat chunks without\n // * affecting main LOD selection.\n // */\n // setPrefetchCameras(cameras?: THREE.Camera[], lodScaleMultiplier = 1.0) {\n // const next = cameras?.filter(Boolean) ?? [];\n // const sameCameras =\n // this.prefetchCameras.length === next.length &&\n // this.prefetchCameras.every((camera, index) => camera === next[index]);\n // if (sameCameras && this.prefetchLodScale === lodScaleMultiplier) {\n // return;\n // }\n // this.prefetchCameras = next;\n // this.prefetchLodScale = lodScaleMultiplier;\n // this.invalidatePrefetchCache();\n // }\n\n // /**\n // * Invalidate the prefetch meshes cache. Call this when SplatMeshes are\n // * added or removed from the scene.\n // */\n // invalidatePrefetchCache() {\n // this.prefetchMeshesCacheScene = undefined;\n // }\n\n private async updateInternal({\n scene,\n camera,\n autoUpdate,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n autoUpdate: boolean;\n }) {\n const renderer = this.renderer;\n this.timer.update();\n const time = this.time ?? this.timer.getElapsed();\n\n const center = camera.getWorldPosition(new THREE.Vector3());\n const dir = camera.getWorldDirection(new THREE.Vector3());\n\n const viewChanged =\n center.distanceTo(this.sortedCenter) > 0.001 ||\n dir.dot(this.sortedDir) < 0.999;\n\n const next = this.accumulators.pop();\n if (!next) {\n // Should never happen\n throw new Error(\"No next accumulator\");\n }\n if (next === this.current) {\n // Should never happen\n throw new Error(\n \"Next accumulator is the same as the current accumulator\",\n );\n }\n const { version, mappingVersion, visibleGenerators, generate } =\n next.prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial: this.sortRadial ?? true,\n renderSize: this.renderSize,\n previous: this.current,\n lodInstances: this.enableLod ? this.lodInstances : undefined,\n });\n\n let doUpdate = true;\n const needsUpdate = viewChanged || version !== this.current.version;\n const mappingUpdated = mappingVersion !== this.display.mappingVersion;\n\n if (autoUpdate && !needsUpdate) {\n // Triggered by auto-update but no change\n doUpdate = false;\n }\n\n if (mappingUpdated && this.sorting) {\n // We need to be able to sort the splats because the mapping has changed.\n // Try again next time around.\n doUpdate = false;\n }\n\n if (!doUpdate) {\n // Restore unused accumulator to the free list\n this.accumulators.push(next);\n } else {\n generate();\n\n if (this.flushAfterGenerate) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n if (this.display.mappingVersion === next.mappingVersion) {\n // Same splat mapping so let's display it immediately and\n // reuse the sort order\n this.accumulators.push(this.display);\n this.display = next;\n } else {\n if (this.display !== this.current) {\n // The previous current is not being displayed, so replace it\n this.accumulators.push(this.current);\n }\n }\n\n this.current = next;\n this.sortDirty = true;\n this.setDirty();\n }\n\n if (this.enableDriveLod) {\n this.driveLod({ visibleGenerators, camera, scene });\n }\n await this.driveSort();\n }\n\n private async driveSort() {\n if (this.sorting || !this.sortDirty) {\n return;\n }\n\n if (this.sortTimeoutId !== -1) {\n clearTimeout(this.sortTimeoutId);\n this.sortTimeoutId = -1;\n }\n\n const now = performance.now();\n const nextSortTime = this.lastSortTime\n ? this.lastSortTime + this.minSortIntervalMs\n : now;\n if (now < nextSortTime) {\n this.sortTimeoutId = setTimeout(() => {\n this.sortTimeoutId = -1;\n this.driveSort();\n }, nextSortTime - now);\n return;\n }\n\n this.sorting = true;\n this.sortDirty = false;\n this.lastSortTime = now;\n\n if (this.readPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.readPause));\n }\n\n const current = this.current;\n\n this.sortedCenter.copy(current.viewOrigin);\n this.sortedDir.copy(current.viewDirection);\n\n const { numSplats, maxSplats } = current;\n const rows = Math.max(1, Math.ceil(maxSplats / 16384));\n const orderingMaxSplats = rows * 16384;\n this.maxSplats = Math.max(this.maxSplats, orderingMaxSplats);\n\n const ordering = new Uint32Array(this.maxSplats);\n const readback = Readback.ensureBuffer(maxSplats, this.readback32);\n this.readback32 = readback;\n\n await this.readbackDepth({\n current,\n renderer: this.renderer,\n numSplats,\n readback,\n });\n\n if (this.sortPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortPause));\n }\n\n if (!this.sortWorker) {\n this.sortWorker = new SplatWorker();\n }\n const result = (await this.sortWorker.call(\"sortSplats32\", {\n numSplats,\n readback,\n ordering,\n })) as {\n readback: Uint32Array;\n ordering: Uint32Array;\n activeSplats: number;\n };\n\n if (this.sortDelay > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortDelay));\n }\n\n this.readback32 = result.readback;\n\n this.activeSplats = result.activeSplats;\n\n if (this.orderingTexture) {\n if (rows > this.orderingTexture.image.height) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n }\n\n if (!this.orderingTexture) {\n // console.log(`Allocating orderingTexture: ${4096}x${rows}`);\n const orderingTexture = new THREE.DataTexture(\n result.ordering,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n orderingTexture.internalFormat = \"RGBA32UI\";\n orderingTexture.needsUpdate = true;\n this.orderingTexture = orderingTexture;\n } else {\n const renderer = this.renderer;\n if (!renderer.properties.has(this.orderingTexture)) {\n this.orderingTexture.needsUpdate = true;\n } else {\n uploadU32DataTextureRows(\n renderer,\n this.orderingTexture,\n 4096,\n rows,\n result.ordering,\n );\n }\n }\n\n // console.log(`Sorted (${this.minSortIntervalMs}) ${numSplats} splats in ${(performance.now() - now).toFixed(0)} ms`);\n\n if (this.current.mappingVersion === current.mappingVersion) {\n if (this.current.mappingVersion !== this.display.mappingVersion) {\n this.accumulators.push(this.display);\n this.display = this.current;\n }\n }\n this.sorting = false;\n this.setDirty();\n\n this.driveSort();\n }\n\n private ensureLodWorker() {\n if (!this.lodWorker) {\n this.lodWorker = new SplatWorker();\n }\n return this.lodWorker;\n }\n\n defaultSplatTarget() {\n return isOculus()\n ? 500000\n : isVisionPro()\n ? 750000\n : isAndroid()\n ? 1000000\n : isIos()\n ? 1500000\n : 2500000;\n }\n\n private driveLod({\n visibleGenerators,\n camera,\n scene,\n }: {\n visibleGenerators: SplatGenerator[];\n camera: THREE.Camera;\n scene: THREE.Scene;\n }) {\n const defaultSplatCount = this.defaultSplatTarget();\n const splatCount = this.lodSplatCount ?? defaultSplatCount;\n const maxSplats = splatCount * this.lodSplatScale;\n\n let pixelScaleLimit = 0.0;\n if (camera instanceof THREE.PerspectiveCamera) {\n const tanYfov = Math.tan((0.5 * camera.fov * Math.PI) / 180);\n pixelScaleLimit = (2.0 * tanYfov) / this.renderSize.y;\n } else if (camera instanceof THREE.OrthographicCamera) {\n // Effective visible size after zoom\n const viewHeight = (camera.top - camera.bottom) / camera.zoom;\n const viewWidth = (camera.right - camera.left) / camera.zoom;\n // World/view units per pixel (constant with depth for ortho)\n const pxY = viewHeight / Math.max(1, this.renderSize.y);\n const pxX = viewWidth / Math.max(1, this.renderSize.x);\n pixelScaleLimit = Math.min(pxX, pxY);\n }\n\n pixelScaleLimit *= this.lodRenderScale;\n\n const viewPos = new THREE.Vector3();\n const viewQuat = new THREE.Quaternion();\n this.current.viewToWorld.decompose(viewPos, viewQuat, new THREE.Vector3());\n\n if (this.lodPosOverride) {\n viewPos.copy(this.lodPosOverride);\n }\n if (this.lodQuatOverride) {\n viewQuat.copy(this.lodQuatOverride).normalize();\n }\n\n if (this.lastLod) {\n if (\n this.lastLod.pixelScaleLimit !== pixelScaleLimit ||\n this.lastLod.maxSplats !== maxSplats\n ) {\n this.lodDirty = true;\n }\n\n const distance = viewPos.distanceTo(this.lastLod.pos);\n const distanceRamp = Math.max(0.0, 1.0 - distance / 1.0);\n const dot = viewQuat.dot(this.lastLod.quat);\n const quatRamp = Math.max(0.0, 1.0 - (1.0 - dot) / 0.01);\n const similarity = distanceRamp * quatRamp;\n if (similarity < 0.999) {\n this.lodDirty = true;\n }\n }\n\n const lodMeshes = !this.enableLod\n ? []\n : (visibleGenerators.filter((generator) => {\n return (\n generator instanceof SplatMesh &&\n (generator.packedSplats?.lodSplats ||\n generator.extSplats?.lodSplats ||\n generator.paged) &&\n generator.enableLod !== false\n );\n }) as SplatMesh[]);\n const hasPaged = lodMeshes.some((mesh) => mesh.paged);\n\n if (this.lodMeshes.length !== lodMeshes.length) {\n this.lodDirty = true;\n } else {\n if (\n lodMeshes.some(\n (m, i) =>\n m !== this.lodMeshes[i].mesh ||\n m.version > this.lodMeshes[i].version,\n )\n ) {\n this.lodDirty = true;\n }\n }\n\n this.lodMeshes = lodMeshes.map((mesh) => ({\n mesh,\n version: mesh.version + 1,\n }));\n\n // if (!this.lodDirty && lodMeshes.length === 0 && this.lodIds.size === 0) {\n // return;\n // }\n\n this.lodInitQueue = [];\n const now = performance.now();\n\n for (const mesh of lodMeshes) {\n const splats =\n mesh.packedSplats?.lodSplats ?? mesh.extSplats?.lodSplats ?? mesh.paged;\n if (splats) {\n const record = this.lodIds.get(splats);\n if (record) {\n record.lastTouched = now;\n } else {\n this.lodInitQueue.push(splats);\n }\n }\n }\n\n this.ensureLodWorker().tryExclusive(async (worker) => {\n if (hasPaged && !this.pager) {\n this.pager = new SplatPager({\n renderer: this.renderer,\n extSplats: this.pagedExtSplats,\n maxSplats: this.maxPagedSplats,\n numFetchers: this.numLodFetchers,\n });\n\n const { lodId } = (await worker.call(\"newLodTree\", {\n capacity: this.pager.maxSplats,\n })) as { lodId: number };\n this.pagerId = lodId;\n }\n\n // Assign pager to any new meshes that don't have one yet\n // (must run every frame, not just when pager is first created)\n if (this.pager) {\n for (const { mesh } of this.lodMeshes) {\n if (mesh.paged && !mesh.paged.pager) {\n mesh.paged.pager = this.pager;\n }\n }\n }\n\n if (this.lodInitQueue.length > 0) {\n const lodInitQueue = this.lodInitQueue;\n this.lodInitQueue = [];\n while (lodInitQueue.length > 0) {\n const splats = lodInitQueue.shift();\n if (splats) {\n await this.initLodTree(worker, splats);\n this.lodDirty = true;\n }\n }\n }\n\n if (this.pager) {\n const updates = this.pager.consumeLodTreeUpdates();\n\n for (const { splats, page, chunk, numSplats, lodTree } of updates) {\n const record = this.lodIds.get(splats);\n if (record) {\n if (lodTree && chunk === 0) {\n record.rootPage = page;\n }\n this.lodUpdates.push({\n lodId: record.lodId,\n pageBase: page * this.pager.pageSplats,\n chunkBase: chunk * this.pager.pageSplats,\n count: numSplats,\n lodTreeData: lodTree,\n });\n }\n }\n }\n\n if (this.lodUpdates.length > 0) {\n const lodUpdates = this.lodUpdates;\n this.lodUpdates = [];\n await worker.call(\"updateLodTrees\", { ranges: lodUpdates });\n this.lodDirty = true;\n }\n\n if (this.lodDirty) {\n const now = performance.now();\n const deltaPred = new THREE.Vector3();\n if (this.lastLod) {\n const deltaTime = Math.max(1, now - this.lastLod.timestamp);\n deltaPred\n .copy(viewPos)\n .sub(this.lastLod.pos)\n .multiplyScalar(this.lastTraverseTime / deltaTime);\n }\n this.lastLod = {\n pos: viewPos,\n quat: viewQuat,\n pixelScaleLimit,\n maxSplats,\n timestamp: now,\n };\n this.lodDirty = false;\n\n await this.updateLodInstances(\n worker,\n deltaPred,\n lodMeshes,\n maxSplats,\n viewPos,\n viewQuat,\n pixelScaleLimit,\n );\n this.currentLod = this.lastLod;\n this.setDirty();\n }\n\n await this.cleanupLodTrees(worker);\n });\n }\n\n private async initLodTree(\n worker: SplatWorker,\n splats: PackedSplats | ExtSplats | PagedSplats,\n ) {\n if (splats instanceof PackedSplats || splats instanceof ExtSplats) {\n const { lodId } = (await worker.call(\"initLodTree\", {\n numSplats: splats.numSplats ?? 0,\n lodTree: (splats.extra.lodTree as Uint32Array).slice(),\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** initLodTree\", lodId, splats.extra.lodTree, splats);\n } else {\n const { lodId } = (await worker.call(\"newSharedLodTree\", {\n lodId: this.pagerId,\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** newSharedLodTree\", lodId, this.pagerId, splats);\n }\n }\n\n private pageSizeWarning = false;\n\n private async updateLodInstances(\n worker: SplatWorker,\n deltaPred: THREE.Vector3,\n lodMeshes: SplatMesh[],\n maxSplats: number,\n viewPos: THREE.Vector3,\n viewQuat: THREE.Quaternion,\n pixelScaleLimit: number,\n ) {\n // Commented out because it makes LoDing less stable\n // viewPos.add(deltaPred);\n\n const uuidToMesh: Map = new Map();\n const cameraToWorld = new THREE.Matrix4().compose(\n viewPos,\n viewQuat,\n new THREE.Vector3().setScalar(1),\n );\n\n const instances = lodMeshes.reduce(\n (instances, mesh) => {\n uuidToMesh.set(mesh.uuid, mesh);\n const viewToObject = mesh.matrixWorld\n .clone()\n .invert()\n .multiply(cameraToWorld);\n\n const splats =\n mesh.packedSplats?.lodSplats ??\n mesh.extSplats?.lodSplats ??\n mesh.paged;\n if (!splats) {\n return instances;\n }\n const record = this.lodIds.get(splats);\n if (!record) {\n return instances;\n }\n\n if (this.pager && mesh.paged && record.rootPage === undefined) {\n return instances;\n }\n\n instances[mesh.uuid] = {\n instanceId: mesh.uuid,\n lodId: record.lodId,\n rootPage: record.rootPage,\n viewToObjectCols: viewToObject.elements,\n lodScale: mesh.lodScale,\n behindFoveate: mesh.behindFoveate ?? this.behindFoveate,\n coneFov0: mesh.coneFov0 ?? this.coneFov0,\n coneFov: mesh.coneFov ?? this.coneFov,\n coneFoveate: mesh.coneFoveate ?? this.coneFoveate,\n };\n return instances;\n },\n {} as Record<\n string,\n {\n instanceId: string;\n lodId: number;\n rootPage?: number;\n viewToObjectCols: number[];\n lodScale: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n }\n >,\n );\n\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit: this.lastPixelLimit,\n instances,\n traverseMode: this.lodTraverseMode,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n chunks: [number, number][];\n pixelLimit?: number;\n };\n this.lastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices, chunks, pixelLimit } = result;\n this.lastPixelLimit = pixelLimit;\n const totalLodSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n // console.log(\n // `traverseLodTrees in ${this.lastTraverseTime} ms, pixelLimit=${pixelLimit}, totalLodSplats=${totalLodSplats}`,\n // );\n\n this.updateLodIndices(uuidToMesh, keyIndices);\n // console.log(\"chunks.length =\", chunks.length);\n\n if (this.pager) {\n this.pager.processUploads();\n\n const pagedMeshes = lodMeshes\n .map((mesh) => {\n if (!mesh.paged || !this.pager) {\n return null;\n }\n const meshPosition = mesh.getWorldPosition(new THREE.Vector3());\n return {\n splats: mesh.paged,\n distance: meshPosition.distanceTo(viewPos),\n };\n })\n .filter((result) => result !== null);\n\n if (!this.pageSizeWarning && pagedMeshes.length > this.pager.maxPages) {\n this.pageSizeWarning = true;\n console.warn(\n `# paged SplatMeshes exceeds maxPages: ${pagedMeshes.length} > ${this.pager.maxPages}`,\n );\n }\n\n // Fetch root chunk of each paged splats in priority of distance to camera\n pagedMeshes.sort((a, b) => a.distance - b.distance);\n this.pager.fetchPriority = pagedMeshes.map(({ splats }) => ({\n splats,\n chunk: 0,\n }));\n\n for (const [lodId, chunk] of chunks) {\n const splats = this.lodIdToSplats.get(lodId);\n if (splats instanceof PagedSplats) {\n if (chunk !== 0) {\n this.pager.fetchPriority.push({ splats, chunk });\n }\n }\n }\n\n this.pager.autoDrive = this.enableLodFetching;\n if (this.enableLodFetching) {\n this.pager.driveFetchers();\n }\n }\n\n if (\n this.lodRaycast &&\n performance.now() - this.lastLodRaycastTime >= this.lodRaycastIntervalMs\n ) {\n this.lastLodRaycastTime = performance.now();\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats: Math.min(this.lodRaycast, Math.round(totalLodSplats * 0.1)),\n pixelScaleLimit,\n instances,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n };\n const raycastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices } = result;\n const totalRaycastSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n mesh.raycastIndices = countIndices;\n // console.log(\"Set raycast indices\", uuid, countIndices.numSplats, countIndices.indices.length);\n }\n // console.log(`raycast traverse in ${raycastTraverseTime} ms, totalRaycastSplats=${totalRaycastSplats}`);\n }\n }\n\n private async cleanupLodTrees(worker: SplatWorker) {\n const DISPOSE_TIMEOUT_MS = 3000;\n const now = performance.now();\n\n let oldest = null;\n for (const [splats, record] of this.lodIds.entries()) {\n if (oldest == null || record.lastTouched < oldest.lastTouched) {\n oldest = {\n splats,\n lastTouched: record.lastTouched,\n lodId: record.lodId,\n };\n }\n }\n if (!oldest || oldest.lastTouched > now - DISPOSE_TIMEOUT_MS) {\n return;\n }\n\n this.lodIds.delete(oldest.splats);\n this.lodIdToSplats.delete(oldest.lodId);\n\n for (const [mesh, instance] of this.lodInstances.entries()) {\n if (instance.lodId === oldest.lodId) {\n instance.texture.dispose();\n this.lodInstances.delete(mesh);\n }\n }\n\n if (oldest.splats instanceof PagedSplats) {\n this.pager?.removeSplats(oldest.splats);\n }\n\n await worker.call(\"disposeLodTree\", { lodId: oldest.lodId });\n // console.log(\"disposed lodTree\", oldest.lodId);\n }\n\n private updateLodIndices(\n uuidToMesh: Map,\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >,\n ) {\n // console.log(\"updateLodIndices\", keyIndices);\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const { lodId, numSplats, indices } = countIndices;\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n\n if (mesh.paged) {\n mesh.paged.update(numSplats, indices);\n // console.log(\"*** paged.update\", lodId, numSplats, indices.slice(0, 5).join(\",\"));\n } else {\n let instance = this.lodInstances.get(mesh);\n if (instance) {\n if (indices.length > instance.indices.length) {\n instance.texture.dispose();\n instance = undefined;\n }\n }\n\n const rows = Math.ceil(indices.length / 16384);\n if (!instance) {\n const capacity = rows * 16384;\n if (indices.length !== capacity) {\n throw new Error(\"Indices length != capacity\");\n }\n const texture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n instance = { lodId, numSplats, indices, texture };\n this.lodInstances.set(mesh, instance);\n } else {\n instance.numSplats = numSplats;\n // instance.indices.set(indices.subarray(0, numSplats));\n\n const renderer = this.renderer;\n const gl = renderer.getContext() as WebGL2RenderingContext;\n if (renderer.properties.has(instance.texture)) {\n const props = renderer.properties.get(instance.texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"lodIndices texture not found\");\n }\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n indices,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n }\n mesh.updateMappingVersion();\n }\n }\n\n private async readbackDepth({\n current,\n renderer,\n numSplats,\n readback,\n }: {\n current: SplatAccumulator;\n renderer: THREE.WebGLRenderer;\n numSplats: number;\n readback: Uint32Array;\n }) {\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!current.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(readback.buffer);\n const renderState = this.saveRenderState(renderer);\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < numSplats) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((numSplats - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n renderer.setRenderTarget(current.target, layer);\n\n const promise = renderer.readRenderTargetPixelsAsync(\n current.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n undefined,\n current.extSplats ? 2 : 1,\n );\n promises.push(promise);\n\n if (this.flushAfterRead) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.resetRenderState(renderer, renderState);\n return Promise.all(promises).then(() => readback);\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private static emptyOrdering = (() => {\n const numIndices = 4 * 4096 * 1;\n const emptyArray = new Uint32Array(numIndices);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n render(scene: THREE.Scene, camera: THREE.Camera) {\n try {\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n }\n\n renderTarget({\n scene,\n camera,\n }: { scene: THREE.Scene; camera: THREE.Camera }): THREE.WebGLRenderTarget {\n const target = this.backTarget ?? this.target;\n if (!target) {\n throw new Error(\"No target\");\n }\n\n const previousTarget = this.renderer.getRenderTarget();\n try {\n this.renderer.setRenderTarget(target);\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n this.renderer.setRenderTarget(previousTarget);\n }\n\n if (target !== this.target) {\n // Swap back buffer and target\n [this.target, this.backTarget] = [this.backTarget, this.target];\n }\n return target;\n }\n\n // Read back the previously rendered target image as a Uint8Array of packed\n // RGBA values (in that order). Subsequent calls to this.readTarget()\n // will reuse the same buffers to minimize memory allocations.\n async readTarget(): Promise {\n if (!this.target) {\n throw new Error(\"Must initialize with target\");\n }\n const { width, height } = this.target;\n const byteSize = width * height * 4;\n if (!this.superPixels || this.superPixels.length < byteSize) {\n this.superPixels = new Uint8Array(byteSize);\n // console.log(`Allocated superPixels: ${width}x${height} = ${pixelCount} bytes`);\n }\n const superPixels = this.superPixels;\n\n await this.renderer.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n width,\n height,\n superPixels,\n );\n\n const { superXY } = this;\n if (superXY === 1) {\n return superPixels;\n }\n\n const subWidth = width / superXY;\n const subHeight = height / superXY;\n const subSize = subWidth * subHeight * 4;\n if (!this.targetPixels || this.targetPixels.length < subSize) {\n this.targetPixels = new Uint8Array(subSize);\n // console.log(`Allocated targetPixels: ${subWidth}x${subHeight} = ${subSize} bytes`);\n }\n const targetPixels = this.targetPixels;\n\n const super2 = superXY * superXY;\n for (let y = 0; y < subHeight; y++) {\n const row = y * subWidth;\n for (let x = 0; x < subWidth; x++) {\n const superCol = x * superXY;\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n for (let sy = 0; sy < superXY; sy++) {\n const superRow = (y * superXY + sy) * width;\n for (let sx = 0; sx < superXY; sx++) {\n const superIndex = (superRow + superCol + sx) * 4;\n r += superPixels[superIndex];\n g += superPixels[superIndex + 1];\n b += superPixels[superIndex + 2];\n a += superPixels[superIndex + 3];\n }\n }\n const pixelIndex = (row + x) * 4;\n targetPixels[pixelIndex] = r / super2;\n targetPixels[pixelIndex + 1] = g / super2;\n targetPixels[pixelIndex + 2] = b / super2;\n targetPixels[pixelIndex + 3] = a / super2;\n }\n }\n return targetPixels;\n }\n\n async renderReadTarget({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }): Promise {\n this.renderTarget({ scene, camera });\n return this.readTarget();\n }\n\n // Data and buffers used for environment map rendering\n private static cubeRender: {\n target: THREE.WebGLCubeRenderTarget;\n cubeCamera: THREE.CubeCamera;\n near: number;\n far: number;\n } | null = null;\n private static pmrem: THREE.PMREMGenerator | null = null;\n\n // Renders out the scene to a cube map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces.\n async renderCubeMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n filter = false,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n filter: boolean;\n }): Promise {\n if (\n !SparkRenderer.cubeRender ||\n SparkRenderer.cubeRender.target.width !== size ||\n SparkRenderer.cubeRender.near !== near ||\n SparkRenderer.cubeRender.far !== far\n ) {\n if (SparkRenderer.cubeRender) {\n SparkRenderer.cubeRender.target.dispose();\n }\n const target = new THREE.WebGLCubeRenderTarget(size, {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n generateMipmaps: filter,\n minFilter: filter ? THREE.LinearMipMapLinearFilter : THREE.LinearFilter,\n magFilter: THREE.LinearFilter,\n colorSpace: filter ? THREE.LinearSRGBColorSpace : THREE.SRGBColorSpace,\n });\n const cubeCamera = new THREE.CubeCamera(near, far, target);\n SparkRenderer.cubeRender = { target, cubeCamera, near, far };\n }\n\n const { target, cubeCamera } = SparkRenderer.cubeRender;\n cubeCamera.position.copy(worldCenter);\n\n // Save the visibility state of objects we want to hide before render\n const objectVisibility = new Map();\n for (const object of hideObjects) {\n objectVisibility.set(object, object.visible);\n object.visible = false;\n }\n\n if (update) {\n const tempCamera = new THREE.Camera();\n tempCamera.position.copy(worldCenter);\n await this.update({ scene, camera: tempCamera });\n }\n\n try {\n SparkRenderer.sparkOverride = this;\n // Update the CubeCamera, which performs 6 cube face renders\n cubeCamera.update(this.renderer, scene);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n\n // Restore viewpoint to default and object visibility\n for (const [object, visible] of objectVisibility.entries()) {\n object.visible = visible;\n }\n\n return target.texture;\n }\n\n async readCubeTargets(): Promise {\n if (!SparkRenderer.cubeRender) {\n throw new Error(\"No cube render\");\n }\n\n const textures = SparkRenderer.cubeRender.target.texture;\n const promises = [];\n const buffers = [];\n\n for (let i = 0; i < textures.images.length; ++i) {\n const { width, height } = textures.images[i];\n const byteSize = width * height * 4;\n const readback = new Uint8Array(byteSize);\n buffers.push(readback);\n const promise = this.renderer.readRenderTargetPixelsAsync(\n SparkRenderer.cubeRender.target,\n 0,\n 0,\n width,\n height,\n readback,\n i,\n );\n promises.push(promise);\n }\n\n await Promise.all(promises);\n return buffers;\n }\n\n // Renders out the scene to an environment map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces,\n // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture\n // that can assigned directly to a THREE.MeshStandardMaterial.envMap property.\n async renderEnvMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n }): Promise {\n const cubeTexture = await this.renderCubeMap({\n scene,\n worldCenter,\n size,\n near,\n far,\n hideObjects,\n update,\n filter: true,\n });\n // Pre-filter the cube map using THREE.PMREMGenerator if requested\n if (!SparkRenderer.pmrem) {\n SparkRenderer.pmrem = new THREE.PMREMGenerator(this.renderer);\n }\n\n return SparkRenderer.pmrem?.fromCubemap(cubeTexture).texture;\n }\n\n // Utility function to recursively set the envMap property for any\n // THREE.MeshStandardMaterial within the subtree of root.\n recurseSetEnvMap(root: THREE.Object3D, envMap: THREE.Texture) {\n root.traverse((node) => {\n if (node instanceof THREE.Mesh) {\n if (Array.isArray(node.material)) {\n for (const material of node.material) {\n if (material instanceof THREE.MeshStandardMaterial) {\n material.envMap = envMap;\n }\n }\n } else {\n if (node.material instanceof THREE.MeshStandardMaterial) {\n node.material.envMap = envMap;\n }\n }\n }\n });\n }\n\n async getLodTreeLevel(\n splats: SplatMesh,\n level: number,\n pageColoring = false,\n ) {\n const instance = this.lodInstances.get(splats);\n if (!instance) {\n return null;\n }\n\n const result = await this.ensureLodWorker().exclusive(async (worker) => {\n return (await worker.call(\"getLodTreeLevel\", {\n lodId: instance.lodId,\n level,\n })) as { indices: Uint32Array };\n });\n\n if (splats.packedSplats?.lodSplats) {\n const newSplats = splats.packedSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ packedSplats: newSplats });\n }\n if (splats.extSplats?.lodSplats) {\n const newSplats = splats.extSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ extSplats: newSplats });\n }\n throw new Error(\n \"Only LoD-enabled PackedSplats and ExtSplats are supported\",\n );\n }\n\n get premultipliedAlpha(): boolean {\n return this.material.premultipliedAlpha;\n }\n\n set premultipliedAlpha(value: boolean) {\n if (this.material.premultipliedAlpha !== value) {\n this.material.premultipliedAlpha = value;\n this.material.needsUpdate = true;\n }\n }\n}\n\nfunction checkIsXRRenderTarget(renderTarget: THREE.RenderTarget | null) {\n return (renderTarget as unknown as Record)?.isXRRenderTarget;\n}\n","// PLY file format reader\n\nimport { USE_COMPILED_PARSER_FUNCTION } from \"./defines\";\n\nconst PLY_PROPERTY_TYPES = [\n \"char\",\n \"uchar\",\n \"short\",\n \"ushort\",\n \"int\",\n \"uint\",\n \"float\",\n \"double\",\n] as const;\nexport type PlyPropertyType = (typeof PLY_PROPERTY_TYPES)[number];\n\nexport type PlyElement = {\n name: string;\n count: number;\n properties: Record;\n};\n\nexport type PlyProperty = {\n isList: boolean;\n type: PlyPropertyType;\n countType?: PlyPropertyType;\n};\n\n// Callback for parseSplats base Gsplat data\nexport type SplatCallback = (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) => void;\n\n// Callback for parseSplats SH coefficients\nexport type SplatShCallback = (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n) => void;\n\n// A PlyReader is used to parse PLY files for Gsplat data.\n// It takes a Uint8Array/ArrayBuffer as input fileBytes, parses the text header,\n// and provides a method parseData to iterate over the entire binary data\n// efficiently, or parseSplats to iterate over Gsplat data.\n\nexport class PlyReader {\n fileBytes: Uint8Array;\n header = \"\";\n littleEndian = true;\n elements: Record = {};\n comments: string[] = [];\n data: DataView | null = null;\n static defaultPointScale = 0.001;\n\n numSplats = 0;\n\n // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n }\n\n // Identify and parse the PLY text header (assumed to be <64KB in size).\n // this.elements will contain all the elements in the file, typically\n // \"vertex\" contains the Gsplat data.\n async parseHeader() {\n const bufferStream = new ReadableStream({\n start: (\n controller: ReadableStreamController>,\n ) => {\n // Assume the header is less than 64KB\n controller.enqueue(this.fileBytes.slice(0, 65536));\n controller.close();\n },\n });\n const decoder = bufferStream\n .pipeThrough(new TextDecoderStream())\n .getReader();\n\n // Find the end of the text section of the PLY file\n this.header = \"\";\n const headerTerminator = \"end_header\\n\";\n while (true) {\n const { value, done } = await decoder.read();\n if (done) {\n throw new Error(\"Failed to read header\");\n }\n\n this.header += value as string;\n const endHeader = this.header.indexOf(headerTerminator);\n if (endHeader >= 0) {\n this.header = this.header.slice(0, endHeader + headerTerminator.length);\n break;\n }\n }\n // Partition the file into header and binary data\n const headerLen = new TextEncoder().encode(this.header).length;\n this.data = new DataView(this.fileBytes.buffer, headerLen);\n\n this.elements = {};\n let curElement: PlyElement | null = null;\n this.comments = [];\n\n this.header\n .trim()\n .split(\"\\n\")\n .forEach((line: string, lineIndex: number) => {\n const trimmedLine = line.trim();\n if (lineIndex === 0) {\n if (trimmedLine !== \"ply\") {\n throw new Error(\"Invalid PLY header\");\n }\n return;\n }\n if (trimmedLine.length === 0) {\n return; // Skip empty lines\n }\n\n const fields = trimmedLine.split(\" \");\n switch (fields[0]) {\n case \"format\":\n if (fields[1] === \"binary_little_endian\") {\n this.littleEndian = true;\n } else if (fields[1] === \"binary_big_endian\") {\n this.littleEndian = false;\n } else {\n // ascii formats not supported\n throw new Error(`Unsupported PLY format: ${fields[1]}`);\n }\n if (fields[2] !== \"1.0\") {\n throw new Error(`Unsupported PLY version: ${fields[2]}`);\n }\n break;\n case \"end_header\":\n break;\n case \"comment\":\n this.comments.push(trimmedLine.slice(\"comment \".length));\n break;\n case \"element\": {\n const name = fields[1];\n curElement = {\n name,\n count: Number.parseInt(fields[2]),\n properties: {},\n };\n this.elements[name] = curElement;\n break;\n }\n case \"property\":\n if (curElement == null) {\n throw new Error(\"Property must be inside an element\");\n }\n if (fields[1] === \"list\") {\n curElement.properties[fields[4]] = {\n isList: true,\n type: fields[3] as PlyPropertyType,\n countType: fields[2] as PlyPropertyType,\n };\n } else {\n curElement.properties[fields[2]] = {\n isList: false,\n type: fields[1] as PlyPropertyType,\n };\n }\n break;\n default:\n // console.warn(`Skipping unsupported PLY keyword: ${fields[0]}`);\n }\n });\n\n if (this.elements.vertex) {\n this.numSplats = this.elements.vertex.count;\n }\n }\n\n parseData(\n elementCallback: (\n element: PlyElement,\n ) =>\n | null\n | ((index: number, item: Record) => void),\n ) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No data to parse\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const item = createEmptyItem(properties);\n // Construct a parse function\n const parseFn = createParseFn(properties, this.littleEndian);\n\n // Parse all the items in the element\n const callback = elementCallback(element) ?? (() => {});\n for (let index = 0; index < count; index++) {\n offset = parseFn(data, offset, item);\n callback(index, item);\n }\n }\n }\n\n // Parse all the Gsplat data in the PLY file in go, invoking the given\n // callbacks for each Gsplat.\n parseSplats(splatCallback: SplatCallback, shCallback?: SplatShCallback) {\n if (this.elements.vertex == null) {\n throw new Error(\"No vertex element found\");\n }\n\n let isSuperSplat = false;\n const ssChunks: SSChunk[] = [];\n\n let numSh = 0;\n let sh1Props: number[] = [];\n let sh2Props: number[] = [];\n let sh3Props: number[] = [];\n let sh1: Float32Array | undefined = undefined;\n let sh2: Float32Array | undefined = undefined;\n let sh3: Float32Array | undefined = undefined;\n\n function prepareSh() {\n // Prepare SH coefficient names and arrays for numSh total SH levels\n const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh];\n sh1Props = new Array(3)\n .fill(null)\n .flatMap((_, k) => [0, 1, 2].map((_, d) => k + (d * num_f_rest) / 3));\n sh2Props = new Array(5)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 3 + k + (d * num_f_rest) / 3),\n );\n sh3Props = new Array(7)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 8 + k + (d * num_f_rest) / 3),\n );\n sh1 = numSh >= 1 ? new Float32Array(3 * 3) : undefined;\n sh2 = numSh >= 2 ? new Float32Array(5 * 3) : undefined;\n sh3 = numSh >= 3 ? new Float32Array(7 * 3) : undefined;\n }\n\n function ssShCallback(\n index: number,\n item: Record,\n ) {\n // Decode SH for SuperSplat compressed data\n if (!sh1) {\n throw new Error(\"Missing sh1\");\n }\n const sh = item.f_rest as number[];\n\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = (sh[sh1Props[i]] * 8) / 255 - 4;\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = (sh[sh2Props[i]] * 8) / 255 - 4;\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = (sh[sh3Props[i]] * 8) / 255 - 4;\n }\n }\n shCallback?.(index, sh1, sh2, sh3);\n }\n\n function initSuperSplat(element: PlyElement) {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n } = element.properties;\n if (\n !min_x ||\n !min_y ||\n !min_z ||\n !max_x ||\n !max_y ||\n !max_z ||\n !min_scale_x ||\n !min_scale_y ||\n !min_scale_z ||\n !max_scale_x ||\n !max_scale_y ||\n !max_scale_z\n ) {\n throw new Error(\"Missing PLY chunk properties\");\n }\n\n // SuperSplat chunks are used to quantize splat data, so we need to store them\n isSuperSplat = true;\n return (index: number, item: Record) => {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = item as Record;\n ssChunks.push({\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n });\n };\n }\n\n function decodeSuperSplat(element: PlyElement) {\n // Decode SuperSplat compressed data in vertex and sh elements\n if (shCallback && element.name === \"sh\") {\n numSh = getNumSh(element.properties);\n prepareSh();\n return ssShCallback;\n }\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n element.properties;\n if (\n !packed_position ||\n !packed_rotation ||\n !packed_scale ||\n !packed_color\n ) {\n throw new Error(\n \"Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color\",\n );\n }\n\n const SQRT2 = Math.sqrt(2);\n\n return (index: number, item: Record) => {\n // SuperSplat data are quantized within chunks with 256 Gsplats each\n const chunk = ssChunks[index >>> 8];\n if (chunk == null) {\n throw new Error(\"Missing PLY chunk\");\n }\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = chunk;\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n item as Record;\n\n const x =\n (((packed_position >>> 21) & 2047) / 2047) * (max_x - min_x) + min_x;\n const y =\n (((packed_position >>> 11) & 1023) / 1023) * (max_y - min_y) + min_y;\n const z = ((packed_position & 2047) / 2047) * (max_z - min_z) + min_z;\n\n const r0 = (((packed_rotation >>> 20) & 1023) / 1023 - 0.5) * SQRT2;\n const r1 = (((packed_rotation >>> 10) & 1023) / 1023 - 0.5) * SQRT2;\n const r2 = ((packed_rotation & 1023) / 1023 - 0.5) * SQRT2;\n const rr = Math.sqrt(Math.max(0, 1.0 - r0 * r0 - r1 * r1 - r2 * r2));\n\n const rOrder = packed_rotation >>> 30;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n\n const scaleX = Math.exp(\n (((packed_scale >>> 21) & 2047) / 2047) *\n (max_scale_x - min_scale_x) +\n min_scale_x,\n );\n const scaleY = Math.exp(\n (((packed_scale >>> 11) & 1023) / 1023) *\n (max_scale_y - min_scale_y) +\n min_scale_y,\n );\n const scaleZ = Math.exp(\n ((packed_scale & 2047) / 2047) * (max_scale_z - min_scale_z) +\n min_scale_z,\n );\n\n const r =\n (((packed_color >>> 24) & 255) / 255) *\n ((max_r ?? 1) - (min_r ?? 0)) +\n (min_r ?? 0);\n const g =\n (((packed_color >>> 16) & 255) / 255) *\n ((max_g ?? 1) - (min_g ?? 0)) +\n (min_g ?? 0);\n const b =\n (((packed_color >>> 8) & 255) / 255) * ((max_b ?? 1) - (min_b ?? 0)) +\n (min_b ?? 0);\n const opacity = (packed_color & 255) / 255;\n\n splatCallback(\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n };\n }\n\n const elementCallback = (element: PlyElement) => {\n if (element.name === \"chunk\") {\n // \"chunk\" could conceivably be used for other formats, and we would\n // ideally check for the comment: Generated by SuperSplat 2.*\n // but gsplat also outputs this format without such a comment.\n // In order to support both, let's assume a \"chunk\" element should\n // be interpreted as this format.\n return initSuperSplat(element);\n }\n if (isSuperSplat) {\n return decodeSuperSplat(element);\n }\n\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const {\n x,\n y,\n z,\n scale_0,\n scale_1,\n scale_2,\n rot_0,\n rot_1,\n rot_2,\n rot_3,\n opacity,\n f_dc_0,\n f_dc_1,\n f_dc_2,\n red,\n green,\n blue,\n alpha,\n } = element.properties;\n\n if (!x || !y || !z) {\n throw new Error(\"Missing PLY properties: x, y, z\");\n }\n // Pure point cloud PLY files have no scales or rotations\n const hasScales = scale_0 && scale_1 && scale_2;\n const hasRots = rot_0 && rot_1 && rot_2 && rot_3;\n // Quantization scale factor for argb values\n const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1;\n const redDiv = red != null ? FIELD_SCALE[red.type] : 1;\n const greenDiv = green != null ? FIELD_SCALE[green.type] : 1;\n const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1;\n\n numSh = getNumSh(element.properties);\n prepareSh();\n\n return (index: number, item: Record) => {\n const scaleX = hasScales\n ? Math.exp(item.scale_0 as number)\n : PlyReader.defaultPointScale;\n const scaleY = hasScales\n ? Math.exp(item.scale_1 as number)\n : PlyReader.defaultPointScale;\n const scaleZ = hasScales\n ? Math.exp(item.scale_2 as number)\n : PlyReader.defaultPointScale;\n\n const quatX = hasRots ? (item.rot_1 as number) : 0;\n const quatY = hasRots ? (item.rot_2 as number) : 0;\n const quatZ = hasRots ? (item.rot_3 as number) : 0;\n const quatW = hasRots ? (item.rot_0 as number) : 1;\n\n const op =\n opacity != null\n ? 1.0 / (1.0 + Math.exp(-item.opacity as number))\n : alpha != null\n ? (item.alpha as number) / alphaDiv\n : 1.0;\n const r =\n f_dc_0 != null\n ? (item.f_dc_0 as number) * SH_C0 + 0.5\n : red != null\n ? (item.red as number) / redDiv\n : 1.0;\n const g =\n f_dc_1 != null\n ? (item.f_dc_1 as number) * SH_C0 + 0.5\n : green != null\n ? (item.green as number) / greenDiv\n : 1.0;\n const b =\n f_dc_2 != null\n ? (item.f_dc_2 as number) * SH_C0 + 0.5\n : blue != null\n ? (item.blue as number) / blueDiv\n : 1.0;\n\n splatCallback(\n index,\n item.x as number,\n item.y as number,\n item.z as number,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n op,\n r,\n g,\n b,\n );\n\n if (shCallback && sh1) {\n const sh = item.f_rest as number[];\n if (sh1) {\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = sh[sh1Props[i]];\n }\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = sh[sh2Props[i]];\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = sh[sh3Props[i]];\n }\n }\n shCallback(index, sh1, sh2, sh3);\n }\n };\n };\n\n this.parseData(elementCallback);\n }\n\n // Inject RGBA values into original PLY file, which can be used to modify\n // the color/opacity of the Gsplats and write out the modified PLY file.\n injectRgba(rgba: Uint8Array) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No parsed data\");\n }\n if (rgba.length !== this.numSplats * 4) {\n throw new Error(\"Invalid RGBA array length\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const parsers = [];\n\n let rgbaOffset = 0;\n const isVertex = elementName === \"vertex\";\n if (isVertex) {\n for (const name of [\"opacity\", \"f_dc_0\", \"f_dc_1\", \"f_dc_2\"]) {\n if (!properties[name] || properties[name].type !== \"float\") {\n throw new Error(`Can't injectRgba due to property: ${name}`);\n }\n }\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!property.isList) {\n if (isVertex) {\n if (\n propertyName === \"f_dc_0\" ||\n propertyName === \"f_dc_1\" ||\n propertyName === \"f_dc_2\"\n ) {\n const component = Number.parseInt(\n propertyName.slice(\"f_dc_\".length),\n );\n parsers.push(() => {\n // Inject DC coefficients\n const value =\n (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0;\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n } else if (propertyName === \"opacity\") {\n parsers.push(() => {\n // Inject opacity sigmoid, clamped to [-100, 100]\n const value = Math.max(\n -100,\n Math.min(\n 100,\n -Math.log(1.0 / (rgba[rgbaOffset + 3] / 255) - 1.0),\n ),\n );\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n }\n }\n parsers.push(() => {\n offset += FIELD_BYTES[property.type];\n });\n } else {\n parsers.push(() => {\n const length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n this.littleEndian,\n );\n offset += FIELD_BYTES[property.countType as PlyPropertyType];\n offset += length * FIELD_BYTES[property.type];\n });\n }\n }\n\n for (let index = 0; index < count; index++) {\n // Go through all the data and field parsers to compute offset\n for (const parser of parsers) {\n parser();\n }\n if (isVertex) {\n rgbaOffset += 4;\n }\n }\n }\n }\n}\n\nexport const SH_C0 = 0.28209479177387814;\n\ntype FieldParser = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n) => number;\ntype FieldSetter = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n) => void;\n\nconst PARSE_FIELD: Record = {\n char: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt8(offset);\n },\n uchar: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint8(offset);\n },\n short: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt16(offset, littleEndian);\n },\n ushort: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint16(offset, littleEndian);\n },\n int: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt32(offset, littleEndian);\n },\n uint: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint32(offset, littleEndian);\n },\n float: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat32(offset, littleEndian);\n },\n double: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat64(offset, littleEndian);\n },\n};\n\nconst SET_FIELD: Record = {\n char: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt8(offset, value);\n },\n uchar: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint8(offset, value);\n },\n short: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt16(offset, value, littleEndian);\n },\n ushort: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint16(offset, value, littleEndian);\n },\n int: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt32(offset, value, littleEndian);\n },\n uint: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint32(offset, value, littleEndian);\n },\n float: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat32(offset, value, littleEndian);\n },\n double: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat64(offset, value, littleEndian);\n },\n};\n\nconst FIELD_BYTES: Record = {\n char: 1,\n uchar: 1,\n short: 2,\n ushort: 2,\n int: 4,\n uint: 4,\n float: 4,\n double: 8,\n};\n\nconst FIELD_SCALE: Record = {\n char: 127,\n uchar: 255,\n short: 32767,\n ushort: 65535,\n int: 2147483647,\n uint: 4294967295,\n float: 1,\n double: 1,\n};\n\nconst NUM_F_REST_TO_NUM_SH: Record = {\n 0: 0,\n 9: 1,\n 24: 2,\n 45: 3,\n};\nconst NUM_SH_TO_NUM_F_REST: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nconst F_REST_REGEX = /^f_rest_([0-9]{1,2})$/;\n\nfunction createEmptyItem(\n properties: Record,\n): Record {\n const item: Record = {};\n for (const [propertyName, property] of Object.entries(properties)) {\n // Treat f_rest properties as a single array for performance\n if (F_REST_REGEX.test(propertyName)) {\n item.f_rest = new Array(getNumSh(properties));\n } else {\n item[propertyName] = property.isList ? [] : 0;\n }\n }\n return item;\n}\n\nfunction createParseFn(\n properties: Record,\n littleEndian: boolean,\n) {\n if (USE_COMPILED_PARSER_FUNCTION && safeToCompile(properties)) {\n return createCompiledParserFn(properties, littleEndian);\n }\n return createDynamicParserFn(properties, littleEndian);\n}\n\n// Detect if unsafe eval is allowed in the current execution context\nconst UNSAFE_EVAL_ALLOWED = (() => {\n try {\n new Function(\"return 42;\");\n } catch (e) {\n return false;\n }\n return true;\n})();\nconst PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/;\n\nfunction safeToCompile(properties: Record) {\n if (!UNSAFE_EVAL_ALLOWED) {\n return false;\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!PROPERTY_NAME_REGEX.test(propertyName)) {\n return false;\n }\n\n if (\n property.isList &&\n !PLY_PROPERTY_TYPES.includes(property.countType as PlyPropertyType)\n ) {\n return false;\n }\n\n if (!PLY_PROPERTY_TYPES.includes(property.type)) {\n return false;\n }\n }\n return true;\n}\n\nfunction createCompiledParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct the parser function source.\n const parserSrc: string[] = [\"let list;\"];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parserSrc.push(/*js*/ `\n item.f_rest[${fRestIndex}] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else if (!property.isList) {\n parserSrc.push(/*js*/ `\n item['${propertyName}'] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else {\n // Property is a list, so parse the count first\n parserSrc.push(/*js*/ `\n list = item['${propertyName}'];\n list.length = PARSE_FIELD['${property.countType}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.countType as PlyPropertyType]};\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n }\n `);\n }\n }\n parserSrc.push(\"return offset;\");\n\n const fn = new Function(\n \"data\",\n \"offset\",\n \"item\",\n \"PARSE_FIELD\",\n parserSrc.join(\"\\n\"),\n );\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => fn(data, offset, item, PARSE_FIELD);\n}\n\nfunction createDynamicParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct an array of parser function to parse each property in an item\n const parsers: Array<\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => number\n > = [];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n (item.f_rest as number[])[fRestIndex] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else if (!property.isList) {\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n item[propertyName] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else {\n // Property is a list, so parse the count first\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n const list = item[propertyName] as number[];\n list.length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n littleEndian,\n );\n let currentOffset =\n offset + FIELD_BYTES[property.countType as PlyPropertyType];\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD[property.type](\n data,\n currentOffset,\n littleEndian,\n );\n currentOffset += FIELD_BYTES[property.type];\n }\n return currentOffset;\n },\n );\n }\n }\n\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n let currentOffset = offset;\n for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) {\n currentOffset = parsers[parserIndex](data, currentOffset, item);\n }\n return currentOffset;\n };\n}\n\nfunction getNumSh(properties: Record) {\n let num_f_rest = 0;\n while (properties[`f_rest_${num_f_rest}`]) {\n num_f_rest += 1;\n }\n const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest];\n if (numSh == null) {\n throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`);\n }\n return numSh;\n}\n\ntype SSChunk = {\n min_x: number;\n min_y: number;\n min_z: number;\n max_x: number;\n max_y: number;\n max_z: number;\n min_scale_x: number;\n min_scale_y: number;\n min_scale_z: number;\n max_scale_x: number;\n max_scale_y: number;\n max_scale_z: number;\n min_r?: number;\n min_g?: number;\n min_b?: number;\n max_r?: number;\n max_g?: number;\n max_b?: number;\n};\n","import type { SplatEncoding } from \"./defines\";\nimport { computeMaxSplats, setPackedSplat } from \"./utils\";\n\nexport function decodeAntiSplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n) {\n const numSplats = Math.floor(fileBytes.length / 32); // 32 bytes per splat\n if (numSplats * 32 !== fileBytes.length) {\n throw new Error(\"Invalid .splat file size\");\n }\n initNumSplats(numSplats);\n\n const f32 = new Float32Array(fileBytes.buffer);\n for (let i = 0; i < numSplats; ++i) {\n const i32 = i * 32;\n const i8 = i * 8;\n const x = f32[i8 + 0];\n const y = f32[i8 + 1];\n const z = f32[i8 + 2];\n const scaleX = f32[i8 + 3];\n const scaleY = f32[i8 + 4];\n const scaleZ = f32[i8 + 5];\n const r = fileBytes[i32 + 24] / 255;\n const g = fileBytes[i32 + 25] / 255;\n const b = fileBytes[i32 + 26] / 255;\n const opacity = fileBytes[i32 + 27] / 255;\n const quatW = (fileBytes[i32 + 28] - 128) / 128;\n const quatX = (fileBytes[i32 + 29] - 128) / 128;\n const quatY = (fileBytes[i32 + 30] - 128) / 128;\n const quatZ = (fileBytes[i32 + 31] - 128) / 128;\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n }\n}\n\nexport function unpackAntiSplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n} {\n let numSplats = 0;\n let maxSplats = 0;\n let packedArray = new Uint32Array(0);\n decodeAntiSplat(\n fileBytes,\n (cbNumSplats) => {\n numSplats = cbNumSplats;\n maxSplats = computeMaxSplats(numSplats);\n packedArray = new Uint32Array(maxSplats * 4);\n },\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n setPackedSplat(\n packedArray,\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n },\n );\n return { packedArray, numSplats };\n}\n","import type { SplatEncoding } from \"./defines\";\nimport {\n computeMaxSplats,\n encodeSh1Rgb,\n encodeSh2Rgb,\n encodeSh3Rgb,\n fromHalf,\n setPackedSplat,\n} from \"./utils\";\n\ntype KsplatCompression = {\n bytesPerCenter: number;\n bytesPerScale: number;\n bytesPerRotation: number;\n bytesPerColor: number;\n bytesPerSphericalHarmonicsComponent: number;\n scaleOffsetBytes: number;\n rotationOffsetBytes: number;\n colorOffsetBytes: number;\n sphericalHarmonicsOffsetBytes: number;\n scaleRange: number;\n};\n\nconst KSPLAT_COMPRESSION: Record = {\n 0: {\n bytesPerCenter: 12,\n bytesPerScale: 12,\n bytesPerRotation: 16,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 4,\n scaleOffsetBytes: 12,\n rotationOffsetBytes: 24,\n colorOffsetBytes: 40,\n sphericalHarmonicsOffsetBytes: 44,\n scaleRange: 1,\n },\n 1: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 2,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n 2: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 1,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n};\n\nconst KSPLAT_SH_DEGREE_TO_COMPONENTS: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nexport function decodeKsplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n) {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n initNumSplats(numSplats);\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n\n if (sphericalHarmonicsDegree >= 1 && sh1) {\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n if (sh2) {\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n }\n if (sh3) {\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n sectionBase += storageSizeBytes;\n }\n}\n\nexport function unpackKsplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n} {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n setPackedSplat(\n packedArray,\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n\n if (sphericalHarmonicsDegree >= 1) {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n encodeSh1Rgb(extra.sh1 as Uint32Array, i, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n encodeSh2Rgb(extra.sh2 as Uint32Array, i, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n encodeSh3Rgb(extra.sh3 as Uint32Array, i, sh3, splatEncoding);\n }\n }\n }\n sectionBase += storageSizeBytes;\n }\n return { packedArray, numSplats, extra };\n}\n","import * as THREE from \"three\";\nimport {\n SplatData,\n type TranscodeSpzInput,\n getSplatFileType,\n getSplatFileTypeFromPath,\n} from \"./SplatLoader\";\nimport { GunzipReader, fromHalf, normalize } from \"./utils\";\n\nimport { decodeAntiSplat } from \"./antisplat\";\nimport { SplatFileType } from \"./defines\";\nimport { decodeKsplat } from \"./ksplat\";\nimport { PlyReader } from \"./ply\";\n\n// SPZ file format reader\n\nexport class SpzReader {\n fileBytes: Uint8Array;\n reader: GunzipReader;\n\n version = -1;\n numSplats = 0;\n shDegree = 0;\n fractionalBits = 0;\n flags = 0;\n flagAntiAlias = false;\n flagLod = false;\n reserved = 0;\n headerParsed = false;\n parsed = false;\n\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n this.reader = new GunzipReader({\n fileBytes: this.fileBytes as Uint8Array,\n });\n }\n\n async parseHeader() {\n if (this.headerParsed) {\n throw new Error(\"SPZ file header already parsed\");\n }\n\n const header = new DataView((await this.reader.read(16)).buffer);\n if (header.getUint32(0, true) !== 0x5053474e) {\n throw new Error(\"Invalid SPZ file\");\n }\n this.version = header.getUint32(4, true);\n if (this.version < 1 || this.version > 3) {\n throw new Error(`Unsupported SPZ version: ${this.version}`);\n }\n\n this.numSplats = header.getUint32(8, true);\n this.shDegree = header.getUint8(12);\n this.fractionalBits = header.getUint8(13);\n this.flags = header.getUint8(14);\n this.flagAntiAlias = (this.flags & 0x01) !== 0;\n this.flagLod = (this.flags & 0x80) !== 0;\n this.reserved = header.getUint8(15);\n this.headerParsed = true;\n this.parsed = false;\n }\n\n async parseSplats(\n centerCallback?: (index: number, x: number, y: number, z: number) => void,\n alphaCallback?: (index: number, alpha: number) => void,\n rgbCallback?: (index: number, r: number, g: number, b: number) => void,\n scalesCallback?: (\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n ) => void,\n quatCallback?: (\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n {\n childCounts,\n childStarts,\n }: {\n childCounts?: (index: number, count: number) => void;\n childStarts?: (index: number, start: number) => void;\n } = {},\n ) {\n if (!this.headerParsed) {\n throw new Error(\"SPZ file header must be parsed first\");\n }\n if (this.parsed) {\n throw new Error(\"SPZ file already parsed\");\n }\n this.parsed = true;\n\n if (this.version === 1) {\n // float16 centers\n const centerBytes = await this.reader.read(this.numSplats * 3 * 2);\n const centerUint16 = new Uint16Array(centerBytes.buffer);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const x = fromHalf(centerUint16[i3]);\n const y = fromHalf(centerUint16[i3 + 1]);\n const z = fromHalf(centerUint16[i3 + 2]);\n centerCallback?.(i, x, y, z);\n }\n } else if (this.version === 2 || this.version === 3) {\n // 24-bit fixed-point centers\n const fixed = 1 << this.fractionalBits;\n const centerBytes = await this.reader.read(this.numSplats * 3 * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i9 = i * 9;\n const x =\n (((centerBytes[i9 + 2] << 24) |\n (centerBytes[i9 + 1] << 16) |\n (centerBytes[i9] << 8)) >>\n 8) /\n fixed;\n const y =\n (((centerBytes[i9 + 5] << 24) |\n (centerBytes[i9 + 4] << 16) |\n (centerBytes[i9 + 3] << 8)) >>\n 8) /\n fixed;\n const z =\n (((centerBytes[i9 + 8] << 24) |\n (centerBytes[i9 + 7] << 16) |\n (centerBytes[i9 + 6] << 8)) >>\n 8) /\n fixed;\n centerCallback?.(i, x, y, z);\n }\n } else {\n throw new Error(\"Unreachable\");\n }\n\n {\n const bytes = await this.reader.read(this.numSplats);\n for (let i = 0; i < this.numSplats; i++) {\n alphaCallback?.(i, bytes[i] / 255);\n }\n }\n {\n const rgbBytes = await this.reader.read(this.numSplats * 3);\n const scale = SH_C0 / 0.15;\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const r = (rgbBytes[i3] / 255 - 0.5) * scale + 0.5;\n const g = (rgbBytes[i3 + 1] / 255 - 0.5) * scale + 0.5;\n const b = (rgbBytes[i3 + 2] / 255 - 0.5) * scale + 0.5;\n rgbCallback?.(i, r, g, b);\n }\n }\n {\n const scalesBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const scaleX = Math.exp(scalesBytes[i3] / 16 - 10);\n const scaleY = Math.exp(scalesBytes[i3 + 1] / 16 - 10);\n const scaleZ = Math.exp(scalesBytes[i3 + 2] / 16 - 10);\n scalesCallback?.(i, scaleX, scaleY, scaleZ);\n }\n }\n if (this.version === 3) {\n // Version 3 uses a trick called \"smallest three\" to compress the rotation quaternions\n // achieving better precision. \"Optimizing orientation\" section at https://gafferongames.com/post/snapshot_compression/ A quaternion length must be 1: x^2+y^2+z^2+w^2 = 1\n // We can drop one component and reconstruct it with the identity above.\n // Largest component is dropped for best numerical precision.\n // Quaternion stored in 32 bits\n // 10 bits singed integer for each of the 3 components + 2 bits indicating the index of dropped component.\n // vs 8 bits for each component uncompressed (spz version < 3)\n // Max Value after extracting largest component v is another component v\n // (v,v,0,0)\n // v^2 + v^2 = 1\n // v = 1 / sqrt(2);\n const maxValue = 1 / Math.sqrt(2); // 0.7071\n const quatBytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 4;\n const quaternion = [0, 0, 0, 0];\n const values = [\n quatBytes[i3],\n quatBytes[i3 + 1],\n quatBytes[i3 + 2],\n quatBytes[i3 + 3],\n ];\n // all values are packed in 32 bits (10 per each of 3 components + 2 bits of index of larged value)\n const combinedValues =\n values[0] + (values[1] << 8) + (values[2] << 16) + (values[3] << 24);\n // each component value is 9 bits + sign (1 bit)\n const valueMask = (1 << 9) - 1;\n // extract index of the largest element. 2 top bits.\n const largestIndex = combinedValues >>> 30;\n let remainingValues = combinedValues;\n let sumSquares = 0;\n\n for (let i = 3; i >= 0; --i) {\n if (i !== largestIndex) {\n // extract current value and sign.\n const value = remainingValues & valueMask;\n const sign = (remainingValues >>> 9) & 0x1;\n // each value is represented as 10 bits. Shift to next one.\n remainingValues = remainingValues >>> 10;\n // convert to range [0,1] and then to [0, 0.7071]\n quaternion[i] = maxValue * (value / valueMask);\n // apply sign.\n quaternion[i] = sign === 0 ? quaternion[i] : -quaternion[i];\n // accumulate the sum of squares\n sumSquares += quaternion[i] * quaternion[i];\n }\n }\n\n // quartenion length must be 1 (x^2+y^2+z^2+w^2 = 1)\n // so can reconstruct largest component from the other 3.\n // w = sqrt(1 - x^2 - y^2 - z^2);\n const square = 1 - sumSquares;\n quaternion[largestIndex] = Math.sqrt(Math.max(square, 0));\n\n quatCallback?.(\n i,\n quaternion[0],\n quaternion[1],\n quaternion[2],\n quaternion[3],\n );\n }\n } else {\n const quatBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const quatX = quatBytes[i3] / 127.5 - 1;\n const quatY = quatBytes[i3 + 1] / 127.5 - 1;\n const quatZ = quatBytes[i3 + 2] / 127.5 - 1;\n const quatW = Math.sqrt(\n Math.max(0, 1 - quatX * quatX - quatY * quatY - quatZ * quatZ),\n );\n quatCallback?.(i, quatX, quatY, quatZ, quatW);\n }\n }\n\n if (shCallback && this.shDegree >= 1) {\n const sh1 = new Float32Array(3 * 3);\n const sh2 = this.shDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 = this.shDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n const shBytes = await this.reader.read(\n this.numSplats * SH_DEGREE_TO_VECS[this.shDegree] * 3,\n );\n\n let offset = 0;\n for (let i = 0; i < this.numSplats; i++) {\n for (let j = 0; j < 9; ++j) {\n sh1[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 9;\n if (sh2) {\n for (let j = 0; j < 15; ++j) {\n sh2[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 15;\n }\n if (sh3) {\n for (let j = 0; j < 21; ++j) {\n sh3[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 21;\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n if (this.flagLod) {\n let bytes = await this.reader.read(this.numSplats * 2);\n for (let i = 0; i < this.numSplats; i++) {\n const i2 = i * 2;\n const count = bytes[i2] + (bytes[i2 + 1] << 8);\n childCounts?.(i, count);\n }\n\n bytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i4 = i * 4;\n const start =\n bytes[i4] +\n (bytes[i4 + 1] << 8) +\n (bytes[i4 + 2] << 16) +\n (bytes[i4 + 3] << 24);\n childStarts?.(i, start);\n }\n }\n }\n}\n\nconst SH_DEGREE_TO_VECS: Record = { 1: 3, 2: 8, 3: 15 };\nconst SH_C0 = 0.28209479177387814;\n\nexport const SPZ_MAGIC = 0x5053474e; // NGSP = Niantic gaussian splat\nexport const SPZ_VERSION = 3;\nexport const FLAG_ANTIALIASED = 0x1;\n\nexport class SpzWriter {\n buffer: ArrayBuffer;\n view: DataView;\n numSplats: number;\n shDegree: number;\n fractionalBits: number;\n fraction: number;\n flagAntiAlias: boolean;\n clippedCount = 0;\n\n constructor({\n numSplats,\n shDegree,\n fractionalBits = 12,\n flagAntiAlias = true,\n }: {\n numSplats: number;\n shDegree: number;\n fractionalBits?: number;\n flagAntiAlias?: boolean;\n }) {\n const splatSize =\n 9 + // Position\n 1 + // Opacity\n 3 + // Scale\n 3 + // DC-rgb\n 4 + // Rotation\n (shDegree >= 1 ? 9 : 0) +\n (shDegree >= 2 ? 15 : 0) +\n (shDegree >= 3 ? 21 : 0);\n const bufferSize = 16 + numSplats * splatSize;\n this.buffer = new ArrayBuffer(bufferSize);\n this.view = new DataView(this.buffer);\n\n this.view.setUint32(0, SPZ_MAGIC, true); // NGSP\n this.view.setUint32(4, SPZ_VERSION, true);\n this.view.setUint32(8, numSplats, true);\n this.view.setUint8(12, shDegree);\n this.view.setUint8(13, fractionalBits);\n this.view.setUint8(14, flagAntiAlias ? FLAG_ANTIALIASED : 0);\n this.view.setUint8(15, 0); // Reserved\n\n this.numSplats = numSplats;\n this.shDegree = shDegree;\n this.fractionalBits = fractionalBits;\n this.fraction = 1 << fractionalBits;\n this.flagAntiAlias = flagAntiAlias;\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n // Divide by this.fraction and round to nearest integer,\n // then write as 3-bytes per x then y then z.\n const xRounded = Math.round(x * this.fraction);\n const xInt = Math.max(-0x7fffff, Math.min(0x7fffff, xRounded));\n const yRounded = Math.round(y * this.fraction);\n const yInt = Math.max(-0x7fffff, Math.min(0x7fffff, yRounded));\n const zRounded = Math.round(z * this.fraction);\n const zInt = Math.max(-0x7fffff, Math.min(0x7fffff, zRounded));\n const clipped = xRounded !== xInt || yRounded !== yInt || zRounded !== zInt;\n if (clipped) {\n this.clippedCount += 1;\n // if (this.clippedCount < 10) {\n // // Write x y z also in hex\n // console.log(`Clipped ${index}: ${x}, ${y}, ${z} (0x${x.toString(16)}, 0x${y.toString(16)}, 0x${z.toString(16)}) -> ${xRounded}, ${yRounded}, ${zRounded} (0x${xRounded.toString(16)}, 0x${yRounded.toString(16)}, 0x${zRounded.toString(16)}) -> ${xInt}, ${yInt}, ${zInt} (0x${xInt.toString(16)}, 0x${yInt.toString(16)}, 0x${zInt.toString(16)})`);\n // }\n }\n const i9 = index * 9;\n const base = 16 + i9;\n this.view.setUint8(base, xInt & 0xff);\n this.view.setUint8(base + 1, (xInt >> 8) & 0xff);\n this.view.setUint8(base + 2, (xInt >> 16) & 0xff);\n this.view.setUint8(base + 3, yInt & 0xff);\n this.view.setUint8(base + 4, (yInt >> 8) & 0xff);\n this.view.setUint8(base + 5, (yInt >> 16) & 0xff);\n this.view.setUint8(base + 6, zInt & 0xff);\n this.view.setUint8(base + 7, (zInt >> 8) & 0xff);\n this.view.setUint8(base + 8, (zInt >> 16) & 0xff);\n }\n\n setAlpha(index: number, alpha: number) {\n const base = 16 + this.numSplats * 9 + index;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round(alpha * 255))),\n );\n }\n\n static scaleRgb(r: number) {\n const v = ((r - 0.5) / (SH_C0 / 0.15) + 0.5) * 255;\n return Math.max(0, Math.min(255, Math.round(v)));\n }\n\n setRgb(index: number, r: number, g: number, b: number) {\n const base = 16 + this.numSplats * 10 + index * 3;\n this.view.setUint8(base, SpzWriter.scaleRgb(r));\n this.view.setUint8(base + 1, SpzWriter.scaleRgb(g));\n this.view.setUint8(base + 2, SpzWriter.scaleRgb(b));\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n const base = 16 + this.numSplats * 13 + index * 3;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleX) + 10) * 16))),\n );\n this.view.setUint8(\n base + 1,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleY) + 10) * 16))),\n );\n this.view.setUint8(\n base + 2,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleZ) + 10) * 16))),\n );\n }\n\n setQuat(\n index: number,\n ...q: [number, number, number, number] // x, y, z, w\n ) {\n const base = 16 + this.numSplats * 16 + index * 4;\n\n const quat = normalize(q);\n\n // Find largest component\n let iLargest = 0;\n for (let i = 1; i < 4; ++i) {\n if (Math.abs(quat[i]) > Math.abs(quat[iLargest])) {\n iLargest = i;\n }\n }\n\n // Since -quat represents the same rotation as quat, transform the quaternion so the largest element\n // is positive. This avoids having to send its sign bit.\n const negate = quat[iLargest] < 0 ? 1 : 0;\n\n // Do compression using sign bit and 9-bit precision per element.\n let comp = iLargest;\n for (let i = 0; i < 4; ++i) {\n if (i !== iLargest) {\n const negbit = (quat[i] < 0 ? 1 : 0) ^ negate;\n const mag = Math.floor(\n ((1 << 9) - 1) * (Math.abs(quat[i]) / Math.SQRT1_2) + 0.5,\n );\n comp = (comp << 10) | (negbit << 9) | mag;\n }\n }\n\n this.view.setUint8(base, comp & 0xff);\n this.view.setUint8(base + 1, (comp >> 8) & 0xff);\n this.view.setUint8(base + 2, (comp >> 16) & 0xff);\n this.view.setUint8(base + 3, (comp >>> 24) & 0xff);\n }\n\n static quantizeSh(sh: number, bits: number) {\n const value = Math.round(sh * 128) + 128;\n const bucketSize = 1 << (8 - bits);\n const quantized =\n Math.floor((value + bucketSize / 2) / bucketSize) * bucketSize;\n return Math.max(0, Math.min(255, quantized));\n }\n\n setSh(\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) {\n const shVecs = SH_DEGREE_TO_VECS[this.shDegree] || 0;\n const base1 = 16 + this.numSplats * 20 + index * shVecs * 3;\n for (let j = 0; j < 9; ++j) {\n this.view.setUint8(base1 + j, SpzWriter.quantizeSh(sh1[j], 5));\n }\n if (sh2) {\n const base2 = base1 + 9;\n for (let j = 0; j < 15; ++j) {\n this.view.setUint8(base2 + j, SpzWriter.quantizeSh(sh2[j], 4));\n }\n if (sh3) {\n const base3 = base2 + 15;\n for (let j = 0; j < 21; ++j) {\n this.view.setUint8(base3 + j, SpzWriter.quantizeSh(sh3[j], 4));\n }\n }\n }\n }\n\n async finalize(): Promise {\n const input = new Uint8Array(this.buffer);\n const stream = new ReadableStream({\n async start(controller) {\n controller.enqueue(input);\n controller.close();\n },\n });\n const compressed = stream.pipeThrough(new CompressionStream(\"gzip\"));\n const response = new Response(compressed);\n const buffer = await response.arrayBuffer();\n console.log(\n \"Compressed\",\n input.length,\n \"bytes to\",\n buffer.byteLength,\n \"bytes\",\n );\n return new Uint8Array(buffer);\n }\n}\n\nexport async function transcodeSpz(input: TranscodeSpzInput) {\n const splats = new SplatData();\n const {\n inputs,\n clipXyz,\n maxSh,\n fractionalBits = 12,\n opacityThreshold,\n } = input;\n for (const input of inputs) {\n const scale = input.transform?.scale ?? 1;\n const quaternion = new THREE.Quaternion().fromArray(\n input.transform?.quaternion ?? [0, 0, 0, 1],\n );\n const translate = new THREE.Vector3().fromArray(\n input.transform?.translate ?? [0, 0, 0],\n );\n const clip = clipXyz\n ? new THREE.Box3(\n new THREE.Vector3().fromArray(clipXyz.min),\n new THREE.Vector3().fromArray(clipXyz.max),\n )\n : undefined;\n\n function transformPos(pos: THREE.Vector3) {\n pos.multiplyScalar(scale);\n pos.applyQuaternion(quaternion);\n pos.add(translate);\n return pos;\n }\n\n function transformScales(scales: THREE.Vector3) {\n scales.multiplyScalar(scale);\n return scales;\n }\n\n function transformQuaternion(quat: THREE.Quaternion) {\n quat.premultiply(quaternion);\n return quat;\n }\n\n function withinClip(p: THREE.Vector3) {\n return !clip || clip.containsPoint(p);\n }\n\n function withinOpacity(opacity: number) {\n return opacityThreshold !== undefined\n ? opacity >= opacityThreshold\n : true;\n }\n\n let fileType = input.fileType;\n if (!fileType) {\n fileType = getSplatFileType(input.fileBytes);\n if (!fileType && input.pathOrUrl) {\n fileType = getSplatFileTypeFromPath(input.pathOrUrl);\n }\n }\n switch (fileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes: input.fileBytes });\n await ply.parseHeader();\n let lastIndex: number | null = null;\n ply.parseSplats(\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (sh1 && lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n }\n if (sh2 && lastIndex !== null) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3 && lastIndex !== null) {\n splats.setSh3(lastIndex, sh3);\n }\n },\n );\n break;\n }\n case SplatFileType.SPZ: {\n const spz = new SpzReader({ fileBytes: input.fileBytes });\n await spz.parseHeader();\n const mapping = new Int32Array(spz.numSplats);\n mapping.fill(-1);\n const centers = new Float32Array(spz.numSplats * 3);\n const center = new THREE.Vector3();\n spz.parseSplats(\n (index, x, y, z) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n centers[index * 3] = center.x;\n centers[index * 3 + 1] = center.y;\n centers[index * 3 + 2] = center.z;\n },\n (index, alpha) => {\n center.fromArray(centers, index * 3);\n if (withinClip(center) && withinOpacity(alpha)) {\n mapping[index] = splats.pushSplat();\n splats.setCenter(mapping[index], center.x, center.y, center.z);\n splats.setOpacity(mapping[index], alpha);\n }\n },\n (index, r, g, b) => {\n if (mapping[index] >= 0) {\n splats.setColor(mapping[index], r, g, b);\n }\n },\n (index, scaleX, scaleY, scaleZ) => {\n if (mapping[index] >= 0) {\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(mapping[index], scales.x, scales.y, scales.z);\n }\n },\n (index, quatX, quatY, quatZ, quatW) => {\n if (mapping[index] >= 0) {\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n mapping[index],\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n }\n },\n (index, sh1, sh2, sh3) => {\n if (mapping[index] >= 0) {\n splats.setSh1(mapping[index], sh1);\n if (sh2) {\n splats.setSh2(mapping[index], sh2);\n }\n if (sh3) {\n splats.setSh3(mapping[index], sh3);\n }\n }\n },\n );\n break;\n }\n case SplatFileType.SPLAT:\n decodeAntiSplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n const index = splats.pushSplat();\n splats.setCenter(index, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(index, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n index,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(index, opacity);\n splats.setColor(index, r, g, b);\n }\n },\n );\n break;\n case SplatFileType.KSPLAT: {\n let lastIndex: number | null = null;\n decodeKsplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n if (sh2) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3) {\n splats.setSh3(lastIndex, sh3);\n }\n }\n },\n );\n break;\n }\n default:\n throw new Error(`transcodeSpz not implemented for ${fileType}`);\n }\n }\n\n const shDegree = Math.min(\n maxSh ?? 3,\n splats.sh3 ? 3 : splats.sh2 ? 2 : splats.sh1 ? 1 : 0,\n );\n const spz = new SpzWriter({\n numSplats: splats.numSplats,\n shDegree,\n fractionalBits,\n flagAntiAlias: true,\n });\n\n for (let i = 0; i < splats.numSplats; ++i) {\n const i3 = i * 3;\n const i4 = i * 4;\n spz.setCenter(\n i,\n splats.centers[i3],\n splats.centers[i3 + 1],\n splats.centers[i3 + 2],\n );\n spz.setScale(\n i,\n splats.scales[i3],\n splats.scales[i3 + 1],\n splats.scales[i3 + 2],\n );\n spz.setQuat(\n i,\n splats.quaternions[i4],\n splats.quaternions[i4 + 1],\n splats.quaternions[i4 + 2],\n splats.quaternions[i4 + 3],\n );\n spz.setAlpha(i, splats.opacities[i]);\n spz.setRgb(\n i,\n splats.colors[i3],\n splats.colors[i3 + 1],\n splats.colors[i3 + 2],\n );\n if (splats.sh1 && shDegree >= 1) {\n spz.setSh(\n i,\n splats.sh1.slice(i * 9, (i + 1) * 9),\n shDegree >= 2 && splats.sh2\n ? splats.sh2.slice(i * 15, (i + 1) * 15)\n : undefined,\n shDegree >= 3 && splats.sh3\n ? splats.sh3.slice(i * 21, (i + 1) * 21)\n : undefined,\n );\n }\n }\n\n const spzBytes = await spz.finalize();\n return { fileBytes: spzBytes, clippedCount: spz.clippedCount };\n}\n","import * as THREE from \"three\";\n\n// SplatSkinning is an experimental class that implements dual-quaternion\n// skeletal animation for Gsplats. A skeletal animation system consists\n// of a set of bones, each with a \"rest\" pose that consists of a position\n// and orientation, and a weighting of up to 4 bones for each Gsplat.\n// By moving and rotating the bones you can animate all the Gsplats like\n// your would for a normal 3D animated mesh.\n// Note that the dual-quaternion formulation assumes that mass/volume\n// is conserved through these transformations, which helps avoid common\n// issues with linear blend skinning such as joint collapse or bulging.\n// However, it is not as good a fit for animations that involve explicit\n// deformations, such as cartoon animations.\n\nimport type { SplatMesh } from \"./SplatMesh\";\nimport {\n CovSplat,\n Dyno,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize, newArray } from \"./utils\";\n\nexport enum SplatSkinningMode {\n DUAL_QUATERNION = \"dual_quaternion\",\n LINEAR_BLEND = \"linear_blend\",\n}\n\nexport type SplatSkinningOptions = {\n // Specifies the SplatMesh that will be animated.\n mesh: SplatMesh;\n // Overrides the number of Gsplats in the mesh that will be animated.\n // (default: mesh.numSplats)\n numSplats?: number;\n // Set the number of bones used to animate the SplatMesh, with a maximum\n // of 256 (in order to compactly encode the bone index). (default: 256)\n numBones?: number;\n // Set the mode of skinning to use.\n // (default: DUAL_QUATERNION)\n mode?: SplatSkinningMode;\n};\n\nexport class SplatSkinning {\n mesh: SplatMesh;\n numSplats: number;\n mode: SplatSkinningMode;\n\n // Store the skinning weights for each Gsplat, composed of a 4-vector\n // of bone indices and weight\n skinData: Uint16Array;\n skinTexture: THREE.DataArrayTexture;\n\n numBones: number;\n boneData: Float32Array;\n boneTexture: THREE.DataTexture;\n\n boneRestQuatPosScale: {\n quat: THREE.Quaternion;\n pos: THREE.Vector3;\n scale: THREE.Vector3;\n }[];\n boneRestInvMats: THREE.Matrix4[];\n\n uniform: DynoUniform;\n\n constructor(options: SplatSkinningOptions) {\n this.mesh = options.mesh;\n this.numSplats = options.numSplats ?? this.mesh.numSplats;\n this.mode = options.mode ?? SplatSkinningMode.DUAL_QUATERNION;\n\n const { width, height, depth, maxSplats } = getTextureSize(this.numSplats);\n this.skinData = new Uint16Array(maxSplats * 4);\n this.skinTexture = new THREE.DataArrayTexture(\n this.skinData,\n width,\n height,\n depth,\n );\n this.skinTexture.format = THREE.RGBAIntegerFormat;\n this.skinTexture.type = THREE.UnsignedShortType;\n this.skinTexture.internalFormat = \"RGBA16UI\";\n this.skinTexture.needsUpdate = true;\n\n this.numBones = options.numBones ?? 256;\n this.boneData = new Float32Array(this.numBones * 16);\n this.boneTexture = new THREE.DataTexture(\n this.boneData,\n 4,\n this.numBones,\n THREE.RGBAFormat,\n THREE.FloatType,\n );\n this.boneTexture.internalFormat = \"RGBA32F\";\n this.boneTexture.needsUpdate = true;\n\n this.boneRestQuatPosScale = newArray(this.numBones, () => ({\n quat: new THREE.Quaternion(),\n pos: new THREE.Vector3(),\n scale: new THREE.Vector3(),\n }));\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats = newArray(this.numBones, () => new THREE.Matrix4());\n } else {\n this.boneRestInvMats = [];\n }\n\n this.uniform = new DynoUniform({\n key: \"skinning\",\n type: GsplatSkinning,\n globals: () => [defineGsplatSkinning],\n value: {\n numSplats: this.numSplats,\n numBones: this.numBones,\n skinTexture: this.skinTexture,\n boneTexture: this.boneTexture,\n },\n });\n }\n\n // Apply the skeletal animation to a Gsplat in a dyno program.\n modify(gsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"Linear blend skinning requires covSplats=true\");\n }\n return applyGsplatSkinning(gsplat, this.uniform);\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n return applyCovSplatDQSkinning(covsplat, this.uniform);\n }\n return applyCovSplatLBSkinning(covsplat, this.uniform);\n }\n\n // Set the \"rest\" pose for a bone with position and quaternion orientation.\n setRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(SplatSkinning.UNIT_SCALE);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex]\n .compose(pos, quat, SplatSkinning.UNIT_SCALE)\n .invert();\n }\n\n this.setBoneQuatPos(boneIndex, quat, pos);\n }\n\n getRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n }\n\n setRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(scale);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex].compose(pos, quat, scale).invert();\n }\n\n this.setBoneQuatPosScale(boneIndex, quat, pos, scale);\n }\n\n getRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n scale.copy(this.boneRestQuatPosScale[boneIndex].scale);\n }\n\n setRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setRestMat only supported for linear blend skinning\");\n }\n this.boneRestInvMats[boneIndex].copy(matrix).invert();\n this.setBoneMatrix(boneIndex, matrix);\n }\n\n getRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"getRestMat only supported for linear blend skinning\");\n }\n matrix.copy(this.boneRestInvMats[boneIndex]).invert();\n }\n\n // Set the \"current\" position and orientation of a bone.\n setBoneQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n SplatSkinning.relQuat\n .copy(this.boneRestQuatPosScale[boneIndex].quat)\n .invert();\n SplatSkinning.relPos\n .copy(pos)\n .sub(this.boneRestQuatPosScale[boneIndex].pos);\n SplatSkinning.relQuat.multiply(quat);\n SplatSkinning.dual\n .set(\n SplatSkinning.relPos.x,\n SplatSkinning.relPos.y,\n SplatSkinning.relPos.z,\n 0.0,\n )\n .multiply(SplatSkinning.relQuat);\n\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.relQuat.x;\n this.boneData[i16 + 1] = SplatSkinning.relQuat.y;\n this.boneData[i16 + 2] = SplatSkinning.relQuat.z;\n this.boneData[i16 + 3] = SplatSkinning.relQuat.w;\n this.boneData[i16 + 4] = 0.5 * SplatSkinning.dual.x;\n this.boneData[i16 + 5] = 0.5 * SplatSkinning.dual.y;\n this.boneData[i16 + 6] = 0.5 * SplatSkinning.dual.z;\n this.boneData[i16 + 7] = 0.5 * SplatSkinning.dual.w;\n } else {\n this.setBoneQuatPosScale(boneIndex, quat, pos, SplatSkinning.UNIT_SCALE);\n }\n }\n\n setBoneQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n throw new Error(\n \"setBoneQuatPosScale only supported for linear blend skinning\",\n );\n }\n\n SplatSkinning.skinMat.compose(pos, quat, scale);\n this.setBoneMatrix(boneIndex, SplatSkinning.skinMat);\n }\n\n setBoneMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setBoneMatrix only supported for linear blend skinning\");\n }\n\n SplatSkinning.skinMat.multiplyMatrices(\n this.boneRestInvMats[boneIndex],\n matrix,\n );\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.skinMat.elements[0];\n this.boneData[i16 + 1] = SplatSkinning.skinMat.elements[1];\n this.boneData[i16 + 2] = SplatSkinning.skinMat.elements[2];\n this.boneData[i16 + 3] = SplatSkinning.skinMat.elements[4];\n this.boneData[i16 + 4] = SplatSkinning.skinMat.elements[5];\n this.boneData[i16 + 5] = SplatSkinning.skinMat.elements[6];\n this.boneData[i16 + 6] = SplatSkinning.skinMat.elements[8];\n this.boneData[i16 + 7] = SplatSkinning.skinMat.elements[9];\n this.boneData[i16 + 8] = SplatSkinning.skinMat.elements[10];\n this.boneData[i16 + 9] = SplatSkinning.skinMat.elements[12];\n this.boneData[i16 + 10] = SplatSkinning.skinMat.elements[13];\n this.boneData[i16 + 11] = SplatSkinning.skinMat.elements[14];\n }\n\n // Set up to 4 bone indices and weights for a Gsplat. For fewer than 4 bones,\n // you can set the remaining weights to 0 (and index=0).\n setSplatBones(\n splatIndex: number,\n boneIndices: THREE.Vector4,\n weights: THREE.Vector4,\n ) {\n const i4 = splatIndex * 4;\n this.skinData[i4 + 0] =\n Math.min(255, Math.max(0, Math.round(weights.x * 255.0))) +\n (boneIndices.x << 8);\n this.skinData[i4 + 1] =\n Math.min(255, Math.max(0, Math.round(weights.y * 255.0))) +\n (boneIndices.y << 8);\n this.skinData[i4 + 2] =\n Math.min(255, Math.max(0, Math.round(weights.z * 255.0))) +\n (boneIndices.z << 8);\n this.skinData[i4 + 3] =\n Math.min(255, Math.max(0, Math.round(weights.w * 255.0))) +\n (boneIndices.w << 8);\n }\n\n // Call this to indicate that the bones have changed and the Gsplats need to be\n // re-generated with updated skinning.\n updateBones() {\n this.boneTexture.needsUpdate = true;\n this.mesh.needsUpdate = true;\n }\n\n private static UNIT_SCALE = new THREE.Vector3(1, 1, 1);\n private static relQuat = new THREE.Quaternion();\n private static relPos = new THREE.Vector3();\n private static dual = new THREE.Quaternion();\n private static skinMat = new THREE.Matrix4();\n}\n\n// dyno program definitions for SplatSkinning\n\nexport const GsplatSkinning = { type: \"GsplatSkinning\" } as {\n type: \"GsplatSkinning\";\n};\n\nexport const defineGsplatSkinning = unindent(`\n struct GsplatSkinning {\n int numSplats;\n int numBones;\n usampler2DArray skinTexture;\n sampler2D boneTexture;\n };\n`);\n\nexport const defineApplyGsplatSkinning = unindent(`\n void applyGsplatSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec4 quaternion\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n\n center = quatVec(quat, center) + translate;\n quaternion = quatQuat(quat, quaternion);\n }\n`);\n\nfunction applyGsplatSkinning(\n gsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { gsplat: typeof Gsplat; skinning: typeof GsplatSkinning },\n { gsplat: typeof Gsplat }\n >({\n inTypes: { gsplat: Gsplat, skinning: GsplatSkinning },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplatSkinning, defineApplyGsplatSkinning],\n inputs: { gsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n applyGsplatSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${gsplat}.index, ${gsplat}.center, ${gsplat}.quaternion\n );\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nexport const defineApplyCovSplatDQSkinning = unindent(`\n void applyCovSplatDQSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n mat3 basis = quaternionToMatrix(quat);\n\n center = quatVec(quat, center) + translate;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nexport const defineApplyCovSplatLBSkinning = unindent(`\n void applyCovSplatLBSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n mat3 basis = mat3(0.0);\n vec3 offset = vec3(0.0);\n\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n if (boneIndex < numBones) {\n vec4 v0 = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n vec4 v1 = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n vec4 v2 = texelFetch(boneTexture, ivec2(2, boneIndex), 0);\n basis += weights[i] * mat3(v0.x, v0.y, v0.z, v0.w, v1.x, v1.y, v1.z, v1.w, v2.x);\n offset += weights[i] * vec3(v2.y, v2.z, v2.w);\n }\n }\n }\n\n center = basis * center + offset;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nfunction applyCovSplatDQSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatDQSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatDQSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nfunction applyCovSplatLBSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatLBSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatLBSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n","import * as THREE from \"three\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport function constructGrid({\n // PackedSplats object to add splats to\n splats,\n // min and max box extents of the grid\n extents,\n // step size along each grid axis\n stepSize = 1,\n // spherical radius of each Gsplat\n pointRadius = 0.01,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n pointShadowScale = 2.0,\n // Gsplat opacity\n opacity = 1.0,\n // Gsplat color (THREE.Color) or function to set color for position:\n // ((THREE.Color, THREE.Vector3) => void) (default: RGB-modulated grid)\n color,\n}: {\n splats: PackedSplats;\n extents: THREE.Box3;\n stepSize?: number;\n pointRadius?: number;\n pointShadowScale?: number;\n opacity?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const EPSILON = 1.0e-6;\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n if (color == null) {\n color = (color, point) =>\n color.set(\n 0.55 + 0.45 * Math.cos(point.x * 1),\n 0.55 + 0.45 * Math.cos(point.y * 1),\n 0.55 + 0.45 * Math.cos(point.z * 1),\n );\n }\n const pointColor = new THREE.Color();\n for (let z = extents.min.z; z < extents.max.z + EPSILON; z += stepSize) {\n for (let y = extents.min.y; y < extents.max.y + EPSILON; y += stepSize) {\n for (let x = extents.min.x; x < extents.max.x + EPSILON; x += stepSize) {\n center.set(x, y, z);\n for (let layer = 0; layer < 2; ++layer) {\n scales.setScalar(pointRadius * (layer ? 1 : pointShadowScale));\n if (!layer) {\n pointColor.setScalar(0.0);\n } else if (typeof color === \"function\") {\n color(pointColor, center);\n } else {\n pointColor.copy(color);\n }\n splats.pushSplat(center, scales, quaternion, opacity, pointColor);\n }\n }\n }\n }\n}\n\nexport function constructAxes({\n // PackedSplats object to add splats to\n splats,\n // scale (Gsplat scale along axis)\n scale = 0.25,\n // radius of the axes (Gsplat scale orthogonal to axis)\n axisRadius = 0.0075,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n axisShadowScale = 2.0,\n // origins of the axes (default single axis at origin)\n origins = [new THREE.Vector3()],\n}: {\n splats: PackedSplats;\n scale?: number;\n axisRadius?: number;\n axisShadowScale?: number;\n origins?: THREE.Vector3[];\n}) {\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const color = new THREE.Color();\n const opacity = 1.0;\n for (const origin of origins) {\n for (let axis = 0; axis < 3; ++axis) {\n center.set(\n origin.x + (axis === 0 ? scale : 0),\n origin.y + (axis === 1 ? scale : 0),\n origin.z + (axis === 2 ? scale : 0),\n );\n for (let layer = 0; layer < 2; ++layer) {\n scales.set(\n (axis === 0 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 1 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 2 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n );\n color.setRGB(\n layer === 0 ? 0.0 : axis === 0 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 1 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 2 ? 1.0 : 0.0,\n );\n splats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n }\n}\n\nexport function constructSpherePoints({\n // PackedSplats object to add splats to\n splats,\n // center of the sphere (default: origin)\n origin = new THREE.Vector3(),\n // radius of the sphere\n radius = 1.0,\n // maximum depth of recursion for subdividing the sphere\n // Warning: Gsplat count grows exponentially with depth\n maxDepth = 3,\n // filter function to apply to each point, for example to select\n // points in a certain direction or other function ((THREE.Vector3) => boolean)\n // (default: null)\n filter = null,\n // radius of each oriented Gsplat\n pointRadius = 0.02,\n // flatness of each oriented Gsplat\n pointThickness = 0.001,\n // color of each Gsplat (THREE.Color) or function to set color for point:\n // ((THREE.Color, THREE.Vector3) => void) (default: white)\n color = new THREE.Color(1, 1, 1),\n}: {\n splats: PackedSplats;\n origin?: THREE.Vector3;\n radius?: number;\n maxDepth?: number;\n filter?: ((point: THREE.Vector3) => boolean) | null;\n pointRadius?: number;\n pointThickness?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const pointsHash: { [key: string]: THREE.Vector3 } = {};\n\n function addPoint(p: THREE.Vector3) {\n if (filter && !filter(p)) {\n return;\n }\n const key = `${p.x},${p.y},${p.z}`;\n if (!pointsHash[key]) {\n pointsHash[key] = p;\n }\n }\n\n function recurse(\n depth: number,\n p0: THREE.Vector3,\n p1: THREE.Vector3,\n p2: THREE.Vector3,\n ) {\n addPoint(p0);\n addPoint(p1);\n addPoint(p2);\n if (depth >= maxDepth) {\n return;\n }\n const p01 = new THREE.Vector3().addVectors(p0, p1).normalize();\n const p12 = new THREE.Vector3().addVectors(p1, p2).normalize();\n const p20 = new THREE.Vector3().addVectors(p2, p0).normalize();\n recurse(depth + 1, p0, p01, p20);\n recurse(depth + 1, p01, p1, p12);\n recurse(depth + 1, p20, p12, p2);\n recurse(depth + 1, p01, p12, p20);\n }\n\n for (const x of [-1, 1]) {\n for (const y of [-1, 1]) {\n for (const z of [-1, 1]) {\n const p0 = new THREE.Vector3(x, 0, 0);\n const p1 = new THREE.Vector3(0, y, 0);\n const p2 = new THREE.Vector3(0, 0, z);\n recurse(0, p0, p1, p2);\n }\n }\n }\n\n const points = Object.values(pointsHash);\n const scales = new THREE.Vector3(pointRadius, pointRadius, pointThickness);\n const quaternion = new THREE.Quaternion();\n const pointColor = typeof color === \"function\" ? new THREE.Color() : color;\n for (const point of points) {\n quaternion.setFromUnitVectors(new THREE.Vector3(0, 0, -1), point);\n if (typeof color === \"function\") {\n color(pointColor, point);\n }\n point.multiplyScalar(radius);\n point.add(origin);\n splats.pushSplat(point, scales, quaternion, 1.0, pointColor);\n }\n}\n\nexport function textSplats({\n // text string to display\n text,\n // browser font to render text with (default: \"Arial\")\n font,\n // font size in pixels/Gsplats (default: 32)\n fontSize,\n // SplatMesh.recolor tint assuming white Gsplats (default: white)\n color,\n // Individual Gsplat color (default: white)\n rgb,\n // Gsplat radius (default: 0.8 covers 1-unit spacing well)\n dotRadius,\n // text alignment: \"left\", \"center\", \"right\", \"start\", \"end\" (default: \"start\")\n textAlign,\n // line spacing multiplier, lines delimited by \"\\n\" (default: 1.0)\n lineHeight,\n // Coordinate scale in object-space (default: 1.0)\n objectScale,\n}: {\n text: string;\n font?: string;\n fontSize?: number;\n color?: THREE.Color;\n rgb?: THREE.Color;\n dotRadius?: number;\n textAlign?: \"left\" | \"center\" | \"right\" | \"start\" | \"end\";\n lineHeight?: number;\n objectScale?: number;\n}) {\n font = font ?? \"Arial\";\n fontSize = fontSize ?? 32;\n color = color ?? new THREE.Color(1, 1, 1);\n dotRadius = dotRadius ?? 0.8;\n textAlign = textAlign ?? \"start\";\n lineHeight = lineHeight ?? 1;\n objectScale = objectScale ?? 1;\n const lines = text.split(\"\\n\");\n\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Failed to create canvas context\");\n }\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n const metrics = ctx.measureText(\"\");\n const fontHeight =\n metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent;\n\n let minLeft = Number.POSITIVE_INFINITY;\n let maxRight = Number.NEGATIVE_INFINITY;\n let minTop = Number.POSITIVE_INFINITY;\n let maxBottom = Number.NEGATIVE_INFINITY;\n for (let line = 0; line < lines.length; ++line) {\n const metrics = ctx.measureText(lines[line]);\n const y = fontHeight * lineHeight * line;\n minLeft = Math.min(minLeft, -metrics.actualBoundingBoxLeft);\n maxRight = Math.max(maxRight, metrics.actualBoundingBoxRight);\n minTop = Math.min(minTop, y - metrics.actualBoundingBoxAscent);\n maxBottom = Math.max(maxBottom, y + metrics.actualBoundingBoxDescent);\n }\n const originLeft = Math.floor(minLeft);\n const originTop = Math.floor(minTop);\n const width = Math.ceil(maxRight) - originLeft;\n const height = Math.ceil(maxBottom) - originTop;\n canvas.width = width;\n canvas.height = height;\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n ctx.textBaseline = \"alphabetic\";\n ctx.fillStyle = \"#FFFFFF\";\n for (let i = 0; i < lines.length; ++i) {\n const y = fontHeight * lineHeight * i - originTop;\n ctx.fillText(lines[i], -originLeft, y);\n }\n\n const imageData = ctx.getImageData(0, 0, width, height);\n const rgba = new Uint8Array(imageData.data.buffer);\n const splats = new PackedSplats();\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius * objectScale);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n rgb = rgb ?? new THREE.Color(1, 1, 1);\n\n let offset = 0;\n for (let y = 0; y < height; ++y) {\n for (let x = 0; x < width; ++x) {\n const a = rgba[offset + 3];\n if (a > 0) {\n const opacity = a / 255;\n center.set(x - 0.5 * (width - 1), 0.5 * (height - 1) - y, 0);\n center.multiplyScalar(objectScale);\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n offset += 4;\n }\n }\n\n const mesh = new SplatMesh({ packedSplats: splats });\n mesh.recolor = color;\n return mesh;\n}\n\nexport function imageSplats({\n // URL of the image to convert to splats (example: `url: \"./image.png\"`)\n url,\n // Radius of each Gsplat, default covers 1-unit spacing well (default: 0.8)\n dotRadius,\n // Subsampling factor for the image. Higher values reduce resolution,\n // for example 2 will halve the width and height by averaging (default: 1)\n subXY,\n // Optional callback function to modify each Gsplat before it's added.\n // Return null to skip adding the Gsplat, or a number to set the opacity\n // and add the Gsplat with parameter values in the objects center, rgba etc. were\n // passed into the forEachSplat callback. Ending the callback in `return opacity;`\n // will retain the original opacity.\n // ((width: number, height: number, index: number, center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, opacity: number, color: THREE.Color) => number | null)\n forEachSplat,\n}: {\n url: string;\n dotRadius?: number;\n subXY?: number;\n forEachSplat?: (\n width: number,\n height: number,\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => number | null;\n}): SplatMesh {\n dotRadius = dotRadius ?? 0.8;\n subXY = Math.max(1, Math.floor(subXY ?? 1));\n\n return new SplatMesh({\n constructSplats: async (splats) => {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.onerror = reject;\n img.onload = () => {\n const { width, height } = img;\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n reject(new Error(\"Failed to create canvas context\"));\n return;\n }\n ctx.imageSmoothingEnabled = true;\n ctx.imageSmoothingQuality = \"high\";\n const destWidth = Math.round(width / subXY);\n const destHeight = Math.round(height / subXY);\n ctx.drawImage(img, 0, 0, destWidth, destHeight);\n try {\n const imageData = ctx.getImageData(0, 0, destWidth, destHeight);\n const rgba = new Uint8Array(imageData.data.buffer);\n\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const rgb = new THREE.Color();\n\n let index = 0;\n for (let y = 0; y < destHeight; ++y) {\n for (let x = 0; x < destWidth; ++x) {\n const offset = index * 4;\n const a = rgba[offset + 3];\n if (a > 0) {\n let opacity = a / 255;\n rgb.set(\n rgba[offset + 0] / 255,\n rgba[offset + 1] / 255,\n rgba[offset + 2] / 255,\n );\n center.set(\n x - 0.5 * (destWidth - 1),\n 0.5 * (destHeight - 1) - y,\n 0,\n );\n scales.setScalar(dotRadius);\n quaternion.set(0, 0, 0, 1);\n let push = true;\n if (forEachSplat) {\n const maybeOpacity = forEachSplat(\n destWidth,\n destHeight,\n index,\n center,\n scales,\n quaternion,\n opacity,\n rgb,\n );\n opacity = maybeOpacity ?? opacity;\n push = maybeOpacity !== null;\n }\n if (push) {\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n }\n index += 1;\n }\n }\n resolve();\n } catch (error) {\n reject(error);\n }\n };\n img.src = url;\n });\n },\n });\n}\n","import * as THREE from \"three\";\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n type DynoVal,\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n div,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n floatBitsToInt,\n hashVec3,\n imod,\n mul,\n split,\n sub,\n vec3,\n} from \"../dyno\";\n\nexport function staticBox({\n box,\n cells,\n dotScale,\n color,\n opacity,\n}: {\n box: THREE.Box3;\n cells: THREE.Vector3;\n dotScale: number;\n color?: THREE.Color;\n opacity?: number;\n}) {\n cells.x = Math.max(1, Math.round(cells.x));\n cells.y = Math.max(1, Math.round(cells.y));\n cells.z = Math.max(1, Math.round(cells.z));\n opacity = opacity ?? 1;\n const numSplats = cells.x * cells.y * cells.z;\n const dynoX = dynoConst(\"int\", cells.x);\n const dynoY = dynoConst(\"int\", cells.y);\n const dynoZ = dynoConst(\"int\", cells.z);\n\n const dynoTime = dynoFloat(0);\n const generator = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n const cellX = imod(index, dynoX);\n const index2 = div(index, dynoX);\n const cellY = imod(index2, dynoY);\n const cellZ = div(index2, dynoY);\n const cell = combine({\n vectorType: \"ivec3\",\n x: cellX,\n y: cellY,\n z: cellZ,\n });\n\n const intTime = floatBitsToInt(dynoTime);\n const inputs = combine({ vectorType: \"ivec2\", x: index, y: intTime });\n const random = hashVec3(inputs);\n const min = dynoConst(\"vec3\", box.min);\n const max = dynoConst(\"vec3\", box.max);\n const size = sub(max, min);\n const coord = div(add(vec3(cell), random), dynoConst(\"vec3\", cells));\n let r: DynoVal<\"float\">;\n let g: DynoVal<\"float\">;\n let b: DynoVal<\"float\">;\n if (color) {\n r = dynoConst(\"float\", color.r);\n g = dynoConst(\"float\", color.g);\n b = dynoConst(\"float\", color.b);\n } else {\n ({ r, g, b } = split(coord).outputs);\n }\n const rgba = combine({\n vectorType: \"vec4\",\n r,\n g,\n b,\n a: dynoConst(\"float\", opacity),\n });\n const center = add(min, mul(size, coord));\n const scales = vec3(dynoConst(\"float\", dotScale));\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgba,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ time }) => {\n dynoTime.value = time;\n const _updated = transformer.update(generator);\n generator.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return generator;\n}\n","import * as THREE from \"three\";\n\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n fract,\n hashVec4,\n max,\n mix,\n mod,\n mul,\n sin,\n split,\n sub,\n vec3,\n} from \"../dyno\";\nimport { dynoVec3 } from \"../dyno\";\n\n// snowBox produces Gsplat trajectories that move in a deterministic fashion over time,\n// with high similarity between adjacent frames. See examples/atmospheric/main.js\n// for an example that creates a snowBox.\n\n// A snowBox instance has a collection of properties that can be tuned to achieve\n// different particle effects. The below DEFAULT_SNOW and DEFAULT_RAIN are example\n// parameter sets that look a lot like snow and rain, and can be used as a starting\n// point for further tweaking: `const mySnow = { ...DEFAULT_SNOW, density: 500 };`\n\nexport const DEFAULT_SNOW = {\n box: new THREE.Box3(\n new THREE.Vector3(-1, -1, -1),\n new THREE.Vector3(1, 1, 1),\n ),\n density: 100,\n fallDirection: new THREE.Vector3(-1, -3, 1).normalize(),\n fallVelocity: 0.02,\n wanderScale: 0.04,\n wanderVariance: 2,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.5, 0.5, 1),\n minScale: 0.001,\n maxScale: 0.005,\n anisoScale: new THREE.Vector3(1, 1, 1),\n};\n\nexport const DEFAULT_RAIN = {\n box: new THREE.Box3(\n new THREE.Vector3(-2, -1, -2),\n new THREE.Vector3(2, 5, 2),\n ),\n density: 10,\n fallDirection: new THREE.Vector3(0, -1, 0),\n fallVelocity: 2,\n wanderScale: 0.1,\n wanderVariance: 1,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.25, 0.25, 0.5),\n minScale: 0.005,\n maxScale: 0.01,\n anisoScale: new THREE.Vector3(0.1, 1, 0.1),\n};\n\n// Calling snowBox creates a new snowBox instance and returns an object with\n// the snowBox itself as well `as` a collection of controls that can be used to\n// adjust the snowBox's properties over time:\n//\n// - snow: the SplatGenerator snowBox instance\n// - min: the vec3 uniform of the snowBox minimum position\n// - max: the vec3 uniform of the snowBox maximum position\n// - minY: the float uniform of the snowBox minimum y-coordinate\n// - color1: the vec3 uniform of the snowBox first color\n// - color2: the vec3 uniform of the snowBox second color\n// - opacity: the float uniform of the snowBox opacity\n// - fallVelocity: the float uniform of the snowBox fall velocity\n// - wanderVariance: the float uniform of the snowBox wander variance\n// - wanderScale: the float uniform of the snowBox wander scale\n// - fallDirection: the vec3 uniform of the snowBox fall direction\n// - minScale: the float uniform of the snowBox minimum scale\n// - maxScale: the float uniform of the snowBox maximum scale\n// - anisoScale: the vec3 uniform of the snowBox anisotropic scale\n\nexport function snowBox({\n // min and max box extents of the snowBox\n box,\n // minimum y-coordinate to clamp particle position, which can be used to\n // fake hitting a ground plane and lingering there for a bit\n minY,\n // number of Gsplats to generate (default: calculated from box and density)\n numSplats,\n // density of Gsplats per unit volume (default: 100)\n density,\n // The xyz anisotropic scale of the Gsplat, which can be used for example\n // to elongate rain particles (default: (1, 1, 1))\n anisoScale,\n // Minimum Gsplat particle scale (default: 0.001)\n minScale,\n // Maximum Gsplat particle scale (default: 0.005)\n maxScale,\n // The average direction of fall (default: (0, -1, 0))\n fallDirection,\n // The average speed of the fall (multiplied with fallDirection) (default: 0.02)\n fallVelocity,\n // The world scale of wandering overlay motion (default: 0.01)\n wanderScale,\n // Controls how uniformly the particles wander in sync, more variance mean\n // more randomness in the motion (default: 2)\n wanderVariance,\n // Color 1 of the two colors interpolated between (default: (1, 1, 1))\n color1,\n // Color 2 of the two colors interpolated between (default: (0.5, 0.5, 1))\n color2,\n // The base opacity of the Gsplats (default: 1)\n opacity,\n // Optional callback function to call each frame.\n onFrame,\n}: {\n box?: THREE.Box3;\n minY?: number;\n numSplats?: number;\n density?: number;\n anisoScale?: THREE.Vector3;\n minScale?: number;\n maxScale?: number;\n fallDirection?: THREE.Vector3;\n fallVelocity?: number;\n wanderScale?: number;\n wanderVariance?: number;\n color1?: THREE.Color;\n color2?: THREE.Color;\n opacity?: number;\n onFrame?: ({\n object,\n time,\n deltaTime,\n }: { object: SplatGenerator; time: number; deltaTime: number }) => void;\n}) {\n box =\n box ??\n new THREE.Box3(new THREE.Vector3(-1, -1, -1), new THREE.Vector3(1, 1, 1));\n const volume =\n (box.max.x - box.min.x) * (box.max.y - box.min.y) * (box.max.z - box.min.z);\n density = density ?? 100;\n numSplats =\n numSplats ?? Math.max(1, Math.min(1000000, Math.round(volume * density)));\n\n const dynoMinScale = dynoFloat(minScale ?? 0.001);\n const dynoMaxScale = dynoFloat(maxScale ?? 0.005);\n const dynoAnisoScale = dynoVec3(\n (anisoScale?.clone() ?? new THREE.Vector3(1, 1, 1)).normalize(),\n );\n const dynoFallDirection = dynoVec3(\n (fallDirection ?? new THREE.Vector3(0, -1, 0)).normalize(),\n );\n const dynoFallVelocity = dynoFloat(fallVelocity ?? 0.02);\n const dynoWanderScale = dynoFloat(wanderScale ?? 0.01);\n const dynoWanderVariance = dynoFloat(wanderVariance ?? 2);\n const dynoColor1 = dynoVec3(color1 ?? new THREE.Color(1, 1, 1));\n const dynoColor2 = dynoVec3(color2 ?? new THREE.Color(0.5, 0.5, 1));\n const dynoOpacity = dynoFloat(opacity ?? 1);\n\n const dynoTime = dynoFloat(0);\n const globalOffset = dynoVec3(new THREE.Vector3(0, 0, 0));\n const dynoMin = dynoVec3(box.min);\n const dynoMax = dynoVec3(box.max);\n const dynoMinY = dynoFloat(minY ?? Number.NEGATIVE_INFINITY);\n const minMax = sub(dynoMax, dynoMin);\n const snow = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index not defined\");\n }\n const random = hashVec4(index);\n const randomW = split(random).outputs.w;\n let position = vec3(random);\n\n let size = fract(mul(randomW, dynoConst(\"float\", 100)));\n size = sin(mul(dynoLiteral(\"float\", \"PI\"), size));\n size = add(dynoMinScale, mul(size, sub(dynoMaxScale, dynoMinScale)));\n const scales = mul(size, dynoAnisoScale);\n\n const intensity = fract(mul(randomW, dynoConst(\"float\", 10)));\n const hue = fract(randomW);\n const color = mix(dynoColor1, dynoColor2, hue);\n const rgb = mul(color, intensity);\n\n const random2 = hashVec4(\n combine({\n vectorType: \"ivec2\",\n x: index,\n y: dynoConst(\"int\", 0x1ab5),\n }),\n );\n let perturb = vec3(random2);\n let timeOffset = mul(split(random2).outputs.w, dynoWanderVariance);\n timeOffset = add(dynoTime, timeOffset);\n\n position = add(position, globalOffset);\n const modulo = mod(\n position,\n dynoConst(\"vec3\", new THREE.Vector3(1, 1, 1)),\n );\n position = add(dynoMin, mul(minMax, modulo));\n\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n\n perturb = sin(add(vec3(timeOffset), perturb));\n perturb = mul(perturb, dynoWanderScale);\n let center = add(position, perturb);\n\n let centerY = split(center).outputs.y;\n centerY = max(dynoMinY, centerY);\n center = combine({ vector: center, y: centerY });\n\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgb,\n opacity: dynoOpacity,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ object, time, deltaTime }) => {\n dynoTime.value = time;\n const _updated = transformer.update(snow);\n\n const fallDelta = dynoFallDirection.value\n .clone()\n .multiplyScalar(dynoFallVelocity.value * deltaTime);\n globalOffset.value.add(fallDelta);\n\n // Enable/disable splats based on opacity\n object.visible = dynoOpacity.value > 0;\n\n onFrame?.({ object, time, deltaTime });\n snow.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return {\n snow,\n min: dynoMin,\n max: dynoMax,\n minY: dynoMinY,\n color1: dynoColor1,\n color2: dynoColor2,\n opacity: dynoOpacity,\n fallVelocity: dynoFallVelocity,\n wanderVariance: dynoWanderVariance,\n wanderScale: dynoWanderScale,\n fallDirection: dynoFallDirection,\n minScale: dynoMinScale,\n maxScale: dynoMaxScale,\n anisoScale: dynoAnisoScale,\n };\n}\n\nexport type SNOW_RESULT_TYPE = ReturnType;\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n Gsplat,\n add,\n combineGsplat,\n dot,\n dynoBlock,\n dynoConst,\n greaterThanEqual,\n gsplatNormal,\n mul,\n neg,\n select,\n splitGsplat,\n} from \"../dyno\";\n\nexport function makeNormalColorModifier(splatToView: SplatTransformer) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let normal = gsplatNormal(gsplat);\n\n const viewGsplat = splatToView.applyGsplat(gsplat);\n const viewCenter = splitGsplat(viewGsplat).outputs.center;\n const viewNormal = gsplatNormal(viewGsplat);\n const splatDot = dot(viewCenter, viewNormal);\n\n const sameDir = greaterThanEqual(splatDot, dynoConst(\"float\", 0));\n normal = select(sameDir, neg(normal), normal);\n const rgb = add(\n mul(normal, dynoConst(\"float\", 0.5)),\n dynoConst(\"float\", 0.5),\n );\n\n gsplat = combineGsplat({ gsplat, rgb });\n return { gsplat };\n });\n}\n\nexport function setWorldNormalColor(splats: SplatMesh) {\n splats.enableWorldToView = true;\n splats.worldModifier = makeNormalColorModifier(splats.context.worldToView);\n splats.updateGenerator();\n}\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n type DynoVal,\n Gsplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n neg,\n normalizedDepth,\n select,\n split,\n splitGsplat,\n sub,\n} from \"../dyno\";\n\nexport function makeDepthColorModifier(\n splatToView: SplatTransformer,\n minDepth: DynoVal<\"float\">,\n maxDepth: DynoVal<\"float\">,\n reverse: DynoVal<\"bool\">,\n) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let { center } = splitGsplat(gsplat).outputs;\n center = splatToView.apply(center);\n const { z } = split(center).outputs;\n let depth = normalizedDepth(neg(z), minDepth, maxDepth);\n depth = select(reverse, sub(dynoConst(\"float\", 1), depth), depth);\n\n gsplat = combineGsplat({ gsplat, r: depth, g: depth, b: depth });\n return { gsplat };\n });\n}\n\nexport function setDepthColor(\n splats: SplatMesh,\n minDepth: number,\n maxDepth: number,\n reverse?: boolean,\n) {\n splats.enableWorldToView = true;\n const dynoMinDepth = dynoConst(\"float\", minDepth);\n const dynoMaxDepth = dynoConst(\"float\", maxDepth);\n const dynoReverse = dynoConst(\"bool\", reverse ?? false);\n splats.worldModifier = makeDepthColorModifier(\n splats.context.worldToView,\n dynoMinDepth,\n dynoMaxDepth,\n dynoReverse,\n );\n splats.updateGenerator();\n return {\n minDepth: dynoMinDepth,\n maxDepth: dynoMaxDepth,\n reverse: dynoReverse,\n };\n}\n","import * as THREE from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport interface SparkXrOptions {\n renderer: THREE.WebGLRenderer;\n // Element to attach enter/exit click handler to\n element?: HTMLElement;\n // ID of element to attach enter/exit click handler to\n elementId?: string;\n // Create a button to enter/exit XR\n // Optionally provide button text or HTML\n // Default is true - create a button\n button?: boolean | SparkXrButton;\n // Blur out element when mouse leaves it\n // Default is 0.5 - 50% opacity\n onMouseLeaveOpacity?: number;\n // Default is \"vrar\" - Try VR then AR\n mode?: \"vr\" | \"ar\" | \"arvr\" | \"vrar\";\n // fixedFoveation: XrManager.setFoveation(...)\n fixedFoveation?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRWebGLLayer/XRWebGLLayer#framebufferscalefactor\n // Default is 0.5 - 50% resolution for better frame rate\n frameBufferScaleFactor?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpace#reference_space_types\n // Defaults is \"local\" - origin is the user's position when starting XR session\n referenceSpaceType?: \"local\" | \"local-floor\" | \"unbounded\" | \"viewer\";\n // Enable hand tracking\n // Default is false\n enableHands?: boolean;\n // Allow WebXR entry on mobile phones that expose navigator.xr\n // Defaults to false - blocks phones to avoid unusable split-screen modes\n allowMobileXr?: boolean;\n // Session init options\n // Default is empty - no additional options\n sessionInit?: XRSessionInit;\n // Callback function called when SparkXr is ready\n // Default is undefined - no callback\n onReady?: (supported: boolean) => void | Promise;\n // Callback function called when entering XR\n // Default is undefined - no callback\n onEnterXr?: () => void | Promise;\n // Callback function called when exiting XR\n // Default is undefined - no callback\n onExitXr?: () => void | Promise;\n // ztroller movement and rotation options\n controllers?: SparkXrControllers;\n}\n\nexport interface SparkXrButton {\n enterXrHtml?: string;\n exitXrHtml?: string;\n enterVrHtml?: string;\n exitVrHtml?: string;\n enterArHtml?: string;\n exitArHtml?: string;\n enterXrText?: string;\n exitXrText?: string;\n enterVrText?: string;\n exitVrText?: string;\n enterArText?: string;\n exitArText?: string;\n style?: CSSStyleDeclaration;\n enterStyle?: CSSStyleDeclaration;\n exitStyle?: CSSStyleDeclaration;\n zIndex?: number;\n}\n\nexport type XrGamepads = {\n left?: Gamepad;\n right?: Gamepad;\n leftIsHand?: boolean;\n rightIsHand?: boolean;\n};\n\nexport interface SparkXrControllers {\n moveSpeed?: number;\n rotateSpeed?: number;\n rollSpeed?: number;\n fastMultiplier?: number;\n slowMultiplier?: number;\n moveHeading?: boolean;\n moveDirection?: boolean;\n getMove?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getRotate?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getFast?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n getSlow?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n}\n\nexport const DEFAULT_CONTROLLER_MOVE_SPEED = 1.0;\nexport const DEFAULT_CONTROLLER_ROTATE_SPEED = 4.0;\nexport const DEFAULT_CONTROLLER_ROLL_SPEED = 2.0;\nexport const DEFAULT_CONTROLLER_FAST_MULTIPLIER = 5;\nexport const DEFAULT_CONTROLLER_SLOW_MULTIPLIER = 1 / 5;\nexport const DEFAULT_CONTROLLER_MOVE_HEADING = false;\n\nexport const DEFAULT_CONTROLLER_GETMOVE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.leftIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(\n gamepads.left?.axes[2] ?? 0,\n (gamepads.left?.buttons[0].value ?? 0) -\n (gamepads.left?.buttons[1].value ?? 0),\n gamepads.left?.axes[3] ?? 0,\n );\nexport const DEFAULT_CONTROLLER_GETROTATE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(gamepads.right?.axes[2] ?? 0, 0, 0);\nexport const DEFAULT_CONTROLLER_GETFAST = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[0]?.pressed ?? false);\nexport const DEFAULT_CONTROLLER_GETSLOW = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[1]?.pressed ?? false);\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.015,\n t1: 0.012,\n t2: 0.0105,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nconst XR_HEADSET_HINTS =\n /Quest|OculusBrowser|VisionOS|XRBrowser|Pico|Lynx|MagicLeap/i;\n\nfunction isLikelyMobilePhone() {\n const ua = navigator.userAgent ?? \"\";\n if (XR_HEADSET_HINTS.test(ua)) {\n return false;\n }\n\n const androidMobile = /Android/i.test(ua) || /Mobile/i.test(ua);\n if (androidMobile) {\n return true;\n }\n\n const uaData = (\n navigator as Navigator & {\n userAgentData?: { mobile?: boolean };\n }\n ).userAgentData;\n if (uaData && typeof uaData.mobile === \"boolean\") {\n return uaData.mobile;\n }\n\n return false;\n}\n\nexport type Joint = {\n position: THREE.Vector3;\n quaternion: THREE.Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\n\nexport class SparkXr {\n renderer: THREE.WebGLRenderer;\n xr?: XRSystem;\n element?: HTMLElement;\n button?: SparkXrButton;\n mode: XRSessionMode | \"initializing\" | \"not_supported\";\n sessionInit?: XRSessionInit;\n session?: XRSession;\n onEnterXr?: () => void;\n onExitXr?: () => void;\n\n controllers?: SparkXrControllers;\n lastControllersUpdate = 0;\n\n enableHands: boolean;\n hands: XrHand[] = [];\n\n constructor(options: SparkXrOptions) {\n this.renderer = options.renderer;\n this.xr = navigator.xr;\n this.mode = \"initializing\";\n this.onEnterXr = options.onEnterXr;\n this.onExitXr = options.onExitXr;\n this.enableHands = options.enableHands ?? false;\n this.controllers = options.controllers;\n\n Promise.resolve()\n .then(() => {\n if (!this.xr) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (!options.allowMobileXr && isLikelyMobilePhone()) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (this.enableHands) {\n this.hands = [new XrHand(Hand.left), new XrHand(Hand.right)];\n }\n\n let element: HTMLElement | undefined = undefined;\n let button: SparkXrButton | undefined = undefined;\n if (options.element) {\n element = options.element;\n } else if (options.elementId) {\n element = document.getElementById(options.elementId) ?? undefined;\n } else {\n element = SparkXr.createButton();\n button =\n options.button == null || typeof options.button === \"boolean\"\n ? {}\n : options.button;\n }\n\n if (!element) {\n throw new Error(\"No element or button provided\");\n }\n\n element.style.display = \"none\";\n element.classList.add(\"hidden\");\n this.button = button;\n this.element = element;\n\n const opacity = options.onMouseLeaveOpacity?.toString();\n if (opacity !== undefined) {\n element.addEventListener(\"mouseleave\", () => {\n element.style.opacity = opacity;\n });\n element.addEventListener(\"mouseenter\", () => {\n element.style.opacity = \"\";\n });\n }\n\n return this.initializeXr(options);\n })\n .then(() => {\n return options.onReady?.(this.mode !== \"not_supported\");\n })\n .catch((error) => {\n alert(`Error initializing SparkXr: ${error}`);\n });\n }\n\n private async initializeXr(options: SparkXrOptions) {\n if (!this.xr || !this.element) {\n return;\n }\n const element = this.element;\n\n const modes = {\n vr: [\"immersive-vr\"],\n ar: [\"immersive-ar\"],\n arvr: [\"immersive-ar\", \"immersive-vr\"],\n vrar: [\"immersive-vr\", \"immersive-ar\"],\n }[options.mode ?? \"vrar\"] as XRSessionMode[] | undefined;\n if (!modes) {\n throw new Error(`Invalid mode: ${options.mode}`);\n }\n\n let supported = null;\n for (const mode of modes) {\n if (await this.xr.isSessionSupported(mode)) {\n supported = mode;\n break;\n }\n }\n\n if (!supported) {\n this.mode = \"not_supported\";\n return;\n }\n this.mode = supported;\n\n const referenceSpaceType = options.referenceSpaceType ?? \"local\";\n\n this.renderer.xr.enabled = true;\n this.renderer.xr.setReferenceSpaceType(referenceSpaceType);\n\n if (options.fixedFoveation !== undefined) {\n this.renderer.xr.setFoveation(options.fixedFoveation);\n }\n const frameBufferScaleFactor = options.frameBufferScaleFactor ?? 0.5;\n this.renderer.xr.setFramebufferScaleFactor(frameBufferScaleFactor);\n\n const optionalFeatures = options.sessionInit?.optionalFeatures ?? [];\n if (options.enableHands) {\n optionalFeatures.push(\"hand-tracking\");\n }\n\n const requiredFeatures = options.sessionInit?.requiredFeatures ?? [];\n requiredFeatures.push(referenceSpaceType);\n\n this.sessionInit = {\n ...options.sessionInit,\n optionalFeatures,\n requiredFeatures,\n };\n // console.log(\"* this.sessionInit\", this.sessionInit);\n\n element.addEventListener(\"click\", () => {\n this.toggleXr();\n });\n\n this.updateElement();\n }\n\n async toggleXr() {\n if (!this.xr || !this.sessionInit) {\n // console.log(\"* !this.xr || !this.sessionInit\");\n return;\n }\n\n if (!this.session) {\n try {\n const mode = this.mode as XRSessionMode;\n const session = await this.xr.requestSession(mode, this.sessionInit);\n this.session = session;\n // console.log(\"* this.session\", this.session);\n\n const onSessionEnded = () => {\n session?.removeEventListener(\"end\", onSessionEnded);\n session?.removeEventListener(\"visibilitychange\", visibilityChanged);\n this.session = undefined;\n\n this.updateElement();\n this.onExitXr?.();\n };\n\n let lastVisibilityState = session.visibilityState;\n const visibilityChanged = () => {\n if (\n session?.visibilityState === \"visible-blurred\" &&\n lastVisibilityState === \"visible\"\n ) {\n session?.end();\n }\n lastVisibilityState = session?.visibilityState;\n };\n\n this.session?.addEventListener(\"end\", onSessionEnded);\n this.session?.addEventListener(\"visibilitychange\", visibilityChanged);\n\n await this.renderer.xr.setSession(this.session);\n // console.log(\"* setSession\");\n\n return this.onEnterXr?.();\n } catch (error) {\n console.error(\"Error requesting XR session\", error);\n return;\n }\n } else {\n this.session.end();\n // console.log(\"* end session\");\n }\n }\n\n private updateElement() {\n const mode = this.mode as XRSessionMode;\n const element = this.element;\n if (element) {\n element.style.display = \"\";\n element.classList.remove(\"hidden\");\n\n const button = typeof this.button === \"boolean\" ? {} : this.button;\n if (button) {\n if (!this.session) {\n const enterHtml =\n (mode === \"immersive-vr\"\n ? button.enterVrHtml\n : button.enterArHtml) ?? button.enterXrHtml;\n const enterText =\n (mode === \"immersive-vr\"\n ? button.enterVrText\n : button.enterArText) ?? button.enterXrText;\n if (enterHtml) {\n element.innerHTML = enterHtml;\n } else if (enterText) {\n element.textContent = enterText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"ENTER VR\" : \"ENTER AR\";\n }\n } else {\n const exitHtml =\n (mode === \"immersive-vr\" ? button.exitVrHtml : button.exitArHtml) ??\n button.exitXrHtml;\n const exitText =\n (mode === \"immersive-vr\" ? button.exitVrText : button.exitArText) ??\n button.exitXrText;\n if (exitHtml) {\n element.innerHTML = exitHtml;\n } else if (exitText) {\n element.textContent = exitText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"EXIT VR\" : \"EXIT AR\";\n }\n }\n\n element.style.display = \"\";\n }\n }\n }\n\n private static createButton() {\n const button = document.createElement(\"button\");\n Object.assign(button.style, {\n position: \"absolute\",\n bottom: \"20px\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n padding: \"40px 40px\",\n border: \"2px solid #fff\",\n borderRadius: \"16px\",\n background: \"rgba(0,0,0,0.1)\",\n color: \"#fff\",\n font: \"bold 28px sans-serif\",\n textAlign: \"center\",\n userSelect: \"none\",\n zIndex: \"999\",\n });\n document.body.appendChild(button);\n return button;\n }\n\n xrSupported() {\n return !!this.xr;\n }\n\n static JointEnum = JointEnum;\n static JOINT_IDS = JOINT_IDS;\n static NUM_JOINTS = NUM_JOINTS;\n static JOINT_INDEX = JOINT_INDEX;\n static JOINT_RADIUS = JOINT_RADIUS;\n static JOINT_SEGMENTS = JOINT_SEGMENTS;\n static JOINT_SEGMENT_STEPS = JOINT_SEGMENT_STEPS;\n static JOINT_TIPS = JOINT_TIPS;\n static FINGER_TIPS = FINGER_TIPS;\n static Hand = Hand;\n static HANDS = HANDS;\n\n left() {\n return this.hands[0];\n }\n\n right() {\n return this.hands[1];\n }\n\n updateControllers(camera: THREE.Camera) {\n const cameraFrame = camera.parent as THREE.Group;\n\n const now = performance.now();\n const deltaTime = (now - (this.lastControllersUpdate || now)) / 1000;\n this.lastControllersUpdate = now;\n\n const xrGamepads: XrGamepads = {};\n for (const source of this.renderer.xr.getSession()?.inputSources ?? []) {\n const gamepad = source.gamepad;\n if (\n gamepad &&\n (source.handedness === \"left\" || source.handedness === \"right\")\n ) {\n xrGamepads[source.handedness] = gamepad;\n if (source.handedness === \"left\") {\n xrGamepads.leftIsHand = !!source.hand;\n } else if (source.handedness === \"right\") {\n xrGamepads.rightIsHand = !!source.hand;\n }\n }\n }\n\n const rotate = (\n this.controllers?.getRotate ?? DEFAULT_CONTROLLER_GETROTATE\n )(xrGamepads, this);\n rotate.multiply(\n new THREE.Vector3(\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rollSpeed ?? DEFAULT_CONTROLLER_ROLL_SPEED,\n ),\n );\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler(-rotate.y, -rotate.x, rotate.z, \"YXZ\");\n const quat = new THREE.Quaternion().setFromEuler(eulers);\n\n const pivot = camera.getWorldPosition(new THREE.Vector3());\n cameraFrame.parent?.worldToLocal(pivot);\n\n cameraFrame.position.sub(pivot);\n cameraFrame.position.applyQuaternion(quat);\n cameraFrame.position.add(pivot);\n cameraFrame.quaternion.premultiply(quat);\n }\n\n const move = (this.controllers?.getMove ?? DEFAULT_CONTROLLER_GETMOVE)(\n xrGamepads,\n this,\n );\n\n let moveSpeed =\n this.controllers?.moveSpeed ?? DEFAULT_CONTROLLER_MOVE_SPEED;\n if (\n (this.controllers?.getFast ?? DEFAULT_CONTROLLER_GETFAST)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_FAST_MULTIPLIER;\n }\n if (\n (this.controllers?.getSlow ?? DEFAULT_CONTROLLER_GETSLOW)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_SLOW_MULTIPLIER;\n }\n\n if (this.controllers?.moveHeading) {\n move.applyQuaternion(camera.quaternion);\n } else if (this.controllers?.moveDirection) {\n SCRATCH_EULER.setFromQuaternion(camera.quaternion, \"YXZ\");\n SCRATCH_EULER.x = 0;\n SCRATCH_EULER.z = 0;\n SCRATCH_QUAT_A.setFromEuler(SCRATCH_EULER);\n move.applyQuaternion(SCRATCH_QUAT_A);\n }\n move.applyQuaternion(cameraFrame.quaternion);\n\n move.multiplyScalar(deltaTime * moveSpeed);\n cameraFrame.position.add(move);\n }\n\n updateHands({ xrFrame }: { xrFrame: XRFrame }) {\n const xrSession = this.renderer.xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = this.renderer.xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n for (const hand of this.hands) {\n if (hand) {\n hand.lastJoints = hand.joints;\n hand.joints = undefined;\n }\n }\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n const hand = inputSource.handedness as Hand;\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n if (!xrHand) {\n continue;\n }\n\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n\n if (!xrHand.joints) {\n xrHand.joints = {};\n }\n xrHand.joints[jointId] = {\n position: new THREE.Vector3(position.x, position.y, position.z),\n quaternion: new THREE.Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: JOINT_RADIUS[jointId],\n };\n }\n }\n }\n }\n }\n\n makeJointSplats(hand: Hand): JointSplats {\n const mesh = new JointSplats(hand);\n mesh.onFrame = () => {\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n const joints = xrHand?.joints;\n mesh.updateJoints(joints);\n };\n return mesh;\n }\n\n snapshotHands(time: number) {\n const hands = [\n this.hands[0]?.snapshotJoints(),\n this.hands[1]?.snapshotJoints(),\n ];\n return { time, hands };\n }\n}\n\ntype JointSnapshot = { pos: number[]; quat: number[]; radius: number };\ntype HandSnapshot = { [key in JointId]?: JointSnapshot };\ntype HandsSnapshot = {\n time: number;\n hands: (HandSnapshot | undefined)[];\n};\n\nconst round4 = (value: number) => Math.round(value * 10000) / 10000;\nconst SCRATCH_EULER = new THREE.Euler(0, 0, 0, \"YXZ\");\nconst SCRATCH_QUAT_A = new THREE.Quaternion();\nconst SCRATCH_QUAT_B = new THREE.Quaternion();\n\nexport function lerpHandsSnapshots(\n snapshots: HandsSnapshot[],\n time: number,\n): HandsSnapshot | null {\n if (!snapshots.length) {\n return null;\n }\n\n const first = snapshots[0];\n const last = snapshots[snapshots.length - 1];\n\n if (time < first.time || time > last.time) {\n return null;\n }\n\n const floorIndex = findSnapshotFloorIndex(snapshots, time);\n if (floorIndex === -1) {\n return null;\n }\n\n const from = snapshots[floorIndex];\n const to = snapshots[floorIndex + 1];\n if (!to) {\n return cloneSnapshot(from, time);\n }\n\n const span = to.time - from.time;\n const factor = span > 0 ? (time - from.time) / span : 0;\n\n return interpolateSnapshots(from, to, factor, time);\n}\n\nfunction interpolateSnapshots(\n from: HandsSnapshot,\n to: HandsSnapshot,\n factor: number,\n time: number,\n): HandsSnapshot {\n const maxHands = Math.max(from.hands.length, to.hands.length);\n const hands = Array.from({ length: maxHands }, (_, handIndex) =>\n lerpHandSnapshot(from.hands[handIndex], to.hands[handIndex], factor),\n );\n return { time, hands };\n}\n\nfunction cloneSnapshot(snapshot: HandsSnapshot, time: number): HandsSnapshot {\n return {\n time,\n hands: snapshot.hands.map((hand) => cloneHandSnapshot(hand)),\n };\n}\n\nexport class XrHand {\n hand: Hand;\n joints?: HandJoints;\n lastJoints?: HandJoints;\n\n constructor(hand: Hand) {\n this.hand = hand;\n }\n\n static newFromSnapshot(hand: Hand, snapshot: HandSnapshot) {\n const h = new XrHand(hand);\n h.joints = {};\n for (const jointId of JOINT_IDS) {\n const joint = snapshot[jointId];\n if (!joint) {\n continue;\n }\n h.joints[jointId] = {\n position: new THREE.Vector3(joint.pos[0], joint.pos[1], joint.pos[2]),\n quaternion: new THREE.Quaternion(\n joint.quat[0],\n joint.quat[1],\n joint.quat[2],\n joint.quat[3],\n ),\n radius: joint.radius,\n };\n }\n return h;\n }\n\n valid() {\n return !!this.joints;\n }\n\n snapshotJoints() {\n if (!this.joints) {\n return undefined;\n }\n\n const snapshot: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (!joint) {\n continue;\n }\n snapshot[jointId] = {\n pos: joint.position.toArray().map(round4),\n quat: joint.quaternion.toArray().map(round4),\n radius: round4(joint.radius),\n };\n }\n return snapshot;\n }\n\n toFlatArray() {\n if (!this.joints) {\n return undefined;\n }\n const array = new Float32Array(1 + 25 * 7);\n array[0] = this.hand === Hand.left ? 0 : 1;\n let index = 1;\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (joint) {\n array[index] = joint.position.x;\n array[index + 1] = joint.position.y;\n array[index + 2] = joint.position.z;\n array[index + 3] = joint.quaternion.x;\n array[index + 4] = joint.quaternion.y;\n array[index + 5] = joint.quaternion.z;\n array[index + 6] = joint.quaternion.w;\n }\n index += 7;\n }\n return array;\n }\n}\n\nfunction findSnapshotFloorIndex(snapshots: HandsSnapshot[], time: number) {\n let low = 0;\n let high = snapshots.length - 1;\n while (low <= high) {\n const mid = (low + high) >> 1;\n if (snapshots[mid].time <= time) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n return high;\n}\n\nfunction lerpHandSnapshot(\n fromHand?: HandSnapshot,\n toHand?: HandSnapshot,\n factor = 0,\n) {\n if (!fromHand || !toHand) {\n return undefined;\n }\n const hand: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = lerpJointSnapshot(fromHand[jointId], toHand[jointId], factor);\n if (joint) {\n hand[jointId] = joint;\n }\n }\n return hand;\n}\n\nfunction lerpJointSnapshot(\n fromJoint?: JointSnapshot,\n toJoint?: JointSnapshot,\n factor = 0,\n) {\n if (!fromJoint || !toJoint) {\n return undefined;\n }\n const pos = fromJoint.pos.map(\n (value, index) => value + (toJoint.pos[index] - value) * factor,\n );\n const quat = SCRATCH_QUAT_A.fromArray(fromJoint.quat)\n .slerp(SCRATCH_QUAT_B.fromArray(toJoint.quat), factor)\n .toArray();\n const radius =\n fromJoint.radius + (toJoint.radius - fromJoint.radius) * factor;\n\n return { pos, quat, radius };\n}\n\nfunction cloneHandSnapshot(hand?: HandSnapshot) {\n if (!hand) {\n return undefined;\n }\n const clone: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = hand[jointId];\n if (joint) {\n clone[jointId] = cloneJointSnapshot(joint);\n }\n }\n return clone;\n}\n\nfunction cloneJointSnapshot(joint: JointSnapshot): JointSnapshot {\n return {\n pos: [...joint.pos],\n quat: [...joint.quat],\n radius: joint.radius,\n };\n}\n\nexport class JointSplats extends SplatMesh {\n hand: Hand;\n\n constructor(hand: Hand) {\n super({});\n this.hand = hand;\n }\n\n private scratchCenter = new THREE.Vector3();\n private scratchQuat = new THREE.Quaternion(0, 0, 0, 1);\n private scratchScales = new THREE.Vector3().setScalar(0.01);\n private scratchColor = new THREE.Color(1, 1, 1);\n\n updateJoints(joints?: HandJoints) {\n this.visible = false;\n\n if (!joints || !this.packedSplats) {\n return;\n }\n\n this.visible = true;\n let splatIndex = 0;\n\n for (const jointId of JOINT_IDS) {\n const joint = joints[jointId];\n if (!joint) {\n continue;\n }\n this.scratchCenter.copy(joint.position);\n this.scratchQuat.copy(joint.quaternion);\n this.scratchScales.set(\n joint.radius,\n 0.75 * joint.radius,\n 1.5 * joint.radius,\n );\n // this.scratchColor.set((joint.radius * 123) % 1, (joint.radius * 345) % 1, (joint.radius * 234) % 1);\n const opacity = 0.75;\n\n this.packedSplats.setSplat(\n splatIndex,\n this.scratchCenter,\n this.scratchScales,\n this.scratchQuat,\n opacity,\n this.scratchColor,\n );\n splatIndex += 1;\n }\n\n this.packedSplats.numSplats = splatIndex;\n this.packedSplats.needsUpdate = true;\n this.numSplats = splatIndex;\n this.updateVersion();\n }\n}\n","import {\n Color,\n Matrix4,\n type Object3D,\n Quaternion,\n Vector3,\n type WebXRManager,\n} from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\n// Experimental WebXR hand tracking and movement\n\nconst DEFAULT_MOVE_INERTIA = 0.5;\nconst DEFAULT_ROTATE_INERTIA = 0.5;\nconst TOUCH_BIAS = 0.0;\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.02,\n t1: 0.014,\n t2: 0.0115,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nexport type Joint = {\n position: Vector3;\n quaternion: Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\nexport type HandsJoints = { [key in Hand]?: HandJoints };\n\nexport class XrHands {\n hands: HandsJoints = {};\n last: HandsJoints = {};\n\n values: Record = {};\n tests: Record = {};\n lastTests: Record = {};\n\n updated = false;\n\n update({ xr, xrFrame }: { xr: WebXRManager; xrFrame: XRFrame }) {\n const xrSession = xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n this.last = this.hands;\n this.lastTests = this.tests;\n\n this.hands = {};\n this.values = {};\n this.tests = {};\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n\n const hand = inputSource.handedness as Hand;\n this.hands[hand] = {};\n\n // Iterate over JointId\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n this.hands[hand][jointId] = {\n position: new Vector3(position.x, position.y, position.z),\n quaternion: new Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: jointPose.radius || 0.001,\n };\n }\n }\n }\n }\n\n for (const hand of HANDS) {\n for (const { key, value } of [\n { key: `${hand}AllTips`, value: this.allTipsTouching(hand) },\n {\n key: `${hand}IndexThumb`,\n value: this.touching(hand, \"i4\", hand, \"t3\"),\n },\n {\n key: `${hand}MiddleThumb`,\n value: this.touching(hand, \"m4\", hand, \"t3\"),\n },\n {\n key: `${hand}RingThumb`,\n value: this.touching(hand, \"r4\", hand, \"t3\"),\n },\n {\n key: `${hand}PinkyThumb`,\n value: this.touching(hand, \"p4\", hand, \"t3\"),\n },\n { key: `${hand}TriTips`, value: this.triTipsTouching(hand) },\n ]) {\n this.values[key] = value;\n this.tests[key] =\n value === 1.0\n ? true\n : value === 0.0\n ? false\n : (this.lastTests[key] ?? false);\n }\n }\n }\n\n makeGhostMesh(): SplatMesh {\n const center = new Vector3();\n const scales = new Vector3(0.01, 0.01, 0.01);\n const quaternion = new Quaternion(0, 0, 0, 1);\n const color = new Color(1, 1, 1);\n const CYCLE = Math.PI * 3;\n const WHITE = new Color(1, 1, 1);\n let opacity = 1.0;\n\n const mesh = new SplatMesh({\n onFrame: () => {\n if (!mesh.packedSplats) {\n return;\n }\n let splatIndex = 0;\n for (const handedness of HANDS) {\n const xrHand = this.hands[handedness];\n for (const [index, segment] of JOINT_SEGMENTS.entries()) {\n for (let i = 1; i < segment.length; ++i) {\n const segmentSplats = JOINT_SEGMENT_STEPS[index][i - 1] * 2;\n const lastSegment = i + 1 === segment.length;\n const jointA = xrHand?.[segment[i - 1]];\n const jointB = xrHand?.[segment[i]];\n\n for (let j = 0; j < segmentSplats; ++j) {\n const t = (j + 0.5) / segmentSplats;\n opacity = 0.0;\n if (jointA && jointB) {\n center.copy(jointA.position).lerp(jointB.position, t);\n quaternion\n .copy(jointA.quaternion)\n .slerp(jointB.quaternion, t);\n const radiusA = JOINT_RADIUS[segment[i - 1]];\n const radiusB = JOINT_RADIUS[segment[i]];\n let radius = (1 - t) * radiusA + t * radiusB;\n if (lastSegment && t > 0.8) {\n // Round out finger tips\n radius *= Math.sqrt(1 - ((t - 0.8) / 0.2) ** 2);\n }\n scales.set(0.65 * radius, 0.5 * radius, 0.003);\n color.set(\n 0.55 + 0.45 * Math.sin(center.x * CYCLE),\n 0.55 + 0.45 * Math.sin(center.y * CYCLE),\n 0.55 + 0.45 * Math.sin(center.z * CYCLE),\n );\n if (handedness === \"right\") {\n color.set(1 - color.r, 1 - color.g, 1 - color.b);\n }\n opacity = 0.75;\n }\n mesh.packedSplats.setSplat(\n splatIndex,\n center,\n scales,\n quaternion,\n opacity,\n color,\n );\n splatIndex += 1;\n }\n }\n }\n }\n mesh.packedSplats.numSplats = splatIndex;\n mesh.packedSplats.needsUpdate = true;\n mesh.numSplats = splatIndex;\n mesh.updateVersion();\n },\n });\n return mesh;\n }\n\n distance(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const hA = last ? this.last[handA] : this.hands[handA];\n const hB = last ? this.last[handB] : this.hands[handB];\n const jA = hA?.[jointA];\n const jB = hB?.[jointB];\n if (!jA || !jB) {\n return Number.POSITIVE_INFINITY;\n }\n return jA.position.distanceTo(jB.position);\n }\n\n separation(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.distance(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return d - JOINT_RADIUS[jointA] - JOINT_RADIUS[jointB];\n }\n\n touching(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.separation(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return 1 - Math.max(0, Math.min(1, d / 0.01 - TOUCH_BIAS));\n }\n\n allTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"r4\", last),\n this.touching(hand, \"r4\", hand, \"p4\", last),\n // this.touching(hand, \"p4\", hand, \"t3\", last),\n );\n }\n\n triTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"t3\", last),\n );\n }\n}\n\nexport class HandMovement {\n xrHands: XrHands;\n control: Object3D;\n moveInertia: number;\n rotateInertia: number;\n\n lastGrip: { [key in Hand]?: Vector3 } = {};\n lastPivot: Vector3 = new Vector3();\n rotateVelocity = 0;\n velocity: Vector3 = new Vector3();\n\n constructor({\n xrHands,\n control,\n moveInertia,\n rotateInertia,\n }: {\n xrHands: XrHands;\n control: Object3D;\n moveInertia?: number;\n rotateInertia?: number;\n }) {\n this.xrHands = xrHands;\n this.control = control;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n }\n\n update(deltaTime: number) {\n const grip: { [key in Hand]?: Vector3 } = {};\n for (const handedness of HANDS) {\n const hand = this.xrHands.hands[handedness];\n if (hand && this.xrHands.tests[`${handedness}MiddleThumb`]) {\n grip[handedness] = new Vector3()\n .add(hand.t3?.position ?? new Vector3())\n .add(hand.i4?.position ?? new Vector3())\n .add(hand.m4?.position ?? new Vector3())\n .add(hand.r4?.position ?? new Vector3())\n .add(hand.p4?.position ?? new Vector3())\n .multiplyScalar(1 / 5);\n }\n }\n\n if (grip.left && grip.right && this.lastGrip.left && this.lastGrip.right) {\n const mid = grip.left.clone().add(grip.right).multiplyScalar(0.5);\n const lastMid = this.lastGrip.left\n .clone()\n .add(this.lastGrip.right)\n .multiplyScalar(0.5);\n this.lastPivot = mid;\n\n const delta = mid.clone().applyMatrix4(this.control.matrix);\n delta.sub(lastMid.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n\n const angle = Math.atan2(grip.left.z - mid.z, grip.left.x - mid.x);\n const lastAngle = Math.atan2(\n this.lastGrip.left.z - lastMid.z,\n this.lastGrip.left.x - lastMid.x,\n );\n // Find closest rotation over circle between angle and lastAngle\n let closestAngle = angle - lastAngle;\n if (closestAngle > Math.PI) {\n closestAngle -= Math.PI * 2;\n } else if (closestAngle < -Math.PI) {\n closestAngle += Math.PI * 2;\n }\n const rotateVelocity = closestAngle / deltaTime;\n\n const blend = Math.exp(-20 * deltaTime);\n this.rotateVelocity =\n this.rotateVelocity * blend + rotateVelocity * (1 - blend);\n } else {\n this.rotateVelocity *= Math.exp(-deltaTime / this.rotateInertia);\n\n if (grip.left && this.lastGrip.left) {\n const delta = grip.left.clone().applyMatrix4(this.control.matrix);\n delta.sub(this.lastGrip.left.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else if (grip.right && this.lastGrip.right) {\n const delta = grip.right.clone().applyMatrix4(this.control.matrix);\n delta.sub(\n this.lastGrip.right.clone().applyMatrix4(this.control.matrix),\n );\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else {\n this.velocity.multiplyScalar(Math.exp(-deltaTime / this.moveInertia));\n }\n }\n\n const negPivot = this.lastPivot.clone().negate();\n const rotate = new Matrix4()\n .makeTranslation(negPivot)\n .premultiply(new Matrix4().makeRotationY(this.rotateVelocity * deltaTime))\n .premultiply(new Matrix4().makeTranslation(this.lastPivot));\n this.control.matrix.multiply(rotate);\n this.control.matrix.decompose(\n this.control.position,\n this.control.quaternion,\n this.control.scale,\n );\n this.control.updateMatrixWorld(true);\n\n this.control.position.sub(this.velocity.clone().multiplyScalar(deltaTime));\n this.lastGrip = grip;\n }\n}\n","import * as THREE from \"three\";\nimport { isAndroid, isIos } from \"./utils\";\n\n// Spark controls for keyboard + mouse, game pad, or mobile multi-touch\n\nconst DEFAULT_MOVEMENT_SPEED = 1.0;\nconst DEFAULT_ROLL_SPEED = 2.0;\nconst DEFAULT_ROTATE_SPEED = 0.002;\nconst DEFAULT_SLIDE_SPEED = 0.006;\nconst DEFAULT_SCROLL_SPEED = 0.0015;\nconst DEFAULT_ROLL_SPRING = 0.0;\nconst DEFAULT_ROTATE_INERTIA = 0.15;\nconst DEFAULT_MOVE_INERTIA = 0.15;\nconst DEFAULT_STICK_THRESHOLD = 0.1;\nconst DEFAULT_FPS_ROTATE_SPEED = 2.0;\n// const DEFAULT_POINTER_ROLL_SCALE = 1.0;\nconst DEFAULT_POINTER_ROLL_SCALE = 0.0;\nconst DEFAULT_PRESS_MOVE_DELAY_MS = 500;\nconst DEFAULT_PRESS_MOVE_ACCEL_MS = 500;\n\n// Time limit for double-finger press (pinch etc)\nconst DUAL_PRESS_MS = 200;\n// Time limit for double-click/double-tap\nconst DOUBLE_PRESS_LIMIT_MS = 400;\n// Distance limit for double-click.\nconst DOUBLE_PRESS_DISTANCE = 25;\n\nconst MOVEMENT_THRESHOLD = 1.0e-4;\n\n// Standard WASD movement keys with R+F for up/down\nconst WASD_KEYCODE_MOVE = {\n KeyW: new THREE.Vector3(0, 0, -1),\n KeyS: new THREE.Vector3(0, 0, 1),\n KeyA: new THREE.Vector3(-1, 0, 0),\n KeyD: new THREE.Vector3(1, 0, 0),\n KeyE: new THREE.Vector3(0, 1, 0),\n KeyQ: new THREE.Vector3(0, -1, 0),\n};\n\n// Arrow key movement with PageUp/PageDown\nconst ARROW_KEYCODE_MOVE = {\n ArrowUp: new THREE.Vector3(0, 0, -1),\n ArrowDown: new THREE.Vector3(0, 0, 1),\n ArrowLeft: new THREE.Vector3(-1, 0, 0),\n ArrowRight: new THREE.Vector3(1, 0, 0),\n PageUp: new THREE.Vector3(0, 1, 0),\n PageDown: new THREE.Vector3(0, -1, 0),\n};\n\n// Rolling with Q/E\nconst QE_KEYCODE_ROTATE = {\n KeyQ: new THREE.Vector3(0, 0, 1),\n KeyE: new THREE.Vector3(0, 0, -1),\n};\n\n// Home/End/Insert/Delete for rotation\nconst ARROW_KEYCODE_ROTATE = {\n Home: new THREE.Vector3(0, -1, 0),\n End: new THREE.Vector3(0, 1, 0),\n Insert: new THREE.Vector3(-1, 0, 0),\n Delete: new THREE.Vector3(1, 0, 0),\n};\n\n// SparkControls provides simple, intuitive controls for navigating 3D space that\n// use the keyboard + mouse, game pad, or mobile multi-touch. Internally it\n// instantiates and updates a `FpsMovement` and `PointerControls` instance.\n\nexport class SparkControls {\n fpsMovement: FpsMovement;\n pointerControls: PointerControls;\n lastTime = 0;\n\n constructor({ canvas }: { canvas: HTMLCanvasElement }) {\n this.fpsMovement = new FpsMovement({});\n this.pointerControls = new PointerControls({ canvas });\n }\n\n update(control: THREE.Object3D, camera?: THREE.Camera) {\n const time = performance.now();\n const deltaTime = (time - (this.lastTime || time)) / 1000;\n this.lastTime = time;\n\n let updated = this.fpsMovement.update(deltaTime, control);\n if (this.pointerControls.update(deltaTime, control, camera)) {\n updated = true;\n }\n return updated;\n }\n}\n\n// FpsMovement implements controls that will be familiar to anyone who plays\n// First Person Shooters using keyboard + mouse or a gamepad. Creating a FpsMovement\n// instance provides many parameters for configuring the controls.\n//\n// When gamepads are connected, FpsMovement will always use gamepad index 0\n// for twin-stick movement and rotation.\n//\n// If xr is passed in, the WebXR controllers can be used as a split gamepad\n// to control movement and rotation. (tested on Quest 3)\n\nexport class FpsMovement {\n moveSpeed: number;\n rollSpeed: number;\n stickThreshold: number;\n rotateSpeed: number;\n keycodeMoveMapping: { [key: string]: THREE.Vector3 };\n keycodeRotateMapping: { [key: string]: THREE.Vector3 };\n gamepadMapping: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n capsMultiplier: number;\n shiftMultiplier: number;\n ctrlMultiplier: number;\n xr?: THREE.WebXRManager;\n // Enable/disable controls updates\n enable = true;\n extraMove = new THREE.Vector3();\n\n // Currently active event.key values\n keydown: { [key: string]: boolean };\n // Currently active event.code values\n keycode: { [key: string]: boolean };\n\n constructor({\n moveSpeed,\n rollSpeed,\n stickThreshold,\n rotateSpeed,\n keycodeMoveMapping,\n keycodeRotateMapping,\n gamepadMapping,\n capsMultiplier,\n shiftMultiplier,\n ctrlMultiplier,\n xr,\n }: {\n // Base movement speed (default DEFAULT_MOVEMENT_SPEED)\n moveSpeed?: number;\n // Base roll speed (default DEFAULT_ROLL_SPEED)\n rollSpeed?: number;\n // Stick threshold (default DEFAULT_STICK_THRESHOLD)\n stickThreshold?: number;\n // Speed of rotation when using gamepad or keys (default DEFAULT_FPS_ROTATE_SPEED)\n rotateSpeed?: number;\n // Maps keyboard keys to movement directions\n // (default {...WASD_KEYCODE_MOVE, ...ARROW_KEYCODE_MOVE})\n keycodeMoveMapping?: { [key: string]: THREE.Vector3 };\n // Maps keyboard keys to rotation directions\n // (default { ...ARROW_KEYCODE_ROTATE})\n keycodeRotateMapping?: { [key: string]: THREE.Vector3 };\n // Maps gamepad buttons to control actions\n // (default {4: \"rollLeft\", 5: \"rollRight\", 6: \"ctrl\", 7: \"shift\"})\n gamepadMapping?: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n // Speed multiplier when Caps Lock is active (default: 10)\n capsMultiplier?: number;\n // Speed multiplier when Shift is active (default: 5)\n shiftMultiplier?: number;\n // Speed multiplier when Ctrl is active (default: 1/5)\n ctrlMultiplier?: number;\n // Optional WebXR manager for XR controller stick support\n xr?: THREE.WebXRManager;\n } = {}) {\n this.moveSpeed = moveSpeed ?? DEFAULT_MOVEMENT_SPEED;\n this.rollSpeed = rollSpeed ?? DEFAULT_ROLL_SPEED;\n this.stickThreshold = stickThreshold ?? DEFAULT_STICK_THRESHOLD;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_FPS_ROTATE_SPEED;\n this.keycodeMoveMapping = keycodeMoveMapping ?? {\n ...WASD_KEYCODE_MOVE,\n ...ARROW_KEYCODE_MOVE,\n };\n this.keycodeRotateMapping = keycodeRotateMapping ?? {\n // ...QE_KEYCODE_ROTATE,\n ...ARROW_KEYCODE_ROTATE,\n };\n this.gamepadMapping = gamepadMapping ?? {\n 4: \"rollLeft\",\n 5: \"rollRight\",\n 6: \"ctrl\",\n 7: \"shift\",\n };\n this.capsMultiplier = capsMultiplier ?? 10.0;\n this.shiftMultiplier = shiftMultiplier ?? 5.0;\n this.ctrlMultiplier = ctrlMultiplier ?? 1.0 / 5.0;\n\n this.xr = xr;\n\n this.keydown = {};\n this.keycode = {};\n\n document.addEventListener(\"keydown\", (event) => {\n this.keydown[event.key] = true;\n this.keycode[event.code] = true;\n });\n document.addEventListener(\"keyup\", (event) => {\n this.keydown[event.key] = false;\n this.keycode[event.code] = false;\n });\n window.addEventListener(\"blur\", () => {\n this.keydown = {};\n this.keycode = {};\n });\n }\n\n // Call this method in your render loop with `control` set to the object to control\n // (`THREE.Camera` or a `THREE.Object3D` that contains it), with `deltaTime`\n // in seconds since the last update.\n update(deltaTime: number, control: THREE.Object3D) {\n if (!this.enable) {\n return false;\n }\n\n // Update gamepad / XR controllers\n\n const sticks = [new THREE.Vector2(), new THREE.Vector2()];\n const gamepad = navigator.getGamepads()[0];\n if (gamepad) {\n sticks[0].set(gamepad.axes[0], gamepad.axes[1]);\n sticks[1].set(gamepad.axes[2], gamepad.axes[3]);\n }\n const gamepadButtons =\n gamepad?.buttons.map((button) => button.pressed) || [];\n\n const xrSources = Array.from(this.xr?.getSession()?.inputSources ?? []);\n for (const source of xrSources) {\n const gamepad = source.gamepad;\n if (gamepad) {\n switch (source.handedness) {\n case \"none\": {\n sticks[0].x += gamepad.axes[0];\n sticks[0].y += gamepad.axes[1];\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n case \"left\": {\n sticks[0].x += gamepad.axes[2];\n sticks[0].y += gamepad.axes[3];\n break;\n }\n case \"right\": {\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n }\n }\n }\n\n for (const stick of sticks) {\n stick.x = Math.abs(stick.x) >= this.stickThreshold ? stick.x : 0;\n stick.y = Math.abs(stick.y) >= this.stickThreshold ? stick.y : 0;\n }\n\n // Rotation\n\n const rotate = new THREE.Vector3(\n sticks[1].x,\n sticks[1].y,\n 0,\n ).multiplyScalar(this.rotateSpeed);\n\n for (const [keycode, rot] of Object.entries(this.keycodeRotateMapping)) {\n if (this.keycode[keycode]) {\n rotate.add(rot);\n }\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"rollLeft\":\n rotate.z += 1;\n break;\n case \"rollRight\":\n rotate.z -= 1;\n break;\n }\n }\n }\n\n rotate.multiply(\n new THREE.Vector3(this.rotateSpeed, this.rotateSpeed, this.rollSpeed),\n );\n\n let updated = rotate.length() > MOVEMENT_THRESHOLD;\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z = Math.max(-Math.PI, Math.min(Math.PI, eulers.z + rotate.z));\n control.quaternion.setFromEuler(eulers);\n }\n\n // Movement\n\n const moveVector = new THREE.Vector3(sticks[0].x, 0, sticks[0].y);\n moveVector.add(this.extraMove);\n\n for (const [keycode, move] of Object.entries(this.keycodeMoveMapping)) {\n if (this.keycode[keycode]) {\n moveVector.add(move);\n }\n }\n\n let speedMultiplier = 1.0;\n if (this.keydown.CapsLock) {\n speedMultiplier *= this.capsMultiplier;\n }\n if (this.keycode.ShiftLeft || this.keycode.ShiftRight) {\n speedMultiplier *= this.shiftMultiplier;\n }\n if (this.keycode.ControlLeft || this.keycode.ControlRight) {\n speedMultiplier *= this.ctrlMultiplier;\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"shift\":\n speedMultiplier *= this.shiftMultiplier;\n break;\n case \"ctrl\":\n speedMultiplier *= this.ctrlMultiplier;\n break;\n }\n }\n }\n\n if (moveVector.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Apply movement in view direction\n moveVector.applyQuaternion(control.quaternion);\n control.position.add(\n moveVector.multiplyScalar(this.moveSpeed * speedMultiplier * deltaTime),\n );\n\n return updated;\n }\n}\n\ntype PointerState = {\n initial: THREE.Vector2;\n last: THREE.Vector2;\n position: THREE.Vector2;\n pointerId: number;\n button?: number;\n timeStamp: DOMHighResTimeStamp;\n};\n\n// `PointerControls` implements pointer/mouse/touch controls on the canvas,\n// for both desktop and mobile web applications.\n\nexport class PointerControls {\n canvas: HTMLCanvasElement;\n rotateSpeed: number;\n slideSpeed: number;\n scrollSpeed: number;\n swapRotateSlide: boolean;\n reverseRotate: boolean;\n reverseSlide: boolean;\n reverseSwipe: boolean;\n reverseScroll: boolean;\n moveInertia: number;\n rotateInertia: number;\n pointerRollScale: number;\n // Enable/disable controls updates\n enable = true;\n\n doublePress: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n // Time limit for double press (default DOUBLE_PRESS_LIMIT_MS)\n doublePressLimitMs: number;\n // Distance limit for double press (default DOUBLE_PRESS_DISTANCE)\n doublePressDistance: number;\n\n // Time delay in ms for press move to start\n pressMoveDelayMs: number;\n // Time in ms for press move to accelerate\n pressMoveAccelMs: number;\n // Speed of movement on press (default: 0)\n pressMoveSpeed: number;\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed: number;\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed: number;\n // Whether to move toward the screen center or finger when pressing to move\n pressMoveCenter: boolean;\n pressHeld?: boolean;\n doublePressed?: number;\n triplePressed: boolean;\n // Last pointer up event (default: null)\n lastUp: { position: THREE.Vector2; timeStamp: number } | null;\n lastLastUp: { position: THREE.Vector2; timeStamp: number } | null;\n\n // Pointer state for currently active rotating pointer\n rotating: PointerState | null;\n // Pointer state for currently active sliding pointer\n sliding: PointerState | null;\n // Pointer state for last pointer that downed\n lastDown: PointerState | null;\n // Whether we pressed two pointers at the same time\n dualPress: boolean;\n // Cumulative scroll movement\n scroll: THREE.Vector3;\n\n // Current rotation velocity\n rotateVelocity: THREE.Vector3;\n // Current movement velocity\n moveVelocity: THREE.Vector3;\n\n constructor({\n // The HTML canvas element to attach pointer events to\n canvas,\n // Speed of rotation (default DEFAULT_ROTATE_SPEED)\n rotateSpeed,\n // Speed of sliding when dragging with right/middle mouse button or two fingers\n // (default DEFAULT_SLIDE_SPEED)\n slideSpeed,\n // Speed of movement when using mouse scroll wheel (default DEFAULT_SCROLL_SPEED)\n scrollSpeed,\n // Swap the direction of rotation and sliding (default: false)\n swapRotateSlide,\n // Reverse the direction of rotation (default: false)\n reverseRotate,\n // Reverse the direction of sliding (default: false)\n reverseSlide,\n // Reverse the direction of swipe gestures (default: false)\n reverseSwipe,\n // Reverse the direction of scroll wheel movement (default: false)\n reverseScroll,\n // Inertia factor for movement (default: DEFAULT_MOVE_INERTIA)\n moveInertia,\n // Inertia factor for rotation (default: DEFAULT_ROTATE_INERTIA)\n rotateInertia,\n // Pointer rolling scale factor (default: DEFAULT_POINTER_ROLL_SCALE)\n pointerRollScale,\n // Callback for double press events (default: () => {})\n doublePress,\n // Time delay in ms for press move to start (default: DEFAULT_PRESS_MOVE_DELAY_MS)\n pressMoveDelayMs,\n // Time in ms for press move to accelerate (default: DEFAULT_PRESS_MOVE_ACCEL_MS)\n pressMoveAccelMs,\n // Speed of movement on press (default: 0)\n pressMoveSpeed,\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed,\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed,\n // Whether to move toward the screen center or finger when pressing to move (default: true)\n pressMoveCenter,\n }: {\n canvas: HTMLCanvasElement;\n rotateSpeed?: number;\n slideSpeed?: number;\n scrollSpeed?: number;\n swapRotateSlide?: boolean;\n reverseRotate?: boolean;\n reverseSlide?: boolean;\n reverseSwipe?: boolean;\n reverseScroll?: boolean;\n moveInertia?: number;\n rotateInertia?: number;\n pointerRollScale?: number;\n doublePress?: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n pressMoveDelayMs?: number;\n pressMoveAccelMs?: number;\n pressMoveSpeed?: number;\n doublePressMoveSpeed?: number;\n triplePressMoveSpeed?: number;\n pressMoveCenter?: boolean;\n }) {\n this.canvas = canvas;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_ROTATE_SPEED;\n this.slideSpeed = slideSpeed ?? DEFAULT_SLIDE_SPEED;\n this.scrollSpeed = scrollSpeed ?? DEFAULT_SCROLL_SPEED;\n this.swapRotateSlide = swapRotateSlide ?? false;\n this.reverseRotate = reverseRotate ?? (isAndroid() || isIos());\n this.reverseSlide = reverseSlide ?? false;\n this.reverseSwipe = reverseSwipe ?? false;\n this.reverseScroll = reverseScroll ?? false;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n this.pointerRollScale = pointerRollScale ?? DEFAULT_POINTER_ROLL_SCALE;\n\n this.doublePress = doublePress ?? (() => {});\n this.doublePressLimitMs = DOUBLE_PRESS_LIMIT_MS;\n this.doublePressDistance = DOUBLE_PRESS_DISTANCE;\n\n this.pressMoveDelayMs = pressMoveDelayMs ?? DEFAULT_PRESS_MOVE_DELAY_MS;\n this.pressMoveAccelMs = pressMoveAccelMs ?? DEFAULT_PRESS_MOVE_ACCEL_MS;\n this.pressMoveSpeed = pressMoveSpeed ?? 0;\n this.doublePressMoveSpeed =\n doublePressMoveSpeed ?? this.pressMoveSpeed * 5.0;\n this.triplePressMoveSpeed =\n triplePressMoveSpeed ?? this.doublePressMoveSpeed * 5.0;\n this.pressMoveCenter = pressMoveCenter ?? true;\n this.doublePressed = undefined;\n this.triplePressed = false;\n this.lastUp = null;\n this.lastLastUp = null;\n\n this.rotating = null;\n this.sliding = null;\n this.lastDown = null;\n this.dualPress = false;\n this.scroll = new THREE.Vector3();\n\n this.rotateVelocity = new THREE.Vector3();\n this.moveVelocity = new THREE.Vector3();\n\n canvas.addEventListener(\"pointerdown\", (event: PointerEvent) => {\n const position = this.getPointerPosition(event);\n const initial = position.clone();\n const last = position.clone();\n\n // Determine if we're starting a rotation pointer action\n const isRotate =\n (!this.swapRotateSlide &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 0)) ||\n (this.swapRotateSlide &&\n this.sliding &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 1));\n // const isRotate =\n // !this.rotating && (event.pointerType !== \"mouse\" || event.button === 0);\n const { pointerId } = event;\n const timeStamp = performance.now();\n\n if (isRotate) {\n this.rotating = { initial, last, position, pointerId, timeStamp };\n this.lastDown = this.rotating;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n this.dualPress = false;\n } else if (!this.sliding) {\n // If it's not a rotation action and we're not yet sliding, the next\n // pointer activates a sliding action\n const button = event.pointerType === \"mouse\" ? event.button : undefined;\n this.sliding = {\n initial,\n last,\n position,\n pointerId,\n button,\n timeStamp,\n };\n this.lastDown = this.sliding;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n // Check if we pressed both pointers at roughly the same time\n this.dualPress =\n this.rotating != null &&\n timeStamp - this.rotating.timeStamp < DUAL_PRESS_MS;\n }\n\n if (this.lastUp) {\n const distance = this.lastUp.position.distanceTo(position);\n const intervalMs = timeStamp - this.lastUp.timeStamp;\n if (\n distance < this.doublePressDistance &&\n intervalMs < this.doublePressLimitMs\n ) {\n this.doublePressed = performance.now();\n this.triplePressed = false;\n\n if (this.lastLastUp) {\n const lastDistance = this.lastLastUp.position.distanceTo(\n this.lastUp.position,\n );\n const lastIntervalMs =\n this.lastUp.timeStamp - this.lastLastUp.timeStamp;\n if (\n lastDistance < this.doublePressDistance &&\n lastIntervalMs < this.doublePressLimitMs\n ) {\n this.triplePressed = true;\n }\n }\n }\n }\n });\n\n const pointerUp = (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.sliding) {\n canvas.releasePointerCapture(this.sliding.pointerId);\n this.sliding = null;\n }\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.rotating) {\n canvas.releasePointerCapture(this.rotating.pointerId);\n this.rotating = null;\n }\n }\n\n this.doublePressed = undefined;\n this.triplePressed = false;\n\n const position = this.getPointerPosition(event);\n const lastUp = this.lastUp;\n this.lastLastUp = this.lastUp;\n const timeStamp = performance.now();\n this.lastUp = { position, timeStamp };\n\n if (lastUp) {\n const distance = lastUp.position.distanceTo(position);\n if (distance < this.doublePressDistance) {\n const intervalMs = timeStamp - lastUp.timeStamp;\n if (intervalMs < this.doublePressLimitMs) {\n // We pressed and release twice within the time and distance limits\n // this.lastUp = null;\n this.doublePress({ position, intervalMs });\n }\n }\n }\n };\n\n document.addEventListener(\"pointerup\", pointerUp);\n document.addEventListener(\"pointercancel\", pointerUp);\n\n document.addEventListener(\"pointermove\", (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating.position = this.getPointerPosition(event);\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding.position = this.getPointerPosition(event);\n }\n });\n\n canvas.addEventListener(\"contextmenu\", (event: MouseEvent) => {\n // Prevent context menu appearing on right click\n event.preventDefault();\n });\n\n canvas.addEventListener(\"wheel\", (event: WheelEvent) => {\n this.scroll.add(\n new THREE.Vector3(event.deltaX, event.deltaY, event.deltaZ),\n );\n event.preventDefault();\n });\n }\n\n getPointerPosition(event: PointerEvent): THREE.Vector2 {\n const rect = this.canvas.getBoundingClientRect();\n return new THREE.Vector2(\n event.clientX - rect.left,\n event.clientY - rect.top,\n );\n }\n\n update(deltaTime: number, control: THREE.Object3D, camera?: THREE.Camera) {\n if (!this.enable) {\n return false;\n }\n\n const now = performance.now();\n let updated = false;\n\n if (this.dualPress && this.rotating && this.sliding) {\n // We pressed both pointers at the same time, either pinching or sliding\n const motion = [\n this.rotating.position.clone().sub(this.rotating.last),\n this.sliding.position.clone().sub(this.sliding.last),\n ];\n const coincidence = motion[0].dot(motion[1]);\n\n if (coincidence >= 0.2) {\n // Similar directions so slide the camera on the XY plane\n const totalMotion = motion[0].clone().add(motion[1]);\n const slide = new THREE.Vector3(totalMotion.x, -totalMotion.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSwipe ? 1 : -1));\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else if (coincidence <= -0.2) {\n // Opposite directions so either pinch or roll motion\n const deltaDir = this.sliding.last.clone().sub(this.rotating.last);\n const deltaDist = deltaDir.length();\n deltaDir.multiplyScalar(1 / deltaDist).normalize();\n\n const orthoDir = new THREE.Vector2(-deltaDir.y, deltaDir.x);\n const motionDir = [motion[0].dot(deltaDir), motion[1].dot(deltaDir)];\n const motionOrtho = [motion[0].dot(orthoDir), motion[1].dot(orthoDir)];\n\n // Pinching motion\n const midpoint = this.rotating.last\n .clone()\n .add(this.sliding.last)\n .multiplyScalar(0.5);\n let midpointDir = new THREE.Vector3();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcMidpoint = new THREE.Vector2(\n (midpoint.x / this.canvas.clientWidth) * 2 - 1,\n -(midpoint.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcMidpoint, theCamera);\n midpointDir = raycaster.ray.direction;\n }\n const pinchOut = motionDir[1] - motionDir[0];\n const slide = midpointDir.multiplyScalar(pinchOut * this.slideSpeed);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Rolling motion\n // Calculate angle of orthogonal motion change over distance deltaDist/2\n // motionOrtho[0] and 1 are already in float distance\n const angles = [\n Math.atan(motionOrtho[0] / (-0.5 * deltaDist)),\n Math.atan(motionOrtho[1] / (0.5 * deltaDist)),\n ];\n const rotate = 0.5 * (angles[0] + angles[1]) * this.pointerRollScale;\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.z = Math.max(\n -Math.PI,\n Math.min(Math.PI, eulers.z + 0.5 * rotate),\n );\n control.quaternion.setFromEuler(eulers);\n\n if (Math.abs(rotate) > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n this.rotating.last.copy(this.rotating.position);\n this.sliding.last.copy(this.sliding.position);\n } else {\n // Didn't press both pointers at the same time, so we're in rotating\n // or FPS mode\n const rotate = new THREE.Vector3();\n if (this.rotating && !this.dualPress) {\n const delta = this.rotating.position.clone().sub(this.rotating.last);\n this.rotating.last.copy(this.rotating.position);\n rotate.set(delta.x, delta.y, 0);\n rotate.multiplyScalar(this.rotateSpeed * (this.reverseRotate ? -1 : 1));\n // Update rotation velocity from last delta\n this.rotateVelocity = rotate.clone().multiplyScalar(1 / deltaTime);\n\n if (rotate.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n // Continue to rotate with inertia\n this.rotateVelocity.multiplyScalar(\n Math.exp(-deltaTime / this.rotateInertia),\n );\n rotate.addScaledVector(this.rotateVelocity, deltaTime);\n\n if (this.rotateVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n // Apply rotation in Euler angles space\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z *= Math.exp(-DEFAULT_ROLL_SPRING * deltaTime);\n control.quaternion.setFromEuler(eulers);\n\n if (this.sliding && !this.dualPress) {\n const delta = this.sliding.position.clone().sub(this.sliding.last);\n this.sliding.last.copy(this.sliding.position);\n\n // Slide on plane depending on center/right mouse button\n const slide =\n this.sliding.button !== 2\n ? new THREE.Vector3(delta.x, 0, delta.y)\n : new THREE.Vector3(delta.x, -delta.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSlide ? -1 : 1));\n\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n // Update movement velocity from last delta\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n const target = new THREE.Vector3();\n if (this.sliding || this.rotating) {\n const point = this.lastDown?.last ?? new THREE.Vector2();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcPoint = this.pressMoveCenter\n ? new THREE.Vector2(0, 0)\n : new THREE.Vector2(\n (point.x / this.canvas.clientWidth) * 2 - 1,\n -(point.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcPoint, theCamera);\n target.copy(raycaster.ray.direction).normalize();\n }\n\n if (!this.doublePressed) {\n let intensity = 0;\n if (this.lastDown) {\n intensity =\n (now -\n (this.lastDown?.timeStamp ?? now) -\n this.pressMoveDelayMs) /\n this.pressMoveAccelMs;\n\n if (\n this.lastDown.position.distanceTo(this.lastDown.initial) <\n this.doublePressDistance\n ) {\n if (this.pressHeld === undefined) {\n if (intensity > 0) {\n this.pressHeld = true;\n }\n }\n } else if (this.pressHeld === undefined) {\n this.pressHeld = false;\n }\n }\n\n if (this.pressHeld) {\n target.multiplyScalar(\n this.pressMoveSpeed * Math.max(0, Math.min(1, intensity)),\n );\n } else {\n target.set(0, 0, 0);\n }\n } else {\n this.pressHeld = false;\n let intensity =\n (performance.now() - this.doublePressed) / this.pressMoveAccelMs;\n intensity = Math.max(0, Math.min(1, intensity));\n target.multiplyScalar(\n (this.triplePressed\n ? this.triplePressMoveSpeed\n : this.doublePressMoveSpeed) * intensity,\n );\n }\n } else {\n this.pressHeld = undefined;\n }\n // Continue to move with inertia\n const s = Math.exp(-deltaTime / this.moveInertia);\n this.moveVelocity.lerpVectors(target, this.moveVelocity, s);\n control.position.addScaledVector(this.moveVelocity, deltaTime);\n\n if (this.moveVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n }\n\n const scroll = this.scroll.multiplyScalar(this.scrollSpeed);\n scroll.set(scroll.x, scroll.z, scroll.y);\n if (this.reverseScroll) {\n scroll.multiplyScalar(-1);\n }\n scroll.applyQuaternion(control.quaternion);\n control.position.add(scroll);\n\n if (scroll.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n this.scroll.set(0, 0, 0);\n\n return updated;\n }\n}\n","import * as THREE from \"three\";\nimport { SparkRenderer, type SparkRendererOptions } from \"./SparkRenderer\";\n\n/**\n * Fragment shader for portal disk clipping.\n * - diskRadius > 0: render \"behind portal\" only through the disk\n * - diskRadius < 0: render \"in front of portal\" everywhere except behind disk\n */\nexport const DISK_PORTAL_FRAGMENT_SHADER = `\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform mat4 projectionMatrix;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nuniform vec3 diskCenter;\nuniform vec3 diskNormal;\nuniform float diskRadius;\nuniform bool diskTwoSided;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\nvoid main() {\n if (diskRadius != 0.0) {\n // Portal rendering:\n // - diskRadius > 0: render \"behind portal\" only through the disk (discard outside or in-front-of plane).\n // - diskRadius < 0: render \"in front of portal\" everywhere, but discard fragments behind the plane when looking through the disk.\n\n // View ray direction from NDC (view space is -Z forward).\n vec3 viewDir = normalize(vec3(\n vNdc.x / projectionMatrix[0][0],\n vNdc.y / projectionMatrix[1][1],\n -1.0\n ));\n\n // Reconstruct view-space *axial* depth (-viewPos.z) from NDC Z.\n float ndcZ = vNdc.z;\n float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near));\n // Convert axial depth to ray-parameter t (viewPos = t * viewDir).\n float rayT = depth / max(1e-6, -viewDir.z);\n\n float radius = abs(diskRadius);\n float radius2 = radius * radius;\n bool renderBehind = (diskRadius > 0.0);\n\n vec3 diskN = normalize(diskNormal);\n\n // Ray-plane intersection for plane (diskCenter, diskN), with ray origin at (0,0,0).\n float denom = dot(viewDir, diskN);\n bool allowPortal = diskTwoSided ? (abs(denom) > 1e-6) : (denom < -1e-6);\n\n bool hitsDisk = false;\n float t = 0.0;\n if (allowPortal) {\n t = dot(diskCenter, diskN) / denom;\n if (t > 0.0) {\n vec3 q = t * viewDir - diskCenter;\n hitsDisk = (dot(q, q) <= radius2);\n }\n }\n\n // Small bias to avoid flicker at the plane.\n float eps = 1e-4 * max(1.0, abs(t));\n\n if (renderBehind) {\n // Behind-pass: only render through the portal disk, and only behind the plane along the ray.\n if (!hitsDisk) discard;\n if (rayT <= t + eps) discard;\n } else {\n // Front-pass: render everything, except when the ray goes through the disk, discard what's behind the plane.\n if (hitsDisk && (rayT >= t - eps)) discard;\n }\n }\n\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n rgba.a = min(1.0, a) * exp(exponent);\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n}\n`;\n\n/**\n * Callback function called when a portal is crossed.\n * @param pair The portal pair that was crossed\n * @param fromEntry True if crossing from entry to exit, false if crossing from exit to entry\n */\nexport type PortalCrossCallback = (\n pair: PortalPair,\n fromEntry: boolean,\n) => void | Promise;\n\n/**\n * A pair of connected portals. Walking through one teleports you to the other.\n */\nexport interface PortalPair {\n /** First portal endpoint */\n entryPortal: THREE.Object3D;\n /** Second portal endpoint */\n exitPortal: THREE.Object3D;\n /** Radius of this portal pair's disks */\n radius: number;\n /** Optional callback function called when this portal is crossed */\n onCross?: PortalCrossCallback;\n /** Scratch matrix for tracking portal position before frame updates */\n _entryBefore: THREE.Matrix4;\n /** Scratch matrix for tracking portal position before frame updates */\n _exitBefore: THREE.Matrix4;\n}\n\nexport interface SparkPortalsOptions {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n /** Options passed to both SparkRenderer instances */\n sparkOptions?: Partial;\n /** Default portal disk radius for new pairs (default: 1.0) */\n defaultPortalRadius?: number;\n /** Epsilon for portal crossing detection (default: 1e-6) */\n portalCrossEps?: number;\n}\n\n/**\n * SparkPortals\n *\n * Portal implementation to connect two non-contiguous areas of a scene.\n * Supports multiple portal pairs - each pair connects two locations.\n *\n * The rough approach is to use two SparkRenderers: one for the \"front\"/portal\n * view (portalRenderer), and one for the \"behind portal\" pass (behindRenderer).\n *\n * Example:\n * ```typescript\n * const portals = new SparkPortals({ renderer, scene, camera, localFrame });\n *\n * // Add a portal pair\n * const pair = portals.addPortalPair();\n * pair.entryPortal.position.set(0, 0, -1);\n * pair.exitPortal.position.set(-3, 0, -4.5);\n *\n * // Add another pair\n * const pair2 = portals.addPortalPair({ radius: 0.5 });\n * pair2.entryPortal.position.set(5, 0, 0);\n * pair2.exitPortal.position.set(10, 0, 0);\n *\n * // In animation loop:\n * portals.animateLoopHook();\n * ```\n */\nexport class SparkPortals {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n\n /** Primary renderer with portal shader (added to scene) */\n portalRenderer: SparkRenderer;\n /** Secondary renderer for behind-portal pass (not in scene) */\n behindRenderer: SparkRenderer;\n /** Secondary camera for behind-portal view */\n camera2: THREE.PerspectiveCamera;\n\n /** All portal pairs */\n portalPairs: PortalPair[] = [];\n /** Default radius for new portal pairs */\n defaultPortalRadius: number;\n /** Epsilon for portal crossing detection */\n portalCrossEps: number;\n\n /** Used to detect crossing between frames */\n private lastCameraWorld = new THREE.Vector3().setScalar(Number.NaN);\n /** Whether portal LoD prefetch is currently enabled */\n private prefetchActive = false;\n\n // Preallocated objects for scratch work to avoid per frame allocations\n private scratch = {\n quat: new THREE.Quaternion(),\n scale: new THREE.Vector3(),\n center0: new THREE.Vector3(),\n center1: new THREE.Vector3(),\n normal0: new THREE.Vector3(),\n normal1: new THREE.Vector3(),\n centerT: new THREE.Vector3(),\n normalT: new THREE.Vector3(),\n prevCameraWorld: new THREE.Vector3(),\n currCameraWorld: new THREE.Vector3(),\n hit: new THREE.Vector3(),\n offset: new THREE.Vector3(),\n camWorld: new THREE.Matrix4(),\n newCamWorld: new THREE.Matrix4(),\n invCamLocal: new THREE.Matrix4(),\n newLocalFrame: new THREE.Matrix4(),\n cameraWorldPos: new THREE.Vector3(),\n viewDir: new THREE.Vector3(),\n portalCenter: new THREE.Vector3(),\n toPortal: new THREE.Vector3(),\n };\n\n constructor(options: SparkPortalsOptions) {\n this.renderer = options.renderer;\n this.scene = options.scene;\n this.camera = options.camera;\n this.localFrame = options.localFrame;\n this.defaultPortalRadius = options.defaultPortalRadius ?? 1.0;\n this.portalCrossEps = options.portalCrossEps ?? 1e-6;\n\n const sparkOpts = options.sparkOptions ?? {};\n\n // Primary renderer with portal shader\n this.portalRenderer = new SparkRenderer({\n renderer: this.renderer,\n extraUniforms: {\n diskCenter: { value: new THREE.Vector3() },\n diskNormal: { value: new THREE.Vector3() },\n diskRadius: { value: 0 },\n diskTwoSided: { value: false },\n },\n fragmentShader: DISK_PORTAL_FRAGMENT_SHADER,\n ...sparkOpts,\n });\n this.scene.add(this.portalRenderer);\n\n // Secondary renderer for behind-portal pass\n // enableDriveLod: false prevents this renderer from driving LOD updates,\n // avoiding race conditions with portalRenderer's pager operations\n this.behindRenderer = new SparkRenderer({\n renderer: this.renderer,\n enableDriveLod: false,\n ...sparkOpts,\n });\n\n // Secondary camera for behind-portal view\n this.camera2 = this.camera.clone();\n this.scene.add(this.camera2);\n }\n\n /**\n * Add a new portal pair to the system.\n * @param options Optional configuration for this pair\n * @returns The created PortalPair - position the entryPortal and exitPortal as needed\n */\n addPortalPair(options?: {\n radius?: number;\n onCross?: PortalCrossCallback;\n }): PortalPair {\n const pair: PortalPair = {\n entryPortal: new THREE.Object3D(),\n exitPortal: new THREE.Object3D(),\n radius: options?.radius ?? this.defaultPortalRadius,\n onCross: options?.onCross,\n _entryBefore: new THREE.Matrix4(),\n _exitBefore: new THREE.Matrix4(),\n };\n\n this.scene.add(pair.entryPortal);\n this.scene.add(pair.exitPortal);\n this.portalPairs.push(pair);\n\n return pair;\n }\n\n /**\n * Remove a portal pair from the system.\n */\n removePortalPair(pair: PortalPair): void {\n const index = this.portalPairs.indexOf(pair);\n if (index !== -1) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n this.portalPairs.splice(index, 1);\n }\n }\n\n /**\n * Get transform from entry portal to exit portal.\n */\n getEntryToExitTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.entryPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.exitPortal.matrixWorld);\n }\n\n /**\n * Get transform from exit portal to entry portal.\n */\n getExitToEntryTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.exitPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.entryPortal.matrixWorld);\n }\n\n /** Set portal disk uniforms for shader clipping */\n private setPortalDiskUniforms(\n camera: THREE.Camera,\n portal: THREE.Object3D,\n radius: number,\n twoSided: boolean,\n ): void {\n camera.updateMatrixWorld(true);\n portal.updateMatrixWorld(true);\n\n const inverseCamera = camera.matrixWorld.clone().invert();\n const portalInCamera = portal.matrixWorld\n .clone()\n .premultiply(inverseCamera);\n const portalQuat = new THREE.Quaternion();\n\n // Extend the base uniform type with our portal-specific uniforms so TS is happy.\n const uniforms = this.portalRenderer\n .uniforms as typeof this.portalRenderer.uniforms & {\n diskCenter: { value: THREE.Vector3 };\n diskNormal: { value: THREE.Vector3 };\n diskRadius: { value: number };\n diskTwoSided: { value: boolean };\n };\n\n portalInCamera.decompose(\n uniforms.diskCenter.value,\n portalQuat,\n new THREE.Vector3(),\n );\n\n uniforms.diskNormal.value.set(0, 0, 1).applyQuaternion(portalQuat);\n uniforms.diskRadius.value = radius;\n uniforms.diskTwoSided.value = twoSided;\n }\n\n /** Extract portal plane from matrix */\n private getPortalPlane(\n matrix: THREE.Matrix4,\n outCenter: THREE.Vector3,\n outNormal: THREE.Vector3,\n ): void {\n matrix.decompose(outCenter, this.scratch.quat, this.scratch.scale);\n outNormal.set(0, 0, 1).applyQuaternion(this.scratch.quat).normalize();\n }\n\n /**\n * Detect if the user path crosses over a portal. If so, return the parametric position (0,1)\n * along the segment where the crossing occurs. If not, return null.\n */\n private getSegmentDiskCrossing(\n prevCam: THREE.Vector3,\n currCam: THREE.Vector3,\n beforeMatrix: THREE.Matrix4,\n afterMatrix: THREE.Matrix4,\n radius: number,\n ): number | null {\n this.getPortalPlane(\n beforeMatrix,\n this.scratch.center0,\n this.scratch.normal0,\n );\n this.getPortalPlane(\n afterMatrix,\n this.scratch.center1,\n this.scratch.normal1,\n );\n\n const startPlaneDist = this.scratch.offset\n .copy(prevCam)\n .sub(this.scratch.center0)\n .dot(this.scratch.normal0);\n const endPlaneDist = this.scratch.offset\n .copy(currCam)\n .sub(this.scratch.center1)\n .dot(this.scratch.normal1);\n\n if (\n (startPlaneDist > this.portalCrossEps &&\n endPlaneDist > this.portalCrossEps) ||\n (startPlaneDist < -this.portalCrossEps &&\n endPlaneDist < -this.portalCrossEps)\n ) {\n return null;\n }\n\n const denom = startPlaneDist - endPlaneDist;\n if (Math.abs(denom) < this.portalCrossEps) return null;\n\n const t = startPlaneDist / denom;\n if (t < 0 || t > 1) return null;\n\n this.scratch.hit.lerpVectors(prevCam, currCam, t);\n this.scratch.centerT\n .copy(this.scratch.center0)\n .lerp(this.scratch.center1, t);\n this.scratch.normalT\n .copy(this.scratch.normal0)\n .lerp(this.scratch.normal1, t)\n .normalize();\n\n this.scratch.offset.copy(this.scratch.hit).sub(this.scratch.centerT);\n this.scratch.offset.addScaledVector(\n this.scratch.normalT,\n -this.scratch.offset.dot(this.scratch.normalT),\n );\n\n if (this.scratch.offset.lengthSq() > radius * radius) return null;\n return t;\n }\n\n /** Teleport camera through portal */\n private teleport(transform: THREE.Matrix4): void {\n this.scratch.camWorld.copy(this.camera.matrixWorld);\n this.scratch.newCamWorld.copy(this.scratch.camWorld).premultiply(transform);\n this.scratch.invCamLocal.copy(this.camera.matrix).invert();\n this.scratch.newLocalFrame\n .copy(this.scratch.newCamWorld)\n .multiply(this.scratch.invCamLocal);\n\n this.scratch.newLocalFrame.decompose(\n this.localFrame.position,\n this.localFrame.quaternion,\n this.localFrame.scale,\n );\n this.localFrame.updateMatrixWorld(true);\n this.camera.updateMatrixWorld(true);\n }\n\n /**\n * Check for portal crossing and teleport if needed.\n * Checks all portal pairs and takes the earliest crossing.\n * Call this after updating controls but before render().\n */\n updateTeleportation(): void {\n if (this.portalPairs.length === 0) return;\n\n this.camera.getWorldPosition(this.scratch.currCameraWorld);\n if (!Number.isFinite(this.lastCameraWorld.x)) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n this.scratch.prevCameraWorld.copy(this.lastCameraWorld);\n\n // Store portal matrices before any updates and find earliest crossing\n let earliestT: number | null = null;\n let crossedPair: PortalPair | null = null;\n let crossedEntry = true; // true = crossed entry portal, false = crossed exit portal\n\n for (const pair of this.portalPairs) {\n pair.entryPortal.updateMatrixWorld(true);\n pair.exitPortal.updateMatrixWorld(true);\n pair._entryBefore.copy(pair.entryPortal.matrixWorld);\n pair._exitBefore.copy(pair.exitPortal.matrixWorld);\n\n // Check entry portal crossing\n const entryT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._entryBefore,\n pair.entryPortal.matrixWorld,\n pair.radius,\n );\n\n if (entryT !== null && (earliestT === null || entryT < earliestT)) {\n earliestT = entryT;\n crossedPair = pair;\n crossedEntry = true;\n }\n\n // Check exit portal crossing\n const exitT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._exitBefore,\n pair.exitPortal.matrixWorld,\n pair.radius,\n );\n\n if (exitT !== null && (earliestT === null || exitT < earliestT)) {\n earliestT = exitT;\n crossedPair = pair;\n crossedEntry = false;\n }\n }\n\n // No portal crossed\n if (crossedPair === null) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n // Teleport through the crossed portal\n if (crossedEntry) {\n this.teleport(this.getEntryToExitTransform(crossedPair));\n } else {\n this.teleport(this.getExitToEntryTransform(crossedPair));\n }\n\n this.camera.getWorldPosition(this.lastCameraWorld);\n\n // Call the portal's onCross callback if provided\n if (crossedPair.onCross) {\n // Call async callback but don't await (updateTeleportation is synchronous)\n // Errors will be logged but won't block teleportation\n Promise.resolve(crossedPair.onCross(crossedPair, crossedEntry)).catch(\n (error) => {\n console.error(\"Error in portal onCross callback:\", error);\n },\n );\n }\n }\n\n /**\n * Find the most relevant portal for rendering (closest to camera view direction).\n * Returns the portal pair and which portal (entry or exit) is primary.\n */\n private findPrimaryPortal(): {\n pair: PortalPair;\n primaryIsEntry: boolean;\n primaryPortal: THREE.Object3D;\n otherPortal: THREE.Object3D;\n } | null {\n if (this.portalPairs.length === 0) return null;\n\n this.camera.getWorldPosition(this.scratch.cameraWorldPos);\n this.camera.getWorldDirection(this.scratch.viewDir);\n\n let bestScore = Number.NEGATIVE_INFINITY;\n let bestPair: PortalPair | null = null;\n let bestIsEntry = true;\n\n for (const pair of this.portalPairs) {\n // Score entry portal\n pair.entryPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const entryDist = this.scratch.toPortal.length();\n const entryScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / entryDist;\n\n if (entryScore > bestScore) {\n bestScore = entryScore;\n bestPair = pair;\n bestIsEntry = true;\n }\n\n // Score exit portal\n pair.exitPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const exitDist = this.scratch.toPortal.length();\n const exitScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / exitDist;\n\n if (exitScore > bestScore) {\n bestScore = exitScore;\n bestPair = pair;\n bestIsEntry = false;\n }\n }\n\n if (!bestPair) return null;\n\n return {\n pair: bestPair,\n primaryIsEntry: bestIsEntry,\n primaryPortal: bestIsEntry ? bestPair.entryPortal : bestPair.exitPortal,\n otherPortal: bestIsEntry ? bestPair.exitPortal : bestPair.entryPortal,\n };\n }\n\n /**\n * Render the scene with portals using two-pass rendering.\n * Renders the most relevant portal pair (closest to camera view).\n * Call this instead of renderer.render() in your animation loop.\n */\n render(): void {\n const primary = this.findPrimaryPortal();\n\n // No portals - just render normally\n if (!primary) {\n if (this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras();\n this.prefetchActive = false;\n }\n this.renderer.autoClear = true;\n this.renderer.render(this.scene, this.camera);\n return;\n }\n\n if (!this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras([this.camera2]);\n this.prefetchActive = true;\n }\n\n const { pair, primaryIsEntry, primaryPortal, otherPortal } = primary;\n\n // Compute camera2 position (transformed through portal)\n const camera2Matrix = primaryIsEntry\n ? this.camera.matrixWorld\n .clone()\n .premultiply(this.getEntryToExitTransform(pair))\n : this.camera.matrixWorld\n .clone()\n .premultiply(this.getExitToEntryTransform(pair));\n camera2Matrix.decompose(\n this.camera2.position,\n this.camera2.quaternion,\n this.camera2.scale,\n );\n this.camera2.updateMatrixWorld(true);\n\n // Share lodInstances from portalRenderer to behindRenderer BEFORE Pass 1.\n // This uses previous frame's lodInstances (computed with main camera),\n // ensuring both passes use consistent splat selections to avoid flickering.\n this.shareLodInstances();\n\n // Pass 1: Behind portal view (uses shared lodInstances)\n this.setPortalDiskUniforms(this.camera2, otherPortal, pair.radius, true);\n this.renderer.autoClear = true;\n this.behindRenderer.render(this.scene, this.camera2);\n\n // Pass 2: Main view (updates portalRenderer's lodInstances for next frame)\n this.setPortalDiskUniforms(this.camera, primaryPortal, -pair.radius, true);\n this.renderer.autoClear = false;\n this.portalRenderer.render(this.scene, this.camera);\n }\n\n /**\n * Share lodInstances from portalRenderer to behindRenderer.\n * Uses previous frame's values to ensure both passes render consistent splats.\n */\n private shareLodInstances(): void {\n // Clear and copy lodInstances from portalRenderer to behindRenderer\n this.behindRenderer.lodInstances.clear();\n for (const [mesh, data] of this.portalRenderer.lodInstances) {\n this.behindRenderer.lodInstances.set(mesh, data);\n }\n }\n\n /**\n * Convenience hook for animation loop.\n * Calls updateTeleportation() then render().\n */\n animateLoopHook(): void {\n this.updateTeleportation();\n this.render();\n }\n\n /** Update camera2 aspect ratio on window resize */\n updateAspect(aspect: number): void {\n this.camera2.aspect = aspect;\n this.camera2.updateProjectionMatrix();\n }\n\n /** Dispose of resources */\n dispose(): void {\n this.scene.remove(this.portalRenderer);\n this.scene.remove(this.camera2);\n\n for (const pair of this.portalPairs) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n }\n this.portalPairs = [];\n\n this.portalRenderer.dispose();\n this.behindRenderer.dispose();\n }\n}\n"],"names":["SplatFileType","dyno","THREE","inputs","_a","_b","outputs","step","packedSplats","index","base","count","extSplats","covSplats","gsplat","flags","center","scales","quaternion","rgba","rgb","opacity","x","y","z","r","g","b","scale","rotate","translate","recolor","covsplat","rgbMinMaxLnScaleMinMax","viewCenter","viewDir","sortRadial","value","max","l","add","Inflate","Gunzip","normalize","floatBitsToUint","uintBitsToFloat","bits","sign","exp","distance","b2","offset","texture","min","a","t","edge","edge0","edge1","cond","f","select","vector","w","swizzle","position","dir","degrees","radians","sin","cos","tan","splatDefines","splatVertex","splatFragment","computeVec4Template","computeUvec4Vec4Template","computeUvec4x2Vec4Template","computeUvec4Template","FullScreenQuad","SplatEditSdfType","SplatEditRgbaBlendMode","uniform","sdfArray","numEdits","rgbaDisplaceEdits","length","ptr","module","init_wasm","BundledWorker","worker","newArray","textureSize","Loader","FileLoader","dyno.DynoInt","dyno.DynoUsampler2D","dyno.DynoVec4","dyno.DynoBool","dyno.DynoVec3","wasm.initialization","result","lodSplats","dyno.DynoUsampler2DArray","dyno.dynoBlock","dyno.Dyno","dyno.unindentLines","dyno.Gsplat","dyno.defineGsplat","dyno.splitGsplat","dyno.normalize","dyno.sub","dyno.add","dyno.combineGsplat","edits","wasm.isInitialized","shaders","dot","now","instances","traverseStart","keyIndices","target","cubeCamera","_","min_x","min_y","min_z","max_x","max_y","max_z","min_scale_x","min_scale_y","min_scale_z","max_scale_x","max_scale_y","max_scale_z","packed_position","packed_rotation","packed_scale","packed_color","SH_C0","i32","section","i","input","transformPos","spz","SplatSkinningMode","skinning","color","metrics","JointEnum","JOINT_IDS","NUM_JOINTS","JOINT_INDEX","JOINT_RADIUS","JOINT_SEGMENTS","JOINT_SEGMENT_STEPS","JOINT_TIPS","FINGER_TIPS","Hand","HANDS","DEFAULT_MOVE_INERTIA","DEFAULT_ROTATE_INERTIA","Vector3","Quaternion","Color","Matrix4","gamepad"],"mappings":"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","x_google_ignoreList":[7]} \ No newline at end of file diff --git a/dist/spark.cjs.min.js b/dist/spark.cjs.min.js index cd43bad2..d77ea6fb 100644 --- a/dist/spark.cjs.min.js +++ b/dist/spark.cjs.min.js @@ -1,14 +1,6 @@ -"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const MA=require("three"),AB=require("three/addons/postprocessing/Pass.js");var UQ=typeof document<"u"?document.currentScript:null;function Ho(Q){const A=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(Q){for(const I in Q)if(I!=="default"){const g=Object.getOwnPropertyDescriptor(Q,I);Object.defineProperty(A,I,g.get?g:{enumerable:!0,get:()=>Q[I]})}}return A.default=Q,Object.freeze(A)}const G=Ho(MA);class qQ extends G.InstancedBufferGeometry{constructor(A,I){super(),this.ordering=A,this.setAttribute("position",new G.BufferAttribute(Lo,3)),this.setIndex(new G.BufferAttribute(Yo,1)),this._maxInstanceCount=A.length,this.instanceCount=I,this.attribute=new G.InstancedBufferAttribute(A,1,!1,1),this.attribute.setUsage(G.DynamicDrawUsage),this.setAttribute("splatIndex",this.attribute)}update(A,I){this.ordering=A,this.attribute.array=A,this.instanceCount=I,this.attribute.addUpdateRange(0,I),this.attribute.needsUpdate=!0}}const Lo=new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,1,0]),Yo=new Uint16Array([0,1,2,0,2,3]),zB='(function(){"use strict";class gI{static __wrap(A){A=A>>>0;const I=Object.create(gI.prototype);return I.__wbg_ptr=A,Ug.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,Ug.unregister(this),A}free(){const A=this.__destroy_into_raw();L.__wbg_csplatarray_free(A,0)}bhatt_lod(A){L.csplatarray_bhatt_lod(this.__wbg_ptr,A)}has_lod(){return L.csplatarray_has_lod(this.__wbg_ptr)!==0}inject_rgba8(A){L.csplatarray_inject_rgba8(this.__wbg_ptr,A)}len(){return L.csplatarray_len(this.__wbg_ptr)>>>0}tiny_lod(A,I){L.csplatarray_tiny_lod(this.__wbg_ptr,A,I)}to_extsplats(){const A=L.csplatarray_to_extsplats(this.__wbg_ptr);if(A[2])throw QA(A[1]);return QA(A[0])}to_extsplats_lod(){const A=L.csplatarray_to_extsplats_lod(this.__wbg_ptr);if(A[2])throw QA(A[1]);return QA(A[0])}to_packedsplats(){const A=L.csplatarray_to_packedsplats(this.__wbg_ptr);if(A[2])throw QA(A[1]);return QA(A[0])}to_packedsplats_lod(){const A=L.csplatarray_to_packedsplats_lod(this.__wbg_ptr);if(A[2])throw QA(A[1]);return QA(A[0])}get maxShDegree(){return L.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr)>>>0}get numSplats(){return L.__wbg_get_csplatarray_numSplats(this.__wbg_ptr)>>>0}set maxShDegree(A){L.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr,A)}set numSplats(A){L.__wbg_set_csplatarray_numSplats(this.__wbg_ptr,A)}}Symbol.dispose&&(gI.prototype[Symbol.dispose]=gI.prototype.free);class QI{static __wrap(A){A=A>>>0;const I=Object.create(QI.prototype);return I.__wbg_ptr=A,cg.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,cg.unregister(this),A}free(){const A=this.__destroy_into_raw();L.__wbg_gsplatarray_free(A,0)}get maxShDegree(){return L.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr)>>>0}get numSplats(){return L.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr)>>>0}bhatt_lod(A){L.gsplatarray_bhatt_lod(this.__wbg_ptr,A)}has_lod(){return L.gsplatarray_has_lod(this.__wbg_ptr)!==0}inject_rgba8(A){L.gsplatarray_inject_rgba8(this.__wbg_ptr,A)}len(){return L.gsplatarray_len(this.__wbg_ptr)>>>0}tiny_lod(A,I){L.gsplatarray_tiny_lod(this.__wbg_ptr,A,I)}to_extsplats(){const A=L.gsplatarray_to_extsplats(this.__wbg_ptr);if(A[2])throw QA(A[1]);return QA(A[0])}to_extsplats_lod(){const A=L.gsplatarray_to_extsplats_lod(this.__wbg_ptr);if(A[2])throw QA(A[1]);return QA(A[0])}to_packedsplats(A){const I=L.gsplatarray_to_packedsplats(this.__wbg_ptr,A);if(I[2])throw QA(I[1]);return QA(I[0])}to_packedsplats_lod(A){const I=L.gsplatarray_to_packedsplats_lod(this.__wbg_ptr,A);if(I[2])throw QA(I[1]);return QA(I[0])}set maxShDegree(A){L.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr,A)}set numSplats(A){L.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr,A)}}Symbol.dispose&&(QI.prototype[Symbol.dispose]=QI.prototype.free);function UQ(Q,A,I){return L.sort32_splats(Q,A,I)>>>0}function cQ(Q,A,I){return L.sort_splats(Q,A,I)>>>0}function HQ(){return{__proto__:null,"./spark_worker_rs_bg.js":{__proto__:null,__wbg_Error_2e59b1b37a9a34c3:function(A,I){return Error(sI(A,I))},__wbg___wbindgen_boolean_get_a86c216575a75c30:function(A){const I=A,g=typeof I=="boolean"?I:void 0;return NI(g)?16777215:g?1:0},__wbg___wbindgen_debug_string_dd5d2d07ce9e6c57:function(A,I){const g=OI(I),B=ZI(g,L.__wbindgen_malloc,L.__wbindgen_realloc),C=wI;dA().setInt32(A+4,C,!0),dA().setInt32(A+0,B,!0)},__wbg___wbindgen_in_4bd7a57e54337366:function(A,I){return A in I},__wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef:function(A){return!A},__wbg___wbindgen_is_object_40c5a80572e8f9d3:function(A){const I=A;return typeof I=="object"&&I!==null},__wbg___wbindgen_is_undefined_c0cca72b82b86f4d:function(A){return A===void 0},__wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944:function(A,I){return A==I},__wbg___wbindgen_number_get_7579aab02a8a620c:function(A,I){const g=I,B=typeof g=="number"?g:void 0;dA().setFloat64(A+8,NI(B)?0:B,!0),dA().setInt32(A+0,!NI(B),!0)},__wbg___wbindgen_string_get_914df97fcfa788f2:function(A,I){const g=I,B=typeof g=="string"?g:void 0;var C=NI(B)?0:ZI(B,L.__wbindgen_malloc,L.__wbindgen_realloc),E=wI;dA().setInt32(A+4,E,!0),dA().setInt32(A+0,C,!0)},__wbg___wbindgen_throw_81fc77679af83bc6:function(A,I){throw new Error(sI(A,I))},__wbg_csplatarray_new:function(A){return gI.__wrap(A)},__wbg_error_a6fa202b58aa1cd3:function(A,I){let g,B;try{g=A,B=I,console.error(sI(A,I))}finally{L.__wbindgen_free(g,B,1)}},__wbg_get_4848e350b40afc16:function(A,I){return A[I>>>0]},__wbg_get_f96702c6245e4ef9:function(){return Lg(function(A,I){return Reflect.get(A,I)},arguments)},__wbg_get_unchecked_7d7babe32e9e6a54:function(A,I){return A[I>>>0]},__wbg_get_with_ref_key_6412cf3094599694:function(A,I){return A[I]},__wbg_gsplatarray_new:function(A){return QI.__wrap(A)},__wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a:function(A){let I;try{I=A instanceof ArrayBuffer}catch{I=!1}return I},__wbg_instanceof_Uint8Array_4b8da683deb25d72:function(A){let I;try{I=A instanceof Uint8Array}catch{I=!1}return I},__wbg_length_0c32cb8543c8e4c8:function(A){return A.length},__wbg_length_1e701798fdcaa3b4:function(A){return A.length},__wbg_length_6e821edde497a532:function(A){return A.length},__wbg_length_a4ca9e78359b5f1f:function(A){return A.length},__wbg_new_227d7c05414eb861:function(){return new Error},__wbg_new_4f9fafbb3909af72:function(){return new Object},__wbg_new_a560378ea1240b14:function(A){return new Uint8Array(A)},__wbg_new_f3c9df4f38f3f798:function(){return new Array},__wbg_new_with_length_41a22191b9bdfd66:function(A){return new Uint32Array(A>>>0)},__wbg_prototypesetcall_3e05eb9545565046:function(A,I,g){Uint8Array.prototype.set.call(YQ(A,I),g)},__wbg_prototypesetcall_64c287a27cc24d27:function(A,I,g){Uint16Array.prototype.set.call(aQ(A,I),g)},__wbg_prototypesetcall_e42275e601e14eeb:function(A,I,g){Uint32Array.prototype.set.call(Hg(A,I),g)},__wbg_push_6bdbc990be5ac37b:function(A,I){return A.push(I)},__wbg_set_448126769bf7c181:function(A,I,g){A.set(Hg(I,g))},__wbg_set_6be42768c690e380:function(A,I,g){A[I]=g},__wbg_set_81b4174352e6a095:function(A,I,g){A.set(I,g>>>0)},__wbg_set_8ee2d34facb8466e:function(){return Lg(function(A,I,g){return Reflect.set(A,I,g)},arguments)},__wbg_set_index_338a66e40fc45dee:function(A,I,g){A[I>>>0]=g>>>0},__wbg_stack_3b0d974bbf31e44f:function(A,I){const g=I.stack,B=ZI(g,L.__wbindgen_malloc,L.__wbindgen_realloc),C=wI;dA().setInt32(A+4,C,!0),dA().setInt32(A+0,B,!0)},__wbg_subarray_0f98d3fb634508ad:function(A,I,g){return A.subarray(I>>>0,g>>>0)},__wbg_subarray_517cd0f1811ab872:function(A,I,g){return A.subarray(I>>>0,g>>>0)},__wbg_subarray_d51e89458b3fdbf6:function(A,I,g){return A.subarray(I>>>0,g>>>0)},__wbindgen_cast_0000000000000001:function(A){return A},__wbindgen_cast_0000000000000002:function(A,I){return sI(A,I)},__wbindgen_init_externref_table:function(){const A=L.__wbindgen_externrefs,I=A.grow(4);A.set(0,void 0),A.set(I+0,void 0),A.set(I+1,null),A.set(I+2,!0),A.set(I+3,!1)}}}}typeof FinalizationRegistry>"u"||new FinalizationRegistry(Q=>L.__wbg_chunkdecoder_free(Q>>>0,1));const Ug=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(Q=>L.__wbg_csplatarray_free(Q>>>0,1)),cg=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(Q=>L.__wbg_gsplatarray_free(Q>>>0,1));function LQ(Q){const A=L.__externref_table_alloc();return L.__wbindgen_externrefs.set(A,Q),A}function OI(Q){const A=typeof Q;if(A=="number"||A=="boolean"||Q==null)return`${Q}`;if(A=="string")return`"${Q}"`;if(A=="symbol"){const B=Q.description;return B==null?"Symbol":`Symbol(${B})`}if(A=="function"){const B=Q.name;return typeof B=="string"&&B.length>0?`Function(${B})`:"Function"}if(Array.isArray(Q)){const B=Q.length;let C="[";B>0&&(C+=OI(Q[0]));for(let E=1;E1)g=I[1];else return toString.call(Q);if(g=="Object")try{return"Object("+JSON.stringify(Q)+")"}catch{return"Object"}return Q instanceof Error?`${Q.name}: ${Q.message}\n${Q.stack}`:g}function aQ(Q,A){return Q=Q>>>0,KQ().subarray(Q/2,Q/2+A)}function Hg(Q,A){return Q=Q>>>0,tQ().subarray(Q/4,Q/4+A)}function YQ(Q,A){return Q=Q>>>0,DI().subarray(Q/1,Q/1+A)}let OA=null;function dA(){return(OA===null||OA.buffer.detached===!0||OA.buffer.detached===void 0&&OA.buffer!==L.memory.buffer)&&(OA=new DataView(L.memory.buffer)),OA}function sI(Q,A){return Q=Q>>>0,dQ(Q,A)}let BI=null;function KQ(){return(BI===null||BI.byteLength===0)&&(BI=new Uint16Array(L.memory.buffer)),BI}let CI=null;function tQ(){return(CI===null||CI.byteLength===0)&&(CI=new Uint32Array(L.memory.buffer)),CI}let EI=null;function DI(){return(EI===null||EI.byteLength===0)&&(EI=new Uint8Array(L.memory.buffer)),EI}function Lg(Q,A){try{return Q.apply(this,A)}catch(I){const g=LQ(I);L.__wbindgen_exn_store(g)}}function NI(Q){return Q==null}function ZI(Q,A,I){if(I===void 0){const D=iI.encode(Q),i=A(D.length,1)>>>0;return DI().subarray(i,i+D.length).set(D),wI=D.length,i}let g=Q.length,B=A(g,1)>>>0;const C=DI();let E=0;for(;E127)break;C[B+E]=D}if(E!==g){E!==0&&(Q=Q.slice(E)),B=I(B,g,g=E+Q.length*3,1)>>>0;const D=DI().subarray(B+E,B+g),i=iI.encodeInto(Q,D);E+=i.written,B=I(B,g,E,1)>>>0}return wI=E,B}function QA(Q){const A=L.__wbindgen_externrefs.get(Q);return L.__externref_table_dealloc(Q),A}let JI=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});JI.decode();const qQ=2146435072;let TI=0;function dQ(Q,A){return TI+=A,TI>=qQ&&(JI=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),JI.decode(),TI=A),JI.decode(DI().subarray(Q,Q+A))}const iI=new TextEncoder;"encodeInto"in iI||(iI.encodeInto=function(Q,A){const I=iI.encode(Q);return A.set(I),{read:Q.length,written:I.length}});let wI=0,L;function xQ(Q,A){return L=Q.exports,OA=null,BI=null,CI=null,EI=null,L.__wbindgen_start(),L}async function rQ(Q,A){if(typeof Response=="function"&&Q instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(Q,A)}catch(B){if(Q.ok&&I(Q.type)&&Q.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n",B);else throw B}const g=await Q.arrayBuffer();return await WebAssembly.instantiate(g,A)}else{const g=await WebAssembly.instantiate(Q,A);return g instanceof WebAssembly.Instance?{instance:g,module:Q}:g}function I(g){switch(g){case"basic":case"cors":case"default":return!0}return!1}}async function nQ(Q){if(L!==void 0)return L;Q!==void 0&&(Object.getPrototypeOf(Q)===Object.prototype?{module_or_path:Q}=Q:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),Q===void 0&&(Q=new URL("data:application/wasm;base64,AGFzbQEAAAAB6wZpYAN/f38Bf2ACf38AYAJ/fwF/YAF/AGABfwF/YAN/f38AYAR/f39/AGAFf39/f38AYAADf39/YAZ/f39/f38AYAd/f39/f39/AGAEf39/fwF/YAFvAX9gCH9/f39/f39/AGABfwN/f39gBX9/f39/AX9gAX0BfWAAAGACf28AYAF/AX5gA399fwBgBn9/f39/fwF/YAZ/f39/f30AYAABf2ACf30AYAV/f39+fwBgA29/fwFvYAN/f28AYAF/AW9gAAFvYAJvbwF/YAl/f39/f39/f38AYAF+AX9gAn9vA39/f2ACfX0BfWADb39/AGACb28Bb2ACb38Bb2ACf38Bb2AEf39/fQF/YAx/f39/f39/f39/f38AYAl/f39/f39/f38Bf2AFf39/fX8AYAd/f39/f39/AX9gBX9/f399AGAEf31/fwF/YBN/f39/f39/f39/f39/f39/f39/AX9gE39/f39/f39/f39/f39/f39/f38AYAN+fn8BfmAHf39/f399fQBgA39+fgBgBX9/fn9/AGAFf398f38AYAV/f31/fwBgBH9vf28Df39/YAN/b28Bf2AAAn9/YANvb28Bf2ADb29vAGADb29/AGABbwFvYAF8AW9gCn9/f39/f39/f38Bf2ALf39/f39/f39/f38Bf2AKf39/f39/f39/fwBgBn9/fX9/fwBgAn9/AX1gBH9/f34AYAN/f38BfmACf34AYAN/fX8Bf2AFf39/fn4AYAZ/fn9/f38AYAZ/f39/fX0AYAF/AX1gBH5+f38BfmAFf39/f38BfWAJf39/f39/fn5+AGAEf39/fwF9YAJ+fwBgA39/ewBgAn9+AX9gAn1/AX1gA319fQF9YAR/fn5/AGAGf39/fn9/AGAGf39/fH9/AGAGf39/fX9/AGATf318f39/f39/f39/f39/f39/fwN/f39gCX9/f39/f39/bwN/f39gCH9/f39vf39/A39/f2AHf29/fX9/bwN/f39gB39vb399f38Df39/YAd/f39/f39/A39/f2AGf29vf31/A39/f2AGf29/fX9vA39/f2AFf39/f28Df39/YAR/b29/A39/f2AEf39/fwN/f39gAn9/A39/f2ACf28Cf39gBH9+f38AYAR/fX9/AGAEf3x/fwBgAXwBfwKdFS0XLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfZDUxZTg5NDU4YjNmZGJmNgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF8xZTcwMTc5OGZkY2FhM2I0AAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzQ0ODEyNjc2OWJmN2MxODEAIxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsX2U0MjI3NWU2MDFlMTRlZWIAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyZfX3diZ19uZXdfd2l0aF9sZW5ndGhfNDFhMjIxOTFiOWJkZmQ2NgAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX25ld180ZjlmYWZiYjM5MDlhZjcyAB0XLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzhlZTJkMzRmYWNiODQ2NmUAORcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfZjNjOWRmNGYzOGYzZjc5OAAdFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzG19fd2JnX3B1c2hfNmJkYmM5OTBiZTVhYzM3YgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX2dldF9mOTY3MDJjNjI0NWU0ZWY5ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMqX193YmdfX193YmluZGdlbl9pc19mYWxzeV9jNmRkZmFlMWJiNTZkNWVmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzZiZTQyNzY4YzY5MGUzODAAOhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19nZXRfNDg0OGUzNTBiNDBhZmMxNgAlFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2dzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2NzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHF9fd2JnX0Vycm9yXzJlNTliMWIzN2E5YTM0YzMAJhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcytfX3diZ19fX3diaW5kZ2VuX2lzX29iamVjdF80MGM1YTgwNTcyZThmOWQzAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMnX193YmdfZ2V0X3dpdGhfcmVmX2tleV82NDEyY2YzMDk0NTk5Njk0ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMuX193YmdfX193YmluZGdlbl9pc191bmRlZmluZWRfYzBjY2E3MmI4MmI4NmY0ZAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJF9fd2JnX19fd2JpbmRnZW5faW5fNGJkN2E1N2U1NDMzNzM2NgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fbnVtYmVyX2dldF83NTc5YWFiMDJhOGE2MjBjABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMtX193YmdfX193YmluZGdlbl9ib29sZWFuX2dldF9hODZjMjE2NTc1YTc1YzMwAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzgxYjQxNzQzNTJlNmEwOTUAOxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx1fX3diZ19sZW5ndGhfMGMzMmNiODU0M2M4ZTRjOAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzH19fd2JnX3N1YmFycmF5XzBmOThkM2ZiNjM0NTA4YWQAGhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsXzNlMDVlYjk1NDU1NjUwNDYAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diZ19zZXRfaW5kZXhfMzM4YTY2ZTQwZmM0NWRlZQAjFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF9hNGNhOWU3ODM1OWI1ZjFmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfNTE3Y2QwZjE4MTFhYjg3MgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfNjRjMjg3YTI3Y2MyNGQyNwAbFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF82ZTgyMWVkZGU0OTdhNTMyAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMkX193YmdfZ2V0X3VuY2hlY2tlZF83ZDdiYWJlMzJlOWU2YTU0ACUXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193YmdfbmV3XzIyN2Q3YzA1NDE0ZWI4NjEAHRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxxfX3diZ19zdGFja18zYjBkOTc0YmJmMzFlNDRmABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMcX193YmdfZXJyb3JfYTZmYTIwMmI1OGFhMWNkMwABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzMF9fd2JnX19fd2JpbmRnZW5fanN2YWxfbG9vc2VfZXFfM2E3MmFlNzY0ZDQ2ZDk0NAAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fc3RyaW5nX2dldF85MTRkZjk3ZmNmYTc4OGYyABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMsX193YmdfaW5zdGFuY2VvZl9VaW50OEFycmF5XzRiOGRhNjgzZGViMjVkNzIADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcy1fX3diZ19pbnN0YW5jZW9mX0FycmF5QnVmZmVyX2ZmN2MxMzM3YTVlM2IzM2EADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfYTU2MDM3OGVhMTI0MGIxNAA8Fy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfODFmYzc3Njc5YWY4M2JjNgABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLl9fd2JnX19fd2JpbmRnZW5fZGVidWdfc3RyaW5nX2RkNWQyZDA3Y2U5ZTZjNTcAEhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx9fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlABEXLi9zcGFya193b3JrZXJfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDEAPRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMgAmA5cKlQoYGBQUAQoKAQkBCgoFCgkKBAQnBAQNJw0BAQYEBAoEBAUNBgQEBAQJCREFBgEJAQQEBAQJCQYBAgcoCQIJASgGBQ0BKQQGAQA+BQE/DQcGAgIGAgYGAQEGBgUEBAQEBgECBgUGBgYCBwkCBgEFBgEBAwMEBA8DBAEHAQcGAAYDBA0BAgEEAQEVAQYBBAIEBQYDBUABDwcDAgEBBwICBSoCCQEFBwQEBgQCBwUfAioGAQcFBgEHBhYGAQcrCQENAAEBAAIFAQIFAQUKLCsGBQcDBgYBDQEFAwEDBAUCBQMCAwMBAQFBAgYBLAcJARADEEIHBwUGAQMHBwECAgQWCQkBAQJDBw0DCUQAAQEBAQELBC0DAwMEAQIBAgECAwMCRQUGBEYBAQEBBwACCRkCBQIBAQcABQQJAQYBRwYGSAMDBQUDAQUDBgUFAwMtBgUKBQYBAwkABQUHAQIDAwMDLi4FCQkvLwkHBwIBAQAGBQEDAwMDAQMAAQIBAQYCAQZJAgsFAQAFAQYJCQQEBAQCBAEVAQICFQABAQUGAwUVBw0ABQUHAgEAAAIFBQAACQUWHwICCgICAQcHAgMHCgUFAwMBARkCBwUwAgUFBQMwBAABAQQBMQMDCgkFAwMEChBKAQUFBQUWBgEDBksHBQEDAwIBBAIBAQUCBgcBAgICAQEDAgQBAkwDTQEHBwcHAQIKBwlOAwNPAgUBAgcHBQsGAgQEBAEDAQIJBgYHAQMPARcHEAIEUAoCBAMGBAQBDwUfAgkDBAsZFAoCAgIQAwcxBAcCAzIAAQcWAQMCAgYBBAECDwEGCwEFAhcGAQICAgICAgYCEAEHAgcDBwUEBAICBAEBAQEBAQIBAgQEAQECAAICAgIBAgMBBwMCAxAEAQMFAgEBAwMAAgMCAQkBAQEFAgIHAwEDAwcCAAcDAwICAgECBwMpBQICAgICAQIFBQEBAQICAgICAlEBAgICAgICAgEDAgkCAQEHAwEDAwEBAQEBCQkCAwIBAQIBAQMBAQEFAQUCAgFSAQICUwMDAQEBBgADAwEDAgELCwUCAgEBBAMBCwMDAgEBAgMDAwEBAQICAAMyAAAHAgUDAwUCAxkFAxQUBwcJAwYFBQUFAwMDAwMDAwYYGAMFAgMABgMEBAQEAgUBBAQECQQDBwQFAwMDAwMCAgICBVQFBAEDEwEDAQEFBARVCVZXAQECBQcCBhAAAAAAAAAAAAAAAAAEAgIAAAAAIAQgAAQgBAQEAgACAgIAWAUTBQEAAAABAgABAgIGBQIBBAICAlkPWgcCBgIHAQFbXF0DEQMDXl8RC2ACNmFiNgEJAgIhIWMhAAICAgICAg4ODg4ODg4ODgQEBAQCAmQBAQEBAgICAgICAgICFQICAgICAgICAQICAQICDwczNTQCAQECAgIGCwIAAQIANzcDAgIiIgACBQMCAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAwECBQEBAQEBAQEBBAIAAgICAgIJAgICAgEBAQECAwEBAQICAgIEaAMDAgcCCQEXBRcSEgIBAgEBAQEBAQEBAgIBAgEBAQEBAQEDBAEDBQEFBQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAwMBAQEBAQEBAQEBEQERAgICAQIBAgECAgICAQEBAQEBAQEEAwEBAQEBAQEBAQMDCgEEAgEiBAQEBAQEEQQXBQQLAnAB4QThBG8AgAgFAwEAEwYPAn8BQYCAwAALfwFBgAgLB7AMPgZtZW1vcnkCABdfX3diZ19jaHVua2RlY29kZXJfZnJlZQCSBBZfX3diZ19jc3BsYXRhcnJheV9mcmVlALYFIV9fd2JnX2dldF9jc3BsYXRhcnJheV9tYXhTaERlZ3JlZQClCB9fX3diZ19nZXRfY3NwbGF0YXJyYXlfbnVtU3BsYXRzAKYIIV9fd2JnX2dldF9nc3BsYXRhcnJheV9tYXhTaERlZ3JlZQCnCB9fX3diZ19nZXRfZ3NwbGF0YXJyYXlfbnVtU3BsYXRzAKgIFl9fd2JnX2dzcGxhdGFycmF5X2ZyZWUAtwUhX193Ymdfc2V0X2NzcGxhdGFycmF5X21heFNoRGVncmVlAKwIH19fd2JnX3NldF9jc3BsYXRhcnJheV9udW1TcGxhdHMArQghX193Ymdfc2V0X2dzcGxhdGFycmF5X21heFNoRGVncmVlAK4IH19fd2JnX3NldF9nc3BsYXRhcnJheV9udW1TcGxhdHMArwgTYmhhdHRfbG9kX2V4dHNwbGF0cwCDCBZiaGF0dF9sb2RfcGFja2Vkc3BsYXRzAIQIE2NodW5rZGVjb2Rlcl9maW5pc2gAoggRY2h1bmtkZWNvZGVyX3B1c2gAqwgVY3NwbGF0YXJyYXlfYmhhdHRfbG9kAP4GE2NzcGxhdGFycmF5X2hhc19sb2QAxgcYY3NwbGF0YXJyYXlfaW5qZWN0X3JnYmE4AMIJD2NzcGxhdGFycmF5X2xlbgDVBxRjc3BsYXRhcnJheV90aW55X2xvZADrBhhjc3BsYXRhcnJheV90b19leHRzcGxhdHMAnAgcY3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzX2xvZACeCBtjc3BsYXRhcnJheV90b19wYWNrZWRzcGxhdHMAnQgfY3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzX2xvZACfCBVkZWNvZGVfdG9fY3NwbGF0YXJyYXkAhwgTZGVjb2RlX3RvX2V4dHNwbGF0cwD+BxVkZWNvZGVfdG9fZ3NwbGF0YXJyYXkAiwgWZGVjb2RlX3RvX3BhY2tlZHNwbGF0cwD0BxBkaXNwb3NlX2xvZF90cmVlAIwCGGV4dHNwbGF0c190b19nc3BsYXRhcnJheQCKCBJnZXRfbG9kX3RyZWVfbGV2ZWwAkwgVZ3NwbGF0YXJyYXlfYmhhdHRfbG9kAP8GGGdzcGxhdGFycmF5X2luamVjdF9yZ2JhOADDCQ9nc3BsYXRhcnJheV9sZW4A1QcUZ3NwbGF0YXJyYXlfdGlueV9sb2QA7AYYZ3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzAKAIHGdzcGxhdGFycmF5X3RvX2V4dHNwbGF0c19sb2QAoQgbZ3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzAJEIH2dzcGxhdGFycmF5X3RvX3BhY2tlZHNwbGF0c19sb2QAkggNaW5pdF9sb2RfdHJlZQCUCAxuZXdfbG9kX3RyZWUApAgTbmV3X3NoYXJlZF9sb2RfdHJlZQCjCBtwYWNrZWRzcGxhdHNfdG9fY3NwbGF0YXJyYXkAjAgbcGFja2Vkc3BsYXRzX3RvX2dzcGxhdGFycmF5AIkIDHNpbWRfZW5hYmxlZADACg1zb3J0MzJfc3BsYXRzANoIC3NvcnRfc3BsYXRzANsIEnRpbnlfbG9kX2V4dHNwbGF0cwD9BxV0aW55X2xvZF9wYWNrZWRzcGxhdHMA/AcSdHJhdmVyc2VfbG9kX3RyZWVzANwHEHVwZGF0ZV9sb2RfdHJlZXMA8gcKd2FzbV9zdGFydACFCBNnc3BsYXRhcnJheV9oYXNfbG9kAMYHEV9fd2JpbmRnZW5fbWFsbG9jANoHEl9fd2JpbmRnZW5fcmVhbGxvYwCGCA9fX3diaW5kZ2VuX2ZyZWUAlgcUX193YmluZGdlbl9leG5fc3RvcmUA2gkXX19leHRlcm5yZWZfdGFibGVfYWxsb2MA2gQVX193YmluZGdlbl9leHRlcm5yZWZzAQEZX19leHRlcm5yZWZfdGFibGVfZGVhbGxvYwCbBxBfX3diaW5kZ2VuX3N0YXJ0AL4KCbgJAQBBAQvgBIsFxAnpCPMD7QiNASwrvAnECboJ0gjoB5sF9QSnAqIE8gHVCMQBggeeBOwHrASyCvwC5wP2AagG0AeJBssF5gaWCMMI3gLRCZsIswa0AsQIhQXGCYkG3APTA8AG0AmSCpMKugW4BZsKkwGPBtkG3Qj0BMcH2AjDApoKuAiZCsYJ1gLEBLIGpwOABu0GyAjcBdUFyQjJCMkIrgevB7YHygiwB9MIuAevB8sIsQfMCK8HlAfICLkIkQfZCPEG1AjuBukHlwrhBpwKugixCLsI/ATSCaMG7wfzBNMFqAXSCc8J5APKAo0GwgGDA9sExQTVBH20CecI/QjyCIMJiAnwCIwJhgn0CP8I9wiLCYUJhAmCCfoIjQnxCIcJgAn1CIEJ/gjqCIUE/QnRA4oHkQHKBogIgATmCdYDiQeQAYEE+gnXA4cHhQGGBOwJ0gOIB5IB5gj2CIkJgwfGCc8JswqUCsUJwQqDB9cHkgWBCpIJnAnaBs4FrgKzB6cKsge6BdIGsQXwBfEF/AWGCsQJoArjBN0EhQPCCKoKwgjGCc8Jnwq5CcQJ/QXtB4kK7QexBK4G6wSNB4UKjQeDCv4FkQmMCo8J8Qe1CuAHjQrFCeAHwQqQCYcK6gaECoIKoQrJBagKigqOCYsK3AiICqUHlAnMCdAGswikB78K9wSZCcsJ0QbBCJgHmgnICdcGsgipB5kHlgnHCZkGtQinB4wGlwnJCZgGvwiVCcoJvga0CJcHmwnNCZsG2AfLBoYHmAnOCZoG9gfNBe4HxQa4CZEK6wHaBYAK5wX7CPgI8wjvCIoJ+QjuCPwItQb/Cb0HuAOHA+oJxAe1BfkG8wnMB4kB8AlI8QlSnAPoCcEH0we8BvUJuge2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gICAeEYNBCADKQJMIR0gAygCVCEMIANBgICAgHg2AlQgDEGAgICAeEYNBCADKQJYISAgAygCPCERIANBgICAgHg2AjwgEUGAgICAeEYNBCADKQJAISIgAygCMCEPIANBgICAgHg2AjAgD0GAgICAeEYNBCADKQI0ISMgAigCzAEiBSACKALAASIGRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIUIAZBACAGIBRNG2tBDGxqIgYgGTcCBCAGIAQ2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIBo3AgQgBCAHNgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAcNwIEIAQgCTYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgHjcCBCAEIAs2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIB03AgQgBCAINgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAgNwIEIAQgDDYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgIjcCBCAEIBE2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEg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SxsNDyAEEKICCyADQQA2AlggA0KAgICAwAA3AlAgA0EANgKMASADQoCAgIDAADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCINIAJBBXQiCWoiBSgCACIGIAAoAggiBEkEQCAAKAIEIgsgBkEkbGoiBv1dAgggBioCECIB/SACIAH9IAMgA/0JAkwiLv3nAf1oIi39HwL8BCEaIC39HwH8BCEbIC39HwD8BCEcIAcgAkEBaiIITQRAIAIhCgwDCyAHQQFrIQogFUEBcQRAIAchCAwDCyAJIA1qQSBqIQYDQCAGKAIAIgkgBE8NAiALIAlBJGxqIgn9XQIIIAkqAhAiAf0gAiAB/SADIC795wH9aCIt/R8A/AQgHFIgLf0fAfwEIBtSckUgLf0fAvwEIBpRcUUEQCAIQQFrIQoMBAsgBkEgaiEGIAcgCEEBaiIIRw0ACyAHIQgMAgsgBiAEQdTAxwAQjAcACyAJIARB1MDHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayILrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiI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ADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCIWIAJBBXQiCWoiBigCACIFIAAoAggiBEkEQCAAKAIEIgogBUEYbGr9AAIAICz9DQABAgMEBQYHCAkKCwgJCgsgA/0JAkwiLf3nAf1oIiz9HwL8BCEaICz9HwH8BCEbICz9HwD8BCEcIAcgAkEBaiIITQRAIAIhCwwDCyAHQQFrIQsgDkEBcQRAIAchCAwDCyAJIBZqQSBqIQUDQCAFKAIAIgkgBE8NAiAKIAlBGGxq/QACACAs/Q0AAQIDBAUGBwgJCgsICQoLIC395wH9aCIs/R8A/AQgHFIgLP0fAfwEIBtSckUgLP0fAvwEIBpRcUUEQCAIQQFrIQsMBAsgBUEgaiEFIAcgCEEBaiIIRw0ACyAHIQgMAgsgBSAEQdy7xwAQjAcACyAJIARB3LvHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayIMrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhCADKQPwASIbQn+FfiIc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IANrIhUNAQwCCwtBqJDIACkDACJ6Qv8Bg0IEUQ0AIHpCIIinIhIgeqciA0H/AXFBBEYNARogekIQiKchFSB6QgiIpyEIQQAhCwwCCyAELwHIDCAELQDKDEEQdHILIRJBASEJIAEgEkEBdkEHcToAKyABIBJBAXEiA0U6ACggASASQQR2QQFxOgApAkACQAJAAkACQAJAAkAgAw0AIARBADoA2hggBEEAOwHYGCABKALoAyELQQMhFSAEQdgYaiEIAkADQAJAIHlQBEBCACF5DAELIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQAgAyAIaiEIIBUgA2siFQ0BDAILC0EAIQtBqJDIACkDACJ6pyIDQf8BcUEERg0AIHpCIIinIRIgekIQiKchFSB6QgiIpyEIDAgLIAECfwJAAkACQAJ/AkACQCAELwHYGCAELQDaGEEQdHIiB0Gdg6gBRgRAIARBADsByAwgASgC6AMhC0ECIRUgBEHIDGohCANAIHlQBEBCACF5DAMLIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQIgAyAIaiEIIBUgA2siFQ0ACwwCCyAHQQh2IQJBESELDA4LQaiQyAApAwAiekL/AYNCBFENACB6QhCIpyEVIHqnIgNB/wFxQQRHDQIgFQwBCyAELwHIDAshESAEQQA7AcgMIAEoAugDIQtBAiEVIARByAxqIQgDQCB5UA0CIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4g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ADcD0EggA0EANgLYSCADQQA6AMJIIANB4MgAaiIBIANBsMUAahCcBCADLQDgSEEoRwRAIAUgARD8AyADKAIYIgFBBkcNBAsgA0EQNgLYSCADQdDRAGoiASADQbDFAGpBsAP8CgAAIANBGGogARCcBCADLQAYIgZBKEcEQCADQarVAGogAy0AGzoAACADIAMvABk7AahVIAMoAhwhBSADKQIgIRQgARCdAQwZCwJAAkAgAygCHCIBLQC+AiICQQN0KQOwkkkgATUCtAIgATEAvwJ+IhR+IhVC8P////8AVg0AIBVCB3xCA4inQQFqrUGAASABKAK4AiIBIAFBgAFPG61+IhVCIIinDQAgFaciAUH/AXEiBEEARyABQYB+cUGAAmoiBiABSXENACAGIAEgBBsiBkGBgAhJDQELQYCACCEGC0EBIQVB/////wchBAJAIAJBA3QpA+iSSSAUfiIUQvD/////AFYNACAUQgd8QgOIp0EBaiIBQf////8DSw0AIAFBAnQiAkFAcUFAayEIIAFBD3EiAUEAIAIgCEsbDQBBgIAIIAggAiABGyIBIAFBgIAITRshBAsgBgRAIAYQcSIFRQ0WCyADQRhqIANB0NEAakGoA/wKAAAgA0H1A2pCADcAACADQbQEakEANgIAIANBAToA3QQgA0EANgLUBCADQQA2AsgDIANCADcDwAMgA0IANwPwAyADQYCAgIB4NgKgBCADQgE3A5gEIANCADcDkAQgAyAFNgKMBCADIAY2AogEIANCfzcDgAQgA/0MAAAAAAAAAAAAAAAAAAAAAP0LAqQEIAMgBDYCuAQgAyADKAL4VDYC2AQgA0ECNgLcAyADQQA6ANwEIANBADYC0AQgA0KAgICAEDcDyAQgA0EANgLABAJAIAMoAiBBAkcEQEEnIQYgAy0A3gJBA3QpA6CTSSADNQLUAiIUIAMxAN8Cfn5C8f////8AVA0BDBkLQayYxwAQ3QkACyADKALYAiEFIANBEGogA0EYaiIBEIoFIAMtABBBA3QpA9iTSSADMQARIBR+fiIUQvD/////AFYNFyAFrSAUQgd8QgOIfiIVQiCIpyAVp0EASHINFyADQZDVAGogARCMASADLQCQVSIGQShHBEAgA0Gq1QBqIAMtAJNVOgAAIAMgAy8AkVU7AahVIAMoApRVIQUgAykCmFUhFAwY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nNPBABCMBwALIAMgCEGs08EAEIwHAAsgCCAHQbzTwQAQjAcACyAIIAdBzNPBABCMBwALIAggB0Hc08EAEIwHAAsgBiABQezSwQAQjAcACyAHIAFB3NLBABCMBwALIAQgAUHM0sEAEIwHAAsgACAAKAKYAiALIAAoAuwBIAAoAvABEKAFAkACQAJAIAAoAuQBIgEgCyAQbCICTwRAIABBADYC5AEgASACayEDIAVFDQEgASACRg0DIANFDQIgACgC4AEiASABIAJqIAP8CgAADAILDBALIAEgAkYNAQsgACADNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0FIABBADYCmAIgAEEFOgCcAgwFCyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0HC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAgD2UQwAAIMGSEIkEOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQngIgACgC5AEiAiAFSQ0WIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkGc0cEAEIwHAAsgASACQazRwQAQjAcACyACIARBvNHBABCMBwALIAIgBEHM0cEAEIwHAAsgAiAEQdzRwQAQjAcACyACIARB7NHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0EIABBADYCmAIgAEEEOgCcAgwECyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0GC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQpAIgACgC5AEiAiAFSQ0VIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkG80MEAEIwHAAsgASACQczQwQAQjAcACyACIARB3NDBABCMBwALIAIgBEHs0MEAEIwHAAsgAiAEQfzQwQAQjAcACyACIARBjNHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0DIABBADYCmAIgAEEDOgCcAgwDCyAAKALkASICIAAoApACIAAoApgCayILSQRAIAIiC0GAgARJDQULQYCABCAL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QCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAgD2UQwAAIMGSEIkEOAIAIAFBAmoiAiAAKALcASIFTw0GIAIgACgC6AEiBU8NByAAKALkASADakEIaiAAKALYASABakECai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgA0EMaiEDIAYgAUEDaiIBRw0ACyAAKALoASEBCyAAIAAoApACIAQgACgC5AEgARDJAyAAKALcASICIAZJDRUgAEEANgLcASACIAZrIQEgCUUNBiACIAZGDQggAUUNByAAKALYASICIAIgBmogAfwKAAAMBwsgASACQZzRwQAQjAcACyABIAJBrNHBABCMBwALIAIgBUG80cEAEIwHAAsgAiAFQczRwQAQjAcACyACIAVB3NHBABCMBwALIAIgBUHs0cEAEIwHAAsgAiAGRg0BCyAAIAE2AtwBCyAAIAAoApACIARqIgI2ApACIAIgACgCiAJHDQUgAEEANgKQAiAAQQQ6AJQCDAULIAAoAtwBIgFBA24iAiAAKAKIAiAAKAKQAmsiCUkEQCACIQkgAUGAgAxJDQQLQYCABCAJIAlBgIAETxsiBEEDbCIGIAAoAugBIgFLBEAgBiABayICIAAoAuABIAFrSwRAIBIgASACQQRBBBCkBSAAKALoASEBCyAAKALkASIFIAFBAnRqIQMgAkECTwR/IAJBAnRBBGsiBwRAIANBACAH/AsACyABIAJqIgJBAWshASAFIAJBAnRqQQRrBSADC0EANgIAIAAgAUEBaiIBNgLoAQsCQAJAAkACQAJAAkACQAJAAkAgCQRAQQAhA0EAIQEDQCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAFBAmoiAiAAKALc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IAEgDCAIazoAogcgASAnICiINwPQBgwPCyAMQf8BcUERSQ0OIAEgD0ENdkEPcUEEajYCyAYgASAPQQh2QR9xIglBAWo2AsQGIAEgD0EDdkEfcSIIQYECajYCwAZBBCAIQR1LDQMaIAlBHU0NAUEFDAMLIAEgDEEDazoAogcgASAnQgOINwPQBiAnQvgHg1ANAyABLQClB0UEQCABQQE6AKUHIAEoAvgGIQpBACIIRQRAIApB7J3EAEGAEPwKAAALIAhFBEAgCkGAEGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAIGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAMGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAQGtB7J3EAEGAEPwKAAALIAhFBEAgCkGA0ABqQeydxABBgBD8CgAACyAIRQRAIApBgOAAakHsncQAQYAQ/AoAAAsgCEUEQCAKQYDwAGpB7J3EAEGAEPwKAAALIAEoAvwGIQpBAEUEQCAKQeycxABBgAH8CgAACyAIRQRAIApBgAFqQeycxABBgAH8CgAACyAIRQRAIApBgAJqQeycxABBgAH8CgAACyAIRQRAIApBgANqQeycxABBgAH8CgAACyAIRQRAIApBgARqQeycxABBgAH8CgAACyAIRQRAIApBgAVqQeycxABBgAH8CgAACyAIRQRAIApBgAZqQeycxABBgAH8CgAACyAIRQRAIApBgAdqQeycxABBgAH8CgAACyAIRQRAIApBgAhqQeycxABBgAH8CgAACyAIRQRAIApBgAlqQeycxABBgAH8CgAACyAIRQRAIApBgApqQeycxABBgAH8CgAACyAIRQRAIApBgAtqQeycxABBgAH8CgAACyAIRQRAIApBgAxqQeycxABBgAH8CgAACyAIRQRAIApBgA1qQeycxABBgAH8CgAACyAIRQRAIApBgA5qQeycxABBgAH8CgAACyAIRQRAIApBgA9qQeycxABBgAH8CgAACyABQYCA/AM2AoAHIAFBBzoAhAcLIAFBBDoAowcMDQsgAUEAOgClByABQQI6AKMHIAEgDEERazoAogcgASAnQhGINwPQBgwMC0ECCzoAAUEBDBQLIAEgDEEKayIJOgCiByABICdCCogiJzcD0AYgCA0HIAlB/wFxQQpJDQADQCAnQv8Hg0ICUg0BIAEgCUEKayIPOgCi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QbyNyAAQ6wcAC545Azd/A30BfiMAQYABayIBJAACQAJAAkAgACgCaCICQf8fTQRAIAFBADYCQCABQQE2AjQgAUHwssEANgIwIAFCBDcCOCABQTBqEJIHIQMMAQsgASAAKAJkIgMtAAAiBDoABiABIAMtAAEiBjoAByAEQQEgBhsEQCABQQI2AjQgAUHAssEANgIwIAFCAjcCPCABQoCAgIDwBCI7IAFBB2qthDcDECABIDsgAUEGaq2ENwMIIAEgAUEIajYCOCABQTBqEJIHIQMMAQsgA0EEaigAACEqIAMoABAhDSABIAMvABQiBDYCHCAEQQNPBEAgAUEBNgI0IAFBmLLBADYCMCABQgE3AjwgASABQRxqrUKAgICAEIQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyABIANBJGooAAAiBkGAgID+eyAGQf////8HcRs2AiAgASADKAAoIgZBgICA/gMgBkH/////B3EbNgIkIARBKGxBrKrBAGohECACQYAga0EKdkEBaiEUQQAhBEEAIQIgKkEKdEGAIGoiKyEhAkADQAJAIAQgKkcEQCAUIARBAWoiBEcNASABQQA2AkAgAUEBNgI0IAFB1LHBADYCMCABQgQ3AjggAUEwahCSByEDDAQLIAFBADoAOCABIAI2AjQgASANNgIwIAAgAUEwahDpASAqRQ0CQYAgISFBASEuAkADQCAhIgRBgAhqIiEgACgCaCIDSwRAIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgACgCZCIGIARqIgIoABgiEUUEQCAQKAIkIRELIAMgBEEkckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEockkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEqckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAIoAAQhB0EAIQQgECgCCCAQKAIAIBAoAgRqaiACLwAoIiJBA00EfyAiQQJ0KAKkq0EFIAQLIBAoAhBsakEEaiI1rSAHrX4iO0IgiFBFBEAgAUEANgJAIAFBATYCNCABQdCrwQA2AjAgAUIE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IGooAAAgA0GUIGovAABsaiADQaQgaigAAEECdGoiIU0gA0GACGohAw0ACyABQQA2AkAgAUEBNgI0IAFB9LHBADYCMCABQgQ3AjggAUEwahCSByEDDAELQQAhAwsgAUGAAWokACADDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALnjkDN38DfQF+IwBBgAFrIgEkAAJAAkACQCAAKAJIIgJB/x9NBEAgAUEANgJAIAFBATYCNCABQfCywQA2AjAgAUIENwI4IAFBMGoQkgchAwwBCyABIAAoAkQiAy0AACIEOgAGIAEgAy0AASIGOgAHIARBASAGGwRAIAFBAjYCNCABQcCywQA2AjAgAUICNwI8IAFCgICAgPAEIjsgAUEHaq2ENwMQIAEgOyABQQZqrYQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyADQQRqKAAAISogAygAECENIAEgAy8AFCIENgIcIARBA08EQCABQQE2AjQgAUGYssEANgIwIAFCATcCPCABIAFBHGqtQoCAgIAQhDcDCCABIAFBCGo2AjggAUEwahCSByEDDAELIAEgA0EkaigAACIGQYCAgP57IAZB/////wdxGzYCICABIAMoACgiBkGAgID+AyAGQf////8HcRs2AiQgBEEobEGsqsEAaiEQIAJBgCBrQQp2QQFqIRRBACEEQQAhAiAqQQp0QYAgaiIrISECQANAAkAgBCAqRwRAIBQgBEEBaiIERw0BIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBAsgAUEAOgA4IAEgAjYCNCABIA02AjAgACABQTBqEIQCICpFDQJBgCAhIUEBIS4CQANAICEiBEGACGoiISAAKAJIIgNLBEAgAUEANgJAIAFBATYCNCABQdSxwQA2AjAgAUIENwI4IAFBMGoQkgchAwwGCyAAKAJEIgYgBGoiAigAGCIRRQRAIBAoAiQhEQsgAyAEQSRySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQShySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQSpySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIw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AtwCNwM4IAEoAtgCIgJFBEAgAUE4ahCPByECDAMLIAFBLGogAygCADYCACABIAEpAzg3AiQgASABKQPoAiIpNwMwIAEgAjYCIAJAAkAgKacoAkAiEARAIAFB/ABqIQQgAUHwAGohDCABQewCaiEiIAFB4AJqIQ0DQCABQQA6ALgCIAFBADYCsAIgAUHYAmogAUEgaiAdIAFBsAJqEKgBIAFB0ABqIgIgDUEIaigCADYCACABIA0pAwA3A0gCQAJAAkACQAJAAkACQAJAAkAgASkD2AIiKUIDUgRAIAQgIkG0AfwKAAAgDEEIaiACKAIANgIAIAwgASkDSDcDACABICk3A2gCQCABKAJwIAFB6ABqIClCAlEbIgIoAiwiB0EATgRAIAIoAighAgJAIAdFBEBBASELDAELIAcQcSILRQ0ICyAHBEAgCyACIAf8CgAACyABQegAahD8ASAHQQlJDQhB/NXBACAHIAtqQQlrQQkQ2wcNCSAHIQICQANAIAFBCGpBLyALIAIQqQNBASEdQQAhIiABKAIIQQFxRQRADAILAkAgByABKAIMIgJLBEAgAiALai0AAEEvRg0BCyACIAdNDQEMAgsLIAEgAjYCqAQgASALNgKkBCABIAFBpARqrUKAgICAIIQ3A7ACIAFCATcC5AIgAUECNgLcAiABQazWwQA2AtgCIAEgAUGwAmo2AuACIAFB6ABqIAFB2AJqEOwDIAEoAmgiAkGAgICAeEYNACABKQJsIilCIIinIQUgKachHSACISILIAFB2AJqIAFBIGogCyAHEMkEIAFB4ABqIAFB6AJqKAIANgIAIAEgASkD4AI3A1gCQCABKQPYAiIpQgNRBEAgAUHYAGoQjwchAgwBCyABQfwAaiABQewCakG0AfwKAAAgAUH4AGogAUHgAGooAgA2AgAgASApNwNoIAEgASkDWDcDcCABQQA2ArgCIAFCgICAgBA3ArACIAFB2AJqIAFB6ABqIAFBsAJqEJkBIAEoAtgCQQFGBEAgASkC3AIQzwchAiABKAKwAiIABEAgASgCtAIgAEEBEKIHCyABQegAahD8AQwBCyABKAKwAiEnIAEoArQCISggASgCuAIhAiABQegAahD8ASABQQA2ArgCIAEgAjYCtAIgASAoNgKwAiABQdgCaiABQbACahBGIAEoAtwCIQICQCABKALY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AEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALozADJ38EfQF+IwBBwAxrIgMkAAJAAkACQAJAAkACQAJAIAAoAtwEIgFBgYCAgHhGBEACQCAAKALwBCIKQQRJDQACQCAAKALsBCIELwAAIAQtAAJBEHRyQfDY5QNGBEAgCkELSQ0CIApBCmshAkEAIQECQANAIAEgBGpB+MPBAEELENsHRQ0BIAIgAUEBaiIBRw0ACyAKQf//A00NAyADQQA2AugHIANBATYC3AcgA0Hww8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMCQsgASAKSw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIOQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCkEBcUUEQCADKAKwASEIIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAOIAggBCACEJoBIAMoAtgHIQUgAygCtAwiDUGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiEHIAMoAsQKIQsgA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQkgA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIAk2AtwHIAMgCDYC2AcgAEH0BGogDhClBAwDCyADQZgGaiICIANBCGpBwAH8CgAAIANB2AdqIAIQaiADKALcByECIAMoAtgHIgVBgICAgHhGBEAgAkUNBAwKCyADQbADaiADQeAHakHkAvwKAAAgAygCxAohCyADKALICiEHIANBADoA4AcgAyAHNgLcByADIAs2AtgHIABB9ARqIANB2AdqEKUEQYCAgIB4IQ0MAgsgA0EIahCgAyAFIgINCAwCCyADQQA2AugHIANBATYC3AcgA0Goo8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMBwsgACgC8AQiBCABQQtqIghJDQIgAEEANgLwBCAEIAhHBEAgBCAIayIEBEAgACgC7AQiASABIAhqIAT8CgAA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2OUDRgRAIApBC0kNAiAKQQprIQJBACEBAkADQCABIARqQfjDwQBBCxDbB0UNASACIAFBAWoiAUcNAAsgCkH//wNNDQMgA0EANgLoByADQQE2AtwHIANB8MPBADYC2AcgA0IENwLgByADQdgHahCSByECDAkLIAEgCksNCiADQdgHaiAEIAEQ+wIgAykC3AchLCADKALYB0EBRgRAICwQzQchAgwJCyADQdgHaiAspyAsQiCIpxBNIAMoAtgHIQIgAygChAkiBEGAgICAeEYEQCACRQ0DDAkLIANBCGpBBHIgA0HYB2oiDkEEckGoAfwKAAAgA0HAAWogA0GQCWopAwAiLDcDACADIAMpA4gJNwO4ASADIAQ2ArQBIAMgAjYCCAJAICynIgpBAXFFBEAgAygCsAEhCCADKAKcASEEIANBmAZqIgIgA0H4AGoQwwMgDiAIIAQgAhCaASADKALYByEFIAMoArQMIg1BgICAgHhGDQEgAygC3AchAiADQbADaiADQeAHakHkAvwKAAAgAygCyAohByADKALECiELIANBoAJqIANBzApqQZAB/AoAACADKALcCyEJIANByAFqIANB4AtqQdQA/AoAACADKQO4DCEsIANBADoA4AcgAyAJNgLcByADIAg2AtgHIABB9ARqIA4Q4QMMAwsgA0GYBmoiAiADQQhqQcAB/AoAACADQdgHaiACEGogAygC3AchAiADKALYByIFQYCAgIB4RgRAIAJFDQQMCgsgA0GwA2ogA0HgB2pB5AL8CgAAIAMoAsQKIQsgAygCyAohByADQQA6AOAHIAMgBzYC3AcgAyALNgLYByAAQfQEaiADQdgHahDhA0GAgICAeCENDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoAvAEIgQgAUELaiIISQ0CIABBADYC8AQgBCAIRwRAIAQgCGsiBARAIAAoAuwEIgEgASAIaiAE/AoAAAsgACAENgLwBAsCQAJAAkAgACgC3ARBgICAgHhrDgIBAgALIAAQvgIMAQsgABC9AQsgACACNgIEIAAgBTYCACAAQQhqIANBsANqQeQC/AoAACAAIAc2AvACIAAgCzYC7AIgAEH0AmogA0GgAmpBkAH8CgAAIAAg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Sw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIJQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCEEBcUUEQCADKAKwASEHIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAJIAcgBCACEJoBIAMoAtgHIQUgAygCtAwiCkGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiELIAMoAsQKIQ4gA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQ0gA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIA02AtwHIAMgBzYC2AcgACAJEIQCDAMLIANBmAZqIgIgA0EIakHAAfwKAAAgA0HYB2ogAhBqIAMoAtwHIQIgAygC2AciBUGAgICAeEYEQCACRQ0EDAoLIANBsANqIANB4AdqQeQC/AoAACADKALECiEOIAMoAsgKIQsgA0EAOgDgByADIAs2AtwHIAMgDjYC2AcgACADQdgHahCEAkGAgICAeCEKDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoArAFIgQgAUELaiIHSQ0CIABBADYCsAUgBCAHRwRAIAQgB2siBARAIAAoAqwFIgEgASAHaiAE/AoAAAsgACAENgKwBQsgAEFAayEBAkACQAJAIAAoApwFQYCAgIB4aw4CAQIACyABEL4CDAELIAEQvQELIAAgAjYCRCAAIAU2AkAgAEHIAGogA0GwA2pB5AL8CgAAIAAgCzYCsAMgACAONgKsAyAAQbQDaiADQaACakGQAfwKAAAgACANNgLEBCAAQcgEaiADQcgBakHUAPwKAAAgACAsNwOgBSAAIAo2ApwFIAhBAXENACADQQhqEKADC0EAIQIgACgCnAUiAUGBgICAeEYNBQsgAEFAayESIAFBgICAgHhHDQEgACgCqAMiAiAAKAJITwRAIAAoArAFIQFB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DyADRQ0GIA8gDygCACgCABEDACADLQAQITggAygCDCE5IAJBgOHHAEELELkFIQMgBEEANgKoAyAEQQE2ApwDIARBqOHHADYCmAMgBEIENwKgAyAEQZgDahCVByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhOiADKAIMITtBCCEeQQghHyACQbDhxwBBBRC5BSICBEAgAigCDCE8IAItABAhHwsgBEEQakG14ccAQQUQuQUiAgRAIAIoAgwhPSACLQAQIR4LQQghGkEIISAgBEEQakG64ccAQQUQuQUiAgRAIAIoAgwhPiACLQAQISALIARBEGpBv+HHAEEFELkFIgIEQCACKAIMIT8gAi0AECEaC0EIISFBCCEiIARBEGpBxOHHAEEFELkFIgIEQCACKAIMIUAgAi0AECEiCyAEQRBqQcnhxwBBBRC5BSICBEAgAigCDCFBIAItABAhIQsgBEHIAGoiAkHO4ccAQQ8QuQUhAyAEQQA2AqgDIARBATYCnAMgBEGA4scANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgA0UNBSASIBIoAgAoAgARAwAgAy0AECFCIAMoAgwhQyACQYjixwBBDxC5BSEDIARBADYCqAMgBEEBNgKcAyAEQbjixwA2ApgDIARCBDcCoAMgBEGYA2oQlQchEiADRQ0FIBIgEigCACgCABEDACADLQAQIUQgAygCDCFFIAJBwOLHAEEMELkFIQMgBEEANgKoAyAEQQE2ApwDIARB7OLHADYCmAMgBEIENwKgAyAEQZgDahCVByESIANFDQUgEiASKAIAKAIAEQMAIAMtABAhRiADKAIMIUcgAkH04scAQQwQuQUhAiAEQQA2AqgDIARBATYCnAMgBEGg48cANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgAkUNBSASIBIoAgAoAgARAwAgAUE4aiEcIAItABAhSCACKAIMIUkgASgCYEGAgICAeEYNByABKAJYICNHDQggBEHUAWqtQoCAgIAQhCFKQQAhEgNAAkAgBCASNgLUASAEQQE2ApwDIARBiNDHADYCmAMgBEIBNwKkAyAEIEo3A9gBIAQgBEHYAWo2AqADIARB0ANqIARBmANqELEGIBwgBCgC1AMiAyAEKALYAxC5BSAEKALQAyECRQ0AIAIEQCADIAJBARCiBwsgBCgC1AFBAWohEgwBCwsgAgRAIAMgAkEBEKIHCyAEKALUASIDIQ8CQAJAAkACQAJAAkAgAw4ZBQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAwALIANBLUYNAwsgBEEBNgKcAyAEQdzXxwA2ApgDIARCATcCpAMgBCBKNwPQAyAEIARB0ANqNgKgAyAEQeQBaiICIARBmANqELEGIAIQkAchAiAAQYCAgIB4NgIAIAAgAjYCBAwOC0EBIQ8MAgtBAiEPDAELQQMhDwsgBEHwAWohCkEAIQYCQAJAAkACQAJAIANB/////wFLDQAgA0EDdCICQf3///8HTw0AAkAgAkUEQEEEIQUMAQsgAyEGIAIQcSIFRQ0CCyADQQJJDQIgA0EBayIJQQdxIQcgBSECIANBAmtBB08EQCAJQXhxIQkDQCACQQA2AgAgAkE8akEBOgAAIAJBOGpBADYCACACQTRqQQE6AAAgAkEwakEANgIAIAJBLGpBAToAACACQShqQQA2AgAgAkEkakEBOgAAIAJBIGpBADYCACACQRxqQQE6AAAgAkEYakEANgIAIAJBFGpBAToAACACQRBqQQA2AgAgAkEMakEBOgAAIAJBCGpBADYCACACQQRqQQE6AAAgAkFAayECIAlBCGsiCQ0ACwsgB0UNAwNAIAJBADYCACACQQRqQQE6AAAgAkEIaiECIAdBAWsiBw0ACwwDC0Go48cAEP8HCwALIAUhAiADRQ0BCyACQQE6AAQgAkEANgIACyAKIAM2AgggCiAFNgIEIAogBjYCACABKAI4IgIpAwAhSiABKAI8IQMgBCABKAJENgKwAyAEIAI2AqgDIAQgAiADakEBajYCpAMgBCACQQhqNgKgAyAEIEpCf4VCgIGChIiQoMCAf4M3A5gDIAQoAvQBIQggBCgC+AEhCgJAA0ACQCAEQQhqIQZBACECIARBmANqIgMoAhgiBwR/AkAgAykDACJKUEUEQCADKAIQIQIMAQsgAygCECECIAMoAgghBQNAIAJBoAFrIQIgBSkDACAFQQhqIQVCgIGChIiQoMCAf4MiSkKAgYKEiJCgwIB/UQ0ACyADIAI2AhAgAyAFNgIIIEpCgIGChIiQoMCAf4UhSgsgAyAHQQFrNgIYIAMgSkIBfSBKgzcDACACIEp6p0EDdkFsbGoiA0EIayECIANBFGsFQQALIQMgBiACNgIEIAYgAzYCACAEKAIIIgJFDQAgBCgCDCEHIAIoAggiA0EHSQ0BQYDQxwAgAigCBCICQQcQ2wcNASAEQdADaiEGIAJBB2ohBQJAAkACQAJAAkACQAJAAkACQAJAIANBB2siAw4CAAECCyAGQQA6AAEMBwtBASECIAUtAABBK2sOAwQBBAELIAUtAABBK0YEQCADQQFrIQIgBUEBaiEFIANBCkkNAQwCCyADIgJBCU8NAQtBACEDA0AgBS0AAEEwayIJQQlLDQMgBUEBaiEFIAkgA0EKbGohAyACQQFrIgINAAsMAQtBACEDA0AgAkUNASAFLQAAQTBrIglBCUsNAiADrUIKfiJKQiCIpw0DIAVBAWohBSACQQFrIQIgCSBKp2oiAyAJTw0ACyAGQQI6AAEMAwsgBiADNgIEIAZBADoAAAwDCyAGQQE6AAEgBkEBOgAADAILIAZBAjoAAQsgBkEBOgAACyAELQDQAyAEKALUAyICIAQoAtQBT3INASACIApPDQIgBygCACEDIAggAkEDdGoiAiAHLQAEOgAEIAIgAzYCAAwBCwsgBEKAgICAMDcCqAJBACESIARBADYCkAIgBEEANgL8ASAEIAQoAtQBQQNuNgLYASAEIARB2AFqIhs2AqQCIARB3ANqIRYjAEEQayIMJAAgBEH8AWoiBygCLCECIAcoAgghBiAHKAIEIQogBygCACEDAkACQAJAAkACQEF/An8CQAJ/AkACQCAHKAIoIhcEQCAHKAIwIQUgA0EBcQRAIAYgCksNAyAHQQA2AgALIAIgBU8NASAHIAJBAWoiAzYCLCAHIBcoAgA2AhAgB0EBNgIAQQMhBiAHQQM2AgggByACNgIMQQAMAwsgA0EBcUUNACAGIApLDQEgB0EANgIACwJAIAcoAhRBAUcNACAHKAIYIgMgBygCHE8NAEEBIQUgByADQQFqNgIYIAcoAiAgBygCJCADbGohCSACIQNBACECDAMLIBZBADYCCCAWQoCAgIDAADcCAAwICyACIQMgCgshBUEBIQIgByAFQQFqIgo2AgQgBiAKayIJQQAgBiAJTxshECAHKAIMIAcoAhAgBWxqIQlBACAHKAIUIgVBAUcNARoLIAcoAhwiCCAHKAIYayILQQAgCCALTxsLIBBqIgggCCAQSRtBAWoiCEF/IAgbIghB/////wNLDQBBBCAIIAhBBE0bIghBAnQiC0H9////B08NACAHKAIwIRggCxBxIhFFDQEgESAJNgIAIAxBATYCDCAMIBE2AgggDCAINgIEIAcoAiQhGSAHKAIgIR0gBygCHCEVIAcoAhghCSAHKAIQIRQgBygCDCELIBdFBEAgBUUNA0EEIQ1BASEDIAYhByAKIRMgAiEIA0ACfwJAAkAgCEEBcUUEQCACIQUMAQtBACEFIAcgE0sNAQsgCSAVTw0HIAkgGWwgHWohECAJQQFqIQkgBSECQQAMAQsgEyAUbCALaiEQIBNBAWoiCiETQQELIQggDCgCBCADRgRAIAxBBGogA0F/IAYgCmsiBUEAIAUgBk0bIgUgFSAJayIIQQAgCCAVTRsiCGoiDiAFIA5LGyAIIAJBAXEiBRtBAWoiCEF/IAgbQQRBBBCkBSAKIBMgBRshEyAMKAIIIREgAiEIIAYgByAFGyEHCyANIBFqIBA2AgAgDCADQQFqIgM2AgwgDUEEaiENDAALAAsgBUUEQEEEIQhBASENIAYhBSACIQkDQCAJQQFxRSAFIApNcgR/IAMgGE8NBkEBIQIgFygCACEUQQMhBiADIQsgA0EBaiEDQQMhBUEABSAKCyEHQQEhCSAHQQFqIQogDCgCBCANRgRAIAxBBGogDSAGIAprIglBACAGIAlPG0EBakEBIAJBAXEiCRtBBEEEEKQFIAYgBSAJGyEFIAwoAgghESACIQkLIAggEWogByAUbCALajYCACAMIA1BAWoiDTYCDCAIQQRqIQgMAAsAC0EEIQhBASENIAYhDiAKIRAgAiEFA0ACfwJAAkACQCAFQQFxRQRAIAIhBwwBC0EAIQcgDiAQSw0BCyADIBhPDQFBASECIBcoAgAhFEEAIRBBAyEGIAMhCyADQQFqIQNBAyEOCyAQIBRsIAtqIRMgEEEBaiIKIRBBAQwBCyAJIBVPDQUgCSAZbCAdaiETIAlBAWohCSAHIQJBAAshBSAMKAIEIA1GBEAgDEEEaiANQX8gBiAKayIFQQAgBSAGTRsiBSAVIAlrIgdBACAHIBVNGyIHaiIRIAUgEUsbIAcgAkEBcSIFG0EBaiIHQX8gBxtBBEEEEKQFIAogECAFGyEQIAYgDiAFGyEOIAwoAgghESACIQULIAggEWogEzYCACAMIA1BAWoiDTYCDCAIQQRqIQgMAAsAC0Hg/8YAEP8HCwALIAJFDQAgBiAKayICQQAgAiAGTRshBSAKQQFqIQcgCyAKIBRsaiENQQQhCEEAIQMDQCADIAVGDQEgA0EBaiICIAwoAgRGBEAgDEEEaiACIAYgAyAHamsiCkEAIAYgCk8bQQFqIgpBfyAKG0EEQQQQpAUgDCgCCCERCyAIIBFqIA02AgAgDCADQQJqNgIMIA0gFGohDSAIQQRqIQggAiEDDAALAAsgFiAMKQIENwIAIBZBCGogDEEMaigCADYCAAsgDEEQaiQAIARCgICAgNAANwLcAiAEQQA2AsQCIARBADYCsAIgBCAbNgLYAiAEQegDaiEVQQAhCyMAQRBrIg4kACAEQbACaiIGKAIsIQIgBigCCCEKIAYoAgQhByAGKAIAIQMCQAJAAkACQAJAQX8CfwJAAn8CQAJAIAYoAigiFgRAIAYoAjAhBSADQQFxBEAgByAKSQ0DIAZBADYCAAsgAiAFTw0BIAYgAkEBaiIDNgIsIAYgFigCADYCECAGQQE2AgBBAyEKIAZBAzYCCCAGIAI2AgxBAAwDCyADQQFxRQ0AIAcgCkkNASAGQQA2AgALAkAgBigCFEEBRw0AIAYoAhgiAyAGKAIcTw0AQQEhBSAGIANBAWo2AhggBigCICAGKAIkIANsakEDaiEJIAIhA0EAIQIMAwsgFUEANgIIIBVCgICAgMAANwIADAgLIAIhAyAHCyEFQQEhAiAGIAVBAWoiBzYCBCAKIAdrIglBACAJIApNGyELIAYoAgwgBigCECAFbGpBA2ohCUEAIAYoAhQiBUEBRw0BGgsgBigCHCIIIAYoAhhrIhBBACAIIBBPGwsgC2oiCCAIIAtJG0EBaiIIQX8gCBsiCEH/////A0sNAEEEIAggCEEETRsiCEECdCILQf3///8HTw0AIAYoAjAhFyALEHEiDUUNASANIAk2AgAgDkEBNgIMIA4gDTYCCCAOIAg2AgQgBigCIEEDaiEYIAYoAiQhGSAGKAIcIRQgBigCGCEJIAYoAhAhESAGKAIMIQYgFkUEQCAFRQ0DIAZBA2ohE0EEIQxBASEDIAohECAHIQUgAiEIA0ACfwJAAkAgCEEBcUUEQCACIQYMAQtBACEGIAUgEEkNAQsgCSAUTw0HIBggCSAZbGohCyAJQQFqIQkgBiECQQAMAQsgEyAFIBFsaiELIAVBAWoiByEFQQELIQggDigCBCADRgRAIA5BBGogA0F/IAogB2siBkEAIAYgCk0bIgYgFCAJayIIQQAgCCAUTRsiCGoiDSAGIA1LGyAIIAJBAXEiBhtBAWoiCEF/IAgbQQRBBBCkBSAKIBAgBhshECAOKAIIIQ0gAiEIIAcgBSAGGyEFCyAMIA1qIAs2AgAgDiADQQFqIgM2AgwgDEEEaiEMDAALAAsgBUUEQEEEIQhBASEMIAohBSACIQkDQCAJQQFxRSAFIAdNcgR/IAMgF08NBkEBIQIgFigCACERQQMhCiADIgZBAWohA0EDIQVBAAUgBwshC0EBIQkgC0EBaiEHIA4oAgQgDEYEQCAOQQRqIAwgCiAHayIJQQAgCSAKTRtBAWpBASACQQFxIgkbQQRBBBCkBSAKIAUgCRshBSAOKAIIIQ0gAiEJCyAIIA1qIAYgCyARbGpBA2o2AgAgDiAMQQFqIgw2AgwgCEEEaiEIDAALAAtBBCEIQQEhDCAKIRMgByELIAIhBQNAAn8CQAJAAkAgBUEBcUUEQCACIQUMAQtBACEFIAsgE0kNAQsgAyAXTw0BQQEhAiAWKAIAIRFBACELQQMhCiADIgZBAWohA0EDIRMLIAYgCyARbGpBA2ohECALQQFqIgchC0EBDAELIAkgFE8NBSAYIAkgGWxqIRAgCUEBaiEJIAUhAkEACyEFIA4oAgQgDEYEQCAOQQRqIAxBfyAKIAdrIgVBACAFIApNGyIFIBQgCWsiDUEAIA0gFE0bIg1qIh0gBSAdSxsgDSACQQFxIgUbQQFqIg1BfyANG0EEQQQQpAUgByALIAUbIQsgCiATIAUbIRMgDigCCCENIAIhBQsgCCANaiAQNgIAIA4gDEEBaiIMNgIMIAhBBGohCAwACwALQeD/xgAQ/wcLAAsgAkUNACAKIAdrIgJBACACIApNGyEFIAdBAWohCSAGIAcgEWxqQQNqIQxBBCEIQQAhAwNAIAMgBUYNASADQQFqIgIgDigCBEYEQCAOQQRqIAIgCiADIAlqayIGQQAgBiAKTRtBAWoiBkF/IAYbQQRBBBCkBSAOKAIIIQ0LIAggDWogDDYCACAOIANBAmo2AgwgDCARaiEMIAhBBGohCCACIQMMAAsACyAVIA4pAgQ3AgAgFUEIaiAOQQxqKAIANgIACyAOQRBqJAAgBEKAgICA8AA3ApADIARBADYC+AIgBEEANgLkAiAEIBs2AowDIARB9ANqIRVBACELIwBBEGsiDiQAIARB5AJqIgYoAiwhAiAGKAIIIQogBigCBCEHIAYoAgAhAwJAAkACQAJAAkBBfwJ/AkACfwJAAkAgBigCKCIWBEAgBigCMCEFIANBAXEEQCAHIApJDQMgBkEANgIACyACIAVPDQEgBiACQQFqIgM2AiwgBiAWKAIANgIQIAZBATYCAEEDIQogBkEDNgIIIAYgAjYCDEEADAMLIANBAXFFDQAgByAKSQ0BIAZBADYCAAsCQCAGKAIUQQFHDQAgBigCGCIDIAYoAhxPDQBBASEFIAYgA0EBajYCGCAGKAIgIAYoAiQgA2xqQQhqIQkgAiEDQQAhAgwDCyAVQQA2AgggFUKAgICAwAA3AgAMCAsgAiEDIAcLIQVBASECIAYgBUEBaiIHNgIEIAogB2siCUEAIAkgCk0bIQsgBigCDCAGKAIQIAVsakEIaiEJQQAgBigCFCIFQQFHDQEaCyAGKAIcIgggBigCGGsiEEEAIAggEE8bCyALaiIIIAggC0kbQQFqIghBfyAIGyIIQf////8DSw0AQQQgCCAIQQRNGyIIQQJ0IgtB/f///wdPDQAgBigCMCEXIAsQcSINRQ0BIA0gCTYCACAOQQE2AgwgDiANNgIIIA4gCDYCBCAGKAIgQQhqIRsgBigCJCEYIAYoAhwhFCAGKAIYIQkgBigCECERIAYoAgwhBiAWRQRAIAVFDQMgBkEIaiETQQQhDEEBIQMgCiEQIAchBSACIQgDQAJ/AkACQCAIQQFxRQRAIAIhBgwBC0EAIQYgBSAQSQ0BCyAJIBRPDQcgGyAJIBhsaiELIAlBAWohCSAGIQJBAAwBCyATIAUgEWxqIQsgBUEBaiIHIQVBAQshCCAOKAIEIANGBEAgDkEEaiADQX8gCiAHayIGQQAgBiAKTRsiBiAUIAlrIghBACAIIBRNGyIIaiINIAYgDUsbIAggAkEBcSIGG0EBaiIIQX8gCBtBBEEEEKQFIAogECAGGyEQIA4oAgghDSACIQggByAFIAYbIQULIAwgDWogCzYCACAOIANBAWoiAzYCDCAMQQRqIQwMAAsACyAFRQRAQQQhCEEBIQwgCiEFIAIhCQNAIAlBAXFFIAUgB01yBH8gAyAXTw0GQQEhAiAWKAIAIRFBAyEKIAMiBkEBaiEDQQMhBUEABSAHCyELQQEhCSALQQFqIQcgDigCBCAMRgRAIA5BBGogDCAKIAdrIglBACAJIApNG0EBakEBIAJBAXEiCRtBBEEEEKQFIAogBSAJGyEFIA4oAgghDSACIQkLIAggDWogBiALIBFsakEIajYCACAOIAxBAWoiDDYCDCAIQQRqIQgMAAsAC0EEIQhBASEMIAohEyAHIQsgAiEFA0ACfwJAAkACQCAFQQFxRQRAIAIhBQwBC0EAIQUgCyATSQ0BCyADIBdPDQFBASECIBYoAgAhEUEAIQtBAyEKIAMiBkEBaiEDQQMhEwsgBiALIBFsakEIaiEQIAtBAWoiByELQQEMAQsgCSAUTw0FIBsgCSAYbGohECAJQQFqIQkgBSECQQALIQUgDigCBCAMRgRAIA5BBGogDEF/IAogB2siBUEAIAUgCk0bIgUgFCAJayINQQAgDSAUTRsiDWoiGSAFIBlLGyANIAJBAXEiBRtBAWoiDUF/IA0bQQRBBBCkBSAHIAsgBRshCyAKIBMgBRshEyAOKAIIIQ0gAiEFCyAIIA1qIBA2AgAgDiAMQQFqIgw2AgwgCEEEaiEIDAALAAtB4P/GABD/BwsACyACRQ0AIAogB2siAkEAIAIgCk0bIQUgB0EBaiEJIAYgByARbGpBCGohDEEEIQhBACEDA0AgAyAFRg0BIANBAWoiAiAOKAIERgRAIA5BBGogAiAKIAMgCWprIgZBACAGIApNG0EBaiIGQX8gBhtBBEEEEKQFIA4oAgghDQsgCCANaiAMNgIAIA4gA0ECajYCDCAMIBFqIQwgCEEEaiEIIAIhAwwACwALIBUgDikCBDcCACAVQQhqIA5BDGooAgA2AgALIA5BEGokACAEQdgDaiICIARB+AFqKAIANgIAIARBqANqIARB4ANq/QADAP0LAwAgBEG4A2ogBEHwA2r9AAMA/QsDACAEQaADaiACKQMANwMAIAQgBCkC8AE3A5gDIAQgBCgC1AE2AsgDIARBlAFqIQICQCAEQZgDaiIDKAIAIgVBgICAgHhHBEAgAygCKCEGIAMoAiQhCiADKAIcIQcgAygCGCEJIAMoAhAhCCADKAIMIQsgAygCBCEQIA9FBEAgBQRAIBBBBGsoAgAiA0F4cSITIAVBA3QiBUEEQQggA0EDcSIDG2pJDRIgA0EAIBMgBUEnaksbDRMgEBCiAgsgCwRAIAhBBGsoAgAiA0F4cSIFIAtBAnQiC0EEQQggA0EDcSIDG2pJDRIgA0EAIAUgC0EnaksbDRMgCBCiAgsgCQRAIAdBBGsoAgAiA0F4cSIFIAlBAnQiCUEEQQggA0EDcSIDG2pJDRIgA0EAIAUgCUEnaksbDRMgBxCiAgsgCgRAIAZBBGsoAgAiA0F4cSIFIApBAnQiCkEEQQggA0EDcSIDG2pJDRIgA0EAIAUgCkEnaksbDRMgBhCiAgsgAkGAgICAeDYCAAwCCyACIAY2AiggAiAKNgIkIAIgBzYCHCACIAk2AhggAiAINgIQIAIgCzYCDCACIBA2AgQgAiAFNgIAIAIgAykCLDcCLCACIAMoAiA2AiAgAiADKAIUNgIUIAIgAygCCDYCCAwBCyACQYCAgIB4NgIADAALIAQoApQBQYCAgIB4Rg0KIAQoAsQBIgJBCWsOEAMKCgoKCgoKCgoKCgoKCgQCCyACIApBuOPHABCMBwALIARBAjYCnAMgBEHA5McANgKYAyAEQgI3AqQDIAQgBEGEAWqtQoCAgIAQhDcD2AMgBCAEQTBqrUKAgICAEIQ3A9ADIAQgBEHQA2o2AqADIARBiAFqIgIgBEGYA2oQ7AMgAhCQByECIABBgICAgHg2AgAgACACNgIEDAkLIAJBLUYNAgwHC0EBIRIMBgtBAiESDAULQQMhEgwECyAAQYCAgIB4NgIAIAAgEjYCBAwECyAAQYCAgIB4NgIAIAAgDzYCBAwDCyAEQYCAgIB4NgKUAUEAIRIMAQsgBEEDNgKcAyAEQfjjxwA2ApgDIARCAjcCpAMgBCAGrUKAgICAEIQ3A9gDIAQgAUHYAGqtQoCAgIAQhDcD0AMgBCAEQdADajYCoAMgBEHIAWoiAiAEQZgDahCxBiACEJAHIQIgAEGAgICAeDYCACAAIAI2AgQMAQsgBCABKAKsATYCiAQgBCABKAKwASICNgKEBCAEIAI2AoAEIAQgAiABKAK0AUE4bGo2AowEIARBmANqIQZBACEKIARBgARqIgEoAgwiCSABKAIEIgNrIgJBOG4hBwJAAkACQCACQcj///99Sw0AIAdBBnQiAkH5////B08NAAJAIAJFBEBBCCECQQAhBwwBCyACEHEiAkUNAgsgASgCCCEIIAEoAgAhCyADIAlHBEAgAiEBA0AgA0E0aigCACEQIANBLGooAgAhBQJ/AkACQAJAAkAgA0EwaigCACITQQJrDgUCAwMAAQMLIAVBjNPHAEEFENsHDQJBAAwDCyAFQejSxwBBBhDbBw0BQQEMAgsgBS8AAEHz0AFHDQBBAgwBC0EDCyEOIANBEGr9AAMAIU0gA0EgaikDACFKIAP9AAMAIU4gAUEoaiADQShqKAIANgIAIAFBIGogSjcDACABQRBqIE39CwMAIAEgTv0LAwAgAUE8aiAOOgAAIAFBOGpBADYCACABQTRqIBA2AgAgAUEwaiATNgIAIAFBLGogBTYCACABQUBrIQEgCkEBaiEKIANBOGoiAyAJRw0ACwsgCARAIAtBBGsoAgAiAUF4cSIDIAhBOGwiBUEEQQggAUEDcSIBG2pJDQcgAUEAIAMgBUEnaksbDQggCxCiAgsgBiAKNgIIIAYgAjYCBCAGIAc2AgAMAgtByJXHABD/BwsACyAAQgQ3AnwgAEIANwJ0IABCgICAgMAANwJsIABCBDcCZCAAQgA3AlwgAEKAgICAwAA3AlQgAEIENwJMIABCADcCRCAAQoCAgIDAADcCPCAAQgQ3AjQgAEIANwIsIABCgICAgMAANwIkIABCBDcCHCAAQgA3AhQgAEKAgICAwAA3AgwgAEEIaiAEQaADaigCADYCACAAIAQpApgDNwIAIAAgQzYCuAEgACBFNgLAASAAIEc2AsgBIAAgSTYC0AEgACA8NgLYASAAID02AuABIAAgPjYC6AEgACA/NgLwASAAIEA2AvgBIAAgQTYCgAIgACAlNgKIAiAAICc2ApACIAAgKTYCmAIgACArNgKgAiAAIC02AqgCIAAgLzYCsAIgACAxNgK4AiAAIDM2AsACIAAgNTYCyAIgACA3NgLQAiAAIDk2AtgCIAAgOzYC4AIgAEEANgLoAiAAICM2AuwCIAAgEjYC8AIgACA6OgDkAiAAIDg6ANwCIAAgNjoA1AIgACA0OgDMAiAAIDI6AMQCIAAgMDoAvAIgACAuOgC0AiAAICw6AKwCIAAgKjoApAIgACAoOgCcAiAAICY6AJQCIAAgJDoAjAIgACAhOgCEAiAAICI6APwBIAAgGjoA9AEgACAgOgDsASAAIB46AOQBIAAgHzoA3AEgACBIOgDUASAAIEY6AMwBIAAgRDoAxAEgACBCOgC8ASAAQbQBaiAEQcQBaigCADYCACAAQaQBaiAEQbQBav0AAgD9CwIAIABBlAFqIARBpAFq/QACAP0LAgAgACAE/QAClAH9CwKEASAEQcgAahD7BiAEQRBqEPsGAkAgHCgCKCIAQYCAgIB4RwRAIAAEQCAcKAIsIgFBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIABqSQ0GIAJBACADIABBJ2pLGw0HIAEQogILIBwQvwQLDAALDAILIAQoAnAiAARAIAQoAnQiAkEEaygCACIDQXhxIgVBBEEIIANBA3EiAxsgAGpJDQMgA0EAIAUgAEEnaksbDQQgAhCiAgsgBEHIAGoQvwQgBCgCOCIABEAgBCgCPCICQQRrKAIAIgNBeHEiBUEEQQggA0EDcSIDGyAAakkNAyADQQAgBSAAQSdqSxsNBCACEKICCyAEQRBqEL8EIAEoArABIQIgASgCtAEiEgRAIAIhAANAIABBKGooAgAiAwRAIABBLGooAgAiBUEEaygCACIGQXhxIgpBBEEIIAZBA3EiBhsgA2pJDQUgBkEAIAogA0EnaksbDQYgBRCiAgsgABC/BCAAQThqIQAgEkEBayISDQALCyABKAKsASIARQ0AIAJBBGsoAgAiA0F4cSIFIABBOGwiAEEEQQggA0EDcSIDG2pJDQIgA0EAIAUgAEEnaksbDQMgAhCiAgsgASgCYCIAQYCAgIB4Rg0AIAAEQCABKAJkIgJBBGsoAgAiA0F4cSIFQQRBCCADQQNxIgMbIABqSQ0CIANBACAFIABBJ2pLGw0DIAIQogILIAFBOGoQvwQLIARBkARqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuRLwI3ext/AkACQAJAAkACQAJAAkACQCABQQJLBEAgA0UNASAFRQ0CIAdFDQMgCUUNBCALRQ0FIABB/wEgAi0AAEGFlQFsQQh2IkUgBi0AACJEIAQtAAAiSEEMbGogREEDbGpBCGpBBHYiS0GaggJsQQh2akGVigFrQQZ1IkZBACBGQQBKGyJGIEZB/wFOGzoAAiAAQf8BIEUgCi0AACJGIAgtAAAiUUEMbGogRkEDbGpBCGpBBHYiTkGlzAFsQQh2akGa7wBrQQZ1IkNBACBDQQBKGyJDIENB/wFOGzoAACAAQf8BIEUgS0GTMmxBCHYgTkGI6ABsQQh2amtBhMQAakEGdSJFQQAgRUEAShsiRSBFQf8BThs6AAEgAkEBaiFLIANBAWsiA0F+cSFVIABBA2ohRSADQQFxIVsgAUEDayIBIAFBBnAiWGsiTkEGSQ0IIANBAXYiAyIBIE5BBmsiT0EGbiJDIAEgQ0kbIgEgC0EBayJHIkMgASBDSRsiASAJQQFrIkkiQyABIENJGyIBIAdBAWsiTCJDIAEgQ0kbIgEgBUEBayJQIkMgASBDSRsiQ0EQSQ0GIEUgAiADIgEgT0EGbiIDIAEgA0kbIgEgRyIDIAEgA0kbIgEgSSIDIAEgA0kbIgEgTCIDIAEgA0kbIgEgUCIDIAEgA0kbIgFBAXRqQQNqSSBLIAAgAUEGbGpBCWoiAElxDQYgRSAEIAFBAmoiAWpJIARBAWoiRyAASXEgRSABIAZqSSAAIAZLcXIgRSABIAhqSSAIQQFqIkwgAElxIEUgASAKakkgACAKS3Fycg0GIENBAWoiAEEPcSIBQRAgARsiASBDQX9zaiFKIAogACABayIAaiFZIAsgAGshQyAJIABrIU8gACAIaiFJIAcgAGshUCAAIAZqIVogBSAAayFSIAAgBGohUyBLIABBAXQiAWohAyBVIAFrIVQgRSAAQQZsaiECIE4gAEF6bGohViBI/Q8hFiBE/Q8hEyBR/Q8hFSBG/Q8hDCAGIUYgCiFIIEUhACBLIQEDQCAAIAH9AAAAIh8gFf0NAAIEBgAAAAAAAAAAAAAAAP2JAf2pAf0MhUoAAIVKAACFSgAAhUoAACIU/bUBQQj9rQEiKiAVIEz9AAAAIhX9DQ8QERITFBUWFxgZGhscHR79iQH9qQEiJf0MCQAAAAkAAAAJAAAACQAAACIN/bUBIEhBAWr9AAAAIhn9iQH9qQEiJv2uASAMIBn9DQ8QERITFBUWFxgZGhscHR79iQH9qQEgFf2JAf2pASIn/a4B/QwDAAAAAwAAAAMAAAADAAAAIg/9tQH9rgH9DAgAAAAIAAAACAAAAAgAAAAiEP2uAUEE/a0BIhj9DCVmAAAlZgAAJWYAACVmAAAiGv21AUEI/a0B/a4B/QxmyP//Zsj//2bI//9myP//Ihv9rgFBBv2sAf0MAAAAAAAAAAAAAAAAAAAAACIM/bgB/Qz/AAAA/wAAAP8AAAD/AAAAIg79tgEgHyAM/Q0ICgwOAAAAAAAAAAAAAAAA/YkB/akBIBT9tQFBCP2tASIrIBUgDP0NAwQFBgAAAAAAAAAAAAAAAP2JAf2pASItIA39tQEgGSAM/Q0EBQYHAAAAAAAAAAAAAAAA/YkB/akBIi79rgEgGSAM/Q0DBAUGAAAAAAAAAAAAAAAA/YkB/akBIBUgDP0NBAUGBwAAAAAAAAAAAAAAAP2JAf2pASIv/a4BIA/9tQH9rgEgEP2uAUEE/a0BIhEgGv21AUEI/a0B/a4BIBv9rgFBBv2sASAM/bgBIA79tgH9DQAECAwQFBgcAAAAAAAAAAAgAf0AABAiICAM/Q0AAgQGAAAAAAAAAAAAAAAA/YkB/akBIBT9tQFBCP2tASIsIBUgDP0NBwgJCgAAAAAAAAAAAAAAAP2JAf2pASIwIA39tQEgGSAM/Q0ICQoLAAAAAAAAAAAAAAAA/YkB/akBIjH9rgEgGSAM/Q0HCAkKAAAAAAAAAAAAAAAA/YkB/akBIBUgDP0NCAkKCwAAAAAAAAAAAAAAAP2JAf2pASIy/a4BIA/9tQH9rgEgEP2uAUEE/a0BIhwgGv21AUEI/a0B/a4BIBv9rgFBBv2sASAM/bgBIA79tgEiEv0bAP0XCCAS/RsB/RcJIBL9GwL9FwogEv0bA/0XCyAgIAz9DQgKDA4AAAAAAAAAAAAAAAD9iQH9qQEgFP21AUEI/a0BIhcgFSAM/Q0LDA0OAAAAAAAAAAAAAAAA/YkB/akBIiEgDf21ASAZIAz9DQwNDg8AAAAAAAAAAAAAAAD9iQH9qQEiI/2uASAZIAz9DQsMDQ4AAAAAAAAAAAAAAAD9iQH9qQEgFSAM/Q0MDQ4PAAAAAAAAAAAAAAAA/YkB/akBIh39rgEgD/21Af2uASAQ/a4BQQT9rQEiJCAa/bUBQQj9rQH9rgEgG/2uAUEG/awBIAz9uAEgDv22ASIS/RsA/RcMIBL9GwH9Fw0gEv0bAv0XDiAS/RsD/RcPIiIgKiAWIEf9AAAAIhb9DQ8QERITFBUWFxgZGhscHR79iQH9qQEiKCAN/bUBIEZBAWr9AAAAIhL9iQH9qQEiM/2uASATIBL9DQ8QERITFBUWFxgZGhscHR79iQH9qQEgFv2JAf2pASI0/a4BIA/9tQH9rgEgEP2uAUEE/a0BIjX9DBMZAAATGQAAExkAABMZAAAiE/21AUEI/a0BIBj9DAg0AAAINAAACDQAAAg0AAAiGP21AUEI/a0B/a4B/bEB/QwEIgAABCIAAAQiAAAEIgAAIh79rgFBBv2sASAM/bgBIA79tgEgKyAWIAz9DQMEBQYAAAAAAAAAAAAAAAD9iQH9qQEiNiAN/bUBIBIgDP0NBAUGBwAAAAAAAAAAAAAAAP2JAf2pASI3/a4BIBIgDP0NAwQFBgAAAAAAAAAAAAAAAP2JAf2pASAWIAz9DQQFBgcAAAAAAAAAAAAAAAD9iQH9qQEiOP2uASAP/bUB/a4BIBD9rgFBBP2tASI5IBP9tQFBCP2tASARIBj9tQFBCP2tAf2uAf2xASAe/a4BQQb9rAEgDP24ASAO/bYB/Q0ABAgMEBQYHAAAAAAAAAAAICwgFiAM/Q0HCAkKAAAAAAAAAAAAAAAA/YkB/akBIjogDf21ASASIAz9DQgJCgsAAAAAAAAAAAAAAAD9iQH9qQEiO/2uASASIAz9DQcICQoAAAAAAAAAAAAAAAD9iQH9qQEgFiAM/Q0ICQoLAAAAAAAAAAAAAAAA/YkB/akBIjz9rgEgD/21Af2uASAQ/a4BQQT9rQEiPSAT/bUBQQj9rQEgHCAY/bUBQQj9rQH9rgH9sQEgHv2uAUEG/awBIAz9uAEgDv22ASIR/RsA/RcIIBH9GwH9FwkgEf0bAv0XCiAR/RsD/RcLIBcgFiAM/Q0LDA0OAAAAAAAAAAAAAAAA/YkB/akBIj4gDf21ASASIAz9DQwNDg8AAAAAAAAAAAAAAAD9iQH9qQEiP/2uASASIAz9DQsMDQ4AAAAAAAAAAAAAAAD9iQH9qQEgFiAM/Q0MDQ4PAAAAAAAAAAAAAAAA/YkB/akBIkD9rgEgD/21Af2uASAQ/a4BQQT9rQEiKSAT/bUBQQj9rQEgJCAY/bUBQQj9rQH9rgH9sQEgHv2uAUEG/awBIAz9uAEgDv22ASIR/RsA/RcMIBH9GwH9Fw0gEf0bAv0XDiAR/RsD/RcPIhz9DQAAAAAOHgAAAAAPHwAAAAAgFyAp/QwagQAAGoEAABqBAAAagQAAIhH9tQFBCP2tAf2uAf0M67r//+u6///ruv//67r//yIX/a4BQQb9rAEgDP24ASAO/bYBIikgICAM/Q0JCw0PAAAAAAAAAAAAAAAA/YkB/akBIBT9tQFBCP2tASIkIB0gDf21ASBI/QAAACIdIAz9DQwNDg8AAAAAAAAAAAAAAAD9iQH9qQH9rgEgIyAh/a4BIA/9tQH9rgEgEP2uAUEE/a0BIkEgGv21AUEI/a0B/a4BIBv9rgFBBv2sASAM/bgBIA79tgEiQv0NBBQAAAAACBgAAAAADBwAAP0NEBEAAAQFFhcAAAoLHB0AACAfIAz9DQEDBQcAAAAAAAAAAAAAAAD9iQH9qQEgFP21AUEI/a0BIiMgNCAN/bUBIEb9AAAAIiH9iQH9qQH9rgEgMyAo/a4BIA/9tQH9rgEgEP2uAUEE/a0BIiggE/21AUEI/a0BICcgDf21ASAd/YkB/akB/a4BICYgJf2uASAP/bUB/a4BIBD9rgFBBP2tASIlIBj9tQFBCP2tAf2uAf2xASAe/a4BQQb9rAEgDP24ASAO/bYBIB8gDP0NCQsNDwAAAAAAAAAAAAAAAP2JAf2pASAU/bUBQQj9rQEiHyA4IA39tQEgISAM/Q0EBQYHAAAAAAAAAAAAAAAA/YkB/akB/a4BIDcgNv2uASAP/bUB/a4BIBD9rgFBBP2tASImIBP9tQFBCP2tASAvIA39tQEgHSAM/Q0EBQYHAAAAAAAAAAAAAAAA/YkB/akB/a4BIC4gLf2uASAP/bUB/a4BIBD9rgFBBP2tASInIBj9tQFBCP2tAf2uAf2xASAe/a4BQQb9rAEgDP24ASAO/bYB/YYBICAgDP0NAQMFBwAAAAAAAAAAAAAAAP2JAf2pASAU/bUBQQj9rQEiFCA8IA39tQEgISAM/Q0ICQoLAAAAAAAAAAAAAAAA/YkB/akB/a4BIDsgOv2uASAP/bUB/a4BIBD9rgFBBP2tASIgIBP9tQFBCP2tASAyIA39tQEgHSAM/Q0ICQoLAAAAAAAAAAAAAAAA/YkB/akB/a4BIDEgMP2uASAP/bUB/a4BIBD9rgFBBP2tASIdIBj9tQFBCP2tAf2uAf2xASAe/a4BQQb9rAEgDP24ASAO/bYBICQgQCAN/bUBICEgDP0NDA0ODwAAAAAAAAAAAAAAAP2JAf2pAf2uASA/ID79rgEgD/21Af2uASAQ/a4BQQT9rQEiDSAT/bUBQQj9rQEgQSAY/bUBQQj9rQH9rgH9sQEgHv2uAUEG/awBIAz9uAEgDv22Af2GAf1mIhP9DQABHQAEBQYHHgAKCwwNHwAgIyAoIBH9tQFBCP2tAf2uASAX/a4BQQb9rAEgDP24ASAO/bYBIB8gJiAR/bUBQQj9rQH9rgEgF/2uAUEG/awBIAz9uAEgDv22Af2GASAUICAgEf21AUEI/a0B/a4BIBf9rgFBBv2sASAM/bgBIA79tgEgJCANIBH9tQFBCP2tAf2uASAX/a4BQQb9rAEgDP24ASAO/bYB/YYB/WYiDf0NAAECHQQFBgcIHgoLDA0OH/0LAFAgACAiIBz9DQAACxsAAAAADBwAAAAADR0gLCA9IBH9tQFBCP2tAf2uASAX/a4BQQb9rAEgDP24ASAO/bYBIg8gFCAdIBr9tQFBCP2tAf2uASAb/a4BQQb9rAEgDP24ASAO/bYBIhD9DQAAAAAMHAAAAAAAAAAAAAAgKf0bAP0XCiBC/RsA/RcL/Q0AAAIDFBUAAAgJGhsAAA4PIBP9DRoAAgMEBRsACAkKCxwADg8gDf0NABoCAwQFBhsICQoLDBwOD/0LAEAgACAiIBz9DQgYAAAAAAkZAAAAAAoaAAAgDyAQ/Q0AAAAQAAAAAAQUAAAAAAgY/Q0AARITAAAGBxgZAAAMDR4fIBP9DQABAgMYAAYHCAkZAAwNDg8gDf0NAAECAwQYBgcICQoZDA0OD/0LADAgACAiIBz9DQAAAAAGFgAAAAAHFwAAAAAgKyA5IBH9tQFBCP2tAf2uASAX/a4BQQb9rAEgDP24ASAO/bYBIg8gHyAnIBr9tQFBCP2tAf2uASAb/a4BQQb9rAEgDP24ASAO/bYBIhD9DQQUAAAAAAgYAAAAAAwcAAD9DRARAAAEBRYXAAAKCxwdAAAgE/0NAAEVAAQFBgcWAAoLDA0XACAN/Q0AAQIVBAUGBwgWCgsMDQ4X/QsAICAAICIgHP0NAAADEwAAAAAEFAAAAAAFFSAqIDUgEf21AUEI/a0B/a4BIBf9rgFBBv2sASAM/bgBIA79tgEiFCAjICUgGv21AUEI/a0B/a4BIBv9rgFBBv2sASAM/bgBIA79tgEiDP0NAAAAAAwcAAAAAAAAAAAAACAP/RsA/RcKIBD9GwD9Fwv9DQAAAgMUFQAACAkaGwAADg8gE/0NEgACAwQFEwAICQoLFAAODyAN/Q0AEgIDBAUGEwgJCgsMFA4P/QsAECAAICIgHP0NABAAAAAAAREAAAAAAhIAACAUIAz9DQAAABAAAAAABBQAAAAACBj9DQABEhMAAAYHGBkAAAwNHh8gE/0NAAECAxAABgcICREADA0ODyAN/Q0AAQIDBBAGBwgJChEMDQ4P/QsAACBGQRBqIUYgSEEQaiFIIABB4ABqIQAgAUEgaiEBIEdBEGohRyBMQRBqIUwgGSEMIBIhEyBKQRBqIkoNAAsgFv0WDyFIIBL9Fg8hRCAV/RYPIVEgDP0WDyFGDAcLQQBBAyABQYjsxAAQ6gcAC0EAQQBBmOzEABCMBwALQQBBAEGo7MQAEIwHAAtBAEEAQbjsxAAQjAcAC0EAQQBByOzEABCMBwALQQBBAEHY7MQAEIwHAAsgBCFTIAUhUiAGIVogByFQIAghSSAJIU8gCyFDIAohWSBOIVYgRSECIFUhVCBLIQMLIElBAWohTCBTQQFqIVNBACEAA0AgVEUgUkECSXIgUEECSSBPQQJJcnIgQ0EBTXINASACQQJqQf8BIAMtAABBhZUBbEEIdiJJIAAgWmoiR0EBai0AACIBIEhB/wFxIkpBCWxqIAAgU2otAAAiSCBEQf8BcWpBA2xqQQhqQQR2IkRBmoICbEEIdmpBlYoBa0EGdSJNQQAgTUEAShsiTSBNQf8BThs6AAAgRkH/AXEhTSACQf8BIEkgACBZaiJcQQFqLQAAIkYgUUH/AXEiXUEJbGogTSAAIExqLQAAIlFqQQNsakEIakEEdiJNQaXMAWxBCHZqQZrvAGtBBnUiV0EAIFdBAEobIlcgV0H/AU4bOgAAIAJBAWpB/wEgSSBEQZMybEEIdiBNQYjoAGxBCHZqa0GExABqQQZ1IkRBACBEQQBKGyJEIERB/wFOGzoAACACQQVqQf8BIANBAWotAABBhZUBbEEIdiJEIEctAAAgSEEJbGogASBKakEDbGpBCGpBBHYiSUGaggJsQQh2akGVigFrQQZ1IkdBACBHQQBKGyJHIEdB/wFOGzoAACACQQNqQf8BIEQgXC0AACBRQQlsaiBGIF1qQQNsakEIakEEdiJHQaXMAWxBCHZqQZrvAGtBBnUiSkEAIEpBAEobIkogSkH/AU4bOgAAIAJBBGpB/wEgRCBJQZMybEEIdiBHQYjoAGxBCHZqa0GExABqQQZ1IkRBACBEQQBKGyJEIERB/wFOGzoAACADQQJqIQMgVEECayFUIFJBAWshUiAAQQFqIQAgQ0EBayFDIE9BAWshTyBQQQFrIVAgASFEIAJBBmohAiBWQQZrIlZBBk8NAAsLAkACQAJAAkACQCBbBEAgBCAFakEBayICRQ0BIAYgB2pBAWsiA0UNAiAIIAlqQQFrIgBFDQMgCiALakEBayIERQ0EIFhBAk0NBSAALQAAIQUgRSBOaiIAQf8BIEsgVWotAABBhZUBbEEIdiIBIAMtAAAiAyACLQAAQQxsaiADQQNsakEIakEEdiICQZqCAmxBCHZqQZWKAWtBBnUiA0EAIANBAEobIgMgA0H/AU4bOgACIABB/wEgASAELQAAIgMgBUEMbGogA0EDbGpBCGpBBHYiA0GlzAFsQQh2akGa7wBrQQZ1IgRBACAEQQBKGyIEIARB/wFOGzoAACAAQf8BIAEgAkGTMmxBCHYgA0GI6ABsQQh2amtBhMQAakEGdSIAQQAgAEEAShsiACAAQf8BThs6AAELDwtB6OzEABDdCQALQfjsxAAQ3QkAC0GI7cQAEN0JAAtBmO3EABDdCQALQQBBAyBYQajtxAAQ6gcAC6MfARR/An8CQCACIANLBEAgASADQSpsaiIDLwEAIgJB//8BcUUEQCACQRB0DAMLIAJB/wdxIQEgAkGAgAJxIQUgAkGA+AFxIgJBgPgBRgRAIAVBEHQhAiACQYCAgPwHciABRQ0DGiACIAFBDXRyQYCAgP4HcgwDCyAFQRB0IQUgAkUNASACQQ10QYCAgPwAcSABQQ10ckGAgIDAA2ogBXIMAgsgAyACQZTBxwAQjAcACyAFQYCAgNgDciABZ0EQayICQRd0ayABIAJB//8DcUEIanRB////A3FyCyEBAn8gAy8BAiIFQf//AXFFBEAgBUEQdAwBCyAFQf8HcSECIAVBgIACcSEGIAVBgPgBcSIFQYD4AUYEQCAGQRB0IQUgBUGAgID8B3IgAkUNARogBSACQQ10ckGAgID+B3IMAQsgBkEQdCEGIAVBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAGciAFDQAaIAZBgICA2ANyIAJnQRBrIgVBF3RrIAIgBUH//wNxQQhqdEH///8DcXILIQUCfyADLwEEIgZB//8BcUUEQCAGQRB0DAELIAZB/wdxIQIgBkGAgAJxIQcgBkGA+AFxIgZBgPgBRgRAIAdBEHQhBiAGQYCAgPwHciACRQ0BGiAGIAJBDXRyQYCAgP4HcgwBCyAHQRB0IQcgBkENdEGAgID8AHEgAkENdHJBgICAwANqIAdyIAYNABogB0GAgIDYA3IgAmdBEGsiBkEXdGsgAiAGQf//A3FBCGp0Qf///wNxcgshBgJ/IAMvAQYiB0H//wFxRQRAIAdBEHQMAQsgB0H/B3EhAiAHQYCAAnEhCCAHQYD4AXEiB0GA+AFGBEAgCEEQdCEHIAdBgICA/AdyIAJFDQEaIAcgAkENdHJBgICA/gdyDAELIAhBEHQhCCAHQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogCHIgBw0AGiAIQYCAgNgDciACZ0EQayIHQRd0ayACIAdB//8DcUEIanRB////A3FyCyEHAn8gAy8BCCIIQf//AXFFBEAgCEEQdAwBCyAIQf8HcSECIAhBgIACcSEJIAhBgPgBcSIIQYD4AUYEQCAJQRB0IQggCEGAgID8B3IgAkUNARogCCACQQ10ckGAgID+B3IMAQsgCUEQdCEJIAhBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAJciAIDQAaIAlBgICA2ANyIAJnQRBrIghBF3RrIAIgCEH//wNxQQhqdEH///8DcXILIQgCfyADLwEKIglB//8BcUUEQCAJQRB0DAELIAlB/wdxIQIgCUGAgAJxIQogCUGA+AFxIglBgPgBRgRAIApBEHQhCSAJQYCAgPwHciACRQ0BGiAJIAJBDXRyQYCAgP4HcgwBCyAKQRB0IQogCUENdEGAgID8AHEgAkENdHJBgICAwANqIApyIAkNABogCkGAgIDYA3IgAmdBEGsiCUEXdGsgAiAJQf//A3FBCGp0Qf///wNxcgshCQJ/IAMvAQwiCkH//wFxRQRAIApBEHQMAQsgCkH/B3EhAiAKQYCAAnEhCyAKQYD4AXEiCkGA+AFGBEAgC0EQdCEKIApBgICA/AdyIAJFDQEaIAogAkENdHJBgICA/gdyDAELIAtBEHQhCyAKQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogC3IgCg0AGiALQYCAgNgDciACZ0EQayIKQRd0ayACIApB//8DcUEIanRB////A3FyCyEKAn8gAy8BDiILQf//AXFFBEAgC0EQdAwBCyALQf8HcSECIAtBgIACcSEMIAtBgPgBcSILQYD4AUYEQCAMQRB0IQsgC0GAgID8B3IgAkUNARogCyACQQ10ckGAgID+B3IMAQsgDEEQdCEMIAtBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAMciALDQAaIAxBgICA2ANyIAJnQRBrIgtBF3RrIAIgC0H//wNxQQhqdEH///8DcXILIQsCfyADLwEQIgxB//8BcUUEQCAMQRB0DAELIAxB/wdxIQIgDEGAgAJxIQ0gDEGA+AFxIgxBgPgBRgRAIA1BEHQhDCAMQYCAgPwHciACRQ0BGiAMIAJBDXRyQYCAgP4HcgwBCyANQRB0IQ0gDEENdEGAgID8AHEgAkENdHJBgICAwANqIA1yIAwNABogDUGAgIDYA3IgAmdBEGsiDEEXdGsgAiAMQf//A3FBCGp0Qf///wNxcgshDAJ/IAMvARIiDUH//wFxRQRAIA1BEHQMAQsgDUH/B3EhAiANQYCAAnEhDiANQYD4AXEiDUGA+AFGBEAgDkEQdCENIA1BgICA/AdyIAJFDQEaIA0gAkENdHJBgICA/gdyDAELIA5BEHQhDiANQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogDnIgDQ0AGiAOQYCAgNgDciACZ0EQayINQRd0ayACIA1B//8DcUEIanRB////A3FyCyENAn8gAy8BFCIOQf//AXFFBEAgDkEQdAwBCyAOQf8HcSECIA5BgIACcSEPIA5BgPgBcSIOQYD4AUYEQCAPQRB0IQ4gDkGAgID8B3IgAkUNARogDiACQQ10ckGAgID+B3IMAQsgD0EQdCEPIA5BDXRBgICA/ABxIAJBDXRyQYCAgMADaiAPciAODQAaIA9BgICA2ANyIAJnQRBrIg5BF3RrIAIgDkH//wNxQQhqdEH///8DcXILIQ4CfyADLwEWIg9B//8BcUUEQCAPQRB0DAELIA9B/wdxIQIgD0GAgAJxIRAgD0GA+AFxIg9BgPgBRgRAIBBBEHQhDyAPQYCAgPwHciACRQ0BGiAPIAJBDXRyQYCAgP4HcgwBCyAQQRB0IRAgD0ENdEGAgID8AHEgAkENdHJBgICAwANqIBByIA8NABogEEGAgIDYA3IgAmdBEGsiD0EXdGsgAiAPQf//A3FBCGp0Qf///wNxcgshDwJ/IAMvARgiEEH//wFxRQRAIBBBEHQMAQsgEEH/B3EhAiAQQYCAAnEhESAQQYD4AXEiEEGA+AFGBEAgEUEQdCEQIBBBgICA/AdyIAJFDQEaIBAgAkENdHJBgICA/gdyDAELIBFBEHQhESAQQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogEXIgEA0AGiARQYCAgNgDciACZ0EQayIQQRd0ayACIBBB//8DcUEIanRB////A3FyCyEQAn8gAy8BGiIRQf//AXFFBEAgEUEQdAwBCyARQf8HcSECIBFBgIACcSESIBFBgPgBcSIRQYD4AUYEQCASQRB0IREgEUGAgID8B3IgAkUNARogESACQQ10ckGAgID+B3IMAQsgEkEQdCESIBFBDXRBgICA/ABxIAJBDXRyQYCAgMADaiASciARDQAaIBJBgICA2ANyIAJnQRBrIhFBF3RrIAIgEUH//wNxQQhqdEH///8DcXILIRECfyADLwEcIhJB//8BcUUEQCASQRB0DAELIBJB/wdxIQIgEkGAgAJxIRMgEkGA+AFxIhJBgPgBRgRAIBNBEHQhEiASQYCAgPwHciACRQ0BGiASIAJBDXRyQYCAgP4HcgwBCyATQRB0IRMgEkENdEGAgID8AHEgAkENdHJBgICAwANqIBNyIBINABogE0GAgIDYA3IgAmdBEGsiEkEXdGsgAiASQf//A3FBCGp0Qf///wNxcgshEgJ/IAMvAR4iE0H//wFxRQRAIBNBEHQMAQsgE0H/B3EhAiATQYCAAnEhFCATQYD4AXEiE0GA+AFGBEAgFEEQdCETIBNBgICA/AdyIAJFDQEaIBMgAkENdHJBgICA/gdyDAELIBRBEHQhFCATQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogFHIgEw0AGiAUQYCAgNgDciACZ0EQayITQRd0ayACIBNB//8DcUEIanRB////A3FyCyETAn8gAy8BICIUQf//AXFFBEAgFEEQdAwBCyAUQf8HcSECIBRBgIACcSEVIBRBgPgBcSIUQYD4AUYEQCAVQRB0IRQgFEGAgID8B3IgAkUNARogFCACQQ10ckGAgID+B3IMAQsgFUEQdCEVIBRBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAVciAUDQAaIBVBgICA2ANyIAJnQRBrIhRBF3RrIAIgFEH//wNxQQhqdEH///8DcXILIRQCfyADLwEiIhVB//8BcUUEQCAVQRB0DAELIBVB/wdxIQIgFUGAgAJxIRYgFUGA+AFxIhVBgPgBRgRAIBZBEHQhFSAVQYCAgPwHciACRQ0BGiAVIAJBDXRyQYCAgP4HcgwBCyAWQRB0IRYgFUENdEGAgID8AHEgAkENdHJBgICAwANqIBZyIBUNABogFkGAgIDYA3IgAmdBEGsiFUEXdGsgAiAVQf//A3FBCGp0Qf///wNxcgshFQJ/IAMvASQiFkH//wFxRQRAIBZBEHQMAQsgFkH/B3EhAiAWQYCAAnEhBCAWQYD4AXEiFkGA+AFGBEAgBEEQdCEWIBZBgICA/AdyIAJFDQEaIBYgAkENdHJBgICA/gdyDAELIARBEHQhBCAWQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBHIgFg0AGiAEQYCAgNgDciACZ0EQayIWQRd0ayACIBZB//8DcUEIanRB////A3FyCyEWAn8gAy8BJiIEQf//AXFFBEAgBEEQdAwBCyAEQf8HcSECIARBgIACcSEXIARBgPgBcSIEQYD4AUYEQCAXQRB0IQQgBEGAgID8B3IgAkUNARogBCACQQ10ckGAgID+B3IMAQsgF0EQdCEXIARBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAXciAEDQAaIBdBgICA2ANyIAJnQRBrIgRBF3RrIAIgBEH//wNxQQhqdEH///8DcXILIQIgAAJ/IAMvASgiBEH//wFxRQRAIARBEHQMAQsgBEH/B3EhAyAEQYCAAnEhFyAEQYD4AXEiBEGA+AFGBEAgF0EQdCEEIARBgICA/AdyIANFDQEaIAQgA0ENdHJBgICA/gdyDAELIBdBEHQhFyAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogF3IgBA0AGiAXQYCAgNgDciADZ0EQayIEQRd0ayADIARB//8DcUEIanRB////A3FyCzYCUCAAIAI2AkwgACAWNgJIIAAgFTYCRCAAIBQ2AkAgACATNgI8IAAgEjYCOCAAIBE2AjQgACAQNgIwIAAgDzYCLCAAIA42AiggACANNgIkIAAgDDYCICAAIAs2AhwgACAKNgIYIAAgCTYCFCAAIAg2AhAgACAHNgIMIAAgBjYCCCAAIAU2AgQgACABNgIAC90eAg5/B30CQAJAAn8CQCAAKAIEIgMgAigCCCIHSQRAIAAoAgAhBSACKAIEIgogA0EYbGoiBC0AEyIDIAQtABIiBiAELQARIg0gBiANSxsiBiADIAZLGyIDBH1DAABAwSACKgJEIAItAFhBAkYiBhsiEUMAABBBIAIqAkggBhsgEZNDAAB+Q5UgA0EBa0H/AXGzlJIQiQQiESARkgVDAAAAAAshFiAEQQxqLwEAIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQQgA0GAgAJxIQYgA0GA+AFxIgNBgPgBRgRAIAZBEHQiA0GAgID8B3IgBEUNAxogAyAEQQ10ckGAgID+B3IMAwsgBkEQdCEGIANFDQEgA0ENdEGAgID8AHEgBEENdHJBgICAwANqIAZyDAILDAILIAQgBGdBEGsiBEH//wNxQQhqdEH///8DcSAGQYCAgNgDciAEQRd0a3ILQwAAgD8hEb4iEkMAAIA/XgRAIBIQxgVDVPgtQJRDAACAP5KRIRELQwAAgD8hEwJ/AkAgBSAHSQRAIAogBUEYbGoiBC0AEyIDIAQtABIiBSAELQARIgYgBSAGSxsiBSADIAVLGyIDBH1DAABAwSACKgJEIAItAFhBAkYiBRsiEkMAABBBIAIqAkggBRsgEpNDAAB+Q5UgA0EBa0H/AXGzlJIQiQQiEiASkgVDAAAAAAshFyAEQQxqLwEAIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQQgA0GAgAJxIQUgA0GA+AFxIgNBgPgBRgRAIAVBEHQiA0GAgID8B3IgBEUNAxogAyAEQQ10ckGAgID+B3IMAwsgBUEQdCEFIANFDQEgA0ENdEGAgID8AHEgBEENdHJBgICAwANqIAVyDAILIAUgB0Hcu8cAEIwHAAsgBCAEZ0EQayIEQf//A3FBCGp0Qf///wNxIAVBgICA2ANyIARBF3Rrcgu+IhJDAACAP14EQCASEMYFQ1T4LUCUQwAAgD+SkSETC0MAAIA/IRICfwJAIAcgACgCDCIDSwRAIAAoAgghBSAKIANBGGxqIgQtABMiAyAELQASIgYgBC0AESINIAYgDUsbIgYgAyAGSxsiAwR9QwAAQMEgAioCRCACLQBYQQJGIgYbIhRDAAAQQSACKgJIIAYbIBSTQwAAfkOVIANBAWtB/wFxs5SSEIkEIhQgFJIFQwAAAAALIRQgBEEMai8BACIDQf//AXFFBEAgA0EQdAwDCyADQf8HcSEEIANBgIACcSEGIANBgPgBcSIDQYD4AUYEQCAGQRB0IgNBgICA/AdyIARFDQMaIAMgBEENdHJBgICA/gdyDAMLIAZBEHQhBiADRQ0BIANBDXRBgICA/ABxIARBDXRyQYCAgMADaiAGcgwCCwwCCyAEIARnQRBrIgRB//8DcUEIanRB////A3EgBkGAgIDYA3IgBEEXdGtyC74iFUMAAIA/XgRAIBUQxgVDVPgtQJRDAACAP5KRIRILAn8CQCAFIAdJBEAgCiAFQRhsaiIELQATIgMgBC0AEiIFIAQtABEiBiAFIAZLGyIFIAMgBUsbIgMEfUMAAEDBIAIqAkQgAi0AWEECRiIFGyIVQwAAEEEgAioCSCAFGyAVk0MAAH5DlSADQQFrQf8BcbOUkhCJBCIVIBWSBUMAAAAACyEVIARBDGovAQAiA0H//wFxRQRAIANBEHQMAwsgA0H/B3EhBCADQYCAAnEhBSADQYD4AXEiA0GA+AFGBEAgBUEQdCIDQYCAgPwHciAERQ0DGiADIARBDXRyQYCAgP4HcgwDCyAFQRB0IQUgA0UNASADQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogBXIMAgsgBSAHQdy7xwAQjAcACyAEIARnQRBrIgRB//8DcUEIanRB////A3EgBUGAgIDYA3IgBEEXdGtyCyEEAn8CQCAHIABBDEEIIBQgEpQiEiASWyASIBUgBL4iFEMAAIA/XgR9IBQQxgVDVPgtQJRDAACAP5KRBUMAAIA/C5RgRXEiCBtqIgYoAgAiA0sEQCAAIBYgEZQiESARWyARIBcgE5RgRXEiDEECdGoiDSgCACEEIAogA0EYbGoiAy0AEyIFIAMtABIiCSADLQARIg4gCSAOSxsiCSAFIAlLGyIFBH1DAABAwSACKgJEIAItAFhBAkYiCRsiEUMAABBBIAIqAkggCRsgEZNDAAB+Q5UgBUEBa0H/AXGzlJIQiQQiESARkgVDAAAAAAshFiADQQxqLwEAIgVB//8BcUUEQCAFQRB0DAMLIAVB/wdxIQMgBUGAgAJxIQkgBUGA+AFxIgVBgPgBRgRAIAlBEHQiBUGAgID8B3IgA0UNAxogBSADQQ10ckGAgID+B3IMAwsgCUEQdCEJIAVFDQEgBUENdEGAgID8AHEgA0ENdHJBgICAwANqIAlyDAILDAILIAMgA2dBEGsiA0H//wNxQQhqdEH///8DcSAJQYCAgNgDciADQRd0a3ILQwAAgD8hEr4iEUMAAIA/XgRAIBEQxgVDVPgtQJRDAACAP5KRIRILAn8CQCAEIAdJBEAgCiAEQRhsaiIELQATIgMgBC0AEiIFIAQtABEiCSAFIAlLGyIFIAMgBUsbIgMEfUMAAEDBIAIqAkQgAi0AWEECRiIFGyIRQwAAEEEgAioCSCAFGyARk0MAAH5DlSADQQFrQf8BcbOUkhCJBCIRIBGSBUMAAAAACyEXQQhBDCAIGyEJIARBDGovAQAiA0H//wFxRQRAIANBEHQMAwsgA0H/B3EhBCADQYCAAnEhBSADQYD4AXEiA0GA+AFGBEAgBUEQdCIDQYCAgPwHciAERQ0DGiADIARBDXRyQYCAgP4HcgwDCyAFQRB0IQUgA0UNASADQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogBXIMAgsMAwsgBCAEZ0EQayIEQf//A3FBCGp0Qf///wNxIAVBgICA2ANyIARBF3RrcgtDAACAPyERviITQwAAgD9eBEAgExDGBUNU+C1AlEMAAIA/kpEhEQsCfwJAIAcgACAJaiIJKAIAIgNLBEAgACAMRUECdGoiBSgCACEEIAogA0EYbGoiAC0AEyIDIAAtABIiCCAALQARIgwgCCAMSxsiCCADIAhLGyIDBH1DAABAwSACKgJEIAItAFhBAkYiCBsiE0MAABBBIAIqAkggCBsgE5NDAAB+Q5UgA0EBa0H/AXGzlJIQiQQiEyATkgVDAAAAAAshFCAAQQxqLwEAIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQAgA0GAgAJxIQggA0GA+AFxIgNBgPgBRgRAIAhBEHQiA0GAgID8B3IgAEUNAxogAyAAQQ10ckGAgID+B3IMAwsgCEEQdCEIIANFDQEgA0ENdEGAgID8AHEgAEENdHJBgICAwANqIAhyDAILDAILIAAgAGdBEGsiAEH//wNxQQhqdEH///8DcSAIQYCAgNgDciAAQRd0a3ILQwAAgD8hE74iFUMAAIA/XgRAIBUQxgVDVPgtQJRDAACAP5KRIRMLAn8CQCAEIAdJBEAgFiASlCISIBcgEZRgIAogBEEYbGoiAC0AEyIEIAAtABIiCCAALQARIgwgCCAMSxsiCCAEIAhLGyIEBH1DAABAwSACKgJEIAItAFhBAkYiCBsiEUMAABBBIAIqAkggCBsgEZNDAAB+Q5UgBEEBa0H/AXGzlJIQiQQiESARkgVDAAAAAAshFkUhCCASIBJbIQwgAEEMai8BACIEQf//AXFFBEAgBEEQdAwDCyAEQf8HcSEAIARBgIACcSEDIARBgPgBcSIEQYD4AUYEQCADQRB0IgRBgICA/AdyIABFDQMaIAQgAEENdHJBgICA/gdyDAMLIANBEHQhAyAERQ0BIARBDXRBgICA/ABxIABBDXRyQYCAgMADaiADcgwCCwwDCyAAIABnQRBrIgBB//8DcUEIanRB////A3EgA0GAgIDYA3IgAEEXdGtyCyEAQwAAgD8hEgJ/AkAgByAJIAUgBiAIIAxxIggbIBQgE5QiESARWyARIBYgAL4iE0MAAIA/XgR9IBMQxgVDVPgtQJRDAACAP5KRBUMAAIA/C5RgRXEiDBsiDigCACIASwRAIA0gBiAFIAwbIAgbIg8oAgAhBCAKIABBGGxqIgAtABMiAyAALQASIgsgAC0AESIQIAsgEEsbIgsgAyALSxsiAwR9QwAAQMEgAioCRCACLQBYQQJGIgsbIhFDAAAQQSACKgJIIAsbIBGTQwAAfkOVIANBAWtB/wFxs5SSEIkEIhEgEZIFQwAAAAALIRMgAEEMai8BACIDQf//AXFFBEAgA0EQdAwDCyADQf8HcSEAIANBgIACcSELIANBgPgBcSIDQYD4AUYEQCALQRB0IgNBgICA/AdyIABFDQMaIAMgAEENdHJBgICA/gdyDAMLIAtBEHQhCyADRQ0BIANBDXRBgICA/ABxIABBDXRyQYCAgMADaiALcgwCCyAAIAdB3LvHABCMBwALIAAgAGdBEGsiAEH//wNxQQhqdEH///8DcSALQYCAgNgDciAAQRd0a3ILviIRQwAAgD9eBEAgERDGBUNU+C1AlEMAAIA/kpEhEgsCfwJAIAQgB0kEQCAKIARBGGxqIgAtABMiByAALQASIgogAC0AESIEIAQgCkkbIgogByAKSxsiBwR9QwAAQMEgAioCRCACLQBYQQJGIgobIhFDAAAQQSACKgJIIAobIBGTQwAAfkOVIAdBAWtB/wFxs5SSEIkEIhEgEZIFQwAAAAALIRYgAEEMai8BACICQf//AXFFBEAgAkEQdAwDCyACQf8HcSEAIAJBgIACcSEHIAJBgPgBcSICQYD4AUYEQCAHQRB0IgJBgICA/AdyIABFDQMaIAIgAEENdHJBgICA/gdyDAMLIAdBEHQhByACRQ0BIAJBDXRBgICA/ABxIABBDXRyQYCAgMADaiAHcgwCCwwDCyAAIABnQRBrIgBB//8DcUEIanRB////A3EgB0GAgIDYA3IgAEEXdGtyC0MAAIA/IRG+IhdDAACAP14EQCAXEMYFQ1T4LUCUQwAAgD+SkSERCyABIAYgDSAIGygCADYCACABIA4gDyATIBKUIhIgElsgEiAWIBGUYEVxIgAbKAIANgIEIAEgDyAOIAAbKAIANgIIIAEgBSAJIAwbKAIANgIMDwsgAyAHQdy7xwAQjAcACyAEIAdB3LvHABCMBwALziYCHnsTfwJAAkACQAJAAkACQAJAIAFBAksEQCADRQ0BIAVFDQIgB0UNAyAAQf8BIAItAABBhZUBbEEIdiIsIAQtAAAiKUGaggJsQQh2akGVigFrQQZ1IiZBACAmQQBKGyImICZB/wFOGzoAAiAAQf8BICwgBi0AACIqQaXMAWxBCHZqQZrvAGtBBnUiJkEAICZBAEobIiYgJkH/AU4bOgAAIABB/wEgLCApQZMybEEIdiAqQYjoAGxBCHZqa0GExABqQQZ1IixBACAsQQBKGyIsICxB/wFOGzoAASABQQNGDQQgAkEBaiEsIANBAWsiA0F+cSEyIABBBGohLyADQQFxITUgAUEEayI2QXhxIjNFDQcgA0EBdiIDIiYgAUEMa0EDdiIBIAEgJksbIiYgB0EBayInIisgJiArSRsiJiAFQQFrIisgJiArSRsiJkEQSQ0FIC8gAiADIAEgASADSxsiASAnIgMgASADSRsiASArIgMgASADSRsiAUEBdGpBA2pJICwgACABQQN0akELaiICSXENBSAvIAQgAUECaiIBakkgAiAES3EgLyABIAZqSSACIAZLcXINBSAHICZBAWoiASABQQ9xIgFBECABG2siKGshMCAGIChqISYgBSAoayExIAQgKGohKyAsIChBAXQiAWohAiAyIAFrIQMgLyAoQQN0IidqIQEgMyAnayE0ICn9DyEYICr9DyEUIAQhKSAGISogLCEnA0AgAEH8AGogJ/0AAAAiGSAU/Q0AAgQGAAAAAAAAAAAAAAAA/YkB/akB/QyFSgAAhUoAAIVKAACFSgAAIgz9tQFBCP2tASINIBQgKkEBav0AAAAiFP0NDxAREhMUFRYXGBkaGxwdHv2JASIJ/QwJAAkACQAJAAkACQAJAAkAIg79lQEgFP2JASIT/Y4BIBMgCf2OAf0MAwADAAMAAwADAAMAAwADACIP/ZUB/Y4B/QwIAAgACAAIAAgACAAIAAgAIhX9jgFBBP2NASII/akBIhD9DCVmAAAlZgAAJWYAACVmAAAiC/21AUEI/a0B/a4B/QxmyP//Zsj//2bI//9myP//IhH9rgFBBv2sAf0MAAAAAAAAAAAAAAAAAAAAACIJ/bgB/Qz/AAAA/wAAAP8AAAD/AAAAIgr9tgEgGSAJ/Q0ICgwOAAAAAAAAAAAAAAAA/YkB/akBIAz9tQFBCP2tASIbIAj9qgEiEiAL/bUBQQj9rQH9rgEgEf2uAUEG/awBIAn9uAEgCv22Af2GASAn/QAAECIcIAn9DQACBAYAAAAAAAAAAAAAAAD9iQH9qQEgDP21AUEI/a0BIhogFCAJ/Q0HCAkKCwwNDgAAAAAAAAAA/YkBIgggDv2VASAU/YoBIh39jgEgHSAI/Y4BIA/9lQH9jgEgFf2OAUEE/Y0BIgj9qQEiHyAL/bUBQQj9rQH9rgEgEf2uAUEG/awBIAn9uAEgCv22ASAcIAn9DQgKDA4AAAAAAAAAAAAAAAD9iQH9qQEgDP21AUEI/a0BIh4gCP2qASIiIAv9tQFBCP2tAf2uASAR/a4BQQb9rAEgCf24ASAK/bYB/YYB/WYiCP1YAAAPIABB9ABqIAj9WAAADiAAQewAaiAI/VgAAA0gAEHkAGogCP1YAAAMIABB3ABqIAj9WAAACyAAQdQAaiAI/VgAAAogAEHMAGogCP1YAAAJIABBxABqIAj9WAAACCAAQTxqIAj9WAAAByAAQTRqIAj9WAAABiAAQSxqIAj9WAAABSAAQSRqIAj9WAAABCAAQRxqIAj9WAAAAyAAQRRqIAj9WAAAAiAAQQxqIAj9WAAAASAAQQRqIAj9WAAAACAAQf0AaiANIBggKUEBav0AAAAiGP0NDxAREhMUFRYXGBkaGxwdHv2JASIIIA79lQEgGP2JASIg/Y4BICAgCP2OASAP/ZUB/Y4BIBX9jgFBBP2NASII/akBIiP9DBMZAAATGQAAExkAABMZAAAiFv21AUEI/a0BIBD9DAg0AAAINAAACDQAAAg0AAAiEP21AUEI/a0B/a4B/bEB/QwEIgAABCIAAAQiAAAEIgAAIhf9rgFBBv2sASAJ/bgBIAr9tgEgGyAI/aoBIiQgFv21AUEI/a0BIBIgEP21AUEI/a0B/a4B/bEBIBf9rgFBBv2sASAJ/bgBIAr9tgH9hgEgGiAYIAn9DQcICQoLDA0OAAAAAAAAAAD9iQEiCCAO/ZUBIBj9igEiIf2OASAhIAj9jgEgD/2VAf2OASAV/Y4BQQT9jQEiCP2pASIlIBb9tQFBCP2tASAfIBD9tQFBCP2tAf2uAf2xASAX/a4BQQb9rAEgCf24ASAK/bYBIB4gCP2qASIfIBb9tQFBCP2tASAiIBD9tQFBCP2tAf2uAf2xASAX/a4BQQb9rAEgCf24ASAK/bYB/YYB/WYiCP1YAAAPIABB9QBqIAj9WAAADiAAQe0AaiAI/VgAAA0gAEHlAGogCP1YAAAMIABB3QBqIAj9WAAACyAAQdUAaiAI/VgAAAogAEHNAGogCP1YAAAJIABBxQBqIAj9WAAACCAAQT1qIAj9WAAAByAAQTVqIAj9WAAABiAAQS1qIAj9WAAABSAAQSVqIAj9WAAABCAAQR1qIAj9WAAAAyAAQRVqIAj9WAAAAiAAQQ1qIAj9WAAAASAAQQVqIAj9WAAAACAAQf4AaiANICP9DBqBAAAagQAAGoEAABqBAAAiDf21AUEI/a0B/a4B/Qzruv//67r//+u6///ruv//IhL9rgFBBv2sASAJ/bgBIAr9tgEgGyAkIA39tQFBCP2tAf2uASAS/a4BQQb9rAEgCf24ASAK/bYB/YYBIBogJSAN/bUBQQj9rQH9rgEgEv2uAUEG/awBIAn9uAEgCv22ASAeIB8gDf21AUEI/a0B/a4BIBL9rgFBBv2sASAJ/bgBIAr9tgH9hgH9ZiII/VgAAA8gAEH2AGogCP1YAAAOIABB7gBqIAj9WAAADSAAQeYAaiAI/VgAAAwgAEHeAGogCP1YAAALIABB1gBqIAj9WAAACiAAQc4AaiAI/VgAAAkgAEHGAGogCP1YAAAIIABBPmogCP1YAAAHIABBNmogCP1YAAAGIABBLmogCP1YAAAFIABBJmogCP1YAAAEIABBHmogCP1YAAADIABBFmogCP1YAAACIABBDmogCP1YAAABIABBBmogCP1YAAAAIABBCGogGSAJ/Q0BAwUHAAAAAAAAAAAAAAAA/YkB/akBIAz9tQFBCP2tASIbIBMgDv2VASAq/QAAACII/YkBIhr9jgEgGiAT/Y4BIA/9lQH9jgEgFf2OAUEE/Y0BIhP9qQEiGiAL/bUBQQj9rQH9rgEgEf2uAUEG/awBIAn9uAEgCv22ASAZIAn9DQkLDQ8AAAAAAAAAAAAAAAD9iQH9qQEgDP21AUEI/a0BIhkgE/2qASIeIAv9tQFBCP2tAf2uASAR/a4BQQb9rAEgCf24ASAK/bYB/YYBIBwgCf0NAQMFBwAAAAAAAAAAAAAAAP2JAf2pASAM/bUBQQj9rQEiEyAdIA79lQEgCP2KASII/Y4BIAggHf2OASAP/ZUB/Y4BIBX9jgFBBP2NASII/akBIh0gC/21AUEI/a0B/a4BIBH9rgFBBv2sASAJ/bgBIAr9tgEgHCAJ/Q0JCw0PAAAAAAAAAAAAAAAA/YkB/akBIAz9tQFBCP2tASIMIAj9qgEiHCAL/bUBQQj9rQH9rgEgEf2uAUEG/awBIAn9uAEgCv22Af2GAf1mIgj9WAAAACAAQRBqIAj9WAAAASAAQRhqIAj9WAAAAiAAQSBqIAj9WAAAAyAAQShqIAj9WAAABCAAQTBqIAj9WAAABSAAQThqIAj9WAAABiAAQUBrIAj9WAAAByAAQcgAaiAI/VgAAAggAEHQAGogCP1YAAAJIABB2ABqIAj9WAAACiAAQeAAaiAI/VgAAAsgAEHoAGogCP1YAAAMIABB8ABqIAj9WAAADSAAQfgAaiAI/VgAAA4gAEGAAWoiLSAI/VgAAA8gAEGBAWogGyAgIA79lQEgKf0AAAAiCP2JASIL/Y4BIAsgIP2OASAP/ZUB/Y4BIBX9jgFBBP2NASIL/akBIhEgFv21AUEI/a0BIBogEP21AUEI/a0B/a4B/bEBIBf9rgFBBv2sASAJ/bgBIAr9tgEgGSAL/aoBIgsgFv21AUEI/a0BIB4gEP21AUEI/a0B/a4B/bEBIBf9rgFBBv2sASAJ/bgBIAr9tgH9hgEgEyAhIA79lQEgCP2KASII/Y4BIAggIf2OASAP/ZUB/Y4BIBX9jgFBBP2NASII/akBIg4gFv21AUEI/a0BIB0gEP21AUEI/a0B/a4B/bEBIBf9rgFBBv2sASAJ/bgBIAr9tgEgDCAI/aoBIg8gFv21AUEI/a0BIBwgEP21AUEI/a0B/a4B/bEBIBf9rgFBBv2sASAJ/bgBIAr9tgH9hgH9ZiII/VgAAA8gAEH5AGogCP1YAAAOIABB8QBqIAj9WAAADSAAQekAaiAI/VgAAAwgAEHhAGogCP1YAAALIABB2QBqIAj9WAAACiAAQdEAaiAI/VgAAAkgAEHJAGogCP1YAAAIIABBwQBqIAj9WAAAByAAQTlqIAj9WAAABiAAQTFqIAj9WAAABSAAQSlqIAj9WAAABCAAQSFqIAj9WAAAAyAAQRlqIAj9WAAAAiAAQRFqIAj9WAAAASAAQQlqIAj9WAAAACAAQQpqIBsgESAN/bUBQQj9rQH9rgEgEv2uAUEG/awBIAn9uAEgCv22ASAZIAsgDf21AUEI/a0B/a4BIBL9rgFBBv2sASAJ/bgBIAr9tgH9hgEgEyAOIA39tQFBCP2tAf2uASAS/a4BQQb9rAEgCf24ASAK/bYBIAwgDyAN/bUBQQj9rQH9rgEgEv2uAUEG/awBIAn9uAEgCv22Af2GAf1mIgn9WAAAACAAQRJqIAn9WAAAASAAQRpqIAn9WAAAAiAAQSJqIAn9WAAAAyAAQSpqIAn9WAAABCAAQTJqIAn9WAAABSAAQTpqIAn9WAAABiAAQcIAaiAJ/VgAAAcgAEHKAGogCf1YAAAIIABB0gBqIAn9WAAACSAAQdoAaiAJ/VgAAAogAEHiAGogCf1YAAALIABB6gBqIAn9WAAADCAAQfIAaiAJ/VgAAA0gAEH6AGogCf1YAAAOIABBggFqIAn9WAAADyApQRBqISkgKkEQaiEqICdBIGohJyAtIQAgKEEQayIoDQALIBj9Fg8hKSAU/RYPISoMBgtBAEEDIAFBmOvEABDqBwALQQBBAEGo68QAEIwHAAtBAEEAQbjrxAAQjAcAC0EAQQBByOvEABCMBwALQQRBA0EDQfjrxAAQ6gcACyAEISsgBSExIAYhJiAHITAgMyE0IC8hASAyIQMgLCECCwNAIANFIDFBAklyIDBBAU1yDQEgAUECakH/ASACLQAAQYWVAWxBCHYiLSApQf8BcSInQQlsICtBAWoiAC0AACIpaiAnIClqQQNsakEIakEEdiI3QZqCAmxBCHZqQZWKAWtBBnUiJ0EAICdBAEobIicgJ0H/AU4bOgAAIAFB/wEgLSAqQf8BcSIoQQlsICZBAWoiJy0AACIqaiAoICpqQQNsakEIakEEdiI4QaXMAWxBCHZqQZrvAGtBBnUiKEEAIChBAEobIiggKEH/AU4bOgAAIAFBBmpB/wEgAkEBai0AAEGFlQFsQQh2IiggKy0AACIrIClBCWxqICkgK2pBA2xqQQhqQQR2IitBmoICbEEIdmpBlYoBa0EGdSIuQQAgLkEAShsiLiAuQf8BThs6AAAgAUEEakH/ASAoICYtAAAiJiAqQQlsaiAmICpqQQNsakEIakEEdiImQaXMAWxBCHZqQZrvAGtBBnUiLkEAIC5BAEobIi4gLkH/AU4bOgAAIAFBAWpB/wEgLSA3QZMybEEIdiA4QYjoAGxBCHZqa0GExABqQQZ1Ii1BACAtQQBKGyItIC1B/wFOGzoAACABQQVqQf8BICggK0GTMmxBCHYgJkGI6ABsQQh2amtBhMQAakEGdSImQQAgJkEAShsiJiAmQf8BThs6AAAgAUEIaiEBIAJBAmohAiAwQQFrITAgMUEBayExIANBAmshAyAAISsgJyEmIDRBCGsiNA0ACwsCQAJAAkACQAJAIDUEQCAEIAVqQQFrIgFFDQIgBiAHakEBayIERQ0BIDZBB3EiAEUNAyABLQAAIQEgLyAzaiICQf8BICwgMmotAABBhZUBbEEIdiIDIAQtAAAiBEGlzAFsQQh2akGa7wBrQQZ1IgVBACAFQQBKGyIFIAVB/wFOGzoAACAAQQFGDQQgAkH/ASADIAFBkzJsQQh2IARBiOgAbEEIdmprQYTEAGpBBnUiBEEAIARBAEobIgQgBEH/AU4bOgABIABBAk0NBSACQf8BIAFBmoICbEEIdiADakGVigFrQQZ1IgBBACAAQQBKGyIAIABB/wFOGzoAAgsPC0Ho68QAEN0JAAtB2OvEABDdCQALQQBBAEHI7cQAEIwHAAtBAUEBQdjtxAAQjAcAC0ECQQJB6O3EABCMBwALtyICDX8GfiMAQdAEayICJAAgAkHQAGogAUEIaigCACIDNgIAIAIgASkCACIPNwJIIAJBgAE6AFQgAkEANgJEIAJCgICAgBA3AjwgD6chCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAkwiByADSwRAA0AgAyALai0AACIJQQlrIgFBF0tBASABdEGTgIAEcUVyDQIgByADQQFqIgNHDQALIAIgBzYCUCAHIQMLIAJBMGogCyAHIANBAWoiASAHIAEgB0kbEPkBIAIoAjQhASACKAIwIQRBFBBxIgMNAQwNCyACIAM2AlACQCAJQdsARwRAIAlB+wBGDQEgAkE8aiACQc8EakGIwcEAEO4BIQQMCwsgAkH/ADoAVCACIANBAWo2AlAgAkEBOgCUBCACIAJBPGo2ApAEIAJBmANqIAJBkARqEJ8DIAItAJgDQQFGBEAgAigCnAMhBAwFCwJAAkACQAJAAkACQAJAAkACQAJAIAItAJkDQQFGBEAgAkEQaiACKAKQBBCVAyACKAIUIQEgAigCEEEBcQRAIAEhBAwQCyACQZgDaiACQZAEahCfAyACLQCYA0EBRgRAIAIoApwDIQQMEAsgAi0AmQNBAUcNAiACQZgDaiACKAKQBBC7AyACKAKYA0EBRw0BIAIoApwDIQQMDwtBAEG0gcEAQYD9wAAQ2wYhBAwOCyACKQOgAyEPIAJBmANqIAJBkARqEJ8DIAItAJgDQQFGBEAgAigCnAMhBAwOCyACLQCZA0EBRw0CIAJBmANqIAIoApAEELsDIAIoApgDQQFHDQEgAigCnAMhBAwNC0EBQbSBwQBBgP3AABDbBiEEDAwLIAIpA6ADIRAgAkGYA2ogAkGQBGoQnwMgAi0AmANBAUYEQCACKAKcAyEEDAwLIAItAJkDQQFHDQIgAkGYA2ogAigCkAQQuwMgAigCmANBAUcNASACKAKcAyEEDAsLQQJBtIHBAEGA/cAAENsGIQQMCgsgAikDoAMhESACQZgDaiACQZAEahCfAyACLQCYA0EBRgRAIAIoApwDIQQMCgsgAi0AmQNBAUcNAiACQZgDaiACKAKQBBClAiACKAKYAyIIQQJHDQEgAigCnAMhBAwJC0EDQbSBwQBBgP3AABDbBiEEDAgLIAIoApwDIQMgAkGYA2ogAkGQBGoQnwMgAi0AmANBAUYEQCACKAKcAyEEDAgLIAItAJkDQQFHDQEgAkGYA2ogAigCkAQQgQIgAi0AmANBAUcNAiACKAKcAyEEDAcLQQRBtIHBAEGA/cAAENsGIQQMBgtBBUG0gcEAQYD9wAAQ2wYhBAwFCyACLQCZAyEOIAJBmANqIgQgAkGQBGoiCRDqBSACKAKcAyEHIAIoApgDIgtBBEYNAyACQcgEaiACQdADaigCADYCACACQbgEaiACQcADav0AAgD9CwMAIAJBqARqIAJBsANq/QACAP0LAwAgAiAC/QACoAP9CwOYBAJAAkAgC0EDRwRAIwBBEGsiBSQAIAVBBGogCRCfAwJAIAUtAARBAUYEQCAEIAUoAgg2AgQgBEGBgICAeDYCAAwBCyAFLQAFRQRAIARBgICAgHg2AgAMAQsgBUEEaiAJKAIAEHMgBSgCBEGAgICAeEYEQCAEIAUoAgg2AgQgBEGBgICAeDYCAAwBCyAEIAUpAgQ3AgAgBEEIaiAFQQxqKAIANgIACyAFQRBqJAAgAigCnAMhBCACKAKYAyIFQYCAgIB4aw4CAgcBC0EGQbSBwQBBgP3AABDbBiEEDAYLIAIoAqADIQogAkHYAmogAkHIBGooAgA2AgAgAkHIAmogAkG4BGr9AAMA/QsDACACQbgCaiACQagEav0AAwD9CwMAIAIgAv0AA5gE/QsDqAIgBCEGIAMhBAwGC0EHQbSBwQBBgP3AABDbBiEEDAQLIAJB/wA6AFQgAiADQQFqNgJQIAJBAToAlAQgAiACQTxqNgKQBCACQaADaiEIQYCAgIB4IQVBAyEKQQMhDEECIQ1BACEJAkACQAJ/A0ACQCACQZgDaiACQZAEahDRAiACLQCYA0EBRgRAIAIoApwDIQEMAQsCQAJAIAItAJkDQQFGBEAgAigCkAQiA0EANgIIIAMgAygCFEEBajYCFCACQZgDaiADQQxqIAMQggIgAigCnAMhASACKAKYA0ECRg0DAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACKAKgA0EEaw4KAgAQARAQBRADBBALIAFBq/zAAEEFENsHRQ0HIAFBsPzAAEEFENsHDQ8gDUECRg0JQbD8wABBBRCfByEBDBALIAFBpPzAAEEHENsHRQ0EIAFBhujAAEEHENsHDQ4gDEEDRg0JQYbowABBBxCfByEBDA8LIAEoAABB4sLNqwZGDQQMDQsgAUH4gMEAQQwQ2wcNDCASUA0FQfiAwQBBDBCfByEBDA0LIAFBmO3AAEENENsHDQsgCkEDRg0HQZjtwABBDRCfByEBDAwLIAFBhIHBAEEKENsHDQogBUGAgICAeEYNB0GEgcEAQQoQnwciBCAFDQ0aQQIhCEEAIQUMEQsgCUUNCEGk/MAAQQcQnwchAQwKCyATUEUEQEH0gMEAQQQQnwchAQwKCyACQZgDaiADEKsFIAIpA6ADIRFCASETIAIoApgDQQFHDQogAigCnAMhAQwJCyAUUEUEQEGr/MAAQQUQnwchAQwJCyACQZgDaiADEKsFIAIpA6ADIRBCASEUIAIoApgDQQFHDQkgAigCnAMhAQwICyACQZgDaiADEKsFIAIpA6ADIQ9CASESIAIoApgDQQFHDQggAigCnAMhAQwHCyACQZgDaiADEK4FIAIoApwDIgQhASACKAKYAyINQQJHDQcMBgsgAkGYA2ogAxCsBSACLQCZAyEMIAItAJgDQQFHDQYgAigCnAMhAQwFCyACQZgDaiADEK8FIAIoApwDIQcgAigCmAMiCkEDRgRAIAchAQwFCyACQcgEaiAIQTBqKAIANgIAIAJBuARqIAhBIGr9AAIA/QsDACACQagEaiAIQRBq/QACAP0LAwAgAiAI/QACAP0LA5gEDAULIAMoAgwhBQJAAkACQAJAIAMoAhQiASADKAIQIgZJBEADQAJAIAEgBWotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgAyABQQFqIgE2AhQgASAGRw0ACyAGIQELIAJBKGogBSAGIAFBAWoiASAGIAEgBkkbEPkBIAIoAiwhAyACKAIoIQFBFBBxIgZFDRggBkEDNgIADAELIAJBIGogBSAGIAFBAWoiASAGIAEgBkkbEPkBIAIoAiQhAyACKAIgIQFBFBBxIgZFDRcgBkEGNgIACyAGIAE2AgwgBiADNgIQDAELIAMgAUEBajYCFCACQZgDaiADEHMgAigCoAMhDiACKAKcAyEGIAIoApgDIgVBgICAgHhHDQULQQIhCEGAgICAeCEFIAYhBAwJCyAJQQFxRQRAQaT8wABBBxCcByEBDAMLIBNQBEBB9IDBAEEEEJwHIQEMAwsgFFAEQEGr/MAAQQUQnAchAQwDCyASUARAQfiAwQBBDBCcByEBDAMLQQIhCSAKQQNHBEAgAkHIA2ogAkHIBGooAgA2AgAgAkG4A2ogAkG4BGr9AAIA/QsDACACQagDaiACQagEav0AAgD9CwMAIAIgAv0AApgE/QsDmAMgCiEJCyAFQYCAgIB4RgRAQYSBwQBBChCcByEEQQIhCEGAgICAeCEFDAkLIA1BACANQQJHGyEIQQIgDCAMQQNGGyEBIAJBkANqIAJByANqKAIANgIAIAJBgANqIAJBuANq/QADAP0LAwAgAkHwAmogAkGoA2r9AAMA/QsDACACIAL9AAOYA/0LA+ACDAgLIAJBGGogAxCQBUEBIQkgAigCHCILIQEgAigCGEEBcUUNAgwBCyADEKABIgFFDQELCyAFQYCAgIB4ckGAgICAeEYNASABCyEEIAZBBGsoAgAiA0F4cSIBIAVBKGwiB0EEQQggA0EDcSIDG2pJDQ8gA0EAIAEgB0EnaksbDQEgBhCiAkECIQgMAwtBAiEIIAEhBAwCCwwOCyADIAQ2AgwgA0EFNgIAIAMgATYCEAwJCyACIAItAFRBAWo6AFQgAkE8ahDiBCEDIAJB0ANqIAJB8AJq/QADAP0LAwAgAkHgA2ogAkGAA2r9AAMA/QsDACACQfADaiACQZADaigCADYCACACIAc2ArwDIAIgCTYCuAMgAiAPNwOwAyACIBA3A6gDIAIgETcDoAMgAiAENgKcAyACIAU2AvQDIAIgBjYC+AMgAiAONgL8AyACIAs2AoAEIAIgAzYCiAQgAiABOgCEBCACIAL9AAPgAv0LA8ADIAIgCDYCmAMCQCAIQQJHBEAgAw0BIAJB0AFqIAJBoANqQdQA/AoAACACQcgBaiACQfwDaiIBQQhqKAIANgIAIAIgASkCADcDwAEMCAsgA0UNBCACQYgEahCxBEECIQgMBwtBAiEIAkAgBQRAIAZBBGsoAgAiAUF4cSIEIAVBKGwiB0EEQQggAUEDcSIBG2pJDQ0gAUEAIAQgB0EnaksbDQEgBhCiAgsgAyEEDAcLDAwLIAchBAtBAiEICyACIAItAFRBAWo6AFQgAkE8ahC6AyEDIAJB0ANqIAJBuAJq/QADAP0LAwAgAkHgA2ogAkHIAmr9AAMA/QsDACACQfADaiACQdgCaigCADYCACACIAc2ArwDIAIgCzYCuAMgAiARNwOwAyACIBA3A6gDIAIgDzcDoAMgAiAENgKcAyACIAU2AvQDIAIgBjYC+AMgAiAKNgL8AyACIAE2AoAEIAIgAzYCiAQgAiAOOgCEBCACIAL9AAOoAv0LA8ADIAIgCDYCmAMgCEECRwRAIAMNAiACQdABaiACQaADakHUAPwKAAAgAkHIAWogAkH8A2oiAUEIaigCADYCACACIAEpAgA3A8ABDAQLIAMNAgtBAiEIDAILQQIhCAJAIAUEQCAGQQRrKAIAIgFBeHEiBCAFQShsIgdBBEEIIAFBA3EiARtqSQ0IIAFBACAEIAdBJ2pLGw0BIAYQogILIAMhBAwCCwwHCyACQYgEahCxBEECIQgLIAhBAkYNACACQegAaiACQdABakHUAPwKAAAgAkHgAGoiCiACQcgBaigCADYCACACIAIpA8ABNwNYAkAgAigCUCIDIAIoAkwiAUkEQCACKAJIIQcDQCADIAdqLQAAQQlrIglBF0tBASAJdEGTgIAEcUVyDQIgASADQQFqIgNHDQALIAIgATYCUAsgAEEIaiACQegAakHUAPwKAAAgACAGNgJgIAAgBTYCXCAAIAQ2AgQgACAINgIAIABB7ABqIAooAgA2AgAgACACKQNYNwJkDAMLIAIgAzYCUCACQQhqIAcgASADQQFqIgQgASABIARLGxD5ASACKAIMIQQgAigCCCEHQRQQcSIBRQ0DIAEgBzYCDCABQRY2AgAgACABNgIEIABBAjYCACABIAQ2AhAgBUUNAiAGIAVBKGxBCBCiBwwCCyAEIAJBPGoQ6wUhAwsgACADNgIEIABBAjYCACAAQQhqIAJB6ABqQdQA/AoAACAAQewAaiACQeAAaigCADYCACAAIAIpA1g3AmQLAkAgAigCPCIABEAgAigCQCIBQQRrKAIAIgRBeHEiB0EEQQggBEEDcSIEGyAAakkNAyAEQQAgByAAQSdqSxsNASABEKICCyACQdAEaiQADwsMAgsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvGGQEgfyMAQSBrIg4kACAOQRRqIAEoAgAgACgCBCIcIAAoAggQowQgDigCGCENAkACQAJAAkACQCAOKAIUIglBgICAgHhGBEAgDSEYDAELIA4gDSAOKAIcEDkgDigCBCEYAkACQAJAAkAgDigCACIZQYCAgIB4RgRAIAlFDQUgDUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgCWpJDQkgAUEAIAIgCUEnaksbDQggDRCiAgwFCyAOKAIMIREgDigCCCEPAkAgCQRAIA1BBGsoAgAiCkF4cSIMQQRBCCAKQQNxIgobIAlqSQ0BIApBACAMIAlBJ2pLGw0JIA0QogILIA5BFGogASgCACAAKAIQIh0gACgCFBCjBCAOKAIYIQ0CQAJAAkAgDigCFCIJQYCAgIB4RgRAIA0hAQwBCyAOIA0gDigCHBA5IA4oAgQhASAOKAIAIh5BgICAgHhHDQEgCUUNACANQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyAJakkNAiACQQAgAyAJQSdqSxsNCyANEKICCyAZBEAgGEEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgGWpJDQwgAkEAIAMgGUEnaksbDQsgGBCiAgsgASEYDAcLIA4oAgghGiAJBEAgDUEEaygCACIKQXhxIgxBBEEIIApBA3EiChsgCWpJDQsgCkEAIAwgCUEnaksbDQogDRCiAgsgACgCHCESIAAoAhghIiACRQ0FAkAgAC0AJCINBEAgACgCICEQQQ9BCEEDIA1BAUsiIxsgDUECSyIkGyITQQJ0ISUgEUECdCEmQQEhCUEAIQoMAQtBACEJQQEhAwNAIAkgGk8NBiAJQQFqIBpPDQQgCUEEaiEJIAIgA0sgA0EBaiEDDQALDAYLA0AgCSENIApBAnQiCSAaTw0FIAlBAXIiCiAaTw0EICYgASAJai0AACIMIAEgCmotAAAiFEEIdHJBwP8DcUEGdiIJbCAlIAxBP3EiCmxqIScgGCAJIBFsIAogE2xqQQJ0aiEoQQAhG0EAIQkCQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkADQCAJICdqIhUgD08NGiAQIAkgKGoiFi0AACIKTQ0jIAkgIWoiCyAETw0gIAMgG2oiFyASIApBAnRqKgIAOAIAIBVBBGogD08NGyAQIBZBBGotAAAiCk0NIyALQQNqIARPDR4gF0EMaiASIApBAnRqKgIAOAIAIBVBCGogD08NHCAQIBZBCGotAAAiCk0NIyALQQZqIARPDR8gF0EYaiASIApBAnRqKgIAOAIAAkACQCAjRQ0AIBVBDGogD08NESAQIBZBDGotAAAiCk0NJCAJICBqIgsgBk8NGyAFIBtqIhcgEiAKQQJ0aioCADgCACAVQRBqIA9PDRIgECAWQRBqLQAAIgpNDSQgC0EDaiAGTw0YIBdBDGogEiAKQQJ0aioCADgCACAVQRRqIA9PDRMgECAWQRRqLQAAIgpNDSQgC0EGaiAGTw0XIBdBGGogEiAKQQJ0aioCADgCACAVQRhqIA9PDRQgECAWQRhqLQAAIgpNDSQgC0EJaiAGTw0ZIBdBJGogEiAKQQJ0aioCADgCACAVQRxqIA9PDRUgECAWQRxqLQAAIgpNDSQgC0EMaiAGTw0aIBdBMGogEiAKQQJ0aioCADgCACAkRQ0AIBVBIGogD08NASAQIBZBIGotAAAiCk0NIyAJIB9qIgsgCE8NECAHIBtqIhcgEiAKQQJ0aioCADgCACAVQSRqIA9PDQMgECAWQSRqLQAAIgpNDSMgC0EDaiAITw0PIBdBDGogEiAKQQJ0aioCADgCACAVQShqIA9PDQQgECAWQShqLQAAIgpNDSMgC0EGaiAITw0OIBdBGGogEiAKQQJ0aioCADgCACAVQSxqIA9PDQUgECAWQSxqLQAAIgpNDSMgC0EJaiAITw0NIBdBJGogEiAKQQJ0aioCADgCACAVQTBqIA9PDQYgECAWQTBqLQAAIgpNDSMgC0EMaiAITw0MIBdBMGogEiAKQQJ0aioCADgCACAVQTRqIA9PDQcgECAWQTRqLQAAIgpNDSMgC0EPaiAITw0LIBdBPGogEiAKQQJ0aioCADgCACAVQThqIA9PDQggECAWQThqLQAAIgpNDSMgC0ESaiAITw0KIBdByABqIBIgCkECdGoqAgA4AgALIBtBBGohGyAJQQFqIglBA08NJQwBCwsgESAUQQh0IAxyQcD/A3FBBnZsQQJ0IBMgDEE/cWxBAnRqIAlqQSBqDAYLIBEgFEEIdCAMckHA/wNxQQZ2bEECdCATIAxBP3FsQQJ0aiAJakEkagwFCyARIBRBCHQgDHJBwP8DcUEGdmxBAnQgEyAMQT9xbEECdGogCWpBKGoMBAsgESAUQQh0IAxyQcD/A3FBBnZsQQJ0IBMgDEE/cWxBAnRqIAlqQSxqDAMLIBEgFEEIdCAMckHA/wNxQQZ2bEECdCATIAxBP3FsQQJ0aiAJakEwagwCCyARIBRBCHQgDHJBwP8DcUEGdmxBAnQgEyAMQT9xbEECdGogCWpBNGoMAQsgESAUQQh0IAxyQcD/A3FBBnZsQQJ0IBMgDEE/cWxBAnRqIAlqQThqCyAPQcDzxwAQjAcACyALQRJqIQsMBQsgC0EPaiELDAQLIAtBDGohCwwDCyALQQlqIQsMAgsgC0EGaiELDAELIAtBA2ohCwsgCyAIQeDzxwAQjAcACyARIBRBCHQgDHJBwP8DcUEGdmxBAnQgEyAMQT9xbEECdGogCWpBDGoMBAsgESAUQQh0IAxyQcD/A3FBBnZsQQJ0IBMgDEE/cWxBAnRqIAlqQRBqDAMLIBEgFEEIdCAMckHA/wNxQQZ2bEECdCATIAxBP3FsQQJ0aiAJakEUagwCCyARIBRBCHQgDHJBwP8DcUEGdmxBAnQgEyAMQT9xbEECdGogCWpBGGoMAQsgESAUQQh0IAxyQcD/A3FBBnZsQQJ0IBMgDEE/cWxBAnRqIAlqQRxqCyAPQfDzxwAQjAcACyALQQZqIQsMAwsgC0EDaiELDAILIAtBCWohCwwBCyALQQxqIQsLIAsgBkGQ9McAEIwHAAsgESAUQQh0IAxyQcD/A3FBBnZsQQJ0IBMgDEE/cWxBAnRqIAlqDAILIBEgFEEIdCAMckHA/wNxQQZ2bEECdCATIAxBP3FsQQJ0aiAJakEEagwBCyARIBRBCHQgDHJBwP8DcUEGdmxBAnQgEyAMQT9xbEECdGogCWpBCGoLIA9BoPTHABCMBwALIAtBA2ohCwwBCyALQQZqIQsLIAsgBEHA9McAEIwHAAsgCiAQQdDzxwAQjAcACyAKIBBBgPTHABCMBwALIAogEEGw9McAEIwHAAsgH0EVaiEfIAdB1ABqIQcgBUE8aiEFICBBD2ohICADQSRqIQMgIUEJaiEhIA0gAiANSyILaiEJIA0hCiALDQALDAULDAkLDAgLIAlBAWohCgsgCiAaQbDzxwAQjAcACyAJIBpBoPPHABCMBwALAkAgIgRAIBJBBGsoAgAiAkF4cSIDICJBAnQiBEEEQQggAkEDcSICG2pJDQYgAkEAIAMgBEEnaksbDQUgEhCiAgsgHgRAIAFBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIB5qSQ0GIAJBACADIB5BJ2pLGw0FIAEQogILIBkEQCAYQQRrKAIAIgFBeHEiAkEEQQggAUEDcSIBGyAZakkNBiABQQAgAiAZQSdqSxsNBSAYEKICCyAAKAIAIgEEQCAcQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNBiACQQAgAyABQSdqSxsNBSAcEKICCyAAKAIMIgBFBEBBACEYDAQLIB1BBGsoAgAiAUF4cSICQQRBCCABQQNxIgEbIABqSQ0FQQAhGCABRQ0CIAIgAEEnaksNAAwCCwwDCyAAKAIAIgEEQCAcQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNBCACQQAgAyABQSdqSxsNAyAcEKICCyAAKAIMIgEEQCAAKAIQIgJBBGsoAgAiA0F4cSIEQQRBCCADQQNxIgMbIAFqSQ0EIANBACAEIAFBJ2pLGw0DIAIQogILIAAoAhgiAUUNASAAKAIcIh1BBGsoAgAiAEF4cSICIAFBAnQiAUEEQQggAEEDcSIAG2pJDQMgAEUgAiABQSdqTXINAAwCCyAdEKICCyAOQSBqJAAgGA8LQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC/kjAQh/AkACQAJAAkACQAJAIABB9QFPBEAgAEHM/3tLBEBBAA8LIABBC2oiAUF4cSEFQcy6yQAoAgAiCEUNBEEfIQdBACAFayEDIABB9P//B00EQCAFQSYgAUEIdmciAGt2QQFxIABBAXRrQT5qIQcLIAdBAnRBsLfJAGooAgAiAkUEQEEAIQBBACEBDAILQQAhACAFQRkgB0EBdmtBACAHQR9HG3QhBEEAIQEDQAJAIAIoAgRBeHEiBiAFSQ0AIAYgBWsiBiADTw0AIAIhASAGIgMNAEEAIQMgASEADAQLIAIoAhQiBiAAIAYgAiAEQR12QQRxaigCECICRxsgACAGGyEAIARBAXQhBCACDQALDAELAkACQAJAAkACQEHIuskAKAIAIgJBECAAQQtqQfgDcSAAQQtJGyIFQQN2IgB2IgFBA3EEQCABQX9zQQFxIABqIgZBA3QiAEHAuMkAaiIEIABByLjJAGooAgAiASgCCCIDRg0BIAMgBDYCDCAEIAM2AggMAgsgBUHQuskAKAIATQ0IIAENAkHMuskAKAIAIgBFDQggAGhBAnRBsLfJAGooAgAiASgCBEF4cSAFayEDIAEhAgNAAkAgASgCECIADQAgASgCFCIADQAgAigCGCEHAkACQCACIAIoAgwiAEYEQCACQRRBECACKAIUIgAbaigCACIBDQFBACEADAILIAIoAggiASAANgIMIAAgATYCCAwBCyACQRRqIAJBEGogABshBANAIAQhBiABIgBBFGogAEEQaiAAKAIUIgEbIQQgAEEUQRAgARtqKAIAIgENAAsgBkEANgIACyAHRQ0GAkAgAigCHEECdEGwt8kAaiIBKAIAIAJHBEAgAiAHKAIQRwRAIAcgADYCFCAADQIMCQsgByAANgIQIAANAQwICyABIAA2AgAgAEUNBgsgACAHNgIYIAIoAhAiAQRAIAAgATYCECABIAA2AhgLIAIoAhQiAUUNBiAAIAE2AhQgASAANgIYDAYLIAAoAgRBeHEgBWsiASADIAEgA0kiARshAyAAIAIgARshAiAAIQEMAAsAC0HIuskAIAJBfiAGd3E2AgALIAEgAEEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBCABQQhqDwsCQEECIAB0IgRBACAEa3IgASAAdHFoIgZBA3QiAUHAuMkAaiIEIAFByLjJAGooAgAiACgCCCIDRwRAIAMgBDYCDCAEIAM2AggMAQtByLrJACACQX4gBndxNgIACyAAIAVBA3I2AgQgACAFaiIHIAEgBWsiBkEBcjYCBCAAIAFqIAY2AgBB0LrJACgCACICBEBB2LrJACgCACEBAn9ByLrJACgCACIEQQEgAkEDdnQiA3FFBEBByLrJACADIARyNgIAIAJBeHFBwLjJAGoiAwwBCyACQXhxIgJBwLjJAGohAyACQci4yQBqKAIACyEEIAMgATYCCCAEIAE2AgwgASADNgIMIAEgBDYCCAtB2LrJACAHNgIAQdC6yQAgBjYCAAwHC0HMuskAQcy6yQAoAgBBfiACKAIcd3E2AgALAkACQCADQRBPBEAgAiAFQQNyNgIEIAIgBWoiBiADQQFyNgIEIAMgBmogAzYCAEHQuskAKAIAIgFFDQFB2LrJACgCACEAAn9ByLrJACgCACIEQQEgAUEDdnQiB3FFBEBByLrJACAEIAdyNgIAIAFBeHFBwLjJAGoiBAwBCyABQXhxIgFBwLjJAGohBCABQci4yQBqKAIACyEBIAQgADYCCCABIAA2AgwgACAENgIMIAAgATYCCAwBCyACIAMgBWoiAEEDcjYCBCAAIAJqIgAgACgCBEEBcjYCBAwBC0HYuskAIAY2AgBB0LrJACADNgIACyACQQhqIgBFDQMMBAsgACABckUEQEEAIQFBAiAHdCIAQQAgAGtyIAhxIgBFDQMgAGhBAnRBsLfJAGooAgAhAAsgAEUNAQsDQCAAIAEgACgCBEF4cSIEIAVrIgYgA0kiBxshCCAAKAIQIgJFBEAgACgCFCECCyABIAggBCAFSSIAGyEBIAMgBiADIAcbIAAbIQMgAiIADQALCyABRQ0AIAVB0LrJACgCACIATSADIAAgBWtPcQ0AIAEoAhghBwJAAkAgASABKAIMIgBGBEAgAUEUQRAgASgCFCIAG2ooAgAiAg0BQQAhAAwCCyABKAIIIgIgADYCDCAAIAI2AggMAQsgAUEUaiABQRBqIAAbIQQDQCAEIQYgAiIAQRRqIABBEGogACgCFCICGyEEIABBFEEQIAIbaigCACICDQALIAZBADYCAAsCQCAHRQ0AAkACQCABKAIcQQJ0QbC3yQBqIgIoAgAgAUcEQCABIAcoAhBHBEAgByAANgIUIAANAgwECyAHIAA2AhAgAA0BDAMLIAIgADYCACAARQ0BCyAAIAc2AhggASgCECICBEAgACACNgIQIAIgADYCGAsgASgCFCICRQ0BIAAgAjYCFCACIAA2AhgMAQtBzLrJAEHMuskAKAIAQX4gASgCHHdxNgIACwJAIANBEE8EQCABIAVBA3I2AgQgASAFaiIAIANBAXI2AgQgACADaiADNgIAIANBgAJPBEAgACADEIAFDAILAn9ByLrJACgCACICQQEgA0EDdnQiBHFFBEBByLrJACACIARyNgIAIANB+AFxQcC4yQBqIgMMAQsgA0H4AXEiAkHAuMkAaiEDIAJByLjJAGooAgALIQIgAyAANgIIIAIgADYCDCAAIAM2AgwgACACNgIIDAELIAEgAyAFaiIAQQNyNgIEIAAgAWoiACAAKAIEQQFyNgIECyABQQhqIgANAQsCQAJAAkACQAJAIAVB0LrJACgCACIBSwRAIAVB1LrJACgCACIATwRAIAVBr4AEaiIBQRB2QAAiAkF/RgRAQQAPC0EAIQAgAkEQdCICRQ0HQeC6yQAgAUGAgHxxIgBBEGsgACACQQAgAGtGGyIBQeC6yQAoAgBqIgA2AgBB5LrJACAAQeS6yQAoAgAiBCAAIARLGzYCAAJAAkBB3LrJACgCACIEBEBBsLjJACEAA0AgACgCACIDIAAoAgQiBmogAkYNAiAAKAIIIgANAAsMAgtB7LrJACgCACIAQQAgACACTRtFBEBB7LrJACACNgIAC0HwuskAQf8fNgIAQbS4yQAgATYCAEGwuMkAIAI2AgBBzLjJAEHAuMkANgIAQdS4yQBByLjJADYCAEHIuMkAQcC4yQA2AgBB3LjJAEHQuMkANgIAQdC4yQBByLjJADYCAEHkuMkAQdi4yQA2AgBB2LjJAEHQuMkANgIAQey4yQBB4LjJADYCAEHguMkAQdi4yQA2AgBB9LjJAEHouMkANgIAQei4yQBB4LjJADYCAEH8uMkAQfC4yQA2AgBB8LjJAEHouMkANgIAQYS5yQBB+LjJADYCAEH4uMkAQfC4yQA2AgBBvLjJAEEANgIAQYy5yQBBgLnJADYCAEGAuckAQfi4yQA2AgBBiLnJAEGAuckANgIAQZS5yQBBiLnJADYCAEGQuckAQYi5yQA2AgBBnLnJAEGQuckANgIAQZi5yQBBkLnJADYCAEGkuckAQZi5yQA2AgBBoLnJAEGYuckANgIAQay5yQBBoLnJADYCAEGouckAQaC5yQA2AgBBtLnJAEGouckANgIAQbC5yQBBqLnJADYCAEG8uckAQbC5yQA2AgBBuLnJAEGwuckANgIAQcS5yQBBuLnJADYCAEHAuckAQbi5yQA2AgBBzLnJAEHAuckANgIAQdS5yQBByLnJADYCAEHIuckAQcC5yQA2AgBB3LnJAEHQuckANgIAQdC5yQBByLnJADYCAEHkuckAQdi5yQA2AgBB2LnJAEHQuckANgIAQey5yQBB4LnJADYCAEHguckAQdi5yQA2AgBB9LnJAEHouckANgIAQei5yQBB4LnJADYCAEH8uckAQfC5yQA2AgBB8LnJAEHouckANgIAQYS6yQBB+LnJADYCAEH4uckAQfC5yQA2AgBBjLrJAEGAuskANgIAQYC6yQBB+LnJADYCAEGUuskAQYi6yQA2AgBBiLrJAEGAuskANgIAQZy6yQBBkLrJADYCAEGQuskAQYi6yQA2AgBBpLrJAEGYuskANgIAQZi6yQBBkLrJADYCAEGsuskAQaC6yQA2AgBBoLrJAEGYuskANgIAQbS6yQBBqLrJADYCAEGouskAQaC6yQA2AgBBvLrJAEGwuskANgIAQbC6yQBBqLrJADYCAEHEuskAQbi6yQA2AgBBuLrJAEGwuskANgIAQdy6yQAgAjYCAEHAuskAQbi6yQA2AgBB1LrJACABQShrIgA2AgAgAiAAQQFyNgIEIAAgAmpBKDYCBEHouskAQYCAgAE2AgAMCAsgAiAETSADIARLcg0AIAAoAgxFDQMLQey6yQBB7LrJACgCACIAIAIgACACSRs2AgAgASACaiEDQbC4yQAhAAJAAkADQCADIAAoAgAiBkcEQCAAKAIIIgANAQwCCwsgACgCDEUNAQtBsLjJACEAA0ACQCAEIAAoAgAiA08EQCAEIAMgACgCBGoiBkkNAQsgACgCCCEADAELC0HcuskAIAI2AgBB1LrJACABQShrIgA2AgAgAiAAQQFyNgIEIAAgAmpBKDYCBEHouskAQYCAgAE2AgAgBCAGQSBrQXhxQQhrIgAgACAEQRBqSRsiA0EbNgIEIANBCGoiAEGwuMkA/QACAP0LAgBBtLjJACABNgIAQbC4yQAgAjYCAEG4uMkAIAA2AgBBvLjJAEEANgIAIANBHGohAANAIABBBzYCACAAQQRqIgAgBkkNAAsgAyAERg0HIAMgAygCBEF+cTYCBCAEIAMgBGsiAEEBcjYCBCADIAA2AgAgAEGAAk8EQCAEIAAQgAUMCAsCf0HIuskAKAIAIgFBASAAQQN2dCICcUUEQEHIuskAIAEgAnI2AgAgAEH4AXFBwLjJAGoiAAwBCyAAQfgBcSIBQcC4yQBqIQAgAUHIuMkAaigCAAshASAAIAQ2AgggASAENgIMIAQgADYCDCAEIAE2AggMBwsgACACNgIAIAAgACgCBCABajYCBCACIAVBA3I2AgQgBkEPakF4cUEIayIDIAIgBWoiAGshBSADQdy6yQAoAgBGDQMgA0HYuskAKAIARg0EIAMoAgQiAUEDcUEBRgRAIAMgAUF4cSIBENYEIAEgBWohBSABIANqIgMoAgQhAQsgAyABQX5xNgIEIAAgBUEBcjYCBCAAIAVqIAU2AgAgBUGAAk8EQCAAIAUQgAUMBgsCf0HIuskAKAIAIgFBASAFQQN2dCIEcUUEQEHIuskAIAEgBHI2AgAgBUH4AXFBwLjJAGoiBQwBCyAFQfgBcSIBQcC4yQBqIQUgAUHIuMkAaigCAAshAyAFIAA2AgggAyAANgIMIAAgBTYCDCAAIAM2AggMBQtB1LrJACAAIAVrIgE2AgBB3LrJAEHcuskAKAIAIgAgBWoiAjYCACACIAFBAXI2AgQgACAFQQNyNgIEIABBCGohAAwGC0HYuskAKAIAIQACQCABIAVrIgJBD00EQEHYuskAQQA2AgBB0LrJAEEANgIAIAAgAUEDcjYCBCAAIAFqIgEgASgCBEEBcjYCBAwBC0HQuskAIAI2AgBB2LrJACAAIAVqIgQ2AgAgBCACQQFyNgIEIAAgAWogAjYCACAAIAVBA3I2AgQLDAYLIAAgASAGajYCBEHcuskAQdy6yQAoAgAiAEEPakF4cSICQQhrIgQ2AgBB1LrJAEHUuskAKAIAIAFqIgEgACACa2pBCGoiAjYCACAEIAJBAXI2AgQgACABakEoNgIEQei6yQBBgICAATYCAAwDC0HcuskAIAA2AgBB1LrJAEHUuskAKAIAIAVqIgE2AgAgACABQQFyNgIEDAELQdi6yQAgADYCAEHQuskAQdC6yQAoAgAgBWoiATYCACAAIAFBAXI2AgQgACABaiABNgIACyACQQhqDwtBACEAQdS6yQAoAgAiASAFTQ0AQdS6yQAgASAFayIBNgIAQdy6yQBB3LrJACgCACIAIAVqIgI2AgAgAiABQQFyNgIEIAAgBUEDcjYCBAwBCyAADwsgAEEIagvjHQMofwN7C30jAEGgAmsiBCQAAn0gAy0AHCIFQQJGBED9DAAAAAAAAIA/AABAwQAAEEEhLEEAIQVDAACAPyEvQwAAgD8hMkMAAIA/DAELIARBwgFqIANBH2otAAA6AAAgBCADLwAdOwHAASADKgIUIS8gAyoCECEyIAP9AAIAISwgAyoCGAshNCAEQQAQtgk2ArABIARBADYCrAEgBEIANwKkASAEQQA2AlwgBEKAgICAwAA3AlQgBEIENwJMIARCADcCRCAEQoCAgIDAADcCPCAEQQA2AiwgBEEANgIkIARBADYCHCAEQQA2AhQgBEEANgIMIARBADYCBCAEQQA2AjQgBEGAgICAeDYCbCAEQYCAgIB4NgJ4IAQgLP0LAoQBIAQgMjgClAEgBCAvOAKYASAEIDQ4ApwBIAQgBToAoAEgBEG8AWpBADoAACAEQaMBaiAEQcIBai0AADoAACAEQQA2AmggBEKAgICAwAA3AmAgBEIANwK0ASAEIAQvAcABOwChASABKAJcIRYgBCACOgDIASAEIBY2AsQBIAQgASgCCCIHNgLAASAEQQRqIARBwAFqEKUEIAIEQCAEQQE6AKABCwJAAkACQAJAQYCAMBBxIhFFDQAgEUEEayIhLQAAQQNxBEAgEUEAQYCAMPwLAAtBgIAQEHEiC0UNACALQQRrIiItAABBA3EEQCALQQBBgIAQ/AsAC0GAgDAQcSISRQ0AIBJBBGsiIy0AAEEDcQRAIBJBAEGAgDD8CwALQYCAMBBxIhNFDQAgE0EEayIkLQAAQQNxBEAgE0EAQYCAMPwLAAtBgIDAABBxIg5FDQAgDkEEayIlLQAAQQNxBEAgDkEAQYCAwAD8CwALQYCACBBxIg9FDQAgD0EEayImLQAAQQNxBEAgD0EAQYCACPwLAAtBgIAQEHEiDEUNACAMQQRrIicoAgAiBUEDcSIDBEAgDEEAQYCAEPwLAAsgBwRAIA9BAiACGyEoIAxBBCACGyEpQYCABEEAIAIbIR5DAACAPyABKgJAIAEtAFhBAkYiAxtDAAAAACABKgI8IAMbIjKTITRDAAAQQSABKgJIIAMbQwAAQMEgASoCRCADGyI1k0MAAH5DlSE2IAEoAhAhKiABKAIUIR8gASgCBCErA0BBgIAEIAcgEGsiAyADQYCABE8bIRkgByAQRwRAIBBBGGwhIEEAIQggKyEJICohFCALIRpBACEFIAwhGyAOIQogDyEcA0AgGgJ/AkAgByAIIBBqIh1LBEAgCSAgaiIDQRFqLwAAIANBE2otAAAiBkEQdHIiDUEIdiEVIANBDmovAQAiFyADQRBqLQAAIhhBEHRyQf8BcbNDAAB/Q5UhMyAD/QACACEsQwAAAAAhMEMAAAAAIS8gDUH/AXEEQCA1IDYgDUEBa0H/AXGzlJIQiQQhLwsgFUH/AXEEQCA1IDYgFUEBa0H/AXGzlJIQiQQhMAsgMiAzIDSUkiEzIDIgGLNDAAB/Q5UgNJSSITEgMiAXQQh2s0MAAH9DlSA0lJIhNyAGBH0gNSA2IAZBAWtB/wFxs5SSEIkEBUMAAAAACyE4IANBFGovAQAhBiADQRZqLQAAIQ0gBSARaiIVICz9HwA4AgAgBSASaiIXIDM4AgAgBSATaiIYIC84AgAgFUEEaiAs/R8BOAIAIBdBBGogNzgCACAYQQRqIDA4AgAgFUEIaiAs/R8COAIAIBdBCGogMTgCACAYQQhqIDg4AgBDAACAPyAGQQh2s/0TIAYgDUEQdHJB/wFxs/0gAf0MAAB/QwAAf0MAAH9DAAB/Q/3nASIsICz95AH9DAAAgL8AAIC/AACAvwAAgL/95AEiLP0fASIxi5MgLP0fACI3i5MiL4xDAAAAABDgCCEwIAogDbNDAAB/Q5VDAAAAP5RD2w9JQJQiOBCZAiIzIDEgMCAwjCI5ICz9DAAAAAAAAAAAAAAAAAAAAAD9Rv1NIiz9xwH9GwJBAXEbkiIxIC8gL5QgMSAxlCA3IDAgOSAs/RsAQQFxG5IiMCAwlJKSkSIxlZT9EyAzIDAgMZWU/SABIDMgLyAxlZT9IAIgOBCbAv0gA/0LAgAgA0EMai8BACIGQf//AXFFBEAgBkEQdAwDCyAGQf8HcSEDIAZBgIACcSENIAZBgPgBcSIGQYD4AUYEQCANQRB0IgZBgICA/AdyIANFDQMaIAYgA0ENdHJBgICA/gdyDAMLIA1BEHQhDSAGRQ0BIAZBDXRBgICA/ABxIANBDXRyQYCAgMADaiANcgwCCyAdIAdB3LvHABCMBwALIAMgA2dBEGsiA0H//wNxQQhqdEH///8DcSANQYCAgNgDciADQRd0a3ILNgIAIAIEQAJ/AkAgHSAfSQRAAn8gFCAgaiIGQRRqKAIAIgNBBEsEQCAGQQRqKAIAIQMgBkEIaigCAAwBCyAGQQRqCyEGIAMNAUEAIQNBAAwCCyAdIB9BzLvHABCMBwwHCyAGKAIACyEGIBwgAzsBACAbIAY2AgALIAlBGGohCSAUQRhqIRQgGkEEaiEaIAVBDGohBSAbQQRqIRsgCkEQaiEKIBxBAmohHCAIQQFqIgggGUkNAAsLIAQgHjYCjAIgBCApNgKIAiAEIB42AoQCIAQgKDYCgAIgBEEANgL8ASAEQoCAgIDAADcC9AEgBEKAgICAwAA3AuwBIARCgICQgMAANwLkASAEIA42AuABIARBgIAMNgLcASAEIBM2AtgBIARBgIAMNgLUASAEIBI2AtABIARBgIAENgLMASAEIAs2AsgBIARBgIAMNgLEASAEIBE2AsABIARBBGogECAZIARBwAFqEJcBIBAgGWoiECAHSQ0ACyAnKAIAIgVBA3EhAwsCQAJAIAVBeHFBhIAQQYiAECADG08EQCADQQAgBUGogBBPGw0GIAwQogIgJigCACICQXhxQYSACEGIgAggAkEDcSIDG0kNBSADQQAgAkGogAhPGw0GIA8QogIgJSgCACICQXhxQYSAwABBiIDAACACQQNxIgMbSQ0FIANBACACQaiAwABPGw0GIA4QogIgJCgCACICQXhxQYSAMEGIgDAgAkEDcSIDG0kNBSADQQAgAkGogDBPGw0GIBMQogIgIygCACICQXhxQYSAMEGIgDAgAkEDcSIDG0kNBSADQQAgAkGogDBPGw0GIBIQogIgIigCACICQXhxQYSAEEGIgBAgAkEDcSIDG0kNBSADQQAgAkGogBBPGw0GIAsQogIgISgCACICQXhxQYSAMEGIgDAgAkEDcSIDG0kNBSADQQAgAkGogDBPGw0GIBEQogIgFkUNBEGAgJABEHEiAkUNAyACQQRrIg4oAgAiBUEDcSIDBEAgAkEAQYCAkAH8CwALIAdFDQIgASgCICELIAEoAhwhD0EAIQkDQEGAgAQgByAJayIDIANBgIAETxshCiAHIAlHBEAgDyAJQQlsaiEDQQAhCCACIQUDQCALIAggCWoiDE0EQCAMIAtB/LvHABCMBwALIANBBGr9XAAAISwgA/1cAAAhLSAFQSBqIANBCGosAACyQwAA/kKVOAIAIAUgLf2HAf2nAf36Af0MAAD+QgAA/kIAAP5CAAD+Qv3nAf0LAgAgBUEQaiAs/YcB/acB/foB/QwAAP5CAAD+QgAA/kIAAP5C/ecB/QsCACAFQSRqIQUgA0EJaiEDIAhBAWoiCCAKSQ0ACwsgBEEEaiAJIAogAkGAgCQQzgMgByAJIApqIglLDQALDAELDAQLIA4oAgAiBUEDcSEDCwJAAkAgBUF4cUGEgJABQYiAkAEgAxtPBEAgA0EAIAVBqICQAU8bDQYgAhCiAiAWQQFGDQRBgIDwARBxIgJFDQMgAkEEayIOKAIAIgVBA3EiAwRAIAJBAEGAgPAB/AsACyAHRQ0CIAEoAiwhCyABKAIoIQ9BACEKA0BBgIAEIAcgCmsiAyADQYCABE8bIQkgByAKRwRAIA8gCkEPbGohA0EAIQggAiEFA0AgCyAIIApqIgxNBEAgDCALQYy8xwAQjAcACyADQQRq/VwAACEsIANBCGr9XAAAIS0gA0EMaiwAACEMIANBDWosAAAhFCAD/VwAACEuIAVBOGogA0EOaiwAALJDAAD+QpU4AgAgBUE0aiAUskMAAP5ClTgCACAFQTBqIAyyQwAA/kKVOAIAIAUgLv2HAf2nAf36Af0MAAD+QgAA/kIAAP5CAAD+Qv3nAf0LAgAgBUEgaiAt/YcB/acB/foB/QwAAP5CAAD+QgAA/kIAAP5C/ecB/QsCACAFQRBqICz9hwH9pwH9+gH9DAAA/kIAAP5CAAD+QgAA/kL95wH9CwIAIAVBPGohBSADQQ9qIQMgCEEBaiIIIAlJDQALCyAEQQRqIAogCSACQYCAPBDiAyAHIAkgCmoiCksNAAsMAQsMBAsgDigCACIFQQNxIQMLAkAgBUF4cUGEgPABQYiA8AEgAxtPBEAgA0EAIAVBqIDwAU8bDQUgAhCiAiAWQQJNDQNBgIDQAhBxIgJFDQIgAkEEayIJKAIAIgVBA3EiAwRAIAJBAEGAgNAC/AsACyAHBEAgASgCOCEKIAEoAjQhC0EAIQgDQEGAgAQgByAIayIBIAFBgIAETxshASAHIAhHBEBBACEFIAIhAwNAIARBwAFqIAsgCiAFIAhqELoGIAMgBP0ABMAB/QsCACADQRBqIAT9AATQAf0LAgAgA0EgaiAE/QAE4AH9CwIAIANBMGogBP0ABPAB/QsCACADQUBrIAT9AASAAv0LAgAgA0HQAGogBCoCkAI4AgAgA0HUAGohAyAFQQFqIgUgAUkNAAsLIARBBGogCCABIAJBgIDUABDjAyABIAhqIgggB0kNAAsgCSgCACIFQQNxIQMLIAVBeHFBhIDQAkGIgNACIAMbSQ0EIANBACAFQaiA0AJPGw0BIAIQogIMAwsMAwsMAwsACwJAIARBBGoiARCjASICBEAgAEECNgIAIAAgAjYCBCABEMACDAELIAAgBEEEakG8AfwKAAALIARBoAJqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAv9IgMRfwR+AX0jAEHwAWsiAiQAIAEoAgwhBQJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCFCIEIAEoAhAiA0kEQANAIAQgBWotAAAiBkEJayIHQRdLQQEgB3RBk4CABHFFcg0CIAEgBEEBaiIENgIUIAMgBEcNAAsgAyEECyACIAUgAyAEQQFqIgEgAyABIANJGxD5ASACKAIEIQMgAigCACEEQRQQcSIBRQ0BIAEgBDYCDCABQQU2AgAgACABNgIEIABBgICAgHg2AgAgASADNgIQDAYLAkACQAJAAkAgBkHbAEYEQCABIAEtABhBAWsiBjoAGCAEQQFqIQQgBkH/AXFFDQQgASAENgIUIAJBAToAYCACIAE2AlwgAkEANgJsIAJCgICAgIABNwJkIAJB2AFqIRAgAkG4AWohDkEIIREDQCACQbABaiACQdwAahCfAyACLQCwAUEBRgRAIAIoArQBIQQMCAsCQAJAAkACQAJAAkAgAi0AsQFBAUYEQCACKAJcIggoAgwhBgJAIAgoAhQiBCAIKAIQIgNJBEADQCAEIAZqLQAAIgdBCWsiBUEXS0EBIAV0QZOAgARxRXINAiAIIARBAWoiBDYCFCADIARHDQALIAMhBAsgAkHQAGogBiADIARBAWoiBCADIAMgBEsbEPkBIAIoAlQhAyACKAJQIQVBFBBxIgRFDQ4gBCAFNgIMIARBBTYCACAEIAM2AhAMDwsCQAJAIAdB2wBHBEAgB0H7AEYNASAIIAJB7wFqQdjAwQAQ7gEhBQwOCyAIIAgtABhBAWsiBToAGCAEQQFqIQQgBUH/AXFFDQsgCCAENgIUIAIgCDYC5AEgAkEBOgDoASACQbABaiACQeQBahCfAwJAAkAgAi0AsAFBAUYEQCACKAK0ASEDDAELAkACQAJAAkACQAJAAkACQAJAAkACQCACLQCxAUEBRgRAIAJBsAFqIAIoAuQBELsDIAIoArABQQFGBEAgAigCtAEhAwwNCyACKQO4ASETIAJBsAFqIAJB5AFqEJ8DIAItALABQQFGBEAgAigCtAEhAwwNCyACLQCxAUEBRw0CIAJBsAFqIAIoAuQBELsDIAIoArABQQFHDQEgAigCtAEhAwwMC0EAQcCCwQBBgP3AABDbBiEDDAsLIAIpA7gBIRQgAkGwAWogAkHkAWoQnwMgAi0AsAFBAUYEQCACKAK0ASEDDAsLIAItALEBQQFHDQIgAkGwAWogAigC5AEQ4AEgAi0AsAFBAUcNASACKAK0ASEDDAoLQQFBwILBAEGA/cAAENsGIQMMCQsgAi0AsQEhBiACQbABaiACQeQBahCfAyACLQCwAUEBRgRAIAIoArQBIQMMCQsgAi0AsQFBAUcNAiACQbABaiACKALkARDlASACLQCwAUEBRw0BIAIoArQBIQMMCAtBAkHAgsEAQYD9wAAQ2wYhAwwHCyACLQCxASEHIAJBsAFqIAJB5AFqEJ8DIAItALABQQFGBEAgAigCtAEhAwwHCyACLQCxAUEBRw0CIAJBsAFqIAIoAuQBEPEBIAItALABQQFHDQEgAigCtAEhAwwGC0EDQcCCwQBBgP3AABDbBiEDDAULIAItALEBIQkgAkGwAWogAkHkAWoQnwMgAi0AsAFBAUYEQCACKAK0ASEDDAULIAItALEBQQFHDQEgAkGwAWogAigC5AEQ0gIgAigCsAEiBEECRgRAIAIoArQBIQMMBQsgAigCtAEhBSACQbABaiACQeQBahDHBiACKAK0ASEDIAIoArABIg9BAmsOAgMEAgtBBEHAgsEAQYD9wAAQ2wYhAwwDC0EFQcCCwQBBgP3AABDbBiEDDAILIAMhDCAFIQMMAgtBBkHAgsEAQYD9wAAQ2wYhAwtBAiEECyAIIAgtABhBAWo6ABggAiAIELoDIgU2AtgBIAIgBjoA0gEgAiAHOgDRASACIAk6ANABIAIgFDcDyAEgAiATNwPAASACIAw2ArwBIAIgDzYCuAEgAiADNgK0ASACIAQ2ArABIARBAkcEQEECIQYgBQ0JIAJBoAFqIA5BEGr9AAMA/QsDACACIA79AAMA/QsDkAEgBCEGDAgLQQIhBiAFDQEMBwsgCCAILQAYQQFrIgU6ABggBEEBaiEEIAVB/wFxRQ0FIAggBDYCFCACQQE6AOgBIAIgCDYC5AFCACEVQQ4hBkENIQdBAiEFQQIhDEECIQpCACEWA0AgAkGwAWoiAyACQeQBahDRAiACLQCwAUEBRg0DAkAgAi0AsQFBAUYEQCACKALkASIEQQA2AgggBCAEKAIUQQFqNgIUIAMgBEEMaiAEEIICIAIoArQBIQMgAigCsAFBAkYNBgJAAkACQAJAAkACQAJAAkACQAJAAkACQCACKAK4AUEDaw4JAQ0DAg0ADQ0EDQsgAykAAELw5L2D18ycuvkAUQ0GIAMpAABC5dyN+8asmrfnAFINDCAHQf8BcUENRg0HQQIhBEHI/cAAQQgQnwchAwwSCyADQZOCwQBBAxDbB0UNCCADQZaCwQBBAxDbBw0LIAVBAkYNCUECIQRBloLBAEEDEJ8HIQMMEQsgA0HMgcEAQQYQ2wdFDQIMCgsgA0G1mMgAQQUQ2wcNCSAVUA0CQQIhBEG1mMgAQQUQnwchAwwPCyADQYiCwQBBCxDbBw0IIApBAkYNBEECIQRBiILBAEELEJ8HIQMMDgsgFlBFBEBBAiEEQcyBwQBBBhCfByEDDA4LIAJBsAFqIAQQqwUgAikDuAEhFEIBIRYgAigCsAFBAUcNCAwLCyACQbABaiAEEKsFIAIpA7gBIRNCASEVIAIoArABQQFHDQcMCgsgBkH/AXFBDkcEQEECIQRBsNHHAEEIEJ8HIQMMDAsgBCgCDCELAkACQAJAIAQoAhQiAyAEKAIQIgZJBEADQAJAIAMgC2otAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgBCADQQFqIgM2AhQgAyAGRw0ACyAGIQMLIAJBKGogCyAGIANBAWoiAyAGIAMgBkkbEPkBIAIoAiwhBCACKAIoIQVBFBBxIgNFDRggA0EDNgIADAELIAJBIGogCyAGIANBAWoiAyAGIAMgBkkbEPkBIAIoAiQhBCACKAIgIQVBFBBxIgNFDRcgA0EGNgIACyADIAU2AgwgAyAENgIQQQIhBAwMCyAEIANBAWo2AhQgAkGwAWogBBDgASACLQCxASEGIAItALABQQFHDQYMCQsgBCgCDCELAkACQAJAIAQoAhQiAyAEKAIQIgdJBEADQAJAIAMgC2otAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgBCADQQFqIgM2AhQgAyAHRw0ACyAHIQMLIAJBOGogCyAHIANBAWoiAyAHIAMgB0kbEPkBIAIoAjwhBCACKAI4IQVBFBBxIgNFDRcgA0EDNgIADAELIAJBMGogCyAHIANBAWoiAyAHIAMgB0kbEPkBIAIoAjQhBCACKAIwIQVBFBBxIgNFDRYgA0EGNgIACyADIAU2AgwgAyAENgIQQQIhBAwLCyAEIANBAWo2AhQgAkGwAWogBBDlASACLQCxASEHIAItALABQQFHDQUMCAsgBCgCDCEKAkACQAJAIAQoAhQiAyAEKAIQIglJBEADQAJAIAMgCmotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgBCADQQFqIgM2AhQgAyAJRw0ACyAJIQMLIAJByABqIAogCSADQQFqIgMgCSADIAlJGxD5ASACKAJMIQQgAigCSCEFQRQQcSIDRQ0WIANBAzYCAAwBCyACQUBrIAogCSADQQFqIgMgCSADIAlJGxD5ASACKAJEIQQgAigCQCEFQRQQcSIDRQ0VIANBBjYCAAsgAyAFNgIMIAMgBDYCEEECIQQMCgsgBCADQQFqNgIUIAJBsAFqIAQQ8QEgAi0AsQEhCiACLQCwAUEBRw0EDAcLIAxBAkcEQEECIQRBk4LBAEEDEJ8HIQMMCQsgAkGwAWogBBCwBUECIQQgAigCtAEiEiEDIAIoArABIgxBAkcNAwwICyACQbABaiAEELAFQQIhBCACKAK0ASIDviEXIAIoArABIgVBAkcNAgwHCyAWUARAQQIhBEHMgcEAQQYQnAchAwwHCyAVUARAQQIhBEG1mMgAQQUQnAchAwwHCyAGQf8BcUEORgRAQQIhBEGw0ccAQQgQnAchAwwHCyAHQf8BcUENRgRAQQIhBEHI/cAAQQgQnAchAwwHCyAMQQAgDEECRxshBCAFQQAgBUECRxshCSAKQQFxIQ8gEiEDDAYLIAQQoAEiA0UNAAsMAwsgEBCxBAwFCyACKAJoIQQgAigCZCEDDA4LIAIoArQBIQMLQQIhBAsgCCAILQAYQQFqOgAYIAIgCBDiBCIFNgLYASACIAY6ANIBIAIgBzoA0QEgAiAPOgDQASACIBM3A8gBIAIgFDcDwAEgAiAXOAK8ASACIAk2ArgBIAIgAzYCtAEgAiAENgKwASAEQQJHBEBBAiEGIAUNAyACQaABaiAOQRBq/QADAP0LAwAgAiAO/QADAP0LA5ABIAQhBiADIQUMAwtBAiEGIAVFBEAgAyEFDAMLIBAQsQQgAyEFDAILIAJBGGogBiADIAQgAyADIARLGxD5ASACKAIcIQMgAigCGCEFQRQQcSIEDQUMCAsgAyEFCyAGQQJGDQQgAkGAAWoiCCACQaABav0AAwD9CwMAIAIgAv0AA5AB/QsDcCACKAJkIA1GBEAjAEEgayIDJAACQCACQeQAaiIEKAIAIgdBmbPmDEsEf0EABUEEIAdBAXQiCiAKQQRNGyIKQShsIQsgAyAHBH8gAyAHQShsNgIcIAMgBCgCBDYCFEEIBUEACzYCGCADQQhqQQggCyADQRRqEIUHIAMoAghBAUcNASADKAIQIQQgAygCDAsgBEHUgsEAEJMJAAsgAygCDCEHIAQgCjYCACAEIAc2AgQgA0EgaiQAIAIoAmghEQsgESANQShsaiIDIAU2AgQgAyAGNgIAIAMgAv0AA3D9CwIIIANBGGogCP0AAwD9CwIAIAIgDUEBaiINNgJsDAALAAsgASACQe8BakH4v8EAEO4BIQQMBwsgAkEQaiAGIAMgBCADIAMgBEsbEPkBIAIoAhQhAyACKAIQIQVBFBBxIgRFDQMLIAQgBTYCDCAEQRg2AgAgBCADNgIQDAMLIAUgCBDrBSEEDAILIAJBCGogBSADIAQgAyADIARLGxD5ASACKAIMIQMgAigCCCEEQRQQcSIBRQ0AIAEgBDYCDCABQRg2AgAgACABNgIEIABBgICAgHg2AgAgASADNgIQDAULAAtBgICAgHghAyACKAJkIgVFDQAgAigCaCIGQQRrKAIAIgdBeHEiCSAFQShsIgVBBEEIIAdBA3EiBxtqSQ0EIAdBACAJIAVBJ2pLGw0FIAYQogILIAEgAS0AGEEBajoAGCACIAEQugMiBTYCvAEgAiANNgK4ASACIAQ2ArQBIAIgAzYCsAEgA0GAgICAeEcEQCAFRQ0CIAMEQCAEQQRrKAIAIgZBeHEiByADQShsIgNBBEEIIAZBA3EiBhtqSQ0HIAZBACAHIANBJ2pLGw0IIAQQogILIAUhBAwBCyAFRQ0AIAJBvAFqELEECyAEIAEQ6wUhASAAQYCAgIB4NgIAIAAgATYCBAwBCyAAIA02AgggACAENgIEIAAgAzYCAAsgAkHwAWokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvfFwIafwJ8IwBBsARrIgMkACADQgA3A5gBIANCADcDkAEgA0IANwOIASADQgA3A4ABIANCADcDeCADQgA3A3AgA0IANwNoIANCADcDYCADQgA3A1ggA0IANwNQIANCADcDSCADQgA3A0AgA0IANwM4IANCADcDMCADQgA3AyggA0IANwMgIANCADcDGCADQgA3AxAgA0IANwMIIANCADcDACADQgA3A7gCIANCADcDsAIgA0IANwOoAiADQgA3A6ACIANCADcDmAIgA0IANwOQAiADQgA3A4gCIANCADcDgAIgA0IANwP4ASADQgA3A/ABIANCADcD6AEgA0IANwPgASADQgA3A9gBIANCADcD0AEgA0IANwPIASADQgA3A8ABIANCADcDuAEgA0IANwOwASADQgA3A6gBIANCADcDoAEgA0IANwPYAyAD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AgBB3o7IAEEBIAEoAgQoAgwRAAAhAwwLCyABKAIAQZjMxABBESABKAIEKAIMEQAAIQMMCgtBASEDIAIgAEEBajYCDCABKAIAIgBBqczEAEERIAEoAgQiBSgCDCIEEQAADQkCQCABLQAKQYABcUUEQCAAQbuzxQBBASAEEQAADQsgAkEMaiABEMQERQ0BDAsLIABB24HCAEECIAQRAAANCiACQQE6ABMgAiAFNgIYIAIgADYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqEMQEDQogAigCIEHZgcIAQQIgAigCJCgCDBEAAA0KCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCQtBASEDIAEoAgAiBEG6zMQAQRkgASgCBCIGKAIMIgURAAANCCAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQogACABEKcERQ0BDAoLIARB24HCAEECIAURAAANCSACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQkgAigCIEHZgcIAQQIgAigCJCgCDBEAAA0JCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCAtBASEDIAEoAgAiBEHTzMQAQRogASgCBCIGKAIMIgURAAANByAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQkgACABEKcERQ0BDAkLIARB24HCAEECIAURAAANCCACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQggAigCIEHZgcIAQQIgAigCJCgCDBEAAA0ICyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBwtBASEDIAEoAgAiBEHtzMQAQRsgASgCBCIGKAIMIgURAAANBiAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEKcERQ0BDAgLIARB24HCAEECIAURAAANByACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCAC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LQAAQQNrDgUBAAAAAgALIAAgARDKAgwFCyAAKQMIIglC/////////weDIQogCUL///////////8Ag0L/////////9/8AWARAIAlCNIinIQAgCUIAUw0CIAJBsAJqDAMLQeydxgBB753GACAJQgBZIgAbQfOdxgAgClAiAxshBEEDQQQgABtBAyADGyEADAMLIAEoAgBB8ZLGAEEEIAEoAgQoAgwRAAAMAwsgAkEtOgCwAkEBIQggAkGxAmoLIQYCfwJAAkACQAJAAkACQAJAAkAgAEH/D3EiAEUgClBxRQRAIABBAkkgCkIAUnIhBCAKQoCAgICAgIAIhCAKIAAbIglCAoYhCiAJQgGDIQ8CQAJAAkAgAEG1CGtBzHcgABsiAEEASARAIAJBkAJqQYC8xQAgACAAQYWiU2xBFHYgAEF/R2siAGoiB0EEdCIDaykDACIJIApCAoQiCxDdBiACQYACakGIvMUAIANrKQMAIg0gCxDdBiACQfABaiACKQOYAiILIAIpA4ACfCIMIAIpA4gCIAsgDFatfCAAIAdBsdm1H2xBE3ZrQfwAakH/AHFBwABzIgMQoQcgAkGwAWogCSAKIARBf3OsfCILEN0GIAJBoAFqIA0gCxDdBiACQZABaiACKQO4ASILIAIpA6ABfCIMIAIpA6gBIAsgDFatfCADEKEHIAJB4AFqIAkgChDdBiACQdABaiANIAoQ3QYgAkHAAWogAikD6AEiCSACKQPQAXwiDSACKQPYASAJIA1WrXwgAxChByACKQPAASELIAIpA5ABIQkgAikD8AEhDCAAQQJJDQFBACEDIABBP0kNAgwFCyACQYABaiAAQcHoBGxBEnYgAEEDS2siB0EEdCIDKQPg5EUiCSAKQgKEIg0Q3QYgAkHwAGogA0Ho5MUAaikDACILIA0Q3QYgAkHgAGogAikDiAEiDCACKQNwfCIOIAIpA3ggDCAOVq18IAcgAGsgB0HPpsoAbEETdmpB/QBqQf8AcUHAAHMiABChByACQSBqIAkgCiAEQX9zrHwiDBDdBiACQRBqIAsgDBDdBiACIAIpAygiDCACKQMQfCIOIAIpAxggDCAOVq18IAAQoQcgAkHQAGogCSAKEN0GIAJBQGsgCyAKEN0GIAJBMGogAikDWCIJIAIpA0B8IgsgAikDSCAJIAtWrXwgABChByACKQMw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ACABIAA2ArADQdjmyABBKyABQbADakHY6MAAQbDwwAAQ4AYAC0G4u8kAQQA2AgBBtLvJAEEAOgAAIARBhAhPBEAgBBCbBwsgA0GECE8EQCADEJsHCyACQQRrKAIAIgNBeHEiBEHwAUH0ASADQQNxIgMbSQ0CIANBACAEQZQCTxsNACACEKICIAAgBjYCBCAAQQA2AgAgAUHgCWokAA8LC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAvFFwICfwF+IwBBQGoiAiQAIAEoAgQhAyABKAIAIQECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCACIALQAAQQFrDiMBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhsjHB0eHyAhIgALIAIgAEEEajYCBCACIABBCGo2AiAgAiAAQQxqNgIkIAIgAkEkaq1CgICAgLAMhDcDGCACQoCAgIDADCIEIAJBIGqthDcDECACIAQgAkEEaq2ENwMIIAJCAzcCNCACQQQ2AiwgAkHsncUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwrCyABQYyexQBBFiADKAIMEQAADCoLIAFBop7FAEElIAMoAgwRAAAMKQsgAUHHnsUAQR4gAygCDBEAAAwoCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGIn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwnCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkG8n8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwmCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkHsn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwlCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGcoMUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwkCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMI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CyAJQRhqIgIgCUGcA2pBwAH8CgAAQfQBEHEiAUUNAiABIAY2AgAgAUEEaiACQcAB/AoAACABIAs6APABIAEgBDYC7AEgASAHNgLoASABQYCAgIB4NgLcASABIBU3AtQBIAEgCDYC0AEgAUEANgLMASABQoCAgIAQNwLEASAAQbDuwAA2AgwgAEEBNgIIIABBmO7AADYCBCAAIAE2AgAgA0GAgICAeHJBgICAgHhGDQMgBUEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgA2pJDQQgAEEAIAEgA0EnaksbDQUgBRCiAgwDC0GgnsYAQTcgCUHfBGpBtJPBAEHYnsYAEOAGAAtB2JrIABD/BwsACyAJQeAEaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL/Q0BBX8jAEEwayICJAACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOBQECAwQFAAtBASEDIAEoAgAiBEHUpccAQQggASgCBCIGKAIMIgURAAANBiAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEIQGRQ0BDAgLIARB24HCAEECIAURAAANByACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIQGDQcgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0HCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBgtBASEDIAEoAgAiBEHcpccAQQggASgCBCIGKAIMIgURAAANBSAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQcgACABEIUGRQ0BDAcLIARB24HCAEECIAURAAANBiACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIUGDQYgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0GCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBQtBASEDIAEoAgAiBEHkpccAQQkgASgCBCIGKAIMIgURAAANBCAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQYgACABEIYGRQ0B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BwsgA0IANwGCASADQdzkATsBgAEMBgsgA0IANwGCASADQdzcATsBgAEMBQsgA0IANwGCASADQdy4ATsBgAEMBAsgA0IANwGCASADQdzEADsBgAEMAwsgA0IANwGCASADQdzOADsBgAEMAgsgAyAENgKAASAAIAMpAoABNwIAIABBCGogA0GIAWovAQA7AQAgBSAJKAIAIAgoAhARAgBFDQMMBQtBACEADAULQQAhAUECCyEEIAAgAykCgAE3AgAgAEEIaiADQYgBai8BADsBACABIAQgASAESxsiAkH/AXEhBCAIKAIQIQoDQCAFIAAgAWotAAAgChECAA0DIAQgAUEBaiIBRw0ACyADIAI6AGALIAYgB0cNAAtBACEADAELQQEhAAsgA0GQAWokACAAC+MJAQZ/IAFBA2wiBCAAKAKQBCICSwRAIAQgAmsiBSAAKAKIBCACa0sEQCAAQYgEaiACIAVBBEEEEKQFIAAoApAEIQILIAAoAowEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKQBAsgACgCnAQiAiABSQRAIAEgAmsiBSAAKAKUBCACa0sEQCAAQZQEaiACIAVBBEEEEKQFIAAoApwEIQILIAAoApgEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKcBAsgACgCqAQiAiAESQRAIAQgAmsiBSAAKAKgBCACa0sEQCAAQaAEaiACIAVBBEEEEKQFIAAoAqgEIQILIAAoAqQEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKoBAsgACgCtAQiAiAESQRAIAQgAmsiBCAAKAKsBCACa0sEQCAAQawEaiACIARBBEEEEKQFIAAoArQEIQILIAAoArAEIgUgAkECdGohAyAEQQJPBH8gBEECdEEEayIGBEAgA0EAIAb8CwALIAIgBGoiA0EBayECIAUgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgK0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AXI6AABBACEDDAQLIAIoAggiAyACKAIARgRAIAJB+JPGABCnBgsgAiADQQFqNgIIIAIoAgQgA2ogBjoAAEEAIQMMAwsgBiADIANByKXGABDqBwALIARBFDYCFCABIARBFGoQiwchAwwBCyAIIAMgA0HIpcYAEOoHAAsgBEEgaiQAIANFDQ4MDQsgAigCACADRgRAIAJB+JLGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQSI6AAAMCwsgAigCACADRgRAIAJBiJPGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQdwAOgAADAoLIAIoAgAgA0YEQCACQZiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEvOgAADAkLIAIoAgAgA0YEQCACQaiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEIOgAADAgLIAIoAgAgA0YEQCACQbiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEMOgAADAcLIAIoAgAgA0YEQCACQciTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEKOgAADAYLIAIoAgAgA0YEQCACQdiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakENOgAADAULIAIoAgAgA0YEQCACQeiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEJOgAADAQLIAMgBCAGQcicxgAQ6gcACyAHKAIMIQMMAwsgB0EENgIUIAAgASAHQRRqEPIGDAYLIAQgBkGYnMYAEIwHAAsMAQsLIABBAjYCACAAIAM2AgQMAgsgACADNgIIIAAgATYCBCAAQQA2AgAMAQsgACADNgIIIAAgATYCBCAAQQE2AgALIAdBIGokAAvFBwEEfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOBQECAw0EAAsgAC0ABEEDRw0MIAAoAggiAygCACEAIANBBGooAgAiASgCACICBEAgACACEQMACyABKAIEIgEEQCAAQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyABakkNDyACQQAgBCABQSdqSxsNDiAAEKICCyADQQRrKAIAIgBBeHEiAUEQQRQgAEEDcSIAG0kNDiAARSABQTRJcg0LDA0LAkAgAC0ABEEBaw4CAAAKCyAAKAIIIgMNCAwJCwJAIAAtAARBAWsOAgAABwsgACgCCCIDDQUMBgsgACgCBCIDQQBKBEAgACgCCCIBQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyADakkNDCACQQAgBCADQSdqSxsNCyABEKICCyAAKAIQIgNFDQkgACgCFCIAKAIAIgEEQCADIAERAwALIAAoAgQiAEUNCSADQQRrKAIAIgFBeHEiAkEEQQggAUEDcSIBGyAAakkNCyABRQ0IIAIgAEEnaksNCgwICwJAIAAtAARBAWsOAgAAAgsgACgCCCIDDQAMAQsgACgCDCIBQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyADakkNCSACQQAgBCADQSdqSxsNCCABEKICCwJAQQMgAC0AFCIDQQRrIANBA00bQf8BcQ4EBwcHAAELIANBAWsOAgAABgsgACgCGCIBRQ0FIAAoAhwiA0EEaygCACIAQXhxIgJBBEEIIABBA3EiABsgAWpPBEAgAEUgAiABQSdqTXINBQwHCwwHCyAAKAIMIgFBBGsoAgAiAkF4cSIEQQRBCCACQQNxIgIbIANqSQ0GIAJBACAEIANBJ2pLGw0FIAEQogILIAAoAhQiA0UNAyAAKAIYIgAoAgAiAQRAIAMgAREDAAsgACgCBCIARQ0DIANBBGsoAgAiAUF4cSICQQRBCCABQQNxIgEbIABqSQ0FIAFFIAIgAEEnak1yDQIMBAsgACgCDCIBQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyADakkNBCACQQAgBCADQSdqSxsNAyABEKICCyAAKAIUIgNFDQEgACgCGCIAKAIAIgEEQCADIAERAwALIAAoAgQiAEUNASADQQRrKAIAIgFBeHEiAkEEQQggAUEDcSIBGyAAakkNAyABRSACIABBJ2pNcg0ADAILIAMQogILDwtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALmgkCCH8BeyAAIAEoAgQiAjYCPCABKAIAIgUhAyAAKAIIIgcgBUkEQCAFIAciA2siBiAAKAIAIANrSwRAIAAgAyAGQQRBJBCkBSAAKAIIIQMLIAAoAgQhCSAGQQNxIgQEQCADIARqIAUgB2sgBGshBiAJIANBJGxqIQIDQCAC/QwAAAAAAAAAAAAAAAAAAAAA/QsCACACQSBqQQA7AQAgAkEQaiAK/QsCACACQSRqIQIgBEEBayIEDQALIQMLIAcgBWtBfE0EQCAJIANBJGxqIQIDQCAC/QwAAAAAAAAAAAAAAAAAAAAA/QsCACACQSBqQQA7AQAgAkEQaiAK/QsCACACQSRqIAr9CwIAIAJBNGogCv0LAgAgAkHEAGpBADsBACACQcgAaiAK/QsCACACQdgAaiAK/QsCACACQegAakEAOwEAIAJB7ABqIAr9CwIAIAJB/ABqIAr9CwIAIAJBjAFqQQA7AQAgAkGQAWohAiADQQRqIQMgBkEEayIGDQALCyAAKAI8IQILIABBADYCICAAIAM2AggCQAJ/AkACQCACRQRAIABBADYCLAwBCyAFBEBBACEEIAAoAhggBUkEQCAAQRhqQQAgBUECQRIQpAUgACgCICEEIAAoAjwhAgsgBUESbCIDBEAgACgCHCAEQRJsakEAIAP8CwALIABBADYCLCAAIAQgBWo2AiAgAkEBTQ0BQQAhBCAAKAIkIAVJBEAgAEEkakEAIAVBAkEeEKQFIAAoAiwhBCAAKAI8IQILIAVBHmwiAwRAIAAoAiggBEEebGpBACAD/AsACyAAQQA2AjggACAEIAVqNgIsIAJBAk0NBEEAIQQgACgCMCAFSQRAIABBMGpBACAFQQJBKhCkBSAAKAI4IQQLIAVBKmwiAwRAIAAoAjQgBEEqbGpBACAD/AsACyAEIAVqIQQgAEE4agwDC0EAIQQgAEEANgIsIAJBAUcNAQsgAEEANgI4DAILIABBADYCOCACQQJNDQEgAEE4agsgBDYCAAsgACgCFCEEIABBADYCFCAAKAIQIQcCQAJAAkACQCAEBEAgByECA0AgAkEUaigCACIDQQVPBEAgAkEIaigCACIIQQRrKAIAIgZBeHEiCSADQQJ0IgNBBEEIIAZBA3EiBhtqSQ0DIAZBACAJIANBJ2pLGw0EIAgQogILIAJBGGohAiAEQQFrIgQNAAsLIAEtAAhFDQMgBUUEQEEAIQMMAwtBACEDIAAoAgwgBUkEQCAAQQxqQQAgBUEEQRgQpAUgACgCECEHIAAoAhQhAwsgBUEBayAFQQNxIgQEQCAFQXxxIQUgAyAEaiAHIANBGGxqIQIDQCACQQA2AgAgAkEUakEANgIAIAJBGGohAiAEQQFrIgQNAAshAwtBA0kNAiAHIANBGGxqIQIDQCACQQA2AgAgAkHcAGpBADYCACACQcQAakIANwIAIAJBLGpCADcCACACQRRqQgA3AgAgAkHgAGohAiADQQRqIQMgBUEEayIFDQALDAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAAIAM2AhQLC8gGAQR/AkACQCAAKAIMIgIEQCAAKAIQIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILIAAoAhgiAgRAIAAoAhwiA0EEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAQgAkEnaksbDQIgAxCiAgsgACgCPCICBEAgACgCQCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAKAJIIgIEQCAAKAJMIgNBBGsoAgAiAUF4cSIEIAJBAnQiAkEEQQggAUEDcSIBG2pJDQEgAUEAIAQgAkEnaksbDQIgAxCiAgsgACgCVCICBEAgACgCWCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAKAJgIgJBgICAgHhyQYCAgIB4RwRAIAAoAmQiA0EEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAQgAkEnaksbDQIgAxCiAgsgACgCbCICBEAgACgCcCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAKAJ4IgIEQCAAKAJ8IgNBBGsoAgAiAUF4cSIEIAJBAnQiAkEEQQggAUEDcSIBG2pJDQEgAUEAIAQgAkEnaksbDQIgAxCiAgsCQCAAKAKEASICQYCAgIB4Rg0AIAIEQCAAKAKIASIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNAiABQQAgBCACQSdqSxsNAyADEKICCyAAKAKQASICBEAgACgClAEiA0EEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgAmpJDQIgAUEAIAQgAkEnaksbDQMgAxCiAgsgACgCnAEiAkUNACAAKAKgASIAQQRrKAIAIgNBeHEiASACQQJ0IgJBBEEIIANBA3EiAxtqSQ0BIANBACABIAJBJ2pLGw0CIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL3xADB38CfgF7IwBBIGsiBSQAAkACQCAAKAIAIgJFBEAgACgCECIARQ0BIABBk7PFAEEBEJcDIQIMAgsCQAJAAkACQAJAAkACQCAAKAIIIgQgACgCBCIGTwRAIAAoAhAiAkUNASACQeqyxQBBEBCXA0UNAQwHCyAAIARBAWoiATYCCCAFQQhqIAIgBGotAAAiAxDnByAFKAIIIgcEQCAAKAIQIgBFDQggACAHIAUoAgwQlwMhAgwJCyAAIAAoAgxBAWoiBzYCDCAHQfUDTwRAIAAoAhAiAgRAIAJB+rLFAEEZEJcDDQgLIABBAToABAwGCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIANBwQBrDhcCBg8FDwQPDw8PDw8PDwEBAAACAw8PBw8LIAAoAhAiBARAQQEhAiAEQayzxQBBARCXAw0VIAAoAgAiAkUNCSAAKAIEIQYgACgCCCEBCyABIAZPDQggASACai0AAEHMAEcNCCAAIAFBAWo2AgggBUEQaiAAENkEIAUtABBFDQcgBS0AESEBIAAoAhAiAwRAQQEhAiADQfqyxQBB6rLFACABQQFxIgMbQRlBECADGxCXAw0VCyAAIAE6AAQMEQsgACgCECIBBEBBASECIAFBsrPFAEEBEJcDDRQLIANB0ABHDQggACgCECICRQ0JIAJBs7PFAEEGEJcDDREMCQsgACgCECIBBEBBASECIAFB6LLFAEEBEJcDDRMLQQEhAiAAEIYCDRIgA0HBAEYEQCAAKAIQIgEEQCABQbmzxQBBAhCXAw0UCyAAQQEQ1QENEwsgACgCECIBRQ0OIAFB6bLFAEEBEJcDDRIMDgsgACgCECIBBEBBASECIAFBu7PFAEEBEJcDDRILIAUgABC3BkEBIQIgBSgCAEEBcQ0RIAUoAgRBAUYEQCAAKAIQIgFFDQ4gAUG8s8UAQQEQlwMNEgsgACgCECIBRQ0NIAFB3o7IAEEBEJcDDREMDQtBACECIwBBEGsiASQAAkACQAJAAkAgACgCAEUEQCAAKAIQIgMNAQwECyABIABBxwAQrAYgAS0AAEEBRgRAIAEtAAEhAyAAKAIQIgQEQEEBIQIgBEH6ssUAQeqyxQAgA0EBcSIEG0EZQRAgBBsQlwMNBQsgACADOgAEQQAhAiAAQQA2AgAMBAsgACgCECICBEAgASkDCCIJUA0DIAJB+bTFAEEEEJcDDQIDQCAIIAlRBEAgACgCECIDRQ0FQQEhAiADQf20xQBBAhCXA0UNBQwGCwJAIAhQDQAgACgCECICRQ0AIAJB55DGAEECEJcDDQQLQQEhAiAAIAAoAhRBAWo2AhQgCEIBfCEIIABCARCCBkUNAAsMBAsgABDOAiECDAMLIANBk7PFAEEBEJcDIQIMAgtBASECDAELIAAQzgIhAiAAIAAoAhQgCadrNgIUCyABQRBqJAAgAg0ODAwLIAAoAhAiAgRAIAJBvbPFAEEEEJcDDQ4LQQEhAkEAIQEjAEEQayIDJAACQAJAAkACQCAAKAIARQRAIAAoAhAiBA0BDAQLIAMgAEHHABCsBiADLQAAQQFGBEAgAy0AASEEIAAoAhAiBgRAQQEhASAGQfqyxQBB6rLFACAEQQFxIgYbQRlBECAGGxCXAw0FCyAAIAQ6AARBACEBIABBADYCAAwECyAAKAIQIgEEQCADKQMIIglQDQMgAUH5tMUAQQQQlwMNAgNAIAggCVEEQCAAKAIQIgRFDQVBASEBIARB/bTFAEECEJcDRQ0FDAYLAkAgCFANACAAKAIQIgFFDQAgAUHnkMYAQQIQlwMNBAtBASEBIAAgACgCFEEBajYCFCAIQgF8IQggAEIBEIIGRQ0ACwwECyAAEPkDIQEMAwsgBEGTs8UAQQEQlwMhAQwCC0EBIQEMAQsgABD5AyEBIAAgACgCFCAJp2s2AhQLIANBEGokACABDQ8gACgCACIDRQ0GIAAoAggiASAAKAIETw0GIAEgA2otAABBzABHDQYgACABQQFqNgIIIAVBEGogABDZBCAFLQAQRQ0IIAUtABEhASAAKAIQIgMEQCADQfqyxQBB6rLFACABQQFxIgMbQRlBECADGxCXAw0QCyAAIAE6AAQMDAsjAEEgayICJAACQAJAIAAoAgBFBEAgACgCECIBRQ0BIAFBk7PFAEEBEJcDIQEMAgsgAiAAEK8GIAIoAgBFBEAgACgCECIDBEBBASEBIANB+rLFAEHqssUAIAItAARBAXEiAxtBGUEQIAMbEJcDDQMLIAAgAv0AAgD9CwIADAELIAAoAhBFDQAgAP0AAgAhCiAAIAL9AAIA/QsCACACIAr9CwMQIAAQhgIhASAAIAL9AAMQ/QsCAAwBC0EAIQELIAJBIGokACABDQwMCgtBASECIAAQhgINDSAAKAIQIgEEQCABQcGzxQBBBBCXAw0OCyAAEK0EDQ0MCQsgBSkDGCIIUA0AIAAgCBCCBg0KIAAoAhAiAUUNAEEBIQIgAUGts8UAQQEQlwMNDAsgA0HSAEYNBiAAKAIQIgJFDQYgAkGus8UAQQQQlwMNCQwGCyAAKAIQIgJFDQAgAkGus8UAQQQQlwMNCAsgABCGAg0HDAULIAAoAhAiAUUNACABQeqyxQBBEBCXAw0IC0EAIQIgAEEAOgAEIABBADYCAAwHCyAFKQMYIghQDQIgACgCECICBEAgAkHwyccAQQMQlwMNBQsgACAIEIIGDQQMAgsgACAENgIIIABBABDMAQ0DDAELIAAQhgINAgtBACECIAAoAgBFDQMgACAAKAIMQQFrNgIMDAMLQQAhAiAAQQA2AgAMAgtBASECDAELQQAhAgsgBUEgaiQAIAILsB0DB34PfwF7IAEoAgQiCiACKQMQIgYgAikDCCIIIAIpAwAiCSABKQMYhSIDQtii0e/CqeW/LX4gA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhELSgaqbq/qC16d/fiIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISEhYUiA0LYotHvwqnlvy1+IANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhIWFIgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhCADQtii0e/CqeW/LX6FIgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQgASkDECIEQn+FfiIFQjiGIAVCgP4Dg0IohoQgBUKAgPwHg0IYhiAFQoCAgPgPg0IIhoSEIAVCCIhCgICA+A+DIAVCGIhCgID8B4OEIAVCKIhCgP4DgyAFQjiIhISEIAMgBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhH6FIAOJIgencSEMIAdCGYhC/wCDQoGChIiQoMCAAX4hBSABKAIAIQ0CQANAAkAgDCANaikAACIEIAWFIgNCf4UgA0KBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIDUEUEQANAAkAgDSADeqdBA3YgDGogCnFBBnRrIgtBQGopAwAgCVINACALQThrKQMAIAhSDQAgC0EwaykDACAGUQ0DCyADQgF9IAODIgNQRQ0ACwsgBCAEQgGGg0KAgYKEiJCgwIB/g1BFDQIgDCAPQQhqIg9qIApxIQwMAQsLIAAgATYCBCAAIAs2AgAgAEEANgIgDwsgASgCCEUEQAJAIwBBIGsiESQAIBEgAUEQajYCACABKAIMIQwgESARNgIEAkACQAJAAkACQAJAAkACQAJ/AkAgDEEBaiILBEAgASgCBCIUIBRBAWpBA3ZBB2wgFEEISRsiCkEBdiALSQRAIApBAWoiCiALIAogC0sbIgtBD0kNAiALQf////8BTQRAQX8gC0EDdEEHbkEBa2d2IgtB/v//H0sNBSALQQFqDAQLDAsLIBFBBGohFkEAIQogASINIA0oAgRBAWoiEAR/IA0oAgAhDwJAIBBBA3YgEEEHcUEAR2oiDEECTwRAIAxB/v///wNxIg4hCyAPIQoDQCAKIAr9AAMAIhn9TUEH/c0B/QwBAQEBAQEBAQEBAQEBAQEB/U4gGf0Mf39/f39/f39/f39/f39/f/1Q/c4B/QsDACAKQRBqIQogC0ECayILDQALIAwgDkYNASAOQQN0IQogDEEBcSEMCyAKIA9qIQoDQCAKIAopAwAiA0J/hUIHiEKBgoSIkKDAgAGDIANC//79+/fv37//AIR8NwMAIApBCGohCiAMQQFrIgwNAAsLAkAgEEEITwRAIA8gEGogDykAADcAAAwBCyAQRQ0AIA9BCGogDyAQ/AoAAAtBASELQQAhDANAIAwhDyALIQwCQCAPIA0oAgAiC2otAABBgAFHDQAgCyAPQX9zQQZ0aiESA0AgFiANIA8QtAIhAyANKAIEIg4gA6ciFXEiEyEKIA0oAgAiCyATaikAAEKAgYKEiJCgwIB/gyIDUARAQQghFANAIAogFGohCiAUQQhqIRQgCyAKIA5xIgpqKQAAQoCBgoSIkKDAgH+DIgNQDQALCyALIAN6p0EDdiAKaiAOcSIKaiwAAEEATgRAIAspAwBCgIGChIiQoMCAf4N6p0EDdiEKCyAKIBNrIA8gE2tzIA5xQQhPBEAgCiALaiITLQAAIBMgFUEZdiITOgAAIA0oAgAgCkEIayAOcWpBCGogEzoAACALIApBf3NBBnRqIQtB/wFGBEAgDSgCBCEKIA0oAgAgD2pB/wE6AAAgDSgCACAKIA9BCGtxakEIakH/AToAACALIBJBwAD8CgAADAMLIBIgC0HAABCwAwwBCwsgCyAPaiAVQRl2Igs6AAAgDSgCACAOIA9BCGtxakEIaiALOgAACyAMIAwgEEkiCmohCyAKDQALIA0oAgQiDCAMQQFqQQN2QQdsIAxBCEkbBUEACyANKAIMazYCCAwHCwwJC0EEIAtBCHFBCGogC0EESRsLIgtBCGoiCiALQQZ0Ig9qIg0gCkkgDUH4////B0tyDQAgDRBxIg1FDQEgDSAPaiEQIAoEQCAQQf8BIAr8CwALIAtBAWsiEyALQQN2QQdsIBNBCEkbIRUgASgCACENIAwNAkEAIQwMAwsgEUEANgIYIBFBATYCDCARQcS1xAA2AgggEUIENwIQIBFBCGpBmLXEABCNCAsACyAQQQhqIRYgDSkDAEJ/hUKAgYKEiJCgwIB/gyEGQQAhCiAMIQsgDSEPA0AgBlAEQANAIApBCGohCiAPQQhqIg8pAwBCgIGChIiQoMCAf4MiA0KAgYKEiJCgwIB/UQ0ACyADQoCBgoSIkKDAgH+FIQYLIBAgEyANIAZ6p0EDdiAKaiIXQQZ0ayIOQUBqKQMAIBEoAgAiEikDCIUiA0LYotHvwqnlvy1+IA5BOGspAwCFIANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhIUiA0LYotHvwqnlvy1+IA5BMGspAwCFIANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhIUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhELSgaqbq/qC16d/fiIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEIANC2KLR78Kp5b8tfoUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCASKQMAIgRCf4V+IgVCOIYgBUKA/gODQiiGhCAFQoCA/AeDQhiGIAVCgICA+A+DQgiGhIQgBUIIiEKAgID4D4MgBUIYiEKAgPwHg4QgBUIoiEKA/gODIAVCOIiEhIQgAyAEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEfoUgA4mnIhhxIg5qKQAAQoCBgoSIkKDAgH+DIgNQBEBBCCESA0AgDiASaiEOIBJBCGohEiAQIA4gE3EiDmopAABCgIGChIiQoMCAf4MiA1ANAAsLIAZCAX0gBoMhBiAQIAN6p0EDdiAOaiATcSIOaiwAAEEATgRAIBApAwBCgIGChIiQoMCAf4N6p0EDdiEOCyAOIBBqIBhBGXYiEjoAACAWIA5BCGsgE3FqIBI6AAAgECAOQX9zQQZ0aiIOQTBqIA0gF0F/c0EGdGoiEkEwav0AAAD9CwAAIA5BIGogEkEgav0AAAD9CwAAIA5BEGogEkEQav0AAAD9CwAAIA4gEv0AAAD9CwAAIAtBAWsiCw0ACwsgASATNgIEIAEgEDYCACABIBUgDGs2AgggFEUNACAUIBRBBnRBxwBqQUBxIgtqQQlqIgxFDQAgDSALayILQQRrKAIAIgpBeHEiDUEEQQggCkEDcSIKGyAMakkNASAKQQAgDSAMQSdqSxsNAiALEKICCyARQSBqJAAMAwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIBFBADYCGCARQQE2AgwgEUHEtcQANgIIIBFCBDcCECARQQhqQZi1xAAQjQgACwsgACAHNwMAIAAgAikDADcDCCAAQRBqIAJBCGr9AAMA/QsDACAAIAE2AiALkwoBBn8jAEEwayICJAACQAJAAkACQAJAAkBBAyAAKAIAIgQtAAAiAEEEayAAQQNNG0H/AXFBAWsOBAECAwQAC0EBIQAgASgCACIDQbK3xwBBBSABKAIEIgYoAgwiBREAAA0EIARBAWohBAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAURAAANBiAEIAEQxQINBiABKAIAIQMgASgCBCgCDCEFDAELIANB24HCAEECIAURAAANBSACQQE6ACwgAiAGNgIUIAIgAzYCECACQeCBwgA2AiAgAiABKQIINwIkIAIgAkEsajYCGCACIAJBEGo2AhwgBCACQRxqEMUCDQUgAigCHEHZgcIAQQIgAigCICgCDBEAAA0FCyADQd6OyABBASAFEQAAIQAMBAtBASEAIAEoAgAiA0G3t8cAQQsgASgCBCIGKAIMIgURAAANAyAEQQFqIQQCQCABLQAKQYABcUUEQCADQbuzxQBBASAFEQAADQUgBCABEMUCDQUgASgCACEDIAEoAgQoAgwhBQwBCyADQduBwgBBAiAFEQAADQQgAkEBOgAsIAIgBjYCFCACIAM2AhAgAkHggcIANgIgIAIgASkCCDcCJCACIAJBLGo2AhggAiACQRBqNgIcIAQgAkEcahDFAg0EIAIoAhxB2YHCAEECIAIoAiAoAgwRAAANBAsgA0HejsgAQQEgBREAACEADAMLQQEhACABKAIAIgNBwrfHAEEOIAEoAgQiBygCDCIFEQAADQIgBEEBaiEGAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0EIAIgBjYCHCABIARBBGpByKjHACAEQQJqQdioxwAgBEEDakHoqMcAIAJBHGpB+KjHABDuBQ0EIAEoAgAhAyABKAIEKAIMIQUMAQsgA0HbgcIAQQIgBREAAA0DIAJBAToADyACIAc2AhQgAiADNgIQIAJB4IHCADYCICACIAEpAgg3AiQgAiACQQ9qNgIYIAIgAkEQajYCHCACIAY2AiwgAkEcaiAEQQRqQcioxwAgBEECakHYqMcAIARBA2pB6KjHACACQSxqQfioxwAQ7gUNAyACKAIcQdmBwgBBAiACKAIgKAIMEQAADQMLIANB3o7IAEEBIAURAAAhAAwCC0EBIQAgASgCACIDQdC3xwBBBiABKAIEIgYoAgwiBREAAA0BAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0DIAQgARCUA0UNAQwDCyADQduBwgBBAiAFEQAADQIgAkEBOgAsIAIgBjYCFCACIAM2AhAgAkHggcIANgIgIAIgASkCCDcCJCACIAJBLGo2AhggAiACQRBqIgE2AhwgBCACQRxqEJQDDQIgAUHZgcIAQQIQrwMNAgsgA0HejsgAQQEgBREAACEADAELQQEhACABKAIAIgNB1rfHAEEOIAEoAgQiBigCDCIFEQAADQACQCABLQAKQYABcUUEQCADQbuzxQBBASAFEQAADQIgBEEIaigCACAEQQxqKAIAIAEQtQJFDQEMAgsgA0HbgcIAQQIgBREAAA0BIAJBAToALCACIAY2AhQgAiADNgIQIAJB4IHCADYCICACIAEpAgg3AiQgAiACQSxqNgIYIARBCGooAgAgBEEMaigCACACIAJBEGoiBjYCHCACQRxqELUCDQEgBkHZgcIAQQIQrwMNAQsgA0HejsgAQQEgBREAACEACyACQTBqJAAgAAv6CAMKfwJ+AnsjAEHwAGsiByQAIAcgAjYCACAHIAAoAggiAzYCBAJAAkACQAJAAkACQAJAAkAgAiADRgRAIAdBJGogASACEPEDIAcoAighAQJAIAcoAiwiCkUNACABIApBA3RqIQkgACgCBCEFIAEhAwNAIAMoAgAiBCACTw0JIANBBGooAgAiBiACTw0KIAUgBEEYbGoiBEEQaiIIKQIAIQ0gBSAGQRhsaiIG/QACACEPIAggBkEQaiIIKQIANwIAIAT9AAIAIRAgBCAP/QsCACAIIA03AgAgBiAQ/QsCACADQQhqIgMgCUcNAAsgACgCFCICBEAgACgCECEFIAEhAwNAIAMoAgAiBCACTw0KIANBBGooAgAiBiACTw0LIAUgBEEYbGoiBEEQaiIIKQIAIQ0gBSAGQRhsaiIG/QACACEPIAggBkEQaiIIKQIANwIAIAT9AAIAIRAgBCAP/QsCACAIIA03AgAgBiAQ/QsCACADQQhqIgMgCUcNAAsLIAAoAiAiAgRAIAAoAhwhBSABIQMDQCADKAIAIgQgAk8NCiADQQRqKAIAIgYgAk8NCyAFIARBCWxqIgQpAAAhDSAFIAZBCWxqIgZBCGoiCC0AACELIAQgBikAADcAACAEQQhqIgQtAAAhDCAEIAs6AAAgCCAMOgAAIAYgDTcAACADQQhqIgMgCUcNAAsLIAAoAiwiBARAIAAoAighBiABIQIDQCACKAIAIgMgBE8NBCACQQRqKAIAIgUgBE8NBSAGIANBD2xqIgNBB2opAAAhDSADKQAAIQ4gBiAFQQ9saiIFQQhqKAAAIQggBUEMai8AACELIAVBDmotAAAhDCADIAUpAAA3AAAgA0EOaiAMOgAAIANBDGogCzsAACADQQhqIAg2AAAgByAONwMIIAcgDTcADyAFQQdqIAcpAA83AAAgBSAHKQMINwAAIAJBCGoiAiAJRw0ACwsgACgCOCIDRSAKRXINACAAKAI0IQQgASECA0AgAigCACIAIANPDQUgAkEEaigCACIFIANPDQYgB0EVaiIKIAQgAEEVbGoiAEENaikAADcAACAEIAVBFWxqIgX9AAAAIQ8gBUEUai0AACEGIABBEGogBUEQaigAADYAACAAQRRqIAY6AAAgAP0AAAAhECAAIA/9CwAAIAcgEP0LAwggBSAH/QADCP0LAAAgBUENaiAKKQAANwAAIAJBCGoiAiAJRw0ACwsgBygCJCIABEAgAUEEaygCACICQXhxIgMgAEEDdCIAQQRBCCACQQNxIgIbakkNBiACQQAgAyAAQSdqSxsNByABEKICCyAHQfAAaiQADwsgB0EANgIIQQAgByAHQQRqIAdBCGpBrLzHABD1BwALIAMgBEHA9scAEIwHAAsgBSAEQcD2xwAQjAcACyAAIANBwPbHABCMBwALIAUgA0HA9scAEIwHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAQgAkHA9scAEIwHAAsgBiACQcD2xwAQjAcAC7gHAQR/IAAoArABIgFBhAhPBEAgARCbBwsgACgCtAEiAUGECE8EQCABEJsHCwJAIAAoAgBFDQAgACgCBCIBQYQISQ0AIAEQmwcLAkAgACgCCEUNACAAKAIMIgFBhAhJDQAgARCbBwsCQCAAKAIQRQ0AIAAoAhQiAUGECEkNACABEJsHCwJAIAAoAhhFDQAgACgCHCIBQYQISQ0AIAEQmwcLAkAgACgCIEUNACAAKAIkIgFBhAhJDQAgARCbBwsCQCAAKAIoRQ0AIAAoAiwiAUGECEkNACABEJsHCwJAIAAoAjBFDQAgACgCNCIBQYQITwRAIAEQmwcLIAAoAjgiAUGECEkNACABEJsHCwJAAkAgACgCRCIBBEAgACgCSCIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoAlAiAQRAIAAoAlQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCyAAKAJcIgEEQCAAKAJgIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgCaCIBBEAgACgCbCIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILAkAgACgCPEUNACAAKAJAIgFBhAhJDQAgARCbBwsgACgCjAEiAUGAgICAeHJBgICAgHhHBEAgACgCkAEiA0EEaygCACICQXhxIgQgAUEBdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCyAAKAKYASIBQYCAgIB4ckGAgICAeEcEQCAAKAKcASIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoAnQiAQRAIAAoAngiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCyAAKAKAASIBBEAgACgChAEiAEEEaygCACIDQXhxIgIgAUECdCIBQQRBCCADQQNxIgMbakkNASADQQAgAiABQSdqSxsNAiAAEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC6QIAhN/An4jAEGQBGsiByQAIAdBDGpBAEGABPwLAAJAIAAoAgwiEUUEQCABKAIAIAAoAgAgACgCBCABKAIEKAIMEQAAIQAMAQsgACgCACEOIAAoAggiDy0AACEKAkACQCAAKAIEIhBFDQAgDiAQaiELIAdBDGohAiAOIQADQAJ/IAAsAAAiBkEATgRAIAZB/wFxIQQgAEEBagwBCyAALQABQT9xIQUgBkEfcSEEIAZBX00EQCAEQQZ0IAVyIQQgAEECagwBCyAALQACQT9xIAVBBnRyIQUgBkFwSQRAIAUgBEEMdHIhBCAAQQNqDAELIARBEnRBgIDwAHEgAC0AA0E/cSAFQQZ0cnIiBEGAgMQARg0CIABBBGoLIQAgA0GAAUYNAiACIAQ2AgAgAkEEaiECIANBAWohAyAAIAtHDQALCyAPIBFqIRIgA0ECdCIAQQRqIQwgACAHakEIaiELQbwFIRNByAAhFCAPIQRBgAEhDQNAIARBAWohBEEAIQJBJCEAQQEhCUEBIQZBACEFA0ACQCACQQFxBEAgBCASRg0EIAQtAAAhAiAEQQFqIQQMAQsgCiECIAlBAXFFDQMLIAJB4QBrIglB/wFxQRpPBEAgAkEwa0H/AXFBCUsNAyACQRZrIQkLIAatIhYgCUH/AXEiBq1+IhVCIIinDQIgFaciAiAFaiIFIAJJDQIgBkEaQQEgACAUayICQQAgACACTxsiAiACQQFNGyICIAJBGk8bIgJPBEAgAEEkaiEAIBZBJCACa61+IhWnIQZBACEJQQEhAiAVQiCIUA0BDAMLCyAFIAhqIgYgBUkNASAGIANBAWoiAm4iCiANaiINIApJIA1BgLADc0GAgMQAa0GAkLx/SXIgA0H/AEtyDQEgCyEAAkAgBiACIApsayIIIANPBEAgCEGAAUkNASAIQYABQZiyxQAQjAcACwNAIABBBGogACgCADYCACAAQQRrIQAgA0EBayIDIAhLDQALCyAHQQxqIAhBAnRqIA02AgAgBCASRwRAIAQtAAAhCkEAIQMCQCAFIBNuIgAgAm4gAGoiAEHIA0kEQCAAIQUMAQsDQCADQSRqIQMgAEHX/ABLIABBI24iBSEADQALCyAIQQFqIQggAyAFQSRsQfz/A3EgBUEmakH//wNxbmohFCALQQRqIQsgDEEEaiEMQQIhEyACIQMMAQsLIAdBDGohAwNAIAcgAygCADYCjAQgB0GMBGogARCoBSIADQIgA0EEaiEDIAxBBGsiDA0ACwwBC0EBIQAgASgCACICQei3xQBBCSABKAIEKAIMIgERAAANACAQBEAgAiAOIBAgAREAAA0BIAJB6rPFAEEBIAERAAANAQsgAiAPIBEgAREAAA0AIAJBpbPFAEEBIAERAAAhAAsgB0GQBGokACAAC6cJAgN+Bn9BsLXJACgCAEUEQBBWCwJAAkACQAJAQbi1yQAoAgBFBEBBuLXJAEF/NgIAQcS1yQAoAgAiBUHYtckAKQMAIgEgAK2FIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIRC0oGqm6v6gtenf34iAUI4hiABQoD+A4NCKIaEIAFCgID8B4NCGIYgAUKAgID4D4NCCIaEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhCACQtii0e/CqeW/LX6FIgFCOIYgAUKA/gODQiiGhCABQoCA/AeDQhiGIAFCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIRB0LXJACkDACICQn+FfiIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISEIAEgAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhH6FIAGJIgGncSEEIAFCGYhC/wCDQoGChIiQoMCAAX4hA0HAtckAKAIAIgZBIGshCQJAA0ACQCAEIAZqKQAAIgIgA4UiAUJ/hSABQoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIgFQRQRAA0AgACAJIAF6p0EDdiAEaiAFcSIIQQV0aygCAEYNAiABQgF9IAGDIgFQRQ0ACwsgAiACQgGGg0KAgYKEiJCgwIB/g1BFDQIgBCAHQQhqIgdqIAVxIQQMAQsLQYABIQAgBiAIaiIEKQAAIgEgAUIBhoNCgIGChIiQoMCAf4N6p0EDdiAGIAhBCGsgBXFqIgUpAAAiASABQgGGg0KAgYKEiJCgwIB/g3mnQQN2akEHTQRAQci1yQBByLXJACgCAEEBajYCAEH/ASEACyAEIAA6AAAgBUEIaiAAOgAAQcy1yQBBzLXJACgCAEEBazYCACAGQQAgCGtBBXRqIgBBHGsoAgAiBEGAgICAeEYNACAAQQxrKAIAIQYgAEEQaygCACEFIABBGGsoAgAhCCAAQQRrKAIAIgAgACgCAEEBayIHNgIAIAdFBEAgABDSBQsgBARAIAhBBGsoAgAiAEF4cSIHIARBAnQiBEEEQQggAEEDcSIAG2pJDQMgAEEAIAcgBEEnaksbDQQgCBCiAgsgBUUNACAGQQRrKAIAIgBBeHEiBCAFQQJ0IgVBBEEIIABBA3EiABtqSQ0EIABBACAEIAVBJ2pLGw0FIAYQogILQbi1yQBBuLXJACgCAEEBajYCAA8LQayKwQAQsAoAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALzAYBBH8CQAJAAkAgACgCACIBQYCAgIB4Rg0AIAEEQCAAKAIEIgNBBGsoAgAiAkF4cSIEIAFBA3QiAUEEQQggAkEDcSICG2pJDQIgAkEAIAQgAUEnaksbDQMgAxCiAgsgACgCDCIBRQ0AIAAoAhAiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCwJAIAAoAhwiAUGAgICAeEYNACABBEAgACgCICIDQQRrKAIAIgJBeHEiBCABQQN0IgFBBEEIIAJBA3EiAhtqSQ0CIAJBACAEIAFBJ2pLGw0DIAMQogILIAAoAigiAUUNACAAKAIsIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsCQCAAKAI4IgFBgICAgHhGDQAgAQRAIAAoAjwiA0EEaygCACICQXhxIgQgAUEDdCIBQQRBCCACQQNxIgIbakkNAiACQQAgBCABQSdqSxsNAyADEKICCyAAKAJEIgFFDQAgACgCSCIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILAkAgACgCVCIBQYCAgIB4Rg0AIAEEQCAAKAJYIgNBBGsoAgAiAkF4cSIEIAFBA3QiAUEEQQggAkEDcSICG2pJDQIgAkEAIAQgAUEnaksbDQMgAxCiAgsgACgCYCIBRQ0AIAAoAmQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCwJAIAAoAnAiAUGAgICAeEYNACABBEAgACgCdCIDQQRrKAIAIgJBeHEiBCABQQN0IgFBBEEIIAJBA3EiAhtqSQ0CIAJBACAEIAFBJ2pLGw0DIAMQogILIAAoAnwiAUUNACAAKAKAASIAQQRrKAIAIgNBeHEiAiABQQJ0IgFBBEEIIANBA3EiAxtqSQ0BIANBACACIAFBJ2pLGw0CIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALtwcCCn4GfwJAIAEpAxAiA1ANACABKAIYIg4oAgAiECAOKQMIIgQgDigCBCIMrSIHIAQgB1QbpyIPaiENAkACQCADIAxC/////w8gBCAEQv////8PWhunayIRQQAgDCARTxutIgIgAiADVhtCB1gEQCAMIA9GDQMgAS0AICIPQTdLDQMgDTEAACEIIA4gBEIBfCIGNwMIIANCAX0hAiAPrUL/AYMiCkIIfCEEIAEpAwAgCCAKhoQhCCADQgFRDQIgAiAMIAYgByAGIAdUG6ciDWutIgUgAiAFVBtQIA9BL0tyDQIgDSAQajEAACAOIAYgAkIAUq0iC3wiBTcDCCAKQhB8IQYgAiALfSECIASGIAiEIQggA0IDVARAIAYhBAwDCyACIAwgBSAHIAUgB1QbpyINa60iBCACIARUG1AEQCAGIQQMAwsgD0EnSwRAIAYhBAwDCyANIBBqMQAAIA4gBSACQgBSrSIDfCIFNwMIIApCGHwhBCACIAN9IQMgBoYgCIQhCCACQgJUBEAgAyECDAMLIAMgDCAFIAcgBSAHVBunIg1rrSICIAIgA1YbUARAIAMhAgwDCyAPQR9LBEAgAyECDAMLIA0gEGoxAAAgDiAFIANCAFKtIgJ8IgU3AwggCkIghCEGIAMgAn0hAiAEhiAIhCEIIANCAlQEQCAGIQQMAwsgAiAMIAUgByAFIAdUG6ciDWutIgQgAiAEVBtQBEAgBiEEDAMLIA9BF0sEQCAGIQQMAwsgDSAQajEAACAOIAUgAkIAUq0iA3wiBTcDCCAKQih8IQQgAiADfSEDIAaGIAiEIQggAkICVARAIAMhAgwDCyADIAwgBSAHIAUgB1QbpyINa60iAiACIANWG1AEQCADIQIMAwsgBkIvVgRAIAMhAgwDCyANIBBqMQAAIA4gBSADQgBSrSICfCIFNwMIIApCMHwhBiADIAJ9IQIgBIYgCIQhCCADQgJUBEAgBiEEDAMLIAIgDCAFIAcgBSAHVBunIgxrrSIEIAIgBFQbUARAIAYhBAwDCyAPQQdNDQEgBiEEDAILIAEgAS0AICIMQThyOgAgIAEgASkDACANKQAAIAxBP3GthoQ3AwAgASADIANBPyAMa0H4AXFBA3atIgIgAiADVhsiAn03AxAgDiACIAR8NwMIDAILIAwgEGoxAAAgDiAFIAJCAFKtIgd8NwMIIApCOIQhBCACIAd9IQIgBoYgCIQhCAsgASAEPAAgIAEgCDcDACABIAI3AxALIABBHToAAAvtBwIGfwh+AkAgASgCCCIFQQhqKQMAIghQDQAgBUEQaigCACIGKAIAIAYpAwgiDSAGKAIEIgStIgkgCSANVhunIgNqIQICQAJAIAggBEL/////DyANIA1C/////w9aG6drIgdBACAEIAdPG60iCSAIIAlUG0IHWARAIAMgBEYNAyABLQAMIgRBN0sNAyACMQAAIQkgBUEIaiIHIgIgCEIBfTcDACAGIA1CAXw3AwggBK1C/wGDIg5CCHwhCCABKQMAIAkgDoaEIQsgAikDACIJUA0CIAVBEGooAgAiAigCBCIDIAIpAwgiCiADrSIMIAogDFQbpyIDRiAEQS9Lcg0CIAIoAgAgA2oxAAAgBiANQgJ8NwMIIAciAiAJQgF9NwMAIA5CEHwhCSAIhiALhCELIAIpAwAiCFAEQCAJIQgMAwsgBUEQaigCACICKAIEIgMgAikDCCIKIAOtIgwgCiAMVBunIgNGBEAgCSEIDAMLIARBJ0sEQCAJIQgMAwsgAigCACADajEAACAGIA1CA3w3AwggBUEIaiIHIgIgCEIBfTcDACAOQhh8IQggCYYgC4QhCyACKQMAIglQDQIgBUEQaigCACICKAIEIgMgAikDCCIKIAOtIgwgCiAMVBunIgNGIARBH0tyDQIgAigCACADajEAACAGIA1CBHw3AwggByICIAlCAX03AwAgDkIghCEJIAiGIAuEIQsgAikDACIIUARAIAkhCAwDCyAFQRBqKAIAIgIoAgQiAyACKQMIIgogA60iDCAKIAxUG6ciA0YEQCAJIQgMAwsgBEEXSwRAIAkhCAwDCyACKAIAIANqMQAAIAYgDUIFfDcDCCAFQQhqIgciAiAIQgF9NwMAIA5CKHwhCCAJhiALhCELIAIpAwAiClANAiAFQRBqKAIAIgIoAgQiAyACKQMIIgwgA60iDyAMIA9UG6ciA0YgCUIvVnINAiACKAIAIANqMQAAIAYgDUIGfDcDCCAHIgIgCkIBfTcDACAOQjB8IQkgCIYgC4QhCyACKQMAIghQBEAgCSEIDAMLIAVBEGooAgAiAigCBCIDIAIpAwgiCiADrSIMIAogDFQbpyIDRgRAIAkhCAwDCyAEQQdNDQEgCSEIDAILIAEgAS0ADCIEQThyOgAMIAEgASkDACACKQAAIARBP3GthoQ3AwAgBUEIaiAIIAhBPyAEa0H4AXFBA3atIgkgCCAJVBsiCH03AwAgBiAIIA18NwMIDAILIAIoAgAgA2oxAAAgBiANQgd8NwMIIAVBCGogCEIBfTcDACAOQjiEIQggCYYgC4QhCwsgASAIPAAMIAEgCzcDAAsgAEEdOgAAC/YHAgV/A34gASgCACICQf///wNxIQUgAkGAgICAeHEhBiABKAIEIQMCfiAGQRB2IAVBDXZyQYAEQQAgBRtyQYD4AXKtIAJBgICA/AdxIgRBgICA/AdGDQAaIAZBEHYhBgJAIARBgICAuARNBEAgBEENdiAFQQ12akGAgAFqIAZyrSACQQx2IAJB/98AcUEAR3GtfCAEQYCAgMQDTw0CGiAEQYCAgJgDSQ0BIAVBgICABHIiAkH+ACAEQRd2IgVrdiEEIAJBHSAFayIFdkEBcQR/IARBAyAFdEEBayACcUEAR2oFIAQLIAZyrQwCCyAGQYD4AXKtDAELIAatCyEHIAEoAgghBCADQf///wNxIQUgA0GAgICAeHEhBgJ+IANBgICA/AdxIgJBgICA/AdHBEAgBkEQdiEGIAJBgICAuARNBEAgAkENdiAFQQ12akGAgAFqIAZyrSADQQx2IANB/98AcUEAR3GtfCACQYCAgMQDTw0CGiACQYCAgJgDTwRAIAVBgICABHIiBUH+ACACQRd2IgJrdiEDIAVBHSACayICdkEBcQR/IANBAyACdEEBayAFcUEAR2oFIAMLIAZyrQwDCyAGrQwCCyAGQYD4AXKtDAELIAZBEHYgBUENdnJBgARBACAFG3JBgPgBcq0LIQggASgCDCEBIARB////A3EhAiAEQYCAgIB4cSEFAn4gBEGAgID8B3EiA0GAgID8B0cEQCAFQRB2IQUgA0GAgIC4BE0EQCADQQ12IAJBDXZqQYCAAWogBXKtIARBDHYgBEH/3wBxQQBHca18IANBgICAxANPDQIaIANBgICAmANPBEAgAkGAgIAEciIEQf4AIANBF3YiAmt2IQMgBEEdIAJrIgJ2QQFxBH8gA0EDIAJ0QQFrIARxQQBHagUgAwsgBXKtDAMLIAWtDAILIAVBgPgBcq0MAQsgBUEQdiACQQ12ckGABEEAIAIbckGA+AFyrQshCSABQf///wNxIQQgAUGAgICAeHEhAiAAIAdC//8DgyAIQhCGQoCA/P8PgyAJQiCGQoCAgIDw/z+DAn4gAUGAgID8B3EiA0GAgID8B0cEQCACQRB2IQIgA0GAgIC4BE0EQCADQQ12IARBDXZqQYCAAWogAnKtIAFBDHYgAUH/3wBxQQBHca18IANBgICAxANPDQIaIANBgICAmANPBEAgBEGAgIAEciIEQf4AIANBF3YiA2t2IQEgBEEdIANrIgN2QQFxBH8gAUEDIAN0QQFrIARxQQBHagUgAQsgAnKtDAMLIAKtDAILIAJBgPgBcq0MAQsgAkEQdiAEQQ12ckGABEEAIAQbckGA+AFyrQtCMIaEhIQ3AgALvwgCBX8BfSABKAIAIglB////A3EhBiAJQYCAgIB4cSEKAkAgCUGAgID8B3EiB0GAgID8B0YEQCAKQRB2IAZBDXZyQYAEQQAgBhtyQYD4AXIhCgwBCyAKQRB2IQogB0GAgIC4BE0EQCAHQYCAgMQDTwRAIAlBDHYgCUH/3wBxQQBHcSAHQQ12IAZBDXZqQYCAAWogCnJqIQoMAgsgB0GAgICYA0kNASAGQYCAgARyIglB/gAgB0EXdiIGa3YhByAJQR0gBmsiBnZBAXEEfyAHQQMgBnRBAWsgCXFBAEdqBSAHCyAKciEKDAELIApBgPgBciEKCyABKAIEIgZB////A3EhCCAGQYCAgIB4cSEJAkAgBkGAgID8B3EiB0GAgID8B0cEQCAJQRB2IQkgB0GAgIC4BE0EQCAHQYCAgMQDTwRAIAZBDHYgBkH/3wBxQQBHcSAHQQ12IAhBDXZqQYCAAWogCXJqIQkMAwsgB0GAgICYA0kNAiAIQYCAgARyIgZB/gAgB0EXdiIIa3YhByAGQR0gCGsiCHZBAXEEfyAHQQMgCHRBAWsgBnFBAEdqBSAHCyAJciEJDAILIAlBgPgBciEJDAELIAlBEHYgCEENdnJBgARBACAIG3JBgPgBciEJCyABKAIIIgZB////A3EhCCAGQYCAgIB4cSEHAkAgBkGAgID8B3EiAUGAgID8B0cEQCAHQRB2IQcgAUGAgIC4BE0EQCABQYCAgMQDTwRAIAZBDHYgBkH/3wBxQQBHcSABQQ12IAhBDXZqQYCAAWogB3JqIQcMAwsgAUGAgICYA0kNAiAIQYCAgARyIgZB/gAgAUEXdiIIa3YhASAGQR0gCGsiCHZBAXEEfyABQQMgCHRBAWsgBnFBAEdqBSABCyAHciEHDAILIAdBgPgBciEHDAELIAdBEHYgCEENdnJBgARBACAIG3JBgPgBciEHC0MAAABAIQsgAyoCACADKgIEkiADKgIIkkMAAEBAlSACQwAAgD9fBH0gCwUgAkMAAIBAlEMAAEDAkkMAAIC/kkMzMzM/lEMAAIA/kiICIAKSC5S8IgZB////A3EhCCAGQYCAgIB4cSEDAkAgBkGAgID8B3EiAUGAgID8B0YEQCADQRB2IAhBDXZyQYAEQQAgCBtyQYD4AXIhAwwBCyADQRB2IQMgAUGAgIC4BE0EQCABQYCAgMQDTwRAIAZBDHYgBkH/3wBxQQBHcSABQQ12IAhBDXZqQYCAAWogA3JqIQMMAgsgAUGAgICYA0kNASAIQYCAgARyIgZB/gAgAUEXdiIIa3YhASAGQR0gCGsiCHZBAXEEfyABQQMgCHRBAWsgBnFBAEdqBSABCyADciEDDAELIANBgPgBciEDCyAAIAU2AgwgACAEQf//A3E2AgggACAHQf//A3EgA0EQdHI2AgQgACAKQf//A3EgCUEQdHI2AgALlSEDBX4RfwF7IAGtQYi2yQApAwAiAiAArYUiA0LYotHvwqnlvy1+hSADQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEQtKBqpur+oLXp39+IgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhISFIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCACQtii0e/CqeW/LX6FIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIRBgLbJACkDACIDQn+FfiIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEIAIgA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhH6FIAKJIQZB+LXJACgCAEUEQAJAIwBBIGsiDyQAAkACQAJAAkACfwJAAkACQAJAQfi1yQACfwJAAkACQEH8tckAKAIAQQFqIgkEQEH0tckAKAIAIgcgB0EBaiINQQN2IgtBB2wgB0EISRsiB0EBdiAJSQRAIAdBAWoiByAJIAcgCUsbIglBD0kNAiAJQf////8BTQRAQX8gCUEDdEEHbkEBa2d2IglB/v///wFLDQggCUEBaiEIDAcLDA4LQQAgDUUNBBpB8LXJACgCACEKIAsgDUEHcUEAR2oiCUEBTQ0CIAohCCAJQf7///8DcSILIQcDQCAIIAj9AAMAIhj9TUEH/c0B/QwBAQEBAQEBAQEBAQEBAQEB/U4gGP0Mf39/f39/f39/f39/f39/f/1Q/c4B/QsDACAIQRBqIQggB0ECayIHDQALIAkgC0YNAyALQQN0IQggCUEBcSEJDAILDAwLQQQgCUEIcUEIaiAJQQRJGyEIDAMLIAggCmohCANAIAggCCkDACICQn+FQgeIQoGChIiQoMCAAYMgAkL//v379+/fv/8AhHw3AwAgCEEIaiEIIAlBAWsiCQ0ACwsCQCANQQhPBEAgCiANaiAKKQAANwAADAELIA1FDQAgCkEIaiAKIA38CgAAC0EBIQdBACEJA0AgCSEKIAchCQJAIApB8LXJACgCACIHai0AAEGAAUcNACAHIAxqIRMgByAKQX9zQQN0aiEUQQAgCmtBA3QhFQJAA0BB9LXJACgCACILQYi2yQApAwAiAiAHIBVqIghBCGs1AgCFIgNC2KLR78Kp5b8tfiAIQQRrNQIAhSADQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEQtKBqpur+oLXp39+IgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhISFIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCACQtii0e/CqeW/LX6FIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIRBgLbJACkDACIDQn+FfiIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEIAIgA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhH6FIAKJpyIScSIOIQggByAOaikAAEKAgYKEiJCgwIB/gyICUARAQQghEANAIAggEGohCCAQQQhqIRAgByAIIAtxIghqKQAAQoCBgoSIkKDAgH+DIgJQDQALCyAHIAJ6p0EDdiAIaiALcSIIaiwAAEEATgRAIAcpAwBCgIGChIiQoMCAf4N6p0EDdiEICyAIIA5rIAogDmtzIAtxQQhPBEAgByAIaiIOLQAAIA4gEkEZdiIOOgAAQfC1yQAoAgAgCEEIayALcWpBCGogDjoAAEH/AUYNAiAHIAhBA3RrIQhBeCEHA0AgByATaiILKAAAIQ4gCyAHIAhqIgsoAAA2AAAgCyAONgAAIAdBBGoiBw0AC0HwtckAKAIAIQcMAQsLIAcgCmogEkEZdiIHOgAAQfC1yQAoAgAgCyAKQQhrcWpBCGogBzoAAAwBC0H0tckAKAIAIQtB8LXJACgCACAKakH/AToAAEHwtckAKAIAIAsgCkEIa3FqQQhqQf8BOgAAIAcgCEF/c0EDdGogFCkAADcAAAsgDEEIayEMIAkgCSANSSIIaiEHIAgNAAtB9LXJACgCACIJIAlBAWpBA3ZBB2wgCUEISRsLQfy1yQAoAgBrNgIADAULIAhBCGoiCSAIQQN0IgpqIgcgCUkgB0H4////B0tyDQAgBxBxIgdFDQEgByAKaiEKIAkEQCAKQf8BIAn8CwALIAhBAWsiDSAIQQN2QQdsIA1BCEkbIRBB8LXJACgCACEHQfy1yQAoAgAiDg0CQQAMAwsgD0EANgIYIA9BATYCDCAPQcS1xAA2AgggD0IENwIQIA9BCGpBmLXEABCNCAsACyAKQQhqIRIgBykDAEJ/hUKAgYKEiJCgwIB/gyEFQQAhCCAHIQkDQCAFUARAA0AgCEEIaiEIIAlBCGoiCSkDAEKAgYKEiJCgwIB/gyICQoCBgoSIkKDAgH9RDQALIAJCgIGChIiQoMCAf4UhBQsgCiANQYi2yQApAwAiAiAHIAV6p0EDdiAIaiITQQN0ayIMQQhrNQIAhSIDQtii0e/CqeW/LX4gDEEEazUCAIUgA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhELSgaqbq/qC16d/fiICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEhSICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEQtKBqpur+oLXp39+IgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQgAkLYotHvwqnlvy1+hSICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEQYC2yQApAwAiA0J/hX4iBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhCACIANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIR+hSACiaciFHEiDGopAABCgIGChIiQoMCAf4MiAlAEQEEIIQsDQCALIAxqIQwgC0EIaiELIAogDCANcSIMaikAAEKAgYKEiJCgwIB/gyICUA0ACwsgBUIBfSAFgyEFIAogAnqnQQN2IAxqIA1xIgxqLAAAQQBOBEAgCikDAEKAgYKEiJCgwIB/g3qnQQN2IQwLIAogDGogFEEZdiILOgAAIBIgDEEIayANcWogCzoAACAKIAxBf3NBA3RqIAcgE0F/c0EDdGopAAA3AwAgDkEBayIODQALQfC1yQAoAgAhB0H8tckAKAIACyEIQfC1yQAgCjYCAEH0tckAKAIAIQlB9LXJACANNgIAQfi1yQAgECAIazYCACAJRQ0AIAkgCUEDdEEPakF4cSIIakEJaiIJRQ0AIAcgCGsiB0EEaygCACIIQXhxIgpBBEEIIAhBA3EiCBsgCWpJDQEgCEEAIAogCUEnaksbDQIgBxCiAgsgD0EgaiQADAMLQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAPQQA2AhggD0EBNgIMIA9BxLXEADYCCCAPQgQ3AhAgD0EIakGYtcQAEI0IAAsLQfS1yQAoAgAiCCAGp3EhCSAGQhmIIgRC/wCDQoGChIiQoMCAAX4hBUHwtckAKAIAIQcDQAJ/AkACQCAHIAlqKQAAIgMgBYUiAkJ/hSACQoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIgJQRQRAA0AgByACeqdBA3YgCWogCHFBA3RrIgxBCGsoAgAgAEYEQEEBIQogASAMQQRrKAIARg0DCyACQgF9IAKDIgJQRQ0ACwsgA0KAgYKEiJCgwIB/gyECIBZFBEAgAlANAiACeqdBA3YgCWogCHEhEQtBASACIANCAYaDUA0CGkEAIQogByARaiwAACIJQQBOBEAgByAHKQMAQoCBgoSIkKDAgH+DeqdBA3YiEWotAAAhCQsgByARaiAEp0H/AHEiDDoAACAHIBFBCGsgCHFqQQhqIAw6AABB+LXJAEH4tckAKAIAIAlBAXFrNgIAQfy1yQBB/LXJACgCAEEBajYCACAHIBFBA3RrIglBCGsgADYCACAJQQRrIAE2AgALIAoPC0EACyEWIBdBCGoiFyAJaiAIcSEJDAALAAuECQMZfwR9AXsjAEEQayIOJAACQAJAAkACQAJAIAIEQCAAKAIIIhEgAWsiBUEAIAUgEU0bIRZDAACAPyAAKgJAIAAtAFhBAkYiBRtDAAAAACAAKgI8IAUbIh+TISAgAkEMbCEXIABBPGohGCAAKAIEIAFBGGxqIQYgAygCICEPIAMoAiQhEiADKAIYIRkgAygCHCETIAMoAhAhGiADKAIUIRQgAygCCCEbIAMoAgwhECADKAIAIRwgAygCBCEVA0ACQAJAAkACQCANIBZHBEAgB0EDaiIFIBVLDQEgBiAMIBxqIgRBCGogBP1dAgD9VgIAAiIh/VoCCAIgBiAh/VsCAAAgDSAQRg0DIAsgG2ooAgAiCkH///8DcSEIIApBgICAgHhxIQQgCkGAgID8B3EiCUGAgID8B0YEQCAIQQ12IARBEHZyQYAEQQAgCBtyQYD4AXIhBAwFCyAEQRB2IQQgCUGAgIC4BEsNAiAJQYCAgMQDTwRAIApBDHYgCkH/3wBxQQBHcSAJQQ12IAhBDXZqQYCAAWogBHJqIQQMBQsgCUGAgICYA0kNBCAIQYCAgARyIgpB/gAgCUEXdiIIa3YhCSAKQR0gCGsiCHZBAXEEfyAJQQMgCHRBAWsgCnFBAEdqBSAJCyAEciEEDAQLIAEgDWogEUHsu8cAEIwHAAsgByAFIBVBpMXHABDqBwALIARBgPgBciEEDAELIBAgEEHkxMcAEIwHAAsgBkEMaiAEOwEAIAUgFEsNBEMAAH9DQwAAAAAgDCAaaiIEQQRqKgIAIB+TICCVQwAAf0OUIh0gHUMAAAAAXRsiHSAdQwAAf0NeGxC5ByEdIAZBDmpB/wFDAAB/Q0MAAAAAIARBCGoqAgAgH5MgIJVDAAB/Q5QiHiAeQwAAAABdGyIeIB5DAAB/Q14bELkHIh78AUEAIB5DAAAAAGAbIB5DAAB/Q14bQRB0Qf8BIB38AUEAIB1DAAAAAGAbIB1DAAB/Q14bQQh0ckH/AUMAAH9DQwAAAAAgBCoCACAfkyAglUMAAH9DlCIdIB1DAAAAAF0bIh0gHUMAAH9DXhsQuQciHfwBQQAgHUMAAAAAYBsgHUMAAH9DXhtyIgQ7AQAgBkEQaiAEQRB2OgAAIAUgE0sNBSAGIBggDCAZaiIH/V0CACAHQQhqKgIAIh39IAIgHf0gAxDfBCALQQNqIBJPDQIgDiAP/QACAP0LBAAgBkEWaiAOEJ0EIgdBEHY6AAAgBkEUaiAHOwEAIA1BAWohDSAPQRBqIQ8gBkEYaiEGIAtBBGohCyAFIQcgFyAMQQxqIgxHDQALCyAAIAEgAiADKAIoIAMoAiwgAygCMCADKAI0IAMoAjggAygCPBDqBCADKAJEIgVFDQQgAygCTCIHDQEMBAsgCyALQQRqIBJBhMXHABDqBwALIAAoAhAiBiAAKAIUIgAgASACIAMoAkggBxCNAyAGIAAgASACIAMoAkAgBRCzAwwCCyAHIAUgFEGUxccAEOoHAAsgByAFIBNB9MTHABDqBwALIA5BEGokAAvXBwIHfwN9IAEoAggiAkEDdCEGIAEoAgQhBCABKAIAIQcgACgCCCIDIQEgACgCACADayACSQRAIAAgAyACQQRBCBCkBSAAKAIIIQELIAAoAgQhBSAGBEAgBSABQQN0aiAEIAb8CgAACyAAIAEgAmoiAjYCCAJAAkACQAJAIAcEQCAEQQRrKAIAIgBBeHEiASAHQQN0IgZBBEEIIABBA3EiABtqSQ0BIABBACABIAZBJ2pLGw0CIAQQogILIAIgA0YNAwJAAkAgAiADayIAIANNBEAgAkEBdCEBIAJBgBBLDQEgASAAQR8gA2drbE8NAgsgAkECSQ0FDAQLIAEgAEELbEkNAwsgAiADTQ0DA0AgBSADQQN0aiIAKAIEIQQgACoCACEKAkAgA0UEQEEAIQEMAQsgAyEAIAogClwEQANAAkAgBSAAQQFrIgdBAXYiAUEDdGoiBioCACIJIAlbIAkgCmBFcQ0AIAQgBkEEaigCAEsNACAAIQEMAwsgBSAAQQN0aiAGKQIANwIAIAEhACAHQQJPDQAMAgsACwNAIAUgAEEBayIHQQF2IgFBA3RqIgYqAgAiCSAJWyAJIApgRXFBfyAJIApfGyIIQQBMIAQgBkEEaigCAE0gCBsEQCAAIQEMAgsgBSAAQQN0aiAGKQIANwIAIAEhACAHQQFLDQALCyAFIAFBA3RqIgAgBDYCBCAAIAo4AgAgA0EBaiIDIAJHDQALDAMLQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyACQQJrIQYgAkEBdiEDA0AgA0EBayIDQQF0IgRBAXIhACAFIANBA3RqIgEoAgQhByABKgIAIQogAyEBAkACQCAEIAZPDQADQAJAIAogBSAAIARBA3QgBWoiAkEQaioCACIJIAlbIAkgBSAAQQN0aiIEKgIAIgtgRXEiCCAIQX8gCSALXxsgCyALXBsiCEEATCAEQQRqKAIAIAJBFGooAgBNIAgbaiICQQN0aiIAKgIAIglgRSAKIApbcUUEQCAJIApgRSAJIAlbcSAHIABBBGooAgBPcg0BCyAFIAFBA3RqIAApAgA3AgAgAkEBdCIEQQFyIQAgAiEBIAQgBkkNAQwCCwsgASEADAELIAQgBkcEQCABIQAMAQsCQCAKIApcIAogBSAAQQN0aiICKgIAIglgciIEIAkgCVwgCSAKYHJxRQRAIARFDQEgASEADAILIAcgAkEEaigCAEkNACABIQAMAQsgBSABQQN0aiACKQIANwIACyAFIABBA3RqIgAgBzYCBCAAIAo4AgAgAw0ACwsL4wgDB38EfQF7IwBBsAFrIgUkAAJ/AkAgASgCCCIHIAJLBEAgBUGAAWogASgCBCACQSRsaiIHEJoDIAX9AASAASIQ/R8AIgwgEP0fASINlEOPws0/ELcKIQ4gDCAQ/R8CIgyUQ4/CzT8QtwohDyANIAyUQ4/CzT8QtwogDiAPkpJDAABAQJVD5kAfPxC3CkPbD0lBlCEMIAcvARQiBkH//wFxRQRAIAZBEHQMAwsgBkH/B3EhByAGQYCAAnEhCCAGQYD4AXEiBkGA+AFGBEAgCEEQdCEGIAZBgICA/AdyIAdFDQMaIAYgB0ENdHJBgICA/gdyDAMLIAhBEHQhCCAGRQ0BIAZBDXRBgICA/ABxIAdBDXRyQYCAgMADaiAIcgwCCyACIAdB1MDHABCMBwALIAhBgICA2ANyIAdnQRBrIgZBF3RrIAcgBkH//wNxQQhqdEH///8DcXILIQggBUEIaiABKAIQIgkgASgCFCIKIAIQ6AIgDCAIvpQhDQJAAn8CQAJAIAUoAiwiBkEJTwRAIAUoAgwiB0UNASAFQQA2AjAgBUEANgJUIAUoAhAMAwsgBg0BCyAAQQE2AiggACACNgIIIABBADYCBCAAIA04AgAMAgsgBUEANgIwIAVBADYCVCAGIQcgBUEMagshCCAHQQJ0IQsgBUGEAWohB0MAAID/IQwDQCAFQYABaiABIAgoAgAgAyAEEJUCIAVB4ABqIAdBCGr9AAIA/QsDACAFQfAAaiAHQRhq/QACAP0LAwAgBSAHKQIANwNYIAhBBGohCCAFKgKAASEOIAVBMGogBUHYAGoQ/wEgDCAOEOAIIQwgC0EEayILDQALIAMoAgghAQJAAkACQAJAAkAgBCAMlCANXwRAIAEgAk0NASADKAIEIAJqQQE6AAALIAEgAk0NASADKAIEIAJqLQAARQRAIAkgCiACQQRBABDkBSAAIAw4AgAgAEEkaiAFQdAAaikCADcCACAAQRRqIAVBQGv9AAIA/QsCACAAIAX9AAIw/QsCBAwGCyAJIAogAiAFKAJUIghBCUkEfyAFQTRqBSAFKAI0IghBgIAETw0DIAUoAjgLIAgQ5AUgAEEBNgIoIAAgAjYCCCAAQQA2AgQgACANOAIAIAUoAlQiAEEJSQ0FIAUoAjgiAUEEaygCACICQXhxIgMgAEECdCIAQQRBCCACQQNxIgIbakkNAyACQQAgAyAAQSdqSxsNBCABEKICDAULIAIgAUHs6sEAEIwHAAsgAiABQfzqwQAQjAcAC0GM68EAQS1BvOvBABDrBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACwJAAkAgBkEJTwRAIAUoAhAiAEEEaygCACIBQXhxIgIgBkECdCIDQQRBCCABQQNxIgEbakkNASABQQAgAiADQSdqSxsNAiAAEKICCyAFQbABaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL9wgCAn0DfwJAAkACQAJAAkACQAJAAkACQAJAIAAoAlxFIAJFckUEQEMAAP5CQwAA/kIgACoCTJUgAC0AWEECRhshBiAAKAIcIAFBCWxqIQkgACgCICEIQQAhAANAIAEgCE8NCiAAIARPDQsgACAJaiIHQf8AQwAA/kJDAAD+wiAGIAMqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQFqIARPDQkgB0EBakH/AEMAAP5CQwAA/sIgBiADQQRqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEECaiAETw0IIAdBAmpB/wBDAAD+QkMAAP7CIAYgA0EIaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBA2ogBE8NByAHQQNqQf8AQwAA/kJDAAD+wiAGIANBDGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQRqIARPDQYgB0EEakH/AEMAAP5CQwAA/sIgBiADQRBqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEFaiAETw0FIAdBBWpB/wBDAAD+QkMAAP7CIAYgA0EUaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBBmogBE8NBCAHQQZqQf8AQwAA/kJDAAD+wiAGIANBGGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQdqIARPDQMgB0EHakH/AEMAAP5CQwAA/sIgBiADQRxqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEIaiAETw0CIAdBCGpB/wBDAAD+QkMAAP7CIAYgA0EgaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIANBJGohAyAAQQlqIQAgAUEBaiEBIAJBAWsiAg0ACwsPCyAAQQhqIQAMCAsgAEEHaiEADAcLIABBBmohAAwGCyAAQQVqIQAMBQsgAEEEaiEADAQLIABBA2ohAAwDCyAAQQJqIQAMAgsgAEEBaiEADAELIAAgBE8NACABIAhBhMTHABCMBwALIAAgBEH0w8cAEIwHAAuOCQISfwl7IwBBIGsiBiQAAkACQCACQf//A3EiCUEBIAN0akEBayADdiICQf//A00EQCAJRQ0BIAEgASAJQQJ0IgdwayIBIAdPBEAgA0EfcSIOQR1LDQMgByAOQQJqdkEEIA50IghBAWsgB3FBAEdqIREgAkECdCEVIAEgB2shDwNAAkACQCAVIBAgDnZsIgIgBU0EQCAFIAJrQQJ2IgEgESABIBFJGyIWRQ0CIAIgBGohF0EAIQsgACEJIAchDAwBCyACIAUgBUHI2MQAEOoHAAsDQCAIIAcgCCALbCICayIBIAEgCEsbIgEEQCAAIAJqIQIgFyALQQJ0aiIDLAAAIRIgAywAASETIAMsAAIhFCABQYGAgIB8bEEEayIDQSBPBEBBfCAIIAwgCCAMSRtB/////wNsa0ECdiADQQJ2QQFqIgpBB3EiA0EIIAMbIgNrQQFqIQ0gAiAKIANrQQJ0IgNqIQIgASADayEBIBL9ESEcIBP9ESEdIBT9ESEeIAkhAwNAIANBDGogHiAD/QAAACIfIBj9DQEFCQ0AAAAAAAAAAAAAAAD9hwH9pwEiGv21AUEF/a0BIB8gGP0NAAQIDAAAAAAAAAAAAAAAAP2JAf2pAf2uASIZ/RsDOgAAIANBCGogGf0bAjoAACADQQRqIBn9GwE6AAAgAyAZ/RsAOgAAIANBHGogHiADQRBqIgr9AAAAIiAgGf0NAQUJDQAAAAAAAAAAAAAAAP2HAf2nASIY/bUBQQX9rQEgICAZ/Q0ABAgMAAAAAAAAAAAAAAAA/YkB/akB/a4BIhv9GwM6AAAgA0EYaiAb/RsCOgAAIANBFGogG/0bAToAACAKIBv9GwA6AAAgA0EOaiAdIBr9tQFBBf2tASAfIBn9DQIAAAAGAAAACgAAAA4AAAD9rgEgGUEY/asBQRj9rAEgHP21AUEF/a0B/a4BIhr9GwM6AAAgA0EKaiAa/RsCOgAAIANBBmogGv0bAToAACADQQJqIBr9GwA6AAAgA0EeaiAdIBj9tQFBBf2tASAgIBr9DQIAAAAGAAAACgAAAA4AAAD9rgEgG0EY/asBQRj9rAEgHP21AUEF/a0B/a4BIhj9GwM6AAAgA0EaaiAY/RsCOgAAIANBFmogGP0bAToAACADQRJqIBj9GwA6AAAgA0EgaiEDIA1BCGsiDQ0ACwsDQCACIAItAAAgAkEBaiwAACINIBRsQQV2aiIKOgAAIAJBAmoiAyADLQAAIA0gE2xBBXZqIArAIBJsQQV2ajoAACACQQRqIQIgAUEEayIBDQALCyAIIAlqIQkgDCAIayEMIAtBAWoiCyAWRw0ACwsgEEEBaiEQIAAgB2ohACAPQQAgByAHIA9LIgEbayEPIAFFDQALCyAGQSBqJAAPC0HY5sgAQSsgBkEfakHY2MQAQaj7xgAQ4AYACyAGQQA2AhQgBkEBNgIIIAZBvKHHADYCBCAGQgQ3AgwgBkEEakGo2MQAEI0IAAsgBkEANgIUIAZBATYCCCAGQbyhxwA2AgQgBkIENwIMIAZBBGpBuNjEABCNCAAL/gcCE38BfgJAAkACQAJAIAEoAgBBAUYEQCABKAIcIgUgASgCNCIERwRAIAEoAjAhCyAEIQMgBSABKAI8IghBAWsiEGoiAiAETw0CIAEoAjghDSAFIAtqIREgBSAIaiEGIAEoAhgiAyAFaiEOIAggA2shEiAFIAEoAhAiDGtBAWohEyABKQMIIRUgASgCJCIPQX9GIQkgDyEHIAUhAwNAIAMgBUcNAwJAAkAgFSACIAtqMQAAiKdBAXFFBEAgASAGNgIcIAYhAyAJDQJBACECDAELIAwgByAMIAcgDEsbIAkbIgogCCAIIApJGyEUIAohAwJAAkACQANAIAMiAiAURgRAQQAgByAJGyEKIAwhAgNAIAIgCk0EQCABIAY2AhwgD0F/RwRAIAFBADYCJAsgACAGNgIIIAAgBTYCBCAAQQA2AgAPCyACQQFrIgIgCE8NBSACIAVqIgMgBE8NAyACIA1qLQAAIAMgC2otAABGDQALIAEgDjYCHCASIQIgDiEDIAlFDQUMBgsgAiAFaiAETw0CIAJBAWohAyACIA1qLQAAIAIgEWotAABGDQALIAIgE2ohAyAJDQRBACECDAMLIAMgBEH4nscAEIwHAAsgBCAFIApqIgAgACAESRsgBEGIn8cAEIwHAAsgAiAIQeiexwAQjAcACyABIAI2AiQgAiEHCyADIBBqIgIgBEkNAAsgBCEDDAMLIABBAjYCAA8LAkAgAS0ADkUEQCABIAEtAAwiBUEBczoADCABKAI0IQIgASgCMCEEIAEoAgQiA0UNAQJAIAIgA00EQCACIANHDQEMAwsgAyAEaiwAAEG/f0oNAgsgBCACIAMgAkHUuMcAELsJAAsgAEECNgIADwsCQAJAIAIgA0cEQAJ/IAMgBGoiBCwAACICQQBOBEAgAkH/AXEMAQsgBC0AAUE/cSEGIAJBH3EhByAHQQZ0IAZyIAJBX00NABogBC0AAkE/cSAGQQZ0ciEGIAYgB0EMdHIgAkFwSQ0AGiAHQRJ0QYCA8ABxIAQtAANBP3EgBkEGdHJyCyEEQQEhAiAFQQFxRQ0BDAILIAVBAXENASAAQQI2AgAgAUEBOgAODwsCQCAEQYABSQ0AQQIhAiAEQYAQSQ0AQQNBBCAEQYCABEkbIQILIAAgAzYCBCAAQQE2AgAgACACIANqIgA2AgggASAANgIEDwsgACADNgIIIAAgAzYCBCAAQQA2AgAPCyADRQ0BCyADIQIDQAJAIAIgBE8EQCACIARGDQQMAQsgAiALaiwAAEG/f0wNACACIQQMAwsgAkEBaiICDQALC0EAIQQLIAAgBDYCCCAAIAU2AgQgAEEBNgIAIAEgAyAEIAMgBEsbNgIcC7QKAgN8A38jAEEQayIFJAAgALshAQJAIAC8IgZB/////wdxIgRB25+k+gNPBEAgBEHSp+2DBE8EQCAEQdbjiIcETwRAAkACQAJAAkAgBEH////7B00EQCAFQgA3AwgCQCAEQdqfpO4ETQRAIAEgAUSDyMltMF/kP6JEAAAAAAAAOEOgRAAAAAAAADjDoCICRAAAAFD7Ifm/oqAgAkRjYhphtBBRvqKgIQEgAvwCIQQMAQsgBSAEIARBF3ZBlgFrIgRBF3Rrvrs5AwAgBSAFQQhqIAQQdCEEIAZBAE4EQCAFKwMIIQEMAQtBACAEayEEIAUrAwiaIQELIARBA3FBAWsOAwMEAQILIAAgAJMhAAwHCyABIAGiIgFEgV4M/f//37+iRAAAAAAAAPA/oCABIAGiIgJEQjoF4VNVpT+ioCABIAKiIAFEaVDu4EKT+T6iRCceD+iHwFa/oKKgtowhAAwGCyABIAEgAaIiAqIiAyACIAKioiACRKdGO4yHzcY+okR058ri+QAqv6CiIAEgAyACRLL7bokQEYE/okR3rMtUVVXFv6CioKC2IQAMBQsgASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLYhAAwECyABIAGiIgIgAZqiIgMgAiACoqIgAkSnRjuMh83GPqJEdOfK4vkAKr+goiADIAJEsvtuiRARgT+iRHesy1RVVcW/oKIgAaGgtiEADAMLIARB4Nu/hQRPBEBEGC1EVPshGcBEGC1EVPshGUAgBkEAThsgAaAiAiACIAKiIgGiIgMgASABoqIgAUSnRjuMh83GPqJEdOfK4vkAKr+goiACIAMgAUSy+26JEBGBP6JEd6zLVFVVxb+goqCgtiEADAMLIAZBAE4EQCABRNIhM3982RLAoCIBIAGiIgFEgV4M/f//37+iRAAAAAAAAPA/oCABIAGiIgJEQjoF4VNVpT+ioCABIAKiIAFEaVDu4EKT+T6iRCceD+iHwFa/oKKgtowhAAwDCyABRNIhM3982RJAoCIBIAGiIgFEgV4M/f//37+iRAAAAAAAAPA/oCABIAGiIgJEQjoF4VNVpT+ioCABIAKiIAFEaVDu4EKT+T6iRCceD+iHwFa/oKKgtiEADAILIARB5JfbgARPBEBEGC1EVPshCcBEGC1EVPshCUAgBkEAThsgAaAiAiACoiIBIAKaoiIDIAEgAaKiIAFEp0Y7jIfNxj6iRHTnyuL5ACq/oKIgAyABRLL7bokQEYE/okR3rMtUVVXFv6CiIAKhoLYhAAwCCyAGQQBOBEAgAUQYLURU+yH5v6AiASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLYhAAwCCyABRBgtRFT7Ifk/oCIBIAGiIgFEgV4M/f//37+iRAAAAAAAAPA/oCABIAGiIgJEQjoF4VNVpT+ioCABIAKiIAFEaVDu4EKT+T6iRCceD+iHwFa/oKKgtowhAAwBCyAEQYCAgMwDTwRAIAEgAaIiAiABoiIDIAIgAqKiIAJEp0Y7jIfNxj6iRHTnyuL5ACq/oKIgAyACRLL7bokQEYE/okR3rMtUVVXFv6CiIAGgoLYhAAwBCyAFIABDAACAA5QgAEMAAIB7kiAEQYCAgARJGzgCCCAFKgIIGgsgBUEQaiQAIAALxgcBDn4gACAANQIgIgIgADUCACIEfCIFIAA0AhAiAUL7nAF+QhCHIAF8IAA0AjAiA0KMlQJ+QhCHfCIGfT4CMCAAIAFCjJUCfkIQhyADIANC+5wBfkIQh3x9IgEgBCACfSIDfD4CECAAIAUgBnw+AgAgACADIAF9PgIgIAAgADQCFCIBQoyVAn5CEIcgADQCNCIDQvucAX5CEIcgA3x9IgIgADUCBCIEIAA1AiQiBX0iBnw+AhQgACAGIAJ9PgIkIAAgBCAFfCICIAEgAUL7nAF+QhCHfCADQoyVAn5CEId8IgR9PgI0IAAgADUCKCIFIAA1AggiBnwiByAANAIYIgFC+5wBfkIQhyABfCAANAI4IgNCjJUCfkIQh3wiCH0+AjggACAGIAV9IgUgAUKMlQJ+QhCHIAMgA0L7nAF+QhCHfH0iBn0iCj4CKCAAIAA1AiwiCyAANQIMIgx8IgkgADQCHCIBQvucAX5CEIcgAXwgADQCPCIDQoyVAn5CEId8Ig19PgI8IAAgByAIfMQiByAANAIAIgh8QgR8Ig4gAiAEfMQiAkL7nAF+QhCHIAJ8IAkgDXzEIgRCjJUCfkIQh3wiCX1CA4g+AgwgACAJIA58QgOIPgIAIAAgCCAHfUIEfCIHIAJCjJUCfkIQhyAEQvucAX5CEIcgBHx9IgJ9QgOIPgIIIAAgAiAHfEIDiD4CBCAAIAUgBnzEIgQgADQCECIFfEIEfCIGIAA0AhQiAkL7nAF+QhCHIAJ8IAFCjJUCfkIQhyADIANC+5wBfkIQh3x9IgMgDCALfSIHfMQiAUKMlQJ+QhCHfCIIfUIDiD4CHCAAIAYgCHxCA4g+AhAgACAFIAR9QgR8IgQgAkKMlQJ+QhCHIAFC+5wBfkIQhyABfH0iAX1CA4g+AhggACABIAR8QgOIPgIUIAAgCsQiAiAANAIgIgR8QgR8IgUgADQCJCIBQvucAX5CEIcgAXwgByADfcQiA0KMlQJ+QhCHfCIGfUIDiD4CLCAAIAUgBnxCA4g+AiAgACAEIAJ9QgR8IgIgAUKMlQJ+QhCHIANC+5wBfkIQhyADfH0iAX1CA4g+AiggACABIAJ8QgOIPgIkIAAgADQCOCICIAA0AjAiBHxCBHwiBSAANAI0IgFC+5wBfkIQhyABfCAANAI8IgNCjJUCfkIQh3wiBn1CA4g+AjwgACAFIAZ8QgOIPgIwIAAgBCACfUIEfCICIAFCjJUCfkIQhyADIANC+5wBfkIQh3x9IgF9QgOIPgI4IAAgASACfEIDiD4CNAuMCgIDfAN/IwBBEGsiBSQAIAC7IQECfQJAAkAgALwiBkH/////B3EiBEHbn6T6A08EQCAEQdKn7YMETwRAIARB1uOIhwRPBEACQAJAAkACQCAEQf////sHTQRAIAVCADcDCAJAIARB2p+k7gRNBEAgASABRIPIyW0wX+Q/okQAAAAAAAA4Q6BEAAAAAAAAOMOgIgJEAAAAUPsh+b+ioCACRGNiGmG0EFG+oqAhASAC/AIhBAwBCyAFIAQgBEEXdkGWAWsiBEEXdGu+uzkDACAFIAVBCGogBBB0IQQgBkEATgRAIAUrAwghAQwBC0EAIARrIQQgBSsDCJohAQsgBEEDcUEBaw4DAwQBAgsgACAAkwwJCyABIAEgAaIiAqIiAyACIAKioiACRKdGO4yHzcY+okR058ri+QAqv6CiIAEgAyACRLL7bokQEYE/okR3rMtUVVXFv6CioKC2DAgLIAEgAaIiAUSBXgz9///fv6JEAAAAAAAA8D+gIAEgAaIiAkRCOgXhU1WlP6KgIAEgAqIgAURpUO7gQpP5PqJEJx4P6IfAVr+goqC2DAcLIAEgAaIiAiABmqIiAyACIAKioiACRKdGO4yHzcY+okR058ri+QAqv6CiIAMgAkSy+26JEBGBP6JEd6zLVFVVxb+goiABoaC2DAYLIAEgAaIiAUSBXgz9///fv6JEAAAAAAAA8D+gIAEgAaIiAkRCOgXhU1WlP6KgIAEgAqIgAURpUO7gQpP5PqJEJx4P6IfAVr+goqC2jAwFCyAEQd/bv4UESw0CIAZBAE4EQCABRNIhM3982RLAoCICIAIgAqIiAaIiAyABIAGioiABRKdGO4yHzcY+okR058ri+QAqv6CiIAIgAyABRLL7bokQEYE/okR3rMtUVVXFv6CioKC2DAULRNIhM3982RLAIAGhIgIgAiACoiIBoiIDIAEgAaKiIAFEp0Y7jIfNxj6iRHTnyuL5ACq/oKIgAiADIAFEsvtuiRARgT+iRHesy1RVVcW/oKKgoLYMBAsgBEHjl9uABEsNAiAGQQBOBEBEGC1EVPsh+T8gAaEiAiACIAKiIgGiIgMgASABoqIgAUSnRjuMh83GPqJEdOfK4vkAKr+goiACIAMgAUSy+26JEBGBP6JEd6zLVFVVxb+goqCgtgwECyABRBgtRFT7Ifk/oCICIAIgAqIiAaIiAyABIAGioiABRKdGO4yHzcY+okR058ri+QAqv6CiIAIgAyABRLL7bokQEYE/okR3rMtUVVXFv6CioKC2DAMLIARBgICAzANPBEAgASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLYMAwsgBSAAQwAAgHuSOAIIIAUqAggaQwAAgD8MAgtEGC1EVPshGcBEGC1EVPshGUAgBkEAThsgAaAiASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLYMAQtEGC1EVPshCcBEGC1EVPshCUAgBkEAThsgAaAiASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLaMCyAFQRBqJAALgQgDBX8DewZ9IAAvAQYhAwJ/IAAvAQQiAkH//wFxRQRAIAJBEHQMAQsgAkH/B3EhBiACQYCAAnEhBCACQYD4AXEiAkGA+AFGBEAgBEEQdCECIAJBgICA/AdyIAZFDQEaIAIgBkENdHJBgICA/gdyDAELIARBEHQhBCACQQ10QYCAgPwAcSAGQQ10ckGAgIDAA2ogBHIgAg0AGiAGIAZnQRBrIgZB//8DcUEIanRB////A3EgBEGAgIDYA3IgBkEXdGtyCyEGIAAvAQghAgJ/IANB//8BcQRAIANB/wdxIQQgA0GAgAJxIQUgA0GA+AFxIgNBgPgBRwRAIAVBEHQhBSADQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogBXIgAw0CGiAEIARnQRBrIgNB//8DcUEIanRB////A3EgBUGAgIDYA3IgA0EXdGtyDAILIAVBEHQhAyADIARBDXRyQYCAgP4HciAEDQEaIANBgICA/AdyDAELIANBEHQLIQMgAf0ABAAhByABKgJEIQsgASoCQCEOIAEqAjwhDCABKgI4IQ0gAf0ABBAhCSABKgI0QwAAgD8CfyACQf//AXEEQCACQf8HcSEEIAJBgIACcSEFIAJBgPgBcSICQYD4AUcEQCAFQRB0IQUgAkENdEGAgID8AHEgBEENdHJBgICAwANqIAVyIAINAhogBCAEZ0EQayICQf//A3FBCGp0Qf///wNxIAVBgICA2ANyIAJBF3RrcgwCCyAFQRB0IQIgAiAEQQ10ckGAgID+B3IgBA0BGiACQYCAgPwHcgwBCyACQRB0C/0RIAb9HAAgA/0cASAH/eUBIgcgB/3mASIIIAf9DQgJCgsAAQIDAAECAwABAgMgCCAIIAf9DQQFBgcAAQIDAAECAwABAgP95AH95AH94wH9HwBDvTeGNRDgCJUiDwJ/IAAvAQoiAUH//wFxRQRAIAFBEHQMAQsgAUH/B3EhACABQYCAAnEhAyABQYD4AXEiAUGA+AFGBEAgA0EQdCEBIAFBgICA/AdyIABFDQEaIAEgAEENdHJBgICA/gdyDAELIANBEHQhAyABQQ10QYCAgPwAcSAAQQ10ckGAgIDAA2ogA3IgAQ0AGiAAIABnQRBrIgBB//8DcUEIanRB////A3EgA0GAgIDYA3IgAEEXdGtyC76UlAJ9IA0gCSAH/eYBIgcgB/0NCAkKCwABAgMAAQIDAAECAyAHIAcgB/0NBAUGBwABAgMAAQIDAAECA/3kAf3kAf0fACIKQwAAAABfDQAaQwAAgD8gCiAPlCIKIA5gDQAaIA0gDCANkyAKIAuVlJIgCiALYEUNABogDEMAAIA/IAyTIAogC5MgDiALk5WUkguUC6UIAQl/IwBBIGsiByQAIARBfHEiBiADaiEFAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACIANJIgkgAiADayADIAJrIgggAiADSxtBAUZxRQRAIAFBA2siBkEAIAEgBk8bIgYgBSAFIAZLGyEKIAlBACAIQQNLGw0BIAMgCkkNAiADIQUMDgsgA0EBayICIAFPDQMgASAFSSADIAVLcg0EIAYEQCAAIANqIAAgAmotAAAgBvwLAAsgBUEBayECDA0LIAMgCkkNASADIQUMDAsgACADaiELIAAgAmohDEEAIQYDQCADIAZqQQNqIAFPDQQgAiAGaiIFQQNqIAFPDQUgASAFTQ0GIAYgC2oiCCAGIAxqIgktAAA6AAAgBUEBaiINIAFPDQcgCEEBaiAJQQFqLQAAOgAAIAEgBUECaiIFSwRAIAhBAmogCUECai0AADoAACAIQQNqIAlBA2otAAA6AAAgAyAGQQRqIgZqIgUgCk8NDAwBCwsgBSABQfyIxQAQjAcACyABQQRrIQYgAyEFA0AgAkEDaiIDIAFPDQcgAkF8Tw0IIAUgBksNCSAAIAVqIAAgAmooAAA2AAAgAkEEaiECIAogBUEEaiIFSw0ACwwKCyACIAFBpIfFABCMBwALIAMgBSABQbSHxQAQ6gcAC0HEh8UAQS9B9IfFABDrBwALQYSIxQBByABBzIjFABDrBwALIAUgAUHciMUAEIwHAAsgDSABQeyIxQAQjAcAC0EAIAMgAUG8jMUAEOoHAAsgAiACQQRqIAFBvIzFABDqBwALIAdBADYCGCAHQQE2AgwgB0HUnMgANgIIIAdCBDcCECAHQQhqQbyMxQAQjQgACyACIAZqIQILAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIARBA3FBAWsOAwABAg4LIAEgAksNCiACIAFBjInFABCMBwALIAVBAWoiBiABTw0BIAJBAWoiAyABTw0CIAEgAk0NAyABIAVLDQogBSABQdSKxQAQjAcACyAFQQJqIgYgAU8NAyACQQJqIgMgAU8NBCABIAJNDQUgASAFTQ0GIAAgBWogACACai0AADoAACACQQFqIgIgAU8NByAFQQFqIgUgAUkNCSAFIAFBrIzFABCMBwALQayJxQBBL0HcicUAEOsHAAtB7InFAEHIAEG0isUAEOsHAAsgAiABQcSKxQAQjAcAC0HkisUAQS9BlIvFABDrBwALQaSLxQBByABB7IvFABDrBwALIAIgAUH8i8UAEIwHAAsgBSABQYyMxQAQjAcACyACIAFBnIzFABCMBwALIAEgBUsEQCACIQMgBSEGDAILIAUgAUGcicUAEIwHAAsgACAFaiAAIAJqLQAAOgAACyAAIAZqIAAgA2otAAA6AAALIAdBIGokAAvPBwIJfwJ9IAAgASACEOkEAkACQCACBEAgACgChAFBCGohASAAKAKIASEMQQEhCgNAAkACQCAMIAtBA2pLBEAgCkEBayIGIgUgBE8EQCAGIQoMBwsgBCAFayIFQQAgBCAFTxsiBUEBRg0GIAVBAkYNBSADKgIAEMYFvCIHQf///wNxIQggB0GAgICAeHEhBSABQQRrIgkvAQAhDSADQQRqKgIAIQ4gB0GAgID8B3EiBkGAgID8B0YEQCAFQRB2IAhBDXZyQYAEQQAgCBtyQYD4AXIhBQwDCyAFQRB2IQUgBkGAgIC4BEsNASAGQYCAgMQDTwRAIAdBDHYgB0H/3wBxQQBHcSAGQQ12IAhBDXZqQYCAAWogBXJqIQUMAwsgBkGAgICYA0kNAiAIQYCAgARyIgdB/gAgBkEXdiIIa3YhBiAHQR0gCGsiCHZBAXEEfyAGQQMgCHRBAWsgB3FBAEdqBSAGCyAFciEFDAILIAsgC0EEaiAMQdi/wQAQ6gcACyAFQYD4AXIhBQsgA0EIaioCACAJIAVBEHQgDXI2AgAgDhDGBbwiB0H///8DcSEIIAdBgICAgHhxIQUCQCAHQYCAgPwHcSIGQYCAgPwHRgRAIAVBEHYgCEENdnJBgARBACAIG3JBgPgBciEFDAELIAVBEHYhBSAGQYCAgLgETQRAIAZBgICAxANPBEAgB0EMdiAHQf/fAHFBAEdxIAZBDXYgCEENdmpBgIABaiAFcmohBQwCCyAGQYCAgJgDSQ0BIAhBgICABHIiB0H+ACAGQRd2IghrdiEGIAdBHSAIayIIdkEBcQR/IAZBAyAIdEEBayAHcUEAR2oFIAYLIAVyIQUMAQsgBUGA+AFyIQULEMYFvCIIQf///wNxIQkgCEGAgICAeHEhBwJAIAhBgICA/AdxIgZBgICA/AdGBEAgB0EQdiAJQQ12ckGABEEAIAkbckGA+AFyIQcMAQsgB0EQdiEHIAZBgICAuARNBEAgBkGAgIDEA08EQCAIQQx2IAhB/98AcUEAR3EgBkENdiAJQQ12akGAgAFqIAdyaiEHDAILIAZBgICAmANJDQEgCUGAgIAEciIIQf4AIAZBF3YiCWt2IQYgCEEdIAlrIgl2QQFxBH8gBkEDIAl0QQFrIAhxQQBHagUgBgsgB3IhBwwBCyAHQYD4AXIhBwsgASAFQf//A3EgB0EQdHI2AgAgAUEQaiEBIAtBBGohCyAKQQNqIQogA0EMaiEDIAJBAWsiAg0ACwsgAEEBOgDAAQ8LIApBAWohCgsgCiAEQei/wQAQjAcAC6IdAwV+EX8Be0HYtckAKQMAIgMgAa2FIgRCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCAEQtii0e/CqeW/LX6FIgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRB0LXJACkDACIEQn+FfiIFQjiGIAVCgP4Dg0IohoQgBUKAgPwHg0IYhiAFQoCAgPgPg0IIhoSEIAVCCIhCgICA+A+DIAVCGIhCgID8B4OEIAVCKIhCgP4DgyAFQjiIhISEIAMgBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhH6FIAOJIQdByLXJACgCAEUEQAJAIwBBIGsiDiQAAkACQAJAAkACfwJAAkACQAJAQci1yQACfwJAAkACQEHMtckAKAIAQQFqIggEQEHEtckAKAIAIgkgCUEBaiIMQQN2Ig1BB2wgCUEISRsiCUEBdiAISQRAIAlBAWoiCSAIIAggCUkbIghBD0kNAiAIQf////8BTQRAQX8gCEEDdEEHbkEBa2d2IghB/v//P0sNCCAIQQFqIQoMBwsMDgtBACAMRQ0EGkHAtckAKAIAIQsgDSAMQQdxQQBHaiIIQQFNDQIgCyEKIAhB/v///wNxIg0hCQNAIAogCv0AAwAiGf1NQQf9zQH9DAEBAQEBAQEBAQEBAQEBAQH9TiAZ/Qx/f39/f39/f39/f39/f39//VD9zgH9CwMAIApBEGohCiAJQQJrIgkNAAsgCCANRg0DIA1BA3QhCiAIQQFxIQgMAgsMDAtBBCAIQQhxQQhqIAhBBEkbIQoMAwsgCiALaiEKA0AgCiAKKQMAIgNCf4VCB4hCgYKEiJCgwIABgyADQv/+/fv379+//wCEfDcDACAKQQhqIQogCEEBayIIDQALCwJAIAxBCE8EQCALIAxqIAspAAA3AAAMAQsgDEUNACALQQhqIAsgDPwKAAALQQEhCUEAIQgDQCAIIQsgCSEIAkAgC0HAtckAKAIAIglqLQAAQYABRw0AIAkgC0F/c0EFdGohD0EAIAtrQQV0IRQDQEHEtckAKAIAIg1B2LXJACkDACIDIAkgFGpBIGs1AgCFIgRCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCAEQtii0e/CqeW/LX6FIgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRB0LXJACkDACIEQn+FfiIFQjiGIAVCgP4Dg0IohoQgBUKAgPwHg0IYhiAFQoCAgPgPg0IIhoSEIAVCCIhCgICA+A+DIAVCGIhCgID8B4OEIAVCKIhCgP4DgyAFQjiIhISEIAMgBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhH6FIAOJpyITcSIQIQogCSAQaikAAEKAgYKEiJCgwIB/gyIDUARAQQghEQNAIAogEWohCiARQQhqIREgCSAKIA1xIgpqKQAAQoCBgoSIkKDAgH+DIgNQDQALCyAJIAN6p0EDdiAKaiANcSIKaiwAAEEATgRAIAkpAwBCgIGChIiQoMCAf4N6p0EDdiEKCyAKIBBrIAsgEGtzIA1xQQhPBEAgCSAKaiIQLQAAIBAgE0EZdiIQOgAAQcC1yQAoAgAgCkEIayANcWpBCGogEDoAACAJIApBf3NBBXRqIQlB/wFGBEBBxLXJACgCACEKQcC1yQAoAgAgC2pB/wE6AABBwLXJACgCACAKIAtBCGtxakEIakH/AToAACAJQRBqIA9BEGr9AAAA/QsAACAJIA/9AAAA/QsAAAwDCyAPIAlBIBCwA0HAtckAKAIAIQkMAQsLIAkgC2ogE0EZdiIJOgAAQcC1yQAoAgAgDSALQQhrcWpBCGogCToAAAsgCCAIIAxJIgpqIQkgCg0AC0HEtckAKAIAIgggCEEBakEDdkEHbCAIQQhJGwtBzLXJACgCAGs2AgAMBQsgCkEIaiIIIApBBXQiC2oiCSAISSAJQfj///8HS3INACAJEHEiCUUNASAJIAtqIQsgCARAIAtB/wEgCPwLAAsgCkEBayINIApBA3ZBB2wgDUEISRshEUHAtckAKAIAIQlBzLXJACgCACIQDQJBAAwDCyAOQQA2AhggDkEBNgIMIA5BxLXEADYCCCAOQgQ3AhAgDkEIakGYtcQAEI0ICwALIAtBCGohEyAJQSBrIRQgCSkDAEJ/hUKAgYKEiJCgwIB/gyEGQQAhCiAJIQgDQCAGUARAA0AgCkEIaiEKIAhBCGoiCCkDAEKAgYKEiJCgwIB/gyIDQoCBgoSIkKDAgH9RDQALIANCgIGChIiQoMCAf4UhBgsgCyANQdi1yQApAwAiAyAUIAZ6p0EDdiAKaiIVQQV0azUCAIUiBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhELSgaqbq/qC16d/fiIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISEIARC2KLR78Kp5b8tfoUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhEHQtckAKQMAIgRCf4V+IgVCOIYgBUKA/gODQiiGhCAFQoCA/AeDQhiGIAVCgICA+A+DQgiGhIQgBUIIiEKAgID4D4MgBUIYiEKAgPwHg4QgBUIoiEKA/gODIAVCOIiEhIQgAyAEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEfoUgA4mnIhZxIgxqKQAAQoCBgoSIkKDAgH+DIgNQBEBBCCEPA0AgDCAPaiEMIA9BCGohDyALIAwgDXEiDGopAABCgIGChIiQoMCAf4MiA1ANAAsLIAZCAX0gBoMhBiALIAN6p0EDdiAMaiANcSIMaiwAAEEATgRAIAspAwBCgIGChIiQoMCAf4N6p0EDdiEMCyALIAxqIBZBGXYiDzoAACATIAxBCGsgDXFqIA86AAAgCyAMQX9zQQV0aiIMQRBqIAkgFUF/c0EFdGoiD0EQav0AAAD9CwAAIAwgD/0AAAD9CwAAIBBBAWsiEA0AC0HAtckAKAIAIQlBzLXJACgCAAshCkHAtckAIAs2AgBBxLXJACgCACEIQcS1yQAgDTYCAEHItckAIBEgCms2AgAgCEUNACAIIAhBBXRBJ2pBYHEiCmpBCWoiCEUNACAJIAprIglBBGsoAgAiCkF4cSILQQRBCCAKQQNxIgobIAhqSQ0BIApBACALIAhBJ2pLGw0CIAkQogILIA5BIGokAAwDC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgDkEANgIYIA5BATYCDCAOQcS1xAA2AgggDkIENwIQIA5BCGpBmLXEABCNCAALC0HEtckAKAIAIgogB6dxIQggB0IZiCIFQv8Ag0KBgoSIkKDAgAF+IQZBwLXJACgCACEJA0ACfwJAAkAgCCAJaikAACIEIAaFIgNCf4UgA0KBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIDUEUEQANAIAEgCSADeqdBA3YgCGogCnFBBXRrIgtBIGsoAgBGDQIgA0IBfSADgyIDUEUNAAsLIARCgIGChIiQoMCAf4MhAyAXRQRAIANQDQIgA3qnQQN2IAhqIApxIRILQQEgAyAEQgGGg1ANAhogCSASaiwAACIIQQBOBEAgCSAJKQMAQoCBgoSIkKDAgH+DeqdBA3YiEmotAAAhCAsgCSASaiAFp0H/AHEiCzoAACAJIBJBCGsgCnFqQQhqIAs6AABByLXJAEHItckAKAIAIAhBAXFrNgIAIABBgICAgHg2AgBBzLXJAEHMtckAKAIAQQFqNgIAIAkgEkEFdGsiCEEcayIAQRhqIAJBGGooAgA2AgAgACACKQIANwIAIAhBIGsgATYCACAAQQhqIAJBCGr9AAIA/QsCAA8LIAAgC0EcayIB/QACAP0LAgAgASACKQIANwIAIABBGGogAUEYaiIIKAIANgIAIABBEGogAUEQaikCADcCACABQQhqIAJBCGr9AAIA/QsCACAIIAJBGGooAgA2AgAPC0EACyEXIBhBCGoiGCAIaiAKcSEIDAALAAupBwEffyMAQRBrIgYkAAJAAkAgA0EDbCIKQf////8DSw0AIANBDGwiBEH9////B08NAAJAIARFBEBBBCEHDAELIAohCCAEEHEiB0UNAgsgBkEANgIMIAYgBzYCCCAGIAg2AgQCQAJAAkACQAJAAkACQAJAAkACQAJAIAMEQCACIANrIgRBACACIARPGyENIAIgCmsiBEEAIAIgBE8bIQ4gAiADQQlsIgtrIgRBACACIARPGyEPIAIgA0EGbCIMayIEQQAgAiAETxshECABIANqIREgASAKaiESIAEgA0ECdCITaiEUIAEgA0EHbCIVaiEWIAEgA0EKbCIXaiEYIAEgA0EBdCIZaiEaIAEgA0EFbCIbaiEcIAEgA0EDdCIdaiEeIAEgA0ELbCIfaiEgIAEgDGohISABIAtqISJBCCEIQQAhBANAIAIgBEYEQCAEIQUMDQsgBCAORg0JIAQgEEYNCiAEIA9GDQsgASAEai0AACAEIBJqLQAAQQh0ciAEICFqLQAAQRB0ciAEICJqLQAAQRh0ciEJIAYoAgQgBUYEQCAGQQRqQezqxwAQ+gUgBigCCCEHCyAHIAhqQQhrIAk2AgAgBiAFQQFqIgU2AgwgBCANRg0FIAQgE2ogAk8NAiAEIBVqIAJPDQMgBCAXaiACTw0EIAQgEWotAAAgBCAUai0AAEEIdHIgBCAWai0AAEEQdHIgBCAYai0AAEEYdHIhCSAGKAIEIAVGBEAgBkEEakHs6scAEPoFIAYoAgghBwsgByAIakEEayAJNgIAIAYgBUEBaiIJNgIMIAQgGWoiBSACTw0MIAQgG2ogAk8NBiAEIB1qIAJPDQcgBCAfaiACTw0IIAQgGmotAAAgBCAcai0AAEEIdHIgBCAeai0AAEEQdHIgBCAgai0AAEEYdHIhBSAGKAIEIAlGBEAgBkEEakHs6scAEPoFIAYoAgghBwsgByAIaiAFNgIAIAYgCUEBaiIFNgIMIAhBDGohCCADIARBAWoiBEcNAAsLIAAgBikCBDcCACAAQQhqIAZBDGooAgA2AgAgBkEQaiQADwsgA0ECdCAEaiEFDAkLIANBB2wgBGohBQwICyADQQpsIARqIQUMBwsgAyAEaiEFDAYLIANBBWwgBGohBQwFCyADQQN0IARqIQUMBAsgA0ELbCAEaiEFDAMLIAQgCmohBQwCCyAEIAxqIQUMAQsgBCALaiEFCyAFIAJB/OrHABCMBwALQdzqxwAQ/wcLAAuwCAMDfwF8BH0jAEEQayICJAACQCABKAIAQZSAgIB4RgRAAn0CQCAAAn8CQAJAAkACfQJAAkACQAJ9AkACQCABKAIMIgQEQAJ9AkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAggiASgCACIDQYCAgIB4cyADQQBOG0EBaw4KCgABAgMEBQYHCAkLIAEvAQSzDAoLIAEoAgSzDAkLIAEpAwi1DAgLIAEsAASyDAcLIAEuAQSyDAYLIAEoAgSyDAULIAEpAwi0DAQLIAEqAgQMAwsgASsDCCIFtkMAAIA/QwAAgL8gBb1CAFkbmAwCCyABIAJBD2pB2OfAABCVCAwNCyABLQAEswshBiAEQQFGDQQCQAJAAkACQAJAAkACQAJAAkBBFSABKAIQIgNBgICAgHhzIANBAE4bQQFrDgoLAAECAwQFBgcICgsgAS8BFLMMCwsgASgCFLMMCgsgASkDGLUMCQsgASwAFLIMCAsgAS4BFLIMBwsgASgCFLIMBgsgASkDGLQMBQsgASoCFAwECyABKwMYIgW2QwAAgD9DAACAvyAFvUIAWRuYDAMLQQAgAkEPakGk4sAAENsGDAoLIAFBEGogAkEPakHY58AAEJUIDAkLIAEtABSzCyEHIARBAkYNBAJAAkACQAJAAkACQAJAAkACQEEVIAEoAiAiA0GAgICAeHMgA0EAThtBAWsOCgsAAQIDBAUGBwgKCyABLwEkswwLCyABKAIkswwKCyABKQMotQwJCyABLAAksgwICyABLgEksgwHCyABKAIksgwGCyABKQMotAwFCyABKgIkDAQLIAErAygiBbZDAACAP0MAAIC/IAW9QgBZG5gMAwtBASACQQ9qQaTiwAAQ2wYMBgsgAUEgaiACQQ9qQdjnwAAQlQgMBQsgAS0AJLMLIQggBEEDRg0CAkACQAJAAkACQAJAAkACQAJAQRUgASgCMCIDQYCAgIB4cyADQQBOG0EBaw4KDQABAgMEBQYHCAoLIAEvATSzDA0LIAEoAjSzDAwLIAEpAzi1DAsLIAEsADSyDAoLIAEuATSyDAkLIAEoAjSyDAgLIAEpAzi0DAcLIAEqAjQMBgsgASsDOCIFtkMAAIA/QwAAgL8gBb1CAFkbmAwFC0ECIAJBD2pBpOLAABDbBgwCCyABQTBqIAJBD2pB2OfAABCVCAwBC0EDIAJBD2pBpOLAABDbBgs2AgQgAEEBNgIADAMLIAEtADSzCyEJIARBBEcEQCACQQQ2AgggBEH8////AGpB/////wBxQQRqIAJBCGpB6JXBABDbBiEBIABBATYCACAAIAE2AgQMAgsgACAJOAIQIAAgCDgCDCAAIAc4AgggACAGOAIEIABBADYCAAwBCyABIAJBD2pBpOLAABCVCCEBIABBATYCACAAIAE2AgQLIAJBEGokAAvGCAEFfyAAQQhrIgEgAEEEaygCACIDQXhxIgBqIQICQAJAIANBAXENACADQQJxRQ0BIAEoAgAiAyAAaiEAIAEgA2siAUHYuskAKAIARgRAIAIoAgRBA3FBA0cNAUHQuskAIAA2AgAgAiACKAIEQX5xNgIEIAEgAEEBcjYCBCACIAA2AgAPCyABIAMQ1gQLAkACQAJAAkACQAJAAkAgAigCBCIDQQJxRQRAIAJB3LrJACgCAEYNAiACQdi6yQAoAgBGDQMgAiADQXhxIgIQ1gQgASAAIAJqIgBBAXI2AgQgACABaiAANgIAIAFB2LrJACgCAEcNAUHQuskAIAA2AgAPCyACIANBfnE2AgQgASAAQQFyNgIEIAAgAWogADYCAAsgAEGAAkkNAkEfIQIgAUIANwIQIABB////B00EQCAAQSYgAEEIdmciAmt2QQFxIAJBAXRrQT5qIQILIAEgAjYCHCACQQJ0QbC3yQBqIQNBASACdCIEQcy6yQAoAgBxDQMgAyABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIQcy6yQBBzLrJACgCACAEcjYCAAwEC0HcuskAIAE2AgBB1LrJAEHUuskAKAIAIABqIgA2AgAgASAAQQFyNgIEQdi6yQAoAgAgAUYEQEHQuskAQQA2AgBB2LrJAEEANgIACyAAQei6yQAoAgAiAk0NBUHcuskAKAIAIgBFDQVB1LrJACgCACIDQSlJDQRBsLjJACEBA0AgACABKAIAIgVPBEAgACAFIAEoAgRqSQ0GCyABKAIIIQEMAAsAC0HYuskAIAE2AgBB0LrJAEHQuskAKAIAIABqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAA8LAn9ByLrJACgCACICQQEgAEEDdnQiA3FFBEBByLrJACACIANyNgIAIABB+AFxQcC4yQBqIgAMAQsgAEH4AXEiAkHAuMkAaiEAIAJByLjJAGooAgALIQIgACABNgIIIAIgATYCDCABIAA2AgwgASACNgIIDwsCQAJAIAAgAygCACIDKAIEQXhxRgRAIAMhAgwBCyAAQRkgAkEBdmtBACACQR9HG3QhBANAIAMgBEEddkEEcWoiBSgCECICRQ0CIARBAXQhBCACIQMgAigCBEF4cSAARw0ACwsgAigCCCIAIAE2AgwgAiABNgIIIAFBADYCGCABIAI2AgwgASAANgIIDAELIAVBEGogATYCACABIAM2AhggASABNgIMIAEgATYCCAtBACEBQfC6yQBB8LrJACgCAEEBayIANgIAIAANAUG4uMkAKAIAIgAEQANAIAFBAWohASAAKAIIIgANAAsLQfC6yQBB/x8gASABQf8fTRs2AgAPC0G4uMkAKAIAIgEEQANAIARBAWohBCABKAIIIgENAAsLQfC6yQBB/x8gBCAEQf8fTRs2AgAgAiADTw0AQei6yQBBfzYCAAsLrgcBCX8gACABIAIQzAMCQAJAIAIEQCAAKAJgQQhqIQwgACgCZCENQQEhCgNAAkACQCANIAtBA2pLBEAgCkEBayIBIARPBEAgASEKDAcLIAQgAWsiAUEAIAEgBE0bIgFBAUYNBiABQQJGDQUgAygCACIHQf///wNxIQUgB0GAgICAeHEhCSADQQRqKAIAIQEgB0GAgID8B3EiBkGAgID8B0YEQCAJQRB2IAVBDXZyQYAEQQAgBRtyQYD4AXIhCQwDCyAJQRB2IQkgBkGAgIC4BEsNASAGQYCAgMQDTwRAIAdBDHYgB0H/3wBxQQBHcSAGQQ12IAVBDXZqQYCAAWogCXJqIQkMAwsgBkGAgICYA0kNAiAFQYCAgARyIgVB/gAgBkEXdiIGa3YhByAFQR0gBmsiBnZBAXEEfyAHQQMgBnRBAWsgBXFBAEdqBSAHCyAJciEJDAILIAsgC0EEaiANQYjbwAAQ6gcACyAJQYD4AXIhCQsgA0EIaigCACEHIAFB////A3EhCCABQYCAgIB4cSEGAkAgAUGAgID8B3EiBUGAgID8B0cEQCAGQRB2IQYgBUGAgIC4BE0EQCAFQYCAgMQDTwRAIAFBDHYgAUH/3wBxQQBHcSAFQQ12IAhBDXZqQYCAAWogBnJqIQYMAwsgBUGAgICYA0kNAiAIQYCAgARyIghB/gAgBUEXdiIFa3YhASAIQR0gBWsiBXZBAXEEfyABQQMgBXRBAWsgCHFBAEdqBSABCyAGciEGDAILIAZBgPgBciEGDAELIAZBEHYgCEENdnJBgARBACAIG3JBgPgBciEGCyAHQf///wNxIQggB0GAgICAeHEhAQJAIAdBgICA/AdxIgVBgICA/AdHBEAgAUEQdiEBIAVBgICAuARNBEAgBUGAgIDEA08EQCAHQQx2IAdB/98AcUEAR3EgBUENdiAIQQ12akGAgAFqIAFyaiEBDAMLIAVBgICAmANJDQIgCEGAgIAEciIIQf4AIAVBF3YiBWt2IQcgCEEdIAVrIgV2QQFxBH8gB0EDIAV0QQFrIAhxQQBHagUgBwsgAXIhAQwCCyABQYD4AXIhAQwBCyABQRB2IAhBDXZyQYAEQQAgCBtyQYD4AXIhAQsgDCABOwEAIAxBBGsgCUH//wNxIAZBEHRyNgIAIAxBEGohDCALQQRqIQsgCkEDaiEKIANBDGohAyACQQFrIgINAAsLIABBAToAuAEPCyAKQQFqIQoLIAogBEGY28AAEIwHAAutBwEJfyAAIAEgAhDpBAJAAkAgAgRAIAAoAoQBIQwgACgCiAEhDUEBIQkDQAJAAkAgDSALQQNqSwRAIAlBAWsiASAETwRAIAEhCQwHCyAEIAFrIgFBACABIARNGyIBQQFGDQYgAUECRg0FIAMoAgAiCEH///8DcSEHIAhBgICAgHhxIQYgA0EEaigCACEBIAhBgICA/AdxIgVBgICA/AdGBEAgBkEQdiAHQQ12ckGABEEAIAcbckGA+AFyIQYMAwsgBkEQdiEGIAVBgICAuARLDQEgBUGAgIDEA08EQCAIQQx2IAhB/98AcUEAR3EgBUENdiAHQQ12akGAgAFqIAZyaiEGDAMLIAVBgICAmANJDQIgB0GAgIAEciIIQf4AIAVBF3YiB2t2IQUgCEEdIAdrIgd2QQFxBH8gBUEDIAd0QQFrIAhxQQBHagUgBQsgBnIhBgwCCyALIAtBBGogDUGYu8EAEOoHAAsgBkGA+AFyIQYLIANBCGooAgAhCCABQf///wNxIQogAUGAgICAeHEhBQJAIAFBgICA/AdxIgdBgICA/AdGBEAgBUEQdiAKQQ12ckGABEEAIAobckGA+AFyIQUMAQsgBUEQdiEFIAdBgICAuARNBEAgB0GAgIDEA08EQCABQQx2IAFB/98AcUEAR3EgB0ENdiAKQQ12akGAgAFqIAVyaiEFDAILIAdBgICAmANJDQEgCkGAgIAEciIKQf4AIAdBF3YiB2t2IQEgCkEdIAdrIgd2QQFxBH8gAUEDIAd0QQFrIApxQQBHagUgAQsgBXIhBQwBCyAFQYD4AXIhBQsgDCAGQf//A3EgBUEQdHI2AgAgCEH///8DcSEFIAhBgICAgHhxIQECQCAIQYCAgPwHcSIGQYCAgPwHRgRAIAFBEHYgBUENdnJBgARBACAFG3JBgPgBciEBDAELIAFBEHYhASAGQYCAgLgETQRAIAZBgICAxANPBEAgCEEMdiAIQf/fAHFBAEdxIAZBDXYgBUENdmpBgIABaiABcmohAQwCCyAGQYCAgJgDSQ0BIAVBgICABHIiCEH+ACAGQRd2IgZrdiEFIAhBHSAGayIGdkEBcQR/IAVBAyAGdEEBayAIcUEAR2oFIAULIAFyIQEMAQsgAUGA+AFyIQELIAxBBGogATsBACAMQRBqIQwgC0EEaiELIAlBA2ohCSADQQxqIQMgAkEBayICDQALCyAAQQE6AMABDwsgCUEBaiEJCyAJIARBqLvBABCMBwALqggCB38CfiMAQUBqIgIkAAJAAkACQAJAAkAgASgCFCIDIAEoAhAiBEkEQCABKAIMIQgCfgJAA0AgAyAIai0AACIFQQlrIgZBF0tBASAGdEGTgIAEcUVyDQEgASADQQFqIgM2AhQgAyAERw0ACyAEIQNCAAwBC0KAAgsgBa1CEIaEQoCCuANRDQELAkACQAJAIAJBEGogASgCDCIFIAQgAyAESQR/A0ACQCADIAVqLQAAIgZBCWsOJQAABAQABAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAMECyABIANBAWoiAzYCFCADIARHDQALIAQFIAMLQQFqIgEgBCABIARJGxD5ASACKAIUIQEgAigCECEEQRQQcSIDRQ0EIAMgBDYCDCADQQU2AgAgAyABNgIQDAYLIAEgA0EBajYCFCACQRhqIAFBABDHAyACKQMYIgpCA1ENBCACKQMgIQkCQAJAAkAgCqdBAWsOAgABAgsgCUKAgICAEFQNAyACQQE6ACggAiAJNwMwIAJBKGogAkE/akGY58AAEN4GIAEQ6wUhAwwHCyAJQoCAgIAQVA0CIAJBAjoAKCACIAk3AzAgAkEoaiACQT9qQZjnwAAQ3gYgARDrBSEDDAYLIAJBAzoAKCACIAk3AzAgAkEoaiACQT9qQZjnwAAQ3wYgARDrBSEDDAULIAZBMGtB/wFxQQpPBEAgASACQT9qQZjnwAAQ7gEgARDrBSEDDAULIAJBGGogAUEBEMcDIAIpAxgiCkIDUQRAIAIoAiAhAwwFCyACKQMgIQkCfwJAAkACQCAKp0EBaw4CAAECCyAJQoCAgIAQVA0DIAJBAToAKCACIAk3AzAgAkEoaiACQT9qQZjnwAAQ3gYMAgsgCUKAgICAEFQNAiACQQI6ACggAiAJNwMwIAJBKGogAkE/akGY58AAEN4GDAELIAJBAzoAKCACIAk3AzAgAkEoaiACQT9qQZjnwAAQ3wYLIAEQ6wUhAwwECyAAIAk+AgQgAEEBNgIADAQLIAEgA0EBaiIHNgIUAkACQAJAIAQgB00NACABIANBAmoiBTYCFCAHIAhqLQAAQfUARw0BIAUgByAEIAQgB0kbIgdGDQAgASADQQNqIgY2AhQgBSAIai0AAEHsAEcEQCAGIQUMAgsgBiAHRg0AIAEgA0EEaiIFNgIUIAYgCGotAABB7ABHDQEgAEEANgIADAYLIAIgCCAEIAcQ+QEgAigCBCEEIAIoAgAhAUEUEHEiA0UNAiADQQU2AgAMAQsgAkEIaiAIIAQgBRD5ASACKAIMIQQgAigCCCEBQRQQcSIDRQ0BIANBCTYCAAsgAyABNgIMIAAgAzYCBCAAQQI2AgAgAyAENgIQDAMLAAsgAigCICEDCyAAQQI2AgAgACADNgIECyACQUBrJAALmAcCDn8CfiMAQdAAayICJAAgACgCCCEDIAAoAgQhBQJAAn9BASABKAIAIghBIiABKAIEIgooAhAiCxECAA0AGiACIAM2AgggAiAFNgIEIAJBL2qtQoCAgICAB4QhEANAAkAgAkEMaiACQQRqEO0DIAgCfwJAIAIoAgwiBQRAIAIoAhghDCACKAIUIQ1BACACKAIQIgNFDQIaIAMgBWohD0EAIQAgBSEBQQAhBwNAAn8gASwAACIEQQBOBEAgBEH/AXEhBCABQQFqDAELIAEtAAFBP3EhBiAEQR9xIQkgBEFfTQRAIAlBBnQgBnIhBCABQQJqDAELIAEtAAJBP3EgBkEGdHIhBiAEQXBJBEAgBiAJQQx0ciEEIAFBA2oMAQsgCUESdEGAgPAAcSABLQADQT9xIAZBBnRyciEEIAFBBGoLIQkgAkEcaiAEQYGCBBCBAyACLQApIAItAChrQf8BcUEBRwRAAkACQCAAIAdLDQACQCAARQ0AIAAgA08EQCAAIANHDQIMAQsgACAFaiwAAEG/f0wNAQsCQCAHRQ0AIAMgB00EQCADIAdGDQEMAgsgBSAHaiwAAEG/f0wNAQsgCCAAIAVqIAcgAGsgCigCDBEAAEUNAQwHCyAFIAMgACAHQYCKwwAQuwkACyACQThqIAJBJGopAgA3AwAgAiACKQIcIhE3AzAgAi0APCEAAkAgAi0APSIGQYEBTwRAIBGnIQ4DQCAAQf8BcSAGTw0CIABBAWohACAIIA4gCxECAEUNAAsMBwsgACAGIAAgBksbIQYDQCAAIAZGDQEgAkEwaiAAaiEOIABBAWohACAIIA4tAAAgCxECAEUNAAsMBgsCf0EBIARBgAFJDQAaQQIgBEGAEEkNABpBA0EEIARBgIAESRsLIAdqIQALIAcgAWsgCWohByAJIgEgD0cNAAsMAQsgCEEiIAsRAgAMBAtBACAARQ0AGiAAIANPBEAgAyAAIANGDQEaDAULIAAgBWosAABBQEgNBCAACyIBIAVqIAMgAWsgCigCDBEAAA0AIAxFDQEDQCACIA0tAAA6AC8gAkEBNgJEIAJB6InDADYCQCACQQE2AjQgAkHgicMANgIwIAJBATYCPCACIBA3A0ggAiACQcgAajYCOCAIIAogAkEwahDBAw0BIA1BAWohDSAMQQFrIgwNAAsMAQsLQQELIAJB0ABqJAAPCyAFIAMgACADQcyJwwAQuwkAC+MHAwZ/B30BeyMAQZABayICJAAgAiAAKAIAIgb9AAIAIg8gD/0NAAECAwQFBgcICQoLCAkKC/0LBAAgAgJ/IA/9GQYiA0H//wFxRQRAIANBEHQMAQsgA0H/B3EhBCADQYCAAnEhBSADQYD4AXEiA0GA+AFGBEAgBUEQdCIDQYCAgPwHciAERQ0BGiADIARBDXRyQYCAgP4HcgwBCyAFQRB0IgUgA0ENdEGAgID8AHEgBEENdHJBgICAwANqciADDQAaIAQgBGdBEGsiBEH//wNxQQhqdEH///8DcSAFQYCAgNgDciAEQRd0a3ILNgIcIAJDAAAAACAAKAIEIgAqAgAgAC0AHEECRiIEGyIIIAZBEGotAAAiA7NDAAB/Q5VDAACAPyAAKgIEIAQbIAiTIgmUkv0TIAggBkEOai8BACIFIANBEHRyQf8BcbNDAAB/Q5UgCZSS/SAAIAggBUEIdrNDAAB/Q5UgCZSS/SAB/QsEICAGQRFqLwAAIAZBE2otAAAiA0EQdHIiBUEIdiEHQwAAEEEgACoCDCAEGyEJQwAAQMEgACoCCCAEGyEIIAVB/wFxBEAgCCAJIAiTQwAAfkOVIAVBAWtB/wFxs5SSEIkEIQsLIAdB/wFxBEAgCCAJIAiTQwAAfkOVIAdBAWtB/wFxs5SSEIkEIQoLIAIgAwR9IAggCSAIk0MAAH5DlSADQQFrQf8BcbOUkhCJBAVDAAAAAAv9EyAL/SAAIAr9IAH9CwQwQwAAgD8gBkEUai8BACIAQQh2s/0TIAAgBkEWai0AACIGQRB0ckH/AXGz/SAB/QwAAH9DAAB/QwAAf0MAAH9D/ecBIg8gD/3kAf0MAACAvwAAgL8AAIC/AACAv/3kASIP/R8BIgqLkyAP/R8AIgyLkyIIjEMAAAAAEOAIIQkgAiAGs0MAAH9DlUMAAAA/lEPbD0lAlCINEJkCIgsgCiAJIAmMIg4gD/0MAAAAAAAAAAAAAAAAAAAAAP1G/U0iD/3HAf0bAkEBcRuSIgogCCAIlCAKIAqUIAwgCSAOIA/9GwBBAXEbkiIJIAmUkpKRIgqVlP0TIAsgCSAKlZT9IAEgCyAIIAqVlP0gAiANEJsC/SAD/QsEQCACIAJBQGutQoCAgIDAAoQ3A3AgAiACQTBqrUKAgICAoAKENwNoIAIgAkEgaq1CgICAgKAChDcDYCACIAJBHGqtQoCAgIDQAoQ3A1ggAiACrUKAgICAoAKENwNQIAEoAgAgASgCBCACQgU3AoQBIAJBBjYCfCACQeCqxwA2AnggAiACQdAAajYCgAEgAkH4AGoQwQMgAkGQAWokAAuyBwEJfyMAQdAAayIBJABBgYDEACECAkACQCAAKAIEIgQgACgCECIDSQ0AIAAgBCADayIENgIEIAAgACgCACICIANqIgg2AgACQAJAIANBAkYEQCACLQAAIgNBwQBrQV9xQQpqIANBMGsgA0E5SxsiBUEPSw0EIAItAAEiA0HBAGtBX3FBCmogA0EwayADQTlLGyIDQRBPDQQgBUEEdCADciIFwEEATg0BQYCAxAAhAiAFQf8BcSIDQcABSQ0DAn9BAiADQeABSQ0AGkEDIANB8AFJDQAaIANB+AFPDQRBBAshA0EAIQIgAUEAOgATIAFBADsAESABIAU6ABAgASADNgIMIANBAXRBAmshCSABIAFBEGo2AgggAUERaiEFA0AgBEECSQRAQYCAxAAhAgwFCyAAIARBAmsiBDYCBCAAIAIgCGoiBkECajYCACAGLQAAIgdBwQBrQV9xQQpqIAdBMGsgB0E5SxsiB0EPSw0FIAZBAWotAAAiBkHBAGtBX3FBCmogBkEwayAGQTlLGyIGQRBPDQUgBSAHQQR0IAZyOgAAIAVBAWohBSAJIAJBAmoiAkcNAAsMAgtBpPjGAEEoQbywxQAQ6wcAC0EBIQMgAUEBNgIMIAFBADoAEyABQQA7ABEgASAFOgAQIAEgAUEQajYCCAsgAUE4aiABQRBqIAMQ+wJBgIDEACECIAEoAjgNACABKAI8IQAgASABKAJAIgI2AhggASAANgIUIAAgAmohAwJAIAJFDQAgAwJ/IAAsAAAiAkEATgRAIAJB/wFxIQIgAEEBagwBCyAALQABQT9xIQUgAkEfcSEEIAJBX00EQCAEQQZ0IAVyIQIgAEECagwBCyAALQACQT9xIAVBBnRyIQUgAkFwSQRAIAUgBEEMdHIhAiAAQQNqDAELIARBEnRBgIDwAHEgAC0AA0E/cSAFQQZ0cnIhAiAAQQRqCyIERwRAIAQsAAAaDAELIAJBgIDEAEcNAQsgAQJ/QQAhAiADIABrIgRBEE8EQCAAIAQQxwIMAQsgACADRwRAA0AgAiAALAAAQb9/SmohAiAAQQFqIQAgBEEBayIEDQALCyACCzYCNCABQQQ2AiAgAUG8scUANgIcIAFCAzcCKCABIAFBNGqtQoCAgIAQhDcDSCABIAFBFGqtQoCAgICgDYQ3A0AgASABQQhqrUKAgICAsA2ENwM4IAEgAUE4ajYCJCABQRxqQdyxxQAQjQgACyABQdAAaiQAIAIPC0GssMUAEN0JAAvpBwIGfQZ/AkACQAJAIAQEQEMAAHxCIAWVIQUgAUEBdiEQIAFBAWpBAXYhEQNAIAxBCWoiDyADSyANQZuOx+MBS3INA0MAAHxCQwAAfMIgBSACQSBqKgIAlCIHIAdDAAB8wl0bIgcgB0MAAHxCXhsQuQchB0MAAHxCQwAAfMIgBSACQRxqKgIAlCIIIAhDAAB8wl0bIgggCEMAAHxCXhsQuQchCEMAAHxCQwAAfMIgBSACQRBqKgIAlCIJIAlDAAB8wl0bIgkgCUMAAHxCXhsQuQchCUMAAHxCQwAAfMIgBSACQRRqKgIAlCIKIApDAAB8wl0bIgogCkMAAHxCXhsQuQchCkMAAHxCQwAAfMIgBSACQRhqKgIAlCILIAtDAAB8wl0bIgsgC0MAAHxCXhsQuQchCyANIBFGDQQgAEH/AEMAAHxCQwAAfMIgBSACKgIAlCIGIAZDAAB8wl0bIgYgBkMAAHxCXhsQuQciBvwAQYB/IAZDAAAAw2AbIAZDAAD+Ql4bQQAgBiAGWxtB/wBxQf8AQwAAfEJDAAB8wiAFIAJBBGoqAgCUIgYgBkMAAHzCXRsiBiAGQwAAfEJeGxC5ByIG/ABBgH8gBkMAAADDYBsgBkMAAP5CXhtBACAGIAZbG0H/AHFBB3RyQf8AQwAAfEJDAAB8wiAFIAJBCGoqAgCUIgYgBkMAAHzCXRsiBiAGQwAAfEJeGxC5ByIG/ABBgH8gBkMAAADDYBsgBkMAAP5CXhtBACAGIAZbG0H/AHFBDnRyQf8AQwAAfEJDAAB8wiAFIAJBDGoqAgCUIgYgBkMAAHzCXRsiBiAGQwAAfEJeGxC5ByIG/ABBgH8gBkMAAADDYBsgBkMAAP5CXhtBACAGIAZbG0H/AHFBFXRyQf8AIAn8AEGAfyAJQwAAAMNgGyAJQwAA/kJeG0EAIAkgCVsbQf8AcSIMQRx0cjYCACANIBBGDQIgAEEEakH/ACAI/ABBgH8gCEMAAADDYBsgCEMAAP5CXhtBACAIIAhbG0H/AHFBEXRB/wAgB/wAQYB/IAdDAAAAw2AbIAdDAAD+Ql4bQQAgByAHWxtB/wBxQRh0ckH/ACAK/ABBgH8gCkMAAADDYBsgCkMAAP5CXhtBACAKIApbG0H/AHFBA3QgDEEEdnJB/wAgC/wAQYB/IAtDAAAAw2AbIAtDAAD+Ql4bQQAgCyALWxtB/wBxQQp0cnI2AgAgAEEIaiEAIA5BAmohDiACQSRqIQIgDyEMIAQgDUEBaiINRw0ACwsPCyAOQQFqIAFBoM7HABCMBwALIAwgDyADQbDOxwAQ6gcACyAOIAFBkM7HABCMBwAL/AoCC3sIfyADBEAgBSABIAJrIhFBACABIBFPGyIWIAUgFkkbIhEgA0EBayISIBEgEkkbQQFqIhJBBEsEQCAC/REhDv0MAAAAAAEAAAACAAAAAwAAACELIAQhESASIBJBA3EiE0EEIBMbayITIRIDQCAAIAsgDv2uASIM/RsAQRhsaiAR/QACACIG/Qz//38A//9/AP//fwD//38A/U4iB0EN/a0BIAb9DAAAAIAAAACAAAAAgAAAAID9TkEQ/a0BIgj9UCIJIAf9DAAAAAAAAAAAAAAAAAAAAAD9OP0MAAIAAAACAAAAAgAAAAIAAP1O/VAgBv0NAAEEBQgJDA0AAQABAAEAAf0MAHwAfAB8AHwAfAB8AHwAfCIN/VAgCCAG/Q0AAQQFCAkMDQABAAEAAQABIA39UCAJIAb9DAAAgH8AAIB/AACAfwAAgH8iDf1OIglBDf2tAf0MAEAAAABAAAAAQAAAAEAAAP2uAf1QIAb9DQABBAUICQwNAAEAAQABAAEgBv0MABAAAAAQAAAAEAAAABAAAP1OIAr9OCAG/Qz/LwAA/y8AAP8vAAD/LwAA/U4gCv04/U79DAEAAAABAAAAAQAAAAEAAAD9TiAG/Q0AAQQFCAkMDQABAAEAAQAB/Y4BIAj9DAAAgPoAAID6AACA+gAAgPoiCCAH/QwAAIAAAACAAAAAgAAAAIAA/VAiBv0bAP0MfgAAAH4AAAB+AAAAfgAAACAJQRf9rQEiD/2xASIH/RsAdv0RIAb9GwEgB/0bAXb9HAEgBv0bAiAH/RsCdv0cAiAG/RsDIAf9GwN2/RwDIAn9DAAAgMcAAIDHAACAxwAAgMf9rgEiECAI/ToiCEEB/QwdAAAAHQAAAB0AAAAdAAAAIA/9sQH9DB8AAAAfAAAAHwAAAB8AAAD9TiIH/RsAIhV0/RFBASAH/RsBIhR0/RwBQQEgB/0bAiIXdP0cAkEBIAf9GwMiGHT9HAMgBv1OIAr9OP1QQQMgFXT9EUEDIBR0/RwBQQMgF3T9HAJBAyAYdP0cA/0M//////////////////////2uASAG/U4gCv04/U79sQEgCP1S/VAgBv0NAAEEBQgJDA0AAQABAAEAASAQ/QwBAIAOAQCADgEAgA4BAIAO/TogBv0NAAEEBQgJDA0AAQABAAEAAf1SIAn9DAAAAEcAAABHAAAARwAAAEf9PCAG/Q0AAQQFCAkMDQABAAEAAQAB/VIgCSAN/TcgBv0NAAEEBQgJDA0AAQABAAEAAf1SIgb9WQEMACAAIAz9GwFBGGxqIAb9WQEMASAAIAz9GwJBGGxqIAb9WQEMAiAAIAz9GwNBGGxqIAb9WQEMAyARQRBqIREgC/0MBAAAAAQAAAAEAAAABAAAAP2uASELIBJBBGsiEg0ACwsgBCATQQJ0aiERIAIgE2pBGGwgAGpBDGohEgNAAkACQCATIBZHBEAgBSATRwRAIBEoAgAiFUH///8DcSEUIBVBgICAgHhxIQQgFUGAgID8B3EiAEGAgID8B0YEQCAUQQ12IARBEHZyQYAEQQAgFBtyQYD4AXIhBAwECyAEQRB2IQQgAEGAgIC4BEsNAiAAQYCAgMQDTwRAIBVBDHYgFUH/3wBxQQBHcSAAQQ12IBRBDXZqQYCAAWogBHJqIQQMBAsgAEGAgICYA0kNAyAUQYCAgARyIhVB/gAgAEEXdiIUa3YhACAVQR0gFGsiFHZBAXEEfyAAQQMgFHRBAWsgFXFBAEdqBSAACyAEciEEDAMLIAUgBUGEw8cAEIwHAAsgAiATaiABQey7xwAQjAcACyAEQYD4AXIhBAsgEiAEOwEAIBJBGGohEiARQQRqIREgAyATQQFqIhNHDQALCwv8CgILewh/IAMEQCAFIAEgAmsiEUEAIAEgEU8bIhYgBSAWSRsiESADQQFrIhIgESASSRtBAWoiEkEESwRAIAL9ESEO/QwAAAAAAQAAAAIAAAADAAAAIQsgBCERIBIgEkEDcSITQQQgExtrIhMhEgNAIAAgCyAO/a4BIgz9GwBBJGxqIBH9AAIAIgb9DP//fwD//38A//9/AP//fwD9TiIHQQ39rQEgBv0MAAAAgAAAAIAAAACAAAAAgP1OQRD9rQEiCP1QIgkgB/0MAAAAAAAAAAAAAAAAAAAAAP04/QwAAgAAAAIAAAACAAAAAgAA/U79UCAG/Q0AAQQFCAkMDQABAAEAAQAB/QwAfAB8AHwAfAB8AHwAfAB8Ig39UCAIIAb9DQABBAUICQwNAAEAAQABAAEgDf1QIAkgBv0MAACAfwAAgH8AAIB/AACAfyIN/U4iCUEN/a0B/QwAQAAAAEAAAABAAAAAQAAA/a4B/VAgBv0NAAEEBQgJDA0AAQABAAEAASAG/QwAEAAAABAAAAAQAAAAEAAA/U4gCv04IAb9DP8vAAD/LwAA/y8AAP8vAAD9TiAK/Tj9Tv0MAQAAAAEAAAABAAAAAQAAAP1OIAb9DQABBAUICQwNAAEAAQABAAH9jgEgCP0MAACA+gAAgPoAAID6AACA+iIIIAf9DAAAgAAAAIAAAACAAAAAgAD9UCIG/RsA/Qx+AAAAfgAAAH4AAAB+AAAAIAlBF/2tASIP/bEBIgf9GwB2/REgBv0bASAH/RsBdv0cASAG/RsCIAf9GwJ2/RwCIAb9GwMgB/0bA3b9HAMgCf0MAACAxwAAgMcAAIDHAACAx/2uASIQIAj9OiIIQQH9DB0AAAAdAAAAHQAAAB0AAAAgD/2xAf0MHwAAAB8AAAAfAAAAHwAAAP1OIgf9GwAiFXT9EUEBIAf9GwEiFHT9HAFBASAH/RsCIhd0/RwCQQEgB/0bAyIYdP0cAyAG/U4gCv04/VBBAyAVdP0RQQMgFHT9HAFBAyAXdP0cAkEDIBh0/RwD/Qz//////////////////////a4BIAb9TiAK/Tj9Tv2xASAI/VL9UCAG/Q0AAQQFCAkMDQABAAEAAQABIBD9DAEAgA4BAIAOAQCADgEAgA79OiAG/Q0AAQQFCAkMDQABAAEAAQAB/VIgCf0MAAAARwAAAEcAAABHAAAAR/08IAb9DQABBAUICQwNAAEAAQABAAH9UiAJIA39NyAG/Q0AAQQFCAkMDQABAAEAAQAB/VIiBv1ZARQAIAAgDP0bAUEkbGogBv1ZARQBIAAgDP0bAkEkbGogBv1ZARQCIAAgDP0bA0EkbGogBv1ZARQDIBFBEGohESAL/QwEAAAABAAAAAQAAAAEAAAA/a4BIQsgEkEEayISDQALCyAEIBNBAnRqIREgAiATakEkbCAAakEUaiESA0ACQAJAIBMgFkcEQCAFIBNHBEAgESgCACIVQf///wNxIRQgFUGAgICAeHEhBCAVQYCAgPwHcSIAQYCAgPwHRgRAIBRBDXYgBEEQdnJBgARBACAUG3JBgPgBciEEDAQLIARBEHYhBCAAQYCAgLgESw0CIABBgICAxANPBEAgFUEMdiAVQf/fAHFBAEdxIABBDXYgFEENdmpBgIABaiAEcmohBAwECyAAQYCAgJgDSQ0DIBRBgICABHIiFUH+ACAAQRd2IhRrdiEAIBVBHSAUayIUdkEBcQR/IABBAyAUdEEBayAVcUEAR2oFIAALIARyIQQMAwsgBSAFQdTFxwAQjAcACyACIBNqIAFB5MDHABCMBwALIARBgPgBciEECyASIAQ7AQAgEkEkaiESIBFBBGohESADIBNBAWoiE0cNAAsLC7wJAgJ/AXsjAEHQAGsiAiQAIAJBDmpBADoAACACQR5qQQA6AAAgAkEmakEAOgAAIAJBLmpBADoAACACQTZqQQA6AAAgAkE+akEAOgAAIAJBxgBqQQA6AAAgAkEAOwEMIAJBFmpBADoAACACQQA7ARwgAkEAOwEkIAJBADsBLCACQQA7ATQgAkEAOwE8IAJBADsBRCACQQA7ARQgAkHOAGpBADoAACACQQA7AUxBgCEQcSIDBEAgA0HI1cYAQYAh/AoAACAAQQE2AnAgAP0MAAAAAAAAAAAAAAAAAAAAAP0LAnQgAEL/gYCAgH83AoQBIABBADYCoAUgAEHyAToAkwEgAEEANgKYBCAAQoCAgIAQNwOQBCAAQQA6AKYFIABBADsBpAUgAEKAgICAEDcDACAAQgA3AwggAEIBNwMQIABCgICAgBA3AxggAEHoA2ogAUEQaikDADcDACAAIAH9AAMA/QsD2AMgACACKAIINgKMASAAQY8BaiACKAALNgAAIABBJ2pCADcAACAAQgA3AyAgAEIANwMwIABBN2pCADcAACAAQgA3A0AgAEHHAGpCADcAACAAQgA3A1AgAEHXAGpCADcAACAAQgA3A2AgAEHnAGpCADcAACAAIAT9CwPwAyAAQYAEaiAE/QsDACAAQQE2ApgBIAAgBP0LApwBIABC/4GAgIB/NwKsASAAQbcBaiACKAATNgAAIAAgAigCEDYCtAEgACAE/QsCxAEgAEEBNgLAASAAQfIBOgC7ASAAQv+BgICAfzcC1AEgAEHyAToA4wEgACAE/QsC7AEgAEEBNgLoASAAQv+BgICAfzcC/AEgAEEBNgKQAiAAIAT9CwKUAiAAQfIBOgCLAiAAQd8BaiACKAAbNgAAIAAgAigCGDYC3AEgAEGHAmogAigAIzYAACAAIAIoAiA2AoQCIABC/4GAgIB/NwKkAiAAQa8CaiACKAArNgAAIAAgAigCKDYCrAIgACAE/QsCvAIgAEEBNgK4AiAAQfIBOgCzAiAAQv+BgICAfzcCzAIgAEHXAmogAigAMzYAACAAIAIoAjA2AtQCIAAgBP0LAuQCIABBATYC4AIgAEHyAToA2wIgAEL/gYCAgH83AvQCIABB/wJqIAIoADs2AAAgACACKAI4NgL8AiAAIAT9CwKMAyAAQQE2AogDIABB8gE6AIMDIABC/4GAgIB/NwKcAyAAQacDaiACKABDNgAAIAAgAigCQDYCpAMgACAE/QsCtAMgAEEBNgKwAyAAQfIBOgCrAyAAQv+BgICAfzcCxAMgAEHPA2ogAigASzYAACAAIAIoAkg2AswDIABBAToApwUgAEHyAToA0wMgAEH8BGpB0PbGACgAADYAACAAQcj2xgApAAA3APQEIABBADoAqAUgACADNgLwBCAAQQA6AIAFIABCADcCpAQgAEKAgICAEDcCnAQgAEGYBWpCADcBACAAQZIFakIANwEAIAAgBP0LAYIFIABBADYC7AQgAEKAgICAEDcC5AQgAEIBNwLcBCAAQgA3AtQEIABCgICAgBA3AswEIABCATcCxAQgAEIANwK8BCAAQoCAgIAQNwK0BCAAQgE3AqwEIAJB0ABqJAAPCwAL2AcCDH8BeyMAQYAIayIGJAACQAJAAkAgASgC2AFBgYCAgHhHBEAgASgC3AEhAiABKALgASEHIAEoAtABIQsgASgC1AEhDCABKALMASENQQAhAQNAIAEgBmr9DAAAAP8AAAD/AAAA/wAAAP/9CwAAIAFBEGoiAUGACEcNAAsgB0EDbiEKIAdBBE8EQCAHQQRrIgFBC00EQEGAAiEEIAYhASAHIQMMAwtBgAJBgAIgAUEDbiIBIAFBgAJPG0EBaiIBIAFBA3EiAUEEIAEbayIFayEEIAcgBUF9bGohAyACIAVBA2xqIAYgBUECdGohASAGIQgDQCAIIAJBCWogAkEGaiACQQNqIAL9XAAA/VYAAAH9VgAAAv1WAAAD/QsAACACQQxqIQIgCEEQaiEIIAVBBGsiBQ0ACyECDAILIAYhASAHIQMgB0UNAwwCC0GgmcUAQRRBtJnFABCrBwALA0AgBEUEQEEAQQBB9JnFABCMBwALIAEgAigAADYAACABQQRqIQEgBEEBayEEIAJBA2ohAiADQQNrIgNBA0sNAAsgBA0AQQBBAEHEmcUAEIwHAAsgA0EDRgRAIAEgAi8AADsAACABQQJqIAJBAmotAAA6AAAMAQtBAEEDIANB1JnFABDqBwALAkBBAEEAIAwgDUGBgICAeEYiARsiAyADIApLIgMbIghFDQBBAUEBIAsgAxsgARshA0GAAiAIIAhBgAJPGyEJQQAhBSAIQRBPBEAgCUHwA3EhBSAJQQJ0QUBxIQtBACEBIAMhBANAIAEgBmoiAkE/aiAE/QAAACIO/VgAAA8gAkE7aiAO/VgAAA4gAkE3aiAO/VgAAA0gAkEzaiAO/VgAAAwgAkEvaiAO/VgAAAsgAkEraiAO/VgAAAogAkEnaiAO/VgAAAkgAkEjaiAO/VgAAAggAkEfaiAO/VgAAAcgAkEbaiAO/VgAAAYgAkEXaiAO/VgAAAUgAkETaiAO/VgAAAQgAkEPaiAO/VgAAAMgAkELaiAO/VgAAAIgAkEHaiAO/VgAAAEgAkEDaiAO/VgAAAAgBEEQaiEEIAsgAUFAayIBRw0ACyAFIAlGDQELIAkgBWshBCADIAVqIQIgBUECdCAGakEDaiEBA0AgASACLQAAOgAAIAJBAWohAiABQQRqIQEgBEEBayIEDQALCyAHQYMGSQRAIAggCkcEQCAKQQJ0IAhBAnQiB2shASAGIAdqQQNqIQIDQCACQf8BOgAAIAJBBGohAiABQQRrIgENAAsLIAAgBkGACPwKAAAgBkGACGokAA8LIAggCkGAAkHkmcUAEOoHAAvSCAEEfyMAQSBrIgIkAAJAAkACQAJAAkACQAJAAkAgAC0AAEEBaw4DAQIDAAsgAiAAKAIENgIEIAEoAgBBoPvHAEECIAEoAgQoAgwRAAAhACACQQA6AA0gAiAAOgAMIAIgATYCCCACQQhqQbT7xwBBBCACQQRqQaT7xwAQjAUgAkEpOgATQcj7xwBBBCACQRNqQbj7xwAQjAVBFBBxIgBFDQQgAEEQakHcgsgAKAAANgAAIABBzILIAP0AAAD9CwAAIAJBFDYCHCACIAA2AhggAkEUNgIUQdz7xwBBByACQRRqQcz7xwAQjAUhASACLQANIgMgAi0ADCIEciEAAkAgBEEBcSADQQFHcg0AIAEoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADAELIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAsgAigCFCIBRQ0DIAIoAhgiA0EEaygCACIEQXhxIgVBBEEIIARBA3EiBBsgAWpJDQUgBEEAIAUgAUEnaksbDQYgAxCiAgwDCyAALQABIQNBASEAIAEoAgBB4/vHAEEEIAEoAgQoAgwRAAANAgJAIAEtAApBgAFxRQRAIAEoAgBBu7PFAEEBIAEoAgQoAgwRAAANBCABKAIAIANBAnQiAygCpKhJIAMoAvymSSABKAIEKAIMEQAARQ0BDAQLIAEoAgBB24HCAEECIAEoAgQoAgwRAAANAyACQQE6AAggAiABKQIANwIUIANBAnQiAygCzKlJIQQgAygC9KpJIQMgAiACQQhqNgIcIAJBFGoiBSADIAQQrwMNAyAFQdmBwgBBAhCvAw0DCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQAMAgsgACgCBCEAIAEoAgBB5/vHAEEFIAEoAgQoAgwRAAAhAyACQQA6ABkgAiADOgAYIAIgATYCFCACQRRqQcj7xwBBBCAAQQhqQbj7xwAQjAVB3PvHAEEHIABB7PvHABCMBSACLQAZIgMgAi0AGCIEciEAIARBAXEgA0EBR3INASgCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQAMAgsgACgCAEGls8UAQQEgACgCBCgCDBEAACEADAELIAIgACgCBCIANgIIIAEoAgBBjPzHAEEGIAEoAgQoAgwRAAAhAyACQQA6ABkgAiADOgAYIAIgATYCFCACQRRqQcj7xwBBBCAAQQhqQbj7xwAQjAVBupjIAEEFIAJBCGpB/PvHABCMBSACLQAZIgMgAi0AGCIEciEAIARBAXEgA0EBR3INACgCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQAMAQsgACgCAEGls8UAQQEgACgCBCgCDBEAACEACyACQSBqJAAgAEEBcQ8LAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALvQcDCX8CfAJ+IwBBMGsiBCQAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIUIgYgASgCECIFSQRAIAEoAgwiCSAGai0AACIHQS5GDQEgB0HFAEYgB0HlAEZyDQILIAJFDQJCASEPDAgLIAEgBkEBaiIGNgIUIAUgBk0NAyAGIAVrIQcCQANAIAYgCWotAAAiCkEwayILQf8BcSIMQQpPBEAgCEUNBiAKQSByQeUARwRAIAghBwwGCyAEQSBqIAEgAiADIAgQ2AIMCAsgDEEFSyADQpmz5syZs+bMGVJyIANCmLPmzJmz5swZVnENASABIAZBAWoiBjYCFCAIQQFrIQggA0IKfiALrUL/AYN8IQMgBSAGRw0ACyAFIQYgB0UNBQwDCyAEQSBqIAEgAiADIAgQ6AYMBQsgBEEgaiABIAIgA0EAENgCIAQoAiBFDQUgACAEKAIkNgIIIABCAzcDAAwHC0IAIAN9IhBCAFMEQEICIQ8gECEDDAYLIAO6vUKAgICAgICAgIB/hCEDDAULIAO6IQ0CQAJAAkAgByAHQR91IgFzIAFrIgFBtQJPBEADQCANRAAAAAAAAAAAYQ0EIAdBAE4NAiANRKDI64XzzOF/oyENIAdBtAJqIgcgB0EfdSIBcyABayIBQbUCTw0ACwsgAUEDdCsDoIJHIQ4gB0EATg0BIA0gDqMhDQwCCyAEQRBqIAkgBSAGEPkBIAQoAhQhAiAEKAIQIQVBFBBxIgFFDQggASAFNgIMIAFBDjYCACABIAI2AhAgBCABNgIkIARBATYCIAwECyANIA6iIg2ZRAAAAAAAAPB/Yg0AIARBCGogCSAFIAYQ+QEgBCgCDCECIAQoAgghBUEUEHEiAUUNByABIAU2AgwgAUEONgIAIAEgAjYCECAEIAE2AiQgBEEBNgIgDAMLIAQgDSANmiACGzkDKCAEQQA2AiAMAgsgBSAGTQ0AIARBGGogCSAFIAZBAWoiASAFIAEgBUkbEPkBIAQoAhwhAiAEKAIYIQVBFBBxIgFFDQUgASAFNgIMIAFBDTYCACABIAI2AhAgBCABNgIkIARBATYCIAwBCyAEIAkgBSAGQQFqIgEgBSABIAVJGxD5ASAEKAIEIQIgBCgCACEFQRQQcSIBRQ0EIAEgBTYCDCABQQU2AgAgASACNgIQIAQgATYCJCAEQQE2AiALIAQoAiBFDQAgACAEKAIkNgIIIABCAzcDAAwCCyAEKQMoIQMLIAAgAzcDCCAAIA83AwALIARBMGokAA8LAAvqBwENfyMAQUBqIgUkAEEAELYJIQYgBUEQakEAOgAAIAVBPGogBEEYaigCADYCACAFQTRqIARBEGopAgA3AgAgBUEaaiAEQR9qLQAAOgAAIAVCADcDCCAFIAT9AAIA/QsCJCAFIAQvAB07ARggBC0AHCEPIAEQuAohECAGQYQITwRAIAYQmwcLAkAgA0UEQAwBC0H458AAQQMQ7AghBCADKAIAIgogBBDiCCEIQbS7yQAtAAAhA0G0u8kAQQA6AABBuLvJACgCAEG4u8kAQQA2AgAgCCADGyELAkACQAJAIANFBEAgCxC5CkUEQEEBIQkMBAsgC0GDCEsNAQwCCyALQYQISQ0CCyALEJsHCwsgBEGECE8EQCAEEJsHCyAKQfvnwABBAxDsCCIDEOIIIQhBtLvJAC0AACEEQbS7yQBBADoAAEG4u8kAKAIAQbi7yQBBADYCACAIIAQbIQYCfwJAAkAgBEUEQCAGELkKRQRAQQEhDUECDAQLIAZBgwhLDQEMAgsgCSAGQYQISQ0CGgsgBhCbBwsgCQshCCADQYQITwRAIAMQmwcLIApBjOzAAEEDEOwIIgQQ4gghA0G0u8kALQAAIQdBtLvJAEEAOgAAQbi7yQAoAgBBuLvJAEEANgIAIAMgBxshAwJAAkACQCAHRQRAIAMQuQpFBEBBASEMQQMhCAwECyADQYMISw0BDAILIANBhAhJDQILIAMQmwcLCyAEQYQITwRAIAQQmwcLQQAhByAKQYbowABBBxDsCCIKEOIIIQRBtLvJAC0AACEOQbS7yQBBADoAAEG4u8kAKAIAQbi7yQBBADYCACAEIA4bIQQCQAJAAkAgDkUEQCAEELkKRQRAQQEhD0EBIQcMBAsgBEGDCEsNAQwCCyAEQYQISQ0CCyAEEJsHCwsgCkGECEkNACAKEJsHCyAAQYCAgIB4NgJ0IABBgICAgHg2AmggAEIENwJgIABCADcCWCAAQoCAgIDAADcCUCAAQgQ3AkggAEIANwJAIABCgICAgMAANwI4IAAgBDYCNCAAIAc2AjAgAEEANgIoIABBADYCICAAQQA2AhggACADNgIUIAAgDDYCECAAIAY2AgwgACANNgIIIAAgCzYCBCAAIAk2AgAgACAPOgCcASAAIAE2AqwBIAAgCDYCqAEgACACNgKkASAAIBBBAnY2AqABIABBmAFqIAVBPGooAgA2AgAgAEGIAWogBUEsav0AAgD9CwIAIAAgBf0AAhz9CwJ4IAAgBS8BGDsAnQEgAEGfAWogBUEaai0AADoAACAAIAUpAwg3ArABIABBuAFqIAVBEGotAAA6AAAgBUFAayQAC8cHAgZ/AnsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFFBEBBBCELDAELIAFBAnQQcSILRQ0BIAFBBE8EQCABQXxxIgwhCQNAIAggC2ogACAIav0AAgD9DLtukD67bpA+u26QPrtukD795gH9DAAAAD8AAAA/AAAAPwAAAD/95AH9CwIAIAhBEGohCCAJQQRrIgkNAAsgASAMRg0BCyAMQQJ0IQggASAMayEJA0AgCCALaiAAIAhqKgIAQ7tukD6UQwAAAD+SOAIAIAhBBGohCCAJQQFrIgkNAAsLQYAIEHEiAEUNAP0MAAAAAAEAAAACAAAAAwAAACEOQQAhCANAIAAgCGoiCSAO/fsB/QwAAH9DAAB/QwAAf0MAAH9DIg/95wH9CwIAIAlBEGogDv0MBAAAAAQAAAAEAAAABAAAAP2uAf37ASAP/ecB/QsCACAO/QwIAAAACAAAAAgAAAAIAAAA/a4BIQ4gCEEgaiIIQYAIRw0ACwJAAkAgBwRAQQAhCUEAIQgDQCADIAhNDQUgASACIAhqIgwtAAAiCk0NBiAFIAlNDQcgBCALIApBAnRqKgIAOAIAIAhBAWoiCiADTw0IIAEgDEEBai0AACIKTQ0JIAlBAWoiDSAFTw0KIARBBGogCyAKQQJ0aioCADgCACAIQQJqIgogA08NCyABIAxBAmotAAAiCk0NDCAJQQJqIg0gBU8NDSAEQQhqIAsgCkECdGoqAgA4AgAgCEEDaiIKIANPDQ4gBiAIaiAAIAxBA2otAABBAnRqKgIAOAIAIARBDGohBCAJQQNqIQkgCEEEaiEIIAdBAWsiBw0ACyAAQQRrKAIAIgJBeHFBhAhBiAggAkEDcSIDG0kNDiADQQAgAkGoCE8bDQ8gABCiAgwBCyAAQQRrKAIAIgJBeHFBhAhBiAggAkEDcSIDG0kNDSADQQAgAkGoCE8bDQ4gABCiAiABRQ0BCyALQQRrKAIAIgBBeHEiAiABQQJ0IgFBBEEIIABBA3EiABtqSQ0MIABBACACIAFBJ2pLGw0NIAsQogILDwsACyAIIANBgPHHABCMBwALIAogAUGQ8ccAEIwHAAsgCSAFQaDxxwAQjAcACyAKIANBsPHHABCMBwALIAogAUHA8ccAEIwHAAsgDSAFQdDxxwAQjAcACyAKIANB4PHHABCMBwALIAogAUHw8ccAEIwHAAsgDSAFQYDyxwAQjAcACyAKIANBkPLHABCMBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC9kGAg1/An0gAEGstskAKAIAIgcEfyMAQRBrIQhBrLbJACAHQQFrIgY2AgBBqLbJACgCACIFIAZBDGxqIgQoAgghASAEKAIEIQMgBCgCACEEAkAgBkUEQCABIQogAyELIAQhDAwBCyAFKAAAIQwgBSAENgAAIAUoAAQhCyAFIAM2AAQgBUEIaiIDKAAAIQogAyABNgAAIAhBCGogAygCADYCACAIIAUpAgA3AwBBASEBIAdBBE8EQCAGQQJrIgFBACABIAZNGyEGQQEhAQNAAn8gBSABQQxsaiIDQQxqIgQqAgAiDiAOWyAOIAMqAgAiD2BFcSIJIAlBfyAOIA9fGyAPIA9cGyIJBEAgCUEATAwBCyADKAIEIgkgBCgCBCINRwRAIAkgDU0MAQsgAygCCCAEKAIITQshAyAFIAJBDGxqIgQgBSABIANqIgJBDGxqIgEpAgA3AgAgBEEIaiABQQhqKAIANgIAIAJBAXQiA0EBciEBIAMgBkkNAAsLAkAgB0ECayABRwRAIAIhAQwBCyAFIAJBDGxqIgIgBSABQQxsaiIDKQIANwIAIAJBCGogA0EIaigCADYCAAsgBSABQQxsaiICIAgpAwA3AgAgAkEIaiAIQQhqKAIAIgg2AgAgAigCBCEDIAIqAgAhDgJAIAFFBEBBACEBDAELIA4gDlsEQANAAkAgBSABIgJBAWsiBkEBdiIBQQxsaiIEKgIAIg8gD1sgDiAPX0VxQX8gDiAPYBsiBwRAIAdBAEoNASACIQEMBAsgBCgCBCIHIANHBEAgAyAHSw0BIAIhAQwECyAIIAQoAghLDQAgAiEBDAMLIAUgAkEMbGoiAiAEKQIANwIAIAJBCGogBEEIaigCADYCACAGQQFLDQAMAgsACwNAAkAgBSABIgJBAWsiBkEBdiIBQQxsaiIEKgIAIg8gD1sgDiAPX0VxDQAgBCgCBCIHIANHBEAgAyAHSw0BIAIhAQwDCyAIIAQoAghLDQAgAiEBDAILIAUgAkEMbGoiAiAEKQIANwIAIAJBCGogBEEIaigCADYCACAGQQJPDQALCyAFIAFBDGxqIgEgCDYCCCABIAM2AgQgASAOOAIACyAAIAo2AgwgACALNgIIIAAgDDYCBEEBBSABCzYCAAuWCAMGfwR7An0gBUEDbiEKIAEqAgAhESAAKgIAIRACQAJAAkACQAJAAkACQAJAQYAIEHEiCEUNACARIBCT/RMhDiAQ/RMhD/0MAAAAAAEAAAACAAAAAwAAACEMA0AgBiAIaiAPIA4gDP37Af0MAAB/QwAAf0MAAH9DAAB/Q/3nAf3mAf3kASIN/R8AEIkE/RMgDf0fARCJBP0gASAN/R8CEIkE/SACIA39HwMQiQT9IAP9CwIAIAz9DAQAAAAEAAAABAAAAAQAAAD9rgEhDCAGQRBqIgZBgAhHDQALIAEqAgQgACoCBCEQQYAIEHEiCUUNACAQk/0TIQ4gEP0TIQ/9DAAAAAABAAAAAgAAAAMAAAAhDEEAIQYDQCAGIAlqIA8gDiAM/fsB/QwAAH9DAAB/QwAAf0MAAH9D/ecB/eYB/eQBIg39HwAQiQT9EyAN/R8BEIkE/SABIA39HwIQiQT9IAIgDf0fAxCJBP0gA/0LAgAgDP0MBAAAAAQAAAAEAAAABAAAAP2uASEMIAZBEGoiBkGACEcNAAsgASoCCCAAKgIIIRBBgAgQcSIARQ0AIBCT/RMhDiAQ/RMhD/0MAAAAAAEAAAACAAAAAwAAACEMQQAhBgNAIAAgBmogDyAOIAz9+wH9DAAAf0MAAH9DAAB/QwAAf0P95wH95gH95AEiDf0fABCJBP0TIA39HwEQiQT9IAEgDf0fAhCJBP0gAiAN/R8DEIkE/SAD/QsCACAM/QwEAAAABAAAAAQAAAAEAAAA/a4BIQwgBkEQaiIGQYAIRw0ACwJAIAVBA08EQEEAIQZBACEBA0AgAyAGTQ0EIAEgBU8NBSAEIAggAiAGaiILLQAAQQJ0aioCADgCACAGQQFqIgcgA08NBiABQQFqIgcgBU8NByAEQQRqIAkgC0EBai0AAEECdGoqAgA4AgAgBkECaiIHIANPDQggAUECaiIHIAVPDQIgBEEIaiAAIAtBAmotAABBAnRqKgIAOAIAIAZBBGohBiAEQQxqIQQgAUEDaiEBIApBAWsiCg0ACwsgAEEEaygCACIBQXhxQYQIQYgIIAFBA3EiAhtJDQcgAkEAIAFBqAhPGw0IIAAQogIgCUEEaygCACIAQXhxQYQIQYgIIABBA3EiARtJDQcgAUEAIABBqAhPGw0IIAkQogIgCEEEaygCACIAQXhxQYQIQYgIIABBA3EiARtJDQcgAUEAIABBqAhPGw0IIAgQogIPCyAHIAVBoPXHABCMBwsACyAGIANB0PTHABCMBwALIAEgBUHg9McAEIwHAAsgByADQfD0xwAQjAcACyAHIAVBgPXHABCMBwALIAcgA0GQ9ccAEIwHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALggcBA34gASgCACACQQZ0ayIBQUBqKQMAIAAoAgAoAgAiACkDCIUiA0LYotHvwqnlvy1+IAFBOGspAwCFIANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhIUiA0LYotHvwqnlvy1+IAFBMGspAwCFIANCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIRC0oGqm6v6gtenf34iA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhIUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhELSgaqbq/qC16d/fiIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEIANC2KLR78Kp5b8tfoUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCAAKQMAIgRCf4V+IgVCOIYgBUKA/gODQiiGhCAFQoCA/AeDQhiGIAVCgICA+A+DQgiGhIQgBUIIiEKAgID4D4MgBUIYiEKAgPwHg4QgBUIoiEKA/gODIAVCOIiEhIQgAyAEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEfoUgA4kLwwYBDH8jAEEQayIJJABBASELAkAgAigCACIKQSIgAigCBCIMKAIQIg0RAgANAAJAAkAgAUUEQEEAIQFBACECDAELIAAhBSABIQYDQCAFIAZqIQ5BACECAkACQANAIAIgBWoiBy0AACIIQf8Aa0H/AXFBoQFJIAhBIkZyIAhB3ABGcg0BIAYgAkEBaiICRw0ACyADIAZqIQMMAQsgAiADaiEDAkACQCAHLAAAIgJBAE4EQCAHQQFqIQUgAkH/AXEhAgwBCyAHLQABQT9xIQUgAkEfcSEGIAJBX00EQCAGQQZ0IAVyIQIgB0ECaiEFDAELIActAAJBP3EgBUEGdHIhCCACQXBJBEAgCCAGQQx0ciECIAdBA2ohBQwBCyAHQQRqIQUgBkESdEGAgPAAcSAHLQADQT9xIAhBBnRyciICQYCAxABGDQELIAkgAkGBgAQQgQMCQCAJLQANIgYgCS0ADCIHayIIQf8BcUEBRg0AAkACQAJAIAMgBEkNAAJAIARFDQAgASAETQRAIAEgBEcNAgwBCyAAIARqLAAAQb9/TA0BCwJAIANFDQAgASADTQRAIAEgA0YNAQwCCyAAIANqLAAAQb9/TA0BCyAKIAAgBGogAyAEayAMKAIMIgQRAABFDQEMAgsgACABIAQgA0GogcIAELsJAAsCQCAGQYEBTwRAIAogCSgCACANEQIADQIMAQsgCiAHIAlqIAggBBEAAA0BCyACQYABSQRAIANBAWohBAwCCyACQYAQSQRAIANBAmohBAwCC0EDQQQgAkGAgARJGyADaiEEDAELDAYLAn9BASACQYABSQ0AGkECIAJBgBBJDQAaQQNBBCACQYCABEkbCyADaiEDCyAOIAVrIgYNAQsLIAMgBEkNAUEAIQICQCAERQ0AIAEgBE0EQCAEIAEiAkcNAwwBCyAEIgIgAGosAABBv39MDQILIANFBEBBACEBDAELIAEgA00EQCABIANGDQEgAiEEDAILIAAgA2osAABBv39MBEAgAiEEDAILIAMhAQsgCiAAIAJqIAEgAmsgDCgCDBEAAA0BIApBIiANEQIAIQsMAQsgACABIAQgA0G4gcIAELsJAAsgCUEQaiQAIAsLzwYBCH8jAEEwayEIA0AgASgCACIEQf///wNxIQMgBEGAgICAeHEhBgJAIARBgICA/AdxIgJBgICA/AdGBEAgA0ENdiAGQRB2ckGABEEAIAMbckGA+AFyIQYMAQsgBkEQdiEGIAJBgICAuARNBEAgAkGAgIDEA08EQCAEQQx2IARB/98AcUEAR3EgAkENdiADQQ12akGAgAFqIAZyaiEGDAILIAJBgICAmANJDQEgA0GAgIAEciIEQf4AIAJBF3YiA2t2IQIgBEEdIANrIgN2QQFxBH8gAkEDIAN0QQFrIARxQQBHagUgAgsgBnIhBgwBCyAGQYD4AXIhBgsgAUEEaigCACIDQf///wNxIQUgA0GAgICAeHEhBAJAIANBgICA/AdxIgJBgICA/AdHBEAgBEEQdiEEIAJBgICAuARNBEAgAkGAgIDEA08EQCADQQx2IANB/98AcUEAR3EgAkENdiAFQQ12akGAgAFqIARyaiEEDAMLIAJBgICAmANJDQIgBUGAgIAEciIDQf4AIAJBF3YiBWt2IQIgA0EdIAVrIgV2QQFxBH8gAkEDIAV0QQFrIANxQQBHagUgAgsgBHIhBAwCCyAEQYD4AXIhBAwBCyAFQQ12IARBEHZyQYAEQQAgBRtyQYD4AXIhBAsgAUEIaigCACIFQf///wNxIQcgBUGAgICAeHEhAwJAIAVBgICA/AdxIgJBgICA/AdHBEAgA0EQdiEDIAJBgICAuARNBEAgAkGAgIDEA08EQCAFQQx2IAVB/98AcUEAR3EgAkENdiAHQQ12akGAgAFqIANyaiEDDAMLIAJBgICAmANJDQIgB0GAgIAEciIFQf4AIAJBF3YiB2t2IQIgBUEdIAdrIgd2QQFxBH8gAkEDIAd0QQFrIAVxQQBHagUgAgsgA3IhAwwCCyADQYD4AXIhAwwBCyAHQQ12IANBEHZyQYAEQQAgBxtyQYD4AXIhAwsgCEEGaiAJaiICIAY7AQAgAkEEaiADOwEAIAJBAmogBDsBACABQQxqIQEgCUEGaiIJQSpHDQALIAAgCP0AAQb9CwEAIABBKGogCEEuai8BADsBACAAQSBqIAhBJmopAQA3AQAgAEEQaiAIQRZq/QABAP0LAQALogcCCH8CfiMAQZACayICJAACQCABKAK4AiIDQQNNBEAgAEEAOwEADAELIAIgASgCtAIiBSgAACIENgIIAkACQAJAAkAgBEHSgpGaBEYEQCADQQhJBEAgAEEAOgABIABBADoAAAwGCyADIAUoAAQiBkEHakF4cSIIQRBqIgRJDQEgBkEIaiIHIANLIAZBd0tyDQIgAkEANgKAAiACIAY2AvwBIAIgBUEIajYC+AEgAkEYaiACQfgBahBvIAIoAhwhBiACKAIYIglBAkYEQCAAIAYQzgc2AgQgAEEBOgAADAYLIAJBkAFqIAJBIGpB6AD8CgAAIAIgBjYCjAEgAiAJNgKIASAIQQhqIgggBEsNAyABQQA2ArgCIAMgBGshByAFIAhqKQAAIQsCQAJAIARFDQAgAyAERg0BIAdFDQAgBSAEIAVqIAf8CgAACyABIAc2ArgCCyABIAEpA3AgBK18Igo3A3AgASAKIAt8NwOIASABIAo3A4ABAkAgAigC8AFBAUYEQCABIAIpA5ABPgKoAiABIAIoApgBIgM2AqwCIAEoApABQQJGDQEMBgsgAkEBNgIcIAJBhMnBADYCGCACQgE3AiQgAiACQfABaq1CgICAgBCENwOIAiACIAJBiAJqNgIgIAJB+AFqIgEgAkEYahCxBiABEI4HIQEgAigC5AEiAwRAIAIoAugBIANBKGxBCBCiBwsgACABNgIEIABBAToAAAwGCyABQQA2AqgCIAIgAi0A9AFBAXE6ACAgAiAGQQAgCUEBcRs2AhwgAiADNgIYIAFBvAJqIAJBGGoQ4QMMBAsgAkEBNgIsIAJBzMjBADYCKCACQQE2AhwgAkGQzsEANgIYIAJBATYCJCACIAJBCGqtQoCAgICQBIQ3A/gBIAIgAkH4AWo2AiAgAkEMaiIBIAJBGGoQsQYgACABEI4HNgIEIABBAToAAAwECyAAQQA6AAEgAEEAOgAADAMLQQggByADQeTNwQAQ6gcACyAIIAQgA0HUzcEAEOoHAAsgAUEANgKkAgJAIAEoAgBBAkYNACABKAJcIgNFDQACQCABKAJgIgRBBGsoAgAiBUF4cSIGIANBKGwiA0EEQQggBUEDcSIFG2pPBEAgBUEAIAYgA0EnaksbDQEgBBCiAgwCC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgASACQYgBakHwAPwKAAAgAEGAAjsBAAsgAkGQAmokAAumBwIIfwJ+IwBBkAJrIgIkAAJAAkACQCABKALgAiIDQQNNBEAgAEEAOwEADAELIAIgASgC3AIiBSgAACIENgIIAkACQAJAAkAgBEHSgpGaBEYEQCADQQhJBEAgAEEAOgABIABBADoAAAwGCyADIAUoAAQiBkEHakF4cSIIQRBqIgRJDQEgBkEIaiIHIANLIAZBd0tyDQIgAkEANgKAAiACIAY2AvwBIAIgBUEIajYC+AEgAkEYaiACQfgBahBvIAIoAhwhBiACKAIYIglBAkYEQCAAIAYQzgc2AgQgAEEBOgAADAYLIAJBkAFqIAJBIGpB6AD8CgAAIAIgBjYCjAEgAiAJNgKIASAIQQhqIgggBEsNAyABQQA2AuACIAMgBGshByAFIAhqKQAAIQsCQAJAIARFDQAgAyAERg0BIAdFDQAgBSAEIAVqIAf8CgAACyABIAc2AuACCyABIAEpA7gCIAStfCIKNwO4AiABIAogC3w3A9ACIAEgCjcDyAIgAigC8AFBAUYEQCABIAIpA5ABPgL0AiABIAIoApgBIgM2AvgCIAEoAgBBAkcNBSABQQA2AvQCIAIgAi0A9AFBAXE6ACAgAiAGQQAgCUEBcRs2AhwgAiADNgIYIAFB+AFqIAJBGGoQhAIMBQsgAkEBNgIcIAJBhMnBADYCGCACQgE3AiQgAiACQfABaq1CgICAgBCENwOIAiACIAJBiAJqNgIgIAJB+AFqIgEgAkEYahCxBiABEI4HIQEgAigC5AEiAwRAIAIoAugBIANBKGxBCBCiBwsgACABNgIEIABBAToAAAwFCyACQQE2AiwgAkHMyMEANgIoIAJBATYCHCACQZDOwQA2AhggAkEBNgIkIAIgAkEIaq1CgICAgJAEhDcD+AEgAiACQfgBajYCICACQQxqIgEgAkEYahCxBiAAIAEQjgc2AgQgAEEBOgAADAQLIABBADoAASAAQQA6AAAMAwtBCCAHIANB5M3BABDqBwALIAggBCADQdTNwQAQ6gcACyABQQA2AvACAkAgASgCiAFBAkYNACABKALkASIDRQ0AIAEoAugBIgRBBGsoAgAiBUF4cSIGIANBKGwiA0EEQQggBUEDcSIFG2pJDQIgBUEAIAYgA0EnaksbDQMgBBCiAgsgAUGIAWogAkGIAWpB8AD8CgAAIABBgAI7AQALIAJBkAJqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAumBwIIfwJ+IwBBkAJrIgIkAAJAAkACQCABKAKAAyIDQQNNBEAgAEEAOwEADAELIAIgASgC/AIiBSgAACIENgIIAkACQAJAAkAgBEHSgpGaBEYEQCADQQhJBEAgAEEAOgABIABBADoAAAwGCyADIAUoAAQiBkEHakF4cSIIQRBqIgRJDQEgBkEIaiIHIANLIAZBd0tyDQIgAkEANgKAAiACIAY2AvwBIAIgBUEIajYC+AEgAkEYaiACQfgBahBvIAIoAhwhBiACKAIYIglBAkYEQCAAIAYQzgc2AgQgAEEBOgAADAYLIAJBkAFqIAJBIGpB6AD8CgAAIAIgBjYCjAEgAiAJNgKIASAIQQhqIgggBEsNAyABQQA2AoADIAMgBGshByAFIAhqKQAAIQsCQAJAIARFDQAgAyAERg0BIAdFDQAgBSAEIAVqIAf8CgAACyABIAc2AoADCyABIAEpA9gCIAStfCIKNwPYAiABIAogC3w3A/ACIAEgCjcD6AIgAigC8AFBAUYEQCABIAIpA5ABPgKUAyABIAIoApgBIgM2ApgDIAEoAgBBAkcNBSABQQA2ApQDIAIgAi0A9AFBAXE6ACAgAiAGQQAgCUEBcRs2AhwgAiADNgIYIAFB+AFqIAJBGGoQ6QEMBQsgAkEBNgIcIAJBhMnBADYCGCACQgE3AiQgAiACQfABaq1CgICAgBCENwOIAiACIAJBiAJqNgIgIAJB+AFqIgEgAkEYahCxBiABEI4HIQEgAigC5AEiAwRAIAIoAugBIANBKGxBCBCiBwsgACABNgIEIABBAToAAAwFCyACQQE2AiwgAkHMyMEANgIoIAJBATYCHCACQZDOwQA2AhggAkEBNgIkIAIgAkEIaq1CgICAgJAEhDcD+AEgAiACQfgBajYCICACQQxqIgEgAkEYahCxBiAAIAEQjgc2AgQgAEEBOgAADAQLIABBADoAASAAQQA6AAAMAwtBCCAHIANB5M3BABDqBwALIAggBCADQdTNwQAQ6gcACyABQQA2ApADAkAgASgCiAFBAkYNACABKALkASIDRQ0AIAEoAugBIgRBBGsoAgAiBUF4cSIGIANBKGwiA0EEQQggBUEDcSIFG2pJDQIgBUEAIAYgA0EnaksbDQMgBBCiAgsgAUGIAWogAkGIAWpB8AD8CgAAIABBgAI7AQALIAJBkAJqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuiBwIIfwJ+IwBBkAJrIgIkAAJAIAEoArgCIgNBA00EQCAAQQA7AQAMAQsgAiABKAK0AiIFKAAAIgQ2AggCQAJAAkACQCAEQdKCkZoERgRAIANBCEkEQCAAQQA6AAEgAEEAOgAADAYLIAMgBSgABCIGQQdqQXhxIghBEGoiBEkNASAGQQhqIgcgA0sgBkF3S3INAiACQQA2AoACIAIgBjYC/AEgAiAFQQhqNgL4ASACQRhqIAJB+AFqEG8gAigCHCEGIAIoAhgiCUECRgRAIAAgBhDOBzYCBCAAQQE6AAAMBgsgAkGQAWogAkEgakHoAPwKAAAgAiAGNgKMASACIAk2AogBIAhBCGoiCCAESw0DIAFBADYCuAIgAyAEayEHIAUgCGopAAAhCwJAAkAgBEUNACADIARGDQEgB0UNACAFIAQgBWogB/wKAAALIAEgBzYCuAILIAEgASkDcCAErXwiCjcDcCABIAogC3w3A4gBIAEgCjcDgAECQCACKALwAUEBRgRAIAEgAikDkAE+AqgCIAEgAigCmAEiAzYCrAIgASgCkAFBAkYNAQwGCyACQQE2AhwgAkGEycEANgIYIAJCATcCJCACIAJB8AFqrUKAgICAEIQ3A4gCIAIgAkGIAmo2AiAgAkH4AWoiASACQRhqELEGIAEQjgchASACKALkASIDBEAgAigC6AEgA0EobEEIEKIHCyAAIAE2AgQgAEEBOgAADAYLIAFBADYCqAIgAiACLQD0AUEBcToAICACIAZBACAJQQFxGzYCHCACIAM2AhggAUG8AmogAkEYahClBAwECyACQQE2AiwgAkHMyMEANgIoIAJBATYCHCACQZDOwQA2AhggAkEBNgIkIAIgAkEIaq1CgICAgJAEhDcD+AEgAiACQfgBajYCICACQQxqIgEgAkEYahCxBiAAIAEQjgc2AgQgAEEBOgAADAQLIABBADoAASAAQQA6AAAMAwtBCCAHIANB5M3BABDqBwALIAggBCADQdTNwQAQ6gcACyABQQA2AqQCAkAgASgCAEECRg0AIAEoAlwiA0UNAAJAIAEoAmAiBEEEaygCACIFQXhxIgYgA0EobCIDQQRBCCAFQQNxIgUbak8EQCAFQQAgBiADQSdqSxsNASAEEKICDAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyABIAJBiAFqQfAA/AoAACAAQYACOwEACyACQZACaiQAC+oGAQV/AkACQAJAAkACQAJAAkAgAEEEayIHKAIAIghBeHEiBEEEQQggCEEDcSIFGyABak8EQCAFQQAgAUEnaiIGIARJGw0BAkAgAkEJTwRAIAIgAxDBBCICDQFBAA8LQQAhAiADQcz/e0sNCEEQIANBC2pBeHEgA0ELSRshASAAQQhrIQYgBUUEQCAGRSABQYACSXIgBCABa0GAgAhLIAEgBE9ycg0HIAAPCyAEIAZqIQUCQCABIARLBEAgBUHcuskAKAIARg0BQdi6yQAoAgAgBUcEQCAFKAIEIghBAnENCSAIQXhxIgggBGoiBCABSQ0JIAUgCBDWBCAEIAFrIgVBEE8EQCAHIAEgBygCAEEBcXJBAnI2AgAgASAGaiIBIAVBA3I2AgQgBCAGaiIEIAQoAgRBAXI2AgQgASAFEOMCDAkLIAcgBCAHKAIAQQFxckECcjYCACAEIAZqIgEgASgCBEEBcjYCBAwIC0HQuskAKAIAIARqIgQgAUkNCAJAIAQgAWsiBUEPTQRAIAcgCEEBcSAEckECcjYCACAEIAZqIgEgASgCBEEBcjYCBEEAIQVBACEBDAELIAcgASAIQQFxckECcjYCACABIAZqIgEgBUEBcjYCBCAEIAZqIgQgBTYCACAEIAQoAgRBfnE2AgQLQdi6yQAgATYCAEHQuskAIAU2AgAMBwsgBCABayIEQQ9NDQYgByABIAhBAXFyQQJyNgIAIAEgBmoiASAEQQNyNgIEIAUgBSgCBEEBcjYCBCABIAQQ4wIMBgtB1LrJACgCACAEaiIEIAFLDQQMBgsgAyABIAEgA0sbIgMEQCACIAAgA/wKAAALIAcoAgAiA0F4cSIHIAFBBEEIIANBA3EiARtqSQ0CIAFFIAYgB09yDQZBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcACyAHIAEgCEEBcXJBAnI2AgAgASAGaiIFIAQgAWsiAUEBcjYCBEHUuskAIAE2AgBB3LrJACAFNgIACyAGRQ0AIAAPCyADEHEiAUUNASADQXxBeCAHKAIAIgJBA3EbIAJBeHFqIgIgAiADSxsiAgRAIAEgACAC/AoAAAsgASECCyAAEKICCyACC68HAQZ/IwBBQGoiAyQAIAAoAgwhBAJAAkACQCAAKAIUIgEgACgCECICSQRAA0AgASAEai0AACIGQQlrIgVBGUsNAkEBIAV0QZOAgARxRQRAIAVBGUcNAyAAEMsEIQEMBAsgACABQQFqIgE2AhQgASACRw0ACyACIQELIANBEGogBCACIAFBAWoiACACIAAgAkkbEPkBIAMoAhQhACADKAIQIQJBFBBxIgFFDQIgASACNgIMIAFBBTYCACABIAA2AhAMAQsgBkH7AEYEQCAAIAAtABhBAWsiBToAGCABQQFqIQEgBUH/AXEEQCAAIAE2AhQCQCAAEMsEIgFFBEAgACgCDCEEAkACQCAAKAIUIgEgACgCECICSQRAA0ACQCABIARqLQAAQQlrDjIAAAMDAAMDAwMDAwMDAwMDAwMDAwMDAwADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBgMLIAAgAUEBaiIBNgIUIAEgAkcNAAsgAiEBCyADQShqIAQgAiABQQFqIgEgAiABIAJJGxD5ASADKAIsIQIgAygCKCEEQRQQcSIBRQ0HIAFBAzYCAAwBCyADQSBqIAQgAiABQQFqIgEgAiABIAJJGxD5ASADKAIkIQIgAygCICEEQRQQcSIBRQ0GIAFBBjYCAAsgASAENgIMIAEgAjYCEAsgACAALQAYQQFqOgAYDAMLIAAgAUEBajYCFCAAEIcEIQEgACAALQAYQQFqOgAYIAENAiAAKAIMIQQCQCAAKAIUIgEgACgCECICSQRAA0AgASAEai0AACIFQQlrIgZBF0tBASAGdEGTgIAEcUVyDQIgACABQQFqIgE2AhQgASACRw0ACyACIQELIANBOGogBCACIAEQ+QEgAygCPCEAIAMoAjghAkEUEHEiAUUNBCABIAI2AgwgAUEDNgIAIAEgADYCEAwDCyAFQf0ARgRAIAAgAUEBajYCFEEAIQEMAwsgA0EwaiAEIAIgARD5ASADKAI0IQAgAygCMCECQRQQcSIBRQ0DIAEgAjYCDCABQQo2AgAgASAANgIQDAILIANBGGogBCACIAEgAiABIAJJGxD5ASADKAIcIQAgAygCGCECQRQQcSIBRQ0CIAEgAjYCDCABQRg2AgAgASAANgIQDAELIANBCGogBCACIAFBAWoiACACIAAgAkkbEPkBIAMoAgwhACADKAIIIQJBFBBxIgFFDQEgASACNgIMIAFBCjYCACABIAA2AhALIANBQGskACABDwsAC6IHAgd/A34jAEHwCGsiBCQAIAG8IQcCf0EDIAGLQwAAgH9bDQAaQQIgB0GAgID8B3EiBUGAgID8B0YNABogB0H///8DcSIIQYCAgARyIAdBAXRB/v//B3EgB0EXdkH/AXEiBhsiCa0iC0IBgyEMIAVFBEBBBCAIRQ0BGiAGQZYBayEGQgEhDSAMUAwBC0KAgIAQIAtCAYYgCUGAgIAERiIIGyELQgJCASAIGyENQeh+Qel+IAgbIAZqIQYgDFALIQUgA0H//wNxIQggBCAGOwHoCCAEIA03A+AIIARCATcD2AggBCALNwPQCCAEIAU6AOoIAn8CQCAFQf8BcUEBTQRAQXRBBSAGwSIFQQBIGyAFbCIFQcD9AEkNAUHDhMIAQSVB6ITCABDrBwALAkACQCAFQf8BcSIJQQJHBEBBASEFQeqzxQBByIHCACAHQQBIIgYbQeqzxQBBASAGGyACGyEGQQEgB0EfdiACGyECIAlBBEcNAUECIQUgBEECOwGQCCADQf//A3ENAkEBIQUgBEEBNgKYCCAEQZiwxQA2ApQIIARBkAhqDAQLIARBAzYCmAggBEHzncYANgKUCCAEQQI7AZAIQQEhBkEAIQJBASEFIARBkAhqDAMLIARBAzYCmAggBEHsncYANgKUCCAEQQI7AZAIIARBkAhqDAILIAQgCDYCoAggBEEAOwGcCCAEQQI2ApgIIARBuYPCADYClAggBEGQCGoMAQtB6rPFAEEBIAdBAEgiCRshCkHqs8UAQciBwgAgCRsgB0EfdiEHIARBkAhqIAsgBiAEQRBqIAVBBHZBFWoiBkGAgH5BACADayADwUEASBsiBRDpAiAFwSEFAkAgBCgCkAgEQCAEQcgIaiAEQZgIaigCADYCACAEIAQpApAINwPACAwBCyAEQcAIaiAEQdAIaiAEQRBqIAYgBRBlCyAKIAIbIQZBASAHIAIbIQIgBSAELgHICCIHSARAIARBCGogBCgCwAggBCgCxAggByAIIARBkAhqEOwEIAQoAgwhBSAEKAIIDAELQQIhBSAEQQI7AZAIIANB//8DcUUEQEEBIQUgBEEBNgKYCCAEQZiwxQA2ApQIIARBkAhqDAELIAQgCDYCoAggBEEAOwGcCCAEQQI2ApgIIARBuYPCADYClAggBEGQCGoLIQMgBCAFNgLMCCAEIAM2AsgIIAQgAjYCxAggBCAGNgLACCAAIARBwAhqEL4DIARB8AhqJAALiAUBBH8gABC/BAJAAkAgACgCiAQiAQRAIAAoAowEIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgClAQiAQRAIAAoApgEIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgCoAQiAQRAIAAoAqQEIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgCrAQiAQRAIAAoArAEIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgCuAQiAQRAIAAoArwEIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgCxAQiAQRAIAAoAsgEIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgC0AQiAQRAIAAoAtQEIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgC3AQiAQRAIAAoAuAEIgBBBGsoAgAiA0F4cSICIAFBAnQiAUEEQQggA0EDcSIDG2pJDQEgA0EAIAIgAUEnaksbDQIgABCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAv7BAEEfwJAAkAgACgCBCIBBEAgACgCACIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoAiwiAQRAIAAoAigiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCyAAKAJUIgEEQCAAKAJQIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgCfCIBBEAgACgCeCIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoAqQBIgEEQCAAKAKgASIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoAswBIgEEQCAAKALIASIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoAvQBIgEEQCAAKALwASIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoApwCIgEEQCAAKAKYAiIAQQRrKAIAIgNBeHEiAiABQQJ0IgFBBEEIIANBA3EiAxtqSQ0BIANBACACIAFBJ2pLGw0CIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL3AUBBH8gACgCrAEiAUGECE8EQCABEJsHCwJAIAAoAgBFDQAgACgCBCIBQYQISQ0AIAEQmwcLAkAgACgCCEUNACAAKAIMIgFBhAhJDQAgARCbBwsCQCAAKAIQRQ0AIAAoAhQiAUGECEkNACABEJsHCwJAIAAoAhhFDQAgACgCHCIBQYQISQ0AIAEQmwcLAkAgACgCIEUNACAAKAIkIgFBhAhJDQAgARCbBwsCQCAAKAIoRQ0AIAAoAiwiAUGECEkNACABEJsHCwJAAkAgACgCOCIBBEAgACgCPCIDQQRrKAIAIgJBeHEiBCABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoAkQiAQRAIAAoAkgiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCyAAKAJQIgEEQCAAKAJUIgNBBGsoAgAiAkF4cSIEIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsCQCAAKAIwRQ0AIAAoAjQiAUGECEkNACABEJsHCyAAKAJoIgFBgICAgHhyQYCAgIB4RwRAIAAoAmwiA0EEaygCACICQXhxIgQgAUEBdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCyAAKAJ0IgFBgICAgHhyQYCAgIB4RwRAIAAoAngiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADEKICCyAAKAJcIgEEQCAAKAJgIgBBBGsoAgAiA0F4cSICIAFBAnQiAUEEQQggA0EDcSIDG2pJDQEgA0EAIAIgAUEnaksbDQIgABCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuIBwEHfyMAQUBqIgEkAAJAAkAgACgCAEUEQCAAKAIQIgBFDQEgAEGTs8UAQQEQlwMhAgwCCyABQQxqIAAQyAUCQAJ/IAEoAgwiBEUEQCABLQAQIQQgACgCECIDBEBBASECIANB+rLFAEHqssUAIARBAXEiAxtBGUEQIAMbEJcDDQULIAAgBDoABEEADAELAkAgASgCECICQQFxDQAgAUKAgICAIDcCGCABIAQ2AgwgASACNgIQIAEgAiAEaiIFNgIUA0ACQCABQQxqEKgCQYCAxABrDgICAAELCyAAKAIQIgNFDQMgAygCAEEiIAMoAgQoAhARAgANAiABQoCAgIAgNwIYIAEgBTYCFCABIAI2AhAgASAENgIMA0ACQAJ/AkACQAJAIAFBDGoQqAIiAEGBgMQARwRAIABBgIDEAEYNASAAQSdHBEACQAJAAkACQAJAAkAgAEEhTARAIABBCWsOBQEDBgYCBQsgAEEiRg0DIABB3ABHDQUgAUIANwEiIAFB3LgBOwEgDAoLIAFCADcBIiABQdzoATsBIAwJCyABQgA3ASIgAUHc5AE7ASAMCAsgAUIANwEiIAFB3NwBOwEgDAcLIAFCADcBIiABQdzEADsBIAwGCyAARQ0ECwJAAkAgAEGABk8EQCAAEOUEDQELIAAQ4QINAQsgAUEwaiAAENYFIAFBKGogAUE4ai8AADsBACABIAEpADA3AyAgAS0AOiEAIAEtADshAiABQThqIAFBKGovAQA7AQAgASABKQMgNwMwIABB/wFxIAJB/wFxTw0IDAcLIAEgADYCIEGBASECQYABDAULIAMoAgBBJyADKAIEKAIQEQIADQkMBgsgAygCAEEiIAMoAgQoAhARAgAhAgwKC0HY5sgAQSsgAUEwakHstsUAQcy2xQAQ4AYACyABQgA3ASIgAUHc4AA7ASALQQIhAkEACyEAIAFBOGogAUEoai8BADsBACABIAEpAyA3AzALIAJB/wFxIQUgAEH/AXEhAiADKAIAIQYgAygCBCgCECEHIAEoAjAhBANAIAQhACAGIAVBgAFNBH8gAUEwaiACai0AAAUgAAsgBxECAA0EIAJBAWoiAiAFRw0ACwwACwALIAAoAhAiBARAIARB6rLFAEEQEJcDDQILIABBADoABEEACyECIAAgAjYCAAwCC0EBIQIMAQtBACECCyABQUBrJAAgAgu9BgEIfyMAQSBrIQgDQCABKAIAIgRB////A3EhAyAEQYCAgIB4cSEGAkAgBEGAgID8B3EiAkGAgID8B0YEQCADQQ12IAZBEHZyQYAEQQAgAxtyQYD4AXIhBgwBCyAGQRB2IQYgAkGAgIC4BE0EQCACQYCAgMQDTwRAIARBDHYgBEH/3wBxQQBHcSACQQ12IANBDXZqQYCAAWogBnJqIQYMAgsgAkGAgICYA0kNASADQYCAgARyIgRB/gAgAkEXdiIDa3YhAiAEQR0gA2siA3ZBAXEEfyACQQMgA3RBAWsgBHFBAEdqBSACCyAGciEGDAELIAZBgPgBciEGCyABQQRqKAIAIgNB////A3EhBSADQYCAgIB4cSEEAkAgA0GAgID8B3EiAkGAgID8B0cEQCAEQRB2IQQgAkGAgIC4BE0EQCACQYCAgMQDTwRAIANBDHYgA0H/3wBxQQBHcSACQQ12IAVBDXZqQYCAAWogBHJqIQQMAwsgAkGAgICYA0kNAiAFQYCAgARyIgNB/gAgAkEXdiIFa3YhAiADQR0gBWsiBXZBAXEEfyACQQMgBXRBAWsgA3FBAEdqBSACCyAEciEEDAILIARBgPgBciEEDAELIAVBDXYgBEEQdnJBgARBACAFG3JBgPgBciEECyABQQhqKAIAIgVB////A3EhByAFQYCAgIB4cSEDAkAgBUGAgID8B3EiAkGAgID8B0cEQCADQRB2IQMgAkGAgIC4BE0EQCACQYCAgMQDTwRAIAVBDHYgBUH/3wBxQQBHcSACQQ12IAdBDXZqQYCAAWogA3JqIQMMAwsgAkGAgICYA0kNAiAHQYCAgARyIgVB/gAgAkEXdiIHa3YhAiAFQR0gB2siB3ZBAXEEfyACQQMgB3RBAWsgBXFBAEdqBSACCyADciEDDAILIANBgPgBciEDDAELIAdBDXYgA0EQdnJBgARBACAHG3JBgPgBciEDCyAIQQJqIAlqIgIgBjsBACACQQRqIAM7AQAgAkECaiAEOwEAIAFBDGohASAJQQZqIglBHkcNAAsgACAI/QABAv0LAQAgAEEWaiAIQRhqKQEANwEAIABBEGogCEESaikBADcBAAuBCQEEfyMAQTBrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAIgMtAABBAWsOHAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwACyABKAIAQaWtxwBBAiABKAIEKAIMEQAAIQAMHAsgASgCAEGnrccAQQIgASgCBCgCDBEAACEADBsLIAEoAgBBqa3HAEEDIAEoAgQoAgwRAAAhAAwaCyABKAIAQaytxwBBBCABKAIEKAIMEQAAIQAMGQsgASgCAEGwrccAQQUgASgCBCgCDBEAACEADBgLIAEoAgBBta3HAEECIAEoAgQoAgwRAAAhAAwXCyABKAIAQbetxwBBAyABKAIEKAIMEQAAIQAMFgsgASgCAEG6rccAQQQgASgCBCgCDBEAACEADBULIAEoAgBBvq3HAEEFIAEoAgQoAgwRAAAhAAwUCyABKAIAQcOtxwBBAiABKAIEKAIMEQAAIQAMEwsgASgCAEHFrccAQQMgASgCBCgCDBEAACEADBILIAEoAgBByK3HAEEEIAEoAgQoAgwRAAAhAAwRCyABKAIAQcytxwBBBSABKAIEKAIMEQAAIQAMEAsgASgCAEHRrccAQQYgASgCBCgCDBEAACEADA8LIAEoAgBB163HAEECIAEoAgQoAgwRAAAhAAwOCyABKAIAQdmtxwBBAyABKAIEKAIMEQAAIQAMDQsgASgCAEHcrccAQQQgASgCBCgCDBEAACEADAwLIAEoAgBB4K3HAEEFIAEoAgQoAgwRAAAhAAwLCyABKAIAQeWtxwBBAyABKAIEKAIMEQAAIQAMCgsgASgCAEHorccAQQQgASgCBCgCDBEAACEADAkLIAEoAgBB7K3HAEEFIAEoAgQoAgwRAAAhAAwICyABKAIAQfGtxwBBBiABKAIEKAIMEQAAIQAMBwsgASgCAEH3rccAQQQgASgCBCgCDBEAACEADAYLIAEoAgBB+63HAEEFIAEoAgQoAgwRAAAhAAwFCyABKAIAQYCuxwBBBiABKAIEKAIMEQAAIQAMBAsgASgCAEGGrscAQQcgASgCBCgCDBEAACEADAMLIAEoAgBBja7HAEEFIAEoAgQoAgwRAAAhAAwCCyABKAIAQZKuxwBBBiABKAIEKAIMEQAAIQAMAQtBASEAIAIgA0EBajYCDCABKAIAIgNBpqvHAEEHIAEoAgQiBSgCDCIEEQAADQACQCABLQAKQYABcUUEQCADQbuzxQBBASAEEQAADQIgAkEMaiABEMQEDQIgASgCACEDIAEoAgQoAgwhBAwBCyADQduBwgBBAiAEEQAADQEgAkEBOgAfIAIgBTYCFCACIAM2AhAgAkHggcIANgIkIAIgASkCCDcCKCACIAJBH2o2AhggAiACQRBqNgIgIAJBDGogAkEgahDEBA0BIAIoAiBB2YHCAEECIAIoAiQoAgwRAAANAQsgA0HejsgAQQEgBBEAACEACyACQTBqJAAgAAuDBwMIfwN9AXsjAEEQayIHJAAgB0EEaiABEKsGIAcoAgghCAJ/AkACQCAAKAIIIgIEQCAHKAIMIQRDAACAPyAAKgJAIAAtAFhBAkYiBRtDAAAAACAAKgI8IAUbIguTIQwgAkECdCEJIAAoAgRBDGohBUEAIQADQCAEIABBA2oiAk0EQCACIARB0NvBABCMBwALIAQgAGsiAkEAIAIgBE0bIgJBAUYNAyACQQJGDQIgACAIaiIDLQAAs/0TIANBAWotAACz/SAB/QwAAH9DAAB/QwAAf0MAAH9D/ecBIQ0gA0EDai0AALNDAAB/Q5W8IgJB////A3EhBiADQQJqLQAAs0MAAH9DlSEKAkAgAkGAgID8B3EiA0GAgID8B0YEQCAGQQ12QYAEQQAgBhtyQYD4AXIhAgwBCyADQYCAgLgESwRAQYD4ASECDAELIAJBgICAxANPBEAgA0ENdiAGQQ12aiACQQx2IAJB/98AcUEAR3FqQYCAAWohAgwBCyACQYCAgJgDSQRAQQAhAgwBCyAGQYCAgARyIgZB/gAgAkEXdiIDa3YhAiAGQR0gA2siA3ZBAXFFDQAgAkEDIAN0QQFrIAZxQQBHaiECCyAFIAI7AQAgBUECakH/AUMAAH9DQwAAAAAgCiALkyAMlUMAAH9DlCIKIApDAAAAAF0bIgogCkMAAH9DXhsQuQciCvwBQQAgCkMAAAAAYBsgCkMAAH9DXhtBEHRB/wFDAAB/Q0MAAAAAIA39HwEgC5MgDJVDAAB/Q5QiCiAKQwAAAABdGyIKIApDAAB/Q14bELkHIgr8AUEAIApDAAAAAGAbIApDAAB/Q14bQQh0ckH/AUMAAH9DQwAAAAAgDf0fACALkyAMlUMAAH9DlCIKIApDAAAAAF0bIgogCkMAAH9DXhsQuQciCvwBQQAgCkMAAAAAYBsgCkMAAH9DXhtyIgI7AQAgBUEEaiACQRB2OgAAIAVBGGohBSAJIABBBGoiAEcNAAsLAkACQCAHKAIEIgAEQCAIQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyAAakkNASACQQAgBCAAQSdqSxsNAiAIEKICCyABQYQITwRAIAEQmwcLIAdBEGokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAAQQJqDAELIABBAWoLIARB4NvBABCMBwAL8AgBBX8jAEEgayIDJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AAEEBaw4cAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHAALIAEoAgBBpa3HAEECIAEoAgQoAgwRAAAhAgwcCyABKAIAQaetxwBBAiABKAIEKAIMEQAAIQIMGwsgASgCAEGprccAQQMgASgCBCgCDBEAACECDBoLIAEoAgBBrK3HAEEEIAEoAgQoAgwRAAAhAgwZCyABKAIAQbCtxwBBBSABKAIEKAIMEQAAIQIMGAsgASgCAEG1rccAQQIgASgCBCgCDBEAACECDBcLIAEoAgBBt63HAEEDIAEoAgQoAgwRAAAhAgwWCyABKAIAQbqtxwBBBCABKAIEKAIMEQAAIQIMFQsgASgCAEG+rccAQQUgASgCBCgCDBEAACECDBQLIAEoAgBBw63HAEECIAEoAgQoAgwRAAAhAgwTCyABKAIAQcWtxwBBAyABKAIEKAIMEQAAIQIMEgsgASgCAEHIrccAQQQgASgCBCgCDBEAACECDBELIAEoAgBBzK3HAEEFIAEoAgQoAgwRAAAhAgwQCyABKAIAQdGtxwBBBiABKAIEKAIMEQAAIQIMDwsgASgCAEHXrccAQQIgASgCBCgCDBEAACECDA4LIAEoAgBB2a3HAEEDIAEoAgQoAgwRAAAhAgwNCyABKAIAQdytxwBBBCABKAIEKAIMEQAAIQIMDAsgASgCAEHgrccAQQUgASgCBCgCDBEAACECDAsLIAEoAgBB5a3HAEEDIAEoAgQoAgwRAAAhAgwKCyABKAIAQeitxwBBBCABKAIEKAIMEQAAIQIMCQsgASgCAEHsrccAQQUgASgCBCgCDBEAACECDAgLIAEoAgBB8a3HAEEGIAEoAgQoAgwRAAAhAgwHCyABKAIAQfetxwBBBCABKAIEKAIMEQAAIQIMBgsgASgCAEH7rccAQQUgASgCBCgCDBEAACECDAULIAEoAgBBgK7HAEEGIAEoAgQoAgwRAAAhAgwECyABKAIAQYauxwBBByABKAIEKAIMEQAAIQIMAwsgASgCAEGNrscAQQUgASgCBCgCDBEAACECDAILIAEoAgBBkq7HAEEGIAEoAgQoAgwRAAAhAgwBC0EBIQIgASgCACIEQaarxwBBByABKAIEIgYoAgwiBREAAA0AIABBAWohAAJAIAEtAApBgAFxRQRAIARBu7PFAEEBIAURAAANAiAAIAEQygQNAiABKAIAIQQgASgCBCgCDCEFDAELIARB24HCAEECIAURAAANASADQQE6AA8gAyAGNgIEIAMgBDYCACADQeCBwgA2AhQgAyABKQIINwIYIAMgA0EPajYCCCADIAM2AhAgACADQRBqEMoEDQEgAygCEEHZgcIAQQIgAygCFCgCDBEAAA0BCyAEQd6OyABBASAFEQAAIQILIANBIGokACACC60GAQh/IwBBIGshCANAIAEoAgAiBEH///8DcSEDIARBgICAgHhxIQYCQCAEQYCAgPwHcSICQYCAgPwHRgRAIANBDXYgBkEQdnJBgARBACADG3JBgPgBciEGDAELIAZBEHYhBiACQYCAgLgETQRAIAJBgICAxANPBEAgBEEMdiAEQf/fAHFBAEdxIAJBDXYgA0ENdmpBgIABaiAGcmohBgwCCyACQYCAgJgDSQ0BIANBgICABHIiBEH+ACACQRd2IgNrdiECIARBHSADayIDdkEBcQR/IAJBAyADdEEBayAEcUEAR2oFIAILIAZyIQYMAQsgBkGA+AFyIQYLIAFBBGooAgAiA0H///8DcSEFIANBgICAgHhxIQQCQCADQYCAgPwHcSICQYCAgPwHRwRAIARBEHYhBCACQYCAgLgETQRAIAJBgICAxANPBEAgA0EMdiADQf/fAHFBAEdxIAJBDXYgBUENdmpBgIABaiAEcmohBAwDCyACQYCAgJgDSQ0CIAVBgICABHIiA0H+ACACQRd2IgVrdiECIANBHSAFayIFdkEBcQR/IAJBAyAFdEEBayADcUEAR2oFIAILIARyIQQMAgsgBEGA+AFyIQQMAQsgBUENdiAEQRB2ckGABEEAIAUbckGA+AFyIQQLIAFBCGooAgAiBUH///8DcSEHIAVBgICAgHhxIQMCQCAFQYCAgPwHcSICQYCAgPwHRwRAIANBEHYhAyACQYCAgLgETQRAIAJBgICAxANPBEAgBUEMdiAFQf/fAHFBAEdxIAJBDXYgB0ENdmpBgIABaiADcmohAwwDCyACQYCAgJgDSQ0CIAdBgICABHIiBUH+ACACQRd2IgdrdiECIAVBHSAHayIHdkEBcQR/IAJBAyAHdEEBayAFcUEAR2oFIAILIANyIQMMAgsgA0GA+AFyIQMMAQsgB0ENdiADQRB2ckGABEEAIAcbckGA+AFyIQMLIAhBDmogCWoiAiAGOwEAIAJBBGogAzsBACACQQJqIAQ7AQAgAUEMaiEBIAlBBmoiCUESRw0ACyAAIAj9AAEO/QsBACAAQRBqIAhBHmovAQA7AQALzwgCB3sKfyABIAAgAEEDakF8cSIKayILaiIMQQNxIQ1BACEBIAAgCkcEQANAIAEgACwAAEG/f0pqIQEgAEEBaiEAIAtBAWoiCw0ACwsCQCANRQ0AIAogDEF8cWoiACwAAEG/f0ohCSANQQFGDQAgCSAALAABQb9/SmohCSANQQJGDQAgCSAALAACQb9/SmohCQsgDEECdiELIAEgCWohDAJAA0AgCiEJIAtFDQFBwAEgCyALQcABTxsiDkEDcSEPAkAgDkECdCIQQfAHcSIRRQRAQQAhAQwBC0EAIQEgCSEAIBBBEGsiCkEwTwRAIAAgCkEEdkEBaiISQfz///8BcSINQQR0aiEA/QwAAAAAAAAAAAAAAAAAAAAAIQIgDSEKIAkhAQNAIAH9AAIAIgMgAf0AAhAiBP0NDA0ODxwdHh8AAQIDAAECAyAB/QACICIGIAH9AAIwIgf9DQABAgMAAQIDDA0ODxwdHh/9DQABAgMEBQYHGBkaGxwdHh8iBf1NQQf9rQEgBUEG/a0B/VD9DAEBAQEBAQEBAQEBAQEBAQEiBf1OIAMgBP0NCAkKCxgZGhsAAQIDAAECAyAGIAf9DQABAgMAAQIDCAkKCxgZGhv9DQABAgMEBQYHGBkaGxwdHh8iCP1NQQf9rQEgCEEG/a0B/VAgBf1OIAMgBP0NBAUGBxQVFhcAAQIDAAECAyAGIAf9DQABAgMAAQIDBAUGBxQVFhf9DQABAgMEBQYHGBkaGxwdHh8iCP1NQQf9rQEgCEEG/a0B/VAgBf1OIAMgBP0NAAECAxAREhMAAQIDAAECAyAGIAf9DQABAgMAAQIDAAECAxAREhP9DQABAgMEBQYHGBkaGxwdHh8iA/1NQQf9rQEgA0EG/a0B/VAgBf1OIAL9rgH9rgH9rgH9rgEhAiABQUBrIQEgCkEEayIKDQALIAIgAiAD/Q0ICQoLDA0ODwABAgMAAQID/a4BIgIgAiAC/Q0EBQYHAAECAwABAgMAAQID/a4B/RsAIQEgDSASRg0BCyAJIBFqIQoDQCAAQQhq/V0CACIC/U1BB/2tASACQQb9rQH9UP0MAQEBAQEBAQEBAQEBAQEBASIC/U4iA/0bASAA/V0CACIE/U1BB/2tASAEQQb9rQH9UCAC/U4iAv0bASAC/RsAIAFqaiAD/RsAamohASAAQRBqIgAgCkcNAAsLIAsgDmshCyAJIBBqIQogAUEIdkH/gfwHcSABQf+B/AdxakGBgARsQRB2IAxqIQwgD0UNAAsCfyAJIA5B/AFxQQJ0aiIBKAIAIgBBf3NBB3YgAEEGdnJBgYKECHEiACAPQQFGDQAaIAAgASgCBCIAQX9zQQd2IABBBnZyQYGChAhxaiIAIA9BAkYNABogACABKAIIIgBBf3NBB3YgAEEGdnJBgYKECHFqCyIAQQh2Qf+BHHEgAEH/gfwHcWpBgYAEbEEQdiAMaiEMCyAMC+sEAQR/AkACQCAAKAIAIgIEQCAAKAIEIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILIAAoAgwiAgRAIAAoAhAiA0EEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAQgAkEnaksbDQIgAxCiAgsgACgCOCICBEAgACgCPCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAKAJcIgIEQCAAKAJgIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILIAAoAmgiAkGAgICAeHJBgICAgHhHBEAgACgCbCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAKAJ0IgIEQCAAKAJ4IgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILAkAgACgCoAEiAkGAgICAeEYNACACBEAgACgCpAEiA0EEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgAmpJDQIgAUEAIAQgAkEnaksbDQMgAxCiAgsgACgCrAEiAkUNACAAKAKwASIAQQRrKAIAIgNBeHEiAUEEQQggA0EDcSIDGyACakkNASADQQAgASACQSdqSxsNAiAAEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC90GAQZ/QeS0yQAoAgAiAiAASQRAIAAgAiIBayIDQdy0yQAoAgAgAWtLBEBB3LTJACABIANBBEEEEKQFQeS0yQAoAgAhAQtB4LTJACgCACIFIAFBAnRqIQQgA0ECTwRAIAAgAkF/c2pBAnQiBgRAIARBACAG/AsACyAAIAFqQQJ0IAJBAnRrIAVqQQRrIQQgASADakEBayEBCyAEQQA2AgBB5LTJACABQQFqNgIAC0HwtMkAKAIAIgIgAEkEQCAAIAIiAWsiA0HotMkAKAIAIAFrSwRAQei0yQAgASADQQRBBBCkBUHwtMkAKAIAIQELQey0yQAoAgAiBSABQQJ0aiEEIANBAk8EQCAAIAJBf3NqQQJ0IgYEQCAEQQAgBvwLAAsgACABakECdCACQQJ0ayAFakEEayEEIAEgA2pBAWshAQsgBEEANgIAQfC0yQAgAUEBajYCAAtBlLXJACgCACICIABJBEAgACACIgFrIgNBjLXJACgCACABa0sEQEGMtckAIAEgA0EEQQQQpAVBlLXJACgCACEBC0GQtckAKAIAIgUgAUECdGohBCADQQJPBEAgACACQX9zakECdCIGBEAgBEEAIAb8CwALIAAgAWpBAnQgAkECdGsgBWpBBGshBCABIANqQQFrIQELIARBADYCAEGUtckAIAFBAWo2AgALQfy0yQAoAgAiAkH//wNNBEAgAiEAQYCABCACayIBQfS0yQAoAgAgAmtLBEBB9LTJACACIAFBBEEEEKQFQfy0yQAoAgAhAAtB+LTJACgCACIEIABBAnQiA2ohASACQf//A0cEQEH8/w8gAkECdCIFayIGBEAgAUEAIAb8CwALIAMgBWsgBGpB/P8PaiEBIAAgAmtB//8DaiEACyABQQA2AgBB/LTJACAAQQFqNgIAC0GItckAKAIAIgJB//8DTQRAIAIhAEGAgAQgAmsiAUGAtckAKAIAIAJrSwRAQYC1yQAgAiABQQRBBBCkBUGItckAKAIAIQALQYS1yQAoAgAiBCAAQQJ0IgNqIQEgAkH//wNHBEBB/P8PIAJBAnQiBWsiBgRAIAFBACAG/AsACyADIAVrIARqQfz/D2ohASAAIAJrQf//A2ohAAsgAUEANgIAQYi1yQAgAEEBajYCAAsLjgcCAX8BfCMAQTBrIgIkAAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAtAABBAWsOEQECAwQFBgcICQoLDA0ODxARAAsgAiAALQABOgAIIAIgAkEIaq1CgICAgMABhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBAjYCHCACQfSQxgA2AhggAiACQRBqNgIgIAJBGGoQwQMMEQsgAiAAKQMINwMIIAIgAkEIaq1CgICAgKAFhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBAjYCHCACQZCRxgA2AhggAiACQRBqNgIgIAJBGGoQwQMMEAsgAiAAKQMINwMIIAIgAkEIaq1CgICAgNANhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBAjYCHCACQZCRxgA2AhggAiACQRBqNgIgIAJBGGoQwQMMDwsgACsDCCEDIAIgAkEQaq1CgICAgOANhDcDCCACIAM5AxAgASgCACABKAIEIAJCATcCJCACQQI2AhwgAkHspcYANgIYIAIgAkEIajYCICACQRhqEMEDDA4LIAIgACgCBDYCCCACIAJBCGqtQoCAgIDwDYQ3AxAgASgCACABKAIEIAJCATcCJCACQQI2AhwgAkGskcYANgIYIAIgAkEQajYCICACQRhqEMEDDA0LIAIgACkCBDcCCCACIAJBCGqtQoCAgICADoQ3AxAgASgCACABKAIEIAJCATcCJCACQQE2AhwgAkHEkcYANgIYIAIgAkEQajYCICACQRhqEMEDDAwLIAEoAgBBzJHGAEEKIAEoAgQoAgwRAAAMCwsgASgCAEHWkcYAQQogASgCBCgCDBEAAAwKCyABKAIAQeCRxgBBDCABKAIEKAIMEQAADAkLIAEoAgBB7JHGAEEOIAEoAgQoAgwRAAAMCAsgASgCAEH6kcYAQQggASgCBCgCDBEAAAwHCyABKAIAQYKSxgBBAyABKAIEKAIMEQAADAYLIAEoAgBBhZLGAEEEIAEoAgQoAgwRAAAMBQsgASgCAEGJksYAQQwgASgCBCgCDBEAAAwECyABKAIAQZWSxgBBDyABKAIEKAIMEQAADAMLIAEoAgBBpJLGAEENIAEoAgQoAgwRAAAMAgsgASgCAEGxksYAQQ4gASgCBCgCDBEAAAwBCyABKAIAIAAoAgQgACgCCCABKAIEKAIMEQAACyACQTBqJAAL9AUCBX8BfiABQiCIIAFCEIinIQUCfyABpyIDQf//AXFFBEAgA0EQdAwBCyADQf8HcSEGIANBgIACcSECIANBgPgBcSIDQYD4AUYEQCACQRB0IQMgA0GAgID8B3IgBkUNARogAyAGQQ10ckGAgID+B3IMAQsgAkEQdCECIANBDXRBgICA/ABxIAZBDXRyQYCAgMADaiACciADDQAaIAYgBmdBEGsiBkH//wNxQQhqdEH///8DcSACQYCAgNgDciAGQRd0a3ILIQYgAUIwiCEBpyEDAn8gBUH//wFxBEAgBUH/B3EhAiAFQYCAAnEhBCAFQYD4AXEiBUGA+AFHBEAgBEEQdCEEIAVBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAEciAFDQIaIAIgAmdBEGsiBUH//wNxQQhqdEH///8DcSAEQYCAgNgDciAFQRd0a3IMAgsgBEEQdCEFIAUgAkENdHJBgICA/gdyIAINARogBUGAgID8B3IMAQsgBUEQdAshBSABpyECIAAgBv0RIAX9HAECfyADQf//AXEEQCADQf8HcSEEIANBgIACcSEAIANBgPgBcSIDQYD4AUcEQCAAQRB0IQAgA0ENdEGAgID8AHEgBEENdHJBgICAwANqIAByIAMNAhogBCAEZ0EQayIDQf//A3FBCGp0Qf///wNxIABBgICA2ANyIANBF3RrcgwCCyAAQRB0IQMgAyAEQQ10ckGAgID+B3IgBA0BGiADQYCAgPwHcgwBCyADQRB0C/0cAgJ/IAJB//8BcQRAIAJB/wdxIQQgAkGAgAJxIQAgAkGA+AFxIgJBgPgBRwRAIABBEHQhACACQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogAHIgAg0CGiAEIARnQRBrIgJB//8DcUEIanRB////A3EgAEGAgIDYA3IgAkEXdGtyDAILIABBEHQhAiACIARBDXRyQYCAgP4HciAEDQEaIAJBgICA/AdyDAELIAJBEHQL/RwD/QsEAAuOBgENfyAAIAAoAgQiCCAAKAIAIgNJQQJ0aiIFIABBDEEIIAAoAgwgACgCCEkiBBtqIgkgACADIAhNQQJ0aiIIIABBCEEMIAQbaiIDKAIAIAgoAgBJIgQbIAkoAgAiCyAFKAIAIgpJIgUbIgYoAgAhDCADIAggCSAFGyAEGyIHKAIAIQ0gAiALIAogBRsiCTYCACACIAcgBiAMIA1LIgUbKAIANgIEIAIgBiAHIAUbKAIANgIIIAJBDGoiCyAIIAMgBBsoAgAiCDYCACAAQRBqIgMgACgCFCIFIAAoAhAiBklBAnRqIgcgA0EMQQggACgCHCAAKAIYSSIKG2oiBCADIAUgBk9BAnRqIgAgA0EIQQwgChtqIgUoAgAgACgCAEkiBhsgBCgCACIKIAcoAgAiDEkiAxsiBygCACENIAUgACAEIAMbIAYbIgQoAgAhDiACQRBqIg8gCiAMIAMbIgM2AgAgAkEUaiAEIAcgDSAOSyIKGygCADYCACACQRhqIAcgBCAKGygCADYCACACQRxqIgcgACAFIAYbKAIAIgA2AgAgASAD/REgDyADIAlJQQJ0aiIFKAIAIgT9HAEgBSAEIAIgAyAJT0ECdGoiBigCACICSUECdGoiBSgCACID/RwCIAUgAyAGIAIgBE1BAnRqIgYoAgAiBElBAnRqIgooAgAiBf0cAyAJ/REgAv0cASAE/RwCIAYgAyAET0ECdGoiDCgCACIC/RwD/bcB/QsCACABIAdBfEEAIAAgCE8baiIBQXxBACABKAIAIgEgC0F8QQAgACAISRtqIgQoAgAiCU8baiIDQXxBACADKAIAIgMgBEF8QQAgASAJSRtqIgcoAgAiBE8baiILKAIAIgb9ESAD/RwBIAH9HAIgAP0cAyAHQXxBACADIARJG2oiASgCACIA/REgBP0cASAJ/RwCIAj9HAP9uQH9CwIQAkAgDCACIAVNQQJ0aiABQXxBACAAIAZLG2pBBGpGBEAgCiACIAVLQQJ0aiALQXxBACAAIAZNG2pBBGpGDQELEIAIAAsLrQYCBX8EfSMAQSBrIgQkAEEBIQUCQAJAAkAgAiACQQRBAyADQQFxGyIHbiIGIAdsRgRAIAZBAnQiBwRAQQAhBQJAIAdBAE4EQCAEQQA2AhggBEEIakEBIAcgBEEUahCFByAEKAIIQQFHDQEgBCgCECEGIAQoAgwhBQsgBCAGNgIYIAQgBTYCFEHgvsQAQTYgBEEUakHQvsQAQZi/xAAQ4AYACyAEKAIMIQULQQAhBiAEQQA2AhwgBCAFNgIYIAQgBzYCFCADQQFxDQEgAkEDbiIDQQJ0IgIEQCACIAdLBEAgBEEUakEAIAIQ7wUgBCgCHCEGIAQoAhghBQsgBSAGaiEHIAJBAWsiCARAIAdBACAI/AsACyAHIAhqQQA6AAAgAiAGaiEGCyAEIAY2AhwgBkECdiICIAMgAiADSRsiA0UNAgNAIAFBCGoqAgAhCyABQQRqKgIAIQpDAAB/QyEJIAEqAgAiDEMAAIA/XQR9IAxDAAAAABDgCEMAAH9DlAUgCQsQuQciDEMAAIC/XkUgDEMAAIBDXUVyDQQgCkMAAIA/XQR9IApDAAAAABDgCEMAAH9DlAUgCQsQuQciCkMAAIC/XkUgCkMAAIBDXUVyDQQgC0MAAIA/XQR9IAtDAAAAABDgCEMAAH9DlAUgCQsQuQciCUMAAIC/XkUgCUMAAIBDXUVyDQQgBSAM/AE6AAAgBUEDakH/AToAACAFQQJqIAn8AToAACAFQQFqIAr8AToAACABQQxqIQEgBUEEaiEFIANBAWsiAw0ACwwCC0H4vcQAQcUAQcC+xAAQ6wcACwJAAkAgAiAHSwRAIARBFGpBACACEO8FIAQoAhghBSAEKAIcIQMMAQtBACEDIAJFDQELA0BDAAB/QyEJIAEqAgAiC0MAAIA/XQR9IAtDAAAAABDgCEMAAH9DlAUgCQsQuQciCUMAAIC/XkUgCUMAAIBDXUVyDQMgAyAFaiAJ/AE6AAAgAUEEaiEBIANBAWohAyACQQFrIgINAAsLIAQgAzYCHAsgACAEKQIUNwIAIABBCGogBEEcaigCADYCACAEQSBqJAAPC0Gov8QAEN0JAAvABgEGfyMAQfAAayICJAACfwJAAkACQCAAKAIAIgFFDQACQCAAKAIIIgMgACgCBCIFTw0AIAEgA2otAABB1QBHDQBBASEEIAAgA0EBaiIDNgIICwJAAkACQCADIAVJBEAgASADai0AAEHLAEYNAQsgBEUNA0EAIQMMAQsgACADQQFqIgY2AggCQAJAIAUgBk0NACABIAZqLQAAQcMARw0AIAAgA0ECajYCCEEBIQFBxbPFACEDDAELIAJByABqIAAQ7wIgAigCSCIDRQRAIAItAEwhASAAKAIQIgQEQEEBIARB+rLFAEHqssUAIAFBAXEiBBtBGUEQIAQbEJcDDQgaCyAAIAE6AAQgAEEANgIAQQAMBwsgAigCTCIBBEAgAigCVEUNAQsgACgCECIBBEAgAUHqssUAQRAQlwMNBQsgAEEAOgAEIABBADYCAEEADAYLIARFDQELIAAoAhAiBARAIARBxrPFAEEHEJcDDQMLIANFDQELIAAoAhAiBARAIARBzbPFAEEIEJcDDQILIAJBATsBRCACIAE2AkAgAkEANgI8IAJBAToAOCACQd8ANgI0IAIgATYCMCACQQA2AiwgAiABNgIoIAIgAzYCJCACQd8ANgIgIAJBGGogAkEgahCuBCACKAIYIgEEQCAEBEAgBCABIAIoAhwQlwMNAwsgAkHIAGogAkEgakEo/AoAACAEIQEDQCABIQMCQANAIAMhBSACQRBqIAJByABqEK4EIAIoAhAiBkUNAUEAIQMgBUUNAAsgAigCFCEDIAVB6rPFAEEBEJcDDQRBACEBIARFDQEgBCIBIAYgAxCXAw0EDAELCyABRQ0BIAFB6LPFAEECEJcDRQ0BDAILQdizxQAQ3QkACyAAKAIQIgEEQCABQeuzxQBBAxCXAw0BCyACQQhqIAAQtwZBASACKAIIQQFxDQIaIAAoAhAiAQRAQQEgAUHejsgAQQEQlwMNAxoLIAAoAgAiA0UNASAAKAIIIgEgACgCBE8NASABIANqLQAAQfUARw0BIAAgAUEBajYCCEEADAILQQEMAQsgACgCECIBBEBBASABQe6zxQBBBBCXAw0BGgsgABCGAgsgAkHwAGokAAvLBgIIfwN+IwBBoAFrIgMkACABvCEEAn9BAyABi0MAAIB/Ww0AGkECIARBgICA/AdxIgdBgICA/AdGDQAaIARB////A3EiBUGAgIAEciAEQQF0Qf7//wdxIARBF3ZB/wFxIgYbIgitIgtCAYMhDCAHRQRAQQQgBUUNARogBkGWAWshBkIBIQ0gDFAMAQtCgICAECALQgGGIAhBgICABEYiBRshC0ICQgEgBRshDUHofkHpfiAFGyAGaiEGIAxQCyEHIAMgBjsBiAEgAyANNwOAASADQgE3A3ggAyALNwNwIAMgBzoAigECQAJAAkACQAJAAkACQAJAIAdB/wFxQQFNBEAgA0HgAGogA0HwAGogA0EHahDPASADKAJgRQ0BIANBmAFqIANB6ABqKAIANgIAIAMgAykCYDcDkAEMAgsgB0H/AXEiBUECRg0CIANBAjsBGEEBIQdB6rPFAEHIgcIAIARBAEgiBhtB6rPFAEEBIAYbIAIbIQZBASAEQR92IAIbIQIgBUEERg0DIANBAzYCICADQeydxgA2AhwMBwsgA0GQAWogA0HwAGogA0EHahBXCyADKAKUASIHRQ0CIAMoApABIgYtAABBME0NA0Hqs8UAQQEgBEEASCIFGyEIQeqzxQBByIHCACAFGyEJIARBH3YhCiADLgGYASEFIAMgBjYCHCADQQI7ARggA0EBNgIgIAdBAUYEQCADQSRqIQRBAyEHDAULIANBPGohBCADQQI7ATAgA0HsucUANgIoIANBAjsBJCADIAdBAWs2AjggA0EBNgIsIAMgBkEBajYCNEEFIQcMBAsgA0EDNgIgIANB853GADYCHCADQQI7ARhBASEGQQAhAkEBIQcMBAsgA0EDNgIgIANBu4PCADYCHAwDC0G+g8IAQSFBoITCABDrBwALQfCDwgBBH0GwhMIAEOsHAAsgCSAIIAIbIQZBASAKIAIbIQIgBEEBOwEMIARBAjsBACAEQQEgBWsgBUEBayAFQQBMIgUbOwEOIARBAkEBIAUbNgIIIARBwYTCAEHAhMIAIAUbNgIECyADIAc2AmwgAyACNgJkIAMgBjYCYCADIANBGGo2AmggACADQeAAahC+AyADQaABaiQAC8QHAg1/AnsjAEEwayICJAAgAS0AASIFIAEtAAAiBkEBdGohDEECIQ1BAiIDBEAgAUECaiEEA0AgDUEBdCENIAQtAAAgDEEBdGohDCAEQQFqIQQgA0EBayIDDQALCyABQQRqIQMgAkEAOgASIAJBAToAEwJ/IAUtAPD5RCAGLQDw+URPBEBBASEKIAUhCCAGIQVBAAwBCyACQQA6ABMgAkEBOgASIAYhCEEBCyEGQQIhBCACQQI2AiQgAkKAgICA8B83AhwgAiADNgIYIAIgATYCFAJAAkADQAJAAkACQCAERQRAIAIoAiAiA0UNBiACIANBAWs2AiAgAigCFCIEIAIoAhhHDQEMBgsgAkEANgIkIAJBCGohCwJAAkACQCAEIAJBFGoiAygCDCIHTwRAIAcNAQwCCyADIAcgBEF/c2o2AgwgAyADKAIAIgkgBGoiB0EBaiADKAIEIg4gBCAOIAlrIglJGzYCACAEIAlPDQEgAyADKAIIIARqIgRBAWo2AggMAgsgAyADKAIAIgkgB0EBayIEakEBaiADKAIEIg4gBCAOIAlrIglJGzYCACAEIAlJBEAgAyADKAIIIAdqNgIIC0EAIQcgA0EANgIMDAELQQAhBwsgCyAHNgIEIAsgBDYCACACKAIMIgRFDQUgAigCCCEDDAELIAIgBEEBajYCFCACIAIoAhwiA0EBajYCHAsgBC0AACIELQDw+UQiByAFQf8BcSILLQDw+URPBEACQCAEIAtGDQAgByAIQf8BcS0A8PlETw0AIANBgAJPDQIgAiADOgATIAMhCiAEIQgLIAIoAiQhBAwCCyACIAY6ABMgA0H/AUsNAiACIAM6ABIgBiEKIAMhBiAFIQggBCEFIAIoAiQhBAwBCwtB2ObIAEErIAJBL2pBiJbIAEHYmMgAEOAGAAtB2ObIAEErIAJBL2pBiJbIAEHomMgAEOAGAAsgBkH/AXEiCCAKQf8BcUYEQCACQQA2AhRBASACQRJqIAJBE2ogAkEUakHImMgAEPkHAAsCQCAIQQRJBEAgCkH/AXEiBUEETw0BIAEgBWr9BwAAIQ8gASAIav0HAAAhECAAQQQ2AnggACABNgJ0IABBADYCcCAAQRw2AmggACANNgJkIAAgDDYCYCAAQRo2AjAgACAKOgAlIAAgBjoAJCAAQQQgBSAGQf8BcSIBIAEgBUkbQRBqIgEgAUEETRs2AiAgACAP/QsEECAAIBD9CwQAIAJBMGokAA8LIAhBBEGImsgAEIwHAAsgBUEEQZiayAAQjAcAC58GAQd/IwBBMGsiBCQAIAEoAgAiBygCDCEGAkACQAJAIAcoAhQiAyAHKAIQIgJJBEADQCADIAZqLQAAIghBCWsiBUEXS0EBIAV0QZOAgARxRXINAiAHIANBAWoiAzYCFCACIANHDQALIAIhAwtBASEFIARBKGogBiACIANBAWoiASACIAEgAkkbEPkBIAQoAiwhAyAEKAIoIQFBFBBxIgJFDQIgAiABNgIMIAJBAzYCACAAIAI2AgQgAiADNgIQDAELIAhB/QBGBEBBACEFIABBADoAAQwBCwJAIAEtAARFBEAgA0EBaiEDIAhBLEYEQCAHIAM2AhQgAiADSwRAA0AgAyAGai0AACIBQQlrIgVBGUsNBEEBIAV0QZOAgARxRQRAIAVBGUcNBSAAQQE6AAFBACEFDAYLIAcgA0EBaiIDNgIUIAIgA0cNAAsgAiEDC0EBIQUgBEEQaiAGIAIgA0EBaiIBIAIgASACSRsQ+QEgBCgCFCEDIAQoAhAhAUEUEHEiAkUNBCACIAE2AgwgAkEFNgIAIAAgAjYCBCACIAM2AhAMAwsgBEEgaiAGIAIgAyACIAIgA0sbEPkBIAQoAiQhAyAEKAIgIQFBFBBxIgJFDQMgAiABNgIMIAJBCDYCACAAIAI2AgQgAiADNgIQQQEhBQwCC0EAIQUgAUEAOgAEIAhBIkcEQEEBIQUgBCAGIAIgA0EBaiIBIAIgASACSRsQ+QEgBCgCBCEDIAQoAgAhAUEUEHEiAkUNAyACIAE2AgwgAkERNgIAIAAgAjYCBCACIAM2AhAMAgsgAEEBOgABDAELQQEhBSABQf0ARwRAIARBCGogBiACIANBAWoiASACIAEgAkkbEPkBIAQoAgwhAyAEKAIIIQFBFBBxIgJFDQIgAiABNgIMIAJBETYCACAAIAI2AgQgAiADNgIQDAELIARBGGogBiACIANBAWoiASACIAEgAkkbEPkBIAQoAhwhAyAEKAIYIQFBFBBxIgJFDQEgAiABNgIMIAJBFTYCACAAIAI2AgQgAiADNgIQCyAAIAU6AAAgBEEwaiQADwsAC8gGAgd/An4jAEEwayIDJAACQAJAAkAgASgCFCICIAEoAhAiBEkEQCABKAIMIQgCfgJAA0AgAiAIai0AACIFQQlrIgZBF0tBASAGdEGTgIAEcUVyDQEgASACQQFqIgI2AhQgAiAERw0ACyAEIQJCAAwBC0KAAgsgBa1CEIaEQoCCuANRDQELIAACfQJAAkACQAJAAkAgA0EQaiABKAIMIgUgBCACIARJBH8DQAJAIAIgBWotAAAiBkEJaw4lAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEAwQLIAEgAkEBaiICNgIUIAIgBEcNAAsgBAUgAgtBAWoiASAEIAEgBEkbEPkBIAMoAhQhBCADKAIQIQFBFBBxIgJFDQggAiABNgIMIAJBBTYCACACIAQ2AhAMAwsgASACQQFqNgIUIANBGGogAUEAEMcDIAMpAxgiCkIDUQ0BIAMpAyAhCQJAAkAgCqdBAWsOAgABBQsgCbUMBQsgCbQMBAsgBkEwa0H/AXFBCk8EQCABIANBL2pB2OfAABDuASABEOsFIQIMAgsgA0EYaiABQQEQxwMgAykDGCIKQgNRDQAgAykDICEJAkACQAJAIAqnQQFrDgIBAgALIAm/tkMAAIA/QwAAgL8gCUIAWRuYDAULIAm1DAQLIAm0DAMLIAMoAiAhAgsgAEECNgIAIAAgAjYCBAwDCyAJv7ZDAACAP0MAAIC/IAlCAFkbmAs4AgQgAEEBNgIADAELIAEgAkEBaiIHNgIUAkACQAJAIAQgB00NACABIAJBAmoiBTYCFCAHIAhqLQAAQfUARw0BIAUgByAEIAQgB0kbIgdGDQAgASACQQNqIgY2AhQgBSAIai0AAEHsAEcEQCAGIQUMAgsgBiAHRg0AIAEgAkEEaiIFNgIUIAYgCGotAABB7ABHDQEgAEEANgIADAMLIAMgCCAEIAcQ+QEgAygCBCEEIAMoAgAhAUEUEHEiAkUNAyACQQU2AgAMAQsgA0EIaiAIIAQgBRD5ASADKAIMIQQgAygCCCEBQRQQcSICRQ0CIAJBCTYCAAsgAiABNgIMIAAgAjYCBCAAQQI2AgAgAiAENgIQCyADQTBqJAAPCwALzQYDA38BfAN9IwBBEGsiAiQAAkAgASgCAEGUgICAeEYEQAJ9AkAgAAJ/AkACQAJAAn0CQAJAIAEoAgwiBARAAn0CQAJAAkACQAJAAkACQAJAAkACQAJAQRUgASgCCCIBKAIAIgNBgICAgHhzIANBAE4bQQFrDgoKAAECAwQFBgcICQsgAS8BBLMMCgsgASgCBLMMCQsgASkDCLUMCAsgASwABLIMBwsgAS4BBLIMBgsgASgCBLIMBQsgASkDCLQMBAsgASoCBAwDCyABKwMIIgW2QwAAgD9DAACAvyAFvUIAWRuYDAILIAEgAkEPakHY58AAEJUIDAkLIAEtAASzCyEGIARBAUYNBAJAAkACQAJAAkACQAJAAkACQEEVIAEoAhAiA0GAgICAeHMgA0EAThtBAWsOCgsAAQIDBAUGBwgKCyABLwEUswwLCyABKAIUswwKCyABKQMYtQwJCyABLAAUsgwICyABLgEUsgwHCyABKAIUsgwGCyABKQMYtAwFCyABKgIUDAQLIAErAxgiBbZDAACAP0MAAIC/IAW9QgBZG5gMAwtBACACQQ9qQfThwAAQ2wYMBgsgAUEQaiACQQ9qQdjnwAAQlQgMBQsgAS0AFLMLIQcgBEECRg0CAkACQAJAAkACQAJAAkACQAJAQRUgASgCICIDQYCAgIB4cyADQQBOG0EBaw4KDQABAgMEBQYHCAoLIAEvASSzDA0LIAEoAiSzDAwLIAEpAyi1DAsLIAEsACSyDAoLIAEuASSyDAkLIAEoAiSyDAgLIAEpAyi0DAcLIAEqAiQMBgsgASsDKCIFtkMAAIA/QwAAgL8gBb1CAFkbmAwFC0EBIAJBD2pB9OHAABDbBgwCCyABQSBqIAJBD2pB2OfAABCVCAwBC0ECIAJBD2pB9OHAABDbBgs2AgQgAEEBNgIADAMLIAEtACSzCyEIIARBA0cEQCACQQM2AgggBEH9////AGpB/////wBxQQNqIAJBCGpB6JXBABDbBiEBIABBATYCACAAIAE2AgQMAgsgACAIOAIMIAAgBzgCCCAAIAY4AgQgAEEANgIADAELIAEgAkEPakH04cAAEJUIIQEgAEEBNgIAIAAgATYCBAsgAkEQaiQAC+4FAQp/IwBBQGoiBSQAIAVBADYCKCAFQQA2AjxBBCEHIAVBLGohCSAFQTxqIQwCQAJAAkACfyAEQQVJBEAgCSEKIAwMAQsgBUEIaiAFQShqQX8gBEEBa2d2QQFqEPUDIAUoAggiBkGBgICAeEcEQCAGDQJB2JXHAEERQdTMxwAQ6wcACyAFKAI8IgdBBUkEQCAHIQYgCSEKQQQhByAMDAELIAUoAiwhBiAFKAIwIQogCQshCyADIARBAnRqIQ0CQAJAIAsgBiAHSQR/AkAgBEH/////A3EiCCAHIAZBf3NqIgQgBCAISxsiCEEHTQ0AIAZBAnQgCmoiBCADa0EQSQ0AIAYgCEEBaiIIIAhBA3EiCEEEIAgbayIOaiEGIAMgDkECdGoDQCAEIAP9AAIA/QsCACADQRBqIQMgBEEQaiEEIA5BBGsiDg0ACyEDCyAKIAZBAnRqIQQDQCADIA1GDQIgBCADKAIANgIAIARBBGohBCADQQRqIQMgByAGQQFqIgZHDQALIAcFIAYLNgIAIAMgDUYNAQNAAn8gBSgCPCIHQQVJBEAgByEEIAkhC0EEIQcgDAwBCyAFKAIsIQQgBSgCMCELIAkLIQYgAygCACEKIAQgB0YEfyAFQShqENQGIAUoAjAhCyAJIQYgBSgCLAUgBAtBAnQgC2ogCjYCACAGIAYoAgBBAWo2AgAgA0EEaiIDIA1HDQALDAELIAsgBjYCAAsgBUEgaiAFQThqKQIANwMAIAUgBf0AAij9CwMQIAEgAksEQCAAIAJBGGxqIgQoAhQiAUEFTwRAIAQoAggiA0EEaygCACIAQXhxIgIgAUECdCIBQQRBCCAAQQNxIgAbakkNAyAAQQAgAiABQSdqSxsNBCADEKICCyAEIAX9AAMQ/QsCACAEQRBqIAVBIGopAwA3AgAgBUFAayQADwsgAiABQby7xwAQjAcLAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALigYCEX8BfiMAQTBrIgUkACAFQQxqrUKAgICAEIQhFCAALQAMIQwgACgCBCERIAAoAgAhECAAKAIIIglBBGohCgJ/A0ACQCANIhINACAEIQtBASENAkACfyACIAZPBEADQCABIAZqIQcCQAJAAkACQAJAAkACQAJAIAIgBmsiCEEITwRAIAdBA2pBfHEiBCAHRg0BIAQgB2shBEEAIQMDQCADIAdqLQAAQQpGDQkgBCADQQFqIgNHDQALIAQgCEEIayIDSw0DDAILIAIgBkYNA0EAIQMDQCADIAdqLQAAQQpGDQggA0EBaiIDIAhHDQALDAULIAhBCGshA0EAIQQLA0BBgIKECCAEIAdqIg8oAgAiE0GKlKjQAHNrIBNyQYCChAggD0EEaigCACIPQYqUqNAAc2sgD3JxQYCBgoR4cUGAgYKEeEcNASAEQQhqIgQgA00NAAsLIAQgCEcNAQsgAiEGIAsMBgsgBCAHaiEHIAIgBGsgBmshCEEAIQMDQCADIAdqLQAAQQpGDQIgCCADQQFqIgNHDQALCyACIQYgCwwECyADIARqIQMLIAMgBmoiA0EBaiEGAkAgAiADTQ0AIAEgA2otAABBCkcNAEEAIQ0gBiEEDAQLIAIgBk8NAAsLIAsLIQQgAiEDCwJAIAxBAXFFBEAgAEEBOgAMIBAEQCAFIBE2AgwgBSAUNwMQIAooAgAhCCAJKAIAIQwgBUEBNgIsIAVBiPDBADYCKCAFQQE2AiQgBUECNgIcIAVB4PjHADYCGCAFIAVBEGo2AiBBASAMIAggBUEYahDBAw0FGgwCCyAJKAIAQbyLwwBBBCAKKAIAKAIMEQAADQIMAQsgDkUNACAJKAIAQQogCigCACgCEBECAA0BIBAEQCAJKAIAQaDwwQBBByAKKAIAKAIMEQAADQIMAQsgCSgCAEG8i8MAQQQgCigCACgCDBEAAA0BCyAOQQFqIQ5BASEMIAkoAgAgASALaiADIAtrIAooAgAoAgwRAABFDQELCyASQQFzCyAFQTBqJABBAXEL4gYCBX8BfiMAQTBrIgIkACAAKAIAIQAgASgCACIDQeiyxQBBASABKAIEIgQoAgwiBREAACEGIAIgADYCDAJAAkACQAJAAkACQAJAIAYNAAJAIAEtAApBgAFxRQRAIAJBDGogARDEBCACIABBAWo2AgxFDQEMAwsgA0Hc+McAQQEgBREAAA0BIAJBAToAHyACIAQ2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNASACKAIgQdmBwgBBAiACKAIkKAIMEQAAIAIgAEEBajYCDA0CCwJAIAEtAApBgAFxBEAgASkCACEHIAJBAToAHyACIAc3AhAgAkHggcIANgIkIAIgASkCCDcCKCACIAJBH2o2AhggAiACQRBqNgIgIAJBDGogAkEgahDEBA0DIAIoAiBB2YHCAEECIAIoAiQoAgwRAAAgAiAAQQJqNgIMRQ0BDAcLIAEoAgBB55DGAEECIAEoAgQoAgwRAAANAiACQQxqIAEQxAQgAiAAQQJqNgIMDQYLAkAgAS0ACkGAAXEEQCABKQIAIQcgAkEBOgAfIAIgBzcCECACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqEMQEDQcgAigCIEHZgcIAQQIgAigCJCgCDBEAACACIABBA2o2AgxFDQEMBgsgASgCAEHnkMYAQQIgASgCBCgCDBEAAA0GIAJBDGogARDEBCACIABBA2o2AgwNBQsgAS0ACkGAAXFFDQIgASgCACEDIAEoAgQhBEEBIQAgAkEBOgAfIAIgBDYCFCACIAM2AhAgAkHggcIANgIkIAIgASkCCDcCKCACIAJBH2o2AhggAiACQRBqNgIgIAJBDGogAkEgahDEBA0EIAIoAiBB2YHCAEECIAIoAiQoAgwRAABFDQMMBgsgAiAAQQFqNgIMCyACIABBAmo2AgwMAwsgASgCAEHnkMYAQQIgASgCBCgCDBEAAA0BQQEhACACQQxqIAEQxAQNAyABKAIEIQQgASgCACEDCyADQemyxQBBASAEKAIMEQAAIQAMAgtBASEADAELIAIgAEEDajYCDEEBIQALIAJBMGokACAAC4IGAQF/AkACQCABIAMgBWwgBGoiA0kNAAJAIAEgA2siBEEDTQ0AIAAgA2oiBEH/ASACKAIAIAQtAABqIgZBACAGQQBKGyIGIAZB/wFOGzoAACAEQf8BIAIoAgQgBC0AAWoiBkEAIAZBAEobIgYgBkH/AU4bOgABIARB/wEgAigCCCAELQACaiIGQQAgBkEAShsiBiAGQf8BThs6AAIgBEH/ASACKAIMIAQtAANqIgRBACAEQQBKGyIEIARB/wFOGzoAAyABIAMgBWoiA0kNASABIANrIgRBBEkNACAAIANqIgRB/wEgAigCECAELQAAaiIGQQAgBkEAShsiBiAGQf8BThs6AAAgBEH/ASACKAIUIAQtAAFqIgZBACAGQQBKGyIGIAZB/wFOGzoAASAEQf8BIAIoAhggBC0AAmoiBkEAIAZBAEobIgYgBkH/AU4bOgACIARB/wEgAigCHCAELQADaiIEQQAgBEEAShsiBCAEQf8BThs6AAMgASADIAVqIgNJDQEgASADayIEQQRJDQAgACADaiIEQf8BIAIoAiAgBC0AAGoiBkEAIAZBAEobIgYgBkH/AU4bOgAAIARB/wEgAigCJCAELQABaiIGQQAgBkEAShsiBiAGQf8BThs6AAEgBEH/ASACKAIoIAQtAAJqIgZBACAGQQBKGyIGIAZB/wFOGzoAAiAEQf8BIAIoAiwgBC0AA2oiBEEAIARBAEobIgQgBEH/AU4bOgADIAEgAyAFaiIDSQ0BIAEgA2siBEEETw0CC0EAQQQgBEGY4sQAEOoHAAsgAyABIAFBqOLEABDqBwALIAAgA2oiAEH/ASACKAIwIAAtAABqIgFBACABQQBKGyIBIAFB/wFOGzoAACAAQf8BIAIoAjQgAC0AAWoiAUEAIAFBAEobIgEgAUH/AU4bOgABIABB/wEgAigCOCAALQACaiIBQQAgAUEAShsiASABQf8BThs6AAIgAEH/ASACKAI8IAAtAANqIgBBACAAQQBKGyIAIABB/wFOGzoAAwuBBgIHfwJ8IwBBIGsiBiQAQQEhCSABIAEoAhQiB0EBaiIFNgIUAkAgBSABKAIQIghPDQACQAJAIAEoAgwgBWotAABBK2sOAwECAAILQQAhCQsgASAHQQJqIgU2AhQLAkAgAAJ/AkACQAJAAn8CQAJAIAUgCEkEQCABIAVBAWoiBzYCFCABKAIMIgogBWotAABBMGtB/wFxIgVBCk8NAQJAIAcgCE8NAANAIAcgCmotAABBMGtB/wFxIgtBCk8NASABIAdBAWoiBzYCFCAFQcyZs+YARyALQQdLciAFQcuZs+YASnENBiAFQQpsIAtqIQUgByAIRw0ACyAIIQcLIAkNAiAEIAVrIgFBH3VBgICAgHhzIAEgASAESCAFQQBKcxsMAwsgBkEYaiABKAIMIAggBRD5ASAGKAIcIQIgBigCGCEEQRQQcSIBRQ0EIAEgBDYCDCABQQU2AgAgACABNgIEIABBATYCACABIAI2AhAMBwsgBkEQaiAKIAggBxD5ASAGKAIUIQIgBigCECEEQRQQcSIBRQ0DIAEgBDYCDCABQQ02AgAgACABNgIEIABBATYCACABIAI2AhAMBgsgBCAFaiIBQR91QYCAgIB4cyABIAVBAEggASAESHMbCyEFIAO6IQwCQAJAAkAgBSAFQR91IgFzIAFrIgFBtQJPBEADQCAMRAAAAAAAAAAAYQ0HIAVBAE4NAiAMRKDI64XzzOF/oyEMIAVBtAJqIgUgBUEfdSIBcyABayIBQbUCTw0ACwsgAUEDdCsDoIJHIQ0gBUEATg0BIAwgDaMhDAwFCyAGQQhqIAogCCAHEPkBIAYoAgwhAiAGKAIIIQQMAQsgDCANoiIMmUQAAAAAAADwf2INAyAGIAogCCAHEPkBIAYoAgQhAiAGKAIAIQQLQRQQcSIBRQ0BIAEgBDYCDCABQQ42AgAgACABNgIEIAEgAjYCEEEBDAMLIAAgASACIANQIAkQ7AUMAwsACyAAIAwgDJogAhs5AwhBAAs2AgALIAZBIGokAAvbBgIFfwF+IwBBMGsiAiQAIAEoAgAiA0HossUAQQEgASgCBCIEKAIMIgURAAAhBiACIAA2AgwCQAJAAkACQAJAAkACQCAGDQACQCABLQAKQYABcUUEQCACQQxqIAEQxAQgAiAAQQFqNgIMRQ0BDAMLIANB3PjHAEEBIAURAAANASACQQE6AB8gAiAENgIUIAIgAzYCECACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqEMQEDQEgAigCIEHZgcIAQQIgAigCJCgCDBEAACACIABBAWo2AgwNAgsCQCABLQAKQYABcQRAIAEpAgAhByACQQE6AB8gAiAHNwIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNAyACKAIgQdmBwgBBAiACKAIkKAIMEQAAIAIgAEECajYCDEUNAQwHCyABKAIAQeeQxgBBAiABKAIEKAIMEQAADQIgAkEMaiABEMQEIAIgAEECajYCDA0GCwJAIAEtAApBgAFxBEAgASkCACEHIAJBAToAHyACIAc3AhAgAkHggcIANgIkIAIgASkCCDcCKCACIAJBH2o2AhggAiACQRBqNgIgIAJBDGogAkEgahDEBA0HIAIoAiBB2YHCAEECIAIoAiQoAgwRAAAgAiAAQQNqNgIMRQ0BDAYLIAEoAgBB55DGAEECIAEoAgQoAgwRAAANBiACQQxqIAEQxAQgAiAAQQNqNgIMDQULIAEtAApBgAFxRQ0CIAEoAgAhAyABKAIEIQRBASEAIAJBAToAHyACIAQ2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNBCACKAIgQdmBwgBBAiACKAIkKAIMEQAARQ0DDAYLIAIgAEEBajYCDAsgAiAAQQJqNgIMDAMLIAEoAgBB55DGAEECIAEoAgQoAgwRAAANAUEBIQAgAkEMaiABEMQEDQMgASgCBCEEIAEoAgAhAwsgA0HpssUAQQEgBCgCDBEAACEADAILQQEhAAwBCyACIABBA2o2AgxBASEACyACQTBqJAAgAAuOBgIGfwV+QQQhAyABKAIIIgRBBGooAgAhBSABAn4gBEEIaigCACIGIAEpAwAiCiAGrSIJIAkgClYbp0YEQEGokMgAKQMAIg1CCIghCyANpyEDIAkgDUL/AYNCBFINARoLIApCAXwLIgw3AwAgA0H/AXFBBEcEQCAAQoGAgICQgICAgH83AgAgACADrUL/AYMgC0IIhoQ3AggPCyABAn4CQCAGIAwgCSAJIAxWG6ciA2tBBE8EQCADIAVqKAAAIQZBBCEDQgAhCwwBC0EAIQZBqJDIACkDACINQgiIIQsgDachAyAJIA1C/wGDQgRSDQEaCyAMQgR8CyIKNwMAIANB/wFxQQRHBEAgACADOgAIIABCgYCAgJCAgICAfzcCACAAIAunIgE7AAkgACALQhiIPgIMIABBC2ogAUEQdjoAAA8LAkACQAJAAkAgAkH//wNxIgdBBU8EQCAHQQVrIgIEQCACEHEiAwRAIANBBGstAABBA3FFIAJFckUEQCADQQAgAvwLAAsgBEEIaigCACIFrSEJIAVC/////w8gCiAKQv////8PWhunayIIQQAgBSAITxsgAk8EQCAEQQRqKAIAIAogCSAJIApWG6dqIQQgAkEBRw0EIAMgBC0AADoAAAwFC0GokMgAKQMAIgtCCIghDCALpyEEIAtC/wGDQgRSDQYMBQsACyAFIAogCSAJIApWG6dqIQRBASEDDAELIAD9DAEAAAAAAACAXAgSACAAAAD9CwIADwsgAkUNACADIAQgAvwKAAALQgAhDEEEIQQLIAogAq18IQkLIAEgCTcDAAJAAkACQCAEQf8BcUEERwRAIABCgYCAgJCAgICAfzcCACAAIAStQv8BgyAMQgiGhDcCCCACRQ0BIANBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIAJqSQ0CIABBACABIAdBImpLGw0DIAMQogIPCyAAIAY2AgwgACACNgIIIAAgAzYCBCAAQQA2AgALDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALhwcBBn8jAEEwayICJAACQAJAAkACQAJAAkACQEEDIAAoAgAiA0GAgICAeHMgA0EAThtBAWsOBQECAwQFAAsgASgCAEGkrscAQREgASgCBCgCDBEAACEDDAULIAEoAgBBta7HAEENIAEoAgQoAgwRAAAhAwwEC0EBIQMgASgCACIEQdSuxwBBDyABKAIEIgcoAgwiBREAAA0DIABBBGohBgJAIAEtAApBgAFxRQRAIARBu7PFAEEBIAURAAANBSACIAY2AhwgASAAQQdqQcioxwAgAEEFakHYqMcAIABBBmpB6KjHACACQRxqQfioxwAQ7gVFDQEMBQsgBEHbgcIAQQIgBREAAA0EIAJBAToADyACIAc2AhQgAiAENgIQIAJB4IHCADYCICACIAEpAgg3AiQgAiACQQ9qNgIYIAIgAkEQajYCHCACIAY2AiwgAkEcaiAAQQdqQcioxwAgAEEFakHYqMcAIABBBmpB6KjHACACQSxqQfioxwAQ7gUNBCACKAIcQdmBwgBBAiACKAIgKAIMEQAADQQLIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAwwDC0EBIQMgASgCACIEQeOuxwBBByABKAIEIgYoAgwiBREAAA0CAkAgAS0ACkGAAXFFBEAgBEG7s8UAQQEgBREAAA0EIAAoAgQgACgCCCABELUCRQ0BDAQLIARB24HCAEECIAURAAANAyACQQE6ACwgAiAGNgIUIAIgBDYCECACQeCBwgA2AiAgAiABKQIINwIkIAIgAkEsajYCGCACIAJBEGoiBDYCHCAAKAIEIAAoAgggAkEcahC1Ag0DIARB2YHCAEECEK8DDQMLIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAwwCCyABKAIAQequxwBBCiABKAIEKAIMEQAAIQMMAQsgAiAAQQhqNgIQIAEoAgBBhK/HAEEMIAEoAgQoAgwRAAAhAyACQQA6ACEgAiADOgAgIAIgATYCHCACQRxqQZCvxwBBCCAAQQRqQfSuxwAQjAVBmK/HAEEFIAJBEGpBxK7HABCMBSACLQAhIgEgAi0AICIEciEDIARBAXEgAUEBR3INACgCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQMMAQsgACgCAEGls8UAQQEgACgCBCgCDBEAACEDCyACQTBqJAAgA0EBcQufBgIHfwF+IwBBMGsiBCQAAkACQAJAAkACQAJAAkACQAJAAkAgASgCFCICIAEoAhAiA0kEQCABKAIMIQcCfgJAA0AgAiAHai0AACIFQQlrIghBF0tBASAIdEGTgIAEcUVyDQEgASACQQFqIgI2AhQgAiADRw0ACyADIQJCAAwBC0KAAgsgBa1CEIaEQoCCuANRDQELAkAgBEEYaiABKAIMIgcgAyACIANJBH8gAUEMaiEIA0ACQCACIAdqLQAAQQlrIgVBGU0EQEEBIAV0QZOAgARxDQEgBUEZRg0ECyABIARBL2pBtOLAABDuASABEOsFIQIMDAsgASACQQFqIgI2AhQgAiADRw0ACyADBSACC0EBaiIBIAMgASADSRsQ+QEgBCgCHCEDIAQoAhghAUEUEHEiAkUNByACIAE2AgwgAkEFNgIAIAIgAzYCEAwJCyABQQA2AgggASACQQFqNgIUIARBIGogCCABEIICIAQoAiQhAiAEKAIgIgFBAkYNCCAEKAIoIQMCQCABQQFxBEAgA0EASA0DIANFDQEMBwsgA0EASA0DIAMNBgtBASEBDAcLIAEgAkEBaiIGNgIUAkAgAyAGTQ0AIAEgAkECaiIFNgIUIAYgB2otAABB9QBHDQMgBSAGIAMgAyAGSRsiBkYNACABIAJBA2oiCDYCFCAFIAdqLQAAQewARwRAIAghBQwECyAGIAhGDQAgASACQQRqIgU2AhQgByAIai0AAEHsAEcNAyAAQYCAgIB4NgIADAkLIARBCGogByADIAYQ+QEgBCgCDCEGIAQoAgghAUEUEHEiAkUNBSACQQU2AgAMAwtB2JrIABD/BwALQdiayAAQ/wcACyAEQRBqIAcgAyAFEPkBIAQoAhQhBiAEKAIQIQFBFBBxIgJFDQIgAkEJNgIACyACIAE2AgwgACACNgIEIABBgYCAgHg2AgAgAiAGNgIQDAQLIAMQcSIBDQELAAsgAwRAIAEgAiAD/AoAAAsgACADNgIIIAAgATYCBCAAIAM2AgAMAQsgAEGBgICAeDYCACAAIAI2AgQLIARBMGokAAvyBQIFfwJ9IAEqAgAQxgW8IgJB////A3EhAyACQYCAgIB4cSEFIAEqAgQCQCACQYCAgPwHcSIEQYCAgPwHRgRAIANBDXYgBUEQdnJBgARBACADG3JBgPgBciEFDAELIAVBEHYhBSAEQYCAgLgETQRAIARBgICAxANPBEAgAkEMdiACQf/fAHFBAEdxIARBDXYgA0ENdmpBgIABaiAFcmohBQwCCyAEQYCAgJgDSQ0BIANBgICABHIiAkH+ACAEQRd2IgNrdiEEIAJBHSADayIDdkEBcQR/IARBAyADdEEBayACcUEAR2oFIAQLIAVyIQUMAQsgBUGA+AFyIQULIAEqAgghCBDGBbwiAkH///8DcSEDIAJBgICAgHhxIQQCQCACQYCAgPwHcSIBQYCAgPwHRwRAIARBEHYhBCABQYCAgLgETQRAIAFBgICAxANPBEAgAkEMdiACQf/fAHFBAEdxIAFBDXYgA0ENdmpBgIABaiAEcmohBAwDCyABQYCAgJgDSQ0CIANBgICABHIiAkH+ACABQRd2IgNrdiEBIAJBHSADayIDdkEBcQR/IAFBAyADdEEBayACcUEAR2oFIAELIARyIQQMAgsgBEGA+AFyIQQMAQsgA0ENdiAEQRB2ckGABEEAIAMbckGA+AFyIQQLIAgQxgW8IgNB////A3EhBiADQYCAgIB4cSECAkAgA0GAgID8B3EiAUGAgID8B0cEQCACQRB2IQIgAUGAgIC4BE0EQCABQYCAgMQDTwRAIANBDHYgA0H/3wBxQQBHcSABQQ12IAZBDXZqQYCAAWogAnJqIQIMAwsgAUGAgICYA0kNAiAGQYCAgARyIgNB/gAgAUEXdiIGa3YhASADQR0gBmsiBnZBAXEEfyABQQMgBnRBAWsgA3FBAEdqBSABCyACciECDAILIAJBgPgBciECDAELIAZBDXYgAkEQdnJBgARBACAGG3JBgPgBciECCyAAIAI7ASAgACAEOwEeIAAgBTsBHAu7BwIFewd/IAJB//8DcSECIAFB//8DcSEKIAQgBEGgK3AiC2siDUGgK08EQCANIQwgAyEBA0D9DAAAAAAAAAAAAAAAAAAAAAAiBSAC/RwAIQYgBSAKQa0BbP0cACEHQQAhBANAIAEgBGoiAv0AAAAiCP2JAf0MIAAfAB4AHQAcABsAGgAZAP26ASAG/a4BIAj9igH9DBgAFwAWABUAFAATABIAEQD9ugH9rgEgAkEQav0AAAAiCf2JAf0MEAAPAA4ADQAMAAsACgAJAP26Af2uASAJ/YoB/QwIAAcABgAFAAQAAwACAAEA/boB/a4BIQYgBSAH/a4BIQcgCP19/X8gBf2uASAJ/X39f/2uASEFIARBIGoiBEGgK0cNAAsgBiAHQQX9qwH9rgEiBv0bASAG/RsAaiAG/RsCaiAG/RsDakHx/wNwIQIgAUGgK2ohASAF/RsAIApqIAX9GwFqIAX9GwJqIAX9GwNqQfH/A3AhCiAMQaArayIMQZ8rSw0ACwsgAyANaiEDIAtBIE8EQP0MAAAAAAAAAAAAAAAAAAAAACIFIAL9HAAhBkEAIAtB4D9xIgFrIQIgBSAKIAtBBXZs/RwAIQcgAyEEA0AgBP0AAAAiCP2JAf0MIAAfAB4AHQAcABsAGgAZAP26ASAG/a4BIAj9igH9DBgAFwAWABUAFAATABIAEQD9ugH9rgEgBEEQav0AAAAiCf2JAf0MEAAPAA4ADQAMAAsACgAJAP26Af2uASAJ/YoB/QwIAAcABgAFAAQAAwACAAEA/boB/a4BIQYgBEEgaiEEIAUgB/2uASEHIAj9ff1/IAX9rgEgCf19/X/9rgEhBSACQSBqIgINAAsgASADaiEDIAtBH3EhCyAF/RsAIApqIAX9GwFqIAX9GwJqIAX9GwNqIQogBiAHQQX9qwH9rgEiBv0bASAG/RsAaiAG/RsCaiAG/RsDaiECCwJAIAtFDQACQCALQQdxIgxFBEAgAyEEDAELIAMhAQNAIAogAS0AAGoiCiACaiECIAFBAWoiBCEBIAxBAWsiDA0ACwsgC0EISQ0AIAMgC2ohAQNAIAogBC0AAGoiAyAEQQFqLQAAaiIMIARBAmotAABqIg0gBEEDai0AAGoiCyAEQQRqLQAAaiIOIARBBWotAABqIg8gBEEGai0AAGoiECAEQQdqLQAAaiIKIBAgDyAOIAsgDSAMIAIgA2pqampqampqIQIgBEEIaiIEIAFHDQALCyAAIAJB8f8DcDsBAiAAIApB8f8DcDsBAAuzBwIFewh/IABB//8DcSEJIABBEHYhCCACIAJBoCtwIgprIgxBoCtPBEAgDCELIAEhAgNA/QwAAAAAAAAAAAAAAAAAAAAAIgMgCP0cACEEIAMgCUGtAWz9HAAhBUEAIQADQCAAIAJqIgj9AAAAIgb9iQH9DCAAHwAeAB0AHAAbABoAGQD9ugEgBP2uASAG/YoB/QwYABcAFgAVABQAEwASABEA/boB/a4BIAhBEGr9AAAAIgf9iQH9DBAADwAOAA0ADAALAAoACQD9ugH9rgEgB/2KAf0MCAAHAAYABQAEAAMAAgABAP26Af2uASEEIAMgBf2uASEFIAb9ff1/IAP9rgEgB/19/X/9rgEhAyAAQSBqIgBBoCtHDQALIAQgBUEF/asB/a4BIgT9GwEgBP0bAGogBP0bAmogBP0bA2pB8f8DcCEIIAJBoCtqIQIgA/0bACAJaiAD/RsBaiAD/RsCaiAD/RsDakHx/wNwIQkgC0GgK2siC0GfK0sNAAsLIAEgDGohASAKQSBPBED9DAAAAAAAAAAAAAAAAAAAAAAiAyAI/RwAIQRBACAKQeA/cSICayEIIAMgCSAKQQV2bP0cACEFIAEhAANAIAD9AAAAIgb9iQH9DCAAHwAeAB0AHAAbABoAGQD9ugEgBP2uASAG/YoB/QwYABcAFgAVABQAEwASABEA/boB/a4BIABBEGr9AAAAIgf9iQH9DBAADwAOAA0ADAALAAoACQD9ugH9rgEgB/2KAf0MCAAHAAYABQAEAAMAAgABAP26Af2uASEEIABBIGohACADIAX9rgEhBSAG/X39fyAD/a4BIAf9ff1//a4BIQMgCEEgaiIIDQALIAQgBUEF/asB/a4BIgT9GwEgBP0bAGogBP0bAmogBP0bA2ohCCAKQR9xIQogA/0bACAJaiAD/RsBaiAD/RsCaiAD/RsDaiEJIAEgAmohAQsCQCAKRQ0AAkAgCkEHcSILRQRAIAEhAAwBCyABIQIDQCAJIAItAABqIgkgCGohCCACQQFqIgAhAiALQQFrIgsNAAsLIApBCEkNACABIApqIQEDQCAJIAAtAABqIgIgAEEBai0AAGoiCyAAQQJqLQAAaiIMIABBA2otAABqIgogAEEEai0AAGoiDSAAQQVqLQAAaiIOIABBBmotAABqIg8gAEEHai0AAGoiCSAPIA4gDSAKIAwgCyACIAhqampqampqaiEIIABBCGoiACABRw0ACwsgCUHx/wNwIAhB8f8DcEEQdHILrAcCAn8BeyMAQYDSAGsiAyQAAkACQAJAAkACQAJAAkACQCABQf8BcUEBaw4FAAIDBAUBC0GAgAgQcSIERQ0FIARBBGstAABBA3EEQCAEQQBBgIAI/AsACyADQUBrQQBBwNEA/AsAQajTABBxIgFFDQUgAUGAgICAeDYCZCABQgE3AlwgAUKAgAg3AlQgASAENgJQIAFCgICAgICAgAE3AkggAUKAgICAEDcCQCABIAL9AAIA/QsCACABQTBqIAJBMGr9AAIA/QsCACABQSBqIAJBIGr9AAIA/QsCACABQRBqIAJBEGr9AAIA/QsCACABQegAaiADQQxqQfTRAPwKAAAgAUHc0gBqQQBBwQD8CwAgAUEAOwGkUyABQQA2AqBTQajewQAhAgwGC0G4BRBxIgFFDQQgAUEANgKwBSABQoCAgIAQNwOoBSABQYGAgIB4NgKcBSABIAL9AAIA/QsCACABQTBqIAJBMGr9AAIA/QsCACABQSBqIAJBIGr9AAIA/QsCACABQRBqIAJBEGr9AAIA/QsCAEGQ3sEAIQIMBQtBzAAQcSIBRQ0DIAFBADYCSCABQoCAgIAQNwJAIAEgAv0AAgD9CwIAIAFBMGogAkEwav0AAgD9CwIAIAFBIGogAkEgav0AAgD9CwIAIAFBEGogAkEQav0AAgD9CwIAQcDewQAhAgwEC0HMABBxIgFFDQIgAUEANgJIIAFCgICAgBA3AkAgASAC/QACAP0LAgAgAUEwaiACQTBq/QACAP0LAgAgAUEgaiACQSBq/QACAP0LAgAgAUEQaiACQRBq/QACAP0LAgBB2N7BACECDAMLQcwAEHEiAUUNASABQQA2AkggAUKAgICAEDcCQCABIAL9AAIA/QsCACABQTBqIAJBMGr9AAIA/QsCACABQSBqIAJBIGr9AAIA/QsCACABQRBqIAJBEGr9AAIA/QsCAEHw3sEAIQIMAgtBgAMQcSIBRQ0AIAFBAjYCiAEgAUECNgIAIAH9DAAAAAAAAAAAAAAAAAAAAAD9CwO4AiABIAX9CwPgAiABIAL9AAIA/QsC+AEgAUHIAmogBf0LAwAgAUHYAmpCgICAgBA3AwAgAUH1AmpCADcAACABQfACakIANwMAIAFBiAJqIAJBEGr9AAIA/QsCACABQZgCaiACQSBq/QACAP0LAgAgAUGoAmogAkEwav0AAgD9CwIAQYjfwQAhAgwBCwALIAAgAjYCBCAAIAE2AgAgA0GA0gBqJAALkgYBBn8CQAJAAkACQAJAAkAgAEEgSQ0AIABB/wBJBEBBASEDDAYLAkAgAEGAgARPBEAgAEGAgAhJDQEgAEHg//8AcUHgzQpHIABB/v//AHFBnvAKR3EgAEHwgzhJcSAA/RH9DMBI/f9QMf3/EBT9/wAI/f/9rgH9DPn////x////8P///132///9PP1TQX9zcSAAQYCADGtBnnRJcSAAQdCmDGtBe0lxIABBgII4a0GwxVRJcSEDDAcLIABBCHZB/wFxIQUDQCABQQJqIQYgAiABLQC7gUMiA2ohBCAFIAEtALqBQyIBRwRAIAEgBUsNByAEIQIgBiIBQdAARw0BDAcLIAIgBEsgBEGiAktyDQUgAkGKgsMAaiEBA0AgA0UEQCAEIQIgBiIBQdAARw0CDAgLIANBAWshAyABLQAAIAFBAWohASAAQf8BcUcNAAsLDAELIABBCHZB/wFxIQUDQCABQQJqIQYgAiABLQCt+0IiA2ohBCAFIAEtAKz7QiIBRwRAIAEgBUsNBCAEIQIgBiIBQdgARw0BDAQLIAIgBEsgBEHQAUtyDQIgAkGE/MIAaiEBA0AgA0UEQCAEIQIgBiIBQdgARw0CDAULIANBAWshAyABLQAAIAFBAWohASAAQf8BcUcNAAsLC0EAIQMMBAsgAiAEQdABQeiGwwAQ6gcACyAAQf//A3EhAkEBIQNBACEBA0AgAUEBaiEEAkAgASwA1P1CIgBBAE4EQCAEIQEMAQsgBEHmA0cEQCABQdX9wgBqLQAAIABB/wBxQQh0ciEAIAFBAmohAQwBC0HYhsMAEN0JAAsgAiAAayICQQBIDQMgA0EBcyEDIAFB5gNHDQALDAILIAIgBEGiAkHohsMAEOoHAAtBASEDQQAhAQNAIAFBAWohBAJAIAEsAKyEQyICQQBOBEAgBCEBDAELIARBqQJHBEAgAUGthMMAai0AACACQf8AcUEIdHIhAiABQQJqIQEMAQtB2IbDABDdCQALIAAgAmsiAEEASA0BIANBAXMhAyABQakCRw0ACwsgA0EBcQvCBgILfwR7IwBBIGsiCSQAAkACQAJAAkACQCADIAQgBWwiCmoiC0EBayIGIAFNBEAgBEEBayAFbCADaiIEQQFrIgcgBk8NASAEIAZLDQIgASAGayEMIAQgBkYEQCABIAprIANrIQRBACEAIAIhAwNAIAAgDE8NBSACIARLDQYgBCAFayEEIAAgBWohACADQQFrIgMNAAsMBgsgACAGaiEOIAAgB2otAAAhDyAAIARqIQ0gBiAEayIBIAIgASACSRsiBkEBcSEQIAZBEHEhAyAAIAtqIQtBACEHA0AgBSAHbCIAIAxPDQQgAiAMIABBAWoiAWsiBEsNBSAAIA5qLQAAIA9rIQogASAOaiEEQQAhAQJAIAZBEEkgB0EBaiIHIAVsQRBJckUEQCAEIAr9ESIRIA39AAAAIhL9iQH9qQH9rgH9DAAAAAAAAAAAAAAAAAAAAAD9uAH9DP8AAAD/AAAA/wAAAP8AAAAiFP22ASARIBIgEf0NBAUGBwAAAAAAAAAAAAAAAP2JAf2pAf2uASAT/bgBIBT9tgH9hgEgESASIBH9DQgJCgsAAAAAAAAAAAAAAAD9iQH9qQH9rgEgE/24ASAU/bYBIBEgEiAR/Q0MDQ4PAAAAAAAAAAAAAAAA/YkB/akB/a4BIBP9uAEgFP22Af2GAf1m/QsAACAGIAMiAUYNAQsgAUEBciEAIBAEQCABIARqQf8BIAogASANai0AAGoiAUEAIAFBAEobIgEgAUH/AU4bOgAAIAAhAQsgACAGRg0AIAEgC2ohACABIA1qIQQgBiABayEBA0AgAEH/ASAKIAQtAABqIghBACAIQQBKGyIIIAhB/wFOGzoAACAAQQFqQf8BIAogBEEBai0AAGoiCEEAIAhBAEobIgggCEH/AU4bOgAAIABBAmohACAEQQJqIQQgAUECayIBDQALCyAFIAtqIQsgAiAHRw0ACwwFCyAJQQA2AhggCUEBNgIMIAlBiILIADYCCCAJQgQ3AhAgCUEIakHo4sQAEI0IAAsgByAGQfjixAAQjAcACyAEIAYgBkGo48QAEOoHAAsgACAMQYjjxAAQjAcAC0EAIAIgBEGY48QAEOoHAAsgCUEgaiQAC78GAQR/IAAgAWohAgJAAkAgACgCBCIDQQFxDQAgA0ECcUUNASAAKAIAIgMgAWohASAAIANrIgBB2LrJACgCAEYEQCACKAIEQQNxQQNHDQFB0LrJACABNgIAIAIgAigCBEF+cTYCBCAAIAFBAXI2AgQgAiABNgIADAILIAAgAxDWBAsCQAJAAkAgAigCBCIDQQJxRQRAIAJB3LrJACgCAEYNAiACQdi6yQAoAgBGDQMgAiADQXhxIgMQ1gQgACABIANqIgFBAXI2AgQgACABaiABNgIAIABB2LrJACgCAEcNAUHQuskAIAE2AgAPCyACIANBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAsgAUGAAk8EQEEfIQIgAEIANwIQIAFB////B00EQCABQSYgAUEIdmciA2t2QQFxIANBAXRrQT5qIQILIAAgAjYCHCACQQJ0QbC3yQBqIQRBASACdCIDQcy6yQAoAgBxRQRAIAQgADYCACAAIAQ2AhggACAANgIMIAAgADYCCEHMuskAQcy6yQAoAgAgA3I2AgAPCwJAAkAgASAEKAIAIgMoAgRBeHFGBEAgAyECDAELIAFBGSACQQF2a0EAIAJBH0cbdCEFA0AgAyAFQR12QQRxaiIEKAIQIgJFDQIgBUEBdCEFIAIhAyACKAIEQXhxIAFHDQALCyACKAIIIgEgADYCDCACIAA2AgggAEEANgIYIAAgAjYCDCAAIAE2AggPCyAEQRBqIAA2AgAgACADNgIYIAAgADYCDCAAIAA2AggPCwJ/Qci6yQAoAgAiAkEBIAFBA3Z0IgNxRQRAQci6yQAgAiADcjYCACABQfgBcUHAuMkAaiIBDAELIAFB+AFxIgNBwLjJAGohASADQci4yQBqKAIACyECIAEgADYCCCACIAA2AgwgACABNgIMIAAgAjYCCA8LQdy6yQAgADYCAEHUuskAQdS6yQAoAgAgAWoiATYCACAAIAFBAXI2AgQgAEHYuskAKAIARw0BQdC6yQBBADYCAEHYuskAQQA2AgAPC0HYuskAIAA2AgBB0LrJAEHQuskAKAIAIAFqIgE2AgAgACABQQFyNgIEIAAgAWogATYCAAsL3HkDH38IfgJ7IwBBEGsiFSQAAkAgASkDGEICUgRAIAFBGGohIiABQcgAaiERIAEoAgwhCSABKAIIIQsDQCABKAIAIQcCQCAJIAtLDQAgASgCBCIIIAEoAhAiBmsiBQRAIAYgB2pBACAF/AsACyAVICIgByAIEKYDIBUtAABBBEYEQCAIIBUoAgQiCU8EQCABIAg2AhAgASAJNgIMQQAhCyABQQA2AggMAgtBtJvHAEE2QeybxwAQ6wcACyAVKAIEIQYgFSgCACEFIBUxAAAgASAINgIQIAFCADcDCEEAIQlBACELQgRRDQAgACAGNgIEIAAgBTYCAAwDCyABKQNQISkgASkDSCEqQQRBACAJIAtGIiAbISEjAEEwayIMJAAgESADNgIwIBEgCSALayIGNgIkIBEgAjYCLCARIAcgC2oiHzYCICARKAI8IgQtAAAiBUEMRgRAIARBDToAAEENIQULIBEpAxghJyARKQMQISggBCADNgJ0IAQgBjYCcCAEQQA2AlAgBCADNgJMIAQgAjYCSCAEIB82AjggBCAhOgAEIAQgBiAfajYCPCAEQcEAaiEUIARBCGohGSAEQYTsAGohDiAEQYTnAGohGiAEQaQBaiEdIARB9CpqIRsgBEHE1ABqIRcgBEHIAGohEwJAAkACQAJAA0AgBSEGQRIhBUEBIQgCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAGQf8BcUEBaw4eHBsaDQwLCgkCARkYCBcdBx8WFRQGBRMSHgARECEPDgsgBCgCJCIJIAQoAiAiECAEKAIcIg1qIgtPDQMgBCgCOCEGIAQtAEAhBSAEKQMwISMDQEJ/IAQ1ApQBhkJ/hSElIAQoAjwhEiAELQCYASEIAkACQAJAAkACQAJAAkACQAJAAkACQANAICMgJYOnIQ9BgAQhCkGo58gAIQcCQAJAAkACQCAIQQFrDgMAAQIDC0G0CiEKIB0hBwwCC0G0CiEKIBshBwwBC0HQBCEKIBchBwsgCiAPTQ0BIAcgD0ECdGooAQAiCkEYdiIPIAVB/wFxSwRAIAYgEkYNECAGMQAAISQgBCAFQQhqIgc6AEAgBCAGQQFqIgY2AjggBCAkIAWthiAjhCIjNwMwIAchBQwBCwsgCkH//wNxIgdBEE8EQCAFQf8BcSEIAkACQAJAAkAgB0EQaw4CAQIACwJAIAggD0EHaiIKTwRAIAUhBwwBCyAGIQgDQCAIIBJGDRQgBCAIQQFqIgY2AjggBCAFQQhqIgc6AEAgBCAIMQAAIAWthiAjhCIjNwMwIAYhCCAKIAciBUH/AXFLDQALCyAEIAcgD2tBB2siBToAQCAEICMgD62IIiRCB4giIzcDMCALICSnQf8AcUELaiILIAlqIgdJDQogCUHAAksNCyALQcACIAlrIghLDQwgC0EBdCIIBEAgGiAJQQF0akEAIAj8CwALIAQgBzYCJCAHIQkMDgsCQCAIIA9BAmoiCk8EQCAFIQcMAQsgBiEIA0AgCCASRg0TIAQgCEEBaiIGNgI4IAQgBUEIaiIHOgBAIAQgCDEAACAFrYYgI4QiIzcDMCAGIQggCiAHIgVB/wFxSw0ACwsgBCAHIA9rIgU6AEAgBCAjIA+tiCIkNwMwIAkNASAEQRo2AogBIARB5IDAADYChAEMLgsCQCAIIA9BA2oiCk8EQCAFIQcMAQsgBiEIA0AgCCASRg0SIAQgCEEBaiIGNgI4IAQgBUEIaiIHOgBAIAQgCDEAACAFrYYgI4QiIzcDMCAGIQggCiAHIgVB/wFxSw0ACwtBfSEIIAQgByAPa0EDayIFOgBAIAQgIyAPrYgiJEIDiCIjNwMwIAsgJKdBB3FBA2oiCiAJaiIHSQ0FIAlBwAJLDQYgCkHAAiAJayIISw0HIApBAXQiCARAIBogCUEBdGpBACAI/AsACyAEIAc2AiQgByEJDAwLIAlBAWshByAJQcACSw0CIBogB0EBdGovAQAhDSAEIAVBAmsiBToAQCAEICRCAogiIzcDMCALICSnQQNxIghBA2oiCiAJakkEQCAEQRo2AogBIARB5IDAADYChAEMLQsgCkHAAiAJayIHSw0DIBogCUEBdGohByAIQQJq/REiK/0MAAAAAAEAAAACAAAAAwAAAP1AIiz9GwBBAXEEQCAHIA07AQALICz9GwFBAXEEQCAHQQJqIA07AQALICz9GwJBAXEEQCAHQQRqIA07AQALICz9GwNBAXEEQCAHQQZqIA07AQALICv9DAQAAAAFAAAABgAAAAcAAAD9QCIr/RsAQQFxBEAgB0EIaiANOwEACyAr/RsBQQFxBEAgB0EKaiANOwEACyAr/RsCQQFxBEAgB0EMaiANOwEACyAr/RsDQQFxBEAgB0EOaiANOwEACyAEIAQoAiQgCmoiCTYCJCAEKAIgIRAgBCgCHCENDAsLIAQgBSAPayIFOgBAIAQgIyAPrYgiIzcDMCAJQcACSQ0JIAlBwAJB1PzIABCMBwALIA8gCkHc+cgAEIwHAAsgB0HAAkH0+8gAEIwHAAtBACAKIAdBhPzIABDqBwALIARBGjYCiAEgBEHkgMAANgKEAUEeIQYMKAsgCUHAAkHAAkGk/MgAEOoHAAtBACAKIAhBlPzIABDqBwALIARBGjYCiAEgBEHkgMAANgKEAQwkCyAJQcACQcACQcT8yAAQ6gcAC0EAIAsgCEG0/MgAEOoHAAsgBCAJQQFqIgc2AiQgGiAJQQF0aiAKOwEAIAchCQsgCSANIBBqIgtJDQALDAMLQXwhCAwfC0F+IQgMHgtBACEIQRohBgwdCyAELwGEa0UEQCAEQSU2AogBIARB7c7AADYChAEMHAsCQAJAAkAgDUHBAkkEQCAMQRhqIgZBASAaIA0gG0G0CkEKIA4QrQEgDCgCGA0BIAwoAiAhBSAEIAwoAhw2ApQBIARBAjoAmAEgBCAFNgIoIAQoAhwiCEHAAksNAiAEKAIgIgdBwAIgCGsiBUsNAyAGQQIgGiAIQQF0aiAHIBdB0ARBCSAOEK0BIAwoAhhFBEAgDCgCICEGIAwoAhwhBSAEQQM6AKABIAQgBTYCnAEgBCAGIAQoAihqNgIoQREhBSAELQAEQQZHDR9BACEIQREhBgwhCyAEQRY2AogBIARBzoDAADYChAEMHwtBACANQcACQeT7yAAQ6gcACyAEQRw2AogBIARBgIDAADYChAEMHQsgCEHAAkHAAkHU+8gAEOoHAAtBACAHIAVBxPvIABDqBwALQRchBSAEKAJgIglFDRkgBCkDMCEjAkAgBC0AQCIIIAlPBEAgCCEKDAELIAQoAjghBiAEKAI8IQsDQCAGIAtGBEBBACEIQRYhBgweCyAEIAZBAWoiBzYCOCAEIAhBCGoiCjoAQCAEIAYxAAAgCK2GICOEIiM3AzAgByEGIAkgCiIIQf8BcUsNAAsLIAQgCiAJazoAQCAEICMgCa2INwMwIAQgBCgCZCAJajYCZCAEIAQoAlwgI0J/IAlBP3GthkJ/hYOnajYCXAwZC0J/IAQ1ApwBhkJ/hSElIAQoAjghBiAELQBAIQUgBCgCPCEPIAQpAzAhIyAELQCgASEQAkACQAJAAkADQCAjICWDpyEIQSAhCkGo98gAIQcCQAJAAkACQCAQQQFrDgMAAQIDC0G0CiEKIB0hBwwCC0G0CiEKIBshBwwBC0HQBCEKIBchBwsgCCAKTw0CAkACQCAHIAhBAnRqKAEAIghBGHYiCyAFQf8BcUsEQCAGIA9HDQEMBwsgCEEQdiIJQf8BcUEPTQ0BIAshBwwDCyAGMQAAISQgBCAFQQhqIgc6AEAgBCAGQQFqIgY2AjggBCAkIAWthiAjhCIjNwMwIAchBQwBCwsgC0EfcSENIAhB//8DcSEKQn8gCSALakE/ca2GQn+FISUDQCAjICWDpyANdiAKaiEIQSAhB0Go98gAIQkCQAJAAkACQCAQQQFrDgMAAQIDC0G0CiEHIB0hCQwCC0G0CiEHIBshCQwBC0HQBCEHIBchCQsgByAITQ0DIAkgCEECdGooAQAiCEEYdiIHIAtqQf8BcSAFQf8BcUsEQCAGIA9GDQUgBjEAACEkIAQgBUEIaiIHOgBAIAQgBkEBaiIGNgI4IAQgJCAFrYYgI4QiIzcDMCAHIQUMAQsLIAQgBCgCZCALajYCZCAFIAtrIQUgCEEQdiEJICMgC62IISMLIAQgBSAHazoAQCAEICMgB62INwMwIAlBwABxRQRAIAQgCUEPcTYCYCAEIAhB//8DcTYCXEEWIQUMHAsgBEEWNgKIASAEQefQwAA2AoQBDBwLIAggCkHs+cgAEIwHAAsgCCAHQez5yAAQjAcAC0EAIQhBFSEGDBoLQQshBSAELQADIgtFDRcCQCAELQBAIgpBH0sNAEEAIQhBECEGIAQoAjgiDSAEKAI8IglGDRogBCANQQFqIgc2AjggBCAKrSImQgh8IiM8AEAgBCAEKQMwIA0xAAAgJoaEIiQ3AzAgCkEXSw0AIAcgCUYNGiAEIA1BAmoiBzYCOCAEICZCEHwiJTwAQCAEIA0xAAEgI4YgJIQiJDcDMCAKQQ9LDQAgByAJRg0aIAQgDUEDaiIHNgI4IAQgJkIYfCIjPABAIAQgDTEAAiAlhiAkhCIkNwMwIApBB0sNACAHIAlGDRogBCANQQRqNgI4IAQgCkEgcjoAQCAEIA0xAAMgI4YgJIQ3AzALIAQgBCgCUCIHIAQoAlRqNgJUIAQoAnghBgJ/AkACQCALQQRxBEAgBkUEQCAEIAQoAnwgBCgCSCAHEN8CNgJ8IAQpAzAhIwwCCyAEIAQoAoABIAQoAkggBxCpASIGNgJ8IAQgBjYCgAEgBCgCeCEGCyAEKQMwISMgBg0BCyAjpyIGQRh0IAZBgP4DcUEIdHIgBkEIdkGA/gNxIAZBGHZycgwBCyAjpwshBiAEIAQoAkwgBCgCUGs2AnQCQCAELQADQQRxBEAgBiAEKAJ8Rw0BCyAEQQA6AEAgBEIANwMwDBgLIARBFTYCiAEgBEHAz8AANgKEAQwYCyAELQABIgZBAXEEQCAEIAQtAEAiBUH4AXE6AEAgBCAEKQMwIAVBB3GtiDcDMEEQIQUMFwsgBCkDMCEjIAQtAEAiBUECTQRAIAQoAjgiByAEKAI8RgRAQQAhCEENIQYMGgsgBCAHQQFqNgI4IAcxAAAgBa2GICOEISMgBUEIciEFCyAEIAVBAWs6AEAgBCAjQgGIIiQ3AzAgBCAjp0EBcSAGcjoAAQJAAkACQAJAICSnQQNxQQFrDgMBAgMACyAEIAVBA2s6AEAgBCAjQgOINwMwQQ4hBQwZC0EAIQggBEEAOgCgASAEQQU2ApwBIARBADoAmAEgBEEJNgKUASAEIAVBA2s6AEAgBCAjQgOINwMwQREhBUERIQYgBC0ABEEGRw0YDBoLIAQgBUEDazoAQCAEICNCA4g3AzBBGCEFDBcLIARBEzYCiAEgBEG40MAANgKEAUF9IQggBCAFQQNrOgBAIAQgI0IDiDcDMEEeIQYMGAsCQCAEKAJ4IgpBgARxBEACQCAELQBAIgtBD0sNAEEAIQhBCCEGIAQoAjgiCSAEKAI8IgdGDRogBCAJQQFqIgU2AjggBCALrSIkQgh8IiM8AEAgBCAEKQMwIAkxAAAgJIaEIiQ3AzAgC0EHSw0AIAUgB0YNGiAEIAlBAmo2AjggBCALQRByOgBAIAQgCTEAASAjhiAkhDcDMAsgBC0AA0EEcQRAIAQvAXwgBCgCMEcNAgsgBEEAOgBAIARCADcDMAsgBCgCjAEiBQRAIAUgCkEJdkEBcTYCLCAEKAKMAUEBNgIwIAQoAnghCgtBDCEFIAQtAANBBHFFIApFcg0WIARCADcCfAwWCyAEQRQ2AogBIARB88/AADYChAEMFgsCQCAEKAJ4Ig9BgCBxBEBBByEGIAQoAnANAUEAIQgMGAtBCCEFIAQoAowBIgZFDRUgBkEANgIkDBULAkAgBCgCPCIIIAQoAjgiCUYEQEEAIQcMAQsgCCAJayEHQQAhBQNAIAUgCWotAAAEQCAJIAVBAWoiBWogCEcNAQwCCwsgBUEBaiEHCwJAIAQoAowBIgVFDQAgBSgCJCIIRQ0AIAUoAigiBSAEKAJYIgtPBEAgBSALayIFIAcgBSAHSRsiBQRAIAggC2ogCSAF/AoAAAsgBCAEKAJYIAVqNgJYIAQoAnghDwwBC0GA+8gAQRJBlPvIABCrBwALAkAgD0GABHFFDQAgBC0AA0EEcUUNACAEIAQoAnwgCSAHEKkBNgJ8C0EBIQoCQCAHRQ0AIAcgCWpBAWsiBUUNACAFLQAAQQBHIQoLIAQgBCgCPCIIIAQoAjggB2oiBSAFIAhLGyIHNgI4QQghBSAKRSAHIAhHcg0UQQAhCAwWCwJAAkAgBCgCeCIPQYAQcQRAQQYhBiAEKAJwDQFBACEIDBgLIAQoAowBIgVFDQEgBUEANgIcDAELAkAgBCgCPCIIIAQoAjgiCUYEQEEAIQcMAQsgCCAJayEHQQAhBQNAIAUgCWotAAAEQCAJIAVBAWoiBWogCEcNAQwCCwsgBUEBaiEHCwJAIAQoAowBIgVFDQAgBSgCHCIIRQ0AIAUoAiAiBSAEKAJYIgtPBEAgBSALayIFIAcgBSAHSRsiBQRAIAggC2ogCSAF/AoAAAsgBCAEKAJYIAVqNgJYIAQoAnghDwwBC0Hc+sgAQRJB8PrIABCrBwALAkAgD0GABHFFDQAgBC0AA0EEcUUNACAEIAQoAnwgCSAHEKkBNgJ8C0EBIQoCQCAHRQ0AIAcgCWpBAWsiBUUNACAFLQAAQQBHIQoLIAQgBCgCPCIIIAQoAjggB2oiBSAFIAhLGyIFNgI4IApFIAUgCEdyDQBBACEIDBYLIARBADYCWEEHIQUMEwsCQCAEKAJ4IghBgAhxRQ0AIAQoAjwgBCgCOCIHayIGIAQoAlgiBSAFIAZLGyIKBEACQCAEKAKMASIJRQ0AIAkoAhAiBkUNACAKIAkoAhgiCyAJKAIUIAVrIghrIgVBACAFIAtNGyIFIAUgCksbIgUEQCAGIAsgCCAIIAtLG2ogByAF/AoAAAsgBCgCeCEICwJAIAhBgARxRQ0AIAQtAANBBHFFDQAgBCgCPCAEKAI4IgZrIgUgCk8EQCAEIAQoAnwgBiAKEKkBNgJ8DAELQQAgCiAFQcz6yAAQ6gcACyAEIAQoAnAgCms2AnAgBCAEKAJYIAprIgU2AlggBCAEKAI8IgcgBCgCOCAKaiIGIAYgB0sbNgI4CyAFRQ0AQQAhCEEFIQYMFQsgBEEANgJYQQYhBQwSCwJAAkAgBCgCeCILQYAIcQRAIAQpAzAhIwJAIAQtAEAiCUEPSw0AQQAhCEEEIQYgBCgCOCIKIAQoAjwiB0YNFyAEIApBAWoiBTYCOCAEIAmtIiVCCHwiJDwAQCAEIAoxAAAgJYYgI4QiIzcDMCAJQQdLDQAgBSAHRg0XIAQgCkECajYCOCAEIAlBEHI6AEAgBCAKMQABICSGICOEIiM3AzALIAQgI6ciBjYCWCAEKAKMASIFBH8gBSAGNgIUIAQoAngFIAsLQYAEcUUNAiAELQADQQRxDQEMAgtBBSEFIAQoAowBIgZFDRMgBkEANgIQDBMLIAwgBCkDMD0BGCAEIAQoAnwgDEEYakECEKkBNgJ8CyAEQQA6AEAgBEIANwMwQQUhBQwRC0ENIQUgBC0AAyIHRQ0QIAQpAzAhIwJAAkAgBC0AQCIIQQ9LDQAgBCgCOCILIAQoAjwiBkYNASAEIAtBAWoiBTYCOCAEIAitIiVCCHwiJDwAQCAEIAsxAAAgJYYgI4QiIzcDMCAIQQdLDQAgBSAGRg0BIAQgC0ECajYCOCAEIAhBEHI6AEAgBCALMQABICSGICOEIiM3AzALAkAgB0ECcUEAICNCn5YCURtFBEAgBCgCjAEiBQR/IAVBfzYCMCAELQADBSAHC0EBcQRAIAQpAzAiI0IIhkKA/gODICNCCIh8Qh+CUA0CCyAEQRc2AogBIARBks/AADYChAEMFAsgBC0AAkUEQCAEQQ86AAILIAxBn5YCOwAYIARBACAMQRhqQQIQqQE2AnwgBEEAOgBAIARCADcDMEEBIQUMEgsgI0IPg0IIUQRAIAQgI0IEiCIkNwMwIAQgBC0AQEEEazoAQCAkp0EPcSIGQQhqIQcgBC0AAiIFBH8gBQUgBCAHOgACIAcLIAdJIAZBB0tyRQRAIARCgICAgBA3A3ggBEEAOgBAIARCADcDMCAEQQEgB3Q2ApABQQxBGyAjQoDAAINQGyEFDBMLIARBFDYCiAEgBEGH0MAANgKEAQwTCyAEQRs2AogBIARB/dDAADYChAEMEgtBACEGQQAhCAwSCyAEQR02AogBIARBm9DAADYChAEMEAtBAiEIIAQtAAFBAnFFBEBBHCEGDBELIARBATYCfEEMIQUMDgsgBCkDMCEjAkAgBC0AQCILQR9LDQBBACEIQRshBiAEKAI4IgkgBCgCPCIHRg0QIAQgCUEBaiIFNgI4IAQgC60iJkIIfCIkPABAIAQgCTEAACAmhiAjhCIjNwMwIAtBF0sNACAFIAdGDRAgBCAJQQJqIgU2AjggBCAmQhB8IiU8AEAgBCAJMQABICSGICOEIiM3AzAgC0EPSw0AIAUgB0YNECAEIAlBA2oiBTYCOCAEICZCGHwiJDwAQCAEIAkxAAIgJYYgI4QiIzcDMCALQQdLDQAgBSAHRg0QIAQgCUEEajYCOCAEIAtBIHI6AEAgBCAJMQADICSGICOEIiM3AzALIARBADoAQCAEQgA3AzAgBCAjpyIFQRh0IAVBgP4DcUEIdHIgBUEIdkGA/gNxIAVBGHZycjYCfEEcIQUMDQsgBCkDMCEjAkAgBC0AQCIFQQ1LDQBBACEIQRghBiAEKAI4IgkgBCgCPCILRg0PIAQgCUEBaiIHNgI4IAQgBa0iJEIIfCIlPABAIAQgCTEAACAkhiAjhCIjNwMwIAVBBUsEQCAlpyEFDAELIAcgC0YNDyAEIAlBAmo2AjggBCAFQRByIgU6AEAgBCAJMQABICWGICOEIiM3AzALIAQgBUEOazoAQCAEICNCDog3AzAgBCAjpyIHQR9xIgZBgQJqNgIcIAQgB0EFdkEfcSIFQQFqNgIgIAQgB0EKdkEPcUEEajYCGCAGQR1LIAVBHUtyRQRAIARBADYCJEEZIQUMDQsgBEEkNgKIASAEQazOwAA2AoQBDA0LA0AgBCgCTCIGIAQoAlAiB0YEQEEAIQhBFyEGDA8LIAYgB2shCgJAIAcgBCgCXCIGTwRAIBMgBiAKIAQoAlgiBiAGIApLGyIGEOwCDAELIAYgB2siCSAEKAIQTQRAIAQoAgwiBkFAaiIHQUFPDREgEyAZIAdBACAGIAdPGyAJIAQoAhQiBmsiC2sgBiAJayAGIAlJIgYbIgggCCAKIAQoAlgiByALIAkgBhsiBiAGIAdLGyIGIAYgCksbIgZqEJQFDAELIAQtAAFBBHEEQEEeIQYgBEEeNgKIASAEQdXPwAA2AoQBQX0hCAwQCyAMQQA2AiggDEEBNgIcIAxBxPnIADYCGCAMQgQ3AiAgDEEYakGk+8gAEI0IAAsgBCAEKAJYIgcgBms2AlggBiAHRw0ACwwLCwJAIAQoAmAiCUUEQCAEKAJYIQUMAQsgBCkDMCEjAkAgBC0AQCIGIAlPBEAgBiEIDAELIAQoAjghBSAEKAI8IQsDQCAFIAtGBEBBACEIQRQhBgwQCyAEIAVBAWoiBzYCOCAEIAZBCGoiCDoAQCAEIAUxAAAgBq2GICOEIiM3AzAgByEFIAkgCCIGQf8BcUsNAAsLIAQgCCAJazoAQCAEICMgCa2INwMwIAQgBCgCZCAJajYCZCAEIAQoAlggI0J/IAlBP3GthkJ/hYOnaiIFNgJYCyAEIAU2AmhBFSEFDAoLIAQoAlAiByAEKAJMIgZGBEBBACEIQRMhBgwMCyAGIAdLBEAgBCgCWCEGIAQgB0EBajYCUCAEKAJIIAdqIAY6AAAMCgsgByAGQbz/yAAQjAcACyAEQRI6AAACQCAEKAI8IgggBCgCOCILa0EPSQ0AIAQoAkwgBCgCUGtBgwJNDQAgBBCrASAELQAAIgVBEkcNCSAEKAI8IQggBCgCOCELCyAMQQhqIBNBCGooAgA2AgAgBEEANgJQIBMpAgAhJCAEQgE3A0ggDCAkNwMAIAwgFCgAADYCECAMIBRBA2ooAAA2ABNBqOfIACEJQYAEIR4CQAJAAkACQCAELQCYAUEBaw4DAAECAwtBtAohHiAdIQkMAgtBtAohHiAbIQkMAQtB0AQhHiAXIQkLQaj3yAAhD0EgIQcCQAJAAkACQCAELQCgAUEBaw4DAAECAwtBtAohByAdIQ8MAgtBtAohByAbIQ8MAQtB0AQhByAXIQ8LIAQtAEAhECAEKQMwISMCQAJAA0BBEiEKA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAKQf8BcUETaw4FBAEIAgsACyAIIAtrQQ9PBEAgDCgCBCAMKAIIa0GDAksNDAsgBEEANgJkIAshBiAQIQUgHiAjQn8gBDUClAGGQn+FIiaDpyIKSw0CDBgLIAQoAmAiCkUEQCAEKAJYIQUMBgsgCyEFIAogECIGQf8BcUsNAyAFIQ0MBAtBFyEKIAQoAmAiDUUNEyALIQUgDSAQIgZB/wFxSw0GIAUhEgwHCwNAIAkgCkECdGoiDS0AAyIKIAVB/wFxTQ0SIAYgCEcEQCAFrSElIAYxAAAhJCAGQQFqIQYgBUEIaiEFIB4gJCAlhiAjhCIjICaDpyIKTQ0XDAELC0ESIQYgBEESOgAAIBMgDCkDADcCACAEIAg2AjwgBCAINgI4IAQgIzcDMCAUIAwoAhA2AAAgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCACAEIBAgCEEDdGogC0EDdGs6AEBBACEIDCALIAwoAggiBiAMKAIEIgVHBEAgBSAGTQ0JIAwoAgAgBmogBCgCWDoAACAMIAZBAWo2AggMEwtBEyEGIARBEzoAACATIAwpAwA3AgAgBCAQOgBAIAQgCDYCPCAEIAs2AjggBCAjNwMwIBQgDCgCEDYAACAUQQNqIAwoABM2AAAgE0EIaiAMQQhqKAIANgIAQQAhCAwfCwNAIAUgCEYNCSAFMQAAIAathiAjhCEjIAVBAWoiDSEFIAogBkEIaiIGQf8BcUsNAAsLIAQgBCgCZCAKajYCZCAEIAQoAlggI0J/IApBP3GthkJ/hYOnaiIFNgJYIAYgCmshECAjIAqtiCEjIA0hCwsgBCAFNgJoQRUhCgwOCyALIQYgECEFIAcgI0J/IAQ1ApwBhkJ/hSImg6ciCk0NCwNAIA8gCkECdGoiDS0AAyIKIAVB/wFxTQ0LIAYgCEcEQCAFrSElIAYxAAAhJCAGQQFqIQYgBUEIaiEFIAcgJCAlhiAjhCIjICaDpyIKTQ0NDAELC0EVIQYgBEEVOgAAIBMgDCkDADcCACAEIAg2AjwgBCAINgI4IAQgIzcDMCAUIAwoAhA2AAAgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCACAEIBAgCEEDdGogC0EDdGs6AEBBACEIDBsLA0AgBSAIRg0GIAUxAAAgBq2GICOEISMgBUEBaiISIQUgDSAGQQhqIgZB/wFxSw0ACwsgBCAEKAJkIA1qNgJkIAQgBCgCXCAjQn8gDUE/ca2GQn+Fg6dqNgJcIAYgDWshECAjIA2tiCEjIBIhCwwLCyAMKAIEIgUgDCgCCCIGRg0EIAUgBmshFiAGIAQoAlwiBU8EQCAMIAUgFiAEKAJYIgUgBSAWSxsiBRDsAgwHCyAFIAZrIhIgBCgCEE0EQCAEKAIMIgVBQGoiBkFBTw0aIAwgGSAGQQAgBSAGTxsgEiAEKAIUIgVrIg1rIAUgEmsgBSASSSIFGyIKIAogFiAEKAJYIgYgDSASIAUbIgUgBSAGSxsiBSAFIBZLGyIFahCUBQwHCyAELQABQQRxRQ0FIBMgDCkDADcCACAEIBA6AEAgBCAINgI8IAQgCzYCOCAEICM3AzAgFCAMKAIQNgAAQR4hBiAEQR42AogBIARB1c/AADYChAEgBEEeOgAAIBRBA2ogDCgAEzYAACATQQhqIAxBCGooAgA2AgBBfSEIDBgLIARBEjoAACATIAwpAwA3AgAgBCAQOgBAIAQgCDYCPCAEIAs2AjggBCAjNwMwIBQgDCgCEDYAACAUQQNqIAwoABM2AAAgE0EIaiAMQQhqKAIANgIAIAQQqwEgBC0AACEFDBULIAYgBUG8/8gAEIwHAAtBFCEGIARBFDoAACATIAwpAwA3AgAgBCAINgI8IAQgCDYCOCAEICM3AzAgFCAMKAIQNgAAIBRBA2ogDCgAEzYAACATQQhqIAxBCGooAgA2AgAgBCAQIAhBA3RqIAtBA3RrOgBAQQAhCAwVC0EWIQYgBEEWOgAAIBMgDCkDADcCACAEIAg2AjwgBCAINgI4IAQgIzcDMCAUIAwoAhA2AAAgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCACAEIBAgCEEDdGogC0EDdGs6AEBBACEIDBQLQRchBiAEQRc6AAAgEyAMKQMANwIAIAQgEDoAQCAEIAg2AjwgBCALNgI4IAQgIzcDMCAUIAwoAhA2AAAgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCAEEAIQgMEwsgDEEANgIoIAxBATYCHCAMQcT5yAA2AhggDEIENwIgIAxBGGpBvPrIABCNCAALIAQgBCgCWCIGIAVrNgJYQRJBFyAFIAZGGyEKDAMLIA0vAQAhEgJAAkAgDS0AAiIcQQ9LBEAgCiENDAELICNCfyAKIBxqQT9xrYZCf4UiJoOnIAp2IBJqIg0gB08NASAKQR9xIRYCQANAIA8gDUECdGoiGC0AAyINIApqQf8BcSAFQf8BcU0NASAGIAhHBEAgBa0hJSAGMQAAIAZBAWohBiAFQQhqIQUgJYYgI4QiIyAmg6cgFnYgEmoiDSAHTw0EDAELC0EVIQYgBEEVOgAAIBMgDCkDADcCACAEIAg2AjwgBCAINgI4IAQgIzcDMCAUIAwoAhA2AAAgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCACAEIBAgCEEDdGogC0EDdGs6AEBBACEIDBMLIBgtAAIhHCAYLwEAIRIgBCAEKAJkIApqNgJkIAUgCmshBSAjIAqtiCEjCyAFIA1rIRAgIyANrYghIyAcQcAAcUUEQCAEIBxBD3E2AmAgBCASQf//A3E2AlxBFiEKIAYhCwwECyATIAwpAwA3AgAgBCAQOgBAIAQgCDYCPCAEIAY2AjggBCAjNwMwIBQgDCgCEDYAACAEQRY2AogBIARB59DAADYChAFBHiEGIARBHjoAACAUQQNqIAwoABM2AAAgE0EIaiAMQQhqKAIANgIAQX0hCAwRCyANIAdBrPrIABCMBwALIAogB0Gc+sgAEIwHAAsgDS8BACESAkAgDS0AAiIcRQRAQQAhDSAGIQtBACEcDAELQQAhDSAcQQ9LBEAgBiELDAELAkAgHiAjQn8gCiAcakE/ca2GQn+FIiaDp0H//wNxIApBD3EiGHYgEmpB//8DcSINTQ0AAkADQCAJIA1BAnRqIg0tAAMiFiAKakH/AXEgBUH/AXFNDQEgBiAIRwRAIAWtISUgBjEAACEkIAZBAWohBiAFQQhqIQUgHiAkICWGICOEIiMgJoOnQf//A3EgGHYgEmpB//8DcSINTQ0DDAELC0ESIQYgBEESOgAAIBMgDCkDADcCACAEIAg2AjwgBCAINgI4IAQgIzcDMCAUIAwoAhA2AAAgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCACAEIBAgCEEDdGogC0EDdGs6AEBBACEIDBELIAUgCmshBSAjIAqtiCEjIA0tAAIhHCANLwEAIRIgCiENIAYhCyAWIQoMAQsgDSAeQYz6yAAQjAcACyAEIBJB//8DcTYCWCAEIA0gCkH/AXFqNgJkIAUgCmshECAjIAqtiCEjQRMhCiAcRQ0AIBxBIHENAiAcQcAAcUUEQCAEIBxBD3E2AmBBFCEKDAELCwtBHiEGIARBHjoAACATIAwpAwA3AgAgBCAQOgBAIAQgCDYCPCAEIAs2AjggBCAjNwMwIBQgDCgCEDYAACAEQRw2AogBIARBy9DAADYChAEgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCAEF9IQgMDAtBDCEFIARBDDoAACAEQX82AmQgEyAMKQMANwIAIAQgEDoAQCAEIAg2AjwgBCALNgI4IAQgIzcDMCAUIAwoAhA2AAAgFEEDaiAMKAATNgAAIBNBCGogDEEIaigCADYCAAwJCyAKIB5B/PnIABCMBwALIAQgBC0AQCIHQfgBcToAQCAEIAQpAzAgB0EHca2IIiM3AzACQCAHQR9LDQBBACEIQQ4hBiAEKAI4IgkgBCgCPCILRg0KIAQgCUEBaiIFNgI4IAQgB61CGIMiJkIIfCIkPABAIAQgCTEAACAmhiAjhCIjNwMwIAdBGHEiB0EYRg0AIAUgC0YNCiAEIAlBAmoiBTYCOCAEICZCEHwiJTwAQCAEIAkxAAEgJIYgI4QiIzcDMCAHQQ9LDQAgBSALRg0KIAQgCUEDaiIFNgI4IAQgJkIYfCIkPABAIAQgCTEAAiAlhiAjhCIjNwMwIAcNACAFIAtGDQogBEEgOgBAIAQgCUEEajYCOCAEIAkxAAMgJIYgI4QiIzcDMAsgI0IQiCAjhUL//wODQv//A1EEQEEAIQggBEEAOgBAIARCADcDMCAEICOnQf//A3E2AlhBDyEFIAQtAARBBkcNCEEOIQYMCgsgBEEdNgKIASAEQdDOwAA2AoQBDAgLQQ0hBSAELQAEQQVrQf8BcUECTw0GQQAhCEEMIQYMCAtBHSEGIAQtAAMiB0UNByAEKAJ4RQ0HAkAgBC0AQCIJQR9LDQBBACEIQQshBiAEKAI4IhcgBCgCPCILRg0IIAQgF0EBaiIFNgI4IAQgCa0iJkIIfCIjPABAIAQgBCkDMCAXMQAAICaGhCIkNwMwIAlBF0sNACAFIAtGDQggBCAXQQJqIgU2AjggBCAmQhB8IiU8AEAgBCAXMQABICOGICSEIiQ3AzAgCUEPSw0AIAUgC0YNCCAEIBdBA2oiBTYCOCAEICZCGHwiIzwAQCAEIBcxAAIgJYYgJIQiJDcDMCAJQQdLDQAgBSALRg0IIAQgF0EEajYCOCAEIAlBIHI6AEAgBCAXMQADICOGICSENwMwCwJAIAdBBHEEQCAEKAJUIAQoAjBHDQELIARBADoAQCAEQgA3AzBBHSEGQQEhCAwICyAEQRc2AogBIARBqc/AADYChAEMBgsCQCAELQBAIgtBD0sNAEEAIQhBAyEGIAQoAjgiCSAEKAI8IgdGDQcgBCAJQQFqIgU2AjggBCALrSIkQgh8IiM8AEAgBCAEKQMwIAkxAAAgJIaEIiQ3AzAgC0EHSw0AIAUgB0YNByAEIAlBAmo2AjggBCALQRByOgBAIAQgCTEAASAjhiAkhDcDMAsgBCgCjAEiBQRAIAUgBC0AMDYCCCAEKAKMASAEKQMwQgiIPgIMCwJAIAQtAHlBAnFFDQAgBC0AA0EEcUUNACAMIAQpAzA9ARggBCAEKAJ8IAxBGGpBAhCpATYCfAsgBEEAOgBAIARCADcDMEEEIQUMBAsCQCAELQBAIgtBH0sNAEEAIQhBAiEGIAQoAjgiCSAEKAI8IgdGDQYgBCAJQQFqIgU2AjggBCALrSImQgh8IiM8AEAgBCAEKQMwIAkxAAAgJoaEIiQ3AzAgC0EXSw0AIAUgB0YNBiAEIAlBAmoiBTYCOCAEICZCEHwiJTwAQCAEIAkxAAEgI4YgJIQiJDcDMCALQQ9LDQAgBSAHRg0GIAQgCUEDaiIFNgI4IAQgJkIYfCIjPABAIAQgCTEAAiAlhiAkhCIkNwMwIAtBB0sNACAFIAdGDQYgBCAJQQRqNgI4IAQgC0EgcjoAQCAEIAkxAAMgI4YgJIQ3AzALIAQoAowBIgUEQCAFIAQpAzA+AgQLAkAgBC0AeUECcUUNACAELQADQQRxRQ0AIAwgBCkDMD4CGCAEIAQoAnwgDEEYakEEEKkBNgJ8CyAEQQA6AEAgBEIANwMwQQMhBQwDCyAEKQMwISMCQCAELQBAIgtBD0sNAEEAIQggBCgCOCIJIAQoAjwiB0YEQEEBIQYMBgtBASEGIAQgCUEBaiIFNgI4IAQgC60iJUIIfCIkPABAIAQgCTEAACAlhiAjhCIjNwMwIAtBB0sNACAFIAdGDQUgBCAJQQJqNgI4IAQgC0EQcjoAQCAEIAkxAAEgJIYgI4QiIzcDMAsgBCAjpyIGNgJ4AkACQCAGQf8BcUEIRgRAIAZBgMADcQ0BIAQoAowBIgUEfyAFIAZBCHZBAXE2AgAgBCgCeAUgBgtBgARxRQ0CIAQtAANBBHFFDQIgBCgCfCEFIAwgBCkDMD0AGCAEIAUgDEEYakECEKkBNgJ8DAILIARBGzYCiAEgBEH90MAANgKEAQwFCyAEQRk2AogBIARBtYDAADYChAEMBAsgBEEAOgBAIARCADcDMEECIQUMAgtBDCEFIAQoAlgiCkUNASAEKAI4IQ8gBCgCPCEHIAQoAlAhCCAEKAJIIQsgBCgCTCEJAkADQCAHIA9rIgcgBCgCTCAIayIGIAogBiAKSRsiBiAGIAdLGyINRQRAQQAhCEEPIQYMBgsgCCAJTQRAIA0gCSAIayIGSw0CIA0EQCAIIAtqIA8gDfwKAAALIAQgCCANaiIINgJQIAQgBCgCWCANayIKNgJYIAQgBCgCPCIHIAQoAjggDWoiBiAGIAdLGyIPNgI4IApFDQQMAQsLIAggCSAJQdz/yAAQ6gcAC0EAIA0gBkHM/8gAEOoHAAsCQCAEKAIkIgUgBCgCGCILTw0AQRMgBSAFQRNNGyENIAQoAjghCiAEKQMwISQgBC0AQCEGIAQoAjwhCQJAA0ACQCAGQf8BcUECSwRAICQhIyAGIQgMAQsgCSAKRgRAQQAhCEEZIQYMBwsgBCAKQQFqIgc2AjggBCAGQQhyIgg6AEAgBCAKMQAAIAathiAkhCIjNwMwIAchCgsgBSANRg0BIAQgCEEDayIGOgBAIAQgI0IDiCIkNwMwIAQgBUEBaiIHNgIkIBogBUGD58gAai0AAEEBdGogI6dBB3E7AQAgByIFIAtHDQALIAshBQwBCyANQRNBtPvIABCMBwALIAVBEk0EQAJAIAVBC00EQCAFQYPnyABqIQYgBUETIAVrIgtBGHEiB2ohBSAHIQgDQCAaIAb9XQAAIiv9iQH9qQEiLP0bAEEBdGpBADsBACAaICz9GwFBAXRqQQA7AQAgGiAs/RsCQQF0akEAOwEAIBogLP0bA0EBdGpBADsBACAaICsgLP0NBAUGBwAAAAAAAAAAAAAAAP2JAf2pASIr/RsAQQF0akEAOwEAIBogK/0bAUEBdGpBADsBACAaICv9GwJBAXRqQQA7AQAgGiAr/RsDQQF0akEAOwEAIAZBCGohBiAIQQhrIggNAAsgByALRg0BCwNAIBogBUGD58gAai0AAEEBdGpBADsBACAFQQFqIgVBE0cNAAsLIARBEzYCJAsgDEEYakEAIBpBEyAdQbQKQQcgDhCtASAMKAIYRQRAIAwoAhwhBiAMKAIgIQUgBEEBOgCYASAEIAU2AiggBCAGNgKUASAEQQA2AiRBGiEFDAELCyAEQRk2AogBIARBnIDAADYChAELQX0hCEEeIQYLIAQgBjoAACARKAIgIQkgESARKAI8Ig4oAjgiHTYCICARIA4oAjwgHWs2AiQgESAOKAJMIgUgDigCUCIGazYCMCARIAYgDigCSCIPaiIHNgIsIBEgESgCKCAdIAlrajYCKCAOIA4oAnQgBiAFa2oiFiAOKAJUaiIFNgJUIBEgBTYCNCARIA4oAnwiFzYCUAJAAkACQAJAAkACQAJAAkACQAJAAkAgDkEMaigCACISQUBqQUFJBEACQCASQcAASw0AIBZFDQwgDi0AACIFQR5LDQBBASAFdCIFQYCMgIAEcQ0MIAVBgJAEcUUNACAOLQAEQQRGDQwLIAYgFkkNASAOLQADQQRxIQYgDigCeCELIBJBQGoiBUEAIAUgEk0bIhggFksEQCAWIBYgGCAOKAIUIhBrIhsgFiAbSRsiGWshDSAPIBlqIQogBkUEQCAQIBJLDQQgEiAQayIFIBlJBEBBACAZIAVBwP3IABDqBwALIA4oAgghBSAZBEAgBSAQaiAPIBn8CgAACyAWIBtNDQogDUUNDCAFIAogDfwKAAAMDAsgECASSw0EIBkgEiAQayIFSw0FIA4oAggiBiAQaiEFIAtFDQcMCAsgDyAWIBhrIgVqIRsCQCAGBEAgCw0BIBcgDyAFEN8CIQUgGARAIA4oAgggGyAY/AoAAAsgDiAFIBsgGBDfAjYCfAwHCyAYRQ0GIA4oAgggGyAY/AoAAAwGCyAOKAKAASAPIAUQqQEhBiAOKAIIIA4gBiAbIBgQqQE2AoABIBhFDQUgGyAY/AoAAAwFCwwLC0EAIBYgBkGkgMkAEOoHAAsgECASIBJB0P3IABDqBwALIBAgEiASQfD9yAAQ6gcAC0EAIBkgBUHg/cgAEOoHAAsgDiAYNgIQIA5BADYCFAwFCyAZBEAgBSAPIBn8CgAACyAOIBcgDyAZEN8CIgU2AnwgFiAbTQ0BIA0EQCAGIAogDfwKAAALIA4gBSAKIA0Q3wI2AnwMAwsgDiAOKAKAASAPIBkQqQE2AoABIBkEQCAFIA8gGfwKAAALIBYgG0sNAQsgDiAQIBlqIgVBACAFIBhHGzYCFCAYIA4oAhAiBU0NAiAOIAUgGWo2AhAMAgsgDiAOKAKAASAKIA0QqQE2AoABIA1FDQAgBiAKIA38CgAACyAOIBg2AhAgDiANNgIUCyAOKAKEASIGBEACQCAOKAKIASIFBEAgBSAGakEBay0AAEUNAQtB7P/IAEElQZSAyQAQ6wcACyARIAY2AjgLIBEgDi0AAEEMa0H/AXEiBUEGSQR/IAVBAnQoAriESQVBAAsgDi0AQCAOLQABQQZ0QcAAcXJyNgJMIBEgESkDECAdIB9rrXwiIzcDECARIBEpAxggByACa618IiQ3AxgCQAJAAkACQAJAAkACQCAIRQRAIBZFIAkgHUZxICFB/wFxQQRGcg0BCwJAAkAgCEEEag4HBQUFAQMABAILQQIhCAwCCyAMQQA2AiggDEEBNgIcIAxBwObIADYCGCAMQgQ3AiAgDEEYakHI5sgAEI0IAAtBASEICyARIBEpAwAgIyAofXw3AwAgESARKQMIICQgJ318NwMIDAMLIBEgESkDACAjICh9fDcDACARIBEpAwggJCAnfXw3AwgMAQsgESARKQMAICMgKH18NwMAIBEgESkDCCAkICd9fDcDCAJAIAhBAmsOAgECAAsgESgCOCIGBH8gDEEYaiAGAkAgBi0AAEUEQEEAIQcMAQsgBkEBaiEGQQAhBwNAIAYgB2ogB0EBaiEHLQAADQALCyAHEPsCIAwoAiAhBkEAIAwoAhwgDCgCGBsFQQALIQUgFSAGNgIIIBUgBTYCBCAVQQA2AgAMAgsgFSAXNgIEIBVBATYCAAwBCyAVQQI2AgAgFSAIOgAECyAMQTBqJAAMAQtB5PzIAEHKAEGw/cgAEOsHAAsgFS0ABCEHIBUoAgAgASABKAIMIgkgASgCCCABKQNIICp9p2oiBSAFIAlLGyILNgIIQQJHBEACQEEWEHEiAUUNACABQci2xwD9AAAA/QsAACABQQ5qQda2xwApAAA3AABBDBBxIgJFDQAgAkEWNgIIIAIgATYCBCACQRY2AgBBDBBxIgFFDQAgAUEUOgAIIAFBuJ/GADYCBCABIAI2AgAgACABrUIghkIDhDcCAAwECwALIAEpA1AgKX2nIQUCQAJAAkAgB0EBaw4CAQIACyAgIANFcg0BIAVFDQIMAQsgICADRXINACAFRQ0BCwsgAEEEOgAAIAAgBTYCBAwBCwJAAkACQCABKAIoIgsgASgCLCIJRiABKAIkIgggA01xRQRAIAEoAiAhByAJIAtLDQIgCCABKAIwIgZrIgUEQCAGIAdqQQAgBfwLAAsgFSABQThqIAcgCBCmAyAVLQAAQQRHDQEgCCAVKAIEIglPBEAgASAINgIwIAEgCTYCLEEAIQsMAwtBtJvHAEE2QeybxwAQ6wcACyABQgA3AyggACABQThqIAIgAxCmAwwDCyAVKAIEIQYgFSgCACEFIBUxAAAgASAINgIwIAFCADcDKEEAIQlBACELQgRSDQELIAcgC2ohBgJAIAkgC2siBSADIAMgBUsbIgNBAUYEQCACIAYtAAA6AAAMAQsgA0UNACACIAYgA/wKAAALIAAgAzYCBCAAQQQ6AAAgASAJIAMgC2oiACAAIAlLGzYCKAwBCyAAIAY2AgQgACAFNgIACyAVQRBqJAAL5AUBBX8gASgCACICQf///wNxIQMgAkGAgICAeHEhBiABKAIEIQQCQCACQYCAgPwHcSIFQYCAgPwHRgRAIANBDXYgBkEQdnJBgARBACADG3JBgPgBciEGDAELIAZBEHYhBiAFQYCAgLgETQRAIAVBgICAxANPBEAgAkEMdiACQf/fAHFBAEdxIAVBDXYgA0ENdmpBgIABaiAGcmohBgwCCyAFQYCAgJgDSQ0BIANBgICABHIiAkH+ACAFQRd2IgNrdiEFIAJBHSADayIDdkEBcQR/IAVBAyADdEEBayACcUEAR2oFIAULIAZyIQYMAQsgBkGA+AFyIQYLIAEoAgghASAEQf///wNxIQMgBEGAgICAeHEhBQJAIARBgICA/AdxIgJBgICA/AdHBEAgBUEQdiEFIAJBgICAuARNBEAgAkGAgIDEA08EQCAEQQx2IARB/98AcUEAR3EgAkENdiADQQ12akGAgAFqIAVyaiEFDAMLIAJBgICAmANJDQIgA0GAgIAEciIDQf4AIAJBF3YiAmt2IQQgA0EdIAJrIgJ2QQFxBH8gBEEDIAJ0QQFrIANxQQBHagUgBAsgBXIhBQwCCyAFQYD4AXIhBQwBCyADQQ12IAVBEHZyQYAEQQAgAxtyQYD4AXIhBQsgAUH///8DcSEDIAFBgICAgHhxIQQCQCABQYCAgPwHcSICQYCAgPwHRwRAIARBEHYhBCACQYCAgLgETQRAIAJBgICAxANPBEAgAUEMdiABQf/fAHFBAEdxIAJBDXYgA0ENdmpBgIABaiAEcmohBAwDCyACQYCAgJgDSQ0CIANBgICABHIiA0H+ACACQRd2IgJrdiEBIANBHSACayICdkEBcQR/IAFBAyACdEEBayADcUEAR2oFIAELIARyIQQMAgsgBEGA+AFyIQQMAQsgA0ENdiAEQRB2ckGABEEAIAMbckGA+AFyIQQLIAAgBDsBGiAAIAU7ARggACAGOwEWC9cFAwR+CH8BeyABKQMQIAEpAxggAhDyAyEFIAEoAghFBEAgASABQRBqEMABCyABKAIEIgwgBadxIQkgBUIZiCIIQv8Ag0KBgoSIkKDAgAF+IQcgASgCACEKAkACQCACLQAAIhBBC0cEQANAIAkgCmopAAAiBiAHhSIFQn+FIAVCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiBVBFBEADQCAQIAogBXqnQQN2IAlqIAxxQWhsaiIPQRhrLQAARg0EIAVCAX0gBYMiBVBFDQALCyAGQoCBgoSIkKDAgH+DIQUCfwJAIA1FBEAgBVANASAFeqdBA3YgCWogDHEhCwsgBSAGQgGGg0IAUg0FQQEMAQtBAAshDSAOQQhqIg4gCWogDHEhCQwACwALIAIoAAEhEANAIAkgCmopAAAiBiAHhSIFQn+FIAVCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiBVBFBEADQCAKIAV6p0EDdiAJaiAMcUFobGoiD0EYay0AAEELRgRAIBAgD0EXaygAAEYNBAsgBUIBfSAFgyIFUEUNAAsLIAZCgIGChIiQoMCAf4MhBQJ/AkAgDUUEQCAFUA0BIAV6p0EDdiAJaiAMcSELCyAFIAZCAYaDQgBSDQRBAQwBC0EACyENIA5BCGoiDiAJaiAMcSEJDAALAAsgD0EQayIB/QADACERIA9BCGsgBDcDACABIAM3AwAgACAR/QsDCCAAQgE3AwAPCyAKIAtqLAAAIglBAE4EQCAKIAopAwBCgIGChIiQoMCAf4N6p0EDdiILai0AACEJCyAKIAtqIAinQf8AcSINOgAAIAogC0EIayAMcWpBCGogDToAACABIAEoAgggCUEBcWs2AgggASABKAIMQQFqNgIMIAogC0FobGoiAUEIayAENwMAIAFBEGsgAzcDACABQRhrIAI1AAAgAkEEajEAAEIghoQ3AwAgAEIANwMAC8IFAQl/IwBBMGsiBCQAAkACQAJ/AkACQCACIANLBEAgASADQRhsaiIGKAIUIgJBBE0EQEEAIQEgBEEANgIIIARBADYCLCAGQQRqIgMgAkECdGohCUEIIQUgBEEMaiIGIQogBEEsaiILDAQLIAYoAgghAyAGKAIEIQJBACEBIARBADYCCCAEQQA2AiwgAyACQQJ0aiEJIARBDGohBiAEQSxqIQsgAkEJSQ0CIAQgBEEIakF/IAJBAWtndkEBahD2AyAEKAIAIgFBgYCAgHhHBEAgAQ0CQdiVxwBBEUHUzMcAEOsHAAsgBCgCLCIFQQlJBEAgBSEBDAMLIAQoAgwhASAEKAIQIQogBgwDCyADIAJBrLvHABCMBwsACyAGIQpBCCEFIAsLIgwgASAFSQR/AkAgCSADayIHQQJ2IgggBSABQX9zaiICIAIgCEsbIghBB00gB0EDcXINACABQQJ0IApqIgIgA2tBEEkNACABIAhBAWoiCCAIQQNxIghBBCAIG2siB2ohASADIAdBAnRqA0AgAiAD/QACAP0LAgAgA0EQaiEDIAJBEGohAiAHQQRrIgcNAAshAwsgCiABQQJ0aiECA0AgAyAJRg0CIAIgAygCADYCACACQQRqIQIgA0EEaiEDIAUgAUEBaiIBRw0ACyAFBSABCzYCACADIAlGDQEDQAJ/IAQoAiwiBUEJSQRAIAUhAiAGIQdBCCEFIAsMAQsgBCgCDCECIAQoAhAhByAGCyEBIAMoAgAhDCACIAVGBEAgBEEIahDVBiAEKAIMIQIgBCgCECEHIAYhAQsgByACQQJ0aiAMNgIAIAEgASgCAEEBajYCACADQQRqIgMgCUcNAAsMAQsgDCABNgIACyAAIAT9AAII/QsCACAAQSBqIARBKGopAgA3AgAgAEEQaiAEQRhq/QACAP0LAgAgBEEwaiQAC8IFAQl/IwBBMGsiBCQAAkACQAJ/AkACQCACIANLBEAgASADQRhsaiIGKAIUIgJBBE0EQEEAIQEgBEEANgIIIARBADYCLCAGQQRqIgMgAkECdGohCUEIIQUgBEEMaiIGIQogBEEsaiILDAQLIAYoAgghAyAGKAIEIQJBACEBIARBADYCCCAEQQA2AiwgAyACQQJ0aiEJIARBDGohBiAEQSxqIQsgAkEJSQ0CIAQgBEEIakF/IAJBAWtndkEBahD2AyAEKAIAIgFBgYCAgHhHBEAgAQ0CQdiVxwBBEUHUzMcAEOsHAAsgBCgCLCIFQQlJBEAgBSEBDAMLIAQoAgwhASAEKAIQIQogBgwDCyADIAJBpMDHABCMBwsACyAGIQpBCCEFIAsLIgwgASAFSQR/AkAgCSADayIHQQJ2IgggBSABQX9zaiICIAIgCEsbIghBB00gB0EDcXINACABQQJ0IApqIgIgA2tBEEkNACABIAhBAWoiCCAIQQNxIghBBCAIG2siB2ohASADIAdBAnRqA0AgAiAD/QACAP0LAgAgA0EQaiEDIAJBEGohAiAHQQRrIgcNAAshAwsgCiABQQJ0aiECA0AgAyAJRg0CIAIgAygCADYCACACQQRqIQIgA0EEaiEDIAUgAUEBaiIBRw0ACyAFBSABCzYCACADIAlGDQEDQAJ/IAQoAiwiBUEJSQRAIAUhAiAGIQdBCCEFIAsMAQsgBCgCDCECIAQoAhAhByAGCyEBIAMoAgAhDCACIAVGBEAgBEEIahDVBiAEKAIMIQIgBCgCECEHIAYhAQsgByACQQJ0aiAMNgIAIAEgASgCAEEBajYCACADQQRqIgMgCUcNAAsMAQsgDCABNgIACyAAIAT9AAII/QsCACAAQSBqIARBKGopAgA3AgAgAEEQaiAEQRhq/QACAP0LAgAgBEEwaiQAC9MFAgl/BX4jAEEQayILJAACQAJ/AkACQCABUEUEQEGgfyACIAF5Ig+nayIGa8FB0ABsQbCnBWpBzhBtIgJB0QBPDQEgCyACQQR0IgIpA4iFQiABIA+GEN0GQgFBQCAGIAIvAZCFQmprIgdBP3GtIg+GIhFCAX0iEiALKQMIIAspAwBCP4h8IgGDIhBQRQRAIAIvAZKFQiEIIAEgD4inIgZBkM4ATwRAIAZBwIQ9SQ0EIAZBgMLXL08EQEEIQQkgBkGAlOvcA0kiAhshCUGAwtcvQYCU69wDIAIbDAYLQQZBByAGQYCt4gRJIgIbIQlBwIQ9QYCt4gQgAhsMBQsgBkHkAE8EQEECQQMgBkHoB0kiAhshCUHkAEHoByACGwwFC0EKQQEgBkEJSyIJGwwECyAAQQA2AgAMBAtB2I/CAEEcQfSPwgAQ6wcACyACQdEAQZiPwgAQjAcAC0EEQQUgBkGgjQZJIgIbIQlBkM4AQaCNBiACGwshAgJAAkACQCAJIAhrQQFqwSIIIAXBIgpKBEAgB0H//wNxIQ0gCCAFa8EgBCAIIAprIARJGyIKQQFrIQ5BACEHA0AgAyAHaiAGIAJuIgxBMGo6AAAgBiACIAxsayEGIAcgDkYNAyAHIAlGDQIgB0EBaiEHIAJBCkkgAkEKbiECRQ0AC0GEkMIAEIEIAAsgACADIARBACAIIAUgAUIKgCACrSAPhiARELIEDAMLIAdBAWohAiANQQFrQT9xrSETQgEhAQNAIAEgE4hQRQRAIABBADYCAAwECyACIARGDQIgAiADaiAQQgp+IhAgD4inQTBqOgAAIAFCCn4hASAQIBKDIRAgCiACQQFqIgJHDQALIAAgAyAEIAogCCAFIBAgESABELIEDAILIAAgAyAEIAogCCAFIAatIA+GIBB8IAKtIA+GIBEQsgQMAQsgBCAEQZSQwgAQjAcACyALQRBqJAAL8QQBDH8jAEEgayIEJAACQAJAAkAgACgCACIBQQNGIAFBAklyDQACQAJAIAAtABRBAWsOAgIAAQsgBEEANgIYIARBATYCDCAEQbzLxwA2AgggBEIENwIQIARBCGpBxMvHABCNCAALIAAoAgghCiAAKAIMIgwEQANAIAogB0EMbGoiBSgCBCELIAUoAggiCQRAIAtBJGohAQNAIAFBBGsoAgAiAkGAgICAeHJBgICAgHhHBEAgASgCACIGQQRrKAIAIgNBeHEiCEEEQQggA0EDcSIDGyACakkNByADQQAgCCACQSdqSxsNBiAGEKICCwJAIAFBFGsoAgAiBkECRg0AIAFBEGshAgJAIAZFBEAgAigCACICRQ0CIAFBDGsoAgAiBkEEaygCACIDQXhxIghBBEEIIANBA3EiAxsgAmpJDQkgA0UgCCACQSdqTXINAQwICyACKAIAIgJFDQEgAUEMaygCACIGQQRrKAIAIgNBeHEiCCACQQF0IgJBBEEIIANBA3EiAxtqSQ0IIANFDQAgCCACQSdqSw0HCyAGEKICCyABQSxqIQEgCUEBayIJDQALCyAFKAIAIgEEQCALQQRrKAIAIgVBeHEiCSABQSxsIgFBBEEIIAVBA3EiBRtqSQ0FIAVBACAJIAFBJ2pLGw0EIAsQogILIAdBAWoiByAMRw0ACwsgACgCBCIARQ0AIApBBGsoAgAiAUF4cSIHIABBDGwiAEEEQQggAUEDcSIBG2pJDQIgAUEAIAcgAEEnaksbDQEgChCiAgsgBEEgaiQADwtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALtwgCBX8DfiMAQUBqIgEkACABQQY2AgQgAUGQgsgANgIAQai3yQAtAABBA0cEQAJAIwBBIGsiAiQAAkACQAJAAkBBqLfJAC0AAEECaw4CAwEAC0Got8kAQQI6AABBgAgQcSIDRQ0BQai3yQBBAzoAAEGYt8kAIAM2AgBBkLfJAEKAgICAgIABNwMAQYC3yQBCADcDAEGgt8kAQQA6AABBnLfJAEEANgIAQYy3yQBBADoAAEGIt8kAQQA2AgALIAJBIGokAAwCCwALIAJBADYCGCACQQE2AgwgAkGYg8gANgIIIAJCBDcCECACQQhqQZCEyAAQjQgACwsCQAJAAkACQAJAAkACQAJAQfi6yQApAwAiBlAEQEGAu8kAKQMAIQcDQCAHQn9RDQJBgLvJACAHQgF8IgZBgLvJACkDACIIIAcgCFEiAhs3AwAgCCEHIAJFDQALQfi6yQAgBjcDAAsCQEGAt8kAKQMAIAZSBEBBjLfJAC0AACECQQEhA0GMt8kAQQE6AAAgASACOgAYIAINA0GAt8kAIAY3AwAMAQtBiLfJACgCACICQX9GDQMgAkEBaiEDC0GIt8kAIAM2AgAgAUGAt8kANgIQIAAoAgQaIAFBBDoAGCABIAFBEGo2AiACQAJAIAFBGGpBiPvHACAAEMEDBEAgAS0AGEEERw0BIAFBADYCOCABQQE2AiwgAUHw+scANgIoIAFCBDcCMCABQShqQfj6xwAQjQgACyABQQQ6AAggASgCHCEAIAEtABgiAkEETSACQQNHcQ0BIAAoAgAhAiAAQQRqKAIAIgMoAgAiBARAIAIgBBEDAAsgAygCBCIDBEAgAkEEaygCACIEQXhxIgVBBEEIIARBA3EiBBsgA2pJDQYgBEEAIAUgA0EnaksbDQcgAhCiAgsgAEEEaygCACICQXhxIgNBEEEUIAJBA3EiAhtJDQcgAkEAIANBNE8bDQggABCiAgwBCyABIAEpAxg3AwgLIAEoAhAiACAAKAIIQQFrIgI2AgggAkUEQCAAQQA6AAwgAEIANwMACyABLQAIQQRHDQcgAUFAayQADwsjAEEgayIAJAAgAEEANgIYIABBATYCDCAAQbCFyAA2AgggAEIENwIQIABBCGpBuIXIABCNCAALIAFCADcCNCABQoGAgIDAADcCLCABQcCDyAA2AiggAUEYaiABQShqEPsHAAtB2IPIAEEmQYCEyAAQqwcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAEgASkDCDcDECABQQI2AiwgAUGsgsgANgIoIAFCAjcCNCABIAFBEGqtQoCAgIDgAoQ3AyAgASABrUKAgICAoAGENwMYIAEgAUEYajYCMCABQShqQbyCyAAQjQgAC9UFAQl/IwBBIGsiCCQAIAAgACgCCCIEIAJqIgM2AgggACgCBCIJIANBEGoiByAHIAlLGyEDIAAoAgAhBQJAAkACQAJAAkACQAJAAkACQAJAAkAgASACTwRAIAEgBEsNASAEIAFrIQAgByAJTwRAIAAgAmoiASADSw0DIAAgAUsNBCAEIAMgAmtLDQUgAkUNCiAEIAVqIAAgBWogAvwKAAAMCgsgAkUNCSAEIAVqIgMgACAFaiIA/QAAAP0LAAAgAkERSQ0JIAAgAmohAkEAIAFrIQEgA0EQaiEAA0AgACAAIAFq/QAAAP0LAAAgAEEQaiIAIAFqIAJJDQALDAkLIAFBAUcEQEEAIQAgASADIAQgAWsiCSADIAlLG2ogBGsiBiADIARrIgdBACADIAdPGyIHIAYgB0kbIgYgAkEBayIKIAYgCkkbIgpBAWoiBkERSSABQQ9Ncg0IIAZBD3EiAEEQIAAbIgAgCkF/c2ohCkEAIAFrIQsgBCAFaiEBIAYgAGshAANAIAEgASALav0AAAD9CwAAIAFBEGohASAKQRBqIgoNAAsMCAsgBEEBayIAIANPDQQgAyAESQ0FIAIgAyAEayIBSw0GIAJFDQggBCAFaiAAIAVqLQAAIAL8CwAMCAtB8P7IAEEJQfz+yAAQqwcAC0EAIAEgA0Hg/sgAEOoHAAsgACABIANB4P7IABDqBwALIAhBADYCGCAIQQE2AgwgCEHUnMgANgIIIAhCBDcCECAIQQhqQeD+yAAQjQgACyAAIANBkP7IABCMBwALIAQgAyADQbD+yAAQ6gcAC0EAIAIgAUGg/sgAEOoHAAsgBSAJaiEBIAQgBWohBQNAIAAgCWoiBiADTw0CIAAgB0YNAyAAIAVqIAAgAWotAAA6AAAgAEEBaiIAIAJHDQALCyAIQSBqJAAPCyAGIANBwP7IABCMBwALIAAgBGogA0HQ/sgAEIwHAAuVBgEFfyMAQcDSAGsiAyQAAkACQAJAAkAgAkEJTQRAIABBgICAgHg2AgAMAQsCQAJAIAEtAABBH0cNACABLQABQYsBRw0AIAEtAAJBCEcNAEEKIQQgAS0AAyIFQQRxRQ0BIAJBDEkEQCAAQYCAgIB4NgIADAMLIAIgAS8ACkEMaiIETw0BIABBgICAgHg2AgAMAgsgA0EANgIcIANBATYCECADQbztxwA2AgwgA0IENwIUIANBDGoQlQchASAAQYGAgIB4NgIAIAAgATYCBAwBCyAFQQhxBEACQCACIARLBEADQCABIARqLQAARQ0CIAIgBEEBaiIERw0ACwsgAEGAgICAeDYCAAwCCyAEQQFqIQQLAkAgBUEQcUUNACACIARLBEADQCABIARqLQAARQRAIARBAWohBAwDCyACIARBAWoiBEcNAAsLIABBgICAgHg2AgAMAQsCQAJAIAVBAnEEQCACIARBAmoiBEkNAQsgAiAESw0BIABBgICAgHg2AgAMAgsgAEGAgICAeDYCAAwBC0EEEHEiBUUNASAFQQRrIgYtAABBA3EEQCAFQQA2AAALIANBDGoiB0EAQYHSAPwLACADQaDSAGogByABIARqIAIgBGsgBUEEQQBBBhBEIAMgAy0ApFIiAToAk1ICQAJAAkACQCABDgMBAgEACyABQf8BRwRAIANBATYCpFIgA0GY98cANgKgUiADQgE3AqxSIAMgA0GT0gBqrUKAgICA4ASENwO4UiADIANBuNIAajYCqFIgA0GU0gBqIgEgA0Gg0gBqELEGIAEQkAchASAAQYGAgIB4NgIAIAAgATYCBAwDCyAAQQA2AgggAEKAgICAEDcCAAwCCyADKAKoUiEBIAAgBTYCBCAAQQQ2AgAgAEEEIAEgAUEETxs2AggMAgsgAEGAgICAeDYCAAsgBigCACIAQXhxIgFBCEEMIABBA3EiABtJDQIgAEEAIAFBLE8bDQMgBRCiAgsgA0HA0gBqJAAPCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC64DAhp9A3xDAACAPyEMRAAAAAAAAPA/RAAAAODTDtU/IhujIhxEAAAAAAAA8D9EAAAAwJoD1D8iHaEgG6GitiELQwAAgD8hDUMAAIA/IQFDmpkZPiIIQ8P1qD4iA5QiDkMAAIA/Q5qZmT4iCZNDmpkZPyIEkyIClCAJQ4/CdT0iBZQiD0MAAIA/QwrXIz8iCpMgA5MiBpQgCiAElCIQQwAAgD8gCJMgBZMiB5SSkiAIIASUIhEgBpSTIAkgA5QiEiAHlJMgCiAFlCITIAKUkyIUQwAAAABcBEAgECASk0MAAIA/IBSVIgGUIQwgDiATkyABlCEVIA8gEZMgAZQhFiAJIAaUIAogApSTIAGUIRcgAyAClCAEIAaUkyABlCEYIAogB5QgCCAGlJMgAZQhDSAFIAaUIAMgB5STIAGUIRkgCCAClCAJIAeUkyABlCEaIAQgB5QgBSAClJMgAZQhAQsgACAFIBggHCAdorYiApQgF5IgDCALlJKUOAIMIAAgBCAZIAKUIA2SIBUgC5SSlDgCCCAAIAMgASAClCAaIBYgC5SSkpQ4AgQgAEEBNgIAC5kFAgZ/AX4CQCABKAIIIgIgASgCBCIETw0AIAEoAgAgAmotAABB9QBHDQBBASEHIAEgAkEBaiICNgIICwJAAkAgAiAESQRAIAEoAgAiBiACai0AAEEwayIDQf8BcSIFQQpJDQELDAELIAEgAkEBaiICNgIIAkACQCAFRQRAQQAhAwwBCyADQf8BcSEDA0AgAiAERgRAIAQhAgwDCyACIAZqLQAAQTBrQf8BcSIFQQlLDQEgASACQQFqIgI2AgggA61CCn4iCEIgiFAEQCAFIAinIgVqIgMgBU8NAQsLDAILIAIgBE8NACACIAZqLQAAQd8ARw0AIAEgAkEBaiICNgIICwJAAkACQAJAIAIgAiADaiIFTQRAIAEgBTYCCCAEIAVJDQUgAkUNAiACIARJDQEMAgsMBAsgAiAGaiwAAEG/f0wNAQsgBUUgBCAFTXJFBEAgBSAGaiwAAEG/f0wNAQsgAiAGaiEEIAcNASAAQgE3AgggACADNgIEIAAgBDYCAA8LIAYgBCACIAVBuLLFABC7CQALIAIgBmpBAWshBiADIQECfwNAIAEiAkUEQEEAIQEgBCEFQQEMAgsgAkEBayEBIAIgBmotAABB3wBHDQALAkACQCABRQ0AAkAgASADTwRAIAEgA0cNASACDQJBACEGDAMLIAEgBGosAABBv39KDQELIAQgA0EAIAFByLLFABC7CQALAkAgAiADTwRAIAMhBiACIANHDQEMAgsgAiAEaiwAAEG/f0wNACACIQYMAQsgBCADIAIgA0HYssUAELsJAAsgBCAGaiEFIAMgBmshAyAECyECIANFBEAMAQsgACADNgIMIAAgBTYCCCAAIAE2AgQgACACNgIADwsgAEEANgIAIABBADoABAvbBQIKfwF+IwBBIGsiAyQAAn8CQAJAIAIEQANAIAEgBWosAABBAE4EQCAFQQFqIgUgAkcNAQwDCwsgA0EANgIQIANCgICAgBA3AwggA0EIakEAIAIQ7wUgAygCECEFIAEhByACIQgDQCAFIQYgBywAACIEQQBIBEAgBEH/AHFBAnQoApysSSEEC0EBQQJBAyAEQYAQSSIMGyAEQYABSSIJGyIKIAMoAgggBWtLBH8gA0EIaiAFIAoQ7wUgAygCEAUgBgsgAygCDGohBgJAIAlFBEAgBEEGdiEJIARBP3FBgH9yIQsgDARAIAYgCzoAASAGIAlBwAFyOgAADAILIAYgCzoAAiAGIAlBgAFyOgABIAYgBEEMdkHgAXI6AAAMAQsgBiAEOgAACyADIAUgCmoiBTYCECAHQQFqIQcgCEEBayIIDQALIAMpAwghDUEADAMLIANBADYCECADIAE2AgwMAQsgA0EIaiIGIAEgAhD7AiADKAIIRQ0AIAMgAykCDCINQiCIPgIYIAMgDT4CFCADIAI2AhAgAyABNgIMIAMgAjYCCEHY5sgAQSsgBkG4msgAQciayAAQ4AYACyACrSABrUIghoQhDSACIQVBAQshByANQiCIpyEEAkACQAJAAkACQAJAAkAgBSANpyIITw0AIAVFBEAgBEEEaygCACIGQXhxIgpBBEEIIAZBA3EiBhsgCGpJDQIgBkEAIAogCEEnaksbDQMgBBCiAkEBIQQMAQsgBCAIQQEgBRC7AiIERQ0DCyACRSAHcg0FIAFBBGsoAgAiB0F4cSIIQQRBCCAHQQNxIgcbIAJqSQ0DIAdBACAIIAJBJ2pLGw0EIAEQogIMBQtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgACAFNgIEIAAgBDYCACADQSBqJAALpAQBB38CQAJAIAAoAjgiBQRAIAAoAjQgBUECdEELakF4cSIBayIEQQRrKAIAIgJBeHEiAyABIAVqQQlqIgFBBEEIIAJBA3EiAhtqSQ0BIAJBACADIAFBJ2pLGw0CIAQQogILIAAoAiwhAiAAKAIwIgYEQCACIQEDQCABQawBaigCACIHBEAgAUGoAWooAgAiBUEEaygCACIDQXhxIgRBBEEIIANBA3EiAxsgB2pJDQMgA0EAIAQgB0EnaksbDQQgBRCiAgsgARDqAyABQbgBaiEBIAZBAWsiBg0ACwsgACgCKCIDBEAgAkEEaygCACIBQXhxIgQgA0G4AWwiA0EEQQggAUEDcSIBG2pJDQEgAUEAIAQgA0EnaksbDQIgAhCiAgsgACgCTCIEBEAgACgCSCIDQQRrKAIAIgJBeHEiAUEEQQggAkEDcSICGyAEakkNASACQQAgASAEQSdqSxsNAiADEKICCwJAIAAoAmAiBEUNACAAKAJkIgNFDQAgBEEEaygCACICQXhxIgFBBEEIIAJBA3EiAhsgA2pJDQEgAkEAIAEgA0EnaksbDQIgBBCiAgsCQCAAQX9GDQAgACAAKAIEIgJBAWs2AgQgAkEBRw0AIABBBGsoAgAiAUF4cUHsAEHwACABQQNxIgIbSQ0BIAJBACABQZABTxsNAiAAEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC6kTAxh/BX4BeyMAQSBrIhMkACABKQMQIAEpAxggAigCBCIWIAIoAggiGRCVBCEeIAEoAghFBEACQCABQRBqIRAjAEEgayIMJAACQAJAAkAgASgCDCIUQQFqIgQEQAJAIAEoAgQiCiAKQQFqIhFBA3YiCEEHbCIXIApBCEkbIgVBAXYgBEkEQAJAAkACQAJAAn8gBUEBaiIFIAQgBCAFSRsiBUEPTwRAIAVB/////wFLDQtBfyAFQQN0QQduQQFrZ3ZBAWoMAQtBBCAFQQhxQQhqIAVBBEkbCyIHrUIYfiIcQiCIpw0AIBynIgQgB0EIaiIIaiIFIARJIAVB+P///wdLcg0AIAUQcSIFRQ0BIAQgBWohCyAIBEAgC0H/ASAI/AsACyAHQQFrIg8gB0EDdkEHbCAPQQhJGyEVIAEoAgAhByAUDQJBACEUDAMLIAxBADYCGCAMQQE2AgwgDEHEtcQANgIIIAxCBDcCECAMQQhqQZi1xAAQjQgLAAsgC0EIaiEXIAdBGGshGCAHKQMAQn+FQoCBgoSIkKDAgH+DIR0gECkDCCEfIBApAwAhIEEAIQUgFCEGIAchCANAIB1QBEADQCAFQQhqIQUgCEEIaiIIKQMAQoCBgoSIkKDAgH+DIhxCgIGChIiQoMCAf1ENAAsgHEKAgYKEiJCgwIB/hSEdCyALIA8gICAfIBggHXqnQQN2IAVqIhBBaGxqIgRBBGooAgAgBEEIaigCABCVBKciCXEiBGopAABCgIGChIiQoMCAf4MiHFAEQEEIIQ0DQCAEIA1qIQQgDUEIaiENIAsgBCAPcSIEaikAAEKAgYKEiJCgwIB/gyIcUA0ACwsgHUIBfSAdgyEdIAsgHHqnQQN2IARqIA9xIgRqLAAAQQBOBEAgCykDAEKAgYKEiJCgwIB/g3qnQQN2IQQLIAQgC2ogCUEZdiIJOgAAIBcgBEEIayAPcWogCToAACALIARBf3NBGGxqIglBEGogByAQQX9zQRhsaiIEQRBqKQAANwAAIAkgBP0AAAD9CwAAIAZBAWsiBg0ACwsgASAPNgIEIAEgCzYCACABIBUgFGs2AgggCkUNASAKIApBGGxBH2pBeHEiBWpBCWoiBkUNASAHIAVrIgRBBGsoAgAiBUF4cSIIQQRBCCAFQQNxIgUbIAZqSQ0DIAVBACAIIAZBJ2pLGw0EIAQQogIMAQsgASARBH8gASgCACEJAkACQCAIIBFBB3FBAEdqIgZBAkkEQCAGIQgMAQsgBkEBcSEIIAZB/v///wNxIgdBA3QhDSAHIQQgCSEFA0AgBSAF/QADACIh/U1BB/3NAf0MAQEBAQEBAQEBAQEBAQEBAf1OICH9DH9/f39/f39/f39/f39/f3/9UP3OAf0LAwAgBUEQaiEFIARBAmsiBA0ACyAGIAdGDQELIAkgDWohBQNAIAUgBSkDACIcQn+FQgeIQoGChIiQoMCAAYMgHEL//v379+/fv/8AhHw3AwAgBUEIaiEFIAhBAWsiCA0ACwsCQCARQQhPBEAgCSARaiAJKQAANwAADAELIBFFDQAgCUEIaiAJIBH8CgAACyAJQQhqIQsgECkDCCEfIBApAwAhIEEBIQRBACEFA0AgBSEIIAQhBQJAIAggCWoiDy0AAEGAAUcNACAJIAhBf3NBGGxqIQ4gCSAIQWhsaiIEQRBrIRggBEEUayEQA0AgCiAgIB8gECgCACAYKAIAEJUEpyIVcSIHIQYgByAJaikAAEKAgYKEiJCgwIB/gyIdUARAQQghDQNAIAYgDWohBCANQQhqIQ0gCSAEIApxIgZqKQAAQoCBgoSIkKDAgH+DIh1QDQALCyAJIB16p0EDdiAGaiAKcSIGaiwAAEEATgRAIAkpAwBCgIGChIiQoMCAf4N6p0EDdiEGCyAGIAdrIAggB2tzIApxQQhPBEAgBiAJaiIELQAAIAQgFUEZdiIEOgAAIAsgBkEIayAKcWogBDoAACAJIAZBf3NBGGxqIQZB/wFGBEAgD0H/AToAACALIAogCEEIa3FqQf8BOgAAIAZBEGogDkEQaikAADcAACAGIA79AAAA/QsAAAwDCyAOKQAAIRwgDiAGKQAANwAAIAYgHDcAACAGKQAIIRwgBiAOKQAINwAIIA4gHDcACCAOKAAQIQcgDiAGKAAQNgAQIAYoABQhBCAGIA4oABQ2ABQgDiAENgAUIAYgBzYAEAwBCwsgDyAVQRl2IgQ6AAAgCyAKIAhBCGtxaiAEOgAACyAFIAUgEUkiCGohBCAIDQALIAogFyAKQQhJGwVBAAsgFGs2AggLIAxBIGokAAwECwwCC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgDEEANgIYIAxBATYCDCAMQcS1xAA2AgggDEIENwIQIAxBCGpBmLXEABCNCAALCyABKAIEIgggHqdxIQcgHkIZiCIfQv8Ag0KBgoSIkKDAgAF+ISAgASgCACEEA0ACQAJAAkACQAJAAkAgBCAHaikAACIeICCFIhxCf4UgHEKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIcUEUEQANAIAQgHHqnQQN2IAdqIAhxQWhsaiIFQRBrKAIAIBlGBEAgFiAFQRRrKAIAIBkQ2wdFDQMLIBxCAX0gHIMiHFBFDQALCyAeQoCBgoSIkKDAgH+DIRwgGkUEQCAcUA0DIBx6p0EDdiAHaiAIcSESCyAcIB5CAYaDUARAQQEhGgwGCyAEIBJqLAAAIgdBAE4EQCAEIAQpAwBCgIGChIiQoMCAf4N6p0EDdiISai0AACEHCyAEIBJqIB+nQf8AcSIFOgAAIAQgEkEIayAIcWpBCGogBToAACATQRBqIgUgAkEIaigCADYCACATQRxqIANBCGooAgA2AgAgASABKAIIIAdBAXFrNgIIIAEgASgCDEEBajYCDCAEIBJBaGxqQRhrIgEgAikCADcCACATIAMpAgA3AhQgAUEIaiAFKQMANwIAIAFBEGogE0EYaikDADcCACAAQYCAgIB4NgIADAELIAAgBUEMayIBKQIANwIAIAEgAykCADcCACAAQQhqIAFBCGoiACgCADYCACAAIANBCGooAgA2AgAgAigCACICRQ0AIBZBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIAJqSQ0CIABBACABIAJBJ2pLGw0DIBYQogILIBNBIGokAA8LQQAhGgwCC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgG0EIaiIbIAdqIAhxIQcMAAsAC44FAgx/A34jAEGgAWsiCCQAIAhBAEGgAfwLAAJAAkAgAiAAKAKgASIFTQRAIAVBKU8NAiAFQQFqIQwgBUECdCEJIAEgAkECdGohDQJAA0AgCCAGQQJ0aiEDA0AgBiECIAMhBCABIA1GDQQgA0EEaiEDIAJBAWohBiABKAIAIQcgAUEEaiILIQEgB0UNAAsgB60hEUIAIQ8gCSEHIAIhASAAIQMDQCABQShPDQIgBCAPIAQ1AgB8IAM1AgAgEX58IhA+AgAgEEIgiCEPIARBBGohBCABQQFqIQEgA0EEaiEDIAdBBGsiBw0ACwJAIAogEEKAgICAEFoEfyACIAVqIgFBKE8NASAIIAFBAnRqIA8+AgAgDAUgBQsgAmoiASABIApJGyEKIAshAQwBCwsgAUEoQYyDwgAQjAcACyABQShBjIPCABCMBwALIAJBAWohDSACQQJ0IQwgACAFQQJ0aiEOIAAhAwJAA0AgCCAHQQJ0aiEGA0AgByELIAYhBCADIA5GDQMgBEEEaiEGIAdBAWohByADKAIAIQkgA0EEaiIFIQMgCUUNAAsgCa0hEUIAIQ8gDCEJIAshAyABIQYDQCADQShPDQIgBCAPIAQ1AgB8IAY1AgAgEX58IhA+AgAgEEIgiCEPIARBBGohBCADQQFqIQMgBkEEaiEGIAlBBGsiCQ0ACwJAIAogEEKAgICAEFoEfyACIAtqIgNBKE8NASAIIANBAnRqIA8+AgAgDQUgAgsgC2oiAyADIApJGyEKIAUhAwwBCwsgA0EoQYyDwgAQjAcACyADQShBjIPCABCMBwALIAAgCEGgAfwKAAAgACAKNgKgASAIQaABaiQADwtBACAFQShBjIPCABDqBwALpQUCBX8EfgJAAkACQAJAAkAgAkUEQEEBIQUMAQsgAhBxIgVFDQEgBUEEay0AAEEDcUUgAkVyDQAgBUEAIAL8CwALIAEoAgQiA60hCCADQv////8PIAEpAwgiCSAJQv////8PWhunayIEQQAgAyAETxsgAk8EQCABKAIAIAkgCCAIIAlWG6dqIQMgAkEBRwRAIAJFDQMgBSADIAL8CgAADAMLIAUgAy0AADoAAAwCC0GokMgAKQMAIgtCCIghCiALpyEDIAtC/wGDQgRSDQMMAgsAC0EEIQMLIAkgAq18IQgLIAEgCDcDCAJAAkACQAJAIANB/wFxIgZBBEcEQCAKQhiIpyEBIAqnIgchBAJAAkACQAJAIAZBAWsOAwEAAgMLIAEtAAghBAsgBEH/AXFBJUcNASAAQTI2AgggAEHfi8EANgIEIABBgICAgHg2AgAMBAsgAS0ACEElRg0CCyAAIAE2AgggAEGBgICAeDYCACAAIANB/wFxIAdBCHRyNgIEDAILIAAgAjYCCCAAIAU2AgQgAEGGgICAeDYCAA8LIABBMjYCCCAAQd+LwQA2AgQgAEGAgICAeDYCACABKAIAIQAgAUEEaigCACIDKAIAIgQEQCAAIAQRAwALIAMoAgQiAwRAIABBBGsoAgAiBEF4cSIGQQRBCCAEQQNxIgQbIANqSQ0CIARBACAGIANBJ2pLGw0DIAAQogILIAFBBGsoAgAiAEF4cSIDQRBBFCAAQQNxIgAbSQ0BIABBACADQTRPGw0CIAEQogILIAIEQCAFQQRrKAIAIgBBeHEiAUEEQQggAEEDcSIAGyACakkNASAAQQAgASACQSdqSxsNAiAFEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC40EAQd/AkACQCAAKAIAIgEEQCAAKAIEIgRBBGsoAgAiAkF4cSIDIAFBJGwiAUEEQQggAkEDcSICG2pJDQEgAkEAIAMgAUEnaksbDQIgBBCiAgsgACgCECECIAAoAhQiBQRAIAIhAQNAIAFBFGooAgAiBEEFTwRAIAFBCGooAgAiBkEEaygCACIDQXhxIgcgBEECdCIEQQRBCCADQQNxIgMbakkNAyADQQAgByAEQSdqSxsNBCAGEKICCyABQRhqIQEgBUEBayIFDQALCyAAKAIMIgMEQCACQQRrKAIAIgFBeHEiBCADQRhsIgNBBEEIIAFBA3EiARtqSQ0BIAFBACAEIANBJ2pLGw0CIAIQogILIAAoAhgiAQRAIAAoAhwiBEEEaygCACICQXhxIgMgAUESbCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAIkIgEEQCAAKAIoIgRBBGsoAgAiAkF4cSIDIAFBHmwiAUEEQQggAkEDcSICG2pJDQEgAkEAIAMgAUEnaksbDQIgBBCiAgsgACgCMCICBEAgACgCNCIDQQRrKAIAIgBBeHEiASACQSpsIgJBBEEIIABBA3EiABtqSQ0BIABBACABIAJBJ2pLGw0CIAMQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALjQQBB38CQAJAIAAoAgAiAQRAIAAoAgQiBEEEaygCACICQXhxIgMgAUEYbCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAIQIQIgACgCFCIFBEAgAiEBA0AgAUEUaigCACIEQQVPBEAgAUEIaigCACIGQQRrKAIAIgNBeHEiByAEQQJ0IgRBBEEIIANBA3EiAxtqSQ0DIANBACAHIARBJ2pLGw0EIAYQogILIAFBGGohASAFQQFrIgUNAAsLIAAoAgwiAwRAIAJBBGsoAgAiAUF4cSIEIANBGGwiA0EEQQggAUEDcSIBG2pJDQEgAUEAIAQgA0EnaksbDQIgAhCiAgsgACgCGCIBBEAgACgCHCIEQQRrKAIAIgJBeHEiAyABQQlsIgFBBEEIIAJBA3EiAhtqSQ0BIAJBACADIAFBJ2pLGw0CIAQQogILIAAoAiQiAQRAIAAoAigiBEEEaygCACICQXhxIgMgAUEPbCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAIwIgIEQCAAKAI0IgNBBGsoAgAiAEF4cSIBIAJBFWwiAkEEQQggAEEDcSIAG2pJDQEgAEEAIAEgAkEnaksbDQIgAxCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvLBQIGfwN+IwBBgAFrIgQkACABvCEGAn9BAyABi0MAAIB/Ww0AGkECIAZBgICA/AdxIgVBgICA/AdGDQAaIAZB////A3EiCEGAgIAEciAGQQF0Qf7//wdxIAZBF3ZB/wFxIgcbIgmtIgpCAYMhCyAFRQRAQQQgCEUNARogB0GWAWshB0IBIQwgC1AMAQtCgICAECAKQgGGIAlBgICABEYiCBshCkICQgEgCBshDEHofkHpfiAIGyAHaiEHIAtQCyEFIAQgBzsBeCAEIAw3A3AgBEIBNwNoIAQgCjcDYCAEIAU6AHoCfwJAAkACQAJAAkAgBUH/AXFBAU0EQCADQf//A3EhA0Hqs8UAQQEgBkEASCIFGyEHQeqzxQBByIHCACAFGyEFIAZBH3YhBiAEQSBqIARB4ABqIARBD2oQzwEgBCgCIEUNASAEQdgAaiAEQShqKAIANgIAIAQgBCkCIDcDUAwCCyAFQf8BcSIIQQJGDQJBASEFQeqzxQBByIHCACAGQQBIIgcbQeqzxQBBASAHGyACGyEHQQEgBkEfdiACGyEGIAhBBEcNA0ECIQUgBEECOwEgIANB//8DcQ0EQQEhBSAEQQE2AiggBEGYsMUANgIkIARBIGoMBQsgBEHQAGogBEHgAGogBEEPahBXCyAFIAcgAhshB0EBIAYgAhshBiAEIAQoAlAgBCgCVCAELwFYIAMgBEEgahDsBCAEKAIEIQUgBCgCAAwDCyAEQQM2AiggBEHzncYANgIkIARBAjsBIEEBIQdBACEGQQEhBSAEQSBqDAILIARBAzYCKCAEQeydxgA2AiQgBEECOwEgIARBIGoMAQsgBEEBNgIwIARBADsBLCAEQQI2AiggBEG5g8IANgIkIARBIGoLIQIgBCAFNgJcIAQgAjYCWCAEIAY2AlQgBCAHNgJQIAAgBEHQAGoQvgMgBEGAAWokAAv3BAEIfwJAIAMtAAMiByADLQAEIgtrIgggCEEfdSIIcyAIa0EBdCADLQACIgggAy0ABSIKayIEIARBH3UiBXMgBWtBAXZqIAJB/wFxSw0AIAFB/wFxIgEgAy0AACADLQABIgJrIgUgBUEfdSIFcyAFa0kNACABIgUgAiAIayIGIAZBH3UiBnMgBmtB/wFxSQ0AIAUgCCAHayIGIAZBH3UiBnMgBmsiBkH/AXFJDQAgBSADLQAHIAMtAAYiBWsiCSAJQR91IglzIAlrSQ0AIAEgBSAKayIJIAlBH3UiCXMgCWtB/wFxSQ0AIAEgCiALayIBIAFBH3UiAXMgAWsiAUH/AXFJDQAgAEH/AXEiACAGQf8BcU8gAUH/AXEgAE1xRQRAQQEgAxDiBRoPCyADQf8BIAVB/wBBgH8gCyAHa0EDbEH/AEGAfyAEIARBgH9MGyIAIABB/wBOG2oiACAAQYB/TBsiACAAQf8AThsiAEEJbEE/akEHdSIBayIEQQAgBEEAShsiBCAEQf8BThs6AAYgA0H/AEGAfyAKIABBEmxBP2pBB3UiCmtBgAFrIgQgBEGAf0wbIgQgBEH/AE4bQYABczoABSADQf8AQYB/IAcgAEEbbEE/akEHdSIAakGAAWsiByAHQYB/TBsiByAHQf8AThtBgAFzOgADIANB/wBBgH8gCyAAa0GAAWsiACAAQYB/TBsiACAAQf8AThtBgAFzOgAEIANB/wBBgH8gCCAKakGAAWsiACAAQYB/TBsiACAAQf8AThtBgAFzOgACIANB/wBBgH8gASACakGAAWsiACAAQYB/TBsiACAAQf8AThtBgAFzOgABCwvDBQIHfwF7IwBB0NEAayIDJABBASEHAkACQAJAIAJBAXQiBEEATgRAAkAgAkUNACAEEHEiB0UNAiAHQQRrLQAAQQNxRSAERXINACAHQQAgBPwLAAsgAyAENgIMIAMgBzYCCCADIAQ2AgRBhNIAEHEiBUUNASAFQQA2AuRRIAVB6NEAakEAOwEAIANBkM8AakEAQcAC/AsAIAVB/NEAakEANgAAIAX9DAAAAAAAAAAAAAAAAAAAAAD9CwDtUSADQRBqIgZBAEGAzwD8CwAgBSAGQcDRAPwKAAAgBUHg0QBqQQA2AgAgBUHQ0QBqIAr9CwIAIAUgCv0LAsBRIAVBADoAgFIgBUEAOgDsUSAFQQA7AepRA0AgA0EQaiAFIAEgAiAHIAQgCEEEEEQgAygCGCAIaiEIIAMtABQiBkECRwRAIAYEQCAAIAMpAgQ3AgAgACAGOgAMIABBCGogA0EMaigCADYCAAwGCyAEIAhPBEAgAyAINgIMCyAAIAMpAgQ3AgQgAEGAgICAeDYCACAAQQxqIANBDGooAgA2AgAMBQsgAiADKAIQIgZJDQMgASAGaiEBIAIgBmshAiADIAQEfyAEIQYgAygCBCAEayAESQRAIANBBGogBCAEEPgFIAMoAgghByADKAIMIQYLIAYgB2ohCSAEQQFHBH8gBEEBayIEBEAgCUEAIAT8CwALIAcgBCAGaiIGagUgCQtBADoAACAGQQFqBSAEQQF0CyIENgIMDAALAAtBwPzEABD/BwsACyAAIAMpAgQ3AgAgAEECOgAMIABBCGogA0EMaigCADYCAAsCQCAFQQRrKAIAIgBBeHEiAUGI0gBBjNIAIABBA3EiABtPBEAgAEEAIAFBrNIATxsNASAFEKICIANB0NEAaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALowUBCH8CQAJAAkACQAJAAkACQCABIAIgAyAEIAUgBhDAAwRAIAUgBkEBdCIIayIBIARPDQIgBSAGayICIARPDQMgAEH/AXEiDCABIANqIgotAAAiASACIANqIgstAAAiAmsiByAHQR91IgdzIAdrSQ0GIAUgBmoiByAETw0EIAQgBU0NBSAMIAMgB2oiDS0AACIHIAMgBWoiDi0AACIJayIAIABBH3UiAHMgAGtJDQYgBkF9bCAFaiIAIARPDQcgBSAIaiIFIARPDQEgACADaiIELQAAIQYgAyAFaiIDLQAAIQUgDkH/AEGAfyAJQf8AQYB/IAkgAmtBA2xB/wBBgH8gASAHayIAIABBgH9MGyIAIABB/wBOG2oiACAAQYB/TBsiACAAQf8AThsiAEEbbEE/akEHdSIJa0GAAWsiCCAIQYB/TBsiCCAIQf8AThtBgAFzOgAAIAtB/wBBgH8gAiAJakGAAWsiAiACQYB/TBsiAiACQf8AThtBgAFzOgAAIA1B/wBBgH8gByAAQRJsQT9qQQd1IgJrQYABayIHIAdBgH9MGyIHIAdB/wBOG0GAAXM6AAAgCkH/AEGAfyABIAJqQYABayIBIAFBgH9MGyIBIAFB/wBOG0GAAXM6AAAgA0H/AEGAfyAFIABBCWxBP2pBB3UiAGtBgAFrIgEgAUGAf0wbIgEgAUH/AE4bQYABczoAACAEQf8AQYB/IAAgBmpBgAFrIgAgAEGAf0wbIgAgAEH/AE4bQYABczoAAAsPCyAFIARB2NfEABCMBwALIAEgBEHo18QAEIwHAAsgAiAEQfjXxAAQjAcACyAHIARBiNjEABCMBwALIAUgBEGY2MQAEIwHAAtBASADIAQgBSAGEOgEGg8LIAAgBEHI18QAEIwHAAvMBQIGfwJ+AkAgAkUNACACQQdrIgNBACACIANPGyEHIAFBA2pBfHEgAWshCEEAIQMDQAJAAkACQCABIANqLQAAIgXAIgZBAE4EQCAIIANrQQNxDQEgAyAHTw0CA0AgASADaiIEQQRqKAIAIAQoAgByQYCBgoR4cQ0DIANBCGoiAyAHSQ0ACwwCC0KAgICAgCAhCkKAgICAECEJAkACQAJ+AkACQAJAAkACQAJAAkACQAJAIAUtAPSWQkECaw4DAAECCgsgA0EBaiIEIAJJDQJCACEKQgAhCQwJC0IAIQogA0EBaiIEIAJJDQJCACEJDAgLQgAhCiADQQFqIgQgAkkNAkIAIQkMBwsgASAEaiwAAEG/f0oNBgwHCyABIARqLAAAIQQCQAJAIAVB4AFrIgUEQCAFQQ1GBEAMAgUMAwsACyAEQWBxQaB/Rg0EDAMLIARBn39KDQIMAwsgBkEfakH/AXFBDE8EQCAGQX5xQW5HDQIgBEFASA0DDAILIARBQEgNAgwBCyABIARqLAAAIQQCQAJAAkACQCAFQfABaw4FAQAAAAIACyAGQQ9qQf8BcUECSyAEQUBOcg0DDAILIARB8ABqQf8BcUEwTw0CDAELIARBj39KDQELIAIgA0ECaiIETQRAQgAhCQwFCyABIARqLAAAQb9/Sg0CQgAhCSADQQNqIgQgAk8NBCABIARqLAAAQUBIDQVCgICAgIDgAAwDC0KAgICAgCAMAgtCACEJIANBAmoiBCACTw0CIAEgBGosAABBv39MDQMLQoCAgICAwAALIQpCgICAgBAhCQsgACAKIAOthCAJhDcCBCAAQQE2AgAPCyAEQQFqIQMMAgsgA0EBaiEDDAELIAIgA00NAANAIAEgA2osAABBAEgNASACIANBAWoiA0cNAAsMAgsgAiADSw0ACwsgACACNgIIIAAgATYCBCAAQQA2AgALiwUCB38CewJAAn8CQCABKAIgIgUgA00EQCACIANqIgggBWshByADIAVIBEAgAiEEDAILIAH9AAQQIQsgAf0ABAAhDCABLQAlIQkgAS0AJCEGIAIhBANAIAQgBmr9AAAAIAz9IyAEIAlq/QAAACAL/SP9Tv1kIgoEQCAKaCAEIAJragwECyAHIARBEGoiBE8NAAsMAQsgA0UNAiABLQA0IQUCQAJAAkAgA0EETwRAQYCChAggBUGBgoQIbCIHIAIoAABzIgRrIARyQYCBgoR4cUGAgYKEeEcEQCACIQQDQCAFIAQtAABGDQUgBEEBaiEEIANBAWsiAw0ACwwHCyACQQQgAkEDcSIIayIGaiEEIANBCUkNASAEIAIgA2oiA0EIayIISw0CA0BBgIKECCAEKAIAIAdzIgZrIAZyQYCBgoR4cUGAgYKEeEcNA0GAgoQIIARBBGooAgAgB3MiBmsgBnJBgIGChHhxQYCBgoR4Rw0DIARBCGoiBCAITQ0ACwwCCyAFIAIiBC0AAEYNAiADQQFGDQUgBC0AASAFRgRAIARBAWohBAwDCyADQQJGDQUgBSACLQACRw0FIAJBAmohBAwCCyADIAZNDQQgAyAIakEEayEDA0AgBSAELQAARg0CIARBAWohBCADQQFrIgMNAAsMBAsgAyAETQ0DA0AgBSAELQAARg0BIARBAWoiBCADRw0ACwwDCyAEIAJrIgIgAS0ANWsiAUEAIAEgAk0bDAELQQAhCSAEIAhPDQEgByABLQAkav0AAAAgAf0ABAD9IyAHIAEtACVq/QAAACAB/QAEEP0j/U79ZCIERQ0BIARoIAMgBWtqCyEEQQEhCQsgACAENgIEIAAgCTYCAAuLBQEQfyMAQRBrIgokAAJAIAEoAhAiBiABKAIMIgNJDQAgBiABKAIIIg5LDQAgASgCBCELIAFBFGoiECABLQAYIgdqQQFrLQAAIQgCQCAHQQVPBEADQCADIAtqIQQCQCAGIANrIgVBB00EQCADIAZGDQRBACECA0AgAiAEai0AACAIRg0CIAUgAkEBaiICRw0ACwwECyAKQQhqIAggBCAFEIcFIAooAghBAXFFDQMgCigCDCECCyABIAIgA2pBAWoiAzYCDCADIA5NIAMgB09xRQRAIAMgBk0NAQwECwtBACAHQQRB5LjHABDqBwALIAhBgYKECGwhDwNAIAMgC2ohBQJAAkACQAJAIAYgA2siCUEITwRAIAVBA2pBfHEiAiAFRg0BIAIgBWshBEEAIQIDQCACIAVqLQAAIAhGDQUgBCACQQFqIgJHDQALIAQgCUEIayICSw0DDAILIAMgBkYNBUEAIQIDQCACIAVqLQAAIAhGDQQgAkEBaiICIAlHDQALDAULIAlBCGshAkEAIQQLA0BBgIKECCAEIAVqIgwoAgAgD3MiEWsgEXJBgIKECCAMQQRqKAIAIA9zIgxrIAxycUGAgYKEeHFBgIGChHhHDQEgBEEIaiIEIAJNDQALCyAEIAlGDQIgBCAFaiEFIAYgBGsgA2shCUEAIQIDQCAIIAIgBWotAABHBEAgAkEBaiICIAlHDQEMBAsLIAIgBGohAgsgASACIANqQQFqIgM2AgwCQCADIAdJIAMgDktyRQRAIAsgAyAHayICaiAQIAcQ2wdFDQELIAMgBk0NAQwDCwsgACADNgIIIAAgAjYCBEEBIQ0MAQsgASAGNgIMCyAAIA02AgAgCkEQaiQAC7oEAQR/AkACQAJAAkACQAJAAkACQAJAAkBBFSAAKAIAIgRBgICAgHhzIARBAE4bDhUHBwcHBwcHBwcHBwcBBwIHBwMHBAUACyAAKAIEIQIgACgCCCIABEAgAiEBA0AgARD+AiABQRBqEP4CIAFBIGohASAAQQFrIgANAAsLIARFDQYgAkEEaygCACIAQXhxIgMgBEEFdCIBQQRBCCAAQQNxIgAbckkNCCAARQ0FIAMgAUEnaksNBwwFCyAAKAIEIgNFDQUgACgCCCICQQRrKAIAIgBBeHEiAUEEQQggAEEDcSIAGyADakkNByAARSABIANBJ2pNcg0EDAYLIAAoAgQiA0UNBCAAKAIIIgJBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIANqSQ0GIABFIAEgA0Enak1yDQMMBQsgACgCBCICEP4CIAJBBGsoAgAiAUF4cUEUQRggAUEDcSIAG0kNBSAARSABQThJcg0CDAQLIAAoAgQiAhD+AiACQQRrKAIAIgFBeHFBFEEYIAFBA3EiABtJDQQgAEUgAUE4SXINAQwDCyAAKAIIIQIgACgCDCIDBEAgAiEBA0AgARD+AiABQRBqIQEgA0EBayIDDQALCyAAKAIEIgFFDQEgAkEEaygCACIAQXhxIgMgAUEEdCIBQQRBCCAAQQNxIgAbckkNAyAARSADIAFBJ2pNcg0ADAILIAIQogILDwtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALtAUCB38BeyAFQQNuIQwCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAQRAIAFBAnQiChBxIglFDQUCQCABQQRPBEAgACEIIAkhByABQXxxIgshBgNAIAcgCP0AAgAiDf0fABCJBP0TIA39HwEQiQT9IAEgDf0fAhCJBP0gAiAN/R8DEIkE/SAD/QsCACAIQRBqIQggB0EQaiEHIAZBBGsiBg0ACyABIAtGDQELIAEgC2shBiAAIAtBAnQiB2ohCCAHIAlqIQcDQCAHIAgqAgAQiQQ4AgAgCEEEaiEIIAdBBGohByAGQQFrIgYNAAsLIAVBA08NAQwCC0EEIQkgBUEDSQ0CC0EAIQhBACEHA0AgAyAITQ0HIAEgAiAIaiIALQAAIgZNDQggBSAHTQ0JIAQgCSAGQQJ0aioCADgCACAIQQFqIgYgA08NCiABIABBAWotAAAiBk0NCyAHQQFqIgogBU8NDCAEQQRqIAkgBkECdGoqAgA4AgAgCEECaiIGIANPDQ0gASAAQQJqLQAAIgBNDQ4gB0ECaiIGIAVPDQMgBEEIaiAJIABBAnRqKgIAOAIAIAhBBGohCCAEQQxqIQQgB0EDaiEHIAxBAWsiDA0ACyABQQJ0IQoLIAlBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIApqSQ0DIABBACABIApBJ2pLGw0EIAkQogILDwsgBiAFQbD2xwAQjAcLAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAggA0Gw9ccAEIwHAAsgBiABQcD1xwAQjAcACyAHIAVB0PXHABCMBwALIAYgA0Hg9ccAEIwHAAsgBiABQfD1xwAQjAcACyAKIAVBgPbHABCMBwALIAYgA0GQ9scAEIwHAAsgACABQaD2xwAQjAcAC6QFAwd/AX4BbyMAQTBrIgMkAAJAAn8CQCAAKAIAIgQlAUGBCCUBECNFBEBBAiAEELoKIgVBAEcgBUH///8HRiIFGyEIQQEhByAFDQFBAAwCCyADQQc6ABggA0EYaiABIAIQ0AUhAAwCCyADQRhqIAQQrwogAygCGARAIAMpAyAhCkEDDAELIANBGGogBCUBECQgAygCGCIFBEAgAygCHCIErSEKQQAhB0EFDAELAkACQCAEJQEQJQRAIANBGGogBBCrBiADKQIcIQogAygCGCEGDAELIAQlARAmRQ0BIAQlARAnIQsQ2gQiBCALJgEgA0EYaiAEEKsGIAMpAhwhCiADKAIYIQYgBEGECEkNACAEEJsHCyAGQYCAgIB4Rg0AIAqnIQVBASEJIApCIIghCkEGDAELIAMgAK1CgICAgIAEhDcDECADQgE3AiQgA0EBNgIcIANBoPjHADYCGCADIANBEGo2AiAgA0EEaiADQRhqEOwDQYCAgIB4IQYgAygCCCEFIAMoAgQhBCADNQIMIQpBACEHQRELIQAgAyAKNwMgIAMgBTYCHCADIAg6ABkgAyAAOgAYIANBGGogASACENAFIQACQAJAAkACQAJAIAlFBEAgByAERXINBgwBCyAGBEAgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBmpJDQIgAUEAIAIgBkEnaksbDQMgBRCiAgsgBEUgB3INBQsgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBGpJDQIgAUEAIAIgBEEnaksbDQMgBRCiAgwEC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIANBMGokACAAC+YFAQN/IwBBIGsiAyQAIAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAQ4oAgEBAQEBAQEBAwUBAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQgBAQEBBwALIAFB3ABGDQULIAJBAXFFIAFB/wVNcg0HIAEQ5QRFDQcgA0EOakEAOgAAIANBADsBDCADIAFBFHYtANy2RToADyADIAFBBHZBD3EtANy2RToAEyADIAFBCHZBD3EtANy2RToAEiADIAFBDHZBD3EtANy2RToAESADIAFBEHZBD3EtANy2RToAECABQQFyZ0ECdiICIANBDGoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgAkECayICakHcADoAACADQRRqIgQgAUEPcS0A3LZFOgAAIAAgAykBDDcAACADQf0AOgAVDAgLIABCADcBAiAAQdzgADsBAAwKCyAAQgA3AQIgAEHc6AE7AQAMCQsgAEIANwECIABB3OQBOwEADAgLIABCADcBAiAAQdzcATsBAAwHCyAAQgA3AQIgAEHcuAE7AQAMBgsgAkGAAnFFDQEgAEIANwECIABB3M4AOwEADAULIAJB////B3FBgIAETw0DCyABEOECDQEgA0EYakEAOgAAIANBADsBFiADIAFBFHYtANy2RToAGSADIAFBBHZBD3EtANy2RToAHSADIAFBCHZBD3EtANy2RToAHCADIAFBDHZBD3EtANy2RToAGyADIAFBEHZBD3EtANy2RToAGiABQQFyZ0ECdiICIANBFmoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgAkECayICakHcADoAACADQR5qIgQgAUEPcS0A3LZFOgAAIAAgAykBFjcAACADQf0AOgAfCyAAQQhqIAQvAQA7AABBCgwDCyAAIAE2AgBBgAEhAkGBAQwCCyAAQgA3AQIgAEHcxAA7AQALQQAhAkECCzoADSAAIAI6AAwgA0EgaiQAC9MEAgZ+BH8gACAAKAI4IAJqNgI4AkAgACgCPCILRQRADAELQQQhCQJ+QQggC2siCiACIAIgCksbIgxBBEkEQEEAIQlCAAwBCyABNQAACyEDIAwgCUEBcksEQCABIAlqMwAAIAlBA3SthiADhCEDIAlBAnIhCQsgACAAKQMwIAkgDEkEfiABIAlqMQAAIAlBA3SthiADhAUgAwsgC0EDdEE4ca2GhCIDNwMwIAIgCk8EQCAAIAApAxggA4UiBCAAKQMIfCIGIAApAxAiBUINiSAFIAApAwB8IgWFIgd8IgggB0IRiYU3AxAgACAIQiCJNwMIIAAgBiAEQhCJhSIEQhWJIAQgBUIgiXwiBIU3AxggACADIASFNwMADAELIAAgAiALajYCPA8LIAIgCmsiAkEHcSEJIAJBeHEiAiAKSwRAIAApAwghBCAAKQMQIQMgACkDGCEGIAApAwAhBQNAIAQgBiABIApqKQAAIgeFIgZ8IgQgAyAFfCIFIANCDYmFIgN8IgggA0IRiYUhAyAEIAZCEImFIgRCFYkgBCAFQiCJfCIFhSEGIAhCIIkhBCAFIAeFIQUgCkEIaiIKIAJJDQALIAAgAzcDECAAIAY3AxggACAENwMIIAAgBTcDAAtBBCECAn4gCUEESQRAQQAhAkIADAELIAEgCmo1AAALIQMgCSACQQFySwRAIAEgCmogAmozAAAgAkEDdK2GIAOEIQMgAkECciECCyAAIAIgCUkEfiABIAIgCmpqMQAAIAJBA3SthiADhAUgAws3AzAgACAJNgI8C5MFAwJ7BX8BfgJAAkACQEF/IAQtAL8CIgdBD3F0IgRB/wFxQf8BRwRAQf8BIARBf3MiC0H/AXFuIQhBASAHdEGWAnFFIAdBCEtyDQFBCCAHbq0gAa1+IgxCIIhQIAynIANJcQ0CIAAgAWohCQJAIAdBCEcEQCADRQ0BQQggB2shBEF/IQEDQCABQQBIBEAgACAJRg0HIAAtAAAhCiAEIQEgAEEBaiEACyACIAogAXYgC3EgCGw6AAAgASAHayEBIAJBAWohAiADQQFrIgMNAAsMAQsgAUUNACADIAFBAWsiASABIANLG0EBaiIBQRFPBEAgAiABIAFBD3EiAUEQIAEbayIBaiADIAFrIQMgACABaiEHIAj9DyEFA0AgAiAA/QAAACIG/RYAIAX9FgBs/Q8gBv0WASAF/RYBbP0XASAG/RYCIAX9FgJs/RcCIAb9FgMgBf0WA2z9FwMgBv0WBCAF/RYEbP0XBCAG/RYFIAX9FgVs/RcFIAb9FgYgBf0WBmz9FwYgBv0WByAF/RYHbP0XByAG/RYIIAX9Fghs/RcIIAb9FgkgBf0WCWz9FwkgBv0WCiAF/RYKbP0XCiAG/RYLIAX9Fgts/RcLIAb9FgwgBf0WDGz9FwwgBv0WDSAF/RYNbP0XDSAG/RYOIAX9Fg5s/RcOIAb9Fg8gBf0WD2z9Fw/9CwAAIABBEGohACACQRBqIQIgAUEQayIBDQALIQIgByEACwNAIANFDQEgAiAALQAAIAhsOgAAIAJBAWohAiADQQFrIQMgAEEBaiIAIAlHDQALCw8LQfSXxQAQgQgAC0Gwl8UAQTRB5JfFABDrBwALQYSWxQBB5QBB7JbFABDrBwALQfyWxQBBIkGgl8UAEKsHAAvkBAIIfwR9IAEoAggiCEUEQCAAQQA2AgAPCyABIAhBAWsiAjYCCCABKAIEIgMgAkEDdGoiASgCBCEFIAEqAgAhCgJAIAJFBEAgBSEJIAohDQwBCyADKAIEIQkgAyAFNgIEIAMqAgAhDSADIAo4AgBBACEBQQEhBCAIQQRPBEAgAkECayIBQQAgASACTRshB0EAIQIDQCADIAJBA3RqIAMgBCADIARBA3RqIgJBCGoqAgAiDCAMWyAMIAIqAgAiC2BFcSIBIAFBfyALIAxgGyALIAtcGyIBQQBMIAJBBGooAgAgAkEMaigCAE0gARtqIgFBA3RqKQIANwIAIAFBAXQiBkEBciEEIAEhAiAGIAdJDQALCwJAAkAgCEECayAERgRAIAMgAUEDdGogAyAEQQN0aiIBKQIANwIAIAEgBTYCBCABIAo4AgAgBCEBDAELIAMgAUEDdGoiAiAFNgIEIAIgCjgCACABDQBBACECDAELIAogClsEQANAIAMgAUEBayIGQQF2IgJBA3RqIgcqAgAiCyALWyAKIAtfRXFBfyAKIAtgGyIEQQBMIAUgB0EEaigCAE0gBBsEQCABIQIMAwsgAyABQQN0aiAHKQIANwIAIAIhASAGQQFLDQAMAgsACwNAAkAgAyABQQFrIgRBAXYiAkEDdGoiBioCACILIAtbIAogC19FcQ0AIAUgBkEEaigCAEsNACABIQIMAgsgAyABQQN0aiAGKQIANwIAIAIhASAEQQJPDQALCyADIAJBA3RqIgEgBTYCBCABIAo4AgALIAAgCTYCCCAAIA04AgQgAEEBNgIAC4kGAQV/IwBBIGsiAiQAQQEhBAJAAkACQAJAAkACQEEBIAAoAgAiA0H/////B2ogA0GAgICAeE0bQQFrDgQBAgMEAAsgASgCACIDQcSjxwBBAiABKAIEIgYoAgwiBREAAA0EIABBBGohAAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAURAAANBiAAIAEQrgINBiABKAIAIQMgASgCBCgCDCEFDAELIANB24HCAEECIAURAAANBSACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqEK4CDQUgAigCEEHZgcIAQQIgAigCFCgCDBEAAA0FCyADQd6OyABBASAFEQAAIQQMBAsgASgCACIDQcajxwBBDiABKAIEIgYoAgwiBREAAA0DAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0FIAAoAgQgACgCCCABELUCRQ0BDAULIANB24HCAEECIAURAAANBCACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACgCBCAAKAIIIAJBEGoQtQINBCACQdmBwgBBAhCvAw0ECyADQd6OyABBASAFEQAAIQQMAwsgASgCACIDQdSjxwBBEiABKAIEIgYoAgwiBREAAA0CAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0EIAAoAgQgACgCCCABELUCRQ0BDAQLIANB24HCAEECIAURAAANAyACQQE6AA8gAiAGNgIEIAIg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AkACQAJAAkACQAJAQRUgASgCACIDQYCAgIB4cyADQQBOG0EBaw4IAQIDBAUGBwgACyABIAJBH2pB6OfAABCVCCEBIABBAToAACAAIAE2AgQMCAsgAEEAOgAAIAAgAS0ABDoAAQwHCyABLwEEIgFB/wFNBEAgACABOgABIABBADoAAAwHCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwGCyABKAIEIgFB/wFNBEAgACABOgABIABBADoAAAwGCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwFCyABKQMIIgRC/wFYBEAgACAEPAABIABBADoAAAwFCyACQQE6AAggAiAENwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAEsAAQiAUEASARAIAJBAjoACCACIAGsNwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAAgAToAASAAQQA6AAAMAwsgAS8BBCIBQYACTwRAIAJBAjoACCACIAGtwzcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwDCyAAIAE6AAEgAEEAOgAADAILIAEoAgQiAUGAAk8EQCACQQI6AAggAiABrDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwCCyAAIAE6AAEgAEEAOgAADAELIAACfyABKQMIIgRCgAJaBEAgAkECOgAIIAIgBDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEQQEMAQsgACAEPAABQQALOgAACyACQSBqJAALxgQCBn8DfgJAIAEoAgBBAUYEQCABKQMQIgpQBEAMAgsgASgCGCIGKAIAIAYpAwgiCyAGKAIEIgWtIgwgCyAMVBunaiEHAkAgBUL/////DyALIAtC/////w9aG6drIgRBACAEIAVNGyIFIAogA60iDCAKIAxUG6ciBCAEIAVLGyIEQQFGBEAgAiAHLQAAOgAADAELIARFDQAgAiAHIAT8CgAACyABIAogBK0iCn03AxAgBiAKIAt8NwMIIARFBEBBACEEDAILQQEgBGshCCADQQFrIQYgASgCJCEJIAEoAiAhByABKAIoIQMDQAJAIAIgAi0AACADQQNy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KCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahDUASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2AjggAUEBNgIsIAFBqKPBADYCKCABQgQ3AjAgAUEoahCSByEDCyABQdAAaiQAIAML0wQCB38BfiMAQdAAayIBJAACQCAAEFwiAw0AIAAoAtwEIgJBgYCAgHhGIgRFBEACQAJAIAJBgICAgHhGBEBBACAAIAQbIQUgACgCCCIGQQZ0IQMgACgCBCIHQTxqIQICQANAIAIhBCADRQ0BIANBQGohAyACQUBrIQIgBC0AAEEBRw0ACyAEQTxrIgIoAjggAigCICIERw0DIAQgACgC7AJHDQMLIAZBBnQhAyAHQTxqIQIDQCACIQQgA0UNAiADQUBqIQMgAkFAayECIAQtAABBAkcNAAsgBEE8ayICKAI4IAIoAiBGDQEgAUECNgIsIAFBiKPBADYCKCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahCjASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2Ajgg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rgQCBX8EfiMAQSBrIgIkAEEEIQMgASgCBCIErSEIIAECfgJAIARC/////w8gASkDCCIHIAdC/////w9aG6drIgZBACAEIAZPG0EETwRAIAEoAgAgByAIIAcgCFQbp2ooAAAhBQwBC0GokMgAKQMAIglCCIghCiAJpyEDIAggCUL/AYNCBFINARoLIAdCBHwLIgk3AwgCQCADQf8BcUEERwRAIABBEmogAkEWai8BADsBACACIAOtQv8BgyAKQgiGhDcCDCACQQRqIAJBDWotAAAiAToAACAAIAIpAQ43AQogAiACKAAJIgM2AgAgAEEJaiABOgAAIAAgAzYABSAAQQA6AAQgAEEBNgIADAELIAJBCGpBAXIgBRCYBCACQRxqIAJBDWotAAA6AAAgAiACKAAJIgM2AgAgAiADNgIYAkACQCAEIAkgCCAIIAlWG6ciA2tBBE8EQCABKAIAIANqKAAAIQRBBCEDQgAhBwwBC0EAIQRBqJDIACkDACIKQgiIIQcgCqchAyAKQv8Bg0IEUg0BCyAJQgR8IQgLIAEgCDcDCCADQf8BcUEERwRAIAAgAzoACCAAQQA6AAQgAEEBNgIAIAAgB6ciATsACSAAIAdCGIg+AgwgAEELaiABQRB2OgAADAELIAAgAigCGDYAECAAQQA2AgAgACAErTcDCCAAQRRqIAJBHGotAAA6AAAgAEF/IAQgBEEBcWoiACAAIARJG603AxgLIAJBIGokAAvdBAIHfwF+IwBBEGsiAyQAAkAgAC8BDCICRQRAIAAoAgAgACgCBCABEKEDIQEMAQsgAyAB/QACAP0LAwACQAJ/IAApAggiCaciB0GAgIAIcUUEQCADKAIEDAELIAAoAgAgAygCACADKAIEIgEgACgCBCgCDBEAAA0BIAAgB0GAgID/eXFBsICAgAJyIgc2AgggA0IBNwMAIAIgAUH//wNxayIBQQAgASACTRshAkEACyEIAkAgAygCDCIFRQRADAELIAMoAgghAQNAAn8CQAJAAkACQCABLwEAQQFrDgIBAgALIAFBBGooAgAMAwsgAUECai8BACIEDQFBAQwCCyABQQhqKAIADAELIARB9v8XaiAEQZz/H2pxIARBmPg3aiAEQfCxH2pxc0ERdkEBagsgAUEMaiEBIAZqIQYgBUEBayIFDQALCwJAIAYgCGoiASACQf//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IAEoAiAiAiABKAIcIgFGDQELIAEgB2ohCCACIAFrIQMLIAAgAzYCBCAAIAg2AgAgBkEQaiQAC70DAgZ/AX4jAEHQAGsiAiQAIAJBIGogACAAKAIAKAIEEQEAIAIgAkEwaq1CgICAgLABhDcDKCACIAIpAyA3AjAgASgCACEFIAEoAgQhBiACQgE3AkRBASEDIAJBATYCPCACQaD4xwA2AjggAiACQShqNgJAAkAgBSAGIAJBOGoQwQMNACABLQAKQYABcUUEQEEAIQMMAQsgAkEYaiAAIAAoAgAoAgQRAQAgAkEQaiACKAIYIAIoAhwoAhgRAQAgAigCECIERQRAQQAhAwwBCyACQQhqIAQgAigCFCIHKAIYEQEAIAIoAgwhACACKAIIIQEgAiAHNgIsIAIgBDYCKCACQQE2AjwgAkGA8cEANgI4IAJCATcCRCACIAJBKGqtQoCAgICwAYQiCDcDMCACIAJBMGo2AkAgBSAGIAJBOGoQngkNAANAIAFFBEBBACEDDAILIAIgASAAKAIYEQEAIAIoAgQgAigCACACIAA2AiwgAiABNgIoIAJBATYCPCACQYDxwQA2AjggAkIBNwJEIAIgCDcDMCACIAJBMGo2AkAhASEAIAUgBiACQThqEJ4JRQ0ACwsgAkHQAGokACADC5QDACAAIARqIQACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQf8BcUEBaw4HBwABAgMEBQYLIABBfU0gAEECaiIBIANNcQ0HIAAgASADQbTZxwAQ6gcACyAAQX1NIABBAmoiASADTXENByAAIAEgA0HE2ccAEOoHAAsgAEF7TSAAQQRqIgEgA01xDQcgACABIANB1NnHABDqBwALIABBe00gAEEEaiIBIANNcQ0HIAAgASADQeTZxwAQ6gcACyAAQXtNIABBBGoiASADTXENByAAIAEgA0H02ccAEOoHAAsgAEF3TSAAQQhqIgEgA01xDQcgACABIANBhNrHABDqBwALIAAgA0kNCCAAIANBlNnHABCMBwALIAAgA0kNBiAAIANBpNnHABCMBwALIAAgAmouAACyDwsgACACai8AALMPCyAAIAJqKAAAsg8LIAAgAmooAACzDwsgACACaioAAA8LIAAgAmorAAC2DwsgACACai0AALNDAAB/Q5UPCyAAIAJqLAAAskMAAH9DlQvSAgEFfwJAAkACQAJAAkACQCAAKAIAIgAoAgAOAgABAwsgACgCCCIBRQ0CIAAoAgQiA0EEaygCACICQXhxIgRBBEEIIAJBA3EiAhsgAWpJDQQgAkUgBCABQSdqTXINAQwDCyAALQAEQQNHDQEgACgCCCIDKAIAIQEgA0EEaigCACICKAIAIgQEQCABIAQRAwALIAIoAgQiAgRAIAFBBGsoAgAiBEF4cSIFQQRBCCAEQQNxIgQbIAJqSQ0EIARBACAFIAJBJ2pLGw0DIAEQogILIANBBGsoAgAiAUF4cSICQRBBFCABQQNxIgEbSQ0DIAFFDQAgAkE0Tw0CCyADEKICCyAAQQRrKAIAIgNBeHEiAUEYQRwgA0EDcSIDG0kNASADQQAgAUE8TxsNACAAEKICDwtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALkgMBBH8CQAJAAkACQAJAAkAgByAIVgRAIAcgCH0gCFgNAyAGIAcgBn1UIAcgBkIBhn0gCEIBhlpxDQIgBiAIWA0GIAcgBiAIfSIGfSAGVg0GIAIgA08NAUEAIAMgAkG4j8IAEOoHAAsgAEEANgIADwsgASADaiEMIAMhCgJAAkACQANAIAoiCUUNASAJQQFrIgogAWoiCy0AAEE5Rg0ACyALIAstAABBAWo6AAAgAyAJTw0BIAkgAyADQfiEwgAQ6gcACwJAIANFBEBBMSEKDAELIAFBMToAAEEwIQogA0EBayIJRSAJRXINACABQQFqQTAgCfwLAAsgBEEBasEiBCAFwUwgAiADTXINASAMIAo6AAAgA0EBaiEDDAELIAMgCUYNACADIAlrIgVFDQAgASAJakEwIAX8CwALIAIgA0kNAgwDCyACIANPDQJBACADIAJByI/CABDqBwALIABBADYCAA8LQQAgAyACQaiPwgAQ6gcACyAAIAQ7AQggACADNgIEIAAgATYCAA8LIABBADYCAAu8AwIFfwF+IwBBIGsiAiQAAkACQAJAAkACQCABLQCYASIDQQhHDQAgAkEJOgAQIAIgASACQRBqIAEoAoABEOQEAkAgAi0AACIDQR1GBEAgAigCBCIEQYCAgIB4Rw0BQQAhAyABQQA6AJgBDAILIAIpAgQhBwJ/IANFBEAgAiAHNwMQIAenIQMgAikCFCEHQQUMAQsgAigCDCEEQRAQcSIBRQ0EIAEgAzoAACABIAQ2AgwgASAHNwIEIAEgAkEBciIDLwAAOwABIAFBA2ogA0ECai0AADoAACACQYAGOwEQIAIoAhAhA0EACyEEIABB7LvEADYCGCAAIAE2AhQgACAHQiCIPgIMIAAgBz4CCCAAIAM2AgQgACAENgIADAILIAIpAgggASACKAIIIAIoAgwQlgFB/wFxIgFBACABQQhHGyIDOgCYASAERQ0ApyIBQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyAEakkNAyAFQQAgBiAEQSdqSxsNBCABEKICCyAAQQY2AgAgACADOgAECyACQSBqJAAPCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC5QDAQZ/AkAgACgCaEGAgICAeEcNAAJAAkAgACgCpAEiBUEASA0AIAVBAXQiBkH/////B08NAAJ/IAZFBEBBAiEHQQAMAQsgBhBxIgdFDQIgB0EEay0AAEEDcUUgBkVyRQRAIAdBACAG/AsACyAFCyEGIAAgBTYCcCAAIAc2AmwgACAGNgJoDAILQbjewAAQ/wcLAAsCQAJAIAIEQEEAIQUgACgCbCEHIAAoAnAiCSABayIAQQAgACAJTRsiCiACQQFrIgAgACAKSxsiACAEIAAgBEkbIghBB0sEQCAHIAFBAXRqIQAgAyEGIAhBAWoiBSAFQQdxIgVBCCAFG2siBSEIA0AgACAG/QABAP0LAQAgBkEQaiEGIABBEGohACAIQQhrIggNAAsLIAMgBUEBdGohACAHIAEgBWpBAXRqIQYDQCAEIAVGDQMgBSAKRg0CIAYgAC8BADsBACAGQQJqIQYgAEECaiEAIAIgBUEBaiIFRw0ACwsPCyABIAVqIAlB2N7AABCMBwALIAQgBEHI3sAAEIwHAAuYAwEGfwJAIAAoAnRBgICAgHhHDQACQAJAIAAoAqQBIgVB/////wNLDQAgBUECdCIGQf3///8HTw0AAn8gBkUEQEEEIQdBAAwBCyAGEHEiB0UNAiAHQQRrLQAAQQNxRSAGRXJFBEAgB0EAIAb8CwALIAULIQYgACAFNgJ8IAAgBzYCeCAAIAY2AnQMAgtB6N7AABD/BwsACwJAAkAgAgRAQQAhBSAAKAJ4IQcgACgCfCIJIAFrIgBBACAAIAlNGyIKIAJBAWsiACAAIApLGyIAIAQgACAESRsiCEEDSwRAIAcgAUECdGohACADIQYgCEEBaiIFIAVBA3EiBUEEIAUbayIFIQgDQCAAIAb9AAIA/QsCACAGQRBqIQYgAEEQaiEAIAhBBGsiCA0ACwsgAyAFQQJ0aiEAIAcgASAFakECdGohBgNAIAQgBUYNAyAFIApGDQIgBiAAKAIANgIAIAZBBGohBiAAQQRqIQAgAiAFQQFqIgVHDQALCw8LIAEgBWogCUGI38AAEIwHAAsgBCAEQfjewAAQjAcAC5oDAQZ/AkAgACgCjAFBgICAgHhHDQACQAJAIAAoAqgBIgVBAEgNACAFQQF0IgZB/////wdPDQACfyAGRQRAQQIhB0EADAELIAYQcSIHRQ0CIAdBBGstAABBA3FFIAZFckUEQCAHQQAgBvwLAAsgBQshBiAAIAU2ApQBIAAgBzYCkAEgACAGNgKMAQwCC0HIucEAEP8HCwALAkACQCACBEBBACEFIAAoApABIQcgACgClAEiCSABayIAQQAgACAJTRsiCiACQQFrIgAgACAKSxsiACAEIAAgBEkbIghBB0sEQCAHIAFBAXRqIQAgAyEGIAhBAWoiBSAFQQdxIgVBCCAFG2siBSEIA0AgACAG/QABAP0LAQAgBkEQaiEGIABBEGohACAIQQhrIggNAAsLIAMgBUEBdGohACAHIAEgBWpBAXRqIQYDQCAEIAVGDQMgBSAKRg0CIAYgAC8BADsBACAGQQJqIQYgAEECaiEAIAIgBUEBaiIFRw0ACwsPCyABIAVqIAlB6LnBABCMBwALIAQgBEHYucEAEIwHAAueAwEGfwJAIAAoApgBQYCAgIB4Rw0AAkACQCAAKAKoASIFQf////8DSw0AIAVBAnQiBkH9////B08NAAJ/IAZFBEBBBCEHQQAMAQsgBhBxIgdFDQIgB0EEay0AAEEDcUUgBkVyRQRAIAdBACAG/AsACyAFCyEGIAAgBTYCoAEgACAHNgKcASAAIAY2ApgBDAILQfi5wQAQ/wcLAAsCQAJAIAIEQEEAIQUgACgCnAEhByAAKAKgASIJIAFrIgBBACAAIAlNGyIKIAJBAWsiACAAIApLGyIAIAQgACAESRsiCEEDSwRAIAcgAUECdGohACADIQYgCEEBaiIFIAVBA3EiBUEEIAUbayIFIQgDQCAAIAb9AAIA/QsCACAGQRBqIQYgAEEQaiEAIAhBBGsiCA0ACwsgAyAFQQJ0aiEAIAcgASAFakECdGohBgNAIAQgBUYNAyAFIApGDQIgBiAAKAIANgIAIAZBBGohBiAAQQRqIQAgAiAFQQFqIgVHDQALCw8LIAEgBWogCUGYusEAEIwHAAsgBCAEQYi6wQAQjAcAC40DAQV/IwBBIGsiBiQAAkACQAJAAkAgASgCCCIDQQpJDQACQAJAIAEoAgQiBC0AAEEfRw0AIAQtAAFBiwFHDQAgBC0AAkEIRw0AQQohAiAELQADIgVBBHEEQCADQQxJDQMgAyAELwAKQQxqIgJJDQMLIAVBCHFFDQEgAiADTw0CA0AgAiAEai0AAEUEQCACQQFqIQIMAwsgAyACQQFqIgJHDQALDAILIAZBADYCGEEBIQUgBkEBNgIMIAZBvO3HADYCCCAGQgQ3AhAgACAGQQhqEJUHNgIEDAMLIAVBEHEEQCACIANPDQEDQCACIARqLQAABEAgAyACQQFqIgJHDQEMAwsLIAJBAWohAgsgBUECcUUNASADIAJBAmoiAk8NAQtBACEFIABBADoAAQwBCyACIANLDQFBACEFIAFBADYCCCACIANHBEAgAyACayIDBEAgBCACIARqIAP8CgAACyABIAM2AggLIABBAToAAQsgACAFOgAAIAZBIGokAA8LQQAgAiADQYSkxwAQ6gcAC88DAQV/IwBBIGsiAiQAIAAoAgAiA0EIaiEFQQEhAAJAIAMoAgBBAUYEQCABKAIAIgNByMnEAEEDIAEoAgQiBigCDCIEEQAADQECQCABLQAKQYABcUUEQCADQbuzxQBBASAEEQAADQMgBSABEPIFRQ0BDAMLIANB24HCAEECIAQRAAANAiACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBSACQRBqEPIFDQIgAkHZgcIAQQIQrwMNAgsgA0HejsgAQQEgBBEAACEADAELIAEoAgAiA0H8nMgAQQIgASgCBCIGKAIMIgQRAAANAAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANAiAFIAEQxAUNAiABKAIAIQMgASgCBCgCDCEEDAELIANB24HCAEECIAQRAAANASACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBSACQRBqEMQFDQEgAigCEEHZgcIAQQIgAigCFCgCDBEAAA0BCyADQd6OyABBASAEEQAAIQALIAJBIGokACAAC6ADAQJ/IwBB0ABrIgckACAHQQBB0AD8CwACQCACRQRAIAdC//79+/fv37//ADcDAAwBCyABQQN0IgggBE0EQCAEIAhGDQFBCCAEIAhrIgQgBEEITxsiBEUNASAHIAMgCGogBPwKAAAMAQsgCCAEIARByOjEABDqBwALIAACfyABRQRAIAdBgQE6AEcgB0GBAToAPiAHQYEBOgA1IAdBgQE6ACwgB0GBAToAIyAHQYEBOgAaIAdBgQE6ABEgB0GBAToACEGBf0H/ACACGwwBCwJAIAYEQCAGQQFrIgFFDQEgByAFLQABOgAIIAFBAUYNASAHIAUtAAI6ABEgAUECRg0BIAcgBS0AAzoAGiABQQNGDQEgByAFLQAEOgAjIAFBBEYNASAHIAUtAAU6ACwgAUEFRg0BIAcgBS0ABjoANSABQQZGDQEgByAFLQAHOgA+IAFBB0YNASAHIAUtAAg6AEcMAQtBAUEAQQBBuOjEABDqBwALQYF/Qf8AIAIbIAJFDQAaIAUtAAALOgAAIABBAWogB0HQAPwKAAAgB0HQAGokAAuDAwEBfyMAQSBrIgUkACAAAn8CQCAERQRAIANBBGogAksgA0F7S3JFBEAgACABIANqKgAAOAIEDAILIAVBADYCGCAFQQE2AgwgBUHI28EANgIIIAVCBDcCECAAIAVBCGoQkgc2AgRBAQwCCyADQX1NIANBAmogAk1xRQRAIAVBADYCGCAFQQE2AgwgBUHI28EANgIIIAVCBDcCECAAIAVBCGoQkgc2AgRBAQwCCyAAAn8gASADaiIBLQABQQh0IgIgAS0AAHIiAUH//wFxRQRAIAFBEHQMAQsgAUH/B3EhASACQYCAAnEhAyACQYD4AXEiAkGA+AFGBEAgA0EQdCECIAJBgICA/AdyIAFFDQEaIAFBDXQgAnJBgICA/gdyDAELIANBEHQhAyACQQ10QYCAgPwAcSABQQ10ckGAgIDAA2ogA3IgAg0AGiADQYCAgNgDciABZ0EQayICQRd0ayABIAJB//8DcUEIanRB////A3FyCzYCBAtBAAs2AgAgBUEgaiQAC4QDAgJ/AXsCQAJAIARBBE8EQCACIARBBGtBA24iBSACIAVJGyIFQQNNDQEgAiAFQQFqIgIgAkEDcSICQQQgAhtrIgZrIQIgASAGaiAEIAZBfWxqIQQgAyAGQQNsaiEHA0AgAyAAIAH9XAAA/YkB/akBIgj9GwBBAnRqKAAANgAAIANBA2ogACAI/RsBQQJ0aigAADYAACADQQZqIAAgCP0bAkECdGooAAA2AAAgA0EJaiAAIAj9GwNBAnRqKAAANgAAIAFBBGohASADQQxqIQMgBkEEayIGDQALIQEgByEDDAELIAQNAQ8LA0AgAkUEQEEAQQBBpJrFABCMBwALIAMgACABLQAAQQJ0aigAADYAACADQQNqIQMgAkEBayECIAFBAWohASAEQQNrIgRBA0sNAAsLAkAgAgRAIARBA0cNASADIAAgAS0AAEECdGoiAC8AADsAACADQQJqIABBAmotAAA6AAAPC0EAQQBBhJrFABCMBwALQQBBAyAEQZSaxQAQ6gcAC4EDAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB/wFxQQFrDgcHAAECAwQFBgsgA0F9TSADQQJqIgAgAk1xDQcgAyAAIAJBtNjHABDqBwALIANBfU0gA0ECaiIAIAJNcQ0HIAMgACACQcTYxwAQ6gcACyADQXtNIANBBGoiACACTXENByADIAAgAkHU2McAEOoHAAsgA0F7TSADQQRqIgAgAk1xDQcgAyAAIAJB5NjHABDqBwALIANBe00gA0EEaiIAIAJNcQ0HIAMgACACQfTYxwAQ6gcACyADQXdNIANBCGoiACACTXENByADIAAgAkGE2ccAEOoHAAsgAiADTQ0HIAEgA2osAACyDwsgAiADSw0HIAMgAkGk2McAEIwHAAsgASADai4AALIPCyABIANqLwAAsw8LIAEgA2ooAACyDwsgASADaigAALMPCyABIANqKgAADwsgASADaisAALYPCyADIAJBlNjHABCMBwALIAEgA2otAACzC58DAgF+CH8CQAJAAkACQAJAIAAoAgQiBEUNACAAKAIMIggEQCAAKAIAIgJBCGohAyACKQMAQn+FQoCBgoSIkKDAgH+DIQEDQCABUARAA0AgAkGABGshAiADKQMAIANBCGohA0KAgYKEiJCgwIB/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jOrHABCMBwALQezpxwAQ/wcLAAucAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH/AXFBAWsOBwUAAQICAgMECyADQX1NIANBAmoiACACTXENBSADIAAgAkG02scAEOoHAAsgA0F9TSADQQJqIgAgAk1xDQUgAyAAIAJBxNrHABDqBwALIANBe00gA0EEaiIAIAJNcQ0FIAMgACACQdTaxwAQ6gcACyADQXdNIANBCGoiACACTXENBSADIAAgAkHk2scAEOoHAAsgAiADTQ0FIAEgA2osAAAPCyACIANLDQUgAyACQaTaxwAQjAcACyABIANqLgAADwsgASADai8AAA8LIAEgA2ooAAAPCyABIANqKwAA/AMPCyADIAJBlNrHABCMBwALIAEgA2otAAALzQIBBH8jAEEgayIEJAAgASgCDCEFAkAgAAJ/AkACQAJAIAEoAhQiAiABKAIQIgNJBEADQAJAIAIgBWotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgASACQQFqIgI2AhQgAiADRw0ACyADIQILIARBEGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAhQhASAEKAIQIQNBFBBxIgJFDQQgAkEDNgIADAELIARBCGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAgwhASAEKAIIIQNBFBBxIgJFDQMgAkEGNgIACyACIAM2AgwgAiABNgIQQQEMAQsgASACQQFqNgIUIARBGGogARCVAyAEKAIcIQIgBCgCGAs2AgAgACACNgIEIARBIGokAA8LAAu2AgEBfyMAQUBqIgMkACADIAI2AhAgAyABNgIMIAACfwJAAkACQAJAAkACQAJAIAJBA2sOBwAFAQIFBQMFCyABQZDQxwBBAxDbB0UEQCAAQQA6AAFBAAwHCyABQaD3xwBBAxDbBw0DIABBAToAAUEADAYLIAFBo/fHAEEFENsHDQMgAEECOgABQQAMBQsgAUGo98cAQQYQ2wcNAiAAQQM6AAFBAAwECyABQa73xwBBCRDbBw0BIABBBDoAAUEADAMLIAFBt/fHAEEDENsHRQ0BCyADQQE2AiQgA0HQ98cANgIgIANCATcCLCADIANBDGqtQoCAgIAghDcDOCADIANBOGo2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AEGUgICAeEYEQAJAIAACfyADKAIMIgQEQCACIAMoAggQqAMgAigCACIBQYCAgIB4Rw0CIAIoAgQMAQtBACACQQ9qQYTiwAAQ2wYLNgIEIABBgICAgHg2AgAMBAsgAigCBCEDIARBAUYNAiACQQE2AgAgBEEBa0H/////AHFBAWogAkHolcEAENsGIQQgAEGAgICAeDYCACAAIAQ2AgQgAUUNAyADIAFBARCiBwwDCyADIAJBD2pBhOLAABCVCCEBIABBgICAgHg2AgAgACABNgIEDAILQcvawABBLEH42sAAEKsHAAsgACACKAIINgIIIAAgAzYCBCAAIAE2AgALIAJBEGokAAupAgEFfyMAQSBrIgIkAEEBIQMCQCAAKAIAIgQoAgBBAUYEQCABKAIAIgBBw5jIAEEEIAEoAgQiBigCDCIFEQAADQEgBEEIaiEEAkAgAS0ACkGAAXFFBEAgAEG7s8UAQQEgBREAAA0DIAQgARDEBQ0DIAEoAgAhACABKAIEKAIMIQUMAQsgAEHbgcIAQQIgBREAAA0CIAJBAToADyACIAY2AgQgAiAANgIAIAJB4IHCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECAEIAJBEGoQxAUNAiACKAIQQdmBwgBBAiACKAIUKAIMEQAADQILIABB3o7IAEEBIAURAAAhAwwBCyABKAIAQb+YyABBBCABKAIEKAIMEQAAIQMLIAJBIGokACADC5ECAQN/IwBBQGoiASQAAkAgABA9IgINACAALQClU0UEQCABQQA2AjggAUEBNgIsIAFB5KPBADYCKCABQgQ3AjAgAUEoahCSByECDAELIAAoAmRBgICAgHhHBEBBACECIAAtAJgBIgNBCUYNASADQQVGBEAgACgCkAFFDQILIAFBAjYCLCABQZykwQA2AiggAUICNwI0IAEgAEGQAWqtQoCAgIAQhDcDICABIABBmAFqrUKAgICAsASENwMYIAEgAUEYajYCMCABQQxqIgAgAUEoahCxBiAAEI4HIQIMAQsgAUEANgI4IAFBATYCLCABQcCkwQA2AiggAUIENwIwIAFBKGoQkgchAgsgAUFAayQAIAILkgIBA38jAEFAaiIBJAACQCAAED4iAg0AIAAtAMVTRQRAIAFBADYCOCABQQE2AiwgAUHko8EANgIoIAFCBDcC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BEAgACgCtAIgA2ogASAC/AoAAAsgACACIANqNgK4AiAAELgBC1gBAX8gACgC2AIgACgC4AIiA2sgAkkEQCAAQdgCaiADIAJBAUEBEKQFIAAoAuACIQMLIAIEQCAAKALcAiADaiABIAL8CgAACyAAIAIgA2o2AuACIAAQsQELWAEBfyAAKAL4AiAAKAKAAyIDayACSQRAIABB+AJqIAMgAkEBQQEQpAUgACgCgAMhAwsgAgRAIAAoAvwCIANqIAEgAvwKAAALIAAgAiADajYCgAMgABCfAQtXAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEASAAEEELVwEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAEgABBAC1IBAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaCAAED4LUQEBfyAAKAJAIAAoAkgiA2sgAkkEQCAAQUBrIAMgAkEBQQEQpAUgACgCSCEDCyACBEAgACgCRCADaiABIAL8CgAACyAAIAIgA2o2AkggABA9C1ABA38CQAJAIAAEQCAAQQhrIgEgASgCACICQQFqIgM2AgAgA0UNASAAKAIAQf////8HTw0CIAAoAhggASACNgIAQQBHDwsQjgoLAAsQkAoAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcDAxAAgAEEBakHQwMQAIABBAmpB4MDEACACQQxqQfDAxAAQ7gUgAkEQaiQAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcioxwAgAEEBakHYqMcAIABBAmpB6KjHACACQQxqQfioxwAQ7gUgAkEQaiQAC08BAX8gACgCQCAAKAJIIgNrIAJJBEAgAEFAayADIAJBAUEBEKQFIAAoAkghAwsgAgRAIAAoAkQgA2ogASAC/AoAAAsgACACIANqNgJIQQALVQEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAFBAAtVAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEAUEAC1ABAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaEEAC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBqJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFB4J7BADYCACABIAIpAgg3AgQgASAANgIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBxJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC00AIwBBEGsiACQAIAEgAmwiAQR/IAFBwf///wdPBEBB2ObIAEErIABBD2pBtIPJAEHUg8kAEOAGAAtBwAAgARDBBAVBAAsgAEEQaiQAC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFBtLTHADYCACABIAIpAgg3AgQgASAAOgAcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFB7LTHADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1cBAn8jAEEgayIBJAACQCAAEJ8BIgINAEEAIQIgAC0AnAMNACABQQA2AhggAUEBNgIMIAFBxKPBADYCCCABQgQ3AhAgAUEIahCSByECCyABQSBqJAAgAgtXAQJ/IwBBIGsiASQAAkAgABCxASICDQBBACECIAAtAPwCDQAgAUEANgIYIAFBATYCDCABQcSjwQA2AgggAUIENwIQIAFBCGoQ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QeAAaiQADAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAmKAIAICYoAgQgJigCCCAmQRBqJAALTQEBfwJ/AkAgAigCBEUNACACKAIIIgNFDQAgAigCACADQQEgARC7AgwBCyABEHELIQIgACABNgIIIAAgAkEBIAIbNgIEIAAgAkU2AgALSwIBfwJ+IwBBEGsiASQAIAEgADUCiAEgADUChAF+QgRCAyAALQCTARsQ3QYgASkDCCECIAEpAwAhAyABQRBqJABCfyADIAJCAFIbC08AAkACQCACKAIQQQFGBEAgASgChAEgAigCFEsNAQsgAigCGEEBRw0BIAEoAogBIAIoAhxNDQELIABCAjcDCCAAQQM2AgAPCyAAQQY2AgALUAEBfyMAQRBrIgIkACACQQhqIAEgASgCACgCBBEBACACIAIoAgggAigCDCgCGBEBACACKAIEIQEgACACKAIANgIAIAAgATYCBCACQRBqJAALSAEBfyAAKAIAIAAoAggiA2sgAkkEQCAAIAMgAhD3BSAAKAIIIQMLIAIEQCAAKAIEIANqIAEgAvwKAAALIAAgAiADajYCCEEAC0gBAX8gACgCACAAKAIIIgNrIAJJBEAgACADIAIQ+AUgACgCCCEDCyACBEAgACgCBCADaiABIAL8CgAACyAAIAIgA2o2AghBAAtIAQF/IAAoAgAgACgCCCIDayACSQRAIAAgAyACEO8FIAAoAgghAwsgAgRAIAAoAgQgA2ogASAC/AoAAAsgACACIANqNgIIQQALRQEBfwJAIAFBAE4EfyABRQRAQQEhAkEAIQEMAgsgARBxIgINAUEBBSACCyABQcDowQAQkwkACyAAIAI2AgQgACABNgIAC08BAn8gACgCBCECIAAoAgAhAwJAIAAoAggiAC0AAEUNACADQbyLwwBBBCACKAIMEQAARQ0AQQEPCyAAIAFBCkY6AAAgAyABIAIoAhARAgALSgECfyAAIAAoAgQiAyACazYCBCAAIAAoAgAgAiADS3IiBDYCAEEBIQMgBAR/IAMFIAAoAggiACgCACABIAIgACgCBCgCDBEAAAsLSAEBfwJAIAFB4QBrIgFB/wFxQRlLBEBBACEBDAELIAFBAnRB/AdxIgIoAtSQSSEBIAIoAuyPSSECCyAAIAI2AgQgACABNgIAC0kCAn8BfSABKAIIIgNBgICAAXEhAiAAKgIAIQQgA0GAgICAAXFFBEAgASAEIAJBAEdBABD3Ag8LIAEgBCACQQBHIAEvAQ4QvQILRwECfyAALQANIgJBgAFNBEAgASgCACAAIAAtAAwiA2ogAiADayABKAIEKAIMEQAADwsgASgCACAAKAIAIAEoAgQoAhARAgALyQIAAkAgACACTQRAIAAgAU0gASACS3INASMAQTBrIgIkACACIAE2AgQgAiAANgIAIAJBAjYCDCACQfydwgA2AgggAkICNwIUIAIgAkEEaq1CgICAgBCENwMoIAIgAq1CgICAgBCENwMgIAIgAkEgajYCECACQQhqIAMQjQgACyMAQTBrIgEkACABIAI2AgQgASAANgIAIAFBAjYCDCABQaidwgA2AgggAUICNwIUIAEgAUEEaq1CgICAgBCENwMoIAEgAa1CgICAgBCENwMgIAEgAUEgajYCECABQQhqIAMQjQgACyMAQTBrIgAkACAAIAI2AgQgACABNgIAIABBAjYCDCAAQcidwgA2AgggAEICNwIUIAAgAEEEaq1CgICAgBCENwMoIAAgAK1CgICAgBCENwMgIAAgAEEgajYCECAAQQhqIAMQjQgAC0IBAX8jAEEgayIDJAAgA0EANgIQIANBATYCBCADQgQ3AgggAyABNgIcIAMgADYCGCADIANBGGo2AgAgAyACEI0IAAuJDQMHfwV+AXwgASgCCCIDQYCAgAFxIQIgACsDACEOIANBgICAgAFxRQRAIAJBAEchA0EAIQIjAEGAAWsiACQAIA69IQkCf0EDIA6ZRAAAAAAAAPB/YQ0AGkECIAlCgICAgICAgPj/AIMiCkKAgICAgICA+P8AUQ0AGiAJQv////////8HgyINQoCAgICAgIAIhCAJQgGGQv7///////8PgyAJQjSIp0H/D3EiAhsiC0IBgyEMIApQBEBBBCANUA0BGiACQbMIayECQgEhCiAMUAwBC0KAgICAgICAICALQgGGIAtCgICAgICAgAhRIgUbIQtCAkIBIAUbIQpBy3dBzHcgBRsgAmohAiAMUAshBSAAIAI7AXggACAKNwNwIABCATcDaCAAIAs3A2AgACAFOgB6An8CQAJAAkACQCAFQf8BcSICQQFNBEBB6rPFAEEBIAlCAFMiAhshBUHqs8UAQciBwgAgAhshAiAJQj+IpyEGIABBIGogAEHgAGogAEEPahDPASAAKAIgRQ0BIABB2ABqIABBKGooAgA2AgAgACAAKQIgNwNQDAILIAJBAkYNAiAAQQI7ASBBASECQeqzxQBByIHCACAJQgBTIgQbQeqzxQBBASAEGyADGyEEIAlCP4inIANyIQMgBUH/AXFBBEYNAyAAQQM2AiggAEHsncYANgIkIABBIGoMBAsgAEHQAGogAEHgAGogAEEPahBXCyACIAUgAxshBCADIAZyIQMgACAAKAJQIAAoAlQgAC8BWEEAIABBIGoQ7AQgACgCBCECIAAoAgAMAgsgAEEDNgIoIABB853GADYCJCAAQQI7ASBBASEEQQAhA0EBIQIgAEEgagwBCyAAQQE2AiggAEGYsMUANgIkIABBIGoLIQUgACACNgJcIAAgBTYCWCAAIAM2AlQgACAENgJQIAEgAEHQAGoQvgMgAEGAAWokAA8LIAJBAEchBSABLwEOIQBBACEDIwBB8AhrIgIkACAOvSEJAn9BAyAOmUQAAAAAAADwf2ENABpBAiAJQoCAgICAgID4/wCDIgtCgICAgICAgPj/AFENABogCUL/////////B4MiDUKAgICAgICACIQgCUIBhkL+////////D4MgCUI0iKdB/w9xIgMbIgpCAYMhDCALUARAQQQgDVANARogA0GzCGshA0IBIQsgDFAMAQtCgICAgICAgCAgCkIBhiAKQoCAgICAgIAIUSIEGyEKQgJCASAEGyELQct3Qcx3IAQbIANqIQMgDFALIQQgAiADOwHoCCACIAs3A+AIIAJCATcD2AggAiAKNwPQCCACIAQ6AOoIAn8CQCAEQf8BcSIGQQFNBEBBdEEFIAPBIgRBAEgbIARsIgRBwP0ASQ0BQcOEwgBBJUHohMIAEOsHAAsCQAJAIAZBAkcEQEEBIQNB6rPFAEHIgcIAIAlCAFMiBhtB6rPFAEEBIAYbIAUbIQYgCUI/iKcgBXIhBSAEQf8BcUEERw0BQQIhAyACQQI7AZAIIAANAkEBIQMgAkEBNgKYCCACQZiwxQA2ApQIIAJBkAhqDAQLIAJBAzYCmAggAkHzncYANgKUCCACQQI7AZAIQQEhBkEAIQVBASEDIAJBkAhqDAMLIAJBAzYCmAggAkHsncYANgKUCCACQQI7AZAIIAJBkAhqDAILIAIgADYCoAggAkEAOwGcCCACQQI2ApgIIAJBuYPCADYClAggAkGQCGoMAQtB6rPFAEEBIAlCAFMiBhshB0Hqs8UAQciBwgAgBhsgCUI/iKchCCACQZAIaiAKIAMgAkEQaiAEQQR2QRVqIgRBgIB+QQAgAGsgAMFBAEgbIgMQ6QIgA8EhAwJAIAIoApAIBEAgAkHICGogAkGYCGooAgA2AgAgAiACKQKQCDcDwAgMAQsgAkHACGogAkHQCGogAkEQaiAEIAMQZQsgByAFGyEGIAUgCHIhBSADIAIuAcgIIgRIBEAgAkEIaiACKALACCACKALECCAEIAAgAkGQCGoQ7AQgAigCDCEDIAIoAggMAQtBAiEDIAJBAjsBkAggAEUEQEEBIQMgAkEBNgKYCCACQZiwxQA2ApQIIAJBkAhqDAELIAIgADYCoAggAkEAOwGcCCACQQI2ApgIIAJBuYPCADYClAggAkGQCGoLIQAgAiADNgLMCCACIAA2AsgIIAIgBTYCxAggAiAGNgLACCABIAJBwAhqEL4DIAJB8AhqJAALQwEBfyMAQRBrIgIkACACQQhqIAEoAggiASABKAIAKAIEEQEAIAIoAgwhASAAIAIoAgg2AgAgACABNgIEIAJBEGokAAtBAAJAIAAoAiQiACgCBEEDRwRAIABBBGohAAwBCyAAIAAoAgAoAhgRBAAiAA0AQYjxwQBBGEGg8cEAEKsHAAsgAAuhAQEDfyAAKAIAIQAgASgCCCIDQYCAgBBxRQRAIANBgICAIHFFBEAgACABELMGDwsgACABENkGDwsgAC0AACEAIwBBEGsiBCQAQQMhAgNAIAIgBGpBDGogAEEPcUHctsUAai0AADoAACAAIgNBBHYhACACQQFrIQIgA0EPSw0ACyABQQFBhLTFAEECIAIgBGpBDWpBAyACaxDIAyAEQRBqJAALMgECfyABQf8BcSEDQQAhAQNAIAAQtAogAkEBdHIhAiABQQFqIgFB/wFxIANJDQALIAILOAEBfyMAQRBrIgIkACACQQhqIAAgACgCACgCBBEBACACKAIIIAEgAigCDCgCEBECACACQRBqJAAL7g8CA34VfyMAQRBrIhMkACMBQQFrIhYkASAWIAgmASAAIRogAiEbQbC1yQAoAgBFBEAQVgsCQAJAAkBBuLXJACgCAEUEQEG4tckAQX82AgAgFiUBEB4hHgJAIAcgBSADIAEgASADSxsiACAAIAVLGyIAIAAgB0sbIh9FDQADQCAXIgAgHkYNASAWJQEgABAfIQgQ2gQiGCAIJgECQAJAQcy1yQAoAgBFDQAgAEEBaiEXIAYgAEECdCIAaigCACERIAAgBGooAgAhDyAAIBtqKAIAIRxBACEMQcS1yQAoAgAiAkHYtckAKQMAIgkgACAaaigCACIdrYUiCkI4hiAKQoD+A4NCKIaEIApCgID8B4NCGIYgCkKAgID4D4NCCIaEhCAJQgiIQoCAgPgPgyAJQhiIQoCA/AeDhCAJQiiIQoD+A4MgCUI4iISEhELSgaqbq/qC16d/fiIJQjiGIAlCgP4Dg0IohoQgCUKAgPwHg0IYhiAJQoCAgPgPg0IIhoSEIAlCCIhCgICA+A+DIAlCGIhCgID8B4OEIAlCKIhCgP4DgyAJQjiIhISEIApC2KLR78Kp5b8tfoUiCUI4hiAJQoD+A4NCKIaEIAlCgID8B4NCGIYgCUKAgID4D4NCCIaEhCAJQgiIQoCAgPgPgyAJQhiIQoCA/AeDhCAJQiiIQoD+A4MgCUI4iISEhEHQtckAKQMAIgpCf4V+IgtCOIYgC0KA/gODQiiGhCALQoCA/AeDQhiGIAtCgICA+A+DQgiGhIQgC0IIiEKAgID4D4MgC0IYiEKAgPwHg4QgC0IoiEKA/gODIAtCOIiEhIQgCSAKQjiGIApCgP4Dg0IohoQgCkKAgPwHg0IYhiAKQoCAgPgPg0IIhoSEIApCCIhCgICA+A+DIApCGIhCgID8B4OEIApCKIhCgP4DgyAKQjiIhISEfoUgCYkiCadxIQ0gCUIZiEL/AINCgYKEiJCgwIABfiELQcC1yQAoAgAiAEEgayEOA0AgACANaikAACIKIAuFIglCf4UgCUKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIJUEUEQANAIB0gDiAJeqdBA3YgDWogAnEiFEEFdGsoAgBGDQQgCUIBfSAJgyIJUEUNAAsLIAogCkIBhoNCgIGChIiQoMCAf4NQRQ0BIA0gDEEIaiIMaiACcSENDAALAAtB6PLAABDdCQALIA9BEHYhDSARQRB2IBFB//8DcUEAR2oiGSAcQRB2Ig9qIhIgAEEAIBRrQQV0aiIOQRRrIhQoAgAiAksEQCASIAIiAGsiDCAOQRxrIhAoAgAgAGtLBEAgECAAIAxBBEEEEKQFIBQoAgAhAAsgDkEYaygCACIVIABBAnRqIRAgDEECTwR/IAJBf3MgEmpBAnQiAgRAIBBB/wEgAvwLAAsgACAMaiICQQFrIQAgFSACQQJ0akEEawUgEAtBfzYCACAUIABBAWo2AgALIA0gGWoiECAOQQhrIhIoAgAiAksEQCAQIAIiAGsiDCAOQRBrIhUoAgAgAGtLBEAgFSAAIAxBBEEEEKQFIBIoAgAhAAsgDkEMaygCACIgIABBAnRqIRUgDEECTwR/IAJBf3MgEGpBAnQiAgRAIBVB/wEgAvwLAAsgACAMaiICQQFrIQAgICACQQJ0akEEawUgFQtBfzYCACASIABBAWo2AgALAkACQAJAAkACQAJAAkAgGCICELkKRQRAIBENAUEAIREMBQsgEQRAIA9BAnQhDCANQQJ0IQAgDkEMayEYIA5BGGshDgNAIA8gFCgCACIRTw0DIA4oAgAgDGpBfzYCACANIBIoAgAiEU8NBCAYKAIAIABqQX82AgAgDEEEaiEMIA9BAWohDyAAQQRqIQAgDUEBaiENIBlBAWsiGQ0ACwsgAkGDCEsNBQwGCyAPQQJ0IQwgDUECdCEAIA5BDGshGCAOQRhrIQ4DQCAPIBQoAgAiEE8NAyAOKAIAIAxqIA02AgAgEigCACIQIA1LBEAgGCgCACAAaiAPNgIAIAxBBGohDCAPQQFqIQ8gAEEEaiEAIA1BAWohDSAZQQFrIhlFDQUMAQsLIA0gEEGI88AAEIwHAAsgDyARQZjzwAAQjAcACyANIBFBqPPAABCMBwALIA8gEEH48sAAEIwHAAsgHSAcIBEgAhDTASACQYQISQ0BCyACEJsHCyAXIB9HDQALCxC/CSEAQbi1yQBBuLXJACgCAEEBajYCACAHBEAgBkEEaygCACICQXhxIhcgB0ECdCIHQQRBCCACQQNxIgIbakkNAiACQQAgFyAHQSdqSxsNAyAGEKICCyAFBEAgBEEEaygCACICQXhxIgYgBUECdCIFQQRBCCACQQNxIgIbakkNAiACQQAgBiAFQSdqSxsNAyAEEKICCyADBEAgG0EEaygCACICQXhxIgQgA0ECdCIDQQRBCCACQQNxIgIbakkNAiACQQAgBCADQSdqSxsNAyAbEKICCwJAIAEEQCAaQQRrKAIAIgJBeHEiAyABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0DIAJBACADIAFBJ2pLGw0BIBoQogILIBNCADcCBCATIAA2AgAMBAsMAgtBrIrBABCwCgALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAW0G9BAfwRASAWQQFqJAEgEygCACATKAIEIBMoAgggE0EQaiQACzgAAkAgAkGAgMQARg0AIAAgAiABKAIQEQIARQ0AQQEPCyADRQRAQQAPCyAAIAMgBCABKAIMEQAAC+ACAgR/An4jAEEQayIJJAAQ2gQiCyAEJgEjAEEwayIIJABBgICAgHghCgJAIABFBEBBgICAgHghAQwBCyAArSABrUIghoQhDAsgAgRAIAKtIAOtQiCGhCENIAMhCgsgCCAMNwIcIAggATYCGCAIIA03AiggCCAKNgIkIAZBAEchACAFQQBHIQECQCAHRQRAIAhBCGogCEEYaiAIQSRqIAsgASAFIAAgBkEAQQAQvwEMAQsgCEEIaiAIQRhqIAhBJGogCyABIAUgACAGQQEgBxC/AQsCQAJAAn8gCCgCCEUEQEEBIQAgCCgCDAwBC0EcEHEiAUUNAUEAIQAgAUEANgIIIAFCgYCAgBA3AgAgASAI/QACCP0LAgwgAUEIagshASAJIAA2AgggCSABQQAgABs2AgQgCUEAIAEgABs2AgAgCEEwaiQADAELAAsgCSgCACAJKAIEIAkoAgggCUEQaiQACzkBAX8jAEEQayIFJAAgBSACNgIMIAUgATYCCCAAIAVBCGpB4IfDACAFQQxqQeCHwwAgAyAEEPIEAAtEACABKQIAQu26rbbNhdT14wCFIAEpAghC+IKZvZXuxsW5f4WEUEUEQCAAKAIkIgAgASAAKAIAKAIQEQIADwsgAEEcags5AQF/IwBBEGsiBCQAIAQgATYCDCAEIAA2AghBACAEQQhqQcS2xAAgBEEMakHEtsQAIAIgAxDyBAAL4AEBBH8jAEEQayICJAAgAiAANgIMIwBBEGsiACQAIAEoAgBBmK3HAEENIAEoAgQoAgwRAAAhAyAAQQA6AA0gACADOgAMIAAgATYCCCAAQQhqQcj7xwBBBCACQQxqQfS3xQAQjAUhAyAALQANIgQgAC0ADCIFciEBAkAgBUEBcSAEQQFHcg0AIAMoAgAiAS0ACkGAAXFFBEAgASgCAEH/s8UAQQIgASgCBCgCDBEAACEBDAELIAEoAgBBpbPFAEEBIAEoAgQoAgwRAAAhAQsgAEEQaiQAIAFBAXEgAkEQaiQACzkBAX8jAEEQayIFJAAgBSACNgIMIAUgATYCCCAAIAVBCGpB3JzIACAFQQxqQdycyAAgAyAEEPIEAAs8AQJ/IAEoAgQhAiABKAIAIQNBCBBxIgFFBEAACyABIAI2AgQgASADNgIAIABBvIzIADYCBCAAIAE2AgALPwEBfyMAQRBrIgIkACACQZvRwAA2AgwgAiAANgIIQQAgAkEIakHohsgAIAJBDGpB6IbIACABQciDyAAQ8gQAC5EDAQV/IwBBEGsiCCQAENoEIgogASYBIAAhCxDaBCIAIAYmASAFIQkjAEHgAWsiByQAIAJBAEchBQJAIAlFBEAgB0H4AGogCyAKIAUgAiAAEGcgBygCfCEFIAcoAngiAEGAgICAeEYEQEEBIQIMAgsgB0EYaiAHQYABakHgAPwKAAAgByAFNgIUIAcgADYCECAHQRBqIgAgAyAEQQBHEDAgByAAEPsDIAcoAgQhBSAHKAIAIQIgABD2AgwBCyAHQfgAaiALIAogBSACIAAQZyAHKAJ8IQUgBygCeCIAQYCAgIB4RgRAIAlBhAhPBEAgCRCbBwtBASECDAELIAdBGGogB0GAAWpB4AD8CgAAIAcgBTYCFCAHIAA2AhAgB0EQaiIAIAkQxAIgACADIARBAEcQMCAHQQhqIAAQ+wMgBygCDCEFIAcoAgghAiAAEPYCCyAIIAJBAXEiADYCCCAIIAVBACAAGzYCBCAIQQAgBSAAGzYCACAHQeABaiQAIAgoAgAgCCgCBCAIKAIIIAhBEGokAAv6AwEFfyMAQRBrIggkABDaBCIHIAEmARDaBCIJIAImASAHIQojAEGgAWsiByQAIANBAEchCwJAIAZFBEAgB0HYAGogACAKIAkgCyADEDsgBygCXCEAIAcoAlgiA0GAgICAeEYEQEEBIQMMAgsgB0HIAGogB0GQAWr9AAIA/QsCACAHQThqIAdBgAFq/QACAP0LAgAgB0EoaiAHQfAAav0AAgD9CwIAIAcgB/0AAmD9CwIYIAcgADYCFCAHIAM2AhAgB0EQaiIGIAQgBUEARxAvIAcgBhCDBSAHKAIEIQAgBygCACEDIAYQ9QIMAQsgB0HYAGogACAKIAkgCyADEDsgBygCXCEAIAcoAlgiA0GAgICAeEYEQCAGQYQITwRAIAYQmwcLQQEhAwwBCyAHQcgAaiAHQZABav0AAgD9CwIAIAdBOGogB0GAAWr9AAIA/QsCACAHQShqIAdB8ABq/QACAP0LAgAgByAH/QACYP0LAhggByAANgIUIAcgAzYCECAAIAcoAhggBhCtAyAHQRBqIgYgBCAFQQBHEC8gB0EIaiAGEIMFIAcoAgwhACAHKAIIIQMgBhD1AgsgCCADQQFxIgM2AgggCCAAQQAgAxs2AgQgCEEAIAAgAxs2AgAgB0GgAWokACAIKAIAIAgoAgQgCCgCCCAIQRBqJAAL0wICA38CfiMAQRBrIggkACMAQTBrIgckAEGAgICAeCEJAkAgAEUEQEGAgICAeCEBDAELIACtIAGtQiCGhCEKCyACBEAgAq0gA61CIIaEIQsgAyEJCyAHIAo3AhwgByABNgIYIAcgCzcCKCAHIAk2AiQgBUEARyEAIARBAEchAQJAIAZFBEAgB0EIaiAHQRhqIAdBJGogASAEIAAgBUEAQQAQ2AEMAQsgB0EIaiAHQRhqIAdBJGogASAEIAAgBUEBIAYQ2AELAkACQAJ/IAcoAghFBEBBASEAIAcoAgwMAQtBHBBxIgFFDQFBACEAIAFBADYCCCABQoGAgIAQNwIAIAEgB/0AAgj9CwIMIAFBCGoLIQEgCCAANgIIIAggAUEAIAAbNgIEIAhBACABIAAbNgIAIAdBMGokAAwBCwALIAgoAgAgCCgCBCAIKAIIIAhBEGokAAs3AQF/IwBBIGsiASQAIAFBADYCGCABQQE2AgwgAUH07sEANgIIIAFCBDcCECABQQhqIAAQjQgACzoBAX8jAEEgayIAJAAgAEEANgIYIABBATYCDCAAQdycwgA2AgggAEIENwIQIABBCGpB5JzCABCNCAALNwEBfyMAQSBrIgEkACABQQA2AhggAUEBNgIMIAFBlIfDADYCCCABQgQ3AhAgAUEIaiAAEI0IAAs3AQF/IwBBIGsiASQAIAFBADYCGCABQQE2AgwgAUHYh8MANgIIIAFCBDcCECABQQhqIAAQjQgAC/ADAQV/IwBBEGsiByQAENoEIgYgASYBENoEIgggAiYBIAYhCSMAQaABayIGJAAgA0EARyEKAkAgBUUEQCAGQdgAaiAAIAkgCCAKIAMQOyAGKAJcIQAgBigCWCIDQYCAgIB4RgRAQQEhAwwCCyAGQcgAaiAGQZABav0AAgD9CwIAIAZBOGogBkGAAWr9AAIA/QsCACAGQShqIAZB8ABq/QACAP0LAgAgBiAG/QACYP0LAhggBiAANgIUIAYgAzYCECAGQRBqIgUgBBAuIAYgBRCDBSAGKAIEIQAgBigCACEDIAUQ9QIMAQsgBkHYAGogACAJIAggCiADEDsgBigCXCEAIAYoAlgiA0GAgICAeEYEQCAFQYQITwRAIAUQmwcLQQEhAwwBCyAGQcgAaiAGQZABav0AAgD9CwIAIAZBOGogBkGAAWr9AAIA/QsCACAGQShqIAZB8ABq/QACAP0LAgAgBiAG/QACYP0LAhggBiAANgIUIAYgAzYCECAAIAYoAhggBRCtAyAGQRBqIgUgBBAuIAZBCGogBRCDBSAGKAIMIQAgBigCCCEDIAUQ9QILIAcgA0EBcSIDNgIIIAcgAEEAIAMbNgIEIAdBACAAIAMbNgIAIAZBoAFqJAAgBygCACAHKAIEIAcoAgggB0EQaiQAC4cDAQV/IwBBEGsiByQAENoEIgkgASYBIAAhChDaBCIAIAUmASAEIQgjAEHgAWsiBiQAIAJBAEchBAJAIAhFBEAgBkH4AGogCiAJIAQgAiAAEGcgBigCfCEEIAYoAngiAEGAgICAeEYEQEEBIQIMAgsgBkEYaiAGQYABakHgAPwKAAAgBiAENgIUIAYgADYCECAGQRBqIgAgAxAtIAYgABD7AyAGKAIEIQQgBigCACECIAAQ9gIMAQsgBkH4AGogCiAJIAQgAiAAEGcgBigCfCEEIAYoAngiAEGAgICAeEYEQCAIQYQITwRAIAgQmwcLQQEhAgwBCyAGQRhqIAZBgAFqQeAA/AoAACAGIAQ2AhQgBiAANgIQIAZBEGoiACAIEMQCIAAgAxAtIAZBCGogABD7AyAGKAIMIQQgBigCCCECIAAQ9gILIAcgAkEBcSIANgIIIAcgBEEAIAAbNgIEIAdBACAEIAAbNgIAIAZB4AFqJAAgBygCACAHKAIEIAcoAgggB0EQaiQAC8ECAQR/IwBBEGsiASQAQdy2yQAtAABBA0cEQCABQQE6AA8gAUEPaiECIwBBIGsiACQAAkACQAJAAkACQAJAAkACQAJAQdy2yQAtAABBAWsOAwQDAQALQdy2yQBBAjoAACACLQAAIAJBADoAAEUNBEGUu8kAKAIAQf////8HcQRAQYy7yQAoAgANBgtBmLvJACgCAA0BQdy2yQBBAzoAAEGcu8kAQQE2AgALIABBIGokAAwGCwALIABBADYCGCAAQQE2AgwgAEGYg8gANgIIDAMLIABBADYCGCAAQQE2AgwgAEGUisEANgIIDAILQZyKwQAQ3QkACyAAQQA2AhggAEEBNgIMIABB0IbIADYCCCAAQgQ3AhAgAEEIakHYhsgAEI0IAAsgAEIENwIQIABBCGpB0OrAABCNCAALCyABQRBqJAALLgACQCADaUEBRyABQYCAgIB4IANrS3JFBEAgACABIAMgAhC7AiIADQELAAsgAAvzCgIJfwJ+IwBBEGsiCSQAENoEIgogBCYBIAMhCCMAQeACayIFJABBgICAgHghAwJAIABFBEBBgICAgHghAQwBCyAArSABrUIghoQhDgsgAgRAIAKtIAitQiCGhCEPIAghAwsgD6chCEEGIQcCQAJAAkACQAJAIAkCfwJAAkACQAJAIAFBgICAgHhGDQAgBUEUaiAOpyIAIA5CIIinEJEFIAUtABRBAUYEQCAFKAIYIQYgBUEANgL8ASAFQoCAgIAQNwL0ASAFQZyTwQA2AoQCIAVCoICAgA43AogCIAUgBUH0AWo2AoACIAYgBUGAAmoQrwQNAiAFKAL0ASEHIAUoAvgBIgsgBSgC/AEQ7AghAiAHBEAgC0EEaygCACIMQXhxIg1BBEEIIAxBA3EiDBsgB2pJDQkgDEEAIA0gB0EnaksbDQogCxCiAgsgBiAGKAIAKAIAEQMAIAEEQCAAQQRrKAIAIgZBeHEiB0EEQQggBkEDcSIGGyABakkNCSAGQQAgByABQSdqSxsNCiAAEKICCyAKQYQISQ0EIAoQmwcMBAsgBS0AFSEHIAFFDQAgAEEEaygCACICQXhxIgZBBEEIIAJBA3EiAhsgAWpJDQcgAkEAIAYgAUEnaksbDQggABCiAgtBAiEBIAoQuQoiDEUEQCAFQYACaiAKELUBIAUoAoACIQIgBS0AnAIiAUECRg0DIAVBMGogBUGUAmopAgA3AwAgBUEeaiAFQZ8Cai0AADoAACAFIAX9AAKEAv0LAyAgBSAFLwCdAjsBHAsgBUGTAWogBUEeai0AADoAACAFQYgBaiAFQTBqKQMANwIAIAUgBS8BHDsAkQEgBSACNgJ0IAVBADYCcCAFQoCAgIAQNwJoIAVCATcCYCAFQgA3AlggBUKAgICAEDcCUCAFQgQ3AkggBUIANwJAIAVCgICAgMAANwI4IAUgBf0AAyD9CwJ4IAVBADYClAEgBSABOgCQAQJ/IAdBBkcEQCAFQQhqIAcgBUE4ahDZAyAFKAIMIQYgBSgCCCELQYCAgIB4DAELIAVBgAJqIAVBPGpB3AD8CgAAQQALIQ1BgICAgHghASADQYCAgIB4RwRAIA9CIIinIQFBASECIA9CgICAgBBaBEAgARBxIgJFDQcLIAEEQCACIAggAfwKAAALIAKtIA9CgICAgHCDhCEOCyAFQZgBaiICIAVBgAJqQdwA/AoAAEGQARBxIgBFDQUgACANNgIYIAAgDjcCECAAIAE2AgwgAEEANgIIIABCgICAgBA3AgAgAEEcaiACQdwA/AoAACAAIAc6AIwBIAAgBjYCiAEgACALNgKEASAAQYCAgIB4NgJ4IAxFIApBhAhJcg0BIAoQmwcMAQtBoJ7GAEE3IAVB3wJqQbSTwQBB2J7GABDgBgALAkAgA0GAgICAeHJBgICAgHhHBEAgCEEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgA2pJDQYgAUEAIAIgA0EnaksbDQEgCBCiAgtBHBBxIgFFDQQgAUGg78AANgIYIAFBATYCFCABQYjvwAA2AhAgASAANgIMIAFBADYCCCABQoGAgIAQNwIAIAFBCGohAkEADAILDAULIANBgICAgHhyQYCAgIB4RwRAIAhBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIANqSQ0EIABBACABIANBJ2pLGw0CIAgQogILQQELIgA2AgggCSACQQAgABs2AgQgCUEAIAIgABs2AgAgBUHgAmokAAwEC0GMjcgAQS5BvI3IABDrBwsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgCSgCACAJKAIEIAkoAgggCUEQaiQACzcBAX9BASEAIAEoAgAiAkGlgcIAQQMgASgCBCgCDCIBEQAABH8gAAUgAkH7gcIAQQcgAREAAAsL9wEBBH8jAEEQayIFJAAQ2gQiBiABJgEQ2gQiBCADJgEgAiEHIAQhAiMAQdAAayIEJAACQCAHRQRAIARBCGogACAGQQBBACACEGkMAQsgBEEIaiAAIAZBASAHIAIQaQsCQAJAIAUCfyAEKAIIQYCAgIB4RgRAIAQoAgwhAEEBDAELQdQAEHEiAEUNASAAQQA2AgggAEKBgICAEDcCACAAQQxqIARBCGpByAD8CgAAIABBCGohAEEACyICNgIIIAUgAEEAIAIbNgIEIAVBACAAIAIbNgIAIARB0ABqJAAMAQsACyAFKAIAIAUoAgQgBSgCCCAFQRBqJAAL9QEBBH8jAEEQayIFJAAQ2gQiBCABJgEQ2gQiBiACJgEgBCEHIwBB0ABrIgQkAAJAIANFBEAgBEEIaiAAIAcgBkEAQQAQOwwBCyAEQQhqIAAgByAGQQEgAxA7CwJAAkACfyAEKAIIQYCAgIB4RgRAQQEhACAEKAIMDAELQdQAEHEiA0UNAUEAIQAgA0EANgIIIANCgYCAgBA3AgAgA0EMaiAEQQhqQcgA/AoAACADQQhqCyEDIAUgADYCCCAFIANBACAAGzYCBCAFQQAgAyAAGzYCACAEQdAAaiQADAELAAsgBSgCACAFKAIEIAUoAgggBUEQaiQAC5oLAgh/An4jAEEQayIIJAAgAiEHIwBB4AFrIgQkAEGAgICAeCECAkAgAEUEQEGAgICAeCEBDAELIACtIAGtQiCGhCEMCyAHBEAgB60gA61CIIaEIQ0gAyECC0GAgICAeCEDIA2nIQcCQAJAAkAgCAJ/AkACQAJAAkACQAJAIAFBgICAgHhHBEAgBEEQaiAMpyIAIAxCIIinEJEFIAQtABBBAUYEQCAEKAIUIQUgBEEANgKcASAEQoCAgIAQNwKUASAEQZyTwQA2AqQBIARCoICAgA43AqgBIAQgBEGUAWo2AqABIAUgBEGgAWoQrwQNBCAEKAKUASEGIAQoApgBIgogBCgCnAEQ7AghAyAGBEAgCkEEaygCACIJQXhxIgtBBEEIIAlBA3EiCRsgBmpJDQogCUEAIAsgBkEnaksbDQsgChCiAgsgBSAFKAIAKAIAEQMAIAEEQCAAQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyABakkNCiAFQQAgBiABQSdqSxsNCyAAEKICCyACQYCAgIB4ckGAgICAeEYNByAHQQRrKAIAIgBBeHEiAUEEQQggAEEDcSIAGyACakkNCSAAQQAgASACQSdqSxsNCiAHEKICQQEMCAsgBC0AESEFIAEEQCAAQQRrKAIAIgNBeHEiBkEEQQggA0EDcSIDGyABakkNCSADQQAgBiABQSdqSxsNBSAAEKICCyAEQoCAgIAgNwJIIARCAjcCQCAEQgA3AjggBEKAgICAIDcCMCAEQgQ3AiggBEIANwIgIARCgICAgMAANwIYIARCADcCUCAEQQhqIAUgBEEYahDgAkGAgICAeCEGIAQoAgwhCSAEKAIIIQpBgICAgHghAyACQYCAgIB4Rw0BDAILIARBLGoiAEIANwIAIARBPGoiAUKAgICAIDcCACAEQcwAakICNwIAIARCgICAgMAANwIkIARCBDcCHCAEQQA2AlQgBEICNwI0IARCADcCRCAEQdgBakEANgIAIARB0AFqQgI3AwAgBEHAAWogAf0AAgD9CwMAIARBsAFqIAD9AAIA/QsDACAEIAT9AAIc/QsDoAFBBiEFIAJBgICAgHhGDQELIA1CIIinIQNBASEBIA1CgICAgBBaBEAgAxBxIgFFDQQLIAMEQCABIAcgA/wKAAALIAGtIA1CgICAgHCDhCEMCyAEQZABaiIBIARB2AFqKAIANgIAIARBiAFqIARB0AFqKQMANwMAIARB+ABqIARBwAFq/QADAP0LAwAgBEHoAGogBEGwAWr9AAMA/QsDACAEIAT9AAOgAf0LA1hB8AAQcSIARQ0CIAAgBjYCGCAAIAw3AhAgACADNgIMIABBADYCCCAAQoCAgIAQNwIAIAAgBCkDWDcCHCAAIAU6AGwgACAJNgJoIAAgCjYCZCAAQYCAgIB4NgJYIABBJGogBEHgAGr9AAMA/QsCACAAQTRqIARB8ABq/QADAP0LAgAgAEHEAGogBEGAAWr9AAMA/QsCACAAQdQAaiABKAIANgIAIAJBgICAgHhyQYCAgIB4RwRAIAdBBGsoAgAiAUF4cSIDQQRBCCABQQNxIgEbIAJqSQ0GIAFBACADIAJBJ2pLGw0HIAcQogILQRwQcSICRQ0CIAJB2O/AADYCGCACQQE2AhQgAkHA78AANgIQIAIgADYCDCACQQA2AgggAkKBgICAEDcCACACQQhqIQNBAAwEC0GgnsYAQTcgBEHfAWpBtJPBAEHYnsYAEOAGAAtBjI3IAEEuQbyNyAAQ6wcLAAtBAQsiATYCCCAIIANBACABGzYCBCAIQQAgAyABGzYCACAEQeABaiQADAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAIKAIAIAgoAgQgCCgCCCAIQRBqJAAL9wEBBH8jAEEQayIFJAAQ2gQiBiABJgEQ2gQiBCADJgEgAiEHIAQhAiMAQfAAayIEJAACQCAHRQRAIARBCGogACAGQQBBACACEGcMAQsgBEEIaiAAIAZBASAHIAIQZwsCQAJAIAUCfyAEKAIIQYCAgIB4RgRAIAQoAgwhAEEBDAELQfQAEHEiAEUNASAAQQA2AgggAEKBgICAEDcCACAAQQxqIARBCGpB6AD8CgAAIABBCGohAEEACyICNgIIIAUgAEEAIAIbNgIEIAVBACAAIAIbNgIAIARB8ABqJAAMAQsACyAFKAIAIAUoAgQgBSgCCCAFQRBqJAAL/AECAn8BfiMAQRBrIgIkACACQQE7AQwgAiABNgIIIAIgADYCBCMAQRBrIgEkACACQQRqIgApAgAhBCABIAA2AgwgASAENwIEIwBBEGsiACQAIAFBBGoiASgCACICKAIMIQMCQAJAAkACQCACKAIEDgIAAQILIAMNAUEBIQJBACEDDAILIAMNACACKAIAIgIoAgQhAyACKAIAIQIMAQsgAEGAgICAeDYCACAAIAE2AgwgAEGAhsgAIAEoAgQgASgCCCIALQAIIAAtAAkQkgYACyAAIAM2AgQgACACNgIAIABB5IXIACABKAIEIAEoAggiAC0ACCAALQAJEJIGAAsnACACIARGBEAgBARAIAMgASAE/AoAAAsPCyAEIAJB/JrFABDeCQALJgEBfyMAQRBrIgIkACABKAIEGiAAQYj7xwAgARDBAyACQRBqJAALMwAgASgCACAAKAIAKAIAQQJ0IgBB2LDJAGooAgAgAEG0sMkAaigCACABKAIEKAIMEQAAC+AFAQt/IwBBEGsiBSQAENoEIgYgASYBIwBBsANrIgIkAAJAAkACQAJAAkACQCAABEAgAEEIayIHIAcoAgBBAWoiAzYCACADRQ0BIAAoAgAiBEH/////B08NAiAAIARBAWo2AgBBAiEDAkAgBhC5CiIKRQRAIAJB5AFqIAYQtQEgAigC5AEhBCACLQCAAiIDQQJGBEBBASEDDAILIAJBIGogAkH4AWopAgA3AwAgAkEOaiACQYMCai0AADoAACACIAL9AALoAf0LAxAgAiACLwCBAjsBDAsgAkHwAWogAkEYav0AAwD9CwIAIAJBgwJqIAJBDmotAAA6AAAgAiAENgLkASACIAIpAxA3AugBIAIgAzoAgAIgAiACLwEMOwCBAiACQShqIABBBGpBACACQeQBaiIEEIQBAkAgAigCKEECRgRAIAIoAiwhAyACQQA2AqgDIAJCgICAgBA3AqADIAJBnJPBADYC6AEgAkKggICADjcC7AEgAiACQaADajYC5AEgAyAEEK8EDQYgAigCoAMhCCACKAKkAyILIAIoAqgDEOwIIQQgCARAIAtBBGsoAgAiCUF4cSIMQQRBCCAJQQNxIgkbIAhqSQ0IIAlBACAMIAhBJ2pLGw0JIAsQogILIAMgAygCACgCABEDAEEBIQMgBkGECEkNAiAKDQEMAgsgAkHkAWoiAyACQShqQbwB/AoAACADENIBIQRBACEDIApFIAZBhAhJcg0BCyAGEJsHCyAAIAAoAgBBAWs2AgAgByAHKAIAQQFrIgA2AgAgAEUEQCAHEOMGCyAFIAM2AgggBSAEQQAgAxs2AgQgBUEAIAQgAxs2AgAgAkGwA2okAAwGCxCOCgsACxCQCgALQaCexgBBNyACQa8DakG0k8EAQdiexgAQ4AYAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgBSgCACAFKAIEIAUoAgggBUEQaiQAC+AFAQt/IwBBEGsiBSQAENoEIgYgASYBIwBBsANrIgIkAAJAAkACQAJAAkACQCAABEAgAEEIayIHIAcoAgBBAWoiAzYCACADRQ0BIAAoAgAiBEH/////B08NAiAAIARBAWo2AgBBAiEDAkAgBhC5CiIKRQRAIAJB5AFqIAYQtQEgAigC5AEhBCACLQCAAiIDQQJGBEBBASEDDAILIAJBIGogAkH4AWopAgA3AwAgAkEOaiACQYMCai0AADoAACACIAL9AALoAf0LAxAgAiACLwCBAjsBDAsgAkHwAWogAkEYav0AAwD9CwIAIAJBgwJqIAJBDmotAAA6AAAgAiAENgLkASACIAIpAxA3AugBIAIgAzoAgAIgAiACLwEMOwCBAiACQShqIABBBGpBASACQeQBaiIEEIQBAkAgAigCKEECRgRAIAIoAiwhAyACQQA2AqgDIAJCgICAgBA3AqADIAJBnJPBADYC6AEgAkKggICADjcC7AEgAiACQaADajYC5AEgAyAEEK8EDQYgAigCoAMhCCACKAKkAyILIAIoAqgDEOwIIQQgCARAIAtBBGsoAgAiCUF4cSIMQQRBCCAJQQNxIgkbIAhqSQ0IIAlBACAMIAhBJ2pLGw0JIAsQogILIAMgAygCACgCABEDAEEBIQMgBkGECEkNAiAKDQEMAgsgAkHkAWoiAyACQShqQbwB/AoAACADENIBIQRBACEDIApFIAZBhAhJcg0BCyAGEJsHCyAAIAAoAgBBAWs2AgAgByAHKAIAQQFrIgA2AgAgAEUEQCAHEOMGCyAFIAM2AgggBSAEQQAgAxs2AgQgBUEAIAQgAxs2AgAgAkGwA2okAAwGCxCOCgsACxCQCgALQaCexgBBNyACQa8DakG0k8EAQdiexgAQ4AYAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgBSgCACAFKAIEIAUoAgggBUEQaiQAC58RAwx/A34CfSMAQRBrIg0kACMAQSBrIgQkAEGwtckAKAIARQRAEFYLAkACQAJAAkACfwJAAkBBuLXJACgCAEUEQEG4tckAQX82AgACQAJAQcy1yQAoAgBFDQBBxLXJACgCACIJQdi1yQApAwAiDiAArYUiD0I4hiAPQoD+A4NCKIaEIA9CgID8B4NCGIYgD0KAgID4D4NCCIaEhCAOQgiIQoCAgPgPgyAOQhiIQoCA/AeDhCAOQiiIQoD+A4MgDkI4iISEhELSgaqbq/qC16d/fiIOQjiGIA5CgP4Dg0IohoQgDkKAgPwHg0IYhiAOQoCAgPgPg0IIhoSEIA5CCIhCgICA+A+DIA5CGIhCgID8B4OEIA5CKIhCgP4DgyAOQjiIhISEIA9C2KLR78Kp5b8tfoUiEEI4hiAQQoD+A4NCKIaEIBBCgID8B4NCGIYgEEKAgID4D4NCCIaEhCAQQgiIQoCAgPgPgyAQQhiIQoCA/AeDhCAQQiiIQoD+A4MgEEI4iISEhEHQtckAKQMAIg5Cf4V+Ig9COIYgD0KA/gODQiiGhCAPQoCA/AeDQhiGIA9CgICA+A+DQgiGhIQgD0IIiEKAgID4D4MgD0IYiEKAgPwHg4QgD0IoiEKA/gODIA9COIiEhIQgECAOQjiGIA5CgP4Dg0IohoQgDkKAgPwHg0IYhiAOQoCAgPgPg0IIhoSEIA5CCIhCgICA+A+DIA5CGIhCgID8B4OEIA5CKIhCgP4DgyAOQjiIhISEfoUgEIkiD6dxIQMgD0IZiEL/AINCgYKEiJCgwIABfiEOQcC1yQAoAgAiBkEgayECA0AgAyAGaikAACIQIA6FIg9Cf4UgD0KBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIPUEUEQANAIAAgAiAPeqdBA3YgA2ogCXEiBUEFdGsoAgBGDQQgD0IBfSAPgyIPUEUNAAsLIBAgEEIBhoNCgIGChIiQoMCAf4NQRQ0BIAMgCEEIaiIIaiAJcSEDDAALAAtBiPTAABDdCQALIAZBACAFa0EFdGpBBGsoAgAiCigCCCIAQf////8HTw0BIAogAEEBajYCCCAKKAIUBEAgCigCEEEKai8BACIAQf//AXFFBEAgAEEQdAwFCyAAQf8HcSECIABBgIACcSEFIABBgPgBcSIAQYD4AUYEQCAFQRB0IgBBgICA/AdyIAJFDQUaIAAgAkENdHJBgICA/gdyDAULIAVBEHQhBSAARQ0DIABBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAFcgwEC0EAQQBBmPTAABCMBwwEC0GsisEAELAKAAtB8PTAABCxCgALIAIgAmdBEGsiAEH//wNxQQhqdEH///8DcSAFQYCAgNgDciAAQRd0a3ILQwAAoD8hEUMAAKA/QwAAgD8gASABQR91IgBzIABrIgJBAXEbIRIgAkECTwRAA0AgEiARIBGUIhGUIBIgAkECcRshEiACQQNLIAJBAXYhAg0ACwtBBBBxIgVFDQC+QwAAgD8gEpUgEiABQQBIG5UhESAFQQA2AgAgBEEANgIQIARCgICAgMAANwIIQQQhC0EBIQhBASEDAkADQCAEQQA2AhwgBEKAgICAwAA3AhQgBSADQQJ0aiEGIAUhAANAIAAoAgAiByAKKAIUIgFPBEAgByABQcD0wAAQjAcACwJAIBECfyAKKAIQIAdBBHRqIglBCmovAQAiAUH//wFxRQRAIAFBEHQMAQsgAUH/B3EhAyABQYCAAnEhAiABQYD4AXEiAUGA+AFGBEAgAkEQdCIBQYCAgPwHciADRQ0BGiABIANBDXRyQYCAgP4HcgwBCyACQRB0IgIgAUENdEGAgID8AHEgA0ENdHJBgICAwANqciABDQAaIAMgA2dBEGsiAUH//wNxQQhqdEH///8DcSACQYCAgNgDciABQRd0a3ILvmBFBEAgCSgCACIDIAMgCS8BDCIBak8NASAEKAIcIgJBAnQhBwNAIAQoAhQgAkYEQCAEQRRqQdD0wAAQ+gULIAQoAhggB2ogAzYCACAEIAJBAWoiAjYCHCADQQFqIQMgB0EEaiEHIAFBAWsiAQ0ACwwBCyAEKAIIIAxGBEAgBEEIakHg9MAAEPoFIAQoAgwhCwsgCyAMQQJ0aiAHNgIAIAQgDEEBaiIMNgIQCyAAQQRqIgAgBkcNAAsCQCAIBEAgBUEEaygCACIAQXhxIgIgCEECdCIBQQRBCCAAQQNxIgAbakkNASAAQQAgAiABQSdqSxsNBiAFEKICCyAEKAIYIQUgBCgCFCEIIAQoAhwiA0UNAgwBCwsMAgsgDBC2CSELIAQoAgwhACAEKAIIIQkgDARAIAxBAnQhB0EAIQMgACECA0AgCyUBIAMgAigCABAaIANBAWohAyACQQRqIQIgB0EEayIHDQALCyAJBEAgAEEEaygCACIBQXhxIgYgCUECdCICQQRBCCABQQNxIgEbakkNAiABQQAgBiACQSdqSxsNAyAAEKICCxC/CSIGQaj0wABBBxDsCCIAIAsQwAkCQEG0u8kALQAARQRAQbi7yQBBADYCAEG0u8kAQQA6AAAgC0GECE8EQCALEJsHCyAAQYQITwRAIAAQmwcLIAgEQCAFQQRrKAIAIgBBeHEiAiAIQQJ0IgFBBEEIIABBA3EiABtqSQ0EIABBACACIAFBJ2pLGw0CIAUQogILIAogCigCCEEBazYCCCANQgA3AgQgDSAGNgIAQbi1yQBBuLXJACgCAEEBajYCACAEQSBqJAAMBQtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgBCAANgIUQdjmyABBKyAEQRRqQdjowABBsPTAABDgBgALDAILAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIA0oAgAgDSgCBCANKAIIIA1BEGokAAuWCQILfwF7IwBBEGsiCCQAENoEIgsgASYBIAAhBiMAQUBqIgQkAEGwtckAKAIARQRAEFYLAkACQAJAAkACQEG4tckAKAIARQRAQbi1yQBBfzYCACAGQf////8ASw0BIAZBBHQiAEH9////B08NAUGgtskAKAIAIQwCQAJAIABFBEBBBCEADAELIAYhBSAAEHEiAEUNAQtBGBBxIglFDQAgBkEQdiAGQf//A3FBAEdqIQMgCUEANgIUIAkgADYCECAJIAU2AgwgCUEANgIIIAlCgYCAgBA3AgAgBkUEQEEEIQpBBCEHDAcLIANBAnQiBxBxIgpFDQACQCADQQRPBED9DAAAAAABAAAAAgAAAAMAAAAhDSAKIQAgA0H8P3EiAiEFA0AgACAN/QsCACAAQRBqIQAgDf0MBAAAAAQAAAAEAAAABAAAAP2uASENIAVBBGsiBQ0ACyACIANGDQELIAogAkECdGohAANAIAAgAjYCACAAQQRqIQAgAyACQQFqIgJHDQALIAcQcSIHRQ0BQQAhAiADQQRJDQUMBAsgBxBxIgcNAwsAC0GsisEAELAKAAtByPLAABD/BwAL/QwAAAAAAQAAAAIAAAADAAAAIQ0gByEAIANB/D9xIgIhBQNAIAAgDf0LAgAgAEEQaiEAIA39DAQAAAAEAAAABAAAAAQAAAD9rgEhDSAFQQRrIgUNAAsgAiADRg0BCyAHIAJBAnRqIQADQCAAIAI2AgAgAEEEaiEAIAMgAkEBaiICRw0ACwsgAyECCyAEIAM2AjggBCAHNgI0IAQgAzYCMCAEIAM2AiwgBCAKNgIoIAQgAjYCJCAEIAk2AjwgBEEIaiAMIARBJGoQnwICQAJAAkACQAJAAkACQCAEKAIIIgBBgICAgHhGDQAgBCgCICICIAIoAgBBAWsiAzYCACADRQRAIAIQ0gULIAAEQCAEKAIMIgJBBGsoAgAiA0F4cSIFIABBAnQiAEEEQQggA0EDcSIDG2pJDQIgA0EAIAUgAEEnaksbDQMgAhCiAgsgBCgCFCIARQ0AIAQoAhgiAkEEaygCACIDQXhxIgUgAEECdCIAQQRBCCADQQNxIgMbakkNAyADQQAgBSAAQSdqSxsNBCACEKICC0GgtskAQaC2yQAoAgBBAWo2AgAgDEEAIAYgCxDTARC/CSICQbDywABBBRDsCCIAIAy4ELcJIgYQwAlBtLvJAC0AAA0EQbi7yQBBADYCAEG0u8kAQQA6AAAgBkGECE8EQCAGEJsHCyAAQYQITwRAIAAQmwcLQbi1yQBBuLXJACgCAEEBajYCACALQYQITwRAIAsQmwcLIAhCADcCBCAIIAI2AgAgBEFAayQADAULQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgBCAANgIkQdjmyABBKyAEQSRqQdjowABB2PLAABDgBgALIAgoAgAgCCgCBCAIKAIIIAhBEGokAAvLAwEDfyMAQRBrIgMkAEEIIQQCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBFSAAKAIAIgVBgICAgHhzIAVBAE4bQQFrDhUBAgMEBQYHCAkKCwwNDg8UFBAREhMACyADIAAtAAQ6AAEgA0EAOgAADBYLIAMgADEABDcDCAwTCyADIAAzAQQ3AwgMEgsgAyAANQIENwMIDBELIAMgACkDCDcDCAwQCyADIAAwAAQ3AwgMEAsgAyAAMgEENwMIDA8LIAMgADQCBDcDCAwOCyADIAApAwg3AwgMDQsgAyAAKgIEuzkDCCADQQM6AAAMDQsgAyAAKwMIOQMIIANBAzoAAAwMCyADIAAoAgQ2AgQgA0EEOgAADAsLIAMgACkDCDcCBCADQQU6AAAMCgsgAyAAKQIENwIEIANBBToAAAwJCyADIAApAwg3AgQgA0EGOgAADAgLIAMgACkCBDcCBCADQQY6AAAMBwsgA0EHOgAADAYLIANBCToAAAwFCyADQQo6AAAMBAtBCyEECyADIAQ6AAAMAgsgA0EBOgAADAELIANBAjoAAAsgAyABIAIQ3wYgA0EQaiQACy8AIAEoAgAgAC0AAEEEakH/AXFBAnQiACgCgO1BIAAoAuTsQSABKAIEKAIMEQAACy8AIAEoAgAgAC0AAEEBa0H/AXFBAnQiACgCwItJIAAoAviKSSABKAIEKAIMEQAACy8AIAEoAgAgAC0AAEEBa0H/AXFBAnQiACgC4IxJIAAoAoiMSSABKAIEKAIMEQAACy8AIAEoAgAgAC0AAEEBa0H/AXFBAnQiACgCgJpJIAAoAriZSSABKAIEKAIMEQAACy8AIAEoAgAgAC0AAEEBa0H/AXFBAnQiACgCoJtJIAAoAsiaSSABKAIEKAIMEQAACy8AIAEoAgAgAC0AAEEEakH/AXFBAnQiACgCwKFJIAAoAqShSSABKAIEKAIMEQAAC+0DAQp/IwBBEGsiAyQAIwBBoANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIEIAQoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAUEIaiAAQQRqQQAQdgJ/IAEoAggiCUECRgRAIAEoAgwhAiABQQA2ApgDIAFCgICAgBA3ApADIAFBnJPBADYC0AEgAUKggICADjcC1AEgASABQZADajYCzAEgAiABQcwBahCvBA0FIAEoApADIQUgASgClAMiCCABKAKYAxDsCCEHIAUEQCAIQQRrKAIAIgZBeHEiCkEEQQggBkEDcSIGGyAFakkNByAGQQAgCiAFQSdqSxsNCCAIEKICCyACIAIoAgAoAgARAwBBAAwBCyABQcwBaiICIAFBCGpBxAH8CgAAIAIQ0QELIQIgACAAKAIAQQFrNgIAIAQgBCgCAEEBayIANgIAIABFBEAgBBDkBgsgAyAHNgIEIAMgAjYCACADIAlBAkY2AgggAUGgA2okAAwGCxCOCgsACxCQCgALQaCexgBBNyABQZ8DakG0k8EAQdiexgAQ4AYAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgAygCACADKAIEIAMoAgggA0EQaiQAC5oFAQp/IwBBEGsiAyQAIwBBsANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIFIAUoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAC0AXCICQQJHBEAgAUEgaiAAQdgAaigCADYCACABQRhqIABB0ABqKQIANwMAIAFBBmogAEHfAGotAAA6AAAgASAA/QACQP0LAwggASAALwBdOwEECyABQfgBaiABQSBqKAIANgIAIAFB8AFqIAFBGGopAwA3AwAgAUH/AWogAUEGai0AADoAACABIAH9AAMI/QsD4AEgASACOgD8ASABIAEvAQQ7AP0BIAFBJGogAEEEakEAIAFB4AFqIgQQcgJ/IAEoAiQiCUECRgRAIAEoAighAiABQQA2AqgDIAFCgICAgBA3AqADIAFBnJPBADYC5AEgAUKggICADjcC6AEgASABQaADajYC4AEgAiAEEK8EDQUgASgCoAMhBCAB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CxCQCgALLAAgASgCACAAKAIALQAAaEECdCIAKAL0h0kgACgC4IdJIAEoAgQoAgwRAAALLAAgASgCACAAKAIALQAAaEECdCIAKAKEjkkgACgC8I1JIAEoAgQoAgwRAAALLgAgAEEcakEAIAEpAgBC2v2W/+no6PrBAIUgASkCCELW+4aRyMDiv/4AhYRQGwssACAAQRxqQQAgASkCAELtwsSbx9P/rT+FIAEpAghC/J7N1v6Dwrh+hYRQGwsuACAAQRxqQQAgASkCAELtuq22zYXU9eMAhSABKQIIQviCmb2V7sbFuX+FhFAbCywAIABBHGpBACABKQIAQvep0+7yobOVe4UgASkCCEKWuaPa9sSH1CeFhFAbCysAIAEoAgAgACgCAC0AAEECdCIAKALohkkgACgCqIZJIAEoAgQoAgwRAAALKQAgASgCACAALQAAaEECdCIAKAKciEkgACgCiIhJIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAqiJSSAAKALoiEkgASgCBCgCDBEAAAslACAARQRAQa35xABBMhCPCgALIAAgAiADIAQgBSABKAIQEQ8ACysAIAEoAgAgACgCAC0AAEECdCIAKALUjUkgACgCuI1JIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAtiOSSAAKAKYjkkgASgCBCgCDBEAAAsrACABKAIAIAAoAgAtAABBAnQiACgC0JFJIAAoAryRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQp6ptofpq8f75ACFIAEpAghChJXY5rmb/qdphYRQGwsrACABKAIAIAAoAgAtAABBAnQiACgC+JFJIAAoAuSRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQvXXvMnIzNazOoUgASkCCEL+28ub8+W5xvUAhYRQGwsuACAAQSBqQQAgASkCAELhypSvjYKC2fIAhSABKQIIQqbKhrK+ypOwu3+FhFAbCy0AIABBHGpBACABKQIAQpLXooDhkqzi9QCFIAEpAghClJ2A4Jq0sLALhYRQGwslACAAQYiWwQA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAK87EEgACgClOxBIAEoAgQoAgwRAAALKAAgASgCACAALQAAQQJ0IgAoAtDtQSAAKAKc7UEgASgCBCgCDBEAAAshACAAQcDOxAA2AgQgACABQQRqQQAgAS0AAEEkRhs2AgALKAAgASgCACAALQAAQQJ0IgAoAsyISSAAKAKwiEkgASgCBCgCDBEAAAsoACABKAIAIAAtAABBAnQiACgCsIpJIAAoAuiJSSABKAIEKAIMEQAACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQsACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWUACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWcACygAIAEoAgAgAC0AAEECdCIAKALwmEkgACgCqJhJIAEoAgQoAgwRAAALIgAgASgCKEECRwRAIAAgASkC3AI3AwAPC0GsmMcAEN0JAAslACAAQailxwA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAKEo0kgACgC3KFJIAEoAgQoAgwRAAALJwAgACgCAC0AAEUEQCABQfKzxQBBBRCXAw8LIAFB97PFAEEEEJcDCyQAIAAtAABFBEAgAUHys8UAQQUQlwMPCyABQfezxQBBBBCXAwshACAARQRAQa35xABBMhCPCgALIAAgAiADIAEoAhARBQALIQAgAEUEQEGt+cQAQTIQjwoACyAAIAIgAyABKAIQEQAACyEAIAEoAgAgAC0AAEECdCgCiOxBQQEgASgCBCgCDBEAAAsiACABIAAtAABBAnQiACgCiIZJIAAoAuiFSSACKAIMEQAACx4AIABBwM7EADYCBCAAQQAgAUEEaiABLQAAGzYCAAscACABIAAoAgAiAEEEaigCACAAQQhqKAIAEJcDCx8AIABFBEBBrfnEAEEyEI8KAAsgACACIAEoAhARAgALthQBEn8Q2gQiCyABJgECfyAAIQ0Q2gQiEiACJgEgCyETIwBBQGoiByQAIAsQuAohAEHUtMkAKAIARQRAAkBBkLXJACgCACELQYy1yQAoAgAhBEGMtckAQoCAgIDAADcCAEGEtckAKAIAIQhBhLXJAEIE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ACgCACEHIA1BACADEOEIIgAQuAohCSAEIAM2AhggBCAJNgIMIAMgCUcNASAAIAcgAxDgCSAAQYQISQ0CIAAQmwcMAgtBACADIABB3OvAABDqBwALDAELIAhBhAhPBEAgCBCbBwtBrLTJAEGstMkAKAIAQQFqNgIAIA1BhAhPBEAgDRCbBwsgDkGECE8EQCAOEJsHCyAEQUBrJAAgAwwBCyAEQQA2AihBACAEQQxqIARBGGogBEEoakHg+cQAEPUHAAsLHAAgAEEEahDqAiAAKAIkIgAgACgCACgCABEDAAscACAAKAIAIgAoAgAgASAAQQRqKAIAKAIQEQIACxwAIAAoAgAiACgCACABIABBBGooAgAoAgwRAgALFAAgACAAIAEgACABXRsgASABXBsLFAAgASABIAAgACABXRsgACAAXBsLGwEBbyAAJQEgASACEAAhAxDaBCIAIAMmASAACxsBAW8gACUBIAElARAJIQIQ2gQiACACJgEgAAscAQFvIAAlASABJQEgARCbByACJQEgAhCbBxALCx8AQYi7yQAtAABFBEBBiLvJAEEBOgAACyAAQQE2AgALHQAgASAALQAAQQJ0IgAoAqSESSAAKAKQhEkQlwMLHAAgASgCACAAKAIAIAAoAgQgASgCBCgCDBEAAAsZACABIAAoAgAiACgCACAAQQRqKAIAEJcDCxkBAW8gACUBIAEQDCECENoEIgAgAiYBIAALFwAgACgCACABIAAoAgRBDGooAgARAgALFQAgACgCACIAQYQITwRAIAAQmwcLCxcBAW8gACABEA8hAhDaBCIAIAImASAACxcBAW8gACABECwhAhDaBCIAIAImASAACxYAIAEgACgCACIAKAIAIAAoAgQQlwMLGQAgASgCAEGQl8cAQRMgASgCBCgCDBEAAAsZACABKAIAQdmXxwBBFyABKAIEKAIMEQAACxkAIAEoAgBB6ZLGAEEIIAEoAgQoAgwRAAALGQAgASgCAEGjl8cAQRAgASgCBCgCDBEAAAsZACABKAIAQaTlwABBFCABKAIEKAIMEQAACxkAIAEoAgBB5ZLGAEEEIAEoAgQoAgwRAAALGQAgASgCAEGilscAQQwgASgCBCgCDBEAAAsZACABKAIAQYWQxgBBAyABKAIEKAIMEQAACxkAIAEoAgBB8JfHAEEUIAEoAgQoAgwR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AgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOQGCwwDCxCOCgsACxCQCgALC4gBAQN/ENoEIgMgASYBAkACQAJAIAAEQCAAQQhrIgIgAigCAEEBaiIENgIAIARFDQEgACgCAA0CIABBfzYCACAAQQhqKAIAIABBDGooAgAgAxCtAyAAIAAoAgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOMGCwwDCxCOCgsACxCQCgALCxEAIAEgACgCACAAKAIEEJcDCxMAIABBKDYCBCAAQZifxwA2AgALEQAgASAAKAIEIAAoAggQlwMLEwAgAEHomsEANgIEIAAgATYCAAsTACAAQaSbwQA2AgQgACABNgIACxMAIABB4JvBADYCBCAAIAE2AgALEwAgAEGMnMEANgIEIAAgATYCAAsTACAAQcicwQA2AgQgACABNgIACxMAIABBhJ3BADYCBCAAIAE2AgALEwAgAEHAncEANgIEIAAgATYCAAsTACAAQfydwQA2AgQgACABNgIACxEAIAAoAgQgACgCCCABELUCCxEAIAEoAgAgASgCBCAAEMEDCxwAIABBmLvP7AM2AgggAELQ5+byk+vFmz83AgALEQAgACgCACAAKAIEIAEQtQILEwAgAEHMs8cANgIEIAAgATYCAAsTACAAQdyxxwA2AgQgACABNgIACxMAIABBiLTHADYCBCAAIAE2AgALEwAgAEHUsscANgIEIAAgATYCAAsTACAAQZiyxwA2AgQgACABNgIACxMAIABBkLPHADYCBCAAIAE2AgALEwAgAEG8jMgANgIEIAAgATYCAAsWAEG4u8kAIAA2AgBBtLvJAEEBOgAACxEBAX8Q2gQiASAAJQEmASABCw4AIAAlASABJQFBABAWCw8AQayewgBBKyAAEOsHAAtpAQF/IwBBMGsiAyQAIAMgADYCBCADIAE2AgAgA0EDNgIMIANB+JvCADYCCCADQgI3AhQgAyADQQRqrUKAgICAEIQ3AyggAyADrUKAgICAEIQ3AyAgAyADQSBqNgIQIANBCGogAhCNCAALEgAgACABLQDoBC0A+J1JOgAACwwAIAAlASABIAIQAgsMACAAIAEgAiUBEAMLDQAgACUBIAElARAIGgsMACAAIAEgAiUBEBkLEQAgAEGohsEA/QACAP0LAgALEQAgAEG4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IAEgAEGAgIB8IApBAWp1IAdxvpMiAJK8BSAJC0GAgH5xviICQwByMT+UIgUgAkOMvr81lCABIAIgAJOTQxhyMT+UkiICkiIAIAAgACAAIACUIgEgASABIAEgAUNMuzEzlEMO6t21kpRDVbOKOJKUQ2ELNruSlEOrqio+kpSTIgGUIAFDAAAAwJKVIAIgACAFk5MiASAAIAGUkpOTQwAAgD+SIgC8IAhBF3RqIglBgICABE4EQCAJvgwBCyAAIAgQsAYLlCECCyACDAMLIAVDYEKiDZRDYEKiDZQMAgsgBUNgQqINlENgQqINlAwBCyAFQ8rySXGUQ8rySXGUCwsIACAAJQEQAQsIACAAJQEQCgsIACAAJQEQFQsIACAAJQEQFwsIACAAJQEQGwsIACAALQDoBAsHABAqEIUICwQAQQALBABBAQsCAAsLtK4JiAEAQYCAwAAL8WFpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdAAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvc3B6LnJzAGxpYnJhcnkvY29yZS9zcmMvc3RyL2xvc3N5LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9wbHkucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL2xlZ2FjeS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL2l0ZXIvYWRhcHRlcnMvc3RlcF9ieS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvdHdvd2F5LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvaW5mbGF0ZS93aW5kb3cucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy95dXYucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZmx0MmRlYy9zdHJhdGVneS9ncmlzdS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc2hhcmVkL3NtYWxsc29ydC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL3F1aWNrc29ydC5ycwBzcGFyay13b3JrZXItcnMvc3JjL3NvcnQucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvYm94ZWQvY29udmVydC5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9mbXQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9mbXQucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZGl5X2Zsb2F0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy90c3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2tzcGxhdC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvYW50aXNwbGF0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9nc3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2NzcGxhdC5ycwBzcGFyay13b3JrZXItcnMvc3JjL2V4dF9zcGxhdHMucnMAc3Bhcmstd29ya2VyLXJzL3NyYy9wYWNrZWRfc3BsYXRzLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvZmRlZmxhdGUtMC4zLjcvc3JjL2RlY29tcHJlc3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzcy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2NvcmUtMS4wLjIyOC9zcmMvZGUvaW1wbHMucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL3NvZ3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlL2luZnRyZWVzLnJzAGxpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9tdXRleC9ub190aHJlYWRzLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9vbmNlL25vX3RocmVhZHMucnMAbGlicmFyeS9hbGxvYy9zcmMvc3RyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaXRlci90cmFpdHMvaXRlcmF0b3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9lcnJvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZXJyb3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2xvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9nZW5lcmljL3BhY2tlZHBhaXIucnMAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9tZW1jaHIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb29wX2ZpbHRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2luZmxhdGUvd3JpdGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaXRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2luZGV4bWFwLTIuMTMuMC9zcmMvaW5uZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9vdXRwdXRfYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci91bmZpbHRlcmluZ19idWZmZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9pbWFnZXMvYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci9yZWFkX2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy92cDhfYXJpdGhtZXRpY19kZWNvZGVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvY29kZWNzL3dlYnAvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL3JlYWQvbWFnaWNfZmluZGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvY21wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9leHRyYV9maWVsZHMvZXh0ZW5kZWRfdGltZXN0YW1wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvbWV0YWRhdGEvY2ljcC5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vc3RkaW8ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2NvbW1vbi5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL29wcy9mdW5jdGlvbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL3N0cmF0ZWd5L2RyYWdvbi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ZkZWZsYXRlLTAuMy43L3NyYy9odWZmbWFuLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvaHVmZm1hbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9iaWdudW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzc190cmFuc2Zvcm0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3RyYW5zZm9ybS5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vYnVmZmVyZWQvbGluZXdyaXRlcnNoaW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3N0cmVhbS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvdGhyZWFkL2xvY2FsLnJzAGxpYnJhcnkvc3RkL3NyYy9zeW5jL2xhenlfbG9jay5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3luYy9yZWVudHJhbnRfbG9jay5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvc3luYy9vbmNlX2xvY2sucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2RlY3MvcG5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwBsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaW8vYm9ycm93ZWRfYnVmLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTcvc3JjL2V4dGVybnJlZi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvdHJhbnNmb3JtL3BhbGV0dGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvYWxsb2NhdGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9jb3JlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvaW8vaW1hZ2VfcmVhZGVyX3R5cGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9zdGFibGUucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3ByaW50YWJsZS5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvY2h1bmtfdHJlZS5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xvZF90cmVlLnJzAHNwYXJrLWxpYi9zcmMvc3BsYXRfZW5jb2RlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtMS4wLjIyOC9zcmMvcHJpdmF0ZS9kZS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZGUucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL3N5bmMvcG9pc29uL29uY2UucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvc2xpY2UucnMAbGlicmFyeS9zdGQvc3JjL2JhY2t0cmFjZS5ycwAvcnVzdC9kZXBzL2hhc2hicm93bi0wLjE1LjUvc3JjL3Jhdy9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9oYXNoYnJvd24tMC4xNi4xL3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvcGFja2VkcGFpci9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL21vZC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy9iaW5hcnlfaGVhcC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL2lvL21vZC5ycwBsaWJyYXJ5L3N0ZC9zcmMvLi4vLi4vYmFja3RyYWNlL3NyYy9zeW1ib2xpemUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWluaXpfb3hpZGUtMC44Ljkvc3JjL2luZmxhdGUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAbGlicmFyeS9zdGQvc3JjL3RocmVhZC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvdmVjL21vZC5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL21vZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvdGlueV9sb2QucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2JoYXR0X2xvZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2NyYzMyL2JyYWlkLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3ZlYy9zcGVjX2Zyb21faXRlcl9uZXN0ZWQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9leHRlbmRlZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvcmFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfanNvbi0xLjAuMTQ1L3NyYy9yZWFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9yZWFkLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjEwL3NyYy9kbG1hbGxvYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvc3BlYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvemxpYi5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NvbnNvbGVfZXJyb3JfcGFuaWNfaG9vay0wLjEuNy9zcmMvbGliLnJzAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI2L3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZS13YXNtLWJpbmRnZW4tMC42LjUvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2pzLXN5cy0wLjMuOTQvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NtYWxsdmVjLTEuMTUuMS9zcmMvbGliLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvdGV4dF9tZXRhZGF0YS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3VuaWNvZGUvdW5pY29kZV9kYXRhLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvdnA4LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvYWRhbTcucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL2NwNDM3LnJzAHNwYXJrLWxpYi9zcmMvc3ltbWF0My5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvY3JjMzIucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL3YwLnJzAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGludmFsaWQgd2luZG93IHNpemUAcmVwZWF0ZWQgY2FsbCB3aXRoIGJhZCBzdGF0ZQBpbnZhbGlkIGJsb2NrIHR5cGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABJSSoA7AUQACQAAABEAwAADQAAAOwFEAAkAAAARQMAAA0AAADsBRAAJAAAAEYDAAANAAAA7AUQACQAAABDAwAAQQAAAOwFEAAkAAAATwMAAA0AAADsBRAAJAAAAE8DAAA+AAAA7AUQACQAAAC4AwAAIQAAAOwFEAAkAAAAuAMAAA0AAADsBRAAJAAAALYDAAAlAAAA7AUQACQAAADGAwAAIQAAAOwFEAAkAAAAxgMAAA0AAADsBRAAJAAAAMQDAAAlAAAA7AUQACQAAABZAwAADQAAAOwFEAAkAAAAWgMAAA0AAADsBRAAJAAAAFsDAAANAAAA7AUQACQAAABYAwAAOwAAAOwFEAAkAAAAhAMAACUAAADsBRAAJAAAAIQDAAA2AAAA7AUQACQAAACGAwAAHQAAAOwFEAAkAAAAgAMAACUAAADsBRAAJAAAAJYDAAAlAAAA7AUQACQAAACWAwAANgAAAOwFEAAkAAAAlgMAAEsAAADsBRAAJAAAAJYDAABgAAAA7AUQACQAAACYAwAAHgAAAOwFEAAkAAAAkgMAACUAAADsBRAAJAAAAKgDAAAlAAAA7AUQACQAAACoAwAANgAAAOwFEAAkAAAAqAMAAEsAAADsBRAAJAAAAKgDAABgAAAA7AUQACQAAACqAwAAHgAAAOwFEAAkAAAApAMAACUAAADsBRAAJAAAAHEDAAANAAAA7AUQACQAAAByAwAADQAAAOwFEAAkAAAAcwMAAA0AAADsBRAAJAAAAHQDAAANAAAA7AUQACQAAABwAwAAPQAAAOwFEAAkAAAAZQMAAA0AAADsBRAAJAAAAGYDAAANAAAA7AUQACQAAABnAwAADQAAAOwFEAAkAAAAZAMAAD8AAACmAxAAUgAAAFIAAAATAAAADQUQAEAAAAB2AAAAIAAAAA0FEABAAAAAdQAAACIAAAANBRAAQAAAAHQAAAAeAAAADQUQAEAAAABzAAAAJgAAAA0FEABAAAAAcgAAACQAAAANBRAAQAAAAFQAAAAXAAAADQUQAEAAAABVAAAAFwAAAA0FEABAAAAAVgAAABcAAAANBRAAQAAAAFgAAAAWAAAADQUQAEAAAABZAAAAFgAAAA0FEABAAAAAWgAAABYAAAANBRAAQAAAAFwAAAAqAAAADQUQAEAAAABcAAAAFAAAAA0FEABAAAAAXQAAACoAAAANBRAAQAAAAF0AAAAUAAAADQUQAEAAAABeAAAAKgAAAA0FEABAAAAAXgAAABQAAAANBRAAQAAAAGAAAAApAAAADQUQAEAAAABgAAAAGAAAAA0FEABAAAAAYgAAACYAAAANBRAAQAAAAGMAAAAmAAAADQUQAEAAAABkAAAAJgAAAA0FEABAAAAAZQAAACYAAAANBRAAQAAAAGgAAAAVAAAADQUQAEAAAABpAAAAFQAAAA0FEABAAAAAagAAABUAAAANBRAAQAAAAGsAAAAVAAAASW52YWxpZCAuc3BsYXQgZmlsZSBzaXpl7CwQABgAAABhdHRlbXB0ZWQgdG8gdGFrZSBvd25lcnNoaXAgb2YgUnVzdCB2YWx1ZSB3aGlsZSBpdCB3YXMgYm9ycm93ZWRNYXBBY2Nlc3M6Om5leHRfdmFsdWUgY2FsbGVkIGJlZm9yZSBuZXh0X2tleQD6GRAAYwAAAGYKAAAfAAAA7AUQACQAAADuAQAAOAAAAOwFEAAkAAAA7gEAAFkAAADsBRAAJAAAAPcBAABHAAAA7AUQACQAAAD3AQAAOQAAAOwFEAAkAAAAZAIAAC4AAADsBRAAJAAAAGQCAAAfAAAA7AUQACQAAABlAgAAHwAAAOwFEAAkAAAAWQIAACoAAADsBRAAJAAAAIQCAAA2AAAA7AUQACQAAACEAgAAIwAAAOwFEAAkAAAAeAIAACoAAADsBRAAJAAAAKQCAAA2AAAA7AUQACQAAACkAgAAIwAAAOwFEAAkAAAAmAIAACoAAADsBRAAJAAAANQCAAAlAAAA7AUQACQAAADYAgAAPAAAAOwFEAAkAAAA2AIAAB0AAADsBRAAJAAAANICAAAyAAAA7AUQACQAAADDAgAAIQAAAOwFEAAkAAAAxwIAADgAAADsBRAAJAAAAMcCAAAZAAAA7AUQACQAAADBAgAALgAAAOwFEAAkAAAAtAIAAB0AAADsBRAAJAAAALcCAAAsAAAA7AUQACQAAAC3AgAAEQAAAOwFEAAkAAAAuAIAADAAAADsBRAAJAAAALICAAAqAAAA7AUQACQAAADjAgAAJgAAAOwFEAAkAAAA5wIAACAAAADsBRAAJAAAAOcCAAATAAAA7AUQACQAAADtAgAAJgAAAOwFEAAkAAAA8QIAACAAAADsBRAAJAAAAPECAAATAAAA7AUQACQAAAB/AQAANgAAAOwFEAAkAAAAgAEAADYAAADsBRAAJAAAAI0BAAAzAAAA7AUQACQAAACOAQAAMwAAAOwFEAAkAAAAigEAAEQAAADsBRAAJAAAAIUBAAApAAAATWlzc2luZyBjaGlsZF9jb3VudHMgb3IgY2hpbGRfc3RhcnRz+C8QACQAAADsBRAAJAAAAAACAAA1AAAA7AUQACQAAAAAAgAAVgAAAOwFEAAkAAAAMAIAACoAAADsBRAAJAAAABsCAAA2AAAA7AUQACQAAAAbAgAAVwAAAOwFEAAkAAAAxgEAABUAAADsBRAAJAAAAMQBAAAlAAAA7AUQACQAAADIAQAAKAAAAOwFEAAkAAAAyQEAACgAAADsBRAAJAAAAMcBAAAoAAAA7AUQACQAAADFAQAAKAAAAOwFEAAkAAAAEgIAADcAAADsBRAAJAAAABICAABYAEH84cAACwUBAAAAfQBBjOLAAAsFAQAAAH4AQZziwAALBQEAAAB/AEGs4sAACwUBAAAAgABBvOLAAAsFAQAAAIEAQcziwAALBQEAAACCAEHc4sAACwUBAAAAgwBB7OLAAAsFAQAAAIQAQfziwAALBQEAAACFAEGM48AACwUBAAAAhgBBnOPAAAsFAQAAAIcAQazjwAALBQEAAACIAEG848AACwUBAAAAiQBBzOPAAAsFAQAAAIoAQdzjwAALBQEAAACLAEHs48AACwUBAAAAjABB/OPAAAsFAQAAAI0AQYzkwAALBQEAAACNAEGc5MAACwUBAAAAjQBBrOTAAAsFAQAAAI0AQbzkwAALBQEAAACNAEHM5MAACwUBAAAAjQBB3OTAAAsFAQAAAI0AQezkwAALBQEAAACNAEH85MAACwUBAAAAjQBBjOXAAAsFAQAAAI0AQZzlwAAL6QEBAAAAjQAAAGFuIGFycmF5IG9mIGxlbmd0aCAxYW4gYXJyYXkgb2YgbGVuZ3RoIDJhbiBhcnJheSBvZiBsZW5ndGggM2FuIGFycmF5IG9mIGxlbmd0aCA0bWlzc2luZyBmaWVsZCBgAPQyEAAPAAAA6JIRAAEAAABpbnZhbGlkIGxlbmd0aCAAFDMQAA8AAAAakxEACwAAAGR1cGxpY2F0ZSBmaWVsZCBgAAAANDMQABEAAADokhEAAQAAAHVua25vd24gdmFyaWFudCBgYCwgZXhwZWN0ZWQgAAAAWDMQABEAAABpMxAADABBkOfAAAsFAQAAAI4AQaDnwAALBQEAAACPAEGw58AACyUBAAAAkAAAAF4aEABgAAAAoAQAACIAAABeGhAAYAAAAJYEAAAmAEHg58AACwUBAAAAkQBB8OfAAAu9BgEAAACSAAAAc2gxc2gyc2gzYXNoM2Jsb2RUcmVlAAAAygUQACEAAAC4AAAAMAAAAMoFEAAhAAAAtgAAADAAAABtYXhTcGxhdHNudW1TcGxhdHNtYXhTaERlZ3JlZWV4dDBleHQxAAAAkwAAAAQAAAAEAAAAIAAAAMoFEAAhAAAATAAAAFMAAADKBRAAIQAAAE8AAABTAAAAygUQACEAAABSAAAAVQAAAMoFEAAhAAAAVQAAAFUAAABzaDFDb2Rlc8oFEAAhAAAAWAAAAF4AAABzaDJDb2Rlc8oFEAAhAAAAWwAAAF4AAABzaDNDb2Rlc8oFEAAhAAAAYQAAAFkAAADKBRAAIQAAAGQAAABcAAAAygUQACEAAABKAAAAZwAAAMoFEAAhAAAASQAAAGcAAADKBRAAIQAAAEgAAABtAAAAygUQACEAAABHAAAAaAAAAMoFEAAhAAAARgAAAGgAAAArIxAAbQAAAJUAAAAOAAAAcmdiTWlucmdiTWF4bG5TY2FsZU1pbmxuU2NhbGVNYXhzaDFNYXhzaDJNYXhzaDNNYXhsb2RPcGFjaXR5YDUQAAYAAABmNRAABgAAAGw1EAAKAAAAdjUQAAoAAACANRAABgAAAIY1EAAGAAAAjDUQAAYAAACSNRAACgAAABAjEAAaAAAAOQAAAC0AAAAQIxAAGgAAAC4AAAAzAAAA7AUQACQAAACKAAAAJwAAAHNoMwDsBRAAJAAAAJsAAAAuAAAAcGFja2VkAADsBRAAJAAAAEUAAABTAAAA7AUQACQAAABIAAAAUwAAAOwFEAAkAAAASwAAAFMAAADsBRAAJAAAAE4AAABeAAAA7AUQACQAAABRAAAAXgAAAOwFEAAkAAAAVAAAAF4AAADsBRAAJAAAAFcAAABcAAAAc3BsYXRFbmNvZGluZwAAAOwFEAAkAAAAWQAAAHwAAADsBRAAJAAAAEMAAABLAAAA7AUQACQAAABCAAAAbQAAAOwFEAAkAAAAQQAAAGgAAADsBRAAJAAAAEAAAABoAAAAECMQABoAAABWAAAALQAAABAjEAAaAAAASwAAADMAAACUAAAA9AAAAAQAAACVAAAAlgAAAJcAQbjuwAALZQEAAACYAAAAECMQABoAAACXAAAAKwAAAGZpbGVUeXBlECMQABoAAACZAAAAaAAAAJkAAAAIAAAABAAAAJoAAAAQIxAAGgAAAJYAAABYAAAAmwAAAJAAAAAEAAAAnAAAAJ0AAACeAEGo78AACy0BAAAAnwAAABAjEAAaAAAAkAEAAFsAAACgAAAAcAAAAAQAAAChAAAAogAAAKMAQeDvwAALLQEAAACkAAAAECMQABoAAAARAQAAWwAAAKUAAADsAAAABAAAAKYAAACnAAAAqABBmPDAAAvhFQEAAACpAAAAECMQABoAAAB5AAAAKwAAABAjEAAaAAAAewAAAGgAAAAQIxAAGgAAAHgAAABbAAAARXhwZWN0ZWQgIGFjdGl2ZSBzcGxhdHMgYnV0IGdvdCBQOBAACQAAAFk4EAAXAAAAigMQABsAAAAzAAAAFQAAAIoDEAAbAAAApwAAABMAAACKAxAAGwAAAJ8AAAATAAAAigMQABsAAACiAAAAHQAAAIoDEAAbAAAAogAAABEAAACKAxAAGwAAAJAAAAAgAAAAigMQABsAAACQAAAAFAAAAIoDEAAbAAAAfAAAABgAAACKAxAAGwAAAH0AAAAYAAAAigMQABsAAAB0AAAAGQAAALwZEAAfAAAA4wAAABYAAABsb2RJZAAAALwZEAAfAAAA7AAAAFQAAAC8GRAAHwAAAAkBAAAWAAAAvBkQAB8AAAATAQAAVAAAALwZEAAfAAAAJAEAAD0AAAC8GRAAHwAAADcBAAArAAAAvBkQAB8AAAA4AQAAKwAAALwZEAAfAAAAMgEAACsAAAC8GRAAHwAAADMBAAArAAAAvBkQAB8AAAC7AAAAMQAAALwZEAAfAAAA2QAAABMAAAC8GRAAHwAAAMoAAAAnAAAAvBkQAB8AAAC8AAAAJgAAALwZEAAfAAAAzwAAADYAAAC8GRAAHwAAAHcBAAAvAAAAvBkQAB8AAAB6AQAAHwAAAGluZGljZXMAvBkQAB8AAACWAQAAVgAAALwZEAAfAAAAgwEAACQAAAC8GRAAHwAAAIkBAAAjAAAAvBkQAB8AAACGAQAAIgAAALwZEAAfAAAAeAEAACYAAABJbnZhbGlkIGNvbmVfZm92cyBsZW5ndGhJbnZhbGlkIGNvbmVfZm92MHMgbGVuZ3RoSW52YWxpZCBjb25lX2ZvdmVhdGVzIGxlbmd0aEludmFsaWQgYmVoaW5kX2ZvdmVhdGVzIGxlbmd0aEludmFsaWQgbG9kX3NjYWxlcyBsZW5ndGhJbnZhbGlkIHZpZXdfdG9fb2JqZWN0cyBsZW5ndGgAALwZEAAfAAAA5wEAACYAAAC8GRAAHwAAAOkBAABDAAAAvBkQAB8AAADtAQAAGAAAALwZEAAfAAAA+wEAABkAAAC8GRAAHwAAAAACAAAZAAAAvBkQAB8AAAAHAgAAKwAAALwZEAAfAAAACwIAABgAAAC8GRAAHwAAABECAAAvAAAAvBkQAB8AAAATAgAAPgAAALwZEAAfAAAAFQIAABwAAAC8GRAAHwAAAAQCAAAYAAAAvBkQAB8AAAArAgAAJAAAAHBpeGVsTGltaXRpbnN0YW5jZUluZGljZXNjaHVua3NvdXRwdXRTaXplZnJvbnRpZXJTaXplbGVhZkNvdW50AAC8GRAAHwAAAFQCAABcAAAAvBkQAB8AAABTAgAAYgAAALwZEAAfAAAAUgIAAF4AAAC8GRAAHwAAAFECAABZAAAAvBkQAB8AAABQAgAAaAAAALwZEAAfAAAATwIAAGIAAAC8GRAAHwAAAD4CAAAjAAAAvBkQAB8AAABBAgAAWgAAALwZEAAfAAAAQAIAAHIAAAC8GRAAHwAAAD8CAABYAAAAvBkQAB8AAAAxAgAAHQAAALwZEAAfAAAAMQIAADMAAAC8GRAAHwAAAC0CAAAjAAAAvBkQAB8AAAAtAgAAHgAAALwZEAAfAAAAKAIAABwAAAC8GRAAHwAAACICAAAUAAAAvBkQAB8AAADSAQAAHQAAALwZEAAfAAAA1QEAADoAAAC8GRAAHwAAANoBAAAZAAAAvBkQAB8AAAC7AQAAMwAAALwZEAAfAAAAwAEAAB0AAAC8GRAAHwAAAMEBAAAiAAAAvBkQAB8AAADCAQAAIAAAALwZEAAfAAAAwwEAACAAAAC8GRAAHwAAAMQBAAAfAAAAvBkQAB8AAADGAQAAHQAAALwZEAAfAAAAvwEAADwAAAC8GRAAHwAAAL4BAAA9AAAAvBkQAB8AAAD1AAAAOgAAALwZEAAfAAAA9wAAAB0AAAC8GRAAHwAAAPgAAAAdAAAAvBkQAB8AAAD/AAAAWAAAAHZlcnNpb25jb3VudG1heFNoY2h1bmtTaXplYWxsQ2h1bmtCeXRlc3NoQ29kZUNvdW50c3RydWN0IFJhZE1ldGEgd2l0aCAxMSBlbGVtZW50cwAAAFY+EAAfAAAAAAAAAAgAAAAEAAAAqgAAAGZpbGVzbWluc21heHNzaGFwZXN0cnVjdCBNZWFucyB3aXRoIDQgZWxlbWVudHMAAKI+EAAcAAAAZW5jb2RpbmdzdHJ1Y3QgUXVhdHMgd2l0aCAyIGVsZW1lbnRz0D4QABwAAABzdHJ1Y3QgU2gwVjEgd2l0aCAzIGVsZW1lbnRz9D4QABwAAABjb2RlYm9va3N0cnVjdCBTaDBWMiB3aXRoIDIgZWxlbWVudHMgPxAAHAAAAHN0cnVjdCBTaE5WMSB3aXRoIDQgZWxlbWVudHNEPxAAHAAAAGJhbmRzc3RydWN0IFNoTlYyIHdpdGggMyBlbGVtZW50cwAAAG0/EAAcAAAAc3RydWN0IE1lYW5zVjEgd2l0aCA0IGVsZW1lbnRzAACUPxAAHgAAAG1lYW5zc2NhbGVzcXVhdHNzaDBzaE5zdHJ1Y3QgUGNTb2dzVjEgd2l0aCA1IGVsZW1lbnRzAAAA0j8QAB8AAABzdHJ1Y3QgUGNTb2dzVjIgd2l0aCA3IGVsZW1lbnRzAPw/EAAfAAAAc3RydWN0IFNjYWxlc1YxIHdpdGggMyBlbGVtZW50cwAkQBAAHwAAAHN0cnVjdCBTY2FsZXNWMiB3aXRoIDIgZWxlbWVudHMATEAQAB8AAABiYXNlcGF5bG9hZEJ5dGVzcHJvcGVydGllc3N0cnVjdCBSYWRDaHVua01ldGEgd2l0aCA4IGVsZW1lbnRzAAAAjkAQACMAAABnc3BsYXQAALxAEAAGAAAAb2Zmc2V0ZmlsZW5hbWVzdHJ1Y3QgUmFkQ2h1bmtSYW5nZSB3aXRoIDUgZWxlbWVudHMAANpAEAAkAAAAY29tcHJlc3Npb25taW5tYXhzdHJ1Y3QgUmFkQ2h1bmtQcm9wZXJ0eSB3aXRoIDcgZWxlbWVudHMZQRAAJwAAAGEgc2VxdWVuY2UAANsGEABmAAAAjQQAABwAAABzdHJ1Y3QgU2V0U3BsYXRFbmNvZGluZyB3aXRoIDggZWxlbWVudHMAZEEQACcAAABjZW50ZXJhbHBoYXJnYm9yaWVudGF0aW9uY2hpbGRfY291bnRjaGlsZF9zdGFydHNoMV9jb2Rlc2gyX2NvZGVzaDNfY29kZXNoX2xhYmVsAJRBEAAGAAAAmkEQAAUAAACfQRAAAwAAAME/EAAGAAAAokEQAAsAAAD4MxAAAwAAAPszEAADAAAADDYQAAMAAACtQRAACwAAALhBEAALAAAAw0EQAAgAAADLQRAACAAAANNBEAAIAAAA20EQAAgAAABmMTZmMzJfbGVieXRlc2YxNl9sZWJ5dGVzcjhyOF9kZWx0YXM4czhfZGVsdGFsbl8wcjhsbl9mMTZvY3Q4OHI4AogRAAMAAABUQhAAAwAAAFdCEAALAAAAYkIQAAsAAABtQhAAAgAAAG9CEAAIAAAAd0IQAAIAAAB5QhAACAAAAIFCEAAGAAAAh0IQAAYAAACNQhAABwAAAAdZEQADAAAABYgRAAMAQYSGwQALBQEAAACrAEGUhsEAC50NAQAAAKwAAABnegAAHEMQAAIAAACGV40hJKv8MZsV7Rqk/AqGIZHXkOAZBnMEwoE6QC5Aw02j52ZMofSR0h1OTNnv/LcqkTKWy/Ri3BOYR0yo5sJKZQUUCIJCw8J7T1YBdnE/LlNbgd6v+j3VsO5PRvEo+g1lOjkDtdomfifhYlnYlyaf521Pxr7v5E2F7c0GCuf+P/3rIsETwTMoA+inBzqud1sRrxXgIBVknwBi1PJVeIx7Aisj8rJUn2yy7loDmsKEpY45WsRC9+oSngcEldKewYpCm/q8AgqVZ7gNAZD9VtBrMivi9KBl2ERiQe5Ii0cFQ/5K+mCCgfdMVeJBLcgvjfuPC2mlqkI9RC+bfJ3D8Sr9x01mLnzmSbxuYaNTlztp3pcpSPbzROrxa62j6ZmoBdH97HYrR635JQTfXlV6a8Ovn+m9tKIApq4QCN4uyBE87DPEa42psDZg7WP62RG4/bUIrvZnfsvyWSH/wjd06x+Py+lMtpuEl8Ltn4DSZSE7nX4v+OWiItk2yi53ifdj62Zde1sqPTuH9PUU2hK7pnF7Y1zUyuJJAK68UxeBqShYoeSyUAtPu+nwuxBgZKitiEsgHhagE5RBXb1l1/jQzzzaT25jZSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAADoRBAAKgAAAL8aEABTAAAAnAAAADIAAABzFBAATwAAAC8CAAAmAAAATw8QAGYAAACkAAAAKgAAAE8PEABmAAAABAEAACUAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAABcRRAAsAAAALEAAACyAAAAsAAAALMAAABBRVMgZW5jcnlwdGVkIGZpbGVzIGNhbm5vdCBiZSBkZWNyeXB0ZWQgd2l0aG91dCB0aGUgYWVzLWNyeXB0byBmZWF0dXJlLlZhcmlhYmxlLWxlbmd0aCBmaWVsZCBleHRlbmRzIGJleW9uZCBmaWxlIGJvdW5kYXJ5QUVTIGVuY3J5cHRpb24gd2l0aG91dCBBRVMgZXh0cmEgZGF0YSBmaWVsZEFyY2hpdmUgaGVhZGVyIGlzIHRvbyBsYXJnZQDOIRAAWQAAAOYCAAAZAAAAziEQAFkAAADqAgAAEwAAAE92ZXJzaXplZCBjZW50cmFsIGRpcmVjdG9yeVN1cHBvcnQgZm9yIG11bHRpLWRpc2sgZmlsZXMgaXMgbm90IGltcGxlbWVudGVkemlwOjp0eXBlczo6WmlwQ2VudHJhbEVudHJ5QmxvY2sAAFBLAQJJbnZhbGlkIENlbnRyYWwgRGlyZWN0b3J5IGhlYWRlcnppcDo6c3BlYzo6WmlwMzJDREVCbG9ja1BLBQZJbnZhbGlkIGRpZ2l0YWwgc2lnbmF0dXJlIGhlYWRlcgAAAIAkRxAAIAAAAHppcDo6c3BlYzo6WmlwNjRDREVMb2NhdG9yQmxvY2tJbnZhbGlkIHppcDY0IGxvY2F0b3IgZGlnaXRhbCBzaWduYXR1cmUgaGVhZGVyAAAAAAAAgG9HEAAuAAAAemlwOjpzcGVjOjpaaXA2NENERUJsb2NrUEsGBkludmFsaWQgRU9DRDY0OiBpbmNvbnNpc3RlbnQgbGVuZ3RoSW52YWxpZCBFT0NENjQ6IGluY29uc2lzdGVuY3kgd2l0aCBMb2NhdG9yIGRhdGFJbnZhbGlkIEVPQ0Q2NDogaW5jb25zaXN0ZW50IG51bWJlciBvZiBmaWxlc0NvdWxkIG5vdCBmaW5kIEVPQ0Q2NE11bHRpLWRpc2sgWklQIGZpbGVzIGFyZSBub3Qgc3VwcG9ydGVkSW52YWxpZCBFT0NENjQgTG9jYXRvciBDRCBvZmZzZXRObyBDREZIIGZvdW5kSW52YWxpZCBDREZIIG9mZnNldCBpbiBFT0NESW52YWxpZCBFT0NEIGNvbW1lbnQgbGVuZ3RoQ291bGQg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AIgCAACvAQAAsAEAALEBAACKAgAAsgEAAIsCAACzAQAAtAEAALUBAAC2AQAAtwEAAJICAAC4AQAAuQEAALwBAAC9AQAAxAEAAMYBAADFAQAAxgEAAMcBAADJAQAAyAEAAMkBAADKAQAAzAEAAMsBAADMAQAAzQEAAM4BAADPAQAA0AEAANEBAADSAQAA0wEAANQBAADVAQAA1gEAANcBAADYAQAA2QEAANoBAADbAQAA3AEAAN4BAADfAQAA4AEAAOEBAADiAQAA4wEAAOQBAADlAQAA5gEAAOcBAADoAQAA6QEAAOoBAADrAQAA7AEAAO0BAADuAQAA7wEAAPEBAADzAQAA8gEAAPMBAAD0AQAA9QEAAPYBAACVAQAA9wEAAL8BAAD4AQAA+QEAAPoBAAD7AQAA/AEAAP0BAAD+AQAA/wEAAAACAAABAgAAAgIAAAMCAAAEAgAABQIAAAYCAAAHAgAACAIAAAkCAAAKAgAACwIAAAwCAAANAgAADgIAAA8CAAAQAgAAEQIAABICAAATAgAAFAIAABUCAAAWAgAAFwIAABgCAAAZAgAAGgIAABsCAAAcAgAAHQIAAB4CAAAfAgAAIAIAAJ4BAAAiAgAAIwIAACQCAAAlAgAAJgIAACcCAAAoAgAAKQIAACoCAAArAgAALAIAAC0CAAAuAgAALwIAADACAAAxAgAAMgIAADMCAAA6AgAAZSwAADsCAAA8AgAAPQIAAJoBAAA+AgAAZiwAAEECAABCAgAAQwIAAIABAABEAgAAiQIAAEUCAACMAgAARgIAAEcCAABIAgAASQIAAEoCAABLAgAATAIAAE0CAABOAgAATwIAAHADAABxAwAAcgMAAHMDAAB2AwAAdwMAAH8DAADzAwAAhgMAAKwDAACIAwAArQMAAIkDAACuAwAAigMAAK8DAACMAwAAzAMAAI4DAADNAwAAjwMAAM4DAACRAwAAsQMAAJIDAACyAwAAkwMAALMDAACUAwAAtAMAAJUDAAC1AwAAlgMAALYDAACXAwAAtwMAAJgDAAC4AwAAmQMAALkDAACaAwAAugMAAJsDAAC7AwAAnAMAALwDAACdAwAAvQMAAJ4DAAC+AwAAnwMAAL8DAACgAwAAwAMAAKEDAADBAwAAowMAAMMDAACkAwAAxAMAAKUDAADFAwAApgMAAMYDAACnAwAAxwMAAKgDAADIAwAAqQMAAMkDAACqAwAAygMAAKsDAADLAwAAzwMAANcDAADYAwAA2QMAANoDAADbAwAA3AMAAN0DAADeAwAA3wMAAOADAADhAwAA4gMAAOMDAADkAwAA5QMAAOYDAADnAwAA6AMAAOkDAADqAwAA6wMAAOwDAADtAwAA7gMAAO8DAAD0AwAAuAMAAPcDAAD4AwAA+QMAAPIDAAD6AwAA+wMAAP0DAAB7AwAA/gMAAHwDAAD/AwAAfQMAAAAEAABQBAAAAQQAAFEEAAACBAAAUgQAAAMEAABTBAAABAQAAFQEAAAFBAAAVQQAAAYEAABWBAAABwQAAFcEAAAIBAAAWAQAAAkEAABZBAAACgQAAFoEAAALBAAAWwQAAAwEAABcBAAADQQAAF0EAAAOBAAAXgQAAA8EAABfBAAAEAQAADAEAAARBAAAMQQAABIEAAAyBAAAEwQAADMEAAAUBAAANAQAABUEAAA1BAAAFgQAADYEAAAXBAAANwQAABgEAAA4BAAAGQQAADkEAAAaBAAAOgQAABsEAAA7BAAAHAQAADwEAAAdBAAAPQQAAB4EAAA+BAAAHwQAAD8EAAAgBAAAQAQAACEEAABBBAAAIgQAAEIEAAAjBAAAQwQAACQEAABEBAAAJQQAAEUEAAAmBAAARgQAACcEAABHBAAAKAQAAEgEAAApBAAASQQAACoEAABKBAAAKwQAAEsEAAAsBAAATAQAAC0EAABNBAAALgQAAE4EAAAvBAAATwQAAGAEAABhBAAAYgQAAGMEAABkBAAAZQQAAGYEAABnBAAAaAQAAGkEAABqBAAAawQAAGwEAABtBAAAbgQAAG8EAABwBAAAcQQAAHIEAABzBAAAdAQAAHUEAAB2BAAAdwQAAHgEAAB5BAAAegQAAHsEAAB8BAAAfQQAAH4EAAB/BAAAgAQAAIEEAACKBAAAiwQAAIwEAACNBAAAjgQAAI8EAACQBAAAkQQAAJIEAACTBAAAlAQAAJUEAACWBAAAlwQAAJgEAACZBAAAmgQAAJsEAACcBAAAnQQAAJ4EAACfBAAAoAQAAKEEAACiBAAAowQAAKQEAAClBAAApgQAAKcEAACoBAAAqQQAAKoEAACrBAAArAQAAK0EAACuBAAArwQAALAEAACxBAAAsgQAALMEAAC0BAAAtQQAALYEAAC3BAAAuAQAALkEAAC6BAAAuwQAALwEAAC9BAAAvgQAAL8EAADABAAAzwQAAMEEAADCBAAAwwQAAMQEAADFBAAAxgQAAMcEAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAADOBAAA0AQAANEEAADSBAAA0wQAANQEAADVBAAA1gQAANcEAADYBAAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAA4gQAAOMEAADkBAAA5QQAAOYEAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAO8EAADwBAAA8QQAAPIEAADzBAAA9AQAAPUEAAD2BAAA9wQAAPgEAAD5BAAA+gQAAPsEAAD8BAAA/QQAAP4EAAD/BAAAAAUAAAEFAAACBQAAAwUAAAQFAAAFBQAABgUAAAcFAAAIBQAACQUAAAoFAAALBQAADAUAAA0FAAAOBQAADwUAABAFAAARBQAAEgUAABMFAAAUBQAAFQUAABYFAAAXBQAAGAUAABkFAAAaBQAAGwUAABwFAAAdBQAAHgUAAB8FAAAgBQAAIQUAACIFAAAjBQAAJAUAACUFAAAmBQAAJwUAACgFAAApBQAAKgUAACsFAAAsBQAALQUAAC4FAAAvBQAAMQUAAGEFAAAyBQAAYgUAADMFAABjBQAANAUAAGQFAAA1BQAAZQUAADYFAABmBQAANwUAAGcFAAA4BQAAaAUAADkFAABpBQAAOgUAAGoFAAA7BQAAawUAADwFAABsBQAAPQUAAG0FAAA+BQAAbgUAAD8FAABvBQAAQAUAAHAFAABBBQAAcQUAAEIFAAByBQAAQwUAAHMFAABEBQAAdAUAAEUFAAB1BQAARgUAAHYFAABHBQAAdwUAAEgFAAB4BQAASQUAAHkFAABKBQAAegUAAEsFAAB7BQAATAUAAHwFAABNBQAAfQUAAE4FAAB+BQAATwUAAH8FAABQBQAAgAUAAFEFAACBBQAAUgUAAIIFAABTBQAAgwUAAFQFAACEBQAAVQUAAIUFAABWBQAAhgUAAKAQAAAALQAAoRAAAAEtAACiEAAAAi0AAKMQAAADLQAApBAAAAQtAAClEAAABS0AAKYQAAAGLQAApxAAAActAACoEAAACC0AAKkQAAAJLQAAqhAAAAotAACrEAAACy0AAKwQAAAMLQAArRAAAA0tAACuEAAADi0AAK8QAAAPLQAAsBAAABAtAACxEAAAES0AALIQAAASLQAAsxAAABMtAAC0EAAAFC0AALUQAAAVLQAAthAAABYtAAC3EAAAFy0AALgQAAAYLQAAuRAAABktAAC6EAAAGi0AALsQAAAbLQAAvBAAABwtAAC9EAAAHS0AAL4QAAAeLQAAvxAAAB8tAADAEAAAIC0AAMEQAAAhLQAAwhAAACItAADDEAAAIy0AAMQQAAAkLQAAxRAAACUtAADHEAAAJy0AAM0QAAAtLQAAoBMAAHCrAAChEwAAcasAAKITAAByqwAAoxMAAHOrAACkEwAAdKsAAKUTAAB1qwAAphMAAHarAACnEwAAd6sAAKgTAAB4qwAAqRMAAHmrAACqEwAAeqsAAKsTAAB7qwAArBMAAHyrAACtEwAAfasAAK4TAAB+qwAArxMAAH+rAACwEwAAgKsAALETAACBqwAAshMAAIKrAACzEwAAg6sAALQTAACEqwAAtRMAAIWrAAC2EwAAhqsAALcTAACHqwAAuBMAAIirAAC5EwAAiasAALoTAACKqwAAuxMAAIurAAC8EwAAjKsAAL0TAACNqwAAvhMAAI6rAAC/EwAAj6sAAMATAACQqwAAwRMAAJGrAADCEwAAkqsAAMMTAACTqwAAxBMAAJSrAADFEwAAlasAAMYTAACWqwAAxxMAAJerAADIEwAAmKsAAMkTAACZqwAAyhMAAJqrAADLEwAAm6sAAMwTAACcqwAAzRMAAJ2rAADOEwAAnqsAAM8TAACfqwAA0BMAAKCrAADREwAAoasAANITAACiqwAA0xMAAKOrAADUEwAApKsAANUTAAClqwAA1hMAAKarAADXEwAAp6sAANgTAACoqwAA2RMAAKmrAADaEwAAqqsAANsTAACrqwAA3BMAAKyrAADdEwAArasAAN4TAACuqwAA3xMAAK+rAADgEwAAsKsAAOETAACxqwAA4hMAALKrAADjEwAAs6sAAOQTAAC0qwAA5RMAALWrAADmEwAAtqsAAOcTAAC3qwAA6BMAALirAADpEwAAuasAAOoTAAC6qwAA6xMAALurAADsEwAAvKsAAO0TAAC9qwAA7hMAAL6rAADvEwAAv6sAAPATAAD4EwAA8RMAAPkTAADyEwAA+hMAAPMTAAD7EwAA9BMAAPwTAAD1EwAA/RMAAIkcAACKHAAAkBwAANAQAACRHAAA0RAAAJIcAADSEAAAkxwAANMQAACUHAAA1BAAAJUcAADVEAAAlhwAANYQAACXHAAA1xAAAJgcAADYEAAAmRwAANkQAACaHAAA2hAAAJscAADbEAAAnBwAANwQAACdHAAA3RAAAJ4cAADeEAAAnxwAAN8QAACgHAAA4BAAAKEcAADhEAAAohwAAOIQAACjHAAA4xAAAKQcAADkEAAApRwAAOUQAACmHAAA5hAAAKccAADnEAAAqBwAAOgQAACpHAAA6RAAAKocAADqEAAAqxwAAOsQAACsHAAA7BAAAK0cAADtEAAArhwAAO4QAACvHAAA7xAAALAcAADwEAAAsRwAAPEQAACyHAAA8hAAALMcAADzEAAAtBwAAPQQAAC1HAAA9RAAALYcAAD2EAAAtxwAAPcQAAC4HAAA+BAAALkcAAD5EAAAuhwAAPoQAAC9HAAA/RAAAL4cAAD+EAAAvxwAAP8QAAAAHgAAAR4AAAIeAAADHgAABB4AAAUeAAAGHgAABx4AAAgeAAAJHgAACh4AAAseAAAMHgAADR4AAA4eAAAPHgAAEB4AABEeAAASHgAAEx4AABQeAAAVHgAAFh4AABceAAAYHgAAGR4AABoeAAAbHgAAHB4AAB0eAAAeHgAAHx4AACAeAAAhHgAAIh4AACMeAAAkHgAAJR4AACYeAAAnHgAAKB4AACkeAAAqHgAAKx4AACweAAAtHgAALh4AAC8eAAAwHgAAMR4AADIeAAAzHgAANB4AADUeAAA2HgAANx4AADgeAAA5HgAAOh4AADseAAA8HgAAPR4AAD4eAAA/HgAAQB4AAEEeAABCHgAAQx4AAEQeAABFHgAARh4AAEceAABIHgAASR4AAEoeAABLHgAATB4AAE0eAABOHgAATx4AAFAeAABRHgAAUh4AAFMeAABUHgAAVR4AAFYeAABXHgAAWB4AAFkeAABaHgAAWx4AAFweAABdHgAAXh4AAF8eAABgHgAAYR4AAGIeAABjHgAAZB4AAGUeAABmHgAAZx4AAGgeAABpHgAAah4AAGseAABsHgAAbR4AAG4eAABvHgAAcB4AAHEeAAByHgAAcx4AAHQeAAB1HgAAdh4AAHceAAB4HgAAeR4AAHoeAAB7HgAAfB4AAH0eAAB+HgAAfx4AAIAeAACBHgAAgh4AAIMeAACEHgAAhR4AAIYeAACHHgAAiB4AAIkeAACKHgAAix4AAIweAACNHgAAjh4AAI8eAACQHgAAkR4AAJIeAACTHgAAlB4AAJUeAACeHgAA3wAAAKAeAAChHgAAoh4AAKMeAACkHgAApR4AAKYeAACnHgAAqB4AAKkeAACqHgAAqx4AAKweAACtHgAArh4AAK8eAACwHgAAsR4AALIeAACzHgAAtB4AALUeAAC2HgAAtx4AALgeAAC5HgAAuh4AALseAAC8HgAAvR4AAL4eAAC/HgAAwB4AAMEeAADCHgAAwx4AAMQeAADFHgAAxh4AAMceAADIHgAAyR4AAMoeAADLHgAAzB4AAM0eAADOHgAAzx4AANAeAADRHgAA0h4AANMeAADUHgAA1R4AANYeAADXHgAA2B4AANkeAADaHgAA2x4AANweAADdHgAA3h4AAN8eAADgHgAA4R4AAOIeAADjHgAA5B4AAOUeAADmHgAA5x4AAOgeAADpHgAA6h4AAOseAADsHgAA7R4AAO4eAADvHgAA8B4AAPEeAADyHgAA8x4AAPQeAAD1HgAA9h4AAPceAAD4HgAA+R4AAPoeAAD7HgAA/B4AAP0eAAD+HgAA/x4AAAgfAAAAHwAACR8AAAEfAAAKHwAAAh8AAAsfAAADHwAADB8AAAQfAAANHwAABR8AAA4fAAAGHwAADx8AAAcfAAAYHwAAEB8AABkfAAARHwAAGh8AABIfAAAbHwAAEx8AABwfAAAUHwAAHR8AABUfAAAoHwAAIB8AACkfAAAhHwAAKh8AACIfAAArHwAAIx8AACwfAAAkHwAALR8AACUfAAAuHwAAJh8AAC8fAAAnHwAAOB8AADAfAAA5HwAAMR8AADofAAAyHwAAOx8AADMfAAA8HwAANB8AAD0fAAA1HwAAPh8AADYfAAA/HwAANx8AAEgfAABAHwAASR8AAEEfAABKHwAAQh8AAEsfAABDHwAATB8AAEQfAABNHwAARR8AAFkfAABRHwAAWx8AAFMfAABdHwAAVR8AAF8fAABXHwAAaB8AAGAfAABpHwAAYR8AAGofAABiHwAAax8AAGMfAABsHwAAZB8AAG0fAABlHwAAbh8AAGYfAABvHwAAZx8AAIgfAACAHwAAiR8AAIEfAACKHwAAgh8AAIsfAACDHwAAjB8AAIQfAACNHwAAhR8AAI4fAACGHwAAjx8AAIcfAACYHwAAkB8AAJkfAACRHwAAmh8AAJIfAACbHwAAkx8AAJwfAACUHwAAnR8AAJUfAACeHwAAlh8AAJ8fAACXHwAAqB8AAKAfAACpHwAAoR8AAKofAACiHwAAqx8AAKMfAACsHwAApB8AAK0fAAClHwAArh8AAKYfAACvHwAApx8AALgfAACwHwAAuR8AALEfAAC6HwAAcB8AALsfAABxHwAAvB8AALMfAADIHwAAch8AAMkfAABzHwAAyh8AAHQfAADLHwAAdR8AAMwfAADDHwAA2B8AANAfAADZHwAA0R8AANofAAB2HwAA2x8AAHcfAADoHwAA4B8AAOkfAADhHwAA6h8AAHofAADrHwAAex8AAOwfAADlHwAA+B8AAHgfAAD5HwAAeR8AAPofAAB8HwAA+x8AAH0fAAD8HwAA8x8AACYhAADJAwAAKiEAAGsAAAArIQAA5QAAADIhAABOIQAAYCEAAHAhAABhIQAAcSEAAGIhAAByIQAAYyEAAHMhAABkIQAAdCEAAGUhAAB1IQAAZiEAAHYhAABnIQAAdyEAAGghAAB4IQAAaSEAAHkhAABqIQAAeiEAAGshAAB7IQAAbCEAAHwhAABtIQAAfSEAAG4hAAB+IQAAbyEAAH8hAACDIQAAhCEAALYkAADQJAAAtyQAANEkAAC4JAAA0iQAALkkAADTJAAAuiQAANQkAAC7JAAA1SQAALwkAADWJAAAvSQAANckAAC+JAAA2CQAAL8kAADZJAAAwCQAANokAADBJAAA2yQAAMIkAADcJAAAwyQAAN0kAADEJAAA3iQAAMUkAADfJAAAxiQAAOAkAADHJAAA4SQAAMgkAADiJAAAySQAAOMkAADKJAAA5CQAAMskAADlJAAAzCQAAOYkAADNJAAA5yQAAM4kAADoJAAAzyQAAOkkAAAALAAAMCwAAAEsAAAxLAAAAiwAADIsAAADLAAAMywAAAQsAAA0LAAABSwAADUsAAAGLAAANiwAAAcsAAA3LAAACCwAADgsAAAJLAAAOSwAAAosAAA6LAAACywAADssAAAMLAAAPCwAAA0sAAA9LAAADiwAAD4sAAAPLAAAPywAABAsAABALAAAESwAAEEsAAASLAAAQiwAABMsAABDLAAAFCwAAEQsAAAVLAAARSwAABYsAABGLAAAFywAAEcsAAAYLAAASCwAABksAABJLAAAGiwAAEosAAAbLAAASywAABwsAABMLAAAHSwAAE0sAAAeLAAATiwAAB8sAABPLAAAICwAAFAsAAAhLAAAUSwAACIsAABSLAAAIywAAFMsAAAkLAAAVCwAACUsAABVLAAAJiwAAFYsAAAnLAAAVywAACgsAABYLAAAKSwAAFksAAAqLAAAWiwAACssAABbLAAALCwAAFwsAAAtLAAAXSwAAC4sAABeLAAALywAAF8sAABgLAAAYSwAAGIsAABrAgAAYywAAH0dAABkLAAAfQIAAGcsAABoLAAAaSwAAGosAABrLAAAbCwAAG0sAABRAgAAbiwAAHECAABvLAAAUAIAAHAsAABSAgAAciwAAHMsAAB1LAAAdiwAAH4sAAA/AgAAfywAAEACAACALAAAgSwAAIIsAACDLAAAhCwAAIUsAACGLAAAhywAAIgsAACJLAAAiiwAAIssAACMLAAAjSwAAI4sAACPLAAAkCwAAJEsAACSLAAAkywAAJQsAACVLAAAliwAAJcsAACYLAAAmSwAAJosAACbLAAAnCwAAJ0sAACeLAAAnywAAKAsAAChLAAAoiwAAKMsAACkLAAApSwAAKYsAACnLAAAqCwAAKksAACqLAAAqywAAKwsAACtLAAAriwAAK8sAACwLAAAsSwAALIsAACzLAAAtCwAALUsAAC2LAAAtywAALgsAAC5LAAAuiwAALssAAC8LAAAvSwAAL4sAAC/LAAAwCwAAMEsAADCLAAAwywAAMQsAADFLAAAxiwAAMcsAADILAAAySwAAMosAADLLAAAzCwAAM0sAADOLAAAzywAANAsAADRLAAA0iwAANMsAADULAAA1SwAANYsAADXLAAA2CwAANksAADaLAAA2ywAANwsAADdLAAA3iwAAN8sAADgLAAA4SwAAOIsAADjLAAA6ywAAOwsAADtLAAA7iwAAPIsAADzLAAAQKYAAEGmAABCpgAAQ6YAAESmAABFpgAARqYAAEemAABIpgAASaYAAEqmAABLpgAATKYAAE2mAABOpgAAT6YAAFCmAABRpgAAUqYAAFOmAABUpgAAVaYAAFamAABXpgAAWKYAAFmmAABapgAAW6YAAFymAABdpgAAXqYAAF+mAABgpgAAYaYAAGKmAABjpgAAZKYAAGWmAABmpgAAZ6YAAGimAABppgAAaqYAAGumAABspgAAbaYAAICmAACBpgAAgqYAAIOmAACEpgAAhaYAAIamAACHpgAAiKYAAImmAACKpgAAi6YAAIymAACNpgAAjqYAAI+mAACQpgAAkaYAAJKmAACTpgAAlKYAAJWmAACWpgAAl6YAAJimAACZpgAAmqYAAJumAAAipwAAI6cAACSnAAAlpwAAJqcAACenAAAopwAAKacAACqnAAArpwAALKcAAC2nAAAupwAAL6cAADKnAAAzpwAANKcAADWnAAA2pwAAN6cAADinAAA5pwAAOqcAADunAAA8pwAAPacAAD6nAAA/pwAAQKcAAEGnAABCpwAAQ6cAAESnAABFpwAARqcAAEenAABIpwAASacAAEqnAABLpwAATKcAAE2nAABOpwAAT6cAAFCnAABRpwAAUqcAAFOnAABUpwAAVacAAFanAABXpwAAWKcAAFmnAABapwAAW6cAAFynAABdpwAAXqcAAF+nAABgpwAAYacAAGKnAABjpwAAZKcAAGWnAABmpwAAZ6cAAGinAABppwAAaqcAAGunAABspwAAbacAAG6nAABvpwAAeacAAHqnAAB7pwAAfKcAAH2nAAB5HQAAfqcAAH+nAACApwAAgacAAIKnAACDpwAAhKcAAIWnAACGpwAAh6cAAIunAACMpwAAjacAAGUCAACQpwAAkacAAJKnAACTpwAAlqcAAJenAACYpwAAmacAAJqnAACbpwAAnKcAAJ2nAACepwAAn6cAAKCnAAChpwAAoqcAAKOnAACkpwAApacAAKanAACnpwAAqKcAAKmnAACqpwAAZgIAAKunAABcAgAArKcAAGECAACtpwAAbAIAAK6nAABqAgAAsKcAAJ4CAACxpwAAhwIAALKnAACdAgAAs6cAAFOrAAC0pwAAtacAALanAAC3pwAAuKcAALmnAAC6pwAAu6cAALynAAC9pwAAvqcAAL+nAADApwAAwacAAMKnAADDpwAAxKcAAJSnAADFpwAAggIAAManAACOHQAAx6cAAMinAADJpwAAyqcAAMunAABkAgAAzKcAAM2nAADQpwAA0acAANanAADXpwAA2KcAANmnAADapwAA26cAANynAACbAQAA9acAAPanAAAh/wAAQf8AACL/AABC/wAAI/8AAEP/AAAk/wAARP8AACX/AABF/wAAJv8AAEb/AAAn/wAAR/8AACj/AABI/wAAKf8AAEn/AAAq/wAASv8AACv/AABL/wAALP8AAEz/AAAt/wAATf8AAC7/AABO/wAAL/8AAE//AAAw/wAAUP8AADH/AABR/wAAMv8AAFL/AAAz/wAAU/8AADT/AABU/wAANf8AAFX/AAA2/wAAVv8AADf/AABX/wAAOP8AAFj/AAA5/wAAWf8AADr/AABa/wAAAAQBACgEAQABBAEAKQQBAAIEAQAqBAEAAwQBACsEAQAEBAEALAQBAAUEAQAtBAEABgQBAC4EAQAHBAEALwQBAAgEAQAwBAEACQQBADEEAQAKBAEAMgQBAAsEAQAzBAEADAQBADQEAQANBAEANQQBAA4EAQA2BAEADwQBADcEAQAQBAEAOAQBABEEAQA5BAEAEgQBADoEAQATBAEAOwQBABQEAQA8BAEAFQQBAD0EAQAWBAEAPgQBABcEAQA/BAEAGAQBAEAEAQAZBAEAQQQBABoEAQBCBAEAGwQBAEMEAQAcBAEARAQBAB0EAQBFBAEAHgQBAEYEAQAfBAEARwQBACAEAQBIBAEAIQQBAEkEAQAiBAEASgQBACMEAQBLBAEAJAQBAEwEAQAlBAEATQQBACYEAQBOBAEAJwQBAE8EAQCwBAEA2AQBALEEAQDZBAEAsgQBANoEAQCzBAEA2wQBALQEAQDcBAEAtQQBAN0EAQC2BAEA3gQBALcEAQDfBAEAuAQBAOAEAQC5BAEA4QQBALoEAQDiBAEAuwQBAOMEAQC8BAEA5AQBAL0EAQDlBAEAvgQBAOYEAQC/BAEA5wQBAMAEAQDoBAEAwQQBAOkEAQDCBAEA6gQBAMMEAQDrBAEAxAQBAOwEAQDFBAEA7QQBAMYEAQDuBAEAxwQBAO8EAQDIBAEA8AQBAMkEAQDxBAEAygQBAPIEAQDLBAEA8wQBAMwEAQD0BAEAzQQBAPUEAQDOBAEA9gQBAM8EAQD3BAEA0AQBAPgEAQDRBAEA+QQBANIEAQD6BAEA0wQBAPsEAQBwBQEAlwUBAHEFAQCYBQEAcgUBAJkFAQBzBQEAmgUBAHQFAQCbBQEAdQUBAJwFAQB2BQEAnQUBAHcFAQCeBQEAeAUBAJ8FAQB5BQEAoAUBAHoFAQChBQEAfAUBAKMFAQB9BQEApAUBAH4FAQClBQEAfwUBAKYFAQCABQEApwUBAIEFAQCoBQEAggUBAKkFAQCDBQEAqgUBAIQFAQCrBQEAhQUBAKwFAQCGBQEArQUBAIcFAQCuBQEAiAUBAK8FAQCJBQEAsAUBAIoFAQCxBQEAjAUBALMFAQCNBQEAtAUBAI4FAQC1BQEAjwUBALYFAQCQBQEAtwUBAJEFAQC4BQEAkgUBALkFAQCUBQEAuwUBAJUFAQC8BQEAgAwBAMAMAQCBDAEAwQwBAIIMAQDCDAEAgwwBAMMMAQCEDAEAxAwBAIUMAQDFDAEAhgwBAMYMAQCHDAEAxwwBAIgMAQDIDAEAiQwBAMkMAQCKDAEAygwBAIsMAQDLDAEAjAwBAMwMAQCNDAEAzQwBAI4MAQDODAEAjwwBAM8MAQCQDAEA0AwBAJEMAQDRDAEAkgwBANIMAQCTDAEA0wwBAJQMAQDUDAEAlQwBANUMAQCWDAEA1gwBAJcMAQDXDAEAmAwBANgMAQCZDAEA2QwBAJoMAQDaDAEAmwwBANsMAQCcDAEA3AwBAJ0MAQDdDAEAngwBAN4MAQCfDAEA3wwBAKAMAQDgDAEAoQwBAOEMAQCiDAEA4gwBAKMMAQDjDAEApAwBAOQMAQClDAEA5QwBAKYMAQDmDAEApwwBAOcMAQCoDAEA6AwBAKkMAQDpDAEAqgwBAOoMAQCrDAEA6wwBAKwMAQDsDAEArQwBAO0MAQCuDAEA7gwBAK8MAQDvDAEAsAwBAPAMAQCxDAEA8QwBALIMAQDyDAEAUA0BAHANAQBRDQEAcQ0BAFINAQByDQEAUw0BAHMNAQBUDQEAdA0BAFUNAQB1DQEAVg0BAHYNAQBXDQEAdw0BAFgNAQB4DQEAWQ0BAHkNAQBaDQEAeg0BAFsNAQB7DQEAXA0BAHwNAQBdDQEAfQ0BAF4NAQB+DQEAXw0BAH8NAQBgDQEAgA0BAGENAQCBDQEAYg0BAIINAQBjDQEAgw0BAGQNAQCEDQEAZQ0BAIUNAQCgGAEAwBgBAKEYAQDBGAEAohgBAMIYAQCjGAEAwxgBAKQYAQDEGAEApRgBAMUYAQCmGAEAxhgBAKcYAQDHGAEAqBgBAMgYAQCpGAEAyRgBAKoYAQDKGAEAqxgBAMsYAQCsGAEAzBgBAK0YAQDNGAEArhgBAM4YAQCvGAEAzxgBALAYAQDQGAEAsRgBANEYAQCyGAEA0hgBALMYAQDTGAEAtBgBANQYAQC1GAEA1RgBALYYAQDWGAEAtxgBANcYAQC4GAEA2BgBALkYAQDZGAEAuhgBANoYAQC7GAEA2xgBALwYAQDcGAEAvRgBAN0YAQC+GAEA3hgBAL8YAQDfGAEAQG4BAGBuAQBBbgEAYW4BAEJuAQBibgEAQ24BAGNuAQBEbgEAZG4BAEVuAQBlbgEARm4BAGZuAQBHbgEAZ24BAEhuAQBobgEASW4BAGluAQBKbgEAam4BAEtuAQBrbgEATG4BAGxuAQBNbgEAbW4BAE5uAQBubgEAT24BAG9uAQBQbgEAcG4BAFFuAQBxbgEAUm4BAHJuAQBTbgEAc24BAFRuAQB0bgEAVW4BAHVuAQBWbgEAdm4BAFduAQB3bgEAWG4BAHhuAQBZbgEAeW4BAFpuAQB6bgEAW24BAHtuAQBcbgEAfG4BAF1uAQB9bgEAXm4BAH5uAQBfbgEAf24BAADpAQAi6QEAAekBACPpAQAC6QEAJOkBAAPpAQAl6QEABOkBACbpAQAF6QEAJ+kBAAbpAQAo6QEAB+kBACnpAQAI6QEAKukBAAnpAQAr6QEACukBACzpAQAL6QEALekBAAzpAQAu6QEADekBAC/pAQAO6QEAMOkBAA/pAQAx6QEAEOkBADLpAQAR6QEAM+kBABLpAQA06QEAE+kBADXpAQAU6QEANukBABXpAQA36QEAFukBADjpAQAX6QEAOekBABjpAQA66QEAGekBADvpAQAa6QEAPOkBABvpAQA96QEAHOkBAD7pAQAd6QEAP+kBAB7pAQBA6QEAH+kBAEHpAQAg6QEAQukBACHpAQBD6QEATSUQACgAAAAAAwAAHQAAALACAABdE2ABEhfgIL0fICF8LOAuBTAgMxWgoDT4pCA2DKZgNh77oDYA/qBC/QEhQ4AH4UYBCqFHJA1hSKsO4UkvGOFKOxlhWjAc4VrzHmFeMDQhYh5hoWPwaiFkQG2hZE9vYWXwr+FlnbzhZgDPoWdn0SFoANqhaADg4Wmu4mFr6+RhbdDo4W3782FuAQDubvABP28AAwAAgwQgAJEFYABdE6AAEhcgHwwgYB/vLCArKjCgK2+mYCwCqOAsHvvgLQD+IDae/2A2/QHhNgEKITckDeE3qw5hOS8Y4TkwHOFK8x7hTkA0oVIeYeFT8GphVE9v4VSdvGFVAM9hVmXRoVYA2iFXAOChWK7iIVrs5OFb0OhhXCAA7lzwAX9doBAAAKATYAaAHKAHFh8gCLYkQAkALKASQKbgEjCrYBQA++AWIf+gFwAEIRiAB6EYgAxhG6AYYRxAbmEdANShHabW4R0A34EiMOBhJQDpISYw8WEmivGyJgAGAQEDAQQCBQcHAggICQIKBQsCDgQQARECEgUTHBQBFQIXAhkNHAUdCB8BJAFqBGsCrwOxArwCzwLRAtQM1QnWAtcC2gHgBeEC5wToAu4g8AT4AvoE+wEMJzs+Tk+Pnp6fe4uTlqKyuoaxBgcJNj0+VvPQ0QQUGDY3Vld/qq6vvTXgEoeJjp4EDQ4REikxNDpFRklKTk9kZYqMjY+2wcPExsvWXLa3GxwHCAoLFBc2OTqoqdjZCTeQkagHCjs+ZmmPkhFvX7/u71pi9Pz/U1Samy4vJyhVnaCho6SnqK26vMQGCwwVHTo/RVGmp8zNoAcZGiIlPj/n7O//xcYEICMlJigzODpISkxQU1VWWFpcXmBjZWZrc3h9f4qkqq+wwNCur25v3d6TXiJ7BQMELQNmAwEvLoCCHQMxDxwEJAkeBSsFRAQOKoCqBiQEJAQoCDQLTgM0DIE3CRYKCBg7RTkDYwgJMBYFIQMbBQFAOARLBS8ECgcJB0AgJwQMCTYDOgUaBwQMB1BJNzMNMwcuCAoGJgMdCAKA0FIQAzcsCCoWGiYcFBcJTgQkCUQNGQcKBkgIJwl1C0I+KgY7BQoGUQYBBRADBQtZCAIdYh5ICAqApl4iRQsKBg0TOgYKBhQcLAQXgLk8ZFMMSAkKRkUbSAhTDUkHCoC2Ig4KBkYKHQNHSTcDDggKBjkHCoE2GQc7Ax1VAQ8yDYObZnULgMSKTGMNhDAQFgqPmwWCR5q5OobGgjkHKgRcBiYKRgooBROBsDqAxltlSwQ5BxFABQsCDpf4CITWKQqi54EzDwEdBg4ECIGMiQRrBQ0DCQcQj2CA+gaBtExHCXQ8gPYKcwhwFUZ6FAwUDFcJGYCHgUcDhUIPFYRQHwYGgNUrBT4hAXAtAxoEAoFAHxE6BQGB0CqA1isEAYHggPcpTAQKBAKDEURMPYDCPAYBBFUFGzQCgQ4sBGQMVgqArjgdDSwECQcCDgaAmoPYBBEDDQN3BF8GDAQBDwwEOAgKBigILAQCPoFUDB0DCgU4BxwGCQeA+oQGAAEDBQUGBgIHBggHCREKHAsZDBoNEA4MDwQQAxISEwkWARcEGAEZAxoHGwEcAh8WIAMrAy0LLgEwBDECMgGnBKkCqgSrCPoC+wX9Av4D/wmteHmLjaIwV1iLjJAc3Q4PS0z7/C4vP1xdX+KEjY6RkqmxurvFxsnK3uTl/wAEERIpMTQ3Ojs9SUpdhI6SqbG0urvGys7P5OUABA0OERIpMTQ6O0VGSUpeZGWEkZudyc7PDREpOjtFSVdbXF5fZGWNkam0urvFyd/k5fANEUVJZGWAhLK8vr/V1/Dxg4WLpKa+v8XHz9rbSJi9zcbOz0lOT1dZXl+Jjo+xtre/wcbH1xEWF1tc9vf+/4Btcd7fDh9ubxwdX31+rq9Nu7wWFx4fRkdOT1haXF5+f7XF1NXc8PH1cnOPdHWWJi4vp6+3v8fP19+aAECXmDCPH87P0tTO/05PWlsHCA8QJy/u725vNz0/QkWQkVNndcjJ0NHY2ef+/wAgXyKC3wSCRAgbBAYRgawOgKsFHwiBHAMZCAEELwQ0BAcDAQcGBxEKUA8SB1UHAwQcCgkDCAMHAwIDAwMMBAUDCwYBDhUFTgcbB1cHAgYXDFAEQwMtAwEEEQYPDDoEHSVfIG0EaiWAyAWCsAMaBoL9A1kHFgkYCRQMFAxqBgoGGgZZBysFRgosBAwEAQMxCywEGgYLA4CsBgoGLzGA9Ag8Aw8DPgU4CCsFgv8RGAgvES0DIQ8hD4CMBIKaFgsViJQFLwU7BwIOGAmAviJ0DIDWGoEQBYDhCfKeAzcJgVwUgLgIgN0VOwMKBjgIRggMBnQLHgNaBFkJgIMYHAoWCUwEgIoGq6QMFwQxoQSB2iYHDAUFgKYQgfUHASAqBkwEgI0EgL4DGwMPDQAAAFQZEAAlAAAAGgAAADYAAABUGRAAJQAAAAoAAAArAAAAYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVybwAAAHjDEAAZAAAAYXR0ZW1wdCB0byBjYWxjdWxhdGUgdGhlIHJlbWFpbmRlciB3aXRoIGEgZGl2aXNvciBvZiB6ZXJvAAAAnMMQADkAAAAAAAAABAAAAAQAAACTAQAAAAAAAAQAAAAEAAAAlAEAAGluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgIGJ1dCB0aGUgaW5kZXggaXMgAAAAxBAAIAAAACDEEAASAAAAPT0hPWFzc2VydGlvbiBgbGVmdCAgcmlnaHRgIGZhaWxlZAogIGxlZnQ6IAogcmlnaHQ6IEjEEAAQAAAAWMQQABcAAABvxBAACQAAACByaWdodGAgZmFpbGVkOiAKICBsZWZ0OiAAAABIxBAAEAAAAJDEEAAQAAAAoMQQAAkAAABvxBAACQAAALkAEAAdAAAAhgAAACMAAABceAAA3MQQAAIAAAACAEHyicMACwECAEH8icMAC7mMASAAAOm5ABAAHQAAAH8AAAArAAAAUmVmQ2VsbCBhbHJlYWR5IG11dGFibHkgYm9ycm93ZWQuLlJlZkNlbGwgYWxyZWFkeSBib3Jyb3dlZGludmFsaWQgdXRmLTggc2VxdWVuY2Ugb2YgIGJ5dGVzIGZyb20gaW5kZXggAABKxRAAGgAAAGTFEAASAAAAaW5jb21wbGV0ZSB1dGYtOCBieXRlIHNlcXVlbmNlIGZyb20gaW5kZXggAACIxRAAKgAAACAgICAgKDEgPDwgAAEAAAAAAAAAwMUQAAcAAABeBxIAAQAAAGNhbm5vdCBwYXJzZSBpbnRlZ2VyIGZyb20gZW1wdHkgc3RyaW5naW52YWxpZCBkaWdpdCBmb3VuZCBpbiBzdHJpbmdudW1iZXIgdG9vIGxhcmdlIHRvIGZpdCBpbiB0YXJnZXQgdHlwZW51bWJlciB0b28gc21hbGwgdG8gZml0IGluIHRhcmdldCB0eXBlbnVtYmVyIHdvdWxkIGJlIHplcm8gZm9yIG5vbi16ZXJvIHR5cGUAAAAAAAAAljAHdyxhDu66UQmZGcRtB4/0anA1pWPpo5VknjKI2w6kuNx5HunV4IjZ0pcrTLYJvXyxfgctuOeRHb+QZBC3HfIgsGpIcbnz3kG+hH3U2hrr5N1tUbXU9MeF04NWmGwTwKhrZHr5Yv3syWWKT1wBFNlsBmNjPQ/69Q0IjcggbjteEGlM5EFg1XJxZ6LR5AM8R9QES/2FDdJrtQql+qi1NWyYskLWybvbQPm8rONs2DJ1XN9Fzw3W3Fk90ausMNkmOgDeUYBR18gWYdC/tfS0ISPEs1aZlbrPD6W9uJ64AigIiAVfstkMxiTpC7GHfG8vEUxoWKsdYcE9LWa2kEHcdgZx2wG8INKYKhDV74mFsXEftbYGpeS/nzPUuOiiyQd4NPkAD46oCZYYmA7huw1qfy09bQiXbGSRAVxj5vRRa2tiYWwc2DBlhU4AYvLtlQZse6UBG8H0CIJXxA/1xtmwZVDptxLquL6LfIi5/N8d3WJJLdoV83zTjGVM1PtYYbJNzlG1OnQAvKPiMLvUQaXfSteV2D1txNGk+/TW02rpaUP82W40RohnrdC4YNpzLQRE5R0DM19MCqrJfA3dPHEFUKpBAicQEAu+hiAMySW1aFezhW8gCdRmuZ/kYc4O+d5emMnZKSKY0LC0qNfHFz2zWYENtC47XL23rWy6wCCDuO22s7+aDOK2A5rSsXQ5R9Xqr3fSnRUm2wSDFtxzEgtj44Q7ZJQ+am0NqFpqegvPDuSd/wmTJ64ACrGeB31Ekw/w0qMIh2jyAR7+wgZpXVdi98tnZYBxNmwZ5wZrbnYb1P7gK9OJWnraEMxK3Wdv37n5+e++jkO+txfVjrBg6KPW1n6T0aHEwtg4UvLfT/Fnu9FnV7ym3Qa1P0s2skjaKw3YTBsKr/ZKAzZgegRBw+9g31XfZ6jvjm4xeb5pRoyzYcsag2a8oNJvJTbiaFKVdwzMA0cLu7kWAiIvJgVVvju6xSgLvbKSWrQrBGqzXKf/18Ixz9C1i57ZLB2u3luwwmSbJvJj7JyjanUKk20CqQYJnD82DuuFZwdyE1cABYJKv5UUerjiriuxezgbtgybjtKSDb7V5bfv3Hwh39sL1NLThkLi1PH4s91oboPaH80WvoFbJrn24Xewb3dHtxjmWgiIcGoP/8o7BmZcCwER/55lj2muYvjT/2thRc9sFnjiCqDu0g3XVIMETsKzAzlhJmen9xZg0E1HaUnbd24+SmrRrtxa1tlmC99A8DvYN1OuvKnFnrvef8+yR+n/tTAc8r29isK6yjCTs1Omo7QkBTbQupMG180pV95Uv2fZIy56ZrO4SmHEAhtoXZQrbyo3vgu0oY4MwxvfBVqN7wItAAAAAEExGxmCYjYyw1MtKwTFbGRF9Hd9hqdaVseWQU8IitnISbvC0Yro7/rL2fTjDE+1rE1+rrWOLYOezxyYh1ESwkoQI9lT03D0eJJB72FV164uFOa1N9e1mByWhIMFWZgbghipAJvb+i2wmss2qV1dd+YcbGz/3z9B1J4OWs2iJISV4xWfjCBGsqdhd6m+puHo8efQ8+gkg97DZbLF2qquXV3rn0ZEKMxrb2n9cHauazE571oqICwJBwttOBwS8zZG37IHXcZxVHDtMGVr9PfzKru2wjGidZEciTSgB5D7vJ8Xuo2EDnneqSU477I8/3nzc75I6Gp9G8VBPCreWAVPefBEfmLphy1PwsYcVNsBihWUQLsOjYPoI6bC2Ti/DcWgOEz0uyGPp5YKzpaNEwkAzFxIMddFi2L6bspT4XdUXbu6FWygo9Y/jYiXDpaRUJjX3hGpzMfS+uHsk8v69VzXYnId5nlr3rVUQJ+ET1lYEg4WGSMVD9pwOCSbQSM9p2v9ZeZa5nwlCctXZDjQTqOukQHin4oYIcynM2D9vCqv4SSt7tA/tC2DEp9ssgmGqyRIyeoVU9ApRn77aHdl4vZ5Py+3SCQ2dBsJHTUqEgTyvFNLs41IUnDeZXkx735g/vPm57/C/f58kdDVPaDLzPo2ioO7B5GaeFS8sTllp6hLmIM7CqmYIsn6tQmIy64QT13vXw5s9EbNP9ltjA7CdEMSWvMCI0HqwXBswYBBd9hH1zaXBuYtjsW1AKWEhBu8GopBcVu7WmiY6HdD2dlsWh5PLRVffjYMnC0bJ90cAD4SAJi5UzGDoJBirovRU7WSFsX03Vf078SUp8Lv1ZbZ9um8B66ojRy3a94xnCrvKoXteWvKrEhw028bXfguKkbh4TbeZqAHxX9jVOhUImXzTeXzsgKkwqkbZ5GEMCagnym4rsXk+Z/e/TrM89Z7/ejPvGupgP1aspk+CZ+yfziEq7AkHCzxFQc1MkYqHnN3MQe04XBI9dBrUTaDRnp3sl1jTtf6yw/m4dLMtcz5jYTX4EoSlq8LI422yHCgnYlBu4RGXSMDB2w4GsQ/FTGFDg4oQphPZwOpVH7A+nlVgctiTB/FOIFe9COYnacOs9yWFaobAFTlWjFP/JliYtfYU3nOF0/hSVZ++lCVLdd71BzMYhOKjS1Su5Y0kei7H9DZoAbs835ercJlR26RSGwvoFN16DYSOqkHCSNqVCQIK2U/EeR5p5alSLyPZhuRpCcqir3gvMvyoY3Q62Le/cAj7+bZveG8FPzQpw0/g4omfrKRP7kk0HD4FctpO0bmQnp3/Vu1a2Xc9Fp+xTcJU+52OEj3sa4JuPCfEqEzzD+Kcv0kkwAAAAA3asIBbtSEA1m+RgLcqAkH68LLBrJ8jQSFFk8FuFETDo870Q/WhZcN4e9VDGT5GglTk9gICi2eCj1HXAtwoyYcR8nkHR53oh8pHWAerAsvG5th7RrC36sY9bVpGcjyNRL/mPcTpiaxEZFMcxAUWjwVIzD+FHqOuBZN5HoX4EZNONcsjzmOksk7ufgLOjzuRD8LhIY+UjrAPGVQAj1YF142b32cNzbD2jUBqRg0hL9XMbPVlTDqa9My3QERM5DlaySnj6kl/jHvJ8lbLSZMTWIjeyegIiKZ5iAV8yQhKLR4Kh/euitGYPwpcQo+KPQccS3DdrMsmsj1Lq2iNy/AjZpw9+dYca5ZHnOZM9xyHCWTdytPUXZy8Rd0RZvVdXjciX5Ptkt/FggNfSFiz3ykdIB5kx5CeMqgBHr9ysZ7sC68bIdEfm3e+jhv6ZD6bmyGtWtb7HdqAlIxaDU482kIf69iPxVtY2arK2FRwelg1NemZeO9ZGS6AyJmjWngZyDL10gXoRVJTh9TS3l1kUr8Y95PywkcTpK3Wkyl3ZhNmJrERq/wBkf2TkBFwSSCREQyzUFzWA9AKuZJQh2Mi0NQaPFUZwIzVT68dVcJ1rdWjMD4U7uqOlLiFHxQ1X6+Ueg54lrfUyBbhu1mWbGHpFg0ketdA/spXFpFb15tL61fgBs14bdx9+Duz7Hi2aVz41yzPOZr2f7nMme45QUNeuQ4SibvDyDk7laeouxh9GDt5OIv6NOI7emKNqvrvVxp6vC4E/3H0tH8nmyX/qkGVf8sEBr6G3rY+0LEnvl1rlz4SOkA83+DwvImPYTwEVdG8ZRBCfSjK8v1+pWN983/T/ZgXXjZVze62A6J/No54z7bvPVx3oufs9/SIfXd5Us33NgMa9fvZqnWttjv1IGyLdUEpGLQM86g0Wpw5tNdGiTSEP5exSeUnMR+KtrGSUAYx8xWV8L7PJXDooLTwZXoEcCor03Ln8WPysZ7ycjxEQvJdAdEzENths0a08DPLbkCzkCWr5F3/G2QLkIrkhko6ZOcPqaWq1Rkl/LqIpXFgOCU+Me8n8+tfp6WEzicoXn6nSRvtZgTBXeZSrsxm33R85owNYmNB19LjF7hDY5pi8+P7J2Aitv3QouCSQSJtSPGiIhkmoO/DliC5rAegNHa3IFUzJOEY6ZRhToYF4cNctWGoNDiqZe6IKjOBGaq+W6kq3x4665LEimvEqxvrSXGrawYgfGnL+szpnZVdaRBP7elxCn4oPNDOqGq/XyjnZe+otBzxLXnGQa0vqdAtonNgrcM282yO7EPs2IPSbFVZYuwaCLXu19IFboG9lO4MZyRubSK3ryD4By92l5av+00mL4AAAAAZWe8uIvICarur7USV5dijzLw3jfcX2sluTjXne8otMWKTwh9ZOC9bwGHAde4v9ZK3dhq8jN33+BWEGNYn1cZUPowpegUnxD6cfisQsjAe9+tp8dnQwhydSZvzs1wf62VFRgRLfu3pD+e0BiHJ+jPGkKPc6KsIMawyUd6CD6vMqBbyI4YtWc7CtAAh7JpOFAvDF/sl+LwWYWHl+U90YeGZbTgOt1aT4/PPygzd4YQ5Orjd1hSDdjtQGi/Ufih+CvwxJ+XSCowIlpPV57i9m9Jf5MI9cd9p0DVGMD8bU7QnzUrtyONxRiWn6B/KicZR/26fCBBApKP9BD36EioPVgUm1g/qCO2kB0x0/ehiWrPdhQPqMqs4Qd/voRgwwbScKBetxcc5lm4qfQ83xVMhefC0eCAfmkOL8t7a0h3w6IPDcvHaLFzKccEYUyguNn1mG9EkP/T/H5QZu4bN9pWTSe5DihABbbG77Cko4gMHBqw24F/12c5kXjSK/QfbpMD9yY7ZpCag4g/L5HtWJMpVGBEtDEH+AzfqE0eus/xpuzfkv6JuC5GZxebVAJwJ+y7SPBx3i9MyTCA+dtV50VjnKA/a/nHg9MXaDbBcg+Kecs3XeSuUOFcQP9UTiWY6PZziIuuFu83FvhAggSdJz68JB/pIUF4VZmv1+CLyrBcMzu2We1e0eVVsH5QR9UZ7P9sITtiCUaH2ufpMsiCjo5w1J7tKLH5UZBfVuSCOjFYOoMJj6fmbjMfCMGGDW2mOrWk4UC9wYb8BS8pSRdKTvWv83YiMpYRnop4viuYHdmXIEvJ9HgurkjAwAH90qVmQWocXpb3eTkqT5eWn13y8SPlBRlrTWB+1/WO0WLn67beX1KOCcI36bV62UYAaLwhvNDqMd+Ij1ZjMGH51iIEnmqavaa9B9jBAb82brStUwkIFZpOch3/Kc6lEYZ7t3Thxw/N2RCSqL6sKkYRGTgjdqWAdWbG2BABemD+rs9ym8lzyiLxpFdHlhjvqTmt/cxeEUUG7k12Y4nxzo0mRNzoQfhkUXkv+TQek0HasSZTv9aa6+nG+bOMoUULYg7wGQdpTKG+UZs82zYnhDWZkpZQ/i4umblUJvze6J4ScV2MdxbhNM4uNqmrSYoRReY/AyCBg7t2keDjE/ZcW/1Z6UmYPlXxIQaCbERhPtSqzovGz6k3fjhBf9ZdJsNus4l2fNbuysRv1h1ZCrGh4eQeFPOBeahL12nLE7IOd6tcocK5OcZ+AYD+qZzlmRUkCzagNm5RHI6nFmaGwnHaPizebyxJudOU8IEECZXmuLF7SQ2jHi6xG0g+0kMtWW77w/bb6aaRZ1EfqbDMes4MdJRhuWbxBgXeAAAAALApYD1gU8B60HqgR8CmgPVwj+DIoPVAjxDcILLBS3AwcWIQDaEYsEoRMdB3Ae3wxbHEkPhhvjC/0ZdQgoKX4GAyvoBd4sQgGlLtQCdCMWCV8hgAqCJioO+SS8DSQ9yQUPP18G0jj1Aqk6YwF4N6EKUzU3CY4ynQ31MAsOIEL8HBtAah/GR8AbvUVWGGxIlBNHSgIQmk2oFOFPPhc8VksfF1TdHMpTdxixUeEbYFwjEEtetROWWR8X7VuJFDhrghoTaRQZzm6+HbVsKB5kYeoVT2N8FpJk1hLpZkARNH81GR99oxrCegkeuXifHWh1XRZDd8sVnnBhEeVy9xI0lY81j5cZNlKQszIpkiUx+J/nOtOdcTkOmts9dZhNPqiBODaDg641XoQEMSWGkjL0i1A534nGOgKObD55jPo9rLzxM4e+ZzBauc00IbtbN/C2mTzbtA8/BrOlO32xMzigqEYwi6rQM1atejctr+w0/KIuP9eguDwKpxI4caWEO6TXcymf1eUqQtJPLjnQ2S3o3Rsmw9+NJR7YJyFl2rEiuMPEKpPBUilOxvgtNcRuLuTJrCXPyzomEsyQImnOBiG8/g0vl/ybLEr7MSgx+acr4PRlIMv28yMW8VknbfPPJLDquiyb6CwvRu+GKz3tECjs4NIjx+JEIBrl7iRh53gnuSsOaxIpmGjPLjJstCykb2UhZmROI/BnkyRaY+gmzGA1P7loHj0va8M6hW+4OBNsaTXRZ0I3R2SfMO1g5DJ7YzECcG0aAOZuxwdMarwF2mltCBhiRgqOYZsNJGXgD7JmPRbHbhYUUW3LE/tpsBFtamEcr2FKHjlilxmTZuwbBWU5afJ3AmtkdN9sznCkblhzdWOaeF5hDHuDZqZ/+GQwfCV9RXQOf9N303h5c6h673B5dy17UnW7eI9yEXz0cId/IUCMcQpCGnLXRbB2rEcmdX1K5H5WSHJ9i0/YefBNTnotVDtyBlatcdtRB3WgU5F2cV5TfVpcxX6HW296/Fn5eS2+gV6WvBddS7u9WTC5K1rhtOlRyrZ/Uhex1VZss0NVsao2XZqooF5HrwpaPK2cWe2gXlLGoshRG6ViVWCn9Fa1l/9YnpVpW0OSw184kFVc6Z2XV8KfAVQfmKtQZJo9U7mDSFuSgd5YT4Z0XDSE4l/liSBUzou2VxOMHFNojopQvfx9Qob+60Fb+UFFIPvXRvH2FU3a9INOB/MpSnzxv0mh6MpBiupcQlft9kYs72BF/eKiTtbgNE0L555JcOUISqXVA0SO15VHU9A/QyjSqUD532tL0t39SA/aV0x02MFPqcG0R4LDIkRfxIhAJMYeQ/XL3EjeyUpLA87gT3jMdkygAAAACl01zLC6HITa5ylIYWQpGbs5HNUB3jWda4MAUdbYJT7MhRDydmI5uhw/DHanvAwnfeE568cGEKOtWyVvGbAtYDPtGKyJCjHk41cEKFjUBHmCiTG1OG4Y/VIzLTHvaAhe9TU9kk/SFNoljyEWngwhR0RRFIv+tj3DlOsIDyNgWsB5PW8Mw9pGRKmHc4gSBHPZyFlGFXK+b10Y41qRpbh//r/lSjIFAmN6b19WttTcVucOgWMrtGZKY947f69q0HegQI1CbPpqaySQN17oK7ReufHpa3VLDkI9IVN38ZwIUp6GVWdSPLJOGlbve9btbHuHNzFOS43WZwPni1LPVsClgPydkExGerkELCeMyJekjJlN+blV9x6QHZ1DpdEgGIC+OkW1coCinDrq/6n2UXypp4shnGsxxrUjW5uA7+9wiODFLb0sf8qUZBWXoaiuFKH5dEmUNc6uvX2k84ixGait3gP1mBK5ErFa00+ElmjMhMeykbELCHaYQ2IrrY/VoP9Aj/3KjDUa48RfR9YI5MTWWT6Z45WEfsrd7iP/EVN42n5JJe+y88LG+pmf8zYiHPNn+EHGq0Km7+Mo+9ovnBDSILZN5+wMqs6kZvf7aN10+zkHKc71vc7nvdeT0nFqyPcecJXC0spy65qgL95WG6zeB8Hx68t7FsKDEUv3T62BSwHn3H7NXTtXhTdmYkmM5WIYVrhX1OxffpyGAktQO1luPyEEW/Ob43K78b5Hd0o9RyaQYHLqKodbokDabm70MWZh3mxTrWSLeuUO1k8ptVVPeG8IerTV71P8v7JmMALpQ18YtHaTolNf28gOahdzjWpGqdBfihM3dsJ5akMOzuERwZS8JA0uWw1FRAY4if+FONgl2A0Unz8kXPViEZBIOTT/UmQBM+iDKHuC3h23OV0d5uMAKCpZ5wFiM7o0rodRPKGtDAltF+sgJX22FenGNRW4HGggdKaPCTzM0jzwcYkZn2vULFPRMwUbu24w1wDtMIbasAVKYFcsAgoKGc67Qe6BERzbTav78gXBpsfJeiXHmKB48lQan9sccMLu0M2Zy7/XxP5zbSPXOwd+4ve8/eKmZqDXatxH/iK2GsvuAvHD4Sis9i2SS99l+BbqqUOV6viZyN80Iy/2fElyw7D0Kebf7nTTE1ST+ls+zs+XhU3Pxl8Q+grl99NCj6rmjjghtEFifIGN2JuoxbLGnQkJRZ1Y0xiolGn/gdwDorQQvvmRf6SkpLMeQ437dB64N8+duGYVwI2qryek4sV6kS5xkZkhW8ys7eErhaWLdrBpMPWwOOqohfRQT6y8OhKZcIdJvB+dFInTJ/Ogm02ulVf2LZUGLHCgypaXiYL8yrxOQAAAAAtAt3pikRn5edGugxEyRP9KcvOFI6NdBjjj6nxWdO7zPTRZiVTl9wpPpUBwJ0aqDHwGHXYV17P1DpcEj2zpzeZ3qXqcHnjUHwU4Y2Vt24kZNps+Y19KkOBECieaKp0jFUHdlG8oDDrsM0yNlluvZ+oA79CQaT5+E3J+yWkZw5vc8oMspptSgiWAEjVf6PHfI7OxaFnaYMbawSBxoK+3dS/E98JVrSZs1rZm26zehTHQhcWGquwUKCn3VJ9TlSpWOo5q4UDnu0/D/Pv4uZQYEsXPWKW/pokLPL3JvEbTXrjJuB4Ps9HPoTDKjxZKomz8NvksS0yQ/eXPi71SteeXULRM1+fOJQZJTT5G/jdWpRRLDeWjMWQ0DbJ/dLrIEeO+R3qjCT0Tcqe+CDIQxGDR+rg7kU3CUkDjQUkAVDsrfp1SMD4qKFnvhKtCrzPRKkzZrXEMbtcY3cBUA513Lm0Kc6EGSsTbb5tqWHTb3SIcODdeR3iAJC6pLqc16ZndXlTLaLUUfBLcxdKRx4Vl669mj5f0JjjtnfeWboa3IRToICWbg2CS4eqxPGLx8YsYmRJhZMJS1h6rg3idsMPP59K9Bo7J/bH0oCwfd7tsqA3Tj0JxiM/1C+EeW4j6XuzylMnoff+JXweWWPGEjRhG/uX7rIK+uxv412q1e8wqAgGvLqFohG4WEu2/uJH2/w/rnhzll8VcUu2sjfxut81LFNlaT5uyGvjh28tWYsCL4RioaAtk8yi8Hpr5Ep2BuaXn48dsjviH2/SRVnV3ihbCDeL1KHG5tZ8L0GQxiMskhvKls4J9zvM1B6cim4S8Yiz+1IHGgo/BcfjmEN97/VBoAZbtOrR9rY3OFHwjTQ88lDdn335LPJ/JMVVOZ7JODtDIIJnUR0vZYz0iCM2+OUh6xFGrkLgK6yfCYzqJQXh6PjsaBPdSAURAKGiV7qtz1VnRGzazrUB2BNcpp6pUMucdLlxwGaE3MK7bXuEAWEWhtyItQl1edgLqJB/TRKcEk/PdaLnx3MP5RqaqKOglsWhfX9mLtSOCywJZ6xqs2vBaG6CezR8v9Y2oVZxcBtaHHLGs7/9b0LS/7KrdbkIpxi71U6RQPDq/EItA1sElw82BkrmlYnjF/iLPv5fzYTyMs9ZG4iTSyYlkZbPgtcsw+/V8SpMWljbIViFMoYePz7rHOLXRemoAOjrdelPrc/lIq8SDIEgu/3sImYUS2TcGCZmAfGcOhPMMTjOJZZ+dCn7fKnAWPMAMTXx3diSt2fU/7W6PXZOn5kbTEJwvAr4fNEIJZVyh4xkH4VRjbjD64HVwTZob50kVcKf+bxl2UOwCNueWatUN6jGVupBYRBQTQwSjaSAAAAAJ4Aqsx9ByVC4wePjvoOSoRkDuBIhwlvxhkJxQq1G+XTKxtPH8gcwJFWHGpdTxWvV9EVBZsyEooVrBIg2Ssxu3y1MRGwVjaePsg2NPLRP/H4Tz9bNKw41LoyOH52niperwAq9GPjLXvtfS3RIWQkFCv6JL7nGSMxaYcjm6VWYnb5yGLcNStlU7u1Zfl3rGw8fTJslrHRaxk/T2uz8+N5kyp9eTnmnn62aAB+HKQZd9muh3dzYmRw/Oz6cFYgfVPNheNTZ0kAVOjHnlRCC4ddhwEZXS3N+lqiQ2RaCI/ISChWVkiCmrVPDRQrT6fYMkZi0qxGyB5PQUeQ0UHtXO3CnSlzwjflkMW4aw7FEqcXzNeticx9YWrL8u/0y1gjWNl4+sbZ0jYl3l24u973dKLXMn4815iy39AXPEHQvfDG8yZVWPOMmbv0Axcl9KnbPP1s0aL9xh1B+kmT3/rjX3Pow4bt6GlKDu/mxJDvTAiJ5okCF+YjzvThrEBq4QaMu6Dr0CWgQRzGp86SWKdkXkGuoVTfrguYPKmEFqKpLtoOuw4DkLukz3O8K0HtvIGN9LVEh2q17kuJsmHFF7LLCZCRUKwOkfpg7ZZ17nOW3yJqnxoo9J+w5BeYP2qJmJWmJYq1f7uKH7NYjZA9xo068d+E//tBhFU3ooPauTyDcHXahTtTRIWRn6eCHhE5grTdIItx176L2xtdjFSVw4z+WW+e3oDxnnRMEpn7woyZUQ6VkJQEC5A+yOiXsUZ2lxuK8bSAL2+0KuOMs6VtErMPoQu6yquVumBndr3v6ei9RSVEr2X82q/PMDmoQL6nqOpyvqEveCChhbTDpgo6Xaag9oznTaoS5+dm8eBo6G/gwiR26Qcu6Omt4gvuImyV7oigOfyoeaf8ArVE+4072vsn98Py4v1d8kgxvvXHvyD1bXOn1vbWOdZcGtrR05RE0XlYXdi8UsPYFp4g35kQvt8z3BLNEwWMzbnJb8o2R/HKnIvow1mBdsPzTZXEfMMLxNYPN0emeqlHDLZKQIM41EAp9M1J7P5TSUYysE7JvC5OY3CCXEOpHFzpZf9bZuthW8wneFIJLeZSo+EFVSxvm1WGoxx2HQaCdrfKYXE4RP9xkojmeFeCeHj9Tpt/csAFf9gMqW341TdtUhnUat2XSmp3W1NjslHNYxidLmSXE7BkPd9hJdCD/yV6Txwi9cGCIl8NmyuaBwUrMMvmLL9FeCwVidQ+NVBKPp+cqTkQEjc5ut4uMH/UsDDVGFM3WpbNN/BaShRr/9QUwTM3E069qRPkcbAaIXsuGou3zR0EOVMdrvX/D44sYQ8k4IIIq24cCAGiBQHEqJsBbmR4BuHq5gZLJgAAAABDFHsXhij2LsU8jTkMUexdT0WXSop5GnPJbWFkGKLYu1u2o6yeii6V3Z5VghTzNOZX50/xktvCyNHPud9xQsCsMla7u/dqNoK0fk2VfRMs8T4HV+b7O9rfuC+hyGngGBcq9GMA78juOazclS5lsfRKJqWPXeOZAmSgjXlzo4LxguCWipUlqgesZr58u6/THd/sx2bIKfvr8WrvkOa7ICk5+DRSLj0I3xd+HKQAt3HFZPRlvnMxWTNKck1IXdLAMS6R1Eo5VOjHABf8vBfekd1znYWmZFi5K10brVBKymLplYl2koJMSh+7D15krMYzBciFJ37fQBvz5gMPiPEHA5LeRBfpyYErZPDCPx/nC1J+g0hGBZSNeoitzm7zuh+hSmVctTFymYm8S9qdx1wT8KY4UOTdL5XYUBbWzCsBdkFScjVVKWXwaaRcs33fS3oQvi85BMU4/DhIAb8sMxZu44rJLffx3ujLfOer3wfwYrJmlCGmHYPkmpC6p47rraSBY1znlRhLIqmVcmG97mWo0I8B68T0Fi74eS9t7AI4vCO75/83wPA6C03JeR823rByV7rzZiytNlqhlHVO2oPVw6PwltfY51PrVd4Q/y7J2ZJPrZqGNLpfurmDHK7ClM1he0uOdQBcS0mNZQhd9nLBMJcWgiTsAUcYYTgEDBovTwBVZgwULnHJKKNIijzYX0NRuTsARcIsxXlPFYZtNAJXoo3dFLb2ytGKe/OSngDkW/NhgBjnGpfd25euns/suT5Clcp9Vu7duGpj5Pt+GPMyE3mXcQcCgLQ7j7n3L/SuJuBNcWX0NmagyLtf49zASCqxoSxppdo7rJlXAu+NLBXsgqTkr5bf82qqUsopvind4NNIuaPHM65m+76XJe/FgPQgfF+3NAdIcgiKcTEc8Wb4cZACu2XrFX5ZZiw9TR07ncBkSN7UH18b6JJmWPzpcZGRiBXShfMCF7l+O1StBSyFYrzzxnbH5ANKSt1AXjHKiTNQrsonK7kPG6aATA/dl0gDx7gLF7yvzisxlo0/SoFEUivlB0ZQ8sJ63cuBbqbcUKEfAxO1ZBTWiektlZ2SOlzw814f5IhJ2tgFcJnMfmc5QQcUelV8A79p8Tr8fYotNRDrSXYEkF6zOB1n8CxmcCHj369i96S4p8spgeTfUpYtsjPybqZI5auaxdzojr7L64E2OqiVTS1tqcAULr27A+fQ2mekxKFwYfgsSSLsV17zI+6BsDeVlnULGK82H2O4/3IC3Lxmect5WvTyOk6P5ZrD9pbZ142BHOsAuF//e6+WkhrL1YZh3BC67OVTrpfygmEuLcF1VToESdgDR12jFI4wwnDNJLlnCBg0XksMT0kAAAAAPmvC7z3Q9QQDuzfreqDrCUTLKeZHcB4NeRvc4vRA1xPKKxX8yZAiF/f74PiO4DwasIv+9bMwyR6NWwvx6IGuJ9bqbMjVUVsj6zqZzJIhRS6sSofBr/GwKpGacsUcwXk0Iqq72yERjDAfek7fZmGSPVgKUNJbsWc5Zdql1tADXU/uaJ+g7dOoS9O4aqSqo7ZGlMh0qZdzQ0KpGIGtJEOKXBooSLMZk39YJ/i9t17jYVVgiKO6YzOUUV1YVr44gvNoBukxhwVSBmw7OcSDQiIYYXxJ2o5/8u1lQZkviszCJHvyqeaU8RLRf895E5C2Ys9yiAkNnYuyOna12fiZoAe6np5seHGd10+ao7yNddqnUZfkzJN453ekk9kcZnxUR22NaiyvYmmXmIlX/FpmLueGhBCMRGsTN3OALVyxb0iGFLl27dZWdVbhvUs9I1IyJv+wDE09Xw/2CrQxnchbvMbDqoKtAUWBFjauv330QcZmKKP4DepM+7bdp8XdH0hwBOfRTm8lPk3UEtVzv9A6CqQM2DTPzjc3dPncCR87M4REMMK6L/ItuZTFxof/Byn+5NvLwI8ZJMM0Ls/9X+wgmIVJ9qbuixmlVbzymz5+HeIlov/cTmAQ3/VX++GelRRsxZ7lUq5cClEVa+FvfqkOFmV17CgOtwMrtYDoFd5CBwEJBeY/YscJPNnw4gKyMg17qe7vRcIsAEZ5G+t4EtkE9UnS9csiEBrImSfx9vLlHo/pOfyxgvsTsjnM+IxSDhfpiKvB1+NpLtRYXsXqM5wqkyhAyK1Dgieu+LXMkJN3Ix3IfNIjo749IBiJ1h5zSzlnaJfbWQNVNFq4Yt9k06Aw0QpYqe9hmkbs2q2t0rFvQquqs6CVwXFPlnpGpKgRhEslSo+6GyFNVRiaer4m8bhRX+pks2GBplxiOpG3XFFTWDmL9o4H4DRhBFsDijowwWVDKx2HfUDfaH776INAkCpszcshnfOg43LwG9SZznAWdrdrypSJAAh7irs/kLTQ/X+hDr94n2V9l5zeSnyitYiT265UceXFlp7mfqF12BVjmlVOaGtrJaqEaJ6db1b1X4Av7oNiEYVBjRI+dmYsVbSJSY8RX3fk07B0X+RbSjQmtDMv+lYNRDi5Dv8PUjCUzb29z8ZMg6QEo4AfM0i+dPGnx28tRfkE76r6v9hBxNQarnEN4jdPZiDYTN0XM3K21dwLrQk+NcbL0TZ9/DoIFj7VhU01JLsm98u4ncAghvYCz//t3i3BhhzCwj0rKfxW6caZjEwQp+eO/6RcuRSaN3v74yynGd1HZfbe/FId4JeQ8m3MmwNTp1nsUBxuB253rOgXbHAKKQey5Sq8hQ4U10fhAAAAAMDfjsHBuWxYAWbimYJz2bBCrFdxQ8q16IMVOylF4cO6hT5Ne4RYr+JEhyEjx5IaCgdNlMsGK3ZSxvT4k8vE9q4LG3hvCn2a9sqiFDdJty8eiWih34gOQ0ZI0c2HjiU1FE76u9VPnFlMj0PXjQxW7KTMiWJlze+A/A0wDj3Xj5yGF1ASRxY28N7W6X4fVfxFNpUjy/eURSluVJqnr5JuXzxSsdH9U9czZJMIvaUQHYaM0MIITdGk6tQRe2QVHEtqKNyU5Ond8gZwHS2IsZ44s5he5z1ZX4HfwJ9eUQFZqqmSmXUnU5gTxcpYzEsL29lwIhsG/uMaYBx62r+Su+8ZSNYvxsYXLqAkju5/qk9tapFmrbUfp6zT/T5sDHP/qviLbGonBa1rQec0q55p9SiLUtzoVNwd6TI+hCntsEUk3b545AIwueVk0iAlu1zhpq5nyGZx6QlnFwuQp8iFUWE8fcKh4/MDoIURmmBan1vjT6RyI5AqsyL2yCriKUbrOJbUUPhJWpH5L7gIOfA2ybrlDeB6OoMhe1xhuLuD73l9dxfqvaiZK7zOe7J8EfVz/wTOWj/bQJs+vaIC/mIsw/NSIv4zjaw/MutOpvI0wGdxIftOsf51j7CYlxZwRxnXtrPhRHZsb4V3Co0ct9UD3TTAOPT0H7Y19XlUrDWm2m2fNeF3X+pvtl6MjS+eUwPuHUY4x92Ztgbc/1SfHCDaXtrUIs0aC6wMG21OlduywFRYp/t9mHh1vJkelyVZwRnkVPEX2ZQumRiVSHuBVZf1QNaCzmkWXUCoFzuiMdfkLPARENRj0c9aotCpuDsQdjb6k2MN01O8gxJS2mGLkgXvSki6ffGIZfMwiQMRqUncn2jKyaRBChYqgAtwyBnLr0bYDVu+S82EMIrM4tITDD1c0o8oZ/tP9+k6TpELo45OhWKDfotfQ6EFnkLH5weCGGnGAQ1S78HS3C7AtD63AGuwdsafSOUGQMYkByYkvcf5qnxE7JFVhDMflIVV/Q1FinPMcCypobDzJ2CxlcX5cUpLOPJfcBEygP7QM+YcSfM5kog1zWob9RLk2vR0BkM0q4iCt76zq3dhPWp2B9/ztthRMrvoXw97N9HOelEzV7qOvZY5m4a/+UQIfvgi6uc4/WQm/gmctT7WEnQ/sPDt/29+LHx6RQW8pcvEvcMpXX0cp5ynozUnZ3y75mYaWX+mxde+JdDsl+UPYlbkaYDPJLYODuJC9p0inXhcI/uaxeMkFARgMS8toO6h7KGIQ3VhV820bGfDiay4TUit3q/RbQEhEO4UGjkuy5T4L612Ye9y+KAphgAz6VmO8ug/bGso4OKqq/XZg2sqV0JqTLXbqpM7GgAAAABvTKWbn5477PDSnnd/OwYDEHejmOClPe+P6Zh0/nYMBpE6qZ1h6DfqDqSScYFNCgXuAa+eHtMx6XGflHL87RgMk6G9l2NzI+AMP4Z7g9YeD+yau5QcSCXjcwSAeAKbFApt17GRnQUv5vJJin19oBIJEuy3kuI+KeWNcox++NsxGJeXlINnRQr0CAmvb4fgNxvorJKAGH4M93cyqWwGrT0eaeGYhZkzBvL2f6NpeZY7HRbanobmCADxiUSlagQ2KRRreoyPm6gS+PTkt2N7DS8XFEGKjOSTFPuL37Fg+kAlEpUMgIll3h7+CpK7ZYV7IxHqN4aKGuUY/XWpvWbwt2Mwn/vGq28pWNwAZf1Hj4xlM+DAwKgQEl7ff177RA7BbzZhjcqtkV9U2v4T8UFx+mk1HrbMru5kUtmBKPdCDFp7PGMW3qeTxEDQ/IjlS3NhfT8cLdik7P9G04Oz40jyLHc6nWDSoW2yTNYC/ulNjRdxOeJb1KISiUrVfcXvTghsUihnIPezl/JpxPi+zF93V1QrGBvxsOjJb8eHhcpc9hpeLplW+7VphGXCBsjAWYkhWC3mbf22Fr9jwXnzxlr0gUokm83vv2sfccgEU9RTi7pMJ+T26bwUJHfLe2jSUAr3RiJlu+O5lWl9zvol2FV1zEAhGoDluupSe82FHt5W4G/HYI8jYvt/8fyMEL1ZF59UwWPwGGT4AMr6j2+GXxQeGctmcVVu/YGH8Iruy1URYSLNZQ5uaP7+vPaJkfBTEhyC32xzznr3gxzkgOxQQRtjudlvDPV89Pwn4oOTa0cY4vTTao24dvF9auiGEiZNHZ3P1Wnyg3DyAlHuhW0dSx4YtPZ4d/hT44cqzZToZmgPZ4/wewjDVeD4EcuXl11uDObC+n6Jjl/leVzBkhYQZAmZ+fx99rVZ5gZnx5FpK2IK5FnudIsVS+97x9WYFItwA5ti6Hf0Lk3sBPzTm2uwdgAaL+JydWNH6YWx2Z7q/XwFZRTkcQpYQer6it+dlcZ6BhDYpFB/lAHLj0afvOAKOidv46JTAK8HyPB9mb+fMTwk7q6oVoHiDc1xMJO6Hnw2IZGVrlX+2QvODguVuWFHMCLsNbxcg3kZx3Orh7Ac5yIrkw66X/xCH8QMkIGzY9wkKBJDsFp9DxXBjd2LtuKRLi1teLZZAjQTwvLmjbWdqigu6AOVSIdPMNN3na6kGNELP5c4k0v4dDbQCKaop2fqDTwWdZlOeTk81YnroqLmpwc5aU6fTQYCOtb20KShmZwBOhTujUR7oijfi3C2qOQ8EzNr1YtHBJku3PRLsKubBxUw6piBQoXUJNl1BrquGkofNZWjh0H67yLaCj28rWVxGTYAAAAAhdmW3Uu1XGDObMq9lmq5wBOzLx3d3+WgWAZzfW3TA1roCpWHJmZfOqO/yef7ubqafmAsR7AM5vo11XAn2qYHtF9/kWmRE1vUFMrNCUzMvnTJFSipB3niFIKgdMm3dQTuMqySM/zAWI55Gc5TIR+9LqTGK/NqquFO73N3k/VLfrNwkuhuvv4i0zsntA5jIcdz5vhRriiUmxOtTQ3OmJh96R1B6zTTLSGJVvS3VA7yxCmLK1L0RUeYScCeDpQv7XkHqjTv2mRYJWfhgbO6uYfAxzxeVhryMpynd+sKekI+el3H5+yACYsmPYxSsODUVMOdUY1VQJ/hn/0aOAkgq5GNvS5IG2DgJNHdZf1HAD37NH24IqKgdk5oHfOX/sDGQo7nQ5sYOo330ocILkRaUCg3J9XxofobnWtHnkT9mnE3ign07hzUOoLWab9bQLTnXTPJYoSlFKzob6kpMfl0HOSJU5k9H45XUdUz0ohD7oqOMJMPV6ZOwTts80Ti+i5e2vMO2wNl0xVvr26QtjmzyLBKzk1p3BODBRauBtyAczMJ8FS20GaJeLysNP1lOumlY0mUILrfSe7WFfRrD4MphHz0ugGlYmfPyajaShA+BxIWTXqXz9unWaMRGtx6h8fpr/fgbHZhPaIaq4Anwz1df8VOIPoc2P00cBJAsamEnRclaqCS/Px9XJA2wNlJoB2BT9NgBJZFvcr6jwBPIxndevZp+v8v/ycxQzWatJqjR+yc0DppRUbnpymMWiLwGofNg20USFr7yYY2MXQD76epW+nU1N4wQgkQXIi0lYUeaaBQbk4lifiT6+UyLm48pPM2OteOs+NBU32Pi+74Vh0z4m4UE2e3gs6p20hzLALernQErdPx3TsOP7Hxs7poZ26PvRdJCmSBlMQISylB0d30GdeuiZwOOFRSYvLp17tkNDjIE6e9EYV6c31Px/ak2RquoqpnK3s8uuUX9gdgzmDaVRsQ/dDChiAerkydm3faQMNxqT1GqD/giMT1XQ0dY4C8tOcdOW1xwPcBu31y2C2gKt5e3a8HyABhawK95LKUYNFn5EdUvnKamtK4Jx8LLvpHDV2HwtTLWgy4AeeJYZc6ZhLgqePLdnQtp7zJqH4qFPB4WWl1oc+0u80FCT4Uk9QLwePzjhh1LkB0v5PFrSlOnataMxhyzO7WHgZTU8eQjkn/ma7MJg9zAkrFzoeTUxPflSBuWky2s5QgfA4R+erTJCya9KH1DClvmcaU6kBQSbJGIzQ3n7Xp+fN/VHwq6YmTWZ4aFoAIx9jswnpdNVSnBTMn2oDqsQdOhnu6y1/tZ/6KnUB7UwudtT/BIDDmV/1o4CSA7TmyXSNVeOCmjO49AAAAAHbhD52txG7h2yVhfBuPrBltbqOEtkvC+MCqzWU2HlkzQP9WrpvaN9LtOzhPLZH1Kltw+reAVZvL9rSUVmw8smYa3b37wfjch7cZ0xp3sx5/AVIR4tp3cJ6sln8DWiLrVSzD5Mj35oW0gQeKKUGtR0w3TEjR7GkprZqIJjDYeGTNrplrUHW8CiwDXQWxw/fI1LUWx0luM6Y1GNKpqO5mPf6YhzJjQ6JTHzVDXIL16ZHngwieelgt/wYuzPCbtETWq8Kl2TYZgLhKb2G316/LerLZKnUvAg8UU3TuG86CWo+Y9LuABS+e4XlZf+7kmdUjge80LBw0EU1gQvBC/fH3uUGHFrbcXDPXoCrS2D3qeBVYnJkaxUe8e7kxXXQkx+ngcrEI7+9qLY6THMyBDtxmTGuqh0P2caIiigdDLRedywsn6yoEujAPZcZG7mpbhkSnPvClqKMrgMnfXWHGQqvVUhTdNF2JBhE89XDwM2iwWv4NxrvxkB2ekOxrf59xKY/djF9u0hGES7Nt8qq88DIAcZVE4X4In8QfdOklEOkfkYS/aXCLIrJV6l7EtOXDBB4opnL/Jzup2kZH3ztJ2kWzb+ozUmB36HcBC56WDpZePMPzKN3MbvP4rRKFGaKPc6022QVMOUTeaVg4qIhXpWgimsAew5Vdxeb0IbMH+7zi73ODlA58Hk8rHWI5yhL/+WDfmo+B0AdUpLF7IkW+5tTxKrCiECUteTVEUQ/US8zPfoapuZ+JNGK66EgUW+fVjtPB5fgyzngjF68EVfagmZVcbfzjvWJhOJgDHU55DIC4zZjWziyXSxUJ9jdj6Pmqo0I0z9WjO1IOhloueGdVszqXF05MdhjTl1N5r+GydjIhGLtXV/m0yozc1bb6PdorDIlOfXpoQeChTSCc16wvARcG4mRh5+35usKMhcwjgxhWq6UoIEqqtftvy8mNjsRUTSQJMTvFBqzg4GfQlgFoTWC1/BsWVPOGzXGS+ruQnWd7OlACDdtfn9b+PuOgHzF+ExjKwmX5xV++3KQjyD2rvgiXZtt+dmlGpVMIOtOyB6clBpPxU+ecbIjC/RD+I/KNPok/6EhoMHWTTVEJ5axelH8keKQJxXc50uAWRaQBGdhkq9S9EkrbIMlvuly/jrXBSTohlz/bLgrk/k92kh9A61K1jY4kVIIT/3Hjb4mQ7PLLYK4PvYGhkmakwO4QRc9z0O8CFqYODYt9K2z3C8pjav1+9zyLn/ihULqZ3SZblkDm8VslkBBUuEs1NcQ91DpZp1wcadG9E/QKmHKIfHl9FbzTsHDKMr/tERfekWf20QyRQkVa56NKxzyGK7tKZyQmis3pQ/ws5t4nCYeiUeiIPwAAAADo2/u5kbGGqHlqfRFjZXyKi76HM/LU+iIaDwGbh8yJz28XcnYWfQ9n/qb03uSp9UUMcg78dRhz7Z3DiFRPn2JEp0SZ/d4u5Ow29R9VLPoezsQh5Xe9S5hmVZBj38hT64sgiBAyWeJtI7E5lpqrNpcBQ+1suDqHEanSXOoQnj7FiHblPjEPj0Mg51S4mf1buQIVgEK7bOo/qoQxxBMZ8kxH8Sm3/ohDyu9gmDFWepcwzZJMy3TrJrZlA/1N3NGhp8w5elx1QBAhZKjL2t2yxNtGWh8g/yN1Xe7LrqZXVm0uA7621brH3KirLwdTEjUIUond06kwpLnUIUxiL5h9e/vKlaAAc+zKfWIEEYbbHh6HQPbFfPmPrwHoZ3T6Ufq3cgUSbIm8awb0rYPdDxSZ0g6PcQn1NghjiCfguHOeMuSZjto/YjejVR8mS47kn1GB5QS5Wh69wDBjrCjrmBW1KBBBXfPr+CSZlunMQm1Q1k1syz6Wl3JH/OpjrycR2uNFPkILnsX7cvS46povQ1OAIELIaPu5cRGRxGD5Sj/ZZIm3jYxSTDT1ODElHePKnAfsywfvNzC+ll1Nr36Gthas2lwGRAGnvz1r2q7VsCEXz78gjCdk2zVeDqYkttVdnSsW1cnDzS5wuqdTYVJ8qNhIc6lDoKhS+tnCL+sxGdRSu/CHTlMrfPcqQQHmwpr6X9iV+8QwTgB9SSR9bKH/htU8PA6B1Of1OK2NiClFVnOQX1lyC7eCibLO6PSjJjMPGvRv5QoctB6zZd5joo0FmBuXCpmAf9FiOQa7HyjuYOSRc6NsxZt4l3ziEuptCskR1BDGEE/4Hev2gXeW52msbV4lzkLGzRW5f7R/xG5cpD/XRqs+TK5wxfXXGrjkP8FDXaICywlK2TCwM7NNodtothjBZ7eDKbxMOlDWMSu4DcqSalEggoKK2zv74KYqEztdkwk0XAjh76exmIXaoHBeIRntnalNBUZS9HwsL+WU99RcjvjVx2YjLn4fSVNv95Ko1saLfIQuUIc9Vzr6LL/hAZWl7gAOTTX7tzRfhqbchH0fQUf1S6mcDvLQ9nPjOC2IWiIiicHK+XJ4s5MPaVtI9NCJFB7AYc/leRilmGjwfmPR6nFiSgKqmfN7wOTikxsfWw7Ylw/mA2y2n2kRp3ey6h5tveuFhWYQPPwMbS0U15aUWLW5DLBuQrXJBD+kId/EHTvQxYbTCz4/qmFDLkK6uJffeTDDN6LLek7ItmumE03SvBxMSVTHt/AtrcrhxXYxWBcq20j/8SDxhptd4G5Apll0T6fCnJRce+X+IWoNJdrTkOZSh3g9qT4BV9Qv6YwvlvODLg0bWNW0YjKopYrpUxwAAAAAkZFormMloIfytMgph0wx1BbdWXrkaZFTdfj5/U+fE3PeDnvdLLqz9L0r21rI0yKnWUJKCav2giA6Z+qOnj4n5g+vT0j9G4dhbIrvzxlyFjKI436cele2tevG3hvRoTSVQDBcO7KElBIjFfy8Vu0FQcd8be81yKXGpFnNaH17Pxfs6le5Hl6fkI/P9z76Nw7Da6ZmbZkSrkQIg8bqMuQsZKN1RMpRwYzjwFDkTbWoHbAkOXUe1o29N0cc1ZnjRRjxctRwX4BguHYR8dDYZAkpJfWYQYsHLImilr3hDKzaC4I9S2Msz/+rBV5uw6srljpWugdS+EizmtHZIvJ/+vZ+LmtnFoCZ096pCEK2B326T/rsKydUHp/vfY8Oh9O1aW1dJPgF89ZMzdpH3aV0MiVciaO0NCdRAPwOwJGUoGTIWcj1WTFmB+35T5Z8keHjhGgcchUAsoChyJsRMKA1K1dKu7rGIhVIcuo82eOCkqwbe289ihPBzz7b6F6vs0aHjUE5Fhwpl+So4b51OYkQAMFw7ZFQGENj5NBq8nW4xMgSUkpZgzrkqzfyzTqmmmNPXmOe3s8LMCx7wxm96qu3GbNm34giDnF6lsZY6weu9p7/VwsPbj+l/dr3jGxLnyJWLHWsx70dAjUJ1SukmL2F0WBEeEDxLNayReT/I9SMUfTt/VxlfJXyl8hd2wZZNXVzocyI4jCkJhCEbA+BFQShu3LuLyrjhoHYV06oScYmBjw+3/utr7dVXxt/fM6KF9Jq09q6+0KyFAn2ej2YZxKT7Z/rbnwOg8COukvpHysjRyVMycm03aFnRmlpTtf4AeCiAPgdM5GQs8ElWJpQtDA0iZbCSxgHquXqs2LMeyIKYg7a85+fS5sxbf9TGPxuO7bGCdE4V5i5lqUscb80vRkRQUXg7NDUiEIiYEBrs/EoxReo5a2GOY0DdI1FKuUcLYSQ5NR5AXW81/PBdP5iUBxQWDf23smmnnA7ElZZqoM+9997xwpO6q+kvF5njS3PDyMOG4Nyn4rr3G0+I/X8r0tbiVeyphjG2gjqchIhe+N6j0GEkAHQFfivIqEwhrMwWCjGyKHVV1nJe6XtAVI0fGn8kCWklAG0zDrzAAQTYpFsvRdplUCG+P3udEw1x+XdXWnfurfnTivfSbyfF2AtDn/OWPaGM8ln7p070ya0qkJOGnNgvGXi8dTLEEUc4oHUdEz0LI2xZb3lH5cJLTYGmEWYPP+vFq1ux7hf2g+RzktnP7uznsIqIvZs2JY+RUkHVuvtXpuDfM/zLY57OwQf6lOqahKqV/uDwvkJNwrQmKZifqLBiPAzUOBeweQod1B1QNkljbkktBzRikaoGaPXOXENEQYQAGQAAACgAAAAHAAAAACBAAAAgQEAAIECAACBAwAAgQQAAIEFAACBBgAAgQcAAIEIAACBCQAAgQoAAIELAACBDAAAgQ0AAIEOAACBDwAAgRAAAIERAACBEgAAgRMAAIEUAACBFQAAgRYAAIEXAACBGAAAgRkAAIEaAACBGwAAgRwAAIEdAACBHgAAgR8AAIEgAACBIQAAgSIAAIEjAACBJAAAgSUAAIEmAACBJwAAgSgAAIEpAACBKgAAgSsAAIEsAACBLQAAgS4AAIEvAACBMAAAgTEAAIEyAACBMwAAgTQAAIE1AACBNgAAgTcAAIE4AACBOQAAgToAAIE7AACBPAAAgT0AAIE+AACBPwAAgUAAAIFBAACBQgAAgUMAAIFEAACBRQAAgUYAAIFHAACBSAAAgUkAAIFKAACBSwAAgUwAAIFNAACBTgAAgU8AAIFQAACBUQAAgVIAAIFTAACBVAAAgVUAAIFWAACBVwAAgVgAAIFZAACBWgAAgVsAAIFcAACBXQAAgV4AAIFfAACBYAAAgWEAAIFiAACBYwAAgWQAAIFlAACBZgAAgWcAAIFoAACBaQAAgWoAAIFrAACBbAAAgW0AAIFuAACBbwAAgXAAAIFxAACBcgAAgXMAAIF0AACBdQAAgXYAAIF3AACBeAAAgXkAAIF6AACBewAAgXwAAIF9AACBfgAAgX8AAIGAAACBgQAAgYIAAIGDAACBhAAAgYUAAIGGAACBhwAAgYgAAIGJAACBigAAgYsAAIGMAACBjQAAgY4AAIGPAACBkAAAgZEAAIGSAACBkwAAgZQAAIGVAACBlgAAgZcAAIGYAACBmQAAgZoAAIGbAACBnAAAgZ0AAIGeAACBnwAAgaAAAIGhAACBogAAgaMAAIGkAACBpQAAgaYAAIGnAACBqAAAgakAAIGqAACBqwAAgawAAIGtAACBrgAAga8AAIGwAACBsQAAgbIAAIGzAACBtAAAgbUAAIG2AACBtwAAgbgAAIG5AACBugAAgbsAAIG8AACBvQAAgb4AAIG/AACBwAAAgcEAAIHCAACBwwAAgcQAAIHFAACBxgAAgccAAIHIAACByQAAgcoAAIHLAACBzAAAgc0AAIHOAACBzwAAgdAAAIHRAACB0gAAgdMAAIHUAACB1QAAgdYAAIHXAACB2AAAgdkAAIHaAACB2wAAgdwAAIHdAACB3gAAgd8AAIHgAACB4QAAgeIAAIHjAACB5AAAgeUAAIHmAACB5wAAgegAAIHpAACB6gAAgesAAIHsAACB7QAAge4AAIHvAACB8AAAgfEAAIHyAACB8wAAgfQAAIH1AACB9gAAgfcAAIH4AACB+QAAgfoAAIH7AACB/AAAgf0AAIH+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ZXRyaWMgaW50ZXJwcmV0YXRpb24gb2YgYSBDSUNQIGNvbG9yIHNwYWNlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGBUIxEATAAAAOiSEQABAAAAVGhlIGZpbGUgZXh0ZW5zaW9uICB3YXMgbm90IHJlY29nbml6ZWQgYXMgYW4gaW1hZ2UgZm9ybWF0AAAAsCMRABMAAADDIxEAJgAAAFRoZSBpbWFnZSBmb3JtYXQgY291bGQgbm90IGJlIGRldGVybWluZWRUaGUgaW1hZ2UgZm9ybWF0IAAAACQkEQARAAAAMCMRABEAAABUaGUgZGVjb2RlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmb3JtYXQgZmVhdHVyZSBIJBEAMAAAAFRoZSBkZWNvZGVyIGZvciAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZm9ybWF0IGZlYXR1cmVzIAAAgCQRABAAAACQJBEAJgAAAEVycgAAAAAABAAAAAQAAACtAQAARm9ybWF0RXJyb3JSaWZmU2lnbmF0dXJlSW52YWxpZFdlYnBTaWduYXR1cmVJbnZhbGlkQ2h1bmtNaXNzaW5nQ2h1bmtIZWFkZXJJbnZhbGlkUmVzZXJ2ZWRCaXRTZXRJbnZhbGlkQWxwaGFQcmVwcm9jZXNzaW5nSW52YWxpZENvbXByZXNzaW9uTWV0aG9kQWxwaGFDaHVua1NpemVNaXNtYXRjaEltYWdlVG9vTGFyZ2VGcmFtZU91dHNpZGVJbWFnZUxvc3NsZXNzU2lnbmF0dXJlSW52YWxpZFZlcnNpb25OdW1iZXJJbnZhbGlkSW52YWxpZENvbG9yQ2FjaGVCaXRzSHVmZm1hbkVycm9yQml0U3RyZWFtRXJyb3JUcmFuc2Zvcm1FcnJvclZwOE1hZ2ljSW52YWxpZE5vdEVub3VnaEluaXREYXRhQ29sb3JTcGFjZUludmFsaWRMdW1hUHJlZGljdGlvbk1vZGVJbnZhbGlkSW50cmFQcmVkaWN0aW9uTW9kZUludmFsaWRDaHJvbWFQcmVkaWN0aW9uTW9kZUludmFsaWRJbmNvbnNpc3RlbnRJbWFnZVNpemVzVW5zdXBwb3J0ZWRGZWF0dXJlSW52YWxpZFBhcmFtZXRlck1lbW9yeUxpbWl0RXhjZWVkZWRJbnZhbGlkQ2h1bmtTaXplTm9Nb3JlRnJhbWVzSW52YWxpZERpbWVuc2lvbnMAAAAABAAAAAQAAACuAQAAVHJ5UmVzZXJ2ZUVycm9yTGltaXRzRXhjZWVkZWQAAAC7AAAACAAAAAQAAAAWAAAAuwAAAAgAAAAEAAAAvAAAABYAAAAwJxEAvQAAAL4AAACyAAAAvwAAALMAAABVbnJlcHJlc2VudGFibGVJbnZhbGlkS2V5d29yZFNpemVNaXNzaW5nTnVsbFNlcGFyYXRvckluZmxhdGlvbkVycm9yT3V0T2ZEZWNvbXByZXNzaW9uU3BhY2VJbnZhbGlkQ29tcHJlc3Npb25GbGFnTWlzc2luZ0NvbXByZXNzaW9uRmxhZwAAAAAAAAQAAAAEAAAAwAAAAAAAAAAEAAAABAAAAGMAAABDcmNNaXNtYXRjaGNyY192YWxjcmNfc3VtSW52YWxpZFNpZ25hdHVyZU1pc3NpbmdGY3RsTWlzc2luZ0ltYWdlRGF0YUNodW5rQmVmb3JlSWhkckFmdGVySWRhdEJlZm9yZVBsdGVBZnRlclBsdGVPdXRzaWRlUGx0ZUlkYXREdXBsaWNhdGVDaHVua0FwbmdPcmRlcnByZXNlbnRTaG9ydFBhbGV0dGVsZW4AAAAAAAEAAAABAAAArwEAAEludmFsaWRTYml0Q2h1bmtTaXplY29sb3JfdHlwZQAAAAAAAAEAAAABAAAAsAEAAEludmFsaWRTYml0c2FtcGxlX2RlcHRoc2JpdFBhbGV0dGVSZXF1aXJlZAAAAAAAAAQAAAAEAAAAsQEAAEludmFsaWRDb2xvckJpdERlcHRoYml0X2RlcHRoQ29sb3JXaXRoQmFkVHJuc0ludmFsaWRCaXREZXB0aEludmFsaWRDb2xvclR5cGVJbnZhbGlkRGlzcG9zZU9wSW52YWxpZEJsZW5kT3BJbnZhbGlkVW5pdEludmFsaWRTcmdiUmVuZGVyaW5nSW50ZW50VW5rbm93bkNvbXByZXNzaW9uTWV0aG9kVW5rbm93bkZpbHRlck1ldGhvZFVua25vd25JbnRlcmxhY2VNZXRob2RCYWRTdWJGcmFtZUJvdW5kcwAAAAAAAAAEAAAABAAAALIBAABDb3JydXB0RmxhdGVTdHJlYW1lcnJOb01vcmVJbWFnZURhdGFCYWRUZXh0RW5jb2RpbmdGZGF0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AB4AAAB2JRAAXwAAAAsJAAAXAAAAdiUQAF8AAAAPCQAAJgAAAHYlEABfAAAAEgkAACIAAAB2JRAAXwAAAAwJAAAdAAAAdiUQAF8AAACBCAAABQAAAHYlEABfAAAAhAgAACYAAAB2JRAAXwAAAIgIAAArAAAAdiUQAF8AAACICAAAIAAAAHYlEABfAAAAJQgAAEUAAAB2JRAAXwAAADgIAAAxAAAAdiUQAF8AAAAiCAAAHgAAAHYlEABfAAAAHAgAAEEAAAAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADwAPgBAAEIARABGAEgASgBMAE4AUABSAFQAVgBYAFoAXABeAGAAYgBkAGYAaABqAGwAbgBwAHIAdAB3AHoAfQCAAIMAhgCJAIwAjwCSAJUAmACbAJ4AoQCkAKcAqgCtALEAtQC5AL0AwQDFAMkAzQDRANUA2QDdAOEA5QDqAO8A9QD5AP4AAwEIAQ0BEgEXARwBBAAFAAYABwAIAAkACgAKAAsADAANAA4ADwAQABEAEQASABMAFAAUABUAFQAWABYAFwAXABgAGQAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACUAJgAnACgAKQAqACsALAAtAC4ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWwBdAF8AYABiAGQAZQBmAGgAagBsAG4AcAByAHQAdgB6AHwAfgCAAIIAhACGAIgAigCMAI8AkQCUAJcAmgCdAHYlEABfAAAAaAgAADAAAAB2JRAAXwAAAFwIAAA7AAAAawIQAF8AAABgAAAANQAAAGsCEABfAAAAYwAAAEEAAABrAhAAXwAAAJUAAAAZAAAAawIQAF8AAACUAAAAGQAAAGsCEABfAAAAkwAAABkAAABrAhAAXwAAAJAAAAAkAAAAawIQAF8AAACPAAAAJAAAAGsCEABfAAAAeAAAABUAAABrAhAAXwAAAHcAAAAVAAAAawIQAF8AAAB2AAAAFQAA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UDggY2hyb21hIHByZWRpY3Rpb24gbW9kZTog+DsRACQAAABJbmNvbnNpc3RlbnQgaW1hZ2Ugc2l6ZXNVbnN1cHBvcnRlZCBmZWF0dXJlOiAAAAA8PBEAFQAAAEludmFsaWQgcGFyYW1ldGVyOiAAXDwRABMAAABNZW1vcnkgbGltaXQgZXhjZWVkZWRJbnZhbGlkIGNodW5rIHNpemVObyBtb3JlIGZyYW1lc2Nsb3N1cmUgaW52b2tlZCByZWN1cnNpdmVseSBvciBhZnRlciBiZWluZyBkcm9wcGVkAC0kEABcAAAAhTUAAAEAAAA3NDMyMTAvLi1n8kJD5SwrKikoJyYlJCMiITggHx4dHP+UpJWIoJut3d6GeujK1+DQ3My7t7OxqLLI4sOauK5+eL+dwqq9oqGWwY6Jq7C5p7pwr8C8nIyPe4WAk4qSct+X+dju7P3j2ub3h7Tx6fb054v18/vrycTw1pi2zbV/G9TT0tXkxamfg6xpUGJgYVHPkXRzkIKZeWuEbW58b1Jsdo1xgXd9pXVcalNIY11BT6bto8e+4dHLxtnbzur4nu//////////////////////////////////////////////////////////////////////////////////////mwEQAGcAAADZAQAAHQAAAJsBEABnAAAA2gEAABkAAACbARAAZwAAADECAAAbAAAAmwEQAGcAAAAyAgAAHQAAABYMEAByAAAAKgAAABMAAADYHRAAaAAAANMAAAAcAAAAHBgQAGkAAABrBgAAGgAAABwYEABpAAAAawYAADYAAAAcGBAAaQAAAF4GAAAoAAAAFgwQAHIAAAAgAAAACQAAABwYEABpAAAAcwcAAD4AQaj9xAAL2RoBAQEBAgICAgMDAwMEBAQEBQUFBQAAAAADAAQABQAGAAcACAAJAAoACwANAA8AEQATABcAGwAfACMAKwAzADsAQwBTAGMAcwCDAKMAwwDjAAIBAAIAAgACHBgQAGkAAADZBwAATQAAABwYEABpAAAAPAYAAC0AAAAcGBAAaQAAADwGAAAZAAAAHBgQAGkAAACEBgAAIAAAAAEBAQAEAAEAAgADAAQABQAHAAkADQARABkAIQAxAEEAYQCBAMEAAQGBAQECAQMBBAEGAQgBDAEQARgBIAEwAUABYAAAHBgQAGkAAAARAgAAKAAAAAAAAIAAQADAACAAoABgAOAAEACQAFAA0AAwALAAcADwAAgAiABIAMgAKACoAGgA6AAYAJgAWADYADgAuAB4APgABACEAEQAxAAkAKQAZADkABQAlABUANQANAC0AHQA9AAMAIwATADMACwArABsAOwAHACcAFwA3AA8ALwAfAD8AAIAggBCAMIAIgCiAGIA4gASAJIAUgDSADIAsgByAPIACgCKAEoAygAqAKoAagDqABoAmgBaANoAOgC6AHoA+gAGAIYARgDGACYApgBmAOYAFgCWAFYA1gA2ALYAdgD2AA4AjgBOAM4ALgCuAG4A7gAeAJ4AXgDeAD4AvgB+AP4AAQCBAEEAwQAhAKEAYQDhABEAkQBRANEAMQCxAHEA8QAJAIkASQDJACkAqQBpAOkAGQCZAFkA2QA5ALkAeQD5AAUAhQBFAMUAJQClAGUA5QAVAJUAVQDVADUAtQB1APUADQCNAE0AzQAtAK0AbQDtAB0AnQBdAN0APQC9AH0A/QADAIMAQwDDACMAowBjAOMAEwCTAFMA0wAzALMAcwDzAAsAiwBLAMsAKwCrAGsA6wAbAJsAWwDbADsAuwB7APsABwCHAEcAxwAnAKcAZwDnABcAlwBXANcANwC3AHcA9wAPAI8ATwDPAC8ArwBvAO8AHwCfAF8A3wA/AL8AfwD/gACAgIBAgMCAIICggGCA4IAQgJCAUIDQgDCAsIBwgPCACICIgEiAyIAogKiAaIDogBiAmIBYgNiAOIC4gHiA+IAEgISARIDEgCSApIBkgOSAFICUgFSA1IA0gLSAdID0gAyAjIBMgMyALICsgGyA7IAcgJyAXIDcgDyAvIB8gPyAAoCCgEKAwoAigKKAYoDigBKAkoBSgNKAMoCygHKA8oAKgIqASoDKgCqAqoBqgOqAGoCagFqA2oA6gLqAeoD6gAaAhoBGgMaAJoCmgGaA5oAWgJaAVoDWgDaAtoB2gPaADoCOgE6AzoAugK6AboDugB6AnoBegN6APoC+gH6A/oABgIGAQYDBgCGAoYBhgOGAEYCRgFGA0YAxgLGAcYDxgAmAiYBJgMmAKYCpgGmA6YAZgJmAWYDZgDmAuYB5gPmABYCFgEWAxYAlgKWAZYDlgBWAlYBVgNWANYC1gHWA9YANgI2ATYDNgC2ArYBtgO2AHYCdgF2A3YA9gL2AfYD9gAOAg4BDgMOAI4CjgGOA44ATgJOAU4DTgDOAs4BzgPOAC4CLgEuAy4ArgKuAa4DrgBuAm4BbgNuAO4C7gHuA+4AHgIeAR4DHgCeAp4BngOeAF4CXgFeA14A3gLeAd4D3gA+Aj4BPgM+AL4CvgG+A74AfgJ+AX4DfgD+Av4B/gP8cGBAAaQAAAIYCAAAdAAAAHBgQAGkAAAAiBAAAFAAAABwYEABpAAAAIwQAABIAAABhc3NlcnRpb24gZmFpbGVkOiBvdXRfcG9zICsgMyA8IG91dF9zbGljZS5sZW4oKQAcGBAAaQAAADYEAAANAAAAYXNzZXJ0aW9uIGZhaWxlZDogKHNvdXJjZV9wb3MgKyAzKSAmIG91dF9idWZfc2l6ZV9tYXNrIDwgb3V0X3NsaWNlLmxlbigpHBgQAGkAAAA3BAAADQAAABwYEABpAAAAOQQAACIAAAAcGBAAaQAAADoEAAAmAAAAHBgQAGkAAAA7BAAAJgAAABwYEABpAAAARAQAACMAAAAcGBAAaQAAAEQEAAAOAAAAYXNzZXJ0aW9uIGZhaWxlZDogb3V0X3BvcyArIDEgPCBvdXRfc2xpY2UubGVuKCkAHBgQAGkAAABGBAAADQAAAGFzc2VydGlvbiBmYWlsZWQ6IChzb3VyY2VfcG9zICsgMSkgJiBvdXRfYnVmX3NpemVfbWFzayA8IG91dF9zbGljZS5sZW4oKRwYEABpAAAARwQAAA0AAAAcGBAAaQAAAEgEAAAiAAAAHBgQAGkAAABIBAAADQAAAGFzc2VydGlvbiBmYWlsZWQ6IG91dF9wb3MgKyAyIDwgb3V0X3NsaWNlLmxlbigpABwYEABpAAAATAQAAA0AAABhc3NlcnRpb24gZmFpbGVkOiAoc291cmNlX3BvcyArIDIpICYgb3V0X2J1Zl9zaXplX21hc2sgPCBvdXRfc2xpY2UubGVuKCkcGBAAaQAAAE0EAAANAAAAHBgQAGkAAABOBAAAIgAAABwYEABpAAAATgQAAA0AAAAcGBAAaQAAAE8EAAAmAAAAHBgQAGkAAABPBAAADQAAABwYEABpAAAALAQAABcAAAAAAAAACAAAAAQAAAC2AQAAdW5yZWFjaGFibGUA6SQQAGMAAAC1AAAAJgAAANYlEABbAAAAbAEAABEAAADWJRAAWwAAAHUBAAARAAAA1iUQAFsAAAB+AQAAEQAAANYlEABbAAAAiAEAABEAAADWJRAAWwAAAI8BAAAfAAAA1iUQAFsAAACPAQAAJQAAANYlEABbAAAAjwEAABQAAADWJRAAWwAAAJcBAABCAAAA1iUQAFsAAACYAQAAHwAAANYlEABbAAAAmAEAABQAAAAIAAgACAQIAAQACAQEAgQAAgAEAgIBAgABAAIB1iUQAFsAAABuAAAADgAAANYlEABbAAAAaAAAAA4AAADWJRAAWwAAAEMAAAAJAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogTm90IGEgcG9zc2libGUgYnl0ZSByb3VuZGVkIHBpeGVsIHdpZHRoAAAAZEcRAFEAAABGERAAXAAAAFEDAAASAAAARhEQAFwAAABCAAAAHQAAAIkMEABwAAAA9QAAACYAAACJDBAAcAAAAOQAAAAeAAAAiQwQAHAAAADmAAAAHgAAAIkMEABwAAAADwEAABsAAACJDBAAcAAAADQBAAAOAAAAiQwQAHAAAAA0AQAASQAAAIkMEABwAAAAiAAAACgAAACJDBAAcAAAAGYBAAAxAAAArSIQAGIAAACeAAAAJwAAAK0iEABiAAAA5QAAACEAAAAOFBAAZAAAAM4CAAAnAAAADhQQAGQAAADjAgAAHgAAAA4UEABkAAAAGAMAACcAAAAOFBAAZAAAADMDAAA3AAAADhQQAGQAAADVBAAAJwAAAA4UEABkAAAAhQcAACcAAAAOFBAAZAAAAKAFAAAnAAAADhQQAGQAAAD9BQAAJwAAAA4UEABkAAAAcgYAACcAAAAOFBAAZAAAAIoGAAAnAAAADhQQAGQAAADMBAAAHAAAAA4UEABkAAAAzQUAACcAAAAOFBAAZAAAAHUHAAAcAAAADhQQAGQAAAB1BwAALwAAAA4UEABkAAAAcwcAACYAAAAOFBAAZAAAAHEHAAAZAAAADhQQAGQAAABqBwAAMAAAAA4UEABkAAAAaAcAAC4AAAAOFBAAZAAAADgGAAAnAAAADhQQAGQAAACDBQAAJwAAAA4UEABkAAAA+AQAACcAAAAOFBAAZAAAAAUFAAAnAAAADhQQAGQAAADmBQAAJwAAAA4UEABkAAAAOQcAAA4AAAAOFBAAZAAAADsHAAAOAAAADhQQAGQAAABGBQAAJwAAAA4UEABkAAAATAcAABwAAAAOFBAAZAAAAEwHAAA8AAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogVW5yZWNvZ25pemVkIGNodW5rICBzaG91bGQgaGF2ZSBiZWVuIGNhdWdodCBpbiBzdGFydF9jaHVua0BKEQA9AAAAfUoRACcAAAAOFBAAZAAAAGkEAAASAAAADhQQAGQAAAAnBAAAKgAAAA4UEABkAAAApgYAACcAAAAOFBAAZAAAALgCAAA8AAAADhQQAGQAAAC6AgAAHwAAAGFzc2VydGlvbiBmYWlsZWQ6ICg4IC8gYml0X2RlcHRoIGFzIHVzaXplICogY2hhbm5lbHMpLnNhdHVyYXRpbmdfbXVsKGlucHV0LmxlbigpKSA+PQogICAgb3V0cHV0LmxlbigpAAAAeBMQAGcAAABiAAAABQAAAGlucHV0IGZvciB1bnBhY2sgYml0cyBpcyBub3QgZW1wdHkAAHgTEABnAAAAfgAAACUAAABhc3NlcnRpb24gZmFpbGVkOiBtYXRjaGVzIShiaXRfZGVwdGgsIDEgfCAyIHwgNCB8IDgpeBMQAGcAAABfAAAABQAAAHgTEABnAAAAtgAAABoAQYyYxQALOgEAAAC3AQAAuAEAALkBAAAQAAAAeBMQAGcAAABCAAAAEQAAAAAAAAAEAAAABAAAALoBAAC7AQAAuwEAQdCYxQALxRsBAAAAvAEAAL0BAAC+AQAAeBMQAGcAAABVAAAAHAAAAHgTEABnAAAAVQAAAAkAAAB4ExAAZwAAAL0AAAAaAAAAeBMQAGcAAADBAAAAGQAAAENhbGxlciBzaG91bGQgdmVyaWZ56RYQAG8AAAAoAAAAKwAAAOkWEABvAAAASgAAAA0AAADpFhAAbwAAAEoAAAA9AAAA6RYQAG8AAABWAAAAHQAAAOkWEABvAAAARAAAAA0AAADpFhAAbwAAAGcAAAAiAAAA6RYQAG8AAABoAAAADwAAAOkWEABvAAAAYAAAACIAAAAAAAAAAAQAAAEAAAC/AQAAwAEAAMABAAAAAAAAAAQAAAEAAADBAQAAwgEAAMIBAAAAAAAAAAQAAAEAAADDAQAAxAEAAMQBAAB4ExAAZwAAAFAAAAATAAAAQ2h1bmtUeXBlAAAAAAAAAAQAAAABAAAAxQEAAHR5cGUAAAAAAQAAAAEAAADGAQAAY3JpdGljYWxwcml2YXRlcmVzZXJ2ZWRzYWZlY29weU9uZVR3b0ZvdXJFaWdodFNpeHRlZW5HcmF5c2NhbGVSZ2JJbmRleGVkR3JheXNjYWxlQWxwaGFSZ2JhAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAHdyb25nIGRhdGEgc2l6ZSwgZXhwZWN0ZWQgIGdvdCAAOE4RABoAAABSThEABQAAAEVuZCBvZiBpbWFnZSBoYXMgYmVlbiByZWFjaGVkQSBmYXRhbCBkZWNvZGluZyBlcnJvciBoYXMgYmVlbiBlbmNvdW50ZWQgZWFybGllckNSQyBlcnJvcjogZXhwZWN0ZWQgMHggaGF2ZSAweCB3aGlsZSBkZWNvZGluZyAgY2h1bmsuALZOEQAWAAAAzE4RAAgAAADUThEAEAAAAOROEQAHAAAASW52YWxpZCBQTkcgc2lnbmF0dXJlLmZjVEwgY2h1bmsgbWlzc2luZyBiZWZvcmUgZmRBVCBjaHVuay5JREFUIG9yIGZkQVQgY2h1bmsgaXMgbWlzc2luZy4gY2h1bmsgYXBwZWFyZWQgYmVmb3JlIElIRFIgY2h1bmsAAAEAAAAAAAAAZU8RACEAAABDaHVuayAgaXMgaW52YWxpZCBhZnRlciBJREFUIGNodW5rLgCYTxEABgAAAJ5PEQAdAAAAIGlzIGludmFsaWQgYmVmb3JlIFBMVEUgY2h1bmsuAACYTxEABgAAAMxPEQAeAAAAIGlzIGludmFsaWQgYWZ0ZXIgUExURSBjaHVuay4AAACYTxEABgAAAPxPEQAdAAAAIG11c3QgYXBwZWFyIGJldHdlZW4gUExURSBhbmQgSURBVCBjaHVua3MuAACYTxEABgAAACxQEQAqAAAAIG11c3QgYXBwZWFyIGF0IG1vc3Qgb25jZS4AAJhPEQAGAAAAaFARABoAAABTZXF1ZW5jZSBpcyBub3QgaW4gb3JkZXIsIGV4cGVjdGVkICMgZ290ICMAAJRQEQAkAAAAuFARAAYAAADsXBEAAQAAAE5vdCBlbm91Z2ggcGFsZXR0ZSBlbnRyaWVzLCBleHBlY3QgANhQEQAjAAAAUk4RAAUAAADsXBEAAQAAAFRoZSBzaXplIG9mIHRoZSBzQklUIGNodW5rIHNob3VsZCBiZSAgYnl0ZShzKSwgYnV0ICBieXRlKHMpIHdlcmUgcHJvdmlkZWQgZm9yIHRoZSAgY29sb3IgdHlwZS4AABRREQAlAAAAOVERAA4AAABHUREAHwAAAGZREQAMAAAASW52YWxpZCBzQklUIHZhbHVlIC4gSXQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIHRoZSBzYW1wbGUgZGVwdGggAAAAlFERABMAAACnUREAPgAAAOxcEQABAAAATWlzc2luZyBwYWxldHRlIG9mIGluZGV4ZWQgaW1hZ2UuSW52YWxpZCBjb2xvci9kZXB0aCBjb21iaW5hdGlvbiBpbiBoZWFkZXI6IC8AAAAhUhEAKwAAAExSEQABAAAAVHJhbnNwYXJlbmN5IGNodW5rIGZvdW5kIGZvciBjb2xvciB0eXBlIGBSEQAoAAAA7FwRAAEAAABJbnZhbGlkIGltYWdlIGRpbWVuc2lvbnNJbnZhbGlkIGJpdCBkZXB0aCAAALBSEQASAAAA7FwRAAEAAABJbnZhbGlkIGNvbG9yIHR5cGUgANRSEQATAAAA7FwRAAEAAABJbnZhbGlkIGRpc3Bvc2Ugb3AgAPhSEQATAAAA7FwRAAEAAABJbnZhbGlkIGJsZW5kIG9wIAAAABxTEQARAAAA7FwRAAEAAABJbnZhbGlkIHBoeXNpY2FsIHBpeGVsIHNpemUgdW5pdCAAAABAUxEAIQAAAOxcEQABAAAASW52YWxpZCBzUkdCIHJlbmRlcmluZyBpbnRlbnQgAAB0UxEAHgAAAOxcEQABAAAAVW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QgAKRTEQAbAAAA7FwRAAEAAABVbmtub3duIGZpbHRlciBtZXRob2QgAADQUxEAFgAAAOxcEQABAAAAVW5rbm93biBpbnRlcmxhY2UgbWV0aG9kIAAAAPhTEQAZAAAA7FwRAAEAAABTdWIgZnJhbWUgaXMgb3V0LW9mLWJvdW5kcy5Db3JydXB0IGRlZmxhdGUgc3RyZWFtLiBJREFUIG9yIGZEQVQgY2h1bmsgZG9lcyBub3QgaGF2ZSBlbm91Z2ggZGF0YSBmb3IgaW1hZ2UuVW5yZXByZXNlbnRhYmxlIGRhdGEgaW4gdEVYdCBjaHVuay4AAACOVBEAIwAAAEtleXdvcmQgZW1wdHkgb3IgbG9uZ2VyIHRoYW4gNzkgYnl0ZXMuAAC8VBEAJgAAAE5vIG51bGwgc2VwYXJhdG9yIGluIHRFWHQgY2h1bmsu7FQRACAAAABJbnZhbGlkIGNvbXByZXNzZWQgdGV4dCBkYXRhLgAAABRVEQAdAAAAT3V0IG9mIGRlY29tcHJlc3Npb24gc3BhY2UuIFRyeSB3aXRoIGEgbGFyZ2VyIGxpbWl0LjxVEQA0AAAAVXNpbmcgYW4gdW5yZWNvZ25pemVkIGJ5dGUgYXMgY29tcHJlc3Npb24gbWV0aG9kLgAAAHhVEQAxAAAAVXNpbmcgYSBmbGFnIHRoYXQgaXMgbm90IDAgb3IgMjU1IGFzIGEgY29tcHJlc3Npb24gZmxhZyBmb3IgaVRYdCBjaHVuay4AtFURAEcAAABObyBjb21wcmVzc2lvbiBmbGFnIGluIHRoZSBpVFh0IGNodW5rLgAABFYRACYAAABmZEFUIGNodW5rIHNob3J0ZXIgdGhhbiA0IGJ5dGVzVW5leHBlY3RlZCByZXN0YXJ0IG9mICBjaHVuayBzZXF1ZW5jZVNWEQAWAAAAaVYRAA8AAABDaHVuayBsZW5ndGggd3Jvbmc6IIhWEQAUAAAAVW5yZWNvZ25pemVkIGNyaXRpY2FsIGNodW5rOiAAAACkVhEAHQAAAEJhZCBnYW1tYSB2YWx1ZS5saW1pdHMgYXJlIGV4Y2VlZGVkQmFkWmxpYkhlYWRlckluc3VmZmljaWVudElucHV0SW52YWxpZEJsb2NrVHlwZUludmFsaWRVbmNvbXByZXNzZWRCbG9ja0xlbmd0aEludmFsaWRIbGl0SW52YWxpZEhkaXN0SW52YWxpZENvZGVMZW5ndGhSZXBlYXRCYWRDb2RlTGVuZ3RoSHVmZm1hblRyZWVCYWRMaXRlcmFsTGVuZ3RoSHVmZm1hblRyZWVCYWREaXN0YW5jZUh1ZmZtYW5UcmVlSW52YWxpZExpdGVyYWxMZW5ndGhDb2RlSW52YWxpZERpc3RhbmNlQ29kZUlucHV0U3RhcnRzV2l0aFJ1bkRpc3RhbmNlVG9vRmFyQmFja1dyb25nQ2hlY2tzdW1FeHRyYUlucHV0MAAAAAEnEAAqAAAAHgEA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dgMAABkAAABrIRAAYgAAAHcDAAAZAAAAayEQAGIAAAB4AwAAGQAAAGshEABiAAAAeQMAABkAAABrIRAAYgAAANQDAAARAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAABAAIAAwAEAAUABgAHAAgACQD//////////////////woACwAMAA0ADgAPAP////////////////////////////////////////////////////////////////////8KAAsADAANAA4ADwD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AABAAIAAwAEAAUABgAHAAgACQAP//////////////////oACwAMAA0ADgAPAA/////////////////////////////////////////////////////////////////////6AAsADAANAA4ADwAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2shEABiAAAAswEAABoAAABrIRAAYgAAAAACAAATAAAAayEQAGIAAAAFAgAAMwAAAGshEABiAAAACQIAAD4AAABrIRAAYgAAAA8CAAA6AAAAayEQAGIAAACrAQAAPQAAAGshEABiAAAApgEAAEUAAAAgYXQgbGluZSAAAABCCRAAYwAAAPcBAAAhAAAAQgkQAGMAAAD7AQAADAAAACBjb2x1bW4gQgkQAGMAAAACAgAAIQAAAEIJEABjAAAACwIAACoAAABCCRAAYwAAAA8CAAAsAAAAQgkQAGMAAAAUAgAACQAAAGluZi1pbmZOYU4AALQAAAAMAAAABAAAAIkBAACKAQAA0gEAQZiexgAL5Q0BAAAAuAAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkAwhUQAEsAAAAFCwAADgAAAPYQEABPAAAAPAYAABQAAAD2EBAATwAAADwGAAAhAAAA9hAQAE8AAAAwBgAAFAAAAPYQEABPAAAAMAYAACEAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAACojxEAsAAAALEAAACyAAAAsAAAALMAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmlzX2NoYXJfYm91bmRhcnkobmV3X2xlbilFcnJvcigsIGxpbmU6ICwgY29sdW1uOiAUkBEABgAAABqQEQAIAAAAIpARAAoAAABeBxIAAQAAAGludmFsaWQgdmFsdWU6IABMkBEADwAAABqTEQALAAAARU9GIHdoaWxlIHBhcnNpbmcgYSBsaXN0RU9GIHdoaWxlIHBhcnNpbmcgYW4gb2JqZWN0RU9GIHdoaWxlIHBhcnNpbmcgYSBzdHJpbmdFT0Ygd2hpbGUgcGFyc2lu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AAB2JRAAXwAAAL4FAAA1AAAAdiUQAF8AAAC+BQAAJQAAAHYlEABfAAAAvAUAADoAAABWUDggaW50ZXItcHJlZGljdGlvboQBkQACA5wBgIGjAoKDgAN2JRAAXwAAADUFAAAvAAAAgAHnAIECeAGCAzACBAZZA4MFcwSFhnEFhAd4BocImAeIiXAIgAGYAIECswGCA0ACBAZ+A4MFqgSFhnYFhAcuBocIRgeIiV8IgAGvAIECRQGCA48CBAZQA4MFVQSFhlIFhAdIBocImweIiWcIgAE4AIECOgGCAwoCBAarA4MF2gSFhr0FhAcRBocIDQeIiZgIgAGQAIECRwGCAwoCBAYmA4MFqwSFhtUFhAeQBocIIgeIiRoIgAFyAIECGgGCAxECBAajA4MFLASFhsMFhAcVBocICgeIia0IgAF5AIECGAGCA1ACBAbDA4MFGgSFhj4FhAcsBocIQAeIiVUIgAGqAIECLgGCAzcCBAYTA4MFiASFhqAFhAchBocIzgeIiUcIgAE/AIECFAGCAwgCBAZyA4MFcgSFhtAFhAcMBocICQeIieIIgAFRAIECKAGCAwsCBAZgA4MFtgSFhlQFhAcdBocIEAeIiSQIgAGGAIECtwGCA1kCBAaJA4MFYgSFhmUFhAdqBocIpQeIiZQIgAFIAIECuwGCA2QCBAaCA4MFnQSFhm8FhAcgBocISweIiVAIgAFCAIECZgGCA6cCBAZjA4MFSgSFhj4FhAcoBocI6geIiYAIgAEpAIECNQGCAwkCBAayA4MF8QSFho0FhAcaBocICAeIiWsIgAFoAIECTwGCAwwCBAYbA4MF2QSFhv8FhAdXBocIEQeIiQcIgAFKAIECKwGCAxoCBAaSA4MFSQSFhqYFhAcxBocIFweIiZ0IgAFBAIECJgGCA2kCBAagA4MFMwSFhjQFhAcfBocIcweIiYAIgAFXAIECRAGCA0cCBAYsA4MFcgSFhjMFhAcPBocIugeIiRcIgAEvAIECKQGCAw4CBAZuA4MFtgSFhrcFhAcVBocIEQeIicIIgAFCAIECLQGCAxkCBAZmA4MFxQSFhr0FhAcXBocIEgeIiRYIgAFYAIECWAGCA5MCBAaWA4MFKgSFhi4FhActBocIxAeIic0IgAErAIECYQGCA7cCBAZ1A4MFVQSFhiYFhAcjBocIsweIiT0IgAEnAIECNQGCA8gCBAZXA4MFGgSFhhUFhAcrBocI6AeIiasIgAE4AIECIgGCAzMCBAZoA4MFcgSFhmYFhAcdBocIXQeIiU0IgAFrAIECNgGCAyACBAYaA4MFMwSFhgEFhAdRBocIKweIiR8IgAEnAIECHAGCA1UCBAarA4MFOgSFhqUFhAdaBocIYgeIiUAIgAEiAIECFgGCA3QCBAbOA4MFFwSFhiIFhAcrBocIpgeIiUkIgAFEAIECGQGCA2oCBAYWA4MFQASFhqsFhAckBocI4QeIiXIIgAEiAIECEwGCAxUCBAZmA4MFhASFhrwFhAcQBocITAeIiXwIgAE+AIECEgGCA04CBAZfA4MFVQSFhjkFhAcyBocIMAeIiTMIgAHBAIECZQGCAyMCBAafA4MF1wSFhm8FhAdZBocILgeIiW8IgAE8AIEClAGCAx8CBAasA4MF2wSFhuQFhAcVBocIEgeIiW8IgAFwAIECcQGCA00CBAZVA4MFswSFhv8FhAcmBocIeAeIiXIIgAEoAIECKgGCAwECBAbEA4MF9QSFhtEFhAcKBocIGQeIiW0IgAFkAIECUAGCAwgCBAYrA4MFmgSFhgEFhAczBocIGgeIiUcIgAFYAIECKwGCAx0CBAaMA4MFpgSFhtUFhAclBocIKweIiZoIgAE9AIECPwGCAx4CBAabA4MFQwSFhi0FhAdEBocIAQeIidEIgAGOAIECTgGCA04CBAYQA4MF/wSFhoAFhAciBocIxQeIiasIgAEpAIECKAGCAwUCBAZmA4MF0wSFhrcFhAcEBocIAQeIid0IgAEzAIECMgGCAxECBAaoA4MF0QSFhsAFhAcXBocIGQeIiVIIgAF9AIECYgGCAyoCBAZYA4MFaASFhlUFhAd1BocIrweIiVIIgAFfAIECVAGCAzUCBAZZA4MFgASFhmQFhAdxBocIZQeIiS0IgAFLAIECTwGCA3sCBAYvA4MFMwSFhoAFhAdRBocIqweIiQEIgAE5AIECEQGCAwUCBAZHA4MFZgSFhjkFhAc1BocIKQeIiTEIgAFzAIECFQGCAwICBAYKA4MFZgSFhv8FhAemBocIFweIiQYIgAEmAIECIQGCAw0CBAZ5A4MFOQSFhkkFhAcaBocIAQeIiVUIgAEpAIECCgGCA0MCBAaKA4MFTQSFhm4FhAdaBocILweIiXIIgAFlAIECHQGCAxACBAYKA4MFVQSFhoAFhAdlBocIxAeIiRoIgAE5AIECEgGCAwoCBAZmA4MFZgSFhtUFhAciBocIFAeIiSsIgAF1AIECFAGCAw8CBAYkA4MFowSFhoAFhAdEBocIAQeIiRoIgAGKAIECHwGCAyQCBAarA4MFGwSFhqYFhAcmBocILAeIieUIgAFDAIECVwGCAzoCBAapA4MFUgSFhnMFhAcaBocIOweIibMIgAE/AIECOwGCA1oCBAa0A4MFOwSFhqYFhAddBocISQeIiZoIgAEoAIECKAGCAxUCBAZ0A4MFjwSFhtEFhAciBocIJweIia8IgAE5AIECLgGCAxYCBAYYA4MFgASFhgEFhAc2BocIEQeIiSUIgAEvAIECDwGCAxACBAa3A4MFIgSFht8FhAcxBocILQeIibcIgAEuAIECEQGCAyECBAa3A4MFBgSFhmIFhAcPBocIIAeIibcIgAFBAIECIAGCA0kCBAZzA4MFHASFhoAFhAcXBocIgAeIic0IgAEoAIECAwGCAwkCBAZzA4MFMwSFhsAFhAcSBocIBgeIid8IgAFXAIECJQGCAwkCBAZzA4MFOwSFhk0FhAdABocIFQeIiS8IgAFoAIECNwGCAywCBAbaA4MFCQSFhjYFhAc1BocIggeIieIIgAFAAIECWgGCA0YCBAbNA4MFKASFhikFhAcXBocIGgeIiTkIgAE2AIECOQGCA3ACBAa4A4MFBQSFhikFhAcmBocIpgeIidUIgAEeAIECIgGCAxoCBAaFA4MFmASFhnQFhAcKBocIIAeIiYYIgAFLAIECIAGCAwwCBAYzA4MFwASFhv8FhAegBocIKweIiTMIgAEnAIECEwGCAzUCBAbdA4MFGgSFhnIFhAcgBocISQeIif8IgAEfAIECCQGCA0ECBAbqA4MFAgSFhg8FhAcBBocIdgeIiUkIgAFYAIECHwGCAyMCBAZDA4MFZgSFhlUFhAc3BocIugeIiVUIgAE4AIECFQGCAxcCBAZvA4MFOwSFhs0FhActBocIJQeIicAIgAE3AIECJgGCA0YCBAZ8A4MFSQSFhmYFhAcBBocIIgeIiWIIgAFmAIECPQGCA0cCBAYlA4MFIgSFhjUFhAcfBocI8weIicAIgAFFAIECPAGCA0cCBAYmA4MFSQSFhncFhAccBocI3geIiSUIgAFEAIECLQGCA4ACBAYiA4MFAQSFhi8FhAcLBocI9QeIiasIgAE+AIECEQGCAxMCBAZGA4MFkgSFhlUFhAc3BocIPgeIiUYIgAFLAIECDwGCAwkCBAYJA4MFQASFhv8FhAe4BocIdweIiRAIgAElAIECKwGCAyUCBAaaA4MFZASFhqMFhAdVBocIoAeIiQEIgAE/AIECCQGCA1wCBAaIA4MFHASFhkAFhAcgBocIyQeIiVUIgAFWAIECBgGCAxwCBAYFA4MFQASFhv8FhAcZBocI+AeIiQEIgAE4AIECCAGCAxECBAaEA4MFiQSFhv8FhAc3BocIdAeIiYAIgAE6AIECDwGCAxQCBAZSA4MFhwSFhjkFhAcaBocIeQeIiSgIgAGkAIECMgGCAx8CBAaJA4MFmgSFhoUFhAcZBocIIweIidoIgAEzAIECZwGCAywCBAaDA4MFgwSFhnsFhAcfBocIBgeIiZ4IgAFWAIECKAGCA0ACBAaHA4MFlASFhuAFhActBocItweIiYAIgAEWAIECGgGCAxECBAaDA4MF8ASFhpoFhAcOBocIAQeIidEIgAFTAIECDAGCAw0CBAY2A4MFwASFhv8FhAdEBocILweIiRwIgAEtAIECEAGCAxUCBAZbA4MFQASFht4FhAcHBocIAQeIicUIgAE4AIECFQGCAycCBAabA4MFPASFhooFhAcXBocIZgeIidUIgAFVAIECGgGCA1UCBAZVA4MFgASFhoAFhAcgBocIkgeIiasIgAESAIECCwGCAwcCBAY/A4MFkASFhqsFhAcEBocIBAeIifYIgAEjAIECGwGCAwoCBAaSA4MFrgSFhqsFhAcMBocIGgeIiYAIgAG+AIECUAGCAyMCBAZjA4MFtASFhlAFhAd+BocINgeIiS0IgAFVAIECfgGCAy8CBAZXA4MFsASFhjMFhAcpBocIFAeIiSAIgAFlAIECSwGCA4ACBAaLA4MFdgSFhpIFhAd0BocIgAeIiVUIgAE4AIECKQGCAw8CBAawA4MF7ASFhlUFhAclBocICQeIiT4IgAGSAIECJAGCAxMCBAYeA4MFqwSFhv8FhAdhBocIGweIiRQIgAFHAIECHgGCAxECBAZ3A4MFdgSFhv8FhAcRBocIEgeIiYoIgAFlAIECJgGCAzwCBAaKA4MFNwSFhkYFhAcrBocIGgeIiY4IgAGKAIECLQGCAz0CBAY+A4MF2wSFhgEFhAdRBocIvAeIiUAIgAEgAIECKQGCAxQCBAZ1A4MFlwSFho4FhAcUBocIFQeIiaMIgAFwAIECEwGCAwwCBAY9A4MFwwSFhoAFhAcwBocIBAeIiRgIdiUQAF8AAAA/BQAAJQAAAIABjgCBAnIBgoO3AnYlEABfAAAAUQUAABEAAAB2JRAAXwAAAFIFAAARAAAAdiUQAF8AAABTBQAAEQAAAP///////////////////////////////////////////7D2////////////3/H8///////////5/f3////////////0/P//////////6v7+///////////9///////////////2/v//////////7/3+///////////+//7////////////4/v//////////+//+///////////////////////////9/v//////////+/7+///////////+//7////////////+/f/+////////+v/+//7////////+/////////////////////////////////////////////////////////9n/////////////4fzx/f///v/////q+vH6/f/9/v/////+////////////3/7+///////////u/f7+///////////4/v//////////+f7////////////////////////////9////////////9/7////////////////////////////9/v///////////P/////////////////////////////+/v///////////f/////////////////////////////+/f//////////+v/////////////+/////////////////////////////////////////////////////////7r7+v//////////6vv0/v/////////7+/P9/v/+///////9/v//////////7P3+///////////7/f3+/v/////////+/v///////////v7+///////////////////////////+/////////////v7////////////+/////////////////////////////v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////j/////////////+v78/v/////////4/vn9///////////9/f//////////9v39///////////8/vv+/v/////////+/P//////////+P79///////////9//7+///////////7/v//////////9fv+///////////9/f7////////////7/f///////////P3+/////////////v/////////////8////////////+f/+//////////////7//////////////f//////////+v///////////////////////////////////////////v///////////////////////////3YlEABfAAAAVwcAABcAAACLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAKIAYED/gIEBv8DggXkBIOE2wUHCIAGhYaABwkKgAiHiIAJiYqACosBvQCAAoEBgQPyAgQG/wOCBeMEg4TVBQcI/waFhtsHCQqACIeIgAmJioAKiwFqAIACfgGBA+MCBAb8A4IF1gSDhNEFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJiAYED+AIEBv8DggXsBIOE4gUHCP8GhYb/BwkKgAiHiIAJiYqACosBtQCAAoUBgQPuAgQG/gOCBd0Eg4TqBQcI/waFhpoHCQqACIeIgAmJioAKiwFOAIAChgGBA8oCBAb3A4IFxgSDhLQFBwj/BoWG2wcJCoAIh4iACYmKgAqLAQEAgAK5AYED+QIEBv8DggXzBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBuACAApYBgQP3AgQG/wOCBewEg4TgBQcIgAaFhoAHCQqACIeIgAmJioAKiwFNAIACbgGBA9gCBAb/A4IF7ASDhOYFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAJlAYED+wIEBv8DggXxBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBqgCAAosBgQPxAgQG/AOCBewEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwElAIACdAGBA8QCBAbzA4IF5ASDhP8FBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgALMAYED/gIEBv8DggX1BIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBzwCAAqABgQP6AgQG/wOCBe4Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwFmAIACZwGBA+cCBAb/A4IF0wSDhKsFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKYAYED/AIEBv8DggXwBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBsQCAAocBgQPzAgQG/wOCBeoEg4ThBQcIgAaFhoAHCQqACIeIgAmJioAKiwFQAIACgQGBA9MCBAb/A4IFwgSDhOAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9gCAAgEBgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwH/AIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcYAgAIjAYED7QIEBt8DggXBBIOEuwUHCKIGhYagBwkKkQiHiJsJiYo+CosBgwCAAi0BgQPGAgQG3QOCBawEg4SwBQcI3AaFhp0HCQr8CIeI3QmJigEKiwFEAIACLwGBA5ICBAbQA4IFlQSDhKcFBwjdBoWGogcJCv8Ih4jfCYmKgAqLAQEAgAKVAYED8QIEBv8DggXdBIOE4AUHCP8GhYb/BwkKgAiHiIAJiYqACosBuACAAo0BgQPqAgQG/QOCBd4Eg4TcBQcI/waFhscHCQqACIeIgAmJioAKiwFRAIACYwGBA7UCBAbyA4IFsASDhL4FBwj5BoWGygcJCv8Ih4j/CYmKgAqLAQEAgAKBAYED6AIEBv0DggXWBIOExQUHCPIGhYbEBwkK/wiHiP8JiYqACosBYwCAAnkBgQPSAgQG+gOCBckEg4TGBQcI/waFhsoHCQqACIeIgAmJioAKiwEXAIACWwGBA6MCBAbyA4IFqgSDhLsFBwj3BoWG0gcJCv8Ih4j/CYmKgAqLAQEAgALIAYED9gIEBv8DggXqBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBbQCAArIBgQPxAgQG/wOCBecEg4T1BQcI/waFhv8HCQqACIeIgAmJioAKiwEsAIACggGBA8kCBAb9A4IFzQSDhMAFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAKEAYED7wIEBvsDggXbBIOE0QUHCP8GhYalBwkKgAiHiIAJiYqACosBXgCAAogBgQPhAgQG+wOCBdoEg4S+BQcI/waFhv8HCQqACIeIgAmJioAKiwEWAIACZAGBA64CBAb1A4IFugSDhKEFBwj/BoWGxwcJCoAIh4iACYmKgAqLAQEAgAK2AYED+QIEBv8DggXoBIOE6wUHCIAGhYaABwkKgAiHiIAJiYqACosBfACAAo8BgQPxAgQG/wOCBeMEg4TqBQcIgAaFhoAHCQqACIeIgAmJioAKiwEjAIACTQGBA7UCBAb7A4IFwQSDhNMFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAKdAYED9wIEBv8DggXsBIOE5wUHCP8GhYb/BwkKgAiHiIAJiYqACosBeQCAAo0BgQPrAgQG/wOCBeEEg4TjBQcI/waFhv8HCQqACIeIgAmJioAKiwEtAIACYwGBA7wCBAb7A4IFwwSDhNkFBwj/BoWG4AcJCoAIh4iACYmKgAqLAQEAgAIBAYED+wIEBv8DggXVBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBywCAAgEBgQP4AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGJAIACAQGBA7ECBAb/A4IF4ASDhP8FBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAIJAYED+AIEBvsDggXPBIOE0AUHCP8GhYbABwkKgAiHiIAJiYqACosBrwCAAg0BgQPgAgQG8wOCBcEEg4S5BQcI+QaFhsYHCQr/CIeI/wmJioAKiwFJAIACEQGBA6sCBAbdA4IFoQSDhLMFBwjsBoWGpwcJCv8Ih4jqCYmKgAqLAQEAgAJfAYED9wIEBv0DggXUBIOEtwUHCP8GhYb/BwkKgAiHiIAJiYqACosB7wCAAloBgQP0AgQG+gOCBdMEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwGbAIACTQGBA8MCBAb4A4IFvASDhMMFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAIYAYED7wIEBvsDggXaBIOE2wUHCP8GhYbNBwkKgAiHiIAJiYqACosByQCAAjMBgQPbAgQG/wOCBcQEg4S6BQcIgAaFhoAHCQqACIeIgAmJioAKiwFFAIACLgGBA74CBAbvA4IFyQSDhNoFBwj/BoWG5AcJCoAIh4iACYmKgAqLAQEAgAK/AYED+wIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB3wCAAqUBgQP5AgQG/wOCBdUEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGNAIACfAGBA/gCBAb/A4IF/wSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIQAYED+AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBvgCAAiQBgQPmAgQG/wOCBewEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGVAIACAQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgALiAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9wCAAsABgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwHwAIACgAGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKGAYED/AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB1QCAAj4BgQP6AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwE3AIACXQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcoAgAIYAYED1QIEBusDggW6BIOEvwUHCNwGhYagBwkK8AiHiK8JiYr/CosBfgCAAiYBgQO2AgQG6AOCBakEg4S4BQcI5AaFhq4HCQr/CIeIuwmJioAKiwE9AIACLgGBA4oCBAbbA4IFlwSDhLIFBwjwBoWGqgcJCv8Ih4jYCYmKgAqLAQEAgAJwAYED5gIEBvoDggXHBIOEvwUHCPcGhYafBwkK/wiHiP8JiYqACosBpgCAAm0BgQPkAgQG/AOCBdMEg4TXBQcI/waFhq4HCQqACIeIgAmJioAKiwEnAIACTQGBA6ICBAboA4IFrASDhLQFBwj1BoWGsgcJCv8Ih4j/CYmKgAqLAQEAgAI0AYED3AIEBvYDggXGBIOExwUHCPkGhYbcBwkK/wiHiP8JiYqACosBfACAAkoBgQO/AgQG8wOCBbcEg4TBBQcI+gaFht0HCQr/CIeI/wmJioAKiwEYAIACRwGBA4ICBAbbA4IFmgSDhKoFBwjzBoWGtgcJCv8Ih4j/CYmKgAqLAQEAgAK2AYED4QIEBvkDggXbBIOE8AUHCP8GhYbgBwkKgAiHiIAJiYqACosBlQCAApYBgQPiAgQG/AOCBdgEg4TNBQcI/waFhqsHCQqACIeIgAmJioAKiwEcAIACbAGBA6oCBAbyA4IFtwSDhMIFBwj+BoWG3wcJCv8Ih4j/CYmKgAqLAQEAgAJRAYED5gIEBvwDggXMBIOEywUHCP8GhYbABwkKgAiHiIAJiYqACosBewCAAmYBgQPRAgQG9wOCBbwEg4TEBQcI/waFhukHCQqACIeIgAmJioAKiwEUAIACXwGBA5kCBAbzA4IFpASDhK0FBwj/BoWGywcJCoAIh4iACYmKgAqLAQEAgALeAYED+AIEBv8DggXYBIOE1QUHCIAGhYaABwkKgAiHiIAJiYqACosBqACAAq8BgQP2AgQG/AOCBesEg4TNBQcI/waFhv8HCQqACIeIgAmJioAKiwEvAIACdAGBA9cCBAb/A4IF0wSDhNQFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJ5AYED7AIEBv0DggXUBIOE1gUHCP8GhYb/BwkKgAiHiIAJiYqACosBjQCAAlQBgQPVAgQG/AOCBckEg4TKBQcI/waFhtsHCQqACIeIgAmJioAKiwEqAIACUAGBA6ACBAbwA4IFogSDhLkFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9ACAAgEBgQP/AgQG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AAAA8gEAAAAAAAABAAAAAQAAAPMBAAAAAAAABAAAAAQAAACqAQAAQ2ljcHByaW1hcmllc3RyYW5zZmVybWF0cml4ZnVsbF9yYW5nZURpbWVuc2lvbkVycm9ySW5zdWZmaWNpZW50TWVtb3J5AAAAAAAAACAAAAAIAAAA9AEAAAAAAAAEAAAABAAAAPUBAABsaW1pdHNzdXBwb3J0ZWQA9gEAAAwAAAAEAAAA9wEAAFBhcmFtZXRlckVycm9yQ2FwYWNpdHlPdmVyZmxvdwAAAAAAAAQAAAAEAAAA+AEAAEFsbG9jRXJybGF5b3V0Q3NwbGF0KGNlbnRlcjogAAAATtURAA8AAABv0xEACwAAAHrTEQAHAAAAgdMRAAoAAACL0xEADgAAAF4HEgABAAAARXhhY3ROYW1lUGF0aEV4dGVuc2lvblVua25vd25pbnZhbGlkIHNlZWsgdG8gYSBuZWdhdGl2ZSBvciBvdmVyZmxvd2luZyBwb3NpdGlvbgCt1REAMgAAABQAAACmJhAAWgAAAD0AAAAkAAAARW1wdHlJbnZhbGlkRGlnaXRQb3NPdmVyZmxvd05lZ092ZXJmbG93WmVybwAAAAAABAAAAAQAAAD5AQAAVW5zdXBwb3J0ZWRFcnJvclBuZ0pwZWdHaWZXZWJQUG5tVGlmZlRnYURkc0JtcEljb0hkck9wZW5FeHJGYXJiZmVsZEF2aWZRb2lQY3gAAAAAAAAABAAAAAQAAAD6AQAAUGFyc2VJbnRFcnJvckE4TDFMYTFSZ2IxUmdiYTFMMkxhMlJnYjJSZ2JhMkw0TGE0UmdiNFJnYmE0UmdiNXgxTDhMYThSZ2I4UmdiYThMMTZMYTE2UmdiMTZSZ2JhMTZCZ3I4QmdyYThSZ2IzMkZSZ2JhMzJGQ215azhDbXlrMTZMaW1pdFN1cHBvcnREaW1lbnNpb25NaXNtYXRjaEZhaWxlZEFscmVhZHkAAAAAAAAEAAAABAAAAPsBAABSZ2JDaWNwUmVxdWlyZWRHZW5lcmljTm9Nb3JlRGF0YQAAAAAEAAAAAQAAAPwBAABDaWNwTWlzbWF0Y2hleHBlY3RlZGZvdW5kAAAAAAAAAAgAAAAEAAAAxwAAAAAAAAAIAAAABAAAAHAAAADHAAAAoNcRALAAAADIAAAAsgAAALAAAACzAAAA/QEAACgAAAAI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ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9ybWlkID4gbGVu/wASAAkAAABzdGRvdXRmYWlsZWQgcHJpbnRpbmcgdG8gAAAAFgESABMAAABd/BEAAgAAANoQEAAbAAAAjQQAAAkAAABvcGVyYXRpb24gc3VjY2Vzc2Z1bG9uZS10aW1lIGluaXRpYWxpemF0aW9uIG1heSBub3QgYmUgcGVyZm9ybWVkIHJlY3Vyc2l2ZWx5YAESADgAAABjYW5ub3QgcmVjdXJzaXZlbHkgYWNxdWlyZSBtdXRleKABEgAgAAAA6AcQACwAAAATAAAACQAAAGxvY2sgY291bnQgb3ZlcmZsb3cgaW4gcmVlbnRyYW50IG11dGV4AADlFBAAJgAAACMBAAAtAAAA7xoQACMAAADXAAAAFAAAAO8aEAAjAAAA1wAAADEAAABMYXp5TG9jayBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAAwAhIALgAAAMMUEAAhAAAAlwEAAAUAAABmYWlsZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIHRocmVhZCBJRDogYml0c3BhY2UgZXhoYXVzdGVkAHgCEgA3AAAAph4QAB0AAADUBAAADQAAADoKAACFAQAADAAAAAQAAABIAgAASQIAAEoCAAAAAAAACAAAAAQAAABLAgAATAIAAE0CAABOAgAATwIAABAAAAAEAAAAUAIAAFECAABSAgAAUwIAAGNhbm5vdCBtb2RpZnkgdGhlIHBhbmljIGhvb2sgZnJvbSBhIHBhbmlja2luZyB0aHJlYWQcAxIANAAAAA4WEAAcAAAAkAAAAAkAAAAAAAAABAAAAAQAAABUAgAAV291bGRCbG9jayAob3MgZXJyb3IgAAAAAQAAAAAAAACCAxIACwAAAF4HEgABAAAA2hAQABsAAABcAwAAFAAAAE5vdEZvdW5kUGVybWlzc2lvbkRlbmllZENvbm5lY3Rpb25SZWZ1c2VkQ29ubmVjdGlvblJlc2V0SG9zdFVucmVhY2hhYmxlTmV0d29ya1VucmVhY2hhYmxlQ29ubmVjdGlvbkFib3J0ZWROb3RDb25uZWN0ZWRBZGRySW5Vc2VBZGRyTm90QXZhaWxhYmxlTmV0d29ya0Rvd25Ccm9rZW5QaXBlQWxyZWFkeUV4aXN0c05vdEFEaXJlY3RvcnlJc0FEaXJlY3RvcnlEaXJlY3RvcnlOb3RFbXB0eVJlYWRPbmx5RmlsZXN5c3RlbUZpbGVzeXN0ZW1Mb29wU3RhbGVOZXR3b3JrRmlsZUhhbmRsZUludmFsaWRJbnB1dEludmFsaWREYXRhVGltZWRPdXRXcml0ZVplcm9TdG9yYWdlRnVsbE5vdFNlZWthYmxlUXVvdGFFeGNlZWRlZEZpbGVUb29MYXJnZVJlc291cmNlQnVzeUV4ZWN1dGFibGVGaWxlQnVzeURlYWRsb2NrQ3Jvc3Nlc0RldmljZXNUb29NYW55TGlua3NJbnZhbGlkRmlsZW5hbWVBcmd1bWVudExpc3RUb29Mb25nSW50ZXJydXB0ZWRVbnN1cHBvcnRlZFVuZXhwZWN0ZWRFb2ZPdXRPZk1lbW9yeUluUHJvZ3Jlc3NPdGhlclVuY2F0ZWdvcml6ZWR1bnN1cHBvcnRlZCBiYWNrdHJhY2VkaXNhYmxlZCBiYWNrdHJhY2UAXhsQABwAAACKAQAAHQAAAFUCAAAQAAAABAAAAFYCAABXAgAAcGFuaWNrZWQgYXQgAQAAAAAAAABQ/BEAAQAAAFD8EQABAAAAAAAAAAgAAAAEAAAAWAIAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAACgiEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAAAoIhAAKgAAALcEAAANAAAA4BMQAC0AAAAWAQAAKQAAAIUBAAAMAAAABAAAAFkCAABudWxsIHBvaW50ZXIgcGFzc2VkIHRvIHJ1c3RyZWN1cnNpdmUgdXNlIG9mIGFuIG9iamVjdCBkZXRlY3RlZCB3aGljaCB3b3VsZCBsZWFkIHRvIHVuc2FmZSBhbGlhc2luZyBpbiBydXN0SnNWYWx1ZSgpAFYHEgAIAAAAXgcSAAEAAAB/FhAAaQAAAHwAAAARAAAAfxYQAGkAAACJAAAAEQAAAFpJUDY0IGZvb3RlciBpbmRpY2F0ZXMgbW9yZSBmaWxlcyBvbiB0aGlzIGRpc2sgdGhhbiBpbiB0aGUgd2hvbGUgYXJjaGl2ZUludmFsaWQgY2VudHJhbCBkaXJlY3Rvcnkgc2l6ZSBvciBvZmZzZXRmYWlsZWQgdG8gZmlsbCB3aG9sZSBidWZmZXIAAAgSABsAAAAlAAAAAgAAABwIEgBDUkMzMiBjaGVja3N1bSBmYWlsZWQgb24gVW5pY29kZSBleHRyYSBmaWVsZFVuaWNvZGUgZXh0cmEgZmllbGQgaXMgdG9vIHNtYWxsRXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkIGlzIGVtcHR5AAAA/g8QAHQAAABKAAAAJAAAAGZsYWdzIGFuZCBsZW4gZG9uJ3QgbWF0Y2ggaW4gZXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgYXR0cmlidXRlIHNpemVOVEZTIGV4dHJhIGZpZWxkIGhhcyBhbiB1bnN1cHBvcnRlZCBhdHRyaWJ1dGUgdGFnTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAAQGAAA6AAAARXh0cmEgZmllbGQgY29udGVudCBleGNlZWRzIGRlY2xhcmVkIGxlbmd0aADOIRAAWQAAAAYGAAA7AAAAWklQNjQgZXh0cmEgZmllbGQgdHJ1bmNhdGVkWklQNjQgZXh0cmEtZGF0YSBmaWVsZCBpcyB0aGUgd3JvbmcgbGVuZ3RoAAAAziEQAFkAAABeBgAAEgAAAEFFUyBleHRyYSBmaWVsZCB0cnVuY2F0ZWRJbnZhbGlkIEFFUyBlbmNyeXB0aW9uIHN0cmVuZ3RoSW52YWxpZCBBRVMgdmVuZG9yIHZlcnNpb25JbnZhbGlkIEFFUyB2ZW5kb3JBRVMgZXh0cmEgZGF0YSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAIgGAAAfAAAARXh0cmEgZmllbGQgY29udGVudCB0cnVuY2F0ZWRFeHRyYSBmaWVsZCBoZWFkZXIgdHJ1bmNhdGVkSW52YWxpZCBjaGVja3N1bQBBkJbIAAvjBAEAAAC0AQAAKCkAAMQeEABQAAAAKgIAABEAAABpL28gZXJyb3I6IAAsCxIACwAAAGludmFsaWQgWmlwIGFyY2hpdmU6IAAAAEALEgAVAAAAdW5zdXBwb3J0ZWQgWmlwIGFyY2hpdmU6IAAAAGALEgAZAAAAc3BlY2lmaWVkIGZpbGUgbm90IGZvdW5kIGluIGFyY2hpdmVwcm92aWRlZCBwYXNzd29yZCBpcyBpbmNvcnJlY3QAAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAFV0ZjhFcnJvcnZhbGlkX3VwX3RvZXJyb3JfbGVuAAAAWgIAAAwAAAAEAAAAWwIAAAAAAAAEAAAABAAAAFwCAABGcm9tVXRmOEVycm9yYnl0ZXNlcnJvck5vbmVTb21lACYcEABvAAAAwwAAAAkAAAAmHBAAbwAAALwAAAAqAAAAJhwQAG8AAAC5AAAAKgAAAJsBEABnAAAAdAEAACkAAACbARAAZwAAAHkBAAAcAAAAmwEQAGcAAAB5AQAALQAA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AGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUQERIACAcJBgoFCwQMAw0CDgEPAABZFxAAYAAAAJMAAAAJAAAAAABgB1AAAAgQAAAIcwAUCB8AEgdwAAAIMAAACMAAAAkKABAHYAAACCAAAAigAAAJAAAACIAAAAhAAAAI4AAACQYAEAdYAAAIGAAACJAAAAk7ABMHeAAACDgAAAjQAAAJEQARB2gAAAgoAAAIsAAACQgAAAiIAAAISAAACPAAAAkEABAHVAAACBQAAAjjABUIKwATB3QAAAg0AAAIyAAACQ0AEQdkAAAIJAAACKgAAAkEAAAIhAAACEQAAAjoAAAJCAAQB1wAAAgcAAAImAAACVMAFAd8AAAIPAAACNgAAAkXABIHbAAACCwAAAi4AAAJDAAACIwAAAhMAAAI+AAACQMAEAdSAAAIEgAACKMAFQgjABMHcgAACDIAAAjEAAAJCwARB2IAAAgiAAAIpAAACQIAAAiCAAAIQgAACOQAAAkHABAHWgAACBoAAAiUAAAJQwAUB3oAAAg6AAAI1AAACRMAEgdqAAAIKgAACLQAAAkKAAAIigAACEoAAAj0AAAJBQAQB1YAAAgWAAAIAABACDMAEwd2AAAINgAACMwAAAkPABEHZgAACCYAAAisAAAJBgAACIYAAAhGAAAI7AAACQkAEAdeAAAIHgAACJwAAAljABQHfgAACD4AAAjcAAAJGwASB24AAAguAAAIvAAACQ4AAAiOAAAITgAACPwAAAkAAGAHUQAACBEAAAiDABUIHwASB3EAAAgxAAAIwgAACQoAEAdhAAAIIQAACKIAAAkBAAAIgQAACEEAAAjiAAAJBgAQB1kAAAgZAAAIkgAACTsAEwd5AAAIOQAACNIAAAkRABEHaQAACCkAAAiyAAAJCQAACIkAAAhJAAAI8gAACQQAEAdVAAAIFQAACAIBEAgrABMHdQAACDUAAAjKAAAJDQARB2UAAAglAAAIqgAACQUAAAiFAAAIRQAACOoAAAkIABAHXQAACB0AAAiaAAAJUwAUB30AAAg9AAAI2gAACRcAEgdtAAAILQAACLoAAAkNAAAIjQAACE0AAAj6AAAJAwAQB1MAAAgTAAAIwwAVCCMAEwdzAAAIMwAACMYAAAkLABEHYwAACCMAAAimAAAJAwAACIMAAAhDAAAI5gAACQcAEAdbAAAIGwAACJYAAAlDABQHewAACDsAAAjWAAAJEwASB2sAAAgrAAAItgAACQsAAAiLAAAISwAACPYAAAkFABAHVwAACBcAAAgAAEAIMwATB3cAAAg3AAAIzgAACQ8AEQdnAAAIJwAACK4AAAkHAAAIhwAACEcAAAjuAAAJCQAQB18AAAgfAAAIngAACWMAFAd/AAAIPwAACN4AAAkbABIHbwAACC8AAAi+AAAJDwAACI8AAAhPAAAI/gAACQAAYAdQAAAIEAAACHMAFAgfABIHcAAACDAAAAjBAAAJCgAQB2AAAAggAAAIoQAACQAAAAiAAAAIQAAACOEAAAkGABAHWAAACBgAAAiRAAAJOwATB3gAAAg4AAAI0QAACREAEQdoAAAIKAAACLEAAAkIAAAIiAAACEgAAAjxAAAJBAAQB1QAAAgUAAAI4wAVCCsAEwd0AAAINAAACMkAAAkNABEHZAAACCQAAAipAAAJBAAACIQAAAhEAAAI6QAACQgAEAdcAAAIHAAACJkAAAlTABQHfAAACDwAAAjZAAAJFwASB2wAAAgsAAAIuQAACQwAAAiMAAAITAAACPkAAAkDABAHUgAACBIAAAijABUIIwATB3IAAAgyAAAIxQAACQsAEQdiAAAIIgAACKUAAAkCAAAIggAACEIAAAjlAAAJBwAQB1oAAAgaAAAIlQAACUMAFAd6AAAIOgAACNUAAAkTABIHagAACCoAAAi1AAAJCgAACIoAAAhKAAAI9QAACQUAEAdWAAAIFgAACAAAQAgzABMHdgAACDYAAAjNAAAJDwARB2YAAAgmAAAIrQAACQYAAAiGAAAIRgAACO0AAAkJABAHXgAACB4AAAidAAAJYwAUB34AAAg+AAAI3QAACRsAEgduAAAILgAACL0AAAkOAAAIjgAACE4AAAj9AAAJAABgB1EAAAgRAAAIgwAVCB8AEgdxAAAIMQAACMMAAAkKABAHYQAACCEAAAijAAAJAQAACIEAAAhBAAAI4wAACQYAEAdZAAAIGQAACJMAAAk7ABMHeQAACDkAAAjTAAAJEQARB2kAAAgpAAAIswAACQkAAAiJAAAISQAACPMAAAkEABAHVQAACBUAAAgCARAIKwATB3UAAAg1AAAIywAACQ0AEQdlAAAIJQAACKsAAAkFAAAIhQAA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",self.location.href));const A=HQ();(typeof Q=="string"||typeof Request=="function"&&Q instanceof Request||typeof URL=="function"&&Q instanceof URL)&&(Q=fetch(Q));const{instance:I}=await rQ(await Q,A);return xQ(I)}var ag={},PQ=function(Q,A,I,g,B){var C=new Worker(ag[A]||(ag[A]=URL.createObjectURL(new Blob([Q+\';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})\'],{type:"text/javascript"}))));return C.onmessage=function(E){var D=E.data,i=D.$e$;if(i){var o=new Error(i[0]);o.code=i[1],o.stack=i[2],B(o,null)}else B(null,D)},C.postMessage(I,g),C},v=Uint8Array,ZA=Uint16Array,Yg=Int32Array,XI=new v([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),VI=new v([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Kg=new v([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),tg=function(Q,A){for(var I=new ZA(31),g=0;g<31;++g)I[g]=A+=1<>1|(m&21845)<<1;xA=(xA&52428)>>2|(xA&13107)<<2,xA=(xA&61680)>>4|(xA&3855)<<4,MI[m]=((xA&65280)>>8|(xA&255)<<8)>>1}for(var WA=function(Q,A,I){for(var g=Q.length,B=0,C=new ZA(A);B>i]=o}else for(D=new ZA(g),B=0;B>15-Q[B]);return D},GI=new v(288),m=0;m<144;++m)GI[m]=8;for(var m=144;m<256;++m)GI[m]=9;for(var m=256;m<280;++m)GI[m]=7;for(var m=280;m<288;++m)GI[m]=8;for(var xg=new v(32),m=0;m<32;++m)xg[m]=5;var rg=WA(GI,9,1),ng=WA(xg,5,1),UI=function(Q){for(var A=Q[0],I=1;IA&&(A=Q[I]);return A},hA=function(Q,A,I){var g=A/8|0;return(Q[g]|Q[g+1]<<8)>>(A&7)&I},cI=function(Q,A){var I=A/8|0;return(Q[I]|Q[I+1]<<8|Q[I+2]<<16)>>(A&7)},jI=function(Q){return(Q+7)/8|0},rA=function(Q,A,I){return(A==null||A<0)&&(A=0),(I==null||I>Q.length)&&(I=Q.length),new v(Q.subarray(A,I))},Pg=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],_=function(Q,A,I){var g=new Error(A||Pg[Q]);if(g.code=Q,Error.captureStackTrace&&Error.captureStackTrace(g,_),!I)throw g;return g},mI=function(Q,A,I,g){var B=Q.length,C=g?g.length:0;if(!B||A.f&&!A.l)return I||new v(0);var E=!I,D=E||A.i!=2,i=A.i;E&&(I=new v(B*3));var o=function(GA){var RA=I.length;if(GA>RA){var kA=new v(Math.max(RA*2,GA));kA.set(I),I=kA}},w=A.f||0,G=A.p||0,R=A.b||0,y=A.l,k=A.d,F=A.m,s=A.n,h=B*8;do{if(!y){w=hA(Q,G,1);var J=hA(Q,G+1,3);if(G+=3,J)if(J==1)y=rg,k=ng,F=9,s=5;else if(J==2){var K=hA(Q,G,31)+257,p=hA(Q,G+10,15)+4,c=K+hA(Q,G+5,31)+1;G+=14;for(var U=new v(c),r=new v(19),a=0;a>4;if(S<16)U[a++]=S;else{var n=0,T=0;for(S==16?(T=3+hA(Q,G,3),G+=2,n=U[a-1]):S==17?(T=3+hA(Q,G,7),G+=3):S==18&&(T=11+hA(Q,G,127),G+=7);T--;)U[a++]=n}}var W=U.subarray(0,K),X=U.subarray(K);F=UI(W),s=UI(X),y=WA(W,F,1),k=WA(X,s,1)}else _(1);else{var S=jI(G)+4,N=Q[S-4]|Q[S-3]<<8,M=S+N;if(M>B){i&&_(0);break}D&&o(R+N),I.set(Q.subarray(S,M),R),A.b=R+=N,A.p=G=M*8,A.f=w;continue}if(G>h){i&&_(0);break}}D&&o(R+131072);for(var z=(1<>4;if(G+=n&15,G>h){i&&_(0);break}if(n||_(2),O<256)I[R++]=O;else if(O==256){u=G,y=null;break}else{var V=O-254;if(O>264){var a=O-257,b=XI[a];V=hA(Q,G,(1<>4;e||_(3),G+=e&15;var X=dg[d];if(d>3){var b=VI[d];X+=cI(Q,G)&(1<h){i&&_(0);break}D&&o(R+131072);var CA=R+V;if(R>>0},uI=function(Q,A){return gA(Q,A)+gA(Q,A+4)*4294967296},XQ=function(Q){(Q[0]!=31||Q[1]!=139||Q[2]!=8)&&_(6,"invalid gzip data");var A=Q[3],I=10;A&4&&(I+=(Q[10]|Q[11]<<8)+2);for(var g=(A>>3&1)+(A>>4&1);g>0;g-=!Q[I++]);return I+(A&2)},zI=function(){function Q(A,I){typeof A=="function"&&(I=A,A={}),this.ondata=I;var g=A&&A.dictionary&&A.dictionary.subarray(-32768);this.s={i:0,b:g?g.length:0},this.o=new v(32768),this.p=new v(0),g&&this.o.set(g)}return Q.prototype.e=function(A){if(this.ondata||_(5),this.d&&_(4),!this.p.length)this.p=A;else if(A.length){var I=new v(this.p.length+A.length);I.set(this.p),I.set(A,this.p.length),this.p=I}},Q.prototype.c=function(A){this.s.i=+(this.d=A||!1);var I=this.s.b,g=mI(this.p,this.s,this.o);this.ondata(rA(g,I,this.s.b),this.d),this.o=rA(g,this.s.b-32768),this.s.b=this.o.length,this.p=rA(this.p,this.s.p/8|0),this.s.p&=7},Q.prototype.push=function(A,I){this.e(A),this.c(I)},Q}();function VQ(Q,A,I){return I||(I=A,A={}),typeof I!="function"&&_(7),TQ(Q,A,[ZQ],function(g){return pg(LI(g.data[0],eg(g.data[1])))},1,I)}function LI(Q,A){return mI(Q,{i:2},A&&A.out,A&&A.dictionary)}var WQ=function(){function Q(A,I){this.v=1,this.r=0,zI.call(this,A,I)}return Q.prototype.push=function(A,I){if(zI.prototype.e.call(this,A),this.r+=A.length,this.v){var g=this.p.subarray(this.v-1),B=g.length>3?XQ(g):4;if(B>g.length){if(!I)return}else this.v>1&&this.onmember&&this.onmember(this.r-g.length);this.p=g.subarray(B),this.v=0}zI.prototype.c.call(this,I),this.s.f&&!this.s.l&&!I&&(this.v=jI(this.s.p)+9,this.s={i:0},this.o=new v(0),this.push(new v(0),I))},Q}(),vI=typeof TextDecoder<"u"&&new TextDecoder;try{vI.decode(eQ,{stream:!0})}catch{}var jQ=function(Q){for(var A="",I=0;;){var g=Q[I++],B=(g>127)+(g>223)+(g>239);if(I+B>Q.length)return{s:A,r:rA(Q,I-1)};B?B==3?(g=((g&15)<<18|(Q[I++]&63)<<12|(Q[I++]&63)<<6|Q[I++]&63)-65536,A+=String.fromCharCode(55296|g>>10,56320|g&1023)):B&1?A+=String.fromCharCode((g&31)<<6|Q[I++]&63):A+=String.fromCharCode((g&15)<<12|(Q[I++]&63)<<6|Q[I++]&63):A+=String.fromCharCode(g)}};function mQ(Q,A){if(A){for(var I="",g=0;g65558)return E(_(13,0,1),null),B;var i=MA(Q,D+8);if(i){var o=i,w=gA(Q,D+16),G=w==4294967295||o==65535;if(G){var R=gA(Q,D-12);G=gA(Q,R)==101075792,G&&(o=i=gA(Q,R+32),w=gA(Q,R+48))}for(var y=A&&A.filter,k=function(s){var h=lg(Q,w,G),J=h[0],S=h[1],N=h[2],M=h[3],K=h[4],p=h[5],c=bg(Q,p);w=K;var U=function(a,H){a?(B(),E(a,null)):(H&&(C[M]=H),--i||E(null,C))};if(!y||y({name:M,size:S,originalSize:N,compression:J}))if(!J)U(null,rA(Q,c,c+S));else if(J==8){var r=Q.subarray(c,c+S);if(N<524288||S>.8*N)try{U(null,LI(r,{out:new v(N)}))}catch(a){U(a,null)}else g.push(VQ(r,{size:N},U))}else U(_(14,"unknown compression type "+J,1),null);else U(null,null)},F=0;F65558)&&_(13);var B=MA(Q,g+8);if(!B)return{};var C=gA(Q,g+16),E=C==4294967295||B==65535;if(E){var D=gA(Q,g-12);E=gA(Q,D)==101075792,E&&(B=gA(Q,D+32),C=gA(Q,D+48))}for(var i=A&&A.filter,o=0;o=0?1:-1,S=1-h*h;if(S>Number.EPSILON){const M=Math.sqrt(S),K=Math.atan2(M,h*J);s=Math.sin(s*K)/M,D=Math.sin(D*K)/M}const N=D*J;if(i=i*s+R*N,o=o*s+y*N,w=w*s+k*N,G=G*s+F*N,s===1-D){const M=1/Math.sqrt(i*i+o*o+w*w+G*G);i*=M,o*=M,w*=M,G*=M}}A[I]=i,A[I+1]=o,A[I+2]=w,A[I+3]=G}static multiplyQuaternionsFlat(A,I,g,B,C,E){const D=g[B],i=g[B+1],o=g[B+2],w=g[B+3],G=C[E],R=C[E+1],y=C[E+2],k=C[E+3];return A[I]=D*k+w*G+i*y-o*R,A[I+1]=i*k+w*R+o*G-D*y,A[I+2]=o*k+w*y+D*R-i*G,A[I+3]=w*k-D*G-i*R-o*y,A}get x(){return this._x}set x(A){this._x=A,this._onChangeCallback()}get y(){return this._y}set y(A){this._y=A,this._onChangeCallback()}get z(){return this._z}set z(A){this._z=A,this._onChangeCallback()}get w(){return this._w}set w(A){this._w=A,this._onChangeCallback()}set(A,I,g,B){return this._x=A,this._y=I,this._z=g,this._w=B,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(A){return this._x=A.x,this._y=A.y,this._z=A.z,this._w=A.w,this._onChangeCallback(),this}setFromEuler(A,I=!0){const g=A._x,B=A._y,C=A._z,E=A._order,D=Math.cos,i=Math.sin,o=D(g/2),w=D(B/2),G=D(C/2),R=i(g/2),y=i(B/2),k=i(C/2);switch(E){case"XYZ":this._x=R*w*G+o*y*k,this._y=o*y*G-R*w*k,this._z=o*w*k+R*y*G,this._w=o*w*G-R*y*k;break;case"YXZ":this._x=R*w*G+o*y*k,this._y=o*y*G-R*w*k,this._z=o*w*k-R*y*G,this._w=o*w*G+R*y*k;break;case"ZXY":this._x=R*w*G-o*y*k,this._y=o*y*G+R*w*k,this._z=o*w*k+R*y*G,this._w=o*w*G-R*y*k;break;case"ZYX":this._x=R*w*G-o*y*k,this._y=o*y*G+R*w*k,this._z=o*w*k-R*y*G,this._w=o*w*G+R*y*k;break;case"YZX":this._x=R*w*G+o*y*k,this._y=o*y*G+R*w*k,this._z=o*w*k-R*y*G,this._w=o*w*G-R*y*k;break;case"XZY":this._x=R*w*G-o*y*k,this._y=o*y*G-R*w*k,this._z=o*w*k+R*y*G,this._w=o*w*G+R*y*k;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+E)}return I===!0&&this._onChangeCallback(),this}setFromAxisAngle(A,I){const g=I/2,B=Math.sin(g);return this._x=A.x*B,this._y=A.y*B,this._z=A.z*B,this._w=Math.cos(g),this._onChangeCallback(),this}setFromRotationMatrix(A){const I=A.elements,g=I[0],B=I[4],C=I[8],E=I[1],D=I[5],i=I[9],o=I[2],w=I[6],G=I[10],R=g+D+G;if(R>0){const y=.5/Math.sqrt(R+1);this._w=.25/y,this._x=(w-i)*y,this._y=(C-o)*y,this._z=(E-B)*y}else if(g>D&&g>G){const y=2*Math.sqrt(1+g-D-G);this._w=(w-i)/y,this._x=.25*y,this._y=(B+E)/y,this._z=(C+o)/y}else if(D>G){const y=2*Math.sqrt(1+D-g-G);this._w=(C-o)/y,this._x=(B+E)/y,this._y=.25*y,this._z=(i+w)/y}else{const y=2*Math.sqrt(1+G-g-D);this._w=(E-B)/y,this._x=(C+o)/y,this._y=(i+w)/y,this._z=.25*y}return this._onChangeCallback(),this}setFromUnitVectors(A,I){let g=A.dot(I)+1;return g<1e-8?(g=0,Math.abs(A.x)>Math.abs(A.z)?(this._x=-A.y,this._y=A.x,this._z=0,this._w=g):(this._x=0,this._y=-A.z,this._z=A.y,this._w=g)):(this._x=A.y*I.z-A.z*I.y,this._y=A.z*I.x-A.x*I.z,this._z=A.x*I.y-A.y*I.x,this._w=g),this.normalize()}angleTo(A){return 2*Math.acos(Math.abs(oA(this.dot(A),-1,1)))}rotateTowards(A,I){const g=this.angleTo(A);if(g===0)return this;const B=Math.min(1,I/g);return this.slerp(A,B),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(A){return this._x*A._x+this._y*A._y+this._z*A._z+this._w*A._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 A=this.length();return A===0?(this._x=0,this._y=0,this._z=0,this._w=1):(A=1/A,this._x=this._x*A,this._y=this._y*A,this._z=this._z*A,this._w=this._w*A),this._onChangeCallback(),this}multiply(A){return this.multiplyQuaternions(this,A)}premultiply(A){return this.multiplyQuaternions(A,this)}multiplyQuaternions(A,I){const g=A._x,B=A._y,C=A._z,E=A._w,D=I._x,i=I._y,o=I._z,w=I._w;return this._x=g*w+E*D+B*o-C*i,this._y=B*w+E*i+C*D-g*o,this._z=C*w+E*o+g*i-B*D,this._w=E*w-g*D-B*i-C*o,this._onChangeCallback(),this}slerp(A,I){if(I===0)return this;if(I===1)return this.copy(A);const g=this._x,B=this._y,C=this._z,E=this._w;let D=E*A._w+g*A._x+B*A._y+C*A._z;if(D<0?(this._w=-A._w,this._x=-A._x,this._y=-A._y,this._z=-A._z,D=-D):this.copy(A),D>=1)return this._w=E,this._x=g,this._y=B,this._z=C,this;const i=1-D*D;if(i<=Number.EPSILON){const y=1-I;return this._w=y*E+I*this._w,this._x=y*g+I*this._x,this._y=y*B+I*this._y,this._z=y*C+I*this._z,this.normalize(),this}const o=Math.sqrt(i),w=Math.atan2(o,D),G=Math.sin((1-I)*w)/o,R=Math.sin(I*w)/o;return this._w=E*G+this._w*R,this._x=g*G+this._x*R,this._y=B*G+this._y*R,this._z=C*G+this._z*R,this._onChangeCallback(),this}slerpQuaternions(A,I,g){return this.copy(A).slerp(I,g)}random(){const A=2*Math.PI*Math.random(),I=2*Math.PI*Math.random(),g=Math.random(),B=Math.sqrt(1-g),C=Math.sqrt(g);return this.set(B*Math.sin(A),B*Math.cos(A),C*Math.sin(I),C*Math.cos(I))}equals(A){return A._x===this._x&&A._y===this._y&&A._z===this._z&&A._w===this._w}fromArray(A,I=0){return this._x=A[I],this._y=A[I+1],this._z=A[I+2],this._w=A[I+3],this._onChangeCallback(),this}toArray(A=[],I=0){return A[I]=this._x,A[I+1]=this._y,A[I+2]=this._z,A[I+3]=this._w,A}fromBufferAttribute(A,I){return this._x=A.getX(I),this._y=A.getY(I),this._z=A.getZ(I),this._w=A.getW(I),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(A){return this._onChangeCallback=A,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class x{constructor(A=0,I=0,g=0){x.prototype.isVector3=!0,this.x=A,this.y=I,this.z=g}set(A,I,g){return g===void 0&&(g=this.z),this.x=A,this.y=I,this.z=g,this}setScalar(A){return this.x=A,this.y=A,this.z=A,this}setX(A){return this.x=A,this}setY(A){return this.y=A,this}setZ(A){return this.z=A,this}setComponent(A,I){switch(A){case 0:this.x=I;break;case 1:this.y=I;break;case 2:this.z=I;break;default:throw new Error("index is out of range: "+A)}return this}getComponent(A){switch(A){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+A)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(A){return this.x=A.x,this.y=A.y,this.z=A.z,this}add(A){return this.x+=A.x,this.y+=A.y,this.z+=A.z,this}addScalar(A){return this.x+=A,this.y+=A,this.z+=A,this}addVectors(A,I){return this.x=A.x+I.x,this.y=A.y+I.y,this.z=A.z+I.z,this}addScaledVector(A,I){return this.x+=A.x*I,this.y+=A.y*I,this.z+=A.z*I,this}sub(A){return this.x-=A.x,this.y-=A.y,this.z-=A.z,this}subScalar(A){return this.x-=A,this.y-=A,this.z-=A,this}subVectors(A,I){return this.x=A.x-I.x,this.y=A.y-I.y,this.z=A.z-I.z,this}multiply(A){return this.x*=A.x,this.y*=A.y,this.z*=A.z,this}multiplyScalar(A){return this.x*=A,this.y*=A,this.z*=A,this}multiplyVectors(A,I){return this.x=A.x*I.x,this.y=A.y*I.y,this.z=A.z*I.z,this}applyEuler(A){return this.applyQuaternion(Vg.setFromEuler(A))}applyAxisAngle(A,I){return this.applyQuaternion(Vg.setFromAxisAngle(A,I))}applyMatrix3(A){const I=this.x,g=this.y,B=this.z,C=A.elements;return this.x=C[0]*I+C[3]*g+C[6]*B,this.y=C[1]*I+C[4]*g+C[7]*B,this.z=C[2]*I+C[5]*g+C[8]*B,this}applyNormalMatrix(A){return this.applyMatrix3(A).normalize()}applyMatrix4(A){const I=this.x,g=this.y,B=this.z,C=A.elements,E=1/(C[3]*I+C[7]*g+C[11]*B+C[15]);return this.x=(C[0]*I+C[4]*g+C[8]*B+C[12])*E,this.y=(C[1]*I+C[5]*g+C[9]*B+C[13])*E,this.z=(C[2]*I+C[6]*g+C[10]*B+C[14])*E,this}applyQuaternion(A){const I=this.x,g=this.y,B=this.z,C=A.x,E=A.y,D=A.z,i=A.w,o=2*(E*B-D*g),w=2*(D*I-C*B),G=2*(C*g-E*I);return this.x=I+i*o+E*G-D*w,this.y=g+i*w+D*o-C*G,this.z=B+i*G+C*w-E*o,this}project(A){return this.applyMatrix4(A.matrixWorldInverse).applyMatrix4(A.projectionMatrix)}unproject(A){return this.applyMatrix4(A.projectionMatrixInverse).applyMatrix4(A.matrixWorld)}transformDirection(A){const I=this.x,g=this.y,B=this.z,C=A.elements;return this.x=C[0]*I+C[4]*g+C[8]*B,this.y=C[1]*I+C[5]*g+C[9]*B,this.z=C[2]*I+C[6]*g+C[10]*B,this.normalize()}divide(A){return this.x/=A.x,this.y/=A.y,this.z/=A.z,this}divideScalar(A){return this.multiplyScalar(1/A)}min(A){return this.x=Math.min(this.x,A.x),this.y=Math.min(this.y,A.y),this.z=Math.min(this.z,A.z),this}max(A){return this.x=Math.max(this.x,A.x),this.y=Math.max(this.y,A.y),this.z=Math.max(this.z,A.z),this}clamp(A,I){return this.x=oA(this.x,A.x,I.x),this.y=oA(this.y,A.y,I.y),this.z=oA(this.z,A.z,I.z),this}clampScalar(A,I){return this.x=oA(this.x,A,I),this.y=oA(this.y,A,I),this.z=oA(this.z,A,I),this}clampLength(A,I){const g=this.length();return this.divideScalar(g||1).multiplyScalar(oA(g,A,I))}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(A){return this.x*A.x+this.y*A.y+this.z*A.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(A){return this.normalize().multiplyScalar(A)}lerp(A,I){return this.x+=(A.x-this.x)*I,this.y+=(A.y-this.y)*I,this.z+=(A.z-this.z)*I,this}lerpVectors(A,I,g){return this.x=A.x+(I.x-A.x)*g,this.y=A.y+(I.y-A.y)*g,this.z=A.z+(I.z-A.z)*g,this}cross(A){return this.crossVectors(this,A)}crossVectors(A,I){const g=A.x,B=A.y,C=A.z,E=I.x,D=I.y,i=I.z;return this.x=B*i-C*D,this.y=C*E-g*i,this.z=g*D-B*E,this}projectOnVector(A){const I=A.lengthSq();if(I===0)return this.set(0,0,0);const g=A.dot(this)/I;return this.copy(A).multiplyScalar(g)}projectOnPlane(A){return Ag.copy(this).projectOnVector(A),this.sub(Ag)}reflect(A){return this.sub(Ag.copy(A).multiplyScalar(2*this.dot(A)))}angleTo(A){const I=Math.sqrt(this.lengthSq()*A.lengthSq());if(I===0)return Math.PI/2;const g=this.dot(A)/I;return Math.acos(oA(g,-1,1))}distanceTo(A){return Math.sqrt(this.distanceToSquared(A))}distanceToSquared(A){const I=this.x-A.x,g=this.y-A.y,B=this.z-A.z;return I*I+g*g+B*B}manhattanDistanceTo(A){return Math.abs(this.x-A.x)+Math.abs(this.y-A.y)+Math.abs(this.z-A.z)}setFromSpherical(A){return this.setFromSphericalCoords(A.radius,A.phi,A.theta)}setFromSphericalCoords(A,I,g){const B=Math.sin(I)*A;return this.x=B*Math.sin(g),this.y=Math.cos(I)*A,this.z=B*Math.cos(g),this}setFromCylindrical(A){return this.setFromCylindricalCoords(A.radius,A.theta,A.y)}setFromCylindricalCoords(A,I,g){return this.x=A*Math.sin(I),this.y=g,this.z=A*Math.cos(I),this}setFromMatrixPosition(A){const I=A.elements;return this.x=I[12],this.y=I[13],this.z=I[14],this}setFromMatrixScale(A){const I=this.setFromMatrixColumn(A,0).length(),g=this.setFromMatrixColumn(A,1).length(),B=this.setFromMatrixColumn(A,2).length();return this.x=I,this.y=g,this.z=B,this}setFromMatrixColumn(A,I){return this.fromArray(A.elements,I*4)}setFromMatrix3Column(A,I){return this.fromArray(A.elements,I*3)}setFromEuler(A){return this.x=A._x,this.y=A._y,this.z=A._z,this}setFromColor(A){return this.x=A.r,this.y=A.g,this.z=A.b,this}equals(A){return A.x===this.x&&A.y===this.y&&A.z===this.z}fromArray(A,I=0){return this.x=A[I],this.y=A[I+1],this.z=A[I+2],this}toArray(A=[],I=0){return A[I]=this.x,A[I+1]=this.y,A[I+2]=this.z,A}fromBufferAttribute(A,I){return this.x=A.getX(I),this.y=A.getY(I),this.z=A.getZ(I),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const A=Math.random()*Math.PI*2,I=Math.random()*2-1,g=Math.sqrt(1-I*I);return this.x=g*Math.cos(A),this.y=I,this.z=g*Math.sin(A),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const Ag=new x,Vg=new nA;class oI{constructor(A,I,g,B,C,E,D,i,o){oI.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],A!==void 0&&this.set(A,I,g,B,C,E,D,i,o)}set(A,I,g,B,C,E,D,i,o){const w=this.elements;return w[0]=A,w[1]=B,w[2]=D,w[3]=I,w[4]=C,w[5]=i,w[6]=g,w[7]=E,w[8]=o,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(A){const I=this.elements,g=A.elements;return I[0]=g[0],I[1]=g[1],I[2]=g[2],I[3]=g[3],I[4]=g[4],I[5]=g[5],I[6]=g[6],I[7]=g[7],I[8]=g[8],this}extractBasis(A,I,g){return A.setFromMatrix3Column(this,0),I.setFromMatrix3Column(this,1),g.setFromMatrix3Column(this,2),this}setFromMatrix4(A){const I=A.elements;return this.set(I[0],I[4],I[8],I[1],I[5],I[9],I[2],I[6],I[10]),this}multiply(A){return this.multiplyMatrices(this,A)}premultiply(A){return this.multiplyMatrices(A,this)}multiplyMatrices(A,I){const g=A.elements,B=I.elements,C=this.elements,E=g[0],D=g[3],i=g[6],o=g[1],w=g[4],G=g[7],R=g[2],y=g[5],k=g[8],F=B[0],s=B[3],h=B[6],J=B[1],S=B[4],N=B[7],M=B[2],K=B[5],p=B[8];return C[0]=E*F+D*J+i*M,C[3]=E*s+D*S+i*K,C[6]=E*h+D*N+i*p,C[1]=o*F+w*J+G*M,C[4]=o*s+w*S+G*K,C[7]=o*h+w*N+G*p,C[2]=R*F+y*J+k*M,C[5]=R*s+y*S+k*K,C[8]=R*h+y*N+k*p,this}multiplyScalar(A){const I=this.elements;return I[0]*=A,I[3]*=A,I[6]*=A,I[1]*=A,I[4]*=A,I[7]*=A,I[2]*=A,I[5]*=A,I[8]*=A,this}determinant(){const A=this.elements,I=A[0],g=A[1],B=A[2],C=A[3],E=A[4],D=A[5],i=A[6],o=A[7],w=A[8];return I*E*w-I*D*o-g*C*w+g*D*i+B*C*o-B*E*i}invert(){const A=this.elements,I=A[0],g=A[1],B=A[2],C=A[3],E=A[4],D=A[5],i=A[6],o=A[7],w=A[8],G=w*E-D*o,R=D*i-w*C,y=o*C-E*i,k=I*G+g*R+B*y;if(k===0)return this.set(0,0,0,0,0,0,0,0,0);const F=1/k;return A[0]=G*F,A[1]=(B*o-w*g)*F,A[2]=(D*g-B*E)*F,A[3]=R*F,A[4]=(w*I-B*i)*F,A[5]=(B*C-D*I)*F,A[6]=y*F,A[7]=(g*i-o*I)*F,A[8]=(E*I-g*C)*F,this}transpose(){let A;const I=this.elements;return A=I[1],I[1]=I[3],I[3]=A,A=I[2],I[2]=I[6],I[6]=A,A=I[5],I[5]=I[7],I[7]=A,this}getNormalMatrix(A){return this.setFromMatrix4(A).invert().transpose()}transposeIntoArray(A){const I=this.elements;return A[0]=I[0],A[1]=I[3],A[2]=I[6],A[3]=I[1],A[4]=I[4],A[5]=I[7],A[6]=I[2],A[7]=I[5],A[8]=I[8],this}setUvTransform(A,I,g,B,C,E,D){const i=Math.cos(C),o=Math.sin(C);return this.set(g*i,g*o,-g*(i*E+o*D)+E+A,-B*o,B*i,-B*(-o*E+i*D)+D+I,0,0,1),this}scale(A,I){return this.premultiply(Ig.makeScale(A,I)),this}rotate(A){return this.premultiply(Ig.makeRotation(-A)),this}translate(A,I){return this.premultiply(Ig.makeTranslation(A,I)),this}makeTranslation(A,I){return A.isVector2?this.set(1,0,A.x,0,1,A.y,0,0,1):this.set(1,0,A,0,1,I,0,0,1),this}makeRotation(A){const I=Math.cos(A),g=Math.sin(A);return this.set(I,-g,0,g,I,0,0,0,1),this}makeScale(A,I){return this.set(A,0,0,0,I,0,0,0,1),this}equals(A){const I=this.elements,g=A.elements;for(let B=0;B<9;B++)if(I[B]!==g[B])return!1;return!0}fromArray(A,I=0){for(let g=0;g<9;g++)this.elements[g]=A[g+I];return this}toArray(A=[],I=0){const g=this.elements;return A[I]=g[0],A[I+1]=g[1],A[I+2]=g[2],A[I+3]=g[3],A[I+4]=g[4],A[I+5]=g[5],A[I+6]=g[6],A[I+7]=g[7],A[I+8]=g[8],A}clone(){return new this.constructor().fromArray(this.elements)}}const Ig=new oI,Wg={};function jg(Q){Q in Wg||(Wg[Q]=!0,console.warn(Q))}const mg=new oI().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),ug=new oI().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function AB(){const Q={enabled:!0,workingColorSpace:Tg,spaces:{},convert:function(B,C,E){return this.enabled===!1||C===E||!C||!E||(this.spaces[C].transfer===_I&&(B.r=jA(B.r),B.g=jA(B.g),B.b=jA(B.b)),this.spaces[C].primaries!==this.spaces[E].primaries&&(B.applyMatrix3(this.spaces[C].toXYZ),B.applyMatrix3(this.spaces[E].fromXYZ)),this.spaces[E].transfer===_I&&(B.r=mA(B.r),B.g=mA(B.g),B.b=mA(B.b))),B},workingToColorSpace:function(B,C){return this.convert(B,this.workingColorSpace,C)},colorSpaceToWorking:function(B,C){return this.convert(B,C,this.workingColorSpace)},getPrimaries:function(B){return this.spaces[B].primaries},getTransfer:function(B){return B===_Q?Xg:this.spaces[B].transfer},getToneMappingMode:function(B){return this.spaces[B].outputColorSpaceConfig.toneMappingMode||"standard"},getLuminanceCoefficients:function(B,C=this.workingColorSpace){return B.fromArray(this.spaces[C].luminanceCoefficients)},define:function(B){Object.assign(this.spaces,B)},_getMatrix:function(B,C,E){return B.copy(this.spaces[C].toXYZ).multiply(this.spaces[E].fromXYZ)},_getDrawingBufferColorSpace:function(B){return this.spaces[B].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(B=this.workingColorSpace){return this.spaces[B].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(B,C){return jg("THREE.ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),Q.workingToColorSpace(B,C)},toWorkingColorSpace:function(B,C){return jg("THREE.ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),Q.colorSpaceToWorking(B,C)}},A=[.64,.33,.3,.6,.15,.06],I=[.2126,.7152,.0722],g=[.3127,.329];return Q.define({[Tg]:{primaries:A,whitePoint:g,transfer:Xg,toXYZ:mg,fromXYZ:ug,luminanceCoefficients:I,workingColorSpaceConfig:{unpackColorSpace:UA},outputColorSpaceConfig:{drawingBufferColorSpace:UA}},[UA]:{primaries:A,whitePoint:g,transfer:_I,toXYZ:mg,fromXYZ:ug,luminanceCoefficients:I,outputColorSpaceConfig:{drawingBufferColorSpace:UA}}}),Q}const cA=AB();function jA(Q){return Q<.04045?Q*.0773993808:Math.pow(Q*.9478672986+.0521327014,2.4)}function mA(Q){return Q<.0031308?Q*12.92:1.055*Math.pow(Q,.41666)-.055}class zg{constructor(A=new x(1/0,1/0,1/0),I=new x(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=A,this.max=I}set(A,I){return this.min.copy(A),this.max.copy(I),this}setFromArray(A){this.makeEmpty();for(let I=0,g=A.length;I=this.min.x&&A.x<=this.max.x&&A.y>=this.min.y&&A.y<=this.max.y&&A.z>=this.min.z&&A.z<=this.max.z}containsBox(A){return this.min.x<=A.min.x&&A.max.x<=this.max.x&&this.min.y<=A.min.y&&A.max.y<=this.max.y&&this.min.z<=A.min.z&&A.max.z<=this.max.z}getParameter(A,I){return I.set((A.x-this.min.x)/(this.max.x-this.min.x),(A.y-this.min.y)/(this.max.y-this.min.y),(A.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(A){return A.max.x>=this.min.x&&A.min.x<=this.max.x&&A.max.y>=this.min.y&&A.min.y<=this.max.y&&A.max.z>=this.min.z&&A.min.z<=this.max.z}intersectsSphere(A){return this.clampPoint(A.center,HA),HA.distanceToSquared(A.center)<=A.radius*A.radius}intersectsPlane(A){let I,g;return A.normal.x>0?(I=A.normal.x*this.min.x,g=A.normal.x*this.max.x):(I=A.normal.x*this.max.x,g=A.normal.x*this.min.x),A.normal.y>0?(I+=A.normal.y*this.min.y,g+=A.normal.y*this.max.y):(I+=A.normal.y*this.max.y,g+=A.normal.y*this.min.y),A.normal.z>0?(I+=A.normal.z*this.min.z,g+=A.normal.z*this.max.z):(I+=A.normal.z*this.max.z,g+=A.normal.z*this.min.z),I<=-A.constant&&g>=-A.constant}intersectsTriangle(A){if(this.isEmpty())return!1;this.getCenter(yI),YI.subVectors(this.max,yI),uA.subVectors(A.a,yI),zA.subVectors(A.b,yI),vA.subVectors(A.c,yI),PA.subVectors(zA,uA),fA.subVectors(vA,zA),TA.subVectors(uA,vA);let I=[0,-PA.z,PA.y,0,-fA.z,fA.y,0,-TA.z,TA.y,PA.z,0,-PA.x,fA.z,0,-fA.x,TA.z,0,-TA.x,-PA.y,PA.x,0,-fA.y,fA.x,0,-TA.y,TA.x,0];return!gg(I,uA,zA,vA,YI)||(I=[1,0,0,0,1,0,0,0,1],!gg(I,uA,zA,vA,YI))?!1:(KI.crossVectors(PA,fA),I=[KI.x,KI.y,KI.z],gg(I,uA,zA,vA,YI))}clampPoint(A,I){return I.copy(A).clamp(this.min,this.max)}distanceToPoint(A){return this.clampPoint(A,HA).distanceTo(A)}getBoundingSphere(A){return this.isEmpty()?A.makeEmpty():(this.getCenter(A.center),A.radius=this.getSize(HA).length()*.5),A}intersect(A){return this.min.max(A.min),this.max.min(A.max),this.isEmpty()&&this.makeEmpty(),this}union(A){return this.min.min(A.min),this.max.max(A.max),this}applyMatrix4(A){return this.isEmpty()?this:(tA[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(A),tA[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(A),tA[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(A),tA[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(A),tA[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(A),tA[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(A),tA[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(A),tA[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(A),this.setFromPoints(tA),this)}translate(A){return this.min.add(A),this.max.add(A),this}equals(A){return A.min.equals(this.min)&&A.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(A){return this.min.fromArray(A.min),this.max.fromArray(A.max),this}}const tA=[new x,new x,new x,new x,new x,new x,new x,new x],HA=new x,aI=new zg,uA=new x,zA=new x,vA=new x,PA=new x,fA=new x,TA=new x,yI=new x,YI=new x,KI=new x,XA=new x;function gg(Q,A,I,g,B){for(let C=0,E=Q.length-3;C<=E;C+=3){XA.fromArray(Q,C);const D=B.x*Math.abs(XA.x)+B.y*Math.abs(XA.y)+B.z*Math.abs(XA.z),i=A.dot(XA),o=I.dot(XA),w=g.dot(XA);if(Math.max(-Math.max(i,o,w),Math.min(i,o,w))>D)return!1}return!0}const vg={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},pA={h:0,s:0,l:0},tI={h:0,s:0,l:0};function Qg(Q,A,I){return I<0&&(I+=1),I>1&&(I-=1),I<1/6?Q+(A-Q)*6*I:I<1/2?A:I<2/3?Q+(A-Q)*6*(2/3-I):Q}class Bg{constructor(A,I,g){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(A,I,g)}set(A,I,g){if(I===void 0&&g===void 0){const B=A;B&&B.isColor?this.copy(B):typeof B=="number"?this.setHex(B):typeof B=="string"&&this.setStyle(B)}else this.setRGB(A,I,g);return this}setScalar(A){return this.r=A,this.g=A,this.b=A,this}setHex(A,I=UA){return A=Math.floor(A),this.r=(A>>16&255)/255,this.g=(A>>8&255)/255,this.b=(A&255)/255,cA.colorSpaceToWorking(this,I),this}setRGB(A,I,g,B=cA.workingColorSpace){return this.r=A,this.g=I,this.b=g,cA.colorSpaceToWorking(this,B),this}setHSL(A,I,g,B=cA.workingColorSpace){if(A=$Q(A,1),I=oA(I,0,1),g=oA(g,0,1),I===0)this.r=this.g=this.b=g;else{const C=g<=.5?g*(1+I):g+I-g*I,E=2*g-C;this.r=Qg(E,C,A+1/3),this.g=Qg(E,C,A),this.b=Qg(E,C,A-1/3)}return cA.colorSpaceToWorking(this,B),this}setStyle(A,I=UA){function g(C){C!==void 0&&parseFloat(C)<1&&console.warn("THREE.Color: Alpha component of "+A+" will be ignored.")}let B;if(B=/^(\\w+)\\(([^\\)]*)\\)/.exec(A)){let C;const E=B[1],D=B[2];switch(E){case"rgb":case"rgba":if(C=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(D))return g(C[4]),this.setRGB(Math.min(255,parseInt(C[1],10))/255,Math.min(255,parseInt(C[2],10))/255,Math.min(255,parseInt(C[3],10))/255,I);if(C=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(D))return g(C[4]),this.setRGB(Math.min(100,parseInt(C[1],10))/100,Math.min(100,parseInt(C[2],10))/100,Math.min(100,parseInt(C[3],10))/100,I);break;case"hsl":case"hsla":if(C=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(D))return g(C[4]),this.setHSL(parseFloat(C[1])/360,parseFloat(C[2])/100,parseFloat(C[3])/100,I);break;default:console.warn("THREE.Color: Unknown color model "+A)}}else if(B=/^\\#([A-Fa-f\\d]+)$/.exec(A)){const C=B[1],E=C.length;if(E===3)return this.setRGB(parseInt(C.charAt(0),16)/15,parseInt(C.charAt(1),16)/15,parseInt(C.charAt(2),16)/15,I);if(E===6)return this.setHex(parseInt(C,16),I);console.warn("THREE.Color: Invalid hex color "+A)}else if(A&&A.length>0)return this.setColorName(A,I);return this}setColorName(A,I=UA){const g=vg[A.toLowerCase()];return g!==void 0?this.setHex(g,I):console.warn("THREE.Color: Unknown color "+A),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(A){return this.r=A.r,this.g=A.g,this.b=A.b,this}copySRGBToLinear(A){return this.r=jA(A.r),this.g=jA(A.g),this.b=jA(A.b),this}copyLinearToSRGB(A){return this.r=mA(A.r),this.g=mA(A.g),this.b=mA(A.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(A=UA){return cA.workingToColorSpace(BA.copy(this),A),Math.round(oA(BA.r*255,0,255))*65536+Math.round(oA(BA.g*255,0,255))*256+Math.round(oA(BA.b*255,0,255))}getHexString(A=UA){return("000000"+this.getHex(A).toString(16)).slice(-6)}getHSL(A,I=cA.workingColorSpace){cA.workingToColorSpace(BA.copy(this),I);const g=BA.r,B=BA.g,C=BA.b,E=Math.max(g,B,C),D=Math.min(g,B,C);let i,o;const w=(D+E)/2;if(D===E)i=0,o=0;else{const G=E-D;switch(o=w<=.5?G/(E+D):G/(2-E-D),E){case g:i=(B-C)/G+(B(Q.PLY="ply",Q.SPZ="spz",Q.SPLAT="splat",Q.KSPLAT="ksplat",Q.PCSOGS="pcsogs",Q.PCSOGSZIP="pcsogszip",Q.RAD="rad",Q))(wA||{});function QB(Q){var C;let A=!1;const I=Q.split(`\n`).map(E=>{const D=E.trimEnd();return A?D:D.length>0?(A=!0,D):null}).filter(E=>E!=null);for(;I.length>0&&I[I.length-1].length===0;)I.pop();if(I.length===0)return[];const g=(C=I[0].match(/^\\s*/))==null?void 0:C[0];if(!g)return I;const B=new RegExp(`^${g}`);return I.map(E=>E.replace(B,""))}function BB(Q){return QB(Q).join(`\n`)}const Cg=new Float32Array(1),QQ=new Uint32Array(Cg.buffer),Eg="Float16Array"in globalThis,RI=Eg?new globalThis.Float16Array(1):null,BQ=new Uint16Array(RI==null?void 0:RI.buffer);function CB(Q){const A=Math.sqrt(Q.reduce((I,g)=>I+g*g,0));return Q.map(I=>I/A)}const $A=Eg?EB:DB,AA=Eg?iB:wB;function EB(Q){return RI[0]=Q,BQ[0]}function DB(Q){Cg[0]=Q;const A=QQ[0],I=A>>31&1,g=A>>23&255,B=A&8388607,C=I<<15;if(g===255)return B!==0?C|32767:C|31744;const E=g-127+15;if(E>=31)return C|31744;if(E<=0){if(E<-10)return C;const i=(B|8388608)>>1-E+13;return C|i}const D=B>>13;return C|E<<10|D}function iB(Q){return BQ[0]=Q,RI[0]}function wB(Q){const A=Q>>15&1,I=Q>>10&31,g=Q&1023;let B;if(I===0)if(g===0)B=A<<31;else{let C=g,E=-14;for(;(C&1024)===0;)C<<=1,E--;C&=1023;const D=E+127,i=C<<13;B=A<<31|D<<23|i}else if(I===31)g===0?B=A<<31|2139095040:B=A<<31|2143289344;else{const C=I-15+127,E=g<<13;B=A<<31|C<<23|E}return QQ[0]=B,Cg[0]}function SA(Q){return Math.max(0,Math.min(255,Math.round(Q*255)))}function GB(Q){const A=[],I=new Set;function g(B){B&&typeof B=="object"&&!I.has(B)&&(I.add(B),B instanceof ArrayBuffer?A.push(B):ArrayBuffer.isView(B)?A.push(B.buffer):Array.isArray(B)?B.forEach(g):Object.values(B).forEach(g))}return g(Q),A}function Dg(Q,A,I,g,B,C,E,D,i,o,w,G,R,y,k,F,s){const h=(s==null?void 0:s.rgbMin)??0,S=((s==null?void 0:s.rgbMax)??1)-h,N=SA((y-h)/S),M=SA((k-h)/S),K=SA((F-h)/S),p=SA(s!=null&&s.lodOpacity?.5*R:R),c=GQ(DQ.set(i,o,w,G)),U=c&255,r=c>>>8&255,a=c>>>16&255,H=(s==null?void 0:s.lnScaleMin)??_g,t=254/(((s==null?void 0:s.lnScaleMax)??$g)-H),Y=C<_A?0:Math.min(255,Math.max(1,Math.round((Math.log(C)-H)*t)+1)),n=E<_A?0:Math.min(255,Math.max(1,Math.round((Math.log(E)-H)*t)+1)),T=D<_A?0:Math.min(255,Math.max(1,Math.round((Math.log(D)-H)*t)+1)),W=$A(I),X=$A(g),z=$A(B),j=A*4;Q[j]=N|M<<8|K<<16|p<<24,Q[j+1]=W|X<<16,Q[j+2]=z|U<<16|r<<24,Q[j+3]=Y|n<<8|T<<16|a<<24}function CQ(Q,A,I,g,B){const C=$A(I),E=$A(g),D=$A(B),i=A*4;Q[i+1]=C|E<<16,Q[i+2]=D|Q[i+2]&4294901760}function EQ(Q,A,I,g,B,C){const E=(C==null?void 0:C.lnScaleMin)??_g,i=254/(((C==null?void 0:C.lnScaleMax)??$g)-E),o=I<_A?0:Math.min(255,Math.max(1,Math.round((Math.log(I)-E)*i)+1)),w=g<_A?0:Math.min(255,Math.max(1,Math.round((Math.log(g)-E)*i)+1)),G=B<_A?0:Math.min(255,Math.max(1,Math.round((Math.log(B)-E)*i)+1)),R=A*4;Q[R+3]=o|w<<8|G<<16|Q[R+3]&4278190080}const DQ=new nA;function iQ(Q,A,I,g,B,C){const E=GQ(DQ.set(I,g,B,C)),D=E&255,i=E>>>8&255,o=E>>>16&255,w=A*4;Q[w+2]=Q[w+2]&65535|D<<16|i<<24,Q[w+3]=Q[w+3]&16777215|o<<24}function oB(Q,A,I,g,B,C,E){const D=(E==null?void 0:E.rgbMin)??0,o=((E==null?void 0:E.rgbMax)??1)-D,w=SA((I-D)/o),G=SA((g-D)/o),R=SA((B-D)/o),y=SA(E!=null&&E.lodOpacity?.5*C:C),k=A*4;Q[k]=w|G<<8|R<<16|y<<24}function yB(Q,A,I,g,B,C){const E=(C==null?void 0:C.rgbMin)??0,i=((C==null?void 0:C.rgbMax)??1)-E,o=SA((I-E)/i),w=SA((g-E)/i),G=SA((B-E)/i),R=A*4;Q[R]=o|w<<8|G<<16|Q[R]&4278190080}function RB(Q,A,I){const g=SA(I),B=A*4;Q[B]=Q[B]&16777215|g<<24}new x,new x,new Bg;function kB(Q){const A=AQ,I=Math.max(gQ,Math.min(IQ,Math.ceil(Q/A))),g=Math.ceil(Q/(A*I)),B=A*I*g;return{width:A,height:I,depth:g,maxSplats:B}}function qI(Q){const A=AQ,I=Math.max(gQ,Math.min(IQ,Math.ceil(Q/A))),g=Math.ceil(Q/(A*I));return A*I*g}BB(`\n precision highp float;\n\n in vec3 position;\n\n void main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n }\n`);const FB=new nA,wQ=new x;function GQ(Q){const A=FB.copy(Q).normalize();A.w<0&&A.set(-A.x,-A.y,-A.z,-A.w);const I=2*Math.acos(A.w),g=Math.sqrt(A.x*A.x+A.y*A.y+A.z*A.z),B=g<1e-6?wQ.set(1,0,0):wQ.set(A.x,A.y,A.z).divideScalar(g),C=Math.abs(B.x)+Math.abs(B.y)+Math.abs(B.z);let E=B.x/C,D=B.y/C;if(B.z<0){const y=E;E=(1-Math.abs(D))*(E>=0?1:-1),D=(1-Math.abs(y))*(D>=0?1:-1)}const i=E*.5+.5,o=D*.5+.5,w=Math.round(i*255),G=Math.round(o*255);return Math.round(I*(255/Math.PI))<<16|G<<8|w}function dI(Q,A,I,g){const B=Math.round(Math.max(-127,Math.min(127,Q*127))),C=Math.round(Math.max(-127,Math.min(127,A*127))),E=Math.round(Math.max(-127,Math.min(127,I*127))),D=Math.round(Math.max(-127,Math.min(127,g*127)));return B&255|(C&255)<<8|(E&255)<<16|(D&255)<<24}function xI(Q,A,I,g){const C=63/((g==null?void 0:g.sh1Max)??1),E=A*2;for(let D=0;D<9;++D){const i=I[D]*C,o=Math.round(Math.max(-63,Math.min(63,i)))&127,w=D*7,G=w+7,R=Math.floor(w/32),y=w-R*32,k=o<R*32+32){const F=o>>>32-y&4294967295;Q[E+R+1]|=F}}}function rI(Q,A,I,g){const C=1/((g==null?void 0:g.sh2Max)??1);Q[A*4+0]=dI(I[0]*C,I[1]*C,I[2]*C,I[3]*C),Q[A*4+1]=dI(I[4]*C,I[5]*C,I[6]*C,I[7]*C),Q[A*4+2]=dI(I[8]*C,I[9]*C,I[10]*C,I[11]*C),Q[A*4+3]=dI(I[12]*C,I[13]*C,I[14]*C,0)}function nI(Q,A,I,g){const C=31/((g==null?void 0:g.sh3Max)??1),E=A*4;for(let D=0;D<21;++D){const i=I[D]*C,o=Math.round(Math.max(-31,Math.min(31,i)))&63,w=D*6,G=w+6,R=Math.floor(w/32),y=w-R*32,k=o<R*32+32){const F=o>>>32-y&4294967295;Q[E+R+1]|=F}}}function hB(Q,A){const I=[];let g=0,B=null;const C=new WQ((i,o)=>{if(I.push(i),g+=i.length,o||g>=A){const w=new Uint8Array(g);let G=0;for(const R of I)w.set(R,G),G+=R.length;B=w.slice(0,A)}}),E=1024;let D=0;for(;B==null&&D{I=C,g=qI(I),B=new Uint32Array(g*4)},(C,E,D,i,o,w,G,R,y,k,F,s,h,J,S)=>{Dg(B,C,E,D,i,o,w,G,R,y,k,F,s,h,J,S,A)}),{packedArray:B,numSplats:I}}const PI={0:{bytesPerCenter:12,bytesPerScale:12,bytesPerRotation:16,bytesPerColor:4,bytesPerSphericalHarmonicsComponent:4,scaleOffsetBytes:12,rotationOffsetBytes:24,colorOffsetBytes:40,sphericalHarmonicsOffsetBytes:44,scaleRange:1},1:{bytesPerCenter:6,bytesPerScale:6,bytesPerRotation:8,bytesPerColor:4,bytesPerSphericalHarmonicsComponent:2,scaleOffsetBytes:6,rotationOffsetBytes:12,colorOffsetBytes:20,sphericalHarmonicsOffsetBytes:24,scaleRange:32767},2:{bytesPerCenter:6,bytesPerScale:6,bytesPerRotation:8,bytesPerColor:4,bytesPerSphericalHarmonicsComponent:1,scaleOffsetBytes:6,rotationOffsetBytes:12,colorOffsetBytes:20,sphericalHarmonicsOffsetBytes:24,scaleRange:32767}},yQ={0:0,1:9,2:24,3:45};function NB(Q,A,I,g){var F;let E=0;const D=new DataView(Q.buffer,E,4096);E+=4096;const i=D.getUint8(0),o=D.getUint8(1);if(i!==0||o<1)throw new Error(`Unsupported .ksplat version: ${i}.${o}`);const w=D.getUint32(4,!0);D.getUint32(16,!0);const G=D.getUint16(20,!0);if(G<0||G>2)throw new Error(`Invalid .ksplat compression level: ${G}`);const R=D.getFloat32(36,!0)||-1.5,y=D.getFloat32(40,!0)||1.5;let k=4096+w*1024;for(let s=0;s=1?new Float32Array(3*3):void 0,kA=Y>=2?new Float32Array(5*3):void 0,qA=Y>=3?new Float32Array(7*3):void 0,FA=p/2/U,sA=k+q,NA=k+t,P=new DataView(Q.buffer,NA,d),DA=new Float32Array(Q.buffer,sA,K*3),$=new Uint32Array(Q.buffer,k,H);let Z=r,bA=a;for(let iA=0;iA=bA+KA&&(Z+=1,bA+=KA),JA=Z}const IA=G===0?P.getFloat32(f+0,!0):(P.getUint16(f+0,!0)-U)*FA+DA[3*JA+0],l=G===0?P.getFloat32(f+4,!0):(P.getUint16(f+2,!0)-U)*FA+DA[3*JA+1],aA=G===0?P.getFloat32(f+8,!0):(P.getUint16(f+4,!0)-U)*FA+DA[3*JA+2],FI=G===0?P.getFloat32(f+u+0,!0):AA(P.getUint16(f+u+0,!0)),hI=G===0?P.getFloat32(f+u+4,!0):AA(P.getUint16(f+u+2,!0)),Rg=G===0?P.getFloat32(f+u+8,!0):AA(P.getUint16(f+u+4,!0)),kg=G===0?P.getFloat32(f+O+0,!0):AA(P.getUint16(f+O+0,!0)),Fg=G===0?P.getFloat32(f+O+4,!0):AA(P.getUint16(f+O+2,!0)),hg=G===0?P.getFloat32(f+O+8,!0):AA(P.getUint16(f+O+4,!0)),Sg=G===0?P.getFloat32(f+O+12,!0):AA(P.getUint16(f+O+6,!0)),sg=P.getUint8(f+V+0)/255,Ng=P.getUint8(f+V+1)/255,Jg=P.getUint8(f+V+2)/255,Mg=P.getUint8(f+V+3)/255;if(I(iA,IA,l,aA,FI,hI,Rg,Fg,hg,Sg,kg,Mg,sg,Ng,Jg),Y>=1&&RA){for(const[KA,VA]of EA.entries())RA[KA]=h(f,VA);if(kA)for(const[KA,VA]of yA.entries())kA[KA]=h(f,VA);if(qA)for(const[KA,VA]of GA.entries())qA[KA]=h(f,VA);g==null||g(iA,RA,kA,qA)}}k+=CA}}function JB(Q,A){var J;let B=0;const C=new DataView(Q.buffer,B,4096);B+=4096;const E=C.getUint8(0),D=C.getUint8(1);if(E!==0||D<1)throw new Error(`Unsupported .ksplat version: ${E}.${D}`);const i=C.getUint32(4,!0),o=C.getUint32(16,!0),w=C.getUint16(20,!0);if(w<0||w>2)throw new Error(`Invalid .ksplat compression level: ${w}`);const G=C.getFloat32(36,!0)||-1.5,R=C.getFloat32(40,!0)||1.5,y=o,k=qI(y),F=new Uint32Array(k*4),s={};let h=4096+i*1024;for(let S=0;S=1?new Float32Array(3*3):void 0,sA=W>=2?new Float32Array(5*3):void 0,NA=W>=3?new Float32Array(7*3):void 0,P=r/2/H,DA=h+n,$=h+T,Z=new DataView(Q.buffer,$,yA),bA=new Float32Array(Q.buffer,DA,U*3),iA=new Uint32Array(Q.buffer,h,Y);let f=q,JA=t;for(let IA=0;IA=JA+lA&&(f+=1,JA+=lA),aA=f}const FI=w===0?Z.getFloat32(l+0,!0):(Z.getUint16(l+0,!0)-H)*P+bA[3*aA+0],hI=w===0?Z.getFloat32(l+4,!0):(Z.getUint16(l+2,!0)-H)*P+bA[3*aA+1],Rg=w===0?Z.getFloat32(l+8,!0):(Z.getUint16(l+4,!0)-H)*P+bA[3*aA+2],kg=w===0?Z.getFloat32(l+b+0,!0):AA(Z.getUint16(l+b+0,!0)),Fg=w===0?Z.getFloat32(l+b+4,!0):AA(Z.getUint16(l+b+2,!0)),hg=w===0?Z.getFloat32(l+b+8,!0):AA(Z.getUint16(l+b+4,!0)),Sg=w===0?Z.getFloat32(l+e+0,!0):AA(Z.getUint16(l+e+0,!0)),sg=w===0?Z.getFloat32(l+e+4,!0):AA(Z.getUint16(l+e+2,!0)),Ng=w===0?Z.getFloat32(l+e+8,!0):AA(Z.getUint16(l+e+4,!0)),Jg=w===0?Z.getFloat32(l+e+12,!0):AA(Z.getUint16(l+e+6,!0)),Mg=Z.getUint8(l+d+0)/255,KA=Z.getUint8(l+d+1)/255,VA=Z.getUint8(l+d+2)/255,XB=Z.getUint8(l+d+3)/255;if(Dg(F,IA,FI,hI,Rg,kg,Fg,hg,sg,Ng,Jg,Sg,XB,Mg,KA,VA,A),W>=1){if(FA){s.sh1||(s.sh1=new Uint32Array(y*2));for(const[lA,SI]of RA.entries())FA[lA]=N(l,SI);xI(s.sh1,IA,FA,A)}if(sA){s.sh2||(s.sh2=new Uint32Array(y*4));for(const[lA,SI]of kA.entries())sA[lA]=N(l,SI);rI(s.sh2,IA,sA,A)}if(NA){s.sh3||(s.sh3=new Uint32Array(y*4));for(const[lA,SI]of qA.entries())NA[lA]=N(l,SI);nI(s.sh3,IA,NA,A)}}}h+=GA}return{packedArray:F,numSplats:y,extra:s}}const RQ=["char","uchar","short","ushort","int","uint","float","double"],II=class II{constructor({fileBytes:A}){this.header="",this.littleEndian=!0,this.elements={},this.comments=[],this.data=null,this.numSplats=0,this.fileBytes=A instanceof ArrayBuffer?new Uint8Array(A):A}async parseHeader(){const I=new ReadableStream({start:E=>{E.enqueue(this.fileBytes.slice(0,65536)),E.close()}}).pipeThrough(new TextDecoderStream).getReader();this.header="";const g=`end_header\n`;for(;;){const{value:E,done:D}=await I.read();if(D)throw new Error("Failed to read header");this.header+=E;const i=this.header.indexOf(g);if(i>=0){this.header=this.header.slice(0,i+g.length);break}}const B=new TextEncoder().encode(this.header).length;this.data=new DataView(this.fileBytes.buffer,B),this.elements={};let C=null;this.comments=[],this.header.trim().split(`\n`).forEach((E,D)=>{const i=E.trim();if(D===0){if(i!=="ply")throw new Error("Invalid PLY header");return}if(i.length===0)return;const o=i.split(" ");switch(o[0]){case"format":if(o[1]==="binary_little_endian")this.littleEndian=!0;else if(o[1]==="binary_big_endian")this.littleEndian=!1;else throw new Error(`Unsupported PLY format: ${o[1]}`);if(o[2]!=="1.0")throw new Error(`Unsupported PLY version: ${o[2]}`);break;case"end_header":break;case"comment":this.comments.push(i.slice(8));break;case"element":{const w=o[1];C={name:w,count:Number.parseInt(o[2]),properties:{}},this.elements[w]=C;break}case"property":if(C==null)throw new Error("Property must be inside an element");o[1]==="list"?C.properties[o[4]]={isList:!0,type:o[3],countType:o[2]}:C.properties[o[2]]={isList:!1,type:o[1]};break}}),this.elements.vertex&&(this.numSplats=this.elements.vertex.count)}parseData(A){let I=0;const g=this.data;if(g==null)throw new Error("No data to parse");for(const B in this.elements){const C=this.elements[B],{count:E,properties:D}=C,i=cB(D),o=HB(D,this.littleEndian),w=A(C)??(()=>{});for(let G=0;G[0,1,2].map((N,M)=>S+M*h/3)),D=new Array(5).fill(null).flatMap((J,S)=>[0,1,2].map((N,M)=>3+S+M*h/3)),i=new Array(7).fill(null).flatMap((J,S)=>[0,1,2].map((N,M)=>8+S+M*h/3)),o=C>=1?new Float32Array(3*3):void 0,w=C>=2?new Float32Array(5*3):void 0,G=C>=3?new Float32Array(7*3):void 0}function y(h,J){if(!o)throw new Error("Missing sh1");const S=J.f_rest;for(let N=0;N{const{min_x:n,min_y:T,min_z:W,max_x:X,max_y:z,max_z:j,min_scale_x:u,min_scale_y:O,min_scale_z:V,max_scale_x:b,max_scale_y:e,max_scale_z:d,min_r:CA,min_g:EA,min_b:yA,max_r:GA,max_g:RA,max_b:kA}=Y;B.push({min_x:n,min_y:T,min_z:W,max_x:X,max_y:z,max_z:j,min_scale_x:u,min_scale_y:O,min_scale_z:V,max_scale_x:b,max_scale_y:e,max_scale_z:d,min_r:CA,min_g:EA,min_b:yA,max_r:GA,max_g:RA,max_b:kA})}}function F(h){if(I&&h.name==="sh")return C=wg(h.properties),R(),y;if(h.name!=="vertex")return null;const{packed_position:J,packed_rotation:S,packed_scale:N,packed_color:M}=h.properties;if(!J||!S||!N||!M)throw new Error("Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color");const K=Math.sqrt(2);return(p,c)=>{const U=B[p>>>8];if(U==null)throw new Error("Missing PLY chunk");const{min_x:r,min_y:a,min_z:H,max_x:q,max_y:t,max_z:Y,min_scale_x:n,min_scale_y:T,min_scale_z:W,max_scale_x:X,max_scale_y:z,max_scale_z:j,min_r:u,min_g:O,min_b:V,max_r:b,max_g:e,max_b:d}=U,{packed_position:CA,packed_rotation:EA,packed_scale:yA,packed_color:GA}=c,RA=(CA>>>21&2047)/2047*(q-r)+r,kA=(CA>>>11&1023)/1023*(t-a)+a,qA=(CA&2047)/2047*(Y-H)+H,FA=((EA>>>20&1023)/1023-.5)*K,sA=((EA>>>10&1023)/1023-.5)*K,NA=((EA&1023)/1023-.5)*K,P=Math.sqrt(Math.max(0,1-FA*FA-sA*sA-NA*NA)),DA=EA>>>30,$=DA===0?FA:DA===1?P:sA,Z=DA<=1?sA:DA===2?P:NA,bA=DA<=2?NA:P,iA=DA===0?P:FA,f=Math.exp((yA>>>21&2047)/2047*(X-n)+n),JA=Math.exp((yA>>>11&1023)/1023*(z-T)+T),IA=Math.exp((yA&2047)/2047*(j-W)+W),l=(GA>>>24&255)/255*((b??1)-(u??0))+(u??0),aA=(GA>>>16&255)/255*((e??1)-(O??0))+(O??0),FI=(GA>>>8&255)/255*((d??1)-(V??0))+(V??0),hI=(GA&255)/255;A(p,RA,kA,qA,f,JA,IA,$,Z,bA,iA,hI,l,aA,FI)}}const s=h=>{if(h.name==="chunk")return k(h);if(g)return F(h);if(h.name!=="vertex")return null;const{x:J,y:S,z:N,scale_0:M,scale_1:K,scale_2:p,rot_0:c,rot_1:U,rot_2:r,rot_3:a,opacity:H,f_dc_0:q,f_dc_1:t,f_dc_2:Y,red:n,green:T,blue:W,alpha:X}=h.properties;if(!J||!S||!N)throw new Error("Missing PLY properties: x, y, z");const z=M&&K&&p,j=c&&U&&r&&a,u=X!=null?eI[X.type]:1,O=n!=null?eI[n.type]:1,V=T!=null?eI[T.type]:1,b=W!=null?eI[W.type]:1;return C=wg(h.properties),R(),(e,d)=>{const CA=z?Math.exp(d.scale_0):II.defaultPointScale,EA=z?Math.exp(d.scale_1):II.defaultPointScale,yA=z?Math.exp(d.scale_2):II.defaultPointScale,GA=j?d.rot_1:0,RA=j?d.rot_2:0,kA=j?d.rot_3:0,qA=j?d.rot_0:1,FA=H!=null?1/(1+Math.exp(-d.opacity)):X!=null?d.alpha/u:1,sA=q!=null?d.f_dc_0*pI+.5:n!=null?d.red/O:1,NA=t!=null?d.f_dc_1*pI+.5:T!=null?d.green/V:1,P=Y!=null?d.f_dc_2*pI+.5:W!=null?d.blue/b:1;if(A(e,d.x,d.y,d.z,CA,EA,yA,GA,RA,kA,qA,FA,sA,NA,P),I&&o){const DA=d.f_rest;if(o)for(let $=0;${const y=AI[R.countType](g,I,this.littleEndian);I+=LA[R.countType],I+=y*LA[R.type]});else{if(w)if(G==="f_dc_0"||G==="f_dc_1"||G==="f_dc_2"){const y=Number.parseInt(G.slice(5));i.push(()=>{const k=(A[o+y]/255-.5)/pI;kQ[R.type](g,I,this.littleEndian,k)})}else G==="opacity"&&i.push(()=>{const y=Math.max(-100,Math.min(100,-Math.log(1/(A[o+3]/255)-1)));kQ[R.type](g,I,this.littleEndian,y)});i.push(()=>{I+=LA[R.type]})}for(let G=0;GQ.getInt8(A),uchar:(Q,A,I)=>Q.getUint8(A),short:(Q,A,I)=>Q.getInt16(A,I),ushort:(Q,A,I)=>Q.getUint16(A,I),int:(Q,A,I)=>Q.getInt32(A,I),uint:(Q,A,I)=>Q.getUint32(A,I),float:(Q,A,I)=>Q.getFloat32(A,I),double:(Q,A,I)=>Q.getFloat64(A,I)},kQ={char:(Q,A,I,g)=>{Q.setInt8(A,g)},uchar:(Q,A,I,g)=>{Q.setUint8(A,g)},short:(Q,A,I,g)=>{Q.setInt16(A,g,I)},ushort:(Q,A,I,g)=>{Q.setUint16(A,g,I)},int:(Q,A,I,g)=>{Q.setInt32(A,g,I)},uint:(Q,A,I,g)=>{Q.setUint32(A,g,I)},float:(Q,A,I,g)=>{Q.setFloat32(A,g,I)},double:(Q,A,I,g)=>{Q.setFloat64(A,g,I)}},LA={char:1,uchar:1,short:2,ushort:2,int:4,uint:4,float:4,double:8},eI={char:127,uchar:255,short:32767,ushort:65535,int:2147483647,uint:4294967295,float:1,double:1},MB={0:0,9:1,24:2,45:3},UB={0:0,1:9,2:24,3:45},ig=/^f_rest_([0-9]{1,2})$/;function cB(Q){const A={};for(const[I,g]of Object.entries(Q))ig.test(I)?A.f_rest=new Array(wg(Q)):A[I]=g.isList?[]:0;return A}function HB(Q,A){return YB(Q)?KB(Q,A):tB(Q,A)}const LB=(()=>{try{new Function("return 42;")}catch{return!1}return!0})(),aB=/^[a-zA-Z0-9_]+$/;function YB(Q){if(!LB)return!1;for(const[A,I]of Object.entries(Q))if(!aB.test(A)||I.isList&&!RQ.includes(I.countType)||!RQ.includes(I.type))return!1;return!0}function KB(Q,A){const I=["let list;"];for(const[B,C]of Object.entries(Q)){const E=B.match(ig);if(E){const D=+E[1];I.push(`\n item.f_rest[${D}] = PARSE_FIELD[\'${C.type}\'](data, offset, ${A});\n offset += ${LA[C.type]};\n `)}else C.isList?I.push(`\n list = item[\'${B}\'];\n list.length = PARSE_FIELD[\'${C.countType}\'](data, offset, ${A});\n offset += ${LA[C.countType]};\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD[\'${C.type}\'](data, offset, ${A});\n offset += ${LA[C.type]};\n }\n `):I.push(`\n item[\'${B}\'] = PARSE_FIELD[\'${C.type}\'](data, offset, ${A});\n offset += ${LA[C.type]};\n `)}I.push("return offset;");const g=new Function("data","offset","item","PARSE_FIELD",I.join(`\n`));return(B,C,E)=>g(B,C,E,AI)}function tB(Q,A){const I=[];for(const[g,B]of Object.entries(Q)){const C=g.match(ig);if(C){const E=+C[1];I.push((D,i,o)=>(o.f_rest[E]=AI[B.type](D,i,A),i+LA[B.type]))}else B.isList?I.push((E,D,i)=>{const o=i[g];o.length=AI[B.countType](E,D,A);let w=D+LA[B.countType];for(let G=0;G(i[g]=AI[B.type](E,D,A),D+LA[B.type]))}return(g,B,C)=>{let E=B;for(let D=0;D3)throw new Error(`Unsupported SPZ version: ${this.version}`);this.numSplats=A.getUint32(8,!0),this.shDegree=A.getUint8(12),this.fractionalBits=A.getUint8(13),this.flags=A.getUint8(14),this.flagAntiAlias=(this.flags&1)!==0,this.flagLod=(this.flags&128)!==0,this.reserved=A.getUint8(15),this.headerParsed=!0,this.parsed=!1}async parseSplats(A,I,g,B,C,E,{childCounts:D,childStarts:i}={}){if(!this.headerParsed)throw new Error("SPZ file header must be parsed first");if(this.parsed)throw new Error("SPZ file already parsed");if(this.parsed=!0,this.version===1){const o=await this.reader.read(this.numSplats*3*2),w=new Uint16Array(o.buffer);for(let G=0;G>8)/o,k=((w[R+5]<<24|w[R+4]<<16|w[R+3]<<8)>>8)/o,F=((w[R+8]<<24|w[R+7]<<16|w[R+6]<<8)>>8)/o;A==null||A(G,y,k,F)}}else throw new Error("Unreachable");{const o=await this.reader.read(this.numSplats);for(let w=0;w>>30;let J=F,S=0;for(let M=3;M>=0;--M)if(M!==h){const K=J&s,p=J>>>9&1;J=J>>>10,y[M]=o*(K/s),y[M]=p===0?y[M]:-y[M],S+=y[M]*y[M]}const N=1-S;y[h]=Math.sqrt(Math.max(N,0)),C==null||C(G,y[0],y[1],y[2],y[3])}}else{const o=await this.reader.read(this.numSplats*3);for(let w=0;w=1){const o=new Float32Array(9),w=this.shDegree>=2?new Float32Array(5*3):void 0,G=this.shDegree>=3?new Float32Array(7*3):void 0,R=await this.reader.read(this.numSplats*hQ[this.shDegree]*3);let y=0;for(let k=0;k=1?9:0)+(I>=2?15:0)+(I>=3?21:0),E=16+A*C;this.buffer=new ArrayBuffer(E),this.view=new DataView(this.buffer),this.view.setUint32(0,qB,!0),this.view.setUint32(4,dB,!0),this.view.setUint32(8,A,!0),this.view.setUint8(12,I),this.view.setUint8(13,g),this.view.setUint8(14,B?xB:0),this.view.setUint8(15,0),this.numSplats=A,this.shDegree=I,this.fractionalBits=g,this.fraction=1<>8&255),this.view.setUint8(y+2,E>>16&255),this.view.setUint8(y+3,i&255),this.view.setUint8(y+4,i>>8&255),this.view.setUint8(y+5,i>>16&255),this.view.setUint8(y+6,w&255),this.view.setUint8(y+7,w>>8&255),this.view.setUint8(y+8,w>>16&255)}setAlpha(A,I){const g=16+this.numSplats*9+A;this.view.setUint8(g,Math.max(0,Math.min(255,Math.round(I*255))))}static scaleRgb(A){const I=((A-.5)/(SQ/.15)+.5)*255;return Math.max(0,Math.min(255,Math.round(I)))}setRgb(A,I,g,B){const C=16+this.numSplats*10+A*3;this.view.setUint8(C,eA.scaleRgb(I)),this.view.setUint8(C+1,eA.scaleRgb(g)),this.view.setUint8(C+2,eA.scaleRgb(B))}setScale(A,I,g,B){const C=16+this.numSplats*13+A*3;this.view.setUint8(C,Math.max(0,Math.min(255,Math.round((Math.log(I)+10)*16)))),this.view.setUint8(C+1,Math.max(0,Math.min(255,Math.round((Math.log(g)+10)*16)))),this.view.setUint8(C+2,Math.max(0,Math.min(255,Math.round((Math.log(B)+10)*16))))}setQuat(A,...I){const g=16+this.numSplats*16+A*4,B=CB(I);let C=0;for(let i=1;i<4;++i)Math.abs(B[i])>Math.abs(B[C])&&(C=i);const E=B[C]<0?1:0;let D=C;for(let i=0;i<4;++i)if(i!==C){const o=(B[i]<0?1:0)^E,w=Math.floor(511*(Math.abs(B[i])/Math.SQRT1_2)+.5);D=D<<10|o<<9|w}this.view.setUint8(g,D&255),this.view.setUint8(g+1,D>>8&255),this.view.setUint8(g+2,D>>16&255),this.view.setUint8(g+3,D>>>24&255)}static quantizeSh(A,I){const g=Math.round(A*128)+128,B=1<<8-I,C=Math.floor((g+B/2)/B)*B;return Math.max(0,Math.min(255,C))}setSh(A,I,g,B){const C=hQ[this.shDegree]||0,E=16+this.numSplats*20+A*C*3;for(let D=0;D<9;++D)this.view.setUint8(E+D,eA.quantizeSh(I[D],5));if(g){const D=E+9;for(let i=0;i<15;++i)this.view.setUint8(D+i,eA.quantizeSh(g[i],4));if(B){const i=D+15;for(let o=0;o<21;++o)this.view.setUint8(i+o,eA.quantizeSh(B[o],4))}}}async finalize(){const A=new Uint8Array(this.buffer),g=new ReadableStream({async start(E){E.enqueue(A),E.close()}}).pipeThrough(new CompressionStream("gzip")),C=await new Response(g).arrayBuffer();return console.log("Compressed",A.length,"bytes to",C.byteLength,"bytes"),new Uint8Array(C)}}async function rB(Q){var w,G,R;const A=new eB,{inputs:I,clipXyz:g,maxSh:B,fractionalBits:C=12,opacityThreshold:E}=Q;for(const y of I){let k=function(c){return c.multiplyScalar(S),c.applyQuaternion(N),c.add(M),c},F=function(c){return c.multiplyScalar(S),c},s=function(c){return c.premultiply(N),c},h=function(c){return!K||K.containsPoint(c)},J=function(c){return E!==void 0?c>=E:!0};const S=((w=y.transform)==null?void 0:w.scale)??1,N=new nA().fromArray(((G=y.transform)==null?void 0:G.quaternion)??[0,0,0,1]),M=new x().fromArray(((R=y.transform)==null?void 0:R.translate)??[0,0,0]),K=g?new zg(new x().fromArray(g.min),new x().fromArray(g.max)):void 0;let p=y.fileType;switch(p||(p=nB(y.fileBytes),!p&&y.pathOrUrl&&(p=fB(y.pathOrUrl))),p){case wA.PLY:{const c=new fI({fileBytes:y.fileBytes});await c.parseHeader();let U=null;c.parseSplats((r,a,H,q,t,Y,n,T,W,X,z,j,u,O,V)=>{const b=k(new x(a,H,q));if(h(b)&&J(j)){U=A.pushSplat(),A.setCenter(U,b.x,b.y,b.z);const e=F(new x(t,Y,n));A.setScale(U,e.x,e.y,e.z);const d=s(new nA(T,W,X,z));A.setQuaternion(U,d.x,d.y,d.z,d.w),A.setOpacity(U,j),A.setColor(U,u,O,V)}else U=null},(r,a,H,q)=>{a&&U!==null&&A.setSh1(U,a),H&&U!==null&&A.setSh2(U,H),q&&U!==null&&A.setSh3(U,q)});break}case wA.SPZ:{const c=new FQ({fileBytes:y.fileBytes});await c.parseHeader();const U=new Int32Array(c.numSplats);U.fill(-1);const r=new Float32Array(c.numSplats*3),a=new x;c.parseSplats((H,q,t,Y)=>{const n=k(new x(q,t,Y));r[H*3]=n.x,r[H*3+1]=n.y,r[H*3+2]=n.z},(H,q)=>{a.fromArray(r,H*3),h(a)&&J(q)&&(U[H]=A.pushSplat(),A.setCenter(U[H],a.x,a.y,a.z),A.setOpacity(U[H],q))},(H,q,t,Y)=>{U[H]>=0&&A.setColor(U[H],q,t,Y)},(H,q,t,Y)=>{if(U[H]>=0){const n=F(new x(q,t,Y));A.setScale(U[H],n.x,n.y,n.z)}},(H,q,t,Y,n)=>{if(U[H]>=0){const T=s(new nA(q,t,Y,n));A.setQuaternion(U[H],T.x,T.y,T.z,T.w)}},(H,q,t,Y)=>{U[H]>=0&&(A.setSh1(U[H],q),t&&A.setSh2(U[H],t),Y&&A.setSh3(U[H],Y))});break}case wA.SPLAT:oQ(y.fileBytes,c=>{},(c,U,r,a,H,q,t,Y,n,T,W,X,z,j,u)=>{const O=k(new x(U,r,a));if(h(O)&&J(X)){const V=A.pushSplat();A.setCenter(V,O.x,O.y,O.z);const b=F(new x(H,q,t));A.setScale(V,b.x,b.y,b.z);const e=s(new nA(Y,n,T,W));A.setQuaternion(V,e.x,e.y,e.z,e.w),A.setOpacity(V,X),A.setColor(V,z,j,u)}});break;case wA.KSPLAT:{let c=null;NB(y.fileBytes,U=>{},(U,r,a,H,q,t,Y,n,T,W,X,z,j,u,O)=>{const V=k(new x(r,a,H));if(h(V)&&J(z)){c=A.pushSplat(),A.setCenter(c,V.x,V.y,V.z);const b=F(new x(q,t,Y));A.setScale(c,b.x,b.y,b.z);const e=s(new nA(n,T,W,X));A.setQuaternion(c,e.x,e.y,e.z,e.w),A.setOpacity(c,z),A.setColor(c,j,u,O)}else c=null},(U,r,a,H)=>{c!==null&&(A.setSh1(c,r),a&&A.setSh2(c,a),H&&A.setSh3(c,H))});break}default:throw new Error(`transcodeSpz not implemented for ${p}`)}}const D=Math.min(B??3,A.sh3?3:A.sh2?2:A.sh1?1:0),i=new eA({numSplats:A.numSplats,shDegree:D,fractionalBits:C,flagAntiAlias:!0});for(let y=0;y=1&&i.setSh(y,A.sh1.slice(y*9,(y+1)*9),D>=2&&A.sh2?A.sh2.slice(y*15,(y+1)*15):void 0,D>=3&&A.sh3?A.sh3.slice(y*21,(y+1)*21):void 0)}return{fileBytes:await i.finalize(),clippedCount:i.clippedCount}}function nB(Q){const I=new DataView(Q.buffer).getUint32(0,!0);if((I&16777215)===7957616)return wA.PLY;if((I&16777215)===559903){const g=hB(Q,4);return new DataView(g.buffer).getUint32(0,!0)===1347635022?wA.SPZ:void 0}if(I===67324752)return sQ(Q)?wA.PCSOGSZIP:void 0;if(I===809779538)return wA.RAD}function PB(Q){const A=Q.split(/[?#]/,1)[0],I=Math.max(A.lastIndexOf("/"),A.lastIndexOf("\\\\")),g=A.slice(I+1),B=g.lastIndexOf(".");return B<=0||B===g.length-1?"":g.slice(B+1).toLowerCase()}function fB(Q){const A=PB(Q);if(A==="ply")return wA.PLY;if(A==="spz")return wA.SPZ;if(A==="splat")return wA.SPLAT;if(A==="ksplat")return wA.KSPLAT;if(A==="sog")return wA.PCSOGSZIP;if(A==="rad")return wA.RAD}function pB(Q){try{let A;if(typeof Q=="string")A=Q;else{const B=Q instanceof ArrayBuffer?new Uint8Array(Q):Q;if(B.length>65536)return;A=new TextDecoder().decode(B)}const I=JSON.parse(A);if(!I||typeof I!="object"||Array.isArray(I))return;const g=I.version===2;for(const B of["means","scales","quats","sh0"]){if(!I[B]||typeof I[B]!="object"||Array.isArray(I[B]))return;if(g){if(!I[B].files||(B==="scales"||B==="sh0")&&!I[B].codebook||B==="means"&&(!I[B].mins||!I[B].maxs))return}else if(!I[B].shape||!I[B].files||B!=="quats"&&(!I[B].mins||!I[B].maxs))return}return I}catch{return}}function sQ(Q){try{const A=Q instanceof ArrayBuffer?new Uint8Array(Q):Q;let I=null;const g=vQ(A,{filter:({name:C})=>C.split(/[\\\\/]/).pop()==="meta.json"?(I=C,!0):!1});if(!I)return;const B=pB(g[I]);return B?{name:I,json:B}:void 0}catch{return}}class eB{constructor({maxSplats:A=1}={}){this.numSplats=0,this.maxSplats=kB(A).maxSplats,this.centers=new Float32Array(this.maxSplats*3),this.scales=new Float32Array(this.maxSplats*3),this.quaternions=new Float32Array(this.maxSplats*4),this.opacities=new Float32Array(this.maxSplats),this.colors=new Float32Array(this.maxSplats*3)}pushSplat(){const A=this.numSplats;return this.ensureIndex(A),this.numSplats+=1,A}unpushSplat(A){if(A===this.numSplats-1)this.numSplats-=1;else throw new Error("Cannot unpush splat from non-last position")}ensureCapacity(A){if(A>this.maxSplats){const I=Math.max(A,this.maxSplats*2),g=new Float32Array(I*3),B=new Float32Array(I*3),C=new Float32Array(I*4),E=new Float32Array(I),D=new Float32Array(I*3);if(g.set(this.centers),B.set(this.scales),C.set(this.quaternions),E.set(this.opacities),D.set(this.colors),this.centers=g,this.scales=B,this.quaternions=C,this.opacities=E,this.colors=D,this.sh1){const i=new Float32Array(I*9);i.set(this.sh1),this.sh1=i}if(this.sh2){const i=new Float32Array(I*15);i.set(this.sh2),this.sh2=i}if(this.sh3){const i=new Float32Array(I*21);i.set(this.sh3),this.sh3=i}this.maxSplats=I}}ensureIndex(A){this.ensureCapacity(A+1)}setCenter(A,I,g,B){this.centers[A*3]=I,this.centers[A*3+1]=g,this.centers[A*3+2]=B}setScale(A,I,g,B){this.scales[A*3]=I,this.scales[A*3+1]=g,this.scales[A*3+2]=B}setQuaternion(A,I,g,B,C){this.quaternions[A*4]=I,this.quaternions[A*4+1]=g,this.quaternions[A*4+2]=B,this.quaternions[A*4+3]=C}setOpacity(A,I){this.opacities[A]=I}setColor(A,I,g,B){this.colors[A*3]=I,this.colors[A*3+1]=g,this.colors[A*3+2]=B}setSh1(A,I){this.sh1||(this.sh1=new Float32Array(this.maxSplats*9));for(let g=0;g<9;++g)this.sh1[A*9+g]=I[g]}setSh2(A,I){this.sh2||(this.sh2=new Float32Array(this.maxSplats*15));for(let g=0;g<15;++g)this.sh2[A*15+g]=I[g]}setSh3(A,I){this.sh3||(this.sh3=new Float32Array(this.maxSplats*21));for(let g=0;g<21;++g)this.sh3[A*21+g]=I[g]}}async function NQ(Q,A,I){const g="version"in Q;if(!g&&Q.quats.encoding!=="quaternion_packed")throw new Error("Unsupported quaternion encoding");const B=g?Q.count:Q.means.shape[0],C=qI(B),E=new Uint32Array(C*4),D={},i=Promise.all([kI(A[Q.means.files[0]]),kI(A[Q.means.files[1]])]).then(y=>{for(let k=0;k{let k,F,s;g?k=F=s=Q.scales.codebook.map(h=>Math.exp(h)):(k=new Array(256).fill(0).map((h,J)=>Q.scales.mins[0]+(Q.scales.maxs[0]-Q.scales.mins[0])*(J/255)).map(h=>Math.exp(h)),F=new Array(256).fill(0).map((h,J)=>Q.scales.mins[1]+(Q.scales.maxs[1]-Q.scales.mins[1])*(J/255)).map(h=>Math.exp(h)),s=new Array(256).fill(0).map((h,J)=>Q.scales.mins[2]+(Q.scales.maxs[2]-Q.scales.mins[2])*(J/255)).map(h=>Math.exp(h)));for(let h=0;h{const k=Math.sqrt(2),F=new Array(256).fill(0).map((s,h)=>(h/255-.5)*k);for(let s=0;s{const k=.28209479177387814;let F,s,h,J;g?(F=s=h=Q.sh0.codebook.map(S=>k*S+.5),J=new Array(256).fill(0).map((S,N)=>N/255)):(F=new Array(256).fill(0).map((S,N)=>Q.sh0.mins[0]+(Q.sh0.maxs[0]-Q.sh0.mins[0])*(N/255)).map(S=>k*S+.5),s=new Array(256).fill(0).map((S,N)=>Q.sh0.mins[1]+(Q.sh0.maxs[1]-Q.sh0.mins[1])*(N/255)).map(S=>k*S+.5),h=new Array(256).fill(0).map((S,N)=>Q.sh0.mins[2]+(Q.sh0.maxs[2]-Q.sh0.mins[2])*(N/255)).map(S=>k*S+.5),J=new Array(256).fill(0).map((S,N)=>Q.sh0.mins[3]+(Q.sh0.maxs[3]-Q.sh0.mins[3])*(N/255)).map(S=>1/(1+Math.exp(-S))));for(let S=0;S=3:Q.shN.shape[1]>=45,k=g?Q.shN.bands>=2:Q.shN.shape[1]>=24,F=g?Q.shN.bands>=1:Q.shN.shape[1]>=9;F&&(D.sh1=new Uint32Array(B*2)),k&&(D.sh2=new Uint32Array(B*4)),y&&(D.sh3=new Uint32Array(B*4));const s=new Float32Array(9),h=new Float32Array(15),J=new Float32Array(21),S=Q.shN,N=Promise.all([Gg(A[Q.shN.files[0]]),Gg(A[Q.shN.files[1]])]).then(([M,K])=>{const p="codebook"in S?S.codebook:new Array(256).fill(0).map((c,U)=>S.mins+(S.maxs-S.mins)*(U/255));for(let c=0;c>>6)*M.width+a;for(let t=0;t<3;++t){if(F)for(let Y=0;Y<3;++Y)s[Y*3+t]=p[M.rgba[(q+Y)*4+t]];if(k)for(let Y=0;Y<5;++Y)h[Y*3+t]=p[M.rgba[(q+3+Y)*4+t]];if(y)for(let Y=0;Y<7;++Y)J[Y*3+t]=p[M.rgba[(q+8+Y)*4+t]]}F&&xI(D.sh1,c,s,I),k&&rI(D.sh2,c,h,I),y&&nI(D.sh3,c,J,I)}});R.push(N)}return await Promise.all(R),{packedArray:E,numSplats:B,extra:D}}let bI=null;async function Gg(Q){if(!bI&&(bI=new OffscreenCanvas(1,1).getContext("webgl2"),!bI))throw new Error("Failed to create WebGL2 context");const A=new Blob([Q]),I=await createImageBitmap(A,{premultiplyAlpha:"none"}),g=bI,B=g.createTexture();g.bindTexture(g.TEXTURE_2D,B),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!0),g.texImage2D(g.TEXTURE_2D,0,g.RGBA,g.RGBA,g.UNSIGNED_BYTE,I),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MAG_FILTER,g.NEAREST),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MIN_FILTER,g.NEAREST);const C=g.createFramebuffer();g.bindFramebuffer(g.FRAMEBUFFER,C),g.framebufferTexture2D(g.FRAMEBUFFER,g.COLOR_ATTACHMENT0,g.TEXTURE_2D,B,0);const E=new Uint8Array(I.width*I.height*4);return g.readPixels(0,0,I.width,I.height,g.RGBA,g.UNSIGNED_BYTE,E),g.deleteTexture(B),g.deleteFramebuffer(C),{rgba:E,width:I.width,height:I.height}}async function kI(Q){const{rgba:A}=await Gg(Q);return A}async function bB(Q,A){var R;const I=sQ(Q);if(!I)throw new Error("Invalid PC SOGS zip file");const{name:g,json:B}=I,C=g.lastIndexOf("/"),E=g.lastIndexOf("\\\\"),D=g.slice(0,Math.max(C,E)+1),i=new Map,o=[...B.means.files,...B.scales.files,...B.quats.files,...B.sh0.files,...((R=B.shN)==null?void 0:R.files)??[]];for(const y of o)i.set(D+y,y);const w=await new Promise((y,k)=>{zQ(Q,{filter:({name:F})=>i.has(F)},(F,s)=>{F?k(F):y(s)})}),G={};for(const[y,k]of i.entries())G[k]=w[y];return await NQ(B,G,A)}async function JQ(Q){const{name:A,args:I,id:g}=Q.data;let B,C;try{switch(A){case"unpackPly":{const{packedArray:E,fileBytes:D,splatEncoding:i}=I,o=await lB({packedArray:E,fileBytes:D,splatEncoding:i});B={id:g,numSplats:o.numSplats,packedArray:o.packedArray,extra:o.extra};break}case"decodeSpz":{const{fileBytes:E,splatEncoding:D}=I,i=await OB(E,D);B={id:g,numSplats:i.numSplats,packedArray:i.packedArray,extra:i.extra};break}case"decodeAntiSplat":{const{fileBytes:E,splatEncoding:D}=I,i=sB(E,D);B={id:g,numSplats:i.numSplats,packedArray:i.packedArray};break}case"decodeKsplat":{const{fileBytes:E,splatEncoding:D}=I,i=JB(E,D);B={id:g,numSplats:i.numSplats,packedArray:i.packedArray,extra:i.extra};break}case"decodePcSogs":{const{fileBytes:E,extraFiles:D,splatEncoding:i}=I,o=JSON.parse(new TextDecoder().decode(E)),w=await NQ(o,D,i);B={id:g,numSplats:w.numSplats,packedArray:w.packedArray,extra:w.extra};break}case"decodePcSogsZip":{const{fileBytes:E,splatEncoding:D}=I,i=await bB(E,D);B={id:g,numSplats:i.numSplats,packedArray:i.packedArray,extra:i.extra};break}case"sortSplats":{const{totalSplats:E,readback:D,ordering:i}=I;B={id:g,readback:D,...ZB({totalSplats:E,readback:D,ordering:i})};break}case"sortDoubleSplats":{const{numSplats:E,readback:D,ordering:i}=I;B={id:g,readback:D,ordering:i,activeSplats:cQ(E,D,i)};break}case"sort32Splats":{const{numSplats:E,readback:D,ordering:i}=I;B={id:g,readback:D,ordering:i,activeSplats:UQ(E,D,i)};break}case"transcodeSpz":{const E=I,D=await rB(E);B={id:g,fileBytes:D,input:E};break}default:throw new Error(`Unknown name: ${A}`)}}catch(E){C=E,console.error(C)}self.postMessage({id:g,result:B,error:C},{transfer:GB(B)})}async function lB({packedArray:Q,fileBytes:A,splatEncoding:I}){const g=new fI({fileBytes:A});await g.parseHeader();const B=g.numSplats,C={};return g.parseSplats((E,D,i,o,w,G,R,y,k,F,s,h,J,S,N)=>{Dg(Q,E,D,i,o,w,G,R,y,k,F,s,h,J,S,N,I)},(E,D,i,o)=>{D&&(C.sh1||(C.sh1=new Uint32Array(B*2)),xI(C.sh1,E,D,I)),i&&(C.sh2||(C.sh2=new Uint32Array(B*4)),rI(C.sh2,E,i,I)),o&&(C.sh3||(C.sh3=new Uint32Array(B*4)),nI(C.sh3,E,o,I))}),{packedArray:Q,numSplats:B,extra:C}}async function OB(Q,A){const I=new FQ({fileBytes:Q});await I.parseHeader();const g=I.numSplats,B=qI(g),C=new Uint32Array(B*4),E={};let D={};if(I.flagLod){const i=new Uint16Array(g),o=new Uint32Array(g);E.childCounts=i,E.childStarts=o,D={childCounts:(w,G)=>{i[w]=G},childStarts:(w,G)=>{o[w]=G}}}return await I.parseSplats((i,o,w,G)=>{CQ(C,i,o,w,G)},(i,o)=>{RB(C,i,o)},(i,o,w,G)=>{yB(C,i,o,w,G,A)},(i,o,w,G)=>{EQ(C,i,o,w,G,A)},(i,o,w,G,R)=>{iQ(C,i,o,w,G,R)},(i,o,w,G)=>{o&&(E.sh1||(E.sh1=new Uint32Array(g*2)),xI(E.sh1,i,o,A)),w&&(E.sh2||(E.sh2=new Uint32Array(g*4)),rI(E.sh2,i,w,A)),G&&(E.sh3||(E.sh3=new Uint32Array(g*4)),nI(E.sh3,i,G,A))},D),{packedArray:C,numSplats:g,extra:E}}const og=31744,lI=og+1;let YA=null;function ZB({totalSplats:Q,readback:A,ordering:I}){YA||(YA=new Uint32Array(lI)),YA.fill(0);const g=A.map(i=>new Uint32Array(i.buffer)),B=g[0].length,C=Math.ceil(Q/B);let E=0;for(let i=0;i{(self.URL||self.webkitURL).revokeObjectURL(A)}),I}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(zB),{name:Q==null?void 0:Q.name})}finally{A&&(self.URL||self.webkitURL).revokeObjectURL(A)}}var eA=Uint8Array,WI=Uint16Array,eo=Int32Array,_B=new eA([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),$B=new eA([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),ro=new eA([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),AC=function(Q,A){for(var I=new WI(31),g=0;g<31;++g)I[g]=A+=1<>1|(hA&21845)<<1;MI=(MI&52428)>>2|(MI&13107)<<2,MI=(MI&61680)>>4|(MI&3855)<<4,xQ[hA]=((MI&65280)>>8|(MI&255)<<8)>>1}var hg=function(Q,A,I){for(var g=Q.length,B=0,C=new WI(A);B>i]=w}else for(D=new WI(g),B=0;B>15-Q[B]);return D},Kg=new eA(288);for(var hA=0;hA<144;++hA)Kg[hA]=8;for(var hA=144;hA<256;++hA)Kg[hA]=9;for(var hA=256;hA<280;++hA)Kg[hA]=7;for(var hA=280;hA<288;++hA)Kg[hA]=8;var QC=new eA(32);for(var hA=0;hA<32;++hA)QC[hA]=5;var lo=hg(Kg,9,1),po=hg(QC,5,1),tQ=function(Q){for(var A=Q[0],I=1;IA&&(A=Q[I]);return A},gI=function(Q,A,I){var g=A/8|0;return(Q[g]|Q[g+1]<<8)>>(A&7)&I},HQ=function(Q,A){var I=A/8|0;return(Q[I]|Q[I+1]<<8|Q[I+2]<<16)>>(A&7)},BC=function(Q){return(Q+7)/8|0},zI=function(Q,A,I){return(A==null||A<0)&&(A=0),(I==null||I>Q.length)&&(I=Q.length),new eA(Q.subarray(A,I))},fo=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],uA=function(Q,A,I){var g=new Error(A||fo[Q]);if(g.code=Q,Error.captureStackTrace&&Error.captureStackTrace(g,uA),!I)throw g;return g},CC=function(Q,A,I,g){var B=Q.length,C=g?g.length:0;if(!B||A.f&&!A.l)return I||new eA(0);var E=!I,D=E||A.i!=2,i=A.i;E&&(I=new eA(B*3));var w=function(NA){var wA=I.length;if(NA>wA){var GA=new eA(Math.max(wA*2,NA));GA.set(I),I=GA}},s=A.f||0,o=A.p||0,y=A.b||0,h=A.l,k=A.d,R=A.m,F=A.n,a=B*8;do{if(!h){s=gI(Q,o,1);var S=gI(Q,o+1,3);if(o+=3,S)if(S==1)h=lo,k=po,R=9,F=5;else if(S==2){var U=gI(Q,o,31)+257,J=gI(Q,o+10,15)+4,t=U+gI(Q,o+5,31)+1;o+=14;for(var H=new eA(t),K=new eA(19),Y=0;Y>4;if(M<16)H[Y++]=M;else{var p=0,m=0;for(M==16?(m=3+gI(Q,o,3),o+=2,p=H[Y-1]):M==17?(m=3+gI(Q,o,7),o+=3):M==18&&(m=11+gI(Q,o,127),o+=7);m--;)H[Y++]=p}}var IA=H.subarray(0,U),X=H.subarray(U);R=tQ(IA),F=tQ(X),h=hg(IA,R,1),k=hg(X,F,1)}else uA(1);else{var M=BC(o)+4,c=Q[M-4]|Q[M-3]<<8,N=M+c;if(N>B){i&&uA(0);break}D&&w(y+c),I.set(Q.subarray(M,N),y),A.b=y+=c,A.p=o=N*8,A.f=s;continue}if(o>a){i&&uA(0);break}}D&&w(y+131072);for(var EA=(1<>4;if(o+=p&15,o>a){i&&uA(0);break}if(p||uA(2),W<256)I[y++]=W;else if(W==256){gA=o,h=null;break}else{var u=W-254;if(W>264){var Y=W-257,b=_B[Y];u=gI(Q,o,(1<>4;T||uA(3),o+=T&15;var X=xo[f];if(f>3){var b=$B[f];X+=HQ(Q,o)&(1<a){i&&uA(0);break}D&&w(y+131072);var aA=y+u;if(y>>0},LQ=function(Q,A){return QI(Q,A)+QI(Q,A+4)*4294967296},Po=function(Q){(Q[0]!=31||Q[1]!=139||Q[2]!=8)&&uA(6,"invalid gzip data");var A=Q[3],I=10;A&4&&(I+=(Q[10]|Q[11]<<8)+2);for(var g=(A>>3&1)+(A>>4&1);g>0;g-=!Q[I++]);return I+(A&2)},YQ=function(){function Q(A,I){typeof A=="function"&&(I=A,A={}),this.ondata=I;var g=A&&A.dictionary&&A.dictionary.subarray(-32768);this.s={i:0,b:g?g.length:0},this.o=new eA(32768),this.p=new eA(0),g&&this.o.set(g)}return Q.prototype.e=function(A){if(this.ondata||uA(5),this.d&&uA(4),!this.p.length)this.p=A;else if(A.length){var I=new eA(this.p.length+A.length);I.set(this.p),I.set(A,this.p.length),this.p=I}},Q.prototype.c=function(A){this.s.i=+(this.d=A||!1);var I=this.s.b,g=CC(this.p,this.s,this.o);this.ondata(zI(g,I,this.s.b),this.d),this.o=zI(g,this.s.b-32768),this.s.b=this.o.length,this.p=zI(this.p,this.s.p/8|0),this.s.p&=7},Q.prototype.push=function(A,I){this.e(A),this.c(I)},Q}();function uo(Q,A){return CC(Q,{i:2},A&&A.out,A&&A.dictionary)}var To=function(){function Q(A,I){this.v=1,this.r=0,YQ.call(this,A,I)}return Q.prototype.push=function(A,I){if(YQ.prototype.e.call(this,A),this.r+=A.length,this.v){var g=this.p.subarray(this.v-1),B=g.length>3?Po(g):4;if(B>g.length){if(!I)return}else this.v>1&&this.onmember&&this.onmember(this.r-g.length);this.p=g.subarray(B),this.v=0}YQ.prototype.c.call(this,I),this.s.f&&!this.s.l&&!I&&(this.v=BC(this.s.p)+9,this.s={i:0},this.o=new eA(0),this.push(new eA(0),I))},Q}(),lQ=typeof TextDecoder<"u"&&new TextDecoder,Oo=0;try{lQ.decode(bo,{stream:!0}),Oo=1}catch{}var mo=function(Q){for(var A="",I=0;;){var g=Q[I++],B=(g>127)+(g>223)+(g>239);if(I+B>Q.length)return{s:A,r:zI(Q,I-1)};B?B==3?(g=((g&15)<<18|(Q[I++]&63)<<12|(Q[I++]&63)<<6|Q[I++]&63)-65536,A+=String.fromCharCode(55296|g>>10,56320|g&1023)):B&1?A+=String.fromCharCode((g&31)<<6|Q[I++]&63):A+=String.fromCharCode((g&15)<<12|(Q[I++]&63)<<6|Q[I++]&63):A+=String.fromCharCode(g)}};function Zo(Q,A){if(A){for(var I="",g=0;g65558)&&uA(13);var B=GI(Q,g+8);if(!B)return{};var C=QI(Q,g+16),E=C==4294967295||B==65535;if(E){var D=QI(Q,g-12);E=QI(Q,D)==101075792,E&&(B=QI(Q,D+32),C=QI(Q,D+48))}for(var i=A&&A.filter,w=0;w(Q.PLY="ply",Q.SPZ="spz",Q.SPLAT="splat",Q.KSPLAT="ksplat",Q.PCSOGS="pcsogs",Q.PCSOGSZIP="pcsogszip",Q.RAD="rad",Q))(yA||{});const eg={rgbMin:0,rgbMax:1,lnScaleMin:fA,lnScaleMax:bA,sh1Max:1,sh2Max:1,sh3Max:1,lodOpacity:!1},Bs=Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_SPLAT_ENCODING:eg,LN_SCALE_MAX:bA,LN_SCALE_MIN:fA,LN_SCALE_ZERO:EC,SCALE_MAX:zo,SCALE_MIN:vo,SCALE_ZERO:pI,SPLAT_TEX_DEPTH:iC,SPLAT_TEX_DEPTH_BITS:DC,SPLAT_TEX_DEPTH_MASK:Is,SPLAT_TEX_HEIGHT:WA,SPLAT_TEX_HEIGHT_BITS:gB,SPLAT_TEX_HEIGHT_MASK:As,SPLAT_TEX_LAYER_BITS:_o,SPLAT_TEX_MIN_HEIGHT:QB,SPLAT_TEX_WIDTH:P,SPLAT_TEX_WIDTH_BITS:IB,SPLAT_TEX_WIDTH_MASK:$o,SplatFileType:yA,USE_COMPILED_PARSER_FUNCTION:Qs,WASM_SPLAT_SORT:gs},Symbol.toStringTag,{value:"Module"}));function OI(Q){return Q==="bool"||Q==="bvec2"||Q==="bvec3"||Q==="bvec4"}function mI(Q){return Q==="int"||Q==="uint"||Q==="float"}function lA(Q){return Q==="int"||Q==="ivec2"||Q==="ivec3"||Q==="ivec4"}function pA(Q){return Q==="uint"||Q==="uvec2"||Q==="uvec3"||Q==="uvec4"}function rg(Q){return Q==="float"||Q==="vec2"||Q==="vec3"||Q==="vec4"}function wC(Q){return Q==="mat2"||Q==="mat2x2"||Q==="mat2x3"||Q==="mat2x4"||Q==="mat3"||Q==="mat3x2"||Q==="mat3x3"||Q==="mat3x4"||Q==="mat4"||Q==="mat4x2"||Q==="mat4x3"||Q==="mat4x4"}function LI(Q){return rg(Q)||wC(Q)}function Bg(Q){return Q==="vec2"||Q==="ivec2"||Q==="uvec2"}function Cg(Q){return Q==="vec3"||Q==="ivec3"||Q==="uvec3"}function ng(Q){return Q==="vec4"||Q==="ivec4"||Q==="uvec4"}function Cs(Q){return Bg(Q)||Cg(Q)||ng(Q)}function rI(Q){return Q==="mat2"||Q==="mat2x2"}function nI(Q){return Q==="mat3"||Q==="mat3x3"}function dI(Q){return Q==="mat4"||Q==="mat4x4"}function oC(Q){switch(Q){case"vec2":return"float";case"vec3":return"float";case"vec4":return"float";case"ivec2":return"int";case"ivec3":return"int";case"ivec4":return"int";case"uvec2":return"uint";case"uvec3":return"uint";case"uvec4":return"uint";default:throw new Error(`Invalid vector type: ${Q}`)}}function sC(Q){switch(Q){case"vec2":case"ivec2":case"uvec2":return 2;case"vec3":case"ivec3":case"uvec3":return 3;case"vec4":case"ivec4":case"uvec4":return 4;default:throw new Error(`Invalid vector type: ${Q}`)}}function Es(Q){if(mI(Q))return"float";if(Bg(Q))return"vec2";if(Cg(Q))return"vec3";if(ng(Q))return"vec4";throw new Error(`Invalid vector type: ${Q}`)}function GC(Q){if(mI(Q))return"uint";if(Bg(Q))return"uvec2";if(Cg(Q))return"uvec3";if(ng(Q))return"uvec4";throw new Error(`Invalid vector type: ${Q}`)}function Ds(Q){if(mI(Q))return"int";if(Bg(Q))return"ivec2";if(Cg(Q))return"ivec3";if(ng(Q))return"ivec4";throw new Error(`Invalid vector type: ${Q}`)}function yC(Q){if(typeof Q=="string")return Q;if(typeof Q=="object"&&Q.type)return Q.type;throw new Error(`Invalid DynoType: ${String(Q)}`)}function JA(Q){return Math.trunc(Q).toString()}function UA(Q){return`${Math.max(0,Math.trunc(Q)).toString()}u`}function AA(Q){return Q===Number.POSITIVE_INFINITY?"INFINITY":Q===Number.NEGATIVE_INFINITY?"-INFINITY":Number.isInteger(Q)?Q.toFixed(1):Q.toString()}function CA(Q){return Q instanceof HI?Q.type:Q.dynoOut().type}class HI{constructor(A){this.__isDynoValue=!0,this.type=A}}class V extends HI{constructor(A,I){super(A.outTypes[I]),this.dyno=A,this.key=I}}class _I extends HI{constructor(A,I){super(A),this.literal=I}getLiteral(){return this.literal}}function Wg(Q,A){return new _I(Q,A)}class hC extends _I{constructor(A,I){super(A,""),this.value=I}getLiteral(){const{type:A,value:I}=this;switch(A){case"bool":return I?"true":"false";case"uint":return UA(I);case"int":return JA(I);case"float":return AA(I);case"bvec2":{const g=I;return`bvec2(${g[0]}, ${g[1]})`}case"uvec2":{if(I instanceof G.Vector2)return`uvec2(${UA(I.x)}, ${UA(I.y)})`;const g=I;return`uvec2(${UA(g[0])}, ${UA(g[1])})`}case"ivec2":{if(I instanceof G.Vector2)return`ivec2(${JA(I.x)}, ${JA(I.y)})`;const g=I;return`ivec2(${JA(g[0])}, ${JA(g[1])})`}case"vec2":{if(I instanceof G.Vector2)return`vec2(${AA(I.x)}, ${AA(I.y)})`;const g=I;return`vec2(${AA(g[0])}, ${AA(g[1])})`}case"bvec3":{const g=I;return`bvec3(${g[0]}, ${g[1]}, ${g[2]})`}case"uvec3":{if(I instanceof G.Vector3)return`uvec3(${UA(I.x)}, ${UA(I.y)}, ${UA(I.z)})`;const g=I;return`uvec3(${UA(g[0])}, ${UA(g[1])}, ${UA(g[2])})`}case"ivec3":{if(I instanceof G.Vector3)return`ivec3(${JA(I.x)}, ${JA(I.y)}, ${JA(I.z)})`;const g=I;return`ivec3(${JA(g[0])}, ${JA(g[1])}, ${JA(g[2])})`}case"vec3":{if(I instanceof G.Vector3)return`vec3(${AA(I.x)}, ${AA(I.y)}, ${AA(I.z)})`;const g=I;return`vec3(${AA(g[0])}, ${AA(g[1])}, ${AA(g[2])})`}case"bvec4":{const g=I;return`bvec4(${g[0]}, ${g[1]}, ${g[2]}, ${g[3]})`}case"uvec4":{if(I instanceof G.Vector4)return`uvec4(${UA(I.x)}, ${UA(I.y)}, ${UA(I.z)}, ${UA(I.w)})`;const g=I;return`uvec4(${UA(g[0])}, ${UA(g[1])}, ${UA(g[2])}, ${UA(g[3])})`}case"ivec4":{if(I instanceof G.Vector4)return`ivec4(${JA(I.x)}, ${JA(I.y)}, ${JA(I.z)}, ${JA(I.w)})`;const g=I;return`ivec4(${JA(g[0])}, ${JA(g[1])}, ${JA(g[2])}, ${JA(g[3])})`}case"vec4":{if(I instanceof G.Vector4)return`vec4(${AA(I.x)}, ${AA(I.y)}, ${AA(I.z)}, ${AA(I.w)})`;if(I instanceof G.Quaternion)return`vec4(${AA(I.x)}, ${AA(I.y)}, ${AA(I.z)}, ${AA(I.w)})`;const g=I;return`vec4(${AA(g[0])}, ${AA(g[1])}, ${AA(g[2])}, ${AA(g[3])})`}case"mat2":case"mat2x2":{const g=I,B=g instanceof G.Matrix2?g.elements:I,C=new Array(4).fill(0).map((E,D)=>AA(B[D]));return`${A}(${C.join(", ")})`}case"mat2x3":{const g=I,B=new Array(6).fill(0).map((C,E)=>AA(g[E]));return`${A}(${B.join(", ")})`}case"mat2x4":{const g=I,B=new Array(8).fill(0).map((C,E)=>AA(g[E]));return`${A}(${B.join(", ")})`}case"mat3":case"mat3x3":{const g=I,B=g instanceof G.Matrix3?g.elements:I,C=new Array(9).fill(0).map((E,D)=>AA(B[D]));return`${A}(${C.join(", ")})`}case"mat3x2":{const g=I,B=new Array(6).fill(0).map((C,E)=>AA(g[E]));return`${A}(${B.join(", ")})`}case"mat3x4":{const g=I,B=new Array(12).fill(0).map((C,E)=>AA(g[E]));return`${A}(${B.join(", ")})`}case"mat4":case"mat4x4":{const g=I,B=g instanceof G.Matrix4?g.elements:I,C=new Array(16).fill(0).map((E,D)=>AA(B[D]));return`${A}(${C.join(", ")})`}case"mat4x2":{const g=I,B=new Array(8).fill(0).map((C,E)=>AA(g[E]));return`${A}(${B.join(", ")})`}case"mat4x3":{const g=I,B=new Array(12).fill(0).map((C,E)=>AA(g[E]));return`${A}(${B.join(", ")})`}default:throw new Error(`Type not implemented: ${String(A)}`)}}}function v(Q,A){return new hC(Q,A)}function wg(Q){const A=String(Q);if(OI(Q))return`${A}(false)`;if(LI(Q))return`${A}(0.0)`;if(lA(Q))return`${A}(0)`;if(pA(Q))return`${A}(0u)`;throw new Error(`Type not implemented: ${A}`)}function is(Q){const A=String(Q);if(OI(Q))return`${A}(true)`;if(LI(Q))return`${A}(1.0)`;if(lA(Q))return`${A}(1)`;if(pA(Q))return`${A}(1u)`;throw new Error(`Type not implemented: ${A}`)}function ws(Q){const A=String(Q);if(OI(Q))return`${A}(true)`;if(LI(Q))return`${A}(-1.0)`;if(lA(Q))return`${A}(-1)`;if(pA(Q))return`${A}(0xFFFFFFFFu)`;throw new Error(`Type not implemented: ${A}`)}const qB=" ";class RC{constructor({indent:A}={}){this.globals=new Set,this.statements=[],this.uniforms={},this.declares=new Set,this.updaters=[],this.sequence=0,this.indent=qB,this.indent=A??qB}nextSequence(){return this.sequence++}}class d{constructor({inTypes:A,outTypes:I,inputs:g,update:B,globals:C,statements:E,generate:D}){this.inTypes=A??{},this.outTypes=I??{},this.inputs=g??{},this.update=B,this.globals=C,this.statements=E,this.generate=D??(({inputs:i,outputs:w,compile:s})=>{var o,y;return{globals:(o=this.globals)==null?void 0:o.call(this,{inputs:i,outputs:w,compile:s}),statements:(y=this.statements)==null?void 0:y.call(this,{inputs:i,outputs:w,compile:s})}})}get outputs(){const A={};for(const I in this.outTypes)A[I]=new V(this,I);return A}apply(A){return Object.assign(this.inputs,A),this.outputs}compile({inputs:A,outputs:I,compile:g}){const B=[`// ${this.constructor.name}(${Object.values(A).join(", ")}) => (${Object.values(I).join(", ")})`],C=[];for(const w in I){const s=I[w];s&&!g.declares.has(s)&&(g.declares.add(s),C.push(w))}const{globals:E,statements:D,uniforms:i}=this.generate({inputs:A,outputs:I,compile:g});for(const w of E??[])g.globals.add(w);for(const w in i)g.uniforms[w]=i[w];this.update&&g.updaters.push(this.update);for(const w of C){const s=I[w];s&&(g.uniforms[s]||B.push(`${BB(s,this.outTypes[w])};`))}return D!=null&&D.length&&(B.push("{"),B.push(...D.map(w=>g.indent+w)),B.push("}")),B}}class hI extends d{constructor({inTypes:A,outTypes:I,inputs:g,update:B,globals:C,construct:E}){super({inTypes:A,outTypes:I,inputs:g,update:B,globals:C,generate:D=>this.generateBlock(D)}),this.construct=E}generateBlock({inputs:A,outputs:I,compile:g}){var k,R;const B={},C={};for(const F in A)A[F]!=null&&(B[F]=new _I(this.inTypes[F],A[F]));for(const F in I)I[F]!=null&&(C[F]=new HI(this.outTypes[F]));const E={roots:[]},D=this.construct(B,C,E);for(const F of((k=this.globals)==null?void 0:k.call(this,{inputs:A,outputs:I,compile:g}))??[])g.globals.add(F);const i=[],w=new Map;function s(F,a,S){let M=w.get(F);if(!M){M={sequence:g.nextSequence(),outNames:new Map,newOuts:new Set},w.set(F,M);for(const c in F.inputs){let N=F.inputs[c];for(;N;){if(N instanceof HI){N instanceof V&&s(N.dyno,N.key);break}if(typeof N.dynoOut!="function")throw new Error(`dynoOut is not a function for ${N.constructor.name}`);N=N.dynoOut()}}i.push(F)}a&&(S||M.newOuts.add(a),M.outNames.set(a,S??`${a}_${M.sequence}`))}for(const F of E.roots)s(F);for(const F in C){let a=(D==null?void 0:D[F])??C[F];for(;a;){if(a instanceof HI){a instanceof V&&s(a.dyno,a.key,I[F]);break}a=a.dynoOut()}C[F]=a}const o=[];for(const F of i){const a={},S={};for(const N in F.inputs){let U=F.inputs[N];for(;U;){if(U instanceof HI){if(U instanceof _I)a[N]=U.getLiteral();else if(U instanceof V){const J=(R=w.get(U.dyno))==null?void 0:R.outNames.get(U.key);if(!J)throw new Error(`Source not found for ${U.dyno.constructor.name}.${U.key}`);a[N]=J}break}U=U.dynoOut()}}const M=w.get(F)??{outNames:new Map};for(const[N,U]of M.outNames.entries())S[N]=U;const c=F.compile({inputs:a,outputs:S,compile:g});o.push(c)}const y=[];for(const F in I)C[F]instanceof _I&&y.push(`${I[F]} = ${C[F].getLiteral()};`);return y.length>0&&o.push(y),{statements:o.flatMap((F,a)=>a===0?F:["",...F])}}}function cA(Q,A,I,{update:g,globals:B}={}){return new hI({inTypes:Q,outTypes:A,construct:I,update:g,globals:B})}function EQ({inTypes:Q,outTypes:A,inputs:I,update:g,globals:B,statements:C,generate:E}){return new d({inTypes:Q,outTypes:A,inputs:I,update:g,globals:B,statements:C,generate:E})}function BB(Q,A,I){const g=typeof A=="string"?A:A.type;if(!g)throw new Error(`Invalid DynoType: ${String(A)}`);return`${g} ${Q}${I!=null?`[${I}]`:""}`}function z(Q){var C;let A=!1;const I=Q.split(` -`).map(E=>{const D=E.trimEnd();return A?D:D.length>0?(A=!0,D):null}).filter(E=>E!=null);for(;I.length>0&&I[I.length-1].length===0;)I.pop();if(I.length===0)return[];const g=(C=I[0].match(/^\s*/))==null?void 0:C[0];if(!g)return I;const B=new RegExp(`^${g}`);return I.map(E=>E.replace(B,""))}function oA(Q){return z(Q).join(` -`)}class e extends d{constructor({a:A,outKey:I,outTypeFunc:g}){const B={a:CA(A)},C=g(CA(A)),E={[I]:C};super({inTypes:B,outTypes:E,inputs:{a:A}}),this.outKey=I}dynoOut(){return new V(this,this.outKey)}}class DA extends d{constructor({a:A,b:I,outKey:g,outTypeFunc:B}){const C={a:CA(A),b:CA(I)},E=B(CA(A),CA(I)),D={[g]:E};super({inTypes:C,outTypes:D,inputs:{a:A,b:I}}),this.outKey=g}dynoOut(){return new V(this,this.outKey)}}class ZI extends d{constructor({a:A,b:I,c:g,outKey:B,outTypeFunc:C}){const E={a:CA(A),b:CA(I),c:CA(g)},D=C(CA(A),CA(I),CA(g)),i={[B]:D};super({inTypes:E,outTypes:i,inputs:{a:A,b:I,c:g}}),this.outKey=B}dynoOut(){return new V(this,this.outKey)}}const kC=Number.parseInt(G.REVISION),FC=kC>=179,dg=new Float32Array(1),DQ=new Uint32Array(dg.buffer),CB="Float16Array"in globalThis,Rg=CB?new globalThis.Float16Array(1):null,aC=new Uint16Array(Rg==null?void 0:Rg.buffer);function SC(Q){const A=Math.sqrt(Q.reduce((I,g)=>I+g*g,0));return Q.map(I=>I/A)}function Tg(Q){return dg[0]=Q,DQ[0]}function Og(Q){return DQ[0]=Q,dg[0]}const TA=CB?os:ss,FA=CB?Gs:ys;function os(Q){return Rg[0]=Q,aC[0]}function ss(Q){dg[0]=Q;const A=DQ[0],I=A>>31&1,g=A>>23&255,B=A&8388607,C=I<<15;if(g===255)return B!==0?C|32767:C|31744;const E=g-127+15;if(E>=31)return C|31744;if(E<=0){if(E<-10)return C;const i=(B|8388608)>>1-E+13;return C|i}const D=B>>13;return C|E<<10|D}function Gs(Q){return aC[0]=Q,Rg[0]}function ys(Q){const A=Q>>15&1,I=Q>>10&31,g=Q&1023;let B;if(I===0)if(g===0)B=A<<31;else{let C=g,E=-14;for(;(C&1024)===0;)C<<=1,E--;C&=1023;const D=E+127,i=C<<13;B=A<<31|D<<23|i}else if(I===31)g===0?B=A<<31|2139095040:B=A<<31|2143289344;else{const C=I-15+127,E=g<<13;B=A<<31|C<<23|E}return DQ[0]=B,dg[0]}function jA(Q){return Math.max(0,Math.min(255,Math.round(Q*255)))}function kg(Q){return Math.max(-127,Math.min(127,Math.round(Q*127)))}function NC(Q){return Q/255}function cC(Q){return Q/127}class hs{constructor({asyncFetch:A,dispose:I,maxItems:g=5}){this.asyncFetch=A,this.dispose=I,this.maxItems=g,this.items=[],this.pending=new Map}has(A){return this.items.some(I=>I.key===A)}getImmediate(A){const I=this.items.findIndex(g=>g.key===A);if(I>=0){const g=this.items.splice(I,1)[0];return this.items.push(g),g.data}}async getFetch(A){const I=this.getImmediate(A);if(I!==void 0)return I;let g=this.pending.get(A);return g||(g=this.asyncFetch(A).then(B=>{for(this.pending.delete(A),this.items.push({key:A,data:B});this.items.length>this.maxItems;){const C=this.items.shift();C&&this.dispose&&this.dispose(C.data)}return B}),this.pending.set(A,g),g)}}function Rs(Q,A){const I=Object.entries(Q).map(([g,B])=>[g,A(B,g)]);return Object.fromEntries(I)}function ks(Q,A){const I=Object.entries(Q).map(([g,B])=>[g,A(B,g)]).filter(([g,B])=>B!==void 0);return Object.fromEntries(I)}function EB(Q){const A=[],I=new Set;function g(B){B&&typeof B=="object"&&!I.has(B)&&(I.add(B),B instanceof ArrayBuffer?A.push(B):ArrayBuffer.isView(B)?A.push(B.buffer):Array.isArray(B)?B.forEach(g):Object.values(B).forEach(g))}return g(Q),A}function pQ(Q,A){return new Array(Q).fill(null).map((I,g)=>A(g))}class MC{constructor({allocate:A,dispose:I,valid:g}){this.items=[],this.allocate=A,this.dispose=I,this.valid=g}alloc(A){for(;;){const I=this.items.pop();if(!I)break;if(this.valid(I,A))return I;this.dispose&&this.dispose(I)}return this.allocate(A)}free(A){this.items.push(A)}disposeAll(){let A;for(A=this.items.pop();A;)this.dispose&&this.dispose(A),A=this.items.pop()}}function fQ(Q,A,I,g,B,C,E,D,i,w,s,o,y,h,k,R){const F=A*4,[a,S]=Q;a[F]=Tg(I),a[F+1]=Tg(g),a[F+2]=Tg(B),a[F+3]=TA(y),S[F]=TA(h)|TA(k)<<16,S[F+1]=TA(R)|TA(Math.log(C))<<16,S[F+2]=TA(Math.log(E))|TA(Math.log(D))<<16,S[F+3]=dC(i,w,s,o)}function jg(Q,A){const I=DB,g=A*4,[B,C]=Q;return I.center.x=Og(B[g]),I.center.y=Og(B[g+1]),I.center.z=Og(B[g+2]),I.opacity=FA(B[g+3]&65535),I.color.r=FA(C[g]&65535),I.color.g=FA(C[g]>>>16),I.color.b=FA(C[g+1]&65535),I.scales.x=Math.exp(FA(C[g+1]>>>16)),I.scales.y=Math.exp(FA(C[g+2]&65535)),I.scales.z=Math.exp(FA(C[g+2]>>>16)),qC(C[g+3],I.quaternion),I}function vg(Q,A,I,g,B,C,E,D,i,w,s,o,y,h,k,R,F){const a=(F==null?void 0:F.rgbMin)??0,M=((F==null?void 0:F.rgbMax)??1)-a,c=jA((h-a)/M),N=jA((k-a)/M),U=jA((R-a)/M),J=jA(F!=null&&F.lodOpacity?.5*y:y),t=oB(JC.set(i,w,s,o)),H=t&255,K=t>>>8&255,Y=t>>>16&255,L=(F==null?void 0:F.lnScaleMin)??fA,n=254/(((F==null?void 0:F.lnScaleMax)??bA)-L),r=C>>8&255,w=E>>>16&255,s=A*4;Q[s+2]=Q[s+2]&65535|D<<16|i<<24,Q[s+3]=Q[s+3]&16777215|w<<24}function Ns(Q,A,I,g,B,C,E){const D=(E==null?void 0:E.rgbMin)??0,w=((E==null?void 0:E.rgbMax)??1)-D,s=jA((I-D)/w),o=jA((g-D)/w),y=jA((B-D)/w),h=jA(E!=null&&E.lodOpacity?.5*C:C),k=A*4;Q[k]=s|o<<8|y<<16|h<<24}function cs(Q,A,I,g,B,C){const E=(C==null?void 0:C.rgbMin)??0,i=((C==null?void 0:C.rgbMax)??1)-E,w=jA((I-E)/i),s=jA((g-E)/i),o=jA((B-E)/i),y=A*4;Q[y]=w|s<<8|o<<16|Q[y]&4278190080}function Ms(Q,A,I){const g=jA(I),B=A*4;Q[B]=Q[B]&16777215|g<<24}const Js=new G.Vector3,Us=new G.Vector3,ts=new G.Quaternion,Hs=new G.Color,DB={center:Js,scales:Us,quaternion:ts,color:Hs,opacity:0};function Ng(Q,A,I){const g=DB,B=A*4,C=Q[B],E=Q[B+1],D=Q[B+2],i=Q[B+3],w=(I==null?void 0:I.rgbMin)??0,o=((I==null?void 0:I.rgbMax)??1)-w;g.color.set(w+(C&255)/255*o,w+(C>>>8&255)/255*o,w+(C>>>16&255)/255*o),g.opacity=(C>>>24&255)/255,I!=null&&I.lodOpacity&&(g.opacity=2*g.opacity),g.center.set(FA(E&65535),FA(E>>>16&65535),FA(D&65535));const y=(I==null?void 0:I.lnScaleMin)??fA,k=(((I==null?void 0:I.lnScaleMax)??bA)-y)/254,R=i&255;g.scales.x=R===0?0:Math.exp(y+(R-1)*k);const F=i>>>8&255;g.scales.y=F===0?0:Math.exp(y+(F-1)*k);const a=i>>>16&255;g.scales.z=a===0?0:Math.exp(y+(a-1)*k);const S=D>>>16&65535|i>>>8&16711680;return nC(S,g.quaternion),g}function BA(Q){const A=P,I=Math.max(QB,Math.min(WA,Math.ceil(Q/A))),g=Math.ceil(Q/(A*I)),B=A*I*g;return{width:A,height:I,depth:g,maxSplats:B}}function Ls(Q){const A=P,I=Math.max(QB,Math.min(WA,Math.ceil(Q/A))),g=Math.ceil(Q/(A*I));return A*I*g}function cg(){return navigator.platform.toLowerCase().startsWith("win")?!1:navigator.maxTouchPoints>0?!0:/Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test(navigator.userAgent)}function iQ(){return/Android/.test(navigator.userAgent)||/Tizen/.test(navigator.userAgent)}function wQ(){return!!navigator.xr&&/Oculus/.test(navigator.userAgent)}function UC(){return wQ()&&/Quest 2/.test(navigator.userAgent)}function Ig(){return/iPhone|iPad/.test(navigator.userAgent)}function iB(){return!!navigator.xr&&Ig()&&/Safari/.test(navigator.userAgent)&&cg()}function tC(Q,A,I){const g=new Uint8Array(A*4);for(let B=0;BI!==void 0))}const LC=oA(` - precision highp float; - - in vec3 position; - - void main() { - gl_Position = vec4(position.xy, 0.0, 1.0); - } -`);function YC(Q){const A=new G.Vector3;for(const I of Q)A.add(I);return A.divideScalar(Q.length)}function KC(Q){if(Q.length===0)return new G.Quaternion;const A=Q[0].clone();for(let I=1;I=g)}function rC(Q,A){const[I,g]=[new G.Vector3,new G.Quaternion],[B,C]=[new G.Vector3,new G.Quaternion];Q.decompose(I,g,new G.Vector3),A.decompose(B,C,new G.Vector3);const E=I.distanceTo(B),D=Math.abs(g.dot(C));return{distance:E,coorient:D}}function zg({matrix1:Q,matrix2:A,maxDistance:I,minCoorient:g}){const{distance:B,coorient:C}=rC(Q,A);return B<=I&&(g==null||C>=g)}function rs(Q,A=.001){return Math.abs(Q)>24,g=Q<<16>>24,B=Q<<8>>24;A.set(I/127,g/127,B/127,0);const C=A.x*A.x+A.y*A.y+A.z*A.z;return A.w=Math.sqrt(Math.max(0,1-C)),A}const qs=new G.Quaternion,bQ=new G.Vector3;function oB(Q){const A=qs.copy(Q).normalize();A.w<0&&A.set(-A.x,-A.y,-A.z,-A.w);const I=2*Math.acos(A.w),g=Math.sqrt(A.x*A.x+A.y*A.y+A.z*A.z),B=g<1e-6?bQ.set(1,0,0):bQ.set(A.x,A.y,A.z).divideScalar(g),C=Math.abs(B.x)+Math.abs(B.y)+Math.abs(B.z);let E=B.x/C,D=B.y/C;if(B.z<0){const h=E;E=(1-Math.abs(D))*(E>=0?1:-1),D=(1-Math.abs(h))*(D>=0?1:-1)}const i=E*.5+.5,w=D*.5+.5,s=Math.round(i*255),o=Math.round(w*255);return Math.round(I*(255/Math.PI))<<16|o<<8|s}function nC(Q,A){const I=Q&255,g=Q>>>8&255,B=Q>>>16&255,C=I/255,E=g/255;let D=(C-.5)*2,i=(E-.5)*2;const w=1-(Math.abs(D)+Math.abs(i)),s=Math.max(-w,0);D+=D>=0?-s:s,i+=i>=0?-s:s;const o=bQ.set(D,i,w).normalize(),h=B/255*Math.PI*.5,k=Math.sin(h),R=Math.cos(h);return A.set(o.x*k,o.y*k,o.z*k,R),A}function xs(Q){const A=Q.clone().normalize(),I=2*(A.w*A.x+A.y*A.z),g=1-2*(A.x*A.x+A.y*A.y),B=Math.atan2(I,g),C=2*(A.w*A.y-A.z*A.x),E=Math.abs(C)>=1?Math.sign(C)*(Math.PI/2):Math.asin(C),D=2*(A.w*A.z+A.x*A.y),i=1-2*(A.y*A.y+A.z*A.z),w=Math.atan2(D,i),s=(B+Math.PI)/(2*Math.PI),o=(E+Math.PI)/(2*Math.PI),y=(w+Math.PI)/(2*Math.PI),h=Math.round(s*255),k=Math.round(o*255);return Math.round(y*255)<<16|k<<8|h}function ls(Q,A){const I=Q&255,g=Q>>>8&255,B=Q>>>16&255,C=I/255,E=g/255,D=B/255,i=C*(2*Math.PI)-Math.PI,w=E*(2*Math.PI)-Math.PI,s=D*(2*Math.PI)-Math.PI,o=Math.cos(i*.5),y=Math.sin(i*.5),h=Math.cos(w*.5),k=Math.sin(w*.5),R=Math.cos(s*.5),F=Math.sin(s*.5);return A.w=o*h*R+y*k*F,A.x=y*h*R-o*k*F,A.y=o*k*R+y*h*F,A.z=o*h*F-y*k*R,A.normalize(),A}function dC(Q,A,I,g){const B=Math.sqrt(Q*Q+A*A+I*I+g*g),C=(g<0?-Q:Q)/B,E=(g<0?-A:A)/B,D=(g<0?-I:I)/B,i=(g<0?-g:g)/B,w=2*Math.acos(i),s=Math.sqrt(C*C+E*E+D*D),o=s<1e-6?1:C/s,y=s<1e-6?0:E/s,h=s<1e-6?0:D/s,k=Math.abs(o)+Math.abs(y)+Math.abs(h);let R=o/k,F=y/k;if(h<0){const U=R;R=(1-Math.abs(F))*(R>=0?1:-1),F=(1-Math.abs(U))*(F>=0?1:-1)}const a=R*.5+.5,S=F*.5+.5,M=Math.round(a*1023),c=Math.round(S*1023);return Math.round(w*(4095/Math.PI))<<20|c<<10|M}function qC(Q,A){const I=Q&1023,g=Q>>>10&1023,B=Q>>>20&4095,C=I/1023,E=g/1023;let D=(C-.5)*2,i=(E-.5)*2;const w=1-(Math.abs(D)+Math.abs(i)),s=Math.max(-w,0);D+=D>=0?-s:s,i+=i>=0?-s:s;const o=Math.sqrt(D*D+i*i+w*w),y=o<1e-6?0:D/o,h=o<1e-6?0:i/o,k=o<1e-6?0:w/o,F=B/4095*Math.PI*.5,a=Math.sin(F),S=Math.cos(F);return A.set(y*a,h*a,k*a,S),A}function lg(Q,A,I,g){const B=Math.round(Math.max(-127,Math.min(127,Q*127))),C=Math.round(Math.max(-127,Math.min(127,A*127))),E=Math.round(Math.max(-127,Math.min(127,I*127))),D=Math.round(Math.max(-127,Math.min(127,g*127)));return B&255|(C&255)<<8|(E&255)<<16|(D&255)<<24}function ps(Q,A,I,g){const C=63/((g==null?void 0:g.sh1Max)??1),E=A*2;for(let D=0;D<9;++D){const i=I[D]*C,w=Math.round(Math.max(-63,Math.min(63,i)))&127,s=D*7,o=s+7,y=Math.floor(s/32),h=s-y*32,k=w<y*32+32){const R=w>>>32-h&4294967295;Q[E+y+1]|=R}}}function fs(Q,A,I,g){const C=1/((g==null?void 0:g.sh2Max)??1);Q[A*4+0]=lg(I[0]*C,I[1]*C,I[2]*C,I[3]*C),Q[A*4+1]=lg(I[4]*C,I[5]*C,I[6]*C,I[7]*C),Q[A*4+2]=lg(I[8]*C,I[9]*C,I[10]*C,I[11]*C),Q[A*4+3]=lg(I[12]*C,I[13]*C,I[14]*C,0)}function bs(Q,A,I,g){const C=31/((g==null?void 0:g.sh3Max)??1),E=A*4;for(let D=0;D<21;++D){const i=I[D]*C,w=Math.round(Math.max(-31,Math.min(31,i)))&63,s=D*6,o=s+6,y=Math.floor(s/32),h=s-y*32,k=w<y*32+32){const R=w>>>32-h&4294967295;Q[E+y+1]|=R}}}function fI(Q,A,I){const g=Math.abs(Q),B=Math.abs(A),C=Math.abs(I),E=Math.max(g,B,C),D=Math.floor(Math.log2(E)),i=Math.max(0,Math.min(31,D+15)),w=2**(i-15)/255,s=Math.round(Math.max(0,Math.min(255,g/w))),o=Math.round(Math.max(0,Math.min(255,B/w))),y=Math.round(Math.max(0,Math.min(255,C/w))),h=i<<3|((Q<0?1:0)|(A<0?2:0)|(I<0?4:0));return s|o<<8|y<<16|h<<24}function Ps(Q){const A=DB.color,g=2**((Q>>>27&31)-15)/255,B=(Q&255)*g,C=(Q>>>8&255)*g,E=(Q>>>16&255)*g;return A.r=Q&16777216?-B:B,A.g=Q&33554432?-C:C,A.b=Q&67108864?-E:E,A}function us(Q,A,I){const g=A*4;for(let B=0;B<3;++B){const C=B*3;Q[g+B]=fI(I[C],I[C+1],I[C+2])}}function Ts(Q,A,I,g,B){const C=I*4;for(let E=0;E<3;++E){const D=E*3;Q[C+E]=fI(g[D],g[D+1],g[D+2])}Q[C+3]=fI(B[0],B[1],B[2]);for(let E=1;E<5;++E){const D=E*5;A[C+(E-1)]=fI(B[D],B[D+1],B[D+2])}}function Os(Q,A,I,g){const B=I*4;for(let C=0;C<4;++C){const E=C*3;Q[B+C]=fI(g[E],g[E+1],g[E+2])}for(let C=4;C<7;++C){const E=C*3;A[B+(C-4)]=fI(g[E],g[E+1],g[E+2])}}function xC(Q,A){const I=[];let g=0,B=null;const C=new To((i,w)=>{if(I.push(i),g+=i.length,w||g>=A){const s=new Uint8Array(g);let o=0;for(const y of I)s.set(y,o),o+=y.length;B=s.slice(0,A)}}),E=1024;let D=0;for(;B==null&&Dthis.onMessage(A)}makeMessageId(){return++this.messageIdNext}makeMessagePromiseId(){const A=this.makeMessageId(),I=new Promise((g,B)=>{this.messages[A]={resolve:g,reject:B}});return{id:A,promise:I}}onMessage(A){const{id:I,result:g,error:B}=A.data,C=this.messages[I];C&&(delete this.messages[I],B?C.reject(B):C.resolve(g))}async call(A,I){const{id:g,promise:B}=this.makeMessagePromiseId();return this.worker.postMessage({name:A,args:I,id:g},{transfer:EB(I)}),B}}let pC=4,_g=0;const fC=[],bC=[];async function Vs(){const Q=fC.shift();if(Q)return Q;if(_g{bC.push(A)})}function Xs(Q){if(_g>pC){_g-=1;return}const A=bC.shift();if(A){A(Q);return}fC.push(Q)}async function qI(Q){const A=await Vs();try{return await Q(A)}finally{Xs(A)}}const PC='(function(){"use strict";class a{static __wrap(A){A=A>>>0;const g=Object.create(a.prototype);return g.__wbg_ptr=A,IA.register(g,g.__wbg_ptr,g),g}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,IA.unregister(this),A}free(){const A=this.__destroy_into_raw();C.__wbg_chunkdecoder_free(A,0)}finish(){const A=this.__destroy_into_raw(),g=C.chunkdecoder_finish(A);if(g[2])throw w(g[1]);return w(g[0])}push(A){const g=C.chunkdecoder_push(this.__wbg_ptr,A);if(g[1])throw w(g[0])}}Symbol.dispose&&(a.prototype[Symbol.dispose]=a.prototype.free);class Z{static __wrap(A){A=A>>>0;const g=Object.create(Z.prototype);return g.__wbg_ptr=A,gA.register(g,g.__wbg_ptr,g),g}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,gA.unregister(this),A}free(){const A=this.__destroy_into_raw();C.__wbg_csplatarray_free(A,0)}bhatt_lod(A){C.csplatarray_bhatt_lod(this.__wbg_ptr,A)}has_lod(){return C.csplatarray_has_lod(this.__wbg_ptr)!==0}inject_rgba8(A){C.csplatarray_inject_rgba8(this.__wbg_ptr,A)}len(){return C.csplatarray_len(this.__wbg_ptr)>>>0}tiny_lod(A,g){C.csplatarray_tiny_lod(this.__wbg_ptr,A,g)}to_extsplats(){const A=C.csplatarray_to_extsplats(this.__wbg_ptr);if(A[2])throw w(A[1]);return w(A[0])}to_extsplats_lod(){const A=C.csplatarray_to_extsplats_lod(this.__wbg_ptr);if(A[2])throw w(A[1]);return w(A[0])}to_packedsplats(){const A=C.csplatarray_to_packedsplats(this.__wbg_ptr);if(A[2])throw w(A[1]);return w(A[0])}to_packedsplats_lod(){const A=C.csplatarray_to_packedsplats_lod(this.__wbg_ptr);if(A[2])throw w(A[1]);return w(A[0])}get maxShDegree(){return C.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr)>>>0}get numSplats(){return C.__wbg_get_csplatarray_numSplats(this.__wbg_ptr)>>>0}set maxShDegree(A){C.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr,A)}set numSplats(A){C.__wbg_set_csplatarray_numSplats(this.__wbg_ptr,A)}}Symbol.dispose&&(Z.prototype[Symbol.dispose]=Z.prototype.free);class T{static __wrap(A){A=A>>>0;const g=Object.create(T.prototype);return g.__wbg_ptr=A,QA.register(g,g.__wbg_ptr,g),g}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,QA.unregister(this),A}free(){const A=this.__destroy_into_raw();C.__wbg_gsplatarray_free(A,0)}get maxShDegree(){return C.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr)>>>0}get numSplats(){return C.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr)>>>0}bhatt_lod(A){C.gsplatarray_bhatt_lod(this.__wbg_ptr,A)}has_lod(){return C.gsplatarray_has_lod(this.__wbg_ptr)!==0}inject_rgba8(A){C.gsplatarray_inject_rgba8(this.__wbg_ptr,A)}len(){return C.gsplatarray_len(this.__wbg_ptr)>>>0}tiny_lod(A,g){C.gsplatarray_tiny_lod(this.__wbg_ptr,A,g)}to_extsplats(){const A=C.gsplatarray_to_extsplats(this.__wbg_ptr);if(A[2])throw w(A[1]);return w(A[0])}to_extsplats_lod(){const A=C.gsplatarray_to_extsplats_lod(this.__wbg_ptr);if(A[2])throw w(A[1]);return w(A[0])}to_packedsplats(A){const g=C.gsplatarray_to_packedsplats(this.__wbg_ptr,A);if(g[2])throw w(g[1]);return w(g[0])}to_packedsplats_lod(A){const g=C.gsplatarray_to_packedsplats_lod(this.__wbg_ptr,A);if(g[2])throw w(g[1]);return w(g[0])}set maxShDegree(A){C.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr,A)}set numSplats(A){C.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr,A)}}Symbol.dispose&&(T.prototype[Symbol.dispose]=T.prototype.free);function wA(I,A,g,Q,B,D){const E=C.bhatt_lod_extsplats(I,A,g,R(Q)?0:M(Q),B,R(D)?0:M(D));if(E[2])throw w(E[1]);return w(E[0])}function GA(I,A,g,Q,B,D){const E=C.bhatt_lod_packedsplats(I,A,R(g)?0:M(g),Q,R(B)?0:M(B),D);if(E[2])throw w(E[1]);return w(E[0])}function oA(I,A,g){var Q=R(I)?0:U(I,C.__wbindgen_malloc,C.__wbindgen_realloc),B=k,D=R(A)?0:U(A,C.__wbindgen_malloc,C.__wbindgen_realloc),E=k;const i=C.decode_to_csplatarray(Q,B,D,E,g);if(i[2])throw w(i[1]);return a.__wrap(i[0])}function yA(I,A,g,Q,B){var D=R(I)?0:U(I,C.__wbindgen_malloc,C.__wbindgen_realloc),E=k,i=R(A)?0:U(A,C.__wbindgen_malloc,C.__wbindgen_realloc),y=k;const o=C.decode_to_extsplats(D,E,i,y,R(g)?0:M(g),R(Q)?0:M(Q),R(B)?0:M(B));if(o[2])throw w(o[1]);return a.__wrap(o[0])}function RA(I,A){var g=R(I)?0:U(I,C.__wbindgen_malloc,C.__wbindgen_realloc),Q=k,B=R(A)?0:U(A,C.__wbindgen_malloc,C.__wbindgen_realloc),D=k;const E=C.decode_to_gsplatarray(g,Q,B,D);if(E[2])throw w(E[1]);return a.__wrap(E[0])}function kA(I,A,g,Q,B,D){var E=R(I)?0:U(I,C.__wbindgen_malloc,C.__wbindgen_realloc),i=k,y=R(A)?0:U(A,C.__wbindgen_malloc,C.__wbindgen_realloc),o=k;const G=C.decode_to_packedsplats(E,i,y,o,g,R(Q)?0:M(Q),R(B)?0:M(B),R(D)?0:M(D));if(G[2])throw w(G[1]);return a.__wrap(G[0])}function FA(I){C.dispose_lod_tree(I)}function NA(I,A){const g=C.get_lod_tree_level(I,A);if(g[2])throw w(g[1]);return w(g[0])}function SA(I,A){const g=C.init_lod_tree(I,A);if(g[2])throw w(g[1]);return w(g[0])}function JA(I){const A=C.new_lod_tree(I);if(A[2])throw w(A[1]);return w(A[0])}function MA(I){const A=C.new_shared_lod_tree(I);if(A[2])throw w(A[1]);return w(A[0])}function hA(I,A,g){return C.sort32_splats(I,A,g)>>>0}function sA(I,A,g){return C.sort_splats(I,A,g)>>>0}function UA(I,A,g,Q,B,D,E){const i=C.tiny_lod_extsplats(I,A,g,R(Q)?0:M(Q),B,D,R(E)?0:M(E));if(i[2])throw w(i[1]);return w(i[0])}function HA(I,A,g,Q,B,D,E){const i=C.tiny_lod_packedsplats(I,A,R(g)?0:M(g),Q,B,R(D)?0:M(D),E);if(i[2])throw w(i[1]);return w(i[0])}function LA(I,A,g,Q,B,D,E,i,y,o,G){const S=O(Q,C.__wbindgen_malloc),J=k,h=O(B,C.__wbindgen_malloc),L=k,c=r(D,C.__wbindgen_malloc),H=k,s=r(E,C.__wbindgen_malloc),F=k,N=r(i,C.__wbindgen_malloc),d=k,x=r(y,C.__wbindgen_malloc),m=k,e=r(o,C.__wbindgen_malloc),K=k,Y=r(G,C.__wbindgen_malloc),f=k,p=C.traverse_lod_trees(I,A,R(g)?4294967297:Math.fround(g),S,J,h,L,c,H,s,F,N,d,x,m,e,K,Y,f);if(p[2])throw w(p[1]);return w(p[0])}function cA(I,A,g,Q,B){const D=O(I,C.__wbindgen_malloc),E=k,i=O(A,C.__wbindgen_malloc),y=k,o=O(g,C.__wbindgen_malloc),G=k,S=O(Q,C.__wbindgen_malloc),J=k,h=C.update_lod_trees(D,E,i,y,o,G,S,J,B);if(h[2])throw w(h[1]);return w(h[0])}function YA(){return{__proto__:null,"./spark_worker_rs_bg.js":{__proto__:null,__wbg_Error_2e59b1b37a9a34c3:function(A,g){return Error(z(A,g))},__wbg___wbindgen_boolean_get_a86c216575a75c30:function(A){const g=A,Q=typeof g=="boolean"?g:void 0;return R(Q)?16777215:Q?1:0},__wbg___wbindgen_debug_string_dd5d2d07ce9e6c57:function(A,g){const Q=_(g),B=U(Q,C.__wbindgen_malloc,C.__wbindgen_realloc),D=k;q().setInt32(A+4,D,!0),q().setInt32(A+0,B,!0)},__wbg___wbindgen_in_4bd7a57e54337366:function(A,g){return A in g},__wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef:function(A){return!A},__wbg___wbindgen_is_object_40c5a80572e8f9d3:function(A){const g=A;return typeof g=="object"&&g!==null},__wbg___wbindgen_is_undefined_c0cca72b82b86f4d:function(A){return A===void 0},__wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944:function(A,g){return A==g},__wbg___wbindgen_number_get_7579aab02a8a620c:function(A,g){const Q=g,B=typeof Q=="number"?Q:void 0;q().setFloat64(A+8,R(B)?0:B,!0),q().setInt32(A+0,!R(B),!0)},__wbg___wbindgen_string_get_914df97fcfa788f2:function(A,g){const Q=g,B=typeof Q=="string"?Q:void 0;var D=R(B)?0:U(B,C.__wbindgen_malloc,C.__wbindgen_realloc),E=k;q().setInt32(A+4,E,!0),q().setInt32(A+0,D,!0)},__wbg___wbindgen_throw_81fc77679af83bc6:function(A,g){throw new Error(z(A,g))},__wbg_csplatarray_new:function(A){return Z.__wrap(A)},__wbg_error_a6fa202b58aa1cd3:function(A,g){let Q,B;try{Q=A,B=g,console.error(z(A,g))}finally{C.__wbindgen_free(Q,B,1)}},__wbg_get_4848e350b40afc16:function(A,g){return A[g>>>0]},__wbg_get_f96702c6245e4ef9:function(){return EA(function(A,g){return Reflect.get(A,g)},arguments)},__wbg_get_unchecked_7d7babe32e9e6a54:function(A,g){return A[g>>>0]},__wbg_get_with_ref_key_6412cf3094599694:function(A,g){return A[g]},__wbg_gsplatarray_new:function(A){return T.__wrap(A)},__wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a:function(A){let g;try{g=A instanceof ArrayBuffer}catch{g=!1}return g},__wbg_instanceof_Uint8Array_4b8da683deb25d72:function(A){let g;try{g=A instanceof Uint8Array}catch{g=!1}return g},__wbg_length_0c32cb8543c8e4c8:function(A){return A.length},__wbg_length_1e701798fdcaa3b4:function(A){return A.length},__wbg_length_6e821edde497a532:function(A){return A.length},__wbg_length_a4ca9e78359b5f1f:function(A){return A.length},__wbg_new_227d7c05414eb861:function(){return new Error},__wbg_new_4f9fafbb3909af72:function(){return new Object},__wbg_new_a560378ea1240b14:function(A){return new Uint8Array(A)},__wbg_new_f3c9df4f38f3f798:function(){return new Array},__wbg_new_with_length_41a22191b9bdfd66:function(A){return new Uint32Array(A>>>0)},__wbg_prototypesetcall_3e05eb9545565046:function(A,g,Q){Uint8Array.prototype.set.call(aA(A,g),Q)},__wbg_prototypesetcall_64c287a27cc24d27:function(A,g,Q){Uint16Array.prototype.set.call(KA(A,g),Q)},__wbg_prototypesetcall_e42275e601e14eeb:function(A,g,Q){Uint32Array.prototype.set.call(BA(A,g),Q)},__wbg_push_6bdbc990be5ac37b:function(A,g){return A.push(g)},__wbg_set_448126769bf7c181:function(A,g,Q){A.set(BA(g,Q))},__wbg_set_6be42768c690e380:function(A,g,Q){A[g]=Q},__wbg_set_81b4174352e6a095:function(A,g,Q){A.set(g,Q>>>0)},__wbg_set_8ee2d34facb8466e:function(){return EA(function(A,g,Q){return Reflect.set(A,g,Q)},arguments)},__wbg_set_index_338a66e40fc45dee:function(A,g,Q){A[g>>>0]=Q>>>0},__wbg_stack_3b0d974bbf31e44f:function(A,g){const Q=g.stack,B=U(Q,C.__wbindgen_malloc,C.__wbindgen_realloc),D=k;q().setInt32(A+4,D,!0),q().setInt32(A+0,B,!0)},__wbg_subarray_0f98d3fb634508ad:function(A,g,Q){return A.subarray(g>>>0,Q>>>0)},__wbg_subarray_517cd0f1811ab872:function(A,g,Q){return A.subarray(g>>>0,Q>>>0)},__wbg_subarray_d51e89458b3fdbf6:function(A,g,Q){return A.subarray(g>>>0,Q>>>0)},__wbindgen_cast_0000000000000001:function(A){return A},__wbindgen_cast_0000000000000002:function(A,g){return z(A,g)},__wbindgen_init_externref_table:function(){const A=C.__wbindgen_externrefs,g=A.grow(4);A.set(0,void 0),A.set(g+0,void 0),A.set(g+1,null),A.set(g+2,!0),A.set(g+3,!1)}}}}const IA=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(I=>C.__wbg_chunkdecoder_free(I>>>0,1)),gA=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(I=>C.__wbg_csplatarray_free(I>>>0,1)),QA=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(I=>C.__wbg_gsplatarray_free(I>>>0,1));function M(I){const A=C.__externref_table_alloc();return C.__wbindgen_externrefs.set(A,I),A}function _(I){const A=typeof I;if(A=="number"||A=="boolean"||I==null)return`${I}`;if(A=="string")return`"${I}"`;if(A=="symbol"){const B=I.description;return B==null?"Symbol":`Symbol(${B})`}if(A=="function"){const B=I.name;return typeof B=="string"&&B.length>0?`Function(${B})`:"Function"}if(Array.isArray(I)){const B=I.length;let D="[";B>0&&(D+=_(I[0]));for(let E=1;E1)Q=g[1];else return toString.call(I);if(Q=="Object")try{return"Object("+JSON.stringify(I)+")"}catch{return"Object"}return I instanceof Error?`${I.name}: ${I.message}\n${I.stack}`:Q}function KA(I,A){return I=I>>>0,dA().subarray(I/2,I/2+A)}function BA(I,A){return I=I>>>0,CA().subarray(I/4,I/4+A)}function aA(I,A){return I=I>>>0,l().subarray(I/1,I/1+A)}let t=null;function q(){return(t===null||t.buffer.detached===!0||t.buffer.detached===void 0&&t.buffer!==C.memory.buffer)&&(t=new DataView(C.memory.buffer)),t}let n=null;function qA(){return(n===null||n.byteLength===0)&&(n=new Float32Array(C.memory.buffer)),n}function z(I,A){return I=I>>>0,tA(I,A)}let X=null;function dA(){return(X===null||X.byteLength===0)&&(X=new Uint16Array(C.memory.buffer)),X}let V=null;function CA(){return(V===null||V.byteLength===0)&&(V=new Uint32Array(C.memory.buffer)),V}let W=null;function l(){return(W===null||W.byteLength===0)&&(W=new Uint8Array(C.memory.buffer)),W}function EA(I,A){try{return I.apply(this,A)}catch(g){const Q=M(g);C.__wbindgen_exn_store(Q)}}function R(I){return I==null}function O(I,A){const g=A(I.length*4,4)>>>0;return CA().set(I,g/4),k=I.length,g}function r(I,A){const g=A(I.length*4,4)>>>0;return qA().set(I,g/4),k=I.length,g}function U(I,A,g){if(g===void 0){const i=j.encode(I),y=A(i.length,1)>>>0;return l().subarray(y,y+i.length).set(i),k=i.length,y}let Q=I.length,B=A(Q,1)>>>0;const D=l();let E=0;for(;E127)break;D[B+E]=i}if(E!==Q){E!==0&&(I=I.slice(E)),B=g(B,Q,Q=E+I.length*3,1)>>>0;const i=l().subarray(B+E,B+Q),y=j.encodeInto(I,i);E+=y.written,B=g(B,Q,E,1)>>>0}return k=E,B}function w(I){const A=C.__wbindgen_externrefs.get(I);return C.__externref_table_dealloc(I),A}let v=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});v.decode();const xA=2146435072;let $=0;function tA(I,A){return $+=A,$>=xA&&(v=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),v.decode(),$=A),v.decode(l().subarray(I,I+A))}const j=new TextEncoder;"encodeInto"in j||(j.encodeInto=function(I,A){const g=j.encode(I);return A.set(g),{read:I.length,written:g.length}});let k=0,C;function PA(I,A){return C=I.exports,t=null,n=null,X=null,V=null,W=null,C.__wbindgen_start(),C}async function bA(I,A){if(typeof Response=="function"&&I instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(I,A)}catch(B){if(I.ok&&g(I.type)&&I.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n",B);else throw B}const Q=await I.arrayBuffer();return await WebAssembly.instantiate(Q,A)}else{const Q=await WebAssembly.instantiate(I,A);return Q instanceof WebAssembly.Instance?{instance:Q,module:I}:Q}function g(Q){switch(Q){case"basic":case"cors":case"default":return!0}return!1}}async function fA(I){if(C!==void 0)return C;I!==void 0&&(Object.getPrototypeOf(I)===Object.prototype?{module_or_path:I}=I:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),I===void 0&&(I=new URL("data:application/wasm;base64,AGFzbQEAAAAB6wZpYAN/f38Bf2ACf38AYAJ/fwF/YAF/AGABfwF/YAN/f38AYAR/f39/AGAFf39/f38AYAADf39/YAZ/f39/f38AYAd/f39/f39/AGAEf39/fwF/YAFvAX9gCH9/f39/f39/AGABfwN/f39gBX9/f39/AX9gAX0BfWAAAGACf28AYAF/AX5gA399fwBgBn9/f39/fwF/YAZ/f39/f30AYAABf2ACf30AYAV/f39+fwBgA29/fwFvYAN/f28AYAF/AW9gAAFvYAJvbwF/YAl/f39/f39/f38AYAF+AX9gAn9vA39/f2ACfX0BfWADb39/AGACb28Bb2ACb38Bb2ACf38Bb2AEf39/fQF/YAx/f39/f39/f39/f38AYAl/f39/f39/f38Bf2AFf39/fX8AYAd/f39/f39/AX9gBX9/f399AGAEf31/fwF/YBN/f39/f39/f39/f39/f39/f39/AX9gE39/f39/f39/f39/f39/f39/f38AYAN+fn8BfmAHf39/f399fQBgA39+fgBgBX9/fn9/AGAFf398f38AYAV/f31/fwBgBH9vf28Df39/YAN/b28Bf2AAAn9/YANvb28Bf2ADb29vAGADb29/AGABbwFvYAF8AW9gCn9/f39/f39/f38Bf2ALf39/f39/f39/f38Bf2AKf39/f39/f39/fwBgBn9/fX9/fwBgAn9/AX1gBH9/f34AYAN/f38BfmACf34AYAN/fX8Bf2AFf39/fn4AYAZ/fn9/f38AYAZ/f39/fX0AYAF/AX1gBH5+f38BfmAFf39/f38BfWAJf39/f39/fn5+AGAEf39/fwF9YAJ+fwBgA39/ewBgAn9+AX9gAn1/AX1gA319fQF9YAR/fn5/AGAGf39/fn9/AGAGf39/fH9/AGAGf39/fX9/AGATf318f39/f39/f39/f39/f39/fwN/f39gCX9/f39/f39/bwN/f39gCH9/f39vf39/A39/f2AHf29/fX9/bwN/f39gB39vb399f38Df39/YAd/f39/f39/A39/f2AGf29vf31/A39/f2AGf29/fX9vA39/f2AFf39/f28Df39/YAR/b29/A39/f2AEf39/fwN/f39gAn9/A39/f2ACf28Cf39gBH9+f38AYAR/fX9/AGAEf3x/fwBgAXwBfwKdFS0XLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfZDUxZTg5NDU4YjNmZGJmNgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF8xZTcwMTc5OGZkY2FhM2I0AAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzQ0ODEyNjc2OWJmN2MxODEAIxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsX2U0MjI3NWU2MDFlMTRlZWIAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyZfX3diZ19uZXdfd2l0aF9sZW5ndGhfNDFhMjIxOTFiOWJkZmQ2NgAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX25ld180ZjlmYWZiYjM5MDlhZjcyAB0XLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzhlZTJkMzRmYWNiODQ2NmUAORcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfZjNjOWRmNGYzOGYzZjc5OAAdFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzG19fd2JnX3B1c2hfNmJkYmM5OTBiZTVhYzM3YgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX2dldF9mOTY3MDJjNjI0NWU0ZWY5ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMqX193YmdfX193YmluZGdlbl9pc19mYWxzeV9jNmRkZmFlMWJiNTZkNWVmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzZiZTQyNzY4YzY5MGUzODAAOhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19nZXRfNDg0OGUzNTBiNDBhZmMxNgAlFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2dzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2NzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHF9fd2JnX0Vycm9yXzJlNTliMWIzN2E5YTM0YzMAJhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcytfX3diZ19fX3diaW5kZ2VuX2lzX29iamVjdF80MGM1YTgwNTcyZThmOWQzAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMnX193YmdfZ2V0X3dpdGhfcmVmX2tleV82NDEyY2YzMDk0NTk5Njk0ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMuX193YmdfX193YmluZGdlbl9pc191bmRlZmluZWRfYzBjY2E3MmI4MmI4NmY0ZAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJF9fd2JnX19fd2JpbmRnZW5faW5fNGJkN2E1N2U1NDMzNzM2NgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fbnVtYmVyX2dldF83NTc5YWFiMDJhOGE2MjBjABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMtX193YmdfX193YmluZGdlbl9ib29sZWFuX2dldF9hODZjMjE2NTc1YTc1YzMwAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzgxYjQxNzQzNTJlNmEwOTUAOxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx1fX3diZ19sZW5ndGhfMGMzMmNiODU0M2M4ZTRjOAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzH19fd2JnX3N1YmFycmF5XzBmOThkM2ZiNjM0NTA4YWQAGhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsXzNlMDVlYjk1NDU1NjUwNDYAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diZ19zZXRfaW5kZXhfMzM4YTY2ZTQwZmM0NWRlZQAjFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF9hNGNhOWU3ODM1OWI1ZjFmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfNTE3Y2QwZjE4MTFhYjg3MgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfNjRjMjg3YTI3Y2MyNGQyNwAbFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF82ZTgyMWVkZGU0OTdhNTMyAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMkX193YmdfZ2V0X3VuY2hlY2tlZF83ZDdiYWJlMzJlOWU2YTU0ACUXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193YmdfbmV3XzIyN2Q3YzA1NDE0ZWI4NjEAHRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxxfX3diZ19zdGFja18zYjBkOTc0YmJmMzFlNDRmABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMcX193YmdfZXJyb3JfYTZmYTIwMmI1OGFhMWNkMwABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzMF9fd2JnX19fd2JpbmRnZW5fanN2YWxfbG9vc2VfZXFfM2E3MmFlNzY0ZDQ2ZDk0NAAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fc3RyaW5nX2dldF85MTRkZjk3ZmNmYTc4OGYyABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMsX193YmdfaW5zdGFuY2VvZl9VaW50OEFycmF5XzRiOGRhNjgzZGViMjVkNzIADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcy1fX3diZ19pbnN0YW5jZW9mX0FycmF5QnVmZmVyX2ZmN2MxMzM3YTVlM2IzM2EADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfYTU2MDM3OGVhMTI0MGIxNAA8Fy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfODFmYzc3Njc5YWY4M2JjNgABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLl9fd2JnX19fd2JpbmRnZW5fZGVidWdfc3RyaW5nX2RkNWQyZDA3Y2U5ZTZjNTcAEhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx9fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlABEXLi9zcGFya193b3JrZXJfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDEAPRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMgAmA5cKlQoYGBQUAQoKAQkBCgoFCgkKBAQnBAQNJw0BAQYEBAoEBAUNBgQEBAQJCREFBgEJAQQEBAQJCQYBAgcoCQIJASgGBQ0BKQQGAQA+BQE/DQcGAgIGAgYGAQEGBgUEBAQEBgECBgUGBgYCBwkCBgEFBgEBAwMEBA8DBAEHAQcGAAYDBA0BAgEEAQEVAQYBBAIEBQYDBUABDwcDAgEBBwICBSoCCQEFBwQEBgQCBwUfAioGAQcFBgEHBhYGAQcrCQENAAEBAAIFAQIFAQUKLCsGBQcDBgYBDQEFAwEDBAUCBQMCAwMBAQFBAgYBLAcJARADEEIHBwUGAQMHBwECAgQWCQkBAQJDBw0DCUQAAQEBAQELBC0DAwMEAQIBAgECAwMCRQUGBEYBAQEBBwACCRkCBQIBAQcABQQJAQYBRwYGSAMDBQUDAQUDBgUFAwMtBgUKBQYBAwkABQUHAQIDAwMDLi4FCQkvLwkHBwIBAQAGBQEDAwMDAQMAAQIBAQYCAQZJAgsFAQAFAQYJCQQEBAQCBAEVAQICFQABAQUGAwUVBw0ABQUHAgEAAAIFBQAACQUWHwICCgICAQcHAgMHCgUFAwMBARkCBwUwAgUFBQMwBAABAQQBMQMDCgkFAwMEChBKAQUFBQUWBgEDBksHBQEDAwIBBAIBAQUCBgcBAgICAQEDAgQBAkwDTQEHBwcHAQIKBwlOAwNPAgUBAgcHBQsGAgQEBAEDAQIJBgYHAQMPARcHEAIEUAoCBAMGBAQBDwUfAgkDBAsZFAoCAgIQAwcxBAcCAzIAAQcWAQMCAgYBBAECDwEGCwEFAhcGAQICAgICAgYCEAEHAgcDBwUEBAICBAEBAQEBAQIBAgQEAQECAAICAgIBAgMBBwMCAxAEAQMFAgEBAwMAAgMCAQkBAQEFAgIHAwEDAwcCAAcDAwICAgECBwMpBQICAgICAQIFBQEBAQICAgICAlEBAgICAgICAgEDAgkCAQEHAwEDAwEBAQEBCQkCAwIBAQIBAQMBAQEFAQUCAgFSAQICUwMDAQEBBgADAwEDAgELCwUCAgEBBAMBCwMDAgEBAgMDAwEBAQICAAMyAAAHAgUDAwUCAxkFAxQUBwcJAwYFBQUFAwMDAwMDAwYYGAMFAgMABgMEBAQEAgUBBAQECQQDBwQFAwMDAwMCAgICBVQFBAEDEwEDAQEFBARVCVZXAQECBQcCBhAAAAAAAAAAAAAAAAAEAgIAAAAAIAQgAAQgBAQEAgACAgIAWAUTBQEAAAABAgABAgIGBQIBBAICAlkPWgcCBgIHAQFbXF0DEQMDXl8RC2ACNmFiNgEJAgIhIWMhAAICAgICAg4ODg4ODg4ODgQEBAQCAmQBAQEBAgICAgICAgICFQICAgICAgICAQICAQICDwczNTQCAQECAgIGCwIAAQIANzcDAgIiIgACBQMCAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAwECBQEBAQEBAQEBBAIAAgICAgIJAgICAgEBAQECAwEBAQICAgIEaAMDAgcCCQEXBRcSEgIBAgEBAQEBAQEBAgIBAgEBAQEBAQEDBAEDBQEFBQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAwMBAQEBAQEBAQEBEQERAgICAQIBAgECAgICAQEBAQEBAQEEAwEBAQEBAQEBAQMDCgEEAgEiBAQEBAQEEQQXBQQLAnAB4QThBG8AgAgFAwEAEwYPAn8BQYCAwAALfwFBgAgLB7AMPgZtZW1vcnkCABdfX3diZ19jaHVua2RlY29kZXJfZnJlZQCSBBZfX3diZ19jc3BsYXRhcnJheV9mcmVlALYFIV9fd2JnX2dldF9jc3BsYXRhcnJheV9tYXhTaERlZ3JlZQClCB9fX3diZ19nZXRfY3NwbGF0YXJyYXlfbnVtU3BsYXRzAKYIIV9fd2JnX2dldF9nc3BsYXRhcnJheV9tYXhTaERlZ3JlZQCnCB9fX3diZ19nZXRfZ3NwbGF0YXJyYXlfbnVtU3BsYXRzAKgIFl9fd2JnX2dzcGxhdGFycmF5X2ZyZWUAtwUhX193Ymdfc2V0X2NzcGxhdGFycmF5X21heFNoRGVncmVlAKwIH19fd2JnX3NldF9jc3BsYXRhcnJheV9udW1TcGxhdHMArQghX193Ymdfc2V0X2dzcGxhdGFycmF5X21heFNoRGVncmVlAK4IH19fd2JnX3NldF9nc3BsYXRhcnJheV9udW1TcGxhdHMArwgTYmhhdHRfbG9kX2V4dHNwbGF0cwCDCBZiaGF0dF9sb2RfcGFja2Vkc3BsYXRzAIQIE2NodW5rZGVjb2Rlcl9maW5pc2gAoggRY2h1bmtkZWNvZGVyX3B1c2gAqwgVY3NwbGF0YXJyYXlfYmhhdHRfbG9kAP4GE2NzcGxhdGFycmF5X2hhc19sb2QAxgcYY3NwbGF0YXJyYXlfaW5qZWN0X3JnYmE4AMIJD2NzcGxhdGFycmF5X2xlbgDVBxRjc3BsYXRhcnJheV90aW55X2xvZADrBhhjc3BsYXRhcnJheV90b19leHRzcGxhdHMAnAgcY3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzX2xvZACeCBtjc3BsYXRhcnJheV90b19wYWNrZWRzcGxhdHMAnQgfY3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzX2xvZACfCBVkZWNvZGVfdG9fY3NwbGF0YXJyYXkAhwgTZGVjb2RlX3RvX2V4dHNwbGF0cwD+BxVkZWNvZGVfdG9fZ3NwbGF0YXJyYXkAiwgWZGVjb2RlX3RvX3BhY2tlZHNwbGF0cwD0BxBkaXNwb3NlX2xvZF90cmVlAIwCGGV4dHNwbGF0c190b19nc3BsYXRhcnJheQCKCBJnZXRfbG9kX3RyZWVfbGV2ZWwAkwgVZ3NwbGF0YXJyYXlfYmhhdHRfbG9kAP8GGGdzcGxhdGFycmF5X2luamVjdF9yZ2JhOADDCQ9nc3BsYXRhcnJheV9sZW4A1QcUZ3NwbGF0YXJyYXlfdGlueV9sb2QA7AYYZ3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzAKAIHGdzcGxhdGFycmF5X3RvX2V4dHNwbGF0c19sb2QAoQgbZ3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzAJEIH2dzcGxhdGFycmF5X3RvX3BhY2tlZHNwbGF0c19sb2QAkggNaW5pdF9sb2RfdHJlZQCUCAxuZXdfbG9kX3RyZWUApAgTbmV3X3NoYXJlZF9sb2RfdHJlZQCjCBtwYWNrZWRzcGxhdHNfdG9fY3NwbGF0YXJyYXkAjAgbcGFja2Vkc3BsYXRzX3RvX2dzcGxhdGFycmF5AIkIDHNpbWRfZW5hYmxlZADACg1zb3J0MzJfc3BsYXRzANoIC3NvcnRfc3BsYXRzANsIEnRpbnlfbG9kX2V4dHNwbGF0cwD9BxV0aW55X2xvZF9wYWNrZWRzcGxhdHMA/AcSdHJhdmVyc2VfbG9kX3RyZWVzANwHEHVwZGF0ZV9sb2RfdHJlZXMA8gcKd2FzbV9zdGFydACFCBNnc3BsYXRhcnJheV9oYXNfbG9kAMYHEV9fd2JpbmRnZW5fbWFsbG9jANoHEl9fd2JpbmRnZW5fcmVhbGxvYwCGCA9fX3diaW5kZ2VuX2ZyZWUAlgcUX193YmluZGdlbl9leG5fc3RvcmUA2gkXX19leHRlcm5yZWZfdGFibGVfYWxsb2MA2gQVX193YmluZGdlbl9leHRlcm5yZWZzAQEZX19leHRlcm5yZWZfdGFibGVfZGVhbGxvYwCbBxBfX3diaW5kZ2VuX3N0YXJ0AL4KCbgJAQBBAQvgBIsFxAnpCPMD7QiNASwrvAnECboJ0gjoB5sF9QSnAqIE8gHVCMQBggeeBOwHrASyCvwC5wP2AagG0AeJBssF5gaWCMMI3gLRCZsIswa0AsQIhQXGCYkG3APTA8AG0AmSCpMKugW4BZsKkwGPBtkG3Qj0BMcH2AjDApoKuAiZCsYJ1gLEBLIGpwOABu0GyAjcBdUFyQjJCMkIrgevB7YHygiwB9MIuAevB8sIsQfMCK8HlAfICLkIkQfZCPEG1AjuBukHlwrhBpwKugixCLsI/ATSCaMG7wfzBNMFqAXSCc8J5APKAo0GwgGDA9sExQTVBH20CecI/QjyCIMJiAnwCIwJhgn0CP8I9wiLCYUJhAmCCfoIjQnxCIcJgAn1CIEJ/gjqCIUE/QnRA4oHkQHKBogIgATmCdYDiQeQAYEE+gnXA4cHhQGGBOwJ0gOIB5IB5gj2CIkJgwfGCc8JswqUCsUJwQqDB9cHkgWBCpIJnAnaBs4FrgKzB6cKsge6BdIGsQXwBfEF/AWGCsQJoArjBN0EhQPCCKoKwgjGCc8Jnwq5CcQJ/QXtB4kK7QexBK4G6wSNB4UKjQeDCv4FkQmMCo8J8Qe1CuAHjQrFCeAHwQqQCYcK6gaECoIKoQrJBagKigqOCYsK3AiICqUHlAnMCdAGswikB78K9wSZCcsJ0QbBCJgHmgnICdcGsgipB5kHlgnHCZkGtQinB4wGlwnJCZgGvwiVCcoJvga0CJcHmwnNCZsG2AfLBoYHmAnOCZoG9gfNBe4HxQa4CZEK6wHaBYAK5wX7CPgI8wjvCIoJ+QjuCPwItQb/Cb0HuAOHA+oJxAe1BfkG8wnMB4kB8AlI8QlSnAPoCcEH0we8BvUJuge2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gICAeEYNBCADKQJMIR0gAygCVCEMIANBgICAgHg2AlQgDEGAgICAeEYNBCADKQJYISAgAygCPCERIANBgICAgHg2AjwgEUGAgICAeEYNBCADKQJAISIgAygCMCEPIANBgICAgHg2AjAgD0GAgICAeEYNBCADKQI0ISMgAigCzAEiBSACKALAASIGRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIUIAZBACAGIBRNG2tBDGxqIgYgGTcCBCAGIAQ2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIBo3AgQgBCAHNgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAcNwIEIAQgCTYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgHjcCBCAEIAs2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIB03AgQgBCAINgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAgNwIEIAQgDDYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgIjcCBCAEIBE2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEg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SxsNDyAEEKICCyADQQA2AlggA0KAgICAwAA3AlAgA0EANgKMASADQoCAgIDAADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCINIAJBBXQiCWoiBSgCACIGIAAoAggiBEkEQCAAKAIEIgsgBkEkbGoiBv1dAgggBioCECIB/SACIAH9IAMgA/0JAkwiLv3nAf1oIi39HwL8BCEaIC39HwH8BCEbIC39HwD8BCEcIAcgAkEBaiIITQRAIAIhCgwDCyAHQQFrIQogFUEBcQRAIAchCAwDCyAJIA1qQSBqIQYDQCAGKAIAIgkgBE8NAiALIAlBJGxqIgn9XQIIIAkqAhAiAf0gAiAB/SADIC795wH9aCIt/R8A/AQgHFIgLf0fAfwEIBtSckUgLf0fAvwEIBpRcUUEQCAIQQFrIQoMBAsgBkEgaiEGIAcgCEEBaiIIRw0ACyAHIQgMAgsgBiAEQdTAxwAQjAcACyAJIARB1MDHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayILrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiI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ADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCIWIAJBBXQiCWoiBigCACIFIAAoAggiBEkEQCAAKAIEIgogBUEYbGr9AAIAICz9DQABAgMEBQYHCAkKCwgJCgsgA/0JAkwiLf3nAf1oIiz9HwL8BCEaICz9HwH8BCEbICz9HwD8BCEcIAcgAkEBaiIITQRAIAIhCwwDCyAHQQFrIQsgDkEBcQRAIAchCAwDCyAJIBZqQSBqIQUDQCAFKAIAIgkgBE8NAiAKIAlBGGxq/QACACAs/Q0AAQIDBAUGBwgJCgsICQoLIC395wH9aCIs/R8A/AQgHFIgLP0fAfwEIBtSckUgLP0fAvwEIBpRcUUEQCAIQQFrIQsMBAsgBUEgaiEFIAcgCEEBaiIIRw0ACyAHIQgMAgsgBSAEQdy7xwAQjAcACyAJIARB3LvHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayIMrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhCADKQPwASIbQn+FfiIc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IANrIhUNAQwCCwtBqJDIACkDACJ6Qv8Bg0IEUQ0AIHpCIIinIhIgeqciA0H/AXFBBEYNARogekIQiKchFSB6QgiIpyEIQQAhCwwCCyAELwHIDCAELQDKDEEQdHILIRJBASEJIAEgEkEBdkEHcToAKyABIBJBAXEiA0U6ACggASASQQR2QQFxOgApAkACQAJAAkACQAJAAkAgAw0AIARBADoA2hggBEEAOwHYGCABKALoAyELQQMhFSAEQdgYaiEIAkADQAJAIHlQBEBCACF5DAELIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQAgAyAIaiEIIBUgA2siFQ0BDAILC0EAIQtBqJDIACkDACJ6pyIDQf8BcUEERg0AIHpCIIinIRIgekIQiKchFSB6QgiIpyEIDAgLIAECfwJAAkACQAJ/AkACQCAELwHYGCAELQDaGEEQdHIiB0Gdg6gBRgRAIARBADsByAwgASgC6AMhC0ECIRUgBEHIDGohCANAIHlQBEBCACF5DAMLIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQIgAyAIaiEIIBUgA2siFQ0ACwwCCyAHQQh2IQJBESELDA4LQaiQyAApAwAiekL/AYNCBFENACB6QhCIpyEVIHqnIgNB/wFxQQRHDQIgFQwBCyAELwHIDAshESAEQQA7AcgMIAEoAugDIQtBAiEVIARByAxqIQgDQCB5UA0CIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4g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ADcD0EggA0EANgLYSCADQQA6AMJIIANB4MgAaiIBIANBsMUAahCcBCADLQDgSEEoRwRAIAUgARD8AyADKAIYIgFBBkcNBAsgA0EQNgLYSCADQdDRAGoiASADQbDFAGpBsAP8CgAAIANBGGogARCcBCADLQAYIgZBKEcEQCADQarVAGogAy0AGzoAACADIAMvABk7AahVIAMoAhwhBSADKQIgIRQgARCdAQwZCwJAAkAgAygCHCIBLQC+AiICQQN0KQOwkkkgATUCtAIgATEAvwJ+IhR+IhVC8P////8AVg0AIBVCB3xCA4inQQFqrUGAASABKAK4AiIBIAFBgAFPG61+IhVCIIinDQAgFaciAUH/AXEiBEEARyABQYB+cUGAAmoiBiABSXENACAGIAEgBBsiBkGBgAhJDQELQYCACCEGC0EBIQVB/////wchBAJAIAJBA3QpA+iSSSAUfiIUQvD/////AFYNACAUQgd8QgOIp0EBaiIBQf////8DSw0AIAFBAnQiAkFAcUFAayEIIAFBD3EiAUEAIAIgCEsbDQBBgIAIIAggAiABGyIBIAFBgIAITRshBAsgBgRAIAYQcSIFRQ0WCyADQRhqIANB0NEAakGoA/wKAAAgA0H1A2pCADcAACADQbQEakEANgIAIANBAToA3QQgA0EANgLUBCADQQA2AsgDIANCADcDwAMgA0IANwPwAyADQYCAgIB4NgKgBCADQgE3A5gEIANCADcDkAQgAyAFNgKMBCADIAY2AogEIANCfzcDgAQgA/0MAAAAAAAAAAAAAAAAAAAAAP0LAqQEIAMgBDYCuAQgAyADKAL4VDYC2AQgA0ECNgLcAyADQQA6ANwEIANBADYC0AQgA0KAgICAEDcDyAQgA0EANgLABAJAIAMoAiBBAkcEQEEnIQYgAy0A3gJBA3QpA6CTSSADNQLUAiIUIAMxAN8Cfn5C8f////8AVA0BDBkLQayYxwAQ3QkACyADKALYAiEFIANBEGogA0EYaiIBEIoFIAMtABBBA3QpA9iTSSADMQARIBR+fiIUQvD/////AFYNFyAFrSAUQgd8QgOIfiIVQiCIpyAVp0EASHINFyADQZDVAGogARCMASADLQCQVSIGQShHBEAgA0Gq1QBqIAMtAJNVOgAAIAMgAy8AkVU7AahVIAMoApRVIQUgAykCmFUhFAwY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nNPBABCMBwALIAMgCEGs08EAEIwHAAsgCCAHQbzTwQAQjAcACyAIIAdBzNPBABCMBwALIAggB0Hc08EAEIwHAAsgBiABQezSwQAQjAcACyAHIAFB3NLBABCMBwALIAQgAUHM0sEAEIwHAAsgACAAKAKYAiALIAAoAuwBIAAoAvABEKAFAkACQAJAIAAoAuQBIgEgCyAQbCICTwRAIABBADYC5AEgASACayEDIAVFDQEgASACRg0DIANFDQIgACgC4AEiASABIAJqIAP8CgAADAILDBALIAEgAkYNAQsgACADNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0FIABBADYCmAIgAEEFOgCcAgwFCyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0HC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAgD2UQwAAIMGSEIkEOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQngIgACgC5AEiAiAFSQ0WIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkGc0cEAEIwHAAsgASACQazRwQAQjAcACyACIARBvNHBABCMBwALIAIgBEHM0cEAEIwHAAsgAiAEQdzRwQAQjAcACyACIARB7NHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0EIABBADYCmAIgAEEEOgCcAgwECyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0GC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQpAIgACgC5AEiAiAFSQ0VIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkG80MEAEIwHAAsgASACQczQwQAQjAcACyACIARB3NDBABCMBwALIAIgBEHs0MEAEIwHAAsgAiAEQfzQwQAQjAcACyACIARBjNHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0DIABBADYCmAIgAEEDOgCcAgwDCyAAKALkASICIAAoApACIAAoApgCayILSQRAIAIiC0GAgARJDQULQYCABCAL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QCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAgD2UQwAAIMGSEIkEOAIAIAFBAmoiAiAAKALcASIFTw0GIAIgACgC6AEiBU8NByAAKALkASADakEIaiAAKALYASABakECai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgA0EMaiEDIAYgAUEDaiIBRw0ACyAAKALoASEBCyAAIAAoApACIAQgACgC5AEgARDJAyAAKALcASICIAZJDRUgAEEANgLcASACIAZrIQEgCUUNBiACIAZGDQggAUUNByAAKALYASICIAIgBmogAfwKAAAMBwsgASACQZzRwQAQjAcACyABIAJBrNHBABCMBwALIAIgBUG80cEAEIwHAAsgAiAFQczRwQAQjAcACyACIAVB3NHBABCMBwALIAIgBUHs0cEAEIwHAAsgAiAGRg0BCyAAIAE2AtwBCyAAIAAoApACIARqIgI2ApACIAIgACgCiAJHDQUgAEEANgKQAiAAQQQ6AJQCDAULIAAoAtwBIgFBA24iAiAAKAKIAiAAKAKQAmsiCUkEQCACIQkgAUGAgAxJDQQLQYCABCAJIAlBgIAETxsiBEEDbCIGIAAoAugBIgFLBEAgBiABayICIAAoAuABIAFrSwRAIBIgASACQQRBBBCkBSAAKALoASEBCyAAKALkASIFIAFBAnRqIQMgAkECTwR/IAJBAnRBBGsiBwRAIANBACAH/AsACyABIAJqIgJBAWshASAFIAJBAnRqQQRrBSADC0EANgIAIAAgAUEBaiIBNgLoAQsCQAJAAkACQAJAAkACQAJAAkAgCQRAQQAhA0EAIQEDQCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAFBAmoiAiAAKALc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IAEgDCAIazoAogcgASAnICiINwPQBgwPCyAMQf8BcUERSQ0OIAEgD0ENdkEPcUEEajYCyAYgASAPQQh2QR9xIglBAWo2AsQGIAEgD0EDdkEfcSIIQYECajYCwAZBBCAIQR1LDQMaIAlBHU0NAUEFDAMLIAEgDEEDazoAogcgASAnQgOINwPQBiAnQvgHg1ANAyABLQClB0UEQCABQQE6AKUHIAEoAvgGIQpBACIIRQRAIApB7J3EAEGAEPwKAAALIAhFBEAgCkGAEGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAIGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAMGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAQGtB7J3EAEGAEPwKAAALIAhFBEAgCkGA0ABqQeydxABBgBD8CgAACyAIRQRAIApBgOAAakHsncQAQYAQ/AoAAAsgCEUEQCAKQYDwAGpB7J3EAEGAEPwKAAALIAEoAvwGIQpBAEUEQCAKQeycxABBgAH8CgAACyAIRQRAIApBgAFqQeycxABBgAH8CgAACyAIRQRAIApBgAJqQeycxABBgAH8CgAACyAIRQRAIApBgANqQeycxABBgAH8CgAACyAIRQRAIApBgARqQeycxABBgAH8CgAACyAIRQRAIApBgAVqQeycxABBgAH8CgAACyAIRQRAIApBgAZqQeycxABBgAH8CgAACyAIRQRAIApBgAdqQeycxABBgAH8CgAACyAIRQRAIApBgAhqQeycxABBgAH8CgAACyAIRQRAIApBgAlqQeycxABBgAH8CgAACyAIRQRAIApBgApqQeycxABBgAH8CgAACyAIRQRAIApBgAtqQeycxABBgAH8CgAACyAIRQRAIApBgAxqQeycxABBgAH8CgAACyAIRQRAIApBgA1qQeycxABBgAH8CgAACyAIRQRAIApBgA5qQeycxABBgAH8CgAACyAIRQRAIApBgA9qQeycxABBgAH8CgAACyABQYCA/AM2AoAHIAFBBzoAhAcLIAFBBDoAowcMDQsgAUEAOgClByABQQI6AKMHIAEgDEERazoAogcgASAnQhGINwPQBgwMC0ECCzoAAUEBDBQLIAEgDEEKayIJOgCiByABICdCCogiJzcD0AYgCA0HIAlB/wFxQQpJDQADQCAnQv8Hg0ICUg0BIAEgCUEKayIPOgCi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QbyNyAAQ6wcAC545Azd/A30BfiMAQYABayIBJAACQAJAAkAgACgCaCICQf8fTQRAIAFBADYCQCABQQE2AjQgAUHwssEANgIwIAFCBDcCOCABQTBqEJIHIQMMAQsgASAAKAJkIgMtAAAiBDoABiABIAMtAAEiBjoAByAEQQEgBhsEQCABQQI2AjQgAUHAssEANgIwIAFCAjcCPCABQoCAgIDwBCI7IAFBB2qthDcDECABIDsgAUEGaq2ENwMIIAEgAUEIajYCOCABQTBqEJIHIQMMAQsgA0EEaigAACEqIAMoABAhDSABIAMvABQiBDYCHCAEQQNPBEAgAUEBNgI0IAFBmLLBADYCMCABQgE3AjwgASABQRxqrUKAgICAEIQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyABIANBJGooAAAiBkGAgID+eyAGQf////8HcRs2AiAgASADKAAoIgZBgICA/gMgBkH/////B3EbNgIkIARBKGxBrKrBAGohECACQYAga0EKdkEBaiEUQQAhBEEAIQIgKkEKdEGAIGoiKyEhAkADQAJAIAQgKkcEQCAUIARBAWoiBEcNASABQQA2AkAgAUEBNgI0IAFB1LHBADYCMCABQgQ3AjggAUEwahCSByEDDAQLIAFBADoAOCABIAI2AjQgASANNgIwIAAgAUEwahDpASAqRQ0CQYAgISFBASEuAkADQCAhIgRBgAhqIiEgACgCaCIDSwRAIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgACgCZCIGIARqIgIoABgiEUUEQCAQKAIkIRELIAMgBEEkckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEockkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEqckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAIoAAQhB0EAIQQgECgCCCAQKAIAIBAoAgRqaiACLwAoIiJBA00EfyAiQQJ0KAKkq0EFIAQLIBAoAhBsakEEaiI1rSAHrX4iO0IgiFBFBEAgAUEANgJAIAFBATYCNCABQdCrwQA2AjAgAUIE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IGooAAAgA0GUIGovAABsaiADQaQgaigAAEECdGoiIU0gA0GACGohAw0ACyABQQA2AkAgAUEBNgI0IAFB9LHBADYCMCABQgQ3AjggAUEwahCSByEDDAELQQAhAwsgAUGAAWokACADDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALnjkDN38DfQF+IwBBgAFrIgEkAAJAAkACQCAAKAJIIgJB/x9NBEAgAUEANgJAIAFBATYCNCABQfCywQA2AjAgAUIENwI4IAFBMGoQkgchAwwBCyABIAAoAkQiAy0AACIEOgAGIAEgAy0AASIGOgAHIARBASAGGwRAIAFBAjYCNCABQcCywQA2AjAgAUICNwI8IAFCgICAgPAEIjsgAUEHaq2ENwMQIAEgOyABQQZqrYQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyADQQRqKAAAISogAygAECENIAEgAy8AFCIENgIcIARBA08EQCABQQE2AjQgAUGYssEANgIwIAFCATcCPCABIAFBHGqtQoCAgIAQhDcDCCABIAFBCGo2AjggAUEwahCSByEDDAELIAEgA0EkaigAACIGQYCAgP57IAZB/////wdxGzYCICABIAMoACgiBkGAgID+AyAGQf////8HcRs2AiQgBEEobEGsqsEAaiEQIAJBgCBrQQp2QQFqIRRBACEEQQAhAiAqQQp0QYAgaiIrISECQANAAkAgBCAqRwRAIBQgBEEBaiIERw0BIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBAsgAUEAOgA4IAEgAjYCNCABIA02AjAgACABQTBqEIQCICpFDQJBgCAhIUEBIS4CQANAICEiBEGACGoiISAAKAJIIgNLBEAgAUEANgJAIAFBATYCNCABQdSxwQA2AjAgAUIENwI4IAFBMGoQkgchAwwGCyAAKAJEIgYgBGoiAigAGCIRRQRAIBAoAiQhEQsgAyAEQSRySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQShySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQSpySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIw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AtwCNwM4IAEoAtgCIgJFBEAgAUE4ahCPByECDAMLIAFBLGogAygCADYCACABIAEpAzg3AiQgASABKQPoAiIpNwMwIAEgAjYCIAJAAkAgKacoAkAiEARAIAFB/ABqIQQgAUHwAGohDCABQewCaiEiIAFB4AJqIQ0DQCABQQA6ALgCIAFBADYCsAIgAUHYAmogAUEgaiAdIAFBsAJqEKgBIAFB0ABqIgIgDUEIaigCADYCACABIA0pAwA3A0gCQAJAAkACQAJAAkACQAJAAkAgASkD2AIiKUIDUgRAIAQgIkG0AfwKAAAgDEEIaiACKAIANgIAIAwgASkDSDcDACABICk3A2gCQCABKAJwIAFB6ABqIClCAlEbIgIoAiwiB0EATgRAIAIoAighAgJAIAdFBEBBASELDAELIAcQcSILRQ0ICyAHBEAgCyACIAf8CgAACyABQegAahD8ASAHQQlJDQhB/NXBACAHIAtqQQlrQQkQ2wcNCSAHIQICQANAIAFBCGpBLyALIAIQqQNBASEdQQAhIiABKAIIQQFxRQRADAILAkAgByABKAIMIgJLBEAgAiALai0AAEEvRg0BCyACIAdNDQEMAgsLIAEgAjYCqAQgASALNgKkBCABIAFBpARqrUKAgICAIIQ3A7ACIAFCATcC5AIgAUECNgLcAiABQazWwQA2AtgCIAEgAUGwAmo2AuACIAFB6ABqIAFB2AJqEOwDIAEoAmgiAkGAgICAeEYNACABKQJsIilCIIinIQUgKachHSACISILIAFB2AJqIAFBIGogCyAHEMkEIAFB4ABqIAFB6AJqKAIANgIAIAEgASkD4AI3A1gCQCABKQPYAiIpQgNRBEAgAUHYAGoQjwchAgwBCyABQfwAaiABQewCakG0AfwKAAAgAUH4AGogAUHgAGooAgA2AgAgASApNwNoIAEgASkDWDcDcCABQQA2ArgCIAFCgICAgBA3ArACIAFB2AJqIAFB6ABqIAFBsAJqEJkBIAEoAtgCQQFGBEAgASkC3AIQzwchAiABKAKwAiIABEAgASgCtAIgAEEBEKIHCyABQegAahD8AQwBCyABKAKwAiEnIAEoArQCISggASgCuAIhAiABQegAahD8ASABQQA2ArgCIAEgAjYCtAIgASAoNgKwAiABQdgCaiABQbACahBGIAEoAtwCIQICQCABKALY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AEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALozADJ38EfQF+IwBBwAxrIgMkAAJAAkACQAJAAkACQAJAIAAoAtwEIgFBgYCAgHhGBEACQCAAKALwBCIKQQRJDQACQCAAKALsBCIELwAAIAQtAAJBEHRyQfDY5QNGBEAgCkELSQ0CIApBCmshAkEAIQECQANAIAEgBGpB+MPBAEELENsHRQ0BIAIgAUEBaiIBRw0ACyAKQf//A00NAyADQQA2AugHIANBATYC3AcgA0Hww8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMCQsgASAKSw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIOQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCkEBcUUEQCADKAKwASEIIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAOIAggBCACEJoBIAMoAtgHIQUgAygCtAwiDUGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiEHIAMoAsQKIQsgA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQkgA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIAk2AtwHIAMgCDYC2AcgAEH0BGogDhClBAwDCyADQZgGaiICIANBCGpBwAH8CgAAIANB2AdqIAIQaiADKALcByECIAMoAtgHIgVBgICAgHhGBEAgAkUNBAwKCyADQbADaiADQeAHakHkAvwKAAAgAygCxAohCyADKALICiEHIANBADoA4AcgAyAHNgLcByADIAs2AtgHIABB9ARqIANB2AdqEKUEQYCAgIB4IQ0MAgsgA0EIahCgAyAFIgINCAwCCyADQQA2AugHIANBATYC3AcgA0Goo8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMBwsgACgC8AQiBCABQQtqIghJDQIgAEEANgLwBCAEIAhHBEAgBCAIayIEBEAgACgC7AQiASABIAhqIAT8CgAA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2OUDRgRAIApBC0kNAiAKQQprIQJBACEBAkADQCABIARqQfjDwQBBCxDbB0UNASACIAFBAWoiAUcNAAsgCkH//wNNDQMgA0EANgLoByADQQE2AtwHIANB8MPBADYC2AcgA0IENwLgByADQdgHahCSByECDAkLIAEgCksNCiADQdgHaiAEIAEQ+wIgAykC3AchLCADKALYB0EBRgRAICwQzQchAgwJCyADQdgHaiAspyAsQiCIpxBNIAMoAtgHIQIgAygChAkiBEGAgICAeEYEQCACRQ0DDAkLIANBCGpBBHIgA0HYB2oiDkEEckGoAfwKAAAgA0HAAWogA0GQCWopAwAiLDcDACADIAMpA4gJNwO4ASADIAQ2ArQBIAMgAjYCCAJAICynIgpBAXFFBEAgAygCsAEhCCADKAKcASEEIANBmAZqIgIgA0H4AGoQwwMgDiAIIAQgAhCaASADKALYByEFIAMoArQMIg1BgICAgHhGDQEgAygC3AchAiADQbADaiADQeAHakHkAvwKAAAgAygCyAohByADKALECiELIANBoAJqIANBzApqQZAB/AoAACADKALcCyEJIANByAFqIANB4AtqQdQA/AoAACADKQO4DCEsIANBADoA4AcgAyAJNgLcByADIAg2AtgHIABB9ARqIA4Q4QMMAwsgA0GYBmoiAiADQQhqQcAB/AoAACADQdgHaiACEGogAygC3AchAiADKALYByIFQYCAgIB4RgRAIAJFDQQMCgsgA0GwA2ogA0HgB2pB5AL8CgAAIAMoAsQKIQsgAygCyAohByADQQA6AOAHIAMgBzYC3AcgAyALNgLYByAAQfQEaiADQdgHahDhA0GAgICAeCENDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoAvAEIgQgAUELaiIISQ0CIABBADYC8AQgBCAIRwRAIAQgCGsiBARAIAAoAuwEIgEgASAIaiAE/AoAAAsgACAENgLwBAsCQAJAAkAgACgC3ARBgICAgHhrDgIBAgALIAAQvgIMAQsgABC9AQsgACACNgIEIAAgBTYCACAAQQhqIANBsANqQeQC/AoAACAAIAc2AvACIAAgCzYC7AIgAEH0AmogA0GgAmpBkAH8CgAAIAAg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Sw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIJQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCEEBcUUEQCADKAKwASEHIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAJIAcgBCACEJoBIAMoAtgHIQUgAygCtAwiCkGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiELIAMoAsQKIQ4gA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQ0gA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIA02AtwHIAMgBzYC2AcgACAJEIQCDAMLIANBmAZqIgIgA0EIakHAAfwKAAAgA0HYB2ogAhBqIAMoAtwHIQIgAygC2AciBUGAgICAeEYEQCACRQ0EDAoLIANBsANqIANB4AdqQeQC/AoAACADKALECiEOIAMoAsgKIQsgA0EAOgDgByADIAs2AtwHIAMgDjYC2AcgACADQdgHahCEAkGAgICAeCEKDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoArAFIgQgAUELaiIHSQ0CIABBADYCsAUgBCAHRwRAIAQgB2siBARAIAAoAqwFIgEgASAHaiAE/AoAAAsgACAENgKwBQsgAEFAayEBAkACQAJAIAAoApwFQYCAgIB4aw4CAQIACyABEL4CDAELIAEQvQELIAAgAjYCRCAAIAU2AkAgAEHIAGogA0GwA2pB5AL8CgAAIAAgCzYCsAMgACAONgKsAyAAQbQDaiADQaACakGQAfwKAAAgACANNgLEBCAAQcgEaiADQcgBakHUAPwKAAAgACAsNwOgBSAAIAo2ApwFIAhBAXENACADQQhqEKADC0EAIQIgACgCnAUiAUGBgICAeEYNBQsgAEFAayESIAFBgICAgHhHDQEgACgCqAMiAiAAKAJITwRAIAAoArAFIQFBACECIABBADYCsAUgAQ0EDAULAkADQAJAIAAoAkQgAkEGdGoiBygCJCIJBEAgCSAAKAKwBSILIAxrIgJNDQEMBgtBlMbBABCBCAALIActADwhBUGAgAQhASACIAluIgggBygCICIEIAcoAjgiDmsiAkEAIAIgBE0bIgIgAiAISxsiAkGAgARNBEAgAiIBRQ0FCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAVBAWsOAwIBDAALIBIgASAMIAkgACgCrAUgCxCRAwwLCyAAKALEAUGAgICAeEcNAQwKCyASIAEgDiAMIAkgACgCrAUgCxDnASICDRAgAUEDbCIKIAAoAmAiAksNASABIAAoAmwiAksNAiAKIAAoAngiAksNAyAKIAAoAoQBIgJLDQQgAUECdCIHIAAoApABIgJLDQUgACgCXCEFIAAoAmghCCAAKAJ0IQQgACgCgAEhAiADQgQ3AqAIIANCAjcCmAggA0IENwKQCCADQgQ3AogIIANCBDcCgAggAyAHNgL8ByADIAo2AvQHIAMgAjYC8AcgAyAKNgLsByADIAQ2AugHIAMgATYC5AcgAyAINgLgByADIAo2AtwHIAMgBTYC2AcgAyAAKAKMATYC+AcgACAOIAEgA0HYB2oQ4gEMCQsgEiABIAwgCSAAKAKsBSALEOgBIAFBCWwiByAAKAKcASICSw0FIAAoApgBIQVBACEKIAAoArADIgRBAkkEQCAAIA4gASAFIAdBBEEAQQRBABDbAwwJCyABQQ9sIgggACgCqAEiAksNBiAAIA4gASAFIAcgACgCpAEgCCAEQQJHBH8gAUEVbCIKIAAoArQBIgJLDQggACgCsAEFQQQLIAoQ2wMMCAtBACAKIAJB5MbBABDqBwALQQAgASACQdTGwQAQ6gcAC0EAIAogAkHExsEAEOoHAAtBACAKIAJBtMbBABDqBwALQQAgByACQaTGwQAQ6gcAC0EAIAcgAkGUx8EAEOoHAAtBACAIIAJBhMfBABDqBwALQQAgCiACQfTGwQAQ6gcACyAAKAKoAyIEIAAoAkgiAk8NASAAKAJEIARBBnRqIgggCCgCOCABaiIENgI4IAAoAqgDIQIgCCgCICAERgRAIAAgAkEBaiICNgKoAwsgASAJbCAMaiEMIAIgACgCSEkNAAsgACgCsAUhCwwDCyAEIAJBpMfBABCMBwALQQAgByAEQYSkxwAQ6gcACwJAAkACQAJAAkACQAJAAkACQCAAKAK8BCIBBEAgACgCsAUhBSAAQYABaiEcIAAoAsAEIQIDQEGAgAQhCQJAAkACQAJAAkAgBSAQayIHIAFuIgggACgCuAQiBCACayIBQQAgASAETRsiASABIAhLGyIBQYCABEsNACABIgkNACAFIBBJDQFBACECIABBADYCsAUCQCAQBEAgBSAQRg0UIAdFDQEgACgCrAUiASABIBBqIAf8CgAAIAAgBzYCsAUMFAsgBSAQRg0TCyAAIAc2ArAFDBILIBIgCRDsAUEBIQFBACEHQQAhDkEAIQUCQANAIAEhCCAAKALoAyAALQDsAyAAKAKsBSAAKAKwBSAAKAK8BCAFbCAQaiIGELAEISggBUEDbCIBIAAoAtAEIg1PDRAgAUECdCIRIAAoAswEaiAoOAIAIAAoAvADIAAtAPQDIAAoAqwFIAAoArAFIAYQsAQhKCABQQFqIgQgACgC0AQiDU8EQCAEIQEMEQsgBEECdCILIAAoAswEaiAoOAIAIAAoAvgDIAAtAPwDIAAoAqwFIAAoArAFIAYQsAQhKCABQQJqIgIgACgC0AQiDU8EQCACIQEMEQsgAkECdCIMIAAoAswEaiAoOAIAIAAoArAEIAAtALQEIAAoAqwFIAAoArAFIAYQsAQhKCAAKALcBCIKIAVNBEAgBSAKQZTFwQAQjAcACyAAKALYBCAFQQJ0akMAAIA/ICiMEIkEQwAAgD+SlTgCACAAKAKYBCAALQCcBCAAKAKsBSAAKAKwBSAGELAEISggASAAKALoBCINTw0EIAAoAuQEIBFqIChDu26QPpRDAAAAP5I4AgAgACgCoAQgAC0ApAQgACgCrAUgACgCsAUgBhCwBCEoIAAoAugEIg0gBE0EQCAEIQEMBQsgACgC5AQgC2ogKEO7bpA+lEMAAAA/kjgCACAAKAKoBCAALQCsBCAAKAKsBSAAKAKwBSAGELAEISggACgC6AQiDSACTQRAIAIhAQwFCyAAKALkBCAMaiAoQ7tukD6UQwAAAD+SOAIAIAAoAoAEIAAtAIQEIAAoAqwFIAAoArAFIAYQsAQhKAJAAkACQAJAAkAgASAAKAL0BCINTw0AIAAoAvAEIBFqICgQiQQ4AgAgACgCiAQgAC0AjAQgACgCrAUgACgCsAUgBhCwBCEoIAAoAvQEIg0gBCIBTQ0AIAAoAvAEIAtqICgQiQQ4AgAgACgCkAQgAC0AlAQgACgCrAUgACgCsAUgBhCwBCEoIAAoAvQEIg0gAiIBTQ0AIAAoAvAEIAxqICgQiQQ4AgAgACgCYCAALQBkIAAoAqwFIAAoArAFIAYQsAQhKCAAKAJoIAAtAGwgACgCrAUgACgCsAUgBhCwBCEpIAAoAnAgAC0AdCAAKAKsBSAAKAKwBSAGELAEISogACgCeCAALQB8IAAoAqwFIAAoArAFIAYQsAQhKyAFQQJ0IgEgACgCgAUiAkkNAQwCCyABIA1B5MXBABCMBwALIAAoAvwEIAFBAnRqICggKCAolCApICmUkiAqICqUkiArICuUkpEiKJU4AgAgAUEBciIEIAAoAoAFIgJPBEAgBCEBDAELIAAoAvwEIARBAnRqICkgKJU4AgAgAUECciIEIAAoAoAFIgJPBEAgBCEBDAELIAAoAvwEIARBAnRqICogKJU4AgAgAUEDciIBIAAoAoAFIgJPDQAgACgC/AQgAUECdGogKyAolTgCACAALQCkAyIBQQhHDQEMAgsgASACQdTFwQAQjAcACyAALQDkAyETIAAoAuADIAAtANwDIRUgACgC2AMgAC0A1AMhFyAAKALQAyAALQDMAyEZIAAoAsgDIAAtAMQDIRsgACgCwAMgAC0AvAMhDSAAKAK4AyAALQC0AyELIAAoArADIAAtAKwDIQogACgCqAMgACgCoAMgASAAKAKsBSAAKAKwBSAGELAEISggBUEJbCIBIAAoAowFIgJPDQQgACgCiAUgAUECdGogKDgCACAKIAAoAqwFIAAoArAFIAYQsAQhKCABQQFqIgQgACgCjAUiAk8EQCAEIQEMBQsgACgCiAUgBEECdGogKDgCACALIAAoAqwFIAAoArAFIAYQsAQhKCABQQJqIgQgACgCjAUiAk8EQCAEIQEMBQsgACgCiAUgBEECdGogKDgCACANIAAoAqwFIAAoArAFIAYQsAQhKCABQQNqIgQgACgCjAUiAk8EQCAEIQEMBQsgACgCiAUgBEECdGogKDgCACAbIAAoAqwFIAAoArAFIAYQsAQhKCABQQRqIgQgACgCjAUiAk8EQCAEIQEMBQsgACgCiAUgBEECdGogKDgCACAZIAAoAqwFIAAoArAFIAYQsAQhKCABQQVqIgQgACgCjAUiAk8EQCAEIQEMBQsgACgCiAUgBEECdGogKDgCACAXIAAoAqwFIAAoArAFIAYQsAQhKCABQQZqIgQgACgCjAUiAk8EQCAEIQEMBQsgACgCiAUgBEECdGogKDgCACAVIAAoAqwFIAAoArAFIAYQsAQhKCABQQdqIgQgACgCjAUiAk8EQCAEIQEMBQsgACgCiAUgBEECdGogKDgCACATIAAoAqwFIAAoArAFIAYQsAQhKCABQQhqIgEgACgCjAUiAk8NBCAAKAKIBSABQQJ0aiAoOAIACyAALQCsAiIBQQhHBEAgAC0AnAMhHSAAKAKYAyAALQCUAyEfIAAoApADIAAtAIwDISEgACgCiAMgAC0AhAMhIyAAKAKAAyAALQD8AiElIAAoAvgCIAAtAPQCIScgACgC8AIgAC0A7AIhFCAAKALoAiAALQDkAiEWIAAoAuACIAAtANwCIRggACgC2AIgAC0A1AIhGiAAKALQAiAALQDMAiEPIAAoAsgCIAAtAMQCIREgACgCwAIgAC0AvAIhDCAAKAK4AiAALQC0AiEEIAAoArACIAAoAqgCIAEgACgCrAUgACgCsAUgBhCwBCEoIAVBD2wiASAAKAKYBSIFTw0CIAAoApQFIAFBAnRqICg4AgAgBCAAKAKsBSAAKAKwBSAGELAEISggAUEBaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgDCAAKAKsBSAAKAKwBSAGELAEISggAUECaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgESAAKAKsBSAAKAKwBSAGELAEISggAUEDaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgDyAAKAKsBSAAKAKwBSAGELAEISggAUEEaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgGiAAKAKsBSAAKAKwBSAGELAEISggAUEFaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgGCAAKAKsBSAAKAKwBSAGELAEISggAUEGaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgFiAAKAKsBSAAKAKwBSAGELAEISggAUEHaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgFCAAKAKsBSAAKAKwBSAGELAEISggAUEIaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgJyAAKAKsBSAAKAKwBSAGELAEISggAUEJaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgJSAAKAKsBSAAKAKwBSAGELAEISggAUEKaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgIyAAKAKsBSAAKAKwBSAGELAEISggAUELaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgISAAKAKsBSAAKAKwBSAGELAEISggAUEMaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgHyAAKAKsBSAAKAKwBSAGELAEISggAUENaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgHSAAKAKsBSAAKAKwBSAGELAEISggAUEOaiIBIAAoApgFIgVPDQIgACgClAUgAUECdGogKDgCAAsCQCAALQCEAUEIRwRAIANB2AdqIBxBqAH8CgAAQQAhBSAHIQIgDiEBA0AgA0HYB2ogBWoiBCgCACAEQQRqLQAAIAAoAqwFIAAoArAFIAYQsAQhKCABIAAoAqQFIgRPDQIgACgCoAUgAmogKDgCACACQQRqIQIgAUEBaiEBIAVBCGoiBUGoAUcNAAsLIAdB1ABqIQcgDkEVaiEOIAggCCAJSSICaiEBIAghBSACRQ0GDAELCyABIARBxMXBABCMBwALIAEgBUG0xcEAEIwHAAtBACAQIAVBhKTHABDqBwALIAEgAkGkxcEAEIwHAAsgASANQfTFwQAQjAcACyAJQQNsIg8gACgC0AQiAUsNAiAJIAAoAtwEIgFLDQMgDyAAKALoBCIBSw0EIA8gACgC9AQiAUsNBSAJQQJ0Ig0gACgCgAUiAUsNBiAJQQlsQQAgACgCxAQiAhsiESAAKAKMBSIBSw0HIAlBD2xBACACQQFLGyILIAAoApgFIgFLDQggCUEVbEEAIAJBAksbIgwgACgCpAUiAUsNCSAAKALABCEKIAAoAswEIQ4gACgC2AQhByAAKALkBCEFIAAoAvAEIQggACgC/AQhBCAAKAKIBSECIAAoApQFIQEgA0IENwKgCCADQgI3ApgIIAMgDDYClAggAyALNgKMCCADIAE2AogIIAMgETYChAggAyACNgKACCADIA02AvwHIAMgBDYC+AcgAyAPNgL0ByADIAg2AvAHIAMgDzYC7AcgAyAFNgLoByADIAk2AuQHIAMgBzYC4AcgAyAPNgLcByADIA42AtgHIAMgACgCoAU2ApAIIAAgCiAJIANB2AdqEOIBIAAgACgCwAQgCWoiAjYCwAQgACgCvAQiASAJbCAQaiEQIAAoArAFIQUgAQ0ACwtBhMTBABCBCAALQQAgDyABQYTFwQAQ6gcAC0EAIAkgAUH0xMEAEOoHAAtBACAPIAFB5MTBABDqBwALQQAgDyABQdTEwQAQ6gcAC0EAIA0gAUHExMEAEOoHAAtBACARIAFBtMTBABDqBwALQQAgCyABQaTEwQAQ6gcAC0EAIAwgAUGUxMEAEOoHAAsgASANQYTGwQAQjAcACyALIAxJDQJBACECIABBADYCsAUgCyAMayEBIAwEQCALIAxGDQIgAQRAIAAoAqwFIgQgBCAMaiAB/AoAAAsgACABNgKwBQwCCyALIAxGDQELIAAgATYCsAULIANBwAxqJAAgAg8LQQAgDCALQYSkxwAQ6gcAC0EAIAEgCEHMw8EAEOoHAAuYMAMnfwR9AX4jAEHADGsiAyQAAkACQAJAAkACQAJAAkAgACgCvAUiAUGBgICAeEYEQAJAIAAoAtAFIghBBEkNAAJAIAAoAswFIgQvAAAgBC0AAkEQdHJB8NjlA0YEQCAIQQtJDQIgCEEKayECQQAhAQJAA0AgASAEakH4w8EAQQsQ2wdFDQEgAiABQQFqIgFHDQALIAhB//8DTQ0DIANBADYC6AcgA0EBNgLcByADQfDDwQA2AtgHIANCBDcC4AcgA0HYB2oQkgchAgwJCyABIAhLDQogA0HYB2ogBCABEPsCIAMpAtwHISwgAygC2AdBAUYEQCAsEM0HIQIMCQsgA0HYB2ogLKcgLEIgiKcQTSADKALYByECIAMoAoQJIgRBgICAgHhGBEAgAkUNAwwJCyADQQhqQQRyIANB2AdqIglBBHJBqAH8CgAAIANBwAFqIANBkAlqKQMAIiw3AwAgAyADKQOICTcDuAEgAyAENgK0ASADIAI2AggCQCAspyIIQQFxRQRAIAMoArABIQcgAygCnAEhBCADQZgGaiICIANB+ABqEMMDIAkgByAEIAIQmgEgAygC2AchBSADKAK0DCIKQYCAgIB4Rg0BIAMoAtwHIQIgA0GwA2ogA0HgB2pB5AL8CgAAIAMoAsgKIQsgAygCxAohDiADQaACaiADQcwKakGQAfwKAAAgAygC3AshDSADQcgBaiADQeALakHUAPwKAAAgAykDuAwhLCADQQA6AOAHIAMgDTYC3AcgAyAHNgLYByAAIAkQ6QEMAwsgA0GYBmoiAiADQQhqQcAB/AoAACADQdgHaiACEGogAygC3AchAiADKALYByIFQYCAgIB4RgRAIAJFDQQMCgsgA0GwA2ogA0HgB2pB5AL8CgAAIAMoAsQKIQ4gAygCyAohCyADQQA6AOAHIAMgCzYC3AcgAyAONgLYByAAIANB2AdqEOkBQYCAgIB4IQoMAgsgA0EIahCgAyAFIgINCAwCCyADQQA2AugHIANBATYC3AcgA0Goo8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMBwsgACgC0AUiBCABQQtqIgdJDQIgAEEANgLQBSAEIAdHBEAgBCAHayIEBEAgACgCzAUiASABIAdqIAT8CgAACyAAIAQ2AtAFCyAAQeAAaiEBAkACQAJAIAAoArwFQYCAgIB4aw4CAQIACyABEL4CDAELIAEQvQELIAAgAjYCZCAAIAU2AmAgAEHoAGogA0GwA2pB5AL8CgAAIAAgCzYC0AMgACAONgLMAyAAQdQDaiADQaACakGQAfwKAAAgACANNgLkBCAAQegEaiADQcgBakHUAPwKAAAgACAsNwPABSAAIAo2ArwFIAhBAXENACADQQhqEKADC0EAIQIgACgCvAUiAUGBgICAeEYNBQsgAEHgAGohEiABQYCAgIB4Rw0BIAAoAsgDIgIgACgCaE8EQCAAKALQBSEBQQAhAiAAQQA2AtAFIAENBAwFCwJAA0ACQCAAKAJkIAJBBnRqIgcoAiQiCQRAIAkgACgC0AUiCyAMayICTQ0BDAYLQZTGwQAQgQgACyAHLQA8IQVBgIAEIQEgAiAJbiIIIAcoAiAiBCAHKAI4Ig5rIgJBACACIARNGyICIAIgCEsbIgJBgIAETQRAIAIiAUUNBQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAFQQFrDgMCAQwACyASIAEgDCAJIAAoAswFIAsQkQMMCwsgACgC5AFBgICAgHhHDQEMCgsgEiABIA4gDCAJIAAoAswFIAsQ5wEiAg0QIAFBA2wiCiAAKAKAASICSw0BIAEgACgCjAEiAksNAiAKIAAoApgBIgJLDQMgCiAAKAKkASICSw0EIAFBAnQiByAAKAKwASICSw0FIAAoAnwhBSAAKAKIASEIIAAoApQBIQQgACgCoAEhAiADQgQ3AqAIIANCAjcCmAggA0IENwKQCCADQgQ3AogIIANCBDcCgAggAyAHNgL8ByADIAo2AvQHIAMgAjYC8AcgAyAKNgLsByADIAQ2AugHIAMgATYC5AcgAyAINgLgByADIAo2AtwHIAMgBTYC2AcgAyAAKAKsATYC+AcgACAOIAEgA0HYB2oQkwIMCQsgEiABIAwgCSAAKALMBSALEOgBIAFBCWwiByAAKAK8ASICSw0FIAAoArgBIQVBACEKIAAoAtADIgRBAkkEQCAAIA4gASAFIAdBBEEAQQRBABDqBAwJCyABQQ9sIgggACgCyAEiAksNBiAAIA4gASAFIAcgACgCxAEgCCAEQQJHBH8gAUEVbCIKIAAoAtQBIgJLDQggACgC0AEFQQQLIAoQ6gQMCAtBACAKIAJB5MbBABDqBwALQQAgASACQdTGwQAQ6gcAC0EAIAogAkHExsEAEOoHAAtBACAKIAJBtMbBABDqBwALQQAgByACQaTGwQAQ6gcAC0EAIAcgAkGUx8EAEOoHAAtBACAIIAJBhMfBABDqBwALQQAgCiACQfTGwQAQ6gcACyAAKALIAyIEIAAoAmgiAk8NASAAKAJkIARBBnRqIgggCCgCOCABaiIENgI4IAAoAsgDIQIgCCgCICAERgRAIAAgAkEBaiICNgLIAwsgASAJbCAMaiEMIAIgACgCaEkNAAsgACgC0AUhCwwDCyAEIAJBpMfBABCMBwALQQAgByAEQYSkxwAQ6gcACwJAAkACQAJAAkACQAJAAkACQCAAKALcBCIBBEAgACgC0AUhBSAAQaABaiEcIAAoAuAEIQIDQEGAgAQhCQJAAkACQAJAAkAgBSAQayIHIAFuIgggACgC2AQiBCACayIBQQAgASAETRsiASABIAhLGyIBQYCABEsNACABIgkNACAFIBBJDQFBACECIABBADYC0AUCQCAQBEAgBSAQRg0UIAdFDQEgACgCzAUiASABIBBqIAf8CgAAIAAgBzYC0AUMFAsgBSAQRg0TCyAAIAc2AtAFDBILIBIgCRDsAUEBIQFBACEHQQAhDkEAIQUCQANAIAEhCCAAKAKIBCAALQCMBCAAKALMBSAAKALQBSAAKALcBCAFbCAQaiIGELAEISggBUEDbCIBIAAoAvAEIg1PDRAgAUECdCIRIAAoAuwEaiAoOAIAIAAoApAEIAAtAJQEIAAoAswFIAAoAtAFIAYQsAQhKCABQQFqIgQgACgC8AQiDU8EQCAEIQEMEQsgBEECdCILIAAoAuwEaiAoOAIAIAAoApgEIAAtAJwEIAAoAswFIAAoAtAFIAYQsAQhKCABQQJqIgIgACgC8AQiDU8EQCACIQEMEQsgAkECdCIMIAAoAuwEaiAoOAIAIAAoAtAEIAAtANQEIAAoAswFIAAoAtAFIAYQsAQhKCAAKAL8BCIKIAVNBEAgBSAKQZTFwQAQjAcACyAAKAL4BCAFQQJ0akMAAIA/ICiMEIkEQwAAgD+SlTgCACAAKAK4BCAALQC8BCAAKALMBSAAKALQBSAGELAEISggASAAKAKIBSINTw0EIAAoAoQFIBFqIChDu26QPpRDAAAAP5I4AgAgACgCwAQgAC0AxAQgACgCzAUgACgC0AUgBhCwBCEoIAAoAogFIg0gBE0EQCAEIQEMBQsgACgChAUgC2ogKEO7bpA+lEMAAAA/kjgCACAAKALIBCAALQDMBCAAKALMBSAAKALQBSAGELAEISggACgCiAUiDSACTQRAIAIhAQwFCyAAKAKEBSAMaiAoQ7tukD6UQwAAAD+SOAIAIAAoAqAEIAAtAKQEIAAoAswFIAAoAtAFIAYQsAQhKAJAAkACQAJAAkAgASAAKAKUBSINTw0AIAAoApAFIBFqICgQiQQ4AgAgACgCqAQgAC0ArAQgACgCzAUgACgC0AUgBhCwBCEoIAAoApQFIg0gBCIBTQ0AIAAoApAFIAtqICgQiQQ4AgAgACgCsAQgAC0AtAQgACgCzAUgACgC0AUgBhCwBCEoIAAoApQFIg0gAiIBTQ0AIAAoApAFIAxqICgQiQQ4AgAgACgCgAEgAC0AhAEgACgCzAUgACgC0AUgBhCwBCEoIAAoAogBIAAtAIwBIAAoAswFIAAoAtAFIAYQsAQhKSAAKAKQASAALQCUASAAKALMBSAAKALQBSAGELAEISogACgCmAEgAC0AnAEgACgCzAUgACgC0AUgBhCwBCErIAVBAnQiASAAKAKgBSICSQ0BDAILIAEgDUHkxcEAEIwHAAsgACgCnAUgAUECdGogKCAoICiUICkgKZSSICogKpSSICsgK5SSkSIolTgCACABQQFyIgQgACgCoAUiAk8EQCAEIQEMAQsgACgCnAUgBEECdGogKSAolTgCACABQQJyIgQgACgCoAUiAk8EQCAEIQEMAQsgACgCnAUgBEECdGogKiAolTgCACABQQNyIgEgACgCoAUiAk8NACAAKAKcBSABQQJ0aiArICiVOAIAIAAtAMQDIgFBCEcNAQwCCyABIAJB1MXBABCMBwALIAAtAIQEIRMgACgCgAQgAC0A/AMhFSAAKAL4AyAALQD0AyEXIAAoAvADIAAtAOwDIRkgACgC6AMgAC0A5AMhGyAAKALgAyAALQDcAyENIAAoAtgDIAAtANQDIQsgACgC0AMgAC0AzAMhCiAAKALIAyAAKALAAyABIAAoAswFIAAoAtAFIAYQsAQhKCAFQQlsIgEgACgCrAUiAk8NBCAAKAKoBSABQQJ0aiAoOAIAIAogACgCzAUgACgC0AUgBhCwBCEoIAFBAWoiBCAAKAKsBSICTwRAIAQhAQwFCyAAKAKoBSAEQQJ0aiAoOAIAIAsgACgCzAUgACgC0AUgBhCwBCEoIAFBAmoiBCAAKAKsBSICTwRAIAQhAQwFCyAAKAKoBSAEQQJ0aiAoOAIAIA0gACgCzAUgACgC0AUgBhCwBCEoIAFBA2oiBCAAKAKsBSICTwRAIAQhAQwFCyAAKAKoBSAEQQJ0aiAoOAIAIBsgACgCzAUgACgC0AUgBhCwBCEoIAFBBGoiBCAAKAKsBSICTwRAIAQhAQwFCyAAKAKoBSAEQQJ0aiAoOAIAIBkgACgCzAUgACgC0AUgBhCwBCEoIAFBBWoiBCAAKAKsBSICTwRAIAQhAQwFCyAAKAKoBSAEQQJ0aiAoOAIAIBcgACgCzAUgACgC0AUgBhCwBCEoIAFBBmoiBCAAKAKsBSICTwRAIAQhAQwFCyAAKAKoBSAEQQJ0aiAoOAIAIBUgACgCzAUgACgC0AUgBhCwBCEoIAFBB2oiBCAAKAKsBSICTwRAIAQhAQwFCyAAKAKoBSAEQQJ0aiAoOAIAIBMgACgCzAUgACgC0AUgBhCwBCEoIAFBCGoiASAAKAKsBSICTw0EIAAoAqgFIAFBAnRqICg4AgALIAAtAMwCIgFBCEcEQCAALQC8AyEdIAAoArgDIAAtALQDIR8gACgCsAMgAC0ArAMhISAAKAKoAyAALQCkAyEjIAAoAqADIAAtAJwDISUgACgCmAMgAC0AlAMhJyAAKAKQAyAALQCMAyEUIAAoAogDIAAtAIQDIRYgACgCgAMgAC0A/AIhGCAAKAL4AiAALQD0AiEaIAAoAvACIAAtAOwCIQ8gACgC6AIgAC0A5AIhESAAKALgAiAALQDcAiEMIAAoAtgCIAAtANQCIQQgACgC0AIgACgCyAIgASAAKALMBSAAKALQBSAGELAEISggBUEPbCIBIAAoArgFIgVPDQIgACgCtAUgAUECdGogKDgCACAEIAAoAswFIAAoAtAFIAYQsAQhKCABQQFqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAMIAAoAswFIAAoAtAFIAYQsAQhKCABQQJqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACARIAAoAswFIAAoAtAFIAYQsAQhKCABQQNqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAPIAAoAswFIAAoAtAFIAYQsAQhKCABQQRqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAaIAAoAswFIAAoAtAFIAYQsAQhKCABQQVqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAYIAAoAswFIAAoAtAFIAYQsAQhKCABQQZqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAWIAAoAswFIAAoAtAFIAYQsAQhKCABQQdqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAUIAAoAswFIAAoAtAFIAYQsAQhKCABQQhqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAnIAAoAswFIAAoAtAFIAYQsAQhKCABQQlqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAlIAAoAswFIAAoAtAFIAYQsAQhKCABQQpqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAjIAAoAswFIAAoAtAFIAYQsAQhKCABQQtqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAhIAAoAswFIAAoAtAFIAYQsAQhKCABQQxqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAfIAAoAswFIAAoAtAFIAYQsAQhKCABQQ1qIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAdIAAoAswFIAAoAtAFIAYQsAQhKCABQQ5qIgEgACgCuAUiBU8NAiAAKAK0BSABQQJ0aiAoOAIACwJAIAAtAKQBQQhHBEAgA0HYB2ogHEGoAfwKAABBACEFIAchAiAOIQEDQCADQdgHaiAFaiIEKAIAIARBBGotAAAgACgCzAUgACgC0AUgBhCwBCEoIAEgACgCxAUiBE8NAiAAKALABSACaiAoOAIAIAJBBGohAiABQQFqIQEgBUEIaiIFQagBRw0ACwsgB0HUAGohByAOQRVqIQ4gCCAIIAlJIgJqIQEgCCEFIAJFDQYMAQsLIAEgBEHExcEAEIwHAAsgASAFQbTFwQAQjAcAC0EAIBAgBUGEpMcAEOoHAAsgASACQaTFwQAQjAcACyABIA1B9MXBABCMBwALIAlBA2wiDyAAKALwBCIBSw0CIAkgACgC/AQiAUsNAyAPIAAoAogFIgFLDQQgDyAAKAKUBSIBSw0FIAlBAnQiDSAAKAKgBSIBSw0GIAlBCWxBACAAKALkBCICGyIRIAAoAqwFIgFLDQcgCUEPbEEAIAJBAUsbIgsgACgCuAUiAUsNCCAJQRVsQQAgAkECSxsiDCAAKALEBSIBSw0JIAAoAuAEIQogACgC7AQhDiAAKAL4BCEHIAAoAoQFIQUgACgCkAUhCCAAKAKcBSEEIAAoAqgFIQIgACgCtAUhASADQgQ3AqAIIANCAjcCmAggAyAMNgKUCCADIAs2AowIIAMgATYCiAggAyARNgKECCADIAI2AoAIIAMgDTYC/AcgAyAENgL4ByADIA82AvQHIAMgCDYC8AcgAyAPNgLsByADIAU2AugHIAMgCTYC5AcgAyAHNgLgByADIA82AtwHIAMgDjYC2AcgAyAAKALABTYCkAggACAKIAkgA0HYB2oQkwIgACAAKALgBCAJaiICNgLgBCAAKALcBCIBIAlsIBBqIRAgACgC0AUhBSABDQALC0GExMEAEIEIAAtBACAPIAFBhMXBABDqBwALQQAgCSABQfTEwQAQ6gcAC0EAIA8gAUHkxMEAEOoHAAtBACAPIAFB1MTBABDqBwALQQAgDSABQcTEwQAQ6gcAC0EAIBEgAUG0xMEAEOoHAAtBACALIAFBpMTBABDqBwALQQAgDCABQZTEwQAQ6gcACyABIA1BhMbBABCMBwALIAsgDEkNAkEAIQIgAEEANgLQBSALIAxrIQEgDARAIAsgDEYNAiABBEAgACgCzAUiBCAEIAxqIAH8CgAACyAAIAE2AtAFDAILIAsgDEYNAQsgACABNgLQBQsgA0HADGokACACDwtBACAMIAtBhKTHABDqBwALQQAgASAIQczDwQAQ6gcAC7soBBl/BX0CfgF7IwBB0AJrIhokAEKAgICAgICAgMAAIAGtIiSAIiUgJH5CgICAgICAgIDAAFKtAn8gAUGBIE8EQEEBIAFBAXJnQR9zIgZBAXYgBkEBcWoiBnQgASAGdmpBAXYMAQtBwAAgASABQQF2ayIGIAZBwABPGwshGyAlfCElIABBBGshHSAAQRBrIR4gAEEIaiEcQQEhCgJAA0BBASENQQAhEyABIBVLBEAgACAVQQJ0IhZqIRMgFa0iJAJ/AkAgASAVayIOIBtJDQACQCAOQQJJBEAgDiEHDAELQwAAgD8hIAJ/AkAgEygCBCIGIAUoAgBBBGooAgAiECgCCCIUSQRAIBMoAgAhCSAQKAIEIhEgBkEYbGoiCy0AEyIIIAstABIiDSALLQARIgcgByANSRsiByAHIAhJGyINBH1DAABAwSAQKgJEIBAtAFhBAkYiBxsiH0MAABBBIBAqAkggBxsgH5NDAAB+Q5UgDUEBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIiALQQxqLwEAIgdB//8BcUUEQCAHQRB0DAMLIAdB/wdxIQggB0GAgAJxIQ0gB0GA+AFxIgdBgPgBRgRAIA1BEHQiB0GAgID8B3IgCEUNAxogByAIQQ10ckGAgID+B3IMAwsgDUEQdCENIAdFDQEgB0ENdEGAgID8AHEgCEENdHJBgICAwANqIA1yDAILDAcLIAggCGdBEGsiB0H//wNxQQhqdEH///8DcSANQYCAgNgDciAHQRd0a3ILviIfQwAAgD9eBEAgHxDGBUNU+C1AlEMAAIA/kpEhIAtDAACAPyEhAn8CQCAJIBRJBEAgESAJQRhsaiILLQATIgggCy0AEiINIAstABEiByAHIA1JGyIHIAcgCEkbIg0EfUMAAEDBIBAqAkQgEC0AWEECRiIHGyIfQwAAEEEgECoCSCAHGyAfk0MAAH5DlSANQQFrQf8BcbOUkhCJBCIfIB+SBUMAAAAACyEjIAtBDGovAQAiB0H//wFxRQRAIAdBEHQMAwsgB0H/B3EhCCAHQYCAAnEhDSAHQYD4AXEiB0GA+AFGBEAgDUEQdCIHQYCAgPwHciAIRQ0DGiAHIAhBDXRyQYCAgP4HcgwDCyANQRB0IQ0gB0UNASAHQQ10QYCAgPwAcSAIQQ10ckGAgIDAA2ogDXIMAgsgCSAUQdy7xwAQjAcACyAIIAhnQRBrIgdB//8DcUEIanRB////A3EgDUGAgIDYA3IgB0EXdGtyC74iH0MAAIA/XgRAIB8QxgVDVPgtQJRDAACAP5KRISELAkACQAJAAkAgIiAglCIfIB9bIB8gIyAhlGBFcSIPRQRAQQIhByAOQQJGDQUgHCAVQQJ0aiESA0BDAACAPyEgAn8CQCAUIBIoAgAiDUsEQCARIA1BGGxqIhgtABMiCSAYLQASIgsgGC0AESIIIAggC0kbIgggCCAJSRsiCwR9QwAAQMEgECoCRCAQLQBYQQJGIggbIh9DAAAQQSAQKgJIIAgbIB+TQwAAfkOVIAtBAWtB/wFxs5SSEIkEIh8gH5IFQwAAAAALISIgGEEMai8BACIIQf//AXFFBEAgCEEQdAwDCyAIQf8HcSEJIAhBgIACcSELIAhBgPgBcSIIQYD4AUYEQCALQRB0IghBgICA/AdyIAlFDQMaIAggCUENdHJBgICA/gdyDAMLIAtBEHQhCyAIRQ0BIAhBDXRBgICA/ABxIAlBDXRyQYCAgMADaiALcgwCCyANIBRB3LvHABCMBwALIAkgCWdBEGsiCEH//wNxQQhqdEH///8DcSALQYCAgNgDciAIQRd0a3ILviIfQwAAgD9eBEAgHxDGBUNU+C1AlEMAAIA/kpEhIAtDAACAPyEhAn8CQCAGIBRJBEAgESAGQRhsaiIJLQATIgsgCS0AEiIIIAktABEiBiAGIAhJGyIGIAYgC0kbIggEfUMAAEDBIBAqAkQgEC0AWEECRiIGGyIfQwAAEEEgECoCSCAGGyAfk0MAAH5DlSAIQQFrQf8BcbOUkhCJBCIfIB+SBUMAAAAACyEjIAlBDGovAQAiBkH//wFxRQRAIAZBEHQMAwsgBkH/B3EhCyAGQYCAAnEhCCAGQYD4AXEiBkGA+AFGBEAgCEEQdCIGQYCAgPwHciALRQ0DGiAGIAtBDXRyQYCAgP4HcgwDCyAIQRB0IQggBkUNASAGQQ10QYCAgPwAcSALQQ10ckGAgIDAA2ogCHIMAgsMDQsgCyALZ0EQayIGQf//A3FBCGp0Qf///wNxIAhBgICA2ANyIAZBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEhCyAiICCUIh8gH1sgHyAjICGUYEVxDQMgEkEEaiESIA0hBiAOIAdBAWoiB0cNAAsMAQsgDkECRg0CQQIhByAcIBVBAnRqIRIDQEMAAIA/ISACfwJAIBQgEigCACINSwRAIBEgDUEYbGoiGC0AEyIJIBgtABIiCyAYLQARIgggCCALSRsiCCAIIAlJGyILBH1DAABAwSAQKgJEIBAtAFhBAkYiCBsiH0MAABBBIBAqAkggCBsgH5NDAAB+Q5UgC0EBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIiAYQQxqLwEAIghB//8BcUUEQCAIQRB0DAMLIAhB/wdxIQkgCEGAgAJxIQsgCEGA+AFxIghBgPgBRgRAIAtBEHQiCEGAgID8B3IgCUUNAxogCCAJQQ10ckGAgID+B3IMAwsgC0EQdCELIAhFDQEgCEENdEGAgID8AHEgCUENdHJBgICAwANqIAtyDAILIA0gFEHcu8cAEIwHAAsgCSAJZ0EQayIIQf//A3FBCGp0Qf///wNxIAtBgICA2ANyIAhBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEgC0MAAIA/ISECfwJAIAYgFEkEQCARIAZBGGxqIgktABMiCyAJLQASIgggCS0AESIGIAYgCEkbIgYgBiALSRsiCAR9QwAAQMEgECoCRCAQLQBYQQJGIgYbIh9DAAAQQSAQKgJIIAYbIB+TQwAAfkOVIAhBAWtB/wFxs5SSEIkEIh8gH5IFQwAAAAALISMgCUEMai8BACIGQf//AXFFBEAgBkEQdAwDCyAGQf8HcSELIAZBgIACcSEIIAZBgPgBcSIGQYD4AUYEQCAIQRB0IgZBgICA/AdyIAtFDQMaIAYgC0ENdHJBgICA/gdyDAMLIAhBEHQhCCAGRQ0BIAZBDXRBgICA/ABxIAtBDXRyQYCAgMADaiAIcgwCCwwMCyALIAtnQRBrIgZB//8DcUEIanRB////A3EgCEGAgIDYA3IgBkEXdGtyC74iH0MAAIA/XgRAIB8QxgVDVPgtQJRDAACAP5KRISELICIgIJQiHyAfXCAfICMgIZRgcg0CIBJBBGohEiANIQYgDiAHQQFqIgdHDQALCyAOIQcLIAcgG0kNAyAPRQ0CIAdBAkkEQEEBIQcMAwsgB0EBdiENIBMgB0ECdCIGaiEIQQAhCSAHQQhJDQEgHiAGIBZqaiEOIA1B/P///wdxIgkhBgNAIBMgDv0AAgAgE/0AAgAiJv0NDA0ODwgJCgsEBQYHAAECA/0LAgAgDiAmICb9DQwNDg8ICQoLBAUGBwABAgP9CwIAIA5BEGshDiATQRBqIRMgBkEEayIGDQALIAkgDUYNAgwBCyATQQhqIQhBACEJQQEhDUECIQcLIAAgCUECdCIGIBZqaiEOIA0gCWshCSAIIAZrQQRrIQYDQCAOKAIAIQ0gDiAGKAIANgIAIAYgDTYCACAGQQRrIQYgDkEEaiEOIAlBAWsiCQ0ACwsgB0EBdEEBcgwBCyAOIBsgDiAbSRtBAXQgBEUNABogE0EgIA4gDkEgTxsiBiACIANBAEEAIAUQOCAGQQF0QQFyCyINQQF2IBVqrXwgJX4gFSAKQQF2a60gJHwgJX6FeachEwsCQAJAIAxBAkkNACAdIBVBAnQiBmohCCAAIAZqIRgDQCAMQQFrIgsgGkGOAmpqLQAAIBNJDQECfwJAAkAgAyAaQQRqIAtBAnRqKAIAIgZBAXYiDyAKQQF2IgxqIhRPIAYgCnJBAXFFcUUEQCAAIBUgFGtBAnRqIQ4gBkEBcUUNAQwCCyAUQQF0DAILIA4gDyACIAMgD0EBcmdBAXRBPnNBACAFEDgLIApBAXFFBEAgDiAPQQJ0aiAMIAIgAyAMQQFyZ0EBdEE+c0EAIAUQOAsCQCAKQQJJIAZBAklyDQAgAyAMIA8gDCAPSSIJGyIHSQ0AIAUoAgAgDiAPQQJ0aiEMIAdBAnQiBwRAIAIgDCAOIAkbIAf8CgAACyACIAdqIQdBBGoiCigCACIXKAIIIRkCQCAJRQRAIAIhBgNAQwAAgD8hIAJ/AkAgGSAMKAIAIgpLBEAgBigCACESIBcoAgQiFiAKQRhsaiIRLQATIg8gES0AEiIJIBEtABEiCiAJIApLGyIKIAogD0kbIgkEfUMAAEDBIBcqAkQgFy0AWEECRiIKGyIfQwAAEEEgFyoCSCAKGyAfk0MAAH5DlSAJQQFrQf8BcbOUkhCJBCIfIB+SBUMAAAAACyEiIBFBDGovAQAiCkH//wFxRQRAIApBEHQMAwsgCkH/B3EhDyAKQYCAAnEhCSAKQYD4AXEiCkGA+AFGBEAgCUEQdCIKQYCAgPwHciAPRQ0DGiAKIA9BDXRyQYCAgP4HcgwDCyAJQRB0IQkgCkUNASAKQQ10QYCAgPwAcSAPQQ10ckGAgIDAA2ogCXIMAgsgCiAZQdy7xwAQjAcACyAPIA9nQRBrIgpB//8DcUEIanRB////A3EgCUGAgIDYA3IgCkEXdGtyC74iH0MAAIA/XgRAIB8QxgVDVPgtQJRDAACAP5KRISALQwAAgD8hIQJ/AkAgEiAZSQRAIBYgEkEYbGoiFi0AEyIPIBYtABIiCSAWLQARIgogCSAKSxsiCiAKIA9JGyIJBH1DAABAwSAXKgJEIBctAFhBAkYiChsiH0MAABBBIBcqAkggChsgH5NDAAB+Q5UgCUEBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIyAWQQxqLwEAIgpB//8BcUUEQCAKQRB0DAMLIApB/wdxIQ8gCkGAgAJxIQkgCkGA+AFxIgpBgPgBRgRAIAlBEHQiCkGAgID8B3IgD0UNAxogCiAPQQ10ckGAgID+B3IMAwsgCUEQdCEJIApFDQEgCkENdEGAgID8AHEgD0ENdHJBgICAwANqIAlyDAILIBIgGUHcu8cAEIwHAAsgDyAPZ0EQayIKQf//A3FBCGp0Qf///wNxIAlBgICA2ANyIApBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEhCyAOIAwgBiAiICCUIh8gH1sgHyAjICGUYEVxIgobKAIANgIAIA5BBGohDiAGIApFQQJ0aiIGIAdGDQIgDCAKQQJ0aiIMIBhHDQALDAELIAghCQNAQwAAgD8hIAJ/AkAgGSAHQQRrIhYoAgAiBksEQCAMQQRrIg8oAgAhEiAXKAIEIAZBGGxqIhEtABMiByARLQASIgwgES0AESIGIAYgDEkbIgYgBiAHSRsiDAR9QwAAQMEgFyoCRCAXLQBYQQJGIgYbIh9DAAAQQSAXKgJIIAYbIB+TQwAAfkOVIAxBAWtB/wFxs5SSEIkEIh8gH5IFQwAAAAALISIgEUEMai8BACIGQf//AXFFBEAgBkEQdAwDCyAGQf8HcSEHIAZBgIACcSEMIAZBgPgBcSIGQYD4AUYEQCAMQRB0IgZBgICA/AdyIAdFDQMaIAYgB0ENdHJBgICA/gdyDAMLIAxBEHQhDCAGRQ0BIAZBDXRBgICA/ABxIAdBDXRyQYCAgMADaiAMcgwCCyAGIBlB3LvHABCMBwALIAcgB2dBEGsiBkH//wNxQQhqdEH///8DcSAMQYCAgNgDciAGQRd0a3ILviIfQwAAgD9eBEAgHxDGBUNU+C1AlEMAAIA/kpEhIAtDAACAPyEhAn8CQCAKKAIAIhAoAggiBiASSwRAIBAoAgQgEkEYbGoiES0AEyIHIBEtABIiDCARLQARIgYgBiAMSRsiBiAGIAdJGyIMBH1DAABAwSAQKgJEIBAtAFhBAkYiBhsiH0MAABBBIBAqAkggBhsgH5NDAAB+Q5UgDEEBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIyARQQxqLwEAIgZB//8BcUUEQCAGQRB0DAMLIAZB/wdxIQcgBkGAgAJxIQwgBkGA+AFxIgZBgPgBRgRAIAxBEHQiBkGAgID8B3IgB0UNAxogBiAHQQ10ckGAgID+B3IMAwsgDEEQdCEMIAZFDQEgBkENdEGAgID8AHEgB0ENdHJBgICAwANqIAxyDAILIBIgBkHcu8cAEIwHAAsgByAHZ0EQayIGQf//A3FBCGp0Qf///wNxIAxBgICA2ANyIAZBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEhCyAJIA8gFiAiICCUIh8gH1sgHyAjICGUYEVxIgYbKAIANgIAIBYgBkECdGohByAOIA8gBkVBAnRqIgxHBEAgCUEEayEJIAIgB0cNAQsLIAwhDiACIQYLIAcgBmsiDEUNACAOIAYgDPwKAAALIBRBAXRBAXILIQpBASEOIAsiDEEBSw0ACwwBCyAMIQ4LIBpBjgJqIA5qIBM6AAAgGkEEaiAOQQJ0aiAKNgIAIAEgFUsEQCAOQQFqIQwgDUEBdiAVaiEVIA0hCgwBCwsgCkEBcUUEQCAAIAEgAiADIAFBAXJnQQF0QT5zQQAgBRA4CyAaQdACaiQADwsgBiAUQdy7xwAQjAcAC7soBBl/BX0CfgF7IwBB0AJrIhokAEKAgICAgICAgMAAIAGtIiSAIiUgJH5CgICAgICAgIDAAFKtAn8gAUGBIE8EQEEBIAFBAXJnQR9zIgZBAXYgBkEBcWoiBnQgASAGdmpBAXYMAQtBwAAgASABQQF2ayIGIAZBwABPGwshGyAlfCElIABBBGshHSAAQRBrIR4gAEEIaiEcQQEhCgJAA0BBASENQQAhEyABIBVLBEAgACAVQQJ0IhZqIRMgFa0iJAJ/AkAgASAVayIOIBtJDQACQCAOQQJJBEAgDiEHDAELQwAAgD8hIAJ/AkAgEygCBCIGIAUoAgBBBGooAgAiECgCCCIUSQRAIBMoAgAhCSAQKAIEIhEgBkEYbGoiCy0AEyIIIAstABIiDSALLQARIgcgByANSRsiByAHIAhJGyINBH1DAABAwSAQKgJEIBAtAFhBAkYiBxsiH0MAABBBIBAqAkggBxsgH5NDAAB+Q5UgDUEBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIiALQQxqLwEAIgdB//8BcUUEQCAHQRB0DAMLIAdB/wdxIQggB0GAgAJxIQ0gB0GA+AFxIgdBgPgBRgRAIA1BEHQiB0GAgID8B3IgCEUNAxogByAIQQ10ckGAgID+B3IMAwsgDUEQdCENIAdFDQEgB0ENdEGAgID8AHEgCEENdHJBgICAwANqIA1yDAILDAcLIAggCGdBEGsiB0H//wNxQQhqdEH///8DcSANQYCAgNgDciAHQRd0a3ILviIfQwAAgD9eBEAgHxDGBUNU+C1AlEMAAIA/kpEhIAtDAACAPyEhAn8CQCAJIBRJBEAgESAJQRhsaiILLQATIgggCy0AEiINIAstABEiByAHIA1JGyIHIAcgCEkbIg0EfUMAAEDBIBAqAkQgEC0AWEECRiIHGyIfQwAAEEEgECoCSCAHGyAfk0MAAH5DlSANQQFrQf8BcbOUkhCJBCIfIB+SBUMAAAAACyEjIAtBDGovAQAiB0H//wFxRQRAIAdBEHQMAwsgB0H/B3EhCCAHQYCAAnEhDSAHQYD4AXEiB0GA+AFGBEAgDUEQdCIHQYCAgPwHciAIRQ0DGiAHIAhBDXRyQYCAgP4HcgwDCyANQRB0IQ0gB0UNASAHQQ10QYCAgPwAcSAIQQ10ckGAgIDAA2ogDXIMAgsgCSAUQdy7xwAQjAcACyAIIAhnQRBrIgdB//8DcUEIanRB////A3EgDUGAgIDYA3IgB0EXdGtyC74iH0MAAIA/XgRAIB8QxgVDVPgtQJRDAACAP5KRISELAkACQAJAAkAgIiAglCIfIB9bIB8gIyAhlGBFcSIPRQRAQQIhByAOQQJGDQUgHCAVQQJ0aiESA0BDAACAPyEgAn8CQCAUIBIoAgAiDUsEQCARIA1BGGxqIhgtABMiCSAYLQASIgsgGC0AESIIIAggC0kbIgggCCAJSRsiCwR9QwAAQMEgECoCRCAQLQBYQQJGIggbIh9DAAAQQSAQKgJIIAgbIB+TQwAAfkOVIAtBAWtB/wFxs5SSEIkEIh8gH5IFQwAAAAALISIgGEEMai8BACIIQf//AXFFBEAgCEEQdAwDCyAIQf8HcSEJIAhBgIACcSELIAhBgPgBcSIIQYD4AUYEQCALQRB0IghBgICA/AdyIAlFDQMaIAggCUENdHJBgICA/gdyDAMLIAtBEHQhCyAIRQ0BIAhBDXRBgICA/ABxIAlBDXRyQYCAgMADaiALcgwCCyANIBRB3LvHABCMBwALIAkgCWdBEGsiCEH//wNxQQhqdEH///8DcSALQYCAgNgDciAIQRd0a3ILviIfQwAAgD9eBEAgHxDGBUNU+C1AlEMAAIA/kpEhIAtDAACAPyEhAn8CQCAGIBRJBEAgESAGQRhsaiIJLQATIgsgCS0AEiIIIAktABEiBiAGIAhJGyIGIAYgC0kbIggEfUMAAEDBIBAqAkQgEC0AWEECRiIGGyIfQwAAEEEgECoCSCAGGyAfk0MAAH5DlSAIQQFrQf8BcbOUkhCJBCIfIB+SBUMAAAAACyEjIAlBDGovAQAiBkH//wFxRQRAIAZBEHQMAwsgBkH/B3EhCyAGQYCAAnEhCCAGQYD4AXEiBkGA+AFGBEAgCEEQdCIGQYCAgPwHciALRQ0DGiAGIAtBDXRyQYCAgP4HcgwDCyAIQRB0IQggBkUNASAGQQ10QYCAgPwAcSALQQ10ckGAgIDAA2ogCHIMAgsMDQsgCyALZ0EQayIGQf//A3FBCGp0Qf///wNxIAhBgICA2ANyIAZBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEhCyAiICCUIh8gH1sgHyAjICGUYEVxDQMgEkEEaiESIA0hBiAOIAdBAWoiB0cNAAsMAQsgDkECRg0CQQIhByAcIBVBAnRqIRIDQEMAAIA/ISACfwJAIBQgEigCACINSwRAIBEgDUEYbGoiGC0AEyIJIBgtABIiCyAYLQARIgggCCALSRsiCCAIIAlJGyILBH1DAABAwSAQKgJEIBAtAFhBAkYiCBsiH0MAABBBIBAqAkggCBsgH5NDAAB+Q5UgC0EBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIiAYQQxqLwEAIghB//8BcUUEQCAIQRB0DAMLIAhB/wdxIQkgCEGAgAJxIQsgCEGA+AFxIghBgPgBRgRAIAtBEHQiCEGAgID8B3IgCUUNAxogCCAJQQ10ckGAgID+B3IMAwsgC0EQdCELIAhFDQEgCEENdEGAgID8AHEgCUENdHJBgICAwANqIAtyDAILIA0gFEHcu8cAEIwHAAsgCSAJZ0EQayIIQf//A3FBCGp0Qf///wNxIAtBgICA2ANyIAhBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEgC0MAAIA/ISECfwJAIAYgFEkEQCARIAZBGGxqIgktABMiCyAJLQASIgggCS0AESIGIAYgCEkbIgYgBiALSRsiCAR9QwAAQMEgECoCRCAQLQBYQQJGIgYbIh9DAAAQQSAQKgJIIAYbIB+TQwAAfkOVIAhBAWtB/wFxs5SSEIkEIh8gH5IFQwAAAAALISMgCUEMai8BACIGQf//AXFFBEAgBkEQdAwDCyAGQf8HcSELIAZBgIACcSEIIAZBgPgBcSIGQYD4AUYEQCAIQRB0IgZBgICA/AdyIAtFDQMaIAYgC0ENdHJBgICA/gdyDAMLIAhBEHQhCCAGRQ0BIAZBDXRBgICA/ABxIAtBDXRyQYCAgMADaiAIcgwCCwwMCyALIAtnQRBrIgZB//8DcUEIanRB////A3EgCEGAgIDYA3IgBkEXdGtyC74iH0MAAIA/XgRAIB8QxgVDVPgtQJRDAACAP5KRISELICIgIJQiHyAfXCAfICMgIZRgcg0CIBJBBGohEiANIQYgDiAHQQFqIgdHDQALCyAOIQcLIAcgG0kNAyAPRQ0CIAdBAkkEQEEBIQcMAwsgB0EBdiENIBMgB0ECdCIGaiEIQQAhCSAHQQhJDQEgHiAGIBZqaiEOIA1B/P///wdxIgkhBgNAIBMgDv0AAgAgE/0AAgAiJv0NDA0ODwgJCgsEBQYHAAECA/0LAgAgDiAmICb9DQwNDg8ICQoLBAUGBwABAgP9CwIAIA5BEGshDiATQRBqIRMgBkEEayIGDQALIAkgDUYNAgwBCyATQQhqIQhBACEJQQEhDUECIQcLIAAgCUECdCIGIBZqaiEOIA0gCWshCSAIIAZrQQRrIQYDQCAOKAIAIQ0gDiAGKAIANgIAIAYgDTYCACAGQQRrIQYgDkEEaiEOIAlBAWsiCQ0ACwsgB0EBdEEBcgwBCyAOIBsgDiAbSRtBAXQgBEUNABogE0EgIA4gDkEgTxsiBiACIANBAEEAIAUQNyAGQQF0QQFyCyINQQF2IBVqrXwgJX4gFSAKQQF2a60gJHwgJX6FeachEwsCQAJAIAxBAkkNACAdIBVBAnQiBmohCCAAIAZqIRgDQCAMQQFrIgsgGkGOAmpqLQAAIBNJDQECfwJAAkAgAyAaQQRqIAtBAnRqKAIAIgZBAXYiDyAKQQF2IgxqIhRPIAYgCnJBAXFFcUUEQCAAIBUgFGtBAnRqIQ4gBkEBcUUNAQwCCyAUQQF0DAILIA4gDyACIAMgD0EBcmdBAXRBPnNBACAFEDcLIApBAXFFBEAgDiAPQQJ0aiAMIAIgAyAMQQFyZ0EBdEE+c0EAIAUQNwsCQCAKQQJJIAZBAklyDQAgAyAMIA8gDCAPSSIJGyIHSQ0AIAUoAgAgDiAPQQJ0aiEMIAdBAnQiBwRAIAIgDCAOIAkbIAf8CgAACyACIAdqIQdBBGoiCigCACIXKAIIIRkCQCAJRQRAIAIhBgNAQwAAgD8hIAJ/AkAgGSAMKAIAIgpLBEAgBigCACESIBcoAgQiFiAKQRhsaiIRLQATIg8gES0AEiIJIBEtABEiCiAJIApLGyIKIAogD0kbIgkEfUMAAEDBIBcqAkQgFy0AWEECRiIKGyIfQwAAEEEgFyoCSCAKGyAfk0MAAH5DlSAJQQFrQf8BcbOUkhCJBCIfIB+SBUMAAAAACyEiIBFBDGovAQAiCkH//wFxRQRAIApBEHQMAwsgCkH/B3EhDyAKQYCAAnEhCSAKQYD4AXEiCkGA+AFGBEAgCUEQdCIKQYCAgPwHciAPRQ0DGiAKIA9BDXRyQYCAgP4HcgwDCyAJQRB0IQkgCkUNASAKQQ10QYCAgPwAcSAPQQ10ckGAgIDAA2ogCXIMAgsgCiAZQdy7xwAQjAcACyAPIA9nQRBrIgpB//8DcUEIanRB////A3EgCUGAgIDYA3IgCkEXdGtyC74iH0MAAIA/XgRAIB8QxgVDVPgtQJRDAACAP5KRISALQwAAgD8hIQJ/AkAgEiAZSQRAIBYgEkEYbGoiFi0AEyIPIBYtABIiCSAWLQARIgogCSAKSxsiCiAKIA9JGyIJBH1DAABAwSAXKgJEIBctAFhBAkYiChsiH0MAABBBIBcqAkggChsgH5NDAAB+Q5UgCUEBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIyAWQQxqLwEAIgpB//8BcUUEQCAKQRB0DAMLIApB/wdxIQ8gCkGAgAJxIQkgCkGA+AFxIgpBgPgBRgRAIAlBEHQiCkGAgID8B3IgD0UNAxogCiAPQQ10ckGAgID+B3IMAwsgCUEQdCEJIApFDQEgCkENdEGAgID8AHEgD0ENdHJBgICAwANqIAlyDAILIBIgGUHcu8cAEIwHAAsgDyAPZ0EQayIKQf//A3FBCGp0Qf///wNxIAlBgICA2ANyIApBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEhCyAOIAwgBiAiICCUIh8gH1sgHyAjICGUYEVxIgobKAIANgIAIA5BBGohDiAGIApFQQJ0aiIGIAdGDQIgDCAKQQJ0aiIMIBhHDQALDAELIAghCQNAQwAAgD8hIAJ/AkAgGSAHQQRrIhYoAgAiBksEQCAMQQRrIg8oAgAhEiAXKAIEIAZBGGxqIhEtABMiByARLQASIgwgES0AESIGIAYgDEkbIgYgBiAHSRsiDAR9QwAAQMEgFyoCRCAXLQBYQQJGIgYbIh9DAAAQQSAXKgJIIAYbIB+TQwAAfkOVIAxBAWtB/wFxs5SSEIkEIh8gH5IFQwAAAAALISIgEUEMai8BACIGQf//AXFFBEAgBkEQdAwDCyAGQf8HcSEHIAZBgIACcSEMIAZBgPgBcSIGQYD4AUYEQCAMQRB0IgZBgICA/AdyIAdFDQMaIAYgB0ENdHJBgICA/gdyDAMLIAxBEHQhDCAGRQ0BIAZBDXRBgICA/ABxIAdBDXRyQYCAgMADaiAMcgwCCyAGIBlB3LvHABCMBwALIAcgB2dBEGsiBkH//wNxQQhqdEH///8DcSAMQYCAgNgDciAGQRd0a3ILviIfQwAAgD9eBEAgHxDGBUNU+C1AlEMAAIA/kpEhIAtDAACAPyEhAn8CQCAKKAIAIhAoAggiBiASSwRAIBAoAgQgEkEYbGoiES0AEyIHIBEtABIiDCARLQARIgYgBiAMSRsiBiAGIAdJGyIMBH1DAABAwSAQKgJEIBAtAFhBAkYiBhsiH0MAABBBIBAqAkggBhsgH5NDAAB+Q5UgDEEBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIyARQQxqLwEAIgZB//8BcUUEQCAGQRB0DAMLIAZB/wdxIQcgBkGAgAJxIQwgBkGA+AFxIgZBgPgBRgRAIAxBEHQiBkGAgID8B3IgB0UNAxogBiAHQQ10ckGAgID+B3IMAwsgDEEQdCEMIAZFDQEgBkENdEGAgID8AHEgB0ENdHJBgICAwANqIAxyDAILIBIgBkHcu8cAEIwHAAsgByAHZ0EQayIGQf//A3FBCGp0Qf///wNxIAxBgICA2ANyIAZBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEhCyAJIA8gFiAiICCUIh8gH1sgHyAjICGUYEVxIgYbKAIANgIAIBYgBkECdGohByAOIA8gBkVBAnRqIgxHBEAgCUEEayEJIAIgB0cNAQsLIAwhDiACIQYLIAcgBmsiDEUNACAOIAYgDPwKAAALIBRBAXRBAXILIQpBASEOIAsiDEEBSw0ACwwBCyAMIQ4LIBpBjgJqIA5qIBM6AAAgGkEEaiAOQQJ0aiAKNgIAIAEgFUsEQCAOQQFqIQwgDUEBdiAVaiEVIA0hCgwBCwsgCkEBcUUEQCAAIAEgAiADIAFBAXJnQQF0QT5zQQAgBRA3CyAaQdACaiQADwsgBiAUQdy7xwAQjAcAC6MsAxh/BX4BeyMAQeAGayIEJAAgBEHQAGogAUHwBPwKAAAgBEIANwPABSAEIAOtIh83A8gFAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkAgBCgCeEECRwRAIARBQGsgBCgCsAMiBq0gBCgCrAMiC61+IAQtALgFQQN0KQPYnkkQ3QYgBEIANwPQBSAEQn8gBCkDQCAEKQNIQgBSGyIcNwPYBSAcIB9SDQEgBEHwAGohDkEmIQcgBCgCrAVFBEBBASELDAgLIAQtANQERQ0DIARB4AVqIA4QjAEgBC0A4AVBKEYNAiAEKALgBSIHQQh2DAQLDAgLIARBADYC4AUgBEHABWogBEHQBWogBEHgBWpBpM3HABD3BwALIAQoAnhBAkYNBiAEKAKwAyEGIAQoAqwDIQsLIARBOGogDhCKBUIAIRwgBC0AOEEDdCkDqJ9JIAQxADkgC61+fiIdQvH/////AFoEQAwDCyAGrSAdQgd8QgOIfiIdQiCIpw0CIB2nIgtBAEgNAgJAIAMgC08EQCAEQTBqIA4QigUgBC0AMSEGIAQtADAhCSAEKALIBCAEQShqIA4QigUgBC0AKEECdCgC4J9JbCELAkACQAJAIAQtACkiB0EIaw4JAgAAAAAAAAABAAsgB0EITQRAIAtBCCAHbiIHbiIMIAsgByAMbEdqIQsMAgsMCgsgC0EBdCELCyAEKAJ4QQJHBEACQCAELQC0A0UEQCALRQ0BIAQoArgEIQwgBCgCtAQhBSAEIAQoAswEIgc2AvQFIAQgByAMIAVBAkYbIgc2AvgFIAQgCzYC8AUgBCADIAtwIgU2AuQFIAQgAyAFayIFNgLsBSAEIAI2AugFIAQgAiAFajYC4AUDQAJAIAdFBEAgBCgC9AUiB0UNByAEIAdBAWs2AvQFIAQoAuwFIgUgBCgC8AUiB0kNByAEIAUgB2s2AuwFIAQgBCgC6AUiCyAHajYC6AUgCw0BDAcLIARBADYC+AUgBEEgaiEGQQAhCQJAAkAgByAEQeAFaiIIKAIUIgtPBEAgCw0BQQAhCgwCCyAIIAsgB0F/c2o2AhRBASEMAkAgB60gCCgCECILrX4iHUIgiFBFBEBBACEKDAELQQAhCiAIKAIMIgcgHaciBU0NACAIIAcgBWsiBzYCDCAIIAgoAgggBWoiCjYCCCAHIAtJBEBBACEKDAMLIAcgC2shCSAKIAtqIQwLIAggCTYCDCAIIAw2AggMAQtBACEKQQEhCQJAAkAgC0EBa60gCCgCECILrX4iHUIgiKcNACAIKAIMIgcgHaciDE0NACAIIAcgDGsiBTYCDCAIIAgoAgggDGoiBzYCCCAFIAtJDQEgBSALayEKIAcgC2ohCQsgCCAKNgIMIAggCTYCCAtBACEKIAhBADYCFAsgBiALNgIEIAYgCjYCACAEKAIgIgtFDQYgBCgCJCEHCyAEQdAFaiAOIAQoAtAEIAsgBxB6IAQtANAFIgdBKEcEQCAELwDRBSAELQDTBUEQdHIhBiAEKQLYBSEcIAQoAtQFIQsMCgUgBCgC+AUhBwwBCwALAAsgBCgCrAMgBEEYaiAOEIoFIAQtABhBAnQoAvyfSWwhEAJAAkACQCAELQAZIgdBCGsOCQIAAAAAAAAAAQALIAdBCE0EQCAQQQggB24iBW4iByAQIAUgB2xHaiEQDAILDAwLIBBBAXQhEAsgBEGoBWoiBygCACELIAdBADYCACAEQdgFaiIYIAs2AgAgBCkDoAUhHSAEQoCAgIAQNwOgBSAEIB03A9AFAkAgBCgCeEECRwRAIARBoAVqIRYgBkKBgIyIoICAAiAJrUL/AYNCA4aIp2wiGUEDdkEfcSETIARBnAZqIRogBEHsBWohGyAEQewEaiEUIARB+ARqIRUDQCAENQKsAyEdIARBEGogDhCKBQJAAkACQAJAAkACQCAELQAQQQN0KQOYoEkgHSAEMQARfn4iHULw/////wBWDQAgHUIHfEIDiKciCUEASA0AAkAgBCgC2AUiByAJTwRAIAQoAtQFIQoMAQsgCSAHayIFIAQoAtAFIAdrSwRAIARB0AVqIAcgBUEBQQEQpAUgBCgC2AUhBwsgBCgC1AUiCiAHaiELIAVBAk8EQCAFQQFrIgUEQCALQQAgBfwLAAsgCiAFIAdqIgdqIQsLIAtBADoAACAHQQFqIQkLIAQgCTYC2AUCQAJAAkACQAJAIAQoArQEIgZBAkcEQCAEKALEBCEXIAQoAsAEIQwgBCgCvAQhCyAEKAK4BCEHIAZBAXFFDQEgB0UEQCAEKAL4BEEATgRAIARB6AVqIg8gFUEIaigCADYCACAEIBUpAgA3A+AFIARBADYCgAUgBEEBNgL8BCAEKALsBCIRBEAgBCgC8AQiDUEEaygCACIFQXhxIghBBEEIIAVBA3EiBRsgEWpJDR0gBUEAIAggEUEnaksbDR4gDRCiAgsgFCAEKQPgBTcCACAUQQhqIA8oAgA2AgALIARBgICAgHg2AvgEIAQoAnhBAkYNBgsgBC0AtgNBAnQoAuygSSAMbCEIIAQtALcDIgVBCGsOCQQCAgICAgICAwILIARB4AVqIA4Q5wQgBC0A4AVBKEcNB0ECIQYMCAsgB0UEQCAEKAL4BEEATgRAIARB6AVqIg8gFUEIaigCADYCACAEIBUpAgA3A+AFIARBADYCgAUgBEEBNgL8BCAEKALsBCIRBEAgBCgC8AQiDUEEaygCACIFQXhxIghBBEEIIAVBA3EiBRsgEWpJDRsgBUEAIAggEUEnaksbDRwgDRCiAgsgFCAEKQPgBTcCACAUQQhqIA8oAgA2AgALIARBgICAgHg2AvgECyAEKALIBCEIIAQoAtAEIQUMBQsgBUEITQRAIAhBCCAFbiINbiIFIAggBSANbEdqIQgMAgsMFgsgCEEBdCEICyAIQQFqIQUgDCEIDAILDBILQSchByAEKALQBSICRQ0DIAQoAtQFIAJBARCiBwwDCyAEQQhqIA4QigUgBC0ACEECdCgC0KBJIAhsIQgCQAJAAkAgBC0ACSINQQhrDgkCAAAAAAAAAAEACyANQQhNBEAgCEEIIA1uIg9uIg0gCCANIA9sR2ohCAwCCwwTCyAIQQF0IQgLIAggCU0EQCAEQeAFaiAOIAUgCiAIEHogBC0A4AVBKEcNAQwCC0EAIAggCUHomscAEOoHAAsgBCgC7AUhFyAEKALoBSEMIAQoAuQFIQsgBCgC4AUhB0EDIQYLIAQoAqAFIggEQCAEKAKkBSIKQQRrKAIAIgVBeHEiCUEEQQggBUEDcSIFGyAIakkNESAFQQAgCSAIQSdqSxsNEiAKEKICCyAWIAQpA9AFNwIAIBZBCGoiESAYKAIANgIAAkACQCAGQQJrDgIKAQALIAQoAsgEIQUgBCAOEIoFIAQtAABBAnQoAoihSSAMIAUgBkEBcSIKG2whBgJAAkACQCAELQABIgVBCGsOCQIAAAAAAAAAAQALIAVBCE0EQCAGQQggBW4iCW4iBSAGIAUgCWxHaiEGDAILDBILIAZBAXQhBgsgBiAEKAKoBSIFTQ0CQQAgBiAFQfiZxwAQ6gcACyAHQQh2IQYLIAytIBetQiCGhCEcDAsLAkACQAJAAkACQAJAAkAgCgRAIAQoAqQFIQkgF0H/AXFBAWshCgJAAkACQCAZQf8BcSIFQQFrDhABCQAIAAAABwAAAAAAAAAGAAsgCkEHTw0aIAVBCE8NASAEQQA2AvAFIARBATYC5AUgBEG8occANgLgBSAEQgQ3AugFIARB4AVqQeiNxQAQjQgACyAKQQdPDRkgBEIANwLMBiAEQQE6AMgGIARCh4yUoLDAwAA3A8AGIARBADYCpAYgBEEANgKQBiAEQQE6AIAGIARCADcD4AUgBCAMrSIeNwPoBSAEIAk2ArgGIAQgBiAJaiINNgK8BiAEIApBAnQoAJiORSIFQf8Bca0iIDcD8AUgBCAFQQh2IghB/wFxIgqtIh83A/gFIAQgBUEQdkH/AXEgB2wgBUEYdmogEGwiDzYCiAYgDEUgBkVyDQggBCAJQQFqIgU2ArgGIAQgCS0AACIGQQFxrUI4hiAGQQF2QQFxrUIwhoQgBkECdkEBca1CKIaEIAZBA3ZBAXGtQiCGhCAGQQR2QQFxrUIYhoQgBkEFdkEBca1CEIaEIAZBBnZBAXGtQgiGhCAGQQd2rYQiHTcCnAYgAyAPIApBA3ZqIglLBEAgHachCiAfICB8IRxBASEGA0AgAiAJaiIJIAktAAAgCiAIQX9zQQdxdHI6AAAgHkIBfSIeUA0KAn8gBkEIRwRAIAYgGmotAAAMAQsgBSANRg0LIAQgBUEBaiIJNgK4BiAEIAUtAAAiBUEBca1COIYgBUEBdkEBca1CMIaEIAVBAnZBAXGtQiiGhCAFQQN2QQFxrUIghoQgBUEEdkEBca1CGIaEIAVBBXZBAXGtQhCGhCAFQQZ2QQFxrUIIhoQgBUEHdq2EIh03ApwGQQAhBiAJIQUgHacLIQogHEIDiCEdIBynIQggBkEBaiEGIBwgIHwhHCAPIB2naiIJIANJDQALCyAJIANB+IzFABCMBwALIAxFDQcgDK0hHCATIApBAnQoAJiORSIFQf8BcWwhCCADIAVBEHZB/wFxIAdsIAVBGHZqIBBsIBMgBUEIdkH/AXFsaiIKayEFA0AgBkUNCCADIApJDQIgEyAGIAYgE0sbIg0gBUsNAyANBEAgAiAKaiAJIA38CgAACyAGIA1rIQYgCSANaiEJIAUgCGshBSAIIApqIQogHEIBfSIcQgBSDQALDAcLQcyYxwAQ3QkACyAKIAMgA0GIjsUAEOoHAAtBACANIAVB+I3FABDqBwALAkACQAJAIApBB0kEQCAMRQ0HIAytIRwgAyAKQQJ0KACYjkUiDUEQdkH/AXEgB2wgDUEYdmogEGwiCGsgDUEIdkH/AXFBAXQiBWshCiANQf8BcUEBdCENIAUgCGohCANAIAZFDQggAyAISQ0CIApBAU0NA0ECIAYgBkECTxshBSAGQQFGDQQgBiAFayEGIAIgCGogCS8AADsAACAKIA1rIQogCCANaiEIIAUgCWohCSAcQgF9IhxQRQ0ACwwHCwwXCyAIIAMgA0HYjcUAEOoHAAtBAEECIApBuI3FABDqBwALQQIgBUHIjcUAEN4JAAsgCkEHSQRAIAxFDQMgCkECdCgAmI5FIgpB/wFxIQUgDK0hHCAKQRB2Qf8BcSAHbCAKQRh2aiAQbCAKQQh2Qf8BcWohCANAIAZFDQQgAyAISwRAIAIgCGogCS0AADoAACAGQQFrIQYgBSAIaiEIIAlBAWohCSAcQgF9IhxQRQ0BDAULCyAIIANBqI3FABCMBwALDBMLIApBB0kEQCAMRSAGRXINAgJAIApBAnQoAJiORSISQRB2Qf8BcSAHbCASQRh2aiAQbCIPIBJBCHYiDUH/AXEiCkEBdmoiCCADTw0AIAIgCGoiBSAFLQAAIAktAAAiBUEEdiANQQJ0QX9zQQRxdHI6AAAgDEEBRg0DIAYgCWohDSAJQQFqIQkgBUEPcSEFIAytQgF9IR4gEkH/AXGtIh9CAoYhHSAfIAqtfEIChiEcQQEhBgNAAn8gBkECRwRAIAUhCkECDAELIAkgDUYNBSAJLQAAIgZBD3EhBSAGQQR2IQogCUEBaiEJQQELIQYgDyAcQgOIp2oiCCADTw0BIAIgCGoiCCAILQAAIAogHKdBf3NBBHF0cjoAACAcIB18IRwgHkIBfSIeUEUNAAsMAwsgCCADQZiNxQAQjAcACwwSCyAKQQdPDQMgBEIANwPABiAEQQM6AIwGIARBhogINgKIBiAEQQA2AvAFIARBADYC4AUgBCAMrSIgNwOYBiAEIAk2AoAGIAQgBiAJaiIPNgKEBiAEQQI6ALAGIAQgCkECdCgAmI5FIgVB/wFxrSIcNwOgBiAEIAVBCHYiDUH/AXEiCq0iHTcDqAYgBCAFQRB2Qf8BcSAHbCAFQRh2aiAQbCISNgK4BiAMRQ0AIARCATcDkAYgBkUNACAEIAlBAWoiBTYCgAYgBCAJLQAAIgZBA3FBGHQgBkEOdEGAgAxxciAGQQR0QYAGcXIgBkEGdiIIcjYC7AUgAyASIApBAnZqIglLBEAgDUEBdCEKQgEhHiAcQgGGIR8gHCAdfEIBhiEcQQEhBgNAIAIgCWoiCSAJLQAAIAggCkF/c0EGcXRyOgAAIB4gIFENAiAEIB5CAXwiHjcDkAYCQCAGQQRHBEAgBiAbai0AACEIDAELIAUgD0YNAyAEIAVBAWoiCTYCgAYgBCAFLQAAIgVBA3FBGHQgBUEOdEGAgAxxciAFQQR0QYAGcXIgBUEGdiIIcjYC7AVBACEGIAkhBQsgHEIDiCEdIBynIQogHCAffCEcIAZBAWohBiASIB2naiIJIANJDQALCyAJIANBiI3FABCMBwALIAdBCHYhBiAYIBEoAgA2AgAgBCAWKQIANwPQBSAEQQA2AqgFIARCgICAgBA3A6AFIAQoAnhBAkcNAAsLDAoLDA0LIARBADYC8AUgBEEBNgLkBSAEQbyhxwA2AuAFIARCBDcC6AUgBEHgBWpBvJjHABCNCAALDAcLIAutIB9CIIaEIRxBACELDAQLIARB4AVqIA4Q5wQgBC0A4AUiB0EoRg0BIAQvAOEFIAQtAOMFQRB0cgshBiAEKQLoBSEcIAQoAuQFIQsMAgtBCCEMQQIhBkEBIQtBAyEJQQEhBwJAAkACQAJAAkACQAJAAkAgBC0AuAUiBUEBaw4JAgQBAgEDBgAFBwtBDCEJDAMLQQQhBgsgBiEJIAYhDCAGIQcCQCAFQQJrDgMCBAUAC0ECIQsMBAtBBiEJCyAJIQdBAyELDAILQRAhDAtBBCELIAwhBwsCQAJAAkAgByALbkEBaw4CAgEAC0Gk+MYAQShBtM3HABDrBwALIANBfnEiBkUNACACIQcgA0ECayIDQQ5PBEAgByADQQF2QQFqIgxBeHEiBUEBdGohByAFIQsgAiEDA0AgAyAD/QAAAP0MAAAAAAAAAAAAAAAAAAAAAP0NAQADAgUEBwYJCAsKDQwPDv0LAAAgA0EQaiEDIAtBCGsiCw0ACyAFIAxGDQELIAIgBmohAwNAIAcgBy8AACICQQh0IAJBCHZyOwAAIAdBAmoiByADRw0ACwsgAEEGNgIADAILQSchBwsgBCAcNwLYBSAEIAs2AtQFIAQgB0H/AXEgBkEIdHI2AtAFIARB4AVqIARB0AVqEPwDIAAgBP0AAvQF/QsCFCAAQSRqIARBhAZqKAIANgIAIAT9AATgBSEhIAAgBCgC8AU2AhAgACAh/QsDAAsgDhDGAwJAIAFBBGsoAgAiAkF4cUH0BEH4BCACQQNxIgAbTwRAIABBACACQZgFTxsNASABEKICIARB4AZqJAAPCwwDCwwDC0GsmMcAEN0JAAtB0I/FABCBCAALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAKQQdB1I7FABCMBwAL0CsEE38EfQF+AXsjAEHAAWsiAiQAAkACQAJAAkAgASgCiAFBAkcEQCABKAKQAyIFIAEoAuwBSQRAIAFBtAJqIRMgAUH4AWohECABQdgCaiEUA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAugBIAVBKGxqIggpAxAgASkD6AJ8IhkgASkD2AJRBEAgASgCgAMiAyAIKAIYIgVBB2pBeHFJDQEgAyAFSQ0CIAEoAvwCIQMgCC0AICISQQFGBEAgAkEQaiADIAUQ+QIgAigCECIDQYCAgIB4RwRAIAIoAhQgAkEANgKwASACQQE2AqQBIAJBuMnBADYCoAEgAkIENwKoASACQaABahCSByEOIANFDR0gA0EBEKIHDB0LIAIoAhghDiACKAIUIg9BgICAgHhGDRwgAigCHCEFIA4hAwtBCSEEAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAgtACJBAWsODQECAxofHR4bHB8dHgQACyAILQAhDgQEBQYHCQsgCC0AIQ4FCwoJCQwJCyAILQAhIgQOBg4NEBAPDxALIAgtACEOChIRERERERERFBMRCyAILQAhQQtrDgIcHRsLIAJBEGogAyAFQQMgASgCmAMQ+AQMAwsgAkEQaiADIAVBAyABKAKYAxDmAwwCCyACQRBqIAMgBSABKAKYAxCgAgwBCyACQRBqIAMgBSABKAKYAxD+AQsgAigCFCEHIAEoApgDIg0EQCACKAIYIQpBACEGIAEoAoACIgsgASgClAMiDGsiA0EAIAMgC00bIREgASgC/AEgDEEYbGohAyAHIQRBACEFA0AgBSARRg0fIAZBA2oiCSAKSyAFQdSq1aoFS3INICADIARBCGogBP1dAgD9VgIAAiIa/VoCCAIgAyAa/VsCAAAgBEEMaiEEIANBGGohAyAJIQYgDSAFQQFqIgVHDQALCyACKAIQIgNFDTEgB0EEaygCACIGQXhxIgQgA0ECdCIDQQRBCCAGQQNxIgYbakkNNyAGQQAgBCADQSdqSxsNOCAHEKICDDELIAJBATYCpAEgAkHgycEANgKgASACQgE3AqwBIAIgCEEhaq1CgICAgJAFhDcDUCACIAJB0ABqNgKoASACQSBqIgEgAkGgAWoQsQYgARCOByEBIABBAToAACAAIAE2AgQMLwsgAkEBNgKkASACQbzKwQA2AqABIAJCATcCrAEgAiAIQSFqrUKAgICAkAWENwNQIAIgAkHQAGo2AqgBIAJBLGoiASACQaABahCxBiABEI4HDAMLIAJBEGogAyAFQQEgASgCmAMQ5gMMLAsgAkEQaiADIAVBASABKAKYAxD4BAwrCyAIKAIARQRAIAJBADYCsAEgAkEBNgKkASACQZjKwQA2AqABIAJCBDcCqAEgAkGgAWoQkgcMAQsgCCgCCA0pIAJBADYCsAEgAkEBNgKkASACQfzJwQA2AqABIAJCBDcCqAEgAkGgAWoQkgcLIQUgAEEBOgAAIAAgBTYCBAwqCyACQRBqIAMgBUEDIAEoApgDEOYDDCYLIAJBEGogAyAFQQMgASgCmAMQ+AQMJQsgCCgCAEUEQCACQQA2ArABIAJBATYCpAEgAkGYysEANgKgASACQgQ3AqgBIAJBoAFqEJIHDAILIAgoAghFBEAgAkEANgKwASACQQE2AqQBIAJB/MnBADYCoAEgAkIENwKoASACQaABahCSBwwCCyAIKgIEIRUgASgCmAMhBiAIKgIMIRYgBEEERg0jIAJBEGogAyAFQQMgBiAVIBYQ/wMMJAsgAkEBNgKkASACQeDKwQA2AqABIAJCATcCrAEgAiAIQSFqrUKAgICAkAWENwNQIAIgAkHQAGo2AqgBIAJBOGoiASACQaABahCxBiABEI4HCyEFIABBAToAACAAIAU2AgQMJQsgAkEBNgKkASACQYjLwQA2AqABIAJCATcCrAEgAiAIQSFqrUKAgICAkAWENwNQIAIgAkHQAGo2AqgBIAJBxABqIgEgAkGgAWoQsQYgARCOBwwDCyACQRBqIAMgBUEDIAEoApgDEPgEDB4LIAJBEGogAyAFIAEoApgDEP0BDB0LIAgoAgBFBEAgAkEANgKwASACQQE2AqQBIAJBmMrBADYCoAEgAkIENwKoASACQaABahCSBwwBCyAIKAIIDRsgAkEANgKwASACQQE2AqQBIAJB/MnBADYCoAEgAkIENwKoASACQaABahCSBwshBSAAQQE6AAAgACAFNgIEDCALAkACQAJAAkAgCC0AISIGQQpHBEAgBg4CAgMBCyACQdAAaiADIAUgASgCmAMQxQMMHAsgAkEBNgKkASACQcTLwQA2AqABIAJCATcCrAEgAiAIQSFqrUKAgICAkAWENwNoIAIgAkHoAGo2AqgBIAJB3ABqIgEgAkGgAWoQsQYgARCOByEBIABBAToAACAAIAE2AgQMIgsgAkEQaiADIAVBAyABKAKYAxD4BAwBCyACQRBqIAMgBUEDIAEoApgDEOYDCyABKAKYAyIKQQJ0IgVB/////wNLDQ4gCkEEdCIDQf3///8HTw0OAkAgA0UEQEEEIQlBACEFDAELIAMQcSIJRQ0QIAEoApgDIQoLIAJBADYCqAEgAiAJNgKkASACIAU2AqABIAoEQEEAIQNBASEHIAIoAhghBiACKAIUIQUDQCAHQQFrIgQgBk8EQCAEIQcMGgsgBiAEayIEQQAgBCAGTRsiBEEBRg0ZIARBAkYNGEMAAIA/IAUqAgAiFSAVlJMgBUEEaioCACIWIBaUkyAFQQhqKgIAIhcgF5STQwAAAAAQ4AiRIRggAigCoAEgA2tBA00EQCACQaABaiADQQRBBEEEEKQFIAIoAqQBIQkgAigCqAEhAwsgCSADQQJ0aiIEIBg4AgwgBCAXOAIIIAQgFjgCBCAEIBU4AgAgAiADQQRqIgM2AqgBIAdBA2ohByAFQQxqIQUgCkEBayIKDQALCyACQdgAaiACQagBaigCADYCACACIAIpAqABNwNQIAIoAhAiA0UNGCACKAIUIgZBBGsoAgAiBEF4cSIHIANBAnQiA0EEQQggBEEDcSIEG2pJDSYgBEEAIAcgA0EnaksbDScgBhCiAgwYCyAILQAhQQtGDRQgAkEBNgKkASACQfDLwQA2AqABIAJCATcCrAEgAiAIQSFqrUKAgICAkAWENwMQIAIgAkEQajYCqAEgAkGIAWoiASACQaABahCxBiABEI4HIQEgAEEBOgAAIAAgATYCBAweCyAILQAhQQxGDRIgAkEBNgKkASACQZzMwQA2AqABIAJCATcCrAEgAiAIQSFqrUKAgICAkAWENwMQIAIgAkEQajYCqAEgAkGUAWoiASACQaABahCxBiABEI4HIQEgAEEBOgAAIAAgATYCBAwdC0EPIQQMAQtBFSEECwJAAkACQAJAAkAgCC0AISIGDggBAAMDAgIEBAMLIAJBEGogAyAFIAQgASgCmAMQ5gMMEgsgAkEQaiADIAUgBCABKAKYAxD4BAwRCyAIKAIARQRAIAJBADYCsAEgAkEBNgKkASACQZjKwQA2AqABIAJCBDcCqAEgAkGgAWoQkgchBQwPCyAIKAIIRQRAIAJBADYCsAEgAkEBNgKkASACQfzJwQA2AqABIAJCBDcCqAEgAkGgAWoQkgchBQwPCyAIKgIEIRUgASgCmAMhByAIKgIMIRYgBkEERg0PIAJBEGogAyAFIAQgByAVIBYQ/wMMEAsgAkEBNgKkASACQdDMwQA2AqABIAJCATcCrAEgAiAIQSFqrUKAgICAkAWENwNQIAIgAkHQAGo2AqgBIAJB8ABqIgEgAkGgAWoQsQYgARCOByEFDA0LIAgoAghFBEAgAkEANgKwASACQQE2AqQBIAJB/MnBADYCoAEgAkIENwKoASACQaABahCSByEFDA0LIAEoApgDIQcgCCoCDCEVIAZBBkYNCyACQRBqIAMgBSAEIAcgFRCQBAwOCyACQQE2AqQBIAJB+MzBADYCoAEgAkIBNwKsASACIAhBIWqtQoCAgICQBYQ3A1AgAiACQdAAajYCqAEgAkH8AGoiASACQaABahCxBiABEI4HIQEgAEEBOgAAIAAgATYCBAwZCyACQRBqIAMgBSABKAKYAxCOBQwBCyACQRBqIAMgBSABKAKYAxDTBAsgAigCECIDRQ0XIAIoAhQiBkEEaygCACIEQXhxIgcgA0ECdCIDQQRBCCAEQQNxIgQbakkNHSAEQQAgByADQSdqSxsNHiAGEKICDBcLIAIgGTcDUCACQQI2AqQBIAJBtM3BADYCoAEgAkICNwKsASACQoCAgICgBSIZIAJB0ABqrYQ3AxggAiAZIBSthDcDECACIAJBEGo2AqgBIAJBBGoiASACQaABahCxBiABEI4HIQEgAEEBOgAAIAAgATYCBAwbCyAAQQA7AQAMGgtBACAFIANBgM3BABDqBwALIAUgDGogC0Hsu8cAEIwHAAsgBiAJIApB9MLHABDqBwALQZDLwQAQ/wcLAAsgAkEQaiADIAUgBCAHIBUQggUMAgsgAEEBOgAAIAAgBTYCBAwNCyACQRBqIAMgBSAEIAcgFSAWEPkECwJAAkACQAJAAkACQCAILQAiQQVrDggDAQIAAAQEBAALQaT4xgBBKEGkzMEAEOsHAAsgECABKAKUAyABKAKYAyACKAIUIAIoAhgQxwEMAgsgASgC1AJBA0kNASABKAKYAyINRQ0BQwAA/kJDAAD+QiABKgLMApUgAS0A0AJBAkYbIRYgAigCGCELIAIoAhQhBiABKAKsAiABKAKUAyIRQRVsaiEHIAEoArACIQxBACEEQQAhCQNAIAwgCSARaiIDSwRAIAlBAWohCUEAIQUgBiEDA0AgBCAFaiIKIAtPDQUgBSAHakH/AEMAAP5CQwAA/sIgFiADKgIAlCIVIBVDAAD+wl0bIhUgFUMAAP5CXhsQuQciFfwAQYB/IBVDAAAAw2AbIBVDAAD+Ql4bQQAgFSAVWxs6AAAgA0EEaiEDIAVBAWoiBUEVRw0ACyAGQdQAaiEGIARBFWohBCAHQRVqIQcgCSANRw0BDAMLCyAJQRVsIgogC08NAiADIAxBxMTHABCMBwALIBAgASgClAMgASgCmAMgAigCFCACKAIYEJYCCyACKAIQIgNFDQ0CQCACKAIUIgZBBGsoAgAiBEF4cSIHIANBAnQiA0EEQQggBEEDcSIEG2pPBEAgBEEAIAcgA0EnaksbDQEgBhCiAgwPCwwUCwwUCyAKIAtBtMTHABCMBwALIAJBoAFqIAMgBSABKAKYAxDUBCABKAKIAiABKAKMAiABKAKUAyABKAKYAyACKAKkASIDIAIoAqgBEI0DIAIoAqABIgZFDQsCQCADQQRrKAIAIgRBeHEiByAGQQJ0IgZBBEEIIARBA3EiBBtqTwRAIARBACAHIAZBJ2pLGw0BIAMQogIMDQsMEgsMEgsgAkGgAWogAyAFIAEoApgDEJwFIAEoAogCIAEoAowCIAEoApQDIAEoApgDIAIoAqQBIgMgAigCqAEQswMgAigCoAEiBkUNCgJAIANBBGsoAgAiBEF4cSIHIAZBAXQiBkEEQQggBEEDcSIEG2pPBEAgBEEAIAcgBkEnaksbDQEgAxCiAgwMCwwRCwwRCyAHQQFqIQcLIAcgBkHEzcEAEIwHAAsgAigCVCEJAkACQAJAIAEoApgDIgoEQCACKAJYIQtBACEDIAEoAoACIgwgASgClAMiBmsiBEEAIAQgDE0bIQQgASgC/AEgBkEYbGpBFGohBSAJIQcDQCAERQ0CIANBA2ogC08NAyACIAf9AAIA/QsEoAEgBUECaiACQaABahCdBCINQRB2OgAAIAUgDTsBACAHQRBqIQcgA0EEaiEDIAVBGGohBSAGQQFqIQYgBEEBayEEIApBAWsiCg0ACwsgAigCUCIDRQ0KIAlBBGsoAgAiBkF4cSIEIANBAnQiA0EEQQggBkEDcSIGG2pJDRAgBkEAIAQgA0EnaksbDQIgCRCiAgwKCyAGIAxB7LvHABCMBwALIAMgA0EEaiALQdTExwAQ6gcACwwOCyACQRBqIAMgBSABKAKYAyAIKgIEIAgqAgwQqgMLIAIoAhQhBwJAAkACQCABKAKYAyILBEAgAigCGCEKIAEoApQDIgxBGGwhBEEAIQYgByEDQQAhBQNAIAUgDGoiCSABKAKAAiINTw0CIAZBA2oiCSAKSyAFQdSq1aoFS3INAyABKAL8ASAEaiATIAP9XQIAIANBCGoqAgAiFf0gAiAV/SADEN8EIANBDGohAyAEQRhqIQQgCSEGIAsgBUEBaiIFRw0ACwsgAigCECIDRQ0IIAdBBGsoAgAiBkF4cSIEIANBAnQiA0EEQQggBkEDcSIGG2pJDQ4gBkEAIAQgA0EnaksbDQIgBxCiAgwICyAJIA1B7LvHABCMBwALIAYgCSAKQbTFxwAQ6gcACwwMCyACQRBqIAMgBUEDIAYgFSAWEPkECyAQIAEoApQDIAEoApgDIAIoAhQiAyACKAIYEKQEIAIoAhAiBkUNAwJAIANBBGsoAgAiBEF4cSIHIAZBAnQiBkEEQQggBEEDcSIEG2pPBEAgBEEAIAcgBkEnaksbDQEgAxCiAgwFCwwKCwwKCyACQRBqIAMgBUEBIAEoApgDIAgqAgQgCCoCDBD5BAsgASgC/AEgASgCgAIgASgClAMgASgCmAMgAigCFCIDIAIoAhgQqgIgAigCECIGRQ0BAkAgA0EEaygCACIEQXhxIgcgBkECdCIGQQRBCCAEQQNxIgQbak8EQCAEQQAgByAGQSdqSxsNASADEKICDAMLDAgLDAgLIBJFIA9Fcg0FIA4gD0EBEKIHDAULAkACQAJAIAEoAoADIgYgCCgCGEEHakF4cSIDTwRAIAFBADYCgAMgBiADayEEIANFDQEgAyAGRg0DIARFDQIgASgC/AIiBiADIAZqIAT8CgAADAILQQAgAyAGQYSkxwAQ6gcACyADIAZGDQELIAEgBDYCgAMLIAgpAxghGSABIAEoApADQQFqIgU2ApADIAEgASkD2AIgGUIHfEL4////D4N8NwPYAgJAIBJFIA9Fcg0AAkAgDkEEaygCACIDQXhxIgZBBEEIIANBA3EiAxsgD2pPBEAgA0EAIAYgD0EnaksbDQEgDhCiAiABKAKQAyEFDAILDAcLDAcLIAUgASgC7AFJDQALCyAAQYACOwEADAILQYzJwQAQ3QkACyAAQQE6AAAgACAONgIECyACQcABaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALqC8BBX8jAEEwayICJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAIgMtAABBAWsOIwECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjAAsgAiADQQxqNgIQIAEoAgBBlNDEAEELIAEoAgQoAgwRAAAhACACQQA6ACUgAiAAOgAkIAIgATYCICACQSBqQZ/QxABBByADQQRqQfTPxAAQjAVBptDEAEEHIANBCGpB9M/EABCMBUGM08cAQQUgAkEQakGE0MQAEIwFIAItACUiAyACLQAkIgRyIQAgBEEBcSADQQFHcg0jKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAAwkCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQAMIwsgASgCAEGt0MQAQRAgASgCBCgCDBEAACEADCILIAEoAgBBvdDEAEELIAEoAgQoAgwRAAAhAAwhCyABKAIAQcjQxABBECABKAIEKAIMEQAAIQAMIAsgAiADQQFqNgIQIAEoAgBB2NDEAEEPIAEoAgQoAgwRAAAhACACQQA6ACUgAiAAOgAkIAIgATYCICACQSBqQcj7xwBBBCACQRBqQYTQxAAQjAUgAi0AJSIDIAItACQiBHIhACAEQQFxIANBAUdyDR8oAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADCALIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAwfCyACIANBAWo2AhAgASgCAEHn0MQAQQkgASgCBCgCDBEAACEAIAJBADoAJSACIAA6ACQgAiABNgIgIAJBIGpByPvHAEEEIAJBEGpBhNDEABCMBSACLQAlIgMgAi0AJCIEciEAIARBAXEgA0EBR3INHigCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQAMHwsgACgCAEGls8UAQQEgACgCBCgCDBEAACEADB4LIAIgA0EBajYCECABKAIAQfDQxABBCiABKAIEKAIMEQAAIQAgAkEAOgAlIAIgADoAJCACIAE2AiAgAkEgakHI+8cAQQQgAkEQakGE0MQAEIwFIAItACUiAyACLQAkIgRyIQAgBEEBcSADQQFHcg0dKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAAweCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQAMHQsgAiADQQFqNgIQIAEoAgBB+tDEAEEJIAEoAgQoAgwRAAAhACACQQA6ACUgAiAAOgAkIAIgATYCICACQSBqQcj7xwBBBCACQRBqQYTQxAAQjAUgAi0AJSIDIAItACQiBHIhACAEQQFxIANBAUdyDRwoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADB0LIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAwcCyACIANBAWo2AhAgASgCAEGD0cQAQQ8gASgCBCgCDBEAACEAIAJBADoAJSACIAA6ACQgAiABNgIgIAJBIGpByPvHAEEEIAJBEGpBhNDEABCMBSACLQAlIgMgAi0AJCIEciEAIARBAXEgA0EBR3INGygCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQAMHAsgACgCAEGls8UAQQEgACgCBCgCDBEAACEADBsLIAIgA0EBajYCECABKAIAQZLRxABBDiABKAIEKAIMEQAAIQAgAkEAOgAlIAIgADoAJCACIAE2AiAgAkEgakHI+8cAQQQgAkEQakGE0MQAEIwFIAItACUiAyACLQAkIgRyIQAgBEEBcSADQQFHcg0aKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAAwbCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQAMGgsgAiADQQhqNgIQIAEoAgBBoNHEAEEJIAEoAgQoAgwRAAAhACACQQA6ACUgAiAAOgAkIAIgATYCICACQSBqQanRxABBByADQQRqQfTPxAAQjAVBkK/HAEEIIAJBEGpB1LbEABCMBSACLQAlIgMgAi0AJCIEciEAIARBAXEgA0EBR3INGSgCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQAMGgsgACgCAEGls8UAQQEgACgCBCgCDBEAACEADBkLIAIgA0EIajYCECABKAIAQbDRxABBDCABKAIEKAIMEQAAIQAgAkEAOgAlIAIgADoAJCACIAE2AiAgAkEgakGQr8cAQQggA0EEakGgwMQAEIwFQbzRxABBAyACQRBqQeS2xAAQjAUgAi0AJSIDIAItACQiBHIhACAEQQFxIANBAUdyDRgoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADBkLIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAwYCyACIANBCGo2AhAgASgCAEHQ0cQAQRQgASgCBCgCDBEAACEAIAJBADoAJSACIAA6ACQgAiABNgIgIAJBIGpB5NHEAEEKIANBAWpBwNHEABCMBUGQr8cAQQggA0EEakGgwMQAEIwFQbzRxABBAyACQRBqQeS2xAAQjAUgAi0AJSIDIAItACQiBHIhACAEQQFxIANBAUdyDRcoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADBgLIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAwXCyACIANBAWo2AhAgASgCAEGA0sQAQQsgASgCBCgCDBEAACEAIAJBADoAJSACIAA6ACQgAiABNgIgIAJBIGpBi9LEAEEMIANBAmpB8NHEABCMBUGX0sQAQQQgAkEQakGUtsQAEIwFIAItACUiAyACLQAkIgRyIQAgBEEBcSADQQFHcg0WKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAAwXCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQAMFgsgASgCAEGb0sQAQQ8gASgCBCgCDBEAACEADBULIAIgA0EBajYCECABKAIAQbzSxABBFCABKAIEKAIMEQAAIQAgAkEAOgAlIAIgADoAJCACIAE2AiAgAkEgakHk0cQAQQogA0ECakHA0cQAEIwFQdDSxABBCSACQRBqQazSxAAQjAUgAi0AJSIDIAItACQiBHIhACAEQQFxIANBAUdyDRQoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADBULIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAwUC0EBIQAgASgCACIEQdnSxABBECABKAIEIgYoAgwiBREAAA0TIANBAWohAwJAIAEtAApBgAFxRQRAIARBu7PFAEEBIAURAAANFSABKAIAIAMtAABBAnQiAygCxIdJIAMoAqiHSSABKAIEKAIMEQAARQ0BDBULIARB24HCAEECIAURAAANFCACIAY2AiQgAiAENgIgIAJBAToAECADLQAAQQJ0IgMoArCFSSEEIAMoAsyFSSEDIAIgAkEQajYCKCACQSBqIgUgAyAEEK8DDRQgBUHZgcIAQQIQrwMNFAsgASgCAEHejsgAQQEgASgCBCgCDBEAACEADBMLIAEoAgBB783EAEERIAEoAgQoAgwRAAAhAAwSC0EBIQAgAiADQQFqNgIMIAEoAgAiA0Hp0sQAQQ8gASgCBCIFKAIMIgQRAAANEQJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANEyACQQxqIAEQxARFDQEMEwsgA0HbgcIAQQIgBBEAAA0SIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNEiACKAIgQdmBwgBBAiACKAIkKAIMEQAADRILIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwRC0EBIQAgAiADQQFqNgIMIAEoAgAiA0H40sQAQRAgASgCBCIFKAIMIgQRAAANEAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANEiACQQxqIAEQxARFDQEMEgsgA0HbgcIAQQIgBBEAAA0RIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNESACKAIgQdmBwgBBAiACKAIkKAIMEQAADRELIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwQC0EBIQAgAiADQQFqNgIMIAEoAgAiA0GI08QAQRAgASgCBCIFKAIMIgQRAAANDwJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANESACQQxqIAEQxARFDQEMEQsgA0HbgcIAQQIgBBEAAA0QIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNECACKAIgQdmBwgBBAiACKAIkKAIMEQAADRALIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwPC0EBIQAgAiADQQFqNgIMIAEoAgAiA0GY08QAQQ4gASgCBCIFKAIMIgQRAAANDgJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANECACQQxqIAEQxARFDQEMEAsgA0HbgcIAQQIgBBEAAA0PIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNDyACKAIgQdmBwgBBAiACKAIkKAIMEQAADQ8LIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwOC0EBIQAgAiADQQFqNgIMIAEoAgAiA0Gm08QAQQsgASgCBCIFKAIMIgQRAAANDQJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANDyACQQxqIAEQxARFDQEMDwsgA0HbgcIAQQIgBBEAAA0OIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNDiACKAIgQdmBwgBBAiACKAIkKAIMEQAADQ4LIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwNC0EBIQAgAiADQQFqNgIMIAEoAgAiA0Gx08QAQRogASgCBCIFKAIMIgQRAAANDAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANDiACQQxqIAEQxARFDQEMDgsgA0HbgcIAQQIgBBEAAA0NIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNDSACKAIgQdmBwgBBAiACKAIkKAIMEQAADQ0LIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwMC0EBIQAgAiADQQFqNgIMIAEoAgAiA0HL08QAQRggASgCBCIFKAIMIgQRAAANCwJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANDSACQQxqIAEQxARFDQEMDQsgA0HbgcIAQQIgBBEAAA0MIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNDCACKAIgQdmBwgBBAiACKAIkKAIMEQAADQwLIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwLC0EBIQAgAiADQQFqNgIMIAEoAgAiA0Hj08QAQRMgASgCBCIFKAIMIgQRAAANCgJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANDCACQQxqIAEQxARFDQEMDAsgA0HbgcIAQQIgBBEAAA0LIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNCyACKAIgQdmBwgBBAiACKAIkKAIMEQAADQsLIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwKC0EBIQAgAiADQQFqNgIMIAEoAgAiA0H208QAQRYgASgCBCIFKAIMIgQRAAANCQJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANCyACQQxqIAEQxARFDQEMCwsgA0HbgcIAQQIgBBEAAA0KIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNCiACKAIgQdmBwgBBAiACKAIkKAIMEQAADQoLIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwJCyABKAIAQYzUxABBESABKAIEKAIMEQAAIQAMCAsgAiADQQFqNgIQIAEoAgBBsNTEAEESIAEoAgQoAgwRAAAhACACQQA6ACUgAiAAOgAkIAIgATYCICACQSBqQcLUxABBAyACQRBqQaDUxAAQjAUgAi0AJSIDIAItACQiBHIhACAEQQFxIANBAUdyDQcoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADAgLIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAwHCyABKAIAQcXUxABBDyABKAIEKAIMEQAAIQAMBgtBASEAIAEoAgAiBEHU1MQAQQ8gASgCBCIGKAIMIgURAAANBSADQQFqIQMCQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQcgAyABKAIAIAEoAgQQ1ghFDQEMBwsgBEHbgcIAQQIgBREAAA0GIAIgBjYCJCACIAQ2AiAgAkEBOgAQIAIgAkEQajYCKCADIAJBIGoiA0HggcIAENYIDQYgA0HZgcIAQQIQrwMNBgsgASgCAEHejsgAQQEgASgCBCgCDBEAACEADAULIAEoAgBB49TEAEEYIAEoAgQoAgwRAAAhAAwECyACIANBAWo2AhAgASgCAEH71MQAQSQgASgCBCgCDBEAACEAIAJBADoAJSACIAA6ACQgAiABNgIgIAJBIGpByPvHAEEEIAJBEGpBhNDEABCMBSACLQAlIgMgAi0AJCIEciEAIARBAXEgA0EBR3INAygCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQAMBAsgACgCAEGls8UAQQEgACgCBCgCDBEAACEADAMLIAIgA0EBajYCECABKAIAQZ/VxABBECABKAIEKAIMEQAAIQAgAkEAOgAlIAIgADoAJCACIAE2AiAgAkEgakHI+8cAQQQgAkEQakGE0MQAEIwFIAItACUiAyACLQAkIgRyIQAgBEEBcSADQQFHcg0CKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAAwDCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQAMAgsgAiADQQFqNgIQIAEoAgBBr9XEAEEZIAEoAgQoAgwRAAAhACACQQA6ACUgAiAAOgAkIAIgATYCICACQSBqQcjVxABBCCACQRBqQYTQxAAQjAUgAi0AJSIDIAItACQiBHIhACAEQQFxIANBAUdyDQEoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADAILIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAwBCyABKAIAQdDVxABBDSABKAIEKAIMEQAAIQALIAJBMGokACAAQQFxC9wkAhd/A34jAEHABmsiBSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKQMAIhxQRQRAIAEpAwgiHVANASABKQMQIh5QDQIgHiAcQn+FVg0DIBwgHVQNBCABLgEYIQEgBSAcPgIMIAVBAUECIBxCgICAgBBUIgYbNgKsASAFQQAgHEIgiKcgBhs2AhAgBUEUakEAQZgB/AsAIAVBtAFqQQBBnAH8CwAgBUEBNgKwASAFQQE2AtACIAGsIBxCAX15fULCmsHoBH5CgKHNoLQCfEIgiKciBsEhDwJAIAFBAE4EQCAFQQxqIAEQuQMaDAELIAVBsAFqQQAgAWvBELkDGgsCQCAPQQBIBEAgBUEMakEAIA9rQf//A3EQ9AEMAQsgBUGwAWogBkH//wFxEPQBCyAFQZwFaiAFQbABakGkAfwKAAAgBUGUBWohCiADIQgDQCAFKAK8BiIBQSlPDQ4CQCABRQ0AAn4gAUECdCIBQQRrIglFBEAgBUGcBWogAWohAUIADAELIAEgCmohByAJQQJ2QQFqQf7///8HcSEGQgAhHANAIAciAUEEaiIHIAc1AgAgHEIghoQiHEKAlOvcA4AiHT4CACABIAE1AgAgHCAdQoCU69wDfn1CIIaEIhxCgJTr3AOAIh0+AgAgHCAdQoCU69wDfn0hHCABQQhrIQcgBkECayIGDQALIAlBBHENASAcQiCGCyEcIAFBBGsiASAcIAE1AgCEQoCU69wDgD4CAAsgCEEJayIIQQlLDQALIAhBAnQoAqCVQkEBdCIGRQ0FIAUoArwGIgFBKU8NDSABBH8gBq0hHAJAAn4gAUECdCIBQQRrIglFBEAgBUGcBWogAWohAUIADAELIAEgBWpBlAVqIQcgCUECdkEBakH+////B3EhBkIAIR0DQCAHIgFBBGoiByAHNQIAIB1CIIaEIh0gHIAiHj4CACABIAE1AgAgHSAcIB5+fUIghoQiHSAcgCIePgIAIB0gHCAefn0hHSABQQhrIQcgBkECayIGDQALIAlBBHENASAdQiCGCyEdIAFBBGsiASAdIAE1AgCEIByAPgIACyAFKAK8BgVBAAshASAFKAKsASIJIAEgASAJSRsiDEEoSw0GAkAgDEUEQEEAIQwMAQtBACEKQQAhCAJAAkAgDEEBRwRAIAxBAXEgDEE+cSELIAVBnAVqIQEgBUEMaiEHA0AgASAHKAIAIg0gASgCAGoiBiAIQQFxaiIONgIAIAFBBGoiCCAHQQRqKAIAIhQgCCgCAGoiCCAGIA1JIAYgDktyaiIGNgIAIAggFEkgBiAISXIhCCAHQQhqIQcgAUEIaiEBIAsgCkECaiIKRw0AC0UNAQsgCkECdCIBIAVBnAVqaiIGIAVBDGogAWooAgAiByAGKAIAaiIBIAhqIgY2AgAgASAHSSABIAZLcg0BDAILIAhFDQELIAxBKEYNDyAFQZwFaiAMQQJ0akEBNgIAIAxBAWohDAsgBSAMNgK8BiAFKALQAiIQIAwgDCAQSRsiAUEpTw0NIAFBAnQhAQJAAkADQCABRQ0BIAFBBGsiASAFQZwFamooAgAiBiABIAVBsAFqaigCACIHRg0ACyAGIAdPDQEMCQsgBUGwAWoiBiABIAZqRw0ICyAPQQFqIQ8MCAtB2I/CAEEcQYCTwgAQ6wcAC0G0kMIAQR1BkJPCABDrBwALQeSQwgBBHEGgk8IAEOsHAAtBuJLCAEE2QZCUwgAQ6wcAC0HwkcIAQTdBgJTCABDrBwALQdSCwgBBG0GMg8IAEOsHAAtBACAMQShBjIPCABDqBwALIAlFBEBBACEJIAVBADYCrAEMAQsgCUECdCIKQQRrIgFBAnZBAWoiB0EDcSEGAkAgAUEMSQRAIAVBDGohAUIAIRwMAQsgB0H8////B3EhByAFQQxqIQFCACEcA0AgASABNQIAQgp+IBx8Ihw+AgAgAUEEaiIIIAg1AgBCCn4gHEIgiHwiHD4CACABQQhqIgggCDUCAEIKfiAcQiCIfCIcPgIAIAFBDGoiCCAINQIAQgp+IBxCIIh8Ih0+AgAgHUIgiCEcIAFBEGohASAHQQRrIgcNAAsLIAYEQCAGQQJ0IQcDQCABIAE1AgBCCn4gHHwiHT4CACABQQRqIQEgHUIgiCEcIAdBBGsiBw0ACwsgHUKAgICAEFoEQCAJQShGDQcgBUEMaiAKaiAcPgIAIAlBAWohCQsgBSAJNgKsAQtBACEMQQEhCyAPwSIBIATBIgZIIhsNACAPIARrwSADIAEgBmsgA0kbIgpFDQBBACIBRQRAIAVB1AJqIAVBsAFqQaQB/AoAAAsgBUHUAmpBARC5AyEUIAFFBEAgBUH4A2ogBUGwAWpBpAH8CgAACyAFQfgDakECELkDIRYgAUUEQCAFQZwFaiAFQbABakGkAfwKAAALIAVBnAVqQQMQuQMhFyAUKAKgASEYIBYoAqABIRkgFygCoAEhGkEAIQ0CQAJAAkADQAJ/AkACQCAJQSlJBEAgCUECdCEEQQAhAQJAA0AgASAERg0BIAVBDGogAWogAUEEaiEBKAIARQ0ACyAaIAkgCSAaSRsiBkEpTw0QIAZBAnQhAQJAAkADQCABRQ0BIAFBBGsiASAFQQxqaigCACIEIAEgBUGcBWpqKAIAIgdGDQALIAQgB0kNAQwFCyAXIAVBnAVqIAFqRg0ECyAJIQZBAAwECyADIApJDQECQCAKIA1GDQAgCiANayIBRQ0AIAIgDWpBMCAB/AsACyAAIA87AQggACAKNgIEDAoLDA0LIA0gCiADQfCTwgAQ6gcAC0EBIQhBACELAkACQCAGQQFHBEAgBkEBcSAGQT5xIREgBUEMaiEBIAVBnAVqIQcDQCABIAEoAgAiEiAHKAIAQX9zaiIEIAhBAXFqIgg2AgAgAUEEaiIJIAkoAgAiEyAHQQRqKAIAQX9zaiIJIAQgEkkgBCAIS3JqIgQ2AgAgCSATSSAEIAlJciEIIAdBCGohByABQQhqIQEgESALQQJqIgtHDQALRQ0BCyALQQJ0IgEgBUEMamoiBCAEKAIAIgQgASAXaigCAEF/c2oiASAIaiIHNgIAIAEgBEkgASAHS3INAQwPCyAIRQ0OCyAFIAY2AqwBQQgLIQ4gGSAGIAYgGUkbIgRBKU8NAiAEQQJ0IQECQAJAAkADQCABRQ0BIAFBBGsiASAFQQxqaigCACIHIAEgBUH4A2pqKAIAIglGDQALIAcgCU8NASAGIQQMAgsgFiAFQfgDaiABakYNACAGIQQMAQsCQCAERQ0AQQEhCEEAIQsCQCAEQQFHBEAgBEEBcSAEQT5xIRIgBUEMaiEBIAVB+ANqIQcDQCABIAEoAgAiEyAHKAIAQX9zaiIGIAhBAXFqIgg2AgAgAUEEaiIJIAkoAgAiFSAHQQRqKAIAQX9zaiIJIAYgE0kgBiAIS3JqIgY2AgAgCSAVSSAGIAlJciEIIAdBCGohByABQQhqIQEgEiALQQJqIgtHDQALRQ0BCyALQQJ0IgEgBUEMamoiBiAGKAIAIgYgASAWaigCAEF/c2oiASAIaiIHNgIAIAEgBkkgASAHS3INAQwPCyAIRQ0OCyAFIAQ2AqwBIA5BBHIhDgsgGCAEIAQgGEkbIgZBKU8NCyAGQQJ0IQECQAJAAkADQCABRQ0BIAFBBGsiASAFQQxqaigCACIHIAEgBUHUAmpqKAIAIglGDQALIAcgCU8NASAEIQYMAgsgFCAFQdQCaiABakYNACAEIQYMAQsCQCAGRQ0AQQEhCEEAIQsCQCAGQQFHBEAgBkEBcSAGQT5xIRIgBUEMaiEBIAVB1AJqIQcDQCABIAEoAgAiEyAHKAIAQX9zaiIEIAhBAXFqIgg2AgAgAUEEaiIJIAkoAgAiFSAHQQRqKAIAQX9zaiIJIAQgE0kgBCAIS3JqIgQ2AgAgCSAVSSAEIAlJciEIIAdBCGohByABQQhqIQEgEiALQQJqIgtHDQALRQ0BCyALQQJ0IgEgBUEMamoiBCAEKAIAIgQgASAUaigCAEF/c2oiASAIaiIHNgIAIAEgBEkgASAHS3INAQwPCyAIRQ0OCyAFIAY2AqwBIA5BAmohDgsgECAGIAYgEEkbIglBKU8NCiAJQQJ0IQECQAJAAkADQCABRQ0BIAFBBGsiASAFQQxqaigCACIEIAEgBUGwAWpqKAIAIgdGDQALIAQgB08NASAGIQkMAgsgBUGwAWoiBCABIARqRg0AIAYhCQwBCwJAIAlFDQBBASEIQQAhCwJAIAlBAUcEQCAJQQFxIAlBPnEhEiAFQQxqIQEgBUGwAWohBwNAIAEgASgCACITIAcoAgBBf3NqIgQgCEEBcWoiCDYCACABQQRqIgYgBigCACIVIAdBBGooAgBBf3NqIgYgBCATSSAEIAhLcmoiBDYCACAGIBVJIAQgBklyIQggB0EIaiEHIAFBCGohASASIAtBAmoiC0cNAAtFDQELIAtBAnQiASAFQQxqaiIEIAQoAgAiBCAFQbABaiABaigCAEF/c2oiASAIaiIGNgIAIAEgBEkgASAGS3INAQwPCyAIRQ0OCyAFIAk2AqwBIA5BAWohDgsgAyANTQ0BIAIgDWogDkEwajoAAAJAIAlFBEBBACEJDAELIAlBAnQiBkEEayIBQQJ2QQFqIgdBA3EhBAJAIAFBDEkEQCAFQQxqIQFCACEdDAELIAdB/P///wdxIQcgBUEMaiEBQgAhHQNAIAEgATUCAEIKfiAdfCIcPgIAIAFBBGoiCCAINQIAQgp+IBxCIIh8Ihw+AgAgAUEIaiIIIAg1AgBCCn4gHEIgiHwiHD4CACABQQxqIgggCDUCAEIKfiAcQiCIfCIcPgIAIBxCIIghHSABQRBqIQEgB0EEayIHDQALCyAEBEAgBEECdCEHA0AgASABNQIAQgp+IB18Ihw+AgAgAUEEaiEBIBxCIIghHSAHQQRrIgcNAAsLIBxCgICAgBBUDQAgCUEoRg0EIAVBDGogBmogHT4CACAJQQFqIQkLIAUgCTYCrAEgDUEBaiINIApHDQALQQAhCwwECyANIANB4JPCABCMBwALQQAgBEEoQYyDwgAQ6gcACwwFC0EAIQoLAn8CQAJAAkAgEEUNACAQQQJ0IgZBBGsiAUECdkEBaiIHQQNxIQQCQCABQQxJBEAgBUGwAWohAUIAIR0MAQsgB0H8////B3EhByAFQbABaiEBQgAhHQNAIAEgATUCAEIFfiAdfCIcPgIAIAFBBGoiCCAINQIAQgV+IBxCIIh8Ihw+AgAgAUEIaiIIIAg1AgBCBX4gHEIgiHwiHD4CACABQQxqIgggCDUCAEIFfiAcQiCIfCIcPgIAIBxCIIghHSABQRBqIQEgB0EEayIHDQALCyAEBEAgBEECdCEHA0AgASABNQIAQgV+IB18Ihw+AgAgAUEEaiEBIBxCIIghHSAHQQRrIgcNAAsLIBxCgICAgBBUBEAgECEMDAELIBBBKEYNByAFQbABaiAGaiAdPgIAIBBBAWohDAsgBSAMNgLQAiAMIAkgCSAMSRsiAUEpTw0FIAFBAnQhASAFQQhqIQcCQAJAAn8CQANAIAFFDQEgASAHaigCACIEIAFBBGsiASAFQbABamooAgAiBkYNAAsgBCAGSyAEIAZJawwBC0F/QQAgBUGwAWoiBCABIARqRxsLQf8BcQ4CAAEDC0EAIAsNAxogAyAKQQFrIgFLBEAgASACai0AAEEBcQ0BDAMLIAEgA0Gwk8IAEIwHAAsgAyAKSQ0AIAIgCmohBiAKIQcCQAJAA0AgByIBRQ0BIAFBAWsiByACaiIELQAAQTlGDQALIAQgBC0AAEEBajoAACABIApNDQEgASAKIApB+ITCABDqBwALAkAgCwRAQTEhAQwBCyACQTE6AABBMCEBIApBAWsiBEUgBEVyDQAgAkEBakEwIAT8CwALIA9BAWohDyAbIAMgCk1yDQIgBiABOgAAIApBAWohCgwCCyABIApGDQEgCiABayIERQ0BIAEgAmpBMCAE/AsADAELQQAgCiADQcCTwgAQ6gcACyADIApJDQIgCgshASAAIA87AQggACABNgIECyAAIAI2AgAgBUHABmokAA8LQQAgCiADQdCTwgAQ6gcAC0EAIAFBKEGMg8IAEOoHAAtBKEEoQYyDwgAQjAcAC0EAIAlBKEGMg8IAEOoHAAtBACAGQShBjIPCABDqBwALQe+CwgBBGkGMg8IAEOsHAAuSMgI0ex1/AkACQAJAAkACQAJAAkACQAJAIAFBAksEQCADRQ0BIAVFDQIgB0UNAyAJRQ0EIAtFDQUgAEH/ASACLQAAQYWVAWxBCHYiRSAGLQAAIkAgBC0AACJGQQxsaiBAQQNsakEIakEEdiJHQZqCAmxBCHZqQZWKAWtBBnUiQ0EAIENBAEobIkMgQ0H/AU4bOgACIABB/wEgRSAKLQAAIkMgCC0AACJLQQxsaiBDQQNsakEIakEEdiJBQaXMAWxBCHZqQZrvAGtBBnUiQkEAIEJBAEobIkIgQkH/AU4bOgAAIABB/wEgRSBHQZMybEEIdiBBQYjoAGxBCHZqa0GExABqQQZ1IkVBACBFQQBKGyJFIEVB/wFOGzoAASABQQNGDQYgAkEBaiFFIANBAWsiA0F+cSFRIABBBGohRyADQQFxIVkgAUEEayJaQXhxIlJFDQkgA0EBdiIDIkEgAUEMa0EDdiIBIAEgQUsbIkEgC0EBayJIIkIgQSBCSRsiQSAJQQFrIkkiQiBBIEJJGyJBIAdBAWsiSiJCIEEgQkkbIkEgBUEBayJCIEEgQkkbIkFBEEkNByBHIAIgAyABIAEgA0sbIgEgSCIDIAEgA0kbIgEgSSIDIAEgA0kbIgEgSiIDIAEgA0kbIgEgQiIDIAEgA0kbIgNBAXRqQQNqSSBFIAAgA0EDdGpBC2oiAUlxDQcgRyAEIANBAmoiAmpJIARBAWoiSiABSXEgRyACIAZqSSABIAZLcXIgRyACIAhqSSAIQQFqIgMgAUlxIEcgAiAKakkgASAKS3Fycg0HIAogQUEBaiIBIAFBD3EiAUEQIAEbayJEaiFVIAsgRGshQSAJIERrIUIgCCBEaiFIIAcgRGshTiAGIERqIVYgBSBEayFPIAQgRGohSSBFIERBAXQiAWohAiBRIAFrIVAgRyBEQQN0IgFqIVcgUiABayFYIEb9DyEUIED9DyEMIEv9DyETIEP9DyENIAYhASAKIUMgRSFGA0AgAEH8AGogRv0AAAAiHiAT/Q0AAgQGAAAAAAAAAAAAAAAA/YkB/akB/QyFSgAAhUoAAIVKAACFSgAAIhX9tQFBCP2tASIWIBMgA/0AAAAiE/0NDxAREhMUFRYXGBkaGxwdHv2JAf2pASIj/QwJAAAACQAAAAkAAAAJAAAAIhD9tQEgQ0EBav0AAAAiG/2JAf2pASIk/a4BIA0gG/0NDxAREhMUFRYXGBkaGxwdHv2JAf2pASAT/YkB/akBIib9rgH9DAMAAAADAAAAAwAAAAMAAAAiEf21Af2uAf0MCAAAAAgAAAAIAAAACAAAACIS/a4BQQT9rQEiF/0MJWYAACVmAAAlZgAAJWYAACIY/bUBQQj9rQH9rgH9DGbI//9myP//Zsj//2bI//8iGf2uAUEG/awB/QwAAAAAAAAAAAAAAAAAAAAAIg39uAH9DP8AAAD/AAAA/wAAAP8AAAAiD/22ASAeIA39DQgKDA4AAAAAAAAAAAAAAAD9iQH9qQEgFf21AUEI/a0BIiAgEyAN/Q0DBAUGAAAAAAAAAAAAAAAA/YkB/akBIicgEP21ASAbIA39DQQFBgcAAAAAAAAAAAAAAAD9iQH9qQEiKP2uASAbIA39DQMEBQYAAAAAAAAAAAAAAAD9iQH9qQEgEyAN/Q0EBQYHAAAAAAAAAAAAAAAA/YkB/akBIin9rgEgEf21Af2uASAS/a4BQQT9rQEiGiAY/bUBQQj9rQH9rgEgGf2uAUEG/awBIA39uAEgD/22Af2GASBG/QAAECIhIA39DQACBAYAAAAAAAAAAAAAAAD9iQH9qQEgFf21AUEI/a0BIiIgEyAN/Q0HCAkKAAAAAAAAAAAAAAAA/YkB/akBIiogEP21ASAbIA39DQgJCgsAAAAAAAAAAAAAAAD9iQH9qQEiK/2uASAbIA39DQcICQoAAAAAAAAAAAAAAAD9iQH9qQEgEyAN/Q0ICQoLAAAAAAAAAAAAAAAA/YkB/akBIiz9rgEgEf21Af2uASAS/a4BQQT9rQEiJSAY/bUBQQj9rQH9rgEgGf2uAUEG/awBIA39uAEgD/22ASAhIA39DQgKDA4AAAAAAAAAAAAAAAD9iQH9qQEgFf21AUEI/a0BIh8gEyAN/Q0LDA0OAAAAAAAAAAAAAAAA/YkB/akBIi0gEP21ASAbIA39DQwNDg8AAAAAAAAAAAAAAAD9iQH9qQEiLv2uASAbIA39DQsMDQ4AAAAAAAAAAAAAAAD9iQH9qQEgEyAN/Q0MDQ4PAAAAAAAAAAAAAAAA/YkB/akBIi/9rgEgEf21Af2uASAS/a4BQQT9rQEiMCAY/bUBQQj9rQH9rgEgGf2uAUEG/awBIA39uAEgD/22Af2GAf1mIg79WAAADyAAQfQAaiAO/VgAAA4gAEHsAGogDv1YAAANIABB5ABqIA79WAAADCAAQdwAaiAO/VgAAAsgAEHUAGogDv1YAAAKIABBzABqIA79WAAACSAAQcQAaiAO/VgAAAggAEE8aiAO/VgAAAcgAEE0aiAO/VgAAAYgAEEsaiAO/VgAAAUgAEEkaiAO/VgAAAQgAEEcaiAO/VgAAAMgAEEUaiAO/VgAAAIgAEEMaiAO/VgAAAEgAEEEaiAO/VgAAAAgAEH9AGogFiAUIEr9AAAAIhT9DQ8QERITFBUWFxgZGhscHR79iQH9qQEiMSAQ/bUBIAFBAWr9AAAAIg79iQH9qQEiMv2uASAMIA79DQ8QERITFBUWFxgZGhscHR79iQH9qQEgFP2JAf2pASIz/a4BIBH9tQH9rgEgEv2uAUEE/a0BIjT9DBMZAAATGQAAExkAABMZAAAiHP21AUEI/a0BIBf9DAg0AAAINAAACDQAAAg0AAAiF/21AUEI/a0B/a4B/bEB/QwEIgAABCIAAAQiAAAEIgAAIh39rgFBBv2sASAN/bgBIA/9tgEgICAUIA39DQMEBQYAAAAAAAAAAAAAAAD9iQH9qQEiNSAQ/bUBIA4gDf0NBAUGBwAAAAAAAAAAAAAAAP2JAf2pASI2/a4BIA4gDf0NAwQFBgAAAAAAAAAAAAAAAP2JAf2pASAUIA39DQQFBgcAAAAAAAAAAAAAAAD9iQH9qQEiN/2uASAR/bUB/a4BIBL9rgFBBP2tASI4IBz9tQFBCP2tASAaIBf9tQFBCP2tAf2uAf2xASAd/a4BQQb9rAEgDf24ASAP/bYB/YYBICIgFCAN/Q0HCAkKAAAAAAAAAAAAAAAA/YkB/akBIjkgEP21ASAOIA39DQgJCgsAAAAAAAAAAAAAAAD9iQH9qQEiOv2uASAOIA39DQcICQoAAAAAAAAAAAAAAAD9iQH9qQEgFCAN/Q0ICQoLAAAAAAAAAAAAAAAA/YkB/akBIjv9rgEgEf21Af2uASAS/a4BQQT9rQEiPCAc/bUBQQj9rQEgJSAX/bUBQQj9rQH9rgH9sQEgHf2uAUEG/awBIA39uAEgD/22ASAfIBQgDf0NCwwNDgAAAAAAAAAAAAAAAP2JAf2pASIlIBD9tQEgDiAN/Q0MDQ4PAAAAAAAAAAAAAAAA/YkB/akBIj39rgEgDiAN/Q0LDA0OAAAAAAAAAAAAAAAA/YkB/akBIBQgDf0NDA0ODwAAAAAAAAAAAAAAAP2JAf2pASI+/a4BIBH9tQH9rgEgEv2uAUEE/a0BIj8gHP21AUEI/a0BIDAgF/21AUEI/a0B/a4B/bEBIB39rgFBBv2sASAN/bgBIA/9tgH9hgH9ZiIM/VgAAA8gAEH1AGogDP1YAAAOIABB7QBqIAz9WAAADSAAQeUAaiAM/VgAAAwgAEHdAGogDP1YAAALIABB1QBqIAz9WAAACiAAQc0AaiAM/VgAAAkgAEHFAGogDP1YAAAIIABBPWogDP1YAAAHIABBNWogDP1YAAAGIABBLWogDP1YAAAFIABBJWogDP1YAAAEIABBHWogDP1YAAADIABBFWogDP1YAAACIABBDWogDP1YAAABIABBBWogDP1YAAAAIABB/gBqIBYgNP0MGoEAABqBAAAagQAAGoEAACIW/bUBQQj9rQH9rgH9DOu6///ruv//67r//+u6//8iGv2uAUEG/awBIA39uAEgD/22ASAgIDggFv21AUEI/a0B/a4BIBr9rgFBBv2sASAN/bgBIA/9tgH9hgEgIiA8IBb9tQFBCP2tAf2uASAa/a4BQQb9rAEgDf24ASAP/bYBIB8gPyAW/bUBQQj9rQH9rgEgGv2uAUEG/awBIA39uAEgD/22Af2GAf1mIgz9WAAADyAAQfYAaiAM/VgAAA4gAEHuAGogDP1YAAANIABB5gBqIAz9WAAADCAAQd4AaiAM/VgAAAsgAEHWAGogDP1YAAAKIABBzgBqIAz9WAAACSAAQcYAaiAM/VgAAAggAEE+aiAM/VgAAAcgAEE2aiAM/VgAAAYgAEEuaiAM/VgAAAUgAEEmaiAM/VgAAAQgAEEeaiAM/VgAAAMgAEEWaiAM/VgAAAIgAEEOaiAM/VgAAAEgAEEGaiAM/VgAAAAgAEEIaiAeIA39DQEDBQcAAAAAAAAAAAAAAAD9iQH9qQEgFf21AUEI/a0BIiAgJiAQ/bUBIEP9AAAAIgz9iQH9qQH9rgEgJCAj/a4BIBH9tQH9rgEgEv2uAUEE/a0BIh8gGP21AUEI/a0B/a4BIBn9rgFBBv2sASAN/bgBIA/9tgEgHiAN/Q0JCw0PAAAAAAAAAAAAAAAA/YkB/akBIBX9tQFBCP2tASIeICkgEP21ASAMIA39DQQFBgcAAAAAAAAAAAAAAAD9iQH9qQH9rgEgKCAn/a4BIBH9tQH9rgEgEv2uAUEE/a0BIiMgGP21AUEI/a0B/a4BIBn9rgFBBv2sASAN/bgBIA/9tgH9hgEgISAN/Q0BAwUHAAAAAAAAAAAAAAAA/YkB/akBIBX9tQFBCP2tASIiICwgEP21ASAMIA39DQgJCgsAAAAAAAAAAAAAAAD9iQH9qQH9rgEgKyAq/a4BIBH9tQH9rgEgEv2uAUEE/a0BIiQgGP21AUEI/a0B/a4BIBn9rgFBBv2sASAN/bgBIA/9tgEgISAN/Q0JCw0PAAAAAAAAAAAAAAAA/YkB/akBIBX9tQFBCP2tASIVIC8gEP21ASAMIA39DQwNDg8AAAAAAAAAAAAAAAD9iQH9qQH9rgEgLiAt/a4BIBH9tQH9rgEgEv2uAUEE/a0BIiEgGP21AUEI/a0B/a4BIBn9rgFBBv2sASAN/bgBIA/9tgH9hgH9ZiIM/VgAAAAgAEEQaiAM/VgAAAEgAEEYaiAM/VgAAAIgAEEgaiAM/VgAAAMgAEEoaiAM/VgAAAQgAEEwaiAM/VgAAAUgAEE4aiAM/VgAAAYgAEFAayAM/VgAAAcgAEHIAGogDP1YAAAIIABB0ABqIAz9WAAACSAAQdgAaiAM/VgAAAogAEHgAGogDP1YAAALIABB6ABqIAz9WAAADCAAQfAAaiAM/VgAAA0gAEH4AGogDP1YAAAOIABBgAFqIkAgDP1YAAAPIABBgQFqICAgMyAQ/bUBIAH9AAAAIgz9iQH9qQH9rgEgMiAx/a4BIBH9tQH9rgEgEv2uAUEE/a0BIhggHP21AUEI/a0BIB8gF/21AUEI/a0B/a4B/bEBIB39rgFBBv2sASAN/bgBIA/9tgEgHiA3IBD9tQEgDCAN/Q0EBQYHAAAAAAAAAAAAAAAA/YkB/akB/a4BIDYgNf2uASAR/bUB/a4BIBL9rgFBBP2tASIZIBz9tQFBCP2tASAjIBf9tQFBCP2tAf2uAf2xASAd/a4BQQb9rAEgDf24ASAP/bYB/YYBICIgOyAQ/bUBIAwgDf0NCAkKCwAAAAAAAAAAAAAAAP2JAf2pAf2uASA6IDn9rgEgEf21Af2uASAS/a4BQQT9rQEiHyAc/bUBQQj9rQEgJCAX/bUBQQj9rQH9rgH9sQEgHf2uAUEG/awBIA39uAEgD/22ASAVID4gEP21ASAMIA39DQwNDg8AAAAAAAAAAAAAAAD9iQH9qQH9rgEgPSAl/a4BIBH9tQH9rgEgEv2uAUEE/a0BIhAgHP21AUEI/a0BICEgF/21AUEI/a0B/a4B/bEBIB39rgFBBv2sASAN/bgBIA/9tgH9hgH9ZiIM/VgAAA8gAEH5AGogDP1YAAAOIABB8QBqIAz9WAAADSAAQekAaiAM/VgAAAwgAEHhAGogDP1YAAALIABB2QBqIAz9WAAACiAAQdEAaiAM/VgAAAkgAEHJAGogDP1YAAAIIABBwQBqIAz9WAAAByAAQTlqIAz9WAAABiAAQTFqIAz9WAAABSAAQSlqIAz9WAAABCAAQSFqIAz9WAAAAyAAQRlqIAz9WAAAAiAAQRFqIAz9WAAAASAAQQlqIAz9WAAAACAAQQpqICAgGCAW/bUBQQj9rQH9rgEgGv2uAUEG/awBIA39uAEgD/22ASAeIBkgFv21AUEI/a0B/a4BIBr9rgFBBv2sASAN/bgBIA/9tgH9hgEgIiAfIBb9tQFBCP2tAf2uASAa/a4BQQb9rAEgDf24ASAP/bYBIBUgECAW/bUBQQj9rQH9rgEgGv2uAUEG/awBIA39uAEgD/22Af2GAf1mIgz9WAAAACAAQRJqIAz9WAAAASAAQRpqIAz9WAAAAiAAQSJqIAz9WAAAAyAAQSpqIAz9WAAABCAAQTJqIAz9WAAABSAAQTpqIAz9WAAABiAAQcIAaiAM/VgAAAcgAEHKAGogDP1YAAAIIABB0gBqIAz9WAAACSAAQdoAaiAM/VgAAAogAEHiAGogDP1YAAALIABB6gBqIAz9WAAADCAAQfIAaiAM/VgAAA0gAEH6AGogDP1YAAAOIABBggFqIAz9WAAADyABQRBqIQEgQ0EQaiFDIEZBIGohRiBKQRBqIUogA0EQaiEDIEAhACAbIQ0gDiEMIERBEGsiRA0ACyAU/RYPIUYgDP0WDyFAIBP9Fg8hSyAN/RYPIUMMCAtBAEEDIAFBiOzEABDqBwALQQBBAEGY7MQAEIwHAAtBAEEAQajsxAAQjAcAC0EAQQBBuOzEABCMBwALQQBBAEHI7MQAEIwHAAtBAEEAQdjsxAAQjAcAC0EEQQNBA0G47cQAEOoHAAsgBCFJIAUhTyAGIVYgByFOIAghSCAJIUIgCyFBIAohVSBSIVggRyFXIFEhUCBFIQILIEhBAWohRCBJQQFqIUpBACEDQQAhAANAIFBFIE9BAklyIE5BAkkgQkECSXJyIEFBAU1yDQEgQ0H/AXEhASADIFdqIkhB/wEgAi0AAEGFlQFsQQh2IkkgACBVaiJTQQFqLQAAIkMgS0H/AXEiTEEJbGogASAAIERqLQAAIktqQQNsakEIakEEdiJNQaXMAWxBCHZqQZrvAGtBBnUiAUEAIAFBAEobIgEgAUH/AU4bOgAAIEhBAmpB/wEgSSAAIFZqIltBAWotAAAiASBGQf8BcSJcQQlsaiAAIEpqLQAAIkYgQEH/AXFqQQNsakEIakEEdiJAQZqCAmxBCHZqQZWKAWtBBnUiVEEAIFRBAEobIlQgVEH/AU4bOgAAIEhBAWpB/wEgSSBAQZMybEEIdiBNQYjoAGxBCHZqa0GExABqQQZ1IkBBACBAQQBKGyJAIEBB/wFOGzoAACBIQQZqQf8BIAJBAWotAABBhZUBbEEIdiJAIFstAAAgRkEJbGogASBcakEDbGpBCGpBBHYiSUGaggJsQQh2akGVigFrQQZ1Ik1BACBNQQBKGyJNIE1B/wFOGzoAACBIQQRqQf8BIEAgUy0AACBLQQlsaiBDIExqQQNsakEIakEEdiJTQaXMAWxBCHZqQZrvAGtBBnUiTEEAIExBAEobIkwgTEH/AU4bOgAAIEhBBWpB/wEgQCBJQZMybEEIdiBTQYjoAGxBCHZqa0GExABqQQZ1IkBBACBAQQBKGyJAIEBB/wFOGzoAACACQQJqIQIgUEECayFQIE9BAWshTyAAQQFqIQAgQUEBayFBIEJBAWshQiBOQQFrIU4gASFAIFggA0EIaiIDRw0ACwsCQAJAAkACQAJAIFkEQCAEIAVqQQFrIgJFDQEgBiAHakEBayIDRQ0CIAggCWpBAWsiAEUNAyAKIAtqQQFrIgRFDQQgWkEHcSIBQQJNDQUgAC0AACEFIEcgUmoiAEH/ASBFIFFqLQAAQYWVAWxBCHYiASADLQAAIgMgAi0AAEEMbGogA0EDbGpBCGpBBHYiAkGaggJsQQh2akGVigFrQQZ1IgNBACADQQBKGyIDIANB/wFOGzoAAiAAQf8BIAEgBC0AACIDIAVBDGxqIANBA2xqQQhqQQR2IgNBpcwBbEEIdmpBmu8Aa0EGdSIEQQAgBEEAShsiBCAEQf8BThs6AAAgAEH/ASABIAJBkzJsQQh2IANBiOgAbEEIdmprQYTEAGpBBnUiAEEAIABBAEobIgAgAEH/AU4bOgABCw8LQejsxAAQ3QkAC0H47MQAEN0JAAtBiO3EABDdCQALQZjtxAAQ3QkAC0EAQQMgAUGo7cQAEOoHAAvpJAMWfwN9AXsjAEHABWsiBiQAIAYgBDYCDCAGIAM2AgggBkHsAWogBRC1ASAGKALsASEFAkACQAJAAkAgBi0AiAIiB0ECRgRAIABBgICAgHg2AgAgACAFNgIEIANFIARBhAhJckUEQCAEEJsHCyACQYQISQ0BIAIQmwcMAQsgBkEkaiAGQYACaikCADcCACAGQS9qIAZBiwJqLQAAOgAAIAYgBv0AAvAB/QsCFCAGIAYvAIkCOwAtIAYgBzoALCAGIAU2AhAgBkHsAWogAiABIAZBDGpBACADQQFxGyAGQRBqELACAkACQAJAAkAgBigC7AFBAkYEQCAGKALwASEBIAZBADYCsAMgBkKAgICAEDcCqAMgBkGck8EANgL0BCAGQqCAgIAONwL4BCAGIAZBqANqNgLwBCABIAZB8ARqEK8EDQggBigCqAMhAiAGKAKsAyIFIAYoArADEOwIIQcgAgRAIAVBBGsoAgAiCEF4cSIKQQRBCCAIQQNxIggbIAJqSQ0IIAhBACAKIAJBJ2pLGw0HIAUQogILIABBgICAgHg2AgAgACAHNgIEIAEgASgCACgCABEDAAwDCyAGQTBqIAZB7AFqIgFBvAH8CgAAIAZBwAJqIAZByAFqIgMoAgA2AgAgBkG4AmogBkHAAWoiBCkCADcCACAGQccCaiAGQc8Bai0AADoAACAGIAb9AAKwAf0LAqgCIAYgBi8AzQE7AMUCIAZBADYCyAIgBiAGLQDMASICOgDEAiAGQQA2AqQCIAZCgICAgBA3ApwCIAZCATcClAIgBkIANwKMAiAGQoCAgIAQNwKEAiAGQgQ3AvwBIAZCADcC9AEgBkKAgICAwAA3AuwBIAYoAtQBIRUgBigC2AEhFiAGIAYoAmAiGzoA+AQgBiAWNgL0BCAGIBU2AvAEIAEgBkHwBGoQ6QEgAkECRwRAIAZBxQJqIQEgAyoCACEcIAQqAgAhHSAGKgLEASEeIAb9AAKwASEfIAYtAMQCQQJHBEAgBkHyBGogAUECai0AADoAACAGIAEvAAA7AfAECyABIAYvAfAEOwAAIAFBAmogBkHyBGotAAA6AAAgBiACQQFxOgDEAiAGIBw4AsACIAYgHjgCvAIgBiAdOAK4AiAGIB/9CwKoAgsgBkEANgKABCAGQoCAgIDAADcC+AMgBkEANgKMBCAGQoCAgIDAADcChAQgBkEANgKYBCAGQoCAgIDAADcCkAQgBkEANgKkBCAGQoCAgIDAADcCnAQgBkEANgKwBCAGQoCAgIDAADcCqAQgBkEANgK8BCAGQoCAgIDAADcCtAQgBkEANgLIBCAGQoCAgIDAADcCwAQgBkEANgLUBCAGQoCAgIDAADcCzAQgBkEANgLgBCAGQoCAgIAgNwLYBCAGQQA2AuwEIAZCgICAgMAANwLkBCAVRQRAQQQhF0EEIRhBBCEZQQQhAUEEIRIMAgtBBCESAkADQCAPQYCABCAVIA5rIgEgAUGAgARPGyIFQQNsIgxJBEAgDCAPayIBIAYoAvgDIA9rSwRAIAZB+ANqIA8gAUEEQQQQpAUgBigC/AMhEiAGKAKABCEPCyASIA9BAnRqIQQgAUECTwR/IAFBAnRBBGsiAgRAIARBACAC/AsACyABIA9qIgFBAWshDyASIAFBAnRqQQRrBSAEC0EANgIAIAYgD0EBaiIPNgKABCAGKAKMBCENCyAFIA1LBEAgBSANayIBIAYoAoQEIA1rSwRAIAZBhARqIA0gAUEEQQQQpAUgBigCjAQhDQsgBigCiAQiAiANQQJ0aiEEIAFBAk8EfyABQQJ0QQRrIgMEQCAEQQAgA/wLAAsgASANaiIBQQFrIQ0gAiABQQJ0akEEawUgBAtBADYCACAGIA1BAWoiDTYCjAQLIAYoApgEIgogDEkEQCAMIAprIgEgBigCkAQgCmtLBEAgBkGQBGogCiABQQRBBBCkBSAGKAKYBCEKCyAGKAKUBCICIApBAnRqIQQgAUECTwR/IAFBAnRBBGsiAwRAIARBACAD/AsACyABIApqIgFBAWshCiACIAFBAnRqQQRrBSAEC0EANgIAIAYgCkEBaiIKNgKYBAsgBigCpAQiCSAMSQRAIAwgCWsiASAGKAKcBCAJa0sEQCAGQZwEaiAJIAFBBEEEEKQFIAYoAqQEIQkLIAYoAqAEIgIgCUECdGohBCABQQJPBH8gAUECdEEEayIDBEAgBEEAIAP8CwALIAEgCWoiAUEBayEJIAIgAUECdGpBBGsFIAQLQQA2AgAgBiAJQQFqIgk2AqQECyAFQQJ0IhMgBigCsAQiB0sEQCATIAdrIgEgBigCqAQgB2tLBEAgBkGoBGogByABQQRBBBCkBSAGKAKwBCEHCyAGKAKsBCICIAdBAnRqIQQgAUECTwR/IAFBAnRBBGsiAwRAIARBACAD/AsACyABIAdqIgFBAWshByACIAFBAnRqQQRrBSAEC0EANgIAIAYgB0EBaiIHNgKwBAsCQAJAAkACQAJAAkACQAJAAkAgDCAPTQRAIAZBMGoiAiAOIAUgBigC/AMiEiAMEKIFIAUgDUsNASAGKAKIBCEBIAIgDiAFEMwDQwAAAEBDAACAPyAGLQDMAUEBcRshHEEAIQMgBigCkAEhBCAGKAKUASEIA0AgA0EEaiICIAhLDQMgAyATRg0EIAEgA2ogHCAELQADs0MAAH9DlZRDAAAAAJI4AgAgBEEQaiEEIAIiAyATRw0ACyAKIAxJDQQgBkEwaiICIA4gBSAGKAKUBCIZIAwQgQUgCSAMSQ0FIAIgDiAFIAYoAqAEIhggDBDGBCAHIBNJDQYgAiAOIAUgBigCrAQiFyATEPADQQQhEUEAIQRBACEIQQQhB0EAIQJBBCEJQQAhA0EEIQogFkUNCSAFQQlsIgMgBigCvAQiAksEQCADIAJrIgcgBigCtAQgAmtLBEAgBkG0BGogAiAHQQRBBBCkBSAGKAK8BCECCyAGKAK4BCIIIAJBAnRqIQogB0ECTwR/IAdBAnRBBGsiCQRAIApBACAJ/AsACyACIAdqIgdBAWshAiAIIAdBAnRqQQRrBSAKC0EANgIAIAYgAkEBaiICNgK8BAsgAiADSQ0HIAZBMGogDiAFIAYoArgEIgogAxD7ASAWQQFGBEBBACEIQQQhB0EAIQJBBCEJDAoLIAVBD2wiAiAGKALIBCIISwRAIAIgCGsiCSAGKALABCAIa0sEQCAGQcAEaiAIIAlBBEEEEKQFIAYoAsgEIQgLIAYoAsQEIgsgCEECdGohByAJQQJPBH8gCUECdEEEayIQBEAgB0EAIBD8CwALIAggCWoiB0EBayEIIAsgB0ECdGpBBGsFIAcLQQA2AgAgBiAIQQFqIgg2AsgECyACIAhNDQhBACACIAhBvOHBABDqBwALQQAgDCAPQZziwQAQ6gcAC0EAIAUgDUGM4sEAEOoHAAsgAyACIAhB7NHAABDqBwALIAUgBUHc0cAAEIwHAAtBACAMIApB/OHBABDqBwALQQAgDCAJQezhwQAQ6gcAC0EAIBMgB0Hc4cEAEOoHAAtBACADIAJBzOHBABDqBwALIAZBMGogDiAFIAYoAsQEIgkgAhDQASAWQQJNBEBBACEIQQQhBwwBCyAFQRVsIgggBigC1AQiB0sEQCAIIAdrIhAgBigCzAQgB2tLBEAgBkHMBGogByAQQQRBBBCkBSAGKALUBCEHCyAGKALQBCIUIAdBAnRqIQsgEEECTwR/IBBBAnRBBGsiGgRAIAtBACAa/AsACyAHIBBqIgtBAWshByAUIAtBAnRqQQRrBSALC0EANgIAIAYgB0EBaiIHNgLUBAsgByAITwRAIAZBMGogDiAFIAYoAtAEIgcgCBClAQwBC0EAIAggB0Gs4cEAEOoHAAsCQAJAIBtFBEBBAiEQDAELIAYoAuAEIgQgBUkEQCAFIARrIgsgBigC2AQgBGtLBEAgBkHYBGogBCALQQJBAhCkBSAGKALgBCEECyAGKALcBCIRIARBAXRqIRAgC0ECTwR/IAtBAXRBAmsiFARAIBBBACAU/AsACyAEIAtqIgtBAWshBCARIAtBAXRqQQJrBSAQC0EAOwEAIAYgBEEBaiIENgLgBAsgBCAFSQ0BIAZBMGogDiAFIAYoAtwEIhAgBRCSAyAGKALsBCIEIAVJBEAgBSAEayIRIAYoAuQEIARrSwRAIAZB5ARqIAQgEUEEQQQQpAUgBigC7AQhBAsgBigC6AQiFCAEQQJ0aiELIBFBAk8EfyARQQJ0QQRrIhoEQCALQQAgGvwLAAsgBCARaiILQQFrIQQgFCALQQJ0akEEawUgCwtBADYCACAGIARBAWoiBDYC7AQLIAQgBUkNAyAGQTBqIA4gBSAGKALoBCIRIAUQkwMgBSEECyAGIAQ2ArwFIAYgETYCuAUgBiAENgK0BSAGIBA2ArAFIAYgCDYCrAUgBiAHNgKoBSAGIAI2AqQFIAYgCTYCoAUgBiADNgKcBSAGIAo2ApgFIAYgEzYClAUgBiAXNgKQBSAGIAw2AowFIAYgGDYCiAUgBiAMNgKEBSAGIBk2AoAFIAYgBTYC/AQgBiABNgL4BCAGIAw2AvQEIAYgEjYC8AQgBkHsAWogDiAFIAZB8ARqEJMCIAUgDmoiDiAVTw0DDAELC0EAIAUgBEGc4cEAEOoHAAtBACAFIARBjOHBABDqBwALIAYoAuQEIgJFDQAgBigC6AQiA0EEaygCACIEQXhxIgUgAkECdCICQQRBCCAEQQNxIgQbakkNBSAEQQAgBSACQSdqSxsNBCADEKICCyAGKALYBCICBEAgBigC3AQiA0EEaygCACIEQXhxIgUgAkEBdCICQQRBCCAEQQNxIgQbakkNBSAEQQAgBSACQSdqSxsNBCADEKICCyAGKALMBCICBEAgBigC0AQiA0EEaygCACIEQXhxIgUgAkECdCICQQRBCCAEQQNxIgQbakkNBSAEQQAgBSACQSdqSxsNBCADEKICCyAGKALABCICBEAgBigCxAQiA0EEaygCACIEQXhxIgUgAkECdCICQQRBCCAEQQNxIgQbakkNBSAEQQAgBSACQSdqSxsNBCADEKICCyAGKAK0BCICBEAgBigCuAQiA0EEaygCACIEQXhxIgUgAkECdCICQQRBCCAEQQNxIgQbakkNBSAEQQAgBSACQSdqSxsNBCADEKICCyAGKAKoBCICBEAgF0EEaygCACIDQXhxIgQgAkECdCICQQRBCCADQQNxIgMbakkNBSADQQAgBCACQSdqSxsNBCAXEKICCyAGKAKcBCICBEAgGEEEaygCACIDQXhxIgQgAkECdCICQQRBCCADQQNxIgMbakkNBSADQQAgBCACQSdqSxsNBCAYEKICCyAGKAKQBCICBEAgGUEEaygCACIDQXhxIgQgAkECdCICQQRBCCADQQNxIgMbakkNBSADQQAgBCACQSdqSxsNBCAZEKICCyAGKAKEBCICBEAgAUEEaygCACIDQXhxIgQgAkECdCICQQRBCCADQQNxIgMbakkNBSADQQAgBCACQSdqSxsNBCABEKICCyAGKAL4AyIBBEAgEkEEaygCACICQXhxIgMgAUECdCIBQQRBCCACQQNxIgIbakkNBSACQQAgAyABQSdqSxsNBCASEKICCyAGKALwASEBIAYoAvQBIQIgBigC7AEhAyAGQagDaiAGQfgBakHQAPwKAAAgA0GAgICAeEcNASAGQQA2AvgEIAZCgICAgBA3AvAEIAZBnJPBADYC8AEgBkKggICADjcC9AEgBiAGQfAEajYC7AEgASAGQewBahCvBA0FIAYoAvAEIQIgBigC9AQiAyAGKAL4BBDsCCEEIAIEQCADQQRrKAIAIgVBeHEiB0EEQQggBUEDcSIFGyACakkNBSAFQQAgByACQSdqSxsNBCADEKICCyAAQYCAgIB4NgIAIAAgBDYCBCABIAEoAgAoAgARAwAgBkEwahDAAiAGKAIMIQQgBigCCCEDCyADRSAEQYQISXINASAEEJsHDAELIAYoAsgCIQQgAEEMaiAGQagDakHQAPwKAAAgACAENgJkIAAgAjYCYCAAIAQ2AlwgACACNgIIIAAgATYCBCAAIAM2AgAgBkEwahDAAiAGKAIIRQ0AIAYoAgwiAEGECEkNACAAEJsHCyAGQcAFaiQADwtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQaCexgBBNyAGQeQEakG0k8EAQdiexgAQ4AYAC5orAhx/AX4jAEHgAWsiAiQAIAJBIGogACAAKAIAKAIEEQEAIAIgAigCJCIJNgIsIAIgAigCICIENgIoAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkAgAS0ACkGAAXFFBEAgAiACQShqrUKAgICAsAGENwNoIAEoAgAgASgCBCACQgE3ApwBQQEhAyACQQE2ApQBIAJBoPjHADYCkAEgAiACQegAajYCmAEgAkGQAWoQwQMNByACQRhqIAIoAiggAigCLCgCGBEBAAJAAkAgAigCGCIFBEAgAigCHCEGIAEoAgBBp/DBAEEMIAEoAgQoAgwRAAANCiACQRBqIAUgBigCGBEBACACQcgAaq1CgICAgLABhCEeIAIoAhBBAEchB0EAIQMDQCACQQhqIAUgBigCGBEBACACKAIMIAIoAgghBCACIAY2AkwgAiAFNgJIIAJBADYCoAEgAkEBNgKUASACQczExAA2ApABIAJCBDcCmAEgASgCACABKAIEIAJBkAFqIgYQngkNAiACQQA6AHQgAiADNgJsIAIgBzYCaCACIAE2AnAgAkEBNgKUASACQaD4xwA2ApABIAJCATcCnAEgAiAeNwNYIAIgAkHYAGo2ApgBIAJB6ABqIAYQnwkNAiADQQFqIQMhBiAEIgUNAAsLAkAgACgCBCIFQQNHBEAgAEEEaiEADAELIAAgACgCACgCGBEEACIARQ0CIAAoAgAhBQtBACEDIAVBAkcNCSACQQA2AkQgAkKAgICAEDcCPCACQbTvwQA2AkwgAkKggICADjcCUCACIAJBPGo2AkgCQCAAKAIAQQFrDgIFAAQLAkACfwJAAkAgAC0AFEEDRgRAIAAoAgwhA0EAIQYMAQsgAiAAQQRqNgKQASACQZABaiEHIwBBIGsiCCQAAkACQAJAIABBFGoiBi0AACIJQQJPBEAgCUEDaw0BDAMLIAZBAjoAACAHKAIAIAdBADYCAARAIAlBAUcEQEH0uskALQAAIQRB9LrJAEEBOgAAIAggBDoAByAERQ0DIAhCADcCFCAIQoGAgIDAADcCDCAIQcCDyAA2AgggCEEHaiAIQQhqEPsHAAsjAEEgayIAJAAgAEEANgIYIABBATYCDCAAQeCEyAA2AgggAEIENwIQIABBCGpB6ITIABCNCAALQaCEyAAQ3QkACyAIQQA2AhggCEEBNgIMIAhBmIPIADYCCCAIQgQ3AhAgCEEIakGQhMgAEI0IAAtB9LrJAEEAOgAAIAZBAzoAAAsgCEEgaiQAIAAoAgwhAyACKAJQQYCAgARxIgYNAQsgAyAAKAIQIgRJDQIgAyAEayEDIAAoAgggBEEMbGoMAQsgACgCCAshDyACQYCAgIB4NgJYIAJBkPrHACkDACIeNwJcIAIgBkEXdiIAOgBkIAIgADoAeCACQQA2AnQgAkGEjMgANgJwIAIgAkHIAGo2AmggAiACQdgAajYCbCADRQRAIB6nIQMgHkIgiKcMCAsgDyADQQxsaiEYIAJBmAFqIREgAkGXAWohGQNAAkAgDygCCCIERQRAIAJBADYCiAEgAiACQegAajYChAEgAkEDNgKQASACQQI2AtABIAJBhAFqIAJBkAFqIAJB0AFqQQAgAkEAIAIQ+AEgAigChAEiACAAKAIMQQFqNgIMRQ0BDA4LIA8oAgQiACAEQSxsaiEaA0AgAkEANgKAASACIAJB6ABqNgJ8AkACQAJAAkAgACgCIEGAgICAeEcEQCACQZABaiIEIAAoAiQiGyAAKAIoIhwQ+wJBAiETIAIoApABDQMgBCACKAKUASIIIAIoApgBIgdBpLbFAEEGEOEBAkACQCACKAKQAQRAIAIoAswBIQUgAigCyAEhBiACKALEASEJIAIoAsABIQQgAigCtAFBf0YNASACQYQBaiARIAQgCSAGIAVBABCCBAwCCwNAIAJB0AFqIAJBkAFqEJgCIAIoAtABIgRBAUYNAAsCQAJAIARBAWsOAhkBAAsgAiACKQLUATcCiAEgAkEBNgKEAQwCCyACQQA2AoQBDAELIAJBhAFqIBEgBCAJIAYgBUEBEIIECyACKAKEAUEBRw0CIAIoAogBIgRBBmoiBkUNAQJAIAYgB08EQCAGIAdHDQEMAwsgBiAIaiwAAEG/f0oNAgsgCCAHIAYgB0GstsUAELsJAAsgAkEDNgKQAQwDCyAHIAhqIQkgBiAIaiEDA0ACQCADIAlGDQACfyADLAAAIgxBAE4EQCAMQf8BcSEFIANBAWoMAQsgAy0AAUE/cSEGIAxBH3EhBSAMQV9NBEAgBUEGdCAGciEFIANBAmoMAQsgAy0AAkE/cSAGQQZ0ciEGIAxBcEkEQCAGIAVBDHRyIQUgA0EDagwBCyAFQRJ0QYCA8ABxIAMtAANBP3EgBkEGdHJyIgVBgIDEAEYNASADQQRqCyEDIAVBxwBrQXhLIAVBOmtBdk9yDQEMAgsLIARFDQECQCAEIAdPBEAgBCAHRg0CDAELIAQgCGosAABBv39MDQAgBCEHDAELIAggB0EAIARBvLbFABC7CQALAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgB0EDTwRAQfC1xQAgCEEDENsHRQ0BIAgvAABB2pwBRg0CIAdBA0YNByAIKAAAQd++6fIERw0HQXwhA0EEIQUgB0EFTw0DQQQhBwwFCyAHQQJHDQ0gCC8AAEHanAFHDQVBfiEDQQIhB0ECIQUMBAtBAyEFQX0hAyAHQQNGBEBBAyEHDAQLIAgsAANBv39KDQMgCCAHQQMgB0GUtsUAELsJAAsgCCwAAkG/f0wNAUECIQVBfiEDDAILIAgsAARBv39KDQEgCCAHQQQgB0H0tcUAELsJAAsgCCAHQQIgB0GEtsUAELsJAAsgBSAIaiIJIAMgB2oiBGohECAEIQMgCSEFAkADQCADBEAgA0EBayEDIAUsAAAgBUEBaiEFQQBODQEMAgsLIARFDQACfyAJLAAAIgNBAE4EQCADQf8BcSEDIAlBAWoMAQsgCS0AAUE/cSEGIANBH3EhBSADQV9NBEAgBUEGdCAGciEDIAlBAmoMAQsgCS0AAkE/cSAGQQZ0ciEGIANBcEkEQCAGIAVBDHRyIQMgCUEDagwBCyAFQRJ0QYCA8ABxIAktAANBP3EgBkEGdHJyIQMgCUEEagshCgJAIANBxQBGBEBBACEGDAELIANBgIDEAEYNAUEAIQYDQCADQTBrQQlLDQJBACEFAkADQAJAIANBMGsiDEEKTwRAIAUNAQwDCyAFrUIKfiIeQiCIpw0FIAogEEYgHqciAyAMaiIFIANJcg0FAn8gCiwAACINQQBOBEAgDUH/AXEhAyAKQQFqDAELIAotAAFBP3EhAyANQR9xIQwgDUFfTQRAIAxBBnQgA3IhAyAKQQJqDAELIAotAAJBP3EgA0EGdHIhAyANQXBJBEAgAyAMQQx0ciEDIApBA2oMAQsgDEESdEGAgPAAcSAKLQADQT9xIANBBnRyciEDIApBBGoLIQogA0GAgMQARw0BDAULCwNAIAogEEYNBAJ/IAosAAAiDUEATgRAIA1B/wFxIQMgCkEBagwBCyAKLQABQT9xIQMgDUEfcSEMIA1BX00EQCAMQQZ0IANyIQMgCkECagwBCyAKLQACQT9xIANBBnRyIQMgDUFwSQRAIAMgDEEMdHIhAyAKQQNqDAELIAxBEnRBgIDwAHEgCi0AA0E/cSADQQZ0cnIiA0GAgMQARg0FIApBBGoLIQogBUEBayIFDQALCyAGQQFqIQYgA0HFAEcNAAsLIBAgCmshDAwICyAHQQJLDQELQQIhByAILQAAQdIARg0BDAcLIAgvAABB36QBRgRAIAgsAAIiA0G/f0wNBCAIQQJqIQRBfiEFDAULIAgtAABB0gBHDQELIAgsAAEiA0G/f0wNASAIQQFqIQRBfyEFDAMLIAdBA0YNBEGKtcUAIAhBAxDbBw0EIAgsAAMiA0G/f0oEQCAIQQNqIQRBfSEFDAMLIAggB0EDIAdBkLXFABC7CQALIAggB0EBIAdBoLXFABC7CQALIAggB0ECIAdBsLXFABC7CQALIANBwQBrQf8BcUEZSw0BIAUgB2ohBkEAIQMDQCADIAZHBEAgAyAEaiADQQFqIQMsAABBAE4NAQwDCwsgEf0MAAAAAAAAAAAAAAAAAAAAAP0LAgAgAiAGNgKUASACIAQ2ApABAkAgAkGQAWpBABDMAUUEQCACKAKQASIFRQ0DIAIoApgBIgMgAi0AlAEgAi8AlQEgGS0AAEEQdHJBCHRyIgpPDQEgAyAFai0AAEHBAGtB/wFxQRpPDQEgAigCnAEhCSACQgA3AqABIAIgCTYCnAEgAiADNgKYASACIAo2ApQBIAIgBTYCkAEgAkGQAWpBABDMAQ0WIAIoApABIgVFDQMgAigCmAEhAyACKAKUASEKDAELDBULAkACQCADRQ0AIAMgCk8EQCADIApGDQEMAgsgAyAFaiwAAEG/f0wNAQsgCiADayEMIAMgBWohCkEAIQkMAQsgBSAKIAMgCkHQtcUAELsJAAsCfyAMRQRAQQAhFCAJIRUgBCEWIAYhFyAIIQ4gByELIAoMAQsgCi0AAEEuRw0BIAogDGohEEEuIQUgCiEDA0ACQAJ/AkAgBcBBAEgEQCADLQABQT9xIQ0gBUEfcSESIAVB/wFxIgVB3wFLDQEgEkEGdCANciEFIANBAmoMAgsgBUH/AXEhBSADQQFqDAELIAMtAAJBP3EgDUEGdHIhDSAFQfABSQRAIA0gEkEMdHIhBSADQQNqDAELIBJBEnRBgIDwAHEgAy0AA0E/cSANQQZ0cnIiBUGAgMQARg0BIANBBGoLIQMCQCAFQd///wBxQcEAa0EaSSAFQTBrQQpJciAFQSFrQQ9Jcg0AAkAgBUE6aw4nAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAAsgBUH7AGtBA0sNBAsgAyAQRg0AIAMtAAAhBQwBCwsgCSEVIAQhFiAGIRcgCCEOIAchCyAMIRQgCgshHUEBIRMLIAIgFDYCrAEgAiAdNgKoASACIAs2AqQBIAIgDjYCoAEgAiAXNgKcASACIBY2ApgBIAIgFTYClAEgAiAcNgK0ASACIBs2ArABIAIgEzYCkAELIAAoAhAiBEECRwRAIAIgACkCGDcC1AELIAIgBDYC0AEgAkH8AGogAkGQAWogAkHQAWogACgCACAAKAIEIAAoAgggACgCDBD4ASACKAJ8IgQgBCgCDEEBajYCDA0OIABBLGoiACAaRw0ACwsgGCAPQQxqIg9HDQALDAYLIAQgAyADQfSLyAAQ6gcAC0EBIQMMCAtBiPHBAEEYQaDxwQAQqwcACyAEIAEgCSgCDBECACEDDAYLIAJBPGpBzIvIAEEVEOIHDQcMBAsgAkE8akHhi8gAQRIQ4gdFDQMMBgsgAigCWCIARQ0CIABBgICAgHhHDQEgAi0AXCEDIAIoAmALIQYgA0H/AXFBA0cNASAGKAIAIQkgBkEEaigCACIEKAIAIgAEQCAJIAARAwALIAQoAgQiCwRAIAlBBGsoAgAiAEF4cSIEQQRBCCAAQQNxIgAbIAtqSQ0IIABBACAEIAtBJ2pLGw0JIAkQogILIAZBBGsoAgAiAEF4cSIEQRBBFCAAQQNxIgAbSQ0HIABBACAEQTRPGw0IIAYQogIMAQsgAigCXCAAQQEQogcLIAJBOGogAkHEAGooAgA2AgAgAiACKQI8NwMwAkACQCABKAIAQbPwwQBBAiABKAIEKAIMEQAADQACQAJAIAIoAjgiAEEQTwRAQbXwwQAgAigCNEEQENsHRQ0BCyACQQA2AqABIAJBATYClAEgAkHY8MEANgKQASACQgQ3ApgBIAEoAgAgASgCBCACQZABahCeCUUNAQwCCyACQTBqIgsoAgQhBAJAAkACQCALKAIIIgBBAU0EQCAAQQFHDQFBACEAIAtBADYCCCALKAIABH8gBAUgC0EAQQEQ+AUgCygCCCEAIAsoAgQLIABqQdMAOgAAIAsgAEEBajYCCAwDCyAELAABQb9/Sg0BC0Hc78EAQSpB4PDBABDrBwALIARB0wA6AAAgCyAANgIICyACKAI4IQALIAJBMGohDiACKAI0IQdBACELAkAgAEUNACAAIAdqIQQDQAJAIAQiAEEBayIELAAAIgZBAEgEQCAGQT9xAn8gAEECayIELQAAIgbAIglBQE4EQCAGQR9xDAELIAlBP3ECfyAAQQNrIgQtAAAiBsAiCUFATgRAIAZBD3EMAQsgCUE/cSAAQQRrIgQtAABBB3FBBnRyC0EGdHILQQZ0ciEGCwJAIAZBIEYgBkEJa0EFSXINACAGQYABSQ0BAkACQAJAAkAgBkEIdiIJQRZrDhsABQUFBQUFBQUFAQUFBQUFBQUFBQUFBQUFBQIDCyAGQYAtRg0DDAQLIAZB/wFxLQDEoUdBAnENAgwDCyAGQYDgAEcNAgwBCyAJDQEgBkH/AXEtAMShR0EBcUUNAQsgBCAHRw0BDAILCyAAIAdrIQsLAkACQCAOKAIIIgAgC08EQCALRSAAIAtNckUEQCAOKAIEIAtqLAAAQb9/TA0CCyAOIAs2AggLDAELQeSfxgBBMEHw8MEAEOsHAAsgAkEBNgKUASACQaD4xwA2ApABIAJCATcCnAEgAiAOrUKAgICAsAWENwNoIAIgAkHoAGo2ApgBIAEoAgAgASgCBCACQZABahCeCUUNAQsgAigCMCILBEAgAigCNCIEQQRrKAIAIgBBeHEiAUEEQQggAEEDcSIAGyALakkNByAAQQAgASALQSdqSxsNCCAEEKICC0EBIQMMAQsgAigCMCIABEAgAigCNCAAQQEQogcLQQAhAwsgAkHgAWokACADDwsCQCACKAJYIgRBgICAgHhHBEAgBEUNAiACKAJcIgNBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIARqSQ0FIABFIAEgBEEnak1yDQEMBgsgAi0AXEEDRw0BIAIoAmAiAygCACELIANBBGooAgAiASgCACIABEAgCyAAEQMACyABKAIEIgQEQCALQQRrKAIAIgBBeHEiAUEEQQggAEEDcSIAGyAEakkNBSAAQQAgASAEQSdqSxsNBiALEKICCyADQQRrKAIAIgBBeHEiAUEQQRQgAEEDcSIAG0kNBCAARQ0AIAFBNE8NBQsgAxCiAgtBoJ7GAEE3IAJB3wFqQczvwQBB2J7GABDgBgALAAtBqLTFAEE9IAJB3wFqQZi0xQBBwLXFABDgBgALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC58jAhZ/AX0jAEGQBWsiBiQAIAYgBDYCDCAGIAM2AgggBkHsAWogBRC1ASAGKALsASEFAkACQAJAAkAgBi0AiAIiB0ECRgRAIABBgICAgHg2AgAgACAFNgIEIANFIARBhAhJckUEQCAEEJsHCyACQYQISQ0BIAIQmwcMAQsgBkEkaiAGQYACaikCADcCACAGQS9qIAZBiwJqLQAAOgAAIAYgBv0AAvAB/QsCFCAGIAYvAIkCOwAtIAYgBzoALCAGIAU2AhAgBkHsAWogAiABIAZBDGpBACADQQFxGyAGQRBqELACAkACQAJAAkAgBigC7AFBAkYEQCAGKALwASEBIAZBADYCsAMgBkKAgICAEDcCqAMgBkGck8EANgLcAyAGQqCAgIAONwLgAyAGIAZBqANqNgLYAyABIAZB2ANqEK8EDQggBigCqAMhAiAGKAKsAyIFIAYoArADEOwIIQcgAgRAIAVBBGsoAgAiCEF4cSIKQQRBCCAIQQNxIggbIAJqSQ0IIAhBACAKIAJBJ2pLGw0HIAUQogILIABBgICAgHg2AgAgACAHNgIEIAEgASgCACgCABEDAAwDCyAGQTBqIAZB7AFqIgFBvAH8CgAAIAZCgICAgCA3AogEIAZCAjcCgAQgBkIANwL4AyAGQoCAgIAgNwLwAyAGQgQ3AugDIAZCADcC4AMgBkKAgICAwAA3AtgDIAZCADcCkAQgBigC1AEhFSAGKALYASEWIAYgBigCYCIbOgD0ASAGIBY2AvABIAYgFTYC7AEgBkHYA2ogARCEAiAGQQA2AqAEIAZCgICAgMAANwKYBCAGQQA2AqwEIAZCgICAgMAANwKkBCAGQQA2ArgEIAZCgICAgMAANwKwBCAGQQA2AsQEIAZCgICAgMAANwK8BCAGQQA2AtAEIAZCgICAgMAANwLIBCAGQQA2AtwEIAZCgICAgMAANwLUBCAGQQA2AugEIAZCgICAgMAANwLgBCAGQQA2AvQEIAZCgICAgMAANwLsBCAGQQA2AoAFIAZCgICAgCA3AvgEIAZBADYCjAUgBkKAgICAwAA3AoQFIBVFBEBBBCEXQQQhGEEEIRlBBCEBQQQhEgwCC0EEIRICQANAIA9BgIAEIBUgDmsiASABQYCABE8bIgVBA2wiDEkEQCAMIA9rIgEgBigCmAQgD2tLBEAgBkGYBGogDyABQQRBBBCkBSAGKAKcBCESIAYoAqAEIQ8LIBIgD0ECdGohBCABQQJPBH8gAUECdEEEayICBEAgBEEAIAL8CwALIAEgD2oiAUEBayEPIBIgAUECdGpBBGsFIAQLQQA2AgAgBiAPQQFqIg82AqAEIAYoAqwEIQ0LIAUgDUsEQCAFIA1rIgEgBigCpAQgDWtLBEAgBkGkBGogDSABQQRBBBCkBSAGKAKsBCENCyAGKAKoBCICIA1BAnRqIQQgAUECTwR/IAFBAnRBBGsiAwRAIARBACAD/AsACyABIA1qIgFBAWshDSACIAFBAnRqQQRrBSAEC0EANgIAIAYgDUEBaiINNgKsBAsgBigCuAQiCiAMSQRAIAwgCmsiASAGKAKwBCAKa0sEQCAGQbAEaiAKIAFBBEEEEKQFIAYoArgEIQoLIAYoArQEIgIgCkECdGohBCABQQJPBH8gAUECdEEEayIDBEAgBEEAIAP8CwALIAEgCmoiAUEBayEKIAIgAUECdGpBBGsFIAQLQQA2AgAgBiAKQQFqIgo2ArgECyAGKALEBCIJIAxJBEAgDCAJayIBIAYoArwEIAlrSwRAIAZBvARqIAkgAUEEQQQQpAUgBigCxAQhCQsgBigCwAQiAiAJQQJ0aiEEIAFBAk8EfyABQQJ0QQRrIgMEQCAEQQAgA/wLAAsgASAJaiIBQQFrIQkgAiABQQJ0akEEawUgBAtBADYCACAGIAlBAWoiCTYCxAQLIAVBAnQiEyAGKALQBCIHSwRAIBMgB2siASAGKALIBCAHa0sEQCAGQcgEaiAHIAFBBEEEEKQFIAYoAtAEIQcLIAYoAswEIgIgB0ECdGohBCABQQJPBH8gAUECdEEEayIDBEAgBEEAIAP8CwALIAEgB2oiAUEBayEHIAIgAUECdGpBBGsFIAQLQQA2AgAgBiAHQQFqIgc2AtAECwJAAkACQAJAAkACQAJAAkACQCAMIA9NBEAgBkEwaiICIA4gBSAGKAKcBCISIAwQogUgBSANSw0BIAYoAqgEIQEgAiAOIAUQzANDAAAAQEMAAIA/IAYtAMwBQQFxGyEcQQAhAyAGKAKQASEEIAYoApQBIQgDQCADQQRqIgIgCEsNAyADIBNGDQQgASADaiAcIAQtAAOzQwAAf0OVlEMAAAAAkjgCACAEQRBqIQQgAiIDIBNHDQALIAogDEkNBCAGQTBqIgIgDiAFIAYoArQEIhkgDBCBBSAJIAxJDQUgAiAOIAUgBigCwAQiGCAMEMYEIAcgE0kNBiACIA4gBSAGKALMBCIXIBMQ8ANBBCERQQAhBEEAIQhBBCEHQQAhAkEEIQlBACEDQQQhCiAWRQ0JIAVBCWwiAyAGKALcBCICSwRAIAMgAmsiByAGKALUBCACa0sEQCAGQdQEaiACIAdBBEEEEKQFIAYoAtwEIQILIAYoAtgEIgggAkECdGohCiAHQQJPBH8gB0ECdEEEayIJBEAgCkEAIAn8CwALIAIgB2oiB0EBayECIAggB0ECdGpBBGsFIAoLQQA2AgAgBiACQQFqIgI2AtwECyACIANJDQcgBkEwaiAOIAUgBigC2AQiCiADEPsBIBZBAUYEQEEAIQhBBCEHQQAhAkEEIQkMCgsgBUEPbCICIAYoAugEIghLBEAgAiAIayIJIAYoAuAEIAhrSwRAIAZB4ARqIAggCUEEQQQQpAUgBigC6AQhCAsgBigC5AQiCyAIQQJ0aiEHIAlBAk8EfyAJQQJ0QQRrIhAEQCAHQQAgEPwLAAsgCCAJaiIHQQFrIQggCyAHQQJ0akEEawUgBwtBADYCACAGIAhBAWoiCDYC6AQLIAIgCE0NCEEAIAIgCEG84cEAEOoHAAtBACAMIA9BnOLBABDqBwALQQAgBSANQYziwQAQ6gcACyADIAIgCEHs0cAAEOoHAAsgBSAFQdzRwAAQjAcAC0EAIAwgCkH84cEAEOoHAAtBACAMIAlB7OHBABDqBwALQQAgEyAHQdzhwQAQ6gcAC0EAIAMgAkHM4cEAEOoHAAsgBkEwaiAOIAUgBigC5AQiCSACENABIBZBAk0EQEEAIQhBBCEHDAELIAVBFWwiCCAGKAL0BCIHSwRAIAggB2siECAGKALsBCAHa0sEQCAGQewEaiAHIBBBBEEEEKQFIAYoAvQEIQcLIAYoAvAEIhQgB0ECdGohCyAQQQJPBH8gEEECdEEEayIaBEAgC0EAIBr8CwALIAcgEGoiC0EBayEHIBQgC0ECdGpBBGsFIAsLQQA2AgAgBiAHQQFqIgc2AvQECyAHIAhPBEAgBkEwaiAOIAUgBigC8AQiByAIEKUBDAELQQAgCCAHQazhwQAQ6gcACwJAAkAgG0UEQEECIRAMAQsgBigCgAUiBCAFSQRAIAUgBGsiCyAGKAL4BCAEa0sEQCAGQfgEaiAEIAtBAkECEKQFIAYoAoAFIQQLIAYoAvwEIhEgBEEBdGohECALQQJPBH8gC0EBdEECayIUBEAgEEEAIBT8CwALIAQgC2oiC0EBayEEIBEgC0EBdGpBAmsFIBALQQA7AQAgBiAEQQFqIgQ2AoAFCyAEIAVJDQEgBkEwaiAOIAUgBigC/AQiECAFEJIDIAYoAowFIgQgBUkEQCAFIARrIhEgBigChAUgBGtLBEAgBkGEBWogBCARQQRBBBCkBSAGKAKMBSEECyAGKAKIBSIUIARBAnRqIQsgEUECTwR/IBFBAnRBBGsiGgRAIAtBACAa/AsACyAEIBFqIgtBAWshBCAUIAtBAnRqQQRrBSALC0EANgIAIAYgBEEBaiIENgKMBQsgBCAFSQ0DIAZBMGogDiAFIAYoAogFIhEgBRCTAyAFIQQLIAYgBDYCuAIgBiARNgK0AiAGIAQ2ArACIAYgEDYCrAIgBiAINgKoAiAGIAc2AqQCIAYgAjYCoAIgBiAJNgKcAiAGIAM2ApgCIAYgCjYClAIgBiATNgKQAiAGIBc2AowCIAYgDDYCiAIgBiAYNgKEAiAGIAw2AoACIAYgGTYC/AEgBiAFNgL4ASAGIAE2AvQBIAYgDDYC8AEgBiASNgLsASAGQdgDaiAOIAUgBkHsAWoQ4gEgBSAOaiIOIBVPDQMMAQsLQQAgBSAEQZzhwQAQ6gcAC0EAIAUgBEGM4cEAEOoHAAsgBigChAUiAkUNACAGKAKIBSIDQQRrKAIAIgRBeHEiBSACQQJ0IgJBBEEIIARBA3EiBBtqSQ0FIARBACAFIAJBJ2pLGw0EIAMQogILIAYoAvgEIgIEQCAGKAL8BCIDQQRrKAIAIgRBeHEiBSACQQF0IgJBBEEIIARBA3EiBBtqSQ0FIARBACAFIAJBJ2pLGw0EIAMQogILIAYoAuwEIgIEQCAGKALwBCIDQQRrKAIAIgRBeHEiBSACQQJ0IgJBBEEIIARBA3EiBBtqSQ0FIARBACAFIAJBJ2pLGw0EIAMQogILIAYoAuAEIgIEQCAGKALkBCIDQQRrKAIAIgRBeHEiBSACQQJ0IgJBBEEIIARBA3EiBBtqSQ0FIARBACAFIAJBJ2pLGw0EIAMQogILIAYoAtQEIgIEQCAGKALYBCIDQQRrKAIAIgRBeHEiBSACQQJ0IgJBBEEIIARBA3EiBBtqSQ0FIARBACAFIAJBJ2pLGw0EIAMQogILIAYoAsgEIgIEQCAXQQRrKAIAIgNBeHEiBCACQQJ0IgJBBEEIIANBA3EiAxtqSQ0FIANBACAEIAJBJ2pLGw0EIBcQogILIAYoArwEIgIEQCAYQQRrKAIAIgNBeHEiBCACQQJ0IgJBBEEIIANBA3EiAxtqSQ0FIANBACAEIAJBJ2pLGw0EIBgQogILIAYoArAEIgIEQCAZQQRrKAIAIgNBeHEiBCACQQJ0IgJBBEEIIANBA3EiAxtqSQ0FIANBACAEIAJBJ2pLGw0EIBkQogILIAYoAqQEIgIEQCABQQRrKAIAIgNBeHEiBCACQQJ0IgJBBEEIIANBA3EiAxtqSQ0FIANBACAEIAJBJ2pLGw0EIAEQogILIAYoApgEIgEEQCASQQRrKAIAIgJBeHEiAyABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0FIAJBACADIAFBJ2pLGw0EIBIQogILIAZBuANqIgQgBkHkA2oiAUEQav0AAgD9CwMAIAZByANqIgUgAUEgav0AAgD9CwMAIAYgAf0AAgD9CwOoAyAGKALcAyEBIAYoAtgDIgdBgICAgHhHDQEgBkEANgLgAyAGQoCAgIAQNwLYAyAGQZyTwQA2AvABIAZCoICAgA43AvQBIAYgBkHYA2o2AuwBIAEgBkHsAWoQrwQNBSAGKALYAyECIAYoAtwDIgMgBigC4AMQ7AghBCACBEAgA0EEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgAmpJDQUgBUEAIAcgAkEnaksbDQQgAxCiAgsgAEGAgICAeDYCACAAIAQ2AgQgASABKAIAKAIAEQMAIAZBMGoQwAIgBigCDCEEIAYoAgghAwsgA0UgBEGECElyDQEgBBCbBwwBCyAGKALgAyECIAYoApQEIQMgACAG/QADqAP9CwIMIABBLGogBf0AAwD9CwIAIABBHGogBP0AAwD9CwIAIAAgAzYCRCAAIAI2AkAgACADNgI8IAAgAjYCCCAAIAE2AgQgACAHNgIAIAZBMGoQwAIgBigCCEUNACAGKAIMIgBBhAhJDQAgABCbBwsgBkGQBWokAA8LQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GgnsYAQTcgBkGEBWpBtJPBAEHYnsYAEOAGAAvsWQNIfwN+AnsjAEGQBGsiBCQAIAEoAgAhAiABKAIoIQUgBEEANgJYIARBATYCTCAEQbDdxwA2AkggBEIENwJQIARByABqEJUHIQMCQAJAAkACQCAFQYCAgIB4RgRAIABBgICAgHg2AgAgACADNgIEIAEoArABIQIgASgCtAEiEgRAIAIhAANAIABBKGooAgAiAwRAIABBLGooAgAiBUEEaygCACIGQXhxIgpBBEEIIAZBA3EiBhsgA2pJDQYgBkEAIAogA0EnaksbDQcgBRCiAgsgABC/BCAAQThqIQAgEkEBayISDQALCyABKAKsASIABEAgAkEEaygCACIDQXhxIgUgAEE4bCIAQQRBCCADQQNxIgMbakkNBCADQQAgBSAAQSdqSxsNBSACEKICCyABKAKYASIABEAgASgCnAEiAkEEaygCACIDQXhxIgVBBEEIIANBA3EiAxsgAGpJDQQgA0EAIAUgAEEnaksbDQUgAhCiAgsgAUHwAGoQvwQMAQsgBEE0aiABQSRqKAIANgIAIARBJGogAUEUav0AAgD9CwIAIARBxABqIAFBNGooAgA2AgAgBCABKQIsNwI8IAQgAf0AAgT9CwIUIAMgAygCACgCABEDACAEIAU2AjggBCACNgIQIARB8ABqIAFBmAFq/QADAP0LAwAgBEHYAGogAUGAAWr9AAMA/QsDACAEQegAaiIGIAFBkAFqKQMAIko3AwAgBCAB/QADcP0LA0ggBCBKpyIjQf8BakEIdiIDNgKEAQJAAkACQAJAAkACQAJAAkACQAJAIAMgBCgCME0EQAJ/QQAgBCgCHEUNABogBCkDICAEKQMoQbjdxwBBBRCVBCFKIAQoAhQiAyBKp3EhDyBKQhmIQv8Ag0KBgoSIkKDAgAF+IUwDQAJAIAIgD2opAAAiSyBMhSJKQn+FIEpCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiSlBFBEADQCACIEp6p0EDdiAPaiADcUFsbGoiBUEMaygCAEEFRgRAQbjdxwAgBUEQaygCAEEFENsHRQ0DCyBKQgF9IEqDIkpQRQ0ACwtBACBLIEtCAYaDQoCBgoSIkKDAgH+DUEUNAhogDyAaQQhqIhpqIANxIQ8MAQsLIAVBFGsLIQIgBEEANgKoAyAEQQE2ApwDIARB1N3HADYCmAMgBEIENwKgAyAEQZgDahCVByEPIAJFDQYgDyAPKAIAKAIAEQMAIAItABAhJCACKAIMISUgBEEQaiICQdzdxwBBBRC5BSEDIARBADYCqAMgBEEBNgKcAyAEQfjdxwA2ApgDIARCBDcCoAMgBEGYA2oQlQchDyADRQ0GIA8gDygCACgCABEDACADLQAQISYgAygCDCEnIAJBgN7HAEEFELkFIQMgBEEANgKoAyAEQQE2ApwDIARBnN7HADYCmAMgBEIENwKgAyAEQZgDahCVByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhKCADKAIMISkgAkGk3scAQQUQuQUhAyAEQQA2AqgDIARBATYCnAMgBEHA3scANgKYAyAEQgQ3AqADIARBmANqEJUHIQ8gA0UNBiAPIA8oAgAoAgARAwAgAy0AECEqIAMoAgwhKyACQcjexwBBBRC5BSEDIARBADYCqAMgBEEBNgKcAyAEQeTexwA2ApgDIARCBDcCoAMgBEGYA2oQlQchDyADRQ0GIA8gDygCACgCABEDACADLQAQISwgAygCDCEtIAJB7N7HAEEFELkFIQMgBEEANgKoAyAEQQE2ApwDIARBiN/HADYCmAMgBEIENwKgAyAEQZgDahCVByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhLiADKAIMIS8gAkGQ38cAQQsQuQUhAyAEQQA2AqgDIARBATYCnAMgBEG438cANgKYAyAEQgQ3AqADIARBmANqEJUHIQ8gA0UNBiAPIA8oAgAoAgARAwAgAy0AECEwIAMoAgwhMSACQcDfxwBBCxC5BSEDIARBADYCqAMgBEEBNgKcAyAEQejfxwA2ApgDIARCBDcCoAMgBEGYA2oQlQchDyADRQ0GIA8gDygCACgCABEDACADLQAQITIgAygCDCEzIAJB8N/HAEELELkFIQMgBEEANgKoAyAEQQE2ApwDIARBmODHADYCmAMgBEIENwKgAyAEQZgDahCVByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhNCADKAIMITUgAkGg4McAQQsQuQUhAyAEQQA2AqgDIARBATYCnAMgBEHI4McANgKYAyAEQgQ3AqADIARBmANqEJUHIQ8gA0UNBiAPIA8oAgAoAgARAwAgAy0AECE2IAMoAgwhNyACQdDgxwBBCxC5BSEDIARBADYCqAMgBEEBNgKcAyAEQfjgxwA2ApgDIARCBDcCoAMgBEGYA2oQlQchDyADRQ0GIA8gDygCACgCABEDACADLQAQITggAygCDCE5IAJBgOHHAEELELkFIQMgBEEANgKoAyAEQQE2ApwDIARBqOHHADYCmAMgBEIENwKgAyAEQZgDahCVByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhOiADKAIMITtBCCEeQQghHyACQbDhxwBBBRC5BSICBEAgAigCDCE8IAItABAhHwsgBEEQakG14ccAQQUQuQUiAgRAIAIoAgwhPSACLQAQIR4LQQghGkEIISAgBEEQakG64ccAQQUQuQUiAgRAIAIoAgwhPiACLQAQISALIARBEGpBv+HHAEEFELkFIgIEQCACKAIMIT8gAi0AECEaC0EIISFBCCEiIARBEGpBxOHHAEEFELkFIgIEQCACKAIMIUAgAi0AECEiCyAEQRBqQcnhxwBBBRC5BSICBEAgAigCDCFBIAItABAhIQsgBEHIAGoiAkHO4ccAQQ8QuQUhAyAEQQA2AqgDIARBATYCnAMgBEGA4scANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgA0UNBSASIBIoAgAoAgARAwAgAy0AECFCIAMoAgwhQyACQYjixwBBDxC5BSEDIARBADYCqAMgBEEBNgKcAyAEQbjixwA2ApgDIARCBDcCoAMgBEGYA2oQlQchEiADRQ0FIBIgEigCACgCABEDACADLQAQIUQgAygCDCFFIAJBwOLHAEEMELkFIQMgBEEANgKoAyAEQQE2ApwDIARB7OLHADYCmAMgBEIENwKgAyAEQZgDahCVByESIANFDQUgEiASKAIAKAIAEQMAIAMtABAhRiADKAIMIUcgAkH04scAQQwQuQUhAiAEQQA2AqgDIARBATYCnAMgBEGg48cANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgAkUNBSASIBIoAgAoAgARAwAgAUE4aiEcIAItABAhSCACKAIMIUkgASgCYEGAgICAeEYNByABKAJYICNHDQggBEHUAWqtQoCAgIAQhCFKQQAhEgNAAkAgBCASNgLUASAEQQE2ApwDIARBiNDHADYCmAMgBEIBNwKkAyAEIEo3A9gBIAQgBEHYAWo2AqADIARB0ANqIARBmANqELEGIBwgBCgC1AMiAyAEKALYAxC5BSAEKALQAyECRQ0AIAIEQCADIAJBARCiBwsgBCgC1AFB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DUEBaiINNgJsDAALAAsgASACQe8BakH4v8EAEO4BIQQMBwsgAkEQaiAGIAMgBCADIAMgBEsbEPkBIAIoAhQhAyACKAIQIQVBFBBxIgRFDQMLIAQgBTYCDCAEQRg2AgAgBCADNgIQDAMLIAUgCBDrBSEEDAILIAJBCGogBSADIAQgAyADIARLGxD5ASACKAIMIQMgAigCCCEEQRQQcSIBRQ0AIAEgBDYCDCABQRg2AgAgACABNgIEIABBgICAgHg2AgAgASADNgIQDAULAAtBgICAgHghAyACKAJkIgVFDQAgAigCaCIGQQRrKAIAIgdBeHEiCSAFQShsIgVBBEEIIAdBA3EiBxtqSQ0EIAdBACAJIAVBJ2pLGw0FIAYQogILIAEgAS0AGEEBajoAGCACIAEQugMiBTYCvAEgAiANNgK4ASACIAQ2ArQBIAIgAzYCsAEgA0GAgICAeEcEQCAFRQ0CIAMEQCAEQQRrKAIAIgZBeHEiByADQShsIgNBBEEIIAZBA3EiBhtqSQ0HIAZBACAHIANBJ2pLGw0IIAQQogILIAUhBAwBCyAFRQ0AIAJBvAFqELEECyAEIAEQ6wUhASAAQYCAgIB4NgIAIAAgATYCBAwBCyAAIA02AgggACAENgIEIAAgAzYCAAsgAkHwAWokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvfFwIafwJ8IwBBsARrIgMkACADQgA3A5gBIANCADcDkAEgA0IANwOIASADQgA3A4ABIANCADcDeCADQgA3A3AgA0IANwNoIANCADcDYCADQgA3A1ggA0IANwNQIANCADcDSCADQgA3A0AgA0IANwM4IANCADcDMCADQgA3AyggA0IANwMgIANCADcDGCADQgA3AxAgA0IANwMIIANCADcDACADQgA3A7gCIANCADcDsAIgA0IANwOoAiADQgA3A6ACIANCADcDmAIgA0IANwOQAiADQgA3A4gCIANCADcDgAIgA0IANwP4ASADQgA3A/ABIANCADcD6AEgA0IANwPgASADQgA3A9gBIANCADcD0AEgA0IANwPIASADQgA3A8ABIANCADcDuAEgA0IANwOwASADQgA3A6gBIANCADcDoAEgA0IANwPYAyAD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AgBB3o7IAEEBIAEoAgQoAgwRAAAhAwwLCyABKAIAQZjMxABBESABKAIEKAIMEQAAIQMMCgtBASEDIAIgAEEBajYCDCABKAIAIgBBqczEAEERIAEoAgQiBSgCDCIEEQAADQkCQCABLQAKQYABcUUEQCAAQbuzxQBBASAEEQAADQsgAkEMaiABEMQERQ0BDAsLIABB24HCAEECIAQRAAANCiACQQE6ABMgAiAFNgIYIAIgADYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqEMQEDQogAigCIEHZgcIAQQIgAigCJCgCDBEAAA0KCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCQtBASEDIAEoAgAiBEG6zMQAQRkgASgCBCIGKAIMIgURAAANCCAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQogACABEKcERQ0BDAoLIARB24HCAEECIAURAAANCSACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQkgAigCIEHZgcIAQQIgAigCJCgCDBEAAA0JCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCAtBASEDIAEoAgAiBEHTzMQAQRogASgCBCIGKAIMIgURAAANByAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQkgACABEKcERQ0BDAkLIARB24HCAEECIAURAAANCCACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQggAigCIEHZgcIAQQIgAigCJCgCDBEAAA0ICyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBwtBASEDIAEoAgAiBEHtzMQAQRsgASgCBCIGKAIMIgURAAANBiAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEKcERQ0BDAgLIARB24HCAEECIAURAAANByACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCAC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LQAAQQNrDgUBAAAAAgALIAAgARDKAgwFCyAAKQMIIglC/////////weDIQogCUL///////////8Ag0L/////////9/8AWARAIAlCNIinIQAgCUIAUw0CIAJBsAJqDAMLQeydxgBB753GACAJQgBZIgAbQfOdxgAgClAiAxshBEEDQQQgABtBAyADGyEADAMLIAEoAgBB8ZLGAEEEIAEoAgQoAgwRAAAMAwsgAkEtOgCwAkEBIQggAkGxAmoLIQYCfwJAAkACQAJAAkACQAJAAkAgAEH/D3EiAEUgClBxRQRAIABBAkkgCkIAUnIhBCAKQoCAgICAgIAIhCAKIAAbIglCAoYhCiAJQgGDIQ8CQAJAAkAgAEG1CGtBzHcgABsiAEEASARAIAJBkAJqQYC8xQAgACAAQYWiU2xBFHYgAEF/R2siAGoiB0EEdCIDaykDACIJIApCAoQiCxDdBiACQYACakGIvMUAIANrKQMAIg0gCxDdBiACQfABaiACKQOYAiILIAIpA4ACfCIMIAIpA4gCIAsgDFatfCAAIAdBsdm1H2xBE3ZrQfwAakH/AHFBwABzIgMQoQcgAkGwAWogCSAKIARBf3OsfCILEN0GIAJBoAFqIA0gCxDdBiACQZABaiACKQO4ASILIAIpA6ABfCIMIAIpA6gBIAsgDFatfCADEKEHIAJB4AFqIAkgChDdBiACQdABaiANIAoQ3QYgAkHAAWogAikD6AEiCSACKQPQAXwiDSACKQPYASAJIA1WrXwgAxChByACKQPAASELIAIpA5ABIQkgAikD8AEhDCAAQQJJDQFBACEDIABBP0kNAgwFCyACQYABaiAAQcHoBGxBEnYgAEEDS2siB0EEdCIDKQPg5EUiCSAKQgKEIg0Q3QYgAkHwAGogA0Ho5MUAaikDACILIA0Q3QYgAkHgAGogAikDiAEiDCACKQNwfCIOIAIpA3ggDCAOVq18IAcgAGsgB0HPpsoAbEETdmpB/QBqQf8AcUHAAHMiABChByACQSBqIAkgCiAEQX9zrHwiDBDdBiACQRBqIAsgDBDdBiACIAIpAygiDCACKQMQfCIOIAIpAxggDCAOVq18IAAQoQcgAkHQAGogCSAKEN0GIAJBQGsgCyAKEN0GIAJBMGogAikDWCIJIAIpA0B8IgsgAikDSCAJIAtWrXwgABChByACKQMwIQsgAikDACEJIAIpA2AhDCAHQRZJDQJBACEDDAQLIAwgD30hDCAPUCAEcSEDQQEhBQwECyAKQn8gAK2GQn+Fg1AhBQwCC0EAIAqnayAKQgWAp0F7bEYEQEF/IQADQCAAQQFqIQAgCkLNmbPmzJmz5kx+IgpCtObMmbPmzJkzVA0ACyAAIAdPIQVBACEDDAILIA9QRQRAQX8hAANAIABBAWohACANQs2Zs+bMmbPmTH4iDUK05syZs+bMmTNUDQALIAwgACAHT619IQxBACEDDAILIAStQn+FIAp8IQpBfyEAA0AgAEEBaiEAIApCzZmz5syZs+ZMfiIKQrTmzJmz5syZM1QNAAsgACAHTyEDDAELIAZBAmpBwo/GAC0AADoAACAGQcCPxgAvAAA7AAAgCUI/iKdBA2ohACACQbACaiEEDAkLIAMNACAFRQ0BC0EAIQQgDEIKgCIOIAlCCoAiDFYNAUEAIQAgCSEKIAshDQwCC0EAIQQgDELkAIAiCiAJQuQAgCIOVg0CQQAhACAJIQ4gDCEKIAshCQwEC0EAIQADQCADQQAgCadrIAwiCqdBdmxGcSEDIABBAWohACAFIARB/wFxRXEhBSALpyALQgqAIg2nQXZsaiEEIA0hCyAOQgqAIg4gCiIJQgqAIgxWDQALCwJAIAMEQEEAIAqnayAKQgqAIgunQXZsRg0BCyANIQkMAgsDQCAAQQFqIQAgBSAEQf8BcUVxIQUgDacgDUIKgCIJp0F2bGohBCAJIQ1BACALp2sgCyIKQgqAIgunQXZsRg0ACwwBCyALpyALQuQAgCIJp0Gcf2xqQTFLIQRBAiEADAELIA9QIANxRSAJIApRcUEEQQUgCUIBg1AbIAQgBEH/AXFBBUYbIAQgBRtB/wFxQQRLcgwBCyAKQgqAIgogDkIKgCINVgR/A0AgAEEBaiEAIAkiC0IKgCEJIApCCoAiCiANIg5CCoAiDVYNAAsgC6cgCadBdmxqQQRLBSAECyAJIA5RcgshBAJAAn8CfwJAAkACQAJ/AkACQAJAIAAgB2oiA0EATiADAn9BESAJIAStQgGDfCIJQv//g/6m3uERVg0AGkEQIAlC//+Zpuqv4wFWDQAaQQ8gCUL//+iDsd4WVg0AGkEOIAlC/7/K84SjAlYNABpBDSAJQv+flKWNHVYNABpBDCAJQv/P28P0AlYNABpBCyAJQv/Hr6AlVg0AGkEKIAlC/5Pr3ANWDQAaQQkgCUL/wdcvVg0AGkEIIAlC/6ziBFYNABpBByAJQr+EPVYNABpBBiAJQp+NBlYNABpBBSAJQo/OAFYNABpBBCAJQucHVg0AGkEDIAlC4wBWDQAaQQJBASAJQglWGwsiAGoiBUERSHFFBEAgBUEBayIEQRBJDQEgBUEEakEFSQ0CIABBAUcNBSACQbACaiIAIAhqIAmnQTBqOgAAIAZB5QA6AAEgACAIQQJyIgZqIQMgBEEASA0DIAQMBAsgCSAAIAZqEMAEIANFIAAgBU5yRQRAIAJBsAJqIABqIAhqQTAgA/wLAAsgBSAIaiIAIAJBsAJqIgRqQa7gADsAACAAQQJqIQAMCgsgCSAAIAhqQQFqIgAgAkGwAmpqEMAEIAUEQCAGIAZBAWogBfwKAAALIAUgBmpBLjoAACACQbACaiEEDAkLIAJBsAJqIAhqQTA6AAAgBkEuOgABQQIgBWshBAJAIAVBAE4NAEEDIAQgBEEDTRtBAmsiA0UNACAGQQJqQTAgA/wLAAsgCSAAIAhqIARqIgAgAkGwAmoiBGoQwAQMCAsgA0EtOgAAIANBAWohA0EBIAVrCyIAQeMASg0BIABBCUwEQCADIABBMGo6AAAgBEEfdkEBaiEADAYLIAMgAEEBdC8AuLpFOwAAIARBH3ZBAnIhAAwFCyAJIAAgCGoiACACQbACaiIHaiIDQQFqEMAEIAcgCGogBi0AAToAACAGQS46AAEgA0HlADoAASAHIABBAmoiBmohAyAEQQBIDQEgBAwCCyADIABB5ABuIgVBMGo6AAAgAyAAIAVB5ABsa0EBdC8AuLpFOwABIARBH3ZBA2ohAAwDCyADQS06AAAgA0EBaiEDQQEgBWsLIgBB4wBMBEAgAEEJTARAIAMgAEEwajoAACAEQR92QQFqDAILIAMgAEEBdC8AuLpFOwAAIARBH3ZBAnIMAQsgAyAAQeQAbiIFQTBqOgAAIAMgACAFQeQAbGtBAXQvALi6RTsAASAEQR92QQNqCyAGaiEAIAJBsAJqIQQMAQsgACAGaiEAIAJBsAJqIQQLIAIgADYCrAIgAiAENgKoAiACIAJBqAJqrUKAgICAIIQ3A6ACIAEoAgAgASgCBCACQgE3AtQCIAJBAjYCzAIgAkHspcYANgLIAiACIAJBoAJqNgLQAiACQcgCahDBAwsgAkHgAmokAAvbGAMnfwp7BX4jAEEgayIIJAAgAC8BJCIFQQ9qIgtB8P8DcSEHIAtB8P8HcSENIAAoAiAhBiAAKAIcIRIgACgCFCEKIAAoAhAhEyAAKAIIIQQgACgCBCEUAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMEQCANQf//A3EiEEUNASAGIAdBAXYiCXAhACAKIAlwIQMgBUUNAiAEIAduIgQgAiAFQQNsIhduIgIgAiAESxsiJkUNEiAGIABrIRggCiADayEZIAUgEEsNESAFQQFxIScgCa0hNyAXIBdBBnAiKGsiFUEGa0EGbiIAIAVBAXYiAiAAIAJJGyIAIAUgAmtB//8DcSIRIAAgEUkbIiFBf3MgIUEBaiIAQQNxIgJBBCACGyICaiEiIAAgAmsiGkEGbCEpIAVB/v8DcSIbIBpBAXQiKmshIyAVIBpBemxqISQgASENIBQhEEEAIQpBACEFA0ACfyAFRSA1QoCAgIAQVHJFBEAgNUKAgICAcINCgICAgBB9ITggNacMAQsgCSAZSw0UIBkgCWshGUKAgICAECE4IDchNSAJIBMiBWohEyAJCyEEAn4gCkUgNkKAgICAEFRyRQRAIDanIQAgNkKAgICAcINCgICAgBB9DAELIAkgGEsNFCAYIAlrIRggNyE2IBIiCiAJIgBqIRJCgICAgBALITkgBCARSQ0EIAAgEUkNBSAUIAcgHGxqIR0gASAXIBxsaiEeIDVC/////w+DIDZC/////w+DITYgBSARaiElIAohCyAFIQwCQAJAIBVBBkkNACAVIQYgHiEEIBshACAdIQ4gIUEETwRAIA4gKmohDiAKIBpqIQsgBSAaaiEMIAQgKWohBCANIQAgBSEDIAohDyAiIQIgECEGA0AgACAP/VwAAP2JAf2pASIt/QwlZgAAJWYAACVmAAAlZgAA/bUBQQj9rQH9DGbI//9myP//Zsj//2bI///9rgEiLyAG/V0AACIwICz9DQACBAYAAAAAAAAAAAAAAAD9iQH9qQH9DIVKAACFSgAAhUoAAIVKAAAiMf21AUEI/a0BIiv9rgFBBv2sAf0MAAAAAAAAAAAAAAAAAAAAACIs/bgB/Qz/AAAA/wAAAP8AAAD/AAAAIi79tgEgKyAt/QwINAAACDQAAAg0AAAINAAA/bUBQQj9rQEgA/1cAAD9iQH9qQEiLf0MExkAABMZAAATGQAAExkAAP21AUEI/a0B/a4BIjL9sQH9DAQiAAAEIgAABCIAAAQiAAAiM/2uAUEG/awBICz9uAEgLv22Af0NAAQIDBAUGBwAAAAAAAAAACArIC39DBqBAAAagQAAGoEAABqBAAD9tQFBCP2tAf0M67r//+u6///ruv//67r///2uASI0/a4BQQb9rAEgLP24ASAu/bYBIiv9GwD9FwggK/0bAf0XCSAr/RsC/RcKICv9GwP9FwsgMCAs/Q0BAwUHAAAAAAAAAAAAAAAA/YkB/akBIDH9tQFBCP2tASItIC/9rgFBBv2sASAs/bgBIC79tgEiK/0bAP0XDCAr/RsB/RcNICv9GwL9Fw4gK/0bA/0XDyIrIC0gMv2xASAz/a4BQQb9rAEgLP24ASAu/bYBIC0gNP2uAUEG/awBICz9uAEgLv22Af0NAAQIDBAUGBwAAAAAAAAAACIs/Q0SFgMHCw8TFwAAAAAAAAAA/VsAEAAgACArICz9DQAECAwQFAEFCQ0RFQIGCg79CwAAIABBGGohACADQQRqIQMgD0EEaiEPIAZBCGohBiACQQRqIgINAAsgJCEGICMhAAsDQCAARQ0BIAwgJUYNAiAEQQJqQf8BIA4tAABBhZUBbEEIdiICIAwtAAAiD0GaggJsQQh2QZWKAWsiA2pBBnUiH0EAIB9BAEobIh8gH0H/AU4bOgAAIARB/wEgCy0AACIfQaXMAWxBCHZBmu8AayIgIAJqQQZ1IhZBACAWQQBKGyIWIBZB/wFOGzoAACAEQQVqQf8BIAMgDkEBai0AAEGFlQFsQQh2IgNqQQZ1IhZBACAWQQBKGyIWIBZB/wFOGzoAACAEQQNqQf8BIAMgIGpBBnUiIEEAICBBAEobIiAgIEH/AU4bOgAAIARBAWpB/wEgAiAfQYjoAGxBCHYgD0GTMmxBCHZqIgJrQYTEAGpBBnUiD0EAIA9BAEobIg8gD0H/AU4bOgAAIARBBGpB/wEgAyACa0GExABqQQZ1IgJBACACQQBKGyICIAJB/wFOGzoAACAEQQZqIQQgDkECaiEOIAtBAWohCyAMQQFqIQwgAEECayEAIAZBBmsiBkEGTw0ACwsgCyAKIBFqRiAoQQNJciAnRSAMICVGcnINACAVIB5qIgBB/wEgGyAdai0AAEGFlQFsQQh2IgIgDC0AACIDQZqCAmxBCHZqQZWKAWtBBnUiBkEAIAZBAEobIgYgBkH/AU4bOgACIABB/wEgAiALLQAAIgZBpcwBbEEIdmpBmu8Aa0EGdSIEQQAgBEEAShsiBCAEQf8BThs6AAAgAEH/ASACIANBkzJsQQh2IAZBiOgAbEEIdmprQYTEAGpBBnUiAEEAIABBAEobIgAgAEH/AU4bOgABCyA4hCE1IDYgOYQhNiANIBdqIQ0gByAQaiEQIBxBAWoiHCAmSQ0ACwwSCyAEIAVJDQQgBSAFQQF2ayIDIApLDQUgAyAGSw0GIAIgBUEDbCIJSQ0HIAAvASYhFSABIAkgFCAFIBMgAyASIAMQeSAFRQ0IIAIgCWsiAiAFQQZsIgxwIQ8gByAVbCIAIAdJIAAgBEtyDQkgDUH//wNxIg1FDQogB0EBdiEEIAEgCWohGyAAIAdrIgAgACAHQQF0IhBwIh5rIQAgByAUaiEdAkAgAiAPayIiIAxJDQAgBSANSwRAIAYgB0kgByAKS3IgACAQSXINAUEAIAUgB0Ho6cQAEOoHAAsgAyAESwRAIAYgB0kgByAKS3IgACAQSXINAUEAIAMgBEHY6cQAEOoHAAsgACAQSSAHIApLciAGIAdJciECIAcgBGsiDSADSQRAIAINAUEAIAMgDUHI6cQAEOoHAAsgAg0AIBsgCSAdIAUgEyADIAQgE2oiIyADIBIgAyAEIBJqIiQgAxBrIAkgG2ogCSAHIB1qIAUgIyADIBMgAyAkIAMgEiADEGsgIiAMayINIAxJDQAgBEEBayERIAogBGshFyAHIBNqIRggBUEMbCEZIAVBCWwhGiAHIBJqIRwgC0Hw/wNxQQR2IgJBBnQhISACQTBsISVBACELIAAhAgNAIAIgEGsiAiAQSSAKIAtqQQFrIBFJciALIBdqIAdJIAYgC2pBAWsgEUlycg0BIAYgCyAEayILaiAHSQ0BIAEgGmogCSAUICVqIAUgDiAjaiImIAMgDiAYaiInIAMgDiAkaiIoIAMgDiAcaiIpIAMQayABIBlqIAkgFCAhaiAFICcgAyAmIAMgKSADICggAxBrIBAgFGohFCABIAxqIQEgBCAOaiEOIA0gDGsiDSAMTw0ACwsgD0UNESAKIBVBAXEgFUEBdmpBAWsgBGwiAUkNCyABIAZLDQwgBSAeSw0NIAMgCiABayICSw0OIAMgBiABayICSw0PIBsgImogDyAAIB1qIAUgASATaiADIAEgEmogAxB5DBELIAhBADYCGCAIQQE2AgwgCEG8occANgIIIAhCBDcCECAIQQhqQcjqxAAQjQgACyAIQQA2AhggCEEBNgIMIAhBvKHHADYCCCAIQgQ3AhAgCEEIakHY6sQAEI0IAAtBACARIARB+OrEABDqBwALQQAgESAAQejqxAAQ6gcAC0EAIAUgBEG46sQAEOoHAAtBACADIApBqOrEABDqBwALQQAgAyAGQZjqxAAQ6gcAC0EAIAkgAkGI6sQAEOoHAAsgCEEANgIYIAhBATYCDCAIQbyhxwA2AgggCEIENwIQIAhBCGpB2OjEABCNCAALIAcgACAEQfjpxAAQ6gcACyAIQQA2AhggCEEBNgIMIAhBvKHHADYCCCAIQgQ3AhAgCEEIakHo6MQAEI0IAAsgASAKIApBuOnEABDqBwALIAEgBiAGQajpxAAQ6gcAC0EAIAUgHkGY6cQAEOoHAAtBACADIAJBiOnEABDqBwALQQAgAyACQfjoxAAQ6gcACyAJIBlLIAkgGEtyDQBBACAFIAdBiOvEABDqBwALIAhBIGokAAutFgMlfwN9AXsjAEHQAmsiAyQAQQAQtgkhBCADQQAQtgk2AsABIAMgBDYCvAEgA0EANgK4ASADQgA3ArABIANCBDcCeCADQgA3AnAgA0KAgICAwAA3AmggA0IENwJgIANCADcCWCADQoCAgIDAADcCUCADQQA2AjwgA0EANgI0IANBADYCLCADQQA2AiQgA0EANgIcIANBADYCFCADQQA2AgwgA0EANgJIIANBgICAgHg2ApgBIANBgICAgHg2AqQBIANBzAFqQQA6AAAgA0IENwKQASADQgA3AogBIANCgICAgMAANwKAASADQgA3AsQBIAEoAjwhEyADIAI6APgBIAMgEzYC9AEgAyABKAIIIgg2AvABIANBDGogA0HwAWoQ4QMCQAJAAkACQEGAgDAQcSIQRQ0AIBBBBGsiHS0AAEEDcQRAIBBBAEGAgDD8CwALQYCAEBBxIglFDQAgCUEEayIeLQAAQQNxBEAgCUEAQYCAEPwLAAtBgIAwEHEiEUUNACARQQRrIh8tAABBA3EEQCARQQBBgIAw/AsAC0GAgDAQcSISRQ0AIBJBBGsiIC0AAEEDcQRAIBJBAEGAgDD8CwALQYCAwAAQcSILRQ0AIAtBBGsiIS0AAEEDcQRAIAtBAEGAgMAA/AsAC0GAgAgQcSIMRQ0AIAxBBGsiIi0AAEEDcQRAIAxBAEGAgAj8CwALQYCAEBBxIg1FDQAgDUEEayIjKAIAIgVBA3EiBARAIA1BAEGAgBD8CwALIAgEQCAMQQIgAhshJCANQQQgAhshJUGAgARBACACGyEbIAEoAhAhJiABKAIUIRwgASgCBCEnA0BBgIAEIAggDmsiBCAEQYCABE8bIRQgCCAORwRAICcgDkEkbGohBCAmIA5BGGxqIQZBACEVIAkhFkEAIQUgDSEXIAshGCAMIRkDQCAIIA4gFWoiGk0EQCAaIAhB1MDHABCMBwALIARBEGoqAgAhKCAEQQxqKgIAISkgBEEIaioCACEqIANB0AFqIAQQpAMgA0HgAWogBBCaAyADQfABaiAEKQIAEMsCIAP9AATwASErIAUgEGoiCiAqOAIAIAUgEWoiByADKgLQATgCACAFIBJqIg8gAyoC4AE4AgAgCkEEaiApOAIAIAdBBGogAyoC1AE4AgAgD0EEaiADKgLkATgCACAKQQhqICg4AgAgB0EIaiADKgLYATgCACAPQQhqIAMqAugBOAIAIBggK/0LAgAgFgJ/IARBFGovAQAiB0H//wFxRQRAIAdBEHQMAQsgB0H/B3EhCiAHQYCAAnEhDyAHQYD4AXEiB0GA+AFGBEAgD0EQdCEHIAdBgICA/AdyIApFDQEaIAcgCkENdHJBgICA/gdyDAELIA9BEHQhDyAHQQ10QYCAgPwAcSAKQQ10ckGAgIDAA2ogD3IgBw0AGiAPQYCAgNgDciAKZ0EQayIHQRd0ayAKIAdB//8DcUEIanRB////A3FyCzYCACACBEACfwJAIBogHEkEQAJ/IAZBFGooAgAiCkEESwRAIAZBBGooAgAhCiAGQQhqKAIADAELIAZBBGoLIQcgCg0BQQAhCkEADAILIBogHEHEwMcAEIwHDAcLIAcoAgALIQcgGSAKOwEAIBcgBzYCAAsgBEEkaiEEIAZBGGohBiAWQQRqIRYgBUEMaiEFIBdBBGohFyAYQRBqIRggGUECaiEZIBVBAWoiFSAUSQ0ACwsgAyAbNgK8AiADICU2ArgCIAMgGzYCtAIgAyAkNgKwAiADQQA2AqwCIANCgICAgMAANwKkAiADQoCAgIDAADcCnAIgA0KAgJCAwAA3ApQCIAMgCzYCkAIgA0GAgAw2AowCIAMgEjYCiAIgA0GAgAw2AoQCIAMgETYCgAIgA0GAgAQ2AvwBIAMgCTYC+AEgA0GAgAw2AvQBIAMgEDYC8AEgA0EMaiAOIBQgA0HwAWoQfiAOIBRqIg4gCEkNAAsgIygCACIFQQNxIQQLAkACQCAFQXhxQYSAEEGIgBAgBBtPBEAgBEEAIAVBqIAQTxsNBiANEKICICIoAgAiAkF4cUGEgAhBiIAIIAJBA3EiBBtJDQUgBEEAIAJBqIAITxsNBiAMEKICICEoAgAiAkF4cUGEgMAAQYiAwAAgAkEDcSIEG0kNBSAEQQAgAkGogMAATxsNBiALEKICICAoAgAiAkF4cUGEgDBBiIAwIAJBA3EiBBtJDQUgBEEAIAJBqIAwTxsNBiASEKICIB8oAgAiAkF4cUGEgDBBiIAwIAJBA3EiBBtJDQUgBEEAIAJBqIAwTxsNBiAREKICIB4oAgAiAkF4cUGEgBBBiIAQIAJBA3EiBBtJDQUgBEEAIAJBqIAQTxsNBiAJEKICIB0oAgAiAkF4cUGEgDBBiIAwIAJBA3EiBBtJDQUgBEEAIAJBqIAwTxsNBiAQEKICIBNFDQRBgICQARBxIgJFDQMgAkEEayILKAIAIgVBA3EiBARAIAJBAEGAgJAB/AsACyAIRQ0CIAEoAiAhDCABKAIcIQ1BACEGA0BBgIAEIAggBmsiBCAEQYCABE8bIQkgBiAIRwRAQQAhBSACIQQDQCADQfABaiANIAwgBSAGahC8ASAEIAP9AATwAf0LAgAgBEEQaiAD/QAEgAL9CwIAIARBIGogAyoCkAI4AgAgBEEkaiEEIAVBAWoiBSAJSQ0ACwsgA0EMaiAGIAkgAkGAgCQQ5gEgCCAGIAlqIgZLDQALDAELDAQLIAsoAgAiBUEDcSEECwJAIAVBeHFBhICQAUGIgJABIAQbTwRAIARBACAFQaiAkAFPGw0FIAIQogIgE0EBRg0DQYCA8AEQcSICRQ0CIAJBBGsiCygCACIFQQNxIgQEQCACQQBBgIDwAfwLAAsgCARAIAEoAiwhDCABKAIoIQ1BACEGA0BBgIAEIAggBmsiBCAEQYCABE8bIQkgBiAIRwRAQQAhBSACIQQDQCADQfABaiANIAwgBSAGahCLASAEIAP9AATwAf0LAgAgBEEQaiAD/QAEgAL9CwIAIARBIGogA/0ABJAC/QsCACAEQTBqIAMqAqACOAIAIARBNGogAykCpAI3AgAgBEE8aiEEIAVBAWoiBSAJSQ0ACwsgA0EMaiAGIAkgAkGAgDwQpwEgBiAJaiIGIAhJDQALIAsoAgAiBUEDcSEECyAFQXhxQYSA8AFBiIDwASAEG0kNBCAEQQAgBUGogPABTxsNBSACEKICIBNBAk0NA0GAgNACEHEiAkUNAiACQQRrIgkoAgAiBUEDcSIEBEAgAkEAQYCA0AL8CwALIAgEQCABKAI4IQsgASgCNCEMQQAhBgNAQYCABCAIIAZrIgEgAUGAgARPGyEBIAYgCEcEQEEAIQUgAiEEA0AgA0HwAWogDCALIAUgBmoQbCAEIAP9AATwAf0LAgAgBEEQaiAD/QAEgAL9CwIAIARBIGogA/0ABJAC/QsCACAEQTBqIAP9AASgAv0LAgAgBEFAayAD/QAEsAL9CwIAIARB0ABqIAMqAsACOAIAIARB1ABqIQQgBUEBaiIFIAFJDQALCyADQQxqIAYgASACQYCA1AAQlAEgASAGaiIGIAhJDQALIAkoAgAiBUEDcSEECyAFQXhxQYSA0AJBiIDQAiAEG0kNBCAEQQAgBUGogNACTxsNASACEKICDAMLDAMLDAMLAAsCQCADQQxqIgIQ1AEiAQRAIABBAjYCACAAIAE2AgQgAhCKAgwBCyAAIANBDGpBxAH8CgAACyADQdACaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALhBQDEX8BfgFvIwBBwAdrIgEkACABQeABaiIHIAIgAygCDBEBAAJAAkACQAJAAkACQCABKQPgAULNxp63xqmo+pF/hSABKQPoAULSu7jilPu7/rd/hYRQBEAgAUHQAGogAkGQAfwKAAAgASgC1AEiA0UNASAHIAMgASgC2AEiEigCDCIIEQEAAkACQAJAAkACQCABKQPgAUKgvNiAuoLloN0AhSABKQPoAUK9y93Gj/qznlqFhFBFBEAgByADIAgRAQAgASkD4AFC5fTkmdDWtpP+AIUgASkD6AFCp8KLy4X7pZOff4WEUA0BIAcgAyAIEQEAIAEpA+ABQo+XpKuq1dCexACFIAEpA+gBQq+28uu5uLyVfYWEUA0CIAcgAyAIEQEAIAEpA+ABQsK26uerwMLK5wCFIAEpA+gBQribhIDZ35Xo6wCFhFANAyAHIAMgCBEBACABKQPgAUKy1oinj7SZ7MQAhSABKQPoAULigrnHtPHRgsMAhYRQDQQgByADIAgRAQAgASkD4AFC5YrQwKDQ0OFChSABKQPoAUL7ntmK4K7cny6FhFAiEw0FIAFBADYC8AEgAUEBNgLkASABQdTgwQA2AuABIAFCBDcC6AEgB0Hc4MEAEI0IAAsgAUHgAWogA0HYBfwKAAAgAygCCCEHIAMpAwAhFSABIANBDGpB0AD8CgAAIAMoAlwhCCABKAKoByIEBEAgASgCrAciBUEEaygCACIGQXhxIglBBEEIIAZBA3EiBhsgBGpJDQwgBkEAIAkgBEEnaksbDQsgBRCiAgsgAUHAAmohBAJAAkACQCABKAKcB0GAgICAeGsOAgECAAsgBBC+AgwBCyAEEL0BCyADQQRrKAIAIgRBeHFB3AVB4AUgBEEDcSIFG0kNCyAFRQ0IIARBgAZPDQoMCAsgAygCCCEHIAMpAgAhFSABIANBDGpB0AD8CgAAIAMoAqABIQkgAygCnAEhDiADKAKUASEPIAMoApABIQsgAygCiAEhEiADKAKEASEEIAMoAnwhEyADKAJ4IQUgAygCcCENIAMoAmwhBiADKAJcIQggAygCYCIKBEAgAygCZCIQQQRrKAIAIgxBeHEiEUEEQQggDEEDcSIMGyAKakkNCyAMQQAgESAKQSdqSxsNCiAQEKICCyAGBEAgDUEEaygCACIKQXhxIhBBBEEIIApBA3EiChsgBmpJDQsgCkEAIBAgBkEnaksbDQogDRCiAgsgBQRAIBNBBGsoAgAiBkF4cSINQQRBCCAGQQNxIgYbIAVqSQ0LIAZBACANIAVBJ2pLGw0KIBMQogILAkAgBEGAgICAeEYNACAEBEAgEkEEaygCACIFQXhxIgYgBEECdCIEQQRBCCAFQQNxIgUbakkNDCAFQQAgBiAEQSdqSxsNCyASEKICCyALBEAgD0EEaygCACIEQXhxIgUgC0EBdCIGQQRBCCAEQQNxIgQbakkNDCAEQQAgBSAGQSdqSxsNCyAPEKICCyAORQ0AIAlBBGsoAgAiBEF4cSIFIA5BAnQiBkEEQQggBEEDcSIEG2pJDQsgBEEAIAUgBkEnaksbDQogCRCiAgsgA0EEaygCACIEQXhxQczTAEHQ0wAgBEEDcSIFG0kNCiAFRSAEQfDTAElyDQcMCQsgAygCCCEHIAMpAgAhFSABIANBDGpB0AD8CgAAIAMoAlwhCCADKAJgIgQEQCADKAJkIgVBBGsoAgAiBkF4cSIJQQRBCCAGQQNxIgYbIARqSQ0KIAZBACAJIARBJ2pLGw0JIAUQogILIANBBGsoAgAiBEF4cSIFQfAAQfQAIARBA3EiBBtJDQkgBEUgBUGUAUlyDQYMCAsgAygCCCEHIAMpAgAhFSABIANBDGpB0AD8CgAAIAMoAlwhCCADKAJgIgQEQCADKAJkIgVBBGsoAgAiBkF4cSIJQQRBCCAGQQNxIgYbIARqSQ0JIAZBACAJIARBJ2pLGw0IIAUQogILIANBBGsoAgAiBEF4cSIFQfAAQfQAIARBA3EiBBtJDQggBEUgBUGUAUlyDQUMBwsgAygCCCEHIAMpAgAhFSABIANBDGpB0AD8CgAAIAMoAlwhCCADKAJgIgQEQCADKAJkIARBARCiBwsgA0EEaygCACIEQXhxIgVB8ABB9AAgBEEDcSIEG0kNByAERSAFQZQBSXINBAwGCyADKAKAAiEHIAMpAvgBIRUgAygC/AIhCyADKAL4AiEEIAMoAugBIQ0gAygC5AEhBiADKAKIASEKIAMoAnQhECADKAJwIQkgAygCbCEFIAMoAmghDiADKAJkIQ8gAygCACEMIAEgA0GEAmpB0AD8CgAAIAMoAtQCIQggBARAIAsgBEEBEKIHCwJAIAxBAkYNACAFBEAgDkEkaiEEA0AgBEEEaygCACILQYCAgIB4ckGAgICAeEcEQCAEKAIAIgxBBGsoAgAiEUF4cSIUQQRBCCARQQNxIhEbIAtqSQ0KIBFBACAUIAtBJ2pLGw0JIAwQogILIARBMGohBCAFQQFrIgUNAAsLIA8EQCAOIA9BMGxBCBCiBwsgCUGAgICAeHJBgICAgHhGDQAgECAJQQEQogcLIAMgEiATGyEDIAZFIApBAkZyRQRAIA0gBkEobEEIEKIHCyADQQRrKAIAIgRBeHFBpANBqAMgBEEDcSIFG0kNAiAFRSAEQcgDSXINAwwFCyABIAM2AuQBIAEgAjYC4AFB2ObIAEErIAFB4AFqQejuwABBsO/AABDgBgALQbDgwQAQ3QkAC0HMjMgAQS5B/IzIABDrBwwBCyADEKICIAEoAlwiA0GAgICAeHJBgICAgHhHBEAgASgCYCIEQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyADakkNAyAFQQAgBiADQSdqSxsNAiAEEKICCyABKAJoQYCAgIB4RwRAIAFB6ABqEPYCCyABKAJQIgMEQCABKAJUIgRBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIANqSQ0DIAVBACAGIANBJ2pLGw0CIAQQogILAkAgASgCyAEiA0GAgICAeHJBgICAgHhHBEAgASgCzAEiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAYgA0EnaksbDQEgBBCiAgtB9AAQcSIDRQ0BIAMgBzYCFCADIBU3AgwgA0EANgIIIANCgYCAgBA3AgAgA0EYaiABQdAA/AoAACADIAg2AnAgAyAHNgJsIAMgCDYCaCADQQhqEA4hFhDaBCIHIBYmASACQQRrKAIAIgNBeHFBlAFBmAEgA0EDcSIIG0kNAyAIQQAgA0G4AU8bDQIgAhCiAiAAIAc2AgQgAEEANgIAIAFBwAdqJAAPCwwBCwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC+cTARB/IwBBgAprIgEkACABQcADaiIFIAIgAygCDBEBAAJAAkACQAJAIAEpA8ADQuO40dasvJKArn+FIAEpA8gDQryn3YiYlYqsoX+FhFAEQCACLQDwASISQQZHBEAgAUHMAWogAkH0AfwKAAAgASgCtAMiA0UNAiAFIAMgASgCuAMiECgCDCIEEQEAAkACQAJAAkACQCABKQPAA0KI3Nq/5u+y+dkAhSABKQPIA0Kh/ou+w+76j49/hYRQRQRAIAUgAyAEEQEAIAEpA8ADQqGi3oaJvIaD8wCFIAEpA8gDQoSEh9SDyIugQ4WEUA0BIAUgAyAEEQEAIAEpA8ADQv7e4K+u1MjsNoUgASkDyANCyt3cy/j+2PXmAIWEUA0CIAUgAyAEEQEAIAEpA8ADQrOIr+uYlayb4ACFIAEpA8gDQu3H6c+dgu7+tX+FhFANAyAFIAMgBBEBACABKQPAA0Ld9u3S0ufOw3SFIAEpA8gDQvWp6Jax1+m4+wCFhFANBCAFIAMgBBEBACABKQPAA0Lk5cLa8Onu9HCFIAEpA8gDQruhgKOGtavEywCFhFAiEQ0FIAFBADYC0AMgAUEBNgLEAyABQdTgwQA2AsADIAFCBDcCyAMgBUHc4MEAEI0IAAsgAUHAA2ogA0G4BvwKAAAgAUEIaiADQfQEakHEAfwKAAAgASgCqAgiBARAIAEoAqwIIgVBBGsoAgAiBkF4cSIHQQRBCCAGQQNxIgYbIARqSQ0LIAZBACAHIARBJ2pLGw0KIAUQogILAkACQAJAIAEoApwIQYCAgIB4aw4CAQIACyABQcADahC+AgwBCyABQcADahC9AQsgA0EEaygCACIEQXhxQbwGQcAGIARBA3EiBRtJDQogBUUNCCAEQeAGTw0JDAgLIAFBCGogA0HEAfwKAAAgAygChAIhByADKAKAAiELIAMoAvgBIQwgAygC9AEhCSADKALsASEQIAMoAugBIQQgAygC4AEhESADKALcASEFIAMoAtQBIQogAygC0AEhBiADKALEASIIBEAgAygCyAEiDUEEaygCACIOQXhxIg9BBEEIIA5BA3EiDhsgCGpJDQogDkEAIA8gCEEnaksbDQkgDRCiAgsgBgRAIApBBGsoAgAiCEF4cSINQQRBCCAIQQNxIggbIAZqSQ0KIAhBACANIAZBJ2pLGw0JIAoQogILIAUEQCARQQRrKAIAIgZBeHEiCkEEQQggBkEDcSIGGyAFakkNCiAGQQAgCiAFQSdqSxsNCSAREKICCwJAIARBgICAgHhGDQAgBARAIBBBBGsoAgAiBUF4cSIGIARBAnQiBEEEQQggBUEDcSIFG2pJDQsgBUEAIAYgBEEnaksbDQogEBCiAgsgCQRAIAxBBGsoAgAiBEF4cSIFIAlBAXQiBkEEQQggBEEDcSIEG2pJDQsgBEEAIAUgBkEnaksbDQogDBCiAgsgC0UNACAHQQRrKAIAIgRBeHEiBSALQQJ0IgZBBEEIIARBA3EiBBtqSQ0KIARBACAFIAZBJ2pLGw0JIAcQogILIANBBGsoAgAiBEF4cSIFQbDUAEG01AAgBEEDcSIEG0kNCSAERSAFQdTUAElyDQcMCAsgAUEIaiADQcQB/AoAACADKALEASIEBEAgAygCyAEiBUEEaygCACIGQXhxIgdBBEEIIAZBA3EiBhsgBGpJDQkgBkEAIAcgBEEnaksbDQggBRCiAgsgA0EEaygCACIEQXhxQdQBQdgBIARBA3EiBRtJDQggBUUgBEH4AUlyDQYMBwsgAUEIaiADQcQB/AoAACADKALEASIEBEAgAygCyAEiBUEEaygCACIGQXhxIgdBBEEIIAZBA3EiBhsgBGpJDQggBkEAIAcgBEEnaksbDQcgBRCiAgsgA0EEaygCACIEQXhxQdQBQdgBIARBA3EiBRtJDQcgBUUgBEH4AUlyDQUMBgsgAUEIaiADQcQB/AoAACADKALEASIEBEAgAygCyAEgBEEBEKIHCyADQQRrKAIAIgRBeHFB1AFB2AEgBEEDcSIFG0kNBiAFRSAEQfgBSXINBAwFCyADKAK0AiEJIAMoArACIQQgAygChAIhCiADKAKAAiEGIAMoAvwBIQUgAygC+AEhByADKAL0ASELIAMoApABIQggAygCYCENIAMoAlwhDCADKAIAIQ4gAUEIaiADQbwCakHEAfwKAAAgBARAIAkgBEEBEKIHCwJAIAhBAkYNACAFBEAgB0EkaiEEA0AgBEEEaygCACIJQYCAgIB4ckGAgICAeEcEQCAEKAIAIghBBGsoAgAiD0F4cSITQQRBCCAPQQNxIg8bIAlqSQ0JIA9BACATIAlBJ2pLGw0IIAgQogILIARBMGohBCAFQQFrIgUNAAsLIAsEQCAHIAtBMGxBCBCiBwsgBkGAgICAeHJBgICAgHhGDQAgCiAGQQEQogcLIAMgECARGyEDIAxFIA5BAkZyRQRAIA0gDEEobEEIEKIHCyADQQRrKAIAIgRBeHFBjARBkAQgBEEDcSIFG0kNBSAFRSAEQbAESXINAwwEC0HA7sAAEN0JAAsgASADNgLEAyABIAI2AsADQdjmyABBKyABQcADakHo7sAAQfjuwAAQ4AYAC0Gw4MEAEN0JAAsgAxCiAgJAIAEoApwDIgNBgICAgHhyQYCAgIB4RwRAIAEoAqADIgRBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIANqSQ0DIAVBACAGIANBJ2pLGw0CIAQQogILIAEoAswBQQJHBEAgAUHMAWoQigILIAEoApADIgMEQCABKAKUAyIEQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyADakkNAyAFQQAgBiADQSdqSxsNAiAEEKICCyABKAKoAyIDQYCAgIB4ckGAgICAeEcEQCABKAKsAyIEQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyADakkNAyAFQQAgBiADQSdqSxsNAiAEEKICCyASQQJ0IgMoAvDrQSEEIAMoAtjrQSEFIAFBCGoQ0QEiBkHQ7sAAQQgQ7AgiAyAFIAQQ7AgiBBDACUG0u8kALQAABEBBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgASAANgLAA0HY5sgAQSsgAUHAA2pB2OjAAEHY7sAAEOAGAAtBuLvJAEEANgIAQbS7yQBBADoAACAEQYQITwRAIAQQmwcLIANBhAhPBEAgAxCbBwsgAkEEaygCACIDQXhxIgRB+AFB/AEgA0EDcSIDG0kNAiADQQAgBEGcAk8bDQAgAhCiAiAAIAY2AgQgAEEANgIAIAFBgApqJAAPCwtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwAL5BMBEH8jAEHgCWsiASQAIAFBsANqIgUgAiADKAIMEQEAAkACQAJAAkAgASkDsANC/deLibyi8JkohSABKQO4A0KD0J+9oMfru9sAhYRQBEAgAi0A6AEiEkEGRwRAIAFBxAFqIAJB7AH8CgAAIAEoAqQDIgNFDQIgBSADIAEoAqgDIhAoAgwiBBEBAAJAAkACQAJAAkAgASkDsANCl9Ogsr+ekfVxhSABKQO4A0Lr2o7NnpPqglGFhFBFBEAgBSADIAQRAQAgASkDsANC/dnb2/Ko6/wlhSABKQO4A0KEvvuqpe/a4a9/hYRQDQEgBSADIAQRAQAgASkDsANCqqLKsbmZvbFchSABKQO4A0KTsJ7ihNW54coAhYRQDQIgBSADIAQRAQAgASkDsANCgtaMka+W1c/sAIUgASkDuANCst3rmqDTsMKlf4WEUA0DIAUgAyAEEQEAIAEpA7ADQufbvbLs97vyzQCFIAEpA7gDQoXbt7ag4bn/P4WEUA0EIAUgAyAEEQEAIAEpA7ADQo7z6KKs6L31EoUgASkDuANCno+QqKna5+CKf4WEUCIRDQUgAUEANgLAAyABQQE2ArQDIAFB1ODBADYCsAMgAUIENwK4AyAFQdzgwQAQjQgACyABQbADaiADQbAG/AoAACABQQhqIANB9ARqQbwB/AoAACABKAKYCCIEBEAgASgCnAgiBUEEaygCACIGQXhxIgdBBEEIIAZBA3EiBhsgBGpJDQsgBkEAIAcgBEEnaksbDQogBRCiAgsCQAJAAkAgASgCjAhBgICAgHhrDgIBAgALIAFBsANqEL4CDAELIAFBsANqEL0BCyADQQRrKAIAIgRBeHFBtAZBuAYgBEEDcSIFG0kNCiAFRQ0IIARB2AZPDQkMCAsgAUEIaiADQbwB/AoAACADKAL8ASEHIAMoAvgBIQsgAygC8AEhDCADKALsASEJIAMoAuQBIRAgAygC4AEhBCADKALYASERIAMoAtQBIQUgAygCzAEhCiADKALIASEGIAMoArwBIggEQCADKALAASINQQRrKAIAIg5BeHEiD0EEQQggDkEDcSIOGyAIakkNCiAOQQAgDyAIQSdqSxsNCSANEKICCyAGBEAgCkEEaygCACIIQXhxIg1BBEEIIAhBA3EiCBsgBmpJDQogCEEAIA0gBkEnaksbDQkgChCiAgsgBQRAIBFBBGsoAgAiBkF4cSIKQQRBCCAGQQNxIgYbIAVqSQ0KIAZBACAKIAVBJ2pLGw0JIBEQogILAkAgBEGAgICAeEYNACAEBEAgEEEEaygCACIFQXhxIgYgBEECdCIEQQRBCCAFQQNxIgUbakkNCyAFQQAgBiAEQSdqSxsNCiAQEKICCyAJBEAgDEEEaygCACIEQXhxIgUgCUEBdCIGQQRBCCAEQQNxIgQbakkNCyAEQQAgBSAGQSdqSxsNCiAMEKICCyALRQ0AIAdBBGsoAgAiBEF4cSIFIAtBAnQiBkEEQQggBEEDcSIEG2pJDQogBEEAIAUgBkEnaksbDQkgBxCiAgsgA0EEaygCACIEQXhxIgVBqNQAQazUACAEQQNxIgQbSQ0JIARFIAVBzNQASXINBwwICyABQQhqIANBvAH8CgAAIAMoArwBIgQEQCADKALAASIFQQRrKAIAIgZBeHEiB0EEQQggBkEDcSIGGyAEakkNCSAGQQAgByAEQSdqSxsNCCAFEKICCyADQQRrKAIAIgRBeHFBzAFB0AEgBEEDcSIFG0kNCCAFRSAEQfABSXINBgwHCyABQQhqIANBvAH8CgAAIAMoArwBIgQEQCADKALAASIFQQRrKAIAIgZBeHEiB0EEQQggBkEDcSIGGyAEakkNCCAGQQAgByAEQSdqSxsNByAFEKICCyADQQRrKAIAIgRBeHFBzAFB0AEgBEEDcSIFG0kNByAFRSAEQfABSXINBQwGCyABQQhqIANBvAH8CgAAIAMoArwBIgQEQCADKALAASAEQQEQogcLIANBBGsoAgAiBEF4cUHMAUHQASAEQQNxIgUbSQ0GIAVFIARB8AFJcg0EDAULIAMoArQCIQkgAygCsAIhBCADKAKEAiEKIAMoAoACIQYgAygC/AEhBSADKAL4ASEHIAMoAvQBIQsgAygCkAEhCCADKAJgIQ0gAygCXCEMIAMoAgAhDiABQQhqIANBvAJqQbwB/AoAACAEBEAgCSAEQQEQogcLAkAgCEECRg0AIAUEQCAHQSRqIQQDQCAEQQRrKAIAIglBgICAgHhyQYCAgIB4RwRAIAQoAgAiCEEEaygCACIPQXhxIhNBBEEIIA9BA3EiDxsgCWpJDQkgD0EAIBMgCUEnaksbDQggCBCiAgsgBEEwaiEEIAVBAWsiBQ0ACwsgCwRAIAcgC0EwbEEIEKIHCyAGQYCAgIB4ckGAgICAeEYNACAKIAZBARCiBwsgAyAQIBEbIQMgDEUgDkECRnJFBEAgDSAMQShsQQgQogcLIANBBGsoAgAiBEF4cUGEBEGIBCAEQQNxIgUbSQ0FIAVFIARBqARJcg0DDAQLQaDwwAAQ3QkACyABIAM2ArQDIAEgAjYCsANB2ObIAEErIAFBsANqQejuwABBwPDAABDgBgALQbDgwQAQ3QkACyADEKICAkAgASgCjAMiA0GAgICAeHJBgICAgHhHBEAgASgCkAMiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgA2pJDQMgBUEAIAYgA0EnaksbDQIgBBCiAgsgASgCxAFBAkcEQCABQcQBahDAAgsgASgCgAMiAwRAIAEoAoQDIgRBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIANqSQ0DIAVBACAGIANBJ2pLGw0CIAQQogILIAEoApgDIgNBgICAgHhyQYCAgIB4RwRAIAEoApwDIgRBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIANqSQ0DIAVBACAGIANBJ2pLGw0CIAQQogILIBJBAnQiAygC8OtBIQQgAygC2OtBIQUgAUEIahDSASIGQdDuwABBCBDsCCIDIAUgBBDsCCIEEMAJQbS7yQAtAAAEQEG0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACABIAA2ArADQdjmyABBKyABQbADakHY6MAAQbDwwAAQ4AYAC0G4u8kAQQA2AgBBtLvJAEEAOgAAIARBhAhPBEAgBBCbBwsgA0GECE8EQCADEJsHCyACQQRrKAIAIgNBeHEiBEHwAUH0ASADQQNxIgMbSQ0CIANBACAEQZQCTxsNACACEKICIAAgBjYCBCAAQQA2AgAgAUHgCWokAA8LC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAvFFwICfwF+IwBBQGoiAiQAIAEoAgQhAyABKAIAIQECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCACIALQAAQQFrDiMBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhsjHB0eHyAhIgALIAIgAEEEajYCBCACIABBCGo2AiAgAiAAQQxqNgIkIAIgAkEkaq1CgICAgLAMhDcDGCACQoCAgIDADCIEIAJBIGqthDcDECACIAQgAkEEaq2ENwMIIAJCAzcCNCACQQQ2AiwgAkHsncUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwrCyABQYyexQBBFiADKAIMEQAADCoLIAFBop7FAEElIAMoAgwRAAAMKQsgAUHHnsUAQR4gAygCDBEAAAwoCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGIn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwnCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkG8n8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwmCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkHsn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwlCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGcoMUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwkCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMI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CyAJQRhqIgIgCUGcA2pBwAH8CgAAQfQBEHEiAUUNAiABIAY2AgAgAUEEaiACQcAB/AoAACABIAs6APABIAEgBDYC7AEgASAHNgLoASABQYCAgIB4NgLcASABIBU3AtQBIAEgCDYC0AEgAUEANgLMASABQoCAgIAQNwLEASAAQbDuwAA2AgwgAEEBNgIIIABBmO7AADYCBCAAIAE2AgAgA0GAgICAeHJBgICAgHhGDQMgBUEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgA2pJDQQgAEEAIAEgA0EnaksbDQUgBRCiAgwDC0GgnsYAQTcgCUHfBGpBtJPBAEHYnsYAEOAGAAtB2JrIABD/BwsACyAJQeAEaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL/Q0BBX8jAEEwayICJAACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOBQECAwQFAAtBASEDIAEoAgAiBEHUpccAQQggASgCBCIGKAIMIgURAAANBiAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEIQGRQ0BDAgLIARB24HCAEECIAURAAANByACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIQGDQcgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0HCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBgtBASEDIAEoAgAiBEHcpccAQQggASgCBCIGKAIMIgURAAANBSAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQcgACABEIUGRQ0BDAcLIARB24HCAEECIAURAAANBiACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIUGDQYgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0GCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBQtBASEDIAEoAgAiBEHkpccAQQkgASgCBCIGKAIMIgURAAANBCAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQYgACABEIYGRQ0B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BwsgA0IANwGCASADQdzkATsBgAEMBgsgA0IANwGCASADQdzcATsBgAEMBQsgA0IANwGCASADQdy4ATsBgAEMBAsgA0IANwGCASADQdzEADsBgAEMAwsgA0IANwGCASADQdzOADsBgAEMAgsgAyAENgKAASAAIAMpAoABNwIAIABBCGogA0GIAWovAQA7AQAgBSAJKAIAIAgoAhARAgBFDQMMBQtBACEADAULQQAhAUECCyEEIAAgAykCgAE3AgAgAEEIaiADQYgBai8BADsBACABIAQgASAESxsiAkH/AXEhBCAIKAIQIQoDQCAFIAAgAWotAAAgChECAA0DIAQgAUEBaiIBRw0ACyADIAI6AGALIAYgB0cNAAtBACEADAELQQEhAAsgA0GQAWokACAAC+MJAQZ/IAFBA2wiBCAAKAKQBCICSwRAIAQgAmsiBSAAKAKIBCACa0sEQCAAQYgEaiACIAVBBEEEEKQFIAAoApAEIQILIAAoAowEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKQBAsgACgCnAQiAiABSQRAIAEgAmsiBSAAKAKUBCACa0sEQCAAQZQEaiACIAVBBEEEEKQFIAAoApwEIQILIAAoApgEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKcBAsgACgCqAQiAiAESQRAIAQgAmsiBSAAKAKgBCACa0sEQCAAQaAEaiACIAVBBEEEEKQFIAAoAqgEIQILIAAoAqQEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKoBAsgACgCtAQiAiAESQRAIAQgAmsiBCAAKAKsBCACa0sEQCAAQawEaiACIARBBEEEEKQFIAAoArQEIQILIAAoArAEIgUgAkECdGohAyAEQQJPBH8gBEECdEEEayIGBEAgA0EAIAb8CwALIAIgBGoiA0EBayECIAUgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgK0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AXI6AABBACEDDAQLIAIoAggiAyACKAIARgRAIAJB+JPGABCnBgsgAiADQQFqNgIIIAIoAgQgA2ogBjoAAEEAIQMMAwsgBiADIANByKXGABDqBwALIARBFDYCFCABIARBFGoQiwchAwwBCyAIIAMgA0HIpcYAEOoHAAsgBEEgaiQAIANFDQ4MDQsgAigCACADRgRAIAJB+JLGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQSI6AAAMCwsgAigCACADRgRAIAJBiJPGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQdwAOgAADAoLIAIoAgAgA0YEQCACQZiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEvOgAADAkLIAIoAgAgA0YEQCACQaiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEIOgAADAgLIAIoAgAgA0YEQCACQbiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEMOgAADAcLIAIoAgAgA0YEQCACQciTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEKOgAADAYLIAIoAgAgA0YEQCACQdiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakENOgAADAULIAIoAgAgA0YEQCACQeiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEJOgAADAQLIAMgBCAGQcicxgAQ6gcACyAHKAIMIQMMAwsgB0EENgIUIAAgASAHQRRqEPIGDAYLIAQgBkGYnMYAEIwHAAsMAQsLIABBAjYCACAAIAM2AgQMAgsgACADNgIIIAAgATYCBCAAQQA2AgAMAQsgACADNgIIIAAgATYCBCAAQQE2AgALIAdBIGokAAvFBwEEfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOBQECAw0EAAsgAC0ABEEDRw0MIAAoAggiAygCACEAIANBBGooAgAiASgCACICBEAgACACEQMACyABKAIEIgEEQCAAQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyABakkNDyACQQAgBCABQSdqSxsNDiAAEKICCyADQQRrKAIAIgBBeHEiAUEQQRQgAEEDcSIAG0kNDiAARSABQTRJcg0LDA0LAkAgAC0ABEEBaw4C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gICAgIAEhDcDECADQgE3AiQgA0EBNgIcIANBoPjHADYCGCADIANBEGo2AiAgA0EEaiADQRhqEOwDQYCAgIB4IQYgAygCCCEFIAMoAgQhBCADNQIMIQpBACEHQRELIQAgAyAKNwMgIAMgBTYCHCADIAg6ABkgAyAAOgAYIANBGGogASACENAFIQACQAJAAkACQAJAIAlFBEAgByAERXINBgwBCyAGBEAgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBmpJDQIgAUEAIAIgBkEnaksbDQMgBRCiAgsgBEUgB3INBQsgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBGpJDQIgAUEAIAIgBEEnaksbDQMgBRCiAgwEC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIANBMGokACAAC+YFAQN/IwBBIGsiAyQAIAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAQ4oAgEBAQEBAQEBAwUBAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQgBAQEBBwALIAFB3ABGDQULIAJBAXFFIAFB/wVNcg0HIAEQ5QRFDQcgA0EOakEAOgAAIANBADsBDCADIAFBFHYtANy2RToADyADIAFBBHZBD3EtANy2RToAEyADIAFBCHZBD3EtANy2RToAEiADIAFBDHZBD3EtANy2RToAESADIAFBEHZBD3EtANy2RToAECABQQFyZ0ECdiICIANBDGoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgAkECayICakHcADoAACADQRRqIgQgAUEPcS0A3LZFOgAAIAAgAykBDDcAACADQf0AOgAVDAgLIABCADcBAiAAQdzgADsBAAwKCyAAQgA3AQIgAEHc6AE7AQAMCQsgAEIANwECIABB3OQBOwEADAgLIABCADcBAiAAQdzcATsBAAwHCyAAQgA3AQIgAEHcuAE7AQAMBgsgAkGAAnFFDQEgAEIANwECIABB3M4AOwEADAULIAJB////B3FBgIAETw0DCyABEOECDQEgA0EYakEAOgAAIANBADsBFiADIAFBFHYtANy2RToAGSADIAFBBHZBD3EtANy2RToAHSADIAFBCHZBD3EtANy2RToA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IAMgAUEDdGoiAiAFNgIEIAIgCjgCACABDQBBACECDAELIAogClsEQANAIAMgAUEBayIGQQF2IgJBA3RqIgcqAgAiCyALWyAKIAtfRXFBfyAKIAtgGyIEQQBMIAUgB0EEaigCAE0gBBsEQCABIQIMAwsgAyABQQN0aiAHKQIANwIAIAIhASAGQQFLDQAMAgsACwNAAkAgAyABQQFrIgRBAXYiAkEDdGoiBioCACILIAtbIAogC19FcQ0AIAUgBkEEaigCAEsNACABIQIMAgsgAyABQQN0aiAGKQIANwIAIAIhASAEQQJPDQALCyADIAJBA3RqIgEgBTYCBCABIAo4AgALIAAgCTYCCCAAIA04AgQgAEEBNgIAC4kGAQV/IwBBIGsiAiQAQQEhBAJAAkACQAJAAkACQEEBIAAoAgAiA0H/////B2ogA0GAgICAeE0bQQFrDgQBAgMEAAsgASgCACIDQcSjxwBBAiABKAIEIgYoAgwiBREAAA0EIABBBGohAAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAURAAANBiAAIAEQrgINBiABKAIAIQMgASgCBCgCDCEFDAELIANB24HCAEECIAURAAANBSACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqEK4CDQUgAigCEEHZgcIAQQIgAigCFCgCDBEAAA0FCyADQd6OyABBASAFEQAAIQQMBAsgASgCACIDQcajxwBBDiABKAIEIgYoAgwiBREAAA0DAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0FIAAoAgQgACgCCCABELUCRQ0BDAULIANB24HCAEECIAURAAANBCACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACgCBCAAKAIIIAJBEGoQtQINBCACQdmBwgBBAhCvAw0ECyADQd6OyABBASAFEQAAIQQMAwsgASgCACIDQdSjxwBBEiABKAIEIgYoAgwiBREAAA0CAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0EIAAoAgQgACgCCCABELUCRQ0BDAQLIANB24HCAEECIAURAAANAyACQQE6AA8gAiAGNgIEIAIg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AkACQAJAAkACQAJAQRUgASgCACIDQYCAgIB4cyADQQBOG0EBaw4IAQIDBAUGBwgACyABIAJBH2pB6OfAABCVCCEBIABBAToAACAAIAE2AgQMCAsgAEEAOgAAIAAgAS0ABDoAAQwHCyABLwEEIgFB/wFNBEAgACABOgABIABBADoAAAwHCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwGCyABKAIEIgFB/wFNBEAgACABOgABIABBADoAAAwGCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwFCyABKQMIIgRC/wFYBEAgACAEPAABIABBADoAAAwFCyACQQE6AAggAiAENwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAEsAAQiAUEASARAIAJBAjoACCACIAGsNwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAAgAToAASAAQQA6AAAMAwsgAS8BBCIBQYACTwRAIAJBAjoACCACIAGtwzcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwDCyAAIAE6AAEgAEEAOgAADAILIAEoAgQiAUGAAk8EQCACQQI6AAggAiABrDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwCCyAAIAE6AAEgAEEAOgAADAELIAACfyABKQMIIgRCgAJaBEAgAkECOgAIIAIgBDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEQQEMAQsgACAEPAABQQALOgAACyACQSBqJAALxgQCBn8DfgJAIAEoAgBBAUYEQCABKQMQIgpQBEAMAgsgASgCGCIGKAIAIAYpAwgiCyAGKAIEIgWtIgwgCyAMVBunaiEHAkAgBUL/////DyALIAtC/////w9aG6drIgRBACAEIAVNGyIFIAogA60iDCAKIAxUG6ciBCAEIAVLGyIEQQFGBEAgAiAHLQAAOgAADAELIARFDQAgAiAHIAT8CgAACyABIAogBK0iCn03AxAgBiAKIAt8NwMIIARFBEBBACEEDAILQQEgBGshCCADQQFrIQYgASgCJCEJIAEoAiAhByABKAIoIQMDQAJAIAIgAi0AACADQQNy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KCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahDUASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2AjggAUEBNgIsIAFBqKPBADYCKCABQgQ3AjAgAUEoahCSByEDCyABQdAAaiQAIAML0wQCB38BfiMAQdAAayIBJAACQCAAEFwiAw0AIAAoAtwEIgJBgYCAgHhGIgRFBEACQAJAIAJBgICAgHhGBEBBACAAIAQbIQUgACgCCCIGQQZ0IQMgACgCBCIHQTxqIQICQANAIAIhBCADRQ0BIANBQGohAyACQUBrIQIgBC0AAEEBRw0ACyAEQTxrIgIoAjggAigCICIERw0DIAQgACgC7AJHDQMLIAZBBnQhAyAHQTxqIQIDQCACIQQgA0UNAiADQUBqIQMgAkFAayECIAQtAABBAkcNAAsgBEE8ayICKAI4IAIoAiBGDQEgAUECNgIsIAFBiKPBADYCKCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahCjASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2Ajgg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rgQCBX8EfiMAQSBrIgIkAEEEIQMgASgCBCIErSEIIAECfgJAIARC/////w8gASkDCCIHIAdC/////w9aG6drIgZBACAEIAZPG0EETwRAIAEoAgAgByAIIAcgCFQbp2ooAAAhBQwBC0GokMgAKQMAIglCCIghCiAJpyEDIAggCUL/AYNCBFINARoLIAdCBHwLIgk3AwgCQCADQf8BcUEERwRAIABBEmogAkEWai8BADsBACACIAOtQv8BgyAKQgiGhDcCDCACQQRqIAJBDWotAAAiAToAACAAIAIpAQ43AQogAiACKAAJIgM2AgAgAEEJaiABOgAAIAAgAzYABSAAQQA6AAQgAEEBNgIADAELIAJBCGpBAXIgBRCYBCACQRxqIAJBDWotAAA6AAAgAiACKAAJIgM2AgAgAiADNgIYAkACQCAEIAkgCCAIIAlWG6ciA2tBBE8EQCABKAIAIANqKAAAIQRBBCEDQgAhBwwBC0EAIQRBqJDIACkDACIKQgiIIQcgCqchAyAKQv8Bg0IEUg0BCyAJQgR8IQgLIAEgCDcDCCADQf8BcUEERwRAIAAgAzoACCAAQQA6AAQgAEEBNgIAIAAgB6ciATsACSAAIAdCGIg+AgwgAEELaiABQRB2OgAADAELIAAgAigCGDYAECAAQQA2AgAgACAErTcDCCAAQRRqIAJBHGotAAA6AAAgAEF/IAQgBEEBcWoiACAAIARJG603AxgLIAJBIGokAAvdBAIHfwF+IwBBEGsiAyQAAkAgAC8BDCICRQRAIAAoAgAgACgCBCABEKEDIQEMAQsgAyAB/QACAP0LAwACQAJ/IAApAggiCaciB0GAgIAIcUUEQCADKAIEDAELIAAoAgAgAygCACADKAIEIgEgACgCBCgCDBEAAA0BIAAgB0GAgID/eXFBsICAgAJyIgc2AgggA0IBNwMAIAIgAUH//wNxayIBQQAgASACTRshAkEACyEIAkAgAygCDCIFRQRADAELIAMoAgghAQNAAn8CQAJAAkACQCABLwEAQQFrDgIBAgALIAFBBGooAgAMAwsgAUECai8BACIEDQFBAQwCCyABQQhqKAIADAELIARB9v8XaiAEQZz/H2pxIARBmPg3aiAEQfCxH2pxc0ERdkEBagsgAUEMaiEBIAZqIQYgBUEBayIFDQALCwJAIAYgCGoiASACQf//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IAEoAiAiAiABKAIcIgFGDQELIAEgB2ohCCACIAFrIQMLIAAgAzYCBCAAIAg2AgAgBkEQaiQAC70DAgZ/AX4jAEHQAGsiAiQAIAJBIGogACAAKAIAKAIEEQEAIAIgAkEwaq1CgICAgLABhDcDKCACIAIpAyA3AjAgASgCACEFIAEoAgQhBiACQgE3AkRBASEDIAJBATYCPCACQaD4xwA2AjggAiACQShqNgJAAkAgBSAGIAJBOGoQwQMNACABLQAKQYABcUUEQEEAIQMMAQsgAkEYaiAAIAAoAgAoAgQRAQAgAkEQaiACKAIYIAIoAhwoAhgRAQAgAigCECIERQRAQQAhAwwBCyACQQhqIAQgAigCFCIHKAIYEQEAIAIoAgwhACACKAIIIQEgAiAHNgIsIAIgBDYCKCACQQE2AjwgAkGA8cEANgI4IAJCATcCRCACIAJBKGqtQoCAgICwAYQiCDcDMCACIAJBMGo2AkAgBSAGIAJBOGoQngkNAANAIAFFBEBBACEDDAILIAIgASAAKAIYEQEAIAIoAgQgAigCACACIAA2AiwgAiABNgIoIAJBATYCPCACQYDxwQA2AjggAkIBNwJEIAIgCDcDMCACIAJBMGo2AkAhASEAIAUgBiACQThqEJ4JRQ0ACwsgAkHQAGokACADC5QDACAAIARqIQACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQf8BcUEBaw4HBwABAgMEBQYLIABBfU0gAEECaiIBIANNcQ0HIAAgASADQbTZxwAQ6gcACyAAQX1NIABBAmoiASADTXENByAAIAEgA0HE2ccAEOoHAAsgAEF7TSAAQQRqIgEgA01xDQcgACABIANB1NnHABDqBwALIABBe00gAEEEaiIBIANNcQ0HIAAgASADQeTZxwAQ6gcACyAAQXtNIABBBGoiASADTXENByAAIAEgA0H02ccAEOoHAAsgAEF3TSAAQQhqIgEgA01xDQcgACABIANBhNrHABDqBwALIAAgA0kNCCAAIANBlNnHABCMBwALIAAgA0kNBiAAIANBpNnHABCMBwALIAAgAmouAACyDwsgACACai8AALMPCyAAIAJqKAAAsg8LIAAgAmooAACzDwsgACACaioAAA8LIAAgAmorAAC2DwsgACACai0AALNDAAB/Q5UPCyAAIAJqLAAA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AAs2AgAgBUEgaiQAC4QDAgJ/AXsCQAJAIARBBE8EQCACIARBBGtBA24iBSACIAVJGyIFQQNNDQEgAiAFQQFqIgIgAkEDcSICQQQgAhtrIgZrIQIgASAGaiAEIAZBfWxqIQQgAyAGQQNsaiEHA0AgAyAAIAH9XAAA/YkB/akBIgj9GwBBAnRqKAAANgAAIANBA2ogACAI/RsBQQJ0aigAADYAACADQQZqIAAgCP0bAkECdGooAAA2AAAgA0EJaiAAIAj9GwNBAnRqKAAANgAAIAFBBGohASADQQxqIQMgBkEEayIGDQALIQEgByEDDAELIAQNAQ8LA0AgAkUEQEEAQQBBpJrFABCMBwALIAMgACABLQAAQQJ0aigAADYAACADQQNqIQMgAkEBayECIAFBAWohASAEQQNrIgRBA0sNAAsLAkAgAgRAIARBA0cNASADIAAgAS0AAEECdGoiAC8AADsAACADQQJqIABBAmotAAA6AAAPC0EAQQBBhJrFABCMBwALQQBBAyAEQZSaxQAQ6gcAC4EDAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB/wFxQQFrDgcHAAECAwQFBgsgA0F9TSADQQJqIgAgAk1xDQcgAyAAIAJBtNjHABDqBwALIANBfU0gA0ECaiIAIAJNcQ0HIAMgACACQcTYxwAQ6gcACyADQXtNIANBBGoiACACTXENByADIAAgAkHU2McAEOoHAAsgA0F7TSADQQRqIgAgAk1xDQcgAyAAIAJB5NjHABDqBwALIANBe00gA0EEaiIAIAJNcQ0HIAMgACACQfTYxwAQ6gcACyADQXdNIANBCGoiACACTXENByADIAAgAkGE2ccAEOoHAAsgAiADTQ0HIAEgA2osAACyDwsgAiADSw0HIAMgAkGk2McAEIwHAAsgASADai4AALIPCyABIANqLwAAsw8LIAEgA2ooAACyDwsgASADaigAALMPCyABIANqKgAADwsgASADaisAALYPCyADIAJBlNjHABCMBwALIAEgA2otAACzC58DAgF+CH8CQAJAAkACQAJAIAAoAgQiBEUNACAAKAIMIggEQCAAKAIAIgJBCGohAyACKQMAQn+FQoCBgoSIkKDAgH+DIQEDQCABUARAA0AgAkGABGshAiADKQMAIANBCGohA0KAgYKEiJCgwIB/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jOrHABCMBwALQezpxwAQ/wcLAAucAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH/AXFBAWsOBwUAAQICAgMECyADQX1NIANBAmoiACACTXENBSADIAAgAkG02scAEOoHAAsgA0F9TSADQQJqIgAgAk1xDQUgAyAAIAJBxNrHABDqBwALIANBe00gA0EEaiIAIAJNcQ0FIAMgACACQdTaxwAQ6gcACyADQXdNIANBCGoiACACTXENBSADIAAgAkHk2scAEOoHAAsgAiADTQ0FIAEgA2osAAAPCyACIANLDQUgAyACQaTaxwAQjAcACyABIANqLgAADwsgASADai8AAA8LIAEgA2ooAAAPCyABIANqKwAA/AMPCyADIAJBlNrHABCMBwALIAEgA2otAAALzQIBBH8jAEEgayIEJAAgASgCDCEFAkAgAAJ/AkACQAJAIAEoAhQiAiABKAIQIgNJBEADQAJAIAIgBWotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgASACQQFqIgI2AhQgAiADRw0ACyADIQILIARBEGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAhQhASAEKAIQIQNBFBBxIgJFDQQgAkEDNgIADAELIARBCGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAgwhASAEKAIIIQNBFBBxIgJFDQMgAkEGNgIACyACIAM2AgwgAiABNgIQQQEMAQsgASACQQFqNgIUIARBGGogARCVAyAEKAIcIQIgBCgCGAs2AgAgACACNgIEIARBIGokAA8LAAu2AgEBfyMAQUBqIgMkACADIAI2AhAgAyABNgIMIAACfwJAAkACQAJAAkACQAJAIAJBA2sOBwAFAQIFBQMFCyABQZDQxwBBAxDbB0UEQCAAQQA6AAFBAAwHCyABQaD3xwBBAxDbBw0DIABBAToAAUEADAYLIAFBo/fHAEEFENsHDQMgAEECOgABQQAMBQsgAUGo98cAQQYQ2wcNAiAAQQM6AAFBAAwECyABQa73xwBBCRDbBw0BIABBBDoAAUEADAMLIAFBt/fHAEEDENsHRQ0BCyADQQE2AiQgA0HQ98cANgIgIANCATcCLCADIANBDGqtQoCAgIAghDcDOCADIANBOGo2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AEGUgICAeEYEQAJAIAACfyADKAIMIgQEQCACIAMoAggQqAMgAigCACIBQYCAgIB4Rw0CIAIoAgQMAQtBACACQQ9qQYTiwAAQ2wYLNgIEIABBgICAgHg2AgAMBAsgAigCBCEDIARBAUYNAiACQQE2AgAgBEEBa0H/////AHFBAWogAkHolcEAENsGIQQgAEGAgICAeDYCACAAIAQ2AgQgAUUNAyADIAFBARCiBwwDCyADIAJBD2pBhOLAABCVCCEBIABBgICAgHg2AgAgACABNgIEDAILQcvawABBLEH42sAAEKsHAAsgACACKAIINgIIIAAgAzYCBCAAIAE2AgALIAJBEGokAAupAgEFfyMAQSBrIgIkAEEBIQMCQCAAKAIAIgQoAgBBAUYEQCABKAIAIgBBw5jIAEEEIAEoAgQiBigCDCIFEQAADQEgBEEIaiEEAkAgAS0ACkGAAXFFBEAgAEG7s8UAQQEgBREAAA0DIAQgARDEBQ0DIAEoAgAhACABKAIEKAIMIQUMAQsgAEHbgcIAQQIgBREAAA0CIAJBAToADyACIAY2AgQgAiAANgIAIAJB4IHCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECAEIAJBEGoQxAUNAiACKAIQQdmBwgBBAiACKAIUKAIMEQAADQILIABB3o7IAEEBIAURAAAhAwwBCyABKAIAQb+YyABBBCABKAIEKAIMEQAAIQMLIAJBIGokACADC5ECAQN/IwBBQGoiASQAAkAgABA9IgINACAALQClU0UEQCABQQA2AjggAUEBNgIsIAFB5KPBADYCKCABQgQ3AjAgAUEoahCSByECDAELIAAoAmRBgICAgHhHBEBBACECIAAtAJgBIgNBCUYNASADQQVGBEAgACgCkAFFDQILIAFBAjYCLCABQZykwQA2AiggAUICNwI0IAEgAEGQAWqtQoCAgIAQhDcDICABIABBmAFqrUKAgICAsASENwMYIAEgAUEYajYCMCABQQxqIgAgAUEoahCxBiAAEI4HIQIMAQsgAUEANgI4IAFBATYCLCABQcCkwQA2AiggAUIENwIwIAFBKGoQkgchAgsgAUFAayQAIAILkgIBA38jAEFAaiIBJAACQCAAED4iAg0AIAAtAMVTRQRAIAFBADYCOCABQQE2AiwgAUHko8EANgIoIAFCBDcC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BEAgACgCtAIgA2ogASAC/AoAAAsgACACIANqNgK4AiAAELgBC1gBAX8gACgC2AIgACgC4AIiA2sgAkkEQCAAQdgCaiADIAJBAUEBEKQFIAAoAuACIQMLIAIEQCAAKALcAiADaiABIAL8CgAACyAAIAIgA2o2AuACIAAQsQELWAEBfyAAKAL4AiAAKAKAAyIDayACSQRAIABB+AJqIAMgAkEBQQEQpAUgACgCgAMhAwsgAgRAIAAoAvwCIANqIAEgAvwKAAALIAAgAiADajYCgAMgABCfAQtXAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEASAAEEELVwEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAEgABBAC1IBAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaCAAED4LUQEBfyAAKAJAIAAoAkgiA2sgAkkEQCAAQUBrIAMgAkEBQQEQpAUgACgCSCEDCyACBEAgACgCRCADaiABIAL8CgAACyAAIAIgA2o2AkggABA9C1ABA38CQAJAIAAEQCAAQQhrIgEgASgCACICQQFqIgM2AgAgA0UNASAAKAIAQf////8HTw0CIAAoAhggASACNgIAQQBHDwsQjgoLAAsQkAoAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcDAxAAgAEEBakHQwMQAIABBAmpB4MDEACACQQxqQfDAxAAQ7gUgAkEQaiQAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcioxwAgAEEBakHYqMcAIABBAmpB6KjHACACQQxqQfioxwAQ7gUgAkEQaiQAC08BAX8gACgCQCAAKAJIIgNrIAJJBEAgAEFAayADIAJBAUEBEKQFIAAoAkghAwsgAgRAIAAoAkQgA2ogASAC/AoAAAsgACACIANqNgJIQQALVQEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAFBAAtVAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEAUEAC1ABAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaEEAC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBqJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFB4J7BADYCACABIAIpAgg3AgQgASAANgIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBxJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC00AIwBBEGsiACQAIAEgAmwiAQR/IAFBwf///wdPBEBB2ObIAEErIABBD2pBtIPJAEHUg8kAEOAGAAtBwAAgARDBBAVBAAsgAEEQaiQAC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFBtLTHADYCACABIAIpAgg3AgQgASAAOgAcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFB7LTHADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1cBAn8jAEEgayIBJAACQCAAEJ8BIgINAEEAIQIgAC0AnAMNACABQQA2AhggAUEBNgIMIAFBxKPBADYCCCABQgQ3AhAgAUEIahCSByECCyABQSBqJAAgAgtXAQJ/IwBBIGsiASQAAkAgABCxASICDQBBACECIAAtAPwCDQAgAUEANgIYIAFBATYCDCABQcSjwQA2AgggAUIENwIQIAFBCGoQ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QeAAaiQADAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAmKAIAICYoAgQgJigCCCAmQRBqJAALTQEBfwJ/AkAgAigCBEUNACACKAIIIgNFDQAgAigCACADQQEgARC7AgwBCyABEHELIQIgACABNgIIIAAgAkEBIAIbNgIEIAAgAkU2AgALSwIBfwJ+IwBBEGsiASQAIAEgADUCiAEgADUChAF+QgRCAyAALQCTARsQ3QYgASkDCCECIAEpAwAhAyABQRBqJABCfyADIAJCAFIbC08AAkACQCACKAIQQQFGBEAgASgChAEgAigCFEsNAQsgAigCGEEBRw0BIAEoAogBIAIoAhxNDQELIABCAjcDCCAAQQM2AgAPCyAAQQY2AgALUAEBfyMAQRBrIgIkACACQQhqIAEgASgCACgCBBEBACACIAIoAgggAigCDCgCGBEBACACKAIEIQEgACACKAIANgIAIAAgATYCBCACQRBqJAALSAEBfyAAKAIAIAAoAggiA2sgAkkEQCAAIAMgAhD3BSAAKAIIIQMLIAIEQCAAKAIEIANqIAEgAvwKAAALIAAgAiADajYCCEEAC0gBAX8gACgCACAAKAIIIgNrIAJJBEAgACADIAIQ+AUgACgCCCEDCyACBEAgACgCBCADaiABIAL8CgAACyAAIAIgA2o2AghBAAtIAQF/IAAoAgAgACgCCCIDayACSQRAIAAgAyACEO8FIAAoAgghAwsgAgRAIAAoAgQgA2ogASAC/AoAAAsgACACIANqNgIIQQALRQEBfwJAIAFBAE4EfyABRQRAQQEhAkEAIQEMAgsgARBxIgINAUEBBSACCyABQcDowQAQkwkACyAAIAI2AgQgACABNgIAC08BAn8gACgCBCECIAAoAgAhAwJAIAAoAggiAC0AAEUNACADQbyLwwBBBCACKAIMEQAARQ0AQQEPCyAAIAFBCkY6AAAgAyABIAIoAhARAgALSgECfyAAIAAoAgQiAyACazYCBCAAIAAoAgAgAiADS3IiBDYCAEEBIQMgBAR/IAMFIAAoAggiACgCACABIAIgACgCBCgCDBEAAAsLSAEBfwJAIAFB4QBrIgFB/wFxQRlLBEBBACEBDAELIAFBAnRB/AdxIgIoAtSQSSEBIAIoAuyPSSECCyAAIAI2AgQgACABNgIAC0kCAn8BfSABKAIIIgNBgICAAXEhAiAAKgIAIQQgA0GAgICAAXFFBEAgASAEIAJBAEdBABD3Ag8LIAEgBCACQQBHIAEvAQ4QvQILRwECfyAALQANIgJBgAFNBEAgASgCACAAIAAtAAwiA2ogAiADayABKAIEKAIMEQAADwsgASgCACAAKAIAIAEoAgQoAhARAgALyQIAAkAgACACTQRAIAAgAU0gASACS3INASMAQTBrIgIkACACIAE2AgQgAiAANgIAIAJBAjYCDCACQfydwgA2AgggAkICNwIUIAIgAkEEaq1CgICAgBCENwMoIAIgAq1CgICAgBCENwMgIAIgAkEgajYCECACQQhqIAMQjQgACyMAQTBrIgEkACABIAI2AgQgASAANgIAIAFBAjYCDCABQaidwgA2AgggAUICNwIUIAEgAUEEaq1CgICAgBCENwMoIAEgAa1CgICAgBCENwMgIAEgAUEgajYCECABQQhqIAMQjQgACyMAQTBrIgAkACAAIAI2AgQgACABNgIAIABBAjYCDCAAQcidwgA2AgggAEICNwIUIAAgAEEEaq1CgICAgBCENwMoIAAgAK1CgICAgBCENwMgIAAgAEEgajYCECAAQQhqIAMQjQgAC0IBAX8jAEEgayIDJAAgA0EANgIQIANBATYCBCADQgQ3AgggAyABNgIcIAMgADYCGCADIANBGGo2AgAgAyACEI0IAAuJDQMHfwV+AXwgASgCCCIDQYCAgAFxIQIgACsDACEOIANBgICAgAFxRQRAIAJBAEchA0EAIQIjAEGAAWsiACQAIA69IQkCf0EDIA6ZRAAAAAAAAPB/YQ0AGkECIAlCgICAgICAgPj/AIMiCkKAgICAgICA+P8AUQ0AGiAJQv////////8HgyINQoCAgICAgIAIhCAJQgGGQv7///////8PgyAJQjSIp0H/D3EiAhsiC0IBgyEMIApQBEBBBCANUA0BGiACQbMIayECQgEhCiAMUAwBC0KAgICAgICAICALQgGGIAtCgICAgICAgAhRIgUbIQtCAkIBIAUbIQpBy3dBzHcgBRsgAmohAiAMUAshBSAAIAI7AXggACAKNwNwIABCATcDaCAAIAs3A2AgACAFOgB6An8CQAJAAkACQCAFQf8BcSICQQFNBEBB6rPFAEEBIAlCAFMiAhshBUHqs8UAQciBwgAg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AnQiACgCwKFJIAAoAqShSSABKAIEKAIMEQAAC+0DAQp/IwBBEGsiAyQAIwBBoANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIEIAQoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAUEIaiAAQQRqQQAQdgJ/IAEoAggiCUECRgRAIAEoAgwhAiABQQA2ApgDIAFCgICAgBA3ApADIAFBnJPBADYC0AEgAUKggICADjcC1AEgASABQZADajYCzAEgAiABQcwBahCvBA0FIAEoApADIQUgASgClAMiCCABKAKYAxDsCCEHIAUEQCAIQQRrKAIAIgZBeHEiCkEEQQggBkEDcSIGGyAFakkNByAGQQAgCiAFQSdqSxsNCCAIEKICCyACIAIoAgAoAgARAwBBAAwBCyABQcwBaiICIAFBCGpBxAH8CgAAIAIQ0QELIQIgACAAKAIAQQFrNgIAIAQgBCgCAEEBayIANgIAIABFBEAgBBDkBgsgAyAHNgIEIAMgAjYCACADIAlBAkY2AgggAUGgA2okAAwGCxCOCgsACxCQCgALQaCexgBBNyABQZ8DakG0k8EAQdiexgAQ4AYAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgAygCACADKAIEIAMoAgggA0EQaiQAC5oFAQp/IwBBEGsiAyQAIwBBsANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIFIAUoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAC0AXCICQQJHBEAgAUEgaiAAQdgAaigCADYCACABQRhqIABB0ABqKQIANwMAIAFBBmogAEHfAGotAAA6AAAgASAA/QACQP0LAwggASAALwBdOwEECyABQfgBaiABQSBqKAIANgIAIAFB8AFqIAFBGGopAwA3AwAgAUH/AWogAUEGai0AADoAACABIAH9AAMI/QsD4AEgASACOgD8ASABIAEvAQQ7AP0BIAFBJGogAEEEakEAIAFB4AFqIgQQcgJ/IAEoAiQiCUECRgRAIAEoAighAiABQQA2AqgDIAFCgICAgBA3AqADIAFBnJPBADYC5AEgAUKggICADjcC6AEgASABQaADajYC4AEgAiAEEK8EDQUgASgCoAMhBCAB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CxCQCgALLAAgASgCACAAKAIALQAAaEECdCIAKAL0h0kgACgC4IdJIAEoAgQoAgwRAAALLAAgASgCACAAKAIALQAAaEECdCIAKAKEjkkgACgC8I1JIAEoAgQoAgwRAAALLgAgAEEcakEAIAEpAgBC2v2W/+no6PrBAIUgASkCCELW+4aRyMDiv/4AhYRQGwssACAAQRxqQQAgASkCAELtwsSbx9P/rT+FIAEpAghC/J7N1v6Dwrh+hYRQGwsuACAAQRxqQQAgASkCAELtuq22zYXU9eMAhSABKQIIQviCmb2V7sbFuX+FhFAbCywAIABBHGpBACABKQIAQvep0+7yobOVe4UgASkCCEKWuaPa9sSH1CeFhFAbCysAIAEoAgAgACgCAC0AAEECdCIAKALohkkgACgCqIZJIAEoAgQoAgwRAAALKQAgASgCACAALQAAaEECdCIAKAKciEkgACgCiIhJIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAqiJSSAAKALoiEkgASgCBCgCDBEAAAslACAARQRAQa35xABBMhCPCgALIAAgAiADIAQgBSABKAIQEQ8ACysAIAEoAgAgACgCAC0AAEECdCIAKALUjUkgACgCuI1JIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAtiOSSAAKAKYjkkgASgCBCgCDBEAAAsrACABKAIAIAAoAgAtAABBAnQiACgC0JFJIAAoAryRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQp6ptofpq8f75ACFIAEpAghChJXY5rmb/qdphYRQGwsrACABKAIAIAAoAgAtAABBAnQiACgC+JFJIAAoAuSRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQvXXvMnIzNazOoUgASkCCEL+28ub8+W5xvUAhYRQGwsuACAAQSBqQQAgASkCAELhypSvjYKC2fIAhSABKQIIQqbKhrK+ypOwu3+FhFAbCy0AIABBHGpBACABKQIAQpLXooDhkqzi9QCFIAEpAghClJ2A4Jq0sLALhYRQGwslACAAQYiWwQA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAK87EEgACgClOxBIAEoAgQoAgwRAAALKAAgASgCACAALQAAQQJ0IgAoAtDtQSAAKAKc7UEgASgCBCgCDBEAAAshACAAQcDOxAA2AgQgACABQQRqQQAgAS0AAEEkRhs2AgALKAAgASgCACAALQAAQQJ0IgAoAsyISSAAKAKwiEkgASgCBCgCDBEAAAsoACABKAIAIAAtAABBAnQiACgCsIpJIAAoAuiJSSABKAIEKAIMEQAACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQsACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWUACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWcACygAIAEoAgAgAC0AAEECdCIAKALwmEkgACgCqJhJIAEoAgQoAgwRAAALIgAgASgCKEECRwRAIAAgASkC3AI3AwAPC0GsmMcAEN0JAAslACAAQailxwA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAKEo0kgACgC3KFJIAEoAgQoAgwRAAALJwAgACgCAC0AAEUEQCABQfKzxQBBBRCXAw8LIAFB97PFAEEEEJcDCyQAIAAtAABFBEAgAUHys8UAQQUQlwMPCyABQfezxQBBBBCXAwshACAARQRAQa35xABBMhCPCgALIAAgAiADIAEoAhARBQALIQAgAEUEQEGt+cQAQTIQjwoACyAAIAIgAyABKAIQEQAACyEAIAEoAgAgAC0AAEECdCgCiOxBQQEgASgCBCgCDBEAAAsiACABIAAtAABBAnQiACgCiIZJIAAoAuiFSSACKAIMEQAACx4AIABBwM7EADYCBCAAQQAgAUEEaiABLQAAGzYCAAscACABIAAoAgAiAEEEaigCACAAQQhqKAIAEJcDCx8AIABFBEBBrfnEAEEyEI8KAAsgACACIAEoAhARAgALthQBEn8Q2gQiCyABJgECfyAAIQ0Q2gQiEiACJgEgCyETIwBBQGoiByQAIAsQuAohAEHUtMkAKAIARQRAAkBBkLXJACgCACELQYy1yQAoAgAhBEGMtckAQoCAgIDAADcCAEGEtckAKAIAIQhBhLXJAEIE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ACgCACEHIA1BACADEOEIIgAQuAohCSAEIAM2AhggBCAJNgIMIAMgCUcNASAAIAcgAxDgCSAAQYQISQ0CIAAQmwcMAgtBACADIABB3OvAABDqBwALDAELIAhBhAhPBEAgCBCbBwtBrLTJAEGstMkAKAIAQQFqNgIAIA1BhAhPBEAgDRCbBwsgDkGECE8EQCAOEJsHCyAEQUBrJAAgAwwBCyAEQQA2AihBACAEQQxqIARBGGogBEEoakHg+cQAEPUHAAsLHAAgAEEEahDqAiAAKAIkIgAgACgCACgCABEDAAscACAAKAIAIgAoAgAgASAAQQRqKAIAKAIQEQIACxwAIAAoAgAiACgCACABIABBBGooAgAoAgwRAgALFAAgACAAIAEgACABXRsgASABXBsLFAAgASABIAAgACABXRsgACAAXBsLGwEBbyAAJQEgASACEAAhAxDaBCIAIAMmASAACxsBAW8gACUBIAElARAJIQIQ2gQiACACJgEgAAscAQFvIAAlASABJQEgARCbByACJQEgAhCbBxALCx8AQYi7yQAtAABFBEBBiLvJAEEBOgAACyAAQQE2AgALHQAgASAALQAAQQJ0IgAoAqSESSAAKAKQhEkQlwMLHAAgASgCACAAKAIAIAAoAgQgASgCBCgCDBEAAAsZACABIAAoAgAiACgCACAAQQRqKAIAEJcDCxkBAW8gACUBIAEQDCECENoEIgAgAiYBIAALFwAgACgCACABIAAoAgRBDGooAgARAgALFQAgACgCACIAQYQITwRAIAAQmwcLCxcBAW8gACABEA8hAhDaBCIAIAImASAACxcBAW8gACABECwhAhDaBCIAIAImASAACxYAIAEgACgCACIAKAIAIAAoAgQQlwMLGQAgASgCAEGQl8cAQRMgASgCBCgCDBEAAAsZACABKAIAQdmXxwBBFyABKAIEKAIMEQAACxkAIAEoAgBB6ZLGAEEIIAEoAgQoAgwRAAALGQAgASgCAEGjl8cAQRAgASgCBCgCDBEAAAsZACABKAIAQaTlwABBFCABKAIEKAIMEQAACxkAIAEoAgBB5ZLGAEEEIAEoAgQoAgwRAAALGQAgASgCAEGilscAQQwgASgCBCgCDBEAAAsZACABKAIAQYWQxgBBAyABKAIEKAIMEQAACxkAIAEoAgBB8JfHAEEUIAEoAgQoAgwR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AgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOQGCwwDCxCOCgsACxCQCgALC4gBAQN/ENoEIgMgASYBAkACQAJAIAAEQCAAQQhrIgIgAigCAEEBaiIENgIAIARFDQEgACgCAA0CIABBfzYCACAAQQhqKAIAIABBDGooAgAgAxCtAyAAIAAoAgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOMGCwwDCxCOCgsACxCQCgALCxEAIAEgACgCACAAKAIEEJcDCxMAIABBKDYCBCAAQZifxwA2AgALEQAgASAAKAIEIAAoAggQlwMLEwAgAEHomsEANgIEIAAgATYCAAsTACAAQaSbwQA2AgQgACABNgIACxMAIABB4JvBADYCBCAAIAE2AgALEwAgAEGMnMEANgIEIAAgATYCAAsTACAAQcicwQA2AgQgACABNgIACxMAIABBhJ3BADYCBCAAIAE2AgALEwAgAEHAncEANgIEIAAgATYCAAsTACAAQfydwQA2AgQgACABNgIACxEAIAAoAgQgACgCCCABELUCCxEAIAEoAgAgASgCBCAAEMEDCxwAIABBmLvP7AM2AgggAELQ5+byk+vFmz83AgALEQAgACgCACAAKAIEIAEQtQILEwAgAEHMs8cANgIEIAAgATYCAAsTACAAQdyxxwA2AgQgACABNgIACxMAIABBiLTHADYCBCAAIAE2AgALEwAgAEHUsscANgIEIAAgATYCAAsTACAAQZiyxwA2AgQgACABNgIACxMAIABBkLPHADYCBCAAIAE2AgALEwAgAEG8jMgANgIEIAAgATYCAAsWAEG4u8kAIAA2AgBBtLvJAEEBOgAACxEBAX8Q2gQiASAAJQEmASABCw4AIAAlASABJQFBABAWCw8AQayewgBBKyAAEOsHAAtpAQF/IwBBMGsiAyQAIAMgADYCBCADIAE2AgAgA0EDNgIMIANB+JvCADYCCCADQgI3AhQgAyADQQRqrUKAgICAEIQ3AyggAyADrUKAgICAEIQ3AyAgAyADQSBqNgIQIANBCGogAhCNCAALEgAgACABLQDoBC0A+J1JOgAACwwAIAAlASABIAIQAgsMACAAIAEgAiUBEAMLDQAgACUBIAElARAIGgsMACAAIAEgAiUBEBkLEQAgAEGohsEA/QACAP0LAgALEQAgAEG4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IAEgAEGAgIB8IApBAWp1IAdxvpMiAJK8BSAJC0GAgH5xviICQwByMT+UIgUgAkOMvr81lCABIAIgAJOTQxhyMT+UkiICkiIAIAAgACAAIACUIgEgASABIAEgAUNMuzEzlEMO6t21kpRDVbOKOJKUQ2ELNruSlEOrqio+kpSTIgGUIAFDAAAAwJKVIAIgACAFk5MiASAAIAGUkpOTQwAAgD+SIgC8IAhBF3RqIglBgICABE4EQCAJvgwBCyAAIAgQsAYLlCECCyACDAMLIAVDYEKiDZRDYEKiDZQMAgsgBUNgQqINlENgQqINlAwBCyAFQ8rySXGUQ8rySXGUCwsIACAAJQEQAQsIACAAJQEQCgsIACAAJQEQFQsIACAAJQEQFwsIACAAJQEQGwsIACAALQDoBAsHABAqEIUICwQAQQALBABBAQsCAAsLtK4JiAEAQYCAwAAL8WFpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdAAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvc3B6LnJzAGxpYnJhcnkvY29yZS9zcmMvc3RyL2xvc3N5LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9wbHkucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL2xlZ2FjeS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL2l0ZXIvYWRhcHRlcnMvc3RlcF9ieS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvdHdvd2F5LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvaW5mbGF0ZS93aW5kb3cucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy95dXYucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZmx0MmRlYy9zdHJhdGVneS9ncmlzdS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc2hhcmVkL3NtYWxsc29ydC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL3F1aWNrc29ydC5ycwBzcGFyay13b3JrZXItcnMvc3JjL3NvcnQucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvYm94ZWQvY29udmVydC5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9mbXQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9mbXQucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZGl5X2Zsb2F0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy90c3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2tzcGxhdC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvYW50aXNwbGF0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9nc3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2NzcGxhdC5ycwBzcGFyay13b3JrZXItcnMvc3JjL2V4dF9zcGxhdHMucnMAc3Bhcmstd29ya2VyLXJzL3NyYy9wYWNrZWRfc3BsYXRzLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvZmRlZmxhdGUtMC4zLjcvc3JjL2RlY29tcHJlc3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzcy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2NvcmUtMS4wLjIyOC9zcmMvZGUvaW1wbHMucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL3NvZ3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlL2luZnRyZWVzLnJzAGxpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9tdXRleC9ub190aHJlYWRzLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9vbmNlL25vX3RocmVhZHMucnMAbGlicmFyeS9hbGxvYy9zcmMvc3RyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaXRlci90cmFpdHMvaXRlcmF0b3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9lcnJvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZXJyb3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2xvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9nZW5lcmljL3BhY2tlZHBhaXIucnMAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9tZW1jaHIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb29wX2ZpbHRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2luZmxhdGUvd3JpdGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaXRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2luZGV4bWFwLTIuMTMuMC9zcmMvaW5uZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9vdXRwdXRfYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci91bmZpbHRlcmluZ19idWZmZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9pbWFnZXMvYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci9yZWFkX2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy92cDhfYXJpdGhtZXRpY19kZWNvZGVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvY29kZWNzL3dlYnAvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL3JlYWQvbWFnaWNfZmluZGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvY21wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9leHRyYV9maWVsZHMvZXh0ZW5kZWRfdGltZXN0YW1wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvbWV0YWRhdGEvY2ljcC5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vc3RkaW8ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2NvbW1vbi5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL29wcy9mdW5jdGlvbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL3N0cmF0ZWd5L2RyYWdvbi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ZkZWZsYXRlLTAuMy43L3NyYy9odWZmbWFuLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvaHVmZm1hbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9iaWdudW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzc190cmFuc2Zvcm0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3RyYW5zZm9ybS5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vYnVmZmVyZWQvbGluZXdyaXRlcnNoaW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3N0cmVhbS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvdGhyZWFkL2xvY2FsLnJzAGxpYnJhcnkvc3RkL3NyYy9zeW5jL2xhenlfbG9jay5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3luYy9yZWVudHJhbnRfbG9jay5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvc3luYy9vbmNlX2xvY2sucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2RlY3MvcG5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwBsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaW8vYm9ycm93ZWRfYnVmLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTcvc3JjL2V4dGVybnJlZi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvdHJhbnNmb3JtL3BhbGV0dGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvYWxsb2NhdGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9jb3JlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvaW8vaW1hZ2VfcmVhZGVyX3R5cGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9zdGFibGUucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3ByaW50YWJsZS5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvY2h1bmtfdHJlZS5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xvZF90cmVlLnJzAHNwYXJrLWxpYi9zcmMvc3BsYXRfZW5jb2RlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtMS4wLjIyOC9zcmMvcHJpdmF0ZS9kZS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZGUucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL3N5bmMvcG9pc29uL29uY2UucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvc2xpY2UucnMAbGlicmFyeS9zdGQvc3JjL2JhY2t0cmFjZS5ycwAvcnVzdC9kZXBzL2hhc2hicm93bi0wLjE1LjUvc3JjL3Jhdy9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9oYXNoYnJvd24tMC4xNi4xL3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvcGFja2VkcGFpci9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL21vZC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy9iaW5hcnlfaGVhcC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL2lvL21vZC5ycwBsaWJyYXJ5L3N0ZC9zcmMvLi4vLi4vYmFja3RyYWNlL3NyYy9zeW1ib2xpemUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWluaXpfb3hpZGUtMC44Ljkvc3JjL2luZmxhdGUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAbGlicmFyeS9zdGQvc3JjL3RocmVhZC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvdmVjL21vZC5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL21vZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvdGlueV9sb2QucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2JoYXR0X2xvZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2NyYzMyL2JyYWlkLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3ZlYy9zcGVjX2Zyb21faXRlcl9uZXN0ZWQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9leHRlbmRlZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvcmFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfanNvbi0xLjAuMTQ1L3NyYy9yZWFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9yZWFkLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjEwL3NyYy9kbG1hbGxvYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvc3BlYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvemxpYi5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NvbnNvbGVfZXJyb3JfcGFuaWNfaG9vay0wLjEuNy9zcmMvbGliLnJzAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI2L3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZS13YXNtLWJpbmRnZW4tMC42LjUvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2pzLXN5cy0wLjMuOTQvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NtYWxsdmVjLTEuMTUuMS9zcmMvbGliLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvdGV4dF9tZXRhZGF0YS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3VuaWNvZGUvdW5pY29kZV9kYXRhLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvdnA4LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvYWRhbTcucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL2NwNDM3LnJzAHNwYXJrLWxpYi9zcmMvc3ltbWF0My5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvY3JjMzIucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL3YwLnJzAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGludmFsaWQgd2luZG93IHNpemUAcmVwZWF0ZWQgY2FsbCB3aXRoIGJhZCBzdGF0ZQBpbnZhbGlkIGJsb2NrIHR5cGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABJSSoA7AUQACQAAABEAwAADQAAAOwFEAAkAAAARQMAAA0AAADsBRAAJAAAAEYDAAANAAAA7AUQACQAAABDAwAAQQAAAOwFEAAkAAAATwMAAA0AAADsBRAAJAAAAE8DAAA+AAAA7AUQACQAAAC4AwAAIQAAAOwFEAAkAAAAuAMAAA0AAADsBRAAJAAAALYDAAAlAAAA7AUQACQAAADGAwAAIQAAAOwFEAAkAAAAxgMAAA0AAADsBRAAJAAAAMQDAAAlAAAA7AUQACQAAABZAwAADQAAAOwFEAAkAAAAWgMAAA0AAADsBRAAJAAAAFsDAAANAAAA7AUQACQAAABYAwAAOwAAAOwFEAAkAAAAhAMAACUAAADsBRAAJAAAAIQDAAA2AAAA7AUQACQAAACGAwAAHQAAAOwFEAAkAAAAgAMAACUAAADsBRAAJAAAAJYDAAAlAAAA7AUQACQAAACWAwAANgAAAOwFEAAkAAAAlgMAAEsAAADsBRAAJAAAAJYDAABgAAAA7AUQACQAAACYAwAAHgAAAOwFEAAkAAAAkgMAACUAAADsBRAAJAAAAKgDAAAlAAAA7AUQACQAAACoAwAANgAAAOwFEAAkAAAAqAMAAEsAAADsBRAAJAAAAKgDAABgAAAA7AUQACQAAACqAwAAHgAAAOwFEAAkAAAApAMAACUAAADsBRAAJAAAAHEDAAANAAAA7AUQACQAAAByAwAADQAAAOwFEAAkAAAAcwMAAA0AAADsBRAAJAAAAHQDAAANAAAA7AUQACQAAABwAwAAPQAAAOwFEAAkAAAAZQMAAA0AAADsBRAAJAAAAGYDAAANAAAA7AUQACQAAABnAwAADQAAAOwFEAAkAAAAZAMAAD8AAACmAxAAUgAAAFIAAAATAAAADQUQAEAAAAB2AAAAIAAAAA0FEABAAAAAdQAAACIAAAANBRAAQAAAAHQAAAAeAAAADQUQAEAAAABzAAAAJgAAAA0FEABAAAAAcgAAACQAAAANBRAAQAAAAFQAAAAXAAAADQUQAEAAAABVAAAAFwAAAA0FEABAAAAAVgAAABcAAAANBRAAQAAAAFgAAAAWAAAADQUQAEAAAABZAAAAFgAAAA0FEABAAAAAWgAAABYAAAANBRAAQAAAAFwAAAAqAAAADQUQAEAAAABcAAAAFAAAAA0FEABAAAAAXQAAACoAAAANBRAAQAAAAF0AAAAUAAAADQUQAEAAAABeAAAAKgAAAA0FEABAAAAAXgAAABQAAAANBRAAQAAAAGAAAAApAAAADQUQAEAAAABgAAAAGAAAAA0FEABAAAAAYgAAACYAAAANBRAAQAAAAGMAAAAmAAAADQUQAEAAAABkAAAAJgAAAA0FEABAAAAAZQAAACYAAAANBRAAQAAAAGgAAAAVAAAADQUQAEAAAABpAAAAFQAAAA0FEABAAAAAagAAABUAAAANBRAAQAAAAGsAAAAVAAAASW52YWxpZCAuc3BsYXQgZmlsZSBzaXpl7CwQABgAAABhdHRlbXB0ZWQgdG8gdGFrZSBvd25lcnNoaXAgb2YgUnVzdCB2YWx1ZSB3aGlsZSBpdCB3YXMgYm9ycm93ZWRNYXBBY2Nlc3M6Om5leHRfdmFsdWUgY2FsbGVkIGJlZm9yZSBuZXh0X2tleQD6GRAAYwAAAGYKAAAfAAAA7AUQACQAAADuAQAAOAAAAOwFEAAkAAAA7gEAAFkAAADsBRAAJAAAAPcBAABHAAAA7AUQACQAAAD3AQAAOQAAAOwFEAAkAAAAZAIAAC4AAADsBRAAJAAAAGQCAAAfAAAA7AUQACQAAABlAgAAHwAAAOwFEAAkAAAAWQIAACoAAADsBRAAJAAAAIQCAAA2AAAA7AUQACQAAACEAgAAIwAAAOwFEAAkAAAAeAIAACoAAADsBRAAJAAAAKQCAAA2AAAA7AUQACQAAACkAgAAIwAAAOwFEAAkAAAAmAIAACoAAADsBRAAJAAAANQCAAAlAAAA7AUQACQAAADYAgAAPAAAAOwFEAAkAAAA2AIAAB0AAADsBRAAJAAAANICAAAyAAAA7AUQACQAAADDAgAAIQAAAOwFEAAkAAAAxwIAADgAAADsBRAAJAAAAMcCAAAZAAAA7AUQACQAAADBAgAALgAAAOwFEAAkAAAAtAIAAB0AAADsBRAAJAAAALcCAAAsAAAA7AUQACQAAAC3AgAAEQAAAOwFEAAkAAAAuAIAADAAAADsBRAAJAAAALICAAAqAAAA7AUQACQAAADjAgAAJgAAAOwFEAAkAAAA5wIAACAAAADsBRAAJAAAAOcCAAATAAAA7AUQACQAAADtAgAAJgAAAOwFEAAkAAAA8QIAACAAAADsBRAAJAAAAPECAAATAAAA7AUQACQAAAB/AQAANgAAAOwFEAAkAAAAgAEAADYAAADsBRAAJAAAAI0BAAAzAAAA7AUQACQAAACOAQAAMwAAAOwFEAAkAAAAigEAAEQAAADsBRAAJAAAAIUBAAApAAAATWlzc2luZyBjaGlsZF9jb3VudHMgb3IgY2hpbGRfc3RhcnRz+C8QACQAAADsBRAAJAAAAAACAAA1AAAA7AUQACQAAAAAAgAAVgAAAOwFEAAkAAAAMAIAACoAAADsBRAAJAAAABsCAAA2AAAA7AUQACQAAAAbAgAAVwAAAOwFEAAkAAAAxgEAABUAAADsBRAAJAAAAMQBAAAlAAAA7AUQACQAAADIAQAAKAAAAOwFEAAkAAAAyQEAACgAAADsBRAAJAAAAMcBAAAoAAAA7AUQACQAAADFAQAAKAAAAOwFEAAkAAAAEgIAADcAAADsBRAAJAAAABICAABYAEH84cAACwUBAAAAfQBBjOLAAAsFAQAAAH4AQZziwAALBQEAAAB/AEGs4sAACwUBAAAAgABBvOLAAAsFAQAAAIEAQcziwAALBQEAAACCAEHc4sAACwUBAAAAgwBB7OLAAAsFAQAAAIQAQfziwAALBQEAAACFAEGM48AACwUBAAAAhgBBnOPAAAsFAQAAAIcAQazjwAALBQEAAACIAEG848AACwUBAAAAiQBBzOPAAAsFAQAAAIoAQdzjwAALBQEAAACLAEHs48AACwUBAAAAjABB/OPAAAsFAQAAAI0AQYzkwAALBQEAAACNAEGc5MAACwUBAAAAjQBBrOTAAAsFAQAAAI0AQbzkwAALBQEAAACNAEHM5MAACwUBAAAAjQBB3OTAAAsFAQAAAI0AQezkwAALBQEAAACNAEH85MAACwUBAAAAjQBBjOXAAAsFAQAAAI0AQZzlwAAL6QEBAAAAjQAAAGFuIGFycmF5IG9mIGxlbmd0aCAxYW4gYXJyYXkgb2YgbGVuZ3RoIDJhbiBhcnJheSBvZiBsZW5ndGggM2FuIGFycmF5IG9mIGxlbmd0aCA0bWlzc2luZyBmaWVsZCBgAPQyEAAPAAAA6JIRAAEAAABpbnZhbGlkIGxlbmd0aCAAFDMQAA8AAAAakxEACwAAAGR1cGxpY2F0ZSBmaWVsZCBgAAAANDMQABEAAADokhEAAQAAAHVua25vd24gdmFyaWFudCBgYCwgZXhwZWN0ZWQgAAAAWDMQABEAAABpMxAADABBkOfAAAsFAQAAAI4AQaDnwAALBQEAAACPAEGw58AACyUBAAAAkAAAAF4aEABgAAAAoAQAACIAAABeGhAAYAAAAJYEAAAmAEHg58AACwUBAAAAkQBB8OfAAAu9BgEAAACSAAAAc2gxc2gyc2gzYXNoM2Jsb2RUcmVlAAAAygUQACEAAAC4AAAAMAAAAMoFEAAhAAAAtgAAADAAAABtYXhTcGxhdHNudW1TcGxhdHNtYXhTaERlZ3JlZWV4dDBleHQxAAAAkwAAAAQAAAAEAAAAIAAAAMoFEAAhAAAATAAAAFMAAADKBRAAIQAAAE8AAABTAAAAygUQACEAAABSAAAAVQAAAMoFEAAhAAAAVQAAAFUAAABzaDFDb2Rlc8oFEAAhAAAAWAAAAF4AAABzaDJDb2Rlc8oFEAAhAAAAWwAAAF4AAABzaDNDb2Rlc8oFEAAhAAAAYQAAAFkAAADKBRAAIQAAAGQAAABcAAAAygUQACEAAABKAAAAZwAAAMoFEAAhAAAASQAAAGcAAADKBRAAIQAAAEgAAABtAAAAygUQACEAAABHAAAAaAAAAMoFEAAhAAAARgAAAGgAAAArIxAAbQAAAJUAAAAOAAAAcmdiTWlucmdiTWF4bG5TY2FsZU1pbmxuU2NhbGVNYXhzaDFNYXhzaDJNYXhzaDNNYXhsb2RPcGFjaXR5YDUQAAYAAABmNRAABgAAAGw1EAAKAAAAdjUQAAoAAACANRAABgAAAIY1EAAGAAAAjDUQAAYAAACSNRAACgAAABAjEAAaAAAAOQAAAC0AAAAQIxAAGgAAAC4AAAAzAAAA7AUQACQAAACKAAAAJwAAAHNoMwDsBRAAJAAAAJsAAAAuAAAAcGFja2VkAADsBRAAJAAAAEUAAABTAAAA7AUQACQAAABIAAAAUwAAAOwFEAAkAAAASwAAAFMAAADsBRAAJAAAAE4AAABeAAAA7AUQACQAAABRAAAAXgAAAOwFEAAkAAAAVAAAAF4AAADsBRAAJAAAAFcAAABcAAAAc3BsYXRFbmNvZGluZwAAAOwFEAAkAAAAWQAAAHwAAADsBRAAJAAAAEMAAABLAAAA7AUQACQAAABCAAAAbQAAAOwFEAAkAAAAQQAAAGgAAADsBRAAJAAAAEAAAABoAAAAECMQABoAAABWAAAALQAAABAjEAAaAAAASwAAADMAAACUAAAA9AAAAAQAAACVAAAAlgAAAJcAQbjuwAALZQEAAACYAAAAECMQABoAAACXAAAAKwAAAGZpbGVUeXBlECMQABoAAACZAAAAaAAAAJkAAAAIAAAABAAAAJoAAAAQIxAAGgAAAJYAAABYAAAAmwAAAJAAAAAEAAAAnAAAAJ0AAACeAEGo78AACy0BAAAAnwAAABAjEAAaAAAAkAEAAFsAAACgAAAAcAAAAAQAAAChAAAAogAAAKMAQeDvwAALLQEAAACkAAAAECMQABoAAAARAQAAWwAAAKUAAADsAAAABAAAAKYAAACnAAAAqABBmPDAAAvhFQEAAACpAAAAECMQABoAAAB5AAAAKwAAABAjEAAaAAAAewAAAGgAAAAQIxAAGgAAAHgAAABbAAAARXhwZWN0ZWQgIGFjdGl2ZSBzcGxhdHMgYnV0IGdvdCBQOBAACQAAAFk4EAAXAAAAigMQABsAAAAzAAAAFQAAAIoDEAAbAAAApwAAABMAAACKAxAAGwAAAJ8AAAATAAAAigMQABsAAACiAAAAHQAAAIoDEAAbAAAAogAAABEAAACKAxAAGwAAAJAAAAAgAAAAigMQABsAAACQAAAAFAAAAIoDEAAbAAAAfAAAABgAAACKAxAAGwAAAH0AAAAYAAAAigMQABsAAAB0AAAAGQAAALwZEAAfAAAA4wAAABYAAABsb2RJZAAAALwZEAAfAAAA7AAAAFQAAAC8GRAAHwAAAAkBAAAWAAAAvBkQAB8AAAATAQAAVAAAALwZEAAfAAAAJAEAAD0AAAC8GRAAHwAAADcBAAArAAAAvBkQAB8AAAA4AQAAKwAAALwZEAAfAAAAMgEAACsAAAC8GRAAHwAAADMBAAArAAAAvBkQAB8AAAC7AAAAMQAAALwZEAAfAAAA2QAAABMAAAC8GRAAHwAAAMoAAAAnAAAAvBkQAB8AAAC8AAAAJgAAALwZEAAfAAAAzwAAADYAAAC8GRAAHwAAAHcBAAAvAAAAvBkQAB8AAAB6AQAAHwAAAGluZGljZXMAvBkQAB8AAACWAQAAVgAAALwZEAAfAAAAgwEAACQAAAC8GRAAHwAAAIkBAAAjAAAAvBkQAB8AAACGAQAAIgAAALwZEAAfAAAAeAEAACYAAABJbnZhbGlkIGNvbmVfZm92cyBsZW5ndGhJbnZhbGlkIGNvbmVfZm92MHMgbGVuZ3RoSW52YWxpZCBjb25lX2ZvdmVhdGVzIGxlbmd0aEludmFsaWQgYmVoaW5kX2ZvdmVhdGVzIGxlbmd0aEludmFsaWQgbG9kX3NjYWxlcyBsZW5ndGhJbnZhbGlkIHZpZXdfdG9fb2JqZWN0cyBsZW5ndGgAALwZEAAfAAAA5wEAACYAAAC8GRAAHwAAAOkBAABDAAAAvBkQAB8AAADtAQAAGAAAALwZEAAfAAAA+wEAABkAAAC8GRAAHwAAAAACAAAZAAAAvBkQAB8AAAAHAgAAKwAAALwZEAAfAAAACwIAABgAAAC8GRAAHwAAABECAAAvAAAAvBkQAB8AAAATAgAAPgAAALwZEAAfAAAAFQIAABwAAAC8GRAAHwAAAAQCAAAYAAAAvBkQAB8AAAArAgAAJAAAAHBpeGVsTGltaXRpbnN0YW5jZUluZGljZXNjaHVua3NvdXRwdXRTaXplZnJvbnRpZXJTaXplbGVhZkNvdW50AAC8GRAAHwAAAFQCAABcAAAAvBkQAB8AAABTAgAAYgAAALwZEAAfAAAAUgIAAF4AAAC8GRAAHwAAAFECAABZAAAAvBkQAB8AAABQAgAAaAAAALwZEAAfAAAATwIAAGIAAAC8GRAAHwAAAD4CAAAjAAAAvBkQAB8AAABBAgAAWgAAALwZEAAfAAAAQAIAAHIAAAC8GRAAHwAAAD8CAABYAAAAvBkQAB8AAAAxAgAAHQAAALwZEAAfAAAAMQIAADMAAAC8GRAAHwAAAC0CAAAjAAAAvBkQAB8AAAAtAgAAHgAAALwZEAAfAAAAKAIAABwAAAC8GRAAHwAAACICAAAUAAAAvBkQAB8AAADSAQAAHQAAALwZEAAfAAAA1QEAADoAAAC8GRAAHwAAANoBAAAZAAAAvBkQAB8AAAC7AQAAMwAAALwZEAAfAAAAwAEAAB0AAAC8GRAAHwAAAMEBAAAiAAAAvBkQAB8AAADCAQAAIAAAALwZEAAfAAAAwwEAACAAAAC8GRAAHwAAAMQBAAAfAAAAvBkQAB8AAADGAQAAHQAAALwZEAAfAAAAvwEAADwAAAC8GRAAHwAAAL4BAAA9AAAAvBkQAB8AAAD1AAAAOgAAALwZEAAfAAAA9wAAAB0AAAC8GRAAHwAAAPgAAAAdAAAAvBkQAB8AAAD/AAAAWAAAAHZlcnNpb25jb3VudG1heFNoY2h1bmtTaXplYWxsQ2h1bmtCeXRlc3NoQ29kZUNvdW50c3RydWN0IFJhZE1ldGEgd2l0aCAxMSBlbGVtZW50cwAAAFY+EAAfAAAAAAAAAAgAAAAEAAAAqgAAAGZpbGVzbWluc21heHNzaGFwZXN0cnVjdCBNZWFucyB3aXRoIDQgZWxlbWVudHMAAKI+EAAcAAAAZW5jb2RpbmdzdHJ1Y3QgUXVhdHMgd2l0aCAyIGVsZW1lbnRz0D4QABwAAABzdHJ1Y3QgU2gwVjEgd2l0aCAzIGVsZW1lbnRz9D4QABwAAABjb2RlYm9va3N0cnVjdCBTaDBWMiB3aXRoIDIgZWxlbWVudHMgPxAAHAAAAHN0cnVjdCBTaE5WMSB3aXRoIDQgZWxlbWVudHNEPxAAHAAAAGJhbmRzc3RydWN0IFNoTlYyIHdpdGggMyBlbGVtZW50cwAAAG0/EAAcAAAAc3RydWN0IE1lYW5zVjEgd2l0aCA0IGVsZW1lbnRzAACUPxAAHgAAAG1lYW5zc2NhbGVzcXVhdHNzaDBzaE5zdHJ1Y3QgUGNTb2dzVjEgd2l0aCA1IGVsZW1lbnRzAAAA0j8QAB8AAABzdHJ1Y3QgUGNTb2dzVjIgd2l0aCA3IGVsZW1lbnRzAPw/EAAfAAAAc3RydWN0IFNjYWxlc1YxIHdpdGggMyBlbGVtZW50cwAkQBAAHwAAAHN0cnVjdCBTY2FsZXNWMiB3aXRoIDIgZWxlbWVudHMATEAQAB8AAABiYXNlcGF5bG9hZEJ5dGVzcHJvcGVydGllc3N0cnVjdCBSYWRDaHVua01ldGEgd2l0aCA4IGVsZW1lbnRzAAAAjkAQACMAAABnc3BsYXQAALxAEAAGAAAAb2Zmc2V0ZmlsZW5hbWVzdHJ1Y3QgUmFkQ2h1bmtSYW5nZSB3aXRoIDUgZWxlbWVudHMAANpAEAAkAAAAY29tcHJlc3Npb25taW5tYXhzdHJ1Y3QgUmFkQ2h1bmtQcm9wZXJ0eSB3aXRoIDcgZWxlbWVudHMZQRAAJwAAAGEgc2VxdWVuY2UAANsGEABmAAAAjQQAABwAAABzdHJ1Y3QgU2V0U3BsYXRFbmNvZGluZyB3aXRoIDggZWxlbWVudHMAZEEQACcAAABjZW50ZXJhbHBoYXJnYm9yaWVudGF0aW9uY2hpbGRfY291bnRjaGlsZF9zdGFydHNoMV9jb2Rlc2gyX2NvZGVzaDNfY29kZXNoX2xhYmVsAJRBEAAGAAAAmkEQAAUAAACfQRAAAwAAAME/EAAGAAAAokEQAAsAAAD4MxAAAwAAAPszEAADAAAADDYQAAMAAACtQRAACwAAALhBEAALAAAAw0EQAAgAAADLQRAACAAAANNBEAAIAAAA20EQAAgAAABmMTZmMzJfbGVieXRlc2YxNl9sZWJ5dGVzcjhyOF9kZWx0YXM4czhfZGVsdGFsbl8wcjhsbl9mMTZvY3Q4OHI4AogRAAMAAABUQhAAAwAAAFdCEAALAAAAYkIQAAsAAABtQhAAAgAAAG9CEAAIAAAAd0IQAAIAAAB5QhAACAAAAIFCEAAGAAAAh0IQAAYAAACNQhAABwAAAAdZEQADAAAABYgRAAMAQYSGwQALBQEAAACrAEGUhsEAC50NAQAAAKwAAABnegAAHEMQAAIAAACGV40hJKv8MZsV7Rqk/AqGIZHXkOAZBnMEwoE6QC5Aw02j52ZMofSR0h1OTNnv/LcqkTKWy/Ri3BOYR0yo5sJKZQUUCIJCw8J7T1YBdnE/LlNbgd6v+j3VsO5PRvEo+g1lOjkDtdomfifhYlnYlyaf521Pxr7v5E2F7c0GCuf+P/3rIsETwTMoA+inBzqud1sRrxXgIBVknwBi1PJVeIx7Aisj8rJUn2yy7loDmsKEpY45WsRC9+oSngcEldKewYpCm/q8AgqVZ7gNAZD9VtBrMivi9KBl2ERiQe5Ii0cFQ/5K+mCCgfdMVeJBLcgvjfuPC2mlqkI9RC+bfJ3D8Sr9x01mLnzmSbxuYaNTlztp3pcpSPbzROrxa62j6ZmoBdH97HYrR635JQTfXlV6a8Ovn+m9tKIApq4QCN4uyBE87DPEa42psDZg7WP62RG4/bUIrvZnfsvyWSH/wjd06x+Py+lMtpuEl8Ltn4DSZSE7nX4v+OWiItk2yi53ifdj62Zde1sqPTuH9PUU2hK7pnF7Y1zUyuJJAK68UxeBqShYoeSyUAtPu+nwuxBgZKitiEsgHhagE5RBXb1l1/jQzzzaT25jZSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAADoRBAAKgAAAL8aEABTAAAAnAAAADIAAABzFBAATwAAAC8CAAAmAAAATw8QAGYAAACkAAAAKgAAAE8PEABmAAAABAEAACUAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAABcRRAAsAAAALEAAACyAAAAsAAAALMAAABBRVMgZW5jcnlwdGVkIGZpbGVzIGNhbm5vdCBiZSBkZWNyeXB0ZWQgd2l0aG91dCB0aGUgYWVzLWNyeXB0byBmZWF0dXJlLlZhcmlhYmxlLWxlbmd0aCBmaWVsZCBleHRlbmRzIGJleW9uZCBmaWxlIGJvdW5kYXJ5QUVTIGVuY3J5cHRpb24gd2l0aG91dCBBRVMgZXh0cmEgZGF0YSBmaWVsZEFyY2hpdmUgaGVhZGVyIGlzIHRvbyBsYXJnZQDOIRAAWQAAAOYCAAAZAAAAziEQAFkAAADqAgAAEwAAAE92ZXJzaXplZCBjZW50cmFsIGRpcmVjdG9yeVN1cHBvcnQgZm9yIG11bHRpLWRpc2sgZmlsZXMgaXMgbm90IGltcGxlbWVudGVkemlwOjp0eXBlczo6WmlwQ2VudHJhbEVudHJ5QmxvY2sAAFBLAQJJbnZhbGlkIENlbnRyYWwgRGlyZWN0b3J5IGhlYWRlcnppcDo6c3BlYzo6WmlwMzJDREVCbG9ja1BLBQZJbnZhbGlkIGRpZ2l0YWwgc2lnbmF0dXJlIGhlYWRlcgAAAIAkRxAAIAAAAHppcDo6c3BlYzo6WmlwNjRDREVMb2NhdG9yQmxvY2tJbnZhbGlkIHppcDY0IGxvY2F0b3IgZGlnaXRhbCBzaWduYXR1cmUgaGVhZGVyAAAAAAAAgG9HEAAuAAAAemlwOjpzcGVjOjpaaXA2NENERUJsb2NrUEsGBkludmFsaWQgRU9DRDY0OiBpbmNvbnNpc3RlbnQgbGVuZ3RoSW52YWxpZCBFT0NENjQ6IGluY29uc2lzdGVuY3kgd2l0aCBMb2NhdG9yIGRhdGFJbnZhbGlkIEVPQ0Q2NDogaW5jb25zaXN0ZW50IG51bWJlciBvZiBmaWxlc0NvdWxkIG5vdCBmaW5kIEVPQ0Q2NE11bHRpLWRpc2sgWklQIGZpbGVzIGFyZSBub3Qgc3VwcG9ydGVkSW52YWxpZCBFT0NENjQgTG9jYXRvciBDRCBvZmZzZXRObyBDREZIIGZvdW5kSW52YWxpZCBDREZIIG9mZnNldCBpbiBFT0NESW52YWxpZCBFT0NEIGNvbW1lbnQgbGVuZ3RoQ291bGQg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AIgCAACvAQAAsAEAALEBAACKAgAAsgEAAIsCAACzAQAAtAEAALUBAAC2AQAAtwEAAJICAAC4AQAAuQEAALwBAAC9AQAAxAEAAMYBAADFAQAAxgEAAMcBAADJAQAAyAEAAMkBAADKAQAAzAEAAMsBAADMAQAAzQEAAM4BAADPAQAA0AEAANEBAADSAQAA0wEAANQBAADVAQAA1gEAANcBAADYAQAA2QEAANoBAADbAQAA3AEAAN4BAADfAQAA4AEAAOEBAADiAQAA4wEAAOQBAADlAQAA5gEAAOcBAADoAQAA6QEAAOoBAADrAQAA7AEAAO0BAADuAQAA7wEAAPEBAADzAQAA8gEAAPMBAAD0AQAA9QEAAPYBAACVAQAA9wEAAL8BAAD4AQAA+QEAAPoBAAD7AQAA/AEAAP0BAAD+AQAA/wEAAAACAAABAgAAAgIAAAMCAAAEAgAABQIAAAYCAAAHAgAACAIAAAkCAAAKAgAACwIAAAwCAAANAgAADgIAAA8CAAAQAgAAEQIAABICAAATAgAAFAIAABUCAAAWAgAAFwIAABgCAAAZAgAAGgIAABsCAAAcAgAAHQIAAB4CAAAfAgAAIAIAAJ4BAAAiAgAAIwIAACQCAAAlAgAAJgIAACcCAAAoAgAAKQIAACoCAAArAgAALAIAAC0CAAAuAgAALwIAADACAAAxAgAAMgIAADMCAAA6AgAAZSwAADsCAAA8AgAAPQIAAJoBAAA+AgAAZiwAAEECAABCAgAAQwIAAIABAABEAgAAiQIAAEUCAACMAgAARgIAAEcCAABIAgAASQIAAEoCAABLAgAATAIAAE0CAABOAgAATwIAAHADAABxAwAAcgMAAHMDAAB2AwAAdwMAAH8DAADzAwAAhgMAAKwDAACIAwAArQMAAIkDAACuAwAAigMAAK8DAACMAwAAzAMAAI4DAADNAwAAjwMAAM4DAACRAwAAsQMAAJIDAACyAwAAkwMAALMDAACUAwAAtAMAAJUDAAC1AwAAlgMAALYDAACXAwAAtwMAAJgDAAC4AwAAmQMAALkDAACaAwAAugMAAJsDAAC7AwAAnAMAALwDAACdAwAAvQMAAJ4DAAC+AwAAnwMAAL8DAACgAwAAwAMAAKEDAADBAwAAowMAAMMDAACkAwAAxAMAAKUDAADFAwAApgMAAMYDAACnAwAAxwMAAKgDAADIAwAAqQMAAMkDAACqAwAAygMAAKsDAADLAwAAzwMAANcDAADYAwAA2QMAANoDAADbAwAA3AMAAN0DAADeAwAA3wMAAOADAADhAwAA4gMAAOMDAADkAwAA5QMAAOYDAADnAwAA6AMAAOkDAADqAwAA6wMAAOwDAADtAwAA7gMAAO8DAAD0AwAAuAMAAPcDAAD4AwAA+QMAAPIDAAD6AwAA+wMAAP0DAAB7AwAA/gMAAHwDAAD/AwAAfQMAAAAEAABQBAAAAQQAAFEEAAACBAAAUgQAAAMEAABTBAAABAQAAFQEAAAFBAAAVQQAAAYEAABWBAAABwQAAFcEAAAIBAAAWAQAAAkEAABZBAAACgQAAFoEAAALBAAAWwQAAAwEAABcBAAADQQAAF0EAAAOBAAAXgQAAA8EAABfBAAAEAQAADAEAAARBAAAMQQAABIEAAAyBAAAEwQAADMEAAAUBAAANAQAABUEAAA1BAAAFgQAADYEAAAXBAAANwQAABgEAAA4BAAAGQQAADkEAAAaBAAAOgQAABsEAAA7BAAAHAQAADwEAAAdBAAAPQQAAB4EAAA+BAAAHwQAAD8EAAAgBAAAQAQAACEEAABBBAAAIgQAAEIEAAAjBAAAQwQAACQEAABEBAAAJQQAAEUEAAAmBAAARgQAACcEAABHBAAAKAQAAEgEAAApBAAASQQAACoEAABKBAAAKwQAAEsEAAAsBAAATAQAAC0EAABNBAAALgQAAE4EAAAvBAAATwQAAGAEAABhBAAAYgQAAGMEAABkBAAAZQQAAGYEAABnBAAAaAQAAGkEAABqBAAAawQAAGwEAABtBAAAbgQAAG8EAABwBAAAcQQAAHIEAABzBAAAdAQAAHUEAAB2BAAAdwQAAHgEAAB5BAAAegQAAHsEAAB8BAAAfQQAAH4EAAB/BAAAgAQAAIEEAACKBAAAiwQAAIwEAACNBAAAjgQAAI8EAACQBAAAkQQAAJIEAACTBAAAlAQAAJUEAACWBAAAlwQAAJgEAACZBAAAmgQAAJsEAACcBAAAnQQAAJ4EAACfBAAAoAQAAKEEAACiBAAAowQAAKQEAAClBAAApgQAAKcEAACoBAAAqQQAAKoEAACrBAAArAQAAK0EAACuBAAArwQAALAEAACxBAAAsgQAALMEAAC0BAAAtQQAALYEAAC3BAAAuAQAALkEAAC6BAAAuwQAALwEAAC9BAAAvgQAAL8EAADABAAAzwQAAMEEAADCBAAAwwQAAMQEAADFBAAAxgQAAMcEAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAADOBAAA0AQAANEEAADSBAAA0wQAANQEAADVBAAA1gQAANcEAADYBAAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAA4gQAAOMEAADkBAAA5QQAAOYEAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAO8EAADwBAAA8QQAAPIEAADzBAAA9AQAAPUEAAD2BAAA9wQAAPgEAAD5BAAA+gQAAPsEAAD8BAAA/QQAAP4EAAD/BAAAAAUAAAEFAAACBQAAAwUAAAQFAAAFBQAABgUAAAcFAAAIBQAACQUAAAoFAAALBQAADAUAAA0FAAAOBQAADwUAABAFAAARBQAAEgUAABMFAAAUBQAAFQUAABYFAAAXBQAAGAUAABkFAAAaBQAAGwUAABwFAAAdBQAAHgUAAB8FAAAgBQAAIQUAACIFAAAjBQAAJAUAACUFAAAmBQAAJwUAACgFAAApBQAAKgUAACsFAAAsBQAALQUAAC4FAAAvBQAAMQUAAGEFAAAyBQAAYgUAADMFAABjBQAANAUAAGQFAAA1BQAAZQUAADYFAABmBQAANwUAAGcFAAA4BQAAaAUAADkFAABpBQAAOgUAAGoFAAA7BQAAawUAADwFAABsBQAAPQUAAG0FAAA+BQAAbgUAAD8FAABvBQAAQAUAAHAFAABBBQAAcQUAAEIFAAByBQAAQwUAAHMFAABEBQAAdAUAAEUFAAB1BQAARgUAAHYFAABHBQAAdwUAAEgFAAB4BQAASQUAAHkFAABKBQAAegUAAEsFAAB7BQAATAUAAHwFAABNBQAAfQUAAE4FAAB+BQAATwUAAH8FAABQBQAAgAUAAFEFAACBBQAAUgUAAIIFAABTBQAAgwUAAFQFAACEBQAAVQUAAIUFAABWBQAAhgUAAKAQAAAALQAAoRAAAAEtAACiEAAAAi0AAKMQAAADLQAApBAAAAQtAAClEAAABS0AAKYQAAAGLQAApxAAAActAACoEAAACC0AAKkQAAAJLQAAqhAAAAotAACrEAAACy0AAKwQAAAMLQAArRAAAA0tAACuEAAADi0AAK8QAAAPLQAAsBAAABAtAACxEAAAES0AALIQAAASLQAAsxAAABMtAAC0EAAAFC0AALUQAAAVLQAAthAAABYtAAC3EAAAFy0AALgQAAAYLQAAuRAAABktAAC6EAAAGi0AALsQAAAbLQAAvBAAABwtAAC9EAAAHS0AAL4QAAAeLQAAvxAAAB8tAADAEAAAIC0AAMEQAAAhLQAAwhAAACItAADDEAAAIy0AAMQQAAAkLQAAxRAAACUtAADHEAAAJy0AAM0QAAAtLQAAoBMAAHCrAAChEwAAcasAAKITAAByqwAAoxMAAHOrAACkEwAAdKsAAKUTAAB1qwAAphMAAHarAACnEwAAd6sAAKgTAAB4qwAAqRMAAHmrAACqEwAAeqsAAKsTAAB7qwAArBMAAHyrAACtEwAAfasAAK4TAAB+qwAArxMAAH+rAACwEwAAgKsAALETAACBqwAAshMAAIKrAACzEwAAg6sAALQTAACEqwAAtRMAAIWrAAC2EwAAhqsAALcTAACHqwAAuBMAAIirAAC5EwAAiasAALoTAACKqwAAuxMAAIurAAC8EwAAjKsAAL0TAACNqwAAvhMAAI6rAAC/EwAAj6sAAMATAACQqwAAwRMAAJGrAADCEwAAkqsAAMMTAACTqwAAxBMAAJSrAADFEwAAlasAAMYTAACWqwAAxxMAAJerAADIEwAAmKsAAMkTAACZqwAAyhMAAJqrAADLEwAAm6sAAMwTAACcqwAAzRMAAJ2rAADOEwAAnqsAAM8TAACfqwAA0BMAAKCrAADREwAAoasAANITAACiqwAA0xMAAKOrAADUEwAApKsAANUTAAClqwAA1hMAAKarAADXEwAAp6sAANgTAACoqwAA2RMAAKmrAADaEwAAqqsAANsTAACrqwAA3BMAAKyrAADdEwAArasAAN4TAACuqwAA3xMAAK+rAADgEwAAsKsAAOETAACxqwAA4hMAALKrAADjEwAAs6sAAOQTAAC0qwAA5RMAALWrAADmEwAAtqsAAOcTAAC3qwAA6BMAALirAADpEwAAuasAAOoTAAC6qwAA6xMAALurAADsEwAAvKsAAO0TAAC9qwAA7hMAAL6rAADvEwAAv6sAAPATAAD4EwAA8RMAAPkTAADyEwAA+hMAAPMTAAD7EwAA9BMAAPwTAAD1EwAA/RMAAIkcAACKHAAAkBwAANAQAACRHAAA0RAAAJIcAADSEAAAkxwAANMQAACUHAAA1BAAAJUcAADVEAAAlhwAANYQAACXHAAA1xAAAJgcAADYEAAAmRwAANkQAACaHAAA2hAAAJscAADbEAAAnBwAANwQAACdHAAA3RAAAJ4cAADeEAAAnxwAAN8QAACgHAAA4BAAAKEcAADhEAAAohwAAOIQAACjHAAA4xAAAKQcAADkEAAApRwAAOUQAACmHAAA5hAAAKccAADnEAAAqBwAAOgQAACpHAAA6RAAAKocAADqEAAAqxwAAOsQAACsHAAA7BAAAK0cAADtEAAArhwAAO4QAACvHAAA7xAAALAcAADwEAAAsRwAAPEQAACyHAAA8hAAALMcAADzEAAAtBwAAPQQAAC1HAAA9RAAALYcAAD2EAAAtxwAAPcQAAC4HAAA+BAAALkcAAD5EAAAuhwAAPoQAAC9HAAA/RAAAL4cAAD+EAAAvxwAAP8QAAAAHgAAAR4AAAIeAAADHgAABB4AAAUeAAAGHgAABx4AAAgeAAAJHgAACh4AAAseAAAMHgAADR4AAA4eAAAPHgAAEB4AABEeAAASHgAAEx4AABQeAAAVHgAAFh4AABceAAAYHgAAGR4AABoeAAAbHgAAHB4AAB0eAAAeHgAAHx4AACAeAAAhHgAAIh4AACMeAAAkHgAAJR4AACYeAAAnHgAAKB4AACkeAAAqHgAAKx4AACweAAAtHgAALh4AAC8eAAAwHgAAMR4AADIeAAAzHgAANB4AADUeAAA2HgAANx4AADgeAAA5HgAAOh4AADseAAA8HgAAPR4AAD4eAAA/HgAAQB4AAEEeAABCHgAAQx4AAEQeAABFHgAARh4AAEceAABIHgAASR4AAEoeAABLHgAATB4AAE0eAABOHgAATx4AAFAeAABRHgAAUh4AAFMeAABUHgAAVR4AAFYeAABXHgAAWB4AAFkeAABaHgAAWx4AAFweAABdHgAAXh4AAF8eAABgHgAAYR4AAGIeAABjHgAAZB4AAGUeAABmHgAAZx4AAGgeAABpHgAAah4AAGseAABsHgAAbR4AAG4eAABvHgAAcB4AAHEeAAByHgAAcx4AAHQeAAB1HgAAdh4AAHceAAB4HgAAeR4AAHoeAAB7HgAAfB4AAH0eAAB+HgAAfx4AAIAeAACBHgAAgh4AAIMeAACEHgAAhR4AAIYeAACHHgAAiB4AAIkeAACKHgAAix4AAIweAACNHgAAjh4AAI8eAACQHgAAkR4AAJIeAACTHgAAlB4AAJUeAACeHgAA3wAAAKAeAAChHgAAoh4AAKMeAACkHgAApR4AAKYeAACnHgAAqB4AAKkeAACqHgAAqx4AAKweAACtHgAArh4AAK8eAACwHgAAsR4AALIeAACzHgAAtB4AALUeAAC2HgAAtx4AALgeAAC5HgAAuh4AALseAAC8HgAAvR4AAL4eAAC/HgAAwB4AAMEeAADCHgAAwx4AAMQeAADFHgAAxh4AAMceAADIHgAAyR4AAMoeAADLHgAAzB4AAM0eAADOHgAAzx4AANAeAADRHgAA0h4AANMeAADUHgAA1R4AANYeAADXHgAA2B4AANkeAADaHgAA2x4AANweAADdHgAA3h4AAN8eAADgHgAA4R4AAOIeAADjHgAA5B4AAOUeAADmHgAA5x4AAOgeAADpHgAA6h4AAOseAADsHgAA7R4AAO4eAADvHgAA8B4AAPEeAADyHgAA8x4AAPQeAAD1HgAA9h4AAPceAAD4HgAA+R4AAPoeAAD7HgAA/B4AAP0eAAD+HgAA/x4AAAgfAAAAHwAACR8AAAEfAAAKHwAAAh8AAAsfAAADHwAADB8AAAQfAAANHwAABR8AAA4fAAAGHwAADx8AAAcfAAAYHwAAEB8AABkfAAARHwAAGh8AABIfAAAbHwAAEx8AABwfAAAUHwAAHR8AABUfAAAoHwAAIB8AACkfAAAhHwAAKh8AACIfAAArHwAAIx8AACwfAAAkHwAALR8AACUfAAAuHwAAJh8AAC8fAAAnHwAAOB8AADAfAAA5HwAAMR8AADofAAAyHwAAOx8AADMfAAA8HwAANB8AAD0fAAA1HwAAPh8AADYfAAA/HwAANx8AAEgfAABAHwAASR8AAEEfAABKHwAAQh8AAEsfAABDHwAATB8AAEQfAABNHwAARR8AAFkfAABRHwAAWx8AAFMfAABdHwAAVR8AAF8fAABXHwAAaB8AAGAfAABpHwAAYR8AAGofAABiHwAAax8AAGMfAABsHwAAZB8AAG0fAABlHwAAbh8AAGYfAABvHwAAZx8AAIgfAACAHwAAiR8AAIEfAACKHwAAgh8AAIsfAACDHwAAjB8AAIQfAACNHwAAhR8AAI4fAACGHwAAjx8AAIcfAACYHwAAkB8AAJkfAACRHwAAmh8AAJIfAACbHwAAkx8AAJwfAACUHwAAnR8AAJUfAACeHwAAlh8AAJ8fAACXHwAAqB8AAKAfAACpHwAAoR8AAKofAACiHwAAqx8AAKMfAACsHwAApB8AAK0fAAClHwAArh8AAKYfAACvHwAApx8AALgfAACwHwAAuR8AALEfAAC6HwAAcB8AALsfAABxHwAAvB8AALMfAADIHwAAch8AAMkfAABzHwAAyh8AAHQfAADLHwAAdR8AAMwfAADDHwAA2B8AANAfAADZHwAA0R8AANofAAB2HwAA2x8AAHcfAADoHwAA4B8AAOkfAADhHwAA6h8AAHofAADrHwAAex8AAOwfAADlHwAA+B8AAHgfAAD5HwAAeR8AAPofAAB8HwAA+x8AAH0fAAD8HwAA8x8AACYhAADJAwAAKiEAAGsAAAArIQAA5QAAADIhAABOIQAAYCEAAHAhAABhIQAAcSEAAGIhAAByIQAAYyEAAHMhAABkIQAAdCEAAGUhAAB1IQAAZiEAAHYhAABnIQAAdyEAAGghAAB4IQAAaSEAAHkhAABqIQAAeiEAAGshAAB7IQAAbCEAAHwhAABtIQAAfSEAAG4hAAB+IQAAbyEAAH8hAACDIQAAhCEAALYkAADQJAAAtyQAANEkAAC4JAAA0iQAALkkAADTJAAAuiQAANQkAAC7JAAA1SQAALwkAADWJAAAvSQAANckAAC+JAAA2CQAAL8kAADZJAAAwCQAANokAADBJAAA2yQAAMIkAADcJAAAwyQAAN0kAADEJAAA3iQAAMUkAADfJAAAxiQAAOAkAADHJAAA4SQAAMgkAADiJAAAySQAAOMkAADKJAAA5CQAAMskAADlJAAAzCQAAOYkAADNJAAA5yQAAM4kAADoJAAAzyQAAOkkAAAALAAAMCwAAAEsAAAxLAAAAiwAADIsAAADLAAAMywAAAQsAAA0LAAABSwAADUsAAAGLAAANiwAAAcsAAA3LAAACCwAADgsAAAJLAAAOSwAAAosAAA6LAAACywAADssAAAMLAAAPCwAAA0sAAA9LAAADiwAAD4sAAAPLAAAPywAABAsAABALAAAESwAAEEsAAASLAAAQiwAABMsAABDLAAAFCwAAEQsAAAVLAAARSwAABYsAABGLAAAFywAAEcsAAAYLAAASCwAABksAABJLAAAGiwAAEosAAAbLAAASywAABwsAABMLAAAHSwAAE0sAAAeLAAATiwAAB8sAABPLAAAICwAAFAsAAAhLAAAUSwAACIsAABSLAAAIywAAFMsAAAkLAAAVCwAACUsAABVLAAAJiwAAFYsAAAnLAAAVywAACgsAABYLAAAKSwAAFksAAAqLAAAWiwAACssAABbLAAALCwAAFwsAAAtLAAAXSwAAC4sAABeLAAALywAAF8sAABgLAAAYSwAAGIsAABrAgAAYywAAH0dAABkLAAAfQIAAGcsAABoLAAAaSwAAGosAABrLAAAbCwAAG0sAABRAgAAbiwAAHECAABvLAAAUAIAAHAsAABSAgAAciwAAHMsAAB1LAAAdiwAAH4sAAA/AgAAfywAAEACAACALAAAgSwAAIIsAACDLAAAhCwAAIUsAACGLAAAhywAAIgsAACJLAAAiiwAAIssAACMLAAAjSwAAI4sAACPLAAAkCwAAJEsAACSLAAAkywAAJQsAACVLAAAliwAAJcsAACYLAAAmSwAAJosAACbLAAAnCwAAJ0sAACeLAAAnywAAKAsAAChLAAAoiwAAKMsAACkLAAApSwAAKYsAACnLAAAqCwAAKksAACqLAAAqywAAKwsAACtLAAAriwAAK8sAACwLAAAsSwAALIsAACzLAAAtCwAALUsAAC2LAAAtywAALgsAAC5LAAAuiwAALssAAC8LAAAvSwAAL4sAAC/LAAAwCwAAMEsAADCLAAAwywAAMQsAADFLAAAxiwAAMcsAADILAAAySwAAMosAADLLAAAzCwAAM0sAADOLAAAzywAANAsAADRLAAA0iwAANMsAADULAAA1SwAANYsAADXLAAA2CwAANksAADaLAAA2ywAANwsAADdLAAA3iwAAN8sAADgLAAA4SwAAOIsAADjLAAA6ywAAOwsAADtLAAA7iwAAPIsAADzLAAAQKYAAEGmAABCpgAAQ6YAAESmAABFpgAARqYAAEemAABIpgAASaYAAEqmAABLpgAATKYAAE2mAABOpgAAT6YAAFCmAABRpgAAUqYAAFOmAABUpgAAVaYAAFamAABXpgAAWKYAAFmmAABapgAAW6YAAFymAABdpgAAXqYAAF+mAABgpgAAYaYAAGKmAABjpgAAZKYAAGWmAABmpgAAZ6YAAGimAABppgAAaqYAAGumAABspgAAbaYAAICmAACBpgAAgqYAAIOmAACEpgAAhaYAAIamAACHpgAAiKYAAImmAACKpgAAi6YAAIymAACNpgAAjqYAAI+mAACQpgAAkaYAAJKmAACTpgAAlKYAAJWmAACWpgAAl6YAAJimAACZpgAAmqYAAJumAAAipwAAI6cAACSnAAAlpwAAJqcAACenAAAopwAAKacAACqnAAArpwAALKcAAC2nAAAupwAAL6cAADKnAAAzpwAANKcAADWnAAA2pwAAN6cAADinAAA5pwAAOqcAADunAAA8pwAAPacAAD6nAAA/pwAAQKcAAEGnAABCpwAAQ6cAAESnAABFpwAARqcAAEenAABIpwAASacAAEqnAABLpwAATKcAAE2nAABOpwAAT6cAAFCnAABRpwAAUqcAAFOnAABUpwAAVacAAFanAABXpwAAWKcAAFmnAABapwAAW6cAAFynAABdpwAAXqcAAF+nAABgpwAAYacAAGKnAABjpwAAZKcAAGWnAABmpwAAZ6cAAGinAABppwAAaqcAAGunAABspwAAbacAAG6nAABvpwAAeacAAHqnAAB7pwAAfKcAAH2nAAB5HQAAfqcAAH+nAACApwAAgacAAIKnAACDpwAAhKcAAIWnAACGpwAAh6cAAIunAACMpwAAjacAAGUCAACQpwAAkacAAJKnAACTpwAAlqcAAJenAACYpwAAmacAAJqnAACbpwAAnKcAAJ2nAACepwAAn6cAAKCnAAChpwAAoqcAAKOnAACkpwAApacAAKanAACnpwAAqKcAAKmnAACqpwAAZgIAAKunAABcAgAArKcAAGECAACtpwAAbAIAAK6nAABqAgAAsKcAAJ4CAACxpwAAhwIAALKnAACdAgAAs6cAAFOrAAC0pwAAtacAALanAAC3pwAAuKcAALmnAAC6pwAAu6cAALynAAC9pwAAvqcAAL+nAADApwAAwacAAMKnAADDpwAAxKcAAJSnAADFpwAAggIAAManAACOHQAAx6cAAMinAADJpwAAyqcAAMunAABkAgAAzKcAAM2nAADQpwAA0acAANanAADXpwAA2KcAANmnAADapwAA26cAANynAACbAQAA9acAAPanAAAh/wAAQf8AACL/AABC/wAAI/8AAEP/AAAk/wAARP8AACX/AABF/wAAJv8AAEb/AAAn/wAAR/8AACj/AABI/wAAKf8AAEn/AAAq/wAASv8AACv/AABL/wAALP8AAEz/AAAt/wAATf8AAC7/AABO/wAAL/8AAE//AAAw/wAAUP8AADH/AABR/wAAMv8AAFL/AAAz/wAAU/8AADT/AABU/wAANf8AAFX/AAA2/wAAVv8AADf/AABX/wAAOP8AAFj/AAA5/wAAWf8AADr/AABa/wAAAAQBACgEAQABBAEAKQQBAAIEAQAqBAEAAwQBACsEAQAEBAEALAQBAAUEAQAtBAEABgQBAC4EAQAHBAEALwQBAAgEAQAwBAEACQQBADEEAQAKBAEAMgQBAAsEAQAzBAEADAQBADQEAQANBAEANQQBAA4EAQA2BAEADwQBADcEAQAQBAEAOAQBABEEAQA5BAEAEgQBADoEAQATBAEAOwQBABQEAQA8BAEAFQQBAD0EAQAWBAEAPgQBABcEAQA/BAEAGAQBAEAEAQAZBAEAQQQBABoEAQBCBAEAGwQBAEMEAQAcBAEARAQBAB0EAQBFBAEAHgQBAEYEAQAfBAEARwQBACAEAQBIBAEAIQQBAEkEAQAiBAEASgQBACMEAQBLBAEAJAQBAEwEAQAlBAEATQQBACYEAQBOBAEAJwQBAE8EAQCwBAEA2AQBALEEAQDZBAEAsgQBANoEAQCzBAEA2wQBALQEAQDcBAEAtQQBAN0EAQC2BAEA3gQBALcEAQDfBAEAuAQBAOAEAQC5BAEA4QQBALoEAQDiBAEAuwQBAOMEAQC8BAEA5AQBAL0EAQDlBAEAvgQBAOYEAQC/BAEA5wQBAMAEAQDoBAEAwQQBAOkEAQDCBAEA6gQBAMMEAQDrBAEAxAQBAOwEAQDFBAEA7QQBAMYEAQDuBAEAxwQBAO8EAQDIBAEA8AQBAMkEAQDxBAEAygQBAPIEAQDLBAEA8wQBAMwEAQD0BAEAzQQBAPUEAQDOBAEA9gQBAM8EAQD3BAEA0AQBAPgEAQDRBAEA+QQBANIEAQD6BAEA0wQBAPsEAQBwBQEAlwUBAHEFAQCYBQEAcgUBAJkFAQBzBQEAmgUBAHQFAQCbBQEAdQUBAJwFAQB2BQEAnQUBAHcFAQCeBQEAeAUBAJ8FAQB5BQEAoAUBAHoFAQChBQEAfAUBAKMFAQB9BQEApAUBAH4FAQClBQEAfwUBAKYFAQCABQEApwUBAIEFAQCoBQEAggUBAKkFAQCDBQEAqgUBAIQFAQCrBQEAhQUBAKwFAQCGBQEArQUBAIcFAQCuBQEAiAUBAK8FAQCJBQEAsAUBAIoFAQCxBQEAjAUBALMFAQCNBQEAtAUBAI4FAQC1BQEAjwUBALYFAQCQBQEAtwUBAJEFAQC4BQEAkgUBALkFAQCUBQEAuwUBAJUFAQC8BQEAgAwBAMAMAQCBDAEAwQwBAIIMAQDCDAEAgwwBAMMMAQCEDAEAxAwBAIUMAQDFDAEAhgwBAMYMAQCHDAEAxwwBAIgMAQDIDAEAiQwBAMkMAQCKDAEAygwBAIsMAQDLDAEAjAwBAMwMAQCNDAEAzQwBAI4MAQDODAEAjwwBAM8MAQCQDAEA0AwBAJEMAQDRDAEAkgwBANIMAQCTDAEA0wwBAJQMAQDUDAEAlQwBANUMAQCWDAEA1gwBAJcMAQDXDAEAmAwBANgMAQCZDAEA2QwBAJoMAQDaDAEAmwwBANsMAQCcDAEA3AwBAJ0MAQDdDAEAngwBAN4MAQCfDAEA3wwBAKAMAQDgDAEAoQwBAOEMAQCiDAEA4gwBAKMMAQDjDAEApAwBAOQMAQClDAEA5QwBAKYMAQDmDAEApwwBAOcMAQCoDAEA6AwBAKkMAQDpDAEAqgwBAOoMAQCrDAEA6wwBAKwMAQDsDAEArQwBAO0MAQCuDAEA7gwBAK8MAQDvDAEAsAwBAPAMAQCxDAEA8QwBALIMAQDyDAEAUA0BAHANAQBRDQEAcQ0BAFINAQByDQEAUw0BAHMNAQBUDQEAdA0BAFUNAQB1DQEAVg0BAHYNAQBXDQEAdw0BAFgNAQB4DQEAWQ0BAHkNAQBaDQEAeg0BAFsNAQB7DQEAXA0BAHwNAQBdDQEAfQ0BAF4NAQB+DQEAXw0BAH8NAQBgDQEAgA0BAGENAQCBDQEAYg0BAIINAQBjDQEAgw0BAGQNAQCEDQEAZQ0BAIUNAQCgGAEAwBgBAKEYAQDBGAEAohgBAMIYAQCjGAEAwxgBAKQYAQDEGAEApRgBAMUYAQCmGAEAxhgBAKcYAQDHGAEAqBgBAMgYAQCpGAEAyRgBAKoYAQDKGAEAqxgBAMsYAQCsGAEAzBgBAK0YAQDNGAEArhgBAM4YAQCvGAEAzxgBALAYAQDQGAEAsRgBANEYAQCyGAEA0hgBALMYAQDTGAEAtBgBANQYAQC1GAEA1RgB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AACBHgAAgR8AAIEgAACBIQAAgSIAAIEjAACBJAAAgSUAAIEmAACBJwAAgSgAAIEpAACBKgAAgSsAAIEsAACBLQAAgS4AAIEvAACBMAAAgTEAAIEyAACBMwAAgTQAAIE1AACBNgAAgTcAAIE4AACBOQAAgToAAIE7AACBPAAAgT0AAIE+AACBPwAAgUAAAIFBAACBQgAAgUMAAIFEAACBRQAAgUYAAIFHAACBSAAAgUkAAIFKAACBSwAAgUwAAIFNAACBTgAAgU8AAIFQAACBUQAAgVIAAIFTAACBVAAAgVUAAIFWAACBVwAAgVgAAIFZAACBWgAAgVsAAIFcAACBXQAAgV4AAIFfAACBYAAAgWEAAIFiAACBYwAAgWQAAIFlAACBZgAAgWcAAIFoAACBaQAAgWoAAIFrAACBbAAAgW0AAIFuAACBbwAAgXAAAIFxAACBcgAAgXMAAIF0AACBdQAAgXYAAIF3AACBeAAAgXkAAIF6AACBewAAgXwAAIF9AACBfgAAgX8AAIGAAACBgQAAgYIAAIGDAACBhAAAgYUAAIGGAACBhwAAgYgAAIGJAACBigAAgYsAAIGMAACBjQAAgY4AAIGPAACBkAAAgZEAAIGSAACBkwAAgZQAAIGVAACBlgAAgZcAAIGYAACBmQAAgZoAAIGbAACBnAAAgZ0AAIGeAACBnwAAgaAAAIGhAACBogAAgaMAAIGkAACBpQAAgaYAAIGnAACBqAAAgakAAIGqAACBqwAAgawAAIGtAACBrgAAga8AAIGwAACBsQAAgbIAAIGzAACBtAAAgbUAAIG2AACBtwAAgbgAAIG5AACBugAAgbsAAIG8AACBvQAAgb4AAIG/AACBwAAAgcEAAIHCAACBwwAAgcQAAIHFAACBxgAAgccAAIHIAACByQAAgcoAAIHLAACBzAAAgc0AAIHOAACBzwAAgdAAAIHRAACB0gAAgdMAAIHUAACB1QAAgdYAAIHXAACB2AAAgdkAAIHaAACB2wAAgdwAAIHdAACB3gAAgd8AAIHgAACB4QAAgeIAAIHjAACB5AAAgeUAAIHmAACB5wAAgegAAIHpAACB6gAAgesAAIHsAACB7QAAge4AAIHvAACB8AAAgfEAAIHyAACB8wAAgfQAAIH1AACB9gAAgfcAAIH4AACB+QAAgfoAAIH7AACB/AAAgf0AAIH+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ZXRyaWMgaW50ZXJwcmV0YXRpb24gb2YgYSBDSUNQIGNvbG9yIHNwYWNlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGBUIxEATAAAAOiSEQABAAAAVGhlIGZpbGUgZXh0ZW5zaW9uICB3YXMgbm90IHJlY29nbml6ZWQgYXMgYW4gaW1hZ2UgZm9ybWF0AAAAsCMRABMAAADDIxEAJgAAAFRoZSBpbWFnZSBmb3JtYXQgY291bGQgbm90IGJlIGRldGVybWluZWRUaGUgaW1hZ2UgZm9ybWF0IAAAACQkEQARAAAAMCMRABEAAABUaGUgZGVjb2RlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmb3JtYXQgZmVhdHVyZSBIJBEAMAAAAFRoZSBkZWNvZGVyIGZvciAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZm9ybWF0IGZlYXR1cmVzIAAAgCQRABAAAACQJBEAJgAAAEVycgAAAAAABAAAAAQAAACtAQAARm9ybWF0RXJyb3JSaWZmU2lnbmF0dXJlSW52YWxpZFdlYnBTaWduYXR1cmVJbnZhbGlkQ2h1bmtNaXNzaW5nQ2h1bmtIZWFkZXJJbnZhbGlkUmVzZXJ2ZWRCaXRTZXRJbnZhbGlkQWxwaGFQcmVwcm9jZXNzaW5nSW52YWxpZENvbXByZXNzaW9uTWV0aG9kQWxwaGFDaHVua1NpemVNaXNtYXRjaEltYWdlVG9vTGFyZ2VGcmFtZU91dHNpZGVJbWFnZUxvc3NsZXNzU2lnbmF0dXJlSW52YWxpZFZlcnNpb25OdW1iZXJJbnZhbGlkSW52YWxpZENvbG9yQ2FjaGVCaXRzSHVmZm1hbkVycm9yQml0U3RyZWFtRXJyb3JUcmFuc2Zvcm1FcnJvclZwOE1hZ2ljSW52YWxpZE5vdEVub3VnaEluaXREYXRhQ29sb3JTcGFjZUludmFsaWRMdW1hUHJlZGljdGlvbk1vZGVJbnZhbGlkSW50cmFQcmVkaWN0aW9uTW9kZUludmFsaWRDaHJvbWFQcmVkaWN0aW9uTW9kZUludmFsaWRJbmNvbnNpc3RlbnRJbWFnZVNpemVzVW5zdXBwb3J0ZWRGZWF0dXJlSW52YWxpZFBhcmFtZXRlck1lbW9yeUxpbWl0RXhjZWVkZWRJbnZhbGlkQ2h1bmtTaXplTm9Nb3JlRnJhbWVzSW52YWxpZERpbWVuc2lvbnMAAAAABAAAAAQAAACuAQAAVHJ5UmVzZXJ2ZUVycm9yTGltaXRzRXhjZWVkZWQAAAC7AAAACAAAAAQAAAAWAAAAuwAAAAgAAAAEAAAAvAAAABYAAAAwJxEAvQAAAL4AAACyAAAAvwAAALMAAABVbnJlcHJlc2VudGFibGVJbnZhbGlkS2V5d29yZFNpemVNaXNzaW5nTnVsbFNlcGFyYXRvckluZmxhdGlvbkVycm9yT3V0T2ZEZWNvbXByZXNzaW9uU3BhY2VJbnZhbGlkQ29tcHJlc3Npb25GbGFnTWlzc2luZ0NvbXByZXNzaW9uRmxhZwAAAAAAAAQAAAAEAAAAwAAAAAAAAAAEAAAABAAAAGMAAABDcmNNaXNtYXRjaGNyY192YWxjcmNfc3VtSW52YWxpZFNpZ25hdHVyZU1pc3NpbmdGY3RsTWlzc2luZ0ltYWdlRGF0YUNodW5rQmVmb3JlSWhkckFmdGVySWRhdEJlZm9yZVBsdGVBZnRlclBsdGVPdXRzaWRlUGx0ZUlkYXREdXBsaWNhdGVDaHVua0FwbmdPcmRlcnByZXNlbnRTaG9ydFBhbGV0dGVsZW4AAAAAAAEAAAABAAAArwEAAEludmFsaWRTYml0Q2h1bmtTaXplY29sb3JfdHlwZQAAAAAAAAEAAAABAAAAsAEAAEludmFsaWRTYml0c2FtcGxlX2RlcHRoc2JpdFBhbGV0dGVSZXF1aXJlZAAAAAAAAAQAAAAEAAAAsQEAAEludmFsaWRDb2xvckJpdERlcHRoYml0X2RlcHRoQ29sb3JXaXRoQmFkVHJuc0ludmFsaWRCaXREZXB0aEludmFsaWRDb2xvclR5cGVJbnZhbGlkRGlzcG9zZU9wSW52YWxpZEJsZW5kT3BJbnZhbGlkVW5pdEludmFsaWRTcmdiUmVuZGVyaW5nSW50ZW50VW5rbm93bkNvbXByZXNzaW9uTWV0aG9kVW5rbm93bkZpbHRlck1ldGhvZFVua25vd25JbnRlcmxhY2VNZXRob2RCYWRTdWJGcmFtZUJvdW5kcwAAAAAAAAAEAAAABAAAALIBAABDb3JydXB0RmxhdGVTdHJlYW1lcnJOb01vcmVJbWFnZURhdGFCYWRUZXh0RW5jb2RpbmdGZGF0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AB4AAAB2JRAAXwAAAAsJAAAXAAAAdiUQAF8AAAAPCQAAJgAAAHYlEABfAAAAEgkAACIAAAB2JRAAXwAAAAwJAAAdAAAAdiUQAF8AAACBCAAABQAAAHYlEABfAAAAhAgAACYAAAB2JRAAXwAAAIgIAAArAAAAdiUQAF8AAACICAAAIAAAAHYlEABfAAAAJQgAAEUAAAB2JRAAXwAAADgIAAAxAAAAdiUQAF8AAAAiCAAAHgAAAHYlEABfAAAAHAgAAEEAAAAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADwAPgBAAEIARABGAEgASgBMAE4AUABSAFQAVgBYAFoAXABeAGAAYgBkAGYAaABqAGwAbgBwAHIAdAB3AHoAfQCAAIMAhgCJAIwAjwCSAJUAmACbAJ4AoQCkAKcAqgCtALEAtQC5AL0AwQDFAMkAzQDRANUA2QDdAOEA5QDqAO8A9QD5AP4AAwEIAQ0BEgEXARwBBAAFAAYABwAIAAkACgAKAAsADAANAA4ADwAQABEAEQASABMAFAAUABUAFQAWABYAFwAXABgAGQAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACUAJgAnACgAKQAqACsALAAtAC4ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWwBdAF8AYABiAGQAZQBmAGgAagBsAG4AcAByAHQAdgB6AHwAfgCAAIIAhACGAIgAigCMAI8AkQCUAJcAmgCdAHYlEABfAAAAaAgAADAAAAB2JRAAXwAAAFwIAAA7AAAAawIQAF8AAABgAAAANQAAAGsCEABfAAAAYwAAAEEAAABrAhAAXwAAAJUAAAAZAAAAawIQAF8AAACUAAAAGQAAAGsCEABfAAAAkwAAABkAAABrAhAAXwAAAJAAAAAkAAAAawIQAF8AAACPAAAAJAAAAGsCEABfAAAAeAAAABUAAABrAhAAXwAAAHcAAAAVAAAAawIQAF8AAAB2AAAAFQAA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UDggY2hyb21hIHByZWRpY3Rpb24gbW9kZTog+DsRACQAAABJbmNvbnNpc3RlbnQgaW1hZ2Ugc2l6ZXNVbnN1cHBvcnRlZCBmZWF0dXJlOiAAAAA8PBEAFQAAAEludmFsaWQgcGFyYW1ldGVyOiAAXDwRABMAAABNZW1vcnkgbGltaXQgZXhjZWVkZWRJbnZhbGlkIGNodW5rIHNpemVObyBtb3JlIGZyYW1lc2Nsb3N1cmUgaW52b2tlZCByZWN1cnNpdmVseSBvciBhZnRlciBiZWluZyBkcm9wcGVkAC0kEABcAAAAhTUAAAEAAAA3NDMyMTAvLi1n8kJD5SwrKikoJyYlJCMiITggHx4dHP+UpJWIoJut3d6GeujK1+DQ3My7t7OxqLLI4sOauK5+eL+dwqq9oqGWwY6Jq7C5p7pwr8C8nIyPe4WAk4qSct+X+dju7P3j2ub3h7Tx6fb054v18/vrycTw1pi2zbV/G9TT0tXkxamfg6xpUGJgYVHPkXRzkIKZeWuEbW58b1Jsdo1xgXd9pXVcalNIY11BT6bto8e+4dHLxtnbzur4nu//////////////////////////////////////////////////////////////////////////////////////mwEQAGcAAADZAQAAHQAAAJsBEABnAAAA2gEAABkAAACbARAAZwAAADECAAAbAAAAmwEQAGcAAAAyAgAAHQAAABYMEAByAAAAKgAAABMAAADYHRAAaAAAANMAAAAcAAAAHBgQAGkAAABrBgAAGgAAABwYEABpAAAAawYAADYAAAAcGBAAaQAAAF4GAAAoAAAAFgwQAHIAAAAgAAAACQAAABwYEABpAAAAcwcAAD4AQaj9xAAL2RoBAQEBAgICAgMDAwMEBAQEBQUFBQAAAAADAAQABQAGAAcACAAJAAoACwANAA8AEQATABcAGwAfACMAKwAzADsAQwBTAGMAcwCDAKMAwwDjAAIBAAIAAgACHBgQAGkAAADZBwAATQAAABwYEABpAAAAPAYAAC0AAAAcGBAAaQAAADwGAAAZAAAAHBgQAGkAAACEBgAAIAAAAAEBAQAEAAEAAgADAAQABQAHAAkADQARABkAIQAxAEEAYQCBAMEAAQGBAQECAQMBBAEGAQgBDAEQARgBIAEwAUABYAAAHBgQAGkAAAARAgAAKAAAAAAAAIAAQADAACAAoABgAOAAEACQAFAA0AAwALAAcADwAAgAiABIAMgAKACoAGgA6AAYAJgAWADYADgAuAB4APgABACEAEQAxAAkAKQAZADkABQAlABUANQANAC0AHQA9AAMAIwATADMACwArABsAOwAHACcAFwA3AA8ALwAfAD8AAIAggBCAMIAIgCiAGIA4gASAJIAUgDSADIAsgByAPIACgCKAEoAygAqAKoAagDqABoAmgBaANoAOgC6AHoA+gAGAIYARgDGACYApgBmAOYAFgCWAFYA1gA2ALYAdgD2AA4AjgBOAM4ALgCuAG4A7gAeAJ4AXgDeAD4AvgB+AP4AAQCBAEEAwQAhAKEAYQDhABEAkQBRANEAMQCxAHEA8QAJAIkASQDJACkAqQBpAOkAGQCZAFkA2QA5ALkAeQD5AAUAhQBFAMUAJQClAGUA5QAVAJUAVQDVADUAtQB1APUADQCNAE0AzQAtAK0AbQDtAB0AnQBdAN0APQC9AH0A/QADAIMAQwDDACMAowBjAOMAEwCTAFMA0wAzALMAcwDzAAsAiwBLAMsAKwCrAGsA6wAbAJsAWwDbADsAuwB7APsABwCHAEcAxwAnAKcAZwDnABcAlwBXANcANwC3AHcA9wAPAI8ATwDPAC8ArwBvAO8AHwCfAF8A3wA/AL8AfwD/gACAgIBAgMCAIICggGCA4IAQgJCAUIDQgDCAsIBwgPCACICIgEiAyIAogKiAaIDogBiAmIBYgNiAOIC4gHiA+IAEgISARIDEgCSApIBkgOSAFICUgFSA1IA0gLSAdID0gAyAjIBMgMyALICsgGyA7IAcgJyAXIDcgDyAvIB8gPyAAoCCgEKAwoAigKKAYoDigBKAkoBSgNKAMoCygHKA8oAKgIqASoDKgCqAqoBqgOqAGoCagFqA2oA6gLqAeoD6gAaAhoBGgMaAJoCmgGaA5oAWgJaAVoDWgDaAtoB2gPaADoCOgE6AzoAugK6AboDugB6AnoBegN6APoC+gH6A/oABgIGAQYDBgCGAoYBhgOGAEYCRgFGA0YAxgLGAcYDxgAmAiYBJgMmAKYCpgGmA6YAZgJmAWYDZgDmAuYB5gPmABYCFgEWAxYAlgKWAZYDlgBWAlYBVgNWANYC1gHWA9YANgI2ATYDNgC2ArYBtgO2AHYCdgF2A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AAQAAAABAAAAxQEAAHR5cGUAAAAAAQAAAAEAAADGAQAAY3JpdGljYWxwcml2YXRlcmVzZXJ2ZWRzYWZlY29weU9uZVR3b0ZvdXJFaWdodFNpeHRlZW5HcmF5c2NhbGVSZ2JJbmRleGVkR3JheXNjYWxlQWxwaGFSZ2JhAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAHdyb25nIGRhdGEgc2l6ZSwgZXhwZWN0ZWQgIGdvdCAAOE4RABoAAABSThEABQAAAEVuZCBvZiBpbWFnZSBoYXMgYmVlbiByZWFjaGVkQSBmYXRhbCBkZWNvZGluZyBlcnJvciBoYXMgYmVlbiBlbmNvdW50ZWQgZWFybGllckNSQyBlcnJvcjogZXhwZWN0ZWQgMHggaGF2ZSAweCB3aGlsZSBkZWNvZGluZyAgY2h1bmsuALZOEQAWAAAAzE4RAAgAAADUThEAEAAAAOROEQAHAAAASW52YWxpZCBQTkcgc2lnbmF0dXJlLmZjVEwgY2h1bmsgbWlzc2luZyBiZWZvcmUgZmRBVCBjaHVuay5JREFUIG9yIGZkQVQgY2h1bmsgaXMgbWlzc2luZy4gY2h1bmsgYXBwZWFyZWQgYmVmb3JlIElIRFIgY2h1bmsAAAEAAAAAAAAAZU8RACEAAABDaHVuayAgaXMgaW52YWxpZCBhZnRlciBJREFUIGNodW5rLgCYTxEABgAAAJ5PEQAdAAAAIGlzIGludmFsaWQgYmVmb3JlIFBMVEUgY2h1bmsuAACYTxEABgAAAMxPEQAeAAAAIGlzIGludmFsaWQgYWZ0ZXIgUExURSBjaHVuay4AAACYTxEABgAAAPxPEQAdAAAAIG11c3QgYXBwZWFyIGJldHdlZW4gUExURSBhbmQgSURBVCBjaHVua3MuAACYTxEABgAAACxQEQAqAAAAIG11c3QgYXBwZWFyIGF0IG1vc3Qgb25jZS4AAJhPEQAGAAAAaFARABoAAABTZXF1ZW5jZSBpcyBub3QgaW4gb3JkZXIsIGV4cGVjdGVkICMgZ290ICMAAJRQEQAkAAAAuFARAAYAAADsXBEAAQAAAE5vdCBlbm91Z2ggcGFsZXR0ZSBlbnRyaWVzLCBleHBlY3QgANhQEQAjAAAAUk4RAAUAAADsXBEAAQAAAFRoZSBzaXplIG9mIHRoZSBzQklUIGNodW5rIHNob3VsZCBiZSAgYnl0ZShzKSwgYnV0ICBieXRlKHMpIHdlcmUgcHJvdmlkZWQgZm9yIHRoZSAgY29sb3IgdHlwZS4AABRREQAlAAAAOVERAA4AAABHUREAHwAAAGZREQAMAAAASW52YWxpZCBzQklUIHZhbHVlIC4gSXQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIHRoZSBzYW1wbGUgZGVwdGggAAAAlFERABMAAACnUREAPgAAAOxcEQABAAAATWlzc2luZyBwYWxldHRlIG9mIGluZGV4ZWQgaW1hZ2UuSW52YWxpZCBjb2xvci9kZXB0aCBjb21iaW5hdGlvbiBpbiBoZWFkZXI6IC8AAAAhUhEAKwAAAExSEQABAAAAVHJhbnNwYXJlbmN5IGNodW5rIGZvdW5kIGZvciBjb2xvciB0eXBlIGBSEQAoAAAA7FwRAAEAAABJbnZhbGlkIGltYWdlIGRpbWVuc2lvbnNJbnZhbGlkIGJpdCBkZXB0aCAAALBSEQASAAAA7FwRAAEAAABJbnZhbGlkIGNvbG9yIHR5cGUgANRSEQATAAAA7FwRAAEAAABJbnZhbGlkIGRpc3Bvc2Ugb3AgAPhSEQATAAAA7FwRAAEAAABJbnZhbGlkIGJsZW5kIG9wIAAAABxTEQARAAAA7FwRAAEAAABJbnZhbGlkIHBoeXNpY2FsIHBpeGVsIHNpemUgdW5pdCAAAABAUxEAIQAAAOxcEQABAAAASW52YWxpZCBzUkdCIHJlbmRlcmluZyBpbnRlbnQgAAB0UxEAHgAAAOxcEQABAAAAVW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QgAKRTEQAbAAAA7FwRAAEAAABVbmtub3duIGZpbHRlciBtZXRob2QgAADQUxEAFgAAAOxcEQABAAAAVW5rbm93biBpbnRlcmxhY2UgbWV0aG9kIAAAAPhTEQAZAAAA7FwRAAEAAABTdWIgZnJhbWUgaXMgb3V0LW9mLWJvdW5kcy5Db3JydXB0IGRlZmxhdGUgc3RyZWFtLiBJREFUIG9yIGZEQVQgY2h1bmsgZG9lcyBub3QgaGF2ZSBlbm91Z2ggZGF0YSBmb3IgaW1hZ2UuVW5yZXByZXNlbnRhYmxlIGRhdGEgaW4gdEVYdCBjaHVuay4AAACOVBEAIwAAAEtleXdvcmQgZW1wdHkgb3IgbG9uZ2VyIHRoYW4gNzkgYnl0ZXMuAAC8VBEAJgAAAE5vIG51bGwgc2VwYXJhdG9yIGluIHRFWHQgY2h1bmsu7FQRACAAAABJbnZhbGlkIGNvbXByZXNzZWQgdGV4dCBkYXRhLgAAABRVEQAdAAAAT3V0IG9mIGRlY29tcHJlc3Npb24gc3BhY2UuIFRyeSB3aXRoIGEgbGFyZ2VyIGxpbWl0LjxVEQA0AAAAVXNpbmcgYW4gdW5yZWNvZ25pemVkIGJ5dGUgYXMgY29tcHJlc3Npb24gbWV0aG9kLgAAAHhVEQAxAAAAVXNpbmcgYSBmbGFnIHRoYXQgaXMgbm90IDAgb3IgMjU1IGFzIGEgY29tcHJlc3Npb24gZmxhZyBmb3IgaVRYdCBjaHVuay4AtFURAEcAAABObyBjb21wcmVzc2lvbiBmbGFnIGluIHRoZSBpVFh0IGNodW5rLgAABFYRACYAAABmZEFUIGNodW5rIHNob3J0ZXIgdGhhbiA0IGJ5dGVzVW5leHBlY3RlZCByZXN0YXJ0IG9mICBjaHVuayBzZXF1ZW5jZVNWEQAWAAAAaVYRAA8AAABDaHVuayBsZW5ndGggd3Jvbmc6IIhWEQAUAAAAVW5yZWNvZ25pemVkIGNyaXRpY2FsIGNodW5rOiAAAACkVhEAHQAAAEJhZCBnYW1tYSB2YWx1ZS5saW1pdHMgYXJlIGV4Y2VlZGVkQmFkWmxpYkhlYWRlckluc3VmZmljaWVudElucHV0SW52YWxpZEJsb2NrVHlwZUludmFsaWRVbmNvbXByZXNzZWRCbG9ja0xlbmd0aEludmFsaWRIbGl0SW52YWxpZEhkaXN0SW52YWxpZENvZGVMZW5ndGhSZXBlYXRCYWRDb2RlTGVuZ3RoSHVmZm1hblRyZWVCYWRMaXRlcmFsTGVuZ3RoSHVmZm1hblRyZWVCYWREaXN0YW5jZUh1ZmZtYW5UcmVlSW52YWxpZExpdGVyYWxMZW5ndGhDb2RlSW52YWxpZERpc3RhbmNlQ29kZUlucHV0U3RhcnRzV2l0aFJ1bkRpc3RhbmNlVG9vRmFyQmFja1dyb25nQ2hlY2tzdW1FeHRyYUlucHV0MAAAAAEnEAAqAAAAHgEA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dgMAABkAAABrIRAAYgAAAHcDAAAZAAAAayEQAGIAAAB4AwAAGQAAAGshEABiAAAAeQMAABkAAABrIRAAYgAAANQDAAARAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAABAAIAAwAEAAUABgAHAAgACQD//////////////////woACwAMAA0ADgAPAP////////////////////////////////////////////////////////////////////8KAAsADAANAA4ADwD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AABAAIAAwAEAAUABgAHAAgACQAP//////////////////oACwAMAA0ADgAPAA/////////////////////////////////////////////////////////////////////6AAsADAANAA4ADwAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2shEABiAAAAswEAABoAAABrIRAAYgAAAAACAAATAAAAayEQAGIAAAAFAgAAMwAAAGshEABiAAAACQIAAD4AAABrIRAAYgAAAA8CAAA6AAAAayEQAGIAAACrAQAAPQAAAGshEABiAAAApgEAAEUAAAAgYXQgbGluZSAAAABCCRAAYwAAAPcBAAAhAAAAQgkQAGMAAAD7AQAADAAAACBjb2x1bW4gQgkQAGMAAAACAgAAIQAAAEIJEABjAAAACwIAACoAAABCCRAAYwAAAA8CAAAsAAAAQgkQAGMAAAAUAgAACQAAAGluZi1pbmZOYU4AALQAAAAMAAAABAAAAIkBAACKAQAA0gEAQZiexgAL5Q0BAAAAuAAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkAwhUQAEsAAAAFCwAADgAAAPYQEABPAAAAPAYAABQAAAD2EBAATwAAADwGAAAhAAAA9hAQAE8AAAAwBgAAFAAAAPYQEABPAAAAMAYAACEAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAACojxEAsAAAALEAAACyAAAAsAAAALMAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmlzX2NoYXJfYm91bmRhcnkobmV3X2xlbilFcnJvcigsIGxpbmU6ICwgY29sdW1uOiAUkBEABgAAABqQEQAIAAAAIpARAAoAAABeBxIAAQAAAGludmFsaWQgdmFsdWU6IABMkBEADwAAABqTEQALAAAARU9GIHdoaWxlIHBhcnNpbmcgYSBsaXN0RU9GIHdoaWxlIHBhcnNpbmcgYW4gb2JqZWN0RU9GIHdoaWxlIHBhcnNpbmcgYSBzdHJpbmdFT0Ygd2hpbGUgcGFyc2lu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AAB2JRAAXwAAAL4FAAA1AAAAdiUQAF8AAAC+BQAAJQAAAHYlEABfAAAAvAUAADoAAABWUDggaW50ZXItcHJlZGljdGlvboQBkQACA5wBgIGjAoKDgAN2JRAAXwAAADUFAAAvAAAAgAHnAIECeAGCAzACBAZZA4MFcwSFhnEFhAd4BocImAeIiXAIgAGYAIECswGCA0ACBAZ+A4MFqgSFhnYFhAcuBocIRgeIiV8IgAGvAIECRQGCA48CBAZQA4MFVQSFhlIFhAdIBocImweIiWcIgAE4AIECOgGCAwoCBAarA4MF2gSFhr0FhAcRBocIDQeIiZgIgAGQAIECRwGCAwoCBAYmA4MFqwSFhtUFhAeQBocIIgeIiRoIgAFyAIECGgGCAxECBAajA4MFLASFhsMFhAcVBocICgeIia0IgAF5AIECGAGCA1ACBAbDA4MFGgSFhj4FhAcsBocIQAeIiVUIgAGqAIECLgGCAzcCBAYTA4MFiASFhqAFhAchBocIzgeIiUcIgAE/AIECFAGCAwgCBAZyA4MFcgSFhtAFhAcMBocICQeIieIIgAFRAIECKAGCAwsCBAZgA4MFtgSFhlQFhAcdBocIEAeIiSQIgAGGAIECtwGCA1kCBAaJA4MFYgSFhmUFhAdqBocIpQeIiZQIgAFIAIECuwGCA2QCBAaCA4MFnQSFhm8FhAcgBocISweIiVAIgAFCAIECZgGCA6cCBAZjA4MFSgSFhj4FhAcoBocI6geIiYAIgAEpAIECNQGCAwkCBAayA4MF8QSFho0FhAcaBocICAeIiWsIgAFoAIECTwGCAwwCBAYbA4MF2QSFhv8FhAdXBocIEQeIiQcIgAFKAIECKwGCAxoCBAaSA4MFSQSFhqYFhAcxBocIFweIiZ0IgAFBAIECJgGCA2kCBAagA4MFMwSFhjQFhAcfBocIcweIiYAIgAFXAIECRAGCA0cCBAYsA4MFcgSFhjMFhAcPBocIugeIiRcIgAEvAIECKQGCAw4CBAZuA4MFtgSFhrcFhAcVBocIEQeIicIIgAFCAIECLQGCAxkCBAZmA4MFxQSFhr0FhAcXBocIEgeIiRYIgAFYAIECWAGCA5MCBAaWA4MFKgSFhi4FhActBocIxAeIic0IgAErAIECYQGCA7cCBAZ1A4MFVQSFhiYFhAcjBocIsweIiT0IgAEnAIECNQGCA8gCBAZXA4MFGgSFhhUFhAcrBocI6AeIiasIgAE4AIECIgGCAzMCBAZoA4MFcgSFhmYFhAcdBocIXQeIiU0IgAFrAIECNgGCAyACBAYaA4MFMwSFhgEFhAdRBocIKweIiR8IgAEnAIECHAGCA1UCBAarA4MFOgSFhqUFhAdaBocIYgeIiUAIgAEiAIECFgGCA3QCBAbOA4MFFwSFhiIFhAcrBocIpgeIiUkIgAFEAIECGQGCA2oCBAYWA4MFQASFhqsFhAckBocI4QeIiXIIgAEiAIECEwGCAxUCBAZmA4MFhASFhrwFhAcQBocITAeIiXwIgAE+AIECEgGCA04CBAZfA4MFVQSFhjkFhAcyBocIMAeIiTMIgAHBAIECZQGCAyMCBAafA4MF1wSFhm8FhAdZBocILgeIiW8IgAE8AIEClAGCAx8CBAasA4MF2wSFhuQFhAcVBocIEgeIiW8IgAFwAIECcQGCA00CBAZVA4MFswSFhv8FhAcmBocIeAeIiXIIgAEoAIECKgGCAwECBAbEA4MF9QSFhtEFhAcKBocIGQeIiW0IgAFkAIECUAGCAwgCBAYrA4MFmgSFhgEFhAczBocIGgeIiUcIgAFYAIECKwGCAx0CBAaMA4MFpgSFhtUFhAclBocIKweIiZoIgAE9AIECPwGCAx4CBAabA4MFQwSFhi0FhAdEBocIAQeIidEIgAGOAIECTgGCA04CBAYQA4MF/wSFhoAFhAciBocIxQeIiasIgAEpAIECKAGCAwUCBAZmA4MF0wSFhrcFhAcEBocIAQeIid0IgAEzAIECMgGCAxECBAaoA4MF0QSFhsAFhAcXBocIGQeIiVIIgAF9AIECYgGCAyoCBAZYA4MFaASFhlUFhAd1BocIrweIiVIIgAFfAIECVAGCAzUCBAZZA4MFgASFhmQFhAdxBocIZQeIiS0IgAFLAIECTwGCA3sCBAYvA4MFMwSFhoAFhAdRBocIqweIiQEIgAE5AIECEQGCAwUCBAZHA4MFZgSFhjkFhAc1BocIKQeIiTEIgAFzAIECFQGCAwICBAYKA4MFZgSFhv8FhAemBocIFweIiQYIgAEmAIECIQGCAw0CBAZ5A4MFOQSFhkkFhAcaBocIAQeIiVUIgAEpAIECCgGCA0MCBAaKA4MFTQSFhm4FhAdaBocILweIiXIIgAFlAIECHQGCAxACBAYKA4MFVQSFhoAFhAdlBocIxAeIiRoIgAE5AIECEgGCAwoCBAZmA4MFZgSFhtUFhAciBocIFAeIiSsIgAF1AIECFAGCAw8CBAYkA4MFowSFhoAFhAdEBocIAQeIiRoIgAGKAIECHwGCAyQCBAarA4MFGwSFhqYFhAcmBocILAeIieUIgAFDAIECVwGCAzoCBAapA4MFUgSFhnMFhAcaBocIOweIibMIgAE/AIECOwGCA1oCBAa0A4MFOwSFhqYFhAddBocISQeIiZoIgAEoAIECKAGCAxUCBAZ0A4MFjwSFhtEFhAciBocIJweIia8IgAE5AIECLgGCAxYCBAYYA4MFgASFhgEFhAc2BocIEQeIiSUIgAEvAIECDwGCAxACBAa3A4MFIgSFht8FhAcxBocILQeIibcIgAEuAIECEQGCAyECBAa3A4MFBgSFhmIFhAcPBocIIAeIibcIgAFBAIECIAGCA0kCBAZzA4MFHASFhoAFhAcXBocIgAeIic0IgAEoAIECAwGCAwkCBAZzA4MFMwSFhsAFhAcSBocIBgeIid8IgAFXAIECJQGCAwkCBAZzA4MFOwSFhk0FhAdABocIFQeIiS8IgAFoAIECNwGCAywCBAbaA4MFCQSFhjYFhAc1BocIggeIieIIgAFAAIECWgGCA0YCBAbNA4MFKASFhikFhAcXBocIGgeIiTkIgAE2AIECOQGCA3ACBAa4A4MFBQSFhikFhAcmBocIpgeIidUIgAEeAIECIgGCAxoCBAaFA4MFmASFhnQFhAcKBocIIAeIiYYIgAFLAIECIAGCAwwCBAYzA4MFwASFhv8FhAegBocIKweIiTMIgAEnAIECEwGCAzUCBAbdA4MFGgSFhnIFhAcgBocISQeIif8IgAEfAIECCQGCA0ECBAbqA4MFAgSFhg8FhAcBBocIdgeIiUkIgAFYAIECHwGCAyMCBAZDA4MFZgSFhlUFhAc3BocIugeIiVUIgAE4AIECFQGCAxcCBAZvA4MFOwSFhs0FhActBocIJQeIicAIgAE3AIECJgGCA0YCBAZ8A4MFSQSFhmYFhAcBBocIIgeIiWIIgAFmAIECPQGCA0cCBAYlA4MFIgSFhjUFhAcfBocI8weIicAIgAFFAIECPAGCA0cCBAYmA4MFSQSFhncFhAccBocI3geIiSUIgAFEAIECLQGCA4ACBAYiA4MFAQSFhi8FhAcLBocI9QeIiasIgAE+AIECEQGCAxMCBAZGA4MFkgSFhlUFhAc3BocIPgeIiUYIgAFLAIECDwGCAwkCBAYJA4MFQASFhv8FhAe4BocIdweIiRAIgAElAIECKwGCAyUCBAaaA4MFZASFhqMFhAdVBocIoAeIiQEIgAE/AIECCQGCA1wCBAaIA4MFHASFhkAFhAcgBocIyQeIiVUIgAFWAIECBgGCAxwCBAYFA4MFQASFhv8FhAcZBocI+AeIiQEIgAE4AIECCAGCAxECBAaEA4MFiQSFhv8FhAc3BocIdAeIiYAIgAE6AIECDwGCAxQCBAZSA4MFhwSFhjkFhAcaBocIeQeIiSgIgAGkAIECMgGCAx8CBAaJA4MFmgSFhoUFhAcZBocIIweIidoIgAEzAIECZwGCAywCBAaDA4MFgwSFhnsFhAcfBocIBgeIiZ4IgAFWAIECKAGCA0ACBAaHA4MFlASFhuAFhActBocItweIiYAIgAEWAIECGgGCAxECBAaDA4MF8ASFhpoFhAcOBocIAQeIidEIgAFTAIECDAGCAw0CBAY2A4MFwASFhv8FhAdEBocILweIiRwIgAEtAIECEAGCAxUCBAZbA4MFQASFht4FhAcHBocIAQeIicUIgAE4AIECFQGCAycCBAabA4MFPASFhooFhAcXBocIZgeIidUIgAFVAIECGgGCA1UCBAZVA4MFgASFhoAFhAcgBocIkgeIiasIgAESAIECCwGCAwcCBAY/A4MFkASFhqsFhAcEBocIBAeIifYIgAEjAIECGwGCAwoCBAaSA4MFrgSFhqsFhAcMBocIGgeIiYAIgAG+AIECUAGCAyMCBAZjA4MFtASFhlAFhAd+BocINgeIiS0IgAFVAIECfgGCAy8CBAZXA4MFsASFhjMFhAcpBocIFAeIiSAIgAFlAIECSwGCA4ACBAaLA4MFdgSFhpIFhAd0BocIgAeIiVUIgAE4AIECKQGCAw8CBAawA4MF7ASFhlUFhAclBocICQeIiT4IgAGSAIECJAGCAxMCBAYeA4MFqwSFhv8FhAdhBocIGweIiRQIgAFHAIECHgGCAxECBAZ3A4MFdgSFhv8FhAcRBocIEgeIiYoIgAFlAIECJgGCAzwCBAaKA4MFNwSFhkYFhAcrBocIGgeIiY4IgAGKAIECLQGCAz0CBAY+A4MF2wSFhgEFhAdRBocIvAeIiUAIgAEgAIECKQGCAxQCBAZ1A4MFlwSFho4FhAcUBocIFQeIiaMIgAFwAIECEwGCAwwCBAY9A4MFwwSFhoAFhAcwBocIBAeIiRgIdiUQAF8AAAA/BQAAJQAAAIABjgCBAnIBgoO3AnYlEABfAAAAUQUAABEAAAB2JRAAXwAAAFIFAAARAAAAdiUQAF8AAABTBQAAEQAAAP///////////////////////////////////////////7D2////////////3/H8///////////5/f3////////////0/P//////////6v7+///////////9///////////////2/v//////////7/3+///////////+//7////////////4/v//////////+//+///////////////////////////9/v//////////+/7+///////////+//7////////////+/f/+////////+v/+//7////////+/////////////////////////////////////////////////////////9n/////////////4fzx/f///v/////q+vH6/f/9/v/////+////////////3/7+///////////u/f7+///////////4/v//////////+f7////////////////////////////9////////////9/7////////////////////////////9/v///////////P/////////////////////////////+/v///////////f/////////////////////////////+/f//////////+v/////////////+/////////////////////////////////////////////////////////7r7+v//////////6vv0/v/////////7+/P9/v/+///////9/v//////////7P3+///////////7/f3+/v/////////+/v///////////v7+///////////////////////////+/////////////v7////////////+/////////////////////////////v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////j/////////////+v78/v/////////4/vn9///////////9/f//////////9v39///////////8/vv+/v/////////+/P//////////+P79///////////9//7+///////////7/v//////////9fv+///////////9/f7////////////7/f///////////P3+/////////////v/////////////8////////////+f/+//////////////7//////////////f//////////+v///////////////////////////////////////////v///////////////////////////3YlEABfAAAAVwcAABcAAACLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAKIAYED/gIEBv8DggXkBIOE2wUHCIAGhYaABwkKgAiHiIAJiYqACosBvQCAAoEBgQPyAgQG/wOCBeMEg4TVBQcI/waFhtsHCQqACIeIgAmJioAKiwFqAIACfgGBA+MCBAb8A4IF1gSDhNEFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJiAYED+AIEBv8DggXsBIOE4gUHCP8GhYb/BwkKgAiHiIAJiYqACosBtQCAAoUBgQPuAgQG/gOCBd0Eg4TqBQcI/waFhpoHCQqACIeIgAmJioAKiwFOAIAChgGBA8oCBAb3A4IFxgSDhLQFBwj/BoWG2wcJCoAIh4iACYmKgAqLAQEAgAK5AYED+QIEBv8DggXzBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBuACAApYBgQP3AgQG/wOCBewEg4TgBQcIgAaFhoAHCQqACIeIgAmJioAKiwFNAIACbgGBA9gCBAb/A4IF7ASDhOYFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAJlAYED+wIEBv8DggXxBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBqgCAAosBgQPxAgQG/AOCBewEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwElAIACdAGBA8QCBAbzA4IF5ASDhP8FBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgALMAYED/gIEBv8DggX1BIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBzwCAAqABgQP6AgQG/wOCBe4Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwFmAIACZwGBA+cCBAb/A4IF0wSDhKsFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKYAYED/AIEBv8DggXwBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBsQCAAocBgQPzAgQG/wOCBeoEg4ThBQcIgAaFhoAHCQqACIeIgAmJioAKiwFQAIACgQGBA9MCBAb/A4IFwgSDhOAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9gCAAgEBgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwH/AIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcYAgAIjAYED7QIEBt8DggXBBIOEuwUHCKIGhYagBwkKkQiHiJsJiYo+CosBgwCAAi0BgQPGAgQG3QOCBawEg4SwBQcI3AaFhp0HCQr8CIeI3QmJigEKiwFEAIACLwGBA5ICBAbQA4IFlQSDhKcFBwjdBoWGogcJCv8Ih4jfCYmKgAqLAQEAgAKVAYED8QIEBv8DggXdBIOE4AUHCP8GhYb/BwkKgAiHiIAJiYqACosBuACAAo0BgQPqAgQG/QOCBd4Eg4TcBQcI/waFhscHCQqACIeIgAmJioAKiwFRAIACYwGBA7UCBAbyA4IFsASDhL4FBwj5BoWGygcJCv8Ih4j/CYmKgAqLAQEAgAKBAYED6AIEBv0DggXWBIOExQUHCPIGhYbEBwkK/wiHiP8JiYqACosBYwCAAnkBgQPSAgQG+gOCBckEg4TGBQcI/waFhsoHCQqACIeIgAmJioAKiwEXAIACWwGBA6MCBAbyA4IFqgSDhLsFBwj3BoWG0gcJCv8Ih4j/CYmKgAqLAQEAgALIAYED9gIEBv8DggXqBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBbQCAArIBgQPxAgQG/wOCBecEg4T1BQcI/waFhv8HCQqACIeIgAmJioAKiwEsAIACggGBA8kCBAb9A4IFzQSDhMAFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAKEAYED7wIEBvsDggXbBIOE0QUHCP8GhYalBwkKgAiHiIAJiYqACosBXgCAAogBgQPhAgQG+wOCBdoEg4S+BQcI/waFhv8HCQqACIeIgAmJioAKiwEWAIACZAGBA64CBAb1A4IFugSDhKEFBwj/BoWGxwcJCoAIh4iACYmKgAqLAQEAgAK2AYED+QIEBv8DggXoBIOE6wUHCIAGhYaABwkKgAiHiIAJiYqACosBfACAAo8BgQPxAgQG/wOCBeMEg4TqBQcIgAaFhoAHCQqACIeIgAmJioAKiwEjAIACTQGBA7UCBAb7A4IFwQSDhNMFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAKdAYED9wIEBv8DggXsBIOE5wUHCP8GhYb/BwkKgAiHiIAJiYqACosBeQCAAo0BgQPrAgQG/wOCBeEEg4TjBQcI/waFhv8HCQqACIeIgAmJioAKiwEtAIACYwGBA7wCBAb7A4IFwwSDhNkFBwj/BoWG4AcJCoAIh4iACYmKgAqLAQEAgAIBAYED+wIEBv8DggXVBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBywCAAgEBgQP4AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGJAIACAQGBA7ECBAb/A4IF4ASDhP8FBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAIJAYED+AIEBvsDggXPBIOE0AUHCP8GhYbABwkKgAiHiIAJiYqACosBrwCAAg0BgQPgAgQG8wOCBcEEg4S5BQcI+QaFhsYHCQr/CIeI/wmJioAKiwFJAIACEQGBA6sCBAbdA4IFoQSDhLMFBwjsBoWGpwcJCv8Ih4jqCYmKgAqLAQEAgAJfAYED9wIEBv0DggXUBIOEtwUHCP8GhYb/BwkKgAiHiIAJiYqACosB7wCAAloBgQP0AgQG+gOCBdMEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwGbAIACTQGBA8MCBAb4A4IFvASDhMMFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAIYAYED7wIEBvsDggXaBIOE2wUHCP8GhYbNBwkKgAiHiIAJiYqACosByQCAAjMBgQPbAgQG/wOCBcQEg4S6BQcIgAaFhoAHCQqACIeIgAmJioAKiwFFAIACLgGBA74CBAbvA4IFyQSDhNoFBwj/BoWG5AcJCoAIh4iACYmKgAqLAQEAgAK/AYED+wIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB3wCAAqUBgQP5AgQG/wOCBdUEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGNAIACfAGBA/gCBAb/A4IF/wSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIQAYED+AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBvgCAAiQBgQPmAgQG/wOCBewEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGVAIACAQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgALiAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9wCAAsABgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwHwAIACgAGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKGAYED/AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB1QCAAj4BgQP6AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwE3AIACXQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcoAgAIYAYED1QIEBusDggW6BIOEvwUHCNwGhYagBwkK8AiHiK8JiYr/CosBfgCAAiYBgQO2AgQG6AOCBakEg4S4BQcI5AaFhq4HCQr/CIeIuwmJioAKiwE9AIACLgGBA4oCBAbbA4IFlwSDhLIFBwjwBoWGqgcJCv8Ih4jYCYmKgAqLAQEAgAJwAYED5gIEBvoDggXHBIOEvwUHCPcGhYafBwkK/wiHiP8JiYqACosBpgCAAm0BgQPkAgQG/AOCBdMEg4TXBQcI/waFhq4HCQqACIeIgAmJioAKiwEnAIACTQGBA6ICBAboA4IFrASDhLQFBwj1BoWGsgcJCv8Ih4j/CYmKgAqLAQEAgAI0AYED3AIEBvYDggXGBIOExwUHCPkGhYbcBwkK/wiHiP8JiYqACosBfACAAkoBgQO/AgQG8wOCBbcEg4TBBQcI+gaFht0HCQr/CIeI/wmJioAKiwEYAIACRwGBA4ICBAbbA4IFmgSDhKoFBwjzBoWGtgcJCv8Ih4j/CYmKgAqLAQEAgAK2AYED4QIEBvkDggXbBIOE8AUHCP8GhYbgBwkKgAiHiIAJiYqACosBlQCAApYBgQPiAgQG/AOCBdgEg4TNBQcI/waFhqsHCQqACIeIgAmJioAKiwEcAIACbAGBA6oCBAbyA4IFtwSDhMIFBwj+BoWG3wcJCv8Ih4j/CYmKgAqLAQEAgAJRAYED5gIEBvwDggXMBIOEywUHCP8GhYbABwkKgAiHiIAJiYqACosBewCAAmYBgQPRAgQG9wOCBbwEg4TEBQcI/waFhukHCQqACIeIgAmJioAKiwEUAIACXwGBA5kCBAbzA4IFpASDhK0FBwj/BoWGywcJCoAIh4iACYmKgAqLAQEAgALeAYED+AIEBv8DggXYBIOE1QUHCIAGhYaABwkKgAiHiIAJiYqACosBqACAAq8BgQP2AgQG/AOCBesEg4TNBQcI/waFhv8HCQqACIeIgAmJioAKiwEvAIACdAGBA9cCBAb/A4IF0wSDhNQFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJ5AYED7AIEBv0DggXUBIOE1gUHCP8GhYb/BwkKgAiHiIAJiYqACosBjQCAAlQBgQPVAgQG/AOCBckEg4TKBQcI/waFhtsHCQqACIeIgAmJioAKiwEqAIACUAGBA6ACBAbwA4IFogSDhLkFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9ACAAgEBgQP/AgQG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AAAA8gEAAAAAAAABAAAAAQAAAPMBAAAAAAAABAAAAAQAAACqAQAAQ2ljcHByaW1hcmllc3RyYW5zZmVybWF0cml4ZnVsbF9yYW5nZURpbWVuc2lvbkVycm9ySW5zdWZmaWNpZW50TWVtb3J5AAAAAAAAACAAAAAIAAAA9AEAAAAAAAAEAAAABAAAAPUBAABsaW1pdHNzdXBwb3J0ZWQA9gEAAAwAAAAEAAAA9wEAAFBhcmFtZXRlckVycm9yQ2FwYWNpdHlPdmVyZmxvdwAAAAAAAAQAAAAEAAAA+AEAAEFsbG9jRXJybGF5b3V0Q3NwbGF0KGNlbnRlcjogAAAATtURAA8AAABv0xEACwAAAHrTEQAHAAAAgdMRAAoAAACL0xEADgAAAF4HEgABAAAARXhhY3ROYW1lUGF0aEV4dGVuc2lvblVua25vd25pbnZhbGlkIHNlZWsgdG8gYSBuZWdhdGl2ZSBvciBvdmVyZmxvd2luZyBwb3NpdGlvbgCt1REAMgAAABQAAACmJhAAWgAAAD0AAAAkAAAARW1wdHlJbnZhbGlkRGlnaXRQb3NPdmVyZmxvd05lZ092ZXJmbG93WmVybwAAAAAABAAAAAQAAAD5AQAAVW5zdXBwb3J0ZWRFcnJvclBuZ0pwZWdHaWZXZWJQUG5tVGlmZlRnYURkc0JtcEljb0hkck9wZW5FeHJGYXJiZmVsZEF2aWZRb2lQY3gAAAAAAAAABAAAAAQAAAD6AQAAUGFyc2VJbnRFcnJvckE4TDFMYTFSZ2IxUmdiYTFMMkxhMlJnYjJSZ2JhMkw0TGE0UmdiNFJnYmE0UmdiNXgxTDhMYThSZ2I4UmdiYThMMTZMYTE2UmdiMTZSZ2JhMTZCZ3I4QmdyYThSZ2IzMkZSZ2JhMzJGQ215azhDbXlrMTZMaW1pdFN1cHBvcnREaW1lbnNpb25NaXNtYXRjaEZhaWxlZEFscmVhZHkAAAAAAAAEAAAABAAAAPsBAABSZ2JDaWNwUmVxdWlyZWRHZW5lcmljTm9Nb3JlRGF0YQAAAAAEAAAAAQAAAPwBAABDaWNwTWlzbWF0Y2hleHBlY3RlZGZvdW5kAAAAAAAAAAgAAAAEAAAAxwAAAAAAAAAIAAAABAAAAHAAAADHAAAAoNcRALAAAADIAAAAsgAAALAAAACzAAAA/QEAACgAAAAI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ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9ybWlkID4gbGVu/wASAAkAAABzdGRvdXRmYWlsZWQgcHJpbnRpbmcgdG8gAAAAFgESABMAAABd/BEAAgAAANoQEAAbAAAAjQQAAAkAAABvcGVyYXRpb24gc3VjY2Vzc2Z1bG9uZS10aW1lIGluaXRpYWxpemF0aW9uIG1heSBub3QgYmUgcGVyZm9ybWVkIHJlY3Vyc2l2ZWx5YAESADgAAABjYW5ub3QgcmVjdXJzaXZlbHkgYWNxdWlyZSBtdXRleKABEgAgAAAA6AcQACwAAAATAAAACQAAAGxvY2sgY291bnQgb3ZlcmZsb3cgaW4gcmVlbnRyYW50IG11dGV4AADlFBAAJgAAACMBAAAtAAAA7xoQACMAAADXAAAAFAAAAO8aEAAjAAAA1wAAADEAAABMYXp5TG9jayBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAAwAhIALgAAAMMUEAAhAAAAlwEAAAUAAABmYWlsZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIHRocmVhZCBJRDogYml0c3BhY2UgZXhoYXVzdGVkAHgCEgA3AAAAph4QAB0AAADUBAAADQAAADoKAACFAQAADAAAAAQAAABIAgAASQIAAEoCAAAAAAAACAAAAAQAAABLAgAATAIAAE0CAABOAgAATwIAABAAAAAEAAAAUAIAAFECAABSAgAAUwIAAGNhbm5vdCBtb2RpZnkgdGhlIHBhbmljIGhvb2sgZnJvbSBhIHBhbmlja2luZyB0aHJlYWQcAxIANAAAAA4WEAAcAAAAkAAAAAkAAAAAAAAABAAAAAQAAABUAgAAV291bGRCbG9jayAob3MgZXJyb3IgAAAAAQAAAAAAAACCAxIACwAAAF4HEgABAAAA2hAQABsAAABcAwAAFAAAAE5vdEZvdW5kUGVybWlzc2lvbkRlbmllZENvbm5lY3Rpb25SZWZ1c2VkQ29ubmVjdGlvblJlc2V0SG9zdFVucmVhY2hhYmxlTmV0d29ya1VucmVhY2hhYmxlQ29ubmVjdGlvbkFib3J0ZWROb3RDb25uZWN0ZWRBZGRySW5Vc2VBZGRyTm90QXZhaWxhYmxlTmV0d29ya0Rvd25Ccm9rZW5QaXBlQWxyZWFkeUV4aXN0c05vdEFEaXJlY3RvcnlJc0FEaXJlY3RvcnlEaXJlY3RvcnlOb3RFbXB0eVJlYWRPbmx5RmlsZXN5c3RlbUZpbGVzeXN0ZW1Mb29wU3RhbGVOZXR3b3JrRmlsZUhhbmRsZUludmFsaWRJbnB1dEludmFsaWREYXRhVGltZWRPdXRXcml0ZVplcm9TdG9yYWdlRnVsbE5vdFNlZWthYmxlUXVvdGFFeGNlZWRlZEZpbGVUb29MYXJnZVJlc291cmNlQnVzeUV4ZWN1dGFibGVGaWxlQnVzeURlYWRsb2NrQ3Jvc3Nlc0RldmljZXNUb29NYW55TGlua3NJbnZhbGlkRmlsZW5hbWVBcmd1bWVudExpc3RUb29Mb25nSW50ZXJydXB0ZWRVbnN1cHBvcnRlZFVuZXhwZWN0ZWRFb2ZPdXRPZk1lbW9yeUluUHJvZ3Jlc3NPdGhlclVuY2F0ZWdvcml6ZWR1bnN1cHBvcnRlZCBiYWNrdHJhY2VkaXNhYmxlZCBiYWNrdHJhY2UAXhsQABwAAACKAQAAHQAAAFUCAAAQAAAABAAAAFYCAABXAgAAcGFuaWNrZWQgYXQgAQAAAAAAAABQ/BEAAQAAAFD8EQABAAAAAAAAAAgAAAAEAAAAWAIAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAACgiEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAAAoIhAAKgAAALcEAAANAAAA4BMQAC0AAAAWAQAAKQAAAIUBAAAMAAAABAAAAFkCAABudWxsIHBvaW50ZXIgcGFzc2VkIHRvIHJ1c3RyZWN1cnNpdmUgdXNlIG9mIGFuIG9iamVjdCBkZXRlY3RlZCB3aGljaCB3b3VsZCBsZWFkIHRvIHVuc2FmZSBhbGlhc2luZyBpbiBydXN0SnNWYWx1ZSgpAFYHEgAIAAAAXgcSAAEAAAB/FhAAaQAAAHwAAAARAAAAfxYQAGkAAACJAAAAEQAAAFpJUDY0IGZvb3RlciBpbmRpY2F0ZXMgbW9yZSBmaWxlcyBvbiB0aGlzIGRpc2sgdGhhbiBpbiB0aGUgd2hvbGUgYXJjaGl2ZUludmFsaWQgY2VudHJhbCBkaXJlY3Rvcnkgc2l6ZSBvciBvZmZzZXRmYWlsZWQgdG8gZmlsbCB3aG9sZSBidWZmZXIAAAgSABsAAAAlAAAAAgAAABwIEgBDUkMzMiBjaGVja3N1bSBmYWlsZWQgb24gVW5pY29kZSBleHRyYSBmaWVsZFVuaWNvZGUgZXh0cmEgZmllbGQgaXMgdG9vIHNtYWxsRXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkIGlzIGVtcHR5AAAA/g8QAHQAAABKAAAAJAAAAGZsYWdzIGFuZCBsZW4gZG9uJ3QgbWF0Y2ggaW4gZXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgYXR0cmlidXRlIHNpemVOVEZTIGV4dHJhIGZpZWxkIGhhcyBhbiB1bnN1cHBvcnRlZCBhdHRyaWJ1dGUgdGFnTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAAQGAAA6AAAARXh0cmEgZmllbGQgY29udGVudCBleGNlZWRzIGRlY2xhcmVkIGxlbmd0aADOIRAAWQAAAAYGAAA7AAAAWklQNjQgZXh0cmEgZmllbGQgdHJ1bmNhdGVkWklQNjQgZXh0cmEtZGF0YSBmaWVsZCBpcyB0aGUgd3JvbmcgbGVuZ3RoAAAAziEQAFkAAABeBgAAEgAAAEFFUyBleHRyYSBmaWVsZCB0cnVuY2F0ZWRJbnZhbGlkIEFFUyBlbmNyeXB0aW9uIHN0cmVuZ3RoSW52YWxpZCBBRVMgdmVuZG9yIHZlcnNpb25JbnZhbGlkIEFFUyB2ZW5kb3JBRVMgZXh0cmEgZGF0YSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAIgGAAAfAAAARXh0cmEgZmllbGQgY29udGVudCB0cnVuY2F0ZWRFeHRyYSBmaWVsZCBoZWFkZXIgdHJ1bmNhdGVkSW52YWxpZCBjaGVja3N1bQBBkJbIAAvjBAEAAAC0AQAAKCkAAMQeEABQAAAAKgIAABEAAABpL28gZXJyb3I6IAAsCxIACwAAAGludmFsaWQgWmlwIGFyY2hpdmU6IAAAAEALEgAVAAAAdW5zdXBwb3J0ZWQgWmlwIGFyY2hpdmU6IAAAAGALEgAZAAAAc3BlY2lmaWVkIGZpbGUgbm90IGZvdW5kIGluIGFyY2hpdmVwcm92aWRlZCBwYXNzd29yZCBpcyBpbmNvcnJlY3QAAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAFV0ZjhFcnJvcnZhbGlkX3VwX3RvZXJyb3JfbGVuAAAAWgIAAAwAAAAEAAAAWwIAAAAAAAAEAAAABAAAAFwCAABGcm9tVXRmOEVycm9yYnl0ZXNlcnJvck5vbmVTb21lACYcEABvAAAAwwAAAAkAAAAmHBAAbwAAALwAAAAqAAAAJhwQAG8AAAC5AAAAKgAAAJsBEABnAAAAdAEAACkAAACbARAAZwAAAHkBAAAcAAAAmwEQAGcAAAB5AQAALQAA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AGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUQERIACAcJBgoFCwQMAw0CDgEPAABZFxAAYAAAAJMAAAAJAAAAAABgB1AAAAgQAAAIcwAUCB8AEgdwAAAIMAAACMAAAAkKABAHYAAACCAAAAigAAAJAAAACIAAAAhAAAAI4AAACQYAEAdYAAAIGAAACJAAAAk7ABMHeAAACDgAAAjQAAAJEQARB2gAAAgoAAAIsAAACQgAAAiIAAAISAAACPAAAAkEABAHVAAACBQAAAjjABUIKwATB3QAAAg0AAAIyAAACQ0AEQdkAAAIJAAACKgAAAkEAAAIhAAACEQAAAjoAAAJCAAQB1wAAAgcAAAImAAACVMAFAd8AAAIPAAACNgAAAkXABIHbAAACCwAAAi4AAAJDAAACIwAAAhMAAAI+AAACQMAEAdSAAAIEgAACKMAFQgjABMHcgAACDIAAAjEAAAJCwARB2IAAAgiAAAIpAAACQIAAAiCAAAIQgAACOQAAAkHABAHWgAACBoAAAiUAAAJQwAUB3oAAAg6AAAI1AAACRMAEgdqAAAIKgAACLQAAAkKAAAIigAACEoAAAj0AAAJBQAQB1YAAAgWAAAIAABACDMAEwd2AAAINgAACMwAAAkPABEHZgAACCYAAAisAAAJBgAACIYAAAhGAAAI7AAACQkAEAdeAAAIHgAACJwAAAljABQHfgAACD4AAAjcAAAJGwASB24AAAguAAAIvAAACQ4AAAiOAAAITgAACPwAAAkAAGAHUQAACBEAAAiDABUIHwASB3EAAAgxAAAIwgAACQoAEAdhAAAIIQAACKIAAAkBAAAIgQAACEEAAAjiAAAJBgAQB1kAAAgZAAAIkgAACTsAEwd5AAAIOQAACNIAAAkRABEHaQAACCkAAAiyAAAJCQAACIkAAAhJAAAI8gAACQQAEAdVAAAIFQAACAIBEAgrABMHdQAACDUAAAjKAAAJDQARB2UAAAglAAAIqgAACQUAAAiFAAAIRQAACOoAAAkIABAHXQAACB0AAAiaAAAJUwAUB30AAAg9AAAI2gAACRcAEgdtAAAILQAACLoAAAkNAAAIjQAACE0AAAj6AAAJAwAQB1MAAAgTAAAIwwAVCCMAEwdzAAAIMwAACMYAAAkLABEHYwAACCMAAAimAAAJAwAACIMAAAhDAAAI5gAACQcAEAdbAAAIGwAACJYAAAlDABQHewAACDsAAAjWAAAJEwASB2sAAAgrAAAItgAACQsAAAiLAAAISwAACPYAAAkFABAHVwAACBcAAAgAAEAIMwATB3cAAAg3AAAIzgAACQ8AEQdnAAAIJwAACK4AAAkHAAAIhwAACEcAAAjuAAAJCQAQB18AAAgfAAAIngAACWMAFAd/AAAIPwAACN4AAAkbABIHbwAACC8AAAi+AAAJDwAACI8AAAhPAAAI/gAACQAAYAdQAAAIEAAACHMAFAgfABIHcAAACDAAAAjBAAAJCgAQB2AAAAggAAAIoQAACQAAAAiAAAAIQAAACOEAAAkGABAHWAAACBgAAAiRAAAJOwATB3gAAAg4AAAI0QAACREAEQdoAAAIKAAACLEAAAkIAAAIiAAACEgAAAjxAAAJBAAQB1QAAAgUAAAI4wAVCCsAEwd0AAAINAAACMkAAAkNABEHZAAACCQAAAipAAAJBAAACIQAAAhEAAAI6QAACQgAEAdcAAAIHAAACJkAAAlTABQHfAAACDwAAAjZAAAJFwASB2wAAAgsAAAIuQAACQwAAAiMAAAITAAACPkAAAkDABAHUgAACBIAAAijABUIIwATB3IAAAgyAAAIxQAACQsAEQdiAAAIIgAACKUAAAkCAAAIggAACEIAAAjlAAAJBwAQB1oAAAgaAAAIlQAACUMAFAd6AAAIOgAACNUAAAkTABIHagAACCoAAAi1AAAJCgAACIoAAAhKAAAI9QAACQUAEAdWAAAIFgAACAAAQAgzABMHdgAACDYAAAjNAAAJDwARB2YAAAgmAAAIrQAACQYAAAiGAAAIRgAACO0AAAkJABAHXgAACB4AAAidAAAJYwAUB34AAAg+AAAI3QAACRsAEgduAAAILgAACL0AAAkOAAAIjgAACE4AAAj9AAAJAABgB1EAAAgRAAAIgwAVCB8AEgdxAAAIMQAACMMAAAkKABAHYQAACCEAAAijAAAJAQAACIEAAAhBAAAI4wAACQYAEAdZAAAIGQAACJMAAAk7ABMHeQAACDkAAAjTAAAJEQARB2kAAAgpAAAIswAACQkAAAiJAAAISQAACPMAAAkEABAHVQAACBUAAAgCARAIKwATB3UAAAg1AAAIywAACQ0AEQdlAAAIJQAACKsAAAkFAAAIhQAA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",self.location.href));const A=YA();(typeof I=="string"||typeof Request=="function"&&I instanceof Request||typeof URL=="function"&&I instanceof URL)&&(I=fetch(I));const{instance:g}=await bA(await I,A);return PA(g)}const pA={sortSplats16:OA,sortSplats32:rA,loadPackedSplats:ZA,loadExtSplats:TA,tinyLodPackedSplats:nA,qualityLodPackedSplats:XA,tinyLodExtSplats:VA,qualityLodExtSplats:WA,newLodTree:lA,newSharedLodTree:jA,initLodTree:mA,disposeLodTree:eA,updateLodTrees:zA,traverseLodTrees:vA,getLodTreeLevel:uA,nextChunk:_A};async function DA(I){const{id:A,name:g,args:Q}=I.data;try{const B=pA[g];if(!B)throw new Error(`Unknown worker RPC: ${g}`);const E=await B(Q,{sendStatus:i=>{self.postMessage({id:A,status:i},{transfer:AA(i)})}});self.postMessage({id:A,result:E},{transfer:AA(E)})}catch(B){console.warn(`Worker error: ${B}`),self.postMessage({id:A,error:B},{transfer:AA(B)})}}function OA({numSplats:I,readback:A,ordering:g}){return{activeSplats:sA(I,A,g),readback:A,ordering:g}}function rA({numSplats:I,readback:A,ordering:g}){return{activeSplats:hA(I,A,g),readback:A,ordering:g}}async function u({decoder:I,fileBytes:A,url:g,requestHeader:Q,withCredentials:B,chunked:D,chunkedLength:E,sendStatus:i}){if(A)for(let G=0;G{iA=h});i({nextChunk:!0});const J=await S;if(J.length===0)break;I.push(J),o+=J.length,i({progress:{loaded:o,total:G}})}G===0&&i({progress:{loaded:o,total:o}})}else throw new Error("No url or fileBytes provided");return I.finish()}function P(I){return{numSplats:I.numSplats,packedArray:I.packed,extra:{sh1:I.sh1,sh2:I.sh2,sh3:I.sh3,sh1Codes:I.sh1Codes,sh2Codes:I.sh2Codes,sh3Codes:I.sh3Codes,lodTree:I.lodTree},splatEncoding:I.splatEncoding}}async function ZA({url:I,requestHeader:A,withCredentials:g,fileBytes:Q,fileType:B,pathName:D,chunked:E,chunkedLength:i,encoding:y,lod:o,lodBase:G,lodAbove:S,nonLod:J,sh1Codes:h,sh2Codes:L,sh3Codes:c},{sendStatus:H}){if(!o){const Y=kA(B,D??I,y,h,L,c),f=await u({decoder:Y,fileBytes:Q,url:I,requestHeader:A,withCredentials:g,chunked:E,chunkedLength:i,sendStatus:H}),p=P(f);return p.splatEncoding.lodOpacity?{lodSplats:p}:p}const s=oA(B,D??I,y),F=await u({decoder:s,fileBytes:Q,url:I,requestHeader:A,withCredentials:g,chunked:E,chunkedLength:i,sendStatus:H});if(F.has_lod())return{lodSplats:P(F.to_packedsplats_lod())};if(S!==void 0&&F.len() ${F.len()} (${e} ms)`);const K=F.to_packedsplats_lod();return N.lodSplats=P(K),N}function b(I){return{numSplats:I.numSplats,extArrays:[I.ext0,I.ext1],extra:{sh1:I.sh1,sh2:I.sh2,sh3a:I.sh3a,sh3b:I.sh3b,sh1Codes:I.sh1Codes,sh2Codes:I.sh2Codes,sh3Codes:I.sh3Codes,lodTree:I.lodTree}}}async function TA({url:I,requestHeader:A,withCredentials:g,fileBytes:Q,fileType:B,pathName:D,chunked:E,chunkedLength:i,lod:y,lodBase:o,lodAbove:G,nonLod:S,sh1Codes:J,sh2Codes:h,sh3Codes:L},{sendStatus:c}){if(!y){const K=yA(B,D??I,J,h,L),Y=await u({decoder:K,fileBytes:Q,url:I,requestHeader:A,withCredentials:g,chunked:E,chunkedLength:i,sendStatus:c}),f=b(Y);return f.extra.lodTree?{lodSplats:f}:f}const H=RA(B,D??I),s=await u({decoder:H,fileBytes:Q,url:I,requestHeader:A,withCredentials:g,chunked:E,chunkedLength:i,sendStatus:c});if(s.has_lod())return{lodSplats:b(s.to_extsplats_lod())};if(G!==void 0&&s.len() ${s.len()} (${m} ms)`);const e=s.to_extsplats_lod();return F.lodSplats=b(e),F}async function nA({numSplats:I,packedArray:A,extra:g,lodBase:Q,rgba:B,encoding:D}){const E=Math.max(1.1,Math.min(2,Q??1.5)),i=performance.now(),o=HA(I,A,g,E,!1,B,D),G=performance.now()-i,S=P(o);return console.log(`Tiny LoD: ${I} -> ${S.numSplats} (${G} ms)`),S}async function XA({numSplats:I,packedArray:A,extra:g,lodBase:Q,rgba:B,encoding:D}){const E=Math.max(1.1,Math.min(2,Q??1.75)),i=performance.now(),y=GA(I,A,g,E,B,D),o=performance.now()-i,G=P(y);return console.log(`Bhatt LoD: ${I} -> ${G.numSplats} (${o} ms)`),G}async function VA({numSplats:I,extArrays:A,extra:g,lodBase:Q,rgba:B,encoding:D}){const E=Math.max(1.1,Math.min(2,Q??1.5)),i=performance.now(),o=UA(I,A[0],A[1],g,E,!1,B),G=performance.now()-i,S=b(o);return console.log(`Tiny LoD: ${I} -> ${S.numSplats} (${G} ms)`),S}async function WA({numSplats:I,extArrays:A,extra:g,lodBase:Q,rgba:B,encoding:D}){const E=Math.max(1.1,Math.min(2,Q??1.75)),i=performance.now(),y=wA(I,A[0],A[1],g,E,B),o=performance.now()-i,G=b(y);return console.log(`Bhatt LoD: ${I} -> ${G.numSplats} (${o} ms)`),G}function lA({capacity:I}){const{lodId:A}=JA(I);return{lodId:A}}function jA({lodId:I}){const{lodId:A}=MA(I);return{lodId:A}}function mA({numSplats:I,lodTree:A}){const{lodId:g,chunkToPage:Q}=SA(I,A);return{lodId:g,chunkToPage:Q}}function eA({lodId:I}){FA(I)}function zA({ranges:I}){const A=new Uint32Array(I.map(({lodId:E})=>E)),g=new Uint32Array(I.map(({pageBase:E})=>E)),Q=new Uint32Array(I.map(({chunkBase:E})=>E)),B=new Uint32Array(I.map(({count:E})=>E)),D=I.map(({lodTreeData:E})=>E);cA(A,g,Q,B,D)}function vA({maxSplats:I,pixelScaleLimit:A,lastPixelLimit:g,instances:Q}){const B=Object.entries(Q),D=new Uint32Array(B.map(([F,N])=>N.lodId)),E=new Uint32Array(B.map(([F,N])=>N.rootPage??4294967295)),i=new Float32Array(B.flatMap(([F,N])=>{if(N.viewToObjectCols.length!==16)throw new Error("Incorrect array size for viewToObjectCols");return N.viewToObjectCols})),y=new Float32Array(B.map(([F,N])=>N.lodScale)),o=new Float32Array(B.map(([F,N])=>N.behindFoveate)),G=new Float32Array(B.map(([F,N])=>N.coneFov0)),S=new Float32Array(B.map(([F,N])=>N.coneFov)),J=new Float32Array(B.map(([F,N])=>N.coneFoveate)),h=LA(I,A,g,D,E,i,y,o,J,G,S),{instanceIndices:L,chunks:c,pixelLimit:H}=h;return{keyIndices:B.reduce((F,[N,d],x)=>(F[N]=L[x],F),{}),chunks:c,pixelLimit:H}}function uA({lodId:I,level:A}){return NA(I,A)}let iA=I=>{};async function _A({chunk:I}){iA(I)}function AA(I){const A=[],g=new Set;function Q(B){B&&typeof B=="object"&&!g.has(B)&&(g.add(B),B instanceof ArrayBuffer?A.push(B):ArrayBuffer.isView(B)?A.push(B.buffer):Array.isArray(B)?B.forEach(Q):Object.values(B).forEach(Q))}return Q(I),A}async function $A(){const I=[],A=g=>{I.push(g)};self.addEventListener("message",A),await fA(),self.removeEventListener("message",A),self.addEventListener("message",DA);for(const g of I)DA(g);I.length=0}$A().catch(console.error)})();\n//# sourceMappingURL=worker-C9LcsNvD.js.map\n',xB=typeof self<"u"&&self.Blob&&new Blob([PC],{type:"text/javascript;charset=utf-8"});function Ws(Q){let A;try{if(A=xB&&(self.URL||self.webkitURL).createObjectURL(xB),!A)throw"";const I=new Worker(A,{name:Q==null?void 0:Q.name});return I.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),I}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(PC),{name:Q==null?void 0:Q.name})}finally{A&&(self.URL||self.webkitURL).revokeObjectURL(A)}}const BQ=class BQ{constructor(){this.queue=null,this.messages={},this.worker=new Ws,this.worker.onmessage=A=>this.onMessage(A)}onMessage(A){var D;const{id:I,result:g,error:B,status:C}=A.data,E=this.messages[I];E&&(B!==void 0?(delete this.messages[I],E.reject(B)):C!==void 0?(D=E.onStatus)==null||D.call(E,C):(delete this.messages[I],E.resolve(g)))}tryExclusive(A){return this.queue==null?this.exclusive(A):null}async exclusive(A){const I=this.queue;I!=null?await new Promise(g=>{I.push(()=>g(void 0))}):this.queue=[];try{return await A(this)}finally{this.queue!=null&&(this.queue.length===0?this.queue=null:this.queue.shift()())}}async call(A,I,g={}){const B=++BQ.currentId,C=new Promise((E,D)=>{this.messages[B]={resolve:E,reject:D,onStatus:g.onStatus}});return this.worker.postMessage({id:B,name:A,args:I},{transfer:EB(I)}),await C}dispose(){this.worker.terminate();const A=Object.values(this.messages);this.messages={};for(const I of A)I.reject(new Error("Worker terminate"))}};BQ.currentId=0;let Mg=BQ;class js{constructor(A=4){this.numWorkers=0,this.freelist=[],this.queue=[],this.maxWorkers=A}async withWorker(A){const I=await this.allocWorker();try{return await A(I)}finally{this.freeWorker(I)}}async allocWorker(){const A=this.freelist.pop();if(A)return A;if(this.numWorkers{this.queue.push(I)})}freeWorker(A){if(this.numWorkers>this.maxWorkers){this.numWorkers-=1;return}const I=this.queue.shift();if(I){I(A);return}this.freelist.push(A)}}const oQ=new js,Z={type:"Gsplat"},rA={type:"CovSplat"},qg={type:"PackedSplats"},sB={type:"ExtSplats"},uC={type:"CovSplats"},vs=Q=>new mC({packedSplats:Q}),$I=(Q,A)=>new VC({packedSplats:Q,index:A}),TC=(Q,A,I,g)=>new XC({packedSplats:Q,index:A,base:I,count:g}),zs=Q=>new WC({extSplats:Q}),OC=(Q,A)=>new jC({extSplats:Q,index:A}),_s=Q=>new vC({covsplats:Q}),$s=(Q,A)=>new zC({covSplats:Q,index:A}),$g=Q=>new _C({gsplat:Q}),OA=Q=>new $C({gsplat:Q}),EI=({gsplat:Q,flags:A,index:I,center:g,scales:B,quaternion:C,rgba:E,rgb:D,opacity:i,x:w,y:s,z:o,r:y,g:h,b:k})=>new AE({gsplat:Q,flags:A,index:I,center:g,scales:B,quaternion:C,rgba:E,rgb:D,opacity:i,x:w,y:s,z:o,r:y,g:h,b:k}),PQ=Q=>new gE({gsplat:Q}),GB=(Q,{scale:A,rotate:I,translate:g,recolor:B})=>new QE({gsplat:Q,scale:A,rotate:I,translate:g,recolor:B}),yB=Q=>new EE({index:Q}),uQ=Q=>new DE({index:Q}),LA=oA(` +"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const SA=require("three"),_Q=require("three/addons/postprocessing/Pass.js");function hw(Q){const A=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(Q){for(const I in Q)if(I!=="default"){const g=Object.getOwnPropertyDescriptor(Q,I);Object.defineProperty(A,I,g.get?g:{enumerable:!0,get:()=>Q[I]})}}return A.default=Q,Object.freeze(A)}const a=hw(SA),fA=-12,pA=9,yw=Math.exp(fA),cw=Math.exp(pA),VB=-30,lI=Math.exp(VB),$Q=11,AB=11,ZB=11,kw=$Q+AB,P=1<<$Q,OA=1<(Q.PLY="ply",Q.SPZ="spz",Q.SPLAT="splat",Q.KSPLAT="ksplat",Q.PCSOGS="pcsogs",Q.PCSOGSZIP="pcsogszip",Q.RAD="rad",Q))(eA||{});const QQ={rgbMin:0,rgbMax:1,lnScaleMin:fA,lnScaleMax:pA,sh1Max:1,sh2Max:1,sh3Max:1,lodOpacity:!1},ew=Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_SPLAT_ENCODING:QQ,LN_SCALE_MAX:pA,LN_SCALE_MIN:fA,LN_SCALE_ZERO:VB,SCALE_MAX:cw,SCALE_MIN:yw,SCALE_ZERO:lI,SPLAT_TEX_DEPTH:OB,SPLAT_TEX_DEPTH_BITS:ZB,SPLAT_TEX_DEPTH_MASK:Nw,SPLAT_TEX_HEIGHT:OA,SPLAT_TEX_HEIGHT_BITS:AB,SPLAT_TEX_HEIGHT_MASK:Sw,SPLAT_TEX_LAYER_BITS:kw,SPLAT_TEX_MIN_HEIGHT:IB,SPLAT_TEX_WIDTH:P,SPLAT_TEX_WIDTH_BITS:$Q,SPLAT_TEX_WIDTH_MASK:Fw,SplatFileType:eA,USE_COMPILED_PARSER_FUNCTION:Mw,WASM_SPLAT_SORT:Rw},Symbol.toStringTag,{value:"Module"}));function pI(Q){return Q==="bool"||Q==="bvec2"||Q==="bvec3"||Q==="bvec4"}function uI(Q){return Q==="int"||Q==="uint"||Q==="float"}function qA(Q){return Q==="int"||Q==="ivec2"||Q==="ivec3"||Q==="ivec4"}function lA(Q){return Q==="uint"||Q==="uvec2"||Q==="uvec3"||Q==="uvec4"}function ng(Q){return Q==="float"||Q==="vec2"||Q==="vec3"||Q==="vec4"}function WB(Q){return Q==="mat2"||Q==="mat2x2"||Q==="mat2x3"||Q==="mat2x4"||Q==="mat3"||Q==="mat3x2"||Q==="mat3x3"||Q==="mat3x4"||Q==="mat4"||Q==="mat4x2"||Q==="mat4x3"||Q==="mat4x4"}function UI(Q){return ng(Q)||WB(Q)}function $I(Q){return Q==="vec2"||Q==="ivec2"||Q==="uvec2"}function Ag(Q){return Q==="vec3"||Q==="ivec3"||Q==="uvec3"}function Yg(Q){return Q==="vec4"||Q==="ivec4"||Q==="uvec4"}function Jw(Q){return $I(Q)||Ag(Q)||Yg(Q)}function YI(Q){return Q==="mat2"||Q==="mat2x2"}function rI(Q){return Q==="mat3"||Q==="mat3x3"}function KI(Q){return Q==="mat4"||Q==="mat4x4"}function vB(Q){switch(Q){case"vec2":return"float";case"vec3":return"float";case"vec4":return"float";case"ivec2":return"int";case"ivec3":return"int";case"ivec4":return"int";case"uvec2":return"uint";case"uvec3":return"uint";case"uvec4":return"uint";default:throw new Error(`Invalid vector type: ${Q}`)}}function XB(Q){switch(Q){case"vec2":case"ivec2":case"uvec2":return 2;case"vec3":case"ivec3":case"uvec3":return 3;case"vec4":case"ivec4":case"uvec4":return 4;default:throw new Error(`Invalid vector type: ${Q}`)}}function Uw(Q){if(uI(Q))return"float";if($I(Q))return"vec2";if(Ag(Q))return"vec3";if(Yg(Q))return"vec4";throw new Error(`Invalid vector type: ${Q}`)}function jB(Q){if(uI(Q))return"uint";if($I(Q))return"uvec2";if(Ag(Q))return"uvec3";if(Yg(Q))return"uvec4";throw new Error(`Invalid vector type: ${Q}`)}function Lw(Q){if(uI(Q))return"int";if($I(Q))return"ivec2";if(Ag(Q))return"ivec3";if(Yg(Q))return"ivec4";throw new Error(`Invalid vector type: ${Q}`)}function zB(Q){if(typeof Q=="string")return Q;if(typeof Q=="object"&&Q.type)return Q.type;throw new Error(`Invalid DynoType: ${String(Q)}`)}function NA(Q){return Math.trunc(Q).toString()}function RA(Q){return`${Math.max(0,Math.trunc(Q)).toString()}u`}function $(Q){return Q===Number.POSITIVE_INFINITY?"INFINITY":Q===Number.NEGATIVE_INFINITY?"-INFINITY":Number.isInteger(Q)?Q.toFixed(1):Q.toString()}function BA(Q){return Q instanceof JI?Q.type:Q.dynoOut().type}class JI{constructor(A){this.__isDynoValue=!0,this.type=A}}class Z extends JI{constructor(A,I){super(A.outTypes[I]),this.dyno=A,this.key=I}}class ZI extends JI{constructor(A,I){super(A),this.literal=I}getLiteral(){return this.literal}}function Wg(Q,A){return new ZI(Q,A)}class _B extends ZI{constructor(A,I){super(A,""),this.value=I}getLiteral(){const{type:A,value:I}=this;switch(A){case"bool":return I?"true":"false";case"uint":return RA(I);case"int":return NA(I);case"float":return $(I);case"bvec2":{const g=I;return`bvec2(${g[0]}, ${g[1]})`}case"uvec2":{if(I instanceof a.Vector2)return`uvec2(${RA(I.x)}, ${RA(I.y)})`;const g=I;return`uvec2(${RA(g[0])}, ${RA(g[1])})`}case"ivec2":{if(I instanceof a.Vector2)return`ivec2(${NA(I.x)}, ${NA(I.y)})`;const g=I;return`ivec2(${NA(g[0])}, ${NA(g[1])})`}case"vec2":{if(I instanceof a.Vector2)return`vec2(${$(I.x)}, ${$(I.y)})`;const g=I;return`vec2(${$(g[0])}, ${$(g[1])})`}case"bvec3":{const g=I;return`bvec3(${g[0]}, ${g[1]}, ${g[2]})`}case"uvec3":{if(I instanceof a.Vector3)return`uvec3(${RA(I.x)}, ${RA(I.y)}, ${RA(I.z)})`;const g=I;return`uvec3(${RA(g[0])}, ${RA(g[1])}, ${RA(g[2])})`}case"ivec3":{if(I instanceof a.Vector3)return`ivec3(${NA(I.x)}, ${NA(I.y)}, ${NA(I.z)})`;const g=I;return`ivec3(${NA(g[0])}, ${NA(g[1])}, ${NA(g[2])})`}case"vec3":{if(I instanceof a.Vector3)return`vec3(${$(I.x)}, ${$(I.y)}, ${$(I.z)})`;const g=I;return`vec3(${$(g[0])}, ${$(g[1])}, ${$(g[2])})`}case"bvec4":{const g=I;return`bvec4(${g[0]}, ${g[1]}, ${g[2]}, ${g[3]})`}case"uvec4":{if(I instanceof a.Vector4)return`uvec4(${RA(I.x)}, ${RA(I.y)}, ${RA(I.z)}, ${RA(I.w)})`;const g=I;return`uvec4(${RA(g[0])}, ${RA(g[1])}, ${RA(g[2])}, ${RA(g[3])})`}case"ivec4":{if(I instanceof a.Vector4)return`ivec4(${NA(I.x)}, ${NA(I.y)}, ${NA(I.z)}, ${NA(I.w)})`;const g=I;return`ivec4(${NA(g[0])}, ${NA(g[1])}, ${NA(g[2])}, ${NA(g[3])})`}case"vec4":{if(I instanceof a.Vector4)return`vec4(${$(I.x)}, ${$(I.y)}, ${$(I.z)}, ${$(I.w)})`;if(I instanceof a.Quaternion)return`vec4(${$(I.x)}, ${$(I.y)}, ${$(I.z)}, ${$(I.w)})`;const g=I;return`vec4(${$(g[0])}, ${$(g[1])}, ${$(g[2])}, ${$(g[3])})`}case"mat2":case"mat2x2":{const g=I,B=g instanceof a.Matrix2?g.elements:I,C=new Array(4).fill(0).map((E,i)=>$(B[i]));return`${A}(${C.join(", ")})`}case"mat2x3":{const g=I,B=new Array(6).fill(0).map((C,E)=>$(g[E]));return`${A}(${B.join(", ")})`}case"mat2x4":{const g=I,B=new Array(8).fill(0).map((C,E)=>$(g[E]));return`${A}(${B.join(", ")})`}case"mat3":case"mat3x3":{const g=I,B=g instanceof a.Matrix3?g.elements:I,C=new Array(9).fill(0).map((E,i)=>$(B[i]));return`${A}(${C.join(", ")})`}case"mat3x2":{const g=I,B=new Array(6).fill(0).map((C,E)=>$(g[E]));return`${A}(${B.join(", ")})`}case"mat3x4":{const g=I,B=new Array(12).fill(0).map((C,E)=>$(g[E]));return`${A}(${B.join(", ")})`}case"mat4":case"mat4x4":{const g=I,B=g instanceof a.Matrix4?g.elements:I,C=new Array(16).fill(0).map((E,i)=>$(B[i]));return`${A}(${C.join(", ")})`}case"mat4x2":{const g=I,B=new Array(8).fill(0).map((C,E)=>$(g[E]));return`${A}(${B.join(", ")})`}case"mat4x3":{const g=I,B=new Array(12).fill(0).map((C,E)=>$(g[E]));return`${A}(${B.join(", ")})`}default:throw new Error(`Type not implemented: ${String(A)}`)}}}function AA(Q,A){return new _B(Q,A)}function Eg(Q){const A=String(Q);if(pI(Q))return`${A}(false)`;if(UI(Q))return`${A}(0.0)`;if(qA(Q))return`${A}(0)`;if(lA(Q))return`${A}(0u)`;throw new Error(`Type not implemented: ${A}`)}function Hw(Q){const A=String(Q);if(pI(Q))return`${A}(true)`;if(UI(Q))return`${A}(1.0)`;if(qA(Q))return`${A}(1)`;if(lA(Q))return`${A}(1u)`;throw new Error(`Type not implemented: ${A}`)}function nw(Q){const A=String(Q);if(pI(Q))return`${A}(true)`;if(UI(Q))return`${A}(-1.0)`;if(qA(Q))return`${A}(-1)`;if(lA(Q))return`${A}(0xFFFFFFFFu)`;throw new Error(`Type not implemented: ${A}`)}const nB=" ";class $B{constructor({indent:A}={}){this.globals=new Set,this.statements=[],this.uniforms={},this.declares=new Set,this.updaters=[],this.sequence=0,this.indent=nB,this.indent=A??nB}nextSequence(){return this.sequence++}}class q{constructor({inTypes:A,outTypes:I,inputs:g,update:B,globals:C,statements:E,generate:i}){this.inTypes=A??{},this.outTypes=I??{},this.inputs=g??{},this.update=B,this.globals=C,this.statements=E,this.generate=i??(({inputs:o,outputs:D,compile:s})=>{var w,G;return{globals:(w=this.globals)==null?void 0:w.call(this,{inputs:o,outputs:D,compile:s}),statements:(G=this.statements)==null?void 0:G.call(this,{inputs:o,outputs:D,compile:s})}})}get outputs(){const A={};for(const I in this.outTypes)A[I]=new Z(this,I);return A}apply(A){return Object.assign(this.inputs,A),this.outputs}compile({inputs:A,outputs:I,compile:g}){const B=[`// ${this.constructor.name}(${Object.values(A).join(", ")}) => (${Object.values(I).join(", ")})`],C=[];for(const D in I){const s=I[D];s&&!g.declares.has(s)&&(g.declares.add(s),C.push(D))}const{globals:E,statements:i,uniforms:o}=this.generate({inputs:A,outputs:I,compile:g});for(const D of E??[])g.globals.add(D);for(const D in o)g.uniforms[D]=o[D];this.update&&g.updaters.push(this.update);for(const D of C){const s=I[D];s&&(g.uniforms[s]||B.push(`${QB(s,this.outTypes[D])};`))}return i!=null&&i.length&&(B.push("{"),B.push(...i.map(D=>g.indent+D)),B.push("}")),B}}class aI extends q{constructor({inTypes:A,outTypes:I,inputs:g,update:B,globals:C,construct:E}){super({inTypes:A,outTypes:I,inputs:g,update:B,globals:C,generate:i=>this.generateBlock(i)}),this.construct=E}generateBlock({inputs:A,outputs:I,compile:g}){var c,h;const B={},C={};for(const y in A)A[y]!=null&&(B[y]=new ZI(this.inTypes[y],A[y]));for(const y in I)I[y]!=null&&(C[y]=new JI(this.outTypes[y]));const E={roots:[]},i=this.construct(B,C,E);for(const y of((c=this.globals)==null?void 0:c.call(this,{inputs:A,outputs:I,compile:g}))??[])g.globals.add(y);const o=[],D=new Map;function s(y,k,F){let R=D.get(y);if(!R){R={sequence:g.nextSequence(),outNames:new Map,newOuts:new Set},D.set(y,R);for(const N in y.inputs){let S=y.inputs[N];for(;S;){if(S instanceof JI){S instanceof Z&&s(S.dyno,S.key);break}if(typeof S.dynoOut!="function")throw new Error(`dynoOut is not a function for ${S.constructor.name}`);S=S.dynoOut()}}o.push(y)}k&&(F||R.newOuts.add(k),R.outNames.set(k,F??`${k}_${R.sequence}`))}for(const y of E.roots)s(y);for(const y in C){let k=(i==null?void 0:i[y])??C[y];for(;k;){if(k instanceof JI){k instanceof Z&&s(k.dyno,k.key,I[y]);break}k=k.dynoOut()}C[y]=k}const w=[];for(const y of o){const k={},F={};for(const S in y.inputs){let M=y.inputs[S];for(;M;){if(M instanceof JI){if(M instanceof ZI)k[S]=M.getLiteral();else if(M instanceof Z){const U=(h=D.get(M.dyno))==null?void 0:h.outNames.get(M.key);if(!U)throw new Error(`Source not found for ${M.dyno.constructor.name}.${M.key}`);k[S]=U}break}M=M.dynoOut()}}const R=D.get(y)??{outNames:new Map};for(const[S,M]of R.outNames.entries())F[S]=M;const N=y.compile({inputs:k,outputs:F,compile:g});w.push(N)}const G=[];for(const y in I)C[y]instanceof ZI&&G.push(`${I[y]} = ${C[y].getLiteral()};`);return G.length>0&&w.push(G),{statements:w.flatMap((y,k)=>k===0?y:["",...y])}}}function HA(Q,A,I,{update:g,globals:B}={}){return new aI({inTypes:Q,outTypes:A,construct:I,update:g,globals:B})}function gB({inTypes:Q,outTypes:A,inputs:I,update:g,globals:B,statements:C,generate:E}){return new q({inTypes:Q,outTypes:A,inputs:I,update:g,globals:B,statements:C,generate:E})}function QB(Q,A,I){const g=typeof A=="string"?A:A.type;if(!g)throw new Error(`Invalid DynoType: ${String(A)}`);return`${g} ${Q}${I!=null?`[${I}]`:""}`}function z(Q){var C;let A=!1;const I=Q.split(` +`).map(E=>{const i=E.trimEnd();return A?i:i.length>0?(A=!0,i):null}).filter(E=>E!=null);for(;I.length>0&&I[I.length-1].length===0;)I.pop();if(I.length===0)return[];const g=(C=I[0].match(/^\s*/))==null?void 0:C[0];if(!g)return I;const B=new RegExp(`^${g}`);return I.map(E=>E.replace(B,""))}function GA(Q){return z(Q).join(` +`)}class r extends q{constructor({a:A,outKey:I,outTypeFunc:g}){const B={a:BA(A)},C=g(BA(A)),E={[I]:C};super({inTypes:B,outTypes:E,inputs:{a:A}}),this.outKey=I}dynoOut(){return new Z(this,this.outKey)}}class iA extends q{constructor({a:A,b:I,outKey:g,outTypeFunc:B}){const C={a:BA(A),b:BA(I)},E=B(BA(A),BA(I)),i={[g]:E};super({inTypes:C,outTypes:i,inputs:{a:A,b:I}}),this.outKey=g}dynoOut(){return new Z(this,this.outKey)}}class PI extends q{constructor({a:A,b:I,c:g,outKey:B,outTypeFunc:C}){const E={a:BA(A),b:BA(I),c:BA(g)},i=C(BA(A),BA(I),BA(g)),o={[B]:i};super({inTypes:E,outTypes:o,inputs:{a:A,b:I,c:g}}),this.outKey=B}dynoOut(){return new Z(this,this.outKey)}}const j={type:"Gsplat"},YA={type:"CovSplat"},BQ={type:"PackedSplats"},BB={type:"ExtSplats"},AC={type:"CovSplats"},Yw=Q=>new CC({packedSplats:Q}),IC=(Q,A)=>new iC({packedSplats:Q,index:A}),gC=(Q,A,I,g)=>new DC({packedSplats:Q,index:A,base:I,count:g}),rw=Q=>new oC({extSplats:Q}),QC=(Q,A)=>new wC({extSplats:Q,index:A}),Kw=Q=>new sC({covsplats:Q}),dw=(Q,A)=>new aC({covSplats:Q,index:A}),vg=Q=>new GC({gsplat:Q}),bA=Q=>new tC({gsplat:Q}),BI=({gsplat:Q,flags:A,index:I,center:g,scales:B,quaternion:C,rgba:E,rgb:i,opacity:o,x:D,y:s,z:w,r:G,g:t,b:c})=>new hC({gsplat:Q,flags:A,index:I,center:g,scales:B,quaternion:C,rgba:E,rgb:i,opacity:o,x:D,y:s,z:w,r:G,g:t,b:c}),KQ=Q=>new cC({gsplat:Q}),BC=(Q,{scale:A,rotate:I,translate:g,recolor:B})=>new kC({gsplat:Q,scale:A,rotate:I,translate:g,recolor:B}),CB=Q=>new NC({index:Q}),dQ=Q=>new RC({index:Q}),rA=GA(` struct Gsplat { vec3 center; uint flags; @@ -22,7 +14,7 @@ bool isGsplatActive(uint flags) { return (flags & GSPLAT_FLAG_ACTIVE) != 0u; } -`),KI=oA(` +`),HI=GA(` struct CovSplat { vec3 center; uint flags; @@ -35,14 +27,14 @@ bool isCovSplatActive(uint flags) { return (flags & GSPLAT_FLAG_ACTIVE) != 0u; } -`),sQ=oA(` +`),CQ=GA(` struct PackedSplats { usampler2DArray textureArray; int numSplats; vec4 rgbMinMaxLnScaleMinMax; bool lodOpacity; }; -`);class mC extends e{constructor({packedSplats:A}){super({a:A,outKey:"numSplats",outTypeFunc:()=>"int"}),this.statements=({inputs:I,outputs:g})=>[`${g.numSplats} = ${I.a}.numSplats;`]}}const ZC=oA(` +`);class CC extends r{constructor({packedSplats:A}){super({a:A,outKey:"numSplats",outTypeFunc:()=>"int"}),this.statements=({inputs:I,outputs:g})=>[`${g.numSplats} = ${I.a}.numSplats;`]}}const EC=GA(` bool readPackedArray(usampler2DArray texture, int numSplats, vec4 rgbMinMaxLnScaleMinMax, int index, out Gsplat gsplat) { if ((index >= 0) && (index < numSplats)) { uvec4 packedData = texelFetch(texture, splatTexCoord(index), 0); @@ -52,31 +44,31 @@ return false; } } -`);class VC extends d{constructor({packedSplats:A,index:I}){super({inTypes:{packedSplats:qg,index:"int"},outTypes:{gsplat:Z},inputs:{packedSplats:A,index:I},globals:()=>[LA,sQ,ZC],statements:({inputs:g,outputs:B})=>{const{gsplat:C}=B;if(!C)return[];const{packedSplats:E,index:D}=g;let i;return E&&D?i=z(` +`);class iC extends q{constructor({packedSplats:A,index:I}){super({inTypes:{packedSplats:BQ,index:"int"},outTypes:{gsplat:j},inputs:{packedSplats:A,index:I},globals:()=>[rA,CQ,EC],statements:({inputs:g,outputs:B})=>{const{gsplat:C}=B;if(!C)return[];const{packedSplats:E,index:i}=g;let o;return E&&i?o=z(` ${C}.flags = 0u; - if (readPackedArray(${E}.textureArray, ${E}.numSplats, ${E}.rgbMinMaxLnScaleMinMax, ${D}, ${C})) { + if (readPackedArray(${E}.textureArray, ${E}.numSplats, ${E}.rgbMinMaxLnScaleMinMax, ${i}, ${C})) { if (${E}.lodOpacity) { ${C}.rgba.a = 2.0 * ${C}.rgba.a; } bool zeroSize = all(equal(${C}.scales, vec3(0.0, 0.0, 0.0))); ${C}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE; } - `):i=[`${C}.flags = 0u;`],i.push(`${C}.index = ${D??"0"};`),i}})}dynoOut(){return new V(this,"gsplat")}}class XC extends d{constructor({packedSplats:A,index:I,base:g,count:B}){super({inTypes:{packedSplats:qg,index:"int",base:"int",count:"int"},outTypes:{gsplat:Z},inputs:{packedSplats:A,index:I,base:g,count:B},globals:()=>[LA,sQ,ZC],statements:({inputs:C,outputs:E})=>{const{gsplat:D}=E;if(!D)return[];const{packedSplats:i,index:w,base:s,count:o}=C;let y;return i&&w&&s&&o?y=z(` - ${D}.flags = 0u; - if (readPackedArray(${i}.textureArray, ${i}.numSplats, ${i}.rgbMinMaxLnScaleMinMax, ${w}, ${D})) { - if (${i}.lodOpacity) { - ${D}.rgba.a = 2.0 * ${D}.rgba.a; + `):o=[`${C}.flags = 0u;`],o.push(`${C}.index = ${i??"0"};`),o}})}dynoOut(){return new Z(this,"gsplat")}}class DC extends q{constructor({packedSplats:A,index:I,base:g,count:B}){super({inTypes:{packedSplats:BQ,index:"int",base:"int",count:"int"},outTypes:{gsplat:j},inputs:{packedSplats:A,index:I,base:g,count:B},globals:()=>[rA,CQ,EC],statements:({inputs:C,outputs:E})=>{const{gsplat:i}=E;if(!i)return[];const{packedSplats:o,index:D,base:s,count:w}=C;let G;return o&&D&&s&&w?G=z(` + ${i}.flags = 0u; + if (readPackedArray(${o}.textureArray, ${o}.numSplats, ${o}.rgbMinMaxLnScaleMinMax, ${D}, ${i})) { + if (${o}.lodOpacity) { + ${i}.rgba.a = 2.0 * ${i}.rgba.a; } - bool zeroSize = all(equal(${D}.scales, vec3(0.0, 0.0, 0.0))); - ${D}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE; + bool zeroSize = all(equal(${i}.scales, vec3(0.0, 0.0, 0.0))); + ${i}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE; } - `):y=[`${D}.flags = 0u;`],y.push(`${D}.index = ${w??"0"};`),y}})}dynoOut(){return new V(this,"gsplat")}}const hB=oA(` + `):G=[`${i}.flags = 0u;`],G.push(`${i}.index = ${D??"0"};`),G}})}dynoOut(){return new Z(this,"gsplat")}}const EB=GA(` struct ExtSplats { usampler2DArray textureArray1; usampler2DArray textureArray2; int numSplats; }; -`);class WC extends e{constructor({extSplats:A}){super({a:A,outKey:"numSplats",outTypeFunc:()=>"int"}),this.statements=({inputs:I,outputs:g})=>[`${g.numSplats} = ${I.a}.numSplats;`]}}const AG=oA(` +`);class oC extends r{constructor({extSplats:A}){super({a:A,outKey:"numSplats",outTypeFunc:()=>"int"}),this.statements=({inputs:I,outputs:g})=>[`${g.numSplats} = ${I.a}.numSplats;`]}}const qw=GA(` void readExtArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out Gsplat gsplat) { gsplat.flags = 0u; if ((index >= 0) && (index < numSplats)) { @@ -88,9 +80,9 @@ gsplat.index = index; } } -`);class jC extends d{constructor({extSplats:A,index:I}){super({inTypes:{extSplats:sB,index:"int"},outTypes:{gsplat:Z},inputs:{extSplats:A,index:I},globals:()=>[LA,hB,AG],statements:({inputs:g,outputs:B})=>{const{gsplat:C}=B;if(!C)return[`${C}.flags = 0u;`];const{extSplats:E,index:D}=g;return E&&D?z(` - readExtArrays(${E}.textureArray1, ${E}.textureArray2, ${E}.numSplats, ${D}, ${C}); - `):[`${C}.flags = 0u;`]}})}dynoOut(){return new V(this,"gsplat")}}class vC extends e{constructor({covsplats:A}){super({a:A,outKey:"numSplats",outTypeFunc:()=>"int"}),this.statements=({inputs:I,outputs:g})=>[`${g.numSplats} = ${I.a}.numSplats;`]}}const IG=oA(` +`);class wC extends q{constructor({extSplats:A,index:I}){super({inTypes:{extSplats:BB,index:"int"},outTypes:{gsplat:j},inputs:{extSplats:A,index:I},globals:()=>[rA,EB,qw],statements:({inputs:g,outputs:B})=>{const{gsplat:C}=B;if(!C)return[`${C}.flags = 0u;`];const{extSplats:E,index:i}=g;return E&&i?z(` + readExtArrays(${E}.textureArray1, ${E}.textureArray2, ${E}.numSplats, ${i}, ${C}); + `):[`${C}.flags = 0u;`]}})}dynoOut(){return new Z(this,"gsplat")}}class sC extends r{constructor({covsplats:A}){super({a:A,outKey:"numSplats",outTypeFunc:()=>"int"}),this.statements=({inputs:I,outputs:g})=>[`${g.numSplats} = ${I.a}.numSplats;`]}}const lw=GA(` void readCovArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out CovSplat covsplat) { covsplat.flags = 0u; if ((index >= 0) && (index < numSplats)) { @@ -102,9 +94,9 @@ gsplat.index = index; } } -`);class zC extends d{constructor({covSplats:A,index:I}){super({inTypes:{covSplats:uC,index:"int"},outTypes:{covsplat:rA},inputs:{covSplats:A,index:I},globals:()=>[LA,KI,IG],statements:({inputs:g,outputs:B})=>{const{covsplat:C}=B;if(!C)return[`${C}.flags = 0u;`];const{covSplats:E,index:D}=g;return E&&D?z(` - readCovArrays(${E}.textureArray, ${E}.numSplats, ${D}, ${C}); - `):[`${C}.flags = 0u;`]}})}dynoOut(){return new V(this,"covsplat")}}class _C extends d{constructor({gsplat:A}){super({inTypes:{gsplat:Z},outTypes:{covsplat:rA},inputs:{gsplat:A},globals:()=>[LA,KI],statements:({inputs:I,outputs:g})=>{const{gsplat:B}=I,{covsplat:C}=g;return B?z(` +`);class aC extends q{constructor({covSplats:A,index:I}){super({inTypes:{covSplats:AC,index:"int"},outTypes:{covsplat:YA},inputs:{covSplats:A,index:I},globals:()=>[rA,HI,lw],statements:({inputs:g,outputs:B})=>{const{covsplat:C}=B;if(!C)return[`${C}.flags = 0u;`];const{covSplats:E,index:i}=g;return E&&i?z(` + readCovArrays(${E}.textureArray, ${E}.numSplats, ${i}, ${C}); + `):[`${C}.flags = 0u;`]}})}dynoOut(){return new Z(this,"covsplat")}}class GC extends q{constructor({gsplat:A}){super({inTypes:{gsplat:j},outTypes:{covsplat:YA},inputs:{gsplat:A},globals:()=>[rA,HI],statements:({inputs:I,outputs:g})=>{const{gsplat:B}=I,{covsplat:C}=g;return B?z(` ${C}.flags = 0u; if (isGsplatActive(${B}.flags)) { ${C}.flags = ${B}.flags; @@ -116,7 +108,7 @@ ${C}.xxyyzz = vec3(m[0][0], m[1][1], m[2][2]); ${C}.xyxzyz = vec3(m[0][1], m[0][2], m[1][2]); } - `):[`${C}.flags = 0u;`]}})}dynoOut(){return new V(this,"covsplat")}}class $C extends d{constructor({gsplat:A}){super({inTypes:{gsplat:Z},outTypes:{flags:"uint",active:"bool",index:"int",center:"vec3",scales:"vec3",quaternion:"vec4",rgba:"vec4",rgb:"vec3",opacity:"float",x:"float",y:"float",z:"float",r:"float",g:"float",b:"float"},inputs:{gsplat:A},globals:()=>[LA],statements:({inputs:I,outputs:g})=>{const{gsplat:B}=I,{flags:C,active:E,index:D,center:i,scales:w,quaternion:s,rgba:o,rgb:y,opacity:h,x:k,y:R,z:F,r:a,g:S,b:M}=g;return[C?`${C} = ${B?`${B}.flags`:"0u"};`:null,E?`${E} = isGsplatActive(${B?`${B}.flags`:"0u"});`:null,D?`${D} = ${B?`${B}.index`:"0"};`:null,i?`${i} = ${B?`${B}.center`:"vec3(0.0, 0.0, 0.0)"};`:null,w?`${w} = ${B?`${B}.scales`:"vec3(0.0, 0.0, 0.0)"};`:null,s?`${s} = ${B?`${B}.quaternion`:"vec4(0.0, 0.0, 0.0, 1.0)"};`:null,o?`${o} = ${B?`${B}.rgba`:"vec4(0.0, 0.0, 0.0, 0.0)"};`:null,y?`${y} = ${B?`${B}.rgba.rgb`:"vec3(0.0, 0.0, 0.0)"};`:null,h?`${h} = ${B?`${B}.rgba.a`:"0.0"};`:null,k?`${k} = ${B?`${B}.center.x`:"0.0"};`:null,R?`${R} = ${B?`${B}.center.y`:"0.0"};`:null,F?`${F} = ${B?`${B}.center.z`:"0.0"};`:null,a?`${a} = ${B?`${B}.rgba.r`:"0.0"};`:null,S?`${S} = ${B?`${B}.rgba.g`:"0.0"};`:null,M?`${M} = ${B?`${B}.rgba.b`:"0.0"};`:null].filter(Boolean)}})}}class AE extends d{constructor({gsplat:A,flags:I,index:g,center:B,scales:C,quaternion:E,rgba:D,rgb:i,opacity:w,x:s,y:o,z:y,r:h,g:k,b:R}){super({inTypes:{gsplat:Z,flags:"uint",index:"int",center:"vec3",scales:"vec3",quaternion:"vec4",rgba:"vec4",rgb:"vec3",opacity:"float",x:"float",y:"float",z:"float",r:"float",g:"float",b:"float"},outTypes:{gsplat:Z},inputs:{gsplat:A,flags:I,index:g,center:B,scales:C,quaternion:E,rgba:D,rgb:i,opacity:w,x:s,y:o,z:y,r:h,g:k,b:R},globals:()=>[LA],statements:({inputs:F,outputs:a})=>{const{gsplat:S}=a;if(!S)return[];const{gsplat:M,flags:c,index:N,center:U,scales:J,quaternion:t,rgba:H,rgb:K,opacity:Y,x:L,y:q,z:n,r,g:p,b:m}=F;return[`${S}.flags = ${c??(M?`${M}.flags`:"0u")};`,`${S}.index = ${N??(M?`${M}.index`:"0")};`,`${S}.center = ${U??(M?`${M}.center`:"vec3(0.0, 0.0, 0.0)")};`,`${S}.scales = ${J??(M?`${M}.scales`:"vec3(0.0, 0.0, 0.0)")};`,`${S}.quaternion = ${t??(M?`${M}.quaternion`:"vec4(0.0, 0.0, 0.0, 1.0)")};`,`${S}.rgba = ${H??(M?`${M}.rgba`:"vec4(0.0, 0.0, 0.0, 0.0)")};`,K?`${S}.rgba.rgb = ${K};`:null,Y?`${S}.rgba.a = ${Y};`:null,L?`${S}.center.x = ${L};`:null,q?`${S}.center.y = ${q};`:null,n?`${S}.center.z = ${n};`:null,r?`${S}.rgba.r = ${r};`:null,p?`${S}.rgba.g = ${p};`:null,m?`${S}.rgba.b = ${m};`:null].filter(Boolean)}})}dynoOut(){return new V(this,"gsplat")}}const IE=oA(` + `):[`${C}.flags = 0u;`]}})}dynoOut(){return new Z(this,"covsplat")}}class tC extends q{constructor({gsplat:A}){super({inTypes:{gsplat:j},outTypes:{flags:"uint",active:"bool",index:"int",center:"vec3",scales:"vec3",quaternion:"vec4",rgba:"vec4",rgb:"vec3",opacity:"float",x:"float",y:"float",z:"float",r:"float",g:"float",b:"float"},inputs:{gsplat:A},globals:()=>[rA],statements:({inputs:I,outputs:g})=>{const{gsplat:B}=I,{flags:C,active:E,index:i,center:o,scales:D,quaternion:s,rgba:w,rgb:G,opacity:t,x:c,y:h,z:y,r:k,g:F,b:R}=g;return[C?`${C} = ${B?`${B}.flags`:"0u"};`:null,E?`${E} = isGsplatActive(${B?`${B}.flags`:"0u"});`:null,i?`${i} = ${B?`${B}.index`:"0"};`:null,o?`${o} = ${B?`${B}.center`:"vec3(0.0, 0.0, 0.0)"};`:null,D?`${D} = ${B?`${B}.scales`:"vec3(0.0, 0.0, 0.0)"};`:null,s?`${s} = ${B?`${B}.quaternion`:"vec4(0.0, 0.0, 0.0, 1.0)"};`:null,w?`${w} = ${B?`${B}.rgba`:"vec4(0.0, 0.0, 0.0, 0.0)"};`:null,G?`${G} = ${B?`${B}.rgba.rgb`:"vec3(0.0, 0.0, 0.0)"};`:null,t?`${t} = ${B?`${B}.rgba.a`:"0.0"};`:null,c?`${c} = ${B?`${B}.center.x`:"0.0"};`:null,h?`${h} = ${B?`${B}.center.y`:"0.0"};`:null,y?`${y} = ${B?`${B}.center.z`:"0.0"};`:null,k?`${k} = ${B?`${B}.rgba.r`:"0.0"};`:null,F?`${F} = ${B?`${B}.rgba.g`:"0.0"};`:null,R?`${R} = ${B?`${B}.rgba.b`:"0.0"};`:null].filter(Boolean)}})}}class hC extends q{constructor({gsplat:A,flags:I,index:g,center:B,scales:C,quaternion:E,rgba:i,rgb:o,opacity:D,x:s,y:w,z:G,r:t,g:c,b:h}){super({inTypes:{gsplat:j,flags:"uint",index:"int",center:"vec3",scales:"vec3",quaternion:"vec4",rgba:"vec4",rgb:"vec3",opacity:"float",x:"float",y:"float",z:"float",r:"float",g:"float",b:"float"},outTypes:{gsplat:j},inputs:{gsplat:A,flags:I,index:g,center:B,scales:C,quaternion:E,rgba:i,rgb:o,opacity:D,x:s,y:w,z:G,r:t,g:c,b:h},globals:()=>[rA],statements:({inputs:y,outputs:k})=>{const{gsplat:F}=k;if(!F)return[];const{gsplat:R,flags:N,index:S,center:M,scales:U,quaternion:e,rgba:J,rgb:n,opacity:H,x:L,y:l,z:d,r:K,g:f,b:V}=y;return[`${F}.flags = ${N??(R?`${R}.flags`:"0u")};`,`${F}.index = ${S??(R?`${R}.index`:"0")};`,`${F}.center = ${M??(R?`${R}.center`:"vec3(0.0, 0.0, 0.0)")};`,`${F}.scales = ${U??(R?`${R}.scales`:"vec3(0.0, 0.0, 0.0)")};`,`${F}.quaternion = ${e??(R?`${R}.quaternion`:"vec4(0.0, 0.0, 0.0, 1.0)")};`,`${F}.rgba = ${J??(R?`${R}.rgba`:"vec4(0.0, 0.0, 0.0, 0.0)")};`,n?`${F}.rgba.rgb = ${n};`:null,H?`${F}.rgba.a = ${H};`:null,L?`${F}.center.x = ${L};`:null,l?`${F}.center.y = ${l};`:null,d?`${F}.center.z = ${d};`:null,K?`${F}.rgba.r = ${K};`:null,f?`${F}.rgba.g = ${f};`:null,V?`${F}.rgba.b = ${V};`:null].filter(Boolean)}})}dynoOut(){return new Z(this,"gsplat")}}const yC=GA(` vec3 gsplatNormal(vec3 scales, vec4 quaternion) { float minScale = min(scales.x, min(scales.y, scales.z)); vec3 normal; @@ -129,69 +121,77 @@ } return quatVec(quaternion, normal); } -`);class gE extends e{constructor({gsplat:A}){super({a:A,outKey:"normal",outTypeFunc:()=>"vec3"}),this.globals=()=>[LA,IE],this.statements=({inputs:I,outputs:g})=>[`${g.normal} = gsplatNormal(${I.a}.scales, ${I.a}.quaternion);`]}}class QE extends d{constructor({gsplat:A,scale:I,rotate:g,translate:B,recolor:C}){super({inTypes:{gsplat:Z,scale:"float",rotate:"vec4",translate:"vec3",recolor:"vec4"},outTypes:{gsplat:Z},inputs:{gsplat:A,scale:I,rotate:g,translate:B,recolor:C},globals:()=>[LA],statements:({inputs:E,outputs:D,compile:i})=>{const{gsplat:w}=D;if(!w||!E.gsplat)return[];const{scale:s,rotate:o,translate:y,recolor:h}=E,k=i.indent;return[`${w} = ${E.gsplat};`,`if (isGsplatActive(${w}.flags)) {`,s?`${k}${w}.center *= ${s};`:null,o?`${k}${w}.center = quatVec(${o}, ${w}.center);`:null,y?`${k}${w}.center += ${y};`:null,s?`${k}${w}.scales *= ${s};`:null,o?`${k}${w}.quaternion = quatQuat(${o}, ${w}.quaternion);`:null,h?`${k}${w}.rgba *= ${h};`:null,"}"].filter(Boolean)}})}dynoOut(){return new V(this,"gsplat")}}const AQ=Q=>new BE({covsplat:Q}),RB=({covsplat:Q,flags:A,index:I,center:g,rgba:B,rgb:C,opacity:E,x:D,y:i,z:w,r:s,g:o,b:y})=>new CE({covsplat:Q,flags:A,index:I,center:g,rgba:B,rgb:C,opacity:E,x:D,y:i,z:w,r:s,g:o,b:y});class BE extends d{constructor({covsplat:A}){super({inTypes:{covsplat:rA},outTypes:{flags:"uint",active:"bool",index:"int",center:"vec3",rgba:"vec4",rgb:"vec3",opacity:"float",x:"float",y:"float",z:"float",r:"float",g:"float",b:"float"},inputs:{covsplat:A},globals:()=>[KI],statements:({inputs:I,outputs:g})=>{const{covsplat:B}=I,{flags:C,active:E,index:D,center:i,rgba:w,rgb:s,opacity:o,x:y,y:h,z:k,r:R,g:F,b:a}=g;return[C?`${C} = ${B?`${B}.flags`:"0u"};`:null,E?`${E} = isCovSplatActive(${B?`${B}.flags`:"0u"});`:null,D?`${D} = ${B?`${B}.index`:"0"};`:null,i?`${i} = ${B?`${B}.center`:"vec3(0.0, 0.0, 0.0)"};`:null,w?`${w} = ${B?`${B}.rgba`:"vec4(0.0, 0.0, 0.0, 0.0)"};`:null,s?`${s} = ${B?`${B}.rgba.rgb`:"vec3(0.0, 0.0, 0.0)"};`:null,o?`${o} = ${B?`${B}.rgba.a`:"0.0"};`:null,y?`${y} = ${B?`${B}.center.x`:"0.0"};`:null,h?`${h} = ${B?`${B}.center.y`:"0.0"};`:null,k?`${k} = ${B?`${B}.center.z`:"0.0"};`:null,R?`${R} = ${B?`${B}.rgba.r`:"0.0"};`:null,F?`${F} = ${B?`${B}.rgba.g`:"0.0"};`:null,a?`${a} = ${B?`${B}.rgba.b`:"0.0"};`:null].filter(Boolean)}})}}class CE extends d{constructor({covsplat:A,flags:I,index:g,center:B,rgba:C,rgb:E,opacity:D,x:i,y:w,z:s,r:o,g:y,b:h}){super({inTypes:{covsplat:rA,flags:"uint",index:"int",center:"vec3",rgba:"vec4",rgb:"vec3",opacity:"float",x:"float",y:"float",z:"float",r:"float",g:"float",b:"float"},outTypes:{covsplat:rA},inputs:{covsplat:A,flags:I,index:g,center:B,rgba:C,rgb:E,opacity:D,x:i,y:w,z:s,r:o,g:y,b:h},globals:()=>[KI],statements:({inputs:k,outputs:R})=>{const{covsplat:F}=R;if(!F)return[];const{covsplat:a,flags:S,index:M,center:c,rgba:N,rgb:U,opacity:J,x:t,y:H,z:K,r:Y,g:L,b:q}=k;return[`${F}.flags = ${S??(a?`${a}.flags`:"0u")};`,`${F}.index = ${M??(a?`${a}.index`:"0")};`,`${F}.center = ${c??(a?`${a}.center`:"vec3(0.0, 0.0, 0.0)")};`,`${F}.rgba = ${N??(a?`${a}.rgba`:"vec4(0.0, 0.0, 0.0, 0.0)")};`,U?`${F}.rgba.rgb = ${U};`:null,J?`${F}.rgba.a = ${J};`:null,t?`${F}.center.x = ${t};`:null,H?`${F}.center.y = ${H};`:null,K?`${F}.center.z = ${K};`:null,Y?`${F}.rgba.r = ${Y};`:null,L?`${F}.rgba.g = ${L};`:null,q?`${F}.rgba.b = ${q};`:null,`${F}.xxyyzz = ${a?`${a}.xxyyzz`:"vec3(0.0, 0.0, 0.0)"};`,`${F}.xyxzyz = ${a?`${a}.xyxzyz`:"vec3(0.0, 0.0, 0.0)"};`].filter(Boolean)}})}dynoOut(){return new V(this,"covsplat")}}class EE extends d{constructor({index:A}){super({inTypes:{index:"int"},outTypes:{coord:"ivec3"},inputs:{index:A},statements:({inputs:I,outputs:g})=>{const{index:B}=I,{coord:C}=g;return!B||!C?[]:[`${C} = splatTexCoord(${B});`]}})}dynoOut(){return new V(this,"coord")}}class DE extends d{constructor({index:A}){super({inTypes:{index:"int"},outTypes:{coord:"ivec3"},inputs:{index:A},statements:({inputs:I,outputs:g})=>{const{index:B}=I,{coord:C}=g;return!B||!C?[]:[`${C} = pagedSplatTexCoord(${B});`]}})}dynoOut(){return new V(this,"coord")}}const kB=(Q,A)=>new GE({gsplat:Q,rgbMinMaxLnScaleMinMax:A}),iE=(Q,A)=>new yE({covsplat:Q,rgbMinMaxLnScaleMinMax:A}),wE=Q=>new hE({gsplat:Q}),TQ=Q=>new RE({covsplat:Q}),oE=(Q,A,I,g)=>new QG({gsplat:Q,viewCenter:A,viewDir:I,sortRadial:g}),sE=(Q,A,I,g)=>new BG({covsplat:Q,viewCenter:A,viewDir:I,sortRadial:g}),gG=Q=>new FB({rgba8:Q});class GE extends d{constructor({gsplat:A,rgbMinMaxLnScaleMinMax:I}){super({inTypes:{gsplat:Z,rgbMinMaxLnScaleMinMax:"vec4"},inputs:{gsplat:A,rgbMinMaxLnScaleMinMax:I},globals:()=>[LA],statements:({inputs:g,outputs:B})=>{const{gsplat:C,rgbMinMaxLnScaleMinMax:E}=g;return C&&E?z(` +`);class cC extends r{constructor({gsplat:A}){super({a:A,outKey:"normal",outTypeFunc:()=>"vec3"}),this.globals=()=>[rA,yC],this.statements=({inputs:I,outputs:g})=>[`${g.normal} = gsplatNormal(${I.a}.scales, ${I.a}.quaternion);`]}}class kC extends q{constructor({gsplat:A,scale:I,rotate:g,translate:B,recolor:C}){super({inTypes:{gsplat:j,scale:"float",rotate:"vec4",translate:"vec3",recolor:"vec4"},outTypes:{gsplat:j},inputs:{gsplat:A,scale:I,rotate:g,translate:B,recolor:C},globals:()=>[rA],statements:({inputs:E,outputs:i,compile:o})=>{const{gsplat:D}=i;if(!D||!E.gsplat)return[];const{scale:s,rotate:w,translate:G,recolor:t}=E,c=o.indent;return[`${D} = ${E.gsplat};`,`if (isGsplatActive(${D}.flags)) {`,s?`${c}${D}.center *= ${s};`:null,w?`${c}${D}.center = quatVec(${w}, ${D}.center);`:null,G?`${c}${D}.center += ${G};`:null,s?`${c}${D}.scales *= ${s};`:null,w?`${c}${D}.quaternion = quatQuat(${w}, ${D}.quaternion);`:null,t?`${c}${D}.rgba *= ${t};`:null,"}"].filter(Boolean)}})}dynoOut(){return new Z(this,"gsplat")}}const Xg=Q=>new FC({covsplat:Q}),iB=({covsplat:Q,flags:A,index:I,center:g,rgba:B,rgb:C,opacity:E,x:i,y:o,z:D,r:s,g:w,b:G})=>new SC({covsplat:Q,flags:A,index:I,center:g,rgba:B,rgb:C,opacity:E,x:i,y:o,z:D,r:s,g:w,b:G});class FC extends q{constructor({covsplat:A}){super({inTypes:{covsplat:YA},outTypes:{flags:"uint",active:"bool",index:"int",center:"vec3",rgba:"vec4",rgb:"vec3",opacity:"float",x:"float",y:"float",z:"float",r:"float",g:"float",b:"float"},inputs:{covsplat:A},globals:()=>[HI],statements:({inputs:I,outputs:g})=>{const{covsplat:B}=I,{flags:C,active:E,index:i,center:o,rgba:D,rgb:s,opacity:w,x:G,y:t,z:c,r:h,g:y,b:k}=g;return[C?`${C} = ${B?`${B}.flags`:"0u"};`:null,E?`${E} = isCovSplatActive(${B?`${B}.flags`:"0u"});`:null,i?`${i} = ${B?`${B}.index`:"0"};`:null,o?`${o} = ${B?`${B}.center`:"vec3(0.0, 0.0, 0.0)"};`:null,D?`${D} = ${B?`${B}.rgba`:"vec4(0.0, 0.0, 0.0, 0.0)"};`:null,s?`${s} = ${B?`${B}.rgba.rgb`:"vec3(0.0, 0.0, 0.0)"};`:null,w?`${w} = ${B?`${B}.rgba.a`:"0.0"};`:null,G?`${G} = ${B?`${B}.center.x`:"0.0"};`:null,t?`${t} = ${B?`${B}.center.y`:"0.0"};`:null,c?`${c} = ${B?`${B}.center.z`:"0.0"};`:null,h?`${h} = ${B?`${B}.rgba.r`:"0.0"};`:null,y?`${y} = ${B?`${B}.rgba.g`:"0.0"};`:null,k?`${k} = ${B?`${B}.rgba.b`:"0.0"};`:null].filter(Boolean)}})}}class SC extends q{constructor({covsplat:A,flags:I,index:g,center:B,rgba:C,rgb:E,opacity:i,x:o,y:D,z:s,r:w,g:G,b:t}){super({inTypes:{covsplat:YA,flags:"uint",index:"int",center:"vec3",rgba:"vec4",rgb:"vec3",opacity:"float",x:"float",y:"float",z:"float",r:"float",g:"float",b:"float"},outTypes:{covsplat:YA},inputs:{covsplat:A,flags:I,index:g,center:B,rgba:C,rgb:E,opacity:i,x:o,y:D,z:s,r:w,g:G,b:t},globals:()=>[HI],statements:({inputs:c,outputs:h})=>{const{covsplat:y}=h;if(!y)return[];const{covsplat:k,flags:F,index:R,center:N,rgba:S,rgb:M,opacity:U,x:e,y:J,z:n,r:H,g:L,b:l}=c;return[`${y}.flags = ${F??(k?`${k}.flags`:"0u")};`,`${y}.index = ${R??(k?`${k}.index`:"0")};`,`${y}.center = ${N??(k?`${k}.center`:"vec3(0.0, 0.0, 0.0)")};`,`${y}.rgba = ${S??(k?`${k}.rgba`:"vec4(0.0, 0.0, 0.0, 0.0)")};`,M?`${y}.rgba.rgb = ${M};`:null,U?`${y}.rgba.a = ${U};`:null,e?`${y}.center.x = ${e};`:null,J?`${y}.center.y = ${J};`:null,n?`${y}.center.z = ${n};`:null,H?`${y}.rgba.r = ${H};`:null,L?`${y}.rgba.g = ${L};`:null,l?`${y}.rgba.b = ${l};`:null,`${y}.xxyyzz = ${k?`${k}.xxyyzz`:"vec3(0.0, 0.0, 0.0)"};`,`${y}.xyxzyz = ${k?`${k}.xyxzyz`:"vec3(0.0, 0.0, 0.0)"};`].filter(Boolean)}})}dynoOut(){return new Z(this,"covsplat")}}class NC extends q{constructor({index:A}){super({inTypes:{index:"int"},outTypes:{coord:"ivec3"},inputs:{index:A},statements:({inputs:I,outputs:g})=>{const{index:B}=I,{coord:C}=g;return!B||!C?[]:[`${C} = splatTexCoord(${B});`]}})}dynoOut(){return new Z(this,"coord")}}class RC extends q{constructor({index:A}){super({inTypes:{index:"int"},outTypes:{coord:"ivec3"},inputs:{index:A},statements:({inputs:I,outputs:g})=>{const{index:B}=I,{coord:C}=g;return!B||!C?[]:[`${C} = pagedSplatTexCoord(${B});`]}})}dynoOut(){return new Z(this,"coord")}}const DB=(Q,A)=>new LC({gsplat:Q,rgbMinMaxLnScaleMinMax:A}),MC=(Q,A)=>new HC({covsplat:Q,rgbMinMaxLnScaleMinMax:A}),eC=Q=>new nC({gsplat:Q}),qQ=Q=>new YC({covsplat:Q}),JC=(Q,A,I,g)=>new fw({gsplat:Q,viewCenter:A,viewDir:I,sortRadial:g}),UC=(Q,A,I,g)=>new pw({covsplat:Q,viewCenter:A,viewDir:I,sortRadial:g}),xw=Q=>new oB({rgba8:Q});class LC extends q{constructor({gsplat:A,rgbMinMaxLnScaleMinMax:I}){super({inTypes:{gsplat:j,rgbMinMaxLnScaleMinMax:"vec4"},inputs:{gsplat:A,rgbMinMaxLnScaleMinMax:I},globals:()=>[rA],statements:({inputs:g,outputs:B})=>{const{gsplat:C,rgbMinMaxLnScaleMinMax:E}=g;return C&&E?z(` if (isGsplatActive(${C}.flags)) { target = packSplatEncoding(${C}.center, ${C}.scales, ${C}.quaternion, ${C}.rgba, ${E}); } else { target = uvec4(0u, 0u, 0u, 0u); } - `):["target = uvec4(0u, 0u, 0u, 0u);"]}})}}class yE extends d{constructor({covsplat:A,rgbMinMaxLnScaleMinMax:I}){super({inTypes:{covsplat:rA,rgbMinMaxLnScaleMinMax:"vec4"},inputs:{covsplat:A,rgbMinMaxLnScaleMinMax:I},globals:()=>[KI],statements:({inputs:g})=>{const{covsplat:B,rgbMinMaxLnScaleMinMax:C}=g;return B&&C?z(` + `):["target = uvec4(0u, 0u, 0u, 0u);"]}})}}class HC extends q{constructor({covsplat:A,rgbMinMaxLnScaleMinMax:I}){super({inTypes:{covsplat:YA,rgbMinMaxLnScaleMinMax:"vec4"},inputs:{covsplat:A,rgbMinMaxLnScaleMinMax:I},globals:()=>[HI],statements:({inputs:g})=>{const{covsplat:B,rgbMinMaxLnScaleMinMax:C}=g;return B&&C?z(` if (isCovSplatActive(${B}.flags)) { target = packSplatCovEncoding(${B}.center, ${B}.rgba, ${B}.xxyyzz, ${B}.xyxzyz, ${C}); } else { target = uvec4(0u); } - `):["target = uvec4(0u);"]}})}}class hE extends d{constructor({gsplat:A}){super({inTypes:{gsplat:Z},inputs:{gsplat:A},globals:()=>[LA],statements:({inputs:I})=>{const{gsplat:g}=I;return g?z(` + `):["target = uvec4(0u);"]}})}}class nC extends q{constructor({gsplat:A}){super({inTypes:{gsplat:j},inputs:{gsplat:A},globals:()=>[rA],statements:({inputs:I})=>{const{gsplat:g}=I;return g?z(` if (isGsplatActive(${g}.flags)) { packSplatExt(target, target2, ${g}.center, ${g}.scales, ${g}.quaternion, ${g}.rgba); } else { target = uvec4(0u); target2 = uvec4(0u); } - `):["target = uvec4(0u);","target2 = uvec4(0u);"]}})}}class RE extends d{constructor({covsplat:A}){super({inTypes:{covsplat:rA},inputs:{covsplat:A},globals:()=>[KI],statements:({inputs:I})=>{const{covsplat:g}=I;return g?z(` + `):["target = uvec4(0u);","target2 = uvec4(0u);"]}})}}class YC extends q{constructor({covsplat:A}){super({inTypes:{covsplat:YA},inputs:{covsplat:A},globals:()=>[HI],statements:({inputs:I})=>{const{covsplat:g}=I;return g?z(` if (isCovSplatActive(${g}.flags)) { packSplatExtCov(target, target2, ${g}.center, ${g}.rgba, ${g}.xxyyzz, ${g}.xyxzyz); } else { target = uvec4(0u); target2 = uvec4(0u); } - `):["target = uvec4(0u);","target2 = uvec4(0u);"]}})}}class QG extends d{constructor({gsplat:A,viewCenter:I,viewDir:g,sortRadial:B}){super({inTypes:{gsplat:Z,viewCenter:"vec3",viewDir:"vec3",sortRadial:"bool"},inputs:{gsplat:A,viewCenter:I,viewDir:g,sortRadial:B},globals:()=>[LA],statements:({inputs:C})=>{const{gsplat:E,viewCenter:D,viewDir:i,sortRadial:w}=C;return E&&D&&i&&w?z(` + `):["target = uvec4(0u);","target2 = uvec4(0u);"]}})}}class fw extends q{constructor({gsplat:A,viewCenter:I,viewDir:g,sortRadial:B}){super({inTypes:{gsplat:j,viewCenter:"vec3",viewDir:"vec3",sortRadial:"bool"},inputs:{gsplat:A,viewCenter:I,viewDir:g,sortRadial:B},globals:()=>[rA],statements:({inputs:C})=>{const{gsplat:E,viewCenter:i,viewDir:o,sortRadial:D}=C;return E&&i&&o&&D?z(` float metric = 1.0 / 0.0; if (isGsplatActive(${E}.flags)) { - vec3 center = ${E}.center - ${D}; - if (${w}) { + vec3 center = ${E}.center - ${i}; + if (${D}) { metric = length(center); } else { float bias = 100.0; // reduce popping - metric = dot(center, ${i}) + bias; + metric = dot(center, ${o}) + bias; } } target3 = floatToVec4(metric); - `):[]}})}}class BG extends d{constructor({covsplat:A,viewCenter:I,viewDir:g,sortRadial:B}){super({inTypes:{covsplat:rA,viewCenter:"vec3",viewDir:"vec3",sortRadial:"bool"},inputs:{covsplat:A,viewCenter:I,viewDir:g,sortRadial:B},globals:()=>[KI],statements:({inputs:C})=>{const{covsplat:E,viewCenter:D,viewDir:i,sortRadial:w}=C;return E&&D&&i&&w?z(` + `):[]}})}}class pw extends q{constructor({covsplat:A,viewCenter:I,viewDir:g,sortRadial:B}){super({inTypes:{covsplat:YA,viewCenter:"vec3",viewDir:"vec3",sortRadial:"bool"},inputs:{covsplat:A,viewCenter:I,viewDir:g,sortRadial:B},globals:()=>[HI],statements:({inputs:C})=>{const{covsplat:E,viewCenter:i,viewDir:o,sortRadial:D}=C;return E&&i&&o&&D?z(` float metric = 1.0 / 0.0; if (isCovSplatActive(${E}.flags)) { - vec3 center = ${E}.center - ${D}; - if (${w}) { + vec3 center = ${E}.center - ${i}; + if (${D}) { metric = length(center); } else { float bias = 100.0; // reduce popping - metric = dot(center, ${i}) + bias; + metric = dot(center, ${o}) + bias; } } target3 = floatToVec4(metric); - `):[]}})}}class FB extends d{constructor({rgba8:A}){super({inTypes:{rgba8:"vec4"},inputs:{rgba8:A},statements:({inputs:I,outputs:g})=>[`target = ${I.rgba8??"vec4(0.0, 0.0, 0.0, 0.0)"};`]})}dynoOut(){return new V(this,"rgba8")}}const CG=(Q,A,I)=>new x({key:Q,type:A,value:I}),EG=(Q=!1,A)=>new uI({key:A,value:Q}),DG=(Q=0,A)=>new kE({key:A,value:Q}),iG=(Q=0,A)=>new DI({key:A,value:Q}),oI=(Q=0,A)=>new bI({key:A,value:Q}),wG=(Q,A)=>new FE({key:A,value:Q}),oG=(Q,A)=>new aE({key:A,value:Q}),sG=(Q,A)=>new SE({key:A,value:Q}),GG=(Q,A)=>new NE({key:A,value:Q}),yG=(Q,A)=>new cE({key:A,value:Q}),hG=(Q,A)=>new ME({key:A,value:Q}),RG=(Q,A)=>new JE({key:A,value:Q}),JI=(Q,A)=>new iI({key:A,value:Q}),kG=(Q,A)=>new UE({key:A,value:Q}),FG=(Q,A)=>new tE({key:A,value:Q}),aG=(Q,A)=>new HE({key:A,value:Q}),SG=(Q,A)=>new VI({key:A,value:Q}),NG=(Q,A)=>new LE({key:A,value:Q}),cG=(Q,A)=>new YE({key:A,value:Q}),MG=(Q,A)=>new KE({key:A,value:Q}),JG=(Q,A)=>new eE({key:A,value:Q}),UG=(Q,A)=>new aB({key:A,value:Q}),tG=(Q,A)=>new rE({key:A,value:Q}),HG=(Q,A)=>new nE({key:A,value:Q}),LG=(Q,A)=>new dE({key:A,value:Q}),YG=(Q,A)=>new qE({key:A,value:Q}),KG=(Q,A)=>new xE({key:A,value:Q}),eG=(Q,A)=>new lE({key:A,value:Q}),rG=(Q,A)=>new pE({key:A,value:Q}),nG=(Q,A)=>new GQ({key:A,value:Q}),dG=(Q,A)=>new fE({key:A,value:Q}),qG=(Q,A)=>new bE({key:A,value:Q}),xG=(Q,A)=>new qA({key:A,value:Q}),lG=(Q,A)=>new PE({key:Q,value:A}),pG=(Q,A)=>new uE({key:A,value:Q}),fG=(Q,A)=>new TE({key:A,value:Q}),bG=(Q,A)=>new OE({key:A,value:Q}),PG=(Q,A)=>new mE({key:A,value:Q}),uG=(Q,A)=>new ZE({key:A,value:Q}),TG=(Q,A)=>new VE({key:A,value:Q}),OG=(Q,A)=>new XE({key:A,value:Q}),mG=(Q,A)=>new WE({key:A,value:Q}),ZG=(Q,A)=>new jE({key:A,value:Q}),VG=(Q,A)=>new vE({key:A,value:Q});class x extends d{constructor({key:A,type:I,count:g,value:B,update:C,globals:E}){A=A??"value",super({outTypes:{[A]:I},update:()=>{if(C){const D=C(this.value);D!==void 0&&(this.value=D)}this.uniform.value=this.value},generate:({inputs:D,outputs:i})=>{const w=(E==null?void 0:E({inputs:D,outputs:i}))??[],s={},o=i[A];return o&&(w.push(`uniform ${BB(o,I,g)};`),s[o]=this.uniform),{globals:w,uniforms:s}}}),this.type=I,this.count=g,this.value=B,this.uniform={value:B},this.outKey=A}dynoOut(){return new V(this,this.outKey)}}class uI extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"bool",value:I,update:g})}}class kE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"uint",value:I,update:g})}}class DI extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"int",value:I,update:g})}}class bI extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"float",value:I,update:g})}}class FE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"bvec2",value:I,update:g})}}class aE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"uvec2",value:I,update:g})}}class SE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"ivec2",value:I,update:g})}}class NE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"vec2",value:I,update:g})}}class cE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"bvec3",value:I,update:g})}}class ME extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"uvec3",value:I,update:g})}}class JE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"ivec3",value:I,update:g})}}class iI extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"vec3",value:I,update:g})}}class UE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"bvec4",value:I,update:g})}}class tE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"uvec4",value:I,update:g})}}class HE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"ivec4",value:I,update:g})}}class VI extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"vec4",value:I,update:g})}}class LE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat2",value:I,update:g})}}class YE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat2x2",value:I,update:g})}}class KE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat2x3",value:I,update:g})}}class eE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat2x4",value:I,update:g})}}class aB extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat3",value:I,update:g})}}class rE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat3x2",value:I,update:g})}}class nE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat3x3",value:I,update:g})}}class dE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat3x4",value:I,update:g})}}class qE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat4",value:I,update:g})}}class xE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat4x2",value:I,update:g})}}class lE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat4x3",value:I,update:g})}}class pE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat4x4",value:I,update:g})}}class GQ extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"usampler2D",value:I,update:g})}}class fE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"isampler2D",value:I,update:g})}}class bE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"sampler2D",value:I,update:g})}}class qA extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"usampler2DArray",value:I,update:g})}}class PE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"isampler2DArray",value:I,update:g})}}class uE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"sampler2DArray",value:I,update:g})}}class TE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"usampler3D",value:I,update:g})}}class OE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"isampler3D",value:I,update:g})}}class mE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"sampler3D",value:I,update:g})}}class ZE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"usamplerCube",value:I,update:g})}}class VE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"isamplerCube",value:I,update:g})}}class XE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"samplerCube",value:I,update:g})}}class WE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"sampler2DShadow",value:I,update:g})}}class jE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"sampler2DArrayShadow",value:I,update:g})}}class vE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"samplerCubeShadow",value:I,update:g})}}class yQ{constructor({graph:A,inputs:I,outputs:g,template:B,consoleLog:C}){this.graph=A,this.template=B,this.inputs=I??{},this.outputs=g??{};const E=new RC({indent:this.template.indent});for(const i in this.outputs)this.outputs[i]&&E.declares.add(this.outputs[i]);const D=A.compile({inputs:this.inputs,outputs:this.outputs,compile:E});this.shader=B.generate({globals:E.globals,statements:D}),this.uniforms=E.uniforms,this.updaters=E.updaters,C&&(console.log("*** COMPILED SHADER",this.shader),console.log("*** UNIFORMS",this.uniforms))}prepareMaterial(){return XG(this)}update(){for(const A of this.updaters)A()}}class Jg{constructor(A){const I=A.match(/^([ \t]*)\{\{\s*GLOBALS\s*\}\}/m),g=A.match(/^([ \t]*)\{\{\s*STATEMENTS\s*\}\}/m);if(!I||!g)throw new Error("Template must contain {{ GLOBALS }} and {{ STATEMENTS }}");this.before=A.substring(0,I.index),this.between=A.substring(I.index+I[0].length,g.index),this.after=A.substring(g.index+g[0].length),this.indent=g[1]}generate({globals:A,statements:I}){return this.before+Array.from(A).join(` + `):[]}})}}class oB extends q{constructor({rgba8:A}){super({inTypes:{rgba8:"vec4"},inputs:{rgba8:A},statements:({inputs:I,outputs:g})=>[`target = ${I.rgba8??"vec4(0.0, 0.0, 0.0, 0.0)"};`]})}dynoOut(){return new Z(this,"rgba8")}}const uw=(Q,A,I)=>new x({key:Q,type:A,value:I}),Pw=(Q=!1,A)=>new rg({key:A,value:Q}),bw=(Q=0,A)=>new rC({key:A,value:Q}),Tw=(Q=0,A)=>new CI({key:A,value:Q}),iI=(Q=0,A)=>new OI({key:A,value:Q}),mw=(Q,A)=>new KC({key:A,value:Q}),Vw=(Q,A)=>new dC({key:A,value:Q}),Zw=(Q,A)=>new qC({key:A,value:Q}),Ow=(Q,A)=>new lC({key:A,value:Q}),Ww=(Q,A)=>new xC({key:A,value:Q}),vw=(Q,A)=>new fC({key:A,value:Q}),Xw=(Q,A)=>new pC({key:A,value:Q}),MI=(Q,A)=>new LI({key:A,value:Q}),jw=(Q,A)=>new uC({key:A,value:Q}),zw=(Q,A)=>new PC({key:A,value:Q}),_w=(Q,A)=>new bC({key:A,value:Q}),$w=(Q,A)=>new Ig({key:A,value:Q}),As=(Q,A)=>new TC({key:A,value:Q}),Is=(Q,A)=>new mC({key:A,value:Q}),gs=(Q,A)=>new VC({key:A,value:Q}),Qs=(Q,A)=>new ZC({key:A,value:Q}),Bs=(Q,A)=>new wB({key:A,value:Q}),Cs=(Q,A)=>new OC({key:A,value:Q}),Es=(Q,A)=>new WC({key:A,value:Q}),is=(Q,A)=>new vC({key:A,value:Q}),Ds=(Q,A)=>new XC({key:A,value:Q}),os=(Q,A)=>new jC({key:A,value:Q}),ws=(Q,A)=>new zC({key:A,value:Q}),ss=(Q,A)=>new _C({key:A,value:Q}),as=(Q,A)=>new EQ({key:A,value:Q}),Gs=(Q,A)=>new $C({key:A,value:Q}),ts=(Q,A)=>new AE({key:A,value:Q}),hs=(Q,A)=>new WA({key:A,value:Q}),ys=(Q,A)=>new IE({key:Q,value:A}),cs=(Q,A)=>new gE({key:A,value:Q}),ks=(Q,A)=>new QE({key:A,value:Q}),Fs=(Q,A)=>new BE({key:A,value:Q}),Ss=(Q,A)=>new CE({key:A,value:Q}),Ns=(Q,A)=>new EE({key:A,value:Q}),Rs=(Q,A)=>new iE({key:A,value:Q}),Ms=(Q,A)=>new DE({key:A,value:Q}),es=(Q,A)=>new oE({key:A,value:Q}),Js=(Q,A)=>new wE({key:A,value:Q}),Us=(Q,A)=>new sE({key:A,value:Q});class x extends q{constructor({key:A,type:I,count:g,value:B,update:C,globals:E}){A=A??"value",super({outTypes:{[A]:I},update:()=>{if(C){const i=C(this.value);i!==void 0&&(this.value=i)}this.uniform.value=this.value},generate:({inputs:i,outputs:o})=>{const D=(E==null?void 0:E({inputs:i,outputs:o}))??[],s={},w=o[A];return w&&(D.push(`uniform ${QB(w,I,g)};`),s[w]=this.uniform),{globals:D,uniforms:s}}}),this.type=I,this.count=g,this.value=B,this.uniform={value:B},this.outKey=A}dynoOut(){return new Z(this,this.outKey)}}class rg extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"bool",value:I,update:g})}}class rC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"uint",value:I,update:g})}}class CI extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"int",value:I,update:g})}}class OI extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"float",value:I,update:g})}}class KC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"bvec2",value:I,update:g})}}class dC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"uvec2",value:I,update:g})}}class qC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"ivec2",value:I,update:g})}}class lC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"vec2",value:I,update:g})}}class xC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"bvec3",value:I,update:g})}}class fC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"uvec3",value:I,update:g})}}class pC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"ivec3",value:I,update:g})}}class LI extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"vec3",value:I,update:g})}}class uC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"bvec4",value:I,update:g})}}class PC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"uvec4",value:I,update:g})}}class bC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"ivec4",value:I,update:g})}}class Ig extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"vec4",value:I,update:g})}}class TC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat2",value:I,update:g})}}class mC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat2x2",value:I,update:g})}}class VC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat2x3",value:I,update:g})}}class ZC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat2x4",value:I,update:g})}}class wB extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat3",value:I,update:g})}}class OC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat3x2",value:I,update:g})}}class WC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat3x3",value:I,update:g})}}class vC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat3x4",value:I,update:g})}}class XC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat4",value:I,update:g})}}class jC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat4x2",value:I,update:g})}}class zC extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat4x3",value:I,update:g})}}class _C extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"mat4x4",value:I,update:g})}}class EQ extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"usampler2D",value:I,update:g})}}class $C extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"isampler2D",value:I,update:g})}}class AE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"sampler2D",value:I,update:g})}}class WA extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"usampler2DArray",value:I,update:g})}}class IE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"isampler2DArray",value:I,update:g})}}class gE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"sampler2DArray",value:I,update:g})}}class QE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"usampler3D",value:I,update:g})}}class BE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"isampler3D",value:I,update:g})}}class CE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"sampler3D",value:I,update:g})}}class EE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"usamplerCube",value:I,update:g})}}class iE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"isamplerCube",value:I,update:g})}}class DE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"samplerCube",value:I,update:g})}}class oE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"sampler2DShadow",value:I,update:g})}}class wE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"sampler2DArrayShadow",value:I,update:g})}}class sE extends x{constructor({key:A,value:I,update:g}){super({key:A,type:"samplerCubeShadow",value:I,update:g})}}var nA=Uint8Array,TI=Uint16Array,Ls=Int32Array,aE=new nA([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),GE=new nA([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Hs=new nA([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),tE=function(Q,A){for(var I=new TI(31),g=0;g<31;++g)I[g]=A+=1<>1|(tA&21845)<<1;NI=(NI&52428)>>2|(NI&13107)<<2,NI=(NI&61680)>>4|(NI&3855)<<4,lQ[tA]=((NI&65280)>>8|(NI&255)<<8)>>1}var ag=function(Q,A,I){for(var g=Q.length,B=0,C=new TI(A);B>o]=D}else for(i=new TI(g),B=0;B>15-Q[B]);return i},Kg=new nA(288);for(var tA=0;tA<144;++tA)Kg[tA]=8;for(var tA=144;tA<256;++tA)Kg[tA]=9;for(var tA=256;tA<280;++tA)Kg[tA]=7;for(var tA=280;tA<288;++tA)Kg[tA]=8;var cE=new nA(32);for(var tA=0;tA<32;++tA)cE[tA]=5;var Ks=ag(Kg,9,1),ds=ag(cE,5,1),NQ=function(Q){for(var A=Q[0],I=1;IA&&(A=Q[I]);return A},AI=function(Q,A,I){var g=A/8|0;return(Q[g]|Q[g+1]<<8)>>(A&7)&I},RQ=function(Q,A){var I=A/8|0;return(Q[I]|Q[I+1]<<8|Q[I+2]<<16)>>(A&7)},kE=function(Q){return(Q+7)/8|0},WI=function(Q,A,I){return(A==null||A<0)&&(A=0),(I==null||I>Q.length)&&(I=Q.length),new nA(Q.subarray(A,I))},qs=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],uA=function(Q,A,I){var g=new Error(A||qs[Q]);if(g.code=Q,Error.captureStackTrace&&Error.captureStackTrace(g,uA),!I)throw g;return g},FE=function(Q,A,I,g){var B=Q.length,C=g?g.length:0;if(!B||A.f&&!A.l)return I||new nA(0);var E=!I,i=E||A.i!=2,o=A.i;E&&(I=new nA(B*3));var D=function(kA){var oA=I.length;if(kA>oA){var aA=new nA(Math.max(oA*2,kA));aA.set(I),I=aA}},s=A.f||0,w=A.p||0,G=A.b||0,t=A.l,c=A.d,h=A.m,y=A.n,k=B*8;do{if(!t){s=AI(Q,w,1);var F=AI(Q,w+1,3);if(w+=3,F)if(F==1)t=Ks,c=ds,h=9,y=5;else if(F==2){var M=AI(Q,w,31)+257,U=AI(Q,w+10,15)+4,e=M+AI(Q,w+5,31)+1;w+=14;for(var J=new nA(e),n=new nA(19),H=0;H>4;if(R<16)J[H++]=R;else{var f=0,V=0;for(R==16?(V=3+AI(Q,w,3),w+=2,f=J[H-1]):R==17?(V=3+AI(Q,w,7),w+=3):R==18&&(V=11+AI(Q,w,127),w+=7);V--;)J[H++]=f}}var IA=J.subarray(0,M),O=J.subarray(M);h=NQ(IA),y=NQ(O),t=ag(IA,h,1),c=ag(O,y,1)}else uA(1);else{var R=kE(w)+4,N=Q[R-4]|Q[R-3]<<8,S=R+N;if(S>B){o&&uA(0);break}i&&D(G+N),I.set(Q.subarray(R,S),G),A.b=G+=N,A.p=w=S*8,A.f=s;continue}if(w>k){o&&uA(0);break}}i&&D(G+131072);for(var CA=(1<>4;if(w+=f&15,w>k){o&&uA(0);break}if(f||uA(2),W<256)I[G++]=W;else if(W==256){gA=w,t=null;break}else{var b=W-254;if(W>264){var H=W-257,u=aE[H];b=AI(Q,w,(1<>4;T||uA(3),w+=T&15;var O=rs[p];if(p>3){var u=GE[p];O+=RQ(Q,w)&(1<k){o&&uA(0);break}i&&D(G+131072);var yA=G+b;if(G>>0},MQ=function(Q,A){return II(Q,A)+II(Q,A+4)*4294967296},xs=function(Q){(Q[0]!=31||Q[1]!=139||Q[2]!=8)&&uA(6,"invalid gzip data");var A=Q[3],I=10;A&4&&(I+=(Q[10]|Q[11]<<8)+2);for(var g=(A>>3&1)+(A>>4&1);g>0;g-=!Q[I++]);return I+(A&2)},eQ=function(){function Q(A,I){typeof A=="function"&&(I=A,A={}),this.ondata=I;var g=A&&A.dictionary&&A.dictionary.subarray(-32768);this.s={i:0,b:g?g.length:0},this.o=new nA(32768),this.p=new nA(0),g&&this.o.set(g)}return Q.prototype.e=function(A){if(this.ondata||uA(5),this.d&&uA(4),!this.p.length)this.p=A;else if(A.length){var I=new nA(this.p.length+A.length);I.set(this.p),I.set(A,this.p.length),this.p=I}},Q.prototype.c=function(A){this.s.i=+(this.d=A||!1);var I=this.s.b,g=FE(this.p,this.s,this.o);this.ondata(WI(g,I,this.s.b),this.d),this.o=WI(g,this.s.b-32768),this.s.b=this.o.length,this.p=WI(this.p,this.s.p/8|0),this.s.p&=7},Q.prototype.push=function(A,I){this.e(A),this.c(I)},Q}();function fs(Q,A){return FE(Q,{i:2},A&&A.out,A&&A.dictionary)}var ps=function(){function Q(A,I){this.v=1,this.r=0,eQ.call(this,A,I)}return Q.prototype.push=function(A,I){if(eQ.prototype.e.call(this,A),this.r+=A.length,this.v){var g=this.p.subarray(this.v-1),B=g.length>3?xs(g):4;if(B>g.length){if(!I)return}else this.v>1&&this.onmember&&this.onmember(this.r-g.length);this.p=g.subarray(B),this.v=0}eQ.prototype.c.call(this,I),this.s.f&&!this.s.l&&!I&&(this.v=kE(this.s.p)+9,this.s={i:0},this.o=new nA(0),this.push(new nA(0),I))},Q}(),xQ=typeof TextDecoder<"u"&&new TextDecoder,us=0;try{xQ.decode(ls,{stream:!0}),us=1}catch{}var Ps=function(Q){for(var A="",I=0;;){var g=Q[I++],B=(g>127)+(g>223)+(g>239);if(I+B>Q.length)return{s:A,r:WI(Q,I-1)};B?B==3?(g=((g&15)<<18|(Q[I++]&63)<<12|(Q[I++]&63)<<6|Q[I++]&63)-65536,A+=String.fromCharCode(55296|g>>10,56320|g&1023)):B&1?A+=String.fromCharCode((g&31)<<6|Q[I++]&63):A+=String.fromCharCode((g&15)<<12|(Q[I++]&63)<<6|Q[I++]&63):A+=String.fromCharCode(g)}};function bs(Q,A){if(A){for(var I="",g=0;g65558)&&uA(13);var B=wI(Q,g+8);if(!B)return{};var C=II(Q,g+16),E=C==4294967295||B==65535;if(E){var i=II(Q,g-12);E=II(Q,i)==101075792,E&&(B=II(Q,i+32),C=II(Q,i+48))}for(var o=A&&A.filter,D=0;D=179,dg=new Float32Array(1),iQ=new Uint32Array(dg.buffer),sB="Float16Array"in globalThis,Gg=sB?new globalThis.Float16Array(1):null,RE=new Uint16Array(Gg==null?void 0:Gg.buffer);function ME(Q){const A=Math.sqrt(Q.reduce((I,g)=>I+g*g,0));return Q.map(I=>I/A)}function Tg(Q){return dg[0]=Q,iQ[0]}function mg(Q){return iQ[0]=Q,dg[0]}const PA=sB?Os:Ws,hA=sB?vs:Xs;function Os(Q){return Gg[0]=Q,RE[0]}function Ws(Q){dg[0]=Q;const A=iQ[0],I=A>>31&1,g=A>>23&255,B=A&8388607,C=I<<15;if(g===255)return B!==0?C|32767:C|31744;const E=g-127+15;if(E>=31)return C|31744;if(E<=0){if(E<-10)return C;const o=(B|8388608)>>1-E+13;return C|o}const i=B>>13;return C|E<<10|i}function vs(Q){return RE[0]=Q,Gg[0]}function Xs(Q){const A=Q>>15&1,I=Q>>10&31,g=Q&1023;let B;if(I===0)if(g===0)B=A<<31;else{let C=g,E=-14;for(;(C&1024)===0;)C<<=1,E--;C&=1023;const i=E+127,o=C<<13;B=A<<31|i<<23|o}else if(I===31)g===0?B=A<<31|2139095040:B=A<<31|2143289344;else{const C=I-15+127,E=g<<13;B=A<<31|C<<23|E}return iQ[0]=B,dg[0]}function vA(Q){return Math.max(0,Math.min(255,Math.round(Q*255)))}function tg(Q){return Math.max(-127,Math.min(127,Math.round(Q*127)))}function eE(Q){return Q/255}function JE(Q){return Q/127}class js{constructor({asyncFetch:A,dispose:I,maxItems:g=5}){this.asyncFetch=A,this.dispose=I,this.maxItems=g,this.items=[],this.pending=new Map}has(A){return this.items.some(I=>I.key===A)}getImmediate(A){const I=this.items.findIndex(g=>g.key===A);if(I>=0){const g=this.items.splice(I,1)[0];return this.items.push(g),g.data}}async getFetch(A){const I=this.getImmediate(A);if(I!==void 0)return I;let g=this.pending.get(A);return g||(g=this.asyncFetch(A).then(B=>{for(this.pending.delete(A),this.items.push({key:A,data:B});this.items.length>this.maxItems;){const C=this.items.shift();C&&this.dispose&&this.dispose(C.data)}return B}),this.pending.set(A,g),g)}}function zs(Q,A){const I=Object.entries(Q).map(([g,B])=>[g,A(B,g)]);return Object.fromEntries(I)}function _s(Q,A){const I=Object.entries(Q).map(([g,B])=>[g,A(B,g)]).filter(([g,B])=>B!==void 0);return Object.fromEntries(I)}function UE(Q){const A=[],I=new Set;function g(B){B&&typeof B=="object"&&!I.has(B)&&(I.add(B),B instanceof ArrayBuffer?A.push(B):ArrayBuffer.isView(B)?A.push(B.buffer):Array.isArray(B)?B.forEach(g):Object.values(B).forEach(g))}return g(Q),A}function fQ(Q,A){return new Array(Q).fill(null).map((I,g)=>A(g))}class $s{constructor({allocate:A,dispose:I,valid:g}){this.items=[],this.allocate=A,this.dispose=I,this.valid=g}alloc(A){for(;;){const I=this.items.pop();if(!I)break;if(this.valid(I,A))return I;this.dispose&&this.dispose(I)}return this.allocate(A)}free(A){this.items.push(A)}disposeAll(){let A;for(A=this.items.pop();A;)this.dispose&&this.dispose(A),A=this.items.pop()}}function pQ(Q,A,I,g,B,C,E,i,o,D,s,w,G,t,c,h){const y=A*4,[k,F]=Q;k[y]=Tg(I),k[y+1]=Tg(g),k[y+2]=Tg(B),k[y+3]=PA(G),F[y]=PA(t)|PA(c)<<16,F[y+1]=PA(h)|PA(Math.log(C))<<16,F[y+2]=PA(Math.log(E))|PA(Math.log(i))<<16,F[y+3]=lE(o,D,s,w)}function jg(Q,A){const I=aB,g=A*4,[B,C]=Q;return I.center.x=mg(B[g]),I.center.y=mg(B[g+1]),I.center.z=mg(B[g+2]),I.opacity=hA(B[g+3]&65535),I.color.r=hA(C[g]&65535),I.color.g=hA(C[g]>>>16),I.color.b=hA(C[g+1]&65535),I.scales.x=Math.exp(hA(C[g+1]>>>16)),I.scales.y=Math.exp(hA(C[g+2]&65535)),I.scales.z=Math.exp(hA(C[g+2]>>>16)),xE(C[g+3],I.quaternion),I}function zg(Q,A,I,g,B,C,E,i,o,D,s,w,G,t,c,h,y){const k=(y==null?void 0:y.rgbMin)??0,R=((y==null?void 0:y.rgbMax)??1)-k,N=vA((t-k)/R),S=vA((c-k)/R),M=vA((h-k)/R),U=vA(y!=null&&y.lodOpacity?.5*G:G),e=tB(LE.set(o,D,s,w)),J=e&255,n=e>>>8&255,H=e>>>16&255,L=(y==null?void 0:y.lnScaleMin)??fA,d=254/(((y==null?void 0:y.lnScaleMax)??pA)-L),K=C>>8&255,D=E>>>16&255,s=A*4;Q[s+2]=Q[s+2]&65535|i<<16|o<<24,Q[s+3]=Q[s+3]&16777215|D<<24}function Q0(Q,A,I,g,B,C,E){const i=(E==null?void 0:E.rgbMin)??0,D=((E==null?void 0:E.rgbMax)??1)-i,s=vA((I-i)/D),w=vA((g-i)/D),G=vA((B-i)/D),t=vA(E!=null&&E.lodOpacity?.5*C:C),c=A*4;Q[c]=s|w<<8|G<<16|t<<24}function B0(Q,A,I,g,B,C){const E=(C==null?void 0:C.rgbMin)??0,o=((C==null?void 0:C.rgbMax)??1)-E,D=vA((I-E)/o),s=vA((g-E)/o),w=vA((B-E)/o),G=A*4;Q[G]=D|s<<8|w<<16|Q[G]&4278190080}function C0(Q,A,I){const g=vA(I),B=A*4;Q[B]=Q[B]&16777215|g<<24}const E0=new a.Vector3,i0=new a.Vector3,D0=new a.Quaternion,o0=new a.Color,aB={center:E0,scales:i0,quaternion:D0,color:o0,opacity:0};function kg(Q,A,I){const g=aB,B=A*4,C=Q[B],E=Q[B+1],i=Q[B+2],o=Q[B+3],D=(I==null?void 0:I.rgbMin)??0,w=((I==null?void 0:I.rgbMax)??1)-D;g.color.set(D+(C&255)/255*w,D+(C>>>8&255)/255*w,D+(C>>>16&255)/255*w),g.opacity=(C>>>24&255)/255,I!=null&&I.lodOpacity&&(g.opacity=2*g.opacity),g.center.set(hA(E&65535),hA(E>>>16&65535),hA(i&65535));const G=(I==null?void 0:I.lnScaleMin)??fA,c=(((I==null?void 0:I.lnScaleMax)??pA)-G)/254,h=o&255;g.scales.x=h===0?0:Math.exp(G+(h-1)*c);const y=o>>>8&255;g.scales.y=y===0?0:Math.exp(G+(y-1)*c);const k=o>>>16&255;g.scales.z=k===0?0:Math.exp(G+(k-1)*c);const F=i>>>16&65535|o>>>8&16711680;return qE(F,g.quaternion),g}function EA(Q){const A=P,I=Math.max(IB,Math.min(OA,Math.ceil(Q/A))),g=Math.ceil(Q/(A*I)),B=A*I*g;return{width:A,height:I,depth:g,maxSplats:B}}function w0(Q){const A=P,I=Math.max(IB,Math.min(OA,Math.ceil(Q/A))),g=Math.ceil(Q/(A*I));return A*I*g}function Fg(){return navigator.platform.toLowerCase().startsWith("win")?!1:navigator.maxTouchPoints>0?!0:/Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test(navigator.userAgent)}function DQ(){return/Android/.test(navigator.userAgent)||/Tizen/.test(navigator.userAgent)}function oQ(){return!!navigator.xr&&/Oculus/.test(navigator.userAgent)}function HE(){return oQ()&&/Quest 2/.test(navigator.userAgent)}function jI(){return/iPhone|iPad/.test(navigator.userAgent)}function GB(){return!!navigator.xr&&jI()&&/Safari/.test(navigator.userAgent)&&Fg()}function nE(Q,A,I){const g=new Uint8Array(A*4);for(let B=0;BI!==void 0))}const rE=GA(` + precision highp float; + + in vec3 position; + + void main() { + gl_Position = vec4(position.xy, 0.0, 1.0); + } +`);function a0(Q){const A=new a.Vector3;for(const I of Q)A.add(I);return A.divideScalar(Q.length)}function G0(Q){if(Q.length===0)return new a.Quaternion;const A=Q[0].clone();for(let I=1;I=g)}function dE(Q,A){const[I,g]=[new a.Vector3,new a.Quaternion],[B,C]=[new a.Vector3,new a.Quaternion];Q.decompose(I,g,new a.Vector3),A.decompose(B,C,new a.Vector3);const E=I.distanceTo(B),i=Math.abs(g.dot(C));return{distance:E,coorient:i}}function y0({matrix1:Q,matrix2:A,maxDistance:I,minCoorient:g}){const{distance:B,coorient:C}=dE(Q,A);return B<=I&&(g==null||C>=g)}function c0(Q,A=.001){return Math.abs(Q)>24,g=Q<<16>>24,B=Q<<8>>24;A.set(I/127,g/127,B/127,0);const C=A.x*A.x+A.y*A.y+A.z*A.z;return A.w=Math.sqrt(Math.max(0,1-C)),A}const S0=new a.Quaternion,uQ=new a.Vector3;function tB(Q){const A=S0.copy(Q).normalize();A.w<0&&A.set(-A.x,-A.y,-A.z,-A.w);const I=2*Math.acos(A.w),g=Math.sqrt(A.x*A.x+A.y*A.y+A.z*A.z),B=g<1e-6?uQ.set(1,0,0):uQ.set(A.x,A.y,A.z).divideScalar(g),C=Math.abs(B.x)+Math.abs(B.y)+Math.abs(B.z);let E=B.x/C,i=B.y/C;if(B.z<0){const t=E;E=(1-Math.abs(i))*(E>=0?1:-1),i=(1-Math.abs(t))*(i>=0?1:-1)}const o=E*.5+.5,D=i*.5+.5,s=Math.round(o*255),w=Math.round(D*255);return Math.round(I*(255/Math.PI))<<16|w<<8|s}function qE(Q,A){const I=Q&255,g=Q>>>8&255,B=Q>>>16&255,C=I/255,E=g/255;let i=(C-.5)*2,o=(E-.5)*2;const D=1-(Math.abs(i)+Math.abs(o)),s=Math.max(-D,0);i+=i>=0?-s:s,o+=o>=0?-s:s;const w=uQ.set(i,o,D).normalize(),t=B/255*Math.PI*.5,c=Math.sin(t),h=Math.cos(t);return A.set(w.x*c,w.y*c,w.z*c,h),A}function N0(Q){const A=Q.clone().normalize(),I=2*(A.w*A.x+A.y*A.z),g=1-2*(A.x*A.x+A.y*A.y),B=Math.atan2(I,g),C=2*(A.w*A.y-A.z*A.x),E=Math.abs(C)>=1?Math.sign(C)*(Math.PI/2):Math.asin(C),i=2*(A.w*A.z+A.x*A.y),o=1-2*(A.y*A.y+A.z*A.z),D=Math.atan2(i,o),s=(B+Math.PI)/(2*Math.PI),w=(E+Math.PI)/(2*Math.PI),G=(D+Math.PI)/(2*Math.PI),t=Math.round(s*255),c=Math.round(w*255);return Math.round(G*255)<<16|c<<8|t}function R0(Q,A){const I=Q&255,g=Q>>>8&255,B=Q>>>16&255,C=I/255,E=g/255,i=B/255,o=C*(2*Math.PI)-Math.PI,D=E*(2*Math.PI)-Math.PI,s=i*(2*Math.PI)-Math.PI,w=Math.cos(o*.5),G=Math.sin(o*.5),t=Math.cos(D*.5),c=Math.sin(D*.5),h=Math.cos(s*.5),y=Math.sin(s*.5);return A.w=w*t*h+G*c*y,A.x=G*t*h-w*c*y,A.y=w*c*h+G*t*y,A.z=w*t*y-G*c*h,A.normalize(),A}function lE(Q,A,I,g){const B=Math.sqrt(Q*Q+A*A+I*I+g*g),C=(g<0?-Q:Q)/B,E=(g<0?-A:A)/B,i=(g<0?-I:I)/B,o=(g<0?-g:g)/B,D=2*Math.acos(o),s=Math.sqrt(C*C+E*E+i*i),w=s<1e-6?1:C/s,G=s<1e-6?0:E/s,t=s<1e-6?0:i/s,c=Math.abs(w)+Math.abs(G)+Math.abs(t);let h=w/c,y=G/c;if(t<0){const M=h;h=(1-Math.abs(y))*(h>=0?1:-1),y=(1-Math.abs(M))*(y>=0?1:-1)}const k=h*.5+.5,F=y*.5+.5,R=Math.round(k*1023),N=Math.round(F*1023);return Math.round(D*(4095/Math.PI))<<20|N<<10|R}function xE(Q,A){const I=Q&1023,g=Q>>>10&1023,B=Q>>>20&4095,C=I/1023,E=g/1023;let i=(C-.5)*2,o=(E-.5)*2;const D=1-(Math.abs(i)+Math.abs(o)),s=Math.max(-D,0);i+=i>=0?-s:s,o+=o>=0?-s:s;const w=Math.sqrt(i*i+o*o+D*D),G=w<1e-6?0:i/w,t=w<1e-6?0:o/w,c=w<1e-6?0:D/w,y=B/4095*Math.PI*.5,k=Math.sin(y),F=Math.cos(y);return A.set(G*k,t*k,c*k,F),A}function lg(Q,A,I,g){const B=Math.round(Math.max(-127,Math.min(127,Q*127))),C=Math.round(Math.max(-127,Math.min(127,A*127))),E=Math.round(Math.max(-127,Math.min(127,I*127))),i=Math.round(Math.max(-127,Math.min(127,g*127)));return B&255|(C&255)<<8|(E&255)<<16|(i&255)<<24}function M0(Q,A,I,g){const C=63/((g==null?void 0:g.sh1Max)??1),E=A*2;for(let i=0;i<9;++i){const o=I[i]*C,D=Math.round(Math.max(-63,Math.min(63,o)))&127,s=i*7,w=s+7,G=Math.floor(s/32),t=s-G*32,c=D<G*32+32){const h=D>>>32-t&4294967295;Q[E+G+1]|=h}}}function e0(Q,A,I,g){const C=1/((g==null?void 0:g.sh2Max)??1);Q[A*4+0]=lg(I[0]*C,I[1]*C,I[2]*C,I[3]*C),Q[A*4+1]=lg(I[4]*C,I[5]*C,I[6]*C,I[7]*C),Q[A*4+2]=lg(I[8]*C,I[9]*C,I[10]*C,I[11]*C),Q[A*4+3]=lg(I[12]*C,I[13]*C,I[14]*C,0)}function J0(Q,A,I,g){const C=31/((g==null?void 0:g.sh3Max)??1),E=A*4;for(let i=0;i<21;++i){const o=I[i]*C,D=Math.round(Math.max(-31,Math.min(31,o)))&63,s=i*6,w=s+6,G=Math.floor(s/32),t=s-G*32,c=D<G*32+32){const h=D>>>32-t&4294967295;Q[E+G+1]|=h}}}function xI(Q,A,I){const g=Math.abs(Q),B=Math.abs(A),C=Math.abs(I),E=Math.max(g,B,C),i=Math.floor(Math.log2(E)),o=Math.max(0,Math.min(31,i+15)),D=2**(o-15)/255,s=Math.round(Math.max(0,Math.min(255,g/D))),w=Math.round(Math.max(0,Math.min(255,B/D))),G=Math.round(Math.max(0,Math.min(255,C/D))),t=o<<3|((Q<0?1:0)|(A<0?2:0)|(I<0?4:0));return s|w<<8|G<<16|t<<24}function U0(Q){const A=aB.color,g=2**((Q>>>27&31)-15)/255,B=(Q&255)*g,C=(Q>>>8&255)*g,E=(Q>>>16&255)*g;return A.r=Q&16777216?-B:B,A.g=Q&33554432?-C:C,A.b=Q&67108864?-E:E,A}function L0(Q,A,I){const g=A*4;for(let B=0;B<3;++B){const C=B*3;Q[g+B]=xI(I[C],I[C+1],I[C+2])}}function H0(Q,A,I,g,B){const C=I*4;for(let E=0;E<3;++E){const i=E*3;Q[C+E]=xI(g[i],g[i+1],g[i+2])}Q[C+3]=xI(B[0],B[1],B[2]);for(let E=1;E<5;++E){const i=E*5;A[C+(E-1)]=xI(B[i],B[i+1],B[i+2])}}function n0(Q,A,I,g){const B=I*4;for(let C=0;C<4;++C){const E=C*3;Q[B+C]=xI(g[E],g[E+1],g[E+2])}for(let C=4;C<7;++C){const E=C*3;A[B+(C-4)]=xI(g[E],g[E+1],g[E+2])}}function fE(Q,A){const I=[];let g=0,B=null;const C=new ps((o,D)=>{if(I.push(o),g+=o.length,D||g>=A){const s=new Uint8Array(g);let w=0;for(const G of I)s.set(G,w),w+=G.length;B=s.slice(0,A)}}),E=1024;let i=0;for(;B==null&&ithis.indent+g).join(` -`)+this.after}}const lB=new WeakMap;function XG(Q){let A=lB.get(Q);return A||(A=new G.RawShaderMaterial({glslVersion:G.GLSL3,vertexShader:LC,fragmentShader:Q.shader,uniforms:Q.uniforms}),lB.set(Q,A),A)}function SB(Q,A,I="add"){const g=()=>{throw new Error(`Invalid ${I} types: ${Q}, ${A}`)};if(Q===A)return Q;if(Q==="int"){if(lA(A))return A;g()}if(A==="int"){if(lA(Q))return Q;g()}if(Q==="uint"){if(pA(A))return A;g()}if(A==="uint"){if(pA(Q))return Q;g()}if(Q==="float"){if(LI(A))return A;g()}if(A==="float"){if(LI(Q))return Q;g()}throw new Error(`Invalid ${I} types: ${Q}, ${A}`)}function WG(Q,A){return SB(Q,A,"sub")}function jG(Q,A){const I=()=>{throw new Error(`Invalid mul types: ${Q}, ${A}`)},g=B=>B;if(Q==="int"){if(lA(A))return g(A);I()}if(A==="int"){if(lA(Q))return g(Q);I()}if(Q==="uint"){if(pA(A))return g(A);I()}if(A==="uint"){if(pA(Q))return g(Q);I()}if(Q==="float"){if(LI(A))return g(A);I()}if(A==="float"){if(LI(Q))return g(Q);I()}if(lA(Q)||pA(Q)||lA(A)||pA(A)){if(Q===A)return g(Q);I()}if(Q==="vec2"){if(A==="vec2"||rI(A))return g("vec2");if(A==="mat3x2")return g("vec3");if(A==="mat4x2")return g("vec4");I()}if(Q==="vec3"){if(A==="mat2x3")return g("vec2");if(A==="vec3"||nI(A))return g("vec3");if(A==="mat4x3")return g("vec4");I()}if(Q==="vec4"){if(A==="mat2x4")return g("vec2");if(A==="mat3x4")return g("vec3");if(A==="vec4"||dI(A))return g("vec4");I()}if(A==="vec2"){if(rI(Q))return g("vec2");if(Q==="mat2x3")return g("vec3");if(Q==="mat2x4")return g("vec4");I()}if(A==="vec3"){if(Q==="mat3x2")return g("vec2");if(nI(Q))return g("vec3");if(Q==="mat3x4")return g("vec4");I()}if(A==="vec4"){if(Q==="mat4x2")return g("vec2");if(Q==="mat4x3")return g("vec3");if(dI(Q))return g("vec4");I()}if(rI(Q)){if(rI(A))return g("mat2");if(A==="mat3x2")return g("mat3x2");if(A==="mat4x2")return g("mat4x2");I()}if(Q==="mat2x3"){if(rI(A))return g("mat2x3");if(A==="mat3x2")return g("mat3");if(A==="mat4x2")return g("mat4x3");I()}if(Q==="mat2x4"){if(rI(A))return g("mat2x4");if(A==="mat3x2")return g("mat3x4");if(A==="mat4x2")return g("mat4");I()}if(Q==="mat3x2"){if(A==="mat2x3")return g("mat2");if(nI(A))return g("mat3x2");if(A==="mat4x3")return g("mat4x2");I()}if(nI(Q)){if(A==="mat2x3")return g("mat2x3");if(nI(A))return g("mat3");if(A==="mat4x3")return g("mat4x3");I()}if(Q==="mat3x4"){if(A==="mat2x3")return g("mat2x4");if(nI(A))return g("mat3x4");if(A==="mat4x3")return g("mat4");I()}if(Q==="mat4x2"){if(A==="mat2x4")return g("mat2");if(A==="mat3x4")return g("mat3x2");if(dI(A))return g("mat4x2");I()}if(Q==="mat4x3"){if(A==="mat2x4")return g("mat2x3");if(A==="mat3x4")return g("mat3");if(dI(A))return g("mat4x3");I()}if(dI(Q)){if(A==="mat2x4")return g("mat2x4");if(A==="mat3x4")return g("mat3x4");if(dI(A))return g("mat4");I()}throw new Error(`Invalid mul types: ${Q}, ${A}`)}function vG(Q,A){return SB(Q,A,"div")}function zG(Q,A){if(Q===A)return Q;if(Q==="int"){if(lA(A))return A}else if(A==="int"){if(lA(Q))return Q}else if(Q==="uint"){if(pA(A))return A}else if(A==="uint"&&pA(Q))return Q;throw new Error(`Invalid imod types: ${Q}, ${A}`)}function _G(Q,A){if(Q===A||A==="float")return Q;throw new Error(`Invalid mod types: ${Q}, ${A}`)}function $G(Q){return Q}function A0(Q){return Q}function I0(Q){return Q}function g0(Q){return Q}function Q0(Q){return Q}function B0(Q){return Q}function C0(Q){return Q}function E0(Q){return Q}function D0(Q){return Q}function i0(Q){return Q}function w0(Q){return Q}function o0(Q){return Q}function s0(Q){return Q}function G0(Q){return Q}function y0(Q){return Q}function h0(Q){return Q}function zE(Q,A,I="min"){if(Q===A)return Q;if(A==="float"){if(rg(Q))return Q}else if(A==="int"){if(lA(Q))return Q}else if(A==="uint"&&pA(Q))return Q;throw new Error(`Invalid ${I} types: ${Q}, ${A}`)}function R0(Q,A){return zE(Q,A,"max")}function k0(Q,A,I){if(A==="float"){if(rg(Q))return Q}else if(A==="int"){if(lA(Q))return Q}else if(A==="uint"&&pA(Q))return Q;throw new Error(`Invalid clamp types: ${Q}, ${A}`)}function F0(Q,A,I){if(I===Q||I==="float"||I==="bool"&&Q==="float"||I==="bvec2"&&Q==="vec2"||I==="bvec3"&&Q==="vec3"||I==="bvec4"&&Q==="vec4")return Q;throw new Error(`Invalid mix types: ${Q}, ${A}, ${I}`)}function a0(Q,A){if(Q===A||A==="float")return A;throw new Error(`Invalid step types: ${Q}, ${A}`)}function S0(Q,A,I){if(Q===A&&(Q===I||Q==="float"))return I;throw new Error(`Invalid smoothstep types: ${Q}, ${A}, ${I}`)}function _E(Q,A="isNan"){if(Q==="float")return"bool";if(Q==="vec2")return"bvec2";if(Q==="vec3")return"bvec3";if(Q==="vec4")return"bvec4";throw new Error(`Invalid ${A} types: ${Q}`)}function N0(Q){return _E(Q,"isInf")}const xA=(Q,A)=>new gD({a:Q,b:A}),wI=(Q,A)=>new QD({a:Q,b:A}),kA=(Q,A)=>new BD({a:Q,b:A}),mg=(Q,A)=>new CD({a:Q,b:A}),OQ=(Q,A)=>new ED({a:Q,b:A}),$E=(Q,A)=>new DD({a:Q,b:A}),c0=Q=>new iD({a:Q}).outputs,NB=Q=>new wD({a:Q}),M0=Q=>new oD({a:Q}),J0=Q=>new sD({a:Q}),U0=Q=>new GD({a:Q}),t0=Q=>new yD({a:Q}),H0=Q=>new hD({a:Q}),L0=Q=>new RD({a:Q}),Zg=Q=>new kD({a:Q}),Y0=(Q,A)=>new FD({a:Q,b:A}),K0=Q=>new aD({a:Q}),e0=Q=>new SD({a:Q}),r0=Q=>new ND({a:Q}),n0=Q=>new cD({a:Q}),d0=Q=>new MD({a:Q}),q0=Q=>new JD({a:Q}),x0=Q=>new UD({a:Q}),l0=(Q,A)=>new tD({a:Q,b:A}),AD=(Q,A)=>new HD({a:Q,b:A}),p0=(Q,A,I)=>new LD({a:Q,min:A,max:I}),ID=(Q,A,I)=>new YD({a:Q,b:A,t:I}),f0=(Q,A)=>new KD({edge:Q,x:A}),b0=(Q,A,I)=>new eD({edge0:Q,edge1:A,x:I}),P0=Q=>new rD({a:Q}),u0=Q=>new nD({a:Q});class gD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"sum",outTypeFunc:SB}),this.statements=({inputs:g,outputs:B})=>[`${B.sum} = ${g.a} + ${g.b};`]}}class QD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"difference",outTypeFunc:WG}),this.statements=({inputs:g,outputs:B})=>[`${B.difference} = ${g.a} - ${g.b};`]}}class BD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"product",outTypeFunc:jG}),this.statements=({inputs:g,outputs:B})=>[`${B.product} = ${g.a} * ${g.b};`]}}class CD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"quotient",outTypeFunc:vG}),this.statements=({inputs:g,outputs:B})=>[`${B.quotient} = ${g.a} / ${g.b};`]}}class ED extends DA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"remainder",outTypeFunc:zG}),this.statements=({inputs:g,outputs:B})=>[`${B.remainder} = ${g.a} % ${g.b};`]}}class DD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"remainder",outTypeFunc:_G}),this.statements=({inputs:g,outputs:B})=>[`${B.remainder} = mod(${g.a}, ${g.b});`]}}class iD extends d{constructor({a:A}){const I={a:CA(A)},g=I.a,B={fract:g,integer:g};super({inTypes:I,outTypes:B,inputs:{a:A}}),this.statements=({inputs:C,outputs:E})=>[`${E.fract} = modf(${C.a}, ${E.integer});`]}}class wD extends e{constructor({a:A}){super({a:A,outKey:"neg",outTypeFunc:$G}),this.statements=({inputs:I,outputs:g})=>[`${g.neg} = -${I.a};`]}}class oD extends e{constructor({a:A}){super({a:A,outKey:"abs",outTypeFunc:A0}),this.statements=({inputs:I,outputs:g})=>[`${g.abs} = abs(${I.a});`]}}class sD extends e{constructor({a:A}){super({a:A,outKey:"sign",outTypeFunc:I0}),this.statements=({inputs:I,outputs:g})=>[`${g.sign} = sign(${I.a});`]}}class GD extends e{constructor({a:A}){super({a:A,outKey:"floor",outTypeFunc:g0}),this.statements=({inputs:I,outputs:g})=>[`${g.floor} = floor(${I.a});`]}}class yD extends e{constructor({a:A}){super({a:A,outKey:"ceil",outTypeFunc:Q0}),this.statements=({inputs:I,outputs:g})=>[`${g.ceil} = ceil(${I.a});`]}}class hD extends e{constructor({a:A}){super({a:A,outKey:"trunc",outTypeFunc:B0}),this.statements=({inputs:I,outputs:g})=>[`${g.trunc} = trunc(${I.a});`]}}class RD extends e{constructor({a:A}){super({a:A,outKey:"round",outTypeFunc:C0}),this.statements=({inputs:I,outputs:g})=>[`${g.round} = round(${I.a});`]}}class kD extends e{constructor({a:A}){super({a:A,outKey:"fract",outTypeFunc:E0}),this.statements=({inputs:I,outputs:g})=>[`${g.fract} = fract(${I.a});`]}}class FD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"power",outTypeFunc:D0}),this.statements=({inputs:g,outputs:B})=>[`${B.power} = pow(${g.a}, ${g.b});`]}}class aD extends e{constructor({a:A}){super({a:A,outKey:"exp",outTypeFunc:i0}),this.statements=({inputs:I,outputs:g})=>[`${g.exp} = exp(${I.a});`]}}class SD extends e{constructor({a:A}){super({a:A,outKey:"exp2",outTypeFunc:w0}),this.statements=({inputs:I,outputs:g})=>[`${g.exp2} = exp2(${I.a});`]}}class ND extends e{constructor({a:A}){super({a:A,outKey:"log",outTypeFunc:o0}),this.statements=({inputs:I,outputs:g})=>[`${g.log} = log(${I.a});`]}}class cD extends e{constructor({a:A}){super({a:A,outKey:"log2",outTypeFunc:s0}),this.statements=({inputs:I,outputs:g})=>[`${g.log2} = log2(${I.a});`]}}class MD extends e{constructor({a:A}){super({a:A,outKey:"sqr",outTypeFunc:G0}),this.statements=({inputs:I,outputs:g})=>[`${g.sqr} = ${I.a} * ${I.a};`]}}class JD extends e{constructor({a:A}){super({a:A,outKey:"sqrt",outTypeFunc:y0}),this.statements=({inputs:I,outputs:g})=>[`${g.sqrt} = sqrt(${I.a});`]}}class UD extends e{constructor({a:A}){super({a:A,outKey:"inversesqrt",outTypeFunc:h0}),this.statements=({inputs:I,outputs:g})=>[`${g.inversesqrt} = inversesqrt(${I.a});`]}}class tD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"min",outTypeFunc:zE}),this.statements=({inputs:g,outputs:B})=>[`${B.min} = min(${g.a}, ${g.b});`]}}class HD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"max",outTypeFunc:R0}),this.statements=({inputs:g,outputs:B})=>[`${B.max} = max(${g.a}, ${g.b});`]}}class LD extends ZI{constructor({a:A,min:I,max:g}){super({a:A,b:I,c:g,outKey:"clamp",outTypeFunc:k0}),this.statements=({inputs:B,outputs:C})=>{const{a:E,b:D,c:i}=B;return[`${C.clamp} = clamp(${E}, ${D}, ${i});`]}}}class YD extends ZI{constructor({a:A,b:I,t:g}){super({a:A,b:I,c:g,outKey:"mix",outTypeFunc:F0}),this.statements=({inputs:B,outputs:C})=>{const{a:E,b:D,c:i}=B;return[`${C.mix} = mix(${E}, ${D}, ${i});`]}}}class KD extends DA{constructor({edge:A,x:I}){super({a:A,b:I,outKey:"step",outTypeFunc:a0}),this.statements=({inputs:g,outputs:B})=>{const{a:C,b:E}=g;return[`${B.step} = step(${C}, ${E});`]}}}class eD extends ZI{constructor({edge0:A,edge1:I,x:g}){super({a:A,b:I,c:g,outKey:"smoothstep",outTypeFunc:S0}),this.statements=({inputs:B,outputs:C})=>{const{a:E,b:D,c:i}=B;return[`${C.smoothstep} = smoothstep(${E}, ${D}, ${i});`]}}}class rD extends e{constructor({a:A}){super({a:A,outKey:"isNan",outTypeFunc:_E}),this.statements=({inputs:I,outputs:g})=>[`${g.isNan} = isNan(${I.a});`]}}class nD extends e{constructor({a:A}){super({a:A,outKey:"isInf",outTypeFunc:N0}),this.statements=({inputs:I,outputs:g})=>[`${g.isInf} = isInf(${I.a});`]}}const T0=(Q,A)=>new qD({a:Q,b:A}),O0=(Q,A)=>new xD({a:Q,b:A}),m0=(Q,A)=>new lD({a:Q,b:A}),Z0=Q=>new pD({a:Q}),V0=(Q,A)=>new jD({a:Q,b:A}),X0=(Q,A)=>new vD({a:Q,b:A}),W0=(Q,A)=>new fD({a:Q,b:A}),j0=(Q,A)=>new bD({a:Q,b:A}),v0=(Q,A)=>new PD({a:Q,b:A}),dD=(Q,A)=>new uD({a:Q,b:A}),z0=(Q,A)=>new TD({a:Q,b:A}),_0=(Q,A)=>new OD({a:Q,b:A}),$0=Q=>new mD({a:Q}),Ay=Q=>new ZD({a:Q}),cB=(Q,A,I)=>new VD({cond:Q,t:A,f:I}),Iy=Q=>new WD({a:Q});class qD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>g,outKey:"and"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.and==="bool"?[`${B.and} = ${g.a} && ${g.b};`]:[`${B.and} = ${g.a} & ${g.b};`]}}class xD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>g,outKey:"or"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.or==="bool"?[`${B.or} = ${g.a} || ${g.b};`]:[`${B.or} = ${g.a} | ${g.b};`]}}class lD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>g,outKey:"xor"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.xor==="bool"?[`${B.xor} = ${g.a} ^^ ${g.b};`]:[`${B.xor} = ${g.a} ^ ${g.b};`]}}class pD extends e{constructor({a:A}){super({a:A,outTypeFunc:I=>I,outKey:"not"}),this.statements=({inputs:I,outputs:g})=>this.outTypes.not==="bool"?[`${g.not} = !${I.a};`]:[`${g.not} = not(${I.a});`]}}class fD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>hQ(g,"lessThan"),outKey:"lessThan"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.lessThan==="bool"?[`${B.lessThan} = ${g.a} < ${g.b};`]:[`${B.lessThan} = lessThan(${g.a}, ${g.b});`]}}class bD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>hQ(g,"lessThanEqual"),outKey:"lessThanEqual"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.lessThanEqual==="bool"?[`${B.lessThanEqual} = ${g.a} <= ${g.b};`]:[`${B.lessThanEqual} = lessThanEqual(${g.a}, ${g.b});`]}}class PD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>hQ(g,"greaterThan"),outKey:"greaterThan"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.greaterThan==="bool"?[`${B.greaterThan} = ${g.a} > ${g.b};`]:[`${B.greaterThan} = greaterThan(${g.a}, ${g.b});`]}}class uD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>hQ(g,"greaterThanEqual"),outKey:"greaterThanEqual"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.greaterThanEqual==="bool"?[`${B.greaterThanEqual} = ${g.a} >= ${g.b};`]:[`${B.greaterThanEqual} = greaterThanEqual(${g.a}, ${g.b});`]}}class TD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:XD,outKey:"equal"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.equal==="bool"?[`${B.equal} = ${g.a} == ${g.b};`]:[`${B.equal} = equal(${g.a}, ${g.b});`]}}class OD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:gy,outKey:"notEqual"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.notEqual==="bool"?[`${B.notEqual} = ${g.a} != ${g.b};`]:[`${B.notEqual} = notEqual(${g.a}, ${g.b});`]}}class mD extends e{constructor({a:A}){super({a:A,outTypeFunc:I=>"bool",outKey:"any"}),this.statements=({inputs:I,outputs:g})=>[`${g.any} = any(${I.a});`]}}class ZD extends e{constructor({a:A}){super({a:A,outTypeFunc:I=>"bool",outKey:"all"}),this.statements=({inputs:I,outputs:g})=>[`${g.all} = all(${I.a});`]}}class VD extends ZI{constructor({cond:A,t:I,f:g}){super({a:A,b:I,c:g,outKey:"select",outTypeFunc:(B,C,E)=>C}),this.statements=({inputs:B,outputs:C})=>{const{a:E,b:D,c:i}=B;return[`${C.select} = (${E}) ? (${D}) : (${i});`]}}}function hQ(Q,A){if(mI(Q))return"bool";if(Q==="ivec2"||Q==="uvec2"||Q==="vec2")return"bvec2";if(Q==="ivec3"||Q==="uvec3"||Q==="vec3")return"bvec3";if(Q==="ivec4"||Q==="uvec4"||Q==="vec4")return"bvec4";throw new Error(`Invalid ${A} type: ${Q}`)}function XD(Q,A="equal"){if(mI(Q))return"bool";if(OI(Q))return Q;if(Q==="ivec2"||Q==="uvec2"||Q==="vec2")return"bvec2";if(Q==="ivec3"||Q==="uvec3"||Q==="vec3")return"bvec3";if(Q==="ivec4"||Q==="uvec4"||Q==="vec4")return"bvec4";throw new Error(`Invalid ${A} type: ${Q}`)}function gy(Q){return XD(Q,"notEqual")}function Qy(Q){if(OI(Q))return"bool";if(lA(Q))return"int";if(pA(Q))return"uint";throw new Error(`Invalid compXor type: ${Q}`)}class WD extends e{constructor({a:A}){const I=Qy(CA(A));super({a:A,outTypeFunc:g=>I,outKey:"compXor"}),this.statements=({inputs:g,outputs:B})=>{if(mI(this.outTypes.compXor))return[`${B.compXor} = ${g.a};`];const E=(Bg(I)?["x","y"]:Cg(I)?["x","y","z"]:["x","y","z","w"]).map(i=>`${g.a}.${i}`),D=OI(I)?"^^":"^";return[`${B.compXor} = ${E.join(` ${D} `)};`]}}}class jD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>g,outKey:"shr"}),this.statements=({inputs:g,outputs:B})=>[`${B.shr} = ${g.a} >> ${g.b};`]}}class vD extends DA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>g,outKey:"shl"}),this.statements=({inputs:g,outputs:B})=>[`${B.shl} = ${g.a} << ${g.b};`]}}const By=Q=>new Qi({value:Q}),Cy=Q=>new Bi({value:Q}),Ey=Q=>new Ci({value:Q}),zD=Q=>new Ei({value:Q}),Dy=Q=>new Di({value:Q}),iy=Q=>new ii({value:Q}),wy=Q=>new wi({value:Q}),oy=Q=>new oi({value:Q}),sy=Q=>new si({value:Q}),Gy=Q=>new Gi({value:Q}),yy=Q=>new yi({value:Q}),hy=Q=>new hi({value:Q}),Ry=Q=>new Ri({value:Q}),_D=Q=>new ki({value:Q}),PI=Q=>new Fi({value:Q}),$D=Q=>new ai({value:Q}),ky=Q=>new Si({value:Q}),Fy=Q=>new Ni({value:Q}),ay=Q=>new ci({value:Q}),Ai=Q=>new Mi({value:Q}),Ii=Q=>new Ji({value:Q}),Sy=Q=>new Ui({value:Q}),Ny=Q=>new ti({value:Q}),cy=Q=>new Hi({value:Q}),My=Q=>new Li({value:Q}),Jy=Q=>new Yi({value:Q}),Uy=Q=>new Ki({value:Q}),gi=Q=>new ei({value:Q}),ty=Q=>new ri({value:Q}),mQ=Q=>new ni({value:Q});class HA extends e{constructor({value:A,outType:I,outKey:g}){super({a:A,outTypeFunc:()=>I,outKey:g}),this.statements=({inputs:B,outputs:C})=>[`${C[g]} = ${yC(I)}(${B.a});`]}}class Qi extends HA{constructor({value:A}){super({value:A,outType:"bool",outKey:"bool"})}}class Bi extends HA{constructor({value:A}){super({value:A,outType:"int",outKey:"int"})}}class Ci extends HA{constructor({value:A}){super({value:A,outType:"uint",outKey:"uint"})}}class Ei extends HA{constructor({value:A}){super({value:A,outType:"float",outKey:"float"})}}class Di extends HA{constructor({value:A}){super({value:A,outType:"bvec2",outKey:"bvec2"})}}class ii extends HA{constructor({value:A}){super({value:A,outType:"bvec3",outKey:"bvec3"})}}class wi extends HA{constructor({value:A}){super({value:A,outType:"bvec4",outKey:"bvec4"})}}class oi extends HA{constructor({value:A}){super({value:A,outType:"ivec2",outKey:"ivec2"})}}class si extends HA{constructor({value:A}){super({value:A,outType:"ivec3",outKey:"ivec3"})}}class Gi extends HA{constructor({value:A}){super({value:A,outType:"ivec4",outKey:"ivec4"})}}class yi extends HA{constructor({value:A}){super({value:A,outType:"uvec2",outKey:"uvec2"})}}class hi extends HA{constructor({value:A}){super({value:A,outType:"uvec3",outKey:"uvec3"})}}class Ri extends HA{constructor({value:A}){super({value:A,outType:"uvec4",outKey:"uvec4"})}}class ki extends HA{constructor({value:A}){super({value:A,outType:"vec2",outKey:"vec2"})}}class Fi extends HA{constructor({value:A}){super({value:A,outType:"vec3",outKey:"vec3"})}}class ai extends HA{constructor({value:A}){super({value:A,outType:"vec4",outKey:"vec4"})}}class Si extends HA{constructor({value:A}){super({value:A,outType:"mat2",outKey:"mat2"})}}class Ni extends HA{constructor({value:A}){super({value:A,outType:"mat3",outKey:"mat3"})}}class ci extends HA{constructor({value:A}){super({value:A,outType:"mat4",outKey:"mat4"})}}class Mi extends e{constructor({value:A}){super({a:A,outKey:"int",outTypeFunc:()=>"int"}),this.statements=({inputs:I,outputs:g})=>[`${g.int} = floatBitsToInt(${I.a});`]}}class Ji extends e{constructor({value:A}){super({a:A,outKey:"uint",outTypeFunc:()=>"uint"}),this.statements=({inputs:I,outputs:g})=>[`${g.uint} = floatBitsToUint(${I.a});`]}}class Ui extends e{constructor({value:A}){super({a:A,outKey:"float",outTypeFunc:()=>"float"}),this.statements=({inputs:I,outputs:g})=>[`${g.float} = intBitsToFloat(${I.a});`]}}class ti extends e{constructor({value:A}){super({a:A,outKey:"float",outTypeFunc:()=>"float"}),this.statements=({inputs:I,outputs:g})=>[`${g.float} = uintBitsToFloat(${I.a});`]}}class Hi extends e{constructor({value:A}){super({a:A,outKey:"uint",outTypeFunc:()=>"uint"}),this.statements=({inputs:I,outputs:g})=>[`${g.uint} = packSnorm2x16(${I.a});`]}}class Li extends e{constructor({value:A}){super({a:A,outKey:"vec2",outTypeFunc:()=>"vec2"}),this.statements=({inputs:I,outputs:g})=>[`${g.vec2} = unpackSnorm2x16(${I.a});`]}}class Yi extends e{constructor({value:A}){super({a:A,outKey:"uint",outTypeFunc:()=>"uint"}),this.statements=({inputs:I,outputs:g})=>[`${g.uint} = packUnorm2x16(${I.a});`]}}class Ki extends e{constructor({value:A}){super({a:A,outKey:"vec2",outTypeFunc:()=>"vec2"}),this.statements=({inputs:I,outputs:g})=>[`${g.vec2} = unpackUnorm2x16(${I.a});`]}}class ei extends e{constructor({value:A}){super({a:A,outKey:"uint",outTypeFunc:()=>"uint"}),this.statements=({inputs:I,outputs:g})=>[`${g.uint} = packHalf2x16(${I.a});`]}}class ri extends e{constructor({value:A}){super({a:A,outKey:"vec2",outTypeFunc:()=>"vec2"}),this.statements=({inputs:I,outputs:g})=>[`${g.vec2} = unpackHalf2x16(${I.a});`]}}class ni extends e{constructor({value:A}){super({a:A,outKey:"rgba8",outTypeFunc:()=>"vec4"}),this.statements=({inputs:I,outputs:g})=>[`uvec4 uRgba = uvec4(${I.a} & 0xffu, (${I.a} >> 8u) & 0xffu, (${I.a} >> 16u) & 0xffu, (${I.a} >> 24u) & 0xffu);`,`${g.rgba8} = vec4(uRgba) / 255.0;`]}}const Hy=Q=>new qi({a:Q}),Ly=(Q,A)=>new xi({a:Q,b:A}),di=(Q,A)=>new li({a:Q,b:A}),Yy=(Q,A)=>new pi({a:Q,b:A}),Ug=Q=>new fi({a:Q}),Ky=(Q,A,I)=>new ui({a:Q,b:A,c:I}),ey=(Q,A)=>new Ti({incident:Q,normal:A}),ry=(Q,A,I)=>new Oi({incident:Q,normal:A,eta:I}),Ag=Q=>new ji({vector:Q}),yI=({vector:Q,vectorType:A,x:I,y:g,z:B,w:C,r:E,g:D,b:i,a:w})=>new vi({vector:Q,vectorType:A,x:I,y:g,z:B,w:C,r:E,g:D,b:i,a:w}),ny=Q=>new bi({a:Q}),dy=(Q,A)=>new Pi({a:Q,b:A}),qy=(Q,A)=>new zi({vector:Q,select:A}),xy=(Q,A)=>new mi({a:Q,b:A}),ly=(Q,A)=>new Zi({a:Q,b:A}),py=Q=>new Vi({a:Q}),fy=Q=>new Xi({a:Q}),by=Q=>new Wi({a:Q});class qi extends e{constructor({a:A}){super({a:A,outTypeFunc:I=>"float",outKey:"length"}),this.statements=({inputs:I,outputs:g})=>[`${g.length} = length(${I.a});`]}}class xi extends DA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"distance",outTypeFunc:(g,B)=>"float"}),this.statements=({inputs:g,outputs:B})=>[`${B.distance} = distance(${g.a}, ${g.b});`]}}class li extends DA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"dot",outTypeFunc:(g,B)=>"float"}),this.statements=({inputs:g,outputs:B})=>[`${B.dot} = dot(${g.a}, ${g.b});`]}}class pi extends DA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"cross",outTypeFunc:(g,B)=>"vec3"}),this.statements=({inputs:g,outputs:B})=>[`${B.cross} = cross(${g.a}, ${g.b});`]}}class fi extends e{constructor({a:A}){super({a:A,outTypeFunc:I=>I,outKey:"normalize"}),this.statements=({inputs:I,outputs:g})=>[`${g.normalize} = normalize(${I.a});`]}}function Py(Q){if(Q==="vec3")return"vec2";if(Q==="vec4")return"vec3";throw new Error("Invalid type")}class bi extends e{constructor({a:A}){super({a:A,outTypeFunc:I=>Py(I),outKey:"projected"}),this.statements=({inputs:I,outputs:g})=>{if(this.inTypes.a==="vec3")return[`${g.projected} = ${I.a}.xy / ${I.a}.z;`];if(this.inTypes.a==="vec4")return[`${g.projected} = ${I.a}.xyz / ${I.a}.w;`];throw new Error("Invalid type")}}}function uy(Q){if(Q==="float")return"vec2";if(Q==="vec2")return"vec3";if(Q==="vec3")return"vec4";throw new Error("Invalid type")}class Pi extends DA{constructor({a:A,b:I}){const g=CA(A),B=uy(g);super({a:A,b:I,outKey:"extend",outTypeFunc:()=>B}),this.statements=({inputs:C,outputs:E})=>[`${E.extend} = ${B}(${C.a}, ${C.b});`]}}class ui extends ZI{constructor({a:A,b:I,c:g}){super({a:A,b:I,c:g,outKey:"forward",outTypeFunc:(B,C,E)=>B}),this.statements=({inputs:B,outputs:C})=>[`${C.forward} = faceforward(${B.a}, ${B.b}, ${B.c});`]}}class Ti extends DA{constructor({incident:A,normal:I}){super({a:A,b:I,outKey:"reflection",outTypeFunc:(g,B)=>g}),this.statements=({inputs:g,outputs:B})=>[`${B.reflection} = reflect(${g.a}, ${g.b});`]}}class Oi extends ZI{constructor({incident:A,normal:I,eta:g}){super({a:A,b:I,c:g,outKey:"refraction",outTypeFunc:(B,C,E)=>B}),this.statements=({inputs:B,outputs:C})=>[`${C.refraction} = refract(${B.a}, ${B.b}, ${B.c});`]}}class mi extends DA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"product",outTypeFunc:(g,B)=>g}),this.statements=({inputs:g,outputs:B})=>[`${B.product} = matrixCompMult(${A}, ${I});`]}}function Ty(Q,A){if(Q==="vec2"){if(A==="vec2")return"mat2";if(A==="vec3")return"mat3x2";if(A==="vec4")return"mat4x2"}if(Q==="vec3"){if(A==="vec2")return"mat2x3";if(A==="vec3")return"mat3";if(A==="vec4")return"mat4x3"}if(Q==="vec4"){if(A==="vec2")return"mat2x4";if(A==="vec3")return"mat3x4";if(A==="vec4")return"mat4"}throw new Error(`Invalid outer type: ${Q}, ${A}`)}class Zi extends DA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"outer",outTypeFunc:Ty}),this.statements=({inputs:g,outputs:B})=>[`${B.outer} = outerProduct(${g.a}, ${g.b});`]}}function Oy(Q){if(Q==="mat2")return"mat2";if(Q==="mat3")return"mat3";if(Q==="mat4")return"mat4";if(Q==="mat2x2")return"mat2x2";if(Q==="mat2x3")return"mat3x2";if(Q==="mat2x4")return"mat4x2";if(Q==="mat3x2")return"mat2x3";if(Q==="mat3x3")return"mat3x3";if(Q==="mat3x4")return"mat4x3";if(Q==="mat4x2")return"mat2x4";if(Q==="mat4x3")return"mat3x4";if(Q==="mat4x4")return"mat4x4";throw new Error(`Invalid transpose type: ${Q}`)}class Vi extends e{constructor({a:A}){super({a:A,outKey:"transpose",outTypeFunc:Oy}),this.statements=({inputs:I,outputs:g})=>[`${g.transpose} = transpose(${I.a});`]}}class Xi extends e{constructor({a:A}){super({a:A,outKey:"det",outTypeFunc:I=>"float"}),this.statements=({inputs:I,outputs:g})=>[`${g.det} = determinant(${I.a});`]}}class Wi extends e{constructor({a:A}){super({a:A,outKey:"inverse",outTypeFunc:I=>I}),this.statements=({inputs:I,outputs:g})=>[`${g.inverse} = inverse(${A});`]}}function my(Q){const A=I=>I;switch(Q){case"vec2":return A({x:"float",y:"float",r:"float",g:"float"});case"vec3":return A({x:"float",y:"float",z:"float",r:"float",g:"float",b:"float"});case"vec4":return A({x:"float",y:"float",z:"float",w:"float",r:"float",g:"float",b:"float",a:"float"});case"ivec2":return A({x:"int",y:"int",r:"int",g:"int"});case"ivec3":return A({x:"int",y:"int",z:"int",r:"int",g:"int",b:"int"});case"ivec4":return A({x:"int",y:"int",z:"int",w:"int",r:"int",g:"int",b:"int",a:"int"});case"uvec2":return A({x:"uint",y:"uint",r:"uint",g:"uint"});case"uvec3":return A({x:"uint",y:"uint",z:"uint",r:"uint",g:"uint",b:"uint"});case"uvec4":return A({x:"uint",y:"uint",z:"uint",w:"uint",r:"uint",g:"uint",b:"uint",a:"uint"});default:throw new Error(`Invalid vector type: ${Q}`)}}class ji extends d{constructor({vector:A}){const g={vector:CA(A)},B=my(g.vector);super({inTypes:g,outTypes:B,inputs:{vector:A}}),this.statements=({inputs:C,outputs:E})=>{const{x:D,y:i,z:w,w:s,r:o,g:y,b:h,a:k}=E,{vector:R}=C;return[D?`${D} = ${R}.x;`:null,i?`${i} = ${R}.y;`:null,w?`${w} = ${R}.z;`:null,s?`${s} = ${R}.w;`:null,o?`${o} = ${R}.r;`:null,y?`${y} = ${R}.g;`:null,h?`${h} = ${R}.b;`:null,k?`${k} = ${R}.a;`:null].filter(Boolean)}}}class vi extends d{constructor({vector:A,vectorType:I,x:g,y:B,z:C,w:E,r:D,g:i,b:w,a:s}){if(!A&&!I)throw new Error("Either vector or vectorType must be provided");const o=I??CA(A),y=oC(o),h=sC(o),k={vector:o,x:y,y,r:y,g:y},R={vector:A,x:g,y:B,r:D,g:i};h>=3&&(Object.assign(k,{z:y,b:y}),Object.assign(R,{z:C,b:w})),h>=4&&(Object.assign(k,{w:y,a:y}),Object.assign(R,{w:E,a:s})),super({inTypes:k,outTypes:{vector:o},inputs:R}),this.statements=({inputs:F,outputs:a})=>{const{vector:S}=a,{vector:M,x:c,y:N,z:U,w:J,r:t,g:H,b:K,a:Y}=F,L=[`${S}.x = ${c??t??(M?`${M}.x`:wg(y))};`,`${S}.y = ${N??H??(M?`${M}.y`:wg(y))};`];return h>=3&&L.push(`${S}.z = ${U??K??(M?`${M}.z`:wg(y))};`),h>=4&&L.push(`${S}.w = ${J??Y??(M?`${M}.w`:wg(y))};`),L}}dynoOut(){return new V(this,"vector")}}function Zy(Q,A){let I=null;if(rg(Q)?I=A.length===1?"float":A.length===2?"vec2":A.length===3?"vec3":A.length===4?"vec4":null:lA(Q)?I=A.length===1?"int":A.length===2?"ivec2":A.length===3?"ivec3":A.length===4?"ivec4":null:pA(Q)&&(I=A.length===1?"uint":A.length===2?"uvec2":A.length===3?"uvec3":A.length===4?"uvec4":null),I==null)throw new Error(`Invalid swizzle: ${A}`);return I}class zi extends e{constructor({vector:A,select:I}){super({a:A,outKey:"swizzle",outTypeFunc:g=>Zy(g,I)}),this.statements=({inputs:g,outputs:B})=>[`${B.swizzle} = ${g.a}.${I};`]}}const Vy=(Q,A,I)=>new Bw({index:Q,from:A,to:I}),Xy=Q=>new Eg({value:Q}),Wy=Q=>new $A({state:Q}),jy=Q=>new AI({state:Q}),_i=Q=>new Cw({value:Q}),$i=Q=>new Ew({value:Q}),Aw=Q=>new Dw({value:Q}),Iw=Q=>new iw({value:Q}),vy=Q=>new ww({value:Q}),zy=Q=>new ow({value:Q}),gw=Q=>new sw({value:Q}),ZQ=Q=>new Gw({value:Q}),Qw=(Q,A,I)=>new yw({z:Q,zNear:A,zFar:I}).outputs.depth,_y=Q=>new hw({index:Q});class Bw extends d{constructor({from:A,to:I,index:g}){super({inTypes:{from:"int",to:"int",index:"int"},outTypes:{index:"int"},inputs:{from:A,to:I,index:g},statements:({inputs:B,outputs:C})=>[`${C.index} = ${B.index} - ${B.from} + ${B.to};`]})}dynoOut(){return new V(this,"index")}}class $A extends d{constructor({state:A}){const I=CA(A);super({inTypes:{state:I},outTypes:{state:"uint"},inputs:{state:A},globals:()=>[oA(` +`)+this.after}}const YB=new WeakMap;function r0(Q){let A=YB.get(Q);return A||(A=new a.RawShaderMaterial({glslVersion:a.GLSL3,vertexShader:rE,fragmentShader:Q.shader,uniforms:Q.uniforms}),YB.set(Q,A),A)}function yB(Q,A,I="add"){const g=()=>{throw new Error(`Invalid ${I} types: ${Q}, ${A}`)};if(Q===A)return Q;if(Q==="int"){if(qA(A))return A;g()}if(A==="int"){if(qA(Q))return Q;g()}if(Q==="uint"){if(lA(A))return A;g()}if(A==="uint"){if(lA(Q))return Q;g()}if(Q==="float"){if(UI(A))return A;g()}if(A==="float"){if(UI(Q))return Q;g()}throw new Error(`Invalid ${I} types: ${Q}, ${A}`)}function K0(Q,A){return yB(Q,A,"sub")}function d0(Q,A){const I=()=>{throw new Error(`Invalid mul types: ${Q}, ${A}`)},g=B=>B;if(Q==="int"){if(qA(A))return g(A);I()}if(A==="int"){if(qA(Q))return g(Q);I()}if(Q==="uint"){if(lA(A))return g(A);I()}if(A==="uint"){if(lA(Q))return g(Q);I()}if(Q==="float"){if(UI(A))return g(A);I()}if(A==="float"){if(UI(Q))return g(Q);I()}if(qA(Q)||lA(Q)||qA(A)||lA(A)){if(Q===A)return g(Q);I()}if(Q==="vec2"){if(A==="vec2"||YI(A))return g("vec2");if(A==="mat3x2")return g("vec3");if(A==="mat4x2")return g("vec4");I()}if(Q==="vec3"){if(A==="mat2x3")return g("vec2");if(A==="vec3"||rI(A))return g("vec3");if(A==="mat4x3")return g("vec4");I()}if(Q==="vec4"){if(A==="mat2x4")return g("vec2");if(A==="mat3x4")return g("vec3");if(A==="vec4"||KI(A))return g("vec4");I()}if(A==="vec2"){if(YI(Q))return g("vec2");if(Q==="mat2x3")return g("vec3");if(Q==="mat2x4")return g("vec4");I()}if(A==="vec3"){if(Q==="mat3x2")return g("vec2");if(rI(Q))return g("vec3");if(Q==="mat3x4")return g("vec4");I()}if(A==="vec4"){if(Q==="mat4x2")return g("vec2");if(Q==="mat4x3")return g("vec3");if(KI(Q))return g("vec4");I()}if(YI(Q)){if(YI(A))return g("mat2");if(A==="mat3x2")return g("mat3x2");if(A==="mat4x2")return g("mat4x2");I()}if(Q==="mat2x3"){if(YI(A))return g("mat2x3");if(A==="mat3x2")return g("mat3");if(A==="mat4x2")return g("mat4x3");I()}if(Q==="mat2x4"){if(YI(A))return g("mat2x4");if(A==="mat3x2")return g("mat3x4");if(A==="mat4x2")return g("mat4");I()}if(Q==="mat3x2"){if(A==="mat2x3")return g("mat2");if(rI(A))return g("mat3x2");if(A==="mat4x3")return g("mat4x2");I()}if(rI(Q)){if(A==="mat2x3")return g("mat2x3");if(rI(A))return g("mat3");if(A==="mat4x3")return g("mat4x3");I()}if(Q==="mat3x4"){if(A==="mat2x3")return g("mat2x4");if(rI(A))return g("mat3x4");if(A==="mat4x3")return g("mat4");I()}if(Q==="mat4x2"){if(A==="mat2x4")return g("mat2");if(A==="mat3x4")return g("mat3x2");if(KI(A))return g("mat4x2");I()}if(Q==="mat4x3"){if(A==="mat2x4")return g("mat2x3");if(A==="mat3x4")return g("mat3");if(KI(A))return g("mat4x3");I()}if(KI(Q)){if(A==="mat2x4")return g("mat2x4");if(A==="mat3x4")return g("mat3x4");if(KI(A))return g("mat4");I()}throw new Error(`Invalid mul types: ${Q}, ${A}`)}function q0(Q,A){return yB(Q,A,"div")}function l0(Q,A){if(Q===A)return Q;if(Q==="int"){if(qA(A))return A}else if(A==="int"){if(qA(Q))return Q}else if(Q==="uint"){if(lA(A))return A}else if(A==="uint"&&lA(Q))return Q;throw new Error(`Invalid imod types: ${Q}, ${A}`)}function x0(Q,A){if(Q===A||A==="float")return Q;throw new Error(`Invalid mod types: ${Q}, ${A}`)}function f0(Q){return Q}function p0(Q){return Q}function u0(Q){return Q}function P0(Q){return Q}function b0(Q){return Q}function T0(Q){return Q}function m0(Q){return Q}function V0(Q){return Q}function Z0(Q){return Q}function O0(Q){return Q}function W0(Q){return Q}function v0(Q){return Q}function X0(Q){return Q}function j0(Q){return Q}function z0(Q){return Q}function _0(Q){return Q}function uE(Q,A,I="min"){if(Q===A)return Q;if(A==="float"){if(ng(Q))return Q}else if(A==="int"){if(qA(Q))return Q}else if(A==="uint"&&lA(Q))return Q;throw new Error(`Invalid ${I} types: ${Q}, ${A}`)}function $0(Q,A){return uE(Q,A,"max")}function Aa(Q,A,I){if(A==="float"){if(ng(Q))return Q}else if(A==="int"){if(qA(Q))return Q}else if(A==="uint"&&lA(Q))return Q;throw new Error(`Invalid clamp types: ${Q}, ${A}`)}function Ia(Q,A,I){if(I===Q||I==="float"||I==="bool"&&Q==="float"||I==="bvec2"&&Q==="vec2"||I==="bvec3"&&Q==="vec3"||I==="bvec4"&&Q==="vec4")return Q;throw new Error(`Invalid mix types: ${Q}, ${A}, ${I}`)}function ga(Q,A){if(Q===A||A==="float")return A;throw new Error(`Invalid step types: ${Q}, ${A}`)}function Qa(Q,A,I){if(Q===A&&(Q===I||Q==="float"))return I;throw new Error(`Invalid smoothstep types: ${Q}, ${A}, ${I}`)}function PE(Q,A="isNan"){if(Q==="float")return"bool";if(Q==="vec2")return"bvec2";if(Q==="vec3")return"bvec3";if(Q==="vec4")return"bvec4";throw new Error(`Invalid ${A} types: ${Q}`)}function Ba(Q){return PE(Q,"isInf")}const xA=(Q,A)=>new VE({a:Q,b:A}),EI=(Q,A)=>new ZE({a:Q,b:A}),FA=(Q,A)=>new OE({a:Q,b:A}),Vg=(Q,A)=>new WE({a:Q,b:A}),PQ=(Q,A)=>new vE({a:Q,b:A}),bE=(Q,A)=>new XE({a:Q,b:A}),Ca=Q=>new jE({a:Q}).outputs,cB=Q=>new zE({a:Q}),Ea=Q=>new _E({a:Q}),ia=Q=>new $E({a:Q}),Da=Q=>new Ai({a:Q}),oa=Q=>new Ii({a:Q}),wa=Q=>new gi({a:Q}),sa=Q=>new Qi({a:Q}),Zg=Q=>new Bi({a:Q}),aa=(Q,A)=>new Ci({a:Q,b:A}),Ga=Q=>new Ei({a:Q}),ta=Q=>new ii({a:Q}),ha=Q=>new Di({a:Q}),ya=Q=>new oi({a:Q}),ca=Q=>new wi({a:Q}),ka=Q=>new si({a:Q}),Fa=Q=>new ai({a:Q}),Sa=(Q,A)=>new Gi({a:Q,b:A}),TE=(Q,A)=>new ti({a:Q,b:A}),Na=(Q,A,I)=>new hi({a:Q,min:A,max:I}),mE=(Q,A,I)=>new yi({a:Q,b:A,t:I}),Ra=(Q,A)=>new ci({edge:Q,x:A}),Ma=(Q,A,I)=>new ki({edge0:Q,edge1:A,x:I}),ea=Q=>new Fi({a:Q}),Ja=Q=>new Si({a:Q});class VE extends iA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"sum",outTypeFunc:yB}),this.statements=({inputs:g,outputs:B})=>[`${B.sum} = ${g.a} + ${g.b};`]}}class ZE extends iA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"difference",outTypeFunc:K0}),this.statements=({inputs:g,outputs:B})=>[`${B.difference} = ${g.a} - ${g.b};`]}}class OE extends iA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"product",outTypeFunc:d0}),this.statements=({inputs:g,outputs:B})=>[`${B.product} = ${g.a} * ${g.b};`]}}class WE extends iA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"quotient",outTypeFunc:q0}),this.statements=({inputs:g,outputs:B})=>[`${B.quotient} = ${g.a} / ${g.b};`]}}class vE extends iA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"remainder",outTypeFunc:l0}),this.statements=({inputs:g,outputs:B})=>[`${B.remainder} = ${g.a} % ${g.b};`]}}class XE extends iA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"remainder",outTypeFunc:x0}),this.statements=({inputs:g,outputs:B})=>[`${B.remainder} = mod(${g.a}, ${g.b});`]}}class jE extends q{constructor({a:A}){const I={a:BA(A)},g=I.a,B={fract:g,integer:g};super({inTypes:I,outTypes:B,inputs:{a:A}}),this.statements=({inputs:C,outputs:E})=>[`${E.fract} = modf(${C.a}, ${E.integer});`]}}class zE extends r{constructor({a:A}){super({a:A,outKey:"neg",outTypeFunc:f0}),this.statements=({inputs:I,outputs:g})=>[`${g.neg} = -${I.a};`]}}class _E extends r{constructor({a:A}){super({a:A,outKey:"abs",outTypeFunc:p0}),this.statements=({inputs:I,outputs:g})=>[`${g.abs} = abs(${I.a});`]}}class $E extends r{constructor({a:A}){super({a:A,outKey:"sign",outTypeFunc:u0}),this.statements=({inputs:I,outputs:g})=>[`${g.sign} = sign(${I.a});`]}}class Ai extends r{constructor({a:A}){super({a:A,outKey:"floor",outTypeFunc:P0}),this.statements=({inputs:I,outputs:g})=>[`${g.floor} = floor(${I.a});`]}}class Ii extends r{constructor({a:A}){super({a:A,outKey:"ceil",outTypeFunc:b0}),this.statements=({inputs:I,outputs:g})=>[`${g.ceil} = ceil(${I.a});`]}}class gi extends r{constructor({a:A}){super({a:A,outKey:"trunc",outTypeFunc:T0}),this.statements=({inputs:I,outputs:g})=>[`${g.trunc} = trunc(${I.a});`]}}class Qi extends r{constructor({a:A}){super({a:A,outKey:"round",outTypeFunc:m0}),this.statements=({inputs:I,outputs:g})=>[`${g.round} = round(${I.a});`]}}class Bi extends r{constructor({a:A}){super({a:A,outKey:"fract",outTypeFunc:V0}),this.statements=({inputs:I,outputs:g})=>[`${g.fract} = fract(${I.a});`]}}class Ci extends iA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"power",outTypeFunc:Z0}),this.statements=({inputs:g,outputs:B})=>[`${B.power} = pow(${g.a}, ${g.b});`]}}class Ei extends r{constructor({a:A}){super({a:A,outKey:"exp",outTypeFunc:O0}),this.statements=({inputs:I,outputs:g})=>[`${g.exp} = exp(${I.a});`]}}class ii extends r{constructor({a:A}){super({a:A,outKey:"exp2",outTypeFunc:W0}),this.statements=({inputs:I,outputs:g})=>[`${g.exp2} = exp2(${I.a});`]}}class Di extends r{constructor({a:A}){super({a:A,outKey:"log",outTypeFunc:v0}),this.statements=({inputs:I,outputs:g})=>[`${g.log} = log(${I.a});`]}}class oi extends r{constructor({a:A}){super({a:A,outKey:"log2",outTypeFunc:X0}),this.statements=({inputs:I,outputs:g})=>[`${g.log2} = log2(${I.a});`]}}class wi extends r{constructor({a:A}){super({a:A,outKey:"sqr",outTypeFunc:j0}),this.statements=({inputs:I,outputs:g})=>[`${g.sqr} = ${I.a} * ${I.a};`]}}class si extends r{constructor({a:A}){super({a:A,outKey:"sqrt",outTypeFunc:z0}),this.statements=({inputs:I,outputs:g})=>[`${g.sqrt} = sqrt(${I.a});`]}}class ai extends r{constructor({a:A}){super({a:A,outKey:"inversesqrt",outTypeFunc:_0}),this.statements=({inputs:I,outputs:g})=>[`${g.inversesqrt} = inversesqrt(${I.a});`]}}class Gi extends iA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"min",outTypeFunc:uE}),this.statements=({inputs:g,outputs:B})=>[`${B.min} = min(${g.a}, ${g.b});`]}}class ti extends iA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"max",outTypeFunc:$0}),this.statements=({inputs:g,outputs:B})=>[`${B.max} = max(${g.a}, ${g.b});`]}}class hi extends PI{constructor({a:A,min:I,max:g}){super({a:A,b:I,c:g,outKey:"clamp",outTypeFunc:Aa}),this.statements=({inputs:B,outputs:C})=>{const{a:E,b:i,c:o}=B;return[`${C.clamp} = clamp(${E}, ${i}, ${o});`]}}}class yi extends PI{constructor({a:A,b:I,t:g}){super({a:A,b:I,c:g,outKey:"mix",outTypeFunc:Ia}),this.statements=({inputs:B,outputs:C})=>{const{a:E,b:i,c:o}=B;return[`${C.mix} = mix(${E}, ${i}, ${o});`]}}}class ci extends iA{constructor({edge:A,x:I}){super({a:A,b:I,outKey:"step",outTypeFunc:ga}),this.statements=({inputs:g,outputs:B})=>{const{a:C,b:E}=g;return[`${B.step} = step(${C}, ${E});`]}}}class ki extends PI{constructor({edge0:A,edge1:I,x:g}){super({a:A,b:I,c:g,outKey:"smoothstep",outTypeFunc:Qa}),this.statements=({inputs:B,outputs:C})=>{const{a:E,b:i,c:o}=B;return[`${C.smoothstep} = smoothstep(${E}, ${i}, ${o});`]}}}class Fi extends r{constructor({a:A}){super({a:A,outKey:"isNan",outTypeFunc:PE}),this.statements=({inputs:I,outputs:g})=>[`${g.isNan} = isNan(${I.a});`]}}class Si extends r{constructor({a:A}){super({a:A,outKey:"isInf",outTypeFunc:Ba}),this.statements=({inputs:I,outputs:g})=>[`${g.isInf} = isInf(${I.a});`]}}const Ua=(Q,A)=>new Ri({a:Q,b:A}),La=(Q,A)=>new Mi({a:Q,b:A}),Ha=(Q,A)=>new ei({a:Q,b:A}),na=Q=>new Ji({a:Q}),Ya=(Q,A)=>new fi({a:Q,b:A}),ra=(Q,A)=>new pi({a:Q,b:A}),Ka=(Q,A)=>new Ui({a:Q,b:A}),da=(Q,A)=>new Li({a:Q,b:A}),qa=(Q,A)=>new Hi({a:Q,b:A}),Ni=(Q,A)=>new ni({a:Q,b:A}),la=(Q,A)=>new Yi({a:Q,b:A}),xa=(Q,A)=>new ri({a:Q,b:A}),fa=Q=>new Ki({a:Q}),pa=Q=>new di({a:Q}),kB=(Q,A,I)=>new qi({cond:Q,t:A,f:I}),ua=Q=>new xi({a:Q});class Ri extends iA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>g,outKey:"and"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.and==="bool"?[`${B.and} = ${g.a} && ${g.b};`]:[`${B.and} = ${g.a} & ${g.b};`]}}class Mi extends iA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>g,outKey:"or"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.or==="bool"?[`${B.or} = ${g.a} || ${g.b};`]:[`${B.or} = ${g.a} | ${g.b};`]}}class ei extends iA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>g,outKey:"xor"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.xor==="bool"?[`${B.xor} = ${g.a} ^^ ${g.b};`]:[`${B.xor} = ${g.a} ^ ${g.b};`]}}class Ji extends r{constructor({a:A}){super({a:A,outTypeFunc:I=>I,outKey:"not"}),this.statements=({inputs:I,outputs:g})=>this.outTypes.not==="bool"?[`${g.not} = !${I.a};`]:[`${g.not} = not(${I.a});`]}}class Ui extends iA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>sQ(g,"lessThan"),outKey:"lessThan"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.lessThan==="bool"?[`${B.lessThan} = ${g.a} < ${g.b};`]:[`${B.lessThan} = lessThan(${g.a}, ${g.b});`]}}class Li extends iA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>sQ(g,"lessThanEqual"),outKey:"lessThanEqual"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.lessThanEqual==="bool"?[`${B.lessThanEqual} = ${g.a} <= ${g.b};`]:[`${B.lessThanEqual} = lessThanEqual(${g.a}, ${g.b});`]}}class Hi extends iA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>sQ(g,"greaterThan"),outKey:"greaterThan"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.greaterThan==="bool"?[`${B.greaterThan} = ${g.a} > ${g.b};`]:[`${B.greaterThan} = greaterThan(${g.a}, ${g.b});`]}}class ni extends iA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>sQ(g,"greaterThanEqual"),outKey:"greaterThanEqual"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.greaterThanEqual==="bool"?[`${B.greaterThanEqual} = ${g.a} >= ${g.b};`]:[`${B.greaterThanEqual} = greaterThanEqual(${g.a}, ${g.b});`]}}class Yi extends iA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:li,outKey:"equal"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.equal==="bool"?[`${B.equal} = ${g.a} == ${g.b};`]:[`${B.equal} = equal(${g.a}, ${g.b});`]}}class ri extends iA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:Pa,outKey:"notEqual"}),this.statements=({inputs:g,outputs:B})=>this.outTypes.notEqual==="bool"?[`${B.notEqual} = ${g.a} != ${g.b};`]:[`${B.notEqual} = notEqual(${g.a}, ${g.b});`]}}class Ki extends r{constructor({a:A}){super({a:A,outTypeFunc:I=>"bool",outKey:"any"}),this.statements=({inputs:I,outputs:g})=>[`${g.any} = any(${I.a});`]}}class di extends r{constructor({a:A}){super({a:A,outTypeFunc:I=>"bool",outKey:"all"}),this.statements=({inputs:I,outputs:g})=>[`${g.all} = all(${I.a});`]}}class qi extends PI{constructor({cond:A,t:I,f:g}){super({a:A,b:I,c:g,outKey:"select",outTypeFunc:(B,C,E)=>C}),this.statements=({inputs:B,outputs:C})=>{const{a:E,b:i,c:o}=B;return[`${C.select} = (${E}) ? (${i}) : (${o});`]}}}function sQ(Q,A){if(uI(Q))return"bool";if(Q==="ivec2"||Q==="uvec2"||Q==="vec2")return"bvec2";if(Q==="ivec3"||Q==="uvec3"||Q==="vec3")return"bvec3";if(Q==="ivec4"||Q==="uvec4"||Q==="vec4")return"bvec4";throw new Error(`Invalid ${A} type: ${Q}`)}function li(Q,A="equal"){if(uI(Q))return"bool";if(pI(Q))return Q;if(Q==="ivec2"||Q==="uvec2"||Q==="vec2")return"bvec2";if(Q==="ivec3"||Q==="uvec3"||Q==="vec3")return"bvec3";if(Q==="ivec4"||Q==="uvec4"||Q==="vec4")return"bvec4";throw new Error(`Invalid ${A} type: ${Q}`)}function Pa(Q){return li(Q,"notEqual")}function ba(Q){if(pI(Q))return"bool";if(qA(Q))return"int";if(lA(Q))return"uint";throw new Error(`Invalid compXor type: ${Q}`)}class xi extends r{constructor({a:A}){const I=ba(BA(A));super({a:A,outTypeFunc:g=>I,outKey:"compXor"}),this.statements=({inputs:g,outputs:B})=>{if(uI(this.outTypes.compXor))return[`${B.compXor} = ${g.a};`];const E=($I(I)?["x","y"]:Ag(I)?["x","y","z"]:["x","y","z","w"]).map(o=>`${g.a}.${o}`),i=pI(I)?"^^":"^";return[`${B.compXor} = ${E.join(` ${i} `)};`]}}}class fi extends iA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>g,outKey:"shr"}),this.statements=({inputs:g,outputs:B})=>[`${B.shr} = ${g.a} >> ${g.b};`]}}class pi extends iA{constructor({a:A,b:I}){super({a:A,b:I,outTypeFunc:(g,B)=>g,outKey:"shl"}),this.statements=({inputs:g,outputs:B})=>[`${B.shl} = ${g.a} << ${g.b};`]}}const Ta=Q=>new mi({value:Q}),ma=Q=>new Vi({value:Q}),Va=Q=>new Zi({value:Q}),ui=Q=>new Oi({value:Q}),Za=Q=>new Wi({value:Q}),Oa=Q=>new vi({value:Q}),Wa=Q=>new Xi({value:Q}),va=Q=>new ji({value:Q}),Xa=Q=>new zi({value:Q}),ja=Q=>new _i({value:Q}),za=Q=>new $i({value:Q}),_a=Q=>new AD({value:Q}),$a=Q=>new ID({value:Q}),Pi=Q=>new gD({value:Q}),fI=Q=>new QD({value:Q}),bi=Q=>new BD({value:Q}),AG=Q=>new CD({value:Q}),IG=Q=>new ED({value:Q}),gG=Q=>new iD({value:Q}),Ti=Q=>new DD({value:Q}),QG=Q=>new oD({value:Q}),BG=Q=>new wD({value:Q}),CG=Q=>new sD({value:Q}),EG=Q=>new aD({value:Q}),iG=Q=>new GD({value:Q}),DG=Q=>new tD({value:Q}),oG=Q=>new hD({value:Q}),wG=Q=>new yD({value:Q}),sG=Q=>new cD({value:Q}),aG=Q=>new kD({value:Q});class MA extends r{constructor({value:A,outType:I,outKey:g}){super({a:A,outTypeFunc:()=>I,outKey:g}),this.statements=({inputs:B,outputs:C})=>[`${C[g]} = ${zB(I)}(${B.a});`]}}class mi extends MA{constructor({value:A}){super({value:A,outType:"bool",outKey:"bool"})}}class Vi extends MA{constructor({value:A}){super({value:A,outType:"int",outKey:"int"})}}class Zi extends MA{constructor({value:A}){super({value:A,outType:"uint",outKey:"uint"})}}class Oi extends MA{constructor({value:A}){super({value:A,outType:"float",outKey:"float"})}}class Wi extends MA{constructor({value:A}){super({value:A,outType:"bvec2",outKey:"bvec2"})}}class vi extends MA{constructor({value:A}){super({value:A,outType:"bvec3",outKey:"bvec3"})}}class Xi extends MA{constructor({value:A}){super({value:A,outType:"bvec4",outKey:"bvec4"})}}class ji extends MA{constructor({value:A}){super({value:A,outType:"ivec2",outKey:"ivec2"})}}class zi extends MA{constructor({value:A}){super({value:A,outType:"ivec3",outKey:"ivec3"})}}class _i extends MA{constructor({value:A}){super({value:A,outType:"ivec4",outKey:"ivec4"})}}class $i extends MA{constructor({value:A}){super({value:A,outType:"uvec2",outKey:"uvec2"})}}class AD extends MA{constructor({value:A}){super({value:A,outType:"uvec3",outKey:"uvec3"})}}class ID extends MA{constructor({value:A}){super({value:A,outType:"uvec4",outKey:"uvec4"})}}class gD extends MA{constructor({value:A}){super({value:A,outType:"vec2",outKey:"vec2"})}}class QD extends MA{constructor({value:A}){super({value:A,outType:"vec3",outKey:"vec3"})}}class BD extends MA{constructor({value:A}){super({value:A,outType:"vec4",outKey:"vec4"})}}class CD extends MA{constructor({value:A}){super({value:A,outType:"mat2",outKey:"mat2"})}}class ED extends MA{constructor({value:A}){super({value:A,outType:"mat3",outKey:"mat3"})}}class iD extends MA{constructor({value:A}){super({value:A,outType:"mat4",outKey:"mat4"})}}class DD extends r{constructor({value:A}){super({a:A,outKey:"int",outTypeFunc:()=>"int"}),this.statements=({inputs:I,outputs:g})=>[`${g.int} = floatBitsToInt(${I.a});`]}}class oD extends r{constructor({value:A}){super({a:A,outKey:"uint",outTypeFunc:()=>"uint"}),this.statements=({inputs:I,outputs:g})=>[`${g.uint} = floatBitsToUint(${I.a});`]}}class wD extends r{constructor({value:A}){super({a:A,outKey:"float",outTypeFunc:()=>"float"}),this.statements=({inputs:I,outputs:g})=>[`${g.float} = intBitsToFloat(${I.a});`]}}class sD extends r{constructor({value:A}){super({a:A,outKey:"float",outTypeFunc:()=>"float"}),this.statements=({inputs:I,outputs:g})=>[`${g.float} = uintBitsToFloat(${I.a});`]}}class aD extends r{constructor({value:A}){super({a:A,outKey:"uint",outTypeFunc:()=>"uint"}),this.statements=({inputs:I,outputs:g})=>[`${g.uint} = packSnorm2x16(${I.a});`]}}class GD extends r{constructor({value:A}){super({a:A,outKey:"vec2",outTypeFunc:()=>"vec2"}),this.statements=({inputs:I,outputs:g})=>[`${g.vec2} = unpackSnorm2x16(${I.a});`]}}class tD extends r{constructor({value:A}){super({a:A,outKey:"uint",outTypeFunc:()=>"uint"}),this.statements=({inputs:I,outputs:g})=>[`${g.uint} = packUnorm2x16(${I.a});`]}}class hD extends r{constructor({value:A}){super({a:A,outKey:"vec2",outTypeFunc:()=>"vec2"}),this.statements=({inputs:I,outputs:g})=>[`${g.vec2} = unpackUnorm2x16(${I.a});`]}}class yD extends r{constructor({value:A}){super({a:A,outKey:"uint",outTypeFunc:()=>"uint"}),this.statements=({inputs:I,outputs:g})=>[`${g.uint} = packHalf2x16(${I.a});`]}}class cD extends r{constructor({value:A}){super({a:A,outKey:"vec2",outTypeFunc:()=>"vec2"}),this.statements=({inputs:I,outputs:g})=>[`${g.vec2} = unpackHalf2x16(${I.a});`]}}class kD extends r{constructor({value:A}){super({a:A,outKey:"rgba8",outTypeFunc:()=>"vec4"}),this.statements=({inputs:I,outputs:g})=>[`uvec4 uRgba = uvec4(${I.a} & 0xffu, (${I.a} >> 8u) & 0xffu, (${I.a} >> 16u) & 0xffu, (${I.a} >> 24u) & 0xffu);`,`${g.rgba8} = vec4(uRgba) / 255.0;`]}}const GG=Q=>new SD({a:Q}),tG=(Q,A)=>new ND({a:Q,b:A}),FD=(Q,A)=>new RD({a:Q,b:A}),hG=(Q,A)=>new MD({a:Q,b:A}),Ng=Q=>new eD({a:Q}),yG=(Q,A,I)=>new LD({a:Q,b:A,c:I}),cG=(Q,A)=>new HD({incident:Q,normal:A}),kG=(Q,A,I)=>new nD({incident:Q,normal:A,eta:I}),vI=Q=>new lD({vector:Q}),yI=({vector:Q,vectorType:A,x:I,y:g,z:B,w:C,r:E,g:i,b:o,a:D})=>new xD({vector:Q,vectorType:A,x:I,y:g,z:B,w:C,r:E,g:i,b:o,a:D}),FG=Q=>new JD({a:Q}),SG=(Q,A)=>new UD({a:Q,b:A}),NG=(Q,A)=>new fD({vector:Q,select:A}),RG=(Q,A)=>new YD({a:Q,b:A}),MG=(Q,A)=>new rD({a:Q,b:A}),eG=Q=>new KD({a:Q}),JG=Q=>new dD({a:Q}),UG=Q=>new qD({a:Q});class SD extends r{constructor({a:A}){super({a:A,outTypeFunc:I=>"float",outKey:"length"}),this.statements=({inputs:I,outputs:g})=>[`${g.length} = length(${I.a});`]}}class ND extends iA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"distance",outTypeFunc:(g,B)=>"float"}),this.statements=({inputs:g,outputs:B})=>[`${B.distance} = distance(${g.a}, ${g.b});`]}}class RD extends iA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"dot",outTypeFunc:(g,B)=>"float"}),this.statements=({inputs:g,outputs:B})=>[`${B.dot} = dot(${g.a}, ${g.b});`]}}class MD extends iA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"cross",outTypeFunc:(g,B)=>"vec3"}),this.statements=({inputs:g,outputs:B})=>[`${B.cross} = cross(${g.a}, ${g.b});`]}}class eD extends r{constructor({a:A}){super({a:A,outTypeFunc:I=>I,outKey:"normalize"}),this.statements=({inputs:I,outputs:g})=>[`${g.normalize} = normalize(${I.a});`]}}function LG(Q){if(Q==="vec3")return"vec2";if(Q==="vec4")return"vec3";throw new Error("Invalid type")}class JD extends r{constructor({a:A}){super({a:A,outTypeFunc:I=>LG(I),outKey:"projected"}),this.statements=({inputs:I,outputs:g})=>{if(this.inTypes.a==="vec3")return[`${g.projected} = ${I.a}.xy / ${I.a}.z;`];if(this.inTypes.a==="vec4")return[`${g.projected} = ${I.a}.xyz / ${I.a}.w;`];throw new Error("Invalid type")}}}function HG(Q){if(Q==="float")return"vec2";if(Q==="vec2")return"vec3";if(Q==="vec3")return"vec4";throw new Error("Invalid type")}class UD extends iA{constructor({a:A,b:I}){const g=BA(A),B=HG(g);super({a:A,b:I,outKey:"extend",outTypeFunc:()=>B}),this.statements=({inputs:C,outputs:E})=>[`${E.extend} = ${B}(${C.a}, ${C.b});`]}}class LD extends PI{constructor({a:A,b:I,c:g}){super({a:A,b:I,c:g,outKey:"forward",outTypeFunc:(B,C,E)=>B}),this.statements=({inputs:B,outputs:C})=>[`${C.forward} = faceforward(${B.a}, ${B.b}, ${B.c});`]}}class HD extends iA{constructor({incident:A,normal:I}){super({a:A,b:I,outKey:"reflection",outTypeFunc:(g,B)=>g}),this.statements=({inputs:g,outputs:B})=>[`${B.reflection} = reflect(${g.a}, ${g.b});`]}}class nD extends PI{constructor({incident:A,normal:I,eta:g}){super({a:A,b:I,c:g,outKey:"refraction",outTypeFunc:(B,C,E)=>B}),this.statements=({inputs:B,outputs:C})=>[`${C.refraction} = refract(${B.a}, ${B.b}, ${B.c});`]}}class YD extends iA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"product",outTypeFunc:(g,B)=>g}),this.statements=({inputs:g,outputs:B})=>[`${B.product} = matrixCompMult(${A}, ${I});`]}}function nG(Q,A){if(Q==="vec2"){if(A==="vec2")return"mat2";if(A==="vec3")return"mat3x2";if(A==="vec4")return"mat4x2"}if(Q==="vec3"){if(A==="vec2")return"mat2x3";if(A==="vec3")return"mat3";if(A==="vec4")return"mat4x3"}if(Q==="vec4"){if(A==="vec2")return"mat2x4";if(A==="vec3")return"mat3x4";if(A==="vec4")return"mat4"}throw new Error(`Invalid outer type: ${Q}, ${A}`)}class rD extends iA{constructor({a:A,b:I}){super({a:A,b:I,outKey:"outer",outTypeFunc:nG}),this.statements=({inputs:g,outputs:B})=>[`${B.outer} = outerProduct(${g.a}, ${g.b});`]}}function YG(Q){if(Q==="mat2")return"mat2";if(Q==="mat3")return"mat3";if(Q==="mat4")return"mat4";if(Q==="mat2x2")return"mat2x2";if(Q==="mat2x3")return"mat3x2";if(Q==="mat2x4")return"mat4x2";if(Q==="mat3x2")return"mat2x3";if(Q==="mat3x3")return"mat3x3";if(Q==="mat3x4")return"mat4x3";if(Q==="mat4x2")return"mat2x4";if(Q==="mat4x3")return"mat3x4";if(Q==="mat4x4")return"mat4x4";throw new Error(`Invalid transpose type: ${Q}`)}class KD extends r{constructor({a:A}){super({a:A,outKey:"transpose",outTypeFunc:YG}),this.statements=({inputs:I,outputs:g})=>[`${g.transpose} = transpose(${I.a});`]}}class dD extends r{constructor({a:A}){super({a:A,outKey:"det",outTypeFunc:I=>"float"}),this.statements=({inputs:I,outputs:g})=>[`${g.det} = determinant(${I.a});`]}}class qD extends r{constructor({a:A}){super({a:A,outKey:"inverse",outTypeFunc:I=>I}),this.statements=({inputs:I,outputs:g})=>[`${g.inverse} = inverse(${A});`]}}function rG(Q){const A=I=>I;switch(Q){case"vec2":return A({x:"float",y:"float",r:"float",g:"float"});case"vec3":return A({x:"float",y:"float",z:"float",r:"float",g:"float",b:"float"});case"vec4":return A({x:"float",y:"float",z:"float",w:"float",r:"float",g:"float",b:"float",a:"float"});case"ivec2":return A({x:"int",y:"int",r:"int",g:"int"});case"ivec3":return A({x:"int",y:"int",z:"int",r:"int",g:"int",b:"int"});case"ivec4":return A({x:"int",y:"int",z:"int",w:"int",r:"int",g:"int",b:"int",a:"int"});case"uvec2":return A({x:"uint",y:"uint",r:"uint",g:"uint"});case"uvec3":return A({x:"uint",y:"uint",z:"uint",r:"uint",g:"uint",b:"uint"});case"uvec4":return A({x:"uint",y:"uint",z:"uint",w:"uint",r:"uint",g:"uint",b:"uint",a:"uint"});default:throw new Error(`Invalid vector type: ${Q}`)}}class lD extends q{constructor({vector:A}){const g={vector:BA(A)},B=rG(g.vector);super({inTypes:g,outTypes:B,inputs:{vector:A}}),this.statements=({inputs:C,outputs:E})=>{const{x:i,y:o,z:D,w:s,r:w,g:G,b:t,a:c}=E,{vector:h}=C;return[i?`${i} = ${h}.x;`:null,o?`${o} = ${h}.y;`:null,D?`${D} = ${h}.z;`:null,s?`${s} = ${h}.w;`:null,w?`${w} = ${h}.r;`:null,G?`${G} = ${h}.g;`:null,t?`${t} = ${h}.b;`:null,c?`${c} = ${h}.a;`:null].filter(Boolean)}}}class xD extends q{constructor({vector:A,vectorType:I,x:g,y:B,z:C,w:E,r:i,g:o,b:D,a:s}){if(!A&&!I)throw new Error("Either vector or vectorType must be provided");const w=I??BA(A),G=vB(w),t=XB(w),c={vector:w,x:G,y:G,r:G,g:G},h={vector:A,x:g,y:B,r:i,g:o};t>=3&&(Object.assign(c,{z:G,b:G}),Object.assign(h,{z:C,b:D})),t>=4&&(Object.assign(c,{w:G,a:G}),Object.assign(h,{w:E,a:s})),super({inTypes:c,outTypes:{vector:w},inputs:h}),this.statements=({inputs:y,outputs:k})=>{const{vector:F}=k,{vector:R,x:N,y:S,z:M,w:U,r:e,g:J,b:n,a:H}=y,L=[`${F}.x = ${N??e??(R?`${R}.x`:Eg(G))};`,`${F}.y = ${S??J??(R?`${R}.y`:Eg(G))};`];return t>=3&&L.push(`${F}.z = ${M??n??(R?`${R}.z`:Eg(G))};`),t>=4&&L.push(`${F}.w = ${U??H??(R?`${R}.w`:Eg(G))};`),L}}dynoOut(){return new Z(this,"vector")}}function KG(Q,A){let I=null;if(ng(Q)?I=A.length===1?"float":A.length===2?"vec2":A.length===3?"vec3":A.length===4?"vec4":null:qA(Q)?I=A.length===1?"int":A.length===2?"ivec2":A.length===3?"ivec3":A.length===4?"ivec4":null:lA(Q)&&(I=A.length===1?"uint":A.length===2?"uvec2":A.length===3?"uvec3":A.length===4?"uvec4":null),I==null)throw new Error(`Invalid swizzle: ${A}`);return I}class fD extends r{constructor({vector:A,select:I}){super({a:A,outKey:"swizzle",outTypeFunc:g=>KG(g,I)}),this.statements=({inputs:g,outputs:B})=>[`${B.swizzle} = ${g.a}.${I};`]}}const dG=(Q,A,I)=>new VD({index:Q,from:A,to:I}),qG=Q=>new gg({value:Q}),lG=Q=>new zA({state:Q}),xG=Q=>new _A({state:Q}),pD=Q=>new ZD({value:Q}),uD=Q=>new OD({value:Q}),PD=Q=>new WD({value:Q}),bD=Q=>new vD({value:Q}),fG=Q=>new XD({value:Q}),pG=Q=>new jD({value:Q}),TD=Q=>new zD({value:Q}),bQ=Q=>new _D({value:Q}),mD=(Q,A,I)=>new $D({z:Q,zNear:A,zFar:I}).outputs.depth,uG=Q=>new Ao({index:Q});class VD extends q{constructor({from:A,to:I,index:g}){super({inTypes:{from:"int",to:"int",index:"int"},outTypes:{index:"int"},inputs:{from:A,to:I,index:g},statements:({inputs:B,outputs:C})=>[`${C.index} = ${B.index} - ${B.from} + ${B.to};`]})}dynoOut(){return new Z(this,"index")}}class zA extends q{constructor({state:A}){const I=BA(A);super({inTypes:{state:I},outTypes:{state:"uint"},inputs:{state:A},globals:()=>[GA(` uint pcg_next(uint state) { return state * 747796405u + 2891336453u; } - `)],statements:({inputs:g,outputs:B})=>{const C=I==="uint"?`${g.state}`:I==="int"?`uint(${g.state})`:`floatBitsToUint(${g.state})`;return[`${B.state} = pcg_next(${C});`]}})}dynoOut(){return new V(this,"state")}}class AI extends d{constructor({state:A}){super({inTypes:{state:"uint"},outTypes:{hash:"uint"},inputs:{state:A},globals:()=>[oA(` + `)],statements:({inputs:g,outputs:B})=>{const C=I==="uint"?`${g.state}`:I==="int"?`uint(${g.state})`:`floatBitsToUint(${g.state})`;return[`${B.state} = pcg_next(${C});`]}})}dynoOut(){return new Z(this,"state")}}class _A extends q{constructor({state:A}){super({inTypes:{state:"uint"},outTypes:{hash:"uint"},inputs:{state:A},globals:()=>[GA(` uint pcg_hash(uint state) { uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u; return (hash >> 22u) ^ hash; } - `)],statements:({inputs:I,outputs:g})=>[`${g.hash} = pcg_hash(${I.state});`]})}dynoOut(){return new V(this,"hash")}}class Eg extends d{constructor({value:A}){const I=CA(A),g=GC(I);super({inTypes:{value:I},outTypes:{state:"uint"},inputs:{value:A},globals:()=>[oA(` + `)],statements:({inputs:I,outputs:g})=>[`${g.hash} = pcg_hash(${I.state});`]})}dynoOut(){return new Z(this,"hash")}}class gg extends q{constructor({value:A}){const I=BA(A),g=jB(I);super({inTypes:{value:I},outTypes:{state:"uint"},inputs:{value:A},globals:()=>[GA(` uint pcg_mix(uint value) { return value; } @@ -204,79 +204,7 @@ uint pcg_mix(uvec4 value) { return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z + 0xc2b2ae35u * value.w; } - `)],statements:({inputs:B,outputs:C})=>{const E=pA(I)?`${B.value}`:lA(I)?`${g}(${B.value})`:`floatBitsToUint(${B.value})`;return[`${g} bits = ${E};`,`${C.state} = pcg_mix(bits);`]}})}dynoOut(){return new V(this,"state")}}class Cw extends hI{constructor({value:A}){super({inTypes:{value:CA(A)},outTypes:{hash:"uint"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");let g=new Eg({value:I}).outputs.state;return g=new $A({state:g}).outputs.state,new AI({state:g}).outputs}})}dynoOut(){return new V(this,"hash")}}class Ew extends hI{constructor({value:A}){super({inTypes:{value:CA(A)},outTypes:{hash:"uvec2"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");let g=new Eg({value:I}).outputs.state;g=new $A({state:g}).outputs.state;const B=new AI({state:g}).outputs.hash;g=new $A({state:g}).outputs.state;const C=new AI({state:g}).outputs.hash;return{hash:yI({vectorType:"uvec2",x:B,y:C})}}})}dynoOut(){return new V(this,"hash")}}class Dw extends hI{constructor({value:A}){super({inTypes:{value:CA(A)},outTypes:{hash:"uvec3"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");let g=new Eg({value:I}).outputs.state;g=new $A({state:g}).outputs.state;const B=new AI({state:g}).outputs.hash;g=new $A({state:g}).outputs.state;const C=new AI({state:g}).outputs.hash;g=new $A({state:g}).outputs.state;const E=new AI({state:g}).outputs.hash;return{hash:yI({vectorType:"uvec3",x:B,y:C,z:E})}}})}dynoOut(){return new V(this,"hash")}}class iw extends hI{constructor({value:A}){super({inTypes:{value:CA(A)},outTypes:{hash:"uvec4"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");let g=new Eg({value:I}).outputs.state;g=new $A({state:g}).outputs.state;const B=new AI({state:g}).outputs.hash;g=new $A({state:g}).outputs.state;const C=new AI({state:g}).outputs.hash;g=new $A({state:g}).outputs.state;const E=new AI({state:g}).outputs.hash;g=new $A({state:g}).outputs.state;const D=new AI({state:g}).outputs.hash;return{hash:yI({vectorType:"uvec4",x:B,y:C,z:E,w:D})}}})}dynoOut(){return new V(this,"hash")}}class ww extends hI{constructor({value:A}){super({inTypes:{value:CA(A)},outTypes:{hash:"float"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");const g=_i(I);return{hash:kA(zD(g),v("float",1/2**32))}}})}dynoOut(){return new V(this,"hash")}}class ow extends hI{constructor({value:A}){super({inTypes:{value:CA(A)},outTypes:{hash:"vec2"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");const g=$i(I);return{hash:kA(_D(g),v("float",1/2**32))}}})}dynoOut(){return new V(this,"hash")}}class sw extends hI{constructor({value:A}){super({inTypes:{value:CA(A)},outTypes:{hash:"vec3"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");const g=Aw(I);return{hash:kA(PI(g),v("float",1/2**32))}}})}dynoOut(){return new V(this,"hash")}}class Gw extends hI{constructor({value:A}){super({inTypes:{value:CA(A)},outTypes:{hash:"vec4"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");const g=Iw(I);return{hash:kA($D(g),v("float",1/2**32))}}})}dynoOut(){return new V(this,"hash")}}class yw extends d{constructor({z:A,zNear:I,zFar:g}){super({inTypes:{z:"float",zNear:"float",zFar:"float"},outTypes:{depth:"float"},inputs:{z:A,zNear:I,zFar:g},statements:({inputs:B,outputs:C})=>[`float clamped = clamp(${B.z}, ${B.zNear}, ${B.zFar});`,`${C.depth} = (log2(clamped + 1.0) - log2(${B.zNear} + 1.0)) / (log2(${B.zFar} + 1.0) - log2(${B.zNear} + 1.0));`]})}dynoOut(){return new V(this,"depth")}}class hw extends d{constructor({index:A}){super({inTypes:{index:"int"},outTypes:{color:"vec3"},inputs:{index:A},statements:({inputs:I,outputs:g})=>[`${g.color} = debugColorHue(uint(${I.index}));`]})}dynoOut(){return new V(this,"color")}}const Rw=(Q,{scale:A,scales:I,rotate:g,translate:B})=>new Fw({position:Q,scale:A,scales:I,rotate:g,translate:B}).outputs.position,kw=(Q,{scale:A,scales:I,rotate:g})=>new aw({dir:Q,scale:A,scales:I,rotate:g}).outputs.dir,$y=(Q,{rotate:A})=>new Sw({quaternion:Q,rotate:A}).outputs.quaternion;class Fw extends d{constructor({position:A,scale:I,scales:g,rotate:B,translate:C}){super({inTypes:{position:"vec3",scale:"float",scales:"vec3",rotate:"vec4",translate:"vec3"},outTypes:{position:"vec3"},inputs:{position:A,scale:I,scales:g,rotate:B,translate:C},statements:({inputs:E,outputs:D})=>{const{position:i}=D;if(!i)return[];const{scale:w,scales:s,rotate:o,translate:y}=E;return[`${i} = ${E.position??"vec3(0.0, 0.0, 0.0)"};`,w?`${i} *= ${w};`:null,s?`${i} *= ${s};`:null,o?`${i} = quatVec(${o}, ${i});`:null,y?`${i} += ${y};`:null].filter(Boolean)}})}}class aw extends d{constructor({dir:A,scale:I,scales:g,rotate:B}){super({inTypes:{dir:"vec3",scale:"float",scales:"vec3",rotate:"vec4"},outTypes:{dir:"vec3"},inputs:{dir:A,scale:I,scales:g,rotate:B},statements:({inputs:C,outputs:E})=>{const{dir:D}=E;if(!D)return[];const{scale:i,scales:w,rotate:s}=C;return[`${D} = ${C.dir??"vec3(0.0, 0.0, 0.0)"};`,i?`${D} *= ${i};`:null,w?`${D} *= ${w};`:null,s?`${D} = quatVec(${s}, ${D});`:null].filter(Boolean)}})}}class Sw extends d{constructor({quaternion:A,rotate:I}){super({inTypes:{quaternion:"vec4",rotate:"vec4"},outTypes:{quaternion:"vec4"},inputs:{quaternion:A,rotate:I},statements:({inputs:g,outputs:B})=>{const{quaternion:C}=B;return C?[`${C} = ${g.quaternion??"vec4(0.0, 0.0, 0.0, 1.0)"};`,I?`${C} = quatQuat(${g.rotate}, ${C});`:null].filter(Boolean):[]}})}}const Ah=()=>{throw new Error("Not implemented")},Ih=()=>{throw new Error("Not implemented")},gh=()=>{throw new Error("Not implemented")},Qh=()=>{throw new Error("Not implemented")},Bh=()=>{throw new Error("Not implemented")},Ch=()=>{throw new Error("Not implemented")},Eh=(Q,A)=>new Nw({texture:Q,lod:A}),Dh=(Q,A,I)=>new cw({texture:Q,coord:A,bias:I}),ih=(Q,A,I)=>new Mw({texture:Q,coord:A,lod:I});class Nw extends d{constructor({texture:A,lod:I}){const g=CA(A);super({inTypes:{texture:g,lod:"int"},outTypes:{size:Jw(g)},inputs:{texture:A,lod:I},statements:({inputs:B,outputs:C})=>[`${C.size} = textureSize(${B.texture}, ${B.lod??"0"});`]})}dynoOut(){return new V(this,"size")}}class cw extends d{constructor({texture:A,coord:I,bias:g}){const B=CA(A);super({inTypes:{texture:B,coord:wh(B),bias:"float"},outTypes:{sample:Uw(B)},inputs:{texture:A,coord:I,bias:g},statements:({inputs:C,outputs:E})=>[`${E.sample} = texture(${C.texture}, ${C.coord}${C.bias?`, ${C.bias}`:""});`]})}dynoOut(){return new V(this,"sample")}}class Mw extends d{constructor({texture:A,coord:I,lod:g}){const B=CA(A);super({inTypes:{texture:B,coord:Jw(B),lod:"int"},outTypes:{texel:Uw(B)},inputs:{texture:A,coord:I,lod:g},statements:({inputs:C,outputs:E})=>[`${E.texel} = texelFetch(${C.texture}, ${C.coord}, ${C.lod??"0"});`]})}dynoOut(){return new V(this,"texel")}}function Jw(Q){switch(Q){case"sampler2D":case"usampler2D":case"isampler2D":case"samplerCube":case"usamplerCube":case"isamplerCube":case"sampler2DShadow":case"samplerCubeShadow":return"ivec2";case"sampler3D":case"usampler3D":case"isampler3D":case"sampler2DArray":case"usampler2DArray":case"isampler2DArray":case"sampler2DArrayShadow":return"ivec3";default:throw new Error(`Invalid texture type: ${Q}`)}}function wh(Q){switch(Q){case"sampler2D":case"usampler2D":case"isampler2D":return"vec2";case"sampler3D":case"usampler3D":case"isampler3D":case"samplerCube":case"usamplerCube":case"isamplerCube":case"sampler2DArray":case"usampler2DArray":case"isampler2DArray":case"sampler2DShadow":return"vec3";case"samplerCubeShadow":case"sampler2DArrayShadow":return"vec4";default:throw new Error(`Invalid texture type: ${Q}`)}}function Uw(Q){switch(Q){case"sampler2D":case"sampler2DArray":case"sampler3D":case"samplerCube":case"sampler2DShadow":return"vec4";case"usampler2D":case"usampler2DArray":case"usampler3D":case"usamplerCube":return"uvec4";case"isampler2D":case"isampler2DArray":case"isampler3D":case"isamplerCube":return"ivec4";case"samplerCubeShadow":case"sampler2DArrayShadow":return"float";default:throw new Error(`Invalid texture type: ${Q}`)}}const oh=Q=>new tw({degrees:Q}),sh=Q=>new Hw({radians:Q}),VQ=Q=>new Lw({radians:Q}),Gh=Q=>new Yw({radians:Q}),yh=Q=>new Kw({radians:Q}),hh=Q=>new ew({sin:Q}),Rh=Q=>new rw({cos:Q}),kh=Q=>new nw({tan:Q}),Fh=(Q,A)=>new dw({y:Q,x:A}),ah=Q=>new qw({x:Q}),Sh=Q=>new xw({x:Q}),Nh=Q=>new lw({x:Q}),ch=Q=>new pw({x:Q}),Mh=Q=>new fw({x:Q}),Jh=Q=>new bw({x:Q});class tw extends e{constructor({degrees:A}){super({a:A,outTypeFunc:I=>I,outKey:"radians"}),this.statements=({inputs:I,outputs:g})=>[`${g.radians} = radians(${I.a});`]}}class Hw extends e{constructor({radians:A}){super({a:A,outTypeFunc:I=>I,outKey:"degrees"}),this.statements=({inputs:I,outputs:g})=>[`${g.degrees} = degrees(${I.a});`]}}class Lw extends e{constructor({radians:A}){super({a:A,outTypeFunc:I=>I,outKey:"sin"}),this.statements=({inputs:I,outputs:g})=>[`${g.sin} = sin(${I.a});`]}}class Yw extends e{constructor({radians:A}){super({a:A,outTypeFunc:I=>I,outKey:"cos"}),this.statements=({inputs:I,outputs:g})=>[`${g.cos} = cos(${I.a});`]}}class Kw extends e{constructor({radians:A}){super({a:A,outTypeFunc:I=>I,outKey:"tan"}),this.statements=({inputs:I,outputs:g})=>[`${g.tan} = tan(${I.a});`]}}class ew extends e{constructor({sin:A}){super({a:A,outTypeFunc:I=>I,outKey:"asin"}),this.statements=({inputs:I,outputs:g})=>[`${g.asin} = asin(${I.a});`]}}class rw extends e{constructor({cos:A}){super({a:A,outTypeFunc:I=>I,outKey:"acos"}),this.statements=({inputs:I,outputs:g})=>[`${g.acos} = acos(${I.a});`]}}class nw extends e{constructor({tan:A}){super({a:A,outTypeFunc:I=>I,outKey:"atan"}),this.statements=({inputs:I,outputs:g})=>[`${g.atan} = atan(${I.a});`]}}class dw extends DA{constructor({y:A,x:I}){super({a:A,b:I,outTypeFunc:(g,B)=>g,outKey:"atan2"}),this.statements=({inputs:g,outputs:B})=>[`${B.atan2} = atan2(${g.a}, ${g.b});`]}}class qw extends e{constructor({x:A}){super({a:A,outTypeFunc:I=>I,outKey:"sinh"}),this.statements=({inputs:I,outputs:g})=>[`${g.sinh} = sinh(${I.a});`]}}class xw extends e{constructor({x:A}){super({a:A,outTypeFunc:I=>I,outKey:"cosh"}),this.statements=({inputs:I,outputs:g})=>[`${g.cosh} = cosh(${I.a});`]}}class lw extends e{constructor({x:A}){super({a:A,outTypeFunc:I=>I,outKey:"tanh"}),this.statements=({inputs:I,outputs:g})=>[`${g.tanh} = tanh(${I.a});`]}}class pw extends e{constructor({x:A}){super({a:A,outTypeFunc:I=>I,outKey:"asinh"}),this.statements=({inputs:I,outputs:g})=>[`${g.asinh} = asinh(${I.a});`]}}class fw extends e{constructor({x:A}){super({a:A,outTypeFunc:I=>I,outKey:"acosh"}),this.statements=({inputs:I,outputs:g})=>[`${g.acosh} = acosh(${I.a});`]}}class bw extends e{constructor({x:A}){super({a:A,outTypeFunc:I=>I,outKey:"atanh"}),this.statements=({inputs:I,outputs:g})=>[`${g.atanh} = atanh(${I.a});`]}}const Uh=Object.freeze(Object.defineProperty({__proto__:null,Abs:oD,Acos:rw,Acosh:fw,Add:gD,All:ZD,And:qD,Any:mD,Asin:ew,Asinh:pw,Atan:nw,Atan2:dw,Atanh:bw,BVec2:Di,BVec3:ii,BVec4:wi,BinaryOp:DA,Bool:Qi,Ceil:yD,Clamp:LD,Combine:vi,CombineCovSplat:CE,CombineGsplat:AE,CompMult:mi,CompXor:WD,Compilation:RC,Cos:Yw,Cosh:xw,CovSplat:rA,Cross:pi,DebugColorHue:hw,Degrees:Hw,Determinant:Xi,Distance:xi,Div:CD,Dot:li,Dyno:d,DynoBlock:hI,DynoBool:uI,DynoBvec2:FE,DynoBvec3:cE,DynoBvec4:UE,DynoConst:hC,DynoFloat:bI,DynoInt:DI,DynoIsampler2D:fE,DynoIsampler2DArray:PE,DynoIsampler3D:OE,DynoIsamplerCube:VE,DynoIvec2:SE,DynoIvec3:JE,DynoIvec4:HE,DynoLiteral:_I,DynoMat2:LE,DynoMat2x2:YE,DynoMat2x3:KE,DynoMat2x4:eE,DynoMat3:aB,DynoMat3x2:rE,DynoMat3x3:nE,DynoMat3x4:dE,DynoMat4:qE,DynoMat4x2:xE,DynoMat4x3:lE,DynoMat4x4:pE,DynoOutput:V,DynoProgram:yQ,DynoProgramTemplate:Jg,DynoRemapIndex:Bw,DynoSampler2D:bE,DynoSampler2DArray:uE,DynoSampler2DArrayShadow:jE,DynoSampler2DShadow:WE,DynoSampler3D:mE,DynoSamplerCube:XE,DynoSamplerCubeShadow:vE,DynoUint:kE,DynoUniform:x,DynoUsampler2D:GQ,DynoUsampler2DArray:qA,DynoUsampler3D:TE,DynoUsamplerCube:ZE,DynoUvec2:aE,DynoUvec3:ME,DynoUvec4:tE,DynoValue:HI,DynoVec2:NE,DynoVec3:iI,DynoVec4:VI,Equal:TD,Exp:aD,Exp2:SD,ExtendVec:Pi,FaceForward:ui,Float:Ei,FloatBitsToInt:Mi,FloatBitsToUint:Ji,Floor:GD,Fract:kD,GreaterThan:PD,GreaterThanEqual:uD,Gsplat:Z,GsplatNormal:gE,GsplatToCovSplat:_C,Hash:Cw,Hash2:Ew,Hash3:Dw,Hash4:iw,HashFloat:ww,HashVec2:ow,HashVec3:sw,HashVec4:Gw,IMod:ED,IVec2:oi,IVec3:si,IVec4:Gi,Int:Bi,IntBitsToFloat:Ui,Inverse:Wi,InverseSqrt:UD,IsInf:nD,IsNan:rD,Length:qi,LessThan:fD,LessThanEqual:bD,Log:ND,Log2:cD,Mat2:Si,Mat3:Ni,Mat4:ci,Max:HD,Min:tD,Mix:YD,Mod:DD,Modf:iD,Mul:BD,Neg:wD,Normalize:fi,NormalizedDepth:yw,Not:pD,NotEqual:OD,NumCovSplats:vC,NumExtSplats:WC,NumPackedSplats:mC,Or:xD,Outer:Zi,OutputCovSplat:yE,OutputExtCovSplat:RE,OutputExtendedSplat:hE,OutputPackedSplat:GE,OutputRgba8:FB,PackHalf2x16:ei,PackSnorm2x16:Hi,PackUnorm2x16:Yi,PagedSplatTexCoord:DE,PcgHash:AI,PcgMix:Eg,PcgNext:$A,Pow:FD,ProjectH:bi,Radians:tw,ReadCovSplat:zC,ReadExtSplat:jC,ReadPackedSplat:VC,ReadPackedSplatRange:XC,ReflectVec:Ti,RefractVec:Oi,Round:RD,Select:VD,Shl:vD,Shr:jD,Sign:sD,SimpleCast:HA,Sin:Lw,Sinh:qw,Smoothstep:eD,SplatTexCoord:EE,Split:ji,SplitCovSplat:BE,SplitGsplat:$C,Sqr:MD,Sqrt:JD,Step:KD,Sub:QD,Swizzle:zi,TCovSplats:uC,TExtSplats:sB,TPackedSplats:qg,Tan:Kw,Tanh:lw,TexelFetch:Mw,Texture:cw,TextureSize:Nw,TransformDir:aw,TransformGsplat:QE,TransformPosition:Fw,TransformQuaternion:Sw,Transpose:Vi,TrinaryOp:ZI,Trunc:hD,UVec2:yi,UVec3:hi,UVec4:Ri,Uint:Ci,UintBitsToFloat:ti,UintToRgba8:ni,UnaryOp:e,UnpackHalf2x16:ri,UnpackSnorm2x16:Li,UnpackUnorm2x16:Ki,Vec2:ki,Vec3:Fi,Vec4:ai,Xor:lD,abs:M0,acos:Rh,acosh:Mh,add:xA,all:Ay,and:T0,any:$0,arrayIndex:Bh,arrayLength:Ch,asin:hh,asinh:ch,atan:kh,atan2:Fh,atanh:Jh,bool:By,bvec2:Dy,bvec3:iy,bvec4:wy,ceil:t0,clamp:p0,combine:yI,combineCovSplat:RB,combineGsplat:EI,comment:Qh,compMult:xy,compXor:Iy,cos:Gh,cosh:Sh,cross:Yy,debugColorHue:_y,defineCovSplat:KI,defineExtSplats:hB,defineGsplat:LA,defineGsplatNormal:IE,definePackedSplats:sQ,degrees:sh,determinant:fy,distance:Ly,div:mg,dot:di,dyno:EQ,dynoBlock:cA,dynoBool:EG,dynoBvec2:wG,dynoBvec3:yG,dynoBvec4:kG,dynoConst:v,dynoDeclare:BB,dynoFloat:oI,dynoFor:gh,dynoIf:Ah,dynoInt:iG,dynoIsampler2D:dG,dynoIsampler2DArray:lG,dynoIsampler3D:bG,dynoIsamplerCube:TG,dynoIvec2:sG,dynoIvec3:RG,dynoIvec4:aG,dynoLiteral:Wg,dynoMat2:NG,dynoMat2x2:cG,dynoMat2x3:MG,dynoMat2x4:JG,dynoMat3:UG,dynoMat3x2:tG,dynoMat3x3:HG,dynoMat3x4:LG,dynoMat4:YG,dynoMat4x2:KG,dynoMat4x3:eG,dynoMat4x4:rG,dynoSampler2D:qG,dynoSampler2DArray:pG,dynoSampler2DArrayShadow:ZG,dynoSampler2DShadow:mG,dynoSampler3D:PG,dynoSamplerCube:OG,dynoSamplerCubeShadow:VG,dynoSwitch:Ih,dynoUint:DG,dynoUsampler2D:nG,dynoUsampler2DArray:xG,dynoUsampler3D:fG,dynoUsamplerCube:uG,dynoUvec2:oG,dynoUvec3:hG,dynoUvec4:FG,dynoVec2:GG,dynoVec3:JI,dynoVec4:SG,equal:z0,exp:K0,exp2:e0,extendVec:dy,faceforward:Ky,float:zD,floatBitsToInt:Ai,floatBitsToUint:Ii,floor:U0,fract:Zg,greaterThan:v0,greaterThanEqual:dD,gsplatNormal:PQ,gsplatToCovSplat:$g,hash:_i,hash2:$i,hash3:Aw,hash4:Iw,hashFloat:vy,hashVec2:zy,hashVec3:gw,hashVec4:ZQ,imod:OQ,int:Cy,intBitsToFloat:Sy,inverse:by,inversesqrt:x0,isAllFloatType:LI,isBoolType:OI,isFloatType:rg,isInf:u0,isIntType:lA,isMat2:rI,isMat3:nI,isMat4:dI,isMatFloatType:wC,isNan:P0,isScalarType:mI,isUintType:pA,isVector2Type:Bg,isVector3Type:Cg,isVector4Type:ng,isVectorType:Cs,ivec2:oy,ivec3:sy,ivec4:Gy,length:Hy,lessThan:W0,lessThanEqual:j0,literalNegOne:ws,literalOne:is,literalZero:wg,log:r0,log2:n0,mat2:ky,mat3:Fy,mat4:ay,max:AD,min:l0,mix:ID,mod:$E,modf:c0,mul:kA,neg:NB,normalize:Ug,normalizedDepth:Qw,not:Z0,notEqual:_0,numCovSplats:_s,numExtSplats:zs,numPackedSplats:vs,numberAsFloat:AA,numberAsInt:JA,numberAsUint:UA,or:O0,outer:ly,outputCovSplat:iE,outputCovSplatDepth:sE,outputExtCovSplat:TQ,outputExtendedSplat:wE,outputPackedSplat:kB,outputRgba8:gG,outputSplatDepth:oE,packHalf2x16:gi,packSnorm2x16:cy,packUnorm2x16:Jy,pagedSplatTexCoord:uQ,pcgHash:jy,pcgMix:Xy,pcgNext:Wy,pow:Y0,projectH:ny,radians:oh,readCovSplat:$s,readExtSplat:OC,readPackedSplat:$I,readPackedSplatRange:TC,reflectVec:ey,refractVec:ry,remapIndex:Vy,round:L0,sameSizeIvec:Ds,sameSizeUvec:GC,sameSizeVec:Es,select:cB,shl:X0,shr:V0,sign:J0,sin:VQ,sinh:ah,smoothstep:b0,splatTexCoord:yB,split:Ag,splitCovSplat:AQ,splitGsplat:OA,sqr:d0,sqrt:q0,step:f0,sub:wI,swizzle:qy,tan:yh,tanh:Nh,texelFetch:ih,texture:Dh,textureSize:Eh,transformDir:kw,transformGsplat:GB,transformPos:Rw,transformQuat:$y,transpose:py,trunc:H0,typeLiteral:yC,uint:Ey,uintBitsToFloat:Ny,uintToRgba8:mQ,uniform:CG,unindent:oA,unindentLines:z,unpackHalf2x16:ty,unpackSnorm2x16:My,unpackUnorm2x16:Uy,uvec2:yy,uvec3:hy,uvec4:Ry,valType:CA,vec2:_D,vec3:PI,vec4:$D,vectorDim:sC,vectorElementType:oC,xor:m0},Symbol.toStringTag,{value:"Module"})),nA=class nA{constructor(A={}){this.maxSplats=0,this.numSplats=0,this.extra={},this.maxSh=3,this.isInitialized=!1,this.extArrays=[new Uint32Array(0),new Uint32Array(0)],this.textures=[nA.emptyTexture,nA.emptyTexture],this.extra={},this.dyno=new th({extSplats:this}),this.dynoNumSh=new DI({key:"numSh",value:0,update:()=>Math.min(this.getNumSh(),this.maxSh)}),this.initialized=Promise.resolve(this),this.reinitialize(A)}reinitialize(A){this.isInitialized=!1,this.extra={},this.maxSplats=A.maxSplats??0,this.lod=A.lod,this.nonLod=A.nonLod,A.url||A.fileBytes||A.stream||A.construct?this.initialized=this.asyncInitialize(A).then(()=>(this.isInitialized=!0,this)):(this.initialize(A),this.isInitialized=!0,this.initialized=Promise.resolve(this))}initialize(A){this.extra=A.extra??{},this.lodSplats=A.lodSplats,A.extArrays?(this.extArrays=A.extArrays,this.maxSplats=Math.floor(Math.min(this.extArrays[0].length/4,this.extArrays[1].length/4)),this.numSplats=A.numSplats??this.maxSplats,this.maxSplats=Math.floor(this.maxSplats/P)*P,this.numSplats=Math.min(this.maxSplats,A.numSplats??Number.POSITIVE_INFINITY),this.updateTextures()):(this.maxSplats=A.maxSplats??0,this.numSplats=0,this.extArrays=[new Uint32Array(0),new Uint32Array(0)])}async asyncInitialize(A){const{url:I,fileBytes:g,fileType:B,fileName:C,stream:E,streamLength:D,construct:i,lod:w,nonLod:s,lodAbove:o}=A;this.lod=w,this.nonLod=s;const y=new LB;if((g||I||E)&&await y.loadInternalAsync({extSplats:this,url:I,fileBytes:g,fileType:B,fileName:C,stream:E,streamLength:D,onProgress:A.onProgress,lodAbove:o}),i){const h=i(this);h instanceof Promise&&await h}}dispose(){this.textures[0]!==nA.emptyTexture&&(this.textures[0].dispose(),this.textures[0].source.data=null,this.textures[0]=nA.emptyTexture),this.textures[1]!==nA.emptyTexture&&(this.textures[1].dispose(),this.textures[1].source.data=null,this.textures[1]=nA.emptyTexture),this.extArrays=[new Uint32Array(0),new Uint32Array(0)];for(const A in this.extra){const I=this.extra[A];if(I instanceof x){const g=I.value;g!=null&&g.isTexture&&(g.dispose(),g.source.data=null)}}this.extra={},this.disposeLodSplats()}prepareFetchSplat(){}getNumSplats(){return this.numSplats}hasRgbDir(){return Math.min(this.getNumSh(),this.maxSh)>0}getNumSh(){return this.extra.sh1?this.extra.sh2?!this.extra.sh3a||!this.extra.sh3b?2:3:1:0}setMaxSh(A){this.maxSh=A}fetchSplat({index:A,viewOrigin:I}){let g=OC(this.dyno,A);if(this.hasRgbDir()&&I){const B=OA(g).outputs.center,C=Ug(wI(B,I)),{sh1Texture:E,sh2Texture:D,sh3TextureA:i,sh3TextureB:w}=this.ensureShTextures();let{rgb:s}=Pw({coord:yB(A),viewDir:C,numSh:this.dynoNumSh,sh1Texture:E,sh2Texture:D,sh3TextureA:i,sh3TextureB:w});s=xA(s,OA(g).outputs.rgb),g=EI({gsplat:g,rgb:s})}return g}ensureShTextures(){if(!this.extra.sh1)return{};let A=this.extra.sh1Texture;if(!A){let C=this.extra.sh1;const{width:E,height:D,depth:i,maxSplats:w}=BA(C.length/4);if(C.lengthg){this.maxSplats=BA(I).maxSplats;const B=new Uint32Array(this.maxSplats*4),C=new Uint32Array(this.maxSplats*4);this.extArrays[0]&&(B.set(this.extArrays[0]),C.set(this.extArrays[1])),this.extArrays[0]=B,this.extArrays[1]=C}return this.extArrays}getSplat(A){if(A>=this.numSplats)throw new Error("Invalid index");return jg(this.extArrays,A)}setSplat(A,I,g,B,C,E){const D=this.ensureSplats(A+1);fQ(D,A,I.x,I.y,I.z,g.x,g.y,g.z,B.x,B.y,B.z,B.w,C,E.r,E.g,E.b),this.numSplats=Math.max(this.numSplats,A+1)}pushSplat(A,I,g,B,C){const E=this.ensureSplats(this.numSplats+1);fQ(E,this.numSplats,A.x,A.y,A.z,I.x,I.y,I.z,g.x,g.y,g.z,g.w,B,C.r,C.g,C.b),++this.numSplats}forEachSplat(A){if(this.numSplats)for(let I=0;I>>16)*.61803398875;D=D-Math.floor(D);const i=Math.max(0,Math.min(1,Math.abs(D*6-3)-1)),w=Math.max(0,Math.min(1,Math.abs(D*6+1)-1)),s=Math.max(0,Math.min(1,Math.abs(D*6-1)-1));E.color.r*=i,E.color.g*=w,E.color.b*=s}B.pushSplat(E.center,E.scales,E.quaternion,E.opacity,E.color)}return B}disposeLodSplats(){this.lodSplats&&(this.lodSplats.dispose(),this.lodSplats=void 0)}async createLodSplats({rgbaArray:A,quality:I}={}){const g=typeof this.lod=="number"?Math.max(1.1,Math.min(2,this.lod)):I?1.75:1.5,B=[this.extArrays[0].slice(),this.extArrays[1].slice()],C=A?(await A.getArray()).slice():void 0,E={sh1:this.extra.sh1?this.extra.sh1.slice():void 0,sh2:this.extra.sh2?this.extra.sh2.slice():void 0,sh3:this.extra.sh3?this.extra.sh3.slice():void 0},D=await oQ.withWorker(async w=>await w.call(I?"qualityLodExtSplats":"tinyLodExtSplats",{numSplats:this.numSplats,extArrays:B,extra:E,lodBase:g,rgba:C})),i=new nA(D);this.lodSplats&&this.lodSplats.dispose(),this.lodSplats=i,this.nonLod=!0,this.lod=I?"quality":!0}};nA.emptyArray=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=BA(1),C=new Uint32Array(B*4),E=new G.DataArrayTexture(C,A,I,g);return E.format=G.RGBAIntegerFormat,E.type=G.UnsignedIntType,E.internalFormat="RGBA32UI",E.needsUpdate=!0,E})(),nA.emptyTexture=eI(null,1,1,1,G.RGBAIntegerFormat,G.UnsignedIntType,"RGBA32UI"),nA.emptyUint32x4=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=BA(1),C=new Uint32Array(B*4),E=new G.DataArrayTexture(C,A,I,g);return E.format=G.RGBAIntegerFormat,E.type=G.UnsignedIntType,E.internalFormat="RGBA32UI",E.needsUpdate=!0,E})();let BI=nA;class th extends x{constructor({extSplats:A}={}){super({key:"extSplats",type:sB,globals:()=>[hB],value:{textureArray1:BI.emptyTexture,textureArray2:BI.emptyTexture,numSplats:0},update:I=>{var g,B,C;return I.textureArray1=((g=this.extSplats)==null?void 0:g.textures[0])??BI.emptyTexture,I.textureArray2=((B=this.extSplats)==null?void 0:B.textures[1])??BI.emptyTexture,I.numSplats=((C=this.extSplats)==null?void 0:C.numSplats)??0,I}}),this.extSplats=A}}const Hh=oA(` - vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) { - vec3 sh1_0 = decodeExtRgb(packedData.x); - vec3 sh1_1 = decodeExtRgb(packedData.y); - vec3 sh1_2 = decodeExtRgb(packedData.z); - - return sh1_0 * (-0.4886025 * viewDir.y) - + sh1_1 * (0.4886025 * viewDir.z) - + sh1_2 * (-0.4886025 * viewDir.x); - } -`),Lh=oA(` - vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) { - vec3 sh1_0 = decodeExtRgb(packed1.x); - vec3 sh1_1 = decodeExtRgb(packed1.y); - vec3 sh1_2 = decodeExtRgb(packed1.z); - - vec3 sh2_0 = decodeExtRgb(packed1.w); - vec3 sh2_1 = decodeExtRgb(packed2.x); - vec3 sh2_2 = decodeExtRgb(packed2.y); - vec3 sh2_3 = decodeExtRgb(packed2.z); - vec3 sh2_4 = decodeExtRgb(packed2.w); - - vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y) - + sh1_1 * (0.4886025 * viewDir.z) - + sh1_2 * (-0.4886025 * viewDir.x); - - vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y) - + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z) - + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y)) - + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z) - + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y)); - - return sh1Rgb + sh2Rgb; - } -`),Yh=oA(` - vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) { - vec3 sh3_0 = decodeExtRgb(packedA.x); - vec3 sh3_1 = decodeExtRgb(packedA.y); - vec3 sh3_2 = decodeExtRgb(packedA.z); - vec3 sh3_3 = decodeExtRgb(packedA.w); - vec3 sh3_4 = decodeExtRgb(packedB.x); - vec3 sh3_5 = decodeExtRgb(packedB.y); - vec3 sh3_6 = decodeExtRgb(packedB.z); - - float xx = viewDir.x * viewDir.x; - float yy = viewDir.y * viewDir.y; - float zz = viewDir.z * viewDir.z; - float xy = viewDir.x * viewDir.y; - float yz = viewDir.y * viewDir.z; - float zx = viewDir.z * viewDir.x; - - return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy)) - + sh3_1 * (2.8906114 * xy * viewDir.z) + - + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy)) - + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) - + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy)) - + sh3_5 * (1.4453057 * viewDir.z * (xx - yy)) - + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy)); - } -`);function Pw({coord:Q,viewDir:A,numSh:I,sh1Texture:g,sh2Texture:B,sh3TextureA:C,sh3TextureB:E}){return new d({inTypes:{coord:"ivec3",viewDir:"vec3",numSh:"int",sh1Texture:"usampler2DArray",sh2Texture:"usampler2DArray",sh3TextureA:"usampler2DArray",sh3TextureB:"usampler2DArray"},outTypes:{rgb:"vec3"},inputs:{coord:Q,viewDir:A,numSh:I,sh1Texture:g,sh2Texture:B,sh3TextureA:C,sh3TextureB:E},globals:()=>[Hh,Lh,Yh],statements:({inputs:D,outputs:i})=>{const w=["vec3 rgb = vec3(0.0);"];return D.sh1Texture&&(D.sh2Texture?(w.push(...z(` - if (${D.numSh} == 1) { - rgb = evaluateExtSH1(texelFetch(${D.sh1Texture}, ${D.coord}, 0), ${D.viewDir}); - } else if (${D.numSh} >= 2) { - rgb = evaluateExtSH12(texelFetch(${D.sh1Texture}, ${D.coord}, 0), texelFetch(${D.sh2Texture}, ${D.coord}, 0), ${D.viewDir}); - `)),D.sh3TextureA&&D.sh3TextureB&&w.push(...z(` - if (${D.numSh} >= 3) { - rgb += evaluateExtSH3(texelFetch(${D.sh3TextureA}, ${D.coord}, 0), texelFetch(${D.sh3TextureB}, ${D.coord}, 0), ${D.viewDir}); - } - `)),w.push("}")):w.push(...z(` - if (${D.numSh} >= 1) { - rgb = evaluateExtSH1(texelFetch(${D.sh1Texture}, ${D.coord}, 0), ${D.viewDir}); - } - `))),w.push(`${i.rgb} = rgb;`),w}}).outputs}function eI(Q,A,I,g,B,C,E){const D=new G.DataArrayTexture(Q,A,I,g);return D.format=B,D.type=C,D.internalFormat=E,D.needsUpdate=!0,D}function pB(Q){const A=RA.decode_rad_header(Q);if(A[2])throw uB(A[1]);return uB(A[0])}function Kh(){return RA.get_raycast_buffer()}function eh(){return RA.get_raycast_buffer2()}function rh(Q,A,I,g,B,C,E,D,i,w){return RA.raycast_ext_buffers(Q,A,I,g,B,C,E,D,i,w)}function nh(Q,A,I,g,B,C,E,D,i,w,s,o,y){return RA.raycast_packed_buffer(Q,A,I,g,B,C,E,D,i,w,s,o,y)}function dh(){return{__proto__:null,"./spark_rs_bg.js":{__proto__:null,__wbg_Error_2e59b1b37a9a34c3:function(A,I){return Error(pg(A,I))},__wbg___wbindgen_throw_81fc77679af83bc6:function(A,I){throw new Error(pg(A,I))},__wbg_error_a6fa202b58aa1cd3:function(A,I){let g,B;try{g=A,B=I,console.error(pg(A,I))}finally{RA.__wbindgen_free(g,B,1)}},__wbg_length_0c32cb8543c8e4c8:function(A){return A.length},__wbg_length_1e701798fdcaa3b4:function(A){return A.length},__wbg_length_fd4646b401926788:function(A){return A.length},__wbg_new_227d7c05414eb861:function(){return new Error},__wbg_new_4f9fafbb3909af72:function(){return new Object},__wbg_new_f3c9df4f38f3f798:function(){return new Array},__wbg_new_with_length_26bffbe236bf73f9:function(A){return new Float32Array(A>>>0)},__wbg_prototypesetcall_3e05eb9545565046:function(A,I,g){Uint8Array.prototype.set.call(xh(A,I),g)},__wbg_prototypesetcall_e42275e601e14eeb:function(A,I,g){Uint32Array.prototype.set.call(bB(A,I),g)},__wbg_set_6be42768c690e380:function(A,I,g){A[I]=g},__wbg_set_6c60b2e8ad0e9383:function(A,I,g){A[I>>>0]=g},__wbg_set_8ee2d34facb8466e:function(){return fh(function(A,I,g){return Reflect.set(A,I,g)},arguments)},__wbg_set_a98c8da6557e63de:function(A,I,g){A.set(fB(I,g))},__wbg_stack_3b0d974bbf31e44f:function(A,I){const g=I.stack,B=bh(g,RA.__wbindgen_malloc,RA.__wbindgen_realloc),C=XQ;PB().setInt32(A+4,C,!0),PB().setInt32(A+0,B,!0)},__wbg_subarray_d51e89458b3fdbf6:function(A,I,g){return A.subarray(I>>>0,g>>>0)},__wbindgen_cast_0000000000000001:function(A){return A},__wbindgen_cast_0000000000000002:function(A,I){return fB(A,I)},__wbindgen_cast_0000000000000003:function(A,I){return bB(A,I)},__wbindgen_cast_0000000000000004:function(A,I){return pg(A,I)},__wbindgen_cast_0000000000000005:function(A){return BigInt.asUintN(64,A)},__wbindgen_init_externref_table:function(){const A=RA.__wbindgen_externrefs,I=A.grow(4);A.set(0,void 0),A.set(I+0,void 0),A.set(I+1,null),A.set(I+2,!0),A.set(I+3,!1)}}}}function qh(Q){const A=RA.__externref_table_alloc();return RA.__wbindgen_externrefs.set(A,Q),A}function fB(Q,A){return Q=Q>>>0,lh().subarray(Q/4,Q/4+A)}function bB(Q,A){return Q=Q>>>0,ph().subarray(Q/4,Q/4+A)}function xh(Q,A){return Q=Q>>>0,Fg().subarray(Q/1,Q/1+A)}let xI=null;function PB(){return(xI===null||xI.buffer.detached===!0||xI.buffer.detached===void 0&&xI.buffer!==RA.memory.buffer)&&(xI=new DataView(RA.memory.buffer)),xI}let og=null;function lh(){return(og===null||og.byteLength===0)&&(og=new Float32Array(RA.memory.buffer)),og}function pg(Q,A){return Q=Q>>>0,uh(Q,A)}let sg=null;function ph(){return(sg===null||sg.byteLength===0)&&(sg=new Uint32Array(RA.memory.buffer)),sg}let Gg=null;function Fg(){return(Gg===null||Gg.byteLength===0)&&(Gg=new Uint8Array(RA.memory.buffer)),Gg}function fh(Q,A){try{return Q.apply(this,A)}catch(I){const g=qh(I);RA.__wbindgen_exn_store(g)}}function bh(Q,A,I){if(I===void 0){const D=ag.encode(Q),i=A(D.length,1)>>>0;return Fg().subarray(i,i+D.length).set(D),XQ=D.length,i}let g=Q.length,B=A(g,1)>>>0;const C=Fg();let E=0;for(;E127)break;C[B+E]=D}if(E!==g){E!==0&&(Q=Q.slice(E)),B=I(B,g,g=E+Q.length*3,1)>>>0;const D=Fg().subarray(B+E,B+g),i=ag.encodeInto(Q,D);E+=i.written,B=I(B,g,E,1)>>>0}return XQ=E,B}function uB(Q){const A=RA.__wbindgen_externrefs.get(Q);return RA.__externref_table_dealloc(Q),A}let Vg=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Vg.decode();const Ph=2146435072;let KQ=0;function uh(Q,A){return KQ+=A,KQ>=Ph&&(Vg=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),Vg.decode(),KQ=A),Vg.decode(Fg().subarray(Q,Q+A))}const ag=new TextEncoder;"encodeInto"in ag||(ag.encodeInto=function(Q,A){const I=ag.encode(Q);return A.set(I),{read:Q.length,written:I.length}});let XQ=0,RA;function Th(Q,A){return RA=Q.exports,xI=null,og=null,sg=null,Gg=null,RA.__wbindgen_start(),RA}async function Oh(Q,A){if(typeof Response=="function"&&Q instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(Q,A)}catch(B){if(Q.ok&&I(Q.type)&&Q.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",B);else throw B}const g=await Q.arrayBuffer();return await WebAssembly.instantiate(g,A)}else{const g=await WebAssembly.instantiate(Q,A);return g instanceof WebAssembly.Instance?{instance:g,module:Q}:g}function I(g){switch(g){case"basic":case"cors":case"default":return!0}return!1}}async function uw(Q){if(RA!==void 0)return RA;Q!==void 0&&(Object.getPrototypeOf(Q)===Object.prototype?{module_or_path:Q}=Q:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),Q===void 0&&(Q=new URL("data:application/wasm;base64,AGFzbQEAAAABlwM3YAN/f38Bf2ACf38Bf2ACf38AYAN/f38AYAF/AGABfwF/YAV/f39/fwBgBH9/f38AYAABb2AAAGACf38Bb2AEf39/fwF/YAZ/f39/f38AYAFvAX9gAX0BfWAFf39/fn8AYAABf2AFf39/f38Bf2ADf39vAGAGf39/f39/AX9gB39/f39/f38AYAV/f35/fwBgBX9/fH9/AGAFf399f38AYAADf39/YANvb28AYANvf28AYANvb28Bf2ADb39/AW9gAX8Bb2ADb39/AGACf28AYAF8AW9gAX4Bb2AKf39/f3t9fX19fwBgB39/f39/f38Bf2AIf397fX1/f38AYAJ+fwBgA39/fgBgAn9+AX9gA39+fgBgBH9+fn8AYAZ/f39+f38AYAZ/f398f38AYAZ/f399f38AYAZ/f39/f30AYA59fX19fX19fX1/b319fwFvYA19fX19fX19fX1/fX1/AW9gAW8Df39/YAp9fX19fX19fX1/AW9gBH9+f38AYAR/fX9/AGAEf3x/fwBgAn19AX1gAXwBfwK7CRgQLi9zcGFya19yc19iZy5qcxpfX3diZ19uZXdfZjNjOWRmNGYzOGYzZjc5OAAIEC4vc3BhcmtfcnNfYmcuanMaX193YmdfbmV3XzRmOWZhZmJiMzkwOWFmNzIACBAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX3NldF82YmU0Mjc2OGM2OTBlMzgwABkQLi9zcGFya19yc19iZy5qcxpfX3diZ19zZXRfNmM2MGIyZThhZDBlOTM4MwAaEC4vc3BhcmtfcnNfYmcuanMdX193YmdfbGVuZ3RoXzBjMzJjYjg1NDNjOGU0YzgADRAuL3NwYXJrX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfM2UwNWViOTU0NTU2NTA0NgASEC4vc3BhcmtfcnNfYmcuanMaX193Ymdfc2V0XzhlZTJkMzRmYWNiODQ2NmUAGxAuL3NwYXJrX3JzX2JnLmpzH19fd2JnX3N1YmFycmF5X2Q1MWU4OTQ1OGIzZmRiZjYAHBAuL3NwYXJrX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF8xZTcwMTc5OGZkY2FhM2I0AA0QLi9zcGFya19yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsX2U0MjI3NWU2MDFlMTRlZWIAEhAuL3NwYXJrX3JzX2JnLmpzJl9fd2JnX25ld193aXRoX2xlbmd0aF8yNmJmZmJlMjM2YmY3M2Y5AB0QLi9zcGFya19yc19iZy5qcx1fX3diZ19sZW5ndGhfZmQ0NjQ2YjQwMTkyNjc4OAANEC4vc3BhcmtfcnNfYmcuanMaX193Ymdfc2V0X2E5OGM4ZGE2NTU3ZTYzZGUAHhAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX25ld18yMjdkN2MwNTQxNGViODYxAAgQLi9zcGFya19yc19iZy5qcxxfX3diZ19zdGFja18zYjBkOTc0YmJmMzFlNDRmAB8QLi9zcGFya19yc19iZy5qcxxfX3diZ19lcnJvcl9hNmZhMjAyYjU4YWExY2QzAAIQLi9zcGFya19yc19iZy5qcxxfX3diZ19FcnJvcl8yZTU5YjFiMzdhOWEzNGMzAAoQLi9zcGFya19yc19iZy5qcydfX3diZ19fX3diaW5kZ2VuX3Rocm93XzgxZmM3NzY3OWFmODNiYzYAAhAuL3NwYXJrX3JzX2JnLmpzH19fd2JpbmRnZW5faW5pdF9leHRlcm5yZWZfdGFibGUACRAuL3NwYXJrX3JzX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAxACAQLi9zcGFya19yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMgAKEC4vc3BhcmtfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDMAChAuL3NwYXJrX3JzX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDA0AAoQLi9zcGFya19yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwNQAhA54CnAIFAAECAQIFAQEGBQAiIwcCAwUBAg4OBAECBQMACwUBBQICAAIFAgQkAgMDAgACAAUCABMBAQkBFAACDwEFBRQOAg8ABQIEJQEDAQICBRAFBQEEBQEPAQEMAgEBBwUBAgEBASYBAQICAgICAQIFBAIBDAYBAgMDJwECBAYCAgMBAQICAQUCASgGAAABBAMDAwMEBgYHAwQABwEDAgADDAQEAQEG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NgIEDAELIAAPCyAAQQhqC98XAhp/AnwjAEGwBGsiAyQAIANCADcDmAEgA0IANwOQASADQgA3A4gBIANCADcDgAEgA0IANwN4IANCADcDcCADQgA3A2ggA0IANwNgIANCADcDWCADQgA3A1AgA0IANwNIIANCADcDQCADQgA3AzggA0IANwMwIANCADcDKCADQgA3AyAgA0IANwMYIANCADcDECADQgA3AwggA0IANwMAIANCADcDuAIgA0IANwOwAiADQgA3A6gCIANCADcDoAIgA0IANwOYAiADQgA3A5ACIANCADcDiAIgA0IANwOAAiADQgA3A/gBIANCADcD8AEgA0IANwPoASADQgA3A+ABIANCADcD2AEgA0IANwPQASADQgA3A8gBIANCADcDwAEgA0IANwO4ASADQgA3A7ABIANCADcDqAEgA0IANwOgASADQgA3A9gDIANCADcD0AMgA0IANwPIAyADQgA3A8ADIANCADcDuAMgA0IANwOwAyADQgA3A6gDIANCADcDoAMgA0IANwOYAyADQgA3A5ADIANCADcDiAMgA0IANwOAAyADQgA3A/gCIANCADcD8AIgA0IANwPoAiADQgA3A+ACIANCADcD2AIgA0IANwPQAiADQgA3A8gCIANCADcDwAIgA0HgA2pBAEHQAPwLAEHQ38EAKAIAIgkhBiACQQNrQRhtIgVBACAFQQBKGyILIQUgC0ECdEHg38EAaiEHA0AgAyAEQQN0aiAFQQBIBHxEAAAAAAAAAAAFIAcoAgC3CzkDACAEIAZJIgoEQCAHQQRqIQcgBUEBaiEFIAQgCmoiBCAGTQ0BCwtBACEFA0BBACEEIANBwAJqIAVBA3RqIB0gACAEQQN0aisDACADIAUgBGtBA3RqKwMAoqA5AwAgBSAJSSIGBEAgBSAGaiIFIAlNDQELC0QAAAAAAADwf0QAAAAAAADgfyACIAtBaGxqIgpBGGsiAkH+D0siEBtEAAAAAAAAAABEAAAAAAAAYAMgAkG5cEkiERtEAAAAAAAA8D8gAkGCeEgiEhsgAkH/B0oiExtB/RcgAiACQf0XTxtB/g9rIApBlwhrIBAbIhVB8GggAiACQfBoTRtBkg9qIApBsQdqIBEbIhYgAiASGyATG0H/B2qtQjSGv6IhHiADQdwDaiIOIAlBAnRqIQ9BLyAKa0Ef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ADYCyAIgAiACQagCajYC0AIgAkHIAmoQSQwQCyABKAIAQdyWwQBBCiABKAIEKAIMEQAADA8LIAEoAgBB5pbBAEEMIAEoAgQoAgwRAAAMDgsgASgCAEHylsEAQQ4gASgCBCgCDBEAAAwNCyABKAIAQYCXwQBBCCABKAIEKAIMEQAADAwLIAEoAgBBiJfBAEEDIAEoAgQoAgwRAAAMCwsgASgCAEGLl8EAQQQgASgCBCgCDBEAAAwKCyABKAIAQY+XwQBBDCABKAIEKAIMEQAADAkLIAEoAgBBm5fBAEEPIAEoAgQoAgwRAAAMCAsgASgCAEGql8EAQQ0gASgCBCgCDBEAAAwHCyABKAIAQbeXwQBBDiABKAIEKAIMEQAADAYLIAEoAgAgACgCBCAAKAIIIAEoAgQoAgwRAAAMBQsgACkDCCIJQv////////8HgyEKIAlC////////////AINC//////////f/AFgEQCAJQjSIpyEAIAlCAFMNAiACQagCagwDC0HUosEAQdeiwQAgCUIAWSIAG0HbosEAIApQIgQbIQNBA0EEIAAbQQMgBBshAAwDCyABKAIAQdqXwQBBBCABKAIEKAIMEQAADAMLIAJBLToAqAJBASEIIAJBqQJqCyEGAn8CQAJAAkACQAJAAkACQAJAIABB/w9xIgBFIApQcUUEQCAAQQJJIApCAFJyIQMgCkKAgICAgICACIQgCiAAGyIJQgKGIQogCUIBgyEPAkACQAJAIABBtQhrQcx3IAAbIgBBAEgEQCACQZACakHQwcAAIAAgAEGFolNsQRR2IABBf0drIgBqIgdBBHQiBGspAwAiCSAKQgKEIgsQngEgAkGAAmpB2MHAACAEaykDACINIAsQngEgAkHwAWogAikDmAIiCyACKQOAAnwiDCACKQOIAiALIAxWrXwgACAHQbHZtR9sQRN2a0H8AGpB/wBxQcAAcyIEELsBIAJBsAFqIAkgCiADQX9zrHwiCxCeASACQaABaiANIAsQngEgAkGQAWogAikDuAEiCyACKQOgAXwiDCACKQOoASALIAxWrXwgBBC7ASACQeABaiAJIAoQngEgAkHQAWogDSAKEJ4BIAJBwAFqIAIpA+gBIgkgAikD0AF8Ig0gAikD2AEgCSANVq18IAQQuwEgAikDwAEhCyACKQOQASEJIAIpA/ABIQwg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QYABcjoAAEEAIQMMBAsgAigCCCIDIAIoAgBGBEAgAkHgmMEAEJQBCyACIANBAWo2AgggAigCBCADaiAGOgAAQQAhAwwDCyAGIAMgA0GcqsEAEM8BAAsgBEEUNgIUIAEgBEEUahCwASEDDAELIAggAyADQZyqwQAQzwEACyAEQSBqJAAgA0UNDgwNCyACKAIAIANGBEAgAkHgl8EAEJQBIAIoAgQhBQsgAiADQQFqNgIIIAMgBWpBIjoAAAwLCyACKAIAIANGBEAgAkHwl8EAEJQBIAIoAgQhBQsgAiADQQFqNgIIIAMgBWpB3AA6AAAMCgsgAigCACADRgRAIAJBgJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQS86AAAMCQsgAigCACADRgRAIAJBkJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQg6AAAMCAsgAigCACADRgRAIAJBoJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQw6AAAMBwsgAigCACADRgRAIAJBsJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQo6AAAMBgsgAigCACADRgRAIAJBwJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQ06AAAMBQsgAigCACADRgRAIAJB0JjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQk6AAAMBAsgAyAEIAZBsKHBABDPAQALIAcoAgwhAwwDCyAHQQQ2AhQgACABIAdBFGoQpAEMBgsgBCAGQYChwQAQsQEACwwBCwsgAEECNgIAIAAgAzYCBAwCCyAAIAM2AgggACABNgIEIABBADYCAAwBCyAAIAM2AgggACABNgIEIABBATYCAAsgB0EgaiQAC68QAwd/An4BeyMAQSBrIgUkAAJAAkAgACgCACICRQRAIAAoAhAiAEUNASAAQbu3wABBARBEIQIMAgsCQAJAAkACQAJAAkACQCAAKAIIIgQgACgCBCIGTwRAIAAoAhAiAkUNASACQZK3wABBEBBERQ0BDAcLIAAgBEEBaiIBNgIIIAVBCGogAiAEai0AACIDEM0BIAUoAggiBwRAIAAoAhAiAEUNCCAAIAcgBSgCDBBEIQIMCQsgACAAKAIMQQFqIgc2AgwgB0H1A08EQCAAKAIQIgIEQCAC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AgBBlObBAEGU5sEAKAIAIABqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAA8LAn9BjObBACgCACICQQEgAEEDdnQiA3FFBEBBjObBACACIANyNgIAIABB+AFxQYTkwQBqIgAMAQsgAEH4AXEiAkGE5MEAaiEAIAJBjOTBAGooAgALIQIgACABNgIIIAIgATYCDCABIAA2AgwgASACNgIIDwsCQAJAIAAgAygCACIDKAIEQXhxRgRAIAMhAgwBCyAAQRkgAkEBdmtBACACQR9HG3QhBANAIAMgBEEddkEEcWoiBSgCECICRQ0CIARBAXQhBCACIQMgAigCBEF4cSAARw0ACwsgAigCCCIAIAE2AgwgAiABNgIIIAFBADYCGCABIAI2AgwgASAANgIIDAELIAVBEGogATYCACABIAM2AhggASABNgIMIAEgATYCCAtBACEBQbTmwQBBtObBACgCAEEBayIANgIAIAANAUH848EAKAIAIgAEQANAIAFBAWohASAAKAIIIgANAAsLQbTmwQBB/x8gASABQf8fTRs2AgAPC0H848EAKAIAIgEEQANAIARBAWohBCABKAIIIgENAAsLQbTmwQBB/x8gBCAEQf8fTRs2AgAgAiADTw0AQazmwQBBfzYCAAsL2AkBBH8jAEFAaiICJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOGAECAwQFBgcICQoLDA0ODxAREhMUFRYXGAALIAEoAgAgACgCBCAAKAIIIAEoAgQoAgwRAAAhAQwYCwJAAkACQAJAIAAtAARBAWsOAwECAwALIAIgACgCCDYCBEEUEBgiAEUNGyAAQRBqQc3UwQAoAAA2AAAgAEG91MEA/QAAAP0LAAAgAkEUNgIQIAIgADYCDCACQRQ2AgggAiACQQRqrUKAgICAgAeENwMgIAIgAkEIaq1CgICAgJAHhDcDGCABKAIAIAEoAgQgAkICNwI0IAJBAzYCLCACQYDYwQA2AiggAiACQRhqNgIwIAJBKGoQSSEBIAIoAggiAEUNGiACKAIMIgRBBGsoAgAiA0F4cSIFQQRBCCADQQNxIgMbIABqSQ0cIANBACAFIABBJ2pLGw0dIAQQLgwaCyACIAAtAAVBAnQiACgC+NxB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/AoAAAsgACACIANqNgIIQQALUAEBfyMAQRBrIgIkACACQQhqIAEgASgCACgCBBECACACIAIoAgggAigCDCgCGBECACACKAIEIQEgACACKAIANgIAIAAgATYCBCACQRBqJAALTwECfyAAKAIEIQIgACgCACEDAkAgACgCCCIALQAARQ0AIANBurPAAEEEIAIoAgwRAABFDQBBAQ8LIAAgAUEKRjoAACADIAEgAigCEBEBAAtKAQJ/IAAgACgCBCIDIAJrNgIEIAAgACgCACACIANLciIENgIAQQEhAyAEBH8gAwUgACgCCCIAKAIAIAEgAiAAKAIEKAIMEQAACwtIAQF/AkAgAUHhAGsiAUH/AXFBGUsEQEEAIQEMAQsgAUECdEH8B3EiAigCwNtBIQEgAigC2NpBIQILIAAgAjYCBCAAIAE2AgALQgEBfyMAQSBrIgMkACADQQA2AhAgA0EBNgIEIANCBDcCCCADIAE2AhwgAyAANgIYIAMgA0EYajYCACADIAIQ2QEAC8kCAAJAIAAgAk0EQCAAIAFNIAEgAktyDQEjAEEwayICJAAgAiABNgIEIAIgADYCACACQQI2AgwgAkG0pMAANgIIIAJCAjcCFCACIAJBBGqtQoCAgIAQhDcDKCACIAKtQoCAgIAQhDcDICACIAJBIGo2AhAgAkEIaiADENkBAAsjAEEwayIBJAAgASACNgIEIAEgADYCACABQQI2AgwgAUHgo8AANgIIIAFCAjcCFCABIAFBBGqtQoCAgIAQhDcDKCABIAGtQoCAgIAQhDcDICABIAFBIGo2AhAgAUEIaiADENkBAAsjAEEwayIAJAAgACACNgIEIAAgATYCACAAQQI2AgwgAEGApMAANgIIIABCAjcCFCAAIABBBGqtQoCAgIAQhDcDKCAAIACtQoCAgIAQhDcDICAAIABBIGo2AhAgAEEIaiADENkBAAs3AAJ/IARBAXEEQCAFuxCOAgwBC0GBCEGACCABLQAAGwshBCACIANBBhBLIAQQ6gEgAEEANgIACzgBAX8jAEEQayICJAAgAkEIaiAAIAAoAgAoAgQRAgAgAigCCCABIAIoAgwoAhARAQAgAkEQaiQACzgAAkAgAkGAgMQARg0AIAAgAiABKAIQEQEARQ0AQQEPCyADRQRAQQAPCyAAIAMgBCABKAIMEQAACzwBAn8gASgCBCECIAEoAgAhA0EIEBgiAUUEQAALIAEgAjYCBCABIAM2AgAgAEGI2cEANgIEIAAgATYCAAs5AQF/IwBBEGsiAyQAIAMgATYCDCADIAA2AgggA0EIakHEscAAIANBDGpBxLHAACACQai0wAAQbwALNwEBfyMAQSBrIgEkACABQQA2AhggAUEBNgIMIAFBxJXAADYCCCABQgQ3AhAgAUEIaiAAENkBAAuUBQIHfwF7EGUiEiAKJgECfyMAQdAAayIOJAAgDkKAgICAwAA3AgQgDkEANgIMIA4gDUEARzoALCAOQYCAgPwDNgIoIA5CgICA/IOAgMA/NwIgIA4gDDgCHCAOIAs4AhggDkKAgICAgICAwD83AhBBrOLBACgCAEUEQBBNCwJAAkACQAJAQbDiwQAoAgBFBEBBsOLBAEF/NgIAAn8gCUUEQEEAIQ1BBAwBC0G84sEAKAIAIRFBuOLBACgCACETIAP9EyAE/SABIRVBACENA0AgEiUBIA1BAnQgDUGAgAQgCSANayIPIA9BgIAETxsiD2oiDUECdBAHIQoQZSIQIAomASAPQQJ0Ig8gEUsNAyAOIBAlARAIIhQ2AjAgDiAPNgI0IA8gFEcNBiATIA8gECUBEAkgDiACOAJAIA4gATgCPCAOIAA4AjggEyAPIA5BBGogDkE4aiAVIAUgBiAHIAggDkEQahAkIBBBhAhPBEAgEBC3AQsgCSANSw0AC0Gw4sEAKAIAQQFqIQ8gDigCDCENIA4oAggLIQlBsOLBACAPNgIAIA0QCiEKEGUiDyAKJgEgDyUBEAshECAOIA02AjQgDiAQNgIwIA0gEEcNBCAPJQEgCSANEAwgDigCBCINBEAgCUEEaygCACIQQXhxIhEgDUECdCINQQRBCCAQQQNxIhAbakkNAyAQQQAgESANQSdqSxsNBCAJEC4LIBJBhAhPBEAgEhC3AQsgDkHQAGokACAPDAULQfCSwAAQqwIAC0EAIA8gEUH4k8AAEM8BAAtBqNnBAEEuQdjZwQAQzgEAC0Ho2cEAQS5BmNrBABDOAQALIA5BADYCOCAOQTBqIA5BNGogDkE4ahDUAQALIgklASAJELcBC8ECAQR/IwBBEGsiASQAQdjiwQAtAABBA0cEQCABQQE6AA8gAUEPaiECIwBBIGsiACQAAkACQAJAAkACQAJAAkACQAJAQdjiwQAtAABBAWsOAwQDAQALQdjiwQBBAjoAACACLQAAIAJBADoAAEUNBEHE5sEAKAIAQf////8HcQRAQbzmwQAoAgANBgtByObBACgCAA0BQdjiwQBBAzoAAEHM5sEAQQE2AgALIABBIGokAAwGCwALIABBADYCGCAAQQE2AgwgAEGM1cEANgIIDAMLIABBADYCGCAAQQE2AgwgAEGsgMAANgIIDAILQeCSwAAQngIACyAAQQA2AhggAEEBNgIMIABBvNfBADYCCCAAQgQ3AhAgAEEIakHE18EAENkBAAsgAEIENwIQIABBCGpBqJPAABDZAQALCyABQRBqJAALLQACQCADaUEBRyABQYCAgIB4IANrS3JFBEAgACABIAMgAhA0IgANAQsACyAAC/wBAgJ/AX4jAEEQayICJAAgAkEBOwEMIAIgATYCCCACIAA2AgQjAEEQayIBJAAgAkEEaiIAKQIAIQQgASAANgIMIAEgBDcCBCMAQRBrIgAkACABQQRqIgEoAgAiAigCDCEDAkACQAJAAkAgAigCBA4CAAECCyADDQFBASECQQAhAwwCCyADDQAgAigCACICKAIEIQMgAigCACECDAELIABBgICAgHg2AgAgACABNgIMIABB7NbBACABKAIEIAEoAggiAC0ACCAALQAJEJIBAAsgACADNgIEIAAgAjYCACAAQdDWwQAgASgCBCABKAIIIgAtAAggAC0ACRCSAQALqQICAX8BbwJ/IwBBMGsiDSQAQaziwQAoAgBFBEAQTQsCQEGw4sEAKAIARQRAQbDiwQBBfzYCAEHU4sEAQQA2AgAgDSAMQQBHOgAgIA1BgICA/AM2AhwgDUKAgID8g4CAwD83AhQgDSALOAIQIA0gCjgCDCANQoCAgICAgIDAPzcCBCAJQQJ0IglBvOLBACgCACIMSw0BQbjiwQAoAgAgDSACOAIsIA0gATgCKCANIAA4AiQgCUHM4sEAIA1BJGogA/0TIAT9IAEgBSAGIAcgCCANQQRqECRB0OLBACgCAEHU4sEAKAIAEO8BQbDiwQBBsOLBACgCAEEBajYCACANQTBqJAAMAgtB8JLAABCrAgALQQAgCSAMQeiTwAAQzwEACyIJJQEgCRC3AQvUVQMefwR+AXwjAEEQayIaJAAQZSIbIAAmASMAQYAIayIBJAACQAJAAkACQAJA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CyABQZ+4wABBBBBECx4AIABFBEAQrwIACyAAIAIgAyAEIAUgASgCEBERAAscACAARQRAEK8CAAsgACACIAMgBCABKAIQEQsACxwAIABFBEAQrwIACyAAIAIgAyAEIAEoAhARBwALHAAgAEUEQBCvAgALIAAgAiADIAQgASgCEBEyAAscACAARQRAEK8CAAsgACACIAMgBCABKAIQETMACxwAIABFBEAQrwIACyAAIAIgAyAEIAEoAhARNAALGgAgAEUEQBCvAgALIAAgAiADIAEoAhARAwALGgAgAEUEQBCvAgALIAAgAiADIAEoAhARAAALFAAgASABIAAgACABXRsgACAAXBsLHAEBbyAAJQEgASUBIAEQtwEgAiUBIAIQtwEQAgsYACAARQRAEK8CAAsgACACIAEoAhARAQALHAAgASgCACAAKAIAIAAoAgQgASgCBCgCDBEAAAsfAEG55sEALQAARQRAQbnmwQBBAToAAAsgAEEBNgIACxcAIAAoAgAgASAAKAIEQQxqKAIAEQEACxYBAW8gACABEBQhAhBlIgAgAiYBIAALFgEBbyAAIAEQFSECEGUiACACJgEgAAsWAQFvIAAgARAWIQIQZSIAIAImASAACxkAIAEoAgBBkKTBAEEFIAEoAgQoAgwRAAALDgAgAARAAAsgARDVAQALEwAgASgCBBogAEHclcAAIAEQSQsQACACKAIEGiAAIAEgAhBJCxMAIAEoAgQaIABB8JfAACABEEkLEwAgASgCBBogAEH0lcAAIAEQSQsTACABKAIEGiAAQZSYwAAgARBJCxMAIAEoAgQaIABB4J7AACABEEkLEwAgASgCBBogAEHMv8AAIAEQSQsZACABKAIAQbG9wABBEiABKAIEKAIMEQAACxUAIAEgACgCACIAKAIAIAAoAgQQRAsTACABKAIEGiAAQeCiwQAgARBJCxYAIABBgMjBADYCBCAAIAFBHGo2AgALFgAgAEHEx8EANgIEIAAgAUEcajYCAAsQACAAQQRqED4gAEEcahBdCxkAIAEoAgBB0pfBAEEIIAEoAgQoAgwRAAALGQAgASgCAEGTlcEAQQMgASgCBCgCDBEAAAsZACABKAIAQcjDwQBBFyABKAIEKAIMEQAACxkAIAEoAgBB1MLBAEEUIAEoAgQoAgwRAAALGQAgASgCAEGsw8EAQQog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EGsiASQAIAFB3ZLAADYCDCABIABBB2o2AgggAUEIakHU18EAIAFBDGpB1NfBACAAQQhqQbzVwQAQbwALIwBBIGsiACQAIABBADYCGCAAQQE2AgwgAEGc1sEANgIIIABCBDcCECAAQQhqQaTWwQAQ2QEAC0Hc1cEAEJ4CAAsgAEEANgIYIABBATYCDCAAQYzVwQA2AgggAEIENwIQIABBCGpBzNXBABDZAQALQbjmwQBBADoAACAEQQM6AAALIABBIGokACAJKAIMIQMgAigCUEGAgIAEcSIEDQELIAMgCSgCECIASQ0CIAMgAGshAyAJKAIIIABBDGxqDAELIAkoAggLIQ8gAkGAgICAeDYCWCACQcjOwQApAwAiHzcCXCACIARBF3YiADoAZCACIAA6AHggAkEANgJ0IAJB0NjBADYCcCACIAJByABqNgJoIAIgAkHYAGo2AmwgA0UEQCAfpyEDIB9CIIinDAgLIA8gA0EMbGohGCACQZgBaiEVIAJBlwFqIRkDQAJAIA8oAggiAEUEQCACQQA2AogBIAIgAkHoAGo2AoQBIAJBAzYCkAEgAkECNgLQASACQYQBaiACQZABaiACQdABakEAIAJBACACECUgAigChAEiASABKAIMQQFqNgIMRQ0BDA4LIA8oAgQiCSAAQSxsaiEaA0AgAkEANgKAASACIAJB6ABqNgJ8AkACQAJAAkAgCSgCIEGAgICAeEcEQCACQZABaiIAIAkoAiQiGyAJKAIoIhwQQUECIRcgAigCkAENAyAAIAIoApQBIgggAigCmAEiAUHMusAAQQYQIQJAAkAgAigCkAEEQCACKALMASEAIAIoAsgBIQQgAigCxAEhBiACKALAASEDIAIoArQBQX9GDQEgAkGEAWogFSADIAYgBCAAQQAQVgwCCwNAIAJB0AFqIAJBkAFqECsgAigC0AEiAEEBRg0ACwJAAkAgAEEBaw4CGQEACyACIAIpAtQBNwKIASACQQE2AoQBDAILIAJBADYChAEMAQsgAkGEAWogFSADIAYgBCAAQQEQVgsgAigChAFBAUcNAiACKAKIASIAQQZqIgRFDQECQCABIARNBEAgASAERw0BDAMLIAQgCGosAABBv39KDQILIAggASAEIAFB1LrAABCQAgALIAJBAzYCkAEMAwsgASAIaiEHIAQgCGohAwNAAkAg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IAMMBgsCQCACKAJYIgBBgICAgHhHBEAgAEUNAiACKAJcIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIABqSQ0FIAFFIAQgAEEnak1yDQEMBgsgAi0AXEEDRw0BIAIoAmAiAygCACEAIANBBGooAgAiASgCACIEBEAgACAEEQQACyABKAIEIgEEQCAAQQRrKAIAIgRBeHEiBkEEQQggBEEDcSIEGyABakkNBSAEQQAgBiABQSdqSxsNBiAAEC4LIANBBGsoAgAiAEF4cSIBQRBBFCAAQQNxIgAbSQ0EIABFDQAgAUE0Tw0FCyADEC4LQYijwQBBNyACQd8BakGMlsAAQcCjwQAQnwEACwALQdC4wABBPSACQd8BakHAuMAAQei5wAAQnwEAC0Go2cEAQS5B2NnBABDOAQALQejZwQBBLkGY2sEAEM4BAAsLCAAgACUBEAQLDABB9LPAAEEyEBEACwcAEBIQ1wELBABBAQsEAEEACwIACwub3wE+AEGAgMAAC5UTT25jZSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAAAABAAKgAAAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI2L3NyYy9sZWdhY3kucnMAc3BhcmstcnMvc3JjL3JheWNhc3QucnMAbGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYW55aG93LTEuMC45OC9zcmMvZm10LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9pbXBscy5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3lzL3N5bmMvbXV0ZXgvbm9fdGhyZWFkcy5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvc3lzL3N5bmMvb25jZS9ub190aHJlYWRzLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYW55aG93LTEuMC45OC9zcmMvZXJyb3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL2Vycm9yLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvc3RyL3BhdHRlcm4ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9jb3JlL3NyYy9vcHMvZnVuY3Rpb24ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3luYy9sYXp5X2xvY2sucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAGxpYnJhcnkvc3RkL3NyYy9wYW5pY2tpbmcucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjExNy9zcmMvZXh0ZXJucmVmLnJzAGxpYnJhcnkvY29yZS9zcmMvdW5pY29kZS9wcmludGFibGUucnMAc3BhcmstbGliL3NyYy9zcGxhdF9lbmNvZGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL2RlLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvc3RkL3NyYy9zeW5jL3BvaXNvbi9vbmNlLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3NsaWNlLnJzAGxpYnJhcnkvc3RkL3NyYy9iYWNrdHJhY2UucnMAL3J1c3QvZGVwcy9oYXNoYnJvd24tMC4xNS41L3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwBsaWJyYXJ5L3N0ZC9zcmMvLi4vLi4vYmFja3RyYWNlL3NyYy9zeW1ib2xpemUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAc3BhcmstbGliL3NyYy9yYWQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL3JlYWQucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuMTAvc3JjL2RsbWFsbG9jLnJzAHNwYXJrLXJzL3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9jb25zb2xlX2Vycm9yX3BhbmljX2hvb2stMC4xLjcvc3JjL2xpYi5ycwAvcnVzdC9kZXBzL3J1c3RjLWRlbWFuZ2xlLTAuMS4yNi9zcmMvbGliLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtd2FzbS1iaW5kZ2VuLTAuNi41L3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMu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//////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAEAAgADAAQABQAGAAcACAAJAP//////////////////CgALAAwADQAOAA8A/////////////////////////////////////////////////////////////////////woACwAMAA0ADgAPAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAEAAgADAAQABQAGAAcACAAJAA//////////////////+gALAAwADQAOAA8AD/////////////////////////////////////////////////////////////////////oACwAMAA0ADgAPAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////MgcQAGIAAACzAQAAGgAAADIHEABiAAAAAAIAABMAAAAyBxAAYgAAAAUCAAAzAAAAMgcQAGIAAAAJAgAAPgAAADIHEABiAAAADwIAADoAAAAyBxAAYgAAAKsBAAA9AAAAMgcQAGIAAACmAQAARQAAACBhdCBsaW5lIAAAAEACEABjAAAA9wEAACEAAABAAhAAYwAAAPsBAAAMAAAAIGNvbHVtbiBAAhAAYwAAAAICAAAhAAAAQAIQAGMAAAALAgAAKgAAAEACEABjAAAADwIAACwAAABAAhAAYwAAABQCAAAJAAAAaW5mLWluZk5hTgAAPgAAAAwAAAAEAAAAPwAAAEAAAABYAEGAo8EAC/sHAQAAAEIAAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5ALcDEABLAAAABQsAAA4AAACkAhAATwAAADwGAAAUAAAApAIQAE8AAAA8BgAAIQAAAKQCEABPAAAAMAYAABQAAACkAhAATwAAADAGAAAhAAAARXJyb3Jhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmlzX2NoYXJfYm91bmRhcnkobmV3X2xlbilFcnJvcigsIGxpbmU6ICwgY29sdW1uOiAAAABFUhAABgAAAEtSEAAIAAAAU1IQAAoAAAD/axAAAQAAAGludmFsaWQgdHlwZTogAACAUhAADgAAABtWEAALAAAAaW52YWxpZCB2YWx1ZTogAKBSEAAPAAAAG1YQAAsAAABFT0Ygd2hpbGUgcGFyc2luZyBhIGxpc3RFT0Ygd2hpbGUgcGFyc2luZyBhbiBvYmplY3RFT0Ygd2hpbGUgcGFyc2luZyBhIHN0cmluZ0VPRiB3aGlsZSBwYXJzaW5nIGEgdmFsdWVleHBlY3RlZCBgOmBleHBlY3RlZCBgLGAgb3IgYF1gZXhwZWN0ZWQgYCxgIG9yIGB9YGV4cGVjdGVkIGlkZW50ZXhwZWN0ZWQgdmFsdWVleHBlY3RlZCBgImBpbnZhbGlkIGVzY2FwZWludmFsaWQgbnVtYmVybnVtYmVyIG91dCBvZiByYW5nZWludmFsaWQgdW5pY29kZSBjb2RlIHBvaW50Y29udHJvbCBjaGFyYWN0ZXIgKFx1MDAwMC1cdTAwMUYpIGZvdW5kIHdoaWxlIHBhcnNpbmcgYSBzdHJpbmdrZXkgbXVzdCBiZSBhIHN0cmluZ2ludmFsaWQgdmFsdWU6IGV4cGVjdGVkIGtleSB0byBiZSBhIG51bWJlciBpbiBxdW90ZXNmbG9hdCBrZXkgbXVzdCBiZSBmaW5pdGUgKGdvdCBOYU4gb3IgKy8taW5mKWxvbmUgbGVhZGluZyBzdXJyb2dhdGUgaW4gaGV4IGVzY2FwZXRyYWlsaW5nIGNvbW1hdHJhaWxpbmcgY2hhcmFjdGVyc3VuZXhwZWN0ZWQgZW5kIG9mIGhleCBlc2NhcGVyZWN1cnNpb24gbGltaXQgZXhjZWVkZWQBAAAAAAAAAOBQEAAJAAAADFEQAAgAAAAyBxAAYgAAAFwCAAATAAAAMgcQAGIAAABuAgAAGQAAAGZsb2F0aW5nIHBvaW50IGAsVRAAEAAAAPtVEAABAAAApAIQAE8AAAC9BAAAJAAAAG4IEABnAAAANQAAAA4AAAAAAAAA//////////9wVRAAQYirwQALgQIgY2FuJ3QgYmUgcmVwcmVzZW50ZWQgYXMgYSBKYXZhU2NyaXB0IG51bWJlcgEAAAAAAAAAiFUQACwAAABpbnRlcm5hbCBlcnJvcjogZW50ZXJlZCB1bnJlYWNoYWJsZSBjb2RlbWlzc2luZyBmaWVsZCBgYOxVEAAPAAAA+1UQAAEAAABpbnZhbGlkIGxlbmd0aCAsIGV4cGVjdGVkIAAADFYQAA8AAAAbVhAACwAAAGR1cGxpY2F0ZSBmaWVsZCBgAAAAOFYQABEAAAD7VRAAAQAAAHVua25vd24gdmFyaWFudCBgYCwgZXhwZWN0ZWQgAAAAXFYQABEAAABtVhAADABBlK3BAAsFAQAAAFkAQaStwQALBQEAAABaAEG0rcEACyUBAAAAWwAAAM4EEABgAAAAoAQAACIAAADOBBAAYAAAAJYEAAAmAEHmrcEAC9kX8D8AAAAAAAAkQAAAAAAAAFlAAAAAAABAj0AAAAAAAIjDQAAAAAAAavhAAAAAAICELkEAAAAA0BJjQQAAAACE15dBAAAAAGXNzUEAAAAgX6ACQgAAAOh2SDdCAAAAopQabUIAAEDlnDCiQgAAkB7EvNZCAAA0JvVrDEMAgOA3ecNBQwCg2IVXNHZDAMhOZ23Bq0MAPZFg5FjhQ0CMtXgdrxVEUO/i1uQaS0SS1U0Gz/CARPZK4ccCLbVEtJ3ZeUN46kSRAigsKosgRTUDMrf0rVRFAoT+5HHZiUWBEh8v5yfARSHX5vrgMfRF6oygOVk+KUYksAiI741fRhduBbW1uJNGnMlGIuOmyEYDfNjqm9D+RoJNx3JhQjNH4yB5z/kSaEcbaVdDuBeeR7GhFirTztJHHUqc9IeCB0ilXMPxKWM9SOcZGjf6XXJIYaDgxHj1pkh5yBj21rLcSEx9z1nG7xFJnlxD8LdrRknGM1TspQZ8SVygtLMnhLFJc8ihoDHl5UmPOsoIfl4bSppkfsUOG1FKwP3ddtJhhUowfZUUR7q6Sj5u3WxstPBKzskUiIfhJEtB/Blq6RlaS6k9UOIxUJBLE03kWj5kxEtXYJ3xTX35S224BG6h3C9MRPPC5OTpY0wVsPMdXuSYTBuccKV1Hc9MkWFmh2lyA031+T/pA084TXL4j+PEYm5NR/s5Drv9ok0ZesjRKb3XTZ+YOkZ0rA1OZJ/kq8iLQk49x93Wui53Tgw5lYxp+qxOp0Pd94Ec4k6RlNR1oqMWT7W5SROLTExPERQO7NavgU8WmRGnzBu2T1v/1dC/outPmb+F4rdFIVB/LyfbJZdVUF/78FHv/IpQG502kxXewFBiRAT4mhX1UHtVBbYBWypRbVXDEeF4YFHIKjRWGZeUUXo1wavfvMlRbMFYywsWAFLH8S6+jhs0Ujmuum1yImlSx1kpCQ9rn1Id2Lll6aLTUiROKL+jiwhTrWHyroyuPlMMfVftFy1zU09crehd+KdTY7PYYnX23VMecMddCboSVCVMObWLaEdULp+Hoq5CfVR9w5QlrUmyVFz0+W4Y3OZUc3G4ih6THFXoRrMW89tRVaIYYNzvUoZVyh5406vnu1U/Eytky3DxVQ7YNT3+zCVWEk6DzD1AW1bLENKfJgiRVv6UxkcwSsVWPTq4Wbyc+lZmJBO49aEwV4DtFyZzymRX4Oid7w/9mVeMscL1KT7QV+9dM3O0TQRYazUAkCFhOVjFQgD0ablvWLspgDji06NYKjSgxtrI2Fg1QUh4EfsOWcEoLevqXENZ8XL4pSU0eFmtj3YPL0GuWcwZqmm96OJZP6AUxOyiF1pPyBn1p4tNWjIdMPlId4JafiR8NxsVt1qeLVsFYtrsWoL8WEN9CCJbozsvlJyKVluMCju5Qy2MW5fmxFNKnMFbPSC26FwD9ltNqOMiNIQrXDBJzpWgMmFcfNtBu0h/lVxbUhLqGt/KXHlzS9JwywBdV1DeBk3+NF1t5JVI4D1qXcSuXS2sZqBddRq1OFeA1F0SYeIGbaAJXqt8TSREBEBe1ttgLVUFdF7MErl4qgapXn9X5xZVSN9er5ZQLjWNE19bvOR5gnBIX3LrXRijjH5fJ7M67+UXs1/xXwlr393nX+23y0VX1R1g9FKfi1alUmCxJ4curE6HYJ3xKDpXIr1gApdZhHY18mDD/G8l1MImYfT7yy6Jc1xheH0/vTXIkWHWXI8sQzrGYQw0s/fTyPthhwDQeoRdMWKpAISZ5bRlYtQA5f8eIptihCDvX1P10GKl6Oo3qDIFY8+i5UVSfzpjwYWva5OPcGMyZ5tGeLOkY/5AQlhW4Nljn2gp9zUsEGTGwvN0QzdEZHizMFIURXlkVuC8ZlmWr2Q2DDbg973jZEOPQ9h1rRhlFHNUTtPYTmXsx/QQhEeDZej5MRVlGbhlYXh+Wr4f7mU9C4/41tMiZgzOsrbMiFdmj4Ff5P9qjWb5sLvu32LCZjidauqX+/ZmhkQF5X26LGfUSiOvjvRhZ4kd7FqycZZn6ySn8R4OzGcTdwhX04gBaNeUyiwI6zVoDTr9N8pla2hIRP5inh+haFrVvfuFZ9VosUqtemfBCmmvTqys4LhAaVpi19cY53Rp8TrNDd8gqmnWRKBoi1TgaQxWyEKuaRRqj2t60xmESWpzBllIIOV/agikNy0077NqCo2FOAHr6GpM8KaGwSUfazBWKPSYd1Nru2syMX9ViGuqBn/93mq+aypkb17LAvNrNT0LNn7DJ2yCDI7DXbRdbNHHOJq6kJJsxvnGQOk0x2w3uPiQIwL9bCNzmzpWITJt609CyaupZm3m45K7FlScbXDOOzWOtNFtDMKKwrEhBm6Pci0zHqo7bpln/N9SSnFuf4H7l+ecpW7fYfp9IQTbbix9vO6U4hBvdpxrKjobRW+Ugwa1CGJ6bz0SJHFFfbBvzBZtzZac5G9/XMiAvMMZcM85fdBVGlBwQ4icROsghHBUqsMVJim5cOmUNJtvc+9wEd0AwSWoI3FWFEExL5JYcWtZkf26to5x49d63jQyw3HcjRkWwv73cVPxn5ty/i1y1PZDoQe/YnKJ9JSJyW6Xcqsx+ut7Ss1yC198c41OAnPNdlvQMOI2c4FUcgS9mmxz0HTHIrbgoXMEUnmr41jWc4amV5Yc7wt0FMj23XF1QXQYenRVztJ1dJ6Y0eqBR6t0Y//CMrEM4XQ8v3N/3U8VdQuvUN/Uo0p1Z22SC2WmgHXACHdO/s+0dfHKFOL9A+p11v5MrX5CIHaMPqBYHlNUdi9OyO7lZ4l2u2F6at/Bv3YVfYyiK9nzdlqcL4t2zyh3cIP7LVQDX3cmMr2cFGKTd7B+7MOZOsh3XJ7nNEBJ/nf5whAhyO0yeLjzVCk6qWd4pTCqs4iTnXhnXkpwNXzSeAH2XMxCGwd5gjN0fxPiPHkxoKgvTA1yeT3IkjufkKZ5TXp3Csc03HlwrIpm/KAReoxXLYA7CUZ6b604YIqLe3plbCN8Njexen9HLBsEheV6Xln3IUXmGnvblzo1689Qe9I9iQLmA4V7Ro0rg99EuntMOPuxC2vwe18Gep7OhSR89ocYRkKnWXz6VM9riQiQfDgqw8arCsR8x/RzuFYN+Xz48ZBmrFAvfTuXGsBrkmN9Cj0hsAZ3mH1MjClcyJTOfbD3mTn9HAN+nHUAiDzkN34DkwCqS91tfuJbQEpPqqJ+2nLQHONU136QjwTkGyoNf7rZgm5ROkJ/KZAjyuXIdn8zdKw8H3usf6DI64XzzOF/AAAAAAAAAAABAAAAXAAAAHN0cnVjdCBSYWRNZXRhdmVyc2lvbnR5cGVjb3VudG1heFNobG9kVHJlZWNodW5rU2l6ZWFsbENodW5rQnl0ZXNjaHVua3NzcGxhdEVuY29kaW5nc2hDb2RlQ291bnRjb21tZW50c3RydWN0IFJhZE1ldGEgd2l0aCAxMSBlbGVtZW50c/1gEAAfAAAAAAAAAAgAAAAEAAAAXQAAAHZhcmlhbnQgaWRlbnRpZmllcmdzcGxhdEZhEAAGAAAAc3RydWN0IFJhZENodW5rUmFuZ2VvZmZzZXRieXRlc2Jhc2VmaWxlbmFtZXN0cnVjdCBSYWRDaHVua1JhbmdlIHdpdGggNSBlbGVtZW50cwB/YRAAJAAAAGEgc2VxdWVuY2UAAPEAEABmAAAAjQQAABwAAABzdHJ1Y3QgU2V0U3BsYXRFbmNvZGluZ3JnYk1pbnJnYk1heGxuU2NhbGVNaW5sblNjYWxlTWF4c2gxTWF4c2gyTWF4c2gzTWF4bG9kT3BhY2l0eXN0cnVjdCBTZXRTcGxhdEVuY29kaW5nIHdpdGggOCBlbGVtZW50cwAAG2IQACcAAABkZXNjcmlwdGlvbigpIGlzIGRlcHJlY2F0ZWQ7IHVzZSBEaXNwbGF52r7ln0aj9UHWvSGCBIp/fv/RdU8UjvBwCSevxkboy2u4q2M1b+Kp5RZJwg3YjwC9DMeBlfRG5Tdfwe0RkUxjSQICAgICAgICAgICAEHcxcEACwgCAgAAAAAAAgBBk8bBAAsBAgBBucbBAAsBAQBB1MbBAAsBAQBBtMfBAAv5Al4AAAAEAAAABAAAAF8AAABeAAAABAAAAAQAAABgAAAAXwAAALRjEABhAAAAYgAAAGMAAABkAAAAZQAAAGYAAAAMAAAABAAAAGcAAABmAAAADAAAAAQAAABoAAAAZwAAAPBjEABpAAAAagAAAGMAAABpAAAAZQAAAGsAAAAgAAAABAAAAGwAAABrAAAAIAAAAAQAAABtAAAAbAAAACxkEABuAAAAbwAAAHAAAABxAAAAcgAAAHMAAAAoAAAABAAAAGwAAABzAAAAKAAAAAQAAABtAAAAbAAAAGhkEABuAAAAdAAAAHAAAABxAAAAcgAAAHUAAAB2AAAAdwAAAHgAAAB5AAAAegAAAHsAAAB8AAAAfQAAAH4AAAB/AAAAgAAAAIEAAAB7AAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogaW52YWxpZCBPbmNlIHN0YXRl3GQQADwAAACFARAAWwAAADUAAAASAEG4ysEACwUBAAAAggBByMrBAAsFAQAAAIMAQdjKwQALBQEAAACEAEHoysEACwUBAAAAhQBB+MrBAAsFAQAAAIYAQYjLwQALBQEAAACHAEGYy8EACwUBAAAAiABBqMvBAAt5AQAAAIkAAACwBBAAHQAAAJkAAAAUAAAAsAQQAB0AAABsAAAAFAAAALAEEAAdAAAAMwAAAB0AAACwBBAAHQAAADUAAAAdAAAAHQcQABQAAABgBQAANgAAAEludmFsaWQgUkFEIG1hZ2ljOiAweAAAAABmEAAVAAAAAgBBqszBAAsBCABBtMzBAAt1IAAA6W1dy9YsUOtjeEGmV3Ebi7n1Ky+JZFpnOv7tcjMv54x1AQAAAAAAAAACAAAAAAAAAAEAAAABAAAAAAAAACAAAOggICAgICAgICAgICAgYXQgOgAAAIhmEAABAAAACjogAAEAAAAAAAAAlWYQAAIAAAACAEGyzcEACwEEAEG8zcEACzEgAADoIC0gAAEAAAAAAAAAwGYQAAMAAAAgICAgICA8dW5rbm93bj4AAgAAAAAAAAACAEH4zcEAC50NIACA4O+/vQAyBhAANAAAAGcBAAAwAAAAb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybRBnEAAoAAAAJAAAAAAAAAACAAAAOGcQAGVudGl0eSBub3QgZm91bmRwZXJtaXNzaW9uIGRlbmllZGNvbm5lY3Rpb24gcmVmdXNlZGNvbm5lY3Rpb24gcmVzZXRob3N0IHVucmVhY2hhYmxlbmV0d29yayB1bnJlYWNoYWJsZWNvbm5lY3Rpb24gYWJvcnRlZG5vdCBjb25uZWN0ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9yb3BlcmF0aW9uIHN1Y2Nlc3NmdWxvbmUtdGltZSBpbml0aWFsaXphdGlvbiBtYXkgbm90IGJlIHBlcmZvcm1lZCByZWN1cnNpdmVseQAAAFFqEAA4AAAAY2Fubm90IHJlY3Vyc2l2ZWx5IGFjcXVpcmUgbXV0ZXiUahAAIAAAAFgBEAAsAAAAEwAAAAkAAABfBRAAIwAAANcAAAAUAAAAXwUQACMAAADXAAAAMQAAAExhenlMb2NrIGluc3RhbmNlIGhhcyBwcmV2aW91c2x5IGJlZW4gcG9pc29uZWQAAOxqEAAuAAAAlQMQACEAAACXAQAABQAAADoKAABEAAAADAAAAAQAAACKAAAAiwAAAIwAAAAAAAAACAAAAAQAAACNAAAAjgAAAI8AAACQAAAAkQAAABAAAAAEAAAAkgAAAJMAAACUAAAAlQAAAGNhbm5vdCBtb2RpZnkgdGhlIHBhbmljIGhvb2sgZnJvbSBhIHBhbmlja2luZyB0aHJlYWSIaxAANAAAAAMEEAAcAAAAkAAAAAkAAAAAAAAABAAAAAQAAACWAAAAzAYQAFAAAAAqAgAAEQAAACAob3MgZXJyb3IgKQEAAAAAAAAA9GsQAAsAAAD/axAAAQAAAHVuc3VwcG9ydGVkIGJhY2t0cmFjZWRpc2FibGVkIGJhY2t0cmFjZQDOBRAAHAAAAIoBAAAdAAAAlwAAABAAAAAEAAAAmAAAAJkAAABwYW5pY2tlZCBhdCABAAAAAAAAAIhmEAABAAAAiGYQAAEAAAAAAAAACAAAAAQAAACaAAAAgwUQAEoAAAC9AQAAHQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAAJUHEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAACVBxAAKgAAALcEAAANAAAARAAAAAwAAAAEAAAAmwAAACAEEABpAAAAfAAAABEAAAAgBBAAaQAAAIkAAAARAAAAAgAAAAQAAAAEAAAAAwAAAAMAAAADAAAAAAAAAAIAAAAFAAAABQAAAAAAAAADAAAAAwAAAAQAAAAEAAAAAQBBoNvBAAtfAwAAAAMAAAACAAAAAwAAAAAAAAADAAAAAwAAAAEAAAAZGxAADBsQABAbEAA2GxAAFBsQAJNKEAAAAAAALRsQACgbEACcShAAAAAAAB4bEACWShAAJBsQADIbEAA6GxAAQYjcwQALoAYbGxAALxsQABcbEAA7GxAAAAAAACEbEACZShAAORsQAAUAAAAMAAAACwAAAAsAAAAEAAAAdR4QAHoeEACGHhAAkR4QAJweEAAFAAAADAAAAAsAAAALAAAABAAAAHUeEAB6HhAAhh4QAJEeEACcHhAAEAAAABEAAAASAAAAEAAAABAAAAATAAAAEgAAAA0AAAAOAAAAFQAAAAwAAAALAAAAFQAAABUAAAAPAAAADgAAABMAAAAmAAAAOAAAABkAAAAXAAAADAAAAAkAAAAKAAAAEAAAABcAAAAOAAAADgAAAA0AAAAUAAAACAAAABsAAAAOAAAAEAAAABYAAAAVAAAACwAAABYAAAANAAAACwAAAAsAAAATAAAAUGcQAGBnEABxZxAAg2cQAJNnEACjZxAAtmcQAMhnEADVZxAA42cQAPhnEAAEaBAAD2gQACRoEAA5aBAASGgQAFZoEABpaBAAj2gQAMdoEADgaBAA92gQAANpEAAMaRAAFmkQACZpEAA9aRAAS2kQAFlpEABmaRAAemkQAIJpEACdaRAAq2kQALtpEADRaRAA5mkQAPFpEAAHahAAFGoQAB9qEAAqahAAAAAAPwAAAL8DAAAABAAAAAQAAAAGAAAAg/miAERObgD8KRUA0VcnAN009QBi28AAPJmVAEGQQwBjUf4Au96rALdhxQA6biQA0k1CAEkG4AAJ6i4AHJLRAOsd/gApsRwA6D6nAPU1ggBEuy4AnOmEALQmcABBfl8A1pE5AFODOQCc9DkAi1+EACj5vQD4HzsA3v+XAA+YBQARL+8AClqLAG0fbQDPfjYACcsnAEZPtwCeZj8ALepfALondQDl68cAPXvxAPc5BwCSUooA+2vqAB+xXwAIXY0AMANWAHv8RgDwq2sAILzPADb0mgDjqR0AXmGRAAgb5gCFmWUAoBRfAI1AaACA2P8AJ3NNAAYGMQDKVhUAyahzAHviYABrjMAAAAAAQPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNQBBqOLBAAsBBABwCXByb2R1Y2VycwIIbGFuZ3VhZ2UBBFJ1c3QADHByb2Nlc3NlZC1ieQMFcnVzdGMdMS45MS4wIChmODI5N2UzNTEgMjAyNS0xMC0yOCkGd2FscnVzBjAuMjYuMQx3YXNtLWJpbmRnZW4HMC4yLjExNwB0D3RhcmdldF9mZWF0dXJlcwcrD211dGFibGUtZ2xvYmFscysTbm9udHJhcHBpbmctZnB0b2ludCsHc2ltZDEyOCsLYnVsay1tZW1vcnkrCHNpZ24tZXh0Kw9yZWZlcmVuY2UtdHlwZXMrCm11bHRpdmFsdWU=",typeof document>"u"?require("url").pathToFileURL(__filename).href:UQ&&UQ.tagName.toUpperCase()==="SCRIPT"&&UQ.src||new URL("spark.cjs.min.js",document.baseURI).href));const A=dh();(typeof Q=="string"||typeof Request=="function"&&Q instanceof Request||typeof URL=="function"&&Q instanceof URL)&&(Q=fetch(Q));const{instance:I,module:g}=await Oh(await Q,A);return Th(I)}var mh=`precision highp float; + `)],statements:({inputs:B,outputs:C})=>{const E=lA(I)?`${B.value}`:qA(I)?`${g}(${B.value})`:`floatBitsToUint(${B.value})`;return[`${g} bits = ${E};`,`${C.state} = pcg_mix(bits);`]}})}dynoOut(){return new Z(this,"state")}}class ZD extends aI{constructor({value:A}){super({inTypes:{value:BA(A)},outTypes:{hash:"uint"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");let g=new gg({value:I}).outputs.state;return g=new zA({state:g}).outputs.state,new _A({state:g}).outputs}})}dynoOut(){return new Z(this,"hash")}}class OD extends aI{constructor({value:A}){super({inTypes:{value:BA(A)},outTypes:{hash:"uvec2"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");let g=new gg({value:I}).outputs.state;g=new zA({state:g}).outputs.state;const B=new _A({state:g}).outputs.hash;g=new zA({state:g}).outputs.state;const C=new _A({state:g}).outputs.hash;return{hash:yI({vectorType:"uvec2",x:B,y:C})}}})}dynoOut(){return new Z(this,"hash")}}class WD extends aI{constructor({value:A}){super({inTypes:{value:BA(A)},outTypes:{hash:"uvec3"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");let g=new gg({value:I}).outputs.state;g=new zA({state:g}).outputs.state;const B=new _A({state:g}).outputs.hash;g=new zA({state:g}).outputs.state;const C=new _A({state:g}).outputs.hash;g=new zA({state:g}).outputs.state;const E=new _A({state:g}).outputs.hash;return{hash:yI({vectorType:"uvec3",x:B,y:C,z:E})}}})}dynoOut(){return new Z(this,"hash")}}class vD extends aI{constructor({value:A}){super({inTypes:{value:BA(A)},outTypes:{hash:"uvec4"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");let g=new gg({value:I}).outputs.state;g=new zA({state:g}).outputs.state;const B=new _A({state:g}).outputs.hash;g=new zA({state:g}).outputs.state;const C=new _A({state:g}).outputs.hash;g=new zA({state:g}).outputs.state;const E=new _A({state:g}).outputs.hash;g=new zA({state:g}).outputs.state;const i=new _A({state:g}).outputs.hash;return{hash:yI({vectorType:"uvec4",x:B,y:C,z:E,w:i})}}})}dynoOut(){return new Z(this,"hash")}}class XD extends aI{constructor({value:A}){super({inTypes:{value:BA(A)},outTypes:{hash:"float"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");const g=pD(I);return{hash:FA(ui(g),AA("float",1/2**32))}}})}dynoOut(){return new Z(this,"hash")}}class jD extends aI{constructor({value:A}){super({inTypes:{value:BA(A)},outTypes:{hash:"vec2"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");const g=uD(I);return{hash:FA(Pi(g),AA("float",1/2**32))}}})}dynoOut(){return new Z(this,"hash")}}class zD extends aI{constructor({value:A}){super({inTypes:{value:BA(A)},outTypes:{hash:"vec3"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");const g=PD(I);return{hash:FA(fI(g),AA("float",1/2**32))}}})}dynoOut(){return new Z(this,"hash")}}class _D extends aI{constructor({value:A}){super({inTypes:{value:BA(A)},outTypes:{hash:"vec4"},inputs:{value:A},construct:({value:I})=>{if(!I)throw new Error("value is required");const g=bD(I);return{hash:FA(bi(g),AA("float",1/2**32))}}})}dynoOut(){return new Z(this,"hash")}}class $D extends q{constructor({z:A,zNear:I,zFar:g}){super({inTypes:{z:"float",zNear:"float",zFar:"float"},outTypes:{depth:"float"},inputs:{z:A,zNear:I,zFar:g},statements:({inputs:B,outputs:C})=>[`float clamped = clamp(${B.z}, ${B.zNear}, ${B.zFar});`,`${C.depth} = (log2(clamped + 1.0) - log2(${B.zNear} + 1.0)) / (log2(${B.zFar} + 1.0) - log2(${B.zNear} + 1.0));`]})}dynoOut(){return new Z(this,"depth")}}class Ao extends q{constructor({index:A}){super({inTypes:{index:"int"},outTypes:{color:"vec3"},inputs:{index:A},statements:({inputs:I,outputs:g})=>[`${g.color} = debugColorHue(uint(${I.index}));`]})}dynoOut(){return new Z(this,"color")}}const Io=(Q,{scale:A,scales:I,rotate:g,translate:B})=>new Qo({position:Q,scale:A,scales:I,rotate:g,translate:B}).outputs.position,go=(Q,{scale:A,scales:I,rotate:g})=>new Bo({dir:Q,scale:A,scales:I,rotate:g}).outputs.dir,PG=(Q,{rotate:A})=>new Co({quaternion:Q,rotate:A}).outputs.quaternion;class Qo extends q{constructor({position:A,scale:I,scales:g,rotate:B,translate:C}){super({inTypes:{position:"vec3",scale:"float",scales:"vec3",rotate:"vec4",translate:"vec3"},outTypes:{position:"vec3"},inputs:{position:A,scale:I,scales:g,rotate:B,translate:C},statements:({inputs:E,outputs:i})=>{const{position:o}=i;if(!o)return[];const{scale:D,scales:s,rotate:w,translate:G}=E;return[`${o} = ${E.position??"vec3(0.0, 0.0, 0.0)"};`,D?`${o} *= ${D};`:null,s?`${o} *= ${s};`:null,w?`${o} = quatVec(${w}, ${o});`:null,G?`${o} += ${G};`:null].filter(Boolean)}})}}class Bo extends q{constructor({dir:A,scale:I,scales:g,rotate:B}){super({inTypes:{dir:"vec3",scale:"float",scales:"vec3",rotate:"vec4"},outTypes:{dir:"vec3"},inputs:{dir:A,scale:I,scales:g,rotate:B},statements:({inputs:C,outputs:E})=>{const{dir:i}=E;if(!i)return[];const{scale:o,scales:D,rotate:s}=C;return[`${i} = ${C.dir??"vec3(0.0, 0.0, 0.0)"};`,o?`${i} *= ${o};`:null,D?`${i} *= ${D};`:null,s?`${i} = quatVec(${s}, ${i});`:null].filter(Boolean)}})}}class Co extends q{constructor({quaternion:A,rotate:I}){super({inTypes:{quaternion:"vec4",rotate:"vec4"},outTypes:{quaternion:"vec4"},inputs:{quaternion:A,rotate:I},statements:({inputs:g,outputs:B})=>{const{quaternion:C}=B;return C?[`${C} = ${g.quaternion??"vec4(0.0, 0.0, 0.0, 1.0)"};`,I?`${C} = quatQuat(${g.rotate}, ${C});`:null].filter(Boolean):[]}})}}const bG=()=>{throw new Error("Not implemented")},TG=()=>{throw new Error("Not implemented")},mG=()=>{throw new Error("Not implemented")},VG=()=>{throw new Error("Not implemented")},ZG=()=>{throw new Error("Not implemented")},OG=()=>{throw new Error("Not implemented")},WG=(Q,A)=>new Eo({texture:Q,lod:A}),vG=(Q,A,I)=>new io({texture:Q,coord:A,bias:I}),XG=(Q,A,I)=>new Do({texture:Q,coord:A,lod:I});class Eo extends q{constructor({texture:A,lod:I}){const g=BA(A);super({inTypes:{texture:g,lod:"int"},outTypes:{size:oo(g)},inputs:{texture:A,lod:I},statements:({inputs:B,outputs:C})=>[`${C.size} = textureSize(${B.texture}, ${B.lod??"0"});`]})}dynoOut(){return new Z(this,"size")}}class io extends q{constructor({texture:A,coord:I,bias:g}){const B=BA(A);super({inTypes:{texture:B,coord:jG(B),bias:"float"},outTypes:{sample:wo(B)},inputs:{texture:A,coord:I,bias:g},statements:({inputs:C,outputs:E})=>[`${E.sample} = texture(${C.texture}, ${C.coord}${C.bias?`, ${C.bias}`:""});`]})}dynoOut(){return new Z(this,"sample")}}class Do extends q{constructor({texture:A,coord:I,lod:g}){const B=BA(A);super({inTypes:{texture:B,coord:oo(B),lod:"int"},outTypes:{texel:wo(B)},inputs:{texture:A,coord:I,lod:g},statements:({inputs:C,outputs:E})=>[`${E.texel} = texelFetch(${C.texture}, ${C.coord}, ${C.lod??"0"});`]})}dynoOut(){return new Z(this,"texel")}}function oo(Q){switch(Q){case"sampler2D":case"usampler2D":case"isampler2D":case"samplerCube":case"usamplerCube":case"isamplerCube":case"sampler2DShadow":case"samplerCubeShadow":return"ivec2";case"sampler3D":case"usampler3D":case"isampler3D":case"sampler2DArray":case"usampler2DArray":case"isampler2DArray":case"sampler2DArrayShadow":return"ivec3";default:throw new Error(`Invalid texture type: ${Q}`)}}function jG(Q){switch(Q){case"sampler2D":case"usampler2D":case"isampler2D":return"vec2";case"sampler3D":case"usampler3D":case"isampler3D":case"samplerCube":case"usamplerCube":case"isamplerCube":case"sampler2DArray":case"usampler2DArray":case"isampler2DArray":case"sampler2DShadow":return"vec3";case"samplerCubeShadow":case"sampler2DArrayShadow":return"vec4";default:throw new Error(`Invalid texture type: ${Q}`)}}function wo(Q){switch(Q){case"sampler2D":case"sampler2DArray":case"sampler3D":case"samplerCube":case"sampler2DShadow":return"vec4";case"usampler2D":case"usampler2DArray":case"usampler3D":case"usamplerCube":return"uvec4";case"isampler2D":case"isampler2DArray":case"isampler3D":case"isamplerCube":return"ivec4";case"samplerCubeShadow":case"sampler2DArrayShadow":return"float";default:throw new Error(`Invalid texture type: ${Q}`)}}const zG=Q=>new so({degrees:Q}),_G=Q=>new ao({radians:Q}),TQ=Q=>new Go({radians:Q}),$G=Q=>new to({radians:Q}),At=Q=>new ho({radians:Q}),It=Q=>new yo({sin:Q}),gt=Q=>new co({cos:Q}),Qt=Q=>new ko({tan:Q}),Bt=(Q,A)=>new Fo({y:Q,x:A}),Ct=Q=>new So({x:Q}),Et=Q=>new No({x:Q}),it=Q=>new Ro({x:Q}),Dt=Q=>new Mo({x:Q}),ot=Q=>new eo({x:Q}),wt=Q=>new Jo({x:Q});class so extends r{constructor({degrees:A}){super({a:A,outTypeFunc:I=>I,outKey:"radians"}),this.statements=({inputs:I,outputs:g})=>[`${g.radians} = radians(${I.a});`]}}class ao extends r{constructor({radians:A}){super({a:A,outTypeFunc:I=>I,outKey:"degrees"}),this.statements=({inputs:I,outputs:g})=>[`${g.degrees} = degrees(${I.a});`]}}class Go extends r{constructor({radians:A}){super({a:A,outTypeFunc:I=>I,outKey:"sin"}),this.statements=({inputs:I,outputs:g})=>[`${g.sin} = sin(${I.a});`]}}class to extends r{constructor({radians:A}){super({a:A,outTypeFunc:I=>I,outKey:"cos"}),this.statements=({inputs:I,outputs:g})=>[`${g.cos} = cos(${I.a});`]}}class ho extends r{constructor({radians:A}){super({a:A,outTypeFunc:I=>I,outKey:"tan"}),this.statements=({inputs:I,outputs:g})=>[`${g.tan} = tan(${I.a});`]}}class yo extends r{constructor({sin:A}){super({a:A,outTypeFunc:I=>I,outKey:"asin"}),this.statements=({inputs:I,outputs:g})=>[`${g.asin} = asin(${I.a});`]}}class co extends r{constructor({cos:A}){super({a:A,outTypeFunc:I=>I,outKey:"acos"}),this.statements=({inputs:I,outputs:g})=>[`${g.acos} = acos(${I.a});`]}}class ko extends r{constructor({tan:A}){super({a:A,outTypeFunc:I=>I,outKey:"atan"}),this.statements=({inputs:I,outputs:g})=>[`${g.atan} = atan(${I.a});`]}}class Fo extends iA{constructor({y:A,x:I}){super({a:A,b:I,outTypeFunc:(g,B)=>g,outKey:"atan2"}),this.statements=({inputs:g,outputs:B})=>[`${B.atan2} = atan2(${g.a}, ${g.b});`]}}class So extends r{constructor({x:A}){super({a:A,outTypeFunc:I=>I,outKey:"sinh"}),this.statements=({inputs:I,outputs:g})=>[`${g.sinh} = sinh(${I.a});`]}}class No extends r{constructor({x:A}){super({a:A,outTypeFunc:I=>I,outKey:"cosh"}),this.statements=({inputs:I,outputs:g})=>[`${g.cosh} = cosh(${I.a});`]}}class Ro extends r{constructor({x:A}){super({a:A,outTypeFunc:I=>I,outKey:"tanh"}),this.statements=({inputs:I,outputs:g})=>[`${g.tanh} = tanh(${I.a});`]}}class Mo extends r{constructor({x:A}){super({a:A,outTypeFunc:I=>I,outKey:"asinh"}),this.statements=({inputs:I,outputs:g})=>[`${g.asinh} = asinh(${I.a});`]}}class eo extends r{constructor({x:A}){super({a:A,outTypeFunc:I=>I,outKey:"acosh"}),this.statements=({inputs:I,outputs:g})=>[`${g.acosh} = acosh(${I.a});`]}}class Jo extends r{constructor({x:A}){super({a:A,outTypeFunc:I=>I,outKey:"atanh"}),this.statements=({inputs:I,outputs:g})=>[`${g.atanh} = atanh(${I.a});`]}}const st=Object.freeze(Object.defineProperty({__proto__:null,Abs:_E,Acos:co,Acosh:eo,Add:VE,All:di,And:Ri,Any:Ki,Asin:yo,Asinh:Mo,Atan:ko,Atan2:Fo,Atanh:Jo,BVec2:Wi,BVec3:vi,BVec4:Xi,BinaryOp:iA,Bool:mi,Ceil:Ii,Clamp:hi,Combine:xD,CombineCovSplat:SC,CombineGsplat:hC,CompMult:YD,CompXor:xi,Compilation:$B,Cos:to,Cosh:No,CovSplat:YA,Cross:MD,DebugColorHue:Ao,Degrees:ao,Determinant:dD,Distance:ND,Div:WE,Dot:RD,Dyno:q,DynoBlock:aI,DynoBool:rg,DynoBvec2:KC,DynoBvec3:xC,DynoBvec4:uC,DynoConst:_B,DynoFloat:OI,DynoInt:CI,DynoIsampler2D:$C,DynoIsampler2DArray:IE,DynoIsampler3D:BE,DynoIsamplerCube:iE,DynoIvec2:qC,DynoIvec3:pC,DynoIvec4:bC,DynoLiteral:ZI,DynoMat2:TC,DynoMat2x2:mC,DynoMat2x3:VC,DynoMat2x4:ZC,DynoMat3:wB,DynoMat3x2:OC,DynoMat3x3:WC,DynoMat3x4:vC,DynoMat4:XC,DynoMat4x2:jC,DynoMat4x3:zC,DynoMat4x4:_C,DynoOutput:Z,DynoProgram:wQ,DynoProgramTemplate:Sg,DynoRemapIndex:VD,DynoSampler2D:AE,DynoSampler2DArray:gE,DynoSampler2DArrayShadow:wE,DynoSampler2DShadow:oE,DynoSampler3D:CE,DynoSamplerCube:DE,DynoSamplerCubeShadow:sE,DynoUint:rC,DynoUniform:x,DynoUsampler2D:EQ,DynoUsampler2DArray:WA,DynoUsampler3D:QE,DynoUsamplerCube:EE,DynoUvec2:dC,DynoUvec3:fC,DynoUvec4:PC,DynoValue:JI,DynoVec2:lC,DynoVec3:LI,DynoVec4:Ig,Equal:Yi,Exp:Ei,Exp2:ii,ExtendVec:UD,FaceForward:LD,Float:Oi,FloatBitsToInt:DD,FloatBitsToUint:oD,Floor:Ai,Fract:Bi,GreaterThan:Hi,GreaterThanEqual:ni,Gsplat:j,GsplatNormal:cC,GsplatToCovSplat:GC,Hash:ZD,Hash2:OD,Hash3:WD,Hash4:vD,HashFloat:XD,HashVec2:jD,HashVec3:zD,HashVec4:_D,IMod:vE,IVec2:ji,IVec3:zi,IVec4:_i,Int:Vi,IntBitsToFloat:wD,Inverse:qD,InverseSqrt:ai,IsInf:Si,IsNan:Fi,Length:SD,LessThan:Ui,LessThanEqual:Li,Log:Di,Log2:oi,Mat2:CD,Mat3:ED,Mat4:iD,Max:ti,Min:Gi,Mix:yi,Mod:XE,Modf:jE,Mul:OE,Neg:zE,Normalize:eD,NormalizedDepth:$D,Not:Ji,NotEqual:ri,NumCovSplats:sC,NumExtSplats:oC,NumPackedSplats:CC,Or:Mi,Outer:rD,OutputCovSplat:HC,OutputExtCovSplat:YC,OutputExtendedSplat:nC,OutputPackedSplat:LC,OutputRgba8:oB,PackHalf2x16:yD,PackSnorm2x16:aD,PackUnorm2x16:tD,PagedSplatTexCoord:RC,PcgHash:_A,PcgMix:gg,PcgNext:zA,Pow:Ci,ProjectH:JD,Radians:so,ReadCovSplat:aC,ReadExtSplat:wC,ReadPackedSplat:iC,ReadPackedSplatRange:DC,ReflectVec:HD,RefractVec:nD,Round:Qi,Select:qi,Shl:pi,Shr:fi,Sign:$E,SimpleCast:MA,Sin:Go,Sinh:So,Smoothstep:ki,SplatTexCoord:NC,Split:lD,SplitCovSplat:FC,SplitGsplat:tC,Sqr:wi,Sqrt:si,Step:ci,Sub:ZE,Swizzle:fD,TCovSplats:AC,TExtSplats:BB,TPackedSplats:BQ,Tan:ho,Tanh:Ro,TexelFetch:Do,Texture:io,TextureSize:Eo,TransformDir:Bo,TransformGsplat:kC,TransformPosition:Qo,TransformQuaternion:Co,Transpose:KD,TrinaryOp:PI,Trunc:gi,UVec2:$i,UVec3:AD,UVec4:ID,Uint:Zi,UintBitsToFloat:sD,UintToRgba8:kD,UnaryOp:r,UnpackHalf2x16:cD,UnpackSnorm2x16:GD,UnpackUnorm2x16:hD,Vec2:gD,Vec3:QD,Vec4:BD,Xor:ei,abs:Ea,acos:gt,acosh:ot,add:xA,all:pa,and:Ua,any:fa,arrayIndex:ZG,arrayLength:OG,asin:It,asinh:Dt,atan:Qt,atan2:Bt,atanh:wt,bool:Ta,bvec2:Za,bvec3:Oa,bvec4:Wa,ceil:oa,clamp:Na,combine:yI,combineCovSplat:iB,combineGsplat:BI,comment:VG,compMult:RG,compXor:ua,cos:$G,cosh:Et,cross:hG,debugColorHue:uG,defineCovSplat:HI,defineExtSplats:EB,defineGsplat:rA,defineGsplatNormal:yC,definePackedSplats:CQ,degrees:_G,determinant:JG,distance:tG,div:Vg,dot:FD,dyno:gB,dynoBlock:HA,dynoBool:Pw,dynoBvec2:mw,dynoBvec3:Ww,dynoBvec4:jw,dynoConst:AA,dynoDeclare:QB,dynoFloat:iI,dynoFor:mG,dynoIf:bG,dynoInt:Tw,dynoIsampler2D:Gs,dynoIsampler2DArray:ys,dynoIsampler3D:Fs,dynoIsamplerCube:Rs,dynoIvec2:Zw,dynoIvec3:Xw,dynoIvec4:_w,dynoLiteral:Wg,dynoMat2:As,dynoMat2x2:Is,dynoMat2x3:gs,dynoMat2x4:Qs,dynoMat3:Bs,dynoMat3x2:Cs,dynoMat3x3:Es,dynoMat3x4:is,dynoMat4:Ds,dynoMat4x2:os,dynoMat4x3:ws,dynoMat4x4:ss,dynoSampler2D:ts,dynoSampler2DArray:cs,dynoSampler2DArrayShadow:Js,dynoSampler2DShadow:es,dynoSampler3D:Ss,dynoSamplerCube:Ms,dynoSamplerCubeShadow:Us,dynoSwitch:TG,dynoUint:bw,dynoUsampler2D:as,dynoUsampler2DArray:hs,dynoUsampler3D:ks,dynoUsamplerCube:Ns,dynoUvec2:Vw,dynoUvec3:vw,dynoUvec4:zw,dynoVec2:Ow,dynoVec3:MI,dynoVec4:$w,equal:la,exp:Ga,exp2:ta,extendVec:SG,faceforward:yG,float:ui,floatBitsToInt:Ti,floatBitsToUint:QG,floor:Da,fract:Zg,greaterThan:qa,greaterThanEqual:Ni,gsplatNormal:KQ,gsplatToCovSplat:vg,hash:pD,hash2:uD,hash3:PD,hash4:bD,hashFloat:fG,hashVec2:pG,hashVec3:TD,hashVec4:bQ,imod:PQ,int:ma,intBitsToFloat:BG,inverse:UG,inversesqrt:Fa,isAllFloatType:UI,isBoolType:pI,isFloatType:ng,isInf:Ja,isIntType:qA,isMat2:YI,isMat3:rI,isMat4:KI,isMatFloatType:WB,isNan:ea,isScalarType:uI,isUintType:lA,isVector2Type:$I,isVector3Type:Ag,isVector4Type:Yg,isVectorType:Jw,ivec2:va,ivec3:Xa,ivec4:ja,length:GG,lessThan:Ka,lessThanEqual:da,literalNegOne:nw,literalOne:Hw,literalZero:Eg,log:ha,log2:ya,mat2:AG,mat3:IG,mat4:gG,max:TE,min:Sa,mix:mE,mod:bE,modf:Ca,mul:FA,neg:cB,normalize:Ng,normalizedDepth:mD,not:na,notEqual:xa,numCovSplats:Kw,numExtSplats:rw,numPackedSplats:Yw,numberAsFloat:$,numberAsInt:NA,numberAsUint:RA,or:La,outer:MG,outputCovSplat:MC,outputCovSplatDepth:UC,outputExtCovSplat:qQ,outputExtendedSplat:eC,outputPackedSplat:DB,outputRgba8:xw,outputSplatDepth:JC,packHalf2x16:wG,packSnorm2x16:EG,packUnorm2x16:DG,pagedSplatTexCoord:dQ,pcgHash:xG,pcgMix:qG,pcgNext:lG,pow:aa,projectH:FG,radians:zG,readCovSplat:dw,readExtSplat:QC,readPackedSplat:IC,readPackedSplatRange:gC,reflectVec:cG,refractVec:kG,remapIndex:dG,round:sa,sameSizeIvec:Lw,sameSizeUvec:jB,sameSizeVec:Uw,select:kB,shl:ra,shr:Ya,sign:ia,sin:TQ,sinh:Ct,smoothstep:Ma,splatTexCoord:CB,split:vI,splitCovSplat:Xg,splitGsplat:bA,sqr:ca,sqrt:ka,step:Ra,sub:EI,swizzle:NG,tan:At,tanh:it,texelFetch:XG,texture:vG,textureSize:WG,transformDir:go,transformGsplat:BC,transformPos:Io,transformQuat:PG,transpose:eG,trunc:wa,typeLiteral:zB,uint:Va,uintBitsToFloat:CG,uintToRgba8:aG,uniform:uw,unindent:GA,unindentLines:z,unpackHalf2x16:sG,unpackSnorm2x16:iG,unpackUnorm2x16:oG,uvec2:za,uvec3:_a,uvec4:$a,valType:BA,vec2:Pi,vec3:fI,vec4:bi,vectorDim:XB,vectorElementType:vB,xor:Ha},Symbol.toStringTag,{value:"Module"}));var at=`precision highp float; precision highp int; precision highp sampler2D; precision highp usampler2D; @@ -310,7 +238,7 @@ void main() { if ((index >= 0) && (index < targetCount)) { produceSplat(index); } -}`,Zh=`precision highp float; +}`,Gt=`precision highp float; precision highp int; precision highp sampler2D; precision highp usampler2D; @@ -350,7 +278,7 @@ void main() { if ((index >= 0) && (index < targetCount)) { produceSplat(index); } -}`,Vh=`precision highp float; +}`,tt=`precision highp float; precision highp int; precision highp sampler2D; precision highp usampler2D; @@ -392,7 +320,7 @@ void main() { if ((index >= 0) && (index < targetCount)) { produceSplat(index); } -}`,Xh=`precision highp float; +}`,ht=`precision highp float; precision highp int; precision highp sampler2D; precision highp usampler2D; @@ -427,317 +355,7 @@ void main() { } else { target = vec4(0.0, 0.0, 0.0, 0.0); } -}`,Wh=`precision highp float; -precision highp int; - -#include - -uniform float near; -uniform float far; -uniform bool encodeLinear; -uniform float time; -uniform bool debugFlag; -uniform float maxStdDev; -uniform float minAlpha; -uniform bool stochastic; -uniform bool disableFalloff; -uniform float falloff; - -uniform bool splatTexEnable; -uniform sampler3D splatTexture; -uniform mat2 splatTexMul; -uniform vec2 splatTexAdd; -uniform float splatTexNear; -uniform float splatTexFar; -uniform float splatTexMid; - -out vec4 fragColor; - -in vec4 vRgba; -in vec2 vSplatUv; -in vec3 vNdc; -flat in uint vSplatIndex; - -void main() { - vec4 rgba = vRgba; - - float z = dot(vSplatUv, vSplatUv); - if (!splatTexEnable) { - if (z > (maxStdDev * maxStdDev)) { - discard; - } - } else { - vec2 uv = splatTexMul * vSplatUv + splatTexAdd; - float ndcZ = vNdc.z; - float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near)); - float clampedFar = max(splatTexFar, splatTexNear); - float clampedDepth = clamp(depth, splatTexNear, clampedFar); - float logDepth = log2(clampedDepth + 1.0); - float logNear = log2(splatTexNear + 1.0); - float logFar = log2(clampedFar + 1.0); - - float texZ; - if (splatTexMid > 0.0) { - float clampedMid = clamp(splatTexMid, splatTexNear, clampedFar); - float logMid = log2(clampedMid + 1.0); - texZ = (clampedDepth <= clampedMid) ? - (0.5 * ((logDepth - logNear) / (logMid - logNear))) : - (0.5 * ((logDepth - logMid) / (logFar - logMid)) + 0.5); - } else { - texZ = (logDepth - logNear) / (logFar - logNear); - } - - vec4 modulate = texture(splatTexture, vec3(uv, 1.0 - texZ)); - rgba *= modulate; - } - - rgba.a *= mix(1.0, exp(-0.5 * z), falloff); - - if (rgba.a < minAlpha) { - discard; - } - if (encodeLinear) { - rgba.rgb = srgbToLinear(rgba.rgb); - } - - if (stochastic) { - const bool STEADY = false; - uint uTime = STEADY ? 0u : floatBitsToUint(time); - uvec2 coord = uvec2(gl_FragCoord.xy); - uint state = uTime + 0x9e3779b9u * coord.x + 0x85ebca6bu * coord.y + 0xc2b2ae35u * uint(vSplatIndex); - state = state * 747796405u + 2891336453u; - uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u; - hash = (hash >> 22u) ^ hash; - float rand = float(hash) / 4294967296.0; - if (rand < rgba.a) { - fragColor = vec4(rgba.rgb, 1.0); - } else { - discard; - } - } else { - #ifdef PREMULTIPLIED_ALPHA - fragColor = vec4(rgba.rgb * rgba.a, rgba.a); - #else - fragColor = rgba; - #endif - } -}`,jh=`precision highp float; -precision highp int; -precision highp usampler2DArray; - -#include - -attribute uint splatIndex; - -out vec4 vRgba; -out vec2 vSplatUv; -out vec3 vNdc; -flat out uint vSplatIndex; - -uniform vec2 renderSize; -uniform uint numSplats; -uniform vec4 renderToViewQuat; -uniform vec3 renderToViewPos; -uniform float maxStdDev; -uniform float minPixelRadius; -uniform float maxPixelRadius; -uniform float time; -uniform float deltaTime; -uniform bool debugFlag; -uniform float minAlpha; -uniform bool stochastic; -uniform bool enable2DGS; -uniform float blurAmount; -uniform float preBlurAmount; -uniform float focalDistance; -uniform float apertureAngle; -uniform float clipXY; -uniform float focalAdjustment; - -uniform usampler2DArray packedSplats; -uniform vec4 rgbMinMaxLnScaleMinMax; - -void main() { - - gl_Position = vec4(0.0, 0.0, 2.0, 1.0); - - if (uint(gl_InstanceID) >= numSplats) { - return; - } - - ivec3 texCoord; - if (stochastic) { - texCoord = ivec3( - uint(gl_InstanceID) & SPLAT_TEX_WIDTH_MASK, - (uint(gl_InstanceID) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK, - (uint(gl_InstanceID) >> SPLAT_TEX_LAYER_BITS) - ); - } else { - if (splatIndex == 0xffffffffu) { - - return; - } - texCoord = ivec3( - splatIndex & SPLAT_TEX_WIDTH_MASK, - (splatIndex >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK, - splatIndex >> SPLAT_TEX_LAYER_BITS - ); - } - uvec4 packedData = texelFetch(packedSplats, texCoord, 0); - - vec3 center, scales; - vec4 quaternion, rgba; - unpackSplatEncoding(packedData, center, scales, quaternion, rgba, rgbMinMaxLnScaleMinMax); - - if (rgba.a < minAlpha) { - return; - } - bvec3 zeroScales = equal(scales, vec3(0.0)); - if (all(zeroScales)) { - return; - } - - - vec3 viewCenter = quatVec(renderToViewQuat, center) + renderToViewPos; - - - if (viewCenter.z >= 0.0) { - return; - } - - - vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0); - - - if (abs(clipCenter.z) >= clipCenter.w) { - return; - } - - - float clip = clipXY * clipCenter.w; - if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) { - return; - } - - - vSplatIndex = splatIndex; - - - vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion); - - if (enable2DGS && any(zeroScales)) { - vRgba = rgba; - vSplatUv = position.xy * maxStdDev; - - vec3 offset; - if (zeroScales.z) { - offset = vec3(vSplatUv.xy * scales.xy, 0.0); - } else if (zeroScales.y) { - offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z); - } else { - offset = vec3(0.0, vSplatUv.xy * scales.yz); - } - - vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset); - gl_Position = projectionMatrix * vec4(viewPos, 1.0); - vNdc = gl_Position.xyz / gl_Position.w; - return; - } - - - vec3 ndcCenter = clipCenter.xyz / clipCenter.w; - - - mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion); - mat3 cov3D = RS * transpose(RS); - - - vec2 scaledRenderSize = renderSize * focalAdjustment; - vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]); - - mat3 J; - if(isOrthographic) { - J = mat3( - focal.x, 0.0, 0.0, - 0.0, focal.y, 0.0, - 0.0, 0.0, 0.0 - ); - } else { - float invZ = 1.0 / viewCenter.z; - vec2 J1 = focal * invZ; - vec2 J2 = -(J1 * viewCenter.xy) * invZ; - J = mat3( - J1.x, 0.0, J2.x, - 0.0, J1.y, J2.y, - 0.0, 0.0, 0.0 - ); - } - - - - - - - - - mat3 cov2D = transpose(J) * cov3D * J; - float a = cov2D[0][0]; - float d = cov2D[1][1]; - float b = cov2D[0][1]; - - - a += preBlurAmount; - d += preBlurAmount; - - float fullBlurAmount = blurAmount; - if ((focalDistance > 0.0) && (apertureAngle > 0.0)) { - float focusRadius = maxPixelRadius; - if (viewCenter.z < 0.0) { - float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z); - float apertureRadius = focal.x * tan(0.5 * apertureAngle); - focusRadius = focusBlur * apertureRadius; - } - fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius)); - } - - - float detOrig = a * d - b * b; - a += fullBlurAmount; - d += fullBlurAmount; - float det = a * d - b * b; - - - float blurAdjust = sqrt(max(0.0, detOrig / det)); - rgba.a *= blurAdjust; - if (rgba.a < minAlpha) { - return; - } - - - float eigenAvg = 0.5 * (a + d); - float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det)); - float eigen1 = eigenAvg + eigenDelta; - float eigen2 = eigenAvg - eigenDelta; - - vec2 eigenVec1 = normalize(vec2((abs(b) < 0.001) ? 1.0 : b, eigen1 - a)); - vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x); - - float scale1 = min(maxPixelRadius, maxStdDev * sqrt(eigen1)); - float scale2 = min(maxPixelRadius, maxStdDev * sqrt(eigen2)); - if (scale1 < minPixelRadius && scale2 < minPixelRadius) { - return; - } - - - vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2; - vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset; - vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z); - - vRgba = rgba; - vSplatUv = position.xy * maxStdDev; - vNdc = ndc; - gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw); -}`,vh=`const float LN_SCALE_MIN = -12.0; +}`,yt=`const float LN_SCALE_MIN = -12.0; const float LN_SCALE_MAX = 9.0; const uint SPLAT_TEX_WIDTH_BITS = 11u; @@ -1261,7 +879,7 @@ vec3 debugColorHue(uint i) { vec3 rgb = clamp(abs(mod(hue*6.0 + vec3(0.0,4.0,2.0), 6.0) - 3.0) - 1.0, 0.0, 1.0); return mix(vec3(1.0), rgb, 0.85); -}`,zh=`precision highp float; +}`,ct=`precision highp float; precision highp int; #include @@ -1326,7 +944,7 @@ void main() { #endif #include -}`,_h=`precision highp float; +}`,kt=`precision highp float; precision highp int; precision highp usampler2DArray; @@ -1593,18 +1211,7 @@ void main() { gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw); #include -}`;let eQ=null;function gg(){return eQ||(G.ShaderChunk.splatDefines=vh,eQ={oldSplatVertex:jh,oldSplatFragment:Wh,splatVertex:_h,splatFragment:zh,computeVec4Template:Xh,computeUvec4Vec4Template:Zh,computeUvec4x2Vec4Template:Vh,computeUvec4Template:mh}),eQ}const zA=class zA{constructor({renderer:A}={}){this.renderer=A,this.capacity=0,this.count=0}dispose(){this.target&&(this.target.dispose(),this.target=void 0)}static ensureBuffer(A,I){const B=Math.ceil(Math.max(1,A)/P)*P*4;if(I.byteLength>=B)return I;const C=new ArrayBuffer(B);if(I instanceof ArrayBuffer)return C;const E=I.constructor;return new E(C)}ensureBuffer(A,I){return zA.ensureBuffer(A,I)}ensureCapacity(A){const{width:I,height:g,depth:B,maxSplats:C}=BA(A);(!this.target||C>this.capacity)&&(this.dispose(),this.capacity=C,this.target=new G.WebGLArrayRenderTarget(I,g,B,{depthBuffer:!1,stencilBuffer:!1,generateMipmaps:!1,magFilter:G.NearestFilter,minFilter:G.NearestFilter}),this.target.texture.format=G.RGBAFormat,this.target.texture.type=G.UnsignedByteType,this.target.texture.internalFormat="RGBA8",this.target.scissorTest=!0)}prepareProgramMaterial(A){let I=zA.readbackProgram.get(A);if(!I){const B=cA({index:"int"},{rgba8:"vec4"},({index:C})=>(A.inputs.index=C,{rgba8:new FB({rgba8:A.outputs.rgba8})}));zA.programTemplate||(zA.programTemplate=new Jg(gg().computeVec4Template)),I=new yQ({graph:B,inputs:{index:"_index"},outputs:{rgba8:"target"},template:zA.programTemplate}),Object.assign(I.uniforms,{targetLayer:{value:0},targetBase:{value:0},targetCount:{value:0}}),zA.readbackProgram.set(A,I)}const g=I.prepareMaterial();return zA.fullScreenQuad.material=g,{program:I,material:g}}saveRenderState(A){return{target:A.getRenderTarget(),xrEnabled:A.xr.enabled,autoClear:A.autoClear}}resetRenderState(A,I){A.setRenderTarget(I.target),A.xr.enabled=I.xrEnabled,A.autoClear=I.autoClear}process({count:A,material:I}){const g=this.renderer;if(!g)throw new Error("No renderer");if(!this.target)throw new Error("No target");const B=P*WA;I.uniforms.targetBase.value=0,I.uniforms.targetCount.value=A;let C=0;for(;CA)}render({reader:A,count:I,renderer:g}){if(this.renderer=g||this.renderer,!this.renderer)throw new Error("No renderer");this.ensureCapacity(I);const{program:B,material:C}=this.prepareProgramMaterial(A);B.update();const E=this.saveRenderState(this.renderer);this.process({count:I,material:C}),this.resetRenderState(this.renderer,E)}async readback({readback:A}){if(!this.renderer)throw new Error("No renderer");const I=this.saveRenderState(this.renderer),g=this.read({readback:A});return this.resetRenderState(this.renderer,I),g}async renderReadback({reader:A,count:I,renderer:g,readback:B}){if(this.renderer=g||this.renderer,!this.renderer)throw new Error("No renderer");this.ensureCapacity(I);const{program:C,material:E}=this.prepareProgramMaterial(A);C.update();const D=this.saveRenderState(this.renderer);this.process({count:I,material:E});const i=this.read({readback:B});return this.resetRenderState(this.renderer,D),i}getTexture(){var A;return(A=this.target)==null?void 0:A.texture}};zA.programTemplate=null,zA.readbackProgram=new WeakMap,zA.fullScreenQuad=new AB.FullScreenQuad(new G.RawShaderMaterial({visible:!1}));let TI=zA;const dA=class dA{constructor(A={}){if(this.capacity=0,this.count=0,this.array=null,this.readback=null,this.source=null,this.needsUpdate=!0,this.dyno=new x({key:"rgbaArray",type:MB,globals:()=>[Tw],value:{texture:dA.getEmpty(),count:0},update:I=>(I.texture=this.getTexture(),I.count=this.count,I)}),A.array){this.array=A.array;const I=Math.floor(this.array.length/4);this.capacity=Math.ceil(I/P)*P,this.capacity>I&&(this.array=new Uint8Array(this.capacity*4),this.array.set(A.array)),this.count=Math.min(I,A.count??Number.POSITIVE_INFINITY)}else this.capacity=A.capacity??0,this.count=0}dispose(){this.readback&&(this.readback.dispose(),this.readback=null),this.source&&(this.source.dispose(),this.source=null)}ensureCapacity(A){var I;if(!this.array||A>(((I=this.array)==null?void 0:I.length)??0)/4){this.capacity=BA(A).maxSplats;const g=new Uint8Array(this.capacity*4);this.array&&g.set(this.array),this.array=g}return this.array}getTexture(){var I;let A=(I=this.readback)==null?void 0:I.getTexture();return(this.source||this.array)&&(A=this.maybeUpdateSource()),A??dA.getEmpty()}maybeUpdateSource(){if(!this.array)throw new Error("No array");if(this.needsUpdate||!this.source){if(this.needsUpdate=!1,this.source){const{width:A,height:I,depth:g}=this.source.image;this.capacity!==A*I*g&&(this.source.dispose(),this.source=null)}if(this.source)this.array.buffer!==this.source.image.data.buffer&&(this.source.image.data=new Uint8Array(this.array.buffer));else{const{width:A,height:I,depth:g}=BA(this.capacity);this.source=new G.DataArrayTexture(this.array,A,I,g),this.source.format=G.RGBAFormat,this.source.type=G.UnsignedByteType,this.source.internalFormat="RGBA8",this.source.needsUpdate=!0}this.source.needsUpdate=!0}return this.source}render({reader:A,count:I,renderer:g}){this.readback||(this.readback=new TI({renderer:g})),this.readback.render({reader:A,count:I,renderer:g}),this.capacity=this.readback.capacity,this.count=this.readback.count}fromPackedSplats({packedSplats:A,base:I,count:g,renderer:B}){const{dynoSplats:C,dynoBase:E,dynoCount:D,reader:i}=dA.makeDynos();return C.packedSplats=A,E.value=I,D.value=g,this.render({reader:i,count:g,renderer:B}),this}async read(){if(!this.readback)throw new Error("No readback");return(!this.array||this.array.length{if(!C)throw new Error("index is undefined");C=xA(C,I);const E=TC(A,C,I,g);return{rgba8:OA(E).outputs.rgba}});dA.dynos={dynoSplats:A,dynoBase:I,dynoCount:g,reader:B}}return dA.dynos}};dA.emptySource=null,dA.dynos=null;let IQ=dA;const MB={type:"RgbaArray"},Tw=oA(` - struct RgbaArray { - sampler2DArray texture; - int count; - }; -`);function $h(Q,A){return new d({inTypes:{rgba:MB,index:"int"},outTypes:{rgba:"vec4"},inputs:{rgba:Q,index:A},globals:()=>[Tw],statements:({inputs:g,outputs:B})=>z(` - if ((${g.index} >= 0) && (${g.index} < ${g.rgba}.count)) { - ${B.rgba} = texelFetch(${g.rgba}.texture, splatTexCoord(${g.index}), 0); - } else { - ${B.rgba} = vec4(0.0, 0.0, 0.0, 0.0); - } - `)}).outputs.rgba}var Ow=(Q=>(Q.ALL="all",Q.PLANE="plane",Q.SPHERE="sphere",Q.BOX="box",Q.ELLIPSOID="ellipsoid",Q.CYLINDER="cylinder",Q.CAPSULE="capsule",Q.INFINITE_CONE="infinite_cone",Q))(Ow||{});function AR(Q){switch(Q){case"all":return 0;case"plane":return 1;case"sphere":return 2;case"box":return 3;case"ellipsoid":return 4;case"cylinder":return 5;case"capsule":return 6;case"infinite_cone":return 7;default:throw new Error(`Unknown SDF type: ${Q}`)}}var mw=(Q=>(Q.MULTIPLY="multiply",Q.SET_RGB="set_rgb",Q.ADD_RGBA="add_rgba",Q))(mw||{});function IR(Q){switch(Q){case"multiply":return 0;case"set_rgb":return 1;case"add_rgba":return 2;default:throw new Error(`Unknown blend mode: ${Q}`)}}class Zw extends G.Object3D{constructor(A={}){super();const{type:I,invert:g,opacity:B,color:C,displace:E,radius:D}=A;this.type=I??"sphere",this.invert=g??!1,this.opacity=B??1,this.color=C??new G.Color(1,1,1),this.displace=E??new G.Vector3(0,0,0),this.radius=D??0}}const CQ=class CQ extends G.Object3D{constructor(A={}){const{name:I,rgbaBlendMode:g="multiply",sdfSmooth:B=0,softEdge:C=0,invert:E=!1,sdfs:D=null}=A;super(),this.rgbaBlendMode=g,this.sdfSmooth=B,this.softEdge=C,this.invert=E,this.sdfs=D,this.ordering=CQ.nextOrdering++,this.name=I??`Edit ${this.ordering}`}addSdf(A){this.sdfs==null&&(this.sdfs=[]),this.sdfs.includes(A)||this.sdfs.push(A)}removeSdf(A){this.sdfs!=null&&(this.sdfs=this.sdfs.filter(I=>I!==A))}};CQ.nextOrdering=1;let Qg=CQ;class Vw{constructor({maxSdfs:A,maxEdits:I}){this.maxSdfs=Math.max(16,A??0),this.numSdfs=0,this.sdfData=new Uint32Array(this.maxSdfs*8*4),this.sdfFloatData=new Float32Array(this.sdfData.buffer),this.sdfTexture=this.newSdfTexture(this.sdfData,this.maxSdfs),this.dynoSdfArray=new x({key:"sdfArray",type:JB,globals:()=>[UB],value:{numSdfs:0,sdfTexture:this.sdfTexture},update:g=>(g.numSdfs=this.numSdfs,g.sdfTexture=this.sdfTexture,g)}),this.maxEdits=Math.max(16,I??0),this.numEdits=0,this.editData=new Uint32Array(this.maxEdits*4),this.editFloatData=new Float32Array(this.editData.buffer),this.dynoNumEdits=new DI({value:0}),this.dynoEdits=this.newEdits(this.editData,this.maxEdits)}newSdfTexture(A,I){const g=new G.DataTexture(A,8,I,G.RGBAIntegerFormat,G.UnsignedIntType);return g.internalFormat="RGBA32UI",g.needsUpdate=!0,g}newEdits(A,I){return new x({key:"edits",type:"uvec4",count:I,globals:()=>[tB],value:A})}ensureCapacity({maxSdfs:A,maxEdits:I}){let g=!1;return A>this.sdfTexture.image.height&&(this.sdfTexture.dispose(),this.maxSdfs=Math.max(this.maxSdfs*2,A),this.sdfData=new Uint32Array(this.maxSdfs*8*4),this.sdfFloatData=new Float32Array(this.sdfData.buffer),this.sdfTexture=this.newSdfTexture(this.sdfData,this.maxSdfs)),I>(this.dynoEdits.count??0)&&(this.maxEdits=Math.max(this.maxEdits*2,I),this.editData=new Uint32Array(this.maxEdits*4),this.editFloatData=new Float32Array(this.editData.buffer),this.dynoEdits=this.newEdits(this.editData,this.maxEdits),g=!0),g}updateEditData(A,I){const g=this.editData[A]!==I;return this.editData[A]=I,g}updateEditFloatData(A,I){XI[0]=I;const g=this.editFloatData[A]!==XI[0];return g&&(this.editFloatData[A]=XI[0]),g}encodeEdit(A,{sdfFirst:I,sdfCount:g,invert:B,rgbaBlendMode:C,softEdge:E,sdfSmooth:D}){const i=A*4;let w=!1;return w=this.updateEditData(i+0,C|(B?256:0))||w,w=this.updateEditData(i+1,I|g<<16)||w,w=this.updateEditFloatData(i+2,E)||w,w=this.updateEditFloatData(i+3,D)||w,w}updateSdfData(A,I){const g=this.sdfData[A]!==I;return this.sdfData[A]=I,g}updateSdfFloatData(A,I){XI[0]=I;const g=this.sdfFloatData[A]!==XI[0];return g&&(this.sdfFloatData[A]=XI[0]),g}encodeSdf(A,{sdfType:I,invert:g,center:B,quaternion:C,scale:E,sizes:D},i){const w=A*32,s=I|(g?256:0);let o=!1;o=this.updateSdfFloatData(w+0,(B==null?void 0:B.x)??0)||o,o=this.updateSdfFloatData(w+1,(B==null?void 0:B.y)??0)||o,o=this.updateSdfFloatData(w+2,(B==null?void 0:B.z)??0)||o,o=this.updateSdfData(w+3,s)||o,o=this.updateSdfFloatData(w+4,(C==null?void 0:C.x)??0)||o,o=this.updateSdfFloatData(w+5,(C==null?void 0:C.y)??0)||o,o=this.updateSdfFloatData(w+6,(C==null?void 0:C.z)??0)||o,o=this.updateSdfFloatData(w+7,(C==null?void 0:C.w)??0)||o,o=this.updateSdfFloatData(w+8,(E==null?void 0:E.x)??0)||o,o=this.updateSdfFloatData(w+9,(E==null?void 0:E.y)??0)||o,o=this.updateSdfFloatData(w+10,(E==null?void 0:E.z)??0)||o,o=this.updateSdfData(w+11,0)||o,o=this.updateSdfFloatData(w+12,(D==null?void 0:D.x)??0)||o,o=this.updateSdfFloatData(w+13,(D==null?void 0:D.y)??0)||o,o=this.updateSdfFloatData(w+14,(D==null?void 0:D.z)??0)||o,o=this.updateSdfFloatData(w+15,(D==null?void 0:D.w)??0)||o;const y=Math.min(4,i.length);for(let h=0;ho+y.length,0),g=this.ensureCapacity({maxEdits:A.length,maxSdfs:I}),B=[new G.Vector4,new G.Vector4],C=new G.Vector3,E=new G.Quaternion,D=new G.Vector3,i=new G.Vector4;let w=0,s=g;A.length!==this.dynoNumEdits.value&&(this.dynoNumEdits.value=A.length,this.numEdits=A.length,s=!0);for(const[o,{edit:y,sdfs:h}]of A.entries()){s=this.encodeEdit(o,{sdfFirst:w,sdfCount:h.length,invert:y.invert,rgbaBlendMode:IR(y.rgbaBlendMode),softEdge:y.softEdge,sdfSmooth:y.sdfSmooth})||s;let k=!1;for(const R of h)i.set(R.scale.x,R.scale.y,R.scale.z,R.radius),R.scale.setScalar(1),R.updateMatrixWorld(),R.matrixWorld.clone().invert().decompose(C,E,D),R.scale.set(i.x,i.y,i.z),R.updateMatrixWorld(),B[0].set(R.color.r,R.color.g,R.color.b,R.opacity),B[1].set(R.displace.x,R.displace.y,R.displace.z,1),k=this.encodeSdf(w,{sdfType:AR(R.type),invert:R.invert,center:C,quaternion:E,scale:D,sizes:i},B)||k,w+=1;this.numSdfs=w,k&&(this.sdfTexture.needsUpdate=!0),s||(s=k)}return{updated:s,dynoUpdated:g}}modify(A){return gR(A,this.dynoSdfArray,this.dynoNumEdits,this.dynoEdits)}modifyCov(A){return QR(A,this.dynoSdfArray,this.dynoNumEdits,this.dynoEdits)}}const JB={type:"SdfArray"},UB=oA(` +}`;let JQ=null;function Rg(){return JQ||(a.ShaderChunk.splatDefines=yt,JQ={splatVertex:kt,splatFragment:ct,computeVec4Template:ht,computeUvec4Vec4Template:Gt,computeUvec4x2Vec4Template:tt,computeUvec4Template:at}),JQ}const XA=class XA{constructor({renderer:A}={}){this.renderer=A,this.capacity=0,this.count=0}dispose(){this.target&&(this.target.dispose(),this.target=void 0)}static ensureBuffer(A,I){const B=Math.ceil(Math.max(1,A)/P)*P*4;if(I.byteLength>=B)return I;const C=new ArrayBuffer(B);if(I instanceof ArrayBuffer)return C;const E=I.constructor;return new E(C)}ensureBuffer(A,I){return XA.ensureBuffer(A,I)}ensureCapacity(A){const{width:I,height:g,depth:B,maxSplats:C}=EA(A);(!this.target||C>this.capacity)&&(this.dispose(),this.capacity=C,this.target=new a.WebGLArrayRenderTarget(I,g,B,{depthBuffer:!1,stencilBuffer:!1,generateMipmaps:!1,magFilter:a.NearestFilter,minFilter:a.NearestFilter}),this.target.texture.format=a.RGBAFormat,this.target.texture.type=a.UnsignedByteType,this.target.texture.internalFormat="RGBA8",this.target.scissorTest=!0)}prepareProgramMaterial(A){let I=XA.readbackProgram.get(A);if(!I){const B=HA({index:"int"},{rgba8:"vec4"},({index:C})=>(A.inputs.index=C,{rgba8:new oB({rgba8:A.outputs.rgba8})}));XA.programTemplate||(XA.programTemplate=new Sg(Rg().computeVec4Template)),I=new wQ({graph:B,inputs:{index:"_index"},outputs:{rgba8:"target"},template:XA.programTemplate}),Object.assign(I.uniforms,{targetLayer:{value:0},targetBase:{value:0},targetCount:{value:0}}),XA.readbackProgram.set(A,I)}const g=I.prepareMaterial();return XA.fullScreenQuad.material=g,{program:I,material:g}}saveRenderState(A){return{target:A.getRenderTarget(),xrEnabled:A.xr.enabled,autoClear:A.autoClear}}resetRenderState(A,I){A.setRenderTarget(I.target),A.xr.enabled=I.xrEnabled,A.autoClear=I.autoClear}process({count:A,material:I}){const g=this.renderer;if(!g)throw new Error("No renderer");if(!this.target)throw new Error("No target");const B=P*OA;I.uniforms.targetBase.value=0,I.uniforms.targetCount.value=A;let C=0;for(;CA)}render({reader:A,count:I,renderer:g}){if(this.renderer=g||this.renderer,!this.renderer)throw new Error("No renderer");this.ensureCapacity(I);const{program:B,material:C}=this.prepareProgramMaterial(A);B.update();const E=this.saveRenderState(this.renderer);this.process({count:I,material:C}),this.resetRenderState(this.renderer,E)}async readback({readback:A}){if(!this.renderer)throw new Error("No renderer");const I=this.saveRenderState(this.renderer),g=this.read({readback:A});return this.resetRenderState(this.renderer,I),g}async renderReadback({reader:A,count:I,renderer:g,readback:B}){if(this.renderer=g||this.renderer,!this.renderer)throw new Error("No renderer");this.ensureCapacity(I);const{program:C,material:E}=this.prepareProgramMaterial(A);C.update();const i=this.saveRenderState(this.renderer);this.process({count:I,material:E});const o=this.read({readback:B});return this.resetRenderState(this.renderer,i),o}getTexture(){var A;return(A=this.target)==null?void 0:A.texture}};XA.programTemplate=null,XA.readbackProgram=new WeakMap,XA.fullScreenQuad=new _Q.FullScreenQuad(new a.RawShaderMaterial({visible:!1}));let zI=XA;var Uo=(Q=>(Q.ALL="all",Q.PLANE="plane",Q.SPHERE="sphere",Q.BOX="box",Q.ELLIPSOID="ellipsoid",Q.CYLINDER="cylinder",Q.CAPSULE="capsule",Q.INFINITE_CONE="infinite_cone",Q))(Uo||{});function Ft(Q){switch(Q){case"all":return 0;case"plane":return 1;case"sphere":return 2;case"box":return 3;case"ellipsoid":return 4;case"cylinder":return 5;case"capsule":return 6;case"infinite_cone":return 7;default:throw new Error(`Unknown SDF type: ${Q}`)}}var Lo=(Q=>(Q.MULTIPLY="multiply",Q.SET_RGB="set_rgb",Q.ADD_RGBA="add_rgba",Q))(Lo||{});function St(Q){switch(Q){case"multiply":return 0;case"set_rgb":return 1;case"add_rgba":return 2;default:throw new Error(`Unknown blend mode: ${Q}`)}}class Ho extends a.Object3D{constructor(A={}){super();const{type:I,invert:g,opacity:B,color:C,displace:E,radius:i}=A;this.type=I??"sphere",this.invert=g??!1,this.opacity=B??1,this.color=C??new a.Color(1,1,1),this.displace=E??new a.Vector3(0,0,0),this.radius=i??0}}const IQ=class IQ extends a.Object3D{constructor(A={}){const{name:I,rgbaBlendMode:g="multiply",sdfSmooth:B=0,softEdge:C=0,invert:E=!1,sdfs:i=null}=A;super(),this.rgbaBlendMode=g,this.sdfSmooth=B,this.softEdge=C,this.invert=E,this.sdfs=i,this.ordering=IQ.nextOrdering++,this.name=I??`Edit ${this.ordering}`}addSdf(A){this.sdfs==null&&(this.sdfs=[]),this.sdfs.includes(A)||this.sdfs.push(A)}removeSdf(A){this.sdfs!=null&&(this.sdfs=this.sdfs.filter(I=>I!==A))}};IQ.nextOrdering=1;let Mg=IQ;class no{constructor({maxSdfs:A,maxEdits:I}){this.maxSdfs=Math.max(16,A??0),this.numSdfs=0,this.sdfData=new Uint32Array(this.maxSdfs*8*4),this.sdfFloatData=new Float32Array(this.sdfData.buffer),this.sdfTexture=this.newSdfTexture(this.sdfData,this.maxSdfs),this.dynoSdfArray=new x({key:"sdfArray",type:FB,globals:()=>[SB],value:{numSdfs:0,sdfTexture:this.sdfTexture},update:g=>(g.numSdfs=this.numSdfs,g.sdfTexture=this.sdfTexture,g)}),this.maxEdits=Math.max(16,I??0),this.numEdits=0,this.editData=new Uint32Array(this.maxEdits*4),this.editFloatData=new Float32Array(this.editData.buffer),this.dynoNumEdits=new CI({value:0}),this.dynoEdits=this.newEdits(this.editData,this.maxEdits)}newSdfTexture(A,I){const g=new a.DataTexture(A,8,I,a.RGBAIntegerFormat,a.UnsignedIntType);return g.internalFormat="RGBA32UI",g.needsUpdate=!0,g}newEdits(A,I){return new x({key:"edits",type:"uvec4",count:I,globals:()=>[NB],value:A})}ensureCapacity({maxSdfs:A,maxEdits:I}){let g=!1;return A>this.sdfTexture.image.height&&(this.sdfTexture.dispose(),this.maxSdfs=Math.max(this.maxSdfs*2,A),this.sdfData=new Uint32Array(this.maxSdfs*8*4),this.sdfFloatData=new Float32Array(this.sdfData.buffer),this.sdfTexture=this.newSdfTexture(this.sdfData,this.maxSdfs)),I>(this.dynoEdits.count??0)&&(this.maxEdits=Math.max(this.maxEdits*2,I),this.editData=new Uint32Array(this.maxEdits*4),this.editFloatData=new Float32Array(this.editData.buffer),this.dynoEdits=this.newEdits(this.editData,this.maxEdits),g=!0),g}updateEditData(A,I){const g=this.editData[A]!==I;return this.editData[A]=I,g}updateEditFloatData(A,I){bI[0]=I;const g=this.editFloatData[A]!==bI[0];return g&&(this.editFloatData[A]=bI[0]),g}encodeEdit(A,{sdfFirst:I,sdfCount:g,invert:B,rgbaBlendMode:C,softEdge:E,sdfSmooth:i}){const o=A*4;let D=!1;return D=this.updateEditData(o+0,C|(B?256:0))||D,D=this.updateEditData(o+1,I|g<<16)||D,D=this.updateEditFloatData(o+2,E)||D,D=this.updateEditFloatData(o+3,i)||D,D}updateSdfData(A,I){const g=this.sdfData[A]!==I;return this.sdfData[A]=I,g}updateSdfFloatData(A,I){bI[0]=I;const g=this.sdfFloatData[A]!==bI[0];return g&&(this.sdfFloatData[A]=bI[0]),g}encodeSdf(A,{sdfType:I,invert:g,center:B,quaternion:C,scale:E,sizes:i},o){const D=A*32,s=I|(g?256:0);let w=!1;w=this.updateSdfFloatData(D+0,(B==null?void 0:B.x)??0)||w,w=this.updateSdfFloatData(D+1,(B==null?void 0:B.y)??0)||w,w=this.updateSdfFloatData(D+2,(B==null?void 0:B.z)??0)||w,w=this.updateSdfData(D+3,s)||w,w=this.updateSdfFloatData(D+4,(C==null?void 0:C.x)??0)||w,w=this.updateSdfFloatData(D+5,(C==null?void 0:C.y)??0)||w,w=this.updateSdfFloatData(D+6,(C==null?void 0:C.z)??0)||w,w=this.updateSdfFloatData(D+7,(C==null?void 0:C.w)??0)||w,w=this.updateSdfFloatData(D+8,(E==null?void 0:E.x)??0)||w,w=this.updateSdfFloatData(D+9,(E==null?void 0:E.y)??0)||w,w=this.updateSdfFloatData(D+10,(E==null?void 0:E.z)??0)||w,w=this.updateSdfData(D+11,0)||w,w=this.updateSdfFloatData(D+12,(i==null?void 0:i.x)??0)||w,w=this.updateSdfFloatData(D+13,(i==null?void 0:i.y)??0)||w,w=this.updateSdfFloatData(D+14,(i==null?void 0:i.z)??0)||w,w=this.updateSdfFloatData(D+15,(i==null?void 0:i.w)??0)||w;const G=Math.min(4,o.length);for(let t=0;tw+G.length,0),g=this.ensureCapacity({maxEdits:A.length,maxSdfs:I}),B=[new a.Vector4,new a.Vector4],C=new a.Vector3,E=new a.Quaternion,i=new a.Vector3,o=new a.Vector4;let D=0,s=g;A.length!==this.dynoNumEdits.value&&(this.dynoNumEdits.value=A.length,this.numEdits=A.length,s=!0);for(const[w,{edit:G,sdfs:t}]of A.entries()){s=this.encodeEdit(w,{sdfFirst:D,sdfCount:t.length,invert:G.invert,rgbaBlendMode:St(G.rgbaBlendMode),softEdge:G.softEdge,sdfSmooth:G.sdfSmooth})||s;let c=!1;for(const h of t)o.set(h.scale.x,h.scale.y,h.scale.z,h.radius),h.scale.setScalar(1),h.updateMatrixWorld(),h.matrixWorld.clone().invert().decompose(C,E,i),h.scale.set(o.x,o.y,o.z),h.updateMatrixWorld(),B[0].set(h.color.r,h.color.g,h.color.b,h.opacity),B[1].set(h.displace.x,h.displace.y,h.displace.z,1),c=this.encodeSdf(D,{sdfType:Ft(h.type),invert:h.invert,center:C,quaternion:E,scale:i,sizes:o},B)||c,D+=1;this.numSdfs=D,c&&(this.sdfTexture.needsUpdate=!0),s||(s=c)}return{updated:s,dynoUpdated:g}}modify(A){return Nt(A,this.dynoSdfArray,this.dynoNumEdits,this.dynoEdits)}modifyCov(A){return Rt(A,this.dynoSdfArray,this.dynoNumEdits,this.dynoEdits)}}const FB={type:"SdfArray"},SB=GA(` struct SdfArray { int numSdfs; usampler2D sdfTexture; @@ -1769,7 +1376,7 @@ void main() { return (softEdge == 0.0) ? ((distance < 0.0) ? 1.0 : 0.0) : clamp(-distance / softEdge + 0.5, 0.0, 1.0); } -`),tB=oA(` +`),NB=GA(` const uint EDIT_FLAG_BLEND = 0xFFu; const uint EDIT_BLEND_MULTIPLY = 0u; const uint EDIT_BLEND_SET_RGB = 1u; @@ -1827,27 +1434,27 @@ void main() { decodeEdit(packedEdit, sdfFirst, sdfCount, invert, rgbaBlendMode, softEdge, sdfSmooth); applyRgbaDisplaceEdit(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, sdfSmooth, softEdge, invert, rgbaBlendMode, rgba); } -`);function gR(Q,A,I,g){return new d({inTypes:{gsplat:Z,sdfArray:JB,numEdits:"int",rgbaDisplaceEdits:"uvec4"},outTypes:{gsplat:Z},globals:()=>[UB,tB],inputs:{gsplat:Q,sdfArray:A,numEdits:I,rgbaDisplaceEdits:g},statements:({inputs:C,outputs:E})=>{const{sdfArray:D,numEdits:i,rgbaDisplaceEdits:w}=C,{gsplat:s}=E;return z(` +`);function Nt(Q,A,I,g){return new q({inTypes:{gsplat:j,sdfArray:FB,numEdits:"int",rgbaDisplaceEdits:"uvec4"},outTypes:{gsplat:j},globals:()=>[SB,NB],inputs:{gsplat:Q,sdfArray:A,numEdits:I,rgbaDisplaceEdits:g},statements:({inputs:C,outputs:E})=>{const{sdfArray:i,numEdits:o,rgbaDisplaceEdits:D}=C,{gsplat:s}=E;return z(` ${s} = ${C.gsplat}; if (isGsplatActive(${s}.flags)) { - for (int editIndex = 0; editIndex < ${i}; ++editIndex) { + for (int editIndex = 0; editIndex < ${o}; ++editIndex) { applyPackedRgbaDisplaceEdit( - ${w}[editIndex], ${D}.sdfTexture, ${D}.numSdfs, + ${D}[editIndex], ${i}.sdfTexture, ${i}.numSdfs, ${s}.center, ${s}.rgba ); } } - `)}}).outputs.gsplat}function QR(Q,A,I,g){return new d({inTypes:{covsplat:rA,sdfArray:JB,numEdits:"int",rgbaDisplaceEdits:"uvec4"},outTypes:{covsplat:rA},globals:()=>[UB,tB],inputs:{covsplat:Q,sdfArray:A,numEdits:I,rgbaDisplaceEdits:g},statements:({inputs:C,outputs:E})=>{const{sdfArray:D,numEdits:i,rgbaDisplaceEdits:w}=C,{covsplat:s}=E;return z(` + `)}}).outputs.gsplat}function Rt(Q,A,I,g){return new q({inTypes:{covsplat:YA,sdfArray:FB,numEdits:"int",rgbaDisplaceEdits:"uvec4"},outTypes:{covsplat:YA},globals:()=>[SB,NB],inputs:{covsplat:Q,sdfArray:A,numEdits:I,rgbaDisplaceEdits:g},statements:({inputs:C,outputs:E})=>{const{sdfArray:i,numEdits:o,rgbaDisplaceEdits:D}=C,{covsplat:s}=E;return z(` ${s} = ${C.covsplat}; if (isCovSplatActive(${s}.flags)) { - for (int editIndex = 0; editIndex < ${i}; ++editIndex) { + for (int editIndex = 0; editIndex < ${o}; ++editIndex) { applyPackedRgbaDisplaceEdit( - ${w}[editIndex], ${D}.sdfTexture, ${D}.numSdfs, + ${D}[editIndex], ${i}.sdfTexture, ${i}.numSdfs, ${s}.center, ${s}.rgba ); } } - `)}}).outputs.covsplat}const XI=new Float32Array(1);class Xw{constructor(A){this.modifier=A,this.cache=new Map}apply(A){let I=this.cache.get(A);return I||(I=cA({index:"int"},{gsplat:Z},({index:g})=>{const{gsplat:B}=A.apply({index:g});return this.modifier.apply({gsplat:B})}),this.cache.set(A,I)),I}}class lI{constructor(){this.scale=new bI({value:Number.NEGATIVE_INFINITY}),this.rotate=new VI({value:new G.Quaternion(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY)}),this.translate=new iI({value:new G.Vector3(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY)})}apply(A){return Rw(A,{scale:this.scale,rotate:this.rotate,translate:this.translate})}applyDir(A){return kw(A,{rotate:this.rotate})}applyGsplat(A){return GB(A,{scale:this.scale,rotate:this.rotate,translate:this.translate})}updateFromMatrix(A){const I=new G.Vector3,g=new G.Quaternion,B=new G.Vector3;A.decompose(B,g,I);const C=(I.x+I.y+I.z)/3;let E=!1;return C!==this.scale.value&&(this.scale.value=C,E=!0),B.equals(this.translate.value)||(this.translate.value.copy(B),E=!0),g.equals(this.rotate.value)||(this.rotate.value.copy(g),E=!0),E}update(A){return A.updateMatrixWorld(),this.updateFromMatrix(A.matrixWorld)}}class fg{constructor(){this.basis=new aB({value:new G.Matrix3}),this.offset=new iI({value:new G.Vector3})}apply(A){const I=kA(this.basis,A);return xA(I,this.offset)}applyDir(A){return kA(this.basis,A)}applyCovSplat(A){return new d({inTypes:{covsplat:rA,basis:"mat3",offset:"vec3"},outTypes:{covsplat:rA},inputs:{covsplat:A,basis:this.basis,offset:this.offset},statements:({inputs:I,outputs:g})=>{const{covsplat:B,basis:C,offset:E}=I;return!B||!C||!E?[`${g.covsplat}.flags = 0u;`]:z(` + `)}}).outputs.covsplat}const bI=new Float32Array(1);class Mt{constructor(A){this.modifier=A,this.cache=new Map}apply(A){let I=this.cache.get(A);return I||(I=HA({index:"int"},{gsplat:j},({index:g})=>{const{gsplat:B}=A.apply({index:g});return this.modifier.apply({gsplat:B})}),this.cache.set(A,I)),I}}class qI{constructor(){this.scale=new OI({value:Number.NEGATIVE_INFINITY}),this.rotate=new Ig({value:new a.Quaternion(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY)}),this.translate=new LI({value:new a.Vector3(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY)})}apply(A){return Io(A,{scale:this.scale,rotate:this.rotate,translate:this.translate})}applyDir(A){return go(A,{rotate:this.rotate})}applyGsplat(A){return BC(A,{scale:this.scale,rotate:this.rotate,translate:this.translate})}updateFromMatrix(A){const I=new a.Vector3,g=new a.Quaternion,B=new a.Vector3;A.decompose(B,g,I);const C=(I.x+I.y+I.z)/3;let E=!1;return C!==this.scale.value&&(this.scale.value=C,E=!0),B.equals(this.translate.value)||(this.translate.value.copy(B),E=!0),g.equals(this.rotate.value)||(this.rotate.value.copy(g),E=!0),E}update(A){return A.updateMatrixWorld(),this.updateFromMatrix(A.matrixWorld)}}class xg{constructor(){this.basis=new wB({value:new a.Matrix3}),this.offset=new LI({value:new a.Vector3})}apply(A){const I=FA(this.basis,A);return xA(I,this.offset)}applyDir(A){return FA(this.basis,A)}applyCovSplat(A){return new q({inTypes:{covsplat:YA,basis:"mat3",offset:"vec3"},outTypes:{covsplat:YA},inputs:{covsplat:A,basis:this.basis,offset:this.offset},statements:({inputs:I,outputs:g})=>{const{covsplat:B,basis:C,offset:E}=I;return!B||!C||!E?[`${g.covsplat}.flags = 0u;`]:z(` ${g.covsplat}.flags = 0u; if (isCovSplatActive(${B}.flags)) { ${g.covsplat}.flags = ${B}.flags; @@ -1865,119 +1472,8 @@ void main() { ${g.covsplat}.xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]); ${g.covsplat}.xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]); } - `)}}).outputs.covsplat}updateFromMatrix(A){const I=new G.Matrix3().setFromMatrix4(A),g=new G.Vector3().setFromMatrixColumn(A,3),B=!I.equals(this.basis.value)||!g.equals(this.offset.value);return B&&(this.basis.value.copy(I),this.offset.value.copy(g)),B}update(A){return A.updateMatrixWorld(),this.updateFromMatrix(A.matrixWorld)}}class YI extends G.Object3D{constructor({numSplats:A,generator:I,covGenerator:g,construct:B,update:C}){if(super(),this.numSplats=A??0,this.generator=I,this.covGenerator=g,this.frameUpdate=C,this.version=0,this.mappingVersion=0,B){const E=B(this);Object.assign(this,E)}}updateVersion(){this.version+=1}updateMappingVersion(){this.mappingVersion+=1,this.version+=1}set needsUpdate(A){A&&this.updateVersion()}}const QA=class QA{constructor({extSplats:A,covSplats:I}={}){if(this.time=0,this.deltaTime=0,this.viewToWorld=new G.Matrix4,this.viewOrigin=new G.Vector3,this.viewDirection=new G.Vector3,this.maxSplats=0,this.numSplats=0,this.target=null,this.mapping=[],this.version=-1,this.mappingVersion=-1,this.readback=null,this.readbackSplats=[],!FC)throw new Error("Spark requires THREE.js r179 or above");this.extSplats=A??!0,this.covSplats=I??!1}dispose(){this.target&&(this.target.dispose(),this.target=null)}getTextures(){return this.target?this.target.textures:QA.emptyTextures}generateMapping(A){let I=0;const g=A.map(B=>{const C=I,E=Math.ceil(B/P)*P;return I+=E,{base:C,count:B}});return{maxSplats:I,mapping:g}}ensureGenerate({maxSplats:A}){if(this.target&&(A??1)<=this.maxSplats)return!1;this.dispose();const I=BA(A??1),{width:g,height:B,depth:C}=I;if(this.maxSplats=I.maxSplats,this.target=new G.WebGLArrayRenderTarget(g,B,C,{depthBuffer:!1,stencilBuffer:!1,generateMipmaps:!1,magFilter:G.NearestFilter,minFilter:G.NearestFilter,format:G.RGBAIntegerFormat,type:G.UnsignedIntType}),this.target.scissorTest=!0,this.extSplats){const E=this.target.texture.clone(),D=this.target.texture.clone();D.format=G.RGBAFormat,D.type=G.UnsignedByteType,D.internalFormat="RGBA8",this.target.textures=[this.target.texture,E,D]}else{const E=this.target.texture.clone();E.format=G.RGBAFormat,E.type=G.UnsignedByteType,E.internalFormat="RGBA8",this.target.textures=[this.target.texture,E]}return!0}saveRenderState(A){return{target:A.getRenderTarget(),xrEnabled:A.xr.enabled,autoClear:A.autoClear}}resetRenderState(A,I){A.setRenderTarget(I.target),A.xr.enabled=I.xrEnabled,A.autoClear=I.autoClear}prepareProgramMaterial(A,I){const g=A??I;if(!g)throw new Error("Either generator or covGenerator must be provided");let B=QA.generatorProgram.get(g);if(!B){const E=cA({index:"int"},{},({index:D},i,{roots:w})=>{if(A&&(A.inputs.index=D),I&&(I.inputs.index=D),this.extSplats)if(this.covSplats)if(I){const s=TQ(I.outputs.covsplat);w.push(s)}else if(A){const s=$g(A.outputs.gsplat),o=TQ(s);w.push(o)}else throw new Error("Generator must be provided");else if(A){const s=wE(A.outputs.gsplat);w.push(s)}else throw new Error("Generator must be provided");else{if(this.covSplats){let s;if(I)s=I.outputs.covsplat;else if(A)s=$g(A.outputs.gsplat);else throw new Error("Generator must be provided");const o=wI(AQ(s).outputs.center,QA.viewCenterUniform),y=kA(AQ(s).outputs.opacity,v("float",.5));s=RB({covsplat:s,center:o,opacity:y});const h=iE(s,v("vec4",[0,1,fA,bA]));w.push(h)}else if(A){const s=wI(OA(A.outputs.gsplat).outputs.center,QA.viewCenterUniform),o=kA(OA(A.outputs.gsplat).outputs.opacity,v("float",.5)),y=EI({gsplat:A.outputs.gsplat,center:s,opacity:o}),h=kB(y,v("vec4",[0,1,fA,bA]));w.push(h)}else throw new Error("Generator must be provided");if(!A)throw new Error("Generator must be provided")}if(A){const s=oE(A.outputs.gsplat,QA.viewCenterUniform,QA.viewDirUniform,QA.sortRadialUniform);w.push(s)}if(I){const s=sE(I.outputs.covsplat,QA.viewCenterUniform,QA.viewDirUniform,QA.sortRadialUniform);w.push(s)}});B=new yQ({graph:E,inputs:{index:"_index"},outputs:{},template:this.extSplats?QA.programExtTemplate:QA.programTemplate}),QA.generatorProgram.set(g,B)}Object.assign(B.uniforms,{targetLayer:{value:0},targetBase:{value:0},targetCount:{value:0}});const C=B.prepareMaterial();return QA.fullScreenQuad.material=C,{program:B,material:C}}generate({generator:A,covGenerator:I,base:g,count:B,renderer:C}){if(!this.target)throw new Error("Target must be initialized with ensureGenerate");if(g+B>this.maxSplats)throw new Error("Base + count exceeds maxSplats");const{program:E,material:D}=this.prepareProgramMaterial(A,I);E.update();const i=this.saveRenderState(C),w=Math.ceil((g+B)/P)*P,s=P*WA;for(D.uniforms.targetBase.value=g,D.uniforms.targetCount.value=B;g{c instanceof YI&&(!B.layers||B.layers.test(c.layers))&&w.push(c)});const s=new Set;I.traverseVisible(c=>{if(c instanceof Qg){let N=c.parent;for(;N!=null&&!(N instanceof vA);)N=N.parent;N==null&&s.add(c)}});const o=Array.from(s);for(const c of w)try{(M=c.frameUpdate)==null||M.call(c,{renderer:A,object:c,time:this.time,deltaTime:this.deltaTime,viewToWorld:this.viewToWorld,camera:B,renderSize:E,globalEdits:o,lodIndices:i&&c instanceof vA?i.get(c):void 0})}catch(N){console.error("frameUpdate error",N),c.generator=void 0,c.covGenerator=void 0,c.generatorError=N}const y=[];I.traverseVisible(c=>{c instanceof YI&&(!B.layers||B.layers.test(c.layers))&&y.push(c)});const h=y.map(c=>c.numSplats),{maxSplats:k,mapping:R}=this.generateMapping(h),F=D.mapping.reduce((c,N)=>(c.set(N.node,N),c),new Map);this.mapping=[],this.numSplats=0,R.forEach(({base:c,count:N},U)=>{const J=y[U],t=F.get(J);t&&t.count!==J.numSplats&&J.updateMappingVersion();const{generator:H,covGenerator:K}=J;if((H||K)&&N>0){const{version:Y,mappingVersion:L}=J;this.mapping.push({node:J,generator:H,covGenerator:K,version:Y,mappingVersion:L,base:c,count:N}),this.numSplats=Math.max(this.numSplats,c+N)}});const{splatsUpdated:a,mappingUpdated:S}=D.checkVersions(this.mapping);return this.version=D.version+(a?1:0),this.mappingVersion=D.mappingVersion+(S?1:0),{sameMapping:!S,version:this.version,mappingVersion:this.mappingVersion,visibleGenerators:y,generate:()=>{this.ensureGenerate({maxSplats:k});for(const{node:c,base:N,count:U}of this.mapping){const{generator:J,covGenerator:t}=c;(J||t)&&U>0&&this.generate({generator:J,covGenerator:t,base:N,count:U,renderer:A})}},readback:async()=>{const c=this.getTextures();this.readbackSplats.length===0&&(this.readbackSplats=[new qA({value:c[0],key:"extSplats"}),new qA({value:c[1],key:"extSplats"})]),this.readbackSplats[0].value=c[0],this.readbackSplats[1].value=c[1],this.readback||(this.readback=new TI({renderer:A}));const N=this.readback,U=this.extSplats?8:4,J=N.ensureBuffer(this.numSplats*U,new Uint32Array(0)),t=cA({index:"int"},{rgba8:"vec4"},({index:H})=>({rgba8:new d({inTypes:{index:"int",extSplats1:"usampler2DArray",extSplats2:"usampler2DArray"},outTypes:{rgba8:"vec4"},inputs:{index:H,extSplats1:this.readbackSplats[0],extSplats2:this.readbackSplats[1]},statements:({inputs:Y,outputs:L})=>this.extSplats?z(` - int indexDiv8 = ${Y.index} >> 3; - ivec3 coord = splatTexCoord(indexDiv8); - uvec4 packedData; - if ((${Y.index} & 4) == 0) { - packedData = texelFetch(${Y.extSplats1}, coord, 0); - } else { - packedData = texelFetch(${Y.extSplats2}, coord, 0); - } - - int indexMod4 = ${Y.index} & 3; - uint data = (indexMod4 == 0) ? packedData.x - : (indexMod4 == 1) ? packedData.y - : (indexMod4 == 2) ? packedData.z - : packedData.w; - ${L.rgba8} = uintToVec4(data); - `):z(` - int indexDiv4 = ${Y.index} >> 2; - ivec3 coord = splatTexCoord(indexDiv4); - uvec4 packedData = texelFetch(${Y.extSplats1}, coord, 0); - - int indexMod4 = ${Y.index} & 3; - uint data = (indexMod4 == 0) ? packedData.x - : (indexMod4 == 1) ? packedData.y - : (indexMod4 == 2) ? packedData.z - : packedData.w; - ${L.rgba8} = uintToVec4(data); - `)}).outputs.rgba8}));return await N.renderReadback({reader:t,count:this.numSplats*U,renderer:A,readback:J})}}}checkVersions(A){if(this.mapping.length!==A.length)return{splatsUpdated:!0,mappingUpdated:!0};const I=this.mapping.some((B,C)=>{const E=A[C];return B.node!==E.node||B.base!==E.base||B.count!==E.count||B.mappingVersion!==E.mappingVersion});return I?{splatsUpdated:!0,mappingUpdated:!0}:{splatsUpdated:this.mapping.some((B,C)=>B.version!==A[C].version),mappingUpdated:I}}};QA.viewCenterUniform=new iI({value:new G.Vector3}),QA.viewDirUniform=new iI({value:new G.Vector3}),QA.sortRadialUniform=new uI({value:!0}),QA.emptyTexture=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=BA(1),C=new Uint32Array(B*4),E=new G.DataArrayTexture(C,A,I,g);return E.format=G.RGBAIntegerFormat,E.type=G.UnsignedIntType,E.internalFormat="RGBA32UI",E.needsUpdate=!0,E})(),QA.emptyTextures=[QA.emptyTexture,QA.emptyTexture],QA.programExtTemplate=new Jg(gg().computeUvec4x2Vec4Template),QA.programTemplate=new Jg(gg().computeUvec4Vec4Template),QA.generatorProgram=new WeakMap,QA.fullScreenQuad=new AB.FullScreenQuad(new G.RawShaderMaterial({visible:!1}));let tI=QA;class BR extends G.InstancedBufferGeometry{constructor(){super(),this.setAttribute("position",new G.BufferAttribute(CR,3)),this.setIndex(new G.BufferAttribute(ER,1))}}const CR=new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,1,0]),ER=new Uint16Array([0,1,2,0,2,3]),iA=class iA extends G.Mesh{constructor(A){if(!A)throw new Error("SparkRenderer options are required");if(!A.renderer)throw new Error("renderer is required in SparkRenderer options");const I=iA.makeUniforms();Object.assign(I,A.extraUniforms??{});const g=gg(),B=A.premultipliedAlpha??!0,C=new BR,E=new G.ShaderMaterial({glslVersion:G.GLSL3,vertexShader:A.vertexShader??g.splatVertex,fragmentShader:A.fragmentShader??g.splatFragment,uniforms:I,premultipliedAlpha:B,transparent:A.transparent??!0,depthTest:A.depthTest??!0,depthWrite:A.depthWrite??!1,side:G.DoubleSide,allowOverride:!1});super(C,E),this.renderSize=new G.Vector2,this.lastFrame=-1,this.updateTimeoutId=-1,this.orderingTexture=null,this.maxSplats=0,this.activeSplats=0,this.accumulators=[],this.sorting=!1,this.sortDirty=!1,this.lastSortTime=0,this.sortWorker=null,this.sortTimeoutId=-1,this.sortedCenter=new G.Vector3().setScalar(Number.NEGATIVE_INFINITY),this.sortedDir=new G.Vector3().setScalar(0),this.readback32=new Uint32Array(0),this.lastLodRaycastTime=0,this.lodWorker=null,this.lodMeshes=[],this.lodDirty=!1,this.lodIds=new Map,this.lodIdToSplats=new Map,this.lodInitQueue=[],this.lodInstances=new Map,this.lodUpdates=[],this.lastTraverseTime=0,this.pagerId=0,this.superXY=1,this.flushAfterGenerate=!1,this.flushAfterRead=!1,this.readPause=1,this.sortPause=0,this.sortDelay=0,this.pageSizeWarning=!1,this.material=E,this.uniforms=I,this.frustumCulled=!1,this.renderer=A.renderer,this.onDirty=A.onDirty,this.dirty=!0,this.autoUpdate=A.autoUpdate??!0,this.preUpdate=A.preUpdate??!0,this.maxStdDev=A.maxStdDev??Math.sqrt(8),this.minPixelRadius=A.minPixelRadius??0,this.maxPixelRadius=A.maxPixelRadius??512,this.accumExtSplats=A.accumExtSplats??!1,this.covSplats=A.covSplats??!1,this.minAlpha=A.minAlpha??.5*(1/255),this.enable2DGS=A.enable2DGS??!1,this.preBlurAmount=A.preBlurAmount??0,this.blurAmount=A.blurAmount??.3,this.focalDistance=A.focalDistance??0,this.apertureAngle=A.apertureAngle??0,this.falloff=A.falloff??1,this.clipXY=A.clipXY??1.4,this.focalAdjustment=A.focalAdjustment??1,this.encodeLinear=A.encodeLinear??!1,this.sortRadial=A.sortRadial??!0,this.minSortIntervalMs=A.minSortIntervalMs??0,this.enableLod=A.enableLod??!0,this.enableDriveLod=A.enableDriveLod??this.enableLod,this.enableLodFetching=A.enableLodFetching??!0,this.lodSplatCount=A.lodSplatCount,this.lodSplatScale=A.lodSplatScale??1,this.lodRenderScale=A.lodRenderScale??1,this.lodInflate=A.lodInflate??!1,this.pagedExtSplats=A.pagedExtSplats??!1;const D=cg()?Ig()?96:128:256;this.maxPagedSplats=A.maxPagedSplats??D*65536,this.numLodFetchers=A.numLodFetchers??3,this.behindFoveate=A.behindFoveate??.2,this.coneFov0=A.coneFov0??90,this.coneFov=A.coneFov??120,this.coneFoveate=A.coneFoveate??.4,this.lodRaycast=A.lodRaycast===void 0?cg()?1e4:25e3:A.lodRaycast,this.lodRaycastIntervalMs=A.lodRaycastIntervalMs??500,this.clock=A.clock?wB(A.clock):new G.Clock;const i={extSplats:this.accumExtSplats,covSplats:this.covSplats};if(this.display=new tI(i),this.current=this.display,this.accumulators.push(new tI(i)),this.accumulators.push(new tI(i)),A.target){const{width:w,height:s,doubleBuffer:o,superXY:y,...h}=A.target,k=Math.max(1,Math.min(4,y??1));if(w*k>8192||s*k>8192)throw new Error("Target size too large");this.superXY=k;const R=w*k,F=s*k,a={format:G.RGBAFormat,type:G.UnsignedByteType,colorSpace:G.SRGBColorSpace,...h};this.target=new G.WebGLRenderTarget(R,F,a),o&&(this.backTarget=new G.WebGLRenderTarget(R,F,a)),this.encodeLinear=A.encodeLinear??!0}}static makeUniforms(){return{renderSize:{value:new G.Vector2},near:{value:.1},far:{value:1e3},renderToViewQuat:{value:new G.Quaternion},renderToViewPos:{value:new G.Vector3},renderToViewBasis:{value:new G.Matrix3},renderToViewOffset:{value:new G.Vector3},maxStdDev:{value:1},minPixelRadius:{value:0},maxPixelRadius:{value:512},minAlpha:{value:.00196078431372549},enable2DGS:{value:!1},lodInflate:{value:!1},preBlurAmount:{value:0},blurAmount:{value:.3},focalDistance:{value:0},apertureAngle:{value:0},falloff:{value:1},clipXY:{value:1.4},focalAdjustment:{value:1},encodeLinear:{value:!1},ordering:{type:"t",value:iA.emptyOrdering},enableExtSplats:{value:!1},enableCovSplats:{value:!1},extSplats:{type:"t",value:tI.emptyTexture},extSplats2:{type:"t",value:tI.emptyTexture},time:{value:0},deltaTime:{value:0},debugFlag:{value:!1}}}dispose(){this.target&&(this.target.dispose(),this.target=void 0),this.backTarget&&(this.backTarget.dispose(),this.backTarget=void 0),this.orderingTexture&&(this.orderingTexture.dispose(),this.orderingTexture=null);const A=new Set;A.add(this.display),A.add(this.current);for(const g of this.accumulators)A.add(g);for(const g of A)g.dispose();const I=this.lodInstances.values();this.lodInstances.clear();for(const g of I)g.texture.dispose();this.sortWorker&&(this.sortWorker.dispose(),this.sortWorker=null),this.lodWorker&&(this.lodWorker.dispose(),this.lodWorker=null),this.pager&&(this.pager.dispose(),this.pager=void 0)}setDirty(){var A;this.dirty||(this.dirty=!0,(A=this.onDirty)==null||A.call(this))}onBeforeRender(A,I,g){var h;const B=iA.sparkOverride??this,C=A.info.render.frame,E=C!==B.lastFrame;if(B.lastFrame=C,B.target)B.renderSize.set(B.target.width,B.target.height);else{const k=A.getDrawingBufferSize(B.renderSize);if(A.xr.isPresenting&&k.x===1&&k.y===1){const R=(h=A.xr.getSession())==null?void 0:h.renderState.baseLayer;R&&(k.x=R.framebufferWidth,k.y=R.framebufferHeight)}}this.uniforms.renderSize.value.copy(B.renderSize);const D=g;this.uniforms.near.value=D.near,this.uniforms.far.value=D.far;const i=this.geometry;i.instanceCount=B.activeSplats;const w=new G.Matrix4;this.display.extSplats||w.makeTranslation(B.display.viewOrigin);const y=g.matrixWorld.clone().invert().multiply(w);if(y.decompose(this.uniforms.renderToViewPos.value,this.uniforms.renderToViewQuat.value,new G.Vector3),this.uniforms.renderToViewBasis.value.setFromMatrix4(y),this.uniforms.maxStdDev.value=B.maxStdDev,this.uniforms.minPixelRadius.value=B.minPixelRadius,this.uniforms.maxPixelRadius.value=B.maxPixelRadius,this.uniforms.minAlpha.value=B.minAlpha,this.uniforms.enable2DGS.value=B.enable2DGS,this.uniforms.lodInflate.value=B.lodInflate,this.uniforms.preBlurAmount.value=B.preBlurAmount,this.uniforms.blurAmount.value=B.blurAmount,this.uniforms.focalDistance.value=B.focalDistance,this.uniforms.apertureAngle.value=B.apertureAngle,this.uniforms.falloff.value=B.falloff,this.uniforms.clipXY.value=B.clipXY,this.uniforms.focalAdjustment.value=B.focalAdjustment,this.uniforms.encodeLinear.value=B.encodeLinear,this.uniforms.ordering.value=B.orderingTexture??iA.emptyOrdering,this.uniforms.enableExtSplats.value=this.display.extSplats,this.uniforms.enableCovSplats.value=this.display.covSplats,this.display.extSplats){const k=B.display.getTextures();this.uniforms.extSplats.value=k[0],this.uniforms.extSplats2.value=k[1]}else{const k=B.display.getTextures();this.uniforms.extSplats.value=k[0],this.uniforms.extSplats2.value=k[0]}if(this.uniforms.time.value=B.display.time,this.uniforms.deltaTime.value=B.display.deltaTime,this.uniforms.debugFlag.value=performance.now()/1e3%2<1,B.autoUpdate&&E){const k=B.preUpdate&&!A.xr.isPresenting,R=A.xr.isPresenting?A.xr.getCamera():g;k?B.updateInternal({scene:I,camera:R,autoUpdate:!0}):B.updateTimeoutId===-1&&(B.updateTimeoutId=setTimeout(()=>{B.updateTimeoutId=-1,B.updateInternal({scene:I,camera:R,autoUpdate:!0})},1))}B.dirty=!1}clearSplats(){this.activeSplats=0,this.display.numSplats=0,this.setDirty()}async update({scene:A,camera:I}){await this.updateInternal({scene:A,camera:I,autoUpdate:!1})}async updateInternal({scene:A,camera:I,autoUpdate:g}){const B=this.renderer,C=this.time??this.clock.getElapsedTime(),E=I.getWorldPosition(new G.Vector3),D=I.getWorldDirection(new G.Vector3),i=E.distanceTo(this.sortedCenter)>.001||D.dot(this.sortedDir)<.999,w=this.accumulators.pop();if(!w)throw new Error("No next accumulator");if(w===this.current)throw new Error("Next accumulator is the same as the current accumulator");const{version:s,mappingVersion:o,visibleGenerators:y,generate:h}=w.prepareGenerate({renderer:B,scene:A,time:C,camera:I,sortRadial:this.sortRadial??!0,renderSize:this.renderSize,previous:this.current,lodInstances:this.enableLod?this.lodInstances:void 0});let k=!0;const R=i||s!==this.current.version,F=o!==this.display.mappingVersion;g&&!R&&(k=!1),F&&this.sorting&&(k=!1),k?(h(),this.flushAfterGenerate&&B.getContext().flush(),this.display.mappingVersion===w.mappingVersion?(this.accumulators.push(this.display),this.display=w):this.display!==this.current&&this.accumulators.push(this.current),this.current=w,this.sortDirty=!0,this.setDirty()):this.accumulators.push(w),this.enableDriveLod&&this.driveLod({visibleGenerators:y,camera:I,scene:A}),await this.driveSort()}async driveSort(){if(this.sorting||!this.sortDirty)return;this.sortTimeoutId!==-1&&(clearTimeout(this.sortTimeoutId),this.sortTimeoutId=-1);const A=performance.now(),I=this.lastSortTime?this.lastSortTime+this.minSortIntervalMs:A;if(A{this.sortTimeoutId=-1,this.driveSort()},I-A);return}this.sorting=!0,this.sortDirty=!1,this.lastSortTime=A,this.readPause>0&&await new Promise(o=>setTimeout(o,this.readPause));const g=this.current;this.sortedCenter.copy(g.viewOrigin),this.sortedDir.copy(g.viewDirection);const{numSplats:B,maxSplats:C}=g,E=Math.max(1,Math.ceil(C/16384)),D=E*16384;this.maxSplats=Math.max(this.maxSplats,D);const i=new Uint32Array(this.maxSplats),w=TI.ensureBuffer(C,this.readback32);this.readback32=w,await this.readbackDepth({current:g,renderer:this.renderer,numSplats:B,readback:w}),this.sortPause>0&&await new Promise(o=>setTimeout(o,this.sortPause)),this.sortWorker||(this.sortWorker=new Mg);const s=await this.sortWorker.call("sortSplats32",{numSplats:B,readback:w,ordering:i});if(this.sortDelay>0&&await new Promise(o=>setTimeout(o,this.sortDelay)),this.readback32=s.readback,this.activeSplats=s.activeSplats,this.orderingTexture&&E>this.orderingTexture.image.height&&(this.orderingTexture.dispose(),this.orderingTexture=null),this.orderingTexture){const o=this.renderer,y=o.getContext();if(!o.properties.has(this.orderingTexture))this.orderingTexture.needsUpdate=!0;else{const k=o.properties.get(this.orderingTexture).__webglTexture;if(!k)throw new Error("ordering texture not found");o.state.activeTexture(y.TEXTURE0),o.state.bindTexture(y.TEXTURE_2D,k),y.bindBuffer(y.PIXEL_UNPACK_BUFFER,null),y.pixelStorei(y.UNPACK_FLIP_Y_WEBGL,!1),y.texSubImage2D(y.TEXTURE_2D,0,0,0,4096,E,y.RGBA_INTEGER,y.UNSIGNED_INT,s.ordering),o.state.bindTexture(y.TEXTURE_2D,null)}}else{const o=new G.DataTexture(s.ordering,4096,E,G.RGBAIntegerFormat,G.UnsignedIntType);o.internalFormat="RGBA32UI",o.needsUpdate=!0,this.orderingTexture=o}this.current.mappingVersion===g.mappingVersion&&this.current.mappingVersion!==this.display.mappingVersion&&(this.accumulators.push(this.display),this.display=this.current),this.sorting=!1,this.setDirty(),this.driveSort()}ensureLodWorker(){return this.lodWorker||(this.lodWorker=new Mg),this.lodWorker}defaultSplatTarget(){return wQ()?5e5:iB()?75e4:iQ()?1e6:Ig()?15e5:25e5}driveLod({visibleGenerators:A,camera:I,scene:g}){var h,k;const B=this.defaultSplatTarget(),E=(this.lodSplatCount??B)*this.lodSplatScale;let D=0;if(I instanceof G.PerspectiveCamera)D=2*Math.tan(.5*I.fov*Math.PI/180)/this.renderSize.y;else if(I instanceof G.OrthographicCamera){const R=(I.top-I.bottom)/I.zoom,F=(I.right-I.left)/I.zoom,a=R/Math.max(1,this.renderSize.y),S=F/Math.max(1,this.renderSize.x);D=Math.min(S,a)}D*=this.lodRenderScale;const i=new G.Vector3,w=new G.Quaternion;if(this.current.viewToWorld.decompose(i,w,new G.Vector3),this.lodPosOverride&&i.copy(this.lodPosOverride),this.lodQuatOverride&&w.copy(this.lodQuatOverride).normalize(),this.lastLod){(this.lastLod.pixelScaleLimit!==D||this.lastLod.maxSplats!==E)&&(this.lodDirty=!0);const R=i.distanceTo(this.lastLod.pos),F=Math.max(0,1-R/1),a=w.dot(this.lastLod.quat),S=Math.max(0,1-(1-a)/.01);F*S<.999&&(this.lodDirty=!0)}const s=this.enableLod?A.filter(R=>{var F,a;return R instanceof vA&&(((F=R.packedSplats)==null?void 0:F.lodSplats)||((a=R.extSplats)==null?void 0:a.lodSplats)||R.paged)&&R.enableLod!==!1}):[],o=s.some(R=>R.paged);this.lodMeshes.length!==s.length?this.lodDirty=!0:s.some((R,F)=>R!==this.lodMeshes[F].mesh||R.version>this.lodMeshes[F].version)&&(this.lodDirty=!0),this.lodMeshes=s.map(R=>({mesh:R,version:R.version+1})),this.lodInitQueue=[];const y=performance.now();for(const R of s){const F=((h=R.packedSplats)==null?void 0:h.lodSplats)??((k=R.extSplats)==null?void 0:k.lodSplats)??R.paged;if(F){const a=this.lodIds.get(F);a?a.lastTouched=y:this.lodInitQueue.push(F)}}this.ensureLodWorker().tryExclusive(async R=>{if(o&&!this.pager){this.pager=new FI({renderer:this.renderer,extSplats:this.pagedExtSplats,maxSplats:this.maxPagedSplats,numFetchers:this.numLodFetchers});const{lodId:F}=await R.call("newLodTree",{capacity:this.pager.maxSplats});this.pagerId=F}if(this.pager)for(const{mesh:F}of this.lodMeshes)F.paged&&!F.paged.pager&&(F.paged.pager=this.pager);if(this.lodInitQueue.length>0){const F=this.lodInitQueue;for(this.lodInitQueue=[];F.length>0;){const a=F.shift();a&&(await this.initLodTree(R,a),this.lodDirty=!0)}}if(this.pager){const F=this.pager.consumeLodTreeUpdates();for(const{splats:a,page:S,chunk:M,numSplats:c,lodTree:N}of F){const U=this.lodIds.get(a);U&&(N&&M===0&&(U.rootPage=S),this.lodUpdates.push({lodId:U.lodId,pageBase:S*this.pager.pageSplats,chunkBase:M*this.pager.pageSplats,count:c,lodTreeData:N}))}}if(this.lodUpdates.length>0){const F=this.lodUpdates;this.lodUpdates=[],await R.call("updateLodTrees",{ranges:F}),this.lodDirty=!0}if(this.lodDirty){const F=performance.now(),a=new G.Vector3;if(this.lastLod){const S=Math.max(1,F-this.lastLod.timestamp);a.copy(i).sub(this.lastLod.pos).multiplyScalar(this.lastTraverseTime/S)}this.lastLod={pos:i,quat:w,pixelScaleLimit:D,maxSplats:E,timestamp:F},this.lodDirty=!1,await this.updateLodInstances(R,a,s,E,i,w,D),this.currentLod=this.lastLod,this.setDirty()}await this.cleanupLodTrees(R)})}async initLodTree(A,I){if(I instanceof _A||I instanceof BI){const{lodId:g}=await A.call("initLodTree",{numSplats:I.numSplats??0,lodTree:I.extra.lodTree.slice()});this.lodIds.set(I,{lodId:g,lastTouched:performance.now()}),this.lodIdToSplats.set(g,I)}else{const{lodId:g}=await A.call("newSharedLodTree",{lodId:this.pagerId});this.lodIds.set(I,{lodId:g,lastTouched:performance.now()}),this.lodIdToSplats.set(g,I)}}async updateLodInstances(A,I,g,B,C,E,D){const i=new Map,w=new G.Matrix4().compose(C,E,new G.Vector3().setScalar(1)),s=g.reduce((a,S)=>{var U,J;i.set(S.uuid,S);const M=S.matrixWorld.clone().invert().multiply(w),c=((U=S.packedSplats)==null?void 0:U.lodSplats)??((J=S.extSplats)==null?void 0:J.lodSplats)??S.paged;if(!c)return a;const N=this.lodIds.get(c);return!N||this.pager&&S.paged&&N.rootPage===void 0||(a[S.uuid]={instanceId:S.uuid,lodId:N.lodId,rootPage:N.rootPage,viewToObjectCols:M.elements,lodScale:S.lodScale,behindFoveate:S.behindFoveate??this.behindFoveate,coneFov0:S.coneFov0??this.coneFov0,coneFov:S.coneFov??this.coneFov,coneFoveate:S.coneFoveate??this.coneFoveate}),a},{}),o=performance.now(),y=await A.call("traverseLodTrees",{maxSplats:B,pixelScaleLimit:D,lastPixelLimit:this.lastPixelLimit,instances:s});this.lastTraverseTime=performance.now()-o;const{keyIndices:h,chunks:k,pixelLimit:R}=y;this.lastPixelLimit=R;const F=Object.values(h).reduce((a,{numSplats:S})=>a+S,0);if(this.updateLodIndices(i,h),this.pager){this.pager.processUploads();const a=g.map(S=>{if(!S.paged||!this.pager)return null;const M=S.getWorldPosition(new G.Vector3);return{splats:S.paged,distance:M.distanceTo(C)}}).filter(S=>S!==null);!this.pageSizeWarning&&a.length>this.pager.maxPages&&(this.pageSizeWarning=!0,console.warn(`# paged SplatMeshes exceeds maxPages: ${a.length} > ${this.pager.maxPages}`)),a.sort((S,M)=>S.distance-M.distance),this.pager.fetchPriority=a.map(({splats:S})=>({splats:S,chunk:0}));for(const[S,M]of k){const c=this.lodIdToSplats.get(S);c instanceof Sg&&M!==0&&this.pager.fetchPriority.push({splats:c,chunk:M})}this.pager.autoDrive=this.enableLodFetching,this.enableLodFetching&&this.pager.driveFetchers()}if(this.lodRaycast&&performance.now()-this.lastLodRaycastTime>=this.lodRaycastIntervalMs){this.lastLodRaycastTime=performance.now();const a=performance.now(),S=await A.call("traverseLodTrees",{maxSplats:Math.min(this.lodRaycast,Math.round(F*.1)),pixelScaleLimit:D,instances:s});performance.now()-a;const{keyIndices:M}=S;Object.values(M).reduce((c,{numSplats:N})=>c+N,0);for(const[c,N]of Object.entries(M)){const U=i.get(c);U.raycastIndices=N}}}async cleanupLodTrees(A){const g=performance.now();let B=null;for(const[C,E]of this.lodIds.entries())(B==null||E.lastTouchedg-3e3)){this.lodIds.delete(B.splats),this.lodIdToSplats.delete(B.lodId);for(const[C,E]of this.lodInstances.entries())E.lodId===B.lodId&&(E.texture.dispose(),this.lodInstances.delete(C));await A.call("disposeLodTree",{lodId:B.lodId})}}updateLodIndices(A,I){for(const[g,B]of Object.entries(I)){const{lodId:C,numSplats:E,indices:D}=B,i=A.get(g);if(i.paged)i.paged.update(E,D);else{let w=this.lodInstances.get(i);w&&D.length>w.indices.length&&(w.texture.dispose(),w=void 0);const s=Math.ceil(D.length/16384);if(w){w.numSplats=E;const o=this.renderer,y=o.getContext();if(o.properties.has(w.texture)){const k=o.properties.get(w.texture).__webglTexture;if(!k)throw new Error("lodIndices texture not found");o.state.activeTexture(y.TEXTURE0),o.state.bindTexture(y.TEXTURE_2D,k),y.bindBuffer(y.PIXEL_UNPACK_BUFFER,null),y.pixelStorei(y.UNPACK_FLIP_Y_WEBGL,!1),y.texSubImage2D(y.TEXTURE_2D,0,0,0,4096,s,y.RGBA_INTEGER,y.UNSIGNED_INT,D),o.state.bindTexture(y.TEXTURE_2D,null)}}else{const o=s*16384;if(D.length!==o)throw new Error("Indices length != capacity");const y=new G.DataTexture(D,4096,s,G.RGBAIntegerFormat,G.UnsignedIntType);y.internalFormat="RGBA32UI",y.needsUpdate=!0,w={lodId:C,numSplats:E,indices:D,texture:y},this.lodInstances.set(i,w)}}i.updateMappingVersion()}}async readbackDepth({current:A,renderer:I,numSplats:g,readback:B}){if(!I)throw new Error("No renderer");if(!A.target)throw new Error("No target");const C=Math.ceil(g/P)*P;if(B.byteLengthB)}saveRenderState(A){return{target:A.getRenderTarget(),xrEnabled:A.xr.enabled,autoClear:A.autoClear}}resetRenderState(A,I){A.setRenderTarget(I.target),A.xr.enabled=I.xrEnabled,A.autoClear=I.autoClear}render(A,I){try{iA.sparkOverride=this,this.renderer.render(A,I)}finally{iA.sparkOverride=void 0}}renderTarget({scene:A,camera:I}){const g=this.backTarget??this.target;if(!g)throw new Error("No target");const B=this.renderer.getRenderTarget();try{this.renderer.setRenderTarget(g),iA.sparkOverride=this,this.renderer.render(A,I)}finally{iA.sparkOverride=void 0,this.renderer.setRenderTarget(B)}return g!==this.target&&([this.target,this.backTarget]=[this.backTarget,this.target]),g}async readTarget(){if(!this.target)throw new Error("Must initialize with target");const{width:A,height:I}=this.target,g=A*I*4;(!this.superPixels||this.superPixels.length{if(g instanceof G.Mesh)if(Array.isArray(g.material))for(const B of g.material)B instanceof G.MeshStandardMaterial&&(B.envMap=I);else g.material instanceof G.MeshStandardMaterial&&(g.material.envMap=I)})}async getLodTreeLevel(A,I,g=!1){var E,D;const B=this.lodInstances.get(A);if(!B)return null;const C=await this.ensureLodWorker().exclusive(async i=>await i.call("getLodTreeLevel",{lodId:B.lodId,level:I}));if((E=A.packedSplats)!=null&&E.lodSplats){const i=A.packedSplats.lodSplats.extractSplats(C.indices,g);return new vA({packedSplats:i})}if((D=A.extSplats)!=null&&D.lodSplats){const i=A.extSplats.lodSplats.extractSplats(C.indices,g);return new vA({extSplats:i})}throw new Error("Only LoD-enabled PackedSplats and ExtSplats are supported")}get premultipliedAlpha(){return this.material.premultipliedAlpha}set premultipliedAlpha(A){this.material.premultipliedAlpha!==A&&(this.material.premultipliedAlpha=A,this.material.needsUpdate=!0)}};iA.emptyOrdering=(()=>{const I=new Uint32Array(16384),g=new G.DataTexture(I,4096,1);return g.format=G.RGBAIntegerFormat,g.type=G.UnsignedIntType,g.internalFormat="RGBA32UI",g.needsUpdate=!0,g})(),iA.cubeRender=null,iA.pmrem=null;let tg=iA;class Sg{constructor(A){var I;if(this.pager=A.pager,this.rootUrl=A.rootUrl??"",this.requestHeader=A.requestHeader,this.withCredentials=A.withCredentials,this.numSh=0,this.maxSh=((I=A.pager)==null?void 0:I.maxSh)??3,this.numSplats=0,this.dynoNumSplats=new DI({value:0}),this.dynoIndices=new GQ({value:FI.emptyIndicesTexture}),this.rgbMinMaxLnScaleMinMax=new VI({value:new G.Vector4(0,1,fA,bA)}),this.lodOpacity=new uI({value:!1}),this.dynoNumSh=new DI({value:0}),this.shMax=new iI({value:new G.Vector3}),this.fileBytes=A.fileBytes,this.fileType=A.fileType,!this.fileType&&this.fileBytes&&(this.fileType=RQ(this.fileBytes)),!this.fileType&&this.rootUrl&&(this.fileType=YB(this.rootUrl)),!this.fileType)throw new Error("Unable to determine file type");this.fileType===yA.RAD&&(this.radMetaPromise=this.getRadMeta())}dispose(){this.dynoIndices.value!==FI.emptyIndicesTexture&&(this.dynoIndices.value.dispose(),this.dynoIndices.value=FI.emptyIndicesTexture)}setMaxSh(A){this.maxSh=A}getRadMeta(){return this.radMetaPromise?this.radMetaPromise:(this.radMetaPromise=(async()=>{if(await DR,this.fileBytes){const A=pB(this.fileBytes.slice(0,1048576));if(A)return A;throw new Error("Failed to decode RAD header")}if(!this.rootUrl)throw new Error("No url or fileBytes provided");for(const A of[65536,256*1024,1024*1024]){const I=await rQ({url:this.rootUrl,requestHeader:this.requestHeader,withCredentials:this.withCredentials,offset:0,bytes:A}),g=pB(I);if(g)return g}throw new Error("Failed to decode RAD header")})().then(A=>A),this.radMetaPromise.catch(A=>{console.error(A)}),this.radMetaPromise)}chunkUrl(A){return this.rootUrl.replace(/-lod-0\./,`-lod-${A}.`)}async fetchDecodeChunk(A){let I;if(this.fileType===yA.RAD){const{meta:g,chunksStart:B}=await this.getRadMeta();if(A<0||A>=g.chunks.length)throw new Error(`Chunk index out of range: ${A} (max: ${g.chunks.length-1})`);let{offset:C,bytes:E,filename:D}=g.chunks[A];if(D){if(this.fileBytes)throw new Error("Chunked RAD file not supported with fileBytes");const i=new URL(this.rootUrl,window.location.href).toString(),w=new URL(D,i).toString();I=await rQ({url:w,requestHeader:this.requestHeader,withCredentials:this.withCredentials})}else if(C+=B,this.fileBytes){if(C<0||C+E>this.fileBytes.length)throw new Error(`Invalid chunk offset or bytes: ${C} + ${E} > ${this.fileBytes.length}`);I=this.fileBytes.slice(C,C+E)}else if(this.rootUrl)I=await rQ({url:this.rootUrl,requestHeader:this.requestHeader,withCredentials:this.withCredentials,offset:C,bytes:E});else throw new Error("No url or fileBytes provided")}else if(!this.fileBytes)if(this.rootUrl){const g=this.chunkUrl(A),B=new Request(g,{headers:this.requestHeader?new Headers(this.requestHeader):void 0,credentials:this.withCredentials?"include":"same-origin"}),C=await fetch(B);if(!C.ok||!C.body)throw new Error(`Failed to fetch "${g}": ${C.status} ${C.statusText}`);I=new Uint8Array(await C.arrayBuffer())}else throw new Error("No url or fileBytes provided");return await oQ.withWorker(async g=>{var D,i,w,s,o;if(!this.pager)throw new Error("PagedSplats.pager not set");if(!this.pager.extSplats){const h=(await g.call("loadPackedSplats",{fileBytes:I,pathName:this.chunkUrl(A),sh1Codes:(D=this.sh1Codes)==null?void 0:D.slice(),sh2Codes:(i=this.sh2Codes)==null?void 0:i.slice(),sh3Codes:(w=this.sh3Codes)==null?void 0:w.slice()})).lodSplats;return this.splatEncoding||(this.splatEncoding=h.splatEncoding,this.numSh=h.extra.sh3?3:h.extra.sh2?2:h.extra.sh1?1:0,this.rgbMinMaxLnScaleMinMax.value.set(this.splatEncoding.rgbMin??0,this.splatEncoding.rgbMax??1,this.splatEncoding.lnScaleMin??fA,this.splatEncoding.lnScaleMax??bA),this.lodOpacity.value=this.splatEncoding.lodOpacity??!1,this.shMax.value.set(this.splatEncoding.sh1Max??1,this.splatEncoding.sh2Max??1,this.splatEncoding.sh3Max??1)),this.sh1Codes=h.extra.sh1Codes??this.sh1Codes,this.sh2Codes=h.extra.sh2Codes??this.sh2Codes,this.sh3Codes=h.extra.sh3Codes??this.sh3Codes,h}const B=this.sh3Codes,E=(await g.call("loadExtSplats",{fileBytes:I,pathName:this.chunkUrl(A),sh1Codes:(s=this.sh1Codes)==null?void 0:s.slice(),sh2Codes:(o=this.sh2Codes)==null?void 0:o.slice(),sh3Codes:B?[B[0].slice(),B[1].slice()]:void 0})).lodSplats;return this.splatEncoding||(this.splatEncoding=eg,this.numSh=E.extra.sh3a&&E.extra.sh3b?3:E.extra.sh2?2:E.extra.sh1?1:0),this.sh1Codes=E.extra.sh1Codes??this.sh1Codes,this.sh2Codes=E.extra.sh2Codes??this.sh2Codes,this.sh3Codes=E.extra.sh3Codes??this.sh3Codes,E})}update(A,I){if(!this.pager)throw new Error("PagedSplats.pager not set");const g=this.pager.renderer;this.numSplats=A,this.dynoNumSplats.value=this.numSplats;const B=Math.ceil(A/16384);let C=this.dynoIndices.value===FI.emptyIndicesTexture?void 0:this.dynoIndices.value;if(C&&B>C.image.height&&(C.dispose(),C=void 0),!C)C=new G.DataTexture(I,4096,B,G.RGBAIntegerFormat,G.UnsignedIntType),C.internalFormat="RGBA32UI",C.needsUpdate=!0,g.initTexture(C),this.dynoIndices.value=C;else{C.image.data.set(I.subarray(0,A));const D=g.getContext();g.state.activeTexture(D.TEXTURE0),g.state.bindTexture(D.TEXTURE_2D,Ww(g,C)),D.bindBuffer(D.PIXEL_UNPACK_BUFFER,null),D.pixelStorei(D.UNPACK_FLIP_Y_WEBGL,!1),D.texSubImage2D(D.TEXTURE_2D,0,0,0,4096,B,D.RGBA_INTEGER,D.UNSIGNED_INT,I),g.state.bindTexture(D.TEXTURE_2D,null)}}prepareFetchSplat(){}getNumSplats(){return this.numSplats}hasRgbDir(){return this.pager?Math.min(this.numSh,this.pager.maxSh)>0:!1}getNumSh(){return this.numSh}fetchSplat({index:A,viewOrigin:I}){if(!this.pager)throw new Error("PagedSplats.pager not set");const g=this.pager.readIndex.apply({index:A,numSplats:this.dynoNumSplats,indices:this.dynoIndices}).index;return this.pager.extSplats?this.hasRgbDir()&&I?(this.dynoNumSh.value=Math.min(this.numSh,this.maxSh,this.pager.maxSh),this.pager.readSplatExtDir.apply({index:g,viewOrigin:I,numSh:this.dynoNumSh}).gsplat):this.pager.readSplatExt.apply({index:g}).gsplat:this.hasRgbDir()&&I?(this.dynoNumSh.value=Math.min(this.numSh,this.maxSh,this.pager.maxSh),this.pager.readSplatDir.apply({index:g,rgbMinMaxLnScaleMinMax:this.rgbMinMaxLnScaleMinMax,lodOpacity:this.lodOpacity,viewOrigin:I,numSh:this.dynoNumSh,shMax:this.shMax}).gsplat):this.pager.readSplat.apply({index:g,rgbMinMaxLnScaleMinMax:this.rgbMinMaxLnScaleMinMax,lodOpacity:this.lodOpacity}).gsplat}forEachSplat(A){if(!this.pager||!this.numSplats)return;const I=this.pager.extSplats,g=this.dynoIndices.value.image.data,B=this.pager.packedTexture.value.image.data,C=this.pager.extTexture.value.image.data,E=[B,C];for(let D=0;Dg),this.pageLru=new Set,this.freeablePages=[],this.newUploads=[],this.readyUploads=[],this.lodTreeUpdates=[],this.fetchers=[],this.fetched=[],this.fetchPriority=[],this.packedTexture=new qA({value:this.newUint32ArrayTexture(new Uint32Array(this.maxPages*256*256*4),256,256,this.maxPages,G.RGBAIntegerFormat,G.UnsignedIntType,"RGBA32UI")}),this.extTexture=new qA({value:this.extSplats?this.newUint32ArrayTexture(new Uint32Array(this.maxPages*256*256*4),256,256,this.maxPages,G.RGBAIntegerFormat,G.UnsignedIntType,"RGBA32UI"):l.emptyExtTexture}),this.sh1Texture=new qA({value:this.extSplats?l.emptyExtSh1Texture:l.emptySh1Texture}),this.sh2Texture=new qA({value:this.extSplats?l.emptyExtSh2Texture:l.emptySh2Texture}),this.sh3Texture=new qA({value:this.extSplats?l.emptyExtSh3Texture:l.emptySh3Texture}),this.sh3TextureB=new qA({value:l.emptyExtSh3BTexture}),this.readIndex=cA({index:"int",numSplats:"int",indices:"usampler2D"},{index:"int"},({index:I,numSplats:g,indices:B})=>new d({inTypes:{index:"int",numSplats:"int",indices:"usampler2D"},outTypes:{index:"int"},inputs:{index:I,numSplats:g,indices:B},statements:({inputs:C,outputs:E})=>z(` - if (${C.index} >= ${C.numSplats}) { - return; - } - - ivec2 indexCoord = ivec2((${C.index} >> 2) & 4095, ${C.index} >> 14); - uint index = texelFetch(${C.indices}, indexCoord, 0)[${C.index} & 3]; - ${E.index} = int(index); - `)}).outputs),this.readSplat=cA({index:"int",rgbMinMaxLnScaleMinMax:"vec4",lodOpacity:"bool"},{gsplat:Z},({index:I,rgbMinMaxLnScaleMinMax:g,lodOpacity:B})=>new d({inTypes:{index:"int",packedTexture:"usampler2DArray",rgbMinMaxLnScaleMinMax:"vec4",lodOpacity:"bool"},outTypes:{gsplat:Z},inputs:{index:I,packedTexture:this.packedTexture,rgbMinMaxLnScaleMinMax:g,lodOpacity:B},globals:()=>[LA],statements:({inputs:C,outputs:E})=>z(` - int index = ${C.index}; - ivec3 splatCoord = pagedSplatTexCoord(index); - uvec4 packedData = texelFetch(${C.packedTexture}, splatCoord, 0); - - unpackSplatEncoding(packedData, ${E.gsplat}.center, ${E.gsplat}.scales, ${E.gsplat}.quaternion, ${E.gsplat}.rgba, ${C.rgbMinMaxLnScaleMinMax}); - if ((${E.gsplat}.rgba.a == 0.0) || all(equal(${E.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { - return; - } - - ${E.gsplat}.index = index; - ${E.gsplat}.flags = GSPLAT_FLAG_ACTIVE; - if (${C.lodOpacity}) { - ${E.gsplat}.rgba.a *= 2.0; - } - `)}).outputs),this.readSplatDir=cA({index:"int",rgbMinMaxLnScaleMinMax:"vec4",lodOpacity:"bool",viewOrigin:"vec3",numSh:"int",shMax:"vec3"},{gsplat:Z},({index:I,rgbMinMaxLnScaleMinMax:g,lodOpacity:B,viewOrigin:C,numSh:E,shMax:D})=>{if(!I||!g||!B||!C||!E||!D)throw new Error("index and viewOrigin are required");let i=this.readSplat.apply({index:I,rgbMinMaxLnScaleMinMax:g,lodOpacity:B}).gsplat;const w=OA(i).outputs.center,s=Ug(wI(w,C));let o=vw({coord:uQ(I),viewDir:s,numSh:E,sh1Texture:this.sh1Texture,sh2Texture:this.sh2Texture,sh3Texture:this.sh3Texture,shMax:D}).rgb;return o=xA(o,OA(i).outputs.rgb),i=EI({gsplat:i,rgb:o}),{gsplat:i}}),this.readSplatExt=cA({index:"int"},{gsplat:Z},({index:I})=>new d({inTypes:{index:"int",extTexture1:"usampler2DArray",extTexture2:"usampler2DArray"},outTypes:{gsplat:Z},inputs:{index:I,extTexture1:this.packedTexture,extTexture2:this.extTexture},globals:()=>[LA],statements:({inputs:g,outputs:B})=>z(` - int index = ${g.index}; - ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16); - uvec4 ext1 = texelFetch(${g.extTexture1}, splatCoord, 0); - float alpha = unpackSplatExtAlpha(ext1); - if (alpha == 0.0) { - return; - } - - uvec4 ext2 = texelFetch(${g.extTexture2}, splatCoord, 0); - unpackSplatExt(ext1, ext2, ${B.gsplat}.center, ${B.gsplat}.scales, ${B.gsplat}.quaternion, ${B.gsplat}.rgba); - if (all(equal(${B.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { - return; - } - - ${B.gsplat}.index = index; - ${B.gsplat}.flags = GSPLAT_FLAG_ACTIVE; - `)}).outputs),this.readSplatExtDir=cA({index:"int",viewOrigin:"vec3",numSh:"int"},{gsplat:Z},({index:I,viewOrigin:g,numSh:B})=>{if(!I||!g||!B)throw new Error("index and viewOrigin are required");let C=this.readSplatExt.apply({index:I}).gsplat;const E=OA(C).outputs.center,D=Ug(wI(E,g));let i=Pw({coord:uQ(I),viewDir:D,numSh:B,sh1Texture:this.sh1Texture,sh2Texture:this.sh2Texture,sh3TextureA:this.sh3Texture,sh3TextureB:this.sh3TextureB}).rgb;return i=xA(i,OA(C).outputs.rgb),C=EI({gsplat:C,rgb:i}),{gsplat:C}})}dispose(){this.autoDrive=!1,this.numFetchers=0,this.packedTexture.value.dispose(),this.packedTexture.value.source.data=null,this.extTexture.value!==l.emptyExtTexture&&(this.extTexture.value.dispose(),this.extTexture.value.source.data=null),this.extSplats?(this.sh1Texture.value!==l.emptyExtSh1Texture&&(this.sh1Texture.value.dispose(),this.sh1Texture.value.source.data=null),this.sh2Texture.value!==l.emptyExtSh2Texture&&(this.sh2Texture.value.dispose(),this.sh2Texture.value.source.data=null),this.sh3Texture.value!==l.emptyExtSh3Texture&&(this.sh3Texture.value.dispose(),this.sh3Texture.value.source.data=null),this.sh3TextureB.value!==l.emptyExtSh3BTexture&&(this.sh3TextureB.value.dispose(),this.sh3TextureB.value.source.data=null)):(this.sh1Texture.value!==l.emptySh1Texture&&(this.sh1Texture.value.dispose(),this.sh1Texture.value.source.data=null),this.sh2Texture.value!==l.emptySh2Texture&&(this.sh2Texture.value.dispose(),this.sh2Texture.value.source.data=null),this.sh3Texture.value!==l.emptySh3Texture&&(this.sh3Texture.value.dispose(),this.sh3Texture.value.source.data=null))}ensureShTextures(A){this.curSh=Math.max(this.curSh,A),this.extSplats?this.curSh>=1&&this.sh1Texture.value===l.emptyExtSh1Texture&&(this.sh1Texture.value=this.newUint32ArrayTexture(new Uint32Array(this.maxPages*256*256*4),256,256,this.maxPages,G.RGBAIntegerFormat,G.UnsignedIntType,"RGBA32UI")):this.curSh>=1&&this.sh1Texture.value===l.emptySh1Texture&&(this.sh1Texture.value=this.newUint32ArrayTexture(new Uint32Array(this.maxPages*256*256*2),256,256,this.maxPages,G.RGIntegerFormat,G.UnsignedIntType,"RG32UI")),this.curSh>=2&&this.sh2Texture.value===(this.extSplats?l.emptyExtSh2Texture:l.emptySh2Texture)&&(this.sh2Texture.value=this.newUint32ArrayTexture(new Uint32Array(this.maxPages*256*256*4),256,256,this.maxPages,G.RGBAIntegerFormat,G.UnsignedIntType,"RGBA32UI")),this.extSplats?this.curSh>=3&&(this.sh3Texture.value===l.emptyExtSh3Texture&&(this.sh3Texture.value=this.newUint32ArrayTexture(new Uint32Array(this.maxPages*256*256*4),256,256,this.maxPages,G.RGBAIntegerFormat,G.UnsignedIntType,"RGBA32UI")),this.sh3TextureB.value===l.emptyExtSh3BTexture&&(this.sh3TextureB.value=this.newUint32ArrayTexture(new Uint32Array(this.maxPages*256*256*4),256,256,this.maxPages,G.RGBAIntegerFormat,G.UnsignedIntType,"RGBA32UI"))):this.curSh>=3&&this.sh3Texture.value===l.emptySh3Texture&&(this.sh3Texture.value=this.newUint32ArrayTexture(new Uint32Array(this.maxPages*256*256*4),256,256,this.maxPages,G.RGBAIntegerFormat,G.UnsignedIntType,"RGBA32UI"))}allocatePage(){return this.pageFreelist.shift()}freePage(A){this.pageFreelist.push(A)}getSplatsChunk(A,I){const g=this.splatsChunkToPage.get(A);if(g)return g[I]}insertSplatsChunkPage(A,I,g,B){this.splatsChunkToPage.has(A)||this.splatsChunkToPage.set(A,[]);const C=this.splatsChunkToPage.get(A);if(!C)throw new Error("impossible");I>=C.length&&(C.length=I+1);const E={page:g,lru:B};return C[I]=E,this.pageLru.add(E),this.pageToSplatsChunk[g]={splats:A,chunk:I,time:performance.now()},this.pageToSplatsChunk[g]}removeSplatsChunkPage(A,I,g){const B=this.splatsChunkToPage.get(A);if(!B)throw new Error("impossible");const C=B[I];if(!C)throw new Error(`pageLru not found for splats: ${A}, chunk: ${I}, page: ${g}`);for(this.pageLru.delete(C),B[I]=void 0;B.length>0&&B[B.length-1]===void 0;)B.pop();for(B.length===0&&this.splatsChunkToPage.delete(A),this.pageToSplatsChunk[g]=void 0;this.pageToSplatsChunk.length>0&&this.pageToSplatsChunk[this.pageToSplatsChunk.length-1]===void 0;)this.pageToSplatsChunk.pop()}uploadPage(A,I,g,B){const C=A*this.pageSplats;this.packedTexture.value.image.data.subarray(C*4,C*4+I.length).set(I),this.packedTexture.value.addLayerUpdate(A),this.packedTexture.value.needsUpdate=!0,B&&(this.extTexture.value.image.data.subarray(C*4,C*4+B.length).set(B),this.extTexture.value.addLayerUpdate(A),this.extTexture.value.needsUpdate=!0);const D=this.extSplats?g.sh3a&&g.sh3b?3:g.sh2?2:g.sh1?1:0:g.sh3?3:g.sh2?2:g.sh1?1:0;if(this.ensureShTextures(D),this.extSplats){if(this.sh1Texture.value!==l.emptyExtSh1Texture&&g.sh1){const i=g.sh1;this.sh1Texture.value.image.data.subarray(C*4,C*4+i.length).set(i),this.sh1Texture.value.addLayerUpdate(A),this.sh1Texture.value.needsUpdate=!0}}else if(this.sh1Texture.value!==l.emptySh1Texture&&g.sh1){const i=g.sh1;this.sh1Texture.value.image.data.subarray(C*2,C*2+i.length).set(i),this.sh1Texture.value.addLayerUpdate(A),this.sh1Texture.value.needsUpdate=!0}if(this.sh2Texture.value!==l.emptySh2Texture&&g.sh2){const i=g.sh2;this.sh2Texture.value.image.data.subarray(C*4,C*4+i.length).set(i),this.sh2Texture.value.addLayerUpdate(A),this.sh2Texture.value.needsUpdate=!0}if(this.extSplats){if(this.sh3Texture.value!==l.emptyExtSh3Texture&&g.sh3a){const i=g.sh3a;this.sh3Texture.value.image.data.subarray(C*4,C*4+i.length).set(i),this.sh3Texture.value.addLayerUpdate(A),this.sh3Texture.value.needsUpdate=!0}if(this.sh3TextureB.value!==l.emptyExtSh3BTexture&&g.sh3b){const i=g.sh3b;this.sh3TextureB.value.image.data.subarray(C*4,C*4+i.length).set(i),this.sh3TextureB.value.addLayerUpdate(A),this.sh3TextureB.value.needsUpdate=!0}}else if(this.sh3Texture.value!==l.emptySh3Texture&&g.sh3){const i=g.sh3;this.sh3Texture.value.image.data.subarray(C*4,C*4+i.length).set(i),this.sh3Texture.value.addLayerUpdate(A),this.sh3Texture.value.needsUpdate=!0}}getGlTexture(A){return Ww(this.renderer,A)}newUint32ArrayTexture(A,I,g,B,C,E,D){const i=new G.DataArrayTexture(A,I,g,B);return i.format=C,i.type=E,i.internalFormat=D,i.needsUpdate=!0,this.renderer.initTexture(i),i}driveFetchers(){const A=[],I=[];let g=0;for(const{splats:E,chunk:D}of this.fetchPriority){const i=this.getSplatsChunk(E,D);if(i){g>=this.maxPages?I.push(i):A.push(i),g+=1;continue}if(this.fetched.some(({splats:w,chunk:s})=>E===w&&D===s)||this.fetchers.some(({splats:w,chunk:s})=>E===w&&D===s)){g+=1;continue}if(g{this.fetched.push({splats:E,chunk:D,data:s}),this.fetchPause>0&&await new Promise(o=>setTimeout(o,this.fetchPause))},async s=>{console.warn(s);const o=250+500*Math.random();await new Promise(y=>setTimeout(y,o))}).finally(()=>{this.fetchers=this.fetchers.filter(({splats:s,chunk:o})=>E!==s||D!==o),this.processFetched()});this.fetchers.push({splats:E,chunk:D,promise:w}),w.then(s=>{this.autoDrive&&this.driveFetchers()})}}const B=performance.now();for(const E of I.reverse())E.lru=B,this.pageLru.delete(E),this.pageLru.add(E);const C=new Set(this.pageLru);for(const E of A.reverse())C.delete(E),E.lru=B,this.pageLru.delete(E),this.pageLru.add(E);this.freeablePages=Array.from(C).map(({page:E})=>E)}allocateFreeable(){const A=this.freeablePages.shift();if(A===void 0)return;const I=this.pageToSplatsChunk[A];if(!I)throw new Error(`splatsChunk not found for page: ${A}`);const{splats:g,chunk:B}=I;return this.removeSplatsChunkPage(g,B,A),this.lodTreeUpdates.push({splats:g,page:A,chunk:B,numSplats:this.pageSplats}),A}processFetched(){const A=performance.now();for(;;){const I=this.fetched.shift();if(!I)break;const{splats:g,chunk:B,data:C}=I;let E=this.allocatePage();if(E===void 0&&(E=this.allocateFreeable(),E===void 0))return;this.insertSplatsChunkPage(g,B,E,A);const{numSplats:D,extra:i}=C;if(this.lodTreeUpdates.push({splats:g,page:E,chunk:B,numSplats:D,lodTree:i.lodTree}),this.extSplats){const w=C.extArrays,s=w[0],o=w[1];this.newUploads.push({page:E,numSplats:D,packedArray:s,extArray:o,extra:i})}else{const w=C.packedArray;this.newUploads.push({page:E,numSplats:D,packedArray:w,extra:i})}}}processUploads(){for(;;){const A=this.readyUploads.shift();if(!A)break;const{page:I,numSplats:g,packedArray:B,extArray:C,extra:E}=A;this.uploadPage(I,B,E,C)}}consumeLodTreeUpdates(){const A=this.lodTreeUpdates;return this.lodTreeUpdates=[],this.readyUploads.push(...this.newUploads),this.newUploads=[],A}};l.emptyUint32x4=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=BA(1),C=new Uint32Array(B*4),E=new G.DataArrayTexture(C,A,I,g);return E.format=G.RGBAIntegerFormat,E.type=G.UnsignedIntType,E.internalFormat="RGBA32UI",E.needsUpdate=!0,E})(),l.emptyUint32x2=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=BA(1),C=new Uint32Array(B*2),E=new G.DataArrayTexture(C,A,I,g);return E.format=G.RGIntegerFormat,E.type=G.UnsignedIntType,E.internalFormat="RG32UI",E.needsUpdate=!0,E})(),l.emptyIndicesTexture=(()=>{const A=new Uint32Array(16384),I=new G.DataTexture(A,4096,1);return I.format=G.RGBAIntegerFormat,I.type=G.UnsignedIntType,I.internalFormat="RGBA32UI",I.needsUpdate=!0,I})(),l.emptyPackedTexture=l.emptyUint32x4,l.emptyExtTexture=l.emptyUint32x4,l.emptySh1Texture=l.emptyUint32x2,l.emptySh2Texture=l.emptyUint32x4,l.emptySh3Texture=l.emptyUint32x4,l.emptyExtSh1Texture=l.emptyUint32x4,l.emptyExtSh2Texture=l.emptyUint32x4,l.emptyExtSh3Texture=l.emptyUint32x4,l.emptyExtSh3BTexture=l.emptyUint32x4;let FI=l;function Ww(Q,A){if(!Q.properties.has(A))throw new Error("texture not found");const g=Q.properties.get(A).__webglTexture;if(!g)throw new Error("texture not found");return g}const DR=uw();async function rQ({url:Q,requestHeader:A,withCredentials:I,offset:g,bytes:B}){const C=new Request(Q,{headers:A?new Headers(A):void 0,credentials:I?"include":"same-origin"});g!==void 0&&B!==void 0&&C.headers.set("Range",`bytes=${g}-${g+B-1}`);const E=await fetch(C);if(!E.ok||!E.body)throw new Error(`Failed to fetch "${Q}": ${E.status} ${E.statusText}`);return new Uint8Array(await E.arrayBuffer())}class iR{constructor(){this.fetchDyno=new d({inTypes:{},outTypes:{gsplat:Z},globals:()=>[LA],statements:({outputs:A})=>z(` - ${A.gsplat}.flags = 0u; - return; - `)}).outputs.gsplat}prepareFetchSplat(){}dispose(){}getNumSplats(){return 0}hasRgbDir(){return!1}getNumSh(){return 0}setMaxSh(A){}fetchSplat({index:A}){return this.fetchDyno}forEachSplat(){}}const PA=class PA extends YI{constructor(A={}){if(super({update:I=>this.update(I)}),this.isInitialized=!1,this.recolor=new G.Color(1,1,1),this.opacity=1,this.generatorDirty=!0,this.enableViewToObject=!1,this.enableViewToWorld=!1,this.enableWorldToView=!1,this.skinning=null,this.edits=null,this.rgbaDisplaceEdits=null,this.splatRgba=null,this.maxSh=3,this.showLodPageDyno=new DI({value:0}),A.splats)this.splats=A.splats,this.numSplats=A.splats.getNumSplats();else if(A.paged){A.extSplats&&console.warn("To set extSplats with the paged option, set SparkRenderer.pagedExtSplats");const I=A.url??"";if(A.paged===!0)this.paged=new Sg({rootUrl:I});else if(A.paged instanceof Sg)this.paged=A.paged;else if(A.paged instanceof FI)this.paged=new Sg({rootUrl:I,pager:A.paged});else throw new Error("Invalid paged option");this.splats=this.paged}else A.extSplats?(this.extSplats=A.extSplats instanceof BI?A.extSplats:new BI,A.extSplats=this.extSplats,this.numSplats=this.extSplats.numSplats,this.splats=this.extSplats):A.packedSplats?(this.packedSplats=A.packedSplats,this.packedSplats.splatEncoding=A.splatEncoding??{...eg},this.splats=this.packedSplats):this.packedSplats=new _A;if(this.editable=A.editable??!0,this.raycastable=A.raycastable??!0,this.minRaycastOpacity=A.minRaycastOpacity??.2,this.onFrame=A.onFrame,this.context={transform:new lI,viewToWorld:new lI,worldToView:new lI,viewToObject:new lI,covTransform:new fg,covViewToWorld:new fg,covWorldToView:new fg,covViewToObject:new fg,recolor:new VI({value:new G.Vector4().setScalar(Number.NEGATIVE_INFINITY)}),time:new bI({value:0}),deltaTime:new bI({value:0}),numSplats:new DI({value:0}),splats:new iR,enableLod:new uI({value:!1}),lodIndices:new GQ({value:mB,key:"lodIndices"})},this.covSplats=A.covSplats??!1,this.covSplats&&!this.extSplats)throw new Error("CovSplats requires ExtSplats");if(this.objectModifiers=A.objectModifier?[A.objectModifier]:void 0,this.worldModifiers=A.worldModifier?[A.worldModifier]:void 0,A.objectModifiers&&(this.objectModifiers=A.objectModifiers),A.worldModifiers&&(this.worldModifiers=A.worldModifiers),this.enableLod=A.enableLod,this.lodScale=A.lodScale??1,this.behindFoveate=A.behindFoveate,this.coneFov0=A.coneFov0,this.coneFov=A.coneFov,this.coneFoveate=A.coneFoveate,this.updateGenerator(),A.url||A.fileBytes||A.stream||A.constructSplats||A.packedSplats&&!A.packedSplats.isInitialized||this.extSplats&&!this.extSplats.isInitialized)this.initialized=this.asyncInitialize(A).then(async()=>{if(this.updateGenerator(),this.isInitialized=!0,A.onLoad){const I=A.onLoad(this);I instanceof Promise&&await I}return this});else if(this.isInitialized=!0,this.initialized=Promise.resolve(this),A.onLoad){const I=A.onLoad(this);I instanceof Promise&&(this.initialized=I.then(()=>this))}}async asyncInitialize(A){const{url:I,fileBytes:g,fileType:B,fileName:C,stream:E,streamLength:D,maxSplats:i,constructSplats:w,onProgress:s,splatEncoding:o,lod:y,nonLod:h,lodAbove:k}=A;if(this.packedSplats){if(I||g||E||w){const R={url:I,fileBytes:g,fileType:B,fileName:C,stream:E,streamLength:D,maxSplats:i,construct:w,onProgress:s,splatEncoding:o,lod:y,nonLod:h,lodAbove:k};this.packedSplats.reinitialize(R)}await this.packedSplats.initialized,this.splats=this.packedSplats}else if(this.extSplats&&(I||g||E||w)){const R=w;this.extSplats.reinitialize({url:I,fileBytes:g,fileType:B,fileName:C,stream:E,streamLength:D,maxSplats:i,construct:R,onProgress:s,lod:y,nonLod:h,lodAbove:k}),await this.extSplats.initialized,this.splats=this.extSplats}this.splats&&(this.numSplats=this.splats.getNumSplats(),this.updateGenerator())}static async staticInitialize(){await uw(),PA.isStaticInitialized=!0}pushSplat(A,I,g,B,C){this.packedSplats?this.packedSplats.pushSplat(A,I,g,B,C):this.extSplats&&this.extSplats.pushSplat(A,I,g,B,C)}forEachSplat(A){var I;(I=this.splats)==null||I.forEachSplat(A)}dispose(){this.splats&&this.splats!==this.packedSplats&&this.splats!==this.extSplats&&(this.splats.dispose(),this.splats=void 0),this.packedSplats&&(this.packedSplats.dispose(),this.packedSplats=void 0),this.extSplats&&(this.extSplats.dispose(),this.extSplats=void 0)}getBoundingBox(A=!0){var i;if(!this.initialized)throw new Error("Cannot get bounding box before SplatMesh is initialized");const I=new G.Vector3(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),g=new G.Vector3(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),B=new G.Vector3,C=[-1,1];function E(w,s,o,y,h,k){if(A)I.min(s),g.max(s);else for(const R of C)for(const F of C)for(const a of C)B.set(R*o.x,F*o.y,a*o.z),B.applyQuaternion(y),B.add(s),I.min(B),g.max(B)}return(i=this.splats)==null||i.forEachSplat(E),new G.Box3(I,g)}set objectModifier(A){A?this.objectModifiers=[A]:this.objectModifiers=void 0}set worldModifier(A){A?this.worldModifiers=[A]:this.worldModifiers=void 0}constructGenerator(A){if(this.covSplats)return this.constructCovGenerator(A);const{transform:I,viewToObject:g,recolor:B}=A,C=cA({index:"int"},{gsplat:Z},({index:E})=>{if(!E)throw new Error("index is undefined");E=TB(A.lodIndices,E,A.numSplats,A.enableLod,this.showLodPageDyno),A.splats.setMaxSh(this.maxSh),A.splats.prepareFetchSplat();let D=A.splats.fetchSplat({index:E,viewOrigin:g.translate});if(this.splatRgba&&(D=OB(D,this.splatRgba.dyno,E,A.enableLod)),this.skinning&&(D=this.skinning.modify(D)),this.objectModifiers)for(const w of this.objectModifiers)D=w.apply({gsplat:D}).gsplat;D=I.applyGsplat(D);const i=kA(B,OA(D).outputs.rgba);if(D=EI({gsplat:D,rgba:i}),this.rgbaDisplaceEdits&&(D=this.rgbaDisplaceEdits.modify(D)),this.worldModifiers)for(const w of this.worldModifiers)D=w.apply({gsplat:D}).gsplat;return{gsplat:D}});this.generator=C,this.covGenerator=void 0}constructCovGenerator(A){const{covTransform:I,covViewToObject:g,recolor:B}=A,C=cA({index:"int"},{covsplat:rA},({index:E})=>{if(!E)throw new Error("index is undefined");E=TB(A.lodIndices,E,A.numSplats,A.enableLod,this.showLodPageDyno),A.splats.prepareFetchSplat();let D=A.splats.fetchSplat({index:E,viewOrigin:g.offset});if(this.splatRgba&&(D=OB(D,this.splatRgba.dyno,E,A.enableLod)),this.objectModifiers)for(const s of this.objectModifiers)D=s.apply({gsplat:D}).gsplat;let i=$g(D);if(this.skinning&&(i=this.skinning.modifyCov(i)),this.covObjectModifiers)for(const s of this.covObjectModifiers)i=s.apply({covsplat:i}).covsplat;i=I.applyCovSplat(i);const w=kA(B,AQ(i).outputs.rgba);if(i=RB({covsplat:i,rgba:w}),this.rgbaDisplaceEdits&&(i=this.rgbaDisplaceEdits.modifyCov(i)),this.covWorldModifiers)for(const s of this.covWorldModifiers)i=s.apply({covsplat:i}).covsplat;return{covsplat:i}});this.generator=void 0,this.covGenerator=C}updateGenerator(){this.generatorDirty=!0}update({renderer:A,time:I,deltaTime:g,viewToWorld:B,camera:C,renderSize:E,globalEdits:D,lodIndices:i}){var R,F,a;this.context.time.value=I,this.context.deltaTime.value=g,PA.dynoTime.value=I,this.showLodPageDyno.value=this.showLodPage??-1;const w=this.splats??this.packedSplats??this.extSplats;w&&(this.context.splats=w),this.numSplats=this.context.splats.getNumSplats();let s=!1;const o=((R=this.packedSplats)==null?void 0:R.lodSplats)??((F=this.extSplats)==null?void 0:F.lodSplats);if(this.context.enableLod.value=o!=null&&i!=null,this.enableLod===!1&&(this.context.enableLod.value=!1),this.context.lodIndices.value=(i==null?void 0:i.texture)??mB,this.context.enableLod.value&&o&&(this.context.splats=o,this.numSplats=(i==null?void 0:i.numSplats)??0),this.context.numSplats.value=this.numSplats,this.context.splats!==this.lastSplats&&(this.lastSplats=this.context.splats,this.generatorDirty=!0),this.covSplats){this.context.covTransform.update(this)&&(s=!0),this.context.covViewToWorld.updateFromMatrix(B)&&this.enableViewToWorld&&(s=!0);const S=B.clone().invert();this.context.covWorldToView.updateFromMatrix(S)&&this.enableWorldToView&&(s=!0);const c=this.matrixWorld.clone().invert().multiply(B);this.context.covViewToObject.updateFromMatrix(c)&&(this.enableViewToObject||this.context.splats.hasRgbDir())&&(s=!0)}else{this.context.transform.update(this)&&(s=!0),this.context.viewToWorld.updateFromMatrix(B)&&this.enableViewToWorld&&(s=!0);const S=B.clone().invert();this.context.worldToView.updateFromMatrix(S)&&this.enableWorldToView&&(s=!0);const N=new G.Matrix4().compose(this.context.transform.translate.value,this.context.transform.rotate.value,new G.Vector3().setScalar(this.context.transform.scale.value)).invert().multiply(B);this.context.viewToObject.updateFromMatrix(N)&&(this.enableViewToObject||this.context.splats.hasRgbDir())&&(s=!0)}const y=new G.Vector4(this.recolor.r,this.recolor.g,this.recolor.b,this.opacity);y.equals(this.context.recolor.value)||(this.context.recolor.value.copy(y),s=!0);const h=this.editable?(this.edits??[]).concat(D):[];this.editable&&!this.edits&&this.traverseVisible(S=>{S instanceof Qg&&h.push(S)}),h.sort((S,M)=>S.ordering-M.ordering);const k=h.map(S=>{if(S.sdfs!=null)return{edit:S,sdfs:S.sdfs};const M=[];return S.traverseVisible(c=>{c instanceof Zw&&M.push(c)}),{edit:S,sdfs:M}});if(k.length>0&&!this.rgbaDisplaceEdits){const S=k.length,M=k.reduce((c,N)=>c+N.sdfs.length,0);this.rgbaDisplaceEdits=new Vw({maxEdits:S,maxSdfs:M}),this.generatorDirty=!0}if(this.rgbaDisplaceEdits){const S=this.rgbaDisplaceEdits.update(k);s||(s=S.updated),S.dynoUpdated&&(this.generatorDirty=!0)}this.generatorDirty&&(this.constructGenerator(this.context),this.generatorDirty=!1,s=!0),s&&this.updateVersion(),(a=this.onFrame)==null||a.call(this,{mesh:this,time:I,deltaTime:g})}raycast(A,I){var a,S,M,c,N,U,J,t,H,K,Y,L,q,n,r,p,m,IA,X,EA,j,gA,W;if(!PA.isStaticInitialized||!this.raycastable||!this.packedSplats&&!this.extSplats&&!this.paged)return;const g=this.paged!=null,B=g?((S=(a=this.paged)==null?void 0:a.pager)==null?void 0:S.extSplats)??!1:this.extSplats!=null,{near:C,far:E,ray:D}=A,i=this.matrixWorld.clone().invert(),w=new G.Matrix3().setFromMatrix4(i),s=D.origin.clone().applyMatrix4(i),o=D.direction.clone().applyMatrix3(w),y=Kh(),h=y.length/4;let k=0;const R=((M=this.raycastIndices)==null?void 0:M.numSplats)??(g?(c=this.paged)==null?void 0:c.numSplats:this.context.numSplats.value)??0,F=((N=this.raycastIndices)==null?void 0:N.indices)??(g?(U=this.paged)==null?void 0:U.dynoIndices.value.image.data:this.context.enableLod.value?this.context.lodIndices.value.image.data:null)??null;if(B){const u=eh(),b=g?(r=(n=this.paged)==null?void 0:n.pager)==null?void 0:r.packedTexture.value.image.data:F?(m=(p=this.extSplats)==null?void 0:p.lodSplats)==null?void 0:m.extArrays[0]:(IA=this.extSplats)==null?void 0:IA.extArrays[0],T=g?(EA=(X=this.paged)==null?void 0:X.pager)==null?void 0:EA.extTexture.value.image.data:F?(gA=(j=this.extSplats)==null?void 0:j.lodSplats)==null?void 0:gA.extArrays[1]:(W=this.extSplats)==null?void 0:W.extArrays[1];if(!b||!T)return;for(let f=0;fB){for(;Bz(` - int index = ${C.index}; - if (${C.showLodPage} < 0) { - if (index >= ${C.numSplats}) { - return; - } - if (${C.enableLod}) { - ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14); - uint splatIndex = texelFetch(${C.lodIndices}, lodIndexCoord, 0)[index & 3]; - ${E.index} = int(splatIndex); - } else { - ${E.index} = index; - } - } else { - int start = ${C.showLodPage} << 16; - if (index >= 65536) { - return; - } - ${E.index} = start + index; - } - `)}).outputs.index}function OB(Q,A,I,g){return EQ({inTypes:{gsplat:Z,rgba:MB,index:"int",enableLod:"bool"},outTypes:{gsplat:Z},inputs:{gsplat:Q,rgba:A,index:I,enableLod:g},statements:({inputs:B,outputs:C})=>z(` - ${C.gsplat} = ${B.gsplat}; - if (!${B.enableLod} && (${B.index} >= 0) && (${B.index} < ${B.rgba}.count)) { - ${C.gsplat}.rgba = texelFetch(${B.rgba}.texture, splatTexCoord(${B.index}), 0); - } - `)}).outputs.gsplat}const mB=(()=>{const Q=new G.DataTexture(new Uint32Array(16384),4096,1,G.RGBAIntegerFormat,G.UnsignedIntType);return Q.internalFormat="RGBA32UI",Q.needsUpdate=!0,Q})();new G.BufferGeometry;new G.ShaderMaterial;const ZB=["char","uchar","short","ushort","int","uint","float","double"],vI=class vI{constructor({fileBytes:A}){this.header="",this.littleEndian=!0,this.elements={},this.comments=[],this.data=null,this.numSplats=0,this.fileBytes=A instanceof ArrayBuffer?new Uint8Array(A):A}async parseHeader(){const I=new ReadableStream({start:E=>{E.enqueue(this.fileBytes.slice(0,65536)),E.close()}}).pipeThrough(new TextDecoderStream).getReader();this.header="";const g=`end_header -`;for(;;){const{value:E,done:D}=await I.read();if(D)throw new Error("Failed to read header");this.header+=E;const i=this.header.indexOf(g);if(i>=0){this.header=this.header.slice(0,i+g.length);break}}const B=new TextEncoder().encode(this.header).length;this.data=new DataView(this.fileBytes.buffer,B),this.elements={};let C=null;this.comments=[],this.header.trim().split(` -`).forEach((E,D)=>{const i=E.trim();if(D===0){if(i!=="ply")throw new Error("Invalid PLY header");return}if(i.length===0)return;const w=i.split(" ");switch(w[0]){case"format":if(w[1]==="binary_little_endian")this.littleEndian=!0;else if(w[1]==="binary_big_endian")this.littleEndian=!1;else throw new Error(`Unsupported PLY format: ${w[1]}`);if(w[2]!=="1.0")throw new Error(`Unsupported PLY version: ${w[2]}`);break;case"end_header":break;case"comment":this.comments.push(i.slice(8));break;case"element":{const s=w[1];C={name:s,count:Number.parseInt(w[2]),properties:{}},this.elements[s]=C;break}case"property":if(C==null)throw new Error("Property must be inside an element");w[1]==="list"?C.properties[w[4]]={isList:!0,type:w[3],countType:w[2]}:C.properties[w[2]]={isList:!1,type:w[1]};break}}),this.elements.vertex&&(this.numSplats=this.elements.vertex.count)}parseData(A){let I=0;const g=this.data;if(g==null)throw new Error("No data to parse");for(const B in this.elements){const C=this.elements[B],{count:E,properties:D}=C,i=sR(D),w=GR(D,this.littleEndian),s=A(C)??(()=>{});for(let o=0;o[0,1,2].map((c,N)=>M+N*a/3)),D=new Array(5).fill(null).flatMap((S,M)=>[0,1,2].map((c,N)=>3+M+N*a/3)),i=new Array(7).fill(null).flatMap((S,M)=>[0,1,2].map((c,N)=>8+M+N*a/3)),w=C>=1?new Float32Array(3*3):void 0,s=C>=2?new Float32Array(5*3):void 0,o=C>=3?new Float32Array(7*3):void 0}function h(a,S){if(!w)throw new Error("Missing sh1");const M=S.f_rest;for(let c=0;c{const{min_x:p,min_y:m,min_z:IA,max_x:X,max_y:EA,max_z:j,min_scale_x:gA,min_scale_y:W,min_scale_z:u,max_scale_x:b,max_scale_y:T,max_scale_z:f,min_r:aA,min_g:sA,min_b:SA,max_r:NA,max_g:wA,max_b:GA}=r;B.push({min_x:p,min_y:m,min_z:IA,max_x:X,max_y:EA,max_z:j,min_scale_x:gA,min_scale_y:W,min_scale_z:u,max_scale_x:b,max_scale_y:T,max_scale_z:f,min_r:aA,min_g:sA,min_b:SA,max_r:NA,max_g:wA,max_b:GA})}}function R(a){if(I&&a.name==="sh")return C=WQ(a.properties),y(),h;if(a.name!=="vertex")return null;const{packed_position:S,packed_rotation:M,packed_scale:c,packed_color:N}=a.properties;if(!S||!M||!c||!N)throw new Error("Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color");const U=Math.sqrt(2);return(J,t)=>{const H=B[J>>>8];if(H==null)throw new Error("Missing PLY chunk");const{min_x:K,min_y:Y,min_z:L,max_x:q,max_y:n,max_z:r,min_scale_x:p,min_scale_y:m,min_scale_z:IA,max_scale_x:X,max_scale_y:EA,max_scale_z:j,min_r:gA,min_g:W,min_b:u,max_r:b,max_g:T,max_b:f}=H,{packed_position:aA,packed_rotation:sA,packed_scale:SA,packed_color:NA}=t,wA=(aA>>>21&2047)/2047*(q-K)+K,GA=(aA>>>11&1023)/1023*(n-Y)+Y,II=(aA&2047)/2047*(r-L)+L,mA=((sA>>>20&1023)/1023-.5)*U,SI=((sA>>>10&1023)/1023-.5)*U,NI=((sA&1023)/1023-.5)*U,_=Math.sqrt(Math.max(0,1-mA*mA-SI*SI-NI*NI)),ZA=sA>>>30,YA=ZA===0?mA:ZA===1?_:SI,Dg=ZA<=1?SI:ZA===2?_:NI,xg=ZA<=2?NI:_,VA=ZA===0?_:mA,$=Math.exp((SA>>>21&2047)/2047*(X-p)+p),RI=Math.exp((SA>>>11&1023)/1023*(EA-m)+m),SQ=Math.exp((SA&2047)/2047*(j-IA)+IA),NQ=(NA>>>24&255)/255*((b??1)-(gA??0))+(gA??0),cQ=(NA>>>16&255)/255*((T??1)-(W??0))+(W??0),MQ=(NA>>>8&255)/255*((f??1)-(u??0))+(u??0),JQ=(NA&255)/255;A(J,wA,GA,II,$,RI,SQ,YA,Dg,xg,VA,JQ,NQ,cQ,MQ)}}const F=a=>{if(a.name==="chunk")return k(a);if(g)return R(a);if(a.name!=="vertex")return null;const{x:S,y:M,z:c,scale_0:N,scale_1:U,scale_2:J,rot_0:t,rot_1:H,rot_2:K,rot_3:Y,opacity:L,f_dc_0:q,f_dc_1:n,f_dc_2:r,red:p,green:m,blue:IA,alpha:X}=a.properties;if(!S||!M||!c)throw new Error("Missing PLY properties: x, y, z");const EA=N&&U&&J,j=t&&H&&K&&Y,gA=X!=null?Pg[X.type]:1,W=p!=null?Pg[p.type]:1,u=m!=null?Pg[m.type]:1,b=IA!=null?Pg[IA.type]:1;return C=WQ(a.properties),y(),(T,f)=>{const aA=EA?Math.exp(f.scale_0):vI.defaultPointScale,sA=EA?Math.exp(f.scale_1):vI.defaultPointScale,SA=EA?Math.exp(f.scale_2):vI.defaultPointScale,NA=j?f.rot_1:0,wA=j?f.rot_2:0,GA=j?f.rot_3:0,II=j?f.rot_0:1,mA=L!=null?1/(1+Math.exp(-f.opacity)):X!=null?f.alpha/gA:1,SI=q!=null?f.f_dc_0*bg+.5:p!=null?f.red/W:1,NI=n!=null?f.f_dc_1*bg+.5:m!=null?f.green/u:1,_=r!=null?f.f_dc_2*bg+.5:IA!=null?f.blue/b:1;if(A(T,f.x,f.y,f.z,aA,sA,SA,NA,wA,GA,II,mA,SI,NI,_),I&&w){const ZA=f.f_rest;if(w)for(let YA=0;YA{const h=jI[y.countType](g,I,this.littleEndian);I+=CI[y.countType],I+=h*CI[y.type]});else{if(s)if(o==="f_dc_0"||o==="f_dc_1"||o==="f_dc_2"){const h=Number.parseInt(o.slice(5));i.push(()=>{const k=(A[w+h]/255-.5)/bg;VB[y.type](g,I,this.littleEndian,k)})}else o==="opacity"&&i.push(()=>{const h=Math.max(-100,Math.min(100,-Math.log(1/(A[w+3]/255)-1)));VB[y.type](g,I,this.littleEndian,h)});i.push(()=>{I+=CI[y.type]})}for(let o=0;oQ.getInt8(A),uchar:(Q,A,I)=>Q.getUint8(A),short:(Q,A,I)=>Q.getInt16(A,I),ushort:(Q,A,I)=>Q.getUint16(A,I),int:(Q,A,I)=>Q.getInt32(A,I),uint:(Q,A,I)=>Q.getUint32(A,I),float:(Q,A,I)=>Q.getFloat32(A,I),double:(Q,A,I)=>Q.getFloat64(A,I)},VB={char:(Q,A,I,g)=>{Q.setInt8(A,g)},uchar:(Q,A,I,g)=>{Q.setUint8(A,g)},short:(Q,A,I,g)=>{Q.setInt16(A,g,I)},ushort:(Q,A,I,g)=>{Q.setUint16(A,g,I)},int:(Q,A,I,g)=>{Q.setInt32(A,g,I)},uint:(Q,A,I,g)=>{Q.setUint32(A,g,I)},float:(Q,A,I,g)=>{Q.setFloat32(A,g,I)},double:(Q,A,I,g)=>{Q.setFloat64(A,g,I)}},CI={char:1,uchar:1,short:2,ushort:2,int:4,uint:4,float:4,double:8},Pg={char:127,uchar:255,short:32767,ushort:65535,int:2147483647,uint:4294967295,float:1,double:1},wR={0:0,9:1,24:2,45:3},oR={0:0,1:9,2:24,3:45},HB=/^f_rest_([0-9]{1,2})$/;function sR(Q){const A={};for(const[I,g]of Object.entries(Q))HB.test(I)?A.f_rest=new Array(WQ(Q)):A[I]=g.isList?[]:0;return A}function GR(Q,A){return RR(Q)?kR(Q,A):FR(Q,A)}const yR=(()=>{try{new Function("return 42;")}catch{return!1}return!0})(),hR=/^[a-zA-Z0-9_]+$/;function RR(Q){if(!yR)return!1;for(const[A,I]of Object.entries(Q))if(!hR.test(A)||I.isList&&!ZB.includes(I.countType)||!ZB.includes(I.type))return!1;return!0}function kR(Q,A){const I=["let list;"];for(const[B,C]of Object.entries(Q)){const E=B.match(HB);if(E){const D=+E[1];I.push(` - item.f_rest[${D}] = PARSE_FIELD['${C.type}'](data, offset, ${A}); - offset += ${CI[C.type]}; - `)}else C.isList?I.push(` - list = item['${B}']; - list.length = PARSE_FIELD['${C.countType}'](data, offset, ${A}); - offset += ${CI[C.countType]}; - for (let i = 0; i < list.length; i++) { - list[i] = PARSE_FIELD['${C.type}'](data, offset, ${A}); - offset += ${CI[C.type]}; - } - `):I.push(` - item['${B}'] = PARSE_FIELD['${C.type}'](data, offset, ${A}); - offset += ${CI[C.type]}; - `)}I.push("return offset;");const g=new Function("data","offset","item","PARSE_FIELD",I.join(` -`));return(B,C,E)=>g(B,C,E,jI)}function FR(Q,A){const I=[];for(const[g,B]of Object.entries(Q)){const C=g.match(HB);if(C){const E=+C[1];I.push((D,i,w)=>(w.f_rest[E]=jI[B.type](D,i,A),i+CI[B.type]))}else B.isList?I.push((E,D,i)=>{const w=i[g];w.length=jI[B.countType](E,D,A);let s=D+CI[B.countType];for(let o=0;o(i[g]=jI[B.type](E,D,A),D+CI[B.type]))}return(g,B,C)=>{let E=B;for(let D=0;D{this.load(A,C=>{g(C)},I,B)})}parse(A){return new vA({packedSplats:A})}loadInternal({packedSplats:A,extSplats:I,url:g,fileBytes:B,fileType:C,fileName:E,stream:D,streamLength:i,onLoad:w,onProgress:s,onError:o,lod:y,nonLod:h,lodAbove:k,lodBase:R}){B instanceof ArrayBuffer&&(B=new Uint8Array(B));const F=B?void 0:this.manager.resolveURL((this.path??"")+(g??""));let a=D==null?void 0:D.getReader();this.manager.itemStart(F??""),oQ.withWorker(async S=>{const M=(A==null?void 0:A.lod)??(I==null?void 0:I.lod);M&&(y=M);const c=(A==null?void 0:A.nonLod)??(I==null?void 0:I.nonLod);c!==void 0&&(h=c);const N=async t=>{const{loaded:H,total:K}=t;if(H!==void 0&&s&&s(new ProgressEvent("progress",{lengthComputable:K!==0,loaded:H,total:K})),t.nextChunk){let Y;if(!a)Y=new Uint8Array(0);else{const{done:L,value:q}=await a.read();L?(a.releaseLock(),a=void 0,Y=new Uint8Array(0)):Y=q}S.call("nextChunk",{chunk:Y})}},U=F?new URL(F,window.location.href).toString():void 0,J=await S.call(I?"loadExtSplats":"loadPackedSplats",{url:U,requestHeader:this.requestHeader,withCredentials:this.withCredentials,fileBytes:B==null?void 0:B.slice(),fileType:C,pathName:F||E,chunked:D!==void 0,chunkedLength:i,encoding:A==null?void 0:A.splatEncoding,lod:y,lodBase:R,nonLod:h,lodAbove:k},{onStatus:N});if(J.lodSplats&&(I?J.lodSplats=new BI({...J.lodSplats}):J.lodSplats=new _A({...J.lodSplats,maxSplats:A==null?void 0:A.maxSplats})),I){const t={...J};I.initialize(t),w==null||w(I)}else{const t={...J};A?(A.initialize(t),w==null||w(A)):w==null||w(new _A(t))}}).catch(S=>{this.manager.itemError(F??""),o==null||o(S)}).finally(()=>{this.manager.itemEnd(F??"")})}async loadInternalAsync({packedSplats:A,extSplats:I,url:g,fileBytes:B,fileType:C,fileName:E,stream:D,streamLength:i,onProgress:w,lod:s,nonLod:o,lodAbove:y,lodBase:h}){return new Promise((k,R)=>{this.loadInternal({packedSplats:A,extSplats:I,url:g,fileBytes:B,fileType:C,fileName:E,stream:D,streamLength:i,onLoad:k,onProgress:w,onError:R,lod:s,nonLod:o,lodAbove:y,lodBase:h})})}}function RQ(Q){const I=new DataView(Q.buffer).getUint32(0,!0);if((I&16777215)===7957616)return yA.PLY;if((I&16777215)===559903){const g=xC(Q,4);return new DataView(g.buffer).getUint32(0,!0)===1347635022?yA.SPZ:void 0}if(I===67324752)return NR(Q)?yA.PCSOGSZIP:void 0;if(I===809779538)return yA.RAD}function aR(Q){const A=Q.split(/[?#]/,1)[0],I=Math.max(A.lastIndexOf("/"),A.lastIndexOf("\\")),g=A.slice(I+1),B=g.lastIndexOf(".");return B<=0||B===g.length-1?"":g.slice(B+1).toLowerCase()}function YB(Q){const A=aR(Q);if(A==="ply")return yA.PLY;if(A==="spz")return yA.SPZ;if(A==="splat")return yA.SPLAT;if(A==="ksplat")return yA.KSPLAT;if(A==="sog")return yA.PCSOGSZIP;if(A==="rad")return yA.RAD}function SR(Q){return jw(Q)!==void 0}function jw(Q){try{let A;if(typeof Q=="string")A=Q;else{const B=Q instanceof ArrayBuffer?new Uint8Array(Q):Q;if(B.length>65536)return;A=new TextDecoder().decode(B)}const I=JSON.parse(A);if(!I||typeof I!="object"||Array.isArray(I))return;const g=I.version===2;for(const B of["means","scales","quats","sh0"]){if(!I[B]||typeof I[B]!="object"||Array.isArray(I[B]))return;if(g){if(!I[B].files||(B==="scales"||B==="sh0")&&!I[B].codebook||B==="means"&&(!I[B].mins||!I[B].maxs))return}else if(!I[B].shape||!I[B].files||B!=="quats"&&(!I[B].mins||!I[B].maxs))return}return I}catch{return}}function NR(Q){try{const A=Q instanceof ArrayBuffer?new Uint8Array(Q):Q;let I=null;const g=jo(A,{filter:({name:C})=>C.split(/[\\/]/).pop()==="meta.json"?(I=C,!0):!1});if(!I)return;const B=jw(g[I]);return B?{name:I,json:B}:void 0}catch{return}}async function cR({input:Q,extraFiles:A,fileType:I,pathOrUrl:g,splatEncoding:B}){const C=Q instanceof ArrayBuffer?new Uint8Array(Q):Q;let E=I;switch(I||(E=RQ(C),!E&&g&&(E=YB(g))),E){case yA.PLY:{const D=new Hg({fileBytes:C});await D.parseHeader();const i=D.numSplats,w=BA(i).maxSplats,s={fileBytes:C,packedArray:new Uint32Array(w*4),splatEncoding:B};return await qI(async o=>{const{packedArray:y,numSplats:h,extra:k}=await o.call("unpackPly",s);return{packedArray:y,numSplats:h,extra:k}})}case yA.SPZ:return await qI(async D=>{const{packedArray:i,numSplats:w,extra:s}=await D.call("decodeSpz",{fileBytes:C,splatEncoding:B});return{packedArray:i,numSplats:w,extra:s}});case yA.SPLAT:return await qI(async D=>{const{packedArray:i,numSplats:w}=await D.call("decodeAntiSplat",{fileBytes:C,splatEncoding:B});return{packedArray:i,numSplats:w}});case yA.KSPLAT:return await qI(async D=>{const{packedArray:i,numSplats:w,extra:s}=await D.call("decodeKsplat",{fileBytes:C,splatEncoding:B});return{packedArray:i,numSplats:w,extra:s}});case yA.PCSOGS:return await qI(async D=>{const{packedArray:i,numSplats:w,extra:s}=await D.call("decodePcSogs",{fileBytes:C,extraFiles:A,splatEncoding:B});return{packedArray:i,numSplats:w,extra:s}});case yA.PCSOGSZIP:return await qI(async D=>{const{packedArray:i,numSplats:w,extra:s}=await D.call("decodePcSogsZip",{fileBytes:C,splatEncoding:B});return{packedArray:i,numSplats:w,extra:s}});default:throw new Error(`Unknown splat file type: ${E}`)}}class MR{constructor({maxSplats:A=1}={}){this.numSplats=0,this.maxSplats=BA(A).maxSplats,this.centers=new Float32Array(this.maxSplats*3),this.scales=new Float32Array(this.maxSplats*3),this.quaternions=new Float32Array(this.maxSplats*4),this.opacities=new Float32Array(this.maxSplats),this.colors=new Float32Array(this.maxSplats*3)}pushSplat(){const A=this.numSplats;return this.ensureIndex(A),this.numSplats+=1,A}unpushSplat(A){if(A===this.numSplats-1)this.numSplats-=1;else throw new Error("Cannot unpush splat from non-last position")}ensureCapacity(A){if(A>this.maxSplats){const I=Math.max(A,this.maxSplats*2),g=new Float32Array(I*3),B=new Float32Array(I*3),C=new Float32Array(I*4),E=new Float32Array(I),D=new Float32Array(I*3);if(g.set(this.centers),B.set(this.scales),C.set(this.quaternions),E.set(this.opacities),D.set(this.colors),this.centers=g,this.scales=B,this.quaternions=C,this.opacities=E,this.colors=D,this.sh1){const i=new Float32Array(I*9);i.set(this.sh1),this.sh1=i}if(this.sh2){const i=new Float32Array(I*15);i.set(this.sh2),this.sh2=i}if(this.sh3){const i=new Float32Array(I*21);i.set(this.sh3),this.sh3=i}this.maxSplats=I}}ensureIndex(A){this.ensureCapacity(A+1)}setCenter(A,I,g,B){this.centers[A*3]=I,this.centers[A*3+1]=g,this.centers[A*3+2]=B}setScale(A,I,g,B){this.scales[A*3]=I,this.scales[A*3+1]=g,this.scales[A*3+2]=B}setQuaternion(A,I,g,B,C){this.quaternions[A*4]=I,this.quaternions[A*4+1]=g,this.quaternions[A*4+2]=B,this.quaternions[A*4+3]=C}setOpacity(A,I){this.opacities[A]=I}setColor(A,I,g,B){this.colors[A*3]=I,this.colors[A*3+1]=g,this.colors[A*3+2]=B}setSh1(A,I){this.sh1||(this.sh1=new Float32Array(this.maxSplats*9));for(let g=0;g<9;++g)this.sh1[A*9+g]=I[g]}setSh2(A,I){this.sh2||(this.sh2=new Float32Array(this.maxSplats*15));for(let g=0;g<15;++g)this.sh2[A*15+g]=I[g]}setSh3(A,I){this.sh3||(this.sh3=new Float32Array(this.maxSplats*21));for(let g=0;g<21;++g)this.sh3[A*21+g]=I[g]}}const KA=class KA{constructor(A={}){this.maxSplats=0,this.numSplats=0,this.packedArray=null,this.maxSh=3,this.isInitialized=!1,this.target=null,this.source=null,this.needsUpdate=!0,this.extra={},this.dyno=new KB({packedSplats:this}),this.dynoRgbMinMaxLnScaleMinMax=new VI({key:"rgbMinMaxLnScaleMinMax",value:new G.Vector4(0,1,fA,bA),update:I=>{var g,B,C,E;return I.set(((g=this.splatEncoding)==null?void 0:g.rgbMin)??0,((B=this.splatEncoding)==null?void 0:B.rgbMax)??1,((C=this.splatEncoding)==null?void 0:C.lnScaleMin)??fA,((E=this.splatEncoding)==null?void 0:E.lnScaleMax)??bA),I}}),this.dynoNumSh=new DI({key:"numSh",value:0,update:()=>Math.min(this.getNumSh(),this.maxSh)}),this.dynoShMax=new iI({key:"shMax",value:new G.Vector3,update:I=>{var g,B,C;return I.set(((g=this.splatEncoding)==null?void 0:g.sh1Max)??1,((B=this.splatEncoding)==null?void 0:B.sh2Max)??1,((C=this.splatEncoding)==null?void 0:C.sh3Max)??1),I}}),this.initialized=Promise.resolve(this),this.reinitialize(A)}reinitialize(A){this.isInitialized=!1,this.extra={},this.maxSplats=A.maxSplats??0,this.splatEncoding=A.splatEncoding,this.lod=A.lod,this.nonLod=A.nonLod,A.url||A.fileBytes||A.stream||A.construct?this.initialized=this.asyncInitialize(A).then(()=>(this.isInitialized=!0,this)):(this.initialize(A),this.isInitialized=!0,this.initialized=Promise.resolve(this))}initialize(A){this.extra=A.extra??{},this.splatEncoding=A.splatEncoding??this.splatEncoding,this.lodSplats=A.lodSplats,A.packedArray?(this.packedArray=A.packedArray,this.numSplats=A.numSplats??this.packedArray.length/4,this.maxSplats=Math.floor(this.packedArray.length/4),this.maxSplats=Math.floor(this.maxSplats/P)*P,this.numSplats=Math.min(this.maxSplats,A.numSplats??Number.POSITIVE_INFINITY)):(this.maxSplats=A.maxSplats??0,this.numSplats=0)}async asyncInitialize(A){const{url:I,fileBytes:g,fileType:B,fileName:C,stream:E,streamLength:D,construct:i,lod:w,nonLod:s,lodAbove:o}=A;this.lod=w,this.nonLod=s;const y=new LB;if((g||I||E)&&await y.loadInternalAsync({packedSplats:this,url:I,fileBytes:g,fileType:B,fileName:C,stream:E,streamLength:D,onProgress:A.onProgress,lodAbove:o}),i){const h=i(this);h instanceof Promise&&await h}}dispose(){this.target&&(this.target.dispose(),this.target.texture.source.data=null,this.target=null),this.source&&(this.source.dispose(),this.source.source.data=null,this.source=null),this.packedArray=null;for(const A in this.extra){const I=this.extra[A];if(I instanceof x){const g=I.value;g!=null&&g.isTexture&&(g.dispose(),g.source.data=null)}}this.extra={},this.disposeLodSplats()}prepareFetchSplat(){}getNumSplats(){return this.numSplats}hasRgbDir(){return Math.min(this.getNumSh(),this.maxSh)>0}getNumSh(){return this.extra.sh1?this.extra.sh2?this.extra.sh3?3:2:1:0}setMaxSh(A){this.maxSh=A}fetchSplat({index:A,viewOrigin:I}){let g=$I(this.dyno,A);if(this.hasRgbDir()&&I){const B=OA(g).outputs.center,C=Ug(wI(B,I)),{sh1Texture:E,sh2Texture:D,sh3Texture:i}=this.ensureShTextures();let{rgb:w}=vw({coord:yB(A),viewDir:C,numSh:this.dynoNumSh,sh1Texture:E,sh2Texture:D,sh3Texture:i,shMax:this.dynoShMax});w=xA(w,OA(g).outputs.rgb),g=EI({gsplat:g,rgb:w})}return g}ensureShTextures(){if(!this.extra.sh1)return{};let A=this.extra.sh1Texture;if(!A){let B=this.extra.sh1;const{width:C,height:E,depth:D,maxSplats:i}=BA(B.length/2);if(B.lengthg){this.maxSplats=BA(I).maxSplats;const B=new Uint32Array(this.maxSplats*4);this.packedArray&&B.set(this.packedArray),this.packedArray=B}return this.packedArray}ensureSplatsSh(A,I){let g,B;if(A===0)return this.ensureSplats(I);if(A===1)g=2,B="sh1";else if(A===2)g=4,B="sh2";else if(A===3)g=4,B="sh3";else throw new Error(`Invalid level: ${A}`);let C=this.extra[B]?this.extra[B].length/g:0;const E=I<=C?C:Math.max(I,2*C);if(!this.extra[B]||E>C){C=BA(E).maxSplats;const D=new Uint32Array(C*g);this.extra[B]&&D.set(this.extra[B]),this.extra[B]=D}return this.extra[B]}getSplat(A){if(!this.packedArray||A>=this.numSplats)throw new Error("Invalid index");return Ng(this.packedArray,A,this.splatEncoding)}setSplat(A,I,g,B,C,E){const D=this.ensureSplats(A+1);vg(D,A,I.x,I.y,I.z,g.x,g.y,g.z,B.x,B.y,B.z,B.w,C,E.r,E.g,E.b),this.numSplats=Math.max(this.numSplats,A+1)}pushSplat(A,I,g,B,C){const E=this.ensureSplats(this.numSplats+1);vg(E,this.numSplats,A.x,A.y,A.z,I.x,I.y,I.z,g.x,g.y,g.z,g.w,B,C.r,C.g,C.b),++this.numSplats}forEachSplat(A){if(!(!this.packedArray||!this.numSplats))for(let I=0;I{const C=I,E=Math.ceil(B/P)*P;return I+=E,{base:C,count:B}});return{maxSplats:I,mapping:g}}getTexture(){return this.target?this.target.texture:this.source||this.packedArray?this.maybeUpdateSource():KA.getEmptyArray}maybeUpdateSource(){if(!this.packedArray)throw new Error("No packed splats");if(this.needsUpdate||!this.source){if(this.needsUpdate=!1,this.source){const{width:A,height:I,depth:g}=this.source.image;this.maxSplats!==A*I*g&&(this.source.dispose(),this.source=null)}if(this.source)this.packedArray.buffer!==this.source.image.data.buffer&&(this.source.image.data=new Uint8Array(this.packedArray.buffer));else{const{width:A,height:I,depth:g}=BA(this.maxSplats);this.source=new G.DataArrayTexture(this.packedArray,A,I,g),this.source.format=G.RGBAIntegerFormat,this.source.type=G.UnsignedIntType,this.source.internalFormat="RGBA32UI",this.source.needsUpdate=!0}this.source.needsUpdate=!0}return this.source}prepareProgramMaterial(A){let I=KA.generatorProgram.get(A);if(!I){const B=cA({index:"int"},{},({index:C},E,{roots:D})=>{A.inputs.index=C;const i=A.outputs.gsplat,w=kB(i,this.dynoRgbMinMaxLnScaleMinMax);D.push(w)});KA.programTemplate||(KA.programTemplate=new Jg(gg().computeUvec4Template)),I=new yQ({graph:B,inputs:{index:"_index"},outputs:{output:"target"},template:KA.programTemplate}),Object.assign(I.uniforms,{targetLayer:{value:0},targetBase:{value:0},targetCount:{value:0}}),KA.generatorProgram.set(A,I)}const g=I.prepareMaterial();return KA.fullScreenQuad.material=g,{program:I,material:g}}saveRenderState(A){return{target:A.getRenderTarget(),xrEnabled:A.xr.enabled,autoClear:A.autoClear}}resetRenderState(A,I){A.setRenderTarget(I.target),A.xr.enabled=I.xrEnabled,A.autoClear=I.autoClear}generate({generator:A,base:I,count:g,renderer:B}){if(!this.target)throw new Error("Target must be initialized with ensureSplats");if(I+g>this.maxSplats)throw new Error("Base + count exceeds maxSplats");const{program:C,material:E}=this.prepareProgramMaterial(A);C.update();const D=this.saveRenderState(B),i=Math.ceil((I+g)/P)*P,w=P*WA;for(E.uniforms.targetBase.value=I,E.uniforms.targetCount.value=g;Iawait w.call(I?"qualityLodPackedSplats":"tinyLodPackedSplats",{numSplats:this.numSplats,packedArray:B,extra:E,lodBase:g,rgba:C,encoding:this.splatEncoding??eg})),i=new KA(D);this.lodSplats&&this.lodSplats.dispose(),this.lodSplats=i,this.nonLod=!0,this.lod=I?"quality":!0}extractSplats(A,I){const g=BA(A.length).maxSplats,B=new KA({maxSplats:g});for(let C=0;C>>16)*.61803398875;D=D-Math.floor(D);const i=Math.max(0,Math.min(1,Math.abs(D*6-3)-1)),w=Math.max(0,Math.min(1,Math.abs(D*6+1)-1)),s=Math.max(0,Math.min(1,Math.abs(D*6-1)-1));E.color.r*=i,E.color.g*=w,E.color.b*=s}B.pushSplat(E.center,E.scales,E.quaternion,E.opacity,E.color)}return B}};KA.getEmptyArray=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=BA(1),C=new Uint32Array(B*4),E=new G.DataArrayTexture(C,A,I,g);return E.format=G.RGBAIntegerFormat,E.type=G.UnsignedIntType,E.internalFormat="RGBA32UI",E.needsUpdate=!0,E})(),KA.programTemplate=null,KA.generatorProgram=new WeakMap,KA.fullScreenQuad=new AB.FullScreenQuad(new G.RawShaderMaterial({visible:!1})),KA.emptyUint32x4=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=BA(1),C=new Uint32Array(B*4),E=new G.DataArrayTexture(C,A,I,g);return E.format=G.RGBAIntegerFormat,E.type=G.UnsignedIntType,E.internalFormat="RGBA32UI",E.needsUpdate=!0,E})(),KA.emptyUint32x2=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=BA(1),C=new Uint32Array(B*2),E=new G.DataArrayTexture(C,A,I,g);return E.format=G.RGIntegerFormat,E.type=G.UnsignedIntType,E.internalFormat="RG32UI",E.needsUpdate=!0,E})();let _A=KA;class KB extends x{constructor({packedSplats:A}={}){super({key:"packedSplats",type:qg,globals:()=>[sQ],value:{textureArray:_A.getEmptyArray,numSplats:0,rgbMinMaxLnScaleMinMax:new G.Vector4(0,1,fA,bA),lodOpacity:!1},update:I=>{var g,B,C,E,D,i,w,s,o,y,h,k;return I.textureArray=((g=this.packedSplats)==null?void 0:g.getTexture())??_A.getEmptyArray,I.numSplats=((B=this.packedSplats)==null?void 0:B.numSplats)??0,I.rgbMinMaxLnScaleMinMax.set(((E=(C=this.packedSplats)==null?void 0:C.splatEncoding)==null?void 0:E.rgbMin)??0,((i=(D=this.packedSplats)==null?void 0:D.splatEncoding)==null?void 0:i.rgbMax)??1,((s=(w=this.packedSplats)==null?void 0:w.splatEncoding)==null?void 0:s.lnScaleMin)??fA,((y=(o=this.packedSplats)==null?void 0:o.splatEncoding)==null?void 0:y.lnScaleMax)??bA),I.lodOpacity=((k=(h=this.packedSplats)==null?void 0:h.splatEncoding)==null?void 0:k.lodOpacity)??!1,I}}),this.packedSplats=A}}const JR=oA(` + `)}}).outputs.covsplat}updateFromMatrix(A){const I=new a.Matrix3().setFromMatrix4(A),g=new a.Vector3().setFromMatrixColumn(A,3),B=!I.equals(this.basis.value)||!g.equals(this.offset.value);return B&&(this.basis.value.copy(I),this.offset.value.copy(g)),B}update(A){return A.updateMatrixWorld(),this.updateFromMatrix(A.matrixWorld)}}class _I extends a.Object3D{constructor({numSplats:A,generator:I,covGenerator:g,construct:B,update:C}){if(super(),this.numSplats=A??0,this.generator=I,this.covGenerator=g,this.frameUpdate=C,this.version=0,this.mappingVersion=0,B){const E=B(this);Object.assign(this,E)}}updateVersion(){this.version+=1}updateMappingVersion(){this.mappingVersion+=1,this.version+=1}set needsUpdate(A){A&&this.updateVersion()}}class eg{static __wrap(A){A=A>>>0;const I=Object.create(eg.prototype);return I.__wbg_ptr=A,KB.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,KB.unregister(this),A}free(){const A=this.__destroy_into_raw();Y.__wbg_csplatarray_free(A,0)}bhatt_lod(A){Y.csplatarray_bhatt_lod(this.__wbg_ptr,A)}has_lod(){return Y.csplatarray_has_lod(this.__wbg_ptr)!==0}inject_rgba8(A){Y.csplatarray_inject_rgba8(this.__wbg_ptr,A)}len(){return Y.csplatarray_len(this.__wbg_ptr)>>>0}tiny_lod(A,I){Y.csplatarray_tiny_lod(this.__wbg_ptr,A,I)}to_extsplats(){const A=Y.csplatarray_to_extsplats(this.__wbg_ptr);if(A[2])throw LA(A[1]);return LA(A[0])}to_extsplats_lod(){const A=Y.csplatarray_to_extsplats_lod(this.__wbg_ptr);if(A[2])throw LA(A[1]);return LA(A[0])}to_packedsplats(){const A=Y.csplatarray_to_packedsplats(this.__wbg_ptr);if(A[2])throw LA(A[1]);return LA(A[0])}to_packedsplats_lod(){const A=Y.csplatarray_to_packedsplats_lod(this.__wbg_ptr);if(A[2])throw LA(A[1]);return LA(A[0])}get maxShDegree(){return Y.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr)>>>0}get numSplats(){return Y.__wbg_get_csplatarray_numSplats(this.__wbg_ptr)>>>0}set maxShDegree(A){Y.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr,A)}set numSplats(A){Y.__wbg_set_csplatarray_numSplats(this.__wbg_ptr,A)}}Symbol.dispose&&(eg.prototype[Symbol.dispose]=eg.prototype.free);class Jg{static __wrap(A){A=A>>>0;const I=Object.create(Jg.prototype);return I.__wbg_ptr=A,dB.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,dB.unregister(this),A}free(){const A=this.__destroy_into_raw();Y.__wbg_gsplatarray_free(A,0)}get maxShDegree(){return Y.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr)>>>0}get numSplats(){return Y.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr)>>>0}bhatt_lod(A){Y.gsplatarray_bhatt_lod(this.__wbg_ptr,A)}has_lod(){return Y.gsplatarray_has_lod(this.__wbg_ptr)!==0}inject_rgba8(A){Y.gsplatarray_inject_rgba8(this.__wbg_ptr,A)}len(){return Y.gsplatarray_len(this.__wbg_ptr)>>>0}tiny_lod(A,I){Y.gsplatarray_tiny_lod(this.__wbg_ptr,A,I)}to_extsplats(){const A=Y.gsplatarray_to_extsplats(this.__wbg_ptr);if(A[2])throw LA(A[1]);return LA(A[0])}to_extsplats_lod(){const A=Y.gsplatarray_to_extsplats_lod(this.__wbg_ptr);if(A[2])throw LA(A[1]);return LA(A[0])}to_packedsplats(A){const I=Y.gsplatarray_to_packedsplats(this.__wbg_ptr,A);if(I[2])throw LA(I[1]);return LA(I[0])}to_packedsplats_lod(A){const I=Y.gsplatarray_to_packedsplats_lod(this.__wbg_ptr,A);if(I[2])throw LA(I[1]);return LA(I[0])}set maxShDegree(A){Y.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr,A)}set numSplats(A){Y.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr,A)}}Symbol.dispose&&(Jg.prototype[Symbol.dispose]=Jg.prototype.free);function rB(Q){const A=Y.decode_rad_header(Q);if(A[2])throw LA(A[1]);return LA(A[0])}function et(){return Y.get_raycast_buffer()}function Jt(){return Y.get_raycast_buffer2()}function Ut(Q,A,I,g,B,C,E,i,o,D){return Y.raycast_ext_buffers(Q,A,I,g,B,C,E,i,o,D)}function Lt(Q,A,I,g,B,C,E,i,o,D,s,w,G){return Y.raycast_packed_buffer(Q,A,I,g,B,C,E,i,o,D,s,w,G)}function Ht(){return{__proto__:null,"./spark_rs_bg.js":{__proto__:null,__wbg_Error_2e59b1b37a9a34c3:function(A,I){return Error(fg(A,I))},__wbg___wbindgen_boolean_get_a86c216575a75c30:function(A){const I=A,g=typeof I=="boolean"?I:void 0;return pg(g)?16777215:g?1:0},__wbg___wbindgen_debug_string_dd5d2d07ce9e6c57:function(A,I){const g=mQ(I),B=LQ(g,Y.__wbindgen_malloc,Y.__wbindgen_realloc),C=cg;RI().setInt32(A+4,C,!0),RI().setInt32(A+0,B,!0)},__wbg___wbindgen_in_4bd7a57e54337366:function(A,I){return A in I},__wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef:function(A){return!A},__wbg___wbindgen_is_object_40c5a80572e8f9d3:function(A){const I=A;return typeof I=="object"&&I!==null},__wbg___wbindgen_is_undefined_c0cca72b82b86f4d:function(A){return A===void 0},__wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944:function(A,I){return A==I},__wbg___wbindgen_number_get_7579aab02a8a620c:function(A,I){const g=I,B=typeof g=="number"?g:void 0;RI().setFloat64(A+8,pg(B)?0:B,!0),RI().setInt32(A+0,!pg(B),!0)},__wbg___wbindgen_string_get_914df97fcfa788f2:function(A,I){const g=I,B=typeof g=="string"?g:void 0;var C=pg(B)?0:LQ(B,Y.__wbindgen_malloc,Y.__wbindgen_realloc),E=cg;RI().setInt32(A+4,E,!0),RI().setInt32(A+0,C,!0)},__wbg___wbindgen_throw_81fc77679af83bc6:function(A,I){throw new Error(fg(A,I))},__wbg_csplatarray_new:function(A){return eg.__wrap(A)},__wbg_error_a6fa202b58aa1cd3:function(A,I){let g,B;try{g=A,B=I,console.error(fg(A,I))}finally{Y.__wbindgen_free(g,B,1)}},__wbg_get_4848e350b40afc16:function(A,I){return A[I>>>0]},__wbg_get_f96702c6245e4ef9:function(){return lB(function(A,I){return Reflect.get(A,I)},arguments)},__wbg_get_unchecked_7d7babe32e9e6a54:function(A,I){return A[I>>>0]},__wbg_get_with_ref_key_6412cf3094599694:function(A,I){return A[I]},__wbg_gsplatarray_new:function(A){return Jg.__wrap(A)},__wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a:function(A){let I;try{I=A instanceof ArrayBuffer}catch{I=!1}return I},__wbg_instanceof_Uint8Array_4b8da683deb25d72:function(A){let I;try{I=A instanceof Uint8Array}catch{I=!1}return I},__wbg_length_0c32cb8543c8e4c8:function(A){return A.length},__wbg_length_1e701798fdcaa3b4:function(A){return A.length},__wbg_length_6e821edde497a532:function(A){return A.length},__wbg_length_a4ca9e78359b5f1f:function(A){return A.length},__wbg_length_fd4646b401926788:function(A){return A.length},__wbg_new_227d7c05414eb861:function(){return new Error},__wbg_new_4f9fafbb3909af72:function(){return new Object},__wbg_new_a560378ea1240b14:function(A){return new Uint8Array(A)},__wbg_new_f3c9df4f38f3f798:function(){return new Array},__wbg_new_with_length_26bffbe236bf73f9:function(A){return new Float32Array(A>>>0)},__wbg_new_with_length_41a22191b9bdfd66:function(A){return new Uint32Array(A>>>0)},__wbg_prototypesetcall_3e05eb9545565046:function(A,I,g){Uint8Array.prototype.set.call(rt(A,I),g)},__wbg_prototypesetcall_64c287a27cc24d27:function(A,I,g){Uint16Array.prototype.set.call(Yt(A,I),g)},__wbg_prototypesetcall_e42275e601e14eeb:function(A,I,g){Uint32Array.prototype.set.call(UQ(A,I),g)},__wbg_push_6bdbc990be5ac37b:function(A,I){return A.push(I)},__wbg_set_448126769bf7c181:function(A,I,g){A.set(UQ(I,g))},__wbg_set_6be42768c690e380:function(A,I,g){A[I]=g},__wbg_set_6c60b2e8ad0e9383:function(A,I,g){A[I>>>0]=g},__wbg_set_81b4174352e6a095:function(A,I,g){A.set(I,g>>>0)},__wbg_set_8ee2d34facb8466e:function(){return lB(function(A,I,g){return Reflect.set(A,I,g)},arguments)},__wbg_set_a98c8da6557e63de:function(A,I,g){A.set(qB(I,g))},__wbg_set_index_338a66e40fc45dee:function(A,I,g){A[I>>>0]=g>>>0},__wbg_stack_3b0d974bbf31e44f:function(A,I){const g=I.stack,B=LQ(g,Y.__wbindgen_malloc,Y.__wbindgen_realloc),C=cg;RI().setInt32(A+4,C,!0),RI().setInt32(A+0,B,!0)},__wbg_subarray_0f98d3fb634508ad:function(A,I,g){return A.subarray(I>>>0,g>>>0)},__wbg_subarray_517cd0f1811ab872:function(A,I,g){return A.subarray(I>>>0,g>>>0)},__wbg_subarray_d51e89458b3fdbf6:function(A,I,g){return A.subarray(I>>>0,g>>>0)},__wbindgen_cast_0000000000000001:function(A){return A},__wbindgen_cast_0000000000000002:function(A,I){return qB(A,I)},__wbindgen_cast_0000000000000003:function(A,I){return UQ(A,I)},__wbindgen_cast_0000000000000004:function(A,I){return fg(A,I)},__wbindgen_cast_0000000000000005:function(A){return BigInt.asUintN(64,A)},__wbindgen_init_externref_table:function(){const A=Y.__wbindgen_externrefs,I=A.grow(4);A.set(0,void 0),A.set(I+0,void 0),A.set(I+1,null),A.set(I+2,!0),A.set(I+3,!1)}}}}typeof FinalizationRegistry>"u"||new FinalizationRegistry(Q=>Y.__wbg_chunkdecoder_free(Q>>>0,1));const KB=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(Q=>Y.__wbg_csplatarray_free(Q>>>0,1)),dB=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(Q=>Y.__wbg_gsplatarray_free(Q>>>0,1));function nt(Q){const A=Y.__externref_table_alloc();return Y.__wbindgen_externrefs.set(A,Q),A}function mQ(Q){const A=typeof Q;if(A=="number"||A=="boolean"||Q==null)return`${Q}`;if(A=="string")return`"${Q}"`;if(A=="symbol"){const B=Q.description;return B==null?"Symbol":`Symbol(${B})`}if(A=="function"){const B=Q.name;return typeof B=="string"&&B.length>0?`Function(${B})`:"Function"}if(Array.isArray(Q)){const B=Q.length;let C="[";B>0&&(C+=mQ(Q[0]));for(let E=1;E1)g=I[1];else return toString.call(Q);if(g=="Object")try{return"Object("+JSON.stringify(Q)+")"}catch{return"Object"}return Q instanceof Error?`${Q.name}: ${Q.message} +${Q.stack}`:g}function qB(Q,A){return Q=Q>>>0,Kt().subarray(Q/4,Q/4+A)}function Yt(Q,A){return Q=Q>>>0,dt().subarray(Q/2,Q/2+A)}function UQ(Q,A){return Q=Q>>>0,qt().subarray(Q/4,Q/4+A)}function rt(Q,A){return Q=Q>>>0,hg().subarray(Q/1,Q/1+A)}let dI=null;function RI(){return(dI===null||dI.buffer.detached===!0||dI.buffer.detached===void 0&&dI.buffer!==Y.memory.buffer)&&(dI=new DataView(Y.memory.buffer)),dI}let ig=null;function Kt(){return(ig===null||ig.byteLength===0)&&(ig=new Float32Array(Y.memory.buffer)),ig}function fg(Q,A){return Q=Q>>>0,xt(Q,A)}let Dg=null;function dt(){return(Dg===null||Dg.byteLength===0)&&(Dg=new Uint16Array(Y.memory.buffer)),Dg}let og=null;function qt(){return(og===null||og.byteLength===0)&&(og=new Uint32Array(Y.memory.buffer)),og}let wg=null;function hg(){return(wg===null||wg.byteLength===0)&&(wg=new Uint8Array(Y.memory.buffer)),wg}function lB(Q,A){try{return Q.apply(this,A)}catch(I){const g=nt(I);Y.__wbindgen_exn_store(g)}}function pg(Q){return Q==null}function LQ(Q,A,I){if(I===void 0){const i=yg.encode(Q),o=A(i.length,1)>>>0;return hg().subarray(o,o+i.length).set(i),cg=i.length,o}let g=Q.length,B=A(g,1)>>>0;const C=hg();let E=0;for(;E127)break;C[B+E]=i}if(E!==g){E!==0&&(Q=Q.slice(E)),B=I(B,g,g=E+Q.length*3,1)>>>0;const i=hg().subarray(B+E,B+g),o=yg.encodeInto(Q,i);E+=o.written,B=I(B,g,E,1)>>>0}return cg=E,B}function LA(Q){const A=Y.__wbindgen_externrefs.get(Q);return Y.__externref_table_dealloc(Q),A}let Og=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Og.decode();const lt=2146435072;let HQ=0;function xt(Q,A){return HQ+=A,HQ>=lt&&(Og=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),Og.decode(),HQ=A),Og.decode(hg().subarray(Q,Q+A))}const yg=new TextEncoder;"encodeInto"in yg||(yg.encodeInto=function(Q,A){const I=yg.encode(Q);return A.set(I),{read:Q.length,written:I.length}});let cg=0,Y;function ft(Q,A){return Y=Q.exports,dI=null,ig=null,Dg=null,og=null,wg=null,Y.__wbindgen_start(),Y}async function pt(Q,A){if(typeof Response=="function"&&Q instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(Q,A)}catch(B){if(Q.ok&&I(Q.type)&&Q.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",B);else throw B}const g=await Q.arrayBuffer();return await WebAssembly.instantiate(g,A)}else{const g=await WebAssembly.instantiate(Q,A);return g instanceof WebAssembly.Instance?{instance:g,module:Q}:g}function I(g){switch(g){case"basic":case"cors":case"default":return!0}return!1}}async function ut(Q){if(Y!==void 0)return Y;Q!==void 0&&(Object.getPrototypeOf(Q)===Object.prototype?{module_or_path:Q}=Q:console.warn("using deprecated parameters for the initialization function; pass a single object instead"));const A=Ht();(typeof Q=="string"||typeof Request=="function"&&Q instanceof Request||typeof URL=="function"&&Q instanceof URL)&&(Q=fetch(Q));const{instance:I,module:g}=await pt(await Q,A);return ft(I)}function Pt(Q){return Q>64&&Q<91?Q-65:Q>96&&Q<123?Q-71:Q>47&&Q<58?Q+4:Q===43?62:Q===47?63:0}function bt(Q,A){const I=Q.replace(/[^A-Za-z0-9+/]/g,""),g=I.length,B=A?Math.ceil((g*3+1>>2)/A)*A:g*3+1>>2,C=new Uint8Array(B);let E,i,o=0,D=0;for(let s=0;s>>(16>>>E&24)&255,E++,D++;o=0}return C}function Tt(Q){if(typeof Uint8Array.fromBase64=="function")return Uint8Array.fromBase64(Q);let A=atob(Q),I=A.length,g=new Uint8Array(I);for(let B=0;B{ro=!0});function Ot(){return ro}const Ko='(function(){"use strict";class I{static __wrap(t){t=t>>>0;const e=Object.create(I.prototype);return e.__wbg_ptr=t,nt.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,nt.unregister(this),t}free(){const t=this.__destroy_into_raw();s.__wbg_chunkdecoder_free(t,0)}finish(){const t=this.__destroy_into_raw(),e=s.chunkdecoder_finish(t);if(e[2])throw i(e[1]);return i(e[0])}push(t){const e=s.chunkdecoder_push(this.__wbg_ptr,t);if(e[1])throw i(e[0])}}Symbol.dispose&&(I.prototype[Symbol.dispose]=I.prototype.free);class z{static __wrap(t){t=t>>>0;const e=Object.create(z.prototype);return e.__wbg_ptr=t,rt.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,rt.unregister(this),t}free(){const t=this.__destroy_into_raw();s.__wbg_csplatarray_free(t,0)}bhatt_lod(t){s.csplatarray_bhatt_lod(this.__wbg_ptr,t)}has_lod(){return s.csplatarray_has_lod(this.__wbg_ptr)!==0}inject_rgba8(t){s.csplatarray_inject_rgba8(this.__wbg_ptr,t)}len(){return s.csplatarray_len(this.__wbg_ptr)>>>0}tiny_lod(t,e){s.csplatarray_tiny_lod(this.__wbg_ptr,t,e)}to_extsplats(){const t=s.csplatarray_to_extsplats(this.__wbg_ptr);if(t[2])throw i(t[1]);return i(t[0])}to_extsplats_lod(){const t=s.csplatarray_to_extsplats_lod(this.__wbg_ptr);if(t[2])throw i(t[1]);return i(t[0])}to_packedsplats(){const t=s.csplatarray_to_packedsplats(this.__wbg_ptr);if(t[2])throw i(t[1]);return i(t[0])}to_packedsplats_lod(){const t=s.csplatarray_to_packedsplats_lod(this.__wbg_ptr);if(t[2])throw i(t[1]);return i(t[0])}get maxShDegree(){return s.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr)>>>0}get numSplats(){return s.__wbg_get_csplatarray_numSplats(this.__wbg_ptr)>>>0}set maxShDegree(t){s.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr,t)}set numSplats(t){s.__wbg_set_csplatarray_numSplats(this.__wbg_ptr,t)}}Symbol.dispose&&(z.prototype[Symbol.dispose]=z.prototype.free);class P{static __wrap(t){t=t>>>0;const e=Object.create(P.prototype);return e.__wbg_ptr=t,ot.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,ot.unregister(this),t}free(){const t=this.__destroy_into_raw();s.__wbg_gsplatarray_free(t,0)}get maxShDegree(){return s.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr)>>>0}get numSplats(){return s.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr)>>>0}bhatt_lod(t){s.gsplatarray_bhatt_lod(this.__wbg_ptr,t)}has_lod(){return s.gsplatarray_has_lod(this.__wbg_ptr)!==0}inject_rgba8(t){s.gsplatarray_inject_rgba8(this.__wbg_ptr,t)}len(){return s.gsplatarray_len(this.__wbg_ptr)>>>0}tiny_lod(t,e){s.gsplatarray_tiny_lod(this.__wbg_ptr,t,e)}to_extsplats(){const t=s.gsplatarray_to_extsplats(this.__wbg_ptr);if(t[2])throw i(t[1]);return i(t[0])}to_extsplats_lod(){const t=s.gsplatarray_to_extsplats_lod(this.__wbg_ptr);if(t[2])throw i(t[1]);return i(t[0])}to_packedsplats(t){const e=s.gsplatarray_to_packedsplats(this.__wbg_ptr,t);if(e[2])throw i(e[1]);return i(e[0])}to_packedsplats_lod(t){const e=s.gsplatarray_to_packedsplats_lod(this.__wbg_ptr,t);if(e[2])throw i(e[1]);return i(e[0])}set maxShDegree(t){s.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr,t)}set numSplats(t){s.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr,t)}}Symbol.dispose&&(P.prototype[Symbol.dispose]=P.prototype.free);function ut(n,t,e,r,o,a){const _=s.bhatt_lod_extsplats(n,t,e,b(r)?0:x(r),o,b(a)?0:x(a));if(_[2])throw i(_[1]);return i(_[0])}function dt(n,t,e,r,o,a){const _=s.bhatt_lod_packedsplats(n,t,b(e)?0:x(e),r,b(o)?0:x(o),a);if(_[2])throw i(_[1]);return i(_[0])}function ft(n,t,e){var r=b(n)?0:k(n,s.__wbindgen_malloc,s.__wbindgen_realloc),o=d,a=b(t)?0:k(t,s.__wbindgen_malloc,s.__wbindgen_realloc),_=d;const c=s.decode_to_csplatarray(r,o,a,_,e);if(c[2])throw i(c[1]);return I.__wrap(c[0])}function bt(n,t,e,r,o){var a=b(n)?0:k(n,s.__wbindgen_malloc,s.__wbindgen_realloc),_=d,c=b(t)?0:k(t,s.__wbindgen_malloc,s.__wbindgen_realloc),f=d;const u=s.decode_to_extsplats(a,_,c,f,b(e)?0:x(e),b(r)?0:x(r),b(o)?0:x(o));if(u[2])throw i(u[1]);return I.__wrap(u[0])}function wt(n,t){var e=b(n)?0:k(n,s.__wbindgen_malloc,s.__wbindgen_realloc),r=d,o=b(t)?0:k(t,s.__wbindgen_malloc,s.__wbindgen_realloc),a=d;const _=s.decode_to_gsplatarray(e,r,o,a);if(_[2])throw i(_[1]);return I.__wrap(_[0])}function gt(n,t,e,r,o,a){var _=b(n)?0:k(n,s.__wbindgen_malloc,s.__wbindgen_realloc),c=d,f=b(t)?0:k(t,s.__wbindgen_malloc,s.__wbindgen_realloc),u=d;const l=s.decode_to_packedsplats(_,c,f,u,e,b(r)?0:x(r),b(o)?0:x(o),b(a)?0:x(a));if(l[2])throw i(l[1]);return I.__wrap(l[0])}function pt(n){s.dispose_lod_tree(n)}function yt(n,t,e,r,o,a,_,c,f,u,l){const g=R(r,s.__wbindgen_malloc),h=d,S=R(o,s.__wbindgen_malloc),T=d,v=F(a,s.__wbindgen_malloc),A=d,m=F(_,s.__wbindgen_malloc),p=d,L=F(c,s.__wbindgen_malloc),y=d,w=F(f,s.__wbindgen_malloc),O=d,D=F(u,s.__wbindgen_malloc),$=d,M=F(l,s.__wbindgen_malloc),U=d,E=s.dynamic_traverse_lod_trees(n,t,b(e)?4294967297:Math.fround(e),g,h,S,T,v,A,m,p,L,y,w,O,D,$,M,U);if(E[2])throw i(E[1]);return i(E[0])}function ht(n,t){const e=s.get_lod_tree_level(n,t);if(e[2])throw i(e[1]);return i(e[0])}function mt(n,t){const e=s.init_lod_tree(n,t);if(e[2])throw i(e[1]);return i(e[0])}function St(n){const t=s.new_lod_tree(n);if(t[2])throw i(t[1]);return i(t[0])}function xt(n){const t=s.new_shared_lod_tree(n);if(t[2])throw i(t[1]);return i(t[0])}function At(n,t,e){return s.sort32_splats(n,t,e)>>>0}function Ft(n,t,e){return s.sort_splats(n,t,e)>>>0}function vt(n,t,e,r,o,a,_){const c=s.tiny_lod_extsplats(n,t,e,b(r)?0:x(r),o,a,b(_)?0:x(_));if(c[2])throw i(c[1]);return i(c[0])}function Mt(n,t,e,r,o,a,_){const c=s.tiny_lod_packedsplats(n,t,b(e)?0:x(e),r,o,b(a)?0:x(a),_);if(c[2])throw i(c[1]);return i(c[0])}function kt(n,t,e,r,o,a,_,c,f,u,l){const g=R(r,s.__wbindgen_malloc),h=d,S=R(o,s.__wbindgen_malloc),T=d,v=F(a,s.__wbindgen_malloc),A=d,m=F(_,s.__wbindgen_malloc),p=d,L=F(c,s.__wbindgen_malloc),y=d,w=F(f,s.__wbindgen_malloc),O=d,D=F(u,s.__wbindgen_malloc),$=d,M=F(l,s.__wbindgen_malloc),U=d,E=s.traverse_lod_trees(n,t,b(e)?4294967297:Math.fround(e),g,h,S,T,v,A,m,p,L,y,w,O,D,$,M,U);if(E[2])throw i(E[1]);return i(E[0])}function Tt(n,t,e,r,o){const a=R(n,s.__wbindgen_malloc),_=d,c=R(t,s.__wbindgen_malloc),f=d,u=R(e,s.__wbindgen_malloc),l=d,g=R(r,s.__wbindgen_malloc),h=d,S=s.update_lod_trees(a,_,c,f,u,l,g,h,o);if(S[2])throw i(S[1]);return i(S[0])}function Lt(){return{__proto__:null,"./spark_rs_bg.js":{__proto__:null,__wbg_Error_2e59b1b37a9a34c3:function(t,e){return Error(G(t,e))},__wbg___wbindgen_boolean_get_a86c216575a75c30:function(t){const e=t,r=typeof e=="boolean"?e:void 0;return b(r)?16777215:r?1:0},__wbg___wbindgen_debug_string_dd5d2d07ce9e6c57:function(t,e){const r=Y(e),o=k(r,s.__wbindgen_malloc,s.__wbindgen_realloc),a=d;C().setInt32(t+4,a,!0),C().setInt32(t+0,o,!0)},__wbg___wbindgen_in_4bd7a57e54337366:function(t,e){return t in e},__wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef:function(t){return!t},__wbg___wbindgen_is_object_40c5a80572e8f9d3:function(t){const e=t;return typeof e=="object"&&e!==null},__wbg___wbindgen_is_undefined_c0cca72b82b86f4d:function(t){return t===void 0},__wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944:function(t,e){return t==e},__wbg___wbindgen_number_get_7579aab02a8a620c:function(t,e){const r=e,o=typeof r=="number"?r:void 0;C().setFloat64(t+8,b(o)?0:o,!0),C().setInt32(t+0,!b(o),!0)},__wbg___wbindgen_string_get_914df97fcfa788f2:function(t,e){const r=e,o=typeof r=="string"?r:void 0;var a=b(o)?0:k(o,s.__wbindgen_malloc,s.__wbindgen_realloc),_=d;C().setInt32(t+4,_,!0),C().setInt32(t+0,a,!0)},__wbg___wbindgen_throw_81fc77679af83bc6:function(t,e){throw new Error(G(t,e))},__wbg_csplatarray_new:function(t){return z.__wrap(t)},__wbg_error_a6fa202b58aa1cd3:function(t,e){let r,o;try{r=t,o=e,console.error(G(t,e))}finally{s.__wbindgen_free(r,o,1)}},__wbg_get_4848e350b40afc16:function(t,e){return t[e>>>0]},__wbg_get_f96702c6245e4ef9:function(){return ct(function(t,e){return Reflect.get(t,e)},arguments)},__wbg_get_unchecked_7d7babe32e9e6a54:function(t,e){return t[e>>>0]},__wbg_get_with_ref_key_6412cf3094599694:function(t,e){return t[e]},__wbg_gsplatarray_new:function(t){return P.__wrap(t)},__wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a:function(t){let e;try{e=t instanceof ArrayBuffer}catch{e=!1}return e},__wbg_instanceof_Uint8Array_4b8da683deb25d72:function(t){let e;try{e=t instanceof Uint8Array}catch{e=!1}return e},__wbg_length_0c32cb8543c8e4c8:function(t){return t.length},__wbg_length_1e701798fdcaa3b4:function(t){return t.length},__wbg_length_6e821edde497a532:function(t){return t.length},__wbg_length_a4ca9e78359b5f1f:function(t){return t.length},__wbg_length_fd4646b401926788:function(t){return t.length},__wbg_new_227d7c05414eb861:function(){return new Error},__wbg_new_4f9fafbb3909af72:function(){return new Object},__wbg_new_a560378ea1240b14:function(t){return new Uint8Array(t)},__wbg_new_f3c9df4f38f3f798:function(){return new Array},__wbg_new_with_length_26bffbe236bf73f9:function(t){return new Float32Array(t>>>0)},__wbg_new_with_length_41a22191b9bdfd66:function(t){return new Uint32Array(t>>>0)},__wbg_prototypesetcall_3e05eb9545565046:function(t,e,r){Uint8Array.prototype.set.call(Et(t,e),r)},__wbg_prototypesetcall_64c287a27cc24d27:function(t,e,r){Uint16Array.prototype.set.call($t(t,e),r)},__wbg_prototypesetcall_e42275e601e14eeb:function(t,e,r){Uint32Array.prototype.set.call(Q(t,e),r)},__wbg_push_6bdbc990be5ac37b:function(t,e){return t.push(e)},__wbg_set_448126769bf7c181:function(t,e,r){t.set(Q(e,r))},__wbg_set_6be42768c690e380:function(t,e,r){t[e]=r},__wbg_set_6c60b2e8ad0e9383:function(t,e,r){t[e>>>0]=r},__wbg_set_81b4174352e6a095:function(t,e,r){t.set(e,r>>>0)},__wbg_set_8ee2d34facb8466e:function(){return ct(function(t,e,r){return Reflect.set(t,e,r)},arguments)},__wbg_set_a98c8da6557e63de:function(t,e,r){t.set(st(e,r))},__wbg_set_index_338a66e40fc45dee:function(t,e,r){t[e>>>0]=r>>>0},__wbg_stack_3b0d974bbf31e44f:function(t,e){const r=e.stack,o=k(r,s.__wbindgen_malloc,s.__wbindgen_realloc),a=d;C().setInt32(t+4,a,!0),C().setInt32(t+0,o,!0)},__wbg_subarray_0f98d3fb634508ad:function(t,e,r){return t.subarray(e>>>0,r>>>0)},__wbg_subarray_517cd0f1811ab872:function(t,e,r){return t.subarray(e>>>0,r>>>0)},__wbg_subarray_d51e89458b3fdbf6:function(t,e,r){return t.subarray(e>>>0,r>>>0)},__wbindgen_cast_0000000000000001:function(t){return t},__wbindgen_cast_0000000000000002:function(t,e){return st(t,e)},__wbindgen_cast_0000000000000003:function(t,e){return Q(t,e)},__wbindgen_cast_0000000000000004:function(t,e){return G(t,e)},__wbindgen_cast_0000000000000005:function(t){return BigInt.asUintN(64,t)},__wbindgen_init_externref_table:function(){const t=s.__wbindgen_externrefs,e=t.grow(4);t.set(0,void 0),t.set(e+0,void 0),t.set(e+1,null),t.set(e+2,!0),t.set(e+3,!1)}}}}const nt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>s.__wbg_chunkdecoder_free(n>>>0,1)),rt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>s.__wbg_csplatarray_free(n>>>0,1)),ot=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>s.__wbg_gsplatarray_free(n>>>0,1));function x(n){const t=s.__externref_table_alloc();return s.__wbindgen_externrefs.set(t,n),t}function Y(n){const t=typeof n;if(t=="number"||t=="boolean"||n==null)return`${n}`;if(t=="string")return`"${n}"`;if(t=="symbol"){const o=n.description;return o==null?"Symbol":`Symbol(${o})`}if(t=="function"){const o=n.name;return typeof o=="string"&&o.length>0?`Function(${o})`:"Function"}if(Array.isArray(n)){const o=n.length;let a="[";o>0&&(a+=Y(n[0]));for(let _=1;_1)r=e[1];else return toString.call(n);if(r=="Object")try{return"Object("+JSON.stringify(n)+")"}catch{return"Object"}return n instanceof Error?`${n.name}: ${n.message}\n${n.stack}`:r}function st(n,t){return n=n>>>0,_t().subarray(n/4,n/4+t)}function $t(n,t){return n=n>>>0,Dt().subarray(n/2,n/2+t)}function Q(n,t){return n=n>>>0,at().subarray(n/4,n/4+t)}function Et(n,t){return n=n>>>0,Z().subarray(n/1,n/1+t)}let j=null;function C(){return(j===null||j.buffer.detached===!0||j.buffer.detached===void 0&&j.buffer!==s.memory.buffer)&&(j=new DataView(s.memory.buffer)),j}let B=null;function _t(){return(B===null||B.byteLength===0)&&(B=new Float32Array(s.memory.buffer)),B}function G(n,t){return n=n>>>0,It(n,t)}let q=null;function Dt(){return(q===null||q.byteLength===0)&&(q=new Uint16Array(s.memory.buffer)),q}let V=null;function at(){return(V===null||V.byteLength===0)&&(V=new Uint32Array(s.memory.buffer)),V}let K=null;function Z(){return(K===null||K.byteLength===0)&&(K=new Uint8Array(s.memory.buffer)),K}function ct(n,t){try{return n.apply(this,t)}catch(e){const r=x(e);s.__wbindgen_exn_store(r)}}function b(n){return n==null}function R(n,t){const e=t(n.length*4,4)>>>0;return at().set(n,e/4),d=n.length,e}function F(n,t){const e=t(n.length*4,4)>>>0;return _t().set(n,e/4),d=n.length,e}function k(n,t,e){if(e===void 0){const c=H.encode(n),f=t(c.length,1)>>>0;return Z().subarray(f,f+c.length).set(c),d=c.length,f}let r=n.length,o=t(r,1)>>>0;const a=Z();let _=0;for(;_127)break;a[o+_]=c}if(_!==r){_!==0&&(n=n.slice(_)),o=e(o,r,r=_+n.length*3,1)>>>0;const c=Z().subarray(o+_,o+r),f=H.encodeInto(n,c);_+=f.written,o=e(o,r,_,1)>>>0}return d=_,o}function i(n){const t=s.__wbindgen_externrefs.get(n);return s.__externref_table_dealloc(n),t}let J=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});J.decode();const Ut=2146435072;let tt=0;function It(n,t){return tt+=t,tt>=Ut&&(J=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),J.decode(),tt=t),J.decode(Z().subarray(n,n+t))}const H=new TextEncoder;"encodeInto"in H||(H.encodeInto=function(n,t){const e=H.encode(n);return t.set(e),{read:n.length,written:e.length}});let d=0,s;function Ct(n,t){return s=n.exports,j=null,B=null,q=null,V=null,K=null,s.__wbindgen_start(),s}async function Rt(n,t){if(typeof Response=="function"&&n instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(n,t)}catch(o){if(n.ok&&e(n.type)&&n.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n",o);else throw o}const r=await n.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{const r=await WebAssembly.instantiate(n,t);return r instanceof WebAssembly.Instance?{instance:r,module:n}:r}function e(r){switch(r){case"basic":case"cors":case"default":return!0}return!1}}async function Ot(n){if(s!==void 0)return s;n!==void 0&&(Object.getPrototypeOf(n)===Object.prototype?{module_or_path:n}=n:console.warn("using deprecated parameters for the initialization function; pass a single object instead"));const t=Lt();(typeof n=="string"||typeof Request=="function"&&n instanceof Request||typeof URL=="function"&&n instanceof URL)&&(n=fetch(n));const{instance:e}=await Rt(await n,t);return Ct(e)}const jt={sortSplats16:Wt,sortSplats32:Nt,loadPackedSplats:zt,loadExtSplats:Pt,tinyLodPackedSplats:Bt,qualityLodPackedSplats:qt,tinyLodExtSplats:Vt,qualityLodExtSplats:Kt,newLodTree:Zt,newSharedLodTree:Ht,initLodTree:Gt,disposeLodTree:Jt,updateLodTrees:Xt,traverseLodTrees:Yt,getLodTreeLevel:Qt,nextChunk:te};async function it(n){const{id:t,name:e,args:r}=n.data;try{const o=jt[e];if(!o)throw new Error(`Unknown worker RPC: ${e}`);const _=await o(r,{sendStatus:c=>{self.postMessage({id:t,status:c},{transfer:et(c)})}});self.postMessage({id:t,result:_},{transfer:et(_)})}catch(o){console.warn(`Worker error: ${o}`),self.postMessage({id:t,error:o},{transfer:et(o)})}}function Wt({numSplats:n,readback:t,ordering:e}){return{activeSplats:Ft(n,t,e),readback:t,ordering:e}}function Nt({numSplats:n,readback:t,ordering:e}){return{activeSplats:At(n,t,e),readback:t,ordering:e}}async function X({decoder:n,fileBytes:t,url:e,requestHeader:r,withCredentials:o,chunked:a,chunkedLength:_,sendStatus:c}){if(t)for(let l=0;l{lt=S});c({nextChunk:!0});const h=await g;if(h.length===0)break;n.push(h),u+=h.length,c({progress:{loaded:u,total:l}})}l===0&&c({progress:{loaded:u,total:u}})}else throw new Error("No url or fileBytes provided");return n.finish()}function W(n){return{numSplats:n.numSplats,packedArray:n.packed,extra:{sh1:n.sh1,sh2:n.sh2,sh3:n.sh3,sh1Codes:n.sh1Codes,sh2Codes:n.sh2Codes,sh3Codes:n.sh3Codes,lodTree:n.lodTree},splatEncoding:n.splatEncoding}}async function zt({url:n,requestHeader:t,withCredentials:e,fileBytes:r,fileType:o,pathName:a,chunked:_,chunkedLength:c,encoding:f,lod:u,lodBase:l,lodAbove:g,nonLod:h,sh1Codes:S,sh2Codes:T,sh3Codes:v},{sendStatus:A}){if(!u){const M=gt(o,a??n,f,S,T,v),U=await X({decoder:M,fileBytes:r,url:n,requestHeader:t,withCredentials:e,chunked:_,chunkedLength:c,sendStatus:A}),E=W(U);return E.splatEncoding.lodOpacity?{lodSplats:E}:E}const m=ft(o,a??n,f),p=await X({decoder:m,fileBytes:r,url:n,requestHeader:t,withCredentials:e,chunked:_,chunkedLength:c,sendStatus:A});if(p.has_lod())return{lodSplats:W(p.to_packedsplats_lod())};if(g!==void 0&&p.len() ${p.len()} (${D} ms)`);const $=p.to_packedsplats_lod();return L.lodSplats=W($),L}function N(n){return{numSplats:n.numSplats,extArrays:[n.ext0,n.ext1],extra:{sh1:n.sh1,sh2:n.sh2,sh3a:n.sh3a,sh3b:n.sh3b,sh1Codes:n.sh1Codes,sh2Codes:n.sh2Codes,sh3Codes:n.sh3Codes,lodTree:n.lodTree}}}async function Pt({url:n,requestHeader:t,withCredentials:e,fileBytes:r,fileType:o,pathName:a,chunked:_,chunkedLength:c,lod:f,lodBase:u,lodAbove:l,nonLod:g,sh1Codes:h,sh2Codes:S,sh3Codes:T},{sendStatus:v}){if(!f){const $=bt(o,a??n,h,S,T),M=await X({decoder:$,fileBytes:r,url:n,requestHeader:t,withCredentials:e,chunked:_,chunkedLength:c,sendStatus:v}),U=N(M);return U.extra.lodTree?{lodSplats:U}:U}const A=wt(o,a??n),m=await X({decoder:A,fileBytes:r,url:n,requestHeader:t,withCredentials:e,chunked:_,chunkedLength:c,sendStatus:v});if(m.has_lod())return{lodSplats:N(m.to_extsplats_lod())};if(l!==void 0&&m.len() ${m.len()} (${O} ms)`);const D=m.to_extsplats_lod();return p.lodSplats=N(D),p}async function Bt({numSplats:n,packedArray:t,extra:e,lodBase:r,rgba:o,encoding:a}){const _=Math.max(1.1,Math.min(2,r??1.5)),c=performance.now(),u=Mt(n,t,e,_,!1,o,a),l=performance.now()-c,g=W(u);return console.log(`Tiny LoD: ${n} -> ${g.numSplats} (${l} ms)`),g}async function qt({numSplats:n,packedArray:t,extra:e,lodBase:r,rgba:o,encoding:a}){const _=Math.max(1.1,Math.min(2,r??1.75)),c=performance.now(),f=dt(n,t,e,_,o,a),u=performance.now()-c,l=W(f);return console.log(`Bhatt LoD: ${n} -> ${l.numSplats} (${u} ms)`),l}async function Vt({numSplats:n,extArrays:t,extra:e,lodBase:r,rgba:o,encoding:a}){const _=Math.max(1.1,Math.min(2,r??1.5)),c=performance.now(),u=vt(n,t[0],t[1],e,_,!1,o),l=performance.now()-c,g=N(u);return console.log(`Tiny LoD: ${n} -> ${g.numSplats} (${l} ms)`),g}async function Kt({numSplats:n,extArrays:t,extra:e,lodBase:r,rgba:o,encoding:a}){const _=Math.max(1.1,Math.min(2,r??1.75)),c=performance.now(),f=ut(n,t[0],t[1],e,_,o),u=performance.now()-c,l=N(f);return console.log(`Bhatt LoD: ${n} -> ${l.numSplats} (${u} ms)`),l}function Zt({capacity:n}){const{lodId:t}=St(n);return{lodId:t}}function Ht({lodId:n}){const{lodId:t}=xt(n);return{lodId:t}}function Gt({numSplats:n,lodTree:t}){const{lodId:e,chunkToPage:r}=mt(n,t);return{lodId:e,chunkToPage:r}}function Jt({lodId:n}){pt(n)}function Xt({ranges:n}){const t=new Uint32Array(n.map(({lodId:_})=>_)),e=new Uint32Array(n.map(({pageBase:_})=>_)),r=new Uint32Array(n.map(({chunkBase:_})=>_)),o=new Uint32Array(n.map(({count:_})=>_)),a=n.map(({lodTreeData:_})=>_);Tt(t,e,r,o,a)}function Yt({maxSplats:n,pixelScaleLimit:t,lastPixelLimit:e,instances:r,traverseMode:o}){const a=Object.entries(r),_=new Uint32Array(a.map(([y,w])=>w.lodId)),c=new Uint32Array(a.map(([y,w])=>w.rootPage??4294967295)),f=new Float32Array(a.flatMap(([y,w])=>{if(w.viewToObjectCols.length!==16)throw new Error("Incorrect array size for viewToObjectCols");return w.viewToObjectCols})),u=new Float32Array(a.map(([y,w])=>w.lodScale)),l=new Float32Array(a.map(([y,w])=>w.behindFoveate)),g=new Float32Array(a.map(([y,w])=>w.coneFov0)),h=new Float32Array(a.map(([y,w])=>w.coneFov)),S=new Float32Array(a.map(([y,w])=>w.coneFoveate)),v=(o==="dynamic"?yt:kt)(n,t,e,_,c,f,u,l,S,g,h),{instanceIndices:A,chunks:m,pixelLimit:p}=v;return{keyIndices:a.reduce((y,[w,O],D)=>(y[w]=A[D],y),{}),chunks:m,pixelLimit:p}}function Qt({lodId:n,level:t}){return ht(n,t)}let lt=n=>{};async function te({chunk:n}){lt(n)}function et(n){const t=[],e=new Set;function r(o){o&&typeof o=="object"&&!e.has(o)&&(e.add(o),o instanceof ArrayBuffer?t.push(o):ArrayBuffer.isView(o)?t.push(o.buffer):Array.isArray(o)?o.forEach(r):Object.values(o).forEach(r))}return r(n),t}async function ee(){let n;const t=new Promise(o=>{n=o}),e=[],r=o=>{if(o.data.name==="init-wasm"){n(o.data.module);return}e.push(o)};self.addEventListener("message",r),await Ot({module_or_path:await t}),self.removeEventListener("message",r),self.addEventListener("message",it);for(const o of e)it(o);e.length=0}ee().catch(console.error)})();\n//# sourceMappingURL=worker-BAMFf186.js.map\n',xB=typeof self<"u"&&self.Blob&&new Blob([Ko],{type:"text/javascript;charset=utf-8"});function Wt(Q){let A;try{if(A=xB&&(self.URL||self.webkitURL).createObjectURL(xB),!A)throw"";const I=new Worker(A,{name:Q==null?void 0:Q.name});return I.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),I}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(Ko),{name:Q==null?void 0:Q.name})}finally{A&&(self.URL||self.webkitURL).revokeObjectURL(A)}}const gQ=class gQ{constructor(){this.queue=null,this.messages={},this.worker=new Wt,this.worker.onmessage=A=>this.onMessage(A),Yo.then(A=>{this.worker.postMessage({name:"init-wasm",module:A})})}onMessage(A){var i;const{id:I,result:g,error:B,status:C}=A.data,E=this.messages[I];E&&(B!==void 0?(delete this.messages[I],E.reject(B)):C!==void 0?(i=E.onStatus)==null||i.call(E,C):(delete this.messages[I],E.resolve(g)))}tryExclusive(A){return this.queue==null?this.exclusive(A):null}async exclusive(A){const I=this.queue;I!=null?await new Promise(g=>{I.push(()=>g(void 0))}):this.queue=[];try{return await A(this)}finally{this.queue!=null&&(this.queue.length===0?this.queue=null:this.queue.shift()())}}async call(A,I,g={}){const B=++gQ.currentId,C=new Promise((E,i)=>{this.messages[B]={resolve:E,reject:i,onStatus:g.onStatus}});return this.worker.postMessage({id:B,name:A,args:I},{transfer:UE(I)}),await C}dispose(){this.worker.terminate();const A=Object.values(this.messages);this.messages={};for(const I of A)I.reject(new Error("Worker terminate"))}};gQ.currentId=0;let Ug=gQ;class vt{constructor(A=4){this.numWorkers=0,this.freelist=[],this.queue=[],this.maxWorkers=A}async withWorker(A){const I=await this.allocWorker();try{return await A(I)}finally{this.freeWorker(I)}}async allocWorker(){const A=this.freelist.pop();if(A)return A;if(this.numWorkers{this.queue.push(I)})}freeWorker(A){if(this.numWorkers>this.maxWorkers){this.numWorkers-=1;return}const I=this.queue.shift();if(I){I(A);return}this.freelist.push(A)}}const aQ=new vt,UA=class UA{constructor(A={}){this.maxSplats=0,this.numSplats=0,this.packedArray=null,this.maxSh=3,this.isInitialized=!1,this.target=null,this.source=null,this.needsUpdate=!0,this.extra={},this.dyno=new qo({packedSplats:this}),this.dynoRgbMinMaxLnScaleMinMax=new Ig({key:"rgbMinMaxLnScaleMinMax",value:new a.Vector4(0,1,fA,pA),update:I=>{var g,B,C,E;return I.set(((g=this.splatEncoding)==null?void 0:g.rgbMin)??0,((B=this.splatEncoding)==null?void 0:B.rgbMax)??1,((C=this.splatEncoding)==null?void 0:C.lnScaleMin)??fA,((E=this.splatEncoding)==null?void 0:E.lnScaleMax)??pA),I}}),this.dynoNumSh=new CI({key:"numSh",value:0,update:()=>Math.min(this.getNumSh(),this.maxSh)}),this.dynoShMax=new LI({key:"shMax",value:new a.Vector3,update:I=>{var g,B,C;return I.set(((g=this.splatEncoding)==null?void 0:g.sh1Max)??1,((B=this.splatEncoding)==null?void 0:B.sh2Max)??1,((C=this.splatEncoding)==null?void 0:C.sh3Max)??1),I}}),this.initialized=Promise.resolve(this),this.reinitialize(A)}reinitialize(A){this.isInitialized=!1,this.extra={},this.maxSplats=A.maxSplats??0,this.splatEncoding=A.splatEncoding,this.lod=A.lod,this.nonLod=A.nonLod,A.url||A.fileBytes||A.stream||A.construct?this.initialized=this.asyncInitialize(A).then(()=>(this.isInitialized=!0,this)):(this.initialize(A),this.isInitialized=!0,this.initialized=Promise.resolve(this))}initialize(A){this.extra=A.extra??{},this.splatEncoding=A.splatEncoding??this.splatEncoding,this.lodSplats=A.lodSplats,A.packedArray?(this.packedArray=A.packedArray,this.numSplats=A.numSplats??this.packedArray.length/4,this.maxSplats=Math.floor(this.packedArray.length/4),this.maxSplats=Math.floor(this.maxSplats/P)*P,this.numSplats=Math.min(this.maxSplats,A.numSplats??Number.POSITIVE_INFINITY)):(this.maxSplats=A.maxSplats??0,this.numSplats=0)}async asyncInitialize(A){const{url:I,fileBytes:g,fileType:B,fileName:C,stream:E,streamLength:i,construct:o,lod:D,nonLod:s,lodAbove:w}=A;this.lod=D,this.nonLod=s;const G=new RB;if((g||I||E)&&await G.loadInternalAsync({packedSplats:this,url:I,fileBytes:g,fileType:B,fileName:C,stream:E,streamLength:i,onProgress:A.onProgress,lodAbove:w}),o){const t=o(this);t instanceof Promise&&await t}}dispose(){this.target&&(this.target.dispose(),this.target.texture.source.data=null,this.target=null),this.source&&(this.source.dispose(),this.source.source.data=null,this.source=null),this.packedArray=null;for(const A in this.extra){const I=this.extra[A];if(I instanceof x){const g=I.value;g!=null&&g.isTexture&&(g.dispose(),g.source.data=null)}}this.extra={},this.disposeLodSplats()}prepareFetchSplat(){}getNumSplats(){return this.numSplats}hasRgbDir(){return Math.min(this.getNumSh(),this.maxSh)>0}getNumSh(){return this.extra.sh1?this.extra.sh2?this.extra.sh3?3:2:1:0}setMaxSh(A){this.maxSh=A}fetchSplat({index:A,viewOrigin:I}){let g=IC(this.dyno,A);if(this.hasRgbDir()&&I){const B=bA(g).outputs.center,C=Ng(EI(B,I)),{sh1Texture:E,sh2Texture:i,sh3Texture:o}=this.ensureShTextures();let{rgb:D}=lo({coord:CB(A),viewDir:C,numSh:this.dynoNumSh,sh1Texture:E,sh2Texture:i,sh3Texture:o,shMax:this.dynoShMax});D=xA(D,bA(g).outputs.rgb),g=BI({gsplat:g,rgb:D})}return g}ensureShTextures(){if(!this.extra.sh1)return{};let A=this.extra.sh1Texture;if(!A){let B=this.extra.sh1;const{width:C,height:E,depth:i,maxSplats:o}=EA(B.length/2);if(B.lengthg){this.maxSplats=EA(I).maxSplats;const B=new Uint32Array(this.maxSplats*4);this.packedArray&&B.set(this.packedArray),this.packedArray=B}return this.packedArray}ensureSplatsSh(A,I){let g,B;if(A===0)return this.ensureSplats(I);if(A===1)g=2,B="sh1";else if(A===2)g=4,B="sh2";else if(A===3)g=4,B="sh3";else throw new Error(`Invalid level: ${A}`);let C=this.extra[B]?this.extra[B].length/g:0;const E=I<=C?C:Math.max(I,2*C);if(!this.extra[B]||E>C){C=EA(E).maxSplats;const i=new Uint32Array(C*g);this.extra[B]&&i.set(this.extra[B]),this.extra[B]=i}return this.extra[B]}getSplat(A){if(!this.packedArray||A>=this.numSplats)throw new Error("Invalid index");return kg(this.packedArray,A,this.splatEncoding)}setSplat(A,I,g,B,C,E){const i=this.ensureSplats(A+1);zg(i,A,I.x,I.y,I.z,g.x,g.y,g.z,B.x,B.y,B.z,B.w,C,E.r,E.g,E.b),this.numSplats=Math.max(this.numSplats,A+1)}pushSplat(A,I,g,B,C){const E=this.ensureSplats(this.numSplats+1);zg(E,this.numSplats,A.x,A.y,A.z,I.x,I.y,I.z,g.x,g.y,g.z,g.w,B,C.r,C.g,C.b),++this.numSplats}forEachSplat(A){if(!(!this.packedArray||!this.numSplats))for(let I=0;I{const C=I,E=Math.ceil(B/P)*P;return I+=E,{base:C,count:B}});return{maxSplats:I,mapping:g}}getTexture(){return this.target?this.target.texture:this.source||this.packedArray?this.maybeUpdateSource():UA.getEmptyArray}maybeUpdateSource(){if(!this.packedArray)throw new Error("No packed splats");if(this.needsUpdate||!this.source){if(this.needsUpdate=!1,this.source){const{width:A,height:I,depth:g}=this.source.image;this.maxSplats!==A*I*g&&(this.source.dispose(),this.source=null)}if(this.source)this.packedArray.buffer!==this.source.image.data.buffer&&(this.source.image.data=new Uint8Array(this.packedArray.buffer));else{const{width:A,height:I,depth:g}=EA(this.maxSplats);this.source=new a.DataArrayTexture(this.packedArray,A,I,g),this.source.format=a.RGBAIntegerFormat,this.source.type=a.UnsignedIntType,this.source.internalFormat="RGBA32UI",this.source.needsUpdate=!0}this.source.needsUpdate=!0}return this.source}prepareProgramMaterial(A){let I=UA.generatorProgram.get(A);if(!I){const B=HA({index:"int"},{},({index:C},E,{roots:i})=>{A.inputs.index=C;const o=A.outputs.gsplat,D=DB(o,this.dynoRgbMinMaxLnScaleMinMax);i.push(D)});UA.programTemplate||(UA.programTemplate=new Sg(Rg().computeUvec4Template)),I=new wQ({graph:B,inputs:{index:"_index"},outputs:{output:"target"},template:UA.programTemplate}),Object.assign(I.uniforms,{targetLayer:{value:0},targetBase:{value:0},targetCount:{value:0}}),UA.generatorProgram.set(A,I)}const g=I.prepareMaterial();return UA.fullScreenQuad.material=g,{program:I,material:g}}saveRenderState(A){return{target:A.getRenderTarget(),xrEnabled:A.xr.enabled,autoClear:A.autoClear}}resetRenderState(A,I){A.setRenderTarget(I.target),A.xr.enabled=I.xrEnabled,A.autoClear=I.autoClear}generate({generator:A,base:I,count:g,renderer:B}){if(!this.target)throw new Error("Target must be initialized with ensureSplats");if(I+g>this.maxSplats)throw new Error("Base + count exceeds maxSplats");const{program:C,material:E}=this.prepareProgramMaterial(A);C.update();const i=this.saveRenderState(B),o=Math.ceil((I+g)/P)*P,D=P*OA;for(E.uniforms.targetBase.value=I,E.uniforms.targetCount.value=g;Iawait D.call(I?"qualityLodPackedSplats":"tinyLodPackedSplats",{numSplats:this.numSplats,packedArray:B,extra:E,lodBase:g,rgba:C,encoding:this.splatEncoding??QQ})),o=new UA(i);this.lodSplats&&this.lodSplats.dispose(),this.lodSplats=o,this.nonLod=!0,this.lod=I?"quality":!0}extractSplats(A,I){const g=EA(A.length).maxSplats,B=new UA({maxSplats:g});for(let C=0;C>>16)*.61803398875;i=i-Math.floor(i);const o=Math.max(0,Math.min(1,Math.abs(i*6-3)-1)),D=Math.max(0,Math.min(1,Math.abs(i*6+1)-1)),s=Math.max(0,Math.min(1,Math.abs(i*6-1)-1));E.color.r*=o,E.color.g*=D,E.color.b*=s}B.pushSplat(E.center,E.scales,E.quaternion,E.opacity,E.color)}return B}};UA.getEmptyArray=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=EA(1),C=new Uint32Array(B*4),E=new a.DataArrayTexture(C,A,I,g);return E.format=a.RGBAIntegerFormat,E.type=a.UnsignedIntType,E.internalFormat="RGBA32UI",E.needsUpdate=!0,E})(),UA.programTemplate=null,UA.generatorProgram=new WeakMap,UA.fullScreenQuad=new _Q.FullScreenQuad(new a.RawShaderMaterial({visible:!1})),UA.emptyUint32x4=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=EA(1),C=new Uint32Array(B*4),E=new a.DataArrayTexture(C,A,I,g);return E.format=a.RGBAIntegerFormat,E.type=a.UnsignedIntType,E.internalFormat="RGBA32UI",E.needsUpdate=!0,E})(),UA.emptyUint32x2=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=EA(1),C=new Uint32Array(B*2),E=new a.DataArrayTexture(C,A,I,g);return E.format=a.RGIntegerFormat,E.type=a.UnsignedIntType,E.internalFormat="RG32UI",E.needsUpdate=!0,E})();let sI=UA;class qo extends x{constructor({packedSplats:A}={}){super({key:"packedSplats",type:BQ,globals:()=>[CQ],value:{textureArray:sI.getEmptyArray,numSplats:0,rgbMinMaxLnScaleMinMax:new a.Vector4(0,1,fA,pA),lodOpacity:!1},update:I=>{var g,B,C,E,i,o,D,s,w,G,t,c;return I.textureArray=((g=this.packedSplats)==null?void 0:g.getTexture())??sI.getEmptyArray,I.numSplats=((B=this.packedSplats)==null?void 0:B.numSplats)??0,I.rgbMinMaxLnScaleMinMax.set(((E=(C=this.packedSplats)==null?void 0:C.splatEncoding)==null?void 0:E.rgbMin)??0,((o=(i=this.packedSplats)==null?void 0:i.splatEncoding)==null?void 0:o.rgbMax)??1,((s=(D=this.packedSplats)==null?void 0:D.splatEncoding)==null?void 0:s.lnScaleMin)??fA,((G=(w=this.packedSplats)==null?void 0:w.splatEncoding)==null?void 0:G.lnScaleMax)??pA),I.lodOpacity=((c=(t=this.packedSplats)==null?void 0:t.splatEncoding)==null?void 0:c.lodOpacity)??!1,I}}),this.packedSplats=A}}const Xt=GA(` vec3 evaluatePackedSH1(uvec2 packedData, vec3 viewDir, float sh1Max) { // Extract sint7 values packed into 2 x uint32 vec3 sh1_0 = vec3(ivec3( @@ -2001,7 +1497,7 @@ void main() { + sh1_2 * (-0.4886025 * viewDir.x); return rgb * (sh1Max / 63.0); } -`),UR=oA(` +`),jt=GA(` vec3 evaluatePackedSH2(uvec4 packedData, vec3 viewDir, float sh2Max) { // Extract sint8 values packed into 4 x uint32 vec3 sh2_0 = vec3(ivec3( @@ -2037,7 +1533,7 @@ void main() { + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y)); return rgb * (sh2Max / 127.0); } -`),tR=oA(` +`),zt=GA(` vec3 evaluatePackedSH3(uvec4 packedData, vec3 viewDir, float sh3Max) { // Extract sint6 values packed into 4 x uint32 vec3 sh3_0 = vec3(ivec3( @@ -2092,43 +1588,222 @@ void main() { + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy)); return rgb * (sh3Max / 31.0); } -`);function vw({coord:Q,viewDir:A,numSh:I,sh1Texture:g,sh2Texture:B,sh3Texture:C,shMax:E}){return new d({inTypes:{coord:"ivec3",viewDir:"vec3",numSh:"int",sh1Texture:"usampler2DArray",sh2Texture:"usampler2DArray",sh3Texture:"usampler2DArray",shMax:"vec3"},outTypes:{rgb:"vec3"},inputs:{coord:Q,viewDir:A,numSh:I,sh1Texture:g,sh2Texture:B,sh3Texture:C,shMax:E},globals:()=>[JR,UR,tR],statements:({inputs:D,outputs:i})=>{const w=["vec3 rgb = vec3(0.0);"];return D.sh1Texture&&(w.push(...z(` - if (${D.numSh} >= 1) { - vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${D.sh1Texture}, ${D.coord}, 0).rg, ${D.viewDir}, ${D.shMax}.x); +`);function lo({coord:Q,viewDir:A,numSh:I,sh1Texture:g,sh2Texture:B,sh3Texture:C,shMax:E}){return new q({inTypes:{coord:"ivec3",viewDir:"vec3",numSh:"int",sh1Texture:"usampler2DArray",sh2Texture:"usampler2DArray",sh3Texture:"usampler2DArray",shMax:"vec3"},outTypes:{rgb:"vec3"},inputs:{coord:Q,viewDir:A,numSh:I,sh1Texture:g,sh2Texture:B,sh3Texture:C,shMax:E},globals:()=>[Xt,jt,zt],statements:({inputs:i,outputs:o})=>{const D=["vec3 rgb = vec3(0.0);"];return i.sh1Texture&&(D.push(...z(` + if (${i.numSh} >= 1) { + vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${i.sh1Texture}, ${i.coord}, 0).rg, ${i.viewDir}, ${i.shMax}.x); rgb += sh1Rgb; - `)),D.sh2Texture&&(w.push(...z(` - if (${D.numSh} >= 2) { - vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${D.sh2Texture}, ${D.coord}, 0), ${D.viewDir}, ${D.shMax}.y); + `)),i.sh2Texture&&(D.push(...z(` + if (${i.numSh} >= 2) { + vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${i.sh2Texture}, ${i.coord}, 0), ${i.viewDir}, ${i.shMax}.y); rgb += sh2Rgb; - `)),D.sh3Texture&&w.push(...z(` - if (${D.numSh} >= 3) { - vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${D.sh3Texture}, ${D.coord}, 0), ${D.viewDir}, ${D.shMax}.z); + `)),i.sh3Texture&&D.push(...z(` + if (${i.numSh} >= 3) { + vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${i.sh3Texture}, ${i.coord}, 0), ${i.viewDir}, ${i.shMax}.z); rgb += sh3Rgb; } - `)),w.push("}")),w.push("}")),w.push(`${i.rgb} = rgb;`),w}}).outputs}const UI=class UI{constructor(A){if(this.lastTime=null,this.encodeLinear=!1,this.superXY=1,this.display=null,this.sorting=null,this.pending=null,this.sortingCheck=!1,this.readback16=new Uint16Array(0),this.readback32=new Uint32Array(0),this.spark=A.spark,this.camera=A.camera,this.viewToWorld=A.viewToWorld??new G.Matrix4,A.target){const{width:I,height:g,doubleBuffer:B}=A.target,C=Math.max(1,Math.min(4,A.target.superXY??1));if(this.superXY=C,I*C>8192||g*C>8192)throw new Error("Target size too large");this.target=new G.WebGLRenderTarget(I*C,g*C,{format:G.RGBAFormat,type:G.UnsignedByteType,colorSpace:G.SRGBColorSpace}),B&&(this.back=new G.WebGLRenderTarget(I*C,g*C,{format:G.RGBAFormat,type:G.UnsignedByteType,colorSpace:G.SRGBColorSpace})),this.encodeLinear=!0}this.onTextureUpdated=A.onTextureUpdated,this.sortRadial=A.sortRadial??!0,this.sortDistance=A.sortDistance,this.sortCoorient=A.sortCoorient,this.depthBias=A.depthBias,this.sort360=A.sort360,this.sort32=A.sort32,this.stochastic=A.stochastic??!1,this.orderingFreelist=new MC({allocate:I=>new Uint32Array(I),valid:(I,g)=>I.length===g}),this.autoUpdate=!1,this.setAutoUpdate(A.autoUpdate??!1)}dispose(){var A;this.setAutoUpdate(!1),this.target&&(this.target.dispose(),this.target=void 0),this.back&&(this.back.dispose(),this.back=void 0),this.display&&(this.spark.releaseAccumulator(this.display.accumulator),this.display.geometry.dispose(),this.display=null),(A=this.pending)!=null&&A.accumulator&&(this.spark.releaseAccumulator(this.pending.accumulator),this.pending=null)}setAutoUpdate(A){!this.autoUpdate&&A?this.spark.autoViewpoints.push(this):this.autoUpdate&&!A&&(this.spark.autoViewpoints=this.spark.autoViewpoints.filter(I=>I!==this)),this.autoUpdate=A}async prepare({scene:A,camera:I,viewToWorld:g,update:B,forceOrigin:C}){for(g?this.viewToWorld=g:(this.camera=I??this.camera,this.camera&&(this.camera.updateMatrixWorld(),this.viewToWorld=this.camera.matrixWorld.clone()));B??!0;){const D=C?this.viewToWorld:this.spark.matrixWorld;if(this.spark.updateInternal({scene:A,originToWorld:D}))break;await new Promise(w=>setTimeout(w,10))}const E=this.spark.active;E.refCount+=1,await this.sortUpdate({accumulator:E,viewToWorld:this.viewToWorld}),this.spark.releaseAccumulator(E)}renderTarget({scene:A,camera:I}){var C;const g=this.back??this.target;if(!g)throw new Error("Must initialize SparkViewpoint with target");if(I=I??this.camera,!I)throw new Error("Must provide camera");if(I instanceof G.PerspectiveCamera){const E=new G.PerspectiveCamera().copy(I,!1);E.aspect=g.width/g.height,E.updateProjectionMatrix(),I=E}this.viewToWorld=I.matrixWorld.clone();const B=this.spark.renderer.getRenderTarget();try{this.spark.renderer.setRenderTarget(g),this.spark.prepareViewpoint(this),this.spark.renderer.render(A,I)}finally{this.spark.prepareViewpoint(this.spark.defaultView),this.spark.renderer.setRenderTarget(B)}g!==this.target&&([this.target,this.back]=[this.back,this.target]),(C=this.onTextureUpdated)==null||C.call(this,g.texture)}async readTarget(){if(!this.target)throw new Error("Must initialize SparkViewpoint with target");const{width:A,height:I}=this.target,g=A*I*4;(!this.superPixels||this.superPixels.length0){const{reader:i,doubleSortReader:w,sort32Reader:s,dynoSortRadial:o,dynoOrigin:y,dynoDirection:h,dynoDepthBias:k,dynoSort360:R,dynoSplats:F}=UI.makeSorter(),a=this.sort32??!1;let S;if(a)this.readback32=i.ensureBuffer(C,this.readback32),S=this.readback32;else{const t=Math.ceil(C/2);this.readback16=i.ensureBuffer(t,this.readback16),S=this.readback16}const M=A.toWorld.clone().invert(),c=I.clone().premultiply(M);o.value=this.sort360?!0:this.sortRadial,y.value.set(0,0,0).applyMatrix4(c),h.value.set(0,0,-1).applyMatrix4(c).sub(y.value).normalize(),k.value=this.depthBias??1,R.value=this.sort360??!1,F.packedSplats=A.splats;const N=a?s:w,U=a?B:Math.ceil(B/2);await i.renderReadback({renderer:this.spark.renderer,reader:N,count:U,readback:S});const J=await qI(async t=>{const H=a?"sort32Splats":"sortDoubleSplats";return t.call(H,{maxSplats:C,numSplats:B,readback:S,ordering:D})});a?this.readback32=J.readback:this.readback16=J.readback,D=J.ordering,E=J.activeSplats}this.updateDisplay({accumulator:A,viewToWorld:I,ordering:D,activeSplats:E,displayed:g}),this.sortingCheck=!1}updateDisplay({accumulator:A,viewToWorld:I,ordering:g,activeSplats:B,displayed:C=!1}){if(!this.display)A.refCount+=1,this.display={accumulator:A,viewToWorld:I,geometry:new qQ(g,B)};else{!C&&A!==this.display.accumulator&&(A.refCount+=1,this.spark.releaseAccumulator(this.display.accumulator),this.display.accumulator=A),this.display.viewToWorld=I;const E=this.display.geometry.ordering;E.length===g.length?this.display.geometry.update(g,B):(this.display.geometry.dispose(),this.display.geometry=new qQ(g,B)),this.orderingFreelist.free(E)}this.spark.viewpoint===this&&this.spark.prepareViewpoint(this)}static makeSorter(){if(!UI.dynos){const A=new uI({value:!0}),I=new iI({value:new G.Vector3}),g=new iI({value:new G.Vector3}),B=new bI({value:1}),C=new uI({value:!1}),E=new KB,D=new TI,i=cA({index:"int"},{rgba8:"vec4"},({index:s})=>{if(!s)throw new Error("No index");const o={sortRadial:A,sortOrigin:I,sortDirection:g,sortDepthBias:B,sort360:C},y=kA(s,v("int",2)),h=$I(E,y),k=nQ({gsplat:h,...o}),R=$I(E,xA(y,v("int",1))),F=nQ({gsplat:R,...o}),a=yI({vectorType:"vec2",x:k,y:F});return{rgba8:mQ(gi(a))}}),w=cA({index:"int"},{rgba8:"vec4"},({index:s})=>{if(!s)throw new Error("No index");const o={sortRadial:A,sortOrigin:I,sortDirection:g,sortDepthBias:B,sort360:C},y=$I(E,s),h=nQ({gsplat:y,...o});return{rgba8:mQ(Ii(h))}});UI.dynos={dynoSortRadial:A,dynoOrigin:I,dynoDirection:g,dynoDepthBias:B,dynoSort360:C,dynoSplats:E,reader:D,doubleSortReader:i,sort32Reader:w}}return UI.dynos}};UI.EMPTY_TEXTURE=new G.Texture,UI.dynos=null;let Lg=UI;const HR=oA(` - float computeSort(Gsplat gsplat, bool sortRadial, vec3 sortOrigin, vec3 sortDirection, float sortDepthBias, bool sort360) { - if (!isGsplatActive(gsplat.flags)) { - return INFINITY; - } + `)),D.push("}")),D.push("}")),D.push(`${o.rgb} = rgb;`),D}}).outputs}class RB extends SA.Loader{constructor(A){super(A),this.fileLoader=new SA.FileLoader(A)}load(A,I,g,B){return this.loadInternal({url:A,onLoad:I,onProgress:g,onError:B})}async loadAsync(A,I){return new Promise((g,B)=>{this.load(A,C=>{g(C)},I,B)})}parse(A){return new jA({packedSplats:A})}loadInternal({packedSplats:A,extSplats:I,url:g,fileBytes:B,fileType:C,fileName:E,stream:i,streamLength:o,onLoad:D,onProgress:s,onError:w,lod:G,nonLod:t,lodAbove:c,lodBase:h}){B instanceof ArrayBuffer&&(B=new Uint8Array(B));const y=B?void 0:this.manager.resolveURL((this.path??"")+(g??""));let k=i==null?void 0:i.getReader();this.manager.itemStart(y??""),aQ.withWorker(async F=>{const R=(A==null?void 0:A.lod)??(I==null?void 0:I.lod);R&&(G=R);const N=(A==null?void 0:A.nonLod)??(I==null?void 0:I.nonLod);N!==void 0&&(t=N);const S=async e=>{const{loaded:J,total:n}=e;if(J!==void 0&&s&&s(new ProgressEvent("progress",{lengthComputable:n!==0,loaded:J,total:n})),e.nextChunk){let H;if(!k)H=new Uint8Array(0);else{const{done:L,value:l}=await k.read();L?(k.releaseLock(),k=void 0,H=new Uint8Array(0)):H=l}F.call("nextChunk",{chunk:H})}},M=y?new URL(y,window.location.href).toString():void 0,U=await F.call(I?"loadExtSplats":"loadPackedSplats",{url:M,requestHeader:this.requestHeader,withCredentials:this.withCredentials,fileBytes:B==null?void 0:B.slice(),fileType:C,pathName:y||E,chunked:i!==void 0,chunkedLength:o,encoding:A==null?void 0:A.splatEncoding,lod:G,lodBase:h,nonLod:t,lodAbove:c},{onStatus:S});if(U.lodSplats&&(I?U.lodSplats=new gI({...U.lodSplats}):U.lodSplats=new sI({...U.lodSplats,maxSplats:A==null?void 0:A.maxSplats})),I){const e={...U};I.initialize(e),D==null||D(I)}else{const e={...U};A?(A.initialize(e),D==null||D(A)):D==null||D(new sI(e))}}).catch(F=>{this.manager.itemError(y??""),w==null||w(F)}).finally(()=>{this.manager.itemEnd(y??"")})}async loadInternalAsync({packedSplats:A,extSplats:I,url:g,fileBytes:B,fileType:C,fileName:E,stream:i,streamLength:o,onProgress:D,lod:s,nonLod:w,lodAbove:G,lodBase:t}){return new Promise((c,h)=>{this.loadInternal({packedSplats:A,extSplats:I,url:g,fileBytes:B,fileType:C,fileName:E,stream:i,streamLength:o,onLoad:c,onProgress:D,onError:h,lod:s,nonLod:w,lodAbove:G,lodBase:t})})}}function MB(Q){const I=new DataView(Q.buffer).getUint32(0,!0);if((I&16777215)===7957616)return eA.PLY;if((I&16777215)===559903){const g=fE(Q,4);return new DataView(g.buffer).getUint32(0,!0)===1347635022?eA.SPZ:void 0}if(I===67324752)return Ah(Q)?eA.PCSOGSZIP:void 0;if(I===809779538)return eA.RAD}function _t(Q){const A=Q.split(/[?#]/,1)[0],I=Math.max(A.lastIndexOf("/"),A.lastIndexOf("\\")),g=A.slice(I+1),B=g.lastIndexOf(".");return B<=0||B===g.length-1?"":g.slice(B+1).toLowerCase()}function xo(Q){const A=_t(Q);if(A==="ply")return eA.PLY;if(A==="spz")return eA.SPZ;if(A==="splat")return eA.SPLAT;if(A==="ksplat")return eA.KSPLAT;if(A==="sog")return eA.PCSOGSZIP;if(A==="rad")return eA.RAD}function $t(Q){return fo(Q)!==void 0}function fo(Q){try{let A;if(typeof Q=="string")A=Q;else{const B=Q instanceof ArrayBuffer?new Uint8Array(Q):Q;if(B.length>65536)return;A=new TextDecoder().decode(B)}const I=JSON.parse(A);if(!I||typeof I!="object"||Array.isArray(I))return;const g=I.version===2;for(const B of["means","scales","quats","sh0"]){if(!I[B]||typeof I[B]!="object"||Array.isArray(I[B]))return;if(g){if(!I[B].files||(B==="scales"||B==="sh0")&&!I[B].codebook||B==="means"&&(!I[B].mins||!I[B].maxs))return}else if(!I[B].shape||!I[B].files||B!=="quats"&&(!I[B].mins||!I[B].maxs))return}return I}catch{return}}function Ah(Q){try{const A=Q instanceof ArrayBuffer?new Uint8Array(Q):Q;let I=null;const g=Zs(A,{filter:({name:C})=>C.split(/[\\/]/).pop()==="meta.json"?(I=C,!0):!1});if(!I)return;const B=fo(g[I]);return B?{name:I,json:B}:void 0}catch{return}}class Ih{constructor({maxSplats:A=1}={}){this.numSplats=0,this.maxSplats=EA(A).maxSplats,this.centers=new Float32Array(this.maxSplats*3),this.scales=new Float32Array(this.maxSplats*3),this.quaternions=new Float32Array(this.maxSplats*4),this.opacities=new Float32Array(this.maxSplats),this.colors=new Float32Array(this.maxSplats*3)}pushSplat(){const A=this.numSplats;return this.ensureIndex(A),this.numSplats+=1,A}unpushSplat(A){if(A===this.numSplats-1)this.numSplats-=1;else throw new Error("Cannot unpush splat from non-last position")}ensureCapacity(A){if(A>this.maxSplats){const I=Math.max(A,this.maxSplats*2),g=new Float32Array(I*3),B=new Float32Array(I*3),C=new Float32Array(I*4),E=new Float32Array(I),i=new Float32Array(I*3);if(g.set(this.centers),B.set(this.scales),C.set(this.quaternions),E.set(this.opacities),i.set(this.colors),this.centers=g,this.scales=B,this.quaternions=C,this.opacities=E,this.colors=i,this.sh1){const o=new Float32Array(I*9);o.set(this.sh1),this.sh1=o}if(this.sh2){const o=new Float32Array(I*15);o.set(this.sh2),this.sh2=o}if(this.sh3){const o=new Float32Array(I*21);o.set(this.sh3),this.sh3=o}this.maxSplats=I}}ensureIndex(A){this.ensureCapacity(A+1)}setCenter(A,I,g,B){this.centers[A*3]=I,this.centers[A*3+1]=g,this.centers[A*3+2]=B}setScale(A,I,g,B){this.scales[A*3]=I,this.scales[A*3+1]=g,this.scales[A*3+2]=B}setQuaternion(A,I,g,B,C){this.quaternions[A*4]=I,this.quaternions[A*4+1]=g,this.quaternions[A*4+2]=B,this.quaternions[A*4+3]=C}setOpacity(A,I){this.opacities[A]=I}setColor(A,I,g,B){this.colors[A*3]=I,this.colors[A*3+1]=g,this.colors[A*3+2]=B}setSh1(A,I){this.sh1||(this.sh1=new Float32Array(this.maxSplats*9));for(let g=0;g<9;++g)this.sh1[A*9+g]=I[g]}setSh2(A,I){this.sh2||(this.sh2=new Float32Array(this.maxSplats*15));for(let g=0;g<15;++g)this.sh2[A*15+g]=I[g]}setSh3(A,I){this.sh3||(this.sh3=new Float32Array(this.maxSplats*21));for(let g=0;g<21;++g)this.sh3[A*21+g]=I[g]}}const KA=class KA{constructor(A={}){this.maxSplats=0,this.numSplats=0,this.extra={},this.maxSh=3,this.isInitialized=!1,this.extArrays=[new Uint32Array(0),new Uint32Array(0)],this.textures=[KA.emptyTexture,KA.emptyTexture],this.extra={},this.dyno=new gh({extSplats:this}),this.dynoNumSh=new CI({key:"numSh",value:0,update:()=>Math.min(this.getNumSh(),this.maxSh)}),this.initialized=Promise.resolve(this),this.reinitialize(A)}reinitialize(A){this.isInitialized=!1,this.extra={},this.maxSplats=A.maxSplats??0,this.lod=A.lod,this.nonLod=A.nonLod,A.url||A.fileBytes||A.stream||A.construct?this.initialized=this.asyncInitialize(A).then(()=>(this.isInitialized=!0,this)):(this.initialize(A),this.isInitialized=!0,this.initialized=Promise.resolve(this))}initialize(A){this.extra=A.extra??{},this.lodSplats=A.lodSplats,A.extArrays?(this.extArrays=A.extArrays,this.maxSplats=Math.floor(Math.min(this.extArrays[0].length/4,this.extArrays[1].length/4)),this.numSplats=A.numSplats??this.maxSplats,this.maxSplats=Math.floor(this.maxSplats/P)*P,this.numSplats=Math.min(this.maxSplats,A.numSplats??Number.POSITIVE_INFINITY),this.updateTextures()):(this.maxSplats=A.maxSplats??0,this.numSplats=0,this.extArrays=[new Uint32Array(0),new Uint32Array(0)])}async asyncInitialize(A){const{url:I,fileBytes:g,fileType:B,fileName:C,stream:E,streamLength:i,construct:o,lod:D,nonLod:s,lodAbove:w}=A;this.lod=D,this.nonLod=s;const G=new RB;if((g||I||E)&&await G.loadInternalAsync({extSplats:this,url:I,fileBytes:g,fileType:B,fileName:C,stream:E,streamLength:i,onProgress:A.onProgress,lodAbove:w}),o){const t=o(this);t instanceof Promise&&await t}}dispose(){this.textures[0]!==KA.emptyTexture&&(this.textures[0].dispose(),this.textures[0].source.data=null,this.textures[0]=KA.emptyTexture),this.textures[1]!==KA.emptyTexture&&(this.textures[1].dispose(),this.textures[1].source.data=null,this.textures[1]=KA.emptyTexture),this.extArrays=[new Uint32Array(0),new Uint32Array(0)];for(const A in this.extra){const I=this.extra[A];if(I instanceof x){const g=I.value;g!=null&&g.isTexture&&(g.dispose(),g.source.data=null)}}this.extra={},this.disposeLodSplats()}prepareFetchSplat(){}getNumSplats(){return this.numSplats}hasRgbDir(){return Math.min(this.getNumSh(),this.maxSh)>0}getNumSh(){return this.extra.sh1?this.extra.sh2?!this.extra.sh3a||!this.extra.sh3b?2:3:1:0}setMaxSh(A){this.maxSh=A}fetchSplat({index:A,viewOrigin:I}){let g=QC(this.dyno,A);if(this.hasRgbDir()&&I){const B=bA(g).outputs.center,C=Ng(EI(B,I)),{sh1Texture:E,sh2Texture:i,sh3TextureA:o,sh3TextureB:D}=this.ensureShTextures();let{rgb:s}=po({coord:CB(A),viewDir:C,numSh:this.dynoNumSh,sh1Texture:E,sh2Texture:i,sh3TextureA:o,sh3TextureB:D});s=xA(s,bA(g).outputs.rgb),g=BI({gsplat:g,rgb:s})}return g}ensureShTextures(){if(!this.extra.sh1)return{};let A=this.extra.sh1Texture;if(!A){let C=this.extra.sh1;const{width:E,height:i,depth:o,maxSplats:D}=EA(C.length/4);if(C.lengthg){this.maxSplats=EA(I).maxSplats;const B=new Uint32Array(this.maxSplats*4),C=new Uint32Array(this.maxSplats*4);this.extArrays[0]&&(B.set(this.extArrays[0]),C.set(this.extArrays[1])),this.extArrays[0]=B,this.extArrays[1]=C}return this.extArrays}getSplat(A){if(A>=this.numSplats)throw new Error("Invalid index");return jg(this.extArrays,A)}setSplat(A,I,g,B,C,E){const i=this.ensureSplats(A+1);pQ(i,A,I.x,I.y,I.z,g.x,g.y,g.z,B.x,B.y,B.z,B.w,C,E.r,E.g,E.b),this.numSplats=Math.max(this.numSplats,A+1)}pushSplat(A,I,g,B,C){const E=this.ensureSplats(this.numSplats+1);pQ(E,this.numSplats,A.x,A.y,A.z,I.x,I.y,I.z,g.x,g.y,g.z,g.w,B,C.r,C.g,C.b),++this.numSplats}forEachSplat(A){if(this.numSplats)for(let I=0;I>>16)*.61803398875;i=i-Math.floor(i);const o=Math.max(0,Math.min(1,Math.abs(i*6-3)-1)),D=Math.max(0,Math.min(1,Math.abs(i*6+1)-1)),s=Math.max(0,Math.min(1,Math.abs(i*6-1)-1));E.color.r*=o,E.color.g*=D,E.color.b*=s}B.pushSplat(E.center,E.scales,E.quaternion,E.opacity,E.color)}return B}disposeLodSplats(){this.lodSplats&&(this.lodSplats.dispose(),this.lodSplats=void 0)}async createLodSplats({rgbaArray:A,quality:I}={}){const g=typeof this.lod=="number"?Math.max(1.1,Math.min(2,this.lod)):I?1.75:1.5,B=[this.extArrays[0].slice(),this.extArrays[1].slice()],C=A?(await A.getArray()).slice():void 0,E={sh1:this.extra.sh1?this.extra.sh1.slice():void 0,sh2:this.extra.sh2?this.extra.sh2.slice():void 0,sh3:this.extra.sh3?this.extra.sh3.slice():void 0},i=await aQ.withWorker(async D=>await D.call(I?"qualityLodExtSplats":"tinyLodExtSplats",{numSplats:this.numSplats,extArrays:B,extra:E,lodBase:g,rgba:C})),o=new KA(i);this.lodSplats&&this.lodSplats.dispose(),this.lodSplats=o,this.nonLod=!0,this.lod=I?"quality":!0}};KA.emptyArray=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=EA(1),C=new Uint32Array(B*4),E=new a.DataArrayTexture(C,A,I,g);return E.format=a.RGBAIntegerFormat,E.type=a.UnsignedIntType,E.internalFormat="RGBA32UI",E.needsUpdate=!0,E})(),KA.emptyTexture=nI(null,1,1,1,a.RGBAIntegerFormat,a.UnsignedIntType,"RGBA32UI"),KA.emptyUint32x4=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=EA(1),C=new Uint32Array(B*4),E=new a.DataArrayTexture(C,A,I,g);return E.format=a.RGBAIntegerFormat,E.type=a.UnsignedIntType,E.internalFormat="RGBA32UI",E.needsUpdate=!0,E})();let gI=KA;class gh extends x{constructor({extSplats:A}={}){super({key:"extSplats",type:BB,globals:()=>[EB],value:{textureArray1:gI.emptyTexture,textureArray2:gI.emptyTexture,numSplats:0},update:I=>{var g,B,C;return I.textureArray1=((g=this.extSplats)==null?void 0:g.textures[0])??gI.emptyTexture,I.textureArray2=((B=this.extSplats)==null?void 0:B.textures[1])??gI.emptyTexture,I.numSplats=((C=this.extSplats)==null?void 0:C.numSplats)??0,I}}),this.extSplats=A}}const Qh=GA(` + vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) { + vec3 sh1_0 = decodeExtRgb(packedData.x); + vec3 sh1_1 = decodeExtRgb(packedData.y); + vec3 sh1_2 = decodeExtRgb(packedData.z); - vec3 center = gsplat.center - sortOrigin; - float biasedDepth = dot(center, sortDirection) + sortDepthBias; - if (!sort360 && (biasedDepth <= 0.0)) { - return INFINITY; - } + return sh1_0 * (-0.4886025 * viewDir.y) + + sh1_1 * (0.4886025 * viewDir.z) + + sh1_2 * (-0.4886025 * viewDir.x); + } +`),Bh=GA(` + vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) { + vec3 sh1_0 = decodeExtRgb(packed1.x); + vec3 sh1_1 = decodeExtRgb(packed1.y); + vec3 sh1_2 = decodeExtRgb(packed1.z); + + vec3 sh2_0 = decodeExtRgb(packed1.w); + vec3 sh2_1 = decodeExtRgb(packed2.x); + vec3 sh2_2 = decodeExtRgb(packed2.y); + vec3 sh2_3 = decodeExtRgb(packed2.z); + vec3 sh2_4 = decodeExtRgb(packed2.w); + + vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y) + + sh1_1 * (0.4886025 * viewDir.z) + + sh1_2 * (-0.4886025 * viewDir.x); + + vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y) + + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z) + + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y)) + + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z) + + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y)); - return sortRadial ? length(center) : biasedDepth; + return sh1Rgb + sh2Rgb; } -`);function nQ({gsplat:Q,sortRadial:A,sortOrigin:I,sortDirection:g,sortDepthBias:B,sort360:C}){return EQ({inTypes:{gsplat:Z,sortRadial:"bool",sortOrigin:"vec3",sortDirection:"vec3",sortDepthBias:"float",sort360:"bool"},outTypes:{metric:"float"},globals:()=>[LA,HR],inputs:{gsplat:Q,sortRadial:A,sortOrigin:I,sortDirection:g,sortDepthBias:B,sort360:C},statements:({inputs:E,outputs:D})=>{const{gsplat:i,sortRadial:w,sortOrigin:s,sortDirection:o,sortDepthBias:y,sort360:h}=E;return z(` - ${D.metric} = computeSort(${i}, ${w}, ${s}, ${o}, ${y}, ${h}); - `)}}).outputs.metric}class Xg{constructor(){this.splats=new _A,this.toWorld=new G.Matrix4,this.mapping=[],this.refCount=0,this.splatsVersion=-1,this.mappingVersion=-1}ensureGenerate(A){this.splats.ensureGenerate(A)&&(this.mapping=[])}generateSplats({renderer:A,modifier:I,generators:g,forceUpdate:B,originToWorld:C}){const E=this.mapping.reduce((w,s)=>(w.set(s.node,s),w),new Map);let D=0,i=0;for(const{node:w,generator:s,version:o,base:y,count:h}of g){const k=E.get(w);if((B||s!==(k==null?void 0:k.generator)||o!==(k==null?void 0:k.version)||y!==(k==null?void 0:k.base)||h!==(k==null?void 0:k.count))&&s&&h>0){const R=I.apply(s);try{this.splats.generate({generator:R,base:y,count:h,renderer:A})}catch(F){w.generator=void 0,w.generatorError=F}D+=1}i=Math.max(i,y+h)}return this.splats.numSplats=i,this.toWorld.copy(C),this.mapping=g,D!==0}hasCorrespondence(A){return this.mapping.length!==A.mapping.length?!1:this.mapping.every(({node:I,base:g,count:B},C)=>{const{node:E,base:D,count:i}=A.mapping[C];return I===E&&g===D&&B===i})}}const XB=5,tA=class tA extends G.Mesh{constructor(A){const I=tA.makeUniforms(),g=gg(),B=A.premultipliedAlpha??!0,C=new G.ShaderMaterial({glslVersion:G.GLSL3,vertexShader:g.oldSplatVertex,fragmentShader:g.oldSplatFragment,uniforms:I,premultipliedAlpha:B,transparent:!0,depthTest:!0,depthWrite:!1,side:G.DoubleSide});super(WB,C),this.splatTexture=null,this.autoViewpoints=[],this.rotateToAccumulator=new VI({value:new G.Quaternion}),this.translateToAccumulator=new iI({value:new G.Vector3}),this.lastFrame=-1,this.lastUpdateTime=null,this.defaultCameras=[],this.lastStochastic=null,this.pendingUpdate={scene:null,originToWorld:new G.Matrix4,timeoutId:-1},this.envViewpoint=null,this.frustumCulled=!1,this.renderer=A.renderer,this.material=C,this.uniforms=I;const E=cA({gsplat:Z},{gsplat:Z},({gsplat:D})=>{if(!D)throw new Error("gsplat not defined");return D=GB(D,{rotate:this.rotateToAccumulator,translate:this.translateToAccumulator}),{gsplat:D}});this.modifier=new Xw(E),this.premultipliedAlpha=B,this.autoUpdate=A.autoUpdate??!0,this.preUpdate=A.preUpdate??!1,this.needsUpdate=!1,this.originDistance=A.originDistance??1,this.maxStdDev=A.maxStdDev??Math.sqrt(8),this.minPixelRadius=A.minPixelRadius??0,this.maxPixelRadius=A.maxPixelRadius??512,this.minAlpha=A.minAlpha??.5*(1/255),this.enable2DGS=A.enable2DGS??!1,this.preBlurAmount=A.preBlurAmount??0,this.blurAmount=A.blurAmount??.3,this.focalDistance=A.focalDistance??0,this.apertureAngle=A.apertureAngle??0,this.falloff=A.falloff??1,this.clipXY=A.clipXY??1.4,this.focalAdjustment=A.focalAdjustment??1,this.splatEncoding=A.splatEncoding??{...eg},this.active=new Xg,this.active.refCount=1,this.accumulatorCount=1,this.freeAccumulators=[];for(let D=0;D<1;++D)this.freeAccumulators.push(new Xg),this.accumulatorCount+=1;this.defaultView=new Lg({...A.view,autoUpdate:!0,spark:this}),this.viewpoint=this.defaultView,this.prepareViewpoint(this.viewpoint),this.clock=A.clock?wB(A.clock):new G.Clock}static makeUniforms(){return{renderSize:{value:new G.Vector2},near:{value:.1},far:{value:1e3},numSplats:{value:0},renderToViewQuat:{value:new G.Quaternion},renderToViewPos:{value:new G.Vector3},maxStdDev:{value:1},minPixelRadius:{value:0},maxPixelRadius:{value:512},minAlpha:{value:.00196078431372549},stochastic:{value:!1},enable2DGS:{value:!1},preBlurAmount:{value:0},blurAmount:{value:.3},focalDistance:{value:0},apertureAngle:{value:0},falloff:{value:1},clipXY:{value:1.4},focalAdjustment:{value:1},splatTexEnable:{value:!1},splatTexture:{type:"t",value:tA.EMPTY_SPLAT_TEXTURE},splatTexMul:{value:new G.Matrix2},splatTexAdd:{value:new G.Vector2},splatTexNear:{value:.1},splatTexFar:{value:1e3},splatTexMid:{value:0},packedSplats:{type:"t",value:_A.getEmptyArray},rgbMinMaxLnScaleMinMax:{value:new G.Vector4},time:{value:0},deltaTime:{value:0},encodeLinear:{value:!1},debugFlag:{value:!1}}}canAllocAccumulator(){return this.freeAccumulators.length>0||this.accumulatorCount=XB)return null;A=new Xg,this.accumulatorCount+=1}return A.refCount=1,A}releaseAccumulator(A){A.refCount-=1,A.refCount===0&&this.freeAccumulators.push(A)}newViewpoint(A){return new Lg({...A,spark:this})}onBeforeRender(A,I,g){var h,k;const B=this.time??this.clock.getElapsedTime(),C=B-(this.viewpoint.lastTime??B);this.viewpoint.lastTime=B;const E=A.info.render.frame,D=E!==this.lastFrame;this.lastFrame=E;const i=this.viewpoint;if(i===this.defaultView){if(D)if(!A.xr.isPresenting)this.defaultView.viewToWorld=g.matrixWorld.clone(),this.defaultCameras=[this.defaultView.viewToWorld];else{const R=A.xr.getCamera().cameras;this.defaultCameras=R.map(F=>F.matrixWorld),this.defaultView.viewToWorld=LR(this.defaultCameras)??new G.Matrix4}this.autoUpdate&&this.update({scene:I,viewToWorld:this.defaultView.viewToWorld})}if(D&&(this.material.premultipliedAlpha!==this.premultipliedAlpha&&(this.material.premultipliedAlpha=this.premultipliedAlpha,this.material.needsUpdate=!0),this.uniforms.time.value=B,this.uniforms.deltaTime.value=C,this.uniforms.debugFlag.value=performance.now()/1e3%2<1,i.display&&i.stochastic&&(this.geometry.instanceCount=this.uniforms.numSplats.value)),i.target)this.uniforms.renderSize.value.set(i.target.width,i.target.height);else{const R=A.getDrawingBufferSize(this.uniforms.renderSize.value);if(R.x===1&&R.y===1){const F=(h=A.xr.getSession())==null?void 0:h.renderState.baseLayer;F&&(R.x=F.framebufferWidth,R.y=F.framebufferHeight)}}const w=g;if(this.uniforms.near.value=w.near,this.uniforms.far.value=w.far,this.uniforms.encodeLinear.value=i.encodeLinear,this.uniforms.maxStdDev.value=this.maxStdDev,this.uniforms.minPixelRadius.value=this.minPixelRadius,this.uniforms.maxPixelRadius.value=this.maxPixelRadius,this.uniforms.minAlpha.value=this.minAlpha,this.uniforms.stochastic.value=i.stochastic,this.uniforms.enable2DGS.value=this.enable2DGS,this.uniforms.preBlurAmount.value=this.preBlurAmount,this.uniforms.blurAmount.value=this.blurAmount,this.uniforms.focalDistance.value=this.focalDistance,this.uniforms.apertureAngle.value=this.apertureAngle,this.uniforms.falloff.value=this.falloff,this.uniforms.clipXY.value=this.clipXY,this.uniforms.focalAdjustment.value=this.focalAdjustment,this.lastStochastic!==!i.stochastic&&(this.lastStochastic=!i.stochastic,this.material.transparent=!i.stochastic,this.material.depthWrite=i.stochastic,this.material.needsUpdate=!0),this.splatTexture){const{enable:R,texture:F,multiply:a,add:S,near:M,far:c,mid:N}=this.splatTexture;R&&F?(this.uniforms.splatTexEnable.value=!0,this.uniforms.splatTexture.value=F,a?this.uniforms.splatTexMul.value.fromArray(a.elements):this.uniforms.splatTexMul.value.set(.5/this.maxStdDev,0,0,.5/this.maxStdDev),this.uniforms.splatTexAdd.value.set((S==null?void 0:S.x)??.5,(S==null?void 0:S.y)??.5),this.uniforms.splatTexNear.value=M??this.uniforms.near.value,this.uniforms.splatTexFar.value=c??this.uniforms.far.value,this.uniforms.splatTexMid.value=N??0):(this.uniforms.splatTexEnable.value=!1,this.uniforms.splatTexture.value=tA.EMPTY_SPLAT_TEXTURE)}else this.uniforms.splatTexEnable.value=!1,this.uniforms.splatTexture.value=tA.EMPTY_SPLAT_TEXTURE;const s=((k=i.display)==null?void 0:k.accumulator.toWorld)??new G.Matrix4,o=g.matrixWorld.clone().invert();s.clone().premultiply(o).decompose(this.uniforms.renderToViewPos.value,this.uniforms.renderToViewQuat.value,new G.Vector3)}prepareViewpoint(A){var I,g,B,C;if(this.viewpoint=A??this.viewpoint,this.viewpoint.display){const{accumulator:E,geometry:D}=this.viewpoint.display;this.uniforms.numSplats.value=E.splats.numSplats,this.uniforms.packedSplats.value=E.splats.getTexture(),this.uniforms.rgbMinMaxLnScaleMinMax.value.set(((I=E.splats.splatEncoding)==null?void 0:I.rgbMin)??0,((g=E.splats.splatEncoding)==null?void 0:g.rgbMax)??1,((B=E.splats.splatEncoding)==null?void 0:B.lnScaleMin)??fA,((C=E.splats.splatEncoding)==null?void 0:C.lnScaleMax)??bA),this.geometry=D,this.material.transparent=!this.viewpoint.stochastic,this.material.depthWrite=this.viewpoint.stochastic,this.material.needsUpdate=!0}else this.uniforms.numSplats.value=0,this.uniforms.packedSplats.value=_A.getEmptyArray,this.geometry=WB}update({scene:A,viewToWorld:I}){const g=this.matrixWorld;this.preUpdate?this.updateInternal({scene:A,originToWorld:g.clone(),viewToWorld:I}):(this.pendingUpdate.scene=A,this.pendingUpdate.originToWorld.copy(g),this.pendingUpdate.timeoutId===-1&&(this.pendingUpdate.timeoutId=setTimeout(()=>{const{scene:B,originToWorld:C}=this.pendingUpdate;this.pendingUpdate.scene=null,this.pendingUpdate.timeoutId=-1,this.updateInternal({scene:B,originToWorld:C,viewToWorld:I})&&this.renderer.getContext().flush()},1)))}updateInternal({scene:A,originToWorld:I,viewToWorld:g}){var k;if(!this.canAllocAccumulator())return!1;I||(I=this.active.toWorld),g=g??I.clone();const B=this.time??this.clock.getElapsedTime(),C=B-(this.lastUpdateTime??B);this.lastUpdateTime=B;const E=this.active.mapping.reduce((R,F)=>(R.set(F.node,F),R),new Map),{generators:D,visibleGenerators:i,globalEdits:w}=this.compileScene(A);for(const R of D)(k=R.frameUpdate)==null||k.call(R,{renderer:this.renderer,object:R,time:B,deltaTime:C,viewToWorld:g,globalEdits:w});const s=new Set(i.map(R=>R.uuid));for(const R of D){const F=E.get(R),S=R.generator&&s.has(R.uuid)?R.numSplats:0;(this.needsUpdate||R.generator!==(F==null?void 0:F.generator)||S!==(F==null?void 0:F.count))&&R.updateVersion()}const o=!zg({matrix1:I,matrix2:this.active.toWorld,maxDistance:this.originDistance}),y=this.needsUpdate||o||D.length!==E.size||D.some(R=>{var F;return R.version!==((F=E.get(R))==null?void 0:F.version)});this.needsUpdate=!1;let h=null;if(y){if(h=this.maybeAllocAccumulator(),!h)throw new Error("Unreachable");const R=!zg({matrix1:I,matrix2:h.toWorld,maxDistance:1e-5,minCoorient:.99999}),a=i.map((J,t)=>{const H=E.get(J);return H?[J.version-H.version,H.base,J]:[Number.POSITIVE_INFINITY,J.version,J]}).sort((J,t)=>J[0]!==t[0]?J[0]-t[0]:J[1]-t[1]).map(([J,t,H])=>H),S=a.map(J=>J.numSplats),{maxSplats:M,mapping:c}=h.splats.generateMapping(S),N=a.map((J,t)=>{const{base:H,count:K}=c[t];return{node:J,generator:J.generator,version:J.version,base:H,count:K}});I.clone().invert().decompose(this.translateToAccumulator.value,this.rotateToAccumulator.value,new G.Vector3),h.ensureGenerate(M),h.splats.splatEncoding={...this.splatEncoding},h.generateSplats({renderer:this.renderer,modifier:this.modifier,generators:N,forceUpdate:R,originToWorld:I}),h.splatsVersion=this.active.splatsVersion+1;const U=h.hasCorrespondence(this.active);h.mappingVersion=this.active.mappingVersion+(U?0:1),this.releaseAccumulator(this.active),this.active=h,this.prepareViewpoint()}return setTimeout(()=>{for(const R of this.autoViewpoints)R.autoPoll({accumulator:h??void 0})},1),!0}compileScene(A){const I=[];A.traverse(C=>{C instanceof YI&&I.push(C)});const g=[];A.traverseVisible(C=>{C instanceof YI&&g.push(C)});const B=new Set;return A.traverseVisible(C=>{if(C instanceof Qg){let E=C.parent;for(;E!=null&&!(E instanceof vA);)E=E.parent;E==null&&B.add(C)}}),{generators:I,visibleGenerators:g,globalEdits:Array.from(B)}}async renderEnvMap({renderer:A,scene:I,worldCenter:g,size:B=256,near:C=.1,far:E=1e3,hideObjects:D=[],update:i=!1}){var h,k;if(this.envViewpoint||(this.envViewpoint=this.newViewpoint({sort360:!0})),!tA.cubeRender||tA.cubeRender.target.width!==B||tA.cubeRender.near!==C||tA.cubeRender.far!==E){tA.cubeRender&&tA.cubeRender.target.dispose();const R=new G.WebGLCubeRenderTarget(B,{format:G.RGBAFormat,generateMipmaps:!0,minFilter:G.LinearMipMapLinearFilter}),F=new G.CubeCamera(C,E,R);tA.cubeRender={target:R,camera:F,near:C,far:E}}tA.pmrem||(tA.pmrem=new G.PMREMGenerator(A??this.renderer));const w=new G.Matrix4().setPosition(g);await((h=this.envViewpoint)==null?void 0:h.prepare({scene:I,viewToWorld:w,update:i}));const{target:s,camera:o}=tA.cubeRender;o.position.copy(g);const y=new Map;for(const R of D)y.set(R,R.visible),R.visible=!1;this.prepareViewpoint(this.envViewpoint),o.update(A??this.renderer,I),this.prepareViewpoint(this.defaultView);for(const[R,F]of y.entries())R.visible=F;return(k=tA.pmrem)==null?void 0:k.fromCubemap(s.texture).texture}recurseSetEnvMap(A,I){A.traverse(g=>{if(g instanceof G.Mesh)if(Array.isArray(g.material))for(const B of g.material)B instanceof G.MeshStandardMaterial&&(B.envMap=I);else g.material instanceof G.MeshStandardMaterial&&(g.material.envMap=I)})}getRgba({generator:A,rgba:I}){const g=this.active.mapping.find(({node:B})=>B===A);if(!g)throw new Error("Generator not found");return I=I??new IQ,I.fromPackedSplats({packedSplats:this.active.splats,base:g.base,count:g.count,renderer:this.renderer}),I}async readRgba({generator:A,rgba:I}){return I=this.getRgba({generator:A,rgba:I}),I.read()}};tA.cubeRender=null,tA.pmrem=null,tA.EMPTY_SPLAT_TEXTURE=new G.Data3DTexture;let jQ=tA;const WB=new qQ(new Uint32Array(1),0);cA({packedSplats:qg,index:"int"},{gsplat:Z},({packedSplats:Q,index:A})=>{if(!Q||!A)throw new Error("Invalid input");return{gsplat:$I(Q,A)}});function LR(Q){if(Q.length===0)return null;const A=new G.Vector3,I=new G.Quaternion,g=new G.Vector3,B=[],C=[];for(const E of Q)E.decompose(A,I,g),B.push(A),C.push(I);return new G.Matrix4().compose(YC(B),KC(C),new G.Vector3(1,1,1))}function YR(Q,A,I){const g=Math.floor(Q.length/32);if(g*32!==Q.length)throw new Error("Invalid .splat file size");const B=new Float32Array(Q.buffer);for(let C=0;C2)throw new Error(`Invalid .ksplat compression level: ${o}`);const y=D.getFloat32(36,!0)||-1.5,h=D.getFloat32(40,!0)||1.5;let k=4096+s*1024;for(let F=0;F=1?new Float32Array(3*3):void 0,GA=r>=2?new Float32Array(5*3):void 0,II=r>=3?new Float32Array(7*3):void 0,mA=J/2/H,SI=k+q,NI=k+n,_=new DataView(Q.buffer,NI,f),ZA=new Float32Array(Q.buffer,SI,U*3),YA=new Uint32Array(Q.buffer,k,L);let Dg=K,xg=Y;for(let VA=0;VA=xg+cI&&(Dg+=1,xg+=cI),RI=Dg}const SQ=o===0?_.getFloat32($+0,!0):(_.getUint16($+0,!0)-H)*mA+ZA[3*RI+0],NQ=o===0?_.getFloat32($+4,!0):(_.getUint16($+2,!0)-H)*mA+ZA[3*RI+1],cQ=o===0?_.getFloat32($+8,!0):(_.getUint16($+4,!0)-H)*mA+ZA[3*RI+2],MQ=o===0?_.getFloat32($+gA+0,!0):FA(_.getUint16($+gA+0,!0)),JQ=o===0?_.getFloat32($+gA+4,!0):FA(_.getUint16($+gA+2,!0)),Fo=o===0?_.getFloat32($+gA+8,!0):FA(_.getUint16($+gA+4,!0)),ao=o===0?_.getFloat32($+W+0,!0):FA(_.getUint16($+W+0,!0)),So=o===0?_.getFloat32($+W+4,!0):FA(_.getUint16($+W+2,!0)),No=o===0?_.getFloat32($+W+8,!0):FA(_.getUint16($+W+4,!0)),co=o===0?_.getFloat32($+W+12,!0):FA(_.getUint16($+W+6,!0)),Mo=_.getUint8($+u+0)/255,Jo=_.getUint8($+u+1)/255,Uo=_.getUint8($+u+2)/255,to=_.getUint8($+u+3)/255;if(I(VA,SQ,NQ,cQ,MQ,JQ,Fo,So,No,co,ao,to,Mo,Jo,Uo),r>=1&&wA){for(const[cI,ig]of sA.entries())wA[cI]=a($,ig);if(GA)for(const[cI,ig]of SA.entries())GA[cI]=a($,ig);if(II)for(const[cI,ig]of NA.entries())II[cI]=a($,ig);g==null||g(VA,wA,GA,II)}}k+=aA}}class zw{constructor({fileBytes:A}){this.version=-1,this.numSplats=0,this.shDegree=0,this.fractionalBits=0,this.flags=0,this.flagAntiAlias=!1,this.flagLod=!1,this.reserved=0,this.headerParsed=!1,this.parsed=!1,this.fileBytes=A instanceof ArrayBuffer?new Uint8Array(A):A,this.reader=new lC({fileBytes:this.fileBytes})}async parseHeader(){if(this.headerParsed)throw new Error("SPZ file header already parsed");const A=new DataView((await this.reader.read(16)).buffer);if(A.getUint32(0,!0)!==1347635022)throw new Error("Invalid SPZ file");if(this.version=A.getUint32(4,!0),this.version<1||this.version>3)throw new Error(`Unsupported SPZ version: ${this.version}`);this.numSplats=A.getUint32(8,!0),this.shDegree=A.getUint8(12),this.fractionalBits=A.getUint8(13),this.flags=A.getUint8(14),this.flagAntiAlias=(this.flags&1)!==0,this.flagLod=(this.flags&128)!==0,this.reserved=A.getUint8(15),this.headerParsed=!0,this.parsed=!1}async parseSplats(A,I,g,B,C,E,{childCounts:D,childStarts:i}={}){if(!this.headerParsed)throw new Error("SPZ file header must be parsed first");if(this.parsed)throw new Error("SPZ file already parsed");if(this.parsed=!0,this.version===1){const w=await this.reader.read(this.numSplats*3*2),s=new Uint16Array(w.buffer);for(let o=0;o>8)/w,k=((s[y+5]<<24|s[y+4]<<16|s[y+3]<<8)>>8)/w,R=((s[y+8]<<24|s[y+7]<<16|s[y+6]<<8)>>8)/w;A==null||A(o,h,k,R)}}else throw new Error("Unreachable");{const w=await this.reader.read(this.numSplats);for(let s=0;s>>30;let S=R,M=0;for(let N=3;N>=0;--N)if(N!==a){const U=S&F,J=S>>>9&1;S=S>>>10,h[N]=w*(U/F),h[N]=J===0?h[N]:-h[N],M+=h[N]*h[N]}const c=1-M;h[a]=Math.sqrt(Math.max(c,0)),C==null||C(o,h[0],h[1],h[2],h[3])}}else{const w=await this.reader.read(this.numSplats*3);for(let s=0;s=1){const w=new Float32Array(9),s=this.shDegree>=2?new Float32Array(5*3):void 0,o=this.shDegree>=3?new Float32Array(7*3):void 0,y=await this.reader.read(this.numSplats*_w[this.shDegree]*3);let h=0;for(let k=0;k=1?9:0)+(I>=2?15:0)+(I>=3?21:0),E=16+A*C;this.buffer=new ArrayBuffer(E),this.view=new DataView(this.buffer),this.view.setUint32(0,rR,!0),this.view.setUint32(4,nR,!0),this.view.setUint32(8,A,!0),this.view.setUint8(12,I),this.view.setUint8(13,g),this.view.setUint8(14,B?dR:0),this.view.setUint8(15,0),this.numSplats=A,this.shDegree=I,this.fractionalBits=g,this.fraction=1<>8&255),this.view.setUint8(h+2,E>>16&255),this.view.setUint8(h+3,i&255),this.view.setUint8(h+4,i>>8&255),this.view.setUint8(h+5,i>>16&255),this.view.setUint8(h+6,s&255),this.view.setUint8(h+7,s>>8&255),this.view.setUint8(h+8,s>>16&255)}setAlpha(A,I){const g=16+this.numSplats*9+A;this.view.setUint8(g,Math.max(0,Math.min(255,Math.round(I*255))))}static scaleRgb(A){const I=((A-.5)/($w/.15)+.5)*255;return Math.max(0,Math.min(255,Math.round(I)))}setRgb(A,I,g,B){const C=16+this.numSplats*10+A*3;this.view.setUint8(C,kI.scaleRgb(I)),this.view.setUint8(C+1,kI.scaleRgb(g)),this.view.setUint8(C+2,kI.scaleRgb(B))}setScale(A,I,g,B){const C=16+this.numSplats*13+A*3;this.view.setUint8(C,Math.max(0,Math.min(255,Math.round((Math.log(I)+10)*16)))),this.view.setUint8(C+1,Math.max(0,Math.min(255,Math.round((Math.log(g)+10)*16)))),this.view.setUint8(C+2,Math.max(0,Math.min(255,Math.round((Math.log(B)+10)*16))))}setQuat(A,...I){const g=16+this.numSplats*16+A*4,B=SC(I);let C=0;for(let i=1;i<4;++i)Math.abs(B[i])>Math.abs(B[C])&&(C=i);const E=B[C]<0?1:0;let D=C;for(let i=0;i<4;++i)if(i!==C){const w=(B[i]<0?1:0)^E,s=Math.floor(511*(Math.abs(B[i])/Math.SQRT1_2)+.5);D=D<<10|w<<9|s}this.view.setUint8(g,D&255),this.view.setUint8(g+1,D>>8&255),this.view.setUint8(g+2,D>>16&255),this.view.setUint8(g+3,D>>>24&255)}static quantizeSh(A,I){const g=Math.round(A*128)+128,B=1<<8-I,C=Math.floor((g+B/2)/B)*B;return Math.max(0,Math.min(255,C))}setSh(A,I,g,B){const C=_w[this.shDegree]||0,E=16+this.numSplats*20+A*C*3;for(let D=0;D<9;++D)this.view.setUint8(E+D,kI.quantizeSh(I[D],5));if(g){const D=E+9;for(let i=0;i<15;++i)this.view.setUint8(D+i,kI.quantizeSh(g[i],4));if(B){const i=D+15;for(let w=0;w<21;++w)this.view.setUint8(i+w,kI.quantizeSh(B[w],4))}}}async finalize(){const A=new Uint8Array(this.buffer),g=new ReadableStream({async start(E){E.enqueue(A),E.close()}}).pipeThrough(new CompressionStream("gzip")),C=await new Response(g).arrayBuffer();return console.log("Compressed",A.length,"bytes to",C.byteLength,"bytes"),new Uint8Array(C)}}async function qR(Q){var s,o,y;const A=new MR,{inputs:I,clipXyz:g,maxSh:B,fractionalBits:C=12,opacityThreshold:E}=Q;for(const h of I){let k=function(t){return t.multiplyScalar(M),t.applyQuaternion(c),t.add(N),t},R=function(t){return t.multiplyScalar(M),t},F=function(t){return t.premultiply(c),t},a=function(t){return!U||U.containsPoint(t)},S=function(t){return E!==void 0?t>=E:!0};const M=((s=h.transform)==null?void 0:s.scale)??1,c=new G.Quaternion().fromArray(((o=h.transform)==null?void 0:o.quaternion)??[0,0,0,1]),N=new G.Vector3().fromArray(((y=h.transform)==null?void 0:y.translate)??[0,0,0]),U=g?new G.Box3(new G.Vector3().fromArray(g.min),new G.Vector3().fromArray(g.max)):void 0;let J=h.fileType;switch(J||(J=RQ(h.fileBytes),!J&&h.pathOrUrl&&(J=YB(h.pathOrUrl))),J){case yA.PLY:{const t=new Hg({fileBytes:h.fileBytes});await t.parseHeader();let H=null;t.parseSplats((K,Y,L,q,n,r,p,m,IA,X,EA,j,gA,W,u)=>{const b=k(new G.Vector3(Y,L,q));if(a(b)&&S(j)){H=A.pushSplat(),A.setCenter(H,b.x,b.y,b.z);const T=R(new G.Vector3(n,r,p));A.setScale(H,T.x,T.y,T.z);const f=F(new G.Quaternion(m,IA,X,EA));A.setQuaternion(H,f.x,f.y,f.z,f.w),A.setOpacity(H,j),A.setColor(H,gA,W,u)}else H=null},(K,Y,L,q)=>{Y&&H!==null&&A.setSh1(H,Y),L&&H!==null&&A.setSh2(H,L),q&&H!==null&&A.setSh3(H,q)});break}case yA.SPZ:{const t=new zw({fileBytes:h.fileBytes});await t.parseHeader();const H=new Int32Array(t.numSplats);H.fill(-1);const K=new Float32Array(t.numSplats*3),Y=new G.Vector3;t.parseSplats((L,q,n,r)=>{const p=k(new G.Vector3(q,n,r));K[L*3]=p.x,K[L*3+1]=p.y,K[L*3+2]=p.z},(L,q)=>{Y.fromArray(K,L*3),a(Y)&&S(q)&&(H[L]=A.pushSplat(),A.setCenter(H[L],Y.x,Y.y,Y.z),A.setOpacity(H[L],q))},(L,q,n,r)=>{H[L]>=0&&A.setColor(H[L],q,n,r)},(L,q,n,r)=>{if(H[L]>=0){const p=R(new G.Vector3(q,n,r));A.setScale(H[L],p.x,p.y,p.z)}},(L,q,n,r,p)=>{if(H[L]>=0){const m=F(new G.Quaternion(q,n,r,p));A.setQuaternion(H[L],m.x,m.y,m.z,m.w)}},(L,q,n,r)=>{H[L]>=0&&(A.setSh1(H[L],q),n&&A.setSh2(H[L],n),r&&A.setSh3(H[L],r))});break}case yA.SPLAT:YR(h.fileBytes,t=>{},(t,H,K,Y,L,q,n,r,p,m,IA,X,EA,j,gA)=>{const W=k(new G.Vector3(H,K,Y));if(a(W)&&S(X)){const u=A.pushSplat();A.setCenter(u,W.x,W.y,W.z);const b=R(new G.Vector3(L,q,n));A.setScale(u,b.x,b.y,b.z);const T=F(new G.Quaternion(r,p,m,IA));A.setQuaternion(u,T.x,T.y,T.z,T.w),A.setOpacity(u,X),A.setColor(u,EA,j,gA)}});break;case yA.KSPLAT:{let t=null;eR(h.fileBytes,H=>{},(H,K,Y,L,q,n,r,p,m,IA,X,EA,j,gA,W)=>{const u=k(new G.Vector3(K,Y,L));if(a(u)&&S(EA)){t=A.pushSplat(),A.setCenter(t,u.x,u.y,u.z);const b=R(new G.Vector3(q,n,r));A.setScale(t,b.x,b.y,b.z);const T=F(new G.Quaternion(p,m,IA,X));A.setQuaternion(t,T.x,T.y,T.z,T.w),A.setOpacity(t,EA),A.setColor(t,j,gA,W)}else t=null},(H,K,Y,L)=>{t!==null&&(A.setSh1(t,K),Y&&A.setSh2(t,Y),L&&A.setSh3(t,L))});break}default:throw new Error(`transcodeSpz not implemented for ${J}`)}}const D=Math.min(B??3,A.sh3?3:A.sh2?2:A.sh1?1:0),i=new kI({numSplats:A.numSplats,shDegree:D,fractionalBits:C,flagAntiAlias:!0});for(let h=0;h=1&&i.setSh(h,A.sh1.slice(h*9,(h+1)*9),D>=2&&A.sh2?A.sh2.slice(h*15,(h+1)*15):void 0,D>=3&&A.sh3?A.sh3.slice(h*21,(h+1)*21):void 0)}return{fileBytes:await i.finalize(),clippedCount:i.clippedCount}}var Ao=(Q=>(Q.DUAL_QUATERNION="dual_quaternion",Q.LINEAR_BLEND="linear_blend",Q))(Ao||{});const O=class O{constructor(A){this.mesh=A.mesh,this.numSplats=A.numSplats??this.mesh.numSplats,this.mode=A.mode??"dual_quaternion";const{width:I,height:g,depth:B,maxSplats:C}=BA(this.numSplats);this.skinData=new Uint16Array(C*4),this.skinTexture=new G.DataArrayTexture(this.skinData,I,g,B),this.skinTexture.format=G.RGBAIntegerFormat,this.skinTexture.type=G.UnsignedShortType,this.skinTexture.internalFormat="RGBA16UI",this.skinTexture.needsUpdate=!0,this.numBones=A.numBones??256,this.boneData=new Float32Array(this.numBones*16),this.boneTexture=new G.DataTexture(this.boneData,4,this.numBones,G.RGBAFormat,G.FloatType),this.boneTexture.internalFormat="RGBA32F",this.boneTexture.needsUpdate=!0,this.boneRestQuatPosScale=pQ(this.numBones,()=>({quat:new G.Quaternion,pos:new G.Vector3,scale:new G.Vector3})),this.mode==="linear_blend"?this.boneRestInvMats=pQ(this.numBones,()=>new G.Matrix4):this.boneRestInvMats=[],this.uniform=new x({key:"skinning",type:kQ,globals:()=>[FQ],value:{numSplats:this.numSplats,numBones:this.numBones,skinTexture:this.skinTexture,boneTexture:this.boneTexture}})}modify(A){if(this.mode==="linear_blend")throw new Error("Linear blend skinning requires covSplats=true");return lR(A,this.uniform)}modifyCov(A){return this.mode==="dual_quaternion"?bR(A,this.uniform):PR(A,this.uniform)}setRestQuatPos(A,I,g){this.boneRestQuatPosScale[A].quat.copy(I),this.boneRestQuatPosScale[A].pos.copy(g),this.boneRestQuatPosScale[A].scale.copy(O.UNIT_SCALE),this.mode==="linear_blend"&&this.boneRestInvMats[A].compose(g,I,O.UNIT_SCALE).invert(),this.setBoneQuatPos(A,I,g)}getRestQuatPos(A,I,g){I.copy(this.boneRestQuatPosScale[A].quat),g.copy(this.boneRestQuatPosScale[A].pos)}setRestQuatPosScale(A,I,g,B){this.boneRestQuatPosScale[A].quat.copy(I),this.boneRestQuatPosScale[A].pos.copy(g),this.boneRestQuatPosScale[A].scale.copy(B),this.mode==="linear_blend"&&this.boneRestInvMats[A].compose(g,I,B).invert(),this.setBoneQuatPosScale(A,I,g,B)}getRestQuatPosScale(A,I,g,B){I.copy(this.boneRestQuatPosScale[A].quat),g.copy(this.boneRestQuatPosScale[A].pos),B.copy(this.boneRestQuatPosScale[A].scale)}setRestMatrix(A,I){if(this.mode!=="linear_blend")throw new Error("setRestMat only supported for linear blend skinning");this.boneRestInvMats[A].copy(I).invert(),this.setBoneMatrix(A,I)}getRestMatrix(A,I){if(this.mode!=="linear_blend")throw new Error("getRestMat only supported for linear blend skinning");I.copy(this.boneRestInvMats[A]).invert()}setBoneQuatPos(A,I,g){if(this.mode==="dual_quaternion"){O.relQuat.copy(this.boneRestQuatPosScale[A].quat).invert(),O.relPos.copy(g).sub(this.boneRestQuatPosScale[A].pos),O.relQuat.multiply(I),O.dual.set(O.relPos.x,O.relPos.y,O.relPos.z,0).multiply(O.relQuat);const B=A*16;this.boneData[B+0]=O.relQuat.x,this.boneData[B+1]=O.relQuat.y,this.boneData[B+2]=O.relQuat.z,this.boneData[B+3]=O.relQuat.w,this.boneData[B+4]=.5*O.dual.x,this.boneData[B+5]=.5*O.dual.y,this.boneData[B+6]=.5*O.dual.z,this.boneData[B+7]=.5*O.dual.w}else this.setBoneQuatPosScale(A,I,g,O.UNIT_SCALE)}setBoneQuatPosScale(A,I,g,B){if(this.mode==="dual_quaternion")throw new Error("setBoneQuatPosScale only supported for linear blend skinning");O.skinMat.compose(g,I,B),this.setBoneMatrix(A,O.skinMat)}setBoneMatrix(A,I){if(this.mode!=="linear_blend")throw new Error("setBoneMatrix only supported for linear blend skinning");O.skinMat.multiplyMatrices(this.boneRestInvMats[A],I);const g=A*16;this.boneData[g+0]=O.skinMat.elements[0],this.boneData[g+1]=O.skinMat.elements[1],this.boneData[g+2]=O.skinMat.elements[2],this.boneData[g+3]=O.skinMat.elements[4],this.boneData[g+4]=O.skinMat.elements[5],this.boneData[g+5]=O.skinMat.elements[6],this.boneData[g+6]=O.skinMat.elements[8],this.boneData[g+7]=O.skinMat.elements[9],this.boneData[g+8]=O.skinMat.elements[10],this.boneData[g+9]=O.skinMat.elements[12],this.boneData[g+10]=O.skinMat.elements[13],this.boneData[g+11]=O.skinMat.elements[14]}setSplatBones(A,I,g){const B=A*4;this.skinData[B+0]=Math.min(255,Math.max(0,Math.round(g.x*255)))+(I.x<<8),this.skinData[B+1]=Math.min(255,Math.max(0,Math.round(g.y*255)))+(I.y<<8),this.skinData[B+2]=Math.min(255,Math.max(0,Math.round(g.z*255)))+(I.z<<8),this.skinData[B+3]=Math.min(255,Math.max(0,Math.round(g.w*255)))+(I.w<<8)}updateBones(){this.boneTexture.needsUpdate=!0,this.mesh.needsUpdate=!0}};O.UNIT_SCALE=new G.Vector3(1,1,1),O.relQuat=new G.Quaternion,O.relPos=new G.Vector3,O.dual=new G.Quaternion,O.skinMat=new G.Matrix4;let vQ=O;const kQ={type:"GsplatSkinning"},FQ=oA(` +`),Ch=GA(` + vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) { + vec3 sh3_0 = decodeExtRgb(packedA.x); + vec3 sh3_1 = decodeExtRgb(packedA.y); + vec3 sh3_2 = decodeExtRgb(packedA.z); + vec3 sh3_3 = decodeExtRgb(packedA.w); + vec3 sh3_4 = decodeExtRgb(packedB.x); + vec3 sh3_5 = decodeExtRgb(packedB.y); + vec3 sh3_6 = decodeExtRgb(packedB.z); + + float xx = viewDir.x * viewDir.x; + float yy = viewDir.y * viewDir.y; + float zz = viewDir.z * viewDir.z; + float xy = viewDir.x * viewDir.y; + float yz = viewDir.y * viewDir.z; + float zx = viewDir.z * viewDir.x; + + return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy)) + + sh3_1 * (2.8906114 * xy * viewDir.z) + + + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy)) + + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) + + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy)) + + sh3_5 * (1.4453057 * viewDir.z * (xx - yy)) + + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy)); + } +`);function po({coord:Q,viewDir:A,numSh:I,sh1Texture:g,sh2Texture:B,sh3TextureA:C,sh3TextureB:E}){return new q({inTypes:{coord:"ivec3",viewDir:"vec3",numSh:"int",sh1Texture:"usampler2DArray",sh2Texture:"usampler2DArray",sh3TextureA:"usampler2DArray",sh3TextureB:"usampler2DArray"},outTypes:{rgb:"vec3"},inputs:{coord:Q,viewDir:A,numSh:I,sh1Texture:g,sh2Texture:B,sh3TextureA:C,sh3TextureB:E},globals:()=>[Qh,Bh,Ch],statements:({inputs:i,outputs:o})=>{const D=["vec3 rgb = vec3(0.0);"];return i.sh1Texture&&(i.sh2Texture?(D.push(...z(` + if (${i.numSh} == 1) { + rgb = evaluateExtSH1(texelFetch(${i.sh1Texture}, ${i.coord}, 0), ${i.viewDir}); + } else if (${i.numSh} >= 2) { + rgb = evaluateExtSH12(texelFetch(${i.sh1Texture}, ${i.coord}, 0), texelFetch(${i.sh2Texture}, ${i.coord}, 0), ${i.viewDir}); + `)),i.sh3TextureA&&i.sh3TextureB&&D.push(...z(` + if (${i.numSh} >= 3) { + rgb += evaluateExtSH3(texelFetch(${i.sh3TextureA}, ${i.coord}, 0), texelFetch(${i.sh3TextureB}, ${i.coord}, 0), ${i.viewDir}); + } + `)),D.push("}")):D.push(...z(` + if (${i.numSh} >= 1) { + rgb = evaluateExtSH1(texelFetch(${i.sh1Texture}, ${i.coord}, 0), ${i.viewDir}); + } + `))),D.push(`${o.rgb} = rgb;`),D}}).outputs}function nI(Q,A,I,g,B,C,E){const i=new a.DataArrayTexture(Q,A,I,g);return i.format=B,i.type=C,i.internalFormat=E,i.needsUpdate=!0,i}const dA=class dA{constructor(A={}){if(this.capacity=0,this.count=0,this.array=null,this.readback=null,this.source=null,this.needsUpdate=!0,this.dyno=new x({key:"rgbaArray",type:eB,globals:()=>[uo],value:{texture:dA.getEmpty(),count:0},update:I=>(I.texture=this.getTexture(),I.count=this.count,I)}),A.array){this.array=A.array;const I=Math.floor(this.array.length/4);this.capacity=Math.ceil(I/P)*P,this.capacity>I&&(this.array=new Uint8Array(this.capacity*4),this.array.set(A.array)),this.count=Math.min(I,A.count??Number.POSITIVE_INFINITY)}else this.capacity=A.capacity??0,this.count=0}dispose(){this.readback&&(this.readback.dispose(),this.readback=null),this.source&&(this.source.dispose(),this.source=null)}ensureCapacity(A){var I;if(!this.array||A>(((I=this.array)==null?void 0:I.length)??0)/4){this.capacity=EA(A).maxSplats;const g=new Uint8Array(this.capacity*4);this.array&&g.set(this.array),this.array=g}return this.array}getTexture(){var I;let A=(I=this.readback)==null?void 0:I.getTexture();return(this.source||this.array)&&(A=this.maybeUpdateSource()),A??dA.getEmpty()}maybeUpdateSource(){if(!this.array)throw new Error("No array");if(this.needsUpdate||!this.source){if(this.needsUpdate=!1,this.source){const{width:A,height:I,depth:g}=this.source.image;this.capacity!==A*I*g&&(this.source.dispose(),this.source=null)}if(this.source)this.array.buffer!==this.source.image.data.buffer&&(this.source.image.data=new Uint8Array(this.array.buffer));else{const{width:A,height:I,depth:g}=EA(this.capacity);this.source=new a.DataArrayTexture(this.array,A,I,g),this.source.format=a.RGBAFormat,this.source.type=a.UnsignedByteType,this.source.internalFormat="RGBA8",this.source.needsUpdate=!0}this.source.needsUpdate=!0}return this.source}render({reader:A,count:I,renderer:g}){this.readback||(this.readback=new zI({renderer:g})),this.readback.render({reader:A,count:I,renderer:g}),this.capacity=this.readback.capacity,this.count=this.readback.count}fromPackedSplats({packedSplats:A,base:I,count:g,renderer:B}){const{dynoSplats:C,dynoBase:E,dynoCount:i,reader:o}=dA.makeDynos();return C.packedSplats=A,E.value=I,i.value=g,this.render({reader:o,count:g,renderer:B}),this}async read(){if(!this.readback)throw new Error("No readback");return(!this.array||this.array.length{if(!C)throw new Error("index is undefined");C=xA(C,I);const E=gC(A,C,I,g);return{rgba8:bA(E).outputs.rgba}});dA.dynos={dynoSplats:A,dynoBase:I,dynoCount:g,reader:B}}return dA.dynos}};dA.emptySource=null,dA.dynos=null;let VQ=dA;const eB={type:"RgbaArray"},uo=GA(` + struct RgbaArray { + sampler2DArray texture; + int count; + }; +`);function Eh(Q,A){return new q({inTypes:{rgba:eB,index:"int"},outTypes:{rgba:"vec4"},inputs:{rgba:Q,index:A},globals:()=>[uo],statements:({inputs:g,outputs:B})=>z(` + if ((${g.index} >= 0) && (${g.index} < ${g.rgba}.count)) { + ${B.rgba} = texelFetch(${g.rgba}.texture, splatTexCoord(${g.index}), 0); + } else { + ${B.rgba} = vec4(0.0, 0.0, 0.0, 0.0); + } + `)}).outputs.rgba}const ZQ=256,OQ=256,Cg=ZQ*OQ;class XI{constructor(A){var I;if(this.pager=A.pager,this.rootUrl=A.rootUrl??"",this.requestHeader=A.requestHeader,this.withCredentials=A.withCredentials,this.numSh=0,this.maxSh=((I=A.pager)==null?void 0:I.maxSh)??3,this.numSplats=0,this.dynoNumSplats=new CI({value:0}),this.dynoIndices=new EQ({value:hI.emptyIndicesTexture}),this.rgbMinMaxLnScaleMinMax=new Ig({value:new a.Vector4(0,1,fA,pA)}),this.lodOpacity=new rg({value:!1}),this.dynoNumSh=new CI({value:0}),this.shMax=new LI({value:new a.Vector3}),this.fileBytes=A.fileBytes,this.fileType=A.fileType,!this.fileType&&this.fileBytes&&(this.fileType=MB(this.fileBytes)),!this.fileType&&this.rootUrl&&(this.fileType=xo(this.rootUrl)),!this.fileType)throw new Error("Unable to determine file type");this.fileType===eA.RAD&&(this.radMetaPromise=this.getRadMeta())}dispose(){this.dynoIndices.value!==hI.emptyIndicesTexture&&(this.dynoIndices.value.dispose(),this.dynoIndices.value=hI.emptyIndicesTexture)}setMaxSh(A){this.maxSh=A}getRadMeta(){return this.radMetaPromise?this.radMetaPromise:(this.radMetaPromise=(async()=>{if(await Zt,this.fileBytes){const A=rB(this.fileBytes.slice(0,1048576));if(A)return A;throw new Error("Failed to decode RAD header")}if(!this.rootUrl)throw new Error("No url or fileBytes provided");for(const A of[65536,256*1024,1024*1024]){const I=await YQ({url:this.rootUrl,requestHeader:this.requestHeader,withCredentials:this.withCredentials,offset:0,bytes:A}),g=rB(I);if(g)return g}throw new Error("Failed to decode RAD header")})().then(A=>A),this.radMetaPromise.catch(A=>{console.error(A)}),this.radMetaPromise)}chunkUrl(A){return this.rootUrl.replace(/-lod-0\./,`-lod-${A}.`)}async fetchDecodeChunk(A){let I;if(this.fileType===eA.RAD){const{meta:g,chunksStart:B}=await this.getRadMeta();if(A<0||A>=g.chunks.length)throw new Error(`Chunk index out of range: ${A} (max: ${g.chunks.length-1})`);let{offset:C,bytes:E,filename:i}=g.chunks[A];if(i){if(this.fileBytes)throw new Error("Chunked RAD file not supported with fileBytes");const o=new URL(this.rootUrl,window.location.href).toString(),D=new URL(i,o).toString();I=await YQ({url:D,requestHeader:this.requestHeader,withCredentials:this.withCredentials})}else if(C+=B,this.fileBytes){if(C<0||C+E>this.fileBytes.length)throw new Error(`Invalid chunk offset or bytes: ${C} + ${E} > ${this.fileBytes.length}`);I=this.fileBytes.slice(C,C+E)}else if(this.rootUrl)I=await YQ({url:this.rootUrl,requestHeader:this.requestHeader,withCredentials:this.withCredentials,offset:C,bytes:E});else throw new Error("No url or fileBytes provided")}else if(!this.fileBytes)if(this.rootUrl){const g=this.chunkUrl(A),B=new Request(g,{headers:this.requestHeader?new Headers(this.requestHeader):void 0,credentials:this.withCredentials?"include":"same-origin"}),C=await fetch(B);if(!C.ok||!C.body)throw new Error(`Failed to fetch "${g}": ${C.status} ${C.statusText}`);I=new Uint8Array(await C.arrayBuffer())}else throw new Error("No url or fileBytes provided");return await aQ.withWorker(async g=>{var i,o,D,s,w;if(!this.pager)throw new Error("PagedSplats.pager not set");if(!this.pager.extSplats){const t=(await g.call("loadPackedSplats",{fileBytes:I,pathName:this.chunkUrl(A),sh1Codes:(i=this.sh1Codes)==null?void 0:i.slice(),sh2Codes:(o=this.sh2Codes)==null?void 0:o.slice(),sh3Codes:(D=this.sh3Codes)==null?void 0:D.slice()})).lodSplats;return this.splatEncoding||(this.splatEncoding=t.splatEncoding,this.numSh=t.extra.sh3?3:t.extra.sh2?2:t.extra.sh1?1:0,this.rgbMinMaxLnScaleMinMax.value.set(this.splatEncoding.rgbMin??0,this.splatEncoding.rgbMax??1,this.splatEncoding.lnScaleMin??fA,this.splatEncoding.lnScaleMax??pA),this.lodOpacity.value=this.splatEncoding.lodOpacity??!1,this.shMax.value.set(this.splatEncoding.sh1Max??1,this.splatEncoding.sh2Max??1,this.splatEncoding.sh3Max??1)),this.sh1Codes=t.extra.sh1Codes??this.sh1Codes,this.sh2Codes=t.extra.sh2Codes??this.sh2Codes,this.sh3Codes=t.extra.sh3Codes??this.sh3Codes,t}const B=this.sh3Codes,E=(await g.call("loadExtSplats",{fileBytes:I,pathName:this.chunkUrl(A),sh1Codes:(s=this.sh1Codes)==null?void 0:s.slice(),sh2Codes:(w=this.sh2Codes)==null?void 0:w.slice(),sh3Codes:B?[B[0].slice(),B[1].slice()]:void 0})).lodSplats;return this.splatEncoding||(this.splatEncoding=QQ,this.numSh=E.extra.sh3a&&E.extra.sh3b?3:E.extra.sh2?2:E.extra.sh1?1:0),this.sh1Codes=E.extra.sh1Codes??this.sh1Codes,this.sh2Codes=E.extra.sh2Codes??this.sh2Codes,this.sh3Codes=E.extra.sh3Codes??this.sh3Codes,E})}update(A,I){if(!this.pager)throw new Error("PagedSplats.pager not set");const g=this.pager.renderer;this.numSplats=A,this.dynoNumSplats.value=this.numSplats;const B=Math.ceil(A/16384);let C=this.dynoIndices.value===hI.emptyIndicesTexture?void 0:this.dynoIndices.value;if(C&&B>C.image.height&&(C.dispose(),C=void 0),!C)C=new a.DataTexture(I,4096,B,a.RGBAIntegerFormat,a.UnsignedIntType),C.internalFormat="RGBA32UI",C.needsUpdate=!0,g.initTexture(C),this.dynoIndices.value=C;else{const E=C.image.data;E.set(I.subarray(0,A)),hB(g,C,4096,B,E)}}prepareFetchSplat(){}getNumSplats(){return this.numSplats}hasRgbDir(){return this.pager?Math.min(this.numSh,this.pager.maxSh)>0:!1}getNumSh(){return this.numSh}fetchSplat({index:A,viewOrigin:I}){if(!this.pager)throw new Error("PagedSplats.pager not set");const g=this.pager.readIndex.apply({index:A,numSplats:this.dynoNumSplats,indices:this.dynoIndices}).index;return this.pager.extSplats?this.hasRgbDir()&&I?(this.dynoNumSh.value=Math.min(this.numSh,this.maxSh,this.pager.maxSh),this.pager.readSplatExtDir.apply({index:g,viewOrigin:I,numSh:this.dynoNumSh}).gsplat):this.pager.readSplatExt.apply({index:g}).gsplat:this.hasRgbDir()&&I?(this.dynoNumSh.value=Math.min(this.numSh,this.maxSh,this.pager.maxSh),this.pager.readSplatDir.apply({index:g,rgbMinMaxLnScaleMinMax:this.rgbMinMaxLnScaleMinMax,lodOpacity:this.lodOpacity,viewOrigin:I,numSh:this.dynoNumSh,shMax:this.shMax}).gsplat):this.pager.readSplat.apply({index:g,rgbMinMaxLnScaleMinMax:this.rgbMinMaxLnScaleMinMax,lodOpacity:this.lodOpacity}).gsplat}forEachSplat(A){if(!this.pager||!this.numSplats)return;const I=this.pager.extSplats,g=this.dynoIndices.value.image.data,B=this.pager.packedTexture.value.image.data,C=this.pager.extTexture.value.image.data,E=[B,C];for(let i=0;iB),this.pageLru=new Set,this.freeablePages=[],this.newUploads=[],this.readyUploads=[],this.lodTreeUpdates=[],this.fetchers=[],this.fetched=[],this.fetchPriority=[],this.packedTexture=new WA({value:this.newUint32ArrayTexture(4)}),this.extTexture=new WA({value:this.extSplats?this.newUint32ArrayTexture(4):wA.emptyExtTexture});const I=this.extSplats?wA.emptyExtShTextures:wA.emptyShTextures;this.shTextures=I.map(g=>new WA({value:g})),this.readIndex=HA({index:"int",numSplats:"int",indices:"usampler2D"},{index:"int"},({index:g,numSplats:B,indices:C})=>new q({inTypes:{index:"int",numSplats:"int",indices:"usampler2D"},outTypes:{index:"int"},inputs:{index:g,numSplats:B,indices:C},statements:({inputs:E,outputs:i})=>z(` + if (${E.index} >= ${E.numSplats}) { + return; + } + + ivec2 indexCoord = ivec2((${E.index} >> 2) & 4095, ${E.index} >> 14); + uint index = texelFetch(${E.indices}, indexCoord, 0)[${E.index} & 3]; + ${i.index} = int(index); + `)}).outputs),this.readSplat=HA({index:"int",rgbMinMaxLnScaleMinMax:"vec4",lodOpacity:"bool"},{gsplat:j},({index:g,rgbMinMaxLnScaleMinMax:B,lodOpacity:C})=>new q({inTypes:{index:"int",packedTexture:"usampler2DArray",rgbMinMaxLnScaleMinMax:"vec4",lodOpacity:"bool"},outTypes:{gsplat:j},inputs:{index:g,packedTexture:this.packedTexture,rgbMinMaxLnScaleMinMax:B,lodOpacity:C},globals:()=>[rA],statements:({inputs:E,outputs:i})=>z(` + int index = ${E.index}; + ivec3 splatCoord = pagedSplatTexCoord(index); + uvec4 packedData = texelFetch(${E.packedTexture}, splatCoord, 0); + + unpackSplatEncoding(packedData, ${i.gsplat}.center, ${i.gsplat}.scales, ${i.gsplat}.quaternion, ${i.gsplat}.rgba, ${E.rgbMinMaxLnScaleMinMax}); + if ((${i.gsplat}.rgba.a == 0.0) || all(equal(${i.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { + return; + } + + ${i.gsplat}.index = index; + ${i.gsplat}.flags = GSPLAT_FLAG_ACTIVE; + if (${E.lodOpacity}) { + ${i.gsplat}.rgba.a *= 2.0; + } + `)}).outputs),this.readSplatDir=HA({index:"int",rgbMinMaxLnScaleMinMax:"vec4",lodOpacity:"bool",viewOrigin:"vec3",numSh:"int",shMax:"vec3"},{gsplat:j},({index:g,rgbMinMaxLnScaleMinMax:B,lodOpacity:C,viewOrigin:E,numSh:i,shMax:o})=>{if(!g||!B||!C||!E||!i||!o)throw new Error("index and viewOrigin are required");let D=this.readSplat.apply({index:g,rgbMinMaxLnScaleMinMax:B,lodOpacity:C}).gsplat;const s=bA(D).outputs.center,w=Ng(EI(s,E));let G=lo({coord:dQ(g),viewDir:w,numSh:i,sh1Texture:this.shTextures[0],sh2Texture:this.shTextures[1],sh3Texture:this.shTextures[2],shMax:o}).rgb;return G=xA(G,bA(D).outputs.rgb),D=BI({gsplat:D,rgb:G}),{gsplat:D}}),this.readSplatExt=HA({index:"int"},{gsplat:j},({index:g})=>new q({inTypes:{index:"int",extTexture1:"usampler2DArray",extTexture2:"usampler2DArray"},outTypes:{gsplat:j},inputs:{index:g,extTexture1:this.packedTexture,extTexture2:this.extTexture},globals:()=>[rA],statements:({inputs:B,outputs:C})=>z(` + int index = ${B.index}; + ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16); + uvec4 ext1 = texelFetch(${B.extTexture1}, splatCoord, 0); + float alpha = unpackSplatExtAlpha(ext1); + if (alpha == 0.0) { + return; + } + + uvec4 ext2 = texelFetch(${B.extTexture2}, splatCoord, 0); + unpackSplatExt(ext1, ext2, ${C.gsplat}.center, ${C.gsplat}.scales, ${C.gsplat}.quaternion, ${C.gsplat}.rgba); + if (all(equal(${C.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { + return; + } + + ${C.gsplat}.index = index; + ${C.gsplat}.flags = GSPLAT_FLAG_ACTIVE; + `)}).outputs),this.readSplatExtDir=HA({index:"int",viewOrigin:"vec3",numSh:"int"},{gsplat:j},({index:g,viewOrigin:B,numSh:C})=>{if(!g||!B||!C)throw new Error("index and viewOrigin are required");let E=this.readSplatExt.apply({index:g}).gsplat;const i=bA(E).outputs.center,o=Ng(EI(i,B));let D=po({coord:dQ(g),viewDir:o,numSh:C,sh1Texture:this.shTextures[0],sh2Texture:this.shTextures[1],sh3TextureA:this.shTextures[2],sh3TextureB:this.shTextures[3]}).rgb;return D=xA(D,bA(E).outputs.rgb),E=BI({gsplat:E,rgb:D}),{gsplat:E}})}dispose(){this.autoDrive=!1,this.numFetchers=0,this.packedTexture.value.dispose(),this.packedTexture.value.source.data=null,this.extTexture.value!==wA.emptyExtTexture&&(this.extTexture.value.dispose(),this.extTexture.value.source.data=null);const A=this.extSplats?wA.emptyExtShTextures:wA.emptyShTextures;for(let I=0;I=C.length&&(C.length=I+1);const E={page:g,lru:B};return C[I]=E,this.pageLru.add(E),this.pageToSplatsChunk[g]={splats:A,chunk:I,time:performance.now()},this.pageToSplatsChunk[g]}removeSplatsChunkPage(A,I,g){const B=this.splatsChunkToPage.get(A);if(!B)throw new Error("impossible");const C=B[I];if(!C)throw new Error(`pageLru not found for splats: ${A}, chunk: ${I}, page: ${g}`);for(this.pageLru.delete(C),B[I]=void 0;B.length>0&&B[B.length-1]===void 0;)B.pop();for(B.length===0&&this.splatsChunkToPage.delete(A),this.pageToSplatsChunk[g]=void 0;this.pageToSplatsChunk.length>0&&this.pageToSplatsChunk[this.pageToSplatsChunk.length-1]===void 0;)this.pageToSplatsChunk.pop()}removeSplats(A){const I=this.splatsChunkToPage.get(A);if(!I)return;const g=new Set;for(;I.length>0;){const B=I.pop();if(B){const{page:C}=B;this.pageToSplatsChunk[C]=void 0,g.add(C),this.pageFreelist.push(C),this.pageLru.delete(B)}}this.splatsChunkToPage.delete(A),this.freeablePages=this.freeablePages.filter(B=>!g.has(B))}uploadPage(A,I,g,B){const C=A*Cg;nQ(this.packedTexture,A,C*4,I),B&&nQ(this.extTexture,A,C*4,B);const E=Math.min(g.length,3);this.ensureShTextures(E);for(let i=0;i=this.maxPages?I.push(o):A.push(o),g+=1;continue}if(this.fetched.some(({splats:D,chunk:s})=>E===D&&i===s)||this.fetchers.some(({splats:D,chunk:s})=>E===D&&i===s)){g+=1;continue}if(g{this.fetched.push({splats:E,chunk:i,data:s}),this.fetchPause>0&&await new Promise(w=>setTimeout(w,this.fetchPause))},async s=>{console.warn(s);const w=250+500*Math.random();await new Promise(G=>setTimeout(G,w))}).finally(()=>{this.fetchers=this.fetchers.filter(({splats:s,chunk:w})=>E!==s||i!==w),this.processFetched()});this.fetchers.push({splats:E,chunk:i,promise:D}),D.then(s=>{this.autoDrive&&this.driveFetchers()})}}const B=performance.now();for(const E of I.reverse())E.lru=B,this.pageLru.delete(E),this.pageLru.add(E);const C=new Set(this.pageLru);for(const E of A.reverse())C.delete(E),E.lru=B,this.pageLru.delete(E),this.pageLru.add(E);this.freeablePages=Array.from(C).map(({page:E})=>E)}allocateFreeable(){const A=this.freeablePages.shift();if(A===void 0)return;const I=this.pageToSplatsChunk[A];if(!I)throw new Error(`splatsChunk not found for page: ${A}`);const{splats:g,chunk:B}=I;return this.removeSplatsChunkPage(g,B,A),this.lodTreeUpdates.push({splats:g,page:A,chunk:B,numSplats:Cg}),A}processFetched(){const A=performance.now();for(;;){const I=this.fetched.shift();if(!I)break;const{splats:g,chunk:B,data:C}=I;let E=this.allocatePage();if(E===void 0&&(E=this.allocateFreeable(),E===void 0))return;this.insertSplatsChunkPage(g,B,E,A);const{numSplats:i,extra:o}=C;if(this.lodTreeUpdates.push({splats:g,page:E,chunk:B,numSplats:i,lodTree:o.lodTree}),ih(C,this.extSplats)){const D=C.extArrays,s=D[0],w=D[1],G=[C.extra.sh1,C.extra.sh2,C.extra.sh3a,C.extra.sh3b];G.length=G.findIndex(t=>!t),this.newUploads.push({page:E,numSplats:i,packedArray:s,extArray:w,shArrays:G})}else{const D=C.packedArray,s=[C.extra.sh1,C.extra.sh2,C.extra.sh3];s.length=s.findIndex(w=>!w),this.newUploads.push({page:E,numSplats:i,packedArray:D,shArrays:s})}}}processUploads(){for(;;){const A=this.readyUploads.shift();if(!A)break;const{page:I,numSplats:g,packedArray:B,extArray:C,shArrays:E}=A;this.uploadPage(I,B,E,C)}}consumeLodTreeUpdates(){const A=this.lodTreeUpdates;return this.lodTreeUpdates=[],this.readyUploads.push(...this.newUploads),this.newUploads=[],A}};wA.emptyUint32x4=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=EA(1),C=new Uint32Array(B*4),E=new a.DataArrayTexture(C,A,I,g);return E.format=a.RGBAIntegerFormat,E.type=a.UnsignedIntType,E.internalFormat="RGBA32UI",E.needsUpdate=!0,E})(),wA.emptyUint32x2=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=EA(1),C=new Uint32Array(B*2),E=new a.DataArrayTexture(C,A,I,g);return E.format=a.RGIntegerFormat,E.type=a.UnsignedIntType,E.internalFormat="RG32UI",E.needsUpdate=!0,E})(),wA.emptyIndicesTexture=(()=>{const A=new Uint32Array(16384),I=new a.DataTexture(A,4096,1);return I.format=a.RGBAIntegerFormat,I.type=a.UnsignedIntType,I.internalFormat="RGBA32UI",I.needsUpdate=!0,I})(),wA.emptyPackedTexture=wA.emptyUint32x4,wA.emptyExtTexture=wA.emptyUint32x4,wA.emptyShTextures=[wA.emptyUint32x2,wA.emptyUint32x4,wA.emptyUint32x4],wA.emptyExtShTextures=[wA.emptyUint32x4,wA.emptyUint32x4,wA.emptyUint32x4,wA.emptyUint32x4];let hI=wA;function ih(Q,A){return A}function nQ(Q,A,I,g){Q.value.image.data.subarray(I,I+g.length).set(g),Q.value.addLayerUpdate(A),Q.value.needsUpdate=!0,Q.value.source.dataReady=!0}async function YQ({url:Q,requestHeader:A,withCredentials:I,offset:g,bytes:B}){const C=new Request(Q,{headers:A?new Headers(A):void 0,credentials:I?"include":"same-origin"});g!==void 0&&B!==void 0&&C.headers.set("Range",`bytes=${g}-${g+B-1}`);const E=await fetch(C);if(!E.ok||!E.body)throw new Error(`Failed to fetch "${Q}": ${E.status} ${E.statusText}`);return new Uint8Array(await E.arrayBuffer())}class Dh{constructor(){this.fetchDyno=new q({inTypes:{},outTypes:{gsplat:j},globals:()=>[rA],statements:({outputs:A})=>z(` + ${A.gsplat}.flags = 0u; + return; + `)}).outputs.gsplat}prepareFetchSplat(){}dispose(){}getNumSplats(){return 0}hasRgbDir(){return!1}getNumSh(){return 0}setMaxSh(A){}fetchSplat({index:A}){return this.fetchDyno}forEachSplat(){}}const oI=class oI extends _I{constructor(A={}){if(super({update:I=>this.update(I)}),this.isInitialized=!1,this.recolor=new a.Color(1,1,1),this.opacity=1,this.generatorDirty=!0,this.enableViewToObject=!1,this.enableViewToWorld=!1,this.enableWorldToView=!1,this.skinning=null,this.edits=null,this.rgbaDisplaceEdits=null,this.splatRgba=null,this.maxSh=3,this.showLodPageDyno=new CI({value:0}),A.splats)this.splats=A.splats,this.numSplats=A.splats.getNumSplats();else if(A.paged){A.extSplats&&console.warn("To set extSplats with the paged option, set SparkRenderer.pagedExtSplats");const I=A.url??"";if(A.paged===!0)this.paged=new XI({rootUrl:I});else if(A.paged instanceof XI)this.paged=A.paged;else if(A.paged instanceof hI)this.paged=new XI({rootUrl:I,pager:A.paged});else throw new Error("Invalid paged option");this.splats=this.paged}else A.extSplats?(this.extSplats=A.extSplats instanceof gI?A.extSplats:new gI,A.extSplats=this.extSplats,this.numSplats=this.extSplats.numSplats,this.splats=this.extSplats):A.packedSplats?(this.packedSplats=A.packedSplats,this.packedSplats.splatEncoding=A.splatEncoding??{...QQ},this.splats=this.packedSplats):this.packedSplats=new sI;if(this.editable=A.editable??!0,this.raycastable=A.raycastable??!0,this.minRaycastOpacity=A.minRaycastOpacity??.2,this.onFrame=A.onFrame,this.context={transform:new qI,viewToWorld:new qI,worldToView:new qI,viewToObject:new qI,covTransform:new xg,covViewToWorld:new xg,covWorldToView:new xg,covViewToObject:new xg,recolor:new Ig({value:new a.Vector4().setScalar(Number.NEGATIVE_INFINITY)}),time:new OI({value:0}),deltaTime:new OI({value:0}),numSplats:new CI({value:0}),splats:new Dh,enableLod:new rg({value:!1}),lodIndices:new EQ({value:uB,key:"lodIndices"})},this.covSplats=A.covSplats??!1,this.covSplats&&!this.extSplats)throw new Error("CovSplats requires ExtSplats");if(this.objectModifiers=A.objectModifier?[A.objectModifier]:void 0,this.worldModifiers=A.worldModifier?[A.worldModifier]:void 0,A.objectModifiers&&(this.objectModifiers=A.objectModifiers),A.worldModifiers&&(this.worldModifiers=A.worldModifiers),this.enableLod=A.enableLod,this.lodScale=A.lodScale??1,this.behindFoveate=A.behindFoveate,this.coneFov0=A.coneFov0,this.coneFov=A.coneFov,this.coneFoveate=A.coneFoveate,this.updateGenerator(),A.url||A.fileBytes||A.stream||A.constructSplats||A.packedSplats&&!A.packedSplats.isInitialized||this.extSplats&&!this.extSplats.isInitialized)this.initialized=this.asyncInitialize(A).then(async()=>{if(this.updateGenerator(),this.isInitialized=!0,A.onLoad){const I=A.onLoad(this);I instanceof Promise&&await I}return this});else if(this.isInitialized=!0,this.initialized=Promise.resolve(this),A.onLoad){const I=A.onLoad(this);I instanceof Promise&&(this.initialized=I.then(()=>this))}}async asyncInitialize(A){const{url:I,fileBytes:g,fileType:B,fileName:C,stream:E,streamLength:i,maxSplats:o,constructSplats:D,onProgress:s,splatEncoding:w,lod:G,nonLod:t,lodAbove:c}=A;if(this.packedSplats){if(I||g||E||D){const h={url:I,fileBytes:g,fileType:B,fileName:C,stream:E,streamLength:i,maxSplats:o,construct:D,onProgress:s,splatEncoding:w,lod:G,nonLod:t,lodAbove:c};this.packedSplats.reinitialize(h)}await this.packedSplats.initialized,this.splats=this.packedSplats}else if(this.extSplats&&(I||g||E||D)){const h=D;this.extSplats.reinitialize({url:I,fileBytes:g,fileType:B,fileName:C,stream:E,streamLength:i,maxSplats:o,construct:h,onProgress:s,lod:G,nonLod:t,lodAbove:c}),await this.extSplats.initialized,this.splats=this.extSplats}this.splats&&(this.numSplats=this.splats.getNumSplats(),this.updateGenerator())}pushSplat(A,I,g,B,C){this.packedSplats?this.packedSplats.pushSplat(A,I,g,B,C):this.extSplats&&this.extSplats.pushSplat(A,I,g,B,C)}forEachSplat(A){var I;(I=this.splats)==null||I.forEachSplat(A)}dispose(){this.splats&&this.splats!==this.packedSplats&&this.splats!==this.extSplats&&(this.splats.dispose(),this.splats=void 0),this.packedSplats&&(this.packedSplats.dispose(),this.packedSplats=void 0),this.extSplats&&(this.extSplats.dispose(),this.extSplats=void 0)}getBoundingBox(A=!0){var o;if(!this.initialized)throw new Error("Cannot get bounding box before SplatMesh is initialized");const I=new a.Vector3(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),g=new a.Vector3(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),B=new a.Vector3,C=[-1,1];function E(D,s,w,G,t,c){if(A)I.min(s),g.max(s);else for(const h of C)for(const y of C)for(const k of C)B.set(h*w.x,y*w.y,k*w.z),B.applyQuaternion(G),B.add(s),I.min(B),g.max(B)}return(o=this.splats)==null||o.forEachSplat(E),new a.Box3(I,g)}set objectModifier(A){A?this.objectModifiers=[A]:this.objectModifiers=void 0}set worldModifier(A){A?this.worldModifiers=[A]:this.worldModifiers=void 0}constructGenerator(A){if(this.covSplats)return this.constructCovGenerator(A);const{transform:I,viewToObject:g,recolor:B}=A,C=HA({index:"int"},{gsplat:j},({index:E})=>{if(!E)throw new Error("index is undefined");E=fB(A.lodIndices,E,A.numSplats,A.enableLod,this.showLodPageDyno),A.splats.setMaxSh(this.maxSh),A.splats.prepareFetchSplat();let i=A.splats.fetchSplat({index:E,viewOrigin:g.translate});if(this.splatRgba&&(i=pB(i,this.splatRgba.dyno,E,A.enableLod)),this.skinning&&(i=this.skinning.modify(i)),this.objectModifiers)for(const D of this.objectModifiers)i=D.apply({gsplat:i}).gsplat;i=I.applyGsplat(i);const o=FA(B,bA(i).outputs.rgba);if(i=BI({gsplat:i,rgba:o}),this.rgbaDisplaceEdits&&(i=this.rgbaDisplaceEdits.modify(i)),this.worldModifiers)for(const D of this.worldModifiers)i=D.apply({gsplat:i}).gsplat;return{gsplat:i}});this.generator=C,this.covGenerator=void 0}constructCovGenerator(A){const{covTransform:I,covViewToObject:g,recolor:B}=A,C=HA({index:"int"},{covsplat:YA},({index:E})=>{if(!E)throw new Error("index is undefined");E=fB(A.lodIndices,E,A.numSplats,A.enableLod,this.showLodPageDyno),A.splats.prepareFetchSplat();let i=A.splats.fetchSplat({index:E,viewOrigin:g.offset});if(this.splatRgba&&(i=pB(i,this.splatRgba.dyno,E,A.enableLod)),this.objectModifiers)for(const s of this.objectModifiers)i=s.apply({gsplat:i}).gsplat;let o=vg(i);if(this.skinning&&(o=this.skinning.modifyCov(o)),this.covObjectModifiers)for(const s of this.covObjectModifiers)o=s.apply({covsplat:o}).covsplat;o=I.applyCovSplat(o);const D=FA(B,Xg(o).outputs.rgba);if(o=iB({covsplat:o,rgba:D}),this.rgbaDisplaceEdits&&(o=this.rgbaDisplaceEdits.modifyCov(o)),this.covWorldModifiers)for(const s of this.covWorldModifiers)o=s.apply({covsplat:o}).covsplat;return{covsplat:o}});this.generator=void 0,this.covGenerator=C}updateGenerator(){this.generatorDirty=!0}update({renderer:A,time:I,deltaTime:g,viewToWorld:B,camera:C,renderSize:E,globalEdits:i,lodIndices:o}){var h,y,k;this.context.time.value=I,this.context.deltaTime.value=g,oI.dynoTime.value=I,this.showLodPageDyno.value=this.showLodPage??-1;const D=this.splats??this.packedSplats??this.extSplats;D&&(this.context.splats=D),this.numSplats=this.context.splats.getNumSplats();let s=!1;const w=((h=this.packedSplats)==null?void 0:h.lodSplats)??((y=this.extSplats)==null?void 0:y.lodSplats);if(this.context.enableLod.value=w!=null&&o!=null,this.enableLod===!1&&(this.context.enableLod.value=!1),this.context.lodIndices.value=(o==null?void 0:o.texture)??uB,this.context.enableLod.value&&w&&(this.context.splats=w,this.numSplats=(o==null?void 0:o.numSplats)??0),this.context.numSplats.value=this.numSplats,this.context.splats!==this.lastSplats&&(this.lastSplats=this.context.splats,this.generatorDirty=!0),this.covSplats){this.context.covTransform.update(this)&&(s=!0),this.context.covViewToWorld.updateFromMatrix(B)&&this.enableViewToWorld&&(s=!0);const F=B.clone().invert();this.context.covWorldToView.updateFromMatrix(F)&&this.enableWorldToView&&(s=!0);const N=this.matrixWorld.clone().invert().multiply(B);this.context.covViewToObject.updateFromMatrix(N)&&(this.enableViewToObject||this.context.splats.hasRgbDir())&&(s=!0)}else{this.context.transform.update(this)&&(s=!0),this.context.viewToWorld.updateFromMatrix(B)&&this.enableViewToWorld&&(s=!0);const F=B.clone().invert();this.context.worldToView.updateFromMatrix(F)&&this.enableWorldToView&&(s=!0);const S=new a.Matrix4().compose(this.context.transform.translate.value,this.context.transform.rotate.value,new a.Vector3().setScalar(this.context.transform.scale.value)).invert().multiply(B);this.context.viewToObject.updateFromMatrix(S)&&(this.enableViewToObject||this.context.splats.hasRgbDir())&&(s=!0)}const G=new a.Vector4(this.recolor.r,this.recolor.g,this.recolor.b,this.opacity);G.equals(this.context.recolor.value)||(this.context.recolor.value.copy(G),s=!0);const t=this.editable?(this.edits??[]).concat(i):[];this.editable&&!this.edits&&this.traverseVisible(F=>{F instanceof Mg&&t.push(F)}),t.sort((F,R)=>F.ordering-R.ordering);const c=t.map(F=>{if(F.sdfs!=null)return{edit:F,sdfs:F.sdfs};const R=[];return F.traverseVisible(N=>{N instanceof Ho&&R.push(N)}),{edit:F,sdfs:R}});if(c.length>0&&!this.rgbaDisplaceEdits){const F=c.length,R=c.reduce((N,S)=>N+S.sdfs.length,0);this.rgbaDisplaceEdits=new no({maxEdits:F,maxSdfs:R}),this.generatorDirty=!0}if(this.rgbaDisplaceEdits){const F=this.rgbaDisplaceEdits.update(c);s||(s=F.updated),F.dynoUpdated&&(this.generatorDirty=!0)}this.generatorDirty&&(this.constructGenerator(this.context),this.generatorDirty=!1,s=!0),s&&this.updateVersion(),(k=this.onFrame)==null||k.call(this,{mesh:this,time:I,deltaTime:g})}raycast(A,I){var k,F,R,N,S,M,U,e,J,n,H,L,l,d,K,f,V,IA,O,CA,v,gA,W;if(!Ot()||!this.raycastable||!this.packedSplats&&!this.extSplats&&!this.paged)return;const g=this.paged!=null,B=g?((F=(k=this.paged)==null?void 0:k.pager)==null?void 0:F.extSplats)??!1:this.extSplats!=null,{near:C,far:E,ray:i}=A,o=this.matrixWorld.clone().invert(),D=new a.Matrix3().setFromMatrix4(o),s=i.origin.clone().applyMatrix4(o),w=i.direction.clone().applyMatrix3(D),G=et(),t=G.length/4;let c=0;const h=((R=this.raycastIndices)==null?void 0:R.numSplats)??(g?(N=this.paged)==null?void 0:N.numSplats:this.context.numSplats.value)??0,y=((S=this.raycastIndices)==null?void 0:S.indices)??(g?(M=this.paged)==null?void 0:M.dynoIndices.value.image.data:this.context.enableLod.value?this.context.lodIndices.value.image.data:null)??null;if(B){const b=Jt(),u=g?(K=(d=this.paged)==null?void 0:d.pager)==null?void 0:K.packedTexture.value.image.data:y?(V=(f=this.extSplats)==null?void 0:f.lodSplats)==null?void 0:V.extArrays[0]:(IA=this.extSplats)==null?void 0:IA.extArrays[0],T=g?(CA=(O=this.paged)==null?void 0:O.pager)==null?void 0:CA.extTexture.value.image.data:y?(gA=(v=this.extSplats)==null?void 0:v.lodSplats)==null?void 0:gA.extArrays[1]:(W=this.extSplats)==null?void 0:W.extArrays[1];if(!u||!T)return;for(let p=0;pB){for(;Bz(` + int index = ${C.index}; + if (${C.showLodPage} < 0) { + if (index >= ${C.numSplats}) { + return; + } + if (${C.enableLod}) { + ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14); + uint splatIndex = texelFetch(${C.lodIndices}, lodIndexCoord, 0)[index & 3]; + ${E.index} = int(splatIndex); + } else { + ${E.index} = index; + } + } else { + int start = ${C.showLodPage} << 16; + if (index >= 65536) { + return; + } + ${E.index} = start + index; + } + `)}).outputs.index}function pB(Q,A,I,g){return gB({inTypes:{gsplat:j,rgba:eB,index:"int",enableLod:"bool"},outTypes:{gsplat:j},inputs:{gsplat:Q,rgba:A,index:I,enableLod:g},statements:({inputs:B,outputs:C})=>z(` + ${C.gsplat} = ${B.gsplat}; + if (!${B.enableLod} && (${B.index} >= 0) && (${B.index} < ${B.rgba}.count)) { + ${C.gsplat}.rgba = texelFetch(${B.rgba}.texture, splatTexCoord(${B.index}), 0); + } + `)}).outputs.gsplat}const uB=(()=>{const Q=new a.DataTexture(new Uint32Array(16384),4096,1,a.RGBAIntegerFormat,a.UnsignedIntType);return Q.internalFormat="RGBA32UI",Q.needsUpdate=!0,Q})(),QA=class QA{constructor({extSplats:A,covSplats:I}={}){if(this.time=0,this.deltaTime=0,this.viewToWorld=new a.Matrix4,this.viewOrigin=new a.Vector3,this.viewDirection=new a.Vector3,this.maxSplats=0,this.numSplats=0,this.target=null,this.mapping=[],this.version=-1,this.mappingVersion=-1,this.readback=null,this.readbackSplats=[],!NE)throw new Error("Spark requires THREE.js r179 or above");this.extSplats=A??!0,this.covSplats=I??!1}dispose(){this.target&&(this.target.dispose(),this.target=null)}getTextures(){return this.target?this.target.textures:QA.emptyTextures}generateMapping(A){let I=0;const g=A.map(B=>{const C=I,E=Math.ceil(B/P)*P;return I+=E,{base:C,count:B}});return{maxSplats:I,mapping:g}}ensureGenerate({maxSplats:A}){if(this.target&&(A??1)<=this.maxSplats)return!1;this.dispose();const I=EA(A??1),{width:g,height:B,depth:C}=I;if(this.maxSplats=I.maxSplats,this.target=new a.WebGLArrayRenderTarget(g,B,C,{depthBuffer:!1,stencilBuffer:!1,generateMipmaps:!1,magFilter:a.NearestFilter,minFilter:a.NearestFilter,format:a.RGBAIntegerFormat,type:a.UnsignedIntType}),this.target.scissorTest=!0,this.extSplats){const E=this.target.texture.clone(),i=this.target.texture.clone();i.format=a.RGBAFormat,i.type=a.UnsignedByteType,i.internalFormat="RGBA8",this.target.textures=[this.target.texture,E,i]}else{const E=this.target.texture.clone();E.format=a.RGBAFormat,E.type=a.UnsignedByteType,E.internalFormat="RGBA8",this.target.textures=[this.target.texture,E]}return!0}saveRenderState(A){return{target:A.getRenderTarget(),activeCubeFace:A.getActiveCubeFace(),activeMipmapLevel:A.getActiveMipmapLevel(),xrEnabled:A.xr.enabled,autoClear:A.autoClear}}resetRenderState(A,I){A.setRenderTarget(I.target,I.activeCubeFace,I.activeMipmapLevel),A.xr.enabled=I.xrEnabled,A.autoClear=I.autoClear}prepareProgramMaterial(A,I){const g=A??I;if(!g)throw new Error("Either generator or covGenerator must be provided");let B=QA.generatorProgram.get(g);if(!B){const E=HA({index:"int"},{},({index:i},o,{roots:D})=>{if(A&&(A.inputs.index=i),I&&(I.inputs.index=i),this.extSplats)if(this.covSplats)if(I){const s=qQ(I.outputs.covsplat);D.push(s)}else if(A){const s=vg(A.outputs.gsplat),w=qQ(s);D.push(w)}else throw new Error("Generator must be provided");else if(A){const s=eC(A.outputs.gsplat);D.push(s)}else throw new Error("Generator must be provided");else{if(this.covSplats){let s;if(I)s=I.outputs.covsplat;else if(A)s=vg(A.outputs.gsplat);else throw new Error("Generator must be provided");const w=EI(Xg(s).outputs.center,QA.viewCenterUniform),G=FA(Xg(s).outputs.opacity,AA("float",.5));s=iB({covsplat:s,center:w,opacity:G});const t=MC(s,AA("vec4",[0,1,fA,pA]));D.push(t)}else if(A){const s=EI(bA(A.outputs.gsplat).outputs.center,QA.viewCenterUniform),w=FA(bA(A.outputs.gsplat).outputs.opacity,AA("float",.5)),G=BI({gsplat:A.outputs.gsplat,center:s,opacity:w}),t=DB(G,AA("vec4",[0,1,fA,pA]));D.push(t)}else throw new Error("Generator must be provided");if(!A)throw new Error("Generator must be provided")}if(A){const s=JC(A.outputs.gsplat,QA.viewCenterUniform,QA.viewDirUniform,QA.sortRadialUniform);D.push(s)}if(I){const s=UC(I.outputs.covsplat,QA.viewCenterUniform,QA.viewDirUniform,QA.sortRadialUniform);D.push(s)}});B=new wQ({graph:E,inputs:{index:"_index"},outputs:{},template:this.extSplats?QA.programExtTemplate:QA.programTemplate}),QA.generatorProgram.set(g,B)}Object.assign(B.uniforms,{targetLayer:{value:0},targetBase:{value:0},targetCount:{value:0}});const C=B.prepareMaterial();return QA.fullScreenQuad.material=C,{program:B,material:C}}generate({generator:A,covGenerator:I,base:g,count:B,renderer:C}){if(!this.target)throw new Error("Target must be initialized with ensureGenerate");if(g+B>this.maxSplats)throw new Error("Base + count exceeds maxSplats");const{program:E,material:i}=this.prepareProgramMaterial(A,I);E.update();const o=this.saveRenderState(C),D=Math.ceil((g+B)/P)*P,s=P*OA;for(i.uniforms.targetBase.value=g,i.uniforms.targetCount.value=B;g{N instanceof _I&&(!B.layers||B.layers.test(N.layers))&&D.push(N)});const s=new Set;I.traverseVisible(N=>{if(N instanceof Mg){let S=N.parent;for(;S!=null&&!(S instanceof jA);)S=S.parent;S==null&&s.add(N)}});const w=Array.from(s);for(const N of D)try{(R=N.frameUpdate)==null||R.call(N,{renderer:A,object:N,time:this.time,deltaTime:this.deltaTime,viewToWorld:this.viewToWorld,camera:B,renderSize:E,globalEdits:w,lodIndices:o&&N instanceof jA?o.get(N):void 0})}catch(S){console.error("frameUpdate error",S),N.generator=void 0,N.covGenerator=void 0,N.generatorError=S}const G=[];I.traverseVisible(N=>{N instanceof _I&&(!B.layers||B.layers.test(N.layers))&&G.push(N)});const t=G.map(N=>N.numSplats),{maxSplats:c,mapping:h}=this.generateMapping(t),y=i.mapping.reduce((N,S)=>(N.set(S.node,S),N),new Map);this.mapping=[],this.numSplats=0,h.forEach(({base:N,count:S},M)=>{const U=G[M],e=y.get(U);e&&e.count!==U.numSplats&&U.updateMappingVersion();const{generator:J,covGenerator:n}=U;if((J||n)&&S>0){const{version:H,mappingVersion:L}=U;this.mapping.push({node:U,generator:J,covGenerator:n,version:H,mappingVersion:L,base:N,count:S}),this.numSplats=Math.max(this.numSplats,N+S)}});const{splatsUpdated:k,mappingUpdated:F}=i.checkVersions(this.mapping);return this.version=i.version+(k?1:0),this.mappingVersion=i.mappingVersion+(F?1:0),{sameMapping:!F,version:this.version,mappingVersion:this.mappingVersion,visibleGenerators:G,generate:()=>{this.ensureGenerate({maxSplats:c});for(const{node:N,base:S,count:M}of this.mapping){const{generator:U,covGenerator:e}=N;(U||e)&&M>0&&this.generate({generator:U,covGenerator:e,base:S,count:M,renderer:A})}},readback:async()=>{const N=this.getTextures();this.readbackSplats.length===0&&(this.readbackSplats=[new WA({value:N[0],key:"extSplats"}),new WA({value:N[1],key:"extSplats"})]),this.readbackSplats[0].value=N[0],this.readbackSplats[1].value=N[1],this.readback||(this.readback=new zI({renderer:A}));const S=this.readback,M=this.extSplats?8:4,U=S.ensureBuffer(this.numSplats*M,new Uint32Array(0)),e=HA({index:"int"},{rgba8:"vec4"},({index:J})=>({rgba8:new q({inTypes:{index:"int",extSplats1:"usampler2DArray",extSplats2:"usampler2DArray"},outTypes:{rgba8:"vec4"},inputs:{index:J,extSplats1:this.readbackSplats[0],extSplats2:this.readbackSplats[1]},statements:({inputs:H,outputs:L})=>this.extSplats?z(` + int indexDiv8 = ${H.index} >> 3; + ivec3 coord = splatTexCoord(indexDiv8); + uvec4 packedData; + if ((${H.index} & 4) == 0) { + packedData = texelFetch(${H.extSplats1}, coord, 0); + } else { + packedData = texelFetch(${H.extSplats2}, coord, 0); + } + + int indexMod4 = ${H.index} & 3; + uint data = (indexMod4 == 0) ? packedData.x + : (indexMod4 == 1) ? packedData.y + : (indexMod4 == 2) ? packedData.z + : packedData.w; + ${L.rgba8} = uintToVec4(data); + `):z(` + int indexDiv4 = ${H.index} >> 2; + ivec3 coord = splatTexCoord(indexDiv4); + uvec4 packedData = texelFetch(${H.extSplats1}, coord, 0); + + int indexMod4 = ${H.index} & 3; + uint data = (indexMod4 == 0) ? packedData.x + : (indexMod4 == 1) ? packedData.y + : (indexMod4 == 2) ? packedData.z + : packedData.w; + ${L.rgba8} = uintToVec4(data); + `)}).outputs.rgba8}));return await S.renderReadback({reader:e,count:this.numSplats*M,renderer:A,readback:U})}}}checkVersions(A){if(this.mapping.length!==A.length)return{splatsUpdated:!0,mappingUpdated:!0};const I=this.mapping.some((B,C)=>{const E=A[C];return B.node!==E.node||B.base!==E.base||B.count!==E.count||B.mappingVersion!==E.mappingVersion});return I?{splatsUpdated:!0,mappingUpdated:!0}:{splatsUpdated:this.mapping.some((B,C)=>B.version!==A[C].version),mappingUpdated:I}}};QA.viewCenterUniform=new LI({value:new a.Vector3}),QA.viewDirUniform=new LI({value:new a.Vector3}),QA.sortRadialUniform=new rg({value:!0}),QA.emptyTexture=(()=>{const{width:A,height:I,depth:g,maxSplats:B}=EA(1),C=new Uint32Array(B*4),E=new a.DataArrayTexture(C,A,I,g);return E.format=a.RGBAIntegerFormat,E.type=a.UnsignedIntType,E.internalFormat="RGBA32UI",E.needsUpdate=!0,E})(),QA.emptyTextures=[QA.emptyTexture,QA.emptyTexture],QA.programExtTemplate=new Sg(Rg().computeUvec4x2Vec4Template),QA.programTemplate=new Sg(Rg().computeUvec4Vec4Template),QA.generatorProgram=new WeakMap,QA.fullScreenQuad=new _Q.FullScreenQuad(new a.RawShaderMaterial({visible:!1}));let eI=QA;class oh extends a.InstancedBufferGeometry{constructor(){super(),this.setAttribute("position",new a.BufferAttribute(wh,3)),this.setIndex(new a.BufferAttribute(sh,1))}}const wh=new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,1,0]),sh=new Uint16Array([0,1,2,0,2,3]),DA=class DA extends a.Mesh{constructor(A){if(!A)throw new Error("SparkRenderer options are required");if(!A.renderer)throw new Error("renderer is required in SparkRenderer options");const I=DA.makeUniforms();Object.assign(I,A.extraUniforms??{});const g=Rg(),B=A.premultipliedAlpha??!0,C=new oh,E=new a.ShaderMaterial({glslVersion:a.GLSL3,vertexShader:A.vertexShader??g.splatVertex,fragmentShader:A.fragmentShader??g.splatFragment,uniforms:I,premultipliedAlpha:B,transparent:A.transparent??!0,depthTest:A.depthTest??!0,depthWrite:A.depthWrite??!1,side:a.DoubleSide,allowOverride:!1});super(C,E),this.renderSize=new a.Vector2,this.lastFrame=-1,this.updateTimeoutId=-1,this.orderingTexture=null,this.maxSplats=0,this.activeSplats=0,this.accumulators=[],this.sorting=!1,this.sortDirty=!1,this.lastSortTime=0,this.sortWorker=null,this.sortTimeoutId=-1,this.sortedCenter=new a.Vector3().setScalar(Number.NEGATIVE_INFINITY),this.sortedDir=new a.Vector3().setScalar(0),this.readback32=new Uint32Array(0),this.lastLodRaycastTime=0,this.lodWorker=null,this.lodMeshes=[],this.lodDirty=!1,this.lodIds=new Map,this.lodIdToSplats=new Map,this.lodInitQueue=[],this.lodInstances=new Map,this.lodUpdates=[],this.lastTraverseTime=0,this.pagerId=0,this.superXY=1,this.flushAfterGenerate=!1,this.flushAfterRead=!1,this.readPause=1,this.sortPause=0,this.sortDelay=0,this.pageSizeWarning=!1,this.material=E,this.uniforms=I,this.frustumCulled=!1,this.renderer=A.renderer,this.onDirty=A.onDirty,this.dirty=!0,this.autoUpdate=A.autoUpdate??!0,this.preUpdate=A.preUpdate??!0,this.maxStdDev=A.maxStdDev??Math.sqrt(8),this.minPixelRadius=A.minPixelRadius??0,this.maxPixelRadius=A.maxPixelRadius??512,this.accumExtSplats=A.accumExtSplats??!1,this.covSplats=A.covSplats??!1,this.minAlpha=A.minAlpha??.5*(1/255),this.enable2DGS=A.enable2DGS??!1,this.preBlurAmount=A.preBlurAmount??0,this.blurAmount=A.blurAmount??.3,this.focalDistance=A.focalDistance??0,this.apertureAngle=A.apertureAngle??0,this.falloff=A.falloff??1,this.clipXY=A.clipXY??1.4,this.focalAdjustment=A.focalAdjustment??1,this.sortRadial=A.sortRadial??!0,this.minSortIntervalMs=A.minSortIntervalMs??0,this.enableLod=A.enableLod??!0,this.enableDriveLod=A.enableDriveLod??this.enableLod,this.enableLodFetching=A.enableLodFetching??!0,this.lodSplatCount=A.lodSplatCount,this.lodSplatScale=A.lodSplatScale??1,this.lodRenderScale=A.lodRenderScale??1,this.lodInflate=A.lodInflate??!1,this.lodTraverseMode=A.lodTraverseMode??"standard",this.pagedExtSplats=A.pagedExtSplats??!1;const i=Fg()?jI()?96:128:256;this.maxPagedSplats=A.maxPagedSplats??i*65536,this.numLodFetchers=A.numLodFetchers??3,this.behindFoveate=A.behindFoveate??.2,this.coneFov0=A.coneFov0??90,this.coneFov=A.coneFov??120,this.coneFoveate=A.coneFoveate??.4,this.lodRaycast=A.lodRaycast===void 0?Fg()?1e4:25e3:A.lodRaycast,this.lodRaycastIntervalMs=A.lodRaycastIntervalMs??500,this.timer=A.timer??new a.Timer;const o={extSplats:this.accumExtSplats,covSplats:this.covSplats};this.display=new eI(o),this.current=this.display,this.accumulators.push(new eI(o)),this.accumulators.push(new eI(o));const D=this.renderer.getContext().getExtension("WEBGL_provoking_vertex");if(D&&D.provokingVertexWEBGL(D.FIRST_VERTEX_CONVENTION_WEBGL),A.target){const{width:s,height:w,doubleBuffer:G,superXY:t,...c}=A.target,h=Math.max(1,Math.min(4,t??1));if(s*h>8192||w*h>8192)throw new Error("Target size too large");this.superXY=h;const y=s*h,k=w*h,F={format:a.RGBAFormat,type:a.UnsignedByteType,colorSpace:a.SRGBColorSpace,...c};this.target=new a.WebGLRenderTarget(y,k,F),G&&(this.backTarget=new a.WebGLRenderTarget(y,k,F))}}static makeUniforms(){return{renderSize:{value:new a.Vector2},near:{value:.1},far:{value:1e3},renderToViewQuat:{value:new a.Quaternion},renderToViewPos:{value:new a.Vector3},renderToViewBasis:{value:new a.Matrix3},renderToViewOffset:{value:new a.Vector3},maxStdDev:{value:1},minPixelRadius:{value:0},maxPixelRadius:{value:512},minAlpha:{value:.00196078431372549},enable2DGS:{value:!1},lodInflate:{value:!1},preBlurAmount:{value:0},blurAmount:{value:.3},focalDistance:{value:0},apertureAngle:{value:0},falloff:{value:1},clipXY:{value:1.4},focalAdjustment:{value:1},encodeLinear:{value:!1},ordering:{type:"t",value:DA.emptyOrdering},enableExtSplats:{value:!1},enableCovSplats:{value:!1},extSplats:{type:"t",value:eI.emptyTexture},extSplats2:{type:"t",value:eI.emptyTexture},time:{value:0},deltaTime:{value:0},debugFlag:{value:!1}}}dispose(){this.target&&(this.target.dispose(),this.target=void 0),this.backTarget&&(this.backTarget.dispose(),this.backTarget=void 0),this.orderingTexture&&(this.orderingTexture.dispose(),this.orderingTexture=null);const A=new Set;A.add(this.display),A.add(this.current);for(const g of this.accumulators)A.add(g);for(const g of A)g.dispose();const I=this.lodInstances.values();this.lodInstances.clear();for(const g of I)g.texture.dispose();this.sortWorker&&(this.sortWorker.dispose(),this.sortWorker=null),this.lodWorker&&(this.lodWorker.dispose(),this.lodWorker=null),this.pager&&(this.pager.dispose(),this.pager=void 0)}setDirty(){var A;this.dirty||(this.dirty=!0,(A=this.onDirty)==null||A.call(this))}onBeforeRender(A,I,g){var y;const B=DA.sparkOverride??this,C=A.info.render.frame,E=C!==B.lastFrame;B.lastFrame=C;const i=A.getRenderTarget(),o=ah(i);if(i){if(B.renderSize.set(i.width,i.height),o&&B.renderSize.x===1&&B.renderSize.y===1){const k=(y=A.xr.getSession())==null?void 0:y.renderState.baseLayer;k&&(B.renderSize.x=k.framebufferWidth,B.renderSize.y=k.framebufferHeight)}}else A.getDrawingBufferSize(B.renderSize);this.uniforms.renderSize.value.copy(B.renderSize);const D=g;this.uniforms.near.value=D.near,this.uniforms.far.value=D.far;const s=this.geometry;s.instanceCount=B.activeSplats;const w=new a.Matrix4;this.display.extSplats||w.makeTranslation(B.display.viewOrigin);const c=g.matrixWorld.clone().invert().multiply(w);c.decompose(this.uniforms.renderToViewPos.value,this.uniforms.renderToViewQuat.value,new a.Vector3),this.uniforms.renderToViewBasis.value.setFromMatrix4(c),this.uniforms.maxStdDev.value=B.maxStdDev,this.uniforms.minPixelRadius.value=B.minPixelRadius,this.uniforms.maxPixelRadius.value=B.maxPixelRadius,this.uniforms.minAlpha.value=B.minAlpha,this.uniforms.enable2DGS.value=B.enable2DGS,this.uniforms.lodInflate.value=B.lodInflate,this.uniforms.preBlurAmount.value=B.preBlurAmount,this.uniforms.blurAmount.value=B.blurAmount,this.uniforms.focalDistance.value=B.focalDistance,this.uniforms.apertureAngle.value=B.apertureAngle,this.uniforms.falloff.value=B.falloff,this.uniforms.clipXY.value=B.clipXY,this.uniforms.focalAdjustment.value=B.focalAdjustment;const h=i===null?A.outputColorSpace:o?i.texture.colorSpace:a.ColorManagement.workingColorSpace;if(this.uniforms.encodeLinear.value=h!==a.SRGBColorSpace,this.uniforms.ordering.value=B.orderingTexture??DA.emptyOrdering,this.uniforms.enableExtSplats.value=this.display.extSplats,this.uniforms.enableCovSplats.value=this.display.covSplats,this.display.extSplats){const k=B.display.getTextures();this.uniforms.extSplats.value=k[0],this.uniforms.extSplats2.value=k[1]}else{const k=B.display.getTextures();this.uniforms.extSplats.value=k[0],this.uniforms.extSplats2.value=k[0]}if(this.uniforms.time.value=B.display.time,this.uniforms.deltaTime.value=B.display.deltaTime,this.uniforms.debugFlag.value=performance.now()/1e3%2<1,B.autoUpdate&&E){const k=B.preUpdate&&!A.xr.isPresenting,F=A.xr.isPresenting?A.xr.getCamera():g;k?B.updateInternal({scene:I,camera:F,autoUpdate:!0}):B.updateTimeoutId===-1&&(B.updateTimeoutId=setTimeout(()=>{B.updateTimeoutId=-1,B.updateInternal({scene:I,camera:F,autoUpdate:!0})},1))}B.dirty=!1}clearSplats(){this.activeSplats=0,this.display.numSplats=0,this.setDirty()}async update({scene:A,camera:I}){await this.updateInternal({scene:A,camera:I,autoUpdate:!1})}async updateInternal({scene:A,camera:I,autoUpdate:g}){const B=this.renderer;this.timer.update();const C=this.time??this.timer.getElapsed(),E=I.getWorldPosition(new a.Vector3),i=I.getWorldDirection(new a.Vector3),o=E.distanceTo(this.sortedCenter)>.001||i.dot(this.sortedDir)<.999,D=this.accumulators.pop();if(!D)throw new Error("No next accumulator");if(D===this.current)throw new Error("Next accumulator is the same as the current accumulator");const{version:s,mappingVersion:w,visibleGenerators:G,generate:t}=D.prepareGenerate({renderer:B,scene:A,time:C,camera:I,sortRadial:this.sortRadial??!0,renderSize:this.renderSize,previous:this.current,lodInstances:this.enableLod?this.lodInstances:void 0});let c=!0;const h=o||s!==this.current.version,y=w!==this.display.mappingVersion;g&&!h&&(c=!1),y&&this.sorting&&(c=!1),c?(t(),this.flushAfterGenerate&&B.getContext().flush(),this.display.mappingVersion===D.mappingVersion?(this.accumulators.push(this.display),this.display=D):this.display!==this.current&&this.accumulators.push(this.current),this.current=D,this.sortDirty=!0,this.setDirty()):this.accumulators.push(D),this.enableDriveLod&&this.driveLod({visibleGenerators:G,camera:I,scene:A}),await this.driveSort()}async driveSort(){if(this.sorting||!this.sortDirty)return;this.sortTimeoutId!==-1&&(clearTimeout(this.sortTimeoutId),this.sortTimeoutId=-1);const A=performance.now(),I=this.lastSortTime?this.lastSortTime+this.minSortIntervalMs:A;if(A{this.sortTimeoutId=-1,this.driveSort()},I-A);return}this.sorting=!0,this.sortDirty=!1,this.lastSortTime=A,this.readPause>0&&await new Promise(w=>setTimeout(w,this.readPause));const g=this.current;this.sortedCenter.copy(g.viewOrigin),this.sortedDir.copy(g.viewDirection);const{numSplats:B,maxSplats:C}=g,E=Math.max(1,Math.ceil(C/16384)),i=E*16384;this.maxSplats=Math.max(this.maxSplats,i);const o=new Uint32Array(this.maxSplats),D=zI.ensureBuffer(C,this.readback32);this.readback32=D,await this.readbackDepth({current:g,renderer:this.renderer,numSplats:B,readback:D}),this.sortPause>0&&await new Promise(w=>setTimeout(w,this.sortPause)),this.sortWorker||(this.sortWorker=new Ug);const s=await this.sortWorker.call("sortSplats32",{numSplats:B,readback:D,ordering:o});if(this.sortDelay>0&&await new Promise(w=>setTimeout(w,this.sortDelay)),this.readback32=s.readback,this.activeSplats=s.activeSplats,this.orderingTexture&&E>this.orderingTexture.image.height&&(this.orderingTexture.dispose(),this.orderingTexture=null),this.orderingTexture){const w=this.renderer;w.properties.has(this.orderingTexture)?hB(w,this.orderingTexture,4096,E,s.ordering):this.orderingTexture.needsUpdate=!0}else{const w=new a.DataTexture(s.ordering,4096,E,a.RGBAIntegerFormat,a.UnsignedIntType);w.internalFormat="RGBA32UI",w.needsUpdate=!0,this.orderingTexture=w}this.current.mappingVersion===g.mappingVersion&&this.current.mappingVersion!==this.display.mappingVersion&&(this.accumulators.push(this.display),this.display=this.current),this.sorting=!1,this.setDirty(),this.driveSort()}ensureLodWorker(){return this.lodWorker||(this.lodWorker=new Ug),this.lodWorker}defaultSplatTarget(){return oQ()?5e5:GB()?75e4:DQ()?1e6:jI()?15e5:25e5}driveLod({visibleGenerators:A,camera:I,scene:g}){var t,c;const B=this.defaultSplatTarget(),E=(this.lodSplatCount??B)*this.lodSplatScale;let i=0;if(I instanceof a.PerspectiveCamera)i=2*Math.tan(.5*I.fov*Math.PI/180)/this.renderSize.y;else if(I instanceof a.OrthographicCamera){const h=(I.top-I.bottom)/I.zoom,y=(I.right-I.left)/I.zoom,k=h/Math.max(1,this.renderSize.y),F=y/Math.max(1,this.renderSize.x);i=Math.min(F,k)}i*=this.lodRenderScale;const o=new a.Vector3,D=new a.Quaternion;if(this.current.viewToWorld.decompose(o,D,new a.Vector3),this.lodPosOverride&&o.copy(this.lodPosOverride),this.lodQuatOverride&&D.copy(this.lodQuatOverride).normalize(),this.lastLod){(this.lastLod.pixelScaleLimit!==i||this.lastLod.maxSplats!==E)&&(this.lodDirty=!0);const h=o.distanceTo(this.lastLod.pos),y=Math.max(0,1-h/1),k=D.dot(this.lastLod.quat),F=Math.max(0,1-(1-k)/.01);y*F<.999&&(this.lodDirty=!0)}const s=this.enableLod?A.filter(h=>{var y,k;return h instanceof jA&&(((y=h.packedSplats)==null?void 0:y.lodSplats)||((k=h.extSplats)==null?void 0:k.lodSplats)||h.paged)&&h.enableLod!==!1}):[],w=s.some(h=>h.paged);this.lodMeshes.length!==s.length?this.lodDirty=!0:s.some((h,y)=>h!==this.lodMeshes[y].mesh||h.version>this.lodMeshes[y].version)&&(this.lodDirty=!0),this.lodMeshes=s.map(h=>({mesh:h,version:h.version+1})),this.lodInitQueue=[];const G=performance.now();for(const h of s){const y=((t=h.packedSplats)==null?void 0:t.lodSplats)??((c=h.extSplats)==null?void 0:c.lodSplats)??h.paged;if(y){const k=this.lodIds.get(y);k?k.lastTouched=G:this.lodInitQueue.push(y)}}this.ensureLodWorker().tryExclusive(async h=>{if(w&&!this.pager){this.pager=new hI({renderer:this.renderer,extSplats:this.pagedExtSplats,maxSplats:this.maxPagedSplats,numFetchers:this.numLodFetchers});const{lodId:y}=await h.call("newLodTree",{capacity:this.pager.maxSplats});this.pagerId=y}if(this.pager)for(const{mesh:y}of this.lodMeshes)y.paged&&!y.paged.pager&&(y.paged.pager=this.pager);if(this.lodInitQueue.length>0){const y=this.lodInitQueue;for(this.lodInitQueue=[];y.length>0;){const k=y.shift();k&&(await this.initLodTree(h,k),this.lodDirty=!0)}}if(this.pager){const y=this.pager.consumeLodTreeUpdates();for(const{splats:k,page:F,chunk:R,numSplats:N,lodTree:S}of y){const M=this.lodIds.get(k);M&&(S&&R===0&&(M.rootPage=F),this.lodUpdates.push({lodId:M.lodId,pageBase:F*this.pager.pageSplats,chunkBase:R*this.pager.pageSplats,count:N,lodTreeData:S}))}}if(this.lodUpdates.length>0){const y=this.lodUpdates;this.lodUpdates=[],await h.call("updateLodTrees",{ranges:y}),this.lodDirty=!0}if(this.lodDirty){const y=performance.now(),k=new a.Vector3;if(this.lastLod){const F=Math.max(1,y-this.lastLod.timestamp);k.copy(o).sub(this.lastLod.pos).multiplyScalar(this.lastTraverseTime/F)}this.lastLod={pos:o,quat:D,pixelScaleLimit:i,maxSplats:E,timestamp:y},this.lodDirty=!1,await this.updateLodInstances(h,k,s,E,o,D,i),this.currentLod=this.lastLod,this.setDirty()}await this.cleanupLodTrees(h)})}async initLodTree(A,I){if(I instanceof sI||I instanceof gI){const{lodId:g}=await A.call("initLodTree",{numSplats:I.numSplats??0,lodTree:I.extra.lodTree.slice()});this.lodIds.set(I,{lodId:g,lastTouched:performance.now()}),this.lodIdToSplats.set(g,I)}else{const{lodId:g}=await A.call("newSharedLodTree",{lodId:this.pagerId});this.lodIds.set(I,{lodId:g,lastTouched:performance.now()}),this.lodIdToSplats.set(g,I)}}async updateLodInstances(A,I,g,B,C,E,i){const o=new Map,D=new a.Matrix4().compose(C,E,new a.Vector3().setScalar(1)),s=g.reduce((k,F)=>{var M,U;o.set(F.uuid,F);const R=F.matrixWorld.clone().invert().multiply(D),N=((M=F.packedSplats)==null?void 0:M.lodSplats)??((U=F.extSplats)==null?void 0:U.lodSplats)??F.paged;if(!N)return k;const S=this.lodIds.get(N);return!S||this.pager&&F.paged&&S.rootPage===void 0||(k[F.uuid]={instanceId:F.uuid,lodId:S.lodId,rootPage:S.rootPage,viewToObjectCols:R.elements,lodScale:F.lodScale,behindFoveate:F.behindFoveate??this.behindFoveate,coneFov0:F.coneFov0??this.coneFov0,coneFov:F.coneFov??this.coneFov,coneFoveate:F.coneFoveate??this.coneFoveate}),k},{}),w=performance.now(),G=await A.call("traverseLodTrees",{maxSplats:B,pixelScaleLimit:i,lastPixelLimit:this.lastPixelLimit,instances:s,traverseMode:this.lodTraverseMode});this.lastTraverseTime=performance.now()-w;const{keyIndices:t,chunks:c,pixelLimit:h}=G;this.lastPixelLimit=h;const y=Object.values(t).reduce((k,{numSplats:F})=>k+F,0);if(this.updateLodIndices(o,t),this.pager){this.pager.processUploads();const k=g.map(F=>{if(!F.paged||!this.pager)return null;const R=F.getWorldPosition(new a.Vector3);return{splats:F.paged,distance:R.distanceTo(C)}}).filter(F=>F!==null);!this.pageSizeWarning&&k.length>this.pager.maxPages&&(this.pageSizeWarning=!0,console.warn(`# paged SplatMeshes exceeds maxPages: ${k.length} > ${this.pager.maxPages}`)),k.sort((F,R)=>F.distance-R.distance),this.pager.fetchPriority=k.map(({splats:F})=>({splats:F,chunk:0}));for(const[F,R]of c){const N=this.lodIdToSplats.get(F);N instanceof XI&&R!==0&&this.pager.fetchPriority.push({splats:N,chunk:R})}this.pager.autoDrive=this.enableLodFetching,this.enableLodFetching&&this.pager.driveFetchers()}if(this.lodRaycast&&performance.now()-this.lastLodRaycastTime>=this.lodRaycastIntervalMs){this.lastLodRaycastTime=performance.now();const k=performance.now(),F=await A.call("traverseLodTrees",{maxSplats:Math.min(this.lodRaycast,Math.round(y*.1)),pixelScaleLimit:i,instances:s});performance.now()-k;const{keyIndices:R}=F;Object.values(R).reduce((N,{numSplats:S})=>N+S,0);for(const[N,S]of Object.entries(R)){const M=o.get(N);M.raycastIndices=S}}}async cleanupLodTrees(A){var C;const g=performance.now();let B=null;for(const[E,i]of this.lodIds.entries())(B==null||i.lastTouchedg-3e3)){this.lodIds.delete(B.splats),this.lodIdToSplats.delete(B.lodId);for(const[E,i]of this.lodInstances.entries())i.lodId===B.lodId&&(i.texture.dispose(),this.lodInstances.delete(E));B.splats instanceof XI&&((C=this.pager)==null||C.removeSplats(B.splats)),await A.call("disposeLodTree",{lodId:B.lodId})}}updateLodIndices(A,I){for(const[g,B]of Object.entries(I)){const{lodId:C,numSplats:E,indices:i}=B,o=A.get(g);if(o.paged)o.paged.update(E,i);else{let D=this.lodInstances.get(o);D&&i.length>D.indices.length&&(D.texture.dispose(),D=void 0);const s=Math.ceil(i.length/16384);if(D){D.numSplats=E;const w=this.renderer,G=w.getContext();if(w.properties.has(D.texture)){const c=w.properties.get(D.texture).__webglTexture;if(!c)throw new Error("lodIndices texture not found");w.state.activeTexture(G.TEXTURE0),w.state.bindTexture(G.TEXTURE_2D,c),G.bindBuffer(G.PIXEL_UNPACK_BUFFER,null),G.pixelStorei(G.UNPACK_FLIP_Y_WEBGL,!1),G.texSubImage2D(G.TEXTURE_2D,0,0,0,4096,s,G.RGBA_INTEGER,G.UNSIGNED_INT,i),w.state.bindTexture(G.TEXTURE_2D,null)}}else{const w=s*16384;if(i.length!==w)throw new Error("Indices length != capacity");const G=new a.DataTexture(i,4096,s,a.RGBAIntegerFormat,a.UnsignedIntType);G.internalFormat="RGBA32UI",G.needsUpdate=!0,D={lodId:C,numSplats:E,indices:i,texture:G},this.lodInstances.set(o,D)}}o.updateMappingVersion()}}async readbackDepth({current:A,renderer:I,numSplats:g,readback:B}){if(!I)throw new Error("No renderer");if(!A.target)throw new Error("No target");const C=Math.ceil(g/P)*P;if(B.byteLengthB)}saveRenderState(A){return{target:A.getRenderTarget(),xrEnabled:A.xr.enabled,autoClear:A.autoClear}}resetRenderState(A,I){A.setRenderTarget(I.target),A.xr.enabled=I.xrEnabled,A.autoClear=I.autoClear}render(A,I){try{DA.sparkOverride=this,this.renderer.render(A,I)}finally{DA.sparkOverride=void 0}}renderTarget({scene:A,camera:I}){const g=this.backTarget??this.target;if(!g)throw new Error("No target");const B=this.renderer.getRenderTarget();try{this.renderer.setRenderTarget(g),DA.sparkOverride=this,this.renderer.render(A,I)}finally{DA.sparkOverride=void 0,this.renderer.setRenderTarget(B)}return g!==this.target&&([this.target,this.backTarget]=[this.backTarget,this.target]),g}async readTarget(){if(!this.target)throw new Error("Must initialize with target");const{width:A,height:I}=this.target,g=A*I*4;(!this.superPixels||this.superPixels.length{if(g instanceof a.Mesh)if(Array.isArray(g.material))for(const B of g.material)B instanceof a.MeshStandardMaterial&&(B.envMap=I);else g.material instanceof a.MeshStandardMaterial&&(g.material.envMap=I)})}async getLodTreeLevel(A,I,g=!1){var E,i;const B=this.lodInstances.get(A);if(!B)return null;const C=await this.ensureLodWorker().exclusive(async o=>await o.call("getLodTreeLevel",{lodId:B.lodId,level:I}));if((E=A.packedSplats)!=null&&E.lodSplats){const o=A.packedSplats.lodSplats.extractSplats(C.indices,g);return new jA({packedSplats:o})}if((i=A.extSplats)!=null&&i.lodSplats){const o=A.extSplats.lodSplats.extractSplats(C.indices,g);return new jA({extSplats:o})}throw new Error("Only LoD-enabled PackedSplats and ExtSplats are supported")}get premultipliedAlpha(){return this.material.premultipliedAlpha}set premultipliedAlpha(A){this.material.premultipliedAlpha!==A&&(this.material.premultipliedAlpha=A,this.material.needsUpdate=!0)}};DA.emptyOrdering=(()=>{const I=new Uint32Array(16384),g=new a.DataTexture(I,4096,1);return g.format=a.RGBAIntegerFormat,g.type=a.UnsignedIntType,g.internalFormat="RGBA32UI",g.needsUpdate=!0,g})(),DA.cubeRender=null,DA.pmrem=null;let Lg=DA;function ah(Q){return Q==null?void 0:Q.isXRRenderTarget}const PB=["char","uchar","short","ushort","int","uint","float","double"],VI=class VI{constructor({fileBytes:A}){this.header="",this.littleEndian=!0,this.elements={},this.comments=[],this.data=null,this.numSplats=0,this.fileBytes=A instanceof ArrayBuffer?new Uint8Array(A):A}async parseHeader(){const I=new ReadableStream({start:E=>{E.enqueue(this.fileBytes.slice(0,65536)),E.close()}}).pipeThrough(new TextDecoderStream).getReader();this.header="";const g=`end_header +`;for(;;){const{value:E,done:i}=await I.read();if(i)throw new Error("Failed to read header");this.header+=E;const o=this.header.indexOf(g);if(o>=0){this.header=this.header.slice(0,o+g.length);break}}const B=new TextEncoder().encode(this.header).length;this.data=new DataView(this.fileBytes.buffer,B),this.elements={};let C=null;this.comments=[],this.header.trim().split(` +`).forEach((E,i)=>{const o=E.trim();if(i===0){if(o!=="ply")throw new Error("Invalid PLY header");return}if(o.length===0)return;const D=o.split(" ");switch(D[0]){case"format":if(D[1]==="binary_little_endian")this.littleEndian=!0;else if(D[1]==="binary_big_endian")this.littleEndian=!1;else throw new Error(`Unsupported PLY format: ${D[1]}`);if(D[2]!=="1.0")throw new Error(`Unsupported PLY version: ${D[2]}`);break;case"end_header":break;case"comment":this.comments.push(o.slice(8));break;case"element":{const s=D[1];C={name:s,count:Number.parseInt(D[2]),properties:{}},this.elements[s]=C;break}case"property":if(C==null)throw new Error("Property must be inside an element");D[1]==="list"?C.properties[D[4]]={isList:!0,type:D[3],countType:D[2]}:C.properties[D[2]]={isList:!1,type:D[1]};break}}),this.elements.vertex&&(this.numSplats=this.elements.vertex.count)}parseData(A){let I=0;const g=this.data;if(g==null)throw new Error("No data to parse");for(const B in this.elements){const C=this.elements[B],{count:E,properties:i}=C,o=hh(i),D=yh(i,this.littleEndian),s=A(C)??(()=>{});for(let w=0;w[0,1,2].map((N,S)=>R+S*k/3)),i=new Array(5).fill(null).flatMap((F,R)=>[0,1,2].map((N,S)=>3+R+S*k/3)),o=new Array(7).fill(null).flatMap((F,R)=>[0,1,2].map((N,S)=>8+R+S*k/3)),D=C>=1?new Float32Array(3*3):void 0,s=C>=2?new Float32Array(5*3):void 0,w=C>=3?new Float32Array(7*3):void 0}function t(k,F){if(!D)throw new Error("Missing sh1");const R=F.f_rest;for(let N=0;N{const{min_x:f,min_y:V,min_z:IA,max_x:O,max_y:CA,max_z:v,min_scale_x:gA,min_scale_y:W,min_scale_z:b,max_scale_x:u,max_scale_y:T,max_scale_z:p,min_r:yA,min_g:sA,min_b:cA,max_r:kA,max_g:oA,max_b:aA}=K;B.push({min_x:f,min_y:V,min_z:IA,max_x:O,max_y:CA,max_z:v,min_scale_x:gA,min_scale_y:W,min_scale_z:b,max_scale_x:u,max_scale_y:T,max_scale_z:p,min_r:yA,min_g:sA,min_b:cA,max_r:kA,max_g:oA,max_b:aA})}}function h(k){if(I&&k.name==="sh")return C=WQ(k.properties),G(),t;if(k.name!=="vertex")return null;const{packed_position:F,packed_rotation:R,packed_scale:N,packed_color:S}=k.properties;if(!F||!R||!N||!S)throw new Error("Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color");const M=Math.sqrt(2);return(U,e)=>{const J=B[U>>>8];if(J==null)throw new Error("Missing PLY chunk");const{min_x:n,min_y:H,min_z:L,max_x:l,max_y:d,max_z:K,min_scale_x:f,min_scale_y:V,min_scale_z:IA,max_scale_x:O,max_scale_y:CA,max_scale_z:v,min_r:gA,min_g:W,min_b:b,max_r:u,max_g:T,max_b:p}=J,{packed_position:yA,packed_rotation:sA,packed_scale:cA,packed_color:kA}=e,oA=(yA>>>21&2047)/2047*(l-n)+n,aA=(yA>>>11&1023)/1023*(d-H)+H,$A=(yA&2047)/2047*(K-L)+L,TA=((sA>>>20&1023)/1023-.5)*M,kI=((sA>>>10&1023)/1023-.5)*M,FI=((sA&1023)/1023-.5)*M,X=Math.sqrt(Math.max(0,1-TA*TA-kI*kI-FI*FI)),mA=sA>>>30,JA=mA===0?TA:mA===1?X:kI,Qg=mA<=1?kI:mA===2?X:FI,qg=mA<=2?FI:X,VA=mA===0?X:TA,_=Math.exp((cA>>>21&2047)/2047*(O-f)+f),GI=Math.exp((cA>>>11&1023)/1023*(CA-V)+V),yQ=Math.exp((cA&2047)/2047*(v-IA)+IA),cQ=(kA>>>24&255)/255*((u??1)-(gA??0))+(gA??0),kQ=(kA>>>16&255)/255*((T??1)-(W??0))+(W??0),FQ=(kA>>>8&255)/255*((p??1)-(b??0))+(b??0),SQ=(kA&255)/255;A(U,oA,aA,$A,_,GI,yQ,JA,Qg,qg,VA,SQ,cQ,kQ,FQ)}}const y=k=>{if(k.name==="chunk")return c(k);if(g)return h(k);if(k.name!=="vertex")return null;const{x:F,y:R,z:N,scale_0:S,scale_1:M,scale_2:U,rot_0:e,rot_1:J,rot_2:n,rot_3:H,opacity:L,f_dc_0:l,f_dc_1:d,f_dc_2:K,red:f,green:V,blue:IA,alpha:O}=k.properties;if(!F||!R||!N)throw new Error("Missing PLY properties: x, y, z");const CA=S&&M&&U,v=e&&J&&n&&H,gA=O!=null?Pg[O.type]:1,W=f!=null?Pg[f.type]:1,b=V!=null?Pg[V.type]:1,u=IA!=null?Pg[IA.type]:1;return C=WQ(k.properties),G(),(T,p)=>{const yA=CA?Math.exp(p.scale_0):VI.defaultPointScale,sA=CA?Math.exp(p.scale_1):VI.defaultPointScale,cA=CA?Math.exp(p.scale_2):VI.defaultPointScale,kA=v?p.rot_1:0,oA=v?p.rot_2:0,aA=v?p.rot_3:0,$A=v?p.rot_0:1,TA=L!=null?1/(1+Math.exp(-p.opacity)):O!=null?p.alpha/gA:1,kI=l!=null?p.f_dc_0*ug+.5:f!=null?p.red/W:1,FI=d!=null?p.f_dc_1*ug+.5:V!=null?p.green/b:1,X=K!=null?p.f_dc_2*ug+.5:IA!=null?p.blue/u:1;if(A(T,p.x,p.y,p.z,yA,sA,cA,kA,oA,aA,$A,TA,kI,FI,X),I&&D){const mA=p.f_rest;if(D)for(let JA=0;JA{const t=mI[G.countType](g,I,this.littleEndian);I+=QI[G.countType],I+=t*QI[G.type]});else{if(s)if(w==="f_dc_0"||w==="f_dc_1"||w==="f_dc_2"){const t=Number.parseInt(w.slice(5));o.push(()=>{const c=(A[D+t]/255-.5)/ug;bB[G.type](g,I,this.littleEndian,c)})}else w==="opacity"&&o.push(()=>{const t=Math.max(-100,Math.min(100,-Math.log(1/(A[D+3]/255)-1)));bB[G.type](g,I,this.littleEndian,t)});o.push(()=>{I+=QI[G.type]})}for(let w=0;wQ.getInt8(A),uchar:(Q,A,I)=>Q.getUint8(A),short:(Q,A,I)=>Q.getInt16(A,I),ushort:(Q,A,I)=>Q.getUint16(A,I),int:(Q,A,I)=>Q.getInt32(A,I),uint:(Q,A,I)=>Q.getUint32(A,I),float:(Q,A,I)=>Q.getFloat32(A,I),double:(Q,A,I)=>Q.getFloat64(A,I)},bB={char:(Q,A,I,g)=>{Q.setInt8(A,g)},uchar:(Q,A,I,g)=>{Q.setUint8(A,g)},short:(Q,A,I,g)=>{Q.setInt16(A,g,I)},ushort:(Q,A,I,g)=>{Q.setUint16(A,g,I)},int:(Q,A,I,g)=>{Q.setInt32(A,g,I)},uint:(Q,A,I,g)=>{Q.setUint32(A,g,I)},float:(Q,A,I,g)=>{Q.setFloat32(A,g,I)},double:(Q,A,I,g)=>{Q.setFloat64(A,g,I)}},QI={char:1,uchar:1,short:2,ushort:2,int:4,uint:4,float:4,double:8},Pg={char:127,uchar:255,short:32767,ushort:65535,int:2147483647,uint:4294967295,float:1,double:1},Gh={0:0,9:1,24:2,45:3},th={0:0,1:9,2:24,3:45},JB=/^f_rest_([0-9]{1,2})$/;function hh(Q){const A={};for(const[I,g]of Object.entries(Q))JB.test(I)?A.f_rest=new Array(WQ(Q)):A[I]=g.isList?[]:0;return A}function yh(Q,A){return Fh(Q)?Sh(Q,A):Nh(Q,A)}const ch=(()=>{try{new Function("return 42;")}catch{return!1}return!0})(),kh=/^[a-zA-Z0-9_]+$/;function Fh(Q){if(!ch)return!1;for(const[A,I]of Object.entries(Q))if(!kh.test(A)||I.isList&&!PB.includes(I.countType)||!PB.includes(I.type))return!1;return!0}function Sh(Q,A){const I=["let list;"];for(const[B,C]of Object.entries(Q)){const E=B.match(JB);if(E){const i=+E[1];I.push(` + item.f_rest[${i}] = PARSE_FIELD['${C.type}'](data, offset, ${A}); + offset += ${QI[C.type]}; + `)}else C.isList?I.push(` + list = item['${B}']; + list.length = PARSE_FIELD['${C.countType}'](data, offset, ${A}); + offset += ${QI[C.countType]}; + for (let i = 0; i < list.length; i++) { + list[i] = PARSE_FIELD['${C.type}'](data, offset, ${A}); + offset += ${QI[C.type]}; + } + `):I.push(` + item['${B}'] = PARSE_FIELD['${C.type}'](data, offset, ${A}); + offset += ${QI[C.type]}; + `)}I.push("return offset;");const g=new Function("data","offset","item","PARSE_FIELD",I.join(` +`));return(B,C,E)=>g(B,C,E,mI)}function Nh(Q,A){const I=[];for(const[g,B]of Object.entries(Q)){const C=g.match(JB);if(C){const E=+C[1];I.push((i,o,D)=>(D.f_rest[E]=mI[B.type](i,o,A),o+QI[B.type]))}else B.isList?I.push((E,i,o)=>{const D=o[g];D.length=mI[B.countType](E,i,A);let s=i+QI[B.countType];for(let w=0;w(o[g]=mI[B.type](E,i,A),i+QI[B.type]))}return(g,B,C)=>{let E=B;for(let i=0;i2)throw new Error(`Invalid .ksplat compression level: ${w}`);const G=i.getFloat32(36,!0)||-1.5,t=i.getFloat32(40,!0)||1.5;let c=4096+s*1024;for(let y=0;y=1?new Float32Array(3*3):void 0,aA=K>=2?new Float32Array(5*3):void 0,$A=K>=3?new Float32Array(7*3):void 0,TA=U/2/J,kI=c+l,FI=c+d,X=new DataView(Q.buffer,FI,p),mA=new Float32Array(Q.buffer,kI,M*3),JA=new Uint32Array(Q.buffer,c,L);let Qg=n,qg=H;for(let VA=0;VA=qg+SI&&(Qg+=1,qg+=SI),GI=Qg}const yQ=w===0?X.getFloat32(_+0,!0):(X.getUint16(_+0,!0)-J)*TA+mA[3*GI+0],cQ=w===0?X.getFloat32(_+4,!0):(X.getUint16(_+2,!0)-J)*TA+mA[3*GI+1],kQ=w===0?X.getFloat32(_+8,!0):(X.getUint16(_+4,!0)-J)*TA+mA[3*GI+2],FQ=w===0?X.getFloat32(_+gA+0,!0):hA(X.getUint16(_+gA+0,!0)),SQ=w===0?X.getFloat32(_+gA+4,!0):hA(X.getUint16(_+gA+2,!0)),Ew=w===0?X.getFloat32(_+gA+8,!0):hA(X.getUint16(_+gA+4,!0)),iw=w===0?X.getFloat32(_+W+0,!0):hA(X.getUint16(_+W+0,!0)),Dw=w===0?X.getFloat32(_+W+4,!0):hA(X.getUint16(_+W+2,!0)),ow=w===0?X.getFloat32(_+W+8,!0):hA(X.getUint16(_+W+4,!0)),ww=w===0?X.getFloat32(_+W+12,!0):hA(X.getUint16(_+W+6,!0)),sw=X.getUint8(_+b+0)/255,aw=X.getUint8(_+b+1)/255,Gw=X.getUint8(_+b+2)/255,tw=X.getUint8(_+b+3)/255;if(I(VA,yQ,cQ,kQ,FQ,SQ,Ew,Dw,ow,ww,iw,tw,sw,aw,Gw),K>=1&&oA){for(const[SI,Bg]of sA.entries())oA[SI]=k(_,Bg);if(aA)for(const[SI,Bg]of cA.entries())aA[SI]=k(_,Bg);if($A)for(const[SI,Bg]of kA.entries())$A[SI]=k(_,Bg);g==null||g(VA,oA,aA,$A)}}c+=yA}}class Po{constructor({fileBytes:A}){this.version=-1,this.numSplats=0,this.shDegree=0,this.fractionalBits=0,this.flags=0,this.flagAntiAlias=!1,this.flagLod=!1,this.reserved=0,this.headerParsed=!1,this.parsed=!1,this.fileBytes=A instanceof ArrayBuffer?new Uint8Array(A):A,this.reader=new pE({fileBytes:this.fileBytes})}async parseHeader(){if(this.headerParsed)throw new Error("SPZ file header already parsed");const A=new DataView((await this.reader.read(16)).buffer);if(A.getUint32(0,!0)!==1347635022)throw new Error("Invalid SPZ file");if(this.version=A.getUint32(4,!0),this.version<1||this.version>3)throw new Error(`Unsupported SPZ version: ${this.version}`);this.numSplats=A.getUint32(8,!0),this.shDegree=A.getUint8(12),this.fractionalBits=A.getUint8(13),this.flags=A.getUint8(14),this.flagAntiAlias=(this.flags&1)!==0,this.flagLod=(this.flags&128)!==0,this.reserved=A.getUint8(15),this.headerParsed=!0,this.parsed=!1}async parseSplats(A,I,g,B,C,E,{childCounts:i,childStarts:o}={}){if(!this.headerParsed)throw new Error("SPZ file header must be parsed first");if(this.parsed)throw new Error("SPZ file already parsed");if(this.parsed=!0,this.version===1){const D=await this.reader.read(this.numSplats*3*2),s=new Uint16Array(D.buffer);for(let w=0;w>8)/D,c=((s[G+5]<<24|s[G+4]<<16|s[G+3]<<8)>>8)/D,h=((s[G+8]<<24|s[G+7]<<16|s[G+6]<<8)>>8)/D;A==null||A(w,t,c,h)}}else throw new Error("Unreachable");{const D=await this.reader.read(this.numSplats);for(let s=0;s>>30;let F=h,R=0;for(let S=3;S>=0;--S)if(S!==k){const M=F&y,U=F>>>9&1;F=F>>>10,t[S]=D*(M/y),t[S]=U===0?t[S]:-t[S],R+=t[S]*t[S]}const N=1-R;t[k]=Math.sqrt(Math.max(N,0)),C==null||C(w,t[0],t[1],t[2],t[3])}}else{const D=await this.reader.read(this.numSplats*3);for(let s=0;s=1){const D=new Float32Array(9),s=this.shDegree>=2?new Float32Array(5*3):void 0,w=this.shDegree>=3?new Float32Array(7*3):void 0,G=await this.reader.read(this.numSplats*bo[this.shDegree]*3);let t=0;for(let c=0;c=1?9:0)+(I>=2?15:0)+(I>=3?21:0),E=16+A*C;this.buffer=new ArrayBuffer(E),this.view=new DataView(this.buffer),this.view.setUint32(0,Jh,!0),this.view.setUint32(4,Uh,!0),this.view.setUint32(8,A,!0),this.view.setUint8(12,I),this.view.setUint8(13,g),this.view.setUint8(14,B?Lh:0),this.view.setUint8(15,0),this.numSplats=A,this.shDegree=I,this.fractionalBits=g,this.fraction=1<>8&255),this.view.setUint8(t+2,E>>16&255),this.view.setUint8(t+3,o&255),this.view.setUint8(t+4,o>>8&255),this.view.setUint8(t+5,o>>16&255),this.view.setUint8(t+6,s&255),this.view.setUint8(t+7,s>>8&255),this.view.setUint8(t+8,s>>16&255)}setAlpha(A,I){const g=16+this.numSplats*9+A;this.view.setUint8(g,Math.max(0,Math.min(255,Math.round(I*255))))}static scaleRgb(A){const I=((A-.5)/(To/.15)+.5)*255;return Math.max(0,Math.min(255,Math.round(I)))}setRgb(A,I,g,B){const C=16+this.numSplats*10+A*3;this.view.setUint8(C,tI.scaleRgb(I)),this.view.setUint8(C+1,tI.scaleRgb(g)),this.view.setUint8(C+2,tI.scaleRgb(B))}setScale(A,I,g,B){const C=16+this.numSplats*13+A*3;this.view.setUint8(C,Math.max(0,Math.min(255,Math.round((Math.log(I)+10)*16)))),this.view.setUint8(C+1,Math.max(0,Math.min(255,Math.round((Math.log(g)+10)*16)))),this.view.setUint8(C+2,Math.max(0,Math.min(255,Math.round((Math.log(B)+10)*16))))}setQuat(A,...I){const g=16+this.numSplats*16+A*4,B=ME(I);let C=0;for(let o=1;o<4;++o)Math.abs(B[o])>Math.abs(B[C])&&(C=o);const E=B[C]<0?1:0;let i=C;for(let o=0;o<4;++o)if(o!==C){const D=(B[o]<0?1:0)^E,s=Math.floor(511*(Math.abs(B[o])/Math.SQRT1_2)+.5);i=i<<10|D<<9|s}this.view.setUint8(g,i&255),this.view.setUint8(g+1,i>>8&255),this.view.setUint8(g+2,i>>16&255),this.view.setUint8(g+3,i>>>24&255)}static quantizeSh(A,I){const g=Math.round(A*128)+128,B=1<<8-I,C=Math.floor((g+B/2)/B)*B;return Math.max(0,Math.min(255,C))}setSh(A,I,g,B){const C=bo[this.shDegree]||0,E=16+this.numSplats*20+A*C*3;for(let i=0;i<9;++i)this.view.setUint8(E+i,tI.quantizeSh(I[i],5));if(g){const i=E+9;for(let o=0;o<15;++o)this.view.setUint8(i+o,tI.quantizeSh(g[o],4));if(B){const o=i+15;for(let D=0;D<21;++D)this.view.setUint8(o+D,tI.quantizeSh(B[D],4))}}}async finalize(){const A=new Uint8Array(this.buffer),g=new ReadableStream({async start(E){E.enqueue(A),E.close()}}).pipeThrough(new CompressionStream("gzip")),C=await new Response(g).arrayBuffer();return console.log("Compressed",A.length,"bytes to",C.byteLength,"bytes"),new Uint8Array(C)}}async function Hh(Q){var s,w,G;const A=new Ih,{inputs:I,clipXyz:g,maxSh:B,fractionalBits:C=12,opacityThreshold:E}=Q;for(const t of I){let c=function(e){return e.multiplyScalar(R),e.applyQuaternion(N),e.add(S),e},h=function(e){return e.multiplyScalar(R),e},y=function(e){return e.premultiply(N),e},k=function(e){return!M||M.containsPoint(e)},F=function(e){return E!==void 0?e>=E:!0};const R=((s=t.transform)==null?void 0:s.scale)??1,N=new a.Quaternion().fromArray(((w=t.transform)==null?void 0:w.quaternion)??[0,0,0,1]),S=new a.Vector3().fromArray(((G=t.transform)==null?void 0:G.translate)??[0,0,0]),M=g?new a.Box3(new a.Vector3().fromArray(g.min),new a.Vector3().fromArray(g.max)):void 0;let U=t.fileType;switch(U||(U=MB(t.fileBytes),!U&&t.pathOrUrl&&(U=xo(t.pathOrUrl))),U){case eA.PLY:{const e=new _g({fileBytes:t.fileBytes});await e.parseHeader();let J=null;e.parseSplats((n,H,L,l,d,K,f,V,IA,O,CA,v,gA,W,b)=>{const u=c(new a.Vector3(H,L,l));if(k(u)&&F(v)){J=A.pushSplat(),A.setCenter(J,u.x,u.y,u.z);const T=h(new a.Vector3(d,K,f));A.setScale(J,T.x,T.y,T.z);const p=y(new a.Quaternion(V,IA,O,CA));A.setQuaternion(J,p.x,p.y,p.z,p.w),A.setOpacity(J,v),A.setColor(J,gA,W,b)}else J=null},(n,H,L,l)=>{H&&J!==null&&A.setSh1(J,H),L&&J!==null&&A.setSh2(J,L),l&&J!==null&&A.setSh3(J,l)});break}case eA.SPZ:{const e=new Po({fileBytes:t.fileBytes});await e.parseHeader();const J=new Int32Array(e.numSplats);J.fill(-1);const n=new Float32Array(e.numSplats*3),H=new a.Vector3;e.parseSplats((L,l,d,K)=>{const f=c(new a.Vector3(l,d,K));n[L*3]=f.x,n[L*3+1]=f.y,n[L*3+2]=f.z},(L,l)=>{H.fromArray(n,L*3),k(H)&&F(l)&&(J[L]=A.pushSplat(),A.setCenter(J[L],H.x,H.y,H.z),A.setOpacity(J[L],l))},(L,l,d,K)=>{J[L]>=0&&A.setColor(J[L],l,d,K)},(L,l,d,K)=>{if(J[L]>=0){const f=h(new a.Vector3(l,d,K));A.setScale(J[L],f.x,f.y,f.z)}},(L,l,d,K,f)=>{if(J[L]>=0){const V=y(new a.Quaternion(l,d,K,f));A.setQuaternion(J[L],V.x,V.y,V.z,V.w)}},(L,l,d,K)=>{J[L]>=0&&(A.setSh1(J[L],l),d&&A.setSh2(J[L],d),K&&A.setSh3(J[L],K))});break}case eA.SPLAT:Rh(t.fileBytes,e=>{},(e,J,n,H,L,l,d,K,f,V,IA,O,CA,v,gA)=>{const W=c(new a.Vector3(J,n,H));if(k(W)&&F(O)){const b=A.pushSplat();A.setCenter(b,W.x,W.y,W.z);const u=h(new a.Vector3(L,l,d));A.setScale(b,u.x,u.y,u.z);const T=y(new a.Quaternion(K,f,V,IA));A.setQuaternion(b,T.x,T.y,T.z,T.w),A.setOpacity(b,O),A.setColor(b,CA,v,gA)}});break;case eA.KSPLAT:{let e=null;eh(t.fileBytes,J=>{},(J,n,H,L,l,d,K,f,V,IA,O,CA,v,gA,W)=>{const b=c(new a.Vector3(n,H,L));if(k(b)&&F(CA)){e=A.pushSplat(),A.setCenter(e,b.x,b.y,b.z);const u=h(new a.Vector3(l,d,K));A.setScale(e,u.x,u.y,u.z);const T=y(new a.Quaternion(f,V,IA,O));A.setQuaternion(e,T.x,T.y,T.z,T.w),A.setOpacity(e,CA),A.setColor(e,v,gA,W)}else e=null},(J,n,H,L)=>{e!==null&&(A.setSh1(e,n),H&&A.setSh2(e,H),L&&A.setSh3(e,L))});break}default:throw new Error(`transcodeSpz not implemented for ${U}`)}}const i=Math.min(B??3,A.sh3?3:A.sh2?2:A.sh1?1:0),o=new tI({numSplats:A.numSplats,shDegree:i,fractionalBits:C,flagAntiAlias:!0});for(let t=0;t=1&&o.setSh(t,A.sh1.slice(t*9,(t+1)*9),i>=2&&A.sh2?A.sh2.slice(t*15,(t+1)*15):void 0,i>=3&&A.sh3?A.sh3.slice(t*21,(t+1)*21):void 0)}return{fileBytes:await o.finalize(),clippedCount:o.clippedCount}}var mo=(Q=>(Q.DUAL_QUATERNION="dual_quaternion",Q.LINEAR_BLEND="linear_blend",Q))(mo||{});const m=class m{constructor(A){this.mesh=A.mesh,this.numSplats=A.numSplats??this.mesh.numSplats,this.mode=A.mode??"dual_quaternion";const{width:I,height:g,depth:B,maxSplats:C}=EA(this.numSplats);this.skinData=new Uint16Array(C*4),this.skinTexture=new a.DataArrayTexture(this.skinData,I,g,B),this.skinTexture.format=a.RGBAIntegerFormat,this.skinTexture.type=a.UnsignedShortType,this.skinTexture.internalFormat="RGBA16UI",this.skinTexture.needsUpdate=!0,this.numBones=A.numBones??256,this.boneData=new Float32Array(this.numBones*16),this.boneTexture=new a.DataTexture(this.boneData,4,this.numBones,a.RGBAFormat,a.FloatType),this.boneTexture.internalFormat="RGBA32F",this.boneTexture.needsUpdate=!0,this.boneRestQuatPosScale=fQ(this.numBones,()=>({quat:new a.Quaternion,pos:new a.Vector3,scale:new a.Vector3})),this.mode==="linear_blend"?this.boneRestInvMats=fQ(this.numBones,()=>new a.Matrix4):this.boneRestInvMats=[],this.uniform=new x({key:"skinning",type:GQ,globals:()=>[tQ],value:{numSplats:this.numSplats,numBones:this.numBones,skinTexture:this.skinTexture,boneTexture:this.boneTexture}})}modify(A){if(this.mode==="linear_blend")throw new Error("Linear blend skinning requires covSplats=true");return Yh(A,this.uniform)}modifyCov(A){return this.mode==="dual_quaternion"?dh(A,this.uniform):qh(A,this.uniform)}setRestQuatPos(A,I,g){this.boneRestQuatPosScale[A].quat.copy(I),this.boneRestQuatPosScale[A].pos.copy(g),this.boneRestQuatPosScale[A].scale.copy(m.UNIT_SCALE),this.mode==="linear_blend"&&this.boneRestInvMats[A].compose(g,I,m.UNIT_SCALE).invert(),this.setBoneQuatPos(A,I,g)}getRestQuatPos(A,I,g){I.copy(this.boneRestQuatPosScale[A].quat),g.copy(this.boneRestQuatPosScale[A].pos)}setRestQuatPosScale(A,I,g,B){this.boneRestQuatPosScale[A].quat.copy(I),this.boneRestQuatPosScale[A].pos.copy(g),this.boneRestQuatPosScale[A].scale.copy(B),this.mode==="linear_blend"&&this.boneRestInvMats[A].compose(g,I,B).invert(),this.setBoneQuatPosScale(A,I,g,B)}getRestQuatPosScale(A,I,g,B){I.copy(this.boneRestQuatPosScale[A].quat),g.copy(this.boneRestQuatPosScale[A].pos),B.copy(this.boneRestQuatPosScale[A].scale)}setRestMatrix(A,I){if(this.mode!=="linear_blend")throw new Error("setRestMat only supported for linear blend skinning");this.boneRestInvMats[A].copy(I).invert(),this.setBoneMatrix(A,I)}getRestMatrix(A,I){if(this.mode!=="linear_blend")throw new Error("getRestMat only supported for linear blend skinning");I.copy(this.boneRestInvMats[A]).invert()}setBoneQuatPos(A,I,g){if(this.mode==="dual_quaternion"){m.relQuat.copy(this.boneRestQuatPosScale[A].quat).invert(),m.relPos.copy(g).sub(this.boneRestQuatPosScale[A].pos),m.relQuat.multiply(I),m.dual.set(m.relPos.x,m.relPos.y,m.relPos.z,0).multiply(m.relQuat);const B=A*16;this.boneData[B+0]=m.relQuat.x,this.boneData[B+1]=m.relQuat.y,this.boneData[B+2]=m.relQuat.z,this.boneData[B+3]=m.relQuat.w,this.boneData[B+4]=.5*m.dual.x,this.boneData[B+5]=.5*m.dual.y,this.boneData[B+6]=.5*m.dual.z,this.boneData[B+7]=.5*m.dual.w}else this.setBoneQuatPosScale(A,I,g,m.UNIT_SCALE)}setBoneQuatPosScale(A,I,g,B){if(this.mode==="dual_quaternion")throw new Error("setBoneQuatPosScale only supported for linear blend skinning");m.skinMat.compose(g,I,B),this.setBoneMatrix(A,m.skinMat)}setBoneMatrix(A,I){if(this.mode!=="linear_blend")throw new Error("setBoneMatrix only supported for linear blend skinning");m.skinMat.multiplyMatrices(this.boneRestInvMats[A],I);const g=A*16;this.boneData[g+0]=m.skinMat.elements[0],this.boneData[g+1]=m.skinMat.elements[1],this.boneData[g+2]=m.skinMat.elements[2],this.boneData[g+3]=m.skinMat.elements[4],this.boneData[g+4]=m.skinMat.elements[5],this.boneData[g+5]=m.skinMat.elements[6],this.boneData[g+6]=m.skinMat.elements[8],this.boneData[g+7]=m.skinMat.elements[9],this.boneData[g+8]=m.skinMat.elements[10],this.boneData[g+9]=m.skinMat.elements[12],this.boneData[g+10]=m.skinMat.elements[13],this.boneData[g+11]=m.skinMat.elements[14]}setSplatBones(A,I,g){const B=A*4;this.skinData[B+0]=Math.min(255,Math.max(0,Math.round(g.x*255)))+(I.x<<8),this.skinData[B+1]=Math.min(255,Math.max(0,Math.round(g.y*255)))+(I.y<<8),this.skinData[B+2]=Math.min(255,Math.max(0,Math.round(g.z*255)))+(I.z<<8),this.skinData[B+3]=Math.min(255,Math.max(0,Math.round(g.w*255)))+(I.w<<8)}updateBones(){this.boneTexture.needsUpdate=!0,this.mesh.needsUpdate=!0}};m.UNIT_SCALE=new a.Vector3(1,1,1),m.relQuat=new a.Quaternion,m.relPos=new a.Vector3,m.dual=new a.Quaternion,m.skinMat=new a.Matrix4;let vQ=m;const GQ={type:"GsplatSkinning"},tQ=GA(` struct GsplatSkinning { int numSplats; int numBones; usampler2DArray skinTexture; sampler2D boneTexture; }; -`),xR=oA(` +`),nh=GA(` void applyGsplatSkinning( int numSplats, int numBones, usampler2DArray skinTexture, sampler2D boneTexture, @@ -2187,7 +1862,7 @@ void main() { center = quatVec(quat, center) + translate; quaternion = quatQuat(quat, quaternion); } -`);function lR(Q,A){return new d({inTypes:{gsplat:Z,skinning:kQ},outTypes:{gsplat:Z},globals:()=>[FQ,xR],inputs:{gsplat:Q,skinning:A},statements:({inputs:g,outputs:B})=>{const{skinning:C}=g,{gsplat:E}=B;return z(` +`);function Yh(Q,A){return new q({inTypes:{gsplat:j,skinning:GQ},outTypes:{gsplat:j},globals:()=>[tQ,nh],inputs:{gsplat:Q,skinning:A},statements:({inputs:g,outputs:B})=>{const{skinning:C}=g,{gsplat:E}=B;return z(` ${E} = ${g.gsplat}; if (isGsplatActive(${E}.flags)) { applyGsplatSkinning( @@ -2196,7 +1871,7 @@ void main() { ${E}.index, ${E}.center, ${E}.quaternion ); } - `)}}).outputs.gsplat}const pR=oA(` + `)}}).outputs.gsplat}const rh=GA(` void applyCovSplatDQSkinning( int numSplats, int numBones, usampler2DArray skinTexture, sampler2D boneTexture, @@ -2260,7 +1935,7 @@ void main() { xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]); xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]); } -`),fR=oA(` +`),Kh=GA(` void applyCovSplatLBSkinning( int numSplats, int numBones, usampler2DArray skinTexture, sampler2D boneTexture, @@ -2307,7 +1982,7 @@ void main() { xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]); xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]); } -`);function bR(Q,A){return new d({inTypes:{covsplat:rA,skinning:kQ},outTypes:{covsplat:rA},globals:()=>[FQ,pR],inputs:{covsplat:Q,skinning:A},statements:({inputs:g,outputs:B})=>{const{skinning:C}=g,{covsplat:E}=B;return z(` +`);function dh(Q,A){return new q({inTypes:{covsplat:YA,skinning:GQ},outTypes:{covsplat:YA},globals:()=>[tQ,rh],inputs:{covsplat:Q,skinning:A},statements:({inputs:g,outputs:B})=>{const{skinning:C}=g,{covsplat:E}=B;return z(` ${E} = ${g.covsplat}; if (isCovSplatActive(${E}.flags)) { applyCovSplatDQSkinning( @@ -2316,7 +1991,7 @@ void main() { ${E}.index, ${E}.center, ${E}.xxyyzz, ${E}.xyxzyz ); } - `)}}).outputs.covsplat}function PR(Q,A){return new d({inTypes:{covsplat:rA,skinning:kQ},outTypes:{covsplat:rA},globals:()=>[FQ,fR],inputs:{covsplat:Q,skinning:A},statements:({inputs:g,outputs:B})=>{const{skinning:C}=g,{covsplat:E}=B;return z(` + `)}}).outputs.covsplat}function qh(Q,A){return new q({inTypes:{covsplat:YA,skinning:GQ},outTypes:{covsplat:YA},globals:()=>[tQ,Kh],inputs:{covsplat:Q,skinning:A},statements:({inputs:g,outputs:B})=>{const{skinning:C}=g,{covsplat:E}=B;return z(` ${E} = ${g.covsplat}; if (isCovSplatActive(${E}.flags)) { applyCovSplatLBSkinning( @@ -2325,8 +2000,8 @@ void main() { ${E}.index, ${E}.center, ${E}.xxyyzz, ${E}.xyxzyz ); } - `)}}).outputs.covsplat}function uR({splats:Q,extents:A,stepSize:I=1,pointRadius:g=.01,pointShadowScale:B=2,opacity:C=1,color:E}){const i=new G.Vector3,w=new G.Vector3,s=new G.Quaternion(0,0,0,1);E==null&&(E=(y,h)=>y.set(.55+.45*Math.cos(h.x*1),.55+.45*Math.cos(h.y*1),.55+.45*Math.cos(h.z*1)));const o=new G.Color;for(let y=A.min.z;y=g)return;const M=new G.Vector3().addVectors(F,a).normalize(),c=new G.Vector3().addVectors(a,S).normalize(),N=new G.Vector3().addVectors(S,F).normalize();s(R+1,F,M,N),s(R+1,M,a,c),s(R+1,N,c,S),s(R+1,M,c,N)}for(const R of[-1,1])for(const F of[-1,1])for(const a of[-1,1]){const S=new G.Vector3(R,0,0),M=new G.Vector3(0,F,0),c=new G.Vector3(0,0,a);s(0,S,M,c)}const o=Object.values(i),y=new G.Vector3(C,C,E),h=new G.Quaternion,k=typeof D=="function"?new G.Color:D;for(const R of o)h.setFromUnitVectors(new G.Vector3(0,0,-1),R),typeof D=="function"&&D(k,R),R.multiplyScalar(I),R.add(A),Q.pushSplat(R,y,h,1,k)}function mR({text:Q,font:A,fontSize:I,color:g,rgb:B,dotRadius:C,textAlign:E,lineHeight:D,objectScale:i}){A=A??"Arial",I=I??32,g=g??new G.Color(1,1,1),C=C??.8,E=E??"start",D=D??1,i=i??1;const w=Q.split(` -`),s=document.createElement("canvas"),o=s.getContext("2d");if(!o)throw new Error("Failed to create canvas context");o.font=`${I}px ${A}`,o.textAlign=E;const y=o.measureText(""),h=y.fontBoundingBoxAscent+y.fontBoundingBoxDescent;let k=Number.POSITIVE_INFINITY,R=Number.NEGATIVE_INFINITY,F=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(let n=0;n0){const m=p/255;H.set(r-.5*(c-1),.5*(N-1)-n,0),H.multiplyScalar(i),t.pushSplat(H,K,Y,m,B)}L+=4}const q=new vA({packedSplats:t});return q.recolor=g,q}function ZR({url:Q,dotRadius:A,subXY:I,forEachSplat:g}){return A=A??.8,I=Math.max(1,Math.floor(I??1)),new vA({constructSplats:async B=>new Promise((C,E)=>{const D=new Image;D.crossOrigin="anonymous",D.onerror=E,D.onload=()=>{const{width:i,height:w}=D,s=document.createElement("canvas");s.width=i,s.height=w;const o=s.getContext("2d");if(!o){E(new Error("Failed to create canvas context"));return}o.imageSmoothingEnabled=!0,o.imageSmoothingQuality="high";const y=Math.round(i/I),h=Math.round(w/I);o.drawImage(D,0,0,y,h);try{const k=o.getImageData(0,0,y,h),R=new Uint8Array(k.data.buffer),F=new G.Vector3,a=new G.Vector3().setScalar(A),S=new G.Quaternion(0,0,0,1),M=new G.Color;let c=0;for(let N=0;N0){let H=t/255;M.set(R[J+0]/255,R[J+1]/255,R[J+2]/255),F.set(U-.5*(y-1),.5*(h-1)-N,0),a.setScalar(A),S.set(0,0,0,1);let K=!0;if(g){const Y=g(y,h,c,F,a,S,H,M);H=Y??H,K=Y!==null}K&&B.pushSplat(F,a,S,H,M)}c+=1}C()}catch(k){E(k)}},D.src=Q})})}function VR({box:Q,cells:A,dotScale:I,color:g,opacity:B}){A.x=Math.max(1,Math.round(A.x)),A.y=Math.max(1,Math.round(A.y)),A.z=Math.max(1,Math.round(A.z)),B=B??1;const C=A.x*A.y*A.z,E=v("int",A.x),D=v("int",A.y);v("int",A.z);const i=oI(0),w=new YI({numSplats:C,generator:cA({index:"int"},{gsplat:Z},({index:o})=>{if(!o)throw new Error("index is undefined");const y=OQ(o,E),h=mg(o,E),k=OQ(h,D),R=mg(h,D),F=yI({vectorType:"ivec3",x:y,y:k,z:R}),a=Ai(i),S=yI({vectorType:"ivec2",x:o,y:a}),M=gw(S),c=v("vec3",Q.min),N=v("vec3",Q.max),U=wI(N,c),J=mg(xA(PI(F),M),v("vec3",A));let t,H,K;g?(t=v("float",g.r),H=v("float",g.g),K=v("float",g.b)):{r:t,g:H,b:K}=Ag(J).outputs;const Y=yI({vectorType:"vec4",r:t,g:H,b:K,a:v("float",B)}),L=xA(c,kA(U,J)),q=PI(v("float",I)),n=v("vec4",new G.Quaternion(0,0,0,1));let r=EI({flags:Wg("uint","GSPLAT_FLAG_ACTIVE"),index:o,center:L,scales:q,quaternion:n,rgba:Y});return r=s.applyGsplat(r),{gsplat:r}},{globals:()=>[LA]}),update:({time:o})=>{i.value=o,s.update(w),w.updateVersion()}}),s=new lI;return w}const XR={box:new G.Box3(new G.Vector3(-1,-1,-1),new G.Vector3(1,1,1)),density:100,fallDirection:new G.Vector3(-1,-3,1).normalize(),fallVelocity:.02,wanderScale:.04,wanderVariance:2,color1:new G.Color(1,1,1),color2:new G.Color(.5,.5,1),minScale:.001,maxScale:.005,anisoScale:new G.Vector3(1,1,1)},WR={box:new G.Box3(new G.Vector3(-2,-1,-2),new G.Vector3(2,5,2)),density:10,fallDirection:new G.Vector3(0,-1,0),fallVelocity:2,wanderScale:.1,wanderVariance:1,color1:new G.Color(1,1,1),color2:new G.Color(.25,.25,.5),minScale:.005,maxScale:.01,anisoScale:new G.Vector3(.1,1,.1)};function jR({box:Q,minY:A,numSplats:I,density:g,anisoScale:B,minScale:C,maxScale:E,fallDirection:D,fallVelocity:i,wanderScale:w,wanderVariance:s,color1:o,color2:y,opacity:h,onFrame:k}){Q=Q??new G.Box3(new G.Vector3(-1,-1,-1),new G.Vector3(1,1,1));const R=(Q.max.x-Q.min.x)*(Q.max.y-Q.min.y)*(Q.max.z-Q.min.z);g=g??100,I=I??Math.max(1,Math.min(1e6,Math.round(R*g)));const F=oI(C??.001),a=oI(E??.005),S=JI(((B==null?void 0:B.clone())??new G.Vector3(1,1,1)).normalize()),M=JI((D??new G.Vector3(0,-1,0)).normalize()),c=oI(i??.02),N=oI(w??.01),U=oI(s??2),J=JI(o??new G.Color(1,1,1)),t=JI(y??new G.Color(.5,.5,1)),H=oI(h??1),K=oI(0),Y=JI(new G.Vector3(0,0,0)),L=JI(Q.min),q=JI(Q.max),n=oI(A??Number.NEGATIVE_INFINITY),r=wI(q,L),p=new YI({numSplats:I,generator:cA({index:"int"},{gsplat:Z},({index:IA})=>{if(!IA)throw new Error("index not defined");const X=ZQ(IA),EA=Ag(X).outputs.w;let j=PI(X),gA=Zg(kA(EA,v("float",100)));gA=VQ(kA(Wg("float","PI"),gA)),gA=xA(F,kA(gA,wI(a,F)));const W=kA(gA,S),u=Zg(kA(EA,v("float",10))),b=Zg(EA),T=ID(J,t,b),f=kA(T,u),aA=ZQ(yI({vectorType:"ivec2",x:IA,y:v("int",6837)}));let sA=PI(aA),SA=kA(Ag(aA).outputs.w,U);SA=xA(K,SA),j=xA(j,Y);const NA=$E(j,v("vec3",new G.Vector3(1,1,1)));j=xA(L,kA(r,NA));const wA=v("vec4",new G.Quaternion(0,0,0,1));sA=VQ(xA(PI(SA),sA)),sA=kA(sA,N);let GA=xA(j,sA),II=Ag(GA).outputs.y;II=AD(n,II),GA=yI({vector:GA,y:II});let mA=EI({flags:Wg("uint","GSPLAT_FLAG_ACTIVE"),index:IA,center:GA,scales:W,quaternion:wA,rgb:f,opacity:H});return mA=m.applyGsplat(mA),{gsplat:mA}},{globals:()=>[LA]}),update:({object:IA,time:X,deltaTime:EA})=>{K.value=X,m.update(p);const j=M.value.clone().multiplyScalar(c.value*EA);Y.value.add(j),IA.visible=H.value>0,k==null||k({object:IA,time:X,deltaTime:EA}),p.updateVersion()}}),m=new lI;return{snow:p,min:L,max:q,minY:n,color1:J,color2:t,opacity:H,fallVelocity:c,wanderVariance:U,wanderScale:N,fallDirection:M,minScale:F,maxScale:a,anisoScale:S}}const vR=Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_RAIN:WR,DEFAULT_SNOW:XR,snowBox:jR,staticBox:VR},Symbol.toStringTag,{value:"Module"}));function Io(Q){return cA({gsplat:Z},{gsplat:Z},({gsplat:A})=>{if(!A)throw new Error("No gsplat input");let I=PQ(A);const g=Q.applyGsplat(A),B=OA(g).outputs.center,C=PQ(g),E=di(B,C),D=dD(E,v("float",0));I=cB(D,NB(I),I);const i=xA(kA(I,v("float",.5)),v("float",.5));return A=EI({gsplat:A,rgb:i}),{gsplat:A}})}function zR(Q){Q.enableWorldToView=!0,Q.worldModifier=Io(Q.context.worldToView),Q.updateGenerator()}function go(Q,A,I,g){return cA({gsplat:Z},{gsplat:Z},({gsplat:B})=>{if(!B)throw new Error("No gsplat input");let{center:C}=OA(B).outputs;C=Q.apply(C);const{z:E}=Ag(C).outputs;let D=Qw(NB(E),A,I);return D=cB(g,wI(v("float",1),D),D),B=EI({gsplat:B,r:D,g:D,b:D}),{gsplat:B}})}function _R(Q,A,I,g){Q.enableWorldToView=!0;const B=v("float",A),C=v("float",I),E=v("bool",g??!1);return Q.worldModifier=go(Q.context.worldToView,B,C,E),Q.updateGenerator(),{minDepth:B,maxDepth:C,reverse:E}}const $R=Object.freeze(Object.defineProperty({__proto__:null,makeDepthColorModifier:go,makeNormalColorModifier:Io,setDepthColor:_R,setWorldNormalColor:zR},Symbol.toStringTag,{value:"Module"})),Qo=1,zQ=4,Bo=2,Co=5,Eo=1/5,Ak=!1,Do=(Q,A)=>{var I,g,B,C;return Q.leftIsHand?new G.Vector3:new G.Vector3(((I=Q.left)==null?void 0:I.axes[2])??0,(((g=Q.left)==null?void 0:g.buttons[0].value)??0)-(((B=Q.left)==null?void 0:B.buttons[1].value)??0),((C=Q.left)==null?void 0:C.axes[3])??0)},io=(Q,A)=>{var I;return Q.rightIsHand?new G.Vector3:new G.Vector3(((I=Q.right)==null?void 0:I.axes[2])??0,0,0)},wo=(Q,A)=>{var I,g;return Q.rightIsHand?!1:((g=(I=Q.right)==null?void 0:I.buttons[0])==null?void 0:g.pressed)??!1},oo=(Q,A)=>{var I,g;return Q.rightIsHand?!1:((g=(I=Q.right)==null?void 0:I.buttons[1])==null?void 0:g.pressed)??!1};var gQ=(Q=>(Q.w="wrist",Q.t0="thumb-metacarpal",Q.t1="thumb-phalanx-proximal",Q.t2="thumb-phalanx-distal",Q.t3="thumb-tip",Q.i0="index-finger-metacarpal",Q.i1="index-finger-phalanx-proximal",Q.i2="index-finger-phalanx-intermediate",Q.i3="index-finger-phalanx-distal",Q.i4="index-finger-tip",Q.m0="middle-finger-metacarpal",Q.m1="middle-finger-phalanx-proximal",Q.m2="middle-finger-phalanx-intermediate",Q.m3="middle-finger-phalanx-distal",Q.m4="middle-finger-tip",Q.r0="ring-finger-metacarpal",Q.r1="ring-finger-phalanx-proximal",Q.r2="ring-finger-phalanx-intermediate",Q.r3="ring-finger-phalanx-distal",Q.r4="ring-finger-tip",Q.p0="pinky-finger-metacarpal",Q.p1="pinky-finger-phalanx-proximal",Q.p2="pinky-finger-phalanx-intermediate",Q.p3="pinky-finger-phalanx-distal",Q.p4="pinky-finger-tip",Q))(gQ||{});const aI=Object.keys(gQ),Ik=aI.length,gk={w:0,t0:1,t1:2,t2:3,t3:4,i0:5,i1:6,i2:7,i3:8,i4:9,m0:10,m1:11,m2:12,m3:13,m4:14,r0:15,r1:16,r2:17,r3:18,r4:19,p0:20,p1:21,p2:22,p3:23,p4:24},vB={w:.02,t0:.015,t1:.012,t2:.0105,t3:.0085,i0:.022,i1:.012,i2:.0085,i3:.0075,i4:.0065,m0:.021,m1:.012,m2:.008,m3:.0075,m4:.0065,r0:.019,r1:.011,r2:.0075,r3:.007,r4:.006,p0:.012,p1:.01,p2:.007,p3:.0065,p4:.0055},Qk=[["w","t0","t1","t2","t3"],["w","i0","i1","i2","i3","i4"],["w","m0","m1","m2","m3","m4"],["w","r0","r1","r2","r3","r4"],["w","p0","p1","p2","p3","p4"]],Bk=[[8,10,8,6],[8,19,14,8,6],[8,19,14,8,6],[8,19,14,8,6],[8,19,14,8,6]],Ck=["t3","i4","m4","r4","p4"],Ek=["i4","m4","r4","p4"];var eB=(Q=>(Q.left="left",Q.right="right",Q))(eB||{});const Dk=Object.keys(eB),ik=/Quest|OculusBrowser|VisionOS|XRBrowser|Pico|Lynx|MagicLeap/i;function wk(){const Q=navigator.userAgent??"";if(ik.test(Q))return!1;if(/Android/i.test(Q)||/Mobile/i.test(Q))return!0;const I=navigator.userAgentData;return I&&typeof I.mobile=="boolean"?I.mobile:!1}const XA=class XA{constructor(A){this.lastControllersUpdate=0,this.hands=[],this.renderer=A.renderer,this.xr=navigator.xr,this.mode="initializing",this.onEnterXr=A.onEnterXr,this.onExitXr=A.onExitXr,this.enableHands=A.enableHands??!1,this.controllers=A.controllers,Promise.resolve().then(()=>{var C;if(!this.xr){this.mode="not_supported";return}if(!A.allowMobileXr&&wk()){this.mode="not_supported";return}this.enableHands&&(this.hands=[new Yg("left"),new Yg("right")]);let I,g;if(A.element?I=A.element:A.elementId?I=document.getElementById(A.elementId)??void 0:(I=XA.createButton(),g=A.button==null||typeof A.button=="boolean"?{}:A.button),!I)throw new Error("No element or button provided");I.style.display="none",I.classList.add("hidden"),this.button=g,this.element=I;const B=(C=A.onMouseLeaveOpacity)==null?void 0:C.toString();return B!==void 0&&(I.addEventListener("mouseleave",()=>{I.style.opacity=B}),I.addEventListener("mouseenter",()=>{I.style.opacity=""})),this.initializeXr(A)}).then(()=>{var I;return(I=A.onReady)==null?void 0:I.call(A,this.mode!=="not_supported")}).catch(I=>{alert(`Error initializing SparkXr: ${I}`)})}async initializeXr(A){var w,s;if(!this.xr||!this.element)return;const I=this.element,g={vr:["immersive-vr"],ar:["immersive-ar"],arvr:["immersive-ar","immersive-vr"],vrar:["immersive-vr","immersive-ar"]}[A.mode??"vrar"];if(!g)throw new Error(`Invalid mode: ${A.mode}`);let B=null;for(const o of g)if(await this.xr.isSessionSupported(o)){B=o;break}if(!B){this.mode="not_supported";return}this.mode=B;const C=A.referenceSpaceType??"local";this.renderer.xr.enabled=!0,this.renderer.xr.setReferenceSpaceType(C),A.fixedFoveation!==void 0&&this.renderer.xr.setFoveation(A.fixedFoveation);const E=A.frameBufferScaleFactor??.5;this.renderer.xr.setFramebufferScaleFactor(E);const D=((w=A.sessionInit)==null?void 0:w.optionalFeatures)??[];A.enableHands&&D.push("hand-tracking");const i=((s=A.sessionInit)==null?void 0:s.requiredFeatures)??[];i.push(C),this.sessionInit={...A.sessionInit,optionalFeatures:D,requiredFeatures:i},I.addEventListener("click",()=>{this.toggleXr()}),this.updateElement()}async toggleXr(){var A,I,g;if(!(!this.xr||!this.sessionInit))if(this.session)this.session.end();else try{const B=this.mode,C=await this.xr.requestSession(B,this.sessionInit);this.session=C;const E=()=>{var w;C==null||C.removeEventListener("end",E),C==null||C.removeEventListener("visibilitychange",i),this.session=void 0,this.updateElement(),(w=this.onExitXr)==null||w.call(this)};let D=C.visibilityState;const i=()=>{(C==null?void 0:C.visibilityState)==="visible-blurred"&&D==="visible"&&(C==null||C.end()),D=C==null?void 0:C.visibilityState};return(A=this.session)==null||A.addEventListener("end",E),(I=this.session)==null||I.addEventListener("visibilitychange",i),await this.renderer.xr.setSession(this.session),(g=this.onEnterXr)==null?void 0:g.call(this)}catch(B){console.error("Error requesting XR session",B);return}}updateElement(){const A=this.mode,I=this.element;if(I){I.style.display="",I.classList.remove("hidden");const g=typeof this.button=="boolean"?{}:this.button;if(g){if(this.session){const B=(A==="immersive-vr"?g.exitVrHtml:g.exitArHtml)??g.exitXrHtml,C=(A==="immersive-vr"?g.exitVrText:g.exitArText)??g.exitXrText;B?I.innerHTML=B:C?I.textContent=C:I.textContent=A==="immersive-vr"?"EXIT VR":"EXIT AR"}else{const B=(A==="immersive-vr"?g.enterVrHtml:g.enterArHtml)??g.enterXrHtml,C=(A==="immersive-vr"?g.enterVrText:g.enterArText)??g.enterXrText;B?I.innerHTML=B:C?I.textContent=C:I.textContent=A==="immersive-vr"?"ENTER VR":"ENTER AR"}I.style.display=""}}}static createButton(){const A=document.createElement("button");return Object.assign(A.style,{position:"absolute",bottom:"20px",left:"50%",transform:"translateX(-50%)",padding:"40px 40px",border:"2px solid #fff",borderRadius:"16px",background:"rgba(0,0,0,0.1)",color:"#fff",font:"bold 28px sans-serif",textAlign:"center",userSelect:"none",zIndex:"999"}),document.body.appendChild(A),A}xrSupported(){return!!this.xr}left(){return this.hands[0]}right(){return this.hands[1]}updateControllers(A){var w,s,o,y,h,k,R,F,a,S,M,c;const I=A.parent,g=performance.now(),B=(g-(this.lastControllersUpdate||g))/1e3;this.lastControllersUpdate=g;const C={};for(const N of((w=this.renderer.xr.getSession())==null?void 0:w.inputSources)??[]){const U=N.gamepad;U&&(N.handedness==="left"||N.handedness==="right")&&(C[N.handedness]=U,N.handedness==="left"?C.leftIsHand=!!N.hand:N.handedness==="right"&&(C.rightIsHand=!!N.hand))}const E=(((s=this.controllers)==null?void 0:s.getRotate)??io)(C,this);if(E.multiply(new G.Vector3(((o=this.controllers)==null?void 0:o.rotateSpeed)??zQ,((y=this.controllers)==null?void 0:y.rotateSpeed)??zQ,((h=this.controllers)==null?void 0:h.rollSpeed)??Bo)),E.manhattanLength()>0){E.multiplyScalar(B);const N=new G.Euler(-E.y,-E.x,E.z,"YXZ"),U=new G.Quaternion().setFromEuler(N),J=A.getWorldPosition(new G.Vector3);(k=I.parent)==null||k.worldToLocal(J),I.position.sub(J),I.position.applyQuaternion(U),I.position.add(J),I.quaternion.premultiply(U)}const D=(((R=this.controllers)==null?void 0:R.getMove)??Do)(C,this);let i=((F=this.controllers)==null?void 0:F.moveSpeed)??Qo;(((a=this.controllers)==null?void 0:a.getFast)??wo)(C,this)&&(i*=Co),(((S=this.controllers)==null?void 0:S.getSlow)??oo)(C,this)&&(i*=Eo),(M=this.controllers)!=null&&M.moveHeading?D.applyQuaternion(A.quaternion):(c=this.controllers)!=null&&c.moveDirection&&(ug.setFromQuaternion(A.quaternion,"YXZ"),ug.x=0,ug.z=0,$Q.setFromEuler(ug),D.applyQuaternion($Q)),D.applyQuaternion(I.quaternion),D.multiplyScalar(B*i),I.position.add(D)}updateHands({xrFrame:A}){const I=this.renderer.xr.getSession();if(!I)return;const g=this.renderer.xr.getReferenceSpace();if(g&&A.getJointPose){for(const B of this.hands)B&&(B.lastJoints=B.joints,B.joints=void 0);for(const B of I.inputSources){if(!B.hand)continue;const C=B.handedness,E=this.hands[C==="left"?0:1];if(E)for(const D of aI){const i=B.hand.get(gQ[D]);if(i){const w=A.getJointPose(i,g);if(w){const{position:s,orientation:o}=w.transform;E.joints||(E.joints={}),E.joints[D]={position:new G.Vector3(s.x,s.y,s.z),quaternion:new G.Quaternion(o.x,o.y,o.z,o.w),radius:vB[D]}}}}}}}makeJointSplats(A){const I=new so(A);return I.onFrame=()=>{const g=this.hands[A==="left"?0:1],B=g==null?void 0:g.joints;I.updateJoints(B)},I}snapshotHands(A){var g,B;const I=[(g=this.hands[0])==null?void 0:g.snapshotJoints(),(B=this.hands[1])==null?void 0:B.snapshotJoints()];return{time:A,hands:I}}};XA.JointEnum=gQ,XA.JOINT_IDS=aI,XA.NUM_JOINTS=Ik,XA.JOINT_INDEX=gk,XA.JOINT_RADIUS=vB,XA.JOINT_SEGMENTS=Qk,XA.JOINT_SEGMENT_STEPS=Bk,XA.JOINT_TIPS=Ck,XA.FINGER_TIPS=Ek,XA.Hand=eB,XA.HANDS=Dk;let _Q=XA;const dQ=Q=>Math.round(Q*1e4)/1e4,ug=new G.Euler(0,0,0,"YXZ"),$Q=new G.Quaternion,ok=new G.Quaternion;function sk(Q,A){if(!Q.length)return null;const I=Q[0],g=Q[Q.length-1];if(Ag.time)return null;const B=hk(Q,A);if(B===-1)return null;const C=Q[B],E=Q[B+1];if(!E)return yk(C,A);const D=E.time-C.time,i=D>0?(A-C.time)/D:0;return Gk(C,E,i,A)}function Gk(Q,A,I,g){const B=Math.max(Q.hands.length,A.hands.length),C=Array.from({length:B},(E,D)=>Rk(Q.hands[D],A.hands[D],I));return{time:g,hands:C}}function yk(Q,A){return{time:A,hands:Q.hands.map(I=>Fk(I))}}class Yg{constructor(A){this.hand=A}static newFromSnapshot(A,I){const g=new Yg(A);g.joints={};for(const B of aI){const C=I[B];C&&(g.joints[B]={position:new G.Vector3(C.pos[0],C.pos[1],C.pos[2]),quaternion:new G.Quaternion(C.quat[0],C.quat[1],C.quat[2],C.quat[3]),radius:C.radius})}return g}valid(){return!!this.joints}snapshotJoints(){if(!this.joints)return;const A={};for(const I of aI){const g=this.joints[I];g&&(A[I]={pos:g.position.toArray().map(dQ),quat:g.quaternion.toArray().map(dQ),radius:dQ(g.radius)})}return A}toFlatArray(){if(!this.joints)return;const A=new Float32Array(1+25*7);A[0]=this.hand==="left"?0:1;let I=1;for(const g of aI){const B=this.joints[g];B&&(A[I]=B.position.x,A[I+1]=B.position.y,A[I+2]=B.position.z,A[I+3]=B.quaternion.x,A[I+4]=B.quaternion.y,A[I+5]=B.quaternion.z,A[I+6]=B.quaternion.w),I+=7}return A}}function hk(Q,A){let I=0,g=Q.length-1;for(;I<=g;){const B=I+g>>1;Q[B].time<=A?I=B+1:g=B-1}return g}function Rk(Q,A,I=0){if(!Q||!A)return;const g={};for(const B of aI){const C=kk(Q[B],A[B],I);C&&(g[B]=C)}return g}function kk(Q,A,I=0){if(!Q||!A)return;const g=Q.pos.map((E,D)=>E+(A.pos[D]-E)*I),B=$Q.fromArray(Q.quat).slerp(ok.fromArray(A.quat),I).toArray(),C=Q.radius+(A.radius-Q.radius)*I;return{pos:g,quat:B,radius:C}}function Fk(Q){if(!Q)return;const A={};for(const I of aI){const g=Q[I];g&&(A[I]=ak(g))}return A}function ak(Q){return{pos:[...Q.pos],quat:[...Q.quat],radius:Q.radius}}class so extends vA{constructor(A){super({}),this.scratchCenter=new G.Vector3,this.scratchQuat=new G.Quaternion(0,0,0,1),this.scratchScales=new G.Vector3().setScalar(.01),this.scratchColor=new G.Color(1,1,1),this.hand=A}updateJoints(A){if(this.visible=!1,!A||!this.packedSplats)return;this.visible=!0;let I=0;for(const g of aI){const B=A[g];if(!B)continue;this.scratchCenter.copy(B.position),this.scratchQuat.copy(B.quaternion),this.scratchScales.set(B.radius,.75*B.radius,1.5*B.radius),this.packedSplats.setSplat(I,this.scratchCenter,this.scratchScales,this.scratchQuat,.75,this.scratchColor),I+=1}this.packedSplats.numSplats=I,this.packedSplats.needsUpdate=!0,this.numSplats=I,this.updateVersion()}}const Sk=.5,Nk=.5,ck=0;var aQ=(Q=>(Q.w="wrist",Q.t0="thumb-metacarpal",Q.t1="thumb-phalanx-proximal",Q.t2="thumb-phalanx-distal",Q.t3="thumb-tip",Q.i0="index-finger-metacarpal",Q.i1="index-finger-phalanx-proximal",Q.i2="index-finger-phalanx-intermediate",Q.i3="index-finger-phalanx-distal",Q.i4="index-finger-tip",Q.m0="middle-finger-metacarpal",Q.m1="middle-finger-phalanx-proximal",Q.m2="middle-finger-phalanx-intermediate",Q.m3="middle-finger-phalanx-distal",Q.m4="middle-finger-tip",Q.r0="ring-finger-metacarpal",Q.r1="ring-finger-phalanx-proximal",Q.r2="ring-finger-phalanx-intermediate",Q.r3="ring-finger-phalanx-distal",Q.r4="ring-finger-tip",Q.p0="pinky-finger-metacarpal",Q.p1="pinky-finger-phalanx-proximal",Q.p2="pinky-finger-phalanx-intermediate",Q.p3="pinky-finger-phalanx-distal",Q.p4="pinky-finger-tip",Q))(aQ||{});const rB=Object.keys(aQ),Mk=rB.length,Jk={w:0,t0:1,t1:2,t2:3,t3:4,i0:5,i1:6,i2:7,i3:8,i4:9,m0:10,m1:11,m2:12,m3:13,m4:14,r0:15,r1:16,r2:17,r3:18,r4:19,p0:20,p1:21,p2:22,p3:23,p4:24},yg={w:.02,t0:.02,t1:.014,t2:.0115,t3:.0085,i0:.022,i1:.012,i2:.0085,i3:.0075,i4:.0065,m0:.021,m1:.012,m2:.008,m3:.0075,m4:.0065,r0:.019,r1:.011,r2:.0075,r3:.007,r4:.006,p0:.012,p1:.01,p2:.007,p3:.0065,p4:.0055},Go=[["w","t0","t1","t2","t3"],["w","i0","i1","i2","i3","i4"],["w","m0","m1","m2","m3","m4"],["w","r0","r1","r2","r3","r4"],["w","p0","p1","p2","p3","p4"]],yo=[[8,10,8,6],[8,19,14,8,6],[8,19,14,8,6],[8,19,14,8,6],[8,19,14,8,6]],Uk=["t3","i4","m4","r4","p4"],tk=["i4","m4","r4","p4"];var nB=(Q=>(Q.left="left",Q.right="right",Q))(nB||{});const QQ=Object.keys(nB);class Hk{constructor(){this.hands={},this.last={},this.values={},this.tests={},this.lastTests={},this.updated=!1}update({xr:A,xrFrame:I}){const g=A.getSession();if(!g)return;const B=A.getReferenceSpace();if(B&&I.getJointPose){this.last=this.hands,this.lastTests=this.tests,this.hands={},this.values={},this.tests={};for(const C of g.inputSources){if(!C.hand)continue;const E=C.handedness;this.hands[E]={};for(const D of rB){const i=C.hand.get(aQ[D]);if(i){const w=I.getJointPose(i,B);if(w){const{position:s,orientation:o}=w.transform;this.hands[E][D]={position:new MA.Vector3(s.x,s.y,s.z),quaternion:new MA.Quaternion(o.x,o.y,o.z,o.w),radius:w.radius||.001}}}}}for(const C of QQ)for(const{key:E,value:D}of[{key:`${C}AllTips`,value:this.allTipsTouching(C)},{key:`${C}IndexThumb`,value:this.touching(C,"i4",C,"t3")},{key:`${C}MiddleThumb`,value:this.touching(C,"m4",C,"t3")},{key:`${C}RingThumb`,value:this.touching(C,"r4",C,"t3")},{key:`${C}PinkyThumb`,value:this.touching(C,"p4",C,"t3")},{key:`${C}TriTips`,value:this.triTipsTouching(C)}])this.values[E]=D,this.tests[E]=D===1?!0:D===0?!1:this.lastTests[E]??!1}}makeGhostMesh(){const A=new MA.Vector3,I=new MA.Vector3(.01,.01,.01),g=new MA.Quaternion(0,0,0,1),B=new MA.Color(1,1,1),C=Math.PI*3;new MA.Color(1,1,1);let E=1;const D=new vA({onFrame:()=>{if(!D.packedSplats)return;let i=0;for(const w of QQ){const s=this.hands[w];for(const[o,y]of Go.entries())for(let h=1;h.8&&(U*=Math.sqrt(1-((M-.8)/.2)**2)),I.set(.65*U,.5*U,.003),B.set(.55+.45*Math.sin(A.x*C),.55+.45*Math.sin(A.y*C),.55+.45*Math.sin(A.z*C)),w==="right"&&B.set(1-B.r,1-B.g,1-B.b),E=.75}D.packedSplats.setSplat(i,A,I,g,E,B),i+=1}}}D.packedSplats.numSplats=i,D.packedSplats.needsUpdate=!0,D.numSplats=i,D.updateVersion()}});return D}distance(A,I,g,B,C=!1){const E=C?this.last[A]:this.hands[A],D=C?this.last[g]:this.hands[g],i=E==null?void 0:E[I],w=D==null?void 0:D[B];return!i||!w?Number.POSITIVE_INFINITY:i.position.distanceTo(w.position)}separation(A,I,g,B,C=!1){const E=this.distance(A,I,g,B,C);return E===Number.POSITIVE_INFINITY?Number.POSITIVE_INFINITY:E-yg[I]-yg[B]}touching(A,I,g,B,C=!1){const E=this.separation(A,I,g,B,C);return E===Number.POSITIVE_INFINITY?Number.POSITIVE_INFINITY:1-Math.max(0,Math.min(1,E/.01-ck))}allTipsTouching(A,I=!1){return Math.min(this.touching(A,"t3",A,"i4",I),this.touching(A,"i4",A,"m4",I),this.touching(A,"m4",A,"r4",I),this.touching(A,"r4",A,"p4",I))}triTipsTouching(A,I=!1){return Math.min(this.touching(A,"t3",A,"i4",I),this.touching(A,"i4",A,"m4",I),this.touching(A,"m4",A,"t3",I))}}class Lk{constructor({xrHands:A,control:I,moveInertia:g,rotateInertia:B}){this.lastGrip={},this.lastPivot=new MA.Vector3,this.rotateVelocity=0,this.velocity=new MA.Vector3,this.xrHands=A,this.control=I,this.moveInertia=g??Sk,this.rotateInertia=B??Nk}update(A){var C,E,D,i,w;const I={};for(const s of QQ){const o=this.xrHands.hands[s];o&&this.xrHands.tests[`${s}MiddleThumb`]&&(I[s]=new MA.Vector3().add(((C=o.t3)==null?void 0:C.position)??new MA.Vector3).add(((E=o.i4)==null?void 0:E.position)??new MA.Vector3).add(((D=o.m4)==null?void 0:D.position)??new MA.Vector3).add(((i=o.r4)==null?void 0:i.position)??new MA.Vector3).add(((w=o.p4)==null?void 0:w.position)??new MA.Vector3).multiplyScalar(1/5))}if(I.left&&I.right&&this.lastGrip.left&&this.lastGrip.right){const s=I.left.clone().add(I.right).multiplyScalar(.5),o=this.lastGrip.left.clone().add(this.lastGrip.right).multiplyScalar(.5);this.lastPivot=s;const y=s.clone().applyMatrix4(this.control.matrix);y.sub(o.clone().applyMatrix4(this.control.matrix)),y.multiplyScalar(1/A),this.velocity.lerp(y,1-Math.exp(-20*A));const h=Math.atan2(I.left.z-s.z,I.left.x-s.x),k=Math.atan2(this.lastGrip.left.z-o.z,this.lastGrip.left.x-o.x);let R=h-k;R>Math.PI?R-=Math.PI*2:R<-Math.PI&&(R+=Math.PI*2);const F=R/A,a=Math.exp(-20*A);this.rotateVelocity=this.rotateVelocity*a+F*(1-a)}else if(this.rotateVelocity*=Math.exp(-A/this.rotateInertia),I.left&&this.lastGrip.left){const s=I.left.clone().applyMatrix4(this.control.matrix);s.sub(this.lastGrip.left.clone().applyMatrix4(this.control.matrix)),s.multiplyScalar(1/A),this.velocity.lerp(s,1-Math.exp(-20*A))}else if(I.right&&this.lastGrip.right){const s=I.right.clone().applyMatrix4(this.control.matrix);s.sub(this.lastGrip.right.clone().applyMatrix4(this.control.matrix)),s.multiplyScalar(1/A),this.velocity.lerp(s,1-Math.exp(-20*A))}else this.velocity.multiplyScalar(Math.exp(-A/this.moveInertia));const g=this.lastPivot.clone().negate(),B=new MA.Matrix4().makeTranslation(g).premultiply(new MA.Matrix4().makeRotationY(this.rotateVelocity*A)).premultiply(new MA.Matrix4().makeTranslation(this.lastPivot));this.control.matrix.multiply(B),this.control.matrix.decompose(this.control.position,this.control.quaternion,this.control.scale),this.control.updateMatrixWorld(!0),this.control.position.sub(this.velocity.clone().multiplyScalar(A)),this.lastGrip=I}}const Yk=1,Kk=2,ek=.002,rk=.006,nk=.0015,dk=.15,qk=.15,xk=.1,lk=2,pk=0,fk=500,bk=500,Pk=200,uk=400,Tk=25,sI=1e-4,Ok={KeyW:new G.Vector3(0,0,-1),KeyS:new G.Vector3(0,0,1),KeyA:new G.Vector3(-1,0,0),KeyD:new G.Vector3(1,0,0),KeyE:new G.Vector3(0,1,0),KeyQ:new G.Vector3(0,-1,0)},mk={ArrowUp:new G.Vector3(0,0,-1),ArrowDown:new G.Vector3(0,0,1),ArrowLeft:new G.Vector3(-1,0,0),ArrowRight:new G.Vector3(1,0,0),PageUp:new G.Vector3(0,1,0),PageDown:new G.Vector3(0,-1,0)};new G.Vector3(0,0,1),new G.Vector3(0,0,-1);const Zk={Home:new G.Vector3(0,-1,0),End:new G.Vector3(0,1,0),Insert:new G.Vector3(-1,0,0),Delete:new G.Vector3(1,0,0)};class Vk{constructor({canvas:A}){this.lastTime=0,this.fpsMovement=new ho({}),this.pointerControls=new Ro({canvas:A})}update(A,I){const g=performance.now(),B=(g-(this.lastTime||g))/1e3;this.lastTime=g;let C=this.fpsMovement.update(B,A);return this.pointerControls.update(B,A,I)&&(C=!0),C}}class ho{constructor({moveSpeed:A,rollSpeed:I,stickThreshold:g,rotateSpeed:B,keycodeMoveMapping:C,keycodeRotateMapping:E,gamepadMapping:D,capsMultiplier:i,shiftMultiplier:w,ctrlMultiplier:s,xr:o}={}){this.enable=!0,this.extraMove=new G.Vector3,this.moveSpeed=A??Yk,this.rollSpeed=I??Kk,this.stickThreshold=g??xk,this.rotateSpeed=B??lk,this.keycodeMoveMapping=C??{...Ok,...mk},this.keycodeRotateMapping=E??{...Zk},this.gamepadMapping=D??{4:"rollLeft",5:"rollRight",6:"ctrl",7:"shift"},this.capsMultiplier=i??10,this.shiftMultiplier=w??5,this.ctrlMultiplier=s??1/5,this.xr=o,this.keydown={},this.keycode={},document.addEventListener("keydown",y=>{this.keydown[y.key]=!0,this.keycode[y.code]=!0}),document.addEventListener("keyup",y=>{this.keydown[y.key]=!1,this.keycode[y.code]=!1}),window.addEventListener("blur",()=>{this.keydown={},this.keycode={}})}update(A,I){var o,y;if(!this.enable)return!1;const g=[new G.Vector2,new G.Vector2],B=navigator.getGamepads()[0];B&&(g[0].set(B.axes[0],B.axes[1]),g[1].set(B.axes[2],B.axes[3]));const C=(B==null?void 0:B.buttons.map(h=>h.pressed))||[],E=Array.from(((y=(o=this.xr)==null?void 0:o.getSession())==null?void 0:y.inputSources)??[]);for(const h of E){const k=h.gamepad;if(k)switch(h.handedness){case"none":{g[0].x+=k.axes[0],g[0].y+=k.axes[1],g[1].x+=k.axes[2],g[1].y+=k.axes[3];break}case"left":{g[0].x+=k.axes[2],g[0].y+=k.axes[3];break}case"right":{g[1].x+=k.axes[2],g[1].y+=k.axes[3];break}}}for(const h of g)h.x=Math.abs(h.x)>=this.stickThreshold?h.x:0,h.y=Math.abs(h.y)>=this.stickThreshold?h.y:0;const D=new G.Vector3(g[1].x,g[1].y,0).multiplyScalar(this.rotateSpeed);for(const[h,k]of Object.entries(this.keycodeRotateMapping))this.keycode[h]&&D.add(k);for(const h in this.gamepadMapping)if(C[Number.parseInt(h)])switch(this.gamepadMapping[h]){case"rollLeft":D.z+=1;break;case"rollRight":D.z-=1;break}D.multiply(new G.Vector3(this.rotateSpeed,this.rotateSpeed,this.rollSpeed));let i=D.length()>sI;if(D.manhattanLength()>0){D.multiplyScalar(A);const h=new G.Euler().setFromQuaternion(I.quaternion,"YXZ");h.y-=D.x,h.x=Math.max(-Math.PI/2,Math.min(Math.PI/2,h.x-D.y)),h.z=Math.max(-Math.PI,Math.min(Math.PI,h.z+D.z)),I.quaternion.setFromEuler(h)}const w=new G.Vector3(g[0].x,0,g[0].y);w.add(this.extraMove);for(const[h,k]of Object.entries(this.keycodeMoveMapping))this.keycode[h]&&w.add(k);let s=1;this.keydown.CapsLock&&(s*=this.capsMultiplier),(this.keycode.ShiftLeft||this.keycode.ShiftRight)&&(s*=this.shiftMultiplier),(this.keycode.ControlLeft||this.keycode.ControlRight)&&(s*=this.ctrlMultiplier);for(const h in this.gamepadMapping)if(C[Number.parseInt(h)])switch(this.gamepadMapping[h]){case"shift":s*=this.shiftMultiplier;break;case"ctrl":s*=this.ctrlMultiplier;break}return w.length()>sI&&(i=!0),w.applyQuaternion(I.quaternion),I.position.add(w.multiplyScalar(this.moveSpeed*s*A)),i}}class Ro{constructor({canvas:A,rotateSpeed:I,slideSpeed:g,scrollSpeed:B,swapRotateSlide:C,reverseRotate:E,reverseSlide:D,reverseSwipe:i,reverseScroll:w,moveInertia:s,rotateInertia:o,pointerRollScale:y,doublePress:h,pressMoveDelayMs:k,pressMoveAccelMs:R,pressMoveSpeed:F,doublePressMoveSpeed:a,triplePressMoveSpeed:S,pressMoveCenter:M}){this.enable=!0,this.canvas=A,this.rotateSpeed=I??ek,this.slideSpeed=g??rk,this.scrollSpeed=B??nk,this.swapRotateSlide=C??!1,this.reverseRotate=E??(iQ()||Ig()),this.reverseSlide=D??!1,this.reverseSwipe=i??!1,this.reverseScroll=w??!1,this.moveInertia=s??qk,this.rotateInertia=o??dk,this.pointerRollScale=y??pk,this.doublePress=h??(()=>{}),this.doublePressLimitMs=uk,this.doublePressDistance=Tk,this.pressMoveDelayMs=k??fk,this.pressMoveAccelMs=R??bk,this.pressMoveSpeed=F??0,this.doublePressMoveSpeed=a??this.pressMoveSpeed*5,this.triplePressMoveSpeed=S??this.doublePressMoveSpeed*5,this.pressMoveCenter=M??!0,this.doublePressed=void 0,this.triplePressed=!1,this.lastUp=null,this.lastLastUp=null,this.rotating=null,this.sliding=null,this.lastDown=null,this.dualPress=!1,this.scroll=new G.Vector3,this.rotateVelocity=new G.Vector3,this.moveVelocity=new G.Vector3,A.addEventListener("pointerdown",N=>{const U=this.getPointerPosition(N),J=U.clone(),t=U.clone(),H=!this.swapRotateSlide&&!this.rotating&&(N.pointerType!=="mouse"||N.button===0)||this.swapRotateSlide&&this.sliding&&!this.rotating&&(N.pointerType!=="mouse"||N.button===1),{pointerId:K}=N,Y=performance.now();if(H)this.rotating={initial:J,last:t,position:U,pointerId:K,timeStamp:Y},this.lastDown=this.rotating,A.setPointerCapture(N.pointerId),this.dualPress=!1;else if(!this.sliding){const L=N.pointerType==="mouse"?N.button:void 0;this.sliding={initial:J,last:t,position:U,pointerId:K,button:L,timeStamp:Y},this.lastDown=this.sliding,A.setPointerCapture(N.pointerId),this.dualPress=this.rotating!=null&&Y-this.rotating.timeStamp{var H,K;((H=this.rotating)==null?void 0:H.pointerId)===N.pointerId?(this.rotating=null,A.releasePointerCapture(N.pointerId),this.dualPress&&this.sliding&&(A.releasePointerCapture(this.sliding.pointerId),this.sliding=null)):((K=this.sliding)==null?void 0:K.pointerId)===N.pointerId&&(this.sliding=null,A.releasePointerCapture(N.pointerId),this.dualPress&&this.rotating&&(A.releasePointerCapture(this.rotating.pointerId),this.rotating=null)),this.doublePressed=void 0,this.triplePressed=!1;const U=this.getPointerPosition(N),J=this.lastUp;this.lastLastUp=this.lastUp;const t=performance.now();if(this.lastUp={position:U,timeStamp:t},J&&J.position.distanceTo(U){var U,J;((U=this.rotating)==null?void 0:U.pointerId)===N.pointerId?this.rotating.position=this.getPointerPosition(N):((J=this.sliding)==null?void 0:J.pointerId)===N.pointerId&&(this.sliding.position=this.getPointerPosition(N))}),A.addEventListener("contextmenu",N=>{N.preventDefault()}),A.addEventListener("wheel",N=>{this.scroll.add(new G.Vector3(N.deltaX,N.deltaY,N.deltaZ)),N.preventDefault()})}getPointerPosition(A){const I=this.canvas.getBoundingClientRect();return new G.Vector2(A.clientX-I.left,A.clientY-I.top)}update(A,I,g){var D,i;if(!this.enable)return!1;const B=performance.now();let C=!1;if(this.dualPress&&this.rotating&&this.sliding){const w=[this.rotating.position.clone().sub(this.rotating.last),this.sliding.position.clone().sub(this.sliding.last)],s=w[0].dot(w[1]);if(s>=.2){const o=w[0].clone().add(w[1]),y=new G.Vector3(o.x,-o.y,0);y.multiplyScalar(this.slideSpeed*(this.reverseSwipe?1:-1)),y.applyQuaternion(I.quaternion),I.position.add(y),this.moveVelocity=y.clone().multiplyScalar(1/A),y.length()>sI&&(C=!0)}else if(s<=-.2){const o=this.sliding.last.clone().sub(this.rotating.last),y=o.length();o.multiplyScalar(1/y).normalize();const h=new G.Vector2(-o.y,o.x),k=[w[0].dot(o),w[1].dot(o)],R=[w[0].dot(h),w[1].dot(h)],F=this.rotating.last.clone().add(this.sliding.last).multiplyScalar(.5);let a=new G.Vector3;const S=g??(I instanceof G.Camera?I:void 0);if(S){const t=new G.Vector2(F.x/this.canvas.clientWidth*2-1,-(F.y/this.canvas.clientHeight)*2+1),H=new G.Raycaster;H.setFromCamera(t,S),a=H.ray.direction}const M=k[1]-k[0],c=a.multiplyScalar(M*this.slideSpeed);I.position.add(c),this.moveVelocity=c.clone().multiplyScalar(1/A),c.length()>sI&&(C=!0);const N=[Math.atan(R[0]/(-.5*y)),Math.atan(R[1]/(.5*y))],U=.5*(N[0]+N[1])*this.pointerRollScale,J=new G.Euler().setFromQuaternion(I.quaternion,"YXZ");J.z=Math.max(-Math.PI,Math.min(Math.PI,J.z+.5*U)),I.quaternion.setFromEuler(J),Math.abs(U)>sI&&(C=!0)}this.rotating.last.copy(this.rotating.position),this.sliding.last.copy(this.sliding.position)}else{const w=new G.Vector3;if(this.rotating&&!this.dualPress){const o=this.rotating.position.clone().sub(this.rotating.last);this.rotating.last.copy(this.rotating.position),w.set(o.x,o.y,0),w.multiplyScalar(this.rotateSpeed*(this.reverseRotate?-1:1)),this.rotateVelocity=w.clone().multiplyScalar(1/A),w.length()>sI&&(C=!0)}else this.rotateVelocity.multiplyScalar(Math.exp(-A/this.rotateInertia)),w.addScaledVector(this.rotateVelocity,A),this.rotateVelocity.length()*.1>sI&&(C=!0);const s=new G.Euler().setFromQuaternion(I.quaternion,"YXZ");if(s.y-=w.x,s.x=Math.max(-Math.PI/2,Math.min(Math.PI/2,s.x-w.y)),s.z*=Math.exp(-0*A),I.quaternion.setFromEuler(s),this.sliding&&!this.dualPress){const o=this.sliding.position.clone().sub(this.sliding.last);this.sliding.last.copy(this.sliding.position);const y=this.sliding.button!==2?new G.Vector3(o.x,0,o.y):new G.Vector3(o.x,-o.y,0);y.multiplyScalar(this.slideSpeed*(this.reverseSlide?-1:1)),y.applyQuaternion(I.quaternion),I.position.add(y),this.moveVelocity=y.clone().multiplyScalar(1/A),y.length()>sI&&(C=!0)}else{const o=new G.Vector3;if(this.sliding||this.rotating){const h=((D=this.lastDown)==null?void 0:D.last)??new G.Vector2,k=g??(I instanceof G.Camera?I:void 0);if(k){const R=this.pressMoveCenter?new G.Vector2(0,0):new G.Vector2(h.x/this.canvas.clientWidth*2-1,-(h.y/this.canvas.clientHeight)*2+1),F=new G.Raycaster;F.setFromCamera(R,k),o.copy(F.ray.direction).normalize()}if(this.doublePressed){this.pressHeld=!1;let R=(performance.now()-this.doublePressed)/this.pressMoveAccelMs;R=Math.max(0,Math.min(1,R)),o.multiplyScalar((this.triplePressed?this.triplePressMoveSpeed:this.doublePressMoveSpeed)*R)}else{let R=0;this.lastDown&&(R=(B-(((i=this.lastDown)==null?void 0:i.timeStamp)??B)-this.pressMoveDelayMs)/this.pressMoveAccelMs,this.lastDown.position.distanceTo(this.lastDown.initial)0&&(this.pressHeld=!0):this.pressHeld===void 0&&(this.pressHeld=!1)),this.pressHeld?o.multiplyScalar(this.pressMoveSpeed*Math.max(0,Math.min(1,R))):o.set(0,0,0)}}else this.pressHeld=void 0;const y=Math.exp(-A/this.moveInertia);this.moveVelocity.lerpVectors(o,this.moveVelocity,y),I.position.addScaledVector(this.moveVelocity,A),this.moveVelocity.length()*.1>sI&&(C=!0)}}const E=this.scroll.multiplyScalar(this.scrollSpeed);return E.set(E.x,E.z,E.y),this.reverseScroll&&E.multiplyScalar(-1),E.applyQuaternion(I.quaternion),I.position.add(E),E.length()>sI&&(C=!0),this.scroll.set(0,0,0),C}}const ko=` + `)}}).outputs.covsplat}function lh({splats:Q,extents:A,stepSize:I=1,pointRadius:g=.01,pointShadowScale:B=2,opacity:C=1,color:E}){const o=new a.Vector3,D=new a.Vector3,s=new a.Quaternion(0,0,0,1);E==null&&(E=(G,t)=>G.set(.55+.45*Math.cos(t.x*1),.55+.45*Math.cos(t.y*1),.55+.45*Math.cos(t.z*1)));const w=new a.Color;for(let G=A.min.z;G=g)return;const R=new a.Vector3().addVectors(y,k).normalize(),N=new a.Vector3().addVectors(k,F).normalize(),S=new a.Vector3().addVectors(F,y).normalize();s(h+1,y,R,S),s(h+1,R,k,N),s(h+1,S,N,F),s(h+1,R,N,S)}for(const h of[-1,1])for(const y of[-1,1])for(const k of[-1,1]){const F=new a.Vector3(h,0,0),R=new a.Vector3(0,y,0),N=new a.Vector3(0,0,k);s(0,F,R,N)}const w=Object.values(o),G=new a.Vector3(C,C,E),t=new a.Quaternion,c=typeof i=="function"?new a.Color:i;for(const h of w)t.setFromUnitVectors(new a.Vector3(0,0,-1),h),typeof i=="function"&&i(c,h),h.multiplyScalar(I),h.add(A),Q.pushSplat(h,G,t,1,c)}function ph({text:Q,font:A,fontSize:I,color:g,rgb:B,dotRadius:C,textAlign:E,lineHeight:i,objectScale:o}){A=A??"Arial",I=I??32,g=g??new a.Color(1,1,1),C=C??.8,E=E??"start",i=i??1,o=o??1;const D=Q.split(` +`),s=document.createElement("canvas"),w=s.getContext("2d");if(!w)throw new Error("Failed to create canvas context");w.font=`${I}px ${A}`,w.textAlign=E;const G=w.measureText(""),t=G.fontBoundingBoxAscent+G.fontBoundingBoxDescent;let c=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY,y=Number.POSITIVE_INFINITY,k=Number.NEGATIVE_INFINITY;for(let d=0;d0){const V=f/255;J.set(K-.5*(N-1),.5*(S-1)-d,0),J.multiplyScalar(o),e.pushSplat(J,n,H,V,B)}L+=4}const l=new jA({packedSplats:e});return l.recolor=g,l}function uh({url:Q,dotRadius:A,subXY:I,forEachSplat:g}){return A=A??.8,I=Math.max(1,Math.floor(I??1)),new jA({constructSplats:async B=>new Promise((C,E)=>{const i=new Image;i.crossOrigin="anonymous",i.onerror=E,i.onload=()=>{const{width:o,height:D}=i,s=document.createElement("canvas");s.width=o,s.height=D;const w=s.getContext("2d");if(!w){E(new Error("Failed to create canvas context"));return}w.imageSmoothingEnabled=!0,w.imageSmoothingQuality="high";const G=Math.round(o/I),t=Math.round(D/I);w.drawImage(i,0,0,G,t);try{const c=w.getImageData(0,0,G,t),h=new Uint8Array(c.data.buffer),y=new a.Vector3,k=new a.Vector3().setScalar(A),F=new a.Quaternion(0,0,0,1),R=new a.Color;let N=0;for(let S=0;S0){let J=e/255;R.set(h[U+0]/255,h[U+1]/255,h[U+2]/255),y.set(M-.5*(G-1),.5*(t-1)-S,0),k.setScalar(A),F.set(0,0,0,1);let n=!0;if(g){const H=g(G,t,N,y,k,F,J,R);J=H??J,n=H!==null}n&&B.pushSplat(y,k,F,J,R)}N+=1}C()}catch(c){E(c)}},i.src=Q})})}function Ph({box:Q,cells:A,dotScale:I,color:g,opacity:B}){A.x=Math.max(1,Math.round(A.x)),A.y=Math.max(1,Math.round(A.y)),A.z=Math.max(1,Math.round(A.z)),B=B??1;const C=A.x*A.y*A.z,E=AA("int",A.x),i=AA("int",A.y);AA("int",A.z);const o=iI(0),D=new _I({numSplats:C,generator:HA({index:"int"},{gsplat:j},({index:w})=>{if(!w)throw new Error("index is undefined");const G=PQ(w,E),t=Vg(w,E),c=PQ(t,i),h=Vg(t,i),y=yI({vectorType:"ivec3",x:G,y:c,z:h}),k=Ti(o),F=yI({vectorType:"ivec2",x:w,y:k}),R=TD(F),N=AA("vec3",Q.min),S=AA("vec3",Q.max),M=EI(S,N),U=Vg(xA(fI(y),R),AA("vec3",A));let e,J,n;g?(e=AA("float",g.r),J=AA("float",g.g),n=AA("float",g.b)):{r:e,g:J,b:n}=vI(U).outputs;const H=yI({vectorType:"vec4",r:e,g:J,b:n,a:AA("float",B)}),L=xA(N,FA(M,U)),l=fI(AA("float",I)),d=AA("vec4",new a.Quaternion(0,0,0,1));let K=BI({flags:Wg("uint","GSPLAT_FLAG_ACTIVE"),index:w,center:L,scales:l,quaternion:d,rgba:H});return K=s.applyGsplat(K),{gsplat:K}},{globals:()=>[rA]}),update:({time:w})=>{o.value=w,s.update(D),D.updateVersion()}}),s=new qI;return D}const bh={box:new a.Box3(new a.Vector3(-1,-1,-1),new a.Vector3(1,1,1)),density:100,fallDirection:new a.Vector3(-1,-3,1).normalize(),fallVelocity:.02,wanderScale:.04,wanderVariance:2,color1:new a.Color(1,1,1),color2:new a.Color(.5,.5,1),minScale:.001,maxScale:.005,anisoScale:new a.Vector3(1,1,1)},Th={box:new a.Box3(new a.Vector3(-2,-1,-2),new a.Vector3(2,5,2)),density:10,fallDirection:new a.Vector3(0,-1,0),fallVelocity:2,wanderScale:.1,wanderVariance:1,color1:new a.Color(1,1,1),color2:new a.Color(.25,.25,.5),minScale:.005,maxScale:.01,anisoScale:new a.Vector3(.1,1,.1)};function mh({box:Q,minY:A,numSplats:I,density:g,anisoScale:B,minScale:C,maxScale:E,fallDirection:i,fallVelocity:o,wanderScale:D,wanderVariance:s,color1:w,color2:G,opacity:t,onFrame:c}){Q=Q??new a.Box3(new a.Vector3(-1,-1,-1),new a.Vector3(1,1,1));const h=(Q.max.x-Q.min.x)*(Q.max.y-Q.min.y)*(Q.max.z-Q.min.z);g=g??100,I=I??Math.max(1,Math.min(1e6,Math.round(h*g)));const y=iI(C??.001),k=iI(E??.005),F=MI(((B==null?void 0:B.clone())??new a.Vector3(1,1,1)).normalize()),R=MI((i??new a.Vector3(0,-1,0)).normalize()),N=iI(o??.02),S=iI(D??.01),M=iI(s??2),U=MI(w??new a.Color(1,1,1)),e=MI(G??new a.Color(.5,.5,1)),J=iI(t??1),n=iI(0),H=MI(new a.Vector3(0,0,0)),L=MI(Q.min),l=MI(Q.max),d=iI(A??Number.NEGATIVE_INFINITY),K=EI(l,L),f=new _I({numSplats:I,generator:HA({index:"int"},{gsplat:j},({index:IA})=>{if(!IA)throw new Error("index not defined");const O=bQ(IA),CA=vI(O).outputs.w;let v=fI(O),gA=Zg(FA(CA,AA("float",100)));gA=TQ(FA(Wg("float","PI"),gA)),gA=xA(y,FA(gA,EI(k,y)));const W=FA(gA,F),b=Zg(FA(CA,AA("float",10))),u=Zg(CA),T=mE(U,e,u),p=FA(T,b),yA=bQ(yI({vectorType:"ivec2",x:IA,y:AA("int",6837)}));let sA=fI(yA),cA=FA(vI(yA).outputs.w,M);cA=xA(n,cA),v=xA(v,H);const kA=bE(v,AA("vec3",new a.Vector3(1,1,1)));v=xA(L,FA(K,kA));const oA=AA("vec4",new a.Quaternion(0,0,0,1));sA=TQ(xA(fI(cA),sA)),sA=FA(sA,S);let aA=xA(v,sA),$A=vI(aA).outputs.y;$A=TE(d,$A),aA=yI({vector:aA,y:$A});let TA=BI({flags:Wg("uint","GSPLAT_FLAG_ACTIVE"),index:IA,center:aA,scales:W,quaternion:oA,rgb:p,opacity:J});return TA=V.applyGsplat(TA),{gsplat:TA}},{globals:()=>[rA]}),update:({object:IA,time:O,deltaTime:CA})=>{n.value=O,V.update(f);const v=R.value.clone().multiplyScalar(N.value*CA);H.value.add(v),IA.visible=J.value>0,c==null||c({object:IA,time:O,deltaTime:CA}),f.updateVersion()}}),V=new qI;return{snow:f,min:L,max:l,minY:d,color1:U,color2:e,opacity:J,fallVelocity:N,wanderVariance:M,wanderScale:S,fallDirection:R,minScale:y,maxScale:k,anisoScale:F}}const Vh=Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_RAIN:Th,DEFAULT_SNOW:bh,snowBox:mh,staticBox:Ph},Symbol.toStringTag,{value:"Module"}));function Vo(Q){return HA({gsplat:j},{gsplat:j},({gsplat:A})=>{if(!A)throw new Error("No gsplat input");let I=KQ(A);const g=Q.applyGsplat(A),B=bA(g).outputs.center,C=KQ(g),E=FD(B,C),i=Ni(E,AA("float",0));I=kB(i,cB(I),I);const o=xA(FA(I,AA("float",.5)),AA("float",.5));return A=BI({gsplat:A,rgb:o}),{gsplat:A}})}function Zh(Q){Q.enableWorldToView=!0,Q.worldModifier=Vo(Q.context.worldToView),Q.updateGenerator()}function Zo(Q,A,I,g){return HA({gsplat:j},{gsplat:j},({gsplat:B})=>{if(!B)throw new Error("No gsplat input");let{center:C}=bA(B).outputs;C=Q.apply(C);const{z:E}=vI(C).outputs;let i=mD(cB(E),A,I);return i=kB(g,EI(AA("float",1),i),i),B=BI({gsplat:B,r:i,g:i,b:i}),{gsplat:B}})}function Oh(Q,A,I,g){Q.enableWorldToView=!0;const B=AA("float",A),C=AA("float",I),E=AA("bool",g??!1);return Q.worldModifier=Zo(Q.context.worldToView,B,C,E),Q.updateGenerator(),{minDepth:B,maxDepth:C,reverse:E}}const Wh=Object.freeze(Object.defineProperty({__proto__:null,makeDepthColorModifier:Zo,makeNormalColorModifier:Vo,setDepthColor:Oh,setWorldNormalColor:Zh},Symbol.toStringTag,{value:"Module"})),Oo=1,XQ=4,Wo=2,vo=5,Xo=1/5,vh=!1,jo=(Q,A)=>{var I,g,B,C;return Q.leftIsHand?new a.Vector3:new a.Vector3(((I=Q.left)==null?void 0:I.axes[2])??0,(((g=Q.left)==null?void 0:g.buttons[0].value)??0)-(((B=Q.left)==null?void 0:B.buttons[1].value)??0),((C=Q.left)==null?void 0:C.axes[3])??0)},zo=(Q,A)=>{var I;return Q.rightIsHand?new a.Vector3:new a.Vector3(((I=Q.right)==null?void 0:I.axes[2])??0,0,0)},_o=(Q,A)=>{var I,g;return Q.rightIsHand?!1:((g=(I=Q.right)==null?void 0:I.buttons[0])==null?void 0:g.pressed)??!1},$o=(Q,A)=>{var I,g;return Q.rightIsHand?!1:((g=(I=Q.right)==null?void 0:I.buttons[1])==null?void 0:g.pressed)??!1};var $g=(Q=>(Q.w="wrist",Q.t0="thumb-metacarpal",Q.t1="thumb-phalanx-proximal",Q.t2="thumb-phalanx-distal",Q.t3="thumb-tip",Q.i0="index-finger-metacarpal",Q.i1="index-finger-phalanx-proximal",Q.i2="index-finger-phalanx-intermediate",Q.i3="index-finger-phalanx-distal",Q.i4="index-finger-tip",Q.m0="middle-finger-metacarpal",Q.m1="middle-finger-phalanx-proximal",Q.m2="middle-finger-phalanx-intermediate",Q.m3="middle-finger-phalanx-distal",Q.m4="middle-finger-tip",Q.r0="ring-finger-metacarpal",Q.r1="ring-finger-phalanx-proximal",Q.r2="ring-finger-phalanx-intermediate",Q.r3="ring-finger-phalanx-distal",Q.r4="ring-finger-tip",Q.p0="pinky-finger-metacarpal",Q.p1="pinky-finger-phalanx-proximal",Q.p2="pinky-finger-phalanx-intermediate",Q.p3="pinky-finger-phalanx-distal",Q.p4="pinky-finger-tip",Q))($g||{});const cI=Object.keys($g),Xh=cI.length,jh={w:0,t0:1,t1:2,t2:3,t3:4,i0:5,i1:6,i2:7,i3:8,i4:9,m0:10,m1:11,m2:12,m3:13,m4:14,r0:15,r1:16,r2:17,r3:18,r4:19,p0:20,p1:21,p2:22,p3:23,p4:24},mB={w:.02,t0:.015,t1:.012,t2:.0105,t3:.0085,i0:.022,i1:.012,i2:.0085,i3:.0075,i4:.0065,m0:.021,m1:.012,m2:.008,m3:.0075,m4:.0065,r0:.019,r1:.011,r2:.0075,r3:.007,r4:.006,p0:.012,p1:.01,p2:.007,p3:.0065,p4:.0055},zh=[["w","t0","t1","t2","t3"],["w","i0","i1","i2","i3","i4"],["w","m0","m1","m2","m3","m4"],["w","r0","r1","r2","r3","r4"],["w","p0","p1","p2","p3","p4"]],_h=[[8,10,8,6],[8,19,14,8,6],[8,19,14,8,6],[8,19,14,8,6],[8,19,14,8,6]],$h=["t3","i4","m4","r4","p4"],Ay=["i4","m4","r4","p4"];var UB=(Q=>(Q.left="left",Q.right="right",Q))(UB||{});const Iy=Object.keys(UB),gy=/Quest|OculusBrowser|VisionOS|XRBrowser|Pico|Lynx|MagicLeap/i;function Qy(){const Q=navigator.userAgent??"";if(gy.test(Q))return!1;if(/Android/i.test(Q)||/Mobile/i.test(Q))return!0;const I=navigator.userAgentData;return I&&typeof I.mobile=="boolean"?I.mobile:!1}const ZA=class ZA{constructor(A){this.lastControllersUpdate=0,this.hands=[],this.renderer=A.renderer,this.xr=navigator.xr,this.mode="initializing",this.onEnterXr=A.onEnterXr,this.onExitXr=A.onExitXr,this.enableHands=A.enableHands??!1,this.controllers=A.controllers,Promise.resolve().then(()=>{var C;if(!this.xr){this.mode="not_supported";return}if(!A.allowMobileXr&&Qy()){this.mode="not_supported";return}this.enableHands&&(this.hands=[new Hg("left"),new Hg("right")]);let I,g;if(A.element?I=A.element:A.elementId?I=document.getElementById(A.elementId)??void 0:(I=ZA.createButton(),g=A.button==null||typeof A.button=="boolean"?{}:A.button),!I)throw new Error("No element or button provided");I.style.display="none",I.classList.add("hidden"),this.button=g,this.element=I;const B=(C=A.onMouseLeaveOpacity)==null?void 0:C.toString();return B!==void 0&&(I.addEventListener("mouseleave",()=>{I.style.opacity=B}),I.addEventListener("mouseenter",()=>{I.style.opacity=""})),this.initializeXr(A)}).then(()=>{var I;return(I=A.onReady)==null?void 0:I.call(A,this.mode!=="not_supported")}).catch(I=>{alert(`Error initializing SparkXr: ${I}`)})}async initializeXr(A){var D,s;if(!this.xr||!this.element)return;const I=this.element,g={vr:["immersive-vr"],ar:["immersive-ar"],arvr:["immersive-ar","immersive-vr"],vrar:["immersive-vr","immersive-ar"]}[A.mode??"vrar"];if(!g)throw new Error(`Invalid mode: ${A.mode}`);let B=null;for(const w of g)if(await this.xr.isSessionSupported(w)){B=w;break}if(!B){this.mode="not_supported";return}this.mode=B;const C=A.referenceSpaceType??"local";this.renderer.xr.enabled=!0,this.renderer.xr.setReferenceSpaceType(C),A.fixedFoveation!==void 0&&this.renderer.xr.setFoveation(A.fixedFoveation);const E=A.frameBufferScaleFactor??.5;this.renderer.xr.setFramebufferScaleFactor(E);const i=((D=A.sessionInit)==null?void 0:D.optionalFeatures)??[];A.enableHands&&i.push("hand-tracking");const o=((s=A.sessionInit)==null?void 0:s.requiredFeatures)??[];o.push(C),this.sessionInit={...A.sessionInit,optionalFeatures:i,requiredFeatures:o},I.addEventListener("click",()=>{this.toggleXr()}),this.updateElement()}async toggleXr(){var A,I,g;if(!(!this.xr||!this.sessionInit))if(this.session)this.session.end();else try{const B=this.mode,C=await this.xr.requestSession(B,this.sessionInit);this.session=C;const E=()=>{var D;C==null||C.removeEventListener("end",E),C==null||C.removeEventListener("visibilitychange",o),this.session=void 0,this.updateElement(),(D=this.onExitXr)==null||D.call(this)};let i=C.visibilityState;const o=()=>{(C==null?void 0:C.visibilityState)==="visible-blurred"&&i==="visible"&&(C==null||C.end()),i=C==null?void 0:C.visibilityState};return(A=this.session)==null||A.addEventListener("end",E),(I=this.session)==null||I.addEventListener("visibilitychange",o),await this.renderer.xr.setSession(this.session),(g=this.onEnterXr)==null?void 0:g.call(this)}catch(B){console.error("Error requesting XR session",B);return}}updateElement(){const A=this.mode,I=this.element;if(I){I.style.display="",I.classList.remove("hidden");const g=typeof this.button=="boolean"?{}:this.button;if(g){if(this.session){const B=(A==="immersive-vr"?g.exitVrHtml:g.exitArHtml)??g.exitXrHtml,C=(A==="immersive-vr"?g.exitVrText:g.exitArText)??g.exitXrText;B?I.innerHTML=B:C?I.textContent=C:I.textContent=A==="immersive-vr"?"EXIT VR":"EXIT AR"}else{const B=(A==="immersive-vr"?g.enterVrHtml:g.enterArHtml)??g.enterXrHtml,C=(A==="immersive-vr"?g.enterVrText:g.enterArText)??g.enterXrText;B?I.innerHTML=B:C?I.textContent=C:I.textContent=A==="immersive-vr"?"ENTER VR":"ENTER AR"}I.style.display=""}}}static createButton(){const A=document.createElement("button");return Object.assign(A.style,{position:"absolute",bottom:"20px",left:"50%",transform:"translateX(-50%)",padding:"40px 40px",border:"2px solid #fff",borderRadius:"16px",background:"rgba(0,0,0,0.1)",color:"#fff",font:"bold 28px sans-serif",textAlign:"center",userSelect:"none",zIndex:"999"}),document.body.appendChild(A),A}xrSupported(){return!!this.xr}left(){return this.hands[0]}right(){return this.hands[1]}updateControllers(A){var D,s,w,G,t,c,h,y,k,F,R,N;const I=A.parent,g=performance.now(),B=(g-(this.lastControllersUpdate||g))/1e3;this.lastControllersUpdate=g;const C={};for(const S of((D=this.renderer.xr.getSession())==null?void 0:D.inputSources)??[]){const M=S.gamepad;M&&(S.handedness==="left"||S.handedness==="right")&&(C[S.handedness]=M,S.handedness==="left"?C.leftIsHand=!!S.hand:S.handedness==="right"&&(C.rightIsHand=!!S.hand))}const E=(((s=this.controllers)==null?void 0:s.getRotate)??zo)(C,this);if(E.multiply(new a.Vector3(((w=this.controllers)==null?void 0:w.rotateSpeed)??XQ,((G=this.controllers)==null?void 0:G.rotateSpeed)??XQ,((t=this.controllers)==null?void 0:t.rollSpeed)??Wo)),E.manhattanLength()>0){E.multiplyScalar(B);const S=new a.Euler(-E.y,-E.x,E.z,"YXZ"),M=new a.Quaternion().setFromEuler(S),U=A.getWorldPosition(new a.Vector3);(c=I.parent)==null||c.worldToLocal(U),I.position.sub(U),I.position.applyQuaternion(M),I.position.add(U),I.quaternion.premultiply(M)}const i=(((h=this.controllers)==null?void 0:h.getMove)??jo)(C,this);let o=((y=this.controllers)==null?void 0:y.moveSpeed)??Oo;(((k=this.controllers)==null?void 0:k.getFast)??_o)(C,this)&&(o*=vo),(((F=this.controllers)==null?void 0:F.getSlow)??$o)(C,this)&&(o*=Xo),(R=this.controllers)!=null&&R.moveHeading?i.applyQuaternion(A.quaternion):(N=this.controllers)!=null&&N.moveDirection&&(bg.setFromQuaternion(A.quaternion,"YXZ"),bg.x=0,bg.z=0,zQ.setFromEuler(bg),i.applyQuaternion(zQ)),i.applyQuaternion(I.quaternion),i.multiplyScalar(B*o),I.position.add(i)}updateHands({xrFrame:A}){const I=this.renderer.xr.getSession();if(!I)return;const g=this.renderer.xr.getReferenceSpace();if(g&&A.getJointPose){for(const B of this.hands)B&&(B.lastJoints=B.joints,B.joints=void 0);for(const B of I.inputSources){if(!B.hand)continue;const C=B.handedness,E=this.hands[C==="left"?0:1];if(E)for(const i of cI){const o=B.hand.get($g[i]);if(o){const D=A.getJointPose(o,g);if(D){const{position:s,orientation:w}=D.transform;E.joints||(E.joints={}),E.joints[i]={position:new a.Vector3(s.x,s.y,s.z),quaternion:new a.Quaternion(w.x,w.y,w.z,w.w),radius:mB[i]}}}}}}}makeJointSplats(A){const I=new Aw(A);return I.onFrame=()=>{const g=this.hands[A==="left"?0:1],B=g==null?void 0:g.joints;I.updateJoints(B)},I}snapshotHands(A){var g,B;const I=[(g=this.hands[0])==null?void 0:g.snapshotJoints(),(B=this.hands[1])==null?void 0:B.snapshotJoints()];return{time:A,hands:I}}};ZA.JointEnum=$g,ZA.JOINT_IDS=cI,ZA.NUM_JOINTS=Xh,ZA.JOINT_INDEX=jh,ZA.JOINT_RADIUS=mB,ZA.JOINT_SEGMENTS=zh,ZA.JOINT_SEGMENT_STEPS=_h,ZA.JOINT_TIPS=$h,ZA.FINGER_TIPS=Ay,ZA.Hand=UB,ZA.HANDS=Iy;let jQ=ZA;const rQ=Q=>Math.round(Q*1e4)/1e4,bg=new a.Euler(0,0,0,"YXZ"),zQ=new a.Quaternion,By=new a.Quaternion;function Cy(Q,A){if(!Q.length)return null;const I=Q[0],g=Q[Q.length-1];if(Ag.time)return null;const B=Dy(Q,A);if(B===-1)return null;const C=Q[B],E=Q[B+1];if(!E)return iy(C,A);const i=E.time-C.time,o=i>0?(A-C.time)/i:0;return Ey(C,E,o,A)}function Ey(Q,A,I,g){const B=Math.max(Q.hands.length,A.hands.length),C=Array.from({length:B},(E,i)=>oy(Q.hands[i],A.hands[i],I));return{time:g,hands:C}}function iy(Q,A){return{time:A,hands:Q.hands.map(I=>sy(I))}}class Hg{constructor(A){this.hand=A}static newFromSnapshot(A,I){const g=new Hg(A);g.joints={};for(const B of cI){const C=I[B];C&&(g.joints[B]={position:new a.Vector3(C.pos[0],C.pos[1],C.pos[2]),quaternion:new a.Quaternion(C.quat[0],C.quat[1],C.quat[2],C.quat[3]),radius:C.radius})}return g}valid(){return!!this.joints}snapshotJoints(){if(!this.joints)return;const A={};for(const I of cI){const g=this.joints[I];g&&(A[I]={pos:g.position.toArray().map(rQ),quat:g.quaternion.toArray().map(rQ),radius:rQ(g.radius)})}return A}toFlatArray(){if(!this.joints)return;const A=new Float32Array(1+25*7);A[0]=this.hand==="left"?0:1;let I=1;for(const g of cI){const B=this.joints[g];B&&(A[I]=B.position.x,A[I+1]=B.position.y,A[I+2]=B.position.z,A[I+3]=B.quaternion.x,A[I+4]=B.quaternion.y,A[I+5]=B.quaternion.z,A[I+6]=B.quaternion.w),I+=7}return A}}function Dy(Q,A){let I=0,g=Q.length-1;for(;I<=g;){const B=I+g>>1;Q[B].time<=A?I=B+1:g=B-1}return g}function oy(Q,A,I=0){if(!Q||!A)return;const g={};for(const B of cI){const C=wy(Q[B],A[B],I);C&&(g[B]=C)}return g}function wy(Q,A,I=0){if(!Q||!A)return;const g=Q.pos.map((E,i)=>E+(A.pos[i]-E)*I),B=zQ.fromArray(Q.quat).slerp(By.fromArray(A.quat),I).toArray(),C=Q.radius+(A.radius-Q.radius)*I;return{pos:g,quat:B,radius:C}}function sy(Q){if(!Q)return;const A={};for(const I of cI){const g=Q[I];g&&(A[I]=ay(g))}return A}function ay(Q){return{pos:[...Q.pos],quat:[...Q.quat],radius:Q.radius}}class Aw extends jA{constructor(A){super({}),this.scratchCenter=new a.Vector3,this.scratchQuat=new a.Quaternion(0,0,0,1),this.scratchScales=new a.Vector3().setScalar(.01),this.scratchColor=new a.Color(1,1,1),this.hand=A}updateJoints(A){if(this.visible=!1,!A||!this.packedSplats)return;this.visible=!0;let I=0;for(const g of cI){const B=A[g];if(!B)continue;this.scratchCenter.copy(B.position),this.scratchQuat.copy(B.quaternion),this.scratchScales.set(B.radius,.75*B.radius,1.5*B.radius),this.packedSplats.setSplat(I,this.scratchCenter,this.scratchScales,this.scratchQuat,.75,this.scratchColor),I+=1}this.packedSplats.numSplats=I,this.packedSplats.needsUpdate=!0,this.numSplats=I,this.updateVersion()}}const Gy=.5,ty=.5,hy=0;var hQ=(Q=>(Q.w="wrist",Q.t0="thumb-metacarpal",Q.t1="thumb-phalanx-proximal",Q.t2="thumb-phalanx-distal",Q.t3="thumb-tip",Q.i0="index-finger-metacarpal",Q.i1="index-finger-phalanx-proximal",Q.i2="index-finger-phalanx-intermediate",Q.i3="index-finger-phalanx-distal",Q.i4="index-finger-tip",Q.m0="middle-finger-metacarpal",Q.m1="middle-finger-phalanx-proximal",Q.m2="middle-finger-phalanx-intermediate",Q.m3="middle-finger-phalanx-distal",Q.m4="middle-finger-tip",Q.r0="ring-finger-metacarpal",Q.r1="ring-finger-phalanx-proximal",Q.r2="ring-finger-phalanx-intermediate",Q.r3="ring-finger-phalanx-distal",Q.r4="ring-finger-tip",Q.p0="pinky-finger-metacarpal",Q.p1="pinky-finger-phalanx-proximal",Q.p2="pinky-finger-phalanx-intermediate",Q.p3="pinky-finger-phalanx-distal",Q.p4="pinky-finger-tip",Q))(hQ||{});const LB=Object.keys(hQ),yy=LB.length,cy={w:0,t0:1,t1:2,t2:3,t3:4,i0:5,i1:6,i2:7,i3:8,i4:9,m0:10,m1:11,m2:12,m3:13,m4:14,r0:15,r1:16,r2:17,r3:18,r4:19,p0:20,p1:21,p2:22,p3:23,p4:24},sg={w:.02,t0:.02,t1:.014,t2:.0115,t3:.0085,i0:.022,i1:.012,i2:.0085,i3:.0075,i4:.0065,m0:.021,m1:.012,m2:.008,m3:.0075,m4:.0065,r0:.019,r1:.011,r2:.0075,r3:.007,r4:.006,p0:.012,p1:.01,p2:.007,p3:.0065,p4:.0055},Iw=[["w","t0","t1","t2","t3"],["w","i0","i1","i2","i3","i4"],["w","m0","m1","m2","m3","m4"],["w","r0","r1","r2","r3","r4"],["w","p0","p1","p2","p3","p4"]],gw=[[8,10,8,6],[8,19,14,8,6],[8,19,14,8,6],[8,19,14,8,6],[8,19,14,8,6]],ky=["t3","i4","m4","r4","p4"],Fy=["i4","m4","r4","p4"];var HB=(Q=>(Q.left="left",Q.right="right",Q))(HB||{});const AQ=Object.keys(HB);class Sy{constructor(){this.hands={},this.last={},this.values={},this.tests={},this.lastTests={},this.updated=!1}update({xr:A,xrFrame:I}){const g=A.getSession();if(!g)return;const B=A.getReferenceSpace();if(B&&I.getJointPose){this.last=this.hands,this.lastTests=this.tests,this.hands={},this.values={},this.tests={};for(const C of g.inputSources){if(!C.hand)continue;const E=C.handedness;this.hands[E]={};for(const i of LB){const o=C.hand.get(hQ[i]);if(o){const D=I.getJointPose(o,B);if(D){const{position:s,orientation:w}=D.transform;this.hands[E][i]={position:new SA.Vector3(s.x,s.y,s.z),quaternion:new SA.Quaternion(w.x,w.y,w.z,w.w),radius:D.radius||.001}}}}}for(const C of AQ)for(const{key:E,value:i}of[{key:`${C}AllTips`,value:this.allTipsTouching(C)},{key:`${C}IndexThumb`,value:this.touching(C,"i4",C,"t3")},{key:`${C}MiddleThumb`,value:this.touching(C,"m4",C,"t3")},{key:`${C}RingThumb`,value:this.touching(C,"r4",C,"t3")},{key:`${C}PinkyThumb`,value:this.touching(C,"p4",C,"t3")},{key:`${C}TriTips`,value:this.triTipsTouching(C)}])this.values[E]=i,this.tests[E]=i===1?!0:i===0?!1:this.lastTests[E]??!1}}makeGhostMesh(){const A=new SA.Vector3,I=new SA.Vector3(.01,.01,.01),g=new SA.Quaternion(0,0,0,1),B=new SA.Color(1,1,1),C=Math.PI*3;new SA.Color(1,1,1);let E=1;const i=new jA({onFrame:()=>{if(!i.packedSplats)return;let o=0;for(const D of AQ){const s=this.hands[D];for(const[w,G]of Iw.entries())for(let t=1;t.8&&(M*=Math.sqrt(1-((R-.8)/.2)**2)),I.set(.65*M,.5*M,.003),B.set(.55+.45*Math.sin(A.x*C),.55+.45*Math.sin(A.y*C),.55+.45*Math.sin(A.z*C)),D==="right"&&B.set(1-B.r,1-B.g,1-B.b),E=.75}i.packedSplats.setSplat(o,A,I,g,E,B),o+=1}}}i.packedSplats.numSplats=o,i.packedSplats.needsUpdate=!0,i.numSplats=o,i.updateVersion()}});return i}distance(A,I,g,B,C=!1){const E=C?this.last[A]:this.hands[A],i=C?this.last[g]:this.hands[g],o=E==null?void 0:E[I],D=i==null?void 0:i[B];return!o||!D?Number.POSITIVE_INFINITY:o.position.distanceTo(D.position)}separation(A,I,g,B,C=!1){const E=this.distance(A,I,g,B,C);return E===Number.POSITIVE_INFINITY?Number.POSITIVE_INFINITY:E-sg[I]-sg[B]}touching(A,I,g,B,C=!1){const E=this.separation(A,I,g,B,C);return E===Number.POSITIVE_INFINITY?Number.POSITIVE_INFINITY:1-Math.max(0,Math.min(1,E/.01-hy))}allTipsTouching(A,I=!1){return Math.min(this.touching(A,"t3",A,"i4",I),this.touching(A,"i4",A,"m4",I),this.touching(A,"m4",A,"r4",I),this.touching(A,"r4",A,"p4",I))}triTipsTouching(A,I=!1){return Math.min(this.touching(A,"t3",A,"i4",I),this.touching(A,"i4",A,"m4",I),this.touching(A,"m4",A,"t3",I))}}class Ny{constructor({xrHands:A,control:I,moveInertia:g,rotateInertia:B}){this.lastGrip={},this.lastPivot=new SA.Vector3,this.rotateVelocity=0,this.velocity=new SA.Vector3,this.xrHands=A,this.control=I,this.moveInertia=g??Gy,this.rotateInertia=B??ty}update(A){var C,E,i,o,D;const I={};for(const s of AQ){const w=this.xrHands.hands[s];w&&this.xrHands.tests[`${s}MiddleThumb`]&&(I[s]=new SA.Vector3().add(((C=w.t3)==null?void 0:C.position)??new SA.Vector3).add(((E=w.i4)==null?void 0:E.position)??new SA.Vector3).add(((i=w.m4)==null?void 0:i.position)??new SA.Vector3).add(((o=w.r4)==null?void 0:o.position)??new SA.Vector3).add(((D=w.p4)==null?void 0:D.position)??new SA.Vector3).multiplyScalar(1/5))}if(I.left&&I.right&&this.lastGrip.left&&this.lastGrip.right){const s=I.left.clone().add(I.right).multiplyScalar(.5),w=this.lastGrip.left.clone().add(this.lastGrip.right).multiplyScalar(.5);this.lastPivot=s;const G=s.clone().applyMatrix4(this.control.matrix);G.sub(w.clone().applyMatrix4(this.control.matrix)),G.multiplyScalar(1/A),this.velocity.lerp(G,1-Math.exp(-20*A));const t=Math.atan2(I.left.z-s.z,I.left.x-s.x),c=Math.atan2(this.lastGrip.left.z-w.z,this.lastGrip.left.x-w.x);let h=t-c;h>Math.PI?h-=Math.PI*2:h<-Math.PI&&(h+=Math.PI*2);const y=h/A,k=Math.exp(-20*A);this.rotateVelocity=this.rotateVelocity*k+y*(1-k)}else if(this.rotateVelocity*=Math.exp(-A/this.rotateInertia),I.left&&this.lastGrip.left){const s=I.left.clone().applyMatrix4(this.control.matrix);s.sub(this.lastGrip.left.clone().applyMatrix4(this.control.matrix)),s.multiplyScalar(1/A),this.velocity.lerp(s,1-Math.exp(-20*A))}else if(I.right&&this.lastGrip.right){const s=I.right.clone().applyMatrix4(this.control.matrix);s.sub(this.lastGrip.right.clone().applyMatrix4(this.control.matrix)),s.multiplyScalar(1/A),this.velocity.lerp(s,1-Math.exp(-20*A))}else this.velocity.multiplyScalar(Math.exp(-A/this.moveInertia));const g=this.lastPivot.clone().negate(),B=new SA.Matrix4().makeTranslation(g).premultiply(new SA.Matrix4().makeRotationY(this.rotateVelocity*A)).premultiply(new SA.Matrix4().makeTranslation(this.lastPivot));this.control.matrix.multiply(B),this.control.matrix.decompose(this.control.position,this.control.quaternion,this.control.scale),this.control.updateMatrixWorld(!0),this.control.position.sub(this.velocity.clone().multiplyScalar(A)),this.lastGrip=I}}const Ry=1,My=2,ey=.002,Jy=.006,Uy=.0015,Ly=.15,Hy=.15,ny=.1,Yy=2,ry=0,Ky=500,dy=500,qy=200,ly=400,xy=25,DI=1e-4,fy={KeyW:new a.Vector3(0,0,-1),KeyS:new a.Vector3(0,0,1),KeyA:new a.Vector3(-1,0,0),KeyD:new a.Vector3(1,0,0),KeyE:new a.Vector3(0,1,0),KeyQ:new a.Vector3(0,-1,0)},py={ArrowUp:new a.Vector3(0,0,-1),ArrowDown:new a.Vector3(0,0,1),ArrowLeft:new a.Vector3(-1,0,0),ArrowRight:new a.Vector3(1,0,0),PageUp:new a.Vector3(0,1,0),PageDown:new a.Vector3(0,-1,0)};new a.Vector3(0,0,1),new a.Vector3(0,0,-1);const uy={Home:new a.Vector3(0,-1,0),End:new a.Vector3(0,1,0),Insert:new a.Vector3(-1,0,0),Delete:new a.Vector3(1,0,0)};class Py{constructor({canvas:A}){this.lastTime=0,this.fpsMovement=new Qw({}),this.pointerControls=new Bw({canvas:A})}update(A,I){const g=performance.now(),B=(g-(this.lastTime||g))/1e3;this.lastTime=g;let C=this.fpsMovement.update(B,A);return this.pointerControls.update(B,A,I)&&(C=!0),C}}class Qw{constructor({moveSpeed:A,rollSpeed:I,stickThreshold:g,rotateSpeed:B,keycodeMoveMapping:C,keycodeRotateMapping:E,gamepadMapping:i,capsMultiplier:o,shiftMultiplier:D,ctrlMultiplier:s,xr:w}={}){this.enable=!0,this.extraMove=new a.Vector3,this.moveSpeed=A??Ry,this.rollSpeed=I??My,this.stickThreshold=g??ny,this.rotateSpeed=B??Yy,this.keycodeMoveMapping=C??{...fy,...py},this.keycodeRotateMapping=E??{...uy},this.gamepadMapping=i??{4:"rollLeft",5:"rollRight",6:"ctrl",7:"shift"},this.capsMultiplier=o??10,this.shiftMultiplier=D??5,this.ctrlMultiplier=s??1/5,this.xr=w,this.keydown={},this.keycode={},document.addEventListener("keydown",G=>{this.keydown[G.key]=!0,this.keycode[G.code]=!0}),document.addEventListener("keyup",G=>{this.keydown[G.key]=!1,this.keycode[G.code]=!1}),window.addEventListener("blur",()=>{this.keydown={},this.keycode={}})}update(A,I){var w,G;if(!this.enable)return!1;const g=[new a.Vector2,new a.Vector2],B=navigator.getGamepads()[0];B&&(g[0].set(B.axes[0],B.axes[1]),g[1].set(B.axes[2],B.axes[3]));const C=(B==null?void 0:B.buttons.map(t=>t.pressed))||[],E=Array.from(((G=(w=this.xr)==null?void 0:w.getSession())==null?void 0:G.inputSources)??[]);for(const t of E){const c=t.gamepad;if(c)switch(t.handedness){case"none":{g[0].x+=c.axes[0],g[0].y+=c.axes[1],g[1].x+=c.axes[2],g[1].y+=c.axes[3];break}case"left":{g[0].x+=c.axes[2],g[0].y+=c.axes[3];break}case"right":{g[1].x+=c.axes[2],g[1].y+=c.axes[3];break}}}for(const t of g)t.x=Math.abs(t.x)>=this.stickThreshold?t.x:0,t.y=Math.abs(t.y)>=this.stickThreshold?t.y:0;const i=new a.Vector3(g[1].x,g[1].y,0).multiplyScalar(this.rotateSpeed);for(const[t,c]of Object.entries(this.keycodeRotateMapping))this.keycode[t]&&i.add(c);for(const t in this.gamepadMapping)if(C[Number.parseInt(t)])switch(this.gamepadMapping[t]){case"rollLeft":i.z+=1;break;case"rollRight":i.z-=1;break}i.multiply(new a.Vector3(this.rotateSpeed,this.rotateSpeed,this.rollSpeed));let o=i.length()>DI;if(i.manhattanLength()>0){i.multiplyScalar(A);const t=new a.Euler().setFromQuaternion(I.quaternion,"YXZ");t.y-=i.x,t.x=Math.max(-Math.PI/2,Math.min(Math.PI/2,t.x-i.y)),t.z=Math.max(-Math.PI,Math.min(Math.PI,t.z+i.z)),I.quaternion.setFromEuler(t)}const D=new a.Vector3(g[0].x,0,g[0].y);D.add(this.extraMove);for(const[t,c]of Object.entries(this.keycodeMoveMapping))this.keycode[t]&&D.add(c);let s=1;this.keydown.CapsLock&&(s*=this.capsMultiplier),(this.keycode.ShiftLeft||this.keycode.ShiftRight)&&(s*=this.shiftMultiplier),(this.keycode.ControlLeft||this.keycode.ControlRight)&&(s*=this.ctrlMultiplier);for(const t in this.gamepadMapping)if(C[Number.parseInt(t)])switch(this.gamepadMapping[t]){case"shift":s*=this.shiftMultiplier;break;case"ctrl":s*=this.ctrlMultiplier;break}return D.length()>DI&&(o=!0),D.applyQuaternion(I.quaternion),I.position.add(D.multiplyScalar(this.moveSpeed*s*A)),o}}class Bw{constructor({canvas:A,rotateSpeed:I,slideSpeed:g,scrollSpeed:B,swapRotateSlide:C,reverseRotate:E,reverseSlide:i,reverseSwipe:o,reverseScroll:D,moveInertia:s,rotateInertia:w,pointerRollScale:G,doublePress:t,pressMoveDelayMs:c,pressMoveAccelMs:h,pressMoveSpeed:y,doublePressMoveSpeed:k,triplePressMoveSpeed:F,pressMoveCenter:R}){this.enable=!0,this.canvas=A,this.rotateSpeed=I??ey,this.slideSpeed=g??Jy,this.scrollSpeed=B??Uy,this.swapRotateSlide=C??!1,this.reverseRotate=E??(DQ()||jI()),this.reverseSlide=i??!1,this.reverseSwipe=o??!1,this.reverseScroll=D??!1,this.moveInertia=s??Hy,this.rotateInertia=w??Ly,this.pointerRollScale=G??ry,this.doublePress=t??(()=>{}),this.doublePressLimitMs=ly,this.doublePressDistance=xy,this.pressMoveDelayMs=c??Ky,this.pressMoveAccelMs=h??dy,this.pressMoveSpeed=y??0,this.doublePressMoveSpeed=k??this.pressMoveSpeed*5,this.triplePressMoveSpeed=F??this.doublePressMoveSpeed*5,this.pressMoveCenter=R??!0,this.doublePressed=void 0,this.triplePressed=!1,this.lastUp=null,this.lastLastUp=null,this.rotating=null,this.sliding=null,this.lastDown=null,this.dualPress=!1,this.scroll=new a.Vector3,this.rotateVelocity=new a.Vector3,this.moveVelocity=new a.Vector3,A.addEventListener("pointerdown",S=>{const M=this.getPointerPosition(S),U=M.clone(),e=M.clone(),J=!this.swapRotateSlide&&!this.rotating&&(S.pointerType!=="mouse"||S.button===0)||this.swapRotateSlide&&this.sliding&&!this.rotating&&(S.pointerType!=="mouse"||S.button===1),{pointerId:n}=S,H=performance.now();if(J)this.rotating={initial:U,last:e,position:M,pointerId:n,timeStamp:H},this.lastDown=this.rotating,A.setPointerCapture(S.pointerId),this.dualPress=!1;else if(!this.sliding){const L=S.pointerType==="mouse"?S.button:void 0;this.sliding={initial:U,last:e,position:M,pointerId:n,button:L,timeStamp:H},this.lastDown=this.sliding,A.setPointerCapture(S.pointerId),this.dualPress=this.rotating!=null&&H-this.rotating.timeStamp{var J,n;((J=this.rotating)==null?void 0:J.pointerId)===S.pointerId?(this.rotating=null,A.releasePointerCapture(S.pointerId),this.dualPress&&this.sliding&&(A.releasePointerCapture(this.sliding.pointerId),this.sliding=null)):((n=this.sliding)==null?void 0:n.pointerId)===S.pointerId&&(this.sliding=null,A.releasePointerCapture(S.pointerId),this.dualPress&&this.rotating&&(A.releasePointerCapture(this.rotating.pointerId),this.rotating=null)),this.doublePressed=void 0,this.triplePressed=!1;const M=this.getPointerPosition(S),U=this.lastUp;this.lastLastUp=this.lastUp;const e=performance.now();if(this.lastUp={position:M,timeStamp:e},U&&U.position.distanceTo(M){var M,U;((M=this.rotating)==null?void 0:M.pointerId)===S.pointerId?this.rotating.position=this.getPointerPosition(S):((U=this.sliding)==null?void 0:U.pointerId)===S.pointerId&&(this.sliding.position=this.getPointerPosition(S))}),A.addEventListener("contextmenu",S=>{S.preventDefault()}),A.addEventListener("wheel",S=>{this.scroll.add(new a.Vector3(S.deltaX,S.deltaY,S.deltaZ)),S.preventDefault()})}getPointerPosition(A){const I=this.canvas.getBoundingClientRect();return new a.Vector2(A.clientX-I.left,A.clientY-I.top)}update(A,I,g){var i,o;if(!this.enable)return!1;const B=performance.now();let C=!1;if(this.dualPress&&this.rotating&&this.sliding){const D=[this.rotating.position.clone().sub(this.rotating.last),this.sliding.position.clone().sub(this.sliding.last)],s=D[0].dot(D[1]);if(s>=.2){const w=D[0].clone().add(D[1]),G=new a.Vector3(w.x,-w.y,0);G.multiplyScalar(this.slideSpeed*(this.reverseSwipe?1:-1)),G.applyQuaternion(I.quaternion),I.position.add(G),this.moveVelocity=G.clone().multiplyScalar(1/A),G.length()>DI&&(C=!0)}else if(s<=-.2){const w=this.sliding.last.clone().sub(this.rotating.last),G=w.length();w.multiplyScalar(1/G).normalize();const t=new a.Vector2(-w.y,w.x),c=[D[0].dot(w),D[1].dot(w)],h=[D[0].dot(t),D[1].dot(t)],y=this.rotating.last.clone().add(this.sliding.last).multiplyScalar(.5);let k=new a.Vector3;const F=g??(I instanceof a.Camera?I:void 0);if(F){const e=new a.Vector2(y.x/this.canvas.clientWidth*2-1,-(y.y/this.canvas.clientHeight)*2+1),J=new a.Raycaster;J.setFromCamera(e,F),k=J.ray.direction}const R=c[1]-c[0],N=k.multiplyScalar(R*this.slideSpeed);I.position.add(N),this.moveVelocity=N.clone().multiplyScalar(1/A),N.length()>DI&&(C=!0);const S=[Math.atan(h[0]/(-.5*G)),Math.atan(h[1]/(.5*G))],M=.5*(S[0]+S[1])*this.pointerRollScale,U=new a.Euler().setFromQuaternion(I.quaternion,"YXZ");U.z=Math.max(-Math.PI,Math.min(Math.PI,U.z+.5*M)),I.quaternion.setFromEuler(U),Math.abs(M)>DI&&(C=!0)}this.rotating.last.copy(this.rotating.position),this.sliding.last.copy(this.sliding.position)}else{const D=new a.Vector3;if(this.rotating&&!this.dualPress){const w=this.rotating.position.clone().sub(this.rotating.last);this.rotating.last.copy(this.rotating.position),D.set(w.x,w.y,0),D.multiplyScalar(this.rotateSpeed*(this.reverseRotate?-1:1)),this.rotateVelocity=D.clone().multiplyScalar(1/A),D.length()>DI&&(C=!0)}else this.rotateVelocity.multiplyScalar(Math.exp(-A/this.rotateInertia)),D.addScaledVector(this.rotateVelocity,A),this.rotateVelocity.length()*.1>DI&&(C=!0);const s=new a.Euler().setFromQuaternion(I.quaternion,"YXZ");if(s.y-=D.x,s.x=Math.max(-Math.PI/2,Math.min(Math.PI/2,s.x-D.y)),s.z*=Math.exp(-0*A),I.quaternion.setFromEuler(s),this.sliding&&!this.dualPress){const w=this.sliding.position.clone().sub(this.sliding.last);this.sliding.last.copy(this.sliding.position);const G=this.sliding.button!==2?new a.Vector3(w.x,0,w.y):new a.Vector3(w.x,-w.y,0);G.multiplyScalar(this.slideSpeed*(this.reverseSlide?-1:1)),G.applyQuaternion(I.quaternion),I.position.add(G),this.moveVelocity=G.clone().multiplyScalar(1/A),G.length()>DI&&(C=!0)}else{const w=new a.Vector3;if(this.sliding||this.rotating){const t=((i=this.lastDown)==null?void 0:i.last)??new a.Vector2,c=g??(I instanceof a.Camera?I:void 0);if(c){const h=this.pressMoveCenter?new a.Vector2(0,0):new a.Vector2(t.x/this.canvas.clientWidth*2-1,-(t.y/this.canvas.clientHeight)*2+1),y=new a.Raycaster;y.setFromCamera(h,c),w.copy(y.ray.direction).normalize()}if(this.doublePressed){this.pressHeld=!1;let h=(performance.now()-this.doublePressed)/this.pressMoveAccelMs;h=Math.max(0,Math.min(1,h)),w.multiplyScalar((this.triplePressed?this.triplePressMoveSpeed:this.doublePressMoveSpeed)*h)}else{let h=0;this.lastDown&&(h=(B-(((o=this.lastDown)==null?void 0:o.timeStamp)??B)-this.pressMoveDelayMs)/this.pressMoveAccelMs,this.lastDown.position.distanceTo(this.lastDown.initial)0&&(this.pressHeld=!0):this.pressHeld===void 0&&(this.pressHeld=!1)),this.pressHeld?w.multiplyScalar(this.pressMoveSpeed*Math.max(0,Math.min(1,h))):w.set(0,0,0)}}else this.pressHeld=void 0;const G=Math.exp(-A/this.moveInertia);this.moveVelocity.lerpVectors(w,this.moveVelocity,G),I.position.addScaledVector(this.moveVelocity,A),this.moveVelocity.length()*.1>DI&&(C=!0)}}const E=this.scroll.multiplyScalar(this.scrollSpeed);return E.set(E.x,E.z,E.y),this.reverseScroll&&E.multiplyScalar(-1),E.applyQuaternion(I.quaternion),I.position.add(E),E.length()>DI&&(C=!0),this.scroll.set(0,0,0),C}}const Cw=` precision highp float; precision highp int; @@ -2433,5 +2108,5 @@ void main() { fragColor = rgba; #endif } -`;class Xk{constructor(A){this.portalPairs=[],this.lastCameraWorld=new G.Vector3().setScalar(Number.NaN),this.prefetchActive=!1,this.scratch={quat:new G.Quaternion,scale:new G.Vector3,center0:new G.Vector3,center1:new G.Vector3,normal0:new G.Vector3,normal1:new G.Vector3,centerT:new G.Vector3,normalT:new G.Vector3,prevCameraWorld:new G.Vector3,currCameraWorld:new G.Vector3,hit:new G.Vector3,offset:new G.Vector3,camWorld:new G.Matrix4,newCamWorld:new G.Matrix4,invCamLocal:new G.Matrix4,newLocalFrame:new G.Matrix4,cameraWorldPos:new G.Vector3,viewDir:new G.Vector3,portalCenter:new G.Vector3,toPortal:new G.Vector3},this.renderer=A.renderer,this.scene=A.scene,this.camera=A.camera,this.localFrame=A.localFrame,this.defaultPortalRadius=A.defaultPortalRadius??1,this.portalCrossEps=A.portalCrossEps??1e-6;const I=A.sparkOptions??{};this.portalRenderer=new tg({renderer:this.renderer,extraUniforms:{diskCenter:{value:new G.Vector3},diskNormal:{value:new G.Vector3},diskRadius:{value:0},diskTwoSided:{value:!1}},fragmentShader:ko,...I}),this.scene.add(this.portalRenderer),this.behindRenderer=new tg({renderer:this.renderer,enableDriveLod:!1,...I}),this.camera2=this.camera.clone(),this.scene.add(this.camera2)}addPortalPair(A){const I={entryPortal:new G.Object3D,exitPortal:new G.Object3D,radius:(A==null?void 0:A.radius)??this.defaultPortalRadius,onCross:A==null?void 0:A.onCross,_entryBefore:new G.Matrix4,_exitBefore:new G.Matrix4};return this.scene.add(I.entryPortal),this.scene.add(I.exitPortal),this.portalPairs.push(I),I}removePortalPair(A){const I=this.portalPairs.indexOf(A);I!==-1&&(this.scene.remove(A.entryPortal),this.scene.remove(A.exitPortal),this.portalPairs.splice(I,1))}getEntryToExitTransform(A){return A.entryPortal.matrixWorld.clone().invert().premultiply(A.exitPortal.matrixWorld)}getExitToEntryTransform(A){return A.exitPortal.matrixWorld.clone().invert().premultiply(A.entryPortal.matrixWorld)}setPortalDiskUniforms(A,I,g,B){A.updateMatrixWorld(!0),I.updateMatrixWorld(!0);const C=A.matrixWorld.clone().invert(),E=I.matrixWorld.clone().premultiply(C),D=new G.Quaternion,i=this.portalRenderer.uniforms;E.decompose(i.diskCenter.value,D,new G.Vector3),i.diskNormal.value.set(0,0,1).applyQuaternion(D),i.diskRadius.value=g,i.diskTwoSided.value=B}getPortalPlane(A,I,g){A.decompose(I,this.scratch.quat,this.scratch.scale),g.set(0,0,1).applyQuaternion(this.scratch.quat).normalize()}getSegmentDiskCrossing(A,I,g,B,C){this.getPortalPlane(g,this.scratch.center0,this.scratch.normal0),this.getPortalPlane(B,this.scratch.center1,this.scratch.normal1);const E=this.scratch.offset.copy(A).sub(this.scratch.center0).dot(this.scratch.normal0),D=this.scratch.offset.copy(I).sub(this.scratch.center1).dot(this.scratch.normal1);if(E>this.portalCrossEps&&D>this.portalCrossEps||E<-this.portalCrossEps&&D<-this.portalCrossEps)return null;const i=E-D;if(Math.abs(i)1||(this.scratch.hit.lerpVectors(A,I,w),this.scratch.centerT.copy(this.scratch.center0).lerp(this.scratch.center1,w),this.scratch.normalT.copy(this.scratch.normal0).lerp(this.scratch.normal1,w).normalize(),this.scratch.offset.copy(this.scratch.hit).sub(this.scratch.centerT),this.scratch.offset.addScaledVector(this.scratch.normalT,-this.scratch.offset.dot(this.scratch.normalT)),this.scratch.offset.lengthSq()>C*C)?null:w}teleport(A){this.scratch.camWorld.copy(this.camera.matrixWorld),this.scratch.newCamWorld.copy(this.scratch.camWorld).premultiply(A),this.scratch.invCamLocal.copy(this.camera.matrix).invert(),this.scratch.newLocalFrame.copy(this.scratch.newCamWorld).multiply(this.scratch.invCamLocal),this.scratch.newLocalFrame.decompose(this.localFrame.position,this.localFrame.quaternion,this.localFrame.scale),this.localFrame.updateMatrixWorld(!0),this.camera.updateMatrixWorld(!0)}updateTeleportation(){if(this.portalPairs.length===0)return;if(this.camera.getWorldPosition(this.scratch.currCameraWorld),!Number.isFinite(this.lastCameraWorld.x)){this.lastCameraWorld.copy(this.scratch.currCameraWorld);return}this.scratch.prevCameraWorld.copy(this.lastCameraWorld);let A=null,I=null,g=!0;for(const B of this.portalPairs){B.entryPortal.updateMatrixWorld(!0),B.exitPortal.updateMatrixWorld(!0),B._entryBefore.copy(B.entryPortal.matrixWorld),B._exitBefore.copy(B.exitPortal.matrixWorld);const C=this.getSegmentDiskCrossing(this.scratch.prevCameraWorld,this.scratch.currCameraWorld,B._entryBefore,B.entryPortal.matrixWorld,B.radius);C!==null&&(A===null||C{console.error("Error in portal onCross callback:",B)})}findPrimaryPortal(){if(this.portalPairs.length===0)return null;this.camera.getWorldPosition(this.scratch.cameraWorldPos),this.camera.getWorldDirection(this.scratch.viewDir);let A=Number.NEGATIVE_INFINITY,I=null,g=!0;for(const B of this.portalPairs){B.entryPortal.getWorldPosition(this.scratch.portalCenter),this.scratch.toPortal.copy(this.scratch.portalCenter).sub(this.scratch.cameraWorldPos);const C=this.scratch.toPortal.length(),E=this.scratch.toPortal.normalize().dot(this.scratch.viewDir)/C;E>A&&(A=E,I=B,g=!0),B.exitPortal.getWorldPosition(this.scratch.portalCenter),this.scratch.toPortal.copy(this.scratch.portalCenter).sub(this.scratch.cameraWorldPos);const D=this.scratch.toPortal.length(),i=this.scratch.toPortal.normalize().dot(this.scratch.viewDir)/D;i>A&&(A=i,I=B,g=!1)}return I?{pair:I,primaryIsEntry:g,primaryPortal:g?I.entryPortal:I.exitPortal,otherPortal:g?I.exitPortal:I.entryPortal}:null}render(){const A=this.findPrimaryPortal();if(!A){this.prefetchActive&&(this.prefetchActive=!1),this.renderer.autoClear=!0,this.renderer.render(this.scene,this.camera);return}this.prefetchActive||(this.prefetchActive=!0);const{pair:I,primaryIsEntry:g,primaryPortal:B,otherPortal:C}=A;(g?this.camera.matrixWorld.clone().premultiply(this.getEntryToExitTransform(I)):this.camera.matrixWorld.clone().premultiply(this.getExitToEntryTransform(I))).decompose(this.camera2.position,this.camera2.quaternion,this.camera2.scale),this.camera2.updateMatrixWorld(!0),this.shareLodInstances(),this.setPortalDiskUniforms(this.camera2,C,I.radius,!0),this.renderer.autoClear=!0,this.behindRenderer.render(this.scene,this.camera2),this.setPortalDiskUniforms(this.camera,B,-I.radius,!0),this.renderer.autoClear=!1,this.portalRenderer.render(this.scene,this.camera)}shareLodInstances(){this.behindRenderer.lodInstances.clear();for(const[A,I]of this.portalRenderer.lodInstances)this.behindRenderer.lodInstances.set(A,I)}animateLoopHook(){this.updateTeleportation(),this.render()}updateAspect(A){this.camera2.aspect=A,this.camera2.updateProjectionMatrix()}dispose(){this.scene.remove(this.portalRenderer),this.scene.remove(this.camera2);for(const A of this.portalPairs)this.scene.remove(A.entryPortal),this.scene.remove(A.exitPortal);this.portalPairs=[],this.portalRenderer.dispose(),this.behindRenderer.dispose()}}exports.DEFAULT_CONTROLLER_FAST_MULTIPLIER=Co;exports.DEFAULT_CONTROLLER_GETFAST=wo;exports.DEFAULT_CONTROLLER_GETMOVE=Do;exports.DEFAULT_CONTROLLER_GETROTATE=io;exports.DEFAULT_CONTROLLER_GETSLOW=oo;exports.DEFAULT_CONTROLLER_MOVE_HEADING=Ak;exports.DEFAULT_CONTROLLER_MOVE_SPEED=Qo;exports.DEFAULT_CONTROLLER_ROLL_SPEED=Bo;exports.DEFAULT_CONTROLLER_ROTATE_SPEED=zQ;exports.DEFAULT_CONTROLLER_SLOW_MULTIPLIER=Eo;exports.DISK_PORTAL_FRAGMENT_SHADER=ko;exports.ExtSplats=BI;exports.FINGER_TIPS=tk;exports.FpsMovement=ho;exports.HANDS=QQ;exports.Hand=nB;exports.HandMovement=Lk;exports.JOINT_IDS=rB;exports.JOINT_INDEX=Jk;exports.JOINT_RADIUS=yg;exports.JOINT_SEGMENTS=Go;exports.JOINT_SEGMENT_STEPS=yo;exports.JOINT_TIPS=Uk;exports.JointEnum=aQ;exports.JointSplats=so;exports.LN_SCALE_MAX=bA;exports.LN_SCALE_MIN=fA;exports.NUM_JOINTS=Mk;exports.OldSparkRenderer=jQ;exports.OldSparkViewpoint=Lg;exports.OldSplatAccumulator=Xg;exports.PackedSplats=_A;exports.PagedSplats=Sg;exports.PlyReader=Hg;exports.PointerControls=Ro;exports.Readback=TI;exports.RgbaArray=IQ;exports.Sint8ToFloat=cC;exports.SparkControls=Vk;exports.SparkPortals=Xk;exports.SparkRenderer=tg;exports.SparkXr=_Q;exports.SplatAccumulator=tI;exports.SplatEdit=Qg;exports.SplatEditRgbaBlendMode=mw;exports.SplatEditSdf=Zw;exports.SplatEditSdfType=Ow;exports.SplatEdits=Vw;exports.SplatFileType=yA;exports.SplatGenerator=YI;exports.SplatLoader=LB;exports.SplatMesh=vA;exports.SplatModifier=Xw;exports.SplatPager=FI;exports.SplatSkinning=vQ;exports.SplatSkinningMode=Ao;exports.SplatTransformer=lI;exports.SpzReader=zw;exports.SpzWriter=kI;exports.Uint8ToFloat=NC;exports.XrHand=Yg;exports.XrHands=Hk;exports.constructAxes=TR;exports.constructGrid=uR;exports.constructSpherePoints=OR;exports.defines=Bs;exports.dyno=Uh;exports.flipPixels=tC;exports.floatToSint8=kg;exports.floatToUint8=jA;exports.fromHalf=FA;exports.generators=vR;exports.getSplatFileType=RQ;exports.imageSplats=ZR;exports.isAndroid=iQ;exports.isIos=Ig;exports.isMobile=cg;exports.isOculus=wQ;exports.isPcSogs=SR;exports.isQuest2=UC;exports.isVisionPro=iB;exports.lerpHandsSnapshots=sk;exports.modifiers=$R;exports.pixelsToPngUrl=HC;exports.readRgbaArray=$h;exports.setPackedSplat=vg;exports.textSplats=mR;exports.toHalf=TA;exports.transcodeSpz=qR;exports.unpackSplat=Ng;exports.unpackSplats=cR;exports.utils=ms; +`;class by{constructor(A){this.portalPairs=[],this.lastCameraWorld=new a.Vector3().setScalar(Number.NaN),this.prefetchActive=!1,this.scratch={quat:new a.Quaternion,scale:new a.Vector3,center0:new a.Vector3,center1:new a.Vector3,normal0:new a.Vector3,normal1:new a.Vector3,centerT:new a.Vector3,normalT:new a.Vector3,prevCameraWorld:new a.Vector3,currCameraWorld:new a.Vector3,hit:new a.Vector3,offset:new a.Vector3,camWorld:new a.Matrix4,newCamWorld:new a.Matrix4,invCamLocal:new a.Matrix4,newLocalFrame:new a.Matrix4,cameraWorldPos:new a.Vector3,viewDir:new a.Vector3,portalCenter:new a.Vector3,toPortal:new a.Vector3},this.renderer=A.renderer,this.scene=A.scene,this.camera=A.camera,this.localFrame=A.localFrame,this.defaultPortalRadius=A.defaultPortalRadius??1,this.portalCrossEps=A.portalCrossEps??1e-6;const I=A.sparkOptions??{};this.portalRenderer=new Lg({renderer:this.renderer,extraUniforms:{diskCenter:{value:new a.Vector3},diskNormal:{value:new a.Vector3},diskRadius:{value:0},diskTwoSided:{value:!1}},fragmentShader:Cw,...I}),this.scene.add(this.portalRenderer),this.behindRenderer=new Lg({renderer:this.renderer,enableDriveLod:!1,...I}),this.camera2=this.camera.clone(),this.scene.add(this.camera2)}addPortalPair(A){const I={entryPortal:new a.Object3D,exitPortal:new a.Object3D,radius:(A==null?void 0:A.radius)??this.defaultPortalRadius,onCross:A==null?void 0:A.onCross,_entryBefore:new a.Matrix4,_exitBefore:new a.Matrix4};return this.scene.add(I.entryPortal),this.scene.add(I.exitPortal),this.portalPairs.push(I),I}removePortalPair(A){const I=this.portalPairs.indexOf(A);I!==-1&&(this.scene.remove(A.entryPortal),this.scene.remove(A.exitPortal),this.portalPairs.splice(I,1))}getEntryToExitTransform(A){return A.entryPortal.matrixWorld.clone().invert().premultiply(A.exitPortal.matrixWorld)}getExitToEntryTransform(A){return A.exitPortal.matrixWorld.clone().invert().premultiply(A.entryPortal.matrixWorld)}setPortalDiskUniforms(A,I,g,B){A.updateMatrixWorld(!0),I.updateMatrixWorld(!0);const C=A.matrixWorld.clone().invert(),E=I.matrixWorld.clone().premultiply(C),i=new a.Quaternion,o=this.portalRenderer.uniforms;E.decompose(o.diskCenter.value,i,new a.Vector3),o.diskNormal.value.set(0,0,1).applyQuaternion(i),o.diskRadius.value=g,o.diskTwoSided.value=B}getPortalPlane(A,I,g){A.decompose(I,this.scratch.quat,this.scratch.scale),g.set(0,0,1).applyQuaternion(this.scratch.quat).normalize()}getSegmentDiskCrossing(A,I,g,B,C){this.getPortalPlane(g,this.scratch.center0,this.scratch.normal0),this.getPortalPlane(B,this.scratch.center1,this.scratch.normal1);const E=this.scratch.offset.copy(A).sub(this.scratch.center0).dot(this.scratch.normal0),i=this.scratch.offset.copy(I).sub(this.scratch.center1).dot(this.scratch.normal1);if(E>this.portalCrossEps&&i>this.portalCrossEps||E<-this.portalCrossEps&&i<-this.portalCrossEps)return null;const o=E-i;if(Math.abs(o)1||(this.scratch.hit.lerpVectors(A,I,D),this.scratch.centerT.copy(this.scratch.center0).lerp(this.scratch.center1,D),this.scratch.normalT.copy(this.scratch.normal0).lerp(this.scratch.normal1,D).normalize(),this.scratch.offset.copy(this.scratch.hit).sub(this.scratch.centerT),this.scratch.offset.addScaledVector(this.scratch.normalT,-this.scratch.offset.dot(this.scratch.normalT)),this.scratch.offset.lengthSq()>C*C)?null:D}teleport(A){this.scratch.camWorld.copy(this.camera.matrixWorld),this.scratch.newCamWorld.copy(this.scratch.camWorld).premultiply(A),this.scratch.invCamLocal.copy(this.camera.matrix).invert(),this.scratch.newLocalFrame.copy(this.scratch.newCamWorld).multiply(this.scratch.invCamLocal),this.scratch.newLocalFrame.decompose(this.localFrame.position,this.localFrame.quaternion,this.localFrame.scale),this.localFrame.updateMatrixWorld(!0),this.camera.updateMatrixWorld(!0)}updateTeleportation(){if(this.portalPairs.length===0)return;if(this.camera.getWorldPosition(this.scratch.currCameraWorld),!Number.isFinite(this.lastCameraWorld.x)){this.lastCameraWorld.copy(this.scratch.currCameraWorld);return}this.scratch.prevCameraWorld.copy(this.lastCameraWorld);let A=null,I=null,g=!0;for(const B of this.portalPairs){B.entryPortal.updateMatrixWorld(!0),B.exitPortal.updateMatrixWorld(!0),B._entryBefore.copy(B.entryPortal.matrixWorld),B._exitBefore.copy(B.exitPortal.matrixWorld);const C=this.getSegmentDiskCrossing(this.scratch.prevCameraWorld,this.scratch.currCameraWorld,B._entryBefore,B.entryPortal.matrixWorld,B.radius);C!==null&&(A===null||C{console.error("Error in portal onCross callback:",B)})}findPrimaryPortal(){if(this.portalPairs.length===0)return null;this.camera.getWorldPosition(this.scratch.cameraWorldPos),this.camera.getWorldDirection(this.scratch.viewDir);let A=Number.NEGATIVE_INFINITY,I=null,g=!0;for(const B of this.portalPairs){B.entryPortal.getWorldPosition(this.scratch.portalCenter),this.scratch.toPortal.copy(this.scratch.portalCenter).sub(this.scratch.cameraWorldPos);const C=this.scratch.toPortal.length(),E=this.scratch.toPortal.normalize().dot(this.scratch.viewDir)/C;E>A&&(A=E,I=B,g=!0),B.exitPortal.getWorldPosition(this.scratch.portalCenter),this.scratch.toPortal.copy(this.scratch.portalCenter).sub(this.scratch.cameraWorldPos);const i=this.scratch.toPortal.length(),o=this.scratch.toPortal.normalize().dot(this.scratch.viewDir)/i;o>A&&(A=o,I=B,g=!1)}return I?{pair:I,primaryIsEntry:g,primaryPortal:g?I.entryPortal:I.exitPortal,otherPortal:g?I.exitPortal:I.entryPortal}:null}render(){const A=this.findPrimaryPortal();if(!A){this.prefetchActive&&(this.prefetchActive=!1),this.renderer.autoClear=!0,this.renderer.render(this.scene,this.camera);return}this.prefetchActive||(this.prefetchActive=!0);const{pair:I,primaryIsEntry:g,primaryPortal:B,otherPortal:C}=A;(g?this.camera.matrixWorld.clone().premultiply(this.getEntryToExitTransform(I)):this.camera.matrixWorld.clone().premultiply(this.getExitToEntryTransform(I))).decompose(this.camera2.position,this.camera2.quaternion,this.camera2.scale),this.camera2.updateMatrixWorld(!0),this.shareLodInstances(),this.setPortalDiskUniforms(this.camera2,C,I.radius,!0),this.renderer.autoClear=!0,this.behindRenderer.render(this.scene,this.camera2),this.setPortalDiskUniforms(this.camera,B,-I.radius,!0),this.renderer.autoClear=!1,this.portalRenderer.render(this.scene,this.camera)}shareLodInstances(){this.behindRenderer.lodInstances.clear();for(const[A,I]of this.portalRenderer.lodInstances)this.behindRenderer.lodInstances.set(A,I)}animateLoopHook(){this.updateTeleportation(),this.render()}updateAspect(A){this.camera2.aspect=A,this.camera2.updateProjectionMatrix()}dispose(){this.scene.remove(this.portalRenderer),this.scene.remove(this.camera2);for(const A of this.portalPairs)this.scene.remove(A.entryPortal),this.scene.remove(A.exitPortal);this.portalPairs=[],this.portalRenderer.dispose(),this.behindRenderer.dispose()}}exports.DEFAULT_CONTROLLER_FAST_MULTIPLIER=vo;exports.DEFAULT_CONTROLLER_GETFAST=_o;exports.DEFAULT_CONTROLLER_GETMOVE=jo;exports.DEFAULT_CONTROLLER_GETROTATE=zo;exports.DEFAULT_CONTROLLER_GETSLOW=$o;exports.DEFAULT_CONTROLLER_MOVE_HEADING=vh;exports.DEFAULT_CONTROLLER_MOVE_SPEED=Oo;exports.DEFAULT_CONTROLLER_ROLL_SPEED=Wo;exports.DEFAULT_CONTROLLER_ROTATE_SPEED=XQ;exports.DEFAULT_CONTROLLER_SLOW_MULTIPLIER=Xo;exports.DISK_PORTAL_FRAGMENT_SHADER=Cw;exports.ExtSplats=gI;exports.FINGER_TIPS=Fy;exports.FpsMovement=Qw;exports.HANDS=AQ;exports.Hand=HB;exports.HandMovement=Ny;exports.JOINT_IDS=LB;exports.JOINT_INDEX=cy;exports.JOINT_RADIUS=sg;exports.JOINT_SEGMENTS=Iw;exports.JOINT_SEGMENT_STEPS=gw;exports.JOINT_TIPS=ky;exports.JointEnum=hQ;exports.JointSplats=Aw;exports.LN_SCALE_MAX=pA;exports.LN_SCALE_MIN=fA;exports.NUM_JOINTS=yy;exports.PackedSplats=sI;exports.PagedSplats=XI;exports.PlyReader=_g;exports.PointerControls=Bw;exports.Readback=zI;exports.RgbaArray=VQ;exports.Sint8ToFloat=JE;exports.SparkControls=Py;exports.SparkPortals=by;exports.SparkRenderer=Lg;exports.SparkXr=jQ;exports.SplatAccumulator=eI;exports.SplatEdit=Mg;exports.SplatEditRgbaBlendMode=Lo;exports.SplatEditSdf=Ho;exports.SplatEditSdfType=Uo;exports.SplatEdits=no;exports.SplatFileType=eA;exports.SplatGenerator=_I;exports.SplatLoader=RB;exports.SplatMesh=jA;exports.SplatModifier=Mt;exports.SplatPager=hI;exports.SplatSkinning=vQ;exports.SplatSkinningMode=mo;exports.SplatTransformer=qI;exports.SpzReader=Po;exports.SpzWriter=tI;exports.Uint8ToFloat=eE;exports.XrHand=Hg;exports.XrHands=Sy;exports.constructAxes=xh;exports.constructGrid=lh;exports.constructSpherePoints=fh;exports.defines=ew;exports.dyno=st;exports.flipPixels=nE;exports.floatToSint8=tg;exports.floatToUint8=vA;exports.fromHalf=hA;exports.generators=Vh;exports.getSplatFileType=MB;exports.imageSplats=uh;exports.isAndroid=DQ;exports.isIos=jI;exports.isMobile=Fg;exports.isOculus=oQ;exports.isPcSogs=$t;exports.isQuest2=HE;exports.isVisionPro=GB;exports.lerpHandsSnapshots=Cy;exports.modifiers=Wh;exports.pixelsToPngUrl=YE;exports.readRgbaArray=Eh;exports.setPackedSplat=zg;exports.textSplats=ph;exports.toHalf=PA;exports.transcodeSpz=Hh;exports.unpackSplat=kg;exports.utils=Y0; //# sourceMappingURL=spark.cjs.min.js.map diff --git a/dist/spark.cjs.min.js.map b/dist/spark.cjs.min.js.map index 637c73da..01325d77 100644 --- a/dist/spark.cjs.min.js.map +++ b/dist/spark.cjs.min.js.map @@ -1 +1 @@ -{"version":3,"file":"spark.cjs.min.js","sources":["../src/OldSplatGeometry.ts","../node_modules/fflate/esm/browser.js","../src/defines.ts","../src/dyno/types.ts","../src/dyno/value.ts","../src/dyno/base.ts","../src/utils.ts","../src/OldSplatWorker.ts","../src/SplatWorker.ts","../src/dyno/splats.ts","../src/dyno/output.ts","../src/dyno/uniforms.ts","../src/dyno/program.ts","../src/dyno/mathTypes.ts","../src/dyno/math.ts","../src/dyno/logic.ts","../src/dyno/convert.ts","../src/dyno/vecmat.ts","../src/dyno/util.ts","../src/dyno/transform.ts","../src/dyno/control.ts","../src/dyno/texture.ts","../src/dyno/trig.ts","../src/ExtSplats.ts","../rust/spark-rs/pkg/spark_rs.js","../src/shaders/computeUvec4.glsl","../src/shaders/computeUvec4_Vec4.glsl","../src/shaders/computeUvec4x2_Vec4.glsl","../src/shaders/computeVec4.glsl","../src/shaders/oldSplatFragment.glsl","../src/shaders/oldSplatVertex.glsl","../src/shaders/splatDefines.glsl","../src/shaders/splatFragment.glsl","../src/shaders/splatVertex.glsl","../src/shaders.ts","../src/Readback.ts","../src/RgbaArray.ts","../src/SplatEdit.ts","../src/SplatGenerator.ts","../src/SplatAccumulator.ts","../src/SplatGeometry.ts","../src/SparkRenderer.ts","../src/SplatPager.ts","../src/SplatMesh.ts","../src/ply.ts","../src/SplatLoader.ts","../src/PackedSplats.ts","../src/OldSparkViewpoint.ts","../src/OldSplatAccumulator.ts","../src/OldSparkRenderer.ts","../src/antisplat.ts","../src/ksplat.ts","../src/spz.ts","../src/SplatSkinning.ts","../src/splatConstructors.ts","../src/generators/static.ts","../src/generators/snow.ts","../src/modifiers/normalColor.ts","../src/modifiers/depthColor.ts","../src/SparkXr.ts","../src/hands.ts","../src/controls.ts","../src/SparkPortals.ts"],"sourcesContent":["import * as THREE from \"three\";\n\n// SplatGeometry is an internal class used by SparkRenderer to render a collection\n// of Gsplats in a single draw call by extending THREE.InstancedBufferGeometry.\n// Each Gsplat is drawn as two triangles, with the order of the Gsplats determined\n// by the instance attribute \"ordering\".\n\nexport class OldSplatGeometry extends THREE.InstancedBufferGeometry {\n ordering: Uint32Array;\n attribute: THREE.InstancedBufferAttribute;\n\n constructor(ordering: Uint32Array, activeSplats: number) {\n super();\n\n this.ordering = ordering;\n\n this.setAttribute(\"position\", new THREE.BufferAttribute(QUAD_VERTICES, 3));\n this.setIndex(new THREE.BufferAttribute(QUAD_INDICES, 1));\n\n // Hack to work around Three.js\n // @ts-ignore\n this._maxInstanceCount = ordering.length;\n this.instanceCount = activeSplats;\n\n this.attribute = new THREE.InstancedBufferAttribute(ordering, 1, false, 1);\n this.attribute.setUsage(THREE.DynamicDrawUsage);\n this.setAttribute(\"splatIndex\", this.attribute);\n }\n\n update(ordering: Uint32Array, activeSplats: number) {\n this.ordering = ordering;\n this.attribute.array = ordering;\n this.instanceCount = activeSplats;\n this.attribute.addUpdateRange(0, activeSplats);\n this.attribute.needsUpdate = true;\n }\n}\n\n// Each instance draws to triangles covering a quad over coords (-1,-1,0)..(1,1,0)\nconst QUAD_VERTICES = new Float32Array([\n -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0,\n]);\n\nconst QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]);\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","// LN_SCALE_MIN..LN_SCALE_MAX define the internal scale range of for Gsplats,\n// covering approx 0.0001..8000 in range with discrete steps 7% apart.\n// The value \"0\" is reserved for truly flat scales, indicating a 2DGS.\n// If these values are changed, the corresponding values in splatDefines.glsl\n// must also be updated to match.\n\nexport const LN_SCALE_MIN = -12.0;\nexport const LN_SCALE_MAX = 9.0;\nexport const SCALE_MIN = Math.exp(LN_SCALE_MIN);\nexport const SCALE_MAX = Math.exp(LN_SCALE_MAX);\n\nexport const LN_SCALE_ZERO = -30.0;\nexport const SCALE_ZERO = Math.exp(LN_SCALE_ZERO);\n\n// Gsplats are stored in textures that are 2^11 x 2^11 x up to 2^11\n// Most WebGL2 implementations support 2D textures up to 2^12 x 2^12 (max 16M Gsplats)\n// 2D array textures and 3D textures up to 2^11 x 2^11 x 2^11 (max 8G Gsplats),\n// so we use 2D array textures for our representation for higher limits.\n\nexport const SPLAT_TEX_WIDTH_BITS = 11;\nexport const SPLAT_TEX_HEIGHT_BITS = 11;\nexport const SPLAT_TEX_DEPTH_BITS = 11;\nexport const SPLAT_TEX_LAYER_BITS =\n SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nexport const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS; // 2048\nexport const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS; // 2048\nexport const SPLAT_TEX_DEPTH = 1 << SPLAT_TEX_DEPTH_BITS; // 2048\nexport const SPLAT_TEX_MIN_HEIGHT = 1;\n\nexport const SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1;\nexport const SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1;\nexport const SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1;\n\n// Enable/disable Gsplat sorting via Rust WASM code. In testing the sorting\n// time between pure JS and WASM are minimal and don't make a big difference.\n\nexport const WASM_SPLAT_SORT = true;\n\n// Enable/disable compiling a dedicated parse function per element type\n// in the plyReader.\n\nexport const USE_COMPILED_PARSER_FUNCTION = true;\n\nexport enum SplatFileType {\n PLY = \"ply\",\n SPZ = \"spz\",\n SPLAT = \"splat\",\n KSPLAT = \"ksplat\",\n PCSOGS = \"pcsogs\",\n PCSOGSZIP = \"pcsogszip\",\n RAD = \"rad\",\n}\n\nexport type SplatEncoding = {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n sh1Max?: number;\n sh2Max?: number;\n sh3Max?: number;\n lodOpacity?: boolean;\n};\n\nexport const DEFAULT_SPLAT_ENCODING: SplatEncoding = {\n rgbMin: 0,\n rgbMax: 1,\n lnScaleMin: LN_SCALE_MIN,\n lnScaleMax: LN_SCALE_MAX,\n sh1Max: 1,\n sh2Max: 1,\n sh3Max: 1,\n lodOpacity: false,\n};\n\nexport type RadMeta = {\n version: number;\n type: string;\n count: number;\n maxSh?: number;\n lodTree?: boolean;\n chunkSize?: number;\n chunks: {\n offset: number;\n bytes: number;\n base?: number;\n count?: number;\n filename?: string;\n }[];\n splatEncoding?: SplatEncoding;\n};\n\nexport type PackedExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type PackedResult = {\n numSplats: number;\n packedArray: Uint32Array;\n extra: PackedExtra;\n splatEncoding: SplatEncoding;\n};\n\nexport type ExtExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3a?: Uint32Array;\n sh3b?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type ExtResult = {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: ExtExtra;\n};\n","import type * as THREE from \"three\";\n\nexport type BoolTypes = \"bool\" | \"bvec2\" | \"bvec3\" | \"bvec4\";\nexport type IntTypes = \"int\" | \"ivec2\" | \"ivec3\" | \"ivec4\";\nexport type UintTypes = \"uint\" | \"uvec2\" | \"uvec3\" | \"uvec4\";\nexport type AllIntTypes = IntTypes | UintTypes;\nexport type FloatTypes = \"float\" | \"vec2\" | \"vec3\" | \"vec4\";\nexport type ScalarTypes = \"uint\" | \"int\" | \"float\";\nexport type Vector2Types = \"vec2\" | \"ivec2\" | \"uvec2\";\nexport type Vector3Types = \"vec3\" | \"ivec3\" | \"uvec3\";\nexport type Vector4Types = \"vec4\" | \"ivec4\" | \"uvec4\";\nexport type VectorTypes = Vector2Types | Vector3Types | Vector4Types;\nexport type MatFloatTypes =\n | \"mat2\"\n | \"mat2x2\"\n | \"mat2x3\"\n | \"mat2x4\"\n | \"mat3\"\n | \"mat3x2\"\n | \"mat3x3\"\n | \"mat3x4\"\n | \"mat4\"\n | \"mat4x2\"\n | \"mat4x3\"\n | \"mat4x4\";\nexport type SquareMatTypes =\n | \"mat2\"\n | \"mat3\"\n | \"mat4\"\n | \"mat2x2\"\n | \"mat3x3\"\n | \"mat4x4\";\nexport type AllFloatTypes = FloatTypes | MatFloatTypes;\nexport type SignedTypes = IntTypes | FloatTypes;\nexport type AllSignedTypes = SignedTypes | MatFloatTypes;\nexport type ValueTypes = FloatTypes | IntTypes | UintTypes;\nexport type AllValueTypes = AllFloatTypes | IntTypes | UintTypes;\nexport type SimpleTypes = BoolTypes | AllValueTypes;\n\nexport type VectorElementType = A extends FloatTypes\n ? \"float\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nexport type SameSizeVec = T extends ScalarTypes\n ? \"float\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"vec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"vec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"vec4\"\n : never;\n\nexport type SameSizeUvec = T extends ScalarTypes\n ? \"uint\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"uvec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"uvec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"uvec4\"\n : never;\n\nexport type SameSizeIvec = T extends ScalarTypes\n ? \"int\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"ivec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"ivec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"ivec4\"\n : never;\n\nexport type SamplerTypes =\n | \"sampler2D\"\n | \"sampler2DArray\"\n | \"sampler3D\"\n | \"samplerCube\";\nexport type UsamplerTypes =\n | \"usampler2D\"\n | \"usampler2DArray\"\n | \"usampler3D\"\n | \"usamplerCube\";\nexport type IsamplerTypes =\n | \"isampler2D\"\n | \"isampler2DArray\"\n | \"isampler3D\"\n | \"isamplerCube\";\nexport type NormalSamplerTypes = SamplerTypes | UsamplerTypes | IsamplerTypes;\nexport type SamplerShadowTypes =\n | \"sampler2DShadow\"\n | \"sampler2DArrayShadow\"\n | \"samplerCubeShadow\";\nexport type AllSamplerTypes = NormalSamplerTypes | SamplerShadowTypes;\nexport type Sampler2DTypes =\n | \"sampler2D\"\n | \"usampler2D\"\n | \"isampler2D\"\n | \"sampler2DShadow\";\nexport type Sampler2DArrayTypes =\n | \"sampler2DArray\"\n | \"usampler2DArray\"\n | \"isampler2DArray\"\n | \"sampler2DArrayShadow\";\nexport type Sampler3DTypes = \"sampler3D\" | \"usampler3D\" | \"isampler3D\";\nexport type SamplerCubeTypes =\n | \"samplerCube\"\n | \"usamplerCube\"\n | \"isamplerCube\"\n | \"samplerCubeShadow\";\n\nexport function isBoolType(type: DynoType): boolean {\n return (\n type === \"bool\" || type === \"bvec2\" || type === \"bvec3\" || type === \"bvec4\"\n );\n}\n\nexport function isScalarType(type: DynoType): boolean {\n return type === \"int\" || type === \"uint\" || type === \"float\";\n}\n\nexport function isIntType(type: DynoType): boolean {\n return (\n type === \"int\" || type === \"ivec2\" || type === \"ivec3\" || type === \"ivec4\"\n );\n}\n\nexport function isUintType(type: DynoType): boolean {\n return (\n type === \"uint\" || type === \"uvec2\" || type === \"uvec3\" || type === \"uvec4\"\n );\n}\n\nexport function isFloatType(type: DynoType): boolean {\n return (\n type === \"float\" || type === \"vec2\" || type === \"vec3\" || type === \"vec4\"\n );\n}\n\nexport function isMatFloatType(type: DynoType): boolean {\n return (\n type === \"mat2\" ||\n type === \"mat2x2\" ||\n type === \"mat2x3\" ||\n type === \"mat2x4\" ||\n type === \"mat3\" ||\n type === \"mat3x2\" ||\n type === \"mat3x3\" ||\n type === \"mat3x4\" ||\n type === \"mat4\" ||\n type === \"mat4x2\" ||\n type === \"mat4x3\" ||\n type === \"mat4x4\"\n );\n}\n\nexport function isAllFloatType(type: DynoType): boolean {\n return isFloatType(type) || isMatFloatType(type);\n}\n\nexport function isVector2Type(type: DynoType): boolean {\n return type === \"vec2\" || type === \"ivec2\" || type === \"uvec2\";\n}\n\nexport function isVector3Type(type: DynoType): boolean {\n return type === \"vec3\" || type === \"ivec3\" || type === \"uvec3\";\n}\n\nexport function isVector4Type(type: DynoType): boolean {\n return type === \"vec4\" || type === \"ivec4\" || type === \"uvec4\";\n}\n\nexport function isVectorType(type: DynoType): boolean {\n return isVector2Type(type) || isVector3Type(type) || isVector4Type(type);\n}\n\nexport function isMat2(type: DynoType): boolean {\n return type === \"mat2\" || type === \"mat2x2\";\n}\nexport function isMat3(type: DynoType): boolean {\n return type === \"mat3\" || type === \"mat3x3\";\n}\nexport function isMat4(type: DynoType): boolean {\n return type === \"mat4\" || type === \"mat4x4\";\n}\n\nexport function vectorElementType(\n type: A,\n): VectorElementType {\n switch (type) {\n case \"vec2\":\n return \"float\" as VectorElementType;\n case \"vec3\":\n return \"float\" as VectorElementType;\n case \"vec4\":\n return \"float\" as VectorElementType;\n case \"ivec2\":\n return \"int\" as VectorElementType;\n case \"ivec3\":\n return \"int\" as VectorElementType;\n case \"ivec4\":\n return \"int\" as VectorElementType;\n case \"uvec2\":\n return \"uint\" as VectorElementType;\n case \"uvec3\":\n return \"uint\" as VectorElementType;\n case \"uvec4\":\n return \"uint\" as VectorElementType;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function vectorDim(type: A): number {\n switch (type) {\n case \"vec2\":\n case \"ivec2\":\n case \"uvec2\":\n return 2;\n case \"vec3\":\n case \"ivec3\":\n case \"uvec3\":\n return 3;\n case \"vec4\":\n case \"ivec4\":\n case \"uvec4\":\n return 4;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function sameSizeVec(type: T): SameSizeVec {\n if (isScalarType(type)) {\n return \"float\" as SameSizeVec;\n }\n if (isVector2Type(type)) {\n return \"vec2\" as SameSizeVec;\n }\n if (isVector3Type(type)) {\n return \"vec3\" as SameSizeVec;\n }\n if (isVector4Type(type)) {\n return \"vec4\" as SameSizeVec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeUvec(type: T): SameSizeUvec {\n if (isScalarType(type)) {\n return \"uint\" as SameSizeUvec;\n }\n if (isVector2Type(type)) {\n return \"uvec2\" as SameSizeUvec;\n }\n if (isVector3Type(type)) {\n return \"uvec3\" as SameSizeUvec;\n }\n if (isVector4Type(type)) {\n return \"uvec4\" as SameSizeUvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeIvec(type: T): SameSizeIvec {\n if (isScalarType(type)) {\n return \"int\" as SameSizeIvec;\n }\n if (isVector2Type(type)) {\n return \"ivec2\" as SameSizeIvec;\n }\n if (isVector3Type(type)) {\n return \"ivec3\" as SameSizeIvec;\n }\n if (isVector4Type(type)) {\n return \"ivec4\" as SameSizeIvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport type BaseType = SimpleTypes | AllSamplerTypes;\nexport type UserType = { type: string };\nexport type DynoType = BaseType | UserType;\n\nexport type DynoJsType = T extends \"bool\"\n ? boolean\n : T extends \"uint\"\n ? number\n : T extends \"int\"\n ? number\n : T extends \"float\"\n ? number\n : T extends \"bvec2\"\n ? [boolean, boolean]\n : T extends \"uvec2\"\n ? THREE.Vector2 | [number, number] | Uint32Array\n : T extends \"ivec2\"\n ? THREE.Vector2 | [number, number] | Int32Array\n : T extends \"vec2\"\n ? THREE.Vector2 | [number, number] | Float32Array\n : T extends \"bvec3\"\n ? [boolean, boolean, boolean]\n : T extends \"uvec3\"\n ? THREE.Vector3 | [number, number, number] | Uint32Array\n : T extends \"ivec3\"\n ? THREE.Vector3 | [number, number, number] | Int32Array\n : T extends \"vec3\"\n ?\n | THREE.Vector3\n | THREE.Color\n | [number, number, number]\n | Float32Array\n : T extends \"bvec4\"\n ? [boolean, boolean, boolean, boolean]\n : T extends \"uvec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Uint32Array\n : T extends \"ivec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Int32Array\n : T extends \"vec4\"\n ?\n | THREE.Vector4\n | THREE.Quaternion\n | [number, number, number, number]\n | Float32Array\n : T extends \"mat2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x3\"\n ? Float32Array\n : T extends \"mat2x4\"\n ? Float32Array\n : T extends \"mat3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x2\"\n ? Float32Array\n : T extends \"mat3x3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x4\"\n ? Float32Array\n : T extends \"mat4\"\n ? THREE.Matrix4 | Float32Array\n : T extends \"mat4x2\"\n ? Float32Array\n : T extends \"mat4x3\"\n ? Float32Array\n : T extends \"mat4x4\"\n ?\n | THREE.Matrix4\n | Float32Array\n : T extends \"usampler2D\"\n ? THREE.Texture\n : T extends \"isampler2D\"\n ? THREE.Texture\n : T extends \"sampler2D\"\n ? THREE.Texture\n : T extends \"sampler2DShadow\"\n ? THREE.Texture\n : T extends \"usampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"isampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArrayShadow\"\n ? THREE.Texture\n : T extends \"usampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"isampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"sampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"usamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"isamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCubeShadow\"\n ? THREE.Texture\n : unknown;\n\nexport function typeLiteral(type: DynoType): string {\n if (typeof type === \"string\") {\n return type;\n }\n if (typeof type === \"object\" && type.type) {\n return type.type;\n }\n throw new Error(`Invalid DynoType: ${String(type)}`);\n}\n\nexport function numberAsInt(value: number): string {\n return Math.trunc(value).toString();\n}\n\nexport function numberAsUint(value: number): string {\n const v = Math.max(0, Math.trunc(value));\n return `${v.toString()}u`;\n}\n\nexport function numberAsFloat(value: number): string {\n return value === Number.POSITIVE_INFINITY\n ? \"INFINITY\"\n : value === Number.NEGATIVE_INFINITY\n ? \"-INFINITY\"\n : Number.isInteger(value)\n ? value.toFixed(1)\n : value.toString();\n}\n","import * as THREE from \"three\";\n\nimport type { Dyno, IOTypes } from \"./base\";\nimport {\n type DynoJsType,\n type DynoType,\n type SimpleTypes,\n isAllFloatType,\n isBoolType,\n isIntType,\n isUintType,\n numberAsFloat,\n numberAsInt,\n numberAsUint,\n} from \"./types\";\n\nexport type DynoVal = DynoValue | HasDynoOut;\n\nexport function valType(val: DynoVal): T {\n if (val instanceof DynoValue) {\n return val.type;\n }\n const value = val.dynoOut();\n return value.type;\n}\n\nexport interface HasDynoOut {\n dynoOut(): DynoValue;\n}\n\nexport class DynoValue {\n type: T;\n // This field prevents TypeScript structural matching on objects with a \"type\" field\n private __isDynoValue = true;\n\n constructor(type: T) {\n this.type = type;\n }\n}\n\nexport class DynoOutput<\n T extends DynoType,\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends DynoValue {\n dyno: Dyno;\n key: string;\n\n constructor(dyno: Dyno, key: string) {\n super(dyno.outTypes[key] as T);\n this.dyno = dyno;\n this.key = key;\n }\n}\n\nexport class DynoLiteral extends DynoValue {\n literal: string;\n\n constructor(type: T, literal: string) {\n super(type);\n this.literal = literal;\n }\n\n getLiteral(): string {\n return this.literal;\n }\n}\n\nexport function dynoLiteral(\n type: T,\n literal: string,\n): DynoLiteral {\n return new DynoLiteral(type, literal);\n}\n\nexport class DynoConst extends DynoLiteral {\n value: DynoJsType;\n\n constructor(type: T, value: DynoJsType) {\n super(type, \"\");\n this.value = value;\n }\n\n getLiteral(): string {\n const { type, value } = this;\n switch (type) {\n case \"bool\":\n return value ? \"true\" : \"false\";\n case \"uint\":\n return numberAsUint(value as number);\n case \"int\":\n return numberAsInt(value as number);\n case \"float\":\n return numberAsFloat(value as number);\n case \"bvec2\": {\n const v = value as [boolean, boolean];\n return `bvec2(${v[0]}, ${v[1]})`;\n }\n case \"uvec2\": {\n if (value instanceof THREE.Vector2) {\n return `uvec2(${numberAsUint(value.x)}, ${numberAsUint(value.y)})`;\n }\n const v = value as [number, number] | Uint32Array;\n return `uvec2(${numberAsUint(v[0])}, ${numberAsUint(v[1])})`;\n }\n case \"ivec2\": {\n if (value instanceof THREE.Vector2) {\n return `ivec2(${numberAsInt(value.x)}, ${numberAsInt(value.y)})`;\n }\n const v = value as [number, number] | Int32Array;\n return `ivec2(${numberAsInt(v[0])}, ${numberAsInt(v[1])})`;\n }\n case \"vec2\": {\n if (value instanceof THREE.Vector2) {\n return `vec2(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)})`;\n }\n const v = value as [number, number] | Float32Array;\n return `vec2(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])})`;\n }\n case \"bvec3\": {\n const v = value as [boolean, boolean, boolean];\n return `bvec3(${v[0]}, ${v[1]}, ${v[2]})`;\n }\n case \"uvec3\": {\n if (value instanceof THREE.Vector3) {\n return `uvec3(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)})`;\n }\n const v = value as [number, number, number] | Uint32Array;\n return `uvec3(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])})`;\n }\n case \"ivec3\": {\n if (value instanceof THREE.Vector3) {\n return `ivec3(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)})`;\n }\n const v = value as [number, number, number] | Int32Array;\n return `ivec3(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])})`;\n }\n case \"vec3\": {\n if (value instanceof THREE.Vector3) {\n return `vec3(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)})`;\n }\n const v = value as [number, number, number] | Float32Array;\n return `vec3(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])})`;\n }\n case \"bvec4\": {\n const v = value as [boolean, boolean, boolean, boolean];\n return `bvec4(${v[0]}, ${v[1]}, ${v[2]}, ${v[3]})`;\n }\n case \"uvec4\": {\n if (value instanceof THREE.Vector4) {\n return `uvec4(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)}, ${numberAsUint(value.w)})`;\n }\n const v = value as [number, number, number, number] | Uint32Array;\n return `uvec4(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])}, ${numberAsUint(v[3])})`;\n }\n case \"ivec4\": {\n if (value instanceof THREE.Vector4) {\n return `ivec4(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)}, ${numberAsInt(value.w)})`;\n }\n const v = value as [number, number, number, number] | Int32Array;\n return `ivec4(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])}, ${numberAsInt(v[3])})`;\n }\n case \"vec4\": {\n if (value instanceof THREE.Vector4) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n if (value instanceof THREE.Quaternion) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n const v = value as [number, number, number, number] | Float32Array;\n return `vec4(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])}, ${numberAsFloat(v[3])})`;\n }\n case \"mat2\":\n case \"mat2x2\": {\n const m = value as DynoJsType<\"mat2\">;\n const e =\n m instanceof THREE.Matrix2 ? m.elements : (value as Float32Array);\n const arg = new Array(4).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x3\": {\n const e = value as DynoJsType<\"mat2x3\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x4\": {\n const e = value as DynoJsType<\"mat2x4\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3\":\n case \"mat3x3\": {\n const m = value as DynoJsType<\"mat3\">;\n const e =\n m instanceof THREE.Matrix3 ? m.elements : (value as Float32Array);\n const arg = new Array(9).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x2\": {\n const e = value as DynoJsType<\"mat3x2\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x4\": {\n const e = value as DynoJsType<\"mat3x4\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4\":\n case \"mat4x4\": {\n const m = value as DynoJsType<\"mat4\">;\n const e =\n m instanceof THREE.Matrix4 ? m.elements : (value as Float32Array);\n const arg = new Array(16).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x2\": {\n const e = value as DynoJsType<\"mat4x2\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x3\": {\n const e = value as DynoJsType<\"mat4x3\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n default:\n throw new Error(`Type not implemented: ${String(type)}`);\n }\n }\n}\n\nexport function dynoConst(\n type: T,\n value: DynoJsType,\n): DynoConst {\n return new DynoConst(type, value);\n}\n\nexport function literalZero(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(false)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(0.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(0)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(1u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalNegOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(-1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(-1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0xFFFFFFFFu)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n","import type { IUniform } from \"three\";\nimport type { DynoType } from \"./types\";\nimport {\n DynoLiteral,\n DynoOutput,\n type DynoVal,\n DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nconst DEFAULT_INDENT = \" \";\n\nexport class Compilation {\n globals: Set = new Set();\n statements: string[] = [];\n uniforms: Record = {};\n declares: Set = new Set();\n updaters: (() => void)[] = [];\n sequence = 0;\n indent: string = DEFAULT_INDENT;\n\n constructor({ indent }: { indent?: string } = {}) {\n this.indent = indent ?? DEFAULT_INDENT;\n }\n\n nextSequence() {\n return this.sequence++;\n }\n}\n\nexport type IOTypes = Record;\ntype GenerateContext = {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n};\n\nexport class Dyno {\n inTypes: InTypes;\n outTypes: OutTypes;\n\n inputs: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n }) {\n this.inTypes = inTypes ?? ({} as InTypes);\n this.outTypes = outTypes ?? ({} as OutTypes);\n this.inputs = inputs ?? {};\n this.update = update;\n\n this.globals = globals;\n this.statements = statements;\n this.generate =\n generate ??\n (({ inputs, outputs, compile }) => {\n return {\n globals: this.globals?.({ inputs, outputs, compile }),\n statements: this.statements?.({ inputs, outputs, compile }),\n };\n });\n }\n\n get outputs(): { [K in keyof OutTypes]: DynoVal } {\n const outputs = {} as { [K in keyof OutTypes]: DynoVal };\n for (const key in this.outTypes) {\n outputs[key] = new DynoOutput(this, key);\n }\n return outputs;\n }\n\n apply(inputs: { [K in keyof InTypes]?: DynoVal }): {\n [K in keyof OutTypes]: DynoVal;\n } {\n Object.assign(this.inputs, inputs);\n return this.outputs;\n }\n\n compile({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }): string[] {\n const result = [\n `// ${this.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`,\n ];\n\n const declares: (keyof OutTypes)[] = [];\n for (const key in outputs) {\n const name = outputs[key];\n if (name && !compile.declares.has(name)) {\n compile.declares.add(name);\n declares.push(key);\n }\n }\n\n const { globals, statements, uniforms } = this.generate({\n inputs,\n outputs,\n compile,\n });\n for (const global of globals ?? []) {\n compile.globals.add(global);\n }\n for (const key in uniforms) {\n compile.uniforms[key] = uniforms[key];\n }\n if (this.update) {\n compile.updaters.push(this.update);\n }\n\n for (const key of declares) {\n const name = outputs[key];\n if (name) {\n if (!compile.uniforms[name]) {\n result.push(`${dynoDeclare(name, this.outTypes[key])};`);\n }\n }\n }\n\n if (statements?.length) {\n result.push(\"{\");\n result.push(...statements.map((line) => compile.indent + line));\n result.push(\"}\");\n }\n return result;\n }\n}\n\nexport type DynoBlockType = (\n inputs: { [K in keyof InTypes]?: DynoVal },\n outputs: { [K in keyof OutTypes]?: DynoVal },\n { roots }: { roots: Dyno[] },\n) => { [K in keyof OutTypes]?: DynoVal } | undefined;\n\nexport class DynoBlock<\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends Dyno {\n construct: DynoBlockType;\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n construct,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n construct: DynoBlockType;\n }) {\n super({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n generate: (args) => this.generateBlock(args),\n });\n this.construct = construct;\n }\n\n generateBlock({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }) {\n const blockInputs: { [K in keyof InTypes]?: DynoVal } = {};\n const blockOutputs: { [K in keyof OutTypes]?: DynoVal } = {};\n\n for (const key in inputs) {\n if (inputs[key] != null) {\n blockInputs[key] = new DynoLiteral(this.inTypes[key], inputs[key]);\n }\n }\n for (const key in outputs) {\n if (outputs[key] != null) {\n blockOutputs[key] = new DynoValue(this.outTypes[key]);\n }\n }\n\n const options: { roots: Dyno[] } = { roots: [] };\n const returned = this.construct(blockInputs, blockOutputs, options);\n\n for (const global of this.globals?.({ inputs, outputs, compile }) ?? []) {\n compile.globals.add(global);\n }\n\n const ordering: Dyno[] = [];\n const nodeOuts = new Map<\n Dyno,\n { sequence: number; outNames: Map; newOuts: Set }\n >();\n\n function visit(\n node: Dyno,\n outKey?: string,\n outName?: string,\n ) {\n let outs = nodeOuts.get(node);\n if (!outs) {\n // First time visiting this node\n outs = {\n sequence: compile.nextSequence(),\n outNames: new Map(),\n newOuts: new Set(),\n };\n nodeOuts.set(node, outs);\n\n for (const key in node.inputs) {\n let input = node.inputs[key];\n while (input) {\n if (input instanceof DynoValue) {\n if (input instanceof DynoOutput) {\n visit(input.dyno, input.key);\n }\n break;\n }\n // Must be as HasDynoOut\n if (typeof input.dynoOut !== \"function\") {\n throw new Error(\n `dynoOut is not a function for ${input.constructor.name}`,\n );\n }\n input = input.dynoOut();\n }\n }\n ordering.push(node);\n }\n if (outKey) {\n if (!outName) {\n outs.newOuts.add(outKey);\n }\n outs.outNames.set(outKey, outName ?? `${outKey}_${outs.sequence}`);\n }\n }\n\n for (const root of options.roots) {\n visit(root);\n }\n\n for (const key in blockOutputs) {\n let value = returned?.[key] ?? blockOutputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoOutput) {\n visit(value.dyno, value.key, outputs[key]);\n }\n break;\n }\n // Must be as HasDynoOut\n value = value.dynoOut();\n }\n blockOutputs[key] = value;\n }\n\n const steps = [];\n\n for (const dyno of ordering) {\n // compile.statements.push(`// ${dyno.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`);\n\n const inputs: Record = {};\n const outputs: Record = {};\n\n for (const key in dyno.inputs) {\n let value = dyno.inputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoLiteral) {\n inputs[key] = value.getLiteral();\n } else if (value instanceof DynoOutput) {\n const source = nodeOuts.get(value.dyno)?.outNames.get(value.key);\n if (!source) {\n throw new Error(\n `Source not found for ${value.dyno.constructor.name}.${value.key}`,\n );\n }\n inputs[key] = source;\n }\n break;\n }\n // Must be as HasDynOut\n value = value.dynoOut();\n }\n }\n\n const outs = nodeOuts.get(dyno) ?? { outNames: new Map() };\n for (const [key, name] of outs.outNames.entries()) {\n outputs[key] = name;\n }\n\n const newSteps = dyno.compile({ inputs, outputs, compile });\n steps.push(newSteps);\n }\n\n const literalOutputs = [];\n for (const key in outputs) {\n if (blockOutputs[key] instanceof DynoLiteral) {\n literalOutputs.push(\n `${outputs[key]} = ${blockOutputs[key].getLiteral()};`,\n );\n }\n }\n if (literalOutputs.length > 0) {\n steps.push(literalOutputs);\n }\n\n const statements = steps.flatMap((step, index) => {\n // Add a blank line between steps\n return index === 0 ? step : [\"\", ...step];\n });\n return { statements };\n }\n}\n\nexport function dynoBlock<\n InTypes extends Record,\n OutTypes extends Record,\n>(\n inTypes: InTypes,\n outTypes: OutTypes,\n construct: DynoBlockType,\n { update, globals }: { update?: () => void; globals?: () => string[] } = {},\n) {\n return new DynoBlock({ inTypes, outTypes, construct, update, globals });\n}\n\nexport function dyno<\n InTypes extends Record,\n OutTypes extends Record,\n>({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n}: {\n inTypes: InTypes;\n outTypes: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n}) {\n return new Dyno({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n });\n}\n\nexport function dynoDeclare(name: string, type: DynoType, count?: number) {\n const typeStr = typeof type === \"string\" ? type : type.type;\n if (!typeStr) {\n throw new Error(`Invalid DynoType: ${String(type)}`);\n }\n return `${typeStr} ${name}${count != null ? `[${count}]` : \"\"}`;\n}\n\nexport function unindentLines(s: string): string[] {\n let seenNonEmpty = false;\n const lines = s\n .split(\"\\n\")\n .map((line) => {\n const trimmedLine = line.trimEnd();\n if (seenNonEmpty) {\n return trimmedLine;\n }\n if (trimmedLine.length > 0) {\n seenNonEmpty = true;\n return trimmedLine;\n }\n return null;\n })\n .filter((line) => line != null);\n while (lines.length > 0 && lines[lines.length - 1].length === 0) {\n lines.pop();\n }\n if (lines.length === 0) {\n return [];\n }\n\n const indent = lines[0].match(/^\\s*/)?.[0];\n if (!indent) {\n return lines; // No indent, return as is\n }\n // Remove indent from the beginning of each line\n const regex = new RegExp(`^${indent}`);\n return lines.map((line) => line.replace(regex, \"\"));\n}\n\nexport function unindent(s: string): string {\n return unindentLines(s).join(\"\\n\");\n}\n\nexport class UnaryOp<\n A extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n outKey,\n outTypeFunc,\n }: { a: DynoVal; outKey: OutKey; outTypeFunc: (aType: A) => OutType }) {\n const inTypes = { a: valType(a) };\n const outType = outTypeFunc(valType(a));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class BinaryOp<\n A extends DynoType,\n B extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b) };\n const outType = outTypeFunc(valType(a), valType(b));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class TrinaryOp<\n A extends DynoType,\n B extends DynoType,\n C extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B; c: C }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n c,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n c: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B, cType: C) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b), c: valType(c) };\n const outType = outTypeFunc(valType(a), valType(b), valType(c));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b, c } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n","import { Gunzip } from \"fflate\";\nimport * as THREE from \"three\";\n\n// Miscellaneous utility functions for Spark\n\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SCALE_ZERO,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_MIN_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines.js\";\nimport { unindent } from \"./dyno/base.js\";\n\nexport const threeRevision = Number.parseInt(THREE.REVISION);\nexport const threeMrtArray = threeRevision >= 179;\n\nconst f32buffer = new Float32Array(1);\nconst u32buffer = new Uint32Array(f32buffer.buffer);\nconst supportsFloat16Array = \"Float16Array\" in globalThis;\nconst f16buffer = supportsFloat16Array\n ? new globalThis[\"Float16Array\" as keyof typeof globalThis](1)\n : null;\nconst u16buffer = new Uint16Array(f16buffer?.buffer);\n\n// Returns a normalized array of numbers\nexport function normalize(vec: number[]) {\n const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0));\n return vec.map((v) => v / norm);\n}\n\n// Reinterpret the bits of a float32 as a uint32\nexport function floatBitsToUint(f: number): number {\n f32buffer[0] = f;\n return u32buffer[0];\n}\n\n// Reinterpret the bits of a uint32 as a float32\nexport function uintBitsToFloat(u: number): number {\n u32buffer[0] = u;\n return f32buffer[0];\n}\n\nexport const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS;\nexport const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS;\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfNative(f: number): number {\n f16buffer[0] = f;\n return u16buffer[0];\n}\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfJS(f: number): number {\n // Store the value into the shared Float32 array.\n f32buffer[0] = f;\n const bits = u32buffer[0];\n\n // Extract sign (1 bit), exponent (8 bits), and fraction (23 bits)\n const sign = (bits >> 31) & 0x1;\n const exp = (bits >> 23) & 0xff;\n const frac = bits & 0x7fffff;\n const halfSign = sign << 15;\n\n // Handle special cases: NaN and Infinity\n if (exp === 0xff) {\n // NaN: set all exponent bits to 1 and some nonzero fraction bits.\n if (frac !== 0) {\n return halfSign | 0x7fff;\n }\n // Infinity\n return halfSign | 0x7c00;\n }\n\n // Adjust the exponent from float32 bias (127) to float16 bias (15)\n const newExp = exp - 127 + 15;\n\n // Handle overflow: too large to represent in half precision.\n if (newExp >= 0x1f) {\n return halfSign | 0x7c00; // Infinity\n }\n if (newExp <= 0) {\n // Handle subnormals and underflow.\n if (newExp < -10) {\n // Too small: underflows to zero.\n return halfSign;\n }\n // Convert to subnormal: add the implicit leading 1 to the fraction,\n // then shift to align with the half-precision's 10 fraction bits.\n const subFrac = (frac | 0x800000) >> (1 - newExp + 13);\n return halfSign | subFrac;\n }\n\n // Normalized half-precision number: shift fraction to fit into 10 bits.\n const halfFrac = frac >> 13;\n return halfSign | (newExp << 10) | halfFrac;\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfNative(u: number): number {\n u16buffer[0] = u;\n return f16buffer[0];\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfJS(h: number): number {\n // Extract the sign (1 bit), exponent (5 bits), and fraction (10 bits)\n const sign = (h >> 15) & 0x1;\n const exp = (h >> 10) & 0x1f;\n const frac = h & 0x3ff;\n\n let f32bits: number;\n\n if (exp === 0) {\n if (frac === 0) {\n // Zero (positive or negative)\n f32bits = sign << 31;\n } else {\n // Subnormal half-precision number.\n // Normalize the subnormal number:\n let mant = frac;\n let e = -14; // For half, the exponent for subnormals is fixed at -14.\n // Shift left until the implicit leading 1 is in place.\n while ((mant & 0x400) === 0) {\n // 0x400 === 1 << 10\n mant <<= 1;\n e--;\n }\n // Remove the leading 1 (which is now implicit)\n mant &= 0x3ff;\n // Convert the half exponent (e) to the 32-bit float exponent:\n const newExp = e + 127; // 32-bit float bias is 127.\n const newFrac = mant << 13; // Align to 23-bit fraction (23 - 10 = 13)\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n } else if (exp === 0x1f) {\n // Handle special cases for Infinity and NaN.\n if (frac === 0) {\n // Infinity\n f32bits = (sign << 31) | 0x7f800000;\n } else {\n // NaN (we choose a quiet NaN)\n f32bits = (sign << 31) | 0x7fc00000;\n }\n } else {\n // Normalized half-precision number.\n // Adjust exponent from half (bias 15) to float32 (bias 127)\n const newExp = exp - 15 + 127;\n const newFrac = frac << 13;\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n\n // Write the 32-bit bit pattern to the shared buffer,\n // then read it as a float32 to return a JavaScript number.\n u32buffer[0] = f32bits;\n return f32buffer[0];\n}\n\n// Convert a number 0..1 to a 0..255 uint\nexport function floatToUint8(v: number): number {\n // Converts from 0..1 float to 0..255 uint8\n return Math.max(0, Math.min(255, Math.round(v * 255)));\n}\n\n// Convert a number -1..1 to a -127..127 int\nexport function floatToSint8(v: number): number {\n // Converts from -1..1 float to -127..127 int8\n return Math.max(-127, Math.min(127, Math.round(v * 127)));\n}\n\n// Convert a 0..255 uint to a 0..1 float\nexport function Uint8ToFloat(v: number): number {\n // Converts from 0..255 uint8 to 0..1 float\n return v / 255;\n}\n\n// Convert a -127..127 int to a -1..1 float\nexport function Sint8ToFloat(v: number): number {\n // Converts from -127..127 int8 to -1..1 float\n return v / 127;\n}\n\n// A simple utility class for caching a fixed number of items\nexport class DataCache {\n // Maximum number of items to cache\n maxItems: number;\n\n // Function to fetch data for a key\n asyncFetch: (key: string) => Promise;\n\n // Function to dispose of data when it is no longer needed\n dispose?: (data: unknown) => void;\n\n // Array of cached items\n items: { key: string; data: unknown }[];\n\n // In-progress fetch promises\n pending: Map>;\n\n // Create a DataCache with a given function that fetches data not in the cache.\n constructor({\n asyncFetch,\n dispose,\n maxItems = 5,\n }: {\n asyncFetch: (key: string) => Promise;\n dispose?: (data: unknown) => void;\n maxItems?: number;\n }) {\n this.asyncFetch = asyncFetch;\n this.dispose = dispose;\n this.maxItems = maxItems;\n this.items = [];\n this.pending = new Map();\n }\n\n has(key: string): boolean {\n return this.items.some((item) => item.key === key);\n }\n\n getImmediate(key: string): unknown | undefined {\n const index = this.items.findIndex((item) => item.key === key);\n if (index >= 0) {\n // Data exists in our cache, move it to the end of the array\n const item = this.items.splice(index, 1)[0];\n this.items.push(item);\n // Return the cached data\n return item.data;\n }\n return undefined;\n }\n\n // Fetch data for the key, returning cached data if available.\n async getFetch(key: string): Promise {\n const immediate = this.getImmediate(key);\n if (immediate !== undefined) {\n return immediate;\n }\n\n let pending = this.pending.get(key);\n if (pending) {\n return pending;\n }\n\n pending = this.asyncFetch(key).then((data) => {\n this.pending.delete(key);\n\n // Add the data to the cache\n this.items.push({ key, data });\n // If the cache is too large, remove the oldest accessed item\n while (this.items.length > this.maxItems) {\n const removed = this.items.shift();\n if (removed && this.dispose) {\n this.dispose(removed.data);\n }\n }\n // Return the fetched data\n return data;\n });\n this.pending.set(key, pending);\n return pending;\n }\n}\n\n// Like Array.map but for objects\nexport function mapObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n const entries = Object.entries(obj).map(([key, value]) => [\n key,\n fn(value, key),\n ]);\n // Returns a new object with the mapped values\n return Object.fromEntries(entries);\n}\n\n// Like Array.map().filter() but for objects.\n// The callback fn() should return undefined to filter out the key.\nexport function mapFilterObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n // If no return (or return undefined), the key is not included in the result\n const entries = Object.entries(obj)\n .map(([key, value]) => [key, fn(value, key)])\n .filter(([_, value]) => value !== undefined);\n // Returns a new object with the filtered values\n return Object.fromEntries(entries);\n}\n\n// Recursively finds all ArrayBuffers in an object and returns them as an array\n// to use as transferable objects to send between workers.\nexport function getTransferable(ctx: unknown): Transferable[] {\n const buffers: Transferable[] = [];\n const seen = new Set();\n\n function traverse(obj: unknown) {\n if (obj && typeof obj === \"object\" && !seen.has(obj)) {\n seen.add(obj);\n\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n // Handles TypedArrays and DataView\n buffers.push(obj.buffer as ArrayBuffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n\n traverse(ctx);\n return buffers;\n}\n\n// Create an array of the given size and initialize element with initFunction()\nexport function newArray(\n n: number,\n initFunction: (index: number) => T,\n): T[] {\n // Creates a new array and calls a constructor function for each element with index\n return new Array(n).fill(null).map((_, i) => initFunction(i));\n}\n\n// A free list that has a pool of items of type T, with callbacks\n// for constructing, disposing, and checking if an item is valid for the given args.\nexport class FreeList {\n items: T[];\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n\n constructor({\n // Allocate a new item with the given args\n allocate,\n // Dispose of an item (optional, if GC is enough)\n dispose,\n // Check if an existing item in the list is valid for the given args,\n // allowing you to store heterogeneous items in the list.\n valid,\n }: {\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n }) {\n this.items = [];\n this.allocate = allocate;\n this.dispose = dispose;\n this.valid = valid;\n }\n\n // Allocate a new item from the free list, first checking if a existing item\n // on the freelist is valid for the given args.\n alloc(args: Args): T {\n while (true) {\n const item = this.items.pop();\n if (!item) {\n // No items in the free list, allocate a new one\n break;\n }\n if (this.valid(item, args)) {\n // Found a valid item, return it\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): found valid item. Reusing...`);\n return item;\n }\n // Item isn't valid for our args, dispose of it and try again\n if (this.dispose) {\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): disposing invalid item.`);\n this.dispose(item);\n }\n }\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): allocating new item`);\n return this.allocate(args);\n }\n\n free(item: T) {\n // Return item to the free list\n this.items.push(item);\n }\n\n disposeAll() {\n // Disposes of all items in the free list\n let item: T | undefined;\n item = this.items.pop();\n while (item) {\n if (this.dispose) {\n this.dispose(item);\n }\n item = this.items.pop();\n }\n }\n}\n\nexport function encodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) {\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n extA[i4] = floatBitsToUint(x);\n extA[i4 + 1] = floatBitsToUint(y);\n extA[i4 + 2] = floatBitsToUint(z);\n extA[i4 + 3] = toHalf(opacity);\n extB[i4] = toHalf(r) | (toHalf(g) << 16);\n extB[i4 + 1] = toHalf(b) | (toHalf(Math.log(scaleX)) << 16);\n extB[i4 + 2] = toHalf(Math.log(scaleY)) | (toHalf(Math.log(scaleZ)) << 16);\n extB[i4 + 3] = encodeQuatOctXy1010R12(quatX, quatY, quatZ, quatW);\n}\n\nexport function decodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n result.center.x = uintBitsToFloat(extA[i4]);\n result.center.y = uintBitsToFloat(extA[i4 + 1]);\n result.center.z = uintBitsToFloat(extA[i4 + 2]);\n result.opacity = fromHalf(extA[i4 + 3] & 0xffff);\n result.color.r = fromHalf(extB[i4] & 0xffff);\n result.color.g = fromHalf(extB[i4] >>> 16);\n result.color.b = fromHalf(extB[i4 + 1] & 0xffff);\n result.scales.x = Math.exp(fromHalf(extB[i4 + 1] >>> 16));\n result.scales.y = Math.exp(fromHalf(extB[i4 + 2] & 0xffff));\n result.scales.z = Math.exp(fromHalf(extB[i4 + 2] >>> 16));\n decodeQuatOctXy1010R12(extB[i4 + 3], result.quaternion);\n return result;\n}\n\n// Encode a PackedSplat as 4 consecutive Uint32 elements in the packedSplats array.\n// The center coordinates x,y,z are encoded as float16, the scales x,y,z as a\n// logarithmic uint8, rotation as three uint8s representing rotation axis and angle,\n// and RGBA as 4xuint8.\nexport function setPackedSplat(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * opacity : opacity);\n\n // Alternate internal encodings commented out below.\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n // Encode the splat as 4 consecutive Uint32 elements\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] =\n uScaleX | (uScaleY << 8) | (uScaleZ << 16) | (uQuatZ << 24);\n}\n\n// Encode the center coordinates x,y,z in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatCenter(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n) {\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n const i4 = index * 4;\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (packedSplats[i4 + 2] & 0xffff0000);\n}\n\n// Encode the scales x,y,z in the packedSplats Uint32Array, leaving all other fields as is.\nexport function setPackedSplatScales(\n packedSplats: Uint32Array,\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n encoding?: {\n lnScaleMin?: number;\n lnScaleMax?: number;\n },\n) {\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const i4 = index * 4;\n packedSplats[i4 + 3] =\n uScaleX |\n (uScaleY << 8) |\n (uScaleZ << 16) |\n (packedSplats[i4 + 3] & 0xff000000);\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempQuaternion = new THREE.Quaternion();\n\n// Encode the rotation quatX, quatY, quatZ, quatW in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatQuat(\n packedSplats: Uint32Array,\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n) {\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n const i4 = index * 4;\n packedSplats[i4 + 2] =\n (packedSplats[i4 + 2] & 0x0000ffff) | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] = (packedSplats[i4 + 3] & 0x00ffffff) | (uQuatZ << 24);\n}\n\n// Encode the RGBA color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgba(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n a: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * a : a);\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n}\n\n// Encode the RGB color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgb(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n\n const i4 = index * 4;\n packedSplats[i4] =\n uR | (uG << 8) | (uB << 16) | (packedSplats[i4] & 0xff000000);\n}\n\n// Encode the opacity in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatOpacity(\n packedSplats: Uint32Array,\n index: number,\n opacity: number,\n) {\n const uA = floatToUint8(opacity);\n\n const i4 = index * 4;\n packedSplats[i4] = (packedSplats[i4] & 0x00ffffff) | (uA << 24);\n}\n\nconst packedCenter = new THREE.Vector3();\nconst packedScales = new THREE.Vector3();\nconst packedQuaternion = new THREE.Quaternion();\nconst packedColor = new THREE.Color();\nconst packedFields = {\n center: packedCenter,\n scales: packedScales,\n quaternion: packedQuaternion,\n color: packedColor,\n opacity: 0.0,\n};\n\n// Unpack all components of a PackedSplat from the packedSplats Uint32Array into\n// THREE.js vector objects. The returned objects will be reused each call.\nexport function unpackSplat(\n packedSplats: Uint32Array,\n index: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n\n const i4 = index * 4;\n const word0 = packedSplats[i4];\n const word1 = packedSplats[i4 + 1];\n const word2 = packedSplats[i4 + 2];\n const word3 = packedSplats[i4 + 3];\n\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n result.color.set(\n rgbMin + ((word0 & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 8) & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 16) & 0xff) / 255) * rgbRange,\n );\n result.opacity = ((word0 >>> 24) & 0xff) / 255;\n if (encoding?.lodOpacity) {\n result.opacity = 2.0 * result.opacity;\n }\n result.center.set(\n fromHalf(word1 & 0xffff),\n fromHalf((word1 >>> 16) & 0xffff),\n fromHalf(word2 & 0xffff),\n );\n\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n const uScalesX = word3 & 0xff;\n result.scales.x =\n uScalesX === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesX - 1) * lnScaleScale);\n const uScalesY = (word3 >>> 8) & 0xff;\n result.scales.y =\n uScalesY === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesY - 1) * lnScaleScale);\n const uScalesZ = (word3 >>> 16) & 0xff;\n result.scales.z =\n uScalesZ === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesZ - 1) * lnScaleScale);\n\n const uQuat = ((word2 >>> 16) & 0xffff) | ((word3 >>> 8) & 0xff0000);\n decodeQuatOctXy88R8(uQuat, result.quaternion);\n // decodeQuatXyz888(uQuat, result.quaternion);\n // decodeQuatEulerXyz888(uQuat, result.quaternion);\n\n return result;\n}\n\n// Compute a texture array size that is large enough to fit numSplats. The most\n// common 2D texture size in WebGL2 is 4096x4096 which only allows for 16M splats,\n// so Spark stores Gsplat data in a 2D texture array, which most platforms support\n// up to 2048x2048x2048 = 8G splats. Allocations that fit within a single 2D texture\n// array layer will be rounded up to fill an entire texture row. Once a texture\n// array layer is filled, the allocation will be rounded up to fill an entire layer.\n// This is done so the entire set of splats can be covered by min/max coords across\n// each dimension.\nexport function getTextureSize(numSplats: number): {\n width: number;\n height: number;\n depth: number;\n maxSplats: number;\n} {\n // Compute a texture array size that is large enough to fit numSplats.\n // The width is always 2048, the height sized to fit the splats but no larger than 2048.\n // The depth is the number of layers needed to fit the splats.\n // maxSplats is computed as the new total available splats that can be stored.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n const maxSplats = width * height * depth;\n return { width, height, depth, maxSplats };\n}\n\nexport function computeMaxSplats(numSplats: number): number {\n // Compute the size of a Gsplat array texture (2048x2048xD) that can fit\n // numSplats splats, and return the total number of splats that can be stored\n // in such a texture.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n return width * height * depth;\n}\n\n// Heuristic function to determine if we are running on a mobile device.\nexport function isMobile(): boolean {\n if (navigator.platform.toLowerCase().startsWith(\"win\")) {\n return false;\n }\n if (navigator.maxTouchPoints > 0) {\n // Touch-enabled device, assume it's mobile\n return true;\n }\n return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test(\n navigator.userAgent,\n );\n}\n\n// Heuristic function to determine if we are running on an Android device.\n// (does not include Oculus Quest)\nexport function isAndroid(): boolean {\n return (\n /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent)\n );\n}\n\n// Heuristic function to determine if we are running on an Oculus Quest device.\nexport function isOculus(): boolean {\n return !!navigator.xr && /Oculus/.test(navigator.userAgent);\n}\n\nexport function isQuest2() {\n return isOculus() && /Quest 2/.test(navigator.userAgent);\n}\n\nexport function isIos(): boolean {\n return /iPhone|iPad/.test(navigator.userAgent);\n}\n\nexport function isVisionPro(): boolean {\n return (\n !!navigator.xr &&\n isIos() &&\n /Safari/.test(navigator.userAgent) &&\n isMobile()\n );\n}\n\n// Take an array of RGBA8 encoded pixels and flip them vertically in-place.\n// This is useful for converting between top-left and bottom-left coordinate systems\n// in standard 2D images vs WebGL2.\nexport function flipPixels(\n pixels: Uint8Array,\n width: number,\n height: number,\n): Uint8Array {\n // Flips pixels vertically in-place, returns original array.\n const tempLine = new Uint8Array(width * 4);\n\n // Only need to process half the height since we're swapping\n for (let y = 0; y < height / 2; y++) {\n const topOffset = y * width * 4;\n const bottomOffset = (height - 1 - y) * width * 4;\n\n // Save top line to temp buffer\n tempLine.set(pixels.subarray(topOffset, topOffset + width * 4));\n // Move bottom line to top\n pixels.set(\n pixels.subarray(bottomOffset, bottomOffset + width * 4),\n topOffset,\n );\n // Move saved top line to bottom\n pixels.set(tempLine, bottomOffset);\n }\n return pixels;\n}\n\n// Utility to take an array of RGBA8 encoded pixels and convert them to a\n// PNG-encoded image data URL that can be downloaded to the client.\nexport function pixelsToPngUrl(\n pixels: Uint8Array,\n width: number,\n height: number,\n): string {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Can't get 2d context\");\n }\n const imageData = ctx.createImageData(width, height);\n imageData.data.set(pixels);\n ctx.putImageData(imageData, 0, 0);\n return canvas.toDataURL(\"image/png\");\n}\n\n// Manually clone a THREE.Clock object.\nexport function cloneClock(clock: THREE.Clock): THREE.Clock {\n const newClock = new THREE.Clock(clock.autoStart);\n newClock.startTime = clock.startTime;\n newClock.oldTime = clock.oldTime;\n newClock.elapsedTime = clock.elapsedTime;\n newClock.running = clock.running;\n return newClock;\n}\n\n// Utility to filter out an undefined values from an object.\nexport function omitUndefined(obj: T): Partial {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => value !== undefined),\n ) as Partial;\n}\n\n// \"Identity\" vertex shader that just passes through the position.\nexport const IDENT_VERTEX_SHADER = unindent(`\n precision highp float;\n\n in vec3 position;\n\n void main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n }\n`);\n\n// Returns the average position of an array of THREE.Vector3.\nexport function averagePositions(positions: THREE.Vector3[]): THREE.Vector3 {\n const sum = new THREE.Vector3();\n for (const position of positions) {\n sum.add(position);\n }\n return sum.divideScalar(positions.length);\n}\n\n// Returns an \"average\" of an array of THREE.Quaternion objects.\n// Note that this is not a spherical lerp between quaternions but\n// rather an arithmetic mean that is normalized to unit length.\nexport function averageQuaternions(\n quaternions: THREE.Quaternion[],\n): THREE.Quaternion {\n if (quaternions.length === 0) {\n return new THREE.Quaternion();\n }\n const sum = quaternions[0].clone();\n for (let i = 1; i < quaternions.length; i++) {\n if (quaternions[i].dot(quaternions[0]) < 0.0) {\n sum.x -= quaternions[i].x;\n sum.y -= quaternions[i].y;\n sum.z -= quaternions[i].z;\n sum.w -= quaternions[i].w;\n } else {\n sum.x += quaternions[i].x;\n sum.y += quaternions[i].y;\n sum.z += quaternions[i].z;\n sum.w += quaternions[i].w;\n }\n }\n return sum.normalize();\n}\n\n// Compare two coordinates given by matrix1 and matrix2, returning the distance\n// between their origins and the \"coincidence\" of their orientations, defined\n// as the dot product of their \"-z\" axes.\nexport function coinciDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n const direction1 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix1)\n .sub(origin1)\n .normalize();\n const direction2 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix2)\n .sub(origin2)\n .normalize();\n\n const distance = origin1.distanceTo(origin2);\n const coincidence = direction1.dot(direction2);\n return { distance, coincidence };\n}\n\n// Utility function that returns whether two coordinate system origins\n// given by matrix1 and matrix2 are within a certain maxDistance of each other.\nexport function withinDist({\n matrix1,\n matrix2,\n maxDistance,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n}): boolean {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n return origin1.distanceTo(origin2) <= maxDistance;\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined by a maxDistance and a minCoincidence.\nexport function withinCoinciDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoincidence,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoincidence?: number;\n}): boolean {\n const { distance, coincidence } = coinciDist(matrix1, matrix2);\n return (\n distance <= maxDistance &&\n (minCoincidence == null || coincidence >= minCoincidence)\n );\n}\n\n// Compare two coordinate systems given by matrix1 and matrix2, returning the\n// distance between their origins and the \"coorientation\" of their orientations,\n// define as the dot product of their quaternion transforms (flipping their\n// orientation to be on the same hemisphere if necessary).\nexport function coorientDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const [origin1, rotate1] = [new THREE.Vector3(), new THREE.Quaternion()];\n const [origin2, rotate2] = [new THREE.Vector3(), new THREE.Quaternion()];\n matrix1.decompose(origin1, rotate1, new THREE.Vector3());\n matrix2.decompose(origin2, rotate2, new THREE.Vector3());\n\n const distance = origin1.distanceTo(origin2);\n const coorient = Math.abs(rotate1.dot(rotate2));\n return { distance, coorient };\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined a maxDistance and a minCoorient.\nexport function withinCoorientDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoorient,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoorient?: number;\n}): boolean {\n const { distance, coorient } = coorientDist(matrix1, matrix2);\n return (\n distance <= maxDistance && (minCoorient == null || coorient >= minCoorient)\n );\n}\n\n// Like Math.sign but with a custom epsilon value.\nexport function epsilonSign(value: number, epsilon = 0.001): number {\n if (Math.abs(value) < epsilon) {\n return 0;\n }\n return Math.sign(value);\n}\n\n// Encode a THREE.Quaternion into a 24-bit integer, converting the xyz coordinates\n// to signed 8-bit integers (w can be derived from xyz), and flipping the sign\n// of the quaternion if necessary to make this possible (q == -q for quaternions).\nexport function encodeQuatXyz888(q: THREE.Quaternion): number {\n const negQuat = q.w < 0.0;\n const iQuatX = floatToSint8(negQuat ? -q.x : q.x);\n const iQuatY = floatToSint8(negQuat ? -q.y : q.y);\n const iQuatZ = floatToSint8(negQuat ? -q.z : q.z);\n const uQuatX = iQuatX & 0xff;\n const uQuatY = iQuatY & 0xff;\n const uQuatZ = iQuatZ & 0xff;\n return uQuatX | (uQuatY << 8) | (uQuatZ << 16);\n}\n\n// Decode a 24-bit integer of the quaternion's xyz coordinates into a THREE.Quaternion.\nexport function decodeQuatXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n const iQuatX = (encoded << 24) >> 24;\n const iQuatY = (encoded << 16) >> 24;\n const iQuatZ = (encoded << 8) >> 24;\n out.set(iQuatX / 127.0, iQuatY / 127.0, iQuatZ / 127.0, 0.0);\n const dotSelf = out.x * out.x + out.y * out.y + out.z * out.z;\n out.w = Math.sqrt(Math.max(0.0, 1.0 - dotSelf));\n return out;\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempNormalizedQuaternion = new THREE.Quaternion();\nconst tempAxis = new THREE.Vector3();\n\n/**\n * Encodes a THREE.Quaternion into a 24‐bit integer.\n *\n * Bit layout (LSB → MSB):\n * - Bits 0–7: quantized U (8 bits)\n * - Bits 8–15: quantized V (8 bits)\n * - Bits 16–23: quantized angle θ (8 bits) from [0,π]\n *\n * This version uses folded octahedral mapping (all inline).\n */\nexport function encodeQuatOctXy88R8(q: THREE.Quaternion): number {\n // Force the minimal representation (q.w >= 0)\n const qnorm = tempNormalizedQuaternion.copy(q).normalize();\n if (qnorm.w < 0) {\n qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w);\n }\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnorm.w);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(\n qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z,\n );\n const axis =\n xyz_norm < 1e-6\n ? tempAxis.set(1, 0, 0)\n : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm);\n // const foldAxis = (axis.z < 0);\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z);\n let p_x = axis.x / sum;\n let p_y = axis.y / sum;\n // Fold the lower hemisphere.\n if (axis.z < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 7 bits (0..127)\n const quantU = Math.round(u_f * 255);\n const quantV = Math.round(v_f * 255);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 10 bits (0..1023) ---\n const angleInt = Math.round(theta * (255 / Math.PI));\n\n // Pack into 24 bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16) | (quantV << 8) | quantU;\n}\n\n/**\n * Decodes a 24‐bit encoded quaternion (packed in a number) back to a THREE.Quaternion.\n *\n * Assumes the same bit layout as in encodeQuatOctXy88R8.\n */\nexport function decodeQuatOctXy88R8(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 8‐bit quantU and quantV, and 8‐bit angleInt.\n const quantU = encoded & 0xff; // bits 0–7\n const quantV = (encoded >>> 8) & 0xff; // bits 8–15\n const angleInt = (encoded >>> 16) & 0xff; // bits 16–23\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 255;\n const v_f = quantV / 255;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axis = tempAxis.set(f_x, f_y, f_z).normalize();\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 255) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axis.x * s, axis.y * s, axis.z * s, w);\n return out;\n}\n\n/**\n * Encodes a THREE.Quaternion into a 24‑bit unsigned integer\n * by converting it to Euler angles (roll, pitch, yaw).\n * The Euler angles are assumed to be in radians in the range [-π, π].\n * Each angle is normalized to [0,1] and quantized to 8 bits.\n * Bit layout (LSB→MSB):\n * - Bits 0–7: roll (quantized)\n * - Bits 8–15: pitch (quantized)\n * - Bits 16–23: yaw (quantized)\n */\nexport function encodeQuatEulerXyz888(q: THREE.Quaternion): number {\n // Normalize quaternion to ensure a proper rotation.\n const qNorm = q.clone().normalize();\n\n // Tait–Bryan angles (roll, pitch, yaw)\n const sinr_cosp = 2.0 * (qNorm.w * qNorm.x + qNorm.y * qNorm.z);\n const cosr_cosp = 1.0 - 2.0 * (qNorm.x * qNorm.x + qNorm.y * qNorm.y);\n const roll = Math.atan2(sinr_cosp, cosr_cosp);\n\n const sinp = 2.0 * (qNorm.w * qNorm.y - qNorm.z * qNorm.x);\n const pitch =\n Math.abs(sinp) >= 1.0 ? Math.sign(sinp) * (Math.PI / 2) : Math.asin(sinp);\n\n const siny_cosp = 2.0 * (qNorm.w * qNorm.z + qNorm.x * qNorm.y);\n const cosy_cosp = 1.0 - 2.0 * (qNorm.y * qNorm.y + qNorm.z * qNorm.z);\n const yaw = Math.atan2(siny_cosp, cosy_cosp);\n\n // Map each angle from [-π, π] to [0, 1]\n const normRoll = (roll + Math.PI) / (2 * Math.PI);\n const normPitch = (pitch + Math.PI) / (2 * Math.PI);\n const normYaw = (yaw + Math.PI) / (2 * Math.PI);\n\n // Quantize to 8 bits (0 to 255)\n const rollQ = Math.round(normRoll * 255);\n const pitchQ = Math.round(normPitch * 255);\n const yawQ = Math.round(normYaw * 255);\n\n // Pack into a 24-bit unsigned integer:\n // Bits 0–7: rollQ, Bits 8–15: pitchQ, Bits 16–23: yawQ.\n return (yawQ << 16) | (pitchQ << 8) | rollQ;\n}\n\n/**\n * Decodes a 24‑bit unsigned integer into a THREE.Quaternion\n * by unpacking three 8‑bit values (roll, pitch, yaw) in the range [0,255]\n * and then converting them back to Euler angles in [-π, π] and to a quaternion.\n */\nexport function decodeQuatEulerXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Unpack 8‑bit values.\n const rollQ = encoded & 0xff;\n const pitchQ = (encoded >>> 8) & 0xff;\n const yawQ = (encoded >>> 16) & 0xff;\n\n // Convert quantized values back to normalized [0,1] values.\n const normRoll = rollQ / 255;\n const normPitch = pitchQ / 255;\n const normYaw = yawQ / 255;\n\n // Map from [0,1] to [-π, π]\n const roll = normRoll * (2 * Math.PI) - Math.PI;\n const pitch = normPitch * (2 * Math.PI) - Math.PI;\n const yaw = normYaw * (2 * Math.PI) - Math.PI;\n\n // Convert Euler angles to quaternion (Tait–Bryan: roll, pitch, yaw).\n const cr = Math.cos(roll * 0.5);\n const sr = Math.sin(roll * 0.5);\n const cp = Math.cos(pitch * 0.5);\n const sp = Math.sin(pitch * 0.5);\n const cy = Math.cos(yaw * 0.5);\n const sy = Math.sin(yaw * 0.5);\n\n out.w = cr * cp * cy + sr * sp * sy;\n out.x = sr * cp * cy - cr * sp * sy;\n out.y = cr * sp * cy + sr * cp * sy;\n out.z = cr * cp * sy - sr * sp * cy;\n out.normalize();\n return out;\n}\n\nexport function encodeQuatOctXy1010R12(\n qx: number,\n qy: number,\n qz: number,\n qw: number,\n): number {\n const qlen = Math.sqrt(qx * qx + qy * qy + qz * qz + qw * qw);\n // Force the minimal representation (q.w >= 0)\n const qnx = (qw < 0 ? -qx : qx) / qlen;\n const qny = (qw < 0 ? -qy : qy) / qlen;\n const qnz = (qw < 0 ? -qz : qz) / qlen;\n const qnw = (qw < 0 ? -qw : qw) / qlen;\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnw);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(qnx * qnx + qny * qny + qnz * qnz);\n const axisX = xyz_norm < 1e-6 ? 1 : qnx / xyz_norm;\n const axisY = xyz_norm < 1e-6 ? 0 : qny / xyz_norm;\n const axisZ = xyz_norm < 1e-6 ? 0 : qnz / xyz_norm;\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axisX) + Math.abs(axisY) + Math.abs(axisZ);\n let p_x = axisX / sum;\n let p_y = axisY / sum;\n // Fold the lower hemisphere.\n if (axisZ < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 10 bits (0..1023)\n const quantU = Math.round(u_f * 1023);\n const quantV = Math.round(v_f * 1023);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 12 bits (0..4095) ---\n const angleInt = Math.round(theta * (4095 / Math.PI));\n\n // Pack into 32 bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20) | (quantV << 10) | quantU;\n}\n\nexport function decodeQuatOctXy1010R12(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 10‐bit quantU and quantV, and 12‐bit angleInt.\n const quantU = encoded & 0x3ff; // bits 0–9\n const quantV = (encoded >>> 10) & 0x3ff; // bits 10–19\n const angleInt = (encoded >>> 20) & 0xfff; // bits 20–31\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 1023;\n const v_f = quantV / 1023;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axisLen = Math.sqrt(f_x * f_x + f_y * f_y + f_z * f_z);\n const axisX = axisLen < 1e-6 ? 0 : f_x / axisLen;\n const axisY = axisLen < 1e-6 ? 0 : f_y / axisLen;\n const axisZ = axisLen < 1e-6 ? 0 : f_z / axisLen;\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 4095) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axisX * s, axisY * s, axisZ * s, w);\n return out;\n}\n\n// Pack four signed 8-bit values into a single uint32.\nfunction packSint8Bytes(\n b0: number,\n b1: number,\n b2: number,\n b3: number,\n): number {\n const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127)));\n const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127)));\n const clampedB2 = Math.round(Math.max(-127, Math.min(127, b2 * 127)));\n const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127)));\n return (\n (clampedB0 & 0xff) |\n ((clampedB1 & 0xff) << 8) |\n ((clampedB2 & 0xff) << 16) |\n ((clampedB3 & 0xff) << 24)\n );\n}\n\n// Encode an array of 9 signed RGB SH1 coefficients (clamped to [-1,1]) into\n// a pair of uint32 values, where each coefficient is stored as a sint7\nexport function encodeSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n encoding?: {\n sh1Max?: number;\n },\n) {\n const sh1Max = encoding?.sh1Max ?? 1;\n const sh1Scale = 63 / sh1Max;\n\n // Pack sint7 values into 2 x uint32\n const base = index * 2;\n for (let i = 0; i < 9; ++i) {\n const s = sh1Rgb[i] * sh1Scale;\n const value = Math.round(Math.max(-63, Math.min(63, s))) & 0x7f;\n const bitStart = i * 7;\n const bitEnd = bitStart + 7;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh1Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh1Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\n// Encode an array of 15 signed RGB SH2 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint8.\nexport function encodeSh2Rgb(\n sh2Array: Uint32Array,\n index: number,\n sh2Rgb: Float32Array,\n encoding?: {\n sh2Max?: number;\n },\n) {\n const sh2Max = encoding?.sh2Max ?? 1;\n const sh2Scale = 1 / sh2Max;\n\n // Pack sint8 values into 4 x uint32\n sh2Array[index * 4 + 0] = packSint8Bytes(\n sh2Rgb[0] * sh2Scale,\n sh2Rgb[1] * sh2Scale,\n sh2Rgb[2] * sh2Scale,\n sh2Rgb[3] * sh2Scale,\n );\n sh2Array[index * 4 + 1] = packSint8Bytes(\n sh2Rgb[4] * sh2Scale,\n sh2Rgb[5] * sh2Scale,\n sh2Rgb[6] * sh2Scale,\n sh2Rgb[7] * sh2Scale,\n );\n sh2Array[index * 4 + 2] = packSint8Bytes(\n sh2Rgb[8] * sh2Scale,\n sh2Rgb[9] * sh2Scale,\n sh2Rgb[10] * sh2Scale,\n sh2Rgb[11] * sh2Scale,\n );\n sh2Array[index * 4 + 3] = packSint8Bytes(\n sh2Rgb[12] * sh2Scale,\n sh2Rgb[13] * sh2Scale,\n sh2Rgb[14] * sh2Scale,\n 0,\n );\n}\n\n// Encode an array of 21 signed RGB SH3 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint6.\nexport function encodeSh3Rgb(\n sh3Array: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n encoding?: {\n sh3Max?: number;\n },\n) {\n const sh3Max = encoding?.sh3Max ?? 1;\n const sh3Scale = 31 / sh3Max;\n\n // Pack sint6 values into 4 x uint32\n const base = index * 4;\n for (let i = 0; i < 21; ++i) {\n const s = sh3Rgb[i] * sh3Scale;\n const value = Math.round(Math.max(-31, Math.min(31, s))) & 0x3f;\n const bitStart = i * 6;\n const bitEnd = bitStart + 6;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh3Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh3Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\nexport function encodeExtRgb(r: number, g: number, b: number): number {\n const ar = Math.abs(r);\n const ag = Math.abs(g);\n const ab = Math.abs(b);\n const maxAbs = Math.max(ar, ag, ab);\n const base = Math.floor(Math.log2(maxAbs));\n const biasedBase = Math.max(0, Math.min(31, base + 15));\n const divisor = 2 ** (biasedBase - 15) / 255;\n const uR = Math.round(Math.max(0, Math.min(255, ar / divisor)));\n const uG = Math.round(Math.max(0, Math.min(255, ag / divisor)));\n const uB = Math.round(Math.max(0, Math.min(255, ab / divisor)));\n const expSigns =\n (biasedBase << 3) |\n ((r < 0 ? 0x1 : 0) | (g < 0 ? 0x2 : 0) | (b < 0 ? 0x4 : 0));\n return uR | (uG << 8) | (uB << 16) | (expSigns << 24);\n}\n\nexport function decodeExtRgb(encoded: number): THREE.Color {\n const color = packedFields.color;\n const biasedBase = (encoded >>> 27) & 0x1f;\n const divisor = 2 ** (biasedBase - 15) / 255;\n const r = (encoded & 0xff) * divisor;\n const g = ((encoded >>> 8) & 0xff) * divisor;\n const b = ((encoded >>> 16) & 0xff) * divisor;\n color.r = encoded & 0x1000000 ? -r : r;\n color.g = encoded & 0x2000000 ? -g : g;\n color.b = encoded & 0x4000000 ? -b : b;\n return color;\n}\n\nexport function encodeExtSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n}\n\nexport function encodeExtSh12Rgb(\n sh1Array: Uint32Array,\n sh2Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n sh2Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n sh1Array[i4 + 3] = encodeExtRgb(sh2Rgb[0], sh2Rgb[1], sh2Rgb[2]);\n for (let k = 1; k < 5; ++k) {\n const k5 = k * 5;\n sh2Array[i4 + (k - 1)] = encodeExtRgb(\n sh2Rgb[k5],\n sh2Rgb[k5 + 1],\n sh2Rgb[k5 + 2],\n );\n }\n}\n\nexport function encodeExt3Rgb(\n sh3ArrayA: Uint32Array,\n sh3ArrayB: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 4; ++k) {\n const k3 = k * 3;\n sh3ArrayA[i4 + k] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n for (let k = 4; k < 7; ++k) {\n const k3 = k * 3;\n sh3ArrayB[i4 + (k - 4)] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n}\n\n// Partially decompress a gzip-encoded Uint8Array, returning a Uint8Array of\n// the specified numBytes from the start of the file.\nexport function decompressPartialGzip(\n fileBytes: Uint8Array,\n numBytes: number,\n): Uint8Array {\n const chunks: Uint8Array[] = [];\n let totalBytes = 0;\n let result: Uint8Array | null = null;\n\n const gunzip = new Gunzip((data, final) => {\n chunks.push(data);\n totalBytes += data.length;\n if (final || totalBytes >= numBytes) {\n const allBytes = new Uint8Array(totalBytes);\n let offset = 0;\n for (const chunk of chunks) {\n allBytes.set(chunk, offset);\n offset += chunk.length;\n }\n result = allBytes.slice(0, numBytes);\n }\n });\n\n const CHUNK_SIZE = 1024;\n let offset = 0;\n while (result == null && offset < fileBytes.length) {\n const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE);\n gunzip.push(chunk, false);\n offset += CHUNK_SIZE;\n }\n\n if (result == null) {\n gunzip.push(new Uint8Array(), true);\n if (result == null) {\n throw new Error(\"Failed to decompress partial gzip\");\n }\n }\n return result;\n}\n\nexport class GunzipReader {\n fileBytes: Uint8Array;\n chunkBytes: number;\n\n chunks: Uint8Array[];\n totalBytes: number;\n reader: ReadableStreamDefaultReader;\n\n constructor({\n fileBytes,\n chunkBytes = 64 * 1024,\n }: { fileBytes: Uint8Array; chunkBytes?: number }) {\n this.fileBytes = fileBytes;\n this.chunkBytes = chunkBytes;\n this.chunks = [];\n this.totalBytes = 0;\n\n const ds = new DecompressionStream(\"gzip\");\n const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds);\n this.reader = decompressionStream.getReader();\n }\n\n async read(numBytes: number): Promise {\n while (this.totalBytes < numBytes) {\n const { value: chunk, done: readerDone } = await this.reader.read();\n if (readerDone) {\n break;\n }\n\n this.chunks.push(chunk);\n this.totalBytes += chunk.length;\n }\n\n if (this.totalBytes < numBytes) {\n throw new Error(\n `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}`,\n );\n }\n\n const allBytes = new Uint8Array(this.totalBytes);\n let outOffset = 0;\n for (const chunk of this.chunks) {\n allBytes.set(chunk, outOffset);\n outOffset += chunk.length;\n }\n\n const result = allBytes.subarray(0, numBytes);\n this.chunks = [allBytes.subarray(numBytes)];\n this.totalBytes -= numBytes;\n return result;\n }\n}\n","import BundledWorker from \"./oldWorker?worker&inline\";\nimport { getTransferable } from \"./utils.js\";\n\n// SplatWorker is an internal class that manages a WebWorker for executing\n// longer running CPU tasks such as Gsplat file decoding and sorting.\n// Although a SplatWorker can be created and used directly, the utility\n// function withWorker() is recommended to allocate from a managed\n// pool of SplatWorkers.\n\nexport class OldSplatWorker {\n worker: Worker;\n messages: Record<\n number,\n { resolve: (value: unknown) => void; reject: (reason?: unknown) => void }\n > = {};\n messageIdNext = 0;\n\n constructor() {\n // this.worker = new Worker(new URL(\"./worker\", import.meta.url), { type: \"module\" });\n this.worker = new BundledWorker();\n this.worker.onmessage = (event) => this.onMessage(event);\n }\n\n makeMessageId(): number {\n return ++this.messageIdNext;\n }\n\n makeMessagePromiseId(): { id: number; promise: Promise } {\n const id = this.makeMessageId();\n const promise = new Promise((resolve, reject) => {\n this.messages[id] = { resolve, reject };\n });\n return { id, promise };\n }\n\n onMessage(event: MessageEvent) {\n // console.log(\"SplatWorker.onMessage:\", event);\n const { id, result, error } = event.data;\n // console.log(`SplatWorker.onMessage(${id}):`, result, error);\n const handler = this.messages[id];\n if (handler) {\n delete this.messages[id];\n if (error) {\n handler.reject(error);\n } else {\n handler.resolve(result);\n }\n }\n }\n\n // Invoke an RPC on the worker with the given name and arguments.\n // The normal usage of a worker is to run one activity at a time,\n // but this function allows for concurrent calls, tagging each request\n // with a unique message Id and awaiting a response to that same Id.\n // The method will automatically transfer any ArrayBuffers in the\n // arguments to the worker. If you'd like to transfer a copy of a\n // buffer then you must clone it before passing to this function.\n async call(name: string, args: unknown): Promise {\n const { id, promise } = this.makeMessagePromiseId();\n // console.log(`SplatWorker.call(${name}):`, args);\n this.worker.postMessage(\n { name, args, id },\n { transfer: getTransferable(args) },\n );\n return promise;\n }\n}\n\nlet maxWorkers = 4;\n\nlet numWorkers = 0;\nconst freeWorkers: OldSplatWorker[] = [];\nconst workerQueue: ((worker: OldSplatWorker) => void)[] = [];\n\n// Set the maximum number of workers to allocate for the pool. (default: 4)\nexport function setWorkerPool(count = 4) {\n maxWorkers = count;\n}\n\n// Allocate a worker from the pool. If none are available and we are below the\n// maximum, create a new one. Otherwise, add the request to a queue and wait\n// for it to be fulfilled.\nexport async function allocWorker(): Promise {\n const worker = freeWorkers.shift();\n if (worker) {\n return worker;\n }\n\n if (numWorkers < maxWorkers) {\n const worker = new OldSplatWorker();\n numWorkers += 1;\n return worker;\n }\n\n return new Promise((resolve) => {\n workerQueue.push(resolve);\n });\n}\n\n// Return a worker to the pool. Pass the worker to any pending waiter.\nexport function freeWorker(worker: OldSplatWorker) {\n if (numWorkers > maxWorkers) {\n // Worker no longer needed\n numWorkers -= 1;\n return;\n }\n\n const waiter = workerQueue.shift();\n if (waiter) {\n waiter(worker);\n return;\n }\n\n freeWorkers.push(worker);\n}\n\n// Allocate a worker from the pool and invoke the callback with the worker.\n// When the callback completes, the worker will be returned to the pool.\nexport async function withWorker(\n callback: (worker: OldSplatWorker) => Promise,\n): Promise {\n const worker = await allocWorker();\n try {\n return await callback(worker);\n } finally {\n freeWorker(worker);\n }\n}\n","import { getTransferable } from \"./utils\";\nimport BundledWorker from \"./worker?worker&inline\";\n\ntype PromiseRecord = {\n resolve: (value: unknown) => void;\n reject: (reason?: unknown) => void;\n onStatus?: (data: unknown) => void;\n};\n\nexport class SplatWorker {\n worker: Worker;\n queue: (() => void)[] | null = null;\n messages: Record = {};\n static currentId = 0;\n\n constructor() {\n this.worker = new BundledWorker();\n this.worker.onmessage = (event) => this.onMessage(event);\n }\n\n onMessage(event: MessageEvent) {\n const { id, result, error, status } = event.data;\n const promise = this.messages[id];\n if (promise) {\n if (error !== undefined) {\n delete this.messages[id];\n promise.reject(error);\n } else if (status !== undefined) {\n promise.onStatus?.(status);\n } else {\n delete this.messages[id];\n promise.resolve(result);\n }\n }\n }\n\n tryExclusive(callback: (worker: SplatWorker) => Promise) {\n return this.queue == null ? this.exclusive(callback) : null;\n }\n\n async exclusive(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const queue = this.queue;\n if (queue != null) {\n await new Promise((resolve) => {\n queue.push(() => resolve(undefined));\n });\n } else {\n this.queue = [];\n }\n\n try {\n return await callback(this);\n } finally {\n if (this.queue != null) {\n if (this.queue.length === 0) {\n this.queue = null;\n } else {\n const waiter = this.queue.shift() as () => void;\n waiter();\n }\n }\n }\n }\n\n async call(\n name: string,\n args: unknown,\n options: { onStatus?: (data: unknown) => void } = {},\n ): Promise {\n const id = ++SplatWorker.currentId;\n const promise = new Promise((resolve, reject) => {\n this.messages[id] = { resolve, reject, onStatus: options.onStatus };\n });\n this.worker.postMessage(\n { id, name, args },\n { transfer: getTransferable(args) },\n );\n return await promise;\n }\n\n dispose() {\n this.worker.terminate();\n\n const messages = Object.values(this.messages);\n this.messages = {};\n for (const message of messages) {\n message.reject(new Error(\"Worker terminate\"));\n }\n }\n}\n\nexport class NewSplatWorkerPool {\n maxWorkers;\n numWorkers = 0;\n freelist: SplatWorker[] = [];\n queue: ((worker: SplatWorker) => void)[] = [];\n\n constructor(maxWorkers = 4) {\n this.maxWorkers = maxWorkers;\n }\n\n async withWorker(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const worker = await this.allocWorker();\n try {\n return await callback(worker);\n } finally {\n this.freeWorker(worker);\n }\n }\n\n async allocWorker(): Promise {\n const worker = this.freelist.pop();\n if (worker) {\n return worker;\n }\n\n if (this.numWorkers < this.maxWorkers) {\n const worker = new SplatWorker();\n this.numWorkers += 1;\n return worker;\n }\n\n return new Promise((resolve) => {\n this.queue.push(resolve);\n });\n }\n\n freeWorker(worker: SplatWorker) {\n if (this.numWorkers > this.maxWorkers) {\n // Worker no longer needed\n this.numWorkers -= 1;\n return;\n }\n\n const waiter = this.queue.shift();\n if (waiter) {\n waiter(worker);\n return;\n }\n\n this.freelist.push(worker);\n }\n}\n\nexport const workerPool = new NewSplatWorkerPool();\n","import { Dyno, UnaryOp, unindent, unindentLines } from \"./base\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const Gsplat = { type: \"Gsplat\" } as { type: \"Gsplat\" };\nexport const CovSplat = { type: \"CovSplat\" } as { type: \"CovSplat\" };\nexport const TPackedSplats = { type: \"PackedSplats\" } as {\n type: \"PackedSplats\";\n};\nexport const TExtSplats = { type: \"ExtSplats\" } as {\n type: \"ExtSplats\";\n};\nexport const TCovSplats = { type: \"CovSplats\" } as {\n type: \"CovSplats\";\n};\n\nexport const numPackedSplats = (\n packedSplats: DynoVal,\n): DynoVal<\"int\"> => new NumPackedSplats({ packedSplats });\nexport const readPackedSplat = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadPackedSplat({ packedSplats, index });\nexport const readPackedSplatRange = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n base: DynoVal<\"int\">,\n count: DynoVal<\"int\">,\n): DynoVal =>\n new ReadPackedSplatRange({ packedSplats, index, base, count });\n\nexport const numExtSplats = (\n extSplats: DynoVal,\n): DynoVal<\"int\"> => new NumExtSplats({ extSplats });\nexport const readExtSplat = (\n extSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadExtSplat({ extSplats, index });\n\nexport const numCovSplats = (\n covsplats: DynoVal,\n): DynoVal<\"int\"> => new NumCovSplats({ covsplats });\nexport const readCovSplat = (\n covSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadCovSplat({ covSplats, index });\n\nexport const gsplatToCovSplat = (\n gsplat: DynoVal,\n): DynoVal => new GsplatToCovSplat({ gsplat });\n\nexport const splitGsplat = (gsplat: DynoVal) =>\n new SplitGsplat({ gsplat });\nexport const combineGsplat = ({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineGsplat({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\nexport const gsplatNormal = (gsplat: DynoVal): DynoVal<\"vec3\"> =>\n new GsplatNormal({ gsplat });\n\nexport const transformGsplat = (\n gsplat: DynoVal,\n {\n scale,\n rotate,\n translate,\n recolor,\n }: {\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n },\n): DynoVal => {\n return new TransformGsplat({ gsplat, scale, rotate, translate, recolor });\n};\n\nexport const splatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new SplatTexCoord({ index });\n\nexport const pagedSplatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new PagedSplatTexCoord({ index });\n\nexport const defineGsplat = unindent(`\n struct Gsplat {\n vec3 center;\n uint flags;\n vec3 scales;\n int index;\n vec4 quaternion;\n vec4 rgba;\n };\n const uint GSPLAT_FLAG_ACTIVE = 1u << 0u;\n\n bool isGsplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const defineCovSplat = unindent(`\n struct CovSplat {\n vec3 center;\n uint flags;\n vec4 rgba;\n vec3 xxyyzz;\n int index;\n vec3 xyxzyz;\n };\n\n bool isCovSplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const definePackedSplats = unindent(`\n struct PackedSplats {\n usampler2DArray textureArray;\n int numSplats;\n vec4 rgbMinMaxLnScaleMinMax;\n bool lodOpacity;\n };\n`);\n\nexport class NumPackedSplats extends UnaryOp<\n typeof TPackedSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({\n packedSplats,\n }: { packedSplats: DynoVal }) {\n super({ a: packedSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadPackedArray = unindent(`\n bool readPackedArray(usampler2DArray texture, int numSplats, vec4 rgbMinMaxLnScaleMinMax, int index, out Gsplat gsplat) {\n if ((index >= 0) && (index < numSplats)) {\n uvec4 packedData = texelFetch(texture, splatTexCoord(index), 0);\n unpackSplatEncoding(packedData, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba, rgbMinMaxLnScaleMinMax);\n return true;\n } else {\n return false;\n }\n }\n`);\n\nexport class ReadPackedSplat\n extends Dyno<\n { packedSplats: typeof TPackedSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n }: { packedSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { packedSplats: TPackedSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index } = inputs;\n let statements: string[];\n if (packedSplats && index) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class ReadPackedSplatRange\n extends Dyno<\n {\n packedSplats: typeof TPackedSplats;\n index: \"int\";\n base: \"int\";\n count: \"int\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n base,\n count,\n }: {\n packedSplats?: DynoVal;\n index?: DynoVal<\"int\">;\n base?: DynoVal<\"int\">;\n count?: DynoVal<\"int\">;\n }) {\n super({\n inTypes: {\n packedSplats: TPackedSplats,\n index: \"int\",\n base: \"int\",\n count: \"int\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index, base, count },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index, base, count } = inputs;\n let statements: string[];\n if (packedSplats && index && base && count) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineExtSplats = unindent(`\n struct ExtSplats {\n usampler2DArray textureArray1;\n usampler2DArray textureArray2;\n int numSplats;\n };\n`);\n\nexport class NumExtSplats extends UnaryOp<\n typeof TExtSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ extSplats }: { extSplats: DynoVal }) {\n super({ a: extSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadExtArrays = unindent(`\n void readExtArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out Gsplat gsplat) {\n gsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExt(packed1, packed2, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba);\n gsplat.flags = all(equal(gsplat.scales, vec3(0.0, 0.0, 0.0))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadExtSplat\n extends Dyno<\n { extSplats: typeof TExtSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n extSplats,\n index,\n }: { extSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { extSplats: TExtSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { extSplats, index },\n globals: () => [defineGsplat, defineExtSplats, defineReadExtArrays],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [`${gsplat}.flags = 0u;`];\n }\n const { extSplats, index } = inputs;\n let statements: string[];\n if (extSplats && index) {\n return unindentLines(`\n readExtArrays(${extSplats}.textureArray1, ${extSplats}.textureArray2, ${extSplats}.numSplats, ${index}, ${gsplat});\n `);\n }\n return [`${gsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class NumCovSplats extends UnaryOp<\n typeof TCovSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ covsplats }: { covsplats: DynoVal }) {\n super({ a: covsplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadCovArrays = unindent(`\n void readCovArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out CovSplat covsplat) {\n covsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExtCov(packed1, packed2, covsplat.center, covsplat.rgba, covsplat.xxyyzz, covsplat.xyxzyz);\n covsplat.flags = (all(equal(covsplat.xxyyzz, vec3(0.0))) && all(equal(covsplat.xyxzyz, vec3(0.0)))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadCovSplat\n extends Dyno<\n { covSplats: typeof TCovSplats; index: \"int\" },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covSplats,\n index,\n }: { covSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { covSplats: TCovSplats, index: \"int\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covSplats, index },\n globals: () => [defineGsplat, defineCovSplat, defineReadCovArrays],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = outputs;\n if (!covsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n const { covSplats, index } = inputs;\n let statements: string[];\n if (covSplats && index) {\n return unindentLines(`\n readCovArrays(${covSplats}.textureArray, ${covSplats}.numSplats, ${index}, ${covsplat});\n `);\n }\n return [`${covsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class GsplatToCovSplat extends Dyno<\n { gsplat: typeof Gsplat },\n { covsplat: typeof CovSplat }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: { covsplat: CovSplat },\n inputs: { gsplat },\n globals: () => [defineGsplat, defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const { covsplat } = outputs;\n if (!gsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n\n return unindentLines(`\n ${covsplat}.flags = 0u;\n if (isGsplatActive(${gsplat}.flags)) {\n ${covsplat}.flags = ${gsplat}.flags;\n ${covsplat}.index = ${gsplat}.index;\n ${covsplat}.rgba = ${gsplat}.rgba;\n ${covsplat}.center = ${gsplat}.center;\n mat3 m = scaleQuaternionToMatrix(${gsplat}.scales, ${gsplat}.quaternion);\n m = m * transpose(m);\n ${covsplat}.xxyyzz = vec3(m[0][0], m[1][1], m[2][2]);\n ${covsplat}.xyxzyz = vec3(m[0][1], m[0][2], m[1][2]);\n }\n `);\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplitGsplat extends Dyno<\n { gsplat: typeof Gsplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags ? null : `${flags} = ${gsplat ? `${gsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isGsplatActive(${gsplat ? `${gsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${gsplat ? `${gsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !scales\n ? null\n : `${scales} = ${gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !quaternion\n ? null\n : `${quaternion} = ${gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${gsplat ? `${gsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${gsplat ? `${gsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${gsplat ? `${gsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${gsplat ? `${gsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${gsplat ? `${gsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${gsplat ? `${gsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${gsplat ? `${gsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${gsplat ? `${gsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat: outGsplat } = outputs;\n if (!outGsplat) {\n return [];\n }\n const {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outGsplat}.flags = ${flags ?? (gsplat ? `${gsplat}.flags` : \"0u\")};`,\n `${outGsplat}.index = ${index ?? (gsplat ? `${gsplat}.index` : \"0\")};`,\n `${outGsplat}.center = ${center ?? (gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.scales = ${scales ?? (gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.quaternion = ${quaternion ?? (gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\")};`,\n `${outGsplat}.rgba = ${rgba ?? (gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outGsplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outGsplat}.rgba.a = ${opacity};`,\n !x ? null : `${outGsplat}.center.x = ${x};`,\n !y ? null : `${outGsplat}.center.y = ${y};`,\n !z ? null : `${outGsplat}.center.z = ${z};`,\n !r ? null : `${outGsplat}.rgba.r = ${r};`,\n !g ? null : `${outGsplat}.rgba.g = ${g};`,\n !b ? null : `${outGsplat}.rgba.b = ${b};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineGsplatNormal = unindent(`\n vec3 gsplatNormal(vec3 scales, vec4 quaternion) {\n float minScale = min(scales.x, min(scales.y, scales.z));\n vec3 normal;\n if (scales.z == minScale) {\n normal = vec3(0.0, 0.0, 1.0);\n } else if (scales.y == minScale) {\n normal = vec3(0.0, 1.0, 0.0);\n } else {\n normal = vec3(1.0, 0.0, 0.0);\n }\n return quatVec(quaternion, normal);\n }\n`);\n\nexport class GsplatNormal extends UnaryOp {\n constructor({ gsplat }: { gsplat: DynoVal }) {\n super({ a: gsplat, outKey: \"normal\", outTypeFunc: () => \"vec3\" });\n this.globals = () => [defineGsplat, defineGsplatNormal];\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normal} = gsplatNormal(${inputs.a}.scales, ${inputs.a}.quaternion);`,\n ];\n }\n}\n\nexport class TransformGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n scale: \"float\";\n rotate: \"vec4\";\n translate: \"vec3\";\n recolor: \"vec4\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n scale,\n rotate,\n translate,\n recolor,\n }: {\n gsplat?: DynoVal;\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n scale: \"float\",\n rotate: \"vec4\",\n translate: \"vec3\",\n recolor: \"vec4\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, scale, rotate, translate, recolor },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs, compile }) => {\n const { gsplat } = outputs;\n if (!gsplat || !inputs.gsplat) {\n return [];\n }\n const { scale, rotate, translate, recolor } = inputs;\n const indent = compile.indent;\n const statements = [\n `${gsplat} = ${inputs.gsplat};`,\n `if (isGsplatActive(${gsplat}.flags)) {`,\n\n scale ? `${indent}${gsplat}.center *= ${scale};` : null,\n rotate\n ? `${indent}${gsplat}.center = quatVec(${rotate}, ${gsplat}.center);`\n : null,\n translate ? `${indent}${gsplat}.center += ${translate};` : null,\n\n scale ? `${indent}${gsplat}.scales *= ${scale};` : null,\n\n rotate\n ? `${indent}${gsplat}.quaternion = quatQuat(${rotate}, ${gsplat}.quaternion);`\n : null,\n recolor ? `${indent}${gsplat}.rgba *= ${recolor};` : null,\n \"}\",\n ].filter(Boolean) as string[];\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const splitCovSplat = (covsplat: DynoVal) =>\n new SplitCovSplat({ covsplat });\nexport const combineCovSplat = ({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineCovSplat({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\n\nexport class SplitCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ covsplat }: { covsplat?: DynoVal }) {\n super({\n inTypes: { covsplat: CovSplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags\n ? null\n : `${flags} = ${covsplat ? `${covsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isCovSplatActive(${covsplat ? `${covsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${covsplat ? `${covsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${covsplat ? `${covsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${covsplat ? `${covsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${covsplat ? `${covsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${covsplat ? `${covsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${covsplat ? `${covsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${covsplat ? `${covsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${covsplat ? `${covsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${covsplat ? `${covsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineCovSplat\n extends Dyno<\n {\n covsplat: typeof CovSplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { covsplat: CovSplat },\n inputs: {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat: outCovSplat } = outputs;\n if (!outCovSplat) {\n return [];\n }\n const {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outCovSplat}.flags = ${flags ?? (covsplat ? `${covsplat}.flags` : \"0u\")};`,\n `${outCovSplat}.index = ${index ?? (covsplat ? `${covsplat}.index` : \"0\")};`,\n `${outCovSplat}.center = ${center ?? (covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outCovSplat}.rgba = ${rgba ?? (covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outCovSplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outCovSplat}.rgba.a = ${opacity};`,\n !x ? null : `${outCovSplat}.center.x = ${x};`,\n !y ? null : `${outCovSplat}.center.y = ${y};`,\n !z ? null : `${outCovSplat}.center.z = ${z};`,\n !r ? null : `${outCovSplat}.rgba.r = ${r};`,\n !g ? null : `${outCovSplat}.rgba.g = ${g};`,\n !b ? null : `${outCovSplat}.rgba.b = ${b};`,\n `${outCovSplat}.xxyyzz = ${covsplat ? `${covsplat}.xxyyzz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n `${outCovSplat}.xyxzyz = ${covsplat ? `${covsplat}.xyxzyz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = splatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n\nexport class PagedSplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = pagedSplatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n","import * as THREE from \"three\";\nimport { Dyno, unindentLines } from \"./base\";\nimport { CovSplat, Gsplat, defineCovSplat, defineGsplat } from \"./splats\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const outputPackedSplat = (\n gsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputPackedSplat({ gsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputCovSplat = (\n covsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputCovSplat({ covsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputExtendedSplat = (gsplat: DynoVal) =>\n new OutputExtendedSplat({ gsplat });\n\nexport const outputExtCovSplat = (covsplat: DynoVal) =>\n new OutputExtCovSplat({ covsplat });\n\nexport const outputSplatDepth = (\n gsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputSplatDepth({ gsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputCovSplatDepth = (\n covsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputCovSplatDepth({ covsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputRgba8 = (rgba8: DynoVal<\"vec4\">) =>\n new OutputRgba8({ rgba8 });\n\nexport class OutputPackedSplat extends Dyno<\n { gsplat: typeof Gsplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n gsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n gsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { gsplat: Gsplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { gsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (gsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n target = packSplatEncoding(${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u, 0u, 0u, 0u);\n }\n `);\n }\n return [\"target = uvec4(0u, 0u, 0u, 0u);\"];\n },\n });\n }\n}\n\nexport class OutputCovSplat extends Dyno<\n { covsplat: typeof CovSplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n covsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n covsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { covsplat: CovSplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { covsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (covsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n target = packSplatCovEncoding(${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtendedSplat extends Dyno<\n { gsplat: typeof Gsplat },\n Record\n> {\n constructor({\n gsplat,\n }: {\n gsplat?: DynoVal;\n }) {\n super({\n inTypes: { gsplat: Gsplat },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat } = inputs;\n if (gsplat) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n packSplatExt(target, target2, ${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n Record\n> {\n constructor({\n covsplat,\n }: {\n covsplat?: DynoVal;\n }) {\n super({\n inTypes: { covsplat: CovSplat },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat } = inputs;\n if (covsplat) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n packSplatExtCov(target, target2, ${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nclass OutputSplatDepth extends Dyno<\n {\n gsplat: typeof Gsplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n gsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n gsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { gsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (gsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isGsplatActive(${gsplat}.flags)) {\n vec3 center = ${gsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nclass OutputCovSplatDepth extends Dyno<\n {\n covsplat: typeof CovSplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n covsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n covsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { covsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (covsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isCovSplatActive(${covsplat}.flags)) {\n vec3 center = ${covsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nexport class OutputRgba8\n extends Dyno<{ rgba8: \"vec4\" }, { rgba8: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ rgba8 }: { rgba8?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { rgba8: \"vec4\" },\n inputs: { rgba8 },\n statements: ({ inputs, outputs }) => [\n `target = ${inputs.rgba8 ?? \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"rgba8\");\n }\n}\n","import type { IUniform } from \"three\";\nimport { Dyno, dynoDeclare } from \"./base\";\nimport type { DynoJsType, DynoType } from \"./types\";\nimport { DynoOutput, type DynoValue, type HasDynoOut } from \"./value\";\n\nexport const uniform = >(\n key: string,\n type: DynoType,\n value: V,\n) => new DynoUniform({ key, type, value });\nexport const dynoBool = (value = false, key?: string) =>\n new DynoBool({ key, value });\nexport const dynoUint = (value = 0, key?: string) =>\n new DynoUint({ key, value });\nexport const dynoInt = (value = 0, key?: string) => new DynoInt({ key, value });\nexport const dynoFloat = (value = 0.0, key?: string) =>\n new DynoFloat({ key, value });\n\nexport const dynoBvec2 = >(\n value: V,\n key?: string,\n) => new DynoBvec2({ key, value });\nexport const dynoUvec2 = >(\n value: V,\n key?: string,\n) => new DynoUvec2({ key, value });\nexport const dynoIvec2 = >(\n value: V,\n key?: string,\n) => new DynoIvec2({ key, value });\nexport const dynoVec2 = >(\n value: V,\n key?: string,\n) => new DynoVec2({ key, value });\n\nexport const dynoBvec3 = >(\n value: V,\n key?: string,\n) => new DynoBvec3({ key, value });\nexport const dynoUvec3 = >(\n value: V,\n key?: string,\n) => new DynoUvec3({ key, value });\nexport const dynoIvec3 = >(\n value: V,\n key?: string,\n) => new DynoIvec3({ key, value });\nexport const dynoVec3 = >(\n value: V,\n key?: string,\n) => new DynoVec3({ key, value });\n\nexport const dynoBvec4 = >(\n value: V,\n key?: string,\n) => new DynoBvec4({ key, value });\nexport const dynoUvec4 = >(\n value: V,\n key?: string,\n) => new DynoUvec4({ key, value });\nexport const dynoIvec4 = >(\n value: V,\n key?: string,\n) => new DynoIvec4({ key, value });\nexport const dynoVec4 = >(\n value: V,\n key?: string,\n) => new DynoVec4({ key, value });\n\nexport const dynoMat2 = >(\n value: V,\n key?: string,\n) => new DynoMat2({ key, value });\nexport const dynoMat2x2 = >(\n value: V,\n key?: string,\n) => new DynoMat2x2({ key, value });\nexport const dynoMat2x3 = >(\n value: V,\n key?: string,\n) => new DynoMat2x3({ key, value });\nexport const dynoMat2x4 = >(\n value: V,\n key?: string,\n) => new DynoMat2x4({ key, value });\n\nexport const dynoMat3 = >(\n value: V,\n key?: string,\n) => new DynoMat3({ key, value });\nexport const dynoMat3x2 = >(\n value: V,\n key?: string,\n) => new DynoMat3x2({ key, value });\nexport const dynoMat3x3 = >(\n value: V,\n key?: string,\n) => new DynoMat3x3({ key, value });\nexport const dynoMat3x4 = >(\n value: V,\n key?: string,\n) => new DynoMat3x4({ key, value });\n\nexport const dynoMat4 = >(\n value: V,\n key?: string,\n) => new DynoMat4({ key, value });\nexport const dynoMat4x2 = >(\n value: V,\n key?: string,\n) => new DynoMat4x2({ key, value });\nexport const dynoMat4x3 = >(\n value: V,\n key?: string,\n) => new DynoMat4x3({ key, value });\nexport const dynoMat4x4 = >(\n value: V,\n key?: string,\n) => new DynoMat4x4({ key, value });\n\nexport const dynoUsampler2D = >(\n value: V,\n key?: string,\n) => new DynoUsampler2D({ key, value });\nexport const dynoIsampler2D = >(\n value: V,\n key?: string,\n) => new DynoIsampler2D({ key, value });\nexport const dynoSampler2D = >(\n value: V,\n key?: string,\n) => new DynoSampler2D({ key, value });\n\nexport const dynoUsampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoUsampler2DArray({ key, value });\nexport const dynoIsampler2DArray = >(\n key: string,\n value: V,\n) => new DynoIsampler2DArray({ key, value });\nexport const dynoSampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoSampler2DArray({ key, value });\n\nexport const dynoUsampler3D = >(\n value: V,\n key?: string,\n) => new DynoUsampler3D({ key, value });\nexport const dynoIsampler3D = >(\n value: V,\n key?: string,\n) => new DynoIsampler3D({ key, value });\nexport const dynoSampler3D = >(\n value: V,\n key?: string,\n) => new DynoSampler3D({ key, value });\n\nexport const dynoUsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoUsamplerCube({ key, value });\nexport const dynoIsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoIsamplerCube({ key, value });\nexport const dynoSamplerCube = >(\n value: V,\n key?: string,\n) => new DynoSamplerCube({ key, value });\n\nexport const dynoSampler2DShadow = >(\n value: V,\n key?: string,\n) => new DynoSampler2DShadow({ key, value });\nexport const dynoSampler2DArrayShadow = <\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSampler2DArrayShadow({ key, value });\nexport const dynoSamplerCubeShadow = <\n V extends DynoJsType<\"samplerCubeShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSamplerCubeShadow({ key, value });\n\nexport class DynoUniform<\n T extends DynoType,\n K extends string = \"value\",\n V extends DynoJsType = DynoJsType,\n >\n extends Dyno, { [key in K]: T }>\n implements HasDynoOut\n{\n public type: T;\n public count?: number;\n public outKey: K;\n public value: V;\n public uniform: { value: V; type?: string };\n\n constructor({\n key,\n type,\n count,\n value,\n update,\n globals,\n }: {\n key?: K;\n type: T;\n count?: number;\n value: V;\n update?: (value: V) => V | undefined;\n globals?: ({\n inputs,\n outputs,\n }: { inputs: unknown; outputs: { [key in K]?: string } }) => string[];\n }) {\n key = (key ?? \"value\") as K;\n super({\n outTypes: { [key]: type } as { [key in K]: T },\n update: () => {\n if (update) {\n const value = update(this.value);\n if (value !== undefined) {\n this.value = value;\n }\n }\n this.uniform.value = this.value;\n },\n generate: ({ inputs, outputs }) => {\n const allGlobals = globals?.({ inputs, outputs }) ?? [];\n const uniforms: Record = {};\n const name = outputs[key];\n if (name) {\n allGlobals.push(`uniform ${dynoDeclare(name, type, count)};`);\n uniforms[name] = this.uniform;\n }\n return { globals: allGlobals, uniforms };\n },\n });\n this.type = type;\n this.count = count;\n this.value = value;\n this.uniform = { value };\n this.outKey = key;\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class DynoBool extends DynoUniform<\n \"bool\",\n K,\n boolean\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: boolean;\n update?: (value: boolean) => boolean | undefined;\n }) {\n super({ key, type: \"bool\", value, update });\n }\n}\n\nexport class DynoUint extends DynoUniform<\"uint\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"uint\", value, update });\n }\n}\n\nexport class DynoInt extends DynoUniform<\"int\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"int\", value, update });\n }\n}\n\nexport class DynoFloat extends DynoUniform<\n \"float\",\n K,\n number\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"float\", value, update });\n }\n}\n\nexport class DynoBvec2<\n K extends string,\n V extends DynoJsType<\"bvec2\">,\n> extends DynoUniform<\"bvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec2\", value, update });\n }\n}\n\nexport class DynoUvec2<\n K extends string,\n V extends DynoJsType<\"uvec2\">,\n> extends DynoUniform<\"uvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec2\", value, update });\n }\n}\n\nexport class DynoIvec2<\n K extends string,\n V extends DynoJsType<\"ivec2\">,\n> extends DynoUniform<\"ivec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec2\", value, update });\n }\n}\n\nexport class DynoVec2<\n K extends string,\n V extends DynoJsType<\"vec2\">,\n> extends DynoUniform<\"vec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec2\", value, update });\n }\n}\n\nexport class DynoBvec3<\n K extends string,\n V extends DynoJsType<\"bvec3\">,\n> extends DynoUniform<\"bvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec3\", value, update });\n }\n}\n\nexport class DynoUvec3<\n V extends DynoJsType<\"uvec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"uvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec3\", value, update });\n }\n}\n\nexport class DynoIvec3<\n V extends DynoJsType<\"ivec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"ivec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec3\", value, update });\n }\n}\n\nexport class DynoVec3<\n V extends DynoJsType<\"vec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec3\", value, update });\n }\n}\n\nexport class DynoBvec4<\n K extends string,\n V extends DynoJsType<\"bvec4\">,\n> extends DynoUniform<\"bvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec4\", value, update });\n }\n}\n\nexport class DynoUvec4<\n K extends string,\n V extends DynoJsType<\"uvec4\">,\n> extends DynoUniform<\"uvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec4\", value, update });\n }\n}\n\nexport class DynoIvec4<\n K extends string,\n V extends DynoJsType<\"ivec4\">,\n> extends DynoUniform<\"ivec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec4\", value, update });\n }\n}\n\nexport class DynoVec4<\n V extends DynoJsType<\"vec4\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec4\", value, update });\n }\n}\n\nexport class DynoMat2<\n K extends string,\n V extends DynoJsType<\"mat2\">,\n> extends DynoUniform<\"mat2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2\", value, update });\n }\n}\n\nexport class DynoMat2x2<\n K extends string,\n V extends DynoJsType<\"mat2x2\">,\n> extends DynoUniform<\"mat2x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x2\", value, update });\n }\n}\n\nexport class DynoMat2x3<\n K extends string,\n V extends DynoJsType<\"mat2x3\">,\n> extends DynoUniform<\"mat2x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x3\", value, update });\n }\n}\n\nexport class DynoMat2x4<\n K extends string,\n V extends DynoJsType<\"mat2x4\">,\n> extends DynoUniform<\"mat2x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x4\", value, update });\n }\n}\n\nexport class DynoMat3<\n K extends string,\n V extends DynoJsType<\"mat3\">,\n> extends DynoUniform<\"mat3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3\", value, update });\n }\n}\n\nexport class DynoMat3x2<\n K extends string,\n V extends DynoJsType<\"mat3x2\">,\n> extends DynoUniform<\"mat3x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x2\", value, update });\n }\n}\n\nexport class DynoMat3x3<\n K extends string,\n V extends DynoJsType<\"mat3x3\">,\n> extends DynoUniform<\"mat3x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x3\", value, update });\n }\n}\n\nexport class DynoMat3x4<\n K extends string,\n V extends DynoJsType<\"mat3x4\">,\n> extends DynoUniform<\"mat3x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x4\", value, update });\n }\n}\n\nexport class DynoMat4<\n K extends string,\n V extends DynoJsType<\"mat4\">,\n> extends DynoUniform<\"mat4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4\", value, update });\n }\n}\n\nexport class DynoMat4x2<\n K extends string,\n V extends DynoJsType<\"mat4x2\">,\n> extends DynoUniform<\"mat4x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x2\", value, update });\n }\n}\n\nexport class DynoMat4x3<\n K extends string,\n V extends DynoJsType<\"mat4x3\">,\n> extends DynoUniform<\"mat4x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x3\", value, update });\n }\n}\n\nexport class DynoMat4x4<\n K extends string,\n V extends DynoJsType<\"mat4x4\">,\n> extends DynoUniform<\"mat4x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x4\", value, update });\n }\n}\n\nexport class DynoUsampler2D<\n K extends string,\n V extends DynoJsType<\"usampler2D\">,\n> extends DynoUniform<\"usampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2D\", value, update });\n }\n}\n\nexport class DynoIsampler2D<\n K extends string,\n V extends DynoJsType<\"isampler2D\">,\n> extends DynoUniform<\"isampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2D\", value, update });\n }\n}\n\nexport class DynoSampler2D<\n K extends string,\n V extends DynoJsType<\"sampler2D\">,\n> extends DynoUniform<\"sampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2D\", value, update });\n }\n}\n\nexport class DynoUsampler2DArray<\n K extends string,\n V extends DynoJsType<\"usampler2DArray\">,\n> extends DynoUniform<\"usampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2DArray\", value, update });\n }\n}\n\nexport class DynoIsampler2DArray<\n K extends string,\n V extends DynoJsType<\"isampler2DArray\">,\n> extends DynoUniform<\"isampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2DArray\", value, update });\n }\n}\n\nexport class DynoSampler2DArray<\n K extends string,\n V extends DynoJsType<\"sampler2DArray\">,\n> extends DynoUniform<\"sampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArray\", value, update });\n }\n}\n\nexport class DynoUsampler3D<\n K extends string,\n V extends DynoJsType<\"usampler3D\">,\n> extends DynoUniform<\"usampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler3D\", value, update });\n }\n}\n\nexport class DynoIsampler3D<\n K extends string,\n V extends DynoJsType<\"isampler3D\">,\n> extends DynoUniform<\"isampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler3D\", value, update });\n }\n}\n\nexport class DynoSampler3D<\n K extends string,\n V extends DynoJsType<\"sampler3D\">,\n> extends DynoUniform<\"sampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler3D\", value, update });\n }\n}\n\nexport class DynoUsamplerCube<\n K extends string,\n V extends DynoJsType<\"usamplerCube\">,\n> extends DynoUniform<\"usamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usamplerCube\", value, update });\n }\n}\n\nexport class DynoIsamplerCube<\n K extends string,\n V extends DynoJsType<\"isamplerCube\">,\n> extends DynoUniform<\"isamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isamplerCube\", value, update });\n }\n}\n\nexport class DynoSamplerCube<\n K extends string,\n V extends DynoJsType<\"samplerCube\">,\n> extends DynoUniform<\"samplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCube\", value, update });\n }\n}\n\nexport class DynoSampler2DShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DShadow\">,\n> extends DynoUniform<\"sampler2DShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DShadow\", value, update });\n }\n}\n\nexport class DynoSampler2DArrayShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n> extends DynoUniform<\"sampler2DArrayShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArrayShadow\", value, update });\n }\n}\n\nexport class DynoSamplerCubeShadow<\n K extends string,\n V extends DynoJsType<\"samplerCubeShadow\">,\n> extends DynoUniform<\"samplerCubeShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCubeShadow\", value, update });\n }\n}\n","import * as THREE from \"three\";\n\nimport { IDENT_VERTEX_SHADER } from \"../utils\";\nimport { Compilation, type Dyno, type IOTypes } from \"./base\";\n\nexport class DynoProgram {\n graph: Dyno;\n template: DynoProgramTemplate;\n inputs: Record;\n outputs: Record;\n shader: string;\n uniforms: Record;\n updaters: (() => void)[];\n\n constructor({\n graph,\n inputs,\n outputs,\n template,\n consoleLog,\n }: {\n graph: Dyno;\n inputs?: Record;\n outputs?: Record;\n template: DynoProgramTemplate;\n consoleLog?: boolean;\n }) {\n this.graph = graph;\n this.template = template;\n this.inputs = inputs ?? {};\n this.outputs = outputs ?? {};\n\n const compile = new Compilation({ indent: this.template.indent });\n for (const key in this.outputs) {\n if (this.outputs[key]) {\n compile.declares.add(this.outputs[key]);\n }\n }\n const statements = graph.compile({\n inputs: this.inputs,\n outputs: this.outputs,\n compile,\n });\n\n this.shader = template.generate({ globals: compile.globals, statements });\n this.uniforms = compile.uniforms;\n this.updaters = compile.updaters;\n if (consoleLog) {\n console.log(\"*** COMPILED SHADER\", this.shader);\n console.log(\"*** UNIFORMS\", this.uniforms);\n }\n }\n\n prepareMaterial(): THREE.RawShaderMaterial {\n return getMaterial(this);\n }\n\n update() {\n for (const updater of this.updaters) {\n updater();\n }\n }\n}\n\nexport class DynoProgramTemplate {\n before: string;\n between: string;\n after: string;\n indent: string;\n\n constructor(template: string) {\n const globals = template.match(/^([ \\t]*)\\{\\{\\s*GLOBALS\\s*\\}\\}/m);\n const statements = template.match(/^([ \\t]*)\\{\\{\\s*STATEMENTS\\s*\\}\\}/m);\n if (!globals || !statements) {\n throw new Error(\n \"Template must contain {{ GLOBALS }} and {{ STATEMENTS }}\",\n );\n }\n\n this.before = template.substring(0, globals.index);\n this.between = template.substring(\n (globals.index as number) + globals[0].length,\n statements.index,\n );\n this.after = template.substring(\n (statements.index as number) + statements[0].length,\n );\n this.indent = statements[1];\n }\n\n generate({\n globals,\n statements,\n }: { globals: Set; statements: string[] }): string {\n return (\n this.before +\n Array.from(globals).join(\"\\n\\n\") +\n this.between +\n statements.map((s) => this.indent + s).join(\"\\n\") +\n this.after\n );\n }\n}\n\nconst programMaterial = new WeakMap();\n\nfunction getMaterial(program: DynoProgram): THREE.RawShaderMaterial {\n let material = programMaterial.get(program);\n if (material) {\n return material;\n }\n\n material = new THREE.RawShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: IDENT_VERTEX_SHADER,\n fragmentShader: program.shader,\n uniforms: program.uniforms,\n });\n programMaterial.set(program, material);\n return material;\n}\n","import {\n type AllFloatTypes,\n type AllIntTypes,\n type AllSignedTypes,\n type AllValueTypes,\n type BaseType,\n type BoolTypes,\n type FloatTypes,\n type IntTypes,\n type SignedTypes,\n type UintTypes,\n type ValueTypes,\n isAllFloatType,\n isFloatType,\n isIntType,\n isMat2,\n isMat3,\n isMat4,\n isUintType,\n} from \"./types\";\n\nexport type AddOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : never);\n\nexport type SubOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type MulOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : A extends IntTypes\n ? B extends A\n ? A\n : never\n : B extends IntTypes\n ? A extends B\n ? A\n : never\n : A extends UintTypes\n ? B extends A\n ? A\n : never\n : B extends UintTypes\n ? A extends B\n ? A\n : never\n : // Vector * Matrix/Vector\n A extends \"vec2\"\n ? B extends \"vec2\" | \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : B extends \"mat3x2\"\n ? \"vec3\"\n : B extends \"mat4x2\"\n ? \"vec4\"\n : never\n : A extends \"vec3\"\n ? B extends \"mat2x3\"\n ? \"vec2\"\n : B extends \"vec3\" | \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : B extends \"mat4x3\"\n ? \"vec4\"\n : never\n : A extends \"vec4\"\n ? B extends \"mat2x4\"\n ? \"vec2\"\n : B extends \"mat3x4\"\n ? \"vec3\"\n : B extends \"vec4\" | \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Vector\n B extends \"vec2\"\n ? A extends \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : A extends \"mat2x3\"\n ? \"vec3\"\n : A extends \"mat2x4\"\n ? \"vec4\"\n : never\n : B extends \"vec3\"\n ? A extends \"mat3x2\"\n ? \"vec2\"\n : A extends \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : A extends \"mat3x4\"\n ? \"vec4\"\n : never\n : B extends \"vec4\"\n ? A extends \"mat4x2\"\n ? \"vec2\"\n : A extends \"mat4x3\"\n ? \"vec3\"\n : A extends \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n A extends \"mat2\" | \"mat2x2\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2\"\n : B extends \"mat3x2\"\n ? \"mat3x2\"\n : B extends \"mat4x2\"\n ? \"mat4x2\"\n : never\n : A extends \"mat2x3\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x3\"\n : B extends \"mat3x2\"\n ? \"mat3\"\n : B extends \"mat4x2\"\n ? \"mat4x3\"\n : never\n : A extends \"mat2x4\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x4\"\n : B extends \"mat3x2\"\n ? \"mat3x4\"\n : B extends \"mat4x2\"\n ? \"mat4\"\n : never\n : A extends \"mat3x2\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x2\"\n : B extends \"mat4x3\"\n ? \"mat4x2\"\n : never\n : A extends \"mat3\" | \"mat3x3\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x3\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3\"\n : B extends \"mat4x3\"\n ? \"mat4x3\"\n : never\n : A extends \"mat3x4\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x4\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x4\"\n : B extends \"mat4x3\"\n ? \"mat4\"\n : never\n : A extends \"mat4x2\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2\"\n : B extends \"mat3x4\"\n ? \"mat3x2\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x2\"\n : never\n : A extends \"mat4x3\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x3\"\n : B extends \"mat3x4\"\n ? \"mat3\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x3\"\n : never\n : A extends \"mat4\" | \"mat4x4\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x4\"\n : B extends \"mat3x4\"\n ? \"mat3x4\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4\"\n : never\n : never);\n\nexport type DivOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type IModOutput<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\n\nexport type ModOutput = BaseType &\n (A extends B ? A : B extends \"float\" ? A : never);\n\nexport type PowOutput = BaseType &\n (A extends B ? A : never);\n\nexport type MinOutput = BaseType &\n (A extends B\n ? A\n : B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MaxOutput = MinOutput<\n A,\n B\n>;\nexport type ClampOutput = BaseType &\n (B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MixOutput<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> = BaseType &\n (T extends A\n ? A\n : T extends \"float\"\n ? A\n : T extends \"bool\"\n ? A extends \"float\"\n ? A\n : never\n : T extends \"bvec2\"\n ? A extends \"vec2\"\n ? A\n : never\n : T extends \"bvec3\"\n ? A extends \"vec3\"\n ? A\n : never\n : T extends \"bvec4\"\n ? A extends \"vec4\"\n ? A\n : never\n : never);\nexport type StepOutput = BaseType &\n (A extends B ? B : A extends \"float\" ? B : never);\nexport type SmoothstepOutput<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n> = BaseType &\n (A extends B ? (A extends C ? C : A extends \"float\" ? C : never) : never);\n\nexport type IsNanOutput = BaseType &\n (A extends \"float\"\n ? \"bool\"\n : A extends \"vec2\"\n ? \"bvec2\"\n : A extends \"vec3\"\n ? \"bvec3\"\n : A extends \"vec4\"\n ? \"bvec4\"\n : never);\nexport type IsInfOutput = IsNanOutput;\n\n// // Run-time type helper functions\n\nexport function addOutputType(\n a: A,\n b: B,\n operation = \"add\",\n): AddOutput {\n const error = () => {\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n };\n // @ts-ignore\n if (a === b) return a as AddOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as AddOutput;\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return a as AddOutput;\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return b as AddOutput;\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return a as AddOutput;\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return b as AddOutput;\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return a as AddOutput;\n error();\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function subOutputType(\n a: A,\n b: B,\n): SubOutput {\n return addOutputType(a, b, \"sub\");\n}\n\nexport function mulOutputType(\n a: A,\n b: B,\n): MulOutput {\n const error = () => {\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n };\n const result = (value: unknown) => value as MulOutput;\n if (a === \"int\") {\n if (isIntType(b)) return result(b);\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return result(a);\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return result(b);\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return result(a);\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return result(b);\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return result(a);\n error();\n }\n if (isIntType(a) || isUintType(a) || isIntType(b) || isUintType(b)) {\n // @ts-ignore\n if (a === b) return result(a);\n error();\n }\n // Vector * Matrix/Vector\n if (a === \"vec2\") {\n if (b === \"vec2\" || isMat2(b)) return result(\"vec2\");\n if (b === \"mat3x2\") return result(\"vec3\");\n if (b === \"mat4x2\") return result(\"vec4\");\n error();\n }\n if (a === \"vec3\") {\n if (b === \"mat2x3\") return result(\"vec2\");\n if (b === \"vec3\" || isMat3(b)) return result(\"vec3\");\n if (b === \"mat4x3\") return result(\"vec4\");\n error();\n }\n if (a === \"vec4\") {\n if (b === \"mat2x4\") return result(\"vec2\");\n if (b === \"mat3x4\") return result(\"vec3\");\n if (b === \"vec4\" || isMat4(b)) return result(\"vec4\");\n error();\n }\n // Matrix * Vector\n if (b === \"vec2\") {\n if (isMat2(a)) return result(\"vec2\");\n if (a === \"mat2x3\") return result(\"vec3\");\n if (a === \"mat2x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec3\") {\n if (a === \"mat3x2\") return result(\"vec2\");\n if (isMat3(a)) return result(\"vec3\");\n if (a === \"mat3x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec4\") {\n if (a === \"mat4x2\") return result(\"vec2\");\n if (a === \"mat4x3\") return result(\"vec3\");\n if (isMat4(a)) return result(\"vec4\");\n error();\n }\n // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n if (isMat2(a)) {\n if (isMat2(b)) return result(\"mat2\");\n if (b === \"mat3x2\") return result(\"mat3x2\");\n if (b === \"mat4x2\") return result(\"mat4x2\");\n error();\n }\n if (a === \"mat2x3\") {\n if (isMat2(b)) return result(\"mat2x3\");\n if (b === \"mat3x2\") return result(\"mat3\");\n if (b === \"mat4x2\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat2x4\") {\n if (isMat2(b)) return result(\"mat2x4\");\n if (b === \"mat3x2\") return result(\"mat3x4\");\n if (b === \"mat4x2\") return result(\"mat4\");\n error();\n }\n if (a === \"mat3x2\") {\n if (b === \"mat2x3\") return result(\"mat2\");\n if (isMat3(b)) return result(\"mat3x2\");\n if (b === \"mat4x3\") return result(\"mat4x2\");\n error();\n }\n if (isMat3(a)) {\n if (b === \"mat2x3\") return result(\"mat2x3\");\n if (isMat3(b)) return result(\"mat3\");\n if (b === \"mat4x3\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat3x4\") {\n if (b === \"mat2x3\") return result(\"mat2x4\");\n if (isMat3(b)) return result(\"mat3x4\");\n if (b === \"mat4x3\") return result(\"mat4\");\n error();\n }\n if (a === \"mat4x2\") {\n if (b === \"mat2x4\") return result(\"mat2\");\n if (b === \"mat3x4\") return result(\"mat3x2\");\n if (isMat4(b)) return result(\"mat4x2\");\n error();\n }\n if (a === \"mat4x3\") {\n if (b === \"mat2x4\") return result(\"mat2x3\");\n if (b === \"mat3x4\") return result(\"mat3\");\n if (isMat4(b)) return result(\"mat4x3\");\n error();\n }\n if (isMat4(a)) {\n if (b === \"mat2x4\") return result(\"mat2x4\");\n if (b === \"mat3x4\") return result(\"mat3x4\");\n if (isMat4(b)) return result(\"mat4\");\n error();\n }\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n}\n\nexport function divOutputType(\n a: A,\n b: B,\n): DivOutput {\n return addOutputType(a, b, \"div\");\n}\n\nexport function imodOutputType(\n a: A,\n b: B,\n): IModOutput {\n // @ts-ignore\n if (a === b) return a as IModOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as IModOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as IModOutput;\n } else if (a === \"uint\") {\n if (isUintType(b)) return b as IModOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as IModOutput;\n }\n throw new Error(`Invalid imod types: ${a}, ${b}`);\n}\n\nexport function modOutputType(\n a: A,\n b: B,\n): ModOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return a as ModOutput;\n throw new Error(`Invalid mod types: ${a}, ${b}`);\n}\n\nexport function modfOutputType(a: A): A {\n return a;\n}\n\nexport function negOutputType(a: A): A {\n return a;\n}\n\nexport function absOutputType(a: A): A {\n return a;\n}\n\nexport function signOutputType(a: A): A {\n return a;\n}\n\nexport function floorOutputType(a: A): A {\n return a;\n}\n\nexport function ceilOutputType(a: A): A {\n return a;\n}\n\nexport function truncOutputType(a: A): A {\n return a;\n}\n\nexport function roundOutputType(a: A): A {\n return a;\n}\n\nexport function fractOutputType(a: A): A {\n return a;\n}\n\nexport function powOutputType(a: A): A {\n return a;\n}\n\nexport function expOutputType(a: A): A {\n return a;\n}\n\nexport function exp2OutputType(a: A): A {\n return a;\n}\n\nexport function logOutputType(a: A): A {\n return a;\n}\n\nexport function log2OutputType(a: A): A {\n return a;\n}\n\nexport function sqrOutputType(a: A): A {\n return a;\n}\n\nexport function sqrtOutputType(a: A): A {\n return a;\n}\n\nexport function inversesqrtOutputType(a: A): A {\n return a;\n}\n\nexport function minOutputType(\n a: A,\n b: B,\n operation = \"min\",\n): MinOutput {\n // @ts-ignore\n if (a === b) return a as MinOutput;\n if (b === \"float\") {\n if (isFloatType(a)) return a as MinOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as MinOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as MinOutput;\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function maxOutputType(\n a: A,\n b: B,\n): MaxOutput {\n return minOutputType(a, b, \"max\");\n}\n\nexport function clampOutputType(\n a: A,\n b: B,\n _c: B,\n): ClampOutput {\n if (b === \"float\") {\n if (isFloatType(a)) return a as ClampOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as ClampOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as ClampOutput;\n }\n throw new Error(`Invalid clamp types: ${a}, ${b}`);\n}\n\nexport function mixOutputType<\n A extends FloatTypes,\n C extends FloatTypes | BoolTypes,\n>(a: A, b: A, c: C): MixOutput {\n // @ts-ignore\n if (c === a) return a as MixOutput;\n if (c === \"float\") return a as MixOutput;\n if (c === \"bool\" && a === \"float\") return a as MixOutput;\n if (c === \"bvec2\" && a === \"vec2\") return a as MixOutput;\n if (c === \"bvec3\" && a === \"vec3\") return a as MixOutput;\n if (c === \"bvec4\" && a === \"vec4\") return a as MixOutput;\n throw new Error(`Invalid mix types: ${a}, ${b}, ${c}`);\n}\n\nexport function stepOutputType(\n a: A,\n b: B,\n): StepOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return b as StepOutput;\n throw new Error(`Invalid step types: ${a}, ${b}`);\n}\n\nexport function smoothstepOutputType<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n>(a: A, b: B, c: C): SmoothstepOutput {\n // @ts-ignore\n if (a === b) {\n if (a === c || a === \"float\") return c as SmoothstepOutput;\n }\n throw new Error(`Invalid smoothstep types: ${a}, ${b}, ${c}`);\n}\n\nexport function isNanOutputType(\n a: A,\n operation = \"isNan\",\n): IsNanOutput {\n if (a === \"float\") return \"bool\" as IsNanOutput;\n if (a === \"vec2\") return \"bvec2\" as IsNanOutput;\n if (a === \"vec3\") return \"bvec3\" as IsNanOutput;\n if (a === \"vec4\") return \"bvec4\" as IsNanOutput;\n throw new Error(`Invalid ${operation} types: ${a}`);\n}\n\nexport function isInfOutputType(a: A): IsInfOutput {\n return isNanOutputType(a, \"isInf\");\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AddOutput,\n type ClampOutput,\n type DivOutput,\n type IModOutput,\n type IsInfOutput,\n type IsNanOutput,\n type MaxOutput,\n type MinOutput,\n type MixOutput,\n type ModOutput,\n type MulOutput,\n type SmoothstepOutput,\n type StepOutput,\n type SubOutput,\n absOutputType,\n addOutputType,\n ceilOutputType,\n clampOutputType,\n divOutputType,\n exp2OutputType,\n expOutputType,\n floorOutputType,\n fractOutputType,\n imodOutputType,\n inversesqrtOutputType,\n isInfOutputType,\n isNanOutputType,\n log2OutputType,\n logOutputType,\n maxOutputType,\n minOutputType,\n mixOutputType,\n modOutputType,\n modfOutputType,\n mulOutputType,\n negOutputType,\n powOutputType,\n roundOutputType,\n signOutputType,\n smoothstepOutputType,\n sqrOutputType,\n sqrtOutputType,\n stepOutputType,\n subOutputType,\n truncOutputType,\n} from \"./mathTypes\";\nimport type {\n AllIntTypes,\n AllSignedTypes,\n AllValueTypes,\n BoolTypes,\n FloatTypes,\n SignedTypes,\n ValueTypes,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const add = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Add({ a, b });\nexport const sub = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Sub({ a, b });\nexport const mul = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mul({ a, b });\nexport const div = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Div({ a, b });\nexport const imod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new IMod({ a, b });\nexport const mod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mod({ a, b });\nexport const modf = (a: DynoVal) =>\n new Modf({ a }).outputs;\n\nexport const neg = (a: DynoVal): DynoVal =>\n new Neg({ a });\nexport const abs = (a: DynoVal): DynoVal =>\n new Abs({ a });\nexport const sign = (a: DynoVal): DynoVal =>\n new Sign({ a });\nexport const floor = (a: DynoVal): DynoVal =>\n new Floor({ a });\nexport const ceil = (a: DynoVal): DynoVal =>\n new Ceil({ a });\nexport const trunc = (a: DynoVal): DynoVal =>\n new Trunc({ a });\nexport const round = (a: DynoVal): DynoVal =>\n new Round({ a });\nexport const fract = (a: DynoVal): DynoVal =>\n new Fract({ a });\n\nexport const pow = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Pow({ a, b });\nexport const exp = (a: DynoVal): DynoVal =>\n new Exp({ a });\nexport const exp2 = (a: DynoVal): DynoVal =>\n new Exp2({ a });\nexport const log = (a: DynoVal): DynoVal =>\n new Log({ a });\nexport const log2 = (a: DynoVal): DynoVal =>\n new Log2({ a });\nexport const sqr = (a: DynoVal): DynoVal =>\n new Sqr({ a });\nexport const sqrt = (a: DynoVal): DynoVal =>\n new Sqrt({ a });\nexport const inversesqrt = (a: DynoVal): DynoVal =>\n new InverseSqrt({ a });\n\nexport const min = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Min({ a, b });\nexport const max = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Max({ a, b });\nexport const clamp = (\n a: DynoVal,\n min: DynoVal,\n max: DynoVal,\n): DynoVal> => new Clamp({ a, min, max });\nexport const mix = (\n a: DynoVal,\n b: DynoVal,\n t: DynoVal,\n): DynoVal> => new Mix({ a, b, t });\nexport const step = (\n edge: DynoVal,\n x: DynoVal,\n): DynoVal> => new Step({ edge, x });\nexport const smoothstep = (\n edge0: DynoVal,\n edge1: DynoVal,\n x: DynoVal,\n): DynoVal> =>\n new Smoothstep({ edge0, edge1, x });\n\nexport const isNan = (\n a: DynoVal,\n): DynoVal> => new IsNan({ a });\nexport const isInf = (\n a: DynoVal,\n): DynoVal> => new IsInf({ a });\n\nexport class Add<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"sum\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"sum\", outTypeFunc: addOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sum} = ${inputs.a} + ${inputs.b};`];\n };\n }\n}\n\nexport class Sub<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"difference\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"difference\", outTypeFunc: subOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.difference} = ${inputs.a} - ${inputs.b};`];\n };\n }\n}\n\nexport class Mul<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"product\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: mulOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.product} = ${inputs.a} * ${inputs.b};`];\n };\n }\n}\n\nexport class Div<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"quotient\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"quotient\", outTypeFunc: divOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.quotient} = ${inputs.a} / ${inputs.b};`];\n };\n }\n}\n\nexport class IMod<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> extends BinaryOp, \"remainder\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: imodOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = ${inputs.a} % ${inputs.b};`];\n };\n }\n}\n\nexport class Mod extends BinaryOp<\n A,\n B,\n ModOutput,\n \"remainder\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: modOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = mod(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Modf extends Dyno<\n { a: A },\n { fract: A; integer: A }\n> {\n constructor({ a }: { a: DynoVal }) {\n const inTypes = { a: valType(a) };\n const outType = modfOutputType(inTypes.a);\n const outTypes = {\n fract: outType,\n integer: outType,\n };\n super({ inTypes, outTypes, inputs: { a } });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = modf(${inputs.a}, ${outputs.integer});`];\n };\n }\n}\n\nexport class Neg extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"neg\", outTypeFunc: negOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.neg} = -${inputs.a};`];\n };\n }\n}\n\nexport class Abs extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"abs\", outTypeFunc: absOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.abs} = abs(${inputs.a});`];\n };\n }\n}\n\nexport class Sign extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sign\", outTypeFunc: signOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sign} = sign(${inputs.a});`];\n };\n }\n}\n\nexport class Floor extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"floor\", outTypeFunc: floorOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.floor} = floor(${inputs.a});`];\n };\n }\n}\n\nexport class Ceil extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"ceil\", outTypeFunc: ceilOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.ceil} = ceil(${inputs.a});`];\n };\n }\n}\n\nexport class Trunc extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"trunc\", outTypeFunc: truncOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.trunc} = trunc(${inputs.a});`];\n };\n }\n}\n\nexport class Round extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"round\", outTypeFunc: roundOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.round} = round(${inputs.a});`];\n };\n }\n}\n\nexport class Fract extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"fract\", outTypeFunc: fractOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = fract(${inputs.a});`];\n };\n }\n}\n\nexport class Pow extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"power\", outTypeFunc: powOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.power} = pow(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Exp extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp\", outTypeFunc: expOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp} = exp(${inputs.a});`];\n };\n }\n}\n\nexport class Exp2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp2\", outTypeFunc: exp2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp2} = exp2(${inputs.a});`];\n };\n }\n}\n\nexport class Log extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log\", outTypeFunc: logOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log} = log(${inputs.a});`];\n };\n }\n}\n\nexport class Log2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log2\", outTypeFunc: log2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log2} = log2(${inputs.a});`];\n };\n }\n}\n\nexport class Sqr extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqr\", outTypeFunc: sqrOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqr} = ${inputs.a} * ${inputs.a};`];\n };\n }\n}\n\nexport class Sqrt extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqrt\", outTypeFunc: sqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqrt} = sqrt(${inputs.a});`];\n };\n }\n}\n\nexport class InverseSqrt extends UnaryOp<\n A,\n A,\n \"inversesqrt\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inversesqrt\", outTypeFunc: inversesqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.inversesqrt} = inversesqrt(${inputs.a});`];\n };\n }\n}\n\nexport class Min extends BinaryOp<\n A,\n B,\n MinOutput,\n \"min\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"min\", outTypeFunc: minOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.min} = min(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Max extends BinaryOp<\n A,\n B,\n MaxOutput,\n \"max\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"max\", outTypeFunc: maxOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.max} = max(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Clamp<\n A extends ValueTypes,\n MinMax extends ValueTypes,\n> extends TrinaryOp, \"clamp\"> {\n constructor({\n a,\n min,\n max,\n }: { a: DynoVal; min: DynoVal; max: DynoVal }) {\n super({\n a,\n b: min,\n c: max,\n outKey: \"clamp\",\n outTypeFunc: clampOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a, b: min, c: max } = inputs;\n return [`${outputs.clamp} = clamp(${a}, ${min}, ${max});`];\n };\n }\n}\n\nexport class Mix<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> extends TrinaryOp, \"mix\"> {\n constructor({ a, b, t }: { a: DynoVal; b: DynoVal; t: DynoVal }) {\n super({ a, b, c: t, outKey: \"mix\", outTypeFunc: mixOutputType });\n this.statements = ({ inputs, outputs }) => {\n const { a, b, c: t } = inputs;\n return [`${outputs.mix} = mix(${a}, ${b}, ${t});`];\n };\n }\n}\n\nexport class Step<\n Edge extends FloatTypes,\n X extends FloatTypes,\n> extends BinaryOp, \"step\"> {\n constructor({ edge, x }: { edge: DynoVal; x: DynoVal }) {\n super({\n a: edge,\n b: x,\n outKey: \"step\",\n outTypeFunc: stepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge, b: x } = inputs;\n return [`${outputs.step} = step(${edge}, ${x});`];\n };\n }\n}\n\nexport class Smoothstep<\n X extends FloatTypes,\n Edge extends X | \"float\",\n> extends TrinaryOp<\n Edge,\n Edge,\n X,\n SmoothstepOutput,\n \"smoothstep\"\n> {\n constructor({\n edge0,\n edge1,\n x,\n }: { edge0: DynoVal; edge1: DynoVal; x: DynoVal }) {\n super({\n a: edge0,\n b: edge1,\n c: x,\n outKey: \"smoothstep\",\n outTypeFunc: smoothstepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge0, b: edge1, c: x } = inputs;\n return [`${outputs.smoothstep} = smoothstep(${edge0}, ${edge1}, ${x});`];\n };\n }\n}\n\nexport class IsNan extends UnaryOp<\n A,\n IsNanOutput,\n \"isNan\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isNan\", outTypeFunc: isNanOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isNan} = isNan(${inputs.a});`];\n };\n }\n}\n\nexport class IsInf extends UnaryOp<\n A,\n IsInfOutput,\n \"isInf\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isInf\", outTypeFunc: isInfOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isInf} = isInf(${inputs.a});`];\n };\n }\n}\n","import { BinaryOp, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AllIntTypes,\n type BoolTypes,\n type IntTypes,\n type ScalarTypes,\n type SimpleTypes,\n type UintTypes,\n type ValueTypes,\n isBoolType,\n isIntType,\n isScalarType,\n isUintType,\n isVector2Type,\n isVector3Type,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const and = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new And({ a, b });\nexport const or = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Or({ a, b });\nexport const xor = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Xor({ a, b });\nexport const not = (\n a: DynoVal,\n): DynoVal => new Not({ a });\n\nexport const shr = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shr({ a, b });\n\nexport const shl = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shl({ a, b });\n\nexport const lessThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThan({ a, b });\nexport const lessThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThanEqual({ a, b });\nexport const greaterThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThan({ a, b });\nexport const greaterThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThanEqual({ a, b });\nexport const equal = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Equal({ a, b });\nexport const notEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new NotEqual({ a, b });\n\nexport const any = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new Any({ a });\nexport const all = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new All({ a });\nexport const select = (\n cond: DynoVal<\"bool\">,\n t: DynoVal,\n f: DynoVal,\n): DynoVal => new Select({ cond, t, f });\n\nexport const compXor = (\n a: DynoVal,\n): DynoVal> => new CompXor({ a });\n\nexport class And extends BinaryOp<\n T,\n T,\n T,\n \"and\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"and\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.and === \"bool\") {\n return [`${outputs.and} = ${inputs.a} && ${inputs.b};`];\n }\n return [`${outputs.and} = ${inputs.a} & ${inputs.b};`];\n };\n }\n}\n\nexport class Or extends BinaryOp<\n T,\n T,\n T,\n \"or\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"or\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.or === \"bool\") {\n return [`${outputs.or} = ${inputs.a} || ${inputs.b};`];\n }\n return [`${outputs.or} = ${inputs.a} | ${inputs.b};`];\n };\n }\n}\n\nexport class Xor extends BinaryOp<\n T,\n T,\n T,\n \"xor\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"xor\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.xor === \"bool\") {\n return [`${outputs.xor} = ${inputs.a} ^^ ${inputs.b};`];\n }\n return [`${outputs.xor} = ${inputs.a} ^ ${inputs.b};`];\n };\n }\n}\n\nexport class Not extends UnaryOp<\n T,\n T,\n \"not\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => aType, outKey: \"not\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.not === \"bool\") {\n return [`${outputs.not} = !${inputs.a};`];\n }\n return [`${outputs.not} = not(${inputs.a});`];\n };\n }\n}\n\nexport class LessThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) => compareOutputType(aType, \"lessThan\"),\n outKey: \"lessThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThan === \"bool\") {\n return [`${outputs.lessThan} = ${inputs.a} < ${inputs.b};`];\n }\n return [`${outputs.lessThan} = lessThan(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class LessThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"lessThanEqual\"),\n outKey: \"lessThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThanEqual === \"bool\") {\n return [`${outputs.lessThanEqual} = ${inputs.a} <= ${inputs.b};`];\n }\n return [\n `${outputs.lessThanEqual} = lessThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThan\"),\n outKey: \"greaterThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThan === \"bool\") {\n return [`${outputs.greaterThan} = ${inputs.a} > ${inputs.b};`];\n }\n return [\n `${outputs.greaterThan} = greaterThan(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThanEqual\"),\n outKey: \"greaterThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThanEqual === \"bool\") {\n return [`${outputs.greaterThanEqual} = ${inputs.a} >= ${inputs.b};`];\n }\n return [\n `${outputs.greaterThanEqual} = greaterThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class Equal extends BinaryOp<\n T,\n T,\n EqualOutput,\n \"equal\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: equalOutputType, outKey: \"equal\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.equal === \"bool\") {\n return [`${outputs.equal} = ${inputs.a} == ${inputs.b};`];\n }\n return [`${outputs.equal} = equal(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class NotEqual extends BinaryOp<\n T,\n T,\n NotEqualOutput,\n \"notEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: notEqualOutputType, outKey: \"notEqual\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.notEqual === \"bool\") {\n return [`${outputs.notEqual} = ${inputs.a} != ${inputs.b};`];\n }\n return [`${outputs.notEqual} = notEqual(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Any extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"any\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.any} = any(${inputs.a});`];\n };\n }\n}\n\nexport class All extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"all\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.all} = all(${inputs.a});`];\n };\n }\n}\n\nexport class Select extends TrinaryOp<\n \"bool\",\n T,\n T,\n T,\n \"select\"\n> {\n constructor({\n cond,\n t,\n f,\n }: { cond: DynoVal<\"bool\">; t: DynoVal; f: DynoVal }) {\n super({\n a: cond,\n b: t,\n c: f,\n outKey: \"select\",\n outTypeFunc: (aType: \"bool\", bType: T, cType: T) => bType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: cond, b: t, c: f } = inputs;\n return [`${outputs.select} = (${cond}) ? (${t}) : (${f});`];\n };\n }\n}\n\ntype CompareOutput = T extends ScalarTypes\n ? \"bool\"\n : T extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : T extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : T extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction compareOutputType(\n type: T,\n operator: string,\n): CompareOutput {\n if (isScalarType(type)) {\n return \"bool\" as CompareOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as CompareOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as CompareOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as CompareOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype EqualOutput = A extends ScalarTypes\n ? \"bool\"\n : A extends BoolTypes\n ? A\n : A extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : A extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : A extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction equalOutputType(\n type: A,\n operator = \"equal\",\n): EqualOutput {\n if (isScalarType(type)) {\n return \"bool\" as EqualOutput;\n }\n if (isBoolType(type)) {\n return type as EqualOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as EqualOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as EqualOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as EqualOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype NotEqualOutput = EqualOutput;\n\nfunction notEqualOutputType(\n type: A,\n): NotEqualOutput {\n return equalOutputType(type, \"notEqual\");\n}\n\ntype CompXorOutput = A extends BoolTypes\n ? \"bool\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nfunction compXorOutputType(\n type: A,\n): CompXorOutput {\n if (isBoolType(type)) {\n return \"bool\" as CompXorOutput;\n }\n if (isIntType(type)) {\n return \"int\" as CompXorOutput;\n }\n if (isUintType(type)) {\n return \"uint\" as CompXorOutput;\n }\n throw new Error(`Invalid compXor type: ${type}`);\n}\n\nexport class CompXor extends UnaryOp<\n T,\n CompXorOutput,\n \"compXor\"\n> {\n constructor({ a }: { a: DynoVal }) {\n const outType = compXorOutputType(valType(a));\n super({ a, outTypeFunc: (aType: T) => outType, outKey: \"compXor\" });\n this.statements = ({ inputs, outputs }) => {\n if (isScalarType(this.outTypes.compXor)) {\n return [`${outputs.compXor} = ${inputs.a};`];\n }\n const components = isVector2Type(outType)\n ? [\"x\", \"y\"]\n : isVector3Type(outType)\n ? [\"x\", \"y\", \"z\"]\n : [\"x\", \"y\", \"z\", \"w\"];\n const operands = components.map((c) => `${inputs.a}.${c}`);\n const operator = isBoolType(outType) ? \"^^\" : \"^\";\n return [`${outputs.compXor} = ${operands.join(` ${operator} `)};`];\n };\n }\n}\n\nexport class Shr extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shr\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shr} = ${inputs.a} >> ${inputs.b};`];\n };\n }\n}\n\nexport class Shl extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shl\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shl} = ${inputs.a} << ${inputs.b};`];\n };\n }\n}\n","import { UnaryOp } from \"./base\";\nimport { type SimpleTypes, typeLiteral } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const bool = (\n value: DynoVal,\n): DynoVal<\"bool\"> => new Bool({ value });\nexport const int = (\n value: DynoVal,\n): DynoVal<\"int\"> => new Int({ value });\nexport const uint = (\n value: DynoVal,\n): DynoVal<\"uint\"> => new Uint({ value });\nexport const float = (\n value: DynoVal,\n): DynoVal<\"float\"> => new Float({ value });\n\nexport const bvec2 = (\n value: DynoVal,\n): DynoVal<\"bvec2\"> => new BVec2({ value });\nexport const bvec3 = (\n value: DynoVal,\n): DynoVal<\"bvec3\"> => new BVec3({ value });\nexport const bvec4 = (\n value: DynoVal,\n): DynoVal<\"bvec4\"> => new BVec4({ value });\n\nexport const ivec2 = (\n value: DynoVal,\n): DynoVal<\"ivec2\"> => new IVec2({ value });\nexport const ivec3 = (\n value: DynoVal,\n): DynoVal<\"ivec3\"> => new IVec3({ value });\nexport const ivec4 = (\n value: DynoVal,\n): DynoVal<\"ivec4\"> => new IVec4({ value });\n\nexport const uvec2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => new UVec2({ value });\nexport const uvec3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => new UVec3({ value });\nexport const uvec4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => new UVec4({ value });\n\nexport const vec2 = <\n T extends \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec2\"> => new Vec2({ value });\nexport const vec3 = <\n T extends \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec3\"> => new Vec3({ value });\nexport const vec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => new Vec4({ value });\n\nexport const mat2 = (\n value: DynoVal,\n): DynoVal<\"mat2\"> => new Mat2({ value });\nexport const mat3 = (\n value: DynoVal,\n): DynoVal<\"mat3\"> => new Mat3({ value });\nexport const mat4 = (\n value: DynoVal,\n): DynoVal<\"mat4\"> => new Mat4({ value });\n\nexport const floatBitsToInt = (value: DynoVal<\"float\">): DynoVal<\"int\"> =>\n new FloatBitsToInt({ value });\nexport const floatBitsToUint = (value: DynoVal<\"float\">): DynoVal<\"uint\"> =>\n new FloatBitsToUint({ value });\nexport const intBitsToFloat = (value: DynoVal<\"int\">): DynoVal<\"float\"> =>\n new IntBitsToFloat({ value });\nexport const uintBitsToFloat = (value: DynoVal<\"uint\">): DynoVal<\"float\"> =>\n new UintBitsToFloat({ value });\n\nexport const packSnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackSnorm2x16({ value });\nexport const unpackSnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackSnorm2x16({ value });\nexport const packUnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackUnorm2x16({ value });\nexport const unpackUnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackUnorm2x16({ value });\n\nexport const packHalf2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackHalf2x16({ value });\nexport const unpackHalf2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackHalf2x16({ value });\n\nexport const uintToRgba8 = (value: DynoVal<\"uint\">): DynoVal<\"vec4\"> =>\n new UintToRgba8({ value });\n\nexport class SimpleCast<\n Allowed extends SimpleTypes,\n OutType extends SimpleTypes,\n OutKey extends string,\n> extends UnaryOp {\n constructor({\n value,\n outType,\n outKey,\n }: { value: DynoVal; outType: OutType; outKey: OutKey }) {\n super({ a: value, outTypeFunc: () => outType, outKey });\n this.statements = ({ inputs, outputs }) => [\n `${outputs[outKey]} = ${typeLiteral(outType)}(${inputs.a});`,\n ];\n }\n}\n\nexport class Bool extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"bool\",\n \"bool\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"bool\", outKey: \"bool\" });\n }\n}\n\nexport class Int extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"int\",\n \"int\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"int\", outKey: \"int\" });\n }\n}\n\nexport class Uint extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"uint\",\n \"uint\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"uint\", outKey: \"uint\" });\n }\n}\n\nexport class Float extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"float\",\n \"float\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"float\", outKey: \"float\" });\n }\n}\n\nexport class BVec2 extends SimpleCast<\n \"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"bvec2\",\n \"bvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"bvec2\", outKey: \"bvec2\" });\n }\n}\n\nexport class BVec3 extends SimpleCast<\n \"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"bvec3\",\n \"bvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"bvec3\", outKey: \"bvec3\" });\n }\n}\n\nexport class BVec4 extends SimpleCast<\n \"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"bvec4\",\n \"bvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"bvec4\", outKey: \"bvec4\" });\n }\n}\n\nexport class IVec2 extends SimpleCast<\n \"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"ivec2\",\n \"ivec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"ivec2\", outKey: \"ivec2\" });\n }\n}\n\nexport class IVec3 extends SimpleCast<\n \"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"ivec3\",\n \"ivec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"ivec3\", outKey: \"ivec3\" });\n }\n}\n\nexport class IVec4 extends SimpleCast<\n \"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"ivec4\",\n \"ivec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"ivec4\", outKey: \"ivec4\" });\n }\n}\n\nexport class UVec2 extends SimpleCast<\n \"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\",\n \"uvec2\",\n \"uvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"uvec2\", outKey: \"uvec2\" });\n }\n}\n\nexport class UVec3 extends SimpleCast<\n \"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\",\n \"uvec3\",\n \"uvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"uvec3\", outKey: \"uvec3\" });\n }\n}\n\nexport class UVec4 extends SimpleCast<\n \"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\",\n \"uvec4\",\n \"uvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"uvec4\", outKey: \"uvec4\" });\n }\n}\n\nexport class Vec2 extends SimpleCast<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n \"vec2\",\n \"vec2\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec2\", outKey: \"vec2\" });\n }\n}\n\nexport class Vec3 extends SimpleCast<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\",\n \"vec3\",\n \"vec3\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec3\", outKey: \"vec3\" });\n }\n}\n\nexport class Vec4 extends SimpleCast<\n \"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"vec4\",\n \"vec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"vec4\", outKey: \"vec4\" });\n }\n}\n\nexport class Mat2 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat2\",\n \"mat2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat2\", outKey: \"mat2\" });\n }\n}\n\nexport class Mat3 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat3\",\n \"mat3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat3\", outKey: \"mat3\" });\n }\n}\n\nexport class Mat4 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat4\",\n \"mat4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat4\", outKey: \"mat4\" });\n }\n}\n\nexport class FloatBitsToInt extends UnaryOp<\"float\", \"int\", \"int\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"int\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.int} = floatBitsToInt(${inputs.a});`];\n };\n }\n}\n\nexport class FloatBitsToUint extends UnaryOp<\"float\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = floatBitsToUint(${inputs.a});`];\n };\n }\n}\n\nexport class IntBitsToFloat extends UnaryOp<\"int\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"int\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = intBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class UintBitsToFloat extends UnaryOp<\"uint\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = uintBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class PackSnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackSnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackUnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackUnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackHalf2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackHalf2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UintToRgba8 extends UnaryOp<\"uint\", \"vec4\", \"rgba8\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"rgba8\", outTypeFunc: () => \"vec4\" });\n this.statements = ({ inputs, outputs }) => {\n return [\n `uvec4 uRgba = uvec4(${inputs.a} & 0xffu, (${inputs.a} >> 8u) & 0xffu, (${inputs.a} >> 16u) & 0xffu, (${inputs.a} >> 24u) & 0xffu);`,\n `${outputs.rgba8} = vec4(uRgba) / 255.0;`,\n ];\n };\n }\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type FloatTypes,\n type IntTypes,\n type MatFloatTypes,\n type SquareMatTypes,\n type UintTypes,\n type VectorElementType,\n type VectorTypes,\n isFloatType,\n isIntType,\n isUintType,\n vectorDim,\n vectorElementType,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n literalZero,\n valType,\n} from \"./value\";\n\nexport const length = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Length({ a });\nexport const distance = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Distance({ a, b });\nexport const dot = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Dot({ a, b });\nexport const cross = (\n a: DynoVal<\"vec3\">,\n b: DynoVal<\"vec3\">,\n): DynoVal<\"vec3\"> => new Cross({ a, b });\nexport const normalize = (\n a: DynoVal,\n): DynoVal => new Normalize({ a });\nexport const faceforward = (\n a: DynoVal,\n b: DynoVal,\n c: DynoVal,\n): DynoVal => new FaceForward({ a, b, c });\nexport const reflectVec = (\n incident: DynoVal,\n normal: DynoVal,\n): DynoVal => new ReflectVec({ incident, normal });\nexport const refractVec = (\n incident: DynoVal,\n normal: DynoVal,\n eta: DynoVal<\"float\">,\n): DynoVal => new RefractVec({ incident, normal, eta });\nexport const split = (vector: DynoVal): Split =>\n new Split({ vector });\nexport const combine = >({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n}: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n}): DynoVal => new Combine({ vector, vectorType, x, y, z, w, r, g, b, a });\nexport const projectH = (\n a: DynoVal,\n): DynoVal> => new ProjectH({ a });\nexport const extendVec = (\n a: DynoVal,\n b: DynoVal<\"float\">,\n): DynoVal> => new ExtendVec({ a, b });\nexport const swizzle = (\n a: DynoVal,\n select: S,\n): DynoVal>> =>\n new Swizzle({ vector: a, select });\nexport const compMult = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new CompMult({ a, b });\nexport const outer = <\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Outer({ a, b });\nexport const transpose = (\n a: DynoVal,\n): DynoVal> => new Transpose({ a });\nexport const determinant = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Determinant({ a });\nexport const inverse = (a: DynoVal): DynoVal =>\n new Inverse({ a });\n\nexport class Length extends UnaryOp<\n A,\n \"float\",\n \"length\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => \"float\", outKey: \"length\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.length} = length(${inputs.a});`,\n ];\n }\n}\n\nexport class Distance extends BinaryOp<\n A,\n A,\n \"float\",\n \"distance\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"distance\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.distance} = distance(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Dot extends BinaryOp<\n A,\n A,\n \"float\",\n \"dot\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"dot\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.dot} = dot(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Cross extends BinaryOp<\"vec3\", \"vec3\", \"vec3\", \"cross\"> {\n constructor({ a, b }: { a: DynoVal<\"vec3\">; b: DynoVal<\"vec3\"> }) {\n super({ a, b, outKey: \"cross\", outTypeFunc: (aType, bType) => \"vec3\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cross} = cross(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Normalize extends UnaryOp<\n A,\n A,\n \"normalize\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => aType, outKey: \"normalize\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normalize} = normalize(${inputs.a});`,\n ];\n }\n}\n\ntype ProjectHOutput = A extends \"vec3\"\n ? \"vec2\"\n : A extends \"vec4\"\n ? \"vec3\"\n : never;\n\nfunction projectHOutputType(\n type: A,\n): ProjectHOutput {\n if (type === \"vec3\") {\n return \"vec2\" as ProjectHOutput;\n }\n if (type === \"vec4\") {\n return \"vec3\" as ProjectHOutput;\n }\n throw new Error(\"Invalid type\");\n}\n\nexport class ProjectH extends UnaryOp<\n A,\n ProjectHOutput,\n \"projected\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({\n a,\n outTypeFunc: (aType) => projectHOutputType(aType),\n outKey: \"projected\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.inTypes.a === \"vec3\") {\n return [`${outputs.projected} = ${inputs.a}.xy / ${inputs.a}.z;`];\n }\n if (this.inTypes.a === \"vec4\") {\n return [`${outputs.projected} = ${inputs.a}.xyz / ${inputs.a}.w;`];\n }\n throw new Error(\"Invalid type\");\n };\n }\n}\n\ntype ExtendVecOutput = A extends \"float\"\n ? \"vec2\"\n : A extends \"vec2\"\n ? \"vec3\"\n : A extends \"vec3\"\n ? \"vec4\"\n : never;\n\nfunction extendVecOutputType(\n type: A,\n): ExtendVecOutput {\n if (type === \"float\") return \"vec2\" as ExtendVecOutput;\n if (type === \"vec2\") return \"vec3\" as ExtendVecOutput;\n if (type === \"vec3\") return \"vec4\" as ExtendVecOutput;\n throw new Error(\"Invalid type\");\n}\n\nexport class ExtendVec extends BinaryOp<\n A,\n \"float\",\n ExtendVecOutput,\n \"extend\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal<\"float\"> }) {\n const type = valType(a);\n const outType = extendVecOutputType(type);\n super({ a, b, outKey: \"extend\", outTypeFunc: () => outType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.extend} = ${outType}(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class FaceForward extends TrinaryOp<\n A,\n A,\n A,\n A,\n \"forward\"\n> {\n constructor({ a, b, c }: { a: DynoVal; b: DynoVal; c: DynoVal }) {\n super({\n a,\n b,\n c,\n outKey: \"forward\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.forward} = faceforward(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class ReflectVec extends BinaryOp<\n A,\n A,\n A,\n \"reflection\"\n> {\n constructor({\n incident,\n normal,\n }: { incident: DynoVal; normal: DynoVal }) {\n super({\n a: incident,\n b: normal,\n outKey: \"reflection\",\n outTypeFunc: (aType, bType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.reflection} = reflect(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class RefractVec extends TrinaryOp<\n A,\n A,\n \"float\",\n A,\n \"refraction\"\n> {\n constructor({\n incident,\n normal,\n eta,\n }: { incident: DynoVal; normal: DynoVal; eta: DynoVal<\"float\"> }) {\n super({\n a: incident,\n b: normal,\n c: eta,\n outKey: \"refraction\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.refraction} = refract(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class CompMult extends BinaryOp<\n A,\n A,\n A,\n \"product\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: (aType, bType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.product} = matrixCompMult(${a}, ${b});`,\n ];\n }\n}\n\ntype OuterOutput<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> = A extends \"vec2\"\n ? B extends \"vec2\"\n ? \"mat2\"\n : B extends \"vec3\"\n ? \"mat3x2\"\n : B extends \"vec4\"\n ? \"mat4x2\"\n : never\n : A extends \"vec3\"\n ? B extends \"vec2\"\n ? \"mat2x3\"\n : B extends \"vec3\"\n ? \"mat3\"\n : B extends \"vec4\"\n ? \"mat4x3\"\n : never\n : A extends \"vec4\"\n ? B extends \"vec2\"\n ? \"mat2x4\"\n : B extends \"vec3\"\n ? \"mat3x4\"\n : B extends \"vec4\"\n ? \"mat4\"\n : never\n : never;\n\nfunction outerOutputType<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(aType: A, bType: B): OuterOutput {\n if (aType === \"vec2\") {\n if (bType === \"vec2\") return \"mat2\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x2\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x2\" as OuterOutput;\n }\n if (aType === \"vec3\") {\n if (bType === \"vec2\") return \"mat2x3\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x3\" as OuterOutput;\n }\n if (aType === \"vec4\") {\n if (bType === \"vec2\") return \"mat2x4\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x4\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4\" as OuterOutput;\n }\n throw new Error(`Invalid outer type: ${aType}, ${bType}`);\n}\n\nexport class Outer<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> extends BinaryOp, \"outer\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"outer\", outTypeFunc: outerOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.outer} = outerProduct(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\ntype TransposeOutput = A extends SquareMatTypes\n ? A\n : A extends \"mat2x3\"\n ? \"mat3x2\"\n : A extends \"mat2x4\"\n ? \"mat4x2\"\n : A extends \"mat3x2\"\n ? \"mat2x3\"\n : A extends \"mat3x4\"\n ? \"mat4x3\"\n : A extends \"mat4x2\"\n ? \"mat2x4\"\n : A extends \"mat4x3\"\n ? \"mat3x4\"\n : never;\n\nfunction transposeOutputType(\n type: A,\n): TransposeOutput {\n if (type === \"mat2\") return \"mat2\" as TransposeOutput;\n if (type === \"mat3\") return \"mat3\" as TransposeOutput;\n if (type === \"mat4\") return \"mat4\" as TransposeOutput;\n if (type === \"mat2x2\") return \"mat2x2\" as TransposeOutput;\n if (type === \"mat2x3\") return \"mat3x2\" as TransposeOutput;\n if (type === \"mat2x4\") return \"mat4x2\" as TransposeOutput;\n if (type === \"mat3x2\") return \"mat2x3\" as TransposeOutput;\n if (type === \"mat3x3\") return \"mat3x3\" as TransposeOutput;\n if (type === \"mat3x4\") return \"mat4x3\" as TransposeOutput;\n if (type === \"mat4x2\") return \"mat2x4\" as TransposeOutput;\n if (type === \"mat4x3\") return \"mat3x4\" as TransposeOutput;\n if (type === \"mat4x4\") return \"mat4x4\" as TransposeOutput;\n throw new Error(`Invalid transpose type: ${type}`);\n}\n\nexport class Transpose extends UnaryOp<\n A,\n TransposeOutput,\n \"transpose\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"transpose\", outTypeFunc: transposeOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.transpose} = transpose(${inputs.a});`,\n ];\n }\n}\n\nexport class Determinant extends UnaryOp<\n A,\n \"float\",\n \"det\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"det\", outTypeFunc: (aType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.det} = determinant(${inputs.a});`,\n ];\n }\n}\n\nexport class Inverse extends UnaryOp<\n A,\n A,\n \"inverse\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inverse\", outTypeFunc: (aType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.inverse} = inverse(${a});`,\n ];\n }\n}\n\ntype SplitOutTypes = A extends \"vec2\"\n ? { x: \"float\"; y: \"float\"; r: \"float\"; g: \"float\" }\n : A extends \"vec3\"\n ? { x: \"float\"; y: \"float\"; z: \"float\"; r: \"float\"; g: \"float\"; b: \"float\" }\n : A extends \"vec4\"\n ? {\n x: \"float\";\n y: \"float\";\n z: \"float\";\n w: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n a: \"float\";\n }\n : A extends \"ivec2\"\n ? { x: \"int\"; y: \"int\"; r: \"int\"; g: \"int\" }\n : A extends \"ivec3\"\n ? { x: \"int\"; y: \"int\"; z: \"int\"; r: \"int\"; g: \"int\"; b: \"int\" }\n : A extends \"ivec4\"\n ? {\n x: \"int\";\n y: \"int\";\n z: \"int\";\n w: \"int\";\n r: \"int\";\n g: \"int\";\n b: \"int\";\n a: \"int\";\n }\n : A extends \"uvec2\"\n ? { x: \"uint\"; y: \"uint\"; r: \"uint\"; g: \"uint\" }\n : A extends \"uvec3\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n }\n : A extends \"uvec4\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n w: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n a: \"uint\";\n }\n : never;\n\nfunction splitOutTypes(type: A): SplitOutTypes {\n const result = (value: unknown) => value as SplitOutTypes;\n switch (type) {\n case \"vec2\":\n return result({ x: \"float\", y: \"float\", r: \"float\", g: \"float\" });\n case \"vec3\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n });\n case \"vec4\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n w: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n a: \"float\",\n });\n case \"ivec2\":\n return result({ x: \"int\", y: \"int\", r: \"int\", g: \"int\" });\n case \"ivec3\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n });\n case \"ivec4\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n w: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n a: \"int\",\n });\n case \"uvec2\":\n return result({ x: \"uint\", y: \"uint\", r: \"uint\", g: \"uint\" });\n case \"uvec3\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n });\n case \"uvec4\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n w: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n a: \"uint\",\n });\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport class Split extends Dyno<\n { vector: V },\n SplitOutTypes\n> {\n constructor({ vector }: { vector: DynoVal }) {\n const type = valType(vector);\n const inTypes = { vector: type };\n const outTypes = splitOutTypes(inTypes.vector);\n super({ inTypes, outTypes, inputs: { vector } });\n this.statements = ({ inputs, outputs }) => {\n const { x, y, z, w, r, g, b, a } = outputs as unknown as Record<\n string,\n string\n >;\n const { vector } = inputs;\n return [\n x ? `${x} = ${vector}.x;` : null,\n y ? `${y} = ${vector}.y;` : null,\n z ? `${z} = ${vector}.z;` : null,\n w ? `${w} = ${vector}.w;` : null,\n r ? `${r} = ${vector}.r;` : null,\n g ? `${g} = ${vector}.g;` : null,\n b ? `${b} = ${vector}.b;` : null,\n a ? `${a} = ${vector}.a;` : null,\n ].filter(Boolean) as string[];\n };\n }\n}\n\nexport class Combine>\n extends Dyno & { vector: V }, { vector: V }>\n implements HasDynoOut\n{\n constructor({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n }: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n }) {\n if (!vector && !vectorType) {\n throw new Error(\"Either vector or vectorType must be provided\");\n }\n const vType = vectorType ?? valType(vector as DynoVal);\n const elType = vectorElementType(vType);\n const dim = vectorDim(vType);\n\n const inTypes = {\n vector: vType,\n x: elType,\n y: elType,\n r: elType,\n g: elType,\n } as unknown as SplitOutTypes & { vector: V };\n const inputs = { vector, x, y, r, g };\n if (dim >= 3) {\n Object.assign(inTypes, { z: elType, b: elType });\n Object.assign(inputs, { z, b });\n }\n if (dim >= 4) {\n Object.assign(inTypes, { w: elType, a: elType });\n Object.assign(inputs, { w, a });\n }\n // @ts-ignore\n super({ inTypes, outTypes: { vector: vType }, inputs });\n this.statements = ({ inputs, outputs }) => {\n const { vector } = outputs;\n const {\n vector: input,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n } = inputs as Record;\n const statements = [\n `${vector}.x = ${x ?? r ?? (input ? `${input}.x` : literalZero(elType))};`,\n `${vector}.y = ${y ?? g ?? (input ? `${input}.y` : literalZero(elType))};`,\n ];\n if (dim >= 3)\n statements.push(\n `${vector}.z = ${z ?? b ?? (input ? `${input}.z` : literalZero(elType))};`,\n );\n if (dim >= 4)\n statements.push(\n `${vector}.w = ${w ?? a ?? (input ? `${input}.w` : literalZero(elType))};`,\n );\n return statements;\n };\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput & { vector: V }, { vector: V }>(\n this,\n \"vector\",\n );\n }\n}\n\ntype SwizzleOutput<\n A extends VectorTypes,\n Len extends number,\n> = A extends FloatTypes\n ? Len extends 1\n ? \"float\"\n : Len extends 2\n ? \"vec2\"\n : Len extends 3\n ? \"vec3\"\n : Len extends 4\n ? \"vec4\"\n : never\n : A extends IntTypes\n ? Len extends 1\n ? \"int\"\n : Len extends 2\n ? \"ivec2\"\n : Len extends 3\n ? \"ivec3\"\n : Len extends 4\n ? \"ivec4\"\n : never\n : A extends UintTypes\n ? Len extends 1\n ? \"uint\"\n : Len extends 2\n ? \"uvec2\"\n : Len extends 3\n ? \"uvec3\"\n : Len extends 4\n ? \"uvec4\"\n : never\n : never;\n\ntype SwizzleSelectLen = S extends Swizzle1Select\n ? 1\n : S extends Swizzle2Select\n ? 2\n : S extends Swizzle3Select\n ? 3\n : S extends Swizzle4Select\n ? 4\n : never;\n\nfunction swizzleOutputType(\n type: A,\n swizzle: S,\n): SwizzleOutput> {\n let result = null;\n if (isFloatType(type)) {\n result =\n swizzle.length === 1\n ? \"float\"\n : swizzle.length === 2\n ? \"vec2\"\n : swizzle.length === 3\n ? \"vec3\"\n : swizzle.length === 4\n ? \"vec4\"\n : null;\n } else if (isIntType(type)) {\n result =\n swizzle.length === 1\n ? \"int\"\n : swizzle.length === 2\n ? \"ivec2\"\n : swizzle.length === 3\n ? \"ivec3\"\n : swizzle.length === 4\n ? \"ivec4\"\n : null;\n } else if (isUintType(type)) {\n result =\n swizzle.length === 1\n ? \"uint\"\n : swizzle.length === 2\n ? \"uvec2\"\n : swizzle.length === 3\n ? \"uvec3\"\n : swizzle.length === 4\n ? \"uvec4\"\n : null;\n }\n if (result == null) {\n throw new Error(`Invalid swizzle: ${swizzle}`);\n }\n return result as SwizzleOutput>;\n}\n\ntype Swizzle1Select = `${\"x\" | \"y\" | \"z\" | \"w\"}|${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle2Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle3Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle4Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype SwizzleSelect =\n | Swizzle1Select\n | Swizzle2Select\n | Swizzle3Select\n | Swizzle4Select;\n\nexport class Swizzle<\n A extends VectorTypes,\n S extends SwizzleSelect,\n> extends UnaryOp>, \"swizzle\"> {\n constructor({ vector, select }: { vector: DynoVal; select: S }) {\n super({\n a: vector,\n outKey: \"swizzle\",\n outTypeFunc: (aType) => swizzleOutputType(aType, select),\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.swizzle} = ${inputs.a}.${select};`,\n ];\n }\n}\n","import { Dyno, DynoBlock, unindent } from \"./base\";\nimport { float, vec2, vec3, vec4 } from \"./convert\";\nimport { mul } from \"./math\";\nimport { type ValueTypes, isIntType, isUintType, sameSizeUvec } from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n dynoConst,\n valType,\n} from \"./value\";\nimport { combine } from \"./vecmat\";\n\nexport const remapIndex = (\n index: DynoVal<\"int\">,\n from: DynoVal<\"int\">,\n to: DynoVal<\"int\">,\n): DynoVal<\"int\"> => {\n return new DynoRemapIndex({ index, from, to });\n};\nexport const pcgMix = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new PcgMix({ value });\n};\nexport const pcgNext = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgNext({ state });\n};\nexport const pcgHash = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgHash({ state });\n};\nexport const hash = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new Hash({ value });\n};\nexport const hash2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => {\n return new Hash2({ value });\n};\nexport const hash3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => {\n return new Hash3({ value });\n};\nexport const hash4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => {\n return new Hash4({ value });\n};\nexport const hashFloat = (\n value: DynoVal,\n): DynoVal<\"float\"> => {\n return new HashFloat({ value });\n};\nexport const hashVec2 = (\n value: DynoVal,\n): DynoVal<\"vec2\"> => {\n return new HashVec2({ value });\n};\nexport const hashVec3 = (\n value: DynoVal,\n): DynoVal<\"vec3\"> => {\n return new HashVec3({ value });\n};\nexport const hashVec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => {\n return new HashVec4({ value });\n};\nexport const normalizedDepth = (\n z: DynoVal<\"float\">,\n zNear: DynoVal<\"float\">,\n zFar: DynoVal<\"float\">,\n): DynoVal<\"float\"> => {\n return new NormalizedDepth({ z, zNear, zFar }).outputs.depth;\n};\n\nexport const debugColorHue = (index: DynoVal<\"int\">): DynoVal<\"vec3\"> => {\n return new DebugColorHue({ index });\n};\n\nexport class DynoRemapIndex\n extends Dyno<{ from: \"int\"; to: \"int\"; index: \"int\" }, { index: \"int\" }>\n implements HasDynoOut<\"int\">\n{\n constructor({\n from,\n to,\n index,\n }: { from: DynoVal<\"int\">; to: DynoVal<\"int\">; index: DynoVal<\"int\"> }) {\n super({\n inTypes: { from: \"int\", to: \"int\", index: \"int\" },\n outTypes: { index: \"int\" },\n inputs: { from, to, index },\n statements: ({ inputs, outputs }) => {\n return [\n `${outputs.index} = ${inputs.index} - ${inputs.from} + ${inputs.to};`,\n ];\n },\n });\n }\n\n dynoOut(): DynoValue<\"int\"> {\n return new DynoOutput(this, \"index\");\n }\n}\n\nexport class PcgNext\n extends Dyno<{ state: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal }) {\n const type = valType(state);\n super({\n inTypes: { state: type },\n outTypes: { state: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_next(uint state) {\n return state * 747796405u + 2891336453u;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUint =\n type === \"uint\"\n ? `${inputs.state}`\n : type === \"int\"\n ? `uint(${inputs.state})`\n : `floatBitsToUint(${inputs.state})`;\n return [`${outputs.state} = pcg_next(${toUint});`];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class PcgHash\n extends Dyno<{ state: \"uint\" }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal<\"uint\"> }) {\n super({\n inTypes: { state: \"uint\" },\n outTypes: { hash: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_hash(uint state) {\n uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u;\n return (hash >> 22u) ^ hash;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => [\n `${outputs.hash} = pcg_hash(${inputs.state});`,\n ],\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class PcgMix\n extends Dyno<{ value: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n const type = valType(value);\n const tempType = sameSizeUvec(type);\n super({\n inTypes: { value: type },\n outTypes: { state: \"uint\" },\n inputs: { value },\n globals: () => [\n unindent(`\n uint pcg_mix(uint value) {\n return value;\n }\n uint pcg_mix(uvec2 value) {\n return value.x + 0x9e3779b9u * value.y;\n }\n uint pcg_mix(uvec3 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z;\n }\n uint pcg_mix(uvec4 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z + 0xc2b2ae35u * value.w;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUvec = isUintType(type)\n ? `${inputs.value}`\n : isIntType(type)\n ? `${tempType}(${inputs.value})`\n : `floatBitsToUint(${inputs.value})`;\n return [\n `${tempType} bits = ${toUvec};`,\n `${outputs.state} = pcg_mix(bits);`,\n ];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class Hash\n extends DynoBlock<{ value: T }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uint\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n return new PcgHash({ state }).outputs;\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash2\n extends DynoBlock<{ value: T }, { hash: \"uvec2\" }>\n implements HasDynoOut<\"uvec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec2\", x, y }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash3\n extends DynoBlock<{ value: T }, { hash: \"uvec3\" }>\n implements HasDynoOut<\"uvec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec3\", x, y, z }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash4\n extends DynoBlock<{ value: T }, { hash: \"uvec4\" }>\n implements HasDynoOut<\"uvec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const w = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec4\", x, y, z, w }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashFloat\n extends DynoBlock<{ value: T }, { hash: \"float\" }>\n implements HasDynoOut<\"float\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"float\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const word = hash(value);\n return { hash: mul(float(word), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec2\n extends DynoBlock<{ value: T }, { hash: \"vec2\" }>\n implements HasDynoOut<\"vec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash2(value);\n return { hash: mul(vec2(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec3\n extends DynoBlock<{ value: T }, { hash: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash3(value);\n return { hash: mul(vec3(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec4\n extends DynoBlock<{ value: T }, { hash: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash4(value);\n return { hash: mul(vec4(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class NormalizedDepth\n extends Dyno<\n { z: \"float\"; zNear: \"float\"; zFar: \"float\" },\n { depth: \"float\" }\n >\n implements HasDynoOut<\"float\">\n{\n constructor({\n z,\n zNear,\n zFar,\n }: { z: DynoVal<\"float\">; zNear: DynoVal<\"float\">; zFar: DynoVal<\"float\"> }) {\n super({\n inTypes: { z: \"float\", zNear: \"float\", zFar: \"float\" },\n outTypes: { depth: \"float\" },\n inputs: { z, zNear, zFar },\n statements: ({ inputs, outputs }) => [\n `float clamped = clamp(${inputs.z}, ${inputs.zNear}, ${inputs.zFar});`,\n `${outputs.depth} = (log2(clamped + 1.0) - log2(${inputs.zNear} + 1.0)) / (log2(${inputs.zFar} + 1.0) - log2(${inputs.zNear} + 1.0));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"depth\");\n }\n}\n\nexport class DebugColorHue\n extends Dyno<{ index: \"int\" }, { color: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ index }: { index: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { color: \"vec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => [\n `${outputs.color} = debugColorHue(uint(${inputs.index}));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"color\");\n }\n}\n","import { Dyno } from \"./base\";\nimport type { DynoVal } from \"./value\";\n\nexport const transformPos = (\n position: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n translate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformPosition({ position, scale, scales, rotate, translate })\n .outputs.position;\n};\nexport const transformDir = (\n dir: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformDir({ dir, scale, scales, rotate }).outputs.dir;\n};\nexport const transformQuat = (\n quaternion: DynoVal<\"vec4\">,\n { rotate }: { rotate?: DynoVal<\"vec4\"> },\n): DynoVal<\"vec4\"> => {\n return new TransformQuaternion({ quaternion, rotate }).outputs.quaternion;\n};\n\nexport class TransformPosition extends Dyno<\n {\n position: \"vec3\";\n scale: \"float\";\n scales: \"vec3\";\n rotate: \"vec4\";\n translate: \"vec3\";\n },\n { position: \"vec3\" }\n> {\n constructor({\n position,\n scale,\n scales,\n rotate,\n translate,\n }: {\n position?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n }) {\n super({\n inTypes: {\n position: \"vec3\",\n scale: \"float\",\n scales: \"vec3\",\n rotate: \"vec4\",\n translate: \"vec3\",\n },\n outTypes: { position: \"vec3\" },\n inputs: { position, scale, scales, rotate, translate },\n statements: ({ inputs, outputs }) => {\n const { position } = outputs;\n if (!position) {\n return [];\n }\n const { scale, scales, rotate, translate } = inputs;\n return [\n `${position} = ${inputs.position ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${position} *= ${scale};`,\n !scales ? null : `${position} *= ${scales};`,\n !rotate ? null : `${position} = quatVec(${rotate}, ${position});`,\n !translate ? null : `${position} += ${translate};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformDir extends Dyno<\n { dir: \"vec3\"; scale: \"float\"; scales: \"vec3\"; rotate: \"vec4\" },\n { dir: \"vec3\" }\n> {\n constructor({\n dir,\n scale,\n scales,\n rotate,\n }: {\n dir?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { dir: \"vec3\", scale: \"float\", scales: \"vec3\", rotate: \"vec4\" },\n outTypes: { dir: \"vec3\" },\n inputs: { dir, scale, scales, rotate },\n statements: ({ inputs, outputs }) => {\n const { dir } = outputs;\n if (!dir) {\n return [];\n }\n const { scale, scales, rotate } = inputs;\n return [\n `${dir} = ${inputs.dir ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${dir} *= ${scale};`,\n !scales ? null : `${dir} *= ${scales};`,\n !rotate ? null : `${dir} = quatVec(${rotate}, ${dir});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformQuaternion extends Dyno<\n { quaternion: \"vec4\"; rotate: \"vec4\" },\n { quaternion: \"vec4\" }\n> {\n constructor({\n quaternion,\n rotate,\n }: { quaternion?: DynoVal<\"vec4\">; rotate?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { quaternion: \"vec4\", rotate: \"vec4\" },\n outTypes: { quaternion: \"vec4\" },\n inputs: { quaternion, rotate },\n statements: ({ inputs, outputs }) => {\n const { quaternion } = outputs;\n if (!quaternion) {\n return [];\n }\n return [\n `${quaternion} = ${inputs.quaternion ?? \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rotate\n ? null\n : `${quaternion} = quatQuat(${inputs.rotate}, ${quaternion});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n","// TODO:\n// if, switch, for, comment,\n// arrayIndex, arrayLength,\n\nexport const dynoIf = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoSwitch = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoFor = () => {\n throw new Error(\"Not implemented\");\n};\nexport const comment = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayIndex = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayLength = () => {\n throw new Error(\"Not implemented\");\n};\n","import { Dyno } from \"./base\";\nimport type {\n AllSamplerTypes,\n IsamplerTypes,\n NormalSamplerTypes,\n Sampler2DArrayTypes,\n Sampler2DTypes,\n Sampler3DTypes,\n SamplerCubeTypes,\n SamplerShadowTypes,\n SamplerTypes,\n UsamplerTypes,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nexport const textureSize = (\n texture: DynoVal,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TextureSize({ texture, lod });\nexport const texture = (\n texture: DynoVal,\n coord: DynoVal>,\n bias?: DynoVal<\"float\">,\n): DynoVal> => new Texture({ texture, coord, bias });\nexport const texelFetch = (\n texture: DynoVal,\n coord: DynoVal>,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TexelFetch({ texture, coord, lod });\n\nexport class TextureSize\n extends Dyno<{ texture: T; lod: \"int\" }, { size: TextureSizeType }>\n implements HasDynoOut>\n{\n constructor({ texture, lod }: { texture: DynoVal; lod?: DynoVal<\"int\"> }) {\n const textureType = valType(texture);\n super({\n inTypes: { texture: textureType, lod: \"int\" },\n outTypes: { size: textureSizeType(textureType) },\n inputs: { texture, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.size} = textureSize(${inputs.texture}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"size\");\n }\n}\n\nexport class Texture\n extends Dyno<\n { texture: T; coord: TextureCoordType; bias: \"float\" },\n { sample: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n bias,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n bias?: DynoVal<\"float\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureCoordType(textureType),\n bias: \"float\",\n },\n outTypes: { sample: textureReturnType(textureType) },\n inputs: { texture, coord, bias },\n statements: ({ inputs, outputs }) => [\n `${outputs.sample} = texture(${inputs.texture}, ${inputs.coord}${inputs.bias ? `, ${inputs.bias}` : \"\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"sample\");\n }\n}\n\nexport class TexelFetch\n extends Dyno<\n { texture: T; coord: TextureSizeType; lod: \"int\" },\n { texel: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n lod,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n lod?: DynoVal<\"int\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureSizeType(textureType),\n lod: \"int\",\n },\n outTypes: { texel: textureReturnType(textureType) },\n inputs: { texture, coord, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.texel} = texelFetch(${inputs.texture}, ${inputs.coord}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"texel\");\n }\n}\n\ntype TextureSizeType = T extends\n | Sampler2DTypes\n | SamplerCubeTypes\n ? \"ivec2\"\n : T extends Sampler3DTypes | Sampler2DArrayTypes\n ? \"ivec3\"\n : never;\n\nfunction textureSizeType(\n textureType: T,\n): TextureSizeType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DShadow\":\n case \"samplerCubeShadow\":\n return \"ivec2\" as TextureSizeType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DArrayShadow\":\n return \"ivec3\" as TextureSizeType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureCoordType = T extends Sampler2DTypes\n ? \"vec2\"\n : T extends\n | Sampler3DTypes\n | Sampler2DArrayTypes\n | SamplerCubeTypes\n | Sampler2DArrayTypes\n ? \"vec3\"\n : T extends \"samperCubeShadow\" | \"sampler2DArrayShadow\"\n ? \"vec4\"\n : never;\n\nfunction textureCoordType(\n textureType: T,\n): TextureCoordType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n return \"vec2\" as TextureCoordType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DShadow\":\n return \"vec3\" as TextureCoordType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"vec4\" as TextureCoordType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureReturnType = T extends SamplerTypes\n ? \"vec4\"\n : T extends UsamplerTypes\n ? \"uvec4\"\n : T extends IsamplerTypes\n ? \"ivec4\"\n : T extends SamplerShadowTypes\n ? \"float\"\n : never;\n\nfunction textureReturnType(\n textureType: T,\n): TextureReturnType {\n switch (textureType) {\n case \"sampler2D\":\n case \"sampler2DArray\":\n case \"sampler3D\":\n case \"samplerCube\":\n case \"sampler2DShadow\":\n return \"vec4\" as TextureReturnType;\n case \"usampler2D\":\n case \"usampler2DArray\":\n case \"usampler3D\":\n case \"usamplerCube\":\n return \"uvec4\" as TextureReturnType;\n case \"isampler2D\":\n case \"isampler2DArray\":\n case \"isampler3D\":\n case \"isamplerCube\":\n return \"ivec4\" as TextureReturnType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"float\" as TextureReturnType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n","import { BinaryOp, UnaryOp } from \"./base\";\nimport type { FloatTypes } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const radians = (\n degrees: DynoVal,\n): DynoVal => new Radians({ degrees });\nexport const degrees = (\n radians: DynoVal,\n): DynoVal => new Degrees({ radians });\n\nexport const sin = (radians: DynoVal): DynoVal =>\n new Sin({ radians });\nexport const cos = (radians: DynoVal): DynoVal =>\n new Cos({ radians });\nexport const tan = (radians: DynoVal): DynoVal =>\n new Tan({ radians });\n\nexport const asin = (sin: DynoVal): DynoVal =>\n new Asin({ sin });\nexport const acos = (cos: DynoVal): DynoVal =>\n new Acos({ cos });\nexport const atan = (tan: DynoVal): DynoVal =>\n new Atan({ tan });\nexport const atan2 = (\n y: DynoVal,\n x: DynoVal,\n): DynoVal => new Atan2({ y, x });\n\nexport const sinh = (x: DynoVal): DynoVal =>\n new Sinh({ x });\nexport const cosh = (x: DynoVal): DynoVal =>\n new Cosh({ x });\nexport const tanh = (x: DynoVal): DynoVal =>\n new Tanh({ x });\n\nexport const asinh = (x: DynoVal): DynoVal =>\n new Asinh({ x });\nexport const acosh = (x: DynoVal): DynoVal =>\n new Acosh({ x });\nexport const atanh = (x: DynoVal): DynoVal =>\n new Atanh({ x });\n\nexport class Radians extends UnaryOp {\n constructor({ degrees }: { degrees: DynoVal }) {\n super({ a: degrees, outTypeFunc: (aType) => aType, outKey: \"radians\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.radians} = radians(${inputs.a});`,\n ];\n }\n}\n\nexport class Degrees extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"degrees\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.degrees} = degrees(${inputs.a});`,\n ];\n }\n}\n\nexport class Sin extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"sin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sin} = sin(${inputs.a});`,\n ];\n }\n}\n\nexport class Cos extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"cos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cos} = cos(${inputs.a});`,\n ];\n }\n}\n\nexport class Tan extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"tan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tan} = tan(${inputs.a});`,\n ];\n }\n}\n\nexport class Asin extends UnaryOp {\n constructor({ sin }: { sin: DynoVal }) {\n super({ a: sin, outTypeFunc: (aType) => aType, outKey: \"asin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asin} = asin(${inputs.a});`,\n ];\n }\n}\n\nexport class Acos extends UnaryOp {\n constructor({ cos }: { cos: DynoVal }) {\n super({ a: cos, outTypeFunc: (aType) => aType, outKey: \"acos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acos} = acos(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan extends UnaryOp {\n constructor({ tan }: { tan: DynoVal }) {\n super({ a: tan, outTypeFunc: (aType) => aType, outKey: \"atan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan} = atan(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan2 extends BinaryOp {\n constructor({ y, x }: { y: DynoVal; x: DynoVal }) {\n super({\n a: y,\n b: x,\n outTypeFunc: (aType, bType) => aType,\n outKey: \"atan2\",\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan2} = atan2(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Sinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"sinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sinh} = sinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Cosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"cosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cosh} = cosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Tanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"tanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tanh} = tanh(${inputs.a});`,\n ];\n }\n}\n\nexport class Asinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"asinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asinh} = asinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Acosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"acosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acosh} = acosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Atanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"atanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atanh} = atanh(${inputs.a});`,\n ];\n }\n}\n","import * as THREE from \"three\";\nimport type { RgbaArray } from \"./RgbaArray\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { SPLAT_TEX_WIDTH, type SplatFileType } from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n type Gsplat,\n TExtSplats,\n add,\n combineGsplat,\n defineExtSplats,\n normalize,\n readExtSplat,\n splatTexCoord,\n splitGsplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { decodeExtSplat, encodeExtSplat, getTextureSize } from \"./utils\";\n\nexport type ExtSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided pair of uint32 arrays, where blocks of 4 uint32s in each,\n // encode an \"extended packed\" Gsplat. (default: undefined)\n extArrays?: [Uint32Array, Uint32Array];\n // Override number of splats in packed arrays to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: ExtSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the ExtSplats\n lodSplats?: ExtSplats;\n};\n\nexport class ExtSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record = {};\n maxSh = 3;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: ExtSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n textures: [THREE.DataArrayTexture, THREE.DataArrayTexture];\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoNumSh: DynoInt<\"numSh\">;\n\n constructor(options: ExtSplatsOptions = {}) {\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n this.textures = [ExtSplats.emptyTexture, ExtSplats.emptyTexture];\n\n this.extra = {};\n this.dyno = new DynoExtSplats({ extSplats: this });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: ExtSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: ExtSplatsOptions) {\n this.extra = options.extra ?? {};\n this.lodSplats = options.lodSplats;\n\n if (options.extArrays) {\n this.extArrays = options.extArrays;\n this.maxSplats = Math.floor(\n Math.min(this.extArrays[0].length / 4, this.extArrays[1].length / 4),\n );\n this.numSplats = options.numSplats ?? this.maxSplats;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n this.updateTextures();\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n }\n }\n\n async asyncInitialize(options: ExtSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n extSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n this.textures[0].dispose();\n this.textures[0].source.data = null;\n this.textures[0] = ExtSplats.emptyTexture;\n }\n if (this.textures[1] !== ExtSplats.emptyTexture) {\n this.textures[1].dispose();\n this.textures[1].source.data = null;\n this.textures[1] = ExtSplats.emptyTexture;\n }\n\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"ExtSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1\n ? 0\n : !this.extra.sh2\n ? 1\n : !this.extra.sh3a || !this.extra.sh3b\n ? 2\n : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readExtSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB } =\n this.ensureShTextures();\n let { rgb } = evaluateExtSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 4,\n );\n if (sh1.length < maxSplats * 4) {\n const newSh1 = new Uint32Array(maxSplats * 4);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n const texture = newUint32ArrayTexture(\n sh1,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = newUint32ArrayTexture(\n sh2,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3a || !this.extra.sh3b) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3TextureA = this.extra.sh3TextureA as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureA) {\n let sh3a = this.extra.sh3a as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3a.length / 4,\n );\n if (sh3a.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3a);\n this.extra.sh3a = newSh3;\n sh3a = newSh3;\n }\n\n const texture = newUint32ArrayTexture(\n sh3a,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureA = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3TextureA = sh3TextureA;\n }\n\n let sh3TextureB = this.extra.sh3TextureB as\n | DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureB) {\n let sh3b = this.extra.sh3b as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3b.length / 4,\n );\n if (sh3b.length < maxSplats * 4) {\n const newSh3b = new Uint32Array(maxSplats * 4);\n newSh3b.set(sh3b);\n this.extra.sh3b = newSh3b;\n sh3b = newSh3b;\n }\n\n const texture = newUint32ArrayTexture(\n sh3b,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureB = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3b\",\n });\n this.extra.sh3TextureB = sh3TextureB;\n }\n\n return { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB };\n }\n\n // Ensures that this.extArrays can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): [Uint32Array, Uint32Array] {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.extArrays[0] ? 0 : this.extArrays[0].length / 4;\n\n if (!this.extArrays[0] || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray0 = new Uint32Array(this.maxSplats * 4);\n const newArray1 = new Uint32Array(this.maxSplats * 4);\n if (this.extArrays[0]) {\n // Copy over existing data\n newArray0.set(this.extArrays[0]);\n newArray1.set(this.extArrays[1]);\n }\n this.extArrays[0] = newArray0;\n this.extArrays[1] = newArray1;\n }\n return this.extArrays;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return decodeExtSplat(this.extArrays, index);\n }\n\n // Set all ExtSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(index + 1);\n encodeExtSplat(\n extArrays,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(this.numSplats + 1);\n encodeExtSplat(\n extArrays,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = decodeExtSplat(this.extArrays, i);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Check if source texture needs to be created/updated\n private updateTextures() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n const { width, height, depth } = this.textures[0].image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.textures[0].dispose();\n this.textures[0] = ExtSplats.emptyTexture;\n this.textures[1].dispose();\n this.textures[1] = ExtSplats.emptyTexture;\n }\n }\n if (this.textures[0] === ExtSplats.emptyTexture) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.textures[0] = newUint32ArrayTexture(\n this.extArrays[0],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n this.textures[1] = newUint32ArrayTexture(\n this.extArrays[1],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n } else if (\n this.extArrays[0].buffer !== this.textures[0].image.data.buffer\n ) {\n this.textures[0].image.data = new Uint8Array(this.extArrays[0].buffer);\n this.textures[1].image.data = new Uint8Array(this.extArrays[1].buffer);\n // Indicate to Three.js that the source textures needs to be uploaded to the GPU\n this.textures[0].needsUpdate = true;\n this.textures[1].needsUpdate = true;\n }\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new ExtSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static emptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTexture = newUint32ArrayTexture(\n null,\n 1,\n 1,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const extArrays = [this.extArrays[0].slice(), this.extArrays[1].slice()];\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodExtSplats\" : \"tinyLodExtSplats\",\n {\n numSplats: this.numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n },\n )) as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n };\n });\n\n const lodSplats = new ExtSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\nexport const dynoExtSplats = (extSplats?: ExtSplats) =>\n new DynoExtSplats({ extSplats });\n\nexport class DynoExtSplats extends DynoUniform<\n typeof TExtSplats,\n \"extSplats\",\n {\n textureArray1: THREE.DataArrayTexture;\n textureArray2: THREE.DataArrayTexture;\n numSplats: number;\n }\n> {\n extSplats?: ExtSplats;\n\n constructor({ extSplats }: { extSplats?: ExtSplats } = {}) {\n super({\n key: \"extSplats\",\n type: TExtSplats,\n globals: () => [defineExtSplats],\n value: {\n textureArray1: ExtSplats.emptyTexture,\n textureArray2: ExtSplats.emptyTexture,\n numSplats: 0,\n },\n update: (value) => {\n value.textureArray1 =\n this.extSplats?.textures[0] ?? ExtSplats.emptyTexture;\n value.textureArray2 =\n this.extSplats?.textures[1] ?? ExtSplats.emptyTexture;\n value.numSplats = this.extSplats?.numSplats ?? 0;\n return value;\n },\n });\n this.extSplats = extSplats;\n }\n}\n\nexport const defineEvaluateExtSH1 = unindent(`\n vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packedData.x);\n vec3 sh1_1 = decodeExtRgb(packedData.y);\n vec3 sh1_2 = decodeExtRgb(packedData.z);\n\n return sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n }\n`);\n\nexport const defineEvaluateExtSH12 = unindent(`\n vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packed1.x);\n vec3 sh1_1 = decodeExtRgb(packed1.y);\n vec3 sh1_2 = decodeExtRgb(packed1.z);\n\n vec3 sh2_0 = decodeExtRgb(packed1.w);\n vec3 sh2_1 = decodeExtRgb(packed2.x);\n vec3 sh2_2 = decodeExtRgb(packed2.y);\n vec3 sh2_3 = decodeExtRgb(packed2.z);\n vec3 sh2_4 = decodeExtRgb(packed2.w);\n\n vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n\n vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n\n return sh1Rgb + sh2Rgb;\n }\n`);\n\nexport const defineEvaluateExtSH3 = unindent(`\n vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) {\n vec3 sh3_0 = decodeExtRgb(packedA.x);\n vec3 sh3_1 = decodeExtRgb(packedA.y);\n vec3 sh3_2 = decodeExtRgb(packedA.z);\n vec3 sh3_3 = decodeExtRgb(packedA.w);\n vec3 sh3_4 = decodeExtRgb(packedB.x);\n vec3 sh3_5 = decodeExtRgb(packedB.y);\n vec3 sh3_6 = decodeExtRgb(packedB.z);\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n }\n`);\n\nexport function evaluateExtSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3TextureA: \"usampler2DArray\",\n sh3TextureB: \"usampler2DArray\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n },\n globals: () => [\n defineEvaluateExtSH1,\n defineEvaluateExtSH12,\n defineEvaluateExtSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n if (!inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n } else {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} == 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n } else if (${inputs.numSh} >= 2) {\n rgb = evaluateExtSH12(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n `),\n );\n\n if (inputs.sh3TextureA && inputs.sh3TextureB) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n rgb += evaluateExtSH3(texelFetch(${inputs.sh3TextureA}, ${inputs.coord}, 0), texelFetch(${inputs.sh3TextureB}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n }\n\n lines.push(\"}\");\n }\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n\nfunction newUint32ArrayTexture(\n data: Uint32Array | null,\n width: number,\n height: number,\n depth: number,\n format: THREE.AnyPixelFormat,\n type: THREE.TextureDataType,\n internalFormat: THREE.PixelFormatGPU,\n): THREE.DataArrayTexture {\n const texture = new THREE.DataArrayTexture(\n data as Uint32Array,\n width,\n height,\n depth,\n );\n texture.format = format;\n texture.type = type;\n texture.internalFormat = internalFormat;\n texture.needsUpdate = true;\n return texture;\n}\n","/* @ts-self-types=\"./spark_rs.d.ts\" */\n\n/**\n * @param {Uint8Array} bytes\n * @returns {any}\n */\nexport function decode_rad_header(bytes) {\n const ret = wasm.decode_rad_header(bytes);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer() {\n const ret = wasm.get_raycast_buffer();\n return ret;\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer2() {\n const ret = wasm.get_raycast_buffer2();\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @returns {Float32Array}\n */\nexport function raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count) {\n const ret = wasm.raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} num_splats\n * @param {Uint32Array} packed_splats\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @returns {boolean}\n */\nexport function simd_enabled() {\n const ret = wasm.simd_enabled();\n return ret !== 0;\n}\n\nexport function wasm_start() {\n wasm.wasm_start();\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_fd4646b401926788: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_26bffbe236bf73f9: function(arg0) {\n const ret = new Float32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n },\n __wbg_set_8ee2d34facb8466e: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) {\n arg0.set(getArrayF32FromWasm0(arg1, arg2));\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(F32)) -> NamedExternref(\"Float32Array\")`.\n const ret = getArrayF32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000003: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U32)) -> NamedExternref(\"Uint32Array\")`.\n const ret = getArrayU32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000004: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000005: function(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./spark_rs_bg.js\": import0,\n };\n}\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction getArrayF32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\nfunction getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (module_or_path === undefined) {\n module_or_path = new URL('spark_rs_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout uvec4 target;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n target = uvec4(0u, 0u, 0u, 0u);\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out vec4 target3;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial target to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize depthTarget to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out uvec4 target2;\nlayout(location = 2) out vec4 target3;\n// layout(location = 0) out vec4 target3;\n// layout(location = 1) out uvec4 target;\n// layout(location = 2) out uvec4 target2;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial targets to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n target2 = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize target3 to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout vec4 target;\n\n{{ GLOBALS }}\n\nvoid computeReadback(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n if ((index >= 0) && (index < targetCount)) {\n computeReadback(index);\n } else {\n target = vec4(0.0, 0.0, 0.0, 0.0);\n }\n}\n","\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool stochastic;\nuniform bool disableFalloff;\nuniform float falloff;\n\nuniform bool splatTexEnable;\nuniform sampler3D splatTexture;\nuniform mat2 splatTexMul;\nuniform vec2 splatTexAdd;\nuniform float splatTexNear;\nuniform float splatTexFar;\nuniform float splatTexMid;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z = dot(vSplatUv, vSplatUv);\n if (!splatTexEnable) {\n if (z > (maxStdDev * maxStdDev)) {\n discard;\n }\n } else {\n vec2 uv = splatTexMul * vSplatUv + splatTexAdd;\n float ndcZ = vNdc.z;\n float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near));\n float clampedFar = max(splatTexFar, splatTexNear);\n float clampedDepth = clamp(depth, splatTexNear, clampedFar);\n float logDepth = log2(clampedDepth + 1.0);\n float logNear = log2(splatTexNear + 1.0);\n float logFar = log2(clampedFar + 1.0);\n\n float texZ;\n if (splatTexMid > 0.0) {\n float clampedMid = clamp(splatTexMid, splatTexNear, clampedFar);\n float logMid = log2(clampedMid + 1.0);\n texZ = (clampedDepth <= clampedMid) ?\n (0.5 * ((logDepth - logNear) / (logMid - logNear))) :\n (0.5 * ((logDepth - logMid) / (logFar - logMid)) + 0.5);\n } else {\n texZ = (logDepth - logNear) / (logFar - logNear);\n }\n\n vec4 modulate = texture(splatTexture, vec3(uv, 1.0 - texZ));\n rgba *= modulate;\n }\n\n rgba.a *= mix(1.0, exp(-0.5 * z), falloff);\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n if (stochastic) {\n const bool STEADY = false;\n uint uTime = STEADY ? 0u : floatBitsToUint(time);\n uvec2 coord = uvec2(gl_FragCoord.xy);\n uint state = uTime + 0x9e3779b9u * coord.x + 0x85ebca6bu * coord.y + 0xc2b2ae35u * uint(vSplatIndex);\n state = state * 747796405u + 2891336453u;\n uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u;\n hash = (hash >> 22u) ^ hash;\n float rand = float(hash) / 4294967296.0;\n if (rand < rgba.a) {\n fragColor = vec4(rgba.rgb, 1.0);\n } else {\n discard;\n }\n } else {\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n }\n}\n","\nprecision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nattribute uint splatIndex;\n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\n\nuniform vec2 renderSize;\nuniform uint numSplats;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool stochastic;\nuniform bool enable2DGS;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2DArray packedSplats;\nuniform vec4 rgbMinMaxLnScaleMinMax;\n\nvoid main() {\n // Default to outside the frustum so it's discarded if we return early\n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n if (uint(gl_InstanceID) >= numSplats) {\n return;\n }\n\n ivec3 texCoord;\n if (stochastic) {\n texCoord = ivec3(\n uint(gl_InstanceID) & SPLAT_TEX_WIDTH_MASK,\n (uint(gl_InstanceID) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK,\n (uint(gl_InstanceID) >> SPLAT_TEX_LAYER_BITS)\n );\n } else {\n if (splatIndex == 0xffffffffu) {\n // Special value reserved for \"no splat\"\n return;\n }\n texCoord = ivec3(\n splatIndex & SPLAT_TEX_WIDTH_MASK,\n (splatIndex >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK,\n splatIndex >> SPLAT_TEX_LAYER_BITS\n );\n }\n uvec4 packedData = texelFetch(packedSplats, texCoord, 0);\n\n vec3 center, scales;\n vec4 quaternion, rgba;\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, rgbMinMaxLnScaleMinMax);\n\n if (rgba.a < minAlpha) {\n return;\n }\n bvec3 zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n\n // Compute the view space center of the splat\n vec3 viewCenter = quatVec(renderToViewQuat, center) + renderToViewPos;\n\n // Discard splats behind the camera\n if (viewCenter.z >= 0.0) {\n return;\n }\n\n // Compute the clip space center of the splat\n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n // Discard splats outside near/far planes\n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n // Discard splats more than clipXY times outside the XY frustum\n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n // Record the splat index for entropy\n vSplatIndex = splatIndex;\n\n // Compute view space quaternion of splat\n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vRgba = rgba;\n vSplatUv = position.xy * maxStdDev;\n\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n return;\n }\n\n // Compute NDC center of the splat\n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n\n // Compute the 3D covariance matrix of the splat\n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n mat3 cov3D = RS * transpose(RS);\n\n // Compute the Jacobian of the splat's projection at its center\n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if(isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n // Compute the 2D covariance by projecting the 3D covariance\n // and picking out the XY plane components.\n // Keeping below because we may need it in the future\n // for skinning deformations.\n // mat3 W = transpose(mat3(viewMatrix));\n // mat3 T = W * J;\n // mat3 cov2D = transpose(T) * cov3D * T;\n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n // Optionally pre-blur the splat to match non-antialias optimized splats\n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n // Do convolution with a 0.5-pixel Gaussian for anti-aliasing: sqrt(0.3) ~= 0.5\n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n // Compute anti-aliasing intensity scaling factor\n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n\n // Compute the eigenvalue and eigenvectors of the 2D covariance matrix\n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = normalize(vec2((abs(b) < 0.001) ? 1.0 : b, eigen1 - a));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, maxStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, maxStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n // Compute the NDC coordinates for the ellipsoid's diagonal axes.\n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vRgba = rgba;\n vSplatUv = position.xy * maxStdDev;\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n}\n","const float LN_SCALE_MIN = -12.0;\nconst float LN_SCALE_MAX = 9.0;\n\nconst uint SPLAT_TEX_WIDTH_BITS = 11u;\nconst uint SPLAT_TEX_HEIGHT_BITS = 11u;\nconst uint SPLAT_TEX_DEPTH_BITS = 11u;\nconst uint SPLAT_TEX_LAYER_BITS = SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nconst uint SPLAT_TEX_WIDTH = 1u << SPLAT_TEX_WIDTH_BITS;\nconst uint SPLAT_TEX_HEIGHT = 1u << SPLAT_TEX_HEIGHT_BITS;\nconst uint SPLAT_TEX_DEPTH = 1u << SPLAT_TEX_DEPTH_BITS;\n\nconst uint SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1u;\nconst uint SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1u;\nconst uint SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1u;\n\nconst uint F16_INF = 0x7c00u;\nconst float PI = 3.1415926535897932384626433832795;\n\nconst float INFINITY = 1.0 / 0.0;\nconst float NEG_INFINITY = -INFINITY;\n\nfloat sqr(float x) {\n return x * x;\n}\n\nfloat pow4(float x) {\n float x2 = x * x;\n return x2 * x2;\n}\n\nfloat pow8(float x) {\n float x4 = pow4(x);\n return x4 * x4;\n}\n\nvec3 srgbToLinear(vec3 rgb) {\n return pow(rgb, vec3(2.2));\n}\n\nvec3 linearToSrgb(vec3 rgb) {\n return pow(rgb, vec3(1.0 / 2.2));\n}\n\n// Encode a quaternion (vec4) into a 24‐bit uint with folded octahedral mapping.\nuint encodeQuatOctXy88R8(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float theta = 2.0 * acos(q.w);\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 8 bits (0 to 255)\n uint quantU = uint(clamp(round(u_f * 255.0), 0.0, 255.0));\n uint quantV = uint(clamp(round(v_f * 255.0), 0.0, 255.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 8 bits (0 to 255)\n uint angleInt = uint(clamp(round((theta / 3.14159265359) * 255.0), 0.0, 255.0));\n \n // Pack bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16u) | (quantV << 8u) | quantU;\n}\n\n// Decode a 24‐bit encoded uint into a quaternion (vec4) using the folded octahedral inverse.\nvec4 decodeQuatOctXy88R8(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0xFFu); // bits 0–7\n uint quantV = (encoded >> 8u) & uint(0xFFu); // bits 8–15\n uint angleInt = encoded >> 16u; // bits 16–23\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 255.0;\n float v_f = float(quantV) / 255.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 255.0) * 3.14159265359;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\nuint encodeQuatOctXy1010R12(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float halfTheta = acos(q.w);\n float theta = 2.0 * halfTheta;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 10 bits (0 to 1023)\n uint quantU = uint(clamp(round(u_f * 1023.0), 0.0, 1023.0));\n uint quantV = uint(clamp(round(v_f * 1023.0), 0.0, 1023.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 12 bits (0 to 4095)\n uint angleInt = uint(clamp(round((theta / PI) * 4095.0), 0.0, 4095.0));\n \n // Pack bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20u) | (quantV << 10u) | quantU;\n}\n\nvec4 decodeQuatOctXy1010R12(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0x3FFu); // bits 0–9\n uint quantV = (encoded >> 10u) & uint(0x3FFu); // bits 10–19\n uint angleInt = encoded >> 20u; // bits 20–31\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 1023.0;\n float v_f = float(quantV) / 1023.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 4095.0) * PI;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplatEncoding(\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n uint uQuat = encodeQuatOctXy88R8(quaternion);\n // uint uQuat = encodeQuatXyz888(quaternion);\n // uint uQuat = encodeQuatEulerXyz888(quaternion);\n uvec3 uQuat3 = uvec3(uQuat & 0xffu, (uQuat >> 8u) & 0xffu, (uQuat >> 16u) & 0xffu);\n\n // Encode scales in three uint8s, where 0=>0.0 and 1..=255 stores log scale\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n uvec3 uScales = uvec3(\n (scales.x == 0.0) ? 0u : uint(round(clamp((log(scales.x) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.y == 0.0) ? 0u : uint(round(clamp((log(scales.y) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.z == 0.0) ? 0u : uint(round(clamp((log(scales.z) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u\n );\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) | (uQuat3.x << 16u) | (uQuat3.y << 24u);\n uint word3 = uScales.x | (uScales.y << 8u) | (uScales.z << 16u) | (uQuat3.z << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplat(vec3 center, vec3 scales, vec4 quaternion, vec4 rgba) {\n return packSplatEncoding(center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nvoid unpackSplatEncoding(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec4(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu)\n ).xyz;\n\n uvec3 uScales = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n scales = vec3(\n (uScales.x == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.x - 1u) * lnScaleScale),\n (uScales.y == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.y - 1u) * lnScaleScale),\n (uScales.z == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.z - 1u) * lnScaleScale)\n );\n\n\n uint uQuat = ((word2 >> 16u) & 0xFFFFu) | ((word3 >> 8u) & 0xFF0000u);\n quaternion = decodeQuatOctXy88R8(uQuat);\n // quaternion = decodeQuatXyz888(uQuat);\n // quaternion = decodeQuatEulerXyz888(uQuat);\n}\n\n// Unpack a Gsplat from a uvec4\nvoid unpackSplat(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nuvec4 packSplatCovEncoding(\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 255.0 / (2.0 * (lnScaleMax - lnScaleMin));\n uvec3 uXxyyzz = uvec3(round(clamp((log(xxyyzz) - 2.0 * lnScaleMin) * diagScale, 0.0, 255.0)));\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n ivec3 iXyxzyzCor = ivec3(round(xyxzyzCor * 127.0));\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) |\n ((uint(iXyxzyzCor.y) & 0xffu) << 16u) |\n ((uint(iXyxzyzCor.z) & 0xffu) << 24u);\n uint word3 =\n uXxyyzz.x | (uXxyyzz.y << 8u) | (uXxyyzz.z << 16u) |\n ((uint(iXyxzyzCor.x) & 0xffu) << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\nvoid unpackSplatCovEncoding(uvec4 packedData, out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec3(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu).x\n );\n\n uvec3 uXxyyzz = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n ivec3 iXyxzyzCor = ivec3(int(word3) >> 24, int(word2 << 8u) >> 24, int(word2) >> 24);\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 2.0 * (lnScaleMax - lnScaleMin) / 255.0;\n xxyyzz = exp(2.0 * lnScaleMin + vec3(uXxyyzz) * diagScale);\n\n vec3 xyxzyzCor = vec3(iXyxzyzCor) / 127.0;\n xyxzyz = xyxzyzCor * vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExtCov(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, rgba.b));\n packedData2.x = packHalf2x16(rgba.rg);\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n xyxzyzCor = sign(xyxzyzCor) * clamp(log(abs(xyxzyzCor)), -100.0, -0.0000001);\n xxyyzz = log(xxyyzz);\n\n packedData2.y = packHalf2x16(vec2(xxyyzz.x, xxyyzz.y));\n packedData2.z = packHalf2x16(vec2(xxyyzz.z, xyxzyzCor.x));\n packedData2.w = packHalf2x16(vec2(xyxzyzCor.y, xyxzyzCor.z));\n}\n\nvoid unpackSplatExtCov(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n\n vec2 ab = unpackHalf2x16(packedData.w);\n vec2 rg = unpackHalf2x16(packedData2.x);\n rgba = vec4(rg, ab.y, ab.x);\n\n vec2 xxyy = unpackHalf2x16(packedData2.y);\n vec2 zzxy = unpackHalf2x16(packedData2.z);\n vec2 xzyz = unpackHalf2x16(packedData2.w);\n xxyyzz = exp(vec3(xxyy.x, xxyy.y, zzxy.x));\n xyxzyz = vec3(zzxy.y, xzyz.x, xzyz.y);\n xyxzyz = -sign(xyxzyz) * exp(-abs(xyxzyz));\n xyxzyz *= vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExt(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, 0.0));\n\n packedData2.x = packHalf2x16(rgba.rg);\n packedData2.y = packHalf2x16(vec2(rgba.b, log(scales.x)));\n packedData2.z = packHalf2x16(log(scales.yz));\n packedData2.w = encodeQuatOctXy1010R12(quaternion);\n}\n\nvec4 unpackSplatExtCenterAlpha(uvec4 packedData) {\n return vec4(\n uintBitsToFloat(packedData.x),\n uintBitsToFloat(packedData.y),\n uintBitsToFloat(packedData.z),\n unpackHalf2x16(packedData.w).x\n );\n}\n\nfloat unpackSplatExtAlpha(uvec4 packedData) {\n return unpackHalf2x16(packedData.w).x;\n}\n\nvoid unpackSplatExt(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n rgba.a = unpackHalf2x16(packedData.w).x;\n\n rgba.rg = unpackHalf2x16(packedData2.x);\n vec2 split = unpackHalf2x16(packedData2.y);\n rgba.b = split.x;\n scales.x = exp(split.y);\n scales.yz = exp(unpackHalf2x16(packedData2.z));\n quaternion = decodeQuatOctXy1010R12(packedData2.w);\n}\n\nuint encodeExtRgb(vec3 rgb) {\n vec3 absRgb = abs(rgb);\n float maxAbs = max(absRgb.r, max(absRgb.g, absRgb.b));\n\n int base = clamp(int(floor(log2(maxAbs))) + 15, 0, 31);\n float divisor = exp2(float(base - 15)) / 255.0;\n\n uvec3 uRgb = uvec3(round(clamp(absRgb / divisor, 0.0, 255.0)));\n uint expSigns = (uint(base) << 3u) | ((rgb.r < 0.0 ? 0x1u : 0u) | (rgb.g < 0.0 ? 0x2u : 0u) | (rgb.b < 0.0 ? 0x4u : 0u));\n return uRgb.r | (uRgb.g << 8u) | (uRgb.b << 16u) | (expSigns << 24u);\n}\n\nvec3 decodeExtRgb(uint encoded) {\n uint biasedBase = (encoded >> 27u) & 0x1fu;\n float divisor = exp2(float(int(biasedBase) - 15)) / 255.0;\n\n vec3 rgb = vec3(uvec3(encoded & 0xffu, (encoded >> 8u) & 0xffu, (encoded >> 16u) & 0xffu));\n rgb *= divisor;\n\n return vec3(\n ((encoded & 0x1000000u) != 0u) ? -rgb.r : rgb.r,\n ((encoded & 0x2000000u) != 0u) ? -rgb.g : rgb.g,\n ((encoded & 0x4000000u) != 0u) ? -rgb.b : rgb.b\n );\n}\n\n// Rotate vector v by quaternion q\nvec3 quatVec(vec4 q, vec3 v) {\n // Rotate vector v by quaternion q\n vec3 t = 2.0 * cross(q.xyz, v);\n return v + q.w * t + cross(q.xyz, t);\n}\n\n// Apply quaternion q1 after quaternion q2\nvec4 quatQuat(vec4 q1, vec4 q2) {\n return vec4(\n q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,\n q1.w * q2.y - q1.x * q2.z + q1.y * q2.w + q1.z * q2.x,\n q1.w * q2.z + q1.x * q2.y - q1.y * q2.x + q1.z * q2.w,\n q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z\n );\n}\n\nmat3 quaternionToMatrix(vec4 q) {\n return mat3(\n (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n (2.0 * (q.x * q.y + q.w * q.z)),\n (2.0 * (q.x * q.z - q.w * q.y)),\n (2.0 * (q.x * q.y - q.w * q.z)),\n (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n (2.0 * (q.y * q.z + q.w * q.x)),\n (2.0 * (q.x * q.z + q.w * q.y)),\n (2.0 * (q.y * q.z - q.w * q.x)),\n (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\nmat3 scaleQuaternionToMatrix(vec3 s, vec4 q) {\n // Compute the matrix of scaling by s then rotating by q\n return mat3(\n s.x * (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n s.x * (2.0 * (q.x * q.y + q.w * q.z)),\n s.x * (2.0 * (q.x * q.z - q.w * q.y)),\n s.y * (2.0 * (q.x * q.y - q.w * q.z)),\n s.y * (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n s.y * (2.0 * (q.y * q.z + q.w * q.x)),\n s.z * (2.0 * (q.x * q.z + q.w * q.y)),\n s.z * (2.0 * (q.y * q.z - q.w * q.x)),\n s.z * (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\n// Spherical lerp between two quaternions\nvec4 slerp(vec4 q1, vec4 q2, float t) {\n // Compute the cosine of the angle between the two vectors\n float cosHalfTheta = dot(q1, q2);\n\n // If q1=q2 or q1=-q2 then theta = 0 and we can return q1\n if (abs(cosHalfTheta) >= 0.999) {\n return q1;\n }\n \n // If q1 and q2 are more than 180 degrees apart, \n // we need to negate one to get the shortest path\n if (cosHalfTheta < 0.0) {\n q2 = -q2;\n cosHalfTheta = -cosHalfTheta;\n }\n\n // Calculate temporary values\n float halfTheta = acos(cosHalfTheta);\n float sinHalfTheta = sqrt(1.0 - cosHalfTheta * cosHalfTheta);\n\n // Calculate the interpolation factors\n float ratioA = sin((1.0 - t) * halfTheta) / sinHalfTheta;\n float ratioB = sin(t * halfTheta) / sinHalfTheta;\n\n // Calculate the interpolated quaternion\n return q1 * ratioA + q2 * ratioB;\n}\n\nivec3 splatTexCoord(int index) {\n uint x = uint(index) & SPLAT_TEX_WIDTH_MASK;\n uint y = (uint(index) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK;\n uint z = uint(index) >> SPLAT_TEX_LAYER_BITS;\n return ivec3(x, y, z);\n}\n\nivec3 pagedSplatTexCoord(int index) {\n return ivec3(index & 255, (index >> 8) & 255, index >> 16);\n}\n\nvec4 uintToVec4(uint u32) {\n uvec4 bytes = uvec4(\n u32 & 0xFFu,\n (u32 >> 8u) & 0xFFu,\n (u32 >> 16u) & 0xFFu,\n (u32 >> 24u) & 0xFFu\n );\n return vec4(bytes) / 255.0;\n}\n\nvec4 floatToVec4(float f) {\n uint u32 = floatBitsToUint(f);\n return uintToVec4(u32);\n}\n\nvec3 debugColorHue(uint i) {\n // Golden ratio conjugate; spreads hues evenly\n float hue = fract(float(i) * 0.61803398875);\n // HSV to RGB with fixed S/V\n vec3 rgb = clamp(abs(mod(hue*6.0 + vec3(0.0,4.0,2.0), 6.0) - 3.0) - 1.0, 0.0, 1.0);\n return mix(vec3(1.0), rgb, 0.85); // saturation ~0.85, value ~1.0\n}\n","\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\n#include \n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n if (false) {\n // if (debugFlag) {\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n float min1a = min(1.0, a);\n rgba.a = mix(min1a, min1a * exp(exponent), falloff);\n } else {\n // New falloff function, more or less equivalent\n if (rgba.a <= 1.0) {\n rgba.a = mix(rgba.a, rgba.a * exp(-0.5 * z2), falloff);\n } else {\n float a = exp((rgba.a*rgba.a - 1.0) / 2.718281828459045);\n float alpha = 1.0 - pow(1.0 - exp(-0.5 * z2), a);\n rgba.a = mix(1.0, alpha, falloff);\n }\n }\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n\n #include \n}\n","\nprecision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\nflat out float adjustedStdDev;\n\n// uniform uint numSplats;\nuniform vec2 renderSize;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform mat3 renderToViewBasis;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform bool enableExtSplats;\nuniform bool enableCovSplats;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool enable2DGS;\nuniform bool lodInflate;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2D ordering;\nuniform usampler2DArray extSplats;\nuniform usampler2DArray extSplats2;\n\n// Required by logdepthbuf_pars_vertex (normally defined in three.js #include )\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == -1.0;\n}\n\n#include \n\nvoid main() {\n // Default to outside the frustum so it's discarded if we return early\n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n ivec2 orderingCoord = ivec2((gl_InstanceID >> 2) & 4095, gl_InstanceID >> 14);\n uint splatIndex = texelFetch(ordering, orderingCoord, 0)[gl_InstanceID & 3];\n if (splatIndex == 0xffffffffu) {\n // Special value reserved for \"no splat\"\n return;\n }\n\n ivec3 texCoord = splatTexCoord(int(splatIndex));\n vec3 center, scales, xxyyzz, xyxzyz;\n vec4 quaternion, rgba;\n mat3 cov3D;\n bvec3 zeroScales = bvec3(false);\n\n if (enableExtSplats) {\n uvec4 ext1 = texelFetch(extSplats, texCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if ((alpha == 0.0) || (alpha < minAlpha)) {\n return;\n }\n uvec4 ext2 = texelFetch(extSplats2, texCoord, 0);\n\n if (!enableCovSplats) {\n unpackSplatExt(ext1, ext2, center, scales, quaternion, rgba);\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatExtCov(ext1, ext2, center, rgba, xxyyzz, xyxzyz);\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n } else {\n uvec4 packedData = texelFetch(extSplats, texCoord, 0);\n if (!enableCovSplats) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatCovEncoding(packedData, center, rgba, xxyyzz, xyxzyz, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n\n rgba.a *= 2.0;\n if ((rgba.a == 0.0) || (rgba.a < minAlpha)) {\n return;\n }\n }\n\n adjustedStdDev = maxStdDev;\n if (rgba.a > 1.0) {\n // Stretch 1..2 to 1..5\n rgba.a = min(rgba.a * 4.0 - 3.0, 5.0);\n\n if (lodInflate) {\n // Adjust size to componsate for loss of opacity\n float opacity = exp((rgba.a * rgba.a - 1.0) / 2.718281828459045);\n float rescale = pow(opacity, 1.0 / 3.0);\n scales *= rescale;\n rgba.a = 1.0;\n }\n\n // Expand the maximum std dev to approximately cover the larger range\n adjustedStdDev = maxStdDev + 0.7 * (rgba.a - 1.0);\n }\n\n // Compute the view space center of the splat\n vec3 viewCenter = (!enableCovSplats ? quatVec(renderToViewQuat, center) : (renderToViewBasis * center)) + renderToViewPos;\n\n // Discard splats behind the camera\n if (viewCenter.z >= 0.0) {\n return;\n }\n\n // Compute the clip space center of the splat\n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n // Discard splats outside near/far planes\n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n // Discard splats more than clipXY times outside the XY frustum\n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n vRgba = rgba;\n vSplatUv = position.xy * adjustedStdDev;\n\n // Record the splat index for entropy\n vSplatIndex = splatIndex;\n\n if (!enableCovSplats) {\n // Compute view space quaternion of splat\n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n\n #include \n return;\n }\n\n // Compute the 3D covariance matrix of the splat\n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n cov3D = RS * transpose(RS);\n } else {\n cov3D = mat3(\n xxyyzz.x, xyxzyz.x, xyxzyz.y,\n xyxzyz.x, xxyyzz.y, xyxzyz.z,\n xyxzyz.y, xyxzyz.z, xxyyzz.z\n );\n cov3D = renderToViewBasis * cov3D * transpose(renderToViewBasis);\n }\n\n // Compute the Jacobian of the splat's projection at its center\n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if (isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n // Compute the 2D covariance by projecting the 3D covariance\n // and picking out the XY plane components.\n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n // Optionally pre-blur the splat to match non-antialias optimized splats\n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n // Do convolution with a 0.5-pixel Gaussian for anti-aliasing: sqrt(0.3) ~= 0.5\n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n // Compute anti-aliasing intensity scaling factor\n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n vRgba.a = rgba.a;\n\n // Compute the eigenvalue and eigenvectors of the 2D covariance matrix\n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = (abs(b) > 0.001) ? normalize(vec2(b, eigen1 - a))\n : ((a >= d) ? vec2(1.0, 0.0) : vec2(0.0, 1.0));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n // Compute the NDC coordinates for the ellipsoid's diagonal axes.\n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n\n // Compute NDC center of the splat\n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n\n #include \n}\n","import * as THREE from \"three\";\n\nimport computeUvec4Template from \"./shaders/computeUvec4.glsl\";\nimport computeUvec4Vec4Template from \"./shaders/computeUvec4_Vec4.glsl\";\nimport computeUvec4x2Vec4Template from \"./shaders/computeUvec4x2_Vec4.glsl\";\nimport computeVec4Template from \"./shaders/computeVec4.glsl\";\nimport oldSplatFragment from \"./shaders/oldSplatFragment.glsl\";\nimport oldSplatVertex from \"./shaders/oldSplatVertex.glsl\";\nimport splatDefines from \"./shaders/splatDefines.glsl\";\nimport splatFragment from \"./shaders/splatFragment.glsl\";\nimport splatVertex from \"./shaders/splatVertex.glsl\";\n\nlet shaders: Record | null = null;\n\nexport function getShaders(): Record {\n if (!shaders) {\n // @ts-ignore\n THREE.ShaderChunk.splatDefines = splatDefines;\n shaders = {\n oldSplatVertex,\n oldSplatFragment,\n splatVertex,\n splatFragment,\n computeVec4Template,\n computeUvec4Vec4Template,\n computeUvec4x2Vec4Template,\n computeUvec4Template,\n };\n }\n return shaders;\n}\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { type Dyno, OutputRgba8, dynoBlock } from \"./dyno\";\nimport { DynoProgram, DynoProgramTemplate } from \"./dyno/program\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize } from \"./utils\";\n\n// Readback can be used to run a Dyno program that maps an index to a 32-bit\n// RGBA8 value, which is the only allowed, portable readback format for WebGL2.\n// Using data packing and conversion you can read back any 32-bit value, which\n// Spark uses to read back 2 float16 Gsplat distance values per index.\n\nexport type Rgba8Readback = Dyno<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n\n// Readback can be performed with various typed buffers, making it convenient\n// to encode readback data in a variety of formats.\n\nexport type ReadbackBuffer =\n | ArrayBuffer\n | Uint8Array\n | Uint8ClampedArray\n | Int8Array\n | Uint16Array\n | Int16Array\n | Uint32Array\n | Int32Array\n | Float32Array;\n\nexport class Readback {\n renderer?: THREE.WebGLRenderer;\n target?: THREE.WebGLArrayRenderTarget;\n capacity: number;\n count: number;\n\n constructor({ renderer }: { renderer?: THREE.WebGLRenderer } = {}) {\n this.renderer = renderer;\n this.capacity = 0;\n this.count = 0;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n }\n\n // Ensure we have a buffer large enough for the readback of count indices.\n // Pass in previous bufer of the desired type.\n static ensureBuffer(count: number, buffer: B): B {\n // Readback is performed in a 2D array of pixels, so round up with SPLAT_TEX_WIDTH\n const roundedCount =\n Math.ceil(Math.max(1, count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const bytes = roundedCount * 4;\n if (buffer.byteLength >= bytes) {\n return buffer;\n }\n\n // Need a larger buffer, create a new one of the same type\n const newBuffer = new ArrayBuffer(bytes);\n if (buffer instanceof ArrayBuffer) {\n return newBuffer as B;\n }\n\n const ctor = buffer.constructor as { new (arrayBuffer: ArrayBuffer): B };\n return new ctor(newBuffer) as B;\n }\n\n ensureBuffer(count: number, buffer: B): B {\n return Readback.ensureBuffer(count, buffer);\n }\n\n // Ensure our render target is large enough for the readback of capacity indices.\n ensureCapacity(capacity: number) {\n const { width, height, depth, maxSplats } = getTextureSize(capacity);\n if (!this.target || maxSplats > this.capacity) {\n this.dispose();\n this.capacity = maxSplats;\n\n // The only portable readback format for WebGL2 is RGBA8\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAFormat;\n this.target.texture.type = THREE.UnsignedByteType;\n this.target.texture.internalFormat = \"RGBA8\";\n this.target.scissorTest = true;\n }\n }\n\n // Get a program and THREE.RawShaderMaterial for a given Rgba8Readback,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(reader: Rgba8Readback): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = Readback.readbackProgram.get(reader);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n reader.inputs.index = index;\n const rgba8 = new OutputRgba8({ rgba8: reader.outputs.rgba8 });\n return { rgba8 };\n },\n );\n if (!Readback.programTemplate) {\n Readback.programTemplate = new DynoProgramTemplate(\n getShaders().computeVec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { rgba8: \"target\" },\n template: Readback.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n Readback.readbackProgram.set(reader, program);\n }\n\n const material = program.prepareMaterial();\n Readback.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private process({\n count,\n material,\n }: { count: number; material: THREE.RawShaderMaterial }) {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n // Run the program in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of indices.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = 0;\n material.uniforms.targetCount.value = count;\n let baseIndex = 0;\n\n // Keep generating layers until completed count items\n while (baseIndex < count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((count - layerBase) / SPLAT_TEX_WIDTH),\n );\n material.uniforms.targetLayer.value = layer;\n\n // Render the desired portion of the layer\n this.target.scissor.set(0, 0, SPLAT_TEX_WIDTH, layerYEnd);\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n Readback.fullScreenQuad.render(renderer);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.count = count;\n }\n\n private async read({\n readback,\n }: { readback: B }): Promise {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(this.count / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(\n readback instanceof ArrayBuffer ? readback : readback.buffer,\n );\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < this.count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((this.count - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n renderer.setRenderTarget(this.target, layer);\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n const promise = renderer?.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n );\n promises.push(promise);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n // const gl = renderer.getContext() as WebGL2RenderingContext;\n // gl.flush();\n return Promise.all(promises).then(() => readback);\n }\n\n // Perform render operation to run the Rgba8Readback program\n // but don't perform the readback yet.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer?: THREE.WebGLRenderer }) {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n this.process({ count, material });\n this.resetRenderState(this.renderer, renderState);\n }\n\n // Perform a readback of the render target, returning a buffer of the\n // given type.\n async readback({\n readback,\n }: { readback: B }): Promise {\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n const renderState = this.saveRenderState(this.renderer);\n const promise = this.read({ readback });\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n // Perform a render and readback operation for the given Rgba8Readback,\n // and readback buffer (call ensureBuffer first).\n async renderReadback({\n reader,\n count,\n renderer,\n readback,\n }: {\n reader: Rgba8Readback;\n count: number;\n renderer?: THREE.WebGLRenderer;\n readback: B;\n }): Promise {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n\n // Generate output\n this.process({ count, material });\n\n // Initiate readback\n const promise = this.read({ readback });\n\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n getTexture(): THREE.DataArrayTexture | undefined {\n return this.target?.texture;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for Rgba8Readback programs\n static readbackProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n}\n","import * as THREE from \"three\";\n\nimport { DynoPackedSplats, type PackedSplats } from \"./PackedSplats\";\nimport { Readback, type Rgba8Readback } from \"./Readback\";\nimport { SPLAT_TEX_WIDTH } from \"./defines\";\nimport {\n Dyno,\n type DynoBlock,\n DynoInt,\n DynoUniform,\n type DynoVal,\n add,\n dynoBlock,\n readPackedSplatRange,\n splitGsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize } from \"./utils\";\n\n// An RgbaArray is a collection of ordered RGBA8 values, which can be used as a dyno\n// data source, for example for recoloring Gsplats via SplatMesh.splatRgba.\n// It can be instantiated from a Uint8Array of RGBA8 values, or it can be\n// generated using a Rgba8Readback dyno program.\n\nexport type RgbaArrayOptions = {\n // Reserve space for at least this many RGBA values.\n capacity?: number;\n // Use the provided array of RGBA8 values as the source.\n array?: Uint8Array;\n // The number of actual RGBA8 values in the array.\n count?: number;\n};\n\nexport class RgbaArray {\n capacity = 0;\n count = 0;\n array: Uint8Array | null = null;\n\n readback: Readback | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source array is updated to have it upload to GPU\n needsUpdate = true;\n\n // Use this as a TRgbaArray in a dyno graph\n dyno: DynoUniform;\n\n constructor(options: RgbaArrayOptions = {}) {\n this.dyno = new DynoUniform({\n key: \"rgbaArray\",\n type: TRgbaArray,\n globals: () => [defineRgbaArray],\n value: {\n texture: RgbaArray.getEmpty(),\n count: 0,\n },\n update: (value) => {\n value.texture = this.getTexture();\n value.count = this.count;\n return value;\n },\n });\n\n if (options.array) {\n // Initialize with given array\n this.array = options.array;\n const splatCount = Math.floor(this.array.length / 4);\n this.capacity = Math.ceil(splatCount / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (this.capacity > splatCount) {\n this.array = new Uint8Array(this.capacity * 4);\n this.array.set(options.array);\n }\n this.count = Math.min(\n splatCount,\n options.count ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.capacity = options.capacity ?? 0;\n this.count = 0;\n }\n }\n\n // Free up resources\n dispose() {\n if (this.readback) {\n this.readback.dispose();\n this.readback = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source = null;\n }\n }\n\n // Ensure that our array is large enough to hold capacity RGBA8 values.\n ensureCapacity(capacity: number): Uint8Array {\n if (!this.array || capacity > (this.array?.length ?? 0) / 4) {\n this.capacity = getTextureSize(capacity).maxSplats;\n const newArray = new Uint8Array(this.capacity * 4);\n if (this.array) {\n // Copy over existing data\n newArray.set(this.array);\n }\n this.array = newArray;\n }\n return this.array;\n }\n\n // Get the THREE.DataArrayTexture from either the readback or the source.\n getTexture(): THREE.DataArrayTexture {\n let texture = this.readback?.getTexture();\n if (this.source || this.array) {\n texture = this.maybeUpdateSource();\n }\n return texture ?? RgbaArray.getEmpty();\n }\n\n // Create or get a THREE.DataArrayTexture from the data array.\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.array) {\n throw new Error(\"No array\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.capacity !== width * height * depth) {\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n const { width, height, depth } = getTextureSize(this.capacity);\n this.source = new THREE.DataArrayTexture(\n this.array as Uint8Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAFormat;\n this.source.type = THREE.UnsignedByteType;\n this.source.internalFormat = \"RGBA8\";\n this.source.needsUpdate = true;\n } else if (this.array.buffer !== this.source.image.data.buffer) {\n this.source.image.data = new Uint8Array(this.array.buffer);\n }\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n // Generate the RGBA8 values from a Rgba8Readback dyno program.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer: THREE.WebGLRenderer }) {\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n this.readback.render({ reader, count, renderer });\n this.capacity = this.readback.capacity;\n this.count = this.readback.count;\n }\n\n // Extract the RGBA8 values from a PackedSplats collection.\n fromPackedSplats({\n packedSplats,\n base,\n count,\n renderer,\n }: {\n packedSplats: PackedSplats;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n const { dynoSplats, dynoBase, dynoCount, reader } = RgbaArray.makeDynos();\n dynoSplats.packedSplats = packedSplats;\n dynoBase.value = base;\n dynoCount.value = count;\n this.render({ reader, count, renderer });\n return this;\n }\n\n // Read back the RGBA8 values from the readback buffer.\n async read(): Promise {\n if (!this.readback) {\n throw new Error(\"No readback\");\n }\n if (!this.array || this.array.length < this.count * 4) {\n this.array = new Uint8Array(this.capacity * 4);\n }\n const result = await this.readback.readback({ readback: this.array });\n return result.subarray(0, this.count * 4);\n }\n\n async getArray(): Promise {\n if (this.readback) {\n return await this.read();\n }\n if (this.array) {\n return this.array;\n }\n throw new Error(\"No array\");\n }\n\n private static emptySource: THREE.DataArrayTexture | null = null;\n\n // Can be used where you need an uninitialized THREE.DataArrayTexture like\n // a uniform you will update with the result of this.getTexture() later.\n static getEmpty(): THREE.DataArrayTexture {\n if (!RgbaArray.emptySource) {\n const emptyArray = new Uint8Array(1 * 4);\n RgbaArray.emptySource = new THREE.DataArrayTexture(emptyArray, 1, 1, 1);\n RgbaArray.emptySource.format = THREE.RGBAFormat;\n RgbaArray.emptySource.type = THREE.UnsignedByteType;\n RgbaArray.emptySource.internalFormat = \"RGBA8\";\n RgbaArray.emptySource.needsUpdate = true;\n }\n return RgbaArray.emptySource;\n }\n\n private static dynos: {\n dynoSplats: DynoPackedSplats;\n dynoBase: DynoInt;\n dynoCount: DynoInt;\n reader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n } | null = null;\n\n // Create a dyno program that can extract RGBA8 values from a PackedSplats\n private static makeDynos() {\n if (!RgbaArray.dynos) {\n const dynoSplats = new DynoPackedSplats();\n const dynoBase = new DynoInt({ value: 0 });\n const dynoCount = new DynoInt({ value: 0 });\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n index = add(index, dynoBase);\n const gsplat = readPackedSplatRange(\n dynoSplats,\n index,\n dynoBase,\n dynoCount,\n );\n return { rgba8: splitGsplat(gsplat).outputs.rgba };\n },\n );\n RgbaArray.dynos = { dynoSplats, dynoBase, dynoCount, reader };\n }\n return RgbaArray.dynos;\n }\n}\n\n// Dyno types and definitions\n\nexport const TRgbaArray = { type: \"RgbaArray\" } as { type: \"RgbaArray\" };\n\nexport const defineRgbaArray = unindent(`\n struct RgbaArray {\n sampler2DArray texture;\n int count;\n };\n`);\n\nexport function readRgbaArray(\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal<\"vec4\"> {\n const dyno = new Dyno<\n { rgba: typeof TRgbaArray; index: \"int\" },\n { rgba: \"vec4\" }\n >({\n inTypes: { rgba: TRgbaArray, index: \"int\" },\n outTypes: { rgba: \"vec4\" },\n inputs: { rgba, index },\n globals: () => [defineRgbaArray],\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n if ((${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.rgba} = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n } else {\n ${outputs.rgba} = vec4(0.0, 0.0, 0.0, 0.0);\n }\n `),\n });\n return dyno.outputs.rgba;\n}\n","import * as THREE from \"three\";\n\nimport {\n CovSplat,\n Dyno,\n DynoInt,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { newArray } from \"./utils\";\n\n// Spark provides the ability to apply \"edits\" to Gsplats as part of the standard\n// SplatMesh pipeline. These edits take the form of a sequence of operations,\n// applied one at a time to the set of Gsplats in its packedSplats. Each operation\n// evaluates a 7-dimensional field (RGBA and XYZ displacement) at each point in\n// space that derives from N=1 or more Signed Distance Field shapes (such as spheres,\n// boxes, planes, etc.), blended together and across inside-outisde boundaries.\n\n// The result is a an RGBA,XYZ value for each point in space, which combined with\n// SplatEditRgbaBlendMode.MULTIPLY/SET_RGB/ADD_RGBA can be used to create special\n// effects, for example simulating simple lighting or applying deformations in space,\n// whose parameters can be updated each frame to create animated effects.\n\n// RGBA-XYZ values are computed by blending together values from all SDF shapes using\n// the exponential \"softmax\" function, which is commutative (so blending order within\n// a SplatEdit operation doesn't matter). The parameter SplatEdit.sdfSmooth controls\n// the blending scale between SDF shapes, while SplatEdit.softEdge controls the scale\n// of soft inside-outside shape edit blending. Their default values start at 0.0 and\n// should be increased to soften the effect.\n\n// Note that XYZ displacement values are blended in the same way as RGBA, with a\n// resulting displacement field that can be quite complex but \"softly\" blending\n// between shapes. These RGBA-XYZ edits, along with time-based and overlapping\n// fields can create many interesting animations and special effects, such as\n// rippling leaves in the wind, an angry fire, or a looping water effects. Simply\n// update the SplatEdit and SplatEditSdf objects and the operations will be applied\n// immediately to the Gsplats in the scene.\n\nexport enum SplatEditSdfType {\n // ALL: Affects all points in space\n ALL = \"all\",\n // PLANE: Infinite plane (position, rotation)\n PLANE = \"plane\",\n // SPHERE: Sphere (position, radius)\n SPHERE = \"sphere\",\n // BOX: Rounded box (position, rotation, sizes, radius)\n BOX = \"box\",\n // ELLIPSOID: Ellipsoid (position, rotation, sizes)\n ELLIPSOID = \"ellipsoid\",\n // CYLINDER: Cylinder (position, rotation, radius, size_y)\n CYLINDER = \"cylinder\",\n // CAPSULE: Capsule (position, rotation, radius, size_y)\n CAPSULE = \"capsule\",\n // INFINITE_CONE: Infinite cone (position, rotation, radius=angle)\n INFINITE_CONE = \"infinite_cone\",\n}\n\nfunction sdfTypeToNumber(type: SplatEditSdfType) {\n switch (type) {\n case SplatEditSdfType.ALL:\n return 0;\n case SplatEditSdfType.PLANE:\n return 1;\n case SplatEditSdfType.SPHERE:\n return 2;\n case SplatEditSdfType.BOX:\n return 3;\n case SplatEditSdfType.ELLIPSOID:\n return 4;\n case SplatEditSdfType.CYLINDER:\n return 5;\n case SplatEditSdfType.CAPSULE:\n return 6;\n case SplatEditSdfType.INFINITE_CONE:\n return 7;\n default:\n throw new Error(`Unknown SDF type: ${type}`);\n }\n}\n\nexport enum SplatEditRgbaBlendMode {\n // The RGBA of the splat is multiplied component-wise by the SDF’s\n // RGBA value at that point in space.\n MULTIPLY = \"multiply\",\n // Ignore the Alpha value in the SDF, but set the splat’s RGB to\n // equal the SDF’s RGB value at that point.\n SET_RGB = \"set_rgb\",\n // Add the SDF’s RGBA value at that point to the RGBA value of\n // the Gsplat. This can produce hyper-saturated results, but is useful\n // to easily “light up” areas.\n ADD_RGBA = \"add_rgba\",\n}\n\nfunction rgbaBlendModeToNumber(mode: SplatEditRgbaBlendMode) {\n switch (mode) {\n case SplatEditRgbaBlendMode.MULTIPLY:\n return 0;\n case SplatEditRgbaBlendMode.SET_RGB:\n return 1;\n case SplatEditRgbaBlendMode.ADD_RGBA:\n return 2;\n default:\n throw new Error(`Unknown blend mode: ${mode}`);\n }\n}\n\nexport type SplatEditSdfOptions = {\n // The SDF shape type: ALL, PLANE, SPHERE, BOX, ELLIPSOID, CYLINDER, CAPSULE,\n // or INFINITE_CONE. (default: SplatEditSdfType.SPHERE)\n type?: SplatEditSdfType;\n // Invert the SDF evaluation, swapping inside and outside regions. (default: false)\n invert?: boolean;\n // Opacity / \"alpha\" value used differently by blending modes (default: 1.0)\n opacity?: number;\n // RGB color applied within the shape. (default: new THREE.Color(1.0, 1.0, 1.0))\n color?: THREE.Color;\n // XYZ displacement applied to splat positions inside the shape.\n // (default: new THREE.Vector3(0.0, 0.0, 0.0))\n displace?: THREE.Vector3;\n // Shape-specific size parameter: sphere radius, box corner rounding,\n // cylinder/capsule radius, or for the infinite cone the angle factor\n // (opening half-angle = π/4 × radius).\n radius?: number;\n};\n\nexport class SplatEditSdf extends THREE.Object3D {\n type: SplatEditSdfType;\n invert: boolean;\n opacity: number;\n color: THREE.Color;\n displace: THREE.Vector3;\n radius: number;\n\n constructor(options: SplatEditSdfOptions = {}) {\n super();\n const { type, invert, opacity, color, displace, radius } = options;\n this.type = type ?? SplatEditSdfType.SPHERE;\n this.invert = invert ?? false;\n this.opacity = opacity ?? 1.0;\n this.color = color ?? new THREE.Color(1.0, 1.0, 1.0);\n this.displace = displace ?? new THREE.Vector3(0.0, 0.0, 0.0);\n this.radius = radius ?? 0.0;\n }\n}\n\nexport type SplatEditOptions = {\n // Name of this edit operation. If you omit it, a default \"Edit 1\", \"Edit 2\", ...\n // is assigned.\n name?: string;\n // How the SDF’s RGBA modifies each splat’s RGBA: multiply, overwrite RGB,\n // or add RGBA. (default: MULTIPLY)\n rgbaBlendMode?: SplatEditRgbaBlendMode;\n // Smoothing (in world‐space units) for blending between multiple SDF shapes\n // at their boundaries. (default: 0.0)\n sdfSmooth?: number;\n // Soft‐edge falloff radius (in world‐space units) around each SDF shape’s surface.\n // (default: 0.0)\n softEdge?: number;\n // Invert the SDF evaluation (inside/outside swap). (default: false)\n invert?: boolean;\n // Explicit array of SplatEditSdf objects to include. If null, any child\n // SplatEditSdf instances are used.\n sdfs?: SplatEditSdf[];\n};\n\nexport class SplatEdit extends THREE.Object3D {\n // ordering used to apply SplatEdit operations to Gsplats. This is implicitly\n // increased with each new SplatEdit. Reassigning ordering can be used to\n // reorder the operations.\n ordering: number;\n rgbaBlendMode: SplatEditRgbaBlendMode;\n sdfSmooth: number;\n softEdge: number;\n invert: boolean;\n\n // Optional list of explicit SDFs to including in this edit. If it is null, then\n // any SplatEditSdf children in the scene graph will be added automatically.\n sdfs: SplatEditSdf[] | null;\n\n // The next ordering number to use for a new SplatEdit, auto-incremented\n static nextOrdering = 1;\n\n constructor(options: SplatEditOptions = {}) {\n const {\n name,\n rgbaBlendMode = SplatEditRgbaBlendMode.MULTIPLY,\n sdfSmooth = 0.0,\n softEdge = 0.0,\n invert = false,\n sdfs = null,\n } = options;\n\n super();\n this.rgbaBlendMode = rgbaBlendMode;\n this.sdfSmooth = sdfSmooth;\n this.softEdge = softEdge;\n this.invert = invert;\n this.sdfs = sdfs;\n // Assign and auto-increment unique ordering number for this edit\n this.ordering = SplatEdit.nextOrdering++;\n // Automatically assign a default name if not provided\n this.name = name ?? `Edit ${this.ordering}`;\n }\n\n addSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n this.sdfs = [];\n }\n if (!this.sdfs.includes(sdf)) {\n this.sdfs.push(sdf);\n }\n }\n\n removeSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n return;\n }\n this.sdfs = this.sdfs.filter((s) => s !== sdf);\n }\n}\n\n// Dyno implementation of RGBA-XYZ SDF editing.\n// The SDFs are encoded in a texture while the edits are encoded\n// as a uniform uvec4 array.\n\nexport class SplatEdits {\n // Maximum number of SDFs allocated\n maxSdfs: number;\n // Number of SDFs currently in use\n numSdfs: number;\n // Encoded SDF data\n sdfData: Uint32Array;\n // Float interpretation of SDF data\n sdfFloatData: Float32Array;\n // Texture with encoded SDF data\n sdfTexture: THREE.DataTexture;\n // An SdfArray dyno uniform\n dynoSdfArray: DynoUniform;\n\n // Maximum number of edits allocated\n maxEdits: number;\n // Number of edits currently in use\n numEdits: number;\n // Encoded edit data\n editData: Uint32Array;\n // Float interpretation of edit data\n editFloatData: Float32Array;\n // A dyno uniform for the number of edits\n dynoNumEdits: DynoUniform<\"int\", \"numEdits\">;\n // A dyno uniform for the encoded edits, one uvec4 per edit\n dynoEdits: DynoUniform<\"uvec4\", \"edits\">;\n\n constructor({ maxSdfs, maxEdits }: { maxSdfs?: number; maxEdits?: number }) {\n // Allocate at least 16 SDFs for efficiency\n this.maxSdfs = Math.max(16, maxSdfs ?? 0);\n this.numSdfs = 0;\n\n // Allocate space: 8 x (u)vec4 values per SDF, Uint32 and Float32 arrays\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n this.dynoSdfArray = new DynoUniform({\n key: \"sdfArray\",\n type: SdfArray,\n globals: () => [defineSdfArray],\n value: {\n numSdfs: 0,\n sdfTexture: this.sdfTexture,\n },\n update: (uniform) => {\n uniform.numSdfs = this.numSdfs;\n uniform.sdfTexture = this.sdfTexture;\n return uniform;\n },\n });\n\n // Allocate at least 16 edits slots for efficiency\n this.maxEdits = Math.max(16, maxEdits ?? 0);\n this.numEdits = 0;\n // Allocate space: 1 uvec4 per edit\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoNumEdits = new DynoInt({ value: 0 });\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n }\n\n private newSdfTexture(data: Uint32Array, maxSdfs: number) {\n const texture = new THREE.DataTexture(\n data,\n 8,\n maxSdfs,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n }\n\n private newEdits(data: Uint32Array, maxEdits: number) {\n return new DynoUniform({\n key: \"edits\",\n type: \"uvec4\",\n count: maxEdits,\n globals: () => [defineEdit],\n value: data,\n });\n }\n\n // Ensure our SDF texture and edits uniform array have enough capacity.\n // Reallocate if not.\n private ensureCapacity({\n maxSdfs,\n maxEdits,\n }: { maxSdfs: number; maxEdits: number }): boolean {\n let dynoUpdated = false;\n if (maxSdfs > this.sdfTexture.image.height) {\n this.sdfTexture.dispose();\n // At least double the size to avoid frequent reallocations\n this.maxSdfs = Math.max(this.maxSdfs * 2, maxSdfs);\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n }\n if (maxEdits > (this.dynoEdits.count ?? 0)) {\n // At least double the size to avoid frequent reallocations\n this.maxEdits = Math.max(this.maxEdits * 2, maxEdits);\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n dynoUpdated = true;\n }\n return dynoUpdated;\n }\n\n private updateEditData(offset: number, value: number): boolean {\n // Update an edit uint32 value and return true if it changed\n const updated = this.editData[offset] !== value;\n this.editData[offset] = value;\n return updated;\n }\n\n private updateEditFloatData(offset: number, value: number): boolean {\n // Update an edit float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.editFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.editFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeEdit(\n editIndex: number,\n {\n sdfFirst,\n sdfCount,\n invert,\n rgbaBlendMode,\n softEdge,\n sdfSmooth,\n }: {\n sdfFirst: number;\n sdfCount: number;\n invert: boolean;\n rgbaBlendMode: number;\n softEdge: number;\n sdfSmooth: number;\n },\n ): boolean {\n const base = editIndex * 4;\n let updated = false;\n // Encode the edit fields into the editData array and check if any changed\n updated =\n this.updateEditData(base + 0, rgbaBlendMode | (invert ? 1 << 8 : 0)) ||\n updated;\n updated =\n this.updateEditData(base + 1, sdfFirst | (sdfCount << 16)) || updated;\n updated = this.updateEditFloatData(base + 2, softEdge) || updated;\n updated = this.updateEditFloatData(base + 3, sdfSmooth) || updated;\n return updated;\n }\n\n private updateSdfData(offset: number, value: number): boolean {\n // Update an SDF uint32 value and return true if it changed\n const updated = this.sdfData[offset] !== value;\n this.sdfData[offset] = value;\n return updated;\n }\n\n private updateSdfFloatData(offset: number, value: number): boolean {\n // Update an SDF float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.sdfFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.sdfFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeSdf(\n sdfIndex: number,\n {\n sdfType,\n invert,\n center,\n quaternion,\n scale,\n sizes,\n }: {\n sdfType: number;\n invert?: boolean;\n center?: THREE.Vector3;\n quaternion?: THREE.Quaternion;\n scale?: THREE.Vector3;\n sizes?: THREE.Vector4;\n },\n values: THREE.Vector4[],\n ): boolean {\n // Encode the SDF fields into the sdfData array and check if any changed\n const base = sdfIndex * (8 * 4);\n const flags = sdfType | (invert ? 1 << 8 : 0);\n let updated = false;\n\n updated = this.updateSdfFloatData(base + 0, center?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 1, center?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 2, center?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 3, flags) || updated;\n\n updated = this.updateSdfFloatData(base + 4, quaternion?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 5, quaternion?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 6, quaternion?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 7, quaternion?.w ?? 0) || updated;\n\n updated = this.updateSdfFloatData(base + 8, scale?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 9, scale?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 10, scale?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 11, 0) || updated;\n\n updated = this.updateSdfFloatData(base + 12, sizes?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 13, sizes?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 14, sizes?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 15, sizes?.w ?? 0) || updated;\n\n const nValues = Math.min(4, values.length);\n for (let i = 0; i < nValues; ++i) {\n const vBase = base + 16 + i * 4;\n updated = this.updateSdfFloatData(vBase + 0, values[i].x) || updated;\n updated = this.updateSdfFloatData(vBase + 1, values[i].y) || updated;\n updated = this.updateSdfFloatData(vBase + 2, values[i].z) || updated;\n updated = this.updateSdfFloatData(vBase + 3, values[i].w) || updated;\n }\n return updated;\n }\n\n // Update the SDFs and edits from an array of SplatEdits and their\n // associated SplatEditSdfs, updating it for the dyno shader program.\n update(edits: { edit: SplatEdit; sdfs: SplatEditSdf[] }[]): {\n updated: boolean;\n dynoUpdated: boolean;\n } {\n const sdfCount = edits.reduce((total, { sdfs }) => total + sdfs.length, 0);\n const dynoUpdated = this.ensureCapacity({\n maxEdits: edits.length,\n maxSdfs: sdfCount,\n });\n\n const values = [new THREE.Vector4(), new THREE.Vector4()];\n const center = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const scale = new THREE.Vector3();\n const sizes = new THREE.Vector4();\n\n let sdfIndex = 0;\n let updated = dynoUpdated;\n\n if (edits.length !== this.dynoNumEdits.value) {\n this.dynoNumEdits.value = edits.length;\n this.numEdits = edits.length;\n updated = true;\n }\n\n for (const [editIndex, { edit, sdfs }] of edits.entries()) {\n updated =\n this.encodeEdit(editIndex, {\n sdfFirst: sdfIndex,\n sdfCount: sdfs.length,\n invert: edit.invert,\n rgbaBlendMode: rgbaBlendModeToNumber(edit.rgbaBlendMode),\n softEdge: edit.softEdge,\n sdfSmooth: edit.sdfSmooth,\n }) || updated;\n\n let sdfUpdated = false;\n for (const sdf of sdfs) {\n sizes.set(sdf.scale.x, sdf.scale.y, sdf.scale.z, sdf.radius);\n // Temporarily set the SDF scale to 1.0 to get the world-to-SDF\n // transform without scaling. The SDF treats the scale separately.\n sdf.scale.setScalar(1.0);\n sdf.updateMatrixWorld();\n const worldToSdf = sdf.matrixWorld.clone().invert();\n worldToSdf.decompose(center, quaternion, scale);\n\n sdf.scale.set(sizes.x, sizes.y, sizes.z);\n sdf.updateMatrixWorld();\n\n values[0].set(sdf.color.r, sdf.color.g, sdf.color.b, sdf.opacity);\n values[1].set(sdf.displace.x, sdf.displace.y, sdf.displace.z, 1.0);\n\n sdfUpdated =\n this.encodeSdf(\n sdfIndex,\n {\n sdfType: sdfTypeToNumber(sdf.type),\n invert: sdf.invert,\n center,\n quaternion,\n scale,\n sizes,\n },\n values,\n ) || sdfUpdated;\n\n sdfIndex += 1;\n }\n this.numSdfs = sdfIndex;\n if (sdfUpdated) {\n this.sdfTexture.needsUpdate = true;\n }\n updated ||= sdfUpdated;\n }\n return { updated, dynoUpdated };\n }\n\n // Modify a Gsplat in a dyno shader program using the current edits and SDFs.\n modify(gsplat: DynoVal): DynoVal {\n return applyGsplatRgbaDisplaceEdits(\n gsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n return applyCovSplatRgbaDisplaceEdits(\n covsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n}\n\n// Dyno types and components:\n\n// An SdfArray contains a collection of SDFs encoded in a texture.\n// Each SDF has a type and geometric parameters, but also encodes\n// 4 x vec4 values, which can all be blended across multiple SDFs.\n// The SplatEdit system uses 7 of these 16 values to encode RGBA-XYZ edits,\n// but more can be added, and these SDFs can be used for entirely different\n// purposes as well.\n\nexport const SdfArray = { type: \"SdfArray\" } as { type: \"SdfArray\" };\n\nexport const defineSdfArray = unindent(`\n struct SdfArray {\n int numSdfs;\n usampler2D sdfTexture;\n };\n\n void unpackSdfArray(\n usampler2D sdfTexture, int sdfIndex, out uint flags,\n out vec3 center, out vec4 quaternion, out vec3 scale, out vec4 sizes,\n int numValues, out vec4 values[4]\n ) {\n uvec4 temp = texelFetch(sdfTexture, ivec2(0, sdfIndex), 0);\n flags = temp.w;\n center = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(1, sdfIndex), 0);\n quaternion = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n temp = texelFetch(sdfTexture, ivec2(2, sdfIndex), 0);\n scale = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(3, sdfIndex), 0);\n sizes = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n for (int i = 0; i < numValues; ++i) {\n temp = texelFetch(sdfTexture, ivec2(4 + i, sdfIndex), 0);\n values[i] = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n }\n }\n\n const uint SDF_FLAG_TYPE = 0xFFu;\n const uint SDF_FLAG_INVERT = 1u << 8u;\n\n const uint SDF_TYPE_ALL = 0u;\n const uint SDF_TYPE_PLANE = 1u;\n const uint SDF_TYPE_SPHERE = 2u;\n const uint SDF_TYPE_BOX = 3u;\n const uint SDF_TYPE_ELLIPSOID = 4u;\n const uint SDF_TYPE_CYLINDER = 5u;\n const uint SDF_TYPE_CAPSULE = 6u;\n const uint SDF_TYPE_INFINITE_CONE = 7u;\n\n float evaluateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 outValues[4]\n ) {\n float distanceAccum = (smoothK == 0.0) ? 1.0 / 0.0 : 0.0;\n float maxExp = -1.0 / 0.0;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = vec4(0.0);\n }\n\n uint flags;\n vec3 center, scale;\n vec4 quaternion, sizes;\n vec4 values[4];\n\n int sdfLast = min(sdfFirst + sdfCount, numSdfs);\n for (int index = sdfFirst; index < sdfLast; ++index) {\n unpackSdfArray(sdfTexture, index, flags, center, quaternion, scale, sizes, numValues, values);\n uint sdfType = flags & SDF_FLAG_TYPE;\n vec3 sdfPos = quatVec(quaternion, pos * scale) + center;\n\n float distance;\n switch (sdfType) {\n case SDF_TYPE_ALL:\n distance = -1.0 / 0.0;\n break;\n case SDF_TYPE_PLANE: {\n distance = sdfPos.z;\n break;\n }\n case SDF_TYPE_SPHERE: {\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_BOX: {\n vec3 q = abs(sdfPos) - sizes.xyz + sizes.w;\n distance = length(max(q, 0.0)) + min(max(q.x, max(q.y, q.z)), 0.0) - sizes.w;\n break;\n }\n case SDF_TYPE_ELLIPSOID: {\n vec3 sizes = sizes.xyz;\n float k0 = length(sdfPos / sizes);\n float k1 = length(sdfPos / dot(sizes, sizes));\n distance = k0 * (k0 - 1.0) / k1;\n break;\n }\n case SDF_TYPE_CYLINDER: {\n vec2 d = abs(vec2(length(sdfPos.xz), sdfPos.y)) - sizes.wy;\n distance = min(max(d.x, d.y), 0.0) + length(max(d, 0.0));\n break;\n }\n case SDF_TYPE_CAPSULE: {\n sdfPos.y -= clamp(sdfPos.y, -0.5 * sizes.y, 0.5 * sizes.y);\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_INFINITE_CONE: {\n float angle = 0.25 * PI * sizes.w;\n vec2 c = vec2(sin(angle), cos(angle));\n vec2 q = vec2(length(sdfPos.xy), -sdfPos.z);\n float d = length(q - c * max(dot(q, c), 0.0));\n distance = d * (((q.x * c.y - q.y * c.x) < 0.0) ? -1.0 : 1.0);\n break;\n }\n }\n\n if ((flags & SDF_FLAG_INVERT) != 0u) {\n distance = -distance;\n }\n\n if (smoothK == 0.0) {\n if (distance < distanceAccum) {\n distanceAccum = distance;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = values[i];\n }\n }\n } else {\n float scaledDistance = -distance / smoothK;\n if (scaledDistance > maxExp) {\n float scale = exp(maxExp - scaledDistance);\n distanceAccum *= scale;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] *= scale;\n }\n maxExp = scaledDistance;\n }\n\n float weight = exp(scaledDistance - maxExp);\n distanceAccum += weight;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] += weight * values[i];\n }\n }\n }\n\n if (smoothK == 0.0) {\n return distanceAccum;\n } else {\n // Very distant SDFs may result in 0 accumulation\n if (distanceAccum == 0.0) {\n return 1.0 / 0.0;\n }\n for (int i = 0; i < numValues; ++i) {\n outValues[i] /= distanceAccum;\n }\n return (-log(distanceAccum) - maxExp) * smoothK;\n }\n }\n\n float modulateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 values[4],\n float softEdge, bool invert\n ) {\n float distance = evaluateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, numValues, values);\n if (invert) {\n distance = -distance;\n }\n\n return (softEdge == 0.0) ? ((distance < 0.0) ? 1.0 : 0.0)\n : clamp(-distance / softEdge + 0.5, 0.0, 1.0);\n }\n`);\n\nexport const defineEdit = unindent(`\n const uint EDIT_FLAG_BLEND = 0xFFu;\n const uint EDIT_BLEND_MULTIPLY = 0u;\n const uint EDIT_BLEND_SET_RGB = 1u;\n const uint EDIT_BLEND_ADD_RGBA = 2u;\n const uint EDIT_FLAG_INVERT = 0x100u;\n\n void decodeEdit(\n uvec4 packedEdit, out int sdfFirst, out int sdfCount,\n out bool invert, out uint rgbaBlendMode, out float softEdge, out float sdfSmooth\n ) {\n rgbaBlendMode = packedEdit.x & EDIT_FLAG_BLEND;\n invert = (packedEdit.x & EDIT_FLAG_INVERT) != 0u;\n\n sdfFirst = int(packedEdit.y & 0xFFFFu);\n sdfCount = int(packedEdit.y >> 16u);\n\n softEdge = uintBitsToFloat(packedEdit.z);\n sdfSmooth = uintBitsToFloat(packedEdit.w);\n }\n\n void applyRgbaDisplaceEdit(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, inout vec3 pos,\n float smoothK, float softEdge, bool invert, uint rgbaBlendMode, inout vec4 rgba\n ) {\n vec4 values[4];\n float modulate = modulateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, 2, values, softEdge, invert);\n // On Android, moving values[0] is necessary to work around a compiler bug.\n vec4 sdfRgba = values[0];\n vec4 sdfDisplaceScale = values[1];\n\n vec4 target;\n switch (rgbaBlendMode) {\n case EDIT_BLEND_MULTIPLY:\n target = rgba * sdfRgba;\n break;\n case EDIT_BLEND_SET_RGB:\n target = vec4(sdfRgba.rgb, rgba.a * sdfRgba.a);\n break;\n case EDIT_BLEND_ADD_RGBA:\n target = rgba + sdfRgba;\n break;\n default:\n // Debug output if blend mode not set\n target = vec4(fract(pos), 1.0);\n }\n rgba = mix(rgba, target, modulate);\n pos += sdfDisplaceScale.xyz * modulate;\n }\n\n void applyPackedRgbaDisplaceEdit(uvec4 packedEdit, usampler2D sdfTexture, int numSdfs, inout vec3 pos, inout vec4 rgba) {\n int sdfFirst, sdfCount;\n bool invert;\n uint rgbaBlendMode;\n float softEdge, sdfSmooth;\n decodeEdit(packedEdit, sdfFirst, sdfCount, invert, rgbaBlendMode, softEdge, sdfSmooth);\n applyRgbaDisplaceEdit(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, sdfSmooth, softEdge, invert, rgbaBlendMode, rgba);\n }\n`);\n\nfunction applyGsplatRgbaDisplaceEdits(\n gsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n gsplat: typeof Gsplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { gsplat: typeof Gsplat }\n >({\n inTypes: {\n gsplat: Gsplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { gsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${gsplat}.center, ${gsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nfunction applyCovSplatRgbaDisplaceEdits(\n covsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n covsplat: typeof CovSplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { covsplat: typeof CovSplat }\n >({\n inTypes: {\n covsplat: CovSplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { covsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${covsplat}.center, ${covsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nconst tempFloat32 = new Float32Array(1);\n","import * as THREE from \"three\";\nimport type { SplatEdit } from \"./SplatEdit\";\nimport {\n CovSplat,\n Dyno,\n DynoFloat,\n DynoMat3,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n Gsplat,\n add,\n dynoBlock,\n mul,\n transformDir,\n transformGsplat,\n transformPos,\n unindentLines,\n} from \"./dyno\";\n\n// A GsplatGenerator is a dyno program that maps an index to a Gsplat's properties\n\nexport type GsplatGenerator = Dyno<{ index: \"int\" }, { gsplat: typeof Gsplat }>;\n\nexport type CovSplatGenerator = Dyno<\n { index: \"int\" },\n { covsplat: typeof CovSplat }\n>;\n\n// A GsplatModifier is a dyno program that inputs a Gsplat, modifies, and outputs it\n\nexport type GsplatModifier = Dyno<\n { gsplat: typeof Gsplat },\n { gsplat: typeof Gsplat }\n>;\n\nexport type CovSplatModifier = Dyno<\n { covsplat: typeof CovSplat },\n { covsplat: typeof CovSplat }\n>;\n\n// A SplatModifier is a utility class to apply a GsplatModifier to\n// a GsplatGenerator pipeline, caching the combined result for efficiency.\n\nexport class SplatModifier {\n modifier: GsplatModifier;\n cache: Map;\n\n constructor(modifier: GsplatModifier) {\n this.modifier = modifier;\n this.cache = new Map();\n }\n\n apply(generator: GsplatGenerator): GsplatGenerator {\n let modified = this.cache.get(generator);\n if (!modified) {\n modified = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n const { gsplat } = generator.apply({ index });\n return this.modifier.apply({ gsplat });\n },\n );\n this.cache.set(generator, modified);\n }\n return modified;\n }\n}\n\n// A SplatTransformer is a utility class to apply a transform to a Gsplat\n// via a scale, rotation, and translation. Scale is a single float because\n// anisotropic scaling of Gsplats is not supported.\n\nexport class SplatTransformer {\n scale: DynoFloat;\n rotate: DynoVec4;\n translate: DynoVec3;\n\n // Create the dyno uniforms that parameterize the transform, setting them\n // to initial values that are different from any valid transform.\n constructor() {\n this.scale = new DynoFloat({ value: Number.NEGATIVE_INFINITY });\n this.rotate = new DynoVec4({\n value: new THREE.Quaternion(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n this.translate = new DynoVec3({\n value: new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformPos(position, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformDir(dir, {\n rotate: this.rotate,\n });\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyGsplat(gsplat: DynoVal): DynoVal {\n return transformGsplat(gsplat, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const scale = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const position = new THREE.Vector3();\n transform.decompose(position, quaternion, scale);\n const newScale = (scale.x + scale.y + scale.z) / 3;\n\n let updated = false;\n if (newScale !== this.scale.value) {\n this.scale.value = newScale;\n updated = true;\n }\n if (!position.equals(this.translate.value)) {\n this.translate.value.copy(position);\n updated = true;\n }\n if (!quaternion.equals(this.rotate.value)) {\n this.rotate.value.copy(quaternion);\n updated = true;\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\nexport class CovSplatTransformer {\n basis: DynoMat3<\"basis\", THREE.Matrix3>;\n offset: DynoVec3;\n\n constructor() {\n this.basis = new DynoMat3({ value: new THREE.Matrix3() });\n this.offset = new DynoVec3({ value: new THREE.Vector3() });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n const rebased = mul(this.basis, position);\n return add(rebased, this.offset);\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return mul(this.basis, dir);\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyCovSplat(covsplat: DynoVal): DynoVal {\n return new Dyno({\n inTypes: { covsplat: CovSplat, basis: \"mat3\", offset: \"vec3\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covsplat, basis: this.basis, offset: this.offset },\n statements: ({ inputs, outputs }) => {\n const { covsplat, basis, offset } = inputs;\n if (!covsplat || !basis || !offset) {\n return [`${outputs.covsplat}.flags = 0u;`];\n }\n return unindentLines(`\n ${outputs.covsplat}.flags = 0u;\n if (isCovSplatActive(${covsplat}.flags)) {\n ${outputs.covsplat}.flags = ${covsplat}.flags;\n ${outputs.covsplat}.index = ${covsplat}.index;\n ${outputs.covsplat}.rgba = ${covsplat}.rgba;\n\n ${outputs.covsplat}.center = ${basis} * ${covsplat}.center + ${offset};\n \n mat3 cov = mat3(\n ${covsplat}.xxyyzz.x, ${covsplat}.xyxzyz.x, ${covsplat}.xyxzyz.y,\n ${covsplat}.xyxzyz.x, ${covsplat}.xxyyzz.y, ${covsplat}.xyxzyz.z,\n ${covsplat}.xyxzyz.y, ${covsplat}.xyxzyz.z, ${covsplat}.xxyyzz.z\n );\n cov = ${basis} * cov * transpose(${basis});\n ${outputs.covsplat}.xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n ${outputs.covsplat}.xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n `);\n },\n }).outputs.covsplat;\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const basis = new THREE.Matrix3().setFromMatrix4(transform);\n const offset = new THREE.Vector3().setFromMatrixColumn(transform, 3);\n\n const updated =\n !basis.equals(this.basis.value) || !offset.equals(this.offset.value);\n if (updated) {\n this.basis.value.copy(basis);\n this.offset.value.copy(offset);\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\n// SplatGenerator is an Object3D that can be placed anywhere in the scene\n// to generate Gsplats into the world for SparkRenderer. All Gsplats from\n// SplatGenerators across the scene will be accumulated into a single\n// SplatAccumulator, which are sorted and rendered together.\n//\n// Each SplatGenerator has two main properties:\n// - numSplats: the number of Gsplats to generate\n// - generator: a GsplatGenerator dyno program that maps a splat index\n// to a Gsplat's properties\n// Each of these properties can be changed at anytime, however changing\n// numSplats means we no longer have a correspondence between Gsplats\n// in successive frames, meaning we can't reuse the previous Gsplat sort\n// order. Similarly, changing the generator requires re-generating the\n// shader program, which will trigger a GPU shader compilation the first\n// time (possibly a perceptible \"hickup\" in the framerate) but is cached\n// subsequence times if the generator is the same as one that was used previously.\n//\n// A SplatGenerator also has a custom frameUpdate function that is called\n// on each execution, allowing you to update uniforms or other parameters that\n// affect the generation. If the Gsplats are changed, you must call\n// updateVersion() (alternatively, set needsUpdate to true) to trigger a\n// re-generation of the Gsplats for this SplatGenerator.\n\nexport interface FrameUpdateContext {\n renderer: THREE.WebGLRenderer;\n object: SplatGenerator;\n time: number;\n deltaTime: number;\n viewToWorld: THREE.Matrix4;\n camera?: THREE.Camera;\n renderSize?: THREE.Vector2;\n globalEdits: SplatEdit[];\n lodIndices?: { numSplats: number; texture: THREE.DataTexture };\n}\n\nexport class SplatGenerator extends THREE.Object3D {\n numSplats: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n generatorError?: unknown;\n covGeneratorError?: unknown;\n frameUpdate?: (context: FrameUpdateContext) => void;\n version: number;\n mappingVersion: number;\n\n constructor({\n numSplats,\n generator,\n covGenerator,\n construct,\n update,\n }: {\n numSplats?: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n construct?: (object: SplatGenerator) => {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n numSplats?: number;\n frameUpdate?: (context: FrameUpdateContext) => void;\n };\n update?: (context: FrameUpdateContext) => void;\n }) {\n super();\n\n this.numSplats = numSplats ?? 0;\n this.generator = generator;\n this.covGenerator = covGenerator;\n this.frameUpdate = update;\n this.version = 0;\n this.mappingVersion = 0;\n\n if (construct) {\n const constructed = construct(this);\n // If we returned something, update our properties\n Object.assign(this, constructed);\n }\n }\n\n updateVersion() {\n this.version += 1;\n }\n\n updateMappingVersion() {\n this.mappingVersion += 1;\n this.version += 1;\n }\n\n set needsUpdate(value: boolean) {\n if (value) {\n this.updateVersion();\n }\n }\n}\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\nimport { Readback } from \"./Readback\";\nimport { SplatEdit } from \"./SplatEdit\";\nimport {\n type CovSplatGenerator,\n type GsplatGenerator,\n SplatGenerator,\n} from \"./SplatGenerator\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines\";\nimport {\n type CovSplat,\n Dyno,\n DynoBool,\n DynoProgram,\n DynoProgramTemplate,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n combineCovSplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n gsplatToCovSplat,\n mul,\n outputCovSplat,\n outputCovSplatDepth,\n outputExtCovSplat,\n outputExtendedSplat,\n outputPackedSplat,\n outputSplatDepth,\n splitCovSplat,\n splitGsplat,\n sub,\n unindentLines,\n} from \"./dyno\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, threeMrtArray } from \"./utils\";\n\n// A GeneratorMapping describes a Gsplat range that was generated, including\n// which generator and its version number.\nexport type GeneratorMapping = {\n node: SplatGenerator;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n version: number;\n mappingVersion?: number;\n base: number;\n count: number;\n};\n\nexport class SplatAccumulator {\n time = 0;\n deltaTime = 0;\n viewToWorld = new THREE.Matrix4();\n viewOrigin = new THREE.Vector3();\n viewDirection = new THREE.Vector3();\n static viewCenterUniform = new DynoVec3({ value: new THREE.Vector3() });\n static viewDirUniform = new DynoVec3({ value: new THREE.Vector3() });\n static sortRadialUniform = new DynoBool({ value: true });\n maxSplats = 0;\n numSplats = 0;\n target: THREE.WebGLArrayRenderTarget | null = null;\n mapping: GeneratorMapping[] = [];\n version = -1;\n mappingVersion = -1;\n extSplats: boolean;\n covSplats: boolean;\n readback: Readback | null = null;\n readbackSplats: DynoUsampler2DArray<\"extSplats\", THREE.DataArrayTexture>[] =\n [];\n\n constructor({\n extSplats,\n covSplats,\n }: { extSplats?: boolean; covSplats?: boolean } = {}) {\n if (!threeMrtArray) {\n throw new Error(\"Spark requires THREE.js r179 or above\");\n }\n this.extSplats = extSplats ?? true;\n this.covSplats = covSplats ?? false;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = null;\n }\n }\n\n // Returns a THREE.DataArrayTexture representing the NewSplatAccumulator\n // content as 2 x Uint32x4 data array textures (2048 x 2048 x 2048 in size)\n getTextures(): THREE.DataArrayTexture[] {\n if (this.target) {\n return this.target.textures;\n }\n return SplatAccumulator.emptyTextures;\n }\n\n static emptyTexture = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTextures = (() => {\n return [SplatAccumulator.emptyTexture, SplatAccumulator.emptyTexture];\n })();\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Ensures our NewSplatAccumulator.target render target has enough space\n // to generate maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate({ maxSplats }: { maxSplats: number }) {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n this.dispose();\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n format: THREE.RGBAIntegerFormat,\n type: THREE.UnsignedIntType,\n });\n this.target.scissorTest = true;\n\n if (this.extSplats) {\n const target2 = this.target.texture.clone();\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target2, target3];\n } else {\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target3];\n }\n\n return true;\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(\n generator?: GsplatGenerator,\n covGenerator?: CovSplatGenerator,\n ) {\n const theGenerator = generator ?? covGenerator;\n if (!theGenerator) {\n throw new Error(\"Either generator or covGenerator must be provided\");\n }\n\n let program = SplatAccumulator.generatorProgram.get(theGenerator);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n if (generator) {\n generator.inputs.index = index;\n }\n if (covGenerator) {\n covGenerator.inputs.index = index;\n }\n\n if (this.extSplats) {\n if (!this.covSplats) {\n if (generator) {\n const output = outputExtendedSplat(generator.outputs.gsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n if (covGenerator) {\n const output = outputExtCovSplat(covGenerator.outputs.covsplat);\n roots.push(output);\n } else if (generator) {\n const covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n const output = outputExtCovSplat(covsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n }\n } else {\n if (!this.covSplats) {\n if (generator) {\n const centerSubView = sub(\n splitGsplat(generator.outputs.gsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n // Use expanded LoD opacity encoding\n const halfAlpha = mul(\n splitGsplat(generator.outputs.gsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n const gsplat = combineGsplat({\n gsplat: generator.outputs.gsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputPackedSplat(\n gsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n let covsplat: DynoVal;\n if (covGenerator) {\n covsplat = covGenerator.outputs.covsplat;\n } else if (generator) {\n covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n const centerSubView = sub(\n splitCovSplat(covsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n const halfAlpha = mul(\n splitCovSplat(covsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n covsplat = combineCovSplat({\n covsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputCovSplat(\n covsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n }\n if (!generator) {\n throw new Error(\"Generator must be provided\");\n }\n }\n if (generator) {\n const outputDepth = outputSplatDepth(\n generator.outputs.gsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n if (covGenerator) {\n const outputDepth = outputCovSplatDepth(\n covGenerator.outputs.covsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n return undefined;\n },\n );\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: {},\n template: this.extSplats\n ? SplatAccumulator.programExtTemplate\n : SplatAccumulator.programTemplate,\n // consoleLog: true,\n });\n\n SplatAccumulator.generatorProgram.set(theGenerator, program);\n }\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n\n const material = program.prepareMaterial();\n SplatAccumulator.fullScreenQuad.material = material;\n return { program, material };\n }\n\n static programExtTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4x2Vec4Template,\n );\n static programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Vec4Template,\n );\n static generatorProgram = new WeakMap<\n GsplatGenerator | CovSplatGenerator,\n DynoProgram\n >();\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n generate({\n generator,\n covGenerator,\n base,\n count,\n renderer,\n }: {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureGenerate\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(\n generator,\n covGenerator,\n );\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n SplatAccumulator.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial,\n renderSize,\n previous,\n lodInstances,\n }: {\n renderer: THREE.WebGLRenderer;\n scene: THREE.Scene;\n time: number;\n camera: THREE.Camera;\n sortRadial: boolean;\n renderSize: THREE.Vector2;\n previous: SplatAccumulator;\n lodInstances?: Map<\n SplatMesh,\n { numSplats: number; texture: THREE.DataTexture }\n >;\n }) {\n this.viewToWorld.copy(camera.matrixWorld);\n camera.getWorldPosition(this.viewOrigin);\n camera.getWorldDirection(this.viewDirection);\n SplatAccumulator.viewCenterUniform.value.copy(this.viewOrigin);\n SplatAccumulator.viewDirUniform.value.copy(this.viewDirection);\n SplatAccumulator.sortRadialUniform.value = sortRadial;\n\n this.time = time;\n this.deltaTime = time - previous.time;\n\n const allGenerators: SplatGenerator[] = [];\n scene.traverse((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n allGenerators.push(node);\n }\n }\n });\n\n const globalEditsSet = new Set();\n scene.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n let ancestor = node.parent;\n while (ancestor != null && !(ancestor instanceof SplatMesh)) {\n ancestor = ancestor.parent;\n }\n if (ancestor == null) {\n // Not part of a SplatMesh so it's a global edit\n globalEditsSet.add(node);\n }\n }\n });\n const globalEdits = Array.from(globalEditsSet);\n\n for (const object of allGenerators) {\n try {\n object.frameUpdate?.({\n renderer,\n object,\n time: this.time,\n deltaTime: this.deltaTime,\n viewToWorld: this.viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices:\n lodInstances && object instanceof SplatMesh\n ? lodInstances.get(object)\n : undefined,\n });\n } catch (error) {\n console.error(\"frameUpdate error\", error);\n object.generator = undefined;\n object.covGenerator = undefined;\n object.generatorError = error;\n }\n }\n\n const visibleGenerators: SplatGenerator[] = [];\n scene.traverseVisible((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n visibleGenerators.push(node);\n }\n }\n });\n\n const splatCounts = visibleGenerators.map(\n (generator) => generator.numSplats,\n );\n const { maxSplats, mapping: baseCounts } =\n this.generateMapping(splatCounts);\n\n const previousMappings = previous.mapping.reduce((mappings, mapping) => {\n mappings.set(mapping.node, mapping);\n return mappings;\n }, new Map());\n\n this.mapping = [];\n this.numSplats = 0;\n\n baseCounts.forEach(({ base, count }, index) => {\n const node = visibleGenerators[index];\n const previousNode = previousMappings.get(node);\n if (previousNode && previousNode.count !== node.numSplats) {\n node.updateMappingVersion();\n }\n\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n const { version, mappingVersion } = node;\n this.mapping.push({\n node,\n generator,\n covGenerator,\n version,\n mappingVersion,\n base,\n count,\n });\n this.numSplats = Math.max(this.numSplats, base + count);\n }\n });\n const { splatsUpdated, mappingUpdated } = previous.checkVersions(\n this.mapping,\n );\n this.version = previous.version + (splatsUpdated ? 1 : 0);\n this.mappingVersion = previous.mappingVersion + (mappingUpdated ? 1 : 0);\n\n return {\n sameMapping: !mappingUpdated,\n version: this.version,\n mappingVersion: this.mappingVersion,\n visibleGenerators,\n generate: () => {\n this.ensureGenerate({ maxSplats });\n\n for (const { node, base, count } of this.mapping) {\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n this.generate({ generator, covGenerator, base, count, renderer });\n }\n }\n },\n readback: async () => {\n const textures = this.getTextures();\n if (this.readbackSplats.length === 0) {\n this.readbackSplats = [\n new DynoUsampler2DArray({ value: textures[0], key: \"extSplats\" }),\n new DynoUsampler2DArray({ value: textures[1], key: \"extSplats\" }),\n ];\n }\n this.readbackSplats[0].value = textures[0];\n this.readbackSplats[1].value = textures[1];\n\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n const readback = this.readback;\n const words = this.extSplats ? 8 : 4;\n const array = readback.ensureBuffer(\n this.numSplats * words,\n new Uint32Array(0),\n );\n\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n const rgba8 = new Dyno({\n inTypes: {\n index: \"int\",\n extSplats1: \"usampler2DArray\",\n extSplats2: \"usampler2DArray\",\n },\n outTypes: { rgba8: \"vec4\" },\n inputs: {\n index,\n extSplats1: this.readbackSplats[0],\n extSplats2: this.readbackSplats[1],\n },\n statements: ({ inputs, outputs }) => {\n if (this.extSplats) {\n return unindentLines(`\n int indexDiv8 = ${inputs.index} >> 3;\n ivec3 coord = splatTexCoord(indexDiv8);\n uvec4 packedData;\n if ((${inputs.index} & 4) == 0) {\n packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n } else {\n packedData = texelFetch(${inputs.extSplats2}, coord, 0);\n }\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n }\n return unindentLines(`\n int indexDiv4 = ${inputs.index} >> 2;\n ivec3 coord = splatTexCoord(indexDiv4);\n uvec4 packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n },\n }).outputs.rgba8;\n return { rgba8 };\n },\n );\n\n return await readback.renderReadback({\n reader,\n count: this.numSplats * words,\n renderer,\n readback: array,\n });\n },\n };\n }\n\n // Check if this accumulator has exactly the same generator mapping as\n // the previous one. If so, we can reuse the Gsplat sort order.\n checkVersions(otherMapping: GeneratorMapping[]) {\n if (this.mapping.length !== otherMapping.length) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const mappingUpdated = this.mapping.some((item, i) => {\n const other = otherMapping[i];\n return (\n item.node !== other.node ||\n item.base !== other.base ||\n item.count !== other.count ||\n item.mappingVersion !== other.mappingVersion\n );\n });\n if (mappingUpdated) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const splatsUpdated = this.mapping.some((item, i) => {\n return item.version !== otherMapping[i].version;\n });\n return { splatsUpdated, mappingUpdated };\n }\n}\n","import * as THREE from \"three\";\n\n// SplatGeometry is an internal class used by SparkRenderer to render a collection\n// of Gsplats in a single draw call by extending THREE.InstancedBufferGeometry.\n// Each Gsplat is drawn as two triangles, with the order of the Gsplats determined\n// by a texture lookup via gl_InstanceID.\n\nexport class SplatGeometry extends THREE.InstancedBufferGeometry {\n constructor() {\n super();\n this.setAttribute(\"position\", new THREE.BufferAttribute(QUAD_VERTICES, 3));\n this.setIndex(new THREE.BufferAttribute(QUAD_INDICES, 1));\n }\n}\n\n// Each instance draws to triangles covering a quad over coords (-1,-1,0)..(1,1,0)\nconst QUAD_VERTICES = new Float32Array([\n -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0,\n]);\n\nconst QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]);\n","import * as THREE from \"three\";\nimport {\n ExtSplats,\n PackedSplats,\n PagedSplats,\n Readback,\n type SplatGenerator,\n SplatMesh,\n SplatPager,\n} from \".\";\nimport { SplatAccumulator } from \"./SplatAccumulator\";\nimport { SplatGeometry } from \"./SplatGeometry\";\nimport { SplatWorker } from \"./SplatWorker\";\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { getShaders } from \"./shaders\";\nimport {\n cloneClock,\n isAndroid,\n isIos,\n isMobile,\n isOculus,\n isVisionPro,\n} from \"./utils\";\n\nexport interface SparkRendererOptions {\n /**\n * Pass in your THREE.WebGLRenderer instance so Spark can perform work\n * outside the usual render loop. Should be created with antialias: false\n * (default setting) as WebGL anti-aliasing doesn't improve Gaussian Splatting\n * rendering and significantly reduces performance.\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Callback function to be called when SparkRenderer needs to re-render,\n * for example when splat sort order or LoD updates complete.\n */\n onDirty?: () => void;\n /**\n * Whether to use premultiplied alpha when accumulating splat RGB\n * @default true\n */\n premultipliedAlpha?: boolean;\n /**\n * Whether to encode Gsplat with linear RGB (for environment mapping)\n * @default false\n */\n encodeLinear?: boolean;\n /**\n * Pass in a THREE.Clock to synchronize time-based effects across different\n * systems. Alternatively, you can set the property time directly.\n * (default: new THREE.Clock)\n */\n clock?: THREE.Clock;\n /**\n * Controls whether to check and automatically update Gsplat collection\n * each frame render.\n * @default true\n */\n autoUpdate?: boolean;\n /**\n * Controls whether to update the Gsplats before or after rendering. For WebXR\n * this is set to false in order to complete rendering as soon as possible.\n * @default true (if not WebXR)\n */\n preUpdate?: boolean;\n /**\n * Maximum standard deviations from the center to render Gaussians. Values\n * Math.sqrt(4)..Math.sqrt(9) produce acceptable results and can be tweaked for\n * performance.\n * @default Math.sqrt(8)\n */\n maxStdDev?: number;\n /*\n **\n * Minimum pixel radius for splat rendering.\n * @default 0.0\n */\n minPixelRadius?: number;\n /**\n * Maximum pixel radius for splat rendering.\n * @default 512.0\n */\n maxPixelRadius?: number;\n /**\n * Whether to use extended Gsplat encoding for intermediary accumulator splats.\n * @default false\n */\n accumExtSplats?: boolean;\n /**\n * Whether to use covariance Gsplat encoding for intermediary splats.\n * @default false\n */\n covSplats?: boolean;\n /**\n * Minimum alpha value for splat rendering.\n * @default 0.5 * (1.0 / 255.0)\n */\n minAlpha?: number;\n /**\n * Enable 2D Gaussian splatting rendering ability. When this mode is enabled,\n * any scale x/y/z component that is exactly 0 (minimum quantized value) results\n * in the other two non-0 axis being interpreted as an oriented 2D Gaussian Splat,\n * rather instead of the usual projected 3DGS Z-slice. When reading PLY files,\n * scale values less than e^-30 will be interpreted as 0.\n * @default false\n */\n enable2DGS?: boolean;\n /**\n * Enable alternative ray-splat max response evaluation, used by 3DGUT (unscented transform),\n * 3DGRT, and HTGS.\n * @default false\n */\n // enableRayEval?: boolean;\n /**\n * Scalar value to add to 2D splat covariance diagonal, effectively blurring +\n * enlarging splats. In scenes trained without the Gsplat anti-aliasing tweak\n * this value was typically 0.3, but with anti-aliasing it is 0.0\n * @default 0.0\n */\n preBlurAmount?: number;\n /**\n * Scalar value to add to 2D splat covarianve diagonal, with opacity adjustment\n * to correctly account for \"blurring\" when anti-aliasing. Typically 0.3\n * (equivalent to approx 0.5 pixel radius) in scenes trained with anti-aliasing.\n */\n blurAmount?: number;\n /**\n * Depth-of-field distance to focal plane\n */\n focalDistance?: number;\n /**\n * Full-width angle of aperture opening (in radians), 0.0 to disable\n * @default 0.0\n */\n apertureAngle?: number;\n /**\n * Modulate Gaussian kernel falloff. 0 means \"no falloff, flat shading\",\n * while 1 is the normal Gaussian kernel.\n * @default 1.0\n */\n falloff?: number;\n /**\n * X/Y clipping boundary factor for Gsplat centers against view frustum.\n * 1.0 clips any centers that are exactly out of bounds, while 1.4 clips\n * centers that are 40% beyond the bounds.\n * @default 1.4\n */\n clipXY?: number;\n /**\n * Parameter to adjust projected splat scale calculation to match other renderers,\n * similar to the same parameter in the MKellogg 3DGS renderer. Higher values will\n * tend to sharpen the splats. A value 2.0 can be used to match the behavior of\n * the PlayCanvas renderer.\n * @default 1.0\n */\n focalAdjustment?: number;\n /**\n * Whether to sort splats radially (geometric distance) from the viewpoint (true)\n * or by Z-depth (false). Most scenes are trained with the Z-depth `sort `metric\n * and will render more accurately at certain viewpoints. However, radial sorting\n * is more stable under viewpoint rotations.\n * @default true\n */\n sortRadial?: boolean;\n /**\n * Minimum interval between sort calls in milliseconds.\n * @default 0\n */\n minSortIntervalMs?: number;\n /*\n * Flag to control whether LoD is enabled. @default true\n */\n enableLod?: boolean;\n /**\n * Whether to drive LOD updates (compute lodInstances, update pager, etc.).\n * Set to false to use LOD instances from another renderer without driving updates.\n * Only has effect if enableLod is true.\n * @default true (if enableLod is true)\n */\n enableDriveLod?: boolean;\n /**\n * Whether to enable page fetching for LoD.\n * @default true\n */\n enableLodFetching?: boolean;\n /**\n * Set the target # splats for LoD. If this isn't set then default base LoD splat\n * counts will apply: 500K-750K for WebXR, 1-1.5M for mobile, and 2.5M for desktop.\n * @default 500K-2500K depending on platform\n */\n lodSplatCount?: number;\n /**\n * Scale factor for target # splats for LoD. 2.0 means 2x the base LoD splat count.\n * This is the easiest LoD parameter to adjust and will scale detail appropriately\n * for the platform.\n * @default 1.0\n */\n lodSplatScale?: number;\n /**\n * Determines the minimum screen pixel size of LoD splats. The default 1.0 means\n * the splat LoD tree will pick splats that are no smaller than 1 pixel in size.\n * Setting this to a higher value as high as 5.0 will often be indistinguishable\n * but will avoid wasting rendering capacity on tiny splats.\n * @default 1.0\n */\n lodRenderScale?: number;\n /**\n * Inflate LoD splats to ensure opacity stays <= 1.0, producing a softer appearance.\n * @default false\n */\n lodInflate?: boolean;\n /**\n * Whether to use extended Gsplat encoding for paged splats, useful for eliminating\n * quantization artifacts from splat scenes with large internal position coordinates.\n * @default false\n */\n pagedExtSplats?: boolean;\n /**\n * Allocation size of paged splats. This must be a multiple of the page size (65536).\n * @default 16777216 (256 * 65536) for desktop, 6291456 for iOS, 8,388,608 for other mobile\n */\n maxPagedSplats?: number;\n /**\n * Number of parallel chunk fetchers for LoD. These are run within a shared pool\n * of 4 background WebWorker threads, so setting it above 4 will not have any\n * effect. Setting it 3 leaves one spare worker for other loading/decoding tasks.\n * @default 3\n */\n numLodFetchers?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with no foveation applied (full resolution, foveate=1.0). Set to 0 to disable.\n * @default 90.0\n */\n coneFov0?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with reduced resolution specified by `coneFoveate`. Foveation will be applied\n * smoothly from 1.0 down to `coneFoveate` as you move outward from\n * `coneFov0` to `coneFov`. Set to 0 to disable.\n * @default 120.0\n */\n coneFov?: number;\n /**\n * Foveation scale to apply to LoD splats at the edge of coneFov. Foveation will\n * be applied smoothly from `coneFoveate` down to `behindFoveate` as you move\n * outward from `coneFov` to 180 degrees (behind the viewer).\n * @default 0.4\n */\n coneFoveate?: number;\n /**\n * Foveation scale to apply to LoD splats behind the viewer. Setting this to 0.1\n * for example will result in splats 10x larger than inside the viewing frustum.\n * @default 0.2\n */\n behindFoveate?: number;\n /**\n * How many LoD splats to generate for raycasting\n * @default 10000-25000 iff default canvas target is used\n */\n lodRaycast?: number;\n lodRaycastIntervalMs?: number;\n /**\n * Configures an offline render target for the SparkRenderer (as opposed to\n * rendering to the canvas). This is useful for rendering environment maps,\n * additional viewpoints, or video frame rendering.\n * @default undefined\n */\n target?: {\n /**\n * Width of the render target in pixels.\n */\n width: number;\n /**\n * Height of the render target in pixels.\n */\n height: number;\n /**\n * If you want to be able to render a scene that depends on this target's\n * output (for example, a recursive viewport), set this to true to enable\n * double buffering.\n * @default false\n */\n doubleBuffer?: boolean;\n /**\n * Super-sampling factor for the render target. Values 1-4 are supported.\n * Note that re-sampling back down to .width x .height is done on the CPU\n * with simple averaging only when calling readTarget().\n * @default 1\n */\n superXY?: number;\n } & THREE.RenderTargetOptions;\n /**\n * Extra uniform values to pass to the shader.\n * @default undefined = no extra uniforms\n */\n extraUniforms?: Record;\n /**\n * Replace the default `splatVertex.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatVertex.glsl` shader\n */\n vertexShader?: string;\n /**\n * Replace the default `splatFragment.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatFragment.glsl` shader\n */\n fragmentShader?: string;\n /**\n * Set the splat shader material to be transparent which determines if the\n * splats are rendered during the first opaque THREE.js render pass or the\n * second transparent render pass.\n * @default undefined = true\n */\n transparent?: boolean;\n /**\n * Set the splat shader material to enable depth testing which determines if the\n * splats respect the Z depth buffer and blend with other opaque objects in the scene.\n * @default undefined = true\n */\n depthTest?: boolean;\n /**\n * Set the splat shader material to enable depth writing which determines if the\n * splats write to the Z depth buffer. Note that enabling this may produce\n * undesirable results because most of the Gsplat is transparent.\n * @default undefined = false\n */\n depthWrite?: boolean;\n}\n\nexport class SparkRenderer extends THREE.Mesh {\n readonly renderer: THREE.WebGLRenderer;\n readonly material: THREE.ShaderMaterial;\n readonly uniforms: ReturnType;\n\n autoUpdate: boolean;\n preUpdate: boolean;\n static sparkOverride?: SparkRenderer;\n\n renderSize = new THREE.Vector2();\n maxStdDev: number;\n minPixelRadius: number;\n maxPixelRadius: number;\n accumExtSplats: boolean;\n covSplats: boolean;\n minAlpha: number;\n enable2DGS: boolean;\n // enableRayEval: boolean;\n preBlurAmount: number;\n blurAmount: number;\n focalDistance: number;\n apertureAngle: number;\n falloff: number;\n clipXY: number;\n focalAdjustment: number;\n encodeLinear: boolean;\n\n sortRadial: boolean;\n minSortIntervalMs: number;\n\n clock: THREE.Clock;\n time?: number;\n lastFrame = -1;\n updateTimeoutId = -1;\n onDirty?: () => void;\n dirty: boolean;\n\n orderingTexture: THREE.DataTexture | null = null;\n maxSplats = 0;\n activeSplats = 0;\n\n display: SplatAccumulator;\n current: SplatAccumulator;\n accumulators: SplatAccumulator[] = [];\n\n sorting = false;\n sortDirty = false;\n lastSortTime = 0;\n sortWorker: SplatWorker | null = null;\n sortTimeoutId = -1;\n sortedCenter = new THREE.Vector3().setScalar(Number.NEGATIVE_INFINITY);\n sortedDir = new THREE.Vector3().setScalar(0);\n readback32 = new Uint32Array(0);\n\n enableLod: boolean;\n enableDriveLod: boolean;\n enableLodFetching: boolean;\n lodSplatCount?: number;\n lodSplatScale: number;\n lodRenderScale: number;\n lodInflate: boolean;\n pagedExtSplats: boolean;\n maxPagedSplats: number;\n numLodFetchers: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n\n lodRaycast?: number;\n lodRaycastIntervalMs: number;\n lastLodRaycastTime = 0;\n\n lodWorker: SplatWorker | null = null;\n lodMeshes: { mesh: SplatMesh; version: number }[] = [];\n lodDirty = false;\n lodIds: Map<\n PackedSplats | ExtSplats | PagedSplats,\n { lodId: number; lastTouched: number; rootPage?: number }\n > = new Map();\n lodIdToSplats: Map =\n new Map();\n lodInitQueue: (PackedSplats | ExtSplats | PagedSplats)[] = [];\n lastLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n currentLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n lodPosOverride?: THREE.Vector3;\n lodQuatOverride?: THREE.Quaternion;\n lodInstances: Map<\n SplatMesh,\n {\n lodId: number;\n numSplats: number;\n indices: Uint32Array;\n texture: THREE.DataTexture;\n }\n > = new Map();\n lodUpdates: {\n lodId: number;\n pageBase: number;\n chunkBase: number;\n count: number;\n lodTreeData?: Uint32Array;\n }[] = [];\n lastTraverseTime = 0;\n lastPixelLimit?: number;\n\n pager?: SplatPager;\n pagerId = 0;\n // prefetchCameras: THREE.Camera[] = [];\n // prefetchLodScale = 1.0;\n // prefetchMeshesCache: SplatMesh[] = [];\n // prefetchMeshesCacheScene?: THREE.Scene;\n\n target?: THREE.WebGLRenderTarget;\n backTarget?: THREE.WebGLRenderTarget;\n superPixels?: Uint8Array;\n targetPixels?: Uint8Array;\n superXY = 1;\n\n flushAfterGenerate = false;\n flushAfterRead = false;\n readPause = 1;\n sortPause = 0;\n sortDelay = 0;\n\n constructor(options: SparkRendererOptions) {\n if (!options) {\n throw new Error(\"SparkRenderer options are required\");\n }\n if (!options.renderer) {\n throw new Error(\"renderer is required in SparkRenderer options\");\n }\n\n const uniforms = SparkRenderer.makeUniforms();\n Object.assign(uniforms, options.extraUniforms ?? {});\n\n const shaders = getShaders();\n const premultipliedAlpha = options.premultipliedAlpha ?? true;\n const geometry = new SplatGeometry();\n const material = new THREE.ShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: options.vertexShader ?? shaders.splatVertex,\n fragmentShader: options.fragmentShader ?? shaders.splatFragment,\n uniforms,\n premultipliedAlpha,\n transparent: options.transparent ?? true,\n depthTest: options.depthTest ?? true,\n depthWrite: options.depthWrite ?? false,\n side: THREE.DoubleSide,\n allowOverride: false,\n });\n\n super(geometry, material);\n this.material = material;\n this.uniforms = uniforms;\n // Disable frustum culling because we want to always draw them all\n // and cull Gsplats individually in the shader\n this.frustumCulled = false;\n\n // By default SparkRenderer will only render for layer 0\n // this.layers.enableAll();\n\n // sparkRendererInstance = this;\n this.renderer = options.renderer;\n this.onDirty = options.onDirty;\n this.dirty = true;\n this.autoUpdate = options.autoUpdate ?? true;\n this.preUpdate = options.preUpdate ?? true;\n\n this.maxStdDev = options.maxStdDev ?? Math.sqrt(8.0);\n this.minPixelRadius = options.minPixelRadius ?? 0.0; //1.6;\n this.maxPixelRadius = options.maxPixelRadius ?? 512.0;\n this.accumExtSplats = options.accumExtSplats ?? false;\n this.covSplats = options.covSplats ?? false;\n this.minAlpha = options.minAlpha ?? 0.5 * (1.0 / 255.0);\n this.enable2DGS = options.enable2DGS ?? false;\n // this.enableRayEval = options.enableRayEval ?? false;\n this.preBlurAmount = options.preBlurAmount ?? 0.0;\n this.blurAmount = options.blurAmount ?? 0.3;\n this.focalDistance = options.focalDistance ?? 0.0;\n this.apertureAngle = options.apertureAngle ?? 0.0;\n this.falloff = options.falloff ?? 1.0;\n this.clipXY = options.clipXY ?? 1.4;\n this.focalAdjustment = options.focalAdjustment ?? 1.0;\n this.encodeLinear = options.encodeLinear ?? false;\n\n this.sortRadial = options.sortRadial ?? true;\n this.minSortIntervalMs = options.minSortIntervalMs ?? 0;\n\n this.enableLod = options.enableLod ?? true;\n // enableDriveLod defaults to true if enableLod is true, false otherwise\n this.enableDriveLod = options.enableDriveLod ?? this.enableLod;\n this.enableLodFetching = options.enableLodFetching ?? true;\n this.lodSplatCount = options.lodSplatCount;\n this.lodSplatScale = options.lodSplatScale ?? 1.0;\n this.lodRenderScale = options.lodRenderScale ?? 1.0;\n this.lodInflate = options.lodInflate ?? false;\n this.pagedExtSplats = options.pagedExtSplats ?? false;\n const defaultPages = isMobile() ? (isIos() ? 96 : 128) : 256;\n this.maxPagedSplats = options.maxPagedSplats ?? defaultPages * 65536;\n this.numLodFetchers = options.numLodFetchers ?? 3;\n this.behindFoveate = options.behindFoveate ?? 0.2;\n this.coneFov0 = options.coneFov0 ?? 90.0;\n this.coneFov = options.coneFov ?? 120.0;\n this.coneFoveate = options.coneFoveate ?? 0.4;\n\n this.lodRaycast =\n options.lodRaycast === undefined\n ? isMobile()\n ? 10000\n : 25000\n : options.lodRaycast;\n this.lodRaycastIntervalMs = options.lodRaycastIntervalMs ?? 500;\n\n this.clock = options.clock ? cloneClock(options.clock) : new THREE.Clock();\n\n const accumulatorOptions = {\n extSplats: this.accumExtSplats,\n covSplats: this.covSplats,\n };\n this.display = new SplatAccumulator(accumulatorOptions);\n this.current = this.display;\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n\n if (options.target) {\n const {\n width,\n height,\n doubleBuffer,\n superXY: origSuperXY,\n ...origTargetOptions\n } = options.target;\n const superXY = Math.max(1, Math.min(4, origSuperXY ?? 1));\n if (width * superXY > 8192 || height * superXY > 8192) {\n throw new Error(\"Target size too large\");\n }\n this.superXY = superXY;\n\n const superWidth = width * superXY;\n const superHeight = height * superXY;\n const targetOptions: THREE.RenderTargetOptions = {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n ...origTargetOptions,\n };\n\n this.target = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n if (doubleBuffer) {\n this.backTarget = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n }\n this.encodeLinear = options.encodeLinear ?? true;\n }\n }\n\n static makeUniforms() {\n const uniforms = {\n // // number of active splats to render\n // numSplats: { value: 0 },\n // Size of render viewport in pixels\n renderSize: { value: new THREE.Vector2() },\n // Near and far plane distances\n near: { value: 0.1 },\n far: { value: 1000.0 },\n // SplatAccumulator to view transformation quaternion\n renderToViewQuat: { value: new THREE.Quaternion() },\n // SplatAccumulator to view transformation translation\n renderToViewPos: { value: new THREE.Vector3() },\n renderToViewBasis: { value: new THREE.Matrix3() },\n renderToViewOffset: { value: new THREE.Vector3() },\n // Maximum distance (in stddevs) from Gsplat center to render\n maxStdDev: { value: 1.0 },\n // Minimum pixel radius for splat rendering\n minPixelRadius: { value: 0.0 },\n // Maximum pixel radius for splat rendering\n maxPixelRadius: { value: 512.0 },\n // Minimum alpha value for splat rendering\n minAlpha: { value: 0.5 * (1.0 / 255.0) },\n // Enable interpreting 0-thickness Gsplats as 2DGS\n enable2DGS: { value: false },\n // Enable ray-splat max response evaluation\n // enableRayEval: { value: false },\n // Inflate LoD splats so that opacity <= 1.0\n lodInflate: { value: false },\n // Add to projected 2D splat covariance diagonal (thickens and brightens)\n preBlurAmount: { value: 0.0 },\n // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing)\n blurAmount: { value: 0.3 },\n // Depth-of-field distance to focal plane\n focalDistance: { value: 0.0 },\n // Full-width angle of aperture opening (in radians)\n apertureAngle: { value: 0.0 },\n // Modulate Gaussian kernal falloff. 0 means \"no falloff, flat shading\",\n // 1 is normal e^-x^2 falloff.\n falloff: { value: 1.0 },\n // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds\n clipXY: { value: 1.4 },\n // Debug renderSize scale factor\n focalAdjustment: { value: 1.0 },\n // Whether to encode Gsplat with linear RGB (for environment mapping)\n encodeLinear: { value: false },\n // Back-to-front sort ordering of splat indices\n ordering: { type: \"t\", value: SparkRenderer.emptyOrdering },\n enableExtSplats: { value: false },\n enableCovSplats: { value: false },\n // Gsplat collection to render\n extSplats: { type: \"t\", value: SplatAccumulator.emptyTexture },\n extSplats2: { type: \"t\", value: SplatAccumulator.emptyTexture },\n // Time in seconds for time-based effects\n time: { value: 0 },\n // Delta time in seconds since last frame\n deltaTime: { value: 0 },\n // Debug flag that alternates each frame\n debugFlag: { value: false },\n };\n return uniforms;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n if (this.backTarget) {\n this.backTarget.dispose();\n this.backTarget = undefined;\n }\n if (this.orderingTexture) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n\n const accumulators = new Set();\n accumulators.add(this.display);\n accumulators.add(this.current);\n for (const accumulator of this.accumulators) {\n accumulators.add(accumulator);\n }\n for (const accumulator of accumulators) {\n accumulator.dispose();\n }\n\n const instances = this.lodInstances.values();\n this.lodInstances.clear();\n for (const instance of instances) {\n instance.texture.dispose();\n }\n\n if (this.sortWorker) {\n this.sortWorker.dispose();\n this.sortWorker = null;\n }\n if (this.lodWorker) {\n this.lodWorker.dispose();\n this.lodWorker = null;\n }\n if (this.pager) {\n this.pager.dispose();\n this.pager = undefined;\n }\n }\n\n setDirty() {\n if (!this.dirty) {\n this.dirty = true;\n this.onDirty?.();\n }\n }\n\n onBeforeRender(\n renderer: THREE.WebGLRenderer,\n scene: THREE.Scene,\n camera: THREE.Camera,\n ) {\n const spark = SparkRenderer.sparkOverride ?? this;\n\n const frame = renderer.info.render.frame;\n const isNewFrame = frame !== spark.lastFrame;\n spark.lastFrame = frame;\n\n if (spark.target) {\n spark.renderSize.set(spark.target.width, spark.target.height);\n } else {\n const renderSize = renderer.getDrawingBufferSize(spark.renderSize);\n if (renderer.xr.isPresenting) {\n if (renderSize.x === 1 && renderSize.y === 1) {\n // WebXR mode on Apple Vision Pro returns 1x1 when presenting.\n // Use a different means to figure out the render size.\n const baseLayer = renderer.xr.getSession()?.renderState.baseLayer;\n if (baseLayer) {\n renderSize.x = baseLayer.framebufferWidth;\n renderSize.y = baseLayer.framebufferHeight;\n }\n }\n }\n }\n this.uniforms.renderSize.value.copy(spark.renderSize);\n\n const typedCamera = camera as\n | THREE.PerspectiveCamera\n | THREE.OrthographicCamera;\n\n this.uniforms.near.value = typedCamera.near;\n this.uniforms.far.value = typedCamera.far;\n\n const geometry = this.geometry as SplatGeometry;\n geometry.instanceCount = spark.activeSplats;\n\n const accumToWorld = new THREE.Matrix4();\n if (!this.display.extSplats) {\n accumToWorld.makeTranslation(spark.display.viewOrigin);\n }\n const cameraToWorld = camera.matrixWorld.clone();\n const worldToCamera = cameraToWorld.invert();\n const accumToCamera = worldToCamera.multiply(accumToWorld);\n accumToCamera.decompose(\n this.uniforms.renderToViewPos.value,\n this.uniforms.renderToViewQuat.value,\n new THREE.Vector3(),\n );\n this.uniforms.renderToViewBasis.value.setFromMatrix4(accumToCamera);\n\n this.uniforms.maxStdDev.value = spark.maxStdDev;\n this.uniforms.minPixelRadius.value = spark.minPixelRadius;\n this.uniforms.maxPixelRadius.value = spark.maxPixelRadius;\n this.uniforms.minAlpha.value = spark.minAlpha;\n this.uniforms.enable2DGS.value = spark.enable2DGS;\n // this.uniforms.enableRayEval.value = spark.enableRayEval;\n this.uniforms.lodInflate.value = spark.lodInflate;\n this.uniforms.preBlurAmount.value = spark.preBlurAmount;\n this.uniforms.blurAmount.value = spark.blurAmount;\n this.uniforms.focalDistance.value = spark.focalDistance;\n this.uniforms.apertureAngle.value = spark.apertureAngle;\n this.uniforms.falloff.value = spark.falloff;\n this.uniforms.clipXY.value = spark.clipXY;\n this.uniforms.focalAdjustment.value = spark.focalAdjustment;\n this.uniforms.encodeLinear.value = spark.encodeLinear;\n\n this.uniforms.ordering.value =\n spark.orderingTexture ?? SparkRenderer.emptyOrdering;\n this.uniforms.enableExtSplats.value = this.display.extSplats;\n this.uniforms.enableCovSplats.value = this.display.covSplats;\n if (this.display.extSplats) {\n const extSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = extSplats[0];\n this.uniforms.extSplats2.value = extSplats[1];\n } else {\n const packedSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = packedSplats[0];\n this.uniforms.extSplats2.value = packedSplats[0];\n }\n\n this.uniforms.time.value = spark.display.time;\n this.uniforms.deltaTime.value = spark.display.deltaTime;\n // Alternating debug flag that can aid in visual debugging\n this.uniforms.debugFlag.value = (performance.now() / 1000.0) % 2.0 < 1.0;\n\n if (spark.autoUpdate && isNewFrame) {\n const preUpdate = spark.preUpdate && !renderer.xr.isPresenting;\n const useCamera = renderer.xr.isPresenting\n ? renderer.xr.getCamera()\n : camera;\n if (preUpdate) {\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n } else {\n if (spark.updateTimeoutId === -1) {\n spark.updateTimeoutId = setTimeout(() => {\n spark.updateTimeoutId = -1;\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n }, 1);\n }\n }\n }\n\n spark.dirty = false;\n }\n\n clearSplats() {\n this.activeSplats = 0;\n this.display.numSplats = 0;\n this.setDirty();\n }\n\n async update({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }) {\n await this.updateInternal({ scene, camera, autoUpdate: false });\n }\n\n // /**\n // * Provide additional cameras to prefetch paged splat chunks without\n // * affecting main LOD selection.\n // */\n // setPrefetchCameras(cameras?: THREE.Camera[], lodScaleMultiplier = 1.0) {\n // const next = cameras?.filter(Boolean) ?? [];\n // const sameCameras =\n // this.prefetchCameras.length === next.length &&\n // this.prefetchCameras.every((camera, index) => camera === next[index]);\n // if (sameCameras && this.prefetchLodScale === lodScaleMultiplier) {\n // return;\n // }\n // this.prefetchCameras = next;\n // this.prefetchLodScale = lodScaleMultiplier;\n // this.invalidatePrefetchCache();\n // }\n\n // /**\n // * Invalidate the prefetch meshes cache. Call this when SplatMeshes are\n // * added or removed from the scene.\n // */\n // invalidatePrefetchCache() {\n // this.prefetchMeshesCacheScene = undefined;\n // }\n\n private async updateInternal({\n scene,\n camera,\n autoUpdate,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n autoUpdate: boolean;\n }) {\n const renderer = this.renderer;\n const time = this.time ?? this.clock.getElapsedTime();\n\n const center = camera.getWorldPosition(new THREE.Vector3());\n const dir = camera.getWorldDirection(new THREE.Vector3());\n\n const viewChanged =\n center.distanceTo(this.sortedCenter) > 0.001 ||\n dir.dot(this.sortedDir) < 0.999;\n\n const next = this.accumulators.pop();\n if (!next) {\n // Should never happen\n throw new Error(\"No next accumulator\");\n }\n if (next === this.current) {\n // Should never happen\n throw new Error(\n \"Next accumulator is the same as the current accumulator\",\n );\n }\n const { version, mappingVersion, visibleGenerators, generate } =\n next.prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial: this.sortRadial ?? true,\n renderSize: this.renderSize,\n previous: this.current,\n lodInstances: this.enableLod ? this.lodInstances : undefined,\n });\n\n let doUpdate = true;\n const needsUpdate = viewChanged || version !== this.current.version;\n const mappingUpdated = mappingVersion !== this.display.mappingVersion;\n\n if (autoUpdate && !needsUpdate) {\n // Triggered by auto-update but no change\n doUpdate = false;\n }\n\n if (mappingUpdated && this.sorting) {\n // We need to be able to sort the splats because the mapping has changed.\n // Try again next time around.\n doUpdate = false;\n }\n\n if (!doUpdate) {\n // Restore unused accumulator to the free list\n this.accumulators.push(next);\n } else {\n generate();\n\n if (this.flushAfterGenerate) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n if (this.display.mappingVersion === next.mappingVersion) {\n // Same splat mapping so let's display it immediately and\n // reuse the sort order\n this.accumulators.push(this.display);\n this.display = next;\n } else {\n if (this.display !== this.current) {\n // The previous current is not being displayed, so replace it\n this.accumulators.push(this.current);\n }\n }\n\n this.current = next;\n this.sortDirty = true;\n this.setDirty();\n }\n\n if (this.enableDriveLod) {\n this.driveLod({ visibleGenerators, camera, scene });\n }\n await this.driveSort();\n }\n\n private async driveSort() {\n if (this.sorting || !this.sortDirty) {\n return;\n }\n\n if (this.sortTimeoutId !== -1) {\n clearTimeout(this.sortTimeoutId);\n this.sortTimeoutId = -1;\n }\n\n const now = performance.now();\n const nextSortTime = this.lastSortTime\n ? this.lastSortTime + this.minSortIntervalMs\n : now;\n if (now < nextSortTime) {\n this.sortTimeoutId = setTimeout(() => {\n this.sortTimeoutId = -1;\n this.driveSort();\n }, nextSortTime - now);\n return;\n }\n\n this.sorting = true;\n this.sortDirty = false;\n this.lastSortTime = now;\n\n if (this.readPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.readPause));\n }\n\n const current = this.current;\n\n this.sortedCenter.copy(current.viewOrigin);\n this.sortedDir.copy(current.viewDirection);\n\n const { numSplats, maxSplats } = current;\n const rows = Math.max(1, Math.ceil(maxSplats / 16384));\n const orderingMaxSplats = rows * 16384;\n this.maxSplats = Math.max(this.maxSplats, orderingMaxSplats);\n\n const ordering = new Uint32Array(this.maxSplats);\n const readback = Readback.ensureBuffer(maxSplats, this.readback32);\n this.readback32 = readback;\n\n await this.readbackDepth({\n current,\n renderer: this.renderer,\n numSplats,\n readback,\n });\n\n if (this.sortPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortPause));\n }\n\n if (!this.sortWorker) {\n this.sortWorker = new SplatWorker();\n }\n const result = (await this.sortWorker.call(\"sortSplats32\", {\n numSplats,\n readback,\n ordering,\n })) as {\n readback: Uint32Array;\n ordering: Uint32Array;\n activeSplats: number;\n };\n\n if (this.sortDelay > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortDelay));\n }\n\n this.readback32 = result.readback;\n\n this.activeSplats = result.activeSplats;\n\n if (this.orderingTexture) {\n if (rows > this.orderingTexture.image.height) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n }\n\n if (!this.orderingTexture) {\n // console.log(`Allocating orderingTexture: ${4096}x${rows}`);\n const orderingTexture = new THREE.DataTexture(\n result.ordering,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n orderingTexture.internalFormat = \"RGBA32UI\";\n orderingTexture.needsUpdate = true;\n this.orderingTexture = orderingTexture;\n } else {\n const renderer = this.renderer;\n const gl = renderer.getContext() as WebGL2RenderingContext;\n if (!renderer.properties.has(this.orderingTexture)) {\n this.orderingTexture.needsUpdate = true;\n } else {\n const props = renderer.properties.get(this.orderingTexture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"ordering texture not found\");\n }\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n // data,\n result.ordering,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n\n // console.log(`Sorted (${this.minSortIntervalMs}) ${numSplats} splats in ${(performance.now() - now).toFixed(0)} ms`);\n\n if (this.current.mappingVersion === current.mappingVersion) {\n if (this.current.mappingVersion !== this.display.mappingVersion) {\n this.accumulators.push(this.display);\n this.display = this.current;\n }\n }\n this.sorting = false;\n this.setDirty();\n\n this.driveSort();\n }\n\n private ensureLodWorker() {\n if (!this.lodWorker) {\n this.lodWorker = new SplatWorker();\n }\n return this.lodWorker;\n }\n\n defaultSplatTarget() {\n return isOculus()\n ? 500000\n : isVisionPro()\n ? 750000\n : isAndroid()\n ? 1000000\n : isIos()\n ? 1500000\n : 2500000;\n }\n\n private driveLod({\n visibleGenerators,\n camera,\n scene,\n }: {\n visibleGenerators: SplatGenerator[];\n camera: THREE.Camera;\n scene: THREE.Scene;\n }) {\n const defaultSplatCount = this.defaultSplatTarget();\n const splatCount = this.lodSplatCount ?? defaultSplatCount;\n const maxSplats = splatCount * this.lodSplatScale;\n\n let pixelScaleLimit = 0.0;\n if (camera instanceof THREE.PerspectiveCamera) {\n const tanYfov = Math.tan((0.5 * camera.fov * Math.PI) / 180);\n pixelScaleLimit = (2.0 * tanYfov) / this.renderSize.y;\n } else if (camera instanceof THREE.OrthographicCamera) {\n // Effective visible size after zoom\n const viewHeight = (camera.top - camera.bottom) / camera.zoom;\n const viewWidth = (camera.right - camera.left) / camera.zoom;\n // World/view units per pixel (constant with depth for ortho)\n const pxY = viewHeight / Math.max(1, this.renderSize.y);\n const pxX = viewWidth / Math.max(1, this.renderSize.x);\n pixelScaleLimit = Math.min(pxX, pxY);\n }\n\n pixelScaleLimit *= this.lodRenderScale;\n\n const viewPos = new THREE.Vector3();\n const viewQuat = new THREE.Quaternion();\n this.current.viewToWorld.decompose(viewPos, viewQuat, new THREE.Vector3());\n\n if (this.lodPosOverride) {\n viewPos.copy(this.lodPosOverride);\n }\n if (this.lodQuatOverride) {\n viewQuat.copy(this.lodQuatOverride).normalize();\n }\n\n if (this.lastLod) {\n if (\n this.lastLod.pixelScaleLimit !== pixelScaleLimit ||\n this.lastLod.maxSplats !== maxSplats\n ) {\n this.lodDirty = true;\n }\n\n const distance = viewPos.distanceTo(this.lastLod.pos);\n const distanceRamp = Math.max(0.0, 1.0 - distance / 1.0);\n const dot = viewQuat.dot(this.lastLod.quat);\n const quatRamp = Math.max(0.0, 1.0 - (1.0 - dot) / 0.01);\n const similarity = distanceRamp * quatRamp;\n if (similarity < 0.999) {\n this.lodDirty = true;\n }\n }\n\n const lodMeshes = !this.enableLod\n ? []\n : (visibleGenerators.filter((generator) => {\n return (\n generator instanceof SplatMesh &&\n (generator.packedSplats?.lodSplats ||\n generator.extSplats?.lodSplats ||\n generator.paged) &&\n generator.enableLod !== false\n );\n }) as SplatMesh[]);\n const hasPaged = lodMeshes.some((mesh) => mesh.paged);\n\n if (this.lodMeshes.length !== lodMeshes.length) {\n this.lodDirty = true;\n } else {\n if (\n lodMeshes.some(\n (m, i) =>\n m !== this.lodMeshes[i].mesh ||\n m.version > this.lodMeshes[i].version,\n )\n ) {\n this.lodDirty = true;\n }\n }\n\n this.lodMeshes = lodMeshes.map((mesh) => ({\n mesh,\n version: mesh.version + 1,\n }));\n\n // if (!this.lodDirty && lodMeshes.length === 0 && this.lodIds.size === 0) {\n // return;\n // }\n\n this.lodInitQueue = [];\n const now = performance.now();\n\n for (const mesh of lodMeshes) {\n const splats =\n mesh.packedSplats?.lodSplats ?? mesh.extSplats?.lodSplats ?? mesh.paged;\n if (splats) {\n const record = this.lodIds.get(splats);\n if (record) {\n record.lastTouched = now;\n } else {\n this.lodInitQueue.push(splats);\n }\n }\n }\n\n this.ensureLodWorker().tryExclusive(async (worker) => {\n if (hasPaged && !this.pager) {\n this.pager = new SplatPager({\n renderer: this.renderer,\n extSplats: this.pagedExtSplats,\n maxSplats: this.maxPagedSplats,\n numFetchers: this.numLodFetchers,\n });\n\n const { lodId } = (await worker.call(\"newLodTree\", {\n capacity: this.pager.maxSplats,\n })) as { lodId: number };\n this.pagerId = lodId;\n }\n\n // Assign pager to any new meshes that don't have one yet\n // (must run every frame, not just when pager is first created)\n if (this.pager) {\n for (const { mesh } of this.lodMeshes) {\n if (mesh.paged && !mesh.paged.pager) {\n mesh.paged.pager = this.pager;\n }\n }\n }\n\n if (this.lodInitQueue.length > 0) {\n const lodInitQueue = this.lodInitQueue;\n this.lodInitQueue = [];\n while (lodInitQueue.length > 0) {\n const splats = lodInitQueue.shift();\n if (splats) {\n await this.initLodTree(worker, splats);\n this.lodDirty = true;\n }\n }\n }\n\n if (this.pager) {\n const updates = this.pager.consumeLodTreeUpdates();\n\n for (const { splats, page, chunk, numSplats, lodTree } of updates) {\n const record = this.lodIds.get(splats);\n if (record) {\n if (lodTree && chunk === 0) {\n record.rootPage = page;\n }\n this.lodUpdates.push({\n lodId: record.lodId,\n pageBase: page * this.pager.pageSplats,\n chunkBase: chunk * this.pager.pageSplats,\n count: numSplats,\n lodTreeData: lodTree,\n });\n }\n }\n }\n\n if (this.lodUpdates.length > 0) {\n const lodUpdates = this.lodUpdates;\n this.lodUpdates = [];\n await worker.call(\"updateLodTrees\", { ranges: lodUpdates });\n this.lodDirty = true;\n }\n\n if (this.lodDirty) {\n const now = performance.now();\n const deltaPred = new THREE.Vector3();\n if (this.lastLod) {\n const deltaTime = Math.max(1, now - this.lastLod.timestamp);\n deltaPred\n .copy(viewPos)\n .sub(this.lastLod.pos)\n .multiplyScalar(this.lastTraverseTime / deltaTime);\n }\n this.lastLod = {\n pos: viewPos,\n quat: viewQuat,\n pixelScaleLimit,\n maxSplats,\n timestamp: now,\n };\n this.lodDirty = false;\n\n await this.updateLodInstances(\n worker,\n deltaPred,\n lodMeshes,\n maxSplats,\n viewPos,\n viewQuat,\n pixelScaleLimit,\n );\n this.currentLod = this.lastLod;\n this.setDirty();\n }\n\n await this.cleanupLodTrees(worker);\n });\n }\n\n private async initLodTree(\n worker: SplatWorker,\n splats: PackedSplats | ExtSplats | PagedSplats,\n ) {\n if (splats instanceof PackedSplats || splats instanceof ExtSplats) {\n const { lodId } = (await worker.call(\"initLodTree\", {\n numSplats: splats.numSplats ?? 0,\n lodTree: (splats.extra.lodTree as Uint32Array).slice(),\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** initLodTree\", lodId, splats.extra.lodTree, splats);\n } else {\n const { lodId } = (await worker.call(\"newSharedLodTree\", {\n lodId: this.pagerId,\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** newSharedLodTree\", lodId, this.pagerId, splats);\n }\n }\n\n private pageSizeWarning = false;\n\n private async updateLodInstances(\n worker: SplatWorker,\n deltaPred: THREE.Vector3,\n lodMeshes: SplatMesh[],\n maxSplats: number,\n viewPos: THREE.Vector3,\n viewQuat: THREE.Quaternion,\n pixelScaleLimit: number,\n ) {\n // Commented out because it makes LoDing less stable\n // viewPos.add(deltaPred);\n\n const uuidToMesh: Map = new Map();\n const cameraToWorld = new THREE.Matrix4().compose(\n viewPos,\n viewQuat,\n new THREE.Vector3().setScalar(1),\n );\n\n const instances = lodMeshes.reduce(\n (instances, mesh) => {\n uuidToMesh.set(mesh.uuid, mesh);\n const viewToObject = mesh.matrixWorld\n .clone()\n .invert()\n .multiply(cameraToWorld);\n\n const splats =\n mesh.packedSplats?.lodSplats ??\n mesh.extSplats?.lodSplats ??\n mesh.paged;\n if (!splats) {\n return instances;\n }\n const record = this.lodIds.get(splats);\n if (!record) {\n return instances;\n }\n\n if (this.pager && mesh.paged && record.rootPage === undefined) {\n return instances;\n }\n\n instances[mesh.uuid] = {\n instanceId: mesh.uuid,\n lodId: record.lodId,\n rootPage: record.rootPage,\n viewToObjectCols: viewToObject.elements,\n lodScale: mesh.lodScale,\n behindFoveate: mesh.behindFoveate ?? this.behindFoveate,\n coneFov0: mesh.coneFov0 ?? this.coneFov0,\n coneFov: mesh.coneFov ?? this.coneFov,\n coneFoveate: mesh.coneFoveate ?? this.coneFoveate,\n };\n return instances;\n },\n {} as Record<\n string,\n {\n instanceId: string;\n lodId: number;\n rootPage?: number;\n viewToObjectCols: number[];\n lodScale: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n }\n >,\n );\n\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit: this.lastPixelLimit,\n instances,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n chunks: [number, number][];\n pixelLimit?: number;\n };\n this.lastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices, chunks, pixelLimit } = result;\n this.lastPixelLimit = pixelLimit;\n const totalLodSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n // console.log(\n // `traverseLodTrees in ${this.lastTraverseTime} ms, pixelLimit=${pixelLimit}, totalLodSplats=${totalLodSplats}`,\n // );\n\n this.updateLodIndices(uuidToMesh, keyIndices);\n // console.log(\"chunks.length =\", chunks.length);\n\n if (this.pager) {\n this.pager.processUploads();\n\n const pagedMeshes = lodMeshes\n .map((mesh) => {\n if (!mesh.paged || !this.pager) {\n return null;\n }\n const meshPosition = mesh.getWorldPosition(new THREE.Vector3());\n return {\n splats: mesh.paged,\n distance: meshPosition.distanceTo(viewPos),\n };\n })\n .filter((result) => result !== null);\n\n if (!this.pageSizeWarning && pagedMeshes.length > this.pager.maxPages) {\n this.pageSizeWarning = true;\n console.warn(\n `# paged SplatMeshes exceeds maxPages: ${pagedMeshes.length} > ${this.pager.maxPages}`,\n );\n }\n\n // Fetch root chunk of each paged splats in priority of distance to camera\n pagedMeshes.sort((a, b) => a.distance - b.distance);\n this.pager.fetchPriority = pagedMeshes.map(({ splats }) => ({\n splats,\n chunk: 0,\n }));\n\n for (const [lodId, chunk] of chunks) {\n const splats = this.lodIdToSplats.get(lodId);\n if (splats instanceof PagedSplats) {\n if (chunk !== 0) {\n this.pager.fetchPriority.push({ splats, chunk });\n }\n }\n }\n\n this.pager.autoDrive = this.enableLodFetching;\n if (this.enableLodFetching) {\n this.pager.driveFetchers();\n }\n }\n\n if (\n this.lodRaycast &&\n performance.now() - this.lastLodRaycastTime >= this.lodRaycastIntervalMs\n ) {\n this.lastLodRaycastTime = performance.now();\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats: Math.min(this.lodRaycast, Math.round(totalLodSplats * 0.1)),\n pixelScaleLimit,\n instances,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n };\n const raycastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices } = result;\n const totalRaycastSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n mesh.raycastIndices = countIndices;\n // console.log(\"Set raycast indices\", uuid, countIndices.numSplats, countIndices.indices.length);\n }\n // console.log(`raycast traverse in ${raycastTraverseTime} ms, totalRaycastSplats=${totalRaycastSplats}`);\n }\n }\n\n private async cleanupLodTrees(worker: SplatWorker) {\n const DISPOSE_TIMEOUT_MS = 3000;\n const now = performance.now();\n\n let oldest = null;\n for (const [splats, record] of this.lodIds.entries()) {\n if (oldest == null || record.lastTouched < oldest.lastTouched) {\n oldest = {\n splats,\n lastTouched: record.lastTouched,\n lodId: record.lodId,\n };\n }\n }\n if (!oldest || oldest.lastTouched > now - DISPOSE_TIMEOUT_MS) {\n return;\n }\n\n this.lodIds.delete(oldest.splats);\n this.lodIdToSplats.delete(oldest.lodId);\n\n for (const [mesh, instance] of this.lodInstances.entries()) {\n if (instance.lodId === oldest.lodId) {\n instance.texture.dispose();\n this.lodInstances.delete(mesh);\n }\n }\n\n await worker.call(\"disposeLodTree\", { lodId: oldest.lodId });\n // console.log(\"disposed lodTree\", oldest.lodId);\n }\n\n private updateLodIndices(\n uuidToMesh: Map,\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >,\n ) {\n // console.log(\"updateLodIndices\", keyIndices);\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const { lodId, numSplats, indices } = countIndices;\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n\n if (mesh.paged) {\n mesh.paged.update(numSplats, indices);\n // console.log(\"*** paged.update\", lodId, numSplats, indices.slice(0, 5).join(\",\"));\n } else {\n let instance = this.lodInstances.get(mesh);\n if (instance) {\n if (indices.length > instance.indices.length) {\n instance.texture.dispose();\n instance = undefined;\n }\n }\n\n const rows = Math.ceil(indices.length / 16384);\n if (!instance) {\n const capacity = rows * 16384;\n if (indices.length !== capacity) {\n throw new Error(\"Indices length != capacity\");\n }\n const texture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n instance = { lodId, numSplats, indices, texture };\n this.lodInstances.set(mesh, instance);\n } else {\n instance.numSplats = numSplats;\n // instance.indices.set(indices.subarray(0, numSplats));\n\n const renderer = this.renderer;\n const gl = renderer.getContext() as WebGL2RenderingContext;\n if (renderer.properties.has(instance.texture)) {\n const props = renderer.properties.get(instance.texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"lodIndices texture not found\");\n }\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n indices,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n }\n mesh.updateMappingVersion();\n }\n }\n\n private async readbackDepth({\n current,\n renderer,\n numSplats,\n readback,\n }: {\n current: SplatAccumulator;\n renderer: THREE.WebGLRenderer;\n numSplats: number;\n readback: Uint32Array;\n }) {\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!current.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(readback.buffer);\n const renderState = this.saveRenderState(renderer);\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < numSplats) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((numSplats - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n renderer.setRenderTarget(current.target, layer);\n\n const promise = renderer.readRenderTargetPixelsAsync(\n current.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n undefined,\n current.extSplats ? 2 : 1,\n );\n promises.push(promise);\n\n if (this.flushAfterRead) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.resetRenderState(renderer, renderState);\n return Promise.all(promises).then(() => readback);\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private static emptyOrdering = (() => {\n const numIndices = 4 * 4096 * 1;\n const emptyArray = new Uint32Array(numIndices);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n render(scene: THREE.Scene, camera: THREE.Camera) {\n try {\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n }\n\n renderTarget({\n scene,\n camera,\n }: { scene: THREE.Scene; camera: THREE.Camera }): THREE.WebGLRenderTarget {\n const target = this.backTarget ?? this.target;\n if (!target) {\n throw new Error(\"No target\");\n }\n\n const previousTarget = this.renderer.getRenderTarget();\n try {\n this.renderer.setRenderTarget(target);\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n this.renderer.setRenderTarget(previousTarget);\n }\n\n if (target !== this.target) {\n // Swap back buffer and target\n [this.target, this.backTarget] = [this.backTarget, this.target];\n }\n return target;\n }\n\n // Read back the previously rendered target image as a Uint8Array of packed\n // RGBA values (in that order). Subsequent calls to this.readTarget()\n // will reuse the same buffers to minimize memory allocations.\n async readTarget(): Promise {\n if (!this.target) {\n throw new Error(\"Must initialize with target\");\n }\n const { width, height } = this.target;\n const byteSize = width * height * 4;\n if (!this.superPixels || this.superPixels.length < byteSize) {\n this.superPixels = new Uint8Array(byteSize);\n // console.log(`Allocated superPixels: ${width}x${height} = ${pixelCount} bytes`);\n }\n const superPixels = this.superPixels;\n\n await this.renderer.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n width,\n height,\n superPixels,\n );\n\n const { superXY } = this;\n if (superXY === 1) {\n return superPixels;\n }\n\n const subWidth = width / superXY;\n const subHeight = height / superXY;\n const subSize = subWidth * subHeight * 4;\n if (!this.targetPixels || this.targetPixels.length < subSize) {\n this.targetPixels = new Uint8Array(subSize);\n // console.log(`Allocated targetPixels: ${subWidth}x${subHeight} = ${subSize} bytes`);\n }\n const targetPixels = this.targetPixels;\n\n const super2 = superXY * superXY;\n for (let y = 0; y < subHeight; y++) {\n const row = y * subWidth;\n for (let x = 0; x < subWidth; x++) {\n const superCol = x * superXY;\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n for (let sy = 0; sy < superXY; sy++) {\n const superRow = (y * superXY + sy) * width;\n for (let sx = 0; sx < superXY; sx++) {\n const superIndex = (superRow + superCol + sx) * 4;\n r += superPixels[superIndex];\n g += superPixels[superIndex + 1];\n b += superPixels[superIndex + 2];\n a += superPixels[superIndex + 3];\n }\n }\n const pixelIndex = (row + x) * 4;\n targetPixels[pixelIndex] = r / super2;\n targetPixels[pixelIndex + 1] = g / super2;\n targetPixels[pixelIndex + 2] = b / super2;\n targetPixels[pixelIndex + 3] = a / super2;\n }\n }\n return targetPixels;\n }\n\n async renderReadTarget({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }): Promise {\n this.renderTarget({ scene, camera });\n return this.readTarget();\n }\n\n // Data and buffers used for environment map rendering\n private static cubeRender: {\n target: THREE.WebGLCubeRenderTarget;\n cubeCamera: THREE.CubeCamera;\n near: number;\n far: number;\n } | null = null;\n private static pmrem: THREE.PMREMGenerator | null = null;\n\n // Renders out the scene to a cube map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces.\n async renderCubeMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n filter = false,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n filter: boolean;\n }): Promise {\n if (\n !SparkRenderer.cubeRender ||\n SparkRenderer.cubeRender.target.width !== size ||\n SparkRenderer.cubeRender.near !== near ||\n SparkRenderer.cubeRender.far !== far\n ) {\n if (SparkRenderer.cubeRender) {\n SparkRenderer.cubeRender.target.dispose();\n }\n const target = new THREE.WebGLCubeRenderTarget(size, {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n generateMipmaps: filter,\n minFilter: filter ? THREE.LinearMipMapLinearFilter : THREE.LinearFilter,\n magFilter: THREE.LinearFilter,\n colorSpace: filter ? THREE.LinearSRGBColorSpace : THREE.SRGBColorSpace,\n });\n const cubeCamera = new THREE.CubeCamera(near, far, target);\n SparkRenderer.cubeRender = { target, cubeCamera, near, far };\n }\n\n const { target, cubeCamera } = SparkRenderer.cubeRender;\n cubeCamera.position.copy(worldCenter);\n\n // Save the visibility state of objects we want to hide before render\n const objectVisibility = new Map();\n for (const object of hideObjects) {\n objectVisibility.set(object, object.visible);\n object.visible = false;\n }\n\n if (update) {\n const tempCamera = new THREE.Camera();\n tempCamera.position.copy(worldCenter);\n await this.update({ scene, camera: tempCamera });\n }\n\n try {\n SparkRenderer.sparkOverride = this;\n // Update the CubeCamera, which performs 6 cube face renders\n cubeCamera.update(this.renderer, scene);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n\n // Restore viewpoint to default and object visibility\n for (const [object, visible] of objectVisibility.entries()) {\n object.visible = visible;\n }\n\n return target.texture;\n }\n\n async readCubeTargets(): Promise {\n if (!SparkRenderer.cubeRender) {\n throw new Error(\"No cube render\");\n }\n\n const textures = SparkRenderer.cubeRender.target.texture;\n const promises = [];\n const buffers = [];\n\n for (let i = 0; i < textures.images.length; ++i) {\n const { width, height } = textures.images[i];\n const byteSize = width * height * 4;\n const readback = new Uint8Array(byteSize);\n buffers.push(readback);\n const promise = this.renderer.readRenderTargetPixelsAsync(\n SparkRenderer.cubeRender.target,\n 0,\n 0,\n width,\n height,\n readback,\n i,\n );\n promises.push(promise);\n }\n\n await Promise.all(promises);\n return buffers;\n }\n\n // Renders out the scene to an environment map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces,\n // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture\n // that can assigned directly to a THREE.MeshStandardMaterial.envMap property.\n async renderEnvMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n }): Promise {\n const cubeTexture = await this.renderCubeMap({\n scene,\n worldCenter,\n size,\n near,\n far,\n hideObjects,\n update,\n filter: true,\n });\n // Pre-filter the cube map using THREE.PMREMGenerator if requested\n if (!SparkRenderer.pmrem) {\n SparkRenderer.pmrem = new THREE.PMREMGenerator(this.renderer);\n }\n\n return SparkRenderer.pmrem?.fromCubemap(cubeTexture).texture;\n }\n\n // Utility function to recursively set the envMap property for any\n // THREE.MeshStandardMaterial within the subtree of root.\n recurseSetEnvMap(root: THREE.Object3D, envMap: THREE.Texture) {\n root.traverse((node) => {\n if (node instanceof THREE.Mesh) {\n if (Array.isArray(node.material)) {\n for (const material of node.material) {\n if (material instanceof THREE.MeshStandardMaterial) {\n material.envMap = envMap;\n }\n }\n } else {\n if (node.material instanceof THREE.MeshStandardMaterial) {\n node.material.envMap = envMap;\n }\n }\n }\n });\n }\n\n async getLodTreeLevel(\n splats: SplatMesh,\n level: number,\n pageColoring = false,\n ) {\n const instance = this.lodInstances.get(splats);\n if (!instance) {\n return null;\n }\n\n const result = await this.ensureLodWorker().exclusive(async (worker) => {\n return (await worker.call(\"getLodTreeLevel\", {\n lodId: instance.lodId,\n level,\n })) as { indices: Uint32Array };\n });\n\n if (splats.packedSplats?.lodSplats) {\n const newSplats = splats.packedSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ packedSplats: newSplats });\n }\n if (splats.extSplats?.lodSplats) {\n const newSplats = splats.extSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ extSplats: newSplats });\n }\n throw new Error(\n \"Only LoD-enabled PackedSplats and ExtSplats are supported\",\n );\n }\n\n get premultipliedAlpha(): boolean {\n return this.material.premultipliedAlpha;\n }\n\n set premultipliedAlpha(value: boolean) {\n if (this.material.premultipliedAlpha !== value) {\n this.material.premultipliedAlpha = value;\n this.material.needsUpdate = true;\n }\n }\n}\n","import * as THREE from \"three\";\n\nimport init_wasm, { decode_rad_header } from \"spark-rs\";\nimport { LN_SCALE_MAX, LN_SCALE_MIN, dyno } from \".\";\nimport { evaluateExtSH } from \"./ExtSplats\";\nimport { evaluatePackedSH } from \"./PackedSplats\";\nimport { getSplatFileType, getSplatFileTypeFromPath } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n type ExtResult,\n type PackedResult,\n type RadMeta,\n type SplatEncoding,\n SplatFileType,\n} from \"./defines\";\nimport { pagedSplatTexCoord } from \"./dyno\";\nimport { decodeExtSplat, getTextureSize, unpackSplat } from \"./utils\";\n\nexport interface PagedSplatsOptions {\n pager?: SplatPager;\n rootUrl?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n maxSh?: number;\n}\n\nexport class PagedSplats implements SplatSource {\n pager?: SplatPager;\n rootUrl: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n\n numSh: number;\n maxSh: number;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array | [Uint32Array, Uint32Array];\n\n numSplats: number;\n splatEncoding?: SplatEncoding;\n radMetaPromise?: Promise<{ meta: RadMeta; chunksStart: number }>;\n\n dynoNumSplats: dyno.DynoInt<\"numSplats\">;\n dynoIndices: dyno.DynoUsampler2D<\"indices\", THREE.DataTexture>;\n rgbMinMaxLnScaleMinMax: dyno.DynoVec4<\n THREE.Vector4,\n \"rgbMinMaxLnScaleMinMax\"\n >;\n lodOpacity: dyno.DynoBool<\"lodOpacity\">;\n dynoNumSh: dyno.DynoInt<\"numSh\">;\n shMax: dyno.DynoVec3;\n\n constructor(options: PagedSplatsOptions) {\n this.pager = options.pager;\n this.rootUrl = options.rootUrl ?? \"\";\n this.requestHeader = options.requestHeader;\n this.withCredentials = options.withCredentials;\n this.numSh = 0;\n this.maxSh = options.pager?.maxSh ?? 3;\n\n this.numSplats = 0;\n\n this.dynoNumSplats = new dyno.DynoInt({ value: 0 });\n this.dynoIndices = new dyno.DynoUsampler2D({\n value: SplatPager.emptyIndicesTexture,\n });\n\n this.rgbMinMaxLnScaleMinMax = new dyno.DynoVec4({\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n });\n this.lodOpacity = new dyno.DynoBool({\n value: false,\n });\n\n this.dynoNumSh = new dyno.DynoInt({ value: 0 });\n this.shMax = new dyno.DynoVec3({ value: new THREE.Vector3() });\n\n this.fileBytes = options.fileBytes;\n this.fileType = options.fileType;\n if (!this.fileType && this.fileBytes) {\n this.fileType = getSplatFileType(this.fileBytes);\n }\n if (!this.fileType && this.rootUrl) {\n this.fileType = getSplatFileTypeFromPath(this.rootUrl);\n }\n if (!this.fileType) {\n throw new Error(\"Unable to determine file type\");\n }\n if (this.fileType === SplatFileType.RAD) {\n this.radMetaPromise = this.getRadMeta();\n }\n }\n\n dispose() {\n if (this.dynoIndices.value !== SplatPager.emptyIndicesTexture) {\n this.dynoIndices.value.dispose();\n this.dynoIndices.value = SplatPager.emptyIndicesTexture;\n }\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n getRadMeta(): Promise<{ meta: RadMeta; chunksStart: number }> {\n if (this.radMetaPromise) {\n return this.radMetaPromise;\n }\n\n this.radMetaPromise = (async () => {\n await wasmInitialized;\n\n if (this.fileBytes) {\n // Shouldn't be more than 1 MB, so don't send more data than that.\n const metaStart = decode_rad_header(this.fileBytes.slice(0, 1048576));\n if (metaStart) {\n return metaStart;\n }\n throw new Error(\"Failed to decode RAD header\");\n }\n if (!this.rootUrl) {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n // We don't know how big the header will be. Most likely 64KB will be enough,\n // but try larger blocks in backoff if it wasn't enough.\n for (const tryBytes of [65536, 256 * 1024, 1024 * 1024]) {\n const bytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset: 0,\n bytes: tryBytes,\n });\n const metaStart = decode_rad_header(bytes);\n if (metaStart) {\n return metaStart;\n }\n }\n throw new Error(\"Failed to decode RAD header\");\n })().then((metaStart) => {\n // console.log(\"RAD meta: \", metaStart.meta);\n return metaStart;\n });\n\n this.radMetaPromise.catch((error) => {\n console.error(error);\n // Allow it to be tried again\n // this.radMetaPromise = undefined;\n });\n\n return this.radMetaPromise;\n }\n\n chunkUrl(chunk: number): string {\n return this.rootUrl.replace(/-lod-0\\./, `-lod-${chunk}.`);\n }\n\n async fetchDecodeChunk(chunk: number) {\n let decodeBytes = undefined;\n\n if (this.fileType === SplatFileType.RAD) {\n const { meta, chunksStart } = await this.getRadMeta();\n if (chunk < 0 || chunk >= meta.chunks.length) {\n throw new Error(\n `Chunk index out of range: ${chunk} (max: ${meta.chunks.length - 1})`,\n );\n }\n let { offset, bytes, filename } = meta.chunks[chunk];\n\n if (filename) {\n if (this.fileBytes) {\n throw new Error(\"Chunked RAD file not supported with fileBytes\");\n }\n const resolvedRoot = new URL(\n this.rootUrl,\n window.location.href,\n ).toString();\n const chunkUrl = new URL(filename, resolvedRoot).toString();\n decodeBytes = await fetchRange({\n url: chunkUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n });\n } else {\n offset += chunksStart;\n // console.log(`Fetching chunk ${chunk} at offset ${offset} with bytes ${bytes}`);\n if (this.fileBytes) {\n if (offset < 0 || offset + bytes > this.fileBytes.length) {\n throw new Error(\n `Invalid chunk offset or bytes: ${offset} + ${bytes} > ${this.fileBytes.length}`,\n );\n }\n decodeBytes = this.fileBytes.slice(offset, offset + bytes);\n } else if (this.rootUrl) {\n decodeBytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset,\n bytes,\n });\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n }\n } else if (this.fileBytes) {\n // Fall through\n } else if (this.rootUrl) {\n const url = this.chunkUrl(chunk);\n const request = new Request(url, {\n headers: this.requestHeader\n ? new Headers(this.requestHeader)\n : undefined,\n credentials: this.withCredentials ? \"include\" : \"same-origin\",\n });\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n decodeBytes = new Uint8Array(await response.arrayBuffer());\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n return await workerPool.withWorker(async (worker) => {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n if (!this.pager.extSplats) {\n const result = (await worker.call(\"loadPackedSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: this.sh3Codes?.slice(),\n })) as { lodSplats: PackedResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = lodSplats.splatEncoding;\n\n this.numSh = lodSplats.extra.sh3\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n\n this.rgbMinMaxLnScaleMinMax.value.set(\n this.splatEncoding.rgbMin ?? 0.0,\n this.splatEncoding.rgbMax ?? 1.0,\n this.splatEncoding.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding.lnScaleMax ?? LN_SCALE_MAX,\n );\n\n this.lodOpacity.value = this.splatEncoding.lodOpacity ?? false;\n\n this.shMax.value.set(\n this.splatEncoding.sh1Max ?? 1.0,\n this.splatEncoding.sh2Max ?? 1.0,\n this.splatEncoding.sh3Max ?? 1.0,\n );\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n }\n\n const sh3Codes = this.sh3Codes as [Uint32Array, Uint32Array] | undefined;\n const result = (await worker.call(\"loadExtSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: sh3Codes\n ? [sh3Codes[0].slice(), sh3Codes[1].slice()]\n : undefined,\n })) as { lodSplats: ExtResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = DEFAULT_SPLAT_ENCODING;\n this.numSh =\n lodSplats.extra.sh3a && lodSplats.extra.sh3b\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n });\n }\n\n update(numSplats: number, indices: Uint32Array) {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const renderer = this.pager.renderer;\n this.numSplats = numSplats;\n this.dynoNumSplats.value = this.numSplats;\n const rows = Math.ceil(numSplats / 16384);\n\n let indicesTexture =\n this.dynoIndices.value === SplatPager.emptyIndicesTexture\n ? undefined\n : this.dynoIndices.value;\n if (indicesTexture && rows > indicesTexture.image.height) {\n indicesTexture.dispose();\n indicesTexture = undefined;\n }\n\n if (!indicesTexture) {\n indicesTexture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n indicesTexture.internalFormat = \"RGBA32UI\";\n indicesTexture.needsUpdate = true;\n renderer.initTexture(indicesTexture);\n this.dynoIndices.value = indicesTexture;\n } else {\n const textureIndices = indicesTexture.image.data as Uint32Array;\n textureIndices.set(indices.subarray(0, numSplats));\n\n const gl = renderer.getContext() as WebGL2RenderingContext;\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(\n gl.TEXTURE_2D,\n getGlTexture(renderer, indicesTexture),\n );\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n indices,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n\n prepareFetchSplat() {}\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n if (!this.pager) {\n return false;\n }\n return Math.min(this.numSh, this.pager.maxSh) > 0;\n }\n\n getNumSh(): number {\n return this.numSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: {\n index: dyno.DynoVal<\"int\">;\n viewOrigin?: dyno.DynoVal<\"vec3\">;\n }): dyno.DynoVal {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const splatIndex = this.pager.readIndex.apply({\n index,\n numSplats: this.dynoNumSplats,\n indices: this.dynoIndices,\n }).index;\n\n if (!this.pager.extSplats) {\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(\n this.numSh,\n this.maxSh,\n this.pager.maxSh,\n );\n return this.pager.readSplatDir.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n viewOrigin,\n numSh: this.dynoNumSh,\n shMax: this.shMax,\n }).gsplat;\n }\n return this.pager.readSplat.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n }).gsplat;\n }\n\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(this.numSh, this.maxSh, this.pager.maxSh);\n return this.pager.readSplatExtDir.apply({\n index: splatIndex,\n viewOrigin,\n numSh: this.dynoNumSh,\n }).gsplat;\n }\n return this.pager.readSplatExt.apply({ index: splatIndex }).gsplat;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.pager || !this.numSplats) {\n return;\n }\n const extSplats = this.pager.extSplats;\n const indices = this.dynoIndices.value.image.data as Uint32Array;\n const packedSplatArray = this.pager.packedTexture.value.image\n .data as Uint32Array;\n const extPackedSplatArray = this.pager.extTexture.value.image\n .data as Uint32Array;\n const extArrays: [Uint32Array, Uint32Array] = [\n packedSplatArray,\n extPackedSplatArray,\n ];\n\n for (let i = 0; i < this.numSplats; ++i) {\n const splatIndex = indices[i];\n const unpacked = extSplats\n ? decodeExtSplat(extArrays, splatIndex)\n : unpackSplat(packedSplatArray, splatIndex, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n}\n\nexport interface SplatPagerOptions {\n /**\n * THREE.WebGLRenderer instance to upload texture data\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Whether to use extended Gsplat encoding for paged splats.\n * @default false\n */\n extSplats?: boolean;\n /**\n * Maximum size of splat page pool\n * @default 65536 * 256 = 16777216\n */\n maxSplats?: number;\n /**\n * Maximum number of spherical harmonics to keep\n * @default 3\n */\n maxSh?: number;\n /**\n * Automatically drive page fetching, or poll via drive()\n * @default true\n */\n autoDrive?: boolean;\n /**\n * Number of parallel chunk fetchers\n * @default 3\n */\n numFetchers?: number;\n}\n\nexport class SplatPager {\n renderer: THREE.WebGLRenderer;\n\n extSplats: boolean;\n maxPages: number;\n maxSplats: number;\n pageSplats: number;\n\n maxSh: number;\n curSh: number;\n\n autoDrive: boolean;\n numFetchers: number;\n fetchPause = 0;\n\n splatsChunkToPage: Map<\n PagedSplats,\n ({ page: number; lru: number } | undefined)[]\n > = new Map();\n pageToSplatsChunk: (\n | { splats: PagedSplats; chunk: number; time: number }\n | undefined\n )[] = [];\n pageFreelist: number[];\n pageLru: Set<{ page: number; lru: number }>;\n freeablePages: number[];\n newUploads: {\n page: number;\n numSplats: number;\n packedArray: Uint32Array;\n extArray?: Uint32Array;\n extra: Record;\n }[];\n readyUploads: {\n page: number;\n numSplats: number;\n packedArray: Uint32Array;\n extArray?: Uint32Array;\n extra: Record;\n }[];\n lodTreeUpdates: {\n splats: PagedSplats;\n page: number;\n chunk: number;\n numSplats: number;\n lodTree?: Uint32Array;\n }[];\n\n fetchers: { splats: PagedSplats; chunk: number; promise: Promise }[];\n fetched: {\n splats: PagedSplats;\n chunk: number;\n data: PackedResult | ExtResult;\n }[];\n fetchPriority: { splats: PagedSplats; chunk: number }[];\n\n packedTexture: dyno.DynoUsampler2DArray<\n \"packedTexture\",\n THREE.DataArrayTexture\n >;\n extTexture: dyno.DynoUsampler2DArray<\"extTexture\", THREE.DataArrayTexture>;\n\n sh1Texture: dyno.DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture: dyno.DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture: dyno.DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB: dyno.DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n\n readIndex: dyno.DynoBlock<\n { index: \"int\"; numSplats: \"int\"; indices: \"usampler2D\" },\n { index: \"int\" }\n >;\n readSplat: dyno.DynoBlock<\n { index: \"int\"; rgbMinMaxLnScaleMinMax: \"vec4\"; lodOpacity: \"bool\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExt: dyno.DynoBlock<\n { index: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatDir: dyno.DynoBlock<\n {\n index: \"int\";\n rgbMinMaxLnScaleMinMax: \"vec4\";\n lodOpacity: \"bool\";\n viewOrigin: \"vec3\";\n numSh: \"int\";\n shMax: \"vec3\";\n },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExtDir: dyno.DynoBlock<\n { index: \"int\"; viewOrigin: \"vec3\"; numSh: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n\n constructor(options: SplatPagerOptions) {\n this.renderer = options.renderer;\n this.extSplats = options.extSplats ?? false;\n\n this.pageSplats = 65536;\n this.maxSplats = options.maxSplats ?? 16777216;\n this.maxPages = Math.ceil(this.maxSplats / this.pageSplats);\n this.maxSplats = this.maxPages * this.pageSplats;\n\n this.maxSh = options.maxSh ?? 3;\n this.curSh = 0;\n\n this.autoDrive = options.autoDrive ?? true;\n this.numFetchers = options.numFetchers ?? 3;\n\n this.splatsChunkToPage = new Map();\n this.pageToSplatsChunk = new Array(this.maxPages);\n this.pageFreelist = Array.from({ length: this.maxPages }, (_, i) => i);\n this.pageLru = new Set();\n this.freeablePages = [];\n this.newUploads = [];\n this.readyUploads = [];\n this.lodTreeUpdates = [];\n\n this.fetchers = [];\n this.fetched = [];\n this.fetchPriority = [];\n\n this.packedTexture = new dyno.DynoUsampler2DArray({\n value: this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n ),\n });\n this.extTexture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n )\n : SplatPager.emptyExtTexture,\n });\n this.sh1Texture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? SplatPager.emptyExtSh1Texture\n : SplatPager.emptySh1Texture,\n });\n this.sh2Texture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? SplatPager.emptyExtSh2Texture\n : SplatPager.emptySh2Texture,\n });\n this.sh3Texture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? SplatPager.emptyExtSh3Texture\n : SplatPager.emptySh3Texture,\n });\n this.sh3TextureB = new dyno.DynoUsampler2DArray({\n value: SplatPager.emptyExtSh3BTexture,\n });\n\n this.readIndex = dyno.dynoBlock(\n { index: \"int\", numSplats: \"int\", indices: \"usampler2D\" },\n { index: \"int\" },\n ({ index, numSplats, indices }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n numSplats: \"int\",\n indices: \"usampler2D\",\n },\n outTypes: { index: \"int\" },\n inputs: {\n index,\n numSplats,\n indices,\n },\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n if (${inputs.index} >= ${inputs.numSplats}) {\n return;\n }\n\n ivec2 indexCoord = ivec2((${inputs.index} >> 2) & 4095, ${inputs.index} >> 14);\n uint index = texelFetch(${inputs.indices}, indexCoord, 0)[${inputs.index} & 3];\n ${outputs.index} = int(index);\n `),\n }).outputs;\n },\n );\n\n this.readSplat = dyno.dynoBlock(\n { index: \"int\", rgbMinMaxLnScaleMinMax: \"vec4\", lodOpacity: \"bool\" },\n { gsplat: dyno.Gsplat },\n ({ index, rgbMinMaxLnScaleMinMax, lodOpacity }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n packedTexture: \"usampler2DArray\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n packedTexture: this.packedTexture,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = pagedSplatTexCoord(index);\n uvec4 packedData = texelFetch(${inputs.packedTexture}, splatCoord, 0);\n\n unpackSplatEncoding(packedData, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba, ${inputs.rgbMinMaxLnScaleMinMax});\n if ((${outputs.gsplat}.rgba.a == 0.0) || all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n \n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n if (${inputs.lodOpacity}) {\n ${outputs.gsplat}.rgba.a *= 2.0;\n }\n `),\n }).outputs;\n },\n );\n\n this.readSplatDir = dyno.dynoBlock(\n {\n index: \"int\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n shMax: \"vec3\",\n },\n { gsplat: dyno.Gsplat },\n ({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n viewOrigin,\n numSh,\n shMax,\n }) => {\n if (\n !index ||\n !rgbMinMaxLnScaleMinMax ||\n !lodOpacity ||\n !viewOrigin ||\n !numSh ||\n !shMax\n ) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplat.apply({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluatePackedSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.sh1Texture,\n sh2Texture: this.sh2Texture,\n sh3Texture: this.sh3Texture,\n shMax,\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n\n this.readSplatExt = dyno.dynoBlock(\n { index: \"int\" },\n { gsplat: dyno.Gsplat },\n ({ index }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n extTexture1: \"usampler2DArray\",\n extTexture2: \"usampler2DArray\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n extTexture1: this.packedTexture,\n extTexture2: this.extTexture,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16);\n uvec4 ext1 = texelFetch(${inputs.extTexture1}, splatCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if (alpha == 0.0) {\n return;\n }\n\n uvec4 ext2 = texelFetch(${inputs.extTexture2}, splatCoord, 0);\n unpackSplatExt(ext1, ext2, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba);\n if (all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n\n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n `),\n }).outputs;\n },\n );\n\n this.readSplatExtDir = dyno.dynoBlock(\n {\n index: \"int\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n },\n { gsplat: dyno.Gsplat },\n ({ index, viewOrigin, numSh }) => {\n if (!index || !viewOrigin || !numSh) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplatExt.apply({ index }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluateExtSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.sh1Texture,\n sh2Texture: this.sh2Texture,\n sh3TextureA: this.sh3Texture,\n sh3TextureB: this.sh3TextureB,\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n }\n\n dispose() {\n this.autoDrive = false;\n this.numFetchers = 0;\n\n this.packedTexture.value.dispose();\n this.packedTexture.value.source.data = null;\n if (this.extTexture.value !== SplatPager.emptyExtTexture) {\n this.extTexture.value.dispose();\n this.extTexture.value.source.data = null;\n }\n\n if (!this.extSplats) {\n if (this.sh1Texture.value !== SplatPager.emptySh1Texture) {\n this.sh1Texture.value.dispose();\n this.sh1Texture.value.source.data = null;\n }\n if (this.sh2Texture.value !== SplatPager.emptySh2Texture) {\n this.sh2Texture.value.dispose();\n this.sh2Texture.value.source.data = null;\n }\n if (this.sh3Texture.value !== SplatPager.emptySh3Texture) {\n this.sh3Texture.value.dispose();\n this.sh3Texture.value.source.data = null;\n }\n } else {\n if (this.sh1Texture.value !== SplatPager.emptyExtSh1Texture) {\n this.sh1Texture.value.dispose();\n this.sh1Texture.value.source.data = null;\n }\n if (this.sh2Texture.value !== SplatPager.emptyExtSh2Texture) {\n this.sh2Texture.value.dispose();\n this.sh2Texture.value.source.data = null;\n }\n if (this.sh3Texture.value !== SplatPager.emptyExtSh3Texture) {\n this.sh3Texture.value.dispose();\n this.sh3Texture.value.source.data = null;\n }\n if (this.sh3TextureB.value !== SplatPager.emptyExtSh3BTexture) {\n this.sh3TextureB.value.dispose();\n this.sh3TextureB.value.source.data = null;\n }\n }\n }\n\n private ensureShTextures(numSh: number) {\n this.curSh = Math.max(this.curSh, numSh);\n if (!this.extSplats) {\n if (\n this.curSh >= 1 &&\n this.sh1Texture.value === SplatPager.emptySh1Texture\n ) {\n this.sh1Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 2),\n 256,\n 256,\n this.maxPages,\n THREE.RGIntegerFormat,\n THREE.UnsignedIntType,\n \"RG32UI\",\n );\n }\n } else {\n if (\n this.curSh >= 1 &&\n this.sh1Texture.value === SplatPager.emptyExtSh1Texture\n ) {\n this.sh1Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n }\n if (\n this.curSh >= 2 &&\n this.sh2Texture.value ===\n (!this.extSplats\n ? SplatPager.emptySh2Texture\n : SplatPager.emptyExtSh2Texture)\n ) {\n this.sh2Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n if (!this.extSplats) {\n if (\n this.curSh >= 3 &&\n this.sh3Texture.value === SplatPager.emptySh3Texture\n ) {\n this.sh3Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n } else {\n if (this.curSh >= 3) {\n if (this.sh3Texture.value === SplatPager.emptyExtSh3Texture) {\n this.sh3Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n if (this.sh3TextureB.value === SplatPager.emptyExtSh3BTexture) {\n this.sh3TextureB.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n }\n }\n }\n\n private allocatePage(): number | undefined {\n return this.pageFreelist.shift();\n }\n\n private freePage(page: number) {\n this.pageFreelist.push(page);\n }\n\n getSplatsChunk(splats: PagedSplats, chunk: number) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n return undefined;\n }\n return chunks[chunk];\n }\n\n private insertSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n now: number,\n ) {\n if (!this.splatsChunkToPage.has(splats)) {\n this.splatsChunkToPage.set(splats, []);\n }\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n if (chunk >= chunks.length) {\n chunks.length = chunk + 1;\n }\n const pageLru = { page, lru: now };\n chunks[chunk] = pageLru;\n this.pageLru.add(pageLru);\n\n this.pageToSplatsChunk[page] = { splats, chunk, time: performance.now() };\n return this.pageToSplatsChunk[page];\n }\n\n private removeSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n ) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n\n const pageLru = chunks[chunk];\n if (!pageLru) {\n throw new Error(\n `pageLru not found for splats: ${splats}, chunk: ${chunk}, page: ${page}`,\n );\n }\n this.pageLru.delete(pageLru);\n\n chunks[chunk] = undefined;\n\n while (chunks.length > 0 && chunks[chunks.length - 1] === undefined) {\n chunks.pop();\n }\n if (chunks.length === 0) {\n this.splatsChunkToPage.delete(splats);\n }\n\n this.pageToSplatsChunk[page] = undefined;\n while (\n this.pageToSplatsChunk.length > 0 &&\n this.pageToSplatsChunk[this.pageToSplatsChunk.length - 1] === undefined\n ) {\n this.pageToSplatsChunk.pop();\n }\n }\n\n private uploadPage(\n page: number,\n packedArray: Uint32Array,\n extra: Record,\n extArray?: Uint32Array,\n ) {\n const pageBase = page * this.pageSplats;\n\n // const gl = this.renderer.getContext() as WebGL2RenderingContext;\n\n // this.renderer.state.activeTexture(gl.TEXTURE0);\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.packedTexture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RGBA_INTEGER,\n // gl.UNSIGNED_INT,\n // packedArray,\n // );\n\n const array = this.packedTexture.value.image.data;\n array\n .subarray(pageBase * 4, pageBase * 4 + packedArray.length)\n .set(packedArray);\n this.packedTexture.value.addLayerUpdate(page);\n this.packedTexture.value.needsUpdate = true;\n\n if (extArray) {\n const array = this.extTexture.value.image.data;\n array\n .subarray(pageBase * 4, pageBase * 4 + extArray.length)\n .set(extArray);\n this.extTexture.value.addLayerUpdate(page);\n this.extTexture.value.needsUpdate = true;\n }\n\n const numSh = this.extSplats\n ? extra.sh3a && extra.sh3b\n ? 3\n : extra.sh2\n ? 2\n : extra.sh1\n ? 1\n : 0\n : extra.sh3\n ? 3\n : extra.sh2\n ? 2\n : extra.sh1\n ? 1\n : 0;\n this.ensureShTextures(numSh);\n\n if (!this.extSplats) {\n if (this.sh1Texture.value !== SplatPager.emptySh1Texture && extra.sh1) {\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.sh1Texture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RG_INTEGER,\n // gl.UNSIGNED_INT,\n // extra.sh1 as Uint32Array,\n // );\n const sh1 = extra.sh1 as Uint32Array;\n const array = this.sh1Texture.value.image.data;\n array.subarray(pageBase * 2, pageBase * 2 + sh1.length).set(sh1);\n this.sh1Texture.value.addLayerUpdate(page);\n this.sh1Texture.value.needsUpdate = true;\n }\n } else {\n if (\n this.sh1Texture.value !== SplatPager.emptyExtSh1Texture &&\n extra.sh1\n ) {\n const sh1 = extra.sh1 as Uint32Array;\n const array = this.sh1Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh1.length).set(sh1);\n this.sh1Texture.value.addLayerUpdate(page);\n this.sh1Texture.value.needsUpdate = true;\n }\n }\n\n if (this.sh2Texture.value !== SplatPager.emptySh2Texture && extra.sh2) {\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.sh2Texture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RGBA_INTEGER,\n // gl.UNSIGNED_INT,\n // extra.sh2 as Uint32Array,\n // );\n const sh2 = extra.sh2 as Uint32Array;\n const array = this.sh2Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh2.length).set(sh2);\n this.sh2Texture.value.addLayerUpdate(page);\n this.sh2Texture.value.needsUpdate = true;\n }\n\n if (!this.extSplats) {\n if (this.sh3Texture.value !== SplatPager.emptySh3Texture && extra.sh3) {\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.sh3Texture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RGBA_INTEGER,\n // gl.UNSIGNED_INT,\n // extra.sh3 as Uint32Array,\n // );\n const sh3 = extra.sh3 as Uint32Array;\n const array = this.sh3Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh3.length).set(sh3);\n this.sh3Texture.value.addLayerUpdate(page);\n this.sh3Texture.value.needsUpdate = true;\n }\n } else {\n if (\n this.sh3Texture.value !== SplatPager.emptyExtSh3Texture &&\n extra.sh3a\n ) {\n const sh3a = extra.sh3a as Uint32Array;\n const array = this.sh3Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh3a.length).set(sh3a);\n this.sh3Texture.value.addLayerUpdate(page);\n this.sh3Texture.value.needsUpdate = true;\n }\n if (\n this.sh3TextureB.value !== SplatPager.emptyExtSh3BTexture &&\n extra.sh3b\n ) {\n const sh3b = extra.sh3b as Uint32Array;\n const array = this.sh3TextureB.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh3b.length).set(sh3b);\n this.sh3TextureB.value.addLayerUpdate(page);\n this.sh3TextureB.value.needsUpdate = true;\n }\n }\n\n // this.renderer.state.bindTexture(gl.TEXTURE_2D_ARRAY, null);\n }\n\n private getGlTexture(texture: THREE.Texture): WebGLTexture {\n return getGlTexture(this.renderer, texture);\n }\n\n private newUint32ArrayTexture(\n data: Uint32Array | null,\n width: number,\n height: number,\n depth: number,\n format: THREE.AnyPixelFormat,\n type: THREE.TextureDataType,\n internalFormat: THREE.PixelFormatGPU,\n ): THREE.DataArrayTexture {\n const texture = new THREE.DataArrayTexture(data, width, height, depth);\n texture.format = format;\n texture.type = type;\n texture.internalFormat = internalFormat;\n texture.needsUpdate = true;\n this.renderer.initTexture(texture);\n return texture;\n }\n\n driveFetchers() {\n const needed = [];\n const overflow = [];\n let numPages = 0;\n\n for (const { splats, chunk } of this.fetchPriority) {\n const pageLru = this.getSplatsChunk(splats, chunk);\n if (pageLru) {\n if (numPages >= this.maxPages) {\n overflow.push(pageLru);\n } else {\n needed.push(pageLru);\n }\n numPages += 1;\n continue;\n }\n\n if (\n this.fetched.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n ) ||\n this.fetchers.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n )\n ) {\n numPages += 1;\n continue;\n }\n\n if (numPages < this.maxPages && this.fetchers.length < this.numFetchers) {\n numPages += 1;\n const promise = splats\n .fetchDecodeChunk(chunk)\n .then(\n async (data) => {\n // Place data in ready queue and remove self from active fetchers list\n this.fetched.push({ splats, chunk, data });\n if (this.fetchPause > 0) {\n await new Promise((resolve) =>\n setTimeout(resolve, this.fetchPause),\n );\n }\n },\n async (error) => {\n console.warn(error);\n const backoff = 250 + 500 * Math.random();\n await new Promise((resolve) => setTimeout(resolve, backoff));\n },\n )\n .finally(() => {\n this.fetchers = this.fetchers.filter(\n ({ splats: s, chunk: c }) => splats !== s || chunk !== c,\n );\n this.processFetched();\n });\n // Add self to active fetchers list\n this.fetchers.push({ splats, chunk, promise });\n\n promise.then((data) => {\n if (this.autoDrive) {\n this.driveFetchers();\n }\n });\n }\n }\n\n // Update LRU ordering in reverse priority order\n const now = performance.now();\n\n for (const pageLru of overflow.reverse()) {\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n\n // Create set of pages not needed\n const extraPages = new Set(this.pageLru);\n for (const pageLru of needed.reverse()) {\n extraPages.delete(pageLru);\n\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n this.freeablePages = Array.from(extraPages).map(({ page }) => page);\n }\n\n private allocateFreeable(): number | undefined {\n const page = this.freeablePages.shift();\n if (page === undefined) {\n // No freeable pages available\n return undefined;\n }\n\n const splatsChunk = this.pageToSplatsChunk[page];\n if (!splatsChunk) {\n throw new Error(`splatsChunk not found for page: ${page}`);\n }\n\n const { splats, chunk } = splatsChunk;\n this.removeSplatsChunkPage(splats, chunk, page);\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats: this.pageSplats,\n });\n return page;\n }\n\n private processFetched() {\n const now = performance.now();\n while (true) {\n const fetched = this.fetched.shift();\n if (!fetched) {\n break;\n }\n const { splats, chunk, data } = fetched;\n\n let page = this.allocatePage();\n if (page === undefined) {\n page = this.allocateFreeable();\n if (page === undefined) {\n // No pages available, stop for now\n return;\n }\n }\n\n this.insertSplatsChunkPage(splats, chunk, page, now);\n const { numSplats, extra } = data;\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats,\n lodTree: extra.lodTree as Uint32Array,\n });\n\n if (!this.extSplats) {\n const packedArray = (data as PackedResult).packedArray;\n this.newUploads.push({ page, numSplats, packedArray, extra });\n } else {\n const extArrays = (data as ExtResult).extArrays;\n const packedArray = extArrays[0];\n const extArray = extArrays[1];\n this.newUploads.push({ page, numSplats, packedArray, extArray, extra });\n }\n }\n }\n\n processUploads() {\n while (true) {\n const upload = this.readyUploads.shift();\n if (!upload) {\n break;\n }\n const { page, numSplats, packedArray, extArray, extra } = upload;\n this.uploadPage(page, packedArray, extra, extArray);\n }\n }\n\n consumeLodTreeUpdates() {\n const updates = this.lodTreeUpdates;\n this.lodTreeUpdates = [];\n\n this.readyUploads.push(...this.newUploads);\n this.newUploads = [];\n return updates;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyIndicesTexture = (() => {\n const emptyArray = new Uint32Array(4096 * 4);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyPackedTexture = this.emptyUint32x4;\n static emptyExtTexture = this.emptyUint32x4;\n static emptySh1Texture = this.emptyUint32x2;\n static emptySh2Texture = this.emptyUint32x4;\n static emptySh3Texture = this.emptyUint32x4;\n static emptyExtSh1Texture = this.emptyUint32x4;\n static emptyExtSh2Texture = this.emptyUint32x4;\n static emptyExtSh3Texture = this.emptyUint32x4;\n static emptyExtSh3BTexture = this.emptyUint32x4;\n}\n\nfunction getGlTexture(\n renderer: THREE.WebGLRenderer,\n texture: THREE.Texture,\n): WebGLTexture {\n if (!renderer.properties.has(texture)) {\n throw new Error(\"texture not found\");\n }\n const props = renderer.properties.get(texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"texture not found\");\n }\n return glTexture;\n}\n\nconst wasmInitialized = init_wasm();\n\nasync function fetchRange({\n url,\n requestHeader,\n withCredentials,\n offset,\n bytes,\n}: {\n url: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n offset?: number;\n bytes?: number;\n}): Promise {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n if (offset !== undefined && bytes !== undefined) {\n request.headers.set(\"Range\", `bytes=${offset}-${offset + bytes - 1}`);\n }\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n return new Uint8Array(await response.arrayBuffer());\n}\n","import * as THREE from \"three\";\n\nimport init_wasm, {\n get_raycast_buffer,\n get_raycast_buffer2,\n raycast_ext_buffers,\n raycast_packed_buffer,\n} from \"spark-rs\";\nimport { ExtSplats } from \"./ExtSplats\";\nimport { OldSparkRenderer } from \"./OldSparkRenderer\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { type RgbaArray, TRgbaArray } from \"./RgbaArray\";\nimport { SparkRenderer } from \"./SparkRenderer\";\nimport { SplatEdit, SplatEditSdf, SplatEdits } from \"./SplatEdit\";\nimport {\n type CovSplatModifier,\n CovSplatTransformer,\n type FrameUpdateContext,\n type GsplatModifier,\n SplatGenerator,\n SplatTransformer,\n} from \"./SplatGenerator\";\nimport { PagedSplats, SplatPager } from \"./SplatPager\";\nimport type { SplatSkinning } from \"./SplatSkinning\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n CovSplat,\n Dyno,\n DynoBool,\n DynoFloat,\n DynoInt,\n DynoUsampler2D,\n type DynoVal,\n DynoVec4,\n Gsplat,\n combineCovSplat,\n combineGsplat,\n defineGsplat,\n dyno,\n dynoBlock,\n gsplatToCovSplat,\n mul,\n splitCovSplat,\n splitGsplat,\n unindentLines,\n} from \"./dyno\";\n\nexport type SplatMeshOptions = {\n // URL to fetch a Gaussian splat file from(supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Use an existing PackedSplats object as the source instead of loading from\n // a file. Can be used to share a collection of Gsplats among multiple SplatMeshes\n // (default: undefined creates a new empty PackedSplats or decoded from a\n // data source above)\n packedSplats?: PackedSplats;\n // Use an existing SplatSource object as the source instead of loading from file.\n splats?: SplatSource;\n // Reserve space for at least this many splats when constructing the mesh\n // initially. (default: determined by file)\n maxSplats?: number;\n // Callback function to programmatically create splats at initialization\n // in provided PackedSplats. (default: undefined)\n constructSplats?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Callback function that is called when mesh initialization is complete.\n // (default: undefined)\n onLoad?: (mesh: SplatMesh) => Promise | void;\n // Controls whether SplatEdits have any effect on this mesh. (default: true)\n editable?: boolean;\n // Controls whether SplatMesh participates in Three.js raycasting (default: true)\n raycastable?: boolean;\n // Minimum opacity for raycasting splats. (default: 0.2)\n minRaycastOpacity?: number;\n // Callback function that is called every frame to update the mesh.\n // Call mesh.updateVersion() if splats need to be regenerated due to some change.\n // Calling updateVersion() is not necessary for object transformations, recoloring,\n // or opacity adjustments as these are auto-detected. (default: undefined)\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n // Gsplat modifier to apply in object-space before any transformations.\n // A GsplatModifier is a dyno shader-graph block that transforms an input\n // gsplat: DynoVal to an output gsplat: DynoVal with gsplat.center\n // coordinate in object-space. (default: undefined)\n objectModifier?: GsplatModifier;\n objectModifiers?: GsplatModifier[];\n // Gsplat modifier to apply in world-space after transformations.\n // (default: undefined)\n worldModifier?: GsplatModifier;\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Set to true to load/use \"extended splat\" encoding with float32 x/y/z\n extSplats?: boolean | ExtSplats;\n // Set to true to output covariance splats for anisotropic scaling\n covSplats?: boolean;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Only create LoD if the input splat acount is above this (default: undefined=0)\n lodAbove?: number;\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Force enable/disable LoD (default: enabled iff packedSplats.lodSplats is not null)\n enableLod?: boolean;\n // LoD scale to apply @default 1.0\n lodScale?: number;\n // Foveation scale to apply behind viewer\n // (default: 1.0)\n behindFoveate?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction\n // with perfection foveation=1.0\n // (default: 0.0)\n coneFov0?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction. 0.0=disable\n // (default: 0.0)\n coneFov?: number;\n // Foveation scale to apply at the edge of the cone\n // (default: 1.0)\n coneFoveate?: number;\n paged?: boolean | PagedSplats | SplatPager;\n};\n\nexport type SplatMeshContext = {\n transform: SplatTransformer;\n viewToWorld: SplatTransformer;\n worldToView: SplatTransformer;\n viewToObject: SplatTransformer;\n covTransform: CovSplatTransformer;\n covViewToWorld: CovSplatTransformer;\n covWorldToView: CovSplatTransformer;\n covViewToObject: CovSplatTransformer;\n recolor: DynoVec4;\n time: DynoFloat;\n deltaTime: DynoFloat;\n numSplats: DynoInt;\n splats: SplatSource;\n enableLod: DynoBool;\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>;\n};\n\nexport interface SplatSource {\n prepareFetchSplat(): void;\n dispose(): void;\n\n getNumSplats(): number;\n hasRgbDir(): boolean;\n getNumSh(): number;\n setMaxSh(maxSh: number): void;\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n >;\n\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ): void;\n}\n\nexport class EmptySplatSource implements SplatSource {\n fetchDyno = new Dyno({\n inTypes: {},\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplat],\n statements: ({ outputs }) =>\n unindentLines(`\n ${outputs.gsplat}.flags = 0u;\n return;\n `),\n }).outputs.gsplat;\n\n prepareFetchSplat() {}\n dispose() {}\n\n getNumSplats() {\n return 0;\n }\n hasRgbDir() {\n return false;\n }\n getNumSh() {\n return 0;\n }\n setMaxSh(maxSh: number) {}\n\n fetchSplat({ index }: { index: DynoVal<\"int\"> }): DynoVal {\n return this.fetchDyno;\n }\n\n forEachSplat() {}\n}\n\nexport class SplatMesh extends SplatGenerator {\n // A Promise you can await to ensure fetching, parsing,\n // and initialization has completed\n initialized: Promise;\n // A boolean indicating whether initialization is complete\n isInitialized = false;\n\n // If you modify packedSplats you should set\n // splatMesh.packedSplats.needsUpdate = true to signal to Three.js that it\n // should re-upload the data to the underlying texture. Use this sparingly with\n // objects with smaller Gsplat counts as it requires a CPU-GPU data transfer for\n // each frame. Thousands to tens of thousands of Gsplats is fine. (See hands.ts\n // for an example of rendering \"Gsplat hands\" in WebXR using this technique.)\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n covSplats: boolean;\n splats?: SplatSource;\n lastSplats?: SplatSource;\n paged?: PagedSplats;\n\n // A THREE.Color that can be used to tint all splats in the mesh.\n // (default: new THREE.Color(1, 1, 1))\n recolor: THREE.Color = new THREE.Color(1, 1, 1);\n // Global opacity multiplier for all splats in the mesh. (default: 1)\n opacity = 1;\n\n // A SplatMeshContext consisting of useful scene and object dyno uniforms that can\n // be used to in the Gsplat processing pipeline, for example via objectModifier and\n // worldModifier. (created on construction)\n context: SplatMeshContext;\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n generatorDirty = true;\n\n objectModifiers?: GsplatModifier[];\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Set to true to have the viewToObject property in context be updated each frame.\n // If the mesh has extra.sh1 (first order spherical harmonics directional lighting)\n // this property will always be updated. (default: false)\n enableViewToObject = false;\n // Set to true to have context.viewToWorld updated each frame. (default: false)\n enableViewToWorld = false;\n // Set to true to have context.worldToView updated each frame. (default: false)\n enableWorldToView = false;\n\n // Optional SplatSkinning instance for animating splats with dual-quaternion\n // skeletal animation. (default: null)\n skinning: SplatSkinning | null = null;\n\n // Optional list of SplatEdits to apply to the mesh. If null, any SplatEdit\n // children in the scene graph will be added automatically. (default: null)\n edits: SplatEdit[] | null = null;\n editable: boolean;\n raycastable: boolean;\n minRaycastOpacity: number;\n raycastIndices?: { numSplats: number; indices: Uint32Array };\n // Compiled SplatEdits for applying SDF edits to splat RGBA + centers\n rgbaDisplaceEdits: SplatEdits | null = null;\n // Optional RgbaArray to overwrite splat RGBA values with custom values.\n // Useful for \"baking\" RGB and opacity edits into the SplatMesh. (default: null)\n splatRgba: RgbaArray | null = null;\n\n // Maximum Spherical Harmonics level to use. Call updateGenerator()\n // after changing. (default: 3)\n maxSh = 3;\n\n enableLod?: boolean;\n lodScale: number;\n behindFoveate?: number;\n coneFov0?: number;\n coneFov?: number;\n coneFoveate?: number;\n\n showLodPage?: number;\n showLodPageDyno = new DynoInt({ value: 0 });\n\n constructor(options: SplatMeshOptions = {}) {\n super({\n update: (context) => this.update(context),\n });\n\n if (options.splats) {\n this.splats = options.splats;\n this.numSplats = options.splats.getNumSplats();\n } else if (options.paged) {\n if (options.extSplats) {\n console.warn(\n \"To set extSplats with the paged option, set SparkRenderer.pagedExtSplats\",\n );\n }\n const rootUrl = options.url ?? \"\";\n if (options.paged === true) {\n this.paged = new PagedSplats({ rootUrl });\n } else if (options.paged instanceof PagedSplats) {\n this.paged = options.paged;\n } else if (options.paged instanceof SplatPager) {\n this.paged = new PagedSplats({ rootUrl, pager: options.paged });\n } else {\n throw new Error(\"Invalid paged option\");\n }\n this.splats = this.paged;\n } else if (options.extSplats) {\n this.extSplats =\n options.extSplats instanceof ExtSplats\n ? options.extSplats\n : new ExtSplats();\n options.extSplats = this.extSplats;\n this.numSplats = this.extSplats.numSplats;\n this.splats = this.extSplats;\n } else if (options.packedSplats) {\n this.packedSplats = options.packedSplats;\n this.packedSplats.splatEncoding = options.splatEncoding ?? {\n ...DEFAULT_SPLAT_ENCODING,\n };\n this.splats = this.packedSplats;\n } else {\n this.packedSplats = new PackedSplats();\n }\n\n this.editable = options.editable ?? true;\n this.raycastable = options.raycastable ?? true;\n this.minRaycastOpacity = options.minRaycastOpacity ?? 0.2;\n this.onFrame = options.onFrame;\n\n this.context = {\n transform: new SplatTransformer(),\n viewToWorld: new SplatTransformer(),\n worldToView: new SplatTransformer(),\n viewToObject: new SplatTransformer(),\n covTransform: new CovSplatTransformer(),\n covViewToWorld: new CovSplatTransformer(),\n covWorldToView: new CovSplatTransformer(),\n covViewToObject: new CovSplatTransformer(),\n recolor: new DynoVec4({\n value: new THREE.Vector4().setScalar(Number.NEGATIVE_INFINITY),\n }),\n time: new DynoFloat({ value: 0 }),\n deltaTime: new DynoFloat({ value: 0 }),\n numSplats: new DynoInt({ value: 0 }),\n splats: new EmptySplatSource(),\n enableLod: new DynoBool({ value: false }),\n lodIndices: new DynoUsampler2D({\n value: emptyLodIndices,\n key: \"lodIndices\",\n }),\n };\n\n this.covSplats = options.covSplats ?? false;\n if (this.covSplats && !this.extSplats) {\n throw new Error(\"CovSplats requires ExtSplats\");\n }\n\n this.objectModifiers = options.objectModifier\n ? [options.objectModifier]\n : undefined;\n this.worldModifiers = options.worldModifier\n ? [options.worldModifier]\n : undefined;\n\n if (options.objectModifiers) {\n this.objectModifiers = options.objectModifiers;\n }\n if (options.worldModifiers) {\n this.worldModifiers = options.worldModifiers;\n }\n\n this.enableLod = options.enableLod;\n this.lodScale = options.lodScale ?? 1.0;\n this.behindFoveate = options.behindFoveate;\n this.coneFov0 = options.coneFov0;\n this.coneFov = options.coneFov;\n this.coneFoveate = options.coneFoveate;\n\n this.updateGenerator();\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.constructSplats ||\n (options.packedSplats && !options.packedSplats.isInitialized) ||\n (this.extSplats && !this.extSplats.isInitialized)\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(async () => {\n this.updateGenerator();\n\n this.isInitialized = true;\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n return this;\n });\n } else {\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n // If onLoad returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n this.initialized = maybePromise.then(() => this);\n }\n }\n }\n\n // this.add(createRendererDetectionMesh());\n }\n\n async asyncInitialize(options: SplatMeshOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n } = options;\n if (this.packedSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const packedSplatsOptions = {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct: constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n };\n this.packedSplats.reinitialize(packedSplatsOptions);\n }\n await this.packedSplats.initialized;\n this.splats = this.packedSplats;\n } else if (this.extSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const construct = constructSplats as\n | ((splats: ExtSplats) => Promise)\n | undefined;\n this.extSplats.reinitialize({\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n });\n await this.extSplats.initialized;\n this.splats = this.extSplats;\n }\n }\n\n if (this.splats) {\n this.numSplats = this.splats.getNumSplats();\n this.updateGenerator();\n }\n }\n\n static staticInitialized = SplatMesh.staticInitialize();\n static isStaticInitialized = false;\n\n static dynoTime = new DynoFloat({ value: 0 });\n\n static async staticInitialize() {\n await init_wasm();\n SplatMesh.isStaticInitialized = true;\n }\n\n // Creates a new Gsplat with the provided parameters (all values in \"float\" space,\n // i.e. 0-1 for opacity and color) and adds it to the end of the packedSplats,\n // increasing numSplats by 1. If necessary, reallocates the buffer with an exponential\n // doubling strategy to fit the new data, so it's fairly efficient to just\n // pushSplat(...) each Gsplat you want to create in a loop.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n if (this.packedSplats) {\n this.packedSplats.pushSplat(center, scales, quaternion, opacity, color);\n } else if (this.extSplats) {\n this.extSplats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n\n // This method iterates over all Gsplats in this instance's packedSplats,\n // invoking the provided callback with index: number in 0..=(this.numSplats-1) and\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number (0..1), and color: THREE.Color (rgb values in 0..1).\n // Note that the objects passed in as center etc. are the same for every callback\n // invocation: these objects are reused for efficiency. Changing these values has\n // no effect as they are decoded/unpacked copies of the underlying data. To update\n // the packedSplats, call .packedSplats.setSplat(index, center, scales,\n // quaternion, opacity, color).\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n this.splats?.forEachSplat(callback);\n }\n\n // Call this when you are finished with the SplatMesh and want to free\n // any buffers it holds (via packedSplats).\n dispose() {\n if (\n this.splats &&\n this.splats !== this.packedSplats &&\n this.splats !== this.extSplats\n ) {\n this.splats.dispose();\n this.splats = undefined;\n }\n if (this.packedSplats) {\n this.packedSplats.dispose();\n this.packedSplats = undefined;\n }\n if (this.extSplats) {\n this.extSplats.dispose();\n this.extSplats = undefined;\n }\n }\n\n // Returns axis-aligned bounding box of the SplatMesh. If centers_only is true,\n // only the centers of the splats are used to compute the bounding box.\n // IMPORTANT: This should only be called after the SplatMesh is initialized.\n getBoundingBox(centers_only = true) {\n if (!this.initialized) {\n throw new Error(\n \"Cannot get bounding box before SplatMesh is initialized\",\n );\n }\n const minVec = new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n );\n const maxVec = new THREE.Vector3(\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n );\n const corners = new THREE.Vector3();\n const signs = [-1, 1];\n\n function callback(\n _index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n _opacity: number,\n _color: THREE.Color,\n ) {\n if (centers_only) {\n minVec.min(center);\n maxVec.max(center);\n } else {\n // Get the 8 corners of the AABB in local space\n for (const x of signs) {\n for (const y of signs) {\n for (const z of signs) {\n corners.set(x * scales.x, y * scales.y, z * scales.z);\n // Transform corner by rotation and position\n corners.applyQuaternion(quaternion);\n corners.add(center);\n minVec.min(corners);\n maxVec.max(corners);\n }\n }\n }\n }\n }\n\n this.splats?.forEachSplat(callback);\n const box = new THREE.Box3(minVec, maxVec);\n return box;\n }\n\n set objectModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.objectModifiers = [modifier];\n } else {\n this.objectModifiers = undefined;\n }\n }\n\n set worldModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.worldModifiers = [modifier];\n } else {\n this.worldModifiers = undefined;\n }\n }\n\n private constructGenerator(context: SplatMeshContext) {\n if (this.covSplats) {\n return this.constructCovGenerator(context);\n }\n\n const { transform, viewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.setMaxSh(this.maxSh);\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: viewToObject.translate,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n gsplat = this.skinning.modify(gsplat);\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // Transform from object to world-space\n gsplat = transform.applyGsplat(gsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitGsplat(gsplat).outputs.rgba);\n gsplat = combineGsplat({ gsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n gsplat = this.rgbaDisplaceEdits.modify(gsplat);\n }\n\n if (this.worldModifiers) {\n // Inject world-space Gsplat modifier dyno\n for (const modifier of this.worldModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { gsplat };\n },\n );\n this.generator = generator;\n this.covGenerator = undefined;\n }\n\n constructCovGenerator(context: SplatMeshContext) {\n // console.log(\"CovSplatMesh.constructCovGenerator\");\n const { covTransform, covViewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { covsplat: CovSplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: covViewToObject.offset,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n let covsplat = gsplatToCovSplat(gsplat);\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n covsplat = this.skinning.modifyCov(covsplat);\n }\n\n if (this.covObjectModifiers) {\n // Inject object-space CovSplat modifier dyno\n for (const modifier of this.covObjectModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // Transform from object to world-space\n covsplat = covTransform.applyCovSplat(covsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitCovSplat(covsplat).outputs.rgba);\n covsplat = combineCovSplat({ covsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n covsplat = this.rgbaDisplaceEdits.modifyCov(covsplat);\n }\n\n if (this.covWorldModifiers) {\n // Inject world-space CovSplat modifier dyno\n for (const modifier of this.covWorldModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { covsplat };\n },\n );\n this.generator = undefined;\n this.covGenerator = generator;\n }\n\n // Call this whenever something changes in the Gsplat processing pipeline,\n // for example changing maxSh or updating objectModifier or worldModifier.\n // Compiled generators are cached for efficiency and re-use when the same\n // pipeline structure emerges after successive changes.\n updateGenerator() {\n this.generatorDirty = true;\n }\n\n // This is called automatically by SparkRenderer and you should not have to\n // call it. It updates parameters for the generated pipeline and calls\n // updateGenerator() if the pipeline needs to change.\n update({\n renderer,\n time,\n deltaTime,\n viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices,\n }: FrameUpdateContext) {\n this.context.time.value = time;\n this.context.deltaTime.value = deltaTime;\n SplatMesh.dynoTime.value = time;\n this.showLodPageDyno.value = this.showLodPage ?? -1;\n\n const splats = this.splats ?? this.packedSplats ?? this.extSplats;\n if (splats) {\n this.context.splats = splats;\n }\n this.numSplats = this.context.splats.getNumSplats();\n\n let updated = false;\n\n const lodSplats = this.packedSplats?.lodSplats ?? this.extSplats?.lodSplats;\n this.context.enableLod.value = lodSplats != null && lodIndices != null;\n if (this.enableLod === false) {\n this.context.enableLod.value = false;\n }\n this.context.lodIndices.value = lodIndices?.texture ?? emptyLodIndices;\n\n if (this.context.enableLod.value && lodSplats) {\n this.context.splats = lodSplats;\n this.numSplats = lodIndices?.numSplats ?? 0;\n }\n\n this.context.numSplats.value = this.numSplats;\n\n if (this.context.splats !== this.lastSplats) {\n this.lastSplats = this.context.splats;\n this.generatorDirty = true;\n }\n\n if (!this.covSplats) {\n if (this.context.transform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.viewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.worldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const objectToWorld = new THREE.Matrix4().compose(\n this.context.transform.translate.value,\n this.context.transform.rotate.value,\n new THREE.Vector3().setScalar(this.context.transform.scale.value),\n );\n const worldToObject = objectToWorld.invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.viewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n } else {\n if (this.context.covTransform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.covViewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.covWorldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const worldToObject = this.matrixWorld.clone().invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.covViewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n }\n\n const newRecolor = new THREE.Vector4(\n this.recolor.r,\n this.recolor.g,\n this.recolor.b,\n this.opacity,\n );\n if (!newRecolor.equals(this.context.recolor.value)) {\n this.context.recolor.value.copy(newRecolor);\n updated = true;\n }\n\n const edits = this.editable ? (this.edits ?? []).concat(globalEdits) : [];\n if (this.editable && !this.edits) {\n // If we haven't set any explicit edits, add any child SplatEdits\n this.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n edits.push(node);\n }\n });\n }\n\n edits.sort((a, b) => a.ordering - b.ordering);\n const editsSdfs = edits.map((edit) => {\n if (edit.sdfs != null) {\n return { edit, sdfs: edit.sdfs };\n }\n const sdfs: SplatEditSdf[] = [];\n edit.traverseVisible((node) => {\n if (node instanceof SplatEditSdf) {\n sdfs.push(node);\n }\n });\n return { edit, sdfs };\n });\n\n if (editsSdfs.length > 0 && !this.rgbaDisplaceEdits) {\n const edits = editsSdfs.length;\n const sdfs = editsSdfs.reduce(\n (total, edit) => total + edit.sdfs.length,\n 0,\n );\n this.rgbaDisplaceEdits = new SplatEdits({\n maxEdits: edits,\n maxSdfs: sdfs,\n });\n this.generatorDirty = true;\n }\n if (this.rgbaDisplaceEdits) {\n const editResult = this.rgbaDisplaceEdits.update(editsSdfs);\n updated ||= editResult.updated;\n if (editResult.dynoUpdated) {\n this.generatorDirty = true;\n }\n }\n\n if (this.generatorDirty) {\n this.constructGenerator(this.context);\n this.generatorDirty = false;\n updated = true;\n }\n\n if (updated) {\n this.updateVersion();\n }\n\n this.onFrame?.({ mesh: this, time, deltaTime });\n }\n\n // This method conforms to the standard THREE.Raycaster API, performing object-ray\n // intersections using this method to populate the provided intersects[] array\n // with each intersection point.\n raycast(\n raycaster: THREE.Raycaster,\n intersects: {\n distance: number;\n point: THREE.Vector3;\n object: THREE.Object3D;\n }[],\n ) {\n if (\n !SplatMesh.isStaticInitialized ||\n !this.raycastable ||\n (!this.packedSplats && !this.extSplats && !this.paged)\n ) {\n return;\n }\n const paged = this.paged != null;\n const ext = paged\n ? (this.paged?.pager?.extSplats ?? false)\n : this.extSplats != null;\n\n const { near, far, ray } = raycaster;\n const worldToMesh = this.matrixWorld.clone().invert();\n const worldToMeshRot = new THREE.Matrix3().setFromMatrix4(worldToMesh);\n const origin = ray.origin.clone().applyMatrix4(worldToMesh);\n const direction = ray.direction.clone().applyMatrix3(worldToMeshRot);\n\n const buffer = get_raycast_buffer();\n const bufferSize = buffer.length / 4;\n let intersections = 0;\n\n const numSplats =\n this.raycastIndices?.numSplats ??\n (paged ? this.paged?.numSplats : this.context.numSplats.value) ??\n 0;\n const indices =\n this.raycastIndices?.indices ??\n (paged\n ? (this.paged?.dynoIndices.value.image.data as Uint32Array)\n : this.context.enableLod.value\n ? (this.context.lodIndices.value.image.data as Uint32Array)\n : null) ??\n null;\n\n if (!ext) {\n const packed = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.packedSplats?.lodSplats?.packedArray\n : this.packedSplats?.packedArray;\n if (!packed) {\n return;\n }\n const splatEncoding = paged\n ? this.paged?.splatEncoding\n : this.packedSplats?.splatEncoding;\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(packed.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = packed[index4];\n buffer[i4 + 1] = packed[index4 + 1];\n buffer[i4 + 2] = packed[index4 + 2];\n buffer[i4 + 3] = packed[index4 + 3];\n }\n }\n\n const newIntersections = raycast_packed_buffer(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n splatEncoding?.lodOpacity ?? false,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n } else {\n const buffer2 = get_raycast_buffer2();\n const ext1 = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[0]\n : this.extSplats?.extArrays[0];\n const ext2 = paged\n ? (this.paged?.pager?.extTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[1]\n : this.extSplats?.extArrays[1];\n if (!ext1 || !ext2) {\n return;\n }\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(ext1.subarray(base * 4, (base + count) * 4));\n buffer2.set(ext2.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = ext1[index4];\n buffer[i4 + 1] = ext1[index4 + 1];\n buffer[i4 + 2] = ext1[index4 + 2];\n buffer[i4 + 3] = ext1[index4 + 3];\n buffer2[i4] = ext2[index4];\n buffer2[i4 + 1] = ext2[index4 + 1];\n buffer2[i4 + 2] = ext2[index4 + 2];\n buffer2[i4 + 3] = ext2[index4 + 3];\n }\n }\n\n const newIntersections = raycast_ext_buffers(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n }\n\n for (const distance of SplatMesh.raycastBuffer.subarray(0, intersections)) {\n const point = ray.direction\n .clone()\n .multiplyScalar(distance)\n .add(ray.origin);\n intersects.push({\n distance,\n point,\n object: this,\n });\n }\n }\n\n static raycastBuffer = new Float32Array(1024);\n\n private appendRaycastBuffer(count: number, additional: Float32Array) {\n const total = count + additional.length;\n let capacity = SplatMesh.raycastBuffer.length;\n\n if (total > capacity) {\n while (capacity < total) {\n capacity *= 2;\n }\n const newBuffer = new Float32Array(capacity);\n newBuffer.set(SplatMesh.raycastBuffer.subarray(0, count));\n SplatMesh.raycastBuffer = newBuffer;\n }\n\n SplatMesh.raycastBuffer.set(additional, count);\n return count + additional.length;\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n if (this.packedSplats) {\n await this.packedSplats.createLodSplats({ quality, rgbaArray });\n } else if (this.extSplats) {\n await this.extSplats.createLodSplats({ quality, rgbaArray });\n }\n }\n}\n\nexport function maybeLookupIndex(\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>,\n index: DynoVal<\"int\">,\n numSplats: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n showLodPage: DynoVal<\"int\">,\n) {\n return dyno({\n inTypes: {\n lodIndices: \"usampler2D\",\n index: \"int\",\n numSplats: \"int\",\n enableLod: \"bool\",\n showLodPage: \"int\",\n },\n outTypes: {\n index: \"int\",\n },\n inputs: {\n lodIndices,\n index,\n numSplats,\n enableLod,\n showLodPage,\n },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n int index = ${inputs.index};\n if (${inputs.showLodPage} < 0) {\n if (index >= ${inputs.numSplats}) {\n return;\n }\n if (${inputs.enableLod}) {\n ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14);\n uint splatIndex = texelFetch(${inputs.lodIndices}, lodIndexCoord, 0)[index & 3];\n ${outputs.index} = int(splatIndex);\n } else {\n ${outputs.index} = index;\n }\n } else {\n int start = ${inputs.showLodPage} << 16;\n if (index >= 65536) {\n return;\n }\n ${outputs.index} = start + index;\n }\n `),\n }).outputs.index;\n}\n\nexport function maybeInjectSplatRgba(\n gsplat: DynoVal,\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n): DynoVal {\n return dyno({\n inTypes: {\n gsplat: Gsplat,\n rgba: TRgbaArray,\n index: \"int\",\n enableLod: \"bool\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, rgba, index, enableLod },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n ${outputs.gsplat} = ${inputs.gsplat};\n if (!${inputs.enableLod} && (${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.gsplat}.rgba = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n }\n `),\n }).outputs.gsplat;\n}\n\nexport const emptyLodIndices = (() => {\n const texture = new THREE.DataTexture(\n new Uint32Array(16384),\n 4096,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n})();\n\nconst EMPTY_GEOMETRY = new THREE.BufferGeometry();\nconst EMPTY_MATERIAL = new THREE.ShaderMaterial();\n\n// Creates an empty mesh to hook into Three.js rendering.\n// This is used to detect if a SparkRenderer is present in the scene.\n// If not, one will be injected automatically.\nfunction createRendererDetectionMesh(): THREE.Mesh {\n const mesh = new THREE.Mesh(EMPTY_GEOMETRY, EMPTY_MATERIAL);\n mesh.frustumCulled = false;\n mesh.onBeforeRender = function (renderer, scene) {\n if (!scene.isScene) {\n // The SplatMesh is part of render call that doesn't have a Scene at its root\n // Don't auto-inject a renderer.\n this.removeFromParent();\n return;\n }\n\n // Check if the scene has a SparkRenderer instance\n let hasSparkRenderer = false;\n scene.traverse((c) => {\n if (c instanceof SparkRenderer || c instanceof OldSparkRenderer) {\n hasSparkRenderer = true;\n }\n });\n\n if (!hasSparkRenderer) {\n // No spark renderer present in the scene, inject one.\n scene.add(new SparkRenderer({ renderer }));\n }\n\n // Remove mesh to stop checking\n this.removeFromParent();\n };\n return mesh;\n}\n","// PLY file format reader\n\nimport { USE_COMPILED_PARSER_FUNCTION } from \"./defines\";\n\nconst PLY_PROPERTY_TYPES = [\n \"char\",\n \"uchar\",\n \"short\",\n \"ushort\",\n \"int\",\n \"uint\",\n \"float\",\n \"double\",\n] as const;\nexport type PlyPropertyType = (typeof PLY_PROPERTY_TYPES)[number];\n\nexport type PlyElement = {\n name: string;\n count: number;\n properties: Record;\n};\n\nexport type PlyProperty = {\n isList: boolean;\n type: PlyPropertyType;\n countType?: PlyPropertyType;\n};\n\n// Callback for parseSplats base Gsplat data\nexport type SplatCallback = (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) => void;\n\n// Callback for parseSplats SH coefficients\nexport type SplatShCallback = (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n) => void;\n\n// A PlyReader is used to parse PLY files for Gsplat data.\n// It takes a Uint8Array/ArrayBuffer as input fileBytes, parses the text header,\n// and provides a method parseData to iterate over the entire binary data\n// efficiently, or parseSplats to iterate over Gsplat data.\n\nexport class PlyReader {\n fileBytes: Uint8Array;\n header = \"\";\n littleEndian = true;\n elements: Record = {};\n comments: string[] = [];\n data: DataView | null = null;\n static defaultPointScale = 0.001;\n\n numSplats = 0;\n\n // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n }\n\n // Identify and parse the PLY text header (assumed to be <64KB in size).\n // this.elements will contain all the elements in the file, typically\n // \"vertex\" contains the Gsplat data.\n async parseHeader() {\n const bufferStream = new ReadableStream({\n start: (\n controller: ReadableStreamController>,\n ) => {\n // Assume the header is less than 64KB\n controller.enqueue(this.fileBytes.slice(0, 65536));\n controller.close();\n },\n });\n const decoder = bufferStream\n .pipeThrough(new TextDecoderStream())\n .getReader();\n\n // Find the end of the text section of the PLY file\n this.header = \"\";\n const headerTerminator = \"end_header\\n\";\n while (true) {\n const { value, done } = await decoder.read();\n if (done) {\n throw new Error(\"Failed to read header\");\n }\n\n this.header += value as string;\n const endHeader = this.header.indexOf(headerTerminator);\n if (endHeader >= 0) {\n this.header = this.header.slice(0, endHeader + headerTerminator.length);\n break;\n }\n }\n // Partition the file into header and binary data\n const headerLen = new TextEncoder().encode(this.header).length;\n this.data = new DataView(this.fileBytes.buffer, headerLen);\n\n this.elements = {};\n let curElement: PlyElement | null = null;\n this.comments = [];\n\n this.header\n .trim()\n .split(\"\\n\")\n .forEach((line: string, lineIndex: number) => {\n const trimmedLine = line.trim();\n if (lineIndex === 0) {\n if (trimmedLine !== \"ply\") {\n throw new Error(\"Invalid PLY header\");\n }\n return;\n }\n if (trimmedLine.length === 0) {\n return; // Skip empty lines\n }\n\n const fields = trimmedLine.split(\" \");\n switch (fields[0]) {\n case \"format\":\n if (fields[1] === \"binary_little_endian\") {\n this.littleEndian = true;\n } else if (fields[1] === \"binary_big_endian\") {\n this.littleEndian = false;\n } else {\n // ascii formats not supported\n throw new Error(`Unsupported PLY format: ${fields[1]}`);\n }\n if (fields[2] !== \"1.0\") {\n throw new Error(`Unsupported PLY version: ${fields[2]}`);\n }\n break;\n case \"end_header\":\n break;\n case \"comment\":\n this.comments.push(trimmedLine.slice(\"comment \".length));\n break;\n case \"element\": {\n const name = fields[1];\n curElement = {\n name,\n count: Number.parseInt(fields[2]),\n properties: {},\n };\n this.elements[name] = curElement;\n break;\n }\n case \"property\":\n if (curElement == null) {\n throw new Error(\"Property must be inside an element\");\n }\n if (fields[1] === \"list\") {\n curElement.properties[fields[4]] = {\n isList: true,\n type: fields[3] as PlyPropertyType,\n countType: fields[2] as PlyPropertyType,\n };\n } else {\n curElement.properties[fields[2]] = {\n isList: false,\n type: fields[1] as PlyPropertyType,\n };\n }\n break;\n default:\n // console.warn(`Skipping unsupported PLY keyword: ${fields[0]}`);\n }\n });\n\n if (this.elements.vertex) {\n this.numSplats = this.elements.vertex.count;\n }\n }\n\n parseData(\n elementCallback: (\n element: PlyElement,\n ) =>\n | null\n | ((index: number, item: Record) => void),\n ) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No data to parse\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const item = createEmptyItem(properties);\n // Construct a parse function\n const parseFn = createParseFn(properties, this.littleEndian);\n\n // Parse all the items in the element\n const callback = elementCallback(element) ?? (() => {});\n for (let index = 0; index < count; index++) {\n offset = parseFn(data, offset, item);\n callback(index, item);\n }\n }\n }\n\n // Parse all the Gsplat data in the PLY file in go, invoking the given\n // callbacks for each Gsplat.\n parseSplats(splatCallback: SplatCallback, shCallback?: SplatShCallback) {\n if (this.elements.vertex == null) {\n throw new Error(\"No vertex element found\");\n }\n\n let isSuperSplat = false;\n const ssChunks: SSChunk[] = [];\n\n let numSh = 0;\n let sh1Props: number[] = [];\n let sh2Props: number[] = [];\n let sh3Props: number[] = [];\n let sh1: Float32Array | undefined = undefined;\n let sh2: Float32Array | undefined = undefined;\n let sh3: Float32Array | undefined = undefined;\n\n function prepareSh() {\n // Prepare SH coefficient names and arrays for numSh total SH levels\n const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh];\n sh1Props = new Array(3)\n .fill(null)\n .flatMap((_, k) => [0, 1, 2].map((_, d) => k + (d * num_f_rest) / 3));\n sh2Props = new Array(5)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 3 + k + (d * num_f_rest) / 3),\n );\n sh3Props = new Array(7)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 8 + k + (d * num_f_rest) / 3),\n );\n sh1 = numSh >= 1 ? new Float32Array(3 * 3) : undefined;\n sh2 = numSh >= 2 ? new Float32Array(5 * 3) : undefined;\n sh3 = numSh >= 3 ? new Float32Array(7 * 3) : undefined;\n }\n\n function ssShCallback(\n index: number,\n item: Record,\n ) {\n // Decode SH for SuperSplat compressed data\n if (!sh1) {\n throw new Error(\"Missing sh1\");\n }\n const sh = item.f_rest as number[];\n\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = (sh[sh1Props[i]] * 8) / 255 - 4;\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = (sh[sh2Props[i]] * 8) / 255 - 4;\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = (sh[sh3Props[i]] * 8) / 255 - 4;\n }\n }\n shCallback?.(index, sh1, sh2, sh3);\n }\n\n function initSuperSplat(element: PlyElement) {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n } = element.properties;\n if (\n !min_x ||\n !min_y ||\n !min_z ||\n !max_x ||\n !max_y ||\n !max_z ||\n !min_scale_x ||\n !min_scale_y ||\n !min_scale_z ||\n !max_scale_x ||\n !max_scale_y ||\n !max_scale_z\n ) {\n throw new Error(\"Missing PLY chunk properties\");\n }\n\n // SuperSplat chunks are used to quantize splat data, so we need to store them\n isSuperSplat = true;\n return (index: number, item: Record) => {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = item as Record;\n ssChunks.push({\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n });\n };\n }\n\n function decodeSuperSplat(element: PlyElement) {\n // Decode SuperSplat compressed data in vertex and sh elements\n if (shCallback && element.name === \"sh\") {\n numSh = getNumSh(element.properties);\n prepareSh();\n return ssShCallback;\n }\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n element.properties;\n if (\n !packed_position ||\n !packed_rotation ||\n !packed_scale ||\n !packed_color\n ) {\n throw new Error(\n \"Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color\",\n );\n }\n\n const SQRT2 = Math.sqrt(2);\n\n return (index: number, item: Record) => {\n // SuperSplat data are quantized within chunks with 256 Gsplats each\n const chunk = ssChunks[index >>> 8];\n if (chunk == null) {\n throw new Error(\"Missing PLY chunk\");\n }\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = chunk;\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n item as Record;\n\n const x =\n (((packed_position >>> 21) & 2047) / 2047) * (max_x - min_x) + min_x;\n const y =\n (((packed_position >>> 11) & 1023) / 1023) * (max_y - min_y) + min_y;\n const z = ((packed_position & 2047) / 2047) * (max_z - min_z) + min_z;\n\n const r0 = (((packed_rotation >>> 20) & 1023) / 1023 - 0.5) * SQRT2;\n const r1 = (((packed_rotation >>> 10) & 1023) / 1023 - 0.5) * SQRT2;\n const r2 = ((packed_rotation & 1023) / 1023 - 0.5) * SQRT2;\n const rr = Math.sqrt(Math.max(0, 1.0 - r0 * r0 - r1 * r1 - r2 * r2));\n\n const rOrder = packed_rotation >>> 30;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n\n const scaleX = Math.exp(\n (((packed_scale >>> 21) & 2047) / 2047) *\n (max_scale_x - min_scale_x) +\n min_scale_x,\n );\n const scaleY = Math.exp(\n (((packed_scale >>> 11) & 1023) / 1023) *\n (max_scale_y - min_scale_y) +\n min_scale_y,\n );\n const scaleZ = Math.exp(\n ((packed_scale & 2047) / 2047) * (max_scale_z - min_scale_z) +\n min_scale_z,\n );\n\n const r =\n (((packed_color >>> 24) & 255) / 255) *\n ((max_r ?? 1) - (min_r ?? 0)) +\n (min_r ?? 0);\n const g =\n (((packed_color >>> 16) & 255) / 255) *\n ((max_g ?? 1) - (min_g ?? 0)) +\n (min_g ?? 0);\n const b =\n (((packed_color >>> 8) & 255) / 255) * ((max_b ?? 1) - (min_b ?? 0)) +\n (min_b ?? 0);\n const opacity = (packed_color & 255) / 255;\n\n splatCallback(\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n };\n }\n\n const elementCallback = (element: PlyElement) => {\n if (element.name === \"chunk\") {\n // \"chunk\" could conceivably be used for other formats, and we would\n // ideally check for the comment: Generated by SuperSplat 2.*\n // but gsplat also outputs this format without such a comment.\n // In order to support both, let's assume a \"chunk\" element should\n // be interpreted as this format.\n return initSuperSplat(element);\n }\n if (isSuperSplat) {\n return decodeSuperSplat(element);\n }\n\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const {\n x,\n y,\n z,\n scale_0,\n scale_1,\n scale_2,\n rot_0,\n rot_1,\n rot_2,\n rot_3,\n opacity,\n f_dc_0,\n f_dc_1,\n f_dc_2,\n red,\n green,\n blue,\n alpha,\n } = element.properties;\n\n if (!x || !y || !z) {\n throw new Error(\"Missing PLY properties: x, y, z\");\n }\n // Pure point cloud PLY files have no scales or rotations\n const hasScales = scale_0 && scale_1 && scale_2;\n const hasRots = rot_0 && rot_1 && rot_2 && rot_3;\n // Quantization scale factor for argb values\n const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1;\n const redDiv = red != null ? FIELD_SCALE[red.type] : 1;\n const greenDiv = green != null ? FIELD_SCALE[green.type] : 1;\n const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1;\n\n numSh = getNumSh(element.properties);\n prepareSh();\n\n return (index: number, item: Record) => {\n const scaleX = hasScales\n ? Math.exp(item.scale_0 as number)\n : PlyReader.defaultPointScale;\n const scaleY = hasScales\n ? Math.exp(item.scale_1 as number)\n : PlyReader.defaultPointScale;\n const scaleZ = hasScales\n ? Math.exp(item.scale_2 as number)\n : PlyReader.defaultPointScale;\n\n const quatX = hasRots ? (item.rot_1 as number) : 0;\n const quatY = hasRots ? (item.rot_2 as number) : 0;\n const quatZ = hasRots ? (item.rot_3 as number) : 0;\n const quatW = hasRots ? (item.rot_0 as number) : 1;\n\n const op =\n opacity != null\n ? 1.0 / (1.0 + Math.exp(-item.opacity as number))\n : alpha != null\n ? (item.alpha as number) / alphaDiv\n : 1.0;\n const r =\n f_dc_0 != null\n ? (item.f_dc_0 as number) * SH_C0 + 0.5\n : red != null\n ? (item.red as number) / redDiv\n : 1.0;\n const g =\n f_dc_1 != null\n ? (item.f_dc_1 as number) * SH_C0 + 0.5\n : green != null\n ? (item.green as number) / greenDiv\n : 1.0;\n const b =\n f_dc_2 != null\n ? (item.f_dc_2 as number) * SH_C0 + 0.5\n : blue != null\n ? (item.blue as number) / blueDiv\n : 1.0;\n\n splatCallback(\n index,\n item.x as number,\n item.y as number,\n item.z as number,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n op,\n r,\n g,\n b,\n );\n\n if (shCallback && sh1) {\n const sh = item.f_rest as number[];\n if (sh1) {\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = sh[sh1Props[i]];\n }\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = sh[sh2Props[i]];\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = sh[sh3Props[i]];\n }\n }\n shCallback(index, sh1, sh2, sh3);\n }\n };\n };\n\n this.parseData(elementCallback);\n }\n\n // Inject RGBA values into original PLY file, which can be used to modify\n // the color/opacity of the Gsplats and write out the modified PLY file.\n injectRgba(rgba: Uint8Array) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No parsed data\");\n }\n if (rgba.length !== this.numSplats * 4) {\n throw new Error(\"Invalid RGBA array length\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const parsers = [];\n\n let rgbaOffset = 0;\n const isVertex = elementName === \"vertex\";\n if (isVertex) {\n for (const name of [\"opacity\", \"f_dc_0\", \"f_dc_1\", \"f_dc_2\"]) {\n if (!properties[name] || properties[name].type !== \"float\") {\n throw new Error(`Can't injectRgba due to property: ${name}`);\n }\n }\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!property.isList) {\n if (isVertex) {\n if (\n propertyName === \"f_dc_0\" ||\n propertyName === \"f_dc_1\" ||\n propertyName === \"f_dc_2\"\n ) {\n const component = Number.parseInt(\n propertyName.slice(\"f_dc_\".length),\n );\n parsers.push(() => {\n // Inject DC coefficients\n const value =\n (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0;\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n } else if (propertyName === \"opacity\") {\n parsers.push(() => {\n // Inject opacity sigmoid, clamped to [-100, 100]\n const value = Math.max(\n -100,\n Math.min(\n 100,\n -Math.log(1.0 / (rgba[rgbaOffset + 3] / 255) - 1.0),\n ),\n );\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n }\n }\n parsers.push(() => {\n offset += FIELD_BYTES[property.type];\n });\n } else {\n parsers.push(() => {\n const length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n this.littleEndian,\n );\n offset += FIELD_BYTES[property.countType as PlyPropertyType];\n offset += length * FIELD_BYTES[property.type];\n });\n }\n }\n\n for (let index = 0; index < count; index++) {\n // Go through all the data and field parsers to compute offset\n for (const parser of parsers) {\n parser();\n }\n if (isVertex) {\n rgbaOffset += 4;\n }\n }\n }\n }\n}\n\nexport const SH_C0 = 0.28209479177387814;\n\ntype FieldParser = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n) => number;\ntype FieldSetter = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n) => void;\n\nconst PARSE_FIELD: Record = {\n char: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt8(offset);\n },\n uchar: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint8(offset);\n },\n short: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt16(offset, littleEndian);\n },\n ushort: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint16(offset, littleEndian);\n },\n int: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt32(offset, littleEndian);\n },\n uint: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint32(offset, littleEndian);\n },\n float: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat32(offset, littleEndian);\n },\n double: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat64(offset, littleEndian);\n },\n};\n\nconst SET_FIELD: Record = {\n char: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt8(offset, value);\n },\n uchar: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint8(offset, value);\n },\n short: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt16(offset, value, littleEndian);\n },\n ushort: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint16(offset, value, littleEndian);\n },\n int: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt32(offset, value, littleEndian);\n },\n uint: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint32(offset, value, littleEndian);\n },\n float: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat32(offset, value, littleEndian);\n },\n double: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat64(offset, value, littleEndian);\n },\n};\n\nconst FIELD_BYTES: Record = {\n char: 1,\n uchar: 1,\n short: 2,\n ushort: 2,\n int: 4,\n uint: 4,\n float: 4,\n double: 8,\n};\n\nconst FIELD_SCALE: Record = {\n char: 127,\n uchar: 255,\n short: 32767,\n ushort: 65535,\n int: 2147483647,\n uint: 4294967295,\n float: 1,\n double: 1,\n};\n\nconst NUM_F_REST_TO_NUM_SH: Record = {\n 0: 0,\n 9: 1,\n 24: 2,\n 45: 3,\n};\nconst NUM_SH_TO_NUM_F_REST: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nconst F_REST_REGEX = /^f_rest_([0-9]{1,2})$/;\n\nfunction createEmptyItem(\n properties: Record,\n): Record {\n const item: Record = {};\n for (const [propertyName, property] of Object.entries(properties)) {\n // Treat f_rest properties as a single array for performance\n if (F_REST_REGEX.test(propertyName)) {\n item.f_rest = new Array(getNumSh(properties));\n } else {\n item[propertyName] = property.isList ? [] : 0;\n }\n }\n return item;\n}\n\nfunction createParseFn(\n properties: Record,\n littleEndian: boolean,\n) {\n if (USE_COMPILED_PARSER_FUNCTION && safeToCompile(properties)) {\n return createCompiledParserFn(properties, littleEndian);\n }\n return createDynamicParserFn(properties, littleEndian);\n}\n\n// Detect if unsafe eval is allowed in the current execution context\nconst UNSAFE_EVAL_ALLOWED = (() => {\n try {\n new Function(\"return 42;\");\n } catch (e) {\n return false;\n }\n return true;\n})();\nconst PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/;\n\nfunction safeToCompile(properties: Record) {\n if (!UNSAFE_EVAL_ALLOWED) {\n return false;\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!PROPERTY_NAME_REGEX.test(propertyName)) {\n return false;\n }\n\n if (\n property.isList &&\n !PLY_PROPERTY_TYPES.includes(property.countType as PlyPropertyType)\n ) {\n return false;\n }\n\n if (!PLY_PROPERTY_TYPES.includes(property.type)) {\n return false;\n }\n }\n return true;\n}\n\nfunction createCompiledParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct the parser function source.\n const parserSrc: string[] = [\"let list;\"];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parserSrc.push(/*js*/ `\n item.f_rest[${fRestIndex}] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else if (!property.isList) {\n parserSrc.push(/*js*/ `\n item['${propertyName}'] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else {\n // Property is a list, so parse the count first\n parserSrc.push(/*js*/ `\n list = item['${propertyName}'];\n list.length = PARSE_FIELD['${property.countType}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.countType as PlyPropertyType]};\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n }\n `);\n }\n }\n parserSrc.push(\"return offset;\");\n\n const fn = new Function(\n \"data\",\n \"offset\",\n \"item\",\n \"PARSE_FIELD\",\n parserSrc.join(\"\\n\"),\n );\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => fn(data, offset, item, PARSE_FIELD);\n}\n\nfunction createDynamicParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct an array of parser function to parse each property in an item\n const parsers: Array<\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => number\n > = [];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n (item.f_rest as number[])[fRestIndex] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else if (!property.isList) {\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n item[propertyName] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else {\n // Property is a list, so parse the count first\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n const list = item[propertyName] as number[];\n list.length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n littleEndian,\n );\n let currentOffset =\n offset + FIELD_BYTES[property.countType as PlyPropertyType];\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD[property.type](\n data,\n currentOffset,\n littleEndian,\n );\n currentOffset += FIELD_BYTES[property.type];\n }\n return currentOffset;\n },\n );\n }\n }\n\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n let currentOffset = offset;\n for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) {\n currentOffset = parsers[parserIndex](data, currentOffset, item);\n }\n return currentOffset;\n };\n}\n\nfunction getNumSh(properties: Record) {\n let num_f_rest = 0;\n while (properties[`f_rest_${num_f_rest}`]) {\n num_f_rest += 1;\n }\n const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest];\n if (numSh == null) {\n throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`);\n }\n return numSh;\n}\n\ntype SSChunk = {\n min_x: number;\n min_y: number;\n min_z: number;\n max_x: number;\n max_y: number;\n max_z: number;\n min_scale_x: number;\n min_scale_y: number;\n min_scale_z: number;\n max_scale_x: number;\n max_scale_y: number;\n max_scale_z: number;\n min_r?: number;\n min_g?: number;\n min_b?: number;\n max_r?: number;\n max_g?: number;\n max_b?: number;\n};\n","import { unzipSync } from \"fflate\";\nimport { FileLoader, Loader, type LoadingManager } from \"three\";\nimport { ExtSplats, type ExtSplatsOptions } from \"./ExtSplats\";\nimport { withWorker } from \"./OldSplatWorker\";\nimport { PackedSplats, type PackedSplatsOptions } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { type SplatEncoding, SplatFileType } from \"./defines\";\nimport { PlyReader } from \"./ply\";\nimport { decompressPartialGzip, getTextureSize } from \"./utils\";\n\n// SplatLoader implements the THREE.Loader interface and supports loading a variety\n// of different Gsplat file formats. Formats .PLY and .SPZ can be auto-detected\n// from the file contents, while .SPLAT and .KSPLAT require either having the\n// appropriate file extension as part of the path, or it can be explicitly set\n// in the loader using the fileType property.\n\nexport class SplatLoader extends Loader {\n fileLoader: FileLoader;\n\n constructor(manager?: LoadingManager) {\n super(manager);\n this.fileLoader = new FileLoader(manager);\n }\n\n load(\n url: string,\n onLoad?: (decoded: PackedSplats | ExtSplats) => void,\n onProgress?: (event: ProgressEvent) => void,\n onError?: (error: unknown) => void,\n ) {\n return this.loadInternal({\n url,\n onLoad,\n onProgress,\n onError,\n });\n }\n\n async loadAsync(\n url: string,\n onProgress?: (event: ProgressEvent) => void,\n ): Promise {\n return new Promise((resolve, reject) => {\n this.load(\n url,\n (decoded) => {\n resolve(decoded);\n },\n onProgress,\n reject,\n );\n });\n }\n\n parse(packedSplats: PackedSplats): SplatMesh {\n return new SplatMesh({ packedSplats });\n }\n\n loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad,\n onProgress,\n onError,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onLoad?: (decoded: PackedSplats | ExtSplats) => void;\n onProgress?: (event: ProgressEvent) => void;\n onError?: (error: unknown) => void;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n if (fileBytes instanceof ArrayBuffer) {\n fileBytes = new Uint8Array(fileBytes);\n }\n const resolvedURL = fileBytes\n ? undefined\n : this.manager.resolveURL((this.path ?? \"\") + (url ?? \"\"));\n\n let readStream = stream?.getReader();\n\n this.manager.itemStart(resolvedURL ?? \"\");\n // let calledOnLoad = false;\n\n workerPool\n .withWorker(async (worker) => {\n // If LoD is set and not falsey\n const splatsLod = packedSplats?.lod ?? extSplats?.lod;\n if (splatsLod) {\n lod = splatsLod;\n }\n const splatsNonLod = packedSplats?.nonLod ?? extSplats?.nonLod;\n if (splatsNonLod !== undefined) {\n nonLod = splatsNonLod;\n }\n\n // let init: {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // } | null = null;\n // let initExt: {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // } | null = null;\n\n const onStatus = async (data: unknown) => {\n const { loaded, total } = data as { loaded: number; total: number };\n if (loaded !== undefined && onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n\n if ((data as { nextChunk?: boolean }).nextChunk) {\n let chunk: Uint8Array;\n if (!readStream) {\n chunk = new Uint8Array(0);\n } else {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n readStream = undefined;\n chunk = new Uint8Array(0);\n } else {\n chunk = value;\n }\n }\n worker.call(\"nextChunk\", { chunk });\n }\n\n // if ((data as { orig?: unknown }).orig) {\n // if (extSplats) {\n // initExt = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // };\n // extSplats.initialize({\n // numSplats: initExt?.numSplats,\n // extArrays: [initExt?.ext0, initExt?.ext1],\n // extra: initExt?.extra,\n // });\n // calledOnLoad = true;\n // onLoad?.(extSplats);\n // } else if (packedSplats) {\n // init = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // };\n // packedSplats.initialize({\n // numSplats: init?.numSplats,\n // packedArray: init?.packedArray,\n // extra: init?.extra,\n // splatEncoding: init?.splatEncoding,\n // });\n // calledOnLoad = true;\n // onLoad?.(packedSplats);\n // } else {\n // console.warn(\"No splats to initialize\");\n // }\n // }\n };\n\n const basedUrl = resolvedURL\n ? new URL(resolvedURL, window.location.href).toString()\n : undefined;\n const decoded = (await worker.call(\n extSplats ? \"loadExtSplats\" : \"loadPackedSplats\",\n {\n url: basedUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n fileBytes: fileBytes?.slice(),\n fileType,\n pathName: resolvedURL || fileName,\n chunked: stream !== undefined,\n chunkedLength: streamLength,\n encoding: packedSplats?.splatEncoding,\n lod,\n lodBase,\n nonLod,\n lodAbove,\n },\n { onStatus },\n )) as {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n lodSplats?:\n | {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n }\n | PackedSplats\n | ExtSplats;\n };\n\n if (decoded.lodSplats) {\n if (extSplats) {\n decoded.lodSplats = new ExtSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n }),\n });\n } else {\n decoded.lodSplats = new PackedSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n }),\n maxSplats: packedSplats?.maxSplats,\n });\n }\n }\n\n if (extSplats) {\n const initExtSplats = {\n // ...(initExt ?? {}),\n ...decoded,\n };\n extSplats.initialize(initExtSplats as ExtSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(extSplats);\n // }\n } else {\n const initSplats = {\n // ...(init ?? {}),\n ...decoded,\n };\n if (packedSplats) {\n packedSplats.initialize(initSplats as PackedSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(packedSplats);\n // }\n } else {\n // if (!calledOnLoad) {\n onLoad?.(new PackedSplats(initSplats as PackedSplatsOptions));\n // }\n }\n }\n })\n .catch((error) => {\n this.manager.itemError(resolvedURL ?? \"\");\n onError?.(error);\n })\n .finally(() => {\n this.manager.itemEnd(resolvedURL ?? \"\");\n });\n }\n\n async loadInternalAsync({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onProgress?: (event: ProgressEvent) => void;\n lod?: boolean;\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n return new Promise((resolve, reject) => {\n this.loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad: resolve,\n onProgress,\n onError: reject,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n });\n });\n }\n}\n\nasync function fetchWithProgress(\n request: Request,\n onProgress?: (event: ProgressEvent) => void,\n) {\n const response = await fetch(request);\n if (!response.ok) {\n throw new Error(\n `${response.status} \"${response.statusText}\" fetching URL: ${request.url}`,\n );\n }\n if (!response.body) {\n throw new Error(`Response body is null for URL: ${request.url}`);\n }\n\n const reader = response.body.getReader();\n let loaded = 0;\n const chunks: Uint8Array[] = [];\n try {\n const contentLength = Number.parseInt(\n response.headers.get(\"Content-Length\") || \"0\",\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n loaded += value.length;\n\n if (onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n }\n } catch (err) {\n try {\n const reason = err instanceof Error ? err.message : \"Unknown error\";\n await reader.cancel(reason);\n } catch {}\n throw err;\n }\n\n // Combine chunks into a single buffer\n const bytes = new Uint8Array(loaded);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.length;\n }\n return bytes.buffer;\n}\n\nexport function getSplatFileType(\n fileBytes: Uint8Array,\n): SplatFileType | undefined {\n const view = new DataView(fileBytes.buffer);\n const magic = view.getUint32(0, true);\n if ((magic & 0x00ffffff) === 0x00796c70) {\n return SplatFileType.PLY;\n }\n if ((magic & 0x00ffffff) === 0x00088b1f) {\n // Gzipped file, unpack beginning to check magic number\n const header = decompressPartialGzip(fileBytes, 4);\n const gView = new DataView(header.buffer);\n if (gView.getUint32(0, true) === 0x5053474e) {\n return SplatFileType.SPZ;\n }\n // Unknown Gzipped file type\n return undefined;\n }\n if (magic === 0x04034b50) {\n // PKZip file\n if (tryPcSogsZip(fileBytes)) {\n return SplatFileType.PCSOGSZIP;\n }\n // Unknown PKZip file type\n return undefined;\n }\n if (magic === 0x30444152) {\n return SplatFileType.RAD;\n }\n // Unknown file type\n return undefined;\n}\n\n// Returns the lowercased file extension from a path or URL\nexport function getFileExtension(pathOrUrl: string): string {\n const noTrailing = pathOrUrl.split(/[?#]/, 1)[0];\n const lastSlash = Math.max(\n noTrailing.lastIndexOf(\"/\"),\n noTrailing.lastIndexOf(\"\\\\\"),\n );\n const filename = noTrailing.slice(lastSlash + 1);\n const lastDot = filename.lastIndexOf(\".\");\n if (lastDot <= 0 || lastDot === filename.length - 1) {\n return \"\"; // No extension\n }\n return filename.slice(lastDot + 1).toLowerCase();\n}\n\nexport function getSplatFileTypeFromPath(\n pathOrUrl: string,\n): SplatFileType | undefined {\n const extension = getFileExtension(pathOrUrl);\n if (extension === \"ply\") {\n return SplatFileType.PLY;\n }\n if (extension === \"spz\") {\n return SplatFileType.SPZ;\n }\n if (extension === \"splat\") {\n return SplatFileType.SPLAT;\n }\n if (extension === \"ksplat\") {\n return SplatFileType.KSPLAT;\n }\n if (extension === \"sog\") {\n return SplatFileType.PCSOGSZIP;\n }\n if (extension === \"rad\") {\n return SplatFileType.RAD;\n }\n return undefined;\n}\n\nexport type PcSogsJson = {\n means: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n quats: { shape: number[]; dtype: string; encoding?: string; files: string[] };\n sh0: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n shN?: {\n shape: number[];\n dtype: string;\n mins: number;\n maxs: number;\n quantization: number;\n files: string[];\n };\n};\n\nexport type PcSogsV2Json = {\n version: 2;\n count: number;\n antialias?: boolean;\n means: {\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n codebook: number[];\n files: string[];\n };\n quats: { files: string[] };\n sh0: {\n codebook: number[];\n files: string[];\n };\n shN?: {\n count: number;\n bands: number;\n codebook: number[];\n files: string[];\n };\n};\n\nexport function isPcSogs(input: ArrayBuffer | Uint8Array | string): boolean {\n // Returns true if the input seems to be a valid PC SOGS file\n return tryPcSogs(input) !== undefined;\n}\n\nexport function tryPcSogs(\n input: ArrayBuffer | Uint8Array | string,\n): PcSogsJson | PcSogsV2Json | undefined {\n // Try to parse input as SOGS JSON and see if it's valid\n try {\n let text: string;\n if (typeof input === \"string\") {\n text = input;\n } else {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n if (fileBytes.length > 65536) {\n // Should be only a few KB, definitely not a SOGS JSON file\n return undefined;\n }\n text = new TextDecoder().decode(fileBytes);\n }\n\n const json = JSON.parse(text);\n if (!json || typeof json !== \"object\" || Array.isArray(json)) {\n return undefined;\n }\n const isVersion2 = json.version === 2;\n\n for (const key of [\"means\", \"scales\", \"quats\", \"sh0\"]) {\n if (\n !json[key] ||\n typeof json[key] !== \"object\" ||\n Array.isArray(json[key])\n ) {\n return undefined;\n }\n if (isVersion2) {\n // Expect files\n if (!json[key].files) {\n return undefined;\n }\n\n // Scales and sh0 should have codebooks\n if ((key === \"scales\" || key === \"sh0\") && !json[key].codebook) {\n return undefined;\n }\n // Means should have mins and maxs defined\n if (key === \"means\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n } else {\n // Expect shape and files\n if (!json[key].shape || !json[key].files) {\n return undefined;\n }\n // Besides 'quats' all other properties have mins and maxs\n if (key !== \"quats\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n }\n }\n // This is probably a PC SOGS file\n return json as PcSogsJson | PcSogsV2Json;\n } catch {\n return undefined;\n }\n}\n\nexport function tryPcSogsZip(\n input: ArrayBuffer | Uint8Array,\n): { name: string; json: PcSogsJson | PcSogsV2Json } | undefined {\n try {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let metaFilename: string | null = null;\n\n const unzipped = unzipSync(fileBytes, {\n filter: ({ name }) => {\n const filename = name.split(/[\\\\/]/).pop() as string;\n if (filename === \"meta.json\") {\n metaFilename = name;\n return true;\n }\n return false;\n },\n });\n if (!metaFilename) {\n return undefined;\n }\n\n // Check for PC SOGS V1 and V2 (aka SOG)\n const json = tryPcSogs(unzipped[metaFilename]);\n if (!json) {\n return undefined;\n }\n return { name: metaFilename, json };\n } catch {\n return undefined;\n }\n}\n\nexport async function unpackSplats({\n input,\n extraFiles,\n fileType,\n pathOrUrl,\n splatEncoding,\n}: {\n input: Uint8Array | ArrayBuffer;\n extraFiles?: Record;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n splatEncoding?: SplatEncoding;\n}): Promise<{\n packedArray: Uint32Array;\n numSplats: number;\n extra?: Record;\n}> {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let splatFileType = fileType;\n if (!fileType) {\n splatFileType = getSplatFileType(fileBytes);\n if (!splatFileType && pathOrUrl) {\n splatFileType = getSplatFileTypeFromPath(pathOrUrl);\n }\n }\n\n switch (splatFileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes });\n await ply.parseHeader();\n const numSplats = ply.numSplats;\n const maxSplats = getTextureSize(numSplats).maxSplats;\n const args = {\n fileBytes,\n packedArray: new Uint32Array(maxSplats * 4),\n splatEncoding,\n };\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"unpackPly\",\n args,\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.SPZ: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodeSpz\",\n {\n fileBytes,\n splatEncoding,\n },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.SPLAT: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats } = (await worker.call(\n \"decodeAntiSplat\",\n {\n fileBytes,\n splatEncoding,\n },\n )) as { packedArray: Uint32Array; numSplats: number };\n return { packedArray, numSplats };\n });\n }\n case SplatFileType.KSPLAT: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodeKsplat\",\n { fileBytes, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.PCSOGS: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodePcSogs\",\n { fileBytes, extraFiles, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.PCSOGSZIP: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodePcSogsZip\",\n { fileBytes, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n default: {\n throw new Error(`Unknown splat file type: ${splatFileType}`);\n }\n }\n}\n\nexport class SplatData {\n numSplats: number;\n maxSplats: number;\n centers: Float32Array;\n scales: Float32Array;\n quaternions: Float32Array;\n opacities: Float32Array;\n colors: Float32Array;\n sh1?: Float32Array;\n sh2?: Float32Array;\n sh3?: Float32Array;\n\n constructor({ maxSplats = 1 }: { maxSplats?: number } = {}) {\n this.numSplats = 0;\n this.maxSplats = getTextureSize(maxSplats).maxSplats;\n this.centers = new Float32Array(this.maxSplats * 3);\n this.scales = new Float32Array(this.maxSplats * 3);\n this.quaternions = new Float32Array(this.maxSplats * 4);\n this.opacities = new Float32Array(this.maxSplats);\n this.colors = new Float32Array(this.maxSplats * 3);\n }\n\n pushSplat(): number {\n const index = this.numSplats;\n this.ensureIndex(index);\n this.numSplats += 1;\n return index;\n }\n\n unpushSplat(index: number) {\n if (index === this.numSplats - 1) {\n this.numSplats -= 1;\n } else {\n throw new Error(\"Cannot unpush splat from non-last position\");\n }\n }\n\n ensureCapacity(numSplats: number) {\n if (numSplats > this.maxSplats) {\n const targetSplats = Math.max(numSplats, this.maxSplats * 2);\n const newCenters = new Float32Array(targetSplats * 3);\n const newScales = new Float32Array(targetSplats * 3);\n const newQuaternions = new Float32Array(targetSplats * 4);\n const newOpacities = new Float32Array(targetSplats);\n const newColors = new Float32Array(targetSplats * 3);\n newCenters.set(this.centers);\n newScales.set(this.scales);\n newQuaternions.set(this.quaternions);\n newOpacities.set(this.opacities);\n newColors.set(this.colors);\n this.centers = newCenters;\n this.scales = newScales;\n this.quaternions = newQuaternions;\n this.opacities = newOpacities;\n this.colors = newColors;\n\n if (this.sh1) {\n const newSh1 = new Float32Array(targetSplats * 9);\n newSh1.set(this.sh1);\n this.sh1 = newSh1;\n }\n if (this.sh2) {\n const newSh2 = new Float32Array(targetSplats * 15);\n newSh2.set(this.sh2);\n this.sh2 = newSh2;\n }\n if (this.sh3) {\n const newSh3 = new Float32Array(targetSplats * 21);\n newSh3.set(this.sh3);\n this.sh3 = newSh3;\n }\n\n this.maxSplats = targetSplats;\n }\n }\n\n ensureIndex(index: number) {\n this.ensureCapacity(index + 1);\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n this.centers[index * 3] = x;\n this.centers[index * 3 + 1] = y;\n this.centers[index * 3 + 2] = z;\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n this.scales[index * 3] = scaleX;\n this.scales[index * 3 + 1] = scaleY;\n this.scales[index * 3 + 2] = scaleZ;\n }\n\n setQuaternion(index: number, x: number, y: number, z: number, w: number) {\n this.quaternions[index * 4] = x;\n this.quaternions[index * 4 + 1] = y;\n this.quaternions[index * 4 + 2] = z;\n this.quaternions[index * 4 + 3] = w;\n }\n\n setOpacity(index: number, opacity: number) {\n this.opacities[index] = opacity;\n }\n\n setColor(index: number, r: number, g: number, b: number) {\n this.colors[index * 3] = r;\n this.colors[index * 3 + 1] = g;\n this.colors[index * 3 + 2] = b;\n }\n\n setSh1(index: number, sh1: Float32Array) {\n if (!this.sh1) {\n this.sh1 = new Float32Array(this.maxSplats * 9);\n }\n for (let j = 0; j < 9; ++j) {\n this.sh1[index * 9 + j] = sh1[j];\n }\n }\n\n setSh2(index: number, sh2: Float32Array) {\n if (!this.sh2) {\n this.sh2 = new Float32Array(this.maxSplats * 15);\n }\n for (let j = 0; j < 15; ++j) {\n this.sh2[index * 15 + j] = sh2[j];\n }\n }\n\n setSh3(index: number, sh3: Float32Array) {\n if (!this.sh3) {\n this.sh3 = new Float32Array(this.maxSplats * 21);\n }\n for (let j = 0; j < 21; ++j) {\n this.sh3[index * 21 + j] = sh3[j];\n }\n }\n}\n\nexport async function transcodeSpz(\n input: TranscodeSpzInput,\n): Promise<{ input: TranscodeSpzInput; fileBytes: Uint8Array }> {\n return await withWorker(async (worker) => {\n const result = (await worker.call(\"transcodeSpz\", input)) as {\n input: TranscodeSpzInput;\n fileBytes: Uint8Array;\n };\n return result;\n });\n}\n\nexport type FileInput = {\n fileBytes: Uint8Array;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n transform?: { translate?: number[]; quaternion?: number[]; scale?: number };\n};\n\nexport type TranscodeSpzInput = {\n inputs: FileInput[];\n maxSh?: number;\n clipXyz?: { min: number[]; max: number[] };\n fractionalBits?: number;\n opacityThreshold?: number;\n};\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport type { RgbaArray } from \"./RgbaArray\";\nimport type { GsplatGenerator } from \"./SplatGenerator\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n DynoProgram,\n DynoProgramTemplate,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n add,\n dynoBlock,\n normalize,\n outputPackedSplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport {\n type Gsplat,\n TPackedSplats,\n combineGsplat,\n definePackedSplats,\n readPackedSplat,\n splatTexCoord,\n splitGsplat,\n} from \"./dyno/splats\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, setPackedSplat, unpackSplat } from \"./utils\";\n\n// Initialize a PackedSplats collection from source data via\n// url, fileBytes, or packedArray. Creates an empty array if none are set,\n// and splat data can be constructed using pushSplat()/setSplat(). The maximum\n// splat size allocation will grow automatically, starting from maxSplats.\nexport type PackedSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided packed data array, where each 4 consecutive uint32 values\n // encode one \"packed\" Gsplat. (default: undefined)\n packedArray?: Uint32Array;\n // Override number of splats in packed array to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the PackedSplats\n lodSplats?: PackedSplats;\n};\n\n// A PackedSplats is a collection of Gaussian splats, packed into a format that\n// takes exactly 16 bytes per Gsplat to maximize memory and cache efficiency.\n// The center xyz coordinates are encoded as float16 (3 x 2 bytes), scale xyz\n// as 3 x uint8 that encode a log scale from e^-12 to e^9, rgba as 4 x uint8,\n// and quaternion encoded via axis+angle using 2 x uint8 for octahedral encoding\n// of the axis direction and a uint8 to encode rotation amount from 0..Pi.\n\nexport class PackedSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n packedArray: Uint32Array | null = null;\n extra: Record;\n maxSh = 3;\n splatEncoding?: SplatEncoding;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: PackedSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n // Either target or source will be non-null, depending on whether the PackedSplats\n // is being used as a data source or generated to.\n target: THREE.WebGLArrayRenderTarget | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source packedArray is updated to have it upload to GPU\n needsUpdate = true;\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoRgbMinMaxLnScaleMinMax: DynoUniform<\"vec4\", \"rgbMinMaxLnScaleMinMax\">;\n dynoNumSh: DynoInt<\"numSh\">;\n dynoShMax: DynoVec3;\n\n constructor(options: PackedSplatsOptions = {}) {\n this.extra = {};\n this.dyno = new DynoPackedSplats({ packedSplats: this });\n this.dynoRgbMinMaxLnScaleMinMax = new DynoVec4({\n key: \"rgbMinMaxLnScaleMinMax\",\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n update: (value) => {\n value.set(\n this.splatEncoding?.rgbMin ?? 0.0,\n this.splatEncoding?.rgbMax ?? 1.0,\n this.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n return value;\n },\n });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n this.dynoShMax = new DynoVec3({\n key: \"shMax\",\n value: new THREE.Vector3(),\n update: (value) => {\n value.set(\n this.splatEncoding?.sh1Max ?? 1.0,\n this.splatEncoding?.sh2Max ?? 1.0,\n this.splatEncoding?.sh3Max ?? 1.0,\n );\n return value;\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: PackedSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.splatEncoding = options.splatEncoding;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: PackedSplatsOptions) {\n this.extra = options.extra ?? {};\n this.splatEncoding = options.splatEncoding ?? this.splatEncoding;\n this.lodSplats = options.lodSplats;\n\n if (options.packedArray) {\n this.packedArray = options.packedArray;\n this.numSplats = options.numSplats ?? this.packedArray.length / 4;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats = Math.floor(this.packedArray.length / 4);\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n }\n }\n\n async asyncInitialize(options: PackedSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n packedSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target.texture.source.data = null;\n this.target = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source.source.data = null;\n this.source = null;\n }\n\n this.packedArray = null;\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"PackedSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3 ? 2 : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readPackedSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3Texture } = this.ensureShTextures();\n let { rgb } = evaluatePackedSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax: this.dynoShMax,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 2,\n );\n if (sh1.length < maxSplats * 2) {\n const newSh1 = new Uint32Array(maxSplats * 2);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n\n const texture = new THREE.DataArrayTexture(sh1, width, height, depth);\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = new THREE.DataArrayTexture(sh2, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3Texture = this.extra.sh3Texture as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3Texture) {\n let sh3 = this.extra.sh3 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3.length / 4,\n );\n if (sh3.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3);\n this.extra.sh3 = newSh3;\n sh3 = newSh3;\n }\n\n const texture = new THREE.DataArrayTexture(sh3, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh3Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3Texture = sh3Texture;\n }\n\n return { sh1Texture, sh2Texture, sh3Texture };\n }\n\n // Ensures that this.packedArray can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): Uint32Array {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.packedArray ? 0 : this.packedArray.length / 4;\n\n if (!this.packedArray || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(this.maxSplats * 4);\n if (this.packedArray) {\n // Copy over existing data\n newArray.set(this.packedArray);\n }\n this.packedArray = newArray;\n }\n return this.packedArray;\n }\n\n // Ensure the extra array for the given level is large enough to hold numSplats\n ensureSplatsSh(level: number, numSplats: number): Uint32Array {\n let wordsPerSplat: number;\n let key: string;\n if (level === 0) {\n return this.ensureSplats(numSplats);\n }\n if (level === 1) {\n // 3 x 3 uint7 = 63 bits = 2 uint32\n wordsPerSplat = 2;\n key = \"sh1\";\n } else if (level === 2) {\n // 5 x 3 uint8 = 120 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh2\";\n } else if (level === 3) {\n // 7 x 3 uint6 = 126 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh3\";\n } else {\n throw new Error(`Invalid level: ${level}`);\n }\n\n // Figure out our current and desired maxSplats\n let maxSplats: number = !this.extra[key]\n ? 0\n : (this.extra[key] as Uint32Array).length / wordsPerSplat;\n const targetSize =\n numSplats <= maxSplats ? maxSplats : Math.max(numSplats, 2 * maxSplats);\n\n if (!this.extra[key] || targetSize > maxSplats) {\n // Reallocate the array\n maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(maxSplats * wordsPerSplat);\n if (this.extra[key]) {\n // Copy over existing data\n newArray.set(this.extra[key] as Uint32Array);\n }\n this.extra[key] = newArray;\n }\n return this.extra[key] as Uint32Array;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (!this.packedArray || index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return unpackSplat(this.packedArray, index, this.splatEncoding);\n }\n\n // Set all PackedSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(index + 1);\n setPackedSplat(\n packedSplats,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(this.numSplats + 1);\n setPackedSplat(\n packedSplats,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.packedArray || !this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = unpackSplat(this.packedArray, i, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Ensures our PackedSplats.target render target has enough space to generate\n // maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate(maxSplats: number): boolean {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n if (this.target) {\n this.target.dispose();\n }\n\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAIntegerFormat;\n this.target.texture.type = THREE.UnsignedIntType;\n this.target.texture.internalFormat = \"RGBA32UI\";\n this.target.scissorTest = true;\n return true;\n }\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Returns a THREE.DataArrayTexture representing the PackedSplats content as\n // a Uint32x4 data array texture (2048 x 2048 x depth in size)\n getTexture(): THREE.DataArrayTexture {\n if (this.target) {\n // Return the render target's texture\n return this.target.texture;\n }\n if (this.source || this.packedArray) {\n // Update source texture if needed and return\n const source = this.maybeUpdateSource();\n return source;\n }\n\n return PackedSplats.getEmptyArray;\n }\n\n // Check if source texture needs to be created/updated\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.packedArray) {\n throw new Error(\"No packed splats\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.source = new THREE.DataArrayTexture(\n this.packedArray as Uint32Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAIntegerFormat;\n this.source.type = THREE.UnsignedIntType;\n this.source.internalFormat = \"RGBA32UI\";\n this.source.needsUpdate = true;\n } else if (this.packedArray.buffer !== this.source.image.data.buffer) {\n // The source texture is the right size, update the data\n this.source.image.data = new Uint8Array(this.packedArray.buffer);\n }\n // Indicate to Three.js that the source texture needs to be uploaded to the GPU\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n static getEmptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(generator: GsplatGenerator): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = PackedSplats.generatorProgram.get(generator);\n if (!program) {\n // A Gsplat needs to be turned into a packed uvec4 for the dyno graph\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n generator.inputs.index = index;\n const gsplat = generator.outputs.gsplat;\n const output = outputPackedSplat(\n gsplat,\n this.dynoRgbMinMaxLnScaleMinMax,\n );\n roots.push(output);\n return undefined;\n },\n );\n if (!PackedSplats.programTemplate) {\n PackedSplats.programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { output: \"target\" },\n template: PackedSplats.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n PackedSplats.generatorProgram.set(generator, program);\n }\n\n // Prepare and update our material we'll use to render the Gsplats\n const material = program.prepareMaterial();\n PackedSplats.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Executes a dyno program specified by generator which is any DynoBlock that\n // maps { index: \"int\" } to { gsplat: Gsplat }. This is called in\n // SparkRenderer.updateInternal() to re-generate Gsplats in the scene for\n // SplatGenerator instances whose version is newer than what was generated\n // for it last time.\n generate({\n generator,\n base,\n count,\n renderer,\n }: {\n generator: GsplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }): { nextBase: number } {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureSplats\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(generator);\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n PackedSplats.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const packedArray = (this.packedArray as Uint32Array).slice();\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodPackedSplats\" : \"tinyLodPackedSplats\",\n {\n numSplats: this.numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding: this.splatEncoding ?? DEFAULT_SPLAT_ENCODING,\n },\n )) as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n };\n });\n\n const lodSplats = new PackedSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new PackedSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for GsplatGenerator programs\n static generatorProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\n// You can use a PackedSplats as a dyno block using the function\n// dyno.readPackedSplats(packedSplats.dyno, dynoIndex) where\n// dynoIndex is of type DynoVal<\"int\">. If you need to be able to change\n// the input PackedSplats dynamically, however, you should create a\n// DynoPackedSplats, whose property packedSplats you can change to any\n// PackedSplats and that will be used in the dyno shader program.\n\nexport const dynoPackedSplats = (packedSplats?: PackedSplats) =>\n new DynoPackedSplats({ packedSplats });\n\nexport class DynoPackedSplats extends DynoUniform<\n typeof TPackedSplats,\n \"packedSplats\",\n {\n textureArray: THREE.DataArrayTexture;\n numSplats: number;\n rgbMinMaxLnScaleMinMax: THREE.Vector4;\n lodOpacity: boolean;\n }\n> {\n packedSplats?: PackedSplats;\n\n constructor({ packedSplats }: { packedSplats?: PackedSplats } = {}) {\n super({\n key: \"packedSplats\",\n type: TPackedSplats,\n globals: () => [definePackedSplats],\n value: {\n textureArray: PackedSplats.getEmptyArray,\n numSplats: 0,\n rgbMinMaxLnScaleMinMax: new THREE.Vector4(\n 0,\n 1,\n LN_SCALE_MIN,\n LN_SCALE_MAX,\n ),\n lodOpacity: false,\n },\n update: (value) => {\n value.textureArray =\n this.packedSplats?.getTexture() ?? PackedSplats.getEmptyArray;\n value.numSplats = this.packedSplats?.numSplats ?? 0;\n value.rgbMinMaxLnScaleMinMax.set(\n this.packedSplats?.splatEncoding?.rgbMin ?? 0,\n this.packedSplats?.splatEncoding?.rgbMax ?? 1,\n this.packedSplats?.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.packedSplats?.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n value.lodOpacity =\n this.packedSplats?.splatEncoding?.lodOpacity ?? false;\n return value;\n },\n });\n this.packedSplats = packedSplats;\n }\n}\n\nexport const defineEvalPackedSH1 = unindent(`\n vec3 evaluatePackedSH1(uvec2 packedData, vec3 viewDir, float sh1Max) {\n // Extract sint7 values packed into 2 x uint32\n vec3 sh1_0 = vec3(ivec3(\n int(packedData.x << 25u) >> 25,\n int(packedData.x << 18u) >> 25,\n int(packedData.x << 11u) >> 25\n ));\n vec3 sh1_1 = vec3(ivec3(\n int(packedData.x << 4u) >> 25,\n int((packedData.x >> 3u) | (packedData.y << 29u)) >> 25,\n int(packedData.y << 22u) >> 25\n ));\n vec3 sh1_2 = vec3(ivec3(\n int(packedData.y << 15u) >> 25,\n int(packedData.y << 8u) >> 25,\n int(packedData.y << 1u) >> 25\n ));\n\n vec3 rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n return rgb * (sh1Max / 63.0);\n }\n`);\n\nexport const defineEvalPackedSH2 = unindent(`\n vec3 evaluatePackedSH2(uvec4 packedData, vec3 viewDir, float sh2Max) {\n // Extract sint8 values packed into 4 x uint32\n vec3 sh2_0 = vec3(ivec3(\n int(packedData.x << 24u) >> 24,\n int(packedData.x << 16u) >> 24,\n int(packedData.x << 8u) >> 24\n ));\n vec3 sh2_1 = vec3(ivec3(\n int(packedData.x) >> 24,\n int(packedData.y << 24u) >> 24,\n int(packedData.y << 16u) >> 24\n ));\n vec3 sh2_2 = vec3(ivec3(\n int(packedData.y << 8u) >> 24,\n int(packedData.y) >> 24,\n int(packedData.z << 24u) >> 24\n ));\n vec3 sh2_3 = vec3(ivec3(\n int(packedData.z << 16u) >> 24,\n int(packedData.z << 8u) >> 24,\n int(packedData.z) >> 24\n ));\n vec3 sh2_4 = vec3(ivec3(\n int(packedData.w << 24u) >> 24,\n int(packedData.w << 16u) >> 24,\n int(packedData.w << 8u) >> 24\n ));\n\n vec3 rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n return rgb * (sh2Max / 127.0);\n }\n`);\n\nexport const defineEvalPackedSH3 = unindent(`\n vec3 evaluatePackedSH3(uvec4 packedData, vec3 viewDir, float sh3Max) {\n // Extract sint6 values packed into 4 x uint32\n vec3 sh3_0 = vec3(ivec3(\n int(packedData.x << 26u) >> 26,\n int(packedData.x << 20u) >> 26,\n int(packedData.x << 14u) >> 26\n ));\n vec3 sh3_1 = vec3(ivec3(\n int(packedData.x << 8u) >> 26,\n int(packedData.x << 2u) >> 26,\n int((packedData.x >> 4u) | (packedData.y << 28u)) >> 26\n ));\n vec3 sh3_2 = vec3(ivec3(\n int(packedData.y << 22u) >> 26,\n int(packedData.y << 16u) >> 26,\n int(packedData.y << 10u) >> 26\n ));\n vec3 sh3_3 = vec3(ivec3(\n int(packedData.y << 4u) >> 26,\n int((packedData.y >> 2u) | (packedData.z << 30u)) >> 26,\n int(packedData.z << 24u) >> 26\n ));\n vec3 sh3_4 = vec3(ivec3(\n int(packedData.z << 18u) >> 26,\n int(packedData.z << 12u) >> 26,\n int(packedData.z << 6u) >> 26\n ));\n vec3 sh3_5 = vec3(ivec3(\n int(packedData.z) >> 26,\n int(packedData.w << 26u) >> 26,\n int(packedData.w << 20u) >> 26\n ));\n vec3 sh3_6 = vec3(ivec3(\n int(packedData.w << 14u) >> 26,\n int(packedData.w << 8u) >> 26,\n int(packedData.w << 2u) >> 26\n ));\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n vec3 rgb = sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n return rgb * (sh3Max / 31.0);\n }\n`);\n\nexport function evaluatePackedSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n shMax: DynoVal<\"vec3\">;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3Texture: \"usampler2DArray\",\n shMax: \"vec3\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n },\n globals: () => [\n defineEvalPackedSH1,\n defineEvalPackedSH2,\n defineEvalPackedSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0).rg, ${inputs.viewDir}, ${inputs.shMax}.x);\n rgb += sh1Rgb;\n `),\n );\n if (inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 2) {\n vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.y);\n rgb += sh2Rgb;\n `),\n );\n if (inputs.sh3Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${inputs.sh3Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.z);\n rgb += sh3Rgb;\n }\n `),\n );\n }\n lines.push(\"}\");\n }\n lines.push(\"}\");\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n","import * as THREE from \"three\";\n\nimport type { OldSparkRenderer } from \"./OldSparkRenderer\";\nimport type { OldSplatAccumulator } from \"./OldSplatAccumulator\";\nimport { OldSplatGeometry } from \"./OldSplatGeometry\";\nimport { withWorker } from \"./OldSplatWorker\";\nimport { DynoPackedSplats } from \"./PackedSplats\";\nimport { Readback } from \"./Readback\";\nimport {\n type DynoBlock,\n DynoBool,\n DynoFloat,\n type DynoVal,\n DynoVec3,\n Gsplat,\n add,\n combine,\n defineGsplat,\n dyno,\n dynoBlock,\n dynoConst,\n floatBitsToUint,\n mul,\n packHalf2x16,\n readPackedSplat,\n uintToRgba8,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { FreeList, withinCoorientDist } from \"./utils\";\n\nexport type OldSparkViewpointOptions = {\n /**\n * Controls whether to auto-update its sort order whenever the SparkRenderer\n * updates the Gsplats. If you expect to render/display from this viewpoint\n * most frames, set this to true.\n * @default false\n */\n autoUpdate?: boolean;\n /**\n * Set a THREE.Camera for this viewpoint to follow.\n * @default undefined\n */\n camera?: THREE.Camera;\n /**\n * Set an explicit view-to-world transformation matrix for this viewpoint (equivalent\n * to camera.matrixWorld), overrides any camera setting.\n * @default undefined\n */\n viewToWorld?: THREE.Matrix4;\n /**\n * Configure viewpoint with an off-screen render target.\n * @default undefined\n */\n target?: {\n /**\n * Width of the render target in pixels.\n */\n width: number;\n /**\n * Height of the render target in pixels.\n */\n height: number;\n /**\n * If you want to be able to render a scene that depends on this target's\n * output (for example, a recursive viewport), set this to true to enable\n * double buffering.\n * @default false\n */\n doubleBuffer?: boolean;\n /**\n * Super-sampling factor for the render target. Values 1-4 are supported.\n * Note that re-sampling back down to .width x .height is done on the CPU\n * with simple averaging only when calling readTarget().\n * @default 1\n */\n superXY?: number;\n };\n /**\n * Callback function that is called when the render target texture is updated.\n * Receives the texture as a parameter. Use this to update a viewport with\n * the latest viewpoint render each frame.\n * @default undefined\n */\n onTextureUpdated?: (texture: THREE.Texture) => void;\n /**\n * Whether to sort splats radially (geometric distance) from the viewpoint (true)\n * or by Z-depth (false). Most scenes are trained with the Z-depth sort metric\n * and will render more accurately at certain viewpoints. However, radial sorting\n * is more stable under viewpoint rotations.\n * @default true\n */\n sortRadial?: boolean;\n /**\n * Distance threshold for re-sorting splats. If the viewpoint moves more than\n * this distance, splats will be re-sorted.\n * @default 0.01 units\n */\n sortDistance?: number;\n /**\n * View direction dot product threshold for re-sorting splats. For\n * sortRadial: true we use 0.99 while sortRadial: false uses 0.999 because it is\n * more sensitive to view direction.\n * @default 0.99 if sortRadial else 0.999\n */\n sortCoorient?: boolean;\n /**\n * Constant added to Z-depth to bias values into the positive range for\n * sortRadial: false, but also used for culling Gsplats \"well behind\"\n * the viewpoint origin\n * @default 1.0\n */\n depthBias?: number;\n /**\n * Set this to true if rendering a 360 to disable \"behind the viewpoint\"\n * culling during sorting. This is set automatically when rendering 360 envMaps\n * using the SparkRenderer.renderEnvMap() utility function.\n * @default false\n */\n sort360?: boolean;\n /*\n * Set this to true to sort with float32 precision with two-pass sort.\n * @default true\n */\n sort32?: boolean;\n /*\n * Set this to true to enable sort-free stochastic splat rendering.\n * @default false\n */\n stochastic?: boolean;\n};\n\n// A SparkViewpoint is created from and tied to a SparkRenderer, and represents\n// an independent viewpoint of all the scene Gsplats and their sort order. Making\n// these viewpoints explicit allows us to have multiple, simultaneous viewpoint\n// renders, for example for camera preview panes or overhead map views.\n//\n// When creating a SparkRenderer it automatically creates a default viewpoint\n// .defaultView that is used in the normal render loop when drawing to the canvas,\n// and is automatically updated whenever the camera moves. Additional viewpoints\n// can be created and configured separately.\n\nexport class OldSparkViewpoint {\n spark: OldSparkRenderer;\n autoUpdate: boolean;\n camera?: THREE.Camera;\n viewToWorld: THREE.Matrix4;\n lastTime: number | null = null;\n\n target?: THREE.WebGLRenderTarget;\n private back?: THREE.WebGLRenderTarget;\n onTextureUpdated?: (texture: THREE.Texture) => void;\n encodeLinear = false;\n superXY = 1;\n private superPixels?: Uint8Array;\n private pixels?: Uint8Array;\n\n sortRadial: boolean;\n sortDistance?: number;\n sortCoorient?: boolean;\n depthBias?: number;\n sort360?: boolean;\n sort32?: boolean;\n stochastic: boolean;\n\n display: {\n accumulator: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n geometry: OldSplatGeometry;\n } | null = null;\n\n private sorting: { viewToWorld: THREE.Matrix4 } | null = null;\n private pending: {\n accumulator?: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n displayed: boolean;\n } | null = null;\n private sortingCheck = false;\n\n private readback16: Uint16Array = new Uint16Array(0);\n private readback32: Uint32Array = new Uint32Array(0);\n private orderingFreelist: FreeList;\n\n constructor(options: OldSparkViewpointOptions & { spark: OldSparkRenderer }) {\n this.spark = options.spark;\n this.camera = options.camera;\n this.viewToWorld = options.viewToWorld ?? new THREE.Matrix4();\n\n if (options.target) {\n const { width, height, doubleBuffer } = options.target;\n const superXY = Math.max(1, Math.min(4, options.target.superXY ?? 1));\n this.superXY = superXY;\n if (width * superXY > 8192 || height * superXY > 8192) {\n throw new Error(\"Target size too large\");\n }\n\n this.target = new THREE.WebGLRenderTarget(\n width * superXY,\n height * superXY,\n {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n },\n );\n if (doubleBuffer) {\n this.back = new THREE.WebGLRenderTarget(\n width * superXY,\n height * superXY,\n {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n },\n );\n }\n this.encodeLinear = true;\n }\n this.onTextureUpdated = options.onTextureUpdated;\n\n this.sortRadial = options.sortRadial ?? true;\n this.sortDistance = options.sortDistance;\n this.sortCoorient = options.sortCoorient;\n this.depthBias = options.depthBias;\n this.sort360 = options.sort360;\n this.sort32 = options.sort32;\n this.stochastic = options.stochastic ?? false;\n\n this.orderingFreelist = new FreeList({\n allocate: (maxSplats) =>\n new Uint32Array(maxSplats) as Uint32Array,\n valid: (ordering, maxSplats) => ordering.length === maxSplats,\n });\n\n this.autoUpdate = false;\n this.setAutoUpdate(options.autoUpdate ?? false);\n }\n\n // Call this when you are done with the SparkViewpoint and want to\n // free up its resources (GPU targets, pixel buffers, etc.)\n dispose() {\n this.setAutoUpdate(false);\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n if (this.back) {\n this.back.dispose();\n this.back = undefined;\n }\n if (this.display) {\n this.spark.releaseAccumulator(this.display.accumulator);\n this.display.geometry.dispose();\n this.display = null;\n }\n if (this.pending?.accumulator) {\n this.spark.releaseAccumulator(this.pending.accumulator);\n this.pending = null;\n }\n }\n\n // Use this function to change whether this viewpoint will auto-update\n // its sort order whenever the attached SparkRenderer updates the Gsplats.\n // Turn this on or off depending on whether you expect to do renders from\n // this viewpoint most frames.\n setAutoUpdate(autoUpdate: boolean) {\n if (!this.autoUpdate && autoUpdate) {\n this.spark.autoViewpoints.push(this);\n } else if (this.autoUpdate && !autoUpdate) {\n this.spark.autoViewpoints = this.spark.autoViewpoints.filter(\n (v) => v !== this,\n );\n }\n this.autoUpdate = autoUpdate;\n }\n\n // See below async prepareRenderPixels() for explanation of parameters.\n // Awaiting this method updates the Gsplats in the scene and performs a sort of the\n // Gsplats from this viewpoint, preparing it for a subsequent this.renderTarget()\n // call in the same tick.\n async prepare({\n scene,\n camera,\n viewToWorld,\n update,\n forceOrigin,\n }: {\n scene: THREE.Scene;\n camera?: THREE.Camera;\n viewToWorld?: THREE.Matrix4;\n update?: boolean;\n forceOrigin?: boolean;\n }) {\n if (viewToWorld) {\n this.viewToWorld = viewToWorld;\n } else {\n this.camera = camera ?? this.camera;\n if (this.camera) {\n this.camera.updateMatrixWorld();\n this.viewToWorld = this.camera.matrixWorld.clone();\n }\n }\n while (update ?? true) {\n // Force an update, possibly with origin centered at this camera\n // to yield the best quality output.\n const originToWorld = forceOrigin\n ? this.viewToWorld\n : this.spark.matrixWorld;\n const updated = this.spark.updateInternal({ scene, originToWorld });\n if (updated) {\n break;\n }\n // A bit of a hack, but try again. We shouldn't be starved for long.\n await new Promise((resolve) => setTimeout(resolve, 10));\n }\n\n const accumulator = this.spark.active;\n // Hold reference to accumulator while sorting\n accumulator.refCount += 1;\n await this.sortUpdate({ accumulator, viewToWorld: this.viewToWorld });\n // Release accumulator reference\n this.spark.releaseAccumulator(accumulator);\n }\n\n // Render out the viewpoint to the view target RGBA buffer.\n // Swaps buffers if doubleBuffer: true was set.\n // Calls onTextureUpdated(texture) with the resulting texture.\n renderTarget({\n scene,\n camera,\n }: { scene: THREE.Scene; camera?: THREE.Camera }) {\n const target = this.back ?? this.target;\n if (!target) {\n throw new Error(\"Must initialize SparkViewpoint with target\");\n }\n\n camera = camera ?? this.camera;\n if (!camera) {\n throw new Error(\"Must provide camera\");\n }\n if (camera instanceof THREE.PerspectiveCamera) {\n const newCam = new THREE.PerspectiveCamera().copy(camera, false);\n newCam.aspect = target.width / target.height;\n newCam.updateProjectionMatrix();\n camera = newCam;\n }\n this.viewToWorld = camera.matrixWorld.clone();\n\n const previousTarget = this.spark.renderer.getRenderTarget();\n try {\n this.spark.renderer.setRenderTarget(target);\n this.spark.prepareViewpoint(this);\n\n this.spark.renderer.render(scene, camera);\n } finally {\n this.spark.prepareViewpoint(this.spark.defaultView);\n this.spark.renderer.setRenderTarget(previousTarget);\n }\n\n if (target !== this.target) {\n // Swap back buffer and target\n [this.target, this.back] = [this.back, this.target];\n }\n this.onTextureUpdated?.(target.texture);\n }\n\n // Read back the previously rendered target image as a Uint8Array of packed\n // RGBA values (in that order). If superXY was set greater than 1 then\n // downsampling is performed in the target pixel array with simple averaging\n // to derive the returned pixel values. Subsequent calls to this.readTarget()\n // will reuse the same buffers to minimize memory allocations.\n async readTarget(): Promise {\n if (!this.target) {\n throw new Error(\"Must initialize SparkViewpoint with target\");\n }\n const { width, height } = this.target;\n const byteSize = width * height * 4;\n if (!this.superPixels || this.superPixels.length < byteSize) {\n this.superPixels = new Uint8Array(byteSize);\n }\n await this.spark.renderer.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n width,\n height,\n this.superPixels,\n );\n\n const { superXY } = this;\n if (superXY === 1) {\n return this.superPixels;\n }\n\n const subWidth = width / superXY;\n const subHeight = height / superXY;\n const subSize = subWidth * subHeight * 4;\n if (!this.pixels || this.pixels.length < subSize) {\n this.pixels = new Uint8Array(subSize);\n }\n\n const { superPixels, pixels } = this;\n const super2 = superXY * superXY;\n for (let y = 0; y < subHeight; y++) {\n const row = y * subWidth;\n for (let x = 0; x < subWidth; x++) {\n const superCol = x * superXY;\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n for (let sy = 0; sy < superXY; sy++) {\n const superRow = (y * superXY + sy) * this.target.width;\n for (let sx = 0; sx < superXY; sx++) {\n const superIndex = (superRow + superCol + sx) * 4;\n r += superPixels[superIndex];\n g += superPixels[superIndex + 1];\n b += superPixels[superIndex + 2];\n a += superPixels[superIndex + 3];\n }\n }\n const pixelIndex = (row + x) * 4;\n pixels[pixelIndex] = r / super2;\n pixels[pixelIndex + 1] = g / super2;\n pixels[pixelIndex + 2] = b / super2;\n pixels[pixelIndex + 3] = a / super2;\n }\n }\n return pixels;\n }\n\n // Render out a viewpoint as a Uint8Array of RGBA values for the provided scene\n // and any camera/viewToWorld viewpoint overrides. By default update is true,\n // which triggers its SparkRenderer to check and potentially update the Gsplats.\n // Setting update to false disables this and sorts the Gsplats as they are.\n // Setting forceOrigin (default: false) to true forces the view update to\n // recalculate the splats with this view origin, potentially altering any\n // view-dependent effects. If you expect view-dependent effects to play a role\n // in the rendering quality, enable this.\n //\n // Underneath, prepareRenderPixels() simply calls await this.prepare(...),\n // this.renderTarget(...), and finally returns the result this.readTarget(),\n // a Promise to a Uint8Array with RGBA values for all the pixels (potentially\n // downsampled if the superXY parameter was used). These steps can also be called\n // manually, for example if you need to alter the scene before and after\n // this.renderTarget(...) to hide UI elements from being rendered.\n async prepareRenderPixels({\n scene,\n camera,\n viewToWorld,\n update,\n forceOrigin,\n }: {\n scene: THREE.Scene;\n camera?: THREE.Camera;\n viewToWorld?: THREE.Matrix4;\n update?: boolean;\n forceOrigin?: boolean;\n }) {\n await this.prepare({ scene, camera, viewToWorld, update, forceOrigin });\n this.renderTarget({ scene, camera });\n return this.readTarget();\n }\n\n // This is called automatically by SparkRenderer, there is no need to call it!\n // The method cannot be private because then SparkRenderer would\n // not be able to call it.\n autoPoll({ accumulator }: { accumulator?: OldSplatAccumulator }) {\n if (this.camera) {\n this.camera.updateMatrixWorld();\n this.viewToWorld = this.camera.matrixWorld.clone();\n }\n\n let needsSort = false;\n let displayed = false;\n\n if (!this.display) {\n // Need to do first sort\n needsSort = true;\n } else if (accumulator) {\n needsSort = true;\n const { mappingVersion } = this.display.accumulator;\n if (accumulator.mappingVersion === mappingVersion) {\n // Splat mapping has not changed, so reuse the existing sorted\n // geometry to show updates faster. We will still fire off\n // a re-sort if necessary. First release old accumulator.\n accumulator.refCount += 1;\n this.spark.releaseAccumulator(this.display.accumulator);\n this.display.accumulator = accumulator;\n this.display.viewToWorld.copy(this.viewToWorld);\n displayed = true;\n\n if (this.spark.viewpoint === this) {\n this.spark.prepareViewpoint(this);\n }\n }\n }\n\n const latestView = this.sorting?.viewToWorld ?? this.display?.viewToWorld;\n if (\n latestView &&\n !withinCoorientDist({\n matrix1: this.viewToWorld,\n matrix2: latestView,\n // By default update sort each 1 cm\n maxDistance: this.sortDistance ?? 0.01,\n // By default for radial sort, update for intermittent movement so that\n // we bring back splats culled by being behind the camera.\n // For depth sort, small rotations can change sort order a lot, so\n // update sort for even small rotations.\n minCoorient: (this.sortCoorient ?? this.sortRadial) ? 0.99 : 0.999,\n })\n ) {\n needsSort = true;\n }\n\n if (!needsSort) {\n // Stop here, no sort necessary\n return;\n }\n\n if (accumulator) {\n // Hold a reference to the accumulator for sorting\n accumulator.refCount += 1;\n }\n\n if (this.pending?.accumulator) {\n this.spark.releaseAccumulator(this.pending.accumulator);\n }\n this.pending = { accumulator, viewToWorld: this.viewToWorld, displayed };\n\n // Don't await this, just trigger the sort if necessary\n this.driveSort();\n }\n\n private async driveSort() {\n while (true) {\n if (this.sorting || !this.pending) {\n return; // Sort already in process or nothing to sort\n }\n\n const { viewToWorld, displayed } = this.pending;\n let accumulator = this.pending.accumulator;\n if (!accumulator) {\n // Hold a reference to the accumulator while sorting\n accumulator = this.display?.accumulator ?? this.spark.active;\n accumulator.refCount += 1;\n }\n this.pending = null;\n if (!accumulator) {\n throw new Error(\"No accumulator to sort\");\n }\n\n this.sorting = { viewToWorld };\n await this.sortUpdate({ accumulator, viewToWorld, displayed });\n this.sorting = null;\n\n // Release the reference to the accumulator\n this.spark.releaseAccumulator(accumulator);\n\n // Continue in loop with any queued sort\n }\n }\n\n private async sortUpdate({\n accumulator,\n viewToWorld,\n displayed = false,\n }: {\n accumulator?: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n displayed?: boolean;\n }) {\n if (this.sortingCheck) {\n throw new Error(\"Only one sort at a time\");\n }\n this.sortingCheck = true;\n\n accumulator = accumulator ?? this.spark.active;\n const { numSplats, maxSplats } = accumulator.splats;\n let activeSplats = 0;\n let ordering = this.orderingFreelist.alloc(maxSplats);\n\n if (this.stochastic) {\n activeSplats = numSplats;\n // Render all splats in order since the Z-buffer\n // will handle ordering.\n for (let i = 0; i < numSplats; ++i) {\n ordering[i] = i;\n }\n } else if (numSplats > 0) {\n const {\n reader,\n doubleSortReader,\n sort32Reader,\n dynoSortRadial,\n dynoOrigin,\n dynoDirection,\n dynoDepthBias,\n dynoSort360,\n dynoSplats,\n } = OldSparkViewpoint.makeSorter();\n const sort32 = this.sort32 ?? false;\n let readback: Uint16Array | Uint32Array;\n if (sort32) {\n this.readback32 = reader.ensureBuffer(maxSplats, this.readback32);\n readback = this.readback32;\n } else {\n const halfMaxSplats = Math.ceil(maxSplats / 2);\n this.readback16 = reader.ensureBuffer(halfMaxSplats, this.readback16);\n readback = this.readback16;\n }\n\n const worldToOrigin = accumulator.toWorld.clone().invert();\n const viewToOrigin = viewToWorld.clone().premultiply(worldToOrigin);\n\n dynoSortRadial.value = this.sort360 ? true : this.sortRadial;\n dynoOrigin.value.set(0, 0, 0).applyMatrix4(viewToOrigin);\n dynoDirection.value\n .set(0, 0, -1)\n .applyMatrix4(viewToOrigin)\n .sub(dynoOrigin.value)\n .normalize();\n dynoDepthBias.value = this.depthBias ?? 1.0;\n dynoSort360.value = this.sort360 ?? false;\n dynoSplats.packedSplats = accumulator.splats;\n\n const sortReader = sort32 ? sort32Reader : doubleSortReader;\n const count = sort32 ? numSplats : Math.ceil(numSplats / 2);\n await reader.renderReadback({\n renderer: this.spark.renderer,\n reader: sortReader,\n count,\n readback,\n });\n\n const result = (await withWorker(async (worker) => {\n const rpcName = sort32 ? \"sort32Splats\" : \"sortDoubleSplats\";\n return worker.call(rpcName, {\n maxSplats,\n numSplats,\n readback,\n ordering,\n });\n })) as {\n readback: Uint16Array | Uint32Array;\n ordering: Uint32Array;\n activeSplats: number;\n };\n if (sort32) {\n this.readback32 = result.readback as Uint32Array;\n } else {\n this.readback16 = result.readback as Uint16Array;\n }\n ordering = result.ordering;\n activeSplats = result.activeSplats;\n }\n\n this.updateDisplay({\n accumulator,\n viewToWorld,\n ordering,\n activeSplats,\n displayed,\n });\n this.sortingCheck = false;\n }\n\n private updateDisplay({\n accumulator,\n viewToWorld,\n ordering,\n activeSplats,\n displayed = false,\n }: {\n accumulator: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n ordering: Uint32Array;\n activeSplats: number;\n displayed?: boolean;\n }) {\n if (!this.display) {\n // Hold a reference to the accumulator while part of display\n accumulator.refCount += 1;\n this.display = {\n accumulator,\n viewToWorld,\n geometry: new OldSplatGeometry(ordering, activeSplats),\n };\n } else {\n if (!displayed && accumulator !== this.display.accumulator) {\n // Hold a reference to the new accumulator being displayed\n accumulator.refCount += 1;\n // Release the reference to the previously displayed accumulator\n this.spark.releaseAccumulator(this.display.accumulator);\n this.display.accumulator = accumulator;\n }\n\n this.display.viewToWorld = viewToWorld;\n\n const oldOrdering = this.display.geometry.ordering;\n if (oldOrdering.length === ordering.length) {\n this.display.geometry.update(ordering, activeSplats);\n } else {\n this.display.geometry.dispose();\n // console.log(\"*** alloc SplatGeometry\", ordering.length);\n this.display.geometry = new OldSplatGeometry(ordering, activeSplats);\n }\n this.orderingFreelist.free(oldOrdering);\n }\n if (this.spark.viewpoint === this) {\n this.spark.prepareViewpoint(this);\n }\n }\n\n // If you need an empty THREE.Texture to use to initialize a uniform that is\n // updated via onTextureUpdated(texture), this static texture can be handy.\n static EMPTY_TEXTURE = new THREE.Texture();\n\n private static dynos: {\n dynoSortRadial: DynoBool;\n dynoOrigin: DynoVec3;\n dynoDirection: DynoVec3;\n dynoDepthBias: DynoFloat;\n dynoSort360: DynoBool;\n dynoSplats: DynoPackedSplats;\n reader: Readback;\n doubleSortReader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n sort32Reader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n } | null = null;\n\n private static makeSorter() {\n if (!OldSparkViewpoint.dynos) {\n const dynoSortRadial = new DynoBool({ value: true });\n const dynoOrigin = new DynoVec3({ value: new THREE.Vector3() });\n const dynoDirection = new DynoVec3({ value: new THREE.Vector3() });\n const dynoDepthBias = new DynoFloat({ value: 1.0 });\n const dynoSort360 = new DynoBool({ value: false });\n const dynoSplats = new DynoPackedSplats();\n\n const reader = new Readback();\n const doubleSortReader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"No index\");\n }\n const sortParams = {\n sortRadial: dynoSortRadial,\n sortOrigin: dynoOrigin,\n sortDirection: dynoDirection,\n sortDepthBias: dynoDepthBias,\n sort360: dynoSort360,\n };\n const index2 = mul(index, dynoConst(\"int\", 2));\n\n const gsplat0 = readPackedSplat(dynoSplats, index2);\n const metric0 = computeSortMetric({ gsplat: gsplat0, ...sortParams });\n\n const gsplat1 = readPackedSplat(\n dynoSplats,\n add(index2, dynoConst(\"int\", 1)),\n );\n const metric1 = computeSortMetric({ gsplat: gsplat1, ...sortParams });\n\n const combined = combine({\n vectorType: \"vec2\",\n x: metric0,\n y: metric1,\n });\n const rgba8 = uintToRgba8(packHalf2x16(combined));\n return { rgba8 };\n },\n );\n\n const sort32Reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"No index\");\n }\n const sortParams = {\n sortRadial: dynoSortRadial,\n sortOrigin: dynoOrigin,\n sortDirection: dynoDirection,\n sortDepthBias: dynoDepthBias,\n sort360: dynoSort360,\n };\n\n const gsplat = readPackedSplat(dynoSplats, index);\n const metric = computeSortMetric({ gsplat, ...sortParams });\n const rgba8 = uintToRgba8(floatBitsToUint(metric));\n return { rgba8 };\n },\n );\n\n OldSparkViewpoint.dynos = {\n dynoSortRadial,\n dynoOrigin,\n dynoDirection,\n dynoDepthBias,\n dynoSort360,\n dynoSplats,\n reader,\n doubleSortReader,\n sort32Reader,\n };\n }\n return OldSparkViewpoint.dynos;\n }\n}\n\nconst defineComputeSortMetric = unindent(`\n float computeSort(Gsplat gsplat, bool sortRadial, vec3 sortOrigin, vec3 sortDirection, float sortDepthBias, bool sort360) {\n if (!isGsplatActive(gsplat.flags)) {\n return INFINITY;\n }\n\n vec3 center = gsplat.center - sortOrigin;\n float biasedDepth = dot(center, sortDirection) + sortDepthBias;\n if (!sort360 && (biasedDepth <= 0.0)) {\n return INFINITY;\n }\n\n return sortRadial ? length(center) : biasedDepth;\n }\n`);\n\nfunction computeSortMetric({\n gsplat,\n sortRadial,\n sortOrigin,\n sortDirection,\n sortDepthBias,\n sort360,\n}: {\n gsplat: DynoVal;\n sortRadial: DynoVal<\"bool\">;\n sortOrigin: DynoVal<\"vec3\">;\n sortDirection: DynoVal<\"vec3\">;\n sortDepthBias: DynoVal<\"float\">;\n sort360: DynoVal<\"bool\">;\n}) {\n return dyno({\n inTypes: {\n gsplat: Gsplat,\n sortRadial: \"bool\",\n sortOrigin: \"vec3\",\n sortDirection: \"vec3\",\n sortDepthBias: \"float\",\n sort360: \"bool\",\n },\n outTypes: { metric: \"float\" },\n globals: () => [defineGsplat, defineComputeSortMetric],\n inputs: {\n gsplat,\n sortRadial,\n sortOrigin,\n sortDirection,\n sortDepthBias,\n sort360,\n },\n statements: ({ inputs, outputs }) => {\n const {\n gsplat,\n sortRadial,\n sortOrigin,\n sortDirection,\n sortDepthBias,\n sort360,\n } = inputs;\n return unindentLines(`\n ${outputs.metric} = computeSort(${gsplat}, ${sortRadial}, ${sortOrigin}, ${sortDirection}, ${sortDepthBias}, ${sort360});\n `);\n },\n }).outputs.metric;\n}\n","import * as THREE from \"three\";\n\nimport { PackedSplats } from \"./PackedSplats\";\nimport type { GeneratorMapping } from \"./SplatAccumulator\";\nimport type { SplatGenerator, SplatModifier } from \"./SplatGenerator\";\n\n// SplatAccumulator helps manage the generation of splats from multiple\n// SplatGenerators, keeping track of the splat mapping, coordinate system,\n// and reference count.\n\nexport class OldSplatAccumulator {\n splats = new PackedSplats();\n // The transform from Accumulator coordinate system to world coordinates.\n toWorld = new THREE.Matrix4();\n // An array of all Gsplat mappings that were used for generation\n mapping: GeneratorMapping[] = [];\n // Number of SparkViewpoints (or other) that reference this accumulator, used\n // to figure out when it can be recycled for use\n refCount = 0;\n\n // Incremented every time the splats are updated/generated.\n splatsVersion = -1;\n // Incremented every time the splat mapping/layout is updated.\n // Splat sort order can be reused between equivalent mapping versions.\n mappingVersion = -1;\n\n ensureGenerate(maxSplats: number) {\n if (this.splats.ensureGenerate(maxSplats)) {\n // If we had to resize our PackedSplats then clear all previous mappings\n this.mapping = [];\n }\n }\n\n // Generate all Gsplats from an array of generators\n generateSplats({\n renderer,\n modifier,\n generators,\n forceUpdate,\n originToWorld,\n }: {\n renderer: THREE.WebGLRenderer;\n modifier: SplatModifier;\n generators: GeneratorMapping[];\n forceUpdate?: boolean;\n originToWorld: THREE.Matrix4;\n }) {\n // Create a lookup from last SplatGenerator\n const mapping = this.mapping.reduce((map, record) => {\n map.set(record.node, record);\n return map;\n }, new Map());\n\n // Run generators that are different from existing mapping\n let updated = 0;\n let numSplats = 0;\n for (const { node, generator, version, base, count } of generators) {\n const current = mapping.get(node);\n if (\n forceUpdate ||\n generator !== current?.generator ||\n version !== current?.version ||\n base !== current?.base ||\n count !== current?.count\n ) {\n // Something is different from before so we should generate these Gsplats\n if (generator && count > 0) {\n const modGenerator = modifier.apply(generator);\n try {\n this.splats.generate({\n generator: modGenerator,\n base,\n count,\n renderer,\n });\n } catch (error) {\n node.generator = undefined;\n node.generatorError = error;\n }\n updated += 1;\n }\n }\n numSplats = Math.max(numSplats, base + count);\n }\n\n this.splats.numSplats = numSplats;\n this.toWorld.copy(originToWorld);\n this.mapping = generators;\n return updated !== 0;\n }\n\n // Check if this accumulator has exactly the same generator mapping as\n // the previous one. If so, we can reuse the Gsplat sort order.\n hasCorrespondence(other: OldSplatAccumulator) {\n if (this.mapping.length !== other.mapping.length) {\n return false;\n }\n return this.mapping.every(({ node, base, count }, i) => {\n const {\n node: otherNode,\n base: otherBase,\n count: otherCount,\n } = other.mapping[i];\n return node === otherNode && base === otherBase && count === otherCount;\n });\n }\n}\n","import * as THREE from \"three\";\n\nimport {\n OldSparkViewpoint,\n type OldSparkViewpointOptions,\n} from \"./OldSparkViewpoint\";\nimport { OldSplatAccumulator } from \"./OldSplatAccumulator\";\nimport { OldSplatGeometry } from \"./OldSplatGeometry\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { RgbaArray } from \"./RgbaArray\";\nimport type { GeneratorMapping } from \"./SplatAccumulator\";\nimport { SplatEdit } from \"./SplatEdit\";\nimport { SplatGenerator, SplatModifier } from \"./SplatGenerator\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n type SplatEncoding,\n} from \"./defines\";\nimport {\n DynoVec3,\n DynoVec4,\n Gsplat,\n TPackedSplats,\n dynoBlock,\n readPackedSplat,\n transformGsplat,\n} from \"./dyno\";\nimport { getShaders } from \"./shaders\";\nimport {\n averagePositions,\n averageQuaternions,\n cloneClock,\n withinCoorientDist,\n} from \"./utils\";\n\n// SparkRenderer aggregates splats from multiple generators into a single\n// accumulated collection per frame. In normal operation we only need a\n// maximum of 3 accumulators: One currently being viewed, one currently\n// being sorted, and one more for generating the next frame. Accumulators\n// must be \"released\" by each viewpoint using it, so in unusual cases\n// such as slow render-outs, we may want to allow more than 3 so the\n// pipeline can continue generating new frames, but we limit to a maximum\n// of 5 to avoid excessive memory usage.\nconst MAX_ACCUMULATORS = 5;\n\nexport type OldSparkRendererOptions = {\n /**\n * Pass in your THREE.WebGLRenderer instance so Spark can perform work\n * outside the usual render loop. Should be created with antialias: false\n * (default setting) as WebGL anti-aliasing doesn't improve Gaussian Splatting\n * rendering and significantly reduces performance.\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Whether to use premultiplied alpha when accumulating splat RGB\n * @default true\n */\n premultipliedAlpha?: boolean;\n /**\n * Pass in a THREE.Clock to synchronize time-based effects across different\n * systems. Alternatively, you can set the SparkRenderer properties time and\n * deltaTime directly. (default: new THREE.Clock)\n */\n clock?: THREE.Clock;\n /**\n * Controls whether to check and automatically update Gsplat collection after\n * each frame render.\n * @default true\n */\n autoUpdate?: boolean;\n /**\n * Controls whether to update the Gsplats before or after rendering. For WebXR\n * this must be false in order to complete rendering as soon as possible.\n * @default false\n */\n preUpdate?: boolean;\n /**\n * Distance threshold for SparkRenderer movement triggering a Gsplat update at\n * the new origin.\n * @default 1.0\n */\n originDistance?: number;\n /**\n * Maximum standard deviations from the center to render Gaussians. Values\n * Math.sqrt(5)..Math.sqrt(8) produce good results and can be tweaked for\n * performance.\n * @default Math.sqrt(8)\n */\n maxStdDev?: number;\n /**\n * Minimum pixel radius for splat rendering.\n * @default 0.0\n */\n minPixelRadius?: number;\n /**\n * Maximum pixel radius for splat rendering.\n * @default 512.0\n */\n maxPixelRadius?: number;\n /**\n * Minimum alpha value for splat rendering.\n * @default 0.5 * (1.0 / 255.0)\n */\n minAlpha?: number;\n /**\n * Enable 2D Gaussian splatting rendering ability. When this mode is enabled,\n * any scale x/y/z component that is exactly 0 (minimum quantized value) results\n * in the other two non-0 axis being interpreted as an oriented 2D Gaussian Splat,\n * rather instead of the usual projected 3DGS Z-slice. When reading PLY files,\n * scale values less than e^-30 will be interpreted as 0.\n * @default false\n */\n enable2DGS?: boolean;\n /**\n * Scalar value to add to 2D splat covariance diagonal, effectively blurring +\n * enlarging splats. In scenes trained without the Gsplat anti-aliasing tweak\n * this value was typically 0.3, but with anti-aliasing it is 0.0\n * @default 0.0\n */\n preBlurAmount?: number;\n /**\n * Scalar value to add to 2D splat covarianve diagonal, with opacity adjustment\n * to correctly account for \"blurring\" when anti-aliasing. Typically 0.3\n * (equivalent to approx 0.5 pixel radius) in scenes trained with anti-aliasing.\n */\n blurAmount?: number;\n /**\n * Depth-of-field distance to focal plane\n */\n focalDistance?: number;\n /**\n * Full-width angle of aperture opening (in radians), 0.0 to disable\n * @default 0.0\n */\n apertureAngle?: number;\n /**\n * Modulate Gaussian kernel falloff. 0 means \"no falloff, flat shading\",\n * while 1 is the normal Gaussian kernel.\n * @default 1.0\n */\n falloff?: number;\n /**\n * X/Y clipping boundary factor for Gsplat centers against view frustum.\n * 1.0 clips any centers that are exactly out of bounds, while 1.4 clips\n * centers that are 40% beyond the bounds.\n * @default 1.4\n */\n clipXY?: number;\n /**\n * Parameter to adjust projected splat scale calculation to match other renderers,\n * similar to the same parameter in the MKellogg 3DGS renderer. Higher values will\n * tend to sharpen the splats. A value 2.0 can be used to match the behavior of\n * the PlayCanvas renderer.\n * @default 1.0\n */\n focalAdjustment?: number;\n /**\n * Configures the SparkViewpointOptions for the default SparkViewpoint\n * associated with this SparkRenderer. Notable option: sortRadial (sort by\n * radial distance or Z-depth)\n */\n view?: OldSparkViewpointOptions;\n /**\n * Override the default splat encoding ranges for the PackedSplats.\n * (default: undefined)\n */\n splatEncoding?: SplatEncoding;\n};\n\nexport class OldSparkRenderer extends THREE.Mesh {\n renderer: THREE.WebGLRenderer;\n premultipliedAlpha: boolean;\n material: THREE.ShaderMaterial;\n uniforms: ReturnType;\n\n autoUpdate: boolean;\n preUpdate: boolean;\n needsUpdate: boolean;\n originDistance: number;\n maxStdDev: number;\n minPixelRadius: number;\n maxPixelRadius: number;\n minAlpha: number;\n enable2DGS: boolean;\n preBlurAmount: number;\n blurAmount: number;\n focalDistance: number;\n apertureAngle: number;\n falloff: number;\n clipXY: number;\n focalAdjustment: number;\n splatEncoding: SplatEncoding;\n\n splatTexture: null | {\n enable?: boolean;\n texture?: THREE.Data3DTexture;\n multiply?: THREE.Matrix2;\n add?: THREE.Vector2;\n near?: number;\n far?: number;\n mid?: number;\n } = null;\n\n time?: number;\n deltaTime?: number;\n clock: THREE.Clock;\n\n // Latest Gsplat collection being displayed\n active: OldSplatAccumulator;\n // Free list of accumulators for reuse\n private freeAccumulators: OldSplatAccumulator[];\n // Total number of accumulators currently allocated\n private accumulatorCount: number;\n // Default SparkViewpoint used for rendering to the canvas\n defaultView: OldSparkViewpoint;\n // List of SparkViewpoints with autoUpdate enabled\n autoViewpoints: OldSparkViewpoint[] = [];\n\n // Dynos used to transform Gsplats to the accumulator coordinate system\n private rotateToAccumulator = new DynoVec4({ value: new THREE.Quaternion() });\n private translateToAccumulator = new DynoVec3({ value: new THREE.Vector3() });\n private modifier: SplatModifier;\n\n // Last rendered frame number so we know when we're rendering a new frame\n private lastFrame = -1;\n // Last update timestamp to compute deltaTime\n private lastUpdateTime: number | null = null;\n // List of cameras used for the current viewpoint (for WebXR)\n private defaultCameras: THREE.Matrix4[] = [];\n private lastStochastic: boolean | null = null;\n\n // Should be set to the defaultView, but can be temporarily changed to another\n // viewpoint using prepareViewpoint() for rendering from a different viewpoint.\n viewpoint: OldSparkViewpoint;\n\n // Holds data needed to perform a scheduled Gsplat update.\n private pendingUpdate = {\n scene: null as THREE.Scene | null,\n originToWorld: new THREE.Matrix4(),\n timeoutId: -1,\n };\n\n // Internal SparkViewpoint used for environment map rendering.\n private envViewpoint: OldSparkViewpoint | null = null;\n\n // Data and buffers used for environment map rendering\n private static cubeRender: {\n target: THREE.WebGLCubeRenderTarget;\n camera: THREE.CubeCamera;\n near: number;\n far: number;\n } | null = null;\n private static pmrem: THREE.PMREMGenerator | null = null;\n\n static EMPTY_SPLAT_TEXTURE = new THREE.Data3DTexture();\n\n constructor(options: OldSparkRendererOptions) {\n const uniforms = OldSparkRenderer.makeUniforms();\n const shaders = getShaders();\n const premultipliedAlpha = options.premultipliedAlpha ?? true;\n const material = new THREE.ShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: shaders.oldSplatVertex,\n fragmentShader: shaders.oldSplatFragment,\n uniforms,\n premultipliedAlpha,\n transparent: true,\n depthTest: true,\n depthWrite: false,\n side: THREE.DoubleSide,\n });\n\n super(EMPTY_GEOMETRY, material);\n // Disable frustum culling because we want to always draw them all\n // and cull Gsplats individually in the shader\n this.frustumCulled = false;\n\n this.renderer = options.renderer;\n this.material = material;\n this.uniforms = uniforms;\n\n // Create a Gsplat modifier that takes the output of any SplatGenerator\n // and transforms them into the accumulator's coordinate system\n const modifier = dynoBlock(\n { gsplat: Gsplat },\n { gsplat: Gsplat },\n ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"gsplat not defined\");\n }\n gsplat = transformGsplat(gsplat, {\n rotate: this.rotateToAccumulator,\n translate: this.translateToAccumulator,\n });\n return { gsplat };\n },\n );\n this.modifier = new SplatModifier(modifier);\n\n this.premultipliedAlpha = premultipliedAlpha;\n this.autoUpdate = options.autoUpdate ?? true;\n this.preUpdate = options.preUpdate ?? false;\n this.needsUpdate = false;\n this.originDistance = options.originDistance ?? 1;\n this.maxStdDev = options.maxStdDev ?? Math.sqrt(8.0);\n this.minPixelRadius = options.minPixelRadius ?? 0.0;\n this.maxPixelRadius = options.maxPixelRadius ?? 512.0;\n this.minAlpha = options.minAlpha ?? 0.5 * (1.0 / 255.0);\n this.enable2DGS = options.enable2DGS ?? false;\n this.preBlurAmount = options.preBlurAmount ?? 0.0;\n this.blurAmount = options.blurAmount ?? 0.3;\n this.focalDistance = options.focalDistance ?? 0.0;\n this.apertureAngle = options.apertureAngle ?? 0.0;\n this.falloff = options.falloff ?? 1.0;\n this.clipXY = options.clipXY ?? 1.4;\n this.focalAdjustment = options.focalAdjustment ?? 1.0;\n this.splatEncoding = options.splatEncoding ?? { ...DEFAULT_SPLAT_ENCODING };\n\n this.active = new OldSplatAccumulator();\n this.active.refCount = 1;\n this.accumulatorCount = 1;\n this.freeAccumulators = [];\n // Start with the minimum of 2 total accumulators\n for (let count = 0; count < 1; ++count) {\n this.freeAccumulators.push(new OldSplatAccumulator());\n this.accumulatorCount += 1;\n }\n\n // Create a default SparkViewpoint that is used when we call render()\n // on the scene and has the sorted Gsplat collection from that viewpoint.\n this.defaultView = new OldSparkViewpoint({\n ...options.view,\n autoUpdate: true,\n spark: this,\n });\n this.viewpoint = this.defaultView;\n this.prepareViewpoint(this.viewpoint);\n\n this.clock = options.clock ? cloneClock(options.clock) : new THREE.Clock();\n }\n\n static makeUniforms() {\n // Create uniforms used for Gsplat vertex and fragment shaders\n const uniforms = {\n // Size of render viewport in pixels\n renderSize: { value: new THREE.Vector2() },\n // Near and far plane distances\n near: { value: 0.1 },\n far: { value: 1000.0 },\n // Total number of Gsplats in packedSplats to render\n numSplats: { value: 0 },\n // SplatAccumulator to view transformation quaternion\n renderToViewQuat: { value: new THREE.Quaternion() },\n // SplatAccumulator to view transformation translation\n renderToViewPos: { value: new THREE.Vector3() },\n // Maximum distance (in stddevs) from Gsplat center to render\n maxStdDev: { value: 1.0 },\n // Minimum pixel radius for splat rendering\n minPixelRadius: { value: 0.0 },\n // Maximum pixel radius for splat rendering\n maxPixelRadius: { value: 512.0 },\n // Minimum alpha value for splat rendering\n minAlpha: { value: 0.5 * (1.0 / 255.0) },\n // Enable stochastic splat rendering\n stochastic: { value: false },\n // Enable interpreting 0-thickness Gsplats as 2DGS\n enable2DGS: { value: false },\n // Add to projected 2D splat covariance diagonal (thickens and brightens)\n preBlurAmount: { value: 0.0 },\n // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing)\n blurAmount: { value: 0.3 },\n // Depth-of-field distance to focal plane\n focalDistance: { value: 0.0 },\n // Full-width angle of aperture opening (in radians)\n apertureAngle: { value: 0.0 },\n // Modulate Gaussian kernal falloff. 0 means \"no falloff, flat shading\",\n // 1 is normal e^-x^2 falloff.\n falloff: { value: 1.0 },\n // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds\n clipXY: { value: 1.4 },\n // Debug renderSize scale factor\n focalAdjustment: { value: 1.0 },\n // Enable splat texture rendering\n splatTexEnable: { value: false },\n // Splat texture to render\n splatTexture: { type: \"t\", value: OldSparkRenderer.EMPTY_SPLAT_TEXTURE },\n // Splat texture UV transform (multiply)\n splatTexMul: { value: new THREE.Matrix2() },\n // Splat texture UV transform (add)\n splatTexAdd: { value: new THREE.Vector2() },\n // Splat texture near plane distance\n splatTexNear: { value: 0.1 },\n // Splat texture far plane distance\n splatTexFar: { value: 1000.0 },\n // Splat texture mid plane distance, or 0.0 to disable\n splatTexMid: { value: 0.0 },\n // Gsplat collection to render\n packedSplats: { type: \"t\", value: PackedSplats.getEmptyArray },\n // Splat encoding ranges\n rgbMinMaxLnScaleMinMax: { value: new THREE.Vector4() },\n // Time in seconds for time-based effects\n time: { value: 0 },\n // Delta time in seconds since last frame\n deltaTime: { value: 0 },\n // Whether to encode Gsplat with linear RGB (for environment mapping)\n encodeLinear: { value: false },\n // Debug flag that alternates each frame\n debugFlag: { value: false },\n };\n return uniforms;\n }\n\n private canAllocAccumulator(): boolean {\n // Returns true if can allocate an accumulator immediately\n return (\n this.freeAccumulators.length > 0 ||\n this.accumulatorCount < MAX_ACCUMULATORS\n );\n }\n\n private maybeAllocAccumulator(): OldSplatAccumulator | null {\n // Allocate an accumulator immediately if possible, else return null\n let accumulator = this.freeAccumulators.pop();\n if (accumulator === undefined) {\n if (this.accumulatorCount >= MAX_ACCUMULATORS) {\n return null;\n }\n accumulator = new OldSplatAccumulator();\n this.accumulatorCount += 1;\n }\n accumulator.refCount = 1;\n return accumulator;\n }\n\n releaseAccumulator(accumulator: OldSplatAccumulator) {\n // Decrement reference count and recycle if no longer in use\n accumulator.refCount -= 1;\n if (accumulator.refCount === 0) {\n this.freeAccumulators.push(accumulator);\n }\n }\n\n newViewpoint(options: OldSparkViewpointOptions) {\n // Create a new SparkViewpoint for this SparkRenderer.\n // Note that every SparkRenderer has an initial spark.defaultView: SparkViewpoint\n // from construction, which is used for the default canvas render loop.\n // Calling this method allows you to create additional viewpoints, which can be\n // updated automatically each frame (performing Gsplat sorting every time there\n // is an update), or updated on-demand for controlled rendering for video render\n // or similar applications.\n return new OldSparkViewpoint({ ...options, spark: this });\n }\n\n onBeforeRender(\n renderer: THREE.WebGLRenderer,\n scene: THREE.Scene,\n camera: THREE.Camera,\n ) {\n // throw new Error(\"onBeforeRender disabled in SparkRenderer\");\n\n // Called by Three.js before rendering this SparkRenderer.\n // At this point we can't modify the geometry or material, all these must\n // be set in the scene already before this is called. Update the uniforms\n // to render the Gsplats from the current active viewpoint.\n const time = this.time ?? this.clock.getElapsedTime();\n const deltaTime = time - (this.viewpoint.lastTime ?? time);\n this.viewpoint.lastTime = time;\n\n const frame = renderer.info.render.frame;\n const isNewFrame = frame !== this.lastFrame;\n this.lastFrame = frame;\n\n const viewpoint = this.viewpoint;\n if (viewpoint === this.defaultView) {\n // When rendering is triggered on the default viewpoint,\n // perform automatic updates.\n if (isNewFrame) {\n if (!renderer.xr.isPresenting) {\n // Non-WebXR mode, just a single camera\n this.defaultView.viewToWorld = camera.matrixWorld.clone();\n this.defaultCameras = [this.defaultView.viewToWorld];\n } else {\n // In WebXR mode we are called multiple times, once for each eye,\n // so use their average to compute the sort center.\n const cameras = renderer.xr.getCamera().cameras;\n this.defaultCameras = cameras.map((camera) => camera.matrixWorld);\n this.defaultView.viewToWorld =\n averageOriginToWorlds(this.defaultCameras) ?? new THREE.Matrix4();\n }\n }\n\n if (this.autoUpdate) {\n this.update({ scene, viewToWorld: this.defaultView.viewToWorld });\n }\n }\n\n // Update uniforms for rendering\n\n if (isNewFrame) {\n // Keep these uniforms the same for both eyes if in WebXR\n if (this.material.premultipliedAlpha !== this.premultipliedAlpha) {\n this.material.premultipliedAlpha = this.premultipliedAlpha;\n this.material.needsUpdate = true;\n }\n this.uniforms.time.value = time;\n this.uniforms.deltaTime.value = deltaTime;\n // Alternating debug flag that can aid in visual debugging\n this.uniforms.debugFlag.value = (performance.now() / 1000.0) % 2.0 < 1.0;\n\n if (viewpoint.display && viewpoint.stochastic) {\n (this.geometry as OldSplatGeometry).instanceCount =\n this.uniforms.numSplats.value;\n }\n }\n\n if (viewpoint.target) {\n // Rendering to a texture target, so its dimensions\n this.uniforms.renderSize.value.set(\n viewpoint.target.width,\n viewpoint.target.height,\n );\n } else {\n // Rendering to the canvas or WebXR\n const renderSize = renderer.getDrawingBufferSize(\n this.uniforms.renderSize.value,\n );\n if (renderSize.x === 1 && renderSize.y === 1) {\n // WebXR mode on Apple Vision Pro returns 1x1 when presenting.\n // Use a different means to figure out the render size.\n const baseLayer = renderer.xr.getSession()?.renderState.baseLayer;\n if (baseLayer) {\n renderSize.x = baseLayer.framebufferWidth;\n renderSize.y = baseLayer.framebufferHeight;\n }\n }\n }\n\n // Update uniforms from instance properties\n const typedCamera = camera as\n | THREE.PerspectiveCamera\n | THREE.OrthographicCamera;\n this.uniforms.near.value = typedCamera.near;\n this.uniforms.far.value = typedCamera.far;\n this.uniforms.encodeLinear.value = viewpoint.encodeLinear;\n this.uniforms.maxStdDev.value = this.maxStdDev;\n this.uniforms.minPixelRadius.value = this.minPixelRadius;\n this.uniforms.maxPixelRadius.value = this.maxPixelRadius;\n this.uniforms.minAlpha.value = this.minAlpha;\n this.uniforms.stochastic.value = viewpoint.stochastic;\n this.uniforms.enable2DGS.value = this.enable2DGS;\n this.uniforms.preBlurAmount.value = this.preBlurAmount;\n this.uniforms.blurAmount.value = this.blurAmount;\n this.uniforms.focalDistance.value = this.focalDistance;\n this.uniforms.apertureAngle.value = this.apertureAngle;\n this.uniforms.falloff.value = this.falloff;\n this.uniforms.clipXY.value = this.clipXY;\n this.uniforms.focalAdjustment.value = this.focalAdjustment;\n\n if (this.lastStochastic !== !viewpoint.stochastic) {\n this.lastStochastic = !viewpoint.stochastic;\n this.material.transparent = !viewpoint.stochastic;\n this.material.depthWrite = viewpoint.stochastic;\n this.material.needsUpdate = true;\n }\n\n if (this.splatTexture) {\n const { enable, texture, multiply, add, near, far, mid } =\n this.splatTexture;\n if (enable && texture) {\n this.uniforms.splatTexEnable.value = true;\n this.uniforms.splatTexture.value = texture;\n if (multiply) {\n this.uniforms.splatTexMul.value.fromArray(multiply.elements);\n } else {\n this.uniforms.splatTexMul.value.set(\n 0.5 / this.maxStdDev,\n 0,\n 0,\n 0.5 / this.maxStdDev,\n );\n }\n this.uniforms.splatTexAdd.value.set(add?.x ?? 0.5, add?.y ?? 0.5);\n this.uniforms.splatTexNear.value = near ?? this.uniforms.near.value;\n this.uniforms.splatTexFar.value = far ?? this.uniforms.far.value;\n this.uniforms.splatTexMid.value = mid ?? 0.0;\n } else {\n this.uniforms.splatTexEnable.value = false;\n this.uniforms.splatTexture.value = OldSparkRenderer.EMPTY_SPLAT_TEXTURE;\n }\n } else {\n this.uniforms.splatTexEnable.value = false;\n this.uniforms.splatTexture.value = OldSparkRenderer.EMPTY_SPLAT_TEXTURE;\n }\n\n // Calculate the transform from the accumulator to the current camera\n const accumToWorld =\n viewpoint.display?.accumulator.toWorld ?? new THREE.Matrix4();\n const worldToCamera = camera.matrixWorld.clone().invert();\n const originToCamera = accumToWorld.clone().premultiply(worldToCamera);\n originToCamera.decompose(\n this.uniforms.renderToViewPos.value,\n this.uniforms.renderToViewQuat.value,\n new THREE.Vector3(),\n );\n }\n\n // Update the uniforms for the given viewpoint.\n // Note that the client expects to be able to call render() at any point\n // to update the canvas, so we must switch the viewpoint back to\n // defaultView when we're finished.\n prepareViewpoint(viewpoint?: OldSparkViewpoint) {\n this.viewpoint = viewpoint ?? this.viewpoint;\n\n if (this.viewpoint.display) {\n const { accumulator, geometry } = this.viewpoint.display;\n this.uniforms.numSplats.value = accumulator.splats.numSplats;\n this.uniforms.packedSplats.value = accumulator.splats.getTexture();\n this.uniforms.rgbMinMaxLnScaleMinMax.value.set(\n accumulator.splats.splatEncoding?.rgbMin ?? 0.0,\n accumulator.splats.splatEncoding?.rgbMax ?? 1.0,\n accumulator.splats.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n accumulator.splats.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n this.geometry = geometry;\n this.material.transparent = !this.viewpoint.stochastic;\n this.material.depthWrite = this.viewpoint.stochastic;\n this.material.needsUpdate = true;\n } else {\n // No Gsplats to display for this viewpoint yet\n this.uniforms.numSplats.value = 0;\n this.uniforms.packedSplats.value = PackedSplats.getEmptyArray;\n this.geometry = EMPTY_GEOMETRY;\n }\n }\n\n // If spark.autoUpdate is false then you must manually call\n // spark.update({ scene }) to have the scene Gsplats be re-generated.\n update({\n scene,\n viewToWorld,\n }: { scene: THREE.Scene; viewToWorld?: THREE.Matrix4 }) {\n // Compute the transform for the SparkRenderer to use as origin\n // for Gsplat generation and accumulation.\n const originToWorld = this.matrixWorld;\n\n // Either do the update now, or in the next \"tick\" depending on preUpdate\n if (this.preUpdate) {\n this.updateInternal({\n scene,\n originToWorld: originToWorld.clone(),\n viewToWorld,\n });\n } else {\n // Pass the update parameters to be performed on the next tick\n this.pendingUpdate.scene = scene;\n this.pendingUpdate.originToWorld.copy(originToWorld);\n\n // Schedule a timeout if there isn't one already\n if (this.pendingUpdate.timeoutId === -1) {\n this.pendingUpdate.timeoutId = setTimeout(() => {\n const { scene, originToWorld } = this.pendingUpdate;\n this.pendingUpdate.scene = null;\n this.pendingUpdate.timeoutId = -1;\n const updated = this.updateInternal({\n scene: scene as THREE.Scene,\n originToWorld,\n viewToWorld,\n });\n\n if (updated) {\n // Flush to encourage eager execution\n const gl = this.renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n }, 1);\n }\n }\n }\n\n updateInternal({\n scene,\n originToWorld,\n viewToWorld,\n }: {\n scene: THREE.Scene;\n originToWorld?: THREE.Matrix4;\n viewToWorld?: THREE.Matrix4;\n }): boolean {\n if (!this.canAllocAccumulator()) {\n // We don't have any available accumulators because of sorting\n // back pressure, so don't update this time but try again next time.\n // Signal update not attempted.\n return false;\n }\n\n // Figure out the frame of the SparkRenderer and current view\n if (!originToWorld) {\n originToWorld = this.active.toWorld;\n }\n viewToWorld = viewToWorld ?? originToWorld.clone();\n\n const time = this.time ?? this.clock.getElapsedTime();\n const deltaTime = time - (this.lastUpdateTime ?? time);\n this.lastUpdateTime = time;\n\n // Create a lookup from last active SplatGenerator to Gsplat mapping record\n const activeMapping = this.active.mapping.reduce((map, record) => {\n map.set(record.node, record);\n return map;\n }, new Map());\n\n // Traverse visible scene to find all SplatGenerators and global SplatEdits\n const { generators, visibleGenerators, globalEdits } =\n this.compileScene(scene);\n\n // Let all SplatGenerators run their frameUpdate() method\n for (const object of generators) {\n object.frameUpdate?.({\n renderer: this.renderer,\n object,\n time,\n deltaTime,\n viewToWorld,\n globalEdits,\n });\n }\n\n const visibleGenHash = new Set(visibleGenerators.map((g) => g.uuid));\n\n // Make sure we have new version numbers for any objects with either\n // generator or numSplats that have changed since the last frame.\n for (const object of generators) {\n const current = activeMapping.get(object);\n const isVisible = object.generator && visibleGenHash.has(object.uuid);\n const numSplats = isVisible ? object.numSplats : 0;\n if (\n this.needsUpdate ||\n object.generator !== current?.generator ||\n numSplats !== current?.count\n ) {\n object.updateVersion();\n }\n }\n\n // Check if the origin is within the maximum allowed distance before\n // we trigger an update.\n const originUpdate = !withinCoorientDist({\n matrix1: originToWorld,\n matrix2: this.active.toWorld,\n maxDistance: this.originDistance,\n });\n\n // Check if we need any update at all\n const needsUpdate =\n this.needsUpdate ||\n originUpdate ||\n generators.length !== activeMapping.size ||\n generators.some((g) => g.version !== activeMapping.get(g)?.version);\n this.needsUpdate = false;\n\n let accumulator: OldSplatAccumulator | null = null;\n if (needsUpdate) {\n // Need to update, so allocate an accumulator\n accumulator = this.maybeAllocAccumulator();\n if (!accumulator) {\n // This should never happen since we checked canAllocAccumulator() above\n throw new Error(\"Unreachable\");\n }\n\n // Compute whether our view frame has changed enough to warrant\n // doing a Gsplat sort. Check both distance epsilon and\n // minimum co-orientation (dot product of quaternions)\n const originChanged = !withinCoorientDist({\n matrix1: originToWorld,\n matrix2: accumulator.toWorld,\n maxDistance: 0.00001,\n minCoorient: 0.99999,\n });\n\n // Compute an ordering of the generators with the rough goal\n // of keeping unchanging generators near the front to minimize\n // the number of Gsplats that need to be regenerated.\n const sorted = visibleGenerators\n .map((g, gIndex): [number, number, SplatGenerator] => {\n const lastGen = activeMapping.get(g);\n // If no previous generator, sort by absolute version, which will\n // tend to push frequently updated generators toward the end\n return !lastGen\n ? [Number.POSITIVE_INFINITY, g.version, g]\n : // Sort by version deltas then by previous ordering in the mapping,\n // attempting to keep unchanging generators near the front\n // to improve our chances of avoiding a re-generation.\n [g.version - lastGen.version, lastGen.base, g];\n })\n .sort((a, b) => {\n // Sort by first then second element of the tuple\n if (a[0] !== b[0]) {\n return a[0] - b[0];\n }\n return a[1] - b[1];\n });\n const genOrder = sorted.map(([_version, _seq, g]) => g);\n\n // Compute sequential layout of generated splats\n const splatCounts = genOrder.map((g) => g.numSplats);\n const { maxSplats, mapping } =\n accumulator.splats.generateMapping(splatCounts);\n const newGenerators = genOrder.map((node, gIndex) => {\n const { base, count } = mapping[gIndex];\n return {\n node,\n generator: node.generator,\n version: node.version,\n base,\n count,\n };\n });\n\n // Compute worldToAccumulator origin transform (no scale)\n originToWorld\n .clone()\n .invert()\n .decompose(\n this.translateToAccumulator.value,\n this.rotateToAccumulator.value,\n new THREE.Vector3(),\n );\n\n // Generate the Gsplats according to the mapping that need updating\n accumulator.ensureGenerate(maxSplats);\n accumulator.splats.splatEncoding = { ...this.splatEncoding };\n const generated = accumulator.generateSplats({\n renderer: this.renderer,\n modifier: this.modifier,\n generators: newGenerators,\n forceUpdate: originChanged,\n originToWorld,\n });\n\n // Update splat version number\n accumulator.splatsVersion = this.active.splatsVersion + 1;\n // Increment the mapping version if the mapping isn't identical to before\n const hasCorrespondence = accumulator.hasCorrespondence(this.active);\n accumulator.mappingVersion =\n this.active.mappingVersion + (hasCorrespondence ? 0 : 1);\n\n // Release the old accumulator and make the new one active\n this.releaseAccumulator(this.active);\n this.active = accumulator;\n this.prepareViewpoint();\n }\n\n // Let the system breath before potentially triggering sorts\n setTimeout(() => {\n // Notify all auto-updating viewpoints that we updated the Gsplats\n for (const view of this.autoViewpoints) {\n view.autoPoll({ accumulator: accumulator ?? undefined });\n }\n }, 1);\n\n // Signal update was performed\n return true;\n }\n\n private compileScene(scene: THREE.Scene): {\n generators: SplatGenerator[];\n visibleGenerators: SplatGenerator[];\n globalEdits: SplatEdit[];\n } {\n // Take a snapshot of the SplatGenerators and SplatEdits in the scene\n // to be used to run an update.\n const generators: SplatGenerator[] = [];\n // Collect all SplatGenerators, even if not visible, because we want to\n // be able to call their update functions every frame.\n scene.traverse((node) => {\n if (node instanceof SplatGenerator) {\n generators.push(node);\n }\n });\n\n const visibleGenerators: SplatGenerator[] = [];\n scene.traverseVisible((node) => {\n if (node instanceof SplatGenerator) {\n visibleGenerators.push(node);\n }\n });\n\n const globalEdits = new Set();\n scene.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n let ancestor = node.parent;\n while (ancestor != null && !(ancestor instanceof SplatMesh)) {\n ancestor = ancestor.parent;\n }\n if (ancestor == null) {\n // Not part of a SplatMesh so it's a global edit\n globalEdits.add(node);\n }\n }\n });\n return {\n generators,\n visibleGenerators,\n globalEdits: Array.from(globalEdits),\n };\n }\n\n // Renders out the scene to an environment map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces,\n // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture\n // that can assigned directly to a THREE.MeshStandardMaterial.envMap property.\n async renderEnvMap({\n renderer,\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = false,\n }: {\n renderer?: THREE.WebGLRenderer;\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects?: THREE.Object3D[];\n update?: boolean;\n }): Promise {\n if (!this.envViewpoint) {\n this.envViewpoint = this.newViewpoint({ sort360: true });\n }\n if (\n !OldSparkRenderer.cubeRender ||\n OldSparkRenderer.cubeRender.target.width !== size ||\n OldSparkRenderer.cubeRender.near !== near ||\n OldSparkRenderer.cubeRender.far !== far\n ) {\n if (OldSparkRenderer.cubeRender) {\n OldSparkRenderer.cubeRender.target.dispose();\n }\n const target = new THREE.WebGLCubeRenderTarget(size, {\n format: THREE.RGBAFormat,\n generateMipmaps: true,\n minFilter: THREE.LinearMipMapLinearFilter,\n });\n const camera = new THREE.CubeCamera(near, far, target);\n OldSparkRenderer.cubeRender = { target, camera, near, far };\n }\n\n if (!OldSparkRenderer.pmrem) {\n OldSparkRenderer.pmrem = new THREE.PMREMGenerator(\n renderer ?? this.renderer,\n );\n }\n\n // Prepare the viewpoint, sorting Gsplats for this view origin.\n const viewToWorld = new THREE.Matrix4().setPosition(worldCenter);\n await this.envViewpoint?.prepare({ scene, viewToWorld, update });\n\n const { target, camera } = OldSparkRenderer.cubeRender;\n camera.position.copy(worldCenter);\n\n // Save the visibility state of objects we want to hide before render\n const objectVisibility = new Map();\n for (const object of hideObjects) {\n objectVisibility.set(object, object.visible);\n object.visible = false;\n }\n\n // Update the CubeCamera, which performs 6 cube face renders\n this.prepareViewpoint(this.envViewpoint);\n camera.update(renderer ?? this.renderer, scene);\n\n // Restore viewpoint to default and object visibility\n this.prepareViewpoint(this.defaultView);\n for (const [object, visible] of objectVisibility.entries()) {\n object.visible = visible;\n }\n\n // Pre-filter the cube map using THREE.PMREMGenerator\n return OldSparkRenderer.pmrem?.fromCubemap(target.texture).texture;\n }\n\n // Utility function to recursively set the envMap property for any\n // THREE.MeshStandardMaterial within the subtree of root.\n recurseSetEnvMap(root: THREE.Object3D, envMap: THREE.Texture) {\n root.traverse((node) => {\n if (node instanceof THREE.Mesh) {\n if (Array.isArray(node.material)) {\n for (const material of node.material) {\n if (material instanceof THREE.MeshStandardMaterial) {\n material.envMap = envMap;\n }\n }\n } else {\n if (node.material instanceof THREE.MeshStandardMaterial) {\n node.material.envMap = envMap;\n }\n }\n }\n });\n }\n\n // Utility function that helps extract the Gsplat RGBA values from a\n // SplatGenerator, including the result of any real-time RGBA SDF edits applied\n // to a SplatMesh. This effectively \"bakes\" any computed RGBA values, which can\n // now be used as a pipeline input via SplatMesh.splatRgba to inject these\n // baked values into the Gsplat data.\n getRgba({\n generator,\n rgba,\n }: { generator: SplatGenerator; rgba?: RgbaArray }): RgbaArray {\n const mapping = this.active.mapping.find(({ node }) => node === generator);\n if (!mapping) {\n throw new Error(\"Generator not found\");\n }\n\n rgba = rgba ?? new RgbaArray();\n rgba.fromPackedSplats({\n packedSplats: this.active.splats,\n base: mapping.base,\n count: mapping.count,\n renderer: this.renderer,\n });\n return rgba;\n }\n\n // Utility function that builds on getRgba({ generator }) and additionally\n // reads back the RGBA values to the CPU in a Uint8Array with packed RGBA\n // in that byte order.\n async readRgba({\n generator,\n rgba,\n }: { generator: SplatGenerator; rgba?: RgbaArray }): Promise {\n rgba = this.getRgba({ generator, rgba });\n return rgba.read();\n }\n}\n\nconst EMPTY_GEOMETRY = new OldSplatGeometry(new Uint32Array(1), 0);\n\nconst reorderSplats = dynoBlock(\n { packedSplats: TPackedSplats, index: \"int\" },\n { gsplat: Gsplat },\n ({ packedSplats, index }) => {\n if (!packedSplats || !index) {\n throw new Error(\"Invalid input\");\n }\n const gsplat = readPackedSplat(packedSplats, index);\n return { gsplat };\n },\n);\n\nfunction averageOriginToWorlds(\n originToWorlds: THREE.Matrix4[],\n): THREE.Matrix4 | null {\n if (originToWorlds.length === 0) {\n return null;\n }\n\n const position = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const scale = new THREE.Vector3();\n\n const positions: THREE.Vector3[] = [];\n const quaternions: THREE.Quaternion[] = [];\n for (const matrix of originToWorlds) {\n matrix.decompose(position, quaternion, scale);\n positions.push(position);\n quaternions.push(quaternion);\n }\n\n return new THREE.Matrix4().compose(\n averagePositions(positions),\n averageQuaternions(quaternions),\n new THREE.Vector3(1, 1, 1),\n );\n}\n","import type { SplatEncoding } from \"./defines\";\nimport { computeMaxSplats, setPackedSplat } from \"./utils\";\n\nexport function decodeAntiSplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n) {\n const numSplats = Math.floor(fileBytes.length / 32); // 32 bytes per splat\n if (numSplats * 32 !== fileBytes.length) {\n throw new Error(\"Invalid .splat file size\");\n }\n initNumSplats(numSplats);\n\n const f32 = new Float32Array(fileBytes.buffer);\n for (let i = 0; i < numSplats; ++i) {\n const i32 = i * 32;\n const i8 = i * 8;\n const x = f32[i8 + 0];\n const y = f32[i8 + 1];\n const z = f32[i8 + 2];\n const scaleX = f32[i8 + 3];\n const scaleY = f32[i8 + 4];\n const scaleZ = f32[i8 + 5];\n const r = fileBytes[i32 + 24] / 255;\n const g = fileBytes[i32 + 25] / 255;\n const b = fileBytes[i32 + 26] / 255;\n const opacity = fileBytes[i32 + 27] / 255;\n const quatW = (fileBytes[i32 + 28] - 128) / 128;\n const quatX = (fileBytes[i32 + 29] - 128) / 128;\n const quatY = (fileBytes[i32 + 30] - 128) / 128;\n const quatZ = (fileBytes[i32 + 31] - 128) / 128;\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n }\n}\n\nexport function unpackAntiSplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n} {\n let numSplats = 0;\n let maxSplats = 0;\n let packedArray = new Uint32Array(0);\n decodeAntiSplat(\n fileBytes,\n (cbNumSplats) => {\n numSplats = cbNumSplats;\n maxSplats = computeMaxSplats(numSplats);\n packedArray = new Uint32Array(maxSplats * 4);\n },\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n setPackedSplat(\n packedArray,\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n },\n );\n return { packedArray, numSplats };\n}\n","import type { SplatEncoding } from \"./defines\";\nimport {\n computeMaxSplats,\n encodeSh1Rgb,\n encodeSh2Rgb,\n encodeSh3Rgb,\n fromHalf,\n setPackedSplat,\n} from \"./utils\";\n\ntype KsplatCompression = {\n bytesPerCenter: number;\n bytesPerScale: number;\n bytesPerRotation: number;\n bytesPerColor: number;\n bytesPerSphericalHarmonicsComponent: number;\n scaleOffsetBytes: number;\n rotationOffsetBytes: number;\n colorOffsetBytes: number;\n sphericalHarmonicsOffsetBytes: number;\n scaleRange: number;\n};\n\nconst KSPLAT_COMPRESSION: Record = {\n 0: {\n bytesPerCenter: 12,\n bytesPerScale: 12,\n bytesPerRotation: 16,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 4,\n scaleOffsetBytes: 12,\n rotationOffsetBytes: 24,\n colorOffsetBytes: 40,\n sphericalHarmonicsOffsetBytes: 44,\n scaleRange: 1,\n },\n 1: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 2,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n 2: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 1,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n};\n\nconst KSPLAT_SH_DEGREE_TO_COMPONENTS: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nexport function decodeKsplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n) {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n initNumSplats(numSplats);\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n\n if (sphericalHarmonicsDegree >= 1 && sh1) {\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n if (sh2) {\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n }\n if (sh3) {\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n sectionBase += storageSizeBytes;\n }\n}\n\nexport function unpackKsplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n} {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n setPackedSplat(\n packedArray,\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n\n if (sphericalHarmonicsDegree >= 1) {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n encodeSh1Rgb(extra.sh1 as Uint32Array, i, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n encodeSh2Rgb(extra.sh2 as Uint32Array, i, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n encodeSh3Rgb(extra.sh3 as Uint32Array, i, sh3, splatEncoding);\n }\n }\n }\n sectionBase += storageSizeBytes;\n }\n return { packedArray, numSplats, extra };\n}\n","import * as THREE from \"three\";\nimport {\n SplatData,\n type TranscodeSpzInput,\n getSplatFileType,\n getSplatFileTypeFromPath,\n} from \"./SplatLoader\";\nimport { GunzipReader, fromHalf, normalize } from \"./utils\";\n\nimport { decodeAntiSplat } from \"./antisplat\";\nimport { SplatFileType } from \"./defines\";\nimport { decodeKsplat } from \"./ksplat\";\nimport { PlyReader } from \"./ply\";\n\n// SPZ file format reader\n\nexport class SpzReader {\n fileBytes: Uint8Array;\n reader: GunzipReader;\n\n version = -1;\n numSplats = 0;\n shDegree = 0;\n fractionalBits = 0;\n flags = 0;\n flagAntiAlias = false;\n flagLod = false;\n reserved = 0;\n headerParsed = false;\n parsed = false;\n\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n this.reader = new GunzipReader({\n fileBytes: this.fileBytes as Uint8Array,\n });\n }\n\n async parseHeader() {\n if (this.headerParsed) {\n throw new Error(\"SPZ file header already parsed\");\n }\n\n const header = new DataView((await this.reader.read(16)).buffer);\n if (header.getUint32(0, true) !== 0x5053474e) {\n throw new Error(\"Invalid SPZ file\");\n }\n this.version = header.getUint32(4, true);\n if (this.version < 1 || this.version > 3) {\n throw new Error(`Unsupported SPZ version: ${this.version}`);\n }\n\n this.numSplats = header.getUint32(8, true);\n this.shDegree = header.getUint8(12);\n this.fractionalBits = header.getUint8(13);\n this.flags = header.getUint8(14);\n this.flagAntiAlias = (this.flags & 0x01) !== 0;\n this.flagLod = (this.flags & 0x80) !== 0;\n this.reserved = header.getUint8(15);\n this.headerParsed = true;\n this.parsed = false;\n }\n\n async parseSplats(\n centerCallback?: (index: number, x: number, y: number, z: number) => void,\n alphaCallback?: (index: number, alpha: number) => void,\n rgbCallback?: (index: number, r: number, g: number, b: number) => void,\n scalesCallback?: (\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n ) => void,\n quatCallback?: (\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n {\n childCounts,\n childStarts,\n }: {\n childCounts?: (index: number, count: number) => void;\n childStarts?: (index: number, start: number) => void;\n } = {},\n ) {\n if (!this.headerParsed) {\n throw new Error(\"SPZ file header must be parsed first\");\n }\n if (this.parsed) {\n throw new Error(\"SPZ file already parsed\");\n }\n this.parsed = true;\n\n if (this.version === 1) {\n // float16 centers\n const centerBytes = await this.reader.read(this.numSplats * 3 * 2);\n const centerUint16 = new Uint16Array(centerBytes.buffer);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const x = fromHalf(centerUint16[i3]);\n const y = fromHalf(centerUint16[i3 + 1]);\n const z = fromHalf(centerUint16[i3 + 2]);\n centerCallback?.(i, x, y, z);\n }\n } else if (this.version === 2 || this.version === 3) {\n // 24-bit fixed-point centers\n const fixed = 1 << this.fractionalBits;\n const centerBytes = await this.reader.read(this.numSplats * 3 * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i9 = i * 9;\n const x =\n (((centerBytes[i9 + 2] << 24) |\n (centerBytes[i9 + 1] << 16) |\n (centerBytes[i9] << 8)) >>\n 8) /\n fixed;\n const y =\n (((centerBytes[i9 + 5] << 24) |\n (centerBytes[i9 + 4] << 16) |\n (centerBytes[i9 + 3] << 8)) >>\n 8) /\n fixed;\n const z =\n (((centerBytes[i9 + 8] << 24) |\n (centerBytes[i9 + 7] << 16) |\n (centerBytes[i9 + 6] << 8)) >>\n 8) /\n fixed;\n centerCallback?.(i, x, y, z);\n }\n } else {\n throw new Error(\"Unreachable\");\n }\n\n {\n const bytes = await this.reader.read(this.numSplats);\n for (let i = 0; i < this.numSplats; i++) {\n alphaCallback?.(i, bytes[i] / 255);\n }\n }\n {\n const rgbBytes = await this.reader.read(this.numSplats * 3);\n const scale = SH_C0 / 0.15;\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const r = (rgbBytes[i3] / 255 - 0.5) * scale + 0.5;\n const g = (rgbBytes[i3 + 1] / 255 - 0.5) * scale + 0.5;\n const b = (rgbBytes[i3 + 2] / 255 - 0.5) * scale + 0.5;\n rgbCallback?.(i, r, g, b);\n }\n }\n {\n const scalesBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const scaleX = Math.exp(scalesBytes[i3] / 16 - 10);\n const scaleY = Math.exp(scalesBytes[i3 + 1] / 16 - 10);\n const scaleZ = Math.exp(scalesBytes[i3 + 2] / 16 - 10);\n scalesCallback?.(i, scaleX, scaleY, scaleZ);\n }\n }\n if (this.version === 3) {\n // Version 3 uses a trick called \"smallest three\" to compress the rotation quaternions\n // achieving better precision. \"Optimizing orientation\" section at https://gafferongames.com/post/snapshot_compression/ A quaternion length must be 1: x^2+y^2+z^2+w^2 = 1\n // We can drop one component and reconstruct it with the identity above.\n // Largest component is dropped for best numerical precision.\n // Quaternion stored in 32 bits\n // 10 bits singed integer for each of the 3 components + 2 bits indicating the index of dropped component.\n // vs 8 bits for each component uncompressed (spz version < 3)\n // Max Value after extracting largest component v is another component v\n // (v,v,0,0)\n // v^2 + v^2 = 1\n // v = 1 / sqrt(2);\n const maxValue = 1 / Math.sqrt(2); // 0.7071\n const quatBytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 4;\n const quaternion = [0, 0, 0, 0];\n const values = [\n quatBytes[i3],\n quatBytes[i3 + 1],\n quatBytes[i3 + 2],\n quatBytes[i3 + 3],\n ];\n // all values are packed in 32 bits (10 per each of 3 components + 2 bits of index of larged value)\n const combinedValues =\n values[0] + (values[1] << 8) + (values[2] << 16) + (values[3] << 24);\n // each component value is 9 bits + sign (1 bit)\n const valueMask = (1 << 9) - 1;\n // extract index of the largest element. 2 top bits.\n const largestIndex = combinedValues >>> 30;\n let remainingValues = combinedValues;\n let sumSquares = 0;\n\n for (let i = 3; i >= 0; --i) {\n if (i !== largestIndex) {\n // extract current value and sign.\n const value = remainingValues & valueMask;\n const sign = (remainingValues >>> 9) & 0x1;\n // each value is represented as 10 bits. Shift to next one.\n remainingValues = remainingValues >>> 10;\n // convert to range [0,1] and then to [0, 0.7071]\n quaternion[i] = maxValue * (value / valueMask);\n // apply sign.\n quaternion[i] = sign === 0 ? quaternion[i] : -quaternion[i];\n // accumulate the sum of squares\n sumSquares += quaternion[i] * quaternion[i];\n }\n }\n\n // quartenion length must be 1 (x^2+y^2+z^2+w^2 = 1)\n // so can reconstruct largest component from the other 3.\n // w = sqrt(1 - x^2 - y^2 - z^2);\n const square = 1 - sumSquares;\n quaternion[largestIndex] = Math.sqrt(Math.max(square, 0));\n\n quatCallback?.(\n i,\n quaternion[0],\n quaternion[1],\n quaternion[2],\n quaternion[3],\n );\n }\n } else {\n const quatBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const quatX = quatBytes[i3] / 127.5 - 1;\n const quatY = quatBytes[i3 + 1] / 127.5 - 1;\n const quatZ = quatBytes[i3 + 2] / 127.5 - 1;\n const quatW = Math.sqrt(\n Math.max(0, 1 - quatX * quatX - quatY * quatY - quatZ * quatZ),\n );\n quatCallback?.(i, quatX, quatY, quatZ, quatW);\n }\n }\n\n if (shCallback && this.shDegree >= 1) {\n const sh1 = new Float32Array(3 * 3);\n const sh2 = this.shDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 = this.shDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n const shBytes = await this.reader.read(\n this.numSplats * SH_DEGREE_TO_VECS[this.shDegree] * 3,\n );\n\n let offset = 0;\n for (let i = 0; i < this.numSplats; i++) {\n for (let j = 0; j < 9; ++j) {\n sh1[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 9;\n if (sh2) {\n for (let j = 0; j < 15; ++j) {\n sh2[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 15;\n }\n if (sh3) {\n for (let j = 0; j < 21; ++j) {\n sh3[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 21;\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n if (this.flagLod) {\n let bytes = await this.reader.read(this.numSplats * 2);\n for (let i = 0; i < this.numSplats; i++) {\n const i2 = i * 2;\n const count = bytes[i2] + (bytes[i2 + 1] << 8);\n childCounts?.(i, count);\n }\n\n bytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i4 = i * 4;\n const start =\n bytes[i4] +\n (bytes[i4 + 1] << 8) +\n (bytes[i4 + 2] << 16) +\n (bytes[i4 + 3] << 24);\n childStarts?.(i, start);\n }\n }\n }\n}\n\nconst SH_DEGREE_TO_VECS: Record = { 1: 3, 2: 8, 3: 15 };\nconst SH_C0 = 0.28209479177387814;\n\nexport const SPZ_MAGIC = 0x5053474e; // NGSP = Niantic gaussian splat\nexport const SPZ_VERSION = 3;\nexport const FLAG_ANTIALIASED = 0x1;\n\nexport class SpzWriter {\n buffer: ArrayBuffer;\n view: DataView;\n numSplats: number;\n shDegree: number;\n fractionalBits: number;\n fraction: number;\n flagAntiAlias: boolean;\n clippedCount = 0;\n\n constructor({\n numSplats,\n shDegree,\n fractionalBits = 12,\n flagAntiAlias = true,\n }: {\n numSplats: number;\n shDegree: number;\n fractionalBits?: number;\n flagAntiAlias?: boolean;\n }) {\n const splatSize =\n 9 + // Position\n 1 + // Opacity\n 3 + // Scale\n 3 + // DC-rgb\n 4 + // Rotation\n (shDegree >= 1 ? 9 : 0) +\n (shDegree >= 2 ? 15 : 0) +\n (shDegree >= 3 ? 21 : 0);\n const bufferSize = 16 + numSplats * splatSize;\n this.buffer = new ArrayBuffer(bufferSize);\n this.view = new DataView(this.buffer);\n\n this.view.setUint32(0, SPZ_MAGIC, true); // NGSP\n this.view.setUint32(4, SPZ_VERSION, true);\n this.view.setUint32(8, numSplats, true);\n this.view.setUint8(12, shDegree);\n this.view.setUint8(13, fractionalBits);\n this.view.setUint8(14, flagAntiAlias ? FLAG_ANTIALIASED : 0);\n this.view.setUint8(15, 0); // Reserved\n\n this.numSplats = numSplats;\n this.shDegree = shDegree;\n this.fractionalBits = fractionalBits;\n this.fraction = 1 << fractionalBits;\n this.flagAntiAlias = flagAntiAlias;\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n // Divide by this.fraction and round to nearest integer,\n // then write as 3-bytes per x then y then z.\n const xRounded = Math.round(x * this.fraction);\n const xInt = Math.max(-0x7fffff, Math.min(0x7fffff, xRounded));\n const yRounded = Math.round(y * this.fraction);\n const yInt = Math.max(-0x7fffff, Math.min(0x7fffff, yRounded));\n const zRounded = Math.round(z * this.fraction);\n const zInt = Math.max(-0x7fffff, Math.min(0x7fffff, zRounded));\n const clipped = xRounded !== xInt || yRounded !== yInt || zRounded !== zInt;\n if (clipped) {\n this.clippedCount += 1;\n // if (this.clippedCount < 10) {\n // // Write x y z also in hex\n // console.log(`Clipped ${index}: ${x}, ${y}, ${z} (0x${x.toString(16)}, 0x${y.toString(16)}, 0x${z.toString(16)}) -> ${xRounded}, ${yRounded}, ${zRounded} (0x${xRounded.toString(16)}, 0x${yRounded.toString(16)}, 0x${zRounded.toString(16)}) -> ${xInt}, ${yInt}, ${zInt} (0x${xInt.toString(16)}, 0x${yInt.toString(16)}, 0x${zInt.toString(16)})`);\n // }\n }\n const i9 = index * 9;\n const base = 16 + i9;\n this.view.setUint8(base, xInt & 0xff);\n this.view.setUint8(base + 1, (xInt >> 8) & 0xff);\n this.view.setUint8(base + 2, (xInt >> 16) & 0xff);\n this.view.setUint8(base + 3, yInt & 0xff);\n this.view.setUint8(base + 4, (yInt >> 8) & 0xff);\n this.view.setUint8(base + 5, (yInt >> 16) & 0xff);\n this.view.setUint8(base + 6, zInt & 0xff);\n this.view.setUint8(base + 7, (zInt >> 8) & 0xff);\n this.view.setUint8(base + 8, (zInt >> 16) & 0xff);\n }\n\n setAlpha(index: number, alpha: number) {\n const base = 16 + this.numSplats * 9 + index;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round(alpha * 255))),\n );\n }\n\n static scaleRgb(r: number) {\n const v = ((r - 0.5) / (SH_C0 / 0.15) + 0.5) * 255;\n return Math.max(0, Math.min(255, Math.round(v)));\n }\n\n setRgb(index: number, r: number, g: number, b: number) {\n const base = 16 + this.numSplats * 10 + index * 3;\n this.view.setUint8(base, SpzWriter.scaleRgb(r));\n this.view.setUint8(base + 1, SpzWriter.scaleRgb(g));\n this.view.setUint8(base + 2, SpzWriter.scaleRgb(b));\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n const base = 16 + this.numSplats * 13 + index * 3;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleX) + 10) * 16))),\n );\n this.view.setUint8(\n base + 1,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleY) + 10) * 16))),\n );\n this.view.setUint8(\n base + 2,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleZ) + 10) * 16))),\n );\n }\n\n setQuat(\n index: number,\n ...q: [number, number, number, number] // x, y, z, w\n ) {\n const base = 16 + this.numSplats * 16 + index * 4;\n\n const quat = normalize(q);\n\n // Find largest component\n let iLargest = 0;\n for (let i = 1; i < 4; ++i) {\n if (Math.abs(quat[i]) > Math.abs(quat[iLargest])) {\n iLargest = i;\n }\n }\n\n // Since -quat represents the same rotation as quat, transform the quaternion so the largest element\n // is positive. This avoids having to send its sign bit.\n const negate = quat[iLargest] < 0 ? 1 : 0;\n\n // Do compression using sign bit and 9-bit precision per element.\n let comp = iLargest;\n for (let i = 0; i < 4; ++i) {\n if (i !== iLargest) {\n const negbit = (quat[i] < 0 ? 1 : 0) ^ negate;\n const mag = Math.floor(\n ((1 << 9) - 1) * (Math.abs(quat[i]) / Math.SQRT1_2) + 0.5,\n );\n comp = (comp << 10) | (negbit << 9) | mag;\n }\n }\n\n this.view.setUint8(base, comp & 0xff);\n this.view.setUint8(base + 1, (comp >> 8) & 0xff);\n this.view.setUint8(base + 2, (comp >> 16) & 0xff);\n this.view.setUint8(base + 3, (comp >>> 24) & 0xff);\n }\n\n static quantizeSh(sh: number, bits: number) {\n const value = Math.round(sh * 128) + 128;\n const bucketSize = 1 << (8 - bits);\n const quantized =\n Math.floor((value + bucketSize / 2) / bucketSize) * bucketSize;\n return Math.max(0, Math.min(255, quantized));\n }\n\n setSh(\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) {\n const shVecs = SH_DEGREE_TO_VECS[this.shDegree] || 0;\n const base1 = 16 + this.numSplats * 20 + index * shVecs * 3;\n for (let j = 0; j < 9; ++j) {\n this.view.setUint8(base1 + j, SpzWriter.quantizeSh(sh1[j], 5));\n }\n if (sh2) {\n const base2 = base1 + 9;\n for (let j = 0; j < 15; ++j) {\n this.view.setUint8(base2 + j, SpzWriter.quantizeSh(sh2[j], 4));\n }\n if (sh3) {\n const base3 = base2 + 15;\n for (let j = 0; j < 21; ++j) {\n this.view.setUint8(base3 + j, SpzWriter.quantizeSh(sh3[j], 4));\n }\n }\n }\n }\n\n async finalize(): Promise {\n const input = new Uint8Array(this.buffer);\n const stream = new ReadableStream({\n async start(controller) {\n controller.enqueue(input);\n controller.close();\n },\n });\n const compressed = stream.pipeThrough(new CompressionStream(\"gzip\"));\n const response = new Response(compressed);\n const buffer = await response.arrayBuffer();\n console.log(\n \"Compressed\",\n input.length,\n \"bytes to\",\n buffer.byteLength,\n \"bytes\",\n );\n return new Uint8Array(buffer);\n }\n}\n\nexport async function transcodeSpz(input: TranscodeSpzInput) {\n const splats = new SplatData();\n const {\n inputs,\n clipXyz,\n maxSh,\n fractionalBits = 12,\n opacityThreshold,\n } = input;\n for (const input of inputs) {\n const scale = input.transform?.scale ?? 1;\n const quaternion = new THREE.Quaternion().fromArray(\n input.transform?.quaternion ?? [0, 0, 0, 1],\n );\n const translate = new THREE.Vector3().fromArray(\n input.transform?.translate ?? [0, 0, 0],\n );\n const clip = clipXyz\n ? new THREE.Box3(\n new THREE.Vector3().fromArray(clipXyz.min),\n new THREE.Vector3().fromArray(clipXyz.max),\n )\n : undefined;\n\n function transformPos(pos: THREE.Vector3) {\n pos.multiplyScalar(scale);\n pos.applyQuaternion(quaternion);\n pos.add(translate);\n return pos;\n }\n\n function transformScales(scales: THREE.Vector3) {\n scales.multiplyScalar(scale);\n return scales;\n }\n\n function transformQuaternion(quat: THREE.Quaternion) {\n quat.premultiply(quaternion);\n return quat;\n }\n\n function withinClip(p: THREE.Vector3) {\n return !clip || clip.containsPoint(p);\n }\n\n function withinOpacity(opacity: number) {\n return opacityThreshold !== undefined\n ? opacity >= opacityThreshold\n : true;\n }\n\n let fileType = input.fileType;\n if (!fileType) {\n fileType = getSplatFileType(input.fileBytes);\n if (!fileType && input.pathOrUrl) {\n fileType = getSplatFileTypeFromPath(input.pathOrUrl);\n }\n }\n switch (fileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes: input.fileBytes });\n await ply.parseHeader();\n let lastIndex: number | null = null;\n ply.parseSplats(\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (sh1 && lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n }\n if (sh2 && lastIndex !== null) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3 && lastIndex !== null) {\n splats.setSh3(lastIndex, sh3);\n }\n },\n );\n break;\n }\n case SplatFileType.SPZ: {\n const spz = new SpzReader({ fileBytes: input.fileBytes });\n await spz.parseHeader();\n const mapping = new Int32Array(spz.numSplats);\n mapping.fill(-1);\n const centers = new Float32Array(spz.numSplats * 3);\n const center = new THREE.Vector3();\n spz.parseSplats(\n (index, x, y, z) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n centers[index * 3] = center.x;\n centers[index * 3 + 1] = center.y;\n centers[index * 3 + 2] = center.z;\n },\n (index, alpha) => {\n center.fromArray(centers, index * 3);\n if (withinClip(center) && withinOpacity(alpha)) {\n mapping[index] = splats.pushSplat();\n splats.setCenter(mapping[index], center.x, center.y, center.z);\n splats.setOpacity(mapping[index], alpha);\n }\n },\n (index, r, g, b) => {\n if (mapping[index] >= 0) {\n splats.setColor(mapping[index], r, g, b);\n }\n },\n (index, scaleX, scaleY, scaleZ) => {\n if (mapping[index] >= 0) {\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(mapping[index], scales.x, scales.y, scales.z);\n }\n },\n (index, quatX, quatY, quatZ, quatW) => {\n if (mapping[index] >= 0) {\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n mapping[index],\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n }\n },\n (index, sh1, sh2, sh3) => {\n if (mapping[index] >= 0) {\n splats.setSh1(mapping[index], sh1);\n if (sh2) {\n splats.setSh2(mapping[index], sh2);\n }\n if (sh3) {\n splats.setSh3(mapping[index], sh3);\n }\n }\n },\n );\n break;\n }\n case SplatFileType.SPLAT:\n decodeAntiSplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n const index = splats.pushSplat();\n splats.setCenter(index, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(index, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n index,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(index, opacity);\n splats.setColor(index, r, g, b);\n }\n },\n );\n break;\n case SplatFileType.KSPLAT: {\n let lastIndex: number | null = null;\n decodeKsplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n if (sh2) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3) {\n splats.setSh3(lastIndex, sh3);\n }\n }\n },\n );\n break;\n }\n default:\n throw new Error(`transcodeSpz not implemented for ${fileType}`);\n }\n }\n\n const shDegree = Math.min(\n maxSh ?? 3,\n splats.sh3 ? 3 : splats.sh2 ? 2 : splats.sh1 ? 1 : 0,\n );\n const spz = new SpzWriter({\n numSplats: splats.numSplats,\n shDegree,\n fractionalBits,\n flagAntiAlias: true,\n });\n\n for (let i = 0; i < splats.numSplats; ++i) {\n const i3 = i * 3;\n const i4 = i * 4;\n spz.setCenter(\n i,\n splats.centers[i3],\n splats.centers[i3 + 1],\n splats.centers[i3 + 2],\n );\n spz.setScale(\n i,\n splats.scales[i3],\n splats.scales[i3 + 1],\n splats.scales[i3 + 2],\n );\n spz.setQuat(\n i,\n splats.quaternions[i4],\n splats.quaternions[i4 + 1],\n splats.quaternions[i4 + 2],\n splats.quaternions[i4 + 3],\n );\n spz.setAlpha(i, splats.opacities[i]);\n spz.setRgb(\n i,\n splats.colors[i3],\n splats.colors[i3 + 1],\n splats.colors[i3 + 2],\n );\n if (splats.sh1 && shDegree >= 1) {\n spz.setSh(\n i,\n splats.sh1.slice(i * 9, (i + 1) * 9),\n shDegree >= 2 && splats.sh2\n ? splats.sh2.slice(i * 15, (i + 1) * 15)\n : undefined,\n shDegree >= 3 && splats.sh3\n ? splats.sh3.slice(i * 21, (i + 1) * 21)\n : undefined,\n );\n }\n }\n\n const spzBytes = await spz.finalize();\n return { fileBytes: spzBytes, clippedCount: spz.clippedCount };\n}\n","import * as THREE from \"three\";\n\n// SplatSkinning is an experimental class that implements dual-quaternion\n// skeletal animation for Gsplats. A skeletal animation system consists\n// of a set of bones, each with a \"rest\" pose that consists of a position\n// and orientation, and a weighting of up to 4 bones for each Gsplat.\n// By moving and rotating the bones you can animate all the Gsplats like\n// your would for a normal 3D animated mesh.\n// Note that the dual-quaternion formulation assumes that mass/volume\n// is conserved through these transformations, which helps avoid common\n// issues with linear blend skinning such as joint collapse or bulging.\n// However, it is not as good a fit for animations that involve explicit\n// deformations, such as cartoon animations.\n\nimport type { SplatMesh } from \"./SplatMesh\";\nimport {\n CovSplat,\n Dyno,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize, newArray } from \"./utils\";\n\nexport enum SplatSkinningMode {\n DUAL_QUATERNION = \"dual_quaternion\",\n LINEAR_BLEND = \"linear_blend\",\n}\n\nexport type SplatSkinningOptions = {\n // Specifies the SplatMesh that will be animated.\n mesh: SplatMesh;\n // Overrides the number of Gsplats in the mesh that will be animated.\n // (default: mesh.numSplats)\n numSplats?: number;\n // Set the number of bones used to animate the SplatMesh, with a maximum\n // of 256 (in order to compactly encode the bone index). (default: 256)\n numBones?: number;\n // Set the mode of skinning to use.\n // (default: DUAL_QUATERNION)\n mode?: SplatSkinningMode;\n};\n\nexport class SplatSkinning {\n mesh: SplatMesh;\n numSplats: number;\n mode: SplatSkinningMode;\n\n // Store the skinning weights for each Gsplat, composed of a 4-vector\n // of bone indices and weight\n skinData: Uint16Array;\n skinTexture: THREE.DataArrayTexture;\n\n numBones: number;\n boneData: Float32Array;\n boneTexture: THREE.DataTexture;\n\n boneRestQuatPosScale: {\n quat: THREE.Quaternion;\n pos: THREE.Vector3;\n scale: THREE.Vector3;\n }[];\n boneRestInvMats: THREE.Matrix4[];\n\n uniform: DynoUniform;\n\n constructor(options: SplatSkinningOptions) {\n this.mesh = options.mesh;\n this.numSplats = options.numSplats ?? this.mesh.numSplats;\n this.mode = options.mode ?? SplatSkinningMode.DUAL_QUATERNION;\n\n const { width, height, depth, maxSplats } = getTextureSize(this.numSplats);\n this.skinData = new Uint16Array(maxSplats * 4);\n this.skinTexture = new THREE.DataArrayTexture(\n this.skinData,\n width,\n height,\n depth,\n );\n this.skinTexture.format = THREE.RGBAIntegerFormat;\n this.skinTexture.type = THREE.UnsignedShortType;\n this.skinTexture.internalFormat = \"RGBA16UI\";\n this.skinTexture.needsUpdate = true;\n\n this.numBones = options.numBones ?? 256;\n this.boneData = new Float32Array(this.numBones * 16);\n this.boneTexture = new THREE.DataTexture(\n this.boneData,\n 4,\n this.numBones,\n THREE.RGBAFormat,\n THREE.FloatType,\n );\n this.boneTexture.internalFormat = \"RGBA32F\";\n this.boneTexture.needsUpdate = true;\n\n this.boneRestQuatPosScale = newArray(this.numBones, () => ({\n quat: new THREE.Quaternion(),\n pos: new THREE.Vector3(),\n scale: new THREE.Vector3(),\n }));\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats = newArray(this.numBones, () => new THREE.Matrix4());\n } else {\n this.boneRestInvMats = [];\n }\n\n this.uniform = new DynoUniform({\n key: \"skinning\",\n type: GsplatSkinning,\n globals: () => [defineGsplatSkinning],\n value: {\n numSplats: this.numSplats,\n numBones: this.numBones,\n skinTexture: this.skinTexture,\n boneTexture: this.boneTexture,\n },\n });\n }\n\n // Apply the skeletal animation to a Gsplat in a dyno program.\n modify(gsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"Linear blend skinning requires covSplats=true\");\n }\n return applyGsplatSkinning(gsplat, this.uniform);\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n return applyCovSplatDQSkinning(covsplat, this.uniform);\n }\n return applyCovSplatLBSkinning(covsplat, this.uniform);\n }\n\n // Set the \"rest\" pose for a bone with position and quaternion orientation.\n setRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(SplatSkinning.UNIT_SCALE);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex]\n .compose(pos, quat, SplatSkinning.UNIT_SCALE)\n .invert();\n }\n\n this.setBoneQuatPos(boneIndex, quat, pos);\n }\n\n getRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n }\n\n setRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(scale);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex].compose(pos, quat, scale).invert();\n }\n\n this.setBoneQuatPosScale(boneIndex, quat, pos, scale);\n }\n\n getRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n scale.copy(this.boneRestQuatPosScale[boneIndex].scale);\n }\n\n setRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setRestMat only supported for linear blend skinning\");\n }\n this.boneRestInvMats[boneIndex].copy(matrix).invert();\n this.setBoneMatrix(boneIndex, matrix);\n }\n\n getRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"getRestMat only supported for linear blend skinning\");\n }\n matrix.copy(this.boneRestInvMats[boneIndex]).invert();\n }\n\n // Set the \"current\" position and orientation of a bone.\n setBoneQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n SplatSkinning.relQuat\n .copy(this.boneRestQuatPosScale[boneIndex].quat)\n .invert();\n SplatSkinning.relPos\n .copy(pos)\n .sub(this.boneRestQuatPosScale[boneIndex].pos);\n SplatSkinning.relQuat.multiply(quat);\n SplatSkinning.dual\n .set(\n SplatSkinning.relPos.x,\n SplatSkinning.relPos.y,\n SplatSkinning.relPos.z,\n 0.0,\n )\n .multiply(SplatSkinning.relQuat);\n\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.relQuat.x;\n this.boneData[i16 + 1] = SplatSkinning.relQuat.y;\n this.boneData[i16 + 2] = SplatSkinning.relQuat.z;\n this.boneData[i16 + 3] = SplatSkinning.relQuat.w;\n this.boneData[i16 + 4] = 0.5 * SplatSkinning.dual.x;\n this.boneData[i16 + 5] = 0.5 * SplatSkinning.dual.y;\n this.boneData[i16 + 6] = 0.5 * SplatSkinning.dual.z;\n this.boneData[i16 + 7] = 0.5 * SplatSkinning.dual.w;\n } else {\n this.setBoneQuatPosScale(boneIndex, quat, pos, SplatSkinning.UNIT_SCALE);\n }\n }\n\n setBoneQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n throw new Error(\n \"setBoneQuatPosScale only supported for linear blend skinning\",\n );\n }\n\n SplatSkinning.skinMat.compose(pos, quat, scale);\n this.setBoneMatrix(boneIndex, SplatSkinning.skinMat);\n }\n\n setBoneMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setBoneMatrix only supported for linear blend skinning\");\n }\n\n SplatSkinning.skinMat.multiplyMatrices(\n this.boneRestInvMats[boneIndex],\n matrix,\n );\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.skinMat.elements[0];\n this.boneData[i16 + 1] = SplatSkinning.skinMat.elements[1];\n this.boneData[i16 + 2] = SplatSkinning.skinMat.elements[2];\n this.boneData[i16 + 3] = SplatSkinning.skinMat.elements[4];\n this.boneData[i16 + 4] = SplatSkinning.skinMat.elements[5];\n this.boneData[i16 + 5] = SplatSkinning.skinMat.elements[6];\n this.boneData[i16 + 6] = SplatSkinning.skinMat.elements[8];\n this.boneData[i16 + 7] = SplatSkinning.skinMat.elements[9];\n this.boneData[i16 + 8] = SplatSkinning.skinMat.elements[10];\n this.boneData[i16 + 9] = SplatSkinning.skinMat.elements[12];\n this.boneData[i16 + 10] = SplatSkinning.skinMat.elements[13];\n this.boneData[i16 + 11] = SplatSkinning.skinMat.elements[14];\n }\n\n // Set up to 4 bone indices and weights for a Gsplat. For fewer than 4 bones,\n // you can set the remaining weights to 0 (and index=0).\n setSplatBones(\n splatIndex: number,\n boneIndices: THREE.Vector4,\n weights: THREE.Vector4,\n ) {\n const i4 = splatIndex * 4;\n this.skinData[i4 + 0] =\n Math.min(255, Math.max(0, Math.round(weights.x * 255.0))) +\n (boneIndices.x << 8);\n this.skinData[i4 + 1] =\n Math.min(255, Math.max(0, Math.round(weights.y * 255.0))) +\n (boneIndices.y << 8);\n this.skinData[i4 + 2] =\n Math.min(255, Math.max(0, Math.round(weights.z * 255.0))) +\n (boneIndices.z << 8);\n this.skinData[i4 + 3] =\n Math.min(255, Math.max(0, Math.round(weights.w * 255.0))) +\n (boneIndices.w << 8);\n }\n\n // Call this to indicate that the bones have changed and the Gsplats need to be\n // re-generated with updated skinning.\n updateBones() {\n this.boneTexture.needsUpdate = true;\n this.mesh.needsUpdate = true;\n }\n\n private static UNIT_SCALE = new THREE.Vector3(1, 1, 1);\n private static relQuat = new THREE.Quaternion();\n private static relPos = new THREE.Vector3();\n private static dual = new THREE.Quaternion();\n private static skinMat = new THREE.Matrix4();\n}\n\n// dyno program definitions for SplatSkinning\n\nexport const GsplatSkinning = { type: \"GsplatSkinning\" } as {\n type: \"GsplatSkinning\";\n};\n\nexport const defineGsplatSkinning = unindent(`\n struct GsplatSkinning {\n int numSplats;\n int numBones;\n usampler2DArray skinTexture;\n sampler2D boneTexture;\n };\n`);\n\nexport const defineApplyGsplatSkinning = unindent(`\n void applyGsplatSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec4 quaternion\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n\n center = quatVec(quat, center) + translate;\n quaternion = quatQuat(quat, quaternion);\n }\n`);\n\nfunction applyGsplatSkinning(\n gsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { gsplat: typeof Gsplat; skinning: typeof GsplatSkinning },\n { gsplat: typeof Gsplat }\n >({\n inTypes: { gsplat: Gsplat, skinning: GsplatSkinning },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplatSkinning, defineApplyGsplatSkinning],\n inputs: { gsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n applyGsplatSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${gsplat}.index, ${gsplat}.center, ${gsplat}.quaternion\n );\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nexport const defineApplyCovSplatDQSkinning = unindent(`\n void applyCovSplatDQSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n mat3 basis = quaternionToMatrix(quat);\n\n center = quatVec(quat, center) + translate;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nexport const defineApplyCovSplatLBSkinning = unindent(`\n void applyCovSplatLBSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n mat3 basis = mat3(0.0);\n vec3 offset = vec3(0.0);\n\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n if (boneIndex < numBones) {\n vec4 v0 = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n vec4 v1 = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n vec4 v2 = texelFetch(boneTexture, ivec2(2, boneIndex), 0);\n basis += weights[i] * mat3(v0.x, v0.y, v0.z, v0.w, v1.x, v1.y, v1.z, v1.w, v2.x);\n offset += weights[i] * vec3(v2.y, v2.z, v2.w);\n }\n }\n }\n\n center = basis * center + offset;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nfunction applyCovSplatDQSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatDQSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatDQSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nfunction applyCovSplatLBSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatLBSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatLBSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n","import * as THREE from \"three\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport function constructGrid({\n // PackedSplats object to add splats to\n splats,\n // min and max box extents of the grid\n extents,\n // step size along each grid axis\n stepSize = 1,\n // spherical radius of each Gsplat\n pointRadius = 0.01,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n pointShadowScale = 2.0,\n // Gsplat opacity\n opacity = 1.0,\n // Gsplat color (THREE.Color) or function to set color for position:\n // ((THREE.Color, THREE.Vector3) => void) (default: RGB-modulated grid)\n color,\n}: {\n splats: PackedSplats;\n extents: THREE.Box3;\n stepSize?: number;\n pointRadius?: number;\n pointShadowScale?: number;\n opacity?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const EPSILON = 1.0e-6;\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n if (color == null) {\n color = (color, point) =>\n color.set(\n 0.55 + 0.45 * Math.cos(point.x * 1),\n 0.55 + 0.45 * Math.cos(point.y * 1),\n 0.55 + 0.45 * Math.cos(point.z * 1),\n );\n }\n const pointColor = new THREE.Color();\n for (let z = extents.min.z; z < extents.max.z + EPSILON; z += stepSize) {\n for (let y = extents.min.y; y < extents.max.y + EPSILON; y += stepSize) {\n for (let x = extents.min.x; x < extents.max.x + EPSILON; x += stepSize) {\n center.set(x, y, z);\n for (let layer = 0; layer < 2; ++layer) {\n scales.setScalar(pointRadius * (layer ? 1 : pointShadowScale));\n if (!layer) {\n pointColor.setScalar(0.0);\n } else if (typeof color === \"function\") {\n color(pointColor, center);\n } else {\n pointColor.copy(color);\n }\n splats.pushSplat(center, scales, quaternion, opacity, pointColor);\n }\n }\n }\n }\n}\n\nexport function constructAxes({\n // PackedSplats object to add splats to\n splats,\n // scale (Gsplat scale along axis)\n scale = 0.25,\n // radius of the axes (Gsplat scale orthogonal to axis)\n axisRadius = 0.0075,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n axisShadowScale = 2.0,\n // origins of the axes (default single axis at origin)\n origins = [new THREE.Vector3()],\n}: {\n splats: PackedSplats;\n scale?: number;\n axisRadius?: number;\n axisShadowScale?: number;\n origins?: THREE.Vector3[];\n}) {\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const color = new THREE.Color();\n const opacity = 1.0;\n for (const origin of origins) {\n for (let axis = 0; axis < 3; ++axis) {\n center.set(\n origin.x + (axis === 0 ? scale : 0),\n origin.y + (axis === 1 ? scale : 0),\n origin.z + (axis === 2 ? scale : 0),\n );\n for (let layer = 0; layer < 2; ++layer) {\n scales.set(\n (axis === 0 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 1 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 2 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n );\n color.setRGB(\n layer === 0 ? 0.0 : axis === 0 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 1 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 2 ? 1.0 : 0.0,\n );\n splats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n }\n}\n\nexport function constructSpherePoints({\n // PackedSplats object to add splats to\n splats,\n // center of the sphere (default: origin)\n origin = new THREE.Vector3(),\n // radius of the sphere\n radius = 1.0,\n // maximum depth of recursion for subdividing the sphere\n // Warning: Gsplat count grows exponentially with depth\n maxDepth = 3,\n // filter function to apply to each point, for example to select\n // points in a certain direction or other function ((THREE.Vector3) => boolean)\n // (default: null)\n filter = null,\n // radius of each oriented Gsplat\n pointRadius = 0.02,\n // flatness of each oriented Gsplat\n pointThickness = 0.001,\n // color of each Gsplat (THREE.Color) or function to set color for point:\n // ((THREE.Color, THREE.Vector3) => void) (default: white)\n color = new THREE.Color(1, 1, 1),\n}: {\n splats: PackedSplats;\n origin?: THREE.Vector3;\n radius?: number;\n maxDepth?: number;\n filter?: ((point: THREE.Vector3) => boolean) | null;\n pointRadius?: number;\n pointThickness?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const pointsHash: { [key: string]: THREE.Vector3 } = {};\n\n function addPoint(p: THREE.Vector3) {\n if (filter && !filter(p)) {\n return;\n }\n const key = `${p.x},${p.y},${p.z}`;\n if (!pointsHash[key]) {\n pointsHash[key] = p;\n }\n }\n\n function recurse(\n depth: number,\n p0: THREE.Vector3,\n p1: THREE.Vector3,\n p2: THREE.Vector3,\n ) {\n addPoint(p0);\n addPoint(p1);\n addPoint(p2);\n if (depth >= maxDepth) {\n return;\n }\n const p01 = new THREE.Vector3().addVectors(p0, p1).normalize();\n const p12 = new THREE.Vector3().addVectors(p1, p2).normalize();\n const p20 = new THREE.Vector3().addVectors(p2, p0).normalize();\n recurse(depth + 1, p0, p01, p20);\n recurse(depth + 1, p01, p1, p12);\n recurse(depth + 1, p20, p12, p2);\n recurse(depth + 1, p01, p12, p20);\n }\n\n for (const x of [-1, 1]) {\n for (const y of [-1, 1]) {\n for (const z of [-1, 1]) {\n const p0 = new THREE.Vector3(x, 0, 0);\n const p1 = new THREE.Vector3(0, y, 0);\n const p2 = new THREE.Vector3(0, 0, z);\n recurse(0, p0, p1, p2);\n }\n }\n }\n\n const points = Object.values(pointsHash);\n const scales = new THREE.Vector3(pointRadius, pointRadius, pointThickness);\n const quaternion = new THREE.Quaternion();\n const pointColor = typeof color === \"function\" ? new THREE.Color() : color;\n for (const point of points) {\n quaternion.setFromUnitVectors(new THREE.Vector3(0, 0, -1), point);\n if (typeof color === \"function\") {\n color(pointColor, point);\n }\n point.multiplyScalar(radius);\n point.add(origin);\n splats.pushSplat(point, scales, quaternion, 1.0, pointColor);\n }\n}\n\nexport function textSplats({\n // text string to display\n text,\n // browser font to render text with (default: \"Arial\")\n font,\n // font size in pixels/Gsplats (default: 32)\n fontSize,\n // SplatMesh.recolor tint assuming white Gsplats (default: white)\n color,\n // Individual Gsplat color (default: white)\n rgb,\n // Gsplat radius (default: 0.8 covers 1-unit spacing well)\n dotRadius,\n // text alignment: \"left\", \"center\", \"right\", \"start\", \"end\" (default: \"start\")\n textAlign,\n // line spacing multiplier, lines delimited by \"\\n\" (default: 1.0)\n lineHeight,\n // Coordinate scale in object-space (default: 1.0)\n objectScale,\n}: {\n text: string;\n font?: string;\n fontSize?: number;\n color?: THREE.Color;\n rgb?: THREE.Color;\n dotRadius?: number;\n textAlign?: \"left\" | \"center\" | \"right\" | \"start\" | \"end\";\n lineHeight?: number;\n objectScale?: number;\n}) {\n font = font ?? \"Arial\";\n fontSize = fontSize ?? 32;\n color = color ?? new THREE.Color(1, 1, 1);\n dotRadius = dotRadius ?? 0.8;\n textAlign = textAlign ?? \"start\";\n lineHeight = lineHeight ?? 1;\n objectScale = objectScale ?? 1;\n const lines = text.split(\"\\n\");\n\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Failed to create canvas context\");\n }\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n const metrics = ctx.measureText(\"\");\n const fontHeight =\n metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent;\n\n let minLeft = Number.POSITIVE_INFINITY;\n let maxRight = Number.NEGATIVE_INFINITY;\n let minTop = Number.POSITIVE_INFINITY;\n let maxBottom = Number.NEGATIVE_INFINITY;\n for (let line = 0; line < lines.length; ++line) {\n const metrics = ctx.measureText(lines[line]);\n const y = fontHeight * lineHeight * line;\n minLeft = Math.min(minLeft, -metrics.actualBoundingBoxLeft);\n maxRight = Math.max(maxRight, metrics.actualBoundingBoxRight);\n minTop = Math.min(minTop, y - metrics.actualBoundingBoxAscent);\n maxBottom = Math.max(maxBottom, y + metrics.actualBoundingBoxDescent);\n }\n const originLeft = Math.floor(minLeft);\n const originTop = Math.floor(minTop);\n const width = Math.ceil(maxRight) - originLeft;\n const height = Math.ceil(maxBottom) - originTop;\n canvas.width = width;\n canvas.height = height;\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n ctx.textBaseline = \"alphabetic\";\n ctx.fillStyle = \"#FFFFFF\";\n for (let i = 0; i < lines.length; ++i) {\n const y = fontHeight * lineHeight * i - originTop;\n ctx.fillText(lines[i], -originLeft, y);\n }\n\n const imageData = ctx.getImageData(0, 0, width, height);\n const rgba = new Uint8Array(imageData.data.buffer);\n const splats = new PackedSplats();\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius * objectScale);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n rgb = rgb ?? new THREE.Color(1, 1, 1);\n\n let offset = 0;\n for (let y = 0; y < height; ++y) {\n for (let x = 0; x < width; ++x) {\n const a = rgba[offset + 3];\n if (a > 0) {\n const opacity = a / 255;\n center.set(x - 0.5 * (width - 1), 0.5 * (height - 1) - y, 0);\n center.multiplyScalar(objectScale);\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n offset += 4;\n }\n }\n\n const mesh = new SplatMesh({ packedSplats: splats });\n mesh.recolor = color;\n return mesh;\n}\n\nexport function imageSplats({\n // URL of the image to convert to splats (example: `url: \"./image.png\"`)\n url,\n // Radius of each Gsplat, default covers 1-unit spacing well (default: 0.8)\n dotRadius,\n // Subsampling factor for the image. Higher values reduce resolution,\n // for example 2 will halve the width and height by averaging (default: 1)\n subXY,\n // Optional callback function to modify each Gsplat before it's added.\n // Return null to skip adding the Gsplat, or a number to set the opacity\n // and add the Gsplat with parameter values in the objects center, rgba etc. were\n // passed into the forEachSplat callback. Ending the callback in `return opacity;`\n // will retain the original opacity.\n // ((width: number, height: number, index: number, center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, opacity: number, color: THREE.Color) => number | null)\n forEachSplat,\n}: {\n url: string;\n dotRadius?: number;\n subXY?: number;\n forEachSplat?: (\n width: number,\n height: number,\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => number | null;\n}): SplatMesh {\n dotRadius = dotRadius ?? 0.8;\n subXY = Math.max(1, Math.floor(subXY ?? 1));\n\n return new SplatMesh({\n constructSplats: async (splats) => {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.onerror = reject;\n img.onload = () => {\n const { width, height } = img;\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n reject(new Error(\"Failed to create canvas context\"));\n return;\n }\n ctx.imageSmoothingEnabled = true;\n ctx.imageSmoothingQuality = \"high\";\n const destWidth = Math.round(width / subXY);\n const destHeight = Math.round(height / subXY);\n ctx.drawImage(img, 0, 0, destWidth, destHeight);\n try {\n const imageData = ctx.getImageData(0, 0, destWidth, destHeight);\n const rgba = new Uint8Array(imageData.data.buffer);\n\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const rgb = new THREE.Color();\n\n let index = 0;\n for (let y = 0; y < destHeight; ++y) {\n for (let x = 0; x < destWidth; ++x) {\n const offset = index * 4;\n const a = rgba[offset + 3];\n if (a > 0) {\n let opacity = a / 255;\n rgb.set(\n rgba[offset + 0] / 255,\n rgba[offset + 1] / 255,\n rgba[offset + 2] / 255,\n );\n center.set(\n x - 0.5 * (destWidth - 1),\n 0.5 * (destHeight - 1) - y,\n 0,\n );\n scales.setScalar(dotRadius);\n quaternion.set(0, 0, 0, 1);\n let push = true;\n if (forEachSplat) {\n const maybeOpacity = forEachSplat(\n destWidth,\n destHeight,\n index,\n center,\n scales,\n quaternion,\n opacity,\n rgb,\n );\n opacity = maybeOpacity ?? opacity;\n push = maybeOpacity !== null;\n }\n if (push) {\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n }\n index += 1;\n }\n }\n resolve();\n } catch (error) {\n reject(error);\n }\n };\n img.src = url;\n });\n },\n });\n}\n","import * as THREE from \"three\";\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n type DynoVal,\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n div,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n floatBitsToInt,\n hashVec3,\n imod,\n mul,\n split,\n sub,\n vec3,\n} from \"../dyno\";\n\nexport function staticBox({\n box,\n cells,\n dotScale,\n color,\n opacity,\n}: {\n box: THREE.Box3;\n cells: THREE.Vector3;\n dotScale: number;\n color?: THREE.Color;\n opacity?: number;\n}) {\n cells.x = Math.max(1, Math.round(cells.x));\n cells.y = Math.max(1, Math.round(cells.y));\n cells.z = Math.max(1, Math.round(cells.z));\n opacity = opacity ?? 1;\n const numSplats = cells.x * cells.y * cells.z;\n const dynoX = dynoConst(\"int\", cells.x);\n const dynoY = dynoConst(\"int\", cells.y);\n const dynoZ = dynoConst(\"int\", cells.z);\n\n const dynoTime = dynoFloat(0);\n const generator = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n const cellX = imod(index, dynoX);\n const index2 = div(index, dynoX);\n const cellY = imod(index2, dynoY);\n const cellZ = div(index2, dynoY);\n const cell = combine({\n vectorType: \"ivec3\",\n x: cellX,\n y: cellY,\n z: cellZ,\n });\n\n const intTime = floatBitsToInt(dynoTime);\n const inputs = combine({ vectorType: \"ivec2\", x: index, y: intTime });\n const random = hashVec3(inputs);\n const min = dynoConst(\"vec3\", box.min);\n const max = dynoConst(\"vec3\", box.max);\n const size = sub(max, min);\n const coord = div(add(vec3(cell), random), dynoConst(\"vec3\", cells));\n let r: DynoVal<\"float\">;\n let g: DynoVal<\"float\">;\n let b: DynoVal<\"float\">;\n if (color) {\n r = dynoConst(\"float\", color.r);\n g = dynoConst(\"float\", color.g);\n b = dynoConst(\"float\", color.b);\n } else {\n ({ r, g, b } = split(coord).outputs);\n }\n const rgba = combine({\n vectorType: \"vec4\",\n r,\n g,\n b,\n a: dynoConst(\"float\", opacity),\n });\n const center = add(min, mul(size, coord));\n const scales = vec3(dynoConst(\"float\", dotScale));\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgba,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ time }) => {\n dynoTime.value = time;\n const _updated = transformer.update(generator);\n generator.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return generator;\n}\n","import * as THREE from \"three\";\n\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n fract,\n hashVec4,\n max,\n mix,\n mod,\n mul,\n sin,\n split,\n sub,\n vec3,\n} from \"../dyno\";\nimport { dynoVec3 } from \"../dyno\";\n\n// snowBox produces Gsplat trajectories that move in a deterministic fashion over time,\n// with high similarity between adjacent frames. See examples/atmospheric/main.js\n// for an example that creates a snowBox.\n\n// A snowBox instance has a collection of properties that can be tuned to achieve\n// different particle effects. The below DEFAULT_SNOW and DEFAULT_RAIN are example\n// parameter sets that look a lot like snow and rain, and can be used as a starting\n// point for further tweaking: `const mySnow = { ...DEFAULT_SNOW, density: 500 };`\n\nexport const DEFAULT_SNOW = {\n box: new THREE.Box3(\n new THREE.Vector3(-1, -1, -1),\n new THREE.Vector3(1, 1, 1),\n ),\n density: 100,\n fallDirection: new THREE.Vector3(-1, -3, 1).normalize(),\n fallVelocity: 0.02,\n wanderScale: 0.04,\n wanderVariance: 2,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.5, 0.5, 1),\n minScale: 0.001,\n maxScale: 0.005,\n anisoScale: new THREE.Vector3(1, 1, 1),\n};\n\nexport const DEFAULT_RAIN = {\n box: new THREE.Box3(\n new THREE.Vector3(-2, -1, -2),\n new THREE.Vector3(2, 5, 2),\n ),\n density: 10,\n fallDirection: new THREE.Vector3(0, -1, 0),\n fallVelocity: 2,\n wanderScale: 0.1,\n wanderVariance: 1,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.25, 0.25, 0.5),\n minScale: 0.005,\n maxScale: 0.01,\n anisoScale: new THREE.Vector3(0.1, 1, 0.1),\n};\n\n// Calling snowBox creates a new snowBox instance and returns an object with\n// the snowBox itself as well `as` a collection of controls that can be used to\n// adjust the snowBox's properties over time:\n//\n// - snow: the SplatGenerator snowBox instance\n// - min: the vec3 uniform of the snowBox minimum position\n// - max: the vec3 uniform of the snowBox maximum position\n// - minY: the float uniform of the snowBox minimum y-coordinate\n// - color1: the vec3 uniform of the snowBox first color\n// - color2: the vec3 uniform of the snowBox second color\n// - opacity: the float uniform of the snowBox opacity\n// - fallVelocity: the float uniform of the snowBox fall velocity\n// - wanderVariance: the float uniform of the snowBox wander variance\n// - wanderScale: the float uniform of the snowBox wander scale\n// - fallDirection: the vec3 uniform of the snowBox fall direction\n// - minScale: the float uniform of the snowBox minimum scale\n// - maxScale: the float uniform of the snowBox maximum scale\n// - anisoScale: the vec3 uniform of the snowBox anisotropic scale\n\nexport function snowBox({\n // min and max box extents of the snowBox\n box,\n // minimum y-coordinate to clamp particle position, which can be used to\n // fake hitting a ground plane and lingering there for a bit\n minY,\n // number of Gsplats to generate (default: calculated from box and density)\n numSplats,\n // density of Gsplats per unit volume (default: 100)\n density,\n // The xyz anisotropic scale of the Gsplat, which can be used for example\n // to elongate rain particles (default: (1, 1, 1))\n anisoScale,\n // Minimum Gsplat particle scale (default: 0.001)\n minScale,\n // Maximum Gsplat particle scale (default: 0.005)\n maxScale,\n // The average direction of fall (default: (0, -1, 0))\n fallDirection,\n // The average speed of the fall (multiplied with fallDirection) (default: 0.02)\n fallVelocity,\n // The world scale of wandering overlay motion (default: 0.01)\n wanderScale,\n // Controls how uniformly the particles wander in sync, more variance mean\n // more randomness in the motion (default: 2)\n wanderVariance,\n // Color 1 of the two colors interpolated between (default: (1, 1, 1))\n color1,\n // Color 2 of the two colors interpolated between (default: (0.5, 0.5, 1))\n color2,\n // The base opacity of the Gsplats (default: 1)\n opacity,\n // Optional callback function to call each frame.\n onFrame,\n}: {\n box?: THREE.Box3;\n minY?: number;\n numSplats?: number;\n density?: number;\n anisoScale?: THREE.Vector3;\n minScale?: number;\n maxScale?: number;\n fallDirection?: THREE.Vector3;\n fallVelocity?: number;\n wanderScale?: number;\n wanderVariance?: number;\n color1?: THREE.Color;\n color2?: THREE.Color;\n opacity?: number;\n onFrame?: ({\n object,\n time,\n deltaTime,\n }: { object: SplatGenerator; time: number; deltaTime: number }) => void;\n}) {\n box =\n box ??\n new THREE.Box3(new THREE.Vector3(-1, -1, -1), new THREE.Vector3(1, 1, 1));\n const volume =\n (box.max.x - box.min.x) * (box.max.y - box.min.y) * (box.max.z - box.min.z);\n density = density ?? 100;\n numSplats =\n numSplats ?? Math.max(1, Math.min(1000000, Math.round(volume * density)));\n\n const dynoMinScale = dynoFloat(minScale ?? 0.001);\n const dynoMaxScale = dynoFloat(maxScale ?? 0.005);\n const dynoAnisoScale = dynoVec3(\n (anisoScale?.clone() ?? new THREE.Vector3(1, 1, 1)).normalize(),\n );\n const dynoFallDirection = dynoVec3(\n (fallDirection ?? new THREE.Vector3(0, -1, 0)).normalize(),\n );\n const dynoFallVelocity = dynoFloat(fallVelocity ?? 0.02);\n const dynoWanderScale = dynoFloat(wanderScale ?? 0.01);\n const dynoWanderVariance = dynoFloat(wanderVariance ?? 2);\n const dynoColor1 = dynoVec3(color1 ?? new THREE.Color(1, 1, 1));\n const dynoColor2 = dynoVec3(color2 ?? new THREE.Color(0.5, 0.5, 1));\n const dynoOpacity = dynoFloat(opacity ?? 1);\n\n const dynoTime = dynoFloat(0);\n const globalOffset = dynoVec3(new THREE.Vector3(0, 0, 0));\n const dynoMin = dynoVec3(box.min);\n const dynoMax = dynoVec3(box.max);\n const dynoMinY = dynoFloat(minY ?? Number.NEGATIVE_INFINITY);\n const minMax = sub(dynoMax, dynoMin);\n const snow = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index not defined\");\n }\n const random = hashVec4(index);\n const randomW = split(random).outputs.w;\n let position = vec3(random);\n\n let size = fract(mul(randomW, dynoConst(\"float\", 100)));\n size = sin(mul(dynoLiteral(\"float\", \"PI\"), size));\n size = add(dynoMinScale, mul(size, sub(dynoMaxScale, dynoMinScale)));\n const scales = mul(size, dynoAnisoScale);\n\n const intensity = fract(mul(randomW, dynoConst(\"float\", 10)));\n const hue = fract(randomW);\n const color = mix(dynoColor1, dynoColor2, hue);\n const rgb = mul(color, intensity);\n\n const random2 = hashVec4(\n combine({\n vectorType: \"ivec2\",\n x: index,\n y: dynoConst(\"int\", 0x1ab5),\n }),\n );\n let perturb = vec3(random2);\n let timeOffset = mul(split(random2).outputs.w, dynoWanderVariance);\n timeOffset = add(dynoTime, timeOffset);\n\n position = add(position, globalOffset);\n const modulo = mod(\n position,\n dynoConst(\"vec3\", new THREE.Vector3(1, 1, 1)),\n );\n position = add(dynoMin, mul(minMax, modulo));\n\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n\n perturb = sin(add(vec3(timeOffset), perturb));\n perturb = mul(perturb, dynoWanderScale);\n let center = add(position, perturb);\n\n let centerY = split(center).outputs.y;\n centerY = max(dynoMinY, centerY);\n center = combine({ vector: center, y: centerY });\n\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgb,\n opacity: dynoOpacity,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ object, time, deltaTime }) => {\n dynoTime.value = time;\n const _updated = transformer.update(snow);\n\n const fallDelta = dynoFallDirection.value\n .clone()\n .multiplyScalar(dynoFallVelocity.value * deltaTime);\n globalOffset.value.add(fallDelta);\n\n // Enable/disable splats based on opacity\n object.visible = dynoOpacity.value > 0;\n\n onFrame?.({ object, time, deltaTime });\n snow.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return {\n snow,\n min: dynoMin,\n max: dynoMax,\n minY: dynoMinY,\n color1: dynoColor1,\n color2: dynoColor2,\n opacity: dynoOpacity,\n fallVelocity: dynoFallVelocity,\n wanderVariance: dynoWanderVariance,\n wanderScale: dynoWanderScale,\n fallDirection: dynoFallDirection,\n minScale: dynoMinScale,\n maxScale: dynoMaxScale,\n anisoScale: dynoAnisoScale,\n };\n}\n\nexport type SNOW_RESULT_TYPE = ReturnType;\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n Gsplat,\n add,\n combineGsplat,\n dot,\n dynoBlock,\n dynoConst,\n greaterThanEqual,\n gsplatNormal,\n mul,\n neg,\n select,\n splitGsplat,\n} from \"../dyno\";\n\nexport function makeNormalColorModifier(splatToView: SplatTransformer) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let normal = gsplatNormal(gsplat);\n\n const viewGsplat = splatToView.applyGsplat(gsplat);\n const viewCenter = splitGsplat(viewGsplat).outputs.center;\n const viewNormal = gsplatNormal(viewGsplat);\n const splatDot = dot(viewCenter, viewNormal);\n\n const sameDir = greaterThanEqual(splatDot, dynoConst(\"float\", 0));\n normal = select(sameDir, neg(normal), normal);\n const rgb = add(\n mul(normal, dynoConst(\"float\", 0.5)),\n dynoConst(\"float\", 0.5),\n );\n\n gsplat = combineGsplat({ gsplat, rgb });\n return { gsplat };\n });\n}\n\nexport function setWorldNormalColor(splats: SplatMesh) {\n splats.enableWorldToView = true;\n splats.worldModifier = makeNormalColorModifier(splats.context.worldToView);\n splats.updateGenerator();\n}\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n type DynoVal,\n Gsplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n neg,\n normalizedDepth,\n select,\n split,\n splitGsplat,\n sub,\n} from \"../dyno\";\n\nexport function makeDepthColorModifier(\n splatToView: SplatTransformer,\n minDepth: DynoVal<\"float\">,\n maxDepth: DynoVal<\"float\">,\n reverse: DynoVal<\"bool\">,\n) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let { center } = splitGsplat(gsplat).outputs;\n center = splatToView.apply(center);\n const { z } = split(center).outputs;\n let depth = normalizedDepth(neg(z), minDepth, maxDepth);\n depth = select(reverse, sub(dynoConst(\"float\", 1), depth), depth);\n\n gsplat = combineGsplat({ gsplat, r: depth, g: depth, b: depth });\n return { gsplat };\n });\n}\n\nexport function setDepthColor(\n splats: SplatMesh,\n minDepth: number,\n maxDepth: number,\n reverse?: boolean,\n) {\n splats.enableWorldToView = true;\n const dynoMinDepth = dynoConst(\"float\", minDepth);\n const dynoMaxDepth = dynoConst(\"float\", maxDepth);\n const dynoReverse = dynoConst(\"bool\", reverse ?? false);\n splats.worldModifier = makeDepthColorModifier(\n splats.context.worldToView,\n dynoMinDepth,\n dynoMaxDepth,\n dynoReverse,\n );\n splats.updateGenerator();\n return {\n minDepth: dynoMinDepth,\n maxDepth: dynoMaxDepth,\n reverse: dynoReverse,\n };\n}\n","import * as THREE from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport interface SparkXrOptions {\n renderer: THREE.WebGLRenderer;\n // Element to attach enter/exit click handler to\n element?: HTMLElement;\n // ID of element to attach enter/exit click handler to\n elementId?: string;\n // Create a button to enter/exit XR\n // Optionally provide button text or HTML\n // Default is true - create a button\n button?: boolean | SparkXrButton;\n // Blur out element when mouse leaves it\n // Default is 0.5 - 50% opacity\n onMouseLeaveOpacity?: number;\n // Default is \"vrar\" - Try VR then AR\n mode?: \"vr\" | \"ar\" | \"arvr\" | \"vrar\";\n // fixedFoveation: XrManager.setFoveation(...)\n fixedFoveation?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRWebGLLayer/XRWebGLLayer#framebufferscalefactor\n // Default is 0.5 - 50% resolution for better frame rate\n frameBufferScaleFactor?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpace#reference_space_types\n // Defaults is \"local\" - origin is the user's position when starting XR session\n referenceSpaceType?: \"local\" | \"local-floor\" | \"unbounded\" | \"viewer\";\n // Enable hand tracking\n // Default is false\n enableHands?: boolean;\n // Allow WebXR entry on mobile phones that expose navigator.xr\n // Defaults to false - blocks phones to avoid unusable split-screen modes\n allowMobileXr?: boolean;\n // Session init options\n // Default is empty - no additional options\n sessionInit?: XRSessionInit;\n // Callback function called when SparkXr is ready\n // Default is undefined - no callback\n onReady?: (supported: boolean) => void | Promise;\n // Callback function called when entering XR\n // Default is undefined - no callback\n onEnterXr?: () => void | Promise;\n // Callback function called when exiting XR\n // Default is undefined - no callback\n onExitXr?: () => void | Promise;\n // ztroller movement and rotation options\n controllers?: SparkXrControllers;\n}\n\nexport interface SparkXrButton {\n enterXrHtml?: string;\n exitXrHtml?: string;\n enterVrHtml?: string;\n exitVrHtml?: string;\n enterArHtml?: string;\n exitArHtml?: string;\n enterXrText?: string;\n exitXrText?: string;\n enterVrText?: string;\n exitVrText?: string;\n enterArText?: string;\n exitArText?: string;\n style?: CSSStyleDeclaration;\n enterStyle?: CSSStyleDeclaration;\n exitStyle?: CSSStyleDeclaration;\n zIndex?: number;\n}\n\nexport type XrGamepads = {\n left?: Gamepad;\n right?: Gamepad;\n leftIsHand?: boolean;\n rightIsHand?: boolean;\n};\n\nexport interface SparkXrControllers {\n moveSpeed?: number;\n rotateSpeed?: number;\n rollSpeed?: number;\n fastMultiplier?: number;\n slowMultiplier?: number;\n moveHeading?: boolean;\n moveDirection?: boolean;\n getMove?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getRotate?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getFast?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n getSlow?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n}\n\nexport const DEFAULT_CONTROLLER_MOVE_SPEED = 1.0;\nexport const DEFAULT_CONTROLLER_ROTATE_SPEED = 4.0;\nexport const DEFAULT_CONTROLLER_ROLL_SPEED = 2.0;\nexport const DEFAULT_CONTROLLER_FAST_MULTIPLIER = 5;\nexport const DEFAULT_CONTROLLER_SLOW_MULTIPLIER = 1 / 5;\nexport const DEFAULT_CONTROLLER_MOVE_HEADING = false;\n\nexport const DEFAULT_CONTROLLER_GETMOVE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.leftIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(\n gamepads.left?.axes[2] ?? 0,\n (gamepads.left?.buttons[0].value ?? 0) -\n (gamepads.left?.buttons[1].value ?? 0),\n gamepads.left?.axes[3] ?? 0,\n );\nexport const DEFAULT_CONTROLLER_GETROTATE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(gamepads.right?.axes[2] ?? 0, 0, 0);\nexport const DEFAULT_CONTROLLER_GETFAST = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[0]?.pressed ?? false);\nexport const DEFAULT_CONTROLLER_GETSLOW = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[1]?.pressed ?? false);\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.015,\n t1: 0.012,\n t2: 0.0105,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nconst XR_HEADSET_HINTS =\n /Quest|OculusBrowser|VisionOS|XRBrowser|Pico|Lynx|MagicLeap/i;\n\nfunction isLikelyMobilePhone() {\n const ua = navigator.userAgent ?? \"\";\n if (XR_HEADSET_HINTS.test(ua)) {\n return false;\n }\n\n const androidMobile = /Android/i.test(ua) || /Mobile/i.test(ua);\n if (androidMobile) {\n return true;\n }\n\n const uaData = (\n navigator as Navigator & {\n userAgentData?: { mobile?: boolean };\n }\n ).userAgentData;\n if (uaData && typeof uaData.mobile === \"boolean\") {\n return uaData.mobile;\n }\n\n return false;\n}\n\nexport type Joint = {\n position: THREE.Vector3;\n quaternion: THREE.Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\n\nexport class SparkXr {\n renderer: THREE.WebGLRenderer;\n xr?: XRSystem;\n element?: HTMLElement;\n button?: SparkXrButton;\n mode: XRSessionMode | \"initializing\" | \"not_supported\";\n sessionInit?: XRSessionInit;\n session?: XRSession;\n onEnterXr?: () => void;\n onExitXr?: () => void;\n\n controllers?: SparkXrControllers;\n lastControllersUpdate = 0;\n\n enableHands: boolean;\n hands: XrHand[] = [];\n\n constructor(options: SparkXrOptions) {\n this.renderer = options.renderer;\n this.xr = navigator.xr;\n this.mode = \"initializing\";\n this.onEnterXr = options.onEnterXr;\n this.onExitXr = options.onExitXr;\n this.enableHands = options.enableHands ?? false;\n this.controllers = options.controllers;\n\n Promise.resolve()\n .then(() => {\n if (!this.xr) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (!options.allowMobileXr && isLikelyMobilePhone()) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (this.enableHands) {\n this.hands = [new XrHand(Hand.left), new XrHand(Hand.right)];\n }\n\n let element: HTMLElement | undefined = undefined;\n let button: SparkXrButton | undefined = undefined;\n if (options.element) {\n element = options.element;\n } else if (options.elementId) {\n element = document.getElementById(options.elementId) ?? undefined;\n } else {\n element = SparkXr.createButton();\n button =\n options.button == null || typeof options.button === \"boolean\"\n ? {}\n : options.button;\n }\n\n if (!element) {\n throw new Error(\"No element or button provided\");\n }\n\n element.style.display = \"none\";\n element.classList.add(\"hidden\");\n this.button = button;\n this.element = element;\n\n const opacity = options.onMouseLeaveOpacity?.toString();\n if (opacity !== undefined) {\n element.addEventListener(\"mouseleave\", () => {\n element.style.opacity = opacity;\n });\n element.addEventListener(\"mouseenter\", () => {\n element.style.opacity = \"\";\n });\n }\n\n return this.initializeXr(options);\n })\n .then(() => {\n return options.onReady?.(this.mode !== \"not_supported\");\n })\n .catch((error) => {\n alert(`Error initializing SparkXr: ${error}`);\n });\n }\n\n private async initializeXr(options: SparkXrOptions) {\n if (!this.xr || !this.element) {\n return;\n }\n const element = this.element;\n\n const modes = {\n vr: [\"immersive-vr\"],\n ar: [\"immersive-ar\"],\n arvr: [\"immersive-ar\", \"immersive-vr\"],\n vrar: [\"immersive-vr\", \"immersive-ar\"],\n }[options.mode ?? \"vrar\"] as XRSessionMode[] | undefined;\n if (!modes) {\n throw new Error(`Invalid mode: ${options.mode}`);\n }\n\n let supported = null;\n for (const mode of modes) {\n if (await this.xr.isSessionSupported(mode)) {\n supported = mode;\n break;\n }\n }\n\n if (!supported) {\n this.mode = \"not_supported\";\n return;\n }\n this.mode = supported;\n\n const referenceSpaceType = options.referenceSpaceType ?? \"local\";\n\n this.renderer.xr.enabled = true;\n this.renderer.xr.setReferenceSpaceType(referenceSpaceType);\n\n if (options.fixedFoveation !== undefined) {\n this.renderer.xr.setFoveation(options.fixedFoveation);\n }\n const frameBufferScaleFactor = options.frameBufferScaleFactor ?? 0.5;\n this.renderer.xr.setFramebufferScaleFactor(frameBufferScaleFactor);\n\n const optionalFeatures = options.sessionInit?.optionalFeatures ?? [];\n if (options.enableHands) {\n optionalFeatures.push(\"hand-tracking\");\n }\n\n const requiredFeatures = options.sessionInit?.requiredFeatures ?? [];\n requiredFeatures.push(referenceSpaceType);\n\n this.sessionInit = {\n ...options.sessionInit,\n optionalFeatures,\n requiredFeatures,\n };\n // console.log(\"* this.sessionInit\", this.sessionInit);\n\n element.addEventListener(\"click\", () => {\n this.toggleXr();\n });\n\n this.updateElement();\n }\n\n async toggleXr() {\n if (!this.xr || !this.sessionInit) {\n // console.log(\"* !this.xr || !this.sessionInit\");\n return;\n }\n\n if (!this.session) {\n try {\n const mode = this.mode as XRSessionMode;\n const session = await this.xr.requestSession(mode, this.sessionInit);\n this.session = session;\n // console.log(\"* this.session\", this.session);\n\n const onSessionEnded = () => {\n session?.removeEventListener(\"end\", onSessionEnded);\n session?.removeEventListener(\"visibilitychange\", visibilityChanged);\n this.session = undefined;\n\n this.updateElement();\n this.onExitXr?.();\n };\n\n let lastVisibilityState = session.visibilityState;\n const visibilityChanged = () => {\n if (\n session?.visibilityState === \"visible-blurred\" &&\n lastVisibilityState === \"visible\"\n ) {\n session?.end();\n }\n lastVisibilityState = session?.visibilityState;\n };\n\n this.session?.addEventListener(\"end\", onSessionEnded);\n this.session?.addEventListener(\"visibilitychange\", visibilityChanged);\n\n await this.renderer.xr.setSession(this.session);\n // console.log(\"* setSession\");\n\n return this.onEnterXr?.();\n } catch (error) {\n console.error(\"Error requesting XR session\", error);\n return;\n }\n } else {\n this.session.end();\n // console.log(\"* end session\");\n }\n }\n\n private updateElement() {\n const mode = this.mode as XRSessionMode;\n const element = this.element;\n if (element) {\n element.style.display = \"\";\n element.classList.remove(\"hidden\");\n\n const button = typeof this.button === \"boolean\" ? {} : this.button;\n if (button) {\n if (!this.session) {\n const enterHtml =\n (mode === \"immersive-vr\"\n ? button.enterVrHtml\n : button.enterArHtml) ?? button.enterXrHtml;\n const enterText =\n (mode === \"immersive-vr\"\n ? button.enterVrText\n : button.enterArText) ?? button.enterXrText;\n if (enterHtml) {\n element.innerHTML = enterHtml;\n } else if (enterText) {\n element.textContent = enterText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"ENTER VR\" : \"ENTER AR\";\n }\n } else {\n const exitHtml =\n (mode === \"immersive-vr\" ? button.exitVrHtml : button.exitArHtml) ??\n button.exitXrHtml;\n const exitText =\n (mode === \"immersive-vr\" ? button.exitVrText : button.exitArText) ??\n button.exitXrText;\n if (exitHtml) {\n element.innerHTML = exitHtml;\n } else if (exitText) {\n element.textContent = exitText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"EXIT VR\" : \"EXIT AR\";\n }\n }\n\n element.style.display = \"\";\n }\n }\n }\n\n private static createButton() {\n const button = document.createElement(\"button\");\n Object.assign(button.style, {\n position: \"absolute\",\n bottom: \"20px\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n padding: \"40px 40px\",\n border: \"2px solid #fff\",\n borderRadius: \"16px\",\n background: \"rgba(0,0,0,0.1)\",\n color: \"#fff\",\n font: \"bold 28px sans-serif\",\n textAlign: \"center\",\n userSelect: \"none\",\n zIndex: \"999\",\n });\n document.body.appendChild(button);\n return button;\n }\n\n xrSupported() {\n return !!this.xr;\n }\n\n static JointEnum = JointEnum;\n static JOINT_IDS = JOINT_IDS;\n static NUM_JOINTS = NUM_JOINTS;\n static JOINT_INDEX = JOINT_INDEX;\n static JOINT_RADIUS = JOINT_RADIUS;\n static JOINT_SEGMENTS = JOINT_SEGMENTS;\n static JOINT_SEGMENT_STEPS = JOINT_SEGMENT_STEPS;\n static JOINT_TIPS = JOINT_TIPS;\n static FINGER_TIPS = FINGER_TIPS;\n static Hand = Hand;\n static HANDS = HANDS;\n\n left() {\n return this.hands[0];\n }\n\n right() {\n return this.hands[1];\n }\n\n updateControllers(camera: THREE.Camera) {\n const cameraFrame = camera.parent as THREE.Group;\n\n const now = performance.now();\n const deltaTime = (now - (this.lastControllersUpdate || now)) / 1000;\n this.lastControllersUpdate = now;\n\n const xrGamepads: XrGamepads = {};\n for (const source of this.renderer.xr.getSession()?.inputSources ?? []) {\n const gamepad = source.gamepad;\n if (\n gamepad &&\n (source.handedness === \"left\" || source.handedness === \"right\")\n ) {\n xrGamepads[source.handedness] = gamepad;\n if (source.handedness === \"left\") {\n xrGamepads.leftIsHand = !!source.hand;\n } else if (source.handedness === \"right\") {\n xrGamepads.rightIsHand = !!source.hand;\n }\n }\n }\n\n const rotate = (\n this.controllers?.getRotate ?? DEFAULT_CONTROLLER_GETROTATE\n )(xrGamepads, this);\n rotate.multiply(\n new THREE.Vector3(\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rollSpeed ?? DEFAULT_CONTROLLER_ROLL_SPEED,\n ),\n );\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler(-rotate.y, -rotate.x, rotate.z, \"YXZ\");\n const quat = new THREE.Quaternion().setFromEuler(eulers);\n\n const pivot = camera.getWorldPosition(new THREE.Vector3());\n cameraFrame.parent?.worldToLocal(pivot);\n\n cameraFrame.position.sub(pivot);\n cameraFrame.position.applyQuaternion(quat);\n cameraFrame.position.add(pivot);\n cameraFrame.quaternion.premultiply(quat);\n }\n\n const move = (this.controllers?.getMove ?? DEFAULT_CONTROLLER_GETMOVE)(\n xrGamepads,\n this,\n );\n\n let moveSpeed =\n this.controllers?.moveSpeed ?? DEFAULT_CONTROLLER_MOVE_SPEED;\n if (\n (this.controllers?.getFast ?? DEFAULT_CONTROLLER_GETFAST)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_FAST_MULTIPLIER;\n }\n if (\n (this.controllers?.getSlow ?? DEFAULT_CONTROLLER_GETSLOW)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_SLOW_MULTIPLIER;\n }\n\n if (this.controllers?.moveHeading) {\n move.applyQuaternion(camera.quaternion);\n } else if (this.controllers?.moveDirection) {\n SCRATCH_EULER.setFromQuaternion(camera.quaternion, \"YXZ\");\n SCRATCH_EULER.x = 0;\n SCRATCH_EULER.z = 0;\n SCRATCH_QUAT_A.setFromEuler(SCRATCH_EULER);\n move.applyQuaternion(SCRATCH_QUAT_A);\n }\n move.applyQuaternion(cameraFrame.quaternion);\n\n move.multiplyScalar(deltaTime * moveSpeed);\n cameraFrame.position.add(move);\n }\n\n updateHands({ xrFrame }: { xrFrame: XRFrame }) {\n const xrSession = this.renderer.xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = this.renderer.xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n for (const hand of this.hands) {\n if (hand) {\n hand.lastJoints = hand.joints;\n hand.joints = undefined;\n }\n }\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n const hand = inputSource.handedness as Hand;\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n if (!xrHand) {\n continue;\n }\n\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n\n if (!xrHand.joints) {\n xrHand.joints = {};\n }\n xrHand.joints[jointId] = {\n position: new THREE.Vector3(position.x, position.y, position.z),\n quaternion: new THREE.Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: JOINT_RADIUS[jointId],\n };\n }\n }\n }\n }\n }\n\n makeJointSplats(hand: Hand): JointSplats {\n const mesh = new JointSplats(hand);\n mesh.onFrame = () => {\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n const joints = xrHand?.joints;\n mesh.updateJoints(joints);\n };\n return mesh;\n }\n\n snapshotHands(time: number) {\n const hands = [\n this.hands[0]?.snapshotJoints(),\n this.hands[1]?.snapshotJoints(),\n ];\n return { time, hands };\n }\n}\n\ntype JointSnapshot = { pos: number[]; quat: number[]; radius: number };\ntype HandSnapshot = { [key in JointId]?: JointSnapshot };\ntype HandsSnapshot = {\n time: number;\n hands: (HandSnapshot | undefined)[];\n};\n\nconst round4 = (value: number) => Math.round(value * 10000) / 10000;\nconst SCRATCH_EULER = new THREE.Euler(0, 0, 0, \"YXZ\");\nconst SCRATCH_QUAT_A = new THREE.Quaternion();\nconst SCRATCH_QUAT_B = new THREE.Quaternion();\n\nexport function lerpHandsSnapshots(\n snapshots: HandsSnapshot[],\n time: number,\n): HandsSnapshot | null {\n if (!snapshots.length) {\n return null;\n }\n\n const first = snapshots[0];\n const last = snapshots[snapshots.length - 1];\n\n if (time < first.time || time > last.time) {\n return null;\n }\n\n const floorIndex = findSnapshotFloorIndex(snapshots, time);\n if (floorIndex === -1) {\n return null;\n }\n\n const from = snapshots[floorIndex];\n const to = snapshots[floorIndex + 1];\n if (!to) {\n return cloneSnapshot(from, time);\n }\n\n const span = to.time - from.time;\n const factor = span > 0 ? (time - from.time) / span : 0;\n\n return interpolateSnapshots(from, to, factor, time);\n}\n\nfunction interpolateSnapshots(\n from: HandsSnapshot,\n to: HandsSnapshot,\n factor: number,\n time: number,\n): HandsSnapshot {\n const maxHands = Math.max(from.hands.length, to.hands.length);\n const hands = Array.from({ length: maxHands }, (_, handIndex) =>\n lerpHandSnapshot(from.hands[handIndex], to.hands[handIndex], factor),\n );\n return { time, hands };\n}\n\nfunction cloneSnapshot(snapshot: HandsSnapshot, time: number): HandsSnapshot {\n return {\n time,\n hands: snapshot.hands.map((hand) => cloneHandSnapshot(hand)),\n };\n}\n\nexport class XrHand {\n hand: Hand;\n joints?: HandJoints;\n lastJoints?: HandJoints;\n\n constructor(hand: Hand) {\n this.hand = hand;\n }\n\n static newFromSnapshot(hand: Hand, snapshot: HandSnapshot) {\n const h = new XrHand(hand);\n h.joints = {};\n for (const jointId of JOINT_IDS) {\n const joint = snapshot[jointId];\n if (!joint) {\n continue;\n }\n h.joints[jointId] = {\n position: new THREE.Vector3(joint.pos[0], joint.pos[1], joint.pos[2]),\n quaternion: new THREE.Quaternion(\n joint.quat[0],\n joint.quat[1],\n joint.quat[2],\n joint.quat[3],\n ),\n radius: joint.radius,\n };\n }\n return h;\n }\n\n valid() {\n return !!this.joints;\n }\n\n snapshotJoints() {\n if (!this.joints) {\n return undefined;\n }\n\n const snapshot: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (!joint) {\n continue;\n }\n snapshot[jointId] = {\n pos: joint.position.toArray().map(round4),\n quat: joint.quaternion.toArray().map(round4),\n radius: round4(joint.radius),\n };\n }\n return snapshot;\n }\n\n toFlatArray() {\n if (!this.joints) {\n return undefined;\n }\n const array = new Float32Array(1 + 25 * 7);\n array[0] = this.hand === Hand.left ? 0 : 1;\n let index = 1;\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (joint) {\n array[index] = joint.position.x;\n array[index + 1] = joint.position.y;\n array[index + 2] = joint.position.z;\n array[index + 3] = joint.quaternion.x;\n array[index + 4] = joint.quaternion.y;\n array[index + 5] = joint.quaternion.z;\n array[index + 6] = joint.quaternion.w;\n }\n index += 7;\n }\n return array;\n }\n}\n\nfunction findSnapshotFloorIndex(snapshots: HandsSnapshot[], time: number) {\n let low = 0;\n let high = snapshots.length - 1;\n while (low <= high) {\n const mid = (low + high) >> 1;\n if (snapshots[mid].time <= time) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n return high;\n}\n\nfunction lerpHandSnapshot(\n fromHand?: HandSnapshot,\n toHand?: HandSnapshot,\n factor = 0,\n) {\n if (!fromHand || !toHand) {\n return undefined;\n }\n const hand: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = lerpJointSnapshot(fromHand[jointId], toHand[jointId], factor);\n if (joint) {\n hand[jointId] = joint;\n }\n }\n return hand;\n}\n\nfunction lerpJointSnapshot(\n fromJoint?: JointSnapshot,\n toJoint?: JointSnapshot,\n factor = 0,\n) {\n if (!fromJoint || !toJoint) {\n return undefined;\n }\n const pos = fromJoint.pos.map(\n (value, index) => value + (toJoint.pos[index] - value) * factor,\n );\n const quat = SCRATCH_QUAT_A.fromArray(fromJoint.quat)\n .slerp(SCRATCH_QUAT_B.fromArray(toJoint.quat), factor)\n .toArray();\n const radius =\n fromJoint.radius + (toJoint.radius - fromJoint.radius) * factor;\n\n return { pos, quat, radius };\n}\n\nfunction cloneHandSnapshot(hand?: HandSnapshot) {\n if (!hand) {\n return undefined;\n }\n const clone: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = hand[jointId];\n if (joint) {\n clone[jointId] = cloneJointSnapshot(joint);\n }\n }\n return clone;\n}\n\nfunction cloneJointSnapshot(joint: JointSnapshot): JointSnapshot {\n return {\n pos: [...joint.pos],\n quat: [...joint.quat],\n radius: joint.radius,\n };\n}\n\nexport class JointSplats extends SplatMesh {\n hand: Hand;\n\n constructor(hand: Hand) {\n super({});\n this.hand = hand;\n }\n\n private scratchCenter = new THREE.Vector3();\n private scratchQuat = new THREE.Quaternion(0, 0, 0, 1);\n private scratchScales = new THREE.Vector3().setScalar(0.01);\n private scratchColor = new THREE.Color(1, 1, 1);\n\n updateJoints(joints?: HandJoints) {\n this.visible = false;\n\n if (!joints || !this.packedSplats) {\n return;\n }\n\n this.visible = true;\n let splatIndex = 0;\n\n for (const jointId of JOINT_IDS) {\n const joint = joints[jointId];\n if (!joint) {\n continue;\n }\n this.scratchCenter.copy(joint.position);\n this.scratchQuat.copy(joint.quaternion);\n this.scratchScales.set(\n joint.radius,\n 0.75 * joint.radius,\n 1.5 * joint.radius,\n );\n // this.scratchColor.set((joint.radius * 123) % 1, (joint.radius * 345) % 1, (joint.radius * 234) % 1);\n const opacity = 0.75;\n\n this.packedSplats.setSplat(\n splatIndex,\n this.scratchCenter,\n this.scratchScales,\n this.scratchQuat,\n opacity,\n this.scratchColor,\n );\n splatIndex += 1;\n }\n\n this.packedSplats.numSplats = splatIndex;\n this.packedSplats.needsUpdate = true;\n this.numSplats = splatIndex;\n this.updateVersion();\n }\n}\n","import {\n Color,\n Matrix4,\n type Object3D,\n Quaternion,\n Vector3,\n type WebXRManager,\n} from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\n// Experimental WebXR hand tracking and movement\n\nconst DEFAULT_MOVE_INERTIA = 0.5;\nconst DEFAULT_ROTATE_INERTIA = 0.5;\nconst TOUCH_BIAS = 0.0;\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.02,\n t1: 0.014,\n t2: 0.0115,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nexport type Joint = {\n position: Vector3;\n quaternion: Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\nexport type HandsJoints = { [key in Hand]?: HandJoints };\n\nexport class XrHands {\n hands: HandsJoints = {};\n last: HandsJoints = {};\n\n values: Record = {};\n tests: Record = {};\n lastTests: Record = {};\n\n updated = false;\n\n update({ xr, xrFrame }: { xr: WebXRManager; xrFrame: XRFrame }) {\n const xrSession = xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n this.last = this.hands;\n this.lastTests = this.tests;\n\n this.hands = {};\n this.values = {};\n this.tests = {};\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n\n const hand = inputSource.handedness as Hand;\n this.hands[hand] = {};\n\n // Iterate over JointId\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n this.hands[hand][jointId] = {\n position: new Vector3(position.x, position.y, position.z),\n quaternion: new Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: jointPose.radius || 0.001,\n };\n }\n }\n }\n }\n\n for (const hand of HANDS) {\n for (const { key, value } of [\n { key: `${hand}AllTips`, value: this.allTipsTouching(hand) },\n {\n key: `${hand}IndexThumb`,\n value: this.touching(hand, \"i4\", hand, \"t3\"),\n },\n {\n key: `${hand}MiddleThumb`,\n value: this.touching(hand, \"m4\", hand, \"t3\"),\n },\n {\n key: `${hand}RingThumb`,\n value: this.touching(hand, \"r4\", hand, \"t3\"),\n },\n {\n key: `${hand}PinkyThumb`,\n value: this.touching(hand, \"p4\", hand, \"t3\"),\n },\n { key: `${hand}TriTips`, value: this.triTipsTouching(hand) },\n ]) {\n this.values[key] = value;\n this.tests[key] =\n value === 1.0\n ? true\n : value === 0.0\n ? false\n : (this.lastTests[key] ?? false);\n }\n }\n }\n\n makeGhostMesh(): SplatMesh {\n const center = new Vector3();\n const scales = new Vector3(0.01, 0.01, 0.01);\n const quaternion = new Quaternion(0, 0, 0, 1);\n const color = new Color(1, 1, 1);\n const CYCLE = Math.PI * 3;\n const WHITE = new Color(1, 1, 1);\n let opacity = 1.0;\n\n const mesh = new SplatMesh({\n onFrame: () => {\n if (!mesh.packedSplats) {\n return;\n }\n let splatIndex = 0;\n for (const handedness of HANDS) {\n const xrHand = this.hands[handedness];\n for (const [index, segment] of JOINT_SEGMENTS.entries()) {\n for (let i = 1; i < segment.length; ++i) {\n const segmentSplats = JOINT_SEGMENT_STEPS[index][i - 1] * 2;\n const lastSegment = i + 1 === segment.length;\n const jointA = xrHand?.[segment[i - 1]];\n const jointB = xrHand?.[segment[i]];\n\n for (let j = 0; j < segmentSplats; ++j) {\n const t = (j + 0.5) / segmentSplats;\n opacity = 0.0;\n if (jointA && jointB) {\n center.copy(jointA.position).lerp(jointB.position, t);\n quaternion\n .copy(jointA.quaternion)\n .slerp(jointB.quaternion, t);\n const radiusA = JOINT_RADIUS[segment[i - 1]];\n const radiusB = JOINT_RADIUS[segment[i]];\n let radius = (1 - t) * radiusA + t * radiusB;\n if (lastSegment && t > 0.8) {\n // Round out finger tips\n radius *= Math.sqrt(1 - ((t - 0.8) / 0.2) ** 2);\n }\n scales.set(0.65 * radius, 0.5 * radius, 0.003);\n color.set(\n 0.55 + 0.45 * Math.sin(center.x * CYCLE),\n 0.55 + 0.45 * Math.sin(center.y * CYCLE),\n 0.55 + 0.45 * Math.sin(center.z * CYCLE),\n );\n if (handedness === \"right\") {\n color.set(1 - color.r, 1 - color.g, 1 - color.b);\n }\n opacity = 0.75;\n }\n mesh.packedSplats.setSplat(\n splatIndex,\n center,\n scales,\n quaternion,\n opacity,\n color,\n );\n splatIndex += 1;\n }\n }\n }\n }\n mesh.packedSplats.numSplats = splatIndex;\n mesh.packedSplats.needsUpdate = true;\n mesh.numSplats = splatIndex;\n mesh.updateVersion();\n },\n });\n return mesh;\n }\n\n distance(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const hA = last ? this.last[handA] : this.hands[handA];\n const hB = last ? this.last[handB] : this.hands[handB];\n const jA = hA?.[jointA];\n const jB = hB?.[jointB];\n if (!jA || !jB) {\n return Number.POSITIVE_INFINITY;\n }\n return jA.position.distanceTo(jB.position);\n }\n\n separation(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.distance(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return d - JOINT_RADIUS[jointA] - JOINT_RADIUS[jointB];\n }\n\n touching(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.separation(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return 1 - Math.max(0, Math.min(1, d / 0.01 - TOUCH_BIAS));\n }\n\n allTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"r4\", last),\n this.touching(hand, \"r4\", hand, \"p4\", last),\n // this.touching(hand, \"p4\", hand, \"t3\", last),\n );\n }\n\n triTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"t3\", last),\n );\n }\n}\n\nexport class HandMovement {\n xrHands: XrHands;\n control: Object3D;\n moveInertia: number;\n rotateInertia: number;\n\n lastGrip: { [key in Hand]?: Vector3 } = {};\n lastPivot: Vector3 = new Vector3();\n rotateVelocity = 0;\n velocity: Vector3 = new Vector3();\n\n constructor({\n xrHands,\n control,\n moveInertia,\n rotateInertia,\n }: {\n xrHands: XrHands;\n control: Object3D;\n moveInertia?: number;\n rotateInertia?: number;\n }) {\n this.xrHands = xrHands;\n this.control = control;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n }\n\n update(deltaTime: number) {\n const grip: { [key in Hand]?: Vector3 } = {};\n for (const handedness of HANDS) {\n const hand = this.xrHands.hands[handedness];\n if (hand && this.xrHands.tests[`${handedness}MiddleThumb`]) {\n grip[handedness] = new Vector3()\n .add(hand.t3?.position ?? new Vector3())\n .add(hand.i4?.position ?? new Vector3())\n .add(hand.m4?.position ?? new Vector3())\n .add(hand.r4?.position ?? new Vector3())\n .add(hand.p4?.position ?? new Vector3())\n .multiplyScalar(1 / 5);\n }\n }\n\n if (grip.left && grip.right && this.lastGrip.left && this.lastGrip.right) {\n const mid = grip.left.clone().add(grip.right).multiplyScalar(0.5);\n const lastMid = this.lastGrip.left\n .clone()\n .add(this.lastGrip.right)\n .multiplyScalar(0.5);\n this.lastPivot = mid;\n\n const delta = mid.clone().applyMatrix4(this.control.matrix);\n delta.sub(lastMid.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n\n const angle = Math.atan2(grip.left.z - mid.z, grip.left.x - mid.x);\n const lastAngle = Math.atan2(\n this.lastGrip.left.z - lastMid.z,\n this.lastGrip.left.x - lastMid.x,\n );\n // Find closest rotation over circle between angle and lastAngle\n let closestAngle = angle - lastAngle;\n if (closestAngle > Math.PI) {\n closestAngle -= Math.PI * 2;\n } else if (closestAngle < -Math.PI) {\n closestAngle += Math.PI * 2;\n }\n const rotateVelocity = closestAngle / deltaTime;\n\n const blend = Math.exp(-20 * deltaTime);\n this.rotateVelocity =\n this.rotateVelocity * blend + rotateVelocity * (1 - blend);\n } else {\n this.rotateVelocity *= Math.exp(-deltaTime / this.rotateInertia);\n\n if (grip.left && this.lastGrip.left) {\n const delta = grip.left.clone().applyMatrix4(this.control.matrix);\n delta.sub(this.lastGrip.left.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else if (grip.right && this.lastGrip.right) {\n const delta = grip.right.clone().applyMatrix4(this.control.matrix);\n delta.sub(\n this.lastGrip.right.clone().applyMatrix4(this.control.matrix),\n );\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else {\n this.velocity.multiplyScalar(Math.exp(-deltaTime / this.moveInertia));\n }\n }\n\n const negPivot = this.lastPivot.clone().negate();\n const rotate = new Matrix4()\n .makeTranslation(negPivot)\n .premultiply(new Matrix4().makeRotationY(this.rotateVelocity * deltaTime))\n .premultiply(new Matrix4().makeTranslation(this.lastPivot));\n this.control.matrix.multiply(rotate);\n this.control.matrix.decompose(\n this.control.position,\n this.control.quaternion,\n this.control.scale,\n );\n this.control.updateMatrixWorld(true);\n\n this.control.position.sub(this.velocity.clone().multiplyScalar(deltaTime));\n this.lastGrip = grip;\n }\n}\n","import * as THREE from \"three\";\nimport { isAndroid, isIos } from \"./utils\";\n\n// Spark controls for keyboard + mouse, game pad, or mobile multi-touch\n\nconst DEFAULT_MOVEMENT_SPEED = 1.0;\nconst DEFAULT_ROLL_SPEED = 2.0;\nconst DEFAULT_ROTATE_SPEED = 0.002;\nconst DEFAULT_SLIDE_SPEED = 0.006;\nconst DEFAULT_SCROLL_SPEED = 0.0015;\nconst DEFAULT_ROLL_SPRING = 0.0;\nconst DEFAULT_ROTATE_INERTIA = 0.15;\nconst DEFAULT_MOVE_INERTIA = 0.15;\nconst DEFAULT_STICK_THRESHOLD = 0.1;\nconst DEFAULT_FPS_ROTATE_SPEED = 2.0;\n// const DEFAULT_POINTER_ROLL_SCALE = 1.0;\nconst DEFAULT_POINTER_ROLL_SCALE = 0.0;\nconst DEFAULT_PRESS_MOVE_DELAY_MS = 500;\nconst DEFAULT_PRESS_MOVE_ACCEL_MS = 500;\n\n// Time limit for double-finger press (pinch etc)\nconst DUAL_PRESS_MS = 200;\n// Time limit for double-click/double-tap\nconst DOUBLE_PRESS_LIMIT_MS = 400;\n// Distance limit for double-click.\nconst DOUBLE_PRESS_DISTANCE = 25;\n\nconst MOVEMENT_THRESHOLD = 1.0e-4;\n\n// Standard WASD movement keys with R+F for up/down\nconst WASD_KEYCODE_MOVE = {\n KeyW: new THREE.Vector3(0, 0, -1),\n KeyS: new THREE.Vector3(0, 0, 1),\n KeyA: new THREE.Vector3(-1, 0, 0),\n KeyD: new THREE.Vector3(1, 0, 0),\n KeyE: new THREE.Vector3(0, 1, 0),\n KeyQ: new THREE.Vector3(0, -1, 0),\n};\n\n// Arrow key movement with PageUp/PageDown\nconst ARROW_KEYCODE_MOVE = {\n ArrowUp: new THREE.Vector3(0, 0, -1),\n ArrowDown: new THREE.Vector3(0, 0, 1),\n ArrowLeft: new THREE.Vector3(-1, 0, 0),\n ArrowRight: new THREE.Vector3(1, 0, 0),\n PageUp: new THREE.Vector3(0, 1, 0),\n PageDown: new THREE.Vector3(0, -1, 0),\n};\n\n// Rolling with Q/E\nconst QE_KEYCODE_ROTATE = {\n KeyQ: new THREE.Vector3(0, 0, 1),\n KeyE: new THREE.Vector3(0, 0, -1),\n};\n\n// Home/End/Insert/Delete for rotation\nconst ARROW_KEYCODE_ROTATE = {\n Home: new THREE.Vector3(0, -1, 0),\n End: new THREE.Vector3(0, 1, 0),\n Insert: new THREE.Vector3(-1, 0, 0),\n Delete: new THREE.Vector3(1, 0, 0),\n};\n\n// SparkControls provides simple, intuitive controls for navigating 3D space that\n// use the keyboard + mouse, game pad, or mobile multi-touch. Internally it\n// instantiates and updates a `FpsMovement` and `PointerControls` instance.\n\nexport class SparkControls {\n fpsMovement: FpsMovement;\n pointerControls: PointerControls;\n lastTime = 0;\n\n constructor({ canvas }: { canvas: HTMLCanvasElement }) {\n this.fpsMovement = new FpsMovement({});\n this.pointerControls = new PointerControls({ canvas });\n }\n\n update(control: THREE.Object3D, camera?: THREE.Camera) {\n const time = performance.now();\n const deltaTime = (time - (this.lastTime || time)) / 1000;\n this.lastTime = time;\n\n let updated = this.fpsMovement.update(deltaTime, control);\n if (this.pointerControls.update(deltaTime, control, camera)) {\n updated = true;\n }\n return updated;\n }\n}\n\n// FpsMovement implements controls that will be familiar to anyone who plays\n// First Person Shooters using keyboard + mouse or a gamepad. Creating a FpsMovement\n// instance provides many parameters for configuring the controls.\n//\n// When gamepads are connected, FpsMovement will always use gamepad index 0\n// for twin-stick movement and rotation.\n//\n// If xr is passed in, the WebXR controllers can be used as a split gamepad\n// to control movement and rotation. (tested on Quest 3)\n\nexport class FpsMovement {\n moveSpeed: number;\n rollSpeed: number;\n stickThreshold: number;\n rotateSpeed: number;\n keycodeMoveMapping: { [key: string]: THREE.Vector3 };\n keycodeRotateMapping: { [key: string]: THREE.Vector3 };\n gamepadMapping: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n capsMultiplier: number;\n shiftMultiplier: number;\n ctrlMultiplier: number;\n xr?: THREE.WebXRManager;\n // Enable/disable controls updates\n enable = true;\n extraMove = new THREE.Vector3();\n\n // Currently active event.key values\n keydown: { [key: string]: boolean };\n // Currently active event.code values\n keycode: { [key: string]: boolean };\n\n constructor({\n moveSpeed,\n rollSpeed,\n stickThreshold,\n rotateSpeed,\n keycodeMoveMapping,\n keycodeRotateMapping,\n gamepadMapping,\n capsMultiplier,\n shiftMultiplier,\n ctrlMultiplier,\n xr,\n }: {\n // Base movement speed (default DEFAULT_MOVEMENT_SPEED)\n moveSpeed?: number;\n // Base roll speed (default DEFAULT_ROLL_SPEED)\n rollSpeed?: number;\n // Stick threshold (default DEFAULT_STICK_THRESHOLD)\n stickThreshold?: number;\n // Speed of rotation when using gamepad or keys (default DEFAULT_FPS_ROTATE_SPEED)\n rotateSpeed?: number;\n // Maps keyboard keys to movement directions\n // (default {...WASD_KEYCODE_MOVE, ...ARROW_KEYCODE_MOVE})\n keycodeMoveMapping?: { [key: string]: THREE.Vector3 };\n // Maps keyboard keys to rotation directions\n // (default { ...ARROW_KEYCODE_ROTATE})\n keycodeRotateMapping?: { [key: string]: THREE.Vector3 };\n // Maps gamepad buttons to control actions\n // (default {4: \"rollLeft\", 5: \"rollRight\", 6: \"ctrl\", 7: \"shift\"})\n gamepadMapping?: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n // Speed multiplier when Caps Lock is active (default: 10)\n capsMultiplier?: number;\n // Speed multiplier when Shift is active (default: 5)\n shiftMultiplier?: number;\n // Speed multiplier when Ctrl is active (default: 1/5)\n ctrlMultiplier?: number;\n // Optional WebXR manager for XR controller stick support\n xr?: THREE.WebXRManager;\n } = {}) {\n this.moveSpeed = moveSpeed ?? DEFAULT_MOVEMENT_SPEED;\n this.rollSpeed = rollSpeed ?? DEFAULT_ROLL_SPEED;\n this.stickThreshold = stickThreshold ?? DEFAULT_STICK_THRESHOLD;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_FPS_ROTATE_SPEED;\n this.keycodeMoveMapping = keycodeMoveMapping ?? {\n ...WASD_KEYCODE_MOVE,\n ...ARROW_KEYCODE_MOVE,\n };\n this.keycodeRotateMapping = keycodeRotateMapping ?? {\n // ...QE_KEYCODE_ROTATE,\n ...ARROW_KEYCODE_ROTATE,\n };\n this.gamepadMapping = gamepadMapping ?? {\n 4: \"rollLeft\",\n 5: \"rollRight\",\n 6: \"ctrl\",\n 7: \"shift\",\n };\n this.capsMultiplier = capsMultiplier ?? 10.0;\n this.shiftMultiplier = shiftMultiplier ?? 5.0;\n this.ctrlMultiplier = ctrlMultiplier ?? 1.0 / 5.0;\n\n this.xr = xr;\n\n this.keydown = {};\n this.keycode = {};\n\n document.addEventListener(\"keydown\", (event) => {\n this.keydown[event.key] = true;\n this.keycode[event.code] = true;\n });\n document.addEventListener(\"keyup\", (event) => {\n this.keydown[event.key] = false;\n this.keycode[event.code] = false;\n });\n window.addEventListener(\"blur\", () => {\n this.keydown = {};\n this.keycode = {};\n });\n }\n\n // Call this method in your render loop with `control` set to the object to control\n // (`THREE.Camera` or a `THREE.Object3D` that contains it), with `deltaTime`\n // in seconds since the last update.\n update(deltaTime: number, control: THREE.Object3D) {\n if (!this.enable) {\n return false;\n }\n\n // Update gamepad / XR controllers\n\n const sticks = [new THREE.Vector2(), new THREE.Vector2()];\n const gamepad = navigator.getGamepads()[0];\n if (gamepad) {\n sticks[0].set(gamepad.axes[0], gamepad.axes[1]);\n sticks[1].set(gamepad.axes[2], gamepad.axes[3]);\n }\n const gamepadButtons =\n gamepad?.buttons.map((button) => button.pressed) || [];\n\n const xrSources = Array.from(this.xr?.getSession()?.inputSources ?? []);\n for (const source of xrSources) {\n const gamepad = source.gamepad;\n if (gamepad) {\n switch (source.handedness) {\n case \"none\": {\n sticks[0].x += gamepad.axes[0];\n sticks[0].y += gamepad.axes[1];\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n case \"left\": {\n sticks[0].x += gamepad.axes[2];\n sticks[0].y += gamepad.axes[3];\n break;\n }\n case \"right\": {\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n }\n }\n }\n\n for (const stick of sticks) {\n stick.x = Math.abs(stick.x) >= this.stickThreshold ? stick.x : 0;\n stick.y = Math.abs(stick.y) >= this.stickThreshold ? stick.y : 0;\n }\n\n // Rotation\n\n const rotate = new THREE.Vector3(\n sticks[1].x,\n sticks[1].y,\n 0,\n ).multiplyScalar(this.rotateSpeed);\n\n for (const [keycode, rot] of Object.entries(this.keycodeRotateMapping)) {\n if (this.keycode[keycode]) {\n rotate.add(rot);\n }\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"rollLeft\":\n rotate.z += 1;\n break;\n case \"rollRight\":\n rotate.z -= 1;\n break;\n }\n }\n }\n\n rotate.multiply(\n new THREE.Vector3(this.rotateSpeed, this.rotateSpeed, this.rollSpeed),\n );\n\n let updated = rotate.length() > MOVEMENT_THRESHOLD;\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z = Math.max(-Math.PI, Math.min(Math.PI, eulers.z + rotate.z));\n control.quaternion.setFromEuler(eulers);\n }\n\n // Movement\n\n const moveVector = new THREE.Vector3(sticks[0].x, 0, sticks[0].y);\n moveVector.add(this.extraMove);\n\n for (const [keycode, move] of Object.entries(this.keycodeMoveMapping)) {\n if (this.keycode[keycode]) {\n moveVector.add(move);\n }\n }\n\n let speedMultiplier = 1.0;\n if (this.keydown.CapsLock) {\n speedMultiplier *= this.capsMultiplier;\n }\n if (this.keycode.ShiftLeft || this.keycode.ShiftRight) {\n speedMultiplier *= this.shiftMultiplier;\n }\n if (this.keycode.ControlLeft || this.keycode.ControlRight) {\n speedMultiplier *= this.ctrlMultiplier;\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"shift\":\n speedMultiplier *= this.shiftMultiplier;\n break;\n case \"ctrl\":\n speedMultiplier *= this.ctrlMultiplier;\n break;\n }\n }\n }\n\n if (moveVector.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Apply movement in view direction\n moveVector.applyQuaternion(control.quaternion);\n control.position.add(\n moveVector.multiplyScalar(this.moveSpeed * speedMultiplier * deltaTime),\n );\n\n return updated;\n }\n}\n\ntype PointerState = {\n initial: THREE.Vector2;\n last: THREE.Vector2;\n position: THREE.Vector2;\n pointerId: number;\n button?: number;\n timeStamp: DOMHighResTimeStamp;\n};\n\n// `PointerControls` implements pointer/mouse/touch controls on the canvas,\n// for both desktop and mobile web applications.\n\nexport class PointerControls {\n canvas: HTMLCanvasElement;\n rotateSpeed: number;\n slideSpeed: number;\n scrollSpeed: number;\n swapRotateSlide: boolean;\n reverseRotate: boolean;\n reverseSlide: boolean;\n reverseSwipe: boolean;\n reverseScroll: boolean;\n moveInertia: number;\n rotateInertia: number;\n pointerRollScale: number;\n // Enable/disable controls updates\n enable = true;\n\n doublePress: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n // Time limit for double press (default DOUBLE_PRESS_LIMIT_MS)\n doublePressLimitMs: number;\n // Distance limit for double press (default DOUBLE_PRESS_DISTANCE)\n doublePressDistance: number;\n\n // Time delay in ms for press move to start\n pressMoveDelayMs: number;\n // Time in ms for press move to accelerate\n pressMoveAccelMs: number;\n // Speed of movement on press (default: 0)\n pressMoveSpeed: number;\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed: number;\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed: number;\n // Whether to move toward the screen center or finger when pressing to move\n pressMoveCenter: boolean;\n pressHeld?: boolean;\n doublePressed?: number;\n triplePressed: boolean;\n // Last pointer up event (default: null)\n lastUp: { position: THREE.Vector2; timeStamp: number } | null;\n lastLastUp: { position: THREE.Vector2; timeStamp: number } | null;\n\n // Pointer state for currently active rotating pointer\n rotating: PointerState | null;\n // Pointer state for currently active sliding pointer\n sliding: PointerState | null;\n // Pointer state for last pointer that downed\n lastDown: PointerState | null;\n // Whether we pressed two pointers at the same time\n dualPress: boolean;\n // Cumulative scroll movement\n scroll: THREE.Vector3;\n\n // Current rotation velocity\n rotateVelocity: THREE.Vector3;\n // Current movement velocity\n moveVelocity: THREE.Vector3;\n\n constructor({\n // The HTML canvas element to attach pointer events to\n canvas,\n // Speed of rotation (default DEFAULT_ROTATE_SPEED)\n rotateSpeed,\n // Speed of sliding when dragging with right/middle mouse button or two fingers\n // (default DEFAULT_SLIDE_SPEED)\n slideSpeed,\n // Speed of movement when using mouse scroll wheel (default DEFAULT_SCROLL_SPEED)\n scrollSpeed,\n // Swap the direction of rotation and sliding (default: false)\n swapRotateSlide,\n // Reverse the direction of rotation (default: false)\n reverseRotate,\n // Reverse the direction of sliding (default: false)\n reverseSlide,\n // Reverse the direction of swipe gestures (default: false)\n reverseSwipe,\n // Reverse the direction of scroll wheel movement (default: false)\n reverseScroll,\n // Inertia factor for movement (default: DEFAULT_MOVE_INERTIA)\n moveInertia,\n // Inertia factor for rotation (default: DEFAULT_ROTATE_INERTIA)\n rotateInertia,\n // Pointer rolling scale factor (default: DEFAULT_POINTER_ROLL_SCALE)\n pointerRollScale,\n // Callback for double press events (default: () => {})\n doublePress,\n // Time delay in ms for press move to start (default: DEFAULT_PRESS_MOVE_DELAY_MS)\n pressMoveDelayMs,\n // Time in ms for press move to accelerate (default: DEFAULT_PRESS_MOVE_ACCEL_MS)\n pressMoveAccelMs,\n // Speed of movement on press (default: 0)\n pressMoveSpeed,\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed,\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed,\n // Whether to move toward the screen center or finger when pressing to move (default: true)\n pressMoveCenter,\n }: {\n canvas: HTMLCanvasElement;\n rotateSpeed?: number;\n slideSpeed?: number;\n scrollSpeed?: number;\n swapRotateSlide?: boolean;\n reverseRotate?: boolean;\n reverseSlide?: boolean;\n reverseSwipe?: boolean;\n reverseScroll?: boolean;\n moveInertia?: number;\n rotateInertia?: number;\n pointerRollScale?: number;\n doublePress?: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n pressMoveDelayMs?: number;\n pressMoveAccelMs?: number;\n pressMoveSpeed?: number;\n doublePressMoveSpeed?: number;\n triplePressMoveSpeed?: number;\n pressMoveCenter?: boolean;\n }) {\n this.canvas = canvas;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_ROTATE_SPEED;\n this.slideSpeed = slideSpeed ?? DEFAULT_SLIDE_SPEED;\n this.scrollSpeed = scrollSpeed ?? DEFAULT_SCROLL_SPEED;\n this.swapRotateSlide = swapRotateSlide ?? false;\n this.reverseRotate = reverseRotate ?? (isAndroid() || isIos());\n this.reverseSlide = reverseSlide ?? false;\n this.reverseSwipe = reverseSwipe ?? false;\n this.reverseScroll = reverseScroll ?? false;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n this.pointerRollScale = pointerRollScale ?? DEFAULT_POINTER_ROLL_SCALE;\n\n this.doublePress = doublePress ?? (() => {});\n this.doublePressLimitMs = DOUBLE_PRESS_LIMIT_MS;\n this.doublePressDistance = DOUBLE_PRESS_DISTANCE;\n\n this.pressMoveDelayMs = pressMoveDelayMs ?? DEFAULT_PRESS_MOVE_DELAY_MS;\n this.pressMoveAccelMs = pressMoveAccelMs ?? DEFAULT_PRESS_MOVE_ACCEL_MS;\n this.pressMoveSpeed = pressMoveSpeed ?? 0;\n this.doublePressMoveSpeed =\n doublePressMoveSpeed ?? this.pressMoveSpeed * 5.0;\n this.triplePressMoveSpeed =\n triplePressMoveSpeed ?? this.doublePressMoveSpeed * 5.0;\n this.pressMoveCenter = pressMoveCenter ?? true;\n this.doublePressed = undefined;\n this.triplePressed = false;\n this.lastUp = null;\n this.lastLastUp = null;\n\n this.rotating = null;\n this.sliding = null;\n this.lastDown = null;\n this.dualPress = false;\n this.scroll = new THREE.Vector3();\n\n this.rotateVelocity = new THREE.Vector3();\n this.moveVelocity = new THREE.Vector3();\n\n canvas.addEventListener(\"pointerdown\", (event: PointerEvent) => {\n const position = this.getPointerPosition(event);\n const initial = position.clone();\n const last = position.clone();\n\n // Determine if we're starting a rotation pointer action\n const isRotate =\n (!this.swapRotateSlide &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 0)) ||\n (this.swapRotateSlide &&\n this.sliding &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 1));\n // const isRotate =\n // !this.rotating && (event.pointerType !== \"mouse\" || event.button === 0);\n const { pointerId } = event;\n const timeStamp = performance.now();\n\n if (isRotate) {\n this.rotating = { initial, last, position, pointerId, timeStamp };\n this.lastDown = this.rotating;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n this.dualPress = false;\n } else if (!this.sliding) {\n // If it's not a rotation action and we're not yet sliding, the next\n // pointer activates a sliding action\n const button = event.pointerType === \"mouse\" ? event.button : undefined;\n this.sliding = {\n initial,\n last,\n position,\n pointerId,\n button,\n timeStamp,\n };\n this.lastDown = this.sliding;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n // Check if we pressed both pointers at roughly the same time\n this.dualPress =\n this.rotating != null &&\n timeStamp - this.rotating.timeStamp < DUAL_PRESS_MS;\n }\n\n if (this.lastUp) {\n const distance = this.lastUp.position.distanceTo(position);\n const intervalMs = timeStamp - this.lastUp.timeStamp;\n if (\n distance < this.doublePressDistance &&\n intervalMs < this.doublePressLimitMs\n ) {\n this.doublePressed = performance.now();\n this.triplePressed = false;\n\n if (this.lastLastUp) {\n const lastDistance = this.lastLastUp.position.distanceTo(\n this.lastUp.position,\n );\n const lastIntervalMs =\n this.lastUp.timeStamp - this.lastLastUp.timeStamp;\n if (\n lastDistance < this.doublePressDistance &&\n lastIntervalMs < this.doublePressLimitMs\n ) {\n this.triplePressed = true;\n }\n }\n }\n }\n });\n\n const pointerUp = (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.sliding) {\n canvas.releasePointerCapture(this.sliding.pointerId);\n this.sliding = null;\n }\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.rotating) {\n canvas.releasePointerCapture(this.rotating.pointerId);\n this.rotating = null;\n }\n }\n\n this.doublePressed = undefined;\n this.triplePressed = false;\n\n const position = this.getPointerPosition(event);\n const lastUp = this.lastUp;\n this.lastLastUp = this.lastUp;\n const timeStamp = performance.now();\n this.lastUp = { position, timeStamp };\n\n if (lastUp) {\n const distance = lastUp.position.distanceTo(position);\n if (distance < this.doublePressDistance) {\n const intervalMs = timeStamp - lastUp.timeStamp;\n if (intervalMs < this.doublePressLimitMs) {\n // We pressed and release twice within the time and distance limits\n // this.lastUp = null;\n this.doublePress({ position, intervalMs });\n }\n }\n }\n };\n\n document.addEventListener(\"pointerup\", pointerUp);\n document.addEventListener(\"pointercancel\", pointerUp);\n\n document.addEventListener(\"pointermove\", (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating.position = this.getPointerPosition(event);\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding.position = this.getPointerPosition(event);\n }\n });\n\n canvas.addEventListener(\"contextmenu\", (event: MouseEvent) => {\n // Prevent context menu appearing on right click\n event.preventDefault();\n });\n\n canvas.addEventListener(\"wheel\", (event: WheelEvent) => {\n this.scroll.add(\n new THREE.Vector3(event.deltaX, event.deltaY, event.deltaZ),\n );\n event.preventDefault();\n });\n }\n\n getPointerPosition(event: PointerEvent): THREE.Vector2 {\n const rect = this.canvas.getBoundingClientRect();\n return new THREE.Vector2(\n event.clientX - rect.left,\n event.clientY - rect.top,\n );\n }\n\n update(deltaTime: number, control: THREE.Object3D, camera?: THREE.Camera) {\n if (!this.enable) {\n return false;\n }\n\n const now = performance.now();\n let updated = false;\n\n if (this.dualPress && this.rotating && this.sliding) {\n // We pressed both pointers at the same time, either pinching or sliding\n const motion = [\n this.rotating.position.clone().sub(this.rotating.last),\n this.sliding.position.clone().sub(this.sliding.last),\n ];\n const coincidence = motion[0].dot(motion[1]);\n\n if (coincidence >= 0.2) {\n // Similar directions so slide the camera on the XY plane\n const totalMotion = motion[0].clone().add(motion[1]);\n const slide = new THREE.Vector3(totalMotion.x, -totalMotion.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSwipe ? 1 : -1));\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else if (coincidence <= -0.2) {\n // Opposite directions so either pinch or roll motion\n const deltaDir = this.sliding.last.clone().sub(this.rotating.last);\n const deltaDist = deltaDir.length();\n deltaDir.multiplyScalar(1 / deltaDist).normalize();\n\n const orthoDir = new THREE.Vector2(-deltaDir.y, deltaDir.x);\n const motionDir = [motion[0].dot(deltaDir), motion[1].dot(deltaDir)];\n const motionOrtho = [motion[0].dot(orthoDir), motion[1].dot(orthoDir)];\n\n // Pinching motion\n const midpoint = this.rotating.last\n .clone()\n .add(this.sliding.last)\n .multiplyScalar(0.5);\n let midpointDir = new THREE.Vector3();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcMidpoint = new THREE.Vector2(\n (midpoint.x / this.canvas.clientWidth) * 2 - 1,\n -(midpoint.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcMidpoint, theCamera);\n midpointDir = raycaster.ray.direction;\n }\n const pinchOut = motionDir[1] - motionDir[0];\n const slide = midpointDir.multiplyScalar(pinchOut * this.slideSpeed);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Rolling motion\n // Calculate angle of orthogonal motion change over distance deltaDist/2\n // motionOrtho[0] and 1 are already in float distance\n const angles = [\n Math.atan(motionOrtho[0] / (-0.5 * deltaDist)),\n Math.atan(motionOrtho[1] / (0.5 * deltaDist)),\n ];\n const rotate = 0.5 * (angles[0] + angles[1]) * this.pointerRollScale;\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.z = Math.max(\n -Math.PI,\n Math.min(Math.PI, eulers.z + 0.5 * rotate),\n );\n control.quaternion.setFromEuler(eulers);\n\n if (Math.abs(rotate) > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n this.rotating.last.copy(this.rotating.position);\n this.sliding.last.copy(this.sliding.position);\n } else {\n // Didn't press both pointers at the same time, so we're in rotating\n // or FPS mode\n const rotate = new THREE.Vector3();\n if (this.rotating && !this.dualPress) {\n const delta = this.rotating.position.clone().sub(this.rotating.last);\n this.rotating.last.copy(this.rotating.position);\n rotate.set(delta.x, delta.y, 0);\n rotate.multiplyScalar(this.rotateSpeed * (this.reverseRotate ? -1 : 1));\n // Update rotation velocity from last delta\n this.rotateVelocity = rotate.clone().multiplyScalar(1 / deltaTime);\n\n if (rotate.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n // Continue to rotate with inertia\n this.rotateVelocity.multiplyScalar(\n Math.exp(-deltaTime / this.rotateInertia),\n );\n rotate.addScaledVector(this.rotateVelocity, deltaTime);\n\n if (this.rotateVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n // Apply rotation in Euler angles space\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z *= Math.exp(-DEFAULT_ROLL_SPRING * deltaTime);\n control.quaternion.setFromEuler(eulers);\n\n if (this.sliding && !this.dualPress) {\n const delta = this.sliding.position.clone().sub(this.sliding.last);\n this.sliding.last.copy(this.sliding.position);\n\n // Slide on plane depending on center/right mouse button\n const slide =\n this.sliding.button !== 2\n ? new THREE.Vector3(delta.x, 0, delta.y)\n : new THREE.Vector3(delta.x, -delta.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSlide ? -1 : 1));\n\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n // Update movement velocity from last delta\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n const target = new THREE.Vector3();\n if (this.sliding || this.rotating) {\n const point = this.lastDown?.last ?? new THREE.Vector2();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcPoint = this.pressMoveCenter\n ? new THREE.Vector2(0, 0)\n : new THREE.Vector2(\n (point.x / this.canvas.clientWidth) * 2 - 1,\n -(point.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcPoint, theCamera);\n target.copy(raycaster.ray.direction).normalize();\n }\n\n if (!this.doublePressed) {\n let intensity = 0;\n if (this.lastDown) {\n intensity =\n (now -\n (this.lastDown?.timeStamp ?? now) -\n this.pressMoveDelayMs) /\n this.pressMoveAccelMs;\n\n if (\n this.lastDown.position.distanceTo(this.lastDown.initial) <\n this.doublePressDistance\n ) {\n if (this.pressHeld === undefined) {\n if (intensity > 0) {\n this.pressHeld = true;\n }\n }\n } else if (this.pressHeld === undefined) {\n this.pressHeld = false;\n }\n }\n\n if (this.pressHeld) {\n target.multiplyScalar(\n this.pressMoveSpeed * Math.max(0, Math.min(1, intensity)),\n );\n } else {\n target.set(0, 0, 0);\n }\n } else {\n this.pressHeld = false;\n let intensity =\n (performance.now() - this.doublePressed) / this.pressMoveAccelMs;\n intensity = Math.max(0, Math.min(1, intensity));\n target.multiplyScalar(\n (this.triplePressed\n ? this.triplePressMoveSpeed\n : this.doublePressMoveSpeed) * intensity,\n );\n }\n } else {\n this.pressHeld = undefined;\n }\n // Continue to move with inertia\n const s = Math.exp(-deltaTime / this.moveInertia);\n this.moveVelocity.lerpVectors(target, this.moveVelocity, s);\n control.position.addScaledVector(this.moveVelocity, deltaTime);\n\n if (this.moveVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n }\n\n const scroll = this.scroll.multiplyScalar(this.scrollSpeed);\n scroll.set(scroll.x, scroll.z, scroll.y);\n if (this.reverseScroll) {\n scroll.multiplyScalar(-1);\n }\n scroll.applyQuaternion(control.quaternion);\n control.position.add(scroll);\n\n if (scroll.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n this.scroll.set(0, 0, 0);\n\n return updated;\n }\n}\n","import * as THREE from \"three\";\nimport { SparkRenderer, type SparkRendererOptions } from \"./SparkRenderer\";\n\n/**\n * Fragment shader for portal disk clipping.\n * - diskRadius > 0: render \"behind portal\" only through the disk\n * - diskRadius < 0: render \"in front of portal\" everywhere except behind disk\n */\nexport const DISK_PORTAL_FRAGMENT_SHADER = `\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform mat4 projectionMatrix;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nuniform vec3 diskCenter;\nuniform vec3 diskNormal;\nuniform float diskRadius;\nuniform bool diskTwoSided;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\nvoid main() {\n if (diskRadius != 0.0) {\n // Portal rendering:\n // - diskRadius > 0: render \"behind portal\" only through the disk (discard outside or in-front-of plane).\n // - diskRadius < 0: render \"in front of portal\" everywhere, but discard fragments behind the plane when looking through the disk.\n\n // View ray direction from NDC (view space is -Z forward).\n vec3 viewDir = normalize(vec3(\n vNdc.x / projectionMatrix[0][0],\n vNdc.y / projectionMatrix[1][1],\n -1.0\n ));\n\n // Reconstruct view-space *axial* depth (-viewPos.z) from NDC Z.\n float ndcZ = vNdc.z;\n float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near));\n // Convert axial depth to ray-parameter t (viewPos = t * viewDir).\n float rayT = depth / max(1e-6, -viewDir.z);\n\n float radius = abs(diskRadius);\n float radius2 = radius * radius;\n bool renderBehind = (diskRadius > 0.0);\n\n vec3 diskN = normalize(diskNormal);\n\n // Ray-plane intersection for plane (diskCenter, diskN), with ray origin at (0,0,0).\n float denom = dot(viewDir, diskN);\n bool allowPortal = diskTwoSided ? (abs(denom) > 1e-6) : (denom < -1e-6);\n\n bool hitsDisk = false;\n float t = 0.0;\n if (allowPortal) {\n t = dot(diskCenter, diskN) / denom;\n if (t > 0.0) {\n vec3 q = t * viewDir - diskCenter;\n hitsDisk = (dot(q, q) <= radius2);\n }\n }\n\n // Small bias to avoid flicker at the plane.\n float eps = 1e-4 * max(1.0, abs(t));\n\n if (renderBehind) {\n // Behind-pass: only render through the portal disk, and only behind the plane along the ray.\n if (!hitsDisk) discard;\n if (rayT <= t + eps) discard;\n } else {\n // Front-pass: render everything, except when the ray goes through the disk, discard what's behind the plane.\n if (hitsDisk && (rayT >= t - eps)) discard;\n }\n }\n\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n rgba.a = min(1.0, a) * exp(exponent);\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n}\n`;\n\n/**\n * Callback function called when a portal is crossed.\n * @param pair The portal pair that was crossed\n * @param fromEntry True if crossing from entry to exit, false if crossing from exit to entry\n */\nexport type PortalCrossCallback = (\n pair: PortalPair,\n fromEntry: boolean,\n) => void | Promise;\n\n/**\n * A pair of connected portals. Walking through one teleports you to the other.\n */\nexport interface PortalPair {\n /** First portal endpoint */\n entryPortal: THREE.Object3D;\n /** Second portal endpoint */\n exitPortal: THREE.Object3D;\n /** Radius of this portal pair's disks */\n radius: number;\n /** Optional callback function called when this portal is crossed */\n onCross?: PortalCrossCallback;\n /** Scratch matrix for tracking portal position before frame updates */\n _entryBefore: THREE.Matrix4;\n /** Scratch matrix for tracking portal position before frame updates */\n _exitBefore: THREE.Matrix4;\n}\n\nexport interface SparkPortalsOptions {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n /** Options passed to both SparkRenderer instances */\n sparkOptions?: Partial;\n /** Default portal disk radius for new pairs (default: 1.0) */\n defaultPortalRadius?: number;\n /** Epsilon for portal crossing detection (default: 1e-6) */\n portalCrossEps?: number;\n}\n\n/**\n * SparkPortals\n *\n * Portal implementation to connect two non-contiguous areas of a scene.\n * Supports multiple portal pairs - each pair connects two locations.\n *\n * The rough approach is to use two SparkRenderers: one for the \"front\"/portal\n * view (portalRenderer), and one for the \"behind portal\" pass (behindRenderer).\n *\n * Example:\n * ```typescript\n * const portals = new SparkPortals({ renderer, scene, camera, localFrame });\n *\n * // Add a portal pair\n * const pair = portals.addPortalPair();\n * pair.entryPortal.position.set(0, 0, -1);\n * pair.exitPortal.position.set(-3, 0, -4.5);\n *\n * // Add another pair\n * const pair2 = portals.addPortalPair({ radius: 0.5 });\n * pair2.entryPortal.position.set(5, 0, 0);\n * pair2.exitPortal.position.set(10, 0, 0);\n *\n * // In animation loop:\n * portals.animateLoopHook();\n * ```\n */\nexport class SparkPortals {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n\n /** Primary renderer with portal shader (added to scene) */\n portalRenderer: SparkRenderer;\n /** Secondary renderer for behind-portal pass (not in scene) */\n behindRenderer: SparkRenderer;\n /** Secondary camera for behind-portal view */\n camera2: THREE.PerspectiveCamera;\n\n /** All portal pairs */\n portalPairs: PortalPair[] = [];\n /** Default radius for new portal pairs */\n defaultPortalRadius: number;\n /** Epsilon for portal crossing detection */\n portalCrossEps: number;\n\n /** Used to detect crossing between frames */\n private lastCameraWorld = new THREE.Vector3().setScalar(Number.NaN);\n /** Whether portal LoD prefetch is currently enabled */\n private prefetchActive = false;\n\n // Preallocated objects for scratch work to avoid per frame allocations\n private scratch = {\n quat: new THREE.Quaternion(),\n scale: new THREE.Vector3(),\n center0: new THREE.Vector3(),\n center1: new THREE.Vector3(),\n normal0: new THREE.Vector3(),\n normal1: new THREE.Vector3(),\n centerT: new THREE.Vector3(),\n normalT: new THREE.Vector3(),\n prevCameraWorld: new THREE.Vector3(),\n currCameraWorld: new THREE.Vector3(),\n hit: new THREE.Vector3(),\n offset: new THREE.Vector3(),\n camWorld: new THREE.Matrix4(),\n newCamWorld: new THREE.Matrix4(),\n invCamLocal: new THREE.Matrix4(),\n newLocalFrame: new THREE.Matrix4(),\n cameraWorldPos: new THREE.Vector3(),\n viewDir: new THREE.Vector3(),\n portalCenter: new THREE.Vector3(),\n toPortal: new THREE.Vector3(),\n };\n\n constructor(options: SparkPortalsOptions) {\n this.renderer = options.renderer;\n this.scene = options.scene;\n this.camera = options.camera;\n this.localFrame = options.localFrame;\n this.defaultPortalRadius = options.defaultPortalRadius ?? 1.0;\n this.portalCrossEps = options.portalCrossEps ?? 1e-6;\n\n const sparkOpts = options.sparkOptions ?? {};\n\n // Primary renderer with portal shader\n this.portalRenderer = new SparkRenderer({\n renderer: this.renderer,\n extraUniforms: {\n diskCenter: { value: new THREE.Vector3() },\n diskNormal: { value: new THREE.Vector3() },\n diskRadius: { value: 0 },\n diskTwoSided: { value: false },\n },\n fragmentShader: DISK_PORTAL_FRAGMENT_SHADER,\n ...sparkOpts,\n });\n this.scene.add(this.portalRenderer);\n\n // Secondary renderer for behind-portal pass\n // enableDriveLod: false prevents this renderer from driving LOD updates,\n // avoiding race conditions with portalRenderer's pager operations\n this.behindRenderer = new SparkRenderer({\n renderer: this.renderer,\n enableDriveLod: false,\n ...sparkOpts,\n });\n\n // Secondary camera for behind-portal view\n this.camera2 = this.camera.clone();\n this.scene.add(this.camera2);\n }\n\n /**\n * Add a new portal pair to the system.\n * @param options Optional configuration for this pair\n * @returns The created PortalPair - position the entryPortal and exitPortal as needed\n */\n addPortalPair(options?: {\n radius?: number;\n onCross?: PortalCrossCallback;\n }): PortalPair {\n const pair: PortalPair = {\n entryPortal: new THREE.Object3D(),\n exitPortal: new THREE.Object3D(),\n radius: options?.radius ?? this.defaultPortalRadius,\n onCross: options?.onCross,\n _entryBefore: new THREE.Matrix4(),\n _exitBefore: new THREE.Matrix4(),\n };\n\n this.scene.add(pair.entryPortal);\n this.scene.add(pair.exitPortal);\n this.portalPairs.push(pair);\n\n return pair;\n }\n\n /**\n * Remove a portal pair from the system.\n */\n removePortalPair(pair: PortalPair): void {\n const index = this.portalPairs.indexOf(pair);\n if (index !== -1) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n this.portalPairs.splice(index, 1);\n }\n }\n\n /**\n * Get transform from entry portal to exit portal.\n */\n getEntryToExitTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.entryPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.exitPortal.matrixWorld);\n }\n\n /**\n * Get transform from exit portal to entry portal.\n */\n getExitToEntryTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.exitPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.entryPortal.matrixWorld);\n }\n\n /** Set portal disk uniforms for shader clipping */\n private setPortalDiskUniforms(\n camera: THREE.Camera,\n portal: THREE.Object3D,\n radius: number,\n twoSided: boolean,\n ): void {\n camera.updateMatrixWorld(true);\n portal.updateMatrixWorld(true);\n\n const inverseCamera = camera.matrixWorld.clone().invert();\n const portalInCamera = portal.matrixWorld\n .clone()\n .premultiply(inverseCamera);\n const portalQuat = new THREE.Quaternion();\n\n // Extend the base uniform type with our portal-specific uniforms so TS is happy.\n const uniforms = this.portalRenderer\n .uniforms as typeof this.portalRenderer.uniforms & {\n diskCenter: { value: THREE.Vector3 };\n diskNormal: { value: THREE.Vector3 };\n diskRadius: { value: number };\n diskTwoSided: { value: boolean };\n };\n\n portalInCamera.decompose(\n uniforms.diskCenter.value,\n portalQuat,\n new THREE.Vector3(),\n );\n\n uniforms.diskNormal.value.set(0, 0, 1).applyQuaternion(portalQuat);\n uniforms.diskRadius.value = radius;\n uniforms.diskTwoSided.value = twoSided;\n }\n\n /** Extract portal plane from matrix */\n private getPortalPlane(\n matrix: THREE.Matrix4,\n outCenter: THREE.Vector3,\n outNormal: THREE.Vector3,\n ): void {\n matrix.decompose(outCenter, this.scratch.quat, this.scratch.scale);\n outNormal.set(0, 0, 1).applyQuaternion(this.scratch.quat).normalize();\n }\n\n /**\n * Detect if the user path crosses over a portal. If so, return the parametric position (0,1)\n * along the segment where the crossing occurs. If not, return null.\n */\n private getSegmentDiskCrossing(\n prevCam: THREE.Vector3,\n currCam: THREE.Vector3,\n beforeMatrix: THREE.Matrix4,\n afterMatrix: THREE.Matrix4,\n radius: number,\n ): number | null {\n this.getPortalPlane(\n beforeMatrix,\n this.scratch.center0,\n this.scratch.normal0,\n );\n this.getPortalPlane(\n afterMatrix,\n this.scratch.center1,\n this.scratch.normal1,\n );\n\n const startPlaneDist = this.scratch.offset\n .copy(prevCam)\n .sub(this.scratch.center0)\n .dot(this.scratch.normal0);\n const endPlaneDist = this.scratch.offset\n .copy(currCam)\n .sub(this.scratch.center1)\n .dot(this.scratch.normal1);\n\n if (\n (startPlaneDist > this.portalCrossEps &&\n endPlaneDist > this.portalCrossEps) ||\n (startPlaneDist < -this.portalCrossEps &&\n endPlaneDist < -this.portalCrossEps)\n ) {\n return null;\n }\n\n const denom = startPlaneDist - endPlaneDist;\n if (Math.abs(denom) < this.portalCrossEps) return null;\n\n const t = startPlaneDist / denom;\n if (t < 0 || t > 1) return null;\n\n this.scratch.hit.lerpVectors(prevCam, currCam, t);\n this.scratch.centerT\n .copy(this.scratch.center0)\n .lerp(this.scratch.center1, t);\n this.scratch.normalT\n .copy(this.scratch.normal0)\n .lerp(this.scratch.normal1, t)\n .normalize();\n\n this.scratch.offset.copy(this.scratch.hit).sub(this.scratch.centerT);\n this.scratch.offset.addScaledVector(\n this.scratch.normalT,\n -this.scratch.offset.dot(this.scratch.normalT),\n );\n\n if (this.scratch.offset.lengthSq() > radius * radius) return null;\n return t;\n }\n\n /** Teleport camera through portal */\n private teleport(transform: THREE.Matrix4): void {\n this.scratch.camWorld.copy(this.camera.matrixWorld);\n this.scratch.newCamWorld.copy(this.scratch.camWorld).premultiply(transform);\n this.scratch.invCamLocal.copy(this.camera.matrix).invert();\n this.scratch.newLocalFrame\n .copy(this.scratch.newCamWorld)\n .multiply(this.scratch.invCamLocal);\n\n this.scratch.newLocalFrame.decompose(\n this.localFrame.position,\n this.localFrame.quaternion,\n this.localFrame.scale,\n );\n this.localFrame.updateMatrixWorld(true);\n this.camera.updateMatrixWorld(true);\n }\n\n /**\n * Check for portal crossing and teleport if needed.\n * Checks all portal pairs and takes the earliest crossing.\n * Call this after updating controls but before render().\n */\n updateTeleportation(): void {\n if (this.portalPairs.length === 0) return;\n\n this.camera.getWorldPosition(this.scratch.currCameraWorld);\n if (!Number.isFinite(this.lastCameraWorld.x)) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n this.scratch.prevCameraWorld.copy(this.lastCameraWorld);\n\n // Store portal matrices before any updates and find earliest crossing\n let earliestT: number | null = null;\n let crossedPair: PortalPair | null = null;\n let crossedEntry = true; // true = crossed entry portal, false = crossed exit portal\n\n for (const pair of this.portalPairs) {\n pair.entryPortal.updateMatrixWorld(true);\n pair.exitPortal.updateMatrixWorld(true);\n pair._entryBefore.copy(pair.entryPortal.matrixWorld);\n pair._exitBefore.copy(pair.exitPortal.matrixWorld);\n\n // Check entry portal crossing\n const entryT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._entryBefore,\n pair.entryPortal.matrixWorld,\n pair.radius,\n );\n\n if (entryT !== null && (earliestT === null || entryT < earliestT)) {\n earliestT = entryT;\n crossedPair = pair;\n crossedEntry = true;\n }\n\n // Check exit portal crossing\n const exitT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._exitBefore,\n pair.exitPortal.matrixWorld,\n pair.radius,\n );\n\n if (exitT !== null && (earliestT === null || exitT < earliestT)) {\n earliestT = exitT;\n crossedPair = pair;\n crossedEntry = false;\n }\n }\n\n // No portal crossed\n if (crossedPair === null) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n // Teleport through the crossed portal\n if (crossedEntry) {\n this.teleport(this.getEntryToExitTransform(crossedPair));\n } else {\n this.teleport(this.getExitToEntryTransform(crossedPair));\n }\n\n this.camera.getWorldPosition(this.lastCameraWorld);\n\n // Call the portal's onCross callback if provided\n if (crossedPair.onCross) {\n // Call async callback but don't await (updateTeleportation is synchronous)\n // Errors will be logged but won't block teleportation\n Promise.resolve(crossedPair.onCross(crossedPair, crossedEntry)).catch(\n (error) => {\n console.error(\"Error in portal onCross callback:\", error);\n },\n );\n }\n }\n\n /**\n * Find the most relevant portal for rendering (closest to camera view direction).\n * Returns the portal pair and which portal (entry or exit) is primary.\n */\n private findPrimaryPortal(): {\n pair: PortalPair;\n primaryIsEntry: boolean;\n primaryPortal: THREE.Object3D;\n otherPortal: THREE.Object3D;\n } | null {\n if (this.portalPairs.length === 0) return null;\n\n this.camera.getWorldPosition(this.scratch.cameraWorldPos);\n this.camera.getWorldDirection(this.scratch.viewDir);\n\n let bestScore = Number.NEGATIVE_INFINITY;\n let bestPair: PortalPair | null = null;\n let bestIsEntry = true;\n\n for (const pair of this.portalPairs) {\n // Score entry portal\n pair.entryPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const entryDist = this.scratch.toPortal.length();\n const entryScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / entryDist;\n\n if (entryScore > bestScore) {\n bestScore = entryScore;\n bestPair = pair;\n bestIsEntry = true;\n }\n\n // Score exit portal\n pair.exitPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const exitDist = this.scratch.toPortal.length();\n const exitScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / exitDist;\n\n if (exitScore > bestScore) {\n bestScore = exitScore;\n bestPair = pair;\n bestIsEntry = false;\n }\n }\n\n if (!bestPair) return null;\n\n return {\n pair: bestPair,\n primaryIsEntry: bestIsEntry,\n primaryPortal: bestIsEntry ? bestPair.entryPortal : bestPair.exitPortal,\n otherPortal: bestIsEntry ? bestPair.exitPortal : bestPair.entryPortal,\n };\n }\n\n /**\n * Render the scene with portals using two-pass rendering.\n * Renders the most relevant portal pair (closest to camera view).\n * Call this instead of renderer.render() in your animation loop.\n */\n render(): void {\n const primary = this.findPrimaryPortal();\n\n // No portals - just render normally\n if (!primary) {\n if (this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras();\n this.prefetchActive = false;\n }\n this.renderer.autoClear = true;\n this.renderer.render(this.scene, this.camera);\n return;\n }\n\n if (!this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras([this.camera2]);\n this.prefetchActive = true;\n }\n\n const { pair, primaryIsEntry, primaryPortal, otherPortal } = primary;\n\n // Compute camera2 position (transformed through portal)\n const camera2Matrix = primaryIsEntry\n ? this.camera.matrixWorld\n .clone()\n .premultiply(this.getEntryToExitTransform(pair))\n : this.camera.matrixWorld\n .clone()\n .premultiply(this.getExitToEntryTransform(pair));\n camera2Matrix.decompose(\n this.camera2.position,\n this.camera2.quaternion,\n this.camera2.scale,\n );\n this.camera2.updateMatrixWorld(true);\n\n // Share lodInstances from portalRenderer to behindRenderer BEFORE Pass 1.\n // This uses previous frame's lodInstances (computed with main camera),\n // ensuring both passes use consistent splat selections to avoid flickering.\n this.shareLodInstances();\n\n // Pass 1: Behind portal view (uses shared lodInstances)\n this.setPortalDiskUniforms(this.camera2, otherPortal, pair.radius, true);\n this.renderer.autoClear = true;\n this.behindRenderer.render(this.scene, this.camera2);\n\n // Pass 2: Main view (updates portalRenderer's lodInstances for next frame)\n this.setPortalDiskUniforms(this.camera, primaryPortal, -pair.radius, true);\n this.renderer.autoClear = false;\n this.portalRenderer.render(this.scene, this.camera);\n }\n\n /**\n * Share lodInstances from portalRenderer to behindRenderer.\n * Uses previous frame's values to ensure both passes render consistent splats.\n */\n private shareLodInstances(): void {\n // Clear and copy lodInstances from portalRenderer to behindRenderer\n this.behindRenderer.lodInstances.clear();\n for (const [mesh, data] of this.portalRenderer.lodInstances) {\n this.behindRenderer.lodInstances.set(mesh, data);\n }\n }\n\n /**\n * Convenience hook for animation loop.\n * Calls updateTeleportation() then render().\n */\n animateLoopHook(): void {\n this.updateTeleportation();\n this.render();\n }\n\n /** Update camera2 aspect ratio on window resize */\n updateAspect(aspect: number): void {\n this.camera2.aspect = aspect;\n this.camera2.updateProjectionMatrix();\n }\n\n /** Dispose of resources */\n dispose(): void {\n this.scene.remove(this.portalRenderer);\n this.scene.remove(this.camera2);\n\n for (const pair of this.portalPairs) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n }\n this.portalPairs = [];\n\n this.portalRenderer.dispose();\n this.behindRenderer.dispose();\n }\n}\n"],"names":["OldSplatGeometry","THREE","ordering","activeSplats","QUAD_VERTICES","QUAD_INDICES","u8","u16","i32","fleb","fdeb","clim","freb","eb","start","b","i","r","j","_a","fl","revfl","_b","fd","rev","x","hMap","cd","mb","s","l","le","co","rvb","sv","r_1","v","m","flt","fdt","flrm","fdrm","max","a","bits","d","p","o","bits16","shft","slc","e","ec","err","ind","msg","nt","inflt","dat","st","buf","dict","sl","dl","noBuf","resize","noSt","cbuf","bl","nbuf","final","pos","bt","lm","dm","lbt","dbt","tbts","type","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","c","n","lt","dt","t","lms","dms","lpos","sym","add","dsym","end","shift","dend","et","b2","b4","b8","gzs","flg","zs","Inflate","opts","cb","bts","chunk","inflateSync","data","Gunzip","td","tds","dutf8","strFromU8","latin1","slzh","zh","z","fnl","fn","es","bs","z64e","sc","su","off","unzipSync","files","ze","fltr","c_2","no","LN_SCALE_MIN","LN_SCALE_MAX","SCALE_MIN","SCALE_MAX","LN_SCALE_ZERO","SCALE_ZERO","SPLAT_TEX_WIDTH_BITS","SPLAT_TEX_HEIGHT_BITS","SPLAT_TEX_DEPTH_BITS","SPLAT_TEX_LAYER_BITS","SPLAT_TEX_WIDTH","SPLAT_TEX_HEIGHT","SPLAT_TEX_DEPTH","SPLAT_TEX_MIN_HEIGHT","SPLAT_TEX_WIDTH_MASK","SPLAT_TEX_HEIGHT_MASK","SPLAT_TEX_DEPTH_MASK","WASM_SPLAT_SORT","USE_COMPILED_PARSER_FUNCTION","SplatFileType","DEFAULT_SPLAT_ENCODING","isBoolType","isScalarType","isIntType","isUintType","isFloatType","isMatFloatType","isAllFloatType","isVector2Type","isVector3Type","isVector4Type","isVectorType","isMat2","isMat3","isMat4","vectorElementType","vectorDim","sameSizeVec","sameSizeUvec","sameSizeIvec","typeLiteral","numberAsInt","value","numberAsUint","numberAsFloat","valType","val","DynoValue","DynoOutput","dyno","key","DynoLiteral","literal","dynoLiteral","DynoConst","arg","_","dynoConst","literalZero","typeString","literalOne","literalNegOne","DEFAULT_INDENT","Compilation","indent","Dyno","inTypes","outTypes","inputs","update","globals","statements","generate","outputs","compile","result","declares","name","uniforms","global","dynoDeclare","line","DynoBlock","construct","args","blockInputs","blockOutputs","options","returned","nodeOuts","visit","node","outKey","outName","outs","input","root","steps","source","newSteps","literalOutputs","step","index","dynoBlock","count","typeStr","unindentLines","seenNonEmpty","lines","trimmedLine","regex","unindent","UnaryOp","outTypeFunc","outType","BinaryOp","TrinaryOp","threeRevision","threeMrtArray","f32buffer","u32buffer","supportsFloat16Array","f16buffer","u16buffer","normalize","vec","norm","acc","floatBitsToUint","f","uintBitsToFloat","u","toHalf","toHalfNative","toHalfJS","fromHalf","fromHalfNative","fromHalfJS","sign","exp","frac","halfSign","newExp","subFrac","halfFrac","h","f32bits","mant","newFrac","floatToUint8","floatToSint8","Uint8ToFloat","Sint8ToFloat","DataCache","asyncFetch","dispose","maxItems","item","immediate","pending","removed","mapObject","obj","entries","mapFilterObject","getTransferable","ctx","buffers","seen","traverse","newArray","initFunction","FreeList","allocate","valid","encodeExtSplat","extArrays","y","scaleX","scaleY","scaleZ","quatX","quatY","quatZ","quatW","opacity","g","i4","extA","extB","encodeQuatOctXy1010R12","decodeExtSplat","packedFields","decodeQuatOctXy1010R12","setPackedSplat","packedSplats","encoding","rgbMin","rgbRange","uR","uG","uB","uA","uQuat","encodeQuatOctXy88R8","tempQuaternion","uQuatX","uQuatY","uQuatZ","lnScaleMin","lnScaleScale","uScaleX","uScaleY","uScaleZ","uCenterX","uCenterY","uCenterZ","setPackedSplatCenter","setPackedSplatScales","setPackedSplatQuat","setPackedSplatRgba","setPackedSplatRgb","setPackedSplatOpacity","packedCenter","packedScales","packedQuaternion","packedColor","unpackSplat","word0","word1","word2","word3","uScalesX","uScalesY","uScalesZ","decodeQuatOctXy88R8","getTextureSize","numSplats","width","height","depth","maxSplats","computeMaxSplats","isMobile","isAndroid","isOculus","isQuest2","isIos","isVisionPro","flipPixels","pixels","tempLine","topOffset","bottomOffset","pixelsToPngUrl","canvas","imageData","cloneClock","clock","newClock","omitUndefined","IDENT_VERTEX_SHADER","averagePositions","positions","sum","position","averageQuaternions","quaternions","coinciDist","matrix1","matrix2","origin1","origin2","direction1","direction2","distance","coincidence","withinDist","maxDistance","withinCoinciDist","minCoincidence","coorientDist","rotate1","rotate2","coorient","withinCoorientDist","minCoorient","epsilonSign","epsilon","encodeQuatXyz888","q","negQuat","iQuatX","iQuatY","iQuatZ","decodeQuatXyz888","encoded","out","dotSelf","tempNormalizedQuaternion","tempAxis","qnorm","theta","xyz_norm","axis","p_x","p_y","tmp","u_f","v_f","quantU","quantV","angleInt","f_x","f_y","f_z","halfTheta","w","encodeQuatEulerXyz888","qNorm","sinr_cosp","cosr_cosp","roll","sinp","pitch","siny_cosp","cosy_cosp","yaw","normRoll","normPitch","normYaw","rollQ","pitchQ","decodeQuatEulerXyz888","yawQ","cr","sr","cp","sp","cy","sy","qx","qy","qz","qw","qlen","qnx","qny","qnz","qnw","axisX","axisY","axisZ","axisLen","packSint8Bytes","b0","b1","b3","clampedB0","clampedB1","clampedB2","clampedB3","encodeSh1Rgb","sh1Array","sh1Rgb","sh1Scale","base","bitStart","bitEnd","wordStart","bitOffset","firstWord","secondWord","encodeSh2Rgb","sh2Array","sh2Rgb","sh2Scale","encodeSh3Rgb","sh3Array","sh3Rgb","sh3Scale","encodeExtRgb","ar","ag","ab","maxAbs","biasedBase","divisor","expSigns","decodeExtRgb","color","encodeExtSh1Rgb","k","k3","encodeExtSh12Rgb","k5","encodeExt3Rgb","sh3ArrayA","sh3ArrayB","decompressPartialGzip","fileBytes","numBytes","chunks","totalBytes","gunzip","allBytes","offset","CHUNK_SIZE","GunzipReader","chunkBytes","ds","decompressionStream","readerDone","outOffset","OldSplatWorker","BundledWorker","event","id","promise","resolve","reject","error","handler","maxWorkers","numWorkers","freeWorkers","workerQueue","allocWorker","worker","freeWorker","waiter","withWorker","callback","_SplatWorker","status","queue","messages","message","SplatWorker","NewSplatWorkerPool","workerPool","Gsplat","CovSplat","TPackedSplats","TExtSplats","TCovSplats","numPackedSplats","NumPackedSplats","readPackedSplat","ReadPackedSplat","readPackedSplatRange","ReadPackedSplatRange","numExtSplats","extSplats","NumExtSplats","readExtSplat","ReadExtSplat","numCovSplats","covsplats","NumCovSplats","readCovSplat","covSplats","ReadCovSplat","gsplatToCovSplat","gsplat","GsplatToCovSplat","splitGsplat","SplitGsplat","combineGsplat","flags","center","scales","quaternion","rgba","rgb","CombineGsplat","gsplatNormal","GsplatNormal","transformGsplat","scale","rotate","translate","recolor","TransformGsplat","splatTexCoord","SplatTexCoord","pagedSplatTexCoord","PagedSplatTexCoord","defineGsplat","defineCovSplat","definePackedSplats","defineReadPackedArray","defineExtSplats","defineReadExtArrays","defineReadCovArrays","covsplat","active","outGsplat","r2","defineGsplatNormal","splitCovSplat","SplitCovSplat","combineCovSplat","CombineCovSplat","outCovSplat","coord","outputPackedSplat","rgbMinMaxLnScaleMinMax","OutputPackedSplat","outputCovSplat","OutputCovSplat","outputExtendedSplat","OutputExtendedSplat","outputExtCovSplat","OutputExtCovSplat","outputSplatDepth","viewCenter","viewDir","sortRadial","OutputSplatDepth","outputCovSplatDepth","OutputCovSplatDepth","outputRgba8","rgba8","OutputRgba8","uniform","DynoUniform","dynoBool","DynoBool","dynoUint","DynoUint","dynoInt","DynoInt","dynoFloat","DynoFloat","dynoBvec2","DynoBvec2","dynoUvec2","DynoUvec2","dynoIvec2","DynoIvec2","dynoVec2","DynoVec2","dynoBvec3","DynoBvec3","dynoUvec3","DynoUvec3","dynoIvec3","DynoIvec3","dynoVec3","DynoVec3","dynoBvec4","DynoBvec4","dynoUvec4","DynoUvec4","dynoIvec4","DynoIvec4","dynoVec4","DynoVec4","dynoMat2","DynoMat2","dynoMat2x2","DynoMat2x2","dynoMat2x3","DynoMat2x3","dynoMat2x4","DynoMat2x4","dynoMat3","DynoMat3","dynoMat3x2","DynoMat3x2","dynoMat3x3","DynoMat3x3","dynoMat3x4","DynoMat3x4","dynoMat4","DynoMat4","dynoMat4x2","DynoMat4x2","dynoMat4x3","DynoMat4x3","dynoMat4x4","DynoMat4x4","dynoUsampler2D","DynoUsampler2D","dynoIsampler2D","DynoIsampler2D","dynoSampler2D","DynoSampler2D","dynoUsampler2DArray","DynoUsampler2DArray","dynoIsampler2DArray","DynoIsampler2DArray","dynoSampler2DArray","DynoSampler2DArray","dynoUsampler3D","DynoUsampler3D","dynoIsampler3D","DynoIsampler3D","dynoSampler3D","DynoSampler3D","dynoUsamplerCube","DynoUsamplerCube","dynoIsamplerCube","DynoIsamplerCube","dynoSamplerCube","DynoSamplerCube","dynoSampler2DShadow","DynoSampler2DShadow","dynoSampler2DArrayShadow","DynoSampler2DArrayShadow","dynoSamplerCubeShadow","DynoSamplerCubeShadow","allGlobals","DynoProgram","graph","template","consoleLog","getMaterial","updater","DynoProgramTemplate","programMaterial","program","material","addOutputType","operation","subOutputType","mulOutputType","divOutputType","imodOutputType","modOutputType","negOutputType","absOutputType","signOutputType","floorOutputType","ceilOutputType","truncOutputType","roundOutputType","fractOutputType","powOutputType","expOutputType","exp2OutputType","logOutputType","log2OutputType","sqrOutputType","sqrtOutputType","inversesqrtOutputType","minOutputType","maxOutputType","clampOutputType","_c","mixOutputType","stepOutputType","smoothstepOutputType","isNanOutputType","isInfOutputType","Add","sub","Sub","mul","Mul","div","Div","imod","IMod","mod","Mod","modf","Modf","neg","Neg","abs","Abs","Sign","floor","Floor","ceil","Ceil","trunc","Trunc","round","Round","fract","Fract","pow","Pow","Exp","exp2","Exp2","log","Log","log2","Log2","sqr","Sqr","sqrt","Sqrt","inversesqrt","InverseSqrt","min","Min","Max","clamp","Clamp","mix","Mix","edge","Step","smoothstep","edge0","edge1","Smoothstep","isNan","IsNan","isInf","IsInf","and","And","or","Or","xor","Xor","not","Not","shr","Shr","shl","Shl","lessThan","LessThan","lessThanEqual","LessThanEqual","greaterThan","GreaterThan","greaterThanEqual","GreaterThanEqual","equal","Equal","notEqual","NotEqual","any","Any","all","All","select","cond","Select","compXor","CompXor","aType","bType","compareOutputType","equalOutputType","notEqualOutputType","cType","operator","compXorOutputType","operands","bool","Bool","int","Int","uint","Uint","float","Float","bvec2","BVec2","bvec3","BVec3","bvec4","BVec4","ivec2","IVec2","ivec3","IVec3","ivec4","IVec4","uvec2","UVec2","uvec3","UVec3","uvec4","UVec4","vec2","Vec2","vec3","Vec3","vec4","Vec4","mat2","Mat2","mat3","Mat3","mat4","Mat4","floatBitsToInt","FloatBitsToInt","FloatBitsToUint","intBitsToFloat","IntBitsToFloat","UintBitsToFloat","packSnorm2x16","PackSnorm2x16","unpackSnorm2x16","UnpackSnorm2x16","packUnorm2x16","PackUnorm2x16","unpackUnorm2x16","UnpackUnorm2x16","packHalf2x16","PackHalf2x16","unpackHalf2x16","UnpackHalf2x16","uintToRgba8","UintToRgba8","SimpleCast","length","Length","Distance","dot","Dot","cross","Cross","Normalize","faceforward","FaceForward","reflectVec","incident","normal","ReflectVec","refractVec","eta","RefractVec","split","vector","Split","combine","vectorType","Combine","projectH","ProjectH","extendVec","ExtendVec","swizzle","Swizzle","compMult","CompMult","outer","Outer","transpose","Transpose","determinant","Determinant","inverse","Inverse","projectHOutputType","extendVecOutputType","outerOutputType","transposeOutputType","splitOutTypes","vType","elType","dim","swizzleOutputType","remapIndex","from","to","DynoRemapIndex","pcgMix","PcgMix","pcgNext","state","PcgNext","pcgHash","PcgHash","hash","Hash","hash2","Hash2","hash3","Hash3","hash4","Hash4","hashFloat","HashFloat","hashVec2","HashVec2","hashVec3","HashVec3","hashVec4","HashVec4","normalizedDepth","zNear","zFar","NormalizedDepth","debugColorHue","DebugColorHue","toUint","tempType","toUvec","word","words","transformPos","TransformPosition","transformDir","dir","TransformDir","transformQuat","TransformQuaternion","dynoIf","dynoSwitch","dynoFor","comment","arrayIndex","arrayLength","textureSize","texture","lod","TextureSize","bias","Texture","texelFetch","TexelFetch","textureType","textureSizeType","textureCoordType","textureReturnType","radians","degrees","Radians","Degrees","sin","Sin","cos","Cos","tan","Tan","asin","Asin","acos","Acos","atan","Atan","atan2","Atan2","sinh","Sinh","cosh","Cosh","tanh","Tanh","asinh","Asinh","acosh","Acosh","atanh","Atanh","_ExtSplats","DynoExtSplats","url","fileType","fileName","stream","streamLength","nonLod","lodAbove","loader","SplatLoader","maybePromise","maxSh","viewOrigin","splatCenter","sh1Texture","sh2Texture","sh3TextureA","sh3TextureB","evaluateExtSH","sh1","newSh1","newUint32ArrayTexture","sh2","newSh2","sh3a","newSh3","sh3b","newSh3b","targetSize","currentSize","newArray0","newArray1","unpacked","indices","pageColoring","newSplats","splat","hue","rgbaArray","quality","lodBase","extra","decoded","lodSplats","emptyArray","ExtSplats","defineEvaluateExtSH1","defineEvaluateExtSH12","defineEvaluateExtSH3","numSh","format","internalFormat","decode_rad_header","bytes","ret","wasm","takeFromExternrefTable0","get_raycast_buffer","get_raycast_buffer2","raycast_ext_buffers","origin_x","origin_y","origin_z","dir_x","dir_y","dir_z","min_opacity","near","far","raycast_packed_buffer","ln_scale_min","ln_scale_max","lod_opacity","__wbg_get_imports","arg0","arg1","getStringFromWasm0","deferred0_0","deferred0_1","arg2","getArrayU8FromWasm0","getArrayU32FromWasm0","handleError","getArrayF32FromWasm0","ptr1","passStringToWasm0","len1","WASM_VECTOR_LEN","getDataViewMemory0","table","addToExternrefTable0","idx","ptr","len","getFloat32ArrayMemory0","getUint32ArrayMemory0","getUint8ArrayMemory0","cachedDataViewMemory0","cachedFloat32ArrayMemory0","decodeText","cachedUint32ArrayMemory0","cachedUint8ArrayMemory0","malloc","realloc","cachedTextEncoder","mem","code","view","cachedTextDecoder","MAX_SAFARI_DECODE_BYTES","numBytesDecoded","__wbg_finalize_init","instance","module","__wbg_load","imports","expectedResponseType","__wbg_init","module_or_path","computeUvec4_default","computeUvec4_Vec4_default","computeUvec4x2_Vec4_default","computeVec4_default","oldSplatFragment_default","oldSplatVertex_default","splatDefines_default","splatFragment_default","splatVertex_default","shaders","getShaders","splatDefines","oldSplatVertex","oldSplatFragment","splatVertex","splatFragment","computeVec4Template","computeUvec4Vec4Template","computeUvec4x2Vec4Template","computeUvec4Template","_Readback","renderer","buffer","newBuffer","ctor","capacity","reader","layerSize","baseIndex","layer","layerBase","layerYEnd","readback","roundedCount","readbackUint8","promises","readbackSize","subReadback","renderState","FullScreenQuad","Readback","_RgbaArray","TRgbaArray","defineRgbaArray","splatCount","dynoSplats","dynoBase","dynoCount","DynoPackedSplats","RgbaArray","readRgbaArray","SplatEditSdfType","sdfTypeToNumber","SplatEditRgbaBlendMode","rgbaBlendModeToNumber","mode","SplatEditSdf","invert","displace","radius","_SplatEdit","rgbaBlendMode","sdfSmooth","softEdge","sdfs","sdf","SplatEdit","SplatEdits","maxSdfs","maxEdits","SdfArray","defineSdfArray","defineEdit","dynoUpdated","updated","tempFloat32","editIndex","sdfFirst","sdfCount","sdfIndex","sdfType","sizes","values","nValues","vBase","edits","total","edit","sdfUpdated","applyGsplatRgbaDisplaceEdits","applyCovSplatRgbaDisplaceEdits","sdfArray","numEdits","rgbaDisplaceEdits","SplatModifier","modifier","generator","modified","SplatTransformer","transform","newScale","object","CovSplatTransformer","rebased","basis","SplatGenerator","covGenerator","constructed","_SplatAccumulator","splatCounts","mapping","rounded","target2","target3","theGenerator","_outputs","roots","output","centerSubView","halfAlpha","outputDepth","nextBase","layerYStart","scene","time","camera","renderSize","previous","lodInstances","allGenerators","globalEditsSet","ancestor","SplatMesh","globalEdits","visibleGenerators","baseCounts","previousMappings","mappings","previousNode","version","mappingVersion","splatsUpdated","mappingUpdated","textures","array","otherMapping","other","SplatAccumulator","SplatGeometry","_SparkRenderer","premultipliedAlpha","geometry","defaultPages","accumulatorOptions","doubleBuffer","origSuperXY","origTargetOptions","superXY","superWidth","superHeight","targetOptions","accumulators","accumulator","instances","spark","frame","isNewFrame","baseLayer","typedCamera","accumToWorld","accumToCamera","preUpdate","useCamera","autoUpdate","viewChanged","next","doUpdate","needsUpdate","now","nextSortTime","current","rows","orderingMaxSplats","gl","glTexture","orderingTexture","defaultSplatCount","pixelScaleLimit","viewHeight","viewWidth","pxY","pxX","viewPos","viewQuat","distanceRamp","quatRamp","lodMeshes","hasPaged","mesh","splats","record","SplatPager","lodId","lodInitQueue","updates","page","lodTree","lodUpdates","deltaPred","deltaTime","PackedSplats","uuidToMesh","cameraToWorld","viewToObject","traverseStart","keyIndices","pixelLimit","totalLodSplats","pagedMeshes","meshPosition","PagedSplats","uuid","countIndices","oldest","target","previousTarget","byteSize","superPixels","subWidth","subHeight","subSize","targetPixels","super2","row","superCol","superRow","sx","superIndex","pixelIndex","worldCenter","size","hideObjects","filter","cubeCamera","objectVisibility","tempCamera","visible","cubeTexture","envMap","level","SparkRenderer","dyno.DynoInt","dyno.DynoUsampler2D","dyno.DynoVec4","dyno.DynoBool","dyno.DynoVec3","getSplatFileType","getSplatFileTypeFromPath","wasmInitialized","metaStart","tryBytes","fetchRange","decodeBytes","meta","chunksStart","filename","resolvedRoot","chunkUrl","request","response","sh3Codes","_d","_e","indicesTexture","getGlTexture","splatIndex","packedSplatArray","extPackedSplatArray","_SplatPager","dyno.DynoUsampler2DArray","dyno.dynoBlock","dyno.Dyno","dyno.unindentLines","dyno.Gsplat","lodOpacity","dyno.defineGsplat","shMax","dyno.splitGsplat","dyno.normalize","dyno.sub","evaluatePackedSH","dyno.add","dyno.combineGsplat","pageLru","packedArray","extArray","pageBase","sh3","needed","overflow","numPages","backoff","extraPages","splatsChunk","fetched","upload","init_wasm","requestHeader","withCredentials","EmptySplatSource","_SplatMesh","context","rootUrl","emptyLodIndices","constructSplats","onProgress","splatEncoding","packedSplatsOptions","centers_only","minVec","maxVec","corners","signs","_index","_opacity","_color","maybeLookupIndex","maybeInjectSplatRgba","recolorRgba","covTransform","covViewToObject","viewToWorld","lodIndices","worldToView","viewToObjectMatrix","newRecolor","editsSdfs","editResult","raycaster","intersects","paged","ext","ray","worldToMesh","worldToMeshRot","origin","direction","bufferSize","intersections","_f","buffer2","ext1","_o","_n","_q","_p","_r","ext2","_t","_s","_v","_u","_w","index4","newIntersections","packed","_h","_g","_j","_i","_k","_l","_m","point","additional","enableLod","showLodPage","PLY_PROPERTY_TYPES","_PlyReader","decoder","controller","headerTerminator","done","endHeader","headerLen","curElement","lineIndex","fields","elementCallback","elementName","element","properties","createEmptyItem","parseFn","createParseFn","splatCallback","shCallback","isSuperSplat","ssChunks","sh1Props","sh2Props","sh3Props","prepareSh","num_f_rest","NUM_SH_TO_NUM_F_REST","ssShCallback","sh","initSuperSplat","min_x","min_y","min_z","max_x","max_y","max_z","min_scale_x","min_scale_y","min_scale_z","max_scale_x","max_scale_y","max_scale_z","min_r","min_g","min_b","max_r","max_g","max_b","decodeSuperSplat","getNumSh","packed_position","packed_rotation","packed_scale","packed_color","SQRT2","r0","r1","rr","rOrder","scale_0","scale_1","scale_2","rot_0","rot_1","rot_2","rot_3","f_dc_0","f_dc_1","f_dc_2","red","green","blue","alpha","hasScales","hasRots","alphaDiv","FIELD_SCALE","redDiv","greenDiv","blueDiv","op","SH_C0","parsers","rgbaOffset","isVertex","propertyName","property","PARSE_FIELD","FIELD_BYTES","component","SET_FIELD","parser","PlyReader","littleEndian","NUM_F_REST_TO_NUM_SH","F_REST_REGEX","safeToCompile","createCompiledParserFn","createDynamicParserFn","UNSAFE_EVAL_ALLOWED","PROPERTY_NAME_REGEX","parserSrc","fRestMatch","fRestIndex","list","currentOffset","parserIndex","Loader","manager","FileLoader","onLoad","onError","resolvedURL","readStream","splatsLod","splatsNonLod","onStatus","loaded","basedUrl","initExtSplats","initSplats","magic","header","tryPcSogsZip","getFileExtension","pathOrUrl","noTrailing","lastSlash","lastDot","extension","isPcSogs","tryPcSogs","text","json","isVersion2","metaFilename","unzipped","unpackSplats","extraFiles","splatFileType","ply","SplatData","targetSplats","newCenters","newScales","newQuaternions","newOpacities","newColors","_PackedSplats","sh3Texture","wordsPerSplat","defineEvalPackedSH1","defineEvalPackedSH2","defineEvalPackedSH3","_OldSparkViewpoint","forceOrigin","originToWorld","newCam","needsSort","displayed","latestView","doubleSortReader","sort32Reader","dynoSortRadial","dynoOrigin","dynoDirection","dynoDepthBias","dynoSort360","sort32","halfMaxSplats","worldToOrigin","viewToOrigin","sortReader","rpcName","oldOrdering","sortParams","index2","gsplat0","metric0","computeSortMetric","gsplat1","metric1","combined","metric","OldSparkViewpoint","defineComputeSortMetric","sortOrigin","sortDirection","sortDepthBias","sort360","OldSplatAccumulator","generators","forceUpdate","map","modGenerator","otherNode","otherBase","otherCount","MAX_ACCUMULATORS","_OldSparkRenderer","EMPTY_GEOMETRY","viewpoint","cameras","averageOriginToWorlds","enable","multiply","mid","worldToCamera","activeMapping","visibleGenHash","originUpdate","originChanged","genOrder","gIndex","lastGen","_version","_seq","newGenerators","hasCorrespondence","OldSparkRenderer","originToWorlds","matrix","decodeAntiSplat","initNumSplats","f32","i8","KSPLAT_COMPRESSION","KSPLAT_SH_DEGREE_TO_COMPONENTS","decodeKsplat","headerOffset","versionMajor","versionMinor","maxSectionCount","compressionLevel","minSphericalHarmonicsCoeff","maxSphericalHarmonicsCoeff","sectionBase","section","getSh","splatOffset","sphericalHarmonicsOffsetBytes","sectionSplatCount","sectionMaxSplatCount","bucketSize","bucketCount","bucketBlockSize","bucketStorageSizeBytes","compressionScaleRange","fullBucketCount","fullBucketSplats","partiallyFilledBucketCount","bucketsMetaDataSizeBytes","bucketsStorageSizeBytes","sphericalHarmonicsDegree","shComponents","bytesPerCenter","bytesPerScale","bytesPerRotation","bytesPerColor","bytesPerSphericalHarmonicsComponent","scaleOffsetBytes","rotationOffsetBytes","colorOffsetBytes","bytesPerSplat","splatDataStorageSizeBytes","storageSizeBytes","sh1Index","sh2Index","sh3Index","compressionScaleFactor","bucketsBase","dataBase","bucketArray","partiallyFilledBucketLengths","partialBucketIndex","partialBucketBase","bucketIndex","bucketLength","SpzReader","centerCallback","alphaCallback","rgbCallback","scalesCallback","quatCallback","childCounts","childStarts","centerBytes","centerUint16","i3","fixed","i9","rgbBytes","scalesBytes","maxValue","quatBytes","combinedValues","valueMask","largestIndex","remainingValues","sumSquares","square","shBytes","SH_DEGREE_TO_VECS","i2","SPZ_MAGIC","SPZ_VERSION","FLAG_ANTIALIASED","SpzWriter","shDegree","fractionalBits","flagAntiAlias","splatSize","xRounded","xInt","yRounded","yInt","zRounded","zInt","quat","iLargest","negate","comp","negbit","mag","quantized","shVecs","base1","base2","base3","compressed","transcodeSpz","clipXyz","opacityThreshold","transformScales","transformQuaternion","withinClip","clip","withinOpacity","lastIndex","spz","centers","SplatSkinningMode","_SplatSkinning","GsplatSkinning","defineGsplatSkinning","applyGsplatSkinning","applyCovSplatDQSkinning","applyCovSplatLBSkinning","boneIndex","i16","boneIndices","weights","SplatSkinning","defineApplyGsplatSkinning","skinning","defineApplyCovSplatDQSkinning","defineApplyCovSplatLBSkinning","constructGrid","extents","stepSize","pointRadius","pointShadowScale","pointColor","constructAxes","axisRadius","axisShadowScale","origins","constructSpherePoints","maxDepth","pointThickness","pointsHash","addPoint","recurse","p0","p1","p2","p01","p12","p20","points","textSplats","font","fontSize","dotRadius","textAlign","lineHeight","objectScale","metrics","fontHeight","minLeft","maxRight","minTop","maxBottom","originLeft","originTop","imageSplats","subXY","forEachSplat","img","destWidth","destHeight","push","maybeOpacity","staticBox","box","cells","dotScale","dynoX","dynoY","dynoTime","cellX","cellY","cellZ","cell","intTime","random","transformer","DEFAULT_SNOW","DEFAULT_RAIN","snowBox","minY","density","anisoScale","minScale","maxScale","fallDirection","fallVelocity","wanderScale","wanderVariance","color1","color2","onFrame","volume","dynoMinScale","dynoMaxScale","dynoAnisoScale","dynoFallDirection","dynoFallVelocity","dynoWanderScale","dynoWanderVariance","dynoColor1","dynoColor2","dynoOpacity","globalOffset","dynoMin","dynoMax","dynoMinY","minMax","snow","randomW","intensity","random2","perturb","timeOffset","modulo","centerY","fallDelta","makeNormalColorModifier","splatToView","viewGsplat","viewNormal","splatDot","sameDir","setWorldNormalColor","makeDepthColorModifier","minDepth","reverse","setDepthColor","dynoMinDepth","dynoMaxDepth","dynoReverse","DEFAULT_CONTROLLER_MOVE_SPEED","DEFAULT_CONTROLLER_ROTATE_SPEED","DEFAULT_CONTROLLER_ROLL_SPEED","DEFAULT_CONTROLLER_FAST_MULTIPLIER","DEFAULT_CONTROLLER_SLOW_MULTIPLIER","DEFAULT_CONTROLLER_MOVE_HEADING","DEFAULT_CONTROLLER_GETMOVE","gamepads","sparkXr","DEFAULT_CONTROLLER_GETROTATE","DEFAULT_CONTROLLER_GETFAST","DEFAULT_CONTROLLER_GETSLOW","JointEnum","JOINT_IDS","NUM_JOINTS","JOINT_INDEX","JOINT_RADIUS","JOINT_SEGMENTS","JOINT_SEGMENT_STEPS","JOINT_TIPS","FINGER_TIPS","Hand","HANDS","XR_HEADSET_HINTS","isLikelyMobilePhone","ua","uaData","_SparkXr","XrHand","button","modes","supported","referenceSpaceType","frameBufferScaleFactor","optionalFeatures","requiredFeatures","session","onSessionEnded","visibilityChanged","lastVisibilityState","exitHtml","exitText","enterHtml","enterText","cameraFrame","xrGamepads","gamepad","eulers","pivot","move","moveSpeed","SCRATCH_EULER","SCRATCH_QUAT_A","xrFrame","xrSession","referenceSpace","hand","inputSource","xrHand","jointId","jointSpace","jointPose","orientation","JointSplats","joints","hands","SparkXr","round4","SCRATCH_QUAT_B","lerpHandsSnapshots","snapshots","first","last","floorIndex","findSnapshotFloorIndex","cloneSnapshot","span","factor","interpolateSnapshots","maxHands","handIndex","lerpHandSnapshot","snapshot","cloneHandSnapshot","joint","low","high","fromHand","toHand","lerpJointSnapshot","fromJoint","toJoint","clone","cloneJointSnapshot","DEFAULT_MOVE_INERTIA","DEFAULT_ROTATE_INERTIA","TOUCH_BIAS","XrHands","xr","Vector3","Quaternion","Color","CYCLE","handedness","segment","segmentSplats","lastSegment","jointA","jointB","radiusA","radiusB","handA","handB","hA","hB","jA","jB","HandMovement","xrHands","control","moveInertia","rotateInertia","grip","lastMid","delta","angle","lastAngle","closestAngle","rotateVelocity","blend","negPivot","Matrix4","DEFAULT_MOVEMENT_SPEED","DEFAULT_ROLL_SPEED","DEFAULT_ROTATE_SPEED","DEFAULT_SLIDE_SPEED","DEFAULT_SCROLL_SPEED","DEFAULT_STICK_THRESHOLD","DEFAULT_FPS_ROTATE_SPEED","DEFAULT_POINTER_ROLL_SCALE","DEFAULT_PRESS_MOVE_DELAY_MS","DEFAULT_PRESS_MOVE_ACCEL_MS","DUAL_PRESS_MS","DOUBLE_PRESS_LIMIT_MS","DOUBLE_PRESS_DISTANCE","MOVEMENT_THRESHOLD","WASD_KEYCODE_MOVE","ARROW_KEYCODE_MOVE","ARROW_KEYCODE_ROTATE","SparkControls","FpsMovement","PointerControls","rollSpeed","stickThreshold","rotateSpeed","keycodeMoveMapping","keycodeRotateMapping","gamepadMapping","capsMultiplier","shiftMultiplier","ctrlMultiplier","sticks","gamepadButtons","xrSources","stick","keycode","rot","moveVector","speedMultiplier","slideSpeed","scrollSpeed","swapRotateSlide","reverseRotate","reverseSlide","reverseSwipe","reverseScroll","pointerRollScale","doublePress","pressMoveDelayMs","pressMoveAccelMs","pressMoveSpeed","doublePressMoveSpeed","triplePressMoveSpeed","pressMoveCenter","initial","isRotate","pointerId","timeStamp","intervalMs","lastDistance","lastIntervalMs","pointerUp","lastUp","rect","motion","totalMotion","slide","deltaDir","deltaDist","orthoDir","motionDir","motionOrtho","midpoint","midpointDir","theCamera","ndcMidpoint","pinchOut","angles","ndcPoint","scroll","DISK_PORTAL_FRAGMENT_SHADER","SparkPortals","sparkOpts","pair","portal","twoSided","inverseCamera","portalInCamera","portalQuat","outCenter","outNormal","prevCam","currCam","beforeMatrix","afterMatrix","startPlaneDist","endPlaneDist","denom","earliestT","crossedPair","crossedEntry","entryT","exitT","bestScore","bestPair","bestIsEntry","entryDist","entryScore","exitDist","exitScore","primary","primaryIsEntry","primaryPortal","otherPortal","aspect"],"mappings":"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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,GCAAC,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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAAC,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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAAC,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,GCAAC,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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCYA,IAAIC,GAAyC,KAEtC,SAASC,IAAqC,CACnD,OAAKD,KAEHxsC,EAAM,YAAY,aAAe0sC,GACvBF,GAAA,CAAA,eACRG,GAAA,iBACAC,GAAA,YACAC,GAAA,cACAC,GAAA,oBACAC,GAAA,yBACAC,GAAA,2BACAC,GACAC,qBAAAA,EACF,GAEKV,EACT,CCAO,MAAMW,GAAN,MAAMA,EAAS,CAMpB,YAAY,CAAE,SAAAC,CAAS,EAAwC,GAAI,CACjE,KAAK,SAAWA,EAChB,KAAK,SAAW,EAChB,KAAK,MAAQ,CAAA,CAGf,SAAU,CACJ,KAAK,SACP,KAAK,OAAO,QAAQ,EACpB,KAAK,OAAS,OAChB,CAKF,OAAO,aAAuCn+B,EAAeo+B,EAAc,CAIzE,MAAMxF,EADJ,KAAK,KAAK,KAAK,IAAI,EAAG54B,CAAK,EAAI9F,CAAe,EAAIA,EACvB,EACzB,GAAAkkC,EAAO,YAAcxF,EAChB,OAAAwF,EAIH,MAAAC,EAAY,IAAI,YAAYzF,CAAK,EACvC,GAAIwF,aAAkB,YACb,OAAAC,EAGT,MAAMC,EAAOF,EAAO,YACb,OAAA,IAAIE,EAAKD,CAAS,CAAA,CAG3B,aAAuCr+B,EAAeo+B,EAAc,CAC3D,OAAAF,GAAS,aAAal+B,EAAOo+B,CAAM,CAAA,CAI5C,eAAeG,EAAkB,CAC/B,KAAM,CAAE,MAAAj2B,EAAO,OAAAC,EAAQ,MAAAC,EAAO,UAAAC,CAAU,EAAIL,GAAem2B,CAAQ,GAC/D,CAAC,KAAK,QAAU91B,EAAY,KAAK,YACnC,KAAK,QAAQ,EACb,KAAK,SAAWA,EAGhB,KAAK,OAAS,IAAI1X,EAAM,uBAAuBuX,EAAOC,EAAQC,EAAO,CACnE,YAAa,GACb,cAAe,GACf,gBAAiB,GACjB,UAAWzX,EAAM,cACjB,UAAWA,EAAM,aAAA,CAClB,EACI,KAAA,OAAO,QAAQ,OAASA,EAAM,WAC9B,KAAA,OAAO,QAAQ,KAAOA,EAAM,iBAC5B,KAAA,OAAO,QAAQ,eAAiB,QACrC,KAAK,OAAO,YAAc,GAC5B,CAKF,uBAAuBytC,EAGrB,CACA,IAAIle,EAAU4d,GAAS,gBAAgB,IAAIM,CAAM,EACjD,GAAI,CAACle,EAAS,CACZ,MAAMP,EAAQhgB,GACZ,CAAE,MAAO,KAAM,EACf,CAAE,MAAO,MAAO,EAChB,CAAC,CAAE,MAAAD,CAAA,KACD0+B,EAAO,OAAO,MAAQ1+B,EAEf,CAAE,MADK,IAAIsa,GAAY,CAAE,MAAOokB,EAAO,QAAQ,MAAO,CAC9C,EAEnB,EACKN,GAAS,kBACZA,GAAS,gBAAkB,IAAI9d,GAC7Bod,KAAa,mBACf,GAGFld,EAAU,IAAIR,GAAY,CACxB,MAAAC,EACA,OAAQ,CAAE,MAAO,QAAS,EAC1B,QAAS,CAAE,MAAO,QAAS,EAC3B,SAAUme,GAAS,eAAA,CACpB,EACM,OAAA,OAAO5d,EAAQ,SAAU,CAC9B,YAAa,CAAE,MAAO,CAAE,EACxB,WAAY,CAAE,MAAO,CAAE,EACvB,YAAa,CAAE,MAAO,CAAE,CAAA,CACzB,EACQ4d,GAAA,gBAAgB,IAAIM,EAAQle,CAAO,CAAA,CAGxC,MAAAC,EAAWD,EAAQ,gBAAgB,EACzC,OAAA4d,GAAS,eAAe,SAAW3d,EAC5B,CAAE,QAAAD,EAAS,SAAAC,CAAS,CAAA,CAGrB,gBAAgB4d,EAA+B,CAC9C,MAAA,CACL,OAAQA,EAAS,gBAAgB,EACjC,UAAWA,EAAS,GAAG,QACvB,UAAWA,EAAS,SACtB,CAAA,CAGM,iBACNA,EACAnO,EAKA,CACSmO,EAAA,gBAAgBnO,EAAM,MAAM,EAC5BmO,EAAA,GAAG,QAAUnO,EAAM,UAC5BmO,EAAS,UAAYnO,EAAM,SAAA,CAGrB,QAAQ,CACd,MAAAhwB,EACA,SAAAugB,CAAA,EACuD,CACvD,MAAM4d,EAAW,KAAK,SACtB,GAAI,CAACA,EACG,MAAA,IAAI,MAAM,aAAa,EAE3B,GAAA,CAAC,KAAK,OACF,MAAA,IAAI,MAAM,WAAW,EAK7B,MAAMM,EAAYvkC,EAAkBC,GAC3BomB,EAAA,SAAS,WAAW,MAAQ,EAC5BA,EAAA,SAAS,YAAY,MAAQvgB,EACtC,IAAI0+B,EAAY,EAGhB,KAAOA,EAAY1+B,GAAO,CACxB,MAAM2+B,EAAQ,KAAK,MAAMD,EAAYD,CAAS,EACxCG,EAAYD,EAAQF,EACpBI,EAAY,KAAK,IACrB1kC,GACA,KAAK,MAAM6F,EAAQ4+B,GAAa1kC,CAAe,CACjD,EACSqmB,EAAA,SAAS,YAAY,MAAQoe,EAGtC,KAAK,OAAO,QAAQ,IAAI,EAAG,EAAGzkC,EAAiB2kC,CAAS,EAC/CV,EAAA,gBAAgB,KAAK,OAAQQ,CAAK,EAC3CR,EAAS,GAAG,QAAU,GACtBA,EAAS,UAAY,GACZD,GAAA,eAAe,OAAOC,CAAQ,EAEvCO,GAAaxkC,EAAkB2kC,CAAA,CAGjC,KAAK,MAAQ7+B,CAAA,CAGf,MAAc,KAA+B,CAC3C,SAAA8+B,CAAA,EAC8B,CAC9B,MAAMX,EAAW,KAAK,SACtB,GAAI,CAACA,EACG,MAAA,IAAI,MAAM,aAAa,EAE3B,GAAA,CAAC,KAAK,OACF,MAAA,IAAI,MAAM,WAAW,EAG7B,MAAMY,EACJ,KAAK,KAAK,KAAK,MAAQ7kC,CAAe,EAAIA,EACxC,GAAA4kC,EAAS,WAAaC,EAAe,EACvC,MAAM,IAAI,MACR,8BAA8BD,EAAS,UAAU,MAAMC,EAAe,CAAC,EACzE,EAEF,MAAMC,EAAgB,IAAI,WACxBF,aAAoB,YAAcA,EAAWA,EAAS,MACxD,EAMML,EAAYvkC,EAAkBC,GACpC,IAAIukC,EAAY,EAChB,MAAMO,EAAW,CAAC,EAEX,KAAAP,EAAY,KAAK,OAAO,CAC7B,MAAMC,EAAQ,KAAK,MAAMD,EAAYD,CAAS,EACxCG,EAAYD,EAAQF,EACpBI,EAAY,KAAK,IACrB1kC,GACA,KAAK,MAAM,KAAK,MAAQykC,GAAa1kC,CAAe,CACtD,EAESikC,EAAA,gBAAgB,KAAK,OAAQQ,CAAK,EAGrC,MAAAO,EAAehlC,EAAkB2kC,EAAY,EAC7CM,EAAcH,EAAc,SAChCJ,EAAY,EACZA,EAAY,EAAIM,CAClB,EACMxrB,EAAUyqB,GAAA,YAAAA,EAAU,4BACxB,KAAK,OACL,EACA,EACAjkC,EACA2kC,EACAM,GAEFF,EAAS,KAAKvrB,CAAO,EAErBgrB,GAAaxkC,EAAkB2kC,CAAA,CAIjC,OAAO,QAAQ,IAAII,CAAQ,EAAE,KAAK,IAAMH,CAAQ,CAAA,CAKlD,OAAO,CACL,OAAAN,EACA,MAAAx+B,EACA,SAAAm+B,CAAA,EAC2E,CAEvE,GADC,KAAA,SAAWA,GAAY,KAAK,SAC7B,CAAC,KAAK,SACF,MAAA,IAAI,MAAM,aAAa,EAG/B,KAAK,eAAen+B,CAAK,EAEzB,KAAM,CAAE,QAAAsgB,EAAS,SAAAC,CAAA,EAAa,KAAK,uBAAuBie,CAAM,EAChEle,EAAQ,OAAO,EAEf,MAAM8e,EAAc,KAAK,gBAAgB,KAAK,QAAQ,EACtD,KAAK,QAAQ,CAAE,MAAAp/B,EAAO,SAAAugB,CAAA,CAAU,EAC3B,KAAA,iBAAiB,KAAK,SAAU6e,CAAW,CAAA,CAKlD,MAAM,SAAmC,CACvC,SAAAN,CAAA,EAC8B,CAC1B,GAAA,CAAC,KAAK,SACF,MAAA,IAAI,MAAM,aAAa,EAE/B,MAAMM,EAAc,KAAK,gBAAgB,KAAK,QAAQ,EAChD1rB,EAAU,KAAK,KAAK,CAAE,SAAAorB,EAAU,EACjC,YAAA,iBAAiB,KAAK,SAAUM,CAAW,EACzC1rB,CAAA,CAKT,MAAM,eAAyC,CAC7C,OAAA8qB,EACA,MAAAx+B,EACA,SAAAm+B,EACA,SAAAW,CAAA,EAMa,CAET,GADC,KAAA,SAAWX,GAAY,KAAK,SAC7B,CAAC,KAAK,SACF,MAAA,IAAI,MAAM,aAAa,EAG/B,KAAK,eAAen+B,CAAK,EAEzB,KAAM,CAAE,QAAAsgB,EAAS,SAAAC,CAAA,EAAa,KAAK,uBAAuBie,CAAM,EAChEle,EAAQ,OAAO,EAEf,MAAM8e,EAAc,KAAK,gBAAgB,KAAK,QAAQ,EAGtD,KAAK,QAAQ,CAAE,MAAAp/B,EAAO,SAAAugB,CAAA,CAAU,EAGhC,MAAM7M,EAAU,KAAK,KAAK,CAAE,SAAAorB,EAAU,EAEjC,YAAA,iBAAiB,KAAK,SAAUM,CAAW,EACzC1rB,CAAA,CAGT,YAAiD,OAC/C,OAAOzhB,EAAA,KAAK,SAAL,YAAAA,EAAa,OAAA,CAYxB,EATEisC,GAAO,gBAA8C,KAG9CA,GAAA,oBAAsB,QAG7BA,GAAO,eAAiB,IAAImB,GAAA,eAC1B,IAAItuC,EAAM,kBAAkB,CAAE,QAAS,EAAO,CAAA,CAChD,EA7TK,IAAMuuC,GAANpB,GCIA,MAAMqB,GAAN,MAAMA,EAAU,CAarB,YAAYxgC,EAA4B,GAAI,CAgB1C,GA5BS,KAAA,SAAA,EACH,KAAA,MAAA,EACmB,KAAA,MAAA,KAEC,KAAA,SAAA,KACY,KAAA,OAAA,KAE1B,KAAA,YAAA,GAMP,KAAA,KAAO,IAAIub,EAAY,CAC1B,IAAK,YACL,KAAMklB,GACN,QAAS,IAAM,CAACC,EAAe,EAC/B,MAAO,CACL,QAASF,GAAU,SAAS,EAC5B,MAAO,CACT,EACA,OAASrjC,IACDA,EAAA,QAAU,KAAK,WAAW,EAChCA,EAAM,MAAQ,KAAK,MACZA,EACT,CACD,EAEG6C,EAAQ,MAAO,CAEjB,KAAK,MAAQA,EAAQ,MACrB,MAAM2gC,EAAa,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EACnD,KAAK,SAAW,KAAK,KAAKA,EAAaxlC,CAAe,EAAIA,EACtD,KAAK,SAAWwlC,IAClB,KAAK,MAAQ,IAAI,WAAW,KAAK,SAAW,CAAC,EACxC,KAAA,MAAM,IAAI3gC,EAAQ,KAAK,GAE9B,KAAK,MAAQ,KAAK,IAChB2gC,EACA3gC,EAAQ,OAAS,OAAO,iBAC1B,CAAA,MAEK,KAAA,SAAWA,EAAQ,UAAY,EACpC,KAAK,MAAQ,CACf,CAIF,SAAU,CACJ,KAAK,WACP,KAAK,SAAS,QAAQ,EACtB,KAAK,SAAW,MAEd,KAAK,SACP,KAAK,OAAO,QAAQ,EACpB,KAAK,OAAS,KAChB,CAIF,eAAew/B,EAA8B,OACvC,GAAA,CAAC,KAAK,OAASA,KAAYtsC,EAAA,KAAK,QAAL,YAAAA,EAAY,SAAU,GAAK,EAAG,CACtD,KAAA,SAAWmW,GAAem2B,CAAQ,EAAE,UACzC,MAAMr6B,EAAW,IAAI,WAAW,KAAK,SAAW,CAAC,EAC7C,KAAK,OAEEA,EAAA,IAAI,KAAK,KAAK,EAEzB,KAAK,MAAQA,CAAA,CAEf,OAAO,KAAK,KAAA,CAId,YAAqC,OAC/B,IAAA2uB,GAAU5gC,EAAA,KAAK,WAAL,YAAAA,EAAe,aACzB,OAAA,KAAK,QAAU,KAAK,SACtB4gC,EAAU,KAAK,kBAAkB,GAE5BA,GAAW0M,GAAU,SAAS,CAAA,CAI/B,mBAA4C,CAC9C,GAAA,CAAC,KAAK,MACF,MAAA,IAAI,MAAM,UAAU,EAG5B,GAAI,KAAK,aAAe,CAAC,KAAK,OAAQ,CAGpC,GAFA,KAAK,YAAc,GAEf,KAAK,OAAQ,CACf,KAAM,CAAE,MAAAj3B,EAAO,OAAAC,EAAQ,MAAAC,CAAM,EAAI,KAAK,OAAO,MACzC,KAAK,WAAaF,EAAQC,EAASC,IACrC,KAAK,OAAO,QAAQ,EACpB,KAAK,OAAS,KAChB,CAEE,GAAC,KAAK,OAYC,KAAK,MAAM,SAAW,KAAK,OAAO,MAAM,KAAK,SACtD,KAAK,OAAO,MAAM,KAAO,IAAI,WAAW,KAAK,MAAM,MAAM,OAbzC,CAChB,KAAM,CAAE,MAAAF,EAAO,OAAAC,EAAQ,MAAAC,CAAU,EAAAJ,GAAe,KAAK,QAAQ,EACxD,KAAA,OAAS,IAAIrX,EAAM,iBACtB,KAAK,MACLuX,EACAC,EACAC,CACF,EACK,KAAA,OAAO,OAASzX,EAAM,WACtB,KAAA,OAAO,KAAOA,EAAM,iBACzB,KAAK,OAAO,eAAiB,QAC7B,KAAK,OAAO,YAAc,EAAA,CAI5B,KAAK,OAAO,YAAc,EAAA,CAE5B,OAAO,KAAK,MAAA,CAId,OAAO,CACL,OAAAytC,EACA,MAAAx+B,EACA,SAAAm+B,CAAA,EAC0E,CACrE,KAAK,WACR,KAAK,SAAW,IAAImB,GAAS,CAAE,SAAAnB,EAAU,GAE3C,KAAK,SAAS,OAAO,CAAE,OAAAK,EAAQ,MAAAx+B,EAAO,SAAAm+B,EAAU,EAC3C,KAAA,SAAW,KAAK,SAAS,SACzB,KAAA,MAAQ,KAAK,SAAS,KAAA,CAI7B,iBAAiB,CACf,aAAAx4B,EACA,KAAA2K,EACA,MAAAtQ,EACA,SAAAm+B,CAAA,EAMC,CACD,KAAM,CAAE,WAAAwB,EAAY,SAAAC,EAAU,UAAAC,EAAW,OAAArB,CAAO,EAAIe,GAAU,UAAU,EACxE,OAAAI,EAAW,aAAeh6B,EAC1Bi6B,EAAS,MAAQtvB,EACjBuvB,EAAU,MAAQ7/B,EAClB,KAAK,OAAO,CAAE,OAAAw+B,EAAQ,MAAAx+B,EAAO,SAAAm+B,EAAU,EAChC,IAAA,CAIT,MAAM,MAA4B,CAC5B,GAAA,CAAC,KAAK,SACF,MAAA,IAAI,MAAM,aAAa,EAE3B,OAAA,CAAC,KAAK,OAAS,KAAK,MAAM,OAAS,KAAK,MAAQ,KAClD,KAAK,MAAQ,IAAI,WAAW,KAAK,SAAW,CAAC,IAEhC,MAAM,KAAK,SAAS,SAAS,CAAE,SAAU,KAAK,MAAO,GACtD,SAAS,EAAG,KAAK,MAAQ,CAAC,CAAA,CAG1C,MAAM,UAAgC,CACpC,GAAI,KAAK,SACA,OAAA,MAAM,KAAK,KAAK,EAEzB,GAAI,KAAK,MACP,OAAO,KAAK,MAER,MAAA,IAAI,MAAM,UAAU,CAAA,CAO5B,OAAO,UAAmC,CACpC,GAAA,CAACoB,GAAU,YAAa,CAC1B,MAAMpH,EAAa,IAAI,WAAW,CAAK,EACvCoH,GAAU,YAAc,IAAIxuC,EAAM,iBAAiBonC,EAAY,EAAG,EAAG,CAAC,EAC5DoH,GAAA,YAAY,OAASxuC,EAAM,WAC3BwuC,GAAA,YAAY,KAAOxuC,EAAM,iBACnCwuC,GAAU,YAAY,eAAiB,QACvCA,GAAU,YAAY,YAAc,EAAA,CAEtC,OAAOA,GAAU,WAAA,CAWnB,OAAe,WAAY,CACrB,GAAA,CAACA,GAAU,MAAO,CACd,MAAAI,EAAa,IAAIG,GACjBF,EAAW,IAAIhlB,GAAQ,CAAE,MAAO,EAAG,EACnCilB,EAAY,IAAIjlB,GAAQ,CAAE,MAAO,EAAG,EACpC4jB,EAASz+B,GACb,CAAE,MAAO,KAAM,EACf,CAAE,MAAO,MAAO,EAChB,CAAC,CAAE,MAAAD,CAAA,IAAY,CACb,GAAI,CAACA,EACG,MAAA,IAAI,MAAM,oBAAoB,EAE9BA,EAAAhJ,GAAIgJ,EAAO8/B,CAAQ,EAC3B,MAAMppB,EAASd,GACbiqB,EACA7/B,EACA8/B,EACAC,CACF,EACA,MAAO,CAAE,MAAOnpB,GAAYF,CAAM,EAAE,QAAQ,IAAK,CAAA,CAErD,EACA+oB,GAAU,MAAQ,CAAE,WAAAI,EAAY,SAAAC,EAAU,UAAAC,EAAW,OAAArB,CAAO,CAAA,CAE9D,OAAOe,GAAU,KAAA,CAErB,EAlDEA,GAAe,YAA6C,KAgB5DA,GAAe,MAKJ,KApMN,IAAMQ,GAANR,GAqOM,MAAAC,GAAa,CAAE,KAAM,WAAY,EAEjCC,GAAkBl/B,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA,CAKvC,EAEe,SAAAy/B,GACd/oB,EACAnX,EACiB,CAkBjB,OAjBa,IAAIrC,EAGf,CACA,QAAS,CAAE,KAAM+hC,GAAY,MAAO,KAAM,EAC1C,SAAU,CAAE,KAAM,MAAO,EACzB,OAAQ,CAAE,KAAAvoB,EAAM,MAAAnX,CAAM,EACtB,QAAS,IAAM,CAAC2/B,EAAe,EAC/B,WAAY,CAAC,CAAE,OAAA7hC,EAAQ,QAAAK,CAAA,IACrBiC,EAAc;AAAA,eACLtC,EAAO,KAAK,cAAcA,EAAO,KAAK,MAAMA,EAAO,IAAI;AAAA,YAC1DK,EAAQ,IAAI,iBAAiBL,EAAO,IAAI,2BAA2BA,EAAO,KAAK;AAAA;AAAA,YAE/EK,EAAQ,IAAI;AAAA;AAAA,OAEjB,CAAA,CACJ,EACW,QAAQ,IACtB,CC7PY,IAAAgiC,IAAAA,IAEVA,EAAA,IAAM,MAENA,EAAA,MAAQ,QAERA,EAAA,OAAS,SAETA,EAAA,IAAM,MAENA,EAAA,UAAY,YAEZA,EAAA,SAAW,WAEXA,EAAA,QAAU,UAEVA,EAAA,cAAgB,gBAhBNA,IAAAA,IAAA,CAAA,CAAA,EAmBZ,SAASC,GAAgBtqC,EAAwB,CAC/C,OAAQA,EAAM,CACZ,IAAK,MACI,MAAA,GACT,IAAK,QACI,MAAA,GACT,IAAK,SACI,MAAA,GACT,IAAK,MACI,MAAA,GACT,IAAK,YACI,MAAA,GACT,IAAK,WACI,MAAA,GACT,IAAK,UACI,MAAA,GACT,IAAK,gBACI,MAAA,GACT,QACE,MAAM,IAAI,MAAM,qBAAqBA,CAAI,EAAE,CAAA,CAEjD,CAEY,IAAAuqC,IAAAA,IAGVA,EAAA,SAAW,WAGXA,EAAA,QAAU,UAIVA,EAAA,SAAW,WAVDA,IAAAA,IAAA,CAAA,CAAA,EAaZ,SAASC,GAAsBC,EAA8B,CAC3D,OAAQA,EAAM,CACZ,IAAK,WACI,MAAA,GACT,IAAK,UACI,MAAA,GACT,IAAK,WACI,MAAA,GACT,QACE,MAAM,IAAI,MAAM,uBAAuBA,CAAI,EAAE,CAAA,CAEnD,CAqBa,MAAAC,WAAqBvvC,EAAM,QAAS,CAQ/C,YAAYgO,EAA+B,GAAI,CACvC,MAAA,EACN,KAAM,CAAE,KAAAnJ,EAAM,OAAA2qC,EAAQ,QAAAt7B,EAAS,MAAA6M,EAAO,SAAA0uB,EAAU,OAAAC,GAAW1hC,EAC3D,KAAK,KAAOnJ,GAAQ,SACpB,KAAK,OAAS2qC,GAAU,GACxB,KAAK,QAAUt7B,GAAW,EAC1B,KAAK,MAAQ6M,GAAS,IAAI/gB,EAAM,MAAM,EAAK,EAAK,CAAG,EACnD,KAAK,SAAWyvC,GAAY,IAAIzvC,EAAM,QAAQ,EAAK,EAAK,CAAG,EAC3D,KAAK,OAAS0vC,GAAU,CAAA,CAE5B,CAsBa,MAAAC,GAAA,MAAAA,WAAkB3vC,EAAM,QAAS,CAiB5C,YAAYgO,EAA4B,GAAI,CACpC,KAAA,CACJ,KAAAV,EACA,cAAAsiC,EAAgB,WAChB,UAAAC,EAAY,EACZ,SAAAC,EAAW,EACX,OAAAN,EAAS,GACT,KAAAO,EAAO,IAAA,EACL/hC,EAEE,MAAA,EACN,KAAK,cAAgB4hC,EACrB,KAAK,UAAYC,EACjB,KAAK,SAAWC,EAChB,KAAK,OAASN,EACd,KAAK,KAAOO,EAEZ,KAAK,SAAWJ,GAAU,eAE1B,KAAK,KAAOriC,GAAQ,QAAQ,KAAK,QAAQ,EAAA,CAG3C,OAAO0iC,EAAmB,CACpB,KAAK,MAAQ,OACf,KAAK,KAAO,CAAC,GAEV,KAAK,KAAK,SAASA,CAAG,GACpB,KAAA,KAAK,KAAKA,CAAG,CACpB,CAGF,UAAUA,EAAmB,CACvB,KAAK,MAAQ,OAGjB,KAAK,KAAO,KAAK,KAAK,OAAQpuC,GAAMA,IAAMouC,CAAG,EAAA,CAEjD,EAvCEL,GAAO,aAAe,EAfX,IAAAM,GAAAN,GA4DN,MAAMO,EAAW,CA2BtB,YAAY,CAAE,QAAAC,EAAS,SAAAC,GAAqD,CAE1E,KAAK,QAAU,KAAK,IAAI,GAAID,GAAW,CAAC,EACxC,KAAK,QAAU,EAGf,KAAK,QAAU,IAAI,YAAY,KAAK,QAAU,EAAI,CAAC,EACnD,KAAK,aAAe,IAAI,aAAa,KAAK,QAAQ,MAAM,EACxD,KAAK,WAAa,KAAK,cAAc,KAAK,QAAS,KAAK,OAAO,EAC1D,KAAA,aAAe,IAAI5mB,EAAY,CAClC,IAAK,WACL,KAAM8mB,GACN,QAAS,IAAM,CAACC,EAAc,EAC9B,MAAO,CACL,QAAS,EACT,WAAY,KAAK,UACnB,EACA,OAAShnB,IACPA,EAAQ,QAAU,KAAK,QACvBA,EAAQ,WAAa,KAAK,WACnBA,EACT,CACD,EAGD,KAAK,SAAW,KAAK,IAAI,GAAI8mB,GAAY,CAAC,EAC1C,KAAK,SAAW,EAEhB,KAAK,SAAW,IAAI,YAAY,KAAK,SAAW,CAAC,EACjD,KAAK,cAAgB,IAAI,aAAa,KAAK,SAAS,MAAM,EAC1D,KAAK,aAAe,IAAIvmB,GAAQ,CAAE,MAAO,EAAG,EAC5C,KAAK,UAAY,KAAK,SAAS,KAAK,SAAU,KAAK,QAAQ,CAAA,CAGrD,cAAc5iB,EAAmBkpC,EAAiB,CAClD,MAAArO,EAAU,IAAI9hC,EAAM,YACxBiH,EACA,EACAkpC,EACAnwC,EAAM,kBACNA,EAAM,eACR,EACA,OAAA8hC,EAAQ,eAAiB,WACzBA,EAAQ,YAAc,GACfA,CAAA,CAGD,SAAS76B,EAAmBmpC,EAAkB,CACpD,OAAO,IAAI7mB,EAAY,CACrB,IAAK,QACL,KAAM,QACN,MAAO6mB,EACP,QAAS,IAAM,CAACG,EAAU,EAC1B,MAAOtpC,CAAA,CACR,CAAA,CAKK,eAAe,CACrB,QAAAkpC,EACA,SAAAC,CAAA,EACiD,CACjD,IAAII,EAAc,GAClB,OAAIL,EAAU,KAAK,WAAW,MAAM,SAClC,KAAK,WAAW,QAAQ,EAExB,KAAK,QAAU,KAAK,IAAI,KAAK,QAAU,EAAGA,CAAO,EACjD,KAAK,QAAU,IAAI,YAAY,KAAK,QAAU,EAAI,CAAC,EACnD,KAAK,aAAe,IAAI,aAAa,KAAK,QAAQ,MAAM,EACxD,KAAK,WAAa,KAAK,cAAc,KAAK,QAAS,KAAK,OAAO,GAE7DC,GAAY,KAAK,UAAU,OAAS,KAEtC,KAAK,SAAW,KAAK,IAAI,KAAK,SAAW,EAAGA,CAAQ,EACpD,KAAK,SAAW,IAAI,YAAY,KAAK,SAAW,CAAC,EACjD,KAAK,cAAgB,IAAI,aAAa,KAAK,SAAS,MAAM,EAC1D,KAAK,UAAY,KAAK,SAAS,KAAK,SAAU,KAAK,QAAQ,EAC7CI,EAAA,IAETA,CAAA,CAGD,eAAezuB,EAAgB5W,EAAwB,CAE7D,MAAMslC,EAAU,KAAK,SAAS1uB,CAAM,IAAM5W,EACrC,YAAA,SAAS4W,CAAM,EAAI5W,EACjBslC,CAAA,CAGD,oBAAoB1uB,EAAgB5W,EAAwB,CAElEulC,GAAY,CAAC,EAAIvlC,EACjB,MAAMslC,EAAU,KAAK,cAAc1uB,CAAM,IAAM2uB,GAAY,CAAC,EAC5D,OAAID,IACF,KAAK,cAAc1uB,CAAM,EAAI2uB,GAAY,CAAC,GAErCD,CAAA,CAGD,WACNE,EACA,CACE,SAAAC,EACA,SAAAC,EACA,OAAArB,EACA,cAAAI,EACA,SAAAE,EACA,UAAAD,CAAA,EASO,CACT,MAAMtwB,EAAOoxB,EAAY,EACzB,IAAIF,EAAU,GAGZ,OAAAA,EAAA,KAAK,eAAelxB,EAAO,EAAGqwB,GAAiBJ,EAAS,IAAS,EAAE,GACnEiB,EACFA,EACE,KAAK,eAAelxB,EAAO,EAAGqxB,EAAYC,GAAY,EAAG,GAAKJ,EAChEA,EAAU,KAAK,oBAAoBlxB,EAAO,EAAGuwB,CAAQ,GAAKW,EAC1DA,EAAU,KAAK,oBAAoBlxB,EAAO,EAAGswB,CAAS,GAAKY,EACpDA,CAAA,CAGD,cAAc1uB,EAAgB5W,EAAwB,CAE5D,MAAMslC,EAAU,KAAK,QAAQ1uB,CAAM,IAAM5W,EACpC,YAAA,QAAQ4W,CAAM,EAAI5W,EAChBslC,CAAA,CAGD,mBAAmB1uB,EAAgB5W,EAAwB,CAEjEulC,GAAY,CAAC,EAAIvlC,EACjB,MAAMslC,EAAU,KAAK,aAAa1uB,CAAM,IAAM2uB,GAAY,CAAC,EAC3D,OAAID,IACF,KAAK,aAAa1uB,CAAM,EAAI2uB,GAAY,CAAC,GAEpCD,CAAA,CAGD,UACNK,EACA,CACE,QAAAC,EACA,OAAAvB,EACA,OAAAzpB,EACA,WAAAE,EACA,MAAAO,EACA,MAAAwqB,GASFC,EACS,CAEH,MAAA1xB,EAAOuxB,EAAY,GACnBhrB,EAAQirB,GAAWvB,EAAS,IAAS,GAC3C,IAAIiB,EAAU,GAEdA,EAAU,KAAK,mBAAmBlxB,EAAO,GAAGwG,GAAA,YAAAA,EAAQ,IAAK,CAAC,GAAK0qB,EAC/DA,EAAU,KAAK,mBAAmBlxB,EAAO,GAAGwG,GAAA,YAAAA,EAAQ,IAAK,CAAC,GAAK0qB,EAC/DA,EAAU,KAAK,mBAAmBlxB,EAAO,GAAGwG,GAAA,YAAAA,EAAQ,IAAK,CAAC,GAAK0qB,EAC/DA,EAAU,KAAK,cAAclxB,EAAO,EAAGuG,CAAK,GAAK2qB,EAEjDA,EAAU,KAAK,mBAAmBlxB,EAAO,GAAG0G,GAAA,YAAAA,EAAY,IAAK,CAAC,GAAKwqB,EACnEA,EAAU,KAAK,mBAAmBlxB,EAAO,GAAG0G,GAAA,YAAAA,EAAY,IAAK,CAAC,GAAKwqB,EACnEA,EAAU,KAAK,mBAAmBlxB,EAAO,GAAG0G,GAAA,YAAAA,EAAY,IAAK,CAAC,GAAKwqB,EACnEA,EAAU,KAAK,mBAAmBlxB,EAAO,GAAG0G,GAAA,YAAAA,EAAY,IAAK,CAAC,GAAKwqB,EAEnEA,EAAU,KAAK,mBAAmBlxB,EAAO,GAAGiH,GAAA,YAAAA,EAAO,IAAK,CAAC,GAAKiqB,EAC9DA,EAAU,KAAK,mBAAmBlxB,EAAO,GAAGiH,GAAA,YAAAA,EAAO,IAAK,CAAC,GAAKiqB,EAC9DA,EAAU,KAAK,mBAAmBlxB,EAAO,IAAIiH,GAAA,YAAAA,EAAO,IAAK,CAAC,GAAKiqB,EAC/DA,EAAU,KAAK,cAAclxB,EAAO,GAAI,CAAC,GAAKkxB,EAE9CA,EAAU,KAAK,mBAAmBlxB,EAAO,IAAIyxB,GAAA,YAAAA,EAAO,IAAK,CAAC,GAAKP,EAC/DA,EAAU,KAAK,mBAAmBlxB,EAAO,IAAIyxB,GAAA,YAAAA,EAAO,IAAK,CAAC,GAAKP,EAC/DA,EAAU,KAAK,mBAAmBlxB,EAAO,IAAIyxB,GAAA,YAAAA,EAAO,IAAK,CAAC,GAAKP,EAC/DA,EAAU,KAAK,mBAAmBlxB,EAAO,IAAIyxB,GAAA,YAAAA,EAAO,IAAK,CAAC,GAAKP,EAE/D,MAAMS,EAAU,KAAK,IAAI,EAAGD,EAAO,MAAM,EACzC,QAASlwC,EAAI,EAAGA,EAAImwC,EAAS,EAAEnwC,EAAG,CAC1B,MAAAowC,EAAQ5xB,EAAO,GAAKxe,EAAI,EACpB0vC,EAAA,KAAK,mBAAmBU,EAAQ,EAAGF,EAAOlwC,CAAC,EAAE,CAAC,GAAK0vC,EACnDA,EAAA,KAAK,mBAAmBU,EAAQ,EAAGF,EAAOlwC,CAAC,EAAE,CAAC,GAAK0vC,EACnDA,EAAA,KAAK,mBAAmBU,EAAQ,EAAGF,EAAOlwC,CAAC,EAAE,CAAC,GAAK0vC,EACnDA,EAAA,KAAK,mBAAmBU,EAAQ,EAAGF,EAAOlwC,CAAC,EAAE,CAAC,GAAK0vC,CAAA,CAExD,OAAAA,CAAA,CAKT,OAAOW,EAGL,CACM,MAAAP,EAAWO,EAAM,OAAO,CAACC,EAAO,CAAE,KAAAtB,CAAA,IAAWsB,EAAQtB,EAAK,OAAQ,CAAC,EACnES,EAAc,KAAK,eAAe,CACtC,SAAUY,EAAM,OAChB,QAASP,CAAA,CACV,EAEKI,EAAS,CAAC,IAAIjxC,EAAM,QAAW,IAAIA,EAAM,OAAS,EAClD+lB,EAAS,IAAI/lB,EAAM,QACnBimB,EAAa,IAAIjmB,EAAM,WACvBwmB,EAAQ,IAAIxmB,EAAM,QAClBgxC,EAAQ,IAAIhxC,EAAM,QAExB,IAAI8wC,EAAW,EACXL,EAAUD,EAEVY,EAAM,SAAW,KAAK,aAAa,QAChC,KAAA,aAAa,MAAQA,EAAM,OAChC,KAAK,SAAWA,EAAM,OACZX,EAAA,IAGD,SAAA,CAACE,EAAW,CAAE,KAAAW,EAAM,KAAAvB,EAAM,IAAKqB,EAAM,UAAW,CAEvDX,EAAA,KAAK,WAAWE,EAAW,CACzB,SAAUG,EACV,SAAUf,EAAK,OACf,OAAQuB,EAAK,OACb,cAAejC,GAAsBiC,EAAK,aAAa,EACvD,SAAUA,EAAK,SACf,UAAWA,EAAK,SACjB,CAAA,GAAKb,EAER,IAAIc,EAAa,GACjB,UAAWvB,KAAOD,EACViB,EAAA,IAAIhB,EAAI,MAAM,EAAGA,EAAI,MAAM,EAAGA,EAAI,MAAM,EAAGA,EAAI,MAAM,EAGvDA,EAAA,MAAM,UAAU,CAAG,EACvBA,EAAI,kBAAkB,EACHA,EAAI,YAAY,MAAA,EAAQ,OAAO,EACvC,UAAUjqB,EAAQE,EAAYO,CAAK,EAE9CwpB,EAAI,MAAM,IAAIgB,EAAM,EAAGA,EAAM,EAAGA,EAAM,CAAC,EACvChB,EAAI,kBAAkB,EAEtBiB,EAAO,CAAC,EAAE,IAAIjB,EAAI,MAAM,EAAGA,EAAI,MAAM,EAAGA,EAAI,MAAM,EAAGA,EAAI,OAAO,EAChEiB,EAAO,CAAC,EAAE,IAAIjB,EAAI,SAAS,EAAGA,EAAI,SAAS,EAAGA,EAAI,SAAS,EAAG,CAAG,EAEjEuB,EACE,KAAK,UACHT,EACA,CACE,QAAS3B,GAAgBa,EAAI,IAAI,EACjC,OAAQA,EAAI,OACZ,OAAAjqB,EACA,WAAAE,EACA,MAAAO,EACA,MAAAwqB,CACF,EACAC,CAAA,GACGM,EAEKT,GAAA,EAEd,KAAK,QAAUA,EACXS,IACF,KAAK,WAAW,YAAc,IAEpBd,MAAAc,EAAA,CAEP,MAAA,CAAE,QAAAd,EAAS,YAAAD,CAAY,CAAA,CAIhC,OAAO/qB,EAAwD,CACtD,OAAA+rB,GACL/rB,EACA,KAAK,aACL,KAAK,aACL,KAAK,SACP,CAAA,CAGF,UAAU+B,EAA8D,CAC/D,OAAAiqB,GACLjqB,EACA,KAAK,aACL,KAAK,aACL,KAAK,SACP,CAAA,CAEJ,CAWa,MAAA6oB,GAAW,CAAE,KAAM,UAAW,EAE9BC,GAAiB9gC,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAqKtC,EAEY+gC,GAAa/gC,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CA0DlC,EAED,SAASgiC,GACP/rB,EACAisB,EACAC,EACAC,EACwB,CAmCxB,OAlCa,IAAIllC,EAQf,CACA,QAAS,CACP,OAAQwX,EACR,SAAUmsB,GACV,SAAU,MACV,kBAAmB,OACrB,EACA,SAAU,CAAE,OAAQnsB,CAAO,EAC3B,QAAS,IAAM,CAACosB,GAAgBC,EAAU,EAC1C,OAAQ,CAAE,OAAA9qB,EAAQ,SAAAisB,EAAU,SAAAC,EAAU,kBAAAC,CAAkB,EACxD,WAAY,CAAC,CAAE,OAAA/kC,EAAQ,QAAAK,KAAc,CACnC,KAAM,CAAE,SAAAwkC,EAAU,SAAAC,EAAU,kBAAAC,GAAsB/kC,EAC5C,CAAE,OAAA4Y,CAAAA,EAAWvY,EACnB,OAAOiC,EAAc;AAAA,UACjBsW,CAAM,MAAM5Y,EAAO,MAAM;AAAA,6BACN4Y,CAAM;AAAA,gDACaksB,CAAQ;AAAA;AAAA,gBAExCC,CAAiB,gBAAgBF,CAAQ,gBAAgBA,CAAQ;AAAA,gBACjEjsB,CAAM,YAAYA,CAAM;AAAA;AAAA;AAAA;AAAA,OAIjC,CAAA,CACH,CACD,EACW,QAAQ,MACtB,CAEA,SAASgsB,GACPjqB,EACAkqB,EACAC,EACAC,EAC0B,CAmC1B,OAlCa,IAAIllC,EAQf,CACA,QAAS,CACP,SAAUyX,GACV,SAAUksB,GACV,SAAU,MACV,kBAAmB,OACrB,EACA,SAAU,CAAE,SAAUlsB,EAAS,EAC/B,QAAS,IAAM,CAACmsB,GAAgBC,EAAU,EAC1C,OAAQ,CAAE,SAAA/oB,EAAU,SAAAkqB,EAAU,SAAAC,EAAU,kBAAAC,CAAkB,EAC1D,WAAY,CAAC,CAAE,OAAA/kC,EAAQ,QAAAK,KAAc,CACnC,KAAM,CAAE,SAAAwkC,EAAU,SAAAC,EAAU,kBAAAC,GAAsB/kC,EAC5C,CAAE,SAAA2a,CAAAA,EAAata,EACrB,OAAOiC,EAAc;AAAA,UACjBqY,CAAQ,MAAM3a,EAAO,QAAQ;AAAA,+BACR2a,CAAQ;AAAA,gDACSmqB,CAAQ;AAAA;AAAA,gBAExCC,CAAiB,gBAAgBF,CAAQ,gBAAgBA,CAAQ;AAAA,gBACjElqB,CAAQ,YAAYA,CAAQ;AAAA;AAAA;AAAA;AAAA,OAIrC,CAAA,CACH,CACD,EACW,QAAQ,QACtB,CAEA,MAAMkpB,GAAc,IAAI,aAAa,CAAC,ECr0B/B,MAAMmB,EAAc,CAIzB,YAAYC,EAA0B,CACpC,KAAK,SAAWA,EACX,KAAA,UAAY,GAAI,CAGvB,MAAMC,EAA6C,CACjD,IAAIC,EAAW,KAAK,MAAM,IAAID,CAAS,EACvC,OAAKC,IACQA,EAAAhjC,GACT,CAAE,MAAO,KAAM,EACf,CAAE,OAAQkV,CAAO,EACjB,CAAC,CAAE,MAAAnV,CAAA,IAAY,CACb,KAAM,CAAE,OAAA0W,CAAO,EAAIssB,EAAU,MAAM,CAAE,MAAAhjC,EAAO,EAC5C,OAAO,KAAK,SAAS,MAAM,CAAE,OAAA0W,EAAQ,CAAA,CAEzC,EACK,KAAA,MAAM,IAAIssB,EAAWC,CAAQ,GAE7BA,CAAA,CAEX,CAMO,MAAMC,EAAiB,CAO5B,aAAc,CACZ,KAAK,MAAQ,IAAIloB,GAAU,CAAE,MAAO,OAAO,kBAAmB,EACzD,KAAA,OAAS,IAAIwB,GAAS,CACzB,MAAO,IAAIvrB,EAAM,WACf,OAAO,kBACP,OAAO,kBACP,OAAO,kBACP,OAAO,iBAAA,CACT,CACD,EACI,KAAA,UAAY,IAAI+qB,GAAS,CAC5B,MAAO,IAAI/qB,EAAM,QACf,OAAO,kBACP,OAAO,kBACP,OAAO,iBAAA,CACT,CACD,CAAA,CAIH,MAAMkZ,EAA4C,CAChD,OAAO8nB,GAAa9nB,EAAU,CAC5B,MAAO,KAAK,MACZ,OAAQ,KAAK,OACb,UAAW,KAAK,SAAA,CACjB,CAAA,CAGH,SAASioB,EAAuC,CAC9C,OAAOD,GAAaC,EAAK,CACvB,OAAQ,KAAK,MAAA,CACd,CAAA,CAIH,YAAY1b,EAAwD,CAClE,OAAOc,GAAgBd,EAAQ,CAC7B,MAAO,KAAK,MACZ,OAAQ,KAAK,OACb,UAAW,KAAK,SAAA,CACjB,CAAA,CAIH,iBAAiBysB,EAA0B,CACnC,MAAA1rB,EAAQ,IAAIxmB,EAAM,QAClBimB,EAAa,IAAIjmB,EAAM,WACvBkZ,EAAW,IAAIlZ,EAAM,QACjBkyC,EAAA,UAAUh5B,EAAU+M,EAAYO,CAAK,EAC/C,MAAM2rB,GAAY3rB,EAAM,EAAIA,EAAM,EAAIA,EAAM,GAAK,EAEjD,IAAIiqB,EAAU,GACV,OAAA0B,IAAa,KAAK,MAAM,QAC1B,KAAK,MAAM,MAAQA,EACT1B,EAAA,IAEPv3B,EAAS,OAAO,KAAK,UAAU,KAAK,IAClC,KAAA,UAAU,MAAM,KAAKA,CAAQ,EACxBu3B,EAAA,IAEPxqB,EAAW,OAAO,KAAK,OAAO,KAAK,IACjC,KAAA,OAAO,MAAM,KAAKA,CAAU,EACvBwqB,EAAA,IAELA,CAAA,CAIT,OAAO2B,EAAiC,CACtC,OAAAA,EAAO,kBAAkB,EAClB,KAAK,iBAAiBA,EAAO,WAAW,CAAA,CAEnD,CAEO,MAAMC,EAAoB,CAI/B,aAAc,CACP,KAAA,MAAQ,IAAIpmB,GAAS,CAAE,MAAO,IAAIjsB,EAAM,QAAW,EACnD,KAAA,OAAS,IAAI+qB,GAAS,CAAE,MAAO,IAAI/qB,EAAM,QAAW,CAAA,CAI3D,MAAMkZ,EAA4C,CAChD,MAAMo5B,EAAU1gB,GAAI,KAAK,MAAO1Y,CAAQ,EACjC,OAAAnT,GAAIusC,EAAS,KAAK,MAAM,CAAA,CAGjC,SAASnR,EAAuC,CACvC,OAAAvP,GAAI,KAAK,MAAOuP,CAAG,CAAA,CAI5B,cAAc3Z,EAA8D,CAC1E,OAAO,IAAI9a,EAAK,CACd,QAAS,CAAE,SAAUyX,GAAU,MAAO,OAAQ,OAAQ,MAAO,EAC7D,SAAU,CAAE,SAAUA,EAAS,EAC/B,OAAQ,CAAE,SAAAqD,EAAU,MAAO,KAAK,MAAO,OAAQ,KAAK,MAAO,EAC3D,WAAY,CAAC,CAAE,OAAA3a,EAAQ,QAAAK,KAAc,CACnC,KAAM,CAAE,SAAAsa,EAAU,MAAA+qB,EAAO,OAAAxwB,CAAW,EAAAlV,EACpC,MAAI,CAAC2a,GAAY,CAAC+qB,GAAS,CAACxwB,EACnB,CAAC,GAAG7U,EAAQ,QAAQ,cAAc,EAEpCiC,EAAc;AAAA,YACjBjC,EAAQ,QAAQ;AAAA,iCACKsa,CAAQ;AAAA,cAC3Bta,EAAQ,QAAQ,YAAYsa,CAAQ;AAAA,cACpCta,EAAQ,QAAQ,YAAYsa,CAAQ;AAAA,cACpCta,EAAQ,QAAQ,WAAWsa,CAAQ;AAAA;AAAA,cAEnCta,EAAQ,QAAQ,aAAaqlC,CAAK,MAAM/qB,CAAQ,aAAazF,CAAM;AAAA;AAAA;AAAA,gBAGjEyF,CAAQ,cAAcA,CAAQ,cAAcA,CAAQ;AAAA,gBACpDA,CAAQ,cAAcA,CAAQ,cAAcA,CAAQ;AAAA,gBACpDA,CAAQ,cAAcA,CAAQ,cAAcA,CAAQ;AAAA;AAAA,oBAEhD+qB,CAAK,sBAAsBA,CAAK;AAAA,cACtCrlC,EAAQ,QAAQ;AAAA,cAChBA,EAAQ,QAAQ;AAAA;AAAA,SAErB,CAAA,CACH,CACD,EAAE,QAAQ,QAAA,CAIb,iBAAiBglC,EAA0B,CACzC,MAAMK,EAAQ,IAAIvyC,EAAM,QAAQ,EAAE,eAAekyC,CAAS,EACpDnwB,EAAS,IAAI/hB,EAAM,QAAU,EAAA,oBAAoBkyC,EAAW,CAAC,EAE7DzB,EACJ,CAAC8B,EAAM,OAAO,KAAK,MAAM,KAAK,GAAK,CAACxwB,EAAO,OAAO,KAAK,OAAO,KAAK,EACrE,OAAI0uB,IACG,KAAA,MAAM,MAAM,KAAK8B,CAAK,EACtB,KAAA,OAAO,MAAM,KAAKxwB,CAAM,GAExB0uB,CAAA,CAIT,OAAO2B,EAAiC,CACtC,OAAAA,EAAO,kBAAkB,EAClB,KAAK,iBAAiBA,EAAO,WAAW,CAAA,CAEnD,CAqCa,MAAAI,WAAuBxyC,EAAM,QAAS,CAUjD,YAAY,CACV,UAAAsX,EACA,UAAAy6B,EACA,aAAAU,EACA,UAAA7kC,EACA,OAAAd,CAAA,EAYC,CAUD,GATM,MAAA,EAEN,KAAK,UAAYwK,GAAa,EAC9B,KAAK,UAAYy6B,EACjB,KAAK,aAAeU,EACpB,KAAK,YAAc3lC,EACnB,KAAK,QAAU,EACf,KAAK,eAAiB,EAElBc,EAAW,CACP,MAAA8kC,EAAc9kC,EAAU,IAAI,EAE3B,OAAA,OAAO,KAAM8kC,CAAW,CAAA,CACjC,CAGF,eAAgB,CACd,KAAK,SAAW,CAAA,CAGlB,sBAAuB,CACrB,KAAK,gBAAkB,EACvB,KAAK,SAAW,CAAA,CAGlB,IAAI,YAAYvnC,EAAgB,CAC1BA,GACF,KAAK,cAAc,CACrB,CAEJ,CCzQO,MAAMwnC,GAAN,MAAMA,EAAiB,CAqB5B,YAAY,CACV,UAAA7tB,EACA,UAAAQ,CACF,EAAkD,GAAI,CACpD,GAxBK,KAAA,KAAA,EACK,KAAA,UAAA,EACE,KAAA,YAAA,IAAItlB,EAAM,QACX,KAAA,WAAA,IAAIA,EAAM,QACP,KAAA,cAAA,IAAIA,EAAM,QAId,KAAA,UAAA,EACA,KAAA,UAAA,EACkC,KAAA,OAAA,KAC9C,KAAA,QAA8B,CAAC,EACrB,KAAA,QAAA,GACO,KAAA,eAAA,GAGW,KAAA,SAAA,KAC5B,KAAA,eACE,CAAC,EAMG,CAAC+P,GACG,MAAA,IAAI,MAAM,uCAAuC,EAEzD,KAAK,UAAY+U,GAAa,GAC9B,KAAK,UAAYQ,GAAa,EAAA,CAGhC,SAAU,CACJ,KAAK,SACP,KAAK,OAAO,QAAQ,EACpB,KAAK,OAAS,KAChB,CAKF,aAAwC,CACtC,OAAI,KAAK,OACA,KAAK,OAAO,SAEdqtB,GAAiB,aAAA,CA0B1B,gBAAgBC,EAGd,CACA,IAAIl7B,EAAY,EAChB,MAAMm7B,EAAUD,EAAY,IAAKt7B,GAAc,CAC7C,MAAMiI,EAAO7H,EAEPo7B,EAAU,KAAK,KAAKx7B,EAAYnO,CAAe,EAAIA,EAC5C,OAAAuO,GAAAo7B,EACN,CAAE,KAAAvzB,EAAM,MAAOjI,CAAU,CAAA,CACjC,EACM,MAAA,CAAE,UAAAI,EAAW,QAAAm7B,CAAQ,CAAA,CAK9B,eAAe,CAAE,UAAAn7B,GAAoC,CACnD,GAAI,KAAK,SAAWA,GAAa,IAAM,KAAK,UACnC,MAAA,GAET,KAAK,QAAQ,EAIP,MAAAmqB,EAAcxqB,GAAeK,GAAa,CAAC,EAC3C,CAAE,MAAAH,EAAO,OAAAC,EAAQ,MAAAC,CAAU,EAAAoqB,EAajC,GAZA,KAAK,UAAYA,EAAY,UAC7B,KAAK,OAAS,IAAI7hC,EAAM,uBAAuBuX,EAAOC,EAAQC,EAAO,CACnE,YAAa,GACb,cAAe,GACf,gBAAiB,GACjB,UAAWzX,EAAM,cACjB,UAAWA,EAAM,cACjB,OAAQA,EAAM,kBACd,KAAMA,EAAM,eAAA,CACb,EACD,KAAK,OAAO,YAAc,GAEtB,KAAK,UAAW,CAClB,MAAM+yC,EAAU,KAAK,OAAO,QAAQ,MAAM,EACpCC,EAAU,KAAK,OAAO,QAAQ,MAAM,EAC1CA,EAAQ,OAAShzC,EAAM,WACvBgzC,EAAQ,KAAOhzC,EAAM,iBACrBgzC,EAAQ,eAAiB,QACzB,KAAK,OAAO,SAAW,CAAC,KAAK,OAAO,QAASD,EAASC,CAAO,CAAA,KACxD,CACL,MAAMA,EAAU,KAAK,OAAO,QAAQ,MAAM,EAC1CA,EAAQ,OAAShzC,EAAM,WACvBgzC,EAAQ,KAAOhzC,EAAM,iBACrBgzC,EAAQ,eAAiB,QACzB,KAAK,OAAO,SAAW,CAAC,KAAK,OAAO,QAASA,CAAO,CAAA,CAG/C,MAAA,EAAA,CAGD,gBAAgB5F,EAA+B,CAC9C,MAAA,CACL,OAAQA,EAAS,gBAAgB,EACjC,UAAWA,EAAS,GAAG,QACvB,UAAWA,EAAS,SACtB,CAAA,CAGM,iBACNA,EACAnO,EAKA,CACSmO,EAAA,gBAAgBnO,EAAM,MAAM,EAC5BmO,EAAA,GAAG,QAAUnO,EAAM,UAC5BmO,EAAS,UAAYnO,EAAM,SAAA,CAK7B,uBACE8S,EACAU,EACA,CACA,MAAMQ,EAAelB,GAAaU,EAClC,GAAI,CAACQ,EACG,MAAA,IAAI,MAAM,mDAAmD,EAGrE,IAAI1jB,EAAUojB,GAAiB,iBAAiB,IAAIM,CAAY,EAChE,GAAI,CAAC1jB,EAAS,CACZ,MAAMP,EAAQhgB,GACZ,CAAE,MAAO,KAAM,EACf,CAAC,EACD,CAAC,CAAE,MAAAD,GAASmkC,EAAU,CAAE,MAAAC,KAAY,CAQlC,GAPIpB,IACFA,EAAU,OAAO,MAAQhjC,GAEvB0jC,IACFA,EAAa,OAAO,MAAQ1jC,GAG1B,KAAK,UACH,GAAC,KAAK,UAQR,GAAI0jC,EAAc,CAChB,MAAMW,EAAS1qB,GAAkB+pB,EAAa,QAAQ,QAAQ,EAC9DU,EAAM,KAAKC,CAAM,UACRrB,EAAW,CACpB,MAAMvqB,EAAWhC,GAAiBusB,EAAU,QAAQ,MAAM,EACpDqB,EAAS1qB,GAAkBlB,CAAQ,EACzC2rB,EAAM,KAAKC,CAAM,CAAA,KAEX,OAAA,IAAI,MAAM,4BAA4B,UAf1CrB,EAAW,CACb,MAAMqB,EAAS5qB,GAAoBupB,EAAU,QAAQ,MAAM,EAC3DoB,EAAM,KAAKC,CAAM,CAAA,KAEX,OAAA,IAAI,MAAM,4BAA4B,MAc3C,CACD,GAAC,KAAK,UAwBH,CACD,IAAA5rB,EACJ,GAAIirB,EACFjrB,EAAWirB,EAAa,QAAQ,iBACvBV,EACEvqB,EAAAhC,GAAiBusB,EAAU,QAAQ,MAAM,MAE9C,OAAA,IAAI,MAAM,4BAA4B,EAE9C,MAAMsB,EAAgB3hB,GACpB7J,GAAcL,CAAQ,EAAE,QAAQ,OAChCmrB,GAAiB,iBACnB,EACMW,EAAY1hB,GAChB/J,GAAcL,CAAQ,EAAE,QAAQ,QAChCtb,EAAU,QAAS,EAAG,CACxB,EACAsb,EAAWO,GAAgB,CACzB,SAAAP,EACA,OAAQ6rB,EACR,QAASC,CAAA,CACV,EACD,MAAMF,EAAS9qB,GACbd,EACAtb,EAAU,OAAQ,CAAC,EAAG,EAAGzD,GAAcC,EAAY,CAAC,CACtD,EACAyqC,EAAM,KAAKC,CAAM,CAAA,SAjDbrB,EAAW,CACb,MAAMsB,EAAgB3hB,GACpB/L,GAAYosB,EAAU,QAAQ,MAAM,EAAE,QAAQ,OAC9CY,GAAiB,iBACnB,EAEMW,EAAY1hB,GAChBjM,GAAYosB,EAAU,QAAQ,MAAM,EAAE,QAAQ,QAC9C7lC,EAAU,QAAS,EAAG,CACxB,EACMuZ,EAASI,GAAc,CAC3B,OAAQksB,EAAU,QAAQ,OAC1B,OAAQsB,EACR,QAASC,CAAA,CACV,EACKF,EAASjrB,GACb1C,EACAvZ,EAAU,OAAQ,CAAC,EAAG,EAAGzD,GAAcC,EAAY,CAAC,CACtD,EACAyqC,EAAM,KAAKC,CAAM,CAAA,KAEX,OAAA,IAAI,MAAM,4BAA4B,EA8BhD,GAAI,CAACrB,EACG,MAAA,IAAI,MAAM,4BAA4B,CAC9C,CAEF,GAAIA,EAAW,CACb,MAAMwB,EAAc3qB,GAClBmpB,EAAU,QAAQ,OAClBY,GAAiB,kBACjBA,GAAiB,eACjBA,GAAiB,iBACnB,EACAQ,EAAM,KAAKI,CAAW,CAAA,CAExB,GAAId,EAAc,CAChB,MAAMc,EAActqB,GAClBwpB,EAAa,QAAQ,SACrBE,GAAiB,kBACjBA,GAAiB,eACjBA,GAAiB,iBACnB,EACAQ,EAAM,KAAKI,CAAW,CAAA,CAEjB,CAEX,EACAhkB,EAAU,IAAIR,GAAY,CACxB,MAAAC,EACA,OAAQ,CAAE,MAAO,QAAS,EAC1B,QAAS,CAAC,EACV,SAAU,KAAK,UACX2jB,GAAiB,mBACjBA,GAAiB,eAAA,CAEtB,EAEgBA,GAAA,iBAAiB,IAAIM,EAAc1jB,CAAO,CAAA,CAEtD,OAAA,OAAOA,EAAQ,SAAU,CAC9B,YAAa,CAAE,MAAO,CAAE,EACxB,WAAY,CAAE,MAAO,CAAE,EACvB,YAAa,CAAE,MAAO,CAAE,CAAA,CACzB,EAEK,MAAAC,EAAWD,EAAQ,gBAAgB,EACzC,OAAAojB,GAAiB,eAAe,SAAWnjB,EACpC,CAAE,QAAAD,EAAS,SAAAC,CAAS,CAAA,CAiB7B,SAAS,CACP,UAAAuiB,EACA,aAAAU,EACA,KAAAlzB,EACA,MAAAtQ,EACA,SAAAm+B,CAAA,EAOC,CACG,GAAA,CAAC,KAAK,OACF,MAAA,IAAI,MAAM,gDAAgD,EAE9D,GAAA7tB,EAAOtQ,EAAQ,KAAK,UAChB,MAAA,IAAI,MAAM,gCAAgC,EAGlD,KAAM,CAAE,QAAAsgB,EAAS,SAAAC,CAAS,EAAI,KAAK,uBACjCuiB,EACAU,CACF,EACAljB,EAAQ,OAAO,EAET,MAAA8e,EAAc,KAAK,gBAAgBjB,CAAQ,EAI3CoG,EACJ,KAAK,MAAMj0B,EAAOtQ,GAAS9F,CAAe,EAAIA,EAC1CukC,EAAYvkC,EAAkBC,GAKpC,IAJSomB,EAAA,SAAS,WAAW,MAAQjQ,EAC5BiQ,EAAA,SAAS,YAAY,MAAQvgB,EAG/BsQ,EAAOi0B,GAAU,CACtB,MAAM5F,EAAQ,KAAK,MAAMruB,EAAOmuB,CAAS,EAChCle,EAAA,SAAS,YAAY,MAAQoe,EAEtC,MAAMC,EAAYD,EAAQF,EACpB+F,EAAc,KAAK,OAAOl0B,EAAOsuB,GAAa1kC,CAAe,EAC7D2kC,EAAY,KAAK,IACrB1kC,GACA,KAAK,MAAMoqC,EAAW3F,GAAa1kC,CAAe,CACpD,EAGA,KAAK,OAAO,QAAQ,IAClB,EACAsqC,EACAtqC,EACA2kC,EAAY2F,CACd,EACSrG,EAAA,gBAAgB,KAAK,OAAQQ,CAAK,EAC3CR,EAAS,GAAG,QAAU,GACtBA,EAAS,UAAY,GACJuF,GAAA,eAAe,OAAOvF,CAAQ,EAE/C7tB,GAAQpW,GAAmB2kC,EAAY2F,EAAA,CAGpC,YAAA,iBAAiBrG,EAAUiB,CAAW,EACpC,CAAE,SAAAmF,CAAS,CAAA,CAGpB,gBAAgB,CACd,SAAApG,EACA,MAAAsG,EACA,KAAAC,EACA,OAAAC,EACA,WAAA7qB,EACA,WAAA8qB,EACA,SAAAC,EACA,aAAAC,CAAA,EAaC,OACI,KAAA,YAAY,KAAKH,EAAO,WAAW,EACjCA,EAAA,iBAAiB,KAAK,UAAU,EAChCA,EAAA,kBAAkB,KAAK,aAAa,EAC3CjB,GAAiB,kBAAkB,MAAM,KAAK,KAAK,UAAU,EAC7DA,GAAiB,eAAe,MAAM,KAAK,KAAK,aAAa,EAC7DA,GAAiB,kBAAkB,MAAQ5pB,EAE3C,KAAK,KAAO4qB,EACP,KAAA,UAAYA,EAAOG,EAAS,KAEjC,MAAME,EAAkC,CAAC,EACnCN,EAAA,SAAUtlC,GAAS,CACnBA,aAAgBokC,KACd,CAACoB,EAAO,QAAUA,EAAO,OAAO,KAAKxlC,EAAK,MAAM,IAClD4lC,EAAc,KAAK5lC,CAAI,CAE3B,CACD,EAEK,MAAA6lC,MAAqB,IACrBP,EAAA,gBAAiBtlC,GAAS,CAC9B,GAAIA,aAAgB6hC,GAAW,CAC7B,IAAIiE,EAAW9lC,EAAK,OACpB,KAAO8lC,GAAY,MAAQ,EAAEA,aAAoBC,KAC/CD,EAAWA,EAAS,OAElBA,GAAY,MAEdD,EAAe,IAAI7lC,CAAI,CACzB,CACF,CACD,EACK,MAAAgmC,EAAc,MAAM,KAAKH,CAAc,EAE7C,UAAW7B,KAAU4B,EACf,GAAA,EACF9yC,EAAAkxC,EAAO,cAAP,MAAAlxC,EAAA,KAAAkxC,EAAqB,CACnB,SAAAhF,EACA,OAAAgF,EACA,KAAM,KAAK,KACX,UAAW,KAAK,UAChB,YAAa,KAAK,YAClB,OAAAwB,EACA,WAAAC,EACA,YAAAO,EACA,WACEL,GAAgB3B,aAAkB+B,GAC9BJ,EAAa,IAAI3B,CAAM,EACvB,MAAA,SAEDtvB,EAAO,CACN,QAAA,MAAM,oBAAqBA,CAAK,EACxCsvB,EAAO,UAAY,OACnBA,EAAO,aAAe,OACtBA,EAAO,eAAiBtvB,CAAA,CAI5B,MAAMuxB,EAAsC,CAAC,EACvCX,EAAA,gBAAiBtlC,GAAS,CAC1BA,aAAgBokC,KACd,CAACoB,EAAO,QAAUA,EAAO,OAAO,KAAKxlC,EAAK,MAAM,IAClDimC,EAAkB,KAAKjmC,CAAI,CAE/B,CACD,EAED,MAAMwkC,EAAcyB,EAAkB,IACnCtC,GAAcA,EAAU,SAC3B,EACM,CAAE,UAAAr6B,EAAW,QAAS48B,CAC1B,EAAA,KAAK,gBAAgB1B,CAAW,EAE5B2B,EAAmBT,EAAS,QAAQ,OAAO,CAACU,EAAU3B,KACjD2B,EAAA,IAAI3B,EAAQ,KAAMA,CAAO,EAC3B2B,GACF,IAAA,GAAuC,EAE9C,KAAK,QAAU,CAAC,EAChB,KAAK,UAAY,EAEjBF,EAAW,QAAQ,CAAC,CAAE,KAAA/0B,EAAM,MAAAtQ,CAAA,EAASF,IAAU,CACvC,MAAAX,EAAOimC,EAAkBtlC,CAAK,EAC9B0lC,EAAeF,EAAiB,IAAInmC,CAAI,EAC1CqmC,GAAgBA,EAAa,QAAUrmC,EAAK,WAC9CA,EAAK,qBAAqB,EAGtB,KAAA,CAAE,UAAA2jC,EAAW,aAAAU,CAAA,EAAiBrkC,EAC/B,IAAA2jC,GAAaU,IAAiBxjC,EAAQ,EAAG,CACtC,KAAA,CAAE,QAAAylC,EAAS,eAAAC,CAAA,EAAmBvmC,EACpC,KAAK,QAAQ,KAAK,CAChB,KAAAA,EACA,UAAA2jC,EACA,aAAAU,EACA,QAAAiC,EACA,eAAAC,EACA,KAAAp1B,EACA,MAAAtQ,CAAA,CACD,EACD,KAAK,UAAY,KAAK,IAAI,KAAK,UAAWsQ,EAAOtQ,CAAK,CAAA,CACxD,CACD,EACD,KAAM,CAAE,cAAA2lC,EAAe,eAAAC,CAAe,EAAIf,EAAS,cACjD,KAAK,OACP,EACA,YAAK,QAAUA,EAAS,SAAWc,EAAgB,EAAI,GACvD,KAAK,eAAiBd,EAAS,gBAAkBe,EAAiB,EAAI,GAE/D,CACL,YAAa,CAACA,EACd,QAAS,KAAK,QACd,eAAgB,KAAK,eACrB,kBAAAR,EACA,SAAU,IAAM,CACT,KAAA,eAAe,CAAE,UAAA38B,EAAW,EAEjC,SAAW,CAAE,KAAAtJ,EAAM,KAAAmR,EAAM,MAAAtQ,CAAM,IAAK,KAAK,QAAS,CAC1C,KAAA,CAAE,UAAA8iC,EAAW,aAAAU,CAAA,EAAiBrkC,GAC/B2jC,GAAaU,IAAiBxjC,EAAQ,GACzC,KAAK,SAAS,CAAE,UAAA8iC,EAAW,aAAAU,EAAc,KAAAlzB,EAAM,MAAAtQ,EAAO,SAAAm+B,EAAU,CAClE,CAEJ,EACA,SAAU,SAAY,CACd,MAAA0H,EAAW,KAAK,YAAY,EAC9B,KAAK,eAAe,SAAW,IACjC,KAAK,eAAiB,CACpB,IAAIvnB,GAAoB,CAAE,MAAOunB,EAAS,CAAC,EAAG,IAAK,YAAa,EAChE,IAAIvnB,GAAoB,CAAE,MAAOunB,EAAS,CAAC,EAAG,IAAK,WAAa,CAAA,CAClE,GAEF,KAAK,eAAe,CAAC,EAAE,MAAQA,EAAS,CAAC,EACzC,KAAK,eAAe,CAAC,EAAE,MAAQA,EAAS,CAAC,EAEpC,KAAK,WACR,KAAK,SAAW,IAAIvG,GAAS,CAAE,SAAAnB,EAAU,GAE3C,MAAMW,EAAW,KAAK,SAChBhN,EAAQ,KAAK,UAAY,EAAI,EAC7BgU,EAAQhH,EAAS,aACrB,KAAK,UAAYhN,EACjB,IAAI,YAAY,CAAC,CACnB,EAEM0M,EAASz+B,GACb,CAAE,MAAO,KAAM,EACf,CAAE,MAAO,MAAO,EAChB,CAAC,CAAE,MAAAD,CAAA,KA+CM,CAAE,MA9CK,IAAIrC,EAAK,CACrB,QAAS,CACP,MAAO,MACP,WAAY,kBACZ,WAAY,iBACd,EACA,SAAU,CAAE,MAAO,MAAO,EAC1B,OAAQ,CACN,MAAAqC,EACA,WAAY,KAAK,eAAe,CAAC,EACjC,WAAY,KAAK,eAAe,CAAC,CACnC,EACA,WAAY,CAAC,CAAE,OAAAlC,EAAQ,QAAAK,KACjB,KAAK,UACAiC,EAAc;AAAA,sCACDtC,EAAO,KAAK;AAAA;AAAA;AAAA,2BAGvBA,EAAO,KAAK;AAAA,gDACSA,EAAO,UAAU;AAAA;AAAA,gDAEjBA,EAAO,UAAU;AAAA;AAAA;AAAA,sCAG3BA,EAAO,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,sBAK5BK,EAAQ,KAAK;AAAA,mBAChB,EAEIiC,EAAc;AAAA,oCACDtC,EAAO,KAAK;AAAA;AAAA,kDAEEA,EAAO,UAAU;AAAA;AAAA,oCAE/BA,EAAO,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,oBAK5BK,EAAQ,KAAK;AAAA,iBAChB,CACH,CACD,EAAE,QAAQ,KACI,EAEnB,EAEO,OAAA,MAAM6gC,EAAS,eAAe,CACnC,OAAAN,EACA,MAAO,KAAK,UAAY1M,EACxB,SAAAqM,EACA,SAAU2H,CAAA,CACX,CAAA,CAEL,CAAA,CAKF,cAAcC,EAAkC,CAC9C,GAAI,KAAK,QAAQ,SAAWA,EAAa,OACvC,MAAO,CAAE,cAAe,GAAM,eAAgB,EAAK,EAErD,MAAMH,EAAiB,KAAK,QAAQ,KAAK,CAACviC,EAAMvR,IAAM,CAC9C,MAAAk0C,EAAQD,EAAaj0C,CAAC,EAC5B,OACEuR,EAAK,OAAS2iC,EAAM,MACpB3iC,EAAK,OAAS2iC,EAAM,MACpB3iC,EAAK,QAAU2iC,EAAM,OACrB3iC,EAAK,iBAAmB2iC,EAAM,cAAA,CAEjC,EACD,OAAIJ,EACK,CAAE,cAAe,GAAM,eAAgB,EAAK,EAK9C,CAAE,cAHa,KAAK,QAAQ,KAAK,CAACviC,EAAMvR,IACtCuR,EAAK,UAAY0iC,EAAaj0C,CAAC,EAAE,OACzC,EACuB,eAAA8zC,CAAe,CAAA,CAE3C,EA/mBSlC,GAAA,kBAAoB,IAAI5nB,GAAS,CAAE,MAAO,IAAI/qB,EAAM,QAAW,EAC/D2yC,GAAA,eAAiB,IAAI5nB,GAAS,CAAE,MAAO,IAAI/qB,EAAM,QAAW,EACnE2yC,GAAO,kBAAoB,IAAIlpB,GAAS,CAAE,MAAO,GAAM,EAwCvDkpB,GAAO,cAAgB,IAAM,CAC3B,KAAM,CAAE,MAAAp7B,EAAO,OAAAC,EAAQ,MAAAC,EAAO,UAAAC,CAAU,EAAIL,GAAe,CAAC,EACtD+vB,EAAa,IAAI,YAAY1vB,EAAY,CAAC,EAC1CoqB,EAAU,IAAI9hC,EAAM,iBACxBonC,EACA7vB,EACAC,EACAC,CACF,EACA,OAAAqqB,EAAQ,OAAS9hC,EAAM,kBACvB8hC,EAAQ,KAAO9hC,EAAM,gBACrB8hC,EAAQ,eAAiB,WACzBA,EAAQ,YAAc,GACfA,CAAA,GACN,EAEH6Q,GAAO,cACE,CAACA,GAAiB,aAAcA,GAAiB,YAAY,EAqOtEA,GAAO,mBAAqB,IAAItjB,GAC9Bod,KAAa,0BACf,EACAkG,GAAO,gBAAkB,IAAItjB,GAC3Bod,KAAa,wBACf,EACOkG,GAAA,qBAAuB,QAI9BA,GAAO,eAAiB,IAAIrE,GAAA,eAC1B,IAAItuC,EAAM,kBAAkB,CAAE,QAAS,EAAO,CAAA,CAChD,EAlTK,IAAMk1C,GAANvC,GClDM,MAAAwC,WAAsBn1C,EAAM,uBAAwB,CAC/D,aAAc,CACN,MAAA,EACN,KAAK,aAAa,WAAY,IAAIA,EAAM,gBAAgBG,GAAe,CAAC,CAAC,EACzE,KAAK,SAAS,IAAIH,EAAM,gBAAgBI,GAAc,CAAC,CAAC,CAAA,CAE5D,CAGA,MAAMD,GAAgB,IAAI,aAAa,CACrC,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,CACvC,CAAC,EAEKC,GAAe,IAAI,YAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAAC,ECqT1Cg1C,GAAA,MAAAA,WAAsBp1C,EAAM,IAAK,CAyI5C,YAAYgO,EAA+B,CACzC,GAAI,CAACA,EACG,MAAA,IAAI,MAAM,oCAAoC,EAElD,GAAA,CAACA,EAAQ,SACL,MAAA,IAAI,MAAM,+CAA+C,EAG3D,MAAAT,EAAW6nC,GAAc,aAAa,EAC5C,OAAO,OAAO7nC,EAAUS,EAAQ,eAAiB,CAAA,CAAE,EAEnD,MAAMw+B,EAAUC,GAAW,EACrB4I,EAAqBrnC,EAAQ,oBAAsB,GACnDsnC,EAAW,IAAIH,GACf3lB,EAAW,IAAIxvB,EAAM,eAAe,CACxC,YAAaA,EAAM,MACnB,aAAcgO,EAAQ,cAAgBw+B,EAAQ,YAC9C,eAAgBx+B,EAAQ,gBAAkBw+B,EAAQ,cAClD,SAAAj/B,EACA,mBAAA8nC,EACA,YAAarnC,EAAQ,aAAe,GACpC,UAAWA,EAAQ,WAAa,GAChC,WAAYA,EAAQ,YAAc,GAClC,KAAMhO,EAAM,WACZ,cAAe,EAAA,CAChB,EAED,MAAMs1C,EAAU9lB,CAAQ,EA3Jb,KAAA,WAAA,IAAIxvB,EAAM,QAuBX,KAAA,UAAA,GACM,KAAA,gBAAA,GAI0B,KAAA,gBAAA,KAChC,KAAA,UAAA,EACG,KAAA,aAAA,EAIf,KAAA,aAAmC,CAAC,EAE1B,KAAA,QAAA,GACE,KAAA,UAAA,GACG,KAAA,aAAA,EACkB,KAAA,WAAA,KACjB,KAAA,cAAA,GAChB,KAAA,aAAe,IAAIA,EAAM,QAAA,EAAU,UAAU,OAAO,iBAAiB,EACrE,KAAA,UAAY,IAAIA,EAAM,QAAQ,EAAE,UAAU,CAAC,EAC9B,KAAA,WAAA,IAAI,YAAY,CAAC,EAmBT,KAAA,mBAAA,EAEW,KAAA,UAAA,KAChC,KAAA,UAAoD,CAAC,EAC1C,KAAA,SAAA,GACX,KAAA,WAGQ,IACR,KAAA,kBACM,IACN,KAAA,aAA2D,CAAC,EAiB5D,KAAA,iBAQQ,IACR,KAAA,WAMM,CAAC,EACY,KAAA,iBAAA,EAIT,KAAA,QAAA,EAUA,KAAA,QAAA,EAEW,KAAA,mBAAA,GACJ,KAAA,eAAA,GACL,KAAA,UAAA,EACA,KAAA,UAAA,EACA,KAAA,UAAA,EAg4BZ,KAAQ,gBAAkB,GAl2BxB,KAAK,SAAWwvB,EAChB,KAAK,SAAWjiB,EAGhB,KAAK,cAAgB,GAMrB,KAAK,SAAWS,EAAQ,SACxB,KAAK,QAAUA,EAAQ,QACvB,KAAK,MAAQ,GACR,KAAA,WAAaA,EAAQ,YAAc,GACnC,KAAA,UAAYA,EAAQ,WAAa,GAEtC,KAAK,UAAYA,EAAQ,WAAa,KAAK,KAAK,CAAG,EAC9C,KAAA,eAAiBA,EAAQ,gBAAkB,EAC3C,KAAA,eAAiBA,EAAQ,gBAAkB,IAC3C,KAAA,eAAiBA,EAAQ,gBAAkB,GAC3C,KAAA,UAAYA,EAAQ,WAAa,GACtC,KAAK,SAAWA,EAAQ,UAAY,IAAO,EAAM,KAC5C,KAAA,WAAaA,EAAQ,YAAc,GAEnC,KAAA,cAAgBA,EAAQ,eAAiB,EACzC,KAAA,WAAaA,EAAQ,YAAc,GACnC,KAAA,cAAgBA,EAAQ,eAAiB,EACzC,KAAA,cAAgBA,EAAQ,eAAiB,EACzC,KAAA,QAAUA,EAAQ,SAAW,EAC7B,KAAA,OAASA,EAAQ,QAAU,IAC3B,KAAA,gBAAkBA,EAAQ,iBAAmB,EAC7C,KAAA,aAAeA,EAAQ,cAAgB,GAEvC,KAAA,WAAaA,EAAQ,YAAc,GACnC,KAAA,kBAAoBA,EAAQ,mBAAqB,EAEjD,KAAA,UAAYA,EAAQ,WAAa,GAEjC,KAAA,eAAiBA,EAAQ,gBAAkB,KAAK,UAChD,KAAA,kBAAoBA,EAAQ,mBAAqB,GACtD,KAAK,cAAgBA,EAAQ,cACxB,KAAA,cAAgBA,EAAQ,eAAiB,EACzC,KAAA,eAAiBA,EAAQ,gBAAkB,EAC3C,KAAA,WAAaA,EAAQ,YAAc,GACnC,KAAA,eAAiBA,EAAQ,gBAAkB,GAChD,MAAMunC,EAAe39B,GAAS,EAAKI,GAAM,EAAI,GAAK,IAAO,IACpD,KAAA,eAAiBhK,EAAQ,gBAAkBunC,EAAe,MAC1D,KAAA,eAAiBvnC,EAAQ,gBAAkB,EAC3C,KAAA,cAAgBA,EAAQ,eAAiB,GACzC,KAAA,SAAWA,EAAQ,UAAY,GAC/B,KAAA,QAAUA,EAAQ,SAAW,IAC7B,KAAA,YAAcA,EAAQ,aAAe,GAErC,KAAA,WACHA,EAAQ,aAAe,OACnB4J,KACE,IACA,KACF5J,EAAQ,WACT,KAAA,qBAAuBA,EAAQ,sBAAwB,IAEvD,KAAA,MAAQA,EAAQ,MAAQ0K,GAAW1K,EAAQ,KAAK,EAAI,IAAIhO,EAAM,MAEnE,MAAMw1C,EAAqB,CACzB,UAAW,KAAK,eAChB,UAAW,KAAK,SAClB,EAMA,GALK,KAAA,QAAU,IAAIN,GAAiBM,CAAkB,EACtD,KAAK,QAAU,KAAK,QACpB,KAAK,aAAa,KAAK,IAAIN,GAAiBM,CAAkB,CAAC,EAC/D,KAAK,aAAa,KAAK,IAAIN,GAAiBM,CAAkB,CAAC,EAE3DxnC,EAAQ,OAAQ,CACZ,KAAA,CACJ,MAAAuJ,EACA,OAAAC,EACA,aAAAi+B,EACA,QAASC,EACT,GAAGC,GACD3nC,EAAQ,OACN4nC,EAAU,KAAK,IAAI,EAAG,KAAK,IAAI,EAAGF,GAAe,CAAC,CAAC,EACzD,GAAIn+B,EAAQq+B,EAAU,MAAQp+B,EAASo+B,EAAU,KACzC,MAAA,IAAI,MAAM,uBAAuB,EAEzC,KAAK,QAAUA,EAEf,MAAMC,EAAat+B,EAAQq+B,EACrBE,EAAct+B,EAASo+B,EACvBG,EAA2C,CAC/C,OAAQ/1C,EAAM,WACd,KAAMA,EAAM,iBACZ,WAAYA,EAAM,eAClB,GAAG21C,CACL,EAEK,KAAA,OAAS,IAAI31C,EAAM,kBACtB61C,EACAC,EACAC,CACF,EACIN,IACG,KAAA,WAAa,IAAIz1C,EAAM,kBAC1B61C,EACAC,EACAC,CACF,GAEG,KAAA,aAAe/nC,EAAQ,cAAgB,EAAA,CAC9C,CAGF,OAAO,cAAe,CA4Db,MA3DU,CAIf,WAAY,CAAE,MAAO,IAAIhO,EAAM,OAAU,EAEzC,KAAM,CAAE,MAAO,EAAI,EACnB,IAAK,CAAE,MAAO,GAAO,EAErB,iBAAkB,CAAE,MAAO,IAAIA,EAAM,UAAa,EAElD,gBAAiB,CAAE,MAAO,IAAIA,EAAM,OAAU,EAC9C,kBAAmB,CAAE,MAAO,IAAIA,EAAM,OAAU,EAChD,mBAAoB,CAAE,MAAO,IAAIA,EAAM,OAAU,EAEjD,UAAW,CAAE,MAAO,CAAI,EAExB,eAAgB,CAAE,MAAO,CAAI,EAE7B,eAAgB,CAAE,MAAO,GAAM,EAE/B,SAAU,CAAE,MAAO,kBAAoB,EAEvC,WAAY,CAAE,MAAO,EAAM,EAI3B,WAAY,CAAE,MAAO,EAAM,EAE3B,cAAe,CAAE,MAAO,CAAI,EAE5B,WAAY,CAAE,MAAO,EAAI,EAEzB,cAAe,CAAE,MAAO,CAAI,EAE5B,cAAe,CAAE,MAAO,CAAI,EAG5B,QAAS,CAAE,MAAO,CAAI,EAEtB,OAAQ,CAAE,MAAO,GAAI,EAErB,gBAAiB,CAAE,MAAO,CAAI,EAE9B,aAAc,CAAE,MAAO,EAAM,EAE7B,SAAU,CAAE,KAAM,IAAK,MAAOo1C,GAAc,aAAc,EAC1D,gBAAiB,CAAE,MAAO,EAAM,EAChC,gBAAiB,CAAE,MAAO,EAAM,EAEhC,UAAW,CAAE,KAAM,IAAK,MAAOF,GAAiB,YAAa,EAC7D,WAAY,CAAE,KAAM,IAAK,MAAOA,GAAiB,YAAa,EAE9D,KAAM,CAAE,MAAO,CAAE,EAEjB,UAAW,CAAE,MAAO,CAAE,EAEtB,UAAW,CAAE,MAAO,EAAM,CAC5B,CACO,CAGT,SAAU,CACJ,KAAK,SACP,KAAK,OAAO,QAAQ,EACpB,KAAK,OAAS,QAEZ,KAAK,aACP,KAAK,WAAW,QAAQ,EACxB,KAAK,WAAa,QAEhB,KAAK,kBACP,KAAK,gBAAgB,QAAQ,EAC7B,KAAK,gBAAkB,MAGnB,MAAAc,MAAmB,IACZA,EAAA,IAAI,KAAK,OAAO,EAChBA,EAAA,IAAI,KAAK,OAAO,EAClB,UAAAC,KAAe,KAAK,aAC7BD,EAAa,IAAIC,CAAW,EAE9B,UAAWA,KAAeD,EACxBC,EAAY,QAAQ,EAGhB,MAAAC,EAAY,KAAK,aAAa,OAAO,EAC3C,KAAK,aAAa,MAAM,EACxB,UAAW1K,KAAY0K,EACrB1K,EAAS,QAAQ,QAAQ,EAGvB,KAAK,aACP,KAAK,WAAW,QAAQ,EACxB,KAAK,WAAa,MAEhB,KAAK,YACP,KAAK,UAAU,QAAQ,EACvB,KAAK,UAAY,MAEf,KAAK,QACP,KAAK,MAAM,QAAQ,EACnB,KAAK,MAAQ,OACf,CAGF,UAAW,OACJ,KAAK,QACR,KAAK,MAAQ,IACbtqC,EAAA,KAAK,UAAL,MAAAA,EAAA,WACF,CAGF,eACEksC,EACAsG,EACAE,EACA,OACM,MAAAuC,EAAQf,GAAc,eAAiB,KAEvCgB,EAAQhJ,EAAS,KAAK,OAAO,MAC7BiJ,EAAaD,IAAUD,EAAM,UAGnC,GAFAA,EAAM,UAAYC,EAEdD,EAAM,OACRA,EAAM,WAAW,IAAIA,EAAM,OAAO,MAAOA,EAAM,OAAO,MAAM,MACvD,CACL,MAAMtC,EAAazG,EAAS,qBAAqB+I,EAAM,UAAU,EAC7D,GAAA/I,EAAS,GAAG,cACVyG,EAAW,IAAM,GAAKA,EAAW,IAAM,EAAG,CAG5C,MAAMyC,GAAYp1C,EAAAksC,EAAS,GAAG,eAAZ,YAAAlsC,EAA0B,YAAY,UACpDo1C,IACFzC,EAAW,EAAIyC,EAAU,iBACzBzC,EAAW,EAAIyC,EAAU,kBAC3B,CAEJ,CAEF,KAAK,SAAS,WAAW,MAAM,KAAKH,EAAM,UAAU,EAEpD,MAAMI,EAAc3C,EAIf,KAAA,SAAS,KAAK,MAAQ2C,EAAY,KAClC,KAAA,SAAS,IAAI,MAAQA,EAAY,IAEtC,MAAMjB,EAAW,KAAK,SACtBA,EAAS,cAAgBa,EAAM,aAEzB,MAAAK,EAAe,IAAIx2C,EAAM,QAC1B,KAAK,QAAQ,WACHw2C,EAAA,gBAAgBL,EAAM,QAAQ,UAAU,EAIjD,MAAAM,EAFgB7C,EAAO,YAAY,MAAM,EACX,OAAO,EACP,SAAS4C,CAAY,EA4BrD,GA3BUC,EAAA,UACZ,KAAK,SAAS,gBAAgB,MAC9B,KAAK,SAAS,iBAAiB,MAC/B,IAAIz2C,EAAM,OACZ,EACA,KAAK,SAAS,kBAAkB,MAAM,eAAey2C,CAAa,EAE7D,KAAA,SAAS,UAAU,MAAQN,EAAM,UACjC,KAAA,SAAS,eAAe,MAAQA,EAAM,eACtC,KAAA,SAAS,eAAe,MAAQA,EAAM,eACtC,KAAA,SAAS,SAAS,MAAQA,EAAM,SAChC,KAAA,SAAS,WAAW,MAAQA,EAAM,WAElC,KAAA,SAAS,WAAW,MAAQA,EAAM,WAClC,KAAA,SAAS,cAAc,MAAQA,EAAM,cACrC,KAAA,SAAS,WAAW,MAAQA,EAAM,WAClC,KAAA,SAAS,cAAc,MAAQA,EAAM,cACrC,KAAA,SAAS,cAAc,MAAQA,EAAM,cACrC,KAAA,SAAS,QAAQ,MAAQA,EAAM,QAC/B,KAAA,SAAS,OAAO,MAAQA,EAAM,OAC9B,KAAA,SAAS,gBAAgB,MAAQA,EAAM,gBACvC,KAAA,SAAS,aAAa,MAAQA,EAAM,aAEzC,KAAK,SAAS,SAAS,MACrBA,EAAM,iBAAmBf,GAAc,cACzC,KAAK,SAAS,gBAAgB,MAAQ,KAAK,QAAQ,UACnD,KAAK,SAAS,gBAAgB,MAAQ,KAAK,QAAQ,UAC/C,KAAK,QAAQ,UAAW,CACpB,MAAAtwB,EAAYqxB,EAAM,QAAQ,YAAY,EAC5C,KAAK,SAAS,UAAU,MAAQrxB,EAAU,CAAC,EAC3C,KAAK,SAAS,WAAW,MAAQA,EAAU,CAAC,CAAA,KACvC,CACC,MAAAlQ,EAAeuhC,EAAM,QAAQ,YAAY,EAC/C,KAAK,SAAS,UAAU,MAAQvhC,EAAa,CAAC,EAC9C,KAAK,SAAS,WAAW,MAAQA,EAAa,CAAC,CAAA,CAQ7C,GALJ,KAAK,SAAS,KAAK,MAAQuhC,EAAM,QAAQ,KACzC,KAAK,SAAS,UAAU,MAAQA,EAAM,QAAQ,UAE9C,KAAK,SAAS,UAAU,MAAS,YAAY,IAAI,EAAI,IAAU,EAAM,EAEjEA,EAAM,YAAcE,EAAY,CAClC,MAAMK,EAAYP,EAAM,WAAa,CAAC/I,EAAS,GAAG,aAC5CuJ,EAAYvJ,EAAS,GAAG,aAC1BA,EAAS,GAAG,YACZwG,EACA8C,EACFP,EAAM,eAAe,CACnB,MAAAzC,EACA,OAAQiD,EACR,WAAY,EAAA,CACb,EAEGR,EAAM,kBAAoB,KACtBA,EAAA,gBAAkB,WAAW,IAAM,CACvCA,EAAM,gBAAkB,GACxBA,EAAM,eAAe,CACnB,MAAAzC,EACA,OAAQiD,EACR,WAAY,EAAA,CACb,GACA,CAAC,EAER,CAGFR,EAAM,MAAQ,EAAA,CAGhB,aAAc,CACZ,KAAK,aAAe,EACpB,KAAK,QAAQ,UAAY,EACzB,KAAK,SAAS,CAAA,CAGhB,MAAM,OAAO,CACX,MAAAzC,EACA,OAAAE,CAAA,EAIC,CACD,MAAM,KAAK,eAAe,CAAE,MAAAF,EAAO,OAAAE,EAAQ,WAAY,GAAO,CAAA,CA4BhE,MAAc,eAAe,CAC3B,MAAAF,EACA,OAAAE,EACA,WAAAgD,CAAA,EAKC,CACD,MAAMxJ,EAAW,KAAK,SAChBuG,EAAO,KAAK,MAAQ,KAAK,MAAM,eAAe,EAE9C5tB,EAAS6tB,EAAO,iBAAiB,IAAI5zC,EAAM,OAAS,EACpDmhC,EAAMyS,EAAO,kBAAkB,IAAI5zC,EAAM,OAAS,EAElD62C,EACJ9wB,EAAO,WAAW,KAAK,YAAY,EAAI,MACvCob,EAAI,IAAI,KAAK,SAAS,EAAI,KAEtB2V,EAAO,KAAK,aAAa,IAAI,EACnC,GAAI,CAACA,EAEG,MAAA,IAAI,MAAM,qBAAqB,EAEnC,GAAAA,IAAS,KAAK,QAEhB,MAAM,IAAI,MACR,yDACF,EAEF,KAAM,CAAE,QAAApC,EAAS,eAAAC,EAAgB,kBAAAN,EAAmB,SAAApnC,CAAS,EAC3D6pC,EAAK,gBAAgB,CACnB,SAAA1J,EACA,MAAAsG,EACA,KAAAC,EACA,OAAAC,EACA,WAAY,KAAK,YAAc,GAC/B,WAAY,KAAK,WACjB,SAAU,KAAK,QACf,aAAc,KAAK,UAAY,KAAK,aAAe,MAAA,CACpD,EAEH,IAAImD,EAAW,GACf,MAAMC,EAAcH,GAAenC,IAAY,KAAK,QAAQ,QACtDG,EAAiBF,IAAmB,KAAK,QAAQ,eAEnDiC,GAAc,CAACI,IAEND,EAAA,IAGTlC,GAAkB,KAAK,UAGdkC,EAAA,IAGRA,GAIM9pC,EAAA,EAEL,KAAK,oBACImgC,EAAS,WAAW,EAC5B,MAAM,EAGP,KAAK,QAAQ,iBAAmB0J,EAAK,gBAGlC,KAAA,aAAa,KAAK,KAAK,OAAO,EACnC,KAAK,QAAUA,GAEX,KAAK,UAAY,KAAK,SAEnB,KAAA,aAAa,KAAK,KAAK,OAAO,EAIvC,KAAK,QAAUA,EACf,KAAK,UAAY,GACjB,KAAK,SAAS,GAvBT,KAAA,aAAa,KAAKA,CAAI,EA0BzB,KAAK,gBACP,KAAK,SAAS,CAAE,kBAAAzC,EAAmB,OAAAT,EAAQ,MAAAF,EAAO,EAEpD,MAAM,KAAK,UAAU,CAAA,CAGvB,MAAc,WAAY,CACxB,GAAI,KAAK,SAAW,CAAC,KAAK,UACxB,OAGE,KAAK,gBAAkB,KACzB,aAAa,KAAK,aAAa,EAC/B,KAAK,cAAgB,IAGjB,MAAAuD,EAAM,YAAY,IAAI,EACtBC,EAAe,KAAK,aACtB,KAAK,aAAe,KAAK,kBACzBD,EACJ,GAAIA,EAAMC,EAAc,CACjB,KAAA,cAAgB,WAAW,IAAM,CACpC,KAAK,cAAgB,GACrB,KAAK,UAAU,CAAA,EACdA,EAAeD,CAAG,EACrB,MAAA,CAGF,KAAK,QAAU,GACf,KAAK,UAAY,GACjB,KAAK,aAAeA,EAEhB,KAAK,UAAY,GACb,MAAA,IAAI,QAASr0B,GAAY,WAAWA,EAAS,KAAK,SAAS,CAAC,EAGpE,MAAMu0B,EAAU,KAAK,QAEhB,KAAA,aAAa,KAAKA,EAAQ,UAAU,EACpC,KAAA,UAAU,KAAKA,EAAQ,aAAa,EAEnC,KAAA,CAAE,UAAA7/B,EAAW,UAAAI,CAAA,EAAcy/B,EAC3BC,EAAO,KAAK,IAAI,EAAG,KAAK,KAAK1/B,EAAY,KAAK,CAAC,EAC/C2/B,EAAoBD,EAAO,MACjC,KAAK,UAAY,KAAK,IAAI,KAAK,UAAWC,CAAiB,EAE3D,MAAMp3C,EAAW,IAAI,YAAY,KAAK,SAAS,EACzC8tC,EAAWQ,GAAS,aAAa72B,EAAW,KAAK,UAAU,EACjE,KAAK,WAAaq2B,EAElB,MAAM,KAAK,cAAc,CACvB,QAAAoJ,EACA,SAAU,KAAK,SACf,UAAA7/B,EACA,SAAAy2B,CAAA,CACD,EAEG,KAAK,UAAY,GACb,MAAA,IAAI,QAASnrB,GAAY,WAAWA,EAAS,KAAK,SAAS,CAAC,EAG/D,KAAK,aACH,KAAA,WAAa,IAAImB,IAExB,MAAM3W,EAAU,MAAM,KAAK,WAAW,KAAK,eAAgB,CACzD,UAAAkK,EACA,SAAAy2B,EACA,SAAA9tC,CAAA,CACD,EAqBG,GAfA,KAAK,UAAY,GACb,MAAA,IAAI,QAAS2iB,GAAY,WAAWA,EAAS,KAAK,SAAS,CAAC,EAGpE,KAAK,WAAaxV,EAAO,SAEzB,KAAK,aAAeA,EAAO,aAEvB,KAAK,iBACHgqC,EAAO,KAAK,gBAAgB,MAAM,SACpC,KAAK,gBAAgB,QAAQ,EAC7B,KAAK,gBAAkB,MAItB,KAAK,gBAYH,CACL,MAAMhK,EAAW,KAAK,SAChBkK,EAAKlK,EAAS,WAAW,EAC/B,GAAI,CAACA,EAAS,WAAW,IAAI,KAAK,eAAe,EAC/C,KAAK,gBAAgB,YAAc,OAC9B,CAIL,MAAMmK,EAHQnK,EAAS,WAAW,IAAI,KAAK,eAAe,EAGlC,eACxB,GAAI,CAACmK,EACG,MAAA,IAAI,MAAM,4BAA4B,EAErCnK,EAAA,MAAM,cAAckK,EAAG,QAAQ,EACxClK,EAAS,MAAM,YAAYkK,EAAG,WAAYC,CAAS,EAChDD,EAAA,WAAWA,EAAG,oBAAqB,IAAI,EACvCA,EAAA,YAAYA,EAAG,oBAAqB,EAAK,EACzCA,EAAA,cACDA,EAAG,WACH,EACA,EACA,EACA,KACAF,EACAE,EAAG,aACHA,EAAG,aAEHlqC,EAAO,QACT,EACAggC,EAAS,MAAM,YAAYkK,EAAG,WAAY,IAAI,CAAA,CAChD,KA1CyB,CAEnB,MAAAE,EAAkB,IAAIx3C,EAAM,YAChCoN,EAAO,SACP,KACAgqC,EACAp3C,EAAM,kBACNA,EAAM,eACR,EACAw3C,EAAgB,eAAiB,WACjCA,EAAgB,YAAc,GAC9B,KAAK,gBAAkBA,CAAA,CAoCrB,KAAK,QAAQ,iBAAmBL,EAAQ,gBACtC,KAAK,QAAQ,iBAAmB,KAAK,QAAQ,iBAC1C,KAAA,aAAa,KAAK,KAAK,OAAO,EACnC,KAAK,QAAU,KAAK,SAGxB,KAAK,QAAU,GACf,KAAK,SAAS,EAEd,KAAK,UAAU,CAAA,CAGT,iBAAkB,CACpB,OAAC,KAAK,YACH,KAAA,UAAY,IAAIpzB,IAEhB,KAAK,SAAA,CAGd,oBAAqB,CACZ,OAAAjM,GACH,EAAA,IACAG,KACE,KACAJ,GAAA,EACE,IACAG,GAAM,EACJ,KACA,IAAA,CAGJ,SAAS,CACf,kBAAAq8B,EACA,OAAAT,EACA,MAAAF,CAAA,EAKC,SACK,MAAA+D,EAAoB,KAAK,mBAAmB,EAE5C//B,GADa,KAAK,eAAiB+/B,GACV,KAAK,cAEpC,IAAIC,EAAkB,EAClB,GAAA9D,aAAkB5zC,EAAM,kBAEP03C,EAAA,EADH,KAAK,IAAK,GAAM9D,EAAO,IAAM,KAAK,GAAM,GAAG,EACvB,KAAK,WAAW,UAC3CA,aAAkB5zC,EAAM,mBAAoB,CAErD,MAAM23C,GAAc/D,EAAO,IAAMA,EAAO,QAAUA,EAAO,KACnDgE,GAAahE,EAAO,MAAQA,EAAO,MAAQA,EAAO,KAElDiE,EAAMF,EAAa,KAAK,IAAI,EAAG,KAAK,WAAW,CAAC,EAChDG,EAAMF,EAAY,KAAK,IAAI,EAAG,KAAK,WAAW,CAAC,EACnCF,EAAA,KAAK,IAAII,EAAKD,CAAG,CAAA,CAGrCH,GAAmB,KAAK,eAElB,MAAAK,EAAU,IAAI/3C,EAAM,QACpBg4C,EAAW,IAAIh4C,EAAM,WAU3B,GATK,KAAA,QAAQ,YAAY,UAAU+3C,EAASC,EAAU,IAAIh4C,EAAM,OAAS,EAErE,KAAK,gBACC+3C,EAAA,KAAK,KAAK,cAAc,EAE9B,KAAK,iBACPC,EAAS,KAAK,KAAK,eAAe,EAAE,UAAU,EAG5C,KAAK,QAAS,EAEd,KAAK,QAAQ,kBAAoBN,GACjC,KAAK,QAAQ,YAAchgC,KAE3B,KAAK,SAAW,IAGlB,MAAMkC,EAAWm+B,EAAQ,WAAW,KAAK,QAAQ,GAAG,EAC9CE,EAAe,KAAK,IAAI,EAAK,EAAMr+B,EAAW,CAAG,EACjDiiB,EAAMmc,EAAS,IAAI,KAAK,QAAQ,IAAI,EACpCE,EAAW,KAAK,IAAI,EAAK,GAAO,EAAMrc,GAAO,GAAI,EACpCoc,EAAeC,EACjB,OACf,KAAK,SAAW,GAClB,CAGI,MAAAC,EAAa,KAAK,UAEnB9D,EAAkB,OAAQtC,GAAc,SAErC,OAAAA,aAAqBoC,OACpBjzC,EAAA6wC,EAAU,eAAV,YAAA7wC,EAAwB,cACvBG,EAAA0wC,EAAU,YAAV,YAAA1wC,EAAqB,YACrB0wC,EAAU,QACZA,EAAU,YAAc,EAAA,CAE3B,EATD,CACC,EASCqG,EAAWD,EAAU,KAAME,GAASA,EAAK,KAAK,EAEhD,KAAK,UAAU,SAAWF,EAAU,OACtC,KAAK,SAAW,GAGdA,EAAU,KACR,CAAC/1C,EAAGrB,IACFqB,IAAM,KAAK,UAAUrB,CAAC,EAAE,MACxBqB,EAAE,QAAU,KAAK,UAAUrB,CAAC,EAAE,OAAA,IAGlC,KAAK,SAAW,IAIpB,KAAK,UAAYo3C,EAAU,IAAKE,IAAU,CACxC,KAAAA,EACA,QAASA,EAAK,QAAU,CAAA,EACxB,EAMF,KAAK,aAAe,CAAC,EACf,MAAApB,EAAM,YAAY,IAAI,EAE5B,UAAWoB,KAAQF,EAAW,CAC5B,MAAMG,IACJp3C,EAAAm3C,EAAK,eAAL,YAAAn3C,EAAmB,cAAaG,EAAAg3C,EAAK,YAAL,YAAAh3C,EAAgB,YAAag3C,EAAK,MACpE,GAAIC,EAAQ,CACV,MAAMC,EAAS,KAAK,OAAO,IAAID,CAAM,EACjCC,EACFA,EAAO,YAActB,EAEhB,KAAA,aAAa,KAAKqB,CAAM,CAC/B,CACF,CAGF,KAAK,gBAAgB,EAAE,aAAa,MAAOj1B,GAAW,CAChD,GAAA+0B,GAAY,CAAC,KAAK,MAAO,CACtB,KAAA,MAAQ,IAAII,GAAW,CAC1B,SAAU,KAAK,SACf,UAAW,KAAK,eAChB,UAAW,KAAK,eAChB,YAAa,KAAK,cAAA,CACnB,EAED,KAAM,CAAE,MAAAC,CAAM,EAAK,MAAMp1B,EAAO,KAAK,aAAc,CACjD,SAAU,KAAK,MAAM,SAAA,CACtB,EACD,KAAK,QAAUo1B,CAAA,CAKjB,GAAI,KAAK,MACP,SAAW,CAAE,KAAAJ,KAAU,KAAK,UACtBA,EAAK,OAAS,CAACA,EAAK,MAAM,QACvBA,EAAA,MAAM,MAAQ,KAAK,OAK1B,GAAA,KAAK,aAAa,OAAS,EAAG,CAChC,MAAMK,EAAe,KAAK,aAEnB,IADP,KAAK,aAAe,CAAC,EACdA,EAAa,OAAS,GAAG,CACxB,MAAAJ,EAASI,EAAa,MAAM,EAC9BJ,IACI,MAAA,KAAK,YAAYj1B,EAAQi1B,CAAM,EACrC,KAAK,SAAW,GAClB,CACF,CAGF,GAAI,KAAK,MAAO,CACR,MAAAK,EAAU,KAAK,MAAM,sBAAsB,EAEjD,SAAW,CAAE,OAAAL,EAAQ,KAAAM,EAAM,MAAA7xC,EAAO,UAAAuQ,EAAW,QAAAuhC,KAAaF,EAAS,CACjE,MAAMJ,EAAS,KAAK,OAAO,IAAID,CAAM,EACjCC,IACEM,GAAW9xC,IAAU,IACvBwxC,EAAO,SAAWK,GAEpB,KAAK,WAAW,KAAK,CACnB,MAAOL,EAAO,MACd,SAAUK,EAAO,KAAK,MAAM,WAC5B,UAAW7xC,EAAQ,KAAK,MAAM,WAC9B,MAAOuQ,EACP,YAAauhC,CAAA,CACd,EACH,CACF,CAGE,GAAA,KAAK,WAAW,OAAS,EAAG,CAC9B,MAAMC,EAAa,KAAK,WACxB,KAAK,WAAa,CAAC,EACnB,MAAMz1B,EAAO,KAAK,iBAAkB,CAAE,OAAQy1B,EAAY,EAC1D,KAAK,SAAW,EAAA,CAGlB,GAAI,KAAK,SAAU,CACX7B,MAAAA,EAAM,YAAY,IAAI,EACtB8B,EAAY,IAAI/4C,EAAM,QAC5B,GAAI,KAAK,QAAS,CAChB,MAAMg5C,EAAY,KAAK,IAAI,EAAG/B,EAAM,KAAK,QAAQ,SAAS,EAEvD8B,EAAA,KAAKhB,CAAO,EACZ,IAAI,KAAK,QAAQ,GAAG,EACpB,eAAe,KAAK,iBAAmBiB,CAAS,CAAA,CAErD,KAAK,QAAU,CACb,IAAKjB,EACL,KAAMC,EACN,gBAAAN,EACA,UAAAhgC,EACA,UAAWu/B,CACb,EACA,KAAK,SAAW,GAEhB,MAAM,KAAK,mBACT5zB,EACA01B,EACAZ,EACAzgC,EACAqgC,EACAC,EACAN,CACF,EACA,KAAK,WAAa,KAAK,QACvB,KAAK,SAAS,CAAA,CAGV,MAAA,KAAK,gBAAgBr0B,CAAM,CAAA,CAClC,CAAA,CAGH,MAAc,YACZA,EACAi1B,EACA,CACI,GAAAA,aAAkBW,IAAgBX,aAAkBjR,GAAW,CACjE,KAAM,CAAE,MAAAoR,CAAM,EAAK,MAAMp1B,EAAO,KAAK,cAAe,CAClD,UAAWi1B,EAAO,WAAa,EAC/B,QAAUA,EAAO,MAAM,QAAwB,MAAM,CAAA,CACtD,EACI,KAAA,OAAO,IAAIA,EAAQ,CAAE,MAAAG,EAAO,YAAa,YAAY,IAAI,EAAG,EAC5D,KAAA,cAAc,IAAIA,EAAOH,CAAM,CAAA,KAE/B,CACL,KAAM,CAAE,MAAAG,CAAM,EAAK,MAAMp1B,EAAO,KAAK,mBAAoB,CACvD,MAAO,KAAK,OAAA,CACb,EACI,KAAA,OAAO,IAAIi1B,EAAQ,CAAE,MAAAG,EAAO,YAAa,YAAY,IAAI,EAAG,EAC5D,KAAA,cAAc,IAAIA,EAAOH,CAAM,CAAA,CAEtC,CAKF,MAAc,mBACZj1B,EACA01B,EACAZ,EACAzgC,EACAqgC,EACAC,EACAN,EACA,CAIM,MAAAwB,MAAyC,IACzCC,EAAgB,IAAIn5C,EAAM,QAAU,EAAA,QACxC+3C,EACAC,EACA,IAAIh4C,EAAM,UAAU,UAAU,CAAC,CACjC,EAEMk2C,EAAYiC,EAAU,OAC1B,CAACjC,EAAWmC,IAAS,SACRa,EAAA,IAAIb,EAAK,KAAMA,CAAI,EACxB,MAAAe,EAAef,EAAK,YACvB,QACA,OAAO,EACP,SAASc,CAAa,EAEnBb,IACJp3C,EAAAm3C,EAAK,eAAL,YAAAn3C,EAAmB,cACnBG,EAAAg3C,EAAK,YAAL,YAAAh3C,EAAgB,YAChBg3C,EAAK,MACP,GAAI,CAACC,EACIpC,OAAAA,EAET,MAAMqC,EAAS,KAAK,OAAO,IAAID,CAAM,EAKrC,MAJI,CAACC,GAID,KAAK,OAASF,EAAK,OAASE,EAAO,WAAa,SAIpDrC,EAAUmC,EAAK,IAAI,EAAI,CACrB,WAAYA,EAAK,KACjB,MAAOE,EAAO,MACd,SAAUA,EAAO,SACjB,iBAAkBa,EAAa,SAC/B,SAAUf,EAAK,SACf,cAAeA,EAAK,eAAiB,KAAK,cAC1C,SAAUA,EAAK,UAAY,KAAK,SAChC,QAASA,EAAK,SAAW,KAAK,QAC9B,YAAaA,EAAK,aAAe,KAAK,WACxC,GACOnC,CACT,EACA,CAAA,CAcF,EAEMmD,EAAgB,YAAY,IAAI,EAChCjsC,EAAU,MAAMiW,EAAO,KAAK,mBAAoB,CACpD,UAAA3L,EACA,gBAAAggC,EACA,eAAgB,KAAK,eACrB,UAAAxB,CAAA,CACD,EAQI,KAAA,iBAAmB,YAAY,IAAQ,EAAAmD,EAE5C,KAAM,CAAE,WAAAC,EAAY,OAAA33B,EAAQ,WAAA43B,CAAe,EAAAnsC,EAC3C,KAAK,eAAiBmsC,EACtB,MAAMC,EAAiB,OAAO,OAAOF,CAAU,EAAE,OAC/C,CAACrgC,EAAK,CAAE,UAAA3B,KAAgB2B,EAAM3B,EAC9B,CACF,EAQA,GAHK,KAAA,iBAAiB4hC,EAAYI,CAAU,EAGxC,KAAK,MAAO,CACd,KAAK,MAAM,eAAe,EAE1B,MAAMG,EAActB,EACjB,IAAKE,GAAS,CACb,GAAI,CAACA,EAAK,OAAS,CAAC,KAAK,MAChB,OAAA,KAET,MAAMqB,EAAerB,EAAK,iBAAiB,IAAIr4C,EAAM,OAAS,EACvD,MAAA,CACL,OAAQq4C,EAAK,MACb,SAAUqB,EAAa,WAAW3B,CAAO,CAC3C,CACD,CAAA,EACA,OAAQ3qC,GAAWA,IAAW,IAAI,EAEjC,CAAC,KAAK,iBAAmBqsC,EAAY,OAAS,KAAK,MAAM,WAC3D,KAAK,gBAAkB,GACf,QAAA,KACN,yCAAyCA,EAAY,MAAM,MAAM,KAAK,MAAM,QAAQ,EACtF,GAIFA,EAAY,KAAK,CAAC/2C,EAAG5B,IAAM4B,EAAE,SAAW5B,EAAE,QAAQ,EAClD,KAAK,MAAM,cAAgB24C,EAAY,IAAI,CAAC,CAAE,OAAAnB,MAAc,CAC1D,OAAAA,EACA,MAAO,CAAA,EACP,EAEF,SAAW,CAACG,EAAO1xC,CAAK,IAAK4a,EAAQ,CACnC,MAAM22B,EAAS,KAAK,cAAc,IAAIG,CAAK,EACvCH,aAAkBqB,IAChB5yC,IAAU,GACZ,KAAK,MAAM,cAAc,KAAK,CAAE,OAAAuxC,EAAQ,MAAAvxC,EAAO,CAEnD,CAGG,KAAA,MAAM,UAAY,KAAK,kBACxB,KAAK,mBACP,KAAK,MAAM,cAAc,CAC3B,CAIA,GAAA,KAAK,YACL,YAAY,MAAQ,KAAK,oBAAsB,KAAK,qBACpD,CACK,KAAA,mBAAqB,YAAY,IAAI,EACpCsyC,MAAAA,EAAgB,YAAY,IAAI,EAChCjsC,EAAU,MAAMiW,EAAO,KAAK,mBAAoB,CACpD,UAAW,KAAK,IAAI,KAAK,WAAY,KAAK,MAAMm2B,EAAiB,EAAG,CAAC,EACrE,gBAAA9B,EACA,UAAAxB,CAAA,CACD,EAM2B,YAAY,IAAA,EAAQmD,EAE1C,KAAA,CAAE,WAAAC,CAAAA,EAAelsC,EACI,OAAO,OAAOksC,CAAU,EAAE,OACnD,CAACrgC,EAAK,CAAE,UAAA3B,KAAgB2B,EAAM3B,EAC9B,CAAA,EAEF,SAAW,CAACsiC,EAAMC,CAAY,IAAK,OAAO,QAAQP,CAAU,EAAG,CACvD,MAAAjB,EAAOa,EAAW,IAAIU,CAAI,EAChCvB,EAAK,eAAiBwB,CAAA,CAExB,CAEF,CAGF,MAAc,gBAAgBx2B,EAAqB,CAE3C,MAAA4zB,EAAM,YAAY,IAAI,EAE5B,IAAI6C,EAAS,KACb,SAAW,CAACxB,EAAQC,CAAM,IAAK,KAAK,OAAO,WACrCuB,GAAU,MAAQvB,EAAO,YAAcuB,EAAO,eACvCA,EAAA,CACP,OAAAxB,EACA,YAAaC,EAAO,YACpB,MAAOA,EAAO,KAChB,GAGJ,GAAI,GAACuB,GAAUA,EAAO,YAAc7C,EAAM,KAIrC,MAAA,OAAO,OAAO6C,EAAO,MAAM,EAC3B,KAAA,cAAc,OAAOA,EAAO,KAAK,EAEtC,SAAW,CAACzB,EAAM7M,CAAQ,IAAK,KAAK,aAAa,UAC3CA,EAAS,QAAUsO,EAAO,QAC5BtO,EAAS,QAAQ,QAAQ,EACpB,KAAA,aAAa,OAAO6M,CAAI,GAIjC,MAAMh1B,EAAO,KAAK,iBAAkB,CAAE,MAAOy2B,EAAO,MAAO,EAAA,CAIrD,iBACNZ,EACAI,EAIA,CAEA,SAAW,CAACM,EAAMC,CAAY,IAAK,OAAO,QAAQP,CAAU,EAAG,CAC7D,KAAM,CAAE,MAAAb,EAAO,UAAAnhC,EAAW,QAAAmvB,CAAY,EAAAoT,EAChCxB,EAAOa,EAAW,IAAIU,CAAI,EAEhC,GAAIvB,EAAK,MACFA,EAAA,MAAM,OAAO/gC,EAAWmvB,CAAO,MAE/B,CACL,IAAI+E,EAAW,KAAK,aAAa,IAAI6M,CAAI,EACrC7M,GACE/E,EAAQ,OAAS+E,EAAS,QAAQ,SACpCA,EAAS,QAAQ,QAAQ,EACdA,EAAA,QAIf,MAAM4L,EAAO,KAAK,KAAK3Q,EAAQ,OAAS,KAAK,EAC7C,GAAK+E,EAgBE,CACLA,EAAS,UAAYl0B,EAGrB,MAAM81B,EAAW,KAAK,SAChBkK,EAAKlK,EAAS,WAAW,EAC/B,GAAIA,EAAS,WAAW,IAAI5B,EAAS,OAAO,EAAG,CAI7C,MAAM+L,EAHQnK,EAAS,WAAW,IAAI5B,EAAS,OAAO,EAG9B,eACxB,GAAI,CAAC+L,EACG,MAAA,IAAI,MAAM,8BAA8B,EAEvCnK,EAAA,MAAM,cAAckK,EAAG,QAAQ,EACxClK,EAAS,MAAM,YAAYkK,EAAG,WAAYC,CAAS,EAChDD,EAAA,WAAWA,EAAG,oBAAqB,IAAI,EACvCA,EAAA,YAAYA,EAAG,oBAAqB,EAAK,EACzCA,EAAA,cACDA,EAAG,WACH,EACA,EACA,EACA,KACAF,EACAE,EAAG,aACHA,EAAG,aACH7Q,CACF,EACA2G,EAAS,MAAM,YAAYkK,EAAG,WAAY,IAAI,CAAA,CAChD,KA9Ca,CACb,MAAM9J,EAAW4J,EAAO,MACpB,GAAA3Q,EAAQ,SAAW+G,EACf,MAAA,IAAI,MAAM,4BAA4B,EAExC,MAAA1L,EAAU,IAAI9hC,EAAM,YACxBymC,EACA,KACA2Q,EACAp3C,EAAM,kBACNA,EAAM,eACR,EACA8hC,EAAQ,eAAiB,WACzBA,EAAQ,YAAc,GACtB0J,EAAW,CAAE,MAAAiN,EAAO,UAAAnhC,EAAW,QAAAmvB,EAAS,QAAA3E,CAAQ,EAC3C,KAAA,aAAa,IAAIuW,EAAM7M,CAAQ,CAAA,CAgCtC,CAEF6M,EAAK,qBAAqB,CAAA,CAC5B,CAGF,MAAc,cAAc,CAC1B,QAAAlB,EACA,SAAA/J,EACA,UAAA91B,EACA,SAAAy2B,CAAA,EAMC,CACD,GAAI,CAACX,EACG,MAAA,IAAI,MAAM,aAAa,EAE3B,GAAA,CAAC+J,EAAQ,OACL,MAAA,IAAI,MAAM,WAAW,EAG7B,MAAMnJ,EACJ,KAAK,KAAK12B,EAAYnO,CAAe,EAAIA,EACvC,GAAA4kC,EAAS,WAAaC,EAAe,EACvC,MAAM,IAAI,MACR,8BAA8BD,EAAS,UAAU,MAAMC,EAAe,CAAC,EACzE,EAEF,MAAMC,EAAgB,IAAI,WAAWF,EAAS,MAAM,EAC9CM,EAAc,KAAK,gBAAgBjB,CAAQ,EAK3CM,EAAYvkC,EAAkBC,GACpC,IAAIukC,EAAY,EAChB,MAAMO,EAAW,CAAC,EAElB,KAAOP,EAAYr2B,GAAW,CAC5B,MAAMs2B,EAAQ,KAAK,MAAMD,EAAYD,CAAS,EACxCG,EAAYD,EAAQF,EACpBI,EAAY,KAAK,IACrB1kC,GACA,KAAK,MAAMkO,EAAYu2B,GAAa1kC,CAAe,CACrD,EAGMglC,EAAehlC,EAAkB2kC,EAAY,EAC7CM,EAAcH,EAAc,SAChCJ,EAAY,EACZA,EAAY,EAAIM,CAClB,EACSf,EAAA,gBAAgB+J,EAAQ,OAAQvJ,CAAK,EAE9C,MAAMjrB,EAAUyqB,EAAS,4BACvB+J,EAAQ,OACR,EACA,EACAhuC,EACA2kC,EACAM,EACA,OACA+I,EAAQ,UAAY,EAAI,CAC1B,EACAjJ,EAAS,KAAKvrB,CAAO,EAEjB,KAAK,gBACIyqB,EAAS,WAAW,EAC5B,MAAM,EAGXO,GAAaxkC,EAAkB2kC,CAAA,CAG5B,YAAA,iBAAiBV,EAAUiB,CAAW,EACpC,QAAQ,IAAIH,CAAQ,EAAE,KAAK,IAAMH,CAAQ,CAAA,CAG1C,gBAAgBX,EAA+B,CAC9C,MAAA,CACL,OAAQA,EAAS,gBAAgB,EACjC,UAAWA,EAAS,GAAG,QACvB,UAAWA,EAAS,SACtB,CAAA,CAGM,iBACNA,EACAnO,EAKA,CACSmO,EAAA,gBAAgBnO,EAAM,MAAM,EAC5BmO,EAAA,GAAG,QAAUnO,EAAM,UAC5BmO,EAAS,UAAYnO,EAAM,SAAA,CAc7B,OAAOyU,EAAoBE,EAAsB,CAC3C,GAAA,CACFwB,GAAc,cAAgB,KACzB,KAAA,SAAS,OAAO1B,EAAOE,CAAM,CAAA,QAClC,CACAwB,GAAc,cAAgB,MAAA,CAChC,CAGF,aAAa,CACX,MAAA1B,EACA,OAAAE,CAAA,EACwE,CAClE,MAAAmG,EAAS,KAAK,YAAc,KAAK,OACvC,GAAI,CAACA,EACG,MAAA,IAAI,MAAM,WAAW,EAGvB,MAAAC,EAAiB,KAAK,SAAS,gBAAgB,EACjD,GAAA,CACG,KAAA,SAAS,gBAAgBD,CAAM,EACpC3E,GAAc,cAAgB,KACzB,KAAA,SAAS,OAAO1B,EAAOE,CAAM,CAAA,QAClC,CACAwB,GAAc,cAAgB,OACzB,KAAA,SAAS,gBAAgB4E,CAAc,CAAA,CAG1C,OAAAD,IAAW,KAAK,SAEjB,CAAA,KAAK,OAAQ,KAAK,UAAU,EAAI,CAAC,KAAK,WAAY,KAAK,MAAM,GAEzDA,CAAA,CAMT,MAAM,YAAkC,CAClC,GAAA,CAAC,KAAK,OACF,MAAA,IAAI,MAAM,6BAA6B,EAE/C,KAAM,CAAE,MAAAxiC,EAAO,OAAAC,CAAO,EAAI,KAAK,OACzByiC,EAAW1iC,EAAQC,EAAS,GAC9B,CAAC,KAAK,aAAe,KAAK,YAAY,OAASyiC,KAC5C,KAAA,YAAc,IAAI,WAAWA,CAAQ,GAG5C,MAAMC,EAAc,KAAK,YAEzB,MAAM,KAAK,SAAS,4BAClB,KAAK,OACL,EACA,EACA3iC,EACAC,EACA0iC,CACF,EAEM,KAAA,CAAE,QAAAtE,GAAY,KACpB,GAAIA,IAAY,EACP,OAAAsE,EAGT,MAAMC,EAAW5iC,EAAQq+B,EACnBwE,EAAY5iC,EAASo+B,EACrByE,EAAUF,EAAWC,EAAY,GACnC,CAAC,KAAK,cAAgB,KAAK,aAAa,OAASC,KAC9C,KAAA,aAAe,IAAI,WAAWA,CAAO,GAG5C,MAAMC,EAAe,KAAK,aAEpBC,EAAS3E,EAAUA,EACzB,QAASliC,EAAI,EAAGA,EAAI0mC,EAAW1mC,IAAK,CAClC,MAAM8mC,EAAM9mC,EAAIymC,EAChB,QAAS34C,EAAI,EAAGA,EAAI24C,EAAU34C,IAAK,CACjC,MAAMi5C,EAAWj5C,EAAIo0C,EACrB,IAAI50C,EAAI,EACJmT,EAAI,EACJrT,EAAI,EACJ4B,EAAI,EACR,QAASmb,EAAK,EAAGA,EAAK+3B,EAAS/3B,IAAM,CAC7B,MAAA68B,GAAYhnC,EAAIkiC,EAAU/3B,GAAMtG,EACtC,QAASojC,EAAK,EAAGA,EAAK/E,EAAS+E,IAAM,CAC7B,MAAAC,GAAcF,EAAWD,EAAWE,GAAM,EAChD35C,GAAKk5C,EAAYU,CAAU,EACtBzmC,GAAA+lC,EAAYU,EAAa,CAAC,EAC1B95C,GAAAo5C,EAAYU,EAAa,CAAC,EAC1Bl4C,GAAAw3C,EAAYU,EAAa,CAAC,CAAA,CACjC,CAEI,MAAAC,GAAcL,EAAMh5C,GAAK,EAClB84C,EAAAO,CAAU,EAAI75C,EAAIu5C,EAClBD,EAAAO,EAAa,CAAC,EAAI1mC,EAAIomC,EACtBD,EAAAO,EAAa,CAAC,EAAI/5C,EAAIy5C,EACtBD,EAAAO,EAAa,CAAC,EAAIn4C,EAAI63C,CAAA,CACrC,CAEK,OAAAD,CAAA,CAGT,MAAM,iBAAiB,CACrB,MAAA5G,EACA,OAAAE,CAAA,EAIsB,CACtB,YAAK,aAAa,CAAE,MAAAF,EAAO,OAAAE,CAAA,CAAQ,EAC5B,KAAK,WAAW,CAAA,CAezB,MAAM,cAAc,CAClB,MAAAF,EACA,YAAAoH,EACA,KAAAC,EAAO,IACP,KAAApS,EAAO,GACP,IAAAC,EAAM,IACN,YAAAoS,EAAc,CAAC,EACf,OAAAluC,EAAS,GACT,OAAAmuC,EAAS,EAAA,EAUoB,CAC7B,GACE,CAAC7F,GAAc,YACfA,GAAc,WAAW,OAAO,QAAU2F,GAC1C3F,GAAc,WAAW,OAASzM,GAClCyM,GAAc,WAAW,MAAQxM,EACjC,CACIwM,GAAc,YACFA,GAAA,WAAW,OAAO,QAAQ,EAE1C,MAAM2E,EAAS,IAAI/5C,EAAM,sBAAsB+6C,EAAM,CACnD,OAAQ/6C,EAAM,WACd,KAAMA,EAAM,iBACZ,gBAAiBi7C,EACjB,UAAWA,EAASj7C,EAAM,yBAA2BA,EAAM,aAC3D,UAAWA,EAAM,aACjB,WAAYi7C,EAASj7C,EAAM,qBAAuBA,EAAM,cAAA,CACzD,EACKk7C,EAAa,IAAIl7C,EAAM,WAAW2oC,EAAMC,EAAKmR,CAAM,EACzD3E,GAAc,WAAa,CAAE,OAAA2E,EAAQ,WAAAmB,EAAY,KAAAvS,EAAM,IAAAC,CAAI,CAAA,CAG7D,KAAM,CAAE,OAAAmR,EAAQ,WAAAmB,CAAW,EAAI9F,GAAc,WAClC8F,EAAA,SAAS,KAAKJ,CAAW,EAG9B,MAAAK,MAAuB,IAC7B,UAAW/I,KAAU4I,EACFG,EAAA,IAAI/I,EAAQA,EAAO,OAAO,EAC3CA,EAAO,QAAU,GAGnB,GAAItlC,EAAQ,CACJ,MAAAsuC,EAAa,IAAIp7C,EAAM,OAClBo7C,EAAA,SAAS,KAAKN,CAAW,EACpC,MAAM,KAAK,OAAO,CAAE,MAAApH,EAAO,OAAQ0H,EAAY,CAAA,CAG7C,GAAA,CACFhG,GAAc,cAAgB,KAEnB8F,EAAA,OAAO,KAAK,SAAUxH,CAAK,CAAA,QACtC,CACA0B,GAAc,cAAgB,MAAA,CAIhC,SAAW,CAAChD,EAAQiJ,CAAO,IAAKF,EAAiB,UAC/C/I,EAAO,QAAUiJ,EAGnB,OAAOtB,EAAO,OAAA,CAGhB,MAAM,iBAAyC,CACzC,GAAA,CAAC3E,GAAc,WACX,MAAA,IAAI,MAAM,gBAAgB,EAG5B,MAAAN,EAAWM,GAAc,WAAW,OAAO,QAC3ClH,EAAW,CAAC,EACZl7B,EAAU,CAAC,EAEjB,QAASjS,EAAI,EAAGA,EAAI+zC,EAAS,OAAO,OAAQ,EAAE/zC,EAAG,CAC/C,KAAM,CAAE,MAAAwW,EAAO,OAAAC,CAAA,EAAWs9B,EAAS,OAAO/zC,CAAC,EACrCk5C,EAAW1iC,EAAQC,EAAS,EAC5Bu2B,EAAW,IAAI,WAAWkM,CAAQ,EACxCjnC,EAAQ,KAAK+6B,CAAQ,EACf,MAAAprB,EAAU,KAAK,SAAS,4BAC5ByyB,GAAc,WAAW,OACzB,EACA,EACA79B,EACAC,EACAu2B,EACAhtC,CACF,EACAmtC,EAAS,KAAKvrB,CAAO,CAAA,CAGjB,aAAA,QAAQ,IAAIurB,CAAQ,EACnBl7B,CAAA,CAQT,MAAM,aAAa,CACjB,MAAA0gC,EACA,YAAAoH,EACA,KAAAC,EAAO,IACP,KAAApS,EAAO,GACP,IAAAC,EAAM,IACN,YAAAoS,EAAc,CAAC,EACf,OAAAluC,EAAS,EAAA,EASgB,OACnB,MAAAwuC,EAAc,MAAM,KAAK,cAAc,CAC3C,MAAA5H,EACA,YAAAoH,EACA,KAAAC,EACA,KAAApS,EACA,IAAAC,EACA,YAAAoS,EACA,OAAAluC,EACA,OAAQ,EAAA,CACT,EAEG,OAACsoC,GAAc,QACjBA,GAAc,MAAQ,IAAIp1C,EAAM,eAAe,KAAK,QAAQ,IAGvDkB,EAAAk0C,GAAc,QAAd,YAAAl0C,EAAqB,YAAYo6C,GAAa,OAAA,CAKvD,iBAAiB7sC,EAAsB8sC,EAAuB,CACvD9sC,EAAA,SAAUL,GAAS,CAClB,GAAAA,aAAgBpO,EAAM,KACxB,GAAI,MAAM,QAAQoO,EAAK,QAAQ,EAClB,UAAAohB,KAAYphB,EAAK,SACtBohB,aAAoBxvB,EAAM,uBAC5BwvB,EAAS,OAAS+rB,QAIlBntC,EAAK,oBAAoBpO,EAAM,uBACjCoO,EAAK,SAAS,OAASmtC,EAG7B,CACD,CAAA,CAGH,MAAM,gBACJjD,EACAkD,EACA9U,EAAe,GACf,SACA,MAAM8E,EAAW,KAAK,aAAa,IAAI8M,CAAM,EAC7C,GAAI,CAAC9M,EACI,OAAA,KAGT,MAAMp+B,EAAS,MAAM,KAAK,kBAAkB,UAAU,MAAOiW,GACnD,MAAMA,EAAO,KAAK,kBAAmB,CAC3C,MAAOmoB,EAAS,MAChB,MAAAgQ,CAAA,CACD,CACF,EAEG,IAAAt6C,EAAAo3C,EAAO,eAAP,MAAAp3C,EAAqB,UAAW,CAC5B,MAAAylC,EAAY2R,EAAO,aAAa,UAAU,cAC9ClrC,EAAO,QACPs5B,CACF,EACA,OAAO,IAAIyN,GAAU,CAAE,aAAcxN,EAAW,CAAA,CAE9C,IAAAtlC,EAAAi3C,EAAO,YAAP,MAAAj3C,EAAkB,UAAW,CACzB,MAAAslC,EAAY2R,EAAO,UAAU,UAAU,cAC3ClrC,EAAO,QACPs5B,CACF,EACA,OAAO,IAAIyN,GAAU,CAAE,UAAWxN,EAAW,CAAA,CAE/C,MAAM,IAAI,MACR,2DACF,CAAA,CAGF,IAAI,oBAA8B,CAChC,OAAO,KAAK,SAAS,kBAAA,CAGvB,IAAI,mBAAmBx7B,EAAgB,CACjC,KAAK,SAAS,qBAAuBA,IACvC,KAAK,SAAS,mBAAqBA,EACnC,KAAK,SAAS,YAAc,GAC9B,CAEJ,EAxVEiqC,GAAe,eAAiB,IAAM,CAE9B,MAAAhO,EAAa,IAAI,YAAY,KAAU,EACvCtF,EAAU,IAAI9hC,EAAM,YAAYonC,EAAY,KAAM,CAAC,EACzD,OAAAtF,EAAQ,OAAS9hC,EAAM,kBACvB8hC,EAAQ,KAAO9hC,EAAM,gBACrB8hC,EAAQ,eAAiB,WACzBA,EAAQ,YAAc,GACfA,CAAA,GACN,EAoHHsT,GAAe,WAKJ,KACXA,GAAe,MAAqC,KA5gDzC,IAAAqG,GAAArG,GC3SN,MAAMuE,EAAmC,CA4B9C,YAAY3rC,EAA6B,OAiCnC,GAhCJ,KAAK,MAAQA,EAAQ,MAChB,KAAA,QAAUA,EAAQ,SAAW,GAClC,KAAK,cAAgBA,EAAQ,cAC7B,KAAK,gBAAkBA,EAAQ,gBAC/B,KAAK,MAAQ,EACR,KAAA,QAAQ9M,EAAA8M,EAAQ,QAAR,YAAA9M,EAAe,QAAS,EAErC,KAAK,UAAY,EAEjB,KAAK,cAAgB,IAAIw6C,GAAa,CAAE,MAAO,EAAG,EAC7C,KAAA,YAAc,IAAIC,GAAoB,CACzC,MAAOnD,GAAW,mBAAA,CACnB,EAEI,KAAA,uBAAyB,IAAIoD,GAAc,CAC9C,MAAO,IAAI57C,EAAM,QAAQ,EAAK,EAAKyI,GAAcC,EAAY,CAAA,CAC9D,EACI,KAAA,WAAa,IAAImzC,GAAc,CAClC,MAAO,EAAA,CACR,EAED,KAAK,UAAY,IAAIH,GAAa,CAAE,MAAO,EAAG,EACzC,KAAA,MAAQ,IAAII,GAAc,CAAE,MAAO,IAAI97C,EAAM,QAAW,EAE7D,KAAK,UAAYgO,EAAQ,UACzB,KAAK,SAAWA,EAAQ,SACpB,CAAC,KAAK,UAAY,KAAK,YACpB,KAAA,SAAW+tC,GAAiB,KAAK,SAAS,GAE7C,CAAC,KAAK,UAAY,KAAK,UACpB,KAAA,SAAWC,GAAyB,KAAK,OAAO,GAEnD,CAAC,KAAK,SACF,MAAA,IAAI,MAAM,+BAA+B,EAE7C,KAAK,WAAapyC,GAAc,MAC7B,KAAA,eAAiB,KAAK,WAAW,EACxC,CAGF,SAAU,CACJ,KAAK,YAAY,QAAU4uC,GAAW,sBACnC,KAAA,YAAY,MAAM,QAAQ,EAC1B,KAAA,YAAY,MAAQA,GAAW,oBACtC,CAGF,SAASrT,EAAe,CACtB,KAAK,MAAQA,CAAA,CAGf,YAA8D,CAC5D,OAAI,KAAK,eACA,KAAK,gBAGd,KAAK,gBAAkB,SAAY,CAGjC,GAFM,MAAA8W,GAEF,KAAK,UAAW,CAElB,MAAMC,EAAYtU,GAAkB,KAAK,UAAU,MAAM,EAAG,OAAO,CAAC,EACpE,GAAIsU,EACK,OAAAA,EAEH,MAAA,IAAI,MAAM,6BAA6B,CAAA,CAE3C,GAAA,CAAC,KAAK,QACF,MAAA,IAAI,MAAM,8BAA8B,EAKhD,UAAWC,IAAY,CAAC,MAAO,IAAM,KAAM,KAAO,IAAI,EAAG,CACjD,MAAAtU,EAAQ,MAAMuU,GAAW,CAC7B,IAAK,KAAK,QACV,cAAe,KAAK,cACpB,gBAAiB,KAAK,gBACtB,OAAQ,EACR,MAAOD,CAAA,CACR,EACKD,EAAYtU,GAAkBC,CAAK,EACzC,GAAIqU,EACK,OAAAA,CACT,CAEI,MAAA,IAAI,MAAM,6BAA6B,CAAA,KAC1C,KAAMA,GAEFA,CACR,EAEI,KAAA,eAAe,MAAOp5B,GAAU,CACnC,QAAQ,MAAMA,CAAK,CAAA,CAGpB,EAEM,KAAK,eAAA,CAGd,SAAS/b,EAAuB,CAC9B,OAAO,KAAK,QAAQ,QAAQ,WAAY,QAAQA,CAAK,GAAG,CAAA,CAG1D,MAAM,iBAAiBA,EAAe,CACpC,IAAIs1C,EAEA,GAAA,KAAK,WAAazyC,GAAc,IAAK,CACvC,KAAM,CAAE,KAAA0yC,EAAM,YAAAC,CAAgB,EAAA,MAAM,KAAK,WAAW,EACpD,GAAIx1C,EAAQ,GAAKA,GAASu1C,EAAK,OAAO,OACpC,MAAM,IAAI,MACR,6BAA6Bv1C,CAAK,UAAUu1C,EAAK,OAAO,OAAS,CAAC,GACpE,EAEF,GAAI,CAAE,OAAAv6B,EAAQ,MAAA8lB,EAAO,SAAA2U,CAAa,EAAAF,EAAK,OAAOv1C,CAAK,EAEnD,GAAIy1C,EAAU,CACZ,GAAI,KAAK,UACD,MAAA,IAAI,MAAM,+CAA+C,EAEjE,MAAMC,EAAe,IAAI,IACvB,KAAK,QACL,OAAO,SAAS,MAChB,SAAS,EACLC,EAAW,IAAI,IAAIF,EAAUC,CAAY,EAAE,SAAS,EAC1DJ,EAAc,MAAMD,GAAW,CAC7B,IAAKM,EACL,cAAe,KAAK,cACpB,gBAAiB,KAAK,eAAA,CACvB,CAAA,SAES36B,GAAAw6B,EAEN,KAAK,UAAW,CAClB,GAAIx6B,EAAS,GAAKA,EAAS8lB,EAAQ,KAAK,UAAU,OAChD,MAAM,IAAI,MACR,kCAAkC9lB,CAAM,MAAM8lB,CAAK,MAAM,KAAK,UAAU,MAAM,EAChF,EAEFwU,EAAc,KAAK,UAAU,MAAMt6B,EAAQA,EAAS8lB,CAAK,CAAA,SAChD,KAAK,QACdwU,EAAc,MAAMD,GAAW,CAC7B,IAAK,KAAK,QACV,cAAe,KAAK,cACpB,gBAAiB,KAAK,gBACtB,OAAAr6B,EACA,MAAA8lB,CAAA,CACD,MAEK,OAAA,IAAI,MAAM,8BAA8B,CAElD,SACS,MAAK,UAEhB,GAAW,KAAK,QAAS,CACjB,MAAApD,EAAM,KAAK,SAAS19B,CAAK,EACzB41C,EAAU,IAAI,QAAQlY,EAAK,CAC/B,QAAS,KAAK,cACV,IAAI,QAAQ,KAAK,aAAa,EAC9B,OACJ,YAAa,KAAK,gBAAkB,UAAY,aAAA,CACjD,EACKmY,EAAW,MAAM,MAAMD,CAAO,EACpC,GAAI,CAACC,EAAS,IAAM,CAACA,EAAS,KAC5B,MAAM,IAAI,MACR,oBAAoBnY,CAAG,MAAMmY,EAAS,MAAM,IAAIA,EAAS,UAAU,EACrE,EAEFP,EAAc,IAAI,WAAW,MAAMO,EAAS,aAAa,CAAA,KAEnD,OAAA,IAAI,MAAM,8BAA8B,EAGhD,OAAO,MAAM34B,GAAW,WAAW,MAAOZ,GAAW,eAC/C,GAAA,CAAC,KAAK,MACF,MAAA,IAAI,MAAM,2BAA2B,EAEzC,GAAA,CAAC,KAAK,MAAM,UAAW,CAQzB,MAAM8jB,GAPU,MAAM9jB,EAAO,KAAK,mBAAoB,CACpD,UAAWg5B,EACX,SAAU,KAAK,SAASt1C,CAAK,EAC7B,UAAU7F,EAAA,KAAK,WAAL,YAAAA,EAAe,QACzB,UAAUG,EAAA,KAAK,WAAL,YAAAA,EAAe,QACzB,UAAU8vB,EAAA,KAAK,WAAL,YAAAA,EAAe,OAAM,CAChC,GACwB,UACrB,OAAC,KAAK,gBACR,KAAK,cAAgBgW,EAAU,cAE/B,KAAK,MAAQA,EAAU,MAAM,IACzB,EACAA,EAAU,MAAM,IACd,EACAA,EAAU,MAAM,IACd,EACA,EAER,KAAK,uBAAuB,MAAM,IAChC,KAAK,cAAc,QAAU,EAC7B,KAAK,cAAc,QAAU,EAC7B,KAAK,cAAc,YAAc1+B,GACjC,KAAK,cAAc,YAAcC,EACnC,EAEA,KAAK,WAAW,MAAQ,KAAK,cAAc,YAAc,GAEzD,KAAK,MAAM,MAAM,IACf,KAAK,cAAc,QAAU,EAC7B,KAAK,cAAc,QAAU,EAC7B,KAAK,cAAc,QAAU,CAC/B,GAEF,KAAK,SAAWy+B,EAAU,MAAM,UAAY,KAAK,SACjD,KAAK,SAAWA,EAAU,MAAM,UAAY,KAAK,SACjD,KAAK,SAAWA,EAAU,MAAM,UAAY,KAAK,SAC1CA,CAAA,CAGT,MAAM0V,EAAW,KAAK,SAUhB1V,GATU,MAAM9jB,EAAO,KAAK,gBAAiB,CACjD,UAAWg5B,EACX,SAAU,KAAK,SAASt1C,CAAK,EAC7B,UAAU+1C,EAAA,KAAK,WAAL,YAAAA,EAAe,QACzB,UAAUC,EAAA,KAAK,WAAL,YAAAA,EAAe,QACzB,SAAUF,EACN,CAACA,EAAS,CAAC,EAAE,MAAM,EAAGA,EAAS,CAAC,EAAE,MAAO,CAAA,EACzC,MAAA,CACL,GACwB,UACrB,OAAC,KAAK,gBACR,KAAK,cAAgBhzC,GACrB,KAAK,MACHs9B,EAAU,MAAM,MAAQA,EAAU,MAAM,KACpC,EACAA,EAAU,MAAM,IACd,EACAA,EAAU,MAAM,IACd,EACA,GAEZ,KAAK,SAAWA,EAAU,MAAM,UAAY,KAAK,SACjD,KAAK,SAAWA,EAAU,MAAM,UAAY,KAAK,SACjD,KAAK,SAAWA,EAAU,MAAM,UAAY,KAAK,SAC1CA,CAAA,CACR,CAAA,CAGH,OAAO7vB,EAAmBmvB,EAAsB,CAC1C,GAAA,CAAC,KAAK,MACF,MAAA,IAAI,MAAM,2BAA2B,EAGvC,MAAA2G,EAAW,KAAK,MAAM,SAC5B,KAAK,UAAY91B,EACZ,KAAA,cAAc,MAAQ,KAAK,UAChC,MAAM8/B,EAAO,KAAK,KAAK9/B,EAAY,KAAK,EAEpC,IAAA0lC,EACF,KAAK,YAAY,QAAUxE,GAAW,oBAClC,OACA,KAAK,YAAY,MAMvB,GALIwE,GAAkB5F,EAAO4F,EAAe,MAAM,SAChDA,EAAe,QAAQ,EACNA,EAAA,QAGf,CAACA,EACHA,EAAiB,IAAIh9C,EAAM,YACzBymC,EACA,KACA2Q,EACAp3C,EAAM,kBACNA,EAAM,eACR,EACAg9C,EAAe,eAAiB,WAChCA,EAAe,YAAc,GAC7B5P,EAAS,YAAY4P,CAAc,EACnC,KAAK,YAAY,MAAQA,MACpB,CACkBA,EAAe,MAAM,KAC7B,IAAIvW,EAAQ,SAAS,EAAGnvB,CAAS,CAAC,EAE3C,MAAAggC,EAAKlK,EAAS,WAAW,EACtBA,EAAA,MAAM,cAAckK,EAAG,QAAQ,EACxClK,EAAS,MAAM,YACbkK,EAAG,WACH2F,GAAa7P,EAAU4P,CAAc,CACvC,EACG1F,EAAA,WAAWA,EAAG,oBAAqB,IAAI,EACvCA,EAAA,YAAYA,EAAG,oBAAqB,EAAK,EACzCA,EAAA,cACDA,EAAG,WACH,EACA,EACA,EACA,KACAF,EACAE,EAAG,aACHA,EAAG,aACH7Q,CACF,EACA2G,EAAS,MAAM,YAAYkK,EAAG,WAAY,IAAI,CAAA,CAChD,CAGF,mBAAoB,CAAA,CAEpB,cAAuB,CACrB,OAAO,KAAK,SAAA,CAGd,WAAqB,CACf,OAAC,KAAK,MAGH,KAAK,IAAI,KAAK,MAAO,KAAK,MAAM,KAAK,EAAI,EAFvC,EAEuC,CAGlD,UAAmB,CACjB,OAAO,KAAK,KAAA,CAGd,WAAW,CACT,MAAAvoC,EACA,WAAAq2B,CAAA,EAImC,CAC/B,GAAA,CAAC,KAAK,MACF,MAAA,IAAI,MAAM,2BAA2B,EAG7C,MAAM8X,EAAa,KAAK,MAAM,UAAU,MAAM,CAC5C,MAAAnuC,EACA,UAAW,KAAK,cAChB,QAAS,KAAK,WACf,CAAA,EAAE,MAEC,OAAC,KAAK,MAAM,UAuBZ,KAAK,UAAU,GAAKq2B,GACjB,KAAA,UAAU,MAAQ,KAAK,IAAI,KAAK,MAAO,KAAK,MAAO,KAAK,MAAM,KAAK,EACjE,KAAK,MAAM,gBAAgB,MAAM,CACtC,MAAO8X,EACP,WAAA9X,EACA,MAAO,KAAK,SACb,CAAA,EAAE,QAEE,KAAK,MAAM,aAAa,MAAM,CAAE,MAAO8X,CAAY,CAAA,EAAE,OA9BtD,KAAK,UAAU,GAAK9X,GACjB,KAAA,UAAU,MAAQ,KAAK,IAC1B,KAAK,MACL,KAAK,MACL,KAAK,MAAM,KACb,EACO,KAAK,MAAM,aAAa,MAAM,CACnC,MAAO8X,EACP,uBAAwB,KAAK,uBAC7B,WAAY,KAAK,WACjB,WAAA9X,EACA,MAAO,KAAK,UACZ,MAAO,KAAK,KACb,CAAA,EAAE,QAEE,KAAK,MAAM,UAAU,MAAM,CAChC,MAAO8X,EACP,uBAAwB,KAAK,uBAC7B,WAAY,KAAK,UAClB,CAAA,EAAE,MAWuD,CAK9D,aACEz5B,EAQA,CACA,GAAI,CAAC,KAAK,OAAS,CAAC,KAAK,UACvB,OAEI,MAAAqB,EAAY,KAAK,MAAM,UACvB2hB,EAAU,KAAK,YAAY,MAAM,MAAM,KACvC0W,EAAmB,KAAK,MAAM,cAAc,MAAM,MACrD,KACGC,EAAsB,KAAK,MAAM,WAAW,MAAM,MACrD,KACG3pC,EAAwC,CAC5C0pC,EACAC,CACF,EAEA,QAASr8C,EAAI,EAAGA,EAAI,KAAK,UAAW,EAAEA,EAAG,CACjC,MAAAm8C,EAAazW,EAAQ1lC,CAAC,EACtBylC,EAAW1hB,EACbtQ,GAAef,EAAWypC,CAAU,EACpCtmC,GAAYumC,EAAkBD,EAAY,KAAK,aAAa,EAChEz5B,EACE1iB,EACAylC,EAAS,OACTA,EAAS,OACTA,EAAS,WACTA,EAAS,QACTA,EAAS,KACX,CAAA,CACF,CAEJ,CAkCO,MAAM6W,EAAN,MAAMA,CAAW,CA+FtB,YAAYrvC,EAA4B,CAlF3B,KAAA,WAAA,EAEb,KAAA,sBAGQ,IACR,KAAA,kBAGM,CAAC,EA0EL,KAAK,SAAWA,EAAQ,SACnB,KAAA,UAAYA,EAAQ,WAAa,GAEtC,KAAK,WAAa,MACb,KAAA,UAAYA,EAAQ,WAAa,SACtC,KAAK,SAAW,KAAK,KAAK,KAAK,UAAY,KAAK,UAAU,EACrD,KAAA,UAAY,KAAK,SAAW,KAAK,WAEjC,KAAA,MAAQA,EAAQ,OAAS,EAC9B,KAAK,MAAQ,EAER,KAAA,UAAYA,EAAQ,WAAa,GACjC,KAAA,YAAcA,EAAQ,aAAe,EAErC,KAAA,sBAAwB,IAC7B,KAAK,kBAAoB,IAAI,MAAM,KAAK,QAAQ,EAC3C,KAAA,aAAe,MAAM,KAAK,CAAE,OAAQ,KAAK,UAAY,CAAC/B,EAAGlL,IAAMA,CAAC,EAChE,KAAA,YAAc,IACnB,KAAK,cAAgB,CAAC,EACtB,KAAK,WAAa,CAAC,EACnB,KAAK,aAAe,CAAC,EACrB,KAAK,eAAiB,CAAC,EAEvB,KAAK,SAAW,CAAC,EACjB,KAAK,QAAU,CAAC,EAChB,KAAK,cAAgB,CAAC,EAEjB,KAAA,cAAgB,IAAIu8C,GAAyB,CAChD,MAAO,KAAK,sBACV,IAAI,YAAY,KAAK,SAAW,IAAM,IAAM,CAAC,EAC7C,IACA,IACA,KAAK,SACLt9C,EAAM,kBACNA,EAAM,gBACN,UAAA,CACF,CACD,EACI,KAAA,WAAa,IAAIs9C,GAAyB,CAC7C,MAAO,KAAK,UACR,KAAK,sBACH,IAAI,YAAY,KAAK,SAAW,IAAM,IAAM,CAAC,EAC7C,IACA,IACA,KAAK,SACLt9C,EAAM,kBACNA,EAAM,gBACN,YAEFq9C,EAAW,eAAA,CAChB,EACI,KAAA,WAAa,IAAIC,GAAyB,CAC7C,MAAO,KAAK,UACRD,EAAW,mBACXA,EAAW,eAAA,CAChB,EACI,KAAA,WAAa,IAAIC,GAAyB,CAC7C,MAAO,KAAK,UACRD,EAAW,mBACXA,EAAW,eAAA,CAChB,EACI,KAAA,WAAa,IAAIC,GAAyB,CAC7C,MAAO,KAAK,UACRD,EAAW,mBACXA,EAAW,eAAA,CAChB,EACI,KAAA,YAAc,IAAIC,GAAyB,CAC9C,MAAOD,EAAW,mBAAA,CACnB,EAED,KAAK,UAAYE,GACf,CAAE,MAAO,MAAO,UAAW,MAAO,QAAS,YAAa,EACxD,CAAE,MAAO,KAAM,EACf,CAAC,CAAE,MAAAxuC,EAAO,UAAAuI,EAAW,QAAAmvB,KACZ,IAAI+W,EAAU,CACnB,QAAS,CACP,MAAO,MACP,UAAW,MACX,QAAS,YACX,EACA,SAAU,CAAE,MAAO,KAAM,EACzB,OAAQ,CACN,MAAAzuC,EACA,UAAAuI,EACA,QAAAmvB,CACF,EACA,WAAY,CAAC,CAAE,OAAA55B,EAAQ,QAAAK,CAAQ,IAC7BuwC,EAAmB;AAAA,kBACb5wC,EAAO,KAAK,OAAOA,EAAO,SAAS;AAAA;AAAA;AAAA;AAAA,wCAIbA,EAAO,KAAK,kBAAkBA,EAAO,KAAK;AAAA,sCAC5CA,EAAO,OAAO,oBAAoBA,EAAO,KAAK;AAAA,cACtEK,EAAQ,KAAK;AAAA,WAChB,CACF,CAAA,EAAE,OAEP,EAEA,KAAK,UAAYqwC,GACf,CAAE,MAAO,MAAO,uBAAwB,OAAQ,WAAY,MAAO,EACnE,CAAE,OAAQG,CAAY,EACtB,CAAC,CAAE,MAAA3uC,EAAO,uBAAAqZ,EAAwB,WAAAu1B,KACzB,IAAIH,EAAU,CACnB,QAAS,CACP,MAAO,MACP,cAAe,kBACf,uBAAwB,OACxB,WAAY,MACd,EACA,SAAU,CAAE,OAAQE,CAAY,EAChC,OAAQ,CACN,MAAA3uC,EACA,cAAe,KAAK,cACpB,uBAAAqZ,EACA,WAAAu1B,CACF,EACA,QAAS,IAAM,CAACC,EAAiB,EACjC,WAAY,CAAC,CAAE,OAAA/wC,EAAQ,QAAAK,CAAQ,IAC7BuwC,EAAmB;AAAA,0BACL5wC,EAAO,KAAK;AAAA;AAAA,4CAEMA,EAAO,aAAa;AAAA;AAAA,8CAElBK,EAAQ,MAAM,YAAYA,EAAQ,MAAM,YAAYA,EAAQ,MAAM,gBAAgBA,EAAQ,MAAM,UAAUL,EAAO,sBAAsB;AAAA,mBAClKK,EAAQ,MAAM,gCAAgCA,EAAQ,MAAM;AAAA;AAAA;AAAA;AAAA,cAIjEA,EAAQ,MAAM;AAAA,cACdA,EAAQ,MAAM;AAAA,kBACVL,EAAO,UAAU;AAAA,gBACnBK,EAAQ,MAAM;AAAA;AAAA,WAEnB,CACF,CAAA,EAAE,OAEP,EAEA,KAAK,aAAeqwC,GAClB,CACE,MAAO,MACP,uBAAwB,OACxB,WAAY,OACZ,WAAY,OACZ,MAAO,MACP,MAAO,MACT,EACA,CAAE,OAAQG,CAAY,EACtB,CAAC,CACC,MAAA3uC,EACA,uBAAAqZ,EACA,WAAAu1B,EACA,WAAAvY,EACA,MAAAqC,EACA,MAAAoW,CAAA,IACI,CAEF,GAAA,CAAC9uC,GACD,CAACqZ,GACD,CAACu1B,GACD,CAACvY,GACD,CAACqC,GACD,CAACoW,EAEK,MAAA,IAAI,MAAM,mCAAmC,EAEjD,IAAAp4B,EAAS,KAAK,UAAU,MAAM,CAChC,MAAA1W,EACA,uBAAAqZ,EACA,WAAAu1B,CACD,CAAA,EAAE,OAEH,MAAMtY,EAAcyY,GAAiBr4B,CAAM,EAAE,QAAQ,OAC/CqD,EAAUi1B,GAAeC,GAAS3Y,EAAaD,CAAU,CAAC,EAChE,IAAIjf,EAAM83B,GAAiB,CACzB,MAAOl3B,GAAmBhY,CAAK,EAC/B,QAAA+Z,EACA,MAAA2e,EACA,WAAY,KAAK,WACjB,WAAY,KAAK,WACjB,WAAY,KAAK,WACjB,MAAAoW,CACD,CAAA,EAAE,IACG,OAAA13B,EAAA+3B,GAAS/3B,EAAK23B,GAAiBr4B,CAAM,EAAE,QAAQ,GAAG,EACxDA,EAAS04B,GAAmB,CAAE,OAAA14B,EAAQ,IAAAU,EAAK,EACpC,CAAE,OAAAV,CAAO,CAAA,CAEpB,EAEA,KAAK,aAAe83B,GAClB,CAAE,MAAO,KAAM,EACf,CAAE,OAAQG,CAAY,EACtB,CAAC,CAAE,MAAA3uC,CAAA,IACM,IAAIyuC,EAAU,CACnB,QAAS,CACP,MAAO,MACP,YAAa,kBACb,YAAa,iBACf,EACA,SAAU,CAAE,OAAQE,CAAY,EAChC,OAAQ,CACN,MAAA3uC,EACA,YAAa,KAAK,cAClB,YAAa,KAAK,UACpB,EACA,QAAS,IAAM,CAAC6uC,EAAiB,EACjC,WAAY,CAAC,CAAE,OAAA/wC,EAAQ,QAAAK,CAAQ,IAC7BuwC,EAAmB;AAAA,0BACL5wC,EAAO,KAAK;AAAA;AAAA,sCAEAA,EAAO,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAMlBA,EAAO,WAAW;AAAA,yCACfK,EAAQ,MAAM,YAAYA,EAAQ,MAAM,YAAYA,EAAQ,MAAM,gBAAgBA,EAAQ,MAAM;AAAA,4BAC7GA,EAAQ,MAAM;AAAA;AAAA;AAAA;AAAA,cAI5BA,EAAQ,MAAM;AAAA,cACdA,EAAQ,MAAM;AAAA,WACjB,CACF,CAAA,EAAE,OAEP,EAEA,KAAK,gBAAkBqwC,GACrB,CACE,MAAO,MACP,WAAY,OACZ,MAAO,KACT,EACA,CAAE,OAAQG,CAAY,EACtB,CAAC,CAAE,MAAA3uC,EAAO,WAAAq2B,EAAY,MAAAqC,KAAY,CAChC,GAAI,CAAC14B,GAAS,CAACq2B,GAAc,CAACqC,EACtB,MAAA,IAAI,MAAM,mCAAmC,EAErD,IAAIhiB,EAAS,KAAK,aAAa,MAAM,CAAE,MAAA1W,CAAO,CAAA,EAAE,OAEhD,MAAMs2B,EAAcyY,GAAiBr4B,CAAM,EAAE,QAAQ,OAC/CqD,EAAUi1B,GAAeC,GAAS3Y,EAAaD,CAAU,CAAC,EAChE,IAAIjf,EAAMuf,GAAc,CACtB,MAAO3e,GAAmBhY,CAAK,EAC/B,QAAA+Z,EACA,MAAA2e,EACA,WAAY,KAAK,WACjB,WAAY,KAAK,WACjB,YAAa,KAAK,WAClB,YAAa,KAAK,WACnB,CAAA,EAAE,IACG,OAAAthB,EAAA+3B,GAAS/3B,EAAK23B,GAAiBr4B,CAAM,EAAE,QAAQ,GAAG,EACxDA,EAAS04B,GAAmB,CAAE,OAAA14B,EAAQ,IAAAU,EAAK,EACpC,CAAE,OAAAV,CAAO,CAAA,CAEpB,CAAA,CAGF,SAAU,CACR,KAAK,UAAY,GACjB,KAAK,YAAc,EAEd,KAAA,cAAc,MAAM,QAAQ,EAC5B,KAAA,cAAc,MAAM,OAAO,KAAO,KACnC,KAAK,WAAW,QAAU43B,EAAW,kBAClC,KAAA,WAAW,MAAM,QAAQ,EACzB,KAAA,WAAW,MAAM,OAAO,KAAO,MAGjC,KAAK,WAcJ,KAAK,WAAW,QAAUA,EAAW,qBAClC,KAAA,WAAW,MAAM,QAAQ,EACzB,KAAA,WAAW,MAAM,OAAO,KAAO,MAElC,KAAK,WAAW,QAAUA,EAAW,qBAClC,KAAA,WAAW,MAAM,QAAQ,EACzB,KAAA,WAAW,MAAM,OAAO,KAAO,MAElC,KAAK,WAAW,QAAUA,EAAW,qBAClC,KAAA,WAAW,MAAM,QAAQ,EACzB,KAAA,WAAW,MAAM,OAAO,KAAO,MAElC,KAAK,YAAY,QAAUA,EAAW,sBACnC,KAAA,YAAY,MAAM,QAAQ,EAC1B,KAAA,YAAY,MAAM,OAAO,KAAO,QA3BnC,KAAK,WAAW,QAAUA,EAAW,kBAClC,KAAA,WAAW,MAAM,QAAQ,EACzB,KAAA,WAAW,MAAM,OAAO,KAAO,MAElC,KAAK,WAAW,QAAUA,EAAW,kBAClC,KAAA,WAAW,MAAM,QAAQ,EACzB,KAAA,WAAW,MAAM,OAAO,KAAO,MAElC,KAAK,WAAW,QAAUA,EAAW,kBAClC,KAAA,WAAW,MAAM,QAAQ,EACzB,KAAA,WAAW,MAAM,OAAO,KAAO,MAmBxC,CAGM,iBAAiB5V,EAAe,CACtC,KAAK,MAAQ,KAAK,IAAI,KAAK,MAAOA,CAAK,EAClC,KAAK,UAiBN,KAAK,OAAS,GACd,KAAK,WAAW,QAAU4V,EAAW,qBAEhC,KAAA,WAAW,MAAQ,KAAK,sBAC3B,IAAI,YAAY,KAAK,SAAW,IAAM,IAAM,CAAC,EAC7C,IACA,IACA,KAAK,SACLr9C,EAAM,kBACNA,EAAM,gBACN,UACF,GA1BA,KAAK,OAAS,GACd,KAAK,WAAW,QAAUq9C,EAAW,kBAEhC,KAAA,WAAW,MAAQ,KAAK,sBAC3B,IAAI,YAAY,KAAK,SAAW,IAAM,IAAM,CAAC,EAC7C,IACA,IACA,KAAK,SACLr9C,EAAM,gBACNA,EAAM,gBACN,QACF,GAmBF,KAAK,OAAS,GACd,KAAK,WAAW,SACZ,KAAK,UAEHq9C,EAAW,mBADXA,EAAW,mBAGZ,KAAA,WAAW,MAAQ,KAAK,sBAC3B,IAAI,YAAY,KAAK,SAAW,IAAM,IAAM,CAAC,EAC7C,IACA,IACA,KAAK,SACLr9C,EAAM,kBACNA,EAAM,gBACN,UACF,GAEG,KAAK,UAgBJ,KAAK,OAAS,IACZ,KAAK,WAAW,QAAUq9C,EAAW,qBAClC,KAAA,WAAW,MAAQ,KAAK,sBAC3B,IAAI,YAAY,KAAK,SAAW,IAAM,IAAM,CAAC,EAC7C,IACA,IACA,KAAK,SACLr9C,EAAM,kBACNA,EAAM,gBACN,UACF,GAEE,KAAK,YAAY,QAAUq9C,EAAW,sBACnC,KAAA,YAAY,MAAQ,KAAK,sBAC5B,IAAI,YAAY,KAAK,SAAW,IAAM,IAAM,CAAC,EAC7C,IACA,IACA,KAAK,SACLr9C,EAAM,kBACNA,EAAM,gBACN,UACF,IAnCF,KAAK,OAAS,GACd,KAAK,WAAW,QAAUq9C,EAAW,kBAEhC,KAAA,WAAW,MAAQ,KAAK,sBAC3B,IAAI,YAAY,KAAK,SAAW,IAAM,IAAM,CAAC,EAC7C,IACA,IACA,KAAK,SACLr9C,EAAM,kBACNA,EAAM,gBACN,UACF,EA2BJ,CAGM,cAAmC,CAClC,OAAA,KAAK,aAAa,MAAM,CAAA,CAGzB,SAAS44C,EAAc,CACxB,KAAA,aAAa,KAAKA,CAAI,CAAA,CAG7B,eAAeN,EAAqBvxC,EAAe,CACjD,MAAM4a,EAAS,KAAK,kBAAkB,IAAI22B,CAAM,EAChD,GAAK32B,EAGL,OAAOA,EAAO5a,CAAK,CAAA,CAGb,sBACNuxC,EACAvxC,EACA6xC,EACA3B,EACA,CACK,KAAK,kBAAkB,IAAIqB,CAAM,GACpC,KAAK,kBAAkB,IAAIA,EAAQ,CAAA,CAAE,EAEvC,MAAM32B,EAAS,KAAK,kBAAkB,IAAI22B,CAAM,EAChD,GAAI,CAAC32B,EACG,MAAA,IAAI,MAAM,YAAY,EAE1B5a,GAAS4a,EAAO,SAClBA,EAAO,OAAS5a,EAAQ,GAE1B,MAAMq3C,EAAU,CAAE,KAAAxF,EAAM,IAAK3B,CAAI,EACjC,OAAAt1B,EAAO5a,CAAK,EAAIq3C,EACX,KAAA,QAAQ,IAAIA,CAAO,EAEnB,KAAA,kBAAkBxF,CAAI,EAAI,CAAE,OAAAN,EAAQ,MAAAvxC,EAAO,KAAM,YAAY,KAAM,EACjE,KAAK,kBAAkB6xC,CAAI,CAAA,CAG5B,sBACNN,EACAvxC,EACA6xC,EACA,CACA,MAAMj3B,EAAS,KAAK,kBAAkB,IAAI22B,CAAM,EAChD,GAAI,CAAC32B,EACG,MAAA,IAAI,MAAM,YAAY,EAGxB,MAAAy8B,EAAUz8B,EAAO5a,CAAK,EAC5B,GAAI,CAACq3C,EACH,MAAM,IAAI,MACR,iCAAiC9F,CAAM,YAAYvxC,CAAK,WAAW6xC,CAAI,EACzE,EAMK,IAJF,KAAA,QAAQ,OAAOwF,CAAO,EAE3Bz8B,EAAO5a,CAAK,EAAI,OAET4a,EAAO,OAAS,GAAKA,EAAOA,EAAO,OAAS,CAAC,IAAM,QACxDA,EAAO,IAAI,EAQX,IANEA,EAAO,SAAW,GACf,KAAA,kBAAkB,OAAO22B,CAAM,EAGjC,KAAA,kBAAkBM,CAAI,EAAI,OAE7B,KAAK,kBAAkB,OAAS,GAChC,KAAK,kBAAkB,KAAK,kBAAkB,OAAS,CAAC,IAAM,QAE9D,KAAK,kBAAkB,IAAI,CAC7B,CAGM,WACNA,EACAyF,EACApX,EACAqX,EACA,CACM,MAAAC,EAAW3F,EAAO,KAAK,WAuBf,KAAK,cAAc,MAAM,MAAM,KAE1C,SAAS2F,EAAW,EAAGA,EAAW,EAAIF,EAAY,MAAM,EACxD,IAAIA,CAAW,EACb,KAAA,cAAc,MAAM,eAAezF,CAAI,EACvC,KAAA,cAAc,MAAM,YAAc,GAEnC0F,IACY,KAAK,WAAW,MAAM,MAAM,KAEvC,SAASC,EAAW,EAAGA,EAAW,EAAID,EAAS,MAAM,EACrD,IAAIA,CAAQ,EACV,KAAA,WAAW,MAAM,eAAe1F,CAAI,EACpC,KAAA,WAAW,MAAM,YAAc,IAGhC,MAAAnR,EAAQ,KAAK,UACfR,EAAM,MAAQA,EAAM,KAClB,EACAA,EAAM,IACJ,EACAA,EAAM,IACJ,EACA,EACNA,EAAM,IACJ,EACAA,EAAM,IACJ,EACAA,EAAM,IACJ,EACA,EAGN,GAFJ,KAAK,iBAAiBQ,CAAK,EAEtB,KAAK,WA0BR,GACE,KAAK,WAAW,QAAU4V,EAAW,oBACrCpW,EAAM,IACN,CACA,MAAMtB,EAAMsB,EAAM,IACJ,KAAK,WAAW,MAAM,MAAM,KACpC,SAASsX,EAAW,EAAGA,EAAW,EAAI5Y,EAAI,MAAM,EAAE,IAAIA,CAAG,EAC1D,KAAA,WAAW,MAAM,eAAeiT,CAAI,EACpC,KAAA,WAAW,MAAM,YAAc,EAAA,UAjClC,KAAK,WAAW,QAAUyE,EAAW,iBAAmBpW,EAAM,IAAK,CAkBrE,MAAMtB,EAAMsB,EAAM,IACJ,KAAK,WAAW,MAAM,MAAM,KACpC,SAASsX,EAAW,EAAGA,EAAW,EAAI5Y,EAAI,MAAM,EAAE,IAAIA,CAAG,EAC1D,KAAA,WAAW,MAAM,eAAeiT,CAAI,EACpC,KAAA,WAAW,MAAM,YAAc,EAAA,CAexC,GAAI,KAAK,WAAW,QAAUyE,EAAW,iBAAmBpW,EAAM,IAAK,CAkBrE,MAAMnB,EAAMmB,EAAM,IACJ,KAAK,WAAW,MAAM,MAAM,KACpC,SAASsX,EAAW,EAAGA,EAAW,EAAIzY,EAAI,MAAM,EAAE,IAAIA,CAAG,EAC1D,KAAA,WAAW,MAAM,eAAe8S,CAAI,EACpC,KAAA,WAAW,MAAM,YAAc,EAAA,CAGlC,GAAC,KAAK,UAyBH,CACL,GACE,KAAK,WAAW,QAAUyE,EAAW,oBACrCpW,EAAM,KACN,CACA,MAAMjB,EAAOiB,EAAM,KACL,KAAK,WAAW,MAAM,MAAM,KACpC,SAASsX,EAAW,EAAGA,EAAW,EAAIvY,EAAK,MAAM,EAAE,IAAIA,CAAI,EAC5D,KAAA,WAAW,MAAM,eAAe4S,CAAI,EACpC,KAAA,WAAW,MAAM,YAAc,EAAA,CAEtC,GACE,KAAK,YAAY,QAAUyE,EAAW,qBACtCpW,EAAM,KACN,CACA,MAAMf,EAAOe,EAAM,KACL,KAAK,YAAY,MAAM,MAAM,KACrC,SAASsX,EAAW,EAAGA,EAAW,EAAIrY,EAAK,MAAM,EAAE,IAAIA,CAAI,EAC5D,KAAA,YAAY,MAAM,eAAe0S,CAAI,EACrC,KAAA,YAAY,MAAM,YAAc,EAAA,CACvC,SA5CI,KAAK,WAAW,QAAUyE,EAAW,iBAAmBpW,EAAM,IAAK,CAkBrE,MAAMuX,EAAMvX,EAAM,IACJ,KAAK,WAAW,MAAM,MAAM,KACpC,SAASsX,EAAW,EAAGA,EAAW,EAAIC,EAAI,MAAM,EAAE,IAAIA,CAAG,EAC1D,KAAA,WAAW,MAAM,eAAe5F,CAAI,EACpC,KAAA,WAAW,MAAM,YAAc,EAAA,CAuBxC,CAKM,aAAa9W,EAAsC,CAClD,OAAAmb,GAAa,KAAK,SAAUnb,CAAO,CAAA,CAGpC,sBACN76B,EACAsQ,EACAC,EACAC,EACAiwB,EACA7iC,EACA8iC,EACwB,CACxB,MAAM7F,EAAU,IAAI9hC,EAAM,iBAAiBiH,EAAMsQ,EAAOC,EAAQC,CAAK,EACrE,OAAAqqB,EAAQ,OAAS4F,EACjB5F,EAAQ,KAAOj9B,EACfi9B,EAAQ,eAAiB6F,EACzB7F,EAAQ,YAAc,GACjB,KAAA,SAAS,YAAYA,CAAO,EAC1BA,CAAA,CAGT,eAAgB,CACd,MAAM2c,EAAS,CAAC,EACVC,EAAW,CAAC,EAClB,IAAIC,EAAW,EAEf,SAAW,CAAE,OAAArG,EAAQ,MAAAvxC,CAAM,IAAK,KAAK,cAAe,CAClD,MAAMq3C,EAAU,KAAK,eAAe9F,EAAQvxC,CAAK,EACjD,GAAIq3C,EAAS,CACPO,GAAY,KAAK,SACnBD,EAAS,KAAKN,CAAO,EAErBK,EAAO,KAAKL,CAAO,EAETO,GAAA,EACZ,QAAA,CAGF,GACE,KAAK,QAAQ,KACX,CAAC,CAAE,OAAQ/8C,EAAG,MAAO0D,CAAE,IAAMgzC,IAAW12C,GAAKmF,IAAUzB,CAAA,GAEzD,KAAK,SAAS,KACZ,CAAC,CAAE,OAAQ1D,EAAG,MAAO0D,CAAE,IAAMgzC,IAAW12C,GAAKmF,IAAUzB,CAAA,EAEzD,CACYq5C,GAAA,EACZ,QAAA,CAGF,GAAIA,EAAW,KAAK,UAAY,KAAK,SAAS,OAAS,KAAK,YAAa,CAC3DA,GAAA,EACZ,MAAMh8B,EAAU21B,EACb,iBAAiBvxC,CAAK,EACtB,KACC,MAAOE,GAAS,CAEd,KAAK,QAAQ,KAAK,CAAE,OAAAqxC,EAAQ,MAAAvxC,EAAO,KAAAE,EAAM,EACrC,KAAK,WAAa,GACpB,MAAM,IAAI,QAAS2b,GACjB,WAAWA,EAAS,KAAK,UAAU,CACrC,CAEJ,EACA,MAAOE,GAAU,CACf,QAAQ,KAAKA,CAAK,EAClB,MAAM87B,EAAU,IAAM,IAAM,KAAK,OAAO,EACxC,MAAM,IAAI,QAASh8B,GAAY,WAAWA,EAASg8B,CAAO,CAAC,CAAA,CAE/D,EACC,QAAQ,IAAM,CACR,KAAA,SAAW,KAAK,SAAS,OAC5B,CAAC,CAAE,OAAQ,EAAG,MAAOt5C,CAAE,IAAMgzC,IAAW,GAAKvxC,IAAUzB,CACzD,EACA,KAAK,eAAe,CAAA,CACrB,EAEH,KAAK,SAAS,KAAK,CAAE,OAAAgzC,EAAQ,MAAAvxC,EAAO,QAAA4b,EAAS,EAErCA,EAAA,KAAM1b,GAAS,CACjB,KAAK,WACP,KAAK,cAAc,CACrB,CACD,CAAA,CACH,CAII,MAAAgwC,EAAM,YAAY,IAAI,EAEjB,UAAAmH,KAAWM,EAAS,UAC7BN,EAAQ,IAAMnH,EACT,KAAA,QAAQ,OAAOmH,CAAO,EACtB,KAAA,QAAQ,IAAIA,CAAO,EAI1B,MAAMS,EAAa,IAAI,IAAI,KAAK,OAAO,EAC5B,UAAAT,KAAWK,EAAO,UAC3BI,EAAW,OAAOT,CAAO,EAEzBA,EAAQ,IAAMnH,EACT,KAAA,QAAQ,OAAOmH,CAAO,EACtB,KAAA,QAAQ,IAAIA,CAAO,EAErB,KAAA,cAAgB,MAAM,KAAKS,CAAU,EAAE,IAAI,CAAC,CAAE,KAAAjG,CAAK,IAAMA,CAAI,CAAA,CAG5D,kBAAuC,CACvC,MAAAA,EAAO,KAAK,cAAc,MAAM,EACtC,GAAIA,IAAS,OAEJ,OAGH,MAAAkG,EAAc,KAAK,kBAAkBlG,CAAI,EAC/C,GAAI,CAACkG,EACH,MAAM,IAAI,MAAM,mCAAmClG,CAAI,EAAE,EAGrD,KAAA,CAAE,OAAAN,EAAQ,MAAAvxC,CAAA,EAAU+3C,EACrB,YAAA,sBAAsBxG,EAAQvxC,EAAO6xC,CAAI,EAC9C,KAAK,eAAe,KAAK,CACvB,OAAAN,EACA,KAAAM,EACA,MAAA7xC,EACA,UAAW,KAAK,UAAA,CACjB,EACM6xC,CAAA,CAGD,gBAAiB,CACjB,MAAA3B,EAAM,YAAY,IAAI,EAC5B,OAAa,CACL,MAAA8H,EAAU,KAAK,QAAQ,MAAM,EACnC,GAAI,CAACA,EACH,MAEF,KAAM,CAAE,OAAAzG,EAAQ,MAAAvxC,EAAO,KAAAE,CAAS,EAAA83C,EAE5B,IAAAnG,EAAO,KAAK,aAAa,EAC7B,GAAIA,IAAS,SACXA,EAAO,KAAK,iBAAiB,EACzBA,IAAS,QAEX,OAIJ,KAAK,sBAAsBN,EAAQvxC,EAAO6xC,EAAM3B,CAAG,EAC7C,KAAA,CAAE,UAAA3/B,EAAW,MAAA2vB,CAAA,EAAUhgC,EASzB,GARJ,KAAK,eAAe,KAAK,CACvB,OAAAqxC,EACA,KAAAM,EACA,MAAA7xC,EACA,UAAAuQ,EACA,QAAS2vB,EAAM,OAAA,CAChB,EAEI,KAAK,UAGH,CACL,MAAMxzB,EAAaxM,EAAmB,UAChCo3C,EAAc5qC,EAAU,CAAC,EACzB6qC,EAAW7qC,EAAU,CAAC,EACvB,KAAA,WAAW,KAAK,CAAE,KAAAmlC,EAAM,UAAAthC,EAAW,YAAA+mC,EAAa,SAAAC,EAAU,MAAArX,EAAO,CAAA,KAPnD,CACnB,MAAMoX,EAAep3C,EAAsB,YAC3C,KAAK,WAAW,KAAK,CAAE,KAAA2xC,EAAM,UAAAthC,EAAW,YAAA+mC,EAAa,MAAApX,EAAO,CAAA,CAM9D,CACF,CAGF,gBAAiB,CACf,OAAa,CACL,MAAA+X,EAAS,KAAK,aAAa,MAAM,EACvC,GAAI,CAACA,EACH,MAEF,KAAM,CAAE,KAAApG,EAAM,UAAAthC,EAAW,YAAA+mC,EAAa,SAAAC,EAAU,MAAArX,GAAU+X,EAC1D,KAAK,WAAWpG,EAAMyF,EAAapX,EAAOqX,CAAQ,CAAA,CACpD,CAGF,uBAAwB,CACtB,MAAM3F,EAAU,KAAK,eACrB,YAAK,eAAiB,CAAC,EAEvB,KAAK,aAAa,KAAK,GAAG,KAAK,UAAU,EACzC,KAAK,WAAa,CAAC,EACZA,CAAA,CAsDX,EAnDE0E,EAAO,eAAiB,IAAM,CAC5B,KAAM,CAAE,MAAA9lC,EAAO,OAAAC,EAAQ,MAAAC,EAAO,UAAAC,CAAU,EAAIL,GAAe,CAAC,EACtD+vB,EAAa,IAAI,YAAY1vB,EAAY,CAAC,EAC1CoqB,EAAU,IAAI9hC,EAAM,iBACxBonC,EACA7vB,EACAC,EACAC,CACF,EACA,OAAAqqB,EAAQ,OAAS9hC,EAAM,kBACvB8hC,EAAQ,KAAO9hC,EAAM,gBACrB8hC,EAAQ,eAAiB,WACzBA,EAAQ,YAAc,GACfA,CAAA,GACN,EAEHub,EAAO,eAAiB,IAAM,CAC5B,KAAM,CAAE,MAAA9lC,EAAO,OAAAC,EAAQ,MAAAC,EAAO,UAAAC,CAAU,EAAIL,GAAe,CAAC,EACtD+vB,EAAa,IAAI,YAAY1vB,EAAY,CAAC,EAC1CoqB,EAAU,IAAI9hC,EAAM,iBACxBonC,EACA7vB,EACAC,EACAC,CACF,EACA,OAAAqqB,EAAQ,OAAS9hC,EAAM,gBACvB8hC,EAAQ,KAAO9hC,EAAM,gBACrB8hC,EAAQ,eAAiB,SACzBA,EAAQ,YAAc,GACfA,CAAA,GACN,EAEHub,EAAO,qBAAuB,IAAM,CAClC,MAAMjW,EAAa,IAAI,YAAY,KAAQ,EACrCtF,EAAU,IAAI9hC,EAAM,YAAYonC,EAAY,KAAM,CAAC,EACzD,OAAAtF,EAAQ,OAAS9hC,EAAM,kBACvB8hC,EAAQ,KAAO9hC,EAAM,gBACrB8hC,EAAQ,eAAiB,WACzBA,EAAQ,YAAc,GACfA,CAAA,GACN,EAEHub,EAAO,mBAAqBA,EAAK,cACjCA,EAAO,gBAAkBA,EAAK,cAC9BA,EAAO,gBAAkBA,EAAK,cAC9BA,EAAO,gBAAkBA,EAAK,cAC9BA,EAAO,gBAAkBA,EAAK,cAC9BA,EAAO,mBAAqBA,EAAK,cACjCA,EAAO,mBAAqBA,EAAK,cACjCA,EAAO,mBAAqBA,EAAK,cACjCA,EAAO,oBAAsBA,EAAK,cA79B7B,IAAM7E,GAAN6E,EAg+BP,SAASJ,GACP7P,EACAtL,EACc,CACd,GAAI,CAACsL,EAAS,WAAW,IAAItL,CAAO,EAC5B,MAAA,IAAI,MAAM,mBAAmB,EAKrC,MAAMyV,EAHQnK,EAAS,WAAW,IAAItL,CAAO,EAGrB,eACxB,GAAI,CAACyV,EACG,MAAA,IAAI,MAAM,mBAAmB,EAE9B,OAAAA,CACT,CAEA,MAAM0E,GAAkBgD,GAAU,EAElC,eAAe7C,GAAW,CACxB,IAAA3X,EACA,cAAAya,EACA,gBAAAC,EACA,OAAAp9B,EACA,MAAA8lB,CACF,EAMwB,CAChB,MAAA8U,EAAU,IAAI,QAAQlY,EAAK,CAC/B,QAASya,EAAgB,IAAI,QAAQA,CAAa,EAAI,OACtD,YAAaC,EAAkB,UAAY,aAAA,CAC5C,EACGp9B,IAAW,QAAa8lB,IAAU,QAC5B8U,EAAA,QAAQ,IAAI,QAAS,SAAS56B,CAAM,IAAIA,EAAS8lB,EAAQ,CAAC,EAAE,EAEhE,MAAA+U,EAAW,MAAM,MAAMD,CAAO,EACpC,GAAI,CAACC,EAAS,IAAM,CAACA,EAAS,KAC5B,MAAM,IAAI,MACR,oBAAoBnY,CAAG,MAAMmY,EAAS,MAAM,IAAIA,EAAS,UAAU,EACrE,EAEF,OAAO,IAAI,WAAW,MAAMA,EAAS,aAAa,CACpD,CCr0CO,MAAMwC,EAAwC,CAA9C,aAAA,CACL,KAAA,UAAY,IAAI1yC,EAAK,CACnB,QAAS,CAAC,EACV,SAAU,CAAE,OAAQwX,CAAO,EAC3B,QAAS,IAAM,CAAC+C,EAAY,EAC5B,WAAY,CAAC,CAAE,QAAA/Z,KACbiC,EAAc;AAAA,QACZjC,EAAQ,MAAM;AAAA;AAAA,KAEjB,CAAA,CACF,EAAE,QAAQ,MAAA,CAEX,mBAAoB,CAAA,CACpB,SAAU,CAAA,CAEV,cAAe,CACN,MAAA,EAAA,CAET,WAAY,CACH,MAAA,EAAA,CAET,UAAW,CACF,MAAA,EAAA,CAET,SAASi4B,EAAe,CAAA,CAExB,WAAW,CAAE,MAAAp2B,GAA4D,CACvE,OAAO,KAAK,SAAA,CAGd,cAAe,CAAA,CACjB,CAEO,MAAMswC,GAAN,MAAMA,WAAkB7M,EAAe,CAiF5C,YAAYxkC,EAA4B,GAAI,CAK1C,GAJM,MAAA,CACJ,OAASsxC,GAAY,KAAK,OAAOA,CAAO,CAAA,CACzC,EA/Ea,KAAA,cAAA,GAiBhB,KAAA,QAAuB,IAAIt/C,EAAM,MAAM,EAAG,EAAG,CAAC,EAEpC,KAAA,QAAA,EAWO,KAAA,eAAA,GASI,KAAA,mBAAA,GAED,KAAA,kBAAA,GAEA,KAAA,kBAAA,GAIa,KAAA,SAAA,KAIL,KAAA,MAAA,KAMW,KAAA,kBAAA,KAGT,KAAA,UAAA,KAItB,KAAA,MAAA,EAUR,KAAA,gBAAkB,IAAI6pB,GAAQ,CAAE,MAAO,EAAG,EAOpC7b,EAAQ,OACV,KAAK,OAASA,EAAQ,OACjB,KAAA,UAAYA,EAAQ,OAAO,aAAa,UACpCA,EAAQ,MAAO,CACpBA,EAAQ,WACF,QAAA,KACN,0EACF,EAEI,MAAAuxC,EAAUvxC,EAAQ,KAAO,GAC3B,GAAAA,EAAQ,QAAU,GACpB,KAAK,MAAQ,IAAI2rC,GAAY,CAAE,QAAA4F,EAAS,UAC/BvxC,EAAQ,iBAAiB2rC,GAClC,KAAK,MAAQ3rC,EAAQ,cACZA,EAAQ,iBAAiBwqC,GAC7B,KAAA,MAAQ,IAAImB,GAAY,CAAE,QAAA4F,EAAS,MAAOvxC,EAAQ,MAAO,MAExD,OAAA,IAAI,MAAM,sBAAsB,EAExC,KAAK,OAAS,KAAK,KAAA,MACVA,EAAQ,WACjB,KAAK,UACHA,EAAQ,qBAAqBq5B,GACzBr5B,EAAQ,UACR,IAAIq5B,GACVr5B,EAAQ,UAAY,KAAK,UACpB,KAAA,UAAY,KAAK,UAAU,UAChC,KAAK,OAAS,KAAK,WACVA,EAAQ,cACjB,KAAK,aAAeA,EAAQ,aACvB,KAAA,aAAa,cAAgBA,EAAQ,eAAiB,CACzD,GAAGnE,EACL,EACA,KAAK,OAAS,KAAK,cAEd,KAAA,aAAe,IAAIovC,GAgC1B,GA7BK,KAAA,SAAWjrC,EAAQ,UAAY,GAC/B,KAAA,YAAcA,EAAQ,aAAe,GACrC,KAAA,kBAAoBA,EAAQ,mBAAqB,GACtD,KAAK,QAAUA,EAAQ,QAEvB,KAAK,QAAU,CACb,UAAW,IAAIikC,GACf,YAAa,IAAIA,GACjB,YAAa,IAAIA,GACjB,aAAc,IAAIA,GAClB,aAAc,IAAII,GAClB,eAAgB,IAAIA,GACpB,eAAgB,IAAIA,GACpB,gBAAiB,IAAIA,GACrB,QAAS,IAAI9mB,GAAS,CACpB,MAAO,IAAIvrB,EAAM,QAAU,EAAA,UAAU,OAAO,iBAAiB,CAAA,CAC9D,EACD,KAAM,IAAI+pB,GAAU,CAAE,MAAO,EAAG,EAChC,UAAW,IAAIA,GAAU,CAAE,MAAO,EAAG,EACrC,UAAW,IAAIF,GAAQ,CAAE,MAAO,EAAG,EACnC,OAAQ,IAAIu1B,GACZ,UAAW,IAAI31B,GAAS,CAAE,MAAO,GAAO,EACxC,WAAY,IAAIwD,GAAe,CAC7B,MAAOuyB,GACP,IAAK,YACN,CAAA,CACH,EAEK,KAAA,UAAYxxC,EAAQ,WAAa,GAClC,KAAK,WAAa,CAAC,KAAK,UACpB,MAAA,IAAI,MAAM,8BAA8B,EA0BhD,GAvBA,KAAK,gBAAkBA,EAAQ,eAC3B,CAACA,EAAQ,cAAc,EACvB,OACJ,KAAK,eAAiBA,EAAQ,cAC1B,CAACA,EAAQ,aAAa,EACtB,OAEAA,EAAQ,kBACV,KAAK,gBAAkBA,EAAQ,iBAE7BA,EAAQ,iBACV,KAAK,eAAiBA,EAAQ,gBAGhC,KAAK,UAAYA,EAAQ,UACpB,KAAA,SAAWA,EAAQ,UAAY,EACpC,KAAK,cAAgBA,EAAQ,cAC7B,KAAK,SAAWA,EAAQ,SACxB,KAAK,QAAUA,EAAQ,QACvB,KAAK,YAAcA,EAAQ,YAE3B,KAAK,gBAAgB,EAGnBA,EAAQ,KACRA,EAAQ,WACRA,EAAQ,QACRA,EAAQ,iBACPA,EAAQ,cAAgB,CAACA,EAAQ,aAAa,eAC9C,KAAK,WAAa,CAAC,KAAK,UAAU,cAGnC,KAAK,YAAc,KAAK,gBAAgBA,CAAO,EAAE,KAAK,SAAY,CAIhE,GAHA,KAAK,gBAAgB,EAErB,KAAK,cAAgB,GACjBA,EAAQ,OAAQ,CACZ,MAAAk3B,EAAel3B,EAAQ,OAAO,IAAI,EACpCk3B,aAAwB,SACpB,MAAAA,CACR,CAEK,OAAA,IAAA,CACR,UAED,KAAK,cAAgB,GAChB,KAAA,YAAc,QAAQ,QAAQ,IAAI,EACnCl3B,EAAQ,OAAQ,CACZ,MAAAk3B,EAAel3B,EAAQ,OAAO,IAAI,EAEpCk3B,aAAwB,UAC1B,KAAK,YAAcA,EAAa,KAAK,IAAM,IAAI,EACjD,CAEJ,CAKF,MAAM,gBAAgBl3B,EAA2B,CACzC,KAAA,CACJ,IAAAy2B,EACA,UAAAhjB,EACA,SAAAijB,EACA,SAAAC,EACA,OAAAC,EACA,aAAAC,EACA,UAAAntB,EACA,gBAAA+nC,EACA,WAAAC,EACA,cAAAC,EACA,IAAA5d,EACA,OAAA+C,EACA,SAAAC,CAAA,EACE/2B,EACJ,GAAI,KAAK,aAAc,CACjB,GAAAy2B,GAAOhjB,GAAamjB,GAAU6a,EAAiB,CACjD,MAAMG,EAAsB,CAC1B,IAAAnb,EACA,UAAAhjB,EACA,SAAAijB,EACA,SAAAC,EACA,OAAAC,EACA,aAAAC,EACA,UAAAntB,EACA,UAAW+nC,EACX,WAAAC,EACA,cAAAC,EACA,IAAA5d,EACA,OAAA+C,EACA,SAAAC,CACF,EACK,KAAA,aAAa,aAAa6a,CAAmB,CAAA,CAEpD,MAAM,KAAK,aAAa,YACxB,KAAK,OAAS,KAAK,YAAA,SACV,KAAK,YACVnb,GAAOhjB,GAAamjB,GAAU6a,GAAiB,CACjD,MAAM7xC,EAAY6xC,EAGlB,KAAK,UAAU,aAAa,CAC1B,IAAAhb,EACA,UAAAhjB,EACA,SAAAijB,EACA,SAAAC,EACA,OAAAC,EACA,aAAAC,EACA,UAAAntB,EACA,UAAA9J,EACA,WAAA8xC,EACA,IAAA3d,EACA,OAAA+C,EACA,SAAAC,CAAA,CACD,EACD,MAAM,KAAK,UAAU,YACrB,KAAK,OAAS,KAAK,SAAA,CAInB,KAAK,SACF,KAAA,UAAY,KAAK,OAAO,aAAa,EAC1C,KAAK,gBAAgB,EACvB,CAQF,aAAa,kBAAmB,CAC9B,MAAMka,GAAU,EAChBI,GAAU,oBAAsB,EAAA,CAQlC,UACEt5B,EACAC,EACAC,EACA/R,EACA6M,EACA,CACI,KAAK,aACP,KAAK,aAAa,UAAUgF,EAAQC,EAAQC,EAAY/R,EAAS6M,CAAK,EAC7D,KAAK,WACd,KAAK,UAAU,UAAUgF,EAAQC,EAAQC,EAAY/R,EAAS6M,CAAK,CACrE,CAYF,aACE0C,EAQA,QACKviB,EAAA,KAAA,SAAA,MAAAA,EAAQ,aAAauiB,EAAQ,CAKpC,SAAU,CAEN,KAAK,QACL,KAAK,SAAW,KAAK,cACrB,KAAK,SAAW,KAAK,YAErB,KAAK,OAAO,QAAQ,EACpB,KAAK,OAAS,QAEZ,KAAK,eACP,KAAK,aAAa,QAAQ,EAC1B,KAAK,aAAe,QAElB,KAAK,YACP,KAAK,UAAU,QAAQ,EACvB,KAAK,UAAY,OACnB,CAMF,eAAeo8B,EAAe,GAAM,OAC9B,GAAA,CAAC,KAAK,YACR,MAAM,IAAI,MACR,yDACF,EAEI,MAAAC,EAAS,IAAI9/C,EAAM,QACvB,OAAO,kBACP,OAAO,kBACP,OAAO,iBACT,EACM+/C,EAAS,IAAI//C,EAAM,QACvB,OAAO,kBACP,OAAO,kBACP,OAAO,iBACT,EACMggD,EAAU,IAAIhgD,EAAM,QACpBigD,EAAQ,CAAC,GAAI,CAAC,EAEpB,SAASx8B,EACPy8B,EACAn6B,EACAC,EACAC,EACAk6B,EACAC,EACA,CACA,GAAIP,EACFC,EAAO,IAAI/5B,CAAM,EACjBg6B,EAAO,IAAIh6B,CAAM,MAGjB,WAAWvkB,KAAKy+C,EACd,UAAWvsC,KAAKusC,EACd,UAAWv4C,KAAKu4C,EACND,EAAA,IAAIx+C,EAAIwkB,EAAO,EAAGtS,EAAIsS,EAAO,EAAGte,EAAIse,EAAO,CAAC,EAEpDg6B,EAAQ,gBAAgB/5B,CAAU,EAClC+5B,EAAQ,IAAIj6B,CAAM,EAClB+5B,EAAO,IAAIE,CAAO,EAClBD,EAAO,IAAIC,CAAO,CAI1B,CAGG,OAAA9+C,EAAA,KAAA,SAAA,MAAAA,EAAQ,aAAauiB,GACd,IAAIzjB,EAAM,KAAK8/C,EAAQC,CAAM,CAClC,CAGT,IAAI,eAAejO,EAAsC,CACnDA,EACG,KAAA,gBAAkB,CAACA,CAAQ,EAEhC,KAAK,gBAAkB,MACzB,CAGF,IAAI,cAAcA,EAAsC,CAClDA,EACG,KAAA,eAAiB,CAACA,CAAQ,EAE/B,KAAK,eAAiB,MACxB,CAGM,mBAAmBwN,EAA2B,CACpD,GAAI,KAAK,UACA,OAAA,KAAK,sBAAsBA,CAAO,EAG3C,KAAM,CAAE,UAAApN,EAAW,aAAAkH,EAAc,QAAAzyB,CAAY,EAAA24B,EACvCvN,EAAY/iC,GAChB,CAAE,MAAO,KAAM,EACf,CAAE,OAAQkV,CAAO,EACjB,CAAC,CAAE,MAAAnV,CAAA,IAAY,CACb,GAAI,CAACA,EACG,MAAA,IAAI,MAAM,oBAAoB,EAG9BA,EAAAsxC,GACNf,EAAQ,WACRvwC,EACAuwC,EAAQ,UACRA,EAAQ,UACR,KAAK,eACP,EAGQA,EAAA,OAAO,SAAS,KAAK,KAAK,EAClCA,EAAQ,OAAO,kBAAkB,EAC7B,IAAA75B,EAAS65B,EAAQ,OAAO,WAAW,CACrC,MAAAvwC,EACA,WAAYqqC,EAAa,SAAA,CAC1B,EAiBD,GAfI,KAAK,YAEE3zB,EAAA66B,GACP76B,EACA,KAAK,UAAU,KACf1W,EACAuwC,EAAQ,SACV,GAGE,KAAK,WAEE75B,EAAA,KAAK,SAAS,OAAOA,CAAM,GAGlC,KAAK,gBAEI,UAAAqsB,KAAY,KAAK,gBAC1BrsB,EAASqsB,EAAS,MAAM,CAAE,OAAArsB,CAAA,CAAQ,EAAE,OAK/BA,EAAAysB,EAAU,YAAYzsB,CAAM,EAGrC,MAAM86B,EAAc3uB,GAAIjL,EAAShB,GAAYF,CAAM,EAAE,QAAQ,IAAI,EAQjE,GAPAA,EAASI,GAAc,CAAE,OAAAJ,EAAQ,KAAM86B,EAAa,EAEhD,KAAK,oBAEE96B,EAAA,KAAK,kBAAkB,OAAOA,CAAM,GAG3C,KAAK,eAEI,UAAAqsB,KAAY,KAAK,eAC1BrsB,EAASqsB,EAAS,MAAM,CAAE,OAAArsB,CAAA,CAAQ,EAAE,OAKxC,MAAO,CAAE,OAAAA,CAAO,CAAA,CAEpB,EACA,KAAK,UAAYssB,EACjB,KAAK,aAAe,MAAA,CAGtB,sBAAsBuN,EAA2B,CAE/C,KAAM,CAAE,aAAAkB,EAAc,gBAAAC,EAAiB,QAAA95B,CAAY,EAAA24B,EAC7CvN,EAAY/iC,GAChB,CAAE,MAAO,KAAM,EACf,CAAE,SAAUmV,EAAS,EACrB,CAAC,CAAE,MAAApV,CAAA,IAAY,CACb,GAAI,CAACA,EACG,MAAA,IAAI,MAAM,oBAAoB,EAG9BA,EAAAsxC,GACNf,EAAQ,WACRvwC,EACAuwC,EAAQ,UACRA,EAAQ,UACR,KAAK,eACP,EAGAA,EAAQ,OAAO,kBAAkB,EAC7B,IAAA75B,EAAS65B,EAAQ,OAAO,WAAW,CACrC,MAAAvwC,EACA,WAAY0xC,EAAgB,MAAA,CAC7B,EAYD,GAVI,KAAK,YAEEh7B,EAAA66B,GACP76B,EACA,KAAK,UAAU,KACf1W,EACAuwC,EAAQ,SACV,GAGE,KAAK,gBAEI,UAAAxN,KAAY,KAAK,gBAC1BrsB,EAASqsB,EAAS,MAAM,CAAE,OAAArsB,CAAA,CAAQ,EAAE,OAIpC,IAAA+B,EAAWhC,GAAiBC,CAAM,EAOtC,GALI,KAAK,WAEI+B,EAAA,KAAK,SAAS,UAAUA,CAAQ,GAGzC,KAAK,mBAEI,UAAAsqB,KAAY,KAAK,mBAC1BtqB,EAAWsqB,EAAS,MAAM,CAAE,SAAAtqB,CAAA,CAAU,EAAE,SAKjCA,EAAAg5B,EAAa,cAAch5B,CAAQ,EAG9C,MAAM+4B,EAAc3uB,GAAIjL,EAASkB,GAAcL,CAAQ,EAAE,QAAQ,IAAI,EAQrE,GAPAA,EAAWO,GAAgB,CAAE,SAAAP,EAAU,KAAM+4B,EAAa,EAEtD,KAAK,oBAEI/4B,EAAA,KAAK,kBAAkB,UAAUA,CAAQ,GAGlD,KAAK,kBAEI,UAAAsqB,KAAY,KAAK,kBAC1BtqB,EAAWsqB,EAAS,MAAM,CAAE,SAAAtqB,CAAA,CAAU,EAAE,SAK5C,MAAO,CAAE,SAAAA,CAAS,CAAA,CAEtB,EACA,KAAK,UAAY,OACjB,KAAK,aAAeuqB,CAAA,CAOtB,iBAAkB,CAChB,KAAK,eAAiB,EAAA,CAMxB,OAAO,CACL,SAAA3E,EACA,KAAAuG,EACA,UAAAqF,EACA,YAAA0H,EACA,OAAA9M,EACA,WAAAC,EACA,YAAAO,EACA,WAAAuM,CAAA,EACqB,WAChB,KAAA,QAAQ,KAAK,MAAQhN,EACrB,KAAA,QAAQ,UAAU,MAAQqF,EAC/BqG,GAAU,SAAS,MAAQ1L,EACtB,KAAA,gBAAgB,MAAQ,KAAK,aAAe,GAEjD,MAAM2E,EAAS,KAAK,QAAU,KAAK,cAAgB,KAAK,UACpDA,IACF,KAAK,QAAQ,OAASA,GAExB,KAAK,UAAY,KAAK,QAAQ,OAAO,aAAa,EAElD,IAAI7H,EAAU,GAEd,MAAMtJ,IAAYjmC,EAAA,KAAK,eAAL,YAAAA,EAAmB,cAAaG,EAAA,KAAK,YAAL,YAAAA,EAAgB,WAmB9D,GAlBJ,KAAK,QAAQ,UAAU,MAAQ8lC,GAAa,MAAQwZ,GAAc,KAC9D,KAAK,YAAc,KAChB,KAAA,QAAQ,UAAU,MAAQ,IAEjC,KAAK,QAAQ,WAAW,OAAQA,GAAA,YAAAA,EAAY,UAAWnB,GAEnD,KAAK,QAAQ,UAAU,OAASrY,IAClC,KAAK,QAAQ,OAASA,EACjB,KAAA,WAAYwZ,GAAA,YAAAA,EAAY,YAAa,GAGvC,KAAA,QAAQ,UAAU,MAAQ,KAAK,UAEhC,KAAK,QAAQ,SAAW,KAAK,aAC1B,KAAA,WAAa,KAAK,QAAQ,OAC/B,KAAK,eAAiB,IAGnB,KAAK,UAiCH,CACD,KAAK,QAAQ,aAAa,OAAO,IAAI,IAC7BlQ,EAAA,IAIV,KAAK,QAAQ,eAAe,iBAAiBiQ,CAAW,GACxD,KAAK,oBAEKjQ,EAAA,IAEZ,MAAMmQ,EAAcF,EAAY,MAAM,EAAE,OAAO,EAE7C,KAAK,QAAQ,eAAe,iBAAiBE,CAAW,GACxD,KAAK,oBAEKnQ,EAAA,IAIN,MAAAoQ,EADgB,KAAK,YAAY,MAAA,EAAQ,OAAO,EACb,SAASH,CAAW,EAE3D,KAAK,QAAQ,gBAAgB,iBAAiBG,CAAkB,IAC/D,KAAK,oBAAsB,KAAK,QAAQ,OAAO,UAChD,KAEUpQ,EAAA,GACZ,KA5DmB,CACf,KAAK,QAAQ,UAAU,OAAO,IAAI,IAC1BA,EAAA,IAIV,KAAK,QAAQ,YAAY,iBAAiBiQ,CAAW,GACrD,KAAK,oBAEKjQ,EAAA,IAEZ,MAAMmQ,EAAcF,EAAY,MAAM,EAAE,OAAO,EAE7C,KAAK,QAAQ,YAAY,iBAAiBE,CAAW,GACrD,KAAK,oBAEKnQ,EAAA,IASN,MAAAoQ,EANgB,IAAI7gD,EAAM,QAAU,EAAA,QACxC,KAAK,QAAQ,UAAU,UAAU,MACjC,KAAK,QAAQ,UAAU,OAAO,MAC9B,IAAIA,EAAM,QAAQ,EAAE,UAAU,KAAK,QAAQ,UAAU,MAAM,KAAK,CAClE,EACoC,OAAO,EACF,SAAS0gD,CAAW,EAE3D,KAAK,QAAQ,aAAa,iBAAiBG,CAAkB,IAC5D,KAAK,oBAAsB,KAAK,QAAQ,OAAO,UAChD,KAEUpQ,EAAA,GACZ,CA+BI,MAAAqQ,EAAa,IAAI9gD,EAAM,QAC3B,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,OACP,EACK8gD,EAAW,OAAO,KAAK,QAAQ,QAAQ,KAAK,IAC/C,KAAK,QAAQ,QAAQ,MAAM,KAAKA,CAAU,EAChCrQ,EAAA,IAGN,MAAAW,EAAQ,KAAK,UAAY,KAAK,OAAS,IAAI,OAAOgD,CAAW,EAAI,CAAC,EACpE,KAAK,UAAY,CAAC,KAAK,OAEpB,KAAA,gBAAiBhmC,GAAS,CACzBA,aAAgB6hC,IAClBmB,EAAM,KAAKhjC,CAAI,CACjB,CACD,EAGHgjC,EAAM,KAAK,CAAC1uC,EAAG5B,IAAM4B,EAAE,SAAW5B,EAAE,QAAQ,EAC5C,MAAMigD,EAAY3P,EAAM,IAAKE,GAAS,CAChC,GAAAA,EAAK,MAAQ,KACf,MAAO,CAAE,KAAAA,EAAM,KAAMA,EAAK,IAAK,EAEjC,MAAMvB,EAAuB,CAAC,EACzB,OAAAuB,EAAA,gBAAiBljC,GAAS,CACzBA,aAAgBmhC,IAClBQ,EAAK,KAAK3hC,CAAI,CAChB,CACD,EACM,CAAE,KAAAkjC,EAAM,KAAAvB,CAAK,CAAA,CACrB,EAED,GAAIgR,EAAU,OAAS,GAAK,CAAC,KAAK,kBAAmB,CACnD,MAAM3P,EAAQ2P,EAAU,OAClBhR,EAAOgR,EAAU,OACrB,CAAC1P,EAAOC,IAASD,EAAQC,EAAK,KAAK,OACnC,CACF,EACK,KAAA,kBAAoB,IAAIpB,GAAW,CACtC,SAAUkB,EACV,QAASrB,CAAA,CACV,EACD,KAAK,eAAiB,EAAA,CAExB,GAAI,KAAK,kBAAmB,CAC1B,MAAMiR,EAAa,KAAK,kBAAkB,OAAOD,CAAS,EAC1DtQ,MAAYuQ,EAAW,SACnBA,EAAW,cACb,KAAK,eAAiB,GACxB,CAGE,KAAK,iBACF,KAAA,mBAAmB,KAAK,OAAO,EACpC,KAAK,eAAiB,GACZvQ,EAAA,IAGRA,GACF,KAAK,cAAc,GAGrBtf,EAAA,KAAK,UAAL,MAAAA,EAAA,UAAe,CAAE,KAAM,KAAM,KAAAwiB,EAAM,UAAAqF,GAAW,CAMhD,QACEiI,EACAC,EAKA,sDACA,GACE,CAAC7B,GAAU,qBACX,CAAC,KAAK,aACL,CAAC,KAAK,cAAgB,CAAC,KAAK,WAAa,CAAC,KAAK,MAEhD,OAEI,MAAA8B,EAAQ,KAAK,OAAS,KACtBC,EAAMD,IACP9/C,GAAAH,EAAA,KAAK,QAAL,YAAAA,EAAY,QAAZ,YAAAG,EAAmB,YAAa,GACjC,KAAK,WAAa,KAEhB,CAAE,KAAAsnC,EAAM,IAAAC,EAAK,IAAAyY,CAAQ,EAAAJ,EACrBK,EAAc,KAAK,YAAY,MAAA,EAAQ,OAAO,EAC9CC,EAAiB,IAAIvhD,EAAM,QAAQ,EAAE,eAAeshD,CAAW,EAC/DE,EAASH,EAAI,OAAO,MAAM,EAAE,aAAaC,CAAW,EACpDG,EAAYJ,EAAI,UAAU,MAAM,EAAE,aAAaE,CAAc,EAE7DlU,EAASpF,GAAmB,EAC5ByZ,EAAarU,EAAO,OAAS,EACnC,IAAIsU,EAAgB,EAEd,MAAArqC,IACJ6Z,EAAA,KAAK,iBAAL,YAAAA,EAAqB,aACpBgwB,GAAQrE,EAAA,KAAK,QAAL,YAAAA,EAAY,UAAY,KAAK,QAAQ,UAAU,QACxD,EACIrW,IACJsW,EAAA,KAAK,iBAAL,YAAAA,EAAqB,WACpBoE,GACIS,EAAA,KAAK,QAAL,YAAAA,EAAY,YAAY,MAAM,MAAM,KACrC,KAAK,QAAQ,UAAU,MACpB,KAAK,QAAQ,WAAW,MAAM,MAAM,KACrC,OACN,KAEF,GAAKR,EAgDE,CACL,MAAMS,EAAU3Z,GAAoB,EAC9B4Z,EAAOX,GACRY,GAAAC,EAAA,KAAK,QAAL,YAAAA,EAAY,QAAZ,YAAAD,EAAmB,cAAc,MAAM,MAAM,KAC9Ctb,GACEwb,GAAAC,EAAA,KAAK,YAAL,YAAAA,EAAgB,YAAhB,YAAAD,EAA2B,UAAU,IACrCE,GAAA,KAAK,YAAL,YAAAA,GAAgB,UAAU,GAC1BC,EAAOjB,GACRkB,IAAAC,EAAA,KAAK,QAAL,YAAAA,EAAY,QAAZ,YAAAD,GAAmB,WAAW,MAAM,MAAM,KAC3C5b,GACE8b,IAAAC,EAAA,KAAK,YAAL,YAAAA,EAAgB,YAAhB,YAAAD,GAA2B,UAAU,IACrCE,EAAA,KAAK,YAAL,YAAAA,EAAgB,UAAU,GAC5B,GAAA,CAACX,GAAQ,CAACM,EACZ,OAEF,QAAS7iC,EAAO,EAAGA,EAAOjI,EAAWiI,GAAQmiC,EAAY,CACvD,MAAMzyC,GAAQ,KAAK,IAAIyyC,EAAYpqC,EAAYiI,CAAI,EACnD,GAAI,CAACknB,EACI4G,EAAA,IAAIyU,EAAK,SAASviC,EAAO,GAAIA,EAAOtQ,IAAS,CAAC,CAAC,EAC9C4yC,EAAA,IAAIO,EAAK,SAAS7iC,EAAO,GAAIA,EAAOtQ,IAAS,CAAC,CAAC,MAEvD,SAASlO,GAAI,EAAGA,GAAIkO,GAAO,EAAElO,GAAG,CACxB,MAAAgO,GAAQ03B,EAAQlnB,EAAOxe,EAAC,EACxBqT,GAAKrT,GAAI,EACT2hD,GAAS3zC,GAAQ,EAChBs+B,EAAAj5B,EAAE,EAAI0tC,EAAKY,EAAM,EACxBrV,EAAOj5B,GAAK,CAAC,EAAI0tC,EAAKY,GAAS,CAAC,EAChCrV,EAAOj5B,GAAK,CAAC,EAAI0tC,EAAKY,GAAS,CAAC,EAChCrV,EAAOj5B,GAAK,CAAC,EAAI0tC,EAAKY,GAAS,CAAC,EACxBb,EAAAztC,EAAE,EAAIguC,EAAKM,EAAM,EACzBb,EAAQztC,GAAK,CAAC,EAAIguC,EAAKM,GAAS,CAAC,EACjCb,EAAQztC,GAAK,CAAC,EAAIguC,EAAKM,GAAS,CAAC,EACjCb,EAAQztC,GAAK,CAAC,EAAIguC,EAAKM,GAAS,CAAC,CAAA,CAIrC,MAAMC,GAAmBxa,GACvBqZ,EAAO,EACPA,EAAO,EACPA,EAAO,EACPC,EAAU,EACVA,EAAU,EACVA,EAAU,EACV,KAAK,kBACL9Y,EACAC,EACA35B,EACF,EACA0yC,EAAgB,KAAK,oBACnBA,EACAgB,EACF,CAAA,CACF,KApGQ,CACR,MAAMC,EAASzB,GACV0B,GAAAC,EAAA,KAAK,QAAL,YAAAA,EAAY,QAAZ,YAAAD,EAAmB,cAAc,MAAM,MAAM,KAC9Cpc,GACEsc,GAAAC,EAAA,KAAK,eAAL,YAAAA,EAAmB,YAAnB,YAAAD,EAA8B,aAC9BE,EAAA,KAAK,eAAL,YAAAA,EAAmB,YACzB,GAAI,CAACL,EACH,OAEF,MAAMjD,EAAgBwB,GAClB+B,EAAA,KAAK,QAAL,YAAAA,EAAY,eACZC,EAAA,KAAK,eAAL,YAAAA,EAAmB,cACvB,QAAS5jC,EAAO,EAAGA,EAAOjI,EAAWiI,GAAQmiC,EAAY,CACvD,MAAMzyC,EAAQ,KAAK,IAAIyyC,EAAYpqC,EAAYiI,CAAI,EACnD,GAAI,CAACknB,EACI4G,EAAA,IAAIuV,EAAO,SAASrjC,EAAO,GAAIA,EAAOtQ,GAAS,CAAC,CAAC,MAExD,SAASlO,GAAI,EAAGA,GAAIkO,EAAO,EAAElO,GAAG,CACxB,MAAAgO,GAAQ03B,EAAQlnB,EAAOxe,EAAC,EACxBqT,GAAKrT,GAAI,EACT2hD,GAAS3zC,GAAQ,EAChBs+B,EAAAj5B,EAAE,EAAIwuC,EAAOF,EAAM,EAC1BrV,EAAOj5B,GAAK,CAAC,EAAIwuC,EAAOF,GAAS,CAAC,EAClCrV,EAAOj5B,GAAK,CAAC,EAAIwuC,EAAOF,GAAS,CAAC,EAClCrV,EAAOj5B,GAAK,CAAC,EAAIwuC,EAAOF,GAAS,CAAC,CAAA,CAItC,MAAMC,GAAmB9Z,GACvB2Y,EAAO,EACPA,EAAO,EACPA,EAAO,EACPC,EAAU,EACVA,EAAU,EACVA,EAAU,EACV,KAAK,kBACL9Y,EACAC,EACA35B,GACA0wC,GAAA,YAAAA,EAAe,aAAcl3C,IAC7Bk3C,GAAA,YAAAA,EAAe,aAAcj3C,IAC7Bi3C,GAAA,YAAAA,EAAe,aAAc,EAC/B,EACAgC,EAAgB,KAAK,oBACnBA,EACAgB,EACF,CAAA,CACF,CAwDF,UAAW/oC,KAAYylC,GAAU,cAAc,SAAS,EAAGsC,CAAa,EAAG,CACnE,MAAAyB,EAAQ/B,EAAI,UACf,MAAM,EACN,eAAeznC,CAAQ,EACvB,IAAIynC,EAAI,MAAM,EACjBH,EAAW,KAAK,CACd,SAAAtnC,EACA,MAAAwpC,EACA,OAAQ,IAAA,CACT,CAAA,CACH,CAKM,oBAAoBn0C,EAAeo0C,EAA0B,CAC7D,MAAAhS,EAAQpiC,EAAQo0C,EAAW,OAC7B,IAAA7V,EAAW6R,GAAU,cAAc,OAEvC,GAAIhO,EAAQ7D,EAAU,CACpB,KAAOA,EAAW6D,GACJ7D,GAAA,EAER,MAAAF,EAAY,IAAI,aAAaE,CAAQ,EAC3CF,EAAU,IAAI+R,GAAU,cAAc,SAAS,EAAGpwC,CAAK,CAAC,EACxDowC,GAAU,cAAgB/R,CAAA,CAGlB,OAAA+R,GAAA,cAAc,IAAIgE,EAAYp0C,CAAK,EACtCA,EAAQo0C,EAAW,MAAA,CAG5B,MAAM,gBAAgB,CACpB,UAAAvc,EACA,QAAAC,CACF,EAAkD,GAAI,CAChD,KAAK,aACP,MAAM,KAAK,aAAa,gBAAgB,CAAE,QAAAA,EAAS,UAAAD,EAAW,EACrD,KAAK,WACd,MAAM,KAAK,UAAU,gBAAgB,CAAE,QAAAC,EAAS,UAAAD,EAAW,CAC7D,CAEJ,EAzqBSuY,GAAA,kBAAoBA,GAAU,iBAAiB,EACtDA,GAAO,oBAAsB,GAE7BA,GAAO,SAAW,IAAIt1B,GAAU,CAAE,MAAO,EAAG,EAyoBrCs1B,GAAA,cAAgB,IAAI,aAAa,IAAI,EAv6BvC,IAAMlL,GAANkL,GAs8BA,SAASgB,GACdM,EACA5xC,EACAuI,EACAgsC,EACAC,EACA,CACA,OAAO73C,GAAK,CACV,QAAS,CACP,WAAY,aACZ,MAAO,MACP,UAAW,MACX,UAAW,OACX,YAAa,KACf,EACA,SAAU,CACR,MAAO,KACT,EACA,OAAQ,CACN,WAAAi1C,EACA,MAAA5xC,EACA,UAAAuI,EACA,UAAAgsC,EACA,YAAAC,CACF,EACA,WAAY,CAAC,CAAE,OAAA12C,EAAQ,QAAAK,CAAA,IACrBiC,EAAc;AAAA,sBACEtC,EAAO,KAAK;AAAA,cACpBA,EAAO,WAAW;AAAA,yBACPA,EAAO,SAAS;AAAA;AAAA;AAAA,gBAGzBA,EAAO,SAAS;AAAA;AAAA,2CAEWA,EAAO,UAAU;AAAA,cAC9CK,EAAQ,KAAK;AAAA;AAAA,cAEbA,EAAQ,KAAK;AAAA;AAAA;AAAA,wBAGHL,EAAO,WAAW;AAAA;AAAA;AAAA;AAAA,YAI9BK,EAAQ,KAAK;AAAA;AAAA,OAElB,CAAA,CACJ,EAAE,QAAQ,KACb,CAEO,SAASozC,GACd76B,EACAS,EACAnX,EACAu0C,EACwB,CACxB,OAAO53C,GAAK,CACV,QAAS,CACP,OAAQwY,EACR,KAAMuqB,GACN,MAAO,MACP,UAAW,MACb,EACA,SAAU,CAAE,OAAQvqB,CAAO,EAC3B,OAAQ,CAAE,OAAAuB,EAAQ,KAAAS,EAAM,MAAAnX,EAAO,UAAAu0C,CAAU,EACzC,WAAY,CAAC,CAAE,OAAAz2C,EAAQ,QAAAK,CAAA,IACrBiC,EAAc;AAAA,UACVjC,EAAQ,MAAM,MAAML,EAAO,MAAM;AAAA,eAC5BA,EAAO,SAAS,QAAQA,EAAO,KAAK,cAAcA,EAAO,KAAK,MAAMA,EAAO,IAAI;AAAA,YAClFK,EAAQ,MAAM,sBAAsBL,EAAO,IAAI,2BAA2BA,EAAO,KAAK;AAAA;AAAA,OAE3F,CAAA,CACJ,EAAE,QAAQ,MACb,CAEO,MAAM2yC,IAAmB,IAAM,CAC9B,MAAA1d,EAAU,IAAI9hC,EAAM,YACxB,IAAI,YAAY,KAAK,EACrB,KACA,EACAA,EAAM,kBACNA,EAAM,eACR,EACA,OAAA8hC,EAAQ,eAAiB,WACzBA,EAAQ,YAAc,GACfA,CACT,GAAG,EAEoB,IAAI9hC,EAAM,eACV,IAAIA,EAAM,eCjwCjC,MAAMwjD,GAAqB,CACzB,OACA,QACA,QACA,SACA,MACA,OACA,QACA,QACF,EA+CaC,GAAN,MAAMA,EAAU,CAYrB,YAAY,CAAE,UAAAhiC,GAAsD,CAV3D,KAAA,OAAA,GACM,KAAA,aAAA,GACf,KAAA,SAAuC,CAAC,EACxC,KAAA,SAAqB,CAAC,EACE,KAAA,KAAA,KAGZ,KAAA,UAAA,EAIV,KAAK,UACHA,aAAqB,YAAc,IAAI,WAAWA,CAAS,EAAIA,CAAA,CAMnE,MAAM,aAAc,CAUlB,MAAMiiC,EATe,IAAI,eAAe,CACtC,MACEC,GACG,CAEHA,EAAW,QAAQ,KAAK,UAAU,MAAM,EAAG,KAAK,CAAC,EACjDA,EAAW,MAAM,CAAA,CACnB,CACD,EAEE,YAAY,IAAI,iBAAmB,EACnC,UAAU,EAGb,KAAK,OAAS,GACd,MAAMC,EAAmB;AAAA,EACzB,OAAa,CACX,KAAM,CAAE,MAAAz4C,EAAO,KAAA04C,CAAS,EAAA,MAAMH,EAAQ,KAAK,EAC3C,GAAIG,EACI,MAAA,IAAI,MAAM,uBAAuB,EAGzC,KAAK,QAAU14C,EACf,MAAM24C,EAAY,KAAK,OAAO,QAAQF,CAAgB,EACtD,GAAIE,GAAa,EAAG,CAClB,KAAK,OAAS,KAAK,OAAO,MAAM,EAAGA,EAAYF,EAAiB,MAAM,EACtE,KAAA,CACF,CAGF,MAAMG,EAAY,IAAI,cAAc,OAAO,KAAK,MAAM,EAAE,OACxD,KAAK,KAAO,IAAI,SAAS,KAAK,UAAU,OAAQA,CAAS,EAEzD,KAAK,SAAW,CAAC,EACjB,IAAIC,EAAgC,KACpC,KAAK,SAAW,CAAC,EAEZ,KAAA,OACF,OACA,MAAM;AAAA,CAAI,EACV,QAAQ,CAACt2C,EAAcu2C,IAAsB,CACtC,MAAA30C,EAAc5B,EAAK,KAAK,EAC9B,GAAIu2C,IAAc,EAAG,CACnB,GAAI30C,IAAgB,MACZ,MAAA,IAAI,MAAM,oBAAoB,EAEtC,MAAA,CAEE,GAAAA,EAAY,SAAW,EACzB,OAGI,MAAA40C,EAAS50C,EAAY,MAAM,GAAG,EAC5B,OAAA40C,EAAO,CAAC,EAAG,CACjB,IAAK,SACC,GAAAA,EAAO,CAAC,IAAM,uBAChB,KAAK,aAAe,WACXA,EAAO,CAAC,IAAM,oBACvB,KAAK,aAAe,OAGpB,OAAM,IAAI,MAAM,2BAA2BA,EAAO,CAAC,CAAC,EAAE,EAEpD,GAAAA,EAAO,CAAC,IAAM,MAChB,MAAM,IAAI,MAAM,4BAA4BA,EAAO,CAAC,CAAC,EAAE,EAEzD,MACF,IAAK,aACH,MACF,IAAK,UACH,KAAK,SAAS,KAAK50C,EAAY,MAAM,CAAiB,CAAC,EACvD,MACF,IAAK,UAAW,CACR,MAAAhC,EAAO42C,EAAO,CAAC,EACRF,EAAA,CACX,KAAA12C,EACA,MAAO,OAAO,SAAS42C,EAAO,CAAC,CAAC,EAChC,WAAY,CAAA,CACd,EACK,KAAA,SAAS52C,CAAI,EAAI02C,EACtB,KAAA,CAEF,IAAK,WACH,GAAIA,GAAc,KACV,MAAA,IAAI,MAAM,oCAAoC,EAElDE,EAAO,CAAC,IAAM,OAChBF,EAAW,WAAWE,EAAO,CAAC,CAAC,EAAI,CACjC,OAAQ,GACR,KAAMA,EAAO,CAAC,EACd,UAAWA,EAAO,CAAC,CACrB,EAEAF,EAAW,WAAWE,EAAO,CAAC,CAAC,EAAI,CACjC,OAAQ,GACR,KAAMA,EAAO,CAAC,CAChB,EAEF,KACF,CAEF,CACD,EAEC,KAAK,SAAS,SACX,KAAA,UAAY,KAAK,SAAS,OAAO,MACxC,CAGF,UACEC,EAKA,CAEA,IAAIpiC,EAAS,EACb,MAAM9a,EAAO,KAAK,KAClB,GAAIA,GAAQ,KACJ,MAAA,IAAI,MAAM,kBAAkB,EAGzB,UAAAm9C,KAAe,KAAK,SAAU,CACjC,MAAAC,EAAU,KAAK,SAASD,CAAW,EACnC,CAAE,MAAAn1C,EAAO,WAAAq1C,CAAA,EAAeD,EACxB/xC,EAAOiyC,GAAgBD,CAAU,EAEjCE,EAAUC,GAAcH,EAAY,KAAK,YAAY,EAGrD7gC,EAAW0gC,EAAgBE,CAAO,IAAM,IAAM,CAAA,GACpD,QAASt1C,EAAQ,EAAGA,EAAQE,EAAOF,IACxBgT,EAAAyiC,EAAQv9C,EAAM8a,EAAQzP,CAAI,EACnCmR,EAAS1U,EAAOuD,CAAI,CACtB,CACF,CAKF,YAAYoyC,EAA8BC,EAA8B,CAClE,GAAA,KAAK,SAAS,QAAU,KACpB,MAAA,IAAI,MAAM,yBAAyB,EAG3C,IAAIC,EAAe,GACnB,MAAMC,EAAsB,CAAC,EAE7B,IAAIpd,EAAQ,EACRqd,EAAqB,CAAC,EACtBC,EAAqB,CAAC,EACtBC,EAAqB,CAAC,EACtBrf,EACAG,EACA0Y,EAEJ,SAASyG,GAAY,CAEb,MAAAC,EAAaC,GAAqB1d,CAAK,EAClCqd,EAAA,IAAI,MAAM,CAAC,EACnB,KAAK,IAAI,EACT,QAAQ,CAAC74C,EAAGgV,IAAM,CAAC,EAAG,EAAG,CAAC,EAAE,IAAI,CAAChV,EAAGrJ,IAAMqe,EAAKre,EAAIsiD,EAAc,CAAC,CAAC,EACtEH,EAAW,IAAI,MAAM,CAAC,EACnB,KAAK,IAAI,EACT,QAAQ,CAAC94C,EAAGgV,IACX,CAAC,EAAG,EAAG,CAAC,EAAE,IAAI,CAAChV,EAAGrJ,IAAM,EAAIqe,EAAKre,EAAIsiD,EAAc,CAAC,CACtD,EACFF,EAAW,IAAI,MAAM,CAAC,EACnB,KAAK,IAAI,EACT,QAAQ,CAAC/4C,EAAGgV,IACX,CAAC,EAAG,EAAG,CAAC,EAAE,IAAI,CAAChV,EAAGrJ,IAAM,EAAIqe,EAAKre,EAAIsiD,EAAc,CAAC,CACtD,EACFvf,EAAM8B,GAAS,EAAI,IAAI,aAAa,EAAI,CAAC,EAAI,OAC7C3B,EAAM2B,GAAS,EAAI,IAAI,aAAa,EAAI,CAAC,EAAI,OAC7C+W,EAAM/W,GAAS,EAAI,IAAI,aAAa,EAAI,CAAC,EAAI,MAAA,CAGtC,SAAA2d,EACPr2C,EACAuD,EACA,CAEA,GAAI,CAACqzB,EACG,MAAA,IAAI,MAAM,aAAa,EAE/B,MAAM0f,EAAK/yC,EAAK,OAEhB,QAASvR,EAAI,EAAGA,EAAI+jD,EAAS,OAAQ/jD,IAC/B4kC,EAAA5kC,CAAC,EAAKskD,EAAGP,EAAS/jD,CAAC,CAAC,EAAI,EAAK,IAAM,EAEzC,GAAI+kC,EACF,QAAS/kC,EAAI,EAAGA,EAAIgkD,EAAS,OAAQhkD,IAC/B+kC,EAAA/kC,CAAC,EAAKskD,EAAGN,EAAShkD,CAAC,CAAC,EAAI,EAAK,IAAM,EAG3C,GAAIy9C,EACF,QAASz9C,EAAI,EAAGA,EAAIikD,EAAS,OAAQjkD,IAC/By9C,EAAAz9C,CAAC,EAAKskD,EAAGL,EAASjkD,CAAC,CAAC,EAAI,EAAK,IAAM,EAG9B4jD,GAAA,MAAAA,EAAA51C,EAAO42B,EAAKG,EAAK0Y,EAAG,CAGnC,SAAS8G,EAAejB,EAAqB,CACrC,KAAA,CACJ,MAAAkB,EACA,MAAAC,EACA,MAAAC,EACA,MAAAC,EACA,MAAAC,EACA,MAAAC,EACA,YAAAC,EACA,YAAAC,EACA,YAAAC,EACA,YAAAC,EACA,YAAAC,EACA,YAAAC,GACE7B,EAAQ,WAEV,GAAA,CAACkB,GACD,CAACC,GACD,CAACC,GACD,CAACC,GACD,CAACC,GACD,CAACC,GACD,CAACC,GACD,CAACC,GACD,CAACC,GACD,CAACC,GACD,CAACC,GACD,CAACC,EAEK,MAAA,IAAI,MAAM,8BAA8B,EAIjC,OAAAtB,EAAA,GACR,CAAC71C,EAAeuD,IAA4C,CAC3D,KAAA,CACJ,MAAAizC,EACA,MAAAC,EACA,MAAAC,GACA,MAAAC,EACA,MAAAC,GACA,MAAAC,EACA,YAAAC,GACA,YAAAC,EACA,YAAAC,EACA,YAAAC,EACA,YAAAC,EACA,YAAAC,EACA,MAAAC,GACA,MAAAC,GACA,MAAAC,GACA,MAAAC,GACA,MAAAC,GACA,MAAAC,EAAA,EACEl0C,EACJuyC,EAAS,KAAK,CACZ,MAAAU,EACA,MAAAC,EACA,MAAAC,GACA,MAAAC,EACA,MAAAC,GACA,MAAAC,EACA,YAAAC,GACA,YAAAC,EACA,YAAAC,EACA,YAAAC,EACA,YAAAC,EACA,YAAAC,EACA,MAAAC,GACA,MAAAC,GACA,MAAAC,GACA,MAAAC,GACA,MAAAC,GACA,MAAAC,EAAA,CACD,CACH,CAAA,CAGF,SAASC,EAAiBpC,EAAqB,CAEzC,GAAAM,GAAcN,EAAQ,OAAS,KACzB,OAAA5c,EAAAif,GAASrC,EAAQ,UAAU,EACzBY,EAAA,EACHG,EAEL,GAAAf,EAAQ,OAAS,SACZ,OAAA,KAGT,KAAM,CAAE,gBAAAsC,EAAiB,gBAAAC,EAAiB,aAAAC,EAAc,aAAAC,CAAA,EACtDzC,EAAQ,WACV,GACE,CAACsC,GACD,CAACC,GACD,CAACC,GACD,CAACC,EAED,MAAM,IAAI,MACR,sFACF,EAGI,MAAAC,EAAQ,KAAK,KAAK,CAAC,EAElB,MAAA,CAACh4C,EAAeuD,IAA4C,CAE3D,MAAAvL,EAAQ89C,EAAS91C,IAAU,CAAC,EAClC,GAAIhI,GAAS,KACL,MAAA,IAAI,MAAM,mBAAmB,EAE/B,KAAA,CACJ,MAAAw+C,EACA,MAAAC,EACA,MAAAC,EACA,MAAAC,EACA,MAAAC,EACA,MAAAC,EACA,YAAAC,EACA,YAAAC,EACA,YAAAC,GACA,YAAAC,EACA,YAAAC,GACA,YAAAC,EACA,MAAAC,GACA,MAAAC,EACA,MAAAC,EACA,MAAAC,EACA,MAAAC,EACA,MAAAC,CAAA,EACEz/C,EACE,CAAE,gBAAA4/C,GAAiB,gBAAAC,GAAiB,aAAAC,GAAc,aAAAC,EAAAA,EACtDx0C,EAEI9Q,IACDmlD,KAAoB,GAAM,MAAQ,MAASjB,EAAQH,GAASA,EAC3D7xC,IACDizC,KAAoB,GAAM,MAAQ,MAAShB,EAAQH,GAASA,EAC3D99C,IAAMi/C,GAAkB,MAAQ,MAASf,EAAQH,GAASA,EAE1DuB,KAAQJ,KAAoB,GAAM,MAAQ,KAAO,IAAOG,EACxDE,KAAQL,KAAoB,GAAM,MAAQ,KAAO,IAAOG,EACxDp/B,KAAOi/B,GAAkB,MAAQ,KAAO,IAAOG,EAC/CG,EAAK,KAAK,KAAK,KAAK,IAAI,EAAG,EAAMF,GAAKA,GAAKC,GAAKA,GAAKt/B,GAAKA,EAAE,CAAC,EAE7Dw/B,GAASP,KAAoB,GAC7B9yC,GAAQqzC,KAAW,EAAIH,GAAKG,KAAW,EAAID,EAAKD,GAChDlzC,GAAQozC,IAAU,EAAIF,GAAKE,KAAW,EAAID,EAAKv/B,GAC/C3T,GAAQmzC,IAAU,EAAIx/B,GAAKu/B,EAC3BjzC,GAAQkzC,KAAW,EAAID,EAAKF,GAE5BrzC,EAAS,KAAK,KACfkzC,KAAiB,GAAM,MAAQ,MAC/Bb,EAAcH,GACfA,CACJ,EACMjyC,GAAS,KAAK,KACfizC,KAAiB,GAAM,MAAQ,MAC/BZ,GAAcH,GACfA,CACJ,EACMjyC,GAAS,KAAK,KAChBgzC,GAAe,MAAQ,MAASX,EAAcH,IAC9CA,EACJ,EAEM/kD,IACD8lD,KAAiB,GAAM,KAAO,MAC7BR,GAAS,IAAMH,IAAS,KAC3BA,IAAS,GACNhyC,IACD2yC,KAAiB,GAAM,KAAO,MAC7BP,GAAS,IAAMH,GAAS,KAC3BA,GAAS,GACNtlD,IACDgmD,KAAiB,EAAK,KAAO,MAASN,GAAS,IAAMH,GAAS,KAChEA,GAAS,GACNnyC,IAAW4yC,GAAe,KAAO,IAEvCpC,EACE31C,EACAvN,GACAkS,GACAhM,GACAiM,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAlT,GACAmT,GACArT,EACF,CACF,CAAA,CAGI,MAAAqjD,EAAmBE,GAAwB,CAC3C,GAAAA,EAAQ,OAAS,QAMnB,OAAOiB,EAAejB,CAAO,EAE/B,GAAIO,EACF,OAAO6B,EAAiBpC,CAAO,EAG7B,GAAAA,EAAQ,OAAS,SACZ,OAAA,KAGH,KAAA,CACJ,EAAA7iD,EACA,EAAAkS,EACA,EAAAhM,EACA,QAAA0/C,EACA,QAAAC,EACA,QAAAC,EACA,MAAAC,EACA,MAAAC,EACA,MAAAC,EACA,MAAAC,EACA,QAAAxzC,EACA,OAAAyzC,EACA,OAAAC,EACA,OAAAC,EACA,IAAAC,EACA,MAAAC,EACA,KAAAC,GACA,MAAAC,GACE5D,EAAQ,WAEZ,GAAI,CAAC7iD,GAAK,CAACkS,GAAK,CAAChM,EACT,MAAA,IAAI,MAAM,iCAAiC,EAG7C,MAAAwgD,GAAYd,GAAWC,GAAWC,EAClCa,EAAUZ,GAASC,GAASC,GAASC,EAErCU,GAAWH,GAAS,KAAOI,GAAYJ,EAAM,IAAI,EAAI,EACrDK,EAASR,GAAO,KAAOO,GAAYP,EAAI,IAAI,EAAI,EAC/CS,EAAWR,GAAS,KAAOM,GAAYN,EAAM,IAAI,EAAI,EACrDS,EAAUR,IAAQ,KAAOK,GAAYL,GAAK,IAAI,EAAI,EAEhD,OAAAvgB,EAAAif,GAASrC,EAAQ,UAAU,EACzBY,EAAA,EAEH,CAACl2C,EAAeuD,IAA4C,CACjE,MAAMqB,GAASu0C,GACX,KAAK,IAAI51C,EAAK,OAAiB,EAC/BmxC,GAAU,kBACR7vC,GAASs0C,GACX,KAAK,IAAI51C,EAAK,OAAiB,EAC/BmxC,GAAU,kBACR5vC,GAASq0C,GACX,KAAK,IAAI51C,EAAK,OAAiB,EAC/BmxC,GAAU,kBAER3vC,GAAQq0C,EAAW71C,EAAK,MAAmB,EAC3CyB,GAAQo0C,EAAW71C,EAAK,MAAmB,EAC3C0B,GAAQm0C,EAAW71C,EAAK,MAAmB,EAC3C2B,GAAQk0C,EAAW71C,EAAK,MAAmB,EAE3Cm2C,GACJv0C,GAAW,KACP,GAAO,EAAM,KAAK,IAAI,CAAC5B,EAAK,OAAiB,GAC7C21C,GAAS,KACN31C,EAAK,MAAmB81C,GACzB,EACFpnD,GACJ2mD,GAAU,KACLr1C,EAAK,OAAoBo2C,GAAQ,GAClCZ,GAAO,KACJx1C,EAAK,IAAiBg2C,EACvB,EACFn0C,GACJyzC,GAAU,KACLt1C,EAAK,OAAoBo2C,GAAQ,GAClCX,GAAS,KACNz1C,EAAK,MAAmBi2C,EACzB,EACFznD,EACJ+mD,GAAU,KACLv1C,EAAK,OAAoBo2C,GAAQ,GAClCV,IAAQ,KACL11C,EAAK,KAAkBk2C,EACxB,EAoBR,GAlBA9D,EACE31C,EACAuD,EAAK,EACLA,EAAK,EACLA,EAAK,EACLqB,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAw0C,GACAznD,GACAmT,GACArT,CACF,EAEI6jD,GAAchf,EAAK,CACrB,MAAM0f,GAAK/yC,EAAK,OAChB,GAAIqzB,EACF,QAAS5kC,GAAI,EAAGA,GAAI+jD,EAAS,OAAQ/jD,KACnC4kC,EAAI5kC,EAAC,EAAIskD,GAAGP,EAAS/jD,EAAC,CAAC,EAG3B,GAAI+kC,EACF,QAAS/kC,GAAI,EAAGA,GAAIgkD,EAAS,OAAQhkD,KACnC+kC,EAAI/kC,EAAC,EAAIskD,GAAGN,EAAShkD,EAAC,CAAC,EAG3B,GAAIy9C,EACF,QAASz9C,GAAI,EAAGA,GAAIikD,EAAS,OAAQjkD,KACnCy9C,EAAIz9C,EAAC,EAAIskD,GAAGL,EAASjkD,EAAC,CAAC,EAGhB4jD,EAAA51C,EAAO42B,EAAKG,EAAK0Y,CAAG,CAAA,CAEnC,CACF,EAEA,KAAK,UAAU2F,CAAe,CAAA,CAKhC,WAAWj+B,EAAkB,CAE3B,IAAInE,EAAS,EACb,MAAM9a,EAAO,KAAK,KAClB,GAAIA,GAAQ,KACJ,MAAA,IAAI,MAAM,gBAAgB,EAElC,GAAIif,EAAK,SAAW,KAAK,UAAY,EAC7B,MAAA,IAAI,MAAM,2BAA2B,EAGlC,UAAAk+B,KAAe,KAAK,SAAU,CACjC,MAAAC,EAAU,KAAK,SAASD,CAAW,EACnC,CAAE,MAAAn1C,EAAO,WAAAq1C,CAAA,EAAeD,EACxBsE,EAAU,CAAC,EAEjB,IAAIC,EAAa,EACjB,MAAMC,EAAWzE,IAAgB,SACjC,GAAIyE,GACF,UAAWv7C,IAAQ,CAAC,UAAW,SAAU,SAAU,QAAQ,EACrD,GAAA,CAACg3C,EAAWh3C,CAAI,GAAKg3C,EAAWh3C,CAAI,EAAE,OAAS,QACjD,MAAM,IAAI,MAAM,qCAAqCA,CAAI,EAAE,EAKjE,SAAW,CAACw7C,EAAcC,CAAQ,IAAK,OAAO,QAAQzE,CAAU,EAC1D,GAACyE,EAAS,OA4CZJ,EAAQ,KAAK,IAAM,CACX,MAAAjtB,EAASstB,GAAYD,EAAS,SAA4B,EAC9D9hD,EACA8a,EACA,KAAK,YACP,EACUA,GAAAknC,GAAYF,EAAS,SAA4B,EACjDhnC,GAAA2Z,EAASutB,GAAYF,EAAS,IAAI,CAAA,CAC7C,MApDmB,CACpB,GAAIF,EACF,GACEC,IAAiB,UACjBA,IAAiB,UACjBA,IAAiB,SACjB,CACA,MAAMI,EAAY,OAAO,SACvBJ,EAAa,MAAM,CAAc,CACnC,EACAH,EAAQ,KAAK,IAAM,CAEjB,MAAMx9C,GACH+a,EAAK0iC,EAAaM,CAAS,EAAI,IAAM,IAAOR,GAC/CS,GAAUJ,EAAS,IAAI,EACrB9hD,EACA8a,EACA,KAAK,aACL5W,CACF,CAAA,CACD,CAAA,MACQ29C,IAAiB,WAC1BH,EAAQ,KAAK,IAAM,CAEjB,MAAMx9C,EAAQ,KAAK,IACjB,KACA,KAAK,IACH,IACA,CAAC,KAAK,IAAI,GAAO+a,EAAK0iC,EAAa,CAAC,EAAI,KAAO,CAAG,CAAA,CAEtD,EACAO,GAAUJ,EAAS,IAAI,EACrB9hD,EACA8a,EACA,KAAK,aACL5W,CACF,CAAA,CACD,EAGLw9C,EAAQ,KAAK,IAAM,CACP5mC,GAAAknC,GAAYF,EAAS,IAAI,CAAA,CACpC,CAAA,CAcL,QAASh6C,EAAQ,EAAGA,EAAQE,EAAOF,IAAS,CAE1C,UAAWq6C,KAAUT,EACZS,EAAA,EAELP,IACYD,GAAA,EAChB,CACF,CACF,CAEJ,EAzoBEnF,GAAO,kBAAoB,KAPtB,IAAM4F,GAAN5F,GAkpBA,MAAMiF,GAAQ,mBAcfM,GAAoD,CACxD,KAAM,CAAC/hD,EAAgB8a,EAAgBunC,IAC9BriD,EAAK,QAAQ8a,CAAM,EAE5B,MAAO,CAAC9a,EAAgB8a,EAAgBunC,IAC/BriD,EAAK,SAAS8a,CAAM,EAE7B,MAAO,CAAC9a,EAAgB8a,EAAgBunC,IAC/BriD,EAAK,SAAS8a,EAAQunC,CAAY,EAE3C,OAAQ,CAACriD,EAAgB8a,EAAgBunC,IAChCriD,EAAK,UAAU8a,EAAQunC,CAAY,EAE5C,IAAK,CAACriD,EAAgB8a,EAAgBunC,IAC7BriD,EAAK,SAAS8a,EAAQunC,CAAY,EAE3C,KAAM,CAACriD,EAAgB8a,EAAgBunC,IAC9BriD,EAAK,UAAU8a,EAAQunC,CAAY,EAE5C,MAAO,CAACriD,EAAgB8a,EAAgBunC,IAC/BriD,EAAK,WAAW8a,EAAQunC,CAAY,EAE7C,OAAQ,CAACriD,EAAgB8a,EAAgBunC,IAChCriD,EAAK,WAAW8a,EAAQunC,CAAY,CAE/C,EAEMH,GAAkD,CACtD,KAAM,CACJliD,EACA8a,EACAunC,EACAn+C,IACG,CACElE,EAAA,QAAQ8a,EAAQ5W,CAAK,CAC5B,EACA,MAAO,CACLlE,EACA8a,EACAunC,EACAn+C,IACG,CACElE,EAAA,SAAS8a,EAAQ5W,CAAK,CAC7B,EACA,MAAO,CACLlE,EACA8a,EACAunC,EACAn+C,IACG,CACElE,EAAA,SAAS8a,EAAQ5W,EAAOm+C,CAAY,CAC3C,EACA,OAAQ,CACNriD,EACA8a,EACAunC,EACAn+C,IACG,CACElE,EAAA,UAAU8a,EAAQ5W,EAAOm+C,CAAY,CAC5C,EACA,IAAK,CACHriD,EACA8a,EACAunC,EACAn+C,IACG,CACElE,EAAA,SAAS8a,EAAQ5W,EAAOm+C,CAAY,CAC3C,EACA,KAAM,CACJriD,EACA8a,EACAunC,EACAn+C,IACG,CACElE,EAAA,UAAU8a,EAAQ5W,EAAOm+C,CAAY,CAC5C,EACA,MAAO,CACLriD,EACA8a,EACAunC,EACAn+C,IACG,CACElE,EAAA,WAAW8a,EAAQ5W,EAAOm+C,CAAY,CAC7C,EACA,OAAQ,CACNriD,EACA8a,EACAunC,EACAn+C,IACG,CACElE,EAAA,WAAW8a,EAAQ5W,EAAOm+C,CAAY,CAAA,CAE/C,EAEML,GAA+C,CACnD,KAAM,EACN,MAAO,EACP,MAAO,EACP,OAAQ,EACR,IAAK,EACL,KAAM,EACN,MAAO,EACP,OAAQ,CACV,EAEMZ,GAA+C,CACnD,KAAM,IACN,MAAO,IACP,MAAO,MACP,OAAQ,MACR,IAAK,WACL,KAAM,WACN,MAAO,EACP,OAAQ,CACV,EAEMkB,GAA+C,CACnD,EAAG,EACH,EAAG,EACH,GAAI,EACJ,GAAI,CACN,EACMpE,GAA+C,CACnD,EAAG,EACH,EAAG,EACH,EAAG,GACH,EAAG,EACL,EAEMqE,GAAe,wBAErB,SAASjF,GACPD,EACmC,CACnC,MAAMhyC,EAA0C,CAAC,EACjD,SAAW,CAACw2C,EAAcC,CAAQ,IAAK,OAAO,QAAQzE,CAAU,EAE1DkF,GAAa,KAAKV,CAAY,EAChCx2C,EAAK,OAAS,IAAI,MAAMo0C,GAASpC,CAAU,CAAC,EAE5ChyC,EAAKw2C,CAAY,EAAIC,EAAS,OAAS,CAAK,EAAA,EAGzC,OAAAz2C,CACT,CAEA,SAASmyC,GACPH,EACAgF,EACA,CACI,OAAgCG,GAAcnF,CAAU,EACnDoF,GAAuBpF,EAAYgF,CAAY,EAEjDK,GAAsBrF,EAAYgF,CAAY,CACvD,CAGA,MAAMM,IAAuB,IAAM,CAC7B,GAAA,CACF,IAAI,SAAS,YAAY,OACf,CACH,MAAA,EAAA,CAEF,MAAA,EACT,GAAG,EACGC,GAAsB,kBAE5B,SAASJ,GAAcnF,EAAyC,CAC9D,GAAI,CAACsF,GACI,MAAA,GAGT,SAAW,CAACd,EAAcC,CAAQ,IAAK,OAAO,QAAQzE,CAAU,EAY9D,GAXI,CAACuF,GAAoB,KAAKf,CAAY,GAKxCC,EAAS,QACT,CAACvF,GAAmB,SAASuF,EAAS,SAA4B,GAKhE,CAACvF,GAAmB,SAASuF,EAAS,IAAI,EACrC,MAAA,GAGJ,MAAA,EACT,CAEA,SAASW,GACPpF,EACAgF,EACA,CAEM,MAAAQ,EAAsB,CAAC,WAAW,EACxC,SAAW,CAAChB,EAAcC,CAAQ,IAAK,OAAO,QAAQzE,CAAU,EAAG,CAC3D,MAAAyF,EAAajB,EAAa,MAAMU,EAAY,EAClD,GAAIO,EAAY,CACR,MAAAC,EAAa,CAACD,EAAW,CAAC,EACtBD,EAAA,KAAY;AAAA,sBACNE,CAAU,oBAAoBjB,EAAS,IAAI,oBAAoBO,CAAY;AAAA,oBAC7EL,GAAYF,EAAS,IAAI,CAAC;AAAA,OACvC,CAAA,MACSA,EAAS,OAOTe,EAAA,KAAY;AAAA,uBACLhB,CAAY;AAAA,qCACEC,EAAS,SAAS,oBAAoBO,CAAY;AAAA,oBACnEL,GAAYF,EAAS,SAA4B,CAAC;AAAA;AAAA,mCAEnCA,EAAS,IAAI,oBAAoBO,CAAY;AAAA,sBAC1DL,GAAYF,EAAS,IAAI,CAAC;AAAA;AAAA,OAEzC,EAdSe,EAAA,KAAY;AAAA,gBACZhB,CAAY,qBAAqBC,EAAS,IAAI,oBAAoBO,CAAY;AAAA,oBAC1EL,GAAYF,EAAS,IAAI,CAAC;AAAA,OACvC,CAYH,CAEFe,EAAU,KAAK,gBAAgB,EAE/B,MAAMliD,EAAK,IAAI,SACb,OACA,SACA,OACA,cACAkiD,EAAU,KAAK;AAAA,CAAI,CACrB,EACO,MAAA,CACL7iD,EACA8a,EACAzP,IACG1K,EAAGX,EAAM8a,EAAQzP,EAAM02C,EAAW,CACzC,CAEA,SAASW,GACPrF,EACAgF,EACA,CAEA,MAAMX,EAMF,CAAC,EACL,SAAW,CAACG,EAAcC,CAAQ,IAAK,OAAO,QAAQzE,CAAU,EAAG,CAC3D,MAAAyF,EAAajB,EAAa,MAAMU,EAAY,EAClD,GAAIO,EAAY,CACR,MAAAC,EAAa,CAACD,EAAW,CAAC,EACxBpB,EAAA,KACN,CACE1hD,EACA8a,EACAzP,KAECA,EAAK,OAAoB03C,CAAU,EAAIhB,GAAYD,EAAS,IAAI,EAC/D9hD,EACA8a,EACAunC,CACF,EACOvnC,EAASknC,GAAYF,EAAS,IAAI,EAE7C,CAAA,MACUA,EAAS,OAiBXJ,EAAA,KACN,CACE1hD,EACA8a,EACAzP,IACG,CACG,MAAA23C,EAAO33C,EAAKw2C,CAAY,EACzBmB,EAAA,OAASjB,GAAYD,EAAS,SAA4B,EAC7D9hD,EACA8a,EACAunC,CACF,EACA,IAAIY,EACFnoC,EAASknC,GAAYF,EAAS,SAA4B,EAC5D,QAAShoD,EAAI,EAAGA,EAAIkpD,EAAK,OAAQlpD,IAC/BkpD,EAAKlpD,CAAC,EAAIioD,GAAYD,EAAS,IAAI,EACjC9hD,EACAijD,EACAZ,CACF,EACiBY,GAAAjB,GAAYF,EAAS,IAAI,EAErC,OAAAmB,CAAA,CAEX,EAxCQvB,EAAA,KACN,CACE1hD,EACA8a,EACAzP,KAEAA,EAAKw2C,CAAY,EAAIE,GAAYD,EAAS,IAAI,EAC5C9hD,EACA8a,EACAunC,CACF,EACOvnC,EAASknC,GAAYF,EAAS,IAAI,EAE7C,CA4BF,CAGK,MAAA,CACL9hD,EACA8a,EACAzP,IACG,CACH,IAAI43C,EAAgBnoC,EACpB,QAASooC,EAAc,EAAGA,EAAcxB,EAAQ,OAAQwB,IACtDD,EAAgBvB,EAAQwB,CAAW,EAAEljD,EAAMijD,EAAe53C,CAAI,EAEzD,OAAA43C,CACT,CACF,CAEA,SAASxD,GAASpC,EAAyC,CACzD,IAAIY,EAAa,EACjB,KAAOZ,EAAW,UAAUY,CAAU,EAAE,GACxBA,GAAA,EAEV,MAAAzd,EAAQ8hB,GAAqBrE,CAAU,EAC7C,GAAIzd,GAAS,KACX,MAAM,IAAI,MAAM,0CAA0Cyd,CAAU,EAAE,EAEjE,OAAAzd,CACT,CC5hCO,MAAMxC,WAAoBmlB,GAAAA,MAAO,CAGtC,YAAYC,EAA0B,CACpC,MAAMA,CAAO,EACR,KAAA,WAAa,IAAIC,GAAA,WAAWD,CAAO,CAAA,CAG1C,KACE5lB,EACA8lB,EACA7K,EACA8K,EACA,CACA,OAAO,KAAK,aAAa,CACvB,IAAA/lB,EACA,OAAA8lB,EACA,WAAA7K,EACA,QAAA8K,CAAA,CACD,CAAA,CAGH,MAAM,UACJ/lB,EACAib,EACmC,CACnC,OAAO,IAAI,QAAQ,CAAC98B,EAASC,IAAW,CACjC,KAAA,KACH4hB,EACCyC,GAAY,CACXtkB,EAAQskB,CAAO,CACjB,EACAwY,EACA78B,CACF,CAAA,CACD,CAAA,CAGH,MAAMjO,EAAuC,CAC3C,OAAO,IAAIu/B,GAAU,CAAE,aAAAv/B,EAAc,CAAA,CAGvC,aAAa,CACX,aAAAA,EACA,UAAAkQ,EACA,IAAA2f,EACA,UAAAhjB,EACA,SAAAijB,EACA,SAAAC,EACA,OAAAC,EACA,aAAAC,EACA,OAAA0lB,EACA,WAAA7K,EACA,QAAA8K,EACA,IAAAzoB,EACA,OAAA+C,EACA,SAAAC,EACA,QAAAiC,CAAA,EAiBC,CACGvlB,aAAqB,cACXA,EAAA,IAAI,WAAWA,CAAS,GAEhC,MAAAgpC,EAAchpC,EAChB,OACA,KAAK,QAAQ,YAAY,KAAK,MAAQ,KAAOgjB,GAAO,GAAG,EAEvD,IAAAimB,EAAa9lB,GAAA,YAAAA,EAAQ,YAEpB,KAAA,QAAQ,UAAU6lB,GAAe,EAAE,EAIrCxmC,GAAA,WAAW,MAAOZ,GAAW,CAEtB,MAAAsnC,GAAY/1C,GAAA,YAAAA,EAAc,OAAOkQ,GAAA,YAAAA,EAAW,KAC9C6lC,IACI5oB,EAAA4oB,GAEF,MAAAC,GAAeh2C,GAAA,YAAAA,EAAc,UAAUkQ,GAAA,YAAAA,EAAW,QACpD8lC,IAAiB,SACV9lB,EAAA8lB,GAgBL,MAAAC,EAAW,MAAO5jD,GAAkB,CAClC,KAAA,CAAE,OAAA6jD,EAAQ,MAAAzZ,CAAA,EAAUpqC,EAW1B,GAVI6jD,IAAW,QAAapL,GAC1BA,EACE,IAAI,cAAc,WAAY,CAC5B,iBAAkBrO,IAAU,EAC5B,OAAAyZ,EACA,MAAAzZ,CACD,CAAA,CACH,EAGGpqC,EAAiC,UAAW,CAC3C,IAAAF,EACJ,GAAI,CAAC2jD,EACK3jD,EAAA,IAAI,WAAW,CAAC,MACnB,CACL,KAAM,CAAE,KAAA88C,EAAM,MAAA14C,CAAU,EAAA,MAAMu/C,EAAW,KAAK,EAC1C7G,GACF6G,EAAW,YAAY,EACVA,EAAA,OACL3jD,EAAA,IAAI,WAAW,CAAC,GAEhBA,EAAAoE,CACV,CAEFkY,EAAO,KAAK,YAAa,CAAE,MAAAtc,CAAA,CAAO,CAAA,CAqCtC,EAEMgkD,EAAWN,EACb,IAAI,IAAIA,EAAa,OAAO,SAAS,IAAI,EAAE,SAAA,EAC3C,OACEvjB,EAAW,MAAM7jB,EAAO,KAC5ByB,EAAY,gBAAkB,mBAC9B,CACE,IAAKimC,EACL,cAAe,KAAK,cACpB,gBAAiB,KAAK,gBACtB,UAAWtpC,GAAA,YAAAA,EAAW,QACtB,SAAAijB,EACA,SAAU+lB,GAAe9lB,EACzB,QAASC,IAAW,OACpB,cAAeC,EACf,SAAUjwB,GAAA,YAAAA,EAAc,cACxB,IAAAmtB,EACA,QAAAiF,EACA,OAAAlC,EACA,SAAAC,CACF,EACA,CAAE,SAAA8lB,CAAS,CACb,EA0CA,GAtBI3jB,EAAQ,YACNpiB,EACMoiB,EAAA,UAAY,IAAIG,GAAU,CAChC,GAAIH,EAAQ,SAAA,CAKb,EAEOA,EAAA,UAAY,IAAI+R,GAAa,CACnC,GAAI/R,EAAQ,UAMZ,UAAWtyB,GAAA,YAAAA,EAAc,SAAA,CAC1B,GAIDkQ,EAAW,CACb,MAAMkmC,EAAgB,CAEpB,GAAG9jB,CACL,EACApiB,EAAU,WAAWkmC,CAAiC,EAEtDT,GAAA,MAAAA,EAASzlC,EAAS,KAEb,CACL,MAAMmmC,EAAa,CAEjB,GAAG/jB,CACL,EACItyB,GACFA,EAAa,WAAWq2C,CAAiC,EAEzDV,GAAA,MAAAA,EAAS31C,IAIA21C,GAAA,MAAAA,EAAA,IAAItR,GAAagS,CAAiC,EAE7D,CACF,CACD,EACA,MAAOnoC,GAAU,CACX,KAAA,QAAQ,UAAU2nC,GAAe,EAAE,EACxCD,GAAA,MAAAA,EAAU1nC,EAAK,CAChB,EACA,QAAQ,IAAM,CACR,KAAA,QAAQ,QAAQ2nC,GAAe,EAAE,CAAA,CACvC,CAAA,CAGL,MAAM,kBAAkB,CACtB,aAAA71C,EACA,UAAAkQ,EACA,IAAA2f,EACA,UAAAhjB,EACA,SAAAijB,EACA,SAAAC,EACA,OAAAC,EACA,aAAAC,EACA,WAAA6a,EACA,IAAA3d,EACA,OAAA+C,EACA,SAAAC,EACA,QAAAiC,CAAA,EAeC,CACD,OAAO,IAAI,QAAQ,CAACpkB,EAASC,IAAW,CACtC,KAAK,aAAa,CAChB,aAAAjO,EACA,UAAAkQ,EACA,IAAA2f,EACA,UAAAhjB,EACA,SAAAijB,EACA,SAAAC,EACA,OAAAC,EACA,aAAAC,EACA,OAAQjiB,EACR,WAAA88B,EACA,QAAS78B,EACT,IAAAkf,EACA,OAAA+C,EACA,SAAAC,EACA,QAAAiC,CAAA,CACD,CAAA,CACF,CAAA,CAEL,CA6DO,SAAS+U,GACdt6B,EAC2B,CAE3B,MAAMypC,EADO,IAAI,SAASzpC,EAAU,MAAM,EACvB,UAAU,EAAG,EAAI,EAC/B,IAAAypC,EAAQ,YAAgB,QAC3B,OAAOthD,GAAc,IAElB,IAAAshD,EAAQ,YAAgB,OAAY,CAEjC,MAAAC,EAAS3pC,GAAsBC,EAAW,CAAC,EAEjD,OADc,IAAI,SAAS0pC,EAAO,MAAM,EAC9B,UAAU,EAAG,EAAI,IAAM,WACxBvhD,GAAc,IAGhB,MAAA,CAET,GAAIshD,IAAU,SAER,OAAAE,GAAa3pC,CAAS,EACjB7X,GAAc,UAGhB,OAET,GAAIshD,IAAU,UACZ,OAAOthD,GAAc,GAIzB,CAGO,SAASyhD,GAAiBC,EAA2B,CAC1D,MAAMC,EAAaD,EAAU,MAAM,OAAQ,CAAC,EAAE,CAAC,EACzCE,EAAY,KAAK,IACrBD,EAAW,YAAY,GAAG,EAC1BA,EAAW,YAAY,IAAI,CAC7B,EACM/O,EAAW+O,EAAW,MAAMC,EAAY,CAAC,EACzCC,EAAUjP,EAAS,YAAY,GAAG,EACxC,OAAIiP,GAAW,GAAKA,IAAYjP,EAAS,OAAS,EACzC,GAEFA,EAAS,MAAMiP,EAAU,CAAC,EAAE,YAAY,CACjD,CAEO,SAASzP,GACdsP,EAC2B,CACrB,MAAAI,EAAYL,GAAiBC,CAAS,EAC5C,GAAII,IAAc,MAChB,OAAO9hD,GAAc,IAEvB,GAAI8hD,IAAc,MAChB,OAAO9hD,GAAc,IAEvB,GAAI8hD,IAAc,QAChB,OAAO9hD,GAAc,MAEvB,GAAI8hD,IAAc,SAChB,OAAO9hD,GAAc,OAEvB,GAAI8hD,IAAc,MAChB,OAAO9hD,GAAc,UAEvB,GAAI8hD,IAAc,MAChB,OAAO9hD,GAAc,GAGzB,CA6DO,SAAS+hD,GAASn9C,EAAmD,CAEnE,OAAAo9C,GAAUp9C,CAAK,IAAM,MAC9B,CAEO,SAASo9C,GACdp9C,EACuC,CAEnC,GAAA,CACE,IAAAq9C,EACA,GAAA,OAAOr9C,GAAU,SACZq9C,EAAAr9C,MACF,CACL,MAAMiT,EACJjT,aAAiB,YAAc,IAAI,WAAWA,CAAK,EAAIA,EACrD,GAAAiT,EAAU,OAAS,MAEd,OAEToqC,EAAO,IAAI,cAAc,OAAOpqC,CAAS,CAAA,CAGrC,MAAAqqC,EAAO,KAAK,MAAMD,CAAI,EACxB,GAAA,CAACC,GAAQ,OAAOA,GAAS,UAAY,MAAM,QAAQA,CAAI,EAClD,OAEH,MAAAC,EAAaD,EAAK,UAAY,EAEpC,UAAWngD,IAAO,CAAC,QAAS,SAAU,QAAS,KAAK,EAAG,CACrD,GACE,CAACmgD,EAAKngD,CAAG,GACT,OAAOmgD,EAAKngD,CAAG,GAAM,UACrB,MAAM,QAAQmgD,EAAKngD,CAAG,CAAC,EAEhB,OAET,GAAIogD,GAWE,GATA,CAACD,EAAKngD,CAAG,EAAE,QAKVA,IAAQ,UAAYA,IAAQ,QAAU,CAACmgD,EAAKngD,CAAG,EAAE,UAIlDA,IAAQ,UAAY,CAACmgD,EAAKngD,CAAG,EAAE,MAAQ,CAACmgD,EAAKngD,CAAG,EAAE,MAC7C,eAIL,CAACmgD,EAAKngD,CAAG,EAAE,OAAS,CAACmgD,EAAKngD,CAAG,EAAE,OAI/BA,IAAQ,UAAY,CAACmgD,EAAKngD,CAAG,EAAE,MAAQ,CAACmgD,EAAKngD,CAAG,EAAE,MAC7C,MAEX,CAGK,OAAAmgD,CAAA,MACD,CACC,MAAA,CAEX,CAEO,SAASV,GACd58C,EAC+D,CAC3D,GAAA,CACF,MAAMiT,EACJjT,aAAiB,YAAc,IAAI,WAAWA,CAAK,EAAIA,EACzD,IAAIw9C,EAA8B,KAE5B,MAAAC,EAAW9jD,GAAUsZ,EAAW,CACpC,OAAQ,CAAC,CAAE,KAAAnU,KACQA,EAAK,MAAM,OAAO,EAAE,IAAI,IACxB,aACA0+C,EAAA1+C,EACR,IAEF,EACT,CACD,EACD,GAAI,CAAC0+C,EACI,OAIT,MAAMF,EAAOF,GAAUK,EAASD,CAAY,CAAC,EAC7C,OAAKF,EAGE,CAAE,KAAME,EAAc,KAAAF,CAAK,EAFzB,MAEyB,MAC5B,CACC,MAAA,CAEX,CAEA,eAAsBI,GAAa,CACjC,MAAA19C,EACA,WAAA29C,EACA,SAAAznB,EACA,UAAA4mB,EACA,cAAA3L,CACF,EAUG,CACD,MAAMl+B,EACJjT,aAAiB,YAAc,IAAI,WAAWA,CAAK,EAAIA,EACzD,IAAI49C,EAAgB1nB,EAQpB,OAPKA,IACH0nB,EAAgBrQ,GAAiBt6B,CAAS,EACtC,CAAC2qC,GAAiBd,IACpBc,EAAgBpQ,GAAyBsP,CAAS,IAI9Cc,EAAe,CACrB,KAAKxiD,GAAc,IAAK,CACtB,MAAMyiD,EAAM,IAAIhD,GAAU,CAAE,UAAA5nC,EAAW,EACvC,MAAM4qC,EAAI,YAAY,EACtB,MAAM/0C,EAAY+0C,EAAI,UAChB30C,EAAYL,GAAeC,CAAS,EAAE,UACtCzJ,EAAO,CACX,UAAA4T,EACA,YAAa,IAAI,YAAY/J,EAAY,CAAC,EAC1C,cAAAioC,CACF,EACO,OAAA,MAAMn8B,GAAW,MAAOH,GAAW,CACxC,KAAM,CAAE,YAAAg7B,EAAa,UAAA/mC,EAAW,MAAA2vB,CAAM,EAAK,MAAM5jB,EAAO,KACtD,YACAxV,CACF,EAKA,MAAO,CAAE,YAAAwwC,EAAa,UAAA/mC,EAAW,MAAA2vB,CAAM,CAAA,CACxC,CAAA,CAEH,KAAKr9B,GAAc,IACV,OAAA,MAAM4Z,GAAW,MAAOH,GAAW,CACxC,KAAM,CAAE,YAAAg7B,EAAa,UAAA/mC,EAAW,MAAA2vB,CAAM,EAAK,MAAM5jB,EAAO,KACtD,YACA,CACE,UAAA5B,EACA,cAAAk+B,CAAA,CAEJ,EAKO,MAAA,CAAE,YAAAtB,EAAa,UAAA/mC,EAAW,MAAA2vB,CAAM,CAAA,CACxC,EAEH,KAAKr9B,GAAc,MACV,OAAA,MAAM4Z,GAAW,MAAOH,GAAW,CACxC,KAAM,CAAE,YAAAg7B,EAAa,UAAA/mC,GAAe,MAAM+L,EAAO,KAC/C,kBACA,CACE,UAAA5B,EACA,cAAAk+B,CAAA,CAEJ,EACO,MAAA,CAAE,YAAAtB,EAAa,UAAA/mC,CAAU,CAAA,CACjC,EAEH,KAAK1N,GAAc,OACV,OAAA,MAAM4Z,GAAW,MAAOH,GAAW,CACxC,KAAM,CAAE,YAAAg7B,EAAa,UAAA/mC,EAAW,MAAA2vB,CAAM,EAAK,MAAM5jB,EAAO,KACtD,eACA,CAAE,UAAA5B,EAAW,cAAAk+B,CAAc,CAC7B,EAKO,MAAA,CAAE,YAAAtB,EAAa,UAAA/mC,EAAW,MAAA2vB,CAAM,CAAA,CACxC,EAEH,KAAKr9B,GAAc,OACV,OAAA,MAAM4Z,GAAW,MAAOH,GAAW,CACxC,KAAM,CAAE,YAAAg7B,EAAa,UAAA/mC,EAAW,MAAA2vB,CAAM,EAAK,MAAM5jB,EAAO,KACtD,eACA,CAAE,UAAA5B,EAAW,WAAA0qC,EAAY,cAAAxM,CAAc,CACzC,EAKO,MAAA,CAAE,YAAAtB,EAAa,UAAA/mC,EAAW,MAAA2vB,CAAM,CAAA,CACxC,EAEH,KAAKr9B,GAAc,UACV,OAAA,MAAM4Z,GAAW,MAAOH,GAAW,CACxC,KAAM,CAAE,YAAAg7B,EAAa,UAAA/mC,EAAW,MAAA2vB,CAAM,EAAK,MAAM5jB,EAAO,KACtD,kBACA,CAAE,UAAA5B,EAAW,cAAAk+B,CAAc,CAC7B,EAKO,MAAA,CAAE,YAAAtB,EAAa,UAAA/mC,EAAW,MAAA2vB,CAAM,CAAA,CACxC,EAEH,QACE,MAAM,IAAI,MAAM,4BAA4BmlB,CAAa,EAAE,CAC7D,CAEJ,CAEO,MAAME,EAAU,CAYrB,YAAY,CAAE,UAAA50C,EAAY,CAAE,EAA4B,CAAA,EAAI,CAC1D,KAAK,UAAY,EACZ,KAAA,UAAYL,GAAeK,CAAS,EAAE,UAC3C,KAAK,QAAU,IAAI,aAAa,KAAK,UAAY,CAAC,EAClD,KAAK,OAAS,IAAI,aAAa,KAAK,UAAY,CAAC,EACjD,KAAK,YAAc,IAAI,aAAa,KAAK,UAAY,CAAC,EACtD,KAAK,UAAY,IAAI,aAAa,KAAK,SAAS,EAChD,KAAK,OAAS,IAAI,aAAa,KAAK,UAAY,CAAC,CAAA,CAGnD,WAAoB,CAClB,MAAM3I,EAAQ,KAAK,UACnB,YAAK,YAAYA,CAAK,EACtB,KAAK,WAAa,EACXA,CAAA,CAGT,YAAYA,EAAe,CACrB,GAAAA,IAAU,KAAK,UAAY,EAC7B,KAAK,WAAa,MAEZ,OAAA,IAAI,MAAM,4CAA4C,CAC9D,CAGF,eAAeuI,EAAmB,CAC5B,GAAAA,EAAY,KAAK,UAAW,CAC9B,MAAMi1C,EAAe,KAAK,IAAIj1C,EAAW,KAAK,UAAY,CAAC,EACrDk1C,EAAa,IAAI,aAAaD,EAAe,CAAC,EAC9CE,EAAY,IAAI,aAAaF,EAAe,CAAC,EAC7CG,EAAiB,IAAI,aAAaH,EAAe,CAAC,EAClDI,EAAe,IAAI,aAAaJ,CAAY,EAC5CK,EAAY,IAAI,aAAaL,EAAe,CAAC,EAYnD,GAXWC,EAAA,IAAI,KAAK,OAAO,EACjBC,EAAA,IAAI,KAAK,MAAM,EACVC,EAAA,IAAI,KAAK,WAAW,EACtBC,EAAA,IAAI,KAAK,SAAS,EACrBC,EAAA,IAAI,KAAK,MAAM,EACzB,KAAK,QAAUJ,EACf,KAAK,OAASC,EACd,KAAK,YAAcC,EACnB,KAAK,UAAYC,EACjB,KAAK,OAASC,EAEV,KAAK,IAAK,CACZ,MAAMhnB,EAAS,IAAI,aAAa2mB,EAAe,CAAC,EACzC3mB,EAAA,IAAI,KAAK,GAAG,EACnB,KAAK,IAAMA,CAAA,CAEb,GAAI,KAAK,IAAK,CACZ,MAAMG,EAAS,IAAI,aAAawmB,EAAe,EAAE,EAC1CxmB,EAAA,IAAI,KAAK,GAAG,EACnB,KAAK,IAAMA,CAAA,CAEb,GAAI,KAAK,IAAK,CACZ,MAAME,EAAS,IAAI,aAAasmB,EAAe,EAAE,EAC1CtmB,EAAA,IAAI,KAAK,GAAG,EACnB,KAAK,IAAMA,CAAA,CAGb,KAAK,UAAYsmB,CAAA,CACnB,CAGF,YAAYx9C,EAAe,CACpB,KAAA,eAAeA,EAAQ,CAAC,CAAA,CAG/B,UAAUA,EAAevN,EAAWkS,EAAWhM,EAAW,CACnD,KAAA,QAAQqH,EAAQ,CAAC,EAAIvN,EAC1B,KAAK,QAAQuN,EAAQ,EAAI,CAAC,EAAI2E,EAC9B,KAAK,QAAQ3E,EAAQ,EAAI,CAAC,EAAIrH,CAAA,CAGhC,SAASqH,EAAe4E,EAAgBC,EAAgBC,EAAgB,CACjE,KAAA,OAAO9E,EAAQ,CAAC,EAAI4E,EACzB,KAAK,OAAO5E,EAAQ,EAAI,CAAC,EAAI6E,EAC7B,KAAK,OAAO7E,EAAQ,EAAI,CAAC,EAAI8E,CAAA,CAG/B,cAAc9E,EAAevN,EAAWkS,EAAWhM,EAAW4U,EAAW,CAClE,KAAA,YAAYvN,EAAQ,CAAC,EAAIvN,EAC9B,KAAK,YAAYuN,EAAQ,EAAI,CAAC,EAAI2E,EAClC,KAAK,YAAY3E,EAAQ,EAAI,CAAC,EAAIrH,EAClC,KAAK,YAAYqH,EAAQ,EAAI,CAAC,EAAIuN,CAAA,CAGpC,WAAWvN,EAAemF,EAAiB,CACpC,KAAA,UAAUnF,CAAK,EAAImF,CAAA,CAG1B,SAASnF,EAAe/N,EAAW,EAAWF,EAAW,CAClD,KAAA,OAAOiO,EAAQ,CAAC,EAAI/N,EACzB,KAAK,OAAO+N,EAAQ,EAAI,CAAC,EAAI,EAC7B,KAAK,OAAOA,EAAQ,EAAI,CAAC,EAAIjO,CAAA,CAG/B,OAAOiO,EAAe42B,EAAmB,CAClC,KAAK,MACR,KAAK,IAAM,IAAI,aAAa,KAAK,UAAY,CAAC,GAEhD,QAAS1kC,EAAI,EAAGA,EAAI,EAAG,EAAEA,EACvB,KAAK,IAAI8N,EAAQ,EAAI9N,CAAC,EAAI0kC,EAAI1kC,CAAC,CACjC,CAGF,OAAO8N,EAAe+2B,EAAmB,CAClC,KAAK,MACR,KAAK,IAAM,IAAI,aAAa,KAAK,UAAY,EAAE,GAEjD,QAAS7kC,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACxB,KAAK,IAAI8N,EAAQ,GAAK9N,CAAC,EAAI6kC,EAAI7kC,CAAC,CAClC,CAGF,OAAO8N,EAAeyvC,EAAmB,CAClC,KAAK,MACR,KAAK,IAAM,IAAI,aAAa,KAAK,UAAY,EAAE,GAEjD,QAASv9C,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACxB,KAAK,IAAI8N,EAAQ,GAAK9N,CAAC,EAAIu9C,EAAIv9C,CAAC,CAClC,CAEJ,CCjxBO,MAAM4rD,GAAN,MAAMA,EAAoC,CA4B/C,YAAY7+C,EAA+B,GAAI,CA3BnC,KAAA,UAAA,EACA,KAAA,UAAA,EACsB,KAAA,YAAA,KAE1B,KAAA,MAAA,EAOQ,KAAA,cAAA,GAI8B,KAAA,OAAA,KACN,KAAA,OAAA,KAE1B,KAAA,YAAA,GAUZ,KAAK,MAAQ,CAAC,EACd,KAAK,KAAO,IAAI+gC,GAAiB,CAAE,aAAc,KAAM,EAClD,KAAA,2BAA6B,IAAIxjB,GAAS,CAC7C,IAAK,yBACL,MAAO,IAAIvrB,EAAM,QAAQ,EAAK,EAAKyI,GAAcC,EAAY,EAC7D,OAASyC,GAAU,aACX,OAAAA,EAAA,MACJjK,EAAA,KAAK,gBAAL,YAAAA,EAAoB,SAAU,IAC9BG,EAAA,KAAK,gBAAL,YAAAA,EAAoB,SAAU,IAC9B8vB,EAAA,KAAK,gBAAL,YAAAA,EAAoB,aAAc1oB,KAClCq0C,EAAA,KAAK,gBAAL,YAAAA,EAAoB,aAAcp0C,EACpC,EACOyC,CAAA,CACT,CACD,EACI,KAAA,UAAY,IAAI0e,GAAQ,CAC3B,IAAK,QACL,MAAO,EACP,OAAQ,IACC,KAAK,IAAI,KAAK,SAAS,EAAG,KAAK,KAAK,CAC7C,CACD,EACI,KAAA,UAAY,IAAIkB,GAAS,CAC5B,IAAK,QACL,MAAO,IAAI/qB,EAAM,QACjB,OAASmL,GAAU,WACX,OAAAA,EAAA,MACJjK,EAAA,KAAK,gBAAL,YAAAA,EAAoB,SAAU,IAC9BG,EAAA,KAAK,gBAAL,YAAAA,EAAoB,SAAU,IAC9B8vB,EAAA,KAAK,gBAAL,YAAAA,EAAoB,SAAU,CAChC,EACOhmB,CAAA,CACT,CACD,EAGI,KAAA,YAAc,QAAQ,QAAQ,IAAI,EACvC,KAAK,aAAa6C,CAAO,CAAA,CAG3B,aAAaA,EAA8B,CACzC,KAAK,cAAgB,GAErB,KAAK,MAAQ,CAAC,EACT,KAAA,UAAYA,EAAQ,WAAa,EACtC,KAAK,cAAgBA,EAAQ,cAC7B,KAAK,IAAMA,EAAQ,IACnB,KAAK,OAASA,EAAQ,OAGpBA,EAAQ,KACRA,EAAQ,WACRA,EAAQ,QACRA,EAAQ,UAGR,KAAK,YAAc,KAAK,gBAAgBA,CAAO,EAAE,KAAK,KACpD,KAAK,cAAgB,GACd,KACR,GAED,KAAK,WAAWA,CAAO,EACvB,KAAK,cAAgB,GAChB,KAAA,YAAc,QAAQ,QAAQ,IAAI,EACzC,CAGF,WAAWA,EAA8B,CAClC,KAAA,MAAQA,EAAQ,OAAS,CAAC,EAC1B,KAAA,cAAgBA,EAAQ,eAAiB,KAAK,cACnD,KAAK,UAAYA,EAAQ,UAErBA,EAAQ,aACV,KAAK,YAAcA,EAAQ,YAC3B,KAAK,UAAYA,EAAQ,WAAa,KAAK,YAAY,OAAS,EAKhE,KAAK,UAAY,KAAK,MAAM,KAAK,YAAY,OAAS,CAAC,EACvD,KAAK,UACH,KAAK,MAAM,KAAK,UAAY7E,CAAe,EAAIA,EACjD,KAAK,UAAY,KAAK,IACpB,KAAK,UACL6E,EAAQ,WAAa,OAAO,iBAC9B,IAEK,KAAA,UAAYA,EAAQ,WAAa,EACtC,KAAK,UAAY,EACnB,CAGF,MAAM,gBAAgBA,EAA8B,CAC5C,KAAA,CACJ,IAAAy2B,EACA,UAAAhjB,EACA,SAAAijB,EACA,SAAAC,EACA,OAAAC,EACA,aAAAC,EACA,UAAAj3B,EACA,IAAAm0B,EACA,OAAA+C,EACA,SAAAC,CAAA,EACE/2B,EACJ,KAAK,IAAM+zB,EACX,KAAK,OAAS+C,EAER,MAAAE,EAAS,IAAIC,GAenB,IAdIxjB,GAAagjB,GAAOG,IACtB,MAAMI,EAAO,kBAAkB,CAC7B,aAAc,KACd,IAAAP,EACA,UAAAhjB,EACA,SAAAijB,EACA,SAAAC,EACA,OAAAC,EACA,aAAAC,EACA,WAAY72B,EAAQ,WACpB,SAAA+2B,CAAA,CACD,EAGCn3B,EAAW,CACP,MAAAs3B,EAAet3B,EAAU,IAAI,EAE/Bs3B,aAAwB,SACpB,MAAAA,CACR,CACF,CAKF,SAAU,CACJ,KAAK,SACP,KAAK,OAAO,QAAQ,EACf,KAAA,OAAO,QAAQ,OAAO,KAAO,KAClC,KAAK,OAAS,MAEZ,KAAK,SACP,KAAK,OAAO,QAAQ,EACf,KAAA,OAAO,OAAO,KAAO,KAC1B,KAAK,OAAS,MAGhB,KAAK,YAAc,KAER,UAAAv5B,KAAO,KAAK,MAAO,CACtB,MAAAD,EAAO,KAAK,MAAMC,CAAG,EAK3B,GAAID,aAAgB6d,EAAa,CAC/B,MAAMuY,EAAUp2B,EAAK,MACjBo2B,GAAA,MAAAA,EAAS,YACXA,EAAQ,QAAQ,EAChBA,EAAQ,OAAO,KAAO,KACxB,CACF,CAEF,KAAK,MAAQ,CAAC,EAEd,KAAK,iBAAiB,CAAA,CAGxB,mBAAoB,CAAA,CAIpB,cAAuB,CACrB,OAAO,KAAK,SAAA,CAGd,WAAqB,CACnB,OAAO,KAAK,IAAI,KAAK,WAAY,KAAK,KAAK,EAAI,CAAA,CAGjD,UAAmB,CACjB,OAAQ,KAAK,MAAM,IAAW,KAAK,MAAM,IAAW,KAAK,MAAM,IAAU,EAAJ,EAAtB,EAAtB,CAAgD,CAG3E,SAASqD,EAAe,CACtB,KAAK,MAAQA,CAAA,CAGf,WAAW,CACT,MAAAp2B,EACA,WAAAq2B,CAAA,EAGA,CACA,IAAI3f,EAAShB,GAAgB,KAAK,KAAM1V,CAAK,EAEzC,GAAA,KAAK,UAAU,GAAKq2B,EAAY,CAClC,MAAMC,EAAc1f,GAAYF,CAAM,EAAE,QAAQ,OAC1CqD,EAAUzY,GAAUqhB,GAAI2T,EAAaD,CAAU,CAAC,EAChD,CAAE,WAAAE,EAAY,WAAAC,EAAY,WAAAunB,CAAW,EAAI,KAAK,iBAAiB,EACjE,GAAA,CAAE,IAAA3mC,CAAI,EAAI83B,GAAiB,CAC7B,MAAOp3B,GAAc9X,CAAK,EAC1B,QAAA+Z,EACA,MAAO,KAAK,UACZ,WAAAwc,EACA,WAAAC,EACA,WAAAunB,EACA,MAAO,KAAK,SAAA,CACb,EACD3mC,EAAMpgB,GAAIogB,EAAKR,GAAYF,CAAM,EAAE,QAAQ,GAAG,EAC9CA,EAASI,GAAc,CAAE,OAAAJ,EAAQ,IAAAU,CAAA,CAAK,CAAA,CAEjC,OAAAV,CAAA,CAGD,kBAIN,CAEI,GAAA,CAAC,KAAK,MAAM,IACd,MAAO,CAAC,EAGN,IAAA6f,EAAa,KAAK,MAAM,WAG5B,GAAI,CAACA,EAAY,CACX,IAAAK,EAAM,KAAK,MAAM,IACrB,KAAM,CAAE,MAAApuB,EAAO,OAAAC,EAAQ,MAAAC,EAAO,UAAAC,CAAc,EAAAL,GAC1CsuB,EAAI,OAAS,CACf,EACI,GAAAA,EAAI,OAASjuB,EAAY,EAAG,CAC9B,MAAMkuB,EAAS,IAAI,YAAYluB,EAAY,CAAC,EAC5CkuB,EAAO,IAAID,CAAG,EACd,KAAK,MAAM,IAAMC,EACXD,EAAAC,CAAA,CAGR,MAAM9D,EAAU,IAAI9hC,EAAM,iBAAiB2lC,EAAKpuB,EAAOC,EAAQC,CAAK,EACpEqqB,EAAQ,OAAS9hC,EAAM,gBACvB8hC,EAAQ,KAAO9hC,EAAM,gBACrB8hC,EAAQ,eAAiB,SACzBA,EAAQ,YAAc,GAEtBwD,EAAa,IAAI/X,GAAoB,CACnC,MAAOuU,EACP,IAAK,KAAA,CACN,EACD,KAAK,MAAM,WAAawD,CAAA,CAGtB,GAAA,CAAC,KAAK,MAAM,IACd,MAAO,CAAE,WAAAA,CAAW,EAGlB,IAAAC,EAAa,KAAK,MAAM,WAG5B,GAAI,CAACA,EAAY,CACX,IAAAO,EAAM,KAAK,MAAM,IACrB,KAAM,CAAE,MAAAvuB,EAAO,OAAAC,EAAQ,MAAAC,EAAO,UAAAC,CAAc,EAAAL,GAC1CyuB,EAAI,OAAS,CACf,EACI,GAAAA,EAAI,OAASpuB,EAAY,EAAG,CAC9B,MAAMquB,EAAS,IAAI,YAAYruB,EAAY,CAAC,EAC5CquB,EAAO,IAAID,CAAG,EACd,KAAK,MAAM,IAAMC,EACXD,EAAAC,CAAA,CAGR,MAAMjE,EAAU,IAAI9hC,EAAM,iBAAiB8lC,EAAKvuB,EAAOC,EAAQC,CAAK,EACpEqqB,EAAQ,OAAS9hC,EAAM,kBACvB8hC,EAAQ,KAAO9hC,EAAM,gBACrB8hC,EAAQ,eAAiB,WACzBA,EAAQ,YAAc,GAEtByD,EAAa,IAAIhY,GAAoB,CACnC,MAAOuU,EACP,IAAK,KAAA,CACN,EACD,KAAK,MAAM,WAAayD,CAAA,CAGtB,GAAA,CAAC,KAAK,MAAM,IACP,MAAA,CAAE,WAAAD,EAAY,WAAAC,CAAW,EAG9B,IAAAunB,EAAa,KAAK,MAAM,WAG5B,GAAI,CAACA,EAAY,CACX,IAAAtO,EAAM,KAAK,MAAM,IACrB,KAAM,CAAE,MAAAjnC,EAAO,OAAAC,EAAQ,MAAAC,EAAO,UAAAC,CAAc,EAAAL,GAC1CmnC,EAAI,OAAS,CACf,EACI,GAAAA,EAAI,OAAS9mC,EAAY,EAAG,CAC9B,MAAMuuB,EAAS,IAAI,YAAYvuB,EAAY,CAAC,EAC5CuuB,EAAO,IAAIuY,CAAG,EACd,KAAK,MAAM,IAAMvY,EACXuY,EAAAvY,CAAA,CAGR,MAAMnE,EAAU,IAAI9hC,EAAM,iBAAiBw+C,EAAKjnC,EAAOC,EAAQC,CAAK,EACpEqqB,EAAQ,OAAS9hC,EAAM,kBACvB8hC,EAAQ,KAAO9hC,EAAM,gBACrB8hC,EAAQ,eAAiB,WACzBA,EAAQ,YAAc,GAEtBgrB,EAAa,IAAIv/B,GAAoB,CACnC,MAAOuU,EACP,IAAK,KAAA,CACN,EACD,KAAK,MAAM,WAAagrB,CAAA,CAGnB,MAAA,CAAE,WAAAxnB,EAAY,WAAAC,EAAY,WAAAunB,CAAW,CAAA,CAS9C,aAAax1C,EAAgC,CAC3C,MAAM8uB,EACJ9uB,GAAa,KAAK,UACd,KAAK,UAEL,KAAK,IAAIA,EAAW,EAAI,KAAK,SAAS,EACtC+uB,EAAe,KAAK,YAAkB,KAAK,YAAY,OAAS,EAA9B,EAExC,GAAI,CAAC,KAAK,aAAeD,EAAaC,EAAa,CAC5C,KAAA,UAAYhvB,GAAe+uB,CAAU,EAAE,UAC5C,MAAMjzB,EAAW,IAAI,YAAY,KAAK,UAAY,CAAC,EAC/C,KAAK,aAEEA,EAAA,IAAI,KAAK,WAAW,EAE/B,KAAK,YAAcA,CAAA,CAErB,OAAO,KAAK,WAAA,CAId,eAAeqoC,EAAelkC,EAAgC,CACxD,IAAAy1C,EACAphD,EACJ,GAAI6vC,IAAU,EACL,OAAA,KAAK,aAAalkC,CAAS,EAEpC,GAAIkkC,IAAU,EAEIuR,EAAA,EACVphD,EAAA,cACG6vC,IAAU,EAEHuR,EAAA,EACVphD,EAAA,cACG6vC,IAAU,EAEHuR,EAAA,EACVphD,EAAA,UAEN,OAAM,IAAI,MAAM,kBAAkB6vC,CAAK,EAAE,EAIvC,IAAA9jC,EAAqB,KAAK,MAAM/L,CAAG,EAElC,KAAK,MAAMA,CAAG,EAAkB,OAASohD,EAD1C,EAEE,MAAA3mB,EACJ9uB,GAAaI,EAAYA,EAAY,KAAK,IAAIJ,EAAW,EAAII,CAAS,EAExE,GAAI,CAAC,KAAK,MAAM/L,CAAG,GAAKy6B,EAAa1uB,EAAW,CAElCA,EAAAL,GAAe+uB,CAAU,EAAE,UACvC,MAAMjzB,EAAW,IAAI,YAAYuE,EAAYq1C,CAAa,EACtD,KAAK,MAAMphD,CAAG,GAEhBwH,EAAS,IAAI,KAAK,MAAMxH,CAAG,CAAgB,EAExC,KAAA,MAAMA,CAAG,EAAIwH,CAAA,CAEb,OAAA,KAAK,MAAMxH,CAAG,CAAA,CAMvB,SAASoD,EAMP,CACA,GAAI,CAAC,KAAK,aAAeA,GAAS,KAAK,UAC/B,MAAA,IAAI,MAAM,eAAe,EAEjC,OAAO6H,GAAY,KAAK,YAAa7H,EAAO,KAAK,aAAa,CAAA,CAMhE,SACEA,EACAgX,EACAC,EACAC,EACA/R,EACA6M,EACA,CACA,MAAMnM,EAAe,KAAK,aAAa7F,EAAQ,CAAC,EAChD4F,GACEC,EACA7F,EACAgX,EAAO,EACPA,EAAO,EACPA,EAAO,EACPC,EAAO,EACPA,EAAO,EACPA,EAAO,EACPC,EAAW,EACXA,EAAW,EACXA,EAAW,EACXA,EAAW,EACX/R,EACA6M,EAAM,EACNA,EAAM,EACNA,EAAM,CACR,EACA,KAAK,UAAY,KAAK,IAAI,KAAK,UAAWhS,EAAQ,CAAC,CAAA,CAKrD,UACEgX,EACAC,EACAC,EACA/R,EACA6M,EACA,CACA,MAAMnM,EAAe,KAAK,aAAa,KAAK,UAAY,CAAC,EACzDD,GACEC,EACA,KAAK,UACLmR,EAAO,EACPA,EAAO,EACPA,EAAO,EACPC,EAAO,EACPA,EAAO,EACPA,EAAO,EACPC,EAAW,EACXA,EAAW,EACXA,EAAW,EACXA,EAAW,EACX/R,EACA6M,EAAM,EACNA,EAAM,EACNA,EAAM,CACR,EACA,EAAE,KAAK,SAAA,CAKT,aACE0C,EAQA,CACA,GAAI,GAAC,KAAK,aAAe,CAAC,KAAK,WAG/B,QAAS1iB,EAAI,EAAGA,EAAI,KAAK,UAAW,EAAEA,EAAG,CACvC,MAAMylC,EAAW5vB,GAAY,KAAK,YAAa7V,EAAG,KAAK,aAAa,EACpE0iB,EACE1iB,EACAylC,EAAS,OACTA,EAAS,OACTA,EAAS,WACTA,EAAS,QACTA,EAAS,KACX,CAAA,CACF,CAKF,eAAe9uB,EAA4B,CACzC,GAAI,KAAK,SAAWA,GAAa,IAAM,KAAK,UACnC,MAAA,GAEL,KAAK,QACP,KAAK,OAAO,QAAQ,EAGhB,MAAAmqB,EAAcxqB,GAAeK,GAAa,CAAC,EAC3C,CAAE,MAAAH,EAAO,OAAAC,EAAQ,MAAAC,CAAU,EAAAoqB,EACjC,YAAK,UAAYA,EAAY,UAI7B,KAAK,OAAS,IAAI7hC,EAAM,uBAAuBuX,EAAOC,EAAQC,EAAO,CACnE,YAAa,GACb,cAAe,GACf,gBAAiB,GACjB,UAAWzX,EAAM,cACjB,UAAWA,EAAM,aAAA,CAClB,EACI,KAAA,OAAO,QAAQ,OAASA,EAAM,kBAC9B,KAAA,OAAO,QAAQ,KAAOA,EAAM,gBAC5B,KAAA,OAAO,QAAQ,eAAiB,WACrC,KAAK,OAAO,YAAc,GACnB,EAAA,CAMT,gBAAgB4yC,EAGd,CACA,IAAIl7B,EAAY,EAChB,MAAMm7B,EAAUD,EAAY,IAAKt7B,GAAc,CAC7C,MAAMiI,EAAO7H,EAEPo7B,EAAU,KAAK,KAAKx7B,EAAYnO,CAAe,EAAIA,EAC5C,OAAAuO,GAAAo7B,EACN,CAAE,KAAAvzB,EAAM,MAAOjI,CAAU,CAAA,CACjC,EACM,MAAA,CAAE,UAAAI,EAAW,QAAAm7B,CAAQ,CAAA,CAK9B,YAAqC,CACnC,OAAI,KAAK,OAEA,KAAK,OAAO,QAEjB,KAAK,QAAU,KAAK,YAEP,KAAK,kBAAkB,EAIjCga,GAAa,aAAA,CAId,mBAA4C,CAC9C,GAAA,CAAC,KAAK,YACF,MAAA,IAAI,MAAM,kBAAkB,EAGpC,GAAI,KAAK,aAAe,CAAC,KAAK,OAAQ,CAGpC,GAFA,KAAK,YAAc,GAEf,KAAK,OAAQ,CACf,KAAM,CAAE,MAAAt1C,EAAO,OAAAC,EAAQ,MAAAC,CAAM,EAAI,KAAK,OAAO,MACzC,KAAK,YAAcF,EAAQC,EAASC,IAEtC,KAAK,OAAO,QAAQ,EACpB,KAAK,OAAS,KAChB,CAEE,GAAC,KAAK,OAaC,KAAK,YAAY,SAAW,KAAK,OAAO,MAAM,KAAK,SAE5D,KAAK,OAAO,MAAM,KAAO,IAAI,WAAW,KAAK,YAAY,MAAM,OAf/C,CAEhB,KAAM,CAAE,MAAAF,EAAO,OAAAC,EAAQ,MAAAC,CAAU,EAAAJ,GAAe,KAAK,SAAS,EACzD,KAAA,OAAS,IAAIrX,EAAM,iBACtB,KAAK,YACLuX,EACAC,EACAC,CACF,EACK,KAAA,OAAO,OAASzX,EAAM,kBACtB,KAAA,OAAO,KAAOA,EAAM,gBACzB,KAAK,OAAO,eAAiB,WAC7B,KAAK,OAAO,YAAc,EAAA,CAM5B,KAAK,OAAO,YAAc,EAAA,CAE5B,OAAO,KAAK,MAAA,CAqBd,uBAAuB+xC,EAGrB,CACA,IAAIxiB,EAAUs9B,GAAa,iBAAiB,IAAI9a,CAAS,EACzD,GAAI,CAACxiB,EAAS,CAEZ,MAAMP,EAAQhgB,GACZ,CAAE,MAAO,KAAM,EACf,CAAC,EACD,CAAC,CAAE,MAAAD,GAASmkC,EAAU,CAAE,MAAAC,KAAY,CAClCpB,EAAU,OAAO,MAAQhjC,EACnB,MAAA0W,EAASssB,EAAU,QAAQ,OAC3BqB,EAASjrB,GACb1C,EACA,KAAK,0BACP,EACA0tB,EAAM,KAAKC,CAAM,CACV,CAEX,EACKyZ,GAAa,kBAChBA,GAAa,gBAAkB,IAAIx9B,GACjCod,KAAa,oBACf,GAGFld,EAAU,IAAIR,GAAY,CACxB,MAAAC,EACA,OAAQ,CAAE,MAAO,QAAS,EAC1B,QAAS,CAAE,OAAQ,QAAS,EAC5B,SAAU69B,GAAa,eAAA,CACxB,EACM,OAAA,OAAOt9B,EAAQ,SAAU,CAC9B,YAAa,CAAE,MAAO,CAAE,EACxB,WAAY,CAAE,MAAO,CAAE,EACvB,YAAa,CAAE,MAAO,CAAE,CAAA,CACzB,EACYs9B,GAAA,iBAAiB,IAAI9a,EAAWxiB,CAAO,CAAA,CAIhD,MAAAC,EAAWD,EAAQ,gBAAgB,EACzC,OAAAs9B,GAAa,eAAe,SAAWr9B,EAChC,CAAE,QAAAD,EAAS,SAAAC,CAAS,CAAA,CAGrB,gBAAgB4d,EAA+B,CAC9C,MAAA,CACL,OAAQA,EAAS,gBAAgB,EACjC,UAAWA,EAAS,GAAG,QACvB,UAAWA,EAAS,SACtB,CAAA,CAGM,iBACNA,EACAnO,EAKA,CACSmO,EAAA,gBAAgBnO,EAAM,MAAM,EAC5BmO,EAAA,GAAG,QAAUnO,EAAM,UAC5BmO,EAAS,UAAYnO,EAAM,SAAA,CAQ7B,SAAS,CACP,UAAA8S,EACA,KAAAxyB,EACA,MAAAtQ,EACA,SAAAm+B,CAAA,EAMuB,CACnB,GAAA,CAAC,KAAK,OACF,MAAA,IAAI,MAAM,8CAA8C,EAE5D,GAAA7tB,EAAOtQ,EAAQ,KAAK,UAChB,MAAA,IAAI,MAAM,gCAAgC,EAGlD,KAAM,CAAE,QAAAsgB,EAAS,SAAAC,CAAA,EAAa,KAAK,uBAAuBuiB,CAAS,EACnExiB,EAAQ,OAAO,EAET,MAAA8e,EAAc,KAAK,gBAAgBjB,CAAQ,EAI3CoG,EACJ,KAAK,MAAMj0B,EAAOtQ,GAAS9F,CAAe,EAAIA,EAC1CukC,EAAYvkC,EAAkBC,GAKpC,IAJSomB,EAAA,SAAS,WAAW,MAAQjQ,EAC5BiQ,EAAA,SAAS,YAAY,MAAQvgB,EAG/BsQ,EAAOi0B,GAAU,CACtB,MAAM5F,EAAQ,KAAK,MAAMruB,EAAOmuB,CAAS,EAChCle,EAAA,SAAS,YAAY,MAAQoe,EAEtC,MAAMC,EAAYD,EAAQF,EACpB+F,EAAc,KAAK,OAAOl0B,EAAOsuB,GAAa1kC,CAAe,EAC7D2kC,EAAY,KAAK,IACrB1kC,GACA,KAAK,MAAMoqC,EAAW3F,GAAa1kC,CAAe,CACpD,EAGA,KAAK,OAAO,QAAQ,IAClB,EACAsqC,EACAtqC,EACA2kC,EAAY2F,CACd,EACSrG,EAAA,gBAAgB,KAAK,OAAQQ,CAAK,EAC3CR,EAAS,GAAG,QAAU,GACtBA,EAAS,UAAY,GACRyf,GAAA,eAAe,OAAOzf,CAAQ,EAE3C7tB,GAAQpW,GAAmB2kC,EAAY2F,EAAA,CAGpC,YAAA,iBAAiBrG,EAAUiB,CAAW,EACpC,CAAE,SAAAmF,CAAS,CAAA,CAGpB,kBAAmB,CACb,KAAK,YACP,KAAK,UAAU,QAAQ,EACvB,KAAK,UAAY,OACnB,CAGF,MAAM,gBAAgB,CACpB,UAAA1M,EACA,QAAAC,CACF,EAAkD,GAAI,CACpD,MAAMC,EACJ,OAAO,KAAK,KAAQ,SAChB,KAAK,IAAI,IAAK,KAAK,IAAI,EAAK,KAAK,GAAG,CAAC,EACrCD,EACE,KACA,IACFsX,EAAe,KAAK,YAA4B,MAAM,EACtDn4B,EAAO4gB,GAAa,MAAMA,EAAU,SAAS,GAAG,QAAU,OAC1DG,EAAQ,CACZ,IAAK,KAAK,MAAM,IAAO,KAAK,MAAM,IAAoB,QAAU,OAChE,IAAK,KAAK,MAAM,IAAO,KAAK,MAAM,IAAoB,QAAU,OAChE,IAAK,KAAK,MAAM,IAAO,KAAK,MAAM,IAAoB,QAAU,MAClE,EACMC,EAAU,MAAMjjB,GAAW,WAAW,MAAOZ,GACzC,MAAMA,EAAO,KACnB0jB,EAAU,yBAA2B,sBACrC,CACE,UAAW,KAAK,UAChB,YAAAsX,EACA,MAAApX,EACA,QAAAD,EACA,KAAA9gB,EACA,SAAU,KAAK,eAAiBrc,EAAA,CAEpC,CAMD,EAEKs9B,EAAY,IAAI0lB,GAAa3lB,CAAO,EACtC,KAAK,WACP,KAAK,UAAU,QAAQ,EAGzB,KAAK,UAAYC,EACjB,KAAK,OAAS,GACT,KAAA,IAAMJ,EAAU,UAAY,EAAA,CAGnC,cAAcN,EAAsBC,EAAuB,CACzD,MAAMhvB,EAAYL,GAAeovB,EAAQ,MAAM,EAAE,UAC3CE,EAAY,IAAIkmB,GAAa,CAAE,UAAAn1C,EAAW,EAChD,QAAS3W,EAAI,EAAGA,EAAI0lC,EAAQ,OAAQ1lC,IAAK,CACvC,MAAM6lC,EAAQ,KAAK,SAASH,EAAQ1lC,CAAC,CAAC,EACtC,GAAI2lC,EAAc,CAChB,IAAIG,GAAOJ,EAAQ1lC,CAAC,IAAM,IAAM,aAC1B8lC,EAAAA,EAAM,KAAK,MAAMA,CAAG,EAC1B,MAAM7lC,EAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI6lC,EAAM,EAAM,CAAG,EAAI,CAAG,CAAC,EAC5D1yB,EAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI0yB,EAAM,EAAM,CAAG,EAAI,CAAG,CAAC,EAC5D/lC,EAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,IAAI+lC,EAAM,EAAM,CAAG,EAAI,CAAG,CAAC,EAClED,EAAM,MAAM,GAAK5lC,EACjB4lC,EAAM,MAAM,GAAKzyB,EACjByyB,EAAM,MAAM,GAAK9lC,CAAA,CAET6lC,EAAA,UACRC,EAAM,OACNA,EAAM,OACNA,EAAM,WACNA,EAAM,QACNA,EAAM,KACR,CAAA,CAEK,OAAAD,CAAA,CA4CX,EAjREkmB,GAAO,eAAiB,IAAM,CAC5B,KAAM,CAAE,MAAAt1C,EAAO,OAAAC,EAAQ,MAAAC,EAAO,UAAAC,CAAU,EAAIL,GAAe,CAAC,EACtD+vB,EAAa,IAAI,YAAY1vB,EAAY,CAAC,EAC1CoqB,EAAU,IAAI9hC,EAAM,iBACxBonC,EACA7vB,EACAC,EACAC,CACF,EACA,OAAAqqB,EAAQ,OAAS9hC,EAAM,kBACvB8hC,EAAQ,KAAO9hC,EAAM,gBACrB8hC,EAAQ,eAAiB,WACzBA,EAAQ,YAAc,GACfA,CAAA,GACN,EA0NH+qB,GAAO,gBAA8C,KAG9CA,GAAA,qBAAuB,QAG9BA,GAAO,eAAiB,IAAIve,GAAA,eAC1B,IAAItuC,EAAM,kBAAkB,CAAE,QAAS,EAAO,CAAA,CAChD,EAEA6sD,GAAO,eAAiB,IAAM,CAC5B,KAAM,CAAE,MAAAt1C,EAAO,OAAAC,EAAQ,MAAAC,EAAO,UAAAC,CAAU,EAAIL,GAAe,CAAC,EACtD+vB,EAAa,IAAI,YAAY1vB,EAAY,CAAC,EAC1CoqB,EAAU,IAAI9hC,EAAM,iBACxBonC,EACA7vB,EACAC,EACAC,CACF,EACA,OAAAqqB,EAAQ,OAAS9hC,EAAM,kBACvB8hC,EAAQ,KAAO9hC,EAAM,gBACrB8hC,EAAQ,eAAiB,WACzBA,EAAQ,YAAc,GACfA,CAAA,GACN,EAEH+qB,GAAO,eAAiB,IAAM,CAC5B,KAAM,CAAE,MAAAt1C,EAAO,OAAAC,EAAQ,MAAAC,EAAO,UAAAC,CAAU,EAAIL,GAAe,CAAC,EACtD+vB,EAAa,IAAI,YAAY1vB,EAAY,CAAC,EAC1CoqB,EAAU,IAAI9hC,EAAM,iBACxBonC,EACA7vB,EACAC,EACAC,CACF,EACA,OAAAqqB,EAAQ,OAAS9hC,EAAM,gBACvB8hC,EAAQ,KAAO9hC,EAAM,gBACrB8hC,EAAQ,eAAiB,SACzBA,EAAQ,YAAc,GACfA,CAAA,GACN,EAr4BE,IAAMmX,GAAN4T,GAk5BA,MAAM9d,WAAyBxlB,CASpC,CAGA,YAAY,CAAE,aAAA3U,CAAa,EAAqC,GAAI,CAC5D,MAAA,CACJ,IAAK,eACL,KAAMwP,GACN,QAAS,IAAM,CAAC+C,EAAkB,EAClC,MAAO,CACL,aAAc8xB,GAAa,cAC3B,UAAW,EACX,uBAAwB,IAAIj5C,EAAM,QAChC,EACA,EACAyI,GACAC,EACF,EACA,WAAY,EACd,EACA,OAASyC,GAAU,6BACjB,OAAAA,EAAM,eACJjK,EAAA,KAAK,eAAL,YAAAA,EAAmB,eAAgB+3C,GAAa,cAC5C9tC,EAAA,YAAY9J,EAAA,KAAK,eAAL,YAAAA,EAAmB,YAAa,EAClD8J,EAAM,uBAAuB,MAC3B2xC,GAAA3rB,EAAA,KAAK,eAAL,YAAAA,EAAmB,gBAAnB,YAAA2rB,EAAkC,SAAU,IAC5C8E,GAAA7E,EAAA,KAAK,eAAL,YAAAA,EAAmB,gBAAnB,YAAA6E,EAAkC,SAAU,IAC5CiB,GAAAC,EAAA,KAAK,eAAL,YAAAA,EAAmB,gBAAnB,YAAAD,EAAkC,aAAcp6C,KAChDs6C,GAAAC,EAAA,KAAK,eAAL,YAAAA,EAAmB,gBAAnB,YAAAD,EAAkC,aAAcr6C,EAClD,EACAyC,EAAM,aACJ+3C,GAAAD,EAAA,KAAK,eAAL,YAAAA,EAAmB,gBAAnB,YAAAC,EAAkC,aAAc,GAC3C/3C,CAAA,CACT,CACD,EACD,KAAK,aAAeyJ,CAAA,CAExB,CAEO,MAAMo4C,GAAsBx9C,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAwB3C,EAEYy9C,GAAsBz9C,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAoC3C,EAEY09C,GAAsB19C,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAuD3C,EAEM,SAASyuC,GAAiB,CAC/B,MAAA/1B,EACA,QAAAY,EACA,MAAA2e,EACA,WAAAnC,EACA,WAAAC,EACA,WAAAunB,EACA,MAAAjP,CACF,EAQG,CACD,OAAO,IAAInxC,EAAK,CACd,QAAS,CACP,MAAO,QACP,QAAS,OACT,MAAO,MACP,WAAY,kBACZ,WAAY,kBACZ,WAAY,kBACZ,MAAO,MACT,EACA,SAAU,CAAE,IAAK,MAAO,EACxB,OAAQ,CACN,MAAAwb,EACA,QAAAY,EACA,MAAA2e,EACA,WAAAnC,EACA,WAAAC,EACA,WAAAunB,EACA,MAAAjP,CACF,EACA,QAAS,IAAM,CACbmP,GACAC,GACAC,EACF,EACA,WAAY,CAAC,CAAE,OAAArgD,EAAQ,QAAAK,KAAc,CAC7B,MAAAmC,EAAQ,CAAC,uBAAuB,EACtC,OAAIxC,EAAO,aACHwC,EAAA,KACJ,GAAGF,EAAc;AAAA,gBACXtC,EAAO,KAAK;AAAA,yDAC6BA,EAAO,UAAU,KAAKA,EAAO,KAAK,YAAYA,EAAO,OAAO,KAAKA,EAAO,KAAK;AAAA;AAAA,WAE3H,CACH,EACIA,EAAO,aACHwC,EAAA,KACJ,GAAGF,EAAc;AAAA,kBACXtC,EAAO,KAAK;AAAA,2DAC6BA,EAAO,UAAU,KAAKA,EAAO,KAAK,SAASA,EAAO,OAAO,KAAKA,EAAO,KAAK;AAAA;AAAA,aAExH,CACH,EACIA,EAAO,YACHwC,EAAA,KACJ,GAAGF,EAAc;AAAA,oBACXtC,EAAO,KAAK;AAAA,6DAC6BA,EAAO,UAAU,KAAKA,EAAO,KAAK,SAASA,EAAO,OAAO,KAAKA,EAAO,KAAK;AAAA;AAAA;AAAA,aAG1H,CACD,EAEFwC,EAAM,KAAK,GAAG,GAEhBA,EAAM,KAAK,GAAG,GAEhBA,EAAM,KAAK,GAAGnC,EAAQ,GAAG,SAAS,EAC3BmC,CAAA,CAEV,CAAA,EAAE,OACL,CCvmCO,MAAM89C,GAAN,MAAMA,EAAkB,CAyC7B,YAAYn/C,EAAiE,CAK3E,GAzCwB,KAAA,SAAA,KAKX,KAAA,aAAA,GACL,KAAA,QAAA,EAgBC,KAAA,QAAA,KAEX,KAAQ,QAAiD,KACzD,KAAQ,QAIG,KACX,KAAQ,aAAe,GAEf,KAAA,WAA0B,IAAI,YAAY,CAAC,EAC3C,KAAA,WAA0B,IAAI,YAAY,CAAC,EAIjD,KAAK,MAAQA,EAAQ,MACrB,KAAK,OAASA,EAAQ,OACtB,KAAK,YAAcA,EAAQ,aAAe,IAAIhO,EAAM,QAEhDgO,EAAQ,OAAQ,CAClB,KAAM,CAAE,MAAAuJ,EAAO,OAAAC,EAAQ,aAAAi+B,GAAiBznC,EAAQ,OAC1C4nC,EAAU,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG5nC,EAAQ,OAAO,SAAW,CAAC,CAAC,EAEpE,GADA,KAAK,QAAU4nC,EACXr+B,EAAQq+B,EAAU,MAAQp+B,EAASo+B,EAAU,KACzC,MAAA,IAAI,MAAM,uBAAuB,EAGpC,KAAA,OAAS,IAAI51C,EAAM,kBACtBuX,EAAQq+B,EACRp+B,EAASo+B,EACT,CACE,OAAQ51C,EAAM,WACd,KAAMA,EAAM,iBACZ,WAAYA,EAAM,cAAA,CAEtB,EACIy1C,IACG,KAAA,KAAO,IAAIz1C,EAAM,kBACpBuX,EAAQq+B,EACRp+B,EAASo+B,EACT,CACE,OAAQ51C,EAAM,WACd,KAAMA,EAAM,iBACZ,WAAYA,EAAM,cAAA,CAEtB,GAEF,KAAK,aAAe,EAAA,CAEtB,KAAK,iBAAmBgO,EAAQ,iBAE3B,KAAA,WAAaA,EAAQ,YAAc,GACxC,KAAK,aAAeA,EAAQ,aAC5B,KAAK,aAAeA,EAAQ,aAC5B,KAAK,UAAYA,EAAQ,UACzB,KAAK,QAAUA,EAAQ,QACvB,KAAK,OAASA,EAAQ,OACjB,KAAA,WAAaA,EAAQ,YAAc,GAEnC,KAAA,iBAAmB,IAAIqF,GAAS,CACnC,SAAWqE,GACT,IAAI,YAAYA,CAAS,EAC3B,MAAO,CAACzX,EAAUyX,IAAczX,EAAS,SAAWyX,CAAA,CACrD,EAED,KAAK,WAAa,GACb,KAAA,cAAc1J,EAAQ,YAAc,EAAK,CAAA,CAKhD,SAAU,OACR,KAAK,cAAc,EAAK,EACpB,KAAK,SACP,KAAK,OAAO,QAAQ,EACpB,KAAK,OAAS,QAEZ,KAAK,OACP,KAAK,KAAK,QAAQ,EAClB,KAAK,KAAO,QAEV,KAAK,UACP,KAAK,MAAM,mBAAmB,KAAK,QAAQ,WAAW,EACjD,KAAA,QAAQ,SAAS,QAAQ,EAC9B,KAAK,QAAU,OAEb9M,EAAA,KAAK,UAAL,MAAAA,EAAc,cAChB,KAAK,MAAM,mBAAmB,KAAK,QAAQ,WAAW,EACtD,KAAK,QAAU,KACjB,CAOF,cAAc01C,EAAqB,CAC7B,CAAC,KAAK,YAAcA,EACjB,KAAA,MAAM,eAAe,KAAK,IAAI,EAC1B,KAAK,YAAc,CAACA,IAC7B,KAAK,MAAM,eAAiB,KAAK,MAAM,eAAe,OACnDz0C,GAAMA,IAAM,IACf,GAEF,KAAK,WAAay0C,CAAA,CAOpB,MAAM,QAAQ,CACZ,MAAAlD,EACA,OAAAE,EACA,YAAA8M,EACA,OAAA5zC,EACA,YAAAsgD,CAAA,EAOC,CAUD,IATI1M,EACF,KAAK,YAAcA,GAEd,KAAA,OAAS9M,GAAU,KAAK,OACzB,KAAK,SACP,KAAK,OAAO,kBAAkB,EAC9B,KAAK,YAAc,KAAK,OAAO,YAAY,MAAM,IAG9C9mC,GAAU,IAAM,CAGrB,MAAMugD,EAAgBD,EAClB,KAAK,YACL,KAAK,MAAM,YAEf,GADgB,KAAK,MAAM,eAAe,CAAE,MAAA1Z,EAAO,cAAA2Z,EAAe,EAEhE,MAGF,MAAM,IAAI,QAASzqC,GAAY,WAAWA,EAAS,EAAE,CAAC,CAAA,CAGlD,MAAAqzB,EAAc,KAAK,MAAM,OAE/BA,EAAY,UAAY,EACxB,MAAM,KAAK,WAAW,CAAE,YAAAA,EAAa,YAAa,KAAK,YAAa,EAE/D,KAAA,MAAM,mBAAmBA,CAAW,CAAA,CAM3C,aAAa,CACX,MAAAvC,EACA,OAAAE,CAAA,EACgD,OAC1C,MAAAmG,EAAS,KAAK,MAAQ,KAAK,OACjC,GAAI,CAACA,EACG,MAAA,IAAI,MAAM,4CAA4C,EAI9D,GADAnG,EAASA,GAAU,KAAK,OACpB,CAACA,EACG,MAAA,IAAI,MAAM,qBAAqB,EAEnC,GAAAA,aAAkB5zC,EAAM,kBAAmB,CAC7C,MAAMstD,EAAS,IAAIttD,EAAM,kBAAoB,EAAA,KAAK4zC,EAAQ,EAAK,EACxD0Z,EAAA,OAASvT,EAAO,MAAQA,EAAO,OACtCuT,EAAO,uBAAuB,EACrB1Z,EAAA0Z,CAAA,CAEN,KAAA,YAAc1Z,EAAO,YAAY,MAAM,EAE5C,MAAMoG,EAAiB,KAAK,MAAM,SAAS,gBAAgB,EACvD,GAAA,CACG,KAAA,MAAM,SAAS,gBAAgBD,CAAM,EACrC,KAAA,MAAM,iBAAiB,IAAI,EAEhC,KAAK,MAAM,SAAS,OAAOrG,EAAOE,CAAM,CAAA,QACxC,CACA,KAAK,MAAM,iBAAiB,KAAK,MAAM,WAAW,EAC7C,KAAA,MAAM,SAAS,gBAAgBoG,CAAc,CAAA,CAGhDD,IAAW,KAAK,SAEjB,CAAA,KAAK,OAAQ,KAAK,IAAI,EAAI,CAAC,KAAK,KAAM,KAAK,MAAM,IAE/C74C,EAAA,KAAA,mBAAA,MAAAA,EAAA,UAAmB64C,EAAO,QAAO,CAQxC,MAAM,YAAkC,CAClC,GAAA,CAAC,KAAK,OACF,MAAA,IAAI,MAAM,4CAA4C,EAE9D,KAAM,CAAE,MAAAxiC,EAAO,OAAAC,CAAO,EAAI,KAAK,OACzByiC,EAAW1iC,EAAQC,EAAS,GAC9B,CAAC,KAAK,aAAe,KAAK,YAAY,OAASyiC,KAC5C,KAAA,YAAc,IAAI,WAAWA,CAAQ,GAEtC,MAAA,KAAK,MAAM,SAAS,4BACxB,KAAK,OACL,EACA,EACA1iC,EACAC,EACA,KAAK,WACP,EAEM,KAAA,CAAE,QAAAo+B,GAAY,KACpB,GAAIA,IAAY,EACd,OAAO,KAAK,YAGd,MAAMuE,EAAW5iC,EAAQq+B,EACnBwE,EAAY5iC,EAASo+B,EACrByE,EAAUF,EAAWC,EAAY,GACnC,CAAC,KAAK,QAAU,KAAK,OAAO,OAASC,KAClC,KAAA,OAAS,IAAI,WAAWA,CAAO,GAGhC,KAAA,CAAE,YAAAH,EAAa,OAAA/hC,CAAA,EAAW,KAC1BoiC,EAAS3E,EAAUA,EACzB,QAASliC,EAAI,EAAGA,EAAI0mC,EAAW1mC,IAAK,CAClC,MAAM8mC,EAAM9mC,EAAIymC,EAChB,QAAS34C,EAAI,EAAGA,EAAI24C,EAAU34C,IAAK,CACjC,MAAMi5C,EAAWj5C,EAAIo0C,EACrB,IAAI50C,EAAI,EACJmT,EAAI,EACJrT,EAAI,EACJ4B,EAAI,EACR,QAASmb,EAAK,EAAGA,EAAK+3B,EAAS/3B,IAAM,CACnC,MAAM68B,GAAYhnC,EAAIkiC,EAAU/3B,GAAM,KAAK,OAAO,MAClD,QAAS88B,EAAK,EAAGA,EAAK/E,EAAS+E,IAAM,CAC7B,MAAAC,GAAcF,EAAWD,EAAWE,GAAM,EAChD35C,GAAKk5C,EAAYU,CAAU,EACtBzmC,GAAA+lC,EAAYU,EAAa,CAAC,EAC1B95C,GAAAo5C,EAAYU,EAAa,CAAC,EAC1Bl4C,GAAAw3C,EAAYU,EAAa,CAAC,CAAA,CACjC,CAEI,MAAAC,GAAcL,EAAMh5C,GAAK,EACxB2W,EAAA0iC,CAAU,EAAI75C,EAAIu5C,EAClBpiC,EAAA0iC,EAAa,CAAC,EAAI1mC,EAAIomC,EACtBpiC,EAAA0iC,EAAa,CAAC,EAAI/5C,EAAIy5C,EACtBpiC,EAAA0iC,EAAa,CAAC,EAAIn4C,EAAI63C,CAAA,CAC/B,CAEK,OAAApiC,CAAA,CAkBT,MAAM,oBAAoB,CACxB,MAAAu7B,EACA,OAAAE,EACA,YAAA8M,EACA,OAAA5zC,EACA,YAAAsgD,CAAA,EAOC,CACK,aAAA,KAAK,QAAQ,CAAE,MAAA1Z,EAAO,OAAAE,EAAQ,YAAA8M,EAAa,OAAA5zC,EAAQ,YAAAsgD,EAAa,EACtE,KAAK,aAAa,CAAE,MAAA1Z,EAAO,OAAAE,CAAA,CAAQ,EAC5B,KAAK,WAAW,CAAA,CAMzB,SAAS,CAAE,YAAAqC,GAAsD,WAC3D,KAAK,SACP,KAAK,OAAO,kBAAkB,EAC9B,KAAK,YAAc,KAAK,OAAO,YAAY,MAAM,GAGnD,IAAIsX,EAAY,GACZC,EAAY,GAEZ,GAAA,CAAC,KAAK,QAEID,EAAA,WACHtX,EAAa,CACVsX,EAAA,GACZ,KAAM,CAAE,eAAA5Y,CAAA,EAAmB,KAAK,QAAQ,YACpCsB,EAAY,iBAAmBtB,IAIjCsB,EAAY,UAAY,EACxB,KAAK,MAAM,mBAAmB,KAAK,QAAQ,WAAW,EACtD,KAAK,QAAQ,YAAcA,EAC3B,KAAK,QAAQ,YAAY,KAAK,KAAK,WAAW,EAClCuX,EAAA,GAER,KAAK,MAAM,YAAc,MACtB,KAAA,MAAM,iBAAiB,IAAI,EAEpC,CAGF,MAAMC,IAAavsD,EAAA,KAAK,UAAL,YAAAA,EAAc,gBAAeG,EAAA,KAAK,UAAL,YAAAA,EAAc,aAE5DosD,GACA,CAACnzC,GAAmB,CAClB,QAAS,KAAK,YACd,QAASmzC,EAET,YAAa,KAAK,cAAgB,IAKlC,YAAc,KAAK,cAAgB,KAAK,WAAc,IAAO,IAAA,CAC9D,IAEWF,EAAA,IAGTA,IAKDtX,IAEFA,EAAY,UAAY,IAGtB9kB,EAAA,KAAK,UAAL,MAAAA,EAAc,aAChB,KAAK,MAAM,mBAAmB,KAAK,QAAQ,WAAW,EAExD,KAAK,QAAU,CAAE,YAAA8kB,EAAa,YAAa,KAAK,YAAa,UAAAuX,CAAU,EAGvE,KAAK,UAAU,EAAA,CAGjB,MAAc,WAAY,OACxB,OAAa,CACX,GAAI,KAAK,SAAW,CAAC,KAAK,QACxB,OAGF,KAAM,CAAE,YAAA9M,EAAa,UAAA8M,CAAU,EAAI,KAAK,QACpC,IAAAvX,EAAc,KAAK,QAAQ,YAO/B,GANKA,IAEHA,IAAc/0C,EAAA,KAAK,UAAL,YAAAA,EAAc,cAAe,KAAK,MAAM,OACtD+0C,EAAY,UAAY,GAE1B,KAAK,QAAU,KACX,CAACA,EACG,MAAA,IAAI,MAAM,wBAAwB,EAGrC,KAAA,QAAU,CAAE,YAAAyK,CAAY,EAC7B,MAAM,KAAK,WAAW,CAAE,YAAAzK,EAAa,YAAAyK,EAAa,UAAA8M,EAAW,EAC7D,KAAK,QAAU,KAGV,KAAA,MAAM,mBAAmBvX,CAAW,CAAA,CAG3C,CAGF,MAAc,WAAW,CACvB,YAAAA,EACA,YAAAyK,EACA,UAAA8M,EAAY,EAAA,EAKX,CACD,GAAI,KAAK,aACD,MAAA,IAAI,MAAM,yBAAyB,EAE3C,KAAK,aAAe,GAENvX,EAAAA,GAAe,KAAK,MAAM,OACxC,KAAM,CAAE,UAAA3+B,EAAW,UAAAI,CAAU,EAAIu+B,EAAY,OAC7C,IAAI/1C,EAAe,EACfD,EAAW,KAAK,iBAAiB,MAAMyX,CAAS,EAEpD,GAAI,KAAK,WAAY,CACJxX,EAAAoX,EAGf,QAAS,EAAI,EAAG,EAAIA,EAAW,EAAE,EAC/BrX,EAAS,CAAC,EAAI,CAChB,SACSqX,EAAY,EAAG,CAClB,KAAA,CACJ,OAAAm2B,EACA,iBAAAigB,EACA,aAAAC,EACA,eAAAC,EACA,WAAAC,EACA,cAAAC,EACA,cAAAC,EACA,YAAAC,EACA,WAAApf,CAAA,EACEue,GAAkB,WAAW,EAC3Bc,EAAS,KAAK,QAAU,GAC1B,IAAAlgB,EACJ,GAAIkgB,EACF,KAAK,WAAaxgB,EAAO,aAAa/1B,EAAW,KAAK,UAAU,EAChEq2B,EAAW,KAAK,eACX,CACL,MAAMmgB,EAAgB,KAAK,KAAKx2C,EAAY,CAAC,EAC7C,KAAK,WAAa+1B,EAAO,aAAaygB,EAAe,KAAK,UAAU,EACpEngB,EAAW,KAAK,UAAA,CAGlB,MAAMogB,EAAgBlY,EAAY,QAAQ,MAAA,EAAQ,OAAO,EACnDmY,EAAe1N,EAAY,MAAM,EAAE,YAAYyN,CAAa,EAElEP,EAAe,MAAQ,KAAK,QAAU,GAAO,KAAK,WAClDC,EAAW,MAAM,IAAI,EAAG,EAAG,CAAC,EAAE,aAAaO,CAAY,EACvDN,EAAc,MACX,IAAI,EAAG,EAAG,EAAE,EACZ,aAAaM,CAAY,EACzB,IAAIP,EAAW,KAAK,EACpB,UAAU,EACCE,EAAA,MAAQ,KAAK,WAAa,EAC5BC,EAAA,MAAQ,KAAK,SAAW,GACpCpf,EAAW,aAAeqH,EAAY,OAEhC,MAAAoY,EAAaJ,EAASN,EAAeD,EACrCz+C,EAAQg/C,EAAS32C,EAAY,KAAK,KAAKA,EAAY,CAAC,EAC1D,MAAMm2B,EAAO,eAAe,CAC1B,SAAU,KAAK,MAAM,SACrB,OAAQ4gB,EACR,MAAAp/C,EACA,SAAA8+B,CAAA,CACD,EAED,MAAM3gC,EAAU,MAAMoW,GAAW,MAAOH,GAAW,CAC3C,MAAAirC,EAAUL,EAAS,eAAiB,mBACnC,OAAA5qC,EAAO,KAAKirC,EAAS,CAC1B,UAAA52C,EACA,UAAAJ,EACA,SAAAy2B,EACA,SAAA9tC,CAAA,CACD,CAAA,CACF,EAKGguD,EACF,KAAK,WAAa7gD,EAAO,SAEzB,KAAK,WAAaA,EAAO,SAE3BnN,EAAWmN,EAAO,SAClBlN,EAAekN,EAAO,YAAA,CAGxB,KAAK,cAAc,CACjB,YAAA6oC,EACA,YAAAyK,EACA,SAAAzgD,EACA,aAAAC,EACA,UAAAstD,CAAA,CACD,EACD,KAAK,aAAe,EAAA,CAGd,cAAc,CACpB,YAAAvX,EACA,YAAAyK,EACA,SAAAzgD,EACA,aAAAC,EACA,UAAAstD,EAAY,EAAA,EAOX,CACG,GAAA,CAAC,KAAK,QAERvX,EAAY,UAAY,EACxB,KAAK,QAAU,CACb,YAAAA,EACA,YAAAyK,EACA,SAAU,IAAI3gD,GAAiBE,EAAUC,CAAY,CACvD,MACK,CACD,CAACstD,GAAavX,IAAgB,KAAK,QAAQ,cAE7CA,EAAY,UAAY,EAExB,KAAK,MAAM,mBAAmB,KAAK,QAAQ,WAAW,EACtD,KAAK,QAAQ,YAAcA,GAG7B,KAAK,QAAQ,YAAcyK,EAErB,MAAA6N,EAAc,KAAK,QAAQ,SAAS,SACtCA,EAAY,SAAWtuD,EAAS,OAClC,KAAK,QAAQ,SAAS,OAAOA,EAAUC,CAAY,GAE9C,KAAA,QAAQ,SAAS,QAAQ,EAE9B,KAAK,QAAQ,SAAW,IAAIH,GAAiBE,EAAUC,CAAY,GAEhE,KAAA,iBAAiB,KAAKquD,CAAW,CAAA,CAEpC,KAAK,MAAM,YAAc,MACtB,KAAA,MAAM,iBAAiB,IAAI,CAClC,CAmBF,OAAe,YAAa,CACtB,GAAA,CAACpB,GAAkB,MAAO,CAC5B,MAAMS,EAAiB,IAAInkC,GAAS,CAAE,MAAO,GAAM,EAC7CokC,EAAa,IAAI9iC,GAAS,CAAE,MAAO,IAAI/qB,EAAM,QAAW,EACxD8tD,EAAgB,IAAI/iC,GAAS,CAAE,MAAO,IAAI/qB,EAAM,QAAW,EAC3D+tD,EAAgB,IAAIhkC,GAAU,CAAE,MAAO,EAAK,EAC5CikC,EAAc,IAAIvkC,GAAS,CAAE,MAAO,GAAO,EAC3CmlB,EAAa,IAAIG,GAEjBtB,EAAS,IAAIc,GACbmf,EAAmB1+C,GACvB,CAAE,MAAO,KAAM,EACf,CAAE,MAAO,MAAO,EAChB,CAAC,CAAE,MAAAD,CAAA,IAAY,CACb,GAAI,CAACA,EACG,MAAA,IAAI,MAAM,UAAU,EAE5B,MAAMy/C,EAAa,CACjB,WAAYZ,EACZ,WAAYC,EACZ,cAAeC,EACf,cAAeC,EACf,QAASC,CACX,EACMS,EAAS78B,GAAI7iB,EAAO7C,EAAU,MAAO,CAAC,CAAC,EAEvCwiD,EAAUjqC,GAAgBmqB,EAAY6f,CAAM,EAC5CE,EAAUC,GAAkB,CAAE,OAAQF,EAAS,GAAGF,EAAY,EAE9DK,EAAUpqC,GACdmqB,EACA7oC,GAAI0oD,EAAQviD,EAAU,MAAO,CAAC,CAAC,CACjC,EACM4iD,EAAUF,GAAkB,CAAE,OAAQC,EAAS,GAAGL,EAAY,EAE9DO,EAAWjyB,GAAQ,CACvB,WAAY,OACZ,EAAG6xB,EACH,EAAGG,CAAA,CACJ,EAED,MAAO,CAAE,MADKvzB,GAAYJ,GAAa4zB,CAAQ,CAAC,CACjC,CAAA,CAEnB,EAEMpB,EAAe3+C,GACnB,CAAE,MAAO,KAAM,EACf,CAAE,MAAO,MAAO,EAChB,CAAC,CAAE,MAAAD,CAAA,IAAY,CACb,GAAI,CAACA,EACG,MAAA,IAAI,MAAM,UAAU,EAE5B,MAAMy/C,EAAa,CACjB,WAAYZ,EACZ,WAAYC,EACZ,cAAeC,EACf,cAAeC,EACf,QAASC,CACX,EAEMvoC,EAAShB,GAAgBmqB,EAAY7/B,CAAK,EAC1CigD,EAASJ,GAAkB,CAAE,OAAAnpC,EAAQ,GAAG+oC,EAAY,EAE1D,MAAO,CAAE,MADKjzB,GAAY9qB,GAAgBu+C,CAAM,CAAC,CAClC,CAAA,CAEnB,EAEA7B,GAAkB,MAAQ,CACxB,eAAAS,EACA,WAAAC,EACA,cAAAC,EACA,cAAAC,EACA,YAAAC,EACA,WAAApf,EACA,OAAAnB,EACA,iBAAAigB,EACA,aAAAC,CACF,CAAA,CAEF,OAAOR,GAAkB,KAAA,CAE7B,EA/FSA,GAAA,cAAgB,IAAIntD,EAAM,QAEjCmtD,GAAe,MAUJ,KA3kBN,IAAM8B,GAAN9B,GAgqBP,MAAM+B,GAA0B1/C,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAcxC,EAED,SAASo/C,GAAkB,CACzB,OAAAnpC,EACA,WAAAsD,EACA,WAAAomC,EACA,cAAAC,EACA,cAAAC,EACA,QAAAC,CACF,EAOG,CACD,OAAO5jD,GAAK,CACV,QAAS,CACP,OAAQwY,EACR,WAAY,OACZ,WAAY,OACZ,cAAe,OACf,cAAe,QACf,QAAS,MACX,EACA,SAAU,CAAE,OAAQ,OAAQ,EAC5B,QAAS,IAAM,CAAC+C,GAAcioC,EAAuB,EACrD,OAAQ,CACN,OAAAzpC,EACA,WAAAsD,EACA,WAAAomC,EACA,cAAAC,EACA,cAAAC,EACA,QAAAC,CACF,EACA,WAAY,CAAC,CAAE,OAAAziD,EAAQ,QAAAK,KAAc,CAC7B,KAAA,CACJ,OAAAuY,EACA,WAAAsD,EACA,WAAAomC,EACA,cAAAC,EACA,cAAAC,EACA,QAAAC,CAAA,EACEziD,EACJ,OAAOsC,EAAc;AAAA,UACjBjC,EAAQ,MAAM,kBAAkBuY,CAAM,KAAKsD,CAAU,KAAKomC,CAAU,KAAKC,CAAa,KAAKC,CAAa,KAAKC,CAAO;AAAA,OACvH,CAAA,CACH,CACD,EAAE,QAAQ,MACb,CCp2BO,MAAMC,EAAoB,CAA1B,aAAA,CACL,KAAA,OAAS,IAAItW,GAEH,KAAA,QAAA,IAAIj5C,EAAM,QAEpB,KAAA,QAA8B,CAAC,EAGpB,KAAA,SAAA,EAGK,KAAA,cAAA,GAGC,KAAA,eAAA,EAAA,CAEjB,eAAe0X,EAAmB,CAC5B,KAAK,OAAO,eAAeA,CAAS,IAEtC,KAAK,QAAU,CAAC,EAClB,CAIF,eAAe,CACb,SAAA01B,EACA,SAAA0E,EACA,WAAA0d,EACA,YAAAC,EACA,cAAApC,CAAA,EAOC,CAED,MAAMxa,EAAU,KAAK,QAAQ,OAAO,CAAC6c,EAAKnX,KACpCmX,EAAA,IAAInX,EAAO,KAAMA,CAAM,EACpBmX,GACF,IAAA,GAAuC,EAG9C,IAAIjf,EAAU,EACVn5B,EAAY,EAChB,SAAW,CAAE,KAAAlJ,EAAM,UAAA2jC,EAAW,QAAA2C,EAAS,KAAAn1B,EAAM,MAAAtQ,KAAWugD,EAAY,CAC5D,MAAArY,EAAUtE,EAAQ,IAAIzkC,CAAI,EAChC,IACEqhD,GACA1d,KAAcoF,GAAA,YAAAA,EAAS,YACvBzC,KAAYyC,GAAA,YAAAA,EAAS,UACrB53B,KAAS43B,GAAA,YAAAA,EAAS,OAClBloC,KAAUkoC,GAAA,YAAAA,EAAS,SAGfpF,GAAa9iC,EAAQ,EAAG,CACpB,MAAA0gD,EAAe7d,EAAS,MAAMC,CAAS,EACzC,GAAA,CACF,KAAK,OAAO,SAAS,CACnB,UAAW4d,EACX,KAAApwC,EACA,MAAAtQ,EACA,SAAAm+B,CAAA,CACD,QACMtqB,EAAO,CACd1U,EAAK,UAAY,OACjBA,EAAK,eAAiB0U,CAAA,CAEb2tB,GAAA,CAAA,CAGfn5B,EAAY,KAAK,IAAIA,EAAWiI,EAAOtQ,CAAK,CAAA,CAG9C,YAAK,OAAO,UAAYqI,EACnB,KAAA,QAAQ,KAAK+1C,CAAa,EAC/B,KAAK,QAAUmC,EACR/e,IAAY,CAAA,CAKrB,kBAAkBwE,EAA4B,CAC5C,OAAI,KAAK,QAAQ,SAAWA,EAAM,QAAQ,OACjC,GAEF,KAAK,QAAQ,MAAM,CAAC,CAAE,KAAA7mC,EAAM,KAAAmR,EAAM,MAAAtQ,CAAM,EAAGlO,IAAM,CAChD,KAAA,CACJ,KAAM6uD,EACN,KAAMC,EACN,MAAOC,CAAA,EACL7a,EAAM,QAAQl0C,CAAC,EACnB,OAAOqN,IAASwhD,GAAarwC,IAASswC,GAAa5gD,IAAU6gD,CAAA,CAC9D,CAAA,CAEL,CC7DA,MAAMC,GAAmB,EA8HZC,GAAA,MAAAA,WAAyBhwD,EAAM,IAAK,CAuF/C,YAAYgO,EAAkC,CACtC,MAAAT,EAAWyiD,GAAiB,aAAa,EACzCxjB,EAAUC,GAAW,EACrB4I,EAAqBrnC,EAAQ,oBAAsB,GACnDwhB,EAAW,IAAIxvB,EAAM,eAAe,CACxC,YAAaA,EAAM,MACnB,aAAcwsC,EAAQ,eACtB,eAAgBA,EAAQ,iBACxB,SAAAj/B,EACA,mBAAA8nC,EACA,YAAa,GACb,UAAW,GACX,WAAY,GACZ,KAAMr1C,EAAM,UAAA,CACb,EAED,MAAMiwD,GAAgBzgC,CAAQ,EAvE5B,KAAA,aAAA,KAeJ,KAAA,eAAsC,CAAC,EAG/B,KAAA,oBAAsB,IAAIjE,GAAS,CAAE,MAAO,IAAIvrB,EAAM,WAAc,EACpE,KAAA,uBAAyB,IAAI+qB,GAAS,CAAE,MAAO,IAAI/qB,EAAM,QAAW,EAI5E,KAAQ,UAAY,GAEpB,KAAQ,eAAgC,KAExC,KAAQ,eAAkC,CAAC,EAC3C,KAAQ,eAAiC,KAOzC,KAAQ,cAAgB,CACtB,MAAO,KACP,cAAe,IAAIA,EAAM,QACzB,UAAW,EACb,EAGA,KAAQ,aAAyC,KAgC/C,KAAK,cAAgB,GAErB,KAAK,SAAWgO,EAAQ,SACxB,KAAK,SAAWwhB,EAChB,KAAK,SAAWjiB,EAIhB,MAAMukC,EAAW9iC,GACf,CAAE,OAAQkV,CAAO,EACjB,CAAE,OAAQA,CAAO,EACjB,CAAC,CAAE,OAAAuB,CAAA,IAAa,CACd,GAAI,CAACA,EACG,MAAA,IAAI,MAAM,oBAAoB,EAEtC,OAAAA,EAASc,GAAgBd,EAAQ,CAC/B,OAAQ,KAAK,oBACb,UAAW,KAAK,sBAAA,CACjB,EACM,CAAE,OAAAA,CAAO,CAAA,CAEpB,EACK,KAAA,SAAW,IAAIosB,GAAcC,CAAQ,EAE1C,KAAK,mBAAqBuD,EACrB,KAAA,WAAarnC,EAAQ,YAAc,GACnC,KAAA,UAAYA,EAAQ,WAAa,GACtC,KAAK,YAAc,GACd,KAAA,eAAiBA,EAAQ,gBAAkB,EAChD,KAAK,UAAYA,EAAQ,WAAa,KAAK,KAAK,CAAG,EAC9C,KAAA,eAAiBA,EAAQ,gBAAkB,EAC3C,KAAA,eAAiBA,EAAQ,gBAAkB,IAChD,KAAK,SAAWA,EAAQ,UAAY,IAAO,EAAM,KAC5C,KAAA,WAAaA,EAAQ,YAAc,GACnC,KAAA,cAAgBA,EAAQ,eAAiB,EACzC,KAAA,WAAaA,EAAQ,YAAc,GACnC,KAAA,cAAgBA,EAAQ,eAAiB,EACzC,KAAA,cAAgBA,EAAQ,eAAiB,EACzC,KAAA,QAAUA,EAAQ,SAAW,EAC7B,KAAA,OAASA,EAAQ,QAAU,IAC3B,KAAA,gBAAkBA,EAAQ,iBAAmB,EAClD,KAAK,cAAgBA,EAAQ,eAAiB,CAAE,GAAGnE,EAAuB,EAErE,KAAA,OAAS,IAAI0lD,GAClB,KAAK,OAAO,SAAW,EACvB,KAAK,iBAAmB,EACxB,KAAK,iBAAmB,CAAC,EAEzB,QAAStgD,EAAQ,EAAGA,EAAQ,EAAG,EAAEA,EAC/B,KAAK,iBAAiB,KAAK,IAAIsgD,EAAqB,EACpD,KAAK,kBAAoB,EAKtB,KAAA,YAAc,IAAIN,GAAkB,CACvC,GAAGjhD,EAAQ,KACX,WAAY,GACZ,MAAO,IAAA,CACR,EACD,KAAK,UAAY,KAAK,YACjB,KAAA,iBAAiB,KAAK,SAAS,EAE/B,KAAA,MAAQA,EAAQ,MAAQ0K,GAAW1K,EAAQ,KAAK,EAAI,IAAIhO,EAAM,KAAM,CAG3E,OAAO,cAAe,CAoEb,MAlEU,CAEf,WAAY,CAAE,MAAO,IAAIA,EAAM,OAAU,EAEzC,KAAM,CAAE,MAAO,EAAI,EACnB,IAAK,CAAE,MAAO,GAAO,EAErB,UAAW,CAAE,MAAO,CAAE,EAEtB,iBAAkB,CAAE,MAAO,IAAIA,EAAM,UAAa,EAElD,gBAAiB,CAAE,MAAO,IAAIA,EAAM,OAAU,EAE9C,UAAW,CAAE,MAAO,CAAI,EAExB,eAAgB,CAAE,MAAO,CAAI,EAE7B,eAAgB,CAAE,MAAO,GAAM,EAE/B,SAAU,CAAE,MAAO,kBAAoB,EAEvC,WAAY,CAAE,MAAO,EAAM,EAE3B,WAAY,CAAE,MAAO,EAAM,EAE3B,cAAe,CAAE,MAAO,CAAI,EAE5B,WAAY,CAAE,MAAO,EAAI,EAEzB,cAAe,CAAE,MAAO,CAAI,EAE5B,cAAe,CAAE,MAAO,CAAI,EAG5B,QAAS,CAAE,MAAO,CAAI,EAEtB,OAAQ,CAAE,MAAO,GAAI,EAErB,gBAAiB,CAAE,MAAO,CAAI,EAE9B,eAAgB,CAAE,MAAO,EAAM,EAE/B,aAAc,CAAE,KAAM,IAAK,MAAOgwD,GAAiB,mBAAoB,EAEvE,YAAa,CAAE,MAAO,IAAIhwD,EAAM,OAAU,EAE1C,YAAa,CAAE,MAAO,IAAIA,EAAM,OAAU,EAE1C,aAAc,CAAE,MAAO,EAAI,EAE3B,YAAa,CAAE,MAAO,GAAO,EAE7B,YAAa,CAAE,MAAO,CAAI,EAE1B,aAAc,CAAE,KAAM,IAAK,MAAOi5C,GAAa,aAAc,EAE7D,uBAAwB,CAAE,MAAO,IAAIj5C,EAAM,OAAU,EAErD,KAAM,CAAE,MAAO,CAAE,EAEjB,UAAW,CAAE,MAAO,CAAE,EAEtB,aAAc,CAAE,MAAO,EAAM,EAE7B,UAAW,CAAE,MAAO,EAAM,CAC5B,CACO,CAGD,qBAA+B,CAErC,OACE,KAAK,iBAAiB,OAAS,GAC/B,KAAK,iBAAmB+vD,EAAA,CAIpB,uBAAoD,CAEtD,IAAA9Z,EAAc,KAAK,iBAAiB,IAAI,EAC5C,GAAIA,IAAgB,OAAW,CACzB,GAAA,KAAK,kBAAoB8Z,GACpB,OAAA,KAET9Z,EAAc,IAAIsZ,GAClB,KAAK,kBAAoB,CAAA,CAE3B,OAAAtZ,EAAY,SAAW,EAChBA,CAAA,CAGT,mBAAmBA,EAAkC,CAEnDA,EAAY,UAAY,EACpBA,EAAY,WAAa,GACtB,KAAA,iBAAiB,KAAKA,CAAW,CACxC,CAGF,aAAajoC,EAAmC,CAQ9C,OAAO,IAAIihD,GAAkB,CAAE,GAAGjhD,EAAS,MAAO,KAAM,CAAA,CAG1D,eACEo/B,EACAsG,EACAE,EACA,SAOA,MAAMD,EAAO,KAAK,MAAQ,KAAK,MAAM,eAAe,EAC9CqF,EAAYrF,GAAQ,KAAK,UAAU,UAAYA,GACrD,KAAK,UAAU,SAAWA,EAEpB,MAAAyC,EAAQhJ,EAAS,KAAK,OAAO,MAC7BiJ,EAAaD,IAAU,KAAK,UAClC,KAAK,UAAYA,EAEjB,MAAM8Z,EAAY,KAAK,UACnB,GAAAA,IAAc,KAAK,YAAa,CAGlC,GAAI7Z,EACE,GAAA,CAACjJ,EAAS,GAAG,aAEf,KAAK,YAAY,YAAcwG,EAAO,YAAY,MAAM,EACxD,KAAK,eAAiB,CAAC,KAAK,YAAY,WAAW,MAC9C,CAGL,MAAMuc,EAAU/iB,EAAS,GAAG,UAAY,EAAA,QACxC,KAAK,eAAiB+iB,EAAQ,IAAKvc,GAAWA,EAAO,WAAW,EAC3D,KAAA,YAAY,YACfwc,GAAsB,KAAK,cAAc,GAAK,IAAIpwD,EAAM,OAAQ,CAIlE,KAAK,YACP,KAAK,OAAO,CAAE,MAAA0zC,EAAO,YAAa,KAAK,YAAY,YAAa,CAClE,CAsBF,GAjBI2C,IAEE,KAAK,SAAS,qBAAuB,KAAK,qBACvC,KAAA,SAAS,mBAAqB,KAAK,mBACxC,KAAK,SAAS,YAAc,IAEzB,KAAA,SAAS,KAAK,MAAQ1C,EACtB,KAAA,SAAS,UAAU,MAAQqF,EAEhC,KAAK,SAAS,UAAU,MAAS,YAAY,IAAI,EAAI,IAAU,EAAM,EAEjEkX,EAAU,SAAWA,EAAU,aAChC,KAAK,SAA8B,cAClC,KAAK,SAAS,UAAU,QAI1BA,EAAU,OAEP,KAAA,SAAS,WAAW,MAAM,IAC7BA,EAAU,OAAO,MACjBA,EAAU,OAAO,MACnB,MACK,CAEL,MAAMrc,EAAazG,EAAS,qBAC1B,KAAK,SAAS,WAAW,KAC3B,EACA,GAAIyG,EAAW,IAAM,GAAKA,EAAW,IAAM,EAAG,CAG5C,MAAMyC,GAAYp1C,EAAAksC,EAAS,GAAG,eAAZ,YAAAlsC,EAA0B,YAAY,UACpDo1C,IACFzC,EAAW,EAAIyC,EAAU,iBACzBzC,EAAW,EAAIyC,EAAU,kBAC3B,CACF,CAIF,MAAMC,EAAc3C,EA2BpB,GAxBK,KAAA,SAAS,KAAK,MAAQ2C,EAAY,KAClC,KAAA,SAAS,IAAI,MAAQA,EAAY,IACjC,KAAA,SAAS,aAAa,MAAQ2Z,EAAU,aACxC,KAAA,SAAS,UAAU,MAAQ,KAAK,UAChC,KAAA,SAAS,eAAe,MAAQ,KAAK,eACrC,KAAA,SAAS,eAAe,MAAQ,KAAK,eACrC,KAAA,SAAS,SAAS,MAAQ,KAAK,SAC/B,KAAA,SAAS,WAAW,MAAQA,EAAU,WACtC,KAAA,SAAS,WAAW,MAAQ,KAAK,WACjC,KAAA,SAAS,cAAc,MAAQ,KAAK,cACpC,KAAA,SAAS,WAAW,MAAQ,KAAK,WACjC,KAAA,SAAS,cAAc,MAAQ,KAAK,cACpC,KAAA,SAAS,cAAc,MAAQ,KAAK,cACpC,KAAA,SAAS,QAAQ,MAAQ,KAAK,QAC9B,KAAA,SAAS,OAAO,MAAQ,KAAK,OAC7B,KAAA,SAAS,gBAAgB,MAAQ,KAAK,gBAEvC,KAAK,iBAAmB,CAACA,EAAU,aAChC,KAAA,eAAiB,CAACA,EAAU,WAC5B,KAAA,SAAS,YAAc,CAACA,EAAU,WAClC,KAAA,SAAS,WAAaA,EAAU,WACrC,KAAK,SAAS,YAAc,IAG1B,KAAK,aAAc,CACf,KAAA,CAAE,OAAAG,EAAQ,QAAAvuB,EAAS,SAAAwuB,EAAU,IAAAvqD,EAAK,KAAA4iC,EAAM,IAAAC,EAAK,IAAA2nB,GACjD,KAAK,aACHF,GAAUvuB,GACP,KAAA,SAAS,eAAe,MAAQ,GAChC,KAAA,SAAS,aAAa,MAAQA,EAC/BwuB,EACF,KAAK,SAAS,YAAY,MAAM,UAAUA,EAAS,QAAQ,EAEtD,KAAA,SAAS,YAAY,MAAM,IAC9B,GAAM,KAAK,UACX,EACA,EACA,GAAM,KAAK,SACb,EAEG,KAAA,SAAS,YAAY,MAAM,KAAIvqD,GAAA,YAAAA,EAAK,IAAK,IAAKA,GAAA,YAAAA,EAAK,IAAK,EAAG,EAChE,KAAK,SAAS,aAAa,MAAQ4iC,GAAQ,KAAK,SAAS,KAAK,MAC9D,KAAK,SAAS,YAAY,MAAQC,GAAO,KAAK,SAAS,IAAI,MACtD,KAAA,SAAS,YAAY,MAAQ2nB,GAAO,IAEpC,KAAA,SAAS,eAAe,MAAQ,GAChC,KAAA,SAAS,aAAa,MAAQP,GAAiB,oBACtD,MAEK,KAAA,SAAS,eAAe,MAAQ,GAChC,KAAA,SAAS,aAAa,MAAQA,GAAiB,oBAItD,MAAMxZ,IACJn1C,EAAA6uD,EAAU,UAAV,YAAA7uD,EAAmB,YAAY,UAAW,IAAIrB,EAAM,QAChDwwD,EAAgB5c,EAAO,YAAY,MAAA,EAAQ,OAAO,EACjC4C,EAAa,MAAM,EAAE,YAAYga,CAAa,EACtD,UACb,KAAK,SAAS,gBAAgB,MAC9B,KAAK,SAAS,iBAAiB,MAC/B,IAAIxwD,EAAM,OACZ,CAAA,CAOF,iBAAiBkwD,EAA+B,aAG1C,GAFC,KAAA,UAAYA,GAAa,KAAK,UAE/B,KAAK,UAAU,QAAS,CAC1B,KAAM,CAAE,YAAAja,EAAa,SAAAX,CAAS,EAAI,KAAK,UAAU,QACjD,KAAK,SAAS,UAAU,MAAQW,EAAY,OAAO,UACnD,KAAK,SAAS,aAAa,MAAQA,EAAY,OAAO,WAAW,EAC5D,KAAA,SAAS,uBAAuB,MAAM,MACzC/0C,EAAA+0C,EAAY,OAAO,gBAAnB,YAAA/0C,EAAkC,SAAU,IAC5CG,EAAA40C,EAAY,OAAO,gBAAnB,YAAA50C,EAAkC,SAAU,IAC5C8vB,EAAA8kB,EAAY,OAAO,gBAAnB,YAAA9kB,EAAkC,aAAc1oB,KAChDq0C,EAAA7G,EAAY,OAAO,gBAAnB,YAAA6G,EAAkC,aAAcp0C,EAClD,EACA,KAAK,SAAW4sC,EAChB,KAAK,SAAS,YAAc,CAAC,KAAK,UAAU,WACvC,KAAA,SAAS,WAAa,KAAK,UAAU,WAC1C,KAAK,SAAS,YAAc,EAAA,MAGvB,KAAA,SAAS,UAAU,MAAQ,EAC3B,KAAA,SAAS,aAAa,MAAQ2D,GAAa,cAChD,KAAK,SAAWgX,EAClB,CAKF,OAAO,CACL,MAAAvc,EACA,YAAAgN,CAAA,EACsD,CAGtD,MAAM2M,EAAgB,KAAK,YAGvB,KAAK,UACP,KAAK,eAAe,CAClB,MAAA3Z,EACA,cAAe2Z,EAAc,MAAM,EACnC,YAAA3M,CAAA,CACD,GAGD,KAAK,cAAc,MAAQhN,EACtB,KAAA,cAAc,cAAc,KAAK2Z,CAAa,EAG/C,KAAK,cAAc,YAAc,KAC9B,KAAA,cAAc,UAAY,WAAW,IAAM,CAC9C,KAAM,CAAE,MAAA3Z,EAAO,cAAA2Z,CAAAA,EAAkB,KAAK,cACtC,KAAK,cAAc,MAAQ,KAC3B,KAAK,cAAc,UAAY,GACf,KAAK,eAAe,CAClC,MAAO3Z,EACP,cAAA2Z,EACA,YAAA3M,CAAA,CACD,GAIY,KAAK,SAAS,WAAW,EACjC,MAAM,GAEV,CAAC,GAER,CAGF,eAAe,CACb,MAAAhN,EACA,cAAA2Z,EACA,YAAA3M,CAAA,EAKU,OACN,GAAA,CAAC,KAAK,sBAID,MAAA,GAIJ2M,IACHA,EAAgB,KAAK,OAAO,SAEhB3M,EAAAA,GAAe2M,EAAc,MAAM,EAEjD,MAAM1Z,EAAO,KAAK,MAAQ,KAAK,MAAM,eAAe,EAC9CqF,EAAYrF,GAAQ,KAAK,gBAAkBA,GACjD,KAAK,eAAiBA,EAGtB,MAAM8c,EAAgB,KAAK,OAAO,QAAQ,OAAO,CAACf,EAAKnX,KACjDmX,EAAA,IAAInX,EAAO,KAAMA,CAAM,EACpBmX,GACF,IAAA,GAAuC,EAGxC,CAAE,WAAAF,EAAY,kBAAAnb,EAAmB,YAAAD,CACrC,EAAA,KAAK,aAAaV,CAAK,EAGzB,UAAWtB,KAAUod,GACnBtuD,EAAAkxC,EAAO,cAAP,MAAAlxC,EAAA,KAAAkxC,EAAqB,CACnB,SAAU,KAAK,SACf,OAAAA,EACA,KAAAuB,EACA,UAAAqF,EACA,YAAA0H,EACA,YAAAtM,CAAA,GAIE,MAAAsc,EAAiB,IAAI,IAAIrc,EAAkB,IAAKlgC,GAAMA,EAAE,IAAI,CAAC,EAInE,UAAWi+B,KAAUod,EAAY,CACzB,MAAArY,EAAUsZ,EAAc,IAAIre,CAAM,EAElC96B,EADY86B,EAAO,WAAase,EAAe,IAAIte,EAAO,IAAI,EACtCA,EAAO,UAAY,GAE/C,KAAK,aACLA,EAAO,aAAc+E,GAAA,YAAAA,EAAS,YAC9B7/B,KAAc6/B,GAAA,YAAAA,EAAS,SAEvB/E,EAAO,cAAc,CACvB,CAKI,MAAAue,EAAe,CAACr2C,GAAmB,CACvC,QAAS+yC,EACT,QAAS,KAAK,OAAO,QACrB,YAAa,KAAK,cAAA,CACnB,EAGKrW,EACJ,KAAK,aACL2Z,GACAnB,EAAW,SAAWiB,EAAc,MACpCjB,EAAW,KAAMr7C,GAAM,OAAA,OAAAA,EAAE,YAAYjT,EAAAuvD,EAAc,IAAIt8C,CAAC,IAAnB,YAAAjT,EAAsB,SAAO,EACpE,KAAK,YAAc,GAEnB,IAAI+0C,EAA0C,KAC9C,GAAIe,EAAa,CAGf,GADAf,EAAc,KAAK,sBAAsB,EACrC,CAACA,EAEG,MAAA,IAAI,MAAM,aAAa,EAMzB,MAAA2a,EAAgB,CAACt2C,GAAmB,CACxC,QAAS+yC,EACT,QAASpX,EAAY,QACrB,YAAa,KACb,YAAa,MAAA,CACd,EAwBK4a,EAnBSxc,EACZ,IAAI,CAAClgC,EAAG28C,IAA6C,CAC9C,MAAAC,EAAUN,EAAc,IAAIt8C,CAAC,EAGnC,OAAQ48C,EAKJ,CAAC58C,EAAE,QAAU48C,EAAQ,QAASA,EAAQ,KAAM58C,CAAC,EAJ7C,CAAC,OAAO,kBAAmBA,EAAE,QAASA,CAAC,CAK5C,CAAA,EACA,KAAK,CAACzR,EAAG5B,IAEJ4B,EAAE,CAAC,IAAM5B,EAAE,CAAC,EACP4B,EAAE,CAAC,EAAI5B,EAAE,CAAC,EAEZ4B,EAAE,CAAC,EAAI5B,EAAE,CAAC,CAClB,EACqB,IAAI,CAAC,CAACkwD,EAAUC,EAAM98C,CAAC,IAAMA,CAAC,EAGhDy+B,EAAcie,EAAS,IAAK18C,GAAMA,EAAE,SAAS,EAC7C,CAAE,UAAAuD,EAAW,QAAAm7B,GACjBoD,EAAY,OAAO,gBAAgBrD,CAAW,EAC1Cse,EAAgBL,EAAS,IAAI,CAACziD,EAAM0iD,IAAW,CACnD,KAAM,CAAE,KAAAvxC,EAAM,MAAAtQ,GAAU4jC,EAAQie,CAAM,EAC/B,MAAA,CACL,KAAA1iD,EACA,UAAWA,EAAK,UAChB,QAASA,EAAK,QACd,KAAAmR,EACA,MAAAtQ,CACF,CAAA,CACD,EAIEo+C,EAAA,MAAA,EACA,OAAA,EACA,UACC,KAAK,uBAAuB,MAC5B,KAAK,oBAAoB,MACzB,IAAIrtD,EAAM,OACZ,EAGFi2C,EAAY,eAAev+B,CAAS,EACpCu+B,EAAY,OAAO,cAAgB,CAAE,GAAG,KAAK,aAAc,EACzCA,EAAY,eAAe,CAC3C,SAAU,KAAK,SACf,SAAU,KAAK,SACf,WAAYib,EACZ,YAAaN,EACb,cAAAvD,CACD,CAAA,EAGWpX,EAAA,cAAgB,KAAK,OAAO,cAAgB,EAExD,MAAMkb,EAAoBlb,EAAY,kBAAkB,KAAK,MAAM,EACnEA,EAAY,eACV,KAAK,OAAO,gBAAkBkb,EAAoB,EAAI,GAGnD,KAAA,mBAAmB,KAAK,MAAM,EACnC,KAAK,OAASlb,EACd,KAAK,iBAAiB,CAAA,CAIxB,kBAAW,IAAM,CAEJ,UAAA9K,KAAQ,KAAK,eACtBA,EAAK,SAAS,CAAE,YAAa8K,GAAe,OAAW,GAExD,CAAC,EAGG,EAAA,CAGD,aAAavC,EAInB,CAGA,MAAM8b,EAA+B,CAAC,EAGhC9b,EAAA,SAAUtlC,GAAS,CACnBA,aAAgBokC,IAClBgd,EAAW,KAAKphD,CAAI,CACtB,CACD,EAED,MAAMimC,EAAsC,CAAC,EACvCX,EAAA,gBAAiBtlC,GAAS,CAC1BA,aAAgBokC,IAClB6B,EAAkB,KAAKjmC,CAAI,CAC7B,CACD,EAEK,MAAAgmC,MAAkB,IAClB,OAAAV,EAAA,gBAAiBtlC,GAAS,CAC9B,GAAIA,aAAgB6hC,GAAW,CAC7B,IAAIiE,EAAW9lC,EAAK,OACpB,KAAO8lC,GAAY,MAAQ,EAAEA,aAAoBC,KAC/CD,EAAWA,EAAS,OAElBA,GAAY,MAEdE,EAAY,IAAIhmC,CAAI,CACtB,CACF,CACD,EACM,CACL,WAAAohD,EACA,kBAAAnb,EACA,YAAa,MAAM,KAAKD,CAAW,CACrC,CAAA,CAQF,MAAM,aAAa,CACjB,SAAAhH,EACA,MAAAsG,EACA,YAAAoH,EACA,KAAAC,EAAO,IACP,KAAApS,EAAO,GACP,IAAAC,EAAM,IACN,YAAAoS,EAAc,CAAC,EACf,OAAAluC,EAAS,EAAA,EAUgB,SAIzB,GAHK,KAAK,eACR,KAAK,aAAe,KAAK,aAAa,CAAE,QAAS,GAAM,GAGvD,CAACkjD,GAAiB,YAClBA,GAAiB,WAAW,OAAO,QAAUjV,GAC7CiV,GAAiB,WAAW,OAASrnB,GACrCqnB,GAAiB,WAAW,MAAQpnB,EACpC,CACIonB,GAAiB,YACFA,GAAA,WAAW,OAAO,QAAQ,EAE7C,MAAMjW,EAAS,IAAI/5C,EAAM,sBAAsB+6C,EAAM,CACnD,OAAQ/6C,EAAM,WACd,gBAAiB,GACjB,UAAWA,EAAM,wBAAA,CAClB,EACK4zC,EAAS,IAAI5zC,EAAM,WAAW2oC,EAAMC,EAAKmR,CAAM,EACrDiW,GAAiB,WAAa,CAAE,OAAAjW,EAAQ,OAAAnG,EAAQ,KAAAjL,EAAM,IAAAC,CAAI,CAAA,CAGvDonB,GAAiB,QACHA,GAAA,MAAQ,IAAIhwD,EAAM,eACjCotC,GAAY,KAAK,QACnB,GAIF,MAAMsT,EAAc,IAAI1gD,EAAM,QAAQ,EAAE,YAAY86C,CAAW,EAC/D,OAAM55C,EAAA,KAAK,eAAL,YAAAA,EAAmB,QAAQ,CAAE,MAAAwyC,EAAO,YAAAgN,EAAa,OAAA5zC,KAEvD,KAAM,CAAE,OAAAitC,EAAQ,OAAAnG,CAAO,EAAIoc,GAAiB,WACrCpc,EAAA,SAAS,KAAKkH,CAAW,EAG1B,MAAAK,MAAuB,IAC7B,UAAW/I,KAAU4I,EACFG,EAAA,IAAI/I,EAAQA,EAAO,OAAO,EAC3CA,EAAO,QAAU,GAId,KAAA,iBAAiB,KAAK,YAAY,EACvCwB,EAAO,OAAOxG,GAAY,KAAK,SAAUsG,CAAK,EAGzC,KAAA,iBAAiB,KAAK,WAAW,EACtC,SAAW,CAACtB,EAAQiJ,CAAO,IAAKF,EAAiB,UAC/C/I,EAAO,QAAUiJ,EAInB,OAAOh6C,EAAA2uD,GAAiB,QAAjB,YAAA3uD,EAAwB,YAAY04C,EAAO,SAAS,OAAA,CAK7D,iBAAiBtrC,EAAsB8sC,EAAuB,CACvD9sC,EAAA,SAAUL,GAAS,CAClB,GAAAA,aAAgBpO,EAAM,KACxB,GAAI,MAAM,QAAQoO,EAAK,QAAQ,EAClB,UAAAohB,KAAYphB,EAAK,SACtBohB,aAAoBxvB,EAAM,uBAC5BwvB,EAAS,OAAS+rB,QAIlBntC,EAAK,oBAAoBpO,EAAM,uBACjCoO,EAAK,SAAS,OAASmtC,EAG7B,CACD,CAAA,CAQH,QAAQ,CACN,UAAAxJ,EACA,KAAA7rB,CAAA,EAC6D,CACvD,MAAA2sB,EAAU,KAAK,OAAO,QAAQ,KAAK,CAAC,CAAE,KAAAzkC,CAAA,IAAWA,IAAS2jC,CAAS,EACzE,GAAI,CAACc,EACG,MAAA,IAAI,MAAM,qBAAqB,EAGhC,OAAA3sB,EAAAA,GAAQ,IAAI8oB,GACnB9oB,EAAK,iBAAiB,CACpB,aAAc,KAAK,OAAO,OAC1B,KAAM2sB,EAAQ,KACd,MAAOA,EAAQ,MACf,SAAU,KAAK,QAAA,CAChB,EACM3sB,CAAA,CAMT,MAAM,SAAS,CACb,UAAA6rB,EACA,KAAA7rB,CAAA,EACuE,CACvE,OAAAA,EAAO,KAAK,QAAQ,CAAE,UAAA6rB,EAAW,KAAA7rB,EAAM,EAChCA,EAAK,KAAK,CAAA,CAErB,EA1xBE8pC,GAAe,WAKJ,KACXA,GAAe,MAAqC,KAE7CA,GAAA,oBAAsB,IAAIhwD,EAAM,cArF5B,IAAAoxD,GAAApB,GAy2Bb,MAAMC,GAAiB,IAAIlwD,GAAiB,IAAI,YAAY,CAAC,EAAG,CAAC,EAE3CiP,GACpB,CAAE,aAAcoV,GAAe,MAAO,KAAM,EAC5C,CAAE,OAAQF,CAAO,EACjB,CAAC,CAAE,aAAAtP,EAAc,MAAA7F,KAAY,CACvB,GAAA,CAAC6F,GAAgB,CAAC7F,EACd,MAAA,IAAI,MAAM,eAAe,EAGjC,MAAO,CAAE,OADM0V,GAAgB7P,EAAc7F,CAAK,CAClC,CAAA,CAEpB,EAEA,SAASqhD,GACPiB,EACsB,CAClB,GAAAA,EAAe,SAAW,EACrB,OAAA,KAGH,MAAAn4C,EAAW,IAAIlZ,EAAM,QACrBimB,EAAa,IAAIjmB,EAAM,WACvBwmB,EAAQ,IAAIxmB,EAAM,QAElBgZ,EAA6B,CAAC,EAC9BI,EAAkC,CAAC,EACzC,UAAWk4C,KAAUD,EACZC,EAAA,UAAUp4C,EAAU+M,EAAYO,CAAK,EAC5CxN,EAAU,KAAKE,CAAQ,EACvBE,EAAY,KAAK6M,CAAU,EAGtB,OAAA,IAAIjmB,EAAM,QAAA,EAAU,QACzB+Y,GAAiBC,CAAS,EAC1BG,GAAmBC,CAAW,EAC9B,IAAIpZ,EAAM,QAAQ,EAAG,EAAG,CAAC,CAC3B,CACF,CCvjCgB,SAAAuxD,GACd9vC,EACA+vC,EACA9M,EAiBA,CACA,MAAMptC,EAAY,KAAK,MAAMmK,EAAU,OAAS,EAAE,EAC9C,GAAAnK,EAAY,KAAOmK,EAAU,OACzB,MAAA,IAAI,MAAM,0BAA0B,EAI5C,MAAMgwC,EAAM,IAAI,aAAahwC,EAAU,MAAM,EAC7C,QAAS1gB,EAAI,EAAGA,EAAIuW,EAAW,EAAEvW,EAAG,CAClC,MAAMR,EAAMQ,EAAI,GACV2wD,EAAK3wD,EAAI,EACTS,EAAIiwD,EAAIC,EAAK,CAAC,EACdh+C,EAAI+9C,EAAIC,EAAK,CAAC,EACdhqD,EAAI+pD,EAAIC,EAAK,CAAC,EACd/9C,EAAS89C,EAAIC,EAAK,CAAC,EACnB99C,EAAS69C,EAAIC,EAAK,CAAC,EACnB79C,EAAS49C,EAAIC,EAAK,CAAC,EACnB1wD,EAAIygB,EAAUlhB,EAAM,EAAE,EAAI,IAC1B4T,EAAIsN,EAAUlhB,EAAM,EAAE,EAAI,IAC1BO,EAAI2gB,EAAUlhB,EAAM,EAAE,EAAI,IAC1B2T,EAAUuN,EAAUlhB,EAAM,EAAE,EAAI,IAChC0T,GAASwN,EAAUlhB,EAAM,EAAE,EAAI,KAAO,IACtCuT,GAAS2N,EAAUlhB,EAAM,EAAE,EAAI,KAAO,IACtCwT,GAAS0N,EAAUlhB,EAAM,EAAE,EAAI,KAAO,IACtCyT,GAASyN,EAAUlhB,EAAM,EAAE,EAAI,KAAO,IAC5CmkD,EACE3jD,EACAS,EACAkS,EACAhM,EACAiM,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAlT,EACAmT,EACArT,CACF,CAAA,CAEJ,CC3CA,MAAM6wD,GAAwD,CAC5D,EAAG,CACD,eAAgB,GAChB,cAAe,GACf,iBAAkB,GAClB,cAAe,EACf,oCAAqC,EACrC,iBAAkB,GAClB,oBAAqB,GACrB,iBAAkB,GAClB,8BAA+B,GAC/B,WAAY,CACd,EACA,EAAG,CACD,eAAgB,EAChB,cAAe,EACf,iBAAkB,EAClB,cAAe,EACf,oCAAqC,EACrC,iBAAkB,EAClB,oBAAqB,GACrB,iBAAkB,GAClB,8BAA+B,GAC/B,WAAY,KACd,EACA,EAAG,CACD,eAAgB,EAChB,cAAe,EACf,iBAAkB,EAClB,cAAe,EACf,oCAAqC,EACrC,iBAAkB,EAClB,oBAAqB,GACrB,iBAAkB,GAClB,8BAA+B,GAC/B,WAAY,KAAA,CAEhB,EAEMC,GAAyD,CAC7D,EAAG,EACH,EAAG,EACH,EAAG,GACH,EAAG,EACL,EAEO,SAASC,GACdpwC,EACA+vC,EACA9M,EAiBAC,EAMA,OAIA,IAAImN,EAAe,EACnB,MAAM3G,EAAS,IAAI,SAAS1pC,EAAU,OAAQqwC,EAAc,IAAY,EACxDA,GAAA,KAEV,MAAAC,EAAe5G,EAAO,SAAS,CAAC,EAChC6G,EAAe7G,EAAO,SAAS,CAAC,EAClC,GAAA4G,IAAiB,GAAKC,EAAe,EACvC,MAAM,IAAI,MACR,gCAAgCD,CAAY,IAAIC,CAAY,EAC9D,EAEF,MAAMC,EAAkB9G,EAAO,UAAU,EAAG,EAAI,EAG7BA,EAAO,UAAU,GAAI,EAAI,EAC5C,MAAM+G,EAAmB/G,EAAO,UAAU,GAAI,EAAI,EAC9C,GAAA+G,EAAmB,GAAKA,EAAmB,EAC7C,MAAM,IAAI,MAAM,sCAAsCA,CAAgB,EAAE,EAK1E,MAAMC,EAA6BhH,EAAO,WAAW,GAAI,EAAI,GAAK,KAC5DiH,EAA6BjH,EAAO,WAAW,GAAI,EAAI,GAAK,IAQ9D,IAAAkH,EAAc,KAAeJ,EAAkB,KAEnD,QAASK,EAAU,EAAGA,EAAUL,EAAiB,EAAEK,EAAS,CA+EjD,IAAAC,EAAT,SAAeC,GAAqBtJ,EAAmB,CACrD,GAAIgJ,IAAqB,EACvB,OAAOjrD,EAAK,WACVurD,GAAcC,EAAgCvJ,EAAY,EAC1D,EACF,EAEF,GAAIgJ,IAAqB,EAChB,OAAAlhD,GACL/J,EAAK,UACHurD,GAAcC,EAAgCvJ,EAAY,EAC1D,EAAA,CAEJ,EAEF,MAAMxjD,GACJuB,EAAK,SAASurD,GAAcC,EAAgCvJ,CAAS,EACrE,IAEA,OAAAiJ,EACAzsD,IAAK0sD,EAA6BD,EAEtC,EApGA,MAAMG,EAAU,IAAI,SAAS7wC,EAAU,OAAQqwC,EAAc,IAAa,EAC1DA,GAAA,KAEhB,MAAMY,EAAoBJ,EAAQ,UAAU,EAAG,EAAI,EAC7CK,EAAuBL,EAAQ,UAAU,EAAG,EAAI,EAChDM,EAAaN,EAAQ,UAAU,EAAG,EAAI,EACtCO,EAAcP,EAAQ,UAAU,GAAI,EAAI,EACxCQ,EAAkBR,EAAQ,WAAW,GAAI,EAAI,EAC7CS,EAAyBT,EAAQ,UAAU,GAAI,EAAI,EACnDU,GACHV,EAAQ,UAAU,GAAI,EAAI,KACzBpxD,EAAAywD,GAAmBO,CAAgB,IAAnC,YAAAhxD,EAAsC,cACxC,EACI+xD,EAAkBX,EAAQ,UAAU,GAAI,EAAI,EAC5CY,EAAmBD,EAAkBL,EACrCO,EAA6Bb,EAAQ,UAAU,GAAI,EAAI,EACvDc,EAA2BD,EAA6B,EACxDE,EACJN,EAAyBF,EAAcO,EACnCE,EAA2BhB,EAAQ,UAAU,GAAI,EAAI,EACrDiB,EACJ3B,GAA+B0B,CAAwB,EAEnD,CACJ,eAAAE,EACA,cAAAC,GACA,iBAAAC,EACA,cAAAC,GACA,oCAAAC,EACA,iBAAAC,GACA,oBAAAC,EACA,iBAAAC,EACA,8BAAAtB,CAAA,EACEd,GAAmBO,CAAgB,EACjC8B,EACJR,EACAC,GACAC,EACAC,GACAJ,EAAeK,EACXK,EAA4BD,EAAgBrB,EAC5CuB,GACJD,EAA4BZ,EAExBc,GAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACrCC,GAAW,CACf,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EACzD,EACMC,GAAW,CACf,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpE,GAAI,GAAI,EACV,EACM1uB,GACJ2tB,GAA4B,EAAI,IAAI,aAAa,EAAI,CAAC,EAAI,OACtDxtB,GACJwtB,GAA4B,EAAI,IAAI,aAAa,EAAI,CAAC,EAAI,OACtD9U,GACJ8U,GAA4B,EAAI,IAAI,aAAa,EAAI,CAAC,EAAI,OAEtDgB,GAAyBxB,EAAkB,EAAIE,EAC/CuB,GAAclC,EAAce,EAC5BoB,GAAWnC,EAAcgB,EACzBpsD,EAAO,IAAI,SACfwa,EAAU,OACV+yC,GACAP,CACF,EACMQ,GAAc,IAAI,aACtBhzC,EAAU,OACV8yC,GACA1B,EAAc,CAChB,EACM6B,GAA+B,IAAI,YACvCjzC,EAAU,OACV4wC,EACAc,CACF,EA0BA,IAAIwB,GAAqB1B,EACrB2B,GAAoB1B,EAExB,QAASnyD,GAAI,EAAGA,GAAI2xD,EAAmB,EAAE3xD,GAAG,CAC1C,MAAMyxD,EAAczxD,GAAIizD,EAEpB,IAAAa,GACJ,GAAI9zD,GAAImyD,EACQ2B,GAAA,KAAK,MAAM9zD,GAAI6xD,CAAU,MAClC,CACC,MAAAkC,GACJJ,GAA6BC,GAAqB1B,CAAe,EAC/DlyD,IAAK6zD,GAAoBE,KACLH,IAAA,EACDC,IAAAE,IAETD,GAAAF,EAAA,CAGV,MAAAnzD,GACJ0wD,IAAqB,EACjBjrD,EAAK,WAAWurD,EAAc,EAAG,EAAI,GACpCvrD,EAAK,UAAUurD,EAAc,EAAG,EAAI,EAAIQ,GACvCsB,GACFG,GAAY,EAAII,GAAc,CAAC,EAC/BnhD,GACJw+C,IAAqB,EACjBjrD,EAAK,WAAWurD,EAAc,EAAG,EAAI,GACpCvrD,EAAK,UAAUurD,EAAc,EAAG,EAAI,EAAIQ,GACvCsB,GACFG,GAAY,EAAII,GAAc,CAAC,EAC/BntD,GACJwqD,IAAqB,EACjBjrD,EAAK,WAAWurD,EAAc,EAAG,EAAI,GACpCvrD,EAAK,UAAUurD,EAAc,EAAG,EAAI,EAAIQ,GACvCsB,GACFG,GAAY,EAAII,GAAc,CAAC,EAE/BlhD,GACJu+C,IAAqB,EACjBjrD,EAAK,WAAWurD,EAAcqB,GAAmB,EAAG,EAAI,EACxD7iD,GAAS/J,EAAK,UAAUurD,EAAcqB,GAAmB,EAAG,EAAI,CAAC,EACjEjgD,GACJs+C,IAAqB,EACjBjrD,EAAK,WAAWurD,EAAcqB,GAAmB,EAAG,EAAI,EACxD7iD,GAAS/J,EAAK,UAAUurD,EAAcqB,GAAmB,EAAG,EAAI,CAAC,EACjEhgD,GACJq+C,IAAqB,EACjBjrD,EAAK,WAAWurD,EAAcqB,GAAmB,EAAG,EAAI,EACxD7iD,GAAS/J,EAAK,UAAUurD,EAAcqB,GAAmB,EAAG,EAAI,CAAC,EAEjE5/C,GACJi+C,IAAqB,EACjBjrD,EAAK,WAAWurD,EAAcsB,EAAsB,EAAG,EAAI,EAC3D9iD,GACE/J,EAAK,UAAUurD,EAAcsB,EAAsB,EAAG,EAAI,CAC5D,EACAhgD,GACJo+C,IAAqB,EACjBjrD,EAAK,WAAWurD,EAAcsB,EAAsB,EAAG,EAAI,EAC3D9iD,GACE/J,EAAK,UAAUurD,EAAcsB,EAAsB,EAAG,EAAI,CAC5D,EACA//C,GACJm+C,IAAqB,EACjBjrD,EAAK,WAAWurD,EAAcsB,EAAsB,EAAG,EAAI,EAC3D9iD,GACE/J,EAAK,UAAUurD,EAAcsB,EAAsB,EAAG,EAAI,CAC5D,EACA9/C,GACJk+C,IAAqB,EACjBjrD,EAAK,WAAWurD,EAAcsB,EAAsB,GAAI,EAAI,EAC5D9iD,GACE/J,EAAK,UAAUurD,EAAcsB,EAAsB,EAAG,EAAI,CAC5D,EAEA9yD,GAAIiG,EAAK,SAASurD,EAAcuB,EAAmB,CAAC,EAAI,IACxD5/C,GAAIlN,EAAK,SAASurD,EAAcuB,EAAmB,CAAC,EAAI,IACxDjzD,GAAImG,EAAK,SAASurD,EAAcuB,EAAmB,CAAC,EAAI,IACxD7/C,GAAUjN,EAAK,SAASurD,EAAcuB,EAAmB,CAAC,EAAI,IAoBhE,GAlBJrP,EACE3jD,GACAS,GACAkS,GACAhM,GACAiM,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAlT,GACAmT,GACArT,EACF,EAEIwyD,GAA4B,GAAK3tB,GAAK,CACxC,SAAW,CAAC5kC,GAAG4K,EAAG,IAAKwoD,GAAS,UAC9BxuB,GAAI5kC,EAAC,EAAIwxD,EAAMC,EAAa7mD,EAAG,EAEjC,GAAIm6B,GACF,SAAW,CAAC/kC,GAAG4K,EAAG,IAAKyoD,GAAS,UAC9BtuB,GAAI/kC,EAAC,EAAIwxD,EAAMC,EAAa7mD,EAAG,EAGnC,GAAI6yC,GACF,SAAW,CAACz9C,GAAG4K,EAAG,IAAK0oD,GAAS,UAC9B7V,GAAIz9C,EAAC,EAAIwxD,EAAMC,EAAa7mD,EAAG,EAGtBg5C,GAAA,MAAAA,EAAA5jD,GAAG4kC,GAAKG,GAAK0Y,GAAG,CAC/B,CAEa6T,GAAA6B,EAAA,CAEnB,CCjVO,MAAMa,EAAU,CAerB,YAAY,CAAE,UAAAtzC,GAAsD,CAX1D,KAAA,QAAA,GACE,KAAA,UAAA,EACD,KAAA,SAAA,EACM,KAAA,eAAA,EACT,KAAA,MAAA,EACQ,KAAA,cAAA,GACN,KAAA,QAAA,GACC,KAAA,SAAA,EACI,KAAA,aAAA,GACN,KAAA,OAAA,GAGP,KAAK,UACHA,aAAqB,YAAc,IAAI,WAAWA,CAAS,EAAIA,EAC5D,KAAA,OAAS,IAAIQ,GAAa,CAC7B,UAAW,KAAK,SAAA,CACjB,CAAA,CAGH,MAAM,aAAc,CAClB,GAAI,KAAK,aACD,MAAA,IAAI,MAAM,gCAAgC,EAG5C,MAAAkpC,EAAS,IAAI,UAAU,MAAM,KAAK,OAAO,KAAK,EAAE,GAAG,MAAM,EAC/D,GAAIA,EAAO,UAAU,EAAG,EAAI,IAAM,WAC1B,MAAA,IAAI,MAAM,kBAAkB,EAGpC,GADA,KAAK,QAAUA,EAAO,UAAU,EAAG,EAAI,EACnC,KAAK,QAAU,GAAK,KAAK,QAAU,EACrC,MAAM,IAAI,MAAM,4BAA4B,KAAK,OAAO,EAAE,EAG5D,KAAK,UAAYA,EAAO,UAAU,EAAG,EAAI,EACpC,KAAA,SAAWA,EAAO,SAAS,EAAE,EAC7B,KAAA,eAAiBA,EAAO,SAAS,EAAE,EACnC,KAAA,MAAQA,EAAO,SAAS,EAAE,EAC1B,KAAA,eAAiB,KAAK,MAAQ,KAAU,EACxC,KAAA,SAAW,KAAK,MAAQ,OAAU,EAClC,KAAA,SAAWA,EAAO,SAAS,EAAE,EAClC,KAAK,aAAe,GACpB,KAAK,OAAS,EAAA,CAGhB,MAAM,YACJ6J,EACAC,EACAC,EACAC,EAMAC,EAOAzQ,EAMA,CACE,YAAA0Q,EACA,YAAAC,CACF,EAGI,GACJ,CACI,GAAA,CAAC,KAAK,aACF,MAAA,IAAI,MAAM,sCAAsC,EAExD,GAAI,KAAK,OACD,MAAA,IAAI,MAAM,yBAAyB,EAIvC,GAFJ,KAAK,OAAS,GAEV,KAAK,UAAY,EAAG,CAEhB,MAAAC,EAAc,MAAM,KAAK,OAAO,KAAK,KAAK,UAAY,EAAI,CAAC,EAC3DC,EAAe,IAAI,YAAYD,EAAY,MAAM,EACvD,QAASx0D,EAAI,EAAGA,EAAI,KAAK,UAAWA,IAAK,CACvC,MAAM00D,EAAK10D,EAAI,EACTS,EAAIwP,GAASwkD,EAAaC,CAAE,CAAC,EAC7B/hD,EAAI1C,GAASwkD,EAAaC,EAAK,CAAC,CAAC,EACjC/tD,EAAIsJ,GAASwkD,EAAaC,EAAK,CAAC,CAAC,EACtBT,GAAA,MAAAA,EAAAj0D,EAAGS,EAAGkS,EAAGhM,EAAC,CAC7B,SACS,KAAK,UAAY,GAAK,KAAK,UAAY,EAAG,CAE7C,MAAAguD,EAAQ,GAAK,KAAK,eAClBH,EAAc,MAAM,KAAK,OAAO,KAAK,KAAK,UAAY,EAAI,CAAC,EACjE,QAASx0D,EAAI,EAAGA,EAAI,KAAK,UAAWA,IAAK,CACvC,MAAM40D,EAAK50D,EAAI,EACTS,IACD+zD,EAAYI,EAAK,CAAC,GAAK,GACvBJ,EAAYI,EAAK,CAAC,GAAK,GACvBJ,EAAYI,CAAE,GAAK,IACpB,GACFD,EACIhiD,IACD6hD,EAAYI,EAAK,CAAC,GAAK,GACvBJ,EAAYI,EAAK,CAAC,GAAK,GACvBJ,EAAYI,EAAK,CAAC,GAAK,IACxB,GACFD,EACIhuD,IACD6tD,EAAYI,EAAK,CAAC,GAAK,GACvBJ,EAAYI,EAAK,CAAC,GAAK,GACvBJ,EAAYI,EAAK,CAAC,GAAK,IACxB,GACFD,EACeV,GAAA,MAAAA,EAAAj0D,EAAGS,EAAGkS,EAAGhM,EAAC,CAC7B,KAEM,OAAA,IAAI,MAAM,aAAa,EAG/B,CACE,MAAMmgC,EAAQ,MAAM,KAAK,OAAO,KAAK,KAAK,SAAS,EACnD,QAAS9mC,EAAI,EAAGA,EAAI,KAAK,UAAWA,IAClCk0D,GAAA,MAAAA,EAAgBl0D,EAAG8mC,EAAM9mC,CAAC,EAAI,IAChC,CAEF,CACE,MAAM60D,EAAW,MAAM,KAAK,OAAO,KAAK,KAAK,UAAY,CAAC,EACpDpvC,EAAQkiC,GAAQ,IACtB,QAAS3nD,EAAI,EAAGA,EAAI,KAAK,UAAWA,IAAK,CACvC,MAAM00D,EAAK10D,EAAI,EACTC,GAAK40D,EAASH,CAAE,EAAI,IAAM,IAAOjvC,EAAQ,GACzCrS,GAAKyhD,EAASH,EAAK,CAAC,EAAI,IAAM,IAAOjvC,EAAQ,GAC7C1lB,GAAK80D,EAASH,EAAK,CAAC,EAAI,IAAM,IAAOjvC,EAAQ,GACrC0uC,GAAA,MAAAA,EAAAn0D,EAAGC,EAAGmT,EAAGrT,EAAC,CAC1B,CAEF,CACE,MAAM+0D,EAAc,MAAM,KAAK,OAAO,KAAK,KAAK,UAAY,CAAC,EAC7D,QAAS90D,EAAI,EAAGA,EAAI,KAAK,UAAWA,IAAK,CACvC,MAAM00D,EAAK10D,EAAI,EACT4S,EAAS,KAAK,IAAIkiD,EAAYJ,CAAE,EAAI,GAAK,EAAE,EAC3C7hD,EAAS,KAAK,IAAIiiD,EAAYJ,EAAK,CAAC,EAAI,GAAK,EAAE,EAC/C5hD,EAAS,KAAK,IAAIgiD,EAAYJ,EAAK,CAAC,EAAI,GAAK,EAAE,EACpCN,GAAA,MAAAA,EAAAp0D,EAAG4S,EAAQC,EAAQC,EAAM,CAC5C,CAEE,GAAA,KAAK,UAAY,EAAG,CAYtB,MAAMiiD,EAAW,EAAI,KAAK,KAAK,CAAC,EAC1BC,EAAY,MAAM,KAAK,OAAO,KAAK,KAAK,UAAY,CAAC,EAC3D,QAASh1D,EAAI,EAAGA,EAAI,KAAK,UAAWA,IAAK,CACvC,MAAM00D,EAAK10D,EAAI,EACTklB,EAAa,CAAC,EAAG,EAAG,EAAG,CAAC,EACxBgrB,EAAS,CACb8kB,EAAUN,CAAE,EACZM,EAAUN,EAAK,CAAC,EAChBM,EAAUN,EAAK,CAAC,EAChBM,EAAUN,EAAK,CAAC,CAClB,EAEMO,EACJ/kB,EAAO,CAAC,GAAKA,EAAO,CAAC,GAAK,IAAMA,EAAO,CAAC,GAAK,KAAOA,EAAO,CAAC,GAAK,IAE7DglB,EAAa,IAEbC,EAAeF,IAAmB,GACxC,IAAIG,EAAkBH,EAClBI,EAAa,EAEjB,QAASr1D,EAAI,EAAGA,GAAK,EAAG,EAAEA,EACxB,GAAIA,IAAMm1D,EAAc,CAEtB,MAAM/qD,EAAQgrD,EAAkBF,EAC1B9kD,EAAQglD,IAAoB,EAAK,EAEvCA,EAAkBA,IAAoB,GAE3Bp1D,EAAAA,CAAC,EAAI+0D,GAAY3qD,EAAQ8qD,GAEzBl1D,EAAAA,CAAC,EAAIoQ,IAAS,EAAI8U,EAAWllB,CAAC,EAAI,CAACklB,EAAWllB,CAAC,EAE1Dq1D,GAAcnwC,EAAWllB,CAAC,EAAIklB,EAAWllB,CAAC,CAAA,CAO9C,MAAMs1D,EAAS,EAAID,EACRnwC,EAAAiwC,CAAY,EAAI,KAAK,KAAK,KAAK,IAAIG,EAAQ,CAAC,CAAC,EAExDjB,GAAA,MAAAA,EACEr0D,EACAklB,EAAW,CAAC,EACZA,EAAW,CAAC,EACZA,EAAW,CAAC,EACZA,EAAW,CAAC,EACd,CACF,KACK,CACL,MAAM8vC,EAAY,MAAM,KAAK,OAAO,KAAK,KAAK,UAAY,CAAC,EAC3D,QAASh1D,EAAI,EAAGA,EAAI,KAAK,UAAWA,IAAK,CACvC,MAAM00D,EAAK10D,EAAI,EACT+S,EAAQiiD,EAAUN,CAAE,EAAI,MAAQ,EAChC1hD,EAAQgiD,EAAUN,EAAK,CAAC,EAAI,MAAQ,EACpCzhD,EAAQ+hD,EAAUN,EAAK,CAAC,EAAI,MAAQ,EACpCxhD,EAAQ,KAAK,KACjB,KAAK,IAAI,EAAG,EAAIH,EAAQA,EAAQC,EAAQA,EAAQC,EAAQA,CAAK,CAC/D,EACAohD,GAAA,MAAAA,EAAer0D,EAAG+S,EAAOC,EAAOC,EAAOC,EAAK,CAC9C,CAGE,GAAA0wC,GAAc,KAAK,UAAY,EAAG,CACpC,MAAMhf,EAAM,IAAI,aAAa,CAAK,EAC5BG,EAAM,KAAK,UAAY,EAAI,IAAI,aAAa,EAAI,CAAC,EAAI,OACrD0Y,EAAM,KAAK,UAAY,EAAI,IAAI,aAAa,EAAI,CAAC,EAAI,OACrD8X,EAAU,MAAM,KAAK,OAAO,KAChC,KAAK,UAAYC,GAAkB,KAAK,QAAQ,EAAI,CACtD,EAEA,IAAIx0C,EAAS,EACb,QAAShhB,EAAI,EAAGA,EAAI,KAAK,UAAWA,IAAK,CACvC,QAASE,EAAI,EAAGA,EAAI,EAAG,EAAEA,EACvB0kC,EAAI1kC,CAAC,GAAKq1D,EAAQv0C,EAAS9gB,CAAC,EAAI,KAAO,IAGzC,GADU8gB,GAAA,EACN+jB,EAAK,CACP,QAAS7kC,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACxB6kC,EAAI7kC,CAAC,GAAKq1D,EAAQv0C,EAAS9gB,CAAC,EAAI,KAAO,IAE/B8gB,GAAA,EAAA,CAEZ,GAAIy8B,EAAK,CACP,QAASv9C,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACxBu9C,EAAIv9C,CAAC,GAAKq1D,EAAQv0C,EAAS9gB,CAAC,EAAI,KAAO,IAE/B8gB,GAAA,EAAA,CAEC4iC,GAAA,MAAAA,EAAA5jD,EAAG4kC,EAAKG,EAAK0Y,EAAG,CAC/B,CAEF,GAAI,KAAK,QAAS,CAChB,IAAI3W,EAAQ,MAAM,KAAK,OAAO,KAAK,KAAK,UAAY,CAAC,EACrD,QAAS9mC,EAAI,EAAGA,EAAI,KAAK,UAAWA,IAAK,CACvC,MAAMy1D,EAAKz1D,EAAI,EACTkO,EAAQ44B,EAAM2uB,CAAE,GAAK3uB,EAAM2uB,EAAK,CAAC,GAAK,GAC5CnB,GAAA,MAAAA,EAAct0D,EAAGkO,EAAK,CAGxB44B,EAAQ,MAAM,KAAK,OAAO,KAAK,KAAK,UAAY,CAAC,EACjD,QAAS9mC,EAAI,EAAGA,EAAI,KAAK,UAAWA,IAAK,CACvC,MAAMqT,EAAKrT,EAAI,EACTF,EACJgnC,EAAMzzB,CAAE,GACPyzB,EAAMzzB,EAAK,CAAC,GAAK,IACjByzB,EAAMzzB,EAAK,CAAC,GAAK,KACjByzB,EAAMzzB,EAAK,CAAC,GAAK,IACpBkhD,GAAA,MAAAA,EAAcv0D,EAAGF,EAAK,CACxB,CACF,CAEJ,CAEA,MAAM01D,GAA4C,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAChE7N,GAAQ,mBAED+N,GAAY,WACZC,GAAc,EACdC,GAAmB,EAEzB,MAAMC,EAAU,CAUrB,YAAY,CACV,UAAAt/C,EACA,SAAAu/C,EACA,eAAAC,EAAiB,GACjB,cAAAC,EAAgB,EAAA,EAMf,CAZY,KAAA,aAAA,EAab,MAAMC,EACJ,IAKCH,GAAY,EAAI,EAAI,IACpBA,GAAY,EAAI,GAAK,IACrBA,GAAY,EAAI,GAAK,GAClBnV,EAAa,GAAKpqC,EAAY0/C,EAC/B,KAAA,OAAS,IAAI,YAAYtV,CAAU,EACxC,KAAK,KAAO,IAAI,SAAS,KAAK,MAAM,EAEpC,KAAK,KAAK,UAAU,EAAG+U,GAAW,EAAI,EACtC,KAAK,KAAK,UAAU,EAAGC,GAAa,EAAI,EACxC,KAAK,KAAK,UAAU,EAAGp/C,EAAW,EAAI,EACjC,KAAA,KAAK,SAAS,GAAIu/C,CAAQ,EAC1B,KAAA,KAAK,SAAS,GAAIC,CAAc,EACrC,KAAK,KAAK,SAAS,GAAIC,EAAgBJ,GAAmB,CAAC,EACtD,KAAA,KAAK,SAAS,GAAI,CAAC,EAExB,KAAK,UAAYr/C,EACjB,KAAK,SAAWu/C,EAChB,KAAK,eAAiBC,EACtB,KAAK,SAAW,GAAKA,EACrB,KAAK,cAAgBC,CAAA,CAGvB,UAAUhoD,EAAevN,EAAWkS,EAAWhM,EAAW,CAGxD,MAAMuvD,EAAW,KAAK,MAAMz1D,EAAI,KAAK,QAAQ,EACvC01D,EAAO,KAAK,IAAI,SAAW,KAAK,IAAI,QAAUD,CAAQ,CAAC,EACvDE,EAAW,KAAK,MAAMzjD,EAAI,KAAK,QAAQ,EACvC0jD,EAAO,KAAK,IAAI,SAAW,KAAK,IAAI,QAAUD,CAAQ,CAAC,EACvDE,EAAW,KAAK,MAAM3vD,EAAI,KAAK,QAAQ,EACvC4vD,EAAO,KAAK,IAAI,SAAW,KAAK,IAAI,QAAUD,CAAQ,CAAC,GAC7CJ,IAAaC,GAAQC,IAAaC,GAAQC,IAAaC,KAErE,KAAK,cAAgB,GAOvB,MAAM/3C,EAAO,GADFxQ,EAAQ,EAEnB,KAAK,KAAK,SAASwQ,EAAM23C,EAAO,GAAI,EACpC,KAAK,KAAK,SAAS33C,EAAO,EAAI23C,GAAQ,EAAK,GAAI,EAC/C,KAAK,KAAK,SAAS33C,EAAO,EAAI23C,GAAQ,GAAM,GAAI,EAChD,KAAK,KAAK,SAAS33C,EAAO,EAAG63C,EAAO,GAAI,EACxC,KAAK,KAAK,SAAS73C,EAAO,EAAI63C,GAAQ,EAAK,GAAI,EAC/C,KAAK,KAAK,SAAS73C,EAAO,EAAI63C,GAAQ,GAAM,GAAI,EAChD,KAAK,KAAK,SAAS73C,EAAO,EAAG+3C,EAAO,GAAI,EACxC,KAAK,KAAK,SAAS/3C,EAAO,EAAI+3C,GAAQ,EAAK,GAAI,EAC/C,KAAK,KAAK,SAAS/3C,EAAO,EAAI+3C,GAAQ,GAAM,GAAI,CAAA,CAGlD,SAASvoD,EAAek5C,EAAe,CACrC,MAAM1oC,EAAO,GAAK,KAAK,UAAY,EAAIxQ,EACvC,KAAK,KAAK,SACRwQ,EACA,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,KAAK,MAAM0oC,EAAQ,GAAG,CAAC,CAAC,CACpD,CAAA,CAGF,OAAO,SAASjnD,EAAW,CACzB,MAAMmB,IAAMnB,EAAI,KAAQ0nD,GAAQ,KAAQ,IAAO,IACxC,OAAA,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,KAAK,MAAMvmD,CAAC,CAAC,CAAC,CAAA,CAGjD,OAAO4M,EAAe/N,EAAW,EAAWF,EAAW,CACrD,MAAMye,EAAO,GAAK,KAAK,UAAY,GAAKxQ,EAAQ,EAChD,KAAK,KAAK,SAASwQ,EAAMq3C,GAAU,SAAS51D,CAAC,CAAC,EAC9C,KAAK,KAAK,SAASue,EAAO,EAAGq3C,GAAU,SAAS,CAAC,CAAC,EAClD,KAAK,KAAK,SAASr3C,EAAO,EAAGq3C,GAAU,SAAS91D,CAAC,CAAC,CAAA,CAGpD,SAASiO,EAAe4E,EAAgBC,EAAgBC,EAAgB,CACtE,MAAM0L,EAAO,GAAK,KAAK,UAAY,GAAKxQ,EAAQ,EAChD,KAAK,KAAK,SACRwQ,EACA,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,KAAK,OAAO,KAAK,IAAI5L,CAAM,EAAI,IAAM,EAAE,CAAC,CAAC,CACrE,EACA,KAAK,KAAK,SACR4L,EAAO,EACP,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,KAAK,OAAO,KAAK,IAAI3L,CAAM,EAAI,IAAM,EAAE,CAAC,CAAC,CACrE,EACA,KAAK,KAAK,SACR2L,EAAO,EACP,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,KAAK,OAAO,KAAK,IAAI1L,CAAM,EAAI,IAAM,EAAE,CAAC,CAAC,CACrE,CAAA,CAGF,QACE9E,KACG4L,EACH,CACA,MAAM4E,EAAO,GAAK,KAAK,UAAY,GAAKxQ,EAAQ,EAE1CwoD,EAAOlnD,GAAUsK,CAAC,EAGxB,IAAI68C,EAAW,EACf,QAAS,EAAI,EAAG,EAAI,EAAG,EAAE,EACnB,KAAK,IAAID,EAAK,CAAC,CAAC,EAAI,KAAK,IAAIA,EAAKC,CAAQ,CAAC,IAClCA,EAAA,GAMf,MAAMC,EAASF,EAAKC,CAAQ,EAAI,EAAI,EAAI,EAGxC,IAAIE,EAAOF,EACX,QAAS,EAAI,EAAG,EAAI,EAAG,EAAE,EACvB,GAAI,IAAMA,EAAU,CAClB,MAAMG,GAAUJ,EAAK,CAAC,EAAI,EAAI,EAAI,GAAKE,EACjCG,EAAM,KAAK,MACb,KAAgB,KAAK,IAAIL,EAAK,CAAC,CAAC,EAAI,KAAK,SAAW,EACxD,EACQG,EAAAA,GAAQ,GAAOC,GAAU,EAAKC,CAAA,CAI1C,KAAK,KAAK,SAASr4C,EAAMm4C,EAAO,GAAI,EACpC,KAAK,KAAK,SAASn4C,EAAO,EAAIm4C,GAAQ,EAAK,GAAI,EAC/C,KAAK,KAAK,SAASn4C,EAAO,EAAIm4C,GAAQ,GAAM,GAAI,EAChD,KAAK,KAAK,SAASn4C,EAAO,EAAIm4C,IAAS,GAAM,GAAI,CAAA,CAGnD,OAAO,WAAWrS,EAAY1iD,EAAc,CAC1C,MAAMwI,EAAQ,KAAK,MAAMk6C,EAAK,GAAG,EAAI,IAC/BuN,EAAa,GAAM,EAAIjwD,EACvBk1D,EACJ,KAAK,OAAO1sD,EAAQynD,EAAa,GAAKA,CAAU,EAAIA,EACtD,OAAO,KAAK,IAAI,EAAG,KAAK,IAAI,IAAKiF,CAAS,CAAC,CAAA,CAG7C,MACE9oD,EACA42B,EACAG,EACA0Y,EACA,CACA,MAAMsZ,EAASvB,GAAkB,KAAK,QAAQ,GAAK,EAC7CwB,EAAQ,GAAK,KAAK,UAAY,GAAKhpD,EAAQ+oD,EAAS,EAC1D,QAAS72D,EAAI,EAAGA,EAAI,EAAG,EAAEA,EAClB,KAAA,KAAK,SAAS82D,EAAQ92D,EAAG21D,GAAU,WAAWjxB,EAAI1kC,CAAC,EAAG,CAAC,CAAC,EAE/D,GAAI6kC,EAAK,CACP,MAAMkyB,EAAQD,EAAQ,EACtB,QAAS92D,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACnB,KAAA,KAAK,SAAS+2D,EAAQ/2D,EAAG21D,GAAU,WAAW9wB,EAAI7kC,CAAC,EAAG,CAAC,CAAC,EAE/D,GAAIu9C,EAAK,CACP,MAAMyZ,EAAQD,EAAQ,GACtB,QAAS/2D,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACnB,KAAA,KAAK,SAASg3D,EAAQh3D,EAAG21D,GAAU,WAAWpY,EAAIv9C,CAAC,EAAG,CAAC,CAAC,CAC/D,CACF,CACF,CAGF,MAAM,UAAgC,CACpC,MAAMuN,EAAQ,IAAI,WAAW,KAAK,MAAM,EAOlC0pD,EANS,IAAI,eAAe,CAChC,MAAM,MAAMvU,EAAY,CACtBA,EAAW,QAAQn1C,CAAK,EACxBm1C,EAAW,MAAM,CAAA,CACnB,CACD,EACyB,YAAY,IAAI,kBAAkB,MAAM,CAAC,EAE7DtW,EAAS,MADE,IAAI,SAAS6qB,CAAU,EACV,YAAY,EAClC,eAAA,IACN,aACA1pD,EAAM,OACN,WACA6+B,EAAO,WACP,OACF,EACO,IAAI,WAAWA,CAAM,CAAA,CAEhC,CAEA,eAAsB8qB,GAAa3pD,EAA0B,WACrD,MAAA8pC,EAAS,IAAIgU,GACb,CACJ,OAAAz/C,EACA,QAAAurD,EACA,MAAAjzB,EACA,eAAA2xB,EAAiB,GACjB,iBAAAuB,CAAA,EACE7pD,EACJ,UAAWA,KAAS3B,EAAQ,CAejB,IAAAm0B,EAAT,SAAsB18B,EAAoB,CACxC,OAAAA,EAAI,eAAekiB,CAAK,EACxBliB,EAAI,gBAAgB2hB,CAAU,EAC9B3hB,EAAI,IAAIoiB,CAAS,EACVpiB,CAAA,EAGAg0D,EAAT,SAAyBtyC,EAAuB,CAC9C,OAAAA,EAAO,eAAeQ,CAAK,EACpBR,CAAA,EAGAuyC,EAAT,SAA6BhB,EAAwB,CACnD,OAAAA,EAAK,YAAYtxC,CAAU,EACpBsxC,CAAA,EAGAiB,EAAT,SAAoB31D,EAAkB,CACpC,MAAO,CAAC41D,GAAQA,EAAK,cAAc51D,CAAC,CAAA,EAG7B61D,EAAT,SAAuBxkD,EAAiB,CAC/B,OAAAmkD,IAAqB,OACxBnkD,GAAWmkD,EACX,EACN,EAvCM,MAAA7xC,IAAQhY,EAAAA,EAAM,YAANA,YAAAA,EAAiB,QAAS,EAClCyX,EAAa,IAAIjmB,EAAM,WAAa,EAAA,YACxCwO,EAAAA,EAAM,YAANA,YAAAA,EAAiB,aAAc,CAAC,EAAG,EAAG,EAAG,CAAC,CAC5C,EACMkY,EAAY,IAAI1mB,EAAM,QAAU,EAAA,YACpCwO,EAAAA,EAAM,YAANA,YAAAA,EAAiB,YAAa,CAAC,EAAG,EAAG,CAAC,CACxC,EACMiqD,EAAOL,EACT,IAAIp4D,EAAM,KACR,IAAIA,EAAM,QAAA,EAAU,UAAUo4D,EAAQ,GAAG,EACzC,IAAIp4D,EAAM,QAAA,EAAU,UAAUo4D,EAAQ,GAAG,CAAA,EAE3C,OA6BJ,IAAI1zB,EAAWl2B,EAAM,SAOrB,OANKk2B,IACQA,EAAAqX,GAAiBvtC,EAAM,SAAS,EACvC,CAACk2B,GAAYl2B,EAAM,YACVk2B,EAAAsX,GAAyBxtC,EAAM,SAAS,IAG/Ck2B,EAAU,CAChB,KAAK96B,GAAc,IAAK,CACtB,MAAMyiD,EAAM,IAAIhD,GAAU,CAAE,UAAW76C,EAAM,UAAW,EACxD,MAAM69C,EAAI,YAAY,EACtB,IAAIsM,EAA2B,KAC3BtM,EAAA,YACF,CACEt9C,EACAvN,EACAkS,EACAhM,EACAiM,EACAC,EACAC,EACAC,EACAC,GACAC,EACAC,GACAC,EACAlT,GACAmT,EACArT,IACG,CACG,MAAAilB,EAASib,EAAa,IAAIhhC,EAAM,QAAQwB,EAAGkS,EAAGhM,CAAC,CAAC,EACtD,GAAI8wD,EAAWzyC,CAAM,GAAK2yC,EAAcxkD,CAAO,EAAG,CAChDykD,EAAYrgB,EAAO,UAAU,EAC7BA,EAAO,UAAUqgB,EAAW5yC,EAAO,EAAGA,EAAO,EAAGA,EAAO,CAAC,EACxD,MAAMC,EAASsyC,EACb,IAAIt4D,EAAM,QAAQ2T,EAAQC,EAAQC,CAAM,CAC1C,EACAykC,EAAO,SAASqgB,EAAW3yC,EAAO,EAAGA,EAAO,EAAGA,EAAO,CAAC,EACvD,MAAMC,EAAasyC,EACjB,IAAIv4D,EAAM,WAAW8T,EAAOC,GAAOC,EAAOC,EAAK,CACjD,EACOqkC,EAAA,cACLqgB,EACA1yC,EAAW,EACXA,EAAW,EACXA,EAAW,EACXA,EAAW,CACb,EACOqyB,EAAA,WAAWqgB,EAAWzkD,CAAO,EACpCokC,EAAO,SAASqgB,EAAW33D,GAAGmT,EAAGrT,CAAC,CAAA,MAEtB63D,EAAA,IAEhB,EACA,CAAC5pD,EAAO42B,EAAKG,EAAK0Y,IAAQ,CACpB7Y,GAAOgzB,IAAc,MAChBrgB,EAAA,OAAOqgB,EAAWhzB,CAAG,EAE1BG,GAAO6yB,IAAc,MAChBrgB,EAAA,OAAOqgB,EAAW7yB,CAAG,EAE1B0Y,GAAOma,IAAc,MAChBrgB,EAAA,OAAOqgB,EAAWna,CAAG,CAC9B,CAEJ,EACA,KAAA,CAEF,KAAK50C,GAAc,IAAK,CACtB,MAAMgvD,EAAM,IAAI7D,GAAU,CAAE,UAAWvmD,EAAM,UAAW,EACxD,MAAMoqD,EAAI,YAAY,EACtB,MAAM/lB,EAAU,IAAI,WAAW+lB,EAAI,SAAS,EAC5C/lB,EAAQ,KAAK,EAAE,EACf,MAAMgmB,EAAU,IAAI,aAAaD,EAAI,UAAY,CAAC,EAC5C7yC,EAAS,IAAI/lB,EAAM,QACzB44D,EAAI,YACF,CAAC7pD,EAAOvN,EAAGkS,EAAGhM,IAAM,CACZqe,MAAAA,EAASib,EAAa,IAAIhhC,EAAM,QAAQwB,EAAGkS,EAAGhM,CAAC,CAAC,EAC9CmxD,EAAA9pD,EAAQ,CAAC,EAAIgX,EAAO,EAC5B8yC,EAAQ9pD,EAAQ,EAAI,CAAC,EAAIgX,EAAO,EAChC8yC,EAAQ9pD,EAAQ,EAAI,CAAC,EAAIgX,EAAO,CAClC,EACA,CAAChX,EAAOk5C,IAAU,CACTliC,EAAA,UAAU8yC,EAAS9pD,EAAQ,CAAC,EAC/BypD,EAAWzyC,CAAM,GAAK2yC,EAAczQ,CAAK,IACnCpV,EAAA9jC,CAAK,EAAIupC,EAAO,UAAU,EAC3BA,EAAA,UAAUzF,EAAQ9jC,CAAK,EAAGgX,EAAO,EAAGA,EAAO,EAAGA,EAAO,CAAC,EAC7DuyB,EAAO,WAAWzF,EAAQ9jC,CAAK,EAAGk5C,CAAK,EAE3C,EACA,CAACl5C,EAAO/N,EAAGmT,EAAGrT,IAAM,CACd+xC,EAAQ9jC,CAAK,GAAK,GACpBupC,EAAO,SAASzF,EAAQ9jC,CAAK,EAAG/N,EAAGmT,EAAGrT,CAAC,CAE3C,EACA,CAACiO,EAAO4E,EAAQC,EAAQC,IAAW,CAC7B,GAAAg/B,EAAQ9jC,CAAK,GAAK,EAAG,CACvB,MAAMiX,EAASsyC,EACb,IAAIt4D,EAAM,QAAQ2T,EAAQC,EAAQC,CAAM,CAC1C,EACOykC,EAAA,SAASzF,EAAQ9jC,CAAK,EAAGiX,EAAO,EAAGA,EAAO,EAAGA,EAAO,CAAC,CAAA,CAEhE,EACA,CAACjX,EAAO+E,EAAOC,EAAOC,EAAOC,IAAU,CACjC,GAAA4+B,EAAQ9jC,CAAK,GAAK,EAAG,CACvB,MAAMkX,EAAasyC,EACjB,IAAIv4D,EAAM,WAAW8T,EAAOC,EAAOC,EAAOC,CAAK,CACjD,EACOqkC,EAAA,cACLzF,EAAQ9jC,CAAK,EACbkX,EAAW,EACXA,EAAW,EACXA,EAAW,EACXA,EAAW,CACb,CAAA,CAEJ,EACA,CAAClX,EAAO42B,EAAKG,EAAK0Y,IAAQ,CACpB3L,EAAQ9jC,CAAK,GAAK,IACpBupC,EAAO,OAAOzF,EAAQ9jC,CAAK,EAAG42B,CAAG,EAC7BG,GACFwS,EAAO,OAAOzF,EAAQ9jC,CAAK,EAAG+2B,CAAG,EAE/B0Y,GACFlG,EAAO,OAAOzF,EAAQ9jC,CAAK,EAAGyvC,CAAG,EAErC,CAEJ,EACA,KAAA,CAEF,KAAK50C,GAAc,MACjB2nD,GACE/iD,EAAM,UACL8I,GAAc,CAAC,EAChB,CACEvI,EACAvN,EACAkS,EACAhM,EACAiM,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,EACAlT,GACAmT,EACArT,KACG,CACG,MAAAilB,EAASib,EAAa,IAAIhhC,EAAM,QAAQwB,EAAGkS,EAAGhM,CAAC,CAAC,EACtD,GAAI8wD,EAAWzyC,CAAM,GAAK2yC,EAAcxkD,CAAO,EAAG,CAC1CnF,MAAAA,EAAQupC,EAAO,UAAU,EAC/BA,EAAO,UAAUvpC,EAAOgX,EAAO,EAAGA,EAAO,EAAGA,EAAO,CAAC,EACpD,MAAMC,EAASsyC,EACb,IAAIt4D,EAAM,QAAQ2T,EAAQC,EAAQC,CAAM,CAC1C,EACAykC,EAAO,SAASvpC,EAAOiX,EAAO,EAAGA,EAAO,EAAGA,EAAO,CAAC,EACnD,MAAMC,EAAasyC,EACjB,IAAIv4D,EAAM,WAAW8T,EAAOC,EAAOC,EAAOC,EAAK,CACjD,EACOqkC,EAAA,cACLvpC,EACAkX,EAAW,EACXA,EAAW,EACXA,EAAW,EACXA,EAAW,CACb,EACOqyB,EAAA,WAAWvpC,EAAOmF,CAAO,EAChCokC,EAAO,SAASvpC,EAAO/N,GAAGmT,EAAGrT,EAAC,CAAA,CAChC,CAEJ,EACA,MACF,KAAK8I,GAAc,OAAQ,CACzB,IAAI+uD,EAA2B,KAC/B9G,GACErjD,EAAM,UACL8I,GAAc,CAAC,EAChB,CACEvI,EACAvN,EACAkS,EACAhM,EACAiM,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,EACAC,GACAlT,EACAmT,GACArT,IACG,CACG,MAAAilB,EAASib,EAAa,IAAIhhC,EAAM,QAAQwB,EAAGkS,EAAGhM,CAAC,CAAC,EACtD,GAAI8wD,EAAWzyC,CAAM,GAAK2yC,EAAcxkD,EAAO,EAAG,CAChDykD,EAAYrgB,EAAO,UAAU,EAC7BA,EAAO,UAAUqgB,EAAW5yC,EAAO,EAAGA,EAAO,EAAGA,EAAO,CAAC,EACxD,MAAMC,EAASsyC,EACb,IAAIt4D,EAAM,QAAQ2T,EAAQC,EAAQC,CAAM,CAC1C,EACAykC,EAAO,SAASqgB,EAAW3yC,EAAO,EAAGA,EAAO,EAAGA,EAAO,CAAC,EACvD,MAAMC,EAAasyC,EACjB,IAAIv4D,EAAM,WAAW8T,EAAOC,EAAOC,GAAOC,CAAK,CACjD,EACOqkC,EAAA,cACLqgB,EACA1yC,EAAW,EACXA,EAAW,EACXA,EAAW,EACXA,EAAW,CACb,EACOqyB,EAAA,WAAWqgB,EAAWzkD,EAAO,EACpCokC,EAAO,SAASqgB,EAAW33D,EAAGmT,GAAGrT,CAAC,CAAA,MAEtB63D,EAAA,IAEhB,EACA,CAAC5pD,EAAO42B,EAAKG,EAAK0Y,IAAQ,CACpBma,IAAc,OACTrgB,EAAA,OAAOqgB,EAAWhzB,CAAG,EACxBG,GACKwS,EAAA,OAAOqgB,EAAW7yB,CAAG,EAE1B0Y,GACKlG,EAAA,OAAOqgB,EAAWna,CAAG,EAEhC,CAEJ,EACA,KAAA,CAEF,QACE,MAAM,IAAI,MAAM,oCAAoC9Z,CAAQ,EAAE,CAAA,CAClE,CAGF,MAAMmyB,EAAW,KAAK,IACpB1xB,GAAS,EACTmT,EAAO,IAAM,EAAIA,EAAO,IAAM,EAAIA,EAAO,IAAM,EAAI,CACrD,EACMsgB,EAAM,IAAIhC,GAAU,CACxB,UAAWte,EAAO,UAClB,SAAAue,EACA,eAAAC,EACA,cAAe,EAAA,CAChB,EAED,QAAS/1D,EAAI,EAAGA,EAAIu3C,EAAO,UAAW,EAAEv3C,EAAG,CACzC,MAAM00D,EAAK10D,EAAI,EACTqT,EAAKrT,EAAI,EACX63D,EAAA,UACF73D,EACAu3C,EAAO,QAAQmd,CAAE,EACjBnd,EAAO,QAAQmd,EAAK,CAAC,EACrBnd,EAAO,QAAQmd,EAAK,CAAC,CACvB,EACImD,EAAA,SACF73D,EACAu3C,EAAO,OAAOmd,CAAE,EAChBnd,EAAO,OAAOmd,EAAK,CAAC,EACpBnd,EAAO,OAAOmd,EAAK,CAAC,CACtB,EACImD,EAAA,QACF73D,EACAu3C,EAAO,YAAYlkC,CAAE,EACrBkkC,EAAO,YAAYlkC,EAAK,CAAC,EACzBkkC,EAAO,YAAYlkC,EAAK,CAAC,EACzBkkC,EAAO,YAAYlkC,EAAK,CAAC,CAC3B,EACAwkD,EAAI,SAAS73D,EAAGu3C,EAAO,UAAUv3C,CAAC,CAAC,EAC/B63D,EAAA,OACF73D,EACAu3C,EAAO,OAAOmd,CAAE,EAChBnd,EAAO,OAAOmd,EAAK,CAAC,EACpBnd,EAAO,OAAOmd,EAAK,CAAC,CACtB,EACInd,EAAO,KAAOue,GAAY,GACxB+B,EAAA,MACF73D,EACAu3C,EAAO,IAAI,MAAMv3C,EAAI,GAAIA,EAAI,GAAK,CAAC,EACnC81D,GAAY,GAAKve,EAAO,IACpBA,EAAO,IAAI,MAAMv3C,EAAI,IAAKA,EAAI,GAAK,EAAE,EACrC,OACJ81D,GAAY,GAAKve,EAAO,IACpBA,EAAO,IAAI,MAAMv3C,EAAI,IAAKA,EAAI,GAAK,EAAE,EACrC,MACN,CACF,CAIF,MAAO,CAAE,UADQ,MAAM63D,EAAI,SAAS,EACN,aAAcA,EAAI,YAAa,CAC/D,CCp0BY,IAAAE,IAAAA,IACVA,EAAA,gBAAkB,kBAClBA,EAAA,aAAe,eAFLA,IAAAA,IAAA,CAAA,CAAA,EAmBL,MAAMC,EAAN,MAAMA,CAAc,CAuBzB,YAAY/qD,EAA+B,CACzC,KAAK,KAAOA,EAAQ,KACpB,KAAK,UAAYA,EAAQ,WAAa,KAAK,KAAK,UAC3C,KAAA,KAAOA,EAAQ,MAAQ,kBAEtB,KAAA,CAAE,MAAAuJ,EAAO,OAAAC,EAAQ,MAAAC,EAAO,UAAAC,GAAcL,GAAe,KAAK,SAAS,EACzE,KAAK,SAAW,IAAI,YAAYK,EAAY,CAAC,EACxC,KAAA,YAAc,IAAI1X,EAAM,iBAC3B,KAAK,SACLuX,EACAC,EACAC,CACF,EACK,KAAA,YAAY,OAASzX,EAAM,kBAC3B,KAAA,YAAY,KAAOA,EAAM,kBAC9B,KAAK,YAAY,eAAiB,WAClC,KAAK,YAAY,YAAc,GAE1B,KAAA,SAAWgO,EAAQ,UAAY,IACpC,KAAK,SAAW,IAAI,aAAa,KAAK,SAAW,EAAE,EAC9C,KAAA,YAAc,IAAIhO,EAAM,YAC3B,KAAK,SACL,EACA,KAAK,SACLA,EAAM,WACNA,EAAM,SACR,EACA,KAAK,YAAY,eAAiB,UAClC,KAAK,YAAY,YAAc,GAE/B,KAAK,qBAAuBmT,GAAS,KAAK,SAAU,KAAO,CACzD,KAAM,IAAInT,EAAM,WAChB,IAAK,IAAIA,EAAM,QACf,MAAO,IAAIA,EAAM,OAAQ,EACzB,EAEE,KAAK,OAAS,eACX,KAAA,gBAAkBmT,GAAS,KAAK,SAAU,IAAM,IAAInT,EAAM,OAAS,EAExE,KAAK,gBAAkB,CAAC,EAGrB,KAAA,QAAU,IAAIupB,EAAY,CAC7B,IAAK,WACL,KAAMyvC,GACN,QAAS,IAAM,CAACC,EAAoB,EACpC,MAAO,CACL,UAAW,KAAK,UAChB,SAAU,KAAK,SACf,YAAa,KAAK,YAClB,YAAa,KAAK,WAAA,CACpB,CACD,CAAA,CAIH,OAAOxzC,EAAwD,CACzD,GAAA,KAAK,OAAS,eACV,MAAA,IAAI,MAAM,+CAA+C,EAE1D,OAAAyzC,GAAoBzzC,EAAQ,KAAK,OAAO,CAAA,CAGjD,UAAU+B,EAA8D,CAClE,OAAA,KAAK,OAAS,kBACT2xC,GAAwB3xC,EAAU,KAAK,OAAO,EAEhD4xC,GAAwB5xC,EAAU,KAAK,OAAO,CAAA,CAIvD,eACE6xC,EACA9B,EACAjzD,EACA,CACA,KAAK,qBAAqB+0D,CAAS,EAAE,KAAK,KAAK9B,CAAI,EACnD,KAAK,qBAAqB8B,CAAS,EAAE,IAAI,KAAK/0D,CAAG,EACjD,KAAK,qBAAqB+0D,CAAS,EAAE,MAAM,KAAKN,EAAc,UAAU,EAEpE,KAAK,OAAS,gBACX,KAAA,gBAAgBM,CAAS,EAC3B,QAAQ/0D,EAAKizD,EAAMwB,EAAc,UAAU,EAC3C,OAAO,EAGP,KAAA,eAAeM,EAAW9B,EAAMjzD,CAAG,CAAA,CAG1C,eACE+0D,EACA9B,EACAjzD,EACA,CACAizD,EAAK,KAAK,KAAK,qBAAqB8B,CAAS,EAAE,IAAI,EACnD/0D,EAAI,KAAK,KAAK,qBAAqB+0D,CAAS,EAAE,GAAG,CAAA,CAGnD,oBACEA,EACA9B,EACAjzD,EACAkiB,EACA,CACA,KAAK,qBAAqB6yC,CAAS,EAAE,KAAK,KAAK9B,CAAI,EACnD,KAAK,qBAAqB8B,CAAS,EAAE,IAAI,KAAK/0D,CAAG,EACjD,KAAK,qBAAqB+0D,CAAS,EAAE,MAAM,KAAK7yC,CAAK,EAEjD,KAAK,OAAS,gBACX,KAAA,gBAAgB6yC,CAAS,EAAE,QAAQ/0D,EAAKizD,EAAM/wC,CAAK,EAAE,OAAO,EAGnE,KAAK,oBAAoB6yC,EAAW9B,EAAMjzD,EAAKkiB,CAAK,CAAA,CAGtD,oBACE6yC,EACA9B,EACAjzD,EACAkiB,EACA,CACA+wC,EAAK,KAAK,KAAK,qBAAqB8B,CAAS,EAAE,IAAI,EACnD/0D,EAAI,KAAK,KAAK,qBAAqB+0D,CAAS,EAAE,GAAG,EACjD7yC,EAAM,KAAK,KAAK,qBAAqB6yC,CAAS,EAAE,KAAK,CAAA,CAGvD,cAAcA,EAAmB/H,EAAuB,CAClD,GAAA,KAAK,OAAS,eACV,MAAA,IAAI,MAAM,qDAAqD,EAEvE,KAAK,gBAAgB+H,CAAS,EAAE,KAAK/H,CAAM,EAAE,OAAO,EAC/C,KAAA,cAAc+H,EAAW/H,CAAM,CAAA,CAGtC,cAAc+H,EAAmB/H,EAAuB,CAClD,GAAA,KAAK,OAAS,eACV,MAAA,IAAI,MAAM,qDAAqD,EAEvEA,EAAO,KAAK,KAAK,gBAAgB+H,CAAS,CAAC,EAAE,OAAO,CAAA,CAItD,eACEA,EACA9B,EACAjzD,EACA,CACI,GAAA,KAAK,OAAS,kBAAmC,CACrCy0D,EAAA,QACX,KAAK,KAAK,qBAAqBM,CAAS,EAAE,IAAI,EAC9C,OAAO,EACIN,EAAA,OACX,KAAKz0D,CAAG,EACR,IAAI,KAAK,qBAAqB+0D,CAAS,EAAE,GAAG,EACjCN,EAAA,QAAQ,SAASxB,CAAI,EACnCwB,EAAc,KACX,IACCA,EAAc,OAAO,EACrBA,EAAc,OAAO,EACrBA,EAAc,OAAO,EACrB,CAAA,EAED,SAASA,EAAc,OAAO,EAEjC,MAAMO,EAAMD,EAAY,GACxB,KAAK,SAASC,EAAM,CAAC,EAAIP,EAAc,QAAQ,EAC/C,KAAK,SAASO,EAAM,CAAC,EAAIP,EAAc,QAAQ,EAC/C,KAAK,SAASO,EAAM,CAAC,EAAIP,EAAc,QAAQ,EAC/C,KAAK,SAASO,EAAM,CAAC,EAAIP,EAAc,QAAQ,EAC/C,KAAK,SAASO,EAAM,CAAC,EAAI,GAAMP,EAAc,KAAK,EAClD,KAAK,SAASO,EAAM,CAAC,EAAI,GAAMP,EAAc,KAAK,EAClD,KAAK,SAASO,EAAM,CAAC,EAAI,GAAMP,EAAc,KAAK,EAClD,KAAK,SAASO,EAAM,CAAC,EAAI,GAAMP,EAAc,KAAK,CAAA,MAElD,KAAK,oBAAoBM,EAAW9B,EAAMjzD,EAAKy0D,EAAc,UAAU,CACzE,CAGF,oBACEM,EACA9B,EACAjzD,EACAkiB,EACA,CACI,GAAA,KAAK,OAAS,kBAChB,MAAM,IAAI,MACR,8DACF,EAGFuyC,EAAc,QAAQ,QAAQz0D,EAAKizD,EAAM/wC,CAAK,EACzC,KAAA,cAAc6yC,EAAWN,EAAc,OAAO,CAAA,CAGrD,cAAcM,EAAmB/H,EAAuB,CAClD,GAAA,KAAK,OAAS,eACV,MAAA,IAAI,MAAM,wDAAwD,EAG1EyH,EAAc,QAAQ,iBACpB,KAAK,gBAAgBM,CAAS,EAC9B/H,CACF,EACA,MAAMgI,EAAMD,EAAY,GACxB,KAAK,SAASC,EAAM,CAAC,EAAIP,EAAc,QAAQ,SAAS,CAAC,EACzD,KAAK,SAASO,EAAM,CAAC,EAAIP,EAAc,QAAQ,SAAS,CAAC,EACzD,KAAK,SAASO,EAAM,CAAC,EAAIP,EAAc,QAAQ,SAAS,CAAC,EACzD,KAAK,SAASO,EAAM,CAAC,EAAIP,EAAc,QAAQ,SAAS,CAAC,EACzD,KAAK,SAASO,EAAM,CAAC,EAAIP,EAAc,QAAQ,SAAS,CAAC,EACzD,KAAK,SAASO,EAAM,CAAC,EAAIP,EAAc,QAAQ,SAAS,CAAC,EACzD,KAAK,SAASO,EAAM,CAAC,EAAIP,EAAc,QAAQ,SAAS,CAAC,EACzD,KAAK,SAASO,EAAM,CAAC,EAAIP,EAAc,QAAQ,SAAS,CAAC,EACzD,KAAK,SAASO,EAAM,CAAC,EAAIP,EAAc,QAAQ,SAAS,EAAE,EAC1D,KAAK,SAASO,EAAM,CAAC,EAAIP,EAAc,QAAQ,SAAS,EAAE,EAC1D,KAAK,SAASO,EAAM,EAAE,EAAIP,EAAc,QAAQ,SAAS,EAAE,EAC3D,KAAK,SAASO,EAAM,EAAE,EAAIP,EAAc,QAAQ,SAAS,EAAE,CAAA,CAK7D,cACE7b,EACAqc,EACAC,EACA,CACA,MAAMplD,EAAK8oC,EAAa,EACxB,KAAK,SAAS9oC,EAAK,CAAC,EAClB,KAAK,IAAI,IAAK,KAAK,IAAI,EAAG,KAAK,MAAMolD,EAAQ,EAAI,GAAK,CAAC,CAAC,GACvDD,EAAY,GAAK,GACpB,KAAK,SAASnlD,EAAK,CAAC,EAClB,KAAK,IAAI,IAAK,KAAK,IAAI,EAAG,KAAK,MAAMolD,EAAQ,EAAI,GAAK,CAAC,CAAC,GACvDD,EAAY,GAAK,GACpB,KAAK,SAASnlD,EAAK,CAAC,EAClB,KAAK,IAAI,IAAK,KAAK,IAAI,EAAG,KAAK,MAAMolD,EAAQ,EAAI,GAAK,CAAC,CAAC,GACvDD,EAAY,GAAK,GACpB,KAAK,SAASnlD,EAAK,CAAC,EAClB,KAAK,IAAI,IAAK,KAAK,IAAI,EAAG,KAAK,MAAMolD,EAAQ,EAAI,GAAK,CAAC,CAAC,GACvDD,EAAY,GAAK,EAAA,CAKtB,aAAc,CACZ,KAAK,YAAY,YAAc,GAC/B,KAAK,KAAK,YAAc,EAAA,CAQ5B,EALER,EAAe,WAAa,IAAI/4D,EAAM,QAAQ,EAAG,EAAG,CAAC,EACtC+4D,EAAA,QAAU,IAAI/4D,EAAM,WACpB+4D,EAAA,OAAS,IAAI/4D,EAAM,QACnB+4D,EAAA,KAAO,IAAI/4D,EAAM,WACjB+4D,EAAA,QAAU,IAAI/4D,EAAM,QAlR9B,IAAMy5D,GAANV,EAuRM,MAAAC,GAAiB,CAAE,KAAM,gBAAiB,EAI1CC,GAAuBzpD,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAO5C,EAEYkqD,GAA4BlqD,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CA2DjD,EAED,SAAS0pD,GACPzzC,EACAk0C,EACwB,CAwBxB,OAvBa,IAAIjtD,EAGf,CACA,QAAS,CAAE,OAAQwX,EAAQ,SAAU80C,EAAe,EACpD,SAAU,CAAE,OAAQ90C,CAAO,EAC3B,QAAS,IAAM,CAAC+0C,GAAsBS,EAAyB,EAC/D,OAAQ,CAAE,OAAAj0C,EAAQ,SAAAk0C,CAAS,EAC3B,WAAY,CAAC,CAAE,OAAA9sD,EAAQ,QAAAK,KAAc,CAC7B,KAAA,CAAE,SAAAysD,CAAAA,EAAa9sD,EACf,CAAE,OAAA4Y,CAAAA,EAAWvY,EACnB,OAAOiC,EAAc;AAAA,UACjBsW,CAAM,MAAM5Y,EAAO,MAAM;AAAA,6BACN4Y,CAAM;AAAA;AAAA,cAErBk0C,CAAQ,eAAeA,CAAQ;AAAA,cAC/BA,CAAQ,iBAAiBA,CAAQ;AAAA,cACjCl0C,CAAM,WAAWA,CAAM,YAAYA,CAAM;AAAA;AAAA;AAAA,OAGhD,CAAA,CACH,CACD,EACW,QAAQ,MACtB,CAEO,MAAMm0C,GAAgCpqD,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAgErD,EAEYqqD,GAAgCrqD,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CA+CrD,EAED,SAAS2pD,GACP3xC,EACAmyC,EAC0B,CAwB1B,OAvBa,IAAIjtD,EAGf,CACA,QAAS,CAAE,SAAUyX,GAAU,SAAU60C,EAAe,EACxD,SAAU,CAAE,SAAU70C,EAAS,EAC/B,QAAS,IAAM,CAAC80C,GAAsBW,EAA6B,EACnE,OAAQ,CAAE,SAAApyC,EAAU,SAAAmyC,CAAS,EAC7B,WAAY,CAAC,CAAE,OAAA9sD,EAAQ,QAAAK,KAAc,CAC7B,KAAA,CAAE,SAAAysD,CAAAA,EAAa9sD,EACf,CAAE,SAAA2a,CAAAA,EAAata,EACrB,OAAOiC,EAAc;AAAA,UACjBqY,CAAQ,MAAM3a,EAAO,QAAQ;AAAA,+BACR2a,CAAQ;AAAA;AAAA,cAEzBmyC,CAAQ,eAAeA,CAAQ;AAAA,cAC/BA,CAAQ,iBAAiBA,CAAQ;AAAA,cACjCnyC,CAAQ,WAAWA,CAAQ,YAAYA,CAAQ,YAAYA,CAAQ;AAAA;AAAA;AAAA,OAG1E,CAAA,CACH,CACD,EACW,QAAQ,QACtB,CAEA,SAAS4xC,GACP5xC,EACAmyC,EAC0B,CAwB1B,OAvBa,IAAIjtD,EAGf,CACA,QAAS,CAAE,SAAUyX,GAAU,SAAU60C,EAAe,EACxD,SAAU,CAAE,SAAU70C,EAAS,EAC/B,QAAS,IAAM,CAAC80C,GAAsBY,EAA6B,EACnE,OAAQ,CAAE,SAAAryC,EAAU,SAAAmyC,CAAS,EAC7B,WAAY,CAAC,CAAE,OAAA9sD,EAAQ,QAAAK,KAAc,CAC7B,KAAA,CAAE,SAAAysD,CAAAA,EAAa9sD,EACf,CAAE,SAAA2a,CAAAA,EAAata,EACrB,OAAOiC,EAAc;AAAA,UACjBqY,CAAQ,MAAM3a,EAAO,QAAQ;AAAA,+BACR2a,CAAQ;AAAA;AAAA,cAEzBmyC,CAAQ,eAAeA,CAAQ;AAAA,cAC/BA,CAAQ,iBAAiBA,CAAQ;AAAA,cACjCnyC,CAAQ,WAAWA,CAAQ,YAAYA,CAAQ,YAAYA,CAAQ;AAAA;AAAA;AAAA,OAG1E,CAAA,CACH,CACD,EACW,QAAQ,QACtB,CCrlBO,SAASsyC,GAAc,CAE5B,OAAAxhB,EAEA,QAAAyhB,EAEA,SAAAC,EAAW,EAEX,YAAAC,EAAc,IAEd,iBAAAC,EAAmB,EAEnB,QAAAhmD,EAAU,EAGV,MAAA6M,CACF,EAQG,CAEK,MAAAgF,EAAS,IAAI/lB,EAAM,QACnBgmB,EAAS,IAAIhmB,EAAM,QACnBimB,EAAa,IAAIjmB,EAAM,WAAW,EAAG,EAAG,EAAG,CAAC,EAC9C+gB,GAAS,OACHA,EAAA,CAACA,EAAOqiC,IACdriC,EAAM,IACJ,IAAO,IAAO,KAAK,IAAIqiC,EAAM,EAAI,CAAC,EAClC,IAAO,IAAO,KAAK,IAAIA,EAAM,EAAI,CAAC,EAClC,IAAO,IAAO,KAAK,IAAIA,EAAM,EAAI,CAAC,CACpC,GAEE,MAAA+W,EAAa,IAAIn6D,EAAM,MACpB,QAAA0H,EAAIqyD,EAAQ,IAAI,EAAGryD,EAAIqyD,EAAQ,IAAI,EAAI,KAASryD,GAAKsyD,EACnD,QAAAtmD,EAAIqmD,EAAQ,IAAI,EAAGrmD,EAAIqmD,EAAQ,IAAI,EAAI,KAASrmD,GAAKsmD,EACnD,QAAAx4D,EAAIu4D,EAAQ,IAAI,EAAGv4D,EAAIu4D,EAAQ,IAAI,EAAI,KAASv4D,GAAKw4D,EAAU,CAC/Dj0C,EAAA,IAAIvkB,EAAGkS,EAAGhM,CAAC,EAClB,QAASkmC,EAAQ,EAAGA,EAAQ,EAAG,EAAEA,EAC/B5nB,EAAO,UAAUi0C,GAAersB,EAAQ,EAAIssB,EAAiB,EACxDtsB,EAEM,OAAO7sB,GAAU,WAC1BA,EAAMo5C,EAAYp0C,CAAM,EAExBo0C,EAAW,KAAKp5C,CAAK,EAJrBo5C,EAAW,UAAU,CAAG,EAM1B7hB,EAAO,UAAUvyB,EAAQC,EAAQC,EAAY/R,EAASimD,CAAU,CAClE,CAIR,CAEO,SAASC,GAAc,CAE5B,OAAA9hB,EAEA,MAAA9xB,EAAQ,IAER,WAAA6zC,EAAa,MAEb,gBAAAC,EAAkB,EAElB,QAAAC,EAAU,CAAC,IAAIv6D,EAAM,OAAS,CAChC,EAMG,CACK,MAAA+lB,EAAS,IAAI/lB,EAAM,QACnBgmB,EAAS,IAAIhmB,EAAM,QACnBimB,EAAa,IAAIjmB,EAAM,WAAW,EAAG,EAAG,EAAG,CAAC,EAC5C+gB,EAAQ,IAAI/gB,EAAM,MAClBkU,EAAU,EAChB,UAAWstC,KAAU+Y,EACnB,QAAS9+C,EAAO,EAAGA,EAAO,EAAG,EAAEA,EAAM,CAC5BsK,EAAA,IACLy7B,EAAO,GAAK/lC,IAAS,EAAI+K,EAAQ,GACjCg7B,EAAO,GAAK/lC,IAAS,EAAI+K,EAAQ,GACjCg7B,EAAO,GAAK/lC,IAAS,EAAI+K,EAAQ,EACnC,EACA,QAASonB,EAAQ,EAAGA,EAAQ,EAAG,EAAEA,EACxB5nB,EAAA,KACJvK,IAAS,EAAI+K,EAAQ6zC,IAAezsB,EAAQ,EAAI0sB,IAChD7+C,IAAS,EAAI+K,EAAQ6zC,IAAezsB,EAAQ,EAAI0sB,IAChD7+C,IAAS,EAAI+K,EAAQ6zC,IAAezsB,EAAQ,EAAI0sB,EACnD,EACMv5C,EAAA,OACJ6sB,IAAU,EAAI,EAAMnyB,IAAS,EAAI,EAAM,EACvCmyB,IAAU,EAAI,EAAMnyB,IAAS,EAAI,EAAM,EACvCmyB,IAAU,EAAI,EAAMnyB,IAAS,EAAI,EAAM,CACzC,EACA68B,EAAO,UAAUvyB,EAAQC,EAAQC,EAAY/R,EAAS6M,CAAK,CAC7D,CAGN,CAEO,SAASy5C,GAAsB,CAEpC,OAAAliB,EAEA,OAAAkJ,EAAS,IAAIxhD,EAAM,QAEnB,OAAA0vC,EAAS,EAGT,SAAA+qB,EAAW,EAIX,OAAAxf,EAAS,KAET,YAAAgf,EAAc,IAEd,eAAAS,EAAiB,KAGjB,MAAA35C,EAAQ,IAAI/gB,EAAM,MAAM,EAAG,EAAG,CAAC,CACjC,EASG,CACD,MAAM26D,EAA+C,CAAC,EAEtD,SAASC,EAAS/3D,EAAkB,CAClC,GAAIo4C,GAAU,CAACA,EAAOp4C,CAAC,EACrB,OAEI,MAAA8I,EAAM,GAAG9I,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAC3B83D,EAAWhvD,CAAG,IACjBgvD,EAAWhvD,CAAG,EAAI9I,EACpB,CAGF,SAASg4D,EACPpjD,EACAqjD,EACAC,EACAC,EACA,CAIA,GAHAJ,EAASE,CAAE,EACXF,EAASG,CAAE,EACXH,EAASI,CAAE,EACPvjD,GAASgjD,EACX,OAEI,MAAAQ,EAAM,IAAIj7D,EAAM,QAAA,EAAU,WAAW86D,EAAIC,CAAE,EAAE,UAAU,EACvDG,EAAM,IAAIl7D,EAAM,QAAA,EAAU,WAAW+6D,EAAIC,CAAE,EAAE,UAAU,EACvDG,EAAM,IAAIn7D,EAAM,QAAA,EAAU,WAAWg7D,EAAIF,CAAE,EAAE,UAAU,EAC7DD,EAAQpjD,EAAQ,EAAGqjD,EAAIG,EAAKE,CAAG,EAC/BN,EAAQpjD,EAAQ,EAAGwjD,EAAKF,EAAIG,CAAG,EAC/BL,EAAQpjD,EAAQ,EAAG0jD,EAAKD,EAAKF,CAAE,EAC/BH,EAAQpjD,EAAQ,EAAGwjD,EAAKC,EAAKC,CAAG,CAAA,CAGlC,UAAW35D,IAAK,CAAC,GAAI,CAAC,EACpB,UAAWkS,IAAK,CAAC,GAAI,CAAC,EACpB,UAAWhM,IAAK,CAAC,GAAI,CAAC,EAAG,CACvB,MAAMozD,EAAK,IAAI96D,EAAM,QAAQwB,EAAG,EAAG,CAAC,EAC9Bu5D,EAAK,IAAI/6D,EAAM,QAAQ,EAAG0T,EAAG,CAAC,EAC9BsnD,EAAK,IAAIh7D,EAAM,QAAQ,EAAG,EAAG0H,CAAC,EAC5BmzD,EAAA,EAAGC,EAAIC,EAAIC,CAAE,CAAA,CAKrB,MAAAI,EAAS,OAAO,OAAOT,CAAU,EACjC30C,EAAS,IAAIhmB,EAAM,QAAQi6D,EAAaA,EAAaS,CAAc,EACnEz0C,EAAa,IAAIjmB,EAAM,WACvBm6D,EAAa,OAAOp5C,GAAU,WAAa,IAAI/gB,EAAM,MAAU+gB,EACrE,UAAWqiC,KAASgY,EACPn1C,EAAA,mBAAmB,IAAIjmB,EAAM,QAAQ,EAAG,EAAG,EAAE,EAAGojD,CAAK,EAC5D,OAAOriC,GAAU,YACnBA,EAAMo5C,EAAY/W,CAAK,EAEzBA,EAAM,eAAe1T,CAAM,EAC3B0T,EAAM,IAAI5B,CAAM,EAChBlJ,EAAO,UAAU8K,EAAOp9B,EAAQC,EAAY,EAAKk0C,CAAU,CAE/D,CAEO,SAASkB,GAAW,CAEzB,KAAAxP,EAEA,KAAAyP,EAEA,SAAAC,EAEA,MAAAx6C,EAEA,IAAAoF,EAEA,UAAAq1C,EAEA,UAAAC,EAEA,WAAAC,EAEA,YAAAC,CACF,EAUG,CACDL,EAAOA,GAAQ,QACfC,EAAWA,GAAY,GACvBx6C,EAAQA,GAAS,IAAI/gB,EAAM,MAAM,EAAG,EAAG,CAAC,EACxCw7D,EAAYA,GAAa,GACzBC,EAAYA,GAAa,QACzBC,EAAaA,GAAc,EAC3BC,EAAcA,GAAe,EACvB,MAAAtsD,EAAQw8C,EAAK,MAAM;AAAA,CAAI,EAEvBrzC,EAAS,SAAS,cAAc,QAAQ,EACxCzF,EAAMyF,EAAO,WAAW,IAAI,EAClC,GAAI,CAACzF,EACG,MAAA,IAAI,MAAM,iCAAiC,EAGnDA,EAAI,KAAO,GAAGwoD,CAAQ,MAAMD,CAAI,GAChCvoD,EAAI,UAAY0oD,EACV,MAAAG,EAAU7oD,EAAI,YAAY,EAAE,EAC5B8oD,EACJD,EAAQ,sBAAwBA,EAAQ,uBAE1C,IAAIE,EAAU,OAAO,kBACjBC,EAAW,OAAO,kBAClBC,EAAS,OAAO,kBAChBC,EAAY,OAAO,kBACvB,QAASvuD,EAAO,EAAGA,EAAO2B,EAAM,OAAQ,EAAE3B,EAAM,CAC9C,MAAMkuD,EAAU7oD,EAAI,YAAY1D,EAAM3B,CAAI,CAAC,EACrCgG,EAAImoD,EAAaH,EAAahuD,EACpCouD,EAAU,KAAK,IAAIA,EAAS,CAACF,EAAQ,qBAAqB,EAC1DG,EAAW,KAAK,IAAIA,EAAUH,EAAQ,sBAAsB,EAC5DI,EAAS,KAAK,IAAIA,EAAQtoD,EAAIkoD,EAAQ,uBAAuB,EAC7DK,EAAY,KAAK,IAAIA,EAAWvoD,EAAIkoD,EAAQ,wBAAwB,CAAA,CAEhE,MAAAM,EAAa,KAAK,MAAMJ,CAAO,EAC/BK,EAAY,KAAK,MAAMH,CAAM,EAC7BzkD,EAAQ,KAAK,KAAKwkD,CAAQ,EAAIG,EAC9B1kD,EAAS,KAAK,KAAKykD,CAAS,EAAIE,EACtC3jD,EAAO,MAAQjB,EACfiB,EAAO,OAAShB,EAEhBzE,EAAI,KAAO,GAAGwoD,CAAQ,MAAMD,CAAI,GAChCvoD,EAAI,UAAY0oD,EAChB1oD,EAAI,aAAe,aACnBA,EAAI,UAAY,UAChB,QAAShS,EAAI,EAAGA,EAAIsO,EAAM,OAAQ,EAAEtO,EAAG,CAC/B,MAAA2S,EAAImoD,EAAaH,EAAa36D,EAAIo7D,EACxCppD,EAAI,SAAS1D,EAAMtO,CAAC,EAAG,CAACm7D,EAAYxoD,CAAC,CAAA,CAGvC,MAAM+E,EAAY1F,EAAI,aAAa,EAAG,EAAGwE,EAAOC,CAAM,EAChD0O,EAAO,IAAI,WAAWzN,EAAU,KAAK,MAAM,EAC3C6/B,EAAS,IAAIW,GACblzB,EAAS,IAAI/lB,EAAM,QACnBgmB,EAAS,IAAIhmB,EAAM,QAAU,EAAA,UAAUw7D,EAAYG,CAAW,EAC9D11C,EAAa,IAAIjmB,EAAM,WAAW,EAAG,EAAG,EAAG,CAAC,EAClDmmB,EAAMA,GAAO,IAAInmB,EAAM,MAAM,EAAG,EAAG,CAAC,EAEpC,IAAI+hB,EAAS,EACb,QAASrO,EAAI,EAAGA,EAAI8D,EAAQ,EAAE9D,EAC5B,QAASlS,EAAI,EAAGA,EAAI+V,EAAO,EAAE/V,EAAG,CACxB,MAAAkB,EAAIwjB,EAAKnE,EAAS,CAAC,EACzB,GAAIrf,EAAI,EAAG,CACT,MAAMwR,EAAUxR,EAAI,IACbqjB,EAAA,IAAIvkB,EAAI,IAAO+V,EAAQ,GAAI,IAAOC,EAAS,GAAK9D,EAAG,CAAC,EAC3DqS,EAAO,eAAe41C,CAAW,EACjCrjB,EAAO,UAAUvyB,EAAQC,EAAQC,EAAY/R,EAASiS,CAAG,CAAA,CAEjDpE,GAAA,CAAA,CAId,MAAMs2B,EAAO,IAAIlE,GAAU,CAAE,aAAcmE,EAAQ,EACnD,OAAAD,EAAK,QAAUt3B,EACRs3B,CACT,CAEO,SAAS+jB,GAAY,CAE1B,IAAA33B,EAEA,UAAA+2B,EAGA,MAAAa,EAOA,aAAAC,CACF,EAcc,CACZ,OAAAd,EAAYA,GAAa,GACzBa,EAAQ,KAAK,IAAI,EAAG,KAAK,MAAMA,GAAS,CAAC,CAAC,EAEnC,IAAIloB,GAAU,CACnB,gBAAiB,MAAOmE,GACf,IAAI,QAAQ,CAAC11B,EAASC,IAAW,CAChC,MAAA05C,EAAM,IAAI,MAChBA,EAAI,YAAc,YAClBA,EAAI,QAAU15C,EACd05C,EAAI,OAAS,IAAM,CACX,KAAA,CAAE,MAAAhlD,EAAO,OAAAC,CAAA,EAAW+kD,EACpB/jD,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,MAAQjB,EACfiB,EAAO,OAAShB,EACV,MAAAzE,EAAMyF,EAAO,WAAW,IAAI,EAClC,GAAI,CAACzF,EAAK,CACD8P,EAAA,IAAI,MAAM,iCAAiC,CAAC,EACnD,MAAA,CAEF9P,EAAI,sBAAwB,GAC5BA,EAAI,sBAAwB,OAC5B,MAAMypD,EAAY,KAAK,MAAMjlD,EAAQ8kD,CAAK,EACpCI,EAAa,KAAK,MAAMjlD,EAAS6kD,CAAK,EAC5CtpD,EAAI,UAAUwpD,EAAK,EAAG,EAAGC,EAAWC,CAAU,EAC1C,GAAA,CACF,MAAMhkD,EAAY1F,EAAI,aAAa,EAAG,EAAGypD,EAAWC,CAAU,EACxDv2C,EAAO,IAAI,WAAWzN,EAAU,KAAK,MAAM,EAE3CsN,EAAS,IAAI/lB,EAAM,QACnBgmB,EAAS,IAAIhmB,EAAM,QAAQ,EAAE,UAAUw7D,CAAS,EAChDv1C,EAAa,IAAIjmB,EAAM,WAAW,EAAG,EAAG,EAAG,CAAC,EAC5CmmB,EAAM,IAAInmB,EAAM,MAEtB,IAAI+O,EAAQ,EACZ,QAAS2E,EAAI,EAAGA,EAAI+oD,EAAY,EAAE/oD,EAChC,QAASlS,EAAI,EAAGA,EAAIg7D,EAAW,EAAEh7D,EAAG,CAClC,MAAMugB,EAAShT,EAAQ,EACjBrM,EAAIwjB,EAAKnE,EAAS,CAAC,EACzB,GAAIrf,EAAI,EAAG,CACT,IAAIwR,EAAUxR,EAAI,IACdyjB,EAAA,IACFD,EAAKnE,EAAS,CAAC,EAAI,IACnBmE,EAAKnE,EAAS,CAAC,EAAI,IACnBmE,EAAKnE,EAAS,CAAC,EAAI,GACrB,EACOgE,EAAA,IACLvkB,EAAI,IAAOg7D,EAAY,GACvB,IAAOC,EAAa,GAAK/oD,EACzB,CACF,EACAsS,EAAO,UAAUw1C,CAAS,EAC1Bv1C,EAAW,IAAI,EAAG,EAAG,EAAG,CAAC,EACzB,IAAIy2C,EAAO,GACX,GAAIJ,EAAc,CAChB,MAAMK,EAAeL,EACnBE,EACAC,EACA1tD,EACAgX,EACAC,EACAC,EACA/R,EACAiS,CACF,EACAjS,EAAUyoD,GAAgBzoD,EAC1BwoD,EAAOC,IAAiB,IAAA,CAEtBD,GACFpkB,EAAO,UAAUvyB,EAAQC,EAAQC,EAAY/R,EAASiS,CAAG,CAC3D,CAEOpX,GAAA,CAAA,CAGL6T,EAAA,QACDE,EAAO,CACdD,EAAOC,CAAK,CAAA,CAEhB,EACAy5C,EAAI,IAAM93B,CAAA,CACX,CACH,CACD,CACH,CC3YO,SAASm4B,GAAU,CACxB,IAAAC,EACA,MAAAC,EACA,SAAAC,EACA,MAAAh8C,EACA,QAAA7M,CACF,EAMG,CACK4oD,EAAA,EAAI,KAAK,IAAI,EAAG,KAAK,MAAMA,EAAM,CAAC,CAAC,EACnCA,EAAA,EAAI,KAAK,IAAI,EAAG,KAAK,MAAMA,EAAM,CAAC,CAAC,EACnCA,EAAA,EAAI,KAAK,IAAI,EAAG,KAAK,MAAMA,EAAM,CAAC,CAAC,EACzC5oD,EAAUA,GAAW,EACrB,MAAMoD,EAAYwlD,EAAM,EAAIA,EAAM,EAAIA,EAAM,EACtCE,EAAQ9wD,EAAU,MAAO4wD,EAAM,CAAC,EAChCG,EAAQ/wD,EAAU,MAAO4wD,EAAM,CAAC,EACxB5wD,EAAU,MAAO4wD,EAAM,CAAC,EAEhC,MAAAI,EAAWpzC,GAAU,CAAC,EACtBioB,EAAY,IAAIS,GAAe,CACnC,UAAAl7B,EACA,UAAWtI,GACT,CAAE,MAAO,KAAM,EACf,CAAE,OAAQkV,CAAO,EACjB,CAAC,CAAE,MAAAnV,CAAA,IAAY,CACb,GAAI,CAACA,EACG,MAAA,IAAI,MAAM,oBAAoB,EAEhC,MAAAouD,EAAQnrC,GAAKjjB,EAAOiuD,CAAK,EACzBvO,EAAS38B,GAAI/iB,EAAOiuD,CAAK,EACzBI,EAAQprC,GAAKy8B,EAAQwO,CAAK,EAC1BI,EAAQvrC,GAAI28B,EAAQwO,CAAK,EACzBK,EAAOxgC,GAAQ,CACnB,WAAY,QACZ,EAAGqgC,EACH,EAAGC,EACH,EAAGC,CAAA,CACJ,EAEKE,EAAUljC,GAAe6iC,CAAQ,EACjCrwD,EAASiwB,GAAQ,CAAE,WAAY,QAAS,EAAG/tB,EAAO,EAAGwuD,EAAS,EAC9DC,EAASv9B,GAASpzB,CAAM,EACxBunB,EAAMloB,EAAU,OAAQ2wD,EAAI,GAAG,EAC/Bp6D,EAAMyJ,EAAU,OAAQ2wD,EAAI,GAAG,EAC/B9hB,EAAOrpB,GAAIjvB,EAAK2xB,CAAG,EACnBlM,EAAQ4J,GAAI/rB,GAAI4zB,GAAK2jC,CAAI,EAAGE,CAAM,EAAGtxD,EAAU,OAAQ4wD,CAAK,CAAC,EAC/D,IAAA97D,EACAmT,EACArT,EACAigB,GACE/f,EAAAkL,EAAU,QAAS6U,EAAM,CAAC,EAC1B5M,EAAAjI,EAAU,QAAS6U,EAAM,CAAC,EAC1BjgB,EAAAoL,EAAU,QAAS6U,EAAM,CAAC,GAE7B,CAAE,EAAA/f,EAAG,EAAAmT,EAAG,EAAArT,CAAM,EAAA67B,GAAMzU,CAAK,EAAE,QAE9B,MAAMhC,EAAO4W,GAAQ,CACnB,WAAY,OACZ,EAAA97B,EACA,EAAAmT,EACA,EAAArT,EACA,EAAGoL,EAAU,QAASgI,CAAO,CAAA,CAC9B,EACK6R,EAAShgB,GAAIquB,EAAKxC,GAAImpB,EAAM7yB,CAAK,CAAC,EAClClC,EAAS2T,GAAKztB,EAAU,QAAS6wD,CAAQ,CAAC,EAC1C92C,EAAa/Z,EAAU,OAAQ,IAAIlM,EAAM,WAAW,EAAG,EAAG,EAAG,CAAC,CAAC,EACrE,IAAIylB,EAASI,GAAc,CACzB,MAAO/Z,GAAY,OAAQ,oBAAoB,EAC/C,MAAAiD,EACA,OAAAgX,EACA,OAAAC,EACA,WAAAC,EACA,KAAAC,CAAA,CACD,EACQ,OAAAT,EAAAg4C,EAAY,YAAYh4C,CAAM,EAChC,CAAE,OAAAA,CAAO,CAClB,EACA,CACE,QAAS,IAAM,CAACwB,EAAY,CAAA,CAEhC,EACA,OAAQ,CAAC,CAAE,KAAA0sB,KAAW,CACpBupB,EAAS,MAAQvpB,EACA8pB,EAAY,OAAO1rB,CAAS,EAC7CA,EAAU,cAAc,CAAA,CAC1B,CACD,EACK0rB,EAAgC,IAAIxrB,GACnC,OAAAF,CACT,CCjFO,MAAM2rB,GAAe,CAC1B,IAAK,IAAI19D,EAAM,KACb,IAAIA,EAAM,QAAQ,GAAI,GAAI,EAAE,EAC5B,IAAIA,EAAM,QAAQ,EAAG,EAAG,CAAC,CAC3B,EACA,QAAS,IACT,cAAe,IAAIA,EAAM,QAAQ,GAAI,GAAI,CAAC,EAAE,UAAU,EACtD,aAAc,IACd,YAAa,IACb,eAAgB,EAChB,OAAQ,IAAIA,EAAM,MAAM,EAAG,EAAG,CAAC,EAC/B,OAAQ,IAAIA,EAAM,MAAM,GAAK,GAAK,CAAC,EACnC,SAAU,KACV,SAAU,KACV,WAAY,IAAIA,EAAM,QAAQ,EAAG,EAAG,CAAC,CACvC,EAEa29D,GAAe,CAC1B,IAAK,IAAI39D,EAAM,KACb,IAAIA,EAAM,QAAQ,GAAI,GAAI,EAAE,EAC5B,IAAIA,EAAM,QAAQ,EAAG,EAAG,CAAC,CAC3B,EACA,QAAS,GACT,cAAe,IAAIA,EAAM,QAAQ,EAAG,GAAI,CAAC,EACzC,aAAc,EACd,YAAa,GACb,eAAgB,EAChB,OAAQ,IAAIA,EAAM,MAAM,EAAG,EAAG,CAAC,EAC/B,OAAQ,IAAIA,EAAM,MAAM,IAAM,IAAM,EAAG,EACvC,SAAU,KACV,SAAU,IACV,WAAY,IAAIA,EAAM,QAAQ,GAAK,EAAG,EAAG,CAC3C,EAqBO,SAAS49D,GAAQ,CAEtB,IAAAf,EAGA,KAAAgB,EAEA,UAAAvmD,EAEA,QAAAwmD,EAGA,WAAAC,EAEA,SAAAC,EAEA,SAAAC,EAEA,cAAAC,EAEA,aAAAC,EAEA,YAAAC,EAGA,eAAAC,EAEA,OAAAC,EAEA,OAAAC,EAEA,QAAArqD,EAEA,QAAAsqD,CACF,EAoBG,CACD3B,EACEA,GACA,IAAI78D,EAAM,KAAK,IAAIA,EAAM,QAAQ,GAAI,GAAI,EAAE,EAAG,IAAIA,EAAM,QAAQ,EAAG,EAAG,CAAC,CAAC,EAC1E,MAAMy+D,GACH5B,EAAI,IAAI,EAAIA,EAAI,IAAI,IAAMA,EAAI,IAAI,EAAIA,EAAI,IAAI,IAAMA,EAAI,IAAI,EAAIA,EAAI,IAAI,GAC3EiB,EAAUA,GAAW,IACrBxmD,EACEA,GAAa,KAAK,IAAI,EAAG,KAAK,IAAI,IAAS,KAAK,MAAMmnD,EAASX,CAAO,CAAC,CAAC,EAEpE,MAAAY,EAAe50C,GAAUk0C,GAAY,IAAK,EAC1CW,EAAe70C,GAAUm0C,GAAY,IAAK,EAC1CW,EAAiB9zC,KACpBizC,GAAA,YAAAA,EAAY,UAAW,IAAI/9D,EAAM,QAAQ,EAAG,EAAG,CAAC,GAAG,UAAU,CAChE,EACM6+D,EAAoB/zC,IACvBozC,GAAiB,IAAIl+D,EAAM,QAAQ,EAAG,GAAI,CAAC,GAAG,UAAU,CAC3D,EACM8+D,EAAmBh1C,GAAUq0C,GAAgB,GAAI,EACjDY,EAAkBj1C,GAAUs0C,GAAe,GAAI,EAC/CY,EAAqBl1C,GAAUu0C,GAAkB,CAAC,EAClDY,EAAan0C,GAASwzC,GAAU,IAAIt+D,EAAM,MAAM,EAAG,EAAG,CAAC,CAAC,EACxDk/D,EAAap0C,GAASyzC,GAAU,IAAIv+D,EAAM,MAAM,GAAK,GAAK,CAAC,CAAC,EAC5Dm/D,EAAcr1C,GAAU5V,GAAW,CAAC,EAEpCgpD,EAAWpzC,GAAU,CAAC,EACtBs1C,EAAet0C,GAAS,IAAI9qB,EAAM,QAAQ,EAAG,EAAG,CAAC,CAAC,EAClDq/D,EAAUv0C,GAAS+xC,EAAI,GAAG,EAC1ByC,EAAUx0C,GAAS+xC,EAAI,GAAG,EAC1B0C,EAAWz1C,GAAU+zC,GAAQ,OAAO,iBAAiB,EACrD2B,EAAS9tC,GAAI4tC,EAASD,CAAO,EAC7BI,EAAO,IAAIjtB,GAAe,CAC9B,UAAAl7B,EACA,UAAWtI,GACT,CAAE,MAAO,KAAM,EACf,CAAE,OAAQkV,CAAO,EACjB,CAAC,CAAE,MAAAnV,EAAA,IAAY,CACb,GAAI,CAACA,GACG,MAAA,IAAI,MAAM,mBAAmB,EAE/B,MAAAyuD,EAASr9B,GAASpxB,EAAK,EACvB2wD,GAAU/iC,GAAM6gC,CAAM,EAAE,QAAQ,EAClC,IAAAtkD,EAAWygB,GAAK6jC,CAAM,EAEtBziB,GAAO5nB,GAAMvB,GAAI8tC,GAASxzD,EAAU,QAAS,GAAG,CAAC,CAAC,EACtD6uC,GAAOlY,GAAIjR,GAAI9lB,GAAY,QAAS,IAAI,EAAGivC,EAAI,CAAC,EACzCA,GAAAh1C,GAAI24D,EAAc9sC,GAAImpB,GAAMrpB,GAAIitC,EAAcD,CAAY,CAAC,CAAC,EAC7D,MAAA14C,EAAS4L,GAAImpB,GAAM6jB,CAAc,EAEjCe,EAAYxsC,GAAMvB,GAAI8tC,GAASxzD,EAAU,QAAS,EAAE,CAAC,CAAC,EACtD26B,EAAM1T,GAAMusC,EAAO,EACnB3+C,EAAQ0T,GAAIwqC,EAAYC,EAAYr4B,CAAG,EACvC1gB,EAAMyL,GAAI7Q,EAAO4+C,CAAS,EAE1BC,GAAUz/B,GACdrD,GAAQ,CACN,WAAY,QACZ,EAAG/tB,GACH,EAAG7C,EAAU,MAAO,IAAM,CAC3B,CAAA,CACH,EACI,IAAA2zD,GAAUlmC,GAAKimC,EAAO,EACtBE,GAAaluC,GAAI+K,GAAMijC,EAAO,EAAE,QAAQ,EAAGZ,CAAkB,EACpDc,GAAA/5D,GAAIm3D,EAAU4C,EAAU,EAE1B5mD,EAAAnT,GAAImT,EAAUkmD,CAAY,EACrC,MAAMW,GAAS7tC,GACbhZ,EACAhN,EAAU,OAAQ,IAAIlM,EAAM,QAAQ,EAAG,EAAG,CAAC,CAAC,CAC9C,EACAkZ,EAAWnT,GAAIs5D,EAASztC,GAAI4tC,EAAQO,EAAM,CAAC,EAErC,MAAA95C,GAAa/Z,EAAU,OAAQ,IAAIlM,EAAM,WAAW,EAAG,EAAG,EAAG,CAAC,CAAC,EAErE6/D,GAAUh9B,GAAI98B,GAAI4zB,GAAKmmC,EAAU,EAAGD,EAAO,CAAC,EAClCA,GAAAjuC,GAAIiuC,GAASd,CAAe,EAClC,IAAAh5C,GAAShgB,GAAImT,EAAU2mD,EAAO,EAE9BG,GAAUrjC,GAAM5W,EAAM,EAAE,QAAQ,EAC1Bi6C,GAAAv9D,GAAI88D,EAAUS,EAAO,EAC/Bj6C,GAAS+W,GAAQ,CAAE,OAAQ/W,GAAQ,EAAGi6C,GAAS,EAE/C,IAAIv6C,GAASI,GAAc,CACzB,MAAO/Z,GAAY,OAAQ,oBAAoB,EAC/C,MAAAiD,GACA,OAAAgX,GACA,OAAAC,EACA,WAAAC,GACA,IAAAE,EACA,QAASg5C,CAAA,CACV,EACQ,OAAA15C,GAAAg4C,EAAY,YAAYh4C,EAAM,EAChC,CAAE,OAAAA,EAAO,CAClB,EACA,CACE,QAAS,IAAM,CAACwB,EAAY,CAAA,CAEhC,EACA,OAAQ,CAAC,CAAE,OAAAmrB,GAAQ,KAAAuB,EAAM,UAAAqF,MAAgB,CACvCkkB,EAAS,MAAQvpB,EACA8pB,EAAY,OAAOgC,CAAI,EAElC,MAAAQ,EAAYpB,EAAkB,MACjC,QACA,eAAeC,EAAiB,MAAQ9lB,EAAS,EACvComB,EAAA,MAAM,IAAIa,CAAS,EAGzB7tB,GAAA,QAAU+sB,EAAY,MAAQ,EAErCX,GAAA,MAAAA,EAAU,CAAE,OAAApsB,GAAQ,KAAAuB,EAAM,UAAAqF,EAAA,GAC1BymB,EAAK,cAAc,CAAA,CACrB,CACD,EACKhC,EAAgC,IAAIxrB,GACnC,MAAA,CACL,KAAAwtB,EACA,IAAKJ,EACL,IAAKC,EACL,KAAMC,EACN,OAAQN,EACR,OAAQC,EACR,QAASC,EACT,aAAcL,EACd,eAAgBE,EAChB,YAAaD,EACb,cAAeF,EACf,SAAUH,EACV,SAAUC,EACV,WAAYC,CACd,CACF,6JChQO,SAASsB,GAAwBC,EAA+B,CACrE,OAAOnxD,GAAU,CAAE,OAAQkV,CAAU,EAAA,CAAE,OAAQA,CAAU,EAAA,CAAC,CAAE,OAAAuB,KAAa,CACvE,GAAI,CAACA,EACG,MAAA,IAAI,MAAM,iBAAiB,EAE/B,IAAA6W,EAASjW,GAAaZ,CAAM,EAE1B,MAAA26C,EAAaD,EAAY,YAAY16C,CAAM,EAC3CoD,EAAalD,GAAYy6C,CAAU,EAAE,QAAQ,OAC7CC,EAAah6C,GAAa+5C,CAAU,EACpCE,EAAWzkC,GAAIhT,EAAYw3C,CAAU,EAErCE,EAAUhqC,GAAiB+pC,EAAUp0D,EAAU,QAAS,CAAC,CAAC,EAChEowB,EAASrF,GAAOspC,EAASjuC,GAAIgK,CAAM,EAAGA,CAAM,EAC5C,MAAMnW,EAAMpgB,GACV6rB,GAAI0K,EAAQpwB,EAAU,QAAS,EAAG,CAAC,EACnCA,EAAU,QAAS,EAAG,CACxB,EAEA,OAAAuZ,EAASI,GAAc,CAAE,OAAAJ,EAAQ,IAAAU,CAAA,CAAK,EAC/B,CAAE,OAAAV,CAAO,CAAA,CACjB,CACH,CAEO,SAAS+6C,GAAoBloB,EAAmB,CACrDA,EAAO,kBAAoB,GAC3BA,EAAO,cAAgB4nB,GAAwB5nB,EAAO,QAAQ,WAAW,EACzEA,EAAO,gBAAgB,CACzB,CC7BO,SAASmoB,GACdN,EACAO,EACAjG,EACAkG,EACA,CACA,OAAO3xD,GAAU,CAAE,OAAQkV,CAAU,EAAA,CAAE,OAAQA,CAAU,EAAA,CAAC,CAAE,OAAAuB,KAAa,CACvE,GAAI,CAACA,EACG,MAAA,IAAI,MAAM,iBAAiB,EAEnC,GAAI,CAAE,OAAAM,CAAW,EAAAJ,GAAYF,CAAM,EAAE,QAC5BM,EAAAo6C,EAAY,MAAMp6C,CAAM,EACjC,KAAM,CAAE,EAAAre,CAAM,EAAAi1B,GAAM5W,CAAM,EAAE,QAC5B,IAAItO,EAAQ4oB,GAAgB/N,GAAI5qB,CAAC,EAAGg5D,EAAUjG,CAAQ,EAC9C,OAAAhjD,EAAAwf,GAAO0pC,EAASjvC,GAAIxlB,EAAU,QAAS,CAAC,EAAGuL,CAAK,EAAGA,CAAK,EAEvDgO,EAAAI,GAAc,CAAE,OAAAJ,EAAQ,EAAGhO,EAAO,EAAGA,EAAO,EAAGA,EAAO,EACxD,CAAE,OAAAgO,CAAO,CAAA,CACjB,CACH,CAEO,SAASm7C,GACdtoB,EACAooB,EACAjG,EACAkG,EACA,CACAroB,EAAO,kBAAoB,GACrB,MAAAuoB,EAAe30D,EAAU,QAASw0D,CAAQ,EAC1CI,EAAe50D,EAAU,QAASuuD,CAAQ,EAC1CsG,EAAc70D,EAAU,OAAQy0D,GAAW,EAAK,EACtD,OAAAroB,EAAO,cAAgBmoB,GACrBnoB,EAAO,QAAQ,YACfuoB,EACAC,EACAC,CACF,EACAzoB,EAAO,gBAAgB,EAChB,CACL,SAAUuoB,EACV,SAAUC,EACV,QAASC,CACX,CACF,kMC6BaC,GAAgC,EAChCC,GAAkC,EAClCC,GAAgC,EAChCC,GAAqC,EACrCC,GAAqC,EAAI,EACzCC,GAAkC,GAElCC,GAA6B,CACxCC,EACAC,IAEA,aAAA,OAAAD,EAAS,WACL,IAAIvhE,EAAM,QACV,IAAIA,EAAM,UACRkB,EAAAqgE,EAAS,OAAT,YAAArgE,EAAe,KAAK,KAAM,KACzBG,EAAAkgE,EAAS,OAAT,YAAAlgE,EAAe,QAAQ,GAAG,QAAS,MACjC8vB,EAAAowC,EAAS,OAAT,YAAApwC,EAAe,QAAQ,GAAG,QAAS,KACtC2rB,EAAAykB,EAAS,OAAT,YAAAzkB,EAAe,KAAK,KAAM,CAC5B,GACO2kB,GAA+B,CAC1CF,EACAC,IAAA,OAEA,OAAAD,EAAS,YACL,IAAIvhE,EAAM,QACV,IAAIA,EAAM,UAAQkB,EAAAqgE,EAAS,QAAT,YAAArgE,EAAgB,KAAK,KAAM,EAAG,EAAG,CAAC,GAC7CwgE,GAA6B,CACxCH,EACAC,IAAA,SAEA,OAAAD,EAAS,YAAc,KAASlgE,GAAAH,EAAAqgE,EAAS,QAAT,YAAArgE,EAAgB,QAAQ,KAAxB,YAAAG,EAA4B,UAAW,IAC5DsgE,GAA6B,CACxCJ,EACAC,IAAA,SAEA,OAAAD,EAAS,YAAc,KAASlgE,GAAAH,EAAAqgE,EAAS,QAAT,YAAArgE,EAAgB,QAAQ,KAAxB,YAAAG,EAA4B,UAAW,IAE7D,IAAAugE,IAAAA,IACVA,EAAA,EAAI,QACJA,EAAA,GAAK,mBACLA,EAAA,GAAK,yBACLA,EAAA,GAAK,uBACLA,EAAA,GAAK,YACLA,EAAA,GAAK,0BACLA,EAAA,GAAK,gCACLA,EAAA,GAAK,oCACLA,EAAA,GAAK,8BACLA,EAAA,GAAK,mBACLA,EAAA,GAAK,2BACLA,EAAA,GAAK,iCACLA,EAAA,GAAK,qCACLA,EAAA,GAAK,+BACLA,EAAA,GAAK,oBACLA,EAAA,GAAK,yBACLA,EAAA,GAAK,+BACLA,EAAA,GAAK,mCACLA,EAAA,GAAK,6BACLA,EAAA,GAAK,kBACLA,EAAA,GAAK,0BACLA,EAAA,GAAK,gCACLA,EAAA,GAAK,oCACLA,EAAA,GAAK,8BACLA,EAAA,GAAK,mBAzBKA,IAAAA,IAAA,CAAA,CAAA,EA4BC,MAAAC,GAAY,OAAO,KAAKD,EAAS,EACjCE,GAAaD,GAAU,OAEvBE,GAA4C,CACvD,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,EACN,EAEaC,GAA6C,CACxD,EAAG,IACH,GAAI,KACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,KACJ,GAAI,MACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,IACJ,GAAI,KACJ,GAAI,MACJ,GAAI,KACN,EAEaC,GAA8B,CACzC,CAAC,IAAK,KAAM,KAAM,KAAM,IAAI,EAC5B,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,IAAI,EAClC,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,IAAI,EAClC,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,IAAI,EAClC,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,IAAI,CACpC,EAEaC,GAAkC,CAC7C,CAAC,EAAG,GAAI,EAAG,CAAC,EACZ,CAAC,EAAG,GAAI,GAAI,EAAG,CAAC,EAChB,CAAC,EAAG,GAAI,GAAI,EAAG,CAAC,EAChB,CAAC,EAAG,GAAI,GAAI,EAAG,CAAC,EAChB,CAAC,EAAG,GAAI,GAAI,EAAG,CAAC,CAClB,EAEaC,GAAwB,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,EACrDC,GAAyB,CAAC,KAAM,KAAM,KAAM,IAAI,EAEjD,IAAAC,IAAAA,IACVA,EAAA,KAAO,OACPA,EAAA,MAAQ,QAFEA,IAAAA,IAAA,CAAA,CAAA,EAIC,MAAAC,GAAQ,OAAO,KAAKD,EAAI,EAE/BE,GACJ,8DAEF,SAASC,IAAsB,CACvB,MAAAC,EAAK,UAAU,WAAa,GAC9B,GAAAF,GAAiB,KAAKE,CAAE,EACnB,MAAA,GAIT,GADsB,WAAW,KAAKA,CAAE,GAAK,UAAU,KAAKA,CAAE,EAErD,MAAA,GAGT,MAAMC,EACJ,UAGA,cACF,OAAIA,GAAU,OAAOA,EAAO,QAAW,UAC9BA,EAAO,OAGT,EACT,CAUO,MAAMC,GAAN,MAAMA,EAAQ,CAiBnB,YAAY30D,EAAyB,CALb,KAAA,sBAAA,EAGxB,KAAA,MAAkB,CAAC,EAGjB,KAAK,SAAWA,EAAQ,SACxB,KAAK,GAAK,UAAU,GACpB,KAAK,KAAO,eACZ,KAAK,UAAYA,EAAQ,UACzB,KAAK,SAAWA,EAAQ,SACnB,KAAA,YAAcA,EAAQ,aAAe,GAC1C,KAAK,YAAcA,EAAQ,YAEnB,QAAA,UACL,KAAK,IAAM,OACN,GAAA,CAAC,KAAK,GAAI,CACZ,KAAK,KAAO,gBACZ,MAAA,CAGF,GAAI,CAACA,EAAQ,eAAiBw0D,KAAuB,CACnD,KAAK,KAAO,gBACZ,MAAA,CAGE,KAAK,cACF,KAAA,MAAQ,CAAC,IAAII,GAAO,QAAY,IAAIA,GAAO,QAAW,GAG7D,IAAIve,EACAwe,EAaJ,GAZI70D,EAAQ,QACVq2C,EAAUr2C,EAAQ,QACTA,EAAQ,UACjBq2C,EAAU,SAAS,eAAer2C,EAAQ,SAAS,GAAK,QAExDq2C,EAAUse,GAAQ,aAAa,EAE7BE,EAAA70D,EAAQ,QAAU,MAAQ,OAAOA,EAAQ,QAAW,UAChD,GACAA,EAAQ,QAGZ,CAACq2C,EACG,MAAA,IAAI,MAAM,+BAA+B,EAGjDA,EAAQ,MAAM,QAAU,OAChBA,EAAA,UAAU,IAAI,QAAQ,EAC9B,KAAK,OAASwe,EACd,KAAK,QAAUxe,EAET,MAAAnwC,GAAUhT,EAAA8M,EAAQ,sBAAR,YAAA9M,EAA6B,WAC7C,OAAIgT,IAAY,SACNmwC,EAAA,iBAAiB,aAAc,IAAM,CAC3CA,EAAQ,MAAM,QAAUnwC,CAAA,CACzB,EACOmwC,EAAA,iBAAiB,aAAc,IAAM,CAC3CA,EAAQ,MAAM,QAAU,EAAA,CACzB,GAGI,KAAK,aAAar2C,CAAO,CAAA,CACjC,EACA,KAAK,IAAM,OACV,OAAO9M,EAAA8M,EAAQ,UAAR,YAAA9M,EAAA,KAAA8M,EAAkB,KAAK,OAAS,gBAAe,CACvD,EACA,MAAO8U,GAAU,CACV,MAAA,+BAA+BA,CAAK,EAAE,CAAA,CAC7C,CAAA,CAGL,MAAc,aAAa9U,EAAyB,SAClD,GAAI,CAAC,KAAK,IAAM,CAAC,KAAK,QACpB,OAEF,MAAMq2C,EAAU,KAAK,QAEfye,EAAQ,CACZ,GAAI,CAAC,cAAc,EACnB,GAAI,CAAC,cAAc,EACnB,KAAM,CAAC,eAAgB,cAAc,EACrC,KAAM,CAAC,eAAgB,cAAc,CAAA,EACrC90D,EAAQ,MAAQ,MAAM,EACxB,GAAI,CAAC80D,EACH,MAAM,IAAI,MAAM,iBAAiB90D,EAAQ,IAAI,EAAE,EAGjD,IAAI+0D,EAAY,KAChB,UAAWzzB,KAAQwzB,EACjB,GAAI,MAAM,KAAK,GAAG,mBAAmBxzB,CAAI,EAAG,CAC9ByzB,EAAAzzB,EACZ,KAAA,CAIJ,GAAI,CAACyzB,EAAW,CACd,KAAK,KAAO,gBACZ,MAAA,CAEF,KAAK,KAAOA,EAEN,MAAAC,EAAqBh1D,EAAQ,oBAAsB,QAEpD,KAAA,SAAS,GAAG,QAAU,GACtB,KAAA,SAAS,GAAG,sBAAsBg1D,CAAkB,EAErDh1D,EAAQ,iBAAmB,QAC7B,KAAK,SAAS,GAAG,aAAaA,EAAQ,cAAc,EAEhD,MAAAi1D,EAAyBj1D,EAAQ,wBAA0B,GAC5D,KAAA,SAAS,GAAG,0BAA0Bi1D,CAAsB,EAEjE,MAAMC,IAAmBhiE,EAAA8M,EAAQ,cAAR,YAAA9M,EAAqB,mBAAoB,CAAC,EAC/D8M,EAAQ,aACVk1D,EAAiB,KAAK,eAAe,EAGvC,MAAMC,IAAmB9hE,EAAA2M,EAAQ,cAAR,YAAA3M,EAAqB,mBAAoB,CAAC,EACnE8hE,EAAiB,KAAKH,CAAkB,EAExC,KAAK,YAAc,CACjB,GAAGh1D,EAAQ,YACX,iBAAAk1D,EACA,iBAAAC,CACF,EAGQ9e,EAAA,iBAAiB,QAAS,IAAM,CACtC,KAAK,SAAS,CAAA,CACf,EAED,KAAK,cAAc,CAAA,CAGrB,MAAM,UAAW,WACf,GAAI,GAAC,KAAK,IAAM,CAAC,KAAK,aAKlB,GAAC,KAAK,QAuCR,KAAK,QAAQ,IAAI,MAtCb,IAAA,CACF,MAAM/U,EAAO,KAAK,KACZ8zB,EAAU,MAAM,KAAK,GAAG,eAAe9zB,EAAM,KAAK,WAAW,EACnE,KAAK,QAAU8zB,EAGf,MAAMC,EAAiB,IAAM,OAClBD,GAAA,MAAAA,EAAA,oBAAoB,MAAOC,GAC3BD,GAAA,MAAAA,EAAA,oBAAoB,mBAAoBE,GACjD,KAAK,QAAU,OAEf,KAAK,cAAc,GACnBpiE,EAAA,KAAK,WAAL,MAAAA,EAAA,UACF,EAEA,IAAIqiE,EAAsBH,EAAQ,gBAClC,MAAME,EAAoB,IAAM,EAE5BF,GAAA,YAAAA,EAAS,mBAAoB,mBAC7BG,IAAwB,YAExBH,GAAA,MAAAA,EAAS,OAEXG,EAAsBH,GAAA,YAAAA,EAAS,eACjC,EAEK,OAAAliE,EAAA,KAAA,UAAA,MAAAA,EAAS,iBAAiB,MAAOmiE,IACjChiE,EAAA,KAAA,UAAA,MAAAA,EAAS,iBAAiB,mBAAoBiiE,GAEnD,MAAM,KAAK,SAAS,GAAG,WAAW,KAAK,OAAO,GAGvCnyC,EAAA,KAAK,YAAL,YAAAA,EAAA,iBACArO,EAAO,CACN,QAAA,MAAM,8BAA+BA,CAAK,EAClD,MAAA,CAKJ,CAGM,eAAgB,CACtB,MAAMwsB,EAAO,KAAK,KACZ+U,EAAU,KAAK,QACrB,GAAIA,EAAS,CACXA,EAAQ,MAAM,QAAU,GAChBA,EAAA,UAAU,OAAO,QAAQ,EAEjC,MAAMwe,EAAS,OAAO,KAAK,QAAW,UAAY,CAAA,EAAK,KAAK,OAC5D,GAAIA,EAAQ,CACN,GAAC,KAAK,QAiBH,CACL,MAAMW,GACHl0B,IAAS,eAAiBuzB,EAAO,WAAaA,EAAO,aACtDA,EAAO,WACHY,GACHn0B,IAAS,eAAiBuzB,EAAO,WAAaA,EAAO,aACtDA,EAAO,WACLW,EACFnf,EAAQ,UAAYmf,EACXC,EACTpf,EAAQ,YAAcof,EAEdpf,EAAA,YACN/U,IAAS,eAAiB,UAAY,SAC1C,KA/BiB,CACjB,MAAMo0B,GACHp0B,IAAS,eACNuzB,EAAO,YACPA,EAAO,cAAgBA,EAAO,YAC9Bc,GACHr0B,IAAS,eACNuzB,EAAO,YACPA,EAAO,cAAgBA,EAAO,YAChCa,EACFrf,EAAQ,UAAYqf,EACXC,EACTtf,EAAQ,YAAcsf,EAEdtf,EAAA,YACN/U,IAAS,eAAiB,WAAa,UAC3C,CAkBF+U,EAAQ,MAAM,QAAU,EAAA,CAC1B,CACF,CAGF,OAAe,cAAe,CACtB,MAAAwe,EAAS,SAAS,cAAc,QAAQ,EACvC,cAAA,OAAOA,EAAO,MAAO,CAC1B,SAAU,WACV,OAAQ,OACR,KAAM,MACN,UAAW,mBACX,QAAS,YACT,OAAQ,iBACR,aAAc,OACd,WAAY,kBACZ,MAAO,OACP,KAAM,uBACN,UAAW,SACX,WAAY,OACZ,OAAQ,KAAA,CACT,EACQ,SAAA,KAAK,YAAYA,CAAM,EACzBA,CAAA,CAGT,aAAc,CACL,MAAA,CAAC,CAAC,KAAK,EAAA,CAehB,MAAO,CACE,OAAA,KAAK,MAAM,CAAC,CAAA,CAGrB,OAAQ,CACC,OAAA,KAAK,MAAM,CAAC,CAAA,CAGrB,kBAAkBjvB,EAAsB,6BACtC,MAAMgwB,EAAchwB,EAAO,OAErBqD,EAAM,YAAY,IAAI,EACtB+B,GAAa/B,GAAO,KAAK,uBAAyBA,IAAQ,IAChE,KAAK,sBAAwBA,EAE7B,MAAM4sB,EAAyB,CAAC,EACrB,UAAAl1D,MAAUzN,EAAA,KAAK,SAAS,GAAG,WAAc,IAA/B,YAAAA,EAA+B,eAAgB,GAAI,CACtE,MAAM4iE,EAAUn1D,EAAO,QAErBm1D,IACCn1D,EAAO,aAAe,QAAUA,EAAO,aAAe,WAE5Ck1D,EAAAl1D,EAAO,UAAU,EAAIm1D,EAC5Bn1D,EAAO,aAAe,OACbk1D,EAAA,WAAa,CAAC,CAACl1D,EAAO,KACxBA,EAAO,aAAe,UACpBk1D,EAAA,YAAc,CAAC,CAACl1D,EAAO,MAEtC,CAGF,MAAM8X,KACJplB,EAAA,KAAK,cAAL,YAAAA,EAAkB,YAAaogE,IAC/BoC,EAAY,IAAI,EASd,GARGp9C,EAAA,SACL,IAAIzmB,EAAM,UACRmxB,EAAA,KAAK,cAAL,YAAAA,EAAkB,cAAe8vC,KACjCnkB,EAAA,KAAK,cAAL,YAAAA,EAAkB,cAAemkB,KACjClkB,EAAA,KAAK,cAAL,YAAAA,EAAkB,YAAamkB,EAAA,CAEnC,EAEIz6C,EAAO,gBAAgB,EAAI,EAAK,CAClCA,EAAO,eAAeuyB,CAAS,EAC/B,MAAM+qB,EAAS,IAAI/jE,EAAM,MAAM,CAACymB,EAAO,EAAG,CAACA,EAAO,EAAGA,EAAO,EAAG,KAAK,EAC9D8wC,EAAO,IAAIv3D,EAAM,WAAW,EAAE,aAAa+jE,CAAM,EAEjDC,EAAQpwB,EAAO,iBAAiB,IAAI5zC,EAAM,OAAS,GAC7C4hD,EAAAgiB,EAAA,SAAA,MAAAhiB,EAAQ,aAAaoiB,GAErBJ,EAAA,SAAS,IAAII,CAAK,EAClBJ,EAAA,SAAS,gBAAgBrM,CAAI,EAC7BqM,EAAA,SAAS,IAAII,CAAK,EAClBJ,EAAA,WAAW,YAAYrM,CAAI,CAAA,CAGnC,MAAA0M,KAAQnhB,EAAA,KAAK,cAAL,YAAAA,EAAkB,UAAWwe,IACzCuC,EACA,IACF,EAEI,IAAAK,IACFrhB,EAAA,KAAK,cAAL,YAAAA,EAAkB,YAAame,MAE9Bhe,EAAA,KAAK,cAAL,YAAAA,EAAkB,UAAW0e,IAC5BmC,EACA,IAAA,IAGWK,GAAA/C,OAGZpe,EAAA,KAAK,cAAL,YAAAA,EAAkB,UAAW4e,IAC5BkC,EACA,IAAA,IAGWK,GAAA9C,KAGXne,EAAA,KAAK,cAAL,MAAAA,EAAkB,YACfghB,EAAA,gBAAgBrwB,EAAO,UAAU,GAC7BsP,EAAA,KAAK,cAAL,MAAAA,EAAkB,gBACbihB,GAAA,kBAAkBvwB,EAAO,WAAY,KAAK,EACxDuwB,GAAc,EAAI,EAClBA,GAAc,EAAI,EAClBC,GAAe,aAAaD,EAAa,EACzCF,EAAK,gBAAgBG,EAAc,GAEhCH,EAAA,gBAAgBL,EAAY,UAAU,EAEtCK,EAAA,eAAejrB,EAAYkrB,CAAS,EAC7BN,EAAA,SAAS,IAAIK,CAAI,CAAA,CAG/B,YAAY,CAAE,QAAAI,GAAiC,CAC7C,MAAMC,EAAY,KAAK,SAAS,GAAG,WAAW,EAC9C,GAAI,CAACA,EACH,OAEF,MAAMC,EAAiB,KAAK,SAAS,GAAG,kBAAkB,EAC1D,GAAKA,GAGAF,EAAQ,aAIF,WAAAG,KAAQ,KAAK,MAClBA,IACFA,EAAK,WAAaA,EAAK,OACvBA,EAAK,OAAS,QAIP,UAAAC,KAAeH,EAAU,aAAc,CAC5C,GAAA,CAACG,EAAY,KACf,SAEF,MAAMD,EAAOC,EAAY,WACnBC,EAAS,KAAK,MAAMF,IAAS,OAAY,EAAI,CAAC,EACpD,GAAKE,EAIL,UAAWC,KAAW9C,GAAW,CAC/B,MAAM+C,EAAaH,EAAY,KAAK,IAAI7C,GAAU+C,CAAO,CAAC,EAC1D,GAAIC,EAAY,CACd,MAAMC,EAAYR,EAAQ,aAAaO,EAAYL,CAAc,EACjE,GAAIM,EAAW,CACb,KAAM,CAAE,SAAA3rD,EAAU,YAAA4rD,CAAY,EAAID,EAAU,UAEvCH,EAAO,SACVA,EAAO,OAAS,CAAC,GAEZA,EAAA,OAAOC,CAAO,EAAI,CACvB,SAAU,IAAI3kE,EAAM,QAAQkZ,EAAS,EAAGA,EAAS,EAAGA,EAAS,CAAC,EAC9D,WAAY,IAAIlZ,EAAM,WACpB8kE,EAAY,EACZA,EAAY,EACZA,EAAY,EACZA,EAAY,CACd,EACA,OAAQ9C,GAAa2C,CAAO,CAC9B,CAAA,CACF,CACF,CACF,EACF,CAGF,gBAAgBH,EAAyB,CACjC,MAAAnsB,EAAO,IAAI0sB,GAAYP,CAAI,EACjC,OAAAnsB,EAAK,QAAU,IAAM,CACnB,MAAMqsB,EAAS,KAAK,MAAMF,IAAS,OAAY,EAAI,CAAC,EAC9CQ,EAASN,GAAA,YAAAA,EAAQ,OACvBrsB,EAAK,aAAa2sB,CAAM,CAC1B,EACO3sB,CAAA,CAGT,cAAc1E,EAAc,SAC1B,MAAMsxB,EAAQ,EACZ/jE,EAAA,KAAK,MAAM,CAAC,IAAZ,YAAAA,EAAe,kBACfG,EAAA,KAAK,MAAM,CAAC,IAAZ,YAAAA,EAAe,gBACjB,EACO,MAAA,CAAE,KAAAsyC,EAAM,MAAAsxB,CAAM,CAAA,CAEzB,EApLEtC,GAAO,UAAYf,GACnBe,GAAO,UAAYd,GACnBc,GAAO,WAAab,GACpBa,GAAO,YAAcZ,GACrBY,GAAO,aAAeX,GACtBW,GAAO,eAAiBV,GACxBU,GAAO,oBAAsBT,GAC7BS,GAAO,WAAaR,GACpBQ,GAAO,YAAcP,GACrBO,GAAO,KAAON,GACdM,GAAO,MAAQL,GAzRV,IAAM4C,GAANvC,GA4cP,MAAMwC,GAAUh6D,GAAkB,KAAK,MAAMA,EAAQ,GAAK,EAAI,IACxDg5D,GAAgB,IAAInkE,EAAM,MAAM,EAAG,EAAG,EAAG,KAAK,EAC9CokE,GAAiB,IAAIpkE,EAAM,WAC3BolE,GAAiB,IAAIplE,EAAM,WAEjB,SAAAqlE,GACdC,EACA3xB,EACsB,CAClB,GAAA,CAAC2xB,EAAU,OACN,OAAA,KAGH,MAAAC,EAAQD,EAAU,CAAC,EACnBE,EAAOF,EAAUA,EAAU,OAAS,CAAC,EAE3C,GAAI3xB,EAAO4xB,EAAM,MAAQ5xB,EAAO6xB,EAAK,KAC5B,OAAA,KAGH,MAAAC,EAAaC,GAAuBJ,EAAW3xB,CAAI,EACzD,GAAI8xB,IAAe,GACV,OAAA,KAGH,MAAA9mC,EAAO2mC,EAAUG,CAAU,EAC3B7mC,EAAK0mC,EAAUG,EAAa,CAAC,EACnC,GAAI,CAAC7mC,EACI,OAAA+mC,GAAchnC,EAAMgV,CAAI,EAG3B,MAAAiyB,EAAOhnC,EAAG,KAAOD,EAAK,KACtBknC,EAASD,EAAO,GAAKjyB,EAAOhV,EAAK,MAAQinC,EAAO,EAEtD,OAAOE,GAAqBnnC,EAAMC,EAAIinC,EAAQlyB,CAAI,CACpD,CAEA,SAASmyB,GACPnnC,EACAC,EACAinC,EACAlyB,EACe,CACT,MAAAoyB,EAAW,KAAK,IAAIpnC,EAAK,MAAM,OAAQC,EAAG,MAAM,MAAM,EACtDqmC,EAAQ,MAAM,KAAK,CAAE,OAAQc,CAAS,EAAG,CAAC95D,EAAG+5D,IACjDC,GAAiBtnC,EAAK,MAAMqnC,CAAS,EAAGpnC,EAAG,MAAMonC,CAAS,EAAGH,CAAM,CACrE,EACO,MAAA,CAAE,KAAAlyB,EAAM,MAAAsxB,CAAM,CACvB,CAEA,SAASU,GAAcO,EAAyBvyB,EAA6B,CACpE,MAAA,CACL,KAAAA,EACA,MAAOuyB,EAAS,MAAM,IAAK1B,GAAS2B,GAAkB3B,CAAI,CAAC,CAC7D,CACF,CAEO,MAAM5B,EAAO,CAKlB,YAAY4B,EAAY,CACtB,KAAK,KAAOA,CAAA,CAGd,OAAO,gBAAgBA,EAAY0B,EAAwB,CACnD,MAAAx0D,EAAI,IAAIkxD,GAAO4B,CAAI,EACzB9yD,EAAE,OAAS,CAAC,EACZ,UAAWizD,KAAW9C,GAAW,CACzB,MAAAuE,EAAQF,EAASvB,CAAO,EACzByB,IAGH10D,EAAA,OAAOizD,CAAO,EAAI,CAClB,SAAU,IAAI3kE,EAAM,QAAQomE,EAAM,IAAI,CAAC,EAAGA,EAAM,IAAI,CAAC,EAAGA,EAAM,IAAI,CAAC,CAAC,EACpE,WAAY,IAAIpmE,EAAM,WACpBomE,EAAM,KAAK,CAAC,EACZA,EAAM,KAAK,CAAC,EACZA,EAAM,KAAK,CAAC,EACZA,EAAM,KAAK,CAAC,CACd,EACA,OAAQA,EAAM,MAChB,EAAA,CAEK,OAAA10D,CAAA,CAGT,OAAQ,CACC,MAAA,CAAC,CAAC,KAAK,MAAA,CAGhB,gBAAiB,CACX,GAAA,CAAC,KAAK,OACD,OAGT,MAAMw0D,EAAyB,CAAC,EAChC,UAAWvB,KAAW9C,GAAW,CACzB,MAAAuE,EAAQ,KAAK,OAAOzB,CAAO,EAC5ByB,IAGLF,EAASvB,CAAO,EAAI,CAClB,IAAKyB,EAAM,SAAS,QAAQ,EAAE,IAAIjB,EAAM,EACxC,KAAMiB,EAAM,WAAW,QAAQ,EAAE,IAAIjB,EAAM,EAC3C,OAAQA,GAAOiB,EAAM,MAAM,CAC7B,EAAA,CAEK,OAAAF,CAAA,CAGT,aAAc,CACR,GAAA,CAAC,KAAK,OACD,OAET,MAAMnxB,EAAQ,IAAI,aAAa,EAAI,GAAK,CAAC,EACzCA,EAAM,CAAC,EAAI,KAAK,OAAS,OAAY,EAAI,EACzC,IAAIhmC,EAAQ,EACZ,UAAW41D,KAAW9C,GAAW,CACzB,MAAAuE,EAAQ,KAAK,OAAOzB,CAAO,EAC7ByB,IACIrxB,EAAAhmC,CAAK,EAAIq3D,EAAM,SAAS,EAC9BrxB,EAAMhmC,EAAQ,CAAC,EAAIq3D,EAAM,SAAS,EAClCrxB,EAAMhmC,EAAQ,CAAC,EAAIq3D,EAAM,SAAS,EAClCrxB,EAAMhmC,EAAQ,CAAC,EAAIq3D,EAAM,WAAW,EACpCrxB,EAAMhmC,EAAQ,CAAC,EAAIq3D,EAAM,WAAW,EACpCrxB,EAAMhmC,EAAQ,CAAC,EAAIq3D,EAAM,WAAW,EACpCrxB,EAAMhmC,EAAQ,CAAC,EAAIq3D,EAAM,WAAW,GAE7Br3D,GAAA,CAAA,CAEJ,OAAAgmC,CAAA,CAEX,CAEA,SAAS2wB,GAAuBJ,EAA4B3xB,EAAc,CACxE,IAAI0yB,EAAM,EACNC,EAAOhB,EAAU,OAAS,EAC9B,KAAOe,GAAOC,GAAM,CACZ,MAAA/V,EAAO8V,EAAMC,GAAS,EACxBhB,EAAU/U,CAAG,EAAE,MAAQ5c,EACzB0yB,EAAM9V,EAAM,EAEZ+V,EAAO/V,EAAM,CACf,CAEK,OAAA+V,CACT,CAEA,SAASL,GACPM,EACAC,EACAX,EAAS,EACT,CACI,GAAA,CAACU,GAAY,CAACC,EACT,OAET,MAAMhC,EAAqB,CAAC,EAC5B,UAAWG,KAAW9C,GAAW,CACzB,MAAAuE,EAAQK,GAAkBF,EAAS5B,CAAO,EAAG6B,EAAO7B,CAAO,EAAGkB,CAAM,EACtEO,IACF5B,EAAKG,CAAO,EAAIyB,EAClB,CAEK,OAAA5B,CACT,CAEA,SAASiC,GACPC,EACAC,EACAd,EAAS,EACT,CACI,GAAA,CAACa,GAAa,CAACC,EACV,OAEH,MAAAriE,EAAMoiE,EAAU,IAAI,IACxB,CAACv7D,EAAO4D,IAAU5D,GAASw7D,EAAQ,IAAI53D,CAAK,EAAI5D,GAAS06D,CAC3D,EACMtO,EAAO6M,GAAe,UAAUsC,EAAU,IAAI,EACjD,MAAMtB,GAAe,UAAUuB,EAAQ,IAAI,EAAGd,CAAM,EACpD,QAAQ,EACLn2B,EACJg3B,EAAU,QAAUC,EAAQ,OAASD,EAAU,QAAUb,EAEpD,MAAA,CAAE,IAAAvhE,EAAK,KAAAizD,EAAM,OAAA7nB,CAAO,CAC7B,CAEA,SAASy2B,GAAkB3B,EAAqB,CAC9C,GAAI,CAACA,EACI,OAET,MAAMoC,EAAsB,CAAC,EAC7B,UAAWjC,KAAW9C,GAAW,CACzB,MAAAuE,EAAQ5B,EAAKG,CAAO,EACtByB,IACIQ,EAAAjC,CAAO,EAAIkC,GAAmBT,CAAK,EAC3C,CAEK,OAAAQ,CACT,CAEA,SAASC,GAAmBT,EAAqC,CACxD,MAAA,CACL,IAAK,CAAC,GAAGA,EAAM,GAAG,EAClB,KAAM,CAAC,GAAGA,EAAM,IAAI,EACpB,OAAQA,EAAM,MAChB,CACF,CAEO,MAAMrB,WAAoB5wB,EAAU,CAGzC,YAAYqwB,EAAY,CACtB,MAAM,CAAA,CAAE,EAIF,KAAA,cAAgB,IAAIxkE,EAAM,QAClC,KAAQ,YAAc,IAAIA,EAAM,WAAW,EAAG,EAAG,EAAG,CAAC,EACrD,KAAQ,cAAgB,IAAIA,EAAM,QAAQ,EAAE,UAAU,GAAI,EAC1D,KAAQ,aAAe,IAAIA,EAAM,MAAM,EAAG,EAAG,CAAC,EAN5C,KAAK,KAAOwkE,CAAA,CAQd,aAAaQ,EAAqB,CAGhC,GAFA,KAAK,QAAU,GAEX,CAACA,GAAU,CAAC,KAAK,aACnB,OAGF,KAAK,QAAU,GACf,IAAI9nB,EAAa,EAEjB,UAAWynB,KAAW9C,GAAW,CACzB,MAAAuE,EAAQpB,EAAOL,CAAO,EAC5B,GAAI,CAACyB,EACH,SAEG,KAAA,cAAc,KAAKA,EAAM,QAAQ,EACjC,KAAA,YAAY,KAAKA,EAAM,UAAU,EACtC,KAAK,cAAc,IACjBA,EAAM,OACN,IAAOA,EAAM,OACb,IAAMA,EAAM,MACd,EAIA,KAAK,aAAa,SAChBlpB,EACA,KAAK,cACL,KAAK,cACL,KAAK,YANS,IAQd,KAAK,YACP,EACcA,GAAA,CAAA,CAGhB,KAAK,aAAa,UAAYA,EAC9B,KAAK,aAAa,YAAc,GAChC,KAAK,UAAYA,EACjB,KAAK,cAAc,CAAA,CAEvB,CCv9BA,MAAM4pB,GAAuB,GACvBC,GAAyB,GACzBC,GAAa,EAEP,IAAApF,IAAAA,IACVA,EAAA,EAAI,QACJA,EAAA,GAAK,mBACLA,EAAA,GAAK,yBACLA,EAAA,GAAK,uBACLA,EAAA,GAAK,YACLA,EAAA,GAAK,0BACLA,EAAA,GAAK,gCACLA,EAAA,GAAK,oCACLA,EAAA,GAAK,8BACLA,EAAA,GAAK,mBACLA,EAAA,GAAK,2BACLA,EAAA,GAAK,iCACLA,EAAA,GAAK,qCACLA,EAAA,GAAK,+BACLA,EAAA,GAAK,oBACLA,EAAA,GAAK,yBACLA,EAAA,GAAK,+BACLA,EAAA,GAAK,mCACLA,EAAA,GAAK,6BACLA,EAAA,GAAK,kBACLA,EAAA,GAAK,0BACLA,EAAA,GAAK,gCACLA,EAAA,GAAK,oCACLA,EAAA,GAAK,8BACLA,EAAA,GAAK,mBAzBKA,IAAAA,IAAA,CAAA,CAAA,EA4BC,MAAAC,GAAY,OAAO,KAAKD,EAAS,EACjCE,GAAaD,GAAU,OAEvBE,GAA4C,CACvD,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,EACN,EAEaC,GAA6C,CACxD,EAAG,IACH,GAAI,IACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,KACJ,GAAI,KACJ,GAAI,MACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,IACJ,GAAI,KACJ,GAAI,MACJ,GAAI,KACN,EAEaC,GAA8B,CACzC,CAAC,IAAK,KAAM,KAAM,KAAM,IAAI,EAC5B,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,IAAI,EAClC,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,IAAI,EAClC,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,IAAI,EAClC,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,IAAI,CACpC,EAEaC,GAAkC,CAC7C,CAAC,EAAG,GAAI,EAAG,CAAC,EACZ,CAAC,EAAG,GAAI,GAAI,EAAG,CAAC,EAChB,CAAC,EAAG,GAAI,GAAI,EAAG,CAAC,EAChB,CAAC,EAAG,GAAI,GAAI,EAAG,CAAC,EAChB,CAAC,EAAG,GAAI,GAAI,EAAG,CAAC,CAClB,EAEaC,GAAwB,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,EACrDC,GAAyB,CAAC,KAAM,KAAM,KAAM,IAAI,EAEjD,IAAAC,IAAAA,IACVA,EAAA,KAAO,OACPA,EAAA,MAAQ,QAFEA,IAAAA,IAAA,CAAA,CAAA,EAIC,MAAAC,GAAQ,OAAO,KAAKD,EAAI,EAW9B,MAAM4E,EAAQ,CAAd,aAAA,CACL,KAAA,MAAqB,CAAC,EACtB,KAAA,KAAoB,CAAC,EAErB,KAAA,OAAiC,CAAC,EAClC,KAAA,MAAiC,CAAC,EAClC,KAAA,UAAqC,CAAC,EAE5B,KAAA,QAAA,EAAA,CAEV,OAAO,CAAE,GAAAC,EAAI,QAAA7C,GAAmD,CACxD,MAAAC,EAAY4C,EAAG,WAAW,EAChC,GAAI,CAAC5C,EACH,OAEI,MAAAC,EAAiB2C,EAAG,kBAAkB,EAC5C,GAAK3C,GAGAF,EAAQ,aAIb,MAAK,KAAO,KAAK,MACjB,KAAK,UAAY,KAAK,MAEtB,KAAK,MAAQ,CAAC,EACd,KAAK,OAAS,CAAC,EACf,KAAK,MAAQ,CAAC,EAEH,UAAAI,KAAeH,EAAU,aAAc,CAC5C,GAAA,CAACG,EAAY,KACf,SAGF,MAAMD,EAAOC,EAAY,WACpB,KAAA,MAAMD,CAAI,EAAI,CAAC,EAGpB,UAAWG,KAAW9C,GAAW,CAC/B,MAAM+C,EAAaH,EAAY,KAAK,IAAI7C,GAAU+C,CAAO,CAAC,EAC1D,GAAIC,EAAY,CACd,MAAMC,EAAYR,EAAQ,aAAaO,EAAYL,CAAc,EACjE,GAAIM,EAAW,CACb,KAAM,CAAE,SAAA3rD,EAAU,YAAA4rD,CAAY,EAAID,EAAU,UAC5C,KAAK,MAAML,CAAI,EAAEG,CAAO,EAAI,CAC1B,SAAU,IAAIwC,GAAQ,QAAAjuD,EAAS,EAAGA,EAAS,EAAGA,EAAS,CAAC,EACxD,WAAY,IAAIkuD,GAAA,WACdtC,EAAY,EACZA,EAAY,EACZA,EAAY,EACZA,EAAY,CACd,EACA,OAAQD,EAAU,QAAU,IAC9B,CAAA,CACF,CACF,CACF,CAGF,UAAWL,KAAQlC,GACN,SAAA,CAAE,IAAA32D,EAAK,MAAAR,IAAW,CAC3B,CAAE,IAAK,GAAGq5D,CAAI,UAAW,MAAO,KAAK,gBAAgBA,CAAI,CAAE,EAC3D,CACE,IAAK,GAAGA,CAAI,aACZ,MAAO,KAAK,SAASA,EAAM,KAAMA,EAAM,IAAI,CAC7C,EACA,CACE,IAAK,GAAGA,CAAI,cACZ,MAAO,KAAK,SAASA,EAAM,KAAMA,EAAM,IAAI,CAC7C,EACA,CACE,IAAK,GAAGA,CAAI,YACZ,MAAO,KAAK,SAASA,EAAM,KAAMA,EAAM,IAAI,CAC7C,EACA,CACE,IAAK,GAAGA,CAAI,aACZ,MAAO,KAAK,SAASA,EAAM,KAAMA,EAAM,IAAI,CAC7C,EACA,CAAE,IAAK,GAAGA,CAAI,UAAW,MAAO,KAAK,gBAAgBA,CAAI,CAAE,CAAA,EAEtD,KAAA,OAAO74D,CAAG,EAAIR,EACnB,KAAK,MAAMQ,CAAG,EACZR,IAAU,EACN,GACAA,IAAU,EACR,GACC,KAAK,UAAUQ,CAAG,GAAK,GAEpC,CAGF,eAA2B,CACnB,MAAAoa,EAAS,IAAIohD,WACbnhD,EAAS,IAAImhD,GAAAA,QAAQ,IAAM,IAAM,GAAI,EACrClhD,EAAa,IAAImhD,GAAA,WAAW,EAAG,EAAG,EAAG,CAAC,EACtCrmD,EAAQ,IAAIsmD,GAAAA,MAAM,EAAG,EAAG,CAAC,EACzBC,EAAQ,KAAK,GAAK,EACV,IAAID,GAAM,MAAA,EAAG,EAAG,CAAC,EAC/B,IAAInzD,EAAU,EAER,MAAAmkC,EAAO,IAAIlE,GAAU,CACzB,QAAS,IAAM,CACT,GAAA,CAACkE,EAAK,aACR,OAEF,IAAI6E,EAAa,EACjB,UAAWqqB,KAAcjF,GAAO,CACxB,MAAAoC,EAAS,KAAK,MAAM6C,CAAU,EACpC,SAAW,CAACx4D,EAAOy4D,CAAO,IAAKvF,GAAe,UAC5C,QAASlhE,EAAI,EAAGA,EAAIymE,EAAQ,OAAQ,EAAEzmE,EAAG,CACvC,MAAM0mE,EAAgBvF,GAAoBnzD,CAAK,EAAEhO,EAAI,CAAC,EAAI,EACpD2mE,EAAc3mE,EAAI,IAAMymE,EAAQ,OAChCG,EAASjD,GAAA,YAAAA,EAAS8C,EAAQzmE,EAAI,CAAC,GAC/B6mE,EAASlD,GAAA,YAAAA,EAAS8C,EAAQzmE,CAAC,GAEjC,QAASE,EAAI,EAAGA,EAAIwmE,EAAe,EAAExmE,EAAG,CAChC,MAAAyE,GAAKzE,EAAI,IAAOwmE,EAEtB,GADUvzD,EAAA,EACNyzD,GAAUC,EAAQ,CACpB7hD,EAAO,KAAK4hD,EAAO,QAAQ,EAAE,KAAKC,EAAO,SAAUliE,CAAC,EACpDugB,EACG,KAAK0hD,EAAO,UAAU,EACtB,MAAMC,EAAO,WAAYliE,CAAC,EAC7B,MAAMmiE,EAAU7F,GAAawF,EAAQzmE,EAAI,CAAC,CAAC,EACrC+mE,EAAU9F,GAAawF,EAAQzmE,CAAC,CAAC,EACvC,IAAI2uC,GAAU,EAAIhqC,GAAKmiE,EAAUniE,EAAIoiE,EACjCJ,GAAehiE,EAAI,KAErBgqC,GAAU,KAAK,KAAK,IAAMhqC,EAAI,IAAO,KAAQ,CAAC,GAEhDsgB,EAAO,IAAI,IAAO0pB,EAAQ,GAAMA,EAAQ,IAAK,EACvC3uB,EAAA,IACJ,IAAO,IAAO,KAAK,IAAIgF,EAAO,EAAIuhD,CAAK,EACvC,IAAO,IAAO,KAAK,IAAIvhD,EAAO,EAAIuhD,CAAK,EACvC,IAAO,IAAO,KAAK,IAAIvhD,EAAO,EAAIuhD,CAAK,CACzC,EACIC,IAAe,SACXxmD,EAAA,IAAI,EAAIA,EAAM,EAAG,EAAIA,EAAM,EAAG,EAAIA,EAAM,CAAC,EAEvC7M,EAAA,GAAA,CAEZmkC,EAAK,aAAa,SAChB6E,EACAn3B,EACAC,EACAC,EACA/R,EACA6M,CACF,EACcm8B,GAAA,CAAA,CAChB,CAEJ,CAEF7E,EAAK,aAAa,UAAY6E,EAC9B7E,EAAK,aAAa,YAAc,GAChCA,EAAK,UAAY6E,EACjB7E,EAAK,cAAc,CAAA,CACrB,CACD,EACM,OAAAA,CAAA,CAGT,SACE0vB,EACAJ,EACAK,EACAJ,EACApC,EAAO,GACC,CACF,MAAAyC,EAAKzC,EAAO,KAAK,KAAKuC,CAAK,EAAI,KAAK,MAAMA,CAAK,EAC/CG,EAAK1C,EAAO,KAAK,KAAKwC,CAAK,EAAI,KAAK,MAAMA,CAAK,EAC/CG,EAAKF,GAAA,YAAAA,EAAKN,GACVS,EAAKF,GAAA,YAAAA,EAAKN,GACZ,MAAA,CAACO,GAAM,CAACC,EACH,OAAO,kBAETD,EAAG,SAAS,WAAWC,EAAG,QAAQ,CAAA,CAG3C,WACEL,EACAJ,EACAK,EACAJ,EACApC,EAAO,GACC,CACR,MAAM5iE,EAAI,KAAK,SAASmlE,EAAOJ,EAAQK,EAAOJ,EAAQpC,CAAI,EACtD,OAAA5iE,IAAM,OAAO,kBACR,OAAO,kBAETA,EAAIo/D,GAAa2F,CAAM,EAAI3F,GAAa4F,CAAM,CAAA,CAGvD,SACEG,EACAJ,EACAK,EACAJ,EACApC,EAAO,GACC,CACR,MAAM5iE,EAAI,KAAK,WAAWmlE,EAAOJ,EAAQK,EAAOJ,EAAQpC,CAAI,EACxD,OAAA5iE,IAAM,OAAO,kBACR,OAAO,kBAET,EAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAGA,EAAI,IAAOokE,EAAU,CAAC,CAAA,CAG3D,gBAAgBxC,EAAYgB,EAAO,GAAe,CAChD,OAAO,KAAK,IACV,KAAK,SAAShB,EAAM,KAAMA,EAAM,KAAMgB,CAAI,EAC1C,KAAK,SAAShB,EAAM,KAAMA,EAAM,KAAMgB,CAAI,EAC1C,KAAK,SAAShB,EAAM,KAAMA,EAAM,KAAMgB,CAAI,EAC1C,KAAK,SAAShB,EAAM,KAAMA,EAAM,KAAMgB,CAAI,CAE5C,CAAA,CAGF,gBAAgBhB,EAAYgB,EAAO,GAAe,CAChD,OAAO,KAAK,IACV,KAAK,SAAShB,EAAM,KAAMA,EAAM,KAAMgB,CAAI,EAC1C,KAAK,SAAShB,EAAM,KAAMA,EAAM,KAAMgB,CAAI,EAC1C,KAAK,SAAShB,EAAM,KAAMA,EAAM,KAAMgB,CAAI,CAC5C,CAAA,CAEJ,CAEO,MAAM6C,EAAa,CAWxB,YAAY,CACV,QAAAC,EACA,QAAAC,EACA,YAAAC,EACA,cAAAC,CAAA,EAMC,CAfH,KAAA,SAAwC,CAAC,EACzC,KAAA,UAAqB,IAAItB,WACR,KAAA,eAAA,EACjB,KAAA,SAAoB,IAAIA,WAatB,KAAK,QAAUmB,EACf,KAAK,QAAUC,EACf,KAAK,YAAcC,GAAe1B,GAClC,KAAK,cAAgB2B,GAAiB1B,EAAA,CAGxC,OAAO/tB,EAAmB,eACxB,MAAM0vB,EAAoC,CAAC,EAC3C,UAAWnB,KAAcjF,GAAO,CAC9B,MAAMkC,EAAO,KAAK,QAAQ,MAAM+C,CAAU,EACtC/C,GAAQ,KAAK,QAAQ,MAAM,GAAG+C,CAAU,aAAa,IAClDmB,EAAAnB,CAAU,EAAI,IAAIJ,GAAA,QAAA,EACpB,MAAIjmE,EAAAsjE,EAAK,KAAL,YAAAtjE,EAAS,WAAY,IAAIimE,UAAS,EACtC,MAAI9lE,EAAAmjE,EAAK,KAAL,YAAAnjE,EAAS,WAAY,IAAI8lE,GAAA,OAAS,EACtC,MAAIh2C,EAAAqzC,EAAK,KAAL,YAAArzC,EAAS,WAAY,IAAIg2C,UAAS,EACtC,MAAIrqB,EAAA0nB,EAAK,KAAL,YAAA1nB,EAAS,WAAY,IAAIqqB,UAAS,EACtC,MAAIpqB,EAAAynB,EAAK,KAAL,YAAAznB,EAAS,WAAY,IAAIoqB,UAAS,EACtC,eAAe,EAAI,CAAC,EACzB,CAGE,GAAAuB,EAAK,MAAQA,EAAK,OAAS,KAAK,SAAS,MAAQ,KAAK,SAAS,MAAO,CAClE,MAAAnY,EAAMmY,EAAK,KAAK,MAAM,EAAE,IAAIA,EAAK,KAAK,EAAE,eAAe,EAAG,EAC1DC,EAAU,KAAK,SAAS,KAC3B,MAAM,EACN,IAAI,KAAK,SAAS,KAAK,EACvB,eAAe,EAAG,EACrB,KAAK,UAAYpY,EAEjB,MAAMqY,EAAQrY,EAAI,MAAA,EAAQ,aAAa,KAAK,QAAQ,MAAM,EACpDqY,EAAA,IAAID,EAAQ,MAAM,EAAE,aAAa,KAAK,QAAQ,MAAM,CAAC,EACrDC,EAAA,eAAe,EAAI5vB,CAAS,EAC7B,KAAA,SAAS,KAAK4vB,EAAO,EAAI,KAAK,IAAI,IAAM5vB,CAAS,CAAC,EAEvD,MAAM6vB,EAAQ,KAAK,MAAMH,EAAK,KAAK,EAAInY,EAAI,EAAGmY,EAAK,KAAK,EAAInY,EAAI,CAAC,EAC3DuY,EAAY,KAAK,MACrB,KAAK,SAAS,KAAK,EAAIH,EAAQ,EAC/B,KAAK,SAAS,KAAK,EAAIA,EAAQ,CACjC,EAEA,IAAII,EAAeF,EAAQC,EACvBC,EAAe,KAAK,GACtBA,GAAgB,KAAK,GAAK,EACjBA,EAAe,CAAC,KAAK,KAC9BA,GAAgB,KAAK,GAAK,GAE5B,MAAMC,EAAiBD,EAAe/vB,EAEhCiwB,EAAQ,KAAK,IAAI,IAAMjwB,CAAS,EACtC,KAAK,eACH,KAAK,eAAiBiwB,EAAQD,GAAkB,EAAIC,EAAA,SAEtD,KAAK,gBAAkB,KAAK,IAAI,CAACjwB,EAAY,KAAK,aAAa,EAE3D0vB,EAAK,MAAQ,KAAK,SAAS,KAAM,CAC7B,MAAAE,EAAQF,EAAK,KAAK,QAAQ,aAAa,KAAK,QAAQ,MAAM,EAC1DE,EAAA,IAAI,KAAK,SAAS,KAAK,QAAQ,aAAa,KAAK,QAAQ,MAAM,CAAC,EAChEA,EAAA,eAAe,EAAI5vB,CAAS,EAC7B,KAAA,SAAS,KAAK4vB,EAAO,EAAI,KAAK,IAAI,IAAM5vB,CAAS,CAAC,CAC9C,SAAA0vB,EAAK,OAAS,KAAK,SAAS,MAAO,CACtC,MAAAE,EAAQF,EAAK,MAAM,QAAQ,aAAa,KAAK,QAAQ,MAAM,EAC3DE,EAAA,IACJ,KAAK,SAAS,MAAM,QAAQ,aAAa,KAAK,QAAQ,MAAM,CAC9D,EACMA,EAAA,eAAe,EAAI5vB,CAAS,EAC7B,KAAA,SAAS,KAAK4vB,EAAO,EAAI,KAAK,IAAI,IAAM5vB,CAAS,CAAC,CAAA,MAElD,KAAA,SAAS,eAAe,KAAK,IAAI,CAACA,EAAY,KAAK,WAAW,CAAC,EAIxE,MAAMkwB,EAAW,KAAK,UAAU,MAAA,EAAQ,OAAO,EACzCziD,EAAS,IAAI0iD,GAAA,QAAA,EAChB,gBAAgBD,CAAQ,EACxB,YAAY,IAAIC,GAAA,QAAA,EAAU,cAAc,KAAK,eAAiBnwB,CAAS,CAAC,EACxE,YAAY,IAAImwB,aAAU,gBAAgB,KAAK,SAAS,CAAC,EACvD,KAAA,QAAQ,OAAO,SAAS1iD,CAAM,EACnC,KAAK,QAAQ,OAAO,UAClB,KAAK,QAAQ,SACb,KAAK,QAAQ,WACb,KAAK,QAAQ,KACf,EACK,KAAA,QAAQ,kBAAkB,EAAI,EAE9B,KAAA,QAAQ,SAAS,IAAI,KAAK,SAAS,MAAM,EAAE,eAAeuyB,CAAS,CAAC,EACzE,KAAK,SAAW0vB,CAAA,CAEpB,CCrdA,MAAMU,GAAyB,EACzBC,GAAqB,EACrBC,GAAuB,KACvBC,GAAsB,KACtBC,GAAuB,MAEvBzC,GAAyB,IACzBD,GAAuB,IACvB2C,GAA0B,GAC1BC,GAA2B,EAE3BC,GAA6B,EAC7BC,GAA8B,IAC9BC,GAA8B,IAG9BC,GAAgB,IAEhBC,GAAwB,IAExBC,GAAwB,GAExBC,GAAqB,KAGrBC,GAAoB,CACxB,KAAM,IAAIlqE,EAAM,QAAQ,EAAG,EAAG,EAAE,EAChC,KAAM,IAAIA,EAAM,QAAQ,EAAG,EAAG,CAAC,EAC/B,KAAM,IAAIA,EAAM,QAAQ,GAAI,EAAG,CAAC,EAChC,KAAM,IAAIA,EAAM,QAAQ,EAAG,EAAG,CAAC,EAC/B,KAAM,IAAIA,EAAM,QAAQ,EAAG,EAAG,CAAC,EAC/B,KAAM,IAAIA,EAAM,QAAQ,EAAG,GAAI,CAAC,CAClC,EAGMmqE,GAAqB,CACzB,QAAS,IAAInqE,EAAM,QAAQ,EAAG,EAAG,EAAE,EACnC,UAAW,IAAIA,EAAM,QAAQ,EAAG,EAAG,CAAC,EACpC,UAAW,IAAIA,EAAM,QAAQ,GAAI,EAAG,CAAC,EACrC,WAAY,IAAIA,EAAM,QAAQ,EAAG,EAAG,CAAC,EACrC,OAAQ,IAAIA,EAAM,QAAQ,EAAG,EAAG,CAAC,EACjC,SAAU,IAAIA,EAAM,QAAQ,EAAG,GAAI,CAAC,CACtC,EAIQ,IAAIA,EAAM,QAAQ,EAAG,EAAG,CAAC,EACzB,IAAIA,EAAM,QAAQ,EAAG,EAAG,EAAE,EAIlC,MAAMoqE,GAAuB,CAC3B,KAAM,IAAIpqE,EAAM,QAAQ,EAAG,GAAI,CAAC,EAChC,IAAK,IAAIA,EAAM,QAAQ,EAAG,EAAG,CAAC,EAC9B,OAAQ,IAAIA,EAAM,QAAQ,GAAI,EAAG,CAAC,EAClC,OAAQ,IAAIA,EAAM,QAAQ,EAAG,EAAG,CAAC,CACnC,EAMO,MAAMqqE,EAAc,CAKzB,YAAY,CAAE,OAAA7xD,GAAyC,CAF5C,KAAA,SAAA,EAGT,KAAK,YAAc,IAAI8xD,GAAY,EAAE,EACrC,KAAK,gBAAkB,IAAIC,GAAgB,CAAE,OAAA/xD,EAAQ,CAAA,CAGvD,OAAO+vD,EAAyB30B,EAAuB,CAC/C,MAAAD,EAAO,YAAY,IAAI,EACvBqF,GAAarF,GAAQ,KAAK,UAAYA,IAAS,IACrD,KAAK,SAAWA,EAEhB,IAAIlD,EAAU,KAAK,YAAY,OAAOuI,EAAWuvB,CAAO,EACxD,OAAI,KAAK,gBAAgB,OAAOvvB,EAAWuvB,EAAS30B,CAAM,IAC9CnD,EAAA,IAELA,CAAA,CAEX,CAYO,MAAM65B,EAAY,CAuBvB,YAAY,CACV,UAAApG,EACA,UAAAsG,EACA,eAAAC,EACA,YAAAC,EACA,mBAAAC,EACA,qBAAAC,EACA,eAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,eAAAC,EACA,GAAA9D,CACF,EA4BI,GAAI,CAhDC,KAAA,OAAA,GACG,KAAA,UAAA,IAAIlnE,EAAM,QAgDpB,KAAK,UAAYkkE,GAAakF,GAC9B,KAAK,UAAYoB,GAAanB,GAC9B,KAAK,eAAiBoB,GAAkBhB,GACxC,KAAK,YAAciB,GAAehB,GAClC,KAAK,mBAAqBiB,GAAsB,CAC9C,GAAGT,GACH,GAAGC,EACL,EACA,KAAK,qBAAuBS,GAAwB,CAElD,GAAGR,EACL,EACA,KAAK,eAAiBS,GAAkB,CACtC,EAAG,WACH,EAAG,YACH,EAAG,OACH,EAAG,OACL,EACA,KAAK,eAAiBC,GAAkB,GACxC,KAAK,gBAAkBC,GAAmB,EACrC,KAAA,eAAiBC,GAAkB,EAAM,EAE9C,KAAK,GAAK9D,EAEV,KAAK,QAAU,CAAC,EAChB,KAAK,QAAU,CAAC,EAEP,SAAA,iBAAiB,UAAYzkD,GAAU,CACzC,KAAA,QAAQA,EAAM,GAAG,EAAI,GACrB,KAAA,QAAQA,EAAM,IAAI,EAAI,EAAA,CAC5B,EACQ,SAAA,iBAAiB,QAAUA,GAAU,CACvC,KAAA,QAAQA,EAAM,GAAG,EAAI,GACrB,KAAA,QAAQA,EAAM,IAAI,EAAI,EAAA,CAC5B,EACM,OAAA,iBAAiB,OAAQ,IAAM,CACpC,KAAK,QAAU,CAAC,EAChB,KAAK,QAAU,CAAC,CAAA,CACjB,CAAA,CAMH,OAAOu2B,EAAmBuvB,EAAyB,SAC7C,GAAA,CAAC,KAAK,OACD,MAAA,GAKH,MAAA0C,EAAS,CAAC,IAAIjrE,EAAM,QAAW,IAAIA,EAAM,OAAS,EAClD8jE,EAAU,UAAU,YAAY,EAAE,CAAC,EACrCA,IACKmH,EAAA,CAAC,EAAE,IAAInH,EAAQ,KAAK,CAAC,EAAGA,EAAQ,KAAK,CAAC,CAAC,EACvCmH,EAAA,CAAC,EAAE,IAAInH,EAAQ,KAAK,CAAC,EAAGA,EAAQ,KAAK,CAAC,CAAC,GAE1C,MAAAoH,GACJpH,GAAA,YAAAA,EAAS,QAAQ,IAAKjB,GAAWA,EAAO,WAAY,CAAC,EAEjDsI,EAAY,MAAM,OAAK9pE,GAAAH,EAAA,KAAK,KAAL,YAAAA,EAAS,eAAT,YAAAG,EAAuB,eAAgB,EAAE,EACtE,UAAWsN,KAAUw8D,EAAW,CAC9B,MAAMrH,EAAUn1D,EAAO,QACvB,GAAIm1D,EACF,OAAQn1D,EAAO,WAAY,CACzB,IAAK,OAAQ,CACXs8D,EAAO,CAAC,EAAE,GAAKnH,EAAQ,KAAK,CAAC,EAC7BmH,EAAO,CAAC,EAAE,GAAKnH,EAAQ,KAAK,CAAC,EAC7BmH,EAAO,CAAC,EAAE,GAAKnH,EAAQ,KAAK,CAAC,EAC7BmH,EAAO,CAAC,EAAE,GAAKnH,EAAQ,KAAK,CAAC,EAC7B,KAAA,CAEF,IAAK,OAAQ,CACXmH,EAAO,CAAC,EAAE,GAAKnH,EAAQ,KAAK,CAAC,EAC7BmH,EAAO,CAAC,EAAE,GAAKnH,EAAQ,KAAK,CAAC,EAC7B,KAAA,CAEF,IAAK,QAAS,CACZmH,EAAO,CAAC,EAAE,GAAKnH,EAAQ,KAAK,CAAC,EAC7BmH,EAAO,CAAC,EAAE,GAAKnH,EAAQ,KAAK,CAAC,EAC7B,KAAA,CACF,CAEJ,CAGF,UAAWsH,KAASH,EACZG,EAAA,EAAI,KAAK,IAAIA,EAAM,CAAC,GAAK,KAAK,eAAiBA,EAAM,EAAI,EACzDA,EAAA,EAAI,KAAK,IAAIA,EAAM,CAAC,GAAK,KAAK,eAAiBA,EAAM,EAAI,EAK3D,MAAA3kD,EAAS,IAAIzmB,EAAM,QACvBirE,EAAO,CAAC,EAAE,EACVA,EAAO,CAAC,EAAE,EACV,CAAA,EACA,eAAe,KAAK,WAAW,EAEtB,SAAA,CAACI,EAASC,CAAG,IAAK,OAAO,QAAQ,KAAK,oBAAoB,EAC/D,KAAK,QAAQD,CAAO,GACtB5kD,EAAO,IAAI6kD,CAAG,EAGP,UAAAzI,KAAU,KAAK,eACxB,GAAIqI,EAAe,OAAO,SAASrI,CAAM,CAAC,EAChC,OAAA,KAAK,eAAeA,CAAM,EAAG,CACnC,IAAK,WACHp8C,EAAO,GAAK,EACZ,MACF,IAAK,YACHA,EAAO,GAAK,EACZ,KAAA,CAKDA,EAAA,SACL,IAAIzmB,EAAM,QAAQ,KAAK,YAAa,KAAK,YAAa,KAAK,SAAS,CACtE,EAEI,IAAAywC,EAAUhqB,EAAO,OAAA,EAAWwjD,GAE5B,GAAAxjD,EAAO,gBAAgB,EAAI,EAAK,CAClCA,EAAO,eAAeuyB,CAAS,EAC/B,MAAM+qB,EAAS,IAAI/jE,EAAM,MAAQ,EAAA,kBAC/BuoE,EAAQ,WACR,KACF,EACAxE,EAAO,GAAKt9C,EAAO,EACnBs9C,EAAO,EAAI,KAAK,IACd,CAAC,KAAK,GAAK,EACX,KAAK,IAAI,KAAK,GAAK,EAAGA,EAAO,EAAIt9C,EAAO,CAAC,CAC3C,EACAs9C,EAAO,EAAI,KAAK,IAAI,CAAC,KAAK,GAAI,KAAK,IAAI,KAAK,GAAIA,EAAO,EAAIt9C,EAAO,CAAC,CAAC,EAC5D8hD,EAAA,WAAW,aAAaxE,CAAM,CAAA,CAKxC,MAAMwH,EAAa,IAAIvrE,EAAM,QAAQirE,EAAO,CAAC,EAAE,EAAG,EAAGA,EAAO,CAAC,EAAE,CAAC,EACrDM,EAAA,IAAI,KAAK,SAAS,EAElB,SAAA,CAACF,EAASpH,CAAI,IAAK,OAAO,QAAQ,KAAK,kBAAkB,EAC9D,KAAK,QAAQoH,CAAO,GACtBE,EAAW,IAAItH,CAAI,EAIvB,IAAIuH,EAAkB,EAClB,KAAK,QAAQ,WACfA,GAAmB,KAAK,iBAEtB,KAAK,QAAQ,WAAa,KAAK,QAAQ,cACzCA,GAAmB,KAAK,kBAEtB,KAAK,QAAQ,aAAe,KAAK,QAAQ,gBAC3CA,GAAmB,KAAK,gBAEf,UAAA3I,KAAU,KAAK,eACxB,GAAIqI,EAAe,OAAO,SAASrI,CAAM,CAAC,EAChC,OAAA,KAAK,eAAeA,CAAM,EAAG,CACnC,IAAK,QACH2I,GAAmB,KAAK,gBACxB,MACF,IAAK,OACHA,GAAmB,KAAK,eACxB,KAAA,CAKJ,OAAAD,EAAW,OAAO,EAAItB,KACdx5B,EAAA,IAID86B,EAAA,gBAAgBhD,EAAQ,UAAU,EAC7CA,EAAQ,SAAS,IACfgD,EAAW,eAAe,KAAK,UAAYC,EAAkBxyB,CAAS,CACxE,EAEOvI,CAAA,CAEX,CAcO,MAAM85B,EAAgB,CA4D3B,YAAY,CAEV,OAAA/xD,EAEA,YAAAkyD,EAGA,WAAAe,EAEA,YAAAC,EAEA,gBAAAC,EAEA,cAAAC,EAEA,aAAAC,EAEA,aAAAC,EAEA,cAAAC,EAEA,YAAAvD,EAEA,cAAAC,EAEA,iBAAAuD,EAEA,YAAAC,EAEA,iBAAAC,EAEA,iBAAAC,EAEA,eAAAC,EAEA,qBAAAC,EAEA,qBAAAC,EAEA,gBAAAC,CAAA,EAwBC,CA7GM,KAAA,OAAA,GA8GP,KAAK,OAAS/zD,EACd,KAAK,YAAckyD,GAAepB,GAClC,KAAK,WAAamC,GAAclC,GAChC,KAAK,YAAcmC,GAAelC,GAClC,KAAK,gBAAkBmC,GAAmB,GAC1C,KAAK,cAAgBC,IAAkB/zD,GAAU,GAAKG,GAAM,GAC5D,KAAK,aAAe6zD,GAAgB,GACpC,KAAK,aAAeC,GAAgB,GACpC,KAAK,cAAgBC,GAAiB,GACtC,KAAK,YAAcvD,GAAe1B,GAClC,KAAK,cAAgB2B,GAAiB1B,GACtC,KAAK,iBAAmBiF,GAAoBrC,GAEvC,KAAA,YAAcsC,IAAgB,IAAM,CAAA,GACzC,KAAK,mBAAqBlC,GAC1B,KAAK,oBAAsBC,GAE3B,KAAK,iBAAmBkC,GAAoBtC,GAC5C,KAAK,iBAAmBuC,GAAoBtC,GAC5C,KAAK,eAAiBuC,GAAkB,EACnC,KAAA,qBACHC,GAAwB,KAAK,eAAiB,EAC3C,KAAA,qBACHC,GAAwB,KAAK,qBAAuB,EACtD,KAAK,gBAAkBC,GAAmB,GAC1C,KAAK,cAAgB,OACrB,KAAK,cAAgB,GACrB,KAAK,OAAS,KACd,KAAK,WAAa,KAElB,KAAK,SAAW,KAChB,KAAK,QAAU,KACf,KAAK,SAAW,KAChB,KAAK,UAAY,GACZ,KAAA,OAAS,IAAIvsE,EAAM,QAEnB,KAAA,eAAiB,IAAIA,EAAM,QAC3B,KAAA,aAAe,IAAIA,EAAM,QAEvBwY,EAAA,iBAAiB,cAAgBiK,GAAwB,CACxD,MAAAvJ,EAAW,KAAK,mBAAmBuJ,CAAK,EACxC+pD,EAAUtzD,EAAS,MAAM,EACzBssD,EAAOtsD,EAAS,MAAM,EAGtBuzD,EACH,CAAC,KAAK,iBACL,CAAC,KAAK,WACLhqD,EAAM,cAAgB,SAAWA,EAAM,SAAW,IACpD,KAAK,iBACJ,KAAK,SACL,CAAC,KAAK,WACLA,EAAM,cAAgB,SAAWA,EAAM,SAAW,GAGjD,CAAE,UAAAiqD,GAAcjqD,EAChBkqD,EAAY,YAAY,IAAI,EAElC,GAAIF,EACF,KAAK,SAAW,CAAE,QAAAD,EAAS,KAAAhH,EAAM,SAAAtsD,EAAU,UAAAwzD,EAAW,UAAAC,CAAU,EAChE,KAAK,SAAW,KAAK,SAEdn0D,EAAA,kBAAkBiK,EAAM,SAAS,EAExC,KAAK,UAAY,WACR,CAAC,KAAK,QAAS,CAGxB,MAAMogD,EAASpgD,EAAM,cAAgB,QAAUA,EAAM,OAAS,OAC9D,KAAK,QAAU,CACb,QAAA+pD,EACA,KAAAhH,EACA,SAAAtsD,EACA,UAAAwzD,EACA,OAAA7J,EACA,UAAA8J,CACF,EACA,KAAK,SAAW,KAAK,QAEdn0D,EAAA,kBAAkBiK,EAAM,SAAS,EAGxC,KAAK,UACH,KAAK,UAAY,MACjBkqD,EAAY,KAAK,SAAS,UAAY7C,EAAA,CAG1C,GAAI,KAAK,OAAQ,CACf,MAAMlwD,EAAW,KAAK,OAAO,SAAS,WAAWV,CAAQ,EACnD0zD,EAAaD,EAAY,KAAK,OAAO,UAC3C,GACE/yD,EAAW,KAAK,qBAChBgzD,EAAa,KAAK,qBAEb,KAAA,cAAgB,YAAY,IAAI,EACrC,KAAK,cAAgB,GAEjB,KAAK,YAAY,CACb,MAAAC,EAAe,KAAK,WAAW,SAAS,WAC5C,KAAK,OAAO,QACd,EACMC,EACJ,KAAK,OAAO,UAAY,KAAK,WAAW,UAExCD,EAAe,KAAK,qBACpBC,EAAiB,KAAK,qBAEtB,KAAK,cAAgB,GACvB,CAEJ,CACF,CACD,EAEK,MAAAC,EAAatqD,GAAwB,WACrCvhB,EAAA,KAAK,WAAL,YAAAA,EAAe,aAAcuhB,EAAM,WACrC,KAAK,SAAW,KACTjK,EAAA,sBAAsBiK,EAAM,SAAS,EACxC,KAAK,WAAa,KAAK,UAClBjK,EAAA,sBAAsB,KAAK,QAAQ,SAAS,EACnD,KAAK,QAAU,SAERnX,EAAA,KAAK,UAAL,YAAAA,EAAc,aAAcohB,EAAM,YAC3C,KAAK,QAAU,KACRjK,EAAA,sBAAsBiK,EAAM,SAAS,EACxC,KAAK,WAAa,KAAK,WAClBjK,EAAA,sBAAsB,KAAK,SAAS,SAAS,EACpD,KAAK,SAAW,OAIpB,KAAK,cAAgB,OACrB,KAAK,cAAgB,GAEf,MAAAU,EAAW,KAAK,mBAAmBuJ,CAAK,EACxCuqD,EAAS,KAAK,OACpB,KAAK,WAAa,KAAK,OACjB,MAAAL,EAAY,YAAY,IAAI,EAGlC,GAFK,KAAA,OAAS,CAAE,SAAAzzD,EAAU,UAAAyzD,CAAU,EAEhCK,GACeA,EAAO,SAAS,WAAW9zD,CAAQ,EACrC,KAAK,oBAAqB,CACjC,MAAA0zD,EAAaD,EAAYK,EAAO,UAClCJ,EAAa,KAAK,oBAGpB,KAAK,YAAY,CAAE,SAAA1zD,EAAU,WAAA0zD,CAAA,CAAY,CAC3C,CAGN,EAES,SAAA,iBAAiB,YAAaG,CAAS,EACvC,SAAA,iBAAiB,gBAAiBA,CAAS,EAE3C,SAAA,iBAAiB,cAAgBtqD,GAAwB,WAC5DvhB,EAAA,KAAK,WAAL,YAAAA,EAAe,aAAcuhB,EAAM,UACrC,KAAK,SAAS,SAAW,KAAK,mBAAmBA,CAAK,IAC7CphB,EAAA,KAAK,UAAL,YAAAA,EAAc,aAAcohB,EAAM,YAC3C,KAAK,QAAQ,SAAW,KAAK,mBAAmBA,CAAK,EACvD,CACD,EAEMjK,EAAA,iBAAiB,cAAgBiK,GAAsB,CAE5DA,EAAM,eAAe,CAAA,CACtB,EAEMjK,EAAA,iBAAiB,QAAUiK,GAAsB,CACtD,KAAK,OAAO,IACV,IAAIziB,EAAM,QAAQyiB,EAAM,OAAQA,EAAM,OAAQA,EAAM,MAAM,CAC5D,EACAA,EAAM,eAAe,CAAA,CACtB,CAAA,CAGH,mBAAmBA,EAAoC,CAC/C,MAAAwqD,EAAO,KAAK,OAAO,sBAAsB,EAC/C,OAAO,IAAIjtE,EAAM,QACfyiB,EAAM,QAAUwqD,EAAK,KACrBxqD,EAAM,QAAUwqD,EAAK,GACvB,CAAA,CAGF,OAAOj0B,EAAmBuvB,EAAyB30B,EAAuB,SACpE,GAAA,CAAC,KAAK,OACD,MAAA,GAGH,MAAAqD,EAAM,YAAY,IAAI,EAC5B,IAAIxG,EAAU,GAEd,GAAI,KAAK,WAAa,KAAK,UAAY,KAAK,QAAS,CAEnD,MAAMy8B,EAAS,CACb,KAAK,SAAS,SAAS,MAAA,EAAQ,IAAI,KAAK,SAAS,IAAI,EACrD,KAAK,QAAQ,SAAS,QAAQ,IAAI,KAAK,QAAQ,IAAI,CACrD,EACMrzD,EAAcqzD,EAAO,CAAC,EAAE,IAAIA,EAAO,CAAC,CAAC,EAE3C,GAAIrzD,GAAe,GAAK,CAEhB,MAAAszD,EAAcD,EAAO,CAAC,EAAE,QAAQ,IAAIA,EAAO,CAAC,CAAC,EAC7CE,EAAQ,IAAIptE,EAAM,QAAQmtE,EAAY,EAAG,CAACA,EAAY,EAAG,CAAC,EAChEC,EAAM,eAAe,KAAK,YAAc,KAAK,aAAe,EAAI,GAAG,EAC7DA,EAAA,gBAAgB7E,EAAQ,UAAU,EAChCA,EAAA,SAAS,IAAI6E,CAAK,EAC1B,KAAK,aAAeA,EAAM,MAAQ,EAAA,eAAe,EAAIp0B,CAAS,EAE1Do0B,EAAM,OAAO,EAAInD,KACTx5B,EAAA,GACZ,SACS52B,GAAe,IAAM,CAExB,MAAAwzD,EAAW,KAAK,QAAQ,KAAK,MAAQ,EAAA,IAAI,KAAK,SAAS,IAAI,EAC3DC,EAAYD,EAAS,OAAO,EAClCA,EAAS,eAAe,EAAIC,CAAS,EAAE,UAAU,EAE3C,MAAAC,EAAW,IAAIvtE,EAAM,QAAQ,CAACqtE,EAAS,EAAGA,EAAS,CAAC,EACpDG,EAAY,CAACN,EAAO,CAAC,EAAE,IAAIG,CAAQ,EAAGH,EAAO,CAAC,EAAE,IAAIG,CAAQ,CAAC,EAC7DI,EAAc,CAACP,EAAO,CAAC,EAAE,IAAIK,CAAQ,EAAGL,EAAO,CAAC,EAAE,IAAIK,CAAQ,CAAC,EAG/DG,EAAW,KAAK,SAAS,KAC5B,MAAM,EACN,IAAI,KAAK,QAAQ,IAAI,EACrB,eAAe,EAAG,EACjB,IAAAC,EAAc,IAAI3tE,EAAM,QAC5B,MAAM4tE,EACJh6B,IAAW20B,aAAmBvoE,EAAM,OAASuoE,EAAU,QACzD,GAAIqF,EAAW,CACP,MAAAC,EAAc,IAAI7tE,EAAM,QAC3B0tE,EAAS,EAAI,KAAK,OAAO,YAAe,EAAI,EAC7C,EAAEA,EAAS,EAAI,KAAK,OAAO,cAAgB,EAAI,CACjD,EACMzsB,EAAY,IAAIjhD,EAAM,UAClBihD,EAAA,cAAc4sB,EAAaD,CAAS,EAC9CD,EAAc1sB,EAAU,IAAI,SAAA,CAE9B,MAAM6sB,EAAWN,EAAU,CAAC,EAAIA,EAAU,CAAC,EACrCJ,EAAQO,EAAY,eAAeG,EAAW,KAAK,UAAU,EAC3DvF,EAAA,SAAS,IAAI6E,CAAK,EAC1B,KAAK,aAAeA,EAAM,MAAQ,EAAA,eAAe,EAAIp0B,CAAS,EAE1Do0B,EAAM,OAAO,EAAInD,KACTx5B,EAAA,IAMZ,MAAMs9B,EAAS,CACb,KAAK,KAAKN,EAAY,CAAC,GAAK,IAAOH,EAAU,EAC7C,KAAK,KAAKG,EAAY,CAAC,GAAK,GAAMH,EAAU,CAC9C,EACM7mD,EAAS,IAAOsnD,EAAO,CAAC,EAAIA,EAAO,CAAC,GAAK,KAAK,iBAC9ChK,EAAS,IAAI/jE,EAAM,MAAQ,EAAA,kBAC/BuoE,EAAQ,WACR,KACF,EACAxE,EAAO,EAAI,KAAK,IACd,CAAC,KAAK,GACN,KAAK,IAAI,KAAK,GAAIA,EAAO,EAAI,GAAMt9C,CAAM,CAC3C,EACQ8hD,EAAA,WAAW,aAAaxE,CAAM,EAElC,KAAK,IAAIt9C,CAAM,EAAIwjD,KACXx5B,EAAA,GACZ,CAGF,KAAK,SAAS,KAAK,KAAK,KAAK,SAAS,QAAQ,EAC9C,KAAK,QAAQ,KAAK,KAAK,KAAK,QAAQ,QAAQ,CAAA,KACvC,CAGC,MAAAhqB,EAAS,IAAIzmB,EAAM,QACzB,GAAI,KAAK,UAAY,CAAC,KAAK,UAAW,CAC9B,MAAA4oE,EAAQ,KAAK,SAAS,SAAS,MAAQ,EAAA,IAAI,KAAK,SAAS,IAAI,EACnE,KAAK,SAAS,KAAK,KAAK,KAAK,SAAS,QAAQ,EAC9CniD,EAAO,IAAImiD,EAAM,EAAGA,EAAM,EAAG,CAAC,EAC9BniD,EAAO,eAAe,KAAK,aAAe,KAAK,cAAgB,GAAK,EAAE,EAEtE,KAAK,eAAiBA,EAAO,MAAQ,EAAA,eAAe,EAAIuyB,CAAS,EAE7DvyB,EAAO,OAAO,EAAIwjD,KACVx5B,EAAA,GACZ,MAGA,KAAK,eAAe,eAClB,KAAK,IAAI,CAACuI,EAAY,KAAK,aAAa,CAC1C,EACOvyB,EAAA,gBAAgB,KAAK,eAAgBuyB,CAAS,EAEjD,KAAK,eAAe,OAAO,EAAI,GAAMixB,KAC7Bx5B,EAAA,IAKd,MAAMszB,EAAS,IAAI/jE,EAAM,MAAQ,EAAA,kBAC/BuoE,EAAQ,WACR,KACF,EASA,GARAxE,EAAO,GAAKt9C,EAAO,EACnBs9C,EAAO,EAAI,KAAK,IACd,CAAC,KAAK,GAAK,EACX,KAAK,IAAI,KAAK,GAAK,EAAGA,EAAO,EAAIt9C,EAAO,CAAC,CAC3C,EACAs9C,EAAO,GAAK,KAAK,IAAI,GAAuB/qB,CAAS,EAC7CuvB,EAAA,WAAW,aAAaxE,CAAM,EAElC,KAAK,SAAW,CAAC,KAAK,UAAW,CAC7B,MAAA6E,EAAQ,KAAK,QAAQ,SAAS,MAAQ,EAAA,IAAI,KAAK,QAAQ,IAAI,EACjE,KAAK,QAAQ,KAAK,KAAK,KAAK,QAAQ,QAAQ,EAGtC,MAAAwE,EACJ,KAAK,QAAQ,SAAW,EACpB,IAAIptE,EAAM,QAAQ4oE,EAAM,EAAG,EAAGA,EAAM,CAAC,EACrC,IAAI5oE,EAAM,QAAQ4oE,EAAM,EAAG,CAACA,EAAM,EAAG,CAAC,EAC5CwE,EAAM,eAAe,KAAK,YAAc,KAAK,aAAe,GAAK,EAAE,EAE7DA,EAAA,gBAAgB7E,EAAQ,UAAU,EAChCA,EAAA,SAAS,IAAI6E,CAAK,EAE1B,KAAK,aAAeA,EAAM,MAAQ,EAAA,eAAe,EAAIp0B,CAAS,EAE1Do0B,EAAM,OAAO,EAAInD,KACTx5B,EAAA,GACZ,KACK,CACC,MAAAsJ,EAAS,IAAI/5C,EAAM,QACrB,GAAA,KAAK,SAAW,KAAK,SAAU,CACjC,MAAMojD,IAAQliD,EAAA,KAAK,WAAL,YAAAA,EAAe,OAAQ,IAAIlB,EAAM,QACzC4tE,EACJh6B,IAAW20B,aAAmBvoE,EAAM,OAASuoE,EAAU,QACzD,GAAIqF,EAAW,CACP,MAAAI,EAAW,KAAK,gBAClB,IAAIhuE,EAAM,QAAQ,EAAG,CAAC,EACtB,IAAIA,EAAM,QACPojD,EAAM,EAAI,KAAK,OAAO,YAAe,EAAI,EAC1C,EAAEA,EAAM,EAAI,KAAK,OAAO,cAAgB,EAAI,CAC9C,EACEnC,EAAY,IAAIjhD,EAAM,UAClBihD,EAAA,cAAc+sB,EAAUJ,CAAS,EAC3C7zB,EAAO,KAAKkH,EAAU,IAAI,SAAS,EAAE,UAAU,CAAA,CAG7C,GAAC,KAAK,cA8BH,CACL,KAAK,UAAY,GACjB,IAAI0e,GACD,YAAY,IAAQ,EAAA,KAAK,eAAiB,KAAK,iBAClDA,EAAY,KAAK,IAAI,EAAG,KAAK,IAAI,EAAGA,CAAS,CAAC,EACvC5lB,EAAA,gBACJ,KAAK,cACF,KAAK,qBACL,KAAK,sBAAwB4lB,CACnC,CAAA,KAvCuB,CACvB,IAAIA,EAAY,EACZ,KAAK,WACPA,GACG1oB,KACE51C,EAAA,KAAK,WAAL,YAAAA,EAAe,YAAa41C,GAC7B,KAAK,kBACP,KAAK,iBAGL,KAAK,SAAS,SAAS,WAAW,KAAK,SAAS,OAAO,EACvD,KAAK,oBAED,KAAK,YAAc,QACjB0oB,EAAY,IACd,KAAK,UAAY,IAGZ,KAAK,YAAc,SAC5B,KAAK,UAAY,KAIjB,KAAK,UACA5lB,EAAA,eACL,KAAK,eAAiB,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG4lB,CAAS,CAAC,CAC1D,EAEO5lB,EAAA,IAAI,EAAG,EAAG,CAAC,CACpB,CAWF,MAEA,KAAK,UAAY,OAGnB,MAAMn4C,EAAI,KAAK,IAAI,CAACo3C,EAAY,KAAK,WAAW,EAChD,KAAK,aAAa,YAAYe,EAAQ,KAAK,aAAcn4C,CAAC,EAC1D2mE,EAAQ,SAAS,gBAAgB,KAAK,aAAcvvB,CAAS,EAEzD,KAAK,aAAa,OAAO,EAAI,GAAMixB,KAC3Bx5B,EAAA,GACZ,CACF,CAGF,MAAMw9B,EAAS,KAAK,OAAO,eAAe,KAAK,WAAW,EAC1D,OAAAA,EAAO,IAAIA,EAAO,EAAGA,EAAO,EAAGA,EAAO,CAAC,EACnC,KAAK,eACPA,EAAO,eAAe,EAAE,EAEnBA,EAAA,gBAAgB1F,EAAQ,UAAU,EACjCA,EAAA,SAAS,IAAI0F,CAAM,EAEvBA,EAAO,OAAO,EAAIhE,KACVx5B,EAAA,IAEZ,KAAK,OAAO,IAAI,EAAG,EAAG,CAAC,EAEhBA,CAAA,CAEX,CCn4BO,MAAMy9B,GAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqLpC,MAAMC,EAAa,CAqDxB,YAAYngE,EAA8B,CAnC1C,KAAA,YAA4B,CAAC,EAO7B,KAAQ,gBAAkB,IAAIhO,EAAM,UAAU,UAAU,OAAO,GAAG,EAElE,KAAQ,eAAiB,GAGzB,KAAQ,QAAU,CAChB,KAAM,IAAIA,EAAM,WAChB,MAAO,IAAIA,EAAM,QACjB,QAAS,IAAIA,EAAM,QACnB,QAAS,IAAIA,EAAM,QACnB,QAAS,IAAIA,EAAM,QACnB,QAAS,IAAIA,EAAM,QACnB,QAAS,IAAIA,EAAM,QACnB,QAAS,IAAIA,EAAM,QACnB,gBAAiB,IAAIA,EAAM,QAC3B,gBAAiB,IAAIA,EAAM,QAC3B,IAAK,IAAIA,EAAM,QACf,OAAQ,IAAIA,EAAM,QAClB,SAAU,IAAIA,EAAM,QACpB,YAAa,IAAIA,EAAM,QACvB,YAAa,IAAIA,EAAM,QACvB,cAAe,IAAIA,EAAM,QACzB,eAAgB,IAAIA,EAAM,QAC1B,QAAS,IAAIA,EAAM,QACnB,aAAc,IAAIA,EAAM,QACxB,SAAU,IAAIA,EAAM,OACtB,EAGE,KAAK,SAAWgO,EAAQ,SACxB,KAAK,MAAQA,EAAQ,MACrB,KAAK,OAASA,EAAQ,OACtB,KAAK,WAAaA,EAAQ,WACrB,KAAA,oBAAsBA,EAAQ,qBAAuB,EACrD,KAAA,eAAiBA,EAAQ,gBAAkB,KAE1C,MAAAogE,EAAYpgE,EAAQ,cAAgB,CAAC,EAGtC,KAAA,eAAiB,IAAIytC,GAAc,CACtC,SAAU,KAAK,SACf,cAAe,CACb,WAAY,CAAE,MAAO,IAAIz7C,EAAM,OAAU,EACzC,WAAY,CAAE,MAAO,IAAIA,EAAM,OAAU,EACzC,WAAY,CAAE,MAAO,CAAE,EACvB,aAAc,CAAE,MAAO,EAAM,CAC/B,EACA,eAAgBkuE,GAChB,GAAGE,CAAA,CACJ,EACI,KAAA,MAAM,IAAI,KAAK,cAAc,EAK7B,KAAA,eAAiB,IAAI3yB,GAAc,CACtC,SAAU,KAAK,SACf,eAAgB,GAChB,GAAG2yB,CAAA,CACJ,EAGI,KAAA,QAAU,KAAK,OAAO,MAAM,EAC5B,KAAA,MAAM,IAAI,KAAK,OAAO,CAAA,CAQ7B,cAAcpgE,EAGC,CACb,MAAMqgE,EAAmB,CACvB,YAAa,IAAIruE,EAAM,SACvB,WAAY,IAAIA,EAAM,SACtB,QAAQgO,GAAA,YAAAA,EAAS,SAAU,KAAK,oBAChC,QAASA,GAAA,YAAAA,EAAS,QAClB,aAAc,IAAIhO,EAAM,QACxB,YAAa,IAAIA,EAAM,OACzB,EAEK,YAAA,MAAM,IAAIquE,EAAK,WAAW,EAC1B,KAAA,MAAM,IAAIA,EAAK,UAAU,EACzB,KAAA,YAAY,KAAKA,CAAI,EAEnBA,CAAA,CAMT,iBAAiBA,EAAwB,CACvC,MAAMt/D,EAAQ,KAAK,YAAY,QAAQs/D,CAAI,EACvCt/D,IAAU,KACP,KAAA,MAAM,OAAOs/D,EAAK,WAAW,EAC7B,KAAA,MAAM,OAAOA,EAAK,UAAU,EAC5B,KAAA,YAAY,OAAOt/D,EAAO,CAAC,EAClC,CAMF,wBAAwBs/D,EAAiC,CAChD,OAAAA,EAAK,YAAY,YACrB,MAAM,EACN,OACA,EAAA,YAAYA,EAAK,WAAW,WAAW,CAAA,CAM5C,wBAAwBA,EAAiC,CAChD,OAAAA,EAAK,WAAW,YACpB,MAAM,EACN,OACA,EAAA,YAAYA,EAAK,YAAY,WAAW,CAAA,CAIrC,sBACNz6B,EACA06B,EACA5+B,EACA6+B,EACM,CACN36B,EAAO,kBAAkB,EAAI,EAC7B06B,EAAO,kBAAkB,EAAI,EAE7B,MAAME,EAAgB56B,EAAO,YAAY,MAAA,EAAQ,OAAO,EAClD66B,EAAiBH,EAAO,YAC3B,MAAM,EACN,YAAYE,CAAa,EACtBE,EAAa,IAAI1uE,EAAM,WAGvBuN,EAAW,KAAK,eACnB,SAOYkhE,EAAA,UACblhE,EAAS,WAAW,MACpBmhE,EACA,IAAI1uE,EAAM,OACZ,EAESuN,EAAA,WAAW,MAAM,IAAI,EAAG,EAAG,CAAC,EAAE,gBAAgBmhE,CAAU,EACjEnhE,EAAS,WAAW,MAAQmiC,EAC5BniC,EAAS,aAAa,MAAQghE,CAAA,CAIxB,eACNjd,EACAqd,EACAC,EACM,CACNtd,EAAO,UAAUqd,EAAW,KAAK,QAAQ,KAAM,KAAK,QAAQ,KAAK,EACvDC,EAAA,IAAI,EAAG,EAAG,CAAC,EAAE,gBAAgB,KAAK,QAAQ,IAAI,EAAE,UAAU,CAAA,CAO9D,uBACNC,EACAC,EACAC,EACAC,EACAt/B,EACe,CACV,KAAA,eACHq/B,EACA,KAAK,QAAQ,QACb,KAAK,QAAQ,OACf,EACK,KAAA,eACHC,EACA,KAAK,QAAQ,QACb,KAAK,QAAQ,OACf,EAEA,MAAMC,EAAiB,KAAK,QAAQ,OACjC,KAAKJ,CAAO,EACZ,IAAI,KAAK,QAAQ,OAAO,EACxB,IAAI,KAAK,QAAQ,OAAO,EACrBK,EAAe,KAAK,QAAQ,OAC/B,KAAKJ,CAAO,EACZ,IAAI,KAAK,QAAQ,OAAO,EACxB,IAAI,KAAK,QAAQ,OAAO,EAE3B,GACGG,EAAiB,KAAK,gBACrBC,EAAe,KAAK,gBACrBD,EAAiB,CAAC,KAAK,gBACtBC,EAAe,CAAC,KAAK,eAEhB,OAAA,KAGT,MAAMC,EAAQF,EAAiBC,EAC/B,GAAI,KAAK,IAAIC,CAAK,EAAI,KAAK,eAAuB,OAAA,KAElD,MAAMzpE,EAAIupE,EAAiBE,EAkB3B,OAjBIzpE,EAAI,GAAKA,EAAI,IAEjB,KAAK,QAAQ,IAAI,YAAYmpE,EAASC,EAASppE,CAAC,EAC3C,KAAA,QAAQ,QACV,KAAK,KAAK,QAAQ,OAAO,EACzB,KAAK,KAAK,QAAQ,QAASA,CAAC,EAC/B,KAAK,QAAQ,QACV,KAAK,KAAK,QAAQ,OAAO,EACzB,KAAK,KAAK,QAAQ,QAASA,CAAC,EAC5B,UAAU,EAER,KAAA,QAAQ,OAAO,KAAK,KAAK,QAAQ,GAAG,EAAE,IAAI,KAAK,QAAQ,OAAO,EACnE,KAAK,QAAQ,OAAO,gBAClB,KAAK,QAAQ,QACb,CAAC,KAAK,QAAQ,OAAO,IAAI,KAAK,QAAQ,OAAO,CAC/C,EAEI,KAAK,QAAQ,OAAO,WAAagqC,EAASA,GAAe,KACtDhqC,CAAA,CAID,SAASwsC,EAAgC,CAC/C,KAAK,QAAQ,SAAS,KAAK,KAAK,OAAO,WAAW,EAC7C,KAAA,QAAQ,YAAY,KAAK,KAAK,QAAQ,QAAQ,EAAE,YAAYA,CAAS,EAC1E,KAAK,QAAQ,YAAY,KAAK,KAAK,OAAO,MAAM,EAAE,OAAO,EACpD,KAAA,QAAQ,cACV,KAAK,KAAK,QAAQ,WAAW,EAC7B,SAAS,KAAK,QAAQ,WAAW,EAEpC,KAAK,QAAQ,cAAc,UACzB,KAAK,WAAW,SAChB,KAAK,WAAW,WAChB,KAAK,WAAW,KAClB,EACK,KAAA,WAAW,kBAAkB,EAAI,EACjC,KAAA,OAAO,kBAAkB,EAAI,CAAA,CAQpC,qBAA4B,CACtB,GAAA,KAAK,YAAY,SAAW,EAAG,OAGnC,GADA,KAAK,OAAO,iBAAiB,KAAK,QAAQ,eAAe,EACrD,CAAC,OAAO,SAAS,KAAK,gBAAgB,CAAC,EAAG,CAC5C,KAAK,gBAAgB,KAAK,KAAK,QAAQ,eAAe,EACtD,MAAA,CAGF,KAAK,QAAQ,gBAAgB,KAAK,KAAK,eAAe,EAGtD,IAAIk9B,EAA2B,KAC3BC,EAAiC,KACjCC,EAAe,GAER,UAAAjB,KAAQ,KAAK,YAAa,CAC9BA,EAAA,YAAY,kBAAkB,EAAI,EAClCA,EAAA,WAAW,kBAAkB,EAAI,EACtCA,EAAK,aAAa,KAAKA,EAAK,YAAY,WAAW,EACnDA,EAAK,YAAY,KAAKA,EAAK,WAAW,WAAW,EAGjD,MAAMkB,EAAS,KAAK,uBAClB,KAAK,QAAQ,gBACb,KAAK,QAAQ,gBACblB,EAAK,aACLA,EAAK,YAAY,YACjBA,EAAK,MACP,EAEIkB,IAAW,OAASH,IAAc,MAAQG,EAASH,KACzCA,EAAAG,EACEF,EAAAhB,EACCiB,EAAA,IAIjB,MAAME,EAAQ,KAAK,uBACjB,KAAK,QAAQ,gBACb,KAAK,QAAQ,gBACbnB,EAAK,YACLA,EAAK,WAAW,YAChBA,EAAK,MACP,EAEImB,IAAU,OAASJ,IAAc,MAAQI,EAAQJ,KACvCA,EAAAI,EACEH,EAAAhB,EACCiB,EAAA,GACjB,CAIF,GAAID,IAAgB,KAAM,CACxB,KAAK,gBAAgB,KAAK,KAAK,QAAQ,eAAe,EACtD,MAAA,CAIEC,EACF,KAAK,SAAS,KAAK,wBAAwBD,CAAW,CAAC,EAEvD,KAAK,SAAS,KAAK,wBAAwBA,CAAW,CAAC,EAGpD,KAAA,OAAO,iBAAiB,KAAK,eAAe,EAG7CA,EAAY,SAGd,QAAQ,QAAQA,EAAY,QAAQA,EAAaC,CAAY,CAAC,EAAE,MAC7DxsD,GAAU,CACD,QAAA,MAAM,oCAAqCA,CAAK,CAAA,CAE5D,CACF,CAOM,mBAKC,CACP,GAAI,KAAK,YAAY,SAAW,EAAU,OAAA,KAE1C,KAAK,OAAO,iBAAiB,KAAK,QAAQ,cAAc,EACxD,KAAK,OAAO,kBAAkB,KAAK,QAAQ,OAAO,EAElD,IAAI2sD,EAAY,OAAO,kBACnBC,EAA8B,KAC9BC,EAAc,GAEP,UAAAtB,KAAQ,KAAK,YAAa,CAEnCA,EAAK,YAAY,iBAAiB,KAAK,QAAQ,YAAY,EACtD,KAAA,QAAQ,SACV,KAAK,KAAK,QAAQ,YAAY,EAC9B,IAAI,KAAK,QAAQ,cAAc,EAClC,MAAMuB,EAAY,KAAK,QAAQ,SAAS,OAAO,EACzCC,EACJ,KAAK,QAAQ,SAAS,YAAY,IAAI,KAAK,QAAQ,OAAO,EAAID,EAE5DC,EAAaJ,IACHA,EAAAI,EACDH,EAAArB,EACGsB,EAAA,IAIhBtB,EAAK,WAAW,iBAAiB,KAAK,QAAQ,YAAY,EACrD,KAAA,QAAQ,SACV,KAAK,KAAK,QAAQ,YAAY,EAC9B,IAAI,KAAK,QAAQ,cAAc,EAClC,MAAMyB,EAAW,KAAK,QAAQ,SAAS,OAAO,EACxCC,EACJ,KAAK,QAAQ,SAAS,YAAY,IAAI,KAAK,QAAQ,OAAO,EAAID,EAE5DC,EAAYN,IACFA,EAAAM,EACDL,EAAArB,EACGsB,EAAA,GAChB,CAGE,OAACD,EAEE,CACL,KAAMA,EACN,eAAgBC,EAChB,cAAeA,EAAcD,EAAS,YAAcA,EAAS,WAC7D,YAAaC,EAAcD,EAAS,WAAaA,EAAS,WAC5D,EAPsB,IAOtB,CAQF,QAAe,CACP,MAAAM,EAAU,KAAK,kBAAkB,EAGvC,GAAI,CAACA,EAAS,CACR,KAAK,iBAEP,KAAK,eAAiB,IAExB,KAAK,SAAS,UAAY,GAC1B,KAAK,SAAS,OAAO,KAAK,MAAO,KAAK,MAAM,EAC5C,MAAA,CAGG,KAAK,iBAER,KAAK,eAAiB,IAGxB,KAAM,CAAE,KAAA3B,EAAM,eAAA4B,EAAgB,cAAAC,EAAe,YAAAC,CAAgB,EAAAH,GAGvCC,EAClB,KAAK,OAAO,YACT,MAAM,EACN,YAAY,KAAK,wBAAwB5B,CAAI,CAAC,EACjD,KAAK,OAAO,YACT,QACA,YAAY,KAAK,wBAAwBA,CAAI,CAAC,GACvC,UACZ,KAAK,QAAQ,SACb,KAAK,QAAQ,WACb,KAAK,QAAQ,KACf,EACK,KAAA,QAAQ,kBAAkB,EAAI,EAKnC,KAAK,kBAAkB,EAGvB,KAAK,sBAAsB,KAAK,QAAS8B,EAAa9B,EAAK,OAAQ,EAAI,EACvE,KAAK,SAAS,UAAY,GAC1B,KAAK,eAAe,OAAO,KAAK,MAAO,KAAK,OAAO,EAGnD,KAAK,sBAAsB,KAAK,OAAQ6B,EAAe,CAAC7B,EAAK,OAAQ,EAAI,EACzE,KAAK,SAAS,UAAY,GAC1B,KAAK,eAAe,OAAO,KAAK,MAAO,KAAK,MAAM,CAAA,CAO5C,mBAA0B,CAE3B,KAAA,eAAe,aAAa,MAAM,EACvC,SAAW,CAACh2B,EAAMpxC,CAAI,IAAK,KAAK,eAAe,aAC7C,KAAK,eAAe,aAAa,IAAIoxC,EAAMpxC,CAAI,CACjD,CAOF,iBAAwB,CACtB,KAAK,oBAAoB,EACzB,KAAK,OAAO,CAAA,CAId,aAAampE,EAAsB,CACjC,KAAK,QAAQ,OAASA,EACtB,KAAK,QAAQ,uBAAuB,CAAA,CAItC,SAAgB,CACT,KAAA,MAAM,OAAO,KAAK,cAAc,EAChC,KAAA,MAAM,OAAO,KAAK,OAAO,EAEnB,UAAA/B,KAAQ,KAAK,YACjB,KAAA,MAAM,OAAOA,EAAK,WAAW,EAC7B,KAAA,MAAM,OAAOA,EAAK,UAAU,EAEnC,KAAK,YAAc,CAAC,EAEpB,KAAK,eAAe,QAAQ,EAC5B,KAAK,eAAe,QAAQ,CAAA,CAEhC","x_google_ignoreList":[1]} \ No newline at end of file +{"version":3,"file":"spark.cjs.min.js","sources":["../src/defines.ts","../src/dyno/types.ts","../src/dyno/value.ts","../src/dyno/base.ts","../src/dyno/splats.ts","../src/dyno/output.ts","../src/dyno/uniforms.ts","../node_modules/fflate/esm/browser.js","../src/utils.ts","../src/dyno/program.ts","../src/dyno/mathTypes.ts","../src/dyno/math.ts","../src/dyno/logic.ts","../src/dyno/convert.ts","../src/dyno/vecmat.ts","../src/dyno/util.ts","../src/dyno/transform.ts","../src/dyno/control.ts","../src/dyno/texture.ts","../src/dyno/trig.ts","../src/shaders/computeUvec4.glsl","../src/shaders/computeUvec4_Vec4.glsl","../src/shaders/computeUvec4x2_Vec4.glsl","../src/shaders/computeVec4.glsl","../src/shaders/splatDefines.glsl","../src/shaders/splatFragment.glsl","../src/shaders/splatVertex.glsl","../src/shaders.ts","../src/Readback.ts","../src/SplatEdit.ts","../src/SplatGenerator.ts","../rust/spark-rs/pkg/spark_rs.js","../virtual:decode-64","../src/wasm.ts","../src/SplatWorker.ts","../src/PackedSplats.ts","../src/SplatLoader.ts","../src/ExtSplats.ts","../src/RgbaArray.ts","../src/SplatPager.ts","../src/SplatMesh.ts","../src/SplatAccumulator.ts","../src/SplatGeometry.ts","../src/SparkRenderer.ts","../src/ply.ts","../src/antisplat.ts","../src/ksplat.ts","../src/spz.ts","../src/SplatSkinning.ts","../src/splatConstructors.ts","../src/generators/static.ts","../src/generators/snow.ts","../src/modifiers/normalColor.ts","../src/modifiers/depthColor.ts","../src/SparkXr.ts","../src/hands.ts","../src/controls.ts","../src/SparkPortals.ts"],"sourcesContent":["// LN_SCALE_MIN..LN_SCALE_MAX define the internal scale range of for Gsplats,\n// covering approx 0.0001..8000 in range with discrete steps 7% apart.\n// The value \"0\" is reserved for truly flat scales, indicating a 2DGS.\n// If these values are changed, the corresponding values in splatDefines.glsl\n// must also be updated to match.\n\nexport const LN_SCALE_MIN = -12.0;\nexport const LN_SCALE_MAX = 9.0;\nexport const SCALE_MIN = Math.exp(LN_SCALE_MIN);\nexport const SCALE_MAX = Math.exp(LN_SCALE_MAX);\n\nexport const LN_SCALE_ZERO = -30.0;\nexport const SCALE_ZERO = Math.exp(LN_SCALE_ZERO);\n\n// Gsplats are stored in textures that are 2^11 x 2^11 x up to 2^11\n// Most WebGL2 implementations support 2D textures up to 2^12 x 2^12 (max 16M Gsplats)\n// 2D array textures and 3D textures up to 2^11 x 2^11 x 2^11 (max 8G Gsplats),\n// so we use 2D array textures for our representation for higher limits.\n\nexport const SPLAT_TEX_WIDTH_BITS = 11;\nexport const SPLAT_TEX_HEIGHT_BITS = 11;\nexport const SPLAT_TEX_DEPTH_BITS = 11;\nexport const SPLAT_TEX_LAYER_BITS =\n SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nexport const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS; // 2048\nexport const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS; // 2048\nexport const SPLAT_TEX_DEPTH = 1 << SPLAT_TEX_DEPTH_BITS; // 2048\nexport const SPLAT_TEX_MIN_HEIGHT = 1;\n\nexport const SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1;\nexport const SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1;\nexport const SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1;\n\n// Enable/disable Gsplat sorting via Rust WASM code. In testing the sorting\n// time between pure JS and WASM are minimal and don't make a big difference.\n\nexport const WASM_SPLAT_SORT = true;\n\n// Enable/disable compiling a dedicated parse function per element type\n// in the plyReader.\n\nexport const USE_COMPILED_PARSER_FUNCTION = true;\n\nexport enum SplatFileType {\n PLY = \"ply\",\n SPZ = \"spz\",\n SPLAT = \"splat\",\n KSPLAT = \"ksplat\",\n PCSOGS = \"pcsogs\",\n PCSOGSZIP = \"pcsogszip\",\n RAD = \"rad\",\n}\n\nexport type SplatEncoding = {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n sh1Max?: number;\n sh2Max?: number;\n sh3Max?: number;\n lodOpacity?: boolean;\n};\n\nexport const DEFAULT_SPLAT_ENCODING: SplatEncoding = {\n rgbMin: 0,\n rgbMax: 1,\n lnScaleMin: LN_SCALE_MIN,\n lnScaleMax: LN_SCALE_MAX,\n sh1Max: 1,\n sh2Max: 1,\n sh3Max: 1,\n lodOpacity: false,\n};\n\nexport type RadMeta = {\n version: number;\n type: string;\n count: number;\n maxSh?: number;\n lodTree?: boolean;\n chunkSize?: number;\n chunks: {\n offset: number;\n bytes: number;\n base?: number;\n count?: number;\n filename?: string;\n }[];\n splatEncoding?: SplatEncoding;\n};\n\nexport type PackedExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type PackedResult = {\n numSplats: number;\n packedArray: Uint32Array;\n extra: PackedExtra;\n splatEncoding: SplatEncoding;\n};\n\nexport type ExtExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3a?: Uint32Array;\n sh3b?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type ExtResult = {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: ExtExtra;\n};\n","import type * as THREE from \"three\";\n\nexport type BoolTypes = \"bool\" | \"bvec2\" | \"bvec3\" | \"bvec4\";\nexport type IntTypes = \"int\" | \"ivec2\" | \"ivec3\" | \"ivec4\";\nexport type UintTypes = \"uint\" | \"uvec2\" | \"uvec3\" | \"uvec4\";\nexport type AllIntTypes = IntTypes | UintTypes;\nexport type FloatTypes = \"float\" | \"vec2\" | \"vec3\" | \"vec4\";\nexport type ScalarTypes = \"uint\" | \"int\" | \"float\";\nexport type Vector2Types = \"vec2\" | \"ivec2\" | \"uvec2\";\nexport type Vector3Types = \"vec3\" | \"ivec3\" | \"uvec3\";\nexport type Vector4Types = \"vec4\" | \"ivec4\" | \"uvec4\";\nexport type VectorTypes = Vector2Types | Vector3Types | Vector4Types;\nexport type MatFloatTypes =\n | \"mat2\"\n | \"mat2x2\"\n | \"mat2x3\"\n | \"mat2x4\"\n | \"mat3\"\n | \"mat3x2\"\n | \"mat3x3\"\n | \"mat3x4\"\n | \"mat4\"\n | \"mat4x2\"\n | \"mat4x3\"\n | \"mat4x4\";\nexport type SquareMatTypes =\n | \"mat2\"\n | \"mat3\"\n | \"mat4\"\n | \"mat2x2\"\n | \"mat3x3\"\n | \"mat4x4\";\nexport type AllFloatTypes = FloatTypes | MatFloatTypes;\nexport type SignedTypes = IntTypes | FloatTypes;\nexport type AllSignedTypes = SignedTypes | MatFloatTypes;\nexport type ValueTypes = FloatTypes | IntTypes | UintTypes;\nexport type AllValueTypes = AllFloatTypes | IntTypes | UintTypes;\nexport type SimpleTypes = BoolTypes | AllValueTypes;\n\nexport type VectorElementType = A extends FloatTypes\n ? \"float\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nexport type SameSizeVec = T extends ScalarTypes\n ? \"float\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"vec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"vec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"vec4\"\n : never;\n\nexport type SameSizeUvec = T extends ScalarTypes\n ? \"uint\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"uvec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"uvec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"uvec4\"\n : never;\n\nexport type SameSizeIvec = T extends ScalarTypes\n ? \"int\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"ivec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"ivec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"ivec4\"\n : never;\n\nexport type SamplerTypes =\n | \"sampler2D\"\n | \"sampler2DArray\"\n | \"sampler3D\"\n | \"samplerCube\";\nexport type UsamplerTypes =\n | \"usampler2D\"\n | \"usampler2DArray\"\n | \"usampler3D\"\n | \"usamplerCube\";\nexport type IsamplerTypes =\n | \"isampler2D\"\n | \"isampler2DArray\"\n | \"isampler3D\"\n | \"isamplerCube\";\nexport type NormalSamplerTypes = SamplerTypes | UsamplerTypes | IsamplerTypes;\nexport type SamplerShadowTypes =\n | \"sampler2DShadow\"\n | \"sampler2DArrayShadow\"\n | \"samplerCubeShadow\";\nexport type AllSamplerTypes = NormalSamplerTypes | SamplerShadowTypes;\nexport type Sampler2DTypes =\n | \"sampler2D\"\n | \"usampler2D\"\n | \"isampler2D\"\n | \"sampler2DShadow\";\nexport type Sampler2DArrayTypes =\n | \"sampler2DArray\"\n | \"usampler2DArray\"\n | \"isampler2DArray\"\n | \"sampler2DArrayShadow\";\nexport type Sampler3DTypes = \"sampler3D\" | \"usampler3D\" | \"isampler3D\";\nexport type SamplerCubeTypes =\n | \"samplerCube\"\n | \"usamplerCube\"\n | \"isamplerCube\"\n | \"samplerCubeShadow\";\n\nexport function isBoolType(type: DynoType): boolean {\n return (\n type === \"bool\" || type === \"bvec2\" || type === \"bvec3\" || type === \"bvec4\"\n );\n}\n\nexport function isScalarType(type: DynoType): boolean {\n return type === \"int\" || type === \"uint\" || type === \"float\";\n}\n\nexport function isIntType(type: DynoType): boolean {\n return (\n type === \"int\" || type === \"ivec2\" || type === \"ivec3\" || type === \"ivec4\"\n );\n}\n\nexport function isUintType(type: DynoType): boolean {\n return (\n type === \"uint\" || type === \"uvec2\" || type === \"uvec3\" || type === \"uvec4\"\n );\n}\n\nexport function isFloatType(type: DynoType): boolean {\n return (\n type === \"float\" || type === \"vec2\" || type === \"vec3\" || type === \"vec4\"\n );\n}\n\nexport function isMatFloatType(type: DynoType): boolean {\n return (\n type === \"mat2\" ||\n type === \"mat2x2\" ||\n type === \"mat2x3\" ||\n type === \"mat2x4\" ||\n type === \"mat3\" ||\n type === \"mat3x2\" ||\n type === \"mat3x3\" ||\n type === \"mat3x4\" ||\n type === \"mat4\" ||\n type === \"mat4x2\" ||\n type === \"mat4x3\" ||\n type === \"mat4x4\"\n );\n}\n\nexport function isAllFloatType(type: DynoType): boolean {\n return isFloatType(type) || isMatFloatType(type);\n}\n\nexport function isVector2Type(type: DynoType): boolean {\n return type === \"vec2\" || type === \"ivec2\" || type === \"uvec2\";\n}\n\nexport function isVector3Type(type: DynoType): boolean {\n return type === \"vec3\" || type === \"ivec3\" || type === \"uvec3\";\n}\n\nexport function isVector4Type(type: DynoType): boolean {\n return type === \"vec4\" || type === \"ivec4\" || type === \"uvec4\";\n}\n\nexport function isVectorType(type: DynoType): boolean {\n return isVector2Type(type) || isVector3Type(type) || isVector4Type(type);\n}\n\nexport function isMat2(type: DynoType): boolean {\n return type === \"mat2\" || type === \"mat2x2\";\n}\nexport function isMat3(type: DynoType): boolean {\n return type === \"mat3\" || type === \"mat3x3\";\n}\nexport function isMat4(type: DynoType): boolean {\n return type === \"mat4\" || type === \"mat4x4\";\n}\n\nexport function vectorElementType(\n type: A,\n): VectorElementType {\n switch (type) {\n case \"vec2\":\n return \"float\" as VectorElementType;\n case \"vec3\":\n return \"float\" as VectorElementType;\n case \"vec4\":\n return \"float\" as VectorElementType;\n case \"ivec2\":\n return \"int\" as VectorElementType;\n case \"ivec3\":\n return \"int\" as VectorElementType;\n case \"ivec4\":\n return \"int\" as VectorElementType;\n case \"uvec2\":\n return \"uint\" as VectorElementType;\n case \"uvec3\":\n return \"uint\" as VectorElementType;\n case \"uvec4\":\n return \"uint\" as VectorElementType;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function vectorDim(type: A): number {\n switch (type) {\n case \"vec2\":\n case \"ivec2\":\n case \"uvec2\":\n return 2;\n case \"vec3\":\n case \"ivec3\":\n case \"uvec3\":\n return 3;\n case \"vec4\":\n case \"ivec4\":\n case \"uvec4\":\n return 4;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function sameSizeVec(type: T): SameSizeVec {\n if (isScalarType(type)) {\n return \"float\" as SameSizeVec;\n }\n if (isVector2Type(type)) {\n return \"vec2\" as SameSizeVec;\n }\n if (isVector3Type(type)) {\n return \"vec3\" as SameSizeVec;\n }\n if (isVector4Type(type)) {\n return \"vec4\" as SameSizeVec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeUvec(type: T): SameSizeUvec {\n if (isScalarType(type)) {\n return \"uint\" as SameSizeUvec;\n }\n if (isVector2Type(type)) {\n return \"uvec2\" as SameSizeUvec;\n }\n if (isVector3Type(type)) {\n return \"uvec3\" as SameSizeUvec;\n }\n if (isVector4Type(type)) {\n return \"uvec4\" as SameSizeUvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeIvec(type: T): SameSizeIvec {\n if (isScalarType(type)) {\n return \"int\" as SameSizeIvec;\n }\n if (isVector2Type(type)) {\n return \"ivec2\" as SameSizeIvec;\n }\n if (isVector3Type(type)) {\n return \"ivec3\" as SameSizeIvec;\n }\n if (isVector4Type(type)) {\n return \"ivec4\" as SameSizeIvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport type BaseType = SimpleTypes | AllSamplerTypes;\nexport type UserType = { type: string };\nexport type DynoType = BaseType | UserType;\n\nexport type DynoJsType = T extends \"bool\"\n ? boolean\n : T extends \"uint\"\n ? number\n : T extends \"int\"\n ? number\n : T extends \"float\"\n ? number\n : T extends \"bvec2\"\n ? [boolean, boolean]\n : T extends \"uvec2\"\n ? THREE.Vector2 | [number, number] | Uint32Array\n : T extends \"ivec2\"\n ? THREE.Vector2 | [number, number] | Int32Array\n : T extends \"vec2\"\n ? THREE.Vector2 | [number, number] | Float32Array\n : T extends \"bvec3\"\n ? [boolean, boolean, boolean]\n : T extends \"uvec3\"\n ? THREE.Vector3 | [number, number, number] | Uint32Array\n : T extends \"ivec3\"\n ? THREE.Vector3 | [number, number, number] | Int32Array\n : T extends \"vec3\"\n ?\n | THREE.Vector3\n | THREE.Color\n | [number, number, number]\n | Float32Array\n : T extends \"bvec4\"\n ? [boolean, boolean, boolean, boolean]\n : T extends \"uvec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Uint32Array\n : T extends \"ivec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Int32Array\n : T extends \"vec4\"\n ?\n | THREE.Vector4\n | THREE.Quaternion\n | [number, number, number, number]\n | Float32Array\n : T extends \"mat2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x3\"\n ? Float32Array\n : T extends \"mat2x4\"\n ? Float32Array\n : T extends \"mat3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x2\"\n ? Float32Array\n : T extends \"mat3x3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x4\"\n ? Float32Array\n : T extends \"mat4\"\n ? THREE.Matrix4 | Float32Array\n : T extends \"mat4x2\"\n ? Float32Array\n : T extends \"mat4x3\"\n ? Float32Array\n : T extends \"mat4x4\"\n ?\n | THREE.Matrix4\n | Float32Array\n : T extends \"usampler2D\"\n ? THREE.Texture\n : T extends \"isampler2D\"\n ? THREE.Texture\n : T extends \"sampler2D\"\n ? THREE.Texture\n : T extends \"sampler2DShadow\"\n ? THREE.Texture\n : T extends \"usampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"isampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArrayShadow\"\n ? THREE.Texture\n : T extends \"usampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"isampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"sampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"usamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"isamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCubeShadow\"\n ? THREE.Texture\n : unknown;\n\nexport function typeLiteral(type: DynoType): string {\n if (typeof type === \"string\") {\n return type;\n }\n if (typeof type === \"object\" && type.type) {\n return type.type;\n }\n throw new Error(`Invalid DynoType: ${String(type)}`);\n}\n\nexport function numberAsInt(value: number): string {\n return Math.trunc(value).toString();\n}\n\nexport function numberAsUint(value: number): string {\n const v = Math.max(0, Math.trunc(value));\n return `${v.toString()}u`;\n}\n\nexport function numberAsFloat(value: number): string {\n return value === Number.POSITIVE_INFINITY\n ? \"INFINITY\"\n : value === Number.NEGATIVE_INFINITY\n ? \"-INFINITY\"\n : Number.isInteger(value)\n ? value.toFixed(1)\n : value.toString();\n}\n","import * as THREE from \"three\";\n\nimport type { Dyno, IOTypes } from \"./base\";\nimport {\n type DynoJsType,\n type DynoType,\n type SimpleTypes,\n isAllFloatType,\n isBoolType,\n isIntType,\n isUintType,\n numberAsFloat,\n numberAsInt,\n numberAsUint,\n} from \"./types\";\n\nexport type DynoVal = DynoValue | HasDynoOut;\n\nexport function valType(val: DynoVal): T {\n if (val instanceof DynoValue) {\n return val.type;\n }\n const value = val.dynoOut();\n return value.type;\n}\n\nexport interface HasDynoOut {\n dynoOut(): DynoValue;\n}\n\nexport class DynoValue {\n type: T;\n // This field prevents TypeScript structural matching on objects with a \"type\" field\n private __isDynoValue = true;\n\n constructor(type: T) {\n this.type = type;\n }\n}\n\nexport class DynoOutput<\n T extends DynoType,\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends DynoValue {\n dyno: Dyno;\n key: string;\n\n constructor(dyno: Dyno, key: string) {\n super(dyno.outTypes[key] as T);\n this.dyno = dyno;\n this.key = key;\n }\n}\n\nexport class DynoLiteral extends DynoValue {\n literal: string;\n\n constructor(type: T, literal: string) {\n super(type);\n this.literal = literal;\n }\n\n getLiteral(): string {\n return this.literal;\n }\n}\n\nexport function dynoLiteral(\n type: T,\n literal: string,\n): DynoLiteral {\n return new DynoLiteral(type, literal);\n}\n\nexport class DynoConst extends DynoLiteral {\n value: DynoJsType;\n\n constructor(type: T, value: DynoJsType) {\n super(type, \"\");\n this.value = value;\n }\n\n getLiteral(): string {\n const { type, value } = this;\n switch (type) {\n case \"bool\":\n return value ? \"true\" : \"false\";\n case \"uint\":\n return numberAsUint(value as number);\n case \"int\":\n return numberAsInt(value as number);\n case \"float\":\n return numberAsFloat(value as number);\n case \"bvec2\": {\n const v = value as [boolean, boolean];\n return `bvec2(${v[0]}, ${v[1]})`;\n }\n case \"uvec2\": {\n if (value instanceof THREE.Vector2) {\n return `uvec2(${numberAsUint(value.x)}, ${numberAsUint(value.y)})`;\n }\n const v = value as [number, number] | Uint32Array;\n return `uvec2(${numberAsUint(v[0])}, ${numberAsUint(v[1])})`;\n }\n case \"ivec2\": {\n if (value instanceof THREE.Vector2) {\n return `ivec2(${numberAsInt(value.x)}, ${numberAsInt(value.y)})`;\n }\n const v = value as [number, number] | Int32Array;\n return `ivec2(${numberAsInt(v[0])}, ${numberAsInt(v[1])})`;\n }\n case \"vec2\": {\n if (value instanceof THREE.Vector2) {\n return `vec2(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)})`;\n }\n const v = value as [number, number] | Float32Array;\n return `vec2(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])})`;\n }\n case \"bvec3\": {\n const v = value as [boolean, boolean, boolean];\n return `bvec3(${v[0]}, ${v[1]}, ${v[2]})`;\n }\n case \"uvec3\": {\n if (value instanceof THREE.Vector3) {\n return `uvec3(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)})`;\n }\n const v = value as [number, number, number] | Uint32Array;\n return `uvec3(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])})`;\n }\n case \"ivec3\": {\n if (value instanceof THREE.Vector3) {\n return `ivec3(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)})`;\n }\n const v = value as [number, number, number] | Int32Array;\n return `ivec3(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])})`;\n }\n case \"vec3\": {\n if (value instanceof THREE.Vector3) {\n return `vec3(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)})`;\n }\n const v = value as [number, number, number] | Float32Array;\n return `vec3(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])})`;\n }\n case \"bvec4\": {\n const v = value as [boolean, boolean, boolean, boolean];\n return `bvec4(${v[0]}, ${v[1]}, ${v[2]}, ${v[3]})`;\n }\n case \"uvec4\": {\n if (value instanceof THREE.Vector4) {\n return `uvec4(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)}, ${numberAsUint(value.w)})`;\n }\n const v = value as [number, number, number, number] | Uint32Array;\n return `uvec4(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])}, ${numberAsUint(v[3])})`;\n }\n case \"ivec4\": {\n if (value instanceof THREE.Vector4) {\n return `ivec4(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)}, ${numberAsInt(value.w)})`;\n }\n const v = value as [number, number, number, number] | Int32Array;\n return `ivec4(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])}, ${numberAsInt(v[3])})`;\n }\n case \"vec4\": {\n if (value instanceof THREE.Vector4) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n if (value instanceof THREE.Quaternion) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n const v = value as [number, number, number, number] | Float32Array;\n return `vec4(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])}, ${numberAsFloat(v[3])})`;\n }\n case \"mat2\":\n case \"mat2x2\": {\n const m = value as DynoJsType<\"mat2\">;\n const e =\n m instanceof THREE.Matrix2 ? m.elements : (value as Float32Array);\n const arg = new Array(4).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x3\": {\n const e = value as DynoJsType<\"mat2x3\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x4\": {\n const e = value as DynoJsType<\"mat2x4\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3\":\n case \"mat3x3\": {\n const m = value as DynoJsType<\"mat3\">;\n const e =\n m instanceof THREE.Matrix3 ? m.elements : (value as Float32Array);\n const arg = new Array(9).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x2\": {\n const e = value as DynoJsType<\"mat3x2\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x4\": {\n const e = value as DynoJsType<\"mat3x4\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4\":\n case \"mat4x4\": {\n const m = value as DynoJsType<\"mat4\">;\n const e =\n m instanceof THREE.Matrix4 ? m.elements : (value as Float32Array);\n const arg = new Array(16).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x2\": {\n const e = value as DynoJsType<\"mat4x2\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x3\": {\n const e = value as DynoJsType<\"mat4x3\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n default:\n throw new Error(`Type not implemented: ${String(type)}`);\n }\n }\n}\n\nexport function dynoConst(\n type: T,\n value: DynoJsType,\n): DynoConst {\n return new DynoConst(type, value);\n}\n\nexport function literalZero(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(false)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(0.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(0)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(1u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalNegOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(-1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(-1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0xFFFFFFFFu)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n","import type { IUniform } from \"three\";\nimport type { DynoType } from \"./types\";\nimport {\n DynoLiteral,\n DynoOutput,\n type DynoVal,\n DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nconst DEFAULT_INDENT = \" \";\n\nexport class Compilation {\n globals: Set = new Set();\n statements: string[] = [];\n uniforms: Record = {};\n declares: Set = new Set();\n updaters: (() => void)[] = [];\n sequence = 0;\n indent: string = DEFAULT_INDENT;\n\n constructor({ indent }: { indent?: string } = {}) {\n this.indent = indent ?? DEFAULT_INDENT;\n }\n\n nextSequence() {\n return this.sequence++;\n }\n}\n\nexport type IOTypes = Record;\ntype GenerateContext = {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n};\n\nexport class Dyno {\n inTypes: InTypes;\n outTypes: OutTypes;\n\n inputs: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n }) {\n this.inTypes = inTypes ?? ({} as InTypes);\n this.outTypes = outTypes ?? ({} as OutTypes);\n this.inputs = inputs ?? {};\n this.update = update;\n\n this.globals = globals;\n this.statements = statements;\n this.generate =\n generate ??\n (({ inputs, outputs, compile }) => {\n return {\n globals: this.globals?.({ inputs, outputs, compile }),\n statements: this.statements?.({ inputs, outputs, compile }),\n };\n });\n }\n\n get outputs(): { [K in keyof OutTypes]: DynoVal } {\n const outputs = {} as { [K in keyof OutTypes]: DynoVal };\n for (const key in this.outTypes) {\n outputs[key] = new DynoOutput(this, key);\n }\n return outputs;\n }\n\n apply(inputs: { [K in keyof InTypes]?: DynoVal }): {\n [K in keyof OutTypes]: DynoVal;\n } {\n Object.assign(this.inputs, inputs);\n return this.outputs;\n }\n\n compile({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }): string[] {\n const result = [\n `// ${this.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`,\n ];\n\n const declares: (keyof OutTypes)[] = [];\n for (const key in outputs) {\n const name = outputs[key];\n if (name && !compile.declares.has(name)) {\n compile.declares.add(name);\n declares.push(key);\n }\n }\n\n const { globals, statements, uniforms } = this.generate({\n inputs,\n outputs,\n compile,\n });\n for (const global of globals ?? []) {\n compile.globals.add(global);\n }\n for (const key in uniforms) {\n compile.uniforms[key] = uniforms[key];\n }\n if (this.update) {\n compile.updaters.push(this.update);\n }\n\n for (const key of declares) {\n const name = outputs[key];\n if (name) {\n if (!compile.uniforms[name]) {\n result.push(`${dynoDeclare(name, this.outTypes[key])};`);\n }\n }\n }\n\n if (statements?.length) {\n result.push(\"{\");\n result.push(...statements.map((line) => compile.indent + line));\n result.push(\"}\");\n }\n return result;\n }\n}\n\nexport type DynoBlockType = (\n inputs: { [K in keyof InTypes]?: DynoVal },\n outputs: { [K in keyof OutTypes]?: DynoVal },\n { roots }: { roots: Dyno[] },\n) => { [K in keyof OutTypes]?: DynoVal } | undefined;\n\nexport class DynoBlock<\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends Dyno {\n construct: DynoBlockType;\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n construct,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n construct: DynoBlockType;\n }) {\n super({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n generate: (args) => this.generateBlock(args),\n });\n this.construct = construct;\n }\n\n generateBlock({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }) {\n const blockInputs: { [K in keyof InTypes]?: DynoVal } = {};\n const blockOutputs: { [K in keyof OutTypes]?: DynoVal } = {};\n\n for (const key in inputs) {\n if (inputs[key] != null) {\n blockInputs[key] = new DynoLiteral(this.inTypes[key], inputs[key]);\n }\n }\n for (const key in outputs) {\n if (outputs[key] != null) {\n blockOutputs[key] = new DynoValue(this.outTypes[key]);\n }\n }\n\n const options: { roots: Dyno[] } = { roots: [] };\n const returned = this.construct(blockInputs, blockOutputs, options);\n\n for (const global of this.globals?.({ inputs, outputs, compile }) ?? []) {\n compile.globals.add(global);\n }\n\n const ordering: Dyno[] = [];\n const nodeOuts = new Map<\n Dyno,\n { sequence: number; outNames: Map; newOuts: Set }\n >();\n\n function visit(\n node: Dyno,\n outKey?: string,\n outName?: string,\n ) {\n let outs = nodeOuts.get(node);\n if (!outs) {\n // First time visiting this node\n outs = {\n sequence: compile.nextSequence(),\n outNames: new Map(),\n newOuts: new Set(),\n };\n nodeOuts.set(node, outs);\n\n for (const key in node.inputs) {\n let input = node.inputs[key];\n while (input) {\n if (input instanceof DynoValue) {\n if (input instanceof DynoOutput) {\n visit(input.dyno, input.key);\n }\n break;\n }\n // Must be as HasDynoOut\n if (typeof input.dynoOut !== \"function\") {\n throw new Error(\n `dynoOut is not a function for ${input.constructor.name}`,\n );\n }\n input = input.dynoOut();\n }\n }\n ordering.push(node);\n }\n if (outKey) {\n if (!outName) {\n outs.newOuts.add(outKey);\n }\n outs.outNames.set(outKey, outName ?? `${outKey}_${outs.sequence}`);\n }\n }\n\n for (const root of options.roots) {\n visit(root);\n }\n\n for (const key in blockOutputs) {\n let value = returned?.[key] ?? blockOutputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoOutput) {\n visit(value.dyno, value.key, outputs[key]);\n }\n break;\n }\n // Must be as HasDynoOut\n value = value.dynoOut();\n }\n blockOutputs[key] = value;\n }\n\n const steps = [];\n\n for (const dyno of ordering) {\n // compile.statements.push(`// ${dyno.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`);\n\n const inputs: Record = {};\n const outputs: Record = {};\n\n for (const key in dyno.inputs) {\n let value = dyno.inputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoLiteral) {\n inputs[key] = value.getLiteral();\n } else if (value instanceof DynoOutput) {\n const source = nodeOuts.get(value.dyno)?.outNames.get(value.key);\n if (!source) {\n throw new Error(\n `Source not found for ${value.dyno.constructor.name}.${value.key}`,\n );\n }\n inputs[key] = source;\n }\n break;\n }\n // Must be as HasDynOut\n value = value.dynoOut();\n }\n }\n\n const outs = nodeOuts.get(dyno) ?? { outNames: new Map() };\n for (const [key, name] of outs.outNames.entries()) {\n outputs[key] = name;\n }\n\n const newSteps = dyno.compile({ inputs, outputs, compile });\n steps.push(newSteps);\n }\n\n const literalOutputs = [];\n for (const key in outputs) {\n if (blockOutputs[key] instanceof DynoLiteral) {\n literalOutputs.push(\n `${outputs[key]} = ${blockOutputs[key].getLiteral()};`,\n );\n }\n }\n if (literalOutputs.length > 0) {\n steps.push(literalOutputs);\n }\n\n const statements = steps.flatMap((step, index) => {\n // Add a blank line between steps\n return index === 0 ? step : [\"\", ...step];\n });\n return { statements };\n }\n}\n\nexport function dynoBlock<\n InTypes extends Record,\n OutTypes extends Record,\n>(\n inTypes: InTypes,\n outTypes: OutTypes,\n construct: DynoBlockType,\n { update, globals }: { update?: () => void; globals?: () => string[] } = {},\n) {\n return new DynoBlock({ inTypes, outTypes, construct, update, globals });\n}\n\nexport function dyno<\n InTypes extends Record,\n OutTypes extends Record,\n>({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n}: {\n inTypes: InTypes;\n outTypes: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n}) {\n return new Dyno({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n });\n}\n\nexport function dynoDeclare(name: string, type: DynoType, count?: number) {\n const typeStr = typeof type === \"string\" ? type : type.type;\n if (!typeStr) {\n throw new Error(`Invalid DynoType: ${String(type)}`);\n }\n return `${typeStr} ${name}${count != null ? `[${count}]` : \"\"}`;\n}\n\nexport function unindentLines(s: string): string[] {\n let seenNonEmpty = false;\n const lines = s\n .split(\"\\n\")\n .map((line) => {\n const trimmedLine = line.trimEnd();\n if (seenNonEmpty) {\n return trimmedLine;\n }\n if (trimmedLine.length > 0) {\n seenNonEmpty = true;\n return trimmedLine;\n }\n return null;\n })\n .filter((line) => line != null);\n while (lines.length > 0 && lines[lines.length - 1].length === 0) {\n lines.pop();\n }\n if (lines.length === 0) {\n return [];\n }\n\n const indent = lines[0].match(/^\\s*/)?.[0];\n if (!indent) {\n return lines; // No indent, return as is\n }\n // Remove indent from the beginning of each line\n const regex = new RegExp(`^${indent}`);\n return lines.map((line) => line.replace(regex, \"\"));\n}\n\nexport function unindent(s: string): string {\n return unindentLines(s).join(\"\\n\");\n}\n\nexport class UnaryOp<\n A extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n outKey,\n outTypeFunc,\n }: { a: DynoVal; outKey: OutKey; outTypeFunc: (aType: A) => OutType }) {\n const inTypes = { a: valType(a) };\n const outType = outTypeFunc(valType(a));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class BinaryOp<\n A extends DynoType,\n B extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b) };\n const outType = outTypeFunc(valType(a), valType(b));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class TrinaryOp<\n A extends DynoType,\n B extends DynoType,\n C extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B; c: C }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n c,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n c: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B, cType: C) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b), c: valType(c) };\n const outType = outTypeFunc(valType(a), valType(b), valType(c));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b, c } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n","import { Dyno, UnaryOp, unindent, unindentLines } from \"./base\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const Gsplat = { type: \"Gsplat\" } as { type: \"Gsplat\" };\nexport const CovSplat = { type: \"CovSplat\" } as { type: \"CovSplat\" };\nexport const TPackedSplats = { type: \"PackedSplats\" } as {\n type: \"PackedSplats\";\n};\nexport const TExtSplats = { type: \"ExtSplats\" } as {\n type: \"ExtSplats\";\n};\nexport const TCovSplats = { type: \"CovSplats\" } as {\n type: \"CovSplats\";\n};\n\nexport const numPackedSplats = (\n packedSplats: DynoVal,\n): DynoVal<\"int\"> => new NumPackedSplats({ packedSplats });\nexport const readPackedSplat = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadPackedSplat({ packedSplats, index });\nexport const readPackedSplatRange = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n base: DynoVal<\"int\">,\n count: DynoVal<\"int\">,\n): DynoVal =>\n new ReadPackedSplatRange({ packedSplats, index, base, count });\n\nexport const numExtSplats = (\n extSplats: DynoVal,\n): DynoVal<\"int\"> => new NumExtSplats({ extSplats });\nexport const readExtSplat = (\n extSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadExtSplat({ extSplats, index });\n\nexport const numCovSplats = (\n covsplats: DynoVal,\n): DynoVal<\"int\"> => new NumCovSplats({ covsplats });\nexport const readCovSplat = (\n covSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadCovSplat({ covSplats, index });\n\nexport const gsplatToCovSplat = (\n gsplat: DynoVal,\n): DynoVal => new GsplatToCovSplat({ gsplat });\n\nexport const splitGsplat = (gsplat: DynoVal) =>\n new SplitGsplat({ gsplat });\nexport const combineGsplat = ({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineGsplat({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\nexport const gsplatNormal = (gsplat: DynoVal): DynoVal<\"vec3\"> =>\n new GsplatNormal({ gsplat });\n\nexport const transformGsplat = (\n gsplat: DynoVal,\n {\n scale,\n rotate,\n translate,\n recolor,\n }: {\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n },\n): DynoVal => {\n return new TransformGsplat({ gsplat, scale, rotate, translate, recolor });\n};\n\nexport const splatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new SplatTexCoord({ index });\n\nexport const pagedSplatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new PagedSplatTexCoord({ index });\n\nexport const defineGsplat = unindent(`\n struct Gsplat {\n vec3 center;\n uint flags;\n vec3 scales;\n int index;\n vec4 quaternion;\n vec4 rgba;\n };\n const uint GSPLAT_FLAG_ACTIVE = 1u << 0u;\n\n bool isGsplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const defineCovSplat = unindent(`\n struct CovSplat {\n vec3 center;\n uint flags;\n vec4 rgba;\n vec3 xxyyzz;\n int index;\n vec3 xyxzyz;\n };\n\n bool isCovSplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const definePackedSplats = unindent(`\n struct PackedSplats {\n usampler2DArray textureArray;\n int numSplats;\n vec4 rgbMinMaxLnScaleMinMax;\n bool lodOpacity;\n };\n`);\n\nexport class NumPackedSplats extends UnaryOp<\n typeof TPackedSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({\n packedSplats,\n }: { packedSplats: DynoVal }) {\n super({ a: packedSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadPackedArray = unindent(`\n bool readPackedArray(usampler2DArray texture, int numSplats, vec4 rgbMinMaxLnScaleMinMax, int index, out Gsplat gsplat) {\n if ((index >= 0) && (index < numSplats)) {\n uvec4 packedData = texelFetch(texture, splatTexCoord(index), 0);\n unpackSplatEncoding(packedData, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba, rgbMinMaxLnScaleMinMax);\n return true;\n } else {\n return false;\n }\n }\n`);\n\nexport class ReadPackedSplat\n extends Dyno<\n { packedSplats: typeof TPackedSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n }: { packedSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { packedSplats: TPackedSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index } = inputs;\n let statements: string[];\n if (packedSplats && index) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class ReadPackedSplatRange\n extends Dyno<\n {\n packedSplats: typeof TPackedSplats;\n index: \"int\";\n base: \"int\";\n count: \"int\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n base,\n count,\n }: {\n packedSplats?: DynoVal;\n index?: DynoVal<\"int\">;\n base?: DynoVal<\"int\">;\n count?: DynoVal<\"int\">;\n }) {\n super({\n inTypes: {\n packedSplats: TPackedSplats,\n index: \"int\",\n base: \"int\",\n count: \"int\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index, base, count },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index, base, count } = inputs;\n let statements: string[];\n if (packedSplats && index && base && count) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineExtSplats = unindent(`\n struct ExtSplats {\n usampler2DArray textureArray1;\n usampler2DArray textureArray2;\n int numSplats;\n };\n`);\n\nexport class NumExtSplats extends UnaryOp<\n typeof TExtSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ extSplats }: { extSplats: DynoVal }) {\n super({ a: extSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadExtArrays = unindent(`\n void readExtArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out Gsplat gsplat) {\n gsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExt(packed1, packed2, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba);\n gsplat.flags = all(equal(gsplat.scales, vec3(0.0, 0.0, 0.0))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadExtSplat\n extends Dyno<\n { extSplats: typeof TExtSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n extSplats,\n index,\n }: { extSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { extSplats: TExtSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { extSplats, index },\n globals: () => [defineGsplat, defineExtSplats, defineReadExtArrays],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [`${gsplat}.flags = 0u;`];\n }\n const { extSplats, index } = inputs;\n let statements: string[];\n if (extSplats && index) {\n return unindentLines(`\n readExtArrays(${extSplats}.textureArray1, ${extSplats}.textureArray2, ${extSplats}.numSplats, ${index}, ${gsplat});\n `);\n }\n return [`${gsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class NumCovSplats extends UnaryOp<\n typeof TCovSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ covsplats }: { covsplats: DynoVal }) {\n super({ a: covsplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadCovArrays = unindent(`\n void readCovArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out CovSplat covsplat) {\n covsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExtCov(packed1, packed2, covsplat.center, covsplat.rgba, covsplat.xxyyzz, covsplat.xyxzyz);\n covsplat.flags = (all(equal(covsplat.xxyyzz, vec3(0.0))) && all(equal(covsplat.xyxzyz, vec3(0.0)))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadCovSplat\n extends Dyno<\n { covSplats: typeof TCovSplats; index: \"int\" },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covSplats,\n index,\n }: { covSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { covSplats: TCovSplats, index: \"int\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covSplats, index },\n globals: () => [defineGsplat, defineCovSplat, defineReadCovArrays],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = outputs;\n if (!covsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n const { covSplats, index } = inputs;\n let statements: string[];\n if (covSplats && index) {\n return unindentLines(`\n readCovArrays(${covSplats}.textureArray, ${covSplats}.numSplats, ${index}, ${covsplat});\n `);\n }\n return [`${covsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class GsplatToCovSplat extends Dyno<\n { gsplat: typeof Gsplat },\n { covsplat: typeof CovSplat }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: { covsplat: CovSplat },\n inputs: { gsplat },\n globals: () => [defineGsplat, defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const { covsplat } = outputs;\n if (!gsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n\n return unindentLines(`\n ${covsplat}.flags = 0u;\n if (isGsplatActive(${gsplat}.flags)) {\n ${covsplat}.flags = ${gsplat}.flags;\n ${covsplat}.index = ${gsplat}.index;\n ${covsplat}.rgba = ${gsplat}.rgba;\n ${covsplat}.center = ${gsplat}.center;\n mat3 m = scaleQuaternionToMatrix(${gsplat}.scales, ${gsplat}.quaternion);\n m = m * transpose(m);\n ${covsplat}.xxyyzz = vec3(m[0][0], m[1][1], m[2][2]);\n ${covsplat}.xyxzyz = vec3(m[0][1], m[0][2], m[1][2]);\n }\n `);\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplitGsplat extends Dyno<\n { gsplat: typeof Gsplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags ? null : `${flags} = ${gsplat ? `${gsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isGsplatActive(${gsplat ? `${gsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${gsplat ? `${gsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !scales\n ? null\n : `${scales} = ${gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !quaternion\n ? null\n : `${quaternion} = ${gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${gsplat ? `${gsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${gsplat ? `${gsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${gsplat ? `${gsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${gsplat ? `${gsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${gsplat ? `${gsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${gsplat ? `${gsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${gsplat ? `${gsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${gsplat ? `${gsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat: outGsplat } = outputs;\n if (!outGsplat) {\n return [];\n }\n const {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outGsplat}.flags = ${flags ?? (gsplat ? `${gsplat}.flags` : \"0u\")};`,\n `${outGsplat}.index = ${index ?? (gsplat ? `${gsplat}.index` : \"0\")};`,\n `${outGsplat}.center = ${center ?? (gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.scales = ${scales ?? (gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.quaternion = ${quaternion ?? (gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\")};`,\n `${outGsplat}.rgba = ${rgba ?? (gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outGsplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outGsplat}.rgba.a = ${opacity};`,\n !x ? null : `${outGsplat}.center.x = ${x};`,\n !y ? null : `${outGsplat}.center.y = ${y};`,\n !z ? null : `${outGsplat}.center.z = ${z};`,\n !r ? null : `${outGsplat}.rgba.r = ${r};`,\n !g ? null : `${outGsplat}.rgba.g = ${g};`,\n !b ? null : `${outGsplat}.rgba.b = ${b};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineGsplatNormal = unindent(`\n vec3 gsplatNormal(vec3 scales, vec4 quaternion) {\n float minScale = min(scales.x, min(scales.y, scales.z));\n vec3 normal;\n if (scales.z == minScale) {\n normal = vec3(0.0, 0.0, 1.0);\n } else if (scales.y == minScale) {\n normal = vec3(0.0, 1.0, 0.0);\n } else {\n normal = vec3(1.0, 0.0, 0.0);\n }\n return quatVec(quaternion, normal);\n }\n`);\n\nexport class GsplatNormal extends UnaryOp {\n constructor({ gsplat }: { gsplat: DynoVal }) {\n super({ a: gsplat, outKey: \"normal\", outTypeFunc: () => \"vec3\" });\n this.globals = () => [defineGsplat, defineGsplatNormal];\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normal} = gsplatNormal(${inputs.a}.scales, ${inputs.a}.quaternion);`,\n ];\n }\n}\n\nexport class TransformGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n scale: \"float\";\n rotate: \"vec4\";\n translate: \"vec3\";\n recolor: \"vec4\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n scale,\n rotate,\n translate,\n recolor,\n }: {\n gsplat?: DynoVal;\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n scale: \"float\",\n rotate: \"vec4\",\n translate: \"vec3\",\n recolor: \"vec4\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, scale, rotate, translate, recolor },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs, compile }) => {\n const { gsplat } = outputs;\n if (!gsplat || !inputs.gsplat) {\n return [];\n }\n const { scale, rotate, translate, recolor } = inputs;\n const indent = compile.indent;\n const statements = [\n `${gsplat} = ${inputs.gsplat};`,\n `if (isGsplatActive(${gsplat}.flags)) {`,\n\n scale ? `${indent}${gsplat}.center *= ${scale};` : null,\n rotate\n ? `${indent}${gsplat}.center = quatVec(${rotate}, ${gsplat}.center);`\n : null,\n translate ? `${indent}${gsplat}.center += ${translate};` : null,\n\n scale ? `${indent}${gsplat}.scales *= ${scale};` : null,\n\n rotate\n ? `${indent}${gsplat}.quaternion = quatQuat(${rotate}, ${gsplat}.quaternion);`\n : null,\n recolor ? `${indent}${gsplat}.rgba *= ${recolor};` : null,\n \"}\",\n ].filter(Boolean) as string[];\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const splitCovSplat = (covsplat: DynoVal) =>\n new SplitCovSplat({ covsplat });\nexport const combineCovSplat = ({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineCovSplat({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\n\nexport class SplitCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ covsplat }: { covsplat?: DynoVal }) {\n super({\n inTypes: { covsplat: CovSplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags\n ? null\n : `${flags} = ${covsplat ? `${covsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isCovSplatActive(${covsplat ? `${covsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${covsplat ? `${covsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${covsplat ? `${covsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${covsplat ? `${covsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${covsplat ? `${covsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${covsplat ? `${covsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${covsplat ? `${covsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${covsplat ? `${covsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${covsplat ? `${covsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${covsplat ? `${covsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineCovSplat\n extends Dyno<\n {\n covsplat: typeof CovSplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { covsplat: CovSplat },\n inputs: {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat: outCovSplat } = outputs;\n if (!outCovSplat) {\n return [];\n }\n const {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outCovSplat}.flags = ${flags ?? (covsplat ? `${covsplat}.flags` : \"0u\")};`,\n `${outCovSplat}.index = ${index ?? (covsplat ? `${covsplat}.index` : \"0\")};`,\n `${outCovSplat}.center = ${center ?? (covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outCovSplat}.rgba = ${rgba ?? (covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outCovSplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outCovSplat}.rgba.a = ${opacity};`,\n !x ? null : `${outCovSplat}.center.x = ${x};`,\n !y ? null : `${outCovSplat}.center.y = ${y};`,\n !z ? null : `${outCovSplat}.center.z = ${z};`,\n !r ? null : `${outCovSplat}.rgba.r = ${r};`,\n !g ? null : `${outCovSplat}.rgba.g = ${g};`,\n !b ? null : `${outCovSplat}.rgba.b = ${b};`,\n `${outCovSplat}.xxyyzz = ${covsplat ? `${covsplat}.xxyyzz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n `${outCovSplat}.xyxzyz = ${covsplat ? `${covsplat}.xyxzyz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = splatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n\nexport class PagedSplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = pagedSplatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n","import * as THREE from \"three\";\nimport { Dyno, unindentLines } from \"./base\";\nimport { CovSplat, Gsplat, defineCovSplat, defineGsplat } from \"./splats\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const outputPackedSplat = (\n gsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputPackedSplat({ gsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputCovSplat = (\n covsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputCovSplat({ covsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputExtendedSplat = (gsplat: DynoVal) =>\n new OutputExtendedSplat({ gsplat });\n\nexport const outputExtCovSplat = (covsplat: DynoVal) =>\n new OutputExtCovSplat({ covsplat });\n\nexport const outputSplatDepth = (\n gsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputSplatDepth({ gsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputCovSplatDepth = (\n covsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputCovSplatDepth({ covsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputRgba8 = (rgba8: DynoVal<\"vec4\">) =>\n new OutputRgba8({ rgba8 });\n\nexport class OutputPackedSplat extends Dyno<\n { gsplat: typeof Gsplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n gsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n gsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { gsplat: Gsplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { gsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (gsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n target = packSplatEncoding(${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u, 0u, 0u, 0u);\n }\n `);\n }\n return [\"target = uvec4(0u, 0u, 0u, 0u);\"];\n },\n });\n }\n}\n\nexport class OutputCovSplat extends Dyno<\n { covsplat: typeof CovSplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n covsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n covsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { covsplat: CovSplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { covsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (covsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n target = packSplatCovEncoding(${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtendedSplat extends Dyno<\n { gsplat: typeof Gsplat },\n Record\n> {\n constructor({\n gsplat,\n }: {\n gsplat?: DynoVal;\n }) {\n super({\n inTypes: { gsplat: Gsplat },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat } = inputs;\n if (gsplat) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n packSplatExt(target, target2, ${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n Record\n> {\n constructor({\n covsplat,\n }: {\n covsplat?: DynoVal;\n }) {\n super({\n inTypes: { covsplat: CovSplat },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat } = inputs;\n if (covsplat) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n packSplatExtCov(target, target2, ${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nclass OutputSplatDepth extends Dyno<\n {\n gsplat: typeof Gsplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n gsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n gsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { gsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (gsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isGsplatActive(${gsplat}.flags)) {\n vec3 center = ${gsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nclass OutputCovSplatDepth extends Dyno<\n {\n covsplat: typeof CovSplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n covsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n covsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { covsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (covsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isCovSplatActive(${covsplat}.flags)) {\n vec3 center = ${covsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nexport class OutputRgba8\n extends Dyno<{ rgba8: \"vec4\" }, { rgba8: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ rgba8 }: { rgba8?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { rgba8: \"vec4\" },\n inputs: { rgba8 },\n statements: ({ inputs, outputs }) => [\n `target = ${inputs.rgba8 ?? \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"rgba8\");\n }\n}\n","import type { IUniform } from \"three\";\nimport { Dyno, dynoDeclare } from \"./base\";\nimport type { DynoJsType, DynoType } from \"./types\";\nimport { DynoOutput, type DynoValue, type HasDynoOut } from \"./value\";\n\nexport const uniform = >(\n key: string,\n type: DynoType,\n value: V,\n) => new DynoUniform({ key, type, value });\nexport const dynoBool = (value = false, key?: string) =>\n new DynoBool({ key, value });\nexport const dynoUint = (value = 0, key?: string) =>\n new DynoUint({ key, value });\nexport const dynoInt = (value = 0, key?: string) => new DynoInt({ key, value });\nexport const dynoFloat = (value = 0.0, key?: string) =>\n new DynoFloat({ key, value });\n\nexport const dynoBvec2 = >(\n value: V,\n key?: string,\n) => new DynoBvec2({ key, value });\nexport const dynoUvec2 = >(\n value: V,\n key?: string,\n) => new DynoUvec2({ key, value });\nexport const dynoIvec2 = >(\n value: V,\n key?: string,\n) => new DynoIvec2({ key, value });\nexport const dynoVec2 = >(\n value: V,\n key?: string,\n) => new DynoVec2({ key, value });\n\nexport const dynoBvec3 = >(\n value: V,\n key?: string,\n) => new DynoBvec3({ key, value });\nexport const dynoUvec3 = >(\n value: V,\n key?: string,\n) => new DynoUvec3({ key, value });\nexport const dynoIvec3 = >(\n value: V,\n key?: string,\n) => new DynoIvec3({ key, value });\nexport const dynoVec3 = >(\n value: V,\n key?: string,\n) => new DynoVec3({ key, value });\n\nexport const dynoBvec4 = >(\n value: V,\n key?: string,\n) => new DynoBvec4({ key, value });\nexport const dynoUvec4 = >(\n value: V,\n key?: string,\n) => new DynoUvec4({ key, value });\nexport const dynoIvec4 = >(\n value: V,\n key?: string,\n) => new DynoIvec4({ key, value });\nexport const dynoVec4 = >(\n value: V,\n key?: string,\n) => new DynoVec4({ key, value });\n\nexport const dynoMat2 = >(\n value: V,\n key?: string,\n) => new DynoMat2({ key, value });\nexport const dynoMat2x2 = >(\n value: V,\n key?: string,\n) => new DynoMat2x2({ key, value });\nexport const dynoMat2x3 = >(\n value: V,\n key?: string,\n) => new DynoMat2x3({ key, value });\nexport const dynoMat2x4 = >(\n value: V,\n key?: string,\n) => new DynoMat2x4({ key, value });\n\nexport const dynoMat3 = >(\n value: V,\n key?: string,\n) => new DynoMat3({ key, value });\nexport const dynoMat3x2 = >(\n value: V,\n key?: string,\n) => new DynoMat3x2({ key, value });\nexport const dynoMat3x3 = >(\n value: V,\n key?: string,\n) => new DynoMat3x3({ key, value });\nexport const dynoMat3x4 = >(\n value: V,\n key?: string,\n) => new DynoMat3x4({ key, value });\n\nexport const dynoMat4 = >(\n value: V,\n key?: string,\n) => new DynoMat4({ key, value });\nexport const dynoMat4x2 = >(\n value: V,\n key?: string,\n) => new DynoMat4x2({ key, value });\nexport const dynoMat4x3 = >(\n value: V,\n key?: string,\n) => new DynoMat4x3({ key, value });\nexport const dynoMat4x4 = >(\n value: V,\n key?: string,\n) => new DynoMat4x4({ key, value });\n\nexport const dynoUsampler2D = >(\n value: V,\n key?: string,\n) => new DynoUsampler2D({ key, value });\nexport const dynoIsampler2D = >(\n value: V,\n key?: string,\n) => new DynoIsampler2D({ key, value });\nexport const dynoSampler2D = >(\n value: V,\n key?: string,\n) => new DynoSampler2D({ key, value });\n\nexport const dynoUsampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoUsampler2DArray({ key, value });\nexport const dynoIsampler2DArray = >(\n key: string,\n value: V,\n) => new DynoIsampler2DArray({ key, value });\nexport const dynoSampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoSampler2DArray({ key, value });\n\nexport const dynoUsampler3D = >(\n value: V,\n key?: string,\n) => new DynoUsampler3D({ key, value });\nexport const dynoIsampler3D = >(\n value: V,\n key?: string,\n) => new DynoIsampler3D({ key, value });\nexport const dynoSampler3D = >(\n value: V,\n key?: string,\n) => new DynoSampler3D({ key, value });\n\nexport const dynoUsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoUsamplerCube({ key, value });\nexport const dynoIsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoIsamplerCube({ key, value });\nexport const dynoSamplerCube = >(\n value: V,\n key?: string,\n) => new DynoSamplerCube({ key, value });\n\nexport const dynoSampler2DShadow = >(\n value: V,\n key?: string,\n) => new DynoSampler2DShadow({ key, value });\nexport const dynoSampler2DArrayShadow = <\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSampler2DArrayShadow({ key, value });\nexport const dynoSamplerCubeShadow = <\n V extends DynoJsType<\"samplerCubeShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSamplerCubeShadow({ key, value });\n\nexport class DynoUniform<\n T extends DynoType,\n K extends string = \"value\",\n V extends DynoJsType = DynoJsType,\n >\n extends Dyno, { [key in K]: T }>\n implements HasDynoOut\n{\n public type: T;\n public count?: number;\n public outKey: K;\n public value: V;\n public uniform: { value: V; type?: string };\n\n constructor({\n key,\n type,\n count,\n value,\n update,\n globals,\n }: {\n key?: K;\n type: T;\n count?: number;\n value: V;\n update?: (value: V) => V | undefined;\n globals?: ({\n inputs,\n outputs,\n }: { inputs: unknown; outputs: { [key in K]?: string } }) => string[];\n }) {\n key = (key ?? \"value\") as K;\n super({\n outTypes: { [key]: type } as { [key in K]: T },\n update: () => {\n if (update) {\n const value = update(this.value);\n if (value !== undefined) {\n this.value = value;\n }\n }\n this.uniform.value = this.value;\n },\n generate: ({ inputs, outputs }) => {\n const allGlobals = globals?.({ inputs, outputs }) ?? [];\n const uniforms: Record = {};\n const name = outputs[key];\n if (name) {\n allGlobals.push(`uniform ${dynoDeclare(name, type, count)};`);\n uniforms[name] = this.uniform;\n }\n return { globals: allGlobals, uniforms };\n },\n });\n this.type = type;\n this.count = count;\n this.value = value;\n this.uniform = { value };\n this.outKey = key;\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class DynoBool extends DynoUniform<\n \"bool\",\n K,\n boolean\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: boolean;\n update?: (value: boolean) => boolean | undefined;\n }) {\n super({ key, type: \"bool\", value, update });\n }\n}\n\nexport class DynoUint extends DynoUniform<\"uint\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"uint\", value, update });\n }\n}\n\nexport class DynoInt extends DynoUniform<\"int\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"int\", value, update });\n }\n}\n\nexport class DynoFloat extends DynoUniform<\n \"float\",\n K,\n number\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"float\", value, update });\n }\n}\n\nexport class DynoBvec2<\n K extends string,\n V extends DynoJsType<\"bvec2\">,\n> extends DynoUniform<\"bvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec2\", value, update });\n }\n}\n\nexport class DynoUvec2<\n K extends string,\n V extends DynoJsType<\"uvec2\">,\n> extends DynoUniform<\"uvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec2\", value, update });\n }\n}\n\nexport class DynoIvec2<\n K extends string,\n V extends DynoJsType<\"ivec2\">,\n> extends DynoUniform<\"ivec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec2\", value, update });\n }\n}\n\nexport class DynoVec2<\n K extends string,\n V extends DynoJsType<\"vec2\">,\n> extends DynoUniform<\"vec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec2\", value, update });\n }\n}\n\nexport class DynoBvec3<\n K extends string,\n V extends DynoJsType<\"bvec3\">,\n> extends DynoUniform<\"bvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec3\", value, update });\n }\n}\n\nexport class DynoUvec3<\n V extends DynoJsType<\"uvec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"uvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec3\", value, update });\n }\n}\n\nexport class DynoIvec3<\n V extends DynoJsType<\"ivec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"ivec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec3\", value, update });\n }\n}\n\nexport class DynoVec3<\n V extends DynoJsType<\"vec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec3\", value, update });\n }\n}\n\nexport class DynoBvec4<\n K extends string,\n V extends DynoJsType<\"bvec4\">,\n> extends DynoUniform<\"bvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec4\", value, update });\n }\n}\n\nexport class DynoUvec4<\n K extends string,\n V extends DynoJsType<\"uvec4\">,\n> extends DynoUniform<\"uvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec4\", value, update });\n }\n}\n\nexport class DynoIvec4<\n K extends string,\n V extends DynoJsType<\"ivec4\">,\n> extends DynoUniform<\"ivec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec4\", value, update });\n }\n}\n\nexport class DynoVec4<\n V extends DynoJsType<\"vec4\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec4\", value, update });\n }\n}\n\nexport class DynoMat2<\n K extends string,\n V extends DynoJsType<\"mat2\">,\n> extends DynoUniform<\"mat2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2\", value, update });\n }\n}\n\nexport class DynoMat2x2<\n K extends string,\n V extends DynoJsType<\"mat2x2\">,\n> extends DynoUniform<\"mat2x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x2\", value, update });\n }\n}\n\nexport class DynoMat2x3<\n K extends string,\n V extends DynoJsType<\"mat2x3\">,\n> extends DynoUniform<\"mat2x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x3\", value, update });\n }\n}\n\nexport class DynoMat2x4<\n K extends string,\n V extends DynoJsType<\"mat2x4\">,\n> extends DynoUniform<\"mat2x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x4\", value, update });\n }\n}\n\nexport class DynoMat3<\n K extends string,\n V extends DynoJsType<\"mat3\">,\n> extends DynoUniform<\"mat3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3\", value, update });\n }\n}\n\nexport class DynoMat3x2<\n K extends string,\n V extends DynoJsType<\"mat3x2\">,\n> extends DynoUniform<\"mat3x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x2\", value, update });\n }\n}\n\nexport class DynoMat3x3<\n K extends string,\n V extends DynoJsType<\"mat3x3\">,\n> extends DynoUniform<\"mat3x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x3\", value, update });\n }\n}\n\nexport class DynoMat3x4<\n K extends string,\n V extends DynoJsType<\"mat3x4\">,\n> extends DynoUniform<\"mat3x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x4\", value, update });\n }\n}\n\nexport class DynoMat4<\n K extends string,\n V extends DynoJsType<\"mat4\">,\n> extends DynoUniform<\"mat4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4\", value, update });\n }\n}\n\nexport class DynoMat4x2<\n K extends string,\n V extends DynoJsType<\"mat4x2\">,\n> extends DynoUniform<\"mat4x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x2\", value, update });\n }\n}\n\nexport class DynoMat4x3<\n K extends string,\n V extends DynoJsType<\"mat4x3\">,\n> extends DynoUniform<\"mat4x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x3\", value, update });\n }\n}\n\nexport class DynoMat4x4<\n K extends string,\n V extends DynoJsType<\"mat4x4\">,\n> extends DynoUniform<\"mat4x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x4\", value, update });\n }\n}\n\nexport class DynoUsampler2D<\n K extends string,\n V extends DynoJsType<\"usampler2D\">,\n> extends DynoUniform<\"usampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2D\", value, update });\n }\n}\n\nexport class DynoIsampler2D<\n K extends string,\n V extends DynoJsType<\"isampler2D\">,\n> extends DynoUniform<\"isampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2D\", value, update });\n }\n}\n\nexport class DynoSampler2D<\n K extends string,\n V extends DynoJsType<\"sampler2D\">,\n> extends DynoUniform<\"sampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2D\", value, update });\n }\n}\n\nexport class DynoUsampler2DArray<\n K extends string,\n V extends DynoJsType<\"usampler2DArray\">,\n> extends DynoUniform<\"usampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2DArray\", value, update });\n }\n}\n\nexport class DynoIsampler2DArray<\n K extends string,\n V extends DynoJsType<\"isampler2DArray\">,\n> extends DynoUniform<\"isampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2DArray\", value, update });\n }\n}\n\nexport class DynoSampler2DArray<\n K extends string,\n V extends DynoJsType<\"sampler2DArray\">,\n> extends DynoUniform<\"sampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArray\", value, update });\n }\n}\n\nexport class DynoUsampler3D<\n K extends string,\n V extends DynoJsType<\"usampler3D\">,\n> extends DynoUniform<\"usampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler3D\", value, update });\n }\n}\n\nexport class DynoIsampler3D<\n K extends string,\n V extends DynoJsType<\"isampler3D\">,\n> extends DynoUniform<\"isampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler3D\", value, update });\n }\n}\n\nexport class DynoSampler3D<\n K extends string,\n V extends DynoJsType<\"sampler3D\">,\n> extends DynoUniform<\"sampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler3D\", value, update });\n }\n}\n\nexport class DynoUsamplerCube<\n K extends string,\n V extends DynoJsType<\"usamplerCube\">,\n> extends DynoUniform<\"usamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usamplerCube\", value, update });\n }\n}\n\nexport class DynoIsamplerCube<\n K extends string,\n V extends DynoJsType<\"isamplerCube\">,\n> extends DynoUniform<\"isamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isamplerCube\", value, update });\n }\n}\n\nexport class DynoSamplerCube<\n K extends string,\n V extends DynoJsType<\"samplerCube\">,\n> extends DynoUniform<\"samplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCube\", value, update });\n }\n}\n\nexport class DynoSampler2DShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DShadow\">,\n> extends DynoUniform<\"sampler2DShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DShadow\", value, update });\n }\n}\n\nexport class DynoSampler2DArrayShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n> extends DynoUniform<\"sampler2DArrayShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArrayShadow\", value, update });\n }\n}\n\nexport class DynoSamplerCubeShadow<\n K extends string,\n V extends DynoJsType<\"samplerCubeShadow\">,\n> extends DynoUniform<\"samplerCubeShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCubeShadow\", value, update });\n }\n}\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","import { Gunzip } from \"fflate\";\nimport * as THREE from \"three\";\n\n// Miscellaneous utility functions for Spark\n\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SCALE_ZERO,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_MIN_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines.js\";\nimport { unindent } from \"./dyno/base.js\";\n\nexport const threeRevision = Number.parseInt(THREE.REVISION);\nexport const threeMrtArray = threeRevision >= 179;\n\nconst f32buffer = new Float32Array(1);\nconst u32buffer = new Uint32Array(f32buffer.buffer);\nconst supportsFloat16Array = \"Float16Array\" in globalThis;\nconst f16buffer = supportsFloat16Array\n ? new globalThis[\"Float16Array\" as keyof typeof globalThis](1)\n : null;\nconst u16buffer = new Uint16Array(f16buffer?.buffer);\n\n// Returns a normalized array of numbers\nexport function normalize(vec: number[]) {\n const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0));\n return vec.map((v) => v / norm);\n}\n\n// Reinterpret the bits of a float32 as a uint32\nexport function floatBitsToUint(f: number): number {\n f32buffer[0] = f;\n return u32buffer[0];\n}\n\n// Reinterpret the bits of a uint32 as a float32\nexport function uintBitsToFloat(u: number): number {\n u32buffer[0] = u;\n return f32buffer[0];\n}\n\nexport const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS;\nexport const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS;\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfNative(f: number): number {\n f16buffer[0] = f;\n return u16buffer[0];\n}\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfJS(f: number): number {\n // Store the value into the shared Float32 array.\n f32buffer[0] = f;\n const bits = u32buffer[0];\n\n // Extract sign (1 bit), exponent (8 bits), and fraction (23 bits)\n const sign = (bits >> 31) & 0x1;\n const exp = (bits >> 23) & 0xff;\n const frac = bits & 0x7fffff;\n const halfSign = sign << 15;\n\n // Handle special cases: NaN and Infinity\n if (exp === 0xff) {\n // NaN: set all exponent bits to 1 and some nonzero fraction bits.\n if (frac !== 0) {\n return halfSign | 0x7fff;\n }\n // Infinity\n return halfSign | 0x7c00;\n }\n\n // Adjust the exponent from float32 bias (127) to float16 bias (15)\n const newExp = exp - 127 + 15;\n\n // Handle overflow: too large to represent in half precision.\n if (newExp >= 0x1f) {\n return halfSign | 0x7c00; // Infinity\n }\n if (newExp <= 0) {\n // Handle subnormals and underflow.\n if (newExp < -10) {\n // Too small: underflows to zero.\n return halfSign;\n }\n // Convert to subnormal: add the implicit leading 1 to the fraction,\n // then shift to align with the half-precision's 10 fraction bits.\n const subFrac = (frac | 0x800000) >> (1 - newExp + 13);\n return halfSign | subFrac;\n }\n\n // Normalized half-precision number: shift fraction to fit into 10 bits.\n const halfFrac = frac >> 13;\n return halfSign | (newExp << 10) | halfFrac;\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfNative(u: number): number {\n u16buffer[0] = u;\n return f16buffer[0];\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfJS(h: number): number {\n // Extract the sign (1 bit), exponent (5 bits), and fraction (10 bits)\n const sign = (h >> 15) & 0x1;\n const exp = (h >> 10) & 0x1f;\n const frac = h & 0x3ff;\n\n let f32bits: number;\n\n if (exp === 0) {\n if (frac === 0) {\n // Zero (positive or negative)\n f32bits = sign << 31;\n } else {\n // Subnormal half-precision number.\n // Normalize the subnormal number:\n let mant = frac;\n let e = -14; // For half, the exponent for subnormals is fixed at -14.\n // Shift left until the implicit leading 1 is in place.\n while ((mant & 0x400) === 0) {\n // 0x400 === 1 << 10\n mant <<= 1;\n e--;\n }\n // Remove the leading 1 (which is now implicit)\n mant &= 0x3ff;\n // Convert the half exponent (e) to the 32-bit float exponent:\n const newExp = e + 127; // 32-bit float bias is 127.\n const newFrac = mant << 13; // Align to 23-bit fraction (23 - 10 = 13)\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n } else if (exp === 0x1f) {\n // Handle special cases for Infinity and NaN.\n if (frac === 0) {\n // Infinity\n f32bits = (sign << 31) | 0x7f800000;\n } else {\n // NaN (we choose a quiet NaN)\n f32bits = (sign << 31) | 0x7fc00000;\n }\n } else {\n // Normalized half-precision number.\n // Adjust exponent from half (bias 15) to float32 (bias 127)\n const newExp = exp - 15 + 127;\n const newFrac = frac << 13;\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n\n // Write the 32-bit bit pattern to the shared buffer,\n // then read it as a float32 to return a JavaScript number.\n u32buffer[0] = f32bits;\n return f32buffer[0];\n}\n\n// Convert a number 0..1 to a 0..255 uint\nexport function floatToUint8(v: number): number {\n // Converts from 0..1 float to 0..255 uint8\n return Math.max(0, Math.min(255, Math.round(v * 255)));\n}\n\n// Convert a number -1..1 to a -127..127 int\nexport function floatToSint8(v: number): number {\n // Converts from -1..1 float to -127..127 int8\n return Math.max(-127, Math.min(127, Math.round(v * 127)));\n}\n\n// Convert a 0..255 uint to a 0..1 float\nexport function Uint8ToFloat(v: number): number {\n // Converts from 0..255 uint8 to 0..1 float\n return v / 255;\n}\n\n// Convert a -127..127 int to a -1..1 float\nexport function Sint8ToFloat(v: number): number {\n // Converts from -127..127 int8 to -1..1 float\n return v / 127;\n}\n\n// A simple utility class for caching a fixed number of items\nexport class DataCache {\n // Maximum number of items to cache\n maxItems: number;\n\n // Function to fetch data for a key\n asyncFetch: (key: string) => Promise;\n\n // Function to dispose of data when it is no longer needed\n dispose?: (data: unknown) => void;\n\n // Array of cached items\n items: { key: string; data: unknown }[];\n\n // In-progress fetch promises\n pending: Map>;\n\n // Create a DataCache with a given function that fetches data not in the cache.\n constructor({\n asyncFetch,\n dispose,\n maxItems = 5,\n }: {\n asyncFetch: (key: string) => Promise;\n dispose?: (data: unknown) => void;\n maxItems?: number;\n }) {\n this.asyncFetch = asyncFetch;\n this.dispose = dispose;\n this.maxItems = maxItems;\n this.items = [];\n this.pending = new Map();\n }\n\n has(key: string): boolean {\n return this.items.some((item) => item.key === key);\n }\n\n getImmediate(key: string): unknown | undefined {\n const index = this.items.findIndex((item) => item.key === key);\n if (index >= 0) {\n // Data exists in our cache, move it to the end of the array\n const item = this.items.splice(index, 1)[0];\n this.items.push(item);\n // Return the cached data\n return item.data;\n }\n return undefined;\n }\n\n // Fetch data for the key, returning cached data if available.\n async getFetch(key: string): Promise {\n const immediate = this.getImmediate(key);\n if (immediate !== undefined) {\n return immediate;\n }\n\n let pending = this.pending.get(key);\n if (pending) {\n return pending;\n }\n\n pending = this.asyncFetch(key).then((data) => {\n this.pending.delete(key);\n\n // Add the data to the cache\n this.items.push({ key, data });\n // If the cache is too large, remove the oldest accessed item\n while (this.items.length > this.maxItems) {\n const removed = this.items.shift();\n if (removed && this.dispose) {\n this.dispose(removed.data);\n }\n }\n // Return the fetched data\n return data;\n });\n this.pending.set(key, pending);\n return pending;\n }\n}\n\n// Like Array.map but for objects\nexport function mapObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n const entries = Object.entries(obj).map(([key, value]) => [\n key,\n fn(value, key),\n ]);\n // Returns a new object with the mapped values\n return Object.fromEntries(entries);\n}\n\n// Like Array.map().filter() but for objects.\n// The callback fn() should return undefined to filter out the key.\nexport function mapFilterObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n // If no return (or return undefined), the key is not included in the result\n const entries = Object.entries(obj)\n .map(([key, value]) => [key, fn(value, key)])\n .filter(([_, value]) => value !== undefined);\n // Returns a new object with the filtered values\n return Object.fromEntries(entries);\n}\n\n// Recursively finds all ArrayBuffers in an object and returns them as an array\n// to use as transferable objects to send between workers.\nexport function getTransferable(ctx: unknown): Transferable[] {\n const buffers: Transferable[] = [];\n const seen = new Set();\n\n function traverse(obj: unknown) {\n if (obj && typeof obj === \"object\" && !seen.has(obj)) {\n seen.add(obj);\n\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n // Handles TypedArrays and DataView\n buffers.push(obj.buffer as ArrayBuffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n\n traverse(ctx);\n return buffers;\n}\n\n// Create an array of the given size and initialize element with initFunction()\nexport function newArray(\n n: number,\n initFunction: (index: number) => T,\n): T[] {\n // Creates a new array and calls a constructor function for each element with index\n return new Array(n).fill(null).map((_, i) => initFunction(i));\n}\n\n// A free list that has a pool of items of type T, with callbacks\n// for constructing, disposing, and checking if an item is valid for the given args.\nexport class FreeList {\n items: T[];\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n\n constructor({\n // Allocate a new item with the given args\n allocate,\n // Dispose of an item (optional, if GC is enough)\n dispose,\n // Check if an existing item in the list is valid for the given args,\n // allowing you to store heterogeneous items in the list.\n valid,\n }: {\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n }) {\n this.items = [];\n this.allocate = allocate;\n this.dispose = dispose;\n this.valid = valid;\n }\n\n // Allocate a new item from the free list, first checking if a existing item\n // on the freelist is valid for the given args.\n alloc(args: Args): T {\n while (true) {\n const item = this.items.pop();\n if (!item) {\n // No items in the free list, allocate a new one\n break;\n }\n if (this.valid(item, args)) {\n // Found a valid item, return it\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): found valid item. Reusing...`);\n return item;\n }\n // Item isn't valid for our args, dispose of it and try again\n if (this.dispose) {\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): disposing invalid item.`);\n this.dispose(item);\n }\n }\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): allocating new item`);\n return this.allocate(args);\n }\n\n free(item: T) {\n // Return item to the free list\n this.items.push(item);\n }\n\n disposeAll() {\n // Disposes of all items in the free list\n let item: T | undefined;\n item = this.items.pop();\n while (item) {\n if (this.dispose) {\n this.dispose(item);\n }\n item = this.items.pop();\n }\n }\n}\n\nexport function encodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) {\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n extA[i4] = floatBitsToUint(x);\n extA[i4 + 1] = floatBitsToUint(y);\n extA[i4 + 2] = floatBitsToUint(z);\n extA[i4 + 3] = toHalf(opacity);\n extB[i4] = toHalf(r) | (toHalf(g) << 16);\n extB[i4 + 1] = toHalf(b) | (toHalf(Math.log(scaleX)) << 16);\n extB[i4 + 2] = toHalf(Math.log(scaleY)) | (toHalf(Math.log(scaleZ)) << 16);\n extB[i4 + 3] = encodeQuatOctXy1010R12(quatX, quatY, quatZ, quatW);\n}\n\nexport function decodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n result.center.x = uintBitsToFloat(extA[i4]);\n result.center.y = uintBitsToFloat(extA[i4 + 1]);\n result.center.z = uintBitsToFloat(extA[i4 + 2]);\n result.opacity = fromHalf(extA[i4 + 3] & 0xffff);\n result.color.r = fromHalf(extB[i4] & 0xffff);\n result.color.g = fromHalf(extB[i4] >>> 16);\n result.color.b = fromHalf(extB[i4 + 1] & 0xffff);\n result.scales.x = Math.exp(fromHalf(extB[i4 + 1] >>> 16));\n result.scales.y = Math.exp(fromHalf(extB[i4 + 2] & 0xffff));\n result.scales.z = Math.exp(fromHalf(extB[i4 + 2] >>> 16));\n decodeQuatOctXy1010R12(extB[i4 + 3], result.quaternion);\n return result;\n}\n\n// Encode a PackedSplat as 4 consecutive Uint32 elements in the packedSplats array.\n// The center coordinates x,y,z are encoded as float16, the scales x,y,z as a\n// logarithmic uint8, rotation as three uint8s representing rotation axis and angle,\n// and RGBA as 4xuint8.\nexport function setPackedSplat(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * opacity : opacity);\n\n // Alternate internal encodings commented out below.\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n // Encode the splat as 4 consecutive Uint32 elements\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] =\n uScaleX | (uScaleY << 8) | (uScaleZ << 16) | (uQuatZ << 24);\n}\n\n// Encode the center coordinates x,y,z in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatCenter(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n) {\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n const i4 = index * 4;\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (packedSplats[i4 + 2] & 0xffff0000);\n}\n\n// Encode the scales x,y,z in the packedSplats Uint32Array, leaving all other fields as is.\nexport function setPackedSplatScales(\n packedSplats: Uint32Array,\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n encoding?: {\n lnScaleMin?: number;\n lnScaleMax?: number;\n },\n) {\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const i4 = index * 4;\n packedSplats[i4 + 3] =\n uScaleX |\n (uScaleY << 8) |\n (uScaleZ << 16) |\n (packedSplats[i4 + 3] & 0xff000000);\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempQuaternion = new THREE.Quaternion();\n\n// Encode the rotation quatX, quatY, quatZ, quatW in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatQuat(\n packedSplats: Uint32Array,\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n) {\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n const i4 = index * 4;\n packedSplats[i4 + 2] =\n (packedSplats[i4 + 2] & 0x0000ffff) | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] = (packedSplats[i4 + 3] & 0x00ffffff) | (uQuatZ << 24);\n}\n\n// Encode the RGBA color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgba(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n a: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * a : a);\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n}\n\n// Encode the RGB color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgb(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n\n const i4 = index * 4;\n packedSplats[i4] =\n uR | (uG << 8) | (uB << 16) | (packedSplats[i4] & 0xff000000);\n}\n\n// Encode the opacity in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatOpacity(\n packedSplats: Uint32Array,\n index: number,\n opacity: number,\n) {\n const uA = floatToUint8(opacity);\n\n const i4 = index * 4;\n packedSplats[i4] = (packedSplats[i4] & 0x00ffffff) | (uA << 24);\n}\n\nconst packedCenter = new THREE.Vector3();\nconst packedScales = new THREE.Vector3();\nconst packedQuaternion = new THREE.Quaternion();\nconst packedColor = new THREE.Color();\nconst packedFields = {\n center: packedCenter,\n scales: packedScales,\n quaternion: packedQuaternion,\n color: packedColor,\n opacity: 0.0,\n};\n\n// Unpack all components of a PackedSplat from the packedSplats Uint32Array into\n// THREE.js vector objects. The returned objects will be reused each call.\nexport function unpackSplat(\n packedSplats: Uint32Array,\n index: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n\n const i4 = index * 4;\n const word0 = packedSplats[i4];\n const word1 = packedSplats[i4 + 1];\n const word2 = packedSplats[i4 + 2];\n const word3 = packedSplats[i4 + 3];\n\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n result.color.set(\n rgbMin + ((word0 & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 8) & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 16) & 0xff) / 255) * rgbRange,\n );\n result.opacity = ((word0 >>> 24) & 0xff) / 255;\n if (encoding?.lodOpacity) {\n result.opacity = 2.0 * result.opacity;\n }\n result.center.set(\n fromHalf(word1 & 0xffff),\n fromHalf((word1 >>> 16) & 0xffff),\n fromHalf(word2 & 0xffff),\n );\n\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n const uScalesX = word3 & 0xff;\n result.scales.x =\n uScalesX === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesX - 1) * lnScaleScale);\n const uScalesY = (word3 >>> 8) & 0xff;\n result.scales.y =\n uScalesY === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesY - 1) * lnScaleScale);\n const uScalesZ = (word3 >>> 16) & 0xff;\n result.scales.z =\n uScalesZ === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesZ - 1) * lnScaleScale);\n\n const uQuat = ((word2 >>> 16) & 0xffff) | ((word3 >>> 8) & 0xff0000);\n decodeQuatOctXy88R8(uQuat, result.quaternion);\n // decodeQuatXyz888(uQuat, result.quaternion);\n // decodeQuatEulerXyz888(uQuat, result.quaternion);\n\n return result;\n}\n\n// Compute a texture array size that is large enough to fit numSplats. The most\n// common 2D texture size in WebGL2 is 4096x4096 which only allows for 16M splats,\n// so Spark stores Gsplat data in a 2D texture array, which most platforms support\n// up to 2048x2048x2048 = 8G splats. Allocations that fit within a single 2D texture\n// array layer will be rounded up to fill an entire texture row. Once a texture\n// array layer is filled, the allocation will be rounded up to fill an entire layer.\n// This is done so the entire set of splats can be covered by min/max coords across\n// each dimension.\nexport function getTextureSize(numSplats: number): {\n width: number;\n height: number;\n depth: number;\n maxSplats: number;\n} {\n // Compute a texture array size that is large enough to fit numSplats.\n // The width is always 2048, the height sized to fit the splats but no larger than 2048.\n // The depth is the number of layers needed to fit the splats.\n // maxSplats is computed as the new total available splats that can be stored.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n const maxSplats = width * height * depth;\n return { width, height, depth, maxSplats };\n}\n\nexport function computeMaxSplats(numSplats: number): number {\n // Compute the size of a Gsplat array texture (2048x2048xD) that can fit\n // numSplats splats, and return the total number of splats that can be stored\n // in such a texture.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n return width * height * depth;\n}\n\n// Heuristic function to determine if we are running on a mobile device.\nexport function isMobile(): boolean {\n if (navigator.platform.toLowerCase().startsWith(\"win\")) {\n return false;\n }\n if (navigator.maxTouchPoints > 0) {\n // Touch-enabled device, assume it's mobile\n return true;\n }\n return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test(\n navigator.userAgent,\n );\n}\n\n// Heuristic function to determine if we are running on an Android device.\n// (does not include Oculus Quest)\nexport function isAndroid(): boolean {\n return (\n /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent)\n );\n}\n\n// Heuristic function to determine if we are running on an Oculus Quest device.\nexport function isOculus(): boolean {\n return !!navigator.xr && /Oculus/.test(navigator.userAgent);\n}\n\nexport function isQuest2() {\n return isOculus() && /Quest 2/.test(navigator.userAgent);\n}\n\nexport function isIos(): boolean {\n return /iPhone|iPad/.test(navigator.userAgent);\n}\n\nexport function isVisionPro(): boolean {\n return (\n !!navigator.xr &&\n isIos() &&\n /Safari/.test(navigator.userAgent) &&\n isMobile()\n );\n}\n\n// Take an array of RGBA8 encoded pixels and flip them vertically in-place.\n// This is useful for converting between top-left and bottom-left coordinate systems\n// in standard 2D images vs WebGL2.\nexport function flipPixels(\n pixels: Uint8Array,\n width: number,\n height: number,\n): Uint8Array {\n // Flips pixels vertically in-place, returns original array.\n const tempLine = new Uint8Array(width * 4);\n\n // Only need to process half the height since we're swapping\n for (let y = 0; y < height / 2; y++) {\n const topOffset = y * width * 4;\n const bottomOffset = (height - 1 - y) * width * 4;\n\n // Save top line to temp buffer\n tempLine.set(pixels.subarray(topOffset, topOffset + width * 4));\n // Move bottom line to top\n pixels.set(\n pixels.subarray(bottomOffset, bottomOffset + width * 4),\n topOffset,\n );\n // Move saved top line to bottom\n pixels.set(tempLine, bottomOffset);\n }\n return pixels;\n}\n\n// Utility to take an array of RGBA8 encoded pixels and convert them to a\n// PNG-encoded image data URL that can be downloaded to the client.\nexport function pixelsToPngUrl(\n pixels: Uint8Array,\n width: number,\n height: number,\n): string {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Can't get 2d context\");\n }\n const imageData = ctx.createImageData(width, height);\n imageData.data.set(pixels);\n ctx.putImageData(imageData, 0, 0);\n return canvas.toDataURL(\"image/png\");\n}\n\n// Utility to filter out an undefined values from an object.\nexport function omitUndefined(obj: T): Partial {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => value !== undefined),\n ) as Partial;\n}\n\n// \"Identity\" vertex shader that just passes through the position.\nexport const IDENT_VERTEX_SHADER = unindent(`\n precision highp float;\n\n in vec3 position;\n\n void main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n }\n`);\n\n// Returns the average position of an array of THREE.Vector3.\nexport function averagePositions(positions: THREE.Vector3[]): THREE.Vector3 {\n const sum = new THREE.Vector3();\n for (const position of positions) {\n sum.add(position);\n }\n return sum.divideScalar(positions.length);\n}\n\n// Returns an \"average\" of an array of THREE.Quaternion objects.\n// Note that this is not a spherical lerp between quaternions but\n// rather an arithmetic mean that is normalized to unit length.\nexport function averageQuaternions(\n quaternions: THREE.Quaternion[],\n): THREE.Quaternion {\n if (quaternions.length === 0) {\n return new THREE.Quaternion();\n }\n const sum = quaternions[0].clone();\n for (let i = 1; i < quaternions.length; i++) {\n if (quaternions[i].dot(quaternions[0]) < 0.0) {\n sum.x -= quaternions[i].x;\n sum.y -= quaternions[i].y;\n sum.z -= quaternions[i].z;\n sum.w -= quaternions[i].w;\n } else {\n sum.x += quaternions[i].x;\n sum.y += quaternions[i].y;\n sum.z += quaternions[i].z;\n sum.w += quaternions[i].w;\n }\n }\n return sum.normalize();\n}\n\n// Compare two coordinates given by matrix1 and matrix2, returning the distance\n// between their origins and the \"coincidence\" of their orientations, defined\n// as the dot product of their \"-z\" axes.\nexport function coinciDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n const direction1 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix1)\n .sub(origin1)\n .normalize();\n const direction2 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix2)\n .sub(origin2)\n .normalize();\n\n const distance = origin1.distanceTo(origin2);\n const coincidence = direction1.dot(direction2);\n return { distance, coincidence };\n}\n\n// Utility function that returns whether two coordinate system origins\n// given by matrix1 and matrix2 are within a certain maxDistance of each other.\nexport function withinDist({\n matrix1,\n matrix2,\n maxDistance,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n}): boolean {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n return origin1.distanceTo(origin2) <= maxDistance;\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined by a maxDistance and a minCoincidence.\nexport function withinCoinciDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoincidence,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoincidence?: number;\n}): boolean {\n const { distance, coincidence } = coinciDist(matrix1, matrix2);\n return (\n distance <= maxDistance &&\n (minCoincidence == null || coincidence >= minCoincidence)\n );\n}\n\n// Compare two coordinate systems given by matrix1 and matrix2, returning the\n// distance between their origins and the \"coorientation\" of their orientations,\n// define as the dot product of their quaternion transforms (flipping their\n// orientation to be on the same hemisphere if necessary).\nexport function coorientDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const [origin1, rotate1] = [new THREE.Vector3(), new THREE.Quaternion()];\n const [origin2, rotate2] = [new THREE.Vector3(), new THREE.Quaternion()];\n matrix1.decompose(origin1, rotate1, new THREE.Vector3());\n matrix2.decompose(origin2, rotate2, new THREE.Vector3());\n\n const distance = origin1.distanceTo(origin2);\n const coorient = Math.abs(rotate1.dot(rotate2));\n return { distance, coorient };\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined a maxDistance and a minCoorient.\nexport function withinCoorientDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoorient,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoorient?: number;\n}): boolean {\n const { distance, coorient } = coorientDist(matrix1, matrix2);\n return (\n distance <= maxDistance && (minCoorient == null || coorient >= minCoorient)\n );\n}\n\n// Like Math.sign but with a custom epsilon value.\nexport function epsilonSign(value: number, epsilon = 0.001): number {\n if (Math.abs(value) < epsilon) {\n return 0;\n }\n return Math.sign(value);\n}\n\n// Encode a THREE.Quaternion into a 24-bit integer, converting the xyz coordinates\n// to signed 8-bit integers (w can be derived from xyz), and flipping the sign\n// of the quaternion if necessary to make this possible (q == -q for quaternions).\nexport function encodeQuatXyz888(q: THREE.Quaternion): number {\n const negQuat = q.w < 0.0;\n const iQuatX = floatToSint8(negQuat ? -q.x : q.x);\n const iQuatY = floatToSint8(negQuat ? -q.y : q.y);\n const iQuatZ = floatToSint8(negQuat ? -q.z : q.z);\n const uQuatX = iQuatX & 0xff;\n const uQuatY = iQuatY & 0xff;\n const uQuatZ = iQuatZ & 0xff;\n return uQuatX | (uQuatY << 8) | (uQuatZ << 16);\n}\n\n// Decode a 24-bit integer of the quaternion's xyz coordinates into a THREE.Quaternion.\nexport function decodeQuatXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n const iQuatX = (encoded << 24) >> 24;\n const iQuatY = (encoded << 16) >> 24;\n const iQuatZ = (encoded << 8) >> 24;\n out.set(iQuatX / 127.0, iQuatY / 127.0, iQuatZ / 127.0, 0.0);\n const dotSelf = out.x * out.x + out.y * out.y + out.z * out.z;\n out.w = Math.sqrt(Math.max(0.0, 1.0 - dotSelf));\n return out;\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempNormalizedQuaternion = new THREE.Quaternion();\nconst tempAxis = new THREE.Vector3();\n\n/**\n * Encodes a THREE.Quaternion into a 24‐bit integer.\n *\n * Bit layout (LSB → MSB):\n * - Bits 0–7: quantized U (8 bits)\n * - Bits 8–15: quantized V (8 bits)\n * - Bits 16–23: quantized angle θ (8 bits) from [0,π]\n *\n * This version uses folded octahedral mapping (all inline).\n */\nexport function encodeQuatOctXy88R8(q: THREE.Quaternion): number {\n // Force the minimal representation (q.w >= 0)\n const qnorm = tempNormalizedQuaternion.copy(q).normalize();\n if (qnorm.w < 0) {\n qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w);\n }\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnorm.w);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(\n qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z,\n );\n const axis =\n xyz_norm < 1e-6\n ? tempAxis.set(1, 0, 0)\n : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm);\n // const foldAxis = (axis.z < 0);\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z);\n let p_x = axis.x / sum;\n let p_y = axis.y / sum;\n // Fold the lower hemisphere.\n if (axis.z < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 7 bits (0..127)\n const quantU = Math.round(u_f * 255);\n const quantV = Math.round(v_f * 255);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 10 bits (0..1023) ---\n const angleInt = Math.round(theta * (255 / Math.PI));\n\n // Pack into 24 bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16) | (quantV << 8) | quantU;\n}\n\n/**\n * Decodes a 24‐bit encoded quaternion (packed in a number) back to a THREE.Quaternion.\n *\n * Assumes the same bit layout as in encodeQuatOctXy88R8.\n */\nexport function decodeQuatOctXy88R8(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 8‐bit quantU and quantV, and 8‐bit angleInt.\n const quantU = encoded & 0xff; // bits 0–7\n const quantV = (encoded >>> 8) & 0xff; // bits 8–15\n const angleInt = (encoded >>> 16) & 0xff; // bits 16–23\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 255;\n const v_f = quantV / 255;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axis = tempAxis.set(f_x, f_y, f_z).normalize();\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 255) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axis.x * s, axis.y * s, axis.z * s, w);\n return out;\n}\n\n/**\n * Encodes a THREE.Quaternion into a 24‑bit unsigned integer\n * by converting it to Euler angles (roll, pitch, yaw).\n * The Euler angles are assumed to be in radians in the range [-π, π].\n * Each angle is normalized to [0,1] and quantized to 8 bits.\n * Bit layout (LSB→MSB):\n * - Bits 0–7: roll (quantized)\n * - Bits 8–15: pitch (quantized)\n * - Bits 16–23: yaw (quantized)\n */\nexport function encodeQuatEulerXyz888(q: THREE.Quaternion): number {\n // Normalize quaternion to ensure a proper rotation.\n const qNorm = q.clone().normalize();\n\n // Tait–Bryan angles (roll, pitch, yaw)\n const sinr_cosp = 2.0 * (qNorm.w * qNorm.x + qNorm.y * qNorm.z);\n const cosr_cosp = 1.0 - 2.0 * (qNorm.x * qNorm.x + qNorm.y * qNorm.y);\n const roll = Math.atan2(sinr_cosp, cosr_cosp);\n\n const sinp = 2.0 * (qNorm.w * qNorm.y - qNorm.z * qNorm.x);\n const pitch =\n Math.abs(sinp) >= 1.0 ? Math.sign(sinp) * (Math.PI / 2) : Math.asin(sinp);\n\n const siny_cosp = 2.0 * (qNorm.w * qNorm.z + qNorm.x * qNorm.y);\n const cosy_cosp = 1.0 - 2.0 * (qNorm.y * qNorm.y + qNorm.z * qNorm.z);\n const yaw = Math.atan2(siny_cosp, cosy_cosp);\n\n // Map each angle from [-π, π] to [0, 1]\n const normRoll = (roll + Math.PI) / (2 * Math.PI);\n const normPitch = (pitch + Math.PI) / (2 * Math.PI);\n const normYaw = (yaw + Math.PI) / (2 * Math.PI);\n\n // Quantize to 8 bits (0 to 255)\n const rollQ = Math.round(normRoll * 255);\n const pitchQ = Math.round(normPitch * 255);\n const yawQ = Math.round(normYaw * 255);\n\n // Pack into a 24-bit unsigned integer:\n // Bits 0–7: rollQ, Bits 8–15: pitchQ, Bits 16–23: yawQ.\n return (yawQ << 16) | (pitchQ << 8) | rollQ;\n}\n\n/**\n * Decodes a 24‑bit unsigned integer into a THREE.Quaternion\n * by unpacking three 8‑bit values (roll, pitch, yaw) in the range [0,255]\n * and then converting them back to Euler angles in [-π, π] and to a quaternion.\n */\nexport function decodeQuatEulerXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Unpack 8‑bit values.\n const rollQ = encoded & 0xff;\n const pitchQ = (encoded >>> 8) & 0xff;\n const yawQ = (encoded >>> 16) & 0xff;\n\n // Convert quantized values back to normalized [0,1] values.\n const normRoll = rollQ / 255;\n const normPitch = pitchQ / 255;\n const normYaw = yawQ / 255;\n\n // Map from [0,1] to [-π, π]\n const roll = normRoll * (2 * Math.PI) - Math.PI;\n const pitch = normPitch * (2 * Math.PI) - Math.PI;\n const yaw = normYaw * (2 * Math.PI) - Math.PI;\n\n // Convert Euler angles to quaternion (Tait–Bryan: roll, pitch, yaw).\n const cr = Math.cos(roll * 0.5);\n const sr = Math.sin(roll * 0.5);\n const cp = Math.cos(pitch * 0.5);\n const sp = Math.sin(pitch * 0.5);\n const cy = Math.cos(yaw * 0.5);\n const sy = Math.sin(yaw * 0.5);\n\n out.w = cr * cp * cy + sr * sp * sy;\n out.x = sr * cp * cy - cr * sp * sy;\n out.y = cr * sp * cy + sr * cp * sy;\n out.z = cr * cp * sy - sr * sp * cy;\n out.normalize();\n return out;\n}\n\nexport function encodeQuatOctXy1010R12(\n qx: number,\n qy: number,\n qz: number,\n qw: number,\n): number {\n const qlen = Math.sqrt(qx * qx + qy * qy + qz * qz + qw * qw);\n // Force the minimal representation (q.w >= 0)\n const qnx = (qw < 0 ? -qx : qx) / qlen;\n const qny = (qw < 0 ? -qy : qy) / qlen;\n const qnz = (qw < 0 ? -qz : qz) / qlen;\n const qnw = (qw < 0 ? -qw : qw) / qlen;\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnw);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(qnx * qnx + qny * qny + qnz * qnz);\n const axisX = xyz_norm < 1e-6 ? 1 : qnx / xyz_norm;\n const axisY = xyz_norm < 1e-6 ? 0 : qny / xyz_norm;\n const axisZ = xyz_norm < 1e-6 ? 0 : qnz / xyz_norm;\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axisX) + Math.abs(axisY) + Math.abs(axisZ);\n let p_x = axisX / sum;\n let p_y = axisY / sum;\n // Fold the lower hemisphere.\n if (axisZ < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 10 bits (0..1023)\n const quantU = Math.round(u_f * 1023);\n const quantV = Math.round(v_f * 1023);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 12 bits (0..4095) ---\n const angleInt = Math.round(theta * (4095 / Math.PI));\n\n // Pack into 32 bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20) | (quantV << 10) | quantU;\n}\n\nexport function decodeQuatOctXy1010R12(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 10‐bit quantU and quantV, and 12‐bit angleInt.\n const quantU = encoded & 0x3ff; // bits 0–9\n const quantV = (encoded >>> 10) & 0x3ff; // bits 10–19\n const angleInt = (encoded >>> 20) & 0xfff; // bits 20–31\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 1023;\n const v_f = quantV / 1023;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axisLen = Math.sqrt(f_x * f_x + f_y * f_y + f_z * f_z);\n const axisX = axisLen < 1e-6 ? 0 : f_x / axisLen;\n const axisY = axisLen < 1e-6 ? 0 : f_y / axisLen;\n const axisZ = axisLen < 1e-6 ? 0 : f_z / axisLen;\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 4095) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axisX * s, axisY * s, axisZ * s, w);\n return out;\n}\n\n// Pack four signed 8-bit values into a single uint32.\nfunction packSint8Bytes(\n b0: number,\n b1: number,\n b2: number,\n b3: number,\n): number {\n const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127)));\n const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127)));\n const clampedB2 = Math.round(Math.max(-127, Math.min(127, b2 * 127)));\n const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127)));\n return (\n (clampedB0 & 0xff) |\n ((clampedB1 & 0xff) << 8) |\n ((clampedB2 & 0xff) << 16) |\n ((clampedB3 & 0xff) << 24)\n );\n}\n\n// Encode an array of 9 signed RGB SH1 coefficients (clamped to [-1,1]) into\n// a pair of uint32 values, where each coefficient is stored as a sint7\nexport function encodeSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n encoding?: {\n sh1Max?: number;\n },\n) {\n const sh1Max = encoding?.sh1Max ?? 1;\n const sh1Scale = 63 / sh1Max;\n\n // Pack sint7 values into 2 x uint32\n const base = index * 2;\n for (let i = 0; i < 9; ++i) {\n const s = sh1Rgb[i] * sh1Scale;\n const value = Math.round(Math.max(-63, Math.min(63, s))) & 0x7f;\n const bitStart = i * 7;\n const bitEnd = bitStart + 7;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh1Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh1Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\n// Encode an array of 15 signed RGB SH2 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint8.\nexport function encodeSh2Rgb(\n sh2Array: Uint32Array,\n index: number,\n sh2Rgb: Float32Array,\n encoding?: {\n sh2Max?: number;\n },\n) {\n const sh2Max = encoding?.sh2Max ?? 1;\n const sh2Scale = 1 / sh2Max;\n\n // Pack sint8 values into 4 x uint32\n sh2Array[index * 4 + 0] = packSint8Bytes(\n sh2Rgb[0] * sh2Scale,\n sh2Rgb[1] * sh2Scale,\n sh2Rgb[2] * sh2Scale,\n sh2Rgb[3] * sh2Scale,\n );\n sh2Array[index * 4 + 1] = packSint8Bytes(\n sh2Rgb[4] * sh2Scale,\n sh2Rgb[5] * sh2Scale,\n sh2Rgb[6] * sh2Scale,\n sh2Rgb[7] * sh2Scale,\n );\n sh2Array[index * 4 + 2] = packSint8Bytes(\n sh2Rgb[8] * sh2Scale,\n sh2Rgb[9] * sh2Scale,\n sh2Rgb[10] * sh2Scale,\n sh2Rgb[11] * sh2Scale,\n );\n sh2Array[index * 4 + 3] = packSint8Bytes(\n sh2Rgb[12] * sh2Scale,\n sh2Rgb[13] * sh2Scale,\n sh2Rgb[14] * sh2Scale,\n 0,\n );\n}\n\n// Encode an array of 21 signed RGB SH3 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint6.\nexport function encodeSh3Rgb(\n sh3Array: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n encoding?: {\n sh3Max?: number;\n },\n) {\n const sh3Max = encoding?.sh3Max ?? 1;\n const sh3Scale = 31 / sh3Max;\n\n // Pack sint6 values into 4 x uint32\n const base = index * 4;\n for (let i = 0; i < 21; ++i) {\n const s = sh3Rgb[i] * sh3Scale;\n const value = Math.round(Math.max(-31, Math.min(31, s))) & 0x3f;\n const bitStart = i * 6;\n const bitEnd = bitStart + 6;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh3Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh3Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\nexport function encodeExtRgb(r: number, g: number, b: number): number {\n const ar = Math.abs(r);\n const ag = Math.abs(g);\n const ab = Math.abs(b);\n const maxAbs = Math.max(ar, ag, ab);\n const base = Math.floor(Math.log2(maxAbs));\n const biasedBase = Math.max(0, Math.min(31, base + 15));\n const divisor = 2 ** (biasedBase - 15) / 255;\n const uR = Math.round(Math.max(0, Math.min(255, ar / divisor)));\n const uG = Math.round(Math.max(0, Math.min(255, ag / divisor)));\n const uB = Math.round(Math.max(0, Math.min(255, ab / divisor)));\n const expSigns =\n (biasedBase << 3) |\n ((r < 0 ? 0x1 : 0) | (g < 0 ? 0x2 : 0) | (b < 0 ? 0x4 : 0));\n return uR | (uG << 8) | (uB << 16) | (expSigns << 24);\n}\n\nexport function decodeExtRgb(encoded: number): THREE.Color {\n const color = packedFields.color;\n const biasedBase = (encoded >>> 27) & 0x1f;\n const divisor = 2 ** (biasedBase - 15) / 255;\n const r = (encoded & 0xff) * divisor;\n const g = ((encoded >>> 8) & 0xff) * divisor;\n const b = ((encoded >>> 16) & 0xff) * divisor;\n color.r = encoded & 0x1000000 ? -r : r;\n color.g = encoded & 0x2000000 ? -g : g;\n color.b = encoded & 0x4000000 ? -b : b;\n return color;\n}\n\nexport function encodeExtSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n}\n\nexport function encodeExtSh12Rgb(\n sh1Array: Uint32Array,\n sh2Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n sh2Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n sh1Array[i4 + 3] = encodeExtRgb(sh2Rgb[0], sh2Rgb[1], sh2Rgb[2]);\n for (let k = 1; k < 5; ++k) {\n const k5 = k * 5;\n sh2Array[i4 + (k - 1)] = encodeExtRgb(\n sh2Rgb[k5],\n sh2Rgb[k5 + 1],\n sh2Rgb[k5 + 2],\n );\n }\n}\n\nexport function encodeExt3Rgb(\n sh3ArrayA: Uint32Array,\n sh3ArrayB: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 4; ++k) {\n const k3 = k * 3;\n sh3ArrayA[i4 + k] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n for (let k = 4; k < 7; ++k) {\n const k3 = k * 3;\n sh3ArrayB[i4 + (k - 4)] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n}\n\n// Partially decompress a gzip-encoded Uint8Array, returning a Uint8Array of\n// the specified numBytes from the start of the file.\nexport function decompressPartialGzip(\n fileBytes: Uint8Array,\n numBytes: number,\n): Uint8Array {\n const chunks: Uint8Array[] = [];\n let totalBytes = 0;\n let result: Uint8Array | null = null;\n\n const gunzip = new Gunzip((data, final) => {\n chunks.push(data);\n totalBytes += data.length;\n if (final || totalBytes >= numBytes) {\n const allBytes = new Uint8Array(totalBytes);\n let offset = 0;\n for (const chunk of chunks) {\n allBytes.set(chunk, offset);\n offset += chunk.length;\n }\n result = allBytes.slice(0, numBytes);\n }\n });\n\n const CHUNK_SIZE = 1024;\n let offset = 0;\n while (result == null && offset < fileBytes.length) {\n const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE);\n gunzip.push(chunk, false);\n offset += CHUNK_SIZE;\n }\n\n if (result == null) {\n gunzip.push(new Uint8Array(), true);\n if (result == null) {\n throw new Error(\"Failed to decompress partial gzip\");\n }\n }\n return result;\n}\n\nexport class GunzipReader {\n fileBytes: Uint8Array;\n chunkBytes: number;\n\n chunks: Uint8Array[];\n totalBytes: number;\n reader: ReadableStreamDefaultReader;\n\n constructor({\n fileBytes,\n chunkBytes = 64 * 1024,\n }: { fileBytes: Uint8Array; chunkBytes?: number }) {\n this.fileBytes = fileBytes;\n this.chunkBytes = chunkBytes;\n this.chunks = [];\n this.totalBytes = 0;\n\n const ds = new DecompressionStream(\"gzip\");\n const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds);\n this.reader = decompressionStream.getReader();\n }\n\n async read(numBytes: number): Promise {\n while (this.totalBytes < numBytes) {\n const { value: chunk, done: readerDone } = await this.reader.read();\n if (readerDone) {\n break;\n }\n\n this.chunks.push(chunk);\n this.totalBytes += chunk.length;\n }\n\n if (this.totalBytes < numBytes) {\n throw new Error(\n `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}`,\n );\n }\n\n const allBytes = new Uint8Array(this.totalBytes);\n let outOffset = 0;\n for (const chunk of this.chunks) {\n allBytes.set(chunk, outOffset);\n outOffset += chunk.length;\n }\n\n const result = allBytes.subarray(0, numBytes);\n this.chunks = [allBytes.subarray(numBytes)];\n this.totalBytes -= numBytes;\n return result;\n }\n}\n\nexport function uploadU32DataTextureRows(\n renderer: THREE.WebGLRenderer,\n texture: THREE.Texture,\n width: number,\n rows: number,\n data: Uint32Array,\n) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n\n const props = renderer.properties.get(texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props?.__webglTexture;\n if (!glTexture) {\n throw new Error(\"texture not found\");\n }\n // Note: instead of saving and restoring the pixelStorei parameters\n // renderer.state.pixelStorei can be used with Three.js >= r184\n const currentFlipY = gl.getParameter(gl.UNPACK_FLIP_Y_WEBGL);\n const currentPremultiply = gl.getParameter(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL);\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n width,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n data,\n );\n renderer.state.unbindTexture();\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, currentFlipY);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, currentPremultiply);\n}\n","import * as THREE from \"three\";\n\nimport { IDENT_VERTEX_SHADER } from \"../utils\";\nimport { Compilation, type Dyno, type IOTypes } from \"./base\";\n\nexport class DynoProgram {\n graph: Dyno;\n template: DynoProgramTemplate;\n inputs: Record;\n outputs: Record;\n shader: string;\n uniforms: Record;\n updaters: (() => void)[];\n\n constructor({\n graph,\n inputs,\n outputs,\n template,\n consoleLog,\n }: {\n graph: Dyno;\n inputs?: Record;\n outputs?: Record;\n template: DynoProgramTemplate;\n consoleLog?: boolean;\n }) {\n this.graph = graph;\n this.template = template;\n this.inputs = inputs ?? {};\n this.outputs = outputs ?? {};\n\n const compile = new Compilation({ indent: this.template.indent });\n for (const key in this.outputs) {\n if (this.outputs[key]) {\n compile.declares.add(this.outputs[key]);\n }\n }\n const statements = graph.compile({\n inputs: this.inputs,\n outputs: this.outputs,\n compile,\n });\n\n this.shader = template.generate({ globals: compile.globals, statements });\n this.uniforms = compile.uniforms;\n this.updaters = compile.updaters;\n if (consoleLog) {\n console.log(\"*** COMPILED SHADER\", this.shader);\n console.log(\"*** UNIFORMS\", this.uniforms);\n }\n }\n\n prepareMaterial(): THREE.RawShaderMaterial {\n return getMaterial(this);\n }\n\n update() {\n for (const updater of this.updaters) {\n updater();\n }\n }\n}\n\nexport class DynoProgramTemplate {\n before: string;\n between: string;\n after: string;\n indent: string;\n\n constructor(template: string) {\n const globals = template.match(/^([ \\t]*)\\{\\{\\s*GLOBALS\\s*\\}\\}/m);\n const statements = template.match(/^([ \\t]*)\\{\\{\\s*STATEMENTS\\s*\\}\\}/m);\n if (!globals || !statements) {\n throw new Error(\n \"Template must contain {{ GLOBALS }} and {{ STATEMENTS }}\",\n );\n }\n\n this.before = template.substring(0, globals.index);\n this.between = template.substring(\n (globals.index as number) + globals[0].length,\n statements.index,\n );\n this.after = template.substring(\n (statements.index as number) + statements[0].length,\n );\n this.indent = statements[1];\n }\n\n generate({\n globals,\n statements,\n }: { globals: Set; statements: string[] }): string {\n return (\n this.before +\n Array.from(globals).join(\"\\n\\n\") +\n this.between +\n statements.map((s) => this.indent + s).join(\"\\n\") +\n this.after\n );\n }\n}\n\nconst programMaterial = new WeakMap();\n\nfunction getMaterial(program: DynoProgram): THREE.RawShaderMaterial {\n let material = programMaterial.get(program);\n if (material) {\n return material;\n }\n\n material = new THREE.RawShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: IDENT_VERTEX_SHADER,\n fragmentShader: program.shader,\n uniforms: program.uniforms,\n });\n programMaterial.set(program, material);\n return material;\n}\n","import {\n type AllFloatTypes,\n type AllIntTypes,\n type AllSignedTypes,\n type AllValueTypes,\n type BaseType,\n type BoolTypes,\n type FloatTypes,\n type IntTypes,\n type SignedTypes,\n type UintTypes,\n type ValueTypes,\n isAllFloatType,\n isFloatType,\n isIntType,\n isMat2,\n isMat3,\n isMat4,\n isUintType,\n} from \"./types\";\n\nexport type AddOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : never);\n\nexport type SubOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type MulOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : A extends IntTypes\n ? B extends A\n ? A\n : never\n : B extends IntTypes\n ? A extends B\n ? A\n : never\n : A extends UintTypes\n ? B extends A\n ? A\n : never\n : B extends UintTypes\n ? A extends B\n ? A\n : never\n : // Vector * Matrix/Vector\n A extends \"vec2\"\n ? B extends \"vec2\" | \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : B extends \"mat3x2\"\n ? \"vec3\"\n : B extends \"mat4x2\"\n ? \"vec4\"\n : never\n : A extends \"vec3\"\n ? B extends \"mat2x3\"\n ? \"vec2\"\n : B extends \"vec3\" | \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : B extends \"mat4x3\"\n ? \"vec4\"\n : never\n : A extends \"vec4\"\n ? B extends \"mat2x4\"\n ? \"vec2\"\n : B extends \"mat3x4\"\n ? \"vec3\"\n : B extends \"vec4\" | \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Vector\n B extends \"vec2\"\n ? A extends \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : A extends \"mat2x3\"\n ? \"vec3\"\n : A extends \"mat2x4\"\n ? \"vec4\"\n : never\n : B extends \"vec3\"\n ? A extends \"mat3x2\"\n ? \"vec2\"\n : A extends \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : A extends \"mat3x4\"\n ? \"vec4\"\n : never\n : B extends \"vec4\"\n ? A extends \"mat4x2\"\n ? \"vec2\"\n : A extends \"mat4x3\"\n ? \"vec3\"\n : A extends \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n A extends \"mat2\" | \"mat2x2\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2\"\n : B extends \"mat3x2\"\n ? \"mat3x2\"\n : B extends \"mat4x2\"\n ? \"mat4x2\"\n : never\n : A extends \"mat2x3\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x3\"\n : B extends \"mat3x2\"\n ? \"mat3\"\n : B extends \"mat4x2\"\n ? \"mat4x3\"\n : never\n : A extends \"mat2x4\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x4\"\n : B extends \"mat3x2\"\n ? \"mat3x4\"\n : B extends \"mat4x2\"\n ? \"mat4\"\n : never\n : A extends \"mat3x2\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x2\"\n : B extends \"mat4x3\"\n ? \"mat4x2\"\n : never\n : A extends \"mat3\" | \"mat3x3\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x3\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3\"\n : B extends \"mat4x3\"\n ? \"mat4x3\"\n : never\n : A extends \"mat3x4\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x4\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x4\"\n : B extends \"mat4x3\"\n ? \"mat4\"\n : never\n : A extends \"mat4x2\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2\"\n : B extends \"mat3x4\"\n ? \"mat3x2\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x2\"\n : never\n : A extends \"mat4x3\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x3\"\n : B extends \"mat3x4\"\n ? \"mat3\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x3\"\n : never\n : A extends \"mat4\" | \"mat4x4\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x4\"\n : B extends \"mat3x4\"\n ? \"mat3x4\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4\"\n : never\n : never);\n\nexport type DivOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type IModOutput<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\n\nexport type ModOutput = BaseType &\n (A extends B ? A : B extends \"float\" ? A : never);\n\nexport type PowOutput = BaseType &\n (A extends B ? A : never);\n\nexport type MinOutput = BaseType &\n (A extends B\n ? A\n : B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MaxOutput = MinOutput<\n A,\n B\n>;\nexport type ClampOutput = BaseType &\n (B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MixOutput<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> = BaseType &\n (T extends A\n ? A\n : T extends \"float\"\n ? A\n : T extends \"bool\"\n ? A extends \"float\"\n ? A\n : never\n : T extends \"bvec2\"\n ? A extends \"vec2\"\n ? A\n : never\n : T extends \"bvec3\"\n ? A extends \"vec3\"\n ? A\n : never\n : T extends \"bvec4\"\n ? A extends \"vec4\"\n ? A\n : never\n : never);\nexport type StepOutput = BaseType &\n (A extends B ? B : A extends \"float\" ? B : never);\nexport type SmoothstepOutput<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n> = BaseType &\n (A extends B ? (A extends C ? C : A extends \"float\" ? C : never) : never);\n\nexport type IsNanOutput = BaseType &\n (A extends \"float\"\n ? \"bool\"\n : A extends \"vec2\"\n ? \"bvec2\"\n : A extends \"vec3\"\n ? \"bvec3\"\n : A extends \"vec4\"\n ? \"bvec4\"\n : never);\nexport type IsInfOutput = IsNanOutput;\n\n// // Run-time type helper functions\n\nexport function addOutputType(\n a: A,\n b: B,\n operation = \"add\",\n): AddOutput {\n const error = () => {\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n };\n // @ts-ignore\n if (a === b) return a as AddOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as AddOutput;\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return a as AddOutput;\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return b as AddOutput;\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return a as AddOutput;\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return b as AddOutput;\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return a as AddOutput;\n error();\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function subOutputType(\n a: A,\n b: B,\n): SubOutput {\n return addOutputType(a, b, \"sub\");\n}\n\nexport function mulOutputType(\n a: A,\n b: B,\n): MulOutput {\n const error = () => {\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n };\n const result = (value: unknown) => value as MulOutput;\n if (a === \"int\") {\n if (isIntType(b)) return result(b);\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return result(a);\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return result(b);\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return result(a);\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return result(b);\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return result(a);\n error();\n }\n if (isIntType(a) || isUintType(a) || isIntType(b) || isUintType(b)) {\n // @ts-ignore\n if (a === b) return result(a);\n error();\n }\n // Vector * Matrix/Vector\n if (a === \"vec2\") {\n if (b === \"vec2\" || isMat2(b)) return result(\"vec2\");\n if (b === \"mat3x2\") return result(\"vec3\");\n if (b === \"mat4x2\") return result(\"vec4\");\n error();\n }\n if (a === \"vec3\") {\n if (b === \"mat2x3\") return result(\"vec2\");\n if (b === \"vec3\" || isMat3(b)) return result(\"vec3\");\n if (b === \"mat4x3\") return result(\"vec4\");\n error();\n }\n if (a === \"vec4\") {\n if (b === \"mat2x4\") return result(\"vec2\");\n if (b === \"mat3x4\") return result(\"vec3\");\n if (b === \"vec4\" || isMat4(b)) return result(\"vec4\");\n error();\n }\n // Matrix * Vector\n if (b === \"vec2\") {\n if (isMat2(a)) return result(\"vec2\");\n if (a === \"mat2x3\") return result(\"vec3\");\n if (a === \"mat2x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec3\") {\n if (a === \"mat3x2\") return result(\"vec2\");\n if (isMat3(a)) return result(\"vec3\");\n if (a === \"mat3x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec4\") {\n if (a === \"mat4x2\") return result(\"vec2\");\n if (a === \"mat4x3\") return result(\"vec3\");\n if (isMat4(a)) return result(\"vec4\");\n error();\n }\n // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n if (isMat2(a)) {\n if (isMat2(b)) return result(\"mat2\");\n if (b === \"mat3x2\") return result(\"mat3x2\");\n if (b === \"mat4x2\") return result(\"mat4x2\");\n error();\n }\n if (a === \"mat2x3\") {\n if (isMat2(b)) return result(\"mat2x3\");\n if (b === \"mat3x2\") return result(\"mat3\");\n if (b === \"mat4x2\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat2x4\") {\n if (isMat2(b)) return result(\"mat2x4\");\n if (b === \"mat3x2\") return result(\"mat3x4\");\n if (b === \"mat4x2\") return result(\"mat4\");\n error();\n }\n if (a === \"mat3x2\") {\n if (b === \"mat2x3\") return result(\"mat2\");\n if (isMat3(b)) return result(\"mat3x2\");\n if (b === \"mat4x3\") return result(\"mat4x2\");\n error();\n }\n if (isMat3(a)) {\n if (b === \"mat2x3\") return result(\"mat2x3\");\n if (isMat3(b)) return result(\"mat3\");\n if (b === \"mat4x3\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat3x4\") {\n if (b === \"mat2x3\") return result(\"mat2x4\");\n if (isMat3(b)) return result(\"mat3x4\");\n if (b === \"mat4x3\") return result(\"mat4\");\n error();\n }\n if (a === \"mat4x2\") {\n if (b === \"mat2x4\") return result(\"mat2\");\n if (b === \"mat3x4\") return result(\"mat3x2\");\n if (isMat4(b)) return result(\"mat4x2\");\n error();\n }\n if (a === \"mat4x3\") {\n if (b === \"mat2x4\") return result(\"mat2x3\");\n if (b === \"mat3x4\") return result(\"mat3\");\n if (isMat4(b)) return result(\"mat4x3\");\n error();\n }\n if (isMat4(a)) {\n if (b === \"mat2x4\") return result(\"mat2x4\");\n if (b === \"mat3x4\") return result(\"mat3x4\");\n if (isMat4(b)) return result(\"mat4\");\n error();\n }\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n}\n\nexport function divOutputType(\n a: A,\n b: B,\n): DivOutput {\n return addOutputType(a, b, \"div\");\n}\n\nexport function imodOutputType(\n a: A,\n b: B,\n): IModOutput {\n // @ts-ignore\n if (a === b) return a as IModOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as IModOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as IModOutput;\n } else if (a === \"uint\") {\n if (isUintType(b)) return b as IModOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as IModOutput;\n }\n throw new Error(`Invalid imod types: ${a}, ${b}`);\n}\n\nexport function modOutputType(\n a: A,\n b: B,\n): ModOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return a as ModOutput;\n throw new Error(`Invalid mod types: ${a}, ${b}`);\n}\n\nexport function modfOutputType(a: A): A {\n return a;\n}\n\nexport function negOutputType(a: A): A {\n return a;\n}\n\nexport function absOutputType(a: A): A {\n return a;\n}\n\nexport function signOutputType(a: A): A {\n return a;\n}\n\nexport function floorOutputType(a: A): A {\n return a;\n}\n\nexport function ceilOutputType(a: A): A {\n return a;\n}\n\nexport function truncOutputType(a: A): A {\n return a;\n}\n\nexport function roundOutputType(a: A): A {\n return a;\n}\n\nexport function fractOutputType(a: A): A {\n return a;\n}\n\nexport function powOutputType(a: A): A {\n return a;\n}\n\nexport function expOutputType(a: A): A {\n return a;\n}\n\nexport function exp2OutputType(a: A): A {\n return a;\n}\n\nexport function logOutputType(a: A): A {\n return a;\n}\n\nexport function log2OutputType(a: A): A {\n return a;\n}\n\nexport function sqrOutputType(a: A): A {\n return a;\n}\n\nexport function sqrtOutputType(a: A): A {\n return a;\n}\n\nexport function inversesqrtOutputType(a: A): A {\n return a;\n}\n\nexport function minOutputType(\n a: A,\n b: B,\n operation = \"min\",\n): MinOutput {\n // @ts-ignore\n if (a === b) return a as MinOutput;\n if (b === \"float\") {\n if (isFloatType(a)) return a as MinOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as MinOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as MinOutput;\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function maxOutputType(\n a: A,\n b: B,\n): MaxOutput {\n return minOutputType(a, b, \"max\");\n}\n\nexport function clampOutputType(\n a: A,\n b: B,\n _c: B,\n): ClampOutput {\n if (b === \"float\") {\n if (isFloatType(a)) return a as ClampOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as ClampOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as ClampOutput;\n }\n throw new Error(`Invalid clamp types: ${a}, ${b}`);\n}\n\nexport function mixOutputType<\n A extends FloatTypes,\n C extends FloatTypes | BoolTypes,\n>(a: A, b: A, c: C): MixOutput {\n // @ts-ignore\n if (c === a) return a as MixOutput;\n if (c === \"float\") return a as MixOutput;\n if (c === \"bool\" && a === \"float\") return a as MixOutput;\n if (c === \"bvec2\" && a === \"vec2\") return a as MixOutput;\n if (c === \"bvec3\" && a === \"vec3\") return a as MixOutput;\n if (c === \"bvec4\" && a === \"vec4\") return a as MixOutput;\n throw new Error(`Invalid mix types: ${a}, ${b}, ${c}`);\n}\n\nexport function stepOutputType(\n a: A,\n b: B,\n): StepOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return b as StepOutput;\n throw new Error(`Invalid step types: ${a}, ${b}`);\n}\n\nexport function smoothstepOutputType<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n>(a: A, b: B, c: C): SmoothstepOutput {\n // @ts-ignore\n if (a === b) {\n if (a === c || a === \"float\") return c as SmoothstepOutput;\n }\n throw new Error(`Invalid smoothstep types: ${a}, ${b}, ${c}`);\n}\n\nexport function isNanOutputType(\n a: A,\n operation = \"isNan\",\n): IsNanOutput {\n if (a === \"float\") return \"bool\" as IsNanOutput;\n if (a === \"vec2\") return \"bvec2\" as IsNanOutput;\n if (a === \"vec3\") return \"bvec3\" as IsNanOutput;\n if (a === \"vec4\") return \"bvec4\" as IsNanOutput;\n throw new Error(`Invalid ${operation} types: ${a}`);\n}\n\nexport function isInfOutputType(a: A): IsInfOutput {\n return isNanOutputType(a, \"isInf\");\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AddOutput,\n type ClampOutput,\n type DivOutput,\n type IModOutput,\n type IsInfOutput,\n type IsNanOutput,\n type MaxOutput,\n type MinOutput,\n type MixOutput,\n type ModOutput,\n type MulOutput,\n type SmoothstepOutput,\n type StepOutput,\n type SubOutput,\n absOutputType,\n addOutputType,\n ceilOutputType,\n clampOutputType,\n divOutputType,\n exp2OutputType,\n expOutputType,\n floorOutputType,\n fractOutputType,\n imodOutputType,\n inversesqrtOutputType,\n isInfOutputType,\n isNanOutputType,\n log2OutputType,\n logOutputType,\n maxOutputType,\n minOutputType,\n mixOutputType,\n modOutputType,\n modfOutputType,\n mulOutputType,\n negOutputType,\n powOutputType,\n roundOutputType,\n signOutputType,\n smoothstepOutputType,\n sqrOutputType,\n sqrtOutputType,\n stepOutputType,\n subOutputType,\n truncOutputType,\n} from \"./mathTypes\";\nimport type {\n AllIntTypes,\n AllSignedTypes,\n AllValueTypes,\n BoolTypes,\n FloatTypes,\n SignedTypes,\n ValueTypes,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const add = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Add({ a, b });\nexport const sub = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Sub({ a, b });\nexport const mul = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mul({ a, b });\nexport const div = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Div({ a, b });\nexport const imod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new IMod({ a, b });\nexport const mod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mod({ a, b });\nexport const modf = (a: DynoVal) =>\n new Modf({ a }).outputs;\n\nexport const neg = (a: DynoVal): DynoVal =>\n new Neg({ a });\nexport const abs = (a: DynoVal): DynoVal =>\n new Abs({ a });\nexport const sign = (a: DynoVal): DynoVal =>\n new Sign({ a });\nexport const floor = (a: DynoVal): DynoVal =>\n new Floor({ a });\nexport const ceil = (a: DynoVal): DynoVal =>\n new Ceil({ a });\nexport const trunc = (a: DynoVal): DynoVal =>\n new Trunc({ a });\nexport const round = (a: DynoVal): DynoVal =>\n new Round({ a });\nexport const fract = (a: DynoVal): DynoVal =>\n new Fract({ a });\n\nexport const pow = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Pow({ a, b });\nexport const exp = (a: DynoVal): DynoVal =>\n new Exp({ a });\nexport const exp2 = (a: DynoVal): DynoVal =>\n new Exp2({ a });\nexport const log = (a: DynoVal): DynoVal =>\n new Log({ a });\nexport const log2 = (a: DynoVal): DynoVal =>\n new Log2({ a });\nexport const sqr = (a: DynoVal): DynoVal =>\n new Sqr({ a });\nexport const sqrt = (a: DynoVal): DynoVal =>\n new Sqrt({ a });\nexport const inversesqrt = (a: DynoVal): DynoVal =>\n new InverseSqrt({ a });\n\nexport const min = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Min({ a, b });\nexport const max = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Max({ a, b });\nexport const clamp = (\n a: DynoVal,\n min: DynoVal,\n max: DynoVal,\n): DynoVal> => new Clamp({ a, min, max });\nexport const mix = (\n a: DynoVal,\n b: DynoVal,\n t: DynoVal,\n): DynoVal> => new Mix({ a, b, t });\nexport const step = (\n edge: DynoVal,\n x: DynoVal,\n): DynoVal> => new Step({ edge, x });\nexport const smoothstep = (\n edge0: DynoVal,\n edge1: DynoVal,\n x: DynoVal,\n): DynoVal> =>\n new Smoothstep({ edge0, edge1, x });\n\nexport const isNan = (\n a: DynoVal,\n): DynoVal> => new IsNan({ a });\nexport const isInf = (\n a: DynoVal,\n): DynoVal> => new IsInf({ a });\n\nexport class Add<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"sum\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"sum\", outTypeFunc: addOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sum} = ${inputs.a} + ${inputs.b};`];\n };\n }\n}\n\nexport class Sub<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"difference\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"difference\", outTypeFunc: subOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.difference} = ${inputs.a} - ${inputs.b};`];\n };\n }\n}\n\nexport class Mul<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"product\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: mulOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.product} = ${inputs.a} * ${inputs.b};`];\n };\n }\n}\n\nexport class Div<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"quotient\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"quotient\", outTypeFunc: divOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.quotient} = ${inputs.a} / ${inputs.b};`];\n };\n }\n}\n\nexport class IMod<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> extends BinaryOp, \"remainder\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: imodOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = ${inputs.a} % ${inputs.b};`];\n };\n }\n}\n\nexport class Mod extends BinaryOp<\n A,\n B,\n ModOutput,\n \"remainder\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: modOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = mod(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Modf extends Dyno<\n { a: A },\n { fract: A; integer: A }\n> {\n constructor({ a }: { a: DynoVal }) {\n const inTypes = { a: valType(a) };\n const outType = modfOutputType(inTypes.a);\n const outTypes = {\n fract: outType,\n integer: outType,\n };\n super({ inTypes, outTypes, inputs: { a } });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = modf(${inputs.a}, ${outputs.integer});`];\n };\n }\n}\n\nexport class Neg extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"neg\", outTypeFunc: negOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.neg} = -${inputs.a};`];\n };\n }\n}\n\nexport class Abs extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"abs\", outTypeFunc: absOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.abs} = abs(${inputs.a});`];\n };\n }\n}\n\nexport class Sign extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sign\", outTypeFunc: signOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sign} = sign(${inputs.a});`];\n };\n }\n}\n\nexport class Floor extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"floor\", outTypeFunc: floorOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.floor} = floor(${inputs.a});`];\n };\n }\n}\n\nexport class Ceil extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"ceil\", outTypeFunc: ceilOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.ceil} = ceil(${inputs.a});`];\n };\n }\n}\n\nexport class Trunc extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"trunc\", outTypeFunc: truncOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.trunc} = trunc(${inputs.a});`];\n };\n }\n}\n\nexport class Round extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"round\", outTypeFunc: roundOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.round} = round(${inputs.a});`];\n };\n }\n}\n\nexport class Fract extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"fract\", outTypeFunc: fractOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = fract(${inputs.a});`];\n };\n }\n}\n\nexport class Pow extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"power\", outTypeFunc: powOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.power} = pow(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Exp extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp\", outTypeFunc: expOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp} = exp(${inputs.a});`];\n };\n }\n}\n\nexport class Exp2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp2\", outTypeFunc: exp2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp2} = exp2(${inputs.a});`];\n };\n }\n}\n\nexport class Log extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log\", outTypeFunc: logOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log} = log(${inputs.a});`];\n };\n }\n}\n\nexport class Log2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log2\", outTypeFunc: log2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log2} = log2(${inputs.a});`];\n };\n }\n}\n\nexport class Sqr extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqr\", outTypeFunc: sqrOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqr} = ${inputs.a} * ${inputs.a};`];\n };\n }\n}\n\nexport class Sqrt extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqrt\", outTypeFunc: sqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqrt} = sqrt(${inputs.a});`];\n };\n }\n}\n\nexport class InverseSqrt extends UnaryOp<\n A,\n A,\n \"inversesqrt\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inversesqrt\", outTypeFunc: inversesqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.inversesqrt} = inversesqrt(${inputs.a});`];\n };\n }\n}\n\nexport class Min extends BinaryOp<\n A,\n B,\n MinOutput,\n \"min\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"min\", outTypeFunc: minOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.min} = min(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Max extends BinaryOp<\n A,\n B,\n MaxOutput,\n \"max\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"max\", outTypeFunc: maxOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.max} = max(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Clamp<\n A extends ValueTypes,\n MinMax extends ValueTypes,\n> extends TrinaryOp, \"clamp\"> {\n constructor({\n a,\n min,\n max,\n }: { a: DynoVal; min: DynoVal; max: DynoVal }) {\n super({\n a,\n b: min,\n c: max,\n outKey: \"clamp\",\n outTypeFunc: clampOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a, b: min, c: max } = inputs;\n return [`${outputs.clamp} = clamp(${a}, ${min}, ${max});`];\n };\n }\n}\n\nexport class Mix<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> extends TrinaryOp, \"mix\"> {\n constructor({ a, b, t }: { a: DynoVal; b: DynoVal; t: DynoVal }) {\n super({ a, b, c: t, outKey: \"mix\", outTypeFunc: mixOutputType });\n this.statements = ({ inputs, outputs }) => {\n const { a, b, c: t } = inputs;\n return [`${outputs.mix} = mix(${a}, ${b}, ${t});`];\n };\n }\n}\n\nexport class Step<\n Edge extends FloatTypes,\n X extends FloatTypes,\n> extends BinaryOp, \"step\"> {\n constructor({ edge, x }: { edge: DynoVal; x: DynoVal }) {\n super({\n a: edge,\n b: x,\n outKey: \"step\",\n outTypeFunc: stepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge, b: x } = inputs;\n return [`${outputs.step} = step(${edge}, ${x});`];\n };\n }\n}\n\nexport class Smoothstep<\n X extends FloatTypes,\n Edge extends X | \"float\",\n> extends TrinaryOp<\n Edge,\n Edge,\n X,\n SmoothstepOutput,\n \"smoothstep\"\n> {\n constructor({\n edge0,\n edge1,\n x,\n }: { edge0: DynoVal; edge1: DynoVal; x: DynoVal }) {\n super({\n a: edge0,\n b: edge1,\n c: x,\n outKey: \"smoothstep\",\n outTypeFunc: smoothstepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge0, b: edge1, c: x } = inputs;\n return [`${outputs.smoothstep} = smoothstep(${edge0}, ${edge1}, ${x});`];\n };\n }\n}\n\nexport class IsNan extends UnaryOp<\n A,\n IsNanOutput,\n \"isNan\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isNan\", outTypeFunc: isNanOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isNan} = isNan(${inputs.a});`];\n };\n }\n}\n\nexport class IsInf extends UnaryOp<\n A,\n IsInfOutput,\n \"isInf\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isInf\", outTypeFunc: isInfOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isInf} = isInf(${inputs.a});`];\n };\n }\n}\n","import { BinaryOp, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AllIntTypes,\n type BoolTypes,\n type IntTypes,\n type ScalarTypes,\n type SimpleTypes,\n type UintTypes,\n type ValueTypes,\n isBoolType,\n isIntType,\n isScalarType,\n isUintType,\n isVector2Type,\n isVector3Type,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const and = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new And({ a, b });\nexport const or = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Or({ a, b });\nexport const xor = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Xor({ a, b });\nexport const not = (\n a: DynoVal,\n): DynoVal => new Not({ a });\n\nexport const shr = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shr({ a, b });\n\nexport const shl = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shl({ a, b });\n\nexport const lessThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThan({ a, b });\nexport const lessThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThanEqual({ a, b });\nexport const greaterThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThan({ a, b });\nexport const greaterThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThanEqual({ a, b });\nexport const equal = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Equal({ a, b });\nexport const notEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new NotEqual({ a, b });\n\nexport const any = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new Any({ a });\nexport const all = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new All({ a });\nexport const select = (\n cond: DynoVal<\"bool\">,\n t: DynoVal,\n f: DynoVal,\n): DynoVal => new Select({ cond, t, f });\n\nexport const compXor = (\n a: DynoVal,\n): DynoVal> => new CompXor({ a });\n\nexport class And extends BinaryOp<\n T,\n T,\n T,\n \"and\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"and\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.and === \"bool\") {\n return [`${outputs.and} = ${inputs.a} && ${inputs.b};`];\n }\n return [`${outputs.and} = ${inputs.a} & ${inputs.b};`];\n };\n }\n}\n\nexport class Or extends BinaryOp<\n T,\n T,\n T,\n \"or\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"or\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.or === \"bool\") {\n return [`${outputs.or} = ${inputs.a} || ${inputs.b};`];\n }\n return [`${outputs.or} = ${inputs.a} | ${inputs.b};`];\n };\n }\n}\n\nexport class Xor extends BinaryOp<\n T,\n T,\n T,\n \"xor\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"xor\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.xor === \"bool\") {\n return [`${outputs.xor} = ${inputs.a} ^^ ${inputs.b};`];\n }\n return [`${outputs.xor} = ${inputs.a} ^ ${inputs.b};`];\n };\n }\n}\n\nexport class Not extends UnaryOp<\n T,\n T,\n \"not\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => aType, outKey: \"not\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.not === \"bool\") {\n return [`${outputs.not} = !${inputs.a};`];\n }\n return [`${outputs.not} = not(${inputs.a});`];\n };\n }\n}\n\nexport class LessThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) => compareOutputType(aType, \"lessThan\"),\n outKey: \"lessThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThan === \"bool\") {\n return [`${outputs.lessThan} = ${inputs.a} < ${inputs.b};`];\n }\n return [`${outputs.lessThan} = lessThan(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class LessThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"lessThanEqual\"),\n outKey: \"lessThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThanEqual === \"bool\") {\n return [`${outputs.lessThanEqual} = ${inputs.a} <= ${inputs.b};`];\n }\n return [\n `${outputs.lessThanEqual} = lessThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThan\"),\n outKey: \"greaterThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThan === \"bool\") {\n return [`${outputs.greaterThan} = ${inputs.a} > ${inputs.b};`];\n }\n return [\n `${outputs.greaterThan} = greaterThan(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThanEqual\"),\n outKey: \"greaterThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThanEqual === \"bool\") {\n return [`${outputs.greaterThanEqual} = ${inputs.a} >= ${inputs.b};`];\n }\n return [\n `${outputs.greaterThanEqual} = greaterThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class Equal extends BinaryOp<\n T,\n T,\n EqualOutput,\n \"equal\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: equalOutputType, outKey: \"equal\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.equal === \"bool\") {\n return [`${outputs.equal} = ${inputs.a} == ${inputs.b};`];\n }\n return [`${outputs.equal} = equal(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class NotEqual extends BinaryOp<\n T,\n T,\n NotEqualOutput,\n \"notEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: notEqualOutputType, outKey: \"notEqual\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.notEqual === \"bool\") {\n return [`${outputs.notEqual} = ${inputs.a} != ${inputs.b};`];\n }\n return [`${outputs.notEqual} = notEqual(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Any extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"any\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.any} = any(${inputs.a});`];\n };\n }\n}\n\nexport class All extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"all\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.all} = all(${inputs.a});`];\n };\n }\n}\n\nexport class Select extends TrinaryOp<\n \"bool\",\n T,\n T,\n T,\n \"select\"\n> {\n constructor({\n cond,\n t,\n f,\n }: { cond: DynoVal<\"bool\">; t: DynoVal; f: DynoVal }) {\n super({\n a: cond,\n b: t,\n c: f,\n outKey: \"select\",\n outTypeFunc: (aType: \"bool\", bType: T, cType: T) => bType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: cond, b: t, c: f } = inputs;\n return [`${outputs.select} = (${cond}) ? (${t}) : (${f});`];\n };\n }\n}\n\ntype CompareOutput = T extends ScalarTypes\n ? \"bool\"\n : T extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : T extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : T extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction compareOutputType(\n type: T,\n operator: string,\n): CompareOutput {\n if (isScalarType(type)) {\n return \"bool\" as CompareOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as CompareOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as CompareOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as CompareOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype EqualOutput = A extends ScalarTypes\n ? \"bool\"\n : A extends BoolTypes\n ? A\n : A extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : A extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : A extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction equalOutputType(\n type: A,\n operator = \"equal\",\n): EqualOutput {\n if (isScalarType(type)) {\n return \"bool\" as EqualOutput;\n }\n if (isBoolType(type)) {\n return type as EqualOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as EqualOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as EqualOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as EqualOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype NotEqualOutput = EqualOutput;\n\nfunction notEqualOutputType(\n type: A,\n): NotEqualOutput {\n return equalOutputType(type, \"notEqual\");\n}\n\ntype CompXorOutput = A extends BoolTypes\n ? \"bool\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nfunction compXorOutputType(\n type: A,\n): CompXorOutput {\n if (isBoolType(type)) {\n return \"bool\" as CompXorOutput;\n }\n if (isIntType(type)) {\n return \"int\" as CompXorOutput;\n }\n if (isUintType(type)) {\n return \"uint\" as CompXorOutput;\n }\n throw new Error(`Invalid compXor type: ${type}`);\n}\n\nexport class CompXor extends UnaryOp<\n T,\n CompXorOutput,\n \"compXor\"\n> {\n constructor({ a }: { a: DynoVal }) {\n const outType = compXorOutputType(valType(a));\n super({ a, outTypeFunc: (aType: T) => outType, outKey: \"compXor\" });\n this.statements = ({ inputs, outputs }) => {\n if (isScalarType(this.outTypes.compXor)) {\n return [`${outputs.compXor} = ${inputs.a};`];\n }\n const components = isVector2Type(outType)\n ? [\"x\", \"y\"]\n : isVector3Type(outType)\n ? [\"x\", \"y\", \"z\"]\n : [\"x\", \"y\", \"z\", \"w\"];\n const operands = components.map((c) => `${inputs.a}.${c}`);\n const operator = isBoolType(outType) ? \"^^\" : \"^\";\n return [`${outputs.compXor} = ${operands.join(` ${operator} `)};`];\n };\n }\n}\n\nexport class Shr extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shr\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shr} = ${inputs.a} >> ${inputs.b};`];\n };\n }\n}\n\nexport class Shl extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shl\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shl} = ${inputs.a} << ${inputs.b};`];\n };\n }\n}\n","import { UnaryOp } from \"./base\";\nimport { type SimpleTypes, typeLiteral } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const bool = (\n value: DynoVal,\n): DynoVal<\"bool\"> => new Bool({ value });\nexport const int = (\n value: DynoVal,\n): DynoVal<\"int\"> => new Int({ value });\nexport const uint = (\n value: DynoVal,\n): DynoVal<\"uint\"> => new Uint({ value });\nexport const float = (\n value: DynoVal,\n): DynoVal<\"float\"> => new Float({ value });\n\nexport const bvec2 = (\n value: DynoVal,\n): DynoVal<\"bvec2\"> => new BVec2({ value });\nexport const bvec3 = (\n value: DynoVal,\n): DynoVal<\"bvec3\"> => new BVec3({ value });\nexport const bvec4 = (\n value: DynoVal,\n): DynoVal<\"bvec4\"> => new BVec4({ value });\n\nexport const ivec2 = (\n value: DynoVal,\n): DynoVal<\"ivec2\"> => new IVec2({ value });\nexport const ivec3 = (\n value: DynoVal,\n): DynoVal<\"ivec3\"> => new IVec3({ value });\nexport const ivec4 = (\n value: DynoVal,\n): DynoVal<\"ivec4\"> => new IVec4({ value });\n\nexport const uvec2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => new UVec2({ value });\nexport const uvec3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => new UVec3({ value });\nexport const uvec4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => new UVec4({ value });\n\nexport const vec2 = <\n T extends \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec2\"> => new Vec2({ value });\nexport const vec3 = <\n T extends \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec3\"> => new Vec3({ value });\nexport const vec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => new Vec4({ value });\n\nexport const mat2 = (\n value: DynoVal,\n): DynoVal<\"mat2\"> => new Mat2({ value });\nexport const mat3 = (\n value: DynoVal,\n): DynoVal<\"mat3\"> => new Mat3({ value });\nexport const mat4 = (\n value: DynoVal,\n): DynoVal<\"mat4\"> => new Mat4({ value });\n\nexport const floatBitsToInt = (value: DynoVal<\"float\">): DynoVal<\"int\"> =>\n new FloatBitsToInt({ value });\nexport const floatBitsToUint = (value: DynoVal<\"float\">): DynoVal<\"uint\"> =>\n new FloatBitsToUint({ value });\nexport const intBitsToFloat = (value: DynoVal<\"int\">): DynoVal<\"float\"> =>\n new IntBitsToFloat({ value });\nexport const uintBitsToFloat = (value: DynoVal<\"uint\">): DynoVal<\"float\"> =>\n new UintBitsToFloat({ value });\n\nexport const packSnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackSnorm2x16({ value });\nexport const unpackSnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackSnorm2x16({ value });\nexport const packUnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackUnorm2x16({ value });\nexport const unpackUnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackUnorm2x16({ value });\n\nexport const packHalf2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackHalf2x16({ value });\nexport const unpackHalf2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackHalf2x16({ value });\n\nexport const uintToRgba8 = (value: DynoVal<\"uint\">): DynoVal<\"vec4\"> =>\n new UintToRgba8({ value });\n\nexport class SimpleCast<\n Allowed extends SimpleTypes,\n OutType extends SimpleTypes,\n OutKey extends string,\n> extends UnaryOp {\n constructor({\n value,\n outType,\n outKey,\n }: { value: DynoVal; outType: OutType; outKey: OutKey }) {\n super({ a: value, outTypeFunc: () => outType, outKey });\n this.statements = ({ inputs, outputs }) => [\n `${outputs[outKey]} = ${typeLiteral(outType)}(${inputs.a});`,\n ];\n }\n}\n\nexport class Bool extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"bool\",\n \"bool\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"bool\", outKey: \"bool\" });\n }\n}\n\nexport class Int extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"int\",\n \"int\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"int\", outKey: \"int\" });\n }\n}\n\nexport class Uint extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"uint\",\n \"uint\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"uint\", outKey: \"uint\" });\n }\n}\n\nexport class Float extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"float\",\n \"float\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"float\", outKey: \"float\" });\n }\n}\n\nexport class BVec2 extends SimpleCast<\n \"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"bvec2\",\n \"bvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"bvec2\", outKey: \"bvec2\" });\n }\n}\n\nexport class BVec3 extends SimpleCast<\n \"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"bvec3\",\n \"bvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"bvec3\", outKey: \"bvec3\" });\n }\n}\n\nexport class BVec4 extends SimpleCast<\n \"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"bvec4\",\n \"bvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"bvec4\", outKey: \"bvec4\" });\n }\n}\n\nexport class IVec2 extends SimpleCast<\n \"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"ivec2\",\n \"ivec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"ivec2\", outKey: \"ivec2\" });\n }\n}\n\nexport class IVec3 extends SimpleCast<\n \"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"ivec3\",\n \"ivec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"ivec3\", outKey: \"ivec3\" });\n }\n}\n\nexport class IVec4 extends SimpleCast<\n \"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"ivec4\",\n \"ivec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"ivec4\", outKey: \"ivec4\" });\n }\n}\n\nexport class UVec2 extends SimpleCast<\n \"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\",\n \"uvec2\",\n \"uvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"uvec2\", outKey: \"uvec2\" });\n }\n}\n\nexport class UVec3 extends SimpleCast<\n \"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\",\n \"uvec3\",\n \"uvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"uvec3\", outKey: \"uvec3\" });\n }\n}\n\nexport class UVec4 extends SimpleCast<\n \"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\",\n \"uvec4\",\n \"uvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"uvec4\", outKey: \"uvec4\" });\n }\n}\n\nexport class Vec2 extends SimpleCast<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n \"vec2\",\n \"vec2\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec2\", outKey: \"vec2\" });\n }\n}\n\nexport class Vec3 extends SimpleCast<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\",\n \"vec3\",\n \"vec3\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec3\", outKey: \"vec3\" });\n }\n}\n\nexport class Vec4 extends SimpleCast<\n \"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"vec4\",\n \"vec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"vec4\", outKey: \"vec4\" });\n }\n}\n\nexport class Mat2 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat2\",\n \"mat2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat2\", outKey: \"mat2\" });\n }\n}\n\nexport class Mat3 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat3\",\n \"mat3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat3\", outKey: \"mat3\" });\n }\n}\n\nexport class Mat4 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat4\",\n \"mat4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat4\", outKey: \"mat4\" });\n }\n}\n\nexport class FloatBitsToInt extends UnaryOp<\"float\", \"int\", \"int\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"int\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.int} = floatBitsToInt(${inputs.a});`];\n };\n }\n}\n\nexport class FloatBitsToUint extends UnaryOp<\"float\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = floatBitsToUint(${inputs.a});`];\n };\n }\n}\n\nexport class IntBitsToFloat extends UnaryOp<\"int\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"int\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = intBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class UintBitsToFloat extends UnaryOp<\"uint\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = uintBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class PackSnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackSnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackUnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackUnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackHalf2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackHalf2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UintToRgba8 extends UnaryOp<\"uint\", \"vec4\", \"rgba8\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"rgba8\", outTypeFunc: () => \"vec4\" });\n this.statements = ({ inputs, outputs }) => {\n return [\n `uvec4 uRgba = uvec4(${inputs.a} & 0xffu, (${inputs.a} >> 8u) & 0xffu, (${inputs.a} >> 16u) & 0xffu, (${inputs.a} >> 24u) & 0xffu);`,\n `${outputs.rgba8} = vec4(uRgba) / 255.0;`,\n ];\n };\n }\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type FloatTypes,\n type IntTypes,\n type MatFloatTypes,\n type SquareMatTypes,\n type UintTypes,\n type VectorElementType,\n type VectorTypes,\n isFloatType,\n isIntType,\n isUintType,\n vectorDim,\n vectorElementType,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n literalZero,\n valType,\n} from \"./value\";\n\nexport const length = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Length({ a });\nexport const distance = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Distance({ a, b });\nexport const dot = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Dot({ a, b });\nexport const cross = (\n a: DynoVal<\"vec3\">,\n b: DynoVal<\"vec3\">,\n): DynoVal<\"vec3\"> => new Cross({ a, b });\nexport const normalize = (\n a: DynoVal,\n): DynoVal => new Normalize({ a });\nexport const faceforward = (\n a: DynoVal,\n b: DynoVal,\n c: DynoVal,\n): DynoVal => new FaceForward({ a, b, c });\nexport const reflectVec = (\n incident: DynoVal,\n normal: DynoVal,\n): DynoVal => new ReflectVec({ incident, normal });\nexport const refractVec = (\n incident: DynoVal,\n normal: DynoVal,\n eta: DynoVal<\"float\">,\n): DynoVal => new RefractVec({ incident, normal, eta });\nexport const split = (vector: DynoVal): Split =>\n new Split({ vector });\nexport const combine = >({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n}: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n}): DynoVal => new Combine({ vector, vectorType, x, y, z, w, r, g, b, a });\nexport const projectH = (\n a: DynoVal,\n): DynoVal> => new ProjectH({ a });\nexport const extendVec = (\n a: DynoVal,\n b: DynoVal<\"float\">,\n): DynoVal> => new ExtendVec({ a, b });\nexport const swizzle = (\n a: DynoVal,\n select: S,\n): DynoVal>> =>\n new Swizzle({ vector: a, select });\nexport const compMult = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new CompMult({ a, b });\nexport const outer = <\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Outer({ a, b });\nexport const transpose = (\n a: DynoVal,\n): DynoVal> => new Transpose({ a });\nexport const determinant = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Determinant({ a });\nexport const inverse = (a: DynoVal): DynoVal =>\n new Inverse({ a });\n\nexport class Length extends UnaryOp<\n A,\n \"float\",\n \"length\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => \"float\", outKey: \"length\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.length} = length(${inputs.a});`,\n ];\n }\n}\n\nexport class Distance extends BinaryOp<\n A,\n A,\n \"float\",\n \"distance\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"distance\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.distance} = distance(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Dot extends BinaryOp<\n A,\n A,\n \"float\",\n \"dot\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"dot\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.dot} = dot(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Cross extends BinaryOp<\"vec3\", \"vec3\", \"vec3\", \"cross\"> {\n constructor({ a, b }: { a: DynoVal<\"vec3\">; b: DynoVal<\"vec3\"> }) {\n super({ a, b, outKey: \"cross\", outTypeFunc: (aType, bType) => \"vec3\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cross} = cross(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Normalize extends UnaryOp<\n A,\n A,\n \"normalize\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => aType, outKey: \"normalize\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normalize} = normalize(${inputs.a});`,\n ];\n }\n}\n\ntype ProjectHOutput = A extends \"vec3\"\n ? \"vec2\"\n : A extends \"vec4\"\n ? \"vec3\"\n : never;\n\nfunction projectHOutputType(\n type: A,\n): ProjectHOutput {\n if (type === \"vec3\") {\n return \"vec2\" as ProjectHOutput;\n }\n if (type === \"vec4\") {\n return \"vec3\" as ProjectHOutput;\n }\n throw new Error(\"Invalid type\");\n}\n\nexport class ProjectH extends UnaryOp<\n A,\n ProjectHOutput,\n \"projected\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({\n a,\n outTypeFunc: (aType) => projectHOutputType(aType),\n outKey: \"projected\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.inTypes.a === \"vec3\") {\n return [`${outputs.projected} = ${inputs.a}.xy / ${inputs.a}.z;`];\n }\n if (this.inTypes.a === \"vec4\") {\n return [`${outputs.projected} = ${inputs.a}.xyz / ${inputs.a}.w;`];\n }\n throw new Error(\"Invalid type\");\n };\n }\n}\n\ntype ExtendVecOutput = A extends \"float\"\n ? \"vec2\"\n : A extends \"vec2\"\n ? \"vec3\"\n : A extends \"vec3\"\n ? \"vec4\"\n : never;\n\nfunction extendVecOutputType(\n type: A,\n): ExtendVecOutput {\n if (type === \"float\") return \"vec2\" as ExtendVecOutput;\n if (type === \"vec2\") return \"vec3\" as ExtendVecOutput;\n if (type === \"vec3\") return \"vec4\" as ExtendVecOutput;\n throw new Error(\"Invalid type\");\n}\n\nexport class ExtendVec extends BinaryOp<\n A,\n \"float\",\n ExtendVecOutput,\n \"extend\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal<\"float\"> }) {\n const type = valType(a);\n const outType = extendVecOutputType(type);\n super({ a, b, outKey: \"extend\", outTypeFunc: () => outType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.extend} = ${outType}(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class FaceForward extends TrinaryOp<\n A,\n A,\n A,\n A,\n \"forward\"\n> {\n constructor({ a, b, c }: { a: DynoVal; b: DynoVal; c: DynoVal }) {\n super({\n a,\n b,\n c,\n outKey: \"forward\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.forward} = faceforward(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class ReflectVec extends BinaryOp<\n A,\n A,\n A,\n \"reflection\"\n> {\n constructor({\n incident,\n normal,\n }: { incident: DynoVal; normal: DynoVal }) {\n super({\n a: incident,\n b: normal,\n outKey: \"reflection\",\n outTypeFunc: (aType, bType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.reflection} = reflect(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class RefractVec extends TrinaryOp<\n A,\n A,\n \"float\",\n A,\n \"refraction\"\n> {\n constructor({\n incident,\n normal,\n eta,\n }: { incident: DynoVal; normal: DynoVal; eta: DynoVal<\"float\"> }) {\n super({\n a: incident,\n b: normal,\n c: eta,\n outKey: \"refraction\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.refraction} = refract(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class CompMult extends BinaryOp<\n A,\n A,\n A,\n \"product\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: (aType, bType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.product} = matrixCompMult(${a}, ${b});`,\n ];\n }\n}\n\ntype OuterOutput<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> = A extends \"vec2\"\n ? B extends \"vec2\"\n ? \"mat2\"\n : B extends \"vec3\"\n ? \"mat3x2\"\n : B extends \"vec4\"\n ? \"mat4x2\"\n : never\n : A extends \"vec3\"\n ? B extends \"vec2\"\n ? \"mat2x3\"\n : B extends \"vec3\"\n ? \"mat3\"\n : B extends \"vec4\"\n ? \"mat4x3\"\n : never\n : A extends \"vec4\"\n ? B extends \"vec2\"\n ? \"mat2x4\"\n : B extends \"vec3\"\n ? \"mat3x4\"\n : B extends \"vec4\"\n ? \"mat4\"\n : never\n : never;\n\nfunction outerOutputType<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(aType: A, bType: B): OuterOutput {\n if (aType === \"vec2\") {\n if (bType === \"vec2\") return \"mat2\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x2\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x2\" as OuterOutput;\n }\n if (aType === \"vec3\") {\n if (bType === \"vec2\") return \"mat2x3\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x3\" as OuterOutput;\n }\n if (aType === \"vec4\") {\n if (bType === \"vec2\") return \"mat2x4\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x4\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4\" as OuterOutput;\n }\n throw new Error(`Invalid outer type: ${aType}, ${bType}`);\n}\n\nexport class Outer<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> extends BinaryOp, \"outer\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"outer\", outTypeFunc: outerOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.outer} = outerProduct(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\ntype TransposeOutput = A extends SquareMatTypes\n ? A\n : A extends \"mat2x3\"\n ? \"mat3x2\"\n : A extends \"mat2x4\"\n ? \"mat4x2\"\n : A extends \"mat3x2\"\n ? \"mat2x3\"\n : A extends \"mat3x4\"\n ? \"mat4x3\"\n : A extends \"mat4x2\"\n ? \"mat2x4\"\n : A extends \"mat4x3\"\n ? \"mat3x4\"\n : never;\n\nfunction transposeOutputType(\n type: A,\n): TransposeOutput {\n if (type === \"mat2\") return \"mat2\" as TransposeOutput;\n if (type === \"mat3\") return \"mat3\" as TransposeOutput;\n if (type === \"mat4\") return \"mat4\" as TransposeOutput;\n if (type === \"mat2x2\") return \"mat2x2\" as TransposeOutput;\n if (type === \"mat2x3\") return \"mat3x2\" as TransposeOutput;\n if (type === \"mat2x4\") return \"mat4x2\" as TransposeOutput;\n if (type === \"mat3x2\") return \"mat2x3\" as TransposeOutput;\n if (type === \"mat3x3\") return \"mat3x3\" as TransposeOutput;\n if (type === \"mat3x4\") return \"mat4x3\" as TransposeOutput;\n if (type === \"mat4x2\") return \"mat2x4\" as TransposeOutput;\n if (type === \"mat4x3\") return \"mat3x4\" as TransposeOutput;\n if (type === \"mat4x4\") return \"mat4x4\" as TransposeOutput;\n throw new Error(`Invalid transpose type: ${type}`);\n}\n\nexport class Transpose extends UnaryOp<\n A,\n TransposeOutput,\n \"transpose\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"transpose\", outTypeFunc: transposeOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.transpose} = transpose(${inputs.a});`,\n ];\n }\n}\n\nexport class Determinant extends UnaryOp<\n A,\n \"float\",\n \"det\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"det\", outTypeFunc: (aType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.det} = determinant(${inputs.a});`,\n ];\n }\n}\n\nexport class Inverse extends UnaryOp<\n A,\n A,\n \"inverse\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inverse\", outTypeFunc: (aType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.inverse} = inverse(${a});`,\n ];\n }\n}\n\ntype SplitOutTypes = A extends \"vec2\"\n ? { x: \"float\"; y: \"float\"; r: \"float\"; g: \"float\" }\n : A extends \"vec3\"\n ? { x: \"float\"; y: \"float\"; z: \"float\"; r: \"float\"; g: \"float\"; b: \"float\" }\n : A extends \"vec4\"\n ? {\n x: \"float\";\n y: \"float\";\n z: \"float\";\n w: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n a: \"float\";\n }\n : A extends \"ivec2\"\n ? { x: \"int\"; y: \"int\"; r: \"int\"; g: \"int\" }\n : A extends \"ivec3\"\n ? { x: \"int\"; y: \"int\"; z: \"int\"; r: \"int\"; g: \"int\"; b: \"int\" }\n : A extends \"ivec4\"\n ? {\n x: \"int\";\n y: \"int\";\n z: \"int\";\n w: \"int\";\n r: \"int\";\n g: \"int\";\n b: \"int\";\n a: \"int\";\n }\n : A extends \"uvec2\"\n ? { x: \"uint\"; y: \"uint\"; r: \"uint\"; g: \"uint\" }\n : A extends \"uvec3\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n }\n : A extends \"uvec4\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n w: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n a: \"uint\";\n }\n : never;\n\nfunction splitOutTypes(type: A): SplitOutTypes {\n const result = (value: unknown) => value as SplitOutTypes;\n switch (type) {\n case \"vec2\":\n return result({ x: \"float\", y: \"float\", r: \"float\", g: \"float\" });\n case \"vec3\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n });\n case \"vec4\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n w: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n a: \"float\",\n });\n case \"ivec2\":\n return result({ x: \"int\", y: \"int\", r: \"int\", g: \"int\" });\n case \"ivec3\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n });\n case \"ivec4\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n w: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n a: \"int\",\n });\n case \"uvec2\":\n return result({ x: \"uint\", y: \"uint\", r: \"uint\", g: \"uint\" });\n case \"uvec3\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n });\n case \"uvec4\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n w: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n a: \"uint\",\n });\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport class Split extends Dyno<\n { vector: V },\n SplitOutTypes\n> {\n constructor({ vector }: { vector: DynoVal }) {\n const type = valType(vector);\n const inTypes = { vector: type };\n const outTypes = splitOutTypes(inTypes.vector);\n super({ inTypes, outTypes, inputs: { vector } });\n this.statements = ({ inputs, outputs }) => {\n const { x, y, z, w, r, g, b, a } = outputs as unknown as Record<\n string,\n string\n >;\n const { vector } = inputs;\n return [\n x ? `${x} = ${vector}.x;` : null,\n y ? `${y} = ${vector}.y;` : null,\n z ? `${z} = ${vector}.z;` : null,\n w ? `${w} = ${vector}.w;` : null,\n r ? `${r} = ${vector}.r;` : null,\n g ? `${g} = ${vector}.g;` : null,\n b ? `${b} = ${vector}.b;` : null,\n a ? `${a} = ${vector}.a;` : null,\n ].filter(Boolean) as string[];\n };\n }\n}\n\nexport class Combine>\n extends Dyno & { vector: V }, { vector: V }>\n implements HasDynoOut\n{\n constructor({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n }: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n }) {\n if (!vector && !vectorType) {\n throw new Error(\"Either vector or vectorType must be provided\");\n }\n const vType = vectorType ?? valType(vector as DynoVal);\n const elType = vectorElementType(vType);\n const dim = vectorDim(vType);\n\n const inTypes = {\n vector: vType,\n x: elType,\n y: elType,\n r: elType,\n g: elType,\n } as unknown as SplitOutTypes & { vector: V };\n const inputs = { vector, x, y, r, g };\n if (dim >= 3) {\n Object.assign(inTypes, { z: elType, b: elType });\n Object.assign(inputs, { z, b });\n }\n if (dim >= 4) {\n Object.assign(inTypes, { w: elType, a: elType });\n Object.assign(inputs, { w, a });\n }\n // @ts-ignore\n super({ inTypes, outTypes: { vector: vType }, inputs });\n this.statements = ({ inputs, outputs }) => {\n const { vector } = outputs;\n const {\n vector: input,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n } = inputs as Record;\n const statements = [\n `${vector}.x = ${x ?? r ?? (input ? `${input}.x` : literalZero(elType))};`,\n `${vector}.y = ${y ?? g ?? (input ? `${input}.y` : literalZero(elType))};`,\n ];\n if (dim >= 3)\n statements.push(\n `${vector}.z = ${z ?? b ?? (input ? `${input}.z` : literalZero(elType))};`,\n );\n if (dim >= 4)\n statements.push(\n `${vector}.w = ${w ?? a ?? (input ? `${input}.w` : literalZero(elType))};`,\n );\n return statements;\n };\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput & { vector: V }, { vector: V }>(\n this,\n \"vector\",\n );\n }\n}\n\ntype SwizzleOutput<\n A extends VectorTypes,\n Len extends number,\n> = A extends FloatTypes\n ? Len extends 1\n ? \"float\"\n : Len extends 2\n ? \"vec2\"\n : Len extends 3\n ? \"vec3\"\n : Len extends 4\n ? \"vec4\"\n : never\n : A extends IntTypes\n ? Len extends 1\n ? \"int\"\n : Len extends 2\n ? \"ivec2\"\n : Len extends 3\n ? \"ivec3\"\n : Len extends 4\n ? \"ivec4\"\n : never\n : A extends UintTypes\n ? Len extends 1\n ? \"uint\"\n : Len extends 2\n ? \"uvec2\"\n : Len extends 3\n ? \"uvec3\"\n : Len extends 4\n ? \"uvec4\"\n : never\n : never;\n\ntype SwizzleSelectLen = S extends Swizzle1Select\n ? 1\n : S extends Swizzle2Select\n ? 2\n : S extends Swizzle3Select\n ? 3\n : S extends Swizzle4Select\n ? 4\n : never;\n\nfunction swizzleOutputType(\n type: A,\n swizzle: S,\n): SwizzleOutput> {\n let result = null;\n if (isFloatType(type)) {\n result =\n swizzle.length === 1\n ? \"float\"\n : swizzle.length === 2\n ? \"vec2\"\n : swizzle.length === 3\n ? \"vec3\"\n : swizzle.length === 4\n ? \"vec4\"\n : null;\n } else if (isIntType(type)) {\n result =\n swizzle.length === 1\n ? \"int\"\n : swizzle.length === 2\n ? \"ivec2\"\n : swizzle.length === 3\n ? \"ivec3\"\n : swizzle.length === 4\n ? \"ivec4\"\n : null;\n } else if (isUintType(type)) {\n result =\n swizzle.length === 1\n ? \"uint\"\n : swizzle.length === 2\n ? \"uvec2\"\n : swizzle.length === 3\n ? \"uvec3\"\n : swizzle.length === 4\n ? \"uvec4\"\n : null;\n }\n if (result == null) {\n throw new Error(`Invalid swizzle: ${swizzle}`);\n }\n return result as SwizzleOutput>;\n}\n\ntype Swizzle1Select = `${\"x\" | \"y\" | \"z\" | \"w\"}|${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle2Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle3Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle4Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype SwizzleSelect =\n | Swizzle1Select\n | Swizzle2Select\n | Swizzle3Select\n | Swizzle4Select;\n\nexport class Swizzle<\n A extends VectorTypes,\n S extends SwizzleSelect,\n> extends UnaryOp>, \"swizzle\"> {\n constructor({ vector, select }: { vector: DynoVal; select: S }) {\n super({\n a: vector,\n outKey: \"swizzle\",\n outTypeFunc: (aType) => swizzleOutputType(aType, select),\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.swizzle} = ${inputs.a}.${select};`,\n ];\n }\n}\n","import { Dyno, DynoBlock, unindent } from \"./base\";\nimport { float, vec2, vec3, vec4 } from \"./convert\";\nimport { mul } from \"./math\";\nimport { type ValueTypes, isIntType, isUintType, sameSizeUvec } from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n dynoConst,\n valType,\n} from \"./value\";\nimport { combine } from \"./vecmat\";\n\nexport const remapIndex = (\n index: DynoVal<\"int\">,\n from: DynoVal<\"int\">,\n to: DynoVal<\"int\">,\n): DynoVal<\"int\"> => {\n return new DynoRemapIndex({ index, from, to });\n};\nexport const pcgMix = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new PcgMix({ value });\n};\nexport const pcgNext = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgNext({ state });\n};\nexport const pcgHash = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgHash({ state });\n};\nexport const hash = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new Hash({ value });\n};\nexport const hash2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => {\n return new Hash2({ value });\n};\nexport const hash3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => {\n return new Hash3({ value });\n};\nexport const hash4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => {\n return new Hash4({ value });\n};\nexport const hashFloat = (\n value: DynoVal,\n): DynoVal<\"float\"> => {\n return new HashFloat({ value });\n};\nexport const hashVec2 = (\n value: DynoVal,\n): DynoVal<\"vec2\"> => {\n return new HashVec2({ value });\n};\nexport const hashVec3 = (\n value: DynoVal,\n): DynoVal<\"vec3\"> => {\n return new HashVec3({ value });\n};\nexport const hashVec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => {\n return new HashVec4({ value });\n};\nexport const normalizedDepth = (\n z: DynoVal<\"float\">,\n zNear: DynoVal<\"float\">,\n zFar: DynoVal<\"float\">,\n): DynoVal<\"float\"> => {\n return new NormalizedDepth({ z, zNear, zFar }).outputs.depth;\n};\n\nexport const debugColorHue = (index: DynoVal<\"int\">): DynoVal<\"vec3\"> => {\n return new DebugColorHue({ index });\n};\n\nexport class DynoRemapIndex\n extends Dyno<{ from: \"int\"; to: \"int\"; index: \"int\" }, { index: \"int\" }>\n implements HasDynoOut<\"int\">\n{\n constructor({\n from,\n to,\n index,\n }: { from: DynoVal<\"int\">; to: DynoVal<\"int\">; index: DynoVal<\"int\"> }) {\n super({\n inTypes: { from: \"int\", to: \"int\", index: \"int\" },\n outTypes: { index: \"int\" },\n inputs: { from, to, index },\n statements: ({ inputs, outputs }) => {\n return [\n `${outputs.index} = ${inputs.index} - ${inputs.from} + ${inputs.to};`,\n ];\n },\n });\n }\n\n dynoOut(): DynoValue<\"int\"> {\n return new DynoOutput(this, \"index\");\n }\n}\n\nexport class PcgNext\n extends Dyno<{ state: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal }) {\n const type = valType(state);\n super({\n inTypes: { state: type },\n outTypes: { state: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_next(uint state) {\n return state * 747796405u + 2891336453u;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUint =\n type === \"uint\"\n ? `${inputs.state}`\n : type === \"int\"\n ? `uint(${inputs.state})`\n : `floatBitsToUint(${inputs.state})`;\n return [`${outputs.state} = pcg_next(${toUint});`];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class PcgHash\n extends Dyno<{ state: \"uint\" }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal<\"uint\"> }) {\n super({\n inTypes: { state: \"uint\" },\n outTypes: { hash: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_hash(uint state) {\n uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u;\n return (hash >> 22u) ^ hash;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => [\n `${outputs.hash} = pcg_hash(${inputs.state});`,\n ],\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class PcgMix\n extends Dyno<{ value: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n const type = valType(value);\n const tempType = sameSizeUvec(type);\n super({\n inTypes: { value: type },\n outTypes: { state: \"uint\" },\n inputs: { value },\n globals: () => [\n unindent(`\n uint pcg_mix(uint value) {\n return value;\n }\n uint pcg_mix(uvec2 value) {\n return value.x + 0x9e3779b9u * value.y;\n }\n uint pcg_mix(uvec3 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z;\n }\n uint pcg_mix(uvec4 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z + 0xc2b2ae35u * value.w;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUvec = isUintType(type)\n ? `${inputs.value}`\n : isIntType(type)\n ? `${tempType}(${inputs.value})`\n : `floatBitsToUint(${inputs.value})`;\n return [\n `${tempType} bits = ${toUvec};`,\n `${outputs.state} = pcg_mix(bits);`,\n ];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class Hash\n extends DynoBlock<{ value: T }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uint\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n return new PcgHash({ state }).outputs;\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash2\n extends DynoBlock<{ value: T }, { hash: \"uvec2\" }>\n implements HasDynoOut<\"uvec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec2\", x, y }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash3\n extends DynoBlock<{ value: T }, { hash: \"uvec3\" }>\n implements HasDynoOut<\"uvec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec3\", x, y, z }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash4\n extends DynoBlock<{ value: T }, { hash: \"uvec4\" }>\n implements HasDynoOut<\"uvec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const w = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec4\", x, y, z, w }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashFloat\n extends DynoBlock<{ value: T }, { hash: \"float\" }>\n implements HasDynoOut<\"float\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"float\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const word = hash(value);\n return { hash: mul(float(word), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec2\n extends DynoBlock<{ value: T }, { hash: \"vec2\" }>\n implements HasDynoOut<\"vec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash2(value);\n return { hash: mul(vec2(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec3\n extends DynoBlock<{ value: T }, { hash: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash3(value);\n return { hash: mul(vec3(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec4\n extends DynoBlock<{ value: T }, { hash: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash4(value);\n return { hash: mul(vec4(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class NormalizedDepth\n extends Dyno<\n { z: \"float\"; zNear: \"float\"; zFar: \"float\" },\n { depth: \"float\" }\n >\n implements HasDynoOut<\"float\">\n{\n constructor({\n z,\n zNear,\n zFar,\n }: { z: DynoVal<\"float\">; zNear: DynoVal<\"float\">; zFar: DynoVal<\"float\"> }) {\n super({\n inTypes: { z: \"float\", zNear: \"float\", zFar: \"float\" },\n outTypes: { depth: \"float\" },\n inputs: { z, zNear, zFar },\n statements: ({ inputs, outputs }) => [\n `float clamped = clamp(${inputs.z}, ${inputs.zNear}, ${inputs.zFar});`,\n `${outputs.depth} = (log2(clamped + 1.0) - log2(${inputs.zNear} + 1.0)) / (log2(${inputs.zFar} + 1.0) - log2(${inputs.zNear} + 1.0));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"depth\");\n }\n}\n\nexport class DebugColorHue\n extends Dyno<{ index: \"int\" }, { color: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ index }: { index: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { color: \"vec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => [\n `${outputs.color} = debugColorHue(uint(${inputs.index}));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"color\");\n }\n}\n","import { Dyno } from \"./base\";\nimport type { DynoVal } from \"./value\";\n\nexport const transformPos = (\n position: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n translate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformPosition({ position, scale, scales, rotate, translate })\n .outputs.position;\n};\nexport const transformDir = (\n dir: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformDir({ dir, scale, scales, rotate }).outputs.dir;\n};\nexport const transformQuat = (\n quaternion: DynoVal<\"vec4\">,\n { rotate }: { rotate?: DynoVal<\"vec4\"> },\n): DynoVal<\"vec4\"> => {\n return new TransformQuaternion({ quaternion, rotate }).outputs.quaternion;\n};\n\nexport class TransformPosition extends Dyno<\n {\n position: \"vec3\";\n scale: \"float\";\n scales: \"vec3\";\n rotate: \"vec4\";\n translate: \"vec3\";\n },\n { position: \"vec3\" }\n> {\n constructor({\n position,\n scale,\n scales,\n rotate,\n translate,\n }: {\n position?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n }) {\n super({\n inTypes: {\n position: \"vec3\",\n scale: \"float\",\n scales: \"vec3\",\n rotate: \"vec4\",\n translate: \"vec3\",\n },\n outTypes: { position: \"vec3\" },\n inputs: { position, scale, scales, rotate, translate },\n statements: ({ inputs, outputs }) => {\n const { position } = outputs;\n if (!position) {\n return [];\n }\n const { scale, scales, rotate, translate } = inputs;\n return [\n `${position} = ${inputs.position ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${position} *= ${scale};`,\n !scales ? null : `${position} *= ${scales};`,\n !rotate ? null : `${position} = quatVec(${rotate}, ${position});`,\n !translate ? null : `${position} += ${translate};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformDir extends Dyno<\n { dir: \"vec3\"; scale: \"float\"; scales: \"vec3\"; rotate: \"vec4\" },\n { dir: \"vec3\" }\n> {\n constructor({\n dir,\n scale,\n scales,\n rotate,\n }: {\n dir?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { dir: \"vec3\", scale: \"float\", scales: \"vec3\", rotate: \"vec4\" },\n outTypes: { dir: \"vec3\" },\n inputs: { dir, scale, scales, rotate },\n statements: ({ inputs, outputs }) => {\n const { dir } = outputs;\n if (!dir) {\n return [];\n }\n const { scale, scales, rotate } = inputs;\n return [\n `${dir} = ${inputs.dir ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${dir} *= ${scale};`,\n !scales ? null : `${dir} *= ${scales};`,\n !rotate ? null : `${dir} = quatVec(${rotate}, ${dir});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformQuaternion extends Dyno<\n { quaternion: \"vec4\"; rotate: \"vec4\" },\n { quaternion: \"vec4\" }\n> {\n constructor({\n quaternion,\n rotate,\n }: { quaternion?: DynoVal<\"vec4\">; rotate?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { quaternion: \"vec4\", rotate: \"vec4\" },\n outTypes: { quaternion: \"vec4\" },\n inputs: { quaternion, rotate },\n statements: ({ inputs, outputs }) => {\n const { quaternion } = outputs;\n if (!quaternion) {\n return [];\n }\n return [\n `${quaternion} = ${inputs.quaternion ?? \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rotate\n ? null\n : `${quaternion} = quatQuat(${inputs.rotate}, ${quaternion});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n","// TODO:\n// if, switch, for, comment,\n// arrayIndex, arrayLength,\n\nexport const dynoIf = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoSwitch = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoFor = () => {\n throw new Error(\"Not implemented\");\n};\nexport const comment = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayIndex = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayLength = () => {\n throw new Error(\"Not implemented\");\n};\n","import { Dyno } from \"./base\";\nimport type {\n AllSamplerTypes,\n IsamplerTypes,\n NormalSamplerTypes,\n Sampler2DArrayTypes,\n Sampler2DTypes,\n Sampler3DTypes,\n SamplerCubeTypes,\n SamplerShadowTypes,\n SamplerTypes,\n UsamplerTypes,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nexport const textureSize = (\n texture: DynoVal,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TextureSize({ texture, lod });\nexport const texture = (\n texture: DynoVal,\n coord: DynoVal>,\n bias?: DynoVal<\"float\">,\n): DynoVal> => new Texture({ texture, coord, bias });\nexport const texelFetch = (\n texture: DynoVal,\n coord: DynoVal>,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TexelFetch({ texture, coord, lod });\n\nexport class TextureSize\n extends Dyno<{ texture: T; lod: \"int\" }, { size: TextureSizeType }>\n implements HasDynoOut>\n{\n constructor({ texture, lod }: { texture: DynoVal; lod?: DynoVal<\"int\"> }) {\n const textureType = valType(texture);\n super({\n inTypes: { texture: textureType, lod: \"int\" },\n outTypes: { size: textureSizeType(textureType) },\n inputs: { texture, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.size} = textureSize(${inputs.texture}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"size\");\n }\n}\n\nexport class Texture\n extends Dyno<\n { texture: T; coord: TextureCoordType; bias: \"float\" },\n { sample: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n bias,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n bias?: DynoVal<\"float\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureCoordType(textureType),\n bias: \"float\",\n },\n outTypes: { sample: textureReturnType(textureType) },\n inputs: { texture, coord, bias },\n statements: ({ inputs, outputs }) => [\n `${outputs.sample} = texture(${inputs.texture}, ${inputs.coord}${inputs.bias ? `, ${inputs.bias}` : \"\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"sample\");\n }\n}\n\nexport class TexelFetch\n extends Dyno<\n { texture: T; coord: TextureSizeType; lod: \"int\" },\n { texel: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n lod,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n lod?: DynoVal<\"int\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureSizeType(textureType),\n lod: \"int\",\n },\n outTypes: { texel: textureReturnType(textureType) },\n inputs: { texture, coord, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.texel} = texelFetch(${inputs.texture}, ${inputs.coord}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"texel\");\n }\n}\n\ntype TextureSizeType = T extends\n | Sampler2DTypes\n | SamplerCubeTypes\n ? \"ivec2\"\n : T extends Sampler3DTypes | Sampler2DArrayTypes\n ? \"ivec3\"\n : never;\n\nfunction textureSizeType(\n textureType: T,\n): TextureSizeType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DShadow\":\n case \"samplerCubeShadow\":\n return \"ivec2\" as TextureSizeType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DArrayShadow\":\n return \"ivec3\" as TextureSizeType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureCoordType = T extends Sampler2DTypes\n ? \"vec2\"\n : T extends\n | Sampler3DTypes\n | Sampler2DArrayTypes\n | SamplerCubeTypes\n | Sampler2DArrayTypes\n ? \"vec3\"\n : T extends \"samperCubeShadow\" | \"sampler2DArrayShadow\"\n ? \"vec4\"\n : never;\n\nfunction textureCoordType(\n textureType: T,\n): TextureCoordType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n return \"vec2\" as TextureCoordType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DShadow\":\n return \"vec3\" as TextureCoordType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"vec4\" as TextureCoordType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureReturnType = T extends SamplerTypes\n ? \"vec4\"\n : T extends UsamplerTypes\n ? \"uvec4\"\n : T extends IsamplerTypes\n ? \"ivec4\"\n : T extends SamplerShadowTypes\n ? \"float\"\n : never;\n\nfunction textureReturnType(\n textureType: T,\n): TextureReturnType {\n switch (textureType) {\n case \"sampler2D\":\n case \"sampler2DArray\":\n case \"sampler3D\":\n case \"samplerCube\":\n case \"sampler2DShadow\":\n return \"vec4\" as TextureReturnType;\n case \"usampler2D\":\n case \"usampler2DArray\":\n case \"usampler3D\":\n case \"usamplerCube\":\n return \"uvec4\" as TextureReturnType;\n case \"isampler2D\":\n case \"isampler2DArray\":\n case \"isampler3D\":\n case \"isamplerCube\":\n return \"ivec4\" as TextureReturnType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"float\" as TextureReturnType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n","import { BinaryOp, UnaryOp } from \"./base\";\nimport type { FloatTypes } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const radians = (\n degrees: DynoVal,\n): DynoVal => new Radians({ degrees });\nexport const degrees = (\n radians: DynoVal,\n): DynoVal => new Degrees({ radians });\n\nexport const sin = (radians: DynoVal): DynoVal =>\n new Sin({ radians });\nexport const cos = (radians: DynoVal): DynoVal =>\n new Cos({ radians });\nexport const tan = (radians: DynoVal): DynoVal =>\n new Tan({ radians });\n\nexport const asin = (sin: DynoVal): DynoVal =>\n new Asin({ sin });\nexport const acos = (cos: DynoVal): DynoVal =>\n new Acos({ cos });\nexport const atan = (tan: DynoVal): DynoVal =>\n new Atan({ tan });\nexport const atan2 = (\n y: DynoVal,\n x: DynoVal,\n): DynoVal => new Atan2({ y, x });\n\nexport const sinh = (x: DynoVal): DynoVal =>\n new Sinh({ x });\nexport const cosh = (x: DynoVal): DynoVal =>\n new Cosh({ x });\nexport const tanh = (x: DynoVal): DynoVal =>\n new Tanh({ x });\n\nexport const asinh = (x: DynoVal): DynoVal =>\n new Asinh({ x });\nexport const acosh = (x: DynoVal): DynoVal =>\n new Acosh({ x });\nexport const atanh = (x: DynoVal): DynoVal =>\n new Atanh({ x });\n\nexport class Radians extends UnaryOp {\n constructor({ degrees }: { degrees: DynoVal }) {\n super({ a: degrees, outTypeFunc: (aType) => aType, outKey: \"radians\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.radians} = radians(${inputs.a});`,\n ];\n }\n}\n\nexport class Degrees extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"degrees\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.degrees} = degrees(${inputs.a});`,\n ];\n }\n}\n\nexport class Sin extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"sin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sin} = sin(${inputs.a});`,\n ];\n }\n}\n\nexport class Cos extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"cos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cos} = cos(${inputs.a});`,\n ];\n }\n}\n\nexport class Tan extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"tan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tan} = tan(${inputs.a});`,\n ];\n }\n}\n\nexport class Asin extends UnaryOp {\n constructor({ sin }: { sin: DynoVal }) {\n super({ a: sin, outTypeFunc: (aType) => aType, outKey: \"asin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asin} = asin(${inputs.a});`,\n ];\n }\n}\n\nexport class Acos extends UnaryOp {\n constructor({ cos }: { cos: DynoVal }) {\n super({ a: cos, outTypeFunc: (aType) => aType, outKey: \"acos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acos} = acos(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan extends UnaryOp {\n constructor({ tan }: { tan: DynoVal }) {\n super({ a: tan, outTypeFunc: (aType) => aType, outKey: \"atan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan} = atan(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan2 extends BinaryOp {\n constructor({ y, x }: { y: DynoVal; x: DynoVal }) {\n super({\n a: y,\n b: x,\n outTypeFunc: (aType, bType) => aType,\n outKey: \"atan2\",\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan2} = atan2(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Sinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"sinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sinh} = sinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Cosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"cosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cosh} = cosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Tanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"tanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tanh} = tanh(${inputs.a});`,\n ];\n }\n}\n\nexport class Asinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"asinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asinh} = asinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Acosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"acosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acosh} = acosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Atanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"atanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atanh} = atanh(${inputs.a});`,\n ];\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout uvec4 target;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n target = uvec4(0u, 0u, 0u, 0u);\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out vec4 target3;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial target to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize depthTarget to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out uvec4 target2;\nlayout(location = 2) out vec4 target3;\n// layout(location = 0) out vec4 target3;\n// layout(location = 1) out uvec4 target;\n// layout(location = 2) out uvec4 target2;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial targets to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n target2 = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize target3 to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout vec4 target;\n\n{{ GLOBALS }}\n\nvoid computeReadback(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n if ((index >= 0) && (index < targetCount)) {\n computeReadback(index);\n } else {\n target = vec4(0.0, 0.0, 0.0, 0.0);\n }\n}\n","const float LN_SCALE_MIN = -12.0;\nconst float LN_SCALE_MAX = 9.0;\n\nconst uint SPLAT_TEX_WIDTH_BITS = 11u;\nconst uint SPLAT_TEX_HEIGHT_BITS = 11u;\nconst uint SPLAT_TEX_DEPTH_BITS = 11u;\nconst uint SPLAT_TEX_LAYER_BITS = SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nconst uint SPLAT_TEX_WIDTH = 1u << SPLAT_TEX_WIDTH_BITS;\nconst uint SPLAT_TEX_HEIGHT = 1u << SPLAT_TEX_HEIGHT_BITS;\nconst uint SPLAT_TEX_DEPTH = 1u << SPLAT_TEX_DEPTH_BITS;\n\nconst uint SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1u;\nconst uint SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1u;\nconst uint SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1u;\n\nconst uint F16_INF = 0x7c00u;\nconst float PI = 3.1415926535897932384626433832795;\n\nconst float INFINITY = 1.0 / 0.0;\nconst float NEG_INFINITY = -INFINITY;\n\nfloat sqr(float x) {\n return x * x;\n}\n\nfloat pow4(float x) {\n float x2 = x * x;\n return x2 * x2;\n}\n\nfloat pow8(float x) {\n float x4 = pow4(x);\n return x4 * x4;\n}\n\nvec3 srgbToLinear(vec3 rgb) {\n return pow(rgb, vec3(2.2));\n}\n\nvec3 linearToSrgb(vec3 rgb) {\n return pow(rgb, vec3(1.0 / 2.2));\n}\n\n// Encode a quaternion (vec4) into a 24‐bit uint with folded octahedral mapping.\nuint encodeQuatOctXy88R8(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float theta = 2.0 * acos(q.w);\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 8 bits (0 to 255)\n uint quantU = uint(clamp(round(u_f * 255.0), 0.0, 255.0));\n uint quantV = uint(clamp(round(v_f * 255.0), 0.0, 255.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 8 bits (0 to 255)\n uint angleInt = uint(clamp(round((theta / 3.14159265359) * 255.0), 0.0, 255.0));\n \n // Pack bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16u) | (quantV << 8u) | quantU;\n}\n\n// Decode a 24‐bit encoded uint into a quaternion (vec4) using the folded octahedral inverse.\nvec4 decodeQuatOctXy88R8(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0xFFu); // bits 0–7\n uint quantV = (encoded >> 8u) & uint(0xFFu); // bits 8–15\n uint angleInt = encoded >> 16u; // bits 16–23\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 255.0;\n float v_f = float(quantV) / 255.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 255.0) * 3.14159265359;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\nuint encodeQuatOctXy1010R12(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float halfTheta = acos(q.w);\n float theta = 2.0 * halfTheta;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 10 bits (0 to 1023)\n uint quantU = uint(clamp(round(u_f * 1023.0), 0.0, 1023.0));\n uint quantV = uint(clamp(round(v_f * 1023.0), 0.0, 1023.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 12 bits (0 to 4095)\n uint angleInt = uint(clamp(round((theta / PI) * 4095.0), 0.0, 4095.0));\n \n // Pack bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20u) | (quantV << 10u) | quantU;\n}\n\nvec4 decodeQuatOctXy1010R12(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0x3FFu); // bits 0–9\n uint quantV = (encoded >> 10u) & uint(0x3FFu); // bits 10–19\n uint angleInt = encoded >> 20u; // bits 20–31\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 1023.0;\n float v_f = float(quantV) / 1023.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 4095.0) * PI;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplatEncoding(\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n uint uQuat = encodeQuatOctXy88R8(quaternion);\n // uint uQuat = encodeQuatXyz888(quaternion);\n // uint uQuat = encodeQuatEulerXyz888(quaternion);\n uvec3 uQuat3 = uvec3(uQuat & 0xffu, (uQuat >> 8u) & 0xffu, (uQuat >> 16u) & 0xffu);\n\n // Encode scales in three uint8s, where 0=>0.0 and 1..=255 stores log scale\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n uvec3 uScales = uvec3(\n (scales.x == 0.0) ? 0u : uint(round(clamp((log(scales.x) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.y == 0.0) ? 0u : uint(round(clamp((log(scales.y) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.z == 0.0) ? 0u : uint(round(clamp((log(scales.z) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u\n );\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) | (uQuat3.x << 16u) | (uQuat3.y << 24u);\n uint word3 = uScales.x | (uScales.y << 8u) | (uScales.z << 16u) | (uQuat3.z << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplat(vec3 center, vec3 scales, vec4 quaternion, vec4 rgba) {\n return packSplatEncoding(center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nvoid unpackSplatEncoding(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec4(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu)\n ).xyz;\n\n uvec3 uScales = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n scales = vec3(\n (uScales.x == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.x - 1u) * lnScaleScale),\n (uScales.y == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.y - 1u) * lnScaleScale),\n (uScales.z == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.z - 1u) * lnScaleScale)\n );\n\n\n uint uQuat = ((word2 >> 16u) & 0xFFFFu) | ((word3 >> 8u) & 0xFF0000u);\n quaternion = decodeQuatOctXy88R8(uQuat);\n // quaternion = decodeQuatXyz888(uQuat);\n // quaternion = decodeQuatEulerXyz888(uQuat);\n}\n\n// Unpack a Gsplat from a uvec4\nvoid unpackSplat(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nuvec4 packSplatCovEncoding(\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 255.0 / (2.0 * (lnScaleMax - lnScaleMin));\n uvec3 uXxyyzz = uvec3(round(clamp((log(xxyyzz) - 2.0 * lnScaleMin) * diagScale, 0.0, 255.0)));\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n ivec3 iXyxzyzCor = ivec3(round(xyxzyzCor * 127.0));\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) |\n ((uint(iXyxzyzCor.y) & 0xffu) << 16u) |\n ((uint(iXyxzyzCor.z) & 0xffu) << 24u);\n uint word3 =\n uXxyyzz.x | (uXxyyzz.y << 8u) | (uXxyyzz.z << 16u) |\n ((uint(iXyxzyzCor.x) & 0xffu) << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\nvoid unpackSplatCovEncoding(uvec4 packedData, out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec3(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu).x\n );\n\n uvec3 uXxyyzz = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n ivec3 iXyxzyzCor = ivec3(int(word3) >> 24, int(word2 << 8u) >> 24, int(word2) >> 24);\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 2.0 * (lnScaleMax - lnScaleMin) / 255.0;\n xxyyzz = exp(2.0 * lnScaleMin + vec3(uXxyyzz) * diagScale);\n\n vec3 xyxzyzCor = vec3(iXyxzyzCor) / 127.0;\n xyxzyz = xyxzyzCor * vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExtCov(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, rgba.b));\n packedData2.x = packHalf2x16(rgba.rg);\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n xyxzyzCor = sign(xyxzyzCor) * clamp(log(abs(xyxzyzCor)), -100.0, -0.0000001);\n xxyyzz = log(xxyyzz);\n\n packedData2.y = packHalf2x16(vec2(xxyyzz.x, xxyyzz.y));\n packedData2.z = packHalf2x16(vec2(xxyyzz.z, xyxzyzCor.x));\n packedData2.w = packHalf2x16(vec2(xyxzyzCor.y, xyxzyzCor.z));\n}\n\nvoid unpackSplatExtCov(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n\n vec2 ab = unpackHalf2x16(packedData.w);\n vec2 rg = unpackHalf2x16(packedData2.x);\n rgba = vec4(rg, ab.y, ab.x);\n\n vec2 xxyy = unpackHalf2x16(packedData2.y);\n vec2 zzxy = unpackHalf2x16(packedData2.z);\n vec2 xzyz = unpackHalf2x16(packedData2.w);\n xxyyzz = exp(vec3(xxyy.x, xxyy.y, zzxy.x));\n xyxzyz = vec3(zzxy.y, xzyz.x, xzyz.y);\n xyxzyz = -sign(xyxzyz) * exp(-abs(xyxzyz));\n xyxzyz *= vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExt(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, 0.0));\n\n packedData2.x = packHalf2x16(rgba.rg);\n packedData2.y = packHalf2x16(vec2(rgba.b, log(scales.x)));\n packedData2.z = packHalf2x16(log(scales.yz));\n packedData2.w = encodeQuatOctXy1010R12(quaternion);\n}\n\nvec4 unpackSplatExtCenterAlpha(uvec4 packedData) {\n return vec4(\n uintBitsToFloat(packedData.x),\n uintBitsToFloat(packedData.y),\n uintBitsToFloat(packedData.z),\n unpackHalf2x16(packedData.w).x\n );\n}\n\nfloat unpackSplatExtAlpha(uvec4 packedData) {\n return unpackHalf2x16(packedData.w).x;\n}\n\nvoid unpackSplatExt(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n rgba.a = unpackHalf2x16(packedData.w).x;\n\n rgba.rg = unpackHalf2x16(packedData2.x);\n vec2 split = unpackHalf2x16(packedData2.y);\n rgba.b = split.x;\n scales.x = exp(split.y);\n scales.yz = exp(unpackHalf2x16(packedData2.z));\n quaternion = decodeQuatOctXy1010R12(packedData2.w);\n}\n\nuint encodeExtRgb(vec3 rgb) {\n vec3 absRgb = abs(rgb);\n float maxAbs = max(absRgb.r, max(absRgb.g, absRgb.b));\n\n int base = clamp(int(floor(log2(maxAbs))) + 15, 0, 31);\n float divisor = exp2(float(base - 15)) / 255.0;\n\n uvec3 uRgb = uvec3(round(clamp(absRgb / divisor, 0.0, 255.0)));\n uint expSigns = (uint(base) << 3u) | ((rgb.r < 0.0 ? 0x1u : 0u) | (rgb.g < 0.0 ? 0x2u : 0u) | (rgb.b < 0.0 ? 0x4u : 0u));\n return uRgb.r | (uRgb.g << 8u) | (uRgb.b << 16u) | (expSigns << 24u);\n}\n\nvec3 decodeExtRgb(uint encoded) {\n uint biasedBase = (encoded >> 27u) & 0x1fu;\n float divisor = exp2(float(int(biasedBase) - 15)) / 255.0;\n\n vec3 rgb = vec3(uvec3(encoded & 0xffu, (encoded >> 8u) & 0xffu, (encoded >> 16u) & 0xffu));\n rgb *= divisor;\n\n return vec3(\n ((encoded & 0x1000000u) != 0u) ? -rgb.r : rgb.r,\n ((encoded & 0x2000000u) != 0u) ? -rgb.g : rgb.g,\n ((encoded & 0x4000000u) != 0u) ? -rgb.b : rgb.b\n );\n}\n\n// Rotate vector v by quaternion q\nvec3 quatVec(vec4 q, vec3 v) {\n // Rotate vector v by quaternion q\n vec3 t = 2.0 * cross(q.xyz, v);\n return v + q.w * t + cross(q.xyz, t);\n}\n\n// Apply quaternion q1 after quaternion q2\nvec4 quatQuat(vec4 q1, vec4 q2) {\n return vec4(\n q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,\n q1.w * q2.y - q1.x * q2.z + q1.y * q2.w + q1.z * q2.x,\n q1.w * q2.z + q1.x * q2.y - q1.y * q2.x + q1.z * q2.w,\n q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z\n );\n}\n\nmat3 quaternionToMatrix(vec4 q) {\n return mat3(\n (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n (2.0 * (q.x * q.y + q.w * q.z)),\n (2.0 * (q.x * q.z - q.w * q.y)),\n (2.0 * (q.x * q.y - q.w * q.z)),\n (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n (2.0 * (q.y * q.z + q.w * q.x)),\n (2.0 * (q.x * q.z + q.w * q.y)),\n (2.0 * (q.y * q.z - q.w * q.x)),\n (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\nmat3 scaleQuaternionToMatrix(vec3 s, vec4 q) {\n // Compute the matrix of scaling by s then rotating by q\n return mat3(\n s.x * (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n s.x * (2.0 * (q.x * q.y + q.w * q.z)),\n s.x * (2.0 * (q.x * q.z - q.w * q.y)),\n s.y * (2.0 * (q.x * q.y - q.w * q.z)),\n s.y * (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n s.y * (2.0 * (q.y * q.z + q.w * q.x)),\n s.z * (2.0 * (q.x * q.z + q.w * q.y)),\n s.z * (2.0 * (q.y * q.z - q.w * q.x)),\n s.z * (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\n// Spherical lerp between two quaternions\nvec4 slerp(vec4 q1, vec4 q2, float t) {\n // Compute the cosine of the angle between the two vectors\n float cosHalfTheta = dot(q1, q2);\n\n // If q1=q2 or q1=-q2 then theta = 0 and we can return q1\n if (abs(cosHalfTheta) >= 0.999) {\n return q1;\n }\n \n // If q1 and q2 are more than 180 degrees apart, \n // we need to negate one to get the shortest path\n if (cosHalfTheta < 0.0) {\n q2 = -q2;\n cosHalfTheta = -cosHalfTheta;\n }\n\n // Calculate temporary values\n float halfTheta = acos(cosHalfTheta);\n float sinHalfTheta = sqrt(1.0 - cosHalfTheta * cosHalfTheta);\n\n // Calculate the interpolation factors\n float ratioA = sin((1.0 - t) * halfTheta) / sinHalfTheta;\n float ratioB = sin(t * halfTheta) / sinHalfTheta;\n\n // Calculate the interpolated quaternion\n return q1 * ratioA + q2 * ratioB;\n}\n\nivec3 splatTexCoord(int index) {\n uint x = uint(index) & SPLAT_TEX_WIDTH_MASK;\n uint y = (uint(index) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK;\n uint z = uint(index) >> SPLAT_TEX_LAYER_BITS;\n return ivec3(x, y, z);\n}\n\nivec3 pagedSplatTexCoord(int index) {\n return ivec3(index & 255, (index >> 8) & 255, index >> 16);\n}\n\nvec4 uintToVec4(uint u32) {\n uvec4 bytes = uvec4(\n u32 & 0xFFu,\n (u32 >> 8u) & 0xFFu,\n (u32 >> 16u) & 0xFFu,\n (u32 >> 24u) & 0xFFu\n );\n return vec4(bytes) / 255.0;\n}\n\nvec4 floatToVec4(float f) {\n uint u32 = floatBitsToUint(f);\n return uintToVec4(u32);\n}\n\nvec3 debugColorHue(uint i) {\n // Golden ratio conjugate; spreads hues evenly\n float hue = fract(float(i) * 0.61803398875);\n // HSV to RGB with fixed S/V\n vec3 rgb = clamp(abs(mod(hue*6.0 + vec3(0.0,4.0,2.0), 6.0) - 3.0) - 1.0, 0.0, 1.0);\n return mix(vec3(1.0), rgb, 0.85); // saturation ~0.85, value ~1.0\n}\n","\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\n#include \n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n if (false) {\n // if (debugFlag) {\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n float min1a = min(1.0, a);\n rgba.a = mix(min1a, min1a * exp(exponent), falloff);\n } else {\n // New falloff function, more or less equivalent\n if (rgba.a <= 1.0) {\n rgba.a = mix(rgba.a, rgba.a * exp(-0.5 * z2), falloff);\n } else {\n float a = exp((rgba.a*rgba.a - 1.0) / 2.718281828459045);\n float alpha = 1.0 - pow(1.0 - exp(-0.5 * z2), a);\n rgba.a = mix(1.0, alpha, falloff);\n }\n }\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n\n #include \n}\n","\nprecision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\nflat out float adjustedStdDev;\n\n// uniform uint numSplats;\nuniform vec2 renderSize;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform mat3 renderToViewBasis;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform bool enableExtSplats;\nuniform bool enableCovSplats;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool enable2DGS;\nuniform bool lodInflate;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2D ordering;\nuniform usampler2DArray extSplats;\nuniform usampler2DArray extSplats2;\n\n// Required by logdepthbuf_pars_vertex (normally defined in three.js #include )\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == -1.0;\n}\n\n#include \n\nvoid main() {\n // Default to outside the frustum so it's discarded if we return early\n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n ivec2 orderingCoord = ivec2((gl_InstanceID >> 2) & 4095, gl_InstanceID >> 14);\n uint splatIndex = texelFetch(ordering, orderingCoord, 0)[gl_InstanceID & 3];\n if (splatIndex == 0xffffffffu) {\n // Special value reserved for \"no splat\"\n return;\n }\n\n ivec3 texCoord = splatTexCoord(int(splatIndex));\n vec3 center, scales, xxyyzz, xyxzyz;\n vec4 quaternion, rgba;\n mat3 cov3D;\n bvec3 zeroScales = bvec3(false);\n\n if (enableExtSplats) {\n uvec4 ext1 = texelFetch(extSplats, texCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if ((alpha == 0.0) || (alpha < minAlpha)) {\n return;\n }\n uvec4 ext2 = texelFetch(extSplats2, texCoord, 0);\n\n if (!enableCovSplats) {\n unpackSplatExt(ext1, ext2, center, scales, quaternion, rgba);\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatExtCov(ext1, ext2, center, rgba, xxyyzz, xyxzyz);\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n } else {\n uvec4 packedData = texelFetch(extSplats, texCoord, 0);\n if (!enableCovSplats) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatCovEncoding(packedData, center, rgba, xxyyzz, xyxzyz, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n\n rgba.a *= 2.0;\n if ((rgba.a == 0.0) || (rgba.a < minAlpha)) {\n return;\n }\n }\n\n adjustedStdDev = maxStdDev;\n if (rgba.a > 1.0) {\n // Stretch 1..2 to 1..5\n rgba.a = min(rgba.a * 4.0 - 3.0, 5.0);\n\n if (lodInflate) {\n // Adjust size to componsate for loss of opacity\n float opacity = exp((rgba.a * rgba.a - 1.0) / 2.718281828459045);\n float rescale = pow(opacity, 1.0 / 3.0);\n scales *= rescale;\n rgba.a = 1.0;\n }\n\n // Expand the maximum std dev to approximately cover the larger range\n adjustedStdDev = maxStdDev + 0.7 * (rgba.a - 1.0);\n }\n\n // Compute the view space center of the splat\n vec3 viewCenter = (!enableCovSplats ? quatVec(renderToViewQuat, center) : (renderToViewBasis * center)) + renderToViewPos;\n\n // Discard splats behind the camera\n if (viewCenter.z >= 0.0) {\n return;\n }\n\n // Compute the clip space center of the splat\n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n // Discard splats outside near/far planes\n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n // Discard splats more than clipXY times outside the XY frustum\n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n vRgba = rgba;\n vSplatUv = position.xy * adjustedStdDev;\n\n // Record the splat index for entropy\n vSplatIndex = splatIndex;\n\n if (!enableCovSplats) {\n // Compute view space quaternion of splat\n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n\n #include \n return;\n }\n\n // Compute the 3D covariance matrix of the splat\n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n cov3D = RS * transpose(RS);\n } else {\n cov3D = mat3(\n xxyyzz.x, xyxzyz.x, xyxzyz.y,\n xyxzyz.x, xxyyzz.y, xyxzyz.z,\n xyxzyz.y, xyxzyz.z, xxyyzz.z\n );\n cov3D = renderToViewBasis * cov3D * transpose(renderToViewBasis);\n }\n\n // Compute the Jacobian of the splat's projection at its center\n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if (isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n // Compute the 2D covariance by projecting the 3D covariance\n // and picking out the XY plane components.\n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n // Optionally pre-blur the splat to match non-antialias optimized splats\n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n // Do convolution with a 0.5-pixel Gaussian for anti-aliasing: sqrt(0.3) ~= 0.5\n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n // Compute anti-aliasing intensity scaling factor\n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n vRgba.a = rgba.a;\n\n // Compute the eigenvalue and eigenvectors of the 2D covariance matrix\n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = (abs(b) > 0.001) ? normalize(vec2(b, eigen1 - a))\n : ((a >= d) ? vec2(1.0, 0.0) : vec2(0.0, 1.0));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n // Compute the NDC coordinates for the ellipsoid's diagonal axes.\n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n\n // Compute NDC center of the splat\n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n\n #include \n}\n","import * as THREE from \"three\";\n\nimport computeUvec4Template from \"./shaders/computeUvec4.glsl\";\nimport computeUvec4Vec4Template from \"./shaders/computeUvec4_Vec4.glsl\";\nimport computeUvec4x2Vec4Template from \"./shaders/computeUvec4x2_Vec4.glsl\";\nimport computeVec4Template from \"./shaders/computeVec4.glsl\";\nimport splatDefines from \"./shaders/splatDefines.glsl\";\nimport splatFragment from \"./shaders/splatFragment.glsl\";\nimport splatVertex from \"./shaders/splatVertex.glsl\";\n\nlet shaders: Record | null = null;\n\nexport function getShaders(): Record {\n if (!shaders) {\n // @ts-ignore\n THREE.ShaderChunk.splatDefines = splatDefines;\n shaders = {\n splatVertex,\n splatFragment,\n computeVec4Template,\n computeUvec4Vec4Template,\n computeUvec4x2Vec4Template,\n computeUvec4Template,\n };\n }\n return shaders;\n}\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { type Dyno, OutputRgba8, dynoBlock } from \"./dyno\";\nimport { DynoProgram, DynoProgramTemplate } from \"./dyno/program\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize } from \"./utils\";\n\n// Readback can be used to run a Dyno program that maps an index to a 32-bit\n// RGBA8 value, which is the only allowed, portable readback format for WebGL2.\n// Using data packing and conversion you can read back any 32-bit value, which\n// Spark uses to read back 2 float16 Gsplat distance values per index.\n\nexport type Rgba8Readback = Dyno<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n\n// Readback can be performed with various typed buffers, making it convenient\n// to encode readback data in a variety of formats.\n\nexport type ReadbackBuffer =\n | ArrayBuffer\n | Uint8Array\n | Uint8ClampedArray\n | Int8Array\n | Uint16Array\n | Int16Array\n | Uint32Array\n | Int32Array\n | Float32Array;\n\nexport class Readback {\n renderer?: THREE.WebGLRenderer;\n target?: THREE.WebGLArrayRenderTarget;\n capacity: number;\n count: number;\n\n constructor({ renderer }: { renderer?: THREE.WebGLRenderer } = {}) {\n this.renderer = renderer;\n this.capacity = 0;\n this.count = 0;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n }\n\n // Ensure we have a buffer large enough for the readback of count indices.\n // Pass in previous bufer of the desired type.\n static ensureBuffer(count: number, buffer: B): B {\n // Readback is performed in a 2D array of pixels, so round up with SPLAT_TEX_WIDTH\n const roundedCount =\n Math.ceil(Math.max(1, count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const bytes = roundedCount * 4;\n if (buffer.byteLength >= bytes) {\n return buffer;\n }\n\n // Need a larger buffer, create a new one of the same type\n const newBuffer = new ArrayBuffer(bytes);\n if (buffer instanceof ArrayBuffer) {\n return newBuffer as B;\n }\n\n const ctor = buffer.constructor as { new (arrayBuffer: ArrayBuffer): B };\n return new ctor(newBuffer) as B;\n }\n\n ensureBuffer(count: number, buffer: B): B {\n return Readback.ensureBuffer(count, buffer);\n }\n\n // Ensure our render target is large enough for the readback of capacity indices.\n ensureCapacity(capacity: number) {\n const { width, height, depth, maxSplats } = getTextureSize(capacity);\n if (!this.target || maxSplats > this.capacity) {\n this.dispose();\n this.capacity = maxSplats;\n\n // The only portable readback format for WebGL2 is RGBA8\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAFormat;\n this.target.texture.type = THREE.UnsignedByteType;\n this.target.texture.internalFormat = \"RGBA8\";\n this.target.scissorTest = true;\n }\n }\n\n // Get a program and THREE.RawShaderMaterial for a given Rgba8Readback,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(reader: Rgba8Readback): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = Readback.readbackProgram.get(reader);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n reader.inputs.index = index;\n const rgba8 = new OutputRgba8({ rgba8: reader.outputs.rgba8 });\n return { rgba8 };\n },\n );\n if (!Readback.programTemplate) {\n Readback.programTemplate = new DynoProgramTemplate(\n getShaders().computeVec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { rgba8: \"target\" },\n template: Readback.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n Readback.readbackProgram.set(reader, program);\n }\n\n const material = program.prepareMaterial();\n Readback.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private process({\n count,\n material,\n }: { count: number; material: THREE.RawShaderMaterial }) {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n // Run the program in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of indices.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = 0;\n material.uniforms.targetCount.value = count;\n let baseIndex = 0;\n\n // Keep generating layers until completed count items\n while (baseIndex < count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((count - layerBase) / SPLAT_TEX_WIDTH),\n );\n material.uniforms.targetLayer.value = layer;\n\n // Render the desired portion of the layer\n this.target.scissor.set(0, 0, SPLAT_TEX_WIDTH, layerYEnd);\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n Readback.fullScreenQuad.render(renderer);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.count = count;\n }\n\n private async read({\n readback,\n }: { readback: B }): Promise {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(this.count / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(\n readback instanceof ArrayBuffer ? readback : readback.buffer,\n );\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < this.count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((this.count - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n renderer.setRenderTarget(this.target, layer);\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n const promise = renderer?.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n );\n promises.push(promise);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n // const gl = renderer.getContext() as WebGL2RenderingContext;\n // gl.flush();\n return Promise.all(promises).then(() => readback);\n }\n\n // Perform render operation to run the Rgba8Readback program\n // but don't perform the readback yet.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer?: THREE.WebGLRenderer }) {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n this.process({ count, material });\n this.resetRenderState(this.renderer, renderState);\n }\n\n // Perform a readback of the render target, returning a buffer of the\n // given type.\n async readback({\n readback,\n }: { readback: B }): Promise {\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n const renderState = this.saveRenderState(this.renderer);\n const promise = this.read({ readback });\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n // Perform a render and readback operation for the given Rgba8Readback,\n // and readback buffer (call ensureBuffer first).\n async renderReadback({\n reader,\n count,\n renderer,\n readback,\n }: {\n reader: Rgba8Readback;\n count: number;\n renderer?: THREE.WebGLRenderer;\n readback: B;\n }): Promise {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n\n // Generate output\n this.process({ count, material });\n\n // Initiate readback\n const promise = this.read({ readback });\n\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n getTexture(): THREE.DataArrayTexture | undefined {\n return this.target?.texture;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for Rgba8Readback programs\n static readbackProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n}\n","import * as THREE from \"three\";\n\nimport {\n CovSplat,\n Dyno,\n DynoInt,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { newArray } from \"./utils\";\n\n// Spark provides the ability to apply \"edits\" to Gsplats as part of the standard\n// SplatMesh pipeline. These edits take the form of a sequence of operations,\n// applied one at a time to the set of Gsplats in its packedSplats. Each operation\n// evaluates a 7-dimensional field (RGBA and XYZ displacement) at each point in\n// space that derives from N=1 or more Signed Distance Field shapes (such as spheres,\n// boxes, planes, etc.), blended together and across inside-outisde boundaries.\n\n// The result is a an RGBA,XYZ value for each point in space, which combined with\n// SplatEditRgbaBlendMode.MULTIPLY/SET_RGB/ADD_RGBA can be used to create special\n// effects, for example simulating simple lighting or applying deformations in space,\n// whose parameters can be updated each frame to create animated effects.\n\n// RGBA-XYZ values are computed by blending together values from all SDF shapes using\n// the exponential \"softmax\" function, which is commutative (so blending order within\n// a SplatEdit operation doesn't matter). The parameter SplatEdit.sdfSmooth controls\n// the blending scale between SDF shapes, while SplatEdit.softEdge controls the scale\n// of soft inside-outside shape edit blending. Their default values start at 0.0 and\n// should be increased to soften the effect.\n\n// Note that XYZ displacement values are blended in the same way as RGBA, with a\n// resulting displacement field that can be quite complex but \"softly\" blending\n// between shapes. These RGBA-XYZ edits, along with time-based and overlapping\n// fields can create many interesting animations and special effects, such as\n// rippling leaves in the wind, an angry fire, or a looping water effects. Simply\n// update the SplatEdit and SplatEditSdf objects and the operations will be applied\n// immediately to the Gsplats in the scene.\n\nexport enum SplatEditSdfType {\n // ALL: Affects all points in space\n ALL = \"all\",\n // PLANE: Infinite plane (position, rotation)\n PLANE = \"plane\",\n // SPHERE: Sphere (position, radius)\n SPHERE = \"sphere\",\n // BOX: Rounded box (position, rotation, sizes, radius)\n BOX = \"box\",\n // ELLIPSOID: Ellipsoid (position, rotation, sizes)\n ELLIPSOID = \"ellipsoid\",\n // CYLINDER: Cylinder (position, rotation, radius, size_y)\n CYLINDER = \"cylinder\",\n // CAPSULE: Capsule (position, rotation, radius, size_y)\n CAPSULE = \"capsule\",\n // INFINITE_CONE: Infinite cone (position, rotation, radius=angle)\n INFINITE_CONE = \"infinite_cone\",\n}\n\nfunction sdfTypeToNumber(type: SplatEditSdfType) {\n switch (type) {\n case SplatEditSdfType.ALL:\n return 0;\n case SplatEditSdfType.PLANE:\n return 1;\n case SplatEditSdfType.SPHERE:\n return 2;\n case SplatEditSdfType.BOX:\n return 3;\n case SplatEditSdfType.ELLIPSOID:\n return 4;\n case SplatEditSdfType.CYLINDER:\n return 5;\n case SplatEditSdfType.CAPSULE:\n return 6;\n case SplatEditSdfType.INFINITE_CONE:\n return 7;\n default:\n throw new Error(`Unknown SDF type: ${type}`);\n }\n}\n\nexport enum SplatEditRgbaBlendMode {\n // The RGBA of the splat is multiplied component-wise by the SDF’s\n // RGBA value at that point in space.\n MULTIPLY = \"multiply\",\n // Ignore the Alpha value in the SDF, but set the splat’s RGB to\n // equal the SDF’s RGB value at that point.\n SET_RGB = \"set_rgb\",\n // Add the SDF’s RGBA value at that point to the RGBA value of\n // the Gsplat. This can produce hyper-saturated results, but is useful\n // to easily “light up” areas.\n ADD_RGBA = \"add_rgba\",\n}\n\nfunction rgbaBlendModeToNumber(mode: SplatEditRgbaBlendMode) {\n switch (mode) {\n case SplatEditRgbaBlendMode.MULTIPLY:\n return 0;\n case SplatEditRgbaBlendMode.SET_RGB:\n return 1;\n case SplatEditRgbaBlendMode.ADD_RGBA:\n return 2;\n default:\n throw new Error(`Unknown blend mode: ${mode}`);\n }\n}\n\nexport type SplatEditSdfOptions = {\n // The SDF shape type: ALL, PLANE, SPHERE, BOX, ELLIPSOID, CYLINDER, CAPSULE,\n // or INFINITE_CONE. (default: SplatEditSdfType.SPHERE)\n type?: SplatEditSdfType;\n // Invert the SDF evaluation, swapping inside and outside regions. (default: false)\n invert?: boolean;\n // Opacity / \"alpha\" value used differently by blending modes (default: 1.0)\n opacity?: number;\n // RGB color applied within the shape. (default: new THREE.Color(1.0, 1.0, 1.0))\n color?: THREE.Color;\n // XYZ displacement applied to splat positions inside the shape.\n // (default: new THREE.Vector3(0.0, 0.0, 0.0))\n displace?: THREE.Vector3;\n // Shape-specific size parameter: sphere radius, box corner rounding,\n // cylinder/capsule radius, or for the infinite cone the angle factor\n // (opening half-angle = π/4 × radius).\n radius?: number;\n};\n\nexport class SplatEditSdf extends THREE.Object3D {\n type: SplatEditSdfType;\n invert: boolean;\n opacity: number;\n color: THREE.Color;\n displace: THREE.Vector3;\n radius: number;\n\n constructor(options: SplatEditSdfOptions = {}) {\n super();\n const { type, invert, opacity, color, displace, radius } = options;\n this.type = type ?? SplatEditSdfType.SPHERE;\n this.invert = invert ?? false;\n this.opacity = opacity ?? 1.0;\n this.color = color ?? new THREE.Color(1.0, 1.0, 1.0);\n this.displace = displace ?? new THREE.Vector3(0.0, 0.0, 0.0);\n this.radius = radius ?? 0.0;\n }\n}\n\nexport type SplatEditOptions = {\n // Name of this edit operation. If you omit it, a default \"Edit 1\", \"Edit 2\", ...\n // is assigned.\n name?: string;\n // How the SDF’s RGBA modifies each splat’s RGBA: multiply, overwrite RGB,\n // or add RGBA. (default: MULTIPLY)\n rgbaBlendMode?: SplatEditRgbaBlendMode;\n // Smoothing (in world‐space units) for blending between multiple SDF shapes\n // at their boundaries. (default: 0.0)\n sdfSmooth?: number;\n // Soft‐edge falloff radius (in world‐space units) around each SDF shape’s surface.\n // (default: 0.0)\n softEdge?: number;\n // Invert the SDF evaluation (inside/outside swap). (default: false)\n invert?: boolean;\n // Explicit array of SplatEditSdf objects to include. If null, any child\n // SplatEditSdf instances are used.\n sdfs?: SplatEditSdf[];\n};\n\nexport class SplatEdit extends THREE.Object3D {\n // ordering used to apply SplatEdit operations to Gsplats. This is implicitly\n // increased with each new SplatEdit. Reassigning ordering can be used to\n // reorder the operations.\n ordering: number;\n rgbaBlendMode: SplatEditRgbaBlendMode;\n sdfSmooth: number;\n softEdge: number;\n invert: boolean;\n\n // Optional list of explicit SDFs to including in this edit. If it is null, then\n // any SplatEditSdf children in the scene graph will be added automatically.\n sdfs: SplatEditSdf[] | null;\n\n // The next ordering number to use for a new SplatEdit, auto-incremented\n static nextOrdering = 1;\n\n constructor(options: SplatEditOptions = {}) {\n const {\n name,\n rgbaBlendMode = SplatEditRgbaBlendMode.MULTIPLY,\n sdfSmooth = 0.0,\n softEdge = 0.0,\n invert = false,\n sdfs = null,\n } = options;\n\n super();\n this.rgbaBlendMode = rgbaBlendMode;\n this.sdfSmooth = sdfSmooth;\n this.softEdge = softEdge;\n this.invert = invert;\n this.sdfs = sdfs;\n // Assign and auto-increment unique ordering number for this edit\n this.ordering = SplatEdit.nextOrdering++;\n // Automatically assign a default name if not provided\n this.name = name ?? `Edit ${this.ordering}`;\n }\n\n addSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n this.sdfs = [];\n }\n if (!this.sdfs.includes(sdf)) {\n this.sdfs.push(sdf);\n }\n }\n\n removeSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n return;\n }\n this.sdfs = this.sdfs.filter((s) => s !== sdf);\n }\n}\n\n// Dyno implementation of RGBA-XYZ SDF editing.\n// The SDFs are encoded in a texture while the edits are encoded\n// as a uniform uvec4 array.\n\nexport class SplatEdits {\n // Maximum number of SDFs allocated\n maxSdfs: number;\n // Number of SDFs currently in use\n numSdfs: number;\n // Encoded SDF data\n sdfData: Uint32Array;\n // Float interpretation of SDF data\n sdfFloatData: Float32Array;\n // Texture with encoded SDF data\n sdfTexture: THREE.DataTexture;\n // An SdfArray dyno uniform\n dynoSdfArray: DynoUniform;\n\n // Maximum number of edits allocated\n maxEdits: number;\n // Number of edits currently in use\n numEdits: number;\n // Encoded edit data\n editData: Uint32Array;\n // Float interpretation of edit data\n editFloatData: Float32Array;\n // A dyno uniform for the number of edits\n dynoNumEdits: DynoUniform<\"int\", \"numEdits\">;\n // A dyno uniform for the encoded edits, one uvec4 per edit\n dynoEdits: DynoUniform<\"uvec4\", \"edits\">;\n\n constructor({ maxSdfs, maxEdits }: { maxSdfs?: number; maxEdits?: number }) {\n // Allocate at least 16 SDFs for efficiency\n this.maxSdfs = Math.max(16, maxSdfs ?? 0);\n this.numSdfs = 0;\n\n // Allocate space: 8 x (u)vec4 values per SDF, Uint32 and Float32 arrays\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n this.dynoSdfArray = new DynoUniform({\n key: \"sdfArray\",\n type: SdfArray,\n globals: () => [defineSdfArray],\n value: {\n numSdfs: 0,\n sdfTexture: this.sdfTexture,\n },\n update: (uniform) => {\n uniform.numSdfs = this.numSdfs;\n uniform.sdfTexture = this.sdfTexture;\n return uniform;\n },\n });\n\n // Allocate at least 16 edits slots for efficiency\n this.maxEdits = Math.max(16, maxEdits ?? 0);\n this.numEdits = 0;\n // Allocate space: 1 uvec4 per edit\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoNumEdits = new DynoInt({ value: 0 });\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n }\n\n private newSdfTexture(data: Uint32Array, maxSdfs: number) {\n const texture = new THREE.DataTexture(\n data,\n 8,\n maxSdfs,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n }\n\n private newEdits(data: Uint32Array, maxEdits: number) {\n return new DynoUniform({\n key: \"edits\",\n type: \"uvec4\",\n count: maxEdits,\n globals: () => [defineEdit],\n value: data,\n });\n }\n\n // Ensure our SDF texture and edits uniform array have enough capacity.\n // Reallocate if not.\n private ensureCapacity({\n maxSdfs,\n maxEdits,\n }: { maxSdfs: number; maxEdits: number }): boolean {\n let dynoUpdated = false;\n if (maxSdfs > this.sdfTexture.image.height) {\n this.sdfTexture.dispose();\n // At least double the size to avoid frequent reallocations\n this.maxSdfs = Math.max(this.maxSdfs * 2, maxSdfs);\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n }\n if (maxEdits > (this.dynoEdits.count ?? 0)) {\n // At least double the size to avoid frequent reallocations\n this.maxEdits = Math.max(this.maxEdits * 2, maxEdits);\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n dynoUpdated = true;\n }\n return dynoUpdated;\n }\n\n private updateEditData(offset: number, value: number): boolean {\n // Update an edit uint32 value and return true if it changed\n const updated = this.editData[offset] !== value;\n this.editData[offset] = value;\n return updated;\n }\n\n private updateEditFloatData(offset: number, value: number): boolean {\n // Update an edit float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.editFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.editFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeEdit(\n editIndex: number,\n {\n sdfFirst,\n sdfCount,\n invert,\n rgbaBlendMode,\n softEdge,\n sdfSmooth,\n }: {\n sdfFirst: number;\n sdfCount: number;\n invert: boolean;\n rgbaBlendMode: number;\n softEdge: number;\n sdfSmooth: number;\n },\n ): boolean {\n const base = editIndex * 4;\n let updated = false;\n // Encode the edit fields into the editData array and check if any changed\n updated =\n this.updateEditData(base + 0, rgbaBlendMode | (invert ? 1 << 8 : 0)) ||\n updated;\n updated =\n this.updateEditData(base + 1, sdfFirst | (sdfCount << 16)) || updated;\n updated = this.updateEditFloatData(base + 2, softEdge) || updated;\n updated = this.updateEditFloatData(base + 3, sdfSmooth) || updated;\n return updated;\n }\n\n private updateSdfData(offset: number, value: number): boolean {\n // Update an SDF uint32 value and return true if it changed\n const updated = this.sdfData[offset] !== value;\n this.sdfData[offset] = value;\n return updated;\n }\n\n private updateSdfFloatData(offset: number, value: number): boolean {\n // Update an SDF float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.sdfFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.sdfFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeSdf(\n sdfIndex: number,\n {\n sdfType,\n invert,\n center,\n quaternion,\n scale,\n sizes,\n }: {\n sdfType: number;\n invert?: boolean;\n center?: THREE.Vector3;\n quaternion?: THREE.Quaternion;\n scale?: THREE.Vector3;\n sizes?: THREE.Vector4;\n },\n values: THREE.Vector4[],\n ): boolean {\n // Encode the SDF fields into the sdfData array and check if any changed\n const base = sdfIndex * (8 * 4);\n const flags = sdfType | (invert ? 1 << 8 : 0);\n let updated = false;\n\n updated = this.updateSdfFloatData(base + 0, center?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 1, center?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 2, center?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 3, flags) || updated;\n\n updated = this.updateSdfFloatData(base + 4, quaternion?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 5, quaternion?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 6, quaternion?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 7, quaternion?.w ?? 0) || updated;\n\n updated = this.updateSdfFloatData(base + 8, scale?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 9, scale?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 10, scale?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 11, 0) || updated;\n\n updated = this.updateSdfFloatData(base + 12, sizes?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 13, sizes?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 14, sizes?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 15, sizes?.w ?? 0) || updated;\n\n const nValues = Math.min(4, values.length);\n for (let i = 0; i < nValues; ++i) {\n const vBase = base + 16 + i * 4;\n updated = this.updateSdfFloatData(vBase + 0, values[i].x) || updated;\n updated = this.updateSdfFloatData(vBase + 1, values[i].y) || updated;\n updated = this.updateSdfFloatData(vBase + 2, values[i].z) || updated;\n updated = this.updateSdfFloatData(vBase + 3, values[i].w) || updated;\n }\n return updated;\n }\n\n // Update the SDFs and edits from an array of SplatEdits and their\n // associated SplatEditSdfs, updating it for the dyno shader program.\n update(edits: { edit: SplatEdit; sdfs: SplatEditSdf[] }[]): {\n updated: boolean;\n dynoUpdated: boolean;\n } {\n const sdfCount = edits.reduce((total, { sdfs }) => total + sdfs.length, 0);\n const dynoUpdated = this.ensureCapacity({\n maxEdits: edits.length,\n maxSdfs: sdfCount,\n });\n\n const values = [new THREE.Vector4(), new THREE.Vector4()];\n const center = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const scale = new THREE.Vector3();\n const sizes = new THREE.Vector4();\n\n let sdfIndex = 0;\n let updated = dynoUpdated;\n\n if (edits.length !== this.dynoNumEdits.value) {\n this.dynoNumEdits.value = edits.length;\n this.numEdits = edits.length;\n updated = true;\n }\n\n for (const [editIndex, { edit, sdfs }] of edits.entries()) {\n updated =\n this.encodeEdit(editIndex, {\n sdfFirst: sdfIndex,\n sdfCount: sdfs.length,\n invert: edit.invert,\n rgbaBlendMode: rgbaBlendModeToNumber(edit.rgbaBlendMode),\n softEdge: edit.softEdge,\n sdfSmooth: edit.sdfSmooth,\n }) || updated;\n\n let sdfUpdated = false;\n for (const sdf of sdfs) {\n sizes.set(sdf.scale.x, sdf.scale.y, sdf.scale.z, sdf.radius);\n // Temporarily set the SDF scale to 1.0 to get the world-to-SDF\n // transform without scaling. The SDF treats the scale separately.\n sdf.scale.setScalar(1.0);\n sdf.updateMatrixWorld();\n const worldToSdf = sdf.matrixWorld.clone().invert();\n worldToSdf.decompose(center, quaternion, scale);\n\n sdf.scale.set(sizes.x, sizes.y, sizes.z);\n sdf.updateMatrixWorld();\n\n values[0].set(sdf.color.r, sdf.color.g, sdf.color.b, sdf.opacity);\n values[1].set(sdf.displace.x, sdf.displace.y, sdf.displace.z, 1.0);\n\n sdfUpdated =\n this.encodeSdf(\n sdfIndex,\n {\n sdfType: sdfTypeToNumber(sdf.type),\n invert: sdf.invert,\n center,\n quaternion,\n scale,\n sizes,\n },\n values,\n ) || sdfUpdated;\n\n sdfIndex += 1;\n }\n this.numSdfs = sdfIndex;\n if (sdfUpdated) {\n this.sdfTexture.needsUpdate = true;\n }\n updated ||= sdfUpdated;\n }\n return { updated, dynoUpdated };\n }\n\n // Modify a Gsplat in a dyno shader program using the current edits and SDFs.\n modify(gsplat: DynoVal): DynoVal {\n return applyGsplatRgbaDisplaceEdits(\n gsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n return applyCovSplatRgbaDisplaceEdits(\n covsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n}\n\n// Dyno types and components:\n\n// An SdfArray contains a collection of SDFs encoded in a texture.\n// Each SDF has a type and geometric parameters, but also encodes\n// 4 x vec4 values, which can all be blended across multiple SDFs.\n// The SplatEdit system uses 7 of these 16 values to encode RGBA-XYZ edits,\n// but more can be added, and these SDFs can be used for entirely different\n// purposes as well.\n\nexport const SdfArray = { type: \"SdfArray\" } as { type: \"SdfArray\" };\n\nexport const defineSdfArray = unindent(`\n struct SdfArray {\n int numSdfs;\n usampler2D sdfTexture;\n };\n\n void unpackSdfArray(\n usampler2D sdfTexture, int sdfIndex, out uint flags,\n out vec3 center, out vec4 quaternion, out vec3 scale, out vec4 sizes,\n int numValues, out vec4 values[4]\n ) {\n uvec4 temp = texelFetch(sdfTexture, ivec2(0, sdfIndex), 0);\n flags = temp.w;\n center = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(1, sdfIndex), 0);\n quaternion = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n temp = texelFetch(sdfTexture, ivec2(2, sdfIndex), 0);\n scale = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(3, sdfIndex), 0);\n sizes = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n for (int i = 0; i < numValues; ++i) {\n temp = texelFetch(sdfTexture, ivec2(4 + i, sdfIndex), 0);\n values[i] = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n }\n }\n\n const uint SDF_FLAG_TYPE = 0xFFu;\n const uint SDF_FLAG_INVERT = 1u << 8u;\n\n const uint SDF_TYPE_ALL = 0u;\n const uint SDF_TYPE_PLANE = 1u;\n const uint SDF_TYPE_SPHERE = 2u;\n const uint SDF_TYPE_BOX = 3u;\n const uint SDF_TYPE_ELLIPSOID = 4u;\n const uint SDF_TYPE_CYLINDER = 5u;\n const uint SDF_TYPE_CAPSULE = 6u;\n const uint SDF_TYPE_INFINITE_CONE = 7u;\n\n float evaluateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 outValues[4]\n ) {\n float distanceAccum = (smoothK == 0.0) ? 1.0 / 0.0 : 0.0;\n float maxExp = -1.0 / 0.0;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = vec4(0.0);\n }\n\n uint flags;\n vec3 center, scale;\n vec4 quaternion, sizes;\n vec4 values[4];\n\n int sdfLast = min(sdfFirst + sdfCount, numSdfs);\n for (int index = sdfFirst; index < sdfLast; ++index) {\n unpackSdfArray(sdfTexture, index, flags, center, quaternion, scale, sizes, numValues, values);\n uint sdfType = flags & SDF_FLAG_TYPE;\n vec3 sdfPos = quatVec(quaternion, pos * scale) + center;\n\n float distance;\n switch (sdfType) {\n case SDF_TYPE_ALL:\n distance = -1.0 / 0.0;\n break;\n case SDF_TYPE_PLANE: {\n distance = sdfPos.z;\n break;\n }\n case SDF_TYPE_SPHERE: {\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_BOX: {\n vec3 q = abs(sdfPos) - sizes.xyz + sizes.w;\n distance = length(max(q, 0.0)) + min(max(q.x, max(q.y, q.z)), 0.0) - sizes.w;\n break;\n }\n case SDF_TYPE_ELLIPSOID: {\n vec3 sizes = sizes.xyz;\n float k0 = length(sdfPos / sizes);\n float k1 = length(sdfPos / dot(sizes, sizes));\n distance = k0 * (k0 - 1.0) / k1;\n break;\n }\n case SDF_TYPE_CYLINDER: {\n vec2 d = abs(vec2(length(sdfPos.xz), sdfPos.y)) - sizes.wy;\n distance = min(max(d.x, d.y), 0.0) + length(max(d, 0.0));\n break;\n }\n case SDF_TYPE_CAPSULE: {\n sdfPos.y -= clamp(sdfPos.y, -0.5 * sizes.y, 0.5 * sizes.y);\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_INFINITE_CONE: {\n float angle = 0.25 * PI * sizes.w;\n vec2 c = vec2(sin(angle), cos(angle));\n vec2 q = vec2(length(sdfPos.xy), -sdfPos.z);\n float d = length(q - c * max(dot(q, c), 0.0));\n distance = d * (((q.x * c.y - q.y * c.x) < 0.0) ? -1.0 : 1.0);\n break;\n }\n }\n\n if ((flags & SDF_FLAG_INVERT) != 0u) {\n distance = -distance;\n }\n\n if (smoothK == 0.0) {\n if (distance < distanceAccum) {\n distanceAccum = distance;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = values[i];\n }\n }\n } else {\n float scaledDistance = -distance / smoothK;\n if (scaledDistance > maxExp) {\n float scale = exp(maxExp - scaledDistance);\n distanceAccum *= scale;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] *= scale;\n }\n maxExp = scaledDistance;\n }\n\n float weight = exp(scaledDistance - maxExp);\n distanceAccum += weight;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] += weight * values[i];\n }\n }\n }\n\n if (smoothK == 0.0) {\n return distanceAccum;\n } else {\n // Very distant SDFs may result in 0 accumulation\n if (distanceAccum == 0.0) {\n return 1.0 / 0.0;\n }\n for (int i = 0; i < numValues; ++i) {\n outValues[i] /= distanceAccum;\n }\n return (-log(distanceAccum) - maxExp) * smoothK;\n }\n }\n\n float modulateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 values[4],\n float softEdge, bool invert\n ) {\n float distance = evaluateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, numValues, values);\n if (invert) {\n distance = -distance;\n }\n\n return (softEdge == 0.0) ? ((distance < 0.0) ? 1.0 : 0.0)\n : clamp(-distance / softEdge + 0.5, 0.0, 1.0);\n }\n`);\n\nexport const defineEdit = unindent(`\n const uint EDIT_FLAG_BLEND = 0xFFu;\n const uint EDIT_BLEND_MULTIPLY = 0u;\n const uint EDIT_BLEND_SET_RGB = 1u;\n const uint EDIT_BLEND_ADD_RGBA = 2u;\n const uint EDIT_FLAG_INVERT = 0x100u;\n\n void decodeEdit(\n uvec4 packedEdit, out int sdfFirst, out int sdfCount,\n out bool invert, out uint rgbaBlendMode, out float softEdge, out float sdfSmooth\n ) {\n rgbaBlendMode = packedEdit.x & EDIT_FLAG_BLEND;\n invert = (packedEdit.x & EDIT_FLAG_INVERT) != 0u;\n\n sdfFirst = int(packedEdit.y & 0xFFFFu);\n sdfCount = int(packedEdit.y >> 16u);\n\n softEdge = uintBitsToFloat(packedEdit.z);\n sdfSmooth = uintBitsToFloat(packedEdit.w);\n }\n\n void applyRgbaDisplaceEdit(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, inout vec3 pos,\n float smoothK, float softEdge, bool invert, uint rgbaBlendMode, inout vec4 rgba\n ) {\n vec4 values[4];\n float modulate = modulateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, 2, values, softEdge, invert);\n // On Android, moving values[0] is necessary to work around a compiler bug.\n vec4 sdfRgba = values[0];\n vec4 sdfDisplaceScale = values[1];\n\n vec4 target;\n switch (rgbaBlendMode) {\n case EDIT_BLEND_MULTIPLY:\n target = rgba * sdfRgba;\n break;\n case EDIT_BLEND_SET_RGB:\n target = vec4(sdfRgba.rgb, rgba.a * sdfRgba.a);\n break;\n case EDIT_BLEND_ADD_RGBA:\n target = rgba + sdfRgba;\n break;\n default:\n // Debug output if blend mode not set\n target = vec4(fract(pos), 1.0);\n }\n rgba = mix(rgba, target, modulate);\n pos += sdfDisplaceScale.xyz * modulate;\n }\n\n void applyPackedRgbaDisplaceEdit(uvec4 packedEdit, usampler2D sdfTexture, int numSdfs, inout vec3 pos, inout vec4 rgba) {\n int sdfFirst, sdfCount;\n bool invert;\n uint rgbaBlendMode;\n float softEdge, sdfSmooth;\n decodeEdit(packedEdit, sdfFirst, sdfCount, invert, rgbaBlendMode, softEdge, sdfSmooth);\n applyRgbaDisplaceEdit(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, sdfSmooth, softEdge, invert, rgbaBlendMode, rgba);\n }\n`);\n\nfunction applyGsplatRgbaDisplaceEdits(\n gsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n gsplat: typeof Gsplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { gsplat: typeof Gsplat }\n >({\n inTypes: {\n gsplat: Gsplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { gsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${gsplat}.center, ${gsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nfunction applyCovSplatRgbaDisplaceEdits(\n covsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n covsplat: typeof CovSplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { covsplat: typeof CovSplat }\n >({\n inTypes: {\n covsplat: CovSplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { covsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${covsplat}.center, ${covsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nconst tempFloat32 = new Float32Array(1);\n","import * as THREE from \"three\";\nimport type { SplatEdit } from \"./SplatEdit\";\nimport {\n CovSplat,\n Dyno,\n DynoFloat,\n DynoMat3,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n Gsplat,\n add,\n dynoBlock,\n mul,\n transformDir,\n transformGsplat,\n transformPos,\n unindentLines,\n} from \"./dyno\";\n\n// A GsplatGenerator is a dyno program that maps an index to a Gsplat's properties\n\nexport type GsplatGenerator = Dyno<{ index: \"int\" }, { gsplat: typeof Gsplat }>;\n\nexport type CovSplatGenerator = Dyno<\n { index: \"int\" },\n { covsplat: typeof CovSplat }\n>;\n\n// A GsplatModifier is a dyno program that inputs a Gsplat, modifies, and outputs it\n\nexport type GsplatModifier = Dyno<\n { gsplat: typeof Gsplat },\n { gsplat: typeof Gsplat }\n>;\n\nexport type CovSplatModifier = Dyno<\n { covsplat: typeof CovSplat },\n { covsplat: typeof CovSplat }\n>;\n\n// A SplatModifier is a utility class to apply a GsplatModifier to\n// a GsplatGenerator pipeline, caching the combined result for efficiency.\n\nexport class SplatModifier {\n modifier: GsplatModifier;\n cache: Map;\n\n constructor(modifier: GsplatModifier) {\n this.modifier = modifier;\n this.cache = new Map();\n }\n\n apply(generator: GsplatGenerator): GsplatGenerator {\n let modified = this.cache.get(generator);\n if (!modified) {\n modified = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n const { gsplat } = generator.apply({ index });\n return this.modifier.apply({ gsplat });\n },\n );\n this.cache.set(generator, modified);\n }\n return modified;\n }\n}\n\n// A SplatTransformer is a utility class to apply a transform to a Gsplat\n// via a scale, rotation, and translation. Scale is a single float because\n// anisotropic scaling of Gsplats is not supported.\n\nexport class SplatTransformer {\n scale: DynoFloat;\n rotate: DynoVec4;\n translate: DynoVec3;\n\n // Create the dyno uniforms that parameterize the transform, setting them\n // to initial values that are different from any valid transform.\n constructor() {\n this.scale = new DynoFloat({ value: Number.NEGATIVE_INFINITY });\n this.rotate = new DynoVec4({\n value: new THREE.Quaternion(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n this.translate = new DynoVec3({\n value: new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformPos(position, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformDir(dir, {\n rotate: this.rotate,\n });\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyGsplat(gsplat: DynoVal): DynoVal {\n return transformGsplat(gsplat, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const scale = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const position = new THREE.Vector3();\n transform.decompose(position, quaternion, scale);\n const newScale = (scale.x + scale.y + scale.z) / 3;\n\n let updated = false;\n if (newScale !== this.scale.value) {\n this.scale.value = newScale;\n updated = true;\n }\n if (!position.equals(this.translate.value)) {\n this.translate.value.copy(position);\n updated = true;\n }\n if (!quaternion.equals(this.rotate.value)) {\n this.rotate.value.copy(quaternion);\n updated = true;\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\nexport class CovSplatTransformer {\n basis: DynoMat3<\"basis\", THREE.Matrix3>;\n offset: DynoVec3;\n\n constructor() {\n this.basis = new DynoMat3({ value: new THREE.Matrix3() });\n this.offset = new DynoVec3({ value: new THREE.Vector3() });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n const rebased = mul(this.basis, position);\n return add(rebased, this.offset);\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return mul(this.basis, dir);\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyCovSplat(covsplat: DynoVal): DynoVal {\n return new Dyno({\n inTypes: { covsplat: CovSplat, basis: \"mat3\", offset: \"vec3\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covsplat, basis: this.basis, offset: this.offset },\n statements: ({ inputs, outputs }) => {\n const { covsplat, basis, offset } = inputs;\n if (!covsplat || !basis || !offset) {\n return [`${outputs.covsplat}.flags = 0u;`];\n }\n return unindentLines(`\n ${outputs.covsplat}.flags = 0u;\n if (isCovSplatActive(${covsplat}.flags)) {\n ${outputs.covsplat}.flags = ${covsplat}.flags;\n ${outputs.covsplat}.index = ${covsplat}.index;\n ${outputs.covsplat}.rgba = ${covsplat}.rgba;\n\n ${outputs.covsplat}.center = ${basis} * ${covsplat}.center + ${offset};\n \n mat3 cov = mat3(\n ${covsplat}.xxyyzz.x, ${covsplat}.xyxzyz.x, ${covsplat}.xyxzyz.y,\n ${covsplat}.xyxzyz.x, ${covsplat}.xxyyzz.y, ${covsplat}.xyxzyz.z,\n ${covsplat}.xyxzyz.y, ${covsplat}.xyxzyz.z, ${covsplat}.xxyyzz.z\n );\n cov = ${basis} * cov * transpose(${basis});\n ${outputs.covsplat}.xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n ${outputs.covsplat}.xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n `);\n },\n }).outputs.covsplat;\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const basis = new THREE.Matrix3().setFromMatrix4(transform);\n const offset = new THREE.Vector3().setFromMatrixColumn(transform, 3);\n\n const updated =\n !basis.equals(this.basis.value) || !offset.equals(this.offset.value);\n if (updated) {\n this.basis.value.copy(basis);\n this.offset.value.copy(offset);\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\n// SplatGenerator is an Object3D that can be placed anywhere in the scene\n// to generate Gsplats into the world for SparkRenderer. All Gsplats from\n// SplatGenerators across the scene will be accumulated into a single\n// SplatAccumulator, which are sorted and rendered together.\n//\n// Each SplatGenerator has two main properties:\n// - numSplats: the number of Gsplats to generate\n// - generator: a GsplatGenerator dyno program that maps a splat index\n// to a Gsplat's properties\n// Each of these properties can be changed at anytime, however changing\n// numSplats means we no longer have a correspondence between Gsplats\n// in successive frames, meaning we can't reuse the previous Gsplat sort\n// order. Similarly, changing the generator requires re-generating the\n// shader program, which will trigger a GPU shader compilation the first\n// time (possibly a perceptible \"hickup\" in the framerate) but is cached\n// subsequence times if the generator is the same as one that was used previously.\n//\n// A SplatGenerator also has a custom frameUpdate function that is called\n// on each execution, allowing you to update uniforms or other parameters that\n// affect the generation. If the Gsplats are changed, you must call\n// updateVersion() (alternatively, set needsUpdate to true) to trigger a\n// re-generation of the Gsplats for this SplatGenerator.\n\nexport interface FrameUpdateContext {\n renderer: THREE.WebGLRenderer;\n object: SplatGenerator;\n time: number;\n deltaTime: number;\n viewToWorld: THREE.Matrix4;\n camera?: THREE.Camera;\n renderSize?: THREE.Vector2;\n globalEdits: SplatEdit[];\n lodIndices?: { numSplats: number; texture: THREE.DataTexture };\n}\n\nexport class SplatGenerator extends THREE.Object3D {\n numSplats: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n generatorError?: unknown;\n covGeneratorError?: unknown;\n frameUpdate?: (context: FrameUpdateContext) => void;\n version: number;\n mappingVersion: number;\n\n constructor({\n numSplats,\n generator,\n covGenerator,\n construct,\n update,\n }: {\n numSplats?: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n construct?: (object: SplatGenerator) => {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n numSplats?: number;\n frameUpdate?: (context: FrameUpdateContext) => void;\n };\n update?: (context: FrameUpdateContext) => void;\n }) {\n super();\n\n this.numSplats = numSplats ?? 0;\n this.generator = generator;\n this.covGenerator = covGenerator;\n this.frameUpdate = update;\n this.version = 0;\n this.mappingVersion = 0;\n\n if (construct) {\n const constructed = construct(this);\n // If we returned something, update our properties\n Object.assign(this, constructed);\n }\n }\n\n updateVersion() {\n this.version += 1;\n }\n\n updateMappingVersion() {\n this.mappingVersion += 1;\n this.version += 1;\n }\n\n set needsUpdate(value: boolean) {\n if (value) {\n this.updateVersion();\n }\n }\n}\n","/* @ts-self-types=\"./spark_rs.d.ts\" */\n\nexport class ChunkDecoder {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ChunkDecoder.prototype);\n obj.__wbg_ptr = ptr;\n ChunkDecoderFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ChunkDecoderFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_chunkdecoder_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n finish() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.chunkdecoder_finish(ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n */\n push(bytes) {\n const ret = wasm.chunkdecoder_push(this.__wbg_ptr, bytes);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n}\nif (Symbol.dispose) ChunkDecoder.prototype[Symbol.dispose] = ChunkDecoder.prototype.free;\n\nexport class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n\nexport class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function bhatt_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, rgba) {\n const ret = wasm.bhatt_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function bhatt_lod_packedsplats(num_splats, packed, extra, lod_base, rgba, encoding) {\n const ret = wasm.bhatt_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {any}\n */\nexport function decode_rad_header(bytes) {\n const ret = wasm.decode_rad_header(bytes);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @returns {ChunkDecoder}\n */\nexport function decode_to_csplatarray(file_type, path_name, encoding) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_csplatarray(ptr0, len0, ptr1, len1, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_extsplats(file_type, path_name, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_extsplats(ptr0, len0, ptr1, len1, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_gsplatarray(file_type, path_name) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_gsplatarray(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Uint32Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_packedsplats(file_type, path_name, encoding, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_packedsplats(ptr0, len0, ptr1, len1, encoding, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n */\nexport function dispose_lod_tree(lod_id) {\n wasm.dispose_lod_tree(lod_id);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null} [extra]\n * @returns {GsplatArray}\n */\nexport function extsplats_to_gsplatarray(num_splats, ext1, ext2, extra) {\n const ret = wasm.extsplats_to_gsplatarray(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n * @param {number} level\n * @returns {object}\n */\nexport function get_lod_tree_level(lod_id, level) {\n const ret = wasm.get_lod_tree_level(lod_id, level);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer() {\n const ret = wasm.get_raycast_buffer();\n return ret;\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer2() {\n const ret = wasm.get_raycast_buffer2();\n return ret;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} lod_tree\n * @returns {object}\n */\nexport function init_lod_tree(num_splats, lod_tree) {\n const ret = wasm.init_lod_tree(num_splats, lod_tree);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} capacity\n * @returns {object}\n */\nexport function new_lod_tree(capacity) {\n const ret = wasm.new_lod_tree(capacity);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} orig_lod_id\n * @returns {object}\n */\nexport function new_shared_lod_tree(orig_lod_id) {\n const ret = wasm.new_shared_lod_tree(orig_lod_id);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {CsplatArray}\n */\nexport function packedsplats_to_csplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_csplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return CsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {GsplatArray}\n */\nexport function packedsplats_to_gsplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_gsplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @returns {Float32Array}\n */\nexport function raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count) {\n const ret = wasm.raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} num_splats\n * @param {Uint32Array} packed_splats\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @returns {boolean}\n */\nexport function simd_enabled() {\n const ret = wasm.simd_enabled();\n return ret !== 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint16Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function tiny_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, merge_filter, rgba) {\n const ret = wasm.tiny_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function tiny_lod_packedsplats(num_splats, packed, extra, lod_base, merge_filter, rgba, encoding) {\n const ret = wasm.tiny_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} page_bases\n * @param {Uint32Array} chunk_bases\n * @param {Uint32Array} counts\n * @param {Array} lod_trees\n * @returns {object}\n */\nexport function update_lod_trees(lod_ids, page_bases, chunk_bases, counts, lod_trees) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(page_bases, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_bases, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(counts, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.update_lod_trees(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, lod_trees);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\nexport function wasm_start() {\n wasm.wasm_start();\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments); },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_fd4646b401926788: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_26bffbe236bf73f9: function(arg0) {\n const ret = new Float32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) {\n arg0.set(getArrayF32FromWasm0(arg1, arg2));\n },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(F32)) -> NamedExternref(\"Float32Array\")`.\n const ret = getArrayF32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000003: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U32)) -> NamedExternref(\"Uint32Array\")`.\n const ret = getArrayU32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000004: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000005: function(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./spark_rs_bg.js\": import0,\n };\n}\n\nconst ChunkDecoderFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\nconst CsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\nconst GsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayF32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\nfunction getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint16ArrayMemory0 = null;\nfunction getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayF32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getFloat32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","function b64ToUint6(nChr) {\n return nChr > 64 && nChr < 91\n ? nChr - 65\n : nChr > 96 && nChr < 123\n ? nChr - 71\n : nChr > 47 && nChr < 58\n ? nChr + 4\n : nChr === 43\n ? 62\n : nChr === 47\n ? 63\n : 0\n}\n\nfunction base64ToUint8(sBase64, nBlocksSize) {\n const sB64Enc = sBase64.replace(/[^A-Za-z0-9+/]/g, \"\")\n const nInLen = sB64Enc.length\n const nOutLen = nBlocksSize\n ? Math.ceil(((nInLen * 3 + 1) >> 2) / nBlocksSize) * nBlocksSize\n : (nInLen * 3 + 1) >> 2\n const taBytes = new Uint8Array(nOutLen)\n\n let nMod3\n let nMod4\n let nUint24 = 0\n let nOutIdx = 0\n for (let nInIdx = 0; nInIdx < nInLen; nInIdx++) {\n nMod4 = nInIdx & 3\n nUint24 |= b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << (6 * (3 - nMod4))\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\n nMod3 = 0\n while (nMod3 < 3 && nOutIdx < nOutLen) {\n taBytes[nOutIdx] = (nUint24 >>> ((16 >>> nMod3) & 24)) & 255\n nMod3++\n nOutIdx++\n }\n nUint24 = 0\n }\n }\n\n return taBytes\n}\nfunction toUint8(b64) {\n if (typeof Uint8Array.fromBase64 === \"function\") return Uint8Array.fromBase64(b64)\n let bin = atob(b64)\n let len = bin.length\n let bytes = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n bytes[i] = bin.charCodeAt(i)\n }\n return bytes\n}\n\nconst decode64 = typeof atob === \"function\" ? toUint8 : base64ToUint8\n\nexport default decode64\n","import init_wasm from \"spark-rs\";\nimport WASM from \"spark-rs/spark_rs_bg.wasm?arraybuffer&base64\";\n\nexport const WASM_MODULE = WebAssembly.compile(WASM);\n\n// Flag indicating if the spark-rs project has been initialized\nlet initialized = false;\n\n/**\n * Promise for module instantiation, ensuring calls to\n * imports from the spark-rs project can be used.\n */\nexport const initialization = init_wasm({ module_or_path: WASM_MODULE }).then(\n (_) => {\n initialized = true;\n },\n);\n\n/**\n * Indicates if the wasm module instantiation has completed or not.\n */\nexport function isInitialized() {\n return initialized;\n}\n","import { getTransferable } from \"./utils\";\nimport { WASM_MODULE } from \"./wasm\";\nimport BundledWorker from \"./worker?worker&inline\";\n\ntype PromiseRecord = {\n resolve: (value: unknown) => void;\n reject: (reason?: unknown) => void;\n onStatus?: (data: unknown) => void;\n};\n\nexport class SplatWorker {\n worker: Worker;\n queue: (() => void)[] | null = null;\n messages: Record = {};\n static currentId = 0;\n\n constructor() {\n this.worker = new BundledWorker();\n this.worker.onmessage = (event) => this.onMessage(event);\n WASM_MODULE.then((module) => {\n this.worker.postMessage({ name: \"init-wasm\", module });\n });\n }\n\n onMessage(event: MessageEvent) {\n const { id, result, error, status } = event.data;\n const promise = this.messages[id];\n if (promise) {\n if (error !== undefined) {\n delete this.messages[id];\n promise.reject(error);\n } else if (status !== undefined) {\n promise.onStatus?.(status);\n } else {\n delete this.messages[id];\n promise.resolve(result);\n }\n }\n }\n\n tryExclusive(callback: (worker: SplatWorker) => Promise) {\n return this.queue == null ? this.exclusive(callback) : null;\n }\n\n async exclusive(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const queue = this.queue;\n if (queue != null) {\n await new Promise((resolve) => {\n queue.push(() => resolve(undefined));\n });\n } else {\n this.queue = [];\n }\n\n try {\n return await callback(this);\n } finally {\n if (this.queue != null) {\n if (this.queue.length === 0) {\n this.queue = null;\n } else {\n const waiter = this.queue.shift() as () => void;\n waiter();\n }\n }\n }\n }\n\n async call(\n name: string,\n args: unknown,\n options: { onStatus?: (data: unknown) => void } = {},\n ): Promise {\n const id = ++SplatWorker.currentId;\n const promise = new Promise((resolve, reject) => {\n this.messages[id] = { resolve, reject, onStatus: options.onStatus };\n });\n this.worker.postMessage(\n { id, name, args },\n { transfer: getTransferable(args) },\n );\n return await promise;\n }\n\n dispose() {\n this.worker.terminate();\n\n const messages = Object.values(this.messages);\n this.messages = {};\n for (const message of messages) {\n message.reject(new Error(\"Worker terminate\"));\n }\n }\n}\n\nexport class NewSplatWorkerPool {\n maxWorkers;\n numWorkers = 0;\n freelist: SplatWorker[] = [];\n queue: ((worker: SplatWorker) => void)[] = [];\n\n constructor(maxWorkers = 4) {\n this.maxWorkers = maxWorkers;\n }\n\n async withWorker(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const worker = await this.allocWorker();\n try {\n return await callback(worker);\n } finally {\n this.freeWorker(worker);\n }\n }\n\n async allocWorker(): Promise {\n const worker = this.freelist.pop();\n if (worker) {\n return worker;\n }\n\n if (this.numWorkers < this.maxWorkers) {\n const worker = new SplatWorker();\n this.numWorkers += 1;\n return worker;\n }\n\n return new Promise((resolve) => {\n this.queue.push(resolve);\n });\n }\n\n freeWorker(worker: SplatWorker) {\n if (this.numWorkers > this.maxWorkers) {\n // Worker no longer needed\n this.numWorkers -= 1;\n return;\n }\n\n const waiter = this.queue.shift();\n if (waiter) {\n waiter(worker);\n return;\n }\n\n this.freelist.push(worker);\n }\n}\n\nexport const workerPool = new NewSplatWorkerPool();\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport type { RgbaArray } from \"./RgbaArray\";\nimport type { GsplatGenerator } from \"./SplatGenerator\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n DynoProgram,\n DynoProgramTemplate,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n add,\n dynoBlock,\n normalize,\n outputPackedSplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport {\n type Gsplat,\n TPackedSplats,\n combineGsplat,\n definePackedSplats,\n readPackedSplat,\n splatTexCoord,\n splitGsplat,\n} from \"./dyno/splats\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, setPackedSplat, unpackSplat } from \"./utils\";\n\n// Initialize a PackedSplats collection from source data via\n// url, fileBytes, or packedArray. Creates an empty array if none are set,\n// and splat data can be constructed using pushSplat()/setSplat(). The maximum\n// splat size allocation will grow automatically, starting from maxSplats.\nexport type PackedSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided packed data array, where each 4 consecutive uint32 values\n // encode one \"packed\" Gsplat. (default: undefined)\n packedArray?: Uint32Array;\n // Override number of splats in packed array to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the PackedSplats\n lodSplats?: PackedSplats;\n};\n\n// A PackedSplats is a collection of Gaussian splats, packed into a format that\n// takes exactly 16 bytes per Gsplat to maximize memory and cache efficiency.\n// The center xyz coordinates are encoded as float16 (3 x 2 bytes), scale xyz\n// as 3 x uint8 that encode a log scale from e^-12 to e^9, rgba as 4 x uint8,\n// and quaternion encoded via axis+angle using 2 x uint8 for octahedral encoding\n// of the axis direction and a uint8 to encode rotation amount from 0..Pi.\n\nexport class PackedSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n packedArray: Uint32Array | null = null;\n extra: Record;\n maxSh = 3;\n splatEncoding?: SplatEncoding;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: PackedSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n // Either target or source will be non-null, depending on whether the PackedSplats\n // is being used as a data source or generated to.\n target: THREE.WebGLArrayRenderTarget | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source packedArray is updated to have it upload to GPU\n needsUpdate = true;\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoRgbMinMaxLnScaleMinMax: DynoUniform<\"vec4\", \"rgbMinMaxLnScaleMinMax\">;\n dynoNumSh: DynoInt<\"numSh\">;\n dynoShMax: DynoVec3;\n\n constructor(options: PackedSplatsOptions = {}) {\n this.extra = {};\n this.dyno = new DynoPackedSplats({ packedSplats: this });\n this.dynoRgbMinMaxLnScaleMinMax = new DynoVec4({\n key: \"rgbMinMaxLnScaleMinMax\",\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n update: (value) => {\n value.set(\n this.splatEncoding?.rgbMin ?? 0.0,\n this.splatEncoding?.rgbMax ?? 1.0,\n this.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n return value;\n },\n });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n this.dynoShMax = new DynoVec3({\n key: \"shMax\",\n value: new THREE.Vector3(),\n update: (value) => {\n value.set(\n this.splatEncoding?.sh1Max ?? 1.0,\n this.splatEncoding?.sh2Max ?? 1.0,\n this.splatEncoding?.sh3Max ?? 1.0,\n );\n return value;\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: PackedSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.splatEncoding = options.splatEncoding;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: PackedSplatsOptions) {\n this.extra = options.extra ?? {};\n this.splatEncoding = options.splatEncoding ?? this.splatEncoding;\n this.lodSplats = options.lodSplats;\n\n if (options.packedArray) {\n this.packedArray = options.packedArray;\n this.numSplats = options.numSplats ?? this.packedArray.length / 4;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats = Math.floor(this.packedArray.length / 4);\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n }\n }\n\n async asyncInitialize(options: PackedSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n packedSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target.texture.source.data = null;\n this.target = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source.source.data = null;\n this.source = null;\n }\n\n this.packedArray = null;\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"PackedSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3 ? 2 : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readPackedSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3Texture } = this.ensureShTextures();\n let { rgb } = evaluatePackedSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax: this.dynoShMax,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 2,\n );\n if (sh1.length < maxSplats * 2) {\n const newSh1 = new Uint32Array(maxSplats * 2);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n\n const texture = new THREE.DataArrayTexture(sh1, width, height, depth);\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = new THREE.DataArrayTexture(sh2, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3Texture = this.extra.sh3Texture as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3Texture) {\n let sh3 = this.extra.sh3 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3.length / 4,\n );\n if (sh3.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3);\n this.extra.sh3 = newSh3;\n sh3 = newSh3;\n }\n\n const texture = new THREE.DataArrayTexture(sh3, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh3Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3Texture = sh3Texture;\n }\n\n return { sh1Texture, sh2Texture, sh3Texture };\n }\n\n // Ensures that this.packedArray can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): Uint32Array {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.packedArray ? 0 : this.packedArray.length / 4;\n\n if (!this.packedArray || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(this.maxSplats * 4);\n if (this.packedArray) {\n // Copy over existing data\n newArray.set(this.packedArray);\n }\n this.packedArray = newArray;\n }\n return this.packedArray;\n }\n\n // Ensure the extra array for the given level is large enough to hold numSplats\n ensureSplatsSh(level: number, numSplats: number): Uint32Array {\n let wordsPerSplat: number;\n let key: string;\n if (level === 0) {\n return this.ensureSplats(numSplats);\n }\n if (level === 1) {\n // 3 x 3 uint7 = 63 bits = 2 uint32\n wordsPerSplat = 2;\n key = \"sh1\";\n } else if (level === 2) {\n // 5 x 3 uint8 = 120 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh2\";\n } else if (level === 3) {\n // 7 x 3 uint6 = 126 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh3\";\n } else {\n throw new Error(`Invalid level: ${level}`);\n }\n\n // Figure out our current and desired maxSplats\n let maxSplats: number = !this.extra[key]\n ? 0\n : (this.extra[key] as Uint32Array).length / wordsPerSplat;\n const targetSize =\n numSplats <= maxSplats ? maxSplats : Math.max(numSplats, 2 * maxSplats);\n\n if (!this.extra[key] || targetSize > maxSplats) {\n // Reallocate the array\n maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(maxSplats * wordsPerSplat);\n if (this.extra[key]) {\n // Copy over existing data\n newArray.set(this.extra[key] as Uint32Array);\n }\n this.extra[key] = newArray;\n }\n return this.extra[key] as Uint32Array;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (!this.packedArray || index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return unpackSplat(this.packedArray, index, this.splatEncoding);\n }\n\n // Set all PackedSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(index + 1);\n setPackedSplat(\n packedSplats,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(this.numSplats + 1);\n setPackedSplat(\n packedSplats,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.packedArray || !this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = unpackSplat(this.packedArray, i, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Ensures our PackedSplats.target render target has enough space to generate\n // maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate(maxSplats: number): boolean {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n if (this.target) {\n this.target.dispose();\n }\n\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAIntegerFormat;\n this.target.texture.type = THREE.UnsignedIntType;\n this.target.texture.internalFormat = \"RGBA32UI\";\n this.target.scissorTest = true;\n return true;\n }\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Returns a THREE.DataArrayTexture representing the PackedSplats content as\n // a Uint32x4 data array texture (2048 x 2048 x depth in size)\n getTexture(): THREE.DataArrayTexture {\n if (this.target) {\n // Return the render target's texture\n return this.target.texture;\n }\n if (this.source || this.packedArray) {\n // Update source texture if needed and return\n const source = this.maybeUpdateSource();\n return source;\n }\n\n return PackedSplats.getEmptyArray;\n }\n\n // Check if source texture needs to be created/updated\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.packedArray) {\n throw new Error(\"No packed splats\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.source = new THREE.DataArrayTexture(\n this.packedArray as Uint32Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAIntegerFormat;\n this.source.type = THREE.UnsignedIntType;\n this.source.internalFormat = \"RGBA32UI\";\n this.source.needsUpdate = true;\n } else if (this.packedArray.buffer !== this.source.image.data.buffer) {\n // The source texture is the right size, update the data\n this.source.image.data = new Uint8Array(this.packedArray.buffer);\n }\n // Indicate to Three.js that the source texture needs to be uploaded to the GPU\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n static getEmptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(generator: GsplatGenerator): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = PackedSplats.generatorProgram.get(generator);\n if (!program) {\n // A Gsplat needs to be turned into a packed uvec4 for the dyno graph\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n generator.inputs.index = index;\n const gsplat = generator.outputs.gsplat;\n const output = outputPackedSplat(\n gsplat,\n this.dynoRgbMinMaxLnScaleMinMax,\n );\n roots.push(output);\n return undefined;\n },\n );\n if (!PackedSplats.programTemplate) {\n PackedSplats.programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { output: \"target\" },\n template: PackedSplats.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n PackedSplats.generatorProgram.set(generator, program);\n }\n\n // Prepare and update our material we'll use to render the Gsplats\n const material = program.prepareMaterial();\n PackedSplats.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Executes a dyno program specified by generator which is any DynoBlock that\n // maps { index: \"int\" } to { gsplat: Gsplat }. This is called in\n // SparkRenderer.updateInternal() to re-generate Gsplats in the scene for\n // SplatGenerator instances whose version is newer than what was generated\n // for it last time.\n generate({\n generator,\n base,\n count,\n renderer,\n }: {\n generator: GsplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }): { nextBase: number } {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureSplats\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(generator);\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n PackedSplats.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const packedArray = (this.packedArray as Uint32Array).slice();\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodPackedSplats\" : \"tinyLodPackedSplats\",\n {\n numSplats: this.numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding: this.splatEncoding ?? DEFAULT_SPLAT_ENCODING,\n },\n )) as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n };\n });\n\n const lodSplats = new PackedSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new PackedSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for GsplatGenerator programs\n static generatorProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\n// You can use a PackedSplats as a dyno block using the function\n// dyno.readPackedSplats(packedSplats.dyno, dynoIndex) where\n// dynoIndex is of type DynoVal<\"int\">. If you need to be able to change\n// the input PackedSplats dynamically, however, you should create a\n// DynoPackedSplats, whose property packedSplats you can change to any\n// PackedSplats and that will be used in the dyno shader program.\n\nexport const dynoPackedSplats = (packedSplats?: PackedSplats) =>\n new DynoPackedSplats({ packedSplats });\n\nexport class DynoPackedSplats extends DynoUniform<\n typeof TPackedSplats,\n \"packedSplats\",\n {\n textureArray: THREE.DataArrayTexture;\n numSplats: number;\n rgbMinMaxLnScaleMinMax: THREE.Vector4;\n lodOpacity: boolean;\n }\n> {\n packedSplats?: PackedSplats;\n\n constructor({ packedSplats }: { packedSplats?: PackedSplats } = {}) {\n super({\n key: \"packedSplats\",\n type: TPackedSplats,\n globals: () => [definePackedSplats],\n value: {\n textureArray: PackedSplats.getEmptyArray,\n numSplats: 0,\n rgbMinMaxLnScaleMinMax: new THREE.Vector4(\n 0,\n 1,\n LN_SCALE_MIN,\n LN_SCALE_MAX,\n ),\n lodOpacity: false,\n },\n update: (value) => {\n value.textureArray =\n this.packedSplats?.getTexture() ?? PackedSplats.getEmptyArray;\n value.numSplats = this.packedSplats?.numSplats ?? 0;\n value.rgbMinMaxLnScaleMinMax.set(\n this.packedSplats?.splatEncoding?.rgbMin ?? 0,\n this.packedSplats?.splatEncoding?.rgbMax ?? 1,\n this.packedSplats?.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.packedSplats?.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n value.lodOpacity =\n this.packedSplats?.splatEncoding?.lodOpacity ?? false;\n return value;\n },\n });\n this.packedSplats = packedSplats;\n }\n}\n\nexport const defineEvalPackedSH1 = unindent(`\n vec3 evaluatePackedSH1(uvec2 packedData, vec3 viewDir, float sh1Max) {\n // Extract sint7 values packed into 2 x uint32\n vec3 sh1_0 = vec3(ivec3(\n int(packedData.x << 25u) >> 25,\n int(packedData.x << 18u) >> 25,\n int(packedData.x << 11u) >> 25\n ));\n vec3 sh1_1 = vec3(ivec3(\n int(packedData.x << 4u) >> 25,\n int((packedData.x >> 3u) | (packedData.y << 29u)) >> 25,\n int(packedData.y << 22u) >> 25\n ));\n vec3 sh1_2 = vec3(ivec3(\n int(packedData.y << 15u) >> 25,\n int(packedData.y << 8u) >> 25,\n int(packedData.y << 1u) >> 25\n ));\n\n vec3 rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n return rgb * (sh1Max / 63.0);\n }\n`);\n\nexport const defineEvalPackedSH2 = unindent(`\n vec3 evaluatePackedSH2(uvec4 packedData, vec3 viewDir, float sh2Max) {\n // Extract sint8 values packed into 4 x uint32\n vec3 sh2_0 = vec3(ivec3(\n int(packedData.x << 24u) >> 24,\n int(packedData.x << 16u) >> 24,\n int(packedData.x << 8u) >> 24\n ));\n vec3 sh2_1 = vec3(ivec3(\n int(packedData.x) >> 24,\n int(packedData.y << 24u) >> 24,\n int(packedData.y << 16u) >> 24\n ));\n vec3 sh2_2 = vec3(ivec3(\n int(packedData.y << 8u) >> 24,\n int(packedData.y) >> 24,\n int(packedData.z << 24u) >> 24\n ));\n vec3 sh2_3 = vec3(ivec3(\n int(packedData.z << 16u) >> 24,\n int(packedData.z << 8u) >> 24,\n int(packedData.z) >> 24\n ));\n vec3 sh2_4 = vec3(ivec3(\n int(packedData.w << 24u) >> 24,\n int(packedData.w << 16u) >> 24,\n int(packedData.w << 8u) >> 24\n ));\n\n vec3 rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n return rgb * (sh2Max / 127.0);\n }\n`);\n\nexport const defineEvalPackedSH3 = unindent(`\n vec3 evaluatePackedSH3(uvec4 packedData, vec3 viewDir, float sh3Max) {\n // Extract sint6 values packed into 4 x uint32\n vec3 sh3_0 = vec3(ivec3(\n int(packedData.x << 26u) >> 26,\n int(packedData.x << 20u) >> 26,\n int(packedData.x << 14u) >> 26\n ));\n vec3 sh3_1 = vec3(ivec3(\n int(packedData.x << 8u) >> 26,\n int(packedData.x << 2u) >> 26,\n int((packedData.x >> 4u) | (packedData.y << 28u)) >> 26\n ));\n vec3 sh3_2 = vec3(ivec3(\n int(packedData.y << 22u) >> 26,\n int(packedData.y << 16u) >> 26,\n int(packedData.y << 10u) >> 26\n ));\n vec3 sh3_3 = vec3(ivec3(\n int(packedData.y << 4u) >> 26,\n int((packedData.y >> 2u) | (packedData.z << 30u)) >> 26,\n int(packedData.z << 24u) >> 26\n ));\n vec3 sh3_4 = vec3(ivec3(\n int(packedData.z << 18u) >> 26,\n int(packedData.z << 12u) >> 26,\n int(packedData.z << 6u) >> 26\n ));\n vec3 sh3_5 = vec3(ivec3(\n int(packedData.z) >> 26,\n int(packedData.w << 26u) >> 26,\n int(packedData.w << 20u) >> 26\n ));\n vec3 sh3_6 = vec3(ivec3(\n int(packedData.w << 14u) >> 26,\n int(packedData.w << 8u) >> 26,\n int(packedData.w << 2u) >> 26\n ));\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n vec3 rgb = sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n return rgb * (sh3Max / 31.0);\n }\n`);\n\nexport function evaluatePackedSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n shMax: DynoVal<\"vec3\">;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3Texture: \"usampler2DArray\",\n shMax: \"vec3\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n },\n globals: () => [\n defineEvalPackedSH1,\n defineEvalPackedSH2,\n defineEvalPackedSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0).rg, ${inputs.viewDir}, ${inputs.shMax}.x);\n rgb += sh1Rgb;\n `),\n );\n if (inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 2) {\n vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.y);\n rgb += sh2Rgb;\n `),\n );\n if (inputs.sh3Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${inputs.sh3Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.z);\n rgb += sh3Rgb;\n }\n `),\n );\n }\n lines.push(\"}\");\n }\n lines.push(\"}\");\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n","import { unzipSync } from \"fflate\";\nimport { FileLoader, Loader, type LoadingManager } from \"three\";\nimport { ExtSplats, type ExtSplatsOptions } from \"./ExtSplats\";\nimport { PackedSplats, type PackedSplatsOptions } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { type SplatEncoding, SplatFileType } from \"./defines\";\nimport { PlyReader } from \"./ply\";\nimport { decompressPartialGzip, getTextureSize } from \"./utils\";\n\n// SplatLoader implements the THREE.Loader interface and supports loading a variety\n// of different Gsplat file formats. Formats .PLY and .SPZ can be auto-detected\n// from the file contents, while .SPLAT and .KSPLAT require either having the\n// appropriate file extension as part of the path, or it can be explicitly set\n// in the loader using the fileType property.\n\nexport class SplatLoader extends Loader {\n fileLoader: FileLoader;\n\n constructor(manager?: LoadingManager) {\n super(manager);\n this.fileLoader = new FileLoader(manager);\n }\n\n load(\n url: string,\n onLoad?: (decoded: PackedSplats | ExtSplats) => void,\n onProgress?: (event: ProgressEvent) => void,\n onError?: (error: unknown) => void,\n ) {\n return this.loadInternal({\n url,\n onLoad,\n onProgress,\n onError,\n });\n }\n\n async loadAsync(\n url: string,\n onProgress?: (event: ProgressEvent) => void,\n ): Promise {\n return new Promise((resolve, reject) => {\n this.load(\n url,\n (decoded) => {\n resolve(decoded);\n },\n onProgress,\n reject,\n );\n });\n }\n\n parse(packedSplats: PackedSplats): SplatMesh {\n return new SplatMesh({ packedSplats });\n }\n\n loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad,\n onProgress,\n onError,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onLoad?: (decoded: PackedSplats | ExtSplats) => void;\n onProgress?: (event: ProgressEvent) => void;\n onError?: (error: unknown) => void;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n if (fileBytes instanceof ArrayBuffer) {\n fileBytes = new Uint8Array(fileBytes);\n }\n const resolvedURL = fileBytes\n ? undefined\n : this.manager.resolveURL((this.path ?? \"\") + (url ?? \"\"));\n\n let readStream = stream?.getReader();\n\n this.manager.itemStart(resolvedURL ?? \"\");\n // let calledOnLoad = false;\n\n workerPool\n .withWorker(async (worker) => {\n // If LoD is set and not falsey\n const splatsLod = packedSplats?.lod ?? extSplats?.lod;\n if (splatsLod) {\n lod = splatsLod;\n }\n const splatsNonLod = packedSplats?.nonLod ?? extSplats?.nonLod;\n if (splatsNonLod !== undefined) {\n nonLod = splatsNonLod;\n }\n\n // let init: {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // } | null = null;\n // let initExt: {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // } | null = null;\n\n const onStatus = async (data: unknown) => {\n const { loaded, total } = data as { loaded: number; total: number };\n if (loaded !== undefined && onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n\n if ((data as { nextChunk?: boolean }).nextChunk) {\n let chunk: Uint8Array;\n if (!readStream) {\n chunk = new Uint8Array(0);\n } else {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n readStream = undefined;\n chunk = new Uint8Array(0);\n } else {\n chunk = value;\n }\n }\n worker.call(\"nextChunk\", { chunk });\n }\n\n // if ((data as { orig?: unknown }).orig) {\n // if (extSplats) {\n // initExt = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // };\n // extSplats.initialize({\n // numSplats: initExt?.numSplats,\n // extArrays: [initExt?.ext0, initExt?.ext1],\n // extra: initExt?.extra,\n // });\n // calledOnLoad = true;\n // onLoad?.(extSplats);\n // } else if (packedSplats) {\n // init = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // };\n // packedSplats.initialize({\n // numSplats: init?.numSplats,\n // packedArray: init?.packedArray,\n // extra: init?.extra,\n // splatEncoding: init?.splatEncoding,\n // });\n // calledOnLoad = true;\n // onLoad?.(packedSplats);\n // } else {\n // console.warn(\"No splats to initialize\");\n // }\n // }\n };\n\n const basedUrl = resolvedURL\n ? new URL(resolvedURL, window.location.href).toString()\n : undefined;\n const decoded = (await worker.call(\n extSplats ? \"loadExtSplats\" : \"loadPackedSplats\",\n {\n url: basedUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n fileBytes: fileBytes?.slice(),\n fileType,\n pathName: resolvedURL || fileName,\n chunked: stream !== undefined,\n chunkedLength: streamLength,\n encoding: packedSplats?.splatEncoding,\n lod,\n lodBase,\n nonLod,\n lodAbove,\n },\n { onStatus },\n )) as {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n lodSplats?:\n | {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n }\n | PackedSplats\n | ExtSplats;\n };\n\n if (decoded.lodSplats) {\n if (extSplats) {\n decoded.lodSplats = new ExtSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n }),\n });\n } else {\n decoded.lodSplats = new PackedSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n }),\n maxSplats: packedSplats?.maxSplats,\n });\n }\n }\n\n if (extSplats) {\n const initExtSplats = {\n // ...(initExt ?? {}),\n ...decoded,\n };\n extSplats.initialize(initExtSplats as ExtSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(extSplats);\n // }\n } else {\n const initSplats = {\n // ...(init ?? {}),\n ...decoded,\n };\n if (packedSplats) {\n packedSplats.initialize(initSplats as PackedSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(packedSplats);\n // }\n } else {\n // if (!calledOnLoad) {\n onLoad?.(new PackedSplats(initSplats as PackedSplatsOptions));\n // }\n }\n }\n })\n .catch((error) => {\n this.manager.itemError(resolvedURL ?? \"\");\n onError?.(error);\n })\n .finally(() => {\n this.manager.itemEnd(resolvedURL ?? \"\");\n });\n }\n\n async loadInternalAsync({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onProgress?: (event: ProgressEvent) => void;\n lod?: boolean;\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n return new Promise((resolve, reject) => {\n this.loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad: resolve,\n onProgress,\n onError: reject,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n });\n });\n }\n}\n\nasync function fetchWithProgress(\n request: Request,\n onProgress?: (event: ProgressEvent) => void,\n) {\n const response = await fetch(request);\n if (!response.ok) {\n throw new Error(\n `${response.status} \"${response.statusText}\" fetching URL: ${request.url}`,\n );\n }\n if (!response.body) {\n throw new Error(`Response body is null for URL: ${request.url}`);\n }\n\n const reader = response.body.getReader();\n let loaded = 0;\n const chunks: Uint8Array[] = [];\n try {\n const contentLength = Number.parseInt(\n response.headers.get(\"Content-Length\") || \"0\",\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n loaded += value.length;\n\n if (onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n }\n } catch (err) {\n try {\n const reason = err instanceof Error ? err.message : \"Unknown error\";\n await reader.cancel(reason);\n } catch {}\n throw err;\n }\n\n // Combine chunks into a single buffer\n const bytes = new Uint8Array(loaded);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.length;\n }\n return bytes.buffer;\n}\n\nexport function getSplatFileType(\n fileBytes: Uint8Array,\n): SplatFileType | undefined {\n const view = new DataView(fileBytes.buffer);\n const magic = view.getUint32(0, true);\n if ((magic & 0x00ffffff) === 0x00796c70) {\n return SplatFileType.PLY;\n }\n if ((magic & 0x00ffffff) === 0x00088b1f) {\n // Gzipped file, unpack beginning to check magic number\n const header = decompressPartialGzip(fileBytes, 4);\n const gView = new DataView(header.buffer);\n if (gView.getUint32(0, true) === 0x5053474e) {\n return SplatFileType.SPZ;\n }\n // Unknown Gzipped file type\n return undefined;\n }\n if (magic === 0x04034b50) {\n // PKZip file\n if (tryPcSogsZip(fileBytes)) {\n return SplatFileType.PCSOGSZIP;\n }\n // Unknown PKZip file type\n return undefined;\n }\n if (magic === 0x30444152) {\n return SplatFileType.RAD;\n }\n // Unknown file type\n return undefined;\n}\n\n// Returns the lowercased file extension from a path or URL\nexport function getFileExtension(pathOrUrl: string): string {\n const noTrailing = pathOrUrl.split(/[?#]/, 1)[0];\n const lastSlash = Math.max(\n noTrailing.lastIndexOf(\"/\"),\n noTrailing.lastIndexOf(\"\\\\\"),\n );\n const filename = noTrailing.slice(lastSlash + 1);\n const lastDot = filename.lastIndexOf(\".\");\n if (lastDot <= 0 || lastDot === filename.length - 1) {\n return \"\"; // No extension\n }\n return filename.slice(lastDot + 1).toLowerCase();\n}\n\nexport function getSplatFileTypeFromPath(\n pathOrUrl: string,\n): SplatFileType | undefined {\n const extension = getFileExtension(pathOrUrl);\n if (extension === \"ply\") {\n return SplatFileType.PLY;\n }\n if (extension === \"spz\") {\n return SplatFileType.SPZ;\n }\n if (extension === \"splat\") {\n return SplatFileType.SPLAT;\n }\n if (extension === \"ksplat\") {\n return SplatFileType.KSPLAT;\n }\n if (extension === \"sog\") {\n return SplatFileType.PCSOGSZIP;\n }\n if (extension === \"rad\") {\n return SplatFileType.RAD;\n }\n return undefined;\n}\n\nexport type PcSogsJson = {\n means: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n quats: { shape: number[]; dtype: string; encoding?: string; files: string[] };\n sh0: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n shN?: {\n shape: number[];\n dtype: string;\n mins: number;\n maxs: number;\n quantization: number;\n files: string[];\n };\n};\n\nexport type PcSogsV2Json = {\n version: 2;\n count: number;\n antialias?: boolean;\n means: {\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n codebook: number[];\n files: string[];\n };\n quats: { files: string[] };\n sh0: {\n codebook: number[];\n files: string[];\n };\n shN?: {\n count: number;\n bands: number;\n codebook: number[];\n files: string[];\n };\n};\n\nexport function isPcSogs(input: ArrayBuffer | Uint8Array | string): boolean {\n // Returns true if the input seems to be a valid PC SOGS file\n return tryPcSogs(input) !== undefined;\n}\n\nexport function tryPcSogs(\n input: ArrayBuffer | Uint8Array | string,\n): PcSogsJson | PcSogsV2Json | undefined {\n // Try to parse input as SOGS JSON and see if it's valid\n try {\n let text: string;\n if (typeof input === \"string\") {\n text = input;\n } else {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n if (fileBytes.length > 65536) {\n // Should be only a few KB, definitely not a SOGS JSON file\n return undefined;\n }\n text = new TextDecoder().decode(fileBytes);\n }\n\n const json = JSON.parse(text);\n if (!json || typeof json !== \"object\" || Array.isArray(json)) {\n return undefined;\n }\n const isVersion2 = json.version === 2;\n\n for (const key of [\"means\", \"scales\", \"quats\", \"sh0\"]) {\n if (\n !json[key] ||\n typeof json[key] !== \"object\" ||\n Array.isArray(json[key])\n ) {\n return undefined;\n }\n if (isVersion2) {\n // Expect files\n if (!json[key].files) {\n return undefined;\n }\n\n // Scales and sh0 should have codebooks\n if ((key === \"scales\" || key === \"sh0\") && !json[key].codebook) {\n return undefined;\n }\n // Means should have mins and maxs defined\n if (key === \"means\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n } else {\n // Expect shape and files\n if (!json[key].shape || !json[key].files) {\n return undefined;\n }\n // Besides 'quats' all other properties have mins and maxs\n if (key !== \"quats\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n }\n }\n // This is probably a PC SOGS file\n return json as PcSogsJson | PcSogsV2Json;\n } catch {\n return undefined;\n }\n}\n\nexport function tryPcSogsZip(\n input: ArrayBuffer | Uint8Array,\n): { name: string; json: PcSogsJson | PcSogsV2Json } | undefined {\n try {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let metaFilename: string | null = null;\n\n const unzipped = unzipSync(fileBytes, {\n filter: ({ name }) => {\n const filename = name.split(/[\\\\/]/).pop() as string;\n if (filename === \"meta.json\") {\n metaFilename = name;\n return true;\n }\n return false;\n },\n });\n if (!metaFilename) {\n return undefined;\n }\n\n // Check for PC SOGS V1 and V2 (aka SOG)\n const json = tryPcSogs(unzipped[metaFilename]);\n if (!json) {\n return undefined;\n }\n return { name: metaFilename, json };\n } catch {\n return undefined;\n }\n}\n\nexport class SplatData {\n numSplats: number;\n maxSplats: number;\n centers: Float32Array;\n scales: Float32Array;\n quaternions: Float32Array;\n opacities: Float32Array;\n colors: Float32Array;\n sh1?: Float32Array;\n sh2?: Float32Array;\n sh3?: Float32Array;\n\n constructor({ maxSplats = 1 }: { maxSplats?: number } = {}) {\n this.numSplats = 0;\n this.maxSplats = getTextureSize(maxSplats).maxSplats;\n this.centers = new Float32Array(this.maxSplats * 3);\n this.scales = new Float32Array(this.maxSplats * 3);\n this.quaternions = new Float32Array(this.maxSplats * 4);\n this.opacities = new Float32Array(this.maxSplats);\n this.colors = new Float32Array(this.maxSplats * 3);\n }\n\n pushSplat(): number {\n const index = this.numSplats;\n this.ensureIndex(index);\n this.numSplats += 1;\n return index;\n }\n\n unpushSplat(index: number) {\n if (index === this.numSplats - 1) {\n this.numSplats -= 1;\n } else {\n throw new Error(\"Cannot unpush splat from non-last position\");\n }\n }\n\n ensureCapacity(numSplats: number) {\n if (numSplats > this.maxSplats) {\n const targetSplats = Math.max(numSplats, this.maxSplats * 2);\n const newCenters = new Float32Array(targetSplats * 3);\n const newScales = new Float32Array(targetSplats * 3);\n const newQuaternions = new Float32Array(targetSplats * 4);\n const newOpacities = new Float32Array(targetSplats);\n const newColors = new Float32Array(targetSplats * 3);\n newCenters.set(this.centers);\n newScales.set(this.scales);\n newQuaternions.set(this.quaternions);\n newOpacities.set(this.opacities);\n newColors.set(this.colors);\n this.centers = newCenters;\n this.scales = newScales;\n this.quaternions = newQuaternions;\n this.opacities = newOpacities;\n this.colors = newColors;\n\n if (this.sh1) {\n const newSh1 = new Float32Array(targetSplats * 9);\n newSh1.set(this.sh1);\n this.sh1 = newSh1;\n }\n if (this.sh2) {\n const newSh2 = new Float32Array(targetSplats * 15);\n newSh2.set(this.sh2);\n this.sh2 = newSh2;\n }\n if (this.sh3) {\n const newSh3 = new Float32Array(targetSplats * 21);\n newSh3.set(this.sh3);\n this.sh3 = newSh3;\n }\n\n this.maxSplats = targetSplats;\n }\n }\n\n ensureIndex(index: number) {\n this.ensureCapacity(index + 1);\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n this.centers[index * 3] = x;\n this.centers[index * 3 + 1] = y;\n this.centers[index * 3 + 2] = z;\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n this.scales[index * 3] = scaleX;\n this.scales[index * 3 + 1] = scaleY;\n this.scales[index * 3 + 2] = scaleZ;\n }\n\n setQuaternion(index: number, x: number, y: number, z: number, w: number) {\n this.quaternions[index * 4] = x;\n this.quaternions[index * 4 + 1] = y;\n this.quaternions[index * 4 + 2] = z;\n this.quaternions[index * 4 + 3] = w;\n }\n\n setOpacity(index: number, opacity: number) {\n this.opacities[index] = opacity;\n }\n\n setColor(index: number, r: number, g: number, b: number) {\n this.colors[index * 3] = r;\n this.colors[index * 3 + 1] = g;\n this.colors[index * 3 + 2] = b;\n }\n\n setSh1(index: number, sh1: Float32Array) {\n if (!this.sh1) {\n this.sh1 = new Float32Array(this.maxSplats * 9);\n }\n for (let j = 0; j < 9; ++j) {\n this.sh1[index * 9 + j] = sh1[j];\n }\n }\n\n setSh2(index: number, sh2: Float32Array) {\n if (!this.sh2) {\n this.sh2 = new Float32Array(this.maxSplats * 15);\n }\n for (let j = 0; j < 15; ++j) {\n this.sh2[index * 15 + j] = sh2[j];\n }\n }\n\n setSh3(index: number, sh3: Float32Array) {\n if (!this.sh3) {\n this.sh3 = new Float32Array(this.maxSplats * 21);\n }\n for (let j = 0; j < 21; ++j) {\n this.sh3[index * 21 + j] = sh3[j];\n }\n }\n}\n\nexport type FileInput = {\n fileBytes: Uint8Array;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n transform?: { translate?: number[]; quaternion?: number[]; scale?: number };\n};\n\nexport type TranscodeSpzInput = {\n inputs: FileInput[];\n maxSh?: number;\n clipXyz?: { min: number[]; max: number[] };\n fractionalBits?: number;\n opacityThreshold?: number;\n};\n","import * as THREE from \"three\";\nimport type { RgbaArray } from \"./RgbaArray\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { SPLAT_TEX_WIDTH, type SplatFileType } from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n type Gsplat,\n TExtSplats,\n add,\n combineGsplat,\n defineExtSplats,\n normalize,\n readExtSplat,\n splatTexCoord,\n splitGsplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { decodeExtSplat, encodeExtSplat, getTextureSize } from \"./utils\";\n\nexport type ExtSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided pair of uint32 arrays, where blocks of 4 uint32s in each,\n // encode an \"extended packed\" Gsplat. (default: undefined)\n extArrays?: [Uint32Array, Uint32Array];\n // Override number of splats in packed arrays to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: ExtSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the ExtSplats\n lodSplats?: ExtSplats;\n};\n\nexport class ExtSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record = {};\n maxSh = 3;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: ExtSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n textures: [THREE.DataArrayTexture, THREE.DataArrayTexture];\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoNumSh: DynoInt<\"numSh\">;\n\n constructor(options: ExtSplatsOptions = {}) {\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n this.textures = [ExtSplats.emptyTexture, ExtSplats.emptyTexture];\n\n this.extra = {};\n this.dyno = new DynoExtSplats({ extSplats: this });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: ExtSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: ExtSplatsOptions) {\n this.extra = options.extra ?? {};\n this.lodSplats = options.lodSplats;\n\n if (options.extArrays) {\n this.extArrays = options.extArrays;\n this.maxSplats = Math.floor(\n Math.min(this.extArrays[0].length / 4, this.extArrays[1].length / 4),\n );\n this.numSplats = options.numSplats ?? this.maxSplats;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n this.updateTextures();\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n }\n }\n\n async asyncInitialize(options: ExtSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n extSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n this.textures[0].dispose();\n this.textures[0].source.data = null;\n this.textures[0] = ExtSplats.emptyTexture;\n }\n if (this.textures[1] !== ExtSplats.emptyTexture) {\n this.textures[1].dispose();\n this.textures[1].source.data = null;\n this.textures[1] = ExtSplats.emptyTexture;\n }\n\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"ExtSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1\n ? 0\n : !this.extra.sh2\n ? 1\n : !this.extra.sh3a || !this.extra.sh3b\n ? 2\n : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readExtSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB } =\n this.ensureShTextures();\n let { rgb } = evaluateExtSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 4,\n );\n if (sh1.length < maxSplats * 4) {\n const newSh1 = new Uint32Array(maxSplats * 4);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n const texture = newUint32ArrayTexture(\n sh1,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = newUint32ArrayTexture(\n sh2,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3a || !this.extra.sh3b) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3TextureA = this.extra.sh3TextureA as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureA) {\n let sh3a = this.extra.sh3a as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3a.length / 4,\n );\n if (sh3a.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3a);\n this.extra.sh3a = newSh3;\n sh3a = newSh3;\n }\n\n const texture = newUint32ArrayTexture(\n sh3a,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureA = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3TextureA = sh3TextureA;\n }\n\n let sh3TextureB = this.extra.sh3TextureB as\n | DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureB) {\n let sh3b = this.extra.sh3b as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3b.length / 4,\n );\n if (sh3b.length < maxSplats * 4) {\n const newSh3b = new Uint32Array(maxSplats * 4);\n newSh3b.set(sh3b);\n this.extra.sh3b = newSh3b;\n sh3b = newSh3b;\n }\n\n const texture = newUint32ArrayTexture(\n sh3b,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureB = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3b\",\n });\n this.extra.sh3TextureB = sh3TextureB;\n }\n\n return { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB };\n }\n\n // Ensures that this.extArrays can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): [Uint32Array, Uint32Array] {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.extArrays[0] ? 0 : this.extArrays[0].length / 4;\n\n if (!this.extArrays[0] || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray0 = new Uint32Array(this.maxSplats * 4);\n const newArray1 = new Uint32Array(this.maxSplats * 4);\n if (this.extArrays[0]) {\n // Copy over existing data\n newArray0.set(this.extArrays[0]);\n newArray1.set(this.extArrays[1]);\n }\n this.extArrays[0] = newArray0;\n this.extArrays[1] = newArray1;\n }\n return this.extArrays;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return decodeExtSplat(this.extArrays, index);\n }\n\n // Set all ExtSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(index + 1);\n encodeExtSplat(\n extArrays,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(this.numSplats + 1);\n encodeExtSplat(\n extArrays,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = decodeExtSplat(this.extArrays, i);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Check if source texture needs to be created/updated\n private updateTextures() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n const { width, height, depth } = this.textures[0].image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.textures[0].dispose();\n this.textures[0] = ExtSplats.emptyTexture;\n this.textures[1].dispose();\n this.textures[1] = ExtSplats.emptyTexture;\n }\n }\n if (this.textures[0] === ExtSplats.emptyTexture) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.textures[0] = newUint32ArrayTexture(\n this.extArrays[0],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n this.textures[1] = newUint32ArrayTexture(\n this.extArrays[1],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n } else if (\n this.extArrays[0].buffer !== this.textures[0].image.data.buffer\n ) {\n this.textures[0].image.data = new Uint8Array(this.extArrays[0].buffer);\n this.textures[1].image.data = new Uint8Array(this.extArrays[1].buffer);\n // Indicate to Three.js that the source textures needs to be uploaded to the GPU\n this.textures[0].needsUpdate = true;\n this.textures[1].needsUpdate = true;\n }\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new ExtSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static emptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTexture = newUint32ArrayTexture(\n null,\n 1,\n 1,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const extArrays = [this.extArrays[0].slice(), this.extArrays[1].slice()];\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodExtSplats\" : \"tinyLodExtSplats\",\n {\n numSplats: this.numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n },\n )) as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n };\n });\n\n const lodSplats = new ExtSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\nexport const dynoExtSplats = (extSplats?: ExtSplats) =>\n new DynoExtSplats({ extSplats });\n\nexport class DynoExtSplats extends DynoUniform<\n typeof TExtSplats,\n \"extSplats\",\n {\n textureArray1: THREE.DataArrayTexture;\n textureArray2: THREE.DataArrayTexture;\n numSplats: number;\n }\n> {\n extSplats?: ExtSplats;\n\n constructor({ extSplats }: { extSplats?: ExtSplats } = {}) {\n super({\n key: \"extSplats\",\n type: TExtSplats,\n globals: () => [defineExtSplats],\n value: {\n textureArray1: ExtSplats.emptyTexture,\n textureArray2: ExtSplats.emptyTexture,\n numSplats: 0,\n },\n update: (value) => {\n value.textureArray1 =\n this.extSplats?.textures[0] ?? ExtSplats.emptyTexture;\n value.textureArray2 =\n this.extSplats?.textures[1] ?? ExtSplats.emptyTexture;\n value.numSplats = this.extSplats?.numSplats ?? 0;\n return value;\n },\n });\n this.extSplats = extSplats;\n }\n}\n\nexport const defineEvaluateExtSH1 = unindent(`\n vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packedData.x);\n vec3 sh1_1 = decodeExtRgb(packedData.y);\n vec3 sh1_2 = decodeExtRgb(packedData.z);\n\n return sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n }\n`);\n\nexport const defineEvaluateExtSH12 = unindent(`\n vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packed1.x);\n vec3 sh1_1 = decodeExtRgb(packed1.y);\n vec3 sh1_2 = decodeExtRgb(packed1.z);\n\n vec3 sh2_0 = decodeExtRgb(packed1.w);\n vec3 sh2_1 = decodeExtRgb(packed2.x);\n vec3 sh2_2 = decodeExtRgb(packed2.y);\n vec3 sh2_3 = decodeExtRgb(packed2.z);\n vec3 sh2_4 = decodeExtRgb(packed2.w);\n\n vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n\n vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n\n return sh1Rgb + sh2Rgb;\n }\n`);\n\nexport const defineEvaluateExtSH3 = unindent(`\n vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) {\n vec3 sh3_0 = decodeExtRgb(packedA.x);\n vec3 sh3_1 = decodeExtRgb(packedA.y);\n vec3 sh3_2 = decodeExtRgb(packedA.z);\n vec3 sh3_3 = decodeExtRgb(packedA.w);\n vec3 sh3_4 = decodeExtRgb(packedB.x);\n vec3 sh3_5 = decodeExtRgb(packedB.y);\n vec3 sh3_6 = decodeExtRgb(packedB.z);\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n }\n`);\n\nexport function evaluateExtSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3TextureA: \"usampler2DArray\",\n sh3TextureB: \"usampler2DArray\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n },\n globals: () => [\n defineEvaluateExtSH1,\n defineEvaluateExtSH12,\n defineEvaluateExtSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n if (!inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n } else {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} == 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n } else if (${inputs.numSh} >= 2) {\n rgb = evaluateExtSH12(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n `),\n );\n\n if (inputs.sh3TextureA && inputs.sh3TextureB) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n rgb += evaluateExtSH3(texelFetch(${inputs.sh3TextureA}, ${inputs.coord}, 0), texelFetch(${inputs.sh3TextureB}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n }\n\n lines.push(\"}\");\n }\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n\nfunction newUint32ArrayTexture(\n data: Uint32Array | null,\n width: number,\n height: number,\n depth: number,\n format: THREE.AnyPixelFormat,\n type: THREE.TextureDataType,\n internalFormat: THREE.PixelFormatGPU,\n): THREE.DataArrayTexture {\n const texture = new THREE.DataArrayTexture(\n data as Uint32Array,\n width,\n height,\n depth,\n );\n texture.format = format;\n texture.type = type;\n texture.internalFormat = internalFormat;\n texture.needsUpdate = true;\n return texture;\n}\n","import * as THREE from \"three\";\n\nimport { DynoPackedSplats, type PackedSplats } from \"./PackedSplats\";\nimport { Readback, type Rgba8Readback } from \"./Readback\";\nimport { SPLAT_TEX_WIDTH } from \"./defines\";\nimport {\n Dyno,\n type DynoBlock,\n DynoInt,\n DynoUniform,\n type DynoVal,\n add,\n dynoBlock,\n readPackedSplatRange,\n splitGsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize } from \"./utils\";\n\n// An RgbaArray is a collection of ordered RGBA8 values, which can be used as a dyno\n// data source, for example for recoloring Gsplats via SplatMesh.splatRgba.\n// It can be instantiated from a Uint8Array of RGBA8 values, or it can be\n// generated using a Rgba8Readback dyno program.\n\nexport type RgbaArrayOptions = {\n // Reserve space for at least this many RGBA values.\n capacity?: number;\n // Use the provided array of RGBA8 values as the source.\n array?: Uint8Array;\n // The number of actual RGBA8 values in the array.\n count?: number;\n};\n\nexport class RgbaArray {\n capacity = 0;\n count = 0;\n array: Uint8Array | null = null;\n\n readback: Readback | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source array is updated to have it upload to GPU\n needsUpdate = true;\n\n // Use this as a TRgbaArray in a dyno graph\n dyno: DynoUniform;\n\n constructor(options: RgbaArrayOptions = {}) {\n this.dyno = new DynoUniform({\n key: \"rgbaArray\",\n type: TRgbaArray,\n globals: () => [defineRgbaArray],\n value: {\n texture: RgbaArray.getEmpty(),\n count: 0,\n },\n update: (value) => {\n value.texture = this.getTexture();\n value.count = this.count;\n return value;\n },\n });\n\n if (options.array) {\n // Initialize with given array\n this.array = options.array;\n const splatCount = Math.floor(this.array.length / 4);\n this.capacity = Math.ceil(splatCount / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (this.capacity > splatCount) {\n this.array = new Uint8Array(this.capacity * 4);\n this.array.set(options.array);\n }\n this.count = Math.min(\n splatCount,\n options.count ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.capacity = options.capacity ?? 0;\n this.count = 0;\n }\n }\n\n // Free up resources\n dispose() {\n if (this.readback) {\n this.readback.dispose();\n this.readback = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source = null;\n }\n }\n\n // Ensure that our array is large enough to hold capacity RGBA8 values.\n ensureCapacity(capacity: number): Uint8Array {\n if (!this.array || capacity > (this.array?.length ?? 0) / 4) {\n this.capacity = getTextureSize(capacity).maxSplats;\n const newArray = new Uint8Array(this.capacity * 4);\n if (this.array) {\n // Copy over existing data\n newArray.set(this.array);\n }\n this.array = newArray;\n }\n return this.array;\n }\n\n // Get the THREE.DataArrayTexture from either the readback or the source.\n getTexture(): THREE.DataArrayTexture {\n let texture = this.readback?.getTexture();\n if (this.source || this.array) {\n texture = this.maybeUpdateSource();\n }\n return texture ?? RgbaArray.getEmpty();\n }\n\n // Create or get a THREE.DataArrayTexture from the data array.\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.array) {\n throw new Error(\"No array\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.capacity !== width * height * depth) {\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n const { width, height, depth } = getTextureSize(this.capacity);\n this.source = new THREE.DataArrayTexture(\n this.array as Uint8Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAFormat;\n this.source.type = THREE.UnsignedByteType;\n this.source.internalFormat = \"RGBA8\";\n this.source.needsUpdate = true;\n } else if (this.array.buffer !== this.source.image.data.buffer) {\n this.source.image.data = new Uint8Array(this.array.buffer);\n }\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n // Generate the RGBA8 values from a Rgba8Readback dyno program.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer: THREE.WebGLRenderer }) {\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n this.readback.render({ reader, count, renderer });\n this.capacity = this.readback.capacity;\n this.count = this.readback.count;\n }\n\n // Extract the RGBA8 values from a PackedSplats collection.\n fromPackedSplats({\n packedSplats,\n base,\n count,\n renderer,\n }: {\n packedSplats: PackedSplats;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n const { dynoSplats, dynoBase, dynoCount, reader } = RgbaArray.makeDynos();\n dynoSplats.packedSplats = packedSplats;\n dynoBase.value = base;\n dynoCount.value = count;\n this.render({ reader, count, renderer });\n return this;\n }\n\n // Read back the RGBA8 values from the readback buffer.\n async read(): Promise {\n if (!this.readback) {\n throw new Error(\"No readback\");\n }\n if (!this.array || this.array.length < this.count * 4) {\n this.array = new Uint8Array(this.capacity * 4);\n }\n const result = await this.readback.readback({ readback: this.array });\n return result.subarray(0, this.count * 4);\n }\n\n async getArray(): Promise {\n if (this.readback) {\n return await this.read();\n }\n if (this.array) {\n return this.array;\n }\n throw new Error(\"No array\");\n }\n\n private static emptySource: THREE.DataArrayTexture | null = null;\n\n // Can be used where you need an uninitialized THREE.DataArrayTexture like\n // a uniform you will update with the result of this.getTexture() later.\n static getEmpty(): THREE.DataArrayTexture {\n if (!RgbaArray.emptySource) {\n const emptyArray = new Uint8Array(1 * 4);\n RgbaArray.emptySource = new THREE.DataArrayTexture(emptyArray, 1, 1, 1);\n RgbaArray.emptySource.format = THREE.RGBAFormat;\n RgbaArray.emptySource.type = THREE.UnsignedByteType;\n RgbaArray.emptySource.internalFormat = \"RGBA8\";\n RgbaArray.emptySource.needsUpdate = true;\n }\n return RgbaArray.emptySource;\n }\n\n private static dynos: {\n dynoSplats: DynoPackedSplats;\n dynoBase: DynoInt;\n dynoCount: DynoInt;\n reader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n } | null = null;\n\n // Create a dyno program that can extract RGBA8 values from a PackedSplats\n private static makeDynos() {\n if (!RgbaArray.dynos) {\n const dynoSplats = new DynoPackedSplats();\n const dynoBase = new DynoInt({ value: 0 });\n const dynoCount = new DynoInt({ value: 0 });\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n index = add(index, dynoBase);\n const gsplat = readPackedSplatRange(\n dynoSplats,\n index,\n dynoBase,\n dynoCount,\n );\n return { rgba8: splitGsplat(gsplat).outputs.rgba };\n },\n );\n RgbaArray.dynos = { dynoSplats, dynoBase, dynoCount, reader };\n }\n return RgbaArray.dynos;\n }\n}\n\n// Dyno types and definitions\n\nexport const TRgbaArray = { type: \"RgbaArray\" } as { type: \"RgbaArray\" };\n\nexport const defineRgbaArray = unindent(`\n struct RgbaArray {\n sampler2DArray texture;\n int count;\n };\n`);\n\nexport function readRgbaArray(\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal<\"vec4\"> {\n const dyno = new Dyno<\n { rgba: typeof TRgbaArray; index: \"int\" },\n { rgba: \"vec4\" }\n >({\n inTypes: { rgba: TRgbaArray, index: \"int\" },\n outTypes: { rgba: \"vec4\" },\n inputs: { rgba, index },\n globals: () => [defineRgbaArray],\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n if ((${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.rgba} = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n } else {\n ${outputs.rgba} = vec4(0.0, 0.0, 0.0, 0.0);\n }\n `),\n });\n return dyno.outputs.rgba;\n}\n","import * as THREE from \"three\";\n\nimport { decode_rad_header } from \"spark-rs\";\nimport { LN_SCALE_MAX, LN_SCALE_MIN, dyno } from \".\";\nimport { evaluateExtSH } from \"./ExtSplats\";\nimport { evaluatePackedSH } from \"./PackedSplats\";\nimport { getSplatFileType, getSplatFileTypeFromPath } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n type ExtResult,\n type PackedResult,\n type RadMeta,\n type SplatEncoding,\n SplatFileType,\n} from \"./defines\";\nimport { type DynoUsampler2DArray, pagedSplatTexCoord } from \"./dyno\";\nimport {\n decodeExtSplat,\n getTextureSize,\n unpackSplat,\n uploadU32DataTextureRows,\n} from \"./utils\";\nimport * as wasm from \"./wasm\";\n\nexport interface PagedSplatsOptions {\n pager?: SplatPager;\n rootUrl?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n maxSh?: number;\n}\n\nconst PAGE_WIDTH = 256;\nconst PAGE_HEIGHT = 256;\nconst PAGE_SPLATS = PAGE_WIDTH * PAGE_HEIGHT; // 65536\n\nexport class PagedSplats implements SplatSource {\n pager?: SplatPager;\n rootUrl: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n\n numSh: number;\n maxSh: number;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array | [Uint32Array, Uint32Array];\n\n numSplats: number;\n splatEncoding?: SplatEncoding;\n radMetaPromise?: Promise<{ meta: RadMeta; chunksStart: number }>;\n\n dynoNumSplats: dyno.DynoInt<\"numSplats\">;\n dynoIndices: dyno.DynoUsampler2D<\"indices\", THREE.DataTexture>;\n rgbMinMaxLnScaleMinMax: dyno.DynoVec4<\n THREE.Vector4,\n \"rgbMinMaxLnScaleMinMax\"\n >;\n lodOpacity: dyno.DynoBool<\"lodOpacity\">;\n dynoNumSh: dyno.DynoInt<\"numSh\">;\n shMax: dyno.DynoVec3;\n\n constructor(options: PagedSplatsOptions) {\n this.pager = options.pager;\n this.rootUrl = options.rootUrl ?? \"\";\n this.requestHeader = options.requestHeader;\n this.withCredentials = options.withCredentials;\n this.numSh = 0;\n this.maxSh = options.pager?.maxSh ?? 3;\n\n this.numSplats = 0;\n\n this.dynoNumSplats = new dyno.DynoInt({ value: 0 });\n this.dynoIndices = new dyno.DynoUsampler2D({\n value: SplatPager.emptyIndicesTexture,\n });\n\n this.rgbMinMaxLnScaleMinMax = new dyno.DynoVec4({\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n });\n this.lodOpacity = new dyno.DynoBool({\n value: false,\n });\n\n this.dynoNumSh = new dyno.DynoInt({ value: 0 });\n this.shMax = new dyno.DynoVec3({ value: new THREE.Vector3() });\n\n this.fileBytes = options.fileBytes;\n this.fileType = options.fileType;\n if (!this.fileType && this.fileBytes) {\n this.fileType = getSplatFileType(this.fileBytes);\n }\n if (!this.fileType && this.rootUrl) {\n this.fileType = getSplatFileTypeFromPath(this.rootUrl);\n }\n if (!this.fileType) {\n throw new Error(\"Unable to determine file type\");\n }\n if (this.fileType === SplatFileType.RAD) {\n this.radMetaPromise = this.getRadMeta();\n }\n }\n\n dispose() {\n if (this.dynoIndices.value !== SplatPager.emptyIndicesTexture) {\n this.dynoIndices.value.dispose();\n this.dynoIndices.value = SplatPager.emptyIndicesTexture;\n }\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n getRadMeta(): Promise<{ meta: RadMeta; chunksStart: number }> {\n if (this.radMetaPromise) {\n return this.radMetaPromise;\n }\n\n this.radMetaPromise = (async () => {\n await wasm.initialization;\n\n if (this.fileBytes) {\n // Shouldn't be more than 1 MB, so don't send more data than that.\n const metaStart = decode_rad_header(this.fileBytes.slice(0, 1048576));\n if (metaStart) {\n return metaStart;\n }\n throw new Error(\"Failed to decode RAD header\");\n }\n if (!this.rootUrl) {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n // We don't know how big the header will be. Most likely 64KB will be enough,\n // but try larger blocks in backoff if it wasn't enough.\n for (const tryBytes of [65536, 256 * 1024, 1024 * 1024]) {\n const bytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset: 0,\n bytes: tryBytes,\n });\n const metaStart = decode_rad_header(bytes);\n if (metaStart) {\n return metaStart;\n }\n }\n throw new Error(\"Failed to decode RAD header\");\n })().then((metaStart) => {\n // console.log(\"RAD meta: \", metaStart.meta);\n return metaStart;\n });\n\n this.radMetaPromise.catch((error) => {\n console.error(error);\n // Allow it to be tried again\n // this.radMetaPromise = undefined;\n });\n\n return this.radMetaPromise;\n }\n\n chunkUrl(chunk: number): string {\n return this.rootUrl.replace(/-lod-0\\./, `-lod-${chunk}.`);\n }\n\n async fetchDecodeChunk(chunk: number) {\n let decodeBytes = undefined;\n\n if (this.fileType === SplatFileType.RAD) {\n const { meta, chunksStart } = await this.getRadMeta();\n if (chunk < 0 || chunk >= meta.chunks.length) {\n throw new Error(\n `Chunk index out of range: ${chunk} (max: ${meta.chunks.length - 1})`,\n );\n }\n let { offset, bytes, filename } = meta.chunks[chunk];\n\n if (filename) {\n if (this.fileBytes) {\n throw new Error(\"Chunked RAD file not supported with fileBytes\");\n }\n const resolvedRoot = new URL(\n this.rootUrl,\n window.location.href,\n ).toString();\n const chunkUrl = new URL(filename, resolvedRoot).toString();\n decodeBytes = await fetchRange({\n url: chunkUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n });\n } else {\n offset += chunksStart;\n // console.log(`Fetching chunk ${chunk} at offset ${offset} with bytes ${bytes}`);\n if (this.fileBytes) {\n if (offset < 0 || offset + bytes > this.fileBytes.length) {\n throw new Error(\n `Invalid chunk offset or bytes: ${offset} + ${bytes} > ${this.fileBytes.length}`,\n );\n }\n decodeBytes = this.fileBytes.slice(offset, offset + bytes);\n } else if (this.rootUrl) {\n decodeBytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset,\n bytes,\n });\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n }\n } else if (this.fileBytes) {\n // Fall through\n } else if (this.rootUrl) {\n const url = this.chunkUrl(chunk);\n const request = new Request(url, {\n headers: this.requestHeader\n ? new Headers(this.requestHeader)\n : undefined,\n credentials: this.withCredentials ? \"include\" : \"same-origin\",\n });\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n decodeBytes = new Uint8Array(await response.arrayBuffer());\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n return await workerPool.withWorker(async (worker) => {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n if (!this.pager.extSplats) {\n const result = (await worker.call(\"loadPackedSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: this.sh3Codes?.slice(),\n })) as { lodSplats: PackedResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = lodSplats.splatEncoding;\n\n this.numSh = lodSplats.extra.sh3\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n\n this.rgbMinMaxLnScaleMinMax.value.set(\n this.splatEncoding.rgbMin ?? 0.0,\n this.splatEncoding.rgbMax ?? 1.0,\n this.splatEncoding.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding.lnScaleMax ?? LN_SCALE_MAX,\n );\n\n this.lodOpacity.value = this.splatEncoding.lodOpacity ?? false;\n\n this.shMax.value.set(\n this.splatEncoding.sh1Max ?? 1.0,\n this.splatEncoding.sh2Max ?? 1.0,\n this.splatEncoding.sh3Max ?? 1.0,\n );\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n }\n\n const sh3Codes = this.sh3Codes as [Uint32Array, Uint32Array] | undefined;\n const result = (await worker.call(\"loadExtSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: sh3Codes\n ? [sh3Codes[0].slice(), sh3Codes[1].slice()]\n : undefined,\n })) as { lodSplats: ExtResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = DEFAULT_SPLAT_ENCODING;\n this.numSh =\n lodSplats.extra.sh3a && lodSplats.extra.sh3b\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n });\n }\n\n update(numSplats: number, indices: Uint32Array) {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const renderer = this.pager.renderer;\n this.numSplats = numSplats;\n this.dynoNumSplats.value = this.numSplats;\n const rows = Math.ceil(numSplats / 16384);\n\n let indicesTexture =\n this.dynoIndices.value === SplatPager.emptyIndicesTexture\n ? undefined\n : this.dynoIndices.value;\n if (indicesTexture && rows > indicesTexture.image.height) {\n indicesTexture.dispose();\n indicesTexture = undefined;\n }\n\n if (!indicesTexture) {\n indicesTexture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n indicesTexture.internalFormat = \"RGBA32UI\";\n indicesTexture.needsUpdate = true;\n renderer.initTexture(indicesTexture);\n this.dynoIndices.value = indicesTexture;\n } else {\n const textureIndices = indicesTexture.image.data as Uint32Array;\n textureIndices.set(indices.subarray(0, numSplats));\n\n uploadU32DataTextureRows(\n renderer,\n indicesTexture,\n 4096,\n rows,\n textureIndices,\n );\n }\n }\n\n prepareFetchSplat() {}\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n if (!this.pager) {\n return false;\n }\n return Math.min(this.numSh, this.pager.maxSh) > 0;\n }\n\n getNumSh(): number {\n return this.numSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: {\n index: dyno.DynoVal<\"int\">;\n viewOrigin?: dyno.DynoVal<\"vec3\">;\n }): dyno.DynoVal {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const splatIndex = this.pager.readIndex.apply({\n index,\n numSplats: this.dynoNumSplats,\n indices: this.dynoIndices,\n }).index;\n\n if (!this.pager.extSplats) {\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(\n this.numSh,\n this.maxSh,\n this.pager.maxSh,\n );\n return this.pager.readSplatDir.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n viewOrigin,\n numSh: this.dynoNumSh,\n shMax: this.shMax,\n }).gsplat;\n }\n return this.pager.readSplat.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n }).gsplat;\n }\n\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(this.numSh, this.maxSh, this.pager.maxSh);\n return this.pager.readSplatExtDir.apply({\n index: splatIndex,\n viewOrigin,\n numSh: this.dynoNumSh,\n }).gsplat;\n }\n return this.pager.readSplatExt.apply({ index: splatIndex }).gsplat;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.pager || !this.numSplats) {\n return;\n }\n const extSplats = this.pager.extSplats;\n const indices = this.dynoIndices.value.image.data as Uint32Array;\n const packedSplatArray = this.pager.packedTexture.value.image\n .data as Uint32Array;\n const extPackedSplatArray = this.pager.extTexture.value.image\n .data as Uint32Array;\n const extArrays: [Uint32Array, Uint32Array] = [\n packedSplatArray,\n extPackedSplatArray,\n ];\n\n for (let i = 0; i < this.numSplats; ++i) {\n const splatIndex = indices[i];\n const unpacked = extSplats\n ? decodeExtSplat(extArrays, splatIndex)\n : unpackSplat(packedSplatArray, splatIndex, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n}\n\nexport interface SplatPagerOptions {\n /**\n * THREE.WebGLRenderer instance to upload texture data\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Whether to use extended Gsplat encoding for paged splats.\n * @default false\n */\n extSplats?: boolean;\n /**\n * Maximum size of splat page pool\n * @default 65536 * 256 = 16777216\n */\n maxSplats?: number;\n /**\n * Maximum number of spherical harmonics to keep\n * @default 3\n */\n maxSh?: number;\n /**\n * Automatically drive page fetching, or poll via drive()\n * @default true\n */\n autoDrive?: boolean;\n /**\n * Number of parallel chunk fetchers\n * @default 3\n */\n numFetchers?: number;\n}\n\ninterface PageUpload {\n page: number;\n numSplats: number;\n packedArray: Uint32Array;\n extArray?: Uint32Array;\n shArrays: Array;\n}\n\nexport class SplatPager {\n readonly renderer: THREE.WebGLRenderer;\n\n readonly extSplats: boolean;\n readonly maxPages: number;\n readonly maxSplats: number;\n readonly pageSplats: number;\n\n readonly maxSh: number;\n curSh: number;\n\n autoDrive: boolean;\n numFetchers: number;\n fetchPause = 0;\n\n splatsChunkToPage: Map<\n PagedSplats,\n ({ page: number; lru: number } | undefined)[]\n > = new Map();\n pageToSplatsChunk: (\n | { splats: PagedSplats; chunk: number; time: number }\n | undefined\n )[] = [];\n pageFreelist: number[];\n pageLru: Set<{ page: number; lru: number }>;\n freeablePages: number[];\n newUploads: PageUpload[];\n readyUploads: PageUpload[];\n lodTreeUpdates: {\n splats: PagedSplats;\n page: number;\n chunk: number;\n numSplats: number;\n lodTree?: Uint32Array;\n }[];\n\n fetchers: { splats: PagedSplats; chunk: number; promise: Promise }[];\n fetched: {\n splats: PagedSplats;\n chunk: number;\n data: PackedResult | ExtResult;\n }[];\n fetchPriority: { splats: PagedSplats; chunk: number }[];\n\n packedTexture: dyno.DynoUsampler2DArray<\n \"packedTexture\",\n THREE.DataArrayTexture\n >;\n extTexture: dyno.DynoUsampler2DArray<\"extTexture\", THREE.DataArrayTexture>;\n readonly shTextures: [\n dyno.DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>,\n dyno.DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>,\n dyno.DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>,\n dyno.DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>,\n ];\n\n readIndex: dyno.DynoBlock<\n { index: \"int\"; numSplats: \"int\"; indices: \"usampler2D\" },\n { index: \"int\" }\n >;\n readSplat: dyno.DynoBlock<\n { index: \"int\"; rgbMinMaxLnScaleMinMax: \"vec4\"; lodOpacity: \"bool\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExt: dyno.DynoBlock<\n { index: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatDir: dyno.DynoBlock<\n {\n index: \"int\";\n rgbMinMaxLnScaleMinMax: \"vec4\";\n lodOpacity: \"bool\";\n viewOrigin: \"vec3\";\n numSh: \"int\";\n shMax: \"vec3\";\n },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExtDir: dyno.DynoBlock<\n { index: \"int\"; viewOrigin: \"vec3\"; numSh: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n\n constructor(options: SplatPagerOptions) {\n this.renderer = options.renderer;\n this.extSplats = options.extSplats ?? false;\n\n this.pageSplats = PAGE_SPLATS;\n this.maxSplats = options.maxSplats ?? 16777216;\n this.maxPages = Math.ceil(this.maxSplats / PAGE_SPLATS);\n this.maxSplats = this.maxPages * PAGE_SPLATS;\n\n this.maxSh = options.maxSh ?? 3;\n this.curSh = 0;\n\n this.autoDrive = options.autoDrive ?? true;\n this.numFetchers = options.numFetchers ?? 3;\n\n this.splatsChunkToPage = new Map();\n this.pageToSplatsChunk = new Array(this.maxPages);\n this.pageFreelist = Array.from({ length: this.maxPages }, (_, i) => i);\n this.pageLru = new Set();\n this.freeablePages = [];\n this.newUploads = [];\n this.readyUploads = [];\n this.lodTreeUpdates = [];\n\n this.fetchers = [];\n this.fetched = [];\n this.fetchPriority = [];\n\n this.packedTexture = new dyno.DynoUsampler2DArray({\n value: this.newUint32ArrayTexture(4),\n });\n this.extTexture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? this.newUint32ArrayTexture(4)\n : SplatPager.emptyExtTexture,\n });\n\n const emptyShTextures = this.extSplats\n ? SplatPager.emptyExtShTextures\n : SplatPager.emptyShTextures;\n this.shTextures = emptyShTextures.map(\n (texture) =>\n new dyno.DynoUsampler2DArray({\n value: texture,\n }),\n ) as typeof this.shTextures;\n\n this.readIndex = dyno.dynoBlock(\n { index: \"int\", numSplats: \"int\", indices: \"usampler2D\" },\n { index: \"int\" },\n ({ index, numSplats, indices }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n numSplats: \"int\",\n indices: \"usampler2D\",\n },\n outTypes: { index: \"int\" },\n inputs: {\n index,\n numSplats,\n indices,\n },\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n if (${inputs.index} >= ${inputs.numSplats}) {\n return;\n }\n\n ivec2 indexCoord = ivec2((${inputs.index} >> 2) & 4095, ${inputs.index} >> 14);\n uint index = texelFetch(${inputs.indices}, indexCoord, 0)[${inputs.index} & 3];\n ${outputs.index} = int(index);\n `),\n }).outputs;\n },\n );\n\n this.readSplat = dyno.dynoBlock(\n { index: \"int\", rgbMinMaxLnScaleMinMax: \"vec4\", lodOpacity: \"bool\" },\n { gsplat: dyno.Gsplat },\n ({ index, rgbMinMaxLnScaleMinMax, lodOpacity }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n packedTexture: \"usampler2DArray\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n packedTexture: this.packedTexture,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = pagedSplatTexCoord(index);\n uvec4 packedData = texelFetch(${inputs.packedTexture}, splatCoord, 0);\n\n unpackSplatEncoding(packedData, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba, ${inputs.rgbMinMaxLnScaleMinMax});\n if ((${outputs.gsplat}.rgba.a == 0.0) || all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n \n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n if (${inputs.lodOpacity}) {\n ${outputs.gsplat}.rgba.a *= 2.0;\n }\n `),\n }).outputs;\n },\n );\n\n this.readSplatDir = dyno.dynoBlock(\n {\n index: \"int\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n shMax: \"vec3\",\n },\n { gsplat: dyno.Gsplat },\n ({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n viewOrigin,\n numSh,\n shMax,\n }) => {\n if (\n !index ||\n !rgbMinMaxLnScaleMinMax ||\n !lodOpacity ||\n !viewOrigin ||\n !numSh ||\n !shMax\n ) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplat.apply({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluatePackedSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.shTextures[0],\n sh2Texture: this.shTextures[1],\n sh3Texture: this.shTextures[2],\n shMax,\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n\n this.readSplatExt = dyno.dynoBlock(\n { index: \"int\" },\n { gsplat: dyno.Gsplat },\n ({ index }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n extTexture1: \"usampler2DArray\",\n extTexture2: \"usampler2DArray\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n extTexture1: this.packedTexture,\n extTexture2: this.extTexture,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16);\n uvec4 ext1 = texelFetch(${inputs.extTexture1}, splatCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if (alpha == 0.0) {\n return;\n }\n\n uvec4 ext2 = texelFetch(${inputs.extTexture2}, splatCoord, 0);\n unpackSplatExt(ext1, ext2, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba);\n if (all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n\n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n `),\n }).outputs;\n },\n );\n\n this.readSplatExtDir = dyno.dynoBlock(\n {\n index: \"int\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n },\n { gsplat: dyno.Gsplat },\n ({ index, viewOrigin, numSh }) => {\n if (!index || !viewOrigin || !numSh) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplatExt.apply({ index }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluateExtSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.shTextures[0],\n sh2Texture: this.shTextures[1],\n sh3TextureA: this.shTextures[2],\n sh3TextureB: this.shTextures[3],\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n }\n\n dispose() {\n this.autoDrive = false;\n this.numFetchers = 0;\n\n this.packedTexture.value.dispose();\n this.packedTexture.value.source.data = null;\n if (this.extTexture.value !== SplatPager.emptyExtTexture) {\n this.extTexture.value.dispose();\n this.extTexture.value.source.data = null;\n }\n\n const emptyShTextures = this.extSplats\n ? SplatPager.emptyExtShTextures\n : SplatPager.emptyShTextures;\n for (let i = 0; i < emptyShTextures.length; i++) {\n const texture = this.shTextures[i].value;\n if (texture !== emptyShTextures[i]) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n\n private ensureShTextures(numSh: number) {\n this.curSh = Math.max(this.curSh, numSh);\n\n const emptyShTextures = this.extSplats\n ? SplatPager.emptyExtShTextures\n : SplatPager.emptyShTextures;\n for (let i = 0; i < this.curSh; i++) {\n if (this.shTextures[i].value === emptyShTextures[i]) {\n const elementsPerSplat =\n this.shTextures[i].value === SplatPager.emptyUint32x2 ? 2 : 4;\n this.shTextures[i].value = this.newUint32ArrayTexture(elementsPerSplat);\n }\n }\n }\n\n private allocatePage(): number | undefined {\n return this.pageFreelist.shift();\n }\n\n getSplatsChunk(splats: PagedSplats, chunk: number) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n return undefined;\n }\n return chunks[chunk];\n }\n\n private insertSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n now: number,\n ) {\n if (!this.splatsChunkToPage.has(splats)) {\n this.splatsChunkToPage.set(splats, []);\n }\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n if (chunk >= chunks.length) {\n chunks.length = chunk + 1;\n }\n const pageLru = { page, lru: now };\n chunks[chunk] = pageLru;\n this.pageLru.add(pageLru);\n\n this.pageToSplatsChunk[page] = { splats, chunk, time: performance.now() };\n return this.pageToSplatsChunk[page];\n }\n\n private removeSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n ) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n\n const pageLru = chunks[chunk];\n if (!pageLru) {\n throw new Error(\n `pageLru not found for splats: ${splats}, chunk: ${chunk}, page: ${page}`,\n );\n }\n this.pageLru.delete(pageLru);\n\n chunks[chunk] = undefined;\n\n while (chunks.length > 0 && chunks[chunks.length - 1] === undefined) {\n chunks.pop();\n }\n if (chunks.length === 0) {\n this.splatsChunkToPage.delete(splats);\n }\n\n this.pageToSplatsChunk[page] = undefined;\n while (\n this.pageToSplatsChunk.length > 0 &&\n this.pageToSplatsChunk[this.pageToSplatsChunk.length - 1] === undefined\n ) {\n this.pageToSplatsChunk.pop();\n }\n }\n\n removeSplats(splats: PagedSplats) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n return;\n }\n\n const freedPages = new Set();\n\n while (chunks.length > 0) {\n const chunk = chunks.pop();\n if (chunk) {\n const { page } = chunk;\n this.pageToSplatsChunk[page] = undefined;\n freedPages.add(page);\n this.pageFreelist.push(page);\n this.pageLru.delete(chunk);\n }\n }\n this.splatsChunkToPage.delete(splats);\n this.freeablePages = this.freeablePages.filter(\n (page) => !freedPages.has(page),\n );\n }\n\n private uploadPage(\n page: number,\n packedArray: Uint32Array,\n shArrays: Array,\n extArray?: Uint32Array,\n ) {\n const pageBase = page * PAGE_SPLATS;\n\n uploadTextureLayer(this.packedTexture, page, pageBase * 4, packedArray);\n\n if (extArray) {\n uploadTextureLayer(this.extTexture, page, pageBase * 4, extArray);\n }\n\n // In case of extSplats there can be 4 shArrays for 3 sh degrees\n const numSh = Math.min(shArrays.length, 3);\n this.ensureShTextures(numSh);\n\n for (let i = 0; i < shArrays.length; i++) {\n const array = shArrays[i];\n const elementsPerSplat =\n this.shTextures[i].value.format === THREE.RGIntegerFormat ? 2 : 4;\n uploadTextureLayer(\n this.shTextures[i],\n page,\n pageBase * elementsPerSplat,\n array,\n );\n }\n }\n\n private newUint32ArrayTexture(\n elementsPerSplat: 2 | 4,\n ): THREE.DataArrayTexture {\n const data = new Uint32Array(\n this.maxPages * PAGE_WIDTH * PAGE_HEIGHT * elementsPerSplat,\n );\n const texture = new THREE.DataArrayTexture(\n data,\n PAGE_WIDTH,\n PAGE_HEIGHT,\n this.maxPages,\n );\n texture.format =\n elementsPerSplat === 2 ? THREE.RGIntegerFormat : THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = elementsPerSplat === 2 ? \"RG32UI\" : \"RGBA32UI\";\n texture.needsUpdate = true;\n // Avoid initial upload of empty/null data\n texture.source.dataReady = false;\n this.renderer.initTexture(texture);\n return texture;\n }\n\n driveFetchers() {\n const needed = [];\n const overflow = [];\n let numPages = 0;\n\n for (const { splats, chunk } of this.fetchPriority) {\n const pageLru = this.getSplatsChunk(splats, chunk);\n if (pageLru) {\n if (numPages >= this.maxPages) {\n overflow.push(pageLru);\n } else {\n needed.push(pageLru);\n }\n numPages += 1;\n continue;\n }\n\n if (\n this.fetched.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n ) ||\n this.fetchers.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n )\n ) {\n numPages += 1;\n continue;\n }\n\n if (numPages < this.maxPages && this.fetchers.length < this.numFetchers) {\n numPages += 1;\n const promise = splats\n .fetchDecodeChunk(chunk)\n .then(\n async (data) => {\n // Place data in ready queue and remove self from active fetchers list\n this.fetched.push({ splats, chunk, data });\n if (this.fetchPause > 0) {\n await new Promise((resolve) =>\n setTimeout(resolve, this.fetchPause),\n );\n }\n },\n async (error) => {\n console.warn(error);\n const backoff = 250 + 500 * Math.random();\n await new Promise((resolve) => setTimeout(resolve, backoff));\n },\n )\n .finally(() => {\n this.fetchers = this.fetchers.filter(\n ({ splats: s, chunk: c }) => splats !== s || chunk !== c,\n );\n this.processFetched();\n });\n // Add self to active fetchers list\n this.fetchers.push({ splats, chunk, promise });\n\n promise.then((data) => {\n if (this.autoDrive) {\n this.driveFetchers();\n }\n });\n }\n }\n\n // Update LRU ordering in reverse priority order\n const now = performance.now();\n\n for (const pageLru of overflow.reverse()) {\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n\n // Create set of pages not needed\n const extraPages = new Set(this.pageLru);\n for (const pageLru of needed.reverse()) {\n extraPages.delete(pageLru);\n\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n this.freeablePages = Array.from(extraPages).map(({ page }) => page);\n }\n\n private allocateFreeable(): number | undefined {\n const page = this.freeablePages.shift();\n if (page === undefined) {\n // No freeable pages available\n return undefined;\n }\n\n const splatsChunk = this.pageToSplatsChunk[page];\n if (!splatsChunk) {\n throw new Error(`splatsChunk not found for page: ${page}`);\n }\n\n const { splats, chunk } = splatsChunk;\n this.removeSplatsChunkPage(splats, chunk, page);\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats: PAGE_SPLATS,\n });\n return page;\n }\n\n private processFetched() {\n const now = performance.now();\n while (true) {\n const fetched = this.fetched.shift();\n if (!fetched) {\n break;\n }\n const { splats, chunk, data } = fetched;\n\n let page = this.allocatePage();\n if (page === undefined) {\n page = this.allocateFreeable();\n if (page === undefined) {\n // No pages available, stop for now\n return;\n }\n }\n\n this.insertSplatsChunkPage(splats, chunk, page, now);\n const { numSplats, extra } = data;\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats,\n lodTree: extra.lodTree as Uint32Array,\n });\n\n if (isExtResult(data, this.extSplats)) {\n const extArrays = data.extArrays;\n const packedArray = extArrays[0];\n const extArray = extArrays[1];\n const shArrays = [\n data.extra.sh1 as Uint32Array,\n data.extra.sh2 as Uint32Array,\n data.extra.sh3a as Uint32Array,\n data.extra.sh3b as Uint32Array,\n ];\n shArrays.length = shArrays.findIndex((sh) => !sh);\n this.newUploads.push({\n page,\n numSplats,\n packedArray,\n extArray,\n shArrays,\n });\n } else {\n const packedArray = data.packedArray;\n const shArrays = [\n data.extra.sh1 as Uint32Array,\n data.extra.sh2 as Uint32Array,\n data.extra.sh3 as Uint32Array,\n ];\n shArrays.length = shArrays.findIndex((sh) => !sh);\n this.newUploads.push({\n page,\n numSplats,\n packedArray,\n shArrays,\n });\n }\n }\n }\n\n processUploads() {\n while (true) {\n const upload = this.readyUploads.shift();\n if (!upload) {\n break;\n }\n const { page, numSplats, packedArray, extArray, shArrays } = upload;\n this.uploadPage(page, packedArray, shArrays, extArray);\n }\n }\n\n consumeLodTreeUpdates() {\n const updates = this.lodTreeUpdates;\n this.lodTreeUpdates = [];\n\n this.readyUploads.push(...this.newUploads);\n this.newUploads = [];\n return updates;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyIndicesTexture = (() => {\n const emptyArray = new Uint32Array(4096 * 4);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyPackedTexture = this.emptyUint32x4;\n static emptyExtTexture = this.emptyUint32x4;\n static emptyShTextures = [\n this.emptyUint32x2,\n this.emptyUint32x4,\n this.emptyUint32x4,\n ] as const;\n static emptyExtShTextures = [\n this.emptyUint32x4,\n this.emptyUint32x4,\n this.emptyUint32x4, // SH3A\n this.emptyUint32x4, // SH3B\n ] as const;\n}\n\n// Convenience function to distinguish ExtResult and PackedResult\nfunction isExtResult(\n data: ExtResult | PackedResult,\n extSplats: boolean,\n): data is ExtResult {\n return extSplats;\n}\n\nfunction uploadTextureLayer(\n texture: DynoUsampler2DArray,\n layer: number,\n dstOffset: number,\n data: Uint32Array,\n) {\n const array = texture.value.image.data;\n array.subarray(dstOffset, dstOffset + data.length).set(data);\n\n texture.value.addLayerUpdate(layer);\n texture.value.needsUpdate = true;\n texture.value.source.dataReady = true;\n}\n\nasync function fetchRange({\n url,\n requestHeader,\n withCredentials,\n offset,\n bytes,\n}: {\n url: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n offset?: number;\n bytes?: number;\n}): Promise {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n if (offset !== undefined && bytes !== undefined) {\n request.headers.set(\"Range\", `bytes=${offset}-${offset + bytes - 1}`);\n }\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n return new Uint8Array(await response.arrayBuffer());\n}\n","import * as THREE from \"three\";\n\nimport {\n get_raycast_buffer,\n get_raycast_buffer2,\n raycast_ext_buffers,\n raycast_packed_buffer,\n} from \"spark-rs\";\nimport { ExtSplats } from \"./ExtSplats\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { type RgbaArray, TRgbaArray } from \"./RgbaArray\";\nimport { SplatEdit, SplatEditSdf, SplatEdits } from \"./SplatEdit\";\nimport {\n type CovSplatModifier,\n CovSplatTransformer,\n type FrameUpdateContext,\n type GsplatModifier,\n SplatGenerator,\n SplatTransformer,\n} from \"./SplatGenerator\";\nimport { PagedSplats, SplatPager } from \"./SplatPager\";\nimport type { SplatSkinning } from \"./SplatSkinning\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n CovSplat,\n Dyno,\n DynoBool,\n DynoFloat,\n DynoInt,\n DynoUsampler2D,\n type DynoVal,\n DynoVec4,\n Gsplat,\n combineCovSplat,\n combineGsplat,\n defineGsplat,\n dyno,\n dynoBlock,\n gsplatToCovSplat,\n mul,\n splitCovSplat,\n splitGsplat,\n unindentLines,\n} from \"./dyno\";\nimport * as wasm from \"./wasm\";\n\nexport type SplatMeshOptions = {\n // URL to fetch a Gaussian splat file from(supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Use an existing PackedSplats object as the source instead of loading from\n // a file. Can be used to share a collection of Gsplats among multiple SplatMeshes\n // (default: undefined creates a new empty PackedSplats or decoded from a\n // data source above)\n packedSplats?: PackedSplats;\n // Use an existing SplatSource object as the source instead of loading from file.\n splats?: SplatSource;\n // Reserve space for at least this many splats when constructing the mesh\n // initially. (default: determined by file)\n maxSplats?: number;\n // Callback function to programmatically create splats at initialization\n // in provided PackedSplats. (default: undefined)\n constructSplats?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Callback function that is called when mesh initialization is complete.\n // (default: undefined)\n onLoad?: (mesh: SplatMesh) => Promise | void;\n // Controls whether SplatEdits have any effect on this mesh. (default: true)\n editable?: boolean;\n // Controls whether SplatMesh participates in Three.js raycasting (default: true)\n raycastable?: boolean;\n // Minimum opacity for raycasting splats. (default: 0.2)\n minRaycastOpacity?: number;\n // Callback function that is called every frame to update the mesh.\n // Call mesh.updateVersion() if splats need to be regenerated due to some change.\n // Calling updateVersion() is not necessary for object transformations, recoloring,\n // or opacity adjustments as these are auto-detected. (default: undefined)\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n // Gsplat modifier to apply in object-space before any transformations.\n // A GsplatModifier is a dyno shader-graph block that transforms an input\n // gsplat: DynoVal to an output gsplat: DynoVal with gsplat.center\n // coordinate in object-space. (default: undefined)\n objectModifier?: GsplatModifier;\n objectModifiers?: GsplatModifier[];\n // Gsplat modifier to apply in world-space after transformations.\n // (default: undefined)\n worldModifier?: GsplatModifier;\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Set to true to load/use \"extended splat\" encoding with float32 x/y/z\n extSplats?: boolean | ExtSplats;\n // Set to true to output covariance splats for anisotropic scaling\n covSplats?: boolean;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Only create LoD if the input splat acount is above this (default: undefined=0)\n lodAbove?: number;\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Force enable/disable LoD (default: enabled iff packedSplats.lodSplats is not null)\n enableLod?: boolean;\n // LoD scale to apply @default 1.0\n lodScale?: number;\n // Foveation scale to apply behind viewer\n // (default: 1.0)\n behindFoveate?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction\n // with perfection foveation=1.0\n // (default: 0.0)\n coneFov0?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction. 0.0=disable\n // (default: 0.0)\n coneFov?: number;\n // Foveation scale to apply at the edge of the cone\n // (default: 1.0)\n coneFoveate?: number;\n paged?: boolean | PagedSplats | SplatPager;\n};\n\nexport type SplatMeshContext = {\n transform: SplatTransformer;\n viewToWorld: SplatTransformer;\n worldToView: SplatTransformer;\n viewToObject: SplatTransformer;\n covTransform: CovSplatTransformer;\n covViewToWorld: CovSplatTransformer;\n covWorldToView: CovSplatTransformer;\n covViewToObject: CovSplatTransformer;\n recolor: DynoVec4;\n time: DynoFloat;\n deltaTime: DynoFloat;\n numSplats: DynoInt;\n splats: SplatSource;\n enableLod: DynoBool;\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>;\n};\n\nexport interface SplatSource {\n prepareFetchSplat(): void;\n dispose(): void;\n\n getNumSplats(): number;\n hasRgbDir(): boolean;\n getNumSh(): number;\n setMaxSh(maxSh: number): void;\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n >;\n\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ): void;\n}\n\nexport class EmptySplatSource implements SplatSource {\n fetchDyno = new Dyno({\n inTypes: {},\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplat],\n statements: ({ outputs }) =>\n unindentLines(`\n ${outputs.gsplat}.flags = 0u;\n return;\n `),\n }).outputs.gsplat;\n\n prepareFetchSplat() {}\n dispose() {}\n\n getNumSplats() {\n return 0;\n }\n hasRgbDir() {\n return false;\n }\n getNumSh() {\n return 0;\n }\n setMaxSh(maxSh: number) {}\n\n fetchSplat({ index }: { index: DynoVal<\"int\"> }): DynoVal {\n return this.fetchDyno;\n }\n\n forEachSplat() {}\n}\n\nexport class SplatMesh extends SplatGenerator {\n // A Promise you can await to ensure fetching, parsing,\n // and initialization has completed\n initialized: Promise;\n // A boolean indicating whether initialization is complete\n isInitialized = false;\n\n // If you modify packedSplats you should set\n // splatMesh.packedSplats.needsUpdate = true to signal to Three.js that it\n // should re-upload the data to the underlying texture. Use this sparingly with\n // objects with smaller Gsplat counts as it requires a CPU-GPU data transfer for\n // each frame. Thousands to tens of thousands of Gsplats is fine. (See hands.ts\n // for an example of rendering \"Gsplat hands\" in WebXR using this technique.)\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n covSplats: boolean;\n splats?: SplatSource;\n lastSplats?: SplatSource;\n paged?: PagedSplats;\n\n // A THREE.Color that can be used to tint all splats in the mesh.\n // (default: new THREE.Color(1, 1, 1))\n recolor: THREE.Color = new THREE.Color(1, 1, 1);\n // Global opacity multiplier for all splats in the mesh. (default: 1)\n opacity = 1;\n\n // A SplatMeshContext consisting of useful scene and object dyno uniforms that can\n // be used to in the Gsplat processing pipeline, for example via objectModifier and\n // worldModifier. (created on construction)\n context: SplatMeshContext;\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n generatorDirty = true;\n\n objectModifiers?: GsplatModifier[];\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Set to true to have the viewToObject property in context be updated each frame.\n // If the mesh has extra.sh1 (first order spherical harmonics directional lighting)\n // this property will always be updated. (default: false)\n enableViewToObject = false;\n // Set to true to have context.viewToWorld updated each frame. (default: false)\n enableViewToWorld = false;\n // Set to true to have context.worldToView updated each frame. (default: false)\n enableWorldToView = false;\n\n // Optional SplatSkinning instance for animating splats with dual-quaternion\n // skeletal animation. (default: null)\n skinning: SplatSkinning | null = null;\n\n // Optional list of SplatEdits to apply to the mesh. If null, any SplatEdit\n // children in the scene graph will be added automatically. (default: null)\n edits: SplatEdit[] | null = null;\n editable: boolean;\n raycastable: boolean;\n minRaycastOpacity: number;\n raycastIndices?: { numSplats: number; indices: Uint32Array };\n // Compiled SplatEdits for applying SDF edits to splat RGBA + centers\n rgbaDisplaceEdits: SplatEdits | null = null;\n // Optional RgbaArray to overwrite splat RGBA values with custom values.\n // Useful for \"baking\" RGB and opacity edits into the SplatMesh. (default: null)\n splatRgba: RgbaArray | null = null;\n\n // Maximum Spherical Harmonics level to use. Call updateGenerator()\n // after changing. (default: 3)\n maxSh = 3;\n\n enableLod?: boolean;\n lodScale: number;\n behindFoveate?: number;\n coneFov0?: number;\n coneFov?: number;\n coneFoveate?: number;\n\n showLodPage?: number;\n showLodPageDyno = new DynoInt({ value: 0 });\n\n constructor(options: SplatMeshOptions = {}) {\n super({\n update: (context) => this.update(context),\n });\n\n if (options.splats) {\n this.splats = options.splats;\n this.numSplats = options.splats.getNumSplats();\n } else if (options.paged) {\n if (options.extSplats) {\n console.warn(\n \"To set extSplats with the paged option, set SparkRenderer.pagedExtSplats\",\n );\n }\n const rootUrl = options.url ?? \"\";\n if (options.paged === true) {\n this.paged = new PagedSplats({ rootUrl });\n } else if (options.paged instanceof PagedSplats) {\n this.paged = options.paged;\n } else if (options.paged instanceof SplatPager) {\n this.paged = new PagedSplats({ rootUrl, pager: options.paged });\n } else {\n throw new Error(\"Invalid paged option\");\n }\n this.splats = this.paged;\n } else if (options.extSplats) {\n this.extSplats =\n options.extSplats instanceof ExtSplats\n ? options.extSplats\n : new ExtSplats();\n options.extSplats = this.extSplats;\n this.numSplats = this.extSplats.numSplats;\n this.splats = this.extSplats;\n } else if (options.packedSplats) {\n this.packedSplats = options.packedSplats;\n this.packedSplats.splatEncoding = options.splatEncoding ?? {\n ...DEFAULT_SPLAT_ENCODING,\n };\n this.splats = this.packedSplats;\n } else {\n this.packedSplats = new PackedSplats();\n }\n\n this.editable = options.editable ?? true;\n this.raycastable = options.raycastable ?? true;\n this.minRaycastOpacity = options.minRaycastOpacity ?? 0.2;\n this.onFrame = options.onFrame;\n\n this.context = {\n transform: new SplatTransformer(),\n viewToWorld: new SplatTransformer(),\n worldToView: new SplatTransformer(),\n viewToObject: new SplatTransformer(),\n covTransform: new CovSplatTransformer(),\n covViewToWorld: new CovSplatTransformer(),\n covWorldToView: new CovSplatTransformer(),\n covViewToObject: new CovSplatTransformer(),\n recolor: new DynoVec4({\n value: new THREE.Vector4().setScalar(Number.NEGATIVE_INFINITY),\n }),\n time: new DynoFloat({ value: 0 }),\n deltaTime: new DynoFloat({ value: 0 }),\n numSplats: new DynoInt({ value: 0 }),\n splats: new EmptySplatSource(),\n enableLod: new DynoBool({ value: false }),\n lodIndices: new DynoUsampler2D({\n value: emptyLodIndices,\n key: \"lodIndices\",\n }),\n };\n\n this.covSplats = options.covSplats ?? false;\n if (this.covSplats && !this.extSplats) {\n throw new Error(\"CovSplats requires ExtSplats\");\n }\n\n this.objectModifiers = options.objectModifier\n ? [options.objectModifier]\n : undefined;\n this.worldModifiers = options.worldModifier\n ? [options.worldModifier]\n : undefined;\n\n if (options.objectModifiers) {\n this.objectModifiers = options.objectModifiers;\n }\n if (options.worldModifiers) {\n this.worldModifiers = options.worldModifiers;\n }\n\n this.enableLod = options.enableLod;\n this.lodScale = options.lodScale ?? 1.0;\n this.behindFoveate = options.behindFoveate;\n this.coneFov0 = options.coneFov0;\n this.coneFov = options.coneFov;\n this.coneFoveate = options.coneFoveate;\n\n this.updateGenerator();\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.constructSplats ||\n (options.packedSplats && !options.packedSplats.isInitialized) ||\n (this.extSplats && !this.extSplats.isInitialized)\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(async () => {\n this.updateGenerator();\n\n this.isInitialized = true;\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n return this;\n });\n } else {\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n // If onLoad returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n this.initialized = maybePromise.then(() => this);\n }\n }\n }\n\n // this.add(createRendererDetectionMesh());\n }\n\n async asyncInitialize(options: SplatMeshOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n } = options;\n if (this.packedSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const packedSplatsOptions = {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct: constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n };\n this.packedSplats.reinitialize(packedSplatsOptions);\n }\n await this.packedSplats.initialized;\n this.splats = this.packedSplats;\n } else if (this.extSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const construct = constructSplats as\n | ((splats: ExtSplats) => Promise)\n | undefined;\n this.extSplats.reinitialize({\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n });\n await this.extSplats.initialized;\n this.splats = this.extSplats;\n }\n }\n\n if (this.splats) {\n this.numSplats = this.splats.getNumSplats();\n this.updateGenerator();\n }\n }\n\n static dynoTime = new DynoFloat({ value: 0 });\n\n // Creates a new Gsplat with the provided parameters (all values in \"float\" space,\n // i.e. 0-1 for opacity and color) and adds it to the end of the packedSplats,\n // increasing numSplats by 1. If necessary, reallocates the buffer with an exponential\n // doubling strategy to fit the new data, so it's fairly efficient to just\n // pushSplat(...) each Gsplat you want to create in a loop.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n if (this.packedSplats) {\n this.packedSplats.pushSplat(center, scales, quaternion, opacity, color);\n } else if (this.extSplats) {\n this.extSplats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n\n // This method iterates over all Gsplats in this instance's packedSplats,\n // invoking the provided callback with index: number in 0..=(this.numSplats-1) and\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number (0..1), and color: THREE.Color (rgb values in 0..1).\n // Note that the objects passed in as center etc. are the same for every callback\n // invocation: these objects are reused for efficiency. Changing these values has\n // no effect as they are decoded/unpacked copies of the underlying data. To update\n // the packedSplats, call .packedSplats.setSplat(index, center, scales,\n // quaternion, opacity, color).\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n this.splats?.forEachSplat(callback);\n }\n\n // Call this when you are finished with the SplatMesh and want to free\n // any buffers it holds (via packedSplats).\n dispose() {\n if (\n this.splats &&\n this.splats !== this.packedSplats &&\n this.splats !== this.extSplats\n ) {\n this.splats.dispose();\n this.splats = undefined;\n }\n if (this.packedSplats) {\n this.packedSplats.dispose();\n this.packedSplats = undefined;\n }\n if (this.extSplats) {\n this.extSplats.dispose();\n this.extSplats = undefined;\n }\n }\n\n // Returns axis-aligned bounding box of the SplatMesh. If centers_only is true,\n // only the centers of the splats are used to compute the bounding box.\n // IMPORTANT: This should only be called after the SplatMesh is initialized.\n getBoundingBox(centers_only = true) {\n if (!this.initialized) {\n throw new Error(\n \"Cannot get bounding box before SplatMesh is initialized\",\n );\n }\n const minVec = new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n );\n const maxVec = new THREE.Vector3(\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n );\n const corners = new THREE.Vector3();\n const signs = [-1, 1];\n\n function callback(\n _index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n _opacity: number,\n _color: THREE.Color,\n ) {\n if (centers_only) {\n minVec.min(center);\n maxVec.max(center);\n } else {\n // Get the 8 corners of the AABB in local space\n for (const x of signs) {\n for (const y of signs) {\n for (const z of signs) {\n corners.set(x * scales.x, y * scales.y, z * scales.z);\n // Transform corner by rotation and position\n corners.applyQuaternion(quaternion);\n corners.add(center);\n minVec.min(corners);\n maxVec.max(corners);\n }\n }\n }\n }\n }\n\n this.splats?.forEachSplat(callback);\n const box = new THREE.Box3(minVec, maxVec);\n return box;\n }\n\n set objectModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.objectModifiers = [modifier];\n } else {\n this.objectModifiers = undefined;\n }\n }\n\n set worldModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.worldModifiers = [modifier];\n } else {\n this.worldModifiers = undefined;\n }\n }\n\n private constructGenerator(context: SplatMeshContext) {\n if (this.covSplats) {\n return this.constructCovGenerator(context);\n }\n\n const { transform, viewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.setMaxSh(this.maxSh);\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: viewToObject.translate,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n gsplat = this.skinning.modify(gsplat);\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // Transform from object to world-space\n gsplat = transform.applyGsplat(gsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitGsplat(gsplat).outputs.rgba);\n gsplat = combineGsplat({ gsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n gsplat = this.rgbaDisplaceEdits.modify(gsplat);\n }\n\n if (this.worldModifiers) {\n // Inject world-space Gsplat modifier dyno\n for (const modifier of this.worldModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { gsplat };\n },\n );\n this.generator = generator;\n this.covGenerator = undefined;\n }\n\n constructCovGenerator(context: SplatMeshContext) {\n // console.log(\"CovSplatMesh.constructCovGenerator\");\n const { covTransform, covViewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { covsplat: CovSplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: covViewToObject.offset,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n let covsplat = gsplatToCovSplat(gsplat);\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n covsplat = this.skinning.modifyCov(covsplat);\n }\n\n if (this.covObjectModifiers) {\n // Inject object-space CovSplat modifier dyno\n for (const modifier of this.covObjectModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // Transform from object to world-space\n covsplat = covTransform.applyCovSplat(covsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitCovSplat(covsplat).outputs.rgba);\n covsplat = combineCovSplat({ covsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n covsplat = this.rgbaDisplaceEdits.modifyCov(covsplat);\n }\n\n if (this.covWorldModifiers) {\n // Inject world-space CovSplat modifier dyno\n for (const modifier of this.covWorldModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { covsplat };\n },\n );\n this.generator = undefined;\n this.covGenerator = generator;\n }\n\n // Call this whenever something changes in the Gsplat processing pipeline,\n // for example changing maxSh or updating objectModifier or worldModifier.\n // Compiled generators are cached for efficiency and re-use when the same\n // pipeline structure emerges after successive changes.\n updateGenerator() {\n this.generatorDirty = true;\n }\n\n // This is called automatically by SparkRenderer and you should not have to\n // call it. It updates parameters for the generated pipeline and calls\n // updateGenerator() if the pipeline needs to change.\n update({\n renderer,\n time,\n deltaTime,\n viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices,\n }: FrameUpdateContext) {\n this.context.time.value = time;\n this.context.deltaTime.value = deltaTime;\n SplatMesh.dynoTime.value = time;\n this.showLodPageDyno.value = this.showLodPage ?? -1;\n\n const splats = this.splats ?? this.packedSplats ?? this.extSplats;\n if (splats) {\n this.context.splats = splats;\n }\n this.numSplats = this.context.splats.getNumSplats();\n\n let updated = false;\n\n const lodSplats = this.packedSplats?.lodSplats ?? this.extSplats?.lodSplats;\n this.context.enableLod.value = lodSplats != null && lodIndices != null;\n if (this.enableLod === false) {\n this.context.enableLod.value = false;\n }\n this.context.lodIndices.value = lodIndices?.texture ?? emptyLodIndices;\n\n if (this.context.enableLod.value && lodSplats) {\n this.context.splats = lodSplats;\n this.numSplats = lodIndices?.numSplats ?? 0;\n }\n\n this.context.numSplats.value = this.numSplats;\n\n if (this.context.splats !== this.lastSplats) {\n this.lastSplats = this.context.splats;\n this.generatorDirty = true;\n }\n\n if (!this.covSplats) {\n if (this.context.transform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.viewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.worldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const objectToWorld = new THREE.Matrix4().compose(\n this.context.transform.translate.value,\n this.context.transform.rotate.value,\n new THREE.Vector3().setScalar(this.context.transform.scale.value),\n );\n const worldToObject = objectToWorld.invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.viewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n } else {\n if (this.context.covTransform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.covViewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.covWorldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const worldToObject = this.matrixWorld.clone().invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.covViewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n }\n\n const newRecolor = new THREE.Vector4(\n this.recolor.r,\n this.recolor.g,\n this.recolor.b,\n this.opacity,\n );\n if (!newRecolor.equals(this.context.recolor.value)) {\n this.context.recolor.value.copy(newRecolor);\n updated = true;\n }\n\n const edits = this.editable ? (this.edits ?? []).concat(globalEdits) : [];\n if (this.editable && !this.edits) {\n // If we haven't set any explicit edits, add any child SplatEdits\n this.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n edits.push(node);\n }\n });\n }\n\n edits.sort((a, b) => a.ordering - b.ordering);\n const editsSdfs = edits.map((edit) => {\n if (edit.sdfs != null) {\n return { edit, sdfs: edit.sdfs };\n }\n const sdfs: SplatEditSdf[] = [];\n edit.traverseVisible((node) => {\n if (node instanceof SplatEditSdf) {\n sdfs.push(node);\n }\n });\n return { edit, sdfs };\n });\n\n if (editsSdfs.length > 0 && !this.rgbaDisplaceEdits) {\n const edits = editsSdfs.length;\n const sdfs = editsSdfs.reduce(\n (total, edit) => total + edit.sdfs.length,\n 0,\n );\n this.rgbaDisplaceEdits = new SplatEdits({\n maxEdits: edits,\n maxSdfs: sdfs,\n });\n this.generatorDirty = true;\n }\n if (this.rgbaDisplaceEdits) {\n const editResult = this.rgbaDisplaceEdits.update(editsSdfs);\n updated ||= editResult.updated;\n if (editResult.dynoUpdated) {\n this.generatorDirty = true;\n }\n }\n\n if (this.generatorDirty) {\n this.constructGenerator(this.context);\n this.generatorDirty = false;\n updated = true;\n }\n\n if (updated) {\n this.updateVersion();\n }\n\n this.onFrame?.({ mesh: this, time, deltaTime });\n }\n\n // This method conforms to the standard THREE.Raycaster API, performing object-ray\n // intersections using this method to populate the provided intersects[] array\n // with each intersection point.\n raycast(\n raycaster: THREE.Raycaster,\n intersects: {\n distance: number;\n point: THREE.Vector3;\n object: THREE.Object3D;\n }[],\n ) {\n if (\n !wasm.isInitialized() ||\n !this.raycastable ||\n (!this.packedSplats && !this.extSplats && !this.paged)\n ) {\n return;\n }\n const paged = this.paged != null;\n const ext = paged\n ? (this.paged?.pager?.extSplats ?? false)\n : this.extSplats != null;\n\n const { near, far, ray } = raycaster;\n const worldToMesh = this.matrixWorld.clone().invert();\n const worldToMeshRot = new THREE.Matrix3().setFromMatrix4(worldToMesh);\n const origin = ray.origin.clone().applyMatrix4(worldToMesh);\n const direction = ray.direction.clone().applyMatrix3(worldToMeshRot);\n\n const buffer = get_raycast_buffer();\n const bufferSize = buffer.length / 4;\n let intersections = 0;\n\n const numSplats =\n this.raycastIndices?.numSplats ??\n (paged ? this.paged?.numSplats : this.context.numSplats.value) ??\n 0;\n const indices =\n this.raycastIndices?.indices ??\n (paged\n ? (this.paged?.dynoIndices.value.image.data as Uint32Array)\n : this.context.enableLod.value\n ? (this.context.lodIndices.value.image.data as Uint32Array)\n : null) ??\n null;\n\n if (!ext) {\n const packed = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.packedSplats?.lodSplats?.packedArray\n : this.packedSplats?.packedArray;\n if (!packed) {\n return;\n }\n const splatEncoding = paged\n ? this.paged?.splatEncoding\n : this.packedSplats?.splatEncoding;\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(packed.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = packed[index4];\n buffer[i4 + 1] = packed[index4 + 1];\n buffer[i4 + 2] = packed[index4 + 2];\n buffer[i4 + 3] = packed[index4 + 3];\n }\n }\n\n const newIntersections = raycast_packed_buffer(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n splatEncoding?.lodOpacity ?? false,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n } else {\n const buffer2 = get_raycast_buffer2();\n const ext1 = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[0]\n : this.extSplats?.extArrays[0];\n const ext2 = paged\n ? (this.paged?.pager?.extTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[1]\n : this.extSplats?.extArrays[1];\n if (!ext1 || !ext2) {\n return;\n }\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(ext1.subarray(base * 4, (base + count) * 4));\n buffer2.set(ext2.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = ext1[index4];\n buffer[i4 + 1] = ext1[index4 + 1];\n buffer[i4 + 2] = ext1[index4 + 2];\n buffer[i4 + 3] = ext1[index4 + 3];\n buffer2[i4] = ext2[index4];\n buffer2[i4 + 1] = ext2[index4 + 1];\n buffer2[i4 + 2] = ext2[index4 + 2];\n buffer2[i4 + 3] = ext2[index4 + 3];\n }\n }\n\n const newIntersections = raycast_ext_buffers(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n }\n\n for (const distance of SplatMesh.raycastBuffer.subarray(0, intersections)) {\n const point = ray.direction\n .clone()\n .multiplyScalar(distance)\n .add(ray.origin);\n intersects.push({\n distance,\n point,\n object: this,\n });\n }\n }\n\n static raycastBuffer = new Float32Array(1024);\n\n private appendRaycastBuffer(count: number, additional: Float32Array) {\n const total = count + additional.length;\n let capacity = SplatMesh.raycastBuffer.length;\n\n if (total > capacity) {\n while (capacity < total) {\n capacity *= 2;\n }\n const newBuffer = new Float32Array(capacity);\n newBuffer.set(SplatMesh.raycastBuffer.subarray(0, count));\n SplatMesh.raycastBuffer = newBuffer;\n }\n\n SplatMesh.raycastBuffer.set(additional, count);\n return count + additional.length;\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n if (this.packedSplats) {\n await this.packedSplats.createLodSplats({ quality, rgbaArray });\n } else if (this.extSplats) {\n await this.extSplats.createLodSplats({ quality, rgbaArray });\n }\n }\n}\n\nexport function maybeLookupIndex(\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>,\n index: DynoVal<\"int\">,\n numSplats: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n showLodPage: DynoVal<\"int\">,\n) {\n return dyno({\n inTypes: {\n lodIndices: \"usampler2D\",\n index: \"int\",\n numSplats: \"int\",\n enableLod: \"bool\",\n showLodPage: \"int\",\n },\n outTypes: {\n index: \"int\",\n },\n inputs: {\n lodIndices,\n index,\n numSplats,\n enableLod,\n showLodPage,\n },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n int index = ${inputs.index};\n if (${inputs.showLodPage} < 0) {\n if (index >= ${inputs.numSplats}) {\n return;\n }\n if (${inputs.enableLod}) {\n ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14);\n uint splatIndex = texelFetch(${inputs.lodIndices}, lodIndexCoord, 0)[index & 3];\n ${outputs.index} = int(splatIndex);\n } else {\n ${outputs.index} = index;\n }\n } else {\n int start = ${inputs.showLodPage} << 16;\n if (index >= 65536) {\n return;\n }\n ${outputs.index} = start + index;\n }\n `),\n }).outputs.index;\n}\n\nexport function maybeInjectSplatRgba(\n gsplat: DynoVal,\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n): DynoVal {\n return dyno({\n inTypes: {\n gsplat: Gsplat,\n rgba: TRgbaArray,\n index: \"int\",\n enableLod: \"bool\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, rgba, index, enableLod },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n ${outputs.gsplat} = ${inputs.gsplat};\n if (!${inputs.enableLod} && (${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.gsplat}.rgba = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n }\n `),\n }).outputs.gsplat;\n}\n\nexport const emptyLodIndices = (() => {\n const texture = new THREE.DataTexture(\n new Uint32Array(16384),\n 4096,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n})();\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\nimport { Readback } from \"./Readback\";\nimport { SplatEdit } from \"./SplatEdit\";\nimport {\n type CovSplatGenerator,\n type GsplatGenerator,\n SplatGenerator,\n} from \"./SplatGenerator\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines\";\nimport {\n type CovSplat,\n Dyno,\n DynoBool,\n DynoProgram,\n DynoProgramTemplate,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n combineCovSplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n gsplatToCovSplat,\n mul,\n outputCovSplat,\n outputCovSplatDepth,\n outputExtCovSplat,\n outputExtendedSplat,\n outputPackedSplat,\n outputSplatDepth,\n splitCovSplat,\n splitGsplat,\n sub,\n unindentLines,\n} from \"./dyno\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, threeMrtArray } from \"./utils\";\n\n// A GeneratorMapping describes a Gsplat range that was generated, including\n// which generator and its version number.\nexport type GeneratorMapping = {\n node: SplatGenerator;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n version: number;\n mappingVersion?: number;\n base: number;\n count: number;\n};\n\nexport class SplatAccumulator {\n time = 0;\n deltaTime = 0;\n viewToWorld = new THREE.Matrix4();\n viewOrigin = new THREE.Vector3();\n viewDirection = new THREE.Vector3();\n static viewCenterUniform = new DynoVec3({ value: new THREE.Vector3() });\n static viewDirUniform = new DynoVec3({ value: new THREE.Vector3() });\n static sortRadialUniform = new DynoBool({ value: true });\n maxSplats = 0;\n numSplats = 0;\n target: THREE.WebGLArrayRenderTarget | null = null;\n mapping: GeneratorMapping[] = [];\n version = -1;\n mappingVersion = -1;\n extSplats: boolean;\n covSplats: boolean;\n readback: Readback | null = null;\n readbackSplats: DynoUsampler2DArray<\"extSplats\", THREE.DataArrayTexture>[] =\n [];\n\n constructor({\n extSplats,\n covSplats,\n }: { extSplats?: boolean; covSplats?: boolean } = {}) {\n if (!threeMrtArray) {\n throw new Error(\"Spark requires THREE.js r179 or above\");\n }\n this.extSplats = extSplats ?? true;\n this.covSplats = covSplats ?? false;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = null;\n }\n }\n\n // Returns a THREE.DataArrayTexture representing the NewSplatAccumulator\n // content as 2 x Uint32x4 data array textures (2048 x 2048 x 2048 in size)\n getTextures(): THREE.DataArrayTexture[] {\n if (this.target) {\n return this.target.textures;\n }\n return SplatAccumulator.emptyTextures;\n }\n\n static emptyTexture = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTextures = (() => {\n return [SplatAccumulator.emptyTexture, SplatAccumulator.emptyTexture];\n })();\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Ensures our NewSplatAccumulator.target render target has enough space\n // to generate maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate({ maxSplats }: { maxSplats: number }) {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n this.dispose();\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n format: THREE.RGBAIntegerFormat,\n type: THREE.UnsignedIntType,\n });\n this.target.scissorTest = true;\n\n if (this.extSplats) {\n const target2 = this.target.texture.clone();\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target2, target3];\n } else {\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target3];\n }\n\n return true;\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n activeCubeFace: renderer.getActiveCubeFace(),\n activeMipmapLevel: renderer.getActiveMipmapLevel(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n activeCubeFace: number;\n activeMipmapLevel: number;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(\n state.target,\n state.activeCubeFace,\n state.activeMipmapLevel,\n );\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(\n generator?: GsplatGenerator,\n covGenerator?: CovSplatGenerator,\n ) {\n const theGenerator = generator ?? covGenerator;\n if (!theGenerator) {\n throw new Error(\"Either generator or covGenerator must be provided\");\n }\n\n let program = SplatAccumulator.generatorProgram.get(theGenerator);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n if (generator) {\n generator.inputs.index = index;\n }\n if (covGenerator) {\n covGenerator.inputs.index = index;\n }\n\n if (this.extSplats) {\n if (!this.covSplats) {\n if (generator) {\n const output = outputExtendedSplat(generator.outputs.gsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n if (covGenerator) {\n const output = outputExtCovSplat(covGenerator.outputs.covsplat);\n roots.push(output);\n } else if (generator) {\n const covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n const output = outputExtCovSplat(covsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n }\n } else {\n if (!this.covSplats) {\n if (generator) {\n const centerSubView = sub(\n splitGsplat(generator.outputs.gsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n // Use expanded LoD opacity encoding\n const halfAlpha = mul(\n splitGsplat(generator.outputs.gsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n const gsplat = combineGsplat({\n gsplat: generator.outputs.gsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputPackedSplat(\n gsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n let covsplat: DynoVal;\n if (covGenerator) {\n covsplat = covGenerator.outputs.covsplat;\n } else if (generator) {\n covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n const centerSubView = sub(\n splitCovSplat(covsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n const halfAlpha = mul(\n splitCovSplat(covsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n covsplat = combineCovSplat({\n covsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputCovSplat(\n covsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n }\n if (!generator) {\n throw new Error(\"Generator must be provided\");\n }\n }\n if (generator) {\n const outputDepth = outputSplatDepth(\n generator.outputs.gsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n if (covGenerator) {\n const outputDepth = outputCovSplatDepth(\n covGenerator.outputs.covsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n return undefined;\n },\n );\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: {},\n template: this.extSplats\n ? SplatAccumulator.programExtTemplate\n : SplatAccumulator.programTemplate,\n // consoleLog: true,\n });\n\n SplatAccumulator.generatorProgram.set(theGenerator, program);\n }\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n\n const material = program.prepareMaterial();\n SplatAccumulator.fullScreenQuad.material = material;\n return { program, material };\n }\n\n static programExtTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4x2Vec4Template,\n );\n static programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Vec4Template,\n );\n static generatorProgram = new WeakMap<\n GsplatGenerator | CovSplatGenerator,\n DynoProgram\n >();\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n generate({\n generator,\n covGenerator,\n base,\n count,\n renderer,\n }: {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureGenerate\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(\n generator,\n covGenerator,\n );\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n SplatAccumulator.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial,\n renderSize,\n previous,\n lodInstances,\n }: {\n renderer: THREE.WebGLRenderer;\n scene: THREE.Scene;\n time: number;\n camera: THREE.Camera;\n sortRadial: boolean;\n renderSize: THREE.Vector2;\n previous: SplatAccumulator;\n lodInstances?: Map<\n SplatMesh,\n { numSplats: number; texture: THREE.DataTexture }\n >;\n }) {\n this.viewToWorld.copy(camera.matrixWorld);\n camera.getWorldPosition(this.viewOrigin);\n camera.getWorldDirection(this.viewDirection);\n SplatAccumulator.viewCenterUniform.value.copy(this.viewOrigin);\n SplatAccumulator.viewDirUniform.value.copy(this.viewDirection);\n SplatAccumulator.sortRadialUniform.value = sortRadial;\n\n this.time = time;\n this.deltaTime = time - previous.time;\n\n const allGenerators: SplatGenerator[] = [];\n scene.traverse((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n allGenerators.push(node);\n }\n }\n });\n\n const globalEditsSet = new Set();\n scene.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n let ancestor = node.parent;\n while (ancestor != null && !(ancestor instanceof SplatMesh)) {\n ancestor = ancestor.parent;\n }\n if (ancestor == null) {\n // Not part of a SplatMesh so it's a global edit\n globalEditsSet.add(node);\n }\n }\n });\n const globalEdits = Array.from(globalEditsSet);\n\n for (const object of allGenerators) {\n try {\n object.frameUpdate?.({\n renderer,\n object,\n time: this.time,\n deltaTime: this.deltaTime,\n viewToWorld: this.viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices:\n lodInstances && object instanceof SplatMesh\n ? lodInstances.get(object)\n : undefined,\n });\n } catch (error) {\n console.error(\"frameUpdate error\", error);\n object.generator = undefined;\n object.covGenerator = undefined;\n object.generatorError = error;\n }\n }\n\n const visibleGenerators: SplatGenerator[] = [];\n scene.traverseVisible((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n visibleGenerators.push(node);\n }\n }\n });\n\n const splatCounts = visibleGenerators.map(\n (generator) => generator.numSplats,\n );\n const { maxSplats, mapping: baseCounts } =\n this.generateMapping(splatCounts);\n\n const previousMappings = previous.mapping.reduce((mappings, mapping) => {\n mappings.set(mapping.node, mapping);\n return mappings;\n }, new Map());\n\n this.mapping = [];\n this.numSplats = 0;\n\n baseCounts.forEach(({ base, count }, index) => {\n const node = visibleGenerators[index];\n const previousNode = previousMappings.get(node);\n if (previousNode && previousNode.count !== node.numSplats) {\n node.updateMappingVersion();\n }\n\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n const { version, mappingVersion } = node;\n this.mapping.push({\n node,\n generator,\n covGenerator,\n version,\n mappingVersion,\n base,\n count,\n });\n this.numSplats = Math.max(this.numSplats, base + count);\n }\n });\n const { splatsUpdated, mappingUpdated } = previous.checkVersions(\n this.mapping,\n );\n this.version = previous.version + (splatsUpdated ? 1 : 0);\n this.mappingVersion = previous.mappingVersion + (mappingUpdated ? 1 : 0);\n\n return {\n sameMapping: !mappingUpdated,\n version: this.version,\n mappingVersion: this.mappingVersion,\n visibleGenerators,\n generate: () => {\n this.ensureGenerate({ maxSplats });\n\n for (const { node, base, count } of this.mapping) {\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n this.generate({ generator, covGenerator, base, count, renderer });\n }\n }\n },\n readback: async () => {\n const textures = this.getTextures();\n if (this.readbackSplats.length === 0) {\n this.readbackSplats = [\n new DynoUsampler2DArray({ value: textures[0], key: \"extSplats\" }),\n new DynoUsampler2DArray({ value: textures[1], key: \"extSplats\" }),\n ];\n }\n this.readbackSplats[0].value = textures[0];\n this.readbackSplats[1].value = textures[1];\n\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n const readback = this.readback;\n const words = this.extSplats ? 8 : 4;\n const array = readback.ensureBuffer(\n this.numSplats * words,\n new Uint32Array(0),\n );\n\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n const rgba8 = new Dyno({\n inTypes: {\n index: \"int\",\n extSplats1: \"usampler2DArray\",\n extSplats2: \"usampler2DArray\",\n },\n outTypes: { rgba8: \"vec4\" },\n inputs: {\n index,\n extSplats1: this.readbackSplats[0],\n extSplats2: this.readbackSplats[1],\n },\n statements: ({ inputs, outputs }) => {\n if (this.extSplats) {\n return unindentLines(`\n int indexDiv8 = ${inputs.index} >> 3;\n ivec3 coord = splatTexCoord(indexDiv8);\n uvec4 packedData;\n if ((${inputs.index} & 4) == 0) {\n packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n } else {\n packedData = texelFetch(${inputs.extSplats2}, coord, 0);\n }\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n }\n return unindentLines(`\n int indexDiv4 = ${inputs.index} >> 2;\n ivec3 coord = splatTexCoord(indexDiv4);\n uvec4 packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n },\n }).outputs.rgba8;\n return { rgba8 };\n },\n );\n\n return await readback.renderReadback({\n reader,\n count: this.numSplats * words,\n renderer,\n readback: array,\n });\n },\n };\n }\n\n // Check if this accumulator has exactly the same generator mapping as\n // the previous one. If so, we can reuse the Gsplat sort order.\n checkVersions(otherMapping: GeneratorMapping[]) {\n if (this.mapping.length !== otherMapping.length) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const mappingUpdated = this.mapping.some((item, i) => {\n const other = otherMapping[i];\n return (\n item.node !== other.node ||\n item.base !== other.base ||\n item.count !== other.count ||\n item.mappingVersion !== other.mappingVersion\n );\n });\n if (mappingUpdated) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const splatsUpdated = this.mapping.some((item, i) => {\n return item.version !== otherMapping[i].version;\n });\n return { splatsUpdated, mappingUpdated };\n }\n}\n","import * as THREE from \"three\";\n\n// SplatGeometry is an internal class used by SparkRenderer to render a collection\n// of Gsplats in a single draw call by extending THREE.InstancedBufferGeometry.\n// Each Gsplat is drawn as two triangles, with the order of the Gsplats determined\n// by a texture lookup via gl_InstanceID.\n\nexport class SplatGeometry extends THREE.InstancedBufferGeometry {\n constructor() {\n super();\n this.setAttribute(\"position\", new THREE.BufferAttribute(QUAD_VERTICES, 3));\n this.setIndex(new THREE.BufferAttribute(QUAD_INDICES, 1));\n }\n}\n\n// Each instance draws to triangles covering a quad over coords (-1,-1,0)..(1,1,0)\nconst QUAD_VERTICES = new Float32Array([\n -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0,\n]);\n\nconst QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]);\n","import * as THREE from \"three\";\nimport {\n ExtSplats,\n PackedSplats,\n PagedSplats,\n Readback,\n type SplatGenerator,\n SplatMesh,\n SplatPager,\n} from \".\";\nimport { SplatAccumulator } from \"./SplatAccumulator\";\nimport { SplatGeometry } from \"./SplatGeometry\";\nimport { SplatWorker } from \"./SplatWorker\";\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { getShaders } from \"./shaders\";\nimport {\n isAndroid,\n isIos,\n isMobile,\n isOculus,\n isVisionPro,\n uploadU32DataTextureRows,\n} from \"./utils\";\n\nexport interface SparkRendererOptions {\n /**\n * Pass in your THREE.WebGLRenderer instance so Spark can perform work\n * outside the usual render loop. Should be created with antialias: false\n * (default setting) as WebGL anti-aliasing doesn't improve Gaussian Splatting\n * rendering and significantly reduces performance.\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Callback function to be called when SparkRenderer needs to re-render,\n * for example when splat sort order or LoD updates complete.\n */\n onDirty?: () => void;\n /**\n * Whether to use premultiplied alpha when accumulating splat RGB\n * @default true\n */\n premultipliedAlpha?: boolean;\n /**\n * Pass in a THREE.Timer to synchronize time-based effects across different\n * systems. Alternatively, you can set the property time directly.\n * (default: new THREE.Timer)\n */\n timer?: THREE.Timer;\n /**\n * Controls whether to check and automatically update Gsplat collection\n * each frame render.\n * @default true\n */\n autoUpdate?: boolean;\n /**\n * Controls whether to update the Gsplats before or after rendering. For WebXR\n * this is set to false in order to complete rendering as soon as possible.\n * @default true (if not WebXR)\n */\n preUpdate?: boolean;\n /**\n * Maximum standard deviations from the center to render Gaussians. Values\n * Math.sqrt(4)..Math.sqrt(9) produce acceptable results and can be tweaked for\n * performance.\n * @default Math.sqrt(8)\n */\n maxStdDev?: number;\n /*\n **\n * Minimum pixel radius for splat rendering.\n * @default 0.0\n */\n minPixelRadius?: number;\n /**\n * Maximum pixel radius for splat rendering.\n * @default 512.0\n */\n maxPixelRadius?: number;\n /**\n * Whether to use extended Gsplat encoding for intermediary accumulator splats.\n * @default false\n */\n accumExtSplats?: boolean;\n /**\n * Whether to use covariance Gsplat encoding for intermediary splats.\n * @default false\n */\n covSplats?: boolean;\n /**\n * Minimum alpha value for splat rendering.\n * @default 0.5 * (1.0 / 255.0)\n */\n minAlpha?: number;\n /**\n * Enable 2D Gaussian splatting rendering ability. When this mode is enabled,\n * any scale x/y/z component that is exactly 0 (minimum quantized value) results\n * in the other two non-0 axis being interpreted as an oriented 2D Gaussian Splat,\n * rather instead of the usual projected 3DGS Z-slice. When reading PLY files,\n * scale values less than e^-30 will be interpreted as 0.\n * @default false\n */\n enable2DGS?: boolean;\n /**\n * Enable alternative ray-splat max response evaluation, used by 3DGUT (unscented transform),\n * 3DGRT, and HTGS.\n * @default false\n */\n // enableRayEval?: boolean;\n /**\n * Scalar value to add to 2D splat covariance diagonal, effectively blurring +\n * enlarging splats. In scenes trained without the Gsplat anti-aliasing tweak\n * this value was typically 0.3, but with anti-aliasing it is 0.0\n * @default 0.0\n */\n preBlurAmount?: number;\n /**\n * Scalar value to add to 2D splat covarianve diagonal, with opacity adjustment\n * to correctly account for \"blurring\" when anti-aliasing. Typically 0.3\n * (equivalent to approx 0.5 pixel radius) in scenes trained with anti-aliasing.\n */\n blurAmount?: number;\n /**\n * Depth-of-field distance to focal plane\n */\n focalDistance?: number;\n /**\n * Full-width angle of aperture opening (in radians), 0.0 to disable\n * @default 0.0\n */\n apertureAngle?: number;\n /**\n * Modulate Gaussian kernel falloff. 0 means \"no falloff, flat shading\",\n * while 1 is the normal Gaussian kernel.\n * @default 1.0\n */\n falloff?: number;\n /**\n * X/Y clipping boundary factor for Gsplat centers against view frustum.\n * 1.0 clips any centers that are exactly out of bounds, while 1.4 clips\n * centers that are 40% beyond the bounds.\n * @default 1.4\n */\n clipXY?: number;\n /**\n * Parameter to adjust projected splat scale calculation to match other renderers,\n * similar to the same parameter in the MKellogg 3DGS renderer. Higher values will\n * tend to sharpen the splats. A value 2.0 can be used to match the behavior of\n * the PlayCanvas renderer.\n * @default 1.0\n */\n focalAdjustment?: number;\n /**\n * Whether to sort splats radially (geometric distance) from the viewpoint (true)\n * or by Z-depth (false). Most scenes are trained with the Z-depth `sort `metric\n * and will render more accurately at certain viewpoints. However, radial sorting\n * is more stable under viewpoint rotations.\n * @default true\n */\n sortRadial?: boolean;\n /**\n * Minimum interval between sort calls in milliseconds.\n * @default 0\n */\n minSortIntervalMs?: number;\n /*\n * Flag to control whether LoD is enabled. @default true\n */\n enableLod?: boolean;\n /**\n * Whether to drive LOD updates (compute lodInstances, update pager, etc.).\n * Set to false to use LOD instances from another renderer without driving updates.\n * Only has effect if enableLod is true.\n * @default true (if enableLod is true)\n */\n enableDriveLod?: boolean;\n /**\n * Whether to enable page fetching for LoD.\n * @default true\n */\n enableLodFetching?: boolean;\n /**\n * Set the target # splats for LoD. If this isn't set then default base LoD splat\n * counts will apply: 500K-750K for WebXR, 1-1.5M for mobile, and 2.5M for desktop.\n * @default 500K-2500K depending on platform\n */\n lodSplatCount?: number;\n /**\n * Scale factor for target # splats for LoD. 2.0 means 2x the base LoD splat count.\n * This is the easiest LoD parameter to adjust and will scale detail appropriately\n * for the platform.\n * @default 1.0\n */\n lodSplatScale?: number;\n /**\n * Determines the minimum screen pixel size of LoD splats. The default 1.0 means\n * the splat LoD tree will pick splats that are no smaller than 1 pixel in size.\n * Setting this to a higher value as high as 5.0 will often be indistinguishable\n * but will avoid wasting rendering capacity on tiny splats.\n * @default 1.0\n */\n lodRenderScale?: number;\n /**\n * Inflate LoD splats to ensure opacity stays <= 1.0, producing a softer appearance.\n * @default false\n */\n lodInflate?: boolean;\n lodTraverseMode?: \"dynamic\" | \"standard\";\n /**\n * Whether to use extended Gsplat encoding for paged splats, useful for eliminating\n * quantization artifacts from splat scenes with large internal position coordinates.\n * @default false\n */\n pagedExtSplats?: boolean;\n /**\n * Allocation size of paged splats. This must be a multiple of the page size (65536).\n * @default 16777216 (256 * 65536) for desktop, 6291456 for iOS, 8,388,608 for other mobile\n */\n maxPagedSplats?: number;\n /**\n * Number of parallel chunk fetchers for LoD. These are run within a shared pool\n * of 4 background WebWorker threads, so setting it above 4 will not have any\n * effect. Setting it 3 leaves one spare worker for other loading/decoding tasks.\n * @default 3\n */\n numLodFetchers?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with no foveation applied (full resolution, foveate=1.0). Set to 0 to disable.\n * @default 90.0\n */\n coneFov0?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with reduced resolution specified by `coneFoveate`. Foveation will be applied\n * smoothly from 1.0 down to `coneFoveate` as you move outward from\n * `coneFov0` to `coneFov`. Set to 0 to disable.\n * @default 120.0\n */\n coneFov?: number;\n /**\n * Foveation scale to apply to LoD splats at the edge of coneFov. Foveation will\n * be applied smoothly from `coneFoveate` down to `behindFoveate` as you move\n * outward from `coneFov` to 180 degrees (behind the viewer).\n * @default 0.4\n */\n coneFoveate?: number;\n /**\n * Foveation scale to apply to LoD splats behind the viewer. Setting this to 0.1\n * for example will result in splats 10x larger than inside the viewing frustum.\n * @default 0.2\n */\n behindFoveate?: number;\n /**\n * How many LoD splats to generate for raycasting\n * @default 10000-25000 iff default canvas target is used\n */\n lodRaycast?: number;\n lodRaycastIntervalMs?: number;\n /**\n * Configures an offline render target for the SparkRenderer (as opposed to\n * rendering to the canvas). This is useful for rendering environment maps,\n * additional viewpoints, or video frame rendering.\n * @default undefined\n */\n target?: {\n /**\n * Width of the render target in pixels.\n */\n width: number;\n /**\n * Height of the render target in pixels.\n */\n height: number;\n /**\n * If you want to be able to render a scene that depends on this target's\n * output (for example, a recursive viewport), set this to true to enable\n * double buffering.\n * @default false\n */\n doubleBuffer?: boolean;\n /**\n * Super-sampling factor for the render target. Values 1-4 are supported.\n * Note that re-sampling back down to .width x .height is done on the CPU\n * with simple averaging only when calling readTarget().\n * @default 1\n */\n superXY?: number;\n } & THREE.RenderTargetOptions;\n /**\n * Extra uniform values to pass to the shader.\n * @default undefined = no extra uniforms\n */\n extraUniforms?: Record;\n /**\n * Replace the default `splatVertex.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatVertex.glsl` shader\n */\n vertexShader?: string;\n /**\n * Replace the default `splatFragment.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatFragment.glsl` shader\n */\n fragmentShader?: string;\n /**\n * Set the splat shader material to be transparent which determines if the\n * splats are rendered during the first opaque THREE.js render pass or the\n * second transparent render pass.\n * @default undefined = true\n */\n transparent?: boolean;\n /**\n * Set the splat shader material to enable depth testing which determines if the\n * splats respect the Z depth buffer and blend with other opaque objects in the scene.\n * @default undefined = true\n */\n depthTest?: boolean;\n /**\n * Set the splat shader material to enable depth writing which determines if the\n * splats write to the Z depth buffer. Note that enabling this may produce\n * undesirable results because most of the Gsplat is transparent.\n * @default undefined = false\n */\n depthWrite?: boolean;\n}\n\nexport class SparkRenderer extends THREE.Mesh {\n readonly renderer: THREE.WebGLRenderer;\n readonly material: THREE.ShaderMaterial;\n readonly uniforms: ReturnType;\n\n autoUpdate: boolean;\n preUpdate: boolean;\n static sparkOverride?: SparkRenderer;\n\n renderSize = new THREE.Vector2();\n maxStdDev: number;\n minPixelRadius: number;\n maxPixelRadius: number;\n accumExtSplats: boolean;\n covSplats: boolean;\n minAlpha: number;\n enable2DGS: boolean;\n // enableRayEval: boolean;\n preBlurAmount: number;\n blurAmount: number;\n focalDistance: number;\n apertureAngle: number;\n falloff: number;\n clipXY: number;\n focalAdjustment: number;\n\n sortRadial: boolean;\n minSortIntervalMs: number;\n\n timer: THREE.Timer;\n time?: number;\n lastFrame = -1;\n updateTimeoutId = -1;\n onDirty?: () => void;\n dirty: boolean;\n\n orderingTexture: THREE.DataTexture | null = null;\n maxSplats = 0;\n activeSplats = 0;\n\n display: SplatAccumulator;\n current: SplatAccumulator;\n accumulators: SplatAccumulator[] = [];\n\n sorting = false;\n sortDirty = false;\n lastSortTime = 0;\n sortWorker: SplatWorker | null = null;\n sortTimeoutId = -1;\n sortedCenter = new THREE.Vector3().setScalar(Number.NEGATIVE_INFINITY);\n sortedDir = new THREE.Vector3().setScalar(0);\n readback32 = new Uint32Array(0);\n\n enableLod: boolean;\n enableDriveLod: boolean;\n enableLodFetching: boolean;\n lodSplatCount?: number;\n lodSplatScale: number;\n lodRenderScale: number;\n lodInflate: boolean;\n lodTraverseMode: \"dynamic\" | \"standard\";\n pagedExtSplats: boolean;\n maxPagedSplats: number;\n numLodFetchers: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n\n lodRaycast?: number;\n lodRaycastIntervalMs: number;\n lastLodRaycastTime = 0;\n\n lodWorker: SplatWorker | null = null;\n lodMeshes: { mesh: SplatMesh; version: number }[] = [];\n lodDirty = false;\n lodIds: Map<\n PackedSplats | ExtSplats | PagedSplats,\n { lodId: number; lastTouched: number; rootPage?: number }\n > = new Map();\n lodIdToSplats: Map =\n new Map();\n lodInitQueue: (PackedSplats | ExtSplats | PagedSplats)[] = [];\n lastLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n currentLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n lodPosOverride?: THREE.Vector3;\n lodQuatOverride?: THREE.Quaternion;\n lodInstances: Map<\n SplatMesh,\n {\n lodId: number;\n numSplats: number;\n indices: Uint32Array;\n texture: THREE.DataTexture;\n }\n > = new Map();\n lodUpdates: {\n lodId: number;\n pageBase: number;\n chunkBase: number;\n count: number;\n lodTreeData?: Uint32Array;\n }[] = [];\n lastTraverseTime = 0;\n lastPixelLimit?: number;\n\n pager?: SplatPager;\n pagerId = 0;\n // prefetchCameras: THREE.Camera[] = [];\n // prefetchLodScale = 1.0;\n // prefetchMeshesCache: SplatMesh[] = [];\n // prefetchMeshesCacheScene?: THREE.Scene;\n\n target?: THREE.WebGLRenderTarget;\n backTarget?: THREE.WebGLRenderTarget;\n superPixels?: Uint8Array;\n targetPixels?: Uint8Array;\n superXY = 1;\n\n flushAfterGenerate = false;\n flushAfterRead = false;\n readPause = 1;\n sortPause = 0;\n sortDelay = 0;\n\n constructor(options: SparkRendererOptions) {\n if (!options) {\n throw new Error(\"SparkRenderer options are required\");\n }\n if (!options.renderer) {\n throw new Error(\"renderer is required in SparkRenderer options\");\n }\n\n const uniforms = SparkRenderer.makeUniforms();\n Object.assign(uniforms, options.extraUniforms ?? {});\n\n const shaders = getShaders();\n const premultipliedAlpha = options.premultipliedAlpha ?? true;\n const geometry = new SplatGeometry();\n const material = new THREE.ShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: options.vertexShader ?? shaders.splatVertex,\n fragmentShader: options.fragmentShader ?? shaders.splatFragment,\n uniforms,\n premultipliedAlpha,\n transparent: options.transparent ?? true,\n depthTest: options.depthTest ?? true,\n depthWrite: options.depthWrite ?? false,\n side: THREE.DoubleSide,\n allowOverride: false,\n });\n\n super(geometry, material);\n this.material = material;\n this.uniforms = uniforms;\n // Disable frustum culling because we want to always draw them all\n // and cull Gsplats individually in the shader\n this.frustumCulled = false;\n\n // By default SparkRenderer will only render for layer 0\n // this.layers.enableAll();\n\n // sparkRendererInstance = this;\n this.renderer = options.renderer;\n this.onDirty = options.onDirty;\n this.dirty = true;\n this.autoUpdate = options.autoUpdate ?? true;\n this.preUpdate = options.preUpdate ?? true;\n\n this.maxStdDev = options.maxStdDev ?? Math.sqrt(8.0);\n this.minPixelRadius = options.minPixelRadius ?? 0.0; //1.6;\n this.maxPixelRadius = options.maxPixelRadius ?? 512.0;\n this.accumExtSplats = options.accumExtSplats ?? false;\n this.covSplats = options.covSplats ?? false;\n this.minAlpha = options.minAlpha ?? 0.5 * (1.0 / 255.0);\n this.enable2DGS = options.enable2DGS ?? false;\n // this.enableRayEval = options.enableRayEval ?? false;\n this.preBlurAmount = options.preBlurAmount ?? 0.0;\n this.blurAmount = options.blurAmount ?? 0.3;\n this.focalDistance = options.focalDistance ?? 0.0;\n this.apertureAngle = options.apertureAngle ?? 0.0;\n this.falloff = options.falloff ?? 1.0;\n this.clipXY = options.clipXY ?? 1.4;\n this.focalAdjustment = options.focalAdjustment ?? 1.0;\n\n this.sortRadial = options.sortRadial ?? true;\n this.minSortIntervalMs = options.minSortIntervalMs ?? 0;\n\n this.enableLod = options.enableLod ?? true;\n // enableDriveLod defaults to true if enableLod is true, false otherwise\n this.enableDriveLod = options.enableDriveLod ?? this.enableLod;\n this.enableLodFetching = options.enableLodFetching ?? true;\n this.lodSplatCount = options.lodSplatCount;\n this.lodSplatScale = options.lodSplatScale ?? 1.0;\n this.lodRenderScale = options.lodRenderScale ?? 1.0;\n this.lodInflate = options.lodInflate ?? false;\n this.lodTraverseMode = options.lodTraverseMode ?? \"standard\";\n this.pagedExtSplats = options.pagedExtSplats ?? false;\n const defaultPages = isMobile() ? (isIos() ? 96 : 128) : 256;\n this.maxPagedSplats = options.maxPagedSplats ?? defaultPages * 65536;\n this.numLodFetchers = options.numLodFetchers ?? 3;\n this.behindFoveate = options.behindFoveate ?? 0.2;\n this.coneFov0 = options.coneFov0 ?? 90.0;\n this.coneFov = options.coneFov ?? 120.0;\n this.coneFoveate = options.coneFoveate ?? 0.4;\n\n this.lodRaycast =\n options.lodRaycast === undefined\n ? isMobile()\n ? 10000\n : 25000\n : options.lodRaycast;\n this.lodRaycastIntervalMs = options.lodRaycastIntervalMs ?? 500;\n\n this.timer = options.timer ?? new THREE.Timer();\n\n const accumulatorOptions = {\n extSplats: this.accumExtSplats,\n covSplats: this.covSplats,\n };\n this.display = new SplatAccumulator(accumulatorOptions);\n this.current = this.display;\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n\n // Check if the provoking vertex convention should be changed\n const provokingVertexExt = this.renderer\n .getContext()\n .getExtension(\"WEBGL_provoking_vertex\");\n if (provokingVertexExt) {\n provokingVertexExt.provokingVertexWEBGL(\n provokingVertexExt.FIRST_VERTEX_CONVENTION_WEBGL,\n );\n }\n\n if (options.target) {\n const {\n width,\n height,\n doubleBuffer,\n superXY: origSuperXY,\n ...origTargetOptions\n } = options.target;\n const superXY = Math.max(1, Math.min(4, origSuperXY ?? 1));\n if (width * superXY > 8192 || height * superXY > 8192) {\n throw new Error(\"Target size too large\");\n }\n this.superXY = superXY;\n\n const superWidth = width * superXY;\n const superHeight = height * superXY;\n const targetOptions: THREE.RenderTargetOptions = {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n ...origTargetOptions,\n };\n\n this.target = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n if (doubleBuffer) {\n this.backTarget = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n }\n }\n }\n\n static makeUniforms() {\n const uniforms = {\n // // number of active splats to render\n // numSplats: { value: 0 },\n // Size of render viewport in pixels\n renderSize: { value: new THREE.Vector2() },\n // Near and far plane distances\n near: { value: 0.1 },\n far: { value: 1000.0 },\n // SplatAccumulator to view transformation quaternion\n renderToViewQuat: { value: new THREE.Quaternion() },\n // SplatAccumulator to view transformation translation\n renderToViewPos: { value: new THREE.Vector3() },\n renderToViewBasis: { value: new THREE.Matrix3() },\n renderToViewOffset: { value: new THREE.Vector3() },\n // Maximum distance (in stddevs) from Gsplat center to render\n maxStdDev: { value: 1.0 },\n // Minimum pixel radius for splat rendering\n minPixelRadius: { value: 0.0 },\n // Maximum pixel radius for splat rendering\n maxPixelRadius: { value: 512.0 },\n // Minimum alpha value for splat rendering\n minAlpha: { value: 0.5 * (1.0 / 255.0) },\n // Enable interpreting 0-thickness Gsplats as 2DGS\n enable2DGS: { value: false },\n // Enable ray-splat max response evaluation\n // enableRayEval: { value: false },\n // Inflate LoD splats so that opacity <= 1.0\n lodInflate: { value: false },\n // Add to projected 2D splat covariance diagonal (thickens and brightens)\n preBlurAmount: { value: 0.0 },\n // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing)\n blurAmount: { value: 0.3 },\n // Depth-of-field distance to focal plane\n focalDistance: { value: 0.0 },\n // Full-width angle of aperture opening (in radians)\n apertureAngle: { value: 0.0 },\n // Modulate Gaussian kernal falloff. 0 means \"no falloff, flat shading\",\n // 1 is normal e^-x^2 falloff.\n falloff: { value: 1.0 },\n // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds\n clipXY: { value: 1.4 },\n // Debug renderSize scale factor\n focalAdjustment: { value: 1.0 },\n // Whether to encode Gsplat with linear RGB (for environment mapping)\n encodeLinear: { value: false },\n // Back-to-front sort ordering of splat indices\n ordering: { type: \"t\", value: SparkRenderer.emptyOrdering },\n enableExtSplats: { value: false },\n enableCovSplats: { value: false },\n // Gsplat collection to render\n extSplats: { type: \"t\", value: SplatAccumulator.emptyTexture },\n extSplats2: { type: \"t\", value: SplatAccumulator.emptyTexture },\n // Time in seconds for time-based effects\n time: { value: 0 },\n // Delta time in seconds since last frame\n deltaTime: { value: 0 },\n // Debug flag that alternates each frame\n debugFlag: { value: false },\n };\n return uniforms;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n if (this.backTarget) {\n this.backTarget.dispose();\n this.backTarget = undefined;\n }\n if (this.orderingTexture) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n\n const accumulators = new Set();\n accumulators.add(this.display);\n accumulators.add(this.current);\n for (const accumulator of this.accumulators) {\n accumulators.add(accumulator);\n }\n for (const accumulator of accumulators) {\n accumulator.dispose();\n }\n\n const instances = this.lodInstances.values();\n this.lodInstances.clear();\n for (const instance of instances) {\n instance.texture.dispose();\n }\n\n if (this.sortWorker) {\n this.sortWorker.dispose();\n this.sortWorker = null;\n }\n if (this.lodWorker) {\n this.lodWorker.dispose();\n this.lodWorker = null;\n }\n if (this.pager) {\n this.pager.dispose();\n this.pager = undefined;\n }\n }\n\n setDirty() {\n if (!this.dirty) {\n this.dirty = true;\n this.onDirty?.();\n }\n }\n\n onBeforeRender(\n renderer: THREE.WebGLRenderer,\n scene: THREE.Scene,\n camera: THREE.Camera,\n ) {\n const spark = SparkRenderer.sparkOverride ?? this;\n\n const frame = renderer.info.render.frame;\n const isNewFrame = frame !== spark.lastFrame;\n spark.lastFrame = frame;\n\n // Determine render target\n const currentRenderTarget = renderer.getRenderTarget();\n const isXRRenderTarget = checkIsXRRenderTarget(currentRenderTarget);\n if (currentRenderTarget) {\n spark.renderSize.set(\n currentRenderTarget.width,\n currentRenderTarget.height,\n );\n\n // WebXR mode on Apple Vision Pro returns 1x1 when presenting.\n // Use a different means to figure out the render size.\n if (\n isXRRenderTarget &&\n spark.renderSize.x === 1 &&\n spark.renderSize.y === 1\n ) {\n const baseLayer = renderer.xr.getSession()?.renderState.baseLayer;\n if (baseLayer) {\n spark.renderSize.x = baseLayer.framebufferWidth;\n spark.renderSize.y = baseLayer.framebufferHeight;\n }\n }\n } else {\n renderer.getDrawingBufferSize(spark.renderSize);\n }\n this.uniforms.renderSize.value.copy(spark.renderSize);\n\n const typedCamera = camera as\n | THREE.PerspectiveCamera\n | THREE.OrthographicCamera;\n\n this.uniforms.near.value = typedCamera.near;\n this.uniforms.far.value = typedCamera.far;\n\n const geometry = this.geometry as SplatGeometry;\n geometry.instanceCount = spark.activeSplats;\n\n const accumToWorld = new THREE.Matrix4();\n if (!this.display.extSplats) {\n accumToWorld.makeTranslation(spark.display.viewOrigin);\n }\n const cameraToWorld = camera.matrixWorld.clone();\n const worldToCamera = cameraToWorld.invert();\n const accumToCamera = worldToCamera.multiply(accumToWorld);\n accumToCamera.decompose(\n this.uniforms.renderToViewPos.value,\n this.uniforms.renderToViewQuat.value,\n new THREE.Vector3(),\n );\n this.uniforms.renderToViewBasis.value.setFromMatrix4(accumToCamera);\n\n this.uniforms.maxStdDev.value = spark.maxStdDev;\n this.uniforms.minPixelRadius.value = spark.minPixelRadius;\n this.uniforms.maxPixelRadius.value = spark.maxPixelRadius;\n this.uniforms.minAlpha.value = spark.minAlpha;\n this.uniforms.enable2DGS.value = spark.enable2DGS;\n // this.uniforms.enableRayEval.value = spark.enableRayEval;\n this.uniforms.lodInflate.value = spark.lodInflate;\n this.uniforms.preBlurAmount.value = spark.preBlurAmount;\n this.uniforms.blurAmount.value = spark.blurAmount;\n this.uniforms.focalDistance.value = spark.focalDistance;\n this.uniforms.apertureAngle.value = spark.apertureAngle;\n this.uniforms.falloff.value = spark.falloff;\n this.uniforms.clipXY.value = spark.clipXY;\n this.uniforms.focalAdjustment.value = spark.focalAdjustment;\n\n const outputColorSpace =\n currentRenderTarget === null\n ? renderer.outputColorSpace\n : isXRRenderTarget\n ? currentRenderTarget.texture.colorSpace\n : THREE.ColorManagement.workingColorSpace;\n this.uniforms.encodeLinear.value =\n outputColorSpace !== THREE.SRGBColorSpace;\n\n this.uniforms.ordering.value =\n spark.orderingTexture ?? SparkRenderer.emptyOrdering;\n this.uniforms.enableExtSplats.value = this.display.extSplats;\n this.uniforms.enableCovSplats.value = this.display.covSplats;\n if (this.display.extSplats) {\n const extSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = extSplats[0];\n this.uniforms.extSplats2.value = extSplats[1];\n } else {\n const packedSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = packedSplats[0];\n this.uniforms.extSplats2.value = packedSplats[0];\n }\n\n this.uniforms.time.value = spark.display.time;\n this.uniforms.deltaTime.value = spark.display.deltaTime;\n // Alternating debug flag that can aid in visual debugging\n this.uniforms.debugFlag.value = (performance.now() / 1000.0) % 2.0 < 1.0;\n\n if (spark.autoUpdate && isNewFrame) {\n const preUpdate = spark.preUpdate && !renderer.xr.isPresenting;\n const useCamera = renderer.xr.isPresenting\n ? renderer.xr.getCamera()\n : camera;\n if (preUpdate) {\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n } else {\n if (spark.updateTimeoutId === -1) {\n spark.updateTimeoutId = setTimeout(() => {\n spark.updateTimeoutId = -1;\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n }, 1);\n }\n }\n }\n\n spark.dirty = false;\n }\n\n clearSplats() {\n this.activeSplats = 0;\n this.display.numSplats = 0;\n this.setDirty();\n }\n\n async update({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }) {\n await this.updateInternal({ scene, camera, autoUpdate: false });\n }\n\n // /**\n // * Provide additional cameras to prefetch paged splat chunks without\n // * affecting main LOD selection.\n // */\n // setPrefetchCameras(cameras?: THREE.Camera[], lodScaleMultiplier = 1.0) {\n // const next = cameras?.filter(Boolean) ?? [];\n // const sameCameras =\n // this.prefetchCameras.length === next.length &&\n // this.prefetchCameras.every((camera, index) => camera === next[index]);\n // if (sameCameras && this.prefetchLodScale === lodScaleMultiplier) {\n // return;\n // }\n // this.prefetchCameras = next;\n // this.prefetchLodScale = lodScaleMultiplier;\n // this.invalidatePrefetchCache();\n // }\n\n // /**\n // * Invalidate the prefetch meshes cache. Call this when SplatMeshes are\n // * added or removed from the scene.\n // */\n // invalidatePrefetchCache() {\n // this.prefetchMeshesCacheScene = undefined;\n // }\n\n private async updateInternal({\n scene,\n camera,\n autoUpdate,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n autoUpdate: boolean;\n }) {\n const renderer = this.renderer;\n this.timer.update();\n const time = this.time ?? this.timer.getElapsed();\n\n const center = camera.getWorldPosition(new THREE.Vector3());\n const dir = camera.getWorldDirection(new THREE.Vector3());\n\n const viewChanged =\n center.distanceTo(this.sortedCenter) > 0.001 ||\n dir.dot(this.sortedDir) < 0.999;\n\n const next = this.accumulators.pop();\n if (!next) {\n // Should never happen\n throw new Error(\"No next accumulator\");\n }\n if (next === this.current) {\n // Should never happen\n throw new Error(\n \"Next accumulator is the same as the current accumulator\",\n );\n }\n const { version, mappingVersion, visibleGenerators, generate } =\n next.prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial: this.sortRadial ?? true,\n renderSize: this.renderSize,\n previous: this.current,\n lodInstances: this.enableLod ? this.lodInstances : undefined,\n });\n\n let doUpdate = true;\n const needsUpdate = viewChanged || version !== this.current.version;\n const mappingUpdated = mappingVersion !== this.display.mappingVersion;\n\n if (autoUpdate && !needsUpdate) {\n // Triggered by auto-update but no change\n doUpdate = false;\n }\n\n if (mappingUpdated && this.sorting) {\n // We need to be able to sort the splats because the mapping has changed.\n // Try again next time around.\n doUpdate = false;\n }\n\n if (!doUpdate) {\n // Restore unused accumulator to the free list\n this.accumulators.push(next);\n } else {\n generate();\n\n if (this.flushAfterGenerate) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n if (this.display.mappingVersion === next.mappingVersion) {\n // Same splat mapping so let's display it immediately and\n // reuse the sort order\n this.accumulators.push(this.display);\n this.display = next;\n } else {\n if (this.display !== this.current) {\n // The previous current is not being displayed, so replace it\n this.accumulators.push(this.current);\n }\n }\n\n this.current = next;\n this.sortDirty = true;\n this.setDirty();\n }\n\n if (this.enableDriveLod) {\n this.driveLod({ visibleGenerators, camera, scene });\n }\n await this.driveSort();\n }\n\n private async driveSort() {\n if (this.sorting || !this.sortDirty) {\n return;\n }\n\n if (this.sortTimeoutId !== -1) {\n clearTimeout(this.sortTimeoutId);\n this.sortTimeoutId = -1;\n }\n\n const now = performance.now();\n const nextSortTime = this.lastSortTime\n ? this.lastSortTime + this.minSortIntervalMs\n : now;\n if (now < nextSortTime) {\n this.sortTimeoutId = setTimeout(() => {\n this.sortTimeoutId = -1;\n this.driveSort();\n }, nextSortTime - now);\n return;\n }\n\n this.sorting = true;\n this.sortDirty = false;\n this.lastSortTime = now;\n\n if (this.readPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.readPause));\n }\n\n const current = this.current;\n\n this.sortedCenter.copy(current.viewOrigin);\n this.sortedDir.copy(current.viewDirection);\n\n const { numSplats, maxSplats } = current;\n const rows = Math.max(1, Math.ceil(maxSplats / 16384));\n const orderingMaxSplats = rows * 16384;\n this.maxSplats = Math.max(this.maxSplats, orderingMaxSplats);\n\n const ordering = new Uint32Array(this.maxSplats);\n const readback = Readback.ensureBuffer(maxSplats, this.readback32);\n this.readback32 = readback;\n\n await this.readbackDepth({\n current,\n renderer: this.renderer,\n numSplats,\n readback,\n });\n\n if (this.sortPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortPause));\n }\n\n if (!this.sortWorker) {\n this.sortWorker = new SplatWorker();\n }\n const result = (await this.sortWorker.call(\"sortSplats32\", {\n numSplats,\n readback,\n ordering,\n })) as {\n readback: Uint32Array;\n ordering: Uint32Array;\n activeSplats: number;\n };\n\n if (this.sortDelay > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortDelay));\n }\n\n this.readback32 = result.readback;\n\n this.activeSplats = result.activeSplats;\n\n if (this.orderingTexture) {\n if (rows > this.orderingTexture.image.height) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n }\n\n if (!this.orderingTexture) {\n // console.log(`Allocating orderingTexture: ${4096}x${rows}`);\n const orderingTexture = new THREE.DataTexture(\n result.ordering,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n orderingTexture.internalFormat = \"RGBA32UI\";\n orderingTexture.needsUpdate = true;\n this.orderingTexture = orderingTexture;\n } else {\n const renderer = this.renderer;\n if (!renderer.properties.has(this.orderingTexture)) {\n this.orderingTexture.needsUpdate = true;\n } else {\n uploadU32DataTextureRows(\n renderer,\n this.orderingTexture,\n 4096,\n rows,\n result.ordering,\n );\n }\n }\n\n // console.log(`Sorted (${this.minSortIntervalMs}) ${numSplats} splats in ${(performance.now() - now).toFixed(0)} ms`);\n\n if (this.current.mappingVersion === current.mappingVersion) {\n if (this.current.mappingVersion !== this.display.mappingVersion) {\n this.accumulators.push(this.display);\n this.display = this.current;\n }\n }\n this.sorting = false;\n this.setDirty();\n\n this.driveSort();\n }\n\n private ensureLodWorker() {\n if (!this.lodWorker) {\n this.lodWorker = new SplatWorker();\n }\n return this.lodWorker;\n }\n\n defaultSplatTarget() {\n return isOculus()\n ? 500000\n : isVisionPro()\n ? 750000\n : isAndroid()\n ? 1000000\n : isIos()\n ? 1500000\n : 2500000;\n }\n\n private driveLod({\n visibleGenerators,\n camera,\n scene,\n }: {\n visibleGenerators: SplatGenerator[];\n camera: THREE.Camera;\n scene: THREE.Scene;\n }) {\n const defaultSplatCount = this.defaultSplatTarget();\n const splatCount = this.lodSplatCount ?? defaultSplatCount;\n const maxSplats = splatCount * this.lodSplatScale;\n\n let pixelScaleLimit = 0.0;\n if (camera instanceof THREE.PerspectiveCamera) {\n const tanYfov = Math.tan((0.5 * camera.fov * Math.PI) / 180);\n pixelScaleLimit = (2.0 * tanYfov) / this.renderSize.y;\n } else if (camera instanceof THREE.OrthographicCamera) {\n // Effective visible size after zoom\n const viewHeight = (camera.top - camera.bottom) / camera.zoom;\n const viewWidth = (camera.right - camera.left) / camera.zoom;\n // World/view units per pixel (constant with depth for ortho)\n const pxY = viewHeight / Math.max(1, this.renderSize.y);\n const pxX = viewWidth / Math.max(1, this.renderSize.x);\n pixelScaleLimit = Math.min(pxX, pxY);\n }\n\n pixelScaleLimit *= this.lodRenderScale;\n\n const viewPos = new THREE.Vector3();\n const viewQuat = new THREE.Quaternion();\n this.current.viewToWorld.decompose(viewPos, viewQuat, new THREE.Vector3());\n\n if (this.lodPosOverride) {\n viewPos.copy(this.lodPosOverride);\n }\n if (this.lodQuatOverride) {\n viewQuat.copy(this.lodQuatOverride).normalize();\n }\n\n if (this.lastLod) {\n if (\n this.lastLod.pixelScaleLimit !== pixelScaleLimit ||\n this.lastLod.maxSplats !== maxSplats\n ) {\n this.lodDirty = true;\n }\n\n const distance = viewPos.distanceTo(this.lastLod.pos);\n const distanceRamp = Math.max(0.0, 1.0 - distance / 1.0);\n const dot = viewQuat.dot(this.lastLod.quat);\n const quatRamp = Math.max(0.0, 1.0 - (1.0 - dot) / 0.01);\n const similarity = distanceRamp * quatRamp;\n if (similarity < 0.999) {\n this.lodDirty = true;\n }\n }\n\n const lodMeshes = !this.enableLod\n ? []\n : (visibleGenerators.filter((generator) => {\n return (\n generator instanceof SplatMesh &&\n (generator.packedSplats?.lodSplats ||\n generator.extSplats?.lodSplats ||\n generator.paged) &&\n generator.enableLod !== false\n );\n }) as SplatMesh[]);\n const hasPaged = lodMeshes.some((mesh) => mesh.paged);\n\n if (this.lodMeshes.length !== lodMeshes.length) {\n this.lodDirty = true;\n } else {\n if (\n lodMeshes.some(\n (m, i) =>\n m !== this.lodMeshes[i].mesh ||\n m.version > this.lodMeshes[i].version,\n )\n ) {\n this.lodDirty = true;\n }\n }\n\n this.lodMeshes = lodMeshes.map((mesh) => ({\n mesh,\n version: mesh.version + 1,\n }));\n\n // if (!this.lodDirty && lodMeshes.length === 0 && this.lodIds.size === 0) {\n // return;\n // }\n\n this.lodInitQueue = [];\n const now = performance.now();\n\n for (const mesh of lodMeshes) {\n const splats =\n mesh.packedSplats?.lodSplats ?? mesh.extSplats?.lodSplats ?? mesh.paged;\n if (splats) {\n const record = this.lodIds.get(splats);\n if (record) {\n record.lastTouched = now;\n } else {\n this.lodInitQueue.push(splats);\n }\n }\n }\n\n this.ensureLodWorker().tryExclusive(async (worker) => {\n if (hasPaged && !this.pager) {\n this.pager = new SplatPager({\n renderer: this.renderer,\n extSplats: this.pagedExtSplats,\n maxSplats: this.maxPagedSplats,\n numFetchers: this.numLodFetchers,\n });\n\n const { lodId } = (await worker.call(\"newLodTree\", {\n capacity: this.pager.maxSplats,\n })) as { lodId: number };\n this.pagerId = lodId;\n }\n\n // Assign pager to any new meshes that don't have one yet\n // (must run every frame, not just when pager is first created)\n if (this.pager) {\n for (const { mesh } of this.lodMeshes) {\n if (mesh.paged && !mesh.paged.pager) {\n mesh.paged.pager = this.pager;\n }\n }\n }\n\n if (this.lodInitQueue.length > 0) {\n const lodInitQueue = this.lodInitQueue;\n this.lodInitQueue = [];\n while (lodInitQueue.length > 0) {\n const splats = lodInitQueue.shift();\n if (splats) {\n await this.initLodTree(worker, splats);\n this.lodDirty = true;\n }\n }\n }\n\n if (this.pager) {\n const updates = this.pager.consumeLodTreeUpdates();\n\n for (const { splats, page, chunk, numSplats, lodTree } of updates) {\n const record = this.lodIds.get(splats);\n if (record) {\n if (lodTree && chunk === 0) {\n record.rootPage = page;\n }\n this.lodUpdates.push({\n lodId: record.lodId,\n pageBase: page * this.pager.pageSplats,\n chunkBase: chunk * this.pager.pageSplats,\n count: numSplats,\n lodTreeData: lodTree,\n });\n }\n }\n }\n\n if (this.lodUpdates.length > 0) {\n const lodUpdates = this.lodUpdates;\n this.lodUpdates = [];\n await worker.call(\"updateLodTrees\", { ranges: lodUpdates });\n this.lodDirty = true;\n }\n\n if (this.lodDirty) {\n const now = performance.now();\n const deltaPred = new THREE.Vector3();\n if (this.lastLod) {\n const deltaTime = Math.max(1, now - this.lastLod.timestamp);\n deltaPred\n .copy(viewPos)\n .sub(this.lastLod.pos)\n .multiplyScalar(this.lastTraverseTime / deltaTime);\n }\n this.lastLod = {\n pos: viewPos,\n quat: viewQuat,\n pixelScaleLimit,\n maxSplats,\n timestamp: now,\n };\n this.lodDirty = false;\n\n await this.updateLodInstances(\n worker,\n deltaPred,\n lodMeshes,\n maxSplats,\n viewPos,\n viewQuat,\n pixelScaleLimit,\n );\n this.currentLod = this.lastLod;\n this.setDirty();\n }\n\n await this.cleanupLodTrees(worker);\n });\n }\n\n private async initLodTree(\n worker: SplatWorker,\n splats: PackedSplats | ExtSplats | PagedSplats,\n ) {\n if (splats instanceof PackedSplats || splats instanceof ExtSplats) {\n const { lodId } = (await worker.call(\"initLodTree\", {\n numSplats: splats.numSplats ?? 0,\n lodTree: (splats.extra.lodTree as Uint32Array).slice(),\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** initLodTree\", lodId, splats.extra.lodTree, splats);\n } else {\n const { lodId } = (await worker.call(\"newSharedLodTree\", {\n lodId: this.pagerId,\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** newSharedLodTree\", lodId, this.pagerId, splats);\n }\n }\n\n private pageSizeWarning = false;\n\n private async updateLodInstances(\n worker: SplatWorker,\n deltaPred: THREE.Vector3,\n lodMeshes: SplatMesh[],\n maxSplats: number,\n viewPos: THREE.Vector3,\n viewQuat: THREE.Quaternion,\n pixelScaleLimit: number,\n ) {\n // Commented out because it makes LoDing less stable\n // viewPos.add(deltaPred);\n\n const uuidToMesh: Map = new Map();\n const cameraToWorld = new THREE.Matrix4().compose(\n viewPos,\n viewQuat,\n new THREE.Vector3().setScalar(1),\n );\n\n const instances = lodMeshes.reduce(\n (instances, mesh) => {\n uuidToMesh.set(mesh.uuid, mesh);\n const viewToObject = mesh.matrixWorld\n .clone()\n .invert()\n .multiply(cameraToWorld);\n\n const splats =\n mesh.packedSplats?.lodSplats ??\n mesh.extSplats?.lodSplats ??\n mesh.paged;\n if (!splats) {\n return instances;\n }\n const record = this.lodIds.get(splats);\n if (!record) {\n return instances;\n }\n\n if (this.pager && mesh.paged && record.rootPage === undefined) {\n return instances;\n }\n\n instances[mesh.uuid] = {\n instanceId: mesh.uuid,\n lodId: record.lodId,\n rootPage: record.rootPage,\n viewToObjectCols: viewToObject.elements,\n lodScale: mesh.lodScale,\n behindFoveate: mesh.behindFoveate ?? this.behindFoveate,\n coneFov0: mesh.coneFov0 ?? this.coneFov0,\n coneFov: mesh.coneFov ?? this.coneFov,\n coneFoveate: mesh.coneFoveate ?? this.coneFoveate,\n };\n return instances;\n },\n {} as Record<\n string,\n {\n instanceId: string;\n lodId: number;\n rootPage?: number;\n viewToObjectCols: number[];\n lodScale: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n }\n >,\n );\n\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit: this.lastPixelLimit,\n instances,\n traverseMode: this.lodTraverseMode,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n chunks: [number, number][];\n pixelLimit?: number;\n };\n this.lastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices, chunks, pixelLimit } = result;\n this.lastPixelLimit = pixelLimit;\n const totalLodSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n // console.log(\n // `traverseLodTrees in ${this.lastTraverseTime} ms, pixelLimit=${pixelLimit}, totalLodSplats=${totalLodSplats}`,\n // );\n\n this.updateLodIndices(uuidToMesh, keyIndices);\n // console.log(\"chunks.length =\", chunks.length);\n\n if (this.pager) {\n this.pager.processUploads();\n\n const pagedMeshes = lodMeshes\n .map((mesh) => {\n if (!mesh.paged || !this.pager) {\n return null;\n }\n const meshPosition = mesh.getWorldPosition(new THREE.Vector3());\n return {\n splats: mesh.paged,\n distance: meshPosition.distanceTo(viewPos),\n };\n })\n .filter((result) => result !== null);\n\n if (!this.pageSizeWarning && pagedMeshes.length > this.pager.maxPages) {\n this.pageSizeWarning = true;\n console.warn(\n `# paged SplatMeshes exceeds maxPages: ${pagedMeshes.length} > ${this.pager.maxPages}`,\n );\n }\n\n // Fetch root chunk of each paged splats in priority of distance to camera\n pagedMeshes.sort((a, b) => a.distance - b.distance);\n this.pager.fetchPriority = pagedMeshes.map(({ splats }) => ({\n splats,\n chunk: 0,\n }));\n\n for (const [lodId, chunk] of chunks) {\n const splats = this.lodIdToSplats.get(lodId);\n if (splats instanceof PagedSplats) {\n if (chunk !== 0) {\n this.pager.fetchPriority.push({ splats, chunk });\n }\n }\n }\n\n this.pager.autoDrive = this.enableLodFetching;\n if (this.enableLodFetching) {\n this.pager.driveFetchers();\n }\n }\n\n if (\n this.lodRaycast &&\n performance.now() - this.lastLodRaycastTime >= this.lodRaycastIntervalMs\n ) {\n this.lastLodRaycastTime = performance.now();\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats: Math.min(this.lodRaycast, Math.round(totalLodSplats * 0.1)),\n pixelScaleLimit,\n instances,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n };\n const raycastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices } = result;\n const totalRaycastSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n mesh.raycastIndices = countIndices;\n // console.log(\"Set raycast indices\", uuid, countIndices.numSplats, countIndices.indices.length);\n }\n // console.log(`raycast traverse in ${raycastTraverseTime} ms, totalRaycastSplats=${totalRaycastSplats}`);\n }\n }\n\n private async cleanupLodTrees(worker: SplatWorker) {\n const DISPOSE_TIMEOUT_MS = 3000;\n const now = performance.now();\n\n let oldest = null;\n for (const [splats, record] of this.lodIds.entries()) {\n if (oldest == null || record.lastTouched < oldest.lastTouched) {\n oldest = {\n splats,\n lastTouched: record.lastTouched,\n lodId: record.lodId,\n };\n }\n }\n if (!oldest || oldest.lastTouched > now - DISPOSE_TIMEOUT_MS) {\n return;\n }\n\n this.lodIds.delete(oldest.splats);\n this.lodIdToSplats.delete(oldest.lodId);\n\n for (const [mesh, instance] of this.lodInstances.entries()) {\n if (instance.lodId === oldest.lodId) {\n instance.texture.dispose();\n this.lodInstances.delete(mesh);\n }\n }\n\n if (oldest.splats instanceof PagedSplats) {\n this.pager?.removeSplats(oldest.splats);\n }\n\n await worker.call(\"disposeLodTree\", { lodId: oldest.lodId });\n // console.log(\"disposed lodTree\", oldest.lodId);\n }\n\n private updateLodIndices(\n uuidToMesh: Map,\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >,\n ) {\n // console.log(\"updateLodIndices\", keyIndices);\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const { lodId, numSplats, indices } = countIndices;\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n\n if (mesh.paged) {\n mesh.paged.update(numSplats, indices);\n // console.log(\"*** paged.update\", lodId, numSplats, indices.slice(0, 5).join(\",\"));\n } else {\n let instance = this.lodInstances.get(mesh);\n if (instance) {\n if (indices.length > instance.indices.length) {\n instance.texture.dispose();\n instance = undefined;\n }\n }\n\n const rows = Math.ceil(indices.length / 16384);\n if (!instance) {\n const capacity = rows * 16384;\n if (indices.length !== capacity) {\n throw new Error(\"Indices length != capacity\");\n }\n const texture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n instance = { lodId, numSplats, indices, texture };\n this.lodInstances.set(mesh, instance);\n } else {\n instance.numSplats = numSplats;\n // instance.indices.set(indices.subarray(0, numSplats));\n\n const renderer = this.renderer;\n const gl = renderer.getContext() as WebGL2RenderingContext;\n if (renderer.properties.has(instance.texture)) {\n const props = renderer.properties.get(instance.texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"lodIndices texture not found\");\n }\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n indices,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n }\n mesh.updateMappingVersion();\n }\n }\n\n private async readbackDepth({\n current,\n renderer,\n numSplats,\n readback,\n }: {\n current: SplatAccumulator;\n renderer: THREE.WebGLRenderer;\n numSplats: number;\n readback: Uint32Array;\n }) {\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!current.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(readback.buffer);\n const renderState = this.saveRenderState(renderer);\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < numSplats) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((numSplats - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n renderer.setRenderTarget(current.target, layer);\n\n const promise = renderer.readRenderTargetPixelsAsync(\n current.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n undefined,\n current.extSplats ? 2 : 1,\n );\n promises.push(promise);\n\n if (this.flushAfterRead) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.resetRenderState(renderer, renderState);\n return Promise.all(promises).then(() => readback);\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private static emptyOrdering = (() => {\n const numIndices = 4 * 4096 * 1;\n const emptyArray = new Uint32Array(numIndices);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n render(scene: THREE.Scene, camera: THREE.Camera) {\n try {\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n }\n\n renderTarget({\n scene,\n camera,\n }: { scene: THREE.Scene; camera: THREE.Camera }): THREE.WebGLRenderTarget {\n const target = this.backTarget ?? this.target;\n if (!target) {\n throw new Error(\"No target\");\n }\n\n const previousTarget = this.renderer.getRenderTarget();\n try {\n this.renderer.setRenderTarget(target);\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n this.renderer.setRenderTarget(previousTarget);\n }\n\n if (target !== this.target) {\n // Swap back buffer and target\n [this.target, this.backTarget] = [this.backTarget, this.target];\n }\n return target;\n }\n\n // Read back the previously rendered target image as a Uint8Array of packed\n // RGBA values (in that order). Subsequent calls to this.readTarget()\n // will reuse the same buffers to minimize memory allocations.\n async readTarget(): Promise {\n if (!this.target) {\n throw new Error(\"Must initialize with target\");\n }\n const { width, height } = this.target;\n const byteSize = width * height * 4;\n if (!this.superPixels || this.superPixels.length < byteSize) {\n this.superPixels = new Uint8Array(byteSize);\n // console.log(`Allocated superPixels: ${width}x${height} = ${pixelCount} bytes`);\n }\n const superPixels = this.superPixels;\n\n await this.renderer.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n width,\n height,\n superPixels,\n );\n\n const { superXY } = this;\n if (superXY === 1) {\n return superPixels;\n }\n\n const subWidth = width / superXY;\n const subHeight = height / superXY;\n const subSize = subWidth * subHeight * 4;\n if (!this.targetPixels || this.targetPixels.length < subSize) {\n this.targetPixels = new Uint8Array(subSize);\n // console.log(`Allocated targetPixels: ${subWidth}x${subHeight} = ${subSize} bytes`);\n }\n const targetPixels = this.targetPixels;\n\n const super2 = superXY * superXY;\n for (let y = 0; y < subHeight; y++) {\n const row = y * subWidth;\n for (let x = 0; x < subWidth; x++) {\n const superCol = x * superXY;\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n for (let sy = 0; sy < superXY; sy++) {\n const superRow = (y * superXY + sy) * width;\n for (let sx = 0; sx < superXY; sx++) {\n const superIndex = (superRow + superCol + sx) * 4;\n r += superPixels[superIndex];\n g += superPixels[superIndex + 1];\n b += superPixels[superIndex + 2];\n a += superPixels[superIndex + 3];\n }\n }\n const pixelIndex = (row + x) * 4;\n targetPixels[pixelIndex] = r / super2;\n targetPixels[pixelIndex + 1] = g / super2;\n targetPixels[pixelIndex + 2] = b / super2;\n targetPixels[pixelIndex + 3] = a / super2;\n }\n }\n return targetPixels;\n }\n\n async renderReadTarget({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }): Promise {\n this.renderTarget({ scene, camera });\n return this.readTarget();\n }\n\n // Data and buffers used for environment map rendering\n private static cubeRender: {\n target: THREE.WebGLCubeRenderTarget;\n cubeCamera: THREE.CubeCamera;\n near: number;\n far: number;\n } | null = null;\n private static pmrem: THREE.PMREMGenerator | null = null;\n\n // Renders out the scene to a cube map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces.\n async renderCubeMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n filter = false,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n filter: boolean;\n }): Promise {\n if (\n !SparkRenderer.cubeRender ||\n SparkRenderer.cubeRender.target.width !== size ||\n SparkRenderer.cubeRender.near !== near ||\n SparkRenderer.cubeRender.far !== far\n ) {\n if (SparkRenderer.cubeRender) {\n SparkRenderer.cubeRender.target.dispose();\n }\n const target = new THREE.WebGLCubeRenderTarget(size, {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n generateMipmaps: filter,\n minFilter: filter ? THREE.LinearMipMapLinearFilter : THREE.LinearFilter,\n magFilter: THREE.LinearFilter,\n colorSpace: filter ? THREE.LinearSRGBColorSpace : THREE.SRGBColorSpace,\n });\n const cubeCamera = new THREE.CubeCamera(near, far, target);\n SparkRenderer.cubeRender = { target, cubeCamera, near, far };\n }\n\n const { target, cubeCamera } = SparkRenderer.cubeRender;\n cubeCamera.position.copy(worldCenter);\n\n // Save the visibility state of objects we want to hide before render\n const objectVisibility = new Map();\n for (const object of hideObjects) {\n objectVisibility.set(object, object.visible);\n object.visible = false;\n }\n\n if (update) {\n const tempCamera = new THREE.Camera();\n tempCamera.position.copy(worldCenter);\n await this.update({ scene, camera: tempCamera });\n }\n\n try {\n SparkRenderer.sparkOverride = this;\n // Update the CubeCamera, which performs 6 cube face renders\n cubeCamera.update(this.renderer, scene);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n\n // Restore viewpoint to default and object visibility\n for (const [object, visible] of objectVisibility.entries()) {\n object.visible = visible;\n }\n\n return target.texture;\n }\n\n async readCubeTargets(): Promise {\n if (!SparkRenderer.cubeRender) {\n throw new Error(\"No cube render\");\n }\n\n const textures = SparkRenderer.cubeRender.target.texture;\n const promises = [];\n const buffers = [];\n\n for (let i = 0; i < textures.images.length; ++i) {\n const { width, height } = textures.images[i];\n const byteSize = width * height * 4;\n const readback = new Uint8Array(byteSize);\n buffers.push(readback);\n const promise = this.renderer.readRenderTargetPixelsAsync(\n SparkRenderer.cubeRender.target,\n 0,\n 0,\n width,\n height,\n readback,\n i,\n );\n promises.push(promise);\n }\n\n await Promise.all(promises);\n return buffers;\n }\n\n // Renders out the scene to an environment map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces,\n // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture\n // that can assigned directly to a THREE.MeshStandardMaterial.envMap property.\n async renderEnvMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n }): Promise {\n const cubeTexture = await this.renderCubeMap({\n scene,\n worldCenter,\n size,\n near,\n far,\n hideObjects,\n update,\n filter: true,\n });\n // Pre-filter the cube map using THREE.PMREMGenerator if requested\n if (!SparkRenderer.pmrem) {\n SparkRenderer.pmrem = new THREE.PMREMGenerator(this.renderer);\n }\n\n return SparkRenderer.pmrem?.fromCubemap(cubeTexture).texture;\n }\n\n // Utility function to recursively set the envMap property for any\n // THREE.MeshStandardMaterial within the subtree of root.\n recurseSetEnvMap(root: THREE.Object3D, envMap: THREE.Texture) {\n root.traverse((node) => {\n if (node instanceof THREE.Mesh) {\n if (Array.isArray(node.material)) {\n for (const material of node.material) {\n if (material instanceof THREE.MeshStandardMaterial) {\n material.envMap = envMap;\n }\n }\n } else {\n if (node.material instanceof THREE.MeshStandardMaterial) {\n node.material.envMap = envMap;\n }\n }\n }\n });\n }\n\n async getLodTreeLevel(\n splats: SplatMesh,\n level: number,\n pageColoring = false,\n ) {\n const instance = this.lodInstances.get(splats);\n if (!instance) {\n return null;\n }\n\n const result = await this.ensureLodWorker().exclusive(async (worker) => {\n return (await worker.call(\"getLodTreeLevel\", {\n lodId: instance.lodId,\n level,\n })) as { indices: Uint32Array };\n });\n\n if (splats.packedSplats?.lodSplats) {\n const newSplats = splats.packedSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ packedSplats: newSplats });\n }\n if (splats.extSplats?.lodSplats) {\n const newSplats = splats.extSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ extSplats: newSplats });\n }\n throw new Error(\n \"Only LoD-enabled PackedSplats and ExtSplats are supported\",\n );\n }\n\n get premultipliedAlpha(): boolean {\n return this.material.premultipliedAlpha;\n }\n\n set premultipliedAlpha(value: boolean) {\n if (this.material.premultipliedAlpha !== value) {\n this.material.premultipliedAlpha = value;\n this.material.needsUpdate = true;\n }\n }\n}\n\nfunction checkIsXRRenderTarget(renderTarget: THREE.RenderTarget | null) {\n return (renderTarget as unknown as Record)?.isXRRenderTarget;\n}\n","// PLY file format reader\n\nimport { USE_COMPILED_PARSER_FUNCTION } from \"./defines\";\n\nconst PLY_PROPERTY_TYPES = [\n \"char\",\n \"uchar\",\n \"short\",\n \"ushort\",\n \"int\",\n \"uint\",\n \"float\",\n \"double\",\n] as const;\nexport type PlyPropertyType = (typeof PLY_PROPERTY_TYPES)[number];\n\nexport type PlyElement = {\n name: string;\n count: number;\n properties: Record;\n};\n\nexport type PlyProperty = {\n isList: boolean;\n type: PlyPropertyType;\n countType?: PlyPropertyType;\n};\n\n// Callback for parseSplats base Gsplat data\nexport type SplatCallback = (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) => void;\n\n// Callback for parseSplats SH coefficients\nexport type SplatShCallback = (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n) => void;\n\n// A PlyReader is used to parse PLY files for Gsplat data.\n// It takes a Uint8Array/ArrayBuffer as input fileBytes, parses the text header,\n// and provides a method parseData to iterate over the entire binary data\n// efficiently, or parseSplats to iterate over Gsplat data.\n\nexport class PlyReader {\n fileBytes: Uint8Array;\n header = \"\";\n littleEndian = true;\n elements: Record = {};\n comments: string[] = [];\n data: DataView | null = null;\n static defaultPointScale = 0.001;\n\n numSplats = 0;\n\n // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n }\n\n // Identify and parse the PLY text header (assumed to be <64KB in size).\n // this.elements will contain all the elements in the file, typically\n // \"vertex\" contains the Gsplat data.\n async parseHeader() {\n const bufferStream = new ReadableStream({\n start: (\n controller: ReadableStreamController>,\n ) => {\n // Assume the header is less than 64KB\n controller.enqueue(this.fileBytes.slice(0, 65536));\n controller.close();\n },\n });\n const decoder = bufferStream\n .pipeThrough(new TextDecoderStream())\n .getReader();\n\n // Find the end of the text section of the PLY file\n this.header = \"\";\n const headerTerminator = \"end_header\\n\";\n while (true) {\n const { value, done } = await decoder.read();\n if (done) {\n throw new Error(\"Failed to read header\");\n }\n\n this.header += value as string;\n const endHeader = this.header.indexOf(headerTerminator);\n if (endHeader >= 0) {\n this.header = this.header.slice(0, endHeader + headerTerminator.length);\n break;\n }\n }\n // Partition the file into header and binary data\n const headerLen = new TextEncoder().encode(this.header).length;\n this.data = new DataView(this.fileBytes.buffer, headerLen);\n\n this.elements = {};\n let curElement: PlyElement | null = null;\n this.comments = [];\n\n this.header\n .trim()\n .split(\"\\n\")\n .forEach((line: string, lineIndex: number) => {\n const trimmedLine = line.trim();\n if (lineIndex === 0) {\n if (trimmedLine !== \"ply\") {\n throw new Error(\"Invalid PLY header\");\n }\n return;\n }\n if (trimmedLine.length === 0) {\n return; // Skip empty lines\n }\n\n const fields = trimmedLine.split(\" \");\n switch (fields[0]) {\n case \"format\":\n if (fields[1] === \"binary_little_endian\") {\n this.littleEndian = true;\n } else if (fields[1] === \"binary_big_endian\") {\n this.littleEndian = false;\n } else {\n // ascii formats not supported\n throw new Error(`Unsupported PLY format: ${fields[1]}`);\n }\n if (fields[2] !== \"1.0\") {\n throw new Error(`Unsupported PLY version: ${fields[2]}`);\n }\n break;\n case \"end_header\":\n break;\n case \"comment\":\n this.comments.push(trimmedLine.slice(\"comment \".length));\n break;\n case \"element\": {\n const name = fields[1];\n curElement = {\n name,\n count: Number.parseInt(fields[2]),\n properties: {},\n };\n this.elements[name] = curElement;\n break;\n }\n case \"property\":\n if (curElement == null) {\n throw new Error(\"Property must be inside an element\");\n }\n if (fields[1] === \"list\") {\n curElement.properties[fields[4]] = {\n isList: true,\n type: fields[3] as PlyPropertyType,\n countType: fields[2] as PlyPropertyType,\n };\n } else {\n curElement.properties[fields[2]] = {\n isList: false,\n type: fields[1] as PlyPropertyType,\n };\n }\n break;\n default:\n // console.warn(`Skipping unsupported PLY keyword: ${fields[0]}`);\n }\n });\n\n if (this.elements.vertex) {\n this.numSplats = this.elements.vertex.count;\n }\n }\n\n parseData(\n elementCallback: (\n element: PlyElement,\n ) =>\n | null\n | ((index: number, item: Record) => void),\n ) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No data to parse\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const item = createEmptyItem(properties);\n // Construct a parse function\n const parseFn = createParseFn(properties, this.littleEndian);\n\n // Parse all the items in the element\n const callback = elementCallback(element) ?? (() => {});\n for (let index = 0; index < count; index++) {\n offset = parseFn(data, offset, item);\n callback(index, item);\n }\n }\n }\n\n // Parse all the Gsplat data in the PLY file in go, invoking the given\n // callbacks for each Gsplat.\n parseSplats(splatCallback: SplatCallback, shCallback?: SplatShCallback) {\n if (this.elements.vertex == null) {\n throw new Error(\"No vertex element found\");\n }\n\n let isSuperSplat = false;\n const ssChunks: SSChunk[] = [];\n\n let numSh = 0;\n let sh1Props: number[] = [];\n let sh2Props: number[] = [];\n let sh3Props: number[] = [];\n let sh1: Float32Array | undefined = undefined;\n let sh2: Float32Array | undefined = undefined;\n let sh3: Float32Array | undefined = undefined;\n\n function prepareSh() {\n // Prepare SH coefficient names and arrays for numSh total SH levels\n const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh];\n sh1Props = new Array(3)\n .fill(null)\n .flatMap((_, k) => [0, 1, 2].map((_, d) => k + (d * num_f_rest) / 3));\n sh2Props = new Array(5)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 3 + k + (d * num_f_rest) / 3),\n );\n sh3Props = new Array(7)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 8 + k + (d * num_f_rest) / 3),\n );\n sh1 = numSh >= 1 ? new Float32Array(3 * 3) : undefined;\n sh2 = numSh >= 2 ? new Float32Array(5 * 3) : undefined;\n sh3 = numSh >= 3 ? new Float32Array(7 * 3) : undefined;\n }\n\n function ssShCallback(\n index: number,\n item: Record,\n ) {\n // Decode SH for SuperSplat compressed data\n if (!sh1) {\n throw new Error(\"Missing sh1\");\n }\n const sh = item.f_rest as number[];\n\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = (sh[sh1Props[i]] * 8) / 255 - 4;\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = (sh[sh2Props[i]] * 8) / 255 - 4;\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = (sh[sh3Props[i]] * 8) / 255 - 4;\n }\n }\n shCallback?.(index, sh1, sh2, sh3);\n }\n\n function initSuperSplat(element: PlyElement) {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n } = element.properties;\n if (\n !min_x ||\n !min_y ||\n !min_z ||\n !max_x ||\n !max_y ||\n !max_z ||\n !min_scale_x ||\n !min_scale_y ||\n !min_scale_z ||\n !max_scale_x ||\n !max_scale_y ||\n !max_scale_z\n ) {\n throw new Error(\"Missing PLY chunk properties\");\n }\n\n // SuperSplat chunks are used to quantize splat data, so we need to store them\n isSuperSplat = true;\n return (index: number, item: Record) => {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = item as Record;\n ssChunks.push({\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n });\n };\n }\n\n function decodeSuperSplat(element: PlyElement) {\n // Decode SuperSplat compressed data in vertex and sh elements\n if (shCallback && element.name === \"sh\") {\n numSh = getNumSh(element.properties);\n prepareSh();\n return ssShCallback;\n }\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n element.properties;\n if (\n !packed_position ||\n !packed_rotation ||\n !packed_scale ||\n !packed_color\n ) {\n throw new Error(\n \"Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color\",\n );\n }\n\n const SQRT2 = Math.sqrt(2);\n\n return (index: number, item: Record) => {\n // SuperSplat data are quantized within chunks with 256 Gsplats each\n const chunk = ssChunks[index >>> 8];\n if (chunk == null) {\n throw new Error(\"Missing PLY chunk\");\n }\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = chunk;\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n item as Record;\n\n const x =\n (((packed_position >>> 21) & 2047) / 2047) * (max_x - min_x) + min_x;\n const y =\n (((packed_position >>> 11) & 1023) / 1023) * (max_y - min_y) + min_y;\n const z = ((packed_position & 2047) / 2047) * (max_z - min_z) + min_z;\n\n const r0 = (((packed_rotation >>> 20) & 1023) / 1023 - 0.5) * SQRT2;\n const r1 = (((packed_rotation >>> 10) & 1023) / 1023 - 0.5) * SQRT2;\n const r2 = ((packed_rotation & 1023) / 1023 - 0.5) * SQRT2;\n const rr = Math.sqrt(Math.max(0, 1.0 - r0 * r0 - r1 * r1 - r2 * r2));\n\n const rOrder = packed_rotation >>> 30;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n\n const scaleX = Math.exp(\n (((packed_scale >>> 21) & 2047) / 2047) *\n (max_scale_x - min_scale_x) +\n min_scale_x,\n );\n const scaleY = Math.exp(\n (((packed_scale >>> 11) & 1023) / 1023) *\n (max_scale_y - min_scale_y) +\n min_scale_y,\n );\n const scaleZ = Math.exp(\n ((packed_scale & 2047) / 2047) * (max_scale_z - min_scale_z) +\n min_scale_z,\n );\n\n const r =\n (((packed_color >>> 24) & 255) / 255) *\n ((max_r ?? 1) - (min_r ?? 0)) +\n (min_r ?? 0);\n const g =\n (((packed_color >>> 16) & 255) / 255) *\n ((max_g ?? 1) - (min_g ?? 0)) +\n (min_g ?? 0);\n const b =\n (((packed_color >>> 8) & 255) / 255) * ((max_b ?? 1) - (min_b ?? 0)) +\n (min_b ?? 0);\n const opacity = (packed_color & 255) / 255;\n\n splatCallback(\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n };\n }\n\n const elementCallback = (element: PlyElement) => {\n if (element.name === \"chunk\") {\n // \"chunk\" could conceivably be used for other formats, and we would\n // ideally check for the comment: Generated by SuperSplat 2.*\n // but gsplat also outputs this format without such a comment.\n // In order to support both, let's assume a \"chunk\" element should\n // be interpreted as this format.\n return initSuperSplat(element);\n }\n if (isSuperSplat) {\n return decodeSuperSplat(element);\n }\n\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const {\n x,\n y,\n z,\n scale_0,\n scale_1,\n scale_2,\n rot_0,\n rot_1,\n rot_2,\n rot_3,\n opacity,\n f_dc_0,\n f_dc_1,\n f_dc_2,\n red,\n green,\n blue,\n alpha,\n } = element.properties;\n\n if (!x || !y || !z) {\n throw new Error(\"Missing PLY properties: x, y, z\");\n }\n // Pure point cloud PLY files have no scales or rotations\n const hasScales = scale_0 && scale_1 && scale_2;\n const hasRots = rot_0 && rot_1 && rot_2 && rot_3;\n // Quantization scale factor for argb values\n const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1;\n const redDiv = red != null ? FIELD_SCALE[red.type] : 1;\n const greenDiv = green != null ? FIELD_SCALE[green.type] : 1;\n const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1;\n\n numSh = getNumSh(element.properties);\n prepareSh();\n\n return (index: number, item: Record) => {\n const scaleX = hasScales\n ? Math.exp(item.scale_0 as number)\n : PlyReader.defaultPointScale;\n const scaleY = hasScales\n ? Math.exp(item.scale_1 as number)\n : PlyReader.defaultPointScale;\n const scaleZ = hasScales\n ? Math.exp(item.scale_2 as number)\n : PlyReader.defaultPointScale;\n\n const quatX = hasRots ? (item.rot_1 as number) : 0;\n const quatY = hasRots ? (item.rot_2 as number) : 0;\n const quatZ = hasRots ? (item.rot_3 as number) : 0;\n const quatW = hasRots ? (item.rot_0 as number) : 1;\n\n const op =\n opacity != null\n ? 1.0 / (1.0 + Math.exp(-item.opacity as number))\n : alpha != null\n ? (item.alpha as number) / alphaDiv\n : 1.0;\n const r =\n f_dc_0 != null\n ? (item.f_dc_0 as number) * SH_C0 + 0.5\n : red != null\n ? (item.red as number) / redDiv\n : 1.0;\n const g =\n f_dc_1 != null\n ? (item.f_dc_1 as number) * SH_C0 + 0.5\n : green != null\n ? (item.green as number) / greenDiv\n : 1.0;\n const b =\n f_dc_2 != null\n ? (item.f_dc_2 as number) * SH_C0 + 0.5\n : blue != null\n ? (item.blue as number) / blueDiv\n : 1.0;\n\n splatCallback(\n index,\n item.x as number,\n item.y as number,\n item.z as number,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n op,\n r,\n g,\n b,\n );\n\n if (shCallback && sh1) {\n const sh = item.f_rest as number[];\n if (sh1) {\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = sh[sh1Props[i]];\n }\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = sh[sh2Props[i]];\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = sh[sh3Props[i]];\n }\n }\n shCallback(index, sh1, sh2, sh3);\n }\n };\n };\n\n this.parseData(elementCallback);\n }\n\n // Inject RGBA values into original PLY file, which can be used to modify\n // the color/opacity of the Gsplats and write out the modified PLY file.\n injectRgba(rgba: Uint8Array) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No parsed data\");\n }\n if (rgba.length !== this.numSplats * 4) {\n throw new Error(\"Invalid RGBA array length\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const parsers = [];\n\n let rgbaOffset = 0;\n const isVertex = elementName === \"vertex\";\n if (isVertex) {\n for (const name of [\"opacity\", \"f_dc_0\", \"f_dc_1\", \"f_dc_2\"]) {\n if (!properties[name] || properties[name].type !== \"float\") {\n throw new Error(`Can't injectRgba due to property: ${name}`);\n }\n }\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!property.isList) {\n if (isVertex) {\n if (\n propertyName === \"f_dc_0\" ||\n propertyName === \"f_dc_1\" ||\n propertyName === \"f_dc_2\"\n ) {\n const component = Number.parseInt(\n propertyName.slice(\"f_dc_\".length),\n );\n parsers.push(() => {\n // Inject DC coefficients\n const value =\n (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0;\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n } else if (propertyName === \"opacity\") {\n parsers.push(() => {\n // Inject opacity sigmoid, clamped to [-100, 100]\n const value = Math.max(\n -100,\n Math.min(\n 100,\n -Math.log(1.0 / (rgba[rgbaOffset + 3] / 255) - 1.0),\n ),\n );\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n }\n }\n parsers.push(() => {\n offset += FIELD_BYTES[property.type];\n });\n } else {\n parsers.push(() => {\n const length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n this.littleEndian,\n );\n offset += FIELD_BYTES[property.countType as PlyPropertyType];\n offset += length * FIELD_BYTES[property.type];\n });\n }\n }\n\n for (let index = 0; index < count; index++) {\n // Go through all the data and field parsers to compute offset\n for (const parser of parsers) {\n parser();\n }\n if (isVertex) {\n rgbaOffset += 4;\n }\n }\n }\n }\n}\n\nexport const SH_C0 = 0.28209479177387814;\n\ntype FieldParser = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n) => number;\ntype FieldSetter = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n) => void;\n\nconst PARSE_FIELD: Record = {\n char: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt8(offset);\n },\n uchar: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint8(offset);\n },\n short: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt16(offset, littleEndian);\n },\n ushort: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint16(offset, littleEndian);\n },\n int: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt32(offset, littleEndian);\n },\n uint: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint32(offset, littleEndian);\n },\n float: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat32(offset, littleEndian);\n },\n double: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat64(offset, littleEndian);\n },\n};\n\nconst SET_FIELD: Record = {\n char: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt8(offset, value);\n },\n uchar: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint8(offset, value);\n },\n short: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt16(offset, value, littleEndian);\n },\n ushort: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint16(offset, value, littleEndian);\n },\n int: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt32(offset, value, littleEndian);\n },\n uint: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint32(offset, value, littleEndian);\n },\n float: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat32(offset, value, littleEndian);\n },\n double: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat64(offset, value, littleEndian);\n },\n};\n\nconst FIELD_BYTES: Record = {\n char: 1,\n uchar: 1,\n short: 2,\n ushort: 2,\n int: 4,\n uint: 4,\n float: 4,\n double: 8,\n};\n\nconst FIELD_SCALE: Record = {\n char: 127,\n uchar: 255,\n short: 32767,\n ushort: 65535,\n int: 2147483647,\n uint: 4294967295,\n float: 1,\n double: 1,\n};\n\nconst NUM_F_REST_TO_NUM_SH: Record = {\n 0: 0,\n 9: 1,\n 24: 2,\n 45: 3,\n};\nconst NUM_SH_TO_NUM_F_REST: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nconst F_REST_REGEX = /^f_rest_([0-9]{1,2})$/;\n\nfunction createEmptyItem(\n properties: Record,\n): Record {\n const item: Record = {};\n for (const [propertyName, property] of Object.entries(properties)) {\n // Treat f_rest properties as a single array for performance\n if (F_REST_REGEX.test(propertyName)) {\n item.f_rest = new Array(getNumSh(properties));\n } else {\n item[propertyName] = property.isList ? [] : 0;\n }\n }\n return item;\n}\n\nfunction createParseFn(\n properties: Record,\n littleEndian: boolean,\n) {\n if (USE_COMPILED_PARSER_FUNCTION && safeToCompile(properties)) {\n return createCompiledParserFn(properties, littleEndian);\n }\n return createDynamicParserFn(properties, littleEndian);\n}\n\n// Detect if unsafe eval is allowed in the current execution context\nconst UNSAFE_EVAL_ALLOWED = (() => {\n try {\n new Function(\"return 42;\");\n } catch (e) {\n return false;\n }\n return true;\n})();\nconst PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/;\n\nfunction safeToCompile(properties: Record) {\n if (!UNSAFE_EVAL_ALLOWED) {\n return false;\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!PROPERTY_NAME_REGEX.test(propertyName)) {\n return false;\n }\n\n if (\n property.isList &&\n !PLY_PROPERTY_TYPES.includes(property.countType as PlyPropertyType)\n ) {\n return false;\n }\n\n if (!PLY_PROPERTY_TYPES.includes(property.type)) {\n return false;\n }\n }\n return true;\n}\n\nfunction createCompiledParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct the parser function source.\n const parserSrc: string[] = [\"let list;\"];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parserSrc.push(/*js*/ `\n item.f_rest[${fRestIndex}] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else if (!property.isList) {\n parserSrc.push(/*js*/ `\n item['${propertyName}'] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else {\n // Property is a list, so parse the count first\n parserSrc.push(/*js*/ `\n list = item['${propertyName}'];\n list.length = PARSE_FIELD['${property.countType}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.countType as PlyPropertyType]};\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n }\n `);\n }\n }\n parserSrc.push(\"return offset;\");\n\n const fn = new Function(\n \"data\",\n \"offset\",\n \"item\",\n \"PARSE_FIELD\",\n parserSrc.join(\"\\n\"),\n );\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => fn(data, offset, item, PARSE_FIELD);\n}\n\nfunction createDynamicParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct an array of parser function to parse each property in an item\n const parsers: Array<\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => number\n > = [];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n (item.f_rest as number[])[fRestIndex] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else if (!property.isList) {\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n item[propertyName] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else {\n // Property is a list, so parse the count first\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n const list = item[propertyName] as number[];\n list.length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n littleEndian,\n );\n let currentOffset =\n offset + FIELD_BYTES[property.countType as PlyPropertyType];\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD[property.type](\n data,\n currentOffset,\n littleEndian,\n );\n currentOffset += FIELD_BYTES[property.type];\n }\n return currentOffset;\n },\n );\n }\n }\n\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n let currentOffset = offset;\n for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) {\n currentOffset = parsers[parserIndex](data, currentOffset, item);\n }\n return currentOffset;\n };\n}\n\nfunction getNumSh(properties: Record) {\n let num_f_rest = 0;\n while (properties[`f_rest_${num_f_rest}`]) {\n num_f_rest += 1;\n }\n const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest];\n if (numSh == null) {\n throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`);\n }\n return numSh;\n}\n\ntype SSChunk = {\n min_x: number;\n min_y: number;\n min_z: number;\n max_x: number;\n max_y: number;\n max_z: number;\n min_scale_x: number;\n min_scale_y: number;\n min_scale_z: number;\n max_scale_x: number;\n max_scale_y: number;\n max_scale_z: number;\n min_r?: number;\n min_g?: number;\n min_b?: number;\n max_r?: number;\n max_g?: number;\n max_b?: number;\n};\n","import type { SplatEncoding } from \"./defines\";\nimport { computeMaxSplats, setPackedSplat } from \"./utils\";\n\nexport function decodeAntiSplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n) {\n const numSplats = Math.floor(fileBytes.length / 32); // 32 bytes per splat\n if (numSplats * 32 !== fileBytes.length) {\n throw new Error(\"Invalid .splat file size\");\n }\n initNumSplats(numSplats);\n\n const f32 = new Float32Array(fileBytes.buffer);\n for (let i = 0; i < numSplats; ++i) {\n const i32 = i * 32;\n const i8 = i * 8;\n const x = f32[i8 + 0];\n const y = f32[i8 + 1];\n const z = f32[i8 + 2];\n const scaleX = f32[i8 + 3];\n const scaleY = f32[i8 + 4];\n const scaleZ = f32[i8 + 5];\n const r = fileBytes[i32 + 24] / 255;\n const g = fileBytes[i32 + 25] / 255;\n const b = fileBytes[i32 + 26] / 255;\n const opacity = fileBytes[i32 + 27] / 255;\n const quatW = (fileBytes[i32 + 28] - 128) / 128;\n const quatX = (fileBytes[i32 + 29] - 128) / 128;\n const quatY = (fileBytes[i32 + 30] - 128) / 128;\n const quatZ = (fileBytes[i32 + 31] - 128) / 128;\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n }\n}\n\nexport function unpackAntiSplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n} {\n let numSplats = 0;\n let maxSplats = 0;\n let packedArray = new Uint32Array(0);\n decodeAntiSplat(\n fileBytes,\n (cbNumSplats) => {\n numSplats = cbNumSplats;\n maxSplats = computeMaxSplats(numSplats);\n packedArray = new Uint32Array(maxSplats * 4);\n },\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n setPackedSplat(\n packedArray,\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n },\n );\n return { packedArray, numSplats };\n}\n","import type { SplatEncoding } from \"./defines\";\nimport {\n computeMaxSplats,\n encodeSh1Rgb,\n encodeSh2Rgb,\n encodeSh3Rgb,\n fromHalf,\n setPackedSplat,\n} from \"./utils\";\n\ntype KsplatCompression = {\n bytesPerCenter: number;\n bytesPerScale: number;\n bytesPerRotation: number;\n bytesPerColor: number;\n bytesPerSphericalHarmonicsComponent: number;\n scaleOffsetBytes: number;\n rotationOffsetBytes: number;\n colorOffsetBytes: number;\n sphericalHarmonicsOffsetBytes: number;\n scaleRange: number;\n};\n\nconst KSPLAT_COMPRESSION: Record = {\n 0: {\n bytesPerCenter: 12,\n bytesPerScale: 12,\n bytesPerRotation: 16,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 4,\n scaleOffsetBytes: 12,\n rotationOffsetBytes: 24,\n colorOffsetBytes: 40,\n sphericalHarmonicsOffsetBytes: 44,\n scaleRange: 1,\n },\n 1: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 2,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n 2: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 1,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n};\n\nconst KSPLAT_SH_DEGREE_TO_COMPONENTS: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nexport function decodeKsplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n) {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n initNumSplats(numSplats);\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n\n if (sphericalHarmonicsDegree >= 1 && sh1) {\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n if (sh2) {\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n }\n if (sh3) {\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n sectionBase += storageSizeBytes;\n }\n}\n\nexport function unpackKsplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n} {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n setPackedSplat(\n packedArray,\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n\n if (sphericalHarmonicsDegree >= 1) {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n encodeSh1Rgb(extra.sh1 as Uint32Array, i, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n encodeSh2Rgb(extra.sh2 as Uint32Array, i, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n encodeSh3Rgb(extra.sh3 as Uint32Array, i, sh3, splatEncoding);\n }\n }\n }\n sectionBase += storageSizeBytes;\n }\n return { packedArray, numSplats, extra };\n}\n","import * as THREE from \"three\";\nimport {\n SplatData,\n type TranscodeSpzInput,\n getSplatFileType,\n getSplatFileTypeFromPath,\n} from \"./SplatLoader\";\nimport { GunzipReader, fromHalf, normalize } from \"./utils\";\n\nimport { decodeAntiSplat } from \"./antisplat\";\nimport { SplatFileType } from \"./defines\";\nimport { decodeKsplat } from \"./ksplat\";\nimport { PlyReader } from \"./ply\";\n\n// SPZ file format reader\n\nexport class SpzReader {\n fileBytes: Uint8Array;\n reader: GunzipReader;\n\n version = -1;\n numSplats = 0;\n shDegree = 0;\n fractionalBits = 0;\n flags = 0;\n flagAntiAlias = false;\n flagLod = false;\n reserved = 0;\n headerParsed = false;\n parsed = false;\n\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n this.reader = new GunzipReader({\n fileBytes: this.fileBytes as Uint8Array,\n });\n }\n\n async parseHeader() {\n if (this.headerParsed) {\n throw new Error(\"SPZ file header already parsed\");\n }\n\n const header = new DataView((await this.reader.read(16)).buffer);\n if (header.getUint32(0, true) !== 0x5053474e) {\n throw new Error(\"Invalid SPZ file\");\n }\n this.version = header.getUint32(4, true);\n if (this.version < 1 || this.version > 3) {\n throw new Error(`Unsupported SPZ version: ${this.version}`);\n }\n\n this.numSplats = header.getUint32(8, true);\n this.shDegree = header.getUint8(12);\n this.fractionalBits = header.getUint8(13);\n this.flags = header.getUint8(14);\n this.flagAntiAlias = (this.flags & 0x01) !== 0;\n this.flagLod = (this.flags & 0x80) !== 0;\n this.reserved = header.getUint8(15);\n this.headerParsed = true;\n this.parsed = false;\n }\n\n async parseSplats(\n centerCallback?: (index: number, x: number, y: number, z: number) => void,\n alphaCallback?: (index: number, alpha: number) => void,\n rgbCallback?: (index: number, r: number, g: number, b: number) => void,\n scalesCallback?: (\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n ) => void,\n quatCallback?: (\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n {\n childCounts,\n childStarts,\n }: {\n childCounts?: (index: number, count: number) => void;\n childStarts?: (index: number, start: number) => void;\n } = {},\n ) {\n if (!this.headerParsed) {\n throw new Error(\"SPZ file header must be parsed first\");\n }\n if (this.parsed) {\n throw new Error(\"SPZ file already parsed\");\n }\n this.parsed = true;\n\n if (this.version === 1) {\n // float16 centers\n const centerBytes = await this.reader.read(this.numSplats * 3 * 2);\n const centerUint16 = new Uint16Array(centerBytes.buffer);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const x = fromHalf(centerUint16[i3]);\n const y = fromHalf(centerUint16[i3 + 1]);\n const z = fromHalf(centerUint16[i3 + 2]);\n centerCallback?.(i, x, y, z);\n }\n } else if (this.version === 2 || this.version === 3) {\n // 24-bit fixed-point centers\n const fixed = 1 << this.fractionalBits;\n const centerBytes = await this.reader.read(this.numSplats * 3 * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i9 = i * 9;\n const x =\n (((centerBytes[i9 + 2] << 24) |\n (centerBytes[i9 + 1] << 16) |\n (centerBytes[i9] << 8)) >>\n 8) /\n fixed;\n const y =\n (((centerBytes[i9 + 5] << 24) |\n (centerBytes[i9 + 4] << 16) |\n (centerBytes[i9 + 3] << 8)) >>\n 8) /\n fixed;\n const z =\n (((centerBytes[i9 + 8] << 24) |\n (centerBytes[i9 + 7] << 16) |\n (centerBytes[i9 + 6] << 8)) >>\n 8) /\n fixed;\n centerCallback?.(i, x, y, z);\n }\n } else {\n throw new Error(\"Unreachable\");\n }\n\n {\n const bytes = await this.reader.read(this.numSplats);\n for (let i = 0; i < this.numSplats; i++) {\n alphaCallback?.(i, bytes[i] / 255);\n }\n }\n {\n const rgbBytes = await this.reader.read(this.numSplats * 3);\n const scale = SH_C0 / 0.15;\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const r = (rgbBytes[i3] / 255 - 0.5) * scale + 0.5;\n const g = (rgbBytes[i3 + 1] / 255 - 0.5) * scale + 0.5;\n const b = (rgbBytes[i3 + 2] / 255 - 0.5) * scale + 0.5;\n rgbCallback?.(i, r, g, b);\n }\n }\n {\n const scalesBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const scaleX = Math.exp(scalesBytes[i3] / 16 - 10);\n const scaleY = Math.exp(scalesBytes[i3 + 1] / 16 - 10);\n const scaleZ = Math.exp(scalesBytes[i3 + 2] / 16 - 10);\n scalesCallback?.(i, scaleX, scaleY, scaleZ);\n }\n }\n if (this.version === 3) {\n // Version 3 uses a trick called \"smallest three\" to compress the rotation quaternions\n // achieving better precision. \"Optimizing orientation\" section at https://gafferongames.com/post/snapshot_compression/ A quaternion length must be 1: x^2+y^2+z^2+w^2 = 1\n // We can drop one component and reconstruct it with the identity above.\n // Largest component is dropped for best numerical precision.\n // Quaternion stored in 32 bits\n // 10 bits singed integer for each of the 3 components + 2 bits indicating the index of dropped component.\n // vs 8 bits for each component uncompressed (spz version < 3)\n // Max Value after extracting largest component v is another component v\n // (v,v,0,0)\n // v^2 + v^2 = 1\n // v = 1 / sqrt(2);\n const maxValue = 1 / Math.sqrt(2); // 0.7071\n const quatBytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 4;\n const quaternion = [0, 0, 0, 0];\n const values = [\n quatBytes[i3],\n quatBytes[i3 + 1],\n quatBytes[i3 + 2],\n quatBytes[i3 + 3],\n ];\n // all values are packed in 32 bits (10 per each of 3 components + 2 bits of index of larged value)\n const combinedValues =\n values[0] + (values[1] << 8) + (values[2] << 16) + (values[3] << 24);\n // each component value is 9 bits + sign (1 bit)\n const valueMask = (1 << 9) - 1;\n // extract index of the largest element. 2 top bits.\n const largestIndex = combinedValues >>> 30;\n let remainingValues = combinedValues;\n let sumSquares = 0;\n\n for (let i = 3; i >= 0; --i) {\n if (i !== largestIndex) {\n // extract current value and sign.\n const value = remainingValues & valueMask;\n const sign = (remainingValues >>> 9) & 0x1;\n // each value is represented as 10 bits. Shift to next one.\n remainingValues = remainingValues >>> 10;\n // convert to range [0,1] and then to [0, 0.7071]\n quaternion[i] = maxValue * (value / valueMask);\n // apply sign.\n quaternion[i] = sign === 0 ? quaternion[i] : -quaternion[i];\n // accumulate the sum of squares\n sumSquares += quaternion[i] * quaternion[i];\n }\n }\n\n // quartenion length must be 1 (x^2+y^2+z^2+w^2 = 1)\n // so can reconstruct largest component from the other 3.\n // w = sqrt(1 - x^2 - y^2 - z^2);\n const square = 1 - sumSquares;\n quaternion[largestIndex] = Math.sqrt(Math.max(square, 0));\n\n quatCallback?.(\n i,\n quaternion[0],\n quaternion[1],\n quaternion[2],\n quaternion[3],\n );\n }\n } else {\n const quatBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const quatX = quatBytes[i3] / 127.5 - 1;\n const quatY = quatBytes[i3 + 1] / 127.5 - 1;\n const quatZ = quatBytes[i3 + 2] / 127.5 - 1;\n const quatW = Math.sqrt(\n Math.max(0, 1 - quatX * quatX - quatY * quatY - quatZ * quatZ),\n );\n quatCallback?.(i, quatX, quatY, quatZ, quatW);\n }\n }\n\n if (shCallback && this.shDegree >= 1) {\n const sh1 = new Float32Array(3 * 3);\n const sh2 = this.shDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 = this.shDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n const shBytes = await this.reader.read(\n this.numSplats * SH_DEGREE_TO_VECS[this.shDegree] * 3,\n );\n\n let offset = 0;\n for (let i = 0; i < this.numSplats; i++) {\n for (let j = 0; j < 9; ++j) {\n sh1[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 9;\n if (sh2) {\n for (let j = 0; j < 15; ++j) {\n sh2[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 15;\n }\n if (sh3) {\n for (let j = 0; j < 21; ++j) {\n sh3[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 21;\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n if (this.flagLod) {\n let bytes = await this.reader.read(this.numSplats * 2);\n for (let i = 0; i < this.numSplats; i++) {\n const i2 = i * 2;\n const count = bytes[i2] + (bytes[i2 + 1] << 8);\n childCounts?.(i, count);\n }\n\n bytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i4 = i * 4;\n const start =\n bytes[i4] +\n (bytes[i4 + 1] << 8) +\n (bytes[i4 + 2] << 16) +\n (bytes[i4 + 3] << 24);\n childStarts?.(i, start);\n }\n }\n }\n}\n\nconst SH_DEGREE_TO_VECS: Record = { 1: 3, 2: 8, 3: 15 };\nconst SH_C0 = 0.28209479177387814;\n\nexport const SPZ_MAGIC = 0x5053474e; // NGSP = Niantic gaussian splat\nexport const SPZ_VERSION = 3;\nexport const FLAG_ANTIALIASED = 0x1;\n\nexport class SpzWriter {\n buffer: ArrayBuffer;\n view: DataView;\n numSplats: number;\n shDegree: number;\n fractionalBits: number;\n fraction: number;\n flagAntiAlias: boolean;\n clippedCount = 0;\n\n constructor({\n numSplats,\n shDegree,\n fractionalBits = 12,\n flagAntiAlias = true,\n }: {\n numSplats: number;\n shDegree: number;\n fractionalBits?: number;\n flagAntiAlias?: boolean;\n }) {\n const splatSize =\n 9 + // Position\n 1 + // Opacity\n 3 + // Scale\n 3 + // DC-rgb\n 4 + // Rotation\n (shDegree >= 1 ? 9 : 0) +\n (shDegree >= 2 ? 15 : 0) +\n (shDegree >= 3 ? 21 : 0);\n const bufferSize = 16 + numSplats * splatSize;\n this.buffer = new ArrayBuffer(bufferSize);\n this.view = new DataView(this.buffer);\n\n this.view.setUint32(0, SPZ_MAGIC, true); // NGSP\n this.view.setUint32(4, SPZ_VERSION, true);\n this.view.setUint32(8, numSplats, true);\n this.view.setUint8(12, shDegree);\n this.view.setUint8(13, fractionalBits);\n this.view.setUint8(14, flagAntiAlias ? FLAG_ANTIALIASED : 0);\n this.view.setUint8(15, 0); // Reserved\n\n this.numSplats = numSplats;\n this.shDegree = shDegree;\n this.fractionalBits = fractionalBits;\n this.fraction = 1 << fractionalBits;\n this.flagAntiAlias = flagAntiAlias;\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n // Divide by this.fraction and round to nearest integer,\n // then write as 3-bytes per x then y then z.\n const xRounded = Math.round(x * this.fraction);\n const xInt = Math.max(-0x7fffff, Math.min(0x7fffff, xRounded));\n const yRounded = Math.round(y * this.fraction);\n const yInt = Math.max(-0x7fffff, Math.min(0x7fffff, yRounded));\n const zRounded = Math.round(z * this.fraction);\n const zInt = Math.max(-0x7fffff, Math.min(0x7fffff, zRounded));\n const clipped = xRounded !== xInt || yRounded !== yInt || zRounded !== zInt;\n if (clipped) {\n this.clippedCount += 1;\n // if (this.clippedCount < 10) {\n // // Write x y z also in hex\n // console.log(`Clipped ${index}: ${x}, ${y}, ${z} (0x${x.toString(16)}, 0x${y.toString(16)}, 0x${z.toString(16)}) -> ${xRounded}, ${yRounded}, ${zRounded} (0x${xRounded.toString(16)}, 0x${yRounded.toString(16)}, 0x${zRounded.toString(16)}) -> ${xInt}, ${yInt}, ${zInt} (0x${xInt.toString(16)}, 0x${yInt.toString(16)}, 0x${zInt.toString(16)})`);\n // }\n }\n const i9 = index * 9;\n const base = 16 + i9;\n this.view.setUint8(base, xInt & 0xff);\n this.view.setUint8(base + 1, (xInt >> 8) & 0xff);\n this.view.setUint8(base + 2, (xInt >> 16) & 0xff);\n this.view.setUint8(base + 3, yInt & 0xff);\n this.view.setUint8(base + 4, (yInt >> 8) & 0xff);\n this.view.setUint8(base + 5, (yInt >> 16) & 0xff);\n this.view.setUint8(base + 6, zInt & 0xff);\n this.view.setUint8(base + 7, (zInt >> 8) & 0xff);\n this.view.setUint8(base + 8, (zInt >> 16) & 0xff);\n }\n\n setAlpha(index: number, alpha: number) {\n const base = 16 + this.numSplats * 9 + index;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round(alpha * 255))),\n );\n }\n\n static scaleRgb(r: number) {\n const v = ((r - 0.5) / (SH_C0 / 0.15) + 0.5) * 255;\n return Math.max(0, Math.min(255, Math.round(v)));\n }\n\n setRgb(index: number, r: number, g: number, b: number) {\n const base = 16 + this.numSplats * 10 + index * 3;\n this.view.setUint8(base, SpzWriter.scaleRgb(r));\n this.view.setUint8(base + 1, SpzWriter.scaleRgb(g));\n this.view.setUint8(base + 2, SpzWriter.scaleRgb(b));\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n const base = 16 + this.numSplats * 13 + index * 3;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleX) + 10) * 16))),\n );\n this.view.setUint8(\n base + 1,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleY) + 10) * 16))),\n );\n this.view.setUint8(\n base + 2,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleZ) + 10) * 16))),\n );\n }\n\n setQuat(\n index: number,\n ...q: [number, number, number, number] // x, y, z, w\n ) {\n const base = 16 + this.numSplats * 16 + index * 4;\n\n const quat = normalize(q);\n\n // Find largest component\n let iLargest = 0;\n for (let i = 1; i < 4; ++i) {\n if (Math.abs(quat[i]) > Math.abs(quat[iLargest])) {\n iLargest = i;\n }\n }\n\n // Since -quat represents the same rotation as quat, transform the quaternion so the largest element\n // is positive. This avoids having to send its sign bit.\n const negate = quat[iLargest] < 0 ? 1 : 0;\n\n // Do compression using sign bit and 9-bit precision per element.\n let comp = iLargest;\n for (let i = 0; i < 4; ++i) {\n if (i !== iLargest) {\n const negbit = (quat[i] < 0 ? 1 : 0) ^ negate;\n const mag = Math.floor(\n ((1 << 9) - 1) * (Math.abs(quat[i]) / Math.SQRT1_2) + 0.5,\n );\n comp = (comp << 10) | (negbit << 9) | mag;\n }\n }\n\n this.view.setUint8(base, comp & 0xff);\n this.view.setUint8(base + 1, (comp >> 8) & 0xff);\n this.view.setUint8(base + 2, (comp >> 16) & 0xff);\n this.view.setUint8(base + 3, (comp >>> 24) & 0xff);\n }\n\n static quantizeSh(sh: number, bits: number) {\n const value = Math.round(sh * 128) + 128;\n const bucketSize = 1 << (8 - bits);\n const quantized =\n Math.floor((value + bucketSize / 2) / bucketSize) * bucketSize;\n return Math.max(0, Math.min(255, quantized));\n }\n\n setSh(\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) {\n const shVecs = SH_DEGREE_TO_VECS[this.shDegree] || 0;\n const base1 = 16 + this.numSplats * 20 + index * shVecs * 3;\n for (let j = 0; j < 9; ++j) {\n this.view.setUint8(base1 + j, SpzWriter.quantizeSh(sh1[j], 5));\n }\n if (sh2) {\n const base2 = base1 + 9;\n for (let j = 0; j < 15; ++j) {\n this.view.setUint8(base2 + j, SpzWriter.quantizeSh(sh2[j], 4));\n }\n if (sh3) {\n const base3 = base2 + 15;\n for (let j = 0; j < 21; ++j) {\n this.view.setUint8(base3 + j, SpzWriter.quantizeSh(sh3[j], 4));\n }\n }\n }\n }\n\n async finalize(): Promise {\n const input = new Uint8Array(this.buffer);\n const stream = new ReadableStream({\n async start(controller) {\n controller.enqueue(input);\n controller.close();\n },\n });\n const compressed = stream.pipeThrough(new CompressionStream(\"gzip\"));\n const response = new Response(compressed);\n const buffer = await response.arrayBuffer();\n console.log(\n \"Compressed\",\n input.length,\n \"bytes to\",\n buffer.byteLength,\n \"bytes\",\n );\n return new Uint8Array(buffer);\n }\n}\n\nexport async function transcodeSpz(input: TranscodeSpzInput) {\n const splats = new SplatData();\n const {\n inputs,\n clipXyz,\n maxSh,\n fractionalBits = 12,\n opacityThreshold,\n } = input;\n for (const input of inputs) {\n const scale = input.transform?.scale ?? 1;\n const quaternion = new THREE.Quaternion().fromArray(\n input.transform?.quaternion ?? [0, 0, 0, 1],\n );\n const translate = new THREE.Vector3().fromArray(\n input.transform?.translate ?? [0, 0, 0],\n );\n const clip = clipXyz\n ? new THREE.Box3(\n new THREE.Vector3().fromArray(clipXyz.min),\n new THREE.Vector3().fromArray(clipXyz.max),\n )\n : undefined;\n\n function transformPos(pos: THREE.Vector3) {\n pos.multiplyScalar(scale);\n pos.applyQuaternion(quaternion);\n pos.add(translate);\n return pos;\n }\n\n function transformScales(scales: THREE.Vector3) {\n scales.multiplyScalar(scale);\n return scales;\n }\n\n function transformQuaternion(quat: THREE.Quaternion) {\n quat.premultiply(quaternion);\n return quat;\n }\n\n function withinClip(p: THREE.Vector3) {\n return !clip || clip.containsPoint(p);\n }\n\n function withinOpacity(opacity: number) {\n return opacityThreshold !== undefined\n ? opacity >= opacityThreshold\n : true;\n }\n\n let fileType = input.fileType;\n if (!fileType) {\n fileType = getSplatFileType(input.fileBytes);\n if (!fileType && input.pathOrUrl) {\n fileType = getSplatFileTypeFromPath(input.pathOrUrl);\n }\n }\n switch (fileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes: input.fileBytes });\n await ply.parseHeader();\n let lastIndex: number | null = null;\n ply.parseSplats(\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (sh1 && lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n }\n if (sh2 && lastIndex !== null) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3 && lastIndex !== null) {\n splats.setSh3(lastIndex, sh3);\n }\n },\n );\n break;\n }\n case SplatFileType.SPZ: {\n const spz = new SpzReader({ fileBytes: input.fileBytes });\n await spz.parseHeader();\n const mapping = new Int32Array(spz.numSplats);\n mapping.fill(-1);\n const centers = new Float32Array(spz.numSplats * 3);\n const center = new THREE.Vector3();\n spz.parseSplats(\n (index, x, y, z) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n centers[index * 3] = center.x;\n centers[index * 3 + 1] = center.y;\n centers[index * 3 + 2] = center.z;\n },\n (index, alpha) => {\n center.fromArray(centers, index * 3);\n if (withinClip(center) && withinOpacity(alpha)) {\n mapping[index] = splats.pushSplat();\n splats.setCenter(mapping[index], center.x, center.y, center.z);\n splats.setOpacity(mapping[index], alpha);\n }\n },\n (index, r, g, b) => {\n if (mapping[index] >= 0) {\n splats.setColor(mapping[index], r, g, b);\n }\n },\n (index, scaleX, scaleY, scaleZ) => {\n if (mapping[index] >= 0) {\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(mapping[index], scales.x, scales.y, scales.z);\n }\n },\n (index, quatX, quatY, quatZ, quatW) => {\n if (mapping[index] >= 0) {\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n mapping[index],\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n }\n },\n (index, sh1, sh2, sh3) => {\n if (mapping[index] >= 0) {\n splats.setSh1(mapping[index], sh1);\n if (sh2) {\n splats.setSh2(mapping[index], sh2);\n }\n if (sh3) {\n splats.setSh3(mapping[index], sh3);\n }\n }\n },\n );\n break;\n }\n case SplatFileType.SPLAT:\n decodeAntiSplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n const index = splats.pushSplat();\n splats.setCenter(index, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(index, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n index,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(index, opacity);\n splats.setColor(index, r, g, b);\n }\n },\n );\n break;\n case SplatFileType.KSPLAT: {\n let lastIndex: number | null = null;\n decodeKsplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n if (sh2) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3) {\n splats.setSh3(lastIndex, sh3);\n }\n }\n },\n );\n break;\n }\n default:\n throw new Error(`transcodeSpz not implemented for ${fileType}`);\n }\n }\n\n const shDegree = Math.min(\n maxSh ?? 3,\n splats.sh3 ? 3 : splats.sh2 ? 2 : splats.sh1 ? 1 : 0,\n );\n const spz = new SpzWriter({\n numSplats: splats.numSplats,\n shDegree,\n fractionalBits,\n flagAntiAlias: true,\n });\n\n for (let i = 0; i < splats.numSplats; ++i) {\n const i3 = i * 3;\n const i4 = i * 4;\n spz.setCenter(\n i,\n splats.centers[i3],\n splats.centers[i3 + 1],\n splats.centers[i3 + 2],\n );\n spz.setScale(\n i,\n splats.scales[i3],\n splats.scales[i3 + 1],\n splats.scales[i3 + 2],\n );\n spz.setQuat(\n i,\n splats.quaternions[i4],\n splats.quaternions[i4 + 1],\n splats.quaternions[i4 + 2],\n splats.quaternions[i4 + 3],\n );\n spz.setAlpha(i, splats.opacities[i]);\n spz.setRgb(\n i,\n splats.colors[i3],\n splats.colors[i3 + 1],\n splats.colors[i3 + 2],\n );\n if (splats.sh1 && shDegree >= 1) {\n spz.setSh(\n i,\n splats.sh1.slice(i * 9, (i + 1) * 9),\n shDegree >= 2 && splats.sh2\n ? splats.sh2.slice(i * 15, (i + 1) * 15)\n : undefined,\n shDegree >= 3 && splats.sh3\n ? splats.sh3.slice(i * 21, (i + 1) * 21)\n : undefined,\n );\n }\n }\n\n const spzBytes = await spz.finalize();\n return { fileBytes: spzBytes, clippedCount: spz.clippedCount };\n}\n","import * as THREE from \"three\";\n\n// SplatSkinning is an experimental class that implements dual-quaternion\n// skeletal animation for Gsplats. A skeletal animation system consists\n// of a set of bones, each with a \"rest\" pose that consists of a position\n// and orientation, and a weighting of up to 4 bones for each Gsplat.\n// By moving and rotating the bones you can animate all the Gsplats like\n// your would for a normal 3D animated mesh.\n// Note that the dual-quaternion formulation assumes that mass/volume\n// is conserved through these transformations, which helps avoid common\n// issues with linear blend skinning such as joint collapse or bulging.\n// However, it is not as good a fit for animations that involve explicit\n// deformations, such as cartoon animations.\n\nimport type { SplatMesh } from \"./SplatMesh\";\nimport {\n CovSplat,\n Dyno,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize, newArray } from \"./utils\";\n\nexport enum SplatSkinningMode {\n DUAL_QUATERNION = \"dual_quaternion\",\n LINEAR_BLEND = \"linear_blend\",\n}\n\nexport type SplatSkinningOptions = {\n // Specifies the SplatMesh that will be animated.\n mesh: SplatMesh;\n // Overrides the number of Gsplats in the mesh that will be animated.\n // (default: mesh.numSplats)\n numSplats?: number;\n // Set the number of bones used to animate the SplatMesh, with a maximum\n // of 256 (in order to compactly encode the bone index). (default: 256)\n numBones?: number;\n // Set the mode of skinning to use.\n // (default: DUAL_QUATERNION)\n mode?: SplatSkinningMode;\n};\n\nexport class SplatSkinning {\n mesh: SplatMesh;\n numSplats: number;\n mode: SplatSkinningMode;\n\n // Store the skinning weights for each Gsplat, composed of a 4-vector\n // of bone indices and weight\n skinData: Uint16Array;\n skinTexture: THREE.DataArrayTexture;\n\n numBones: number;\n boneData: Float32Array;\n boneTexture: THREE.DataTexture;\n\n boneRestQuatPosScale: {\n quat: THREE.Quaternion;\n pos: THREE.Vector3;\n scale: THREE.Vector3;\n }[];\n boneRestInvMats: THREE.Matrix4[];\n\n uniform: DynoUniform;\n\n constructor(options: SplatSkinningOptions) {\n this.mesh = options.mesh;\n this.numSplats = options.numSplats ?? this.mesh.numSplats;\n this.mode = options.mode ?? SplatSkinningMode.DUAL_QUATERNION;\n\n const { width, height, depth, maxSplats } = getTextureSize(this.numSplats);\n this.skinData = new Uint16Array(maxSplats * 4);\n this.skinTexture = new THREE.DataArrayTexture(\n this.skinData,\n width,\n height,\n depth,\n );\n this.skinTexture.format = THREE.RGBAIntegerFormat;\n this.skinTexture.type = THREE.UnsignedShortType;\n this.skinTexture.internalFormat = \"RGBA16UI\";\n this.skinTexture.needsUpdate = true;\n\n this.numBones = options.numBones ?? 256;\n this.boneData = new Float32Array(this.numBones * 16);\n this.boneTexture = new THREE.DataTexture(\n this.boneData,\n 4,\n this.numBones,\n THREE.RGBAFormat,\n THREE.FloatType,\n );\n this.boneTexture.internalFormat = \"RGBA32F\";\n this.boneTexture.needsUpdate = true;\n\n this.boneRestQuatPosScale = newArray(this.numBones, () => ({\n quat: new THREE.Quaternion(),\n pos: new THREE.Vector3(),\n scale: new THREE.Vector3(),\n }));\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats = newArray(this.numBones, () => new THREE.Matrix4());\n } else {\n this.boneRestInvMats = [];\n }\n\n this.uniform = new DynoUniform({\n key: \"skinning\",\n type: GsplatSkinning,\n globals: () => [defineGsplatSkinning],\n value: {\n numSplats: this.numSplats,\n numBones: this.numBones,\n skinTexture: this.skinTexture,\n boneTexture: this.boneTexture,\n },\n });\n }\n\n // Apply the skeletal animation to a Gsplat in a dyno program.\n modify(gsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"Linear blend skinning requires covSplats=true\");\n }\n return applyGsplatSkinning(gsplat, this.uniform);\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n return applyCovSplatDQSkinning(covsplat, this.uniform);\n }\n return applyCovSplatLBSkinning(covsplat, this.uniform);\n }\n\n // Set the \"rest\" pose for a bone with position and quaternion orientation.\n setRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(SplatSkinning.UNIT_SCALE);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex]\n .compose(pos, quat, SplatSkinning.UNIT_SCALE)\n .invert();\n }\n\n this.setBoneQuatPos(boneIndex, quat, pos);\n }\n\n getRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n }\n\n setRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(scale);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex].compose(pos, quat, scale).invert();\n }\n\n this.setBoneQuatPosScale(boneIndex, quat, pos, scale);\n }\n\n getRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n scale.copy(this.boneRestQuatPosScale[boneIndex].scale);\n }\n\n setRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setRestMat only supported for linear blend skinning\");\n }\n this.boneRestInvMats[boneIndex].copy(matrix).invert();\n this.setBoneMatrix(boneIndex, matrix);\n }\n\n getRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"getRestMat only supported for linear blend skinning\");\n }\n matrix.copy(this.boneRestInvMats[boneIndex]).invert();\n }\n\n // Set the \"current\" position and orientation of a bone.\n setBoneQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n SplatSkinning.relQuat\n .copy(this.boneRestQuatPosScale[boneIndex].quat)\n .invert();\n SplatSkinning.relPos\n .copy(pos)\n .sub(this.boneRestQuatPosScale[boneIndex].pos);\n SplatSkinning.relQuat.multiply(quat);\n SplatSkinning.dual\n .set(\n SplatSkinning.relPos.x,\n SplatSkinning.relPos.y,\n SplatSkinning.relPos.z,\n 0.0,\n )\n .multiply(SplatSkinning.relQuat);\n\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.relQuat.x;\n this.boneData[i16 + 1] = SplatSkinning.relQuat.y;\n this.boneData[i16 + 2] = SplatSkinning.relQuat.z;\n this.boneData[i16 + 3] = SplatSkinning.relQuat.w;\n this.boneData[i16 + 4] = 0.5 * SplatSkinning.dual.x;\n this.boneData[i16 + 5] = 0.5 * SplatSkinning.dual.y;\n this.boneData[i16 + 6] = 0.5 * SplatSkinning.dual.z;\n this.boneData[i16 + 7] = 0.5 * SplatSkinning.dual.w;\n } else {\n this.setBoneQuatPosScale(boneIndex, quat, pos, SplatSkinning.UNIT_SCALE);\n }\n }\n\n setBoneQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n throw new Error(\n \"setBoneQuatPosScale only supported for linear blend skinning\",\n );\n }\n\n SplatSkinning.skinMat.compose(pos, quat, scale);\n this.setBoneMatrix(boneIndex, SplatSkinning.skinMat);\n }\n\n setBoneMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setBoneMatrix only supported for linear blend skinning\");\n }\n\n SplatSkinning.skinMat.multiplyMatrices(\n this.boneRestInvMats[boneIndex],\n matrix,\n );\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.skinMat.elements[0];\n this.boneData[i16 + 1] = SplatSkinning.skinMat.elements[1];\n this.boneData[i16 + 2] = SplatSkinning.skinMat.elements[2];\n this.boneData[i16 + 3] = SplatSkinning.skinMat.elements[4];\n this.boneData[i16 + 4] = SplatSkinning.skinMat.elements[5];\n this.boneData[i16 + 5] = SplatSkinning.skinMat.elements[6];\n this.boneData[i16 + 6] = SplatSkinning.skinMat.elements[8];\n this.boneData[i16 + 7] = SplatSkinning.skinMat.elements[9];\n this.boneData[i16 + 8] = SplatSkinning.skinMat.elements[10];\n this.boneData[i16 + 9] = SplatSkinning.skinMat.elements[12];\n this.boneData[i16 + 10] = SplatSkinning.skinMat.elements[13];\n this.boneData[i16 + 11] = SplatSkinning.skinMat.elements[14];\n }\n\n // Set up to 4 bone indices and weights for a Gsplat. For fewer than 4 bones,\n // you can set the remaining weights to 0 (and index=0).\n setSplatBones(\n splatIndex: number,\n boneIndices: THREE.Vector4,\n weights: THREE.Vector4,\n ) {\n const i4 = splatIndex * 4;\n this.skinData[i4 + 0] =\n Math.min(255, Math.max(0, Math.round(weights.x * 255.0))) +\n (boneIndices.x << 8);\n this.skinData[i4 + 1] =\n Math.min(255, Math.max(0, Math.round(weights.y * 255.0))) +\n (boneIndices.y << 8);\n this.skinData[i4 + 2] =\n Math.min(255, Math.max(0, Math.round(weights.z * 255.0))) +\n (boneIndices.z << 8);\n this.skinData[i4 + 3] =\n Math.min(255, Math.max(0, Math.round(weights.w * 255.0))) +\n (boneIndices.w << 8);\n }\n\n // Call this to indicate that the bones have changed and the Gsplats need to be\n // re-generated with updated skinning.\n updateBones() {\n this.boneTexture.needsUpdate = true;\n this.mesh.needsUpdate = true;\n }\n\n private static UNIT_SCALE = new THREE.Vector3(1, 1, 1);\n private static relQuat = new THREE.Quaternion();\n private static relPos = new THREE.Vector3();\n private static dual = new THREE.Quaternion();\n private static skinMat = new THREE.Matrix4();\n}\n\n// dyno program definitions for SplatSkinning\n\nexport const GsplatSkinning = { type: \"GsplatSkinning\" } as {\n type: \"GsplatSkinning\";\n};\n\nexport const defineGsplatSkinning = unindent(`\n struct GsplatSkinning {\n int numSplats;\n int numBones;\n usampler2DArray skinTexture;\n sampler2D boneTexture;\n };\n`);\n\nexport const defineApplyGsplatSkinning = unindent(`\n void applyGsplatSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec4 quaternion\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n\n center = quatVec(quat, center) + translate;\n quaternion = quatQuat(quat, quaternion);\n }\n`);\n\nfunction applyGsplatSkinning(\n gsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { gsplat: typeof Gsplat; skinning: typeof GsplatSkinning },\n { gsplat: typeof Gsplat }\n >({\n inTypes: { gsplat: Gsplat, skinning: GsplatSkinning },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplatSkinning, defineApplyGsplatSkinning],\n inputs: { gsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n applyGsplatSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${gsplat}.index, ${gsplat}.center, ${gsplat}.quaternion\n );\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nexport const defineApplyCovSplatDQSkinning = unindent(`\n void applyCovSplatDQSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n mat3 basis = quaternionToMatrix(quat);\n\n center = quatVec(quat, center) + translate;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nexport const defineApplyCovSplatLBSkinning = unindent(`\n void applyCovSplatLBSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n mat3 basis = mat3(0.0);\n vec3 offset = vec3(0.0);\n\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n if (boneIndex < numBones) {\n vec4 v0 = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n vec4 v1 = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n vec4 v2 = texelFetch(boneTexture, ivec2(2, boneIndex), 0);\n basis += weights[i] * mat3(v0.x, v0.y, v0.z, v0.w, v1.x, v1.y, v1.z, v1.w, v2.x);\n offset += weights[i] * vec3(v2.y, v2.z, v2.w);\n }\n }\n }\n\n center = basis * center + offset;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nfunction applyCovSplatDQSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatDQSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatDQSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nfunction applyCovSplatLBSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatLBSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatLBSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n","import * as THREE from \"three\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport function constructGrid({\n // PackedSplats object to add splats to\n splats,\n // min and max box extents of the grid\n extents,\n // step size along each grid axis\n stepSize = 1,\n // spherical radius of each Gsplat\n pointRadius = 0.01,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n pointShadowScale = 2.0,\n // Gsplat opacity\n opacity = 1.0,\n // Gsplat color (THREE.Color) or function to set color for position:\n // ((THREE.Color, THREE.Vector3) => void) (default: RGB-modulated grid)\n color,\n}: {\n splats: PackedSplats;\n extents: THREE.Box3;\n stepSize?: number;\n pointRadius?: number;\n pointShadowScale?: number;\n opacity?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const EPSILON = 1.0e-6;\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n if (color == null) {\n color = (color, point) =>\n color.set(\n 0.55 + 0.45 * Math.cos(point.x * 1),\n 0.55 + 0.45 * Math.cos(point.y * 1),\n 0.55 + 0.45 * Math.cos(point.z * 1),\n );\n }\n const pointColor = new THREE.Color();\n for (let z = extents.min.z; z < extents.max.z + EPSILON; z += stepSize) {\n for (let y = extents.min.y; y < extents.max.y + EPSILON; y += stepSize) {\n for (let x = extents.min.x; x < extents.max.x + EPSILON; x += stepSize) {\n center.set(x, y, z);\n for (let layer = 0; layer < 2; ++layer) {\n scales.setScalar(pointRadius * (layer ? 1 : pointShadowScale));\n if (!layer) {\n pointColor.setScalar(0.0);\n } else if (typeof color === \"function\") {\n color(pointColor, center);\n } else {\n pointColor.copy(color);\n }\n splats.pushSplat(center, scales, quaternion, opacity, pointColor);\n }\n }\n }\n }\n}\n\nexport function constructAxes({\n // PackedSplats object to add splats to\n splats,\n // scale (Gsplat scale along axis)\n scale = 0.25,\n // radius of the axes (Gsplat scale orthogonal to axis)\n axisRadius = 0.0075,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n axisShadowScale = 2.0,\n // origins of the axes (default single axis at origin)\n origins = [new THREE.Vector3()],\n}: {\n splats: PackedSplats;\n scale?: number;\n axisRadius?: number;\n axisShadowScale?: number;\n origins?: THREE.Vector3[];\n}) {\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const color = new THREE.Color();\n const opacity = 1.0;\n for (const origin of origins) {\n for (let axis = 0; axis < 3; ++axis) {\n center.set(\n origin.x + (axis === 0 ? scale : 0),\n origin.y + (axis === 1 ? scale : 0),\n origin.z + (axis === 2 ? scale : 0),\n );\n for (let layer = 0; layer < 2; ++layer) {\n scales.set(\n (axis === 0 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 1 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 2 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n );\n color.setRGB(\n layer === 0 ? 0.0 : axis === 0 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 1 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 2 ? 1.0 : 0.0,\n );\n splats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n }\n}\n\nexport function constructSpherePoints({\n // PackedSplats object to add splats to\n splats,\n // center of the sphere (default: origin)\n origin = new THREE.Vector3(),\n // radius of the sphere\n radius = 1.0,\n // maximum depth of recursion for subdividing the sphere\n // Warning: Gsplat count grows exponentially with depth\n maxDepth = 3,\n // filter function to apply to each point, for example to select\n // points in a certain direction or other function ((THREE.Vector3) => boolean)\n // (default: null)\n filter = null,\n // radius of each oriented Gsplat\n pointRadius = 0.02,\n // flatness of each oriented Gsplat\n pointThickness = 0.001,\n // color of each Gsplat (THREE.Color) or function to set color for point:\n // ((THREE.Color, THREE.Vector3) => void) (default: white)\n color = new THREE.Color(1, 1, 1),\n}: {\n splats: PackedSplats;\n origin?: THREE.Vector3;\n radius?: number;\n maxDepth?: number;\n filter?: ((point: THREE.Vector3) => boolean) | null;\n pointRadius?: number;\n pointThickness?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const pointsHash: { [key: string]: THREE.Vector3 } = {};\n\n function addPoint(p: THREE.Vector3) {\n if (filter && !filter(p)) {\n return;\n }\n const key = `${p.x},${p.y},${p.z}`;\n if (!pointsHash[key]) {\n pointsHash[key] = p;\n }\n }\n\n function recurse(\n depth: number,\n p0: THREE.Vector3,\n p1: THREE.Vector3,\n p2: THREE.Vector3,\n ) {\n addPoint(p0);\n addPoint(p1);\n addPoint(p2);\n if (depth >= maxDepth) {\n return;\n }\n const p01 = new THREE.Vector3().addVectors(p0, p1).normalize();\n const p12 = new THREE.Vector3().addVectors(p1, p2).normalize();\n const p20 = new THREE.Vector3().addVectors(p2, p0).normalize();\n recurse(depth + 1, p0, p01, p20);\n recurse(depth + 1, p01, p1, p12);\n recurse(depth + 1, p20, p12, p2);\n recurse(depth + 1, p01, p12, p20);\n }\n\n for (const x of [-1, 1]) {\n for (const y of [-1, 1]) {\n for (const z of [-1, 1]) {\n const p0 = new THREE.Vector3(x, 0, 0);\n const p1 = new THREE.Vector3(0, y, 0);\n const p2 = new THREE.Vector3(0, 0, z);\n recurse(0, p0, p1, p2);\n }\n }\n }\n\n const points = Object.values(pointsHash);\n const scales = new THREE.Vector3(pointRadius, pointRadius, pointThickness);\n const quaternion = new THREE.Quaternion();\n const pointColor = typeof color === \"function\" ? new THREE.Color() : color;\n for (const point of points) {\n quaternion.setFromUnitVectors(new THREE.Vector3(0, 0, -1), point);\n if (typeof color === \"function\") {\n color(pointColor, point);\n }\n point.multiplyScalar(radius);\n point.add(origin);\n splats.pushSplat(point, scales, quaternion, 1.0, pointColor);\n }\n}\n\nexport function textSplats({\n // text string to display\n text,\n // browser font to render text with (default: \"Arial\")\n font,\n // font size in pixels/Gsplats (default: 32)\n fontSize,\n // SplatMesh.recolor tint assuming white Gsplats (default: white)\n color,\n // Individual Gsplat color (default: white)\n rgb,\n // Gsplat radius (default: 0.8 covers 1-unit spacing well)\n dotRadius,\n // text alignment: \"left\", \"center\", \"right\", \"start\", \"end\" (default: \"start\")\n textAlign,\n // line spacing multiplier, lines delimited by \"\\n\" (default: 1.0)\n lineHeight,\n // Coordinate scale in object-space (default: 1.0)\n objectScale,\n}: {\n text: string;\n font?: string;\n fontSize?: number;\n color?: THREE.Color;\n rgb?: THREE.Color;\n dotRadius?: number;\n textAlign?: \"left\" | \"center\" | \"right\" | \"start\" | \"end\";\n lineHeight?: number;\n objectScale?: number;\n}) {\n font = font ?? \"Arial\";\n fontSize = fontSize ?? 32;\n color = color ?? new THREE.Color(1, 1, 1);\n dotRadius = dotRadius ?? 0.8;\n textAlign = textAlign ?? \"start\";\n lineHeight = lineHeight ?? 1;\n objectScale = objectScale ?? 1;\n const lines = text.split(\"\\n\");\n\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Failed to create canvas context\");\n }\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n const metrics = ctx.measureText(\"\");\n const fontHeight =\n metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent;\n\n let minLeft = Number.POSITIVE_INFINITY;\n let maxRight = Number.NEGATIVE_INFINITY;\n let minTop = Number.POSITIVE_INFINITY;\n let maxBottom = Number.NEGATIVE_INFINITY;\n for (let line = 0; line < lines.length; ++line) {\n const metrics = ctx.measureText(lines[line]);\n const y = fontHeight * lineHeight * line;\n minLeft = Math.min(minLeft, -metrics.actualBoundingBoxLeft);\n maxRight = Math.max(maxRight, metrics.actualBoundingBoxRight);\n minTop = Math.min(minTop, y - metrics.actualBoundingBoxAscent);\n maxBottom = Math.max(maxBottom, y + metrics.actualBoundingBoxDescent);\n }\n const originLeft = Math.floor(minLeft);\n const originTop = Math.floor(minTop);\n const width = Math.ceil(maxRight) - originLeft;\n const height = Math.ceil(maxBottom) - originTop;\n canvas.width = width;\n canvas.height = height;\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n ctx.textBaseline = \"alphabetic\";\n ctx.fillStyle = \"#FFFFFF\";\n for (let i = 0; i < lines.length; ++i) {\n const y = fontHeight * lineHeight * i - originTop;\n ctx.fillText(lines[i], -originLeft, y);\n }\n\n const imageData = ctx.getImageData(0, 0, width, height);\n const rgba = new Uint8Array(imageData.data.buffer);\n const splats = new PackedSplats();\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius * objectScale);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n rgb = rgb ?? new THREE.Color(1, 1, 1);\n\n let offset = 0;\n for (let y = 0; y < height; ++y) {\n for (let x = 0; x < width; ++x) {\n const a = rgba[offset + 3];\n if (a > 0) {\n const opacity = a / 255;\n center.set(x - 0.5 * (width - 1), 0.5 * (height - 1) - y, 0);\n center.multiplyScalar(objectScale);\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n offset += 4;\n }\n }\n\n const mesh = new SplatMesh({ packedSplats: splats });\n mesh.recolor = color;\n return mesh;\n}\n\nexport function imageSplats({\n // URL of the image to convert to splats (example: `url: \"./image.png\"`)\n url,\n // Radius of each Gsplat, default covers 1-unit spacing well (default: 0.8)\n dotRadius,\n // Subsampling factor for the image. Higher values reduce resolution,\n // for example 2 will halve the width and height by averaging (default: 1)\n subXY,\n // Optional callback function to modify each Gsplat before it's added.\n // Return null to skip adding the Gsplat, or a number to set the opacity\n // and add the Gsplat with parameter values in the objects center, rgba etc. were\n // passed into the forEachSplat callback. Ending the callback in `return opacity;`\n // will retain the original opacity.\n // ((width: number, height: number, index: number, center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, opacity: number, color: THREE.Color) => number | null)\n forEachSplat,\n}: {\n url: string;\n dotRadius?: number;\n subXY?: number;\n forEachSplat?: (\n width: number,\n height: number,\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => number | null;\n}): SplatMesh {\n dotRadius = dotRadius ?? 0.8;\n subXY = Math.max(1, Math.floor(subXY ?? 1));\n\n return new SplatMesh({\n constructSplats: async (splats) => {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.onerror = reject;\n img.onload = () => {\n const { width, height } = img;\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n reject(new Error(\"Failed to create canvas context\"));\n return;\n }\n ctx.imageSmoothingEnabled = true;\n ctx.imageSmoothingQuality = \"high\";\n const destWidth = Math.round(width / subXY);\n const destHeight = Math.round(height / subXY);\n ctx.drawImage(img, 0, 0, destWidth, destHeight);\n try {\n const imageData = ctx.getImageData(0, 0, destWidth, destHeight);\n const rgba = new Uint8Array(imageData.data.buffer);\n\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const rgb = new THREE.Color();\n\n let index = 0;\n for (let y = 0; y < destHeight; ++y) {\n for (let x = 0; x < destWidth; ++x) {\n const offset = index * 4;\n const a = rgba[offset + 3];\n if (a > 0) {\n let opacity = a / 255;\n rgb.set(\n rgba[offset + 0] / 255,\n rgba[offset + 1] / 255,\n rgba[offset + 2] / 255,\n );\n center.set(\n x - 0.5 * (destWidth - 1),\n 0.5 * (destHeight - 1) - y,\n 0,\n );\n scales.setScalar(dotRadius);\n quaternion.set(0, 0, 0, 1);\n let push = true;\n if (forEachSplat) {\n const maybeOpacity = forEachSplat(\n destWidth,\n destHeight,\n index,\n center,\n scales,\n quaternion,\n opacity,\n rgb,\n );\n opacity = maybeOpacity ?? opacity;\n push = maybeOpacity !== null;\n }\n if (push) {\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n }\n index += 1;\n }\n }\n resolve();\n } catch (error) {\n reject(error);\n }\n };\n img.src = url;\n });\n },\n });\n}\n","import * as THREE from \"three\";\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n type DynoVal,\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n div,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n floatBitsToInt,\n hashVec3,\n imod,\n mul,\n split,\n sub,\n vec3,\n} from \"../dyno\";\n\nexport function staticBox({\n box,\n cells,\n dotScale,\n color,\n opacity,\n}: {\n box: THREE.Box3;\n cells: THREE.Vector3;\n dotScale: number;\n color?: THREE.Color;\n opacity?: number;\n}) {\n cells.x = Math.max(1, Math.round(cells.x));\n cells.y = Math.max(1, Math.round(cells.y));\n cells.z = Math.max(1, Math.round(cells.z));\n opacity = opacity ?? 1;\n const numSplats = cells.x * cells.y * cells.z;\n const dynoX = dynoConst(\"int\", cells.x);\n const dynoY = dynoConst(\"int\", cells.y);\n const dynoZ = dynoConst(\"int\", cells.z);\n\n const dynoTime = dynoFloat(0);\n const generator = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n const cellX = imod(index, dynoX);\n const index2 = div(index, dynoX);\n const cellY = imod(index2, dynoY);\n const cellZ = div(index2, dynoY);\n const cell = combine({\n vectorType: \"ivec3\",\n x: cellX,\n y: cellY,\n z: cellZ,\n });\n\n const intTime = floatBitsToInt(dynoTime);\n const inputs = combine({ vectorType: \"ivec2\", x: index, y: intTime });\n const random = hashVec3(inputs);\n const min = dynoConst(\"vec3\", box.min);\n const max = dynoConst(\"vec3\", box.max);\n const size = sub(max, min);\n const coord = div(add(vec3(cell), random), dynoConst(\"vec3\", cells));\n let r: DynoVal<\"float\">;\n let g: DynoVal<\"float\">;\n let b: DynoVal<\"float\">;\n if (color) {\n r = dynoConst(\"float\", color.r);\n g = dynoConst(\"float\", color.g);\n b = dynoConst(\"float\", color.b);\n } else {\n ({ r, g, b } = split(coord).outputs);\n }\n const rgba = combine({\n vectorType: \"vec4\",\n r,\n g,\n b,\n a: dynoConst(\"float\", opacity),\n });\n const center = add(min, mul(size, coord));\n const scales = vec3(dynoConst(\"float\", dotScale));\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgba,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ time }) => {\n dynoTime.value = time;\n const _updated = transformer.update(generator);\n generator.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return generator;\n}\n","import * as THREE from \"three\";\n\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n fract,\n hashVec4,\n max,\n mix,\n mod,\n mul,\n sin,\n split,\n sub,\n vec3,\n} from \"../dyno\";\nimport { dynoVec3 } from \"../dyno\";\n\n// snowBox produces Gsplat trajectories that move in a deterministic fashion over time,\n// with high similarity between adjacent frames. See examples/atmospheric/main.js\n// for an example that creates a snowBox.\n\n// A snowBox instance has a collection of properties that can be tuned to achieve\n// different particle effects. The below DEFAULT_SNOW and DEFAULT_RAIN are example\n// parameter sets that look a lot like snow and rain, and can be used as a starting\n// point for further tweaking: `const mySnow = { ...DEFAULT_SNOW, density: 500 };`\n\nexport const DEFAULT_SNOW = {\n box: new THREE.Box3(\n new THREE.Vector3(-1, -1, -1),\n new THREE.Vector3(1, 1, 1),\n ),\n density: 100,\n fallDirection: new THREE.Vector3(-1, -3, 1).normalize(),\n fallVelocity: 0.02,\n wanderScale: 0.04,\n wanderVariance: 2,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.5, 0.5, 1),\n minScale: 0.001,\n maxScale: 0.005,\n anisoScale: new THREE.Vector3(1, 1, 1),\n};\n\nexport const DEFAULT_RAIN = {\n box: new THREE.Box3(\n new THREE.Vector3(-2, -1, -2),\n new THREE.Vector3(2, 5, 2),\n ),\n density: 10,\n fallDirection: new THREE.Vector3(0, -1, 0),\n fallVelocity: 2,\n wanderScale: 0.1,\n wanderVariance: 1,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.25, 0.25, 0.5),\n minScale: 0.005,\n maxScale: 0.01,\n anisoScale: new THREE.Vector3(0.1, 1, 0.1),\n};\n\n// Calling snowBox creates a new snowBox instance and returns an object with\n// the snowBox itself as well `as` a collection of controls that can be used to\n// adjust the snowBox's properties over time:\n//\n// - snow: the SplatGenerator snowBox instance\n// - min: the vec3 uniform of the snowBox minimum position\n// - max: the vec3 uniform of the snowBox maximum position\n// - minY: the float uniform of the snowBox minimum y-coordinate\n// - color1: the vec3 uniform of the snowBox first color\n// - color2: the vec3 uniform of the snowBox second color\n// - opacity: the float uniform of the snowBox opacity\n// - fallVelocity: the float uniform of the snowBox fall velocity\n// - wanderVariance: the float uniform of the snowBox wander variance\n// - wanderScale: the float uniform of the snowBox wander scale\n// - fallDirection: the vec3 uniform of the snowBox fall direction\n// - minScale: the float uniform of the snowBox minimum scale\n// - maxScale: the float uniform of the snowBox maximum scale\n// - anisoScale: the vec3 uniform of the snowBox anisotropic scale\n\nexport function snowBox({\n // min and max box extents of the snowBox\n box,\n // minimum y-coordinate to clamp particle position, which can be used to\n // fake hitting a ground plane and lingering there for a bit\n minY,\n // number of Gsplats to generate (default: calculated from box and density)\n numSplats,\n // density of Gsplats per unit volume (default: 100)\n density,\n // The xyz anisotropic scale of the Gsplat, which can be used for example\n // to elongate rain particles (default: (1, 1, 1))\n anisoScale,\n // Minimum Gsplat particle scale (default: 0.001)\n minScale,\n // Maximum Gsplat particle scale (default: 0.005)\n maxScale,\n // The average direction of fall (default: (0, -1, 0))\n fallDirection,\n // The average speed of the fall (multiplied with fallDirection) (default: 0.02)\n fallVelocity,\n // The world scale of wandering overlay motion (default: 0.01)\n wanderScale,\n // Controls how uniformly the particles wander in sync, more variance mean\n // more randomness in the motion (default: 2)\n wanderVariance,\n // Color 1 of the two colors interpolated between (default: (1, 1, 1))\n color1,\n // Color 2 of the two colors interpolated between (default: (0.5, 0.5, 1))\n color2,\n // The base opacity of the Gsplats (default: 1)\n opacity,\n // Optional callback function to call each frame.\n onFrame,\n}: {\n box?: THREE.Box3;\n minY?: number;\n numSplats?: number;\n density?: number;\n anisoScale?: THREE.Vector3;\n minScale?: number;\n maxScale?: number;\n fallDirection?: THREE.Vector3;\n fallVelocity?: number;\n wanderScale?: number;\n wanderVariance?: number;\n color1?: THREE.Color;\n color2?: THREE.Color;\n opacity?: number;\n onFrame?: ({\n object,\n time,\n deltaTime,\n }: { object: SplatGenerator; time: number; deltaTime: number }) => void;\n}) {\n box =\n box ??\n new THREE.Box3(new THREE.Vector3(-1, -1, -1), new THREE.Vector3(1, 1, 1));\n const volume =\n (box.max.x - box.min.x) * (box.max.y - box.min.y) * (box.max.z - box.min.z);\n density = density ?? 100;\n numSplats =\n numSplats ?? Math.max(1, Math.min(1000000, Math.round(volume * density)));\n\n const dynoMinScale = dynoFloat(minScale ?? 0.001);\n const dynoMaxScale = dynoFloat(maxScale ?? 0.005);\n const dynoAnisoScale = dynoVec3(\n (anisoScale?.clone() ?? new THREE.Vector3(1, 1, 1)).normalize(),\n );\n const dynoFallDirection = dynoVec3(\n (fallDirection ?? new THREE.Vector3(0, -1, 0)).normalize(),\n );\n const dynoFallVelocity = dynoFloat(fallVelocity ?? 0.02);\n const dynoWanderScale = dynoFloat(wanderScale ?? 0.01);\n const dynoWanderVariance = dynoFloat(wanderVariance ?? 2);\n const dynoColor1 = dynoVec3(color1 ?? new THREE.Color(1, 1, 1));\n const dynoColor2 = dynoVec3(color2 ?? new THREE.Color(0.5, 0.5, 1));\n const dynoOpacity = dynoFloat(opacity ?? 1);\n\n const dynoTime = dynoFloat(0);\n const globalOffset = dynoVec3(new THREE.Vector3(0, 0, 0));\n const dynoMin = dynoVec3(box.min);\n const dynoMax = dynoVec3(box.max);\n const dynoMinY = dynoFloat(minY ?? Number.NEGATIVE_INFINITY);\n const minMax = sub(dynoMax, dynoMin);\n const snow = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index not defined\");\n }\n const random = hashVec4(index);\n const randomW = split(random).outputs.w;\n let position = vec3(random);\n\n let size = fract(mul(randomW, dynoConst(\"float\", 100)));\n size = sin(mul(dynoLiteral(\"float\", \"PI\"), size));\n size = add(dynoMinScale, mul(size, sub(dynoMaxScale, dynoMinScale)));\n const scales = mul(size, dynoAnisoScale);\n\n const intensity = fract(mul(randomW, dynoConst(\"float\", 10)));\n const hue = fract(randomW);\n const color = mix(dynoColor1, dynoColor2, hue);\n const rgb = mul(color, intensity);\n\n const random2 = hashVec4(\n combine({\n vectorType: \"ivec2\",\n x: index,\n y: dynoConst(\"int\", 0x1ab5),\n }),\n );\n let perturb = vec3(random2);\n let timeOffset = mul(split(random2).outputs.w, dynoWanderVariance);\n timeOffset = add(dynoTime, timeOffset);\n\n position = add(position, globalOffset);\n const modulo = mod(\n position,\n dynoConst(\"vec3\", new THREE.Vector3(1, 1, 1)),\n );\n position = add(dynoMin, mul(minMax, modulo));\n\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n\n perturb = sin(add(vec3(timeOffset), perturb));\n perturb = mul(perturb, dynoWanderScale);\n let center = add(position, perturb);\n\n let centerY = split(center).outputs.y;\n centerY = max(dynoMinY, centerY);\n center = combine({ vector: center, y: centerY });\n\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgb,\n opacity: dynoOpacity,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ object, time, deltaTime }) => {\n dynoTime.value = time;\n const _updated = transformer.update(snow);\n\n const fallDelta = dynoFallDirection.value\n .clone()\n .multiplyScalar(dynoFallVelocity.value * deltaTime);\n globalOffset.value.add(fallDelta);\n\n // Enable/disable splats based on opacity\n object.visible = dynoOpacity.value > 0;\n\n onFrame?.({ object, time, deltaTime });\n snow.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return {\n snow,\n min: dynoMin,\n max: dynoMax,\n minY: dynoMinY,\n color1: dynoColor1,\n color2: dynoColor2,\n opacity: dynoOpacity,\n fallVelocity: dynoFallVelocity,\n wanderVariance: dynoWanderVariance,\n wanderScale: dynoWanderScale,\n fallDirection: dynoFallDirection,\n minScale: dynoMinScale,\n maxScale: dynoMaxScale,\n anisoScale: dynoAnisoScale,\n };\n}\n\nexport type SNOW_RESULT_TYPE = ReturnType;\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n Gsplat,\n add,\n combineGsplat,\n dot,\n dynoBlock,\n dynoConst,\n greaterThanEqual,\n gsplatNormal,\n mul,\n neg,\n select,\n splitGsplat,\n} from \"../dyno\";\n\nexport function makeNormalColorModifier(splatToView: SplatTransformer) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let normal = gsplatNormal(gsplat);\n\n const viewGsplat = splatToView.applyGsplat(gsplat);\n const viewCenter = splitGsplat(viewGsplat).outputs.center;\n const viewNormal = gsplatNormal(viewGsplat);\n const splatDot = dot(viewCenter, viewNormal);\n\n const sameDir = greaterThanEqual(splatDot, dynoConst(\"float\", 0));\n normal = select(sameDir, neg(normal), normal);\n const rgb = add(\n mul(normal, dynoConst(\"float\", 0.5)),\n dynoConst(\"float\", 0.5),\n );\n\n gsplat = combineGsplat({ gsplat, rgb });\n return { gsplat };\n });\n}\n\nexport function setWorldNormalColor(splats: SplatMesh) {\n splats.enableWorldToView = true;\n splats.worldModifier = makeNormalColorModifier(splats.context.worldToView);\n splats.updateGenerator();\n}\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n type DynoVal,\n Gsplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n neg,\n normalizedDepth,\n select,\n split,\n splitGsplat,\n sub,\n} from \"../dyno\";\n\nexport function makeDepthColorModifier(\n splatToView: SplatTransformer,\n minDepth: DynoVal<\"float\">,\n maxDepth: DynoVal<\"float\">,\n reverse: DynoVal<\"bool\">,\n) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let { center } = splitGsplat(gsplat).outputs;\n center = splatToView.apply(center);\n const { z } = split(center).outputs;\n let depth = normalizedDepth(neg(z), minDepth, maxDepth);\n depth = select(reverse, sub(dynoConst(\"float\", 1), depth), depth);\n\n gsplat = combineGsplat({ gsplat, r: depth, g: depth, b: depth });\n return { gsplat };\n });\n}\n\nexport function setDepthColor(\n splats: SplatMesh,\n minDepth: number,\n maxDepth: number,\n reverse?: boolean,\n) {\n splats.enableWorldToView = true;\n const dynoMinDepth = dynoConst(\"float\", minDepth);\n const dynoMaxDepth = dynoConst(\"float\", maxDepth);\n const dynoReverse = dynoConst(\"bool\", reverse ?? false);\n splats.worldModifier = makeDepthColorModifier(\n splats.context.worldToView,\n dynoMinDepth,\n dynoMaxDepth,\n dynoReverse,\n );\n splats.updateGenerator();\n return {\n minDepth: dynoMinDepth,\n maxDepth: dynoMaxDepth,\n reverse: dynoReverse,\n };\n}\n","import * as THREE from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport interface SparkXrOptions {\n renderer: THREE.WebGLRenderer;\n // Element to attach enter/exit click handler to\n element?: HTMLElement;\n // ID of element to attach enter/exit click handler to\n elementId?: string;\n // Create a button to enter/exit XR\n // Optionally provide button text or HTML\n // Default is true - create a button\n button?: boolean | SparkXrButton;\n // Blur out element when mouse leaves it\n // Default is 0.5 - 50% opacity\n onMouseLeaveOpacity?: number;\n // Default is \"vrar\" - Try VR then AR\n mode?: \"vr\" | \"ar\" | \"arvr\" | \"vrar\";\n // fixedFoveation: XrManager.setFoveation(...)\n fixedFoveation?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRWebGLLayer/XRWebGLLayer#framebufferscalefactor\n // Default is 0.5 - 50% resolution for better frame rate\n frameBufferScaleFactor?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpace#reference_space_types\n // Defaults is \"local\" - origin is the user's position when starting XR session\n referenceSpaceType?: \"local\" | \"local-floor\" | \"unbounded\" | \"viewer\";\n // Enable hand tracking\n // Default is false\n enableHands?: boolean;\n // Allow WebXR entry on mobile phones that expose navigator.xr\n // Defaults to false - blocks phones to avoid unusable split-screen modes\n allowMobileXr?: boolean;\n // Session init options\n // Default is empty - no additional options\n sessionInit?: XRSessionInit;\n // Callback function called when SparkXr is ready\n // Default is undefined - no callback\n onReady?: (supported: boolean) => void | Promise;\n // Callback function called when entering XR\n // Default is undefined - no callback\n onEnterXr?: () => void | Promise;\n // Callback function called when exiting XR\n // Default is undefined - no callback\n onExitXr?: () => void | Promise;\n // ztroller movement and rotation options\n controllers?: SparkXrControllers;\n}\n\nexport interface SparkXrButton {\n enterXrHtml?: string;\n exitXrHtml?: string;\n enterVrHtml?: string;\n exitVrHtml?: string;\n enterArHtml?: string;\n exitArHtml?: string;\n enterXrText?: string;\n exitXrText?: string;\n enterVrText?: string;\n exitVrText?: string;\n enterArText?: string;\n exitArText?: string;\n style?: CSSStyleDeclaration;\n enterStyle?: CSSStyleDeclaration;\n exitStyle?: CSSStyleDeclaration;\n zIndex?: number;\n}\n\nexport type XrGamepads = {\n left?: Gamepad;\n right?: Gamepad;\n leftIsHand?: boolean;\n rightIsHand?: boolean;\n};\n\nexport interface SparkXrControllers {\n moveSpeed?: number;\n rotateSpeed?: number;\n rollSpeed?: number;\n fastMultiplier?: number;\n slowMultiplier?: number;\n moveHeading?: boolean;\n moveDirection?: boolean;\n getMove?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getRotate?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getFast?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n getSlow?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n}\n\nexport const DEFAULT_CONTROLLER_MOVE_SPEED = 1.0;\nexport const DEFAULT_CONTROLLER_ROTATE_SPEED = 4.0;\nexport const DEFAULT_CONTROLLER_ROLL_SPEED = 2.0;\nexport const DEFAULT_CONTROLLER_FAST_MULTIPLIER = 5;\nexport const DEFAULT_CONTROLLER_SLOW_MULTIPLIER = 1 / 5;\nexport const DEFAULT_CONTROLLER_MOVE_HEADING = false;\n\nexport const DEFAULT_CONTROLLER_GETMOVE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.leftIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(\n gamepads.left?.axes[2] ?? 0,\n (gamepads.left?.buttons[0].value ?? 0) -\n (gamepads.left?.buttons[1].value ?? 0),\n gamepads.left?.axes[3] ?? 0,\n );\nexport const DEFAULT_CONTROLLER_GETROTATE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(gamepads.right?.axes[2] ?? 0, 0, 0);\nexport const DEFAULT_CONTROLLER_GETFAST = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[0]?.pressed ?? false);\nexport const DEFAULT_CONTROLLER_GETSLOW = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[1]?.pressed ?? false);\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.015,\n t1: 0.012,\n t2: 0.0105,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nconst XR_HEADSET_HINTS =\n /Quest|OculusBrowser|VisionOS|XRBrowser|Pico|Lynx|MagicLeap/i;\n\nfunction isLikelyMobilePhone() {\n const ua = navigator.userAgent ?? \"\";\n if (XR_HEADSET_HINTS.test(ua)) {\n return false;\n }\n\n const androidMobile = /Android/i.test(ua) || /Mobile/i.test(ua);\n if (androidMobile) {\n return true;\n }\n\n const uaData = (\n navigator as Navigator & {\n userAgentData?: { mobile?: boolean };\n }\n ).userAgentData;\n if (uaData && typeof uaData.mobile === \"boolean\") {\n return uaData.mobile;\n }\n\n return false;\n}\n\nexport type Joint = {\n position: THREE.Vector3;\n quaternion: THREE.Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\n\nexport class SparkXr {\n renderer: THREE.WebGLRenderer;\n xr?: XRSystem;\n element?: HTMLElement;\n button?: SparkXrButton;\n mode: XRSessionMode | \"initializing\" | \"not_supported\";\n sessionInit?: XRSessionInit;\n session?: XRSession;\n onEnterXr?: () => void;\n onExitXr?: () => void;\n\n controllers?: SparkXrControllers;\n lastControllersUpdate = 0;\n\n enableHands: boolean;\n hands: XrHand[] = [];\n\n constructor(options: SparkXrOptions) {\n this.renderer = options.renderer;\n this.xr = navigator.xr;\n this.mode = \"initializing\";\n this.onEnterXr = options.onEnterXr;\n this.onExitXr = options.onExitXr;\n this.enableHands = options.enableHands ?? false;\n this.controllers = options.controllers;\n\n Promise.resolve()\n .then(() => {\n if (!this.xr) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (!options.allowMobileXr && isLikelyMobilePhone()) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (this.enableHands) {\n this.hands = [new XrHand(Hand.left), new XrHand(Hand.right)];\n }\n\n let element: HTMLElement | undefined = undefined;\n let button: SparkXrButton | undefined = undefined;\n if (options.element) {\n element = options.element;\n } else if (options.elementId) {\n element = document.getElementById(options.elementId) ?? undefined;\n } else {\n element = SparkXr.createButton();\n button =\n options.button == null || typeof options.button === \"boolean\"\n ? {}\n : options.button;\n }\n\n if (!element) {\n throw new Error(\"No element or button provided\");\n }\n\n element.style.display = \"none\";\n element.classList.add(\"hidden\");\n this.button = button;\n this.element = element;\n\n const opacity = options.onMouseLeaveOpacity?.toString();\n if (opacity !== undefined) {\n element.addEventListener(\"mouseleave\", () => {\n element.style.opacity = opacity;\n });\n element.addEventListener(\"mouseenter\", () => {\n element.style.opacity = \"\";\n });\n }\n\n return this.initializeXr(options);\n })\n .then(() => {\n return options.onReady?.(this.mode !== \"not_supported\");\n })\n .catch((error) => {\n alert(`Error initializing SparkXr: ${error}`);\n });\n }\n\n private async initializeXr(options: SparkXrOptions) {\n if (!this.xr || !this.element) {\n return;\n }\n const element = this.element;\n\n const modes = {\n vr: [\"immersive-vr\"],\n ar: [\"immersive-ar\"],\n arvr: [\"immersive-ar\", \"immersive-vr\"],\n vrar: [\"immersive-vr\", \"immersive-ar\"],\n }[options.mode ?? \"vrar\"] as XRSessionMode[] | undefined;\n if (!modes) {\n throw new Error(`Invalid mode: ${options.mode}`);\n }\n\n let supported = null;\n for (const mode of modes) {\n if (await this.xr.isSessionSupported(mode)) {\n supported = mode;\n break;\n }\n }\n\n if (!supported) {\n this.mode = \"not_supported\";\n return;\n }\n this.mode = supported;\n\n const referenceSpaceType = options.referenceSpaceType ?? \"local\";\n\n this.renderer.xr.enabled = true;\n this.renderer.xr.setReferenceSpaceType(referenceSpaceType);\n\n if (options.fixedFoveation !== undefined) {\n this.renderer.xr.setFoveation(options.fixedFoveation);\n }\n const frameBufferScaleFactor = options.frameBufferScaleFactor ?? 0.5;\n this.renderer.xr.setFramebufferScaleFactor(frameBufferScaleFactor);\n\n const optionalFeatures = options.sessionInit?.optionalFeatures ?? [];\n if (options.enableHands) {\n optionalFeatures.push(\"hand-tracking\");\n }\n\n const requiredFeatures = options.sessionInit?.requiredFeatures ?? [];\n requiredFeatures.push(referenceSpaceType);\n\n this.sessionInit = {\n ...options.sessionInit,\n optionalFeatures,\n requiredFeatures,\n };\n // console.log(\"* this.sessionInit\", this.sessionInit);\n\n element.addEventListener(\"click\", () => {\n this.toggleXr();\n });\n\n this.updateElement();\n }\n\n async toggleXr() {\n if (!this.xr || !this.sessionInit) {\n // console.log(\"* !this.xr || !this.sessionInit\");\n return;\n }\n\n if (!this.session) {\n try {\n const mode = this.mode as XRSessionMode;\n const session = await this.xr.requestSession(mode, this.sessionInit);\n this.session = session;\n // console.log(\"* this.session\", this.session);\n\n const onSessionEnded = () => {\n session?.removeEventListener(\"end\", onSessionEnded);\n session?.removeEventListener(\"visibilitychange\", visibilityChanged);\n this.session = undefined;\n\n this.updateElement();\n this.onExitXr?.();\n };\n\n let lastVisibilityState = session.visibilityState;\n const visibilityChanged = () => {\n if (\n session?.visibilityState === \"visible-blurred\" &&\n lastVisibilityState === \"visible\"\n ) {\n session?.end();\n }\n lastVisibilityState = session?.visibilityState;\n };\n\n this.session?.addEventListener(\"end\", onSessionEnded);\n this.session?.addEventListener(\"visibilitychange\", visibilityChanged);\n\n await this.renderer.xr.setSession(this.session);\n // console.log(\"* setSession\");\n\n return this.onEnterXr?.();\n } catch (error) {\n console.error(\"Error requesting XR session\", error);\n return;\n }\n } else {\n this.session.end();\n // console.log(\"* end session\");\n }\n }\n\n private updateElement() {\n const mode = this.mode as XRSessionMode;\n const element = this.element;\n if (element) {\n element.style.display = \"\";\n element.classList.remove(\"hidden\");\n\n const button = typeof this.button === \"boolean\" ? {} : this.button;\n if (button) {\n if (!this.session) {\n const enterHtml =\n (mode === \"immersive-vr\"\n ? button.enterVrHtml\n : button.enterArHtml) ?? button.enterXrHtml;\n const enterText =\n (mode === \"immersive-vr\"\n ? button.enterVrText\n : button.enterArText) ?? button.enterXrText;\n if (enterHtml) {\n element.innerHTML = enterHtml;\n } else if (enterText) {\n element.textContent = enterText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"ENTER VR\" : \"ENTER AR\";\n }\n } else {\n const exitHtml =\n (mode === \"immersive-vr\" ? button.exitVrHtml : button.exitArHtml) ??\n button.exitXrHtml;\n const exitText =\n (mode === \"immersive-vr\" ? button.exitVrText : button.exitArText) ??\n button.exitXrText;\n if (exitHtml) {\n element.innerHTML = exitHtml;\n } else if (exitText) {\n element.textContent = exitText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"EXIT VR\" : \"EXIT AR\";\n }\n }\n\n element.style.display = \"\";\n }\n }\n }\n\n private static createButton() {\n const button = document.createElement(\"button\");\n Object.assign(button.style, {\n position: \"absolute\",\n bottom: \"20px\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n padding: \"40px 40px\",\n border: \"2px solid #fff\",\n borderRadius: \"16px\",\n background: \"rgba(0,0,0,0.1)\",\n color: \"#fff\",\n font: \"bold 28px sans-serif\",\n textAlign: \"center\",\n userSelect: \"none\",\n zIndex: \"999\",\n });\n document.body.appendChild(button);\n return button;\n }\n\n xrSupported() {\n return !!this.xr;\n }\n\n static JointEnum = JointEnum;\n static JOINT_IDS = JOINT_IDS;\n static NUM_JOINTS = NUM_JOINTS;\n static JOINT_INDEX = JOINT_INDEX;\n static JOINT_RADIUS = JOINT_RADIUS;\n static JOINT_SEGMENTS = JOINT_SEGMENTS;\n static JOINT_SEGMENT_STEPS = JOINT_SEGMENT_STEPS;\n static JOINT_TIPS = JOINT_TIPS;\n static FINGER_TIPS = FINGER_TIPS;\n static Hand = Hand;\n static HANDS = HANDS;\n\n left() {\n return this.hands[0];\n }\n\n right() {\n return this.hands[1];\n }\n\n updateControllers(camera: THREE.Camera) {\n const cameraFrame = camera.parent as THREE.Group;\n\n const now = performance.now();\n const deltaTime = (now - (this.lastControllersUpdate || now)) / 1000;\n this.lastControllersUpdate = now;\n\n const xrGamepads: XrGamepads = {};\n for (const source of this.renderer.xr.getSession()?.inputSources ?? []) {\n const gamepad = source.gamepad;\n if (\n gamepad &&\n (source.handedness === \"left\" || source.handedness === \"right\")\n ) {\n xrGamepads[source.handedness] = gamepad;\n if (source.handedness === \"left\") {\n xrGamepads.leftIsHand = !!source.hand;\n } else if (source.handedness === \"right\") {\n xrGamepads.rightIsHand = !!source.hand;\n }\n }\n }\n\n const rotate = (\n this.controllers?.getRotate ?? DEFAULT_CONTROLLER_GETROTATE\n )(xrGamepads, this);\n rotate.multiply(\n new THREE.Vector3(\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rollSpeed ?? DEFAULT_CONTROLLER_ROLL_SPEED,\n ),\n );\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler(-rotate.y, -rotate.x, rotate.z, \"YXZ\");\n const quat = new THREE.Quaternion().setFromEuler(eulers);\n\n const pivot = camera.getWorldPosition(new THREE.Vector3());\n cameraFrame.parent?.worldToLocal(pivot);\n\n cameraFrame.position.sub(pivot);\n cameraFrame.position.applyQuaternion(quat);\n cameraFrame.position.add(pivot);\n cameraFrame.quaternion.premultiply(quat);\n }\n\n const move = (this.controllers?.getMove ?? DEFAULT_CONTROLLER_GETMOVE)(\n xrGamepads,\n this,\n );\n\n let moveSpeed =\n this.controllers?.moveSpeed ?? DEFAULT_CONTROLLER_MOVE_SPEED;\n if (\n (this.controllers?.getFast ?? DEFAULT_CONTROLLER_GETFAST)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_FAST_MULTIPLIER;\n }\n if (\n (this.controllers?.getSlow ?? DEFAULT_CONTROLLER_GETSLOW)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_SLOW_MULTIPLIER;\n }\n\n if (this.controllers?.moveHeading) {\n move.applyQuaternion(camera.quaternion);\n } else if (this.controllers?.moveDirection) {\n SCRATCH_EULER.setFromQuaternion(camera.quaternion, \"YXZ\");\n SCRATCH_EULER.x = 0;\n SCRATCH_EULER.z = 0;\n SCRATCH_QUAT_A.setFromEuler(SCRATCH_EULER);\n move.applyQuaternion(SCRATCH_QUAT_A);\n }\n move.applyQuaternion(cameraFrame.quaternion);\n\n move.multiplyScalar(deltaTime * moveSpeed);\n cameraFrame.position.add(move);\n }\n\n updateHands({ xrFrame }: { xrFrame: XRFrame }) {\n const xrSession = this.renderer.xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = this.renderer.xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n for (const hand of this.hands) {\n if (hand) {\n hand.lastJoints = hand.joints;\n hand.joints = undefined;\n }\n }\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n const hand = inputSource.handedness as Hand;\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n if (!xrHand) {\n continue;\n }\n\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n\n if (!xrHand.joints) {\n xrHand.joints = {};\n }\n xrHand.joints[jointId] = {\n position: new THREE.Vector3(position.x, position.y, position.z),\n quaternion: new THREE.Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: JOINT_RADIUS[jointId],\n };\n }\n }\n }\n }\n }\n\n makeJointSplats(hand: Hand): JointSplats {\n const mesh = new JointSplats(hand);\n mesh.onFrame = () => {\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n const joints = xrHand?.joints;\n mesh.updateJoints(joints);\n };\n return mesh;\n }\n\n snapshotHands(time: number) {\n const hands = [\n this.hands[0]?.snapshotJoints(),\n this.hands[1]?.snapshotJoints(),\n ];\n return { time, hands };\n }\n}\n\ntype JointSnapshot = { pos: number[]; quat: number[]; radius: number };\ntype HandSnapshot = { [key in JointId]?: JointSnapshot };\ntype HandsSnapshot = {\n time: number;\n hands: (HandSnapshot | undefined)[];\n};\n\nconst round4 = (value: number) => Math.round(value * 10000) / 10000;\nconst SCRATCH_EULER = new THREE.Euler(0, 0, 0, \"YXZ\");\nconst SCRATCH_QUAT_A = new THREE.Quaternion();\nconst SCRATCH_QUAT_B = new THREE.Quaternion();\n\nexport function lerpHandsSnapshots(\n snapshots: HandsSnapshot[],\n time: number,\n): HandsSnapshot | null {\n if (!snapshots.length) {\n return null;\n }\n\n const first = snapshots[0];\n const last = snapshots[snapshots.length - 1];\n\n if (time < first.time || time > last.time) {\n return null;\n }\n\n const floorIndex = findSnapshotFloorIndex(snapshots, time);\n if (floorIndex === -1) {\n return null;\n }\n\n const from = snapshots[floorIndex];\n const to = snapshots[floorIndex + 1];\n if (!to) {\n return cloneSnapshot(from, time);\n }\n\n const span = to.time - from.time;\n const factor = span > 0 ? (time - from.time) / span : 0;\n\n return interpolateSnapshots(from, to, factor, time);\n}\n\nfunction interpolateSnapshots(\n from: HandsSnapshot,\n to: HandsSnapshot,\n factor: number,\n time: number,\n): HandsSnapshot {\n const maxHands = Math.max(from.hands.length, to.hands.length);\n const hands = Array.from({ length: maxHands }, (_, handIndex) =>\n lerpHandSnapshot(from.hands[handIndex], to.hands[handIndex], factor),\n );\n return { time, hands };\n}\n\nfunction cloneSnapshot(snapshot: HandsSnapshot, time: number): HandsSnapshot {\n return {\n time,\n hands: snapshot.hands.map((hand) => cloneHandSnapshot(hand)),\n };\n}\n\nexport class XrHand {\n hand: Hand;\n joints?: HandJoints;\n lastJoints?: HandJoints;\n\n constructor(hand: Hand) {\n this.hand = hand;\n }\n\n static newFromSnapshot(hand: Hand, snapshot: HandSnapshot) {\n const h = new XrHand(hand);\n h.joints = {};\n for (const jointId of JOINT_IDS) {\n const joint = snapshot[jointId];\n if (!joint) {\n continue;\n }\n h.joints[jointId] = {\n position: new THREE.Vector3(joint.pos[0], joint.pos[1], joint.pos[2]),\n quaternion: new THREE.Quaternion(\n joint.quat[0],\n joint.quat[1],\n joint.quat[2],\n joint.quat[3],\n ),\n radius: joint.radius,\n };\n }\n return h;\n }\n\n valid() {\n return !!this.joints;\n }\n\n snapshotJoints() {\n if (!this.joints) {\n return undefined;\n }\n\n const snapshot: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (!joint) {\n continue;\n }\n snapshot[jointId] = {\n pos: joint.position.toArray().map(round4),\n quat: joint.quaternion.toArray().map(round4),\n radius: round4(joint.radius),\n };\n }\n return snapshot;\n }\n\n toFlatArray() {\n if (!this.joints) {\n return undefined;\n }\n const array = new Float32Array(1 + 25 * 7);\n array[0] = this.hand === Hand.left ? 0 : 1;\n let index = 1;\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (joint) {\n array[index] = joint.position.x;\n array[index + 1] = joint.position.y;\n array[index + 2] = joint.position.z;\n array[index + 3] = joint.quaternion.x;\n array[index + 4] = joint.quaternion.y;\n array[index + 5] = joint.quaternion.z;\n array[index + 6] = joint.quaternion.w;\n }\n index += 7;\n }\n return array;\n }\n}\n\nfunction findSnapshotFloorIndex(snapshots: HandsSnapshot[], time: number) {\n let low = 0;\n let high = snapshots.length - 1;\n while (low <= high) {\n const mid = (low + high) >> 1;\n if (snapshots[mid].time <= time) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n return high;\n}\n\nfunction lerpHandSnapshot(\n fromHand?: HandSnapshot,\n toHand?: HandSnapshot,\n factor = 0,\n) {\n if (!fromHand || !toHand) {\n return undefined;\n }\n const hand: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = lerpJointSnapshot(fromHand[jointId], toHand[jointId], factor);\n if (joint) {\n hand[jointId] = joint;\n }\n }\n return hand;\n}\n\nfunction lerpJointSnapshot(\n fromJoint?: JointSnapshot,\n toJoint?: JointSnapshot,\n factor = 0,\n) {\n if (!fromJoint || !toJoint) {\n return undefined;\n }\n const pos = fromJoint.pos.map(\n (value, index) => value + (toJoint.pos[index] - value) * factor,\n );\n const quat = SCRATCH_QUAT_A.fromArray(fromJoint.quat)\n .slerp(SCRATCH_QUAT_B.fromArray(toJoint.quat), factor)\n .toArray();\n const radius =\n fromJoint.radius + (toJoint.radius - fromJoint.radius) * factor;\n\n return { pos, quat, radius };\n}\n\nfunction cloneHandSnapshot(hand?: HandSnapshot) {\n if (!hand) {\n return undefined;\n }\n const clone: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = hand[jointId];\n if (joint) {\n clone[jointId] = cloneJointSnapshot(joint);\n }\n }\n return clone;\n}\n\nfunction cloneJointSnapshot(joint: JointSnapshot): JointSnapshot {\n return {\n pos: [...joint.pos],\n quat: [...joint.quat],\n radius: joint.radius,\n };\n}\n\nexport class JointSplats extends SplatMesh {\n hand: Hand;\n\n constructor(hand: Hand) {\n super({});\n this.hand = hand;\n }\n\n private scratchCenter = new THREE.Vector3();\n private scratchQuat = new THREE.Quaternion(0, 0, 0, 1);\n private scratchScales = new THREE.Vector3().setScalar(0.01);\n private scratchColor = new THREE.Color(1, 1, 1);\n\n updateJoints(joints?: HandJoints) {\n this.visible = false;\n\n if (!joints || !this.packedSplats) {\n return;\n }\n\n this.visible = true;\n let splatIndex = 0;\n\n for (const jointId of JOINT_IDS) {\n const joint = joints[jointId];\n if (!joint) {\n continue;\n }\n this.scratchCenter.copy(joint.position);\n this.scratchQuat.copy(joint.quaternion);\n this.scratchScales.set(\n joint.radius,\n 0.75 * joint.radius,\n 1.5 * joint.radius,\n );\n // this.scratchColor.set((joint.radius * 123) % 1, (joint.radius * 345) % 1, (joint.radius * 234) % 1);\n const opacity = 0.75;\n\n this.packedSplats.setSplat(\n splatIndex,\n this.scratchCenter,\n this.scratchScales,\n this.scratchQuat,\n opacity,\n this.scratchColor,\n );\n splatIndex += 1;\n }\n\n this.packedSplats.numSplats = splatIndex;\n this.packedSplats.needsUpdate = true;\n this.numSplats = splatIndex;\n this.updateVersion();\n }\n}\n","import {\n Color,\n Matrix4,\n type Object3D,\n Quaternion,\n Vector3,\n type WebXRManager,\n} from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\n// Experimental WebXR hand tracking and movement\n\nconst DEFAULT_MOVE_INERTIA = 0.5;\nconst DEFAULT_ROTATE_INERTIA = 0.5;\nconst TOUCH_BIAS = 0.0;\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.02,\n t1: 0.014,\n t2: 0.0115,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nexport type Joint = {\n position: Vector3;\n quaternion: Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\nexport type HandsJoints = { [key in Hand]?: HandJoints };\n\nexport class XrHands {\n hands: HandsJoints = {};\n last: HandsJoints = {};\n\n values: Record = {};\n tests: Record = {};\n lastTests: Record = {};\n\n updated = false;\n\n update({ xr, xrFrame }: { xr: WebXRManager; xrFrame: XRFrame }) {\n const xrSession = xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n this.last = this.hands;\n this.lastTests = this.tests;\n\n this.hands = {};\n this.values = {};\n this.tests = {};\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n\n const hand = inputSource.handedness as Hand;\n this.hands[hand] = {};\n\n // Iterate over JointId\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n this.hands[hand][jointId] = {\n position: new Vector3(position.x, position.y, position.z),\n quaternion: new Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: jointPose.radius || 0.001,\n };\n }\n }\n }\n }\n\n for (const hand of HANDS) {\n for (const { key, value } of [\n { key: `${hand}AllTips`, value: this.allTipsTouching(hand) },\n {\n key: `${hand}IndexThumb`,\n value: this.touching(hand, \"i4\", hand, \"t3\"),\n },\n {\n key: `${hand}MiddleThumb`,\n value: this.touching(hand, \"m4\", hand, \"t3\"),\n },\n {\n key: `${hand}RingThumb`,\n value: this.touching(hand, \"r4\", hand, \"t3\"),\n },\n {\n key: `${hand}PinkyThumb`,\n value: this.touching(hand, \"p4\", hand, \"t3\"),\n },\n { key: `${hand}TriTips`, value: this.triTipsTouching(hand) },\n ]) {\n this.values[key] = value;\n this.tests[key] =\n value === 1.0\n ? true\n : value === 0.0\n ? false\n : (this.lastTests[key] ?? false);\n }\n }\n }\n\n makeGhostMesh(): SplatMesh {\n const center = new Vector3();\n const scales = new Vector3(0.01, 0.01, 0.01);\n const quaternion = new Quaternion(0, 0, 0, 1);\n const color = new Color(1, 1, 1);\n const CYCLE = Math.PI * 3;\n const WHITE = new Color(1, 1, 1);\n let opacity = 1.0;\n\n const mesh = new SplatMesh({\n onFrame: () => {\n if (!mesh.packedSplats) {\n return;\n }\n let splatIndex = 0;\n for (const handedness of HANDS) {\n const xrHand = this.hands[handedness];\n for (const [index, segment] of JOINT_SEGMENTS.entries()) {\n for (let i = 1; i < segment.length; ++i) {\n const segmentSplats = JOINT_SEGMENT_STEPS[index][i - 1] * 2;\n const lastSegment = i + 1 === segment.length;\n const jointA = xrHand?.[segment[i - 1]];\n const jointB = xrHand?.[segment[i]];\n\n for (let j = 0; j < segmentSplats; ++j) {\n const t = (j + 0.5) / segmentSplats;\n opacity = 0.0;\n if (jointA && jointB) {\n center.copy(jointA.position).lerp(jointB.position, t);\n quaternion\n .copy(jointA.quaternion)\n .slerp(jointB.quaternion, t);\n const radiusA = JOINT_RADIUS[segment[i - 1]];\n const radiusB = JOINT_RADIUS[segment[i]];\n let radius = (1 - t) * radiusA + t * radiusB;\n if (lastSegment && t > 0.8) {\n // Round out finger tips\n radius *= Math.sqrt(1 - ((t - 0.8) / 0.2) ** 2);\n }\n scales.set(0.65 * radius, 0.5 * radius, 0.003);\n color.set(\n 0.55 + 0.45 * Math.sin(center.x * CYCLE),\n 0.55 + 0.45 * Math.sin(center.y * CYCLE),\n 0.55 + 0.45 * Math.sin(center.z * CYCLE),\n );\n if (handedness === \"right\") {\n color.set(1 - color.r, 1 - color.g, 1 - color.b);\n }\n opacity = 0.75;\n }\n mesh.packedSplats.setSplat(\n splatIndex,\n center,\n scales,\n quaternion,\n opacity,\n color,\n );\n splatIndex += 1;\n }\n }\n }\n }\n mesh.packedSplats.numSplats = splatIndex;\n mesh.packedSplats.needsUpdate = true;\n mesh.numSplats = splatIndex;\n mesh.updateVersion();\n },\n });\n return mesh;\n }\n\n distance(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const hA = last ? this.last[handA] : this.hands[handA];\n const hB = last ? this.last[handB] : this.hands[handB];\n const jA = hA?.[jointA];\n const jB = hB?.[jointB];\n if (!jA || !jB) {\n return Number.POSITIVE_INFINITY;\n }\n return jA.position.distanceTo(jB.position);\n }\n\n separation(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.distance(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return d - JOINT_RADIUS[jointA] - JOINT_RADIUS[jointB];\n }\n\n touching(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.separation(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return 1 - Math.max(0, Math.min(1, d / 0.01 - TOUCH_BIAS));\n }\n\n allTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"r4\", last),\n this.touching(hand, \"r4\", hand, \"p4\", last),\n // this.touching(hand, \"p4\", hand, \"t3\", last),\n );\n }\n\n triTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"t3\", last),\n );\n }\n}\n\nexport class HandMovement {\n xrHands: XrHands;\n control: Object3D;\n moveInertia: number;\n rotateInertia: number;\n\n lastGrip: { [key in Hand]?: Vector3 } = {};\n lastPivot: Vector3 = new Vector3();\n rotateVelocity = 0;\n velocity: Vector3 = new Vector3();\n\n constructor({\n xrHands,\n control,\n moveInertia,\n rotateInertia,\n }: {\n xrHands: XrHands;\n control: Object3D;\n moveInertia?: number;\n rotateInertia?: number;\n }) {\n this.xrHands = xrHands;\n this.control = control;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n }\n\n update(deltaTime: number) {\n const grip: { [key in Hand]?: Vector3 } = {};\n for (const handedness of HANDS) {\n const hand = this.xrHands.hands[handedness];\n if (hand && this.xrHands.tests[`${handedness}MiddleThumb`]) {\n grip[handedness] = new Vector3()\n .add(hand.t3?.position ?? new Vector3())\n .add(hand.i4?.position ?? new Vector3())\n .add(hand.m4?.position ?? new Vector3())\n .add(hand.r4?.position ?? new Vector3())\n .add(hand.p4?.position ?? new Vector3())\n .multiplyScalar(1 / 5);\n }\n }\n\n if (grip.left && grip.right && this.lastGrip.left && this.lastGrip.right) {\n const mid = grip.left.clone().add(grip.right).multiplyScalar(0.5);\n const lastMid = this.lastGrip.left\n .clone()\n .add(this.lastGrip.right)\n .multiplyScalar(0.5);\n this.lastPivot = mid;\n\n const delta = mid.clone().applyMatrix4(this.control.matrix);\n delta.sub(lastMid.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n\n const angle = Math.atan2(grip.left.z - mid.z, grip.left.x - mid.x);\n const lastAngle = Math.atan2(\n this.lastGrip.left.z - lastMid.z,\n this.lastGrip.left.x - lastMid.x,\n );\n // Find closest rotation over circle between angle and lastAngle\n let closestAngle = angle - lastAngle;\n if (closestAngle > Math.PI) {\n closestAngle -= Math.PI * 2;\n } else if (closestAngle < -Math.PI) {\n closestAngle += Math.PI * 2;\n }\n const rotateVelocity = closestAngle / deltaTime;\n\n const blend = Math.exp(-20 * deltaTime);\n this.rotateVelocity =\n this.rotateVelocity * blend + rotateVelocity * (1 - blend);\n } else {\n this.rotateVelocity *= Math.exp(-deltaTime / this.rotateInertia);\n\n if (grip.left && this.lastGrip.left) {\n const delta = grip.left.clone().applyMatrix4(this.control.matrix);\n delta.sub(this.lastGrip.left.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else if (grip.right && this.lastGrip.right) {\n const delta = grip.right.clone().applyMatrix4(this.control.matrix);\n delta.sub(\n this.lastGrip.right.clone().applyMatrix4(this.control.matrix),\n );\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else {\n this.velocity.multiplyScalar(Math.exp(-deltaTime / this.moveInertia));\n }\n }\n\n const negPivot = this.lastPivot.clone().negate();\n const rotate = new Matrix4()\n .makeTranslation(negPivot)\n .premultiply(new Matrix4().makeRotationY(this.rotateVelocity * deltaTime))\n .premultiply(new Matrix4().makeTranslation(this.lastPivot));\n this.control.matrix.multiply(rotate);\n this.control.matrix.decompose(\n this.control.position,\n this.control.quaternion,\n this.control.scale,\n );\n this.control.updateMatrixWorld(true);\n\n this.control.position.sub(this.velocity.clone().multiplyScalar(deltaTime));\n this.lastGrip = grip;\n }\n}\n","import * as THREE from \"three\";\nimport { isAndroid, isIos } from \"./utils\";\n\n// Spark controls for keyboard + mouse, game pad, or mobile multi-touch\n\nconst DEFAULT_MOVEMENT_SPEED = 1.0;\nconst DEFAULT_ROLL_SPEED = 2.0;\nconst DEFAULT_ROTATE_SPEED = 0.002;\nconst DEFAULT_SLIDE_SPEED = 0.006;\nconst DEFAULT_SCROLL_SPEED = 0.0015;\nconst DEFAULT_ROLL_SPRING = 0.0;\nconst DEFAULT_ROTATE_INERTIA = 0.15;\nconst DEFAULT_MOVE_INERTIA = 0.15;\nconst DEFAULT_STICK_THRESHOLD = 0.1;\nconst DEFAULT_FPS_ROTATE_SPEED = 2.0;\n// const DEFAULT_POINTER_ROLL_SCALE = 1.0;\nconst DEFAULT_POINTER_ROLL_SCALE = 0.0;\nconst DEFAULT_PRESS_MOVE_DELAY_MS = 500;\nconst DEFAULT_PRESS_MOVE_ACCEL_MS = 500;\n\n// Time limit for double-finger press (pinch etc)\nconst DUAL_PRESS_MS = 200;\n// Time limit for double-click/double-tap\nconst DOUBLE_PRESS_LIMIT_MS = 400;\n// Distance limit for double-click.\nconst DOUBLE_PRESS_DISTANCE = 25;\n\nconst MOVEMENT_THRESHOLD = 1.0e-4;\n\n// Standard WASD movement keys with R+F for up/down\nconst WASD_KEYCODE_MOVE = {\n KeyW: new THREE.Vector3(0, 0, -1),\n KeyS: new THREE.Vector3(0, 0, 1),\n KeyA: new THREE.Vector3(-1, 0, 0),\n KeyD: new THREE.Vector3(1, 0, 0),\n KeyE: new THREE.Vector3(0, 1, 0),\n KeyQ: new THREE.Vector3(0, -1, 0),\n};\n\n// Arrow key movement with PageUp/PageDown\nconst ARROW_KEYCODE_MOVE = {\n ArrowUp: new THREE.Vector3(0, 0, -1),\n ArrowDown: new THREE.Vector3(0, 0, 1),\n ArrowLeft: new THREE.Vector3(-1, 0, 0),\n ArrowRight: new THREE.Vector3(1, 0, 0),\n PageUp: new THREE.Vector3(0, 1, 0),\n PageDown: new THREE.Vector3(0, -1, 0),\n};\n\n// Rolling with Q/E\nconst QE_KEYCODE_ROTATE = {\n KeyQ: new THREE.Vector3(0, 0, 1),\n KeyE: new THREE.Vector3(0, 0, -1),\n};\n\n// Home/End/Insert/Delete for rotation\nconst ARROW_KEYCODE_ROTATE = {\n Home: new THREE.Vector3(0, -1, 0),\n End: new THREE.Vector3(0, 1, 0),\n Insert: new THREE.Vector3(-1, 0, 0),\n Delete: new THREE.Vector3(1, 0, 0),\n};\n\n// SparkControls provides simple, intuitive controls for navigating 3D space that\n// use the keyboard + mouse, game pad, or mobile multi-touch. Internally it\n// instantiates and updates a `FpsMovement` and `PointerControls` instance.\n\nexport class SparkControls {\n fpsMovement: FpsMovement;\n pointerControls: PointerControls;\n lastTime = 0;\n\n constructor({ canvas }: { canvas: HTMLCanvasElement }) {\n this.fpsMovement = new FpsMovement({});\n this.pointerControls = new PointerControls({ canvas });\n }\n\n update(control: THREE.Object3D, camera?: THREE.Camera) {\n const time = performance.now();\n const deltaTime = (time - (this.lastTime || time)) / 1000;\n this.lastTime = time;\n\n let updated = this.fpsMovement.update(deltaTime, control);\n if (this.pointerControls.update(deltaTime, control, camera)) {\n updated = true;\n }\n return updated;\n }\n}\n\n// FpsMovement implements controls that will be familiar to anyone who plays\n// First Person Shooters using keyboard + mouse or a gamepad. Creating a FpsMovement\n// instance provides many parameters for configuring the controls.\n//\n// When gamepads are connected, FpsMovement will always use gamepad index 0\n// for twin-stick movement and rotation.\n//\n// If xr is passed in, the WebXR controllers can be used as a split gamepad\n// to control movement and rotation. (tested on Quest 3)\n\nexport class FpsMovement {\n moveSpeed: number;\n rollSpeed: number;\n stickThreshold: number;\n rotateSpeed: number;\n keycodeMoveMapping: { [key: string]: THREE.Vector3 };\n keycodeRotateMapping: { [key: string]: THREE.Vector3 };\n gamepadMapping: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n capsMultiplier: number;\n shiftMultiplier: number;\n ctrlMultiplier: number;\n xr?: THREE.WebXRManager;\n // Enable/disable controls updates\n enable = true;\n extraMove = new THREE.Vector3();\n\n // Currently active event.key values\n keydown: { [key: string]: boolean };\n // Currently active event.code values\n keycode: { [key: string]: boolean };\n\n constructor({\n moveSpeed,\n rollSpeed,\n stickThreshold,\n rotateSpeed,\n keycodeMoveMapping,\n keycodeRotateMapping,\n gamepadMapping,\n capsMultiplier,\n shiftMultiplier,\n ctrlMultiplier,\n xr,\n }: {\n // Base movement speed (default DEFAULT_MOVEMENT_SPEED)\n moveSpeed?: number;\n // Base roll speed (default DEFAULT_ROLL_SPEED)\n rollSpeed?: number;\n // Stick threshold (default DEFAULT_STICK_THRESHOLD)\n stickThreshold?: number;\n // Speed of rotation when using gamepad or keys (default DEFAULT_FPS_ROTATE_SPEED)\n rotateSpeed?: number;\n // Maps keyboard keys to movement directions\n // (default {...WASD_KEYCODE_MOVE, ...ARROW_KEYCODE_MOVE})\n keycodeMoveMapping?: { [key: string]: THREE.Vector3 };\n // Maps keyboard keys to rotation directions\n // (default { ...ARROW_KEYCODE_ROTATE})\n keycodeRotateMapping?: { [key: string]: THREE.Vector3 };\n // Maps gamepad buttons to control actions\n // (default {4: \"rollLeft\", 5: \"rollRight\", 6: \"ctrl\", 7: \"shift\"})\n gamepadMapping?: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n // Speed multiplier when Caps Lock is active (default: 10)\n capsMultiplier?: number;\n // Speed multiplier when Shift is active (default: 5)\n shiftMultiplier?: number;\n // Speed multiplier when Ctrl is active (default: 1/5)\n ctrlMultiplier?: number;\n // Optional WebXR manager for XR controller stick support\n xr?: THREE.WebXRManager;\n } = {}) {\n this.moveSpeed = moveSpeed ?? DEFAULT_MOVEMENT_SPEED;\n this.rollSpeed = rollSpeed ?? DEFAULT_ROLL_SPEED;\n this.stickThreshold = stickThreshold ?? DEFAULT_STICK_THRESHOLD;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_FPS_ROTATE_SPEED;\n this.keycodeMoveMapping = keycodeMoveMapping ?? {\n ...WASD_KEYCODE_MOVE,\n ...ARROW_KEYCODE_MOVE,\n };\n this.keycodeRotateMapping = keycodeRotateMapping ?? {\n // ...QE_KEYCODE_ROTATE,\n ...ARROW_KEYCODE_ROTATE,\n };\n this.gamepadMapping = gamepadMapping ?? {\n 4: \"rollLeft\",\n 5: \"rollRight\",\n 6: \"ctrl\",\n 7: \"shift\",\n };\n this.capsMultiplier = capsMultiplier ?? 10.0;\n this.shiftMultiplier = shiftMultiplier ?? 5.0;\n this.ctrlMultiplier = ctrlMultiplier ?? 1.0 / 5.0;\n\n this.xr = xr;\n\n this.keydown = {};\n this.keycode = {};\n\n document.addEventListener(\"keydown\", (event) => {\n this.keydown[event.key] = true;\n this.keycode[event.code] = true;\n });\n document.addEventListener(\"keyup\", (event) => {\n this.keydown[event.key] = false;\n this.keycode[event.code] = false;\n });\n window.addEventListener(\"blur\", () => {\n this.keydown = {};\n this.keycode = {};\n });\n }\n\n // Call this method in your render loop with `control` set to the object to control\n // (`THREE.Camera` or a `THREE.Object3D` that contains it), with `deltaTime`\n // in seconds since the last update.\n update(deltaTime: number, control: THREE.Object3D) {\n if (!this.enable) {\n return false;\n }\n\n // Update gamepad / XR controllers\n\n const sticks = [new THREE.Vector2(), new THREE.Vector2()];\n const gamepad = navigator.getGamepads()[0];\n if (gamepad) {\n sticks[0].set(gamepad.axes[0], gamepad.axes[1]);\n sticks[1].set(gamepad.axes[2], gamepad.axes[3]);\n }\n const gamepadButtons =\n gamepad?.buttons.map((button) => button.pressed) || [];\n\n const xrSources = Array.from(this.xr?.getSession()?.inputSources ?? []);\n for (const source of xrSources) {\n const gamepad = source.gamepad;\n if (gamepad) {\n switch (source.handedness) {\n case \"none\": {\n sticks[0].x += gamepad.axes[0];\n sticks[0].y += gamepad.axes[1];\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n case \"left\": {\n sticks[0].x += gamepad.axes[2];\n sticks[0].y += gamepad.axes[3];\n break;\n }\n case \"right\": {\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n }\n }\n }\n\n for (const stick of sticks) {\n stick.x = Math.abs(stick.x) >= this.stickThreshold ? stick.x : 0;\n stick.y = Math.abs(stick.y) >= this.stickThreshold ? stick.y : 0;\n }\n\n // Rotation\n\n const rotate = new THREE.Vector3(\n sticks[1].x,\n sticks[1].y,\n 0,\n ).multiplyScalar(this.rotateSpeed);\n\n for (const [keycode, rot] of Object.entries(this.keycodeRotateMapping)) {\n if (this.keycode[keycode]) {\n rotate.add(rot);\n }\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"rollLeft\":\n rotate.z += 1;\n break;\n case \"rollRight\":\n rotate.z -= 1;\n break;\n }\n }\n }\n\n rotate.multiply(\n new THREE.Vector3(this.rotateSpeed, this.rotateSpeed, this.rollSpeed),\n );\n\n let updated = rotate.length() > MOVEMENT_THRESHOLD;\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z = Math.max(-Math.PI, Math.min(Math.PI, eulers.z + rotate.z));\n control.quaternion.setFromEuler(eulers);\n }\n\n // Movement\n\n const moveVector = new THREE.Vector3(sticks[0].x, 0, sticks[0].y);\n moveVector.add(this.extraMove);\n\n for (const [keycode, move] of Object.entries(this.keycodeMoveMapping)) {\n if (this.keycode[keycode]) {\n moveVector.add(move);\n }\n }\n\n let speedMultiplier = 1.0;\n if (this.keydown.CapsLock) {\n speedMultiplier *= this.capsMultiplier;\n }\n if (this.keycode.ShiftLeft || this.keycode.ShiftRight) {\n speedMultiplier *= this.shiftMultiplier;\n }\n if (this.keycode.ControlLeft || this.keycode.ControlRight) {\n speedMultiplier *= this.ctrlMultiplier;\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"shift\":\n speedMultiplier *= this.shiftMultiplier;\n break;\n case \"ctrl\":\n speedMultiplier *= this.ctrlMultiplier;\n break;\n }\n }\n }\n\n if (moveVector.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Apply movement in view direction\n moveVector.applyQuaternion(control.quaternion);\n control.position.add(\n moveVector.multiplyScalar(this.moveSpeed * speedMultiplier * deltaTime),\n );\n\n return updated;\n }\n}\n\ntype PointerState = {\n initial: THREE.Vector2;\n last: THREE.Vector2;\n position: THREE.Vector2;\n pointerId: number;\n button?: number;\n timeStamp: DOMHighResTimeStamp;\n};\n\n// `PointerControls` implements pointer/mouse/touch controls on the canvas,\n// for both desktop and mobile web applications.\n\nexport class PointerControls {\n canvas: HTMLCanvasElement;\n rotateSpeed: number;\n slideSpeed: number;\n scrollSpeed: number;\n swapRotateSlide: boolean;\n reverseRotate: boolean;\n reverseSlide: boolean;\n reverseSwipe: boolean;\n reverseScroll: boolean;\n moveInertia: number;\n rotateInertia: number;\n pointerRollScale: number;\n // Enable/disable controls updates\n enable = true;\n\n doublePress: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n // Time limit for double press (default DOUBLE_PRESS_LIMIT_MS)\n doublePressLimitMs: number;\n // Distance limit for double press (default DOUBLE_PRESS_DISTANCE)\n doublePressDistance: number;\n\n // Time delay in ms for press move to start\n pressMoveDelayMs: number;\n // Time in ms for press move to accelerate\n pressMoveAccelMs: number;\n // Speed of movement on press (default: 0)\n pressMoveSpeed: number;\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed: number;\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed: number;\n // Whether to move toward the screen center or finger when pressing to move\n pressMoveCenter: boolean;\n pressHeld?: boolean;\n doublePressed?: number;\n triplePressed: boolean;\n // Last pointer up event (default: null)\n lastUp: { position: THREE.Vector2; timeStamp: number } | null;\n lastLastUp: { position: THREE.Vector2; timeStamp: number } | null;\n\n // Pointer state for currently active rotating pointer\n rotating: PointerState | null;\n // Pointer state for currently active sliding pointer\n sliding: PointerState | null;\n // Pointer state for last pointer that downed\n lastDown: PointerState | null;\n // Whether we pressed two pointers at the same time\n dualPress: boolean;\n // Cumulative scroll movement\n scroll: THREE.Vector3;\n\n // Current rotation velocity\n rotateVelocity: THREE.Vector3;\n // Current movement velocity\n moveVelocity: THREE.Vector3;\n\n constructor({\n // The HTML canvas element to attach pointer events to\n canvas,\n // Speed of rotation (default DEFAULT_ROTATE_SPEED)\n rotateSpeed,\n // Speed of sliding when dragging with right/middle mouse button or two fingers\n // (default DEFAULT_SLIDE_SPEED)\n slideSpeed,\n // Speed of movement when using mouse scroll wheel (default DEFAULT_SCROLL_SPEED)\n scrollSpeed,\n // Swap the direction of rotation and sliding (default: false)\n swapRotateSlide,\n // Reverse the direction of rotation (default: false)\n reverseRotate,\n // Reverse the direction of sliding (default: false)\n reverseSlide,\n // Reverse the direction of swipe gestures (default: false)\n reverseSwipe,\n // Reverse the direction of scroll wheel movement (default: false)\n reverseScroll,\n // Inertia factor for movement (default: DEFAULT_MOVE_INERTIA)\n moveInertia,\n // Inertia factor for rotation (default: DEFAULT_ROTATE_INERTIA)\n rotateInertia,\n // Pointer rolling scale factor (default: DEFAULT_POINTER_ROLL_SCALE)\n pointerRollScale,\n // Callback for double press events (default: () => {})\n doublePress,\n // Time delay in ms for press move to start (default: DEFAULT_PRESS_MOVE_DELAY_MS)\n pressMoveDelayMs,\n // Time in ms for press move to accelerate (default: DEFAULT_PRESS_MOVE_ACCEL_MS)\n pressMoveAccelMs,\n // Speed of movement on press (default: 0)\n pressMoveSpeed,\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed,\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed,\n // Whether to move toward the screen center or finger when pressing to move (default: true)\n pressMoveCenter,\n }: {\n canvas: HTMLCanvasElement;\n rotateSpeed?: number;\n slideSpeed?: number;\n scrollSpeed?: number;\n swapRotateSlide?: boolean;\n reverseRotate?: boolean;\n reverseSlide?: boolean;\n reverseSwipe?: boolean;\n reverseScroll?: boolean;\n moveInertia?: number;\n rotateInertia?: number;\n pointerRollScale?: number;\n doublePress?: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n pressMoveDelayMs?: number;\n pressMoveAccelMs?: number;\n pressMoveSpeed?: number;\n doublePressMoveSpeed?: number;\n triplePressMoveSpeed?: number;\n pressMoveCenter?: boolean;\n }) {\n this.canvas = canvas;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_ROTATE_SPEED;\n this.slideSpeed = slideSpeed ?? DEFAULT_SLIDE_SPEED;\n this.scrollSpeed = scrollSpeed ?? DEFAULT_SCROLL_SPEED;\n this.swapRotateSlide = swapRotateSlide ?? false;\n this.reverseRotate = reverseRotate ?? (isAndroid() || isIos());\n this.reverseSlide = reverseSlide ?? false;\n this.reverseSwipe = reverseSwipe ?? false;\n this.reverseScroll = reverseScroll ?? false;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n this.pointerRollScale = pointerRollScale ?? DEFAULT_POINTER_ROLL_SCALE;\n\n this.doublePress = doublePress ?? (() => {});\n this.doublePressLimitMs = DOUBLE_PRESS_LIMIT_MS;\n this.doublePressDistance = DOUBLE_PRESS_DISTANCE;\n\n this.pressMoveDelayMs = pressMoveDelayMs ?? DEFAULT_PRESS_MOVE_DELAY_MS;\n this.pressMoveAccelMs = pressMoveAccelMs ?? DEFAULT_PRESS_MOVE_ACCEL_MS;\n this.pressMoveSpeed = pressMoveSpeed ?? 0;\n this.doublePressMoveSpeed =\n doublePressMoveSpeed ?? this.pressMoveSpeed * 5.0;\n this.triplePressMoveSpeed =\n triplePressMoveSpeed ?? this.doublePressMoveSpeed * 5.0;\n this.pressMoveCenter = pressMoveCenter ?? true;\n this.doublePressed = undefined;\n this.triplePressed = false;\n this.lastUp = null;\n this.lastLastUp = null;\n\n this.rotating = null;\n this.sliding = null;\n this.lastDown = null;\n this.dualPress = false;\n this.scroll = new THREE.Vector3();\n\n this.rotateVelocity = new THREE.Vector3();\n this.moveVelocity = new THREE.Vector3();\n\n canvas.addEventListener(\"pointerdown\", (event: PointerEvent) => {\n const position = this.getPointerPosition(event);\n const initial = position.clone();\n const last = position.clone();\n\n // Determine if we're starting a rotation pointer action\n const isRotate =\n (!this.swapRotateSlide &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 0)) ||\n (this.swapRotateSlide &&\n this.sliding &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 1));\n // const isRotate =\n // !this.rotating && (event.pointerType !== \"mouse\" || event.button === 0);\n const { pointerId } = event;\n const timeStamp = performance.now();\n\n if (isRotate) {\n this.rotating = { initial, last, position, pointerId, timeStamp };\n this.lastDown = this.rotating;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n this.dualPress = false;\n } else if (!this.sliding) {\n // If it's not a rotation action and we're not yet sliding, the next\n // pointer activates a sliding action\n const button = event.pointerType === \"mouse\" ? event.button : undefined;\n this.sliding = {\n initial,\n last,\n position,\n pointerId,\n button,\n timeStamp,\n };\n this.lastDown = this.sliding;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n // Check if we pressed both pointers at roughly the same time\n this.dualPress =\n this.rotating != null &&\n timeStamp - this.rotating.timeStamp < DUAL_PRESS_MS;\n }\n\n if (this.lastUp) {\n const distance = this.lastUp.position.distanceTo(position);\n const intervalMs = timeStamp - this.lastUp.timeStamp;\n if (\n distance < this.doublePressDistance &&\n intervalMs < this.doublePressLimitMs\n ) {\n this.doublePressed = performance.now();\n this.triplePressed = false;\n\n if (this.lastLastUp) {\n const lastDistance = this.lastLastUp.position.distanceTo(\n this.lastUp.position,\n );\n const lastIntervalMs =\n this.lastUp.timeStamp - this.lastLastUp.timeStamp;\n if (\n lastDistance < this.doublePressDistance &&\n lastIntervalMs < this.doublePressLimitMs\n ) {\n this.triplePressed = true;\n }\n }\n }\n }\n });\n\n const pointerUp = (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.sliding) {\n canvas.releasePointerCapture(this.sliding.pointerId);\n this.sliding = null;\n }\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.rotating) {\n canvas.releasePointerCapture(this.rotating.pointerId);\n this.rotating = null;\n }\n }\n\n this.doublePressed = undefined;\n this.triplePressed = false;\n\n const position = this.getPointerPosition(event);\n const lastUp = this.lastUp;\n this.lastLastUp = this.lastUp;\n const timeStamp = performance.now();\n this.lastUp = { position, timeStamp };\n\n if (lastUp) {\n const distance = lastUp.position.distanceTo(position);\n if (distance < this.doublePressDistance) {\n const intervalMs = timeStamp - lastUp.timeStamp;\n if (intervalMs < this.doublePressLimitMs) {\n // We pressed and release twice within the time and distance limits\n // this.lastUp = null;\n this.doublePress({ position, intervalMs });\n }\n }\n }\n };\n\n document.addEventListener(\"pointerup\", pointerUp);\n document.addEventListener(\"pointercancel\", pointerUp);\n\n document.addEventListener(\"pointermove\", (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating.position = this.getPointerPosition(event);\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding.position = this.getPointerPosition(event);\n }\n });\n\n canvas.addEventListener(\"contextmenu\", (event: MouseEvent) => {\n // Prevent context menu appearing on right click\n event.preventDefault();\n });\n\n canvas.addEventListener(\"wheel\", (event: WheelEvent) => {\n this.scroll.add(\n new THREE.Vector3(event.deltaX, event.deltaY, event.deltaZ),\n );\n event.preventDefault();\n });\n }\n\n getPointerPosition(event: PointerEvent): THREE.Vector2 {\n const rect = this.canvas.getBoundingClientRect();\n return new THREE.Vector2(\n event.clientX - rect.left,\n event.clientY - rect.top,\n );\n }\n\n update(deltaTime: number, control: THREE.Object3D, camera?: THREE.Camera) {\n if (!this.enable) {\n return false;\n }\n\n const now = performance.now();\n let updated = false;\n\n if (this.dualPress && this.rotating && this.sliding) {\n // We pressed both pointers at the same time, either pinching or sliding\n const motion = [\n this.rotating.position.clone().sub(this.rotating.last),\n this.sliding.position.clone().sub(this.sliding.last),\n ];\n const coincidence = motion[0].dot(motion[1]);\n\n if (coincidence >= 0.2) {\n // Similar directions so slide the camera on the XY plane\n const totalMotion = motion[0].clone().add(motion[1]);\n const slide = new THREE.Vector3(totalMotion.x, -totalMotion.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSwipe ? 1 : -1));\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else if (coincidence <= -0.2) {\n // Opposite directions so either pinch or roll motion\n const deltaDir = this.sliding.last.clone().sub(this.rotating.last);\n const deltaDist = deltaDir.length();\n deltaDir.multiplyScalar(1 / deltaDist).normalize();\n\n const orthoDir = new THREE.Vector2(-deltaDir.y, deltaDir.x);\n const motionDir = [motion[0].dot(deltaDir), motion[1].dot(deltaDir)];\n const motionOrtho = [motion[0].dot(orthoDir), motion[1].dot(orthoDir)];\n\n // Pinching motion\n const midpoint = this.rotating.last\n .clone()\n .add(this.sliding.last)\n .multiplyScalar(0.5);\n let midpointDir = new THREE.Vector3();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcMidpoint = new THREE.Vector2(\n (midpoint.x / this.canvas.clientWidth) * 2 - 1,\n -(midpoint.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcMidpoint, theCamera);\n midpointDir = raycaster.ray.direction;\n }\n const pinchOut = motionDir[1] - motionDir[0];\n const slide = midpointDir.multiplyScalar(pinchOut * this.slideSpeed);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Rolling motion\n // Calculate angle of orthogonal motion change over distance deltaDist/2\n // motionOrtho[0] and 1 are already in float distance\n const angles = [\n Math.atan(motionOrtho[0] / (-0.5 * deltaDist)),\n Math.atan(motionOrtho[1] / (0.5 * deltaDist)),\n ];\n const rotate = 0.5 * (angles[0] + angles[1]) * this.pointerRollScale;\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.z = Math.max(\n -Math.PI,\n Math.min(Math.PI, eulers.z + 0.5 * rotate),\n );\n control.quaternion.setFromEuler(eulers);\n\n if (Math.abs(rotate) > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n this.rotating.last.copy(this.rotating.position);\n this.sliding.last.copy(this.sliding.position);\n } else {\n // Didn't press both pointers at the same time, so we're in rotating\n // or FPS mode\n const rotate = new THREE.Vector3();\n if (this.rotating && !this.dualPress) {\n const delta = this.rotating.position.clone().sub(this.rotating.last);\n this.rotating.last.copy(this.rotating.position);\n rotate.set(delta.x, delta.y, 0);\n rotate.multiplyScalar(this.rotateSpeed * (this.reverseRotate ? -1 : 1));\n // Update rotation velocity from last delta\n this.rotateVelocity = rotate.clone().multiplyScalar(1 / deltaTime);\n\n if (rotate.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n // Continue to rotate with inertia\n this.rotateVelocity.multiplyScalar(\n Math.exp(-deltaTime / this.rotateInertia),\n );\n rotate.addScaledVector(this.rotateVelocity, deltaTime);\n\n if (this.rotateVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n // Apply rotation in Euler angles space\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z *= Math.exp(-DEFAULT_ROLL_SPRING * deltaTime);\n control.quaternion.setFromEuler(eulers);\n\n if (this.sliding && !this.dualPress) {\n const delta = this.sliding.position.clone().sub(this.sliding.last);\n this.sliding.last.copy(this.sliding.position);\n\n // Slide on plane depending on center/right mouse button\n const slide =\n this.sliding.button !== 2\n ? new THREE.Vector3(delta.x, 0, delta.y)\n : new THREE.Vector3(delta.x, -delta.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSlide ? -1 : 1));\n\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n // Update movement velocity from last delta\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n const target = new THREE.Vector3();\n if (this.sliding || this.rotating) {\n const point = this.lastDown?.last ?? new THREE.Vector2();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcPoint = this.pressMoveCenter\n ? new THREE.Vector2(0, 0)\n : new THREE.Vector2(\n (point.x / this.canvas.clientWidth) * 2 - 1,\n -(point.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcPoint, theCamera);\n target.copy(raycaster.ray.direction).normalize();\n }\n\n if (!this.doublePressed) {\n let intensity = 0;\n if (this.lastDown) {\n intensity =\n (now -\n (this.lastDown?.timeStamp ?? now) -\n this.pressMoveDelayMs) /\n this.pressMoveAccelMs;\n\n if (\n this.lastDown.position.distanceTo(this.lastDown.initial) <\n this.doublePressDistance\n ) {\n if (this.pressHeld === undefined) {\n if (intensity > 0) {\n this.pressHeld = true;\n }\n }\n } else if (this.pressHeld === undefined) {\n this.pressHeld = false;\n }\n }\n\n if (this.pressHeld) {\n target.multiplyScalar(\n this.pressMoveSpeed * Math.max(0, Math.min(1, intensity)),\n );\n } else {\n target.set(0, 0, 0);\n }\n } else {\n this.pressHeld = false;\n let intensity =\n (performance.now() - this.doublePressed) / this.pressMoveAccelMs;\n intensity = Math.max(0, Math.min(1, intensity));\n target.multiplyScalar(\n (this.triplePressed\n ? this.triplePressMoveSpeed\n : this.doublePressMoveSpeed) * intensity,\n );\n }\n } else {\n this.pressHeld = undefined;\n }\n // Continue to move with inertia\n const s = Math.exp(-deltaTime / this.moveInertia);\n this.moveVelocity.lerpVectors(target, this.moveVelocity, s);\n control.position.addScaledVector(this.moveVelocity, deltaTime);\n\n if (this.moveVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n }\n\n const scroll = this.scroll.multiplyScalar(this.scrollSpeed);\n scroll.set(scroll.x, scroll.z, scroll.y);\n if (this.reverseScroll) {\n scroll.multiplyScalar(-1);\n }\n scroll.applyQuaternion(control.quaternion);\n control.position.add(scroll);\n\n if (scroll.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n this.scroll.set(0, 0, 0);\n\n return updated;\n }\n}\n","import * as THREE from \"three\";\nimport { SparkRenderer, type SparkRendererOptions } from \"./SparkRenderer\";\n\n/**\n * Fragment shader for portal disk clipping.\n * - diskRadius > 0: render \"behind portal\" only through the disk\n * - diskRadius < 0: render \"in front of portal\" everywhere except behind disk\n */\nexport const DISK_PORTAL_FRAGMENT_SHADER = `\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform mat4 projectionMatrix;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nuniform vec3 diskCenter;\nuniform vec3 diskNormal;\nuniform float diskRadius;\nuniform bool diskTwoSided;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\nvoid main() {\n if (diskRadius != 0.0) {\n // Portal rendering:\n // - diskRadius > 0: render \"behind portal\" only through the disk (discard outside or in-front-of plane).\n // - diskRadius < 0: render \"in front of portal\" everywhere, but discard fragments behind the plane when looking through the disk.\n\n // View ray direction from NDC (view space is -Z forward).\n vec3 viewDir = normalize(vec3(\n vNdc.x / projectionMatrix[0][0],\n vNdc.y / projectionMatrix[1][1],\n -1.0\n ));\n\n // Reconstruct view-space *axial* depth (-viewPos.z) from NDC Z.\n float ndcZ = vNdc.z;\n float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near));\n // Convert axial depth to ray-parameter t (viewPos = t * viewDir).\n float rayT = depth / max(1e-6, -viewDir.z);\n\n float radius = abs(diskRadius);\n float radius2 = radius * radius;\n bool renderBehind = (diskRadius > 0.0);\n\n vec3 diskN = normalize(diskNormal);\n\n // Ray-plane intersection for plane (diskCenter, diskN), with ray origin at (0,0,0).\n float denom = dot(viewDir, diskN);\n bool allowPortal = diskTwoSided ? (abs(denom) > 1e-6) : (denom < -1e-6);\n\n bool hitsDisk = false;\n float t = 0.0;\n if (allowPortal) {\n t = dot(diskCenter, diskN) / denom;\n if (t > 0.0) {\n vec3 q = t * viewDir - diskCenter;\n hitsDisk = (dot(q, q) <= radius2);\n }\n }\n\n // Small bias to avoid flicker at the plane.\n float eps = 1e-4 * max(1.0, abs(t));\n\n if (renderBehind) {\n // Behind-pass: only render through the portal disk, and only behind the plane along the ray.\n if (!hitsDisk) discard;\n if (rayT <= t + eps) discard;\n } else {\n // Front-pass: render everything, except when the ray goes through the disk, discard what's behind the plane.\n if (hitsDisk && (rayT >= t - eps)) discard;\n }\n }\n\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n rgba.a = min(1.0, a) * exp(exponent);\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n}\n`;\n\n/**\n * Callback function called when a portal is crossed.\n * @param pair The portal pair that was crossed\n * @param fromEntry True if crossing from entry to exit, false if crossing from exit to entry\n */\nexport type PortalCrossCallback = (\n pair: PortalPair,\n fromEntry: boolean,\n) => void | Promise;\n\n/**\n * A pair of connected portals. Walking through one teleports you to the other.\n */\nexport interface PortalPair {\n /** First portal endpoint */\n entryPortal: THREE.Object3D;\n /** Second portal endpoint */\n exitPortal: THREE.Object3D;\n /** Radius of this portal pair's disks */\n radius: number;\n /** Optional callback function called when this portal is crossed */\n onCross?: PortalCrossCallback;\n /** Scratch matrix for tracking portal position before frame updates */\n _entryBefore: THREE.Matrix4;\n /** Scratch matrix for tracking portal position before frame updates */\n _exitBefore: THREE.Matrix4;\n}\n\nexport interface SparkPortalsOptions {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n /** Options passed to both SparkRenderer instances */\n sparkOptions?: Partial;\n /** Default portal disk radius for new pairs (default: 1.0) */\n defaultPortalRadius?: number;\n /** Epsilon for portal crossing detection (default: 1e-6) */\n portalCrossEps?: number;\n}\n\n/**\n * SparkPortals\n *\n * Portal implementation to connect two non-contiguous areas of a scene.\n * Supports multiple portal pairs - each pair connects two locations.\n *\n * The rough approach is to use two SparkRenderers: one for the \"front\"/portal\n * view (portalRenderer), and one for the \"behind portal\" pass (behindRenderer).\n *\n * Example:\n * ```typescript\n * const portals = new SparkPortals({ renderer, scene, camera, localFrame });\n *\n * // Add a portal pair\n * const pair = portals.addPortalPair();\n * pair.entryPortal.position.set(0, 0, -1);\n * pair.exitPortal.position.set(-3, 0, -4.5);\n *\n * // Add another pair\n * const pair2 = portals.addPortalPair({ radius: 0.5 });\n * pair2.entryPortal.position.set(5, 0, 0);\n * pair2.exitPortal.position.set(10, 0, 0);\n *\n * // In animation loop:\n * portals.animateLoopHook();\n * ```\n */\nexport class SparkPortals {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n\n /** Primary renderer with portal shader (added to scene) */\n portalRenderer: SparkRenderer;\n /** Secondary renderer for behind-portal pass (not in scene) */\n behindRenderer: SparkRenderer;\n /** Secondary camera for behind-portal view */\n camera2: THREE.PerspectiveCamera;\n\n /** All portal pairs */\n portalPairs: PortalPair[] = [];\n /** Default radius for new portal pairs */\n defaultPortalRadius: number;\n /** Epsilon for portal crossing detection */\n portalCrossEps: number;\n\n /** Used to detect crossing between frames */\n private lastCameraWorld = new THREE.Vector3().setScalar(Number.NaN);\n /** Whether portal LoD prefetch is currently enabled */\n private prefetchActive = false;\n\n // Preallocated objects for scratch work to avoid per frame allocations\n private scratch = {\n quat: new THREE.Quaternion(),\n scale: new THREE.Vector3(),\n center0: new THREE.Vector3(),\n center1: new THREE.Vector3(),\n normal0: new THREE.Vector3(),\n normal1: new THREE.Vector3(),\n centerT: new THREE.Vector3(),\n normalT: new THREE.Vector3(),\n prevCameraWorld: new THREE.Vector3(),\n currCameraWorld: new THREE.Vector3(),\n hit: new THREE.Vector3(),\n offset: new THREE.Vector3(),\n camWorld: new THREE.Matrix4(),\n newCamWorld: new THREE.Matrix4(),\n invCamLocal: new THREE.Matrix4(),\n newLocalFrame: new THREE.Matrix4(),\n cameraWorldPos: new THREE.Vector3(),\n viewDir: new THREE.Vector3(),\n portalCenter: new THREE.Vector3(),\n toPortal: new THREE.Vector3(),\n };\n\n constructor(options: SparkPortalsOptions) {\n this.renderer = options.renderer;\n this.scene = options.scene;\n this.camera = options.camera;\n this.localFrame = options.localFrame;\n this.defaultPortalRadius = options.defaultPortalRadius ?? 1.0;\n this.portalCrossEps = options.portalCrossEps ?? 1e-6;\n\n const sparkOpts = options.sparkOptions ?? {};\n\n // Primary renderer with portal shader\n this.portalRenderer = new SparkRenderer({\n renderer: this.renderer,\n extraUniforms: {\n diskCenter: { value: new THREE.Vector3() },\n diskNormal: { value: new THREE.Vector3() },\n diskRadius: { value: 0 },\n diskTwoSided: { value: false },\n },\n fragmentShader: DISK_PORTAL_FRAGMENT_SHADER,\n ...sparkOpts,\n });\n this.scene.add(this.portalRenderer);\n\n // Secondary renderer for behind-portal pass\n // enableDriveLod: false prevents this renderer from driving LOD updates,\n // avoiding race conditions with portalRenderer's pager operations\n this.behindRenderer = new SparkRenderer({\n renderer: this.renderer,\n enableDriveLod: false,\n ...sparkOpts,\n });\n\n // Secondary camera for behind-portal view\n this.camera2 = this.camera.clone();\n this.scene.add(this.camera2);\n }\n\n /**\n * Add a new portal pair to the system.\n * @param options Optional configuration for this pair\n * @returns The created PortalPair - position the entryPortal and exitPortal as needed\n */\n addPortalPair(options?: {\n radius?: number;\n onCross?: PortalCrossCallback;\n }): PortalPair {\n const pair: PortalPair = {\n entryPortal: new THREE.Object3D(),\n exitPortal: new THREE.Object3D(),\n radius: options?.radius ?? this.defaultPortalRadius,\n onCross: options?.onCross,\n _entryBefore: new THREE.Matrix4(),\n _exitBefore: new THREE.Matrix4(),\n };\n\n this.scene.add(pair.entryPortal);\n this.scene.add(pair.exitPortal);\n this.portalPairs.push(pair);\n\n return pair;\n }\n\n /**\n * Remove a portal pair from the system.\n */\n removePortalPair(pair: PortalPair): void {\n const index = this.portalPairs.indexOf(pair);\n if (index !== -1) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n this.portalPairs.splice(index, 1);\n }\n }\n\n /**\n * Get transform from entry portal to exit portal.\n */\n getEntryToExitTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.entryPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.exitPortal.matrixWorld);\n }\n\n /**\n * Get transform from exit portal to entry portal.\n */\n getExitToEntryTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.exitPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.entryPortal.matrixWorld);\n }\n\n /** Set portal disk uniforms for shader clipping */\n private setPortalDiskUniforms(\n camera: THREE.Camera,\n portal: THREE.Object3D,\n radius: number,\n twoSided: boolean,\n ): void {\n camera.updateMatrixWorld(true);\n portal.updateMatrixWorld(true);\n\n const inverseCamera = camera.matrixWorld.clone().invert();\n const portalInCamera = portal.matrixWorld\n .clone()\n .premultiply(inverseCamera);\n const portalQuat = new THREE.Quaternion();\n\n // Extend the base uniform type with our portal-specific uniforms so TS is happy.\n const uniforms = this.portalRenderer\n .uniforms as typeof this.portalRenderer.uniforms & {\n diskCenter: { value: THREE.Vector3 };\n diskNormal: { value: THREE.Vector3 };\n diskRadius: { value: number };\n diskTwoSided: { value: boolean };\n };\n\n portalInCamera.decompose(\n uniforms.diskCenter.value,\n portalQuat,\n new THREE.Vector3(),\n );\n\n uniforms.diskNormal.value.set(0, 0, 1).applyQuaternion(portalQuat);\n uniforms.diskRadius.value = radius;\n uniforms.diskTwoSided.value = twoSided;\n }\n\n /** Extract portal plane from matrix */\n private getPortalPlane(\n matrix: THREE.Matrix4,\n outCenter: THREE.Vector3,\n outNormal: THREE.Vector3,\n ): void {\n matrix.decompose(outCenter, this.scratch.quat, this.scratch.scale);\n outNormal.set(0, 0, 1).applyQuaternion(this.scratch.quat).normalize();\n }\n\n /**\n * Detect if the user path crosses over a portal. If so, return the parametric position (0,1)\n * along the segment where the crossing occurs. If not, return null.\n */\n private getSegmentDiskCrossing(\n prevCam: THREE.Vector3,\n currCam: THREE.Vector3,\n beforeMatrix: THREE.Matrix4,\n afterMatrix: THREE.Matrix4,\n radius: number,\n ): number | null {\n this.getPortalPlane(\n beforeMatrix,\n this.scratch.center0,\n this.scratch.normal0,\n );\n this.getPortalPlane(\n afterMatrix,\n this.scratch.center1,\n this.scratch.normal1,\n );\n\n const startPlaneDist = this.scratch.offset\n .copy(prevCam)\n .sub(this.scratch.center0)\n .dot(this.scratch.normal0);\n const endPlaneDist = this.scratch.offset\n .copy(currCam)\n .sub(this.scratch.center1)\n .dot(this.scratch.normal1);\n\n if (\n (startPlaneDist > this.portalCrossEps &&\n endPlaneDist > this.portalCrossEps) ||\n (startPlaneDist < -this.portalCrossEps &&\n endPlaneDist < -this.portalCrossEps)\n ) {\n return null;\n }\n\n const denom = startPlaneDist - endPlaneDist;\n if (Math.abs(denom) < this.portalCrossEps) return null;\n\n const t = startPlaneDist / denom;\n if (t < 0 || t > 1) return null;\n\n this.scratch.hit.lerpVectors(prevCam, currCam, t);\n this.scratch.centerT\n .copy(this.scratch.center0)\n .lerp(this.scratch.center1, t);\n this.scratch.normalT\n .copy(this.scratch.normal0)\n .lerp(this.scratch.normal1, t)\n .normalize();\n\n this.scratch.offset.copy(this.scratch.hit).sub(this.scratch.centerT);\n this.scratch.offset.addScaledVector(\n this.scratch.normalT,\n -this.scratch.offset.dot(this.scratch.normalT),\n );\n\n if (this.scratch.offset.lengthSq() > radius * radius) return null;\n return t;\n }\n\n /** Teleport camera through portal */\n private teleport(transform: THREE.Matrix4): void {\n this.scratch.camWorld.copy(this.camera.matrixWorld);\n this.scratch.newCamWorld.copy(this.scratch.camWorld).premultiply(transform);\n this.scratch.invCamLocal.copy(this.camera.matrix).invert();\n this.scratch.newLocalFrame\n .copy(this.scratch.newCamWorld)\n .multiply(this.scratch.invCamLocal);\n\n this.scratch.newLocalFrame.decompose(\n this.localFrame.position,\n this.localFrame.quaternion,\n this.localFrame.scale,\n );\n this.localFrame.updateMatrixWorld(true);\n this.camera.updateMatrixWorld(true);\n }\n\n /**\n * Check for portal crossing and teleport if needed.\n * Checks all portal pairs and takes the earliest crossing.\n * Call this after updating controls but before render().\n */\n updateTeleportation(): void {\n if (this.portalPairs.length === 0) return;\n\n this.camera.getWorldPosition(this.scratch.currCameraWorld);\n if (!Number.isFinite(this.lastCameraWorld.x)) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n this.scratch.prevCameraWorld.copy(this.lastCameraWorld);\n\n // Store portal matrices before any updates and find earliest crossing\n let earliestT: number | null = null;\n let crossedPair: PortalPair | null = null;\n let crossedEntry = true; // true = crossed entry portal, false = crossed exit portal\n\n for (const pair of this.portalPairs) {\n pair.entryPortal.updateMatrixWorld(true);\n pair.exitPortal.updateMatrixWorld(true);\n pair._entryBefore.copy(pair.entryPortal.matrixWorld);\n pair._exitBefore.copy(pair.exitPortal.matrixWorld);\n\n // Check entry portal crossing\n const entryT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._entryBefore,\n pair.entryPortal.matrixWorld,\n pair.radius,\n );\n\n if (entryT !== null && (earliestT === null || entryT < earliestT)) {\n earliestT = entryT;\n crossedPair = pair;\n crossedEntry = true;\n }\n\n // Check exit portal crossing\n const exitT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._exitBefore,\n pair.exitPortal.matrixWorld,\n pair.radius,\n );\n\n if (exitT !== null && (earliestT === null || exitT < earliestT)) {\n earliestT = exitT;\n crossedPair = pair;\n crossedEntry = false;\n }\n }\n\n // No portal crossed\n if (crossedPair === null) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n // Teleport through the crossed portal\n if (crossedEntry) {\n this.teleport(this.getEntryToExitTransform(crossedPair));\n } else {\n this.teleport(this.getExitToEntryTransform(crossedPair));\n }\n\n this.camera.getWorldPosition(this.lastCameraWorld);\n\n // Call the portal's onCross callback if provided\n if (crossedPair.onCross) {\n // Call async callback but don't await (updateTeleportation is synchronous)\n // Errors will be logged but won't block teleportation\n Promise.resolve(crossedPair.onCross(crossedPair, crossedEntry)).catch(\n (error) => {\n console.error(\"Error in portal onCross callback:\", error);\n },\n );\n }\n }\n\n /**\n * Find the most relevant portal for rendering (closest to camera view direction).\n * Returns the portal pair and which portal (entry or exit) is primary.\n */\n private findPrimaryPortal(): {\n pair: PortalPair;\n primaryIsEntry: boolean;\n primaryPortal: THREE.Object3D;\n otherPortal: THREE.Object3D;\n } | null {\n if (this.portalPairs.length === 0) return null;\n\n this.camera.getWorldPosition(this.scratch.cameraWorldPos);\n this.camera.getWorldDirection(this.scratch.viewDir);\n\n let bestScore = Number.NEGATIVE_INFINITY;\n let bestPair: PortalPair | null = null;\n let bestIsEntry = true;\n\n for (const pair of this.portalPairs) {\n // Score entry portal\n pair.entryPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const entryDist = this.scratch.toPortal.length();\n const entryScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / entryDist;\n\n if (entryScore > bestScore) {\n bestScore = entryScore;\n bestPair = pair;\n bestIsEntry = true;\n }\n\n // Score exit portal\n pair.exitPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const exitDist = this.scratch.toPortal.length();\n const exitScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / exitDist;\n\n if (exitScore > bestScore) {\n bestScore = exitScore;\n bestPair = pair;\n bestIsEntry = false;\n }\n }\n\n if (!bestPair) return null;\n\n return {\n pair: bestPair,\n primaryIsEntry: bestIsEntry,\n primaryPortal: bestIsEntry ? bestPair.entryPortal : bestPair.exitPortal,\n otherPortal: bestIsEntry ? bestPair.exitPortal : bestPair.entryPortal,\n };\n }\n\n /**\n * Render the scene with portals using two-pass rendering.\n * Renders the most relevant portal pair (closest to camera view).\n * Call this instead of renderer.render() in your animation loop.\n */\n render(): void {\n const primary = this.findPrimaryPortal();\n\n // No portals - just render normally\n if (!primary) {\n if (this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras();\n this.prefetchActive = false;\n }\n this.renderer.autoClear = true;\n this.renderer.render(this.scene, this.camera);\n return;\n }\n\n if (!this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras([this.camera2]);\n this.prefetchActive = true;\n }\n\n const { pair, primaryIsEntry, primaryPortal, otherPortal } = primary;\n\n // Compute camera2 position (transformed through portal)\n const camera2Matrix = primaryIsEntry\n ? this.camera.matrixWorld\n .clone()\n .premultiply(this.getEntryToExitTransform(pair))\n : this.camera.matrixWorld\n .clone()\n .premultiply(this.getExitToEntryTransform(pair));\n camera2Matrix.decompose(\n this.camera2.position,\n this.camera2.quaternion,\n this.camera2.scale,\n );\n this.camera2.updateMatrixWorld(true);\n\n // Share lodInstances from portalRenderer to behindRenderer BEFORE Pass 1.\n // This uses previous frame's lodInstances (computed with main camera),\n // ensuring both passes use consistent splat selections to avoid flickering.\n this.shareLodInstances();\n\n // Pass 1: Behind portal view (uses shared lodInstances)\n this.setPortalDiskUniforms(this.camera2, otherPortal, pair.radius, true);\n this.renderer.autoClear = true;\n this.behindRenderer.render(this.scene, this.camera2);\n\n // Pass 2: Main view (updates portalRenderer's lodInstances for next frame)\n this.setPortalDiskUniforms(this.camera, primaryPortal, -pair.radius, true);\n this.renderer.autoClear = false;\n this.portalRenderer.render(this.scene, this.camera);\n }\n\n /**\n * Share lodInstances from portalRenderer to behindRenderer.\n * Uses previous frame's values to ensure both passes render consistent splats.\n */\n private shareLodInstances(): void {\n // Clear and copy lodInstances from portalRenderer to behindRenderer\n this.behindRenderer.lodInstances.clear();\n for (const [mesh, data] of this.portalRenderer.lodInstances) {\n this.behindRenderer.lodInstances.set(mesh, data);\n }\n }\n\n /**\n * Convenience hook for animation loop.\n * Calls updateTeleportation() then render().\n */\n animateLoopHook(): void {\n this.updateTeleportation();\n this.render();\n }\n\n /** Update camera2 aspect ratio on window resize */\n updateAspect(aspect: number): void {\n this.camera2.aspect = aspect;\n this.camera2.updateProjectionMatrix();\n }\n\n /** Dispose of resources */\n dispose(): void {\n this.scene.remove(this.portalRenderer);\n this.scene.remove(this.camera2);\n\n for (const pair of this.portalPairs) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n }\n this.portalPairs = [];\n\n this.portalRenderer.dispose();\n this.behindRenderer.dispose();\n }\n}\n"],"names":["LN_SCALE_MIN","LN_SCALE_MAX","SCALE_MIN","SCALE_MAX","LN_SCALE_ZERO","SCALE_ZERO","SPLAT_TEX_WIDTH_BITS","SPLAT_TEX_HEIGHT_BITS","SPLAT_TEX_DEPTH_BITS","SPLAT_TEX_LAYER_BITS","SPLAT_TEX_WIDTH","SPLAT_TEX_HEIGHT","SPLAT_TEX_DEPTH","SPLAT_TEX_MIN_HEIGHT","SPLAT_TEX_WIDTH_MASK","SPLAT_TEX_HEIGHT_MASK","SPLAT_TEX_DEPTH_MASK","WASM_SPLAT_SORT","USE_COMPILED_PARSER_FUNCTION","SplatFileType","DEFAULT_SPLAT_ENCODING","isBoolType","type","isScalarType","isIntType","isUintType","isFloatType","isMatFloatType","isAllFloatType","isVector2Type","isVector3Type","isVector4Type","isVectorType","isMat2","isMat3","isMat4","vectorElementType","vectorDim","sameSizeVec","sameSizeUvec","sameSizeIvec","typeLiteral","numberAsInt","value","numberAsUint","numberAsFloat","valType","val","DynoValue","DynoOutput","dyno","key","DynoLiteral","literal","dynoLiteral","DynoConst","v","THREE","m","e","arg","_","i","dynoConst","literalZero","typeString","literalOne","literalNegOne","DEFAULT_INDENT","Compilation","indent","Dyno","inTypes","outTypes","inputs","update","globals","statements","generate","outputs","compile","_a","_b","result","declares","name","uniforms","global","dynoDeclare","line","DynoBlock","construct","args","blockInputs","blockOutputs","options","returned","ordering","nodeOuts","visit","node","outKey","outName","outs","input","root","steps","source","newSteps","literalOutputs","step","index","dynoBlock","count","typeStr","unindentLines","s","seenNonEmpty","lines","trimmedLine","regex","unindent","UnaryOp","a","outTypeFunc","outType","BinaryOp","b","TrinaryOp","c","Gsplat","CovSplat","TPackedSplats","TExtSplats","TCovSplats","numPackedSplats","packedSplats","NumPackedSplats","readPackedSplat","ReadPackedSplat","readPackedSplatRange","base","ReadPackedSplatRange","numExtSplats","extSplats","NumExtSplats","readExtSplat","ReadExtSplat","numCovSplats","covsplats","NumCovSplats","readCovSplat","covSplats","ReadCovSplat","gsplatToCovSplat","gsplat","GsplatToCovSplat","splitGsplat","SplitGsplat","combineGsplat","flags","center","scales","quaternion","rgba","rgb","opacity","x","y","z","r","g","CombineGsplat","gsplatNormal","GsplatNormal","transformGsplat","scale","rotate","translate","recolor","TransformGsplat","splatTexCoord","SplatTexCoord","pagedSplatTexCoord","PagedSplatTexCoord","defineGsplat","defineCovSplat","definePackedSplats","defineReadPackedArray","defineExtSplats","defineReadExtArrays","defineReadCovArrays","covsplat","active","outGsplat","defineGsplatNormal","splitCovSplat","SplitCovSplat","combineCovSplat","CombineCovSplat","outCovSplat","coord","outputPackedSplat","rgbMinMaxLnScaleMinMax","OutputPackedSplat","outputCovSplat","OutputCovSplat","outputExtendedSplat","OutputExtendedSplat","outputExtCovSplat","OutputExtCovSplat","outputSplatDepth","viewCenter","viewDir","sortRadial","OutputSplatDepth","outputCovSplatDepth","OutputCovSplatDepth","outputRgba8","rgba8","OutputRgba8","uniform","DynoUniform","dynoBool","DynoBool","dynoUint","DynoUint","dynoInt","DynoInt","dynoFloat","DynoFloat","dynoBvec2","DynoBvec2","dynoUvec2","DynoUvec2","dynoIvec2","DynoIvec2","dynoVec2","DynoVec2","dynoBvec3","DynoBvec3","dynoUvec3","DynoUvec3","dynoIvec3","DynoIvec3","dynoVec3","DynoVec3","dynoBvec4","DynoBvec4","dynoUvec4","DynoUvec4","dynoIvec4","DynoIvec4","dynoVec4","DynoVec4","dynoMat2","DynoMat2","dynoMat2x2","DynoMat2x2","dynoMat2x3","DynoMat2x3","dynoMat2x4","DynoMat2x4","dynoMat3","DynoMat3","dynoMat3x2","DynoMat3x2","dynoMat3x3","DynoMat3x3","dynoMat3x4","DynoMat3x4","dynoMat4","DynoMat4","dynoMat4x2","DynoMat4x2","dynoMat4x3","DynoMat4x3","dynoMat4x4","DynoMat4x4","dynoUsampler2D","DynoUsampler2D","dynoIsampler2D","DynoIsampler2D","dynoSampler2D","DynoSampler2D","dynoUsampler2DArray","DynoUsampler2DArray","dynoIsampler2DArray","DynoIsampler2DArray","dynoSampler2DArray","DynoSampler2DArray","dynoUsampler3D","DynoUsampler3D","dynoIsampler3D","DynoIsampler3D","dynoSampler3D","DynoSampler3D","dynoUsamplerCube","DynoUsamplerCube","dynoIsamplerCube","DynoIsamplerCube","dynoSamplerCube","DynoSamplerCube","dynoSampler2DShadow","DynoSampler2DShadow","dynoSampler2DArrayShadow","DynoSampler2DArrayShadow","dynoSamplerCubeShadow","DynoSamplerCubeShadow","allGlobals","u8","u16","i32","fleb","fdeb","clim","freb","eb","start","j","fl","revfl","fd","rev","hMap","cd","mb","l","le","co","rvb","sv","r_1","flt","fdt","flrm","fdrm","max","bits","d","p","o","bits16","shft","slc","ec","err","ind","msg","nt","inflt","dat","st","buf","dict","sl","dl","noBuf","resize","noSt","cbuf","bl","nbuf","final","pos","bt","lm","dm","lbt","dbt","tbts","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","n","lt","dt","t","lms","dms","lpos","sym","add","dsym","end","shift","dend","et","b2","b4","b8","gzs","flg","zs","Inflate","opts","cb","bts","chunk","inflateSync","data","Gunzip","td","tds","dutf8","strFromU8","latin1","slzh","zh","fnl","fn","es","bs","z64e","sc","su","off","unzipSync","files","ze","fltr","c_2","no","threeRevision","threeMrtArray","f32buffer","u32buffer","supportsFloat16Array","f16buffer","u16buffer","normalize","vec","norm","acc","floatBitsToUint","f","uintBitsToFloat","u","toHalf","toHalfNative","toHalfJS","fromHalf","fromHalfNative","fromHalfJS","sign","exp","frac","halfSign","newExp","subFrac","halfFrac","h","f32bits","mant","newFrac","floatToUint8","floatToSint8","Uint8ToFloat","Sint8ToFloat","DataCache","asyncFetch","dispose","maxItems","item","immediate","pending","removed","mapObject","obj","entries","mapFilterObject","getTransferable","ctx","buffers","seen","traverse","newArray","initFunction","FreeList","allocate","valid","encodeExtSplat","extArrays","scaleX","scaleY","scaleZ","quatX","quatY","quatZ","quatW","i4","extA","extB","encodeQuatOctXy1010R12","decodeExtSplat","packedFields","decodeQuatOctXy1010R12","setPackedSplat","encoding","rgbMin","rgbRange","uR","uG","uB","uA","uQuat","encodeQuatOctXy88R8","tempQuaternion","uQuatX","uQuatY","uQuatZ","lnScaleMin","lnScaleScale","uScaleX","uScaleY","uScaleZ","uCenterX","uCenterY","uCenterZ","setPackedSplatCenter","setPackedSplatScales","setPackedSplatQuat","setPackedSplatRgba","setPackedSplatRgb","setPackedSplatOpacity","packedCenter","packedScales","packedQuaternion","packedColor","unpackSplat","word0","word1","word2","word3","uScalesX","uScalesY","uScalesZ","decodeQuatOctXy88R8","getTextureSize","numSplats","width","height","depth","maxSplats","computeMaxSplats","isMobile","isAndroid","isOculus","isQuest2","isIos","isVisionPro","flipPixels","pixels","tempLine","topOffset","bottomOffset","pixelsToPngUrl","canvas","imageData","omitUndefined","IDENT_VERTEX_SHADER","averagePositions","positions","sum","position","averageQuaternions","quaternions","coinciDist","matrix1","matrix2","origin1","origin2","direction1","direction2","distance","coincidence","withinDist","maxDistance","withinCoinciDist","minCoincidence","coorientDist","rotate1","rotate2","coorient","withinCoorientDist","minCoorient","epsilonSign","epsilon","encodeQuatXyz888","q","negQuat","iQuatX","iQuatY","iQuatZ","decodeQuatXyz888","encoded","out","dotSelf","tempNormalizedQuaternion","tempAxis","qnorm","theta","xyz_norm","axis","p_x","p_y","tmp","u_f","v_f","quantU","quantV","angleInt","f_x","f_y","f_z","halfTheta","w","encodeQuatEulerXyz888","qNorm","sinr_cosp","cosr_cosp","roll","sinp","pitch","siny_cosp","cosy_cosp","yaw","normRoll","normPitch","normYaw","rollQ","pitchQ","decodeQuatEulerXyz888","yawQ","cr","sr","cp","sp","cy","sy","qx","qy","qz","qw","qlen","qnx","qny","qnz","qnw","axisX","axisY","axisZ","axisLen","packSint8Bytes","b0","b1","b3","clampedB0","clampedB1","clampedB2","clampedB3","encodeSh1Rgb","sh1Array","sh1Rgb","sh1Scale","bitStart","bitEnd","wordStart","bitOffset","firstWord","secondWord","encodeSh2Rgb","sh2Array","sh2Rgb","sh2Scale","encodeSh3Rgb","sh3Array","sh3Rgb","sh3Scale","encodeExtRgb","ar","ag","ab","maxAbs","biasedBase","divisor","expSigns","decodeExtRgb","color","encodeExtSh1Rgb","k","k3","encodeExtSh12Rgb","k5","encodeExt3Rgb","sh3ArrayA","sh3ArrayB","decompressPartialGzip","fileBytes","numBytes","chunks","totalBytes","gunzip","allBytes","offset","CHUNK_SIZE","GunzipReader","chunkBytes","ds","decompressionStream","readerDone","outOffset","uploadU32DataTextureRows","renderer","texture","rows","gl","props","glTexture","currentFlipY","currentPremultiply","DynoProgram","graph","template","consoleLog","getMaterial","updater","DynoProgramTemplate","programMaterial","program","material","addOutputType","operation","error","subOutputType","mulOutputType","divOutputType","imodOutputType","modOutputType","negOutputType","absOutputType","signOutputType","floorOutputType","ceilOutputType","truncOutputType","roundOutputType","fractOutputType","powOutputType","expOutputType","exp2OutputType","logOutputType","log2OutputType","sqrOutputType","sqrtOutputType","inversesqrtOutputType","minOutputType","maxOutputType","clampOutputType","_c","mixOutputType","stepOutputType","smoothstepOutputType","isNanOutputType","isInfOutputType","Add","sub","Sub","mul","Mul","div","Div","imod","IMod","mod","Mod","modf","Modf","neg","Neg","abs","Abs","Sign","floor","Floor","ceil","Ceil","trunc","Trunc","round","Round","fract","Fract","pow","Pow","Exp","exp2","Exp2","log","Log","log2","Log2","sqr","Sqr","sqrt","Sqrt","inversesqrt","InverseSqrt","min","Min","Max","clamp","Clamp","mix","Mix","edge","Step","smoothstep","edge0","edge1","Smoothstep","isNan","IsNan","isInf","IsInf","and","And","or","Or","xor","Xor","not","Not","shr","Shr","shl","Shl","lessThan","LessThan","lessThanEqual","LessThanEqual","greaterThan","GreaterThan","greaterThanEqual","GreaterThanEqual","equal","Equal","notEqual","NotEqual","any","Any","all","All","select","cond","Select","compXor","CompXor","aType","bType","compareOutputType","equalOutputType","notEqualOutputType","cType","operator","compXorOutputType","operands","bool","Bool","int","Int","uint","Uint","float","Float","bvec2","BVec2","bvec3","BVec3","bvec4","BVec4","ivec2","IVec2","ivec3","IVec3","ivec4","IVec4","uvec2","UVec2","uvec3","UVec3","uvec4","UVec4","vec2","Vec2","vec3","Vec3","vec4","Vec4","mat2","Mat2","mat3","Mat3","mat4","Mat4","floatBitsToInt","FloatBitsToInt","FloatBitsToUint","intBitsToFloat","IntBitsToFloat","UintBitsToFloat","packSnorm2x16","PackSnorm2x16","unpackSnorm2x16","UnpackSnorm2x16","packUnorm2x16","PackUnorm2x16","unpackUnorm2x16","UnpackUnorm2x16","packHalf2x16","PackHalf2x16","unpackHalf2x16","UnpackHalf2x16","uintToRgba8","UintToRgba8","SimpleCast","length","Length","Distance","dot","Dot","cross","Cross","Normalize","faceforward","FaceForward","reflectVec","incident","normal","ReflectVec","refractVec","eta","RefractVec","split","vector","Split","combine","vectorType","Combine","projectH","ProjectH","extendVec","ExtendVec","swizzle","Swizzle","compMult","CompMult","outer","Outer","transpose","Transpose","determinant","Determinant","inverse","Inverse","projectHOutputType","extendVecOutputType","outerOutputType","transposeOutputType","splitOutTypes","vType","elType","dim","swizzleOutputType","remapIndex","from","to","DynoRemapIndex","pcgMix","PcgMix","pcgNext","state","PcgNext","pcgHash","PcgHash","hash","Hash","hash2","Hash2","hash3","Hash3","hash4","Hash4","hashFloat","HashFloat","hashVec2","HashVec2","hashVec3","HashVec3","hashVec4","HashVec4","normalizedDepth","zNear","zFar","NormalizedDepth","debugColorHue","DebugColorHue","toUint","tempType","toUvec","word","words","transformPos","TransformPosition","transformDir","dir","TransformDir","transformQuat","TransformQuaternion","dynoIf","dynoSwitch","dynoFor","comment","arrayIndex","arrayLength","textureSize","lod","TextureSize","bias","Texture","texelFetch","TexelFetch","textureType","textureSizeType","textureCoordType","textureReturnType","radians","degrees","Radians","Degrees","sin","Sin","cos","Cos","tan","Tan","asin","Asin","acos","Acos","atan","Atan","atan2","Atan2","sinh","Sinh","cosh","Cosh","tanh","Tanh","asinh","Asinh","acosh","Acosh","atanh","Atanh","computeUvec4_default","computeUvec4_Vec4_default","computeUvec4x2_Vec4_default","computeVec4_default","splatDefines_default","splatFragment_default","splatVertex_default","shaders","getShaders","splatDefines","splatVertex","splatFragment","computeVec4Template","computeUvec4Vec4Template","computeUvec4x2Vec4Template","computeUvec4Template","_Readback","buffer","bytes","newBuffer","ctor","capacity","reader","layerSize","baseIndex","layer","layerBase","layerYEnd","readback","roundedCount","readbackUint8","promises","readbackSize","subReadback","promise","renderState","FullScreenQuad","Readback","SplatEditSdfType","sdfTypeToNumber","SplatEditRgbaBlendMode","rgbaBlendModeToNumber","mode","SplatEditSdf","invert","displace","radius","_SplatEdit","rgbaBlendMode","sdfSmooth","softEdge","sdfs","sdf","SplatEdit","SplatEdits","maxSdfs","maxEdits","SdfArray","defineSdfArray","defineEdit","dynoUpdated","updated","tempFloat32","editIndex","sdfFirst","sdfCount","sdfIndex","sdfType","sizes","values","nValues","vBase","edits","total","edit","sdfUpdated","applyGsplatRgbaDisplaceEdits","applyCovSplatRgbaDisplaceEdits","sdfArray","numEdits","rgbaDisplaceEdits","SplatModifier","modifier","generator","modified","SplatTransformer","transform","newScale","object","CovSplatTransformer","rebased","basis","SplatGenerator","covGenerator","constructed","CsplatArray","ptr","CsplatArrayFinalization","wasm","lod_base","merge_filter","ret","takeFromExternrefTable0","arg0","GsplatArray","GsplatArrayFinalization","decode_rad_header","get_raycast_buffer","get_raycast_buffer2","raycast_ext_buffers","origin_x","origin_y","origin_z","dir_x","dir_y","dir_z","min_opacity","near","far","raycast_packed_buffer","ln_scale_min","ln_scale_max","lod_opacity","__wbg_get_imports","arg1","getStringFromWasm0","isLikeNone","debugString","ptr1","passStringToWasm0","len1","WASM_VECTOR_LEN","getDataViewMemory0","deferred0_0","deferred0_1","handleError","arg2","getArrayU8FromWasm0","getArrayU16FromWasm0","getArrayU32FromWasm0","getArrayF32FromWasm0","table","addToExternrefTable0","idx","description","debug","builtInMatches","className","len","getFloat32ArrayMemory0","getUint16ArrayMemory0","getUint32ArrayMemory0","getUint8ArrayMemory0","cachedDataViewMemory0","cachedFloat32ArrayMemory0","decodeText","cachedUint16ArrayMemory0","cachedUint32ArrayMemory0","cachedUint8ArrayMemory0","malloc","realloc","cachedTextEncoder","mem","code","view","cachedTextDecoder","MAX_SAFARI_DECODE_BYTES","numBytesDecoded","__wbg_finalize_init","instance","module","__wbg_load","imports","expectedResponseType","__wbg_init","module_or_path","b64ToUint6","nChr","base64ToUint8","sBase64","nBlocksSize","sB64Enc","nInLen","nOutLen","taBytes","nMod3","nMod4","nUint24","nOutIdx","nInIdx","toUint8","b64","bin","decode64","WASM_MODULE","WASM","initialized","initialization","init_wasm","isInitialized","_SplatWorker","BundledWorker","event","id","status","callback","queue","resolve","reject","messages","message","SplatWorker","NewSplatWorkerPool","maxWorkers","worker","waiter","workerPool","_PackedSplats","DynoPackedSplats","_d","url","fileType","fileName","stream","streamLength","nonLod","lodAbove","loader","SplatLoader","maybePromise","maxSh","viewOrigin","splatCenter","sh1Texture","sh2Texture","sh3Texture","evaluatePackedSH","sh1","newSh1","sh2","newSh2","sh3","newSh3","targetSize","currentSize","level","wordsPerSplat","unpacked","splatCounts","mapping","rounded","_outputs","roots","output","nextBase","layerYStart","rgbaArray","quality","lodBase","packedArray","extra","decoded","lodSplats","indices","pageColoring","newSplats","splat","hue","emptyArray","PackedSplats","_f","_e","_h","_g","_j","_i","_l","_k","defineEvalPackedSH1","defineEvalPackedSH2","defineEvalPackedSH3","numSh","shMax","Loader","manager","FileLoader","onLoad","onProgress","onError","SplatMesh","resolvedURL","readStream","splatsLod","splatsNonLod","onStatus","loaded","done","basedUrl","ExtSplats","initExtSplats","initSplats","getSplatFileType","magic","header","tryPcSogsZip","getFileExtension","pathOrUrl","noTrailing","lastSlash","filename","lastDot","getSplatFileTypeFromPath","extension","isPcSogs","tryPcSogs","text","json","isVersion2","metaFilename","unzipped","SplatData","targetSplats","newCenters","newScales","newQuaternions","newOpacities","newColors","_ExtSplats","DynoExtSplats","sh3TextureA","sh3TextureB","evaluateExtSH","newUint32ArrayTexture","sh3a","sh3b","newSh3b","newArray0","newArray1","defineEvaluateExtSH1","defineEvaluateExtSH12","defineEvaluateExtSH3","format","internalFormat","_RgbaArray","TRgbaArray","defineRgbaArray","splatCount","dynoSplats","dynoBase","dynoCount","RgbaArray","readRgbaArray","PAGE_WIDTH","PAGE_HEIGHT","PAGE_SPLATS","PagedSplats","dyno.DynoInt","dyno.DynoUsampler2D","SplatPager","dyno.DynoVec4","dyno.DynoBool","dyno.DynoVec3","wasm.initialization","metaStart","tryBytes","fetchRange","decodeBytes","meta","chunksStart","resolvedRoot","chunkUrl","request","response","sh3Codes","indicesTexture","textureIndices","splatIndex","packedSplatArray","extPackedSplatArray","_SplatPager","dyno.DynoUsampler2DArray","emptyShTextures","dyno.dynoBlock","dyno.Dyno","dyno.unindentLines","dyno.Gsplat","lodOpacity","dyno.defineGsplat","dyno.splitGsplat","dyno.normalize","dyno.sub","dyno.add","dyno.combineGsplat","elementsPerSplat","splats","page","now","pageLru","freedPages","shArrays","extArray","pageBase","uploadTextureLayer","array","needed","overflow","numPages","backoff","extraPages","splatsChunk","fetched","isExtResult","sh","upload","updates","dstOffset","requestHeader","withCredentials","EmptySplatSource","_SplatMesh","context","rootUrl","emptyLodIndices","constructSplats","splatEncoding","packedSplatsOptions","centers_only","minVec","maxVec","corners","signs","_index","_opacity","_color","viewToObject","maybeLookupIndex","maybeInjectSplatRgba","recolorRgba","covTransform","covViewToObject","time","deltaTime","viewToWorld","camera","renderSize","globalEdits","lodIndices","worldToView","viewToObjectMatrix","newRecolor","editsSdfs","editResult","raycaster","intersects","wasm.isInitialized","paged","ext","ray","worldToMesh","worldToMeshRot","origin","direction","bufferSize","intersections","buffer2","ext1","_o","_n","_q","_p","_r","ext2","_t","_s","_v","_u","_w","index4","newIntersections","packed","_m","point","additional","enableLod","showLodPage","_SplatAccumulator","target2","target3","theGenerator","centerSubView","halfAlpha","outputDepth","scene","previous","lodInstances","allGenerators","globalEditsSet","ancestor","visibleGenerators","baseCounts","previousMappings","mappings","previousNode","version","mappingVersion","splatsUpdated","mappingUpdated","textures","otherMapping","other","SplatAccumulator","SplatGeometry","QUAD_VERTICES","QUAD_INDICES","_SparkRenderer","premultipliedAlpha","geometry","defaultPages","accumulatorOptions","provokingVertexExt","doubleBuffer","origSuperXY","origTargetOptions","superXY","superWidth","superHeight","targetOptions","accumulators","accumulator","instances","spark","frame","isNewFrame","currentRenderTarget","isXRRenderTarget","checkIsXRRenderTarget","baseLayer","typedCamera","accumToWorld","accumToCamera","outputColorSpace","preUpdate","useCamera","autoUpdate","viewChanged","next","doUpdate","needsUpdate","nextSortTime","current","orderingMaxSplats","orderingTexture","defaultSplatCount","pixelScaleLimit","viewHeight","viewWidth","pxY","pxX","viewPos","viewQuat","distanceRamp","quatRamp","lodMeshes","hasPaged","mesh","record","lodId","lodInitQueue","lodTree","lodUpdates","deltaPred","uuidToMesh","cameraToWorld","traverseStart","keyIndices","pixelLimit","totalLodSplats","pagedMeshes","meshPosition","uuid","countIndices","oldest","target","previousTarget","byteSize","superPixels","subWidth","subHeight","subSize","targetPixels","super2","row","superCol","superRow","sx","superIndex","pixelIndex","worldCenter","size","hideObjects","filter","cubeCamera","objectVisibility","tempCamera","visible","cubeTexture","envMap","SparkRenderer","renderTarget","PLY_PROPERTY_TYPES","_PlyReader","decoder","controller","headerTerminator","endHeader","headerLen","curElement","lineIndex","fields","elementCallback","elementName","element","properties","createEmptyItem","parseFn","createParseFn","splatCallback","shCallback","isSuperSplat","ssChunks","sh1Props","sh2Props","sh3Props","prepareSh","num_f_rest","NUM_SH_TO_NUM_F_REST","ssShCallback","initSuperSplat","min_x","min_y","min_z","max_x","max_y","max_z","min_scale_x","min_scale_y","min_scale_z","max_scale_x","max_scale_y","max_scale_z","min_r","min_g","min_b","max_r","max_g","max_b","decodeSuperSplat","getNumSh","packed_position","packed_rotation","packed_scale","packed_color","SQRT2","r0","r1","r2","rr","rOrder","scale_0","scale_1","scale_2","rot_0","rot_1","rot_2","rot_3","f_dc_0","f_dc_1","f_dc_2","red","green","blue","alpha","hasScales","hasRots","alphaDiv","FIELD_SCALE","redDiv","greenDiv","blueDiv","op","SH_C0","parsers","rgbaOffset","isVertex","propertyName","property","PARSE_FIELD","FIELD_BYTES","component","SET_FIELD","parser","PlyReader","littleEndian","NUM_F_REST_TO_NUM_SH","F_REST_REGEX","safeToCompile","createCompiledParserFn","createDynamicParserFn","UNSAFE_EVAL_ALLOWED","PROPERTY_NAME_REGEX","parserSrc","fRestMatch","fRestIndex","list","currentOffset","parserIndex","decodeAntiSplat","initNumSplats","f32","i8","KSPLAT_COMPRESSION","KSPLAT_SH_DEGREE_TO_COMPONENTS","decodeKsplat","headerOffset","versionMajor","versionMinor","maxSectionCount","compressionLevel","minSphericalHarmonicsCoeff","maxSphericalHarmonicsCoeff","sectionBase","section","getSh","splatOffset","sphericalHarmonicsOffsetBytes","sectionSplatCount","sectionMaxSplatCount","bucketSize","bucketCount","bucketBlockSize","bucketStorageSizeBytes","compressionScaleRange","fullBucketCount","fullBucketSplats","partiallyFilledBucketCount","bucketsMetaDataSizeBytes","bucketsStorageSizeBytes","sphericalHarmonicsDegree","shComponents","bytesPerCenter","bytesPerScale","bytesPerRotation","bytesPerColor","bytesPerSphericalHarmonicsComponent","scaleOffsetBytes","rotationOffsetBytes","colorOffsetBytes","bytesPerSplat","splatDataStorageSizeBytes","storageSizeBytes","sh1Index","sh2Index","sh3Index","compressionScaleFactor","bucketsBase","dataBase","bucketArray","partiallyFilledBucketLengths","partialBucketIndex","partialBucketBase","bucketIndex","bucketLength","SpzReader","centerCallback","alphaCallback","rgbCallback","scalesCallback","quatCallback","childCounts","childStarts","centerBytes","centerUint16","i3","fixed","i9","rgbBytes","scalesBytes","maxValue","quatBytes","combinedValues","valueMask","largestIndex","remainingValues","sumSquares","square","shBytes","SH_DEGREE_TO_VECS","i2","SPZ_MAGIC","SPZ_VERSION","FLAG_ANTIALIASED","SpzWriter","shDegree","fractionalBits","flagAntiAlias","splatSize","xRounded","xInt","yRounded","yInt","zRounded","zInt","quat","iLargest","negate","comp","negbit","mag","quantized","shVecs","base1","base2","base3","compressed","transcodeSpz","clipXyz","opacityThreshold","transformScales","transformQuaternion","withinClip","clip","withinOpacity","ply","lastIndex","spz","centers","SplatSkinningMode","_SplatSkinning","GsplatSkinning","defineGsplatSkinning","applyGsplatSkinning","applyCovSplatDQSkinning","applyCovSplatLBSkinning","boneIndex","matrix","i16","boneIndices","weights","SplatSkinning","defineApplyGsplatSkinning","skinning","defineApplyCovSplatDQSkinning","defineApplyCovSplatLBSkinning","constructGrid","extents","stepSize","pointRadius","pointShadowScale","pointColor","constructAxes","axisRadius","axisShadowScale","origins","constructSpherePoints","maxDepth","pointThickness","pointsHash","addPoint","recurse","p0","p1","p2","p01","p12","p20","points","textSplats","font","fontSize","dotRadius","textAlign","lineHeight","objectScale","metrics","fontHeight","minLeft","maxRight","minTop","maxBottom","originLeft","originTop","imageSplats","subXY","forEachSplat","img","destWidth","destHeight","push","maybeOpacity","staticBox","box","cells","dotScale","dynoX","dynoY","dynoTime","cellX","index2","cellY","cellZ","cell","intTime","random","transformer","DEFAULT_SNOW","DEFAULT_RAIN","snowBox","minY","density","anisoScale","minScale","maxScale","fallDirection","fallVelocity","wanderScale","wanderVariance","color1","color2","onFrame","volume","dynoMinScale","dynoMaxScale","dynoAnisoScale","dynoFallDirection","dynoFallVelocity","dynoWanderScale","dynoWanderVariance","dynoColor1","dynoColor2","dynoOpacity","globalOffset","dynoMin","dynoMax","dynoMinY","minMax","snow","randomW","intensity","random2","perturb","timeOffset","modulo","centerY","fallDelta","makeNormalColorModifier","splatToView","viewGsplat","viewNormal","splatDot","sameDir","setWorldNormalColor","makeDepthColorModifier","minDepth","reverse","setDepthColor","dynoMinDepth","dynoMaxDepth","dynoReverse","DEFAULT_CONTROLLER_MOVE_SPEED","DEFAULT_CONTROLLER_ROTATE_SPEED","DEFAULT_CONTROLLER_ROLL_SPEED","DEFAULT_CONTROLLER_FAST_MULTIPLIER","DEFAULT_CONTROLLER_SLOW_MULTIPLIER","DEFAULT_CONTROLLER_MOVE_HEADING","DEFAULT_CONTROLLER_GETMOVE","gamepads","sparkXr","DEFAULT_CONTROLLER_GETROTATE","DEFAULT_CONTROLLER_GETFAST","DEFAULT_CONTROLLER_GETSLOW","JointEnum","JOINT_IDS","NUM_JOINTS","JOINT_INDEX","JOINT_RADIUS","JOINT_SEGMENTS","JOINT_SEGMENT_STEPS","JOINT_TIPS","FINGER_TIPS","Hand","HANDS","XR_HEADSET_HINTS","isLikelyMobilePhone","ua","uaData","_SparkXr","XrHand","button","modes","supported","referenceSpaceType","frameBufferScaleFactor","optionalFeatures","requiredFeatures","session","onSessionEnded","visibilityChanged","lastVisibilityState","exitHtml","exitText","enterHtml","enterText","cameraFrame","xrGamepads","gamepad","eulers","pivot","move","moveSpeed","SCRATCH_EULER","SCRATCH_QUAT_A","xrFrame","xrSession","referenceSpace","hand","inputSource","xrHand","jointId","jointSpace","jointPose","orientation","JointSplats","joints","hands","SparkXr","round4","SCRATCH_QUAT_B","lerpHandsSnapshots","snapshots","first","last","floorIndex","findSnapshotFloorIndex","cloneSnapshot","span","factor","interpolateSnapshots","maxHands","handIndex","lerpHandSnapshot","snapshot","cloneHandSnapshot","joint","low","high","mid","fromHand","toHand","lerpJointSnapshot","fromJoint","toJoint","clone","cloneJointSnapshot","DEFAULT_MOVE_INERTIA","DEFAULT_ROTATE_INERTIA","TOUCH_BIAS","XrHands","xr","Vector3","Quaternion","Color","CYCLE","handedness","segment","segmentSplats","lastSegment","jointA","jointB","radiusA","radiusB","handA","handB","hA","hB","jA","jB","HandMovement","xrHands","control","moveInertia","rotateInertia","grip","lastMid","delta","angle","lastAngle","closestAngle","rotateVelocity","blend","negPivot","Matrix4","DEFAULT_MOVEMENT_SPEED","DEFAULT_ROLL_SPEED","DEFAULT_ROTATE_SPEED","DEFAULT_SLIDE_SPEED","DEFAULT_SCROLL_SPEED","DEFAULT_STICK_THRESHOLD","DEFAULT_FPS_ROTATE_SPEED","DEFAULT_POINTER_ROLL_SCALE","DEFAULT_PRESS_MOVE_DELAY_MS","DEFAULT_PRESS_MOVE_ACCEL_MS","DUAL_PRESS_MS","DOUBLE_PRESS_LIMIT_MS","DOUBLE_PRESS_DISTANCE","MOVEMENT_THRESHOLD","WASD_KEYCODE_MOVE","ARROW_KEYCODE_MOVE","ARROW_KEYCODE_ROTATE","SparkControls","FpsMovement","PointerControls","rollSpeed","stickThreshold","rotateSpeed","keycodeMoveMapping","keycodeRotateMapping","gamepadMapping","capsMultiplier","shiftMultiplier","ctrlMultiplier","sticks","gamepadButtons","xrSources","stick","keycode","rot","moveVector","speedMultiplier","slideSpeed","scrollSpeed","swapRotateSlide","reverseRotate","reverseSlide","reverseSwipe","reverseScroll","pointerRollScale","doublePress","pressMoveDelayMs","pressMoveAccelMs","pressMoveSpeed","doublePressMoveSpeed","triplePressMoveSpeed","pressMoveCenter","initial","isRotate","pointerId","timeStamp","intervalMs","lastDistance","lastIntervalMs","pointerUp","lastUp","rect","motion","totalMotion","slide","deltaDir","deltaDist","orthoDir","motionDir","motionOrtho","midpoint","midpointDir","theCamera","ndcMidpoint","pinchOut","angles","ndcPoint","scroll","DISK_PORTAL_FRAGMENT_SHADER","SparkPortals","sparkOpts","pair","portal","twoSided","inverseCamera","portalInCamera","portalQuat","outCenter","outNormal","prevCam","currCam","beforeMatrix","afterMatrix","startPlaneDist","endPlaneDist","denom","earliestT","crossedPair","crossedEntry","entryT","exitT","bestScore","bestPair","bestIsEntry","entryDist","entryScore","exitDist","exitScore","primary","primaryIsEntry","primaryPortal","otherPortal","aspect"],"mappings":"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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAAC,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,GCAAC,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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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","x_google_ignoreList":[7]} \ No newline at end of file diff --git a/dist/spark.module.js b/dist/spark.module.js index aec3d559..70640055 100644 --- a/dist/spark.module.js +++ b/dist/spark.module.js @@ -1,1049 +1,703 @@ import * as THREE from "three"; import { Loader, FileLoader, Quaternion, Vector3, Color, Matrix4 } from "three"; import { FullScreenQuad } from "three/addons/postprocessing/Pass.js"; -class OldSplatGeometry extends THREE.InstancedBufferGeometry { - constructor(ordering, activeSplats) { - super(); - this.ordering = ordering; - this.setAttribute("position", new THREE.BufferAttribute(QUAD_VERTICES$1, 3)); - this.setIndex(new THREE.BufferAttribute(QUAD_INDICES$1, 1)); - this._maxInstanceCount = ordering.length; - this.instanceCount = activeSplats; - this.attribute = new THREE.InstancedBufferAttribute(ordering, 1, false, 1); - this.attribute.setUsage(THREE.DynamicDrawUsage); - this.setAttribute("splatIndex", this.attribute); - } - update(ordering, activeSplats) { - this.ordering = ordering; - this.attribute.array = ordering; - this.instanceCount = activeSplats; - this.attribute.addUpdateRange(0, activeSplats); - this.attribute.needsUpdate = true; - } -} -const QUAD_VERTICES$1 = new Float32Array([ - -1, - -1, - 0, - 1, - -1, - 0, - 1, - 1, - 0, - -1, - 1, - 0 -]); -const QUAD_INDICES$1 = new Uint16Array([0, 1, 2, 0, 2, 3]); -const jsContent$1 = '(function() {\n "use strict";\n class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n }\n if (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n }\n if (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n }\n function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n }\n function __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof v === "boolean" ? v : void 0;\n return isLikeNone(ret) ? 16777215 : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof val === "object" && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === void 0;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof obj === "number" ? obj : void 0;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof obj === "string" ? obj : void 0;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() {\n return handleError(function(arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments);\n },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() {\n return handleError(function(arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments);\n },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, void 0);\n table.set(offset + 0, void 0);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n }\n };\n return {\n __proto__: null,\n "./spark_worker_rs_bg.js": import0\n };\n }\n typeof FinalizationRegistry === "undefined" ? {} : new FinalizationRegistry((ptr) => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\n const CsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\n const GsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n function addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n }\n function debugString(val) {\n const type = typeof val;\n if (type == "number" || type == "boolean" || val == null) {\n return `${val}`;\n }\n if (type == "string") {\n return `"${val}"`;\n }\n if (type == "symbol") {\n const description = val.description;\n if (description == null) {\n return "Symbol";\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == "function") {\n const name = val.name;\n if (typeof name == "string" && name.length > 0) {\n return `Function(${name})`;\n } else {\n return "Function";\n }\n }\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = "[";\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for (let i2 = 1; i2 < length; i2++) {\n debug += ", " + debugString(val[i2]);\n }\n debug += "]";\n return debug;\n }\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n return toString.call(val);\n }\n if (className == "Object") {\n try {\n return "Object(" + JSON.stringify(val) + ")";\n } catch (_) {\n return "Object";\n }\n }\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\n${val.stack}`;\n }\n return className;\n }\n function getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n }\n function getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n }\n function getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n }\n let cachedDataViewMemory0 = null;\n function getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === void 0 && cachedDataViewMemory0.buffer !== wasm.memory.buffer) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n }\n function getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n }\n let cachedUint16ArrayMemory0 = null;\n function getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n }\n let cachedUint32ArrayMemory0 = null;\n function getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n }\n let cachedUint8ArrayMemory0 = null;\n function getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n }\n function handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n }\n function isLikeNone(x2) {\n return x2 === void 0 || x2 === null;\n }\n function passStringToWasm0(arg, malloc, realloc) {\n if (realloc === void 0) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr2 = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr2;\n }\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n const mem = getUint8ArrayMemory0();\n let offset = 0;\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 127) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n WASM_VECTOR_LEN = offset;\n return ptr;\n }\n function takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n }\n let cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n const MAX_SAFARI_DECODE_BYTES = 2146435072;\n let numBytesDecoded = 0;\n function decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n }\n const cachedTextEncoder = new TextEncoder();\n if (!("encodeInto" in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function(arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n }\n let WASM_VECTOR_LEN = 0;\n let wasm;\n function __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n cachedDataViewMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n }\n async function __wbg_load(module, imports) {\n if (typeof Response === "function" && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === "function") {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n if (validResponse && module.headers.get("Content-Type") !== "application/wasm") {\n console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n", e);\n } else {\n throw e;\n }\n }\n }\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n function expectedResponseType(type) {\n switch (type) {\n case "basic":\n case "cors":\n case "default":\n return true;\n }\n return false;\n }\n }\n async function __wbg_init(module_or_path) {\n if (wasm !== void 0) return wasm;\n if (module_or_path !== void 0) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({ module_or_path } = module_or_path);\n } else {\n console.warn("using deprecated parameters for the initialization function; pass a single object instead");\n }\n }\n if (module_or_path === void 0) {\n module_or_path = new URL("data:application/wasm;base64,AGFzbQEAAAAB6wZpYAN/f38Bf2ACf38AYAJ/fwF/YAF/AGABfwF/YAN/f38AYAR/f39/AGAFf39/f38AYAADf39/YAZ/f39/f38AYAd/f39/f39/AGAEf39/fwF/YAFvAX9gCH9/f39/f39/AGABfwN/f39gBX9/f39/AX9gAX0BfWAAAGACf28AYAF/AX5gA399fwBgBn9/f39/fwF/YAZ/f39/f30AYAABf2ACf30AYAV/f39+fwBgA29/fwFvYAN/f28AYAF/AW9gAAFvYAJvbwF/YAl/f39/f39/f38AYAF+AX9gAn9vA39/f2ACfX0BfWADb39/AGACb28Bb2ACb38Bb2ACf38Bb2AEf39/fQF/YAx/f39/f39/f39/f38AYAl/f39/f39/f38Bf2AFf39/fX8AYAd/f39/f39/AX9gBX9/f399AGAEf31/fwF/YBN/f39/f39/f39/f39/f39/f39/AX9gE39/f39/f39/f39/f39/f39/f38AYAN+fn8BfmAHf39/f399fQBgA39+fgBgBX9/fn9/AGAFf398f38AYAV/f31/fwBgBH9vf28Df39/YAN/b28Bf2AAAn9/YANvb28Bf2ADb29vAGADb29/AGABbwFvYAF8AW9gCn9/f39/f39/f38Bf2ALf39/f39/f39/f38Bf2AKf39/f39/f39/fwBgBn9/fX9/fwBgAn9/AX1gBH9/f34AYAN/f38BfmACf34AYAN/fX8Bf2AFf39/fn4AYAZ/fn9/f38AYAZ/f39/fX0AYAF/AX1gBH5+f38BfmAFf39/f38BfWAJf39/f39/fn5+AGAEf39/fwF9YAJ+fwBgA39/ewBgAn9+AX9gAn1/AX1gA319fQF9YAR/fn5/AGAGf39/fn9/AGAGf39/fH9/AGAGf39/fX9/AGATf318f39/f39/f39/f39/f39/fwN/f39gCX9/f39/f39/bwN/f39gCH9/f39vf39/A39/f2AHf29/fX9/bwN/f39gB39vb399f38Df39/YAd/f39/f39/A39/f2AGf29vf31/A39/f2AGf29/fX9vA39/f2AFf39/f28Df39/YAR/b29/A39/f2AEf39/fwN/f39gAn9/A39/f2ACf28Cf39gBH9+f38AYAR/fX9/AGAEf3x/fwBgAXwBfwKdFS0XLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfZDUxZTg5NDU4YjNmZGJmNgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF8xZTcwMTc5OGZkY2FhM2I0AAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzQ0ODEyNjc2OWJmN2MxODEAIxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsX2U0MjI3NWU2MDFlMTRlZWIAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyZfX3diZ19uZXdfd2l0aF9sZW5ndGhfNDFhMjIxOTFiOWJkZmQ2NgAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX25ld180ZjlmYWZiYjM5MDlhZjcyAB0XLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzhlZTJkMzRmYWNiODQ2NmUAORcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfZjNjOWRmNGYzOGYzZjc5OAAdFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzG19fd2JnX3B1c2hfNmJkYmM5OTBiZTVhYzM3YgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX2dldF9mOTY3MDJjNjI0NWU0ZWY5ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMqX193YmdfX193YmluZGdlbl9pc19mYWxzeV9jNmRkZmFlMWJiNTZkNWVmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzZiZTQyNzY4YzY5MGUzODAAOhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19nZXRfNDg0OGUzNTBiNDBhZmMxNgAlFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2dzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2NzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHF9fd2JnX0Vycm9yXzJlNTliMWIzN2E5YTM0YzMAJhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcytfX3diZ19fX3diaW5kZ2VuX2lzX29iamVjdF80MGM1YTgwNTcyZThmOWQzAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMnX193YmdfZ2V0X3dpdGhfcmVmX2tleV82NDEyY2YzMDk0NTk5Njk0ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMuX193YmdfX193YmluZGdlbl9pc191bmRlZmluZWRfYzBjY2E3MmI4MmI4NmY0ZAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJF9fd2JnX19fd2JpbmRnZW5faW5fNGJkN2E1N2U1NDMzNzM2NgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fbnVtYmVyX2dldF83NTc5YWFiMDJhOGE2MjBjABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMtX193YmdfX193YmluZGdlbl9ib29sZWFuX2dldF9hODZjMjE2NTc1YTc1YzMwAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzgxYjQxNzQzNTJlNmEwOTUAOxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx1fX3diZ19sZW5ndGhfMGMzMmNiODU0M2M4ZTRjOAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzH19fd2JnX3N1YmFycmF5XzBmOThkM2ZiNjM0NTA4YWQAGhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsXzNlMDVlYjk1NDU1NjUwNDYAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diZ19zZXRfaW5kZXhfMzM4YTY2ZTQwZmM0NWRlZQAjFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF9hNGNhOWU3ODM1OWI1ZjFmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfNTE3Y2QwZjE4MTFhYjg3MgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfNjRjMjg3YTI3Y2MyNGQyNwAbFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF82ZTgyMWVkZGU0OTdhNTMyAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMkX193YmdfZ2V0X3VuY2hlY2tlZF83ZDdiYWJlMzJlOWU2YTU0ACUXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193YmdfbmV3XzIyN2Q3YzA1NDE0ZWI4NjEAHRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxxfX3diZ19zdGFja18zYjBkOTc0YmJmMzFlNDRmABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMcX193YmdfZXJyb3JfYTZmYTIwMmI1OGFhMWNkMwABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzMF9fd2JnX19fd2JpbmRnZW5fanN2YWxfbG9vc2VfZXFfM2E3MmFlNzY0ZDQ2ZDk0NAAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fc3RyaW5nX2dldF85MTRkZjk3ZmNmYTc4OGYyABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMsX193YmdfaW5zdGFuY2VvZl9VaW50OEFycmF5XzRiOGRhNjgzZGViMjVkNzIADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcy1fX3diZ19pbnN0YW5jZW9mX0FycmF5QnVmZmVyX2ZmN2MxMzM3YTVlM2IzM2EADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfYTU2MDM3OGVhMTI0MGIxNAA8Fy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfODFmYzc3Njc5YWY4M2JjNgABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLl9fd2JnX19fd2JpbmRnZW5fZGVidWdfc3RyaW5nX2RkNWQyZDA3Y2U5ZTZjNTcAEhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx9fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlABEXLi9zcGFya193b3JrZXJfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDEAPRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMgAmA5cKlQoYGBQUAQoKAQkBCgoFCgkKBAQnBAQNJw0BAQYEBAoEBAUNBgQEBAQJCREFBgEJAQQEBAQJCQYBAgcoCQIJASgGBQ0BKQQGAQA+BQE/DQcGAgIGAgYGAQEGBgUEBAQEBgECBgUGBgYCBwkCBgEFBgEBAwMEBA8DBAEHAQcGAAYDBA0BAgEEAQEVAQYBBAIEBQYDBUABDwcDAgEBBwICBSoCCQEFBwQEBgQCBwUfAioGAQcFBgEHBhYGAQcrCQENAAEBAAIFAQIFAQUKLCsGBQcDBgYBDQEFAwEDBAUCBQMCAwMBAQFBAgYBLAcJARADEEIHBwUGAQMHBwECAgQWCQkBAQJDBw0DCUQAAQEBAQELBC0DAwMEAQIBAgECAwMCRQUGBEYBAQEBBwACCRkCBQIBAQcABQQJAQYBRwYGSAMDBQUDAQUDBgUFAwMtBgUKBQYBAwkABQUHAQIDAwMDLi4FCQkvLwkHBwIBAQAGBQEDAwMDAQMAAQIBAQYCAQZJAgsFAQAFAQYJCQQEBAQCBAEVAQICFQABAQUGAwUVBw0ABQUHAgEAAAIFBQAACQUWHwICCgICAQcHAgMHCgUFAwMBARkCBwUwAgUFBQMwBAABAQQBMQMDCgkFAwMEChBKAQUFBQUWBgEDBksHBQEDAwIBBAIBAQUCBgcBAgICAQEDAgQBAkwDTQEHBwcHAQIKBwlOAwNPAgUBAgcHBQsGAgQEBAEDAQIJBgYHAQMPARcHEAIEUAoCBAMGBAQBDwUfAgkDBAsZFAoCAgIQAwcxBAcCAzIAAQcWAQMCAgYBBAECDwEGCwEFAhcGAQICAgICAgYCEAEHAgcDBwUEBAICBAEBAQEBAQIBAgQEAQECAAICAgIBAgMBBwMCAxAEAQMFAgEBAwMAAgMCAQkBAQEFAgIHAwEDAwcCAAcDAwICAgECBwMpBQICAgICAQIFBQEBAQICAgICAlEBAgICAgICAgEDAgkCAQEHAwEDAwEBAQEBCQkCAwIBAQIBAQMBAQEFAQUCAgFSAQICUwMDAQEBBgADAwEDAgELCwUCAgEBBAMBCwMDAgEBAgMDAwEBAQICAAMyAAAHAgUDAwUCAxkFAxQUBwcJAwYFBQUFAwMDAwMDAwYYGAMFAgMABgMEBAQEAgUBBAQECQQDBwQFAwMDAwMCAgICBVQFBAEDEwEDAQEFBARVCVZXAQECBQcCBhAAAAAAAAAAAAAAAAAEAgIAAAAAIAQgAAQgBAQEAgACAgIAWAUTBQEAAAABAgABAgIGBQIBBAICAlkPWgcCBgIHAQFbXF0DEQMDXl8RC2ACNmFiNgEJAgIhIWMhAAICAgICAg4ODg4ODg4ODgQEBAQCAmQBAQEBAgICAgICAgICFQICAgICAgICAQICAQICDwczNTQCAQECAgIGCwIAAQIANzcDAgIiIgACBQMCAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAwECBQEBAQEBAQEBBAIAAgICAgIJAgICAgEBAQECAwEBAQICAgIEaAMDAgcCCQEXBRcSEgIBAgEBAQEBAQEBAgIBAgEBAQEBAQEDBAEDBQEFBQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAwMBAQEBAQEBAQEBEQERAgICAQIBAgECAgICAQEBAQEBAQEEAwEBAQEBAQEBAQMDCgEEAgEiBAQEBAQEEQQXBQQLAnAB4QThBG8AgAgFAwEAEwYPAn8BQYCAwAALfwFBgAgLB7AMPgZtZW1vcnkCABdfX3diZ19jaHVua2RlY29kZXJfZnJlZQCSBBZfX3diZ19jc3BsYXRhcnJheV9mcmVlALYFIV9fd2JnX2dldF9jc3BsYXRhcnJheV9tYXhTaERlZ3JlZQClCB9fX3diZ19nZXRfY3NwbGF0YXJyYXlfbnVtU3BsYXRzAKYIIV9fd2JnX2dldF9nc3BsYXRhcnJheV9tYXhTaERlZ3JlZQCnCB9fX3diZ19nZXRfZ3NwbGF0YXJyYXlfbnVtU3BsYXRzAKgIFl9fd2JnX2dzcGxhdGFycmF5X2ZyZWUAtwUhX193Ymdfc2V0X2NzcGxhdGFycmF5X21heFNoRGVncmVlAKwIH19fd2JnX3NldF9jc3BsYXRhcnJheV9udW1TcGxhdHMArQghX193Ymdfc2V0X2dzcGxhdGFycmF5X21heFNoRGVncmVlAK4IH19fd2JnX3NldF9nc3BsYXRhcnJheV9udW1TcGxhdHMArwgTYmhhdHRfbG9kX2V4dHNwbGF0cwCDCBZiaGF0dF9sb2RfcGFja2Vkc3BsYXRzAIQIE2NodW5rZGVjb2Rlcl9maW5pc2gAoggRY2h1bmtkZWNvZGVyX3B1c2gAqwgVY3NwbGF0YXJyYXlfYmhhdHRfbG9kAP4GE2NzcGxhdGFycmF5X2hhc19sb2QAxgcYY3NwbGF0YXJyYXlfaW5qZWN0X3JnYmE4AMIJD2NzcGxhdGFycmF5X2xlbgDVBxRjc3BsYXRhcnJheV90aW55X2xvZADrBhhjc3BsYXRhcnJheV90b19leHRzcGxhdHMAnAgcY3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzX2xvZACeCBtjc3BsYXRhcnJheV90b19wYWNrZWRzcGxhdHMAnQgfY3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzX2xvZACfCBVkZWNvZGVfdG9fY3NwbGF0YXJyYXkAhwgTZGVjb2RlX3RvX2V4dHNwbGF0cwD+BxVkZWNvZGVfdG9fZ3NwbGF0YXJyYXkAiwgWZGVjb2RlX3RvX3BhY2tlZHNwbGF0cwD0BxBkaXNwb3NlX2xvZF90cmVlAIwCGGV4dHNwbGF0c190b19nc3BsYXRhcnJheQCKCBJnZXRfbG9kX3RyZWVfbGV2ZWwAkwgVZ3NwbGF0YXJyYXlfYmhhdHRfbG9kAP8GGGdzcGxhdGFycmF5X2luamVjdF9yZ2JhOADDCQ9nc3BsYXRhcnJheV9sZW4A1QcUZ3NwbGF0YXJyYXlfdGlueV9sb2QA7AYYZ3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzAKAIHGdzcGxhdGFycmF5X3RvX2V4dHNwbGF0c19sb2QAoQgbZ3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzAJEIH2dzcGxhdGFycmF5X3RvX3BhY2tlZHNwbGF0c19sb2QAkggNaW5pdF9sb2RfdHJlZQCUCAxuZXdfbG9kX3RyZWUApAgTbmV3X3NoYXJlZF9sb2RfdHJlZQCjCBtwYWNrZWRzcGxhdHNfdG9fY3NwbGF0YXJyYXkAjAgbcGFja2Vkc3BsYXRzX3RvX2dzcGxhdGFycmF5AIkIDHNpbWRfZW5hYmxlZADACg1zb3J0MzJfc3BsYXRzANoIC3NvcnRfc3BsYXRzANsIEnRpbnlfbG9kX2V4dHNwbGF0cwD9BxV0aW55X2xvZF9wYWNrZWRzcGxhdHMA/AcSdHJhdmVyc2VfbG9kX3RyZWVzANwHEHVwZGF0ZV9sb2RfdHJlZXMA8gcKd2FzbV9zdGFydACFCBNnc3BsYXRhcnJheV9oYXNfbG9kAMYHEV9fd2JpbmRnZW5fbWFsbG9jANoHEl9fd2JpbmRnZW5fcmVhbGxvYwCGCA9fX3diaW5kZ2VuX2ZyZWUAlgcUX193YmluZGdlbl9leG5fc3RvcmUA2gkXX19leHRlcm5yZWZfdGFibGVfYWxsb2MA2gQVX193YmluZGdlbl9leHRlcm5yZWZzAQEZX19leHRlcm5yZWZfdGFibGVfZGVhbGxvYwCbBxBfX3diaW5kZ2VuX3N0YXJ0AL4KCbgJAQBBAQvgBIsFxAnpCPMD7QiNASwrvAnECboJ0gjoB5sF9QSnAqIE8gHVCMQBggeeBOwHrASyCvwC5wP2AagG0AeJBssF5gaWCMMI3gLRCZsIswa0AsQIhQXGCYkG3APTA8AG0AmSCpMKugW4BZsKkwGPBtkG3Qj0BMcH2AjDApoKuAiZCsYJ1gLEBLIGpwOABu0GyAjcBdUFyQjJCMkIrgevB7YHygiwB9MIuAevB8sIsQfMCK8HlAfICLkIkQfZCPEG1AjuBukHlwrhBpwKugixCLsI/ATSCaMG7wfzBNMFqAXSCc8J5APKAo0GwgGDA9sExQTVBH20CecI/QjyCIMJiAnwCIwJhgn0CP8I9wiLCYUJhAmCCfoIjQnxCIcJgAn1CIEJ/gjqCIUE/QnRA4oHkQHKBogIgATmCdYDiQeQAYEE+gnXA4cHhQGGBOwJ0gOIB5IB5gj2CIkJgwfGCc8JswqUCsUJwQqDB9cHkgWBCpIJnAnaBs4FrgKzB6cKsge6BdIGsQXwBfEF/AWGCsQJoArjBN0EhQPCCKoKwgjGCc8Jnwq5CcQJ/QXtB4kK7QexBK4G6wSNB4UKjQeDCv4FkQmMCo8J8Qe1CuAHjQrFCeAHwQqQCYcK6gaECoIKoQrJBagKigqOCYsK3AiICqUHlAnMCdAGswikB78K9wSZCcsJ0QbBCJgHmgnICdcGsgipB5kHlgnHCZkGtQinB4wGlwnJCZgGvwiVCcoJvga0CJcHmwnNCZsG2AfLBoYHmAnOCZoG9gfNBe4HxQa4CZEK6wHaBYAK5wX7CPgI8wjvCIoJ+QjuCPwItQb/Cb0HuAOHA+oJxAe1BfkG8wnMB4kB8AlI8QlSnAPoCcEH0we8BvUJuge2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gICAeEYNBCADKQJMIR0gAygCVCEMIANBgICAgHg2AlQgDEGAgICAeEYNBCADKQJYISAgAygCPCERIANBgICAgHg2AjwgEUGAgICAeEYNBCADKQJAISIgAygCMCEPIANBgICAgHg2AjAgD0GAgICAeEYNBCADKQI0ISMgAigCzAEiBSACKALAASIGRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIUIAZBACAGIBRNG2tBDGxqIgYgGTcCBCAGIAQ2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIBo3AgQgBCAHNgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAcNwIEIAQgCTYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgHjcCBCAEIAs2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIB03AgQgBCAINgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAgNwIEIAQgDDYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgIjcCBCAEIBE2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEICM3AgQgBCAPNgIAIAIgBUEBajYCzAEgAygCACIEQYCAgIB4ckGAgICAeEcEQCASKAIAIgVBBGsoAgAiBkF4cSIHIARBAnQiBEEEQQggBkEDcSIGG2pJDREgBkEAIAcgBEEnaksbDRIgBRCiAgsgAygCDCIEQYCAgIB4ckGAgICAeEcEQCADKAIQIgVBBGsoAgAiBkF4cSIHIARBAnQiBEEEQQggBkEDcSIGG2pJDREgBkEAIAcgBEEnaksbDRIgBRCiAgsgAygCGCIEQYCAgIB4ckGAgICAeEcEQCADKAIcIgVBBGsoAgAiBkF4cSIHIARBAnQiBEEEQQggBkEDcSIGG2pJDREgBkEAIAcgBEEnaksbDRIgBRCiAgsgAygCJCIEQYCAgIB4ckGAgICAeEcEQCADKAIoIgVBBGsoAgAiBkF4cSIHIARBAnQiBEEEQQggBkEDcSIGG2pJDREgBkEAIAcgBEEnaksbDRIgBRCiAgsgAygCMCIEQYCAgIB4ckGAgICAeEcEQCADKAI0IgVBBGsoAgAiBkF4cSIHIARBAnQiBEEEQQggBkEDcSIGG2pJDREgBkEAIAcgBEEnaksbDRIgBRCiAgsgAygCPCIEQYCAgIB4ckGAgICAeEcEQCADKAJAIgVBBGsoAgAiBkF4cSIHIARBAnQiBEEEQQggBkEDcSIGG2pJDREgBkEAIAcgBEEnaksbDRIgBRCiAgsgAygCSCIEQYCAgIB4ckGAgICAeEcEQCADKAJMIgVBBGsoAgAiBkF4cSIHIARBAnQiBEEEQQggBkEDcSIGG2pJDREgBkEAIAcgBEEnaksbDRIgBRCiAgsgAygCVCIEQYCAgIB4ckGAgICAeEcEQCADKAJYIgVBBGsoAgAiBkF4cSIHIARBAnQiBEEEQQggBkEDcSIGG2pJDREgBkEAIAcgBEEnaksbDRIgBRCiAgsgA0EEaygCACIEQXhxQeQAQegAIARBA3EiBRtJDRAgBUEAIARBiAFPGw0FIAMQogIMCQsgAiA4IDf95AH9DAAAAD8AAAA/AAAAPwAAAD/95gH9CwQAIAJBAEEBQQIgNv0fASIBIDb9HwIiPGAbIgMgPCA2/R8AIjtfGyADIAEgO18bIgM6AKgBIAIgAiADQQJ0cioCADgCtAEgAiAMNgJcIAIgAigCkAE2AlggAiAENgJUIAIgBDYCUCACIAA2ArQCIAIgAkG0AWo2ArgCIAIgAkGoAWo2ArACIAJB4AJqIgUgAkHQAGoiBiACQbACahCXBCACKQPgAiEcIAIpAuwCIRkgAigC9AIhAyACKALoAiEEIAIgNv0LBLACIAIgBDYC4AEgAiADNgLwASACQQY2AlQgAkHswsEANgJQIAJCBTcCXCACICE3A4ADIAIgJDcD+AIgAiAlNwPwAiACICY3A+gCIAIgJzcD4AIgAiAFNgJYIAYQ6wICQCADIARNBEAgGSEaIAMhBiAcIRkgBCEDDAELIBwhGiAEIQYLIAIgAzYC8AIgAkECNgLkAiACIAY2AvwCIAIgGTcC6AIgAiAaNwL0AkEBIQMCQCAZpyIEQYCAgIB4Rg0AIAIpAuwCIRkgAigCzAEiAyACKALAASIFRgRAIAJBwAFqQZzDwQAQpAYgAigCwAEhBSACKALMASEDCyACKALEASACKALIASADaiIGIAVBACAFIAZNG2tBDGxqIgUgGTcCBCAFIAQ2AgAgAiADQQFqNgLMAUECIQMgGqciBEGAgICAeEYNACACKQL4AiEZIAIoAswBIgUgAigCwAEiBkYEQCACQcABakGcw8EAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiByAGQQAgBiAHTRtrQQxsaiIGIBk3AgQgBiAENgIAIAIgBUEBajYCzAELIAIgAzYC4AIgAkHgAmoQlgYMCAsgAyAHQdy7xwAQjAcACyAFIAlB3LvHABCMBwALQYyNyABBLkG8jcgAEOsHDAkLQbzDwQAQ3QkACwwLC0EAIQYgAkEANgLgAiACQQA2AoQDQQghBwJAAkACfyAIIANrIgRBACAEIAhNGyIEQQlJBEAgCiELIBAMAQsgAkEYaiACQeACakF/IARBAWtndkEBahDoAyACKAIYIgRBgYCAgHhHBEAgBA0KQdiVxwBBEUHUzMcAEOsHAAsgAigChAMiB0EJSQRAIAchBiAKIQtBCCEHIBAMAQsgAigC5AIhBiACKALoAiELIAoLIg8gBiAHSQR/IAcgBkF/c2oiBCAIIAMgAyAISRsiEiADayIFIAQgBUkbQQFqIgRBBEsEQCALIAZBAnRqIQUgA/0R/QwAAAAAAQAAAAIAAAADAAAA/a4BITYgBCAEQQNxIgRBBCAEG2siDCEEA0AgBSA2/QsCACAFQRBqIQUgNv0MBAAAAAQAAAAEAAAABAAAAP2uASE2IARBBGsiBA0ACyAGIAxqIQYgAyAMaiEDCyALIAZBAnRqIQUDQCADIBJGDQIgBSADNgIAIAVBBGohBSADQQFqIQMgByAGQQFqIgZHDQALIAcFIAYLNgIAIAMgCE8NAQNAAn8gAigChAMiBEEJTwRAIAIoAuQCIQUgAigC6AIhByAKDAELIAQhBSAKIQdBCCEEIBALIQYgBCAFRgR/IAJB4AJqEM0GIAIoAugCIQcgCiEGIAIoAuQCBSAFC0ECdCAHaiADNgIAIAYgBigCAEEBajYCACADQQFqIgMgCEcNAAsMAQsgDyAGNgIACyACQfAAaiACQYADaikCADcDACACQeAAaiACQfACav0AAgD9CwMAIAIgAv0AAuAC/QsDUCACKAJ0IgshBSAAKAIQIAAoAhQgCSALQQlJIhIEfyATBSACKAJUIQUgAigCWAsgBRDUAiACKAK0AiEEIAIoArACIQMgDUEYaiAOQRhqKAIANgIAIA1BEGogDkEQaikCADcCACANIA79AAIA/QsCACACIAM2AuACIAIgBCACKALUAiIHIAdBCEsiAxsiCDYCjAMgAiAHQQAgAxs2AoQDIAJBACAEIAMbNgLkAiAIBEAgAigC6AIgCiADGyEUQQAhCSACKAKoAiEMA0AgAiAJIgNBAWoiCTYCiAMgFCADQQJ0aigCACEFIAIoAqACIAxGBEAgAkGgAmpByMHBABCLBgsgAigCpAIgDEECdGogBTYCACACIAxBAWoiDDYCqAJDAACAPyE8An8CQCAAKAIIIgMgBUsEQCAAKAIEIAVBGGxqIgMtABMiBCADLQASIgYgAy0AESIPIAYgD0sbIgYgBCAGSxsiBAR9QwAAQMEgACoCRCAALQBYQQJGIgYbIgFDAAAQQSAAKgJIIAYbIAGTQwAAfkOVIARBAWtB/wFxs5SSEIkEIgEgAZIFQwAAAAALIQEgA0EMai8BACIEQf//AXFFBEAgBEEQdAwDCyAEQf8HcSEDIARBgIACcSEGIARBgPgBcSIEQYD4AUYEQCAGQRB0IgRBgICA/AdyIANFDQMaIAQgA0ENdHJBgICA/gdyDAMLIAZBEHQhBiAERQ0BIARBDXRBgICA/ABxIANBDXRyQYCAgMADaiAGcgwCCyAFIANB3LvHABCMBwALIAMgA2dBEGsiA0H//wNxQQhqdEH///8DcSAGQYCAgNgDciADQRd0a3ILviI7QwAAgD9eBEAgOxDGBUNU+C1AlEMAAIA/kpEhPAsgAigCmAEiAyACKAKQAUYEQCACQZABakHIlcEAEPkFCyACKAKUASIGIANBA3RqIgQgBTYCBCAEIAEgPJQiATgCACACIANBAWo2ApgBAkAgA0UEQEEAIQQMAQsgASABXARAA0ACQCAGIANBAWsiFkEBdiIEQQN0aiIPKgIAIjwgPFsgASA8X0VxDQAgBSAPQQRqKAIASw0AIAMhBAwDCyAGIANBA3RqIA8pAgA3AgAgBCEDIBZBAk8NAAwCCwALA0AgBiADQQFrIhZBAXYiBEEDdGoiDyoCACI8IDxbIAEgPF9FcUF/IAEgPGAbIhdBAEwgBSAPQQRqKAIATSAXGwRAIAMhBAwCCyAGIANBA3RqIA8pAgA3AgAgBCEDIBZBAUsNAAsLIAYgBEEDdGoiAyAFNgIEIAMgATgCACAIIAlHDQALCyAHQQlPBEAgAigC6AIiA0EEaygCACIEQXhxIgUgB0ECdCIGQQRBCCAEQQNxIgQbakkNBCAEQQAgBSAGQSdqSxsNCyADEKICCyASRQRAIAIoAlgiA0EEaygCACIEQXhxIgUgC0ECdCIGQQRBCCAEQQNxIgQbakkNCiAEQQAgBSAGQSdqSxsNCyADEKICCyACKAKYASIMDQALCyACKAKQASIDRQ0AIAIoApQBIgRBBGsoAgAiBUF4cSIGIANBA3QiA0EEQQggBUEDcSIFG2pJDQcgBUEAIAYgA0EnaksbDQMgBBCiAgsgAigCzAEiAw0BDAQLCwwECwwECwALIAIoAqgCIQULIAIgACgCCCIDNgJQIAIgBTYCsAIgAyAFRwRAIAJBADYC4AJBACACQbACaiACQdAAaiACQeACakGsw8EAEPUHAAsgACACKAKkAiIAIAUQiQIgAkHAAWoQ6wMCQCACKAKgAiIDBEAgAEEEaygCACIEQXhxIgUgA0ECdCIDQQRBCCAEQQNxIgQbakkNAiAEQQAgBSADQSdqSxsNASAAEKICCyACQfADaiQADwsMAQtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALyM0BBBR/HX4Nexd9IwBB8ANrIgIkACAAEJ4BIAIgACgCCCIENgIsIAIgAkEsaq1CgICAgBCEIio3A7ACIAJCATcC7AIgAkEBNgLkAiACQczmwQA2AuACIAIgAkGwAmo2AugCIAJB0ABqIAJB4AJqEOwDAkACQAJAAkACQAJAAn8gAigCUCIDBEAgAigCVCIEQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyADakkNBiAFQQAgBiADQSdqSxsNByAEEKICIAAoAgghBAsgAigCLEUNAQJAIARFBEAgAEEEQQAQ8AEMAQsgBEECdCIIEHEiB0UNA0EAIQMCQAJAAkAgBEEETwRA/QwAAAAAAQAAAAIAAAADAAAAITMgByEFIARB/P//H3EiAyEGA0AgBSAz/QsCACAFQRBqIQUgM/0MBAAAAAQAAAAEAAAABAAAAP2uASEzIAZBBGsiBg0ACyADIARGDQELIAcgA0ECdGohBQNAIAUgAzYCACAFQQRqIQUgBCADQQFqIgNHDQALIAIgADYC5AIgAiACQbACajYC4AIgAiACQeACajYCUCAEQQFGDQIMAQsgAiAANgLkAiACIAJBsAJqNgLgAiACIAJB4AJqNgJQCyAEQRVPBEAgAkHQAGohBiMAQYAgayILJAACQAJAAkACQAJAQYCJ+gAgBCAEQYCJ+gBPGyIFIAQgBEEBdmsiAyADIAVJGyIFQYEITwRAIANB/////wNLDQJBMCAFIAVBME0bIglBAnQiA0H9////B08NAiADEHEiBUUNAyAHIAQgBSAJIARBwQBJIAYQVCAFQQRrKAIAIgZBeHEiCUEEQQggBkEDcSIGGyADakkNBCAGQQAgCSADQSdqSxsNBSAFEKICDAELIAcgBCALQYAIIARBwQBJIAYQVAsgC0GAIGokAAwFC0HYlcEAEP8HCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0EEIQMDQCAHIAMgB2ogAkHgAmoQ+gEgCCADQQRqIgNHDQALCyAAIAcgBBDwASAHQQRrKAIAIgRBeHEiA0EEQQggBEEDcSIEGyAIakkNBiAEQQAgAyAIQSdqSxsNByAHEKICCyAAEJoEAkAgACgCCCIEBEAgBEEBdEEBayIGEHEiBUUNBEEAIQMgAkEANgI4IAIgBTYCNCACIAY2AjACQAJAIAAoAggiBARAIAQgBksEQCACQTBqQQAgBEEBQQEQpAUgAigCNCEFIAIoAjghAwsgAyAFaiEGIARBAUcEfyAEQQFrIgQEQCAGQQEgBPwLAAsgBSADIARqIgNqBSAGC0EBOgAAIAIgA0EBajYCOCAAKAIIRQ0BIAAoAgQiBRCKBCFAIAUvARQiBEH//wFxIggNAiAEQRB0DAULIAJBADYCOAtBAEEAQdTAxwAQjAcACyAEQf8HcSEDIARBgIACcSEGIARBgPgBcSIHQYD4AUYEQCAGQRB0IgZBgICA/AdyIANFDQMaIAYgA0ENdHJBgICA/gdyDAMLIAZBEHQhBiAHRQ0BIAdBDXRBgICA/ABxIANBDXRyQYCAgMADaiAGcgwCC0HU5sEAEP8HAAsgBkGAgIDYA3IgA2dBEGsiBkEXdGsgAyAGQf//A3FBCGp0Qf///wNxcgshAyACQf//ASBAIECSIAO+IkBDAACAP14EfSBAEMYFQ1T4LUCUQwAAgD+SkQVDAACAPwuUQ703hjUQ4AgQxgVDGHIxP5WNIkD8AEGAgH4gQEMAAADHYBsgQEMA/v9GXhtBACBAIEBbGzsBPCACIAUQigQiQCBAkgJ/IARBEHQgCEUNABogBEH/B3EhAyAEQYCAAnEhBSAEQYD4AXEiBEGA+AFGBEAgBUEQdCIEQYCAgPwHciADRQ0BGiAEIANBDXRyQYCAgP4HcgwBCyAFQRB0IgUgBEENdEGAgID8AHEgA0ENdHJBgICAwANqciAEDQAaIAVBgICA2ANyIANnQRBrIgRBF3RrIAMgBEH//wNxQQhqdEH///8DcXILviJAQwAAgD9eBH0gQBDGBUNU+C1AlEMAAIA/kpEFQwAAgD8LlDgCwAEgAiACQcABaq1CgICAgNABhDcDWCACIAJBPGqtQoCAgIDgAYQ3A1AgAkICNwLsAiACQQI2AuQCIAJBuOPBADYC4AIgAiACQdAAajYC6AIgAkGwAmogAkHgAmoQ7AMCQCACKAKwAiIEBEAgAigCtAIiA0EEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgBGpJDQEgBUEAIAYgBEEnaksbDQcgAxCiAgsgAiACLwE8OwE+IAJBADYCQCACQQA2AkwgAkKAgICAwAA3AkRB2LbJACgCACIDRQRAEJMFIQMLIAMoAgAgAygCBCgCDBEEACEEIAJB8JrIAP0AAwD9CwNQIAIgBK1Cxs7rhrfq7a0ShSIXQjiGIBdCgP4Dg0IohoQgF0KAgPwHg0IYhiAXQoCAgPgPg0IIhoSEQpK23Z0FhELSgaqbq/qC16d/fiIWQoDoAoNCKIYgFkKAgJQDg0IYhiAWQoCAgKgKg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEQoCAgICAgICARIQgF0LYotHvwqnlvy1+hSIZQu3cspuNpYnMywCFIhZC2KLR78Kp5b8tfiAWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEQtKBqpur+oLXp39+IhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhISFQov9+pfHxteXhn+FIhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhIRC0oGqm6v6gtenf34iF0I4hiAXQoD+A4NCKIaEIBdCgID8B4NCGIYgF0KAgID4D4NCCIaEhCAXQgiIQoCAgPgPgyAXQhiIQoCA/AeDhCAXQiiIQoD+A4MgF0I4iISEhCAWQtii0e/CqeW/LX6FIhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhIRCiKyRp/aIgJywf34iF0I4hiAXQoD+A4NCKIaEIBdCgID8B4NCGIYgF0KAgID4D4NCCIaEhCAXQgiIQoCAgPgPgyAXQhiIQoCA/AeDhCAXQiiIQoD+A4MgF0I4iISEhCAWQs+O/8e788bUd36FIBaJNwN4IAIgGULWgs2hkP2UjkuFIhZC2KLR78Kp5b8tfiAWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEQtKBqpur+oLXp39+IhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhISFQvzDvKfJldXk6ACFIhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhIRC0oGqm6v6gtenf34iF0I4hiAXQoD+A4NCKIaEIBdCgID8B4NCGIYgF0KAgID4D4NCCIaEhCAXQgiIQoCAgPgPgyAXQhiIQoCA/AeDhCAXQiiIQoD+A4MgF0I4iISEhCAWQtii0e/CqeW/LX6FIhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhIRCiKyRp/aIgJywf34iF0I4hiAXQoD+A4NCKIaEIBdCgID8B4NCGIYgF0KAgID4D4NCCIaEhCAXQgiIQoCAgPgPgyAXQhiIQoCA/AeDhCAXQiiIQoD+A4MgF0I4iISEhCAWQs+O/8e788bUd36FIBaJNwNwIAIgGUL8w7ynyZXV5OgAhSIWQtii0e/CqeW/LX4gFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhELSgaqbq/qC16d/fiIWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEhULt3LKbjaWJzMsAhSIWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEQtKBqpur+oLXp39+IhdCOIYgF0KA/gODQiiGhCAXQoCA/AeDQhiGIBdCgICA+A+DQgiGhIQgF0IIiEKAgID4D4MgF0IYiEKAgPwHg4QgF0IoiEKA/gODIBdCOIiEhIQgFkLYotHvwqnlvy1+hSIWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEQoiskaf2iICcsH9+IhdCOIYgF0KA/gODQiiGhCAXQoCA/AeDQhiGIBdCgICA+A+DQgiGhIQgF0IIiEKAgID4D4MgF0IYiEKAgPwHg4QgF0IoiEKA/gODIBdCOIiEhIQgFkLPjv/Hu/PG1Hd+hSAWiTcDaCACIBlCi/36l8fG15eGf4UiFkLYotHvwqnlvy1+IBZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhIRC0oGqm6v6gtenf34iFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhIVC1oLNoZD9lI5LhSIWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEQtKBqpur+oLXp39+IhdCOIYgF0KA/gODQiiGhCAXQoCA/AeDQhiGIBdCgICA+A+DQgiGhIQgF0IIiEKAgID4D4MgF0IYiEKAgPwHg4QgF0IoiEKA/gODIBdCOIiEhIQgFkLYotHvwqnlvy1+hSIWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEQoiskaf2iICcsH9+IhdCOIYgF0KA/gODQiiGhCAXQoCA/AeDQhiGIBdCgICA+A+DQgiGhIQgF0IIiEKAgID4D4MgF0IYiEKAgPwHg4QgF0IoiEKA/gODIBdCOIiEhIQgFkLPjv/Hu/PG1Hd+hSAWiTcDYCACQfABaq0iJkKAgICAEIQhJyACQeABaq1CgICAgBCEISsgAkFAa61CgICAgBCEISwgAkGAAWqtQoCAgIDQAYQhLSACQT5qrUKAgICA4AGEIS4gAkHoAmohEyACKAIsIQogAigCQCEEA0AgAkMAAIA/IAIuAT4QsAYiQjgCgAEgACgCCCELAkAgBCAKTw0AIAQgCmshDCAEQSRsIgggACgCBGohBSAEIAQgCyAEIAtLG2shEEEAIQMCQANAIAMgBGohB0MAAIA/IUACfwJAIAMgEGoEQCAFEIoEIUEgBUEUai8BACIJQf//AXFFBEAgCUEQdAwDCyAJQf8HcSEGIAlBgIACcSENIAlBgPgBcSIJQYD4AUYEQCANQRB0IglBgICA/AdyIAZFDQMaIAkgBkENdHJBgICA/gdyDAMLIA1BEHQhDSAJRQ0BIAlBDXRBgICA/ABxIAZBDXRyQYCAgMADaiANcgwCCyAHIAtB1MDHABCMBwALIA1BgICA2ANyIAZnQRBrIglBF3RrIAYgCUH//wNxQQhqdEH///8DcXILviJDQwAAgD9eBEAgQxDGBUNU+C1AlEMAAIA/kpEhQAsgQSBBkiBAlCBCXg0BIAIgB0EBajYCQCAFQSRqIQUgDCADQQFqIgNqDQALIAohBwsgBCAHTw0AAkAgByAEayIKQf////8BTQRAIApBA3QiA0H9////B0kNAQtB4P/GABD/BwALQQAhBgJAIANFBEBBBCELQQAhCgwBCyADEHEiC0UNBQsgBCAHayEMIAshAwNAQwAAgD8hQAJ/AkAgBCAGaiIJIAAoAggiBUkEQCAAKAIEIAhqIgUQigQhQSAFQRRqLwEAIgdB//8BcUUEQCAHQRB0DAMLIAdB/wdxIQUgB0GAgAJxIQ0gB0GA+AFxIgdBgPgBRgRAIA1BEHQiB0GAgID8B3IgBUUNAxogByAFQQ10ckGAgID+B3IMAwsgDUEQdCENIAdFDQEgB0ENdEGAgID8AHEgBUENdHJBgICAwANqIA1yDAILIAkgBUHUwMcAEIwHAAsgDUGAgIDYA3IgBWdBEGsiB0EXdGsgBSAHQf//A3FBCGp0Qf///wNxcgu+IkJDAACAP14EQCBCEMYFQ1T4LUCUQwAAgD+SkSFACyADQQRqIAk2AgAgAyBBIEGSIECMlDgCACAIQSRqIQggA0EIaiEDIAwgBkEBaiIGag0ACyACIAY2AowBIAIgCzYCiAEgAiAKNgKEASACQcQAaiACQYQBahCUAiAAKAIIIQsLIAIgAigCTCIHNgLgASACIAs2AvABIAIgJzcDiAMgAiArNwOAAyACICo3A/gCIAIgLDcD8AIgAiAtNwPoAiACIC43A+ACIAJCBjcCvAIgAkEGNgK0AiACQfzmwQA2ArACIAIgAkHgAmo2ArgCIAJBoAJqIAJBsAJqEOwDIAIoAqACIgQEQCACKAKkAiIDQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyAEakkNByAFQQAgBiAEQSdqSxsNCCADEKICCyACKAJcIgQEQCACKAJQIgZBCGohAyAGKQMAQn+FQoCBgoSIkKDAgH+DIRcgBiEFA0AgF1AEQANAIAVBgARrIQUgAykDACADQQhqIQNCgIGChIiQoMCAf4MiFkKAgYKEiJCgwIB/UQ0ACyAWQoCBgoSIkKDAgH+FIRcLIAUgF3qnQQN0QcAHcWsiCEEEaygCACILQQlPBEAgCEEgaygCACIIQQRrKAIAIglBeHEiCiALQQJ0IgtBBEEIIAlBA3EiCRtqSQ0JIAlBACAKIAtBJ2pLGw0KIAgQogILIBdCAX0gF4MhFyAEQQFrIgQNAAsgAiACKAJUIgQEfyAEQQlqIgMEQCAGQf8BIAP8CwALIAQgBEEBakEDdkEHbCAEQQhJGwVBAAs2AlggAkEANgJcCwJAIAdFDQAgAigCSCIDIAdBA3RqIQ0gA0EIaiEFAkADQCADKAIEIgsgACgCCCIETw0BIAUhByACIAAoAgQgC0EkbGoiBP1dAgggBCoCECJA/SACIED9IAMgAv0JAoAB/ecB/WgiM/0fAvwENwOgASACIDP9HwH8BDcDmAEgAiAz/R8A/AQ3A5ABIAJB4AJqIAJB0ABqIAJBkAFqEIcCAkAgAigCgAMiBQRAIAJBuAJqIBNBCGr9AAMA/QsDACACIBMpAwA3A7ACIAUoAgAiAyAFKAIEIgYgAigC4AIiCXEiBGopAABCgIGChIiQoMCAf4MiF1AEQEEIIQgDQCAEIAhqIQQgCEEIaiEIIAMgBCAGcSIEaikAAEKAgYKEiJCgwIB/gyIXUA0ACwsgAyAXeqdBA3YgBGogBnEiBGosAAAiCEEATgRAIAMgAykDAEKAgYKEiJCgwIB/g3qnQQN2IgRqLQAAIQgLIAMgBGogCUEZdiIJOgAAIAUgBSgCCCAIQQFxazYCCCADIARBCGsgBnFqQQhqIAk6AAAgAyAEQQZ0ayIDQUBqIgRBEGogAkHAAmopAwA3AwAgBCAC/QADsAL9CwMAIANBBGtBADYCACADQShrQQA2AgAgBSAFKAIMQQFqNgIMDAELIAIoAuACIQMLIANBJGshBgJ/IANBBGsiBSgCACIJQQlJBEAgCSEEQQghCSAGDAELIAYoAgAhBCAGIQUgA0EgaygCAAshCiAEIAlGBH8gA0EoaxDNBiADQSBrKAIAIQogBiIFKAIABSAEC0ECdCAKaiALNgIAIAUgBSgCAEEBajYCACAHQQBBCCAHIA1GIgQbaiEFIAchAyAERQ0ACwwBCyALIARB1MDHABCMBwALIAJBADYCsAEgAkKAgICAwAA3AqgBA0AgAigCNCEUIAIoAjghDQJAAkACQAJAAkADQCACQbQBaiACQcQAahCEAyACKAK0AUEBRw0CIAIoArwBIgogDU8NASAKIBRqIg4tAABFDQALIAAoAggiCCAKSwRAAkAgACgCBCIRIApBJGxqIgP9XQIIIAMqAhAiQP0gAiBA/SADIAL9CQKAAf3nAf1oIjP9HwL8BCIeQgF9IhwgHkIBfCIoVwRAIAIpA2AiFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhCEvIBZCf4UhMCAz/R8A/AQiH0IBfCEdIB9CAX0hICAz/R8B/AQiJUIBfCEbICVCAX0hGUL///////////8AISFDAACA/yFAQX8hCyACKAJQIRAgAigCVCEJIAIpA2ghMSACKAJcIRVC////////////ACEiQv///////////wAhIwNAAkAgGSAbVQ0AIB0gIFMEQCAZIRcDQCAXIBtZDQIgGyAXIBcgG1OtfCIXWQ0ACwwBCwJAIBUEQCAZISQMAQsgGSEWA0AgICEXA0AgFyAdUyIFBEAgFyAFrXwiFyAdVw0BCwsgFiAbWQ0CIBsgFiAWIBtTrXwiFlkNAAsMAQsDQCAkIhcgFyAbU618ISQgICEWAkACQANAIAkgFiAxhSIYQtii0e/CqeW/LX4gGEI4hiAYQoD+A4NCKIaEIBhCgID8B4NCGIYgGEKAgID4D4NCCIaEhCAYQgiIQoCAgPgPgyAYQhiIQoCA/AeDhCAYQiiIQoD+A4MgGEI4iISEhELSgaqbq/qC16d/fiIYQjiGIBhCgP4Dg0IohoQgGEKAgPwHg0IYhiAYQoCAgPgPg0IIhoSEIBhCCIhCgICA+A+DIBhCGIhCgID8B4OEIBhCKIhCgP4DgyAYQjiIhISEhSAXhSIYQtii0e/CqeW/LX4gGEI4hiAYQoD+A4NCKIaEIBhCgID8B4NCGIYgGEKAgID4D4NCCIaEhCAYQgiIQoCAgPgPgyAYQhiIQoCA/AeDhCAYQiiIQoD+A4MgGEI4iISEhELSgaqbq/qC16d/fiIYQjiGIBhCgP4Dg0IohoQgGEKAgPwHg0IYhiAYQoCAgPgPg0IIhoSEIBhCCIhCgICA+A+DIBhCGIhCgID8B4OEIBhCKIhCgP4DgyAYQjiIhISEhSAchSIYQjiGIBhCgP4Dg0IohoQgGEKAgPwHg0IYhiAYQoCAgPgPg0IIhoSEIBhCCIhCgICA+A+DIBhCGIhCgID8B4OEIBhCKIhCgP4DgyAYQjiIhISEQtKBqpur+oLXp39+IhpCOIYgGkKA/gODQiiGhCAaQoCA/AeDQhiGIBpCgICA+A+DQgiGhIQgGkIIiEKAgID4D4MgGkIYiEKAgPwHg4QgGkIoiEKA/gODIBpCOIiEhIQgGELYotHvwqnlvy1+hSIYQjiGIBhCgP4Dg0IohoQgGEKAgPwHg0IYhiAYQoCAgPgPg0IIhoSEIBhCCIhCgICA+A+DIBhCGIhCgID8B4OEIBhCKIhCgP4DgyAYQjiIhISEIDB+IhpCOIYgGkKA/gODQiiGhCAaQoCA/AeDQhiGIBpCgICA+A+DQgiGhIQgGkIIiEKAgID4D4MgGkIYiEKAgPwHg4QgGkIoiEKA/gODIBpCOIiEhIQgGCAvfoUgGIkiGKdxIQUgGEIZiEL/AINCgYKEiJCgwIABfiEyIBYgFiAdU618IRhBACEGAkACQANAAkAgBSAQaikAACIpIDKFIhpCf4UgGkKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIaUEUEQANAAkAgFiAQIBp6p0EDdiAFaiAJcUEGdGsiBEFAaikDAFINACAXIARBOGspAwBSDQAgHCAEQTBrKQMAUQ0DCyAaQgF9IBqDIhpQRQ0ACwsgKSApQgGGg0KAgYKEiJCgwIB/g1BFDQIgBSAGQQhqIgZqIAlxIQUMAQsLAn8gBEEEaygCACIGQQlPBEAgBEEkaygCACEGIARBIGsoAgAMAQsgBEEkawshBSAGRQ0AIAZBAnQhBgNAIAUoAgAiBCANTw0CAkAgBCAKRg0AIAQgFGotAABBAXFFDQAgBCAITw0FIAJB4AJqIgwgAxCaAyAC/QAE4AIhNCAMIAMpAgAQywIgAv0ABOACITMgDCARIARBJGxqIgcQmgMgAv0ABOACITUgDCAHKQIAEMsCIDQgM/0NCAkKCwgJCgsICQoLAAECAyAz/R8AIkEgM/0fAiJJIEmSIkOUIkwgM/0fAyJFIDP9HwEiQiBCkiJHlCJNkv0TIEIgQ5QiTyBFIEEgQZIiRJQiUJP9IAFDAACAPyBBIESUIlEgQiBHlCJSkpP9IAL95gEiNiA1IDP9DQgJCgsICQoLCAkKCwABAgMgAv0ABOACIjP9HwAiQiAz/R8CIkggSJIiRJQiUyAz/R8DIkogM/0fASJGIEaSIkuUIlSS/RMgRiBElCJVIEogQiBCkiJOlCJWk/0gAUMAAIA/IEIgTpQiTiBGIEuUIkaSk/0gAv3mASI3/Q0AAQIDEBESEwABAgMAAQIDIjMgNiAz/Q0ICQoLAAECAwABAgMAAQIDIDcgM/0NCAkKCwABAgMAAQIDAAECA/0NAAECAxAREhMAAQIDAAECAyI4/eYBIDQgM/0NBAUGBwQFBgcEBQYHAAECAyBBIEeUIkEgRSBDlCJFk/0TQwAAgD8gUSBJIEOUIkOSk/0gASBPIFCS/SAC/eYBIjkgNSAz/Q0EBQYHBAUGBwQFBgcAAQIDIEIgS5QiQiBKIESUIkmT/RNDAACAPyBOIEggRJQiRJKT/SABIFUgVpL9IAL95gEiOv0NAAECAxAREhMAAQIDAAECAyI7IDkgM/0NCAkKCwABAgMAAQIDAAECAyA6IDP9DQgJCgsAAQIDAAECAwABAgP9DQABAgMQERITAAECAwABAgMiPP3mASA0IDP9DQABAgMAAQIDAAECAwABAgNDAACAPyBSIEOSk/0TIEEgRZL9IAEgTCBNk/0gAv3mASI0IDUgM/0NAAECAwABAgMAAQIDAAECA0MAAIA/IEYgRJKT/RMgQiBJkv0gASBTIFST/SAC/eYBIj/9DQABAgMQERITAAECAwABAgMiPSA0IDP9DQgJCgsAAQIDAAECAwABAgMgPyAz/Q0ICQoLAAECAwABAgMAAQID/Q0AAQIDEBESEwABAgMAAQIDIj795gH95AH95AEiNf0fAEMAAAA/IDX9HwFDAAAAP5QQtAYhQSA2IDf9DQQFBgcUFRYXAAECAwABAgMiNyA4/eYBIDkgOv0NBAUGBxQVFhcAAQIDAAECAyI5IDz95gEgNCA//Q0EBQYHFBUWFwABAgMAAQIDIjogPv3mAf3kAf3kASI0/R8AQwAAAD8gNP0fAUMAAAA/lBC0BiFDIDMgN/3mASA7IDn95gEgPSA6/eYB/eQB/eQBIjb9HwBDAAAAPyA3IDf95gEgOSA5/eYBIDogOv3mAf3kAf3kASI3IDb9DQABAgMEBQYHAAECAxQVFhcgMyAz/eYBIDsgO/3mASA9ID395gH95AH95AEiO/0NFBUWFwQFBgcAAQIDDA0ODyA4IDj95gEgPCA8/eYBID4gPv3mAf3kAf3kASIz/Q0AAQIDBAUGBxQVFhcMDQ4P/QwAAAA/AAAAPwAAAD8AAAA//eYBIjj9HwMQtAYhQiAz/R8AQwAAAD8gOP0fAhC0BiFEQwAAAAAhRSBBIEMgQpQgQSA3/R8AQwAAAD8gOP0fARC0BiJJlJMiSpQgO/0fAEMAAAA/IDj9HwAQtAYiRiBJIESUIEMgQ5STIkuUIEIgRCBClCJMIEEgQ5QiTZOUk5IiR4sgRosgSYsQ4AggRIsQ4AgiSCBIIEiUlENgQqINEOAIQ19wiTCUXUUEQCBHIDUgNiA0/eYBIDcgNf3mAf3lAf3mASA7IDcgM/3mASA0IDT95gH95QH95gEgNiAzIDb95gEgNSA0/eYB/eUB/eYB/eUB/eQBIjP9HwAgM/0fAZSRlRDGBUMAAAA/lCAHQRBqIAf9XQII/VYCAAIgA0EQaiAD/V0CCP1WAgAC/eUBIjP9HwIiRSBBIEKUIEMgRpSTQwAAgD8gR5UiQ5QiRyBHkiAz/R8BIkeUlCBFIEogQ5QiSCBIkiAz/R8AIkiUlCBHIE0gTJMgQ5QiSiBKkiBIlJQgRSBFIEYgSZQgQiBClJMgQ5SUlCBIIEggSyBDlJSUIEcgRyBGIESUIEEgQZSTIEOUlJSSkpKSkkMAAAA+lJIhRQsgAkHgAmoiDCADEKQDIAL9AATgAiAMIAcQpAMgAv0ABOAC/eUBIjMgM/3mASIzIDP9DQgJCgsAAQIDAAECAwABAgMgMyAzIDP9DQQFBgcAAQIDAAECAwABAgP95AH95AH9HwCMEIkEIEWMEIkElCJBQwAAAAAgQSBBWxsiQSBAXkUNACAWISMgFyEiIBwhISBBIUAgBCELCyAFQQRqIQUgBkEEayIGDQALCyAWIB1ZDQMgGCIWIB1VDQMMAQsLIAQgDUGc6MEAEIwHAAsgBCAIQdTAxwAQjAcACyAXIBtZDQEgGyAkWQ0ACwsgHCAoUyIEBEAgHCAErXwiHCAoVw0BCwsgC0F/Rw0BCyACKgK4ASFAIAIoArABIgQgAigCqAFGBEAgAkGoAWpBvOfBABD5BQsgAigCrAEgBEEDdGoiAyAKNgIEIAMgQDgCACACIARBAWo2ArABDAcLIAIgCzYC5AIgAiAKNgLgAiAAIAJB4AJqQQJDAAAAABA/IRAgDkEAOgAAIAIoAlxFDQMgAigCVCIFIAIpA2ggH4UiFkLYotHvwqnlvy1+IBZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhIRC0oGqm6v6gtenf34iFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhIUgJYUiFkLYotHvwqnlvy1+IBZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhIRC0oGqm6v6gtenf34iFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhIUgHoUiFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhELSgaqbq/qC16d/fiIXQjiGIBdCgP4Dg0IohoQgF0KAgPwHg0IYhiAXQoCAgPgPg0IIhoSEIBdCCIhCgICA+A+DIBdCGIhCgID8B4OEIBdCKIhCgP4DgyAXQjiIhISEIBZC2KLR78Kp5b8tfoUiFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhCACKQNgIhdCf4V+IhlCOIYgGUKA/gODQiiGhCAZQoCA/AeDQhiGIBlCgICA+A+DQgiGhIQgGUIIiEKAgID4D4MgGUIYiEKAgPwHg4QgGUIoiEKA/gODIBlCOIiEhIQgFiAXQjiGIBdCgP4Dg0IohoQgF0KAgPwHg0IYhiAXQoCAgPgPg0IIhoSEIBdCCIhCgICA+A+DIBdCGIhCgID8B4OEIBdCKIhCgP4DgyAXQjiIhISEfoUgFokiFqdxIQMgFkIZiEL/AINCgYKEiJCgwIABfiEZQQAhBCACKAJQIQYDQAJAIAMgBmopAAAiFiAZhSIXQn+FIBdCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiF1BFBEADQAJAIB8gBiAXeqdBA3YgA2ogBXFBBnRrIgxBQGopAwBSDQAgJSAMQThrKQMAUg0AIB4gDEEwaykDAFENAwsgF0IBfSAXgyIXUEUNAAsLIBYgFkIBhoNCgIGChIiQoMCAf4NQRQ0FIAMgBEEIaiIEaiAFcSEDDAELCyAMQQRrIhEoAgAiAyEOIANBCU8EQCAMQSRrKAIAIQ4LIA5FBEBBACEIDAYLIAxBIGshFSAMQSRrIQlBACEFQQAhCEEAIQMDQCARKAIAIgYhBCAJIQcgBkEJSSIPRQRAIAcoAgAhBCAVKAIAIQcLAkACQCADIARJBEAgCiAFIAdqKAIARgRAIAhBAWohCAwDCyAIRQRAQQAhCAwDCyAJIQQgD0UEQCAEKAIAIQYgFSgCACEECyADIAhrIgcgBk8NASADIAZJBEAgBCAFIAhBAnRraiIGKAIAIQcgBiAEIAVqIgQoAgA2AgAgBCAHNgIADAMLIAMgBkHopMEAEIwHAAsgAyAEQdikwQAQjAcACyAHIAZB6KTBABCMBwALIAVBBGohBSADQQFqIgMgDkcNAAsMBAsgCiAIQdTAxwAQjAcACyAKIA1BrOfBABCMBwALIAIgAi8BPkEBajsBPiACQcQAaiACQagBahCUAiACKAJAIgQgAigCLCIKSQ0EIAIoAkxBAUsNBCACIAAoAghBAWs2AtwBIAJBATYC5AIgAkH45MEANgLgAiACQgE3AuwCIAIgAkHcAWqtQoCAgIAQhDcDoAIgAiACQaACajYC6AIgAkGwAmogAkHgAmoQsQYgAigCsAIiBARAIAIoArQCIARBARCiBwsCQAJAAkAgAigC3AEiBCAAKAIIIgNJBEAgAkEBNgLkAiACQbjowQA2AuACIAJCATcC7AIgAiAAKAIEIARBJGxqNgLwASACICZCgICAgIADhDcDoAIgAiACQaACajYC6AIgAkGwAmogAkHgAmoQsQYgAigCsAIiBARAIAIoArQCIARBARCiBwsgAkEgaiAAKAIIQQF0QQFrEOQHQQAhBSACQQA2AugBIAIgAikDIDcC4AEgAkHgAWoiBCACKAIsQQEQxAYgBCAAKAIIQQAQxAYgAigC3AEiAyACKALoASIKTw0CIAIoAuQBIgsgA2pBAToAACACQeACaiAAIAIoAtwBIAQgARCVAkEAIQYCQCAKQQRPBED9DAAAAAAAAAAAAAAAAAAAAAAhMyALIQMgCkF8cSIGIQUDQCAzIAP9XAAA/YkB/akB/a4BITMgA0EEaiEDIAVBBGsiBQ0ACyAzIDMgM/0NCAkKCwwNDg8AAQIDAAECA/2uASIzIDMgM/0NBAUGBwABAgMAAQIDAAECA/2uAf0bACEFIAYgCkYNAQsgBiALaiEDIAogBmshBgNAIAUgAy0AAGohBSADQQFqIQMgBkEBayIGDQALCyACKAKIAyENIAIoAuwCIQwgAiAFNgLsASACIAAoAgg2AvABIAJBAjYC5AIgAkHs6MEANgLgAiACQgI3AuwCIAIgJzcDuAIgAiACQewBaq1CgICAgBCEIhY3A7ACIAIgAkGwAmo2AugCIAJBoAJqIAJB4AJqELEGIAIoAqACIgQEQCACKAKkAiAEQQEQogcLIAJBATYC5AIgAkGQ6cEANgLgAiACQgE3AuwCIAIgJkKAgICA0AGENwOgAiACIAIoAuwBsyACKAIss5U4AvABIAIgAkGgAmo2AugCIAJBsAJqIAJB4AJqELEGIAIoArACIgQEQCACKAK0AiAEQQEQogcLIAJBADYC+AEgAkKAgICAwAA3AvABIAIoAtwBIQQgAkHwAWpBmOnBABCLBiACKAL0ASAENgIAIAJBATYC+AEgAigC3AEiBCAAKAIIIgNPDQEgAiAAKAIEIARBJGxqIgQQigQiASABkgJ/IAQvARQiA0H//wFxRQRAIANBEHQMAQsgA0H/B3EhBCADQYCAAnEhBSADQYD4AXEiA0GA+AFGBEAgBUEQdCIDQYCAgPwHciAERQ0BGiADIARBDXRyQYCAgP4HcgwBCyAFQRB0IgUgA0ENdEGAgID8AHEgBEENdHJBgICAwANqciADDQAaIAVBgICA2ANyIARnQRBrIgNBF3RrIAQgA0H//wNxQQhqdEH///8DcXILviIBQwAAgD9eBH0gARDGBUNU+C1AlEMAAIA/kpEFQwAAgD8LlDgCgAJBBBBxIgVFDQsgBSACKALcATYCACACQZACaq1CgICAgBCEIRcgAkGAAmqtQoCAgIDQAYQhGUEBIQZBASEEA0AgAiAGNgKQAiACIBc3A7gCIAIgGTcDsAIgAkICNwLsAiACQQI2AuQCIAJB0OnBADYC4AIgAiACQbACajYC6AIgAkGgAmogAkHgAmoQ7AMgAigCoAIiAwRAIAIoAqQCIgdBBGsoAgAiCEF4cSIJQQRBCCAIQQNxIggbIANqSQ0QIAhBACAJIANBJ2pLGw0RIAcQogILQQAhAyACQQA2AugCIAJCgICAgMAANwLgAiAGQQJ0IQYDQCAAIAMgBWooAgAgAkHwAWogAioCgAIgAkHgAmoQ2gEgBiADQQRqIgNHDQALAkAgAigC6AIiBkUEQCACKALgAiIDBEAgAigC5AIgA0ECdEEEEKIHCyACIAIoAvgBIgc2AoQCIAcgAigC7AFGDQEgAkEANgLgAkEAIAJBhAJqIAJB7AFqIAJB4AJqQeDpwQAQ9QcACyACIAIqAoACQwAAgD6UOAKAAiACKALkAiACKALgAiEHIAQEQCAFQQRrKAIAIghBeHEiCSAEQQJ0IgRBBEEIIAhBA3EiCBtqSQ0RIAhBACAJIARBJ2pLGw0SIAUQogILIQUgByEEDAELCyALQQFqIQkgCiALaiEDQQAhBiALIQgDQCAILQAARQRAIAIoAvABIAdGBEAgAkHwAWpB3OrBABCLBgsgAigC9AEgB0ECdGogBjYCACACIAdBAWoiBzYC+AELIAkgCSIIIANHaiEJIAogBkEBaiIGRw0ACyAAIAIoAvQBIAcQ8AEgACACKALsARCIBSACQQE2AuQCIAJBjOrBADYC4AIgAkIBNwLsAiACIBY3A6ACIAIgAkGgAmo2AugCIAJBsAJqIAJB4AJqELEGIAIoArACIgMEQCACKAK0AiADQQEQogcLIAIgACgCCCIIBHxCACEXQQAhBkEAIQcDQCACQeACaiAAKAIQIAAoAhQgBhDoAiACKAKEAyIDQQhLBEAgAigC6AIiCUEEaygCACIKQXhxIhAgA0ECdCITQQRBCCAKQQNxIgobakkNESACKALkAiEDIApBACAQIBNBJ2pLGw0GIAkQogILIAcgA0EAR2ohByAXIAOtfCEXIAggBkEBaiIGRw0ACyAXuiAHt6MFRAAAAAAAAPh/CzkDiAIgAkEBNgLkAiACQbzqwQA2AuACIAJCATcC7AIgAiACQYgCaq1CgICAgPAChDcDoAIgAiACQaACajYC6AIgAkGwAmogAkHgAmoQsQYgAigCsAIiAwRAIAIoArQCIANBARCiBwsgAkHgAmogACgCECAAKAIUQQAQ6AIgAiACKAKEAyIDQQlJIgYEfyADBSACKALkAgs2ApwCIAJBATYCtAIgAkHU6sEANgKwAiACQgE3ArwCIAIgAkGcAmqtQoCAgIAQhDcDkAIgAiACQZACajYCuAIgAkGgAmogAkGwAmoQsQYgBkUEQCACKALoAiADQQJ0QQQQogcLIAIoAqACIgMEQCACKAKkAiADQQEQogcLIAQEQCAFIARBAnRBBBCiBwsgAigC8AEiBARAIAIoAvQBIARBAnRBBBCiBwsgDUEJTwRAIAwgDUECdEEEEKIHCyACKALgASIEBEAgCyAEQQEQogcLIAJB0ABqEL4EIAIoAkQiBARAIAIoAkggBEEDdEEEEKIHCyACKAIwIgQEQCAUIARBARCiBwsgACgCCCEEDAoLIAQgA0HUwMcAEIwHAAsgBCADQdTAxwAQjAcACyADIApB0OjBABCMBwALDAsLQcznwQAQ3QkACyARKAIAIQMLIA4gCGsiBCAMQSRrIBEgA0EISxsiAygCAEkEQCADIAQ2AgALAkACQAJAAkAgCyANSQRAIAsgFGpBADoAACACKAJcRQ0CIAIoAlQiBSACKQNoICOFIhZC2KLR78Kp5b8tfiAWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEQtKBqpur+oLXp39+IhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhISFICKFIhZC2KLR78Kp5b8tfiAWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEQtKBqpur+oLXp39+IhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhISFICGFIhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhIRC0oGqm6v6gtenf34iF0I4hiAXQoD+A4NCKIaEIBdCgID8B4NCGIYgF0KAgID4D4NCCIaEhCAXQgiIQoCAgPgPgyAXQhiIQoCA/AeDhCAXQiiIQoD+A4MgF0I4iISEhCAWQtii0e/CqeW/LX6FIhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhIQgAikDYCIXQn+FfiIZQjiGIBlCgP4Dg0IohoQgGUKAgPwHg0IYhiAZQoCAgPgPg0IIhoSEIBlCCIhCgICA+A+DIBlCGIhCgID8B4OEIBlCKIhCgP4DgyAZQjiIhISEIBYgF0I4hiAXQoD+A4NCKIaEIBdCgID8B4NCGIYgF0KAgID4D4NCCIaEhCAXQgiIQoCAgPgPgyAXQhiIQoCA/AeDhCAXQiiIQoD+A4MgF0I4iISEhH6FIBaJIhancSEDIBZCGYhC/wCDQoGChIiQoMCAAX4hGUEAIQQgAigCUCEGA0AgAyAGaikAACIWIBmFIhdCf4UgF0KBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIXUEUEQANAAkAgIyAGIBd6p0EDdiADaiAFcUEGdGsiDEFAaikDAFINACAiIAxBOGspAwBSDQAgISAMQTBrKQMAUQ0FCyAXQgF9IBeDIhdQRQ0ACwsgFiAWQgGGg0KAgYKEiJCgwIB/g1BFDQMgAyAEQQhqIgRqIAVxIQMMAAsACyALIA1B3OfBABCMBwALIAxBBGsiDigCACIDIQogA0EJTwRAIAxBJGsoAgAhCgsgCkUEQEEAIQkMAwsgDEEgayERIAxBJGshCEEAIQVBACEJQQAhAwNAIA4oAgAiBiEEIAghByAGQQlJIhVFBEAgBygCACEEIBEoAgAhBwsCQAJAIAMgBEkEQCALIAUgB2ooAgBGBEAgCUEBaiEJDAMLIAlFBEBBACEJDAMLIAghBCAVRQRAIAQoAgAhBiARKAIAIQQLIAMgCWsiByAGTw0BIAMgBkkEQCAEIAUgCUECdGtqIgYoAgAhByAGIAQgBWoiBCgCADYCACAEIAc2AgAMAwsgAyAGQeikwQAQjAcACyADIARB2KTBABCMBwALIAcgBkHopMEAEIwHAAsgBUEEaiEFIANBAWoiAyAKRw0ACwwBC0Hs58EAEN0JAAsgDigCACEDCyAKIAlrIgQgDEEkayAOIANBCEsbIgMoAgBJBEAgAyAENgIACyACKAIwIA1GBH8gAkEwahCmBiACKAI0BSAUCyANakEBOgAAIAIgDUEBajYCOEMAAIA/IUACfwJAIAAoAggiBCAQSwRAIAAoAgQgEEEkbGoiBRCKBCFBIAUvARQiA0H//wFxRQRAIANBEHQMAwsgA0H/B3EhBCADQYCAAnEhBiADQYD4AXEiA0GA+AFGBEAgBkEQdCIDQYCAgPwHciAERQ0DGiADIARBDXRyQYCAgP4HcgwDCyAGQRB0IQYgA0UNASADQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogBnIMAgsgECAEQdTAxwAQjAcACyAGQYCAgNgDciAEZ0EQayIDQRd0ayAEIANB//8DcUEIanRB////A3FyC74iQkMAAIA/XgRAIEIQxgVDVPgtQJRDAACAP5KRIUALIEEgQZIgQJQiQCACKgKAASJBXkUEQCACIAX9XQIIIAUqAhAiQv0gAiBC/SADIEH9E/3nAf1oIjP9HwL8BDcD0AEgAiAz/R8B/AQ3A8gBIAIgM/0fAPwENwPAASACQeACaiACQdAAaiACQcABahCHAgJAIAIoAoADIgUEQCACQbgCaiATQQhq/QADAP0LAwAgAiATKQMANwOwAiAFKAIAIgQgBSgCBCIDIAIoAuACIghxIgZqKQAAQoCBgoSIkKDAgH+DIhdQBEBBCCEHA0AgBiAHaiEGIAdBCGohByAEIAMgBnEiBmopAABCgIGChIiQoMCAf4MiF1ANAAsLIAQgF3qnQQN2IAZqIANxIgZqLAAAIgdBAE4EQCAEIAQpAwBCgIGChIiQoMCAf4N6p0EDdiIGai0AACEHCyAEIAZqIAhBGXYiCDoAACAFIAUoAgggB0EBcWs2AgggBCAGQQhrIANxakEIaiAIOgAAIAQgBkEGdGsiA0FAaiIEQRBqIAJBwAJqKQMANwMAIAQgAv0AA7AC/QsDACADQQRrQQA2AgAgA0Eoa0EANgIAIAUgBSgCDEEBajYCDAwBCyACKALgAiEDCyADQSRrIQcCfyADQQRrIgUoAgAiBEEJSQRAIAQhBkEIIQQgBwwBCyAHKAIAIQYgByEFIANBIGsoAgALIQkgBCAGRgRAIANBKGsQzQYgA0EgaygCACEJIAcoAgAhBiAHIQULIAkgBkECdGogEDYCACAFIAUoAgBBAWo2AgAgAkHEAGogQIwgEBDxBAwBCyACKAKwASIEIAIoAqgBRgRAIAJBqAFqQYzowQAQ+QULIAIoAqwBIARBA3RqIgMgEDYCBCADIECMOAIAIAIgBEEBajYCsAEMAAsACwALDAQLIAQEQEEUIQZBACEFA0ACQAJ/AkACQAJ/AkACQCAAKAIIIgMgBUsEQCAAKAIEIAZqIgovAQAiB0H//wFxIg1FDQEgB0H/B3EhAyAHQYCAAnEhCCAHQYD4AXEiC0GA+AFHIgxFBEAgCEEQdCIJQYCAgPwHciADRQ0EGiAJIANBDXRyQYCAgP4HcgwECyAIQRB0IQkgC0UNAiALQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogCXIMAwsgBSADQeTAxwAQjAcACyAHQRB0vkMAAIA/Xg0CDAULIAlBgICA2ANyIANnQRBrIglBF3RrIAMgCUH//wNxQQhqdEH///8DcXILvkMAAIA/XkUNAyANDQELIAdBEHQMAQsgDEUEQCAIQRB0IgdBgICA/AdyIANFDQEaIAcgA0ENdHJBgICA/gdyDAELIAhBEHQiByALQQ10QYCAgPwAcSADQQ10ckGAgIDAA2pyIAsNABogB0GAgIDYA3IgA2dBEGsiB0EXdGsgAyAHQf//A3FBCGp0Qf///wNxcgtDAACAPyEBviJAQwAAgD9eBEAgQBDGBUNU+C1AlEMAAIA/kpFDAACAv5JDAACAPpRDAACAP5IhAQtDAAAAQEMAAIA/IAEgAUMAAIA/XRsiASABQwAAAEBeG7wiCEH///8DcSELIAhBgICAgHhxIQcCQCAIQYCAgPwHcSIDQYCAgPwHRgRAIAtBDXYgB0EQdnJBgARBACALG3JBgPgBciEHDAELIAdBEHYhByADQYCAgLgETQRAIANBgICAxANPBEAgCEEMdiAIQf/fAHFBAEdxIANBDXYgC0ENdmpBgIABaiAHcmohBwwCCyADQYCAgJgDSQ0BIAtBgICABHIiCEH+ACADQRd2IgtrdiEDIAhBHSALayILdkEBcQR/IANBAyALdEEBayAIcUEAR2oFIAMLIAdyIQcMAQsgB0GA+AFyIQcLIAogBzsBAAsgBkEkaiEGIAQgBUEBaiIFRw0ACwsgAkEANgKoAiACQoCAgIDAADcCoAIgAkGgAmpBqMHBABCLBiACKAKkAkEANgIAQQEhBSACQQE2AqgCIAJCgICAgMAANwLAASACQgA3AsgBQQQQcSIERQ0AIARBADYCACACQcABakG4wcEAEKQGIAIoAsQBIAIoAswBIgYgAigCyAFqIgMgAigCwAEiB0EAIAMgB08ba0EMbGoiA0EBNgIIIAMgBDYCBCADQQE2AgAgAiAGQQFqNgLMASACKALMASIDRQ0CIAJB8AFqrUKAgICAEIQhICACQeABaq0iFkKAgICAEIQhJCACQdAAaq1CgICAgJAChCEcIAJBtAFqrUKAgICA0AGEISEgAkGwAmqtQoCAgICgAoQhIiACQagBaq1CgICAgLAChCEjIBZCgICAgNABhCEYIAJBnANqIRUgAkHoAmohECACQeQCaiELIAJBuAJqIRQgAkHUAGohDSACQYQDaiETAkADQCACIANBAWs2AswBIAIgAigCyAEiBEEBaiIDIAIoAsABIgVBACADIAVPG2s2AsgBIAIoAsQBIARBDGxqIgQoAgAiDkGAgICAeEYNAyAEKQIEIRYgAkEANgKYASACQoCAgIDAADcCkAEgFqchBSAWQh6Ip0H8////B3EiBARAIAQgBWohEUEAIQhBBCEGIAUhCgNAIAghAwJ/AkAgCigCACIHIAAoAggiBEkEQCAAKAIEIAdBJGxqIgwvARwhBEEAIQhBACAMLwEeIglB//8BcSIPQYD4AUsNAhpBACAEQf//AXEiEkGA+AFLDQIaIAnBQQBIDQEgBCAJSSAEwUEATg0CGiAJIBJyQQBHDAILIAcgBEHUwMcAEIwHAAsgBMFBAEggBCAJS3ELIRIgCSAEIBIbIAQgD0GB+AFJGyEEAkAgDC8BICIJQf//AXEiD0GA+AFLDQAgBEH//wFxIhJBgPgBSw0AIAnBQQBOBEAgBMFBAE4EQCAJIARB//8DcUshCAwCCyAJIBJyQQBHIQgMAQsgBMFBAEggCSAEQf//A3FJcSEICyAMLwEUIQwCfyAJIAQgCBsgBCAPQYH4AUkbIghB//8BcUUEQCAIQRB0DAELIAhB/wdxIQQgCEGAgAJxIQkgCEGA+AFxIghBgPgBRgRAIAlBEHQiCEGAgID8B3IgBEUNARogCCAEQQ10ckGAgID+B3IMAQsgCUEQdCIJIAhBDXRBgICA/ABxIARBDXRyQYCAgMADanIgCA0AGiAJQYCAgNgDciAEZ0EQayIIQRd0ayAEIAhB//8DcUEIanRB////A3FyC74QiQQhAUMAAIA/IUACfyAMQRB0IAxB//8BcUUNABogDEH/B3EhBCAMQYCAAnEhCCAMQYD4AXEiCUGA+AFGBEAgCEEQdCIIQYCAgPwHciAERQ0BGiAIIARBDXRyQYCAgP4HcgwBCyAIQRB0IgggCUENdEGAgID8AHEgBEENdHJBgICAwANqciAJDQAaIAhBgICA2ANyIARnQRBrIghBF3RrIAQgCEH//wNxQQhqdEH///8DcXILviJBQwAAgD9eBEAgQRDGBUNU+C1AlEMAAIA/kpEhQAsgAigCkAEgA0YEQCACQZABakHIlcEAEPkFIAIoApQBIQYLIAYgA0EDdGoiBCAHNgIEIAQgASABkiBAlCIBOAIAIAIgA0EBaiIINgKYAQJAIANFBEBBACEEDAELIAEgAVwEQANAAkAgBiADQQFrIgxBAXYiBEEDdGoiCSoCACJAIEBbIAEgQF9FcQ0AIAcgCUEEaigCAEsNACADIQQMAwsgBiADQQN0aiAJKQIANwIAIAQhAyAMQQJPDQAMAgsACwNAIAYgA0EBayIMQQF2IgRBA3RqIgkqAgAiQCBAWyABIEBfRXFBfyABIEBgGyIPQQBMIAcgCUEEaigCAE0gDxsEQCADIQQMAgsgBiADQQN0aiAJKQIANwIAIAQhAyAMQQFLDQALCyAGIARBA3RqIgQgBzYCBCAEIAE4AgAgCkEEaiIKIBFHDQALCyAOBEAgBUEEaygCACIEQXhxIgMgDkECdCIGQQRBCCAEQQNxIgQbakkNBiAEQQAgAyAGQSdqSxsNByAFEKICCwJAAkACQCACKAKYASIKRQ0AIAIoAqgCQf+/BGpBgID8/wNxIQwDQCACIApBAWsiBDYCmAEgAigClAEiByAEQQN0aiIDKAIEIQUgAyoCACEBAkAgBEUEQCABIUAgBSEIDAELIAcoAgQhCCAHIAU2AgQgByoCACFAIAcgATgCAEEAIQNBASEGIApBBE8EQCAEQQJrIgNBACADIARNGyEJQQAhBANAIAcgBEEDdGogByAGIAcgBkEDdGoiBEEIaioCACJBIEFbIEEgBCoCACJCYEVxIgMgA0F/IEEgQl8bIEIgQlwbIgNBAEwgBEEEaigCACAEQQxqKAIATSADG2oiA0EDdGopAgA3AgAgA0EBdCIOQQFyIQYgAyEEIAkgDksNAAsLAkACQCAKQQJrIAZGBEAgByADQQN0aiAHIAZBA3RqIgQpAgA3AgAgBCAFNgIEIAQgATgCACAGIQMMAQsgByADQQN0aiIEIAU2AgQgBCABOAIAIAMNAEEAIQQMAQsgASABXARAA0ACQCAHIANBAWsiCUEBdiIEQQN0aiIGKgIAIkEgQVsgASBBX0VxDQAgBSAGQQRqKAIASw0AIAMhBAwDCyAHIANBA3RqIAYpAgA3AgAgBCEDIAlBAk8NAAwCCwALA0AgByADQQFrIglBAXYiBEEDdGoiBioCACJBIEFbIAEgQV9FcUF/IAEgQWAbIgpBAEwgBSAGQQRqKAIATSAKGwRAIAMhBAwCCyAHIANBA3RqIAYpAgA3AgAgBCEDIAlBAUsNAAsLIAcgBEEDdGoiBCAFNgIEIAQgATgCAAsgAkGwAmogACgCECAAKAIUIAgQ6AIgAigCqAIhAwJAAkAgAigC1AIiBEEJSSIFRQRAIAIoArQCIANqIgkgDEsNAQwCCyADIARqIgkgDE0NAQsgAkGQAWogQCAIEPEEIAIgGDcD8AEgAiADs0MAAIA3lDgC4AEgAkIBNwLsAiACQQE2AuQCIAJB+MHBADYC4AIgAiACQfABajYC6AIgAkHQAGogAkHgAmoQ7AMgAigCUCIDBEAgAigCVCIGQQRrKAIAIgdBeHEiCEEEQQggB0EDcSIHGyADakkNCyAHQQAgCCADQSdqSxsNDCAGEKICCyAFRQRAIAIoArgCIgNBBGsoAgAiBUF4cSIGIARBAnQiBEEEQQggBUEDcSIFG2pJDQsgBUEAIAYgBEEnaksbDQwgAxCiAgsgAigCmAEiA0UNAiACKAKUASIEIANBA3QiBmohCCAAKAIEIQkgACgCCCEH/QwAAID/AACA/wAAgP8AAID/ITT9DAAAgH8AAIB/AACAfwAAgH8hNUEAIQUCQAJAAkACQAJAA0AgBCAFakEEaigCACIDIAdPDQEgAkHgAmoiCiAJIANBJGxqIgMQmgMgAv0ABOACITMgCiADKQIAEMsCIDQgA/1dAgggAyoCECIB/SACIAH9IAMiNiAz/QxvEoM6bxKDOm8SgzpvEoM6/esB/QwAAMA/AADAPwAAwD8AAMA//eYBIjQgM/0NCAkKCwgJCgsICQoLAAECA0MAAIA/IAL9AATgAiIz/R8AIgEgASABkiJGlCJJIDP9HwEiQCBAIECSIkKUIkWSk/0TIAEgM/0fAiJDIEOSIkGUIkcgM/0fAyJEIEKUIkiS/SAAIEAgQZQiQCBEIEaUIkaT/SAB/eAB/eYBIDQgM/0NBAUGBwQFBgcEBQYHAAECAyBAIEaS/RMgASBClCIBIEQgQZQiQJP9IABDAACAPyBJIEMgQZQiQZKT/SAB/eAB/eYBIDQgM/0NAAECAwABAgMAAQIDAAECAyBHIEiT/RNDAACAPyBFIEGSk/0gACABIECS/SAB/eAB/eYB/eQB/eQBIjP95AH96wEhNCA1IDYgM/3lAf3qASE1IAYgBUEIaiIFRw0ACyA0IDX95QEiMyAzIDP9DQgJCgsICQoLAAECAwABAgP96wEiNiA2IDP9DQQFBgcAAQIDAAECAwABAgP96wH9HwAgMyAzIDP9DQgJCgsICQoLBAUGBwQFBgf96gEiNiA2IDP9DQQFBgcAAQIDAAECAwABAgP96gH9HwBDAABAQJRgRQRAIAJCBDcC6AMgAkIANwLgAyACQoCAgIDAADcC2AMgAkIENwLQAyACQgA3AsgDIAJCgICAgMAANwLAAyACQgQ3ArgDIAJCADcCsAMgAkKAgICAwAA3AqgDIAJCBDcCoAMgAkIANwKYAyACQoCAgIDAADcCkAMgNSA0/eQB/QwAAAA/AAAAPwAAAD8AAAA//eYBIjP9HwAhASAz/R8CIUAgM/0fASFBQQAhAyACKAKQASEHA0AgAyAEakEEaigCACIFIAAoAggiCE8NAyACQZADaiAVIAAoAgQgBUEkbGoiCCoCCCABXRtBAEEYIAgqAgwgQV0baiIJQQhBOCAIKgIQIEBdIggbaiIMKAIAIgogCUEAQTAgCBtqIg4oAgBGBEAgDkGwwsEAEIsGCyAJQQRBNCAIG2ooAgAgDCAKQQFqNgIAIApBAnRqIAU2AgAgBiADQQhqIgNHDQALIAcEQCAEQQRrKAIAIgNBeHEiBSAHQQN0IgZBBEEIIANBA3EiAxtqSQ0RIANBACAFIAZBJ2pLGw0SIAQQogILQSAQcSIERQ0NIAQgAigCmAM2AgAgBCACKAKkAzYCBCAEIAIoArADNgIIIAQgAigCvAM2AgwgBCACKALIAzYCECAEIAIoAtQDNgIUIAQgAigC4AM2AhggBCACKALsAzYCHCACQQg2AlggAiAENgJUIAJBCDYCUCACIBw3A7ACIAJCATcC7AIgAkECNgLkAiACQZDCwQA2AuACIAIgAkGwAmo2AugCIAJB4AJqEOsCIAIoAlAiBARAIAIoAlQiA0EEaygCACIFQXhxIgYgBEECdCIEQQRBCCAFQQNxIgUbakkNESAFQQAgBiAEQSdqSxsNBCADEKICC0HgABBxIgRFDQ0gBCACQZADakHgAPwKAAAgBCgCACEDIARBgICAgHg2AgAgA0GAgICAeEYNBCAEQQRqIg8pAgAhFiAEKAIMIQcgBEGAgICAeDYCDCAHQYCAgIB4Rg0EIAQpAhAhFyAEKAIkIQggBEGAgICAeDYCJCAIQYCAgIB4Rg0EIAQpAighGSAEKAIYIQkgBEGAgICAeDYCGCAJQYCAgIB4Rg0EIAQpAhwhGyAEKAJIIQogBEGAgICAeDYCSCAKQYCAgIB4Rg0EIAQpAkwhHSAEKAJUIQwgBEGAgICAeDYCVCAMQYCAgIB4Rg0EIAQpAlghGiAEKAI8IQ4gBEGAgICAeDYCPCAOQYCAgIB4Rg0EIAQpAkAhHiAEKAIwIREgBEGAgICAeDYCMCARQYCAgIB4Rg0EIAQpAjQhHyACKALMASIFIAIoAsABIgZGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIhIgBkEAIAYgEk0ba0EMbGoiBiAWNwIEIAYgAzYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIDIAZBACADIAZPG2tBDGxqIgMgFzcCBCADIAc2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiAyAGQQAgAyAGTxtrQQxsaiIDIBk3AgQgAyAINgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgMgBkEAIAMgBk8ba0EMbGoiAyAbNwIEIAMgCTYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIDIAZBACADIAZPG2tBDGxqIgMgHTcCBCADIAo2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiAyAGQQAgAyAGTxtrQQxsaiIDIBo3AgQgAyAMNgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgMgBkEAIAMgBk8ba0EMbGoiAyAeNwIEIAMgDjYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIDIAZBACADIAZPG2tBDGxqIgMgHzcCBCADIBE2AgAgAiAFQQFqNgLMASAEKAIAIgNBgICAgHhyQYCAgIB4RwRAIA8oAgAiBUEEaygCACIGQXhxIgcgA0ECdCIDQQRBCCAGQQNxIgYbakkNESAGQQAgByADQSdqSxsNEiAFEKICCyAEKAIMIgNBgICAgHhyQYCAgIB4RwRAIAQoAhAiBUEEaygCACIGQXhxIgcgA0ECdCIDQQRBCCAGQQNxIgYbakkNESAGQQAgByADQSdqSxsNEiAFEKICCyAEKAIYIgNBgICAgHhyQYCAgIB4RwRAIAQoAhwiBUEEaygCACIGQXhxIgcgA0ECdCIDQQRBCCAGQQNxIgYbakkNESAGQQAgByADQSdqSxsNEiAFEKICCyAEKAIkIgNBgICAgHhyQYCAgIB4RwRAIAQoAigiBUEEaygCACIGQXhxIgcgA0ECdCIDQQRBCCAGQQNxIgYbakkNESAGQQAgByADQSdqSxsNEiAFEKICCyAEKAIwIgNBgICAgHhyQYCAgIB4RwRAIAQoAjQiBUEEaygCACIGQXhxIgcgA0ECdCIDQQRBCCAGQQNxIgYbakkNESAGQQAgByADQSdqSxsNEiAFEKICCyAEKAI8IgNBgICAgHhyQYCAgIB4RwRAIAQoAkAiBUEEaygCACIGQXhxIgcgA0ECdCIDQQRBCCAGQQNxIgYbakkNESAGQQAgByADQSdqSxsNEiAFEKICCyAEKAJIIgNBgICAgHhyQYCAgIB4RwRAIAQoAkwiBUEEaygCACIGQXhxIgcgA0ECdCIDQQRBCCAGQQNxIgYbakkNESAGQQAgByADQSdqSxsNEiAFEKICCyAEKAJUIgNBgICAgHhyQYCAgIB4RwRAIAQoAlgiBUEEaygCACIGQXhxIgcgA0ECdCIDQQRBCCAGQQNxIgYbakkNESAGQQAgByADQSdqSxsNEiAFEKICCyAEQQRrKAIAIgNBeHFB5ABB6AAgA0EDcSIFG0kNECAFQQAgA0GIAU8bDQUgBBCiAgwJCyACIDUgNP3kAf0MAAAAPwAAAD8AAAA/AAAAP/3mAf0LBAAgAkEAQQFBAiAz/R8BIgEgM/0fAiJAYBsiAyBAIDP9HwAiQV8bIAMgASBBXxsiAzoAqAEgAiACIANBAnRyKgIAOAK0ASACIAg2AlwgAiACKAKQATYCWCACIAQ2AlQgAiAENgJQIAIgADYCtAIgAiACQbQBajYCuAIgAiACQagBajYCsAIgAkHgAmoiBSACQdAAaiIGIAJBsAJqEI4EIAIpA+ACIRkgAikC7AIhFyACKAL0AiEDIAIoAugCIQQgAiAz/QsEsAIgAiAENgLgASACIAM2AvABIAJBBjYCVCACQezCwQA2AlAgAkIFNwJcIAIgIDcDgAMgAiAkNwP4AiACICE3A/ACIAIgIjcD6AIgAiAjNwPgAiACIAU2AlggBhDrAgJAIAMgBE0EQCAXIRYgAyEGIBkhFyAEIQMMAQsgGSEWIAQhBgsgAiADNgLwAiACQQI2AuQCIAIgBjYC/AIgAiAXNwLoAiACIBY3AvQCQQEhAwJAIBenIgRBgICAgHhGDQAgAikC7AIhFyACKALMASIDIAIoAsABIgVGBEAgAkHAAWpBnMPBABCkBiACKALAASEFIAIoAswBIQMLIAIoAsQBIAIoAsgBIANqIgYgBUEAIAUgBk0ba0EMbGoiBSAXNwIEIAUgBDYCACACIANBAWo2AswBQQIhAyAWpyIEQYCAgIB4Rg0AIAIpAvgCIRYgAigCzAEiBSACKALAASIGRgRAIAJBwAFqQZzDwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIHIAZBACAGIAdNG2tBDGxqIgYgFjcCBCAGIAQ2AgAgAiAFQQFqNgLMAQsgAiADNgLgAiACQeACahCWBgwICyADIAdB1MDHABCMBwALIAUgCEHUwMcAEIwHAAtBjI3IAEEuQbyNyAAQ6wcMCQtBvMPBABDdCQALDAsLQQAhBiACQQA2AuACIAJBADYChANBCCEHAkACQAJ/IAkgA2siBEEAIAQgCU0bIgRBCUkEQCALIQogEwwBCyACQRhqIAJB4AJqQX8gBEEBa2d2QQFqEOgDIAIoAhgiBEGBgICAeEcEQCAEDQpB2JXHAEERQdTMxwAQ6wcACyACKAKEAyIHQQlJBEAgByEGIAshCkEIIQcgEwwBCyACKALkAiEGIAIoAugCIQogCwsiESAGIAdJBH8gByAGQX9zaiIEIAkgAyADIAlJGyIPIANrIgUgBCAFSRtBAWoiBEEESwRAIAogBkECdGohBSAD/RH9DAAAAAABAAAAAgAAAAMAAAD9rgEhMyAEIARBA3EiBEEEIAQbayIOIQQDQCAFIDP9CwIAIAVBEGohBSAz/QwEAAAABAAAAAQAAAAEAAAA/a4BITMgBEEEayIEDQALIAYgDmohBiADIA5qIQMLIAogBkECdGohBQNAIAMgD0YNAiAFIAM2AgAgBUEEaiEFIANBAWohAyAHIAZBAWoiBkcNAAsgBwUgBgs2AgAgAyAJTw0BA0ACfyACKAKEAyIEQQlPBEAgAigC5AIhBSACKALoAiEHIAsMAQsgBCEFIAshB0EIIQQgEwshBiAEIAVGBH8gAkHgAmoQzQYgAigC6AIhByALIQYgAigC5AIFIAULQQJ0IAdqIAM2AgAgBiAGKAIAQQFqNgIAIANBAWoiAyAJRw0ACwwBCyARIAY2AgALIAJB8ABqIAJBgANqKQIANwMAIAJB4ABqIAJB8AJq/QACAP0LAwAgAiAC/QAC4AL9CwNQIAAoAhAgACgCFCAIIAIoAnQiBUEJTwR/IAIoAlQhBSACKAJYBSANCyAFEOQFIAIoArQCIQMgAigCsAIhBCAQQRhqIBRBGGooAgA2AgAgEEEQaiAUQRBqKQIANwIAIBAgFP0AAgD9CwIAIAIgBDYC4AIgAiADIAIoAtQCIgkgCUEISyIEGyIONgKMAyACIAlBACAEGzYChAMgAkEAIAMgBBs2AuQCIA4EQCACKALoAiALIAQbIRFBACEIIAIoAqgCIQoDQCACIAgiBEEBaiIINgKIAyARIARBAnRqKAIAIQUgAigCoAIgCkYEQCACQaACakHIwcEAEIsGCyACKAKkAiAKQQJ0aiAFNgIAIAIgCkEBaiIKNgKoAgJ/AkAgACgCCCIEIAVLBEAgACgCBCAFQSRsaiIGLwEcIQRBACEHQQAgBi8BHiIDQf//AXEiD0GA+AFLDQIaQQAgBEH//wFxIhJBgPgBSw0CGiADwUEASA0BIAMgBEsgBMFBAE4NAhogAyASckEARwwCCyAFIARB1MDHABCMBwALIATBQQBIIAMgBElxCyESIAMgBCASGyAEIA9BgfgBSRshBAJAIAYvASAiA0H//wFxIg9BgPgBSw0AIARB//8BcSISQYD4AUsNACADwUEATgRAIATBQQBOBEAgAyAEQf//A3FLIQcMAgsgAyASckEARyEHDAELIATBQQBIIAMgBEH//wNxSXEhBwsgBi8BFCEGAn8gAyAEIAcbIAQgD0GB+AFJGyIDQf//AXFFBEAgA0EQdAwBCyADQf8HcSEEIANBgIACcSEHIANBgPgBcSIDQYD4AUYEQCAHQRB0IgNBgICA/AdyIARFDQEaIAMgBEENdHJBgICA/gdyDAELIAdBEHQiByADQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2pyIAMNABogB0GAgIDYA3IgBGdBEGsiA0EXdGsgBCADQf//A3FBCGp0Qf///wNxcgu+EIkEIQFDAACAPyFAAn8gBkEQdCAGQf//AXFFDQAaIAZB/wdxIQQgBkGAgAJxIQMgBkGA+AFxIgZBgPgBRgRAIANBEHQiA0GAgID8B3IgBEUNARogAyAEQQ10ckGAgID+B3IMAQsgA0EQdCIDIAZBDXRBgICA/ABxIARBDXRyQYCAgMADanIgBg0AGiADQYCAgNgDciAEZ0EQayIDQRd0ayAEIANB//8DcUEIanRB////A3FyC74iQUMAAIA/XgRAIEEQxgVDVPgtQJRDAACAP5KRIUALIAIoApgBIgMgAigCkAFGBEAgAkGQAWpByJXBABD5BQsgAigClAEiBiADQQN0aiIEIAU2AgQgBCABIAGSIECUIgE4AgAgAiADQQFqNgKYAQJAIANFBEBBACEEDAELIAEgAVwEQANAAkAgBiADQQFrIg9BAXYiBEEDdGoiByoCACJAIEBbIAEgQF9FcQ0AIAUgB0EEaigCAEsNACADIQQMAwsgBiADQQN0aiAHKQIANwIAIAQhAyAPQQJPDQAMAgsACwNAIAYgA0EBayIPQQF2IgRBA3RqIgcqAgAiQCBAWyABIEBfRXFBfyABIEBgGyISQQBMIAUgB0EEaigCAE0gEhsEQCADIQQMAgsgBiADQQN0aiAHKQIANwIAIAQhAyAPQQFLDQALCyAGIARBA3RqIgQgBTYCBCAEIAE4AgAgCCAORw0ACwsgCUEJTwRAIAIoAugCIgRBBGsoAgAiA0F4cSIFIAlBAnQiBkEEQQggA0EDcSIDG2pJDQQgA0EAIAUgBkEnaksbDQsgBBCiAgsgAigCdCIEQQlPBEAgAigCWCIDQQRrKAIAIgVBeHEiBiAEQQJ0IgRBBEEIIAVBA3EiBRtqSQ0KIAVBACAGIARBJ2pLGw0LIAMQogILIAIoApgBIgoNAAsLIAIoApABIgRFDQAgAigClAEiA0EEaygCACIFQXhxIgYgBEEDdCIEQQRBCCAFQQNxIgUbakkNByAFQQAgBiAEQSdqSxsNAyADEKICCyACKALMASIDDQEMBAsLDAQLDAQLAAsgAigCqAIhBQsgAiAAKAIIIgQ2AlAgAiAFNgKwAiAEIAVHBEAgAkEANgLgAkEAIAJBsAJqIAJB0ABqIAJB4AJqQazDwQAQ9QcACyAAIAIoAqQCIgAgBRDwASACQcABahDrAwJAIAIoAqACIgQEQCAAQQRrKAIAIgNBeHEiBSAEQQJ0IgRBBEEIIANBA3EiAxtqSQ0CIANBACAFIARBJ2pLGw0BIAAQogILIAJB8ANqJAAPCwwBC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAu6vgEEF38TfgR7Cn0jAEGAA2siAyQAIAAQngEgAyACOgAnIAMgATgCICADIAAoAggiBjYC8AIgAyADQSdqrUKAgICAwAGENwPIASADIANBIGqtQoCAgIDQAYQ3A8ABIAMgA0HwAmqtIhpCgICAgBCENwO4ASADQgM3AuwBIANBAzYC5AEgA0GA48EANgLgASADIANBuAFqNgLoASADQZABaiADQeABahDsAwJAAkACQCADKAKQASICBEAgAygClAEiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgAmpJDQEgBUEAIAYgAkEnaksbDQIgBBCiAiAAKAIIIQYLAkACQAJAAkAgBkUNACAGQQJ0IggQcSIHRQ0BQQAhAgJAAkACQCAGQQRPBED9DAAAAAABAAAAAgAAAAMAAAAhLSAHIQUgBkH8//8fcSICIQQDQCAFIC39CwIAIAVBEGohBSAt/QwEAAAABAAAAAQAAAAEAAAA/a4BIS0gBEEEayIEDQALIAIgBkYNAQsgByACQQJ0aiEFA0AgBSACNgIAIAVBBGohBSAGIAJBAWoiAkcNAAsgAyAANgLkASADIANB/wJqNgLgASADIANB4AFqNgK4ASAGQQFGDQIMAQsgAyAANgLkASADIANB/wJqNgLgASADIANB4AFqNgK4AQsgBkEVTwRAIANBuAFqIQUjAEGAIGsiCiQAAkACQAJAAkACQEGAifoAIAYgBkGAifoATxsiBCAGIAZBAXZrIgIgAiAESRsiBEGBCE8EQCACQf////8DSw0CQTAgBCAEQTBNGyIJQQJ0IgJB/f///wdPDQIgAhBxIgRFDQMgByAGIAQgCSAGQcEASSAFEFUgBEEEaygCACIFQXhxIglBBEEIIAVBA3EiBRsgAmpJDQQgBUEAIAkgAkEnaksbDQUgBBCiAgwBCyAHIAYgCkGACCAGQcEASSAFEFULIApBgCBqJAAMBQtB2JXBABD/BwsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBBCECA0AgByACIAdqIANB4AFqEPoBIAggAkEEaiICRw0ACwsgACAHIAYQ8AFDAACAPyEBAn8CQAJAIAdBBGsoAgAiAkF4cSIEQQRBCCACQQNxIgIbIAhqTwRAIAJBACAEIAhBJ2pLGw0JIAcQogIgABCaBCAAKAIIRQ0BIAAoAgQiBRCKBCExIAUvARQiAkH//wFxIghFBEAgAkEQdAwECyACQf8HcSEEIAJBgIACcSEGIAJBgPgBcSIHQYD4AUYEQCAGQRB0IgZBgICA/AdyIARFDQQaIAYgBEENdHJBgICA/gdyDAQLIAZBEHQhBiAHRQ0CIAdBDXRBgICA/ABxIARBDXRyQYCAgMADaiAGcgwDCwwHC0EAQQBB1MDHABCMBwALIAZBgICA2ANyIARnQRBrIgZBF3RrIAQgBkH//wNxQQhqdEH///8DcXILviIyQwAAgD9eBEAgMhDGBUNU+C1AlEMAAIA/kpEhAQsgAyoCICEyIANB//8BIDEgMZIgAZRDvTeGNRDgCBDGBSAyEMYFlY0iAfwAQYCAfiABQwAAAMdgGyABQwD+/0ZeG0EAIAEgAVsbOwEoIAMgBRCKBCIBIAGSAn8gAkEQdCAIRQ0AGiACQf8HcSEEIAJBgIACcSEFIAJBgPgBcSICQYD4AUYEQCAFQRB0IgJBgICA/AdyIARFDQEaIAIgBEENdHJBgICA/gdyDAELIAVBEHQiBSACQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2pyIAINABogBUGAgIDYA3IgBGdBEGsiAkEXdGsgBCACQf//A3FBCGp0Qf///wNxcgu+IgFDAACAP14EfSABEMYFQ1T4LUCUQwAAgD+SkQVDAACAPwuUOALwAiADIBpCgICAgNABhDcDwAEgAyADQShqrUKAgICA4AGENwO4ASADQgI3AuwBIANBAjYC5AEgA0G448EANgLgASADIANBuAFqNgLoASADQZABaiADQeABahDsAyADKAKQASICBEAgAygClAEiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgAmpJDQUgBUEAIAYgAkEnaksbDQYgBBCiAgsgAyADLwEoOwEqIAMgACgCCDYCLCADQQA2AjAgA0EANgI8IANCgICAgIABNwI0IANBADYCSCADQoCAgIDAADcCQEHYtskAKAIAIgJFBEAQkwUhAgsgAigCACACKAIEKAIMEQQAIQIgA0HwmsgA/QADAP0LA+ABIAMgAq1Cxs7rhrfq7a0ShSIbQjiGIBtCgP4Dg0IohoQgG0KAgPwHg0IYhiAbQoCAgPgPg0IIhoSEQpK23Z0FhELSgaqbq/qC16d/fiIaQoDoAoNCKIYgGkKAgJQDg0IYhiAaQoCAgKgKg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEQoCAgICAgICARIQgG0LYotHvwqnlvy1+hSIcQu3cspuNpYnMywCFIhpC2KLR78Kp5b8tfiAaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEQtKBqpur+oLXp39+IhpCOIYgGkKA/gODQiiGhCAaQoCA/AeDQhiGIBpCgICA+A+DQgiGhIQgGkIIiEKAgID4D4MgGkIYiEKAgPwHg4QgGkIoiEKA/gODIBpCOIiEhISFQov9+pfHxteXhn+FIhpCOIYgGkKA/gODQiiGhCAaQoCA/AeDQhiGIBpCgICA+A+DQgiGhIQgGkIIiEKAgID4D4MgGkIYiEKAgPwHg4QgGkIoiEKA/gODIBpCOIiEhIRC0oGqm6v6gtenf34iG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAbQgiIQoCAgPgPgyAbQhiIQoCA/AeDhCAbQiiIQoD+A4MgG0I4iISEhCAaQtii0e/CqeW/LX6FIhpCOIYgGkKA/gODQiiGhCAaQoCA/AeDQhiGIBpCgICA+A+DQgiGhIQgGkIIiEKAgID4D4MgGkIYiEKAgPwHg4QgGkIoiEKA/gODIBpCOIiEhIRCiKyRp/aIgJywf34iG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAbQgiIQoCAgPgPgyAbQhiIQoCA/AeDhCAbQiiIQoD+A4MgG0I4iISEhCAaQs+O/8e788bUd36FIBqJNwOIAiADIBxC1oLNoZD9lI5LhSIaQtii0e/CqeW/LX4gGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEhUL8w7ynyZXV5OgAhSIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEQtKBqpur+oLXp39+IhtCOIYgG0KA/gODQiiGhCAbQoCA/AeDQhiGIBtCgICA+A+DQgiGhIQgG0IIiEKAgID4D4MgG0IYiEKAgPwHg4QgG0IoiEKA/gODIBtCOIiEhIQgGkLYotHvwqnlvy1+hSIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEQoiskaf2iICcsH9+IhtCOIYgG0KA/gODQiiGhCAbQoCA/AeDQhiGIBtCgICA+A+DQgiGhIQgG0IIiEKAgID4D4MgG0IYiEKAgPwHg4QgG0IoiEKA/gODIBtCOIiEhIQgGkLPjv/Hu/PG1Hd+hSAaiTcDgAIgAyAcQvzDvKfJldXk6ACFIhpC2KLR78Kp5b8tfiAaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEQtKBqpur+oLXp39+IhpCOIYgGkKA/gODQiiGhCAaQoCA/AeDQhiGIBpCgICA+A+DQgiGhIQgGkIIiEKAgID4D4MgGkIYiEKAgPwHg4QgGkIoiEKA/gODIBpCOIiEhISFQu3cspuNpYnMywCFIhpCOIYgGkKA/gODQiiGhCAaQoCA/AeDQhiGIBpCgICA+A+DQgiGhIQgGkIIiEKAgID4D4MgGkIYiEKAgPwHg4QgGkIoiEKA/gODIBpCOIiEhIRC0oGqm6v6gtenf34iG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAbQgiIQoCAgPgPgyAbQhiIQoCA/AeDhCAbQiiIQoD+A4MgG0I4iISEhCAaQtii0e/CqeW/LX6FIhpCOIYgGkKA/gODQiiGhCAaQoCA/AeDQhiGIBpCgICA+A+DQgiGhIQgGkIIiEKAgID4D4MgGkIYiEKAgPwHg4QgGkIoiEKA/gODIBpCOIiEhIRCiKyRp/aIgJywf34iG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAbQgiIQoCAgPgPgyAbQhiIQoCA/AeDhCAbQiiIQoD+A4MgG0I4iISEhCAaQs+O/8e788bUd36FIBqJNwP4ASADIBxCi/36l8fG15eGf4UiGkLYotHvwqnlvy1+IBpCOIYgGkKA/gODQiiGhCAaQoCA/AeDQhiGIBpCgICA+A+DQgiGhIQgGkIIiEKAgID4D4MgGkIYiEKAgPwHg4QgGkIoiEKA/gODIBpCOIiEhIRC0oGqm6v6gtenf34iGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhIVC1oLNoZD9lI5LhSIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEQtKBqpur+oLXp39+IhtCOIYgG0KA/gODQiiGhCAbQoCA/AeDQhiGIBtCgICA+A+DQgiGhIQgG0IIiEKAgID4D4MgG0IYiEKAgPwHg4QgG0IoiEKA/gODIBtCOIiEhIQgGkLYotHvwqnlvy1+hSIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEQoiskaf2iICcsH9+IhtCOIYgG0KA/gODQiiGhCAbQoCA/AeDQhiGIBtCgICA+A+DQgiGhIQgG0IIiEKAgID4D4MgG0IYiEKAgPwHg4QgG0IoiEKA/gODIBtCOIiEhIQgGkLPjv/Hu/PG1Hd+hSAaiTcD8AEgA0HQAGqtIiNCgICAgBCEISQgA0Esaq1CgICAgBCEISUgA0Ewaq1CgICAgBCEISYgA0HMAGqtQoCAgIDQAYQhJyADQSpqrUKAgICA4AGEISggA0GAAWqtIilCgICAgPABhCEqIANB3ABqrUKAgICA8AGEISsgA0G8AWohECADQeQAaiETIANBzAFqIRQgA0HQAWohEgJAAkACQAJAA0AgAyADKgIgIAMuASqyELcKOAJMAkAgAygCMCICIAMoAixPDQADQAJ/AkAgACgCCCIEIAJLBEAgACgCBCACQSRsaiIGLwEcIQRBACEIQQAgBi8BHiIFQf//AXEiB0GA+AFLDQIaQQAgBEH//wFxIgpBgPgBSw0CGiAFwUEASA0BIAQgBUkgBMFBAE4NAhogBSAKckEARwwCCyACIARB1MDHABCMBwALIATBQQBIIAQgBUtxCyEKIAUgBCAKGyAEIAdBgfgBSRshBAJAIAYvASAiBUH//wFxIgdBgPgBSw0AIARB//8BcSIKQYD4AUsNACAFwUEATgRAIATBQQBOBEAgBSAEQf//A3FLIQgMAgsgBSAKckEARyEIDAELIATBQQBIIAUgBEH//wNxSXEhCAsgBi8BFCEGAn8gBSAEIAgbIAQgB0GB+AFJGyIFQf//AXFFBEAgBUEQdAwBCyAFQf8HcSEEIAVBgIACcSEHIAVBgPgBcSIFQYD4AUYEQCAHQRB0IgVBgICA/AdyIARFDQEaIAUgBEENdHJBgICA/gdyDAELIAdBEHQiByAFQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2pyIAUNABogB0GAgIDYA3IgBGdBEGsiBUEXdGsgBCAFQf//A3FBCGp0Qf///wNxcgu+EIkEITFDAACAPyEBAn8gBkEQdCAGQf//AXFFDQAaIAZB/wdxIQQgBkGAgAJxIQUgBkGA+AFxIgZBgPgBRgRAIAVBEHQiBUGAgID8B3IgBEUNARogBSAEQQ10ckGAgID+B3IMAQsgBUEQdCIFIAZBDXRBgICA/ABxIARBDXRyQYCAgMADanIgBg0AGiAFQYCAgNgDciAEZ0EQayIFQRd0ayAEIAVB//8DcUEIanRB////A3FyC74iMkMAAIA/XgRAIDIQxgVDVPgtQJRDAACAP5KRIQELIAMqAkwgMSAxkiABlF0NASADKAI8IgQgAygCNEYEQCADQTRqEJMGCyADKAI4IARBBXRqIgUgAjYCACAFQgA3AgggBUEQav0MAAAAAAAAAAAAAAAAAAAAAP0LAgAgAyAEQQFqNgI8IAMgAygCMEEBaiICNgIwIAIgAygCLEkNAAsLIAMgJTcD0AEgAyAmNwPIASADICc3A8ABIAMgKDcDuAFBPBBxIgJFDQYgA0EANgL4AiADIAI2AvQCIANBPDYC8AIgA0IENwKcASADQQQ2ApQBIANB+OPBADYCkAEgAyADQbgBajYCmAECQCADQfACakGM78EAIANBkAFqEMEDRQRAIAMoAvACIgIEQCADKAL0AiIEQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyACakkNDCAFQQAgBiACQSdqSxsNDSAEEKICCwJAAkAgAygCPCIHRQ0AIAMoAjgiBiAHQQV0aiEIIAP9CQJMIS4gBiECA0AgAigCACIEIAAoAggiBU8NAiACQQhqIAAoAgQgBEEkbGoiBP1dAgggBCoCECIB/SACIAH9IAMgLv3nAf1oIi39HwD8BCIbQv///wCDIhpCEIYgG0IghoQgGoRC/4GA+I+AwA+DQoECfkKP4IP4gJ7AhxCDQhF+QsPhsJiMhsPhEINCBX5CyaSSyaSSyaQSgyAbQhWIIh9CP4aEIC39HwH8BCIcQv///wCDIhpCEIYgHEIghoQgGoRC/4GA+I+AwA+DQoECfkKP4IP4gJ7AhxCDQhF+QsPhsJiMhsPhEINCCn5Cksmkksmkkskkg4QgLf0fAvwEIhpC////AIMiHUIQhiAaQiCGhCAdhEL/gYD4j4DAD4NCgQJ+Qo/gg/iAnsCHEINCEX5Cw+GwmIyGw+EQg0IUfkKkksmkksmkkskAg4Q3AwAgAkEYaiAcQiqIIh1CEIYgHUIghoQgHYRC/4GA+I+AwA+DQoECfkKP4IP4gJ7AhxCDQhF+QsPhsJiMhsPhEINCBX5CyKSSyaSSyaQSgyAcQoCAgICAgICAgH+DhEIBiCAbQiqIIh5CEIYgHkIghoQgHoRC/4GA+I+AwA+DQoECfkKP4IP4gJ7AhxCDQhF+QsPhsJiMhsPhEINCBX5CyaSSyaSSyaQSgyIeIBtCgICAgICAgICAf4OEQgKIhCAaQiqIIhtCEIYgG0IghoQgG4RC/4GA+I+AwA+DQoECfkKP4IP4gJ7AhxCDQhF+QsPhsJiMhsPhEINCBX4iG0LIpJLJpJLJpBKDIBpCgICAgICAgICAf4OEIBtCAYOEhDcDACACQRBqIBxCFYgiG0L///8AgyIcQhCGIBtCIIaEIByEQv+BgPiPgMAPg0KBAn5Cj+CD+ICewIcQg0IRfkLD4bCYjIbD4RCDQgV+QsikksmkksmkEoMgHUI/hoQgG0IBg4QgH0L///8AgyIbQhCGIB9CIIaEIBuEQv+BgPiPgMAPg0KBAn5Cj+CD+ICewIcQg0IRfkLD4bCYjIbD4RCDQgV+QgGIQqSSyaSSyaSSCYMgHkI+hoSEIBpCFYgiG0L///8AgyIcQhCGIBtCIIaEIByEQv+BgPiPgMAPg0KBAn5Cj+CD+ICewIcQg0IRfkLD4bCYjIbD4RCDQgp+QpDJpJLJpJLJJIMgGkIUiEICg4SENwMAIAJBIGoiAiAIRw0ACyAHQQFGDQAgB0EVTwRAIAYgBxD+AwwBCyAGQSBqIQVBACEJIAYhCwNAIAshAiAFIQsgAikDOCEcIAIpAygiHSEaAkACQCAdIAIpAwgiG1INACACKQMwIhogAikDECIbUg0AIAIpAxgiGyAcIhpRDQELIBogG1oNACACKQMwIR8gAikDICEeIAkhBQNAAkAgBSAGaiICQSBqIgQgAv0AAwD9CwMAIAJBMGogAkEQav0AAwD9CwMAIAVFBEAgAkEgaiEEIAYhAgwBCwJAIAJBGGspAwAiGyAdIhpSDQAgBSAGakEQaykDACIbIB8iGlINACACQQhrKQMAIhsgHCIaUQ0BCyAFQSBrIQUgGiAbVA0BCwsgAiAeNwMAIARBCGsgHDcDACAEQRBrIB83AwAgBEEYayAdNwMACyAJQSBqIQkgC0EgaiIFIAhHDQALCyADICQ3A/ACIAMgBzYCUEEeEHEiAkUNCSADQQA2ApgBIAMgAjYClAEgA0EeNgKQASADQgE3AsQBIANBATYCvAEgA0Go5MEANgK4ASADIANB8AJqNgLAASADQZABakGM78EAIANBuAFqEMEDRQRAIAMoApABIgIEQCADKAKUASIEQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyACakkNDiAFQQAgBiACQSdqSxsNDyAEEKICCyADQQA2AlggA0KAgICAwAA3AlAgA0EANgKMASADQoCAgIDAADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCINIAJBBXQiCWoiBSgCACIGIAAoAggiBEkEQCAAKAIEIgsgBkEkbGoiBv1dAgggBioCECIB/SACIAH9IAMgA/0JAkwiLv3nAf1oIi39HwL8BCEaIC39HwH8BCEbIC39HwD8BCEcIAcgAkEBaiIITQRAIAIhCgwDCyAHQQFrIQogFUEBcQRAIAchCAwDCyAJIA1qQSBqIQYDQCAGKAIAIgkgBE8NAiALIAlBJGxqIgn9XQIIIAkqAhAiAf0gAiAB/SADIC795wH9aCIt/R8A/AQgHFIgLf0fAfwEIBtSckUgLf0fAvwEIBpRcUUEQCAIQQFrIQoMBAsgBkEgaiEGIAcgCEEBaiIIRw0ACyAHIQgMAgsgBiAEQdTAxwAQjAcACyAJIARB1MDHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayILrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiI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ADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCIWIAJBBXQiCWoiBigCACIFIAAoAggiBEkEQCAAKAIEIgogBUEYbGr9AAIAICz9DQABAgMEBQYHCAkKCwgJCgsgA/0JAkwiLf3nAf1oIiz9HwL8BCEaICz9HwH8BCEbICz9HwD8BCEcIAcgAkEBaiIITQRAIAIhCwwDCyAHQQFrIQsgDkEBcQRAIAchCAwDCyAJIBZqQSBqIQUDQCAFKAIAIgkgBE8NAiAKIAlBGGxq/QACACAs/Q0AAQIDBAUGBwgJCgsICQoLIC395wH9aCIs/R8A/AQgHFIgLP0fAfwEIBtSckUgLP0fAvwEIBpRcUUEQCAIQQFrIQsMBAsgBUEgaiEFIAcgCEEBaiIIRw0ACyAHIQgMAgsgBSAEQdy7xwAQjAcACyAJIARB3LvHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayIMrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhCADKQPwASIbQn+FfiIc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IANrIhUNAQwCCwtBqJDIACkDACJ6Qv8Bg0IEUQ0AIHpCIIinIhIgeqciA0H/AXFBBEYNARogekIQiKchFSB6QgiIpyEIQQAhCwwCCyAELwHIDCAELQDKDEEQdHILIRJBASEJIAEgEkEBdkEHcToAKyABIBJBAXEiA0U6ACggASASQQR2QQFxOgApAkACQAJAAkACQAJAAkAgAw0AIARBADoA2hggBEEAOwHYGCABKALoAyELQQMhFSAEQdgYaiEIAkADQAJAIHlQBEBCACF5DAELIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQAgAyAIaiEIIBUgA2siFQ0BDAILC0EAIQtBqJDIACkDACJ6pyIDQf8BcUEERg0AIHpCIIinIRIgekIQiKchFSB6QgiIpyEIDAgLIAECfwJAAkACQAJ/AkACQCAELwHYGCAELQDaGEEQdHIiB0Gdg6gBRgRAIARBADsByAwgASgC6AMhC0ECIRUgBEHIDGohCANAIHlQBEBCACF5DAMLIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQIgAyAIaiEIIBUgA2siFQ0ACwwCCyAHQQh2IQJBESELDA4LQaiQyAApAwAiekL/AYNCBFENACB6QhCIpyEVIHqnIgNB/wFxQQRHDQIgFQwBCyAELwHIDAshESAEQQA7AcgMIAEoAugDIQtBAiEVIARByAxqIQgDQCB5UA0CIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4g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ADcD0EggA0EANgLYSCADQQA6AMJIIANB4MgAaiIBIANBsMUAahCcBCADLQDgSEEoRwRAIAUgARD8AyADKAIYIgFBBkcNBAsgA0EQNgLYSCADQdDRAGoiASADQbDFAGpBsAP8CgAAIANBGGogARCcBCADLQAYIgZBKEcEQCADQarVAGogAy0AGzoAACADIAMvABk7AahVIAMoAhwhBSADKQIgIRQgARCdAQwZCwJAAkAgAygCHCIBLQC+AiICQQN0KQOwkkkgATUCtAIgATEAvwJ+IhR+IhVC8P////8AVg0AIBVCB3xCA4inQQFqrUGAASABKAK4AiIBIAFBgAFPG61+IhVCIIinDQAgFaciAUH/AXEiBEEARyABQYB+cUGAAmoiBiABSXENACAGIAEgBBsiBkGBgAhJDQELQYCACCEGC0EBIQVB/////wchBAJAIAJBA3QpA+iSSSAUfiIUQvD/////AFYNACAUQgd8QgOIp0EBaiIBQf////8DSw0AIAFBAnQiAkFAcUFAayEIIAFBD3EiAUEAIAIgCEsbDQBBgIAIIAggAiABGyIBIAFBgIAITRshBAsgBgRAIAYQcSIFRQ0WCyADQRhqIANB0NEAakGoA/wKAAAgA0H1A2pCADcAACADQbQEakEANgIAIANBAToA3QQgA0EANgLUBCADQQA2AsgDIANCADcDwAMgA0IANwPwAyADQYCAgIB4NgKgBCADQgE3A5gEIANCADcDkAQgAyAFNgKMBCADIAY2AogEIANCfzcDgAQgA/0MAAAAAAAAAAAAAAAAAAAAAP0LAqQEIAMgBDYCuAQgAyADKAL4VDYC2AQgA0ECNgLcAyADQQA6ANwEIANBADYC0AQgA0KAgICAEDcDyAQgA0EANgLABAJAIAMoAiBBAkcEQEEnIQYgAy0A3gJBA3QpA6CTSSADNQLUAiIUIAMxAN8Cfn5C8f////8AVA0BDBkLQayYxwAQ3QkACyADKALYAiEFIANBEGogA0EYaiIBEIoFIAMtABBBA3QpA9iTSSADMQARIBR+fiIUQvD/////AFYNFyAFrSAUQgd8QgOIfiIVQiCIpyAVp0EASHINFyADQZDVAGogARCMASADLQCQVSIGQShHBEAgA0Gq1QBqIAMtAJNVOgAAIAMgAy8AkVU7AahVIAMoApRVIQUgAykCmFUhFAwY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nNPBABCMBwALIAMgCEGs08EAEIwHAAsgCCAHQbzTwQAQjAcACyAIIAdBzNPBABCMBwALIAggB0Hc08EAEIwHAAsgBiABQezSwQAQjAcACyAHIAFB3NLBABCMBwALIAQgAUHM0sEAEIwHAAsgACAAKAKYAiALIAAoAuwBIAAoAvABEKAFAkACQAJAIAAoAuQBIgEgCyAQbCICTwRAIABBADYC5AEgASACayEDIAVFDQEgASACRg0DIANFDQIgACgC4AEiASABIAJqIAP8CgAADAILDBALIAEgAkYNAQsgACADNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0FIABBADYCmAIgAEEFOgCcAgwFCyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0HC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAgD2UQwAAIMGSEIkEOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQngIgACgC5AEiAiAFSQ0WIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkGc0cEAEIwHAAsgASACQazRwQAQjAcACyACIARBvNHBABCMBwALIAIgBEHM0cEAEIwHAAsgAiAEQdzRwQAQjAcACyACIARB7NHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0EIABBADYCmAIgAEEEOgCcAgwECyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0GC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQpAIgACgC5AEiAiAFSQ0VIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkG80MEAEIwHAAsgASACQczQwQAQjAcACyACIARB3NDBABCMBwALIAIgBEHs0MEAEIwHAAsgAiAEQfzQwQAQjAcACyACIARBjNHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0DIABBADYCmAIgAEEDOgCcAgwDCyAAKALkASICIAAoApACIAAoApgCayILSQRAIAIiC0GAgARJDQULQYCABCALIAtBgIAETxsiCCAAKALwASIBSwRAIAggAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBSABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgQEQCADQQAgBPwLAAsgASACaiICQQFrIQEgBSACQQJ0akEEawUgAwtBADYCACAAIAFBAWo2AvABCwJAIAsEQEMAAIA/QwAAAEAgACwAngJBAE4bIRlBACEDQQAhAQJAAkADQCABIAAoAuQBIgJPDQIgASAAKALwASICTw0BIAAoAuwBIANqIBkgACgC4AEgAWotAACzQwAAf0OVlDgCACADQQRqIQMgCCABQQFqIgFHDQALIAAoAuwBIQ4gACgC8AEhAyAAIAAoApgCIAgQ6QRBACEBQQwhBiAIIQUgAyECA0ACQAJAIAAoAnwiBCABQQNqSwRAIAIEQCABIA5qKAIAIgpB////A3EhDCAKQYCAgIB4cSEEIApBgICA/AdxIgdBgICA/AdGBEAgBEEQdiAMQQ12ckGABEEAIAwbckGA+AFyIQQMBAsgBEEQdiEEIAdBgICAuARLDQIgB0GAgIDEA08EQCAKQQx2IApB/98AcUEAR3EgB0ENdiAMQQ12akGAgAFqIARyaiEEDAQLIAdBgICAmANJDQMgDEGAgIAEciIKQf4AIAdBF3YiDGt2IQcgCkEdIAxrIgx2QQFxBH8gB0EDIAx0QQFrIApxQQBHagUgBwsgBHIhBAwDCyADIANBuLPBABCMBwALIAEgAUEEaiAEQcizwQAQ6gcACyAEQYD4AXIhBAsgACgCeCAGaiAEQf//A3E2AgAgBkEQaiEGIAJBAWshAiABQQRqIQEgBUEBayIFDQALDAMLIAEgAkGs0MEAEIwHAAsgASACQZzQwQAQjAcACyAAIAAoApgCIAgQ6QQLIABBAToAwAECQAJAAkAgCCAAKALkASICTQRAIABBADYC5AEgAiAIayEBIAtFDQEgAiAIRg0DIAFFDQIgACgC4AEiAiACIAhqIAH8CgAADAILQQAgCCACQYSkxwAQ6gcACyACIAhGDQELIAAgATYC5AELIAAgACgCmAIgCGoiAjYCmAIgAiAAKAKQAkcNAiAAQQA2ApgCIABBAjoAnAIMAgsgC0UNAEEBIAAtAJ0CdLMhGUEAIQhBACEBQQAhAkEAIQMCQAJAAkACQANAIAFBA2oiBSAAKALkASIHSwRAIAEgBSAHQYzQwQAQ6gcACyADIAAoAvABIgdPDQEgACgC7AEgAmogACgC4AEgAWoiB0ECai0AACIGQRB0IActAAByIAdBAWotAABBCHRyIgdBgICAeHIgByAGwEEASBuyIBmVOAIAIAFBBmoiByAAKALkASIGSw0CIANBAWoiBSAAKALwASIGTw0DIAAoAuwBIAJqQQRqIAAoAuABIAFqIgVBBWotAAAiBkEQdCAFQQNqLQAAciAFQQRqLQAAQQh0ciIFQYCAgHhyIAUgBsBBAEgbsiAZlTgCACABQQlqIgUgACgC5AEiBksNBCADQQJqIgcgACgC8AEiBkkEQCAAKALsASACakEIaiAAKALgASABaiIBQQhqLQAAIgdBEHQgAUEGai0AAHIgAUEHai0AAEEIdHIiAUGAgIB4ciABIAfAQQBIG7IgGZU4AgAgAkEMaiECIANBA2ohAyAFIQEgCEEBaiIIIARJDQEMBgsLIAcgBkHcz8EAEIwHAAsgAyAHQbzPwQAQjAcACyAFIAcgBkH8z8EAEOoHAAsgBSAGQczPwQAQjAcACyAHIAUgBkHsz8EAEOoHAAsgACAAKAKYAiAEIAAoAuwBIAAoAvABEMIFAkACQAJAIAAoAuQBIgEgBCAMbCICTwRAIABBADYC5AEgASACayEDIAtFDQEgASACRg0DIANFDQIgACgC4AEiASABIAJqIAP8CgAADAILDAsLIAEgAkYNAQsgACADNgLkAQsgACAAKAKYAiAEaiICNgKYAiACIAAoApACRw0AIABBADYCmAIgAEEBOgCcAgwACwALIAlBATYCVCAJQbTOwQA2AlAgCUIBNwJcIAkgCUEsaq1CgICAgBCENwNAIAkgCUFAazYCWCAJQTBqIgAgCUHQAGoQsQYgABCOByEBDAQLIAktAA8hAQsgDSAUaiENAkACQAJAAkACQCABQf8BcQ4DAQIDAAsgCUEBNgJUIAlBmPfHADYCUCAJQgE3AlwgCSAJQQ9qrUKAgICAoASENwNAIAkgCUFAazYCWCAJQRBqIgAgCUHQAGoQsQYgABCOByEBDAYLIABBAToAqVQgDUEIaiANIAAoAswBIgIgDWsiAUEAIAEgAk0bQQdLGyENDAILIBEgFHJFDQELIA0gACgCzAEiA0kNAQsLIA1FDQAgDSAAKALMASICTQRAQQAhASAAQQA2AswBIAIgDUYNAiACIA1rIgIEQCAAKALIASIDIAMgDWogAvwKAAALIAAgAjYCzAEMAgtBACANIAJBhKTHABDqBwALQQAhAQsgCUHwAGokACABDwtBACABIANBhKTHABDqBwALQQAgAiABQYSkxwAQ6gcAC0EAIAUgAkGEpMcAEOoHAAvRXAMYfwR9AX4jAEHwAGsiCCQAAkACQAJAAkACQCAALQCgVEUEQCAIQdAAaiAAQbwBahC4BCAILQBQBEAgCCgCVCEBDAMLIAgtAFFBAUcNASAAQQE6AKBUCyAAKALEASIDRQ0AIABBmAJqIRUgCEE8aq1CgICAgBCEIR0gAEHUAWohFiAAQeABaiESIABB7AFqIRcgAEH4AWohGANAAkAgACgC0AEiBiAAKAKcVCIBayICQQAgAiAGTRtBgIAETwRAIAEhAgwBCyABIAFBgIACayICQQAgASACTxsiBGshAiABIARGBEAgACACNgKcVAwBCyABIAZNBEAgAgRAIAAoAswBIgEgASAEaiAC/AoAAAsgACgCxAEhAyAAIAI2ApxUDAELQQAgASAGQczVwQAQ6gcACwJAAkAgAyANTwRAIAhB0ABqIBUgACgCwAEgDWogAyANayAAKALMASAAKALQASACQQYQRCAIIAgtAFQiAToADyAIKAJQIRQgCCgCWCIRRQ0CIAAoApxUIgMgEWoiAiADTyACIAAoAtABIgZNcQ0BIAMgAiAGQdzVwQAQ6gcACyANIAMgA0Hs1cEAEOoHAAsgACgCzAEhBiAAKALUASAAKALcASICayARSQRAIBYgAiARQQFBARCkBSAAKALcASECCyARBEAgACgC2AEgAmogAyAGaiAR/AoAAAsgACACIBFqIgQ2AtwBIAAgACgCnFQgEWo2ApxUIAAoAuABQYCAgIB4RgRAAkAgBEEQSQ0AIAggACgC2AEiAigAACIDNgIcIANBzo7NggVHBEAgCEEBNgJkIAhBzMjBADYCYCAIQQE2AlQgCEHUzsEANgJQIAhBATYCXCAIIAhBHGqtQoCAgICQBIQ3A0AgCCAIQUBrNgJYIAhBIGoiACAIQdAAahCxBiAAEI4HIQEMBgsgCCACKAAEIgk2AiwgCUEEa0F9TwRAIABBADYC3AEgAiwADiEGIAItAA0hByACLQAMIQMgAigACCEFIARBEGsiBARAIAQEQCACIAJBEGogBPwKAAALIAAgBDYC3AELIAggAzYCPAJAIANBA00EQEGAgMAAEHEiAg0BAAsgCEEBNgJUIAhBoO3HADYCUCAIQgE3AlwgCCAdNwNoIAggCEHoAGo2AlggCEFAayIAIAhB0ABqELEGIAAQkAchAQwHCyAAIAY6AJYCIAAgBzoAlQIgAEEAOgCUAiAAQQA2ApACIAAgAzYCjAIgACAFNgKIAiAAIAk2AoQCIABBADYCgAIgAEKAgICAwAA3AvgBIABCAjcC8AEgAEIANwLoASAAIAI2AuQBIABBgIAQNgLgASAIIAZBgAFxQQd2OgBYIAggAzYCVCAIIAU2AlAgACAIQdAAahClBCAGQQBODQEgAEEBOgCcAQwBCyAIQQE2AlQgCEG0zsEANgJQIAhCATcCXCAIIAhBLGqtQoCAgIAQhDcDQCAIIAhBQGs2AlggCEEwaiIAIAhB0ABqELEGIAAQjgchAQwFCyAAKALgAUGAgICAeEYNAQsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AlAJBAWsOCQ0MCwoAAQYEEAILQQkhD0EGIQEgACgCjAIOBAQIBwYCCyAAQQlBByAALACWAkEAThs6AJQCDA8LIAAoAtwBQQZBCSAAKAKEAiIDQQFGGyIMbiICIAAoAogCIAAoApACayIGSQRAIAIiBkGAgARJDQ4LQYCABCAGIAZBgIAETxsiBUEDbCICIAAoAugBIgFLBH8gAiABayICIAAoAuABIAFrSwRAIBIgASACQQRBBBCkBSAAKALoASEBCyAAKALkASIEIAFBAnRqIQMgAkECTwR/IAJBAnRBBGsiCQRAIANBACAJ/AsACyABIAJqIgJBAWshASAEIAJBAnRqQQRrBSADC0EANgIAIAAgAUEBajYC6AEgACgChAIFIAMLQQFHDQsgBkUNDEEAIQlBACEBQQAhAkEAIQMDQCABQQJqIQcgACgC3AEiBCABQQFqTQRAIAEgByAEQazPwQAQ6gcACwJ/IAAoAtgBIAFqIgRBAWotAABBCHQiCiAELQAAciIEQf//AXFFBEAgBEEQdAwBCyAEQf8HcSEEIApBgIACcSELIApBgPgBcSIKQYD4AUYEQCALQRB0IgpBgICA/AdyIARFDQEaIARBDXQgCnJBgICA/gdyDAELIAtBEHQiCyAKQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2pyIAoNABogBCAEZ0EQayIEQf//A3FBCGp0Qf///wNxIAtBgICA2ANyIARBF3RrcgshBAJ/AkACQCAAKALoASIKIANLBEAgACgC5AEgAmogBDYCACABQQRqIgogACgC3AEiBEsNASAAKALYASABaiIEQQNqLQAAQQh0IgcgBEECai0AAHIiBEH//wFxRQRAIARBEHQMBAsgBEH/B3EhBCAHQYCAAnEhCyAHQYD4AXEiB0GA+AFGBEAgC0EQdCIHQYCAgPwHciAERQ0EGiAEQQ10IAdyQYCAgP4HcgwECyALQRB0IQsgB0UNAiAHQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogC3IMAwsgAyAKQdzOwQAQjAcACyAHIAogBEGcz8EAEOoHAAsgBCAEZ0EQayIEQf//A3FBCGp0Qf///wNxIAtBgICA2ANyIARBF3RrcgshBAJ/AkACQCADQQFqIgcgACgC6AEiC0kEQCAAKALkASACakEEaiAENgIAIAFBBmoiBCAAKALcASIHSw0BIAAoAtgBIAFqIgFBBWotAABBCHQiByABQQRqLQAAciIBQf//AXFFBEAgAUEQdAwECyABQf8HcSEBIAdBgIACcSEKIAdBgPgBcSIHQYD4AUYEQCAKQRB0IgdBgICA/AdyIAFFDQQaIAFBDXQgB3JBgICA/gdyDAQLIApBEHQhCiAHRQ0CIAdBDXRBgICA/ABxIAFBDXRyQYCAgMADaiAKcgwDCyAHIAtB7M7BABCMBwALIAogBCAHQYzPwQAQ6gcACyABIAFnQRBrIgFB//8DcUEIanRB////A3EgCkGAgIDYA3IgAUEXdGtyCyEBIANBAmoiByAAKALoASIKSQRAIAAoAuQBIAJqQQhqIAE2AgAgAkEMaiECIANBA2ohAyAEIQEgCUEBaiIJIAVJDQEMDgsLIAcgCkH8zsEAEIwHAAtB7NPBABCBCAALIAAoAtwBIgFBAnYiAiAAKAKIAiAAKAKQAmsiBEkEQCACIQQgAUGAgBBJDQwLQYCABCAEIARBgIAETxsiAiAAKAKAAiIBSwRAIAIgAWsiAyAAKAL4ASABa0sEQCAYIAEgA0EEQQQQpAUgACgCgAIhAQsgACgC/AEiCSABQQJ0aiEGIANBAk8EfyADQQJ0QQRrIgUEQCAGQQAgBfwLAAsgASADaiIDQQFrIQEgCSADQQJ0akEEawUgBgtBADYCACAAIAFBAWoiATYCgAILIAQEQEEAIQFBACEDAkADQCAAKALcASIGIAFBA2pNBEAgASABQQRqIAZBvNXBABDqBwALIAAoAoACIgYgA0sEQCAAKAL8ASABaiAAKALYASABaigAADYCACABQQRqIQEgAiADQQFqIgNGDQIMAQsLIAMgBkGs1cEAEIwHAAsgACgCgAIhAQsgACAAKAKQAiACIAAoAvwBIAEQtQQCQAJAAkAgACgC3AEiAyACQQJ0IgFPBEAgAEEANgLcASADIAFrIQYgBEUNASABIANGDQMgBkUNAiAAKALYASIDIAEgA2ogBvwKAAAMAgsMFAsgASADRg0BCyAAIAY2AtwBCyAAIAAoApACIAJqIgI2ApACIAIgACgCiAJHDQwgAEEANgKQAkEJIQELIAAgAToAlAIMCwsgACgC3AEiAUEBdiICIAAoAogCIAAoApACayIESQRAIAIhBCABQYCACEkNCgtBgIAEIAQgBEGAgARPGyICIAAoAvQBIgFLBEAgAiABayIDIAAoAuwBIAFrSwRAIBcgASADQQJBAhCkBSAAKAL0ASEBCyAAKALwASIJIAFBAXRqIQYgA0ECTwR/IANBAXRBAmsiBQRAIAZBACAF/AsACyABIANqIgNBAWshASAJIANBAXRqQQJrBSAGC0EAOwEAIAAgAUEBaiIBNgL0AQsgBARAQQAhA0ECIQECQANAIAAoAtwBIgYgAUkEQCABQQJrIAEgBkGc1cEAEOoHAAsgACgC9AEiBiADSwRAIAAoAvABIAFqQQJrIAAoAtgBIAFqQQJrLwAAOwEAIAFBAmohASACIANBAWoiA0YNAgwBCwsgAyAGQYzVwQAQjAcACyAAKAL0ASEBCyAAIAAoApACIAIgACgC8AEgARC0BAJAAkACQCAAKALcASIDIAJBAXQiAU8EQCAAQQA2AtwBIAMgAWshBiAERQ0BIAEgA0YNAyAGRQ0CIAAoAtgBIgMgASADaiAG/AoAAAwCCwwSCyABIANGDQELIAAgBjYC3AELIAAgACgCkAIgAmoiAjYCkAIgAiAAKAKIAkcNCiAAQQA2ApACIABBCDoAlAIMCgtBLSEPDAELQRghDwsgACgC3AEgD24iAiAAKAKIAiAAKAKQAmsiB0kEQCACIgdBgIAESQ0HC0GAgAQgByAHQYCABE8bIg4gD2wiDCAAKALoASIBSwRAIAwgAWsiAiAAKALgASABa0sEQCASIAEgAkEEQQQQpAUgACgC6AEhAQsgACgC5AEiBiABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgQEQCADQQAgBPwLAAsgASACaiICQQFrIQEgBiACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC6AELIA5BCWwhEwJAIAcEQCAOQeAAbCEKIA5BGGwhCUEBIQFBACEQQQAhBgJAA0AgBiEEIAEhBiAEIA9sIgEgACgC3AEiAk8NAwJAAkACQAJAIARBCWwiAyAAKALoASICTw0AIAAoAuQBIANBAnRqIAAoAtgBIAFqLQAAs0MAAADDkkMAAAA8lDgCACABQQNqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EDaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQZqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EGaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQFqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EBaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQRqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EEaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQdqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EHaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQJqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0ECaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQVqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EFaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQhqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EIaiIDIAAoAugBIgJPDQAgACgC5AEgA0ECdGogACgC2AEgBWotAACzQwAAAMOSQwAAADyUOAIAIAAoAowCQQFLDQEMAgsgAyACQfzUwQAQjAcACwJAAkAgAUEJaiIDIAAoAtwBIgVPDQAgBEEPbCATaiICIAAoAugBIgVPDQMgACgC5AEgAkECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAFBDGoiAyAAKALcASIFTw0AIAJBA2oiBCAAKALoASIFTwRAIAQhAgwECyAAKALkASAEQQJ0aiAAKALYASADai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEPaiIDIAAoAtwBIgVPDQAgAkEGaiIEIAAoAugBIgVPBEAgBCECDAQLIAAoAuQBIARBAnRqIAAoAtgBIANqLQAAs0MAAADDkkMAAAA8lDgCACABQRJqIgMgACgC3AEiBU8NACACQQlqIgQgACgC6AEiBU8EQCAEIQIMBAsgACgC5AEgBEECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAFBFWoiAyAAKALcASIFTw0AIAJBDGoiBCAAKALoASIFTwRAIAQhAgwECyAAKALkASAEQQJ0aiAAKALYASADai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEKaiIDIAAoAtwBIgVPDQAgAkEBaiIEIAAoAugBIgVPBEAgBCECDAQLIAAoAuQBIARBAnRqIAAoAtgBIANqLQAAs0MAAADDkkMAAAA8lDgCACABQQ1qIgMgACgC3AEiBU8NACACQQRqIgQgACgC6AEiBU8EQCAEIQIMBAsgACgC5AEgBEECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAFBEGoiAyAAKALcASIFTw0AIAJBB2oiBCAAKALoASIFTwRAIAQhAgwECyAAKALkASAEQQJ0aiAAKALYASADai0AALNDAAAAw5JDAAAAPJQ4AgAgAUETaiIDIAAoAtwBIgVPDQAgAkEKaiIEIAAoAugBIgVPBEAgBCECDAQLIAAoAuQBIARBAnRqIAAoAtgBIANqLQAAs0MAAADDkkMAAAA8lDgCACABQRZqIgMgACgC3AEiBU8NACACQQ1qIgQgACgC6AEiBU8EQCAEIQIMBAsgACgC5AEgBEECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAFBC2oiAyAAKALcASIFTw0AIAJBAmoiBCAAKALoASIFTwRAIAQhAgwECyAAKALkASAEQQJ0aiAAKALYASADai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEOaiIDIAAoAtwBIgVPDQAgAkEFaiIEIAAoAugBIgVPBEAgBCECDAQLIAAoAuQBIARBAnRqIAAoAtgBIANqLQAAs0MAAADDkkMAAAA8lDgCACABQRFqIgMgACgC3AEiBU8NACACQQhqIgQgACgC6AEiBU8EQCAEIQIMBAsgACgC5AEgBEECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAFBFGoiAyAAKALcASIFTw0AIAJBC2oiBCAAKALoASIFTwRAIAQhAgwECyAAKALkASAEQQJ0aiAAKALYASADai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEXaiIDIAAoAtwBIgVPDQAgAkEOaiICIAAoAugBIgVPDQMgACgC5AEgAkECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAAoAowCQQJNDQJBACEFIAohAwwBCyADIAVBzNTBABCMBwALAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQANAIAAoAtwBIgIgBSAQaiIBQRhqSwRAIAUgCWoiBCAAKALoASICTw0PIAAoAuQBIANqIAEgACgC2AFqQRhqLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBG2pNDQcgACgC6AEiAiAEQQNqTQ0OIAAoAuQBIANqQQxqIAEgACgC2AFqQRtqLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBHmpNDQYgACgC6AEiAiAEQQZqTQ0NIAAoAuQBIANqQRhqIAEgACgC2AFqQR5qLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBIWpNDQUgACgC6AEiAiAEQQlqTQ0MIAAoAuQBIANqQSRqIAEgACgC2AFqQSFqLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBJGpNDQQgACgC6AEiAiAEQQxqTQ0LIAAoAuQBIANqQTBqIAEgACgC2AFqQSRqLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBJ2pNDQMgACgC6AEiAiAEQQ9qTQ0KIAAoAuQBIANqQTxqIAEgACgC2AFqQSdqLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBKmpNDQIgACgC6AEiAiAEQRJqTQ0JIAAoAuQBIANqQcgAaiAAKALYASAQaiAFakEqai0AALNDAAAAw5JDAAAAPJQ4AgAgA0EEaiEDIAVBAWoiBUEDSQ0BDBALCyABQRhqDAYLIAFBKmoMBQsgAUEnagwECyABQSRqDAMLIAFBIWoMAgsgAUEeagwBCyABQRtqCyACQazUwQAQjAcACyAEQRJqIQQMBQsgBEEPaiEEDAQLIARBDGohBAwDCyAEQQlqIQQMAgsgBEEGaiEEDAELIARBA2ohBAsgBCACQbzUwQAQjAcACyAPIBBqIRAgCUEVaiEJIApB1ABqIQogBiAGIA5JIgJqIQEgAkUNAgwBCwsgAiAFQdzUwQAQjAcACyAAKALoASEBCwJAAkACQAJAAkACQCABIBNPBEAgACgC5AEhBiAAKAKQAiEEQQAhAkEEIQkCQCAAKAKMAiIKQQJJBEBBBCEQQQAhBQwBCyAOQRhsIgMgAUsNAiAOQQ9sIQUgBiATQQJ0aiEQIApBAkYNACABIAxJIAMgDEtyDQcgDCADayECIAYgA0ECdGohCQsgBwRAIAAgBCAOIAYgExDOAwsgBQRAIAAgBCAOIBAgBRDiAwsgAgRAIAAgBCAOIAkgAhDjAwsgACgC3AEiAiAMSQ0CIABBADYC3AEgAiAMayEBIAdFDQMgAiAMRg0FIAFFDQQgACgC2AEiAiACIAxqIAH8CgAADAQLQQAgEyABQZzUwQAQ6gcACyATIAMgAUGM1MEAEOoHAAtBACAMIAJBhKTHABDqBwALIAIgDEYNAQsgACABNgLcAQsgACAAKAKQAiAOaiICNgKQAiACIAAoAogCRw0JIABBADYCkAIgAEEGOgCUAgwJCyADIAwgAUH808EAEOoHAAsgASACQezUwQAQjAcACyAAKALcAUEEQQMgACgChAIiA0EDRhsiEG4iAiAAKAKIAiAAKAKQAmsiBkkEQCACIgZBgIAESQ0GCwJAAkACQAJAAkACQAJAAkACQAJAAkBBgIAEIAYgBkGAgARPGyIFQQJ0IgIgACgC6AEiAUsEfyACIAFrIgIgACgC4AEgAWtLBEAgEiABIAJBBEEEEKQFIAAoAugBIQELIAAoAuQBIgQgAUECdGohAyACQQJPBH8gAkECdEEEayIJBEAgA0EAIAn8CwALIAEgAmoiAkEBayEBIAQgAkECdGpBBGsFIAMLQQA2AgAgACABQQFqNgLoASAAKAKEAgUgAwtBA0cEQCAGRQ0LQQAhBEEAIQFBACECQQAhAwNAIAEgACgC3AEiCU8NAiABQQFqIgcgCU8NAyABQQJqIgcgCU8NBEMAAIA/IAAoAtgBIAFqIgktAACzQwAA/0KVQwAAgL+SIhkgGZQgCUEBai0AALNDAAD/QpVDAACAv5IiGiAalJIgCUECai0AALNDAAD/QpVDAACAv5IiGyAblJKTQwAAAAAQ4AghHCADIAAoAugBIglPDQUgACgC5AEgAmogGTgCACADQQFqIgkgACgC6AEiB08NBiAAKALkASACakEEaiAaOAIAIANBAmoiCSAAKALoASIHTw0HIAAoAuQBIAJqQQhqIBs4AgAgA0EDaiIJIAAoAugBIgdPDQggACgC5AEgAmpBDGogHJE4AgAgAUEDaiEBIAJBEGohAiADQQRqIQMgBEEBaiIEIAVJDQALDAsLIAZFDQpBACECQQEhCUEAIQMDQAJAAkACQAJAIAAoAtwBIgEgA0sEQCADQQFqIgQgAU8NASADQQJqIgcgAU8NAiADQQNqIgogAU8NAyAAKALYASADaiIBQQJqLQAAIQwgAUEDai0AACELIAEtAAAgAUEBai0AACEOIAj9DAAAAAAAAAAAAAAAAAAAAAD9CwNQIA5BCHRyIg8gDEEQdCALQRh0cnIhAUMAAAAAIRkCfwJAIAtBBnYiDEEDRwRAIAggD0H/A3GzQwCA/0OVQ/MENT+UIhmMIBkgDkECcRsiGTgCXCAZIBmUIRkgAUEKdiEBIAxBAkYNAQsgCCABQf8DcbNDAID/Q5VD8wQ1P5QiGowgGiABQYAEcRsiGjgCWCAZIBogGpSSIRkgAUEKdiIBIAxBAUYNARoLIAggAUH/A3GzQwCA/0OVQ/MENT+UIhqMIBogAUGABHEbIho4AlQgGSAaIBqUkiEZIAFBCnYLIQEgCEHQAGogDEECdGpDAACAPyALQcAATwR9IAggAUH/A3GzQwCA/0OVQ/MENT+UIhqMIBogAUGABHEbIho4AlAgGSAaIBqUkgUgGQuTIhmRQwAAAAAgGUMAAAAAXhs4AgAgAyAAKALoASIBSQ0EIAMgAUG80sEAEIwHAAsgAyABQfzRwQAQjAcACyAEIAFBjNLBABCMBwALIAcgAUGc0sEAEIwHAAsgCiABQazSwQAQjAcACyAAKALkASACaiAIKgJQOAIAIAQgACgC6AEiAU8NCiAAKALkASACakEEaiAIKgJUOAIAIAcgACgC6AEiAU8NCSAAKALkASACakEIaiAIKgJYOAIAIAogACgC6AEiAU8NCCAAKALkASACakEMaiAIKgJcOAIAIAJBEGohAiADQQRqIQMgBSAJSyAJQQFqIQkNAAsMCgsgASAJQfzSwQAQjAcACyAHIAlBjNPBABCMBwALIAcgCUGc08EAEIwHAAsgAyAJQazTwQAQjAcACyAJIAdBvNPBABCMBwALIAkgB0HM08EAEIwHAAsgCSAHQdzTwQAQjAcACyAKIAFB7NLBABCMBwALIAcgAUHc0sEAEIwHAAsgBCABQczSwQAQjAcACyAAIAAoApACIAUgACgC5AEgACgC6AEQ+wQCQAJAAkAgACgC3AEiASAFIBBsIgJPBEAgAEEANgLcASABIAJrIQMgBkUNASABIAJGDQMgA0UNAiAAKALYASIBIAEgAmogA/wKAAAMAgsMDwsgASACRg0BCyAAIAM2AtwBCyAAIAAoApACIAVqIgI2ApACIAIgACgCiAJHDQYgAEEANgKQAiAAQQU6AJQCDAYLIAAoAtwBIgFBA24iAiAAKAKIAiAAKAKQAmsiCUkEQCACIQkgAUGAgAxJDQULQYCABCAJIAlBgIAETxsiBEEDbCIGIAAoAugBIgFLBEAgBiABayICIAAoAuABIAFrSwRAIBIgASACQQRBBBCkBSAAKALoASEBCyAAKALkASIFIAFBAnRqIQMgAkECTwR/IAJBAnRBBGsiBwRAIANBACAH/AsACyABIAJqIgJBAWshASAFIAJBAnRqQQRrBSADC0EANgIAIAAgAUEBaiIBNgLoAQsCQAJAAkACQAJAAkACQAJAAkAgCQRAQQAhA0EAIQEDQCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAgD2UQwAAIMGSEIkEOAIAIAFBAmoiAiAAKALcASIFTw0GIAIgACgC6AEiBU8NByAAKALkASADakEIaiAAKALYASABakECai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgA0EMaiEDIAYgAUEDaiIBRw0ACyAAKALoASEBCyAAIAAoApACIAQgACgC5AEgARDJAyAAKALcASICIAZJDRUgAEEANgLcASACIAZrIQEgCUUNBiACIAZGDQggAUUNByAAKALYASICIAIgBmogAfwKAAAMBwsgASACQZzRwQAQjAcACyABIAJBrNHBABCMBwALIAIgBUG80cEAEIwHAAsgAiAFQczRwQAQjAcACyACIAVB3NHBABCMBwALIAIgBUHs0cEAEIwHAAsgAiAGRg0BCyAAIAE2AtwBCyAAIAAoApACIARqIgI2ApACIAIgACgCiAJHDQUgAEEANgKQAiAAQQQ6AJQCDAULIAAoAtwBIgFBA24iAiAAKAKIAiAAKAKQAmsiCUkEQCACIQkgAUGAgAxJDQQLQYCABCAJIAlBgIAETxsiBEEDbCIGIAAoAugBIgFLBEAgBiABayICIAAoAuABIAFrSwRAIBIgASACQQRBBBCkBSAAKALoASEBCyAAKALkASIFIAFBAnRqIQMgAkECTwR/IAJBAnRBBGsiBwRAIANBACAH/AsACyABIAJqIgJBAWshASAFIAJBAnRqQQRrBSADC0EANgIAIAAgAUEBaiIBNgLoAQsCQAJAAkACQAJAAkACQAJAAkAgCQRAQQAhA0EAIQEDQCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAFBAmoiAiAAKALc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IAEgDCAIazoAogcgASAnICiINwPQBgwPCyAMQf8BcUERSQ0OIAEgD0ENdkEPcUEEajYCyAYgASAPQQh2QR9xIglBAWo2AsQGIAEgD0EDdkEfcSIIQYECajYCwAZBBCAIQR1LDQMaIAlBHU0NAUEFDAMLIAEgDEEDazoAogcgASAnQgOINwPQBiAnQvgHg1ANAyABLQClB0UEQCABQQE6AKUHIAEoAvgGIQpBACIIRQRAIApB7J3EAEGAEPwKAAALIAhFBEAgCkGAEGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAIGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAMGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAQGtB7J3EAEGAEPwKAAALIAhFBEAgCkGA0ABqQeydxABBgBD8CgAACyAIRQRAIApBgOAAakHsncQAQYAQ/AoAAAsgCEUEQCAKQYDwAGpB7J3EAEGAEPwKAAALIAEoAvwGIQpBAEUEQCAKQeycxABBgAH8CgAACyAIRQRAIApBgAFqQeycxABBgAH8CgAACyAIRQRAIApBgAJqQeycxABBgAH8CgAACyAIRQRAIApBgANqQeycxABBgAH8CgAACyAIRQRAIApBgARqQeycxABBgAH8CgAACyAIRQRAIApBgAVqQeycxABBgAH8CgAACyAIRQRAIApBgAZqQeycxABBgAH8CgAACyAIRQRAIApBgAdqQeycxABBgAH8CgAACyAIRQRAIApBgAhqQeycxABBgAH8CgAACyAIRQRAIApBgAlqQeycxABBgAH8CgAACyAIRQRAIApBgApqQeycxABBgAH8CgAACyAIRQRAIApBgAtqQeycxABBgAH8CgAACyAIRQRAIApBgAxqQeycxABBgAH8CgAACyAIRQRAIApBgA1qQeycxABBgAH8CgAACyAIRQRAIApBgA5qQeycxABBgAH8CgAACyAIRQRAIApBgA9qQeycxABBgAH8CgAACyABQYCA/AM2AoAHIAFBBzoAhAcLIAFBBDoAowcMDQsgAUEAOgClByABQQI6AKMHIAEgDEERazoAogcgASAnQhGINwPQBgwMC0ECCzoAAUEBDBQLIAEgDEEKayIJOgCiByABICdCCogiJzcD0AYgCA0HIAlB/wFxQQpJDQADQCAnQv8Hg0ICUg0BIAEgCUEKayIPOgCi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QbyNyAAQ6wcAC545Azd/A30BfiMAQYABayIBJAACQAJAAkAgACgCaCICQf8fTQRAIAFBADYCQCABQQE2AjQgAUHwssEANgIwIAFCBDcCOCABQTBqEJIHIQMMAQsgASAAKAJkIgMtAAAiBDoABiABIAMtAAEiBjoAByAEQQEgBhsEQCABQQI2AjQgAUHAssEANgIwIAFCAjcCPCABQoCAgIDwBCI7IAFBB2qthDcDECABIDsgAUEGaq2ENwMIIAEgAUEIajYCOCABQTBqEJIHIQMMAQsgA0EEaigAACEqIAMoABAhDSABIAMvABQiBDYCHCAEQQNPBEAgAUEBNgI0IAFBmLLBADYCMCABQgE3AjwgASABQRxqrUKAgICAEIQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyABIANBJGooAAAiBkGAgID+eyAGQf////8HcRs2AiAgASADKAAoIgZBgICA/gMgBkH/////B3EbNgIkIARBKGxBrKrBAGohECACQYAga0EKdkEBaiEUQQAhBEEAIQIgKkEKdEGAIGoiKyEhAkADQAJAIAQgKkcEQCAUIARBAWoiBEcNASABQQA2AkAgAUEBNgI0IAFB1LHBADYCMCABQgQ3AjggAUEwahCSByEDDAQLIAFBADoAOCABIAI2AjQgASANNgIwIAAgAUEwahDpASAqRQ0CQYAgISFBASEuAkADQCAhIgRBgAhqIiEgACgCaCIDSwRAIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgACgCZCIGIARqIgIoABgiEUUEQCAQKAIkIRELIAMgBEEkckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEockkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEqckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAIoAAQhB0EAIQQgECgCCCAQKAIAIBAoAgRqaiACLwAoIiJBA00EfyAiQQJ0KAKkq0EFIAQLIBAoAhBsakEEaiI1rSAHrX4iO0IgiFBFBEAgAUEANgJAIAFBATYCNCABQdCrwQA2AjAgAUIE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IGooAAAgA0GUIGovAABsaiADQaQgaigAAEECdGoiIU0gA0GACGohAw0ACyABQQA2AkAgAUEBNgI0IAFB9LHBADYCMCABQgQ3AjggAUEwahCSByEDDAELQQAhAwsgAUGAAWokACADDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALnjkDN38DfQF+IwBBgAFrIgEkAAJAAkACQCAAKAJIIgJB/x9NBEAgAUEANgJAIAFBATYCNCABQfCywQA2AjAgAUIENwI4IAFBMGoQkgchAwwBCyABIAAoAkQiAy0AACIEOgAGIAEgAy0AASIGOgAHIARBASAGGwRAIAFBAjYCNCABQcCywQA2AjAgAUICNwI8IAFCgICAgPAEIjsgAUEHaq2ENwMQIAEgOyABQQZqrYQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyADQQRqKAAAISogAygAECENIAEgAy8AFCIENgIcIARBA08EQCABQQE2AjQgAUGYssEANgIwIAFCATcCPCABIAFBHGqtQoCAgIAQhDcDCCABIAFBCGo2AjggAUEwahCSByEDDAELIAEgA0EkaigAACIGQYCAgP57IAZB/////wdxGzYCICABIAMoACgiBkGAgID+AyAGQf////8HcRs2AiQgBEEobEGsqsEAaiEQIAJBgCBrQQp2QQFqIRRBACEEQQAhAiAqQQp0QYAgaiIrISECQANAAkAgBCAqRwRAIBQgBEEBaiIERw0BIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBAsgAUEAOgA4IAEgAjYCNCABIA02AjAgACABQTBqEIQCICpFDQJBgCAhIUEBIS4CQANAICEiBEGACGoiISAAKAJIIgNLBEAgAUEANgJAIAFBATYCNCABQdSxwQA2AjAgAUIENwI4IAFBMGoQkgchAwwGCyAAKAJEIgYgBGoiAigAGCIRRQRAIBAoAiQhEQsgAyAEQSRySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQShySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQSpySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIw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AtwCNwM4IAEoAtgCIgJFBEAgAUE4ahCPByECDAMLIAFBLGogAygCADYCACABIAEpAzg3AiQgASABKQPoAiIpNwMwIAEgAjYCIAJAAkAgKacoAkAiEARAIAFB/ABqIQQgAUHwAGohDCABQewCaiEiIAFB4AJqIQ0DQCABQQA6ALgCIAFBADYCsAIgAUHYAmogAUEgaiAdIAFBsAJqEKgBIAFB0ABqIgIgDUEIaigCADYCACABIA0pAwA3A0gCQAJAAkACQAJAAkACQAJAAkAgASkD2AIiKUIDUgRAIAQgIkG0AfwKAAAgDEEIaiACKAIANgIAIAwgASkDSDcDACABICk3A2gCQCABKAJwIAFB6ABqIClCAlEbIgIoAiwiB0EATgRAIAIoAighAgJAIAdFBEBBASELDAELIAcQcSILRQ0ICyAHBEAgCyACIAf8CgAACyABQegAahD8ASAHQQlJDQhB/NXBACAHIAtqQQlrQQkQ2wcNCSAHIQICQANAIAFBCGpBLyALIAIQqQNBASEdQQAhIiABKAIIQQFxRQRADAILAkAgByABKAIMIgJLBEAgAiALai0AAEEvRg0BCyACIAdNDQEMAgsLIAEgAjYCqAQgASALNgKkBCABIAFBpARqrUKAgICAIIQ3A7ACIAFCATcC5AIgAUECNgLcAiABQazWwQA2AtgCIAEgAUGwAmo2AuACIAFB6ABqIAFB2AJqEOwDIAEoAmgiAkGAgICAeEYNACABKQJsIilCIIinIQUgKachHSACISILIAFB2AJqIAFBIGogCyAHEMkEIAFB4ABqIAFB6AJqKAIANgIAIAEgASkD4AI3A1gCQCABKQPYAiIpQgNRBEAgAUHYAGoQjwchAgwBCyABQfwAaiABQewCakG0AfwKAAAgAUH4AGogAUHgAGooAgA2AgAgASApNwNoIAEgASkDWDcDcCABQQA2ArgCIAFCgICAgBA3ArACIAFB2AJqIAFB6ABqIAFBsAJqEJkBIAEoAtgCQQFGBEAgASkC3AIQzwchAiABKAKwAiIABEAgASgCtAIgAEEBEKIHCyABQegAahD8AQwBCyABKAKwAiEnIAEoArQCISggASgCuAIhAiABQegAahD8ASABQQA2ArgCIAEgAjYCtAIgASAoNgKwAiABQdgCaiABQbACahBGIAEoAtwCIQICQCABKALY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AEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALozADJ38EfQF+IwBBwAxrIgMkAAJAAkACQAJAAkACQAJAIAAoAtwEIgFBgYCAgHhGBEACQCAAKALwBCIKQQRJDQACQCAAKALsBCIELwAAIAQtAAJBEHRyQfDY5QNGBEAgCkELSQ0CIApBCmshAkEAIQECQANAIAEgBGpB+MPBAEELENsHRQ0BIAIgAUEBaiIBRw0ACyAKQf//A00NAyADQQA2AugHIANBATYC3AcgA0Hww8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMCQsgASAKSw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIOQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCkEBcUUEQCADKAKwASEIIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAOIAggBCACEJoBIAMoAtgHIQUgAygCtAwiDUGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiEHIAMoAsQKIQsgA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQkgA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIAk2AtwHIAMgCDYC2AcgAEH0BGogDhClBAwDCyADQZgGaiICIANBCGpBwAH8CgAAIANB2AdqIAIQaiADKALcByECIAMoAtgHIgVBgICAgHhGBEAgAkUNBAwKCyADQbADaiADQeAHakHkAvwKAAAgAygCxAohCyADKALICiEHIANBADoA4AcgAyAHNgLcByADIAs2AtgHIABB9ARqIANB2AdqEKUEQYCAgIB4IQ0MAgsgA0EIahCgAyAFIgINCAwCCyADQQA2AugHIANBATYC3AcgA0Goo8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMBwsgACgC8AQiBCABQQtqIghJDQIgAEEANgLwBCAEIAhHBEAgBCAIayIEBEAgACgC7AQiASABIAhqIAT8CgAA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2OUDRgRAIApBC0kNAiAKQQprIQJBACEBAkADQCABIARqQfjDwQBBCxDbB0UNASACIAFBAWoiAUcNAAsgCkH//wNNDQMgA0EANgLoByADQQE2AtwHIANB8MPBADYC2AcgA0IENwLgByADQdgHahCSByECDAkLIAEgCksNCiADQdgHaiAEIAEQ+wIgAykC3AchLCADKALYB0EBRgRAICwQzQchAgwJCyADQdgHaiAspyAsQiCIpxBNIAMoAtgHIQIgAygChAkiBEGAgICAeEYEQCACRQ0DDAkLIANBCGpBBHIgA0HYB2oiDkEEckGoAfwKAAAgA0HAAWogA0GQCWopAwAiLDcDACADIAMpA4gJNwO4ASADIAQ2ArQBIAMgAjYCCAJAICynIgpBAXFFBEAgAygCsAEhCCADKAKcASEEIANBmAZqIgIgA0H4AGoQwwMgDiAIIAQgAhCaASADKALYByEFIAMoArQMIg1BgICAgHhGDQEgAygC3AchAiADQbADaiADQeAHakHkAvwKAAAgAygCyAohByADKALECiELIANBoAJqIANBzApqQZAB/AoAACADKALcCyEJIANByAFqIANB4AtqQdQA/AoAACADKQO4DCEsIANBADoA4AcgAyAJNgLcByADIAg2AtgHIABB9ARqIA4Q4QMMAwsgA0GYBmoiAiADQQhqQcAB/AoAACADQdgHaiACEGogAygC3AchAiADKALYByIFQYCAgIB4RgRAIAJFDQQMCgsgA0GwA2ogA0HgB2pB5AL8CgAAIAMoAsQKIQsgAygCyAohByADQQA6AOAHIAMgBzYC3AcgAyALNgLYByAAQfQEaiADQdgHahDhA0GAgICAeCENDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoAvAEIgQgAUELaiIISQ0CIABBADYC8AQgBCAIRwRAIAQgCGsiBARAIAAoAuwEIgEgASAIaiAE/AoAAAsgACAENgLwBAsCQAJAAkAgACgC3ARBgICAgHhrDgIBAgALIAAQvgIMAQsgABC9AQsgACACNgIEIAAgBTYCACAAQQhqIANBsANqQeQC/AoAACAAIAc2AvACIAAgCzYC7AIgAEH0AmogA0GgAmpBkAH8CgAAIAAg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Sw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIJQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCEEBcUUEQCADKAKwASEHIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAJIAcgBCACEJoBIAMoAtgHIQUgAygCtAwiCkGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiELIAMoAsQKIQ4gA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQ0gA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIA02AtwHIAMgBzYC2AcgACAJEIQCDAMLIANBmAZqIgIgA0EIakHAAfwKAAAgA0HYB2ogAhBqIAMoAtwHIQIgAygC2AciBUGAgICAeEYEQCACRQ0EDAoLIANBsANqIANB4AdqQeQC/AoAACADKALECiEOIAMoAsgKIQsgA0EAOgDgByADIAs2AtwHIAMgDjYC2AcgACADQdgHahCEAkGAgICAeCEKDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoArAFIgQgAUELaiIHSQ0CIABBADYCsAUgBCAHRwRAIAQgB2siBARAIAAoAqwFIgEgASAHaiAE/AoAAAsgACAENgKwBQsgAEFAayEBAkACQAJAIAAoApwFQYCAgIB4aw4CAQIACyABEL4CDAELIAEQvQELIAAgAjYCRCAAIAU2AkAgAEHIAGogA0GwA2pB5AL8CgAAIAAgCzYCsAMgACAONgKsAyAAQbQDaiADQaACakGQAfwKAAAgACANNgLEBCAAQcgEaiADQcgBakHUAPwKAAAgACAsNwOgBSAAIAo2ApwFIAhBAXENACADQQhqEKADC0EAIQIgACgCnAUiAUGBgICAeEYNBQsgAEFAayESIAFBgICAgHhHDQEgACgCqAMiAiAAKAJITwRAIAAoArAFIQFB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DyADRQ0GIA8gDygCACgCABEDACADLQAQITggAygCDCE5IAJBgOHHAEELELkFIQMgBEEANgKoAyAEQQE2ApwDIARBqOHHADYCmAMgBEIENwKgAyAEQZgDahCVByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhOiADKAIMITtBCCEeQQghHyACQbDhxwBBBRC5BSICBEAgAigCDCE8IAItABAhHwsgBEEQakG14ccAQQUQuQUiAgRAIAIoAgwhPSACLQAQIR4LQQghGkEIISAgBEEQakG64ccAQQUQuQUiAgRAIAIoAgwhPiACLQAQISALIARBEGpBv+HHAEEFELkFIgIEQCACKAIMIT8gAi0AECEaC0EIISFBCCEiIARBEGpBxOHHAEEFELkFIgIEQCACKAIMIUAgAi0AECEiCyAEQRBqQcnhxwBBBRC5BSICBEAgAigCDCFBIAItABAhIQsgBEHIAGoiAkHO4ccAQQ8QuQUhAyAEQQA2AqgDIARBATYCnAMgBEGA4scANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgA0UNBSASIBIoAgAoAgARAwAgAy0AECFCIAMoAgwhQyACQYjixwBBDxC5BSEDIARBADYCqAMgBEEBNgKcAyAEQbjixwA2ApgDIARCBDcCoAMgBEGYA2oQlQchEiADRQ0FIBIgEigCACgCABEDACADLQAQIUQgAygCDCFFIAJBwOLHAEEMELkFIQMgBEEANgKoAyAEQQE2ApwDIARB7OLHADYCmAMgBEIENwKgAyAEQZgDahCVByESIANFDQUgEiASKAIAKAIAEQMAIAMtABAhRiADKAIMIUcgAkH04scAQQwQuQUhAiAEQQA2AqgDIARBATYCnAMgBEGg48cANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgAkUNBSASIBIoAgAoAgARAwAgAUE4aiEcIAItABAhSCACKAIMIUkgASgCYEGAgICAeEYNByABKAJYICNHDQggBEHUAWqtQoCAgIAQhCFKQQAhEgNAAkAgBCASNgLUASAEQQE2ApwDIARBiNDHADYCmAMgBEIBNwKkAyAEIEo3A9gBIAQgBEHYAWo2AqADIARB0ANqIARBmANqELEGIBwgBCgC1AMiAyAEKALYAxC5BSAEKALQAyECRQ0AIAIEQCADIAJBARCiBwsgBCgC1AFB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DUEBaiINNgJsDAALAAsgASACQe8BakH4v8EAEO4BIQQMBwsgAkEQaiAGIAMgBCADIAMgBEsbEPkBIAIoAhQhAyACKAIQIQVBFBBxIgRFDQMLIAQgBTYCDCAEQRg2AgAgBCADNgIQDAMLIAUgCBDrBSEEDAILIAJBCGogBSADIAQgAyADIARLGxD5ASACKAIMIQMgAigCCCEEQRQQcSIBRQ0AIAEgBDYCDCABQRg2AgAgACABNgIEIABBgICAgHg2AgAgASADNgIQDAULAAtBgICAgHghAyACKAJkIgVFDQAgAigCaCIGQQRrKAIAIgdBeHEiCSAFQShsIgVBBEEIIAdBA3EiBxtqSQ0EIAdBACAJIAVBJ2pLGw0FIAYQogILIAEgAS0AGEEBajoAGCACIAEQugMiBTYCvAEgAiANNgK4ASACIAQ2ArQBIAIgAzYCsAEgA0GAgICAeEcEQCAFRQ0CIAMEQCAEQQRrKAIAIgZBeHEiByADQShsIgNBBEEIIAZBA3EiBhtqSQ0HIAZBACAHIANBJ2pLGw0IIAQQogILIAUhBAwBCyAFRQ0AIAJBvAFqELEECyAEIAEQ6wUhASAAQYCAgIB4NgIAIAAgATYCBAwBCyAAIA02AgggACAENgIEIAAgAzYCAAsgAkHwAWokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvfFwIafwJ8IwBBsARrIgMkACADQgA3A5gBIANCADcDkAEgA0IANwOIASADQgA3A4ABIANCADcDeCADQgA3A3AgA0IANwNoIANCADcDYCADQgA3A1ggA0IANwNQIANCADcDSCADQgA3A0AgA0IANwM4IANCADcDMCADQgA3AyggA0IANwMgIANCADcDGCADQgA3AxAgA0IANwMIIANCADcDACADQgA3A7gCIANCADcDsAIgA0IANwOoAiADQgA3A6ACIANCADcDmAIgA0IANwOQAiADQgA3A4gCIANCADcDgAIgA0IANwP4ASADQgA3A/ABIANCADcD6AEgA0IANwPgASADQgA3A9gBIANCADcD0AEgA0IANwPIASADQgA3A8ABIANCADcDuAEgA0IANwOwASADQgA3A6gBIANCADcDoAEgA0IANwPYAyAD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AgBB3o7IAEEBIAEoAgQoAgwRAAAhAwwLCyABKAIAQZjMxABBESABKAIEKAIMEQAAIQMMCgtBASEDIAIgAEEBajYCDCABKAIAIgBBqczEAEERIAEoAgQiBSgCDCIEEQAADQkCQCABLQAKQYABcUUEQCAAQbuzxQBBASAEEQAADQsgAkEMaiABEMQERQ0BDAsLIABB24HCAEECIAQRAAANCiACQQE6ABMgAiAFNgIYIAIgADYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqEMQEDQogAigCIEHZgcIAQQIgAigCJCgCDBEAAA0KCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCQtBASEDIAEoAgAiBEG6zMQAQRkgASgCBCIGKAIMIgURAAANCCAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQogACABEKcERQ0BDAoLIARB24HCAEECIAURAAANCSACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQkgAigCIEHZgcIAQQIgAigCJCgCDBEAAA0JCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCAtBASEDIAEoAgAiBEHTzMQAQRogASgCBCIGKAIMIgURAAANByAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQkgACABEKcERQ0BDAkLIARB24HCAEECIAURAAANCCACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQggAigCIEHZgcIAQQIgAigCJCgCDBEAAA0ICyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBwtBASEDIAEoAgAiBEHtzMQAQRsgASgCBCIGKAIMIgURAAANBiAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEKcERQ0BDAgLIARB24HCAEECIAURAAANByACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCAC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LQAAQQNrDgUBAAAAAgALIAAgARDKAgwFCyAAKQMIIglC/////////weDIQogCUL///////////8Ag0L/////////9/8AWARAIAlCNIinIQAgCUIAUw0CIAJBsAJqDAMLQeydxgBB753GACAJQgBZIgAbQfOdxgAgClAiAxshBEEDQQQgABtBAyADGyEADAMLIAEoAgBB8ZLGAEEEIAEoAgQoAgwRAAAMAwsgAkEtOgCwAkEBIQggAkGxAmoLIQYCfwJAAkACQAJAAkACQAJAAkAgAEH/D3EiAEUgClBxRQRAIABBAkkgCkIAUnIhBCAKQoCAgICAgIAIhCAKIAAbIglCAoYhCiAJQgGDIQ8CQAJAAkAgAEG1CGtBzHcgABsiAEEASARAIAJBkAJqQYC8xQAgACAAQYWiU2xBFHYgAEF/R2siAGoiB0EEdCIDaykDACIJIApCAoQiCxDdBiACQYACakGIvMUAIANrKQMAIg0gCxDdBiACQfABaiACKQOYAiILIAIpA4ACfCIMIAIpA4gCIAsgDFatfCAAIAdBsdm1H2xBE3ZrQfwAakH/AHFBwABzIgMQoQcgAkGwAWogCSAKIARBf3OsfCILEN0GIAJBoAFqIA0gCxDdBiACQZABaiACKQO4ASILIAIpA6ABfCIMIAIpA6gBIAsgDFatfCADEKEHIAJB4AFqIAkgChDdBiACQdABaiANIAoQ3QYgAkHAAWogAikD6AEiCSACKQPQAXwiDSACKQPYASAJIA1WrXwgAxChByACKQPAASELIAIpA5ABIQkgAikD8AEhDCAAQQJJDQFBACEDIABBP0kNAgwFCyACQYABaiAAQcHoBGxBEnYgAEEDS2siB0EEdCIDKQPg5EUiCSAKQgKEIg0Q3QYgAkHwAGogA0Ho5MUAaikDACILIA0Q3QYgAkHgAGogAikDiAEiDCACKQNwfCIOIAIpA3ggDCAOVq18IAcgAGsgB0HPpsoAbEETdmpB/QBqQf8AcUHAAHMiABChByACQSBqIAkgCiAEQX9zrHwiDBDdBiACQRBqIAsgDBDdBiACIAIpAygiDCACKQMQfCIOIAIpAxggDCAOVq18IAAQoQcgAkHQAGogCSAKEN0GIAJBQGsgCyAKEN0GIAJBMGogAikDWCIJIAIpA0B8IgsgAikDSCAJIAtWrXwgABChByACKQMw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ACABIAA2ArADQdjmyABBKyABQbADakHY6MAAQbDwwAAQ4AYAC0G4u8kAQQA2AgBBtLvJAEEAOgAAIARBhAhPBEAgBBCbBwsgA0GECE8EQCADEJsHCyACQQRrKAIAIgNBeHEiBEHwAUH0ASADQQNxIgMbSQ0CIANBACAEQZQCTxsNACACEKICIAAgBjYCBCAAQQA2AgAgAUHgCWokAA8LC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAvFFwICfwF+IwBBQGoiAiQAIAEoAgQhAyABKAIAIQECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCACIALQAAQQFrDiMBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhsjHB0eHyAhIgALIAIgAEEEajYCBCACIABBCGo2AiAgAiAAQQxqNgIkIAIgAkEkaq1CgICAgLAMhDcDGCACQoCAgIDADCIEIAJBIGqthDcDECACIAQgAkEEaq2ENwMIIAJCAzcCNCACQQQ2AiwgAkHsncUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwrCyABQYyexQBBFiADKAIMEQAADCoLIAFBop7FAEElIAMoAgwRAAAMKQsgAUHHnsUAQR4gAygCDBEAAAwoCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGIn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwnCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkG8n8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwmCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkHsn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwlCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGcoMUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwkCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkHYoMUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwjCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGEocUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwiCyACIABBBGo2AiAgAiAAQQhqNgIkIAJCgICAgNAMIgQgAkEgaq2ENwMQIAIgBCACQSRqrYQ3AwggAkICNwI0IAJBAzYCLCACQcChxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDCELIAIgAEEEajYCICACIABBCGo2AiQgAkKAgICA0AwiBCACQSRqrYQ3AxAgAiAEIAJBIGqthDcDCCACQgI3AjQgAkEDNgIsIAJB/KHFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMIAsgAiAAQQFqNgIEIAIgAEEEajYCICACIABBCGo2AiQgAiACQQRqrUKAgICA4AyENwMYIAJCgICAgNAMIgQgAkEkaq2ENwMQIAIgBCACQSBqrYQ3AwggAkIDNwI0IAJBBDYCLCACQfSixQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDB8LIAIgAEECajYCICACIABBAWo2AiQgAiACQSBqrUKAgICA8AyENwMQIAIgAkEkaq1CgICAgMAIhDcDCCACQgI3AjQgAkEDNgIsIAJB6KPFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMHgsgAUGApMUAQSEgAygCDBEAAAwdCyACIABBAmo2AiAgAiAAQQFqNgIkIAIgAkEkaq1CgICAgPAMhDcDECACIAJBIGqtQoCAgIDgDIQ3AwggAkICNwI0IAJBAjYCLCACQdCkxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDBwLIAIgAEEBajYCJCACIAJBJGqtQoCAgIDgDIQ3AwggAkIBNwI0IAJBAjYCLCACQYilxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDBsLIAFBmKXFAEEYIAMoAgwRAAAMGgsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBxKXFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMGQsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJB6KXFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMGAsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBjKbFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMFwsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBsKbFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMFgsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJB5KbFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMFQsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBlKfFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMFAsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBwKfFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMEwsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJB6KfFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMEgsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBlKjFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMEQsgAUGkqMUAQRsgAygCDBEAAAwQCyABQdeoxQBBNyADKAIMEQAADA8LIAAtAAFBAWsOBwcICQoLDA0GCyABQbSsxQBBHyADKAIMEQAADA0LIAIgAEEBajYCJCACIAJBJGqtQoCAgICwDIQ3AwggAkIBNwI0IAJBAjYCLCACQfisxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDAwLIAIgAEEBajYCJCACIAJBJGqtQoCAgICwDIQ3AwggAkIBNwI0IAJBATYCLCACQZytxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDAsLIAIgAEEBajYCJCACIAJBJGqtQoCAgICwDIQ3AwggAkIBNwI0IAJBATYCLCACQcStxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDAoLIAFBzK3FAEEQIAMoAgwRAAAMCQsgAiAAQQFqNgIkQQEgAUG/qMUAQRggAygCDBEAAA0IGiACQQE2AiwgAkGg+McANgIoIAJCATcCNCACIAJBJGqtQoCAgICADYQ3AwggAiACQQhqNgIwIAEgAyACQShqEJ4JDAgLIAJBADYCOCACQQE2AiwgAkG0qcUANgIoIAJCBDcCMCABIAMgAkEoahCeCQwHCyACQQA2AjggAkEBNgIsIAJB5KnFADYCKCACQgQ3AjAgASADIAJBKGoQngkMBgsgAkEANgI4IAJBATYCLCACQYyqxQA2AiggAkIENwIwIAEgAyACQShqEJ4JDAULIAJBADYCOCACQQE2AiwgAkG0qsUANgIoIAJCBDcCMCABIAMgAkEoahCeCQwECyACQQA2AjggAkEBNgIsIAJB8KrFADYCKCACQgQ3AjAgASADIAJBKGoQngkMAwsgAkEANgI4IAJBATYCLCACQayrxQA2AiggAkIENwIwIAEgAyACQShqEJ4JDAILIAJBADYCOCACQQE2AiwgAkH8q8UANgIoIAJCBDcCMCABIAMgAkEoahCeCQwBCyACQQA2AjggAkEBNgIsIAJBrKzFADYCKCACQgQ3AjAgASADIAJBKGoQngkLIAJBQGskAAvOFgIHfQ5/IwBBIGsiDiQAIAAQowUgAEHAAWpBADoAACAAQgA3ArgBIAAgAhDQBAJAAkAgACgCEEEBRw0AIAAoAhhFDQACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkAgAkECdCINIhEgACgCfCISTQRAIAAoAogBIhMgEU8EQCAAKAJ4IRcgACgChAEhGCACRQ0NQQAgDWshGUEBIRVBFCEMQQMhDQJ/AkADQAJAAn8CQAJAAkACfwJAAkACQAJ/AkACQAJAAkACQAJAAkAgBCAMQRRrSwRAIAxBE2sgBE8NASAMQRJrIARPDQIgDUEDayIPIBFJDQMgDyENDAQLIAxBFGsMDwsgDEETawwKCyAMQRJrDAULQwAAf0MgA0EEaioCACIIiyIFQwAAgD9DAAD4QUMAAAAAIAMqAgAiCYsiBiAFIANBCGoqAgAiCosiCxDgCBDgCBCeBY5DAABwQZIiBSAFQwAAAABdGyIFIAVDAAD4QV4bELkH/AAiD0EPaxCwBkMAAH9DlSIFlSIHIAdDAAB/Q14bELkHIQcgFCAXaiIQQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgD0EbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAMQRFrIARPDQsgDEEQayAETw0HIAxBD2sgBE8NAyARIA1BAmtLBEBDAAB/QyADQRBqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EMaioCACIJiyIGIAUgA0EUaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIPQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAQQQRqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgD0EbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAMQQ5rIARPDQsgDEENayAETw0HIAxBDGsgBE8NAyARIA1BAWtLBEBDAAB/QyADQRxqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EYaioCACIJiyIGIAUgA0EgaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIPQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAQQQhqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgD0EbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAMQQtrIARPDQsgDEEKayAETw0HIAxBCWsgBE8NAyANIBFPDQJDAAB/QyADQShqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EkaioCACIJiyIGIAUgA0EsaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIPQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAQQQxqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgD0EbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAMQQhrIARPDR4gDEEHayAETw0aIAxBBmsgBE8NFiANIBlqIhBBA0cNDyANQQNrDBILIA1BAWshDQwBCyANQQJrIQ0LIA0gEUGovsEAEIwHAAsgDEEJawwCCyAMQQxrDAELIAxBD2sLIARBmL7BABCMBwALIAxBCmsMAgsgDEENawwBCyAMQRBrCyAEQYi+wQAQjAcACyAMQQtrDAILIAxBDmsMAQsgDEERawsgBEH4vcEAEIwHAAtDAAB/QyADQTRqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EwaioCACIJiyIGIAUgA0E4aioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIWQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAUIBhqIg9DAAB/QyAGIAWVIgYgBkMAAH9DXhsQuQf8ASAWQRt0QYCAgAhBACAJQwAAAABdG3JBgICAEEEAIAhDAAAAAF0bckGAgIAgQQAgCkMAAAAAXRtyciAH/AFBCHRyQwAAf0MgCyAFlSIFIAVDAAB/Q14bELkH/AFBEHRyNgIAIAxBBWsgBE8NDSAMQQRrIARPDQkgDEEDayAETw0FIBBBAkYNAUMAAH9DIANBQGsqAgAiCIsiBUMAAIA/QwAA+EFDAAAAACADQTxqKgIAIgmLIgYgBSADQcQAaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIWQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAPQQRqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgFkEbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAMQQJrIARPDQwgDEEBayAETw0IIAQgDE0NByAQQQFHBEBDAAB/QyADQcwAaioCACIIiyIFQwAAgD9DAAD4QUMAAAAAIANByABqKgIAIgmLIgYgBSADQdAAaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIQQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAPQQhqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgEEEbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAUQRBqIRQgDEEVaiEMIANB1ABqIQMgDUEEaiENIAIgFUsgFUEBaiEVDQEMEQsLIA1BAWsMAQsgDUECawsgEUHovcEAEIwHAAtBACARIBNBqL3BABDqBwALQQAgESASQbi+wQAQ6gcACyAMQQNrIQwMAQsgDEEGayEMCyAMIARB2L3BABCMBwALIAxBAWsMAgsgDEEEawwBCyAMQQdrCyAEQci9wQAQjAcACyAMQQJrDAILIAxBBWsMAQsgDEEIawsgBEG4vcEAEIwHAAsgDiAAKAIUIAFBAnQiAyABIAJqQQJ0IgIQ4QgiARC4CiIENgIAIA4gEjYCBCAEIBJHDQEgASAXIBIQ4AkgAUGECE8EQCABEJsHCyAOIAAoAhwgAyACEOEIIgAQuAoiATYCACAOIBM2AgQgASATRw0BIAAgGCATEOAJIABBhAhJDQAgABCbBwsgDkEgaiQADwsgDkEANgIIQQAgDiAOQQRqIA5BCGpB4PnEABD1BwALvhQBDn8jAEEgayIQJAACQAJAIAFBIUkEQCAAIQkgASEKDAELIAJBBGshESACQRBrIRICQAJAA0AgBEUEQCAAIAEgAiADQQEQ3QEMBQsgACABQQN2IghBHGxqIQYgACAIQQR0aiEJIARBAWshBCAQAn8gAUHAAE8EQCAAIAkgBiAIEMIGDAELIAAgBiAJIAAoAgAiCCAJKAIAIglJIgcgCSAGKAIAIgZJcxsgByAGIAhLcxsLIg0oAgAiBjYCBCANIABrQQJ2IQwCQAJAIAUEQCAFKAIAIAZPDQELIAEgA0sNAyACIAFBAnQiE2ohB0EAIQogACEGIAwhCANAIAAgCEEDayIJQQAgCCAJTxtBAnRqIg4gBksEQCANKAIAIQkDQCAKQQJ0IAIgB0EEayAGKAIAIgsgCUkiDxtqIAs2AgAgCiAPaiIKQQJ0IAIgB0EIayAGQQRqKAIAIgsgCUkiDxtqIAs2AgAgCiAPaiIKQQJ0IAIgB0EMayAGQQhqKAIAIgsgCUkiDxtqIAs2AgAgCiAPaiIKQQJ0IAIgB0EQayIHIAZBDGooAgAiCyAJSSIPG2ogCzYCACAKIA9qIQogBkEQaiIGIA5JDQALCyAAIAhBAnRqIgkgBksEQCANKAIAIQ4DQCAKQQJ0IAIgB0EEayIHIAYoAgAiCyAOSSIPG2ogCzYCACAKIA9qIQogBkEEaiIGIAlJDQALCyABIAhHBEAgB0EEayIHIApBAnRqIAYoAgA2AgAgBkEEaiEGIAEhCAwBCwsgCkECdCIOBEAgACACIA78CgAACyABIAprIQsCQCABIApGDQBBACEJIAtBBE8EQCAAIA5qIQYgEiATaiEHIAtBfHEiCSEIA0AgBiAH/QACAP0MAAAAAAAAAAAAAAAAAAAAAP0NDA0ODwgJCgsEBQYHAAECA/0LAgAgB0EQayEHIAZBEGohBiAIQQRrIggNAAsgCSALRg0BCyARIBMgCUECdCIIa2ohBiAAIAhqIA5qIQcgCSABayAKaiEIA0AgByAGKAIANgIAIAZBBGshBiAHQQRqIQcgCEEBaiIIDQALCyAKRQ0AIAEgCk8NASAQQQA2AhggEEEBNgIMIBBBiILIADYCCCAQQgQ3AhAgEEEIakH0lMEAEI0IAAsgASADSw0CIAIgAUECdCIOaiEHQQAhCCAAIQYDQCAAIAxBA2siBUEAIAUgDE0bQQJ0aiIJIAZLBEAgDSgCACEFA0AgCEECdCACIAdBBGsgBSAGKAIAIgpPIgsbaiAKNgIAIAggC2oiCEECdCACIAdBCGsgBSAGQQRqKAIAIgpPIgsbaiAKNgIAIAggC2oiCEECdCACIAdBDGsgBSAGQQhqKAIAIgpPIgsbaiAKNgIAIAggC2oiCEECdCACIAdBEGsiByAFIAZBDGooAgAiCk8iCxtqIAo2AgAgCCALaiEIIAZBEGoiBiAJSQ0ACwsgACAMQQJ0aiIFIAZLBEAgDSgCACEJA0AgCEECdCACIAdBBGsiByAJIAYoAgAiCk8iCxtqIAo2AgAgCCALaiEIIAZBBGoiBiAFSQ0ACwsgASAMRwRAIAIgCEECdGogBigCADYCACAGQQRqIQYgCEEBaiEIIAdBBGshByABIQwMAQsLIAhBAnQiDQRAIAAgAiAN/AoAAAsgASAIRg0FIAAgDWohCUEAIQwCQCABIAhrIgpBBE8EQCAOIBJqIQYgCSEHIApBfHEiDCEFA0AgByAG/QACAP0MAAAAAAAAAAAAAAAAAAAAAP0NDA0ODwgJCgsEBQYHAAECA/0LAgAgBkEQayEGIAdBEGohByAFQQRrIgUNAAsgCiAMRg0BCyARIAxBAnQiBWsgDmohBiAAIAVqIA1qIQcgDCABayAIaiEFA0AgByAGKAIANgIAIAZBBGshBiAHQQRqIQcgBUEBaiIFDQALCyABIAhJDQNBACEFIAkhACAKIgFBIUkNBAwBCyAAIA5qIAsgAiADIAQgEEEEahCVASAKIgFBIU8NAAsgACEJDAILAAsgCCABIAFBhJXBABDqBwALIApBAkkNACAKQQF2IQEgAQJ/IApBD00EQCAKQQdLBEAgAiAJQQhBDCAJKAIMIAkoAghJIgUbaiIIKAIAIgAgCSAJKAIEIgYgCSgCACIHT0ECdGoiAygCACIEIAAgBEsbNgIMIAIgCUEMQQggBRtqIgUoAgAiDCAJIAYgB0lBAnRqIgcoAgAiBiAGIAxLIgYbNgIAIAIgCCADIAUgBhsgACAESSIEGygCACIAIAcgBSADIAQbIAYbKAIAIgMgACADSxs2AgggAiAAIAMgACADSRs2AgQgAiABQQJ0IgBqIgMgACAJaiIAQQhBDCAAKAIMIAAoAghJIggbaiIMKAIAIgQgACAAKAIEIgcgACgCACINT0ECdGoiBSgCACIGIAQgBksbNgIMIAMgAEEMQQggCBtqIggoAgAiDiAAIAcgDUlBAnRqIg0oAgAiACAAIA5LIgcbNgIAIAMgDCAFIAggBxsgBCAGSSIEGygCACIAIA0gCCAFIAQbIAcbKAIAIgQgACAESRs2AgQgAyAAIAQgACAESxs2AghBBAwCCyACIAkoAgA2AgAgAiABQQJ0IgBqIAAgCWooAgA2AgBBAQwBCyAJIAIgAiAKQQJ0aiIAEMwCIAkgAUECdCIDaiACIANqIABBIGoQzAJBCAsiAEsEQCAAQQJ0IQQgAEEBaiEGIAAhBwNAIAYhAyACIAdBAnQiBWoiBiAFIAlqKAIAIgU2AgAgBkEEaygCACIHIAVLBEAgBCEGAn8DQCACIAZqIgggBzYCACACIAZBBEYNARogBkEEayEGIAUgCEEIaygCACIHSQ0ACyACIAZqCyAFNgIACyAEQQRqIQQgAyABIANLIgVqIQYgAyEHIAUNAAsLIAIgAUECdCIDaiEFIAogAWsiBCAASwRAIAMgCWohDCAAQQJ0IQggAEEBaiEGA0AgBiEDIAUgAEECdCIAaiIGIAAgDGooAgAiADYCACAGQQRrKAIAIgcgAEsEQCAIIQYCfwNAIAUgBmoiDSAHNgIAIAUgBkEERg0BGiAGQQRrIQYgACANQQhrKAIAIgdJDQALIAUgBmoLIAA2AgALIAhBBGohCCADIAMgBEkiB2ohBiADIQAgBw0ACwsgBUEEayEIIAIgCkECdEEEayIAaiEMIAAgCWohBANAIAkgBSgCACIGIAIoAgAiByAGIAdJIg0bNgIAIAQgDCgCACIAIAgoAgAiAyAAIANLGzYCACAEQQRrIQQgCUEEaiEJIAhBfEEAIAAgA0kbaiEIIAxBfEEAIAAgA08baiEMIAIgBiAHT0ECdGohAiAFIA1BAnRqIQUgAUEBayIBDQALIAhBBGohACAKQQFxBH8gCSACIAUgACACSyIBGygCADYCACAFIAAgAk1BAnRqIQUgAiABQQJ0agUgAgsgAEYgBSAMQQRqRnENABCACAALIBBBIGokAAv/EwIKfwZ+QQghBQJAIAFBBEkNACAALQAAIgIgAC0AAUcNACABrSEOIAAtAAMhByAALQACIQMCQAJAAkACQAJ+AkACQAJAAkACQAJAAkACQCACQckAaw4FAA0NDQENCyADQSpHIAdyDQwgAUF8cUEERg0BIAA1AAQhDAwICyADIAdBKkdyDQsgAUF8cUEERg0BIAAoAAQhBAwCC0GokMgAKQMAIg2nQf8BcSICQQRGDQYgAkEDRw0KIA1CIIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0JIAMgACACKAIIEKIHDAkLQaiQyAApAwAiDadB/wFxIgJBBEcNAQsgASAEQRh0IARBgP4DcUEIdHIgBEEIdkGA/gNxIARBGHZycq0iECAOIA4gEFYbpyICa0ECSQ0BIAAgAmovAAAhAkEEIQUMAgsgAkEDRw0HIA1CIIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0GIAMgACACKAIIEKIHDAYLQQAhAkGokMgAKQMAIg1CCIghDyANpyEFIA4gDUL/AYNCBFINARoLIBBCAnwLIQwgBUH/AXEiA0EERgRAQQghBUEAIQRBqJDIACkDACIPQv8BgyERIA9CCIghECAPpyEDIAJBCHQgAkGA/gNxQQh2ckH//wNxIQcDQCAEQf//A3EgB08NBgJ+AkAgASAMIA4gDCAOVBunIgJrQQJPBEAgACACai8AAEGBJEYhCEEEIQJCACENDAELQQAhCCAQIQ0gAyECIA4gEUIEUg0BGgsgDEICfAshDCACQf8BcSICQQRHBEAgAkEDRw0HIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0GIAMgACACKAIIEKIHDAYLAn4CQCABIAwgDiAMIA5UG6ciAmtBAk8EQCAAIAJqLwAAQYAGRiEJQQQhAkIAIQ0MAQtBACEJIBAhDSADIQIgDiARQgRSDQEaCyAMQgJ8CyEMIAJB/wFxIgJBBEcEQCACQQNHDQcgDUIYiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQYgAyAAIAIoAggQogcMBgsCfgJAIAEgDCAOIAwgDlQbpyICa0EETwRAIAAgAmooAABBgICACEYhCkEEIQJCACENDAELQQAhCiAQIQ0gAyECIA4gEUIEUg0BGgsgDEIEfAshDCACQf8BcSICQQRHBEAgAkEDRw0HIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0GIAMgACACKAIIEKIHDAYLAn4CQCABIAwgDiAMIA5UG6ciAmtBAk8EQCAAIAJqLwAAIQZBBCECQgAhDQwBC0EAIQYgECENIAMhAiAOIBFCBFINARoLIAxCAnwLIQwCQCACQf8BcUEERgRAIAEgDCAOIAwgDlQbp2tBAUsiAiADQf8BcSILQQRGcg0BIAtBA0cNCCAPQiCIpyIBKAIAIQMgAUEEaigCACICKAIAIgAEQCADIAARAwALIAIoAgQiAEUNByADIAAgAigCCBCiBwwHCyACQf8BcUEDRw0HIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0GIAMgACACKAIIEKIHDAYLIARBAWohBCAMQgJ8Ig0gDSAOIBFCBFEbIAIbIQwgCCAJcSAKcUUNAAtB/wEgBkEIdCAGQYD+A3FBCHZyQf//A3EiACAAQf8BTxtBAWsiAUH/AXFBB0sNBQwCC0EIIQUgA0EDRw0EIA9CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0DIAMgACACKAIIEKIHDAMLAn4CQCABIAwgDiAMIA5UG6ciAmtBAk8EQCAAIAJqLwAAIQJBBCEEDAELQQAhAkGokMgAKQMAIg1CCIghDyANpyEEIA4gDUL/AYNCBFINARoLIAxCAnwLIQwgBEH/AXEiA0EERw0BQQAhBEGokMgAKQMAIg9C/wGDIREgD0IIiCEQIA+nIQMgAkH//wNxIQcDQCAEQf//A3EgB08NBAJ+AkAgASAMIA4gDCAOVBunIgJrQQJPBEAgACACai8AAEGSAkYhCEEEIQJCACENDAELQQAhCCAQIQ0gAyECIA4gEUIEUg0BGgsgDEICfAshDCACQf8BcSICQQRHBEAgAkEDRw0FIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0EIAMgACACKAIIEKIHDAQLAn4CQCABIAwgDiAMIA5UG6ciAmtBAk8EQCAAIAJqLwAAQQNGIQlBBCECQgAhDQwBC0EAIQkgECENIAMhAiAOIBFCBFINARoLIAxCAnwLIQwgAkH/AXEiAkEERwRAIAJBA0cNBSANQhiIpyIBKAIAIQMgAUEEaigCACICKAIAIgAEQCADIAARAwALIAIoAgQiAEUNBCADIAAgAigCCBCiBwwECwJ+AkAgASAMIA4gDCAOVBunIgJrQQRPBEAgACACaigAAEEBRiEKQQQhAkIAIQ0MAQtBACEKIBAhDSADIQIgDiARQgRSDQEaCyAMQgR8CyEMIAJB/wFxIgJBBEcEQCACQQNHDQUgDUIYiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQQgAyAAIAIoAggQogcMBAsCfgJAIAEgDCAOIAwgDlQbpyICa0ECTwRAIAAgAmovAAAhBkEEIQJCACENDAELQQAhBiAQIQ0gAyECIA4gEUIEUg0BGgsgDEICfAshDCACQf8BcSICQQRHBEAgAkEDRw0FIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0EIAMgACACKAIIEKIHDAQLIAEgDCAOIAwgDlQbp2tBAUsiAiADQf8BcSILQQRGckUEQCALQQNHDQUgD0IgiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQQgAyAAIAIoAggQogcMBAsgBEEBaiEEIAxCAnwiDSANIA4gEUIEURsgAhshDCAIIAlxIApxRQ0AC0H/ASAGIAZB/wFPG0EBayIBQf8BcUEITw0DC0KAiIio4KDAgwMgAUEDdK1C+AGDiKchBQwCCyADQQNHDQEgD0IYiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQAgAyAAIAIoAggQogcLIAFBDEEEEKIHQQgPCyAFC4UVAiF/Dn0jAEEQayIRJAAgACABIAIQzAMCQAJAAkACQCADKAIEIhJFBEAgAygCDCEIDAELAkAgAygCDCIIRQ0AIAMoAhQiGEUNACADKAIcIhlFDQAgAygCJCIVRQ0AIAJFDQJDAAAAQEMAAIA/IAAtAJwBGyExIAJBDGwhGyAAKgKMASAAKgKIASIpkyEqIAAqAoQBIAAqAoABIiuTISwgACgCZCEaIAAoAmAhHCADKAIgIR0gAygCGCEeIAMoAhAhHyADKAIIISAgAygCACEhIAghEAJAAkACQAJAAkACQANAIBogBEEEaiILSQRAIAQgCyAaQYThwAAQ6gcACyAGIBJPDQYgEiAGayIFQQAgBSASTRsiBUEBRg0EIAVBAkYNBQJAAkACQCAQBEACQAJAIAYgGE8NAAJAAkAgFyAYakEBaw4CAAEDCyAGQQFqIQYMAQsgBkECaiEGCyAGIBhBtOHAABCMBwALAkACQCAGIBlPDQACQAJAIBcgGWpBAWsOAgABAwsgBkEBaiEGDAELIAZBAmohBgsgBiAZQZThwAAQjAcACyAEIBVPDQcCQCAVIARrIgVBACAFIBVNG0EBaw4DBAYHAAsgEyAhaiIFKAIAIQkgBUEIaigCACEUIAVBBGooAgAhCiAEICBqKgIAIBMgH2oiBCoCACEmIARBCGoqAgAhKCAEQQRqKgIAIScgEyAeaiIEKgIAIS0gBEEIaioCACEuIARBBGoqAgAhLyAWIB1qIgQqAgAhJSARIARBBGoqAgA4AgQgESAlOAIAIBEgBEEIaikCADcCCEMAAH9DQwAAAAAgJyArkyAslUMAAH9DlCIlICVDAAAAAF0bIiUgJUMAAH9DXhsQuQciMEMAAAAAYCEiIDD8ASEjQwAAf0NDAAAAACAoICuTICyVQwAAf0OUIiUgJUMAAAAAXRsiJSAlQwAAf0NeGxC5ByIoQwAAAABgISQgKPwBIQxDAAB/Q0MAAAAAICYgK5MgLJVDAAB/Q5QiJSAlQwAAAABdGyIlICVDAAB/Q14bELkHISYgMZUhJyAJQf///wNxIQUgCUGAgICAeHEhBCAJQYCAgPwHcSIHQYCAgPwHRgRAIARBEHYgBUENdnJBgARBACAFG3JBgPgBciENDAMLIARBEHYhDSAHQYCAgLgESw0BIAdBgICAxANPBEAgCUEMdiAJQf/fAHFBAEdxIAdBDXYgBUENdmpBgIABaiANcmohDQwDCyAHQYCAgJgDSQ0CIAVBgICABHIiCUH+ACAHQRd2IgVrdiEEIAlBHSAFayIFdkEBcQR/IARBAyAFdEEBayAJcUEAR2oFIAQLIA1yIQ0MAgsgCCAIQfTgwAAQjAcACyANQYD4AXIhDQsgCkH///8DcSEFIApBgICAgHhxIQQCQCAKQYCAgPwHcSIHQYCAgPwHRwRAIARBEHYhDiAHQYCAgLgETQRAIAdBgICAxANPBEAgCkEMdiAKQf/fAHFBAEdxIAdBDXYgBUENdmpBgIABaiAOcmohDgwDCyAHQYCAgJgDSQ0CIAVBgICABHIiCUH+ACAHQRd2IgVrdiEEIAlBHSAFayIFdkEBcQR/IARBAyAFdEEBayAJcUEAR2oFIAQLIA5yIQ4MAgsgDkGA+AFyIQ4MAQsgBEEQdiAFQQ12ckGABEEAIAUbckGA+AFyIQ4LIBRB////A3EhBSAUQYCAgIB4cSEEAkAgFEGAgID8B3EiB0GAgID8B0cEQCAEQRB2IQ8gB0GAgIC4BE0EQCAHQYCAgMQDTwRAIBRBDHYgFEH/3wBxQQBHcSAHQQ12IAVBDXZqQYCAAWogD3JqIQ8MAwsgB0GAgICYA0kNAiAFQYCAgARyIglB/gAgB0EXdiIFa3YhBCAJQR0gBWsiBXZBAXEEfyAEQQMgBXRBAWsgCXFBAEdqBSAECyAPciEPDAILIA9BgPgBciEPDAELIAVBDXYgBEEQdnJBgARBACAFG3JBgPgBciEPCyAREJ0EIQpBACEJQQAhBSAtQwAAAABfRQRAQf8BQwAAgD9DAAAAACAtEMYFICmTICqVIiUgJUMAAAAAXRsiJSAlQwAAgD9eG0MAAH5DlBC5ByIl/AFBACAlQwAAAABgGyAlQwAAf0NeG0EBakH/AXEhBQsgL0MAAAAAX0UEQEH/AUMAAIA/QwAAAAAgLxDGBSApkyAqlSIlICVDAAAAAF0bIiUgJUMAAIA/XhtDAAB+Q5QQuQciJfwBQQAgJUMAAAAAYBsgJUMAAH9DXhtBAWpB/wFxQQh0IQkLQQAhBCAuQwAAAABfRQRAQf8BQwAAgD9DAAAAACAuEMYFICmTICqVIiUgJUMAAAAAXRsiJSAlQwAAgD9eG0MAAH5DlBC5ByIl/AFBACAlQwAAAABgGyAlQwAAf0NeG0EBakH/AXFBEHQhBAsgFiAcaiIHQQRqIA1B//8DcSAOQRB0cjYCACAHQQxqIAUgCkEIdEGAgIB4cXIgBCAJcmo2AgAgB0EIaiAPQf//A3EgCkEQdHJB////B3EgCkGA/v8HcUEIdkEYdHI2AgAgB0H/ASAjQQAgIhsgMEMAAH9DXhtBCHRB/wEgDEEAICQbIChDAAB/Q14bQRB0ckH/ASAm/AFBACAmQwAAAABgGyAmQwAAf0NeG3JB/wFDAAB/Q0MAAAAAICdDAAB/Q5QiJSAlQwAAAABdGyIlICVDAAB/Q14bELkHIiX8AUEAICVDAAAAAGAbICVDAAB/Q14bQRh0cjYCACAWQRBqIRYgF0EDayEXIAZBA2ohBiAQQQFrIRAgCyEEIBsgE0EMaiITRw0BDAoLCyAEQQFqIQQMAgsgBEECaiEEDAELIARBA2ohBAsgBCAVQaThwAAQjAcACyAGQQFqIQYMAQsgBkECaiEGCyAGIBJBxOHAABCMBwALIAAgASACIAMoAgAgEhCjAgsgCARAIAMoAgghBCAAIAEgAhDMAyACBEBDAAAAQEMAAIA/IAAtAJwBQQFxGyEnIAJBAnQhECAAKAJkIQUgACgCYCEGIAghCwNAIAxBA2ogBU8NBCALRQ0FIAZBA2pB/wFDAAB/Q0MAAAAAIAQgDGoqAgAgJ5VDAAB/Q5QiJSAlQwAAAABdGyIlICVDAAB/Q14bELkHIiX8AUEAICVDAAAAAGAbICVDAAB/Q14bOgAAIAZBEGohBiALQQFrIQsgECAMQQRqIgxHDQALCyAAQQE6ALgBCyADKAIUIggEQCAAIAEgAiADKAIQIAgQlgQLIAMoAhwiCARAIAAgASACIAMoAhggCBDJAwsgAygCJCIIRQ0AIAAgASACIAMoAiAgCBD7BAsgAEEBOgC4ASADKAI8IQUgAygCOCEQIAMoAjQhBCADKAIwIQsgAygCLCIIBEAgACABIAIgAygCKCAIEM4DCyAEBEAgACABIAIgCyAEEOIDCyAFBEAgACABIAIgECAFEOMDCyADKAJEIggEQCAAIAEgAiADKAJAIAgQtAQLIAMoAkwiCARAIAAgASACIAMoAkggCBC1BAsgEUEQaiQADwsgDCAMQQRqIAVBuNvAABDqBwALIAggCEGo28AAEIwHAAvXFAIWfwF7IwBB0ABrIgQkACAEQRBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAEIBj9CwMAIAEoAgQiCiABKAIIIglBAXQiBmohEyAKIQMCQAJAAkACQAJAAkACQAJAA0AgAyATRwRAIAMvAQAhAiADQQJqIQMgAkUNASACQRBPDQIgBCACQQF0aiICIAIvAQBBAWo7AQAgCEEBaiEIDAELCwJAAkACQAJAAkAgCA4CAwABCyAJBEBBACECIAohAwNAIAMvAQANAyACQQFqIQIgA0ECaiEDIAZBAmsiBg0ACwtB+O3EABDdCQALQRAhBSAEQTBqIBj9CwMAIAQgGP0LAyAgBC8BHiILBEBBDyEDDAYLIAQvARwEQEEPIQVBDiEDDAYLIAQvARoEQEEOIQVBDSEDDAYLIAQvARgEQEENIQVBDCEDDAYLIAQvARYEQEEMIQVBCyEDDAYLIAQvARQEQEELIQVBCiEDDAYLIAQvARIEQEEKIQVBCSEDDAYLIAQvARAEQEEJIQVBCCEDDAYLIAQvAQ4EQEEIIQVBByEDDAYLIAQvAQwEQEEHIQVBBiEDDAYLIAQvAQoEQEEGIQVBBSEDDAYLIAQvAQgEQEEFIQVBBCEDDAYLIAQvAQYEQEEEIQVBAyEDDAYLIAQvAQRFDQJBAyEFQQIhAwwFCyAAIAI7AQQgAEGAgICAeDYCAAwGCyAAQYGAgIB4NgIAIABBDjoABAwFCyAELwECIgJFDQFBASEDIAJBAXQhAkECIQUMAwsgAkEQQZjvxAAQjAcAC0GI7sQAEN0JAAsgBCAELwECQQF0IgI7ASQgBC8BBCACakEBdCECIANBAmoiB0EERgRAQQIhAwwBCyAEIAI7ASYgBC8BBiACakEBdCECIAdBBUYEQEEDIQMMAQsgBCACOwEoIAQvAQggAmpBAXQhAiAHQQZGBEBBBCEDDAELIAQgAjsBKiAELwEKIAJqQQF0IQIgB0EHRgRAQQUhAwwBCyAEIAI7ASwgBC8BDCACakEBdCECIAdBCEYEQEEGIQMMAQsgBCACOwEuIAQvAQ4gAmpBAXQhAiAHQQlGBEBBByEDDAELIAQgAjsBMCAELwEQIAJqQQF0IQIgB0EKRgRAQQghAwwBCyAEIAI7ATIgBC8BEiACakEBdCECIAdBC0YEQEEJIQMMAQsgBCACOwE0IAQvARQgAmpBAXQhAiAHQQxGBEBBCiEDDAELIAQgAjsBNiAELwEWIAJqQQF0IQIgB0ENRgRAQQshAwwBCyAEIAI7ATggBC8BGCACakEBdCECIAdBDkYEQEEMIQMMAQsgBCACOwE6IAQvARogAmpBAXQhAiAHQQ9GBEBBDSEDDAELIAQgAjsBPCAELwEcIAJqQQF0IQIgB0EQRgRAQQ4hAwwBCyAEIAI7AT4gAiALakEBdCECCwJ/AkACQCACQf//A3FBAiADdEH+/wNxRgRAIAVBCiADIANBCk8bIgxBAWoiA0kNASADIAVGDQJBACECQQAhCAJAIAUgA2siB0EITwRAIAQgA0EBdGohAyAHQRhxIgghAgNAIAP9AAEAIBj9jgEhGCADQRBqIQMgAkEIayICDQALIBggGCAY/Q0ICQoLDA0ODwABAAEAAQAB/Y4BIhggGCAY/Q0EBQYHAAEAAQABAAEAAQAB/Y4BIhggGCAY/Q0CAwABAAEAAQABAAEAAQAB/Y4B/RkAIQIgByAIRg0BCyAIQQF0IAxBAXRqIARqQQJqIQMgCCAMaiAFa0EBaiEFA0AgAy8BACACaiECIANBAmohAyAFQQFqIgUNAAsLIAJB//8DcSIDRQ0CIANBBHQQcSIIRQ0FIANBAXQMAwsgAEGBgICAeDYCACAAQQ46AAQMAwsgAyAFQRBBmO7EABDqBwALQQQhCEEACyEDIARBADYCTCAEIAg2AkggBCADNgJEQQQgDHQiDxBxIg1FDQEgDUEEayIWLQAAQQNxRSAPRXJFBEAgDUEAIA/8CwALQQEgDHQiDkEBayEUAkAgCUUNACAKQQJqIQIgBkECa0EBdkEBaiEXQQAhB0EAIQNBASEFIAohCUEAIQsCQANAAkAgCyEQIAkhBiACIQkgBSELAkAgBi8BACIGRQ0AAkAgBkEPTQRAIARBIGogBkEBdGoiAiACLwEAIhJBAWo7AQAgEkEIdCASQQh2ciICQQR2QY8ecSACQY8ecUEEdHIiAkECdkGz5gBxIAJBs+YAcUECdHIiAkEBdkHVqgFxIAJB1aoBcUEBdHIhAgJAAkACQCAGIAxLBEAgDiACQQAgBmtBD3F2IBRxIgJNDQEgDSACQQJ0aiICKAIAIgUNAiACIANBAWoiBzYCACAEKAJEIANGBH8gBEHEAGpByO7EABD5BSAEKAJIBSAICyADQQN0akECOwEAIAQgBzYCTCAHIQIMAwsgDiACQRAgBmt2IgVNDQUgBkEQdCAQciEQQQEgBnQiBkECdCERIA0gBUECdGohAgNAIAIgEDYCACACIBFqIQIgBSAGaiIFIA5JDQALDAULIAIgDkG47sQAEIwHAAsgAyECIAVBAWshAwsgBiAMayIRQf//A3EiBUEBayIGQQAgBSAGTxshBgNAIAYhBQJAAkACQCACIANLBEAgBCgCSCIIIANBA3RqIgYvAQBBAWsOAgoCAQsgAyACQejuxAAQjAcACyAGKAIEIRUMAQsgBkEAOwEAIAYgAiADayIVNgIEIAQoAkQiByACRgRAIARBxABqQfjuxAAQ+QUgBCgCSCEIIAQoAkQhBwsgCCACQQN0akECOwEAIAQgAkEBaiIGNgJMIAYgB0YEfyAEQcQAakGI78QAEPkFIAQoAkgFIAgLIAZBA3RqQQI7AQAgBCACQQJqIgc2AkwgByECCyAFQQFrIQYgEiARQQFrdkEBcSADaiAVaiEDIAUhESAFQf//A3ENAAsMAQsgBkEQQajuxAAQjAcACyADIAdPDQEgBCgCSCIIIANBA3RqIgMvAQBBAkkNAyADIBA7AQIgA0EBOwEAIAchAwsgC0EBaiEFIAlBAkEAIAkgE0cbaiECIAsgF0cNAQwDCwsgAyAHQdjuxAAQjAcACyAAQYGAgIB4NgIAIABBDjoABAJAIBYoAgAiAEF4cSIDQQRBCCAAQQNxIgAbIA9qTwRAIABBACADIA9BJ2pLGw0GIA0QogIgBCgCRCIARQ0DIAhBBGsoAgAiA0F4cSICIABBA3QiAEEEQQggA0EDcSIDG2pJDQUgA0EAIAIgAEEnaksbDQEgCBCiAgwDCwwECwwECyAAIAQpAkQ3AgAgACAUOwEYIAAgDjYCFCAAIA02AhAgACAONgIMIABBCGogBEHMAGooAgA2AgALAkAgASgCACIABEAgCkEEaygCACIBQXhxIgMgAEEBdCIAQQRBCCABQQNxIgEbakkNAyABQQAgAyAAQSdqSxsNASAKEKICCyAEQdAAaiQADwsMAgsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvZFQIPfwN+IwBBMGsiBSQAIAIoAgAiDyACKAIIIg1rIQYCQAJAIAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAqgBQQFrDgIBAgALAkACQEElEHEiAUUNACABQR1qQZ2dxwApAAA3AAAgAUEQakGQnccA/QAAAP0LAAAgAUGAnccA/QAAAP0LAABBDBBxIgJFDQAgAkElNgIIIAIgATYCBCACQSU2AgBBDBBxIgFFDQAgAUEoOgAIIAFB7IrBADYCBCABIAI2AgAgBSABrUIghkIDhDcCAAwBCwALDAILIAZBIE8EQCABKQO4ASESIA8hBCANIQYMCAsgBUEQav0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgBf0MAAAAAAAAAAAAAAAAAAAAAP0LAwACfyABKQO4ASISUARAQgAhEiANDAELIAEoAsABIggoAgAgCCkDCCITIAgoAgQiBK0iFCATIBRUG6dqIQcCQCAEQv////8PIBMgE0L/////D1obp2siA0EAIAMgBE0bIgRCICASIBJCIFobpyIDIAMgBEsbIgRBAUYEQCAFIActAAA6AAAMAQsgBEUNACAFIAcgBPwKAAALIAEgEiAErSIUfSISNwO4ASAIIBMgFHw3AwggDSAEIAZNDQAaIAIgDSAEQQFBARCkBSACKAIICyEIIAQEQCACKAIEIAhqIAUgBPwKAAALIAIgBCAIaiIGNgIIIARFBEBBACEDDAsLIAIoAgAhBAwHCyABKAKsASEHIA8hASANIQgCfwJAIAZBIE8NACAFIAcgAhCPBAJAQQACfyAFLQAAQQRGBEAgBSgCBAwBCyAFKQMAIhNCIIghFCATQv8Bg0IEUg0BIBSnC0UNAhogAigCACEBIAIoAgghCAwBCyATQoB+gyESDAYLQYDAACEJA0ACQCABIA9HIAEgCEdyRQRAIAUgByACEI8EAkACQAJ/IAUtAABBBEYEQCAFKAIEDAELIAUpAwAiE0IgiCEUIBNC/wGDQgRSDQEgFKcLDQEgAigCCCEIDAMLIBNCgH6DIRIMCQsgAigCCCEIIAIoAgAhAQsCQCABIAhHBEAgASAIayEMIAIoAgQhBAwBC0IBIRNCgMwAIRJCACEUIAFBIGoiBCABQQF0IgYgBCAGSxsiBkEASA0IIAUgAQR/IAUgATYCCCAFIAIoAgQ2AgBBAQVBAAs2AgQgBUEkakEBIAYgBRCFByAFKAIkQQFGDQggBSgCKCEEIAIgBjYCACACIAQ2AgQgBiABayEMIAYhAQsgBCAIaiEOIAkgDCAJIAxJGyIGIANrIgQEQCADIA5qQQAgBPwLAAsgBSAHIA4gBhDkAgJAIAUtAABBBEYNACAFKQMAIhJCIIgiFKchBEIAIRMCQAJAAkACQAJAIBKnQf8BcUEBaw4EAgEABAwLIAQtAAhBI0YNAgwKCyAELQAIQSNGDQFCAiETDAoLIBJCgP4Dg0KAxgBRDQBCASETDAkLAn8gEkL/AYNCA1EEQCAEKAIAIQsgBEEEaigCACIDKAIAIgoEQCALIAoRAwALIAMoAgQiAwRAIAtBBGsoAgAiCkF4cSIQQQRBCCAKQQNxIgobIANqTwRAIApBACAQIANBJ2pLGw0VQQAMAwsMEwtBAQwBC0ECCyEDA0ACQAJAAkACQAJAAkACQCADDgIAAQILIAsQogIMBAsgBEEEaygCACIDQXhxIgpBEEEUIANBA3EiAxtJDRYgA0EAIApBNE8bDRcgBBCiAgwBCyAFIAcgDiAGEOQCIAUtAABBBEYNBiAFKQMAIhJCIIgiFKchBAJAAkACQAJAIBKnQf8BcUEBaw4EAAECCRELIBJCgP4Dg0KAxgBRDQJCASETDBALIAQtAAhBI0YNAUICIRMMDwsgBC0ACEEjRw0NCyASQv8Bg0IDUQ0BC0ECIQMMAwsgBCgCACELIARBBGooAgAiAygCACIKBEAgCyAKEQMACyADKAIEIgMNAQtBASEDDAELIAtBBGsoAgAiCkF4cSIQQQRBCCAKQQNxIgobIANqSQ0RIApFIBAgA0Enak1yRQRADBMLQQAhAwwACwALIAIgCDYCCAwBCyAFKAIEIgQgBksEQEG0m8cAQTZB7JvHABDrBwALIAIgBCAIaiIINgIIIARFDQBBfyAJQQF0IAlBAEgbIAkgBCAGRhsgCSAJIAxNGyEJIAYgBGshAwwBCwsgCCANawshAyAHLQC0AUEBRw0JIAIoAggiASANSQ0BIAdBoAFqIAIoAgQgDWogASANaxDeASAHKAKwASAHKAKoAUYNCSAFEJMHCyAFLQAAIQMMBAsgDSABIAFB7KvHABDqBwALQgMhEwsgAiAINgIIIBJCgH6DIRILIAUgFD4CBCAFIBOnIgM6AAAgBSASpyIBQRh2OgADIAUgAUEIdjsAAQsgA0H/AXFBBEYEQCAFKAIEIQMMBAsgBSkDACEUDAELIAEoAsABIQlBgMAAIQsgBUEQaiEQQQAhCANAIAQgD0cgBCAGR3JFBEAgEP0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgBf0MAAAAAAAAAAAAAAAAAAAAAP0LAwACfyASUARAQQAhA0IAIRIgDwwBCyAJKQMIIhMgCSgCBCIErSIUIBMgFFQbpyIHIAkoAgBqIQYCQCAEQv////8PIBMgE0L/////D1obp2siA0EAIAMgBE0bIgNCICASIBJCIFobpyIOIAMgDkkbIgNBAUYEQCAFIAYtAAA6AAAMAQsgA0UNACAFIAYgA/wKAAALIAEgEiADrSIUfSISNwO4ASAJIBMgFHw3AwggDyAEIAdGDQAaIAIgDyADQQFBARCkBSACKAIICyEEIAMEQCACKAIEIARqIAUgA/wKAAALIAIgAyAEaiIGNgIIIANFDQMgAigCACEECwJAIAQgBkcEQCACKAIEIQMMAQtCgcwAIRQgBEEgaiIHIARBAXQiAyADIAdJGyIHQQBIDQIgBSAEBH8gBSAENgIIIAUgAigCBDYCAEEBBUEACzYCBCAFQSRqQQEgByAFEIUHIAUoAiRBAUYNAiAFKAIoIQMgAiAHNgIAIAIgAzYCBCAHIQQLIBJQBEAgAiAGNgIIDAMLIAMgBmohDiAJAn4gCyAEIAZrIgcgByALSxsiB60gElgEQCAJKAIEIgpC/////w8gCSkDCCIUIBRC/////w9aG6drIgNBACADIApNGyIDIAcgAyAHSRsiAwRAIA4gCSgCACAUIAqtIhMgEyAUVhunaiAD/AoAAAsgAyAMIAMgDEsbIQwgFCADrSITfAwBCyAJKAIEIgpC/////w8gCSkDCCIUIBRC/////w9aG6drIgNBACADIApNGyIDIBKnIhEgAyARSRsiAwRAIA4gCSgCACAUIAqtIhMgEyAUVhunaiAD/AoAAAsgAyAMIAMgDEsbIQwgFCADrSITfAs3AwggASASIBN9IhI3A7gBIAIgAyAGaiIGNgIIIANFDQJBf0F/IAsgCEEBakEAIAMgB0kbIghBAUobIAsgByAMRxsiC0EBdCALQQBIGyALIAcgC08bIAsgAyAHRhshCyAMIANrIQwMAAsACyAAIBQ3AgRBAQwCCyAGIA1rIQMLIAAgA603AwhBAAs2AgAgBUEwaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL6CcCMH8GfiMAQbAEayIEJAACf0EAIAMoAgwiC0UNABogAykDECADKQMYQbjTxwBBARCVBCE0IAMoAgQiBiA0p3EhBSA0QhmIQv8Ag0KBgoSIkKDAgAF+ITYgAygCACEHA0ACQCAFIAdqKQAAIjUgNoUiNEJ/hSA0QoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIjRQRQRAA0AgByA0eqdBA3YgBWogBnFBbGxqIghBDGsoAgBBAUYEQCAIQRBrKAIALQAAQfgARg0DCyA0QgF9IDSDIjRQRQ0ACwtBACA1IDVCAYaDQoCBgoSIkKDAgH+DUEUNAhogBSAKQQhqIgpqIAZxIQUMAQsLIAhBFGsLIQUgBEEANgKYAyAEQQE2AowDIARBzNPHADYCiAMgBEIENwKQAyAEQYgDahCVByEGAkACQAJAIAVFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQvwQMAQsgBiAGKAIAKAIAEQMAIAUtABAhFyAFKAIMIRgCf0EAIAtFDQAaIAMpAxAgAykDGEHU08cAQQEQlQQhNCADKAIEIgYgNKdxIQUgNEIZiEL/AINCgYKEiJCgwIABfiE2IAMoAgAhB0EAIQoDQAJAIAUgB2opAAAiNSA2hSI0Qn+FIDRCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiNFBFBEADQCAHIDR6p0EDdiAFaiAGcUFsbGoiCEEMaygCAEEBRgRAIAhBEGsoAgAtAABB+QBGDQMLIDRCAX0gNIMiNFBFDQALC0EAIDUgNUIBhoNCgIGChIiQoMCAf4NQRQ0CGiAFIApBCGoiCmogBnEhBQwBCwsgCEEUawshBSAEQQA2ApgDIARBATYCjAMgBEHo08cANgKIAyAEQgQ3ApADIARBiANqEJUHIQYgBUUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxC/BAwBCyAGIAYoAgAoAgARAwAgBS0AECEZIAUoAgwhGiADQfDTxwBBARC5BSEFIARBADYCmAMgBEEBNgKMAyAEQYTUxwA2AogDIARCBDcCkAMgBEGIA2oQlQchBiAFRQRAIABBgICAgHg2AtwEIAAgBjYCACADEL8EDAELIAYgBigCACgCABEDACAFLQAQIRsgBSgCDCEcIANBjNTHAEEHELkFIQUgBEEANgKYAyAEQQE2AowDIARBrNTHADYCiAMgBEIENwKQAyAEQYgDahCVByEGIAVFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQvwQMAQsgBiAGKAIAKAIAEQMAIAUtABAhHSAFKAIMIR4gA0G01McAQQcQuQUhBSAEQQA2ApgDIARBATYCjAMgBEHU1McANgKIAyAEQgQ3ApADIARBiANqEJUHIQYgBUUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxC/BAwBCyAGIAYoAgAoAgARAwAgBS0AECEfIAUoAgwhICADQdzUxwBBBxC5BSEFIARBADYCmAMgBEEBNgKMAyAEQfzUxwA2AogDIARCBDcCkAMgBEGIA2oQlQchBiAFRQRAIABBgICAgHg2AtwEIAAgBjYCACADEL8EDAELIAYgBigCACgCABEDACAFLQAQISEgBSgCDCEiIANBhNXHAEEFELkFIQUgBEEANgKYAyAEQQE2AowDIARBoNXHADYCiAMgBEIENwKQAyAEQYgDahCVByEGIAVFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQvwQMAQsgBiAGKAIAKAIAEQMAIAUtABAhIyAFKAIMISQgA0Go1ccAQQUQuQUhBSAEQQA2ApgDIARBATYCjAMgBEHE1ccANgKIAyAEQgQ3ApADIARBiANqEJUHIQYgBUUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxC/BAwBCyAGIAYoAgAoAgARAwAgBS0AECElIAUoAgwhJiADQczVxwBBBRC5BSEFIARBADYCmAMgBEEBNgKMAyAEQejVxwA2AogDIARCBDcCkAMgBEGIA2oQlQchBiAFRQRAIABBgICAgHg2AtwEIAAgBjYCACADEL8EDAELIAYgBigCACgCABEDACAFLQAQIScgBSgCDCEoIANB8NXHAEEFELkFIQUgBEEANgKYAyAEQQE2AowDIARBjNbHADYCiAMgBEIENwKQAyAEQYgDahCVByEGIAVFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQvwQMAQsgBiAGKAIAKAIAEQMAIAUtABAhKSAFKAIMISogA0GU1scAQQcQuQUhBSAEQQA2ApgDIARBATYCjAMgBEG01scANgKIAyAEQgQ3ApADIARBiANqEJUHIQYgBUUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxC/BAwBCyAGIAYoAgAoAgARAwAgBS0AECErIAUoAgwhLCADQbzWxwBBBhC5BSEFIARBADYCmAMgBEEBNgKMAyAEQdzWxwA2AogDIARCBDcCkAMgBEGIA2oQlQchBiAFRQRAIABBgICAgHg2AtwEIAAgBjYCACADEL8EDAELIAYgBigCACgCABEDACAFLQAQIS0gBSgCDCEuIANB5NbHAEEGELkFIQUgBEEANgKYAyAEQQE2AowDIARBhNfHADYCiAMgBEIENwKQAyAEQYgDahCVByEGIAVFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQvwQMAQsgBiAGKAIAKAIAEQMAIAUtABAhLyAFKAIMITAgA0GM18cAQQYQuQUhBSAEQQA2ApgDIARBATYCjAMgBEGs18cANgKIAyAEQgQ3ApADIARBiANqEJUHIQYgBUUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxC/BAwBCyAGIAYoAgAoAgARAwAgBEEEaq1CgICAgPABhCE0IAUtABAhMSAFKAIMITJBACEGA0ACQCAEIAY2AgQgBEEBNgKMAyAEQYjQxwA2AogDIARCATcClAMgBCA0NwMYIAQgBEEYajYCkAMgBEEIaiAEQYgDahCxBiADIAQoAgwiCyAEKAIQELkFIAQoAgghBUUNACAFBEAgCyAFQQEQogcLIAQoAgRBAWohBgwBCwsgBQRAIAsgBUEBEKIHC0EBIQZBCCEKQQghE0EIIRICQAJAAkACQAJAAkAgBCgCBCIFDhkFAQEBAQEBAQEEAQEBAQEBAQEBAQEBAQECAAsgBUEtRg0CCyAEQQE2AowDIARB3NfHADYCiAMgBEIBNwKUAyAEIDQ3AwggBCAEQQhqNgKQAyAEQSBqIgEgBEGIA2oQsQYgARCQByEBIABBgICAgHg2AtwEIAAgATYCACADEL8EDAQLQQEhDkECIQYMAQtBASEOQQMhBkEBIRELIARBiANqIQUjAEGAAWsiByQAIAdB5ABqrUKAgICAEIQhNQJAAkAgAygCDARAIAMoAgAhDyADKAIEIQ0gAykDGCE3IAMpAxAhOCAGQQJ0QYiSyQBqKAIAIRVBACEIA0AgByA1NwNYIAcgFSAIIAhB/wFxQQNuIglBA2xrQf8BcWwgCWo2AmQgB0IBNwJ0IAdBATYCbCAHQYjQxwA2AmggByAHQdgAajYCcCAHQcwAaiAHQegAahDsAyANIDggNyAHKAJQIhIgBygCVCIUEJUEIjSncSEJIDRCGYhC/wCDQoGChIiQoMCAAX4hOUEAIRADQAJAIAkgD2opAAAiNiA5hSI0Qn+FIDRCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiNFBFBEADQCAPIDR6p0EDdiAJaiANcUFsbGoiDEEMaygCACAURgRAIBIgDEEQaygCACAUENsHRQ0DCyA0QgF9IDSDIjRQRQ0ACwsgNiA2QgGGg0KAgYKEiJCgwIB/g1BFDQQgCSAQQQhqIhBqIA1xIQkMAQsLIAxBBGstAAAhFCAMQQhrKAIAIQwgBygCTCIJBEAgEkEEaygCACIQQXhxIhZBBEEIIBBBA3EiEBsgCWpJDQcgEEEAIBYgCUEnaksbDQggEhCiAgsgB0EEaiIJIAhBA3RqIhIgFDoABCASIAw2AgAgCEEBaiIIQQlHDQALIAUgCUHIAPwKAAAgB0GAAWokAAwCCyAHIDU3A1ggB0EANgJkIAdCATcCdCAHQQE2AmwgB0GI0McANgJoIAcgB0HYAGo2AnAgB0HMAGogB0HoAGoQ7AMLQfTXxwAQ3QkACyAELQCMAyESIAQoAogDIRQgBEEvaiAEQY0DaiIQQcMA/AoAAAJAIA4EQCMAQbABayIHJAAgB0GUAWqtQoCAgIAQhCE1AkACQCADKAIMBEAgAygCACEMIAMoAgQhCSADKQMYITcgAykDECE4IAZBAnRBlJLJAGooAgAhFUEAIQgDQCAHIDU3A4gBIAcgCEH/AXFBA24iCyAVIAggC0EDbGtB/wFxbGpBA2o2ApQBIAdCATcCpAEgB0EBNgKcASAHQYjQxwA2ApgBIAcgB0GIAWo2AqABIAdB/ABqIAdBmAFqEOwDIAkgOCA3IAcoAoABIg4gBygChAEiExCVBCI0p3EhCyA0QhmIQv8Ag0KBgoSIkKDAgAF+ITlBACEPA0ACQCALIAxqKQAAIjYgOYUiNEJ/hSA0QoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIjRQRQRAA0AgDCA0eqdBA3YgC2ogCXFBbGxqIg1BDGsoAgAgE0YEQCAOIA1BEGsoAgAgExDbB0UNAwsgNEIBfSA0gyI0UEUNAAsLIDYgNkIBhoNCgIGChIiQoMCAf4NQRQ0EIAsgD0EIaiIPaiAJcSELDAELCyANQQRrLQAAIRMgDUEIaygCACENIAcoAnwiCwRAIA5BBGsoAgAiD0F4cSIWQQRBCCAPQQNxIg8bIAtqSQ0JIA9BACAWIAtBJ2pLGw0KIA4QogILIAdBBGoiCyAIQQN0aiIOIBM6AAQgDiANNgIAIAhBAWoiCEEPRw0ACyAFIAtB+AD8CgAAIAdBsAFqJAAMAgsgByA1NwOIASAHQQM2ApQBIAdCATcCpAEgB0EBNgKcASAHQYjQxwA2ApgBIAcgB0GIAWo2AqABIAdB/ABqIAdBmAFqEOwDC0GE2McAEN0JAAsgBC0AjAMhEyAEKAKIAyELIARB8gBqIBBB8wD8CgAAIBENASAGIQUMAgsgEQ0AIAYhBQwBCyAEQYgDaiEPIwBB4AFrIgUkACAFQcQBaq1CgICAgBCEITUCQAJAIAMoAgwEQCADKAIAIQ4gAygCBCEIIAMpAxghNyADKQMQITggBkECdEGgkskAaigCACEQQQAhBwNAIAUgNTcDuAEgBSAHQf8BcUEDbiIKIBAgByAKQQNsa0H/AXFsakEIajYCxAEgBUIBNwLUASAFQQE2AswBIAVBiNDHADYCyAEgBSAFQbgBajYC0AEgBUGsAWogBUHIAWoQ7AMgCCA4IDcgBSgCsAEiCSAFKAK0ASINEJUEIjSncSEKIDRCGYhC/wCDQoGChIiQoMCAAX4hOUEAIQwDQAJAIAogDmopAAAiNiA5hSI0Qn+FIDRCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiNFBFBEADQCAOIDR6p0EDdiAKaiAIcUFsbGoiEUEMaygCACANRgRAIAkgEUEQaygCACANENsHRQ0DCyA0QgF9IDSDIjRQRQ0ACwsgNiA2QgGGg0KAgYKEiJCgwIB/g1BFDQQgCiAMQQhqIgxqIAhxIQoMAQsLIBFBBGstAAAhDSARQQhrKAIAIREgBSgCrAEiCgRAIAlBBGsoAgAiDEF4cSIVQQRBCCAMQQNxIgwbIApqSQ0HIAxBACAVIApBJ2pLGw0IIAkQogILIAVBBGoiCiAHQQN0aiIJIA06AAQgCSARNgIAIAdBAWoiB0EVRw0ACyAPIApBqAH8CgAAIAVB4AFqJAAMAgsgBSA1NwO4ASAFQQg2AsQBIAVCATcC1AEgBUEBNgLMASAFQYjQxwA2AsgBIAUgBUG4AWo2AtABIAVBrAFqIAVByAFqEOwDC0Hk18cAEN0JAAsgBC0AjAMhCiAEKAKIAyEzIARB5QFqIARBjQNqQaMB/AoAACAGIQULIAAgCjoARCAAIDM2AkAgACApOgA8IAAgKjYCOCAAICc6ADQgACAoNgIwIAAgJToALCAAICY2AiggACAjOgAkIAAgJDYCICAAIAP9AAMA/QsDACAAQRBqIANBEGr9AAMA/QsDACAAQcUAaiAEQeUBakGjAfwKAAAgACATOgDsASAAIAs2AugBIABB7QFqIARB8gBqQfMA/AoAACAAIBI6AOQCIAAgFDYC4AIgAEHlAmogBEEvakHDAPwKAAAgAEIENwPgBCAAQgA3A9gEIABCgICAgMAANwPQBCAAQgQ3A8gEIABCADcDwAQgAEKAgICAwAA3A7gEIABCBDcDsAQgAEIANwOoBCAAQoCAgIDAADcDoAQgAEIENwOYBCAAQgA3A5AEIABCgICAgMAANwOIBCAAIAU2AoQEIABBADYCgAQgACACNgL8AyAAIAE2AvgDIAAgKzoA9AMgACAsNgLwAyAAIDE6AOwDIAAgMjYC6AMgACAvOgDkAyAAIDA2AuADIAAgLToA3AMgACAuNgLYAyAAICE6ANQDIAAgIjYC0AMgACAfOgDMAyAAICA2AsgDIAAgHToAxAMgACAeNgLAAyAAIBs6ALwDIAAgHDYCuAMgACAZOgC0AyAAIBo2ArADIAAgFzoArAMgACAYNgKoAwsgBEGwBGokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC5wVBA5/An0BfAJ+IwBBIGsiAiQAAkACQAJAAkACQAJ/AkACQCAAAn8CQAJAAkACQAJAQRUgASgCACIDQYCAgIB4cyADQQBOG0EUaw4CAAEDCwJ9AkACQAJAAn0CQAJAIAEoAgwiAwRAIAJBBGogASgCCCIBEKAEIAIoAgghBiACKAIEIgdBgICAgHhGBEAgBiEBDBILIAIoAhQhCiACKAIQIQkgA0EBRg0EIAIoAhghCyACKAIMIQwCQAJAAkACQAJAAkACQAJAAkBBFSABKAIQIgVBgICAgHhzIAVBAE4bQQFrDgoLAAECAwQFBgcICgsgAS8BFLMMCwsgASgCFLMMCgsgASkDGLUMCQsgASwAFLIMCAsgAS4BFLIMBwsgASgCFLIMBgsgASkDGLQMBQsgASoCFAwECyABKwMYIhK2QwAAgD9DAACAvyASvUIAWRuYDAMLQQBB4P7AAEGA/cAAENsGIQEMEAsgAUEQaiACQR9qQdjnwAAQlQghAQwOCyABLQAUswshECADQQJGDQUCQAJAAkACQAJAAkACQAJAAkBBFSABKAIgIgVBgICAgHhzIAVBAE4bQQFrDgoLAAECAwQFBgcICgsgAS8BJLMMCwsgASgCJLMMCgsgASkDKLUMCQsgASwAJLIMCAsgAS4BJLIMBwsgASgCJLIMBgsgASkDKLQMBQsgASoCJAwECyABKwMoIhK2QwAAgD9DAACAvyASvUIAWRuYDAMLQQFB4P7AAEGA/cAAENsGIQEMCwsgAUEgaiACQR9qQdjnwAAQlQghAQwKCyABLQAkswshEQJAIANBA0cEQCACQQRqIAFBMGoQnwUgAigCBEUNASACKAIIIQEMCgtBA0Hg/sAAQYD9wAAQ2wYhAQwJCyADQQRGBEAgAigCCCEDIAIoAgwMBQsgAkEENgIEIANB/P///wBqQf////8AcUEEaiACQQRqQeiVwQAQ2wYhASAHBEAgBiAHQQEQogcLIAlFDQkgCiAJQQEQogcMCQsgASgCCCIDRQ0FIANBBXQhDiABKAIEIQ9BACEDQYCAgIB4IQcDQAJAAkACQAJAAkACQAJAAkBBFSADIA9qIgEoAgAiBEGAgICAeHMgBEEAThtBAWsODwEAAAIAAAAAAAAAAwQFBgALIAEgAkEfakHU5MAAEJUIIQQgAkEBOgAEIAIgBDYCCAwGCyACQQA6AAQgAkEEIAFBBGotAAAiBCAEQQRPGzoABQwFCyACQQA6AAQgAkIEIAFBCGopAwAiFCAUQgRaGzwABQwECyABQQhqKAIAIQQCfwJAAkACQAJAIAFBDGooAgBBBGsOAgEAAwsgBEGQ/cAAQQUQ2wcNAUEADAMLQQEgBCgAAEHt0rmbB0YNAhogBCgAAEHtwuGbB0cNAUECDAILIARBnf3AAEEFENsHDQBBAwwBC0EECyEEIAJBADoABCACIAQ6AAUMAwsgAUEEaigCACEEAn8CQAJAAkACQCABQQhqKAIAQQRrDgIBAAMLIARBkP3AAEEFENsHDQFBAAwDC0EBIAQoAABB7dK5mwdGDQIaIAQoAABB7cLhmwdHDQFBAgwCCyAEQZ39wABBBRDbBw0AQQMMAQtBBAshBCACQQA6AAQgAiAEOgAFDAILIAJBBGogAUEIaigCACABQQxqKAIAENkFDAELIAJBBGogAUEEaigCACABQQhqKAIAENkFCyACLQAEQQFGBEAgAigCCCEBQQEMCAsgAUEQaiEEAkACQAJAAkACQAJAAkACQCACLQAFDgQAAQIDBwsgB0GAgICAeEcEQEGQ/cAAQQUQnwchAUEBDA8LIAJBBGogBBCgBCACKAIIIQYgAigCBCIHQYCAgIB4RgRAIAYhAQwRCyACKAIYIQsgAigCFCEKIAIoAhAhCSACKAIMIQwMBgsgBQ0CAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAQoAgAiBUGAgICAeHMgBUEAThtBAWsOCgABAgMEBQYHCAkKCyABQRRqLQAAsyEQQQEhBQwPCyABQRRqLwEAsyEQQQEhBQwOCyABQRRqKAIAsyEQQQEhBQwNCyABQRhqKQMAtSEQQQEhBQwMCyABQRRqLAAAsiEQQQEhBQwLCyABQRRqLgEAsiEQQQEhBQwKCyABQRRqKAIAsiEQQQEhBQwJCyABQRhqKQMAtCEQQQEhBQwICyABQRRqKgIAIRBBASEFDAcLIAFBGGorAwAiErZDAACAP0MAAIC/IBK9QgBZG5ghEEEBIQUMBgsgBCACQR9qQdjnwAAQlQghAUEBDA0LIAgNAwJAAkACQAJAAkACQAJAAkACQAJAAkBBFSAEKAIAIghBgICAgHhzIAhBAE4bQQFrDgoAAQIDBAUGBwgJCgsgAUEUai0AALMhEUEBIQgMDgsgAUEUai8BALMhEUEBIQgMDQsgAUEUaigCALMhEUEBIQgMDAsgAUEYaikDALUhEUEBIQgMCwsgAUEUaiwAALIhEUEBIQgMCgsgAUEUai4BALIhEUEBIQgMCQsgAUEUaigCALIhEUEBIQgMCAsgAUEYaikDALQhEUEBIQgMBwsgAUEUaioCACERQQEhCAwGCyABQRhqKwMAIhK2QwAAgD9DAACAvyASvUIAWRuYIRFBASEIDAULIAQgAkEfakHY58AAEJUIIQFBAQwMCyANDQEgAkEEaiAEEJ8FIAIoAgghAUEBIAIoAgQNCxogAa0gAjUCDEIghoQhE0EBIQ0MAwtBlf3AAEEEEJ8HIQFBAQwKC0Gd/cAAQQUQnwchAUEBDAkLQZn9wABBBBCfByEBQQEMCAsgA0EgaiIDIA5HDQALDAILQQJB4P7AAEGA/cAAENsGIQEMBgsgASACQR9qQcTiwAAQlQghAQwGCyAHQYCAgIB4Rg0CIAIgCzYCGCACIAo2AhQgAiAJNgIQIAIgDDYCDCACIAY2AgggAiAHNgIEIAVFBEBBlf3AAEEEEJwHIQEMAgsgCEUEQEGZ/cAAQQQQnAchAQwCCyANRQRAQZ39wABBBRCcByEBDAILIBOnIQMgE0IgiKcLNgIkIAAgAzYCICAAIBE4AhwgACAQOAIYIAAgCzYCFCAAIAo2AhAgACAJNgIMIAAgDDYCCCAAIAY2AgQgACAHNgIADAULIAJBBGoQ5gVBAAwBC0GAgICAeCEHQZD9wABBBRCcByEBQQELRSAHQYCAgIB4RnINAQJAIAcEQCAGQQRrKAIAIgNBeHEiBUEEQQggA0EDcSIDGyAHakkNBSADQQAgBSAHQSdqSxsNBiAGEKICCyAJRQ0CIApBBGsoAgAiBkF4cSIDQQRBCCAGQQNxIgYbIAlqSQ0EIAZBACADIAlBJ2pLGw0AIAoQogIMAgsMBAsgBwRAIAZBBGsoAgAiA0F4cSIFQQRBCCADQQNxIgMbIAdqSQ0DIANBACAFIAdBJ2pLGw0EIAYQogILIAlFDQAgCkEEaygCACIGQXhxIgNBBEEIIAZBA3EiBhsgCWpJDQIgBkEAIAMgCUEnaksbDQMgChCiAgsgAEGBgICAeDYCACAAIAE2AgQLIAJBIGokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC6wUAwZ+EH8BeyMAQSBrIhAkAAJAAkACQAJAAkACQAJAAkACQCAAAn8CQAJAAkAgACgCDCISQQFqIggEQCAAKAIEIg8gD0EBaiINQQN2IglBB2wiFCAPQQhJGyIKQQF2IAhJBEAgCkEBaiIJIAggCCAJSRsiCEEPSQ0CIAhB/////wFNBEBBfyAIQQN0QQduQQFrZ3YiCEH+////AUsNCCAIQQFqIQgMBwsMDgtBACANRQ0EGiAAKAIAIQBBACEIIAkgDUEHcUEAR2oiCkEBTQ0CIAAhCCAKQf7///8DcSILIQkDQCAIIAj9AAMAIhj9TUEH/c0B/QwBAQEBAQEBAQEBAQEBAQEB/U4gGP0Mf39/f39/f39/f39/f39/f/1Q/c4B/QsDACAIQRBqIQggCUECayIJDQALIAogC0YNAyALQQN0IQggCkEBcSEKDAILDAwLQQQgCEEIcUEIaiAIQQRJGyEIDAMLIAAgCGohCANAIAggCCkDACICQn+FQgeIQoGChIiQoMCAAYMgAkL//v379+/fv/8AhHw3AwAgCEEIaiEIIApBAWsiCg0ACwsCQCANQQhPBEAgACANaiAAKQAANwAADAELIA1FDQAgAEEIaiAAIA38CgAACyABKQMAIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQhBSAAQQhqIQsgAEEIayEVIAJCf4UhBiABKQMIIQRBASEBIAAhCUEAIQgDQCAIIQogASEIAkAgACAKaiITLQAAQYABRw0AIBUgCkEDdGshFiAAIApBf3NBA3RqIRcCQANAIA8gBCAWNQIAhSIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEQtKBqpur+oLXp39+IgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQgA0LYotHvwqnlvy1+hSICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEIAZ+IgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQgAiAFfoUgAomnIhFxIgwhASAAIAxqKQAAQoCBgoSIkKDAgH+DIgJQBEBBCCEOA0AgASAOaiEBIA5BCGohDiAAIAEgD3EiAWopAABCgIGChIiQoMCAf4MiAlANAAsLIAAgAnqnQQN2IAFqIA9xIgFqLAAAQQBOBEAgACkDAEKAgYKEiJCgwIB/g3qnQQN2IQELIAEgDGsgCiAMa3MgD3FBCE8EQCAAIAFqIgwtAAAgDCARQRl2Igw6AAAgCyABQQhrIA9xaiAMOgAAQf8BRg0CIAAgAUEDdGshDEF4IQEDQCABIAlqIg4oAAAhESAOIAEgDGoiDigAADYAACAOIBE2AAAgAUEEaiIBDQALDAELCyATIBFBGXYiAToAACALIA8gCkEIa3FqIAE6AAAMAQsgE0H/AToAACALIA8gCkEIa3FqQf8BOgAAIAAgAUF/c0EDdGogFykAADcAAAsgCUEIayEJIAggCCANSSIKaiEBIAoNAAsgDyAUIA9BCEkbCyASazYCCAwFCyAIQQhqIgkgCEEDdCINaiIKIAlJIApB+P///wdLcg0AIAoQcSIKRQ0BIAogDWohCyAJBEAgC0H/ASAJ/AsACyAIQQFrIgwgCEEDdkEHbCAMQQhJGyETIAAoAgAhDSASDQJBACESDAMLIBBBADYCGCAQQQE2AgwgEEHEtcQANgIIIBBCBDcCECAQQQhqQZi1xAAQjQgLAAsgC0EIaiERIAEpAwAiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhCEGIA1BCGshFCACQn+FIQcgDSkDAEJ/hUKAgYKEiJCgwIB/gyEEIAEpAwghBUEAIQggEiEBIA0hCgNAIARQBEADQCAIQQhqIQggCkEIaiIKKQMAQoCBgoSIkKDAgH+DIgJCgIGChIiQoMCAf1ENAAsgAkKAgYKEiJCgwIB/hSEECyALIAwgBSAUIAR6p0EDdiAIaiIVQQN0azUCAIUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCAFQgiIQoCAgPgPgyAFQhiIQoCA/AeDhCAFQiiIQoD+A4MgBUI4iISEhELSgaqbq/qC16d/fiICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEIANC2KLR78Kp5b8tfoUiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhCAHfiIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISEIAIgBn6FIAKJpyIWcSIJaikAAEKAgYKEiJCgwIB/gyICUARAQQghDgNAIAkgDmohCSAOQQhqIQ4gCyAJIAxxIglqKQAAQoCBgoSIkKDAgH+DIgJQDQALCyAEQgF9IASDIQQgCyACeqdBA3YgCWogDHEiCWosAABBAE4EQCALKQMAQoCBgoSIkKDAgH+DeqdBA3YhCQsgCSALaiAWQRl2Ig46AAAgESAJQQhrIAxxaiAOOgAAIAsgCUF/c0EDdGogDSAVQX9zQQN0aikAADcDACABQQFrIgENAAsLIAAgDDYCBCAAIAs2AgAgACATIBJrNgIIIA9FDQAgDyAPQQN0QQ9qQXhxIgFqQQlqIgBFDQAgDSABayIBQQRrKAIAIghBeHEiCUEEQQggCEEDcSIIGyAAakkNASAIQQAgCSAAQSdqSxsNAiABEKICCyAQQSBqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgEEEANgIYIBBBATYCDCAQQcS1xAA2AgggEEIENwIQIBBBCGpBmLXEABCNCAALvw4BB38CQAJAIAAoAuACIgEEQCAAKALkAiIEQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKALwAiIBKAL4BiICQQRrKAIAIgRBeHFBhIABQYiAASAEQQNxIgMbSQ0AIANBACAEQaiAAU8bDQEgAhCiAiABKALgBiIEBEAgASgC5AYiAkEEaygCACIDQXhxIgYgBEEBdCIEQQRBCCADQQNxIgMbakkNASADQQAgBiAEQSdqSxsNAiACEKICCyABKAL8BiICQQRrKAIAIgRBeHFBhBBBiBAgBEEDcSIDG0kNACADQQAgBEGoEE8bDQEgAhCiAiABKALsBiIEBEAgASgC8AYiAkEEaygCACIDQXhxIgYgBEEBdCIEQQRBCCADQQNxIgMbakkNASADQQAgBiAEQSdqSxsNAiACEKICCyABQQRrKAIAIgRBeHFBrAdBsAcgBEEDcSICG0kNACACQQAgBEHQB08bDQEgARCiAgJAIAAoAghBAkYNACAAKALIASIBQYKAgIB4SCABRXJFBEAgACgCzAEiBEEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAWpJDQIgAkEAIAMgAUEnaksbDQMgBBCiAgsgACgC1AEiAUGCgICAeEggAUVyRQRAIAAoAtgBIgRBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAFqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoAuABIgFBgoCAgHhIIAFFckUEQCAAKALkASIEQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNAiACQQAgAyABQSdqSxsNAyAEEKICCyAAKALsASIBQYKAgIB4SCABRXJFBEAgACgC8AEiBEEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAWpJDQIgAkEAIAMgAUEnaksbDQMgBBCiAgsgACgC+AEiAUGCgICAeEggAUVyRQRAIAAoAvwBIgRBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAFqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoAoQCIgFBgoCAgHhIIAFFckUEQCAAKAKIAiIEQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNAiACQQAgAyABQSdqSxsNAyAEEKICCyAAKAKoASEEIAAoAqwBIgIEQCAEIQEDQCABKAIAIgMEQCABQQRqKAIAIgZBBGsoAgAiBUF4cSIHQQRBCCAFQQNxIgUbIANqSQ0EIAVBACAHIANBJ2pLGw0FIAYQogILIAFBDGooAgAiAwRAIAFBEGooAgAiBkEEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAcgA0EnaksbDQUgBhCiAgsgAUEYaiEBIAJBAWsiAg0ACwsgACgCpAEiAQRAIARBBGsoAgAiAkF4cSIDIAFBGGwiAUEEQQggAkEDcSICG2pJDQIgAkEAIAMgAUEnaksbDQMgBBCiAgsgACgCtAEhBCAAKAK4ASICBEAgBEEUaiEBA0AgAUEEaygCACIDBEAgASgCACIGQQRrKAIAIgVBeHEiB0EEQQggBUEDcSIFGyADakkNBCAFQQAgByADQSdqSxsNBSAGEKICCyABQRBrKAIAIgMEQCABQQxrKAIAIgZBBGsoAgAiBUF4cSIHQQRBCCAFQQNxIgUbIANqSQ0EIAVBACAHIANBJ2pLGw0FIAYQogILIAFBHGohASACQQFrIgINAAsLIAAoArABIgEEQCAEQQRrKAIAIgJBeHEiAyABQRxsIgFBBEEIIAJBA3EiAhtqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoAsABIQQgACgCxAEiAgRAIAQhAQNAIAFBEGooAgAiAwRAIAFBFGooAgAiBkEEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAcgA0EnaksbDQUgBhCiAgsgAUEcaigCACIDBEAgAUEgaigCACIGQQRrKAIAIgVBeHEiB0EEQQggBUEDcSIFGyADakkNBCAFQQAgByADQSdqSxsNBSAGEKICCyABQShqKAIAIgMEQCABQSxqKAIAIgZBBGsoAgAiBUF4cSIHQQRBCCAFQQNxIgUbIANqSQ0EIAVBACAHIANBJ2pLGw0FIAYQogILIAFBBGooAgAiAwRAIAFBCGooAgAiBkEEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAcgA0EnaksbDQUgBhCiAgsgAUE4aiEBIAJBAWsiAg0ACwsgACgCvAEiAEUNACAEQQRrKAIAIgFBeHEiAiAAQThsIgBBBEEIIAFBA3EiARtqSQ0BIAFBACACIABBJ2pLGw0CIAQQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALkhMDDn8BewF+IwBBEGsiDCQAAkACQAJAAkACQCAAKAIIIglFBEBBACEJQQEhCEEBIQoMAQsgACgCBCEEIAkQcSIKRQ0CIAQhCANAQQAhBQJAAn8gCEEUai8BACICQf//AXFFBEAgAkEQdAwBCyACQf8HcSEBIAJBgIACcSEGIAJBgPgBcSICQYD4AUYEQCAGQRB0IgJBgICA/AdyIAFFDQEaIAIgAUENdHJBgICA/gdyDAELIAZBEHQiBiACQQ10QYCAgPwAcSABQQ10ckGAgIDAA2pyIAINABogBkGAgIDYA3IgAWdBEGsiAkEXdGsgASACQf//A3FBCGp0Qf///wNxcgu+QwAAAABeRQ0AIAhBHGovAQAhBUEAIQICf0EAIAhBHmovAQAiAUH//wFxIgZBgPgBSw0AGkEAIAVB//8BcSIHQYD4AUsNABogAcFBAE4EQCABIAVLIAXBQQBODQEaIAEgB3JBAEcMAQsgBcFBAEggASAFSXELIQcgASAFIAcbIAUgBkGB+AFJGyEBAkAgCEEgai8BACIGQf//AXEiB0GA+AFLDQAgAUH//wFxIgVBgPgBSw0AIAbBQQBOBEAgAcFBAE4EQCAGIAFB//8DcUshAgwCCyAFIAZyQQBHIQIMAQsgAcFBAEggBiABQf//A3FJcSECC0EAIQUCfyAGIAEgAhsgASAHQYH4AUkbIgJB//8BcUUEQCACQRB0DAELIAJB/wdxIQEgAkGAgAJxIQYgAkGA+AFxIgJBgPgBRgRAIAZBEHQiAkGAgID8B3IgAUUNARogAiABQQ10ckGAgID+B3IMAQsgBkEQdCIGIAJBDXRBgICA/ABxIAFBDXRyQYCAgMADanIgAg0AGiAGQYCAgNgDciABZ0EQayICQRd0ayABIAJB//8DcUEIanRB////A3FyC74QiQRDAAAAAF5FDQAgDCAIKQIAIhAQywIgDP0ABAD9DP///3////9/////f////3/9Tv0MAACAfwAAgH8AAIB/AACAf/05/aQBQQ9HDQAgDCAQEMsCIAz9AAQAIg8gD/3mASIPIA8gD/0NCAkKCwwNDg8AAQIDAAECA/3kASIPIA8gD/0NBAUGBwABAgMAAQIDAAECA/3kAf3jAf0fAEMAAAAAXiEFCyADIApqIAU6AAAgCEEkaiEIIAkgA0EBaiIDRw0ACyAEQSRqIQMgCSAKaiEIQQAhASAKIQUCQAJAA0AgBSAIRg0EIAFBAWohBCAFLQAAQQFHDQEgBUEBaiEFIANBJGohAyAEIgEgCUcNAAtBACECDAELIAQgCUYEQEEBIQIMAQsgASAJayEBQQEhBEEBIQIDQAJAAkAgASAEagRAIAQgBWotAAANASACQQFqIQIMAgtB9KHBABDdCQALIAMgAkFcbGoiBiAD/QACAP0LAgAgBkEgaiADQSBqKAIANgIAIAZBEGogA0EQav0AAgD9CwIACyADQSRqIQMgASAEQQFqIgRqDQALCyAAIAkgAms2AggLIAAoAhQiBgRAQQAhBCAAKAIQIgEhAyAKIQUCQANAAkAgBSAIRwRAIAUtAAANAQJAIAEgBEEYbGoiASgCFCICQQVPBEAgASgCCCIBQQRrKAIAIgdBeHEiCyACQQJ0IgJBBEEIIAdBA3EiBxtqSQ0BIAdBACALIAJBJ2pLGw0KIAEQogILQQEhAiAEQQFqIAZGDQQgBCAGayEHQQEhAQNAIAMhBAJAAkAgCCABIAVqIgtHBEAgA0EYaiEDIAstAAANASACQQFqIQIgBEEsaigCACILQQVJDQIgBEEgaigCACIEQQRrKAIAIg1BeHEiDiALQQJ0IgtBBEEIIA1BA3EiDRtqSQ0MIA1BACAOIAtBJ2pLGw0NIAQQogIMAgtBpKLBABDdCQALIAQgAkFobGoiBEEoaiADQRBqKQIANwIAIARBGGogA/0AAgD9CwIACyAHIAFBAWoiAWoNAAsMBAsMBwtBpKLBABDdCQALIAVBAWohBSADQRhqIQMgBEEBaiIEIAZHDQALQQAhAgsgACAGIAJrNgIUCwJAIAAoAiAiAgRAQQAhBEESIQEgCiEFAkACQANAIAUgCEYNBCAEQQFqIQMgBS0AAEEBRw0BIAVBAWohBSABQRJqIQEgAyIEIAJHDQALQQAhAQwBCyACIANGBEBBASEBDAELIAQgAmshBiAAKAIcIAFqIQNBASEEQQEhAQNAAkACQCAIIAQgBWoiB0cEQCAHLQAADQEgAUEBaiEBDAILQYSiwQAQ3QkACyADIAFBbmxqIgcgA/0AAQD9CwEAIAdBEGogA0EQai8BADsBAAsgA0ESaiEDIAYgBEEBaiIEag0ACwsgACACIAFrNgIgCwJAIAAoAiwiAgRAQQAhBEEeIQEgCiEFAkACQANAIAUgCEYNBCAEQQFqIQMgBS0AAEEBRw0BIAVBAWohBSABQR5qIQEgAyIEIAJHDQALQQAhAQwBCyACIANGBEBBASEBDAELIAQgAmshByAAKAIoIAFqIQNBASEEQQEhAQNAAkACQCAIIAQgBWoiBkcEQCAGLQAADQEgAUEBaiEBDAILQeShwQAQ3QkACyADIAFBYmxqIgYgA/0AAQD9CwEAIAZBFmogA0EWaikBADcBACAGQRBqIANBEGopAQA3AQALIANBHmohAyAHIARBAWoiBGoNAAsLIAAgAiABazYCLAsCQCAAKAI4IgIEQEEAIQRBKiEBIAohBQJAAkADQCAFIAhGDQQgBEEBaiEDIAUtAABBAUcNASAFQQFqIQUgAUEqaiEBIAMiBCACRw0AC0EAIQEMAQsgAiADRgRAQQEhAQwBCyAEIAJrIQcgACgCNCABaiEDQQEhBEEBIQEDQAJAAkAgCCAEIAVqIgZHBEAgBi0AAA0BIAFBAWohAQwCC0GUosEAEN0JAAsgAyABQVZsaiIGIAP9AAEA/QsBACAGQShqIANBKGovAQA7AQAgBkEgaiADQSBqKQEANwEAIAZBEGogA0EQav0AAQD9CwEACyADQSpqIQMgByAEQQFqIgRqDQALCyAAIAIgAWs2AjgLAkAgCQRAIApBBGsoAgAiAEF4cSIFQQRBCCAAQQNxIgAbIAlqSQ0HIABBACAFIAlBJ2pLGw0BIAoQogILIAxBEGokAA8LDAYLQZSiwQAQ3QkAC0HkocEAEN0JAAtBhKLBABDdCQALQfShwQAQ3QkACwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC6oVBAh/BH4HfQF7IwBB4AJrIgEkAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AnANFBEAgACgCACICQQJHDQogACgCiAFBAkcNCiAAKAKAAyICQQNNBEBBACECDAwLIAEgACgC/AIiBSgAACIDNgIQAkAgA0HSgpGaBEcEQCADQdKCkYIDRw0DIAJBCEkNASACIAUoAAQiBEEHakF4cUEIaiIDSQ0BIARBCGoiBiACSyAEQXdLcg0EIAFBADYC2AIgASAENgLUAiABIAVBCGo2AtACIAFBIGogAUHQAmoQWSABKAIkIQQgASgCICIGQQJGBEAgBBDOByECDA4LIAFBsAFqIAFBKGpBgAH8CgAAIAEgBDYCrAEgASAGNgKoASAAKAKAAyICIANJDQUgAEEANgKAAyACIANrIQUgA0UNBiACIANGDQggBUUNByAAKAL8AiICIAIgA2ogBfwKAAAMBwsgAUEIaiAAELkCIAEtAAhFBEAgAS0ACQ0JQQAhAgwNCyABKAIMIQIMDAtBACECDAsLIAA1AoADIQkgAEEANgKAAyAAIAkgACkD2AJ8NwPYAgwKCyABQQE2AjQgAUHMyMEANgIwIAFBATYCJCABQcTIwQA2AiAgAUEBNgIsIAEgAUEQaq1CgICAgJAEhDcD0AIgASABQdACajYCKCABQRRqIgAgAUEgahCxBiAAEI4HIQIMCQtBCCAGIAJBnMjBABDqBwALQQAgAyACQYSkxwAQ6gcACyACIANGDQELIAAgBTYCgAMLIAAgACkD2AIgA618Igk3A+ACIAAgCTcD2AICQAJAAkAgASgCpAJBAUYEQCAAIAEoApQCIgM2AogDIAAgASgCtAEgASgCwAEiAiABKAKwARsiBTYCjAMgBUUNASACIAVuIgcgBSAHbCACR2oiBSADRgRAIAEtAKgCIQMgASAEQQAgBkEBcRs2AiQgASACNgIgIAEgA0EBcSICOgAoIABB+AFqIAFBIGoQ6QEgASgC0AEiBEECRwRAAn0gAC0A0AIiA0ECRgRAQwAAQMEhDUMAABBBIQ5DAACAPyEQQQAhA0MAAIA/IRFDAACAPyESQwAAgD8hE0MAAAAADAELIAFBImogAEHTAmotAAA6AAAgASAALwDRAjsBICAAKgLMAiEQIAAqAsgCIREgACoCxAIhEiAAKgLAAiEOIAAqArwCIQ0gACoCuAIhEyAAKgK0AgshDyAAIAEqAoQCIBAgASgCgAIbOALMAiAAIAEqAvwBIBEgASgC+AEbOALIAiAAIAEqAvQBIBIgASgC8AEbOALEAiAAIAEqAuwBIA4gASgC6AEbOALAAiAAIAEqAuQBIA0gASgC4AEbOAK8AiAAIAEqAtwBIBMgASgC2AEbOAK4AiAAIAMgAS0AiAIiAyADQQJGGzoA0AIgACABKgLUASAPIARBAXEbOAK0AiAAQdMCaiABQSJqLQAAOgAAIAAgAS8BIDsA0QILIAJFDQQCfSAALQDQAkECRgRA/QwAAAAAAACAPwAAQMEAABBBIRRDAACAPyENQwAAgD8hDkMAAIA/DAELIAFBImogAEHTAmotAAA6AAAgASAALwDRAjsBICAAKgLIAiENIAAqAsQCIQ4gAP0AArQCIRQgACoCzAILIQ8gAEEBOgDQAiAAIA84AswCIAAgDTgCyAIgACAOOALEAiAAIBT9CwK0AiAAIAEvASA7ANECIABB0wJqIAFBImotAAA6AAAMBAsgASAFNgLMAiABQQI2AiQgAUHox8EANgIgIAFCAjcCLCABQoCAgIAQIgkgAEGIA2qthDcD2AIgASAJIAFBzAJqrYQ3A9ACIAEgAUHQAmo2AiggAUHAAmoiACABQSBqELEGIAAQjgchAgwCCyABQQE2AiQgAUGUyMEANgIgIAFCATcCLCABIAFBpAJqrUKAgICAEIQ3A9ACIAEgAUHQAmo2AiggAUG0AmoiACABQSBqELEGIAAQjgchAiABKAKUAiEDDAELQbTHwQAQgQgACyABKAKQAiEEIAMEQCAEQSRqIQADQCAAQQRrKAIAIgVBgICAgHhyQYCAgIB4RwRAIAAoAgAgBUEBEKIHCyAAQTBqIQAgA0EBayIDDQALCyABKAKMAiIABEAgBCAAQTBsQQgQogcLIAEoApgCIgBBgICAgHhyQYCAgIB4Rg0FIAEoApwCIABBARCiBwwFCwJAIAAoAgBBAkYNACAAKAJoIQQgACgCbCIDBEAgBEEkaiECA0AgAkEEaygCACIFQYCAgIB4ckGAgICAeEcEQCACKAIAIgZBBGsoAgAiB0F4cSIIQQRBCCAHQQNxIgcbIAVqSQ0FIAdBACAIIAVBJ2pLGw0GIAYQogILIAJBMGohAiADQQFrIgMNAAsLIAAoAmQiAwRAIAQgA0EwbEEIEKIHCyAAKAJwIgNBgICAgHhyQYCAgIB4Rg0AIAAoAnQgA0EBEKIHCyAAIAFBqAFqQYgB/AoAAAsgACgCACECDAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACwJAAkACQAJAAn8CQCACQQJHBEAgACgChAMgACgCiANPDQYgACgCiAFBAkYNAUEADAILIAFBqAFqIAAQYyABKAKsAUEAIAEtAKgBIgMbIQIgAw0GIAEtAKkBQQFxRQ0GIAApA/ACIgsgACkD2AIiCVgEQCAAKAKAAyEDDAULIAAoAoADIQRBACEDIABBADYCgAMgBCALIAl9IgogBK0iDCAKIAxUGyIKpyIFayECIApQRQRAIAQgBUYNBCACRQ0DIAAoAvwCIgMgAyAFaiAC/AoAAAwDCyAEIAVHDQIMAwtBAQshAgNAAkACQAJAAkACQAJAAkACQAJAAkACQCACRQRAIAFBqAFqIAAQYyABKAKsASEDIAEtAKgBIgINAiABLQCpAUEBcUUNAiAAKQPwAiIJIAApA9gCIgtWDQEMBgsgAUGoAWogABC5AiABLQCoAUEBRgRAIAEoAqwBIQIMEQsgAS0AqQENCUEAIQIMEAsgACgCgAMhAyAAQQA2AoADIAMgCSALfSIKIAOtIgwgCiAMVBsiCqciAmshBCAKUA0BIAIgA0YNAyAERQ0CIAAoAvwCIgMgAiADaiAE/AoAAAwCCyADQQAgAhshAgwOCyACIANGDQELIAAgBDYCgAMLIAAgCiALfCILNwPYAiAJIAtWDQELAkAgACgCiAFBAkYNACAAKALkASIDRQ0AIAAoAugBIgJBBGsoAgAiBEF4cSIFIANBKGwiA0EEQQggBEEDcSIEG2pJDQIgBEEAIAUgA0EnaksbDQMgAhCiAgsgAEECNgKIASAAIAAoAoQDQQFqIgM2AoQDIAMgACgCiANJDQQMCQtBACECDAkLQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0EAIQIMAQtBASECDAALAAsgACACNgKAAyACIQMLIAAgCSAKfCIJNwPYAiAJIAtaDQBBACECDAILQQAhAiAAQQA2AoADIABBAToAnAMgACAJIAOtfDcD2AIMAQsgAEEBOgCcAyAANQKAAyEJQQAhAiAAQQA2AoADIAAgCSAAKQPYAnw3A9gCCyABQeACaiQAIAILlhoBC38jAEGAAWsiBSQAIAAoAgwhBgJAAkACQAJAAkAgACgCFCIBIAAoAhAiAkkEQCAAQQxqIQsDQAJAIAEgBmotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEAwsgACABQQFqIgE2AhQgASACRw0ACyACIQELIAVBCGogBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAgwhACAFKAIIIQJBFBBxIgFFDQQgAUEDNgIADAILIAUgBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAgQhACAFKAIAIQJBFBBxIgFFDQMgAUEGNgIADAELIABBADYCCCAAIAFBAWoiATYCFAJAIAEgAk8NAANAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASAGai0AACIEQQlrDiUBAQgIAQgICAgICAgICAgICAgICAgICAEIBwgICAgICAgICAgFAAsgBEHbAGsOIQUHBwcHBwcHBwcHAwcHBwcHBwcBBwcHBwcCBwcHBwcHBQcLIAAgAUEBaiIBNgIUIAEgAkcNCyACIQEMDAsgACABQQFqIgQ2AhQCQCACIARNDQAgACABQQJqIgM2AhQCQCAEIAZqLQAAQfUARw0AIAMgBCACIAIgBEkbIgRGDQEgACABQQNqIgc2AhQgAyAGai0AAEHsAEcEQCAHIQMMAQsgBCAHRg0BIAAgAUEEaiIDNgIUIAYgB2otAABB7ABGDQoLIAVB2ABqIAYgAiADEPkBIAUoAlwhACAFKAJYIQJBFBBxIgFFDQ8gAUEJNgIADA0LIAVB0ABqIAYgAiAEEPkBIAUoAlQhACAFKAJQIQJBFBBxIgFFDQ4gAUEFNgIADAwLIAAgAUEBaiIENgIUAkAgAiAETQ0AIAAgAUECaiIDNgIUAkAgBCAGai0AAEHyAEcNACADIAQgAiACIARJGyIERg0BIAAgAUEDaiIHNgIUIAMgBmotAABB9QBHBEAgByEDDAELIAQgB0YNASAAIAFBBGoiAzYCFCAGIAdqLQAAQeUARg0JCyAFQegAaiAGIAIgAxD5ASAFKAJsIQAgBSgCaCECQRQQcSIBRQ0OIAFBCTYCAAwMCyAFQeAAaiAGIAIgBBD5ASAFKAJkIQAgBSgCYCECQRQQcSIBRQ0NIAFBBTYCAAwLCyAAIAFBAWoiBDYCFAJAIAIgBE0NACAAIAFBAmoiAzYCFAJAIAQgBmotAABB4QBHDQAgAyAEIAIgAiAESRsiBEYNASAAIAFBA2oiBzYCFCADIAZqLQAAQewARwRAIAchAwwBCyAEIAdGDQEgACABQQRqIgg2AhQgBiAHai0AAEHzAEcEQCAIIQMMAQsgBCAIRg0BIAAgAUEFaiIDNgIUIAYgCGotAABB5QBGDQgLIAVB+ABqIAYgAiADEPkBIAUoAnwhACAFKAJ4IQJBFBBxIgFFDQ0gAUEJNgIADAsLIAVB8ABqIAYgAiAEEPkBIAUoAnQhACAFKAJwIQJBFBBxIgFFDQwgAUEFNgIADAoLIAAgAUEBajYCFAwDCyAAKAIAIAAoAggiA2sgCkkEQCAAIAMgCkEBQQEQpAUgACgCCCEDCyAKBEAgACgCBCADaiAJOgAAIANBAWohAwsgACADNgIIIAAgACgCFEEBajYCFEEADAULIAAgAUEBajYCFCALEP0DIgENCAwDCyAEQTBrQf8BcUEKTw0BCwJ/IwBBIGsiByQAIAAoAgwhCAJAAkACQAJAAkAgACgCFCIDIAAoAhAiBEkEQCAAIANBAWoiAjYCFCADIAhqLQAAIgFBMEYEQCACIARPDQQgAiAIai0AAEEwa0H/AXFBCkkNAwwECyABQTFrQf8BcUEITQ0BIAIhAwsgB0EYaiAIIAQgAxD5ASAHKAIcIQIgBygCGCEBQRQQcSIDRQ0EIAMgATYCDCADQQ02AgAgAyACNgIQDAMLIAIgBE8NAQNAIAIgCGotAABBMGtB/wFxQQlLDQIgACACQQFqIgI2AhQgAiAERw0AC0EAIQMMAgsgB0EIaiAIIAQgA0ECaiICIAQgAiAESRsQ+QEgBygCDCECIAcoAgghAUEUEHEiA0UNAiADIAE2AgwgA0ENNgIAIAMgAjYCEAwBC0EAIQMgAiAETw0AAkACQCACIAhqLQAAIgFB5QBGIAFBxQBGckUEQCABQS5HDQMgACACQQFqIgE2AhQgASAETw0BIAEgCGotAABBMGtB/wFxQQlLDQEgAkECaiECA0AgBCACIgFGDQMgAkEBaiECIAEgCGotAAAiBkEwa0H/AXFBCkkNAAsgACABNgIUIAZBIHJB5QBHDQMLAn8jAEEQayIDJAAgACAAKAIUIgFBAWoiAjYCFCAAKAIMIQQCQCACIAAoAhAiCE8NAAJAIAIgBGotAABBK2sOAwABAAELIAAgAUECaiICNgIUCwJAAkACQCADQQhqIAQgCCACIAhJBH8gACACQQFqIgE2AhQgAiAEai0AAEEwa0H/AXFBCU0NASABBSACCxD5ASADKAIMIQEgAygCCCEEQRQQcSICRQ0CIAIgBDYCDCACQQ02AgAgAiABNgIQDAELQQAhAiABIAhPDQADQCABIARqLQAAQTBrQf8BcUEJSw0BIAAgAUEBaiIBNgIUIAEgCEcNAAsLIANBEGokACACDAELAAshAwwCCyAHQRBqIAggBCACQQJqIgIgBCACIARJGxD5ASAHKAIUIQIgBygCECEBQRQQcSIDRQ0CIAMgATYCDCADQQ02AgAgAyACNgIQDAELIAAgBDYCFAsgB0EgaiQAIAMMAQsACyIBRQ0BDAYLIAVByABqIAYgAiABQQFqIgAgAiAAIAJJGxD5ASAFKAJMIQAgBSgCSCECQRQQcSIBRQ0GIAFBCjYCAAwECyAKBEAgACgACCEDIAkhBEEBDAELIAAoAggiAkUEQEEAIQEMBQsgACACQQFrIgM2AgggACgCBCADai0AACEEQQELIQogACgCDCEGAkACfwJAAkACQAJAIAAoAhQiASAAKAIQIgJPBEAgBCEJDAELIAAoAgQhByAEIQkDQAJAAkACQAJAAkACQCABIAZqLQAAIgRBCWsOJAEBCAgBCAgICAgICAgICAgICAgICAgIAQgICAgICAgICAgIAgALIARB3QBGDQIgBEH9AEYNAwwHCyAAIAFBAWoiATYCFCABIAJHDQQgAiEBDAULIApFDQYgACABQQFqIgE2AhQMBgsgCUH/AXFB2wBHDQQMAQsgCUH/AXFB+wBHDQMLIAAgAUEBaiIBNgIUIANFBEBBACEBDAsLIAAgA0EBayIDNgIIIAMgB2otAAAhCUEBIQogASACSQ0ACwtBAiEEAkAgCUH/AXEiAEHbAEcEQCAAQfsARw0BQQMhBAsgBUFAayAGIAIgAUEBaiIAIAIgACACSRsQ+QEgBSgCRCEAIAUoAkAhAkEUEHEiAUUNCiABIAQ2AgAMCAtBpPjGAEEoQbjnwAAQ6wcACyAKRQ0AQQcgCUH/AXEiAEHbAEYNAhogAEH7AEYNAUGk+MYAQShByOfAABDrBwALIAlB/wFxQfsARw0CIAEgAkkEQANAAkACQCABIAZqLQAAQQlrIgNBGUsNAEEBIAN0QZOAgARxDQEgA0EZRw0AIAAgAUEBajYCFCALEP0DIgENCiAAKAIMIQYCQAJAIAAoAhQiASAAKAIQIgJJBEADQAJAIAEgBmotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEAwsgACABQQFqIgE2AhQgASACRw0ACyACIQELIAVBMGogBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAjQhACAFKAIwIQJBFBBxIgFFDQ0gAUEDNgIADAsLIAVBKGogBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAiwhACAFKAIoIQJBFBBxIgFFDQwgAUEGNgIADAoLIAAgAUEBaiIBNgIUDAYLIAVBGGogBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAhwhACAFKAIYIQJBFBBxIgFFDQogAUERNgIADAgLIAAgAUEBaiIBNgIUIAEgAkcNAAsgAiEBCyAFQSBqIAYgAiABQQFqIgAgAiAAIAJJGxD5ASAFKAIkIQAgBSgCICECQRQQcSIBRQ0HIAFBAzYCAAwFC0EICyEDIAVBEGogBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAhQhACAFKAIQIQJBFBBxIgFFDQUgASADNgIADAMLQQEhCiABIAJJDQALCyAFQThqIAYgAiABQQFqIgAgAiAAIAJJGxD5ASAFKAI8IQAgBSgCOCECQRQQcSIBRQ0CIAFBBTYCAAsgASACNgIMIAEgADYCEAsgBUGAAWokACABDwsAC+UQAgp/B30gA0EITwRAIAAgACADQQN2IgNBBHQiBWogACADQRxsIghqIAMgBBChASEAIAEgASAFaiABIAhqIAMgBBChASEBIAIgAiAFaiACIAhqIAMgBBChASECC0MAAIA/IRACfwJAIAAoAgAiBSAEKAIAQQRqKAIAIgMoAggiCEkEQCABKAIAIQYgAygCBCILIAVBGGxqIgQtABMiBSAELQASIgcgBC0AESIKIAcgCksbIgcgBSAHSxsiBwR9QwAAQMEgAyoCRCADLQBYQQJGIgUbIg9DAAAQQSADKgJIIAUbIA+TQwAAfkOVIAdBAWtB/wFxs5SSEIkEIg8gD5IFQwAAAAALIRIgBEEMai8BACIEQf//AXEiDUUEQCAEQRB0DAMLIARB/wdxIQUgBEGAgAJxIQogBEGA+AFxIglBgPgBRgRAIApBEHQiCkGAgID8B3IgBUUNAxogCiAFQQ10ckGAgID+B3IMAwsgCkEQdCEKIAlFDQEgCUENdEGAgID8AHEgBUENdHJBgICAwANqIApyDAILIAUgCEHcu8cAEIwHAAsgBSAFZ0EQayIFQf//A3FBCGp0Qf///wNxIApBgICA2ANyIAVBF3Rrcgu+Ig9DAACAP14EQCAPEMYFQ1T4LUCUQwAAgD+SkSEQC0MAAIA/IQ8CfwJAIAYgCEkEQCALIAZBGGxqIgUtABMiBiAFLQASIgogBS0AESIJIAkgCkkbIgogBiAKSxsiCgR9QwAAQMEgAyoCRCADLQBYQQJGIgYbIhFDAAAQQSADKgJIIAYbIBGTQwAAfkOVIApBAWtB/wFxs5SSEIkEIhEgEZIFQwAAAAALIRMgBUEMai8BACIFQf//AXEiDkUEQCAFQRB0DAMLIAVB/wdxIQYgBUGAgAJxIQkgBUGA+AFxIgxBgPgBRgRAIAlBEHQiCUGAgID8B3IgBkUNAxogCSAGQQ10ckGAgID+B3IMAwsgCUEQdCEJIAxFDQEgDEENdEGAgID8AHEgBkENdHJBgICAwANqIAlyDAILIAYgCEHcu8cAEIwHAAsgBiAGZ0EQayIGQf//A3FBCGp0Qf///wNxIAlBgICA2ANyIAZBF3Rrcgu+IhFDAACAP14EQCAREMYFQ1T4LUCUQwAAgD+SkSEPCyACKAIAIQkgBwR9QwAAQMEgAyoCRCADLQBYQQJGIgYbIhFDAAAQQSADKgJIIAYbIBGTQwAAfkOVIAdBAWtB/wFxs5SSEIkEIhEgEZIFQwAAAAALIRRDAACAPyERAn8gBEEQdCANRQ0AGiAEQf8HcSEGIARBgIACcSEHIARBgPgBcSIEQYD4AUYEQCAHQRB0IgRBgICA/AdyIAZFDQEaIAQgBkENdHJBgICA/gdyDAELIAdBEHQiByAEQQ10QYCAgPwAcSAGQQ10ckGAgIDAA2pyIAQNABogBiAGZ0EQayIEQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIARBF3Rrcgu+IhVDAACAP14EQCAVEMYFQ1T4LUCUQwAAgD+SkSERCwJ/AkAgCCAJSwRAIBIgEJQiECATIA+UYCALIAlBGGxqIgQtABMiBiAELQASIgcgBC0AESIJIAcgCUsbIgcgBiAHSxsiBgR9QwAAQMEgAyoCRCADLQBYQQJGIgcbIg9DAAAQQSADKgJIIAcbIA+TQwAAfkOVIAZBAWtB/wFxs5SSEIkEIg8gD5IFQwAAAAALIRJFIQsgECAQWyEMIARBDGovAQAiBEH//wFxIg1FBEAgBEEQdAwDCyAEQf8HcSEIIARBgIACcSEHIARBgPgBcSIJQYD4AUYEQCAHQRB0IgdBgICA/AdyIAhFDQMaIAcgCEENdHJBgICA/gdyDAMLIAdBEHQhByAJRQ0BIAlBDXRBgICA/ABxIAhBDXRyQYCAgMADaiAHcgwCCyAJIAhB3LvHABCMBwALIAggCGdBEGsiCEH//wNxQQhqdEH///8DcSAHQYCAgNgDciAIQRd0a3ILQwAAgD8hD74iEEMAAIA/XgRAIBAQxgVDVPgtQJRDAACAP5KRIQ8LIAsgDHEiCCAUIBGUIhAgEFsgECASIA+UYEVxRgR/IAIgASAIIAoEfUMAAEDBIAMqAkQgAy0AWEECRiIAGyIPQwAAEEEgAyoCSCAAGyAPk0MAAH5DlSAKQQFrQf8BcbOUkhCJBCIPIA+SBUMAAAAACwJ/IAVBEHQgDkUNABogBUH/B3EhACAFQYCAAnEhASAFQYD4AXEiAkGA+AFGBEAgAUEQdCIBQYCAgPwHciAARQ0BGiABIABBDXRyQYCAgP4HcgwBCyABQRB0IgEgAkENdEGAgID8AHEgAEENdHJBgICAwANqciACDQAaIAAgAGdBEGsiAEH//wNxQQhqdEH///8DcSABQYCAgNgDciAAQRd0a3ILviIPQwAAgD9eBH0gDxDGBUNU+C1AlEMAAIA/kpEFQwAAgD8LlCIPIA9bIA8gBgR9QwAAQMEgAyoCRCADLQBYQQJGIgAbIhBDAAAQQSADKgJIIAAbIBCTQwAAfkOVIAZBAWtB/wFxs5SSEIkEIhAgEJIFQwAAAAALAn8gBEEQdCANRQ0AGiAEQf8HcSEAIARBgIACcSEBIARBgPgBcSICQYD4AUYEQCABQRB0IgFBgICA/AdyIABFDQEaIAEgAEENdHJBgICA/gdyDAELIAFBEHQiASACQQ10QYCAgPwAcSAAQQ10ckGAgIDAA2pyIAINABogACAAZ0EQayIAQf//A3FBCGp0Qf///wNxIAFBgICA2ANyIABBF3Rrcgu+IhBDAACAP14EfSAQEMYFQ1T4LUCUQwAAgD+SkQVDAACAPwuUYEVxcxsFIAALC+oRAw1/AXsJfQJAAkACQAJAAkAgACgCCCIJRQRAQQEhBkEBIQoMAQsgACgCBCEFIAkQcSIKRQ0CQwAAEEEgACoCSCAALQBYQQJGIgQbQwAAQMEgACoCRCAEGyITk0MAAH5DlSEUIAVBFGohBgNAQQAhBAJAAn8gBkEIay8BACIBQf//AXFFBEAgAUEQdAwBCyABQf8HcSECIAFBgIACcSEHIAFBgPgBcSIBQYD4AUYEQCAHQRB0IgFBgICA/AdyIAJFDQEaIAEgAkENdHJBgICA/gdyDAELIAdBEHQiByABQQ10QYCAgPwAcSACQQ10ckGAgIDAA2pyIAENABogAiACZ0EQayICQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAJBF3Rrcgu+QwAAAABeRQ0AIAZBAWstAAAiAiAGQQJrLQAAIgEgBkEDay0AACIHIAEgB0sbIgEgASACSRsiAkUNACATIBQgAkEBa0H/AXGzlJIQiQRDAAAAAF5FDQBDAACAPyAGLwEAIgJBCHaz/RMgAiAGQQJqLQAAIgFBEHRyQf8BcbP9IAH9DAAAf0MAAH9DAAB/QwAAf0P95wEiDiAO/eQB/QwAAIC/AACAvwAAgL8AAIC//eQBIg79HwEiD4uTIA79HwAiFYuTIhGMQwAAAAAQ4AghECABs0MAAH9DlUMAAAA/lEPbD0lAlCIWEJkCIhIgDyAQIBCMIhcgDv0MAAAAAAAAAAAAAAAAAAAAAP1G/U0iDv3HAf0bAkEBcRuSIg8gESARlCAPIA+UIBUgECAXIA79GwBBAXEbkiIQIBCUkpKRIg+VlP0TIBIgECAPlZT9IAEgEiARIA+VlP0gAiAWEJsC/SADIg79DP///3////9/////f////3/9Tv0MAACAfwAAgH8AAIB/AACAf/05/aQBQQ9HDQAgDiAO/eYBIg4gDiAO/Q0ICQoLDA0ODwABAgMAAQID/eQBIg4gDiAO/Q0EBQYHAAECAwABAgMAAQID/eQB/eMB/R8AQwAAAABeIQQLIAMgCmogBDoAACAGQRhqIQYgCSADQQFqIgNHDQALIAVBGGohAyAJIApqIQZBACEBIAohBAJAAkADQCAEIAZGDQQgAUEBaiECIAQtAABBAUcNASAEQQFqIQQgA0EYaiEDIAIiASAJRw0AC0EAIQEMAQsgAiAJRgRAQQEhAQwBCyABIAlrIQVBASECQQEhAQNAAkACQCACIAVqBEAgAiAEai0AAA0BIAFBAWohAQwCC0GUocEAEN0JAAsgAyABQWhsaiIHIAP9AAIA/QsCACAHQRBqIANBEGopAgA3AgALIANBGGohAyAFIAJBAWoiAmoNAAsLIAAgCSABazYCCAsgACgCFCIHBEBBACECIAAoAhAiASEDIAohBAJAA0ACQCAEIAZHBEAgBC0AAA0BAkAgASACQRhsaiIBKAIUIgVBBU8EQCABKAIIIgFBBGsoAgAiCEF4cSILIAVBAnQiBUEEQQggCEEDcSIIG2pJDQEgCEEAIAsgBUEnaksbDQogARCiAgtBASEFIAJBAWogB0YNBCACIAdrIQhBASEBA0AgAyECAkACQCAGIAEgBGoiC0cEQCACQRhqIQMgCy0AAA0BIAVBAWohBSACQSxqKAIAIgtBBUkNAiACQSBqKAIAIgJBBGsoAgAiDEF4cSINIAtBAnQiC0EEQQggDEEDcSIMG2pJDQwgDEEAIA0gC0EnaksbDQ0gAhCiAgwCC0GkocEAEN0JAAsgAiAFQWhsaiICQShqIANBEGopAgA3AgAgAkEYaiAD/QACAP0LAgALIAggAUEBaiIBag0ACwwECwwHC0GkocEAEN0JAAsgBEEBaiEEIANBGGohAyACQQFqIgIgB0cNAAtBACEFCyAAIAcgBWs2AhQLAkAgACgCICIFBEBBACECQQkhASAKIQQCQAJAA0AgBCAGRg0EIAJBAWohAyAELQAAQQFHDQEgBEEBaiEEIAFBCWohASADIgIgBUcNAAtBACEBDAELIAMgBUYEQEEBIQEMAQsgAiAFayEHIAAoAhwgAWohA0EBIQJBASEBA0ACQAJAIAYgAiAEaiIIRwRAIAgtAAANASABQQFqIQEMAgtB1KHBABDdCQALIAMgAUF3bGoiCCADKQAANwAAIAhBCGogA0EIai0AADoAAAsgA0EJaiEDIAcgAkEBaiICag0ACwsgACAFIAFrNgIgCwJAIAAoAiwiBQRAQQAhAkEPIQEgCiEEAkACQANAIAQgBkYNBCACQQFqIQMgBC0AAEEBRw0BIARBAWohBCABQQ9qIQEgAyICIAVHDQALQQAhAQwBCyADIAVGBEBBASEBDAELIAIgBWshByAAKAIoIAFqIQNBASECQQEhAQNAAkACQCAGIAIgBGoiCEcEQCAILQAADQEgAUEBaiEBDAILQbShwQAQ3QkACyADIAFBcWxqIgggAykAADcAACAIQQdqIANBB2opAAA3AAALIANBD2ohAyAHIAJBAWoiAmoNAAsLIAAgBSABazYCLAsCQCAAKAI4IgUEQEEAIQJBFSEBIAohBAJAAkADQCAEIAZGDQQgAkEBaiEDIAQtAABBAUcNASAEQQFqIQQgAUEVaiEBIAMiAiAFRw0AC0EAIQEMAQsgAyAFRgRAQQEhAQwBCyACIAVrIQcgACgCNCABaiEDQQEhAkEBIQEDQAJAAkAgBiACIARqIghHBEAgCC0AAA0BIAFBAWohAQwCC0HEocEAEN0JAAsgAyABQWtsaiIIIAP9AAAA/QsAACAIQQ1qIANBDWopAAA3AAALIANBFWohAyAHIAJBAWoiAmoNAAsLIAAgBSABazYCOAsCQCAJBEAgCkEEaygCACIAQXhxIgRBBEEIIABBA3EiABsgCWpJDQcgAEEAIAQgCUEnaksbDQEgChCiAgsPCwwGC0HEocEAEN0JAAtBtKHBABDdCQALQdShwQAQ3QkAC0GUocEAEN0JAAsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvcEAIcfwV9IwBBMGsiBiQAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AuAFBAUcNACAAKAKsASAAKAKwASIBQQJ0IAAoArQBIgMgAWpBAnQQ4QghASADQQJ0IgMgACgCZCIFSw0BIAAoAmAhBSAGIAEQuAoiAjYCFCAGIAM2AgggAiADRw0HIAEgBSADEOAJIAFBhAhJDQAgARCbBwsgAEIANwKwASAAQbgBakEAOgAAIAAoAmgiAUGAgICAeEYgACgCdCIDQYCAgIB4RnENAiABQYCAgIB4RyADQYCAgIB4R3FFBEAgBkEANgIoIAZBATYCHCAGQZzgwAA2AhggBkIENwIgIAZBGGoQkgchAQwGC0GAgBAhCiAAKAJkIgNB//8PTQRAQYCAECADIgFrIgUgACgCXCABa0sEQCAAQdwAaiABIAVBBEEEEKQFIAAoAmQhAQsgACgCYCICIAFBAnRqIQUgA0H//w9HBH9B/P8/IANBAnRrIggEQCAFQQAgCPwLAAsgASADayIDQf//D2ohASACIANBAnRqQfz/P2oFIAULQQA2AgAgAUEBaiEKCyAAIAo2AmQgACgCpAEiC0ECdBC2CSEQAkAgACgCMEUNACAAKAI0IgFBhAhJDQAgARCbBwsgACAQNgI0IABBATYCMCAAKAJoIhFBgICAgHhGDQQgACgCdCISQYCAgIB4Rg0DIAtFDQFDAAAAQEMAAIA/IAAtAJwBQQFxGyEhIAAqAowBIAAqAogBIh2TQwAAfkOVIR4gACgCeCEXIAAoAmwhGCAAKAJ8IRMgACgCcCEUIAAoAqwBIRkgACgCYCEOQQAhAQNAIApBgIAEIAsgAWsiAyADQYCABE8bIghBAnQiBUkEQEEAIAUgCkHo38AAEOoHAAsgBiAZIAFBAnQiFSABIAhqIgNBAnQiGhDhCCICELgKIgQ2AhQgBiAFNgIIAkAgBCAFRgRAIA4gBSACEOEJIAJBhAhPBEAgAhCbBwsgASALRg0BIAhBBHQhFiAVIBdqIRsgGCABQQF0aiEPQQAhDEEAIQgCQANAIAwgFkYEQCAIIAhBBGogBUHY38AAEOoHAAsCfyAMIA5qIg1BBGooAgAiAkH//wFxRQRAIAJBEHQMAQsgAkH/B3EhBCACQYCAAnEhByACQYD4AXEiCUGA+AFGBEAgB0EQdCIHQYCAgPwHciAERQ0BGiAHIARBDXRyQYCAgP4HcgwBCyAHQRB0IgcgCUENdEGAgID8AHEgBEENdHJBgICAwANqciAJDQAaIAdBgICA2ANyIARnQRBrIgdBF3RrIAQgB0H//wNxQQhqdEH///8DcXILIRwCfyACQYCAfHEgAkEQdiICQf//AXFFDQAaIAJB/wdxIQQgAkGAgAJxIQcgAkGA+AFxIglBgPgBRgRAIAdBEHQiB0GAgID8B3IgBEUNARogByACQQ10ckGAgID+B3IMAQsgB0EQdCICIAlBDXRBgICA/ABxIARBDXRyQYCAgMADanIgCQ0AGiACQYCAgNgDciAEZ0EQayICQRd0ayAEIAJB//8DcUEIanRB////A3FyCyEJIAYCfyANQQhqKAIAIgRB//8BcUUEQCAEQRB0DAELIARB/wdxIQIgBEGAgAJxIQcgBEGA+AFxIgRBgPgBRgRAIAdBEHQiBEGAgID8B3IgAkUNARogBCACQQ10ckGAgID+B3IMAQsgB0EQdCIHIARBDXRBgICA/ABxIAJBDXRyQYCAgMADanIgBA0AGiAHQYCAgNgDciACZ0EQayIEQRd0ayACIARB//8DcUEIanRB////A3FyCzYCECAGIAk2AgwgBiAcNgIIIA0tAAMhByANQQxqKAIAIgJBCHYhBEMAAAAAIR8gAkH/AXEEQCAdIB4gAkEBa0H/AXGzlJIQiQQhHwtDAAAAACEgIARB/wFxBEAgHSAeIARBAWtB/wFxs5SSEIkEISALIAYgAkEQdiICQf8BcQR9IB0gHiACQQFrQf8BcbOUkhCJBAVDAAAAAAs4AiAgBiAgOAIcIAYgHzgCGCABIBRJBEAgASATTw0CIA0gBkEIaiAhIAezQwAAf0OVlEMAAAAAkiAGQRhqIA8vAQAgCCAbaigCABCRAiAIQQRqIQggD0ECaiEPIAFBAWohASAWIAxBEGoiDEcNAQwECwsgASAUQbjfwAAQjAcACyABIBNByN/AABCMBwALDAgLIAYgECAVIBoQ4QgiARC4CiICNgIUIAYgBTYCCCACIAVGBEAgASAOIAUQ4AkgAUGECE8EQCABEJsHCyADIgEgC0kNAQwDCwsMBgtBACADIAVB/OvAABDqBwALIBJBgICAgHhyQYCAgIB4RwRAIAAoAngiAUEEaygCACIDQXhxIgUgEkECdCICQQRBCCADQQNxIgMbakkNBiADQQAgBSACQSdqSxsNByABEKICCyAAQYCAgIB4NgJ0IBFBgICAgHhyQYCAgIB4RwRAIAAoAmwiAUEEaygCACIDQXhxIgUgEUEBdCICQQRBCCADQQNxIgMbakkNBiADQQAgBSACQSdqSxsNByABEKICCyAAQYCAgIB4NgJoC0EAIQEgAEEANgJkIAAoAmAhAyAAKAJcIQUgAEKAgICAwAA3AlwgBUUNAiADQQRrKAIAIgBBeHEiAiAFQQJ0IgVBBEEIIABBA3EiABtqSQ0EIABBACACIAVBJ2pLGw0FIAMQogIMAgtBqN/AABDdCQALQZjfwAAQ3QkACyAGQTBqJAAgAQ8LIAZBADYCGEEAIAZBFGogBkEIaiAGQRhqQeD5xAAQ9QcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvuDwEOfyMAQYABayICJAACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAihBAkcEQCABKALUASIDIAEoAtgBQRxsaiEFAkACQANAIAMiBCAFRiIDDQFB1c3HAEEVIAQoAhQgBCgCGBCsA0UEQCAEQQBBHCADG2ohA0HqzccAQRUgBCgCFCAEKAIYEKwDRQ0BCwsgBCgCGCINQQBIDQMgBCgCFCEDAkAgDUUEQEEBIQEMAQsgDRBxIgFFDQoLIA0EQCABIAMgDfwKAAALIAQoAgBBAUYEQCAEKAIMIgdBAEgNDCAEKAIIIQMCQCAHRQRAQQEhBAwBCyAHEHEiBEUNCwsgBwRAIAQgAyAH/AoAAAsgByEDDAcLIAQoAgwiCUEASA0EIAQoAgghAwJAIAlFBEBBASEKDAELIAkQcSIKRQ0KCyAJBEAgCiADIAn8CgAACyACQThqIAogCUGAgIABEN8BQQEhBCACKAI8IQggAgJ/AkAgAigCOEEBRgRAIAhBgICAgHhHDQFBAwwCCyACKAJEIQsgAigCQCEGIAJBADYCQCACQoCAgIAQNwI4QQAhAyALBEAgAkE4akEAIAsQ7wUgAigCQCEDIAYhBQNAQQFBAiAFLAAAIgdBAE4iDhsiDCACKAI4IAMiBGtLBH8gAkE4aiAEIAwQ7wUgAigCQAUgBAsgAigCPCIEaiIPIA4EfyAHBSAPIAdBvwFxOgABIAdBwAFxQQZ2QUByCzoAACACIAMgDGoiAzYCQCAFQQFqIQUgC0EBayILDQALIAIoAjghBwsgCQRAIApBBGsoAgAiBUF4cSIOQQRBCCAFQQNxIgUbIAlqSQ0PIAVBACAOIAlBJ2pLGw0QIAoQogILIAgEQCAGQQRrKAIAIgVBeHEiCkEEQQggBUEDcSIFGyAIakkNDyAFQQAgCiAIQSdqSxsNECAGEKICCyADQQBODQgMDQsgCARAIAIoAkAiBUEEaygCACIDQXhxIgRBBEEIIANBA3EiAxsgCGpJDQ4gA0EAIAQgCEEnaksbDQ8gBRCiAgtBBAs6ACkgAkEeOgAoIAJBOGogAkEoahD8AyACQRBqIgUgAkHMAGr9AAIA/QsDACACQSBqIgQgAkHcAGooAgA2AgAgAiAC/QACPP0LAwAgAigCOCIDQQZGDQEgACAC/QADAP0LAgQgAEEkaiAEKAIANgIAIABBFGogBf0AAwD9CwIAIAAgAzYCAAwICyABKALIASIDIAEoAswBQRhsaiEFAkADQCADIgQgBUYiAQ0BQdXNxwBBFSAEKAIEIAQoAggQrANFBEAgBEEAQRggARtqIQNB6s3HAEEVIAQoAgQgBCgCCBCsA0UNAQsLIAQoAggiBkEASA0LIAQoAgQhAwJAIAZFBEBBASEBDAELIAYQcSIBRQ0KCyAGBEAgASADIAb8CgAACyAEKAIUIgVBAEgNCyAEKAIQIQQCQCAFRQRAQQEhAwwBCyAFEHEiA0UNCgsgBQRAIAMgBCAF/AoAAAsgACAFNgIMIAAgAzYCCCAAIAU2AgQgAEEGNgIAIAZFDQogAUEEaygCACIAQXhxIgNBBEEIIABBA3EiABsgBmpJDQwgAEEAIAMgBkEnaksbDQ0gARCiAgwKCyAAQoaAgICAgICAgH83AwAMCQsgAiAKIAlBfxDfASACKAIEIQwCQAJAIAIoAgBBAUYEQCAMQYCAgIB4Rg0BIAJBADYCSCACQQE2AjwgAkGoscQANgI4IAJCBDcCQCACQThqQbCxxAAQjQgACyAMQYCAgIB4Rw0BCyACQZ4GOwFkIAAgAkHkAGoQ/AMMBwsgAigCDCELIAIoAgghByACQQA2AnwgAkKAgICAEDcCdEEBIQhBACEDIAsEQCACQfQAakEAIAsQ7wUgAigCfCEGIAchBQNAQQFBAiAFLAAAIgNBAE4iDhsiDyACKAJ0IAYiBGtLBH8gAkH0AGogBCAPEO8FIAIoAnwFIAQLIAIoAngiCGoiBCAOBH8gAwUgBCADQb8BcToAASADQcABcUEGdkFAcgs6AAAgAiAGIA9qIgY2AnwgBUEBaiEFIAtBAWsiCw0ACyACKAJ0IQMLIAwEQCAHQQRrKAIAIgRBeHEiBUEEQQggBEEDcSIEGyAMakkNCyAEQQAgBSAMQSdqSxsNDCAHEKICCyAGQQBIDQMMBQtBrJjHABDdCQALQaTvwQAQ/wcMBQtB2JrIABD/BwALQdiayAAQ/wcACwJAIANFBEBBASEIDAELIAMQcSIIRQ0DCyADBEAgCCAEIAP8CgAACyADIQYgBCEKIAchCQsCQCAGRQRAQQEhBwwBCyAGEHEiB0UNAgsgBgRAIAcgCCAG/AoAAAsgAwRAIAhBBGsoAgAiBEF4cSIFQQRBCCAEQQNxIgQbIANqSQ0FIARBACAFIANBJ2pLGw0GIAgQogILIAAgBjYCDCAAIAc2AgggACAGNgIEIABBBjYCAAsgDQRAIAFBBGsoAgAiAEF4cSIDQQRBCCAAQQNxIgAbIA1qSQ0EIABBACADIA1BJ2pLGw0FIAEQogILIAlFDQEgCkEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgCWpJDQMgAEEAIAEgCUEnaksbDQQgChCiAgwBCwALIAJBgAFqJAAPC0Gk78EAEP8HAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL7Q8CIX8VfSMAQfAAayIGJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AuAFBAUcNACAAKAKsASAAKAKwASIFQQJ0IAAoArQBIgcgBWpBAnQQ4QghBSAHQQJ0IgcgACgCZCIISw0BIAAoAmAhCCAGIAUQuAoiCTYCFCAGIAc2AhggByAJRw0LIAUgCCAHEOAJIAVBhAhJDQAgBRCbBwsgAEIANwKwASAAQbgBakEAOgAAIAAoAhBFDQggACgCFCABQQJ0IAEgAmpBAnQQ4QghDQJAIAJBAnQiASAAKAJkIgVNBEAgACABNgJkIAAoAmAhCiABIQcMAQsgBSEIIAEgBWsiByAAKAJcIAVrSwRAIABB3ABqIAUgB0EEQQQQpAUgACgCZCEICyAAKAJgIgogCEECdCIJaiELIAdBAk8EQCABIAVBf3NqQQJ0IgwEQCALQQAgDPwLAAsgAkEEdCAFQQJ0ayAKaiAJakEEayELIAcgCGpBAWshCAsgC0EANgIAIAAgCEEBaiIHNgJkIAEgB0sNAgsgBiANELgKIgU2AhQgBiABNgIYIAEgBUcNCiAKIAEgDRDhCSAEQRVuIRAgBEEUa0EVbkEBaiERIARBE2tBFW5BAWohEiAEQRJrQRVuQQFqIRMgBEERa0EVbkEBaiEUIARBEGtBFW5BAWohFSAEQQ9rQRVuQQFqIRYgBEEOa0EVbkEBaiEXIARBDWtBFW5BAWohGCAEQQxrQRVuQQFqIRkgBEELa0EVbkEBaiEaIARBCmtBFW5BAWohGyAEQQlrQRVuQQFqIRwgBEEIa0EVbkEBaiEdIARBB2tBFW5BAWohHiAEQQZrQRVuQQFqIR8gBEEFa0EVbkEBaiEgIARBBGtBFW5BAWohISAEQQNrQRVuQQFqISIgBEECa0EVbkEBaiEjIARBAWtBFW5BAWohJEMAAPhBIAAqApgBlSEmQQAhBQNAIAVBAnQiACAHTw0DIABBAXIiASAHTw0EIABBAnIiCCAHTw0FIABBA3IiCSAHTw0HIAogAEECdGooAgAhACAGIAogAUECdGooAgA2AgggBiAANgIEIAYgCiAJQQJ0aigCADYCECAGIAogCEECdGooAgA2AgxBACEMIAZBHGoiDkEAQdQA/AsAIAVBFWwhASAFQQFqQQYhAEEAIQsDQCAGQQRqIABBBmsiD0EDdkH8////AXFqIiUoAgAgD0EecXYhCCAOIA9B4AFxQSBqIABJBH8gC0EPSw0IICUoAgQgDEEecXQgCHIFIAgLQRp0QRp1siAmlTgCACAAQQZqIQAgDEEGayEMIA5BBGohDiALQQFqIgtBFUcNAAsgBSAkRg0KIAYqAmwhJyAGKgJoISggBioCZCEpIAYqAmAhKiAGKgJcISsgBioCWCEsIAYqAlQhLSAGKgJQIS4gBioCTCEvIAYqAkghMCAGKgJEITEgBioCQCEyIAYqAjwhMyAGKgI4ITQgBioCNCE1IAYqAjAhNiAGKgIsITcgBioCKCE4IAYqAiQhOSAGKgIgITogAyABQQJ0aiAGKgIcOAIAIAFBAWohACAFICNGBEAgACEBDAsLIAMgAEECdGogOjgCACABQQJqIQAgBSAiRgRAIAAhAQwLCyADIABBAnRqIDk4AgAgAUEDaiEAIAUgIUYEQCAAIQEMCwsgAyAAQQJ0aiA4OAIAIAFBBGohACAFICBGBEAgACEBDAsLIAMgAEECdGogNzgCACABQQVqIQAgBSAfRgRAIAAhAQwLCyADIABBAnRqIDY4AgAgAUEGaiEAIAUgHkYEQCAAIQEMCwsgAyAAQQJ0aiA1OAIAIAFBB2ohACAFIB1GBEAgACEBDAsLIAMgAEECdGogNDgCACABQQhqIQAgBSAcRgRAIAAhAQwLCyADIABBAnRqIDM4AgAgAUEJaiEAIAUgG0YEQCAAIQEMCwsgAyAAQQJ0aiAyOAIAIAFBCmohACAFIBpGBEAgACEBDAsLIAMgAEECdGogMTgCACABQQtqIQAgBSAZRgRAIAAhAQwLCyADIABBAnRqIDA4AgAgAUEMaiEAIAUgGEYEQCAAIQEMCwsgAyAAQQJ0aiAvOAIAIAFBDWohACAFIBdGBEAgACEBDAsLIAMgAEECdGogLjgCACABQQ5qIQAgBSAWRgRAIAAhAQwLCyADIABBAnRqIC04AgAgAUEPaiEAIAUgFUYEQCAAIQEMCwsgAyAAQQJ0aiAsOAIAIAFBEGohACAFIBRGBEAgACEBDAsLIAMgAEECdGogKzgCACABQRFqIQAgBSATRgRAIAAhAQwLCyADIABBAnRqICo4AgAgAUESaiEAIAUgEkYEQCAAIQEMCwsgAyAAQQJ0aiApOAIAIAFBE2ohACAFIBFGBEAgACEBDAsLIAMgAEECdGogKDgCACABQRRqIQEgBSAQRg0KIAMgAUECdGogJzgCACIFIAJHDQALDAcLQQAgByAIQfzrwAAQ6gcAC0EAIAEgB0GM1cAAEOoHAAsgACAHQbzUwAAQjAcACyABIAdBzNTAABCMBwALIAggB0Hc1MAAEIwHAAtBBEEEQfDPxwAQjAcACyAJIAdB7NTAABCMBwALIA1BhAhJDQAgDRCbBwsgBkHwAGokAA8LIAEgBEH81MAAEIwHAAsgBkEANgIcQQAgBkEUaiAGQRhqIAZBHGpB4PnEABD1BwALvxECE38EfiMAQSBrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgZBgICAgHhzIAZBAE4bQRRrDgIBAgALIAEgAkEfakGE48AAEJUIIQEgAEECNgIAIAAgATYCBAwKCyABKAIMIgNFDQIgAkEEaiABKAIIIgcQoAQgAigCCCEGIAIoAgQiCkGAgICAeEYEQCAGIQEMCQsgAigCFCEJIAIoAhAhBSADQQFGDQEgAigCGCEMIAIoAgwhDSACQQRqIgsgB0EQahDTAiACKAIIIQEgAigCBA0HAkACQAJAIANBAkcEQCACKQIMIRUgCyAHQSBqENMCIAIoAgghCyACKAIEBEAgCyEBDAwLIANBA0YNASACKQIMIRYCQAJAAkBBFSAHQTBqIg4oAgAiD0GAgICAeHMgD0EAThtBEGsOAwYBBgALIAJBBGogDhCfBQwBCyACQQRqIAcoAjQQnwULIAIoAgwhECACKAIIIQQgAigCBEUNAiAEIQEMCwtBAkHA/cAAQYD9wAAQ2wYhAQwKC0EDQcD9wABBgP3AABDbBiEBDAkLQQEhCAsgA0EERwRAIAJBBDYCBCADQfz///8AakH/////AHFBBGogAkEEakHolcEAENsGIQEgAEECNgIAIAAgATYCBCAKBEAgBiAKQQEQogcLIAVFDQogCSAFQQEQogcMCgsgACAWNwI0IAAgCzYCMCAAIBU3AiggACABNgIkIAAgDDYCICAAIAk2AhwgACAFNgIYIAAgDTYCFCAAIAY2AhAgACAKNgIMIAAgEDYCCCAAIAQ2AgQgACAINgIADAkLIAEoAggiBkUNAyAGQQV0IRIgASgCBCETQQAhBkECIQVBgICAgHghBwNAAkACQAJAAkACQAJAAkACQEEVIA4gE2oiASgCACIDQYCAgIB4cyADQQBOG0EBaw4PAQAAAgAAAAAAAAADBAUGAAsgASACQR9qQZTkwAAQlQghAyACQQE6AAQgAiADNgIIDAYLIAJBADoABCACQQQgAUEEai0AACIDIANBBE8bOgAFDAULIAJBADoABCACQgQgAUEIaikDACIVIBVCBFobPAAFDAQLIAFBCGooAgAhAwJ/AkACQAJAAkAgAUEMaigCAEEEaw4CAQADCyADQZD9wABBBRDbBw0BQQAMAwtBASADKAAAQe3SuZsHRg0CGiADKAAAQe3C4ZsHRw0BQQIMAgsgA0Gd/cAAQQUQ2wcNAEEDDAELQQQLIQMgAkEAOgAEIAIgAzoABQwDCyABQQRqKAIAIQMCfwJAAkACQAJAIAFBCGooAgBBBGsOAgEAAwsgA0GQ/cAAQQUQ2wcNAUEADAMLQQEgAygAAEHt0rmbB0YNAhogAygAAEHtwuGbB0cNAUECDAILIANBnf3AAEEFENsHDQBBAwwBC0EECyEDIAJBADoABCACIAM6AAUMAgsgAkEEaiABQQhqKAIAIAFBDGooAgAQ2QUMAQsgAkEEaiABQQRqKAIAIAFBCGooAgAQ2QULIAItAARBAUYEQCACKAIIIQRBASEFDAYLIAFBEGohAwJAAkACQAJAAkACQAJAIAItAAUOBAABAgMGCyAHQYCAgIB4RwRAQQEhBUGQ/cAAQQUQnwchBAwMCyACQQRqIAMQoAQgAigCCCEIIAIoAgQiB0GAgICAeEYEQCAIIQQMDQsgAigCGCEQIAIoAhQhDCACKAIQIQkgAigCDCERDAULIAYNAiACQQRqIAMQ0wIgAigCCCEEIAIoAgRBAUYEQEEBIQUMCwsgAikCDCEWQQEhBgwECyAPDQIgAkEEaiADENMCIAIoAgghCyACKAIEQQFGBEBBASEFIAshBAwKCyACKQIMIRdBASEPDAMLIAVBAkcEQEEBIQVBnf3AAEEFEJ8HIQQMCQtBACEFAkACfwJAAkBBFSADKAIAIhRBgICAgHhzIBRBAE4bQRBrDgMDAQMACyACQQRqIAMQnwUgDSACKAIMIAIoAgQiARsMAQsgAkEEaiABQRRqKAIAEJ8FIA0gAigCDCACKAIEIgEbCyENIAIoAgghCkEBIQUgAUUNACAKIQQMCQsgCq0gDa1CIIaEIRgMAgtBASEFQZX9wABBBBCfByEEDAcLQQEhBUGZ/cAAQQQQnwchBAwGCyAOQSBqIg4gEkcNAAsMAgtBAUHA/cAAQYD9wAAQ2wYhAQwFC0EAQcD9wABBgP3AABDbBiEBDAULIAdBgICAgHhGDQAgAiAQNgIYIAIgDDYCFCACIAk2AhAgAiARNgIMIAIgCDYCCCACIAc2AgQgBkEAIA8bRQRAQZn9wABBlf3AACAGG0EEEJwHIQQgAkEEahDmBUEAIQUMAgsgACAXNwI0IAAgCzYCMCAAIBY3AiggACAENgIkIAAgEDYCICAAIAw2AhwgACAJNgIYIAAgETYCFCAAIAg2AhAgACAHNgIMIABCACAYIAVBAkYiARsiFT4CBCAAQQAgBSABGzYCACAAIBVCIIg+AggMBQtBgICAgHghB0EBIQVBkP3AAEEFEJwHIQQLIAVFIAdBgICAgHhGcg0AIAcEQCAIQQRrKAIAIgFBeHEiBkEEQQggAUEDcSIBGyAHakkNBSABQQAgBiAHQSdqSxsNBiAIEKICCyAJRQ0AIAxBBGsoAgAiAUF4cSIIQQRBCCABQQNxIgEbIAlqSQ0EIAFBACAIIAlBJ2pLGw0FIAwQogILIAAgBDYCBCAAQQI2AgAMAgsgCgRAIAZBBGsoAgAiBEF4cSIIQQRBCCAEQQNxIgQbIApqSQ0DIARBACAIIApBJ2pLGw0EIAYQogILIAVFDQAgCUEEaygCACIEQXhxIghBBEEIIARBA3EiBBsgBWpJDQIgBEEAIAggBUEnaksbDQMgCRCiAgsgACABNgIEIABBAjYCAAsgAkEgaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALqBECB30QfyMAQSBrIgwkACAAEKMFIABBwAFqQQA6AAAgAEIANwK4ASAAIAIQ0AQCQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJ/AkACQAJAAkACQCAAKAIAQQFHDQAgACgCCEUNACACQQJ0Ig0gACgCfCIRSw0SIA0gACgCiAEiEksNEyAAKAJ4IRQgACgChAEhFiAMIAAoAgQiGSABQQJ0IhcgASACakECdCIYEOEIIgEQuAoiDjYCACAMIA02AgQgDSAORw0YIBQgDSABEOEJIAFBhAhPBEAgARCbBwsgAgRAIBRBDGohGiANQQJrIRsgAkH/////A3EhFUEAIQFBACEOA0AgASAETw0WIAFBAWoiDyAETw0XIAFBAmoiDyAETw0YIBVFDRlDAAB/QyADQQRqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgAyoCACIJiyIGIAUgA0EIaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIPQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByATIBpqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgD0EbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACABQQNqIARPDQMgAUEEaiAETw0IIAFBBWogBE8NDSANIA5GDRNDAAB/QyADQRBqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EMaioCACIJiyIGIAUgA0EUaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIQQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByATIBZqIg9DAAB/QyAGIAWVIgYgBkMAAH9DXhsQuQf8ASAQQRt0QYCAgAhBACAJQwAAAABdG3JBgICAEEEAIAhDAAAAAF0bckGAgIAgQQAgCkMAAAAAXRtyciAH/AFBCHRyQwAAf0MgCyAFlSIFIAVDAAB/Q14bELkH/AFBEHRyNgIAIAFBBmogBE8NBCABQQdqIARPDQkgAUEIaiAETw0OQwAAf0MgA0EcaioCACIIiyIFQwAAgD9DAAD4QUMAAAAAIANBGGoqAgAiCYsiBiAFIANBIGoqAgAiCosiCxDgCBDgCBCeBY5DAABwQZIiBSAFQwAAAABdGyIFIAVDAAD4QV4bELkH/AAiEEEPaxCwBkMAAH9DlSIFlSIHIAdDAAB/Q14bELkHIQcgD0EEakMAAH9DIAYgBZUiBiAGQwAAf0NeGxC5B/wBIBBBG3RBgICACEEAIAlDAAAAAF0bckGAgIAQQQAgCEMAAAAAXRtyQYCAgCBBACAKQwAAAABdG3JyIAf8AUEIdHJDAAB/QyALIAWVIgUgBUMAAH9DXhsQuQf8AUEQdHI2AgAgAUEJaiAETw0FIAFBCmogBE8NCiABQQtqIARPDQ8gDiAbRg0SQwAAf0MgA0EoaioCACIIiyIFQwAAgD9DAAD4QUMAAAAAIANBJGoqAgAiCYsiBiAFIANBLGoqAgAiCosiCxDgCBDgCBCeBY5DAABwQZIiBSAFQwAAAABdGyIFIAVDAAD4QV4bELkH/AAiEEEPaxCwBkMAAH9DlSIFlSIHIAdDAAB/Q14bELkHIQcgD0EIakMAAH9DIAYgBZUiBiAGQwAAf0NeGxC5B/wBIBBBG3RBgICACEEAIAlDAAAAAF0bckGAgIAQQQAgCEMAAAAAXRtyQYCAgCBBACAKQwAAAABdG3JyIAf8AUEIdHJDAAB/QyALIAWVIgUgBUMAAH9DXhsQuQf8AUEQdHI2AgAgAUEMaiAETw0GIAFBDWogBE8NCyABQQ5qIARPDRBDAAB/QyADQTRqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EwaioCACIJiyIGIAUgA0E4aioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIQQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAPQQxqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgEEEbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACADQTxqIQMgAUEPaiEBIBNBEGohEyAVQQFrIRUgDkEEaiEOIAJBAWsiAg0ACwsgDCAZIBcgGBDhCCIBELgKIgI2AgAgDCARNgIEIAIgEUcNGCABIBQgERDgCSABQYQITwRAIAEQmwcLIAwgACgCDCAXIBgQ4QgiABC4CiIBNgIAIAwgEjYCBCABIBJHDRggACAWIBIQ4AkgAEGECEkNACAAEJsHCyAMQSBqJAAPCyABQQNqDAMLIAFBBmoMAgsgAUEJagwBCyABQQxqCyAEQdi8wQAQjAcACyABQQRqDAMLIAFBB2oMAgsgAUEKagwBCyABQQ1qCyAEQei8wQAQjAcACyABQQVqDAMLIAFBCGoMAgsgAUELagwBCyABQQ5qCyAEQfi8wQAQjAcACyAOQQJqIQ4LIA4gDUGIvcEAEIwHAAtBACANIBFBmL3BABDqBwALQQAgDSASQYi8wQAQ6gcACyABIARBmLzBABCMBwALIA8gBEGovMEAEIwHAAsgDyAEQbi8wQAQjAcACyAOQQNqIA1ByLzBABCMBwALIAxBADYCCEEAIAwgDEEEaiAMQQhqQeD5xAAQ9QcAC/8SAwt/BH4CeyMAQaACayIEJAACQCABKAIQIgUoAjAgAk0EQCAAQgM3AwAgAEGEgICAeDYCCAwBCyAFKAIsIAJBuAFsaiEGAkACQCADLQAIRQRAIAYtAKABIQUgAygCACICRQ0BIAVBAXENAgtBACECIANBADYCAAwBC0EAIQIgBUEBcUUNACAAQSE2AhAgAEHknccANgIMIABBg4CAgHg2AgggAEIDNwMADAELAkACQCAGLQBoQQNGBEAgBikDYCERDAELIAEoAgQiBa0hEAJAAkAgBUL/////DyAGKQNQIg8gD0L/////D1obp2siCEEAIAUgCE8bQR1NBEBBqJDIACkDACIRpyECAkAgEUL/AYNCBFEEQCABIA9CHnw3AwggAkH/AXFBBEcNAQwDCyABIBA3AwggAkH/AXFBBEYNAgsgEUIgiKchASARQgiIpyIFIQMCQAJAAkACQCACQf8BcSIIQQFrDgMBAAACCyABLQAIIQMLIANB/wFxQSVGDQELIAQgATYCUCAEQYGAgIB4NgJIIAQgBUEIdCAIcjYCTAwFCyAEQR42AiQgBEGFnscANgIgIAQgBEEgaq1CgICAgCCENwMYIARCATcCrAEgBEEBNgKkASAEQbiexwA2AqABIAQgBEEYajYCqAEgBEHIAGogBEGgAWoQ7AMgAkH/AXFBA0cNBCABKAIAIQIgAUEEaigCACIDKAIAIgUEQCACIAURAwALIAMoAgQiBQRAIAIgBSADKAIIEKIHCyABQQxBBBCiBwwECyABIA9CHnwiETcDCCABKAIAIA8gECAPIBBUG6dqIgUoAABB0JaNIEYNAQsgBEHQAGpB5J7HACgCADYCACAEQdyexwApAgA3A0gMAgsgBTMAHCEPIAUzABohECAEQgE3A6ABIAQgDyAQIBF8fCIRNwOoASAGQeAAaiAEQaABahDIBgsgASARNwMIIAQgBikDQCIPNwNAIAQgDzcDOEGDgICAeCEFAn4CQAJAIAYvAYQBIgdBAkYEQEHgnMcAIQFBICECDAELIAQpAjwhECAPQiCIpyEKIA+nIQggBjMBICEPAn8CQAJAAkAgAgRAIA9QDQFBmIvBACEBQccAIQIMBQsgD1ANAUGFgICAeCEFDAQLIAMoAgQhBwJAIAYtAKIBIgxFBEAgBi0AiwEhCwwBCyAGLwGYAUEBcQ0CC0EADAILQgAMBAsgBi0AnQELIQ0CQCAHRQRAQfis0ZEBIQNBic+VmgIhCUGQ8dmiAyEFDAELQZDx2aIDIQVBic+VmgIhCUH4rNGRASEDA0AgBUH/AXEgAi0AACADc0H/AXFBAnQoAvC9SCADQQh2cyIDQf8BcSAJakGFiKLAAGxBAWoiCUEYdnNBAnQoAvC9SCAFQQh2cyEFIAJBAWohAiAHQQFrIgcNAAsLIAQgBTYCwAEgBCAJNgK8ASAEIAM2ArgBIAQgCjYCrAEgBCAQNwKkASAEIAg2AqABIAQgATYCsAEgBEHQAGpBADYCAEIAIRAgBEIANwNIAkACQAJAIAQpA6gBIg9QRQRAIAEoAgAhCiABKAIEIgWtIRAgBEHIAGohB0EMIQMCfgNAIAogESAQIBAgEVYbpyIIaiEJAkAgBSAIayICIA8gA60iEiAPIBJUG6ciDiACIA5JGyICQQFGBEAgByAJLQAAOgAADAELIAJFDQAgByAJIAL8CgAACyAPIAKtIhJ9IQ8gESASfCERIA8gBSAIRg0BGiADIAJrIgNFDQMgAiAHaiEHIA9QRQ0AC0IACyEQIAEgETcDCAsgBCAQNwOoAUGBgICAeCEFQaiQyAApAwAiEEL/AYNCBFENAQwCCyABIBE3AwggBCAPNwOoAQsgBEG4AWoiASAELQBIEM8GGiABIAQtAEkQzwYaIAEgBC0AShDPBhogASAELQBLEM8GGiABIAQtAEwQzwYaIAEgBC0ATRDPBhogASAELQBOEM8GGiABIAQtAE8QzwYaIAEgBC0AUBDPBhogASAELQBREM8GGiABIAQtAFIQzwYaIAEgBC0AUxDPBiECAkACQCAMBEAgAkH/AXEgDUcNAQwCCyACQf8BcSALRg0BC0GFgICAeCEFDAELIAQgAf0AAgD9CwM4IAQpAqQBIRAgBCgCoAEhCCAEKAKwASIBDQIgCCEFCyAQQiCIpyECIBCnIQELIAAgAjYCECAAIAE2AgwgACAFNgIIIABCAzcDAAwDCyAEKAK0ASEDIAQoAqwBIQogBCAE/QADOP0LAyggBi8BhAEhB0IBCyERIAYoAogBIQsCQAJAQYDAABBxIgVFDQAgEEIgiKchAiAQpyEJAn8CQAJAIAdB//8DcUEBaw4CAQQACyAEIAT9AAMo/QsDkAH9DAAAAAAAIAAAAAAAAAAAAAAgBf0cACETIAj9ESAJ/RwBIAL9HAIgCv0cAyEUQgIhD0EADAELIAQgAzYCtAEgBCABNgKwASAEIAo2AqwBIAQgAjYCqAEgBCAJNgKkASAEIAg2AqABIAQgBP0AAyj9CwO4ASAEQcgBahCZBCAEQeAAaiAEQfABav0AAwD9CwMAIARB8ABqIARBgAJq/QADAP0LAwAgBEGAAWogBEGQAmr9AAMA/QsDACAEIAT9AAPYAf0LA5ABIAQgBCkD6AE3A1ggBEHAAWr9AAQAIRQgBCgC1AEhAyAEKALQASEBIAQoArQBIQkgBP0ABKABIRMgESEPIAQpA7gBIREgBCgCsAELIQdBuAEQcSICRQ0AIAIgAzYCVCACIAE2AlAgAiAU/QsDQCACIBE3AzggAiAJNgI0IAIgBzYCMCACIBP9CwMgIAIgDzcDGCACQgA3AgwgAkKAwAA3AgQgAiAFNgIAIAIgBP0AA5AB/QsDWCACIAQpA1g3A2ggAkHwAGogBEHgAGr9AAMA/QsDACACQYABaiAEQfAAav0AAwD9CwMAIAJBkAFqIARBgAFq/QADAP0LAwAgAkEBOgC0ASACIAs2ArABIAJBADYCqAEgAkIANwOgASAAQgI3AwAgACAGNgIIIABBAjYCqAEgACACNgKsAQwDCwALIAVBgMAAQQEQogcgAEEgNgIQIABB4JzHADYCDCAAQYOAgIB4NgIIIABCAzcDAAwBCyAEIAQpAEk3AA0gBCAELQBIOgAMIAQgBC0AUzoAFyAEIAQvAFE7ABUgBCgCDCEBIAAgBCkCEDcCDCAAIAE2AgggAEIDNwMACyAEQaACaiQAC6UQAQ5/IwBBgAhrIgMkAAJAIAFBA2pBfHEgAWsiBCACSwRAQQEhDkEEIQsMAQsgASAEaiILIAIgBGsiAkF8cWohDiACQQNxIQ8gAkECdiEIIAQhAgsgAEF/cyEAAkAgAkUNAEEAIQQgAkEBRwRAIAJBAXEgAkF+cSECA0AgASAEaiIHQQFqLQAAIActAAAgAHNB/wFxQQJ0KALwvUggAEEIdnMiAHNB/wFxQQJ0KALwvUggAEEIdnMhACACIARBAmoiBEcNAAtFDQELIAEgBGotAAAgAHNB/wFxQQJ0KALwvUggAEEIdnMhAAtBACEFIAhBBW4iAUEBayICQQAgASACTxshCQJAIAhBCkkEQEEAIQcMAQtBACECIAshBEEAIQcDQAJAAkAgAiAITw0AIAggAmsiBkEAIAYgCE0bIgZBAUcEQCAGQQJHBEAgBkEDRwRAIAZBBEcNBCACQQRqIQIMAwsgAkEDaiECDAILIAJBAmohAgwBCyACQQFqIQILIAIgCEHgvcgAEIwHAAsgByAEQQhqKAIAcyIHQf8BcUECdCgC0J1IIAdBBnZB/AdxKALQpUhzIAdBDnZB/AdxKALQrUhzIAdBFnZB/AdxKALQtUhzIQcgBSAEQQRqKAIAcyIFQf8BcUECdCgC0J1IIAVBBnZB/AdxKALQpUhzIAVBDnZB/AdxKALQrUhzIAVBFnZB/AdxKALQtUhzIQUgACAEKAIAcyIAQf8BcUECdCgC0J1IIABBBnZB/AdxKALQpUhzIABBDnZB/AdxKALQrUhzIABBFnZB/AdxKALQtUhzIQAgDCAEQRBqKAIAcyIMQf8BcUECdCgC0J1IIAxBBnZB/AdxKALQpUhzIAxBDnZB/AdxKALQrUhzIAxBFnZB/AdxKALQtUhzIQwgBEEMaigCACAKcyIKQf8BcUECdCgC0J1IIApBBnZB/AdxKALQpUhzIApBDnZB/AdxKALQrUhzIApBFnZB/AdxKALQtUhzIQogAkEFaiECIARBFGohBCANQQFqIg0gCUkNAAsLIAlBBWwiAiAITQRAAkAgAiAIRg0AIAsgAkECdGoiBCgCACEJQQAiBkUEQCADQfDFyABBgAj8CgAACyADIAAgCXMiAEH/AXFBAnRqKAIAIQkgBkUEQCADQfDNyABBgAj8CgAACyADIABBBnZB/AdxaigCACENIAZFBEAgA0Hw1cgAQYAI/AoAAAsgAyAAQQ52QfwHcWooAgAhECAGRQRAIANB8N3IAEGACPwKAAALIAMgAEEWdkH8B3FqKAIAIAkgDXMgEHNzIQAgCCACayICQQFGDQAgBCgCBCEJQQBFBEAgA0HwxcgAQYAI/AoAAAsgAyAFIAlzIABzIgBB/wFxQQJ0aigCACEFIAZFBEAgA0HwzcgAQYAI/AoAAAsgAyAAQQZ2QfwHcWooAgAhCSAGRQRAIANB8NXIAEGACPwKAAALIAMgAEEOdkH8B3FqKAIAIQ0gBkUEQCADQfDdyABBgAj8CgAACyADIABBFnZB/AdxaigCACAFIAlzIA1zcyEAIAJBAkYNACAEKAIIIQZBACIFRQRAIANB8MXIAEGACPwKAAALIAMgBiAHcyAAcyIAQf8BcUECdGooAgAhByAFRQRAIANB8M3IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQYgBUUEQCADQfDVyABBgAj8CgAACyADIABBDnZB/AdxaigCACEJIAVFBEAgA0Hw3cgAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgBiAHcyAJc3MhACACQQNGDQAgBCgCDCEHQQBFBEAgA0HwxcgAQYAI/AoAAAsgAyAHIApzIABzIgBB/wFxQQJ0aigCACEHIAVFBEAgA0HwzcgAQYAI/AoAAAsgAyAAQQZ2QfwHcWooAgAhCiAFRQRAIANB8NXIAEGACPwKAAALIAMgAEEOdkH8B3FqKAIAIQYgBUUEQCADQfDdyABBgAj8CgAACyADIABBFnZB/AdxaigCACAHIApzIAZzcyEAIAJBBEYNACAEKAIQIQVBACIERQRAIANB8MXIAEGACPwKAAALIAMgBSAMcyAAcyIAQf8BcUECdGooAgAhBSAERQRAIANB8M3IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQcgBEUEQCADQfDVyABBgAj8CgAACyADIABBDnZB/AdxaigCACEKIARFBEAgA0Hw3cgAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgBSAHcyAKc3MhACACQQVGDQAgAUEUbEEBIAEgARsiBEEUbGsgC2pBFGohAiAIIARBBWxqIAFBBWxrQQVrIQEDQCACKAIAIQtBACIERQRAIANB8MXIAEGACPwKAAALIAMgACALcyIAQf8BcUECdGooAgAhCyAERQRAIANB8M3IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQggBEUEQCADQfDVyABBgAj8CgAACyADIABBDnZB/AdxaigCACEFIARFBEAgA0Hw3cgAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgCCALcyAFc3MhACACQQRqIQIgAUEBayIBDQALCwJAIA9FDQAgDi0AACAAc0H/AXFBAnQoAvC9SCAAQQh2cyEAIA9BAUYNACAOLQABIABzQf8BcUECdCgC8L1IIABBCHZzIQAgD0ECRg0AIA4tAAIgAHNB/wFxQQJ0KALwvUggAEEIdnMhAAsgA0GACGokACAAQX9zDwsgAiAIIAhB0L3IABDqBwALsB8DDn8HfgN7IwBBIGsiDyQAAkACQCABQSFPBEADQCADRQRAIAEiAiACQQF2aiIGBEAgACEDA0ACQAJ/IAIgBkEBayIGTQRAIAYgAmsMAQsgA0EQaiIA/QADACEaIAMgBkEFdGoiAf0AAwAhGyAAIAFBEGoiAP0AAwD9CwMAIAP9AAMAIRkgAyAb/QsDACABIBn9CwMAIAAgGv0LAwBBAAsiAUEBdCIFQQFyIgAgAiAGIAIgBkkbIgdPDQADQCAFQQJqIgUgB0kEQAJ/AkAgAyAAQQV0aiIEKQMIIhMgAyAFQQV0aiIFKQMIIhJSDQAgBCkDECITIAUpAxAiElINAEEAIAQpAxgiEyAFKQMYIhJRDQEaCyASIBNWCyAAaiEACyADIABBBXRqIggpAxghFyADIAFBBXRqIgQpAxghFiAEKQMIIhQhEyAIKQMIIhghEgJAIBQgGFINACAEKQMQIhMgCCkDECISUg0AIBciEiAWIhNRDQILIBIgE1gNASAIKAIUIQUgCCgCECEBIAggBCkDEDcDECAEIBg+AgggCCAUPgIIIAQgGEIgiD4CDCAIIBRCIIg+AgwgBCAXPgIYIAggFj4CGCAEKQMAIRIgBCAIKQMANwMAIAggEjcDACAEIAE2AhAgBCAFNgIUIAQgF0IgiD4CHCAIIBZCIIg+AhwgACIBQQF0IgVBAXIiACAHSQ0ACwsgBg0ACwsMBAsgACABQQN2IgVB4AFsaiEGIAAgBUEHdGohBwJAIAFBwABPBEAgACAHIAYgBRDvBCEFDAELIAcpAxghGCAAKQMYIRcgACkDCCITIRUgBykDCCISIRQCfwJAIBIgE1INACAAKQMQIhUgBykDECIUUg0AQQAgGCIUIBciFVENARoLIBQgFVYLIQQgBikDGCEWIAYpAwgiFSEUAkACQCATIBVSDQAgACkDECITIAYpAxAiFFINACAXIhMgFiIUUg0AIAAhBSAERQ0BDAILIAAhBSAEIBMgFFRzDQELIAYgBwJ/AkAgEiAVUg0AIAcpAxAiEiAGKQMQIhVSDQBBACAYIhIgFiIVUQ0BGgsgEiAVVAsgBHMbIQULIANBAWshAyAFIABrIQUCfwJAIAJFDQACQAJAIAIpAwgiEyAAIAVqIgQpAwgiElINACACKQMQIhMgBCkDECISUg0AIAIpAxgiEyAEKQMYIhJRDQELIBIgE1YNAQsgD0EQaiIQIABBEGoiDv0AAwD9CwMAIA8gAP0AAwD9CwMAIAT9AAMAIRkgDiAEQRBqIgL9AAMA/QsDACAAIBn9CwMAIAIgEP0AAwD9CwMAIAQgD/0AAwD9CwMAQSAhBSAAQSBqIQogACABQQV0IgZqIQkgDikDACEXIABBGGopAwAhFiAAQQhqKQMAIRMgAP0AAzAhGiAA/QADICEbIAApAzghFEEAIQ1BACELA0AgBSEEIAAgDWoiAkFAayEMIAJBIGohCCATIRICfwJAIBMgAkHIAGopAwAiFVINACACQdAAaikDACIVIBciElINAEEBIAJB2ABqKQMAIhUgFiISUQ0BGgsgEiAVWgsgCiALQQV0aiIF/QADACEZIAhBEGogBUEQaiIC/QADAP0LAwAgCCAZ/QsDACACIAxBEGr9AAMA/QsDACAFIAz9AAMA/QsDACAEQSBqIQUgC2ohCyAAIA1BIGoiDWoiB0FAayICIAlJDQALIBv9HQEhGCACIAlGBH8gB0EgagUgBkFAaiEHA0AgACAEaiICQSBqIQwgAkFAayEIIBMhEgJ/AkAgEyACQcgAaikDACIVUg0AIAJB0ABqKQMAIhUgFyISUg0AQQEgAkHYAGopAwAiFSAWIhJRDQEaCyASIBVaCyAKIAtBBXRqIgb9AAMAIRkgDEEQaiAGQRBqIgL9AAMA/QsDACAMIBn9CwMAIAIgCEEQav0AAwD9CwMAIAYgCP0AAwD9CwMAIAtqIQsgByAEQSBqIgRHDQALIAAgBGpBIGoLIQQgCiALQQV0aiIF/QADACEZIARBEGogBUEQaiIC/QADAP0LAwAgBCAZ/QsDACACIBr9CwMAIAUgG/0LAwACfwJAIBMgGFINACAa/R0AIhggFyITUg0AQQEgFiITIBQiGFENARoLIBMgGFoLIAtqIgQgAU8NBCAQIA79AAMA/QsDACAPIAD9AAMA/QsDACAAIARBBXRqIgX9AAMAIRkgDiAFQRBqIgL9AAMA/QsDACAAIBn9CwMAIAIgEP0AAwD9CwMAIAUgD/0AAwD9CwMAIAEgBEEBaiICayEBIAAgAkEFdGohAEEADAELIA9BEGoiDiAAQRBqIhH9AAMA/QsDACAPIAD9AAMA/QsDACAAIAVqIgT9AAMAIRkgESAEQRBqIgX9AAMA/QsDACAAIBn9CwMAIAUgDv0AAwD9CwMAIAQgD/0AAwD9CwMAQSAhBSAAQSBqIRAgACABQQV0IghqIQogESkDACEXIABBGGopAwAhFiAAQQhqKQMAIRMgAP0AAzAhGiAA/QADICEbIAApAzghFEEAIQ1BACELA0AgBSEEIAAgDWoiBUFAayEJIAVBIGohDCATIRICfwJAIAVByABqKQMAIhUgE1INACAXIhIgBUHQAGopAwAiFVINAEEAIBYiEiAFQdgAaikDACIVUQ0BGgsgEiAVVgsgECALQQV0aiIG/QADACEZIAxBEGogBkEQaiIF/QADAP0LAwAgDCAZ/QsDACAFIAlBEGr9AAMA/QsDACAGIAn9AAMA/QsDACAEQSBqIQUgC2ohCyAAIA1BIGoiDWoiBkFAayIHIApJDQALIBv9HQEhGCAHIApGBH8gBkEgagUgCEFAaiEGA0AgACAEaiIFQSBqIQkgBUFAayEMIBMhEgJ/AkAgBUHIAGopAwAiFSATUg0AIBciEiAFQdAAaikDACIVUg0AQQAgFiISIAVB2ABqKQMAIhVRDQEaCyASIBVWCyAQIAtBBXRqIgj9AAMAIRkgCUEQaiAIQRBqIgX9AAMA/QsDACAJIBn9CwMAIAUgDEEQav0AAwD9CwMAIAggDP0AAwD9CwMAIAtqIQsgBiAEQSBqIgRHDQALIAAgBGpBIGoLIQcgECALQQV0aiIE/QADACEZIAdBEGogBEEQaiIF/QADAP0LAwAgByAZ/QsDACAFIBr9CwMAIAQgG/0LAwACfwJAIBMgGFINACAXIhMgGv0dACIYUg0AQQAgFiITIBQiGFENARoLIBMgGFYLIAtqIgQgAU8NAyAOIBH9AAMA/QsDACAPIAD9AAMA/QsDACAAIARBBXRqIgf9AAMAIRkgESAHQRBqIgX9AAMA/QsDACAAIBn9CwMAIAUgDv0AAwD9CwMAIAcgD/0AAwD9CwMAIAAgBCACIAMQqgEgASAEQX9zaiEBIAdBIGohACAHCyECIAFBIU8NAAsLIAAhCiMAQYAMayIHJAACQCABIgxBAkkNAEEBIQIgACABQQF2Ig1BBXQiA2ohESADIAdqIQYCQCABQQhPBEAgACAHEK4DIBEgBhCuA0EEIQIMAQsgB0EQaiAKQRBq/QADAP0LAwAgByAK/QADAP0LAwAgBiAR/QADAP0LAwAgBkEQaiARQRBq/QADAP0LAwALIAIgDUkEQCACQQV0IQEgAkEBaiEFIAIhAANAIAAhAyAFIQAgByADQQV0IgNqIgQgAyAKaiIDKQMANwMAIARBGGogA0EYaikDACIWNwMAIARBEGogA0EQaikDADcDACAEQQhqIANBCGopAwAiEzcDAAJAAkAgBEEYaykDACIUIBMiElINACAEKQMQIhIgBEEQaykDACIUUg0AIARBCGspAwAiFCAWIhJRDQELIBIgFFoNACAEKQMQIRcgBCkDACEYIAEhBQNAAkAgBSAHaiIIIAhBIGsiA/0AAwD9CwMAIAhBEGogA0EQav0AAwD9CwMAIAVBIEYEQCAHIQMMAQsgBEEgayEEAkAgCEE4aykDACIUIBMiElINACAFIAdqQTBrKQMAIhQgFyISUg0AIAhBKGspAwAiFCAWIhJSDQAgBCEDDAELIAVBIGshBSASIBRUDQELCyADIBg3AwAgCEEIayAWNwMAIAhBEGsgFzcDACAIQRhrIBM3AwALIAFBIGohASAAIAAgDUkiA2ohBSADDQALCyAMIA1rIhAgAksEQCACQQV0IQ4gAkEBaiEFQSAhCCAGIQADQCACIQEgBSECIAYgAUEFdCIBaiIEIAEgEWoiASkDADcDACAEQRhqIAFBGGopAwAiFjcDACAEQRBqIAFBEGopAwA3AwAgBEEIaiABQQhqKQMAIhM3AwACQAJAIARBGGspAwAiFCATIhJSDQAgBCkDECISIARBEGspAwAiFFINACAEQQhrKQMAIhQgFiISUQ0BCyASIBRaDQAgBCkDECEXIAQpAwAhGCAIIQMgACEJA0ACQCAJIA5qIgUgBUEgayIB/QADAP0LAwAgBUEQaiABQRBq/QADAP0LAwAgAyAORgRAIAYhAQwBCyAEQSBrIQQCQCAFQThrKQMAIhQgEyISUg0AIAkgDmpBMGspAwAiFCAXIhJSDQAgBUEoaykDACIUIBYiElINACAEIQEMAQsgA0EgaiEDIAlBIGshCSASIBRUDQELCyABIBg3AwAgBUEIayAWNwMAIAVBEGsgFzcDACAFQRhrIBM3AwALIAhBIGshCCAAQSBqIQAgAiACIBBJIgFqIQUgAQ0ACwsgBkEgayEJIAogDEEFdEEgayIAaiEDIAAgB2ohBSAHIQQDQAJAAkACQCAGKQMIIhIgBCkDCCIUUg0AIAYpAxAiEiAEKQMQIhRSDQAgBikDGCISIAQpAxgiFFINACAKIAT9AAMA/QsDACAKQRBqIARBEGr9AAMA/QsDAAwBCyAKIAYgBCASIBRUGyIA/QADAP0LAwAgCkEQaiAAQRBq/QADAP0LAwAgEiAUWg0AIAZBIGohBgwBCyAEQSBqIQQLIApBIGohCiADAn8CQCAFKQMIIhIgCSkDCCIUUg0AIAUpAxAiEiAJKQMQIhRSDQBBACEBIAUgBSkDGCISIAkpAxgiFFENARoLIAkgBSASIBRUIgEbCyIA/QADAP0LAwAgA0EQaiAAQRBq/QADAP0LAwAgA0EgayEDIAkgAUEFdCIAayEJIAAgBWpBIGshBSANQQFrIg0NAAsgCUEgaiECIAxBAXEEfyAKIAQgBiACIARLIgEbIgD9AAMA/QsDACAKQRBqIABBEGr9AAMA/QsDACAGQQBBICABG2ohBiAEQSBBACABG2oFIAQLIAJGIAYgBUEgakZxDQAQgAgACyAHQYAMaiQADAELAAsgD0EgaiQAC/4PAhh/Bn4jAEEwayIGJAAgACgCPCERIAAoAjghAyAAKAI0IQEgACgCMCEEIAD9DAAAAAAAAAAAAQAAAAEAAAD9CwQwIAAoAkAhAiAAQQA2AkAgACgCSCEFIABBATYCSCAAKAJQIQogACgCTCELIABCADcCTCAGIAU2AgwgBiALNgIQIAYgCjYCFEGo58gAIQxBgAQhCAJAAkACQAJAIAAtAJgBQQFrDgMAAQIDCyAAQaQBaiEMQbQKIQgMAgsgAEH0KmohDEG0CiEIDAELIABBxNQAaiEMQdAEIQgLQaj3yAAhDkEgIQ0CQAJAAkACQCAALQCgAUEBaw4DAAECAwsgAEGkAWohDkG0CiENDAILIABB9CpqIQ5BtAohDQwBCyAAQcTUAGohDkHQBCENCyAAKAIMIgVBQGoiB0FBSQRAQn8gADUCnAGGQn8gADUClAGGQn+FIRwgBSAHSSEJIAJB/wFxQQlLBH8gAgUgBK0gAa1CIIaEIAMpAAAgAkEPca2GhCIapyEEIBpCIIinIQEgAyACQQN2QQFxQQdzaiEDIAJBOHILIQUgAEHIAGohEiACQYB+cSEVIAAoAkQhFiAAQQhqIRNCf4UhHkEAIAcgCRshECAcpyEUAkACQANAAkAgBCADKQAAIAWthiIZp3IhAgJAAkACQAJAAkACQAJAAkACQAJAAkAgBUH/AXEiFyAAKAKUAUkEQCAIIAIgFHEiBEsNASAEIAhBqPjIABCMBwALIAggBCAUcSIETQ0BCyAFQThyIQUgASAZQiCIp3IhDyAMIARBAnRqIgEtAAMhBCABLwEAIQkgAS0AAiIBRQ0BIAohBwwCCyAEIAhBuPjIABCMBwALIAogC08NASAGKAIMIhggCmogCToAACAGIApBAWoiBzYCFAJAIAKtIA+tQiCGhCAErYgiGSAcg6ciAiAISQRAIAUgBGshBSAMIAJBAnRqIgIvAQAhCSACLQADIQQgAi0AAiIBRQ0BIBlCIIinIQ8gGachAgwCCyACIAhByPjIABCMBwALIAcgC08NAiAHIBhqIAk6AAAgBiAKQQJqIgc2AhQgCCAZIAStiCIZIByDpyICTQ0DIAUgBGshBSAZQiCIpyEPIAwgAkECdGoiAi8BACEJIAItAAMhBCACLQACIQEgGachAgsgAyAXQQN2QQdzaiEDIAUgBGshBSACrSAPrUIghoQgBK2IIhpCIIghGSAapyEEIAFB/wFxRQ0FAkACQANAIAFBEHENAiABQcAAcQ0BIAkgGkJ/IAGtQi+DhkJ/hYOnakH//wNxIgIgCEkEQCAErSAZQiCGhCAMIAJBAnRqIgItAAMiAUE/ca2IIhpCIIghGSAapyEEIAUgAWshBSACLwEAIQkgAi0AAiIBRQ0JDAELCyACIAhB6PjIABCMBwALIAFBIHFFDQUgAEEMOgAADAgLIA0gGiABrUIPgyIdiCIZIB6DpyICSw0DIAIgDUH4+MgAEIwHAAsgCiALQbz/yAAQjAcACyAHIAtBvP/IABCMBwALIAIgCEHY+MgAEIwHAAsgDiACQQJ0aiIKLQADIQsgCi0AAiEEAn8gBSABQQ9xayIBQf8BcUEcTwRAIAEhBSADDAELIAFBOHIhBSADKQAAIAGthiAZhCEZIAMgAUH4AXFBA3ZBB3NqCyECIAovAQAhAyAFIAtrIQUgGSALrYghGwJAAkACQAJAIARBEHFFBEADQCAEQcAAcQ0DIA0gAyAbQn8gBK1CL4OGQn+Fg6dqQf//A3EiA00NAiAFIA4gA0ECdGoiAS0AAyIDayEFIBsgA0E/ca2IIRsgAS8BACEDIAEtAAIiBEEQcUUNAAsLIAkgGkJ/IB2GQn+Fg6dqIQkgBSAEQQ9xayEFIBsgBK1CD4MiGogiHUIgiCEZIB2nIQQgAyAbQn8gGoZCf4WDp2pB//8DcSIKIAdLDQIgBkEMaiAKIAlB//8DcRDsAiACIQMMBgsgAyANQYj5yAAQjAcACyAbpyEEQefQwAAhAUEWIQgMAQsCQAJAAkACQCAKIAdrIgEgACgCEE0EQCAAKAIUIgMNASAQIAFrIQcMBAsgAC0AAUEEcUUNAUHVz8AAIQFBHiEIDAQLIAEgA0sNASADIAFrIQcMAgsgBkEANgIoIAZBATYCHCAGQcT5yAA2AhggBkIENwIgIAZBGGpBzPnIABCNCAALIBAgASADayIBayEHIAEgCUH//wNxTw0AIAZBDGogEyAHIBAQlAUgCSABayEJQQAhByADIQELIAZBDGogEyAHIAEgCUH//wNxIgMgASADSRsgB2oQlAUgASADTwRAIAIhAwwECyAGQQxqIAogAyABaxDsAiACIQMMAwsgAEEeOgAADAULIABBHjoAAEHL0MAAIQFBHCEIIAMhAgwECyAHIAtPDQQgBigCDCAHaiAJOgAAIAYgB0EBajYCFAsgESADayAFQfgBcUEDdmpBDk0NACAZpyEBIAYoAhAiCyAGKAIUIgprQYMCSw0BCwtBACEBIAMhAgsgACAWNgJEIAAgETYCPCASIAYpAgw3AgAgACAVIAVBB3EiA3I2AkAgEkEIaiAGQRRqKAIANgIAIAAgAiAFQfgBcUEDdms2AjggACAEQX8gA3RBf3NxrTcDMCABBEAgACAINgKIASAAIAE2AoQBCyAGQTBqJAAPCyAHIAtBvP/IABCMBwALQeT8yABBygBBsP3IABDrBwALkBECCX8EfiMAQeACayIBJAACQAJAAkAgAC0A+ANFBEAgACgCkAEiAkECRw0CIAAoAgBBAkcNAiAAKAK4AiIDQQNLDQFBACECDAMLIAA1ArgCIQogAEEANgK4AiAAIAogACkDcHw3A3AMAgsgAEGQAWohBiABIAAoArQCIgQoAAAiAjYCEAJAAkACQAJAAkACQAJAAkAgAkHSgpGaBEcEQCACQdKCkYIDRw0CIANBCEkNASADIAQoAAQiBUEHakF4cUEIaiICSQ0BIAVBCGoiByADSyAFQXdLcg0DIAFBADYC2AIgASAFNgLUAiABIARBCGo2AtACIAFBIGogAUHQAmoQWSABKAIkIQUgASgCICIIQQJGBEAgBRDOByECDAsLIAFBsAFqIAFBKGpBgAH8CgAAIABBADYCuAIgASAFNgKsASABIAg2AqgBIAMgAmshBwJAAkAgAkUNACACIANGDQEgB0UNACAEIAIgBGogB/wKAAALIAAgBzYCuAILIAAgACkDcCACrXwiCjcDeCAAIAo3A3AgASgCpAJBAUcNBCAAIAEoApQCIgQ2ApwCIAAgASgCtAEgASgCwAEiAyABKAKwARsiAjYCoAIgAkUNBSAEIAMgAm4iBCACIARsIANHaiICRgRAIAEtAKgCIQIgASAFQQAgCEEBcRs2AiQgASADNgIgIAEgAkEBcSIDOgAoIABBvAJqIAFBIGoQpQQCQCABKALQASICQQJGDQAgAkEBcQRAIAAgASoC1AE4ArwDCyABKALYAUEBRgRAIAAgASoC3AE4AsADCyABKALgAUEBRgRAIAAgASoC5AE4AsQDCyABKALoAUEBRgRAIAAgASoC7AE4AsgDCyABKALwAUEBRgRAIAAgASoC9AE4AswDCyABKAL4AUEBRgRAIAAgASoC/AE4AtADCyABKAKAAkEBRgRAIAAgASoChAI4AtQDCyABLQCIAiICQQJGDQAgACACOgDYAwsgA0UNCCAAQQE6ANgDDAgLIAEgAjYCzAIgAUECNgIkIAFB6MfBADYCICABQgI3AiwgAUKAgICAECIKIABBnAJqrYQ3A9gCIAEgCiABQcwCaq2ENwPQAiABIAFB0AJqNgIoIAFBwAJqIgAgAUEgahCxBgwGCyABQQhqIAAQugIgAS0ACEUEQCABLQAJDQhBACECDAoLIAEoAgwhAgwJC0EAIQIMCAsgAUEBNgI0IAFBzMjBADYCMCABQQE2AiQgAUHEyMEANgIgIAFBATYCLCABIAFBEGqtQoCAgICQBIQ3A9ACIAEgAUHQAmo2AiggAUEUaiIAIAFBIGoQsQYgABCOByECDAcLQQggByADQZzIwQAQ6gcACyABQQE2AiQgAUGUyMEANgIgIAFCATcCLCABIAFBpAJqrUKAgICAEIQ3A9ACIAEgAUHQAmo2AiggAUG0AmoiACABQSBqELEGDAELQbTHwQAQgQgACyAAEI4HIQIgAUGoAWoQzwQMAwsCQAJAAkAgBigCAEECRg0AIAAoAvgBIQQgACgC/AEiAwRAIARBJGohAgNAIAJBBGsoAgAiBUGAgICAeHJBgICAgHhHBEAgAigCACIHQQRrKAIAIghBeHEiCUEEQQggCEEDcSIIGyAFakkNBCAIQQAgCSAFQSdqSxsNBSAHEKICCyACQTBqIQIgA0EBayIDDQALCyAAKAL0ASIDBEAgBCADQTBsQQgQogcLIAAoAoACIgNBgICAgHhyQYCAgIB4Rg0AIAAoAoQCIANBARCiBwsgBiABQagBakGIAfwKAAAMAgtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAYoAgAhAgsCQAJAAkACQAJ/AkAgAkECRwRAIAAoApgCIAAoApwCTw0GIAAoAgBBAkYNAUEADAILIAFBqAFqIAAQRSABKAKsAUEAIAEtAKgBIgMbIQIgAw0GIAEtAKkBQQFxRQ0GIAApA4gBIgwgACkDcCIKWARAIAAoArgCIQMMBQsgACgCuAIhBEEAIQMgAEEANgK4AiAEIAwgCn0iCyAErSINIAsgDVQbIgunIgZrIQIgC1BFBEAgBCAGRg0EIAJFDQMgACgCtAIiAyADIAZqIAL8CgAADAMLIAQgBkcNAgwDC0EBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAIAJFBEAgAUGoAWogABBFIAEoAqwBIQMgAS0AqAEiAg0CIAEtAKkBQQFxRQ0CIAApA4gBIgogACkDcCIMVg0BDAYLIAFBqAFqIAAQugIgAS0AqAFBAUYEQCABKAKsASECDBELIAEtAKkBDQlBACECDBALIAAoArgCIQMgAEEANgK4AiADIAogDH0iCyADrSINIAsgDVQbIgunIgJrIQQgC1ANASACIANGDQMgBEUNAiAAKAK0AiIDIAIgA2ogBPwKAAAMAgsgA0EAIAIbIQIMDgsgAiADRg0BCyAAIAQ2ArgCCyAAIAsgDHwiDDcDcCAKIAxWDQELAkAgACgCAEECRg0AIAAoAlwiA0UNACAAKAJgIgJBBGsoAgAiBEF4cSIGIANBKGwiA0EEQQggBEEDcSIEG2pJDQIgBEEAIAYgA0EnaksbDQMgAhCiAgsgAEECNgIAIAAgACgCmAJBAWoiAzYCmAIgAyAAKAKcAkkNBAwJC0EAIQIMCQtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQQAhAgwBC0EBIQIMAAsACyAAIAI2ArgCIAIhAwsgACAKIAt8Igo3A3AgCiAMWg0AQQAhAgwCC0EAIQIgAEEANgK4AiAAQQE6APgDIAAgCiADrXw3A3AMAQsgAEEBOgD4AyAANQK4AiEKQQAhAiAAQQA2ArgCIAAgCiAAKQNwfDcDcAsgAUHgAmokACACC4oQAhl/AXsjAEFAaiIJJAAgCUEQav0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgCSAh/QsDAAJAAkAgA0UNACACQQJBACADGyINaiEPIAIgA0EBdCISaiEaIBJBAmohCEEPIQsgAiEMAkACQAJAA0AgDC8BACIKBEAgCkEPSw0CIAkgCkEBdGoiDCAMLwEAQQFqOwEAIA4gCiAKIA5JGyEOIAsgCiAKIAtLGyELCyACIA1qIQwgCCANQQJqIg1HDQALIA5FDQMgCyAOTQRAIAkvAQIiCkECSw0CIAkvAQQiDEEEIApBAXRrIghB/v8DcUsNAiAJLwEGIhYgCCAMa0EBdCIIQf7/A3FLDQIgCS8BCCIbIAggFmtBAXQiCEH+/wNxSw0CIAkvAQoiHCAIIBtrQQF0IghB/v8DcUsNAiAJLwEMIg0gCCAca0EBdCIIQf7/A3FLDQIgCS8BDiIQIAggDWtBAXQiCEH+/wNxSw0CIAkvARAiESAIIBBrQQF0IghB/v8DcUsNAiAIIBFrQf//A3FBAXQiCCAJLwESIhNJDQIgCCATa0EBdCIIIAkvARQiFEkNAiAIIBRrQQF0IgggCS8BFiIVSQ0CIAggFWtBAXQiCCAJLwEYIhdJDQIgCCAXa0EBdCIIIAkvARoiGEkNAiAIIBhrQQF0IgggCS8BHCIZSQ0CIAggGWtBAXQiCCAJLwEeIh1JDQIgCCAdRiABQf8BcUEAIA5BAUYbckUEQCAAQX82AgAMBgsgCyAGIA4gBiAOSRsgBiALSRshCCAJQQA2AiAgCSAKOwEkIAkgCiAMaiIGOwEmIAkgBiAWaiIGOwEoIAkgBiAbaiIGOwEqIAkgBiAcaiIGOwEsIAkgBiANaiIGOwEuIAkgBiAQaiIGOwEwIAkgBiARaiIGOwEyIAkgBiATaiIGOwE0IAkgBiAUaiIGOwE2IAkgBiAVaiIGOwE4IAkgBiAXaiIGOwE6IAkgBiAYaiIGOwE8IAkgBiAZajsBPiASQQJrQQF2QQFqIQwgAiEGQQAhDQNAIA8hCgJAIAYvAQAiBkUNACAGQQ9NBEAgCUEgaiAGQQF0aiIGIAYvAQAiBkEBajsBACAGQaACSQRAIAcgBkEBdGogDTsBAAwCCyAGQaACQZSDyQAQjAcACyAGQRBBhIPJABCMBwALIApBAkEAIAogGkcbaiEPIAohBiAMIA1BAWoiDUcNAAtBFCEUIAFB/wFxIgEhF0EBIRhBAiEZAkACQAJAIAFBAWsOAgABAgsgCEELTw0FQbSAyQAhGUHygMkAIRhBHyEXQYECIRQMAQsgCEEJSw0EQZKByQAhGUHSgckAIRhBICEXQQAhFAtBASAIdCIVQQFrIR4gFEEBa0H//wNxIR8gAUEBayEgQQAhD0EAIRNBACEKQQAhECAIIRJBACERQX8hFgNAAkAgFCAHIAoiG0EBdGovAQAiAUsEQCABQQAgASAfSSIBGyEGQQBB4AAgARshAQwBCyABIBRrQf//A3EiBiAXSQRAIAYgGGotAAAhASAZIAZBAXRqLwEAIQYMAQsgBiAXQYSCyQAQjAcACyAEQX8gCyARayIddCIaQQEgEnQiHCAQIA8gEXZqamoiDUECdGohDCAaQQJ0IQ8gHCEKAkACQAJ/AkACQAJAAkACQAJAA0AgBSANTQ0BIAwgBjsBACAMQQNqIB06AAAgDEECaiABOgAAIAwgD2ohDCANIBpqIQ0gCiAaaiIKDQALIAtBD0sNAUGAgICAeCALQQFrdiATaiITQRh0IBNBgP4DcUEIdHIgE0EIdkGA/gNxIBNBGHZyciIBQQR2QY+evPgAcSABQY+evPgAcUEEdHIiAUECdkGz5syZA3EgAUGz5syZA3FBAnRyIgFBAXZB1arVqgVxIAFB1arVqgVxQQF0ciEPIBtBAWohCiAJIAtBAXRqIgEgAS8BAEEBayIBOwEAAkACQCABQf//A3FFBEAgCyAORg0BIBtBnwJGDQUgAyAHIApBAXRqLwEAIgFNDQYgAiABQQF0ai8BACELCyAIIAtPDQogDyAecSIBIBZHDQEMCgsgE0UNCCAFIBBJDQUgBSAQayIBIA9LBEAgBCAQQQJ0aiAPQQJ0aiIBIB06AAMgAUHAADoAAiABQQA7AQAMCQsgDyABQdSCyQAQjAcAC0EBIAsgESAIIBEbIhFrIhJ0Ig0gCyAOTw0GGiAOIBFrIRIgCSALQQF0aiEMIAshBgNAIA0gDC8BAGsiFkEATARAIAYgEWshEgwHCyAMQQJqIQwgFkEBdCENIAZBAWoiBiAOSQ0ACwwFCyANIAVBlILJABCMBwALIAtBEEGkgskAEIwHAAtBoAJBoAJBtILJABCMBwALIAEgA0HEgskAEIwHAAsgECAFIAVB5ILJABDqBwALQQEgEnQLIBVqIRUCQAJAAkAgIA4CAAECCyAVQbQKTQ0BDAgLIBVB0ARLDQcLIAEgBUkEQCAEIAFBAnRqIgYgCDoAAyAGIBI6AAIgBiAQIBxqIhA7AQAgASEWDAILIAEgBUH0gskAEIwHAAsgACAVNgIIIAAgCDYCBCAAQQA2AgAMBwsgCkGgAkcNAAtBoAJBoAJB9IHJABCMBwALQY2cyABBHEGsnMgAEOsHAAsgCkEQQaSDyQAQjAcACyAAQX82AgAMAgsgAEEBNgIADAELIABBAjYCCCAEQoCAgIqAgICgATcBACAAQoCAgIAQNwIACyAJQUBrJAALsBMEDX8KfQN7AX4jAEGgAmsiAiQAIAEqAgAhESABKgIEIQ8gAiABKgIIIhP9EyABKgIQIhD9IAAgASoCFCIS/SAB/QsEkAEgAiAS/RMgASoCDCIS/SAAIA/9IAH9CwSAASACIBD9EyAR/SAAIBL9IAH9CwRwIAL9DAAAgD8AAAAAAAAAAAAAAAD9CwTAASAC/QwAAAAAAACAPwAAAAAAAAAA/QsEsAEgAv0MAAAAAAAAAAAAAIA/AACAP/0LBKABIBGLIA+LkiATi5JDAACAPxDgCEO9N4Y1lCITIBOUIRQgAkHAAWpBBHIhASACQaABakEEciENIAJBsAFqQQRyIQUgAkGAAWohDkEgIQsCfwNAIAIqAnQiDyAPlCACKgJ4IhAgEJSSIAL9AASAASIZ/R8CIhIgEpSSIBReRQRAIBn9HwG8DAILIAIgGSAC/QAEcCIaIBKLIBCLIhEgD4siDyAPIBFdIgwbXiIDG/0LBGAgGv0fACERIBNBCEEEIAMgDHIiBBsiByACQeAAanIqAgAiEItdBEAgAiAa/QsEUAJ9AkAgAioCmAEgGf0fASIPIAQbIA8gESADG5MiDyAPXCAQIBCSIhEgEVxyRQRAIA+8IghBgICA/ANGBEAgERDcBAwDCyAIQR52QQJxIgogEbwiBkEfdnIhCQJAAkACQAJAAkACQCAGQf////8HcSIGRQRAQ9sPScAhDyAJQQJrDgICBgELIAhB/////wdxIghFDQIgCEGAgID8B0cNAyAGQYCAgPwHRw0EIAlBAnQqAoyxSQwICyARDAcLQ9sPSUAMBgtD2w/JPyARmAwFCyAGQYCAgPwHRiAIQYCAgOgAaiAGSXINAwJ9IAoEQEMAAAAAIAZBgICA6ABqIAhJDQEaCyARIA+VixDcBAshDwJAAkACQCAJQQFrDgMBAgAECyAPQy69uzOSQ9sPScCSDAYLIA+MDAULQ9sPSUAgD0MuvbszkpMMBAsgCUECdCoCnLFJIQ8LIA8MAgsgESAPkgwBC0PbD8k/IBGYCyACQdAAaiIJIAdyKgIAIRBDAAAAP5QiDxCZAiERIANBAnQgCXIqAgAiFSAPEJsCIg+UIBEgEJSTIRIgA60hHAJAIANFBEAgAiASOAJwDAELIAIgEjgCdAtBCEEEIAQbIgkgAkHwAGpyIA8gEJQgESAVlJI4AgAgAiAZ/QsEQCAPIBynQQJ0IgogAkFAayIGcioCACISlCARIAYgB3IqAgAiFZSTIRACQCADBEAgAiAQOAKEAQwBCyACIBA4AoABCyACQfAAakEYQRQgBBtqIA8gFZQgESASlJI4AgAgAiAC/QAEkAH9CwQwIA8gAkEwaiIGIApyKgIAIhKUIBEgBiAHcioCACIVlJMhEAJ/IAMEQCACIBA4ApQBIA4MAQsgAiAQOAKQASACQfAAagshBiACQfAAaiIIQShBJCAEG2ogDyAVlCARIBKUkjgCACAGIA8gAv0ABIABIhkgAv0ABHAgAxv9HwAiEJQgESAC/QAEkAEgGSAEG/0fACISlJM4AgBBIEEQIAQbIAhqIA8gEpQgESAQlJI4AgAgBiAPIAL9AASAASIZIAL9AARwIAMb/R8BIhCUIBEgAv0ABJABIBkgBBv9HwEiEpSTOAIEQSRBFCAEGyAIaiAPIBKUIBEgEJSSOAIAIAYgDyAC/QAEgAEiGSAC/QAEcCIaIAMb/R8CIhCUIBEgAv0ABJABIBkgBBv9HwIiEpSTOAIIQShBGCAEGyAIaiAPIBKUIBEgEJSSOAIAIAYgCWpBADYCAAJ/IANFBEBBIEEQIAwbIAhqQQA2AgBCACEcIAJBwAFqIQMgAkGwAWohBCACQaABagwBCyACQQA2ApQBQgEhHCAFIQQgASEDIA0LIAIgAv0ABMAB/QsEACADIA8gAiAcp0ECdHIqAgAiEJQgESACIAdyKgIAIhKUkzgCACACIAL9AASwAf0LBCAgBCAPIAJBIGoiAyAKcioCACIVlCARIAMgB3IqAgAiFpSTOAIAIAIgAv0ABKAB/QsEECAPIAJBEGoiAyAKcioCACIXlCARIAMgB3IqAgAiGJSTOAIAIAJBwAFqIAlyIBEgEJQgDyASlJI4AgAgAkGwAWogCXIgESAVlCAPIBaUkjgCACACQaABaiAJciARIBeUIA8gGJSSOAIAIBr9HwAhEQsgC0EBayILDQALIAIoAoQBCyEDIAIgAioCmAEiEjgC3AEgAiADNgLYASAC/QAEsAEhGSAC/QAEwAEhGiAC/QAEoAEhGyACIBE4AtQBIAIgGiAZ/Q0ICQoLGBkaGwABAgMAAQIDIBv9DQABAgMEBQYHGBkaGxgZGhv9CwSAAiACIBogGf0NBAUGBxQVFhcAAQIDAAECAyAb/Q0AAQIDBAUGBxQVFhcUFRYX/QsE8AEgAiAaIBn9DQABAgMQERITAAECAwABAgMgG/0NAAECAwQFBgcQERITEBESE/0LBOABIBr9HwAiDyAPlCAZ/R8AIhMgE5SSIBv9HwAiECAQlJIiFEMAAAAAXgRAIAIgECAUkSIQlTgC6AEgAiATIBCVOALkASACIA8gEJU4AuABCyAa/R8BIg8gD5QgGf0fASITIBOUkiAb/R8BIhAgEJSSIhRDAAAAAF4EQCACIBAgFJEiEJU4AvgBIAIgEyAQlTgC9AEgAiAPIBCVOALwAQsgGv0fAiIPIA+UIBn9HwIiEyATlJIgG/0fAiIQIBCUkiIUQwAAAABeBEAgAiAQIBSRIhCVOAKIAiACIBMgEJU4AoQCIAIgDyAQlTgCgAILQQAhBCACQQA2ApwCIAJBATYCmAIgAkHUAWohB0EBIQEgEbwiBSAFQR91QQF2cyIFIANBH3VBAXYgA3MiA0gEQEEBIQQgAkEBNgKcAiACQQA2ApgCIAUhAyACQdgBaiEHQQAhAQsCQCADIBK8IgUgBUEfdUEBdnMiBU4EQEECIQMMAQsgAkGYAmohAyAFIAcoAgAiB0EfdUEBdiAHc0oEfyACIAQ2ApgCIAJBnAJqBSADC0ECNgIAAkAgAigCnAIiBEECTQRAIAIoApgCIgVBA08NASABIQMgBSEBDAILIARBA0Hg98cAEIwHAAsgBUEDQfD3xwAQjAcACyAAIAJB4AFqIgUgA0EEdGr9AAQA/QsEMCAAIAFBBHQgBWr9AAQA/QsEICAAIARBBHQgBWr9AAQA/QsEECAAIAJB1AFqIgUgA0ECdGoqAgA4AgggACABQQJ0IAVqKgIAOAIEIAAgBEECdCAFaioCADgCACACQaACaiQAC7cNAgp/An4gACgCFCECIAAoAhAhBSAAKQMIIQwgACgCBCEIIAAoAgAhCSAAKAIYIgNBAEgEQCAFIAhJBEAgCSAFQQJ0aigAACEHCyAHQRh0IAdBgP4DcUEIdHIgB0EIdkGA/gNxIAdBGHZycq0gDEIghoQhDCAFQQFqIQUgA0EgaiEDCyAMQgAgAiACQQF2IgJrIgatIANBP3GthiINIAwgDVQiBBt9IQxBACEHIAMgBiACIAQbIgJnIgNBGGsiBkEAIAMgBk8bIgZrIQMgAiAGdCECAkACQCAEBEAgBSAITQ0BDAILIANBAEgEQCAFIAhJBEAgCSAFQQJ0aigAACEHCyAHQRh0IAdBgP4DcUEIdHIgB0EIdkGA/gNxIAdBGHZycq0gDEIghoQhDCAFQQFqIQUgA0EgaiEDCyAMQgAgAiACQQF2IgJrIgStIANBP3GthiINIAwgDVQiBxt9IQwgBCACIAcbIgIgAmciAkEYayIEQQAgAiAETxsiAnQhBCADIAJrIgNBAEgEQEEAIQIgBSAISQRAIAkgBUECdGooAAAhAgsgAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnKtIAxCIIaEIQwgBUEBaiEFIANBIGohAwsgDCAEIARBAXYiAmsiBq0gA0E/ca2GIg1CACAMIA1aIgQbfSEMIAIgBiAEGyICIAJnIgJBGGsiBkEAIAIgBk8bIgJ0IQYgAyACayIDQQBIBEBBACECIAUgCEkEQCAJIAVBAnRqKAAAIQILIAJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyrSAMQiCGhCEMIAVBAWohBSADQSBqIQMLIAxCACAGIAZBAXYiAmsiCq0gA0E/ca2GIg0gDCANVCIGG30hDCAKIAIgBhsiAiACZyICQRhrIgpBACACIApPGyICdCIKIApBAXYiCmsiC60gAyACayIDQQBIBEBBACECIAUgCEkEQCAJIAVBAnRqKAAAIQILIAJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyrSAMQiCGhCEMIAVBAWohBSADQSBqIQMLIANBP3GthiINIAxYIgJBAEECIAcbIARyQQJ0QQBBAiAGG3JyIQcgDCANQgAgAht9IQwgAyAKIAsgAhsiAmciA0EYayIEQQAgAyAETxsiBGshAwJ/IAIgBHQiBCABQf8BcUEERg0AGiADQQBIBEBBACECIAUgCEkEQCAJIAVBAnRqKAAAIQILIAJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyrSAMQiCGhCEMIAVBAWohBSADQSBqIQMLIAwgBCAEQQF2IgRrIgatIANBP3GthiINQgAgDCANWiICG30hDCADIAQgBiACGyIEZyIDQRhrIgZBACADIAZPGyIGayEDIAIgB0EBdHIhByAEIAZ0IgQgAUH/AXFBBkkNABogA0EASARAQQAhAiAFIAhJBEAgCSAFQQJ0aigAACECCyACQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZycq0gDEIghoQhDCAFQQFqIQUgA0EgaiEDCyAMIAQgBEEBdiIEayIGrSADQT9xrYYiDUIAIAwgDVoiAht9IQwgAyAEIAYgAhsiBGciA0EYayIGQQAgAyAGTxsiBmshAyACIAdBAXRyIQcgBCAGdCIEIAFB/wFxQQZGDQAaIANBAEgEQEEAIQIgBSAISQRAIAkgBUECdGooAAAhAgsgAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnKtIAxCIIaEIQwgBUEBaiEFIANBIGohAwsgDCAEIARBAXYiBGsiBq0gA0E/ca2GIg1CACAMIA1aIgIbfSEMIAMgBCAGIAIbIgRnIgNBGGsiBkEAIAMgBk8bIgZrIQMgAiAHQQF0ciEHIAQgBnQLIQQgA0EASARAQQAhAiAFIAhJBEAgCSAFQQJ0aigAACECCyACQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZycq0gDEIghoQhDCAFQQFqIQUgA0EgaiEDCyAFIAhLDQEgDEIAIAQgBEEBdiICayIIrSADQT9xrYYiDSAMIA1UIgEbfSEMIAggAiABGyICIAJnIgJBGGsiCEEAIAIgCE8bIgh0IQIgAyAIayEDIAdBACAHayABGyEHCyAAIAM2AhggACACNgIUIAAgBTYCECAAIAw3AwggBw8LIAAQtAoEf0EAIAAgARDwB0H/AXEiAWsgASAAELQKGwVBAAsLjhACDn8EfiMAQSBrIgIkAAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQEEVIAEoAgAiA0GAgICAeHMgA0EAThtBFGsOAgECAAsgASACQR9qQfTiwAAQlQghASAAQYCAgIB4NgIAIAAgATYCBAwLCyABKAIMIgVFDQMgAkEEaiABKAIIIgkQoAQgAigCCCEEIAIoAgQiB0GAgICAeEYEQCAEIQEMCgsgAigCFCEIIAIoAhAhAyAFQQFGDQIgAigCGCEKIAIoAgwhCyACQQRqIgYgCUEQahDTAiACKAIIIQEgAigCBA0IIAVBAkYNASACKQIMIRAgBiAJQSBqENMCIAIoAgghBiACKAIEBEAgBiEBDAkLAkAgBUEDRwRAIAIpAgwhESACQQRqIAlBMGoQnwUgAigCBEUNASACKAIIIQEMCgtBA0G0/8AAQYD9wAAQ2wYhAQwJCyAFQQRHBEAgAkEENgIEIAVB/P///wBqQf////8AcUEEaiACQQRqQeiVwQAQ2wYhASAAQYCAgIB4NgIAIAAgATYCBCAHBEAgBCAHQQEQogcLIANFDQsgCCADQQEQogcMCwsgAigCCCEFIAAgAigCDDYCNCAAIAU2AjAgACARNwIoIAAgBjYCJCAAIBA3AhwgACABNgIYIAAgCjYCFCAAIAg2AhAgACADNgIMIAAgCzYCCCAAIAQ2AgQgACAHNgIADAoLIAEoAggiA0UNBCADQQV0IQ0gASgCBCEBQYCAgIB4IQUDQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgNBgICAgHhzIANBAE4bQQFrDg8BAAACAAAAAAAAAAMEBQYACyABIAJBH2pBxOTAABCVCCEDIAJBAToABCACIAM2AggMBgsgAkEAOgAEIAJBBCABQQRqLQAAIgMgA0EETxs6AAUMBQsgAkEAOgAEIAJCBCABQQhqKQMAIhAgEEIEWhs8AAUMBAsgAUEIaigCACEDAn8CQAJAAkACQCABQQxqKAIAQQRrDgIBAAMLIANBkP3AAEEFENsHDQFBAAwDC0EBIAMoAABB7dK5mwdGDQIaIAMoAABB7cLhmwdHDQFBAgwCCyADQZ39wABBBRDbBw0AQQMMAQtBBAshAyACQQA6AAQgAiADOgAFDAMLIAFBBGooAgAhAwJ/AkACQAJAAkAgAUEIaigCAEEEaw4CAQADCyADQZD9wABBBRDbBw0BQQAMAwtBASADKAAAQe3SuZsHRg0CGiADKAAAQe3C4ZsHRw0BQQIMAgsgA0Gd/cAAQQUQ2wcNAEEDDAELQQQLIQMgAkEAOgAEIAIgAzoABQwCCyACQQRqIAFBCGooAgAgAUEMaigCABDZBQwBCyACQQRqIAFBBGooAgAgAUEIaigCABDZBQsgAi0ABEEBRgRAIAIoAgghBEEBDAcLIAFBEGohAwJAAkACQAJAAkACQAJAAkAgAi0ABQ4EAAECAwcLIAVBgICAgHhHBEBBkP3AAEEFEJ8HIQRBAQwOCyACQQRqIAMQoAQgAigCCCEGIAIoAgQiBUGAgICAeEYEQCAGIQQMDwsgAigCGCEOIAIoAhQhCSACKAIQIQggAigCDCEPDAYLIAoNAiACQQRqIAMQ0wIgAigCCCEEQQEgAigCBEEBRg0MGiACKQIMIRFBASEKDAULIAsNAyACQQRqIAMQ0wIgAigCCCEHIAIoAgRBAUYEQCAHIQRBAQwMCyACKQIMIRJBASELDAQLIAwNASACQQRqIAMQnwUgAigCCCEDIAIoAgRBAUYEQCADIQRBAQwLCyADrSACNQIMQiCGhCETQQEhDAwDC0GV/cAAQQQQnwchBEEBDAkLQZ39wABBBRCfByEEQQEMCAtBmf3AAEEEEJ8HIQRBAQwHCyABQSBqIQEgDUEgayINDQALDAMLQQJBtP/AAEGA/cAAENsGIQEMBgtBAUG0/8AAQYD9wAAQ2wYhAQwFC0EAQbT/wABBgP3AABDbBiEBDAULIAVBgICAgHhGDQAgAiAONgIYIAIgCTYCFCACIAg2AhAgAiAPNgIMIAIgBjYCCCACIAU2AgQCQCAKRQRAQZX9wABBBBCcByEEDAELIAtFBEBBmf3AAEEEEJwHIQQMAQsgDEUEQEGd/cAAQQUQnAchBAwBCyAAIBM3AjAgACASNwIoIAAgBzYCJCAAIBE3AhwgACAENgIYIAAgDjYCFCAAIAk2AhAgACAINgIMIAAgDzYCCCAAIAY2AgQgACAFNgIADAYLIAJBBGoQ5gVBAAwBC0GAgICAeCEFQZD9wABBBRCcByEEQQELRSAFQYCAgIB4RnINACAFBEAgBkEEaygCACIBQXhxIgdBBEEIIAFBA3EiARsgBWpJDQUgAUEAIAcgBUEnaksbDQYgBhCiAgsgCEUNACAJQQRrKAIAIgFBeHEiBkEEQQggAUEDcSIBGyAIakkNBCABQQAgBiAIQSdqSxsNBSAJEKICCyAAIAQ2AgQgAEGAgICAeDYCAAwCCyAHBEAgBEEEaygCACIGQXhxIgVBBEEIIAZBA3EiBhsgB2pJDQMgBkEAIAUgB0EnaksbDQQgBBCiAgsgA0UNACAIQQRrKAIAIgRBeHEiBkEEQQggBEEDcSIEGyADakkNAiAEQQAgBiADQSdqSxsNAyAIEKICCyAAIAE2AgQgAEGAgICAeDYCAAsgAkEgaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALxRACCH8EfiMAQeACayIBJAACQAJAAkACQAJAAkACQAJAAkACQCAALQD8AkUEQCAAKAIAIgJBAkcNCSAAKAKIAUECRw0JIAAoAuACIgNBA00EQEEAIQIMCwsgASAAKALcAiIEKAAAIgI2AhACQCACQdKCkZoERwRAIAJB0oKRggNHDQMgA0EISQ0BIAMgBCgABCIFQQdqQXhxQQhqIgJJDQEgBUEIaiIGIANLIAVBd0tyDQQgAUEANgLYAiABIAU2AtQCIAEgBEEIajYC0AIgAUEgaiABQdACahBZIAEoAiQhBSABKAIgIgdBAkYEQCAFEM4HIQIMDQsgAUGwAWogAUEoakGAAfwKAAAgAEEANgLgAiABIAU2AqwBIAEgBzYCqAEgAyACayEGAkACQCACRQ0AIAIgA0YNASAGRQ0AIAQgAiAEaiAG/AoAAAsgACAGNgLgAgsgACAAKQO4AiACrXwiCTcDwAIgACAJNwO4AiABKAKkAkEBRw0FIAAgASgClAIiAzYC6AIgACABKAK0ASABKALAASICIAEoArABGyIENgLsAiAERQ0GIAIgBG4iBiAEIAZsIAJHaiIEIANGBEAgAS0AqAIhAyABIAVBACAHQQFxGzYCJCABIAI2AiAgASADQQFxOgAoIABB+AFqIAFBIGoQhAICQCAAKAIAQQJGDQAgACgCaCEEIAAoAmwiAwRAIARBJGohAgNAIAJBBGsoAgAiBUGAgICAeHJBgICAgHhHBEAgAigCACIGQQRrKAIAIgdBeHEiCEEEQQggB0EDcSIHGyAFakkNDCAHQQAgCCAFQSdqSxsNDSAGEKICCyACQTBqIQIgA0EBayIDDQALCyAAKAJkIgMEQCAEIANBMGxBCBCiBwsgACgCcCIDQYCAgIB4ckGAgICAeEYNACAAKAJ0IANBARCiBwsgACABQagBakGIAfwKAAAMCwsgASAENgLMAiABQQI2AiQgAUHox8EANgIgIAFCAjcCLCABQoCAgIAQIgkgAEHoAmqthDcD2AIgASAJIAFBzAJqrYQ3A9ACIAEgAUHQAmo2AiggAUHAAmoiACABQSBqELEGIAAQjgchAgwJCyABQQhqIAAQuAIgAS0ACEUEQCABLQAJDQpBACECDAwLIAEoAgwhAgwLC0EAIQIMCgsgADUC4AIhCSAAQQA2AuACIAAgCSAAKQO4Anw3A7gCDAkLIAFBATYCNCABQczIwQA2AjAgAUEBNgIkIAFBxMjBADYCICABQQE2AiwgASABQRBqrUKAgICAkASENwPQAiABIAFB0AJqNgIoIAFBFGoiACABQSBqELEGIAAQjgchAgwIC0EIIAYgA0GcyMEAEOoHAAsgAUEBNgIkIAFBlMjBADYCICABQgE3AiwgASABQaQCaq1CgICAgBCENwPQAiABIAFB0AJqNgIoIAFBtAJqIgAgAUEgahCxBiAAEI4HIQIgASgClAIhAwwDC0G0x8EAEIEIAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAEoApACIQQgAwRAIARBJGohAANAIABBBGsoAgAiBUGAgICAeHJBgICAgHhHBEAgACgCACAFQQEQogcLIABBMGohACADQQFrIgMNAAsLIAEoAowCIgAEQCAEIABBMGxBCBCiBwsgASgCmAIiAEGAgICAeHJBgICAgHhGDQIgASgCnAIgAEEBEKIHDAILIAAoAgAhAgsCQAJAAkACQAJ/AkAgAkECRwRAIAAoAuQCIAAoAugCTw0GIAAoAogBQQJGDQFBAAwCCyABQagBaiAAEFsgASgCrAFBACABLQCoASIDGyECIAMNBiABLQCpAUEBcUUNBiAAKQPQAiILIAApA7gCIglYBEAgACgC4AIhAwwFCyAAKALgAiEEQQAhAyAAQQA2AuACIAQgCyAJfSIKIAStIgwgCiAMVBsiCqciBWshAiAKUEUEQCAEIAVGDQQgAkUNAyAAKALcAiIDIAMgBWogAvwKAAAMAwsgBCAFRw0CDAMLQQELIQIDQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAkUEQCABQagBaiAAEFsgASgCrAEhAyABLQCoASICDQIgAS0AqQFBAXFFDQIgACkD0AIiCSAAKQO4AiILVg0BDAYLIAFBqAFqIAAQuAIgAS0AqAFBAUYEQCABKAKsASECDBELIAEtAKkBDQlBACECDBALIAAoAuACIQMgAEEANgLgAiADIAkgC30iCiADrSIMIAogDFQbIgqnIgJrIQQgClANASACIANGDQMgBEUNAiAAKALcAiIDIAIgA2ogBPwKAAAMAgsgA0EAIAIbIQIMDgsgAiADRg0BCyAAIAQ2AuACCyAAIAogC3wiCzcDuAIgCSALVg0BCwJAIAAoAogBQQJGDQAgACgC5AEiA0UNACAAKALoASICQQRrKAIAIgRBeHEiBSADQShsIgNBBEEIIARBA3EiBBtqSQ0CIARBACAFIANBJ2pLGw0DIAIQogILIABBAjYCiAEgACAAKALkAkEBaiIDNgLkAiADIAAoAugCSQ0EDAkLQQAhAgwJC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBACECDAELQQEhAgwACwALIAAgAjYC4AIgAiEDCyAAIAkgCnwiCTcDuAIgCSALWg0AQQAhAgwCC0EAIQIgAEEANgLgAiAAQQE6APwCIAAgCSADrXw3A7gCDAELIABBAToA/AIgADUC4AIhCUEAIQIgAEEANgLgAiAAIAkgACkDuAJ8NwO4AgsgAUHgAmokACACC70PAg5/AX4jAEEgayICJAACQAJAAkACQAJAAkACQAJ/An8CQAJAAkACQAJAAkACQAJAQRUgASgCACIDQYCAgIB4cyADQQBOG0EUaw4CAAEECyABKAIMIgNFDQIgAkEEaiABKAIIIgEQoAQgAigCCCEIIAIoAgQiBkGAgICAeEYEQCAIIQMMDQsgAigCFCEJIAIoAhAhByADQQFGDQEgAigCGCELIAIoAgwhDCACQQRqIAFBEGoQ0AMgAigCCCEEIAIoAgQiBUGAgICAeEYEQCAEIQMMDAsCQAJ/IANBAkcEQCACKAIMIQ4gAkEEaiABQSBqEKUDIAItAARFDQIgAigCCAwBC0ECQYz/wABBgP3AABDbBgshAyAFRQ0MIARBBGsoAgAiAUF4cSIKIAVBAnQiBUEEQQggAUEDcSIBG2pJDRAgAUEAIAogBUEnaksbDQ8gBBCiAgwMCyADQQNGBEAgAi0ABSEPDAsLIAJBAzYCBCADQf3///8AakH/////AHFBA2ogAkEEakHolcEAENsGIQMgBgRAIAggBkEBEKIHCyAHBEAgCSAHQQEQogcLIAVFDQwgBCAFQQJ0QQQQogcMDAsgASgCCCIDRQRAQYCAgIB4IQUMBgsgA0EFdCEKIAEoAgQhAUGAgICAeCEGQYCAgIB4IQUDQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgNBgICAgHhzIANBAE4bQQFrDg8BAAACAAAAAAAAAAMEBQYACyABIAJBH2pBlOXAABCVCCEDIAJBAToABCACIAM2AggMBgsgAkEAOgAEIAJBAyABQQRqLQAAIgMgA0EDTxs6AAUMBQsgAkEAOgAEIAJCAyABQQhqKQMAIhAgEEIDWhs8AAUMBAsgAUEIaigCACEDAn8CQAJAAkACQCABQQxqKAIAQQVrDgQAAwMBAwsgA0GQ/cAAQQUQ2wcNAUEADAMLIAMpAABC496Rq6bs27frAFINAUEBDAILIANB6P7AAEEFENsHDQBBAgwBC0EDCyEDIAJBADoABCACIAM6AAUMAwsgAUEEaigCACEDAn8CQAJAAkACQCABQQhqKAIAQQVrDgQAAwMBAwsgA0GQ/cAAQQUQ2wcNAUEADAMLIAMpAABC496Rq6bs27frAFINAUEBDAILIANB6P7AAEEFENsHDQBBAgwBC0EDCyEDIAJBADoABCACIAM6AAUMAgsgAkEEaiABQQhqKAIAIAFBDGooAgAQygUMAQsgAkEEaiABQQRqKAIAIAFBCGooAgAQygULIAItAARBAUYNBSABQRBqIQMCQAJAAkACQCACLQAFQQFrDgMBAgMACyAGQYCAgIB4RwRAQZD9wABBBRCfByEDQQEMCwsgAkEEaiADEKAEIAIoAgghAyACKAIEIgZBgICAgHhGBEBBgICAgHghBkEBDAsLIAIoAhghCyACKAIUIQkgAigCECEHIAIoAgwhDCADIQgMAgsgBUGAgICAeEcEQEGY/sAAQQgQnwchA0EBDAoLIAJBBGogAxDQAyACKAIIIQQgAigCBCIFQYCAgIB4RgRAQQEhCiAEIQMMDAsgAigCDCEODAELIA1FBEAgAkEEaiADEKUDIAItAARBAUYNByACLQAFIQ9BASENDAELQej+wABBBRCfByEDQQEMCAsgAUEgaiEBIApBIGsiCg0ACwwDC0EBQYz/wABBgP3AABDbBiEDDAkLQQBBjP/AAEGA/cAAENsGIQMMCQsgASACQR9qQcTjwAAQlQghAwwICyAGQYCAgIB4Rg0BIAIgCzYCGCACIAk2AhQgAiAHNgIQIAIgDDYCDCACIAg2AgggAiAGNgIEAkAgBUGAgICAeEYiAUUEQCANDQdB6P7AAEEFEJwHIQMgBUUNASAEIAVBAnRBBBCiBwwBC0GY/sAAQQgQnAchAwsgAkEEahDmBUEADAMLIAIoAgghA0EBDAELQYCAgIB4IQZBkP3AAEEFEJwHIQNBAQshAUEBCyEKIAVB/////wdxRSABRXINAAJAIARBBGsoAgAiAUF4cSILIAVBAnQiBUEEQQggAUEDcSIBG2pPBEAgAUEAIAsgBUEnaksbDQEgBBCiAgwCCwwHCwwFCyAKRSAGQYCAgIB4RnINAgJAIAYEQCAIQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyAGakkNByABQQAgBCAGQSdqSxsNBiAIEKICCyAHRQ0DIAlBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAdqSQ0GIAFBACAEIAdBJ2pLGw0AIAkQogIMAwsMBAsgACAENgIcIAAgBTYCGCAAIAs2AhQgACAJNgIQIAAgBzYCDCAAIAw2AgggACAINgIEIAAgBjYCACAAIA6tIA+tQv8Bg0IghoQ3AiAMAgsgBgRAIAhBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAZqSQ0EIAFBACAEIAZBJ2pLGw0DIAgQogILIAdFDQAgCUEEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgB2pJDQMgAUEAIAQgB0EnaksbDQIgCRCiAgsgAEGBgICAeDYCACAAIAM2AgQLIAJBIGokAA8LQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC4YRAg1/AX4jAEHgAGsiAiQAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiBEGAgICAeHMgBEEAThtBFGsOAgECAAsgASACQRhqQZTjwAAQlQghASAAQYCAgIB4NgIAIAAgATYCBAwHCyABKAIMIgZFDQICQCABKAIIIgUoAgBBlICAgHhGBEACQCAFKAIMIgEEQCACQcgAaiAFKAIIEKgDIAIoAkgiBEGAgICAeEcNASACKAJMIQEMCQtBACACQRhqQYTiwAAQ2wYhAQwICyACKAJMIQcgAUEBRg0BIAJBATYCSCABQQFrQf////8AcUEBaiACQcgAakHolcEAENsGIQEgBEUNByAHIARBARCiBwwHCyAFIAJBGGpBhOLAABCVCCEBDAYLIAZBAUYNASACKAJQIQkgAkHIAGoiAyAFQRBqEKECIAIoAkwhASACKAJIDQQgAkEQaiACQdgAaigCADYCACACIAIpAlA3AwgCQCAGQQJHBEAgAyAFQSBqEKECIAIoAkwhBSACKAJIRQ0BIAUhAQwGC0ECQZD+wABBgP3AABDbBiEBDAULIAJBMGoiAyACQdgAaigCADYCACACQUBrIgggAkEQaigCADYCACACIAIpAlA3AyggAiACKQMINwM4IAZBA0cEQCACQQM2AkggBkH9////AGpB/////wBxQQNqIAJByABqQeiVwQAQ2wYhASAAQYCAgIB4NgIAIAAgATYCBCAERQ0HIAcgBEEBEKIHDAcLIAAgAikDODcCECAAIAIpAyg3AiAgACAFNgIcIAAgATYCDCAAIAk2AgggACAHNgIEIAAgBDYCACAAQRhqIAgoAgA2AgAgAEEoaiADKAIANgIADAYLIAEoAgQhBCABKAIIIQEgAkEANgIUIAIgBCABQQV0aiIMNgIMAkACQAJAIAFFDQAgAkHQAGohCkGAgICAeCEIA0AgAiAEQSBqIgE2AgggAiACKAIUQQFqNgIUIAIgBEEQaiINNgIQAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQRUgBCgCACIDQYCAgIB4cyADQQBOG0EBaw4PAA4OAQ4ODg4ODg4CAwQFDgsgBC0ABA4DCgUHDwsgBCkDCCIPQgJWDQ4gD6dBAWsOAgQGCQsgBCgCCCEDAkAgBCgCDEEEaw4CAAgOCyADKAAAQe3SuZsHRg0DIAMoAABB7cLhmwdGDQUMDQsgBCgCBCEDAkAgBCgCCEEEaw4CAAYNCyADKAAAQe3SuZsHRg0CIAMoAABB7cLhmwdGDQQMDAsgBCgCCCEDAkACQCAEKAIMQQRrDgIBAA0LIAMtAABB5gBHDQwgAy0AAUHpAEcNDCADLQACQewARw0MIAMtAANB5QBHDQwgAy0ABEHzAEcNDAwHCyADLQAAQe0ARw0LAkACQCADLQABQeEAaw4JAQ0NDQ0NDQ0ADQsgAy0AAkHuAEcNDCADLQADQfMARg0CDAwLIAMtAAJB+ABHDQsgAy0AA0HzAEYNAwwLCyAEKAIEIQMCQAJAIAQoAghBBGsOAgEADAsgAy0AAEHmAEcNCyADLQABQekARw0LIAMtAAJB7ABHDQsgAy0AA0HlAEcNCyADLQAEQfMARw0LDAYLIAMtAABB7QBHDQoCQCADLQABQeEAaw4JAgsLCwsLCwsACwsgAy0AAkHuAEcNCiADLQADQfMARw0KCyAGRQ0FQZX9wABBBBCfBwwICyADLQACQfgARw0IIAMtAANB8wBHDQgLIAtFDQRBmf3AAEEEEJ8HDAYLIANBkP3AAEEFENsHRQ0BDAYLIANBkP3AAEEFENsHDQULIAhBgICAgHhHBEBBkP3AAEEFEJ8HDAQLIAJByABqIAJBCGoQsgUgAigCTCEHIAIoAkgiCEGAgICAeEYEQCAHIQUMCQsgAigCUCEOIAIoAgwhDCACKAIIIQEMBQsgAkEANgIQIAJByABqIA0QoQIgAigCTCIFIAIoAkhBAUYNAhogAkEwaiAKQQhqKAIANgIAIAIgCikCADcDKEEBIQYMBAsgAkEANgIQIAJByABqIA0QoQIgAigCTCEJIAkgAigCSEEBRg0BGiACQUBrIApBCGooAgA2AgAgAiAKKQIANwM4QQEhCwwDCyAEIAJBGGpBhOXAABCVCAshBSAIQYCAgIB4ckGAgICAeEYNBAJAIAdBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAhqTwRAIAFBACAEIAhBJ2pLGw0BIAcQogIMBgtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAJBADYCEAsgDCABIgRHDQALIAhBgICAgHhGDQAgBkEAIAsbDQJBmf3AAEGV/cAAIAYbQQQQnAchBSAIRQ0BIAcgCEEBEKIHDAELQZD9wABBBRCcByEFCyAAIAU2AgQgAEGAgICAeDYCACAAIAIpA0g3AhAgAEEYaiACQdAAaigCADYCAAwDCyACQSBqIAJBQGsoAgA2AgAgAkHQAGogAkEwaigCACIBNgIAIAIgAikDODcDGCACIAIpAygiDzcDSCAAIAU2AgwgACAONgIIIAAgBzYCBCAAIAg2AgAgACAPNwIQIABBGGogATYCACAAIAk2AhwMAgtBAUGQ/sAAQYD9wAAQ2wYhAQwCC0EAQZD+wABBgP3AABDbBiEBDAILIAAgAikDGDcCICAAQShqIAJBIGooAgA2AgAMAgsgBEUNACAHQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyAEakkNAiAFQQAgBiAEQSdqSxsNAyAHEKICCyAAIAE2AgQgAEGAgICAeDYCAAsgAkHgAGokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC+EOAgR/A34jAEGwBWsiBiQAIAYgAjYCECAGIAE2AgwgBiAFNgIYIAYgBDYCFAJAAkACQAJAIAMoAgxFDQAgAykDECADKQMYIAQgBRCVBCEKIAMoAgQiASAKp3EhAiAKQhmIQv8Ag0KBgoSIkKDAgAF+IQwgAygCACEHA0AgAiAHaikAACILIAyFIgpCf4UgCkKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIKUEUEQANAAkAgBSAHIAp6p0EDdiACaiABcUFobGoiCEEQaygCAEcNACAEIAhBFGsoAgAgBRDbBw0AQQAhAwwFCyAKQgF9IAqDIgpQRQ0ACwsgCyALQgGGg0KAgYKEiJCgwIB/g1BFDQEgAiAJQQhqIglqIAFxIQIMAAsACyAGIAZBFGqtQoCAgIAghCIKNwNAIAYgBkEMaq1CgICAgCCENwM4IAZCAjcCzAMgBkECNgLEAyAGQdTvxwA2AsADIAYgBkE4aiIENgLIAyAGQZgFaiIHIAZBwANqIgEQ7AMgBkEANgIkIAZCgICAgBA3AhwgBigCmAUhAiAEIAAgBigCnAUiBSAGKAKgBRDbAQJAAkACQAJAAkACQCAGKQM4QgNSBEAgASAEQcgB/AoAACAHIAEgBkEcahDXASAGKAKYBUEBRgRAIAYpApwFENIHIQMgARDDAQwCCyAGKAIYIgBBAEgNAiAGKAIUIQQCQCAARQRAQQEhAQwBCyAAEHEiAUUNBAsgAARAIAEgBCAA/AoAAAsgBiAANgKgBSAGIAE2ApwFIAYgADYCmAUgBkEoaiADIAZBmAVqIAZBHGoQ8gIgBigCKCIAQYCAgIB4ckGAgICAeEcEQCAGKAIsIgFBBGsoAgAiA0F4cSIEQQRBCCADQQNxIgMbIABqSQ0KIANBACAEIABBJ2pLGw0JIAEQogILIAZBwANqEMMBQQAhAwwFCwJAAkACQAJAQQEgBigCQCIEQf////8HaiAEQYCAgIB4TRsOAgABAwsgBi0AREEDRw0CIAYoAkgiASgCACEEIAFBBGooAgAiBygCACIIBEAgBCAIEQMACyAHKAIEIgcEQCAEQQRrKAIAIghBeHEiCUEEQQggCEEDcSIIGyAHakkNDCAIQQAgCSAHQSdqSxsNCyAEEKICCyABQQRrKAIAIgRBeHEiB0EQQRQgBEEDcSIEG0kNCyAERSAHQTRJcg0BDAoLIARBgICAgHhyQYCAgIB4Rg0BIAYoAkQiAUEEaygCACIHQXhxIghBBEEIIAdBA3EiBxsgBGpJDQogB0UNACAIIARBJ2pLDQkLIAEQogILIAZBwANqIAAgBigCFCAGKAIYENsBIAYgCjcDKCAGQgE3AqQFIAZBAjYCnAUgBkGA8McANgKYBSAGIAZBKGo2AqAFIAZBjAVqIAZBmAVqEOwDIAYpA8ADIgpCA1IEQCAGKALIAyEBIAZBhAJqIAZBzANqQbwB/AoAACAGKAKMBSIABEAgBigCkAUiBEEEaygCACIHQXhxIghBBEEIIAdBA3EiBxsgAGpJDQogB0EAIAggAEEnaksbDQkgBBCiAgsgBiABNgJAIAYgCjcDOCAGQcQAaiAGQYQCakG8AfwKAAAgBkHAA2ogBkE4aiIAIAZBHGoQ1wEgBigCwANBAUYEQCAGKQLEAxDSByEDIAAQwwEMAgsgBigCGCIAQQBIDQQgBigCFCEEAkAgAEUEQEEBIQEMAQsgABBxIgFFDQQLIAAEQCABIAQgAPwKAAALIAYgADYCyAMgBiABNgLEAyAGIAA2AsADIAZBmAVqIAMgBkHAA2ogBkEcahDyAiAGKAKYBSIAQYCAgIB4ckGAgICAeEcEQCAGKAKcBSIBQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyAAakkNCiADQQAgBCAAQSdqSxsNCSABEKICCyAGQThqEMMBIAJFBEBBACEDDAgLIAVBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIAJqSQ0JQQAhAyAARSABIAJBJ2pNcg0GDAgLIwBBMGsiACQAIAAQ5AggAEEgaiIDIAZBjAVqIgFBCGooAgA2AgAgAEEsaiAGQcgDaiIEQQhqKAIANgIAIAAgASkCADcDGCAAIAQpAgA3AiRBNBBxIgFFBEAACyABQcC1xwA2AgAgASAAKQIANwIEIAEgACkDGDcCHCABQQxqIABBCGr9AAIA/QsCACABQSRqIAP9AAMA/QsCACAAQTBqJAAgASEDCyAGKAIcIgBFDQMgBigCICIBQQRrKAIAIgRBeHEiB0EEQQggBEEDcSIEGyAAakkNByAEQQAgByAAQSdqSxsNBiABEKICDAMLQdiayAAQ/wcLAAtB2JrIABD/BwALIAJFDQEgBUEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgAmpPBEAgAEUgASACQSdqTXINAQwDCwwDCyAFEKICCyAGQbAFaiQAIAMPC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAumDwQRfwF8B30BbyMAQSBrIgIkACACIAE2AgACQAJAIAElARAQRQRAIAIgAkEfakH8hcEAEIADIQMgAEECOgAcIAAgAzYCACABIgNBgwhLDQEMAgtBAiEHAkADQCADIQUgBEFAaiEEAkACfwJAAkADQCAEQdzrwABqKAIAIgYgBEHg68AAaigCACIQEM8DIgghAyABJQEgAyUBEBEhGxDaBCIDIBsmAQJAIAMlARASBEAgCCUBIAElARATRQ0BCyAEQcgAaiEEAkACQAJAAkAgEEEGaw4FAAcHBwEHC0EAIAZB4OrAAEEGENsHRQ0HGiAGQebqwABBBhDbBw0BQQEMBwtBAiAGQezqwABBChDbB0UNBhogBkH26sAAQQoQ2wcNAUEDDAYLQQQgBkGA68AAQQYQ2wdFDQUaIAZBhuvAAEEGENsHDQNBBQwFCyAGQZLrwABBChDbBw0DQQcMBAsgA0GECE8EQCADEJsHCyAIQYQITwRAIAgQmwcLIARBCGoiBA0ACyAFIQMMAwtBBiAGQYzrwABBBhDbB0UNARoLQQgLIQUgCEGECE8EQCAIEJsHCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAUOCAECAwQFBgcIAAsgA0GECEkNESADEJsHDBELIAkNByACIAM2AgQgAkEIaiADEK8KAn0gAigCCCIFBEAgAisDECITtkMAAIA/QwAAgL8gE71CAFkbmAwBCyACQQRqIAJBH2pB2OfAABCAA74LIRQgA0GECE8EQCADEJsHCyAFRQ0IQQEhCQwQCyAKDQ0gAiADNgIEIAJBCGogAxCvCgJ9IAIoAggiBQRAIAIrAxAiE7ZDAACAP0MAAIC/IBO9QgBZG5gMAQsgAkEEaiACQR9qQdjnwAAQgAO+CyEVIANBhAhPBEAgAxCbBwsgBQRAQQEhCgwQCyAAIBU4AgBBACEEDBILIAsNCyACIAM2AgQgAkEIaiADEK8KAn0gAigCCCIFBEAgAisDECITtkMAAIA/QwAAgL8gE71CAFkbmAwBCyACQQRqIAJBH2pB2OfAABCAA74LIRYgA0GECE8EQCADEJsHCyAFBEBBASELDA8LIAAgFjgCAEEAIQQMEQsgDA0JIAIgAzYCBCACQQhqIAMQrwoCfSACKAIIIgUEQCACKwMQIhO2QwAAgD9DAACAvyATvUIAWRuYDAELIAJBBGogAkEfakHY58AAEIADvgshFyADQYQITwRAIAMQmwcLIAUEQEEBIQwMDgsgACAXOAIAQQAhBAwQCyANDQcgAiADNgIEIAJBCGogAxCvCgJ9IAIoAggiBQRAIAIrAxAiE7ZDAACAP0MAAIC/IBO9QgBZG5gMAQsgAkEEaiACQR9qQdjnwAAQgAO+CyEYIANBhAhPBEAgAxCbBwsgBQRAQQEhDQwNCyAAIBg4AgBBACEEDA8LIA4NBSACIAM2AgQgAkEIaiADEK8KAn0gAigCCCIFBEAgAisDECITtkMAAIA/QwAAgL8gE71CAFkbmAwBCyACQQRqIAJBH2pB2OfAABCAA74LIRkgA0GECE8EQCADEJsHCyAFBEBBASEODAwLIAAgGTgCAEEAIQQMDgsgDw0DIAIgAzYCBCACQQhqIAMQrwoCfSACKAIIIgUEQCACKwMQIhO2QwAAgD9DAACAvyATvUIAWRuYDAELIAJBBGogAkEfakHY58AAEIADvgshGiADQYQITwRAIAMQmwcLIAUEQEEBIQ8MCwsgACAaOAIAQQAhBAwNCyAHQQJHBEAgAEGS68AAQQoQngc2AgAMCQsgAiADNgIIAkAgAxC6CiIHQf///wdHIgUEQCAFIAdBAEdxIREMAQsgAkEIaiACQR9qQYyGwQAQgAMhEgsgA0GECE8EQCADEJsHCyAFRQRAIAAgEjYCAEEAIQQMDQsgESEHDAkLIABB4OrAAEEGEJ4HNgIADAcLIAAgFDgCAEEAIQQMCgsgAEGM68AAQQYQngc2AgAMBQsgAEGG68AAQQYQngc2AgAMBAsgAEGA68AAQQYQngc2AgAMAwsgAEH26sAAQQoQngc2AgAMAgsgAEHs6sAAQQoQngc2AgAMAQsgAEHm6sAAQQYQngc2AgALQQEhBAwDCyAEQcAARw0BCwsgCUUEQCAAQeDqwABBBhCdBzYCAEEAIQQMAQsgCkUEQCAAQebqwABBBhCdBzYCAEEAIQQMAQsgC0UEQCAAQezqwABBChCdBzYCAEEAIQQMAQsgDEUEQCAAQfbqwABBChCdBzYCAEEAIQQMAQsgDUUEQCAAQYDrwABBBhCdBzYCAEEAIQQMAQsgDkUEQCAAQYbrwABBBhCdBzYCAEEAIQQMAQsgD0UEQCAAQYzrwABBBhCdBzYCAEEAIQQMAQsgB0ECRgRAIABBkuvAAEEKEJ0HNgIAQQAhBAwBCyAAIAc6ABwgACAaOAIYIAAgGTgCFCAAIBg4AhAgACAXOAIMIAAgFjgCCCAAIBU4AgQgACAUOAIAIAEiA0GDCEsNAQwCCyAAQQI6ABwgAUGECE8EQCABEJsHCyAEQQFzIANBhAhJcg0BCyADEJsHCyACQSBqJAALiA4CDn8FfSACIAFBAnRBBGsiCmohDSAAIApqIQsgACABQQF2Ig9BAnRqIgpBBGshDCADQQRqIRADQEMAAIA/IRMCfwJAIAooAgAiBCAQKAIAIgMoAggiBkkEQCAAKAIAIQkgAygCBCIIIARBGGxqIgQtABMiBSAELQASIgcgBC0AESIOIAcgDksbIgcgBSAHSxsiBQR9QwAAQMEgAyoCRCADLQBYQQJGIgcbIhJDAAAQQSADKgJIIAcbIBKTQwAAfkOVIAVBAWtB/wFxs5SSEIkEIhIgEpIFQwAAAAALIRUgBEEMai8BACIFQf//AXFFBEAgBUEQdAwDCyAFQf8HcSEEIAVBgIACcSEHIAVBgPgBcSIFQYD4AUYEQCAHQRB0IgVBgICA/AdyIARFDQMaIAUgBEENdHJBgICA/gdyDAMLIAdBEHQhByAFRQ0BIAVBDXRBgICA/ABxIARBDXRyQYCAgMADaiAHcgwCCyAEIAZB3LvHABCMBwALIAQgBGdBEGsiBEH//wNxQQhqdEH///8DcSAHQYCAgNgDciAEQRd0a3ILviISQwAAgD9eBEAgEhDGBUNU+C1AlEMAAIA/kpEhEwtDAACAPyESAn8CQCAGIAlLBEAgCCAJQRhsaiIELQATIgUgBC0AEiIGIAQtABEiCSAGIAlLGyIGIAUgBksbIgUEfUMAAEDBIAMqAkQgAy0AWEECRiIGGyIUQwAAEEEgAyoCSCAGGyAUk0MAAH5DlSAFQQFrQf8BcbOUkhCJBCIUIBSSBUMAAAAACyEUIARBDGovAQAiBEH//wFxRQRAIARBEHQMAwsgBEH/B3EhAyAEQYCAAnEhBSAEQYD4AXEiBEGA+AFGBEAgBUEQdCIEQYCAgPwHciADRQ0DGiAEIANBDXRyQYCAgP4HcgwDCyAFQRB0IQUgBEUNASAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogBXIMAgsgCSAGQdy7xwAQjAcACyADIANnQRBrIgNB//8DcUEIanRB////A3EgBUGAgIDYA3IgA0EXdGtyC74iFkMAAIA/XgRAIBYQxgVDVPgtQJRDAACAP5KRIRILIAIgCiAAIBUgE5QiEyATWyATIBQgEpRgRXEiBxsoAgA2AgBDAACAPyETAn8CQCALKAIAIgQgECgCACIDKAIIIgZJBEAgDCgCACEJIAMoAgQiDiAEQRhsaiIELQATIgUgBC0AEiIIIAQtABEiESAIIBFLGyIIIAUgCEsbIgUEfUMAAEDBIAMqAkQgAy0AWEECRiIIGyISQwAAEEEgAyoCSCAIGyASk0MAAH5DlSAFQQFrQf8BcbOUkhCJBCISIBKSBUMAAAAACyEVIARBDGovAQAiBUH//wFxRQRAIAVBEHQMAwsgBUH/B3EhBCAFQYCAAnEhCCAFQYD4AXEiBUGA+AFGBEAgCEEQdCIFQYCAgPwHciAERQ0DGiAFIARBDXRyQYCAgP4HcgwDCyAIQRB0IQggBUUNASAFQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogCHIMAgsgBCAGQdy7xwAQjAcACyAEIARnQRBrIgRB//8DcUEIanRB////A3EgCEGAgIDYA3IgBEEXdGtyC74iEkMAAIA/XgRAIBIQxgVDVPgtQJRDAACAP5KRIRMLQwAAgD8hEgJ/AkAgBiAJSwRAIA4gCUEYbGoiBC0AEyIFIAQtABIiBiAELQARIgkgBiAJSxsiBiAFIAZLGyIFBH1DAABAwSADKgJEIAMtAFhBAkYiBhsiFEMAABBBIAMqAkggBhsgFJNDAAB+Q5UgBUEBa0H/AXGzlJIQiQQiFCAUkgVDAAAAAAshFCAHRSEGIARBDGovAQAiBEH//wFxRQRAIARBEHQMAwsgBEH/B3EhAyAEQYCAAnEhBSAEQYD4AXEiBEGA+AFGBEAgBUEQdCIEQYCAgPwHciADRQ0DGiAEIANBDXRyQYCAgP4HcgwDCyAFQRB0IQUgBEUNASAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogBXIMAgsgCSAGQdy7xwAQjAcACyADIANnQRBrIgNB//8DcUEIanRB////A3EgBUGAgIDYA3IgA0EXdGtyC74iFkMAAIA/XgRAIBYQxgVDVPgtQJRDAACAP5KRIRILIAdBAnQgCmohCiAGQQJ0IABqIQAgAkEEaiECIA0gDCALIBUgE5QiEyATWyATIBQgEpRgRXEiAxsoAgA2AgAgDCADQQJ0IgNrIQwgAyALakEEayELIA1BBGshDSAPQQFrIg8NAAsgDEEEaiEDIAFBAXEEfyACIAAgCiAAIANJIgEbKAIANgIAIAogACADT0ECdGohCiAAIAFBAnRqBSAACyADRyAKIAtBBGpHckUEQA8LEIAIAAvnEAILfwF+IwBBIGsiAyQAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiBEGAgICAeHMgBEEAThtBFGsOAgECAAsgASADQRRqQeTjwAAQlQghASAAQYCAgIB4NgIAIAAgATYCBAwHCwJAAkACfwJAIAEoAgwiCARAAkAgASgCCCIFKAIAQZSAgIB4RgRAAkAgBSgCDCIEBEAgA0EEaiAFKAIIEKgDIAMoAgQiAUGAgICAeEcNASADKAIIIQQMBwtBACADQRRqQYTiwAAQ2wYhBAwGCyADKAIIIQIgBEEBRg0BIANBATYCBCAEQQFrQf////8AcUEBaiADQQRqQeiVwQAQ2wYhBCABRQ0FIAIgAUEBEKIHDAULIAUgA0EUakGE4sAAEJUIIQQMBAsgCEEBRg0BIAMoAgwhCUGAgICAeCEGAkACfwJAAkBBFSAFQRBqIgooAgAiC0GAgICAeHMgC0EAThtBEGsOAwMBAwALIANBBGogChCoA0GBgICAeCADKAIEIgQgBEGBgICAeEwbDAELIANBBGogBSgCFBCoA0GBgICAeCADKAIEIgQgBEGBgICAeEwbCyEGIAMoAgwhByADKAIIIgQgBkH/////B2pBAkkNAxoLIAhBAkYNBCADQQI2AgQgCEH+////AGpB/////wBxQQJqIANBBGpB6JXBABDbBiEFIABBgICAgHg2AgAgACAFNgIEIAEEQCACIAFBARCiBwsgBkGAgICAeHJBgICAgHhGDQsgBCAGQQEQogcMCwtBAEHs/cAAQYD9wAAQ2wYhBAwCC0EBQez9wABBgP3AABDbBgshBCABRQ0AIAJBBGsoAgAiBkF4cSIFQQRBCCAGQQNxIgYbIAFqSQ0KIAZBACAFIAFBJ2pLGw0JIAIQogILIAAgBDYCBCAAQYCAgIB4NgIADAcLIAAgBzYCFCAAIAQ2AhAgACAGNgIMIAAgCTYCCCAAIAI2AgQgACABNgIADAYLIAEoAgghBCABKAIEIQEgA0IANwIMIAMgATYCBCADIAEgBEEFdGoiCjYCCCAERQRAQYGAgIB4IQUMAgtBgICAgHghB0GBgICAeCEFA0AgAyABQSBqIgQ2AgQgAyADKAIQQQFqNgIQIAMgAUEQaiILNgIMAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiAkGAgICAeHMgAkEAThtBAWsODwAGBgEGBgYGBgYGAgMEBQYLIAEtAAQiAkUNCEEBQQIgAkEBRhshAgwLCyABKQMIIg1QDQdBAUECIA1CAVEbIQIMCgsgASgCCCECIAEoAgxBBWsOBAULCwcLCyABKAIEIQICQCABKAIIQQVrDgQECwsACwsgAikAAELl3I37xqyat+cAUQ0JDAoLIAEoAgghAgJAAkAgASgCDEEFaw4EAAsLAQsLIAItAABB5gBHDQogAi0AAUHpAEcNCiACLQACQewARw0KIAItAANB5QBHDQogAi0ABEHzAEcNCgwFCyACLQAAQeUARw0JIAItAAFB7gBHDQkgAi0AAkHjAEcNCSACLQADQe8ARw0JIAItAARB5ABHDQkgAi0ABUHpAEcNCSACLQAGQe4ARw0JIAItAAdB5wBGDQgMCQsgASgCBCECAkACQCABKAIIQQVrDgQACgoBCgsgAi0AAEHmAEcNCSACLQABQekARw0JIAItAAJB7ABHDQkgAi0AA0HlAEcNCSACLQAEQfMARw0JDAQLIAItAABB5QBHDQggAi0AAUHuAEcNCCACLQACQeMARw0IIAItAANB7wBHDQggAi0ABEHkAEcNCCACLQAFQekARw0IIAItAAZB7gBHDQggAi0AB0HnAEYNBwwICyABIANBFGpB5OTAABCVCCEBDA0LIAJBkP3AAEEFENsHDQYMAQsgAkGQ/cAAQQUQ2wcNBQsgB0GAgICAeEYNAUGQ/cAAQQUQnwchAQwKCyACKQAAQuXcjfvGrJq35wBRDQIMAwsgA0EUaiADQQRqELIFIAMoAhghASADKAIUIgdBgICAgHhGBEBBgICAgHghBwwJCyADKAIcIQwgAygCCCEKIAMoAgQhBCABIQYMBAsgAkECRg0BCyAFQYGAgIB4Rg0BQcj9wABBCBCfByEBIAVBgICAgHhyQYCAgIB4Rg0IDAcLIANBADYCDAwBCyADQQA2AgxBgICAgHghBQJ/AkACQEEVIAsoAgAiAkGAgICAeHMgAkEAThtBEGsOAwMBAwALIANBFGogCxCoAyAIIAMoAhwgAygCFCIBQYCAgIB4RhshCEGBgICAeCABIAFBgYCAgHhMGwwBCyADQRRqIAEoAhQQqAMgCCADKAIcIAMoAhQiAUGAgICAeEYbIQhBgYCAgHggASABQYGAgIB4TBsLIQUgAygCGCIJIQEgBUGBgICAeEYNBgsgCiAEIgFHDQALDAALIAdBgICAgHhGDQAgACAINgIUIAAgCTYCECAAIAw2AgggACAGNgIEIAAgBzYCACAAQYCAgIB4IAUgBUGBgICAeEYbNgIMDAQLQYCAgIB4IQdBkP3AAEEFEJwHIQELIAVFIAVBgoCAgHhIcg0BCyAJQQRrKAIAIgRBeHEiAkEEQQggBEEDcSIEGyAFakkNAyAEQQAgAiAFQSdqSxsNAiAJEKICCyAHQYCAgIB4ckGAgICAeEcEQCAGQQRrKAIAIgRBeHEiBUEEQQggBEEDcSIEGyAHakkNAyAEQQAgBSAHQSdqSxsNAiAGEKICCyAAQgA3AhAgACABNgIEIABBgICAgHg2AgALIANBIGokAA8LQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC7QPAgl/BH4jAEHgAmsiASQAAkACQAJAIAAtAIAERQRAIAAoApABIgJBAkcNAiAAKAIAQQJHDQIgACgCuAIiA0EDSw0BQQAhAgwDCyAANQK4AiEKIABBADYCuAIgACAKIAApA3B8NwNwDAILIABBkAFqIQggASAAKAK0AiIEKAAAIgI2AhACQAJAAkACQAJAAkACQAJAAkAgAkHSgpGaBEcEQCACQdKCkYIDRw0CIANBCEkNASADIAQoAAQiBUEHakF4cUEIaiICSQ0BIAVBCGoiBiADSyAFQXdLcg0DIAFBADYC2AIgASAFNgLUAiABIARBCGo2AtACIAFBIGogAUHQAmoQWSABKAIkIQUgASgCICIHQQJGBEAgBRDOByECDAwLIAFBsAFqIAFBKGpBgAH8CgAAIABBADYCuAIgASAFNgKsASABIAc2AqgBIAMgAmshBgJAAkAgAkUNACACIANGDQEgBkUNACAEIAIgBGogBvwKAAALIAAgBjYCuAILIAAgACkDcCACrXwiCjcDeCAAIAo3A3AgASgCpAJBAUcNBCAAIAEoApQCIgQ2ApwCIAAgASgCtAEgASgCwAEiAyABKAKwARsiAjYCoAIgAkUNBSAEIAMgAm4iBCACIARsIANHaiICRgRAIAEtAKgCIQIgASAFQQAgB0EBcRs2AiQgASADNgIgIAEgAkEBcToAKCAAQbwCaiABQSBqEOEDAkAgACgCkAFBAkYNACAAKAL4ASEEIAAoAvwBIgMEQCAEQSRqIQIDQCACQQRrKAIAIgVBgICAgHhyQYCAgIB4RwRAIAIoAgAiBkEEaygCACIHQXhxIglBBEEIIAdBA3EiBxsgBWpJDQsgB0EAIAkgBUEnaksbDQwgBhCiAgsgAkEwaiECIANBAWsiAw0ACwsgACgC9AEiAwRAIAQgA0EwbEEIEKIHCyAAKAKAAiIDQYCAgIB4ckGAgICAeEYNACAAKAKEAiADQQEQogcLIAggAUGoAWpBiAH8CgAADAoLIAEgAjYCzAIgAUECNgIkIAFB6MfBADYCICABQgI3AiwgAUKAgICAECIKIABBnAJqrYQ3A9gCIAEgCiABQcwCaq2ENwPQAiABIAFB0AJqNgIoIAFBwAJqIgAgAUEgahCxBgwICyABQQhqIAAQtwIgAS0ACEUEQCABLQAJDQlBACECDAsLIAEoAgwhAgwKC0EAIQIMCQsgAUEBNgI0IAFBzMjBADYCMCABQQE2AiQgAUHEyMEANgIgIAFBATYCLCABIAFBEGqtQoCAgICQBIQ3A9ACIAEgAUHQAmo2AiggAUEUaiIAIAFBIGoQsQYgABCOByECDAgLQQggBiADQZzIwQAQ6gcACyABQQE2AiQgAUGUyMEANgIgIAFCATcCLCABIAFBpAJqrUKAgICAEIQ3A9ACIAEgAUHQAmo2AiggAUG0AmoiACABQSBqELEGDAMLQbTHwQAQgQgAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgABCOByECIAFBqAFqEM8EDAILIAgoAgAhAgsCQAJAAkACQAJ/AkAgAkECRwRAIAAoApgCIAAoApwCTw0GIAAoAgBBAkYNAUEADAILIAFBqAFqIAAQNiABKAKsAUEAIAEtAKgBIgMbIQIgAw0GIAEtAKkBQQFxRQ0GIAApA4gBIgwgACkDcCIKWARAIAAoArgCIQMMBQsgACgCuAIhBEEAIQMgAEEANgK4AiAEIAwgCn0iCyAErSINIAsgDVQbIgunIgVrIQIgC1BFBEAgBCAFRg0EIAJFDQMgACgCtAIiAyADIAVqIAL8CgAADAMLIAQgBUcNAgwDC0EBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAIAJFBEAgAUGoAWogABA2IAEoAqwBIQMgAS0AqAEiAg0CIAEtAKkBQQFxRQ0CIAApA4gBIgogACkDcCIMVg0BDAYLIAFBqAFqIAAQtwIgAS0AqAFBAUYEQCABKAKsASECDBELIAEtAKkBDQlBACECDBALIAAoArgCIQMgAEEANgK4AiADIAogDH0iCyADrSINIAsgDVQbIgunIgJrIQQgC1ANASACIANGDQMgBEUNAiAAKAK0AiIDIAIgA2ogBPwKAAAMAgsgA0EAIAIbIQIMDgsgAiADRg0BCyAAIAQ2ArgCCyAAIAsgDHwiDDcDcCAKIAxWDQELAkAgACgCAEECRg0AIAAoAlwiA0UNACAAKAJgIgJBBGsoAgAiBEF4cSIFIANBKGwiA0EEQQggBEEDcSIEG2pJDQIgBEEAIAUgA0EnaksbDQMgAhCiAgsgAEECNgIAIAAgACgCmAJBAWoiAzYCmAIgAyAAKAKcAkkNBAwJC0EAIQIMCQtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQQAhAgwBC0EBIQIMAAsACyAAIAI2ArgCIAIhAwsgACAKIAt8Igo3A3AgCiAMWg0AQQAhAgwCC0EAIQIgAEEANgK4AiAAQQE6AIAEIAAgCiADrXw3A3AMAQsgAEEBOgCABCAANQK4AiEKQQAhAiAAQQA2ArgCIAAgCiAAKQNwfDcDcAsgAUHgAmokACACC5sMAgh/BH4gACgCFCEDIAAoAhAhBSAAKQMIIQsgACgCBCEJIAAoAgAhCCAAKAIYIgJBAEgEQCAFIAlJBEAgCCAFQQJ0aigAACEGCyAGQRh0IAZBgP4DcUEIdHIgBkEIdkGA/gNxIAZBGHZycq0gC0IghoQhCyAFQQFqIQUgAkEgaiECCyALIAMgA0EBdiIDayIErSACQT9xrYYiDEIAIAsgDFoiBht9IQogAiADIAQgBhsiA2ciAkEYayIEQQAgAiAETxsiBGshAiADIAR0IQQCQCABQf8BcUECSQ0AIAJBAEgEQEEAIQYgBSAJSQRAIAggBUECdGooAAAhBgsgBkEYdCAGQYD+A3FBCHRyIAZBCHZBgP4DcSAGQRh2cnKtIApCIIaEIQogBUEBaiEFIAJBIGohAgsgCiAEIARBAXYiBmsiBK0gAkE/ca2GIg1CACAKIA1aIgMbfSEKIAIgBiAEIAMbIgZnIgJBGGsiBEEAIAIgBE8bIgRrIQIgBiAEdCEEIANBAkEAIAsgDFobciEGIAFB/wFxQQJGDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIHrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAcgAxsiBGciAkEYayIHQQAgAiAHTxsiB2shAiAEIAd0IQQgAyAGQQF0ciEGIAFB/wFxQQRJDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIHrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAcgAxsiBGciAkEYayIHQQAgAiAHTxsiB2shAiAEIAd0IQQgAyAGQQF0ciEGIAFB/wFxQQRGDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIHrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAcgAxsiBGciAkEYayIHQQAgAiAHTxsiB2shAiAEIAd0IQQgAyAGQQF0ciEGIAFB/wFxQQZJDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIHrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAcgAxsiBGciAkEYayIHQQAgAiAHTxsiB2shAiAEIAd0IQQgAyAGQQF0ciEGIAFB/wFxQQZGDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIHrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAcgAxsiBGciAkEYayIHQQAgAiAHTxsiB2shAiAEIAd0IQQgAyAGQQF0ciEGIAFB/wFxQQhJDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIIrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAggAxsiBGciAkEYayIIQQAgAiAITxsiCGshAiAEIAh0IQQgAyAGQQF0ciEGCyAFIAlNBEAgACACNgIYIAAgBDYCFCAAIAU2AhAgACAKNwMIIAYPCyAAIAEQ8AcLyA0CDH8BfiMAQdAAayIIJAAgCEEQaiAAKAIEIgYgACgCCCICQficxgBBCRDhAQJAAkACQCAIKAIQQQFGBEAgCEEYaiEHIAgoAkwhAyAIKAJIIQkgCCgCRCEEIAgoAkAhBSAIKAI0QX9GDQEgCEEEaiAHIAUgBCAJIANBABDeAwwCCyAIAn9BACAILQAeDQAaIAgtAB0hCgJAIAgoAhgiAQRAIAgoAkAhDAJAIAgoAkQiBSABTQRAIAEgBUYNAQwHCyABIAxqLAAAQUBIDQYLIAEgDGoiB0EBaywAACIEQQBIBEAgBEE/cQJ/IAdBAmstAAAiCcAiC0G/f0oEQCAJQR9xDAELIAtBP3ECfyAHQQNrLQAAIgPAIglBv39KBEAgA0EPcQwBCyAJQT9xIAdBBGstAABBB3FBBnRyC0EGdHILQQZ0ciEECyAKQQFxDQECf0F/IARBgAFJDQAaQX4gBEGAEEkNABpBfUF8IARBgIAESRsLIAFqIgFFBEBBACEBDAILAkAgASAFTwRAIAEgBUcNBwwBCyABIAxqLAAAQUBIDQYLIAEgDGoiCUEBaywAAEEATg0BIAlBAmssAAAaDAELQQAiASAKQQFxRQ0BGgsgCCABNgIIQQELNgIEDAELIAhBBGogByAFIAQgCSADQQEQ3gMLAkACQAJAAkAgCCgCBEEBRgRAIAgoAggiCUEJaiIFIQEDQAJAIAFFDQAgASACTwRAIAEgAkYNAQwHCyABIAZqLAAAQUBIDQYLAkAgASACRgR/IAIFIAEgBmotAABBMGtB/wFxQQpJDQEgAQshBCABRQ0DAkAgAiAETQRAIAIgBEcNAQwFCyAEIAZqLAAAQb9/Sg0ECyAGIAIgBCACQZSdxgAQuwkACyABQQFqIQEMAAsAC0EAIQoMAQtBACEKIAIgBGtBCEkNACAEIAZqIgcpAABCoMa949aum7cgUg0AIARBCGoiCyEDAkACQAJAAkADQAJAIANFDQAgAiADTQRAIAIgA0YNAQwICyADIAZqLAAAQUBIDQcLAkACQAJAIAIgA0YEQCACIQMMAQsgAyAGai0AAEEwa0H/AXFBCkkNASACIANLDQgLIAQgBUkNAyAFRQ0BIAUgBmosAABBv39KDQEMAwsgA0EBaiEDDAELCyABBEAgBywAAEFASA0BCyAFIAZqIQECQAJAAkAgBCAFayIEDgIHAAELQQEhByABLQAAQStrDgMGAQYBCyABLQAAQStGBEAgBEEBayEHIAFBAWohASAEQQpJDQEMAwsgBCEHIARBCU8NAgtBACEEA0AgAS0AAEEwayIFQQlLDQQgAUEBaiEBIAUgBEEKbGohBCAHQQFrIgcNAAsMAgsgBiACIAUgBEG8ncYAELsJAAtBACEEA0AgB0UNASABLQAAQTBrIgVBCUsNAiAErUIKfiINQiCIpw0CIAFBAWohASAHQQFrIQcgBSANp2oiBCAFTw0ACwwBCwJAAkAgAyALSQ0AIAsEQCACIAtNBEAgAiADRg0DDAILIAIgA0cNASAGIAtqLAAAQUBIDQEMAgsgAiADRg0BCyAGIAIgCyADQcydxgAQuwkACyAGIAtqIQECQAJAAkACQAJAIAIgC2siBQ4CBgABC0EBIQMgAS0AAEEraw4DBQEFAQsgAS0AAEErRgRAIAVBAWshAyABQQFqIQEgBUEKSQ0BDAILIAUiA0EJTw0BC0EAIQUDQCABLQAAQTBrIgdBCUsNBCABQQFqIQEgByAFQQpsaiEFIANBAWsiAw0ACwwBC0EAIQUDQCADRQ0BIAEtAABBMGsiB0EJSw0DIAWtQgp+Ig1CIIinDQMgAUEBaiEBIANBAWshAyAHIAcgDadqIgVNDQALDAILQQEhCiACIAlJDQEgCUUEQCAJIQIMAgsgAiAJTQRAIAkhAgwCCyAJIgIgBmosAABBv39KDQFB5J/GAEEwQdydxgAQ6wcACwsCQAJAAkACQCAAKAIAIgMgAk0NACACRQRAIAZBBGsoAgAiAEF4cSIJQQRBCCAAQQNxIgAbIANqSQ0CIABBACAJIANBJ2pLGw0DIAYQogJBASEGDAELIAYgA0EBIAIQuwIiBkUNAwtBFBBxIgBFDQIgACACNgIIIAAgBjYCBCAAQQA2AgAgACAFQQAgChs2AhAgACAEQQAgChs2AgwgCEHQAGokACAADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwsACyAGIAIgAyACQaydxgAQuwkACyAGIAIgASACQYSdxgAQuwkACyAMIAVBACABQfylxgAQuwkAC4kOAw5/BH4BeyMAQSBrIgokAAJAAkACQCAAKAIMIgsgAWoiASALTwRAAkAgACgCBCIIIAhBAWoiCUEDdiIDQQdsIg4gCEEISRsiBkEBdiABSQRAAkACQAJAAkACfyAGQQFqIgMgASABIANJGyIBQQ9PBEAgAUH/////AUsNC0F/IAFBA3RBB25BAWtndkEBagwBC0EEIAFBCHFBCGogAUEESRsLIgGtQhR+IhFCIIinDQAgEadBB2pBeHEiAyABQQhqIgZqIgUgA0kgBUH4////B0tyDQAgBRBxIgVFDQEgAyAFaiEEIAYEQCAEQf8BIAb8CwALIAFBAWsiCSABQQN2QQdsIAlBCEkbIQwgACgCACEFIAsNAkEAIQsMAwsgCkEANgIYIApBATYCDCAKQcS1xAA2AgggCkIENwIQIApBCGpBmLXEABCNCAsACyAEQQhqIQ0gBUEUayEOIAUpAwBCf4VCgIGChIiQoMCAf4MhESACKQMIIRMgAikDACEUQQAhASALIQIgBSEGA0AgEVAEQANAIAFBCGohASAGQQhqIgYpAwBCgIGChIiQoMCAf4MiEUKAgYKEiJCgwIB/UQ0ACyARQoCBgoSIkKDAgH+FIRELIAQgCSAUIBMgDiAReqdBA3YgAWoiD0FsbGoiA0EEaigCACADQQhqKAIAEJUEpyIQcSIDaikAAEKAgYKEiJCgwIB/gyISUARAQQghBwNAIAMgB2ohAyAHQQhqIQcgBCADIAlxIgNqKQAAQoCBgoSIkKDAgH+DIhJQDQALCyARQgF9IBGDIREgBCASeqdBA3YgA2ogCXEiA2osAABBAE4EQCAEKQMAQoCBgoSIkKDAgH+DeqdBA3YhAwsgAyAEaiAQQRl2Igc6AAAgDSADQQhrIAlxaiAHOgAAIAQgA0F/c0EUbGoiA0EQaiAFIA9Bf3NBFGxqIgdBEGooAAA2AAAgAyAH/QAAAP0LAAAgAkEBayICDQALCyAAIAk2AgQgACAENgIAIAAgDCALazYCCCAIRQ0BIAggCEEUbEEbakF4cSIBakEJaiIARQ0BIAUgAWsiAUEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAGpJDQMgAkEAIAMgAEEnaksbDQQgARCiAgwBCyAAIAkEfyAAKAIAIQACQAJAIAMgCUEHcUEAR2oiBUECSQRAIAUhBgwBCyAFQQFxIQYgBUH+////A3EiBEEDdCEHIAQhAyAAIQEDQCABIAH9AAMAIhX9TUEH/c0B/QwBAQEBAQEBAQEBAQEBAQEB/U4gFf0Mf39/f39/f39/f39/f39/f/1Q/c4B/QsDACABQRBqIQEgA0ECayIDDQALIAQgBUYNAQsgACAHaiEBA0AgASABKQMAIhFCf4VCB4hCgYKEiJCgwIABgyARQv/+/fv379+//wCEfDcDACABQQhqIQEgBkEBayIGDQALCwJAIAlBCE8EQCAAIAlqIAApAAA3AAAMAQsgCUUNACAAQQhqIAAgCfwKAAALIABBCGohBSACKQMIIRIgAikDACETQQEhA0EAIQEDQCABIQYgAyEBAkAgACAGaiIMLQAAQYABRw0AIAAgBkF/c0EUbGohAyAAIAZBbGxqIgJBDGshDyACQRBrIRADQCAIIBMgEiAQKAIAIA8oAgAQlQSnIg1xIgQhAiAAIARqKQAAQoCBgoSIkKDAgH+DIhFQBEBBCCEHA0AgAiAHaiECIAdBCGohByAAIAIgCHEiAmopAABCgIGChIiQoMCAf4MiEVANAAsLIAAgEXqnQQN2IAJqIAhxIgJqLAAAQQBOBEAgACkDAEKAgYKEiJCgwIB/g3qnQQN2IQILIAIgBGsgBiAEa3MgCHFBCE8EQCAAIAJqIgQtAAAgBCANQRl2IgQ6AAAgBSACQQhrIAhxaiAEOgAAIAAgAkF/c0EUbGohAkH/AUYEQCAMQf8BOgAAIAUgCCAGQQhrcWpB/wE6AAAgAkEQaiADQRBqKAAANgAAIAIgA/0AAAD9CwAADAMLIAMoAAAhBCADIAIoAAA2AAAgAiAENgAAIAIoAAQhBCACIAMoAAQ2AAQgAyAENgAEIAMoAAghBCADIAIoAAg2AAggAiAENgAIIAIoAAwhBCACIAMoAAw2AAwgAyAENgAMIAMoABAhBCADIAIoABA2ABAgAiAENgAQDAELCyAMIA1BGXYiAjoAACAFIAggBkEIa3FqIAI6AAALIAEgASAJSSICaiEDIAINAAsgCCAOIAhBCEkbBUEACyALazYCCAsgCkEgaiQADwsMAgtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIApBADYCGCAKQQE2AgwgCkHEtcQANgIIIApCBDcCECAKQQhqQZi1xAAQjQgAC8cNAQh/An8CQCACIANLBEAgASADQRJsaiIDLwEAIgJB//8BcUUEQCACQRB0DAMLIAJB/wdxIQEgAkGAgAJxIQUgAkGA+AFxIgJBgPgBRgRAIAVBEHQhAiACQYCAgPwHciABRQ0DGiACIAFBDXRyQYCAgP4HcgwDCyAFQRB0IQUgAkUNASACQQ10QYCAgPwAcSABQQ10ckGAgIDAA2ogBXIMAgsgAyACQfTAxwAQjAcACyAFQYCAgNgDciABZ0EQayICQRd0ayABIAJB//8DcUEIanRB////A3FyCyEBAn8gAy8BAiIFQf//AXFFBEAgBUEQdAwBCyAFQf8HcSECIAVBgIACcSEGIAVBgPgBcSIFQYD4AUYEQCAGQRB0IQUgBUGAgID8B3IgAkUNARogBSACQQ10ckGAgID+B3IMAQsgBkEQdCEGIAVBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAGciAFDQAaIAZBgICA2ANyIAJnQRBrIgVBF3RrIAIgBUH//wNxQQhqdEH///8DcXILIQUCfyADLwEEIgZB//8BcUUEQCAGQRB0DAELIAZB/wdxIQIgBkGAgAJxIQcgBkGA+AFxIgZBgPgBRgRAIAdBEHQhBiAGQYCAgPwHciACRQ0BGiAGIAJBDXRyQYCAgP4HcgwBCyAHQRB0IQcgBkENdEGAgID8AHEgAkENdHJBgICAwANqIAdyIAYNABogB0GAgIDYA3IgAmdBEGsiBkEXdGsgAiAGQf//A3FBCGp0Qf///wNxcgshBgJ/IAMvAQYiB0H//wFxRQRAIAdBEHQMAQsgB0H/B3EhAiAHQYCAAnEhCCAHQYD4AXEiB0GA+AFGBEAgCEEQdCEHIAdBgICA/AdyIAJFDQEaIAcgAkENdHJBgICA/gdyDAELIAhBEHQhCCAHQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogCHIgBw0AGiAIQYCAgNgDciACZ0EQayIHQRd0ayACIAdB//8DcUEIanRB////A3FyCyEHAn8gAy8BCCIIQf//AXFFBEAgCEEQdAwBCyAIQf8HcSECIAhBgIACcSEJIAhBgPgBcSIIQYD4AUYEQCAJQRB0IQggCEGAgID8B3IgAkUNARogCCACQQ10ckGAgID+B3IMAQsgCUEQdCEJIAhBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAJciAIDQAaIAlBgICA2ANyIAJnQRBrIghBF3RrIAIgCEH//wNxQQhqdEH///8DcXILIQgCfyADLwEKIglB//8BcUUEQCAJQRB0DAELIAlB/wdxIQIgCUGAgAJxIQogCUGA+AFxIglBgPgBRgRAIApBEHQhCSAJQYCAgPwHciACRQ0BGiAJIAJBDXRyQYCAgP4HcgwBCyAKQRB0IQogCUENdEGAgID8AHEgAkENdHJBgICAwANqIApyIAkNABogCkGAgIDYA3IgAmdBEGsiCUEXdGsgAiAJQf//A3FBCGp0Qf///wNxcgshCQJ/IAMvAQwiCkH//wFxRQRAIApBEHQMAQsgCkH/B3EhAiAKQYCAAnEhBCAKQYD4AXEiCkGA+AFGBEAgBEEQdCEKIApBgICA/AdyIAJFDQEaIAogAkENdHJBgICA/gdyDAELIARBEHQhBCAKQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBHIgCg0AGiAEQYCAgNgDciACZ0EQayIKQRd0ayACIApB//8DcUEIanRB////A3FyCyEKAn8gAy8BDiIEQf//AXFFBEAgBEEQdAwBCyAEQf8HcSECIARBgIACcSELIARBgPgBcSIEQYD4AUYEQCALQRB0IQQgBEGAgID8B3IgAkUNARogBCACQQ10ckGAgID+B3IMAQsgC0EQdCELIARBDXRBgICA/ABxIAJBDXRyQYCAgMADaiALciAEDQAaIAtBgICA2ANyIAJnQRBrIgRBF3RrIAIgBEH//wNxQQhqdEH///8DcXILIQIgAAJ/IAMvARAiBEH//wFxRQRAIARBEHQMAQsgBEH/B3EhAyAEQYCAAnEhCyAEQYD4AXEiBEGA+AFGBEAgC0EQdCEEIARBgICA/AdyIANFDQEaIAQgA0ENdHJBgICA/gdyDAELIAtBEHQhCyAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogC3IgBA0AGiALQYCAgNgDciADZ0EQayIEQRd0ayADIARB//8DcUEIanRB////A3FyCzYCICAAIAI2AhwgACAKNgIYIAAgCTYCFCAAIAg2AhAgACAHNgIMIAAgBjYCCCAAIAU2AgQgACABNgIAC/sJAQd/IAAoAgQhAgJAAkAgACgCCCIFBEAgAiEBA0AgAUEoaigCACIGBEAgAUEsaigCACIHQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyAGakkNAyADQQAgBCAGQSdqSxsNBCAHEKICCyABEL8EIAFBQGshASAFQQFrIgUNAAsLIAAoAgAiAwRAIAJBBGsoAgAiAUF4cSIEIANBBnQiA0EEQQggAUEDcSIBG3JJDQEgAUEAIAQgA0EncksbDQIgAhCiAgsCQCAAKAKEASIBQYCAgIB4Rg0AIAEEQCAAKAKIASIEQQRrKAIAIgJBeHEiAyABQQN0IgFBBEEIIAJBA3EiAhtqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoApABIgEEQCAAKAKUASIEQQRrKAIAIgJBeHEiAyABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoApwBIgEEQCAAKAKgASIEQQRrKAIAIgJBeHEiAyABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoAqgBIgFFDQAgACgCrAEiBEEEaygCACICQXhxIgMgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAIMIgEEQCAAKAIQIgRBBGsoAgAiAkF4cSIDIAFByABsIgFBBEEIIAJBA3EiAhtqSQ0BIAJBACADIAFBJ2pLGw0CIAQQogILIAAoAhgiAQRAIAAoAhwiBEEEaygCACICQXhxIgMgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAIkIgEEQCAAKAIoIgRBBGsoAgAiAkF4cSIDIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAMgAUEnaksbDQIgBBCiAgsgACgCMCIBBEAgACgCNCIEQQRrKAIAIgJBeHEiAyABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACADIAFBJ2pLGw0CIAQQogILIAAoAjwiAQRAIAAoAkAiBEEEaygCACICQXhxIgMgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAJIIgEEQCAAKAJMIgRBBGsoAgAiAkF4cSIDIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAMgAUEnaksbDQIgBBCiAgsgACgCVCIBBEAgACgCWCIEQQRrKAIAIgJBeHEiAyABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACADIAFBJ2pLGw0CIAQQogILIAAoAmAiAQRAIAAoAmQiBEEEaygCACICQXhxIgMgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAJsIgEEQCAAKAJwIgRBBGsoAgAiAkF4cSIDIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAMgAUEnaksbDQIgBBCiAgsgACgCeCICBEAgACgCfCIDQQRrKAIAIgBBeHEiASACQQJ0IgJBBEEIIABBA3EiABtqSQ0BIABBACABIAJBJ2pLGw0CIAMQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL1A0CF38BeyABQeTRAGohEiABQYAEaiETIAFBgM8AaiEUIAFBgB1qIRUgAUGg0QBqIRYgAUGANmohFyABQe3RAGohGCMAQfAAayIIQTBqIRkgAS0A61EhBCAIQRhqIRECfwNAAkACQAJAAkACQAJAIARB/wFxIgsOAwABAgMLIBH9DAAAAAAAAAAAAAAAAAAAAAAiGv0LAwAgCCAa/QsDCEEAIQUgCEEsakEAQcQA/AsAA0AgASAFaiIDQbAEav0MHgMeAx4DHgMeAx4DHgMeAyIa/QsCACADQaAEaiAa/QsCACADQZAEaiAa/QsCACADQYAEaiAa/QsCACAFQUBrIgVBgBBHDQALQaACIQQgEyEMIBQhDwwDCyAR/QwAAAAAAAAAAAAAAAAAAAAAIhr9CwMAIAggGv0LAwhBACEFIAhBLGpBAEHEAPwLAANAIAEgBWoiA0GwHWr9DB4DHgMeAx4DHgMeAx4DHgMiGv0LAgAgA0GgHWogGv0LAgAgA0GQHWogGv0LAgAgA0GAHWogGv0LAgAgBUFAayIFQYAQRw0AC0EgIQQgFSEMIBYhDwwCCyAR/QwAAAAAAAAAAAAAAAAAAAAAIhr9CwMAIAggGv0LAwhBACEFIAhBLGpBAEHEAPwLAANAIAEgBWoiA0GwNmr9DB4DHgMeAx4DHgMeAx4DHgMiGv0LAgAgA0GgNmogGv0LAgAgA0GQNmogGv0LAgAgA0GANmogGv0LAgAgBUFAayIFQYAQRw0AC0ETIQQgFyEMIBghDwwCC0EDDAMLIAxBgBBqQQBBgAn8CwALQRwhCUEDIBIgC0EBdGovAQAiECAESw0BGiAQBEAgECEFIA8hBANAQQMgBC0AACIDQQ9LDQMaIAhBCGogA0EBdGoiAyADLwEAQQFqOwEAIARBAWohBCAFQQFrIgUNAAsLQQAhBEEBIQNBACEFQQAhCgNAAkACfyADRQRAIARBD0sNAiAEQQFqDAELIARBECAEayIGIAMgAyAGSxsiBiAEaiIHIAQgB0sbIgRBD0sNASAGIANrIQYDQCAGBEAgBkEBaiEGIARBAWoiBEEQRw0BDAMLC0EAIQMgBEEBagsgGSAEQQJ0aiAFIAhBCGogBEEBdGovAQAiBGpBAXQiBTYCACAEIApqIQohBAwBCwsgBUGAgARHBEBBASALQQJGIApB//8DcUEBS3INAhoLIAxBgBBqIQ1B//8DIQlBACEKA0AgCiAQSQRAIApBAWohBANAIAohCyAEIQoCQCALIA9qLQAAQQ9xIgdFDQAgCEEsaiAHQQJ0aiIDIAMoAgAiA0EBajYCAAJ/IANBf0EgIAdrdnEiA0GABE8EQCADQQh0IANBgP4DcUEIdnIiA0EEdkGPHnEgA0GPHnFBBHRyIgNBAnZBs+YAcSADQbPmAHFBAnRyIgNBAXZB1aoBcSADQdWqAXFBAXRyDAELIANBAXQvAZT/RAtB//8DcUEQIAdrdiEFIAdBCk0EQCAFQf8HSw0BIAdBCXQgC3IhA0EBIAd0IgZBAXQhCyAMIAVBAXRqIQQDQCAEIAM7AQAgBCALaiEEIAUgBmoiBUGACEkNAAsMAQsgDCAFQf8HcUEBdGoiAy8BACIGQZ4GRwR/IAkFIAMgCTsBACAJIgZBAmsLIQMCQCAHQQtGBEAgBUEJdiEODAELQQohCUEDIAVBCnYiDkEBcSAGQX9zakH//wNxIgRBvwRLDQYaIA0gBEEBdGoiBC8BACIGBH8gAwUgBCADOwEAIAMhBiADQQJrCyEEIAdBDUkEQCAEIQMMAQtBAyAFQQt2Ig5BAXEgBkF/c2pB//8DcSIDQb8ESw0GGiANIANBAXRqIgMvAQAiBgR/IAQFIAMgBDsBACAEIQYgBEECawshAyAHQQ1GDQBBAyAFQQx2Ig5BAXEgBkF/c2pB//8DcSIEQb8ESw0GGiANIARBAXRqIgQvAQAiBgR/IAMFIAQgAzsBACADIQYgA0ECawshBCAHQQ9HBEAgBCEDDAELQQMgBUENdiIOQQFxIAZBf3NqQf//A3EiA0G/BEsNBhogDSADQQF0aiIDLwEAIgYEQCAEIQMMAQsgAyAEOwEAIARBAmshAyAEIQYLIA5BAXZBAXEgBkF/c2pB//8DcSIEQb8ESwRAQQohCUEDDAYLIA0gBEEBdGogCzsBACADIQkMAwsgCiAKIBBJIgNqIQQgAw0ACwsLAkACQAJAIAEtAOtRIgMOAwABAgELIAJBADYCDEEMIQlBAQwDCyABIANBAWsiBDoA61EMAQsLIAJBADYCDEEKIQlBAQshBCAAIAk6AAEgACAEOgAAC6IOBAp/A30BewF+IwBB0ARrIgokAAJAAkACQAJAAnsgAxC5CiISBEBDAACAPyEUQwAAgD8hFUMAAIA/IRb9DAAAAAAAAIA/AABAwQAAEEEMAQsgCkHQAWogAxC1ASAKLQDsASINQQJGBEAgCigC0AEhCyAAQQA2AgAgACALNgIEQQEhDQwCCyAKQQ5qIApB7wFqLQAAOgAAIAogCi8A7QE7AQwgCioC6AEhFCAKKgLkASEVIAoqAuABIRYgCv0ABNABCyEXQQYhDAJAAkACQAJAAkAgASgCACILQYCAgIB4Rg0AIApBEGogASgCBCIOIAEoAggQkQUgCi0AEEEBRgRAIAooAhQhDCAKQQA2ApwDIApCgICAgBA3ApQDIApBnJPBADYC1AEgCkKggICADjcC2AEgCiAKQZQDajYC0AEgDCAKQdABahCvBA0CIAooApQDIQ0gCigCmAMiDyAKKAKcAxDsCCERIA0EQCAPQQRrKAIAIhBBeHEiE0EEQQggEEEDcSIQGyANakkNCSAQQQAgEyANQSdqSxsNCiAPEKICC0EAIQ0gAEEANgIAIAAgETYCBCAMIAwoAgAoAgARAwAgC0UNBiAOQQRrKAIAIgBBeHEiDEEEQQggAEEDcSIAGyALakkNCCAAQQAgDCALQSdqSxsNCSAOEKICDAYLIAotABEhDCALRQ0AIA5BBGsoAgAiAUF4cSIPQQRBCCABQQNxIgEbIAtqSQ0HIAFBACAPIAtBJ2pLGw0IIA4QogILQQQhAUEAIQtBABC2CSEQQQAhDkEEIQ8CQCAEQQFxRQ0AIApB0AFqIAUQlwYgCigC2AEhESAKKALUASEPIAooAtABIQ4gBUGECEkNACAFEJsHC0EAIQUCQCAGQQFxRQ0AIApB0AFqIAcQlwYgCigC2AEhBSAKKALUASEBIAooAtABIQsgB0GECEkNACAHEJsHC0EEIQdBACEGQQAhBAJAIAhBAXFFDQAgCkHQAWogCRCXBiAKKALYASEEIAooAtQBIQcgCigC0AEhBiAJQYQISQ0AIAkQmwcLIAogDToA7AIgCiAUOALoAiAKIBU4AuQCIAogFjgC4AIgCiAX/QsC0AIgCkGAgICAeDYCxAIgCkKAgICAgICAgIB/NwK0AiAKQoCAgIDAADcCrAIgCiAENgKoAiAKIAc2AqQCIAogBjYCoAIgCiAFNgKcAiAKIAE2ApgCIAogCzYClAIgCiARNgKQAiAKIA82AowCIAogDjYCiAIgCkEANgKAAiAKQQA2AvgBIApBADYC8AEgCkEANgLoASAKQQA2AuABIApBADYC2AEgCkEANgLQASAKQYgDakEAOgAAQQIhCSAKQe8CaiAKQQ5qLQAAOgAAIApBADYC+AIgCiAQNgL8AiAKQgA3AvACIApCADcCgAMgCiAKLwEMOwDtAiACKAIAIQQgAigCBCEGIAIoAgghAQJ/IAxBBkcEQCAKIAwgCkHQAWoQ1QMgCigCBCEFIAooAgAMAQsgCkGUA2ogCkHUAWpBuAH8CgAAQQAhCUEACyEIQYCAgIB4IQcgBEGAgICAeEcEQCABQQBIDQICQCABRQRAQQEhBwwBCyABEHEiB0UNBAsgAQRAIAcgBiAB/AoAAAsgB60gAa1CIIaEIRggASEHCyAKQRhqIgIgCkGUA2pBuAH8CgAAQewBEHEiAUUNAiABIAk2AgAgAUEEaiACQbgB/AoAACABIAw6AOgBIAEgBTYC5AEgASAINgLgASABQYCAgIB4NgLUASABIBg3AswBIAEgBzYCyAEgAUEANgLEASABQoCAgIAQNwK8ASAAQZDwwAA2AgwgAEEBNgIIIABB+O/AADYCBCAAIAE2AgAgEkUgA0GECElyDQMgAxCbBwwDC0GgnsYAQTcgCkHPBGpBtJPBAEHYnsYAEOAGAAtB2JrIABD/BwsACyAEQYCAgIB4ckGAgICAeEYNAQJAIAZBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIARqTwRAIABBACABIARBJ2pLGw0BIAYQogIMAwsMAwsMAwsgCEUgCUGECElyRQRAIAkQmwcLIAZFIAdBhAhJckUEQCAHEJsHCyAERSAFQYQISXJFBEAgBRCbBwsgEkUgA0GECElyRQRAIAMQmwcLIAIoAgAiAEGAgICAeHJBgICAgHhHBEAgAigCBCICQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyAAakkNAiADQQAgBCAAQSdqSxsNAyACEKICCyANIAEoAgAiAEGAgICAeEdxRSAARXINACABKAIEIgFBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIABqSQ0BIAJBACADIABBJ2pLGw0CIAEQogILIApB0ARqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvLDQMPfwR+AXsjAEEgayIKJAACQAJAAkAgACgCDCILQQFqIgMEQAJAIAAoAgQiCCAIQQFqIglBA3YiAkEHbCIOIAhBCEkbIgZBAXYgA0kEQAJAAkACQAJAAn8gBkEBaiICIAMgAiADSxsiA0EPTwRAIANB/////wFLDQtBfyADQQN0QQduQQFrZ3ZBAWoMAQtBBCADQQhxQQhqIANBBEkbCyIDrUIYfiIRQiCIpw0AIBGnIgIgA0EIaiIGaiIFIAJJIAVB+P///wdLcg0AIAUQcSIFRQ0BIAIgBWohBCAGBEAgBEH/ASAG/AsACyADQQFrIgkgA0EDdkEHbCAJQQhJGyEMIAAoAgAhBSALDQJBACELDAMLIApBADYCGCAKQQE2AgwgCkHEtcQANgIIIApCBDcCECAKQQhqQZi1xAAQjQgLAAsgBEEIaiENIAVBGGshDiAFKQMAQn+FQoCBgoSIkKDAgH+DIREgASkDCCETIAEpAwAhFEEAIQMgCyEBIAUhBgNAIBFQBEADQCADQQhqIQMgBkEIaiIGKQMAQoCBgoSIkKDAgH+DIhFCgIGChIiQoMCAf1ENAAsgEUKAgYKEiJCgwIB/hSERCyAEIAkgFCATIA4gEXqnQQN2IANqIg9BaGxqEPgDpyIQcSICaikAAEKAgYKEiJCgwIB/gyISUARAQQghBwNAIAIgB2ohAiAHQQhqIQcgBCACIAlxIgJqKQAAQoCBgoSIkKDAgH+DIhJQDQALCyARQgF9IBGDIREgBCASeqdBA3YgAmogCXEiAmosAABBAE4EQCAEKQMAQoCBgoSIkKDAgH+DeqdBA3YhAgsgAiAEaiAQQRl2Igc6AAAgDSACQQhrIAlxaiAHOgAAIAQgAkF/c0EYbGoiAkEQaiAFIA9Bf3NBGGxqIgdBEGopAAA3AAAgAiAH/QAAAP0LAAAgAUEBayIBDQALCyAAIAk2AgQgACAENgIAIAAgDCALazYCCCAIRQ0BIAggCEEYbEEfakF4cSIBakEJaiIARQ0BIAUgAWsiAUEEaygCACIDQXhxIgJBBEEIIANBA3EiAxsgAGpJDQMgA0EAIAIgAEEnaksbDQQgARCiAgwBCyAAIAkEfyAAKAIAIQACQAJAIAIgCUEHcUEAR2oiBUECSQRAIAUhBgwBCyAFQQFxIQYgBUH+////A3EiBEEDdCEHIAQhAiAAIQMDQCADIAP9AAMAIhX9TUEH/c0B/QwBAQEBAQEBAQEBAQEBAQEB/U4gFf0Mf39/f39/f39/f39/f39/f/1Q/c4B/QsDACADQRBqIQMgAkECayICDQALIAQgBUYNAQsgACAHaiEDA0AgAyADKQMAIhFCf4VCB4hCgYKEiJCgwIABgyARQv/+/fv379+//wCEfDcDACADQQhqIQMgBkEBayIGDQALCwJAIAlBCE8EQCAAIAlqIAApAAA3AAAMAQsgCUUNACAAQQhqIAAgCfwKAAALIABBCGohBSAAQRhrIQ8gASkDCCESIAEpAwAhE0EBIQJBACEDA0AgAyEGIAIhAwJAIAAgBmoiDC0AAEGAAUcNACAPIAZBaGxqIRAgACAGQX9zQRhsaiECA0AgCCATIBIgEBD4A6ciDXEiBCEBIAAgBGopAABCgIGChIiQoMCAf4MiEVAEQEEIIQcDQCABIAdqIQEgB0EIaiEHIAAgASAIcSIBaikAAEKAgYKEiJCgwIB/gyIRUA0ACwsgACAReqdBA3YgAWogCHEiAWosAABBAE4EQCAAKQMAQoCBgoSIkKDAgH+DeqdBA3YhAQsgASAEayAGIARrcyAIcUEITwRAIAAgAWoiBC0AACAEIA1BGXYiBDoAACAFIAFBCGsgCHFqIAQ6AAAgACABQX9zQRhsaiEBQf8BRgRAIAxB/wE6AAAgBSAIIAZBCGtxakH/AToAACABQRBqIAJBEGopAAA3AAAgASAC/QAAAP0LAAAMAwsgAikAACERIAIgASkAADcAACABIBE3AAAgASkACCERIAEgAikACDcACCACIBE3AAggAigAECEEIAIgASgAEDYAECABKAAUIQcgASACKAAUNgAUIAIgBzYAFCABIAQ2ABAMAQsLIAwgDUEZdiIBOgAAIAUgCCAGQQhrcWogAToAAAsgAyADIAlJIgFqIQIgAQ0ACyAIIA4gCEEISRsFQQALIAtrNgIICyAKQSBqJAAPCwwCC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgCkEANgIYIApBATYCDCAKQcS1xAA2AgggCkIENwIQIApBCGpBmLXEABCNCAALgg0CCX8HfSADQQhPBEAgACAAIANBA3YiA0EEdCIGaiAAIANBHGwiB2ogAyAEEMEBIQAgASABIAZqIAEgB2ogAyAEEMEBIQEgAiACIAZqIAIgB2ogAyAEEMEBIQILQwAAgD8hDgJ/AkAgACgCACIDIAQoAgBBBGooAgAiBEEIaigCACIHSQRAIAEoAgAhBiAEQQRqKAIAIgkgA0EkbGoiCBCKBCEQIAgvARQiBEH//wFxIgxFBEAgBEEQdAwDCyAEQf8HcSEDIARBgIACcSEFIARBgPgBcSIKQYD4AUYEQCAFQRB0IQUgBUGAgID8B3IgA0UNAxogBSADQQ10ckGAgID+B3IMAwsgBUEQdCEFIApFDQEgCkENdEGAgID8AHEgA0ENdHJBgICAwANqIAVyDAILIAMgB0HUwMcAEIwHAAsgBUGAgIDYA3IgA2dBEGsiBUEXdGsgAyAFQf//A3FBCGp0Qf///wNxcgu+Ig9DAACAP14EQCAPEMYFQ1T4LUCUQwAAgD+SkSEOC0MAAIA/IRICfwJAIAYgB0kEQCAJIAZBJGxqIgoQigQhDyAKLwEUIgZB//8BcSINRQRAIAZBEHQMAwsgBkH/B3EhAyAGQYCAAnEhBSAGQYD4AXEiC0GA+AFGBEAgBUEQdCEFIAVBgICA/AdyIANFDQMaIAUgA0ENdHJBgICA/gdyDAMLIAVBEHQhBSALRQ0BIAtBDXRBgICA/ABxIANBDXRyQYCAgMADaiAFcgwCCyAGIAdB1MDHABCMBwALIAVBgICA2ANyIANnQRBrIgVBF3RrIAMgBUH//wNxQQhqdEH///8DcXILviIRQwAAgD9eBEAgERDGBUNU+C1AlEMAAIA/kpEhEgsgAigCACEFIAgQigQhEUMAAIA/IRMCfyAEQRB0IAxFDQAaIARB/wdxIQMgBEGAgAJxIQggBEGA+AFxIgRBgPgBRgRAIAhBEHQhBCAEQYCAgPwHciADRQ0BGiAEIANBDXRyQYCAgP4HcgwBCyAIQRB0IQggBEENdEGAgID8AHEgA0ENdHJBgICAwANqIAhyIAQNABogCEGAgIDYA3IgA2dBEGsiBEEXdGsgAyAEQf//A3FBCGp0Qf///wNxcgu+IhRDAACAP14EQCAUEMYFQ1T4LUCUQwAAgD+SkSETCwJ/AkAgBSAHSQRAIBAgEJIgDpQiDiAPIA+SIBKUYEUhCCAOIA5bIQsgCSAFQSRsaiIHEIoEIRAgBy8BFCIDQf//AXEiDEUEQCADQRB0DAMLIANB/wdxIQQgA0GAgAJxIQUgA0GA+AFxIglBgPgBRgRAIAVBEHQhBSAFQYCAgPwHciAERQ0DGiAFIARBDXRyQYCAgP4HcgwDCyAFQRB0IQUgCUUNASAJQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogBXIMAgsgBSAHQdTAxwAQjAcACyAFQYCAgNgDciAEZ0EQayIFQRd0ayAEIAVB//8DcUEIanRB////A3FyC0MAAIA/IQ6+Ig9DAACAP14EQCAPEMYFQ1T4LUCUQwAAgD+SkSEOCyAIIAtxIgUgESARkiATlCIPIA9bIA8gECAQkiAOlGBFcUYEfyAKEIoEIRBDAACAPyEPAn8gBkEQdCANRQ0AGiAGQf8HcSEAIAZBgIACcSEEIAZBgPgBcSIGQYD4AUYEQCAEQRB0IQQgBEGAgID8B3IgAEUNARogBCAAQQ10ckGAgID+B3IMAQsgBEEQdCEEIAZBDXRBgICA/ABxIABBDXRyQYCAgMADaiAEciAGDQAaIARBgICA2ANyIABnQRBrIgRBF3RrIAAgBEH//wNxQQhqdEH///8DcXILviIOQwAAgD9eBEAgDhDGBUNU+C1AlEMAAIA/kpEhDwtDAACAPyEOIAIgASAFIBAgEJIgD5QiECAQWyAQIAcQigQiEiASkgJ/IANBEHQgDEUNABogA0H/B3EhACADQYCAAnEhBCADQYD4AXEiA0GA+AFGBEAgBEEQdCEDIANBgICA/AdyIABFDQEaIAMgAEENdHJBgICA/gdyDAELIARBEHQhBCADQQ10QYCAgPwAcSAAQQ10ckGAgIDAA2ogBHIgAw0AGiAEQYCAgNgDciAAZ0EQayIDQRd0ayAAIANB//8DcUEIanRB////A3FyC74iEUMAAIA/XgR9IBEQxgVDVPgtQJRDAACAP5KRBSAOC5RgRXFzGwUgAAsLww0DBHsIfwF+AkACQAJAAkBBfyAELQC/AiILQQ9xdCIJQf8BcUH/AUcEQEH/ASAJQX9zIg9B/wFxbiEMQQEgC3RBlgJxRSALQQhLcg0BIAQoAtABIQogBCgCzAEhDSAEKALUASEQQQggC25BAXStIAGtfiIRQiCIUCARpyADSXENAiAAIAFqIQ4gA0F+cSEEAkAgC0EIRwRAIARFDQZBCCALayEJIA1BgYCAgHhGBEBBACEKQQAgBGshAUF/IQQDQCAEQQBIBEAgACAORg0EIAAtAAAhCiAJIQQgAEEBaiEACyACQQFqQf8BOgAAIAIgCiAEdiAPcSAMbDoAACAEIAtrIQQgAkECaiECIAFBAmoiAQ0ACwwHCyAQBEBBACADQX5xayEBQQAhA0F/IQQDQCAEQQBIBEAgACAORg0EIAAtAAAhAyAJIQQgAEEBaiEACyACIANB/wFxIAR2IA9xIg0gDGw6AAAgAkEBakF/QQAgDSAKLQAARxs6AAAgBCALayEEIAJBAmohAiABQQJqIgENAAsMBwsgAUUNAUEAQQBBkJnFABCMBwALIAFFDQUgDUGBgICAeEYEQCADQQF2IgMgAUEBayIBIAEgA0sbIgFBEEkgACACIAFBAXRqQQJqSSAAIAFqQQFqIAJLcXJFBEAgACABQQFqIgEgAUEPcSIBQRAgARtrIglqIAQgCUEBdCIDayEEIAIgA2ogDP0PIQYDQCACQR9qQf8BOgAAIAJBHWpB/wE6AAAgAkEbakH/AToAACACQRlqQf8BOgAAIAJBF2pB/wE6AAAgAkEVakH/AToAACACQRNqQf8BOgAAIAJBEWpB/wE6AAAgAkEPakH/AToAACACQQ1qQf8BOgAAIAJBC2pB/wE6AAAgAkEJakH/AToAACACQQdqQf8BOgAAIAJBBWpB/wE6AAAgAkEDakH/AToAACACQQFqQf8BOgAAIAJBHmogAP0AAAAiBf0WDyAG/RYPbDoAACACQRxqIAX9Fg4gBv0WDmw6AAAgAkEaaiAF/RYNIAb9Fg1sOgAAIAJBGGogBf0WDCAG/RYMbDoAACACQRZqIAX9FgsgBv0WC2w6AAAgAkEUaiAF/RYKIAb9FgpsOgAAIAJBEmogBf0WCSAG/RYJbDoAACACQRBqIAX9FgggBv0WCGw6AAAgAkEOaiAF/RYHIAb9FgdsOgAAIAJBDGogBf0WBiAG/RYGbDoAACACQQpqIAX9FgUgBv0WBWw6AAAgAkEIaiAF/RYEIAb9FgRsOgAAIAJBBmogBf0WAyAG/RYDbDoAACACQQRqIAX9FgIgBv0WAmw6AAAgAkECaiAF/RYBIAb9FgFsOgAAIAIgBf0WACAG/RYAbDoAACAAQRBqIQAgAkEgaiECIAlBEGsiCQ0ACyECIQALA0AgBEUNByACQQFqQf8BOgAAIAIgAC0AACAMbDoAACAEQQJrIQQgAkECaiECIA4gAEEBaiIARw0ACwwGCyAQBEAgA0EBdiIDIAFBAWsiASABIANLGyIBQQ9NDQUgAiAAIAFqQQFqSSAAIAIgAUEBdGpBAmoiA0lxIAIgCkEBakkgAyAKS3FyDQUgACABQQFqIgEgAUEPcSIBQRAgARtrIglqIAQgCUEBdCIDayEEIAIgA2ohAyAK/QcAACEHIAz9DyEGA0AgAiAA/QAAACIF/RYAIAb9FgBs/Q8gBf0WASAG/RYBbP0XASAF/RYCIAb9FgJs/RcCIAX9FgMgBv0WA2z9FwMgBf0WBCAG/RYEbP0XBCAF/RYFIAb9FgVs/RcFIAX9FgYgBv0WBmz9FwYgBf0WByAG/RYHbP0XByAF/RYIIAb9Fghs/RcIIAX9FgkgBv0WCWz9FwkgBf0WCiAG/RYKbP0XCiAF/RYLIAb9Fgts/RcLIAX9FgwgBv0WDGz9FwwgBf0WDSAG/RYNbP0XDSAF/RYOIAb9Fg5s/RcOIAX9Fg8gBv0WD2z9Fw8iCCAFIAf9JCIF/Q0IGAkZChoLGwwcDR0OHg8f/QsAECACIAggBf0NABABEQISAxMEFAUVBhYHF/0LAAAgAEEQaiEAIAJBIGohAiAJQRBrIgkNAAshACADIQIMBQsgBEUNBUEAQQBBkJnFABCMBwALQfyWxQBBIkGgl8UAEKsHAAtBgJnFABCBCAALQbCXxQBBNEHkl8UAEOsHAAtBhJbFAEHlAEHslsUAEOsHAAsDQCAERQ0BIAIgAC0AACIBIAxsOgAAIAJBAWpBf0EAIAEgCi0AAEcbOgAAIARBAmshBCACQQJqIQIgAEEBaiIAIA5HDQALCwu+DAIGfwR+IwBBwAFrIgQkAAJAAkACQCAAKQMAQgJRDQAgACgCqAEhASAAQQA2AqgBAkACQAJAAkAgAUEBaw4CAQIACyAEQQhqIQICQAJAQSUQcSIBRQ0AIAFBHWpBnZ3HACkAADcAACABQRBqQZCdxwD9AAAA/QsAACABQYCdxwD9AAAA/QsAAEEMEHEiA0UNACADQSU2AgggAyABNgIEIANBJTYCAEEMEHEiAUUNACABQSg6AAggAUG4nccANgIEIAEgAzYCACACQQA2AhAgAiABrUIghkIDhDcDAAwBCwALDAILIARBGGogAEHAAWopAwA3AwAgBCAA/QADsAH9CwMIDAELIAAoAqwBIgFBQGshAiABKAIkIQMgASgCICEFAkAgASkDGCIHQgJSBEAgASkDOCEIIARBMGogAUEQaikDADcDACAEQegAaiACQQhq/QADAP0LAwAgBEGoAWogAUGIAWr9AAMA/QsDACAEQZgBaiABQfgAav0AAwD9CwMAIARBuAFqIAFBmAFqKQMANwMAIAQgAf0AAwD9CwMgIAQgAf0AAyj9CwNIIAQgAikDADcDYCAEIAH9AANY/QsDeCAEIAH9AANo/QsDiAEgBEEYaiAEQdAAaikDADcDACAEIAM2AkQgBCAFNgJAIAQgBzcDOCAEIAg3A1ggBCAE/QADQP0LAwggBCgCJCEDIAQoAiAhBSAEQfgAahCEBQwBCyAEQRhqIAJBEGopAwA3AwAgBCAC/QADAP0LAwgLIAMEQCAFQQRrKAIAIgJBeHEiBkEEQQggAkEDcSICGyADakkNAyACQQAgBiADQSdqSxsNBCAFEKICCyABQQRrKAIAIgNBeHFBvAFBwAEgA0EDcSICG0kNAiACQQAgA0HgAU8bDQMgARCiAgsCQCAEKAIYIgEEQCAEKQMQIghQDQEgASkDCCEHIAEoAgQiA60hCQNAAkAgByADIAcgCSAHIAlUG6ciAmsiBUKAwAAgCCAIQoDAAFobpyIGIAUgBkkbrSIKfCEHIAIgA0YNACAIIAp9IghCAFINAQsLIAEgBzcDCAwBCyAELQAIQQNHDQAgBCgCDCIBKAIAIQMgAUEEaigCACICKAIAIgUEQCADIAURAwALIAIoAgQiAgRAIANBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIAJqSQ0DIAVBACAGIAJBJ2pLGw0EIAMQogILIAFBBGsoAgAiA0F4cSICQRBBFCADQQNxIgMbSQ0CIANBACACQTRPGw0DIAEQogILIAAoAiwiAQRAIAAoAigiA0EEaygCACICQXhxIgVBBEEIIAJBA3EiAhsgAWpJDQIgAkEAIAUgAUEnaksbDQMgAxCiAgsgACgCNCIBBEAgACgCMCIDQQRrKAIAIgJBeHEiBUEEQQggAkEDcSICGyABakkNAiACQQAgBSABQSdqSxsNAyADEKICCwJAIAAoAowBIgFFDQAgASABKAIAIgFBAWs2AgAgAUEBRw0AIAAoAowBEN0FCwJAIAAoApABIgFFDQAgASABKAIAIgFBAWs2AgAgAUEBRw0AIAAoApABEN0FCyAAKAI8IgEEQCAAKAI4IgNBBGsoAgAiAkF4cSIFQQRBCCACQQNxIgIbIAFqSQ0CIAJBACAFIAFBJ2pLGw0DIAMQogILIAAoAngiAUUNACAAKAJ8IgNBBGsoAgAiAkF4cSIFIAFBBXQiAUEEQQggAkEDcSICG3JJDQEgAkEAIAUgAUEnaksbDQIgAxCiAgsgACgCqAFBAk8EQAJAIAAoAqwBIgApAxhCAlEEQCAAKAIkIgFFDQEgACgCICIDQQRrKAIAIgJBeHEiBUEEQQggAkEDcSICGyABakkNAyACQQAgBSABQSdqSxsNBCADEKICDAELIAAoAgQiAQRAIAAoAgAiA0EEaygCACICQXhxIgVBBEEIIAJBA3EiAhsgAWpJDQMgAkEAIAUgAUEnaksbDQQgAxCiAgsgAEHYAGoQhAULIABBBGsoAgAiAUF4cUG8AUHAASABQQNxIgMbSQ0BIANBACABQeABTxsNAiAAEKICCyAEQcABaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALuQ4DBX8CfQF+IwBBIGsiAiQAAkAgASgCACIEQYy1xABBBCABKAIEIgMoAgwiBREAAARAQQEhAwwBCwJAAkACQCABKAIIIgZBgICABHFFBEBBASEDIARBu7PFAEEBIAURAAANBCAGQYCAgAFxIQUgACoCACEHIAZBgICAgAFxDQEgAEEEaiEEIAeLIghDyhsOWmAgB0MAAAAAXCAIQxe30ThdcXJFBEAgASAHIAVBAEdBARD3AkUNAwwFCyABIAcgBUEARxDPAkUNAgwECyAEQduBwgBBAiAFEQAABEBBASEDDAQLIAJBAToADyACIAM2AgQgAiAENgIAIAJB4IHCADYCFCACIAEpAggiCTcCGCAJpyIEQYCAgAFxIQMgAiACQQ9qNgIIIAIgAjYCECAAKgIAIQcCQAJAIARBgICAgAFxRQRAIAeLIghDyhsOWmAgB0MAAAAAXCAIQxe30ThdcXINASACQRBqIAcgA0EAR0EBEPcCDQUMAgsgAkEQaiAHIANBAEcgCUIwiKcQvQJFDQEMBAsgAkEQaiAHIANBAEcQzwINAwsgAigCEEHZgcIAQQIgAigCFCgCDBEAAARAQQEhAwwECyAAQQRqIQQMAQsgASAHIAVBAEcgAS8BDhC9Ag0CIABBBGohBAsCQAJAAkACQAJAIAEoAggiA0GAgIAEcUUEQCABKAIAQeeQxgBBAiABKAIEKAIMEQAABEBBASEDDAgLIANBgICAAXEhBSAEKgIAIQcgA0GAgICAAXENASAAQQhqIQQgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQEEBIQMgASAHIAVBAEdBARD3AkUNBQwICyABIAcgBUEARxDPAkUNBEEBIQMMBwsgASkCACEJIAJBAToADyACIAk3AgAgAkHggcIANgIUIAIgASkCCCIJNwIYIAmnIgVBgICAAXEhAyACIAJBD2o2AgggAiACNgIQIAQqAgAhByAFQYCAgIABcUUNASACQRBqIAcgA0EARyAJQjCIpxC9AkUNAgwECyABIAcgBUEARyABLwEOEL0CBEBBASEDDAYLIABBCGohBAwCCyAHiyIIQ8obDlpgIAdDAAAAAFwgCEMXt9E4XXFyRQRAIAJBEGogByADQQBHQQEQ9wINAwwBCyACQRBqIAcgA0EARxDPAg0CCyACKAIQQdmBwgBBAiACKAIUKAIMEQAARQRAIABBCGohBAwBC0EBIQMMAwsCQAJAAkACQAJAIAEoAggiA0GAgIAEcUUEQCABKAIAQeeQxgBBAiABKAIEKAIMEQAABEBBASEDDAkLIANBgICAAXEhBSAEKgIAIQcgA0GAgICAAXENASAAQQxqIQQgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQEEBIQMgASAHIAVBAEdBARD3AkUNBQwJCyABIAcgBUEARxDPAkUNBEEBIQMMCAsgASkCACEJIAJBAToADyACIAk3AgAgAkHggcIANgIUIAIgASkCCCIJNwIYIAmnIgVBgICAAXEhAyACIAJBD2o2AgggAiACNgIQIAQqAgAhByAFQYCAgIABcUUNASACQRBqIAcgA0EARyAJQjCIpxC9AkUNAgwECyABIAcgBUEARyABLwEOEL0CBEBBASEDDAcLIABBDGohBAwCCyAHiyIIQ8obDlpgIAdDAAAAAFwgCEMXt9E4XXFyRQRAIAJBEGogByADQQBHQQEQ9wINAwwBCyACQRBqIAcgA0EARxDPAg0CCyACKAIQQdmBwgBBAiACKAIUKAIMEQAARQRAIABBDGohBAwBC0EBIQMMBAsCQAJAAkACQAJAIAEoAggiA0GAgIAEcUUEQCABKAIAQeeQxgBBAiABKAIEKAIMEQAABEBBASEDDAoLIANBgICAAXEhACAEKgIAIQcgA0GAgICAAXENASAHiyIIQ8obDlpgIAdDAAAAAFwgCEMXt9E4XXFyRQRAQQEhAyABIAcgAEEAR0EBEPcCRQ0FDAoLQQEhAyABIAcgAEEARxDPAkUNBAwJCyABKQIAIQkgAkEBOgAPIAIgCTcCACACQeCBwgA2AhQgAiABKQIIIgk3AhggCaciA0GAgIABcSEAIAIgAkEPajYCCCACIAI2AhAgBCoCACEHIANBgICAgAFxRQ0BIAJBEGogByAAQQBHIAlCMIinEL0CRQ0CDAQLQQEhAyABIAcgAEEARyABLwEOEL0CDQcMAgsgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQCACQRBqIAcgAEEAR0EBEPcCDQMMAQsgAkEQaiAHIABBAEcQzwINAgsgAigCEEHZgcIAQQIgAigCFCgCDBEAAEUNAEEBIQMMBQsgASgCAEHejsgAQQEgASgCBCgCDBEAACEDDAQLQQEhAwwDC0EBIQMMAgtBASEDDAELQQEhAwsgAkEgaiQAIAML6A4CC38BfiMAQSBrIgMkAEGAgICAeCEHAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiBEGAgICAeHMgBEEAThtBFGsOAgECAAsgASADQRRqQaTjwAAQlQghASAAQYCAgIB4NgIAIAAgATYCBAwKCyABKAIMIgVFDQECQCABKAIIIgEoAgBBlICAgHhGBEACQCABKAIMIgIEQCADQQRqIAEoAggQqAMgAygCBCIEQYCAgIB4Rw0BIAMoAgghAQwMC0EAIANBFGpBhOLAABDbBiEBDAsLIAMoAgghCCACQQFGDQEgA0EBNgIEIAJBAWtB/////wBxQQFqIANBBGpB6JXBABDbBiEBIARFDQogCCAEQQEQogcMCgsgASADQRRqQYTiwAAQlQghAQwJCwJAAn8gBUEBRwRAIAMoAgwhBiADQQRqIgcgAUEQahDQAyADKAIIIgEgAygCBCICQYCAgIB4Rg0BGiAFQQJGDQIgA0ECNgIEIAVB/v///wBqQf////8AcUECaiAHQeiVwQAQ2wYhBSAAQYCAgIB4NgIAIAAgBTYCBCAEBEAgCCAEQQEQogcLIAJFDQwgASACQQJ0QQQQogcMDAtBAUHsgMEAQYD9wAAQ2wYLIQEgBEUNCSAIQQRrKAIAIgVBeHEiAkEEQQggBUEDcSIFGyAEakkNDCAFQQAgAiAEQSdqSxsNCyAIEKICDAkLIAAgAygCDDYCFCAAIAE2AhAgACACNgIMIAAgBjYCCCAAIAg2AgQgACAENgIADAkLIAEoAgghBCABKAIEIQEgA0IANwIMIAMgATYCBCADIAEgBEEFdGoiCTYCCCAERQ0CQYCAgIB4IQYDQCADIAFBIGoiBDYCBCADIAMoAhBBAWo2AhAgAyABQRBqIgo2AgwCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQRUgASgCACICQYCAgIB4cyACQQBOG0EBaw4PAAsLAQsLCwsLCwsCAwQFCwsgAS0ABCIBRQ0HQQFBAiABQQFGGyEBDAsLIAEpAwgiDVANBkEBQQIgDUIBURshAQwKCyABKAIIIQIgASgCDEEFaw4EBAsLBgsLIAEoAgQhAgJAIAEoAghBBWsOBAMLCwALCyACKQAAQuPekaum7Nu36wBRDQkMCgsgASgCCCECAkACQCABKAIMQQVrDgQACwsBCwsgAi0AAEHmAEcNCiACLQABQekARw0KIAItAAJB7ABHDQogAi0AA0HlAEcNCiACLQAEQfMARw0KDAQLIAItAABB4wBHDQkgAi0AAUHvAEcNCSACLQACQeQARw0JIAItAANB5QBHDQkgAi0ABEHiAEcNCSACLQAFQe8ARw0JIAItAAZB7wBHDQkgAi0AB0HrAEYNCAwJCyABKAIEIQICQAJAIAEoAghBBWsOBAAKCgEKCyACLQAAQeYARw0JIAItAAFB6QBHDQkgAi0AAkHsAEcNCSACLQADQeUARw0JIAItAARB8wBHDQkMAwsgAi0AAEHjAEcNCCACLQABQe8ARw0IIAItAAJB5ABHDQggAi0AA0HlAEcNCCACLQAEQeIARw0IIAItAAVB7wBHDQggAi0ABkHvAEcNCCACLQAHQesARg0HDAgLIAJBkP3AAEEFENsHDQcMAQsgAkGQ/cAAQQUQ2wcNBgsgBkGAgICAeEYNAUGQ/cAAQQUQnwchBAwMCyACKQAAQuPekaum7Nu36wBRDQMMBAsgA0EUaiADQQRqELIFIAMoAhghBCADKAIUIgZBgICAgHhGBEBBgICAgHghBgwLCyADKAIcIQsgAygCCCEJIAQhCCADKAIEDAULIAEgA0EUakH048AAEJUIIQQMCQsgAUECRg0BCyAHQYCAgIB4Rg0BQZj+wABBCBCfByEEIAdFDQkMCAsgA0EANgIMIAQMAQsgA0EANgIMIANBFGogChDQAyADKAIYIQUgAygCFCIHQYCAgIB4RgRAIAUhBAwICyADKAIcIQwgBAsiASAJRw0ACwwBC0EAQeyAwQBBgP3AABDbBiEBDAYLIAZBgICAgHhGDQAgB0GAgICAeEYEQEGY/sAAQQgQnAchBCAGRQ0FIAggBkEBEKIHDAULIAAgDDYCFCAAIAU2AhAgACAHNgIMIAAgCzYCCCAAIAg2AgQgACAGNgIADAYLQYCAgIB4IQZBkP3AAEEFEJwHIQQLIAdBgICAgHhyQYCAgIB4Rg0BCyAFQQRrKAIAIgFBeHEiAiAHQQJ0IgdBBEEIIAFBA3EiARtqSQ0FIAFBACACIAdBJ2pLGw0EIAUQogILIAZBgICAgHhyQYCAgIB4Rg0AIAhBBGsoAgAiAUF4cSIFQQRBCCABQQNxIgEbIAZqSQ0EIAFBACAFIAZBJ2pLGw0DIAgQogILIAAgBDYCBCAAQYCAgIB4NgIADAELIAAgATYCBCAAQYCAgIB4NgIACyADQSBqJAAPC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAvoDgILfwF+IwBBIGsiAyQAQYCAgIB4IQcCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQRUgASgCACIEQYCAgIB4cyAEQQBOG0EUaw4CAQIACyABIANBFGpB5OLAABCVCCEBIABBgICAgHg2AgAgACABNgIEDAoLIAEoAgwiBUUNAQJAIAEoAggiASgCAEGUgICAeEYEQAJAIAEoAgwiAgRAIANBBGogASgCCBCoAyADKAIEIgRBgICAgHhHDQEgAygCCCEBDAwLQQAgA0EUakGE4sAAENsGIQEMCwsgAygCCCEIIAJBAUYNASADQQE2AgQgAkEBa0H/////AHFBAWogA0EEakHolcEAENsGIQEgBEUNCiAIIARBARCiBwwKCyABIANBFGpBhOLAABCVCCEBDAkLAkACfyAFQQFHBEAgAygCDCEGIANBBGoiByABQRBqENADIAMoAggiASADKAIEIgJBgICAgHhGDQEaIAVBAkYNAiADQQI2AgQgBUH+////AGpB/////wBxQQJqIAdB6JXBABDbBiEFIABBgICAgHg2AgAgACAFNgIEIAQEQCAIIARBARCiBwsgAkUNDCABIAJBAnRBBBCiBwwMC0EBQbz+wABBgP3AABDbBgshASAERQ0JIAhBBGsoAgAiBUF4cSICQQRBCCAFQQNxIgUbIARqSQ0MIAVBACACIARBJ2pLGw0LIAgQogIMCQsgACADKAIMNgIUIAAgATYCECAAIAI2AgwgACAGNgIIIAAgCDYCBCAAIAQ2AgAMCQsgASgCCCEEIAEoAgQhASADQgA3AgwgAyABNgIEIAMgASAEQQV0aiIJNgIIIARFDQJBgICAgHghBgNAIAMgAUEgaiIENgIEIAMgAygCEEEBajYCECADIAFBEGoiCjYCDAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgJBgICAgHhzIAJBAE4bQQFrDg8ACwsBCwsLCwsLCwIDBAULCyABLQAEIgFFDQdBAUECIAFBAUYbIQEMCwsgASkDCCINUA0GQQFBAiANQgFRGyEBDAoLIAEoAgghAiABKAIMQQVrDgQECwsGCwsgASgCBCECAkAgASgCCEEFaw4EAwsLAAsLIAIpAABC496Rq6bs27frAFENCQwKCyABKAIIIQICQAJAIAEoAgxBBWsOBAALCwELCyACLQAAQeYARw0KIAItAAFB6QBHDQogAi0AAkHsAEcNCiACLQADQeUARw0KIAItAARB8wBHDQoMBAsgAi0AAEHjAEcNCSACLQABQe8ARw0JIAItAAJB5ABHDQkgAi0AA0HlAEcNCSACLQAEQeIARw0JIAItAAVB7wBHDQkgAi0ABkHvAEcNCSACLQAHQesARg0IDAkLIAEoAgQhAgJAAkAgASgCCEEFaw4EAAoKAQoLIAItAABB5gBHDQkgAi0AAUHpAEcNCSACLQACQewARw0JIAItAANB5QBHDQkgAi0ABEHzAEcNCQwDCyACLQAAQeMARw0IIAItAAFB7wBHDQggAi0AAkHkAEcNCCACLQADQeUARw0IIAItAARB4gBHDQggAi0ABUHvAEcNCCACLQAGQe8ARw0IIAItAAdB6wBGDQcMCAsgAkGQ/cAAQQUQ2wcNBwwBCyACQZD9wABBBRDbBw0GCyAGQYCAgIB4Rg0BQZD9wABBBRCfByEEDAwLIAIpAABC496Rq6bs27frAFENAwwECyADQRRqIANBBGoQsgUgAygCGCEEIAMoAhQiBkGAgICAeEYEQEGAgICAeCEGDAsLIAMoAhwhCyADKAIIIQkgBCEIIAMoAgQMBQsgASADQRRqQbTkwAAQlQghBAwJCyABQQJGDQELIAdBgICAgHhGDQFBmP7AAEEIEJ8HIQQgB0UNCQwICyADQQA2AgwgBAwBCyADQQA2AgwgA0EUaiAKENADIAMoAhghBSADKAIUIgdBgICAgHhGBEAgBSEEDAgLIAMoAhwhDCAECyIBIAlHDQALDAELQQBBvP7AAEGA/cAAENsGIQEMBgsgBkGAgICAeEYNACAHQYCAgIB4RgRAQZj+wABBCBCcByEEIAZFDQUgCCAGQQEQogcMBQsgACAMNgIUIAAgBTYCECAAIAc2AgwgACALNgIIIAAgCDYCBCAAIAY2AgAMBgtBgICAgHghBkGQ/cAAQQUQnAchBAsgB0GAgICAeHJBgICAgHhGDQELIAVBBGsoAgAiAUF4cSICIAdBAnQiB0EEQQggAUEDcSIBG2pJDQUgAUEAIAIgB0EnaksbDQQgBRCiAgsgBkGAgICAeHJBgICAgHhGDQAgCEEEaygCACIBQXhxIgVBBEEIIAFBA3EiARsgBmpJDQQgAUEAIAUgBkEnaksbDQMgCBCiAgsgACAENgIEIABBgICAgHg2AgAMAQsgACABNgIEIABBgICAgHg2AgALIANBIGokAA8LQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC5kOAgJ9A38CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACRSAAKAJcQQJJckUEQEMAAP5CQwAA/kIgACoCUJUgAC0AWEECRhshBiAAKAIoIAFBD2xqIQkgACgCLCEIQQAhAANAIAEgCE8NECAAIARPDREgACAJaiIHQf8AQwAA/kJDAAD+wiAGIAMqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQFqIARPDQ8gB0EBakH/AEMAAP5CQwAA/sIgBiADQQRqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEECaiAETw0OIAdBAmpB/wBDAAD+QkMAAP7CIAYgA0EIaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBA2ogBE8NDSAHQQNqQf8AQwAA/kJDAAD+wiAGIANBDGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQRqIARPDQwgB0EEakH/AEMAAP5CQwAA/sIgBiADQRBqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEFaiAETw0LIAdBBWpB/wBDAAD+QkMAAP7CIAYgA0EUaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBBmogBE8NCiAHQQZqQf8AQwAA/kJDAAD+wiAGIANBGGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQdqIARPDQkgB0EHakH/AEMAAP5CQwAA/sIgBiADQRxqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEIaiAETw0IIAdBCGpB/wBDAAD+QkMAAP7CIAYgA0EgaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBCWogBE8NByAHQQlqQf8AQwAA/kJDAAD+wiAGIANBJGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQpqIARPDQYgB0EKakH/AEMAAP5CQwAA/sIgBiADQShqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEELaiAETw0FIAdBC2pB/wBDAAD+QkMAAP7CIAYgA0EsaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBDGogBE8NBCAHQQxqQf8AQwAA/kJDAAD+wiAGIANBMGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQ1qIARPDQMgB0ENakH/AEMAAP5CQwAA/sIgBiADQTRqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEOaiAETw0CIAdBDmpB/wBDAAD+QkMAAP7CIAYgA0E4aioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIANBPGohAyAAQQ9qIQAgAUEBaiEBIAJBAWsiAg0ACwsPCyAAQQ5qIQAMDgsgAEENaiEADA0LIABBDGohAAwMCyAAQQtqIQAMCwsgAEEKaiEADAoLIABBCWohAAwJCyAAQQhqIQAMCAsgAEEHaiEADAcLIABBBmohAAwGCyAAQQVqIQAMBQsgAEEEaiEADAQLIABBA2ohAAwDCyAAQQJqIQAMAgsgAEEBaiEADAELIAAgBE8NACABIAhBpMTHABCMBwALIAAgBEGUxMcAEIwHAAvYDQIEfwF+IwBBMGsiAiQAAn8CQAJAAkACQAJAAkACQCAAKAIAQQFrDgUBAgMEBQALIABBBGohAyABKAIEIQQgASgCACEBIAAoAhQEQCACIABBFGo2AgQgAiACQQRqrUKAgICAkAeENwMQIAIgA61CgICAgKAHhDcDCCACQgI3AiQgAkECNgIcIAJBwMHEADYCGCACIAJBCGo2AiAgASAEIAJBGGoQwQMMBwsgAy0AAEEDRgRAIAFBlcHEAEEMIAQoAgwRAAAMBwsgAiADrUKAgICAoAeENwMIIAJCATcCJCACQQE2AhwgAkG4wcQANgIYIAIgAkEIajYCICABIAQgAkEYahDBAwwGCyAAQQRqIQMgACgCFARAIAIgAEEUajYCBCACIAJBBGqtQoCAgICQB4Q3AxAgAiADrUKAgICAoAeENwMIIAEoAgAgASgCBCACQgI3AiQgAkECNgIcIAJB8MHEADYCGCACIAJBCGo2AiAgAkEYahDBAwwGCyACIAOtQoCAgICgB4Q3AwggASgCACABKAIEIAJCATcCJCACQQE2AhwgAkHowcQANgIYIAIgAkEIajYCICACQRhqEMEDDAULIAEoAgQhAyABKAIAIQQCQAJAAkACQAJAAkACQEEDIAAoAgQiAUGAgICAeHMgAUEAThtBAWsOBQECBQMEAAsgBEGQwsQAQTggAygCDBEAAEUNBUEBDAoLIARByMLEAEHBACADKAIMEQAARQ0EQQEMCQsgAiAAQQhqNgIEIAIgAkEEaq1CgICAgLAHhDcDCCACQgE3AiQgAkECNgIcIAJBtMPEADYCGCACIAJBCGo2AiAgBCADIAJBGGoQwQNFDQNBAQwICyAEQejDxABBJSADKAIMEQAARQ0CQQEMBwsgAiAAQQhqNgIAIAIgAEEMajYCBCACQoCAgICwByIGIAKthDcDECACIAYgAkEEaq2ENwMIIAJCAjcCJCACQQI2AhwgAkG8xMQANgIYIAIgAkEIajYCICAEIAMgAkEYahDBA0UNAUEBDAYLIAIgAEEEajYCBCACIAJBBGqtQoCAgIDAB4Q3AwggAkIBNwIkIAJBATYCHCACQeDDxAA2AhggAiACQQhqNgIgQQEgBCADIAJBGGoQwQMNBRoLQQAgACgCEEUNBBogAiAAQRBqNgIEIAIgAkEEaq1CgICAgJAHhDcDCCACQgE3AiQgAkEBNgIcIAJBzMTEADYCGCACIAJBCGo2AiAgBCADIAJBGGoQwQMMBAsgASgCACEDIAEoAgQoAgwhAQJAAkACQEECIAApAwgiBqdBAmsgBkIBWBtBAWsOAgECAAsgA0G4v8QAQRggAREAAAwFCyADQfj4xABBFSABEQAADAQLIANB0L/EAEHPACABEQAADAMLIABBBGohBCABKAIEIQMgASgCACEBAkACQAJAAkACQEEDIAAtABQiBUEEayAFQQNNG0H/AXFBAWsOBAECAwQACyACIABBFWo2AgQgAiACQQRqrUKAgICA0AeENwMQIAIgBK1CgICAgKAHhDcDCCACQgI3AiQgAkEDNgIcIAJB8MXEADYCGCACIAJBCGo2AiAgASADIAJBGGoQwQMMBgsgAiAAQRVqNgIEIAIgAkEEaq1CgICAgNAHhDcDCCACQgE3AiQgAkECNgIcIAJBxMbEADYCGCACIAJBCGo2AiAgASADIAJBGGoQwQMMBQsgAiAAQRVqNgIEIAIgAkEEaq1CgICAgLAHhDcDCCACQgE3AiQgAkECNgIcIAJBoMfEADYCGCACIAJBCGo2AiAgASADIAJBGGoQwQMMBAsgAEEUaiEAAkACQAJAIAVBAmsOAgECAAsgAiAANgIEIAIgAkEEaq1CgICAgOAHhDcDCCACQgE3AiQgAkECNgIcIAJBuMjEADYCGCACIAJBCGo2AiAgASADIAJBGGoQwQMMBQsgAiAANgIEIAIgAkEEaq1CgICAgOAHhDcDCCACQgE3AiQgAkECNgIcIAJB7MfEADYCGCACIAJBCGo2AiAgASADIAJBGGoQwQMMBAsgAUH8x8QAQSggAygCDBEAAAwDCyACIABBGGo2AgAgAC0ABEEDRg0BIAIgBDYCBCACIAKtQoCAgIDAB4Q3AxAgAiACQQRqrUKAgICA4AeENwMIIAJCAjcCJCACQQI2AhwgAkG4ycQANgIYIAIgAkEIajYCICABIAMgAkEYahDBAwwCCyAAQQRqIAEQngQMAQsgAiACrUKAgICAwAeENwMIIAJCATcCJCACQQE2AhwgAkH4yMQANgIYIAIgAkEIajYCICABIAMgAkEYahDBAwsgAkEwaiQAC+kNAQF/IwBBMGsiAiQAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAtAABBAWsOHAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwACyACIABBBGo2AgwgAiACQQxqrUKAgICA0AaENwMQIAEoAgAgASgCBCACQgE3AiQgAkEBNgIcIAJB9PLEADYCGCACIAJBEGo2AiAgAkEYahDBAwwcCyACIABBAWo2AgwgAiACQQxqrUKAgICAoAiENwMQIAEoAgAgASgCBCACQQE2AiwgAkGc88QANgIoIAJBATYCJCACQQE2AhwgAkGU88QANgIYIAIgAkEQajYCICACQRhqEMEDDBsLIAIgAEEBajYCDCACIAJBDGqtQoCAgICgCIQ3AxAgASgCACABKAIEIAJBATYCLCACQZzzxAA2AiggAkEBNgIkIAJBATYCHCACQczzxAA2AhggAiACQRBqNgIgIAJBGGoQwQMMGgsgASgCAEHU88QAQR0gASgCBCgCDBEAAAwZCyACIABBAWo2AgwgAiACQQxqrUKAgICAoAiENwMQIAEoAgAgASgCBCACQQE2AiwgAkGc88QANgIoIAJBATYCJCACQQE2AhwgAkGI9MQANgIYIAIgAkEQajYCICACQRhqEMEDDBgLIAEoAgBBkPTEAEERIAEoAgQoAgwRAAAMFwsgASgCAEGh9MQAQSYgASgCBCgCDBEAAAwWCyABKAIAQcf0xABBGiABKAIEKAIMEQAADBULIAEoAgBB4fTEAEEZIAEoAgQoAgwRAAAMFAsgASgCAEH69MQAQQ8gASgCBCgCDBEAAAwTCyABKAIAQYn1xABBEyABKAIEKAIMEQAADBILIAIgAEEBajYCDCACIAJBDGqtQoCAgICwCIQ3AxAgASgCACABKAIEIAJBATYCLCACQZzzxAA2AiggAkEBNgIkIAJBATYCHCACQbj1xAA2AhggAiACQRBqNgIgIAJBGGoQwQMMEQsgAiAAQQFqNgIMIAIgAkEMaq1CgICAgMAIhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBATYCHCACQeT1xAA2AhggAiACQRBqNgIgIAJBGGoQwQMMEAsgAiAAQQFqNgIMIAIgAkEMaq1CgICAgMAIhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBATYCHCACQYj2xAA2AhggAiACQRBqNgIgIAJBGGoQwQMMDwsgASgCAEGQ9sQAQRQgASgCBCgCDBEAAAwOCyABKAIAQaT2xABBESABKAIEKAIMEQAADA0LIAEoAgBBtfbEAEERIAEoAgQoAgwRAAAMDAsgAiAAQQFqNgIMIAIgAkEMaq1CgICAgNAIhDcDECABKAIAIAEoAgQgAkEBNgIsIAJBnPPEADYCKCACQQE2AiQgAkEBNgIcIAJB3PbEADYCGCACIAJBEGo2AiAgAkEYahDBAwwLCyABKAIAQeT2xABBGCABKAIEKAIMEQAADAoLIAIgAEEBajYCDCACIAJBDGqtQoCAgIDACIQ3AxAgASgCACABKAIEIAJCATcCJCACQQE2AhwgAkGY98QANgIYIAIgAkEQajYCICACQRhqEMEDDAkLIAIgAEEBajYCDCACIAJBDGqtQoCAgIDgCIQ3AxAgASgCACABKAIEIAJCATcCJCACQQE2AhwgAkHE98QANgIYIAIgAkEQajYCICACQRhqEMEDDAgLIAIgAEEBajYCDCACIAJBDGqtQoCAgIDgCIQ3AxAgASgCACABKAIEIAJCATcCJCACQQE2AhwgAkHw98QANgIYIAIgAkEQajYCICACQRhqEMEDDAcLIAIgAEEBajYCDCACIAJBDGqtQoCAgIDgCIQ3AxAgASgCACABKAIEIAJCATcCJCACQQE2AhwgAkGc+MQANgIYIAIgAkEQajYCICACQRhqEMEDDAYLIAEoAgBBpPjEAEEYIAEoAgQoAgwRAAAMBQsgAiAAQQRqNgIMIAIgAkEMaq1CgICAgMAHhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBATYCHCACQdT4xAA2AhggAiACQRBqNgIgIAJBGGoQwQMMBAsgAiAAQQRqNgIMIAIgAkEMaq1CgICAgMAHhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBATYCHCACQfD4xAA2AhggAiACQRBqNgIgIAJBGGoQwQMMAwsgASgCAEH4+MQAQRUgASgCBCgCDBEAAAwCCyABKAIAQY35xABBEiABKAIEKAIMEQAADAELIAEoAgBBn/nEAEEOIAEoAgQoAgwRAAALIAJBMGokAAvZDAILfwV9QwAAgD8hDwJ/AkAgASgCACIIIAJBBGooAgAiBSgCCCIHSQRAIAFBBGsiCygCACEBIAUoAgQiCSAIQRhsaiIDLQATIgQgAy0AEiIGIAMtABEiCiAGIApLGyIGIAQgBksbIgQEfUMAAEDBIAUqAkQgBS0AWEECRiIGGyIOQwAAEEEgBSoCSCAGGyAOk0MAAH5DlSAEQQFrQf8BcbOUkhCJBCIOIA6SBUMAAAAACyERIANBDGovAQAiBEH//wFxRQRAIARBEHQMAwsgBEH/B3EhAyAEQYCAAnEhBiAEQYD4AXEiBEGA+AFGBEAgBkEQdCIEQYCAgPwHciADRQ0DGiAEIANBDXRyQYCAgP4HcgwDCyAGQRB0IQYgBEUNASAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogBnIMAgsgCCAHQdy7xwAQjAcACyADIANnQRBrIgNB//8DcUEIanRB////A3EgBkGAgIDYA3IgA0EXdGtyC74iDkMAAIA/XgRAIA4QxgVDVPgtQJRDAACAP5KRIQ8LQwAAgD8hDgJ/AkAgASAHSQRAIAkgAUEYbGoiAy0AEyIEIAMtABIiByADLQARIgYgBiAHSRsiByAEIAdLGyIEBH1DAABAwSAFKgJEIAUtAFhBAkYiBxsiEEMAABBBIAUqAkggBxsgEJNDAAB+Q5UgBEEBa0H/AXGzlJIQiQQiECAQkgVDAAAAAAshECADQQxqLwEAIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQUgA0GAgAJxIQQgA0GA+AFxIgNBgPgBRgRAIARBEHQiA0GAgID8B3IgBUUNAxogAyAFQQ10ckGAgID+B3IMAwsgBEEQdCEEIANFDQEgA0ENdEGAgID8AHEgBUENdHJBgICAwANqIARyDAILIAEgB0Hcu8cAEIwHAAsgBSAFZ0EQayIFQf//A3FBCGp0Qf///wNxIARBgICA2ANyIAVBF3Rrcgu+IhJDAACAP14EQCASEMYFQ1T4LUCUQwAAgD+SkSEOCyARIA+UIg8gD1wgDyAQIA6UYHJFBEAgAkEEaiEJIAhBGGwhCgNAAkAgCyICQQRqIAE2AgAgACACRg0AQwAAgD8hDwJ/AkAgCSgCACIFKAIIIgcgCEsEQCACQQRrIgsoAgAhASAFKAIEIgwgCmoiAy0AEyIEIAMtABIiBiADLQARIg0gBiANSxsiBiAEIAZLGyIEBH1DAABAwSAFKgJEIAUtAFhBAkYiBhsiDkMAABBBIAUqAkggBhsgDpNDAAB+Q5UgBEEBa0H/AXGzlJIQiQQiDiAOkgVDAAAAAAshESADQQxqLwEAIgRB//8BcUUEQCAEQRB0DAMLIARB/wdxIQMgBEGAgAJxIQYgBEGA+AFxIgRBgPgBRgRAIAZBEHQiBEGAgID8B3IgA0UNAxogBCADQQ10ckGAgID+B3IMAwsgBkEQdCEGIARFDQEgBEENdEGAgID8AHEgA0ENdHJBgICAwANqIAZyDAILIAggB0Hcu8cAEIwHAAsgAyADZ0EQayIDQf//A3FBCGp0Qf///wNxIAZBgICA2ANyIANBF3Rrcgu+Ig5DAACAP14EQCAOEMYFQ1T4LUCUQwAAgD+SkSEPC0MAAIA/IQ4CfwJAIAEgB0kEQCAMIAFBGGxqIgMtABMiBCADLQASIgcgAy0AESIGIAYgB0kbIgcgBCAHSxsiBAR9QwAAQMEgBSoCRCAFLQBYQQJGIgcbIhBDAAAQQSAFKgJIIAcbIBCTQwAAfkOVIARBAWtB/wFxs5SSEIkEIhAgEJIFQwAAAAALIRAgA0EMai8BACIDQf//AXFFBEAgA0EQdAwDCyADQf8HcSEFIANBgIACcSEEIANBgPgBcSIDQYD4AUYEQCAEQRB0IgNBgICA/AdyIAVFDQMaIAMgBUENdHJBgICA/gdyDAMLIARBEHQhBCADRQ0BIANBDXRBgICA/ABxIAVBDXRyQYCAgMADaiAEcgwCCyABIAdB3LvHABCMBwALIAUgBWdBEGsiBUH//wNxQQhqdEH///8DcSAEQYCAgNgDciAFQRd0a3ILviISQwAAgD9eBEAgEhDGBUNU+C1AlEMAAIA/kpEhDgsgESAPlCIPIA9cDQAgDyAQIA6UYEUNAQsLIAIgCDYCAAsLkAwCCX8BfSMAQYABayIIJAACfwJAIAAoAggiBiABSwRAIAAoAgQgAUEYbGoiBi0AEyIFIAYtABIiByAGLQARIgkgByAJSxsiByAFIAdLGyIFBH1DAABAwSAAKgJEIAAtAFhBAkYiBxsiDkMAABBBIAAqAkggBxsgDpNDAAB+Q5UgBUEBa0H/AXGzlJIQiQQiDiAOkgVDAAAAAAshDiAGQQxqLwEAIgVB//8BcUUEQCAFQRB0DAMLIAVB/wdxIQYgBUGAgAJxIQcgBUGA+AFxIgVBgPgBRgRAIAdBEHQiBUGAgID8B3IgBkUNAxogBSAGQQ10ckGAgID+B3IMAwsgB0EQdCEHIAVFDQEgBUENdEGAgID8AHEgBkENdHJBgICAwANqIAdyDAILIAEgBkHcu8cAEIwHAAsgBiAGZ0EQayIGQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAZBF3RrcgshBgJAAkACQCAOIAa+Ig5DAACAP14EfSAOEMYFQ1T4LUCUQwAAgD+SkQVDAACAPwuUIANdRQRAIAggACgCECIFIAAoAhQiByABEOcCAkAgCCgCJCIGQQlPBEAgCCgCBCIKDQEgCCgCCCIAQQRrKAIAIgFBeHEiAiAGQQJ0IgRBBEEIIAFBA3EiARtqSQ0EIAFBACACIARBJ2pLGw0FIAAQogIMAwsgBiIKRQ0CCyAIQShqIAIoAggiCSAJIApqEIwDIAUgByABAn8gCCgCTCIKQQlPBEAgCCgCLCEKIAgoAjAMAQsgCEEsagsgChDUAiAIQQRqIQECfyAGQQlJBEAgCEEkaiEFIAEMAQsgASEFIAgoAggLIQcCQCAFKAIAIgVBAkkNACAFQRVPBEAgByAFEMEFDAELIAdBBGohBgJAIAVBAXEEQCAGIQkgByEGDAELIAcoAgQiCSAHKAIAIgtJBEAgByAJNgIAIAcgCzYCBAsgB0EIaiEJCyAFQQJGDQAgByAFQQJ0aiENIAlBBGohDANAIAkoAgAiCiAGKAIAIgVJBEAgCSELAn8DQCALIAU2AgAgByAGIAdGDQEaIAYhCyAKIAZBBGsiBigCACIFSQ0ACyAGQQRqCyAKNgIAIAkoAgAhCgsgCiAJKAIEIgtLBEAgDCEFA0ACQCAFIAo2AgAgByAFQQRrIgZGBEAgByEGDAELIAVBCGshCiAGIQUgCyAKKAIAIgpJDQELCyAGIAs2AgALIAlBBGohBiAMQQhqIQwgCUEIaiIJIA1HDQALCyAIKAIkIgchBSAHQQlPBEAgCCgCBCEFIAgoAgghAQsgBQRAIAVBAnQhBiACKAIIIgVBAnQhBwNAIAEoAgAhCSACKAIAIAVGBEAgAkGA5sEAEIsGCyABQQRqIQEgAigCBCAHaiAJNgIAIAIgBUEBaiIFNgIIIAdBBGohByAGQQRrIgYNAAsgCCgCJCEHCyAIKAIEIQUgCEHwAGogCEEgaigCADYCACAIQegAaiAIQRhqKQIANwIAIAggCP0AAgj9CwJYIAggBSAHIAdBCEsiARsiBjYCfCAIIAdBACABGzYCdCAIQQAgBSABGzYCVAJAAkAgBgRAIAdBCU8EQCAIKAJYIgYhAQNAIAAgASgCACACIAMgBBDLASABQQRqIQEgBUEBayIFDQALDAILIAhB1ABqIQFBACEFA0AgCCAFQQFqIgU2AnggACABKAIAIAIgAyAEEMsBIAFBBGohASAFIAdHDQALDAILIAdBCUkNASAIKAJYIQYLIAZBBGsoAgAiAEF4cSIBIAdBAnQiAkEEQQggAEEDcSIAG2pJDQMgAEEAIAEgAkEnaksbDQQgBhCiAgsgCCgCTCIAQQlJDQEgCCgCMCIBQQRrKAIAIgJBeHEiBCAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0CIAJBACAEIABBJ2pLGw0DIAEQogIMAQsgBCgCCCIAIAQoAgBGBEAgBEGQ5sEAEIsGCyAEKAIEIABBAnRqIAE2AgAgBCAAQQFqNgIICyAIQYABaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALshADB38BfgF7IwBBMGsiAyQAAkACQCAAKAIAIgZFBEAgACgCECIARQ0BIABBk7PFAEEBEJcDIQQMAgsgACAAKAIMQQFqIgQ2AgwCQAJAAkACQAJAAkACQAJAIARB9QNPBEAgACgCECIBRQ0BIAFB+rLFAEEZEJcDRQ0BDAgLAkACQAJAAkAgACgCCCICIAAoAgQiCE8EQCAAKAIQIgFFDQEgAUHqssUAQRAQlwMNDAwBC0EBIQQgACACQQFqIgc2AggCQAJAAkACQAJAAkAgAiAGai0AACIFQckAaw4GAgEBAQgFAAsCQCAFQcIAaw4CAwQACyAFQdgAaw4CBwsACyAAKAIQIgFFDQQgAUHqssUAQRAQlwNFDQQMEQsgACABEMwBDRAgAQ0GDAwLIwBBIGsiAiQAAkACQCAAKAIARQRAIAAoAhAiAUUNASABQZOzxQBBARCXAyEBDAILIAIgABCvBiACKAIARQRAIAAoAhAiBQRAQQEhASAFQfqyxQBB6rLFACACLQAEQQFxIgUbQRlBECAFGxCXAw0DCyAAIAL9AAIA/QsCAAwBCyAAKAIQRQ0AIAD9AAIAIQogACAC/QACAP0LAgAgAiAK/QsDECAAIAFBAXEQzAEhASAAIAL9AAMQ/QsCAAwBC0EAIQELIAJBIGokACABRQ0MDA8LIANBIGogAEHzABCsBiADLQAgQQFGBEAgAy0AISEBIAAoAhAiAgRAIAJB+rLFAEHqssUAIAFBAXEiAhtBGUEQIAIbEJcDDRALIAAgAToABAwKCyAAKAIARQRAIAAoAhAiAEUNDiAAQZOzxQBBARCXAyEEDA8LIAMpAyghCSADQSBqIAAQ7wIgAygCIEUEQCADLQAkIQEgACgCECICBEAgAkH6ssUAQeqyxQAgAUEBcSICG0EZQRAgAhsQlwMNEAsgACABOgAEDAoLIAMgA/0AAiD9CwMAIAAoAhAiAUUNCyADIAEQiwINDCAAKAIQIgFFIAlQcg0LIAEoAghBgICABHENCyABKAIAQeiyxQBBASABKAIEKAIMEQAADQ4gACgCECMAQRBrIgIkAEERIQEDQCABIAJqQQJrIAmnQQ9xLQDctkU6AAAgAUEBayEBIAlCD1YgCUIEiCEJDQALQQFBhLTFAEECIAEgAmpBAWtBESABaxDIAyACQRBqJAANDiAAKAIQIgEoAgBB6bLFAEEBIAEoAgQoAgwRAAANDgwLCyAHIAhJBEAgACACQQJqNgIIIAYgB2otAAAiAkHBAGtB/wFxQRpJDQIgAkHhAGtBgIDEACECQf8BcUEaSQ0CCyAAKAIQIgFFDQAgAUHqssUAQRAQlwMNCwtBACEEIABBADoABCAAQQA2AgAMDAtBASEEIAAgARDMAQ0LAkAgACgCAA0AIAAoAhAiAUUNCyABQZSzxQBBAhCXAw0MIAAoAgANAEEAIQQgACgCECIARQ0MIABBk7PFAEEBEJcDIQQMDAsgA0EgaiAAQfMAEKwGIAMtACBBAUYEQCADLQAhIQEgACgCECICBEAgAkH6ssUAQeqyxQAgAUEBcSICG0EZQRAgAhsQlwMNDQsgACABOgAEDAcLIAAoAgBFBEAgACgCECIARQ0LIABBk7PFAEEBEJcDIQQMDAsgAykDKCEJIANBIGogABDvAiADKAIgRQRAIAMtACQhASAAKAIQIgIEQCACQfqyxQBB6rLFACABQQFxIgIbQRlBECACGxCXAw0NCyAAIAE6AAQMBwsgAyAD/QACIP0LAxACQAJAAkAgAkGAgMQARwRAIAAoAhAiAQRAIAFBlrPFAEEDEJcDDQ4LIAJBwwBGDQEgAkHTAEYNAiADIAI2AiAgACgCECIBRQ0DIANBIGogARCoBQ0NDAMLIAMoAhQgAygCHHJFDQsgACgCECIBRQ0LIAFBlLPFAEECEJcDDQ4gACgCECIBRQ0LIANBEGogARCLAkUNCwwOCyAAKAIQIgFFDQEgAUGZs8UAQQcQlwMNCwwBCyAAKAIQIgFFDQAgAUGgs8UAQQQQlwMNCgsgACgCECECIAMoAhQgAygCHHJFDQUgAkUNCCACQdD4xwBBARCXAw0LIAAoAhAiAUUNCCADQRBqIAEQiwINCyAAKAIQIQIMBQsgA0EgaiAAQfMAEKwGIAMtACBBAUcNAiADLQAhIQEgACgCECICBEAgAkH6ssUAQeqyxQAgAUEBcSICG0EZQRAgAhsQlwMNCwsgACABOgAEDAULIAAoAhAiAUUNBSABQZSzxQBBAhCXA0UNBQwJCyAAQQE6AAQMAwsjAEEQayIBJAAgACgCECECIABBADYCECAAQQAQzAEEQEGotMUAQT0gAUEPakGYtMUAQei0xQAQ4AYACyAAIAI2AhAgAUEQaiQACyAAKAIQIgEEQCABQaazxQBBARCXAw0HCyAAEIYCDQQgBUHNAEcEQCAAKAIQIgEEQCABQaezxQBBBBCXAw0GCyAAQQAQzAENBwsgACgCECIBRQ0DIAFBq7PFAEEBEJcDRQ0DDAYLIAJFDQIgAkGks8UAQQEQlwMNBSAAKAIQIQEgAyAJNwMgIAFFDQIgA0EgaiABEIUFDQUgACgCECIBRQ0CIAFBpbPFAEEBEJcDRQ0CDAULQQAhBCAAQQA2AgAMBAsgACgCECIBBEAgAUGms8UAQQEQlwMNBAsgABDuBA0DIAAoAhAiAUUNACABQauzxQBBARCXAw0DC0EAIQQgACgCAEUNAiAAIAAoAgxBAWs2AgwMAgtBASEEDAELQQAhBAsgA0EwaiQAIAQLkB4CFH8CfiMAQeAAayIIJAAgAUFAayEKAkACQCABLQBgIgdBB0sNACAIQdAAaiAKEI4CAkAgCC0AUCIHQR1GBEAgAS0AYCIHQQhPDQJBDyEHDAELIAggCCkBUjcDACAIIAhB2ABqKQEANwEGIAgtAFEhAQsgACABOgABIAAgBzoAACAAIAgpAwA3AQIgAEEIaiAIKQEGNwEADAELIAEgB0EIayIHOgBgIAEgASkDQCIaQgiIIhs3A0ACQAJAAkACQCAapyIGQf8BcUEvRgRAIAdB/wFxQQ1LDQQgCEHQAGogChCOAiAILQBQIgdBHUcNASABLQBgIgdBDk8NA0EPIQcMAgsgACAGOgABIABBCzoAAAwECyAIQRhqIAhB3ABqKAIANgIAIAggCCkCVDcDECAILwFSIQEgCC0AUSEKCyAAIAE7AQIgACAKOgABIAAgBzoAACAAIAgpAxA3AgQgAEEMaiAIQRhqKAIANgIADAILIAopAwAhGwsgASAHQQ5rIgc6AGAgASAbQg6IIho3A0AgASAbp0H//wBxQQFqIgY7AXQgB0H/AXFBDU0EQCAIQdAAaiAKEI4CAkACQCAILQBQIgdBHUYEQCABLQBgIgdBDk8NAkEPIQcMAQsgCEEoaiAIQdwAaigCADYCACAIIAgpAlQ3AyAgCC8BUiEBIAgtAFEhCgsgACABOwECIAAgCjoAASAAIAc6AAAgACAIKQMgNwIEIABBDGogCEEoaigCADYCAAwCCyABKQNAIRogAS8BdCEGCyABIAdBDmsiBzoAYCABIBpCDogiGzcDQCABIBqnQf//AHFBAWoiCTsBdgJAIAIgBkH//wNxRyADIAlHckUEQCAHQf8BcUUEQCAIQdAAaiAKEI4CAkACQCAILQBQIgdBHUYEQCABLQBgIgcNAkEPIQcMAQsgCCAIKQFSNwMwIAggCEHYAGopAQA3ATYgCC0AUSEBCyAAIAE6AAEgACAHOgAAIAAgCCkDMDcBAiAAQQhqIAgpATY3AQAMBAsgCikDACEbCyABIAdBAWsiAjoAYCABIBtCAYgiGjcDQAJAAkAgB0H/AXFBA00EQCAIQdAAaiAKEI4CIAgtAFAiB0EdRw0BIAEtAGAiAkEDSQRAQQ8hBwwDCyAKKQMAIRoLIAEgAkEDazoAYCABIBpCA4g3A0AgGqdBB3EiAkUNAyAAIAI6AAEgAEEMOgAADAQLIAggCCkBUjcDQCAIIAhB2ABqKQEANwFGIAgtAFEhAQsgACAIKQNANwECIABBCGogCCkBRjcBACAAIAE6AAEgACAHOgAADAILIABBFzoAAAwBCyAIQdAAaiELQQAhByMAQeAAayIGJAAgASIDQegAaiEZIANBQGshESADLwF0IRICQAJAA0ACQAJAAkACQAJAAkACQCADLQBgIgkNACAGQcwAaiAREI4CIAsCfyAGLQBMIglBHUYEQCADLQBgIgkNAkEPIQlBAQwBCyAGIAYpAU43AwAgBiAGQdQAaikBADcBBiAGLQBNCzoAASALIAk6AAAgCyAGKQMANwECIAtBCGogBikBBjcBAAwBCyADIAlBAWsiAjoAYCADIAMpA0AiG0IBiCIaNwNAIBtCAYNQRQRAIAlBAk0EQCAGQcwAaiAREI4CAkACQCAGLQBMIglBHUYEQCADLQBgIgJBAk8NAkEPIQkMAQsgBiAGKQFONwMQIAYgBkHUAGopAQA3ARYgBi0ATSEQCyALIBA6AAEgCyAJOgAAIAsgBikDEDcBAiALQQhqIAYpARY3AQAMAwsgESkDACEaCyADIAJBAms6AGAgAyAaQgKINwNAIAMgGqdBA3EiEEEEdGoiDS0AAEEERwRAIAtBEDoAAAwCCyADKAJwIgIgAygCaEYEQCAZQYj7xgAQpwYLIAMoAmwgAmogEDoAACADIAJBAWo2AnACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgEEEBaw4DARECAAsgAy0AYCIJQQJLDQQgBkHMAGogERCOAiAGLQBMIglBHUcNAiADLQBgIglBA08NBEEPIQkMAwsgAy0AYCIJQQJLDQYgBkHMAGogERCOAiAGLQBMIglBHUcNBCADLQBgIglBA08NBkEPIQkMBQsgAy0AYCIJQQdLDQggBkHMAGogERCOAiAGLQBMIglBHUcNBiADLQBgIglBCE8NCEEPIQkMBwsgBiAGKQFONwMgIAYgBkHUAGopAQA3ASYgBi0ATSEXCyALIBc6AAEgCyAJOgAAIAsgBikDIDcBAiALQQhqIAYpASY3AQAMCAsgAyAJQQNrOgBgIAMgAykDQCIaQgOINwNAQX8gGqdBB3EiF0ECaiIPdEF/cyICIBJB//8DcWogD3YiCiACIAMvAXZqIA92IglsIgJBAnQhDAJAIAJFBEBBASEHDAELIAwQcSIHRQ0KIAdBBGstAABBA3FFIAxFcg0AIAdBACAM/AsACyAGQcwAaiADIAogCUEAIAcgDBA6IAYtAEwiCkEdRg0LIAsgBikATTcAASALQQhqIAZB1ABqKQAANwAAIAsgCjoAACACRQ0HIAdBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAxqSQ0MIAJBACADIAxBJ2pLGw0OIAcQogIMBwsgBiAGKQFONwMwIAYgBkHUAGopAQA3ATYgBi0ATSEYCyALIBg6AAEgCyAJOgAAIAsgBikDMDcBAiALQQhqIAYpATY3AQAMBQsgAyAJQQNrOgBgIAMgAykDQCIaQgOINwNAQX8gGqdBB3EiGEECaiIPdEF/cyICIBJB//8DcWogD3YiCiACIAMvAXZqIA92IglsIgJBAnQhDAJAIAJFBEBBASEHDAELIAwQcSIHRQ0HIAdBBGstAABBA3FFIAxFcg0AIAdBACAM/AsACyAGQcwAaiADIAogCUEAIAcgDBA6IAYtAEwiCkEdRg0IIAsgBikATTcAASALQQhqIAZB1ABqKQAANwAAIAsgCjoAACACRQ0EIAdBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAxqSQ0JIAJBACADIAxBJ2pLGw0FIAcQogIMBAsgBkHIAGogBkHYAGooAgA2AgAgBiAGKQJQNwNAIAYvAU4hDiAGLQBNIQMLIAsgDjsBAiALIAM6AAEgCyAJOgAAIAsgBikDQDcCBCALQQxqIAZByABqKAIANgIADAILIAMgCUEIazoAYCADIAMpA0AiGkIIiDcDQCAapyICQf8BcSIOQQFqIhNBAnQiDBBxIgdFDQMgB0EEayIULQAAQQNxRSAMRXJFBEAgB0EAIAz8CwALIAZBzABqIAMgE0EBQQAgByAMEDogBi0ATCIKQR1HBEAgCyAGKQBNNwABIAtBCGogBkHUAGopAAA3AAAgCyAKOgAAIBQoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAxqSQ0HIAJBACADIAxBJ2pLGw0JIAcQogIMAgsgEkH//wNxQQECf0EDIA5BAkkNABpBAiAOQQRJDQAaIA5BEEkLIgp0akEBayAKdiISQf//A00EQCAORQRAQQEhE0EAIQ4MBwtBBCEJIAJBAnRB/AdxIhVBAWsiAiAMIAIgDEkbIgJBBE8EQCACQQFqIgpBA3EiCUEEIAkbIgkgAkF/c2ohFiAKIAlrQQRqIQkgByECA0AgAkEEaiIKIAL9XAAAIAr9XAAA/W79WgAAACAKIQIgFkEEaiIWDQALCyAVQQhqIQIgFUEEaiEKA0AgAiAJRg0GIAkgFGoiFUEEaiIWIBUtAAAgFi0AAGo6AAAgCUEBaiIJIApHDQALDAYLQdjmyABBKyAGQd8AakGY+8YAQaj7xgAQ4AYACyALQR06AAAgCyASOwECCyAGQeAAaiQADAcLQYyNyABBLkG8jcgAEOsHCwALIAlBBGsgDEG4+8YAEIwHAAsCQAJAIA0tAAAiAkEERiACQQJGcg0AIA0oAgQiAkUNACANKAIIIgpBBGsoAgAiCUF4cSIUQQRBCCAJQQNxIgkbIAJqSQ0BIAlBACAUIAJBJ2pLGw0EIAoQogILIA0gDDYCDCANIAc2AgggDSAMNgIEIA0gEzsBAiANIA86AAEgDSAQOgAADAILCwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAgtAFAiAkEdRwRAIAAgCCkCVDcCBCAAQQxqIAhB3ABqKAIANgIAIAgtAFEhASAAIAgvAVI7AQIgACABOgABIAAgAjoAAAwBCyAFIAgvAVIiCSABLwF2IgJsQQJ0IgNPBEAgCEHQAGogASAJIAJBASAEIAMQOiAILQBQIgJBHUcEQCAAIAgpAFE3AAEgAEEIaiAIQdgAaikAADcAACAAIAI6AAAMAgsgASgCcCICBEAgBEEEaiELIAEoAmwiDCACaiEGA0ACQAJAAkACQAJAAkACQAJAIAZBAWsiBi0AACICQQRJBEAgASACQQR0aiICLQAAQQFrDgQEBQIBAwsgAkEEQaj6xgAQjAcAC0G4+sYAEN0JAAsgBCAFIAEvAXQiCSABLwF2IgMgAi8BAiACKAIIIAIoAgwQSiADIAlsQQJ0IQMMBQsgAyAFSw0DIAhB0ABqIAQgAyAJIAEvAXYgAi0AASACKAIIIAIoAgwQTiAILQBQIgJBHUYNBCAAIAgpAFE3AAEgAEEIaiAIQdgAaikAADcAACAAIAI6AAAMCAsgAyAFSw0BIAQgAyAJIAItAAEgAigCCCACKAIMEJcCDAMLIAMgBU0EQCADQXxxIgpFDQMgA0EEayICQQRxBH8gBAUgBCAELQABIgcgBC0AAGo6AAAgBCAHIAQtAAJqOgACIAJBBEkNBCAKQQRrIQogCwshBwNAIAcgB0EBai0AACICIActAABqOgAAIAdBAmoiDSACIA0tAABqOgAAIAdBBGoiAiAHQQVqLQAAIg0gAi0AAGo6AAAgB0EGaiICIA0gAi0AAGo6AAAgB0EIaiEHIApBCGsiCg0ACwwDC0EAIAMgBUHo+sYAEOoHAAtBACADIAVB2PrGABDqBwALQQAgAyAFQcj6xgAQ6gcACyAGIAxHDQALCyAAQR06AAAMAQtBACADIAVB+PrGABDqBwALIAhB4ABqJAAL7g4CDH8DfiMAQTBrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAQRUgASgCACIEQYCAgIB4cyAEQQBOG0EUaw4CAQIACyABIAJBL2pB1OPAABCVCCEBIABBgICAgHg2AgAgACABNgIEDAYLIAEoAgwiBkUNAgJAIAEoAggiBSgCAEGUgICAeEYEQAJAIAUoAgwiAQRAIAJBHGogBSgCCBCoAyACKAIcIgRBgICAgHhHDQEgAigCICEBDAgLQQAgAkEvakGE4sAAENsGIQEMBwsgAigCICEHIAFBAUYNASACQQE2AhwgAUEBa0H/////AHFBAWogAkEcakHolcEAENsGIQEgBEUNBiAHIARBARCiBwwGCyAFIAJBL2pBhOLAABCVCCEBDAULIAZBAUYNASACKAIkIQkgAkEcaiIDIAVBEGoQ0wIgAigCICEBIAIoAhwNAwJAIAZBAkcEQCACKQIkIQ4gAyAFQSBqENMCIAIoAiAhBSACKAIcRQ0BIAUhAQwFC0ECQcSAwQBBgP3AABDbBiEBDAQLIAZBA0cEQCACQQM2AhwgBkH9////AGpB/////wBxQQNqIAJBHGpB6JXBABDbBiEBIABBgICAgHg2AgAgACABNgIEIARFDQYgByAEQQEQogcMBgsgACACKQIkNwIcIAAgBTYCGCAAIA43AhAgACABNgIMIAAgCTYCCCAAIAc2AgQgACAENgIADAULIAEoAgQhBCABKAIIIQEgAkEANgIYIAIgBCABQQV0aiILNgIQAkACQCABRQ0AQYCAgIB4IQgDQCACIARBIGoiATYCDCACIAIoAhhBAWo2AhggAiAEQRBqIgw2AhQCQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBFSAEKAIAIgNBgICAgHhzIANBAE4bQQFrDg8ADg4BDg4ODg4ODgIDBAUOCyAELQAEDgMKBQcPCyAEKQMIIg5CAlYNDiAOp0EBaw4CBAYJCyAEKAIIIQMCQCAEKAIMQQRrDgIACA4LIAMoAABB7dK5mwdGDQMgAygAAEHtwuGbB0YNBQwNCyAEKAIEIQMCQCAEKAIIQQRrDgIABg0LIAMoAABB7dK5mwdGDQIgAygAAEHtwuGbB0YNBAwMCyAEKAIIIQMCQAJAIAQoAgxBBGsOAgEADQsgAy0AAEHmAEcNDCADLQABQekARw0MIAMtAAJB7ABHDQwgAy0AA0HlAEcNDCADLQAEQfMARw0MDAcLIAMtAABB7QBHDQsCQAJAIAMtAAFB4QBrDgkBDQ0NDQ0NDQANCyADLQACQe4ARw0MIAMtAANB8wBGDQIMDAsgAy0AAkH4AEcNCyADLQADQfMARg0DDAsLIAQoAgQhAwJAAkAgBCgCCEEEaw4CAQAMCyADLQAAQeYARw0LIAMtAAFB6QBHDQsgAy0AAkHsAEcNCyADLQADQeUARw0LIAMtAARB8wBHDQsMBgsgAy0AAEHtAEcNCgJAIAMtAAFB4QBrDgkCCwsLCwsLCwALCyADLQACQe4ARw0KIAMtAANB8wBHDQoLIAZFDQVBlf3AAEEEEJ8HDAgLIAMtAAJB+ABHDQggAy0AA0HzAEcNCAsgCkUNBEGZ/cAAQQQQnwcMBgsgA0GQ/cAAQQUQ2wdFDQEMBgsgA0GQ/cAAQQUQ2wcNBQsgCEGAgICAeEcEQEGQ/cAAQQUQnwcMBAsgAkEcaiACQQxqELIFIAIoAiAhByACKAIcIghBgICAgHhGBEAgByEFDAkLIAIoAiQhDSACKAIQIQsgAigCDCEBDAULIAJBADYCFCACQRxqIAwQ0wIgAigCICIFIAIoAhxBAUYNAhogAikCJCEPQQEhBgwECyACQQA2AhQgAkEcaiAMENMCIAIoAiAhCSAJIAIoAhxBAUYNARogAikCJCEQQQEhCgwDCyAEIAJBL2pBhOTAABCVCAshBSAIQYCAgIB4ckGAgICAeEYNBAJAIAdBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAhqTwRAIAFBACAEIAhBJ2pLGw0BIAcQogIMBgtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAJBADYCFAsgCyABIgRHDQALIAhBgICAgHhGDQAgBkEAIAobRQRAQZn9wABBlf3AACAGG0EEEJwHIQUgCEUNAiAHIAhBARCiBwwCCyAAIBA3AhwgACAJNgIYIAAgDzcCECAAIAU2AgwgACANNgIIIAAgBzYCBCAAIAg2AgAMBgtBkP3AAEEFEJwHIQULIAAgBTYCBCAAQYCAgIB4NgIADAQLQQFBxIDBAEGA/cAAENsGIQEMAQtBAEHEgMEAQYD9wAAQ2wYhAQwBCyAERQ0AIAdBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIARqSQ0CIAVBACAGIARBJ2pLGw0DIAcQogILIAAgATYCBCAAQYCAgIB4NgIACyACQTBqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAukDAISfgh/IwBB4ABrIhUkAAJAAn8CQAJAAkACQAJAAkACQCABKQMAIgNQRQRAIAEpAwgiBFANASABKQMQIgVQDQIgBSADQn+FVg0DIAMgBFQNBCADIAV8IgVCgICAgICAgIAgWg0FIBUgAS8BGCIBOwE4IBUgAyAEfSIHNwMwIBUgByAFeSIEhiIIIASIIgY3A0AgBiAHUg0JIBUgATsBOCAVIAM3AzAgFSADIARCP4MiB4YiBiAHiCIHNwNAIAMgB1INCUGgfyABIASnayIXa8FB0ABsQbCnBWpBzhBtIgFB0QBPDQYgFUEgaiABQQR0IgEpA4iFQiIDIAUgBIYQ3QYgFUEQaiADIAgQ3QYgFSADIAYQ3QZCAUEAIBcgAS8BkIVCamtBP3GtIgaGIghCAX0hCiAVKQMQQj+HIQwgFSkDAEI/iCEOIBUpAwghDyABLwGShUIhFyAVKQMYIRAgFSkDKCITIBUpAyBCP4giFHwiEUIBfCIJIAaIpyIWQZDOAE8EQCAWQcCEPUkNCCAWQYDC1y9PBEBBCEEJIBZBgJTr3ANJIgEbIRlBgMLXL0GAlOvcAyABGwwKC0EGQQcgFkGAreIESSIBGyEZQcCEPUGAreIEIAEbDAkLIBZB5ABPBEBBAkEDIBZB6AdJIgEbIRlB5ABB6AcgARsMCQtBCkEBIBZBCUsiGRsMCAtB2I/CAEEcQaSQwgAQ6wcAC0G0kMIAQR1B1JDCABDrBwALQeSQwgBBHEGAkcIAEOsHAAtBuJLCAEE2QfCSwgAQ6wcAC0HwkcIAQTdBqJLCABDrBwALQZCRwgBBLUHAkcIAEOsHAAsgAUHRAEGYj8IAEIwHAAtBBEEFIBZBoI0GSSIBGyEZQZDOAEGgjQYgARsLIQEgCSAKgyEEIA4gD3whCyAZIBdrQQFqIRsgDCAQfSAJfEIBfCINIAqDIQUCQAJAAkACQAJAAkACQAJAAkADQCACIBhqIBYgAW4iHEEwaiIaOgAAIBhBAWohFyANIBYgASAcbGsiFq0gBoYiEiAEfCIDVg0CIBggGUYEQCAXIQFCASEDA0AgAyEHIAFBEUYNBSABIAJqIARCCn4iBCAGiKdBMGoiGDoAACABQQFqIQEgA0IKfiEDIAVCCn4iBSAEIAqDIgRYDQALIAUgBH0iCiAIVCEWIAMgCSALfX4iCSADfCEGIAQgCSADfSIJWg0HIAggClgNAgwHCyABQQpJIBchGCABQQpuIQFFDQALQdCRwgAQgQgACyABIAJqQQFrIRcgBSAIfSELIAggCX0hDUIAIAR9IQoDQCAEIAh8IgMgCVQgCSAKfCAEIA18WnJFBEBBACEWDAYLIBcgGEEBayIYOgAAIAogC3wiDCAIVCEWIAMgCVoNBiAKIAh9IQogAyEEIAggDFgNAAsMBQsgDSADfSIFIAGtIAaGIgdUIQEgCSALfSIGQgF8IQggBSAHVCADIAZCAX0iCVpyDQEgAiAXakEBayEYIAwgEXwgEH0gBCAHfCIEIBJ8fUICfCEKIBEgC30gA30hCyAEIA58IA98IBR9IBN9IBJ8IQZCACEEA0AgAyAHfCIFIAlUIAQgC3wgBlpyRQRAQQAhAQwDCyAYIBpBAWsiGjoAACAEIAp8IgwgB1QhASAFIAlaDQMgBiAHfCEGIAQgB30hBCAFIQMgByAMWA0ACwwCC0ERQRFB4JHCABCMBwALIAMhBQsCQCAFIAhaIAFyDQAgCCAFIAd8IgNYIAggBX0gAyAIfVRxDQAgAEEANgIADAQLIAUgDUIEfVggBUICWnFFBEAgAEEANgIADAQLIAAgGzsBCCAAIBc2AgQMAgsgBCEDCwJAIAMgBlogFnINACAGIAMgCHwiBFggBiADfSAEIAZ9VHENACAAQQA2AgAMAgsgAyAFIAdCWH58WCADIAdCFH5acUUEQCAAQQA2AgAMAgsgACAbOwEIIAAgATYCBAsgACACNgIACyAVQeAAaiQADwsgFUEANgJIIwBBEGsiACQAIAAgFUEwajYCDCAAIBVBQGs2AghBACAAQQhqQfCHwwAgAEEMakHwh8MAIBVByABqQeSWwgAQ8gQAC9ELAhd/AX0jAEEgayIHJAACQAJAAkACQAJAAkACQAJAIAAtALgBQQFHDQAgACgCrAEgACgCsAEiBUECdCAAKAK0ASIGIAVqQQJ0EOEIIQUgBkECdCIGIAAoAmQiCEsNASAAKAJgIQggByAFELgKIgs2AgAgByAGNgIEIAYgC0cNByAFIAggBhDgCSAFQYQISQ0AIAUQmwcLIABCADcCsAEgAEG4AWpBADoAAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAghFDQAgACgCDCABQQJ0IAEgAmpBAnQQ4QghCwJAIAJBAnQiASAAKAJkIgZNBEAgACABNgJkIAAoAmAhCCABIQUMAQsgASAGIgVrIgkgACgCXCAFa0sEQCAAQdwAaiAFIAlBBEEEEKQFIAAoAmQhBQsgACgCYCIIIAVBAnQiDGohCiAJQQJPBEAgASAGQX9zakECdCINBEAgCkEAIA38CwALIAJBBHQgBkECdGsgCGogDGpBBGshCiAFIAlqQQFrIQULIApBADYCACAAIAVBAWoiBTYCZCABIAVLDRILIAcgCxC4CiIGNgIAIAcgATYCBCABIAZHDRYgCCABIAsQ4QkgAkEPbCEMIARBD25BD2whDSAEQQFrQQ9uQQ9sQQ9qIQ4gBEECa0EPbkEPbEEPaiEPIARBA2tBD25BD2xBD2ohECAEQQRrQQ9uQQ9sQQ9qIREgBEEFa0EPbkEPbEEPaiESIARBBmtBD25BD2xBD2ohEyAEQQdrQQ9uQQ9sQQ9qIRQgBEEIa0EPbkEPbEEPaiEVIARBCWtBD25BD2xBD2ohFiAEQQprQQ9uQQ9sQQ9qIRcgBEELa0EPbkEPbEEPaiEYIARBDGtBD25BD2xBD2ohGSAEQQ1rQQ9uQQ9sQQ9qIRogBEEOa0EPbkEPbEEPaiEbQwAA/kIgACoClAGVIRxBACEBQQAhAANAIAEgBU8NEyABQQFqIgIgBU8NFCABQQJqIgIgBU8NFSABQQNqIgIgBU8NFiAAIA5GDRAgCEEEaigCACECIAhBDGooAgAhCSAIQQhqKAIAIQYgAyAIKAIAIgrAsiAclTgCACAAIA9GDQ8gA0EEaiAKQQh2wLIgHJU4AgAgACAQRg0OIANBCGogCkEQdsCyIByVOAIAIAAgEUYNDSADQQxqIApBGHWyIByVOAIAIAAgEkYNDCADQRBqIALAsiAclTgCACAAIBNGDQsgA0EUaiACQQh2wLIgHJU4AgAgACAURg0KIANBGGogAkEQdsCyIByVOAIAIAAgFUYNCSADQRxqIAJBGHWyIByVOAIAIAAgFkYNCCADQSBqIAbAsiAclTgCACAAIBdGDQcgA0EkaiAGQQh2wLIgHJU4AgAgACAYRg0GIANBKGogBkEQdsCyIByVOAIAIAAgGUYNBSADQSxqIAZBGHWyIByVOAIAIAAgGkYNBCADQTBqIAnAsiAclTgCACAAIBtGDQMgA0E0aiAJQQh2wLIgHJU4AgAgACANRg0CIANBOGogCUEQdsCyIByVOAIAIAhBEGohCCABQQRqIQEgA0E8aiEDIAwgAEEPaiIARw0ACyALQYQISQ0AIAsQmwcLIAdBIGokAA8LIABBDmohAAwNCyAAQQ1qIQAMDAsgAEEMaiEADAsLIABBC2ohAAwKCyAAQQpqIQAMCQsgAEEJaiEADAgLIABBCGohAAwHCyAAQQdqIQAMBgsgAEEGaiEADAULIABBBWohAAwECyAAQQRqIQAMAwsgAEEDaiEADAILIABBAmohAAwBCyAAQQFqIQALIAAgBEGc1MAAEIwHAAtBACAGIAhB/OvAABDqBwALQQAgASAFQazUwAAQ6gcACyABIAVB3NPAABCMBwALIAIgBUHs08AAEIwHAAsgAiAFQfzTwAAQjAcACyACIAVBjNTAABCMBwALIAdBADYCCEEAIAcgB0EEaiAHQQhqQeD5xAAQ9QcAC9gQAQR/IwBBEGsiAyQAEL8JIgRBsOjAAEEJEOwIIgIgACgCpAG4ELcJIgEQwAkCQAJAAkACQAJAAkACQAJAAkACQAJAAkBBtLvJAC0AAEUEQEG4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECE8EQCACEJsHCyAEQbnowABBCRDsCCICIAAoAqgBuBC3CSIBEMAJQbS7yQAtAAANAUG4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECE8EQCACEJsHCyAEQcLowABBCxDsCCICIAAoAqwBuBC3CSIBEMAJQbS7yQAtAAANAkG4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECE8EQCACEJsHCyAEQc3owABBBBDsCCICIAAoArABENsJIgEQwAlBtLvJAC0AAA0DQbi7yQBBADYCAEG0u8kAQQA6AAAgAUGECE8EQCABEJsHCyACQYQITwRAIAIQmwcLIARB0ejAAEEEEOwIIgIgACgCtAEQ2wkiARDACUG0u8kALQAADQRBuLvJAEEANgIAQbS7yQBBADoAACABQYQITwRAIAEQmwcLIAJBhAhPBEAgAhCbBwsCQCAAKAIAQQFHDQAgBEH458AAQQMQ7AgiAiAAKAIEENsJIgEQwAlBtLvJAC0AAA0GQbi7yQBBADYCAEG0u8kAQQA6AAAgAUGECE8EQCABEJsHCyACQYQISQ0AIAIQmwcLAkAgACgCCEUNACAEQfvnwABBAxDsCCICIAAoAgwQ2wkiARDACUG0u8kALQAADQdBuLvJAEEANgIAQbS7yQBBADoAACABQYQITwRAIAEQmwcLIAJBhAhJDQAgAhCbBwsCQCAAKAIQRQ0AIARB/ufAAEEEEOwIIgIgACgCFBDbCSIBEMAJQbS7yQAtAAANCEG4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECEkNACACEJsHCwJAIAAoAhhFDQAgBEGC6MAAQQQQ7AgiAiAAKAIcENsJIgEQwAlBtLvJAC0AAA0JQbi7yQBBADYCAEG0u8kAQQA6AAAgAUGECE8EQCABEJsHCyACQYQISQ0AIAIQmwcLAkAgACgCIEUNACAEQajpwABBCBDsCCICIAAoAiQQ2wkiARDACUG0u8kALQAADQpBuLvJAEEANgIAQbS7yQBBADoAACABQYQITwRAIAEQmwcLIAJBhAhJDQAgAhCbBwsCQCAAKAIoRQ0AIARBwOnAAEEIEOwIIgIgACgCLBDbCSIBEMAJQbS7yQAtAAANC0G4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECEkNACACEJsHCwJAIAAoAjBFDQAQwQkiAiAAKAI0ENsJIgEQ4gkgAUGECE8EQCABEJsHCyACIAAoAjgQ2wkiARDiCSABQYQITwRAIAEQmwcLIARB2OnAAEEIEOwIIgEgAhDACUG0u8kALQAADQxBuLvJAEEANgIAQbS7yQBBADoAACACQYQITwRAIAIQmwcLIAFBhAhJDQAgARCbBwsCQCAAKAI8RQ0AIARBhujAAEEHEOwIIgIgACgCQBDbCSIBEMAJQbS7yQAtAAANDUG4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECEkNACACEJsHCyAAEIoCIANBEGokACAEDwtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABBwOrAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQbDqwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEGg6sAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABBkOrAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQYDqwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEHo6MAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABB+OjAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQYjpwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEGY6cAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABBsOnAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQcjpwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEHg6cAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABB8OnAABDgBgAL2BABBX8jAEEQayIDJAAQvwkiBUGw6MAAQQkQ7AgiASAAKAKgAbgQtwkiAhDACQJAAkACQAJAAkACQAJAAkACQAJAAkBBtLvJAC0AAEUEQEG4u8kAQQA2AgBBtLvJAEEAOgAAIAJBhAhPBEAgAhCbBwsgAUGECE8EQCABEJsHCyAFQbnowABBCRDsCCIBIAAoAqQBuBC3CSICEMAJQbS7yQAtAAANAUG4u8kAQQA2AgBBtLvJAEEAOgAAIAJBhAhPBEAgAhCbBwsgAUGECE8EQCABEJsHCyAFQcLowABBCxDsCCIBIAAoAqgBuBC3CSICEMAJQbS7yQAtAAANAkG4u8kAQQA2AgBBtLvJAEEAOgAAIAJBhAhPBEAgAhCbBwsgAUGECE8EQCABEJsHCyAFQaDswABBBhDsCCIBIAAoAqwBEMAJQbS7yQAtAAANA0G4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsCQCAAKAIAQQFHDQAgBUH458AAQQMQ7AgiASAAKAIEENsJIgIQwAlBtLvJAC0AAA0FQbi7yQBBADYCAEG0u8kAQQA6AAAgAkGECE8EQCACEJsHCyABQYQISQ0AIAEQmwcLAkAgACgCCEUNACAFQfvnwABBAxDsCCIBIAAoAgwQ2wkiAhDACUG0u8kALQAADQZBuLvJAEEANgIAQbS7yQBBADoAACACQYQITwRAIAIQmwcLIAFBhAhJDQAgARCbBwsCQCAAKAIQRQ0AIAVBjOzAAEEDEOwIIgEgACgCFBDbCSICEMAJQbS7yQAtAAANB0G4u8kAQQA2AgBBtLvJAEEAOgAAIAJBhAhPBEAgAhCbBwsgAUGECEkNACABEJsHCwJAIAAoAhhFDQAgBUGo6cAAQQgQ7AgiASAAKAIcENsJIgIQwAlBtLvJAC0AAA0IQbi7yQBBADYCAEG0u8kAQQA6AAAgAkGECE8EQCACEJsHCyABQYQISQ0AIAEQmwcLAkAgACgCIEUNACAFQcDpwABBCBDsCCIBIAAoAiQQ2wkiAhDACUG0u8kALQAADQlBuLvJAEEANgIAQbS7yQBBADoAACACQYQITwRAIAIQmwcLIAFBhAhJDQAgARCbBwsCQCAAKAIoRQ0AIAVB2OnAAEEIEOwIIgEgACgCLBDbCSICEMAJQbS7yQAtAAANCkG4u8kAQQA2AgBBtLvJAEEAOgAAIAJBhAhPBEAgAhCbBwsgAUGECEkNACABEJsHCwJAIAAoAjBFDQAgBUGG6MAAQQcQ7AgiASAAKAI0ENsJIgIQwAlBtLvJAC0AAA0LQbi7yQBBADYCAEG0u8kAQQA6AAAgAkGECE8EQCACEJsHCyABQYQISQ0AIAEQmwcLQZjtwABBDRDsCCECEL8JIQEgACoCgAG7ELcJIQQgAUHg6sAAQQYQzwMgBBDjCCAAKgKEAbsQtwkhBCABQebqwABBBhDPAyAEEOMIIAAqAogBuxC3CSEEIAFB7OrAAEEKEM8DIAQQ4wggACoCjAG7ELcJIQQgAUH26sAAQQoQzwMgBBDjCCAAKgKQAbsQtwkhBCABQYDrwABBBhDPAyAEEOMIIAAqApQBuxC3CSEEIAFBhuvAAEEGEM8DIAQQ4wggACoCmAG7ELcJIQQgAUGM68AAQQYQzwMgBBDjCCAALQCcASEEIAFBkuvAAEEKEM8DQYIIQYMIIAQbEOMIIAUgAiABEMAJQbS7yQAtAAANC0G4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECE8EQCACEJsHCyAAEMACIANBEGokACAFDwtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABB6O3AABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQdjtwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEHI7cAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABBuO3AABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQajswAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEG47MAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABByOzAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQdjswAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEHo7MAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABB+OzAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQYjtwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEGo7cAAEOAGAAvODAIDfhB/IwBBIGsiDSQAAkACQEHMtckAKAIARQ0AQcS1yQAoAgAiCUHYtckAKQMAIgQgAK2FIgVCOIYgBUKA/gODQiiGhCAFQoCA/AeDQhiGIAVCgICA+A+DQgiGhIQgBEIIiEKAgID4D4MgBEIYiEKAgPwHg4QgBEIoiEKA/gODIARCOIiEhIRC0oGqm6v6gtenf34iBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhCAFQtii0e/CqeW/LX6FIgRCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgBEIIiEKAgID4D4MgBEIYiEKAgPwHg4QgBEIoiEKA/gODIARCOIiEhIRB0LXJACkDACIFQn+FfiIGQjiGIAZCgP4Dg0IohoQgBkKAgPwHg0IYhiAGQoCAgPgPg0IIhoSEIAZCCIhCgICA+A+DIAZCGIhCgID8B4OEIAZCKIhCgP4DgyAGQjiIhISEIAQgBUI4hiAFQoD+A4NCKIaEIAVCgID8B4NCGIYgBUKAgID4D4NCCIaEhCAFQgiIQoCAgPgPgyAFQhiIQoCA/AeDhCAFQiiIQoD+A4MgBUI4iISEhH6FIASJIgSncSEHIARCGYhC/wCDQoGChIiQoMCAAX4hBkHAtckAKAIAIgtBIGshCgNAIAcgC2opAAAiBSAGhSIEQn+FIARCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiBFBFBEADQCAAIAogBHqnQQN2IAdqIAlxIgxBBXRrKAIARg0EIARCAX0gBIMiBFBFDQALCyAFIAVCAYaDQoCBgoSIkKDAgH+DUEUNASAHIAhBCGoiCGogCXEhBwwACwALQbjzwAAQ3QkACyALQQAgDGtBBXRqQQRrKAIAIgwoAghFBEAgDEF/NgIIQQAhB0HQtskAKAIAIhBFBEBByLbJACgCAEH//w9NBEBByLbJAEEAQYCAEEEEQQQQpAVB0LbJACgCACEHC0HMtskAKAIAIAdBAnRqIgBBAEH8/z/8CwBB0LbJACAHQYCAEGoiEDYCACAAQfz/P2pBADYCAAsgASACaiIAIAwoAhQiCEsEQCAIIQkgACAIQQF0IgogACAKSxsiDiAIayIAIAwoAgwgCGtLBEAgDEEMaiAIIABBBEEQEKQFIAwoAhQhCQsgDCgCECEPIABBA3EiCgRAIAkgCmohCyAPIAlBBHRqIQcgCiEAA0AgB0IANwIAIAdBBmpCADcBACAHQRBqIQcgAEEBayIADQALIAshCSAOIAggCmprIQALIAggDmtBfE0EQCAPIAlBBHRqIQcgCSELA0AgB0IANwIAIAdBBmpCADcBACAHQRBqQgA3AgAgB0EWakIANwEAIAdBIGpCADcCACAHQSZqQgA3AQAgB0EwakIANwIAIAdBNmpCADcBACAHQUBrIQcgC0EEaiELIABBBGsiAA0ACwsgDCALNgIUCyACBEAgAUEEdCEUQQAhCUHMtskAKAIAIQ8DQAJAAkACQCAQQYCABCACIAkiAGsiCSAJQYCABE8bIgpBAnQiC08EQCANIAMgAEECdCAAIApqIglBAnQQ4QgiCBC4CiIHNgIAIA0gCzYCBCAHIAtHDQEgDyALIAgQ4QkgCEGECE8EQCAIEJsHCyAAIAJGDQMgCkEEdCERIAAgAWohCiAUIABBBHRqIRVBACEHQQAhAANAIAAgEUYNAyAMKAIUIgggCksEQCAAIA9qIg4oAgAhEiAOQQRqKAIAIRMgDkEIaigCACEWIAwoAhAgFWogAGoiCCAOQQxqKAIANgIAIAhBDGogFjsBACAIQQpqIBNBEHY7AQAgCEEIaiATOwEAIAhBBmogEkEQdjsBACAIQQRqIBI7AQAgB0EEaiEHIApBAWohCiARIABBEGoiAEYNBQwBCwsgCiAIQcjzwAAQjAcAC0EAIAsgEEHY88AAEOoHAAsgDUEANgIIQQAgDSANQQRqIA1BCGpB4PnEABD1BwALIAcgC0H488AAEIwHAAsgAiAJSw0ACwsgDCAMKAIIQQFqNgIIIA1BIGokAA8LQejzwAAQsAoAC/ELAR1/IwBBMGsiASQAIAAQowUgAEHAAWpBADoAACAAQgA3ArgBAkACQAJAAkACQAJAIAAoAowBIgVBgICAgHhGIAAoApgBIgJBgICAgHhGcUUEQCAFQYCAgIB4RyACQYCAgIB4R3FFBEAgAUEANgIoIAFBATYCHCABQZzgwAA2AhggAUIENwIgIAFBGGoQkgchAgwECyAAQYCABBDQBCAAKAKoASIKQQJ0ELYJIQ8CQCAAKAI8RQ0AIAAoAkAiAkGECEkNACACEJsHCyAAIA82AkAgAEEBNgI8IAAoAowBIhBBgICAgHhGDQIgACgCmAEiEUGAgICAeEYNAQJAIApFDQAgACgCnAEhGSAAKAKQASEaIAAoAqABIRIgACgClAEhEyAAKAK0ASEbIAAoArABIRwgACgCiAEhFCAAKAKEASEVIAAoAnwhFiAAKAJ4IQtBACECA0AgFkGAgAQgCiACayIFIAVBgIAETxsiCEECdCIDSQRAQQAgAyAWQYi7wQAQ6gcACwJAIAMgFE0EQCABIBwgAkECdCIMIAIgCGoiBUECdCIXEOEIIgQQuAoiBzYCFCABIAM2AgggAyAHRgRAIAsgAyAEEOEJIARBhAhPBEAgBBCbBwsgASAbIAwgFxDhCCIEELgKIgc2AhQgASADNgIIIAMgB0YEQCAVIAMgBBDhCSAEQYQITwRAIAQQmwcLIAIgCkYNAyAIQQR0IRggDCAZaiEdIBogAkEBdGohDUEAIQRBACEIAkADQCAEIBhGBEAgCCAIQQRqIANB6LrBABDqBwALIAEgBCALaiIOKQIANwIIIAEgDkEIaioCADgCEAJ/IA5BDGooAgAiBkH//wFxRQRAIAZBEHQMAQsgBkH/B3EhByAGQYCAAnEhCSAGQYD4AXEiBkGA+AFGBEAgCUEQdCEGIAZBgICA/AdyIAdFDQEaIAYgB0ENdHJBgICA/gdyDAELIAlBEHQhCSAGQQ10QYCAgPwAcSAHQQ10ckGAgIDAA2ogCXIgBg0AGiAJQYCAgNgDciAHZ0EQayIGQRd0ayAHIAZB//8DcUEIanRB////A3FyCyEHIAFBGGoiBiAEIBVqEJYDIAIgE0kEQCACIBJPDQIgDiABQQhqIAe+IAYgDS8BACAIIB1qKAIAEJECIAhBBGohCCANQQJqIQ0gAkEBaiECIBggBEEQaiIERw0BDAYLCyACIBNByLrBABCMBwALIAIgEkHYusEAEIwHAAsMCQsMCAtBACADIBRB+LrBABDqBwALIAEgDyAMIBcQ4QgiAhC4CiIENgIUIAEgAzYCCCADIARGBEAgAiALIAMQ4AkgAkGECE8EQCACEJsHCyAFIgIgCkkNAQwCCwsMBQsgEUGAgICAeHJBgICAgHhHBEAgACgCnAEiAkEEaygCACIFQXhxIgMgEUECdCIEQQRBCCAFQQNxIgUbakkNBiAFQQAgAyAEQSdqSxsNByACEKICCyAAQYCAgIB4NgKYASAQQYCAgIB4ckGAgICAeEcEQCAAKAKQASICQQRrKAIAIgVBeHEiAyAQQQF0IgRBBEEIIAVBA3EiBRtqSQ0GIAVBACADIARBJ2pLGw0HIAIQogILIABBgICAgHg2AowBC0EAIQIgAEEANgJ8IAAoAnghBSAAKAJ0IQMgAEKAgICAwAA3AnQgAwRAIAVBBGsoAgAiBEF4cSIIIANBAnQiA0EEQQggBEEDcSIEG2pJDQUgBEEAIAggA0EnaksbDQYgBRCiAgsgAEEANgKIASAAKAKEASEFIAAoAoABIQMgAEKAgICAwAA3AoABIANFDQIgBUEEaygCACIAQXhxIgQgA0ECdCIDQQRBCCAAQQNxIgAbakkNBCAAQQAgBCADQSdqSxsNBSAFEKICDAILQbi6wQAQ3QkAC0GousEAEN0JAAsgAUEwaiQAIAIPCyABQQA2AhhBACABQRRqIAFBCGogAUEYakHg+cQAEPUHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL3hgDB38BfgF7IwBBIGsiBiQAAkACQCAAKAIAIgdFBEAgACgCECIARQ0BIABBk7PFAEEBEJcDIQIMAgsCQAJAAkACQAJAIAAoAggiAiAAKAIEIgVPBEAgACgCECIBRQ0BIAFB6rLFAEEQEJcDRQ0BDAULIAAgAkEBaiIENgIIIAIgB2otAAAhAyAAIAAoAgxBAWoiCDYCDCAIQfUDTwRAIAAoAhAiAQRAIAFB+rLFAEEZEJcDDQYLIABBAToABAwCCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIANB0QBrDikLCgEPARABAQEBAQEBAQEBBAcIAQkBAQMEAwEEAwQDAgEBBAMBAQEEAwALIANBwQBrDgINBAALIAAoAhAiAUUNESABQeqyxQBBEBCXAw0VDBELIAAoAhAiAUUNE0EBIQIgAUGSssUAQQEQlwNFDRMMFgsgACADEIYFDRMMEgsgBCAFTw0QIAQgB2otAABB7gBGDQEMEAsjAEEgayICJAACQAJAIAAoAgBFBEAgACgCECIBRQ0BIAFBk7PFAEEBEJcDIQEMAgsgAiAAEK8GIAIoAgBFBEAgACgCECIDBEBBASEBIANB+rLFAEHqssUAIAItAARBAXEiAxtBGUEQIAMbEJcDDQMLIAAgAv0AAgD9CwIADAELIAAoAhBFDQAgAP0AAgAhCiAAIAL9AAIA/QsCACACIAr9CwMQIAAgAUEBcRDVASEBIAAgAv0AAxD9CwIADAELQQAhAQsgAkEgaiQAIAENEQwQCyAAIAJBAmo2AgggACgCECIBRQ0OQQEhAiABQeqzxQBBARCXA0UNDgwSCyAGQRhqIAAQyAUgBigCGCIBRQRAIAYtABwhASAAKAIQIgMEQEEBIQIgA0H6ssUAQeqyxQAgAUEBcSIDG0EZQRAgAxsQlwMNEwsgACABOgAEDA0LIAZBCGogASAGKAIcEMIEAkACQAJAIAYoAghBAUcNACAGKQMQIglCAVYNACAJp0EBaw0BDAILIAAoAhAiAUUNDSABQeqyxQBBEBCXAw0RDA0LIAAoAhAiAUUNDyABQfKzxQBBBRCXAw0QDA8LIAAoAhAiAUUNDiABQfezxQBBBBCXAw0PDA4LIAZBGGogABDIBSAGKAIYIgFFBEAgBi0AHCEBIAAoAhAiAwRAQQEhAiADQfqyxQBB6rLFACABQQFxIgMbQRlBECADGxCXAw0SCyAAIAE6AAQMDAsgBkEIaiABIAYoAhwQwgQCQCAGKAIIIAYpAxAiCUKAgICAEFRxRQ0AQYCAxAAgCaciASABQYCwA3NBgIDEAGtBgJC8f0kbIgFBgIDEAEYNACAAKAIQIQMjAEEgayICJAACf0EAIANFDQAaAkAgAygCAEEnIAMoAgQoAhARAgANAANAAkACQAJ/AkACQCABQSJHBEAgAUGAgMQARgRAIAMoAgBBJyADKAIEKAIQEQIADAkLAkACQAJAAkACQAJAIAFBJkwEQCABQQlrDgUBAwYGAgULIAFBJ0YNAyABQdwARw0FIAJCADcBAiACQdy4ATsBAAwICyACQgA3AQIgAkHc6AE7AQAMBwsgAkIANwECIAJB3OQBOwEADAYLIAJCADcBAiACQdzcATsBAAwFCyACQgA3AQIgAkHczgA7AQAMBAsgAUUNAgsCQAJAIAFBgAZPBEAgARDlBA0BCyABEOECDQELIAJBEGogARDWBSACQQhqIgUgAkEYaiIHLwAAOwEAIAIgAikAEDcDACACLQAaIQEgAi0AGyEEIAcgBS8BADsBACACIAIpAwA3AxAgAUH/AXEgBEH/AXFJDQUMBgsgAiABNgIAQYEBIQRBgAEMAwtBgIDEACEBIAMoAgBBIiADKAIEKAIQEQIARQ0FDAYLIAJCADcBAiACQdzgADsBAAtBAiEEQQALIQEgAkEYaiACQQhqLwEAOwEAIAIgAikDADcDEAsgBEH/AXEhByABQf8BcSEEIAMoAgAhASADKAIEKAIQIQUgAigCECEIA0AgASAHQYABTQR/IAJBEGogBGotAAAFIAgLIAURAgANAyAHIARBAWoiBEcNAAsLQYCAxAAhAQwACwALQQELIAJBIGokAA0PDA4LIAAoAhAiAUUNCiABQeqyxQBBEBCXAw0ODAoLAkAgAQ0AIAAoAhAiA0UNAEEBIQIgA0H7s8UAQQEQlwMNEAsgACgCECIDBEBBASECIANBsrPFAEEBEJcDDRALIAAQwQINDQwICyAEIAVPDQAgBCAHai0AAEHlAEYNAQsCQCABDQAgACgCECIERQ0AQQEhAiAEQfuzxQBBARCXAw0OCyAAKAIQIgQEQEEBIQIgBEGss8UAQQEQlwMNDgsgA0HSAEcNAQwFCyAAIAJBAmo2AgggABDBAg0KDAkLIAAoAhAiAkUNAyACQa6zxQBBBBCXAw0JDAMLAkAgAQ0AIAAoAhAiA0UNAEEBIQIgA0H7s8UAQQEQlwMNCwsgACgCECIDBEBBASECIANB6LLFAEEBEJcDDQsLIAAQyQYNCCAAKAIQIgNFDQdBASECIANB6bLFAEEBEJcDRQ0DDAoLAkAgAQ0AIAAoAhAiA0UNAEEBIQIgA0H7s8UAQQEQlwMNCgsgACgCECIDBEBBASECIANBu7PFAEEBEJcDDQoLQQAhAgJ/AkAgACgCACIDRQ0AA0ACQCAAKAIIIgQgACgCBE8NACADIARqLQAAQcUARw0AIAAgBEEBajYCCAwCCwJAIAJFDQAgACgCECIDRQ0AIANB55DGAEECEJcDRQ0AQQEMAwtBASAAQQEQ1QENAhogAkEBaiECIAAoAgAiAw0ACwtBAAshAyAGIAI2AgQgBiADNgIAQQEhAiAGKAIAQQFxDQkgBigCBEEBRgRAIAAoAhAiA0UNByADQbyzxQBBARCXAw0KCyAAKAIQIgNFDQYgA0HejsgAQQEQlwNFDQIMCQsCQCABDQAgACgCECIDRQ0AQQEhAiADQfuzxQBBARCXAw0JC0EBIQIgAEEBEMwBDQggACgCACIERQRAIAAoAhAiAEUNCCAAQZOzxQBBARCXAyECDAkLIAAoAggiAyAAKAIETwRAIAAoAhAiAUUNAyABQeqyxQBBEBCXA0UNAwwJCyAAIANBAWo2AggCQAJAAkAgAyAEai0AAEHTAGsOAwIBBAALIAAoAhAiAUUNBCABQeqyxQBBEBCXAw0IDAQLIAAoAhAiAwRAIANBu7PFAEEBEJcDDQoLIAAQyQYNByAAKAIQIgNFDQYgA0HejsgAQQEQlwNFDQIMCQsgACgCECICBEAgAkH8s8UAQQMQlwMNBwtBASECQQAhByMAQSBrIgMkAAJAAkACQCAAKAIAIgRFDQADQAJAIAAoAggiBSAAKAIETw0AIAQgBWotAABBxQBHDQAgACAFQQFqNgIIDAILAkACQCAHRQ0AIAAoAhAiBEUNACAEQeeQxgBBAhCXAw0EIAAoAgANACAAKAIQIgVFDQFBASEEIAVBk7PFAEEBEJcDRQ0BDAULIAMgAEHzABCsBiADLQAAQQFGBEAgAy0AASEHIAAoAhAiBQRAQQEhBCAFQfqyxQBB6rLFACAHQQFxIgUbQRlBECAFGxCXAw0GCyAAIAc6AAQgAEEANgIADAMLIAAoAgBFBEAgACgCECIFRQ0BQQEhBCAFQZOzxQBBARCXA0UNAQwFCyADIAAQ7wIgAygCAEUEQCADLQAEIQcgACgCECIFBEBBASEEIAVB+rLFAEHqssUAIAdBAXEiBRtBGUEQIAUbEJcDDQYLIAAgBzoABCAAQQA2AgAMAwsgAyAD/QACAP0LAxACQCAAKAIQIgRFDQAgA0EQaiAEEIsCDQQgACgCECIERQ0AIARB3fjHAEECEJcDDQQLQQEhBCAAQQEQ1QENBAsgB0EBayEHIAAoAgAiBA0ACwtBACEEDAELQQEhBAsgA0EgaiQAIAQNCCAAKAIQIgNFDQUgA0H/s8UAQQIQlwNFDQEMCAtBASECIABBARDVAQ0HCyABDQMgACgCECIBRQ0DQQEhAiABQaWzxQBBARCXA0UNAwwGC0EAIQIgAEEAOgAEIABBADYCAAwFC0EAIQIgAEEANgIADAQLIAAgAxCGBQ0BC0EAIQIgACgCAEUNAiAAIAAoAgxBAWs2AgwMAgtBASECDAELQQAhAgsgBkEgaiQAIAIL/gwBFn8jAEFAaiIFJAACQCABLQD4AkEIRwRAAkACQCADBEAgAUHIAmohFCABQf0CaiEPIAVBIGpBBXIhFSAFQRBqIREgAUHgAmohGSADIQkDQCAFQR5qIhYgD0ECaiISLQAAOgAAIAEtAPgCIQ4gAUEIOgD4AiAFIA8vAAA7ARwCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgDkEIRwRAIAEoAoQDIQggASgCgAMhECABKAD5AiETIA5BBmtB/wFxQQFqQQAgDkEFSxtBAWsOAgIDAQtBgJHFABDdCQALIBUgDy8AADsAACAVQQJqIBItAAA6AAAgBSATNgAhIAUgDjoAICAFIBA2AjQgCEUgCUEET3ENAyAJQQQgCGsiBiAGIAlLGyIGIAhqIgcgCEkgB0EFT3INBiAGBEAgBUE0aiAIaiACIAb8CgAACyAHQQRGBEAgBUEIaiABIAVBIGogBUE0aiAEIAYQNQwFCyABIAc2AoQDIAEgBSgCNDYCgAMgASAFKQMgNwP4AiAFQQA6ABAgBSAGNgIMIAVBADYCCAwECyABKALcAiIGRQ0EIAEoAuACIAEoAugCayIHIAkgByAJSRsiByAGIAYgB0sbIQsgAS0AkQNFBEAgFCACIAsQ3gELIAEtAOwCDQ4gASgC6AIiCiABKALgAiIHRwRAIAohBgwOCyABKAKIAyIGRQ0BIAEgBiAGIAogBiAKSRsiDWs2AogDQQAhB0EAIQYgCkUNDSAKIA1qIgdBAE4EfyAFIAo2AjwgBUEBNgI4IAUgASgC5AI2AjQgBUEoakEBIAcgBUE0ahCFByAFKAIoQQFHDQcgBSgCMCEMIAUoAiwFIAYLIAxBoJHFABCTCQALIAEoAtwCIgYgCSAGIAlJGyIKIQcgBA0GDAcLIAVBJzoADAwHCyAFQQhqIAEgBUEgaiACIARBBBA1CyAFKAIIQQFxDQYgBS0AECEGDAsLIAFCADcDgAMgAUEEOgD4AkEAIQYgEUEAOgAAIAVCADcDCAwKCyAIIAdBBEGQkcUAEOoHAAsgBSgCLCEGIAEgBzYC4AIgASAGNgLkAiABKALoAiEGDAYLIAEoAvACIg0tAKMHQQdGDQACQCABLQD0Ag0AIAEtAPUCQQFxRQ0AIA1BAToApgcLIAQoAgQiCyAEKAIMIgwoAgAiGkGAQGsiByAHIAtLGyIXIAQoAggiGCgCACIHSQ0DIAVBNGogDSACIAogBCgCACAHaiAXIAdrIBogB2tBABBCIAUtADRFBEAgBSgCOCEHIAwgDCgCACAFKAI8aiIMNgIAAkAgDS0AowdBB0cEQCAMQYCAAkkNASAMQYCAAmsiDCAYKAIATQ0BCyAYIAw2AgALIAFBAToA9AIMAQsgBSAFLQA1OgANIAVBHDoADAwBCyABLQCRA0UEQCAHIApLDQQgFCACIAcQ3gEgASgC3AIhBgsgASAGIAdrNgLcAgJAIAYgB0YEQEEEIQ5BACEQQQAhCAwBCyAPIAUvARw7AAAgEiAWLQAAOgAACyABIAg2AoQDIAEgEzYA+QIgASAOOgD4AiABIBA2AoADQQUhBiAFQQU6ABAgBSAHNgIMIAVBADYCCAwGCyAFQQE2AggLIAAgBf0AAwj9CwIAIABBEGogBUEYaigCADYCAAwKCyAHIBcgC0HwkMUAEOoHAAtBACAHIApBsJHFABDqBwALIAcgBmsgC0kEQCAZIAYgCxDvBSABKALoAiEGCyALBEAgASgC5AIgBmogAiAL/AoAAAsgASAGIAtqNgLoAgsgASABKALcAiIMIAtrNgLcAkEEIQpBACEGQQAhB0EAIQ0gCyAMRwRAIA8gBS8BHDsAACASIBYtAAA6AAAgDiEKIAghDSAQIQcLIAEgDTYChAMgASATNgD5AiABIAo6APgCIAEgBzYCgAMgBUEAOgAQIAUgCzYCDCAFQQA2AggLIAUoAgwhCCAGQf8BcQ0DIAggCUsNAiACIAhqIQIgCSAIayIJDQALCyAAQQA6AAggACADNgIEIABBADYCAAwDCyAIIAkgCUHklcUAEOoHAAsgCCAJTQRAIABBADYCACAAIBEpAgA3AgggAEEQaiARQQhqKAIANgIAIAAgAyAJayAIajYCBAwCCyAIIAkgCUH0lcUAEOoHAAsgAEECNgIIIABBJjoABCAAQQE2AgALIAVBQGskAAvlDAIOfwN+IwBBIGsiAyQAAkACQCAAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAqgBQQFrDgIBAgALIANBEGohBQJAAkBBJRBxIgFFDQAgAUEdakGdnccAKQAANwAAIAFBEGpBkJ3HAP0AAAD9CwAAIAFBgJ3HAP0AAAD9CwAAQQwQcSICRQ0AIAJBJTYCCCACIAE2AgQgAkElNgIAQQwQcSIBRQ0AIAFBKDoACCABQbidxwA2AgQgASACNgIAIAUgAa1CIIZCA4Q3AgAMAQsACwwCCyADQRBqIAFBsAFqIAIQ8wEMAQsgASgCrAEhCiACKAIAIhAhBSACKAIIIgwhBwJ/AkAgECAMa0EgTw0AIANBEGogCiACEI8EAkBBAAJ/IAMtABBBBEYEQCADKAIUDAELIAMpAxAiEUIgiCETIBFC/wGDQgRSDQEgE6cLRQ0CGiACKAIAIQUgAigCCCEHDAELIBFCgH6DIRIMBgtBgMAAIQtBACEBA0ACQCAFIBBHIAUgB0dyRQRAIANBEGogCiACEI8EAkACQAJ/IAMtABBBBEYEQCADKAIUDAELIAMpAxAiEUIgiCETIBFC/wGDQgRSDQEgE6cLDQEgAigCCCEHDAMLIBFCgH6DIRIMCQsgAigCCCEHIAIoAgAhBQsCQCAFIAdHBEAgBSAHayENIAIoAgQhBAwBC0IBIRFCgMwAIRJCACETIAVBIGoiCCAFQQF0IgQgBCAISRsiCEEASA0IIAMgBQR/IAMgBTYCGCADIAIoAgQ2AhBBAQVBAAs2AhQgA0EEakEBIAggA0EQahCFByADKAIEQQFGDQggAygCCCEEIAIgCDYCACACIAQ2AgQgCCAFayENIAghBQsgBCAHaiEOIAsgDSALIA1JGyIIIAFrIgQEQCABIA5qQQAgBPwLAAsgA0EQaiAKIA4gCBDkAgJAIAMtABBBBEYNACADKQMQIhJCIIgiE6chBEIAIRECQAJAAkACQAJAIBKnQf8BcUEBaw4EAgEABAwLIAQtAAhBI0YNAgwKCyAELQAIQSNGDQFCAiERDAoLIBJCgP4Dg0KAxgBRDQBCASERDAkLAn8gEkL/AYNCA1EEQCAEKAIAIQEgBEEEaigCACIGKAIAIgkEQCABIAkRAwALIAYoAgQiBgRAIAFBBGsoAgAiCUF4cSIPQQRBCCAJQQNxIgkbIAZqSQ0RIAlBACAPIAZBJ2pLGw0SIAEQogILIARBBGsoAgAiAUF4cSIGQRBBFCABQQNxIgEbSQ0QIAFBACAGQTRPG0UEQEEADAILDBELQQELIQEDQAJAAkAgAUUEQCAEEKICDAELIANBEGogCiAOIAgQ5AIgAy0AEEEERg0EIAMpAxAiEkIgiCITpyEEAkACQAJAAkAgEqdB/wFxQQFrDgQAAQIHDwsgEkKA/gODQoDGAFENAkIBIREMDgsgBC0ACEEjRg0BQgIhEQwNCyAELQAIQSNHDQsLIBJC/wGDQgNRDQELQQEhAQwBCyAEKAIAIQEgBEEEaigCACIGKAIAIgkEQCABIAkRAwALIAYoAgQiBgRAIAFBBGsoAgAiCUF4cSIPQQRBCCAJQQNxIgkbIAZqSQ0QIAlBACAPIAZBJ2pLGw0RIAEQogILIARBBGsoAgAiAUF4cSIGQRBBFCABQQNxIgEbSQ0PIAFFIAZBNElyRQRADBELQQAhAQwACwALIAIgBzYCCAwBCyADKAIUIgEgCEsEQEG0m8cAQTZB7JvHABDrBwALIAIgASAHaiIHNgIIIAFFDQBBfyALQQF0IAtBAEgbIAsgASAIRhsgCyALIA1NGyELIAggAWshAQwBCwsgByAMawshASAKLQC0AUEBRw0GIAIoAggiBSAMSQ0BIApBoAFqIAIoAgQgDGogBSAMaxDeASAKKAKwASAKKAKoAUYNBiADQRBqEJMHCyADLQAQIQEMBAsgDCAFIAVB7KvHABDqBwALQgMhEQsgAiAHNgIIIBJCgH6DIRILIAMgEz4CFCADIBGnIgE6ABAgAyASpyICQRh2OgATIAMgAkEIdjsAEQsgAUH/AXFBBEcNASADKAIUIQELIAAgAa03AwhBAAwBCyAAIAMpAxA3AgRBAQs2AgAgA0EgaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALtAwCDH8BfiMAQeAEayIJJABBBiELAkACQAJAAkACQAJAAkAgASgCACIKQYCAgIB4Rg0AIAlBEGogASgCBCIMIAEoAggQkQUgCS0AEEEBRgRAIAkoAhQhASAJQQA2AqQDIAlCgICAgBA3ApwDIAlBnJPBADYC3AEgCUKggICADjcC4AEgCSAJQZwDajYC2AEgASAJQdgBahCvBA0CIAkoApwDIQsgCSgCoAMiDSAJKAKkAxDsCCEPIAsEQCANQQRrKAIAIg5BeHEiEEEEQQggDkEDcSIOGyALakkNByAOQQAgECALQSdqSxsNCCANEKICCyAAQQA2AgAgACAPNgIEIAEgASgCACgCABEDACAKBEAgDEEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgCmpJDQcgAEEAIAEgCkEnaksbDQggDBCiAgsgB0UgCEGECElyRQRAIAgQmwcLIAVFIAZBhAhJckUEQCAGEJsHCyADRSAEQYQISXJFBEAgBBCbBwsgAigCACIAQYCAgIB4ckGAgICAeEYNBSACKAIEIgFBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIABqSQ0GIAJBACADIABBJ2pLGw0HIAEQogIMBQsgCS0AESELIApFDQAgDEEEaygCACIBQXhxIg1BBEEIIAFBA3EiARsgCmpJDQUgAUEAIA0gCkEnaksbDQYgDBCiAgtBBCEBQQAhCkEAELYJIRNBABC2CSEUQQAhDEEEIQ0CQCADQQFxRQ0AIAlB2AFqIAQQlwYgCSgC4AEhDyAJKALcASENIAkoAtgBIQwgBEGECEkNACAEEJsHC0EAIQQCQCAFQQFxRQ0AIAlB2AFqIAYQlwYgCSgC4AEhBCAJKALcASEBIAkoAtgBIQogBkGECEkNACAGEJsHC0EEIQZBACEFQQAhA0EEIRACQCAHQQFxRQ0AIAlBnANqIAhBABDoCCIHEJcGIAlB2AFqIAhBARDoCCISEJcGIAkoAuABIREgCSgC3AEhECAJKALYASEOIAkoAqQDIQMgCSgCoAMhBiAJKAKcAyEFIBJBhAhPBEAgEhCbBwsgB0GECE8EQCAHEJsHCyAIQYQISQ0AIAgQmwcLIAkgFDYCjAMgCSATNgKIAyAJQQA2AoQDIAlCADcC/AIgCUGAgICAeDYC8AIgCUGAgICAeDYC5AIgCUIENwLcAiAJQgA3AtQCIAlCgICAgMAANwLMAiAJIBE2AsgCIAkgEDYCxAIgCSAONgLAAiAJIAM2ArwCIAkgBjYCuAIgCSAFNgK0AiAJIAQ2ArACIAkgATYCrAIgCSAKNgKoAiAJIA82AqQCIAkgDTYCoAIgCSAMNgKcAiAJQQA2ApQCIAlBADYCiAIgCUEANgKAAiAJQQA2AvgBIAlBADYC8AEgCUEANgLoASAJQQA2AuABIAlBADYC2AEgCUGYA2pBADoAACAJQgA3ApADIAIoAgAhAyACKAIEIQUgAigCCCEBAn8gC0EGRwRAIAlBCGogCyAJQdgBahDUAyAJKAIMIQQgCSgCCCEHQQIMAQsgCUGcA2ogCUHcAWpBwAH8CgAAQQAhB0EACyEGQYCAgIB4IQggA0GAgICAeEcEQCABQQBIDQICQCABRQRAQQEhCAwBCyABEHEiCEUNBAsgAQRAIAggBSAB/AoAAAsgCK0gAa1CIIaEIRUgASEICyAJQRhqIgIgCUGcA2pBwAH8CgAAQfQBEHEiAUUNAiABIAY2AgAgAUEEaiACQcAB/AoAACABIAs6APABIAEgBDYC7AEgASAHNgLoASABQYCAgIB4NgLcASABIBU3AtQBIAEgCDYC0AEgAUEANgLMASABQoCAgIAQNwLEASAAQbDuwAA2AgwgAEEBNgIIIABBmO7AADYCBCAAIAE2AgAgA0GAgICAeHJBgICAgHhGDQMgBUEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgA2pJDQQgAEEAIAEgA0EnaksbDQUgBRCiAgwDC0GgnsYAQTcgCUHfBGpBtJPBAEHYnsYAEOAGAAtB2JrIABD/BwsACyAJQeAEaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL/Q0BBX8jAEEwayICJAACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOBQECAwQFAAtBASEDIAEoAgAiBEHUpccAQQggASgCBCIGKAIMIgURAAANBiAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEIQGRQ0BDAgLIARB24HCAEECIAURAAANByACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIQGDQcgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0HCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBgtBASEDIAEoAgAiBEHcpccAQQggASgCBCIGKAIMIgURAAANBSAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQcgACABEIUGRQ0BDAcLIARB24HCAEECIAURAAANBiACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIUGDQYgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0GCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBQtBASEDIAEoAgAiBEHkpccAQQkgASgCBCIGKAIMIgURAAANBCAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQYgACABEIYGRQ0B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BwsgA0IANwGCASADQdzkATsBgAEMBgsgA0IANwGCASADQdzcATsBgAEMBQsgA0IANwGCASADQdy4ATsBgAEMBAsgA0IANwGCASADQdzEADsBgAEMAwsgA0IANwGCASADQdzOADsBgAEMAgsgAyAENgKAASAAIAMpAoABNwIAIABBCGogA0GIAWovAQA7AQAgBSAJKAIAIAgoAhARAgBFDQMMBQtBACEADAULQQAhAUECCyEEIAAgAykCgAE3AgAgAEEIaiADQYgBai8BADsBACABIAQgASAESxsiAkH/AXEhBCAIKAIQIQoDQCAFIAAgAWotAAAgChECAA0DIAQgAUEBaiIBRw0ACyADIAI6AGALIAYgB0cNAAtBACEADAELQQEhAAsgA0GQAWokACAAC+MJAQZ/IAFBA2wiBCAAKAKQBCICSwRAIAQgAmsiBSAAKAKIBCACa0sEQCAAQYgEaiACIAVBBEEEEKQFIAAoApAEIQILIAAoAowEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKQBAsgACgCnAQiAiABSQRAIAEgAmsiBSAAKAKUBCACa0sEQCAAQZQEaiACIAVBBEEEEKQFIAAoApwEIQILIAAoApgEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKcBAsgACgCqAQiAiAESQRAIAQgAmsiBSAAKAKgBCACa0sEQCAAQaAEaiACIAVBBEEEEKQFIAAoAqgEIQILIAAoAqQEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKoBAsgACgCtAQiAiAESQRAIAQgAmsiBCAAKAKsBCACa0sEQCAAQawEaiACIARBBEEEEKQFIAAoArQEIQILIAAoArAEIgUgAkECdGohAyAEQQJPBH8gBEECdEEEayIGBEAgA0EAIAb8CwALIAIgBGoiA0EBayECIAUgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgK0BAsgAUECdCICIAAoAsAEIgRLBEAgAiAEayICIAAoArgEIARrSwRAIABBuARqIAQgAkEEQQQQpAUgACgCwAQhBAsgACgCvAQiBSAEQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgYEQCADQQAgBvwLAAsgAiAEaiICQQFrIQQgBSACQQJ0akEEawUgAwtBADYCACAAIARBAWo2AsAECwJAAkAgACgChAQiBEUNACABQQlsIgMgACgCzAQiAksEQCADIAJrIgQgACgCxAQgAmtLBEAgAEHEBGogAiAEQQRBBBCkBSAAKALMBCECCyAAKALIBCIFIAJBAnRqIQMgBEECTwR/IARBAnRBBGsiBgRAIANBACAG/AsACyACIARqIgNBAWshAiAFIANBAnRqQQRrBSADC0EANgIAIAAgAkEBajYCzAQgACgChAQhBAsgBEEBTQ0AIAFBD2wiAyAAKALYBCICSwR/IAMgAmsiBCAAKALQBCACa0sEQCAAQdAEaiACIARBBEEEEKQFIAAoAtgEIQILIAAoAtQEIgUgAkECdGohAyAEQQJPBH8gBEECdEEEayIGBEAgA0EAIAb8CwALIAIgBGoiA0EBayECIAUgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgLYBCAAKAKEBAUgBAtBAk0NACABQRVsIgIgACgC5AQiAUsNAQsPCyACIAFrIgMgACgC3AQgAWtLBEAgAEHcBGogASADQQRBBBCkBSAAKALkBCEBCyAAKALgBCIEIAFBAnRqIQIgA0ECTwR/IANBAnRBBGsiBQRAIAJBACAF/AsACyABIANqIgJBAWshASAEIAJBAnRqQQRrBSACC0EANgIAIAAgAUEBajYC5AQLtwkBBn8gAUEDbCIEIAAoAiAiAksEQCAEIAJrIgUgACgCGCACa0sEQCAAQRhqIAIgBUEEQQQQpAUgACgCICECCyAAKAIcIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgIgCyAAKAIsIgIgAUkEQCABIAJrIgUgACgCJCACa0sEQCAAQSRqIAIgBUEEQQQQpAUgACgCLCECCyAAKAIoIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgIsCyAAKAI4IgIgBEkEQCAEIAJrIgUgACgCMCACa0sEQCAAQTBqIAIgBUEEQQQQpAUgACgCOCECCyAAKAI0IgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgI4CyAAKAJEIgIgBEkEQCAEIAJrIgQgACgCPCACa0sEQCAAQTxqIAIgBEEEQQQQpAUgACgCRCECCyAAKAJAIgUgAkECdGohAyAEQQJPBH8gBEECdEEEayIGBEAgA0EAIAb8CwALIAIgBGoiA0EBayECIAUgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgJECyABQQJ0IgIgACgCUCIESwRAIAIgBGsiAiAAKAJIIARrSwRAIABByABqIAQgAkEEQQQQpAUgACgCUCEECyAAKAJMIgUgBEECdGohAyACQQJPBH8gAkECdEEEayIGBEAgA0EAIAb8CwALIAIgBGoiAkEBayEEIAUgAkECdGpBBGsFIAMLQQA2AgAgACAEQQFqNgJQCwJAAkAgACgC8AIiBEUNACABQQlsIgMgACgCXCICSwRAIAMgAmsiBCAAKAJUIAJrSwRAIABB1ABqIAIgBEEEQQQQpAUgACgCXCECCyAAKAJYIgUgAkECdGohAyAEQQJPBH8gBEECdEEEayIGBEAgA0EAIAb8CwALIAIgBGoiA0EBayECIAUgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgJcIAAoAvACIQQLIARBAU0NACABQQ9sIgMgACgCaCICSwR/IAMgAmsiBCAAKAJgIAJrSwRAIABB4ABqIAIgBEEEQQQQpAUgACgCaCECCyAAKAJkIgUgAkECdGohAyAEQQJPBH8gBEECdEEEayIGBEAgA0EAIAb8CwALIAIgBGoiA0EBayECIAUgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgJoIAAoAvACBSAEC0ECTQ0AIAFBFWwiAiAAKAJ0IgFLDQELDwsgAiABayIDIAAoAmwgAWtLBEAgAEHsAGogASADQQRBBBCkBSAAKAJ0IQELIAAoAnAiBCABQQJ0aiECIANBAk8EfyADQQJ0QQRrIgUEQCACQQAgBfwLAAsgASADaiICQQFrIQEgBCACQQJ0akEEawUgAgtBADYCACAAIAFBAWo2AnQL9AoBCH8jAEGAAWsiBCQAIAAoAgwhBgJAAkACQAJAAkACQAJAIAAoAhQiCCAAKAIQIgNJBEACQAJAAkACQAJAAkACQAJAAkAgBiAIai0AACIFQdsAaw4hBAgICAgICAgICAgDCAgICAgICAEICAgICAIICAgICAgFAAsgBUEiaw4MBgcHBwcHBwcHBwcFBwsgACAIQQFqIgU2AhQCQCADIAVNDQAgACAIQQJqIgc2AhQgBSAGai0AAEH1AEcNDSADIQUgAyAHRg0AIAAgCEEDaiIJNgIUIAYgB2otAABB7ABHBEAgCSEHDA4LIAMgCUYNACAAIAhBBGoiBzYCFCAGIAlqLQAAQewARw0NIARBBzoAcCAEQfAAaiABIAIQ3wYgABDrBSEDDA4LIARBEGogBiADIAUQ+QEgBCgCFCEAIAQoAhAhAUEUEHEiA0UNDiADIAE2AgwgA0EFNgIAIAMgADYCEAwNCyAAIAhBAWoiBTYCFAJAIAMgBU0NACAAIAhBAmoiBzYCFCAFIAZqLQAAQfIARw0LIAMhBSADIAdGDQAgACAIQQNqIgk2AhQgBiAHai0AAEH1AEcEQCAJIQcMDAsgAyAJRg0AIAAgCEEEaiIHNgIUIAYgCWotAABB5QBHDQsgBEGAAjsBcCAEQfAAaiABIAIQ3wYgABDrBSEDDA0LIARBIGogBiADIAUQ+QEgBCgCJCEAIAQoAiAhAUEUEHEiA0UNDSADIAE2AgwgA0EFNgIAIAMgADYCEAwMCyAAIAhBAWoiBTYCFAJAIAMgBU0NACAAIAhBAmoiBzYCFCAFIAZqLQAAQeEARw0JIAMhBSADIAdGDQAgACAIQQNqIgk2AhQgBiAHai0AAEHsAEcEQCAJIQcMCgsgAyAJRg0AIAAgCEEEaiIKNgIUIAYgCWotAABB8wBHBEAgCiEHDAoLIAMgCkYNACAAIAhBBWoiBzYCFCAGIApqLQAAQeUARw0JIARBADsBcCAEQfAAaiABIAIQ3wYgABDrBSEDDAwLIARBMGogBiADIAUQ+QEgBCgCNCEAIAQoAjAhAUEUEHEiA0UNDCADIAE2AgwgA0EFNgIAIAMgADYCEAwLCyAEQQo6AHAgBEHwAGogASACEN8GIAAQ6wUhAwwKCyAEQQs6AHAgBEHwAGogASACEN8GIAAQ6wUhAwwJCyAAIAhBAWo2AhQgBEFAayIFIABBABDHAyAEKQNAQgNRDQQgBSABIAIQhAcgABDrBSEDDAgLIABBADYCCCAAIAhBAWo2AhQgBEHkAGogAEEMaiAAEIICIAQoAmghAyAEKAJkQQJGDQcgBCAEKAJsNgJ4IAQgAzYCdCAEQQU6AHAgBEHwAGogASACEN8GIAAQ6wUhAwwHCyAFQTBrQf8BcUEKSQ0BCyAEQQhqIAYgAyAIQQFqIgEgAyABIANJGxD5ASAEKAIMIQIgBCgCCCEDQRQQcSIBRQ0GIAEgAzYCDCABQQo2AgAgASACNgIQIAEgABDrBSEDDAULIARB0ABqIABBARDHAyAEKQNQQgNRBEAgBCgCWCEDDAULIARB0ABqIAEgAhCEByAAEOsFIQMMBAsgBCgCSCEDDAMLIARBOGogBiADIAcQ+QEgBCgCPCEAIAQoAjghAUEUEHEiA0UNAyADIAE2AgwgA0EJNgIAIAMgADYCEAwCCyAEQShqIAYgAyAHEPkBIAQoAiwhACAEKAIoIQFBFBBxIgNFDQIgAyABNgIMIANBCTYCACADIAA2AhAMAQsgBEEYaiAGIAMgBxD5ASAEKAIcIQAgBCgCGCEBQRQQcSIDRQ0BIAMgATYCDCADQQk2AgAgAyAANgIQCyAEQYABaiQAIAMPCwAL2wsBBX8jAEEwayICJABBASEDAkACQAJAAkACQAJAAkBBASAALQAAIgRBJGsgBEEjTRtB/wFxQQFrDgMBAgMACyABKAIAIgRB86XHAEEHIAEoAgQiBigCDCIFEQAADQUgAEEEaiEAAkAgAS0ACkGAAXFFBEAgBEG7s8UAQQEgBREAAA0HIAAgARCuAkUNAQwHCyAEQduBwgBBAiAFEQAADQYgAkEBOgAoIAIgBjYCCCACIAQ2AgQgAkHggcIANgIYIAIgASkCCDcCHCACIAJBKGo2AgwgAiACQQRqNgIUIAAgAkEUahCuAg0GIAIoAhRB2YHCAEECIAIoAhgoAgwRAAANBgsgASgCAEHejsgAQQEgASgCBCgCDBEAACEDDAULIAEoAgAiBEHQt8cAQQYgASgCBCIGKAIMIgURAAANBAJAAkAgAS0ACkGAAXFFBEAgBEG7s8UAQQEgBREAAA0HIAIgADYCBCABKAIAQdzJxABBCyABKAIEKAIMEQAAIQAgAkEAOgAZIAIgADoAGCACIAE2AhQgAkEUakGQwcQAQQUgAkEEakHMycQAEIwFIQAgAi0AGCIEQQFxIAItABkiBUEBR3JFBEAgACgCACIALQAKQYABcQ0CIAAoAgBB/7PFAEECIAAoAgQoAgwRAABFDQMMCAsgBQ0HIARBAXFFDQIMBwsgBEHbgcIAQQIgBREAAA0GIAIgBjYCCCACIAQ2AgQgAkEBOgATIAJB4IHCADYCGCACIAEpAgg3AhwgAiACQRNqNgIMIAIgAkEEaiIDNgIUIAIgADYCJCADQdzJxABBCxCvAyEAIAJBADoALSACIAA6ACwgAiACQRRqNgIoIAJBKGpBkMHEAEEFIAJBJGpBzMnEABCMBSEAAkACQCACLQAsIgNBAXEgAi0ALSIEQQFHckUEQCAAKAIAIgAtAApBgAFxDQEgACgCAEH/s8UAQQIgACgCBCgCDBEAAA0IDAILIAQNByADQQFxRQ0BDAcLIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAANBgsgAigCFEHZgcIAQQIgAigCGCgCDBEAAEUNAUEBIQMMBgsgACgCAEGls8UAQQEgACgCBCgCDBEAAA0FCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBAsgASgCACIEQeSlxwBBCSABKAIEIgYoAgwiBREAAA0DIABBBGohAAJAAkAgAS0ACkGAAXFFBEAgBEG7s8UAQQEgBREAAA0GIAIgADYCBCABKAIAQZCqxwBBDiABKAIEKAIMEQAAIQAgAkEAOgAZIAIgADoAGCACIAE2AhQgAkEUakGQwcQAQQUgAkEEakGAwcQAEIwFIQAgAi0AGCIEQQFxIAItABkiBUEBR3JFBEAgACgCACIALQAKQYABcQ0CIAAoAgBB/7PFAEECIAAoAgQoAgwRAABFDQMMBwsgBQ0GIARBAXFFDQIMBgsgBEHbgcIAQQIgBREAAA0FIAIgBjYCCCACIAQ2AgQgAkEBOgATIAJB4IHCADYCGCACIAEpAgg3AhwgAiACQRNqNgIMIAIgAkEEaiIDNgIUIAIgADYCJCADQZCqxwBBDhCvAyEAIAJBADoALSACIAA6ACwgAiACQRRqNgIoIAJBKGpBkMHEAEEFIAJBJGpBgMHEABCMBSEAAkACQCACLQAsIgNBAXEgAi0ALSIEQQFHckUEQCAAKAIAIgAtAApBgAFxDQEgACgCAEH/s8UAQQIgACgCBCgCDBEAAA0GDAILIAQNBSADQQFxRQ0BDAULIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAANBAsgAigCFEHZgcIAQQIgAigCGCgCDBEAAEUNAUEBIQMMBQsgACgCAEGls8UAQQEgACgCBCgCDBEAAA0ECyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMAwsgASgCAEGfzsQAQQ4gASgCBCgCDBEAACEDDAILQQEhAwwBC0EBIQMLIAJBMGokACADC8MKAw5/A3sCfiMAQaABayIHJAAgByACNgIEIAcgACgCCCIDNgIIAkACQAJAAkACQAJAAkACQAJAAkAgAiADRgRAIAdBDGogASACEPEDIAcoAhAhAQJAIAcoAhQiDEUNACABIAxBA3RqIQogACgCBCEGIAEhAwNAIAMoAgAiBCACTw0DIANBBGooAgAiBSACTw0MIAYgBEEkbGoiBEEgaiIIKAIAIQkgBiAFQSRsaiIF/QACACESIAVBEGoiC/0AAgAhESAIIAVBIGoiCCgCADYCACAEQRBqIg39AAIAIRMgDSAR/QsCACAE/QACACERIAQgEv0LAgAgCyAT/QsCACAFIBH9CwIAIAggCTYCACADQQhqIgMgCkcNAAsgACgCFCICBEAgACgCECEEIAEhAwNAIAMoAgAiBSACTw0NIANBBGooAgAiBiACTw0FIAQgBUEYbGoiBUEQaiIIKQIAIRQgBCAGQRhsaiIG/QACACESIAggBkEQaiIIKQIANwIAIAX9AAIAIREgBSAS/QsCACAIIBQ3AgAgBiAR/QsCACADQQhqIgMgCkcNAAsLIAAoAiAiAgRAIAAoAhwhBCABIQMDQCADKAIAIgUgAk8NDSADQQRqKAIAIgYgAk8NBiAEIAVBEmxqIgVBEGoiCC8BACEJIAQgBkESbGoiBv0AAQAhEiAIIAZBEGoiCC8BADsBACAF/QABACERIAUgEv0LAQAgCCAJOwEAIAYgEf0LAQAgA0EIaiIDIApHDQALCyAAKAIsIgUEQCAAKAIoIQYgASECA0AgAigCACIDIAVPDQcgAkEEaigCACIEIAVPDQggBiADQR5saiIDQRBqIggpAQAhFCADQRZqKQEAIRUgBiAEQR5saiIEQRxqLwEAIQkgBEEYaigBACELIAT9AAEAIRIgCCAEQRBqIggpAQA3AQAgA/0AAQAhESADIBL9CwEAIANBGGogCzYBACADQRxqIAk7AQAgB0GGAWoiAyAVNwEAIAdBgAFqIgkgFDcDACAEIBH9CwEAIAggCSkDADcBACAEQRZqIAMpAQA3AQAgAkEIaiICIApHDQALCyAAKAI4IgNFIAxFcg0AIAAoAjQhBSABIQIDQCACKAIAIgAgA08NCCACQQRqKAIAIgQgA08NCSAHQZgBaiIMIAUgAEEqbGoiAEEoaiIGLwEAOwEAIAdBkAFqIgggAEEgaiIJKQEANwMAIAdBgAFqIgsgAEEQaiIN/QABAP0LAwAgBSAEQSpsaiIEQRBqIg79AAEAIRIgBP0AAQAhESAEQShqIg8vAQAhECAJIARBIGoiCSkBADcBACAGIBA7AQAgAP0AAQAhEyAAIBH9CwEAIA0gEv0LAQAgByAT/QsDcCAJIAgpAwA3AQAgDyAMLwEAOwEAIAQgB/0AA3D9CwEAIA4gC/0AAwD9CwEAIAJBCGoiAiAKRw0ACwsgBygCDCIABEAgAUEEaygCACICQXhxIgMgAEEDdCIAQQRBCCACQQNxIgIbakkNCSACQQAgAyAAQSdqSxsNCiABEKICCyAHQaABaiQADwsgB0EANgJwQQAgB0EEaiAHQQhqIAdB8ABqQaTBxwAQ9QcACyAEIAJBwPbHABCMBwALIAYgAkHA9scAEIwHAAsgBiACQcD2xwAQjAcACyADIAVBwPbHABCMBwALIAQgBUHA9scAEIwHAAsgACADQcD2xwAQjAcACyAEIANBwPbHABCMBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAFIAJBwPbHABCMBwAL4AoCB38BfiMAQdAAayIEJAAgAAJ/AkACQAJAAkACQAJAIAEoAhQiAiABKAIQIgNJBEAgASgCDCEIAn4CQANAIAIgCGotAAAiBUEJayIHQRdLQQEgB3RBk4CABHFFcg0BIAEgAkEBaiICNgIUIAIgA0cNAAsgAyECQgAMAQtCgAILIAWtQhCGhEKAgrgDUQ0BCyAEQSBqIAEoAgwiBSADIAIgA0kEfwNAIAIgBWotAAAiBkEJayIHQRlLDQNBASAHdEGTgIAEcUUEQCAHQRlHDQQgARDMBCICDQUMCAsgASACQQFqIgI2AhQgAiADRw0ACyADBSACC0EBaiIBIAMgASADSRsQ+QEgBCgCJCECIAQoAiAhA0EUEHEiAUUNBCABIAM2AgwgAUEFNgIAIAEgAjYCECAAIAE2AgQMAwsgASACQQFqIgY2AhQCQAJAAkAgAyAGTQ0AIAEgAkECaiIFNgIUIAYgCGotAABB9QBHDQEgBSAGIAMgAyAGSRsiBkYNACABIAJBA2oiBzYCFCAFIAhqLQAAQewARwRAIAchBQwCCyAGIAdGDQAgASACQQRqIgU2AhQgByAIai0AAEHsAEcNASAAQQA6AAFBAAwICyAEQQhqIAggAyAGEPkBIAQoAgwhBiAEKAIIIQFBFBBxIgJFDQUgAkEFNgIADAELIARBEGogCCADIAUQ+QEgBCgCFCEGIAQoAhAhAUEUEHEiAkUNBCACQQk2AgALIAIgATYCDCAAIAI2AgQgAiAGNgIQDAILIAZB+wBHBEAgBEEYaiAFIAMgAkEBaiIBIAMgASADSRsQ+QEgBCgCHCECIAQoAhghA0EUEHEiAUUNAyABIAM2AgwgAUEKNgIAIAEgAjYCECAAIAE2AgQMAgsgASABLQAYQQFrIgc6ABggAkEBaiECIAdB/wFxRQRAIARBKGogBSADIAIgAyACIANJGxD5ASAEKAIsIQIgBCgCKCEDQRQQcSIBRQ0DIAEgAzYCDCABQRg2AgAgASACNgIQIAAgATYCBAwCCyABIAI2AhQCQCABEMwEIgJFBEAgASgCDCEFAkACQCABKAIUIgIgASgCECIDSQRAA0ACQCACIAVqLQAAQQlrDjIAAAMDAAMDAwMDAwMDAwMDAwMDAwMDAwADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBgMLIAEgAkEBaiICNgIUIAIgA0cNAAsgAyECCyAEQThqIAUgAyACQQFqIgIgAyACIANJGxD5ASAEKAI8IQYgBCgCOCEDQRQQcSICRQ0GIAJBAzYCAAwBCyAEQTBqIAUgAyACQQFqIgIgAyACIANJGxD5ASAEKAI0IQYgBCgCMCEDQRQQcSICRQ0FIAJBBjYCAAsgAiADNgIMIAIgBjYCEAsgASABLQAYQQFqOgAYIAAgAjYCBAwCCyABIAJBAWo2AhQgARCHBCECIAEgAS0AGEEBajoAGCACDQAgASgCDCEFAkAgASgCFCICIAEoAhAiA0kEQANAIAIgBWotAAAiB0EJayIGQRdLQQEgBnRBk4CABHFFcg0CIAEgAkEBaiICNgIUIAIgA0cNAAsgAyECCyAEQcgAaiAFIAMgAhD5ASAEKAJMIQIgBCgCSCEDQRQQcSIBRQ0DIAEgAzYCDCABQQM2AgAgASACNgIQIAAgATYCBAwCCyAHQf0ARgRAIAEgAkEBajYCFAwECyAEQUBrIAUgAyACEPkBIAQoAkQhASAEKAJAIQNBFBBxIgJFDQIgAiADNgIMIAJBCjYCACACIAE2AhALIAAgAjYCBAtBAQwCCwALIABBAToAAUEACzoAACAEQdAAaiQAC/kKAwV/An0BfiMAQSBrIgIkAAJAIAEoAgAiBEGQtcQAQQUgASgCBCIDKAIMIgURAAAEQEEBIQMMAQsCQAJAAkAgASgCCCIGQYCAgARxRQRAQQEhAyAEQbuzxQBBASAFEQAADQQgBkGAgIABcSEFIAAqAgAhByAGQYCAgIABcQ0BIABBBGohBCAHiyIIQ8obDlpgIAdDAAAAAFwgCEMXt9E4XXFyRQRAIAEgByAFQQBHQQEQ9wJFDQMMBQsgASAHIAVBAEcQzwJFDQIMBAsgBEHbgcIAQQIgBREAAARAQQEhAwwECyACQQE6AA8gAiADNgIEIAIgBDYCACACQeCBwgA2AhQgAiABKQIIIgk3AhggCaciBEGAgIABcSEDIAIgAkEPajYCCCACIAI2AhAgACoCACEHAkACQCAEQYCAgIABcUUEQCAHiyIIQ8obDlpgIAdDAAAAAFwgCEMXt9E4XXFyDQEgAkEQaiAHIANBAEdBARD3Ag0FDAILIAJBEGogByADQQBHIAlCMIinEL0CRQ0BDAQLIAJBEGogByADQQBHEM8CDQMLIAIoAhBB2YHCAEECIAIoAhQoAgwRAAAEQEEBIQMMBAsgAEEEaiEEDAELIAEgByAFQQBHIAEvAQ4QvQINAiAAQQRqIQQLAkACQAJAAkACQCABKAIIIgNBgICABHFFBEAgASgCAEHnkMYAQQIgASgCBCgCDBEAAARAQQEhAwwICyADQYCAgAFxIQUgBCoCACEHIANBgICAgAFxDQEgAEEIaiEEIAeLIghDyhsOWmAgB0MAAAAAXCAIQxe30ThdcXJFBEBBASEDIAEgByAFQQBHQQEQ9wJFDQUMCAsgASAHIAVBAEcQzwJFDQRBASEDDAcLIAEpAgAhCSACQQE6AA8gAiAJNwIAIAJB4IHCADYCFCACIAEpAggiCTcCGCAJpyIFQYCAgAFxIQMgAiACQQ9qNgIIIAIgAjYCECAEKgIAIQcgBUGAgICAAXFFDQEgAkEQaiAHIANBAEcgCUIwiKcQvQJFDQIMBAsgASAHIAVBAEcgAS8BDhC9AgRAQQEhAwwGCyAAQQhqIQQMAgsgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQCACQRBqIAcgA0EAR0EBEPcCDQMMAQsgAkEQaiAHIANBAEcQzwINAgsgAigCEEHZgcIAQQIgAigCFCgCDBEAAEUEQCAAQQhqIQQMAQtBASEDDAMLAkACQAJAAkACQCABKAIIIgNBgICABHFFBEAgASgCAEHnkMYAQQIgASgCBCgCDBEAAARAQQEhAwwJCyADQYCAgAFxIQAgBCoCACEHIANBgICAgAFxDQEgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQEEBIQMgASAHIABBAEdBARD3AkUNBQwJC0EBIQMgASAHIABBAEcQzwJFDQQMCAsgASkCACEJIAJBAToADyACIAk3AgAgAkHggcIANgIUIAIgASkCCCIJNwIYIAmnIgNBgICAAXEhACACIAJBD2o2AgggAiACNgIQIAQqAgAhByADQYCAgIABcUUNASACQRBqIAcgAEEARyAJQjCIpxC9AkUNAgwEC0EBIQMgASAHIABBAEcgAS8BDhC9Ag0GDAILIAeLIghDyhsOWmAgB0MAAAAAXCAIQxe30ThdcXJFBEAgAkEQaiAHIABBAEdBARD3Ag0DDAELIAJBEGogByAAQQBHEM8CDQILIAIoAhBB2YHCAEECIAIoAhQoAgwRAABFDQBBASEDDAQLIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAwwDC0EBIQMMAgtBASEDDAELQQEhAwsgAkEgaiQAIAML2AkDEH8EfgF7IwBBMGsiBiQAAkACQCACKAIAIg4gAigCCCILayIHQSBPBEAgASkDCCEUIA4hBSALIQcMAQsgBkEQav0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgBiAX/QsDAAJ/IAEpAwgiFVAEQCALDAELIAEoAhAiDygCACAPKQMIIhMgDygCBCIErSIWIBMgFlQbp2ohCAJAIARC/////w8gEyATQv////8PWhunayIFQQAgBCAFTxsiBEIgIBUgFUIgWhunIgUgBCAFSRsiA0EBRgRAIAYgCC0AADoAAAwBCyADRQ0AIAYgCCAD/AoAAAsgASAVIAOtIhZ9IhQ3AwggDyATIBZ8NwMIIAsgAyAHTQ0AGiACIAsgA0EBQQEQpAUgAigCCAshBSADBEAgAigCBCAFaiAGIAP8CgAACyACIAMgBWoiBzYCCCADBEAgAigCACEFDAELIABBBDoAACAAQQA2AgQMAQsgASgCECEJQYDAACEQIAZBEGohDwJAA0ACQCAFIAdHIAUgDkdyRQRAIA/9DAAAAAAAAAAAAAAAAAAAAAD9CwMAIAYgF/0LAwACfyAUUARAQQAhA0IAIRQgDgwBCyAJKQMIIhUgCSgCBCIMrSIWIBUgFlQbpyIHIAkoAgBqIQgCQCAMQv////8PIBUgFUL/////D1obp2siBUEAIAUgDE0bIgRCICAUIBRCIFobpyIFIAQgBUkbIgNBAUYEQCAGIAgtAAA6AAAMAQsgA0UNACAGIAggA/wKAAALIAEgFCADrSIWfSIUNwMIIAkgFSAWfDcDCCAOIAcgDEYNABogAiAOIANBAUEBEKQFIAIoAggLIQUgAwRAIAIoAgQgBWogBiAD/AoAAAsgAiADIAVqIgc2AgggA0UEQCAAQQQ6AAAgACAHIAtrNgIEDAULIAIoAgAhBQsCQCAFIAdHBEAgAigCBCEDDAELIAVBIGoiCCAFQQF0IgQgBCAISRsiBEEASA0BQQAhAyAGIAUEfyAGIAU2AgggBiACKAIENgIAQQEFIAMLNgIEIAZBJGpBASAEIAYQhQcgBigCJEEBRg0BIAYoAighAyACIAQ2AgAgAiADNgIEIAQhBQsgFFAEQCACIAc2AggMAwsgAyAHaiESIAkCfiAQIAUgB2siBCAEIBBLGyINrSAUWARAIAkoAgQiCEL/////DyAJKQMIIhMgE0L/////D1obp2siBEEAIAQgCE0bIgQgDSAEIA1JGyIDBEAgEiAJKAIAIBMgCK0iFiATIBZUG6dqIAP8CgAACyADIAogAyAKSxshCiATIAOtIhV8DAELIAkoAgQiDEL/////DyAJKQMIIhMgE0L/////D1obp2siBEEAIAQgDE0bIgggFKciBCAEIAhLGyIDBEAgEiAJKAIAIBMgDK0iFiATIBZUG6dqIAP8CgAACyADIAogAyAKSxshCiATIAOtIhV8CzcDCCABIBQgFX0iFDcDCCACIAMgB2oiBzYCCCADRQ0CQX9BfyAQIBFBAWpBACADIA1JGyIRQQFKGyAQIAogDUcbIgRBAXQgBEEASBsgBCAEIA1NGyAEIAMgDUYbIRAgCiADayEKDAELCyAAQoHMADcCAAwBCyAAQQQ6AAAgACAHIAtrNgIECyAGQTBqJAALggkCBn8DfgJAAkACQCABQQhPBEAgAUEHcSICRQ0BIAAoAqABIgRBKU8NAiAERQRAIABBADYCoAEMAgsgBEECdCIGQQRrIgNBAnZBAWoiBUEDcSEHIAJBAnQoAqCVQiACdq0hCgJAIANBDEkEQCAAIQIMAQsgBUH8////B3EhAyAAIQIDQCACIAI1AgAgCn4gCXwiCD4CACACQQRqIgUgBTUCACAKfiAIQiCIfCIIPgIAIAJBCGoiBSAFNQIAIAp+IAhCIIh8Igg+AgAgAkEMaiIFIAU1AgAgCn4gCEIgiHwiCD4CACAIQiCIIQkgAkEQaiECIANBBGsiAw0ACwsgBwRAIAdBAnQhAwNAIAIgAjUCACAKfiAJfCIIPgIAIAJBBGohAiAIQiCIIQkgA0EEayIDDQALCyAAIAhCgICAgBBaBH8gBEEoRg0EIAAgBmogCT4CACAEQQFqBSAECzYCoAEMAQsgACgCoAEiBEEpTw0BIARFBEAgAEEANgKgAQ8LIAFBAnQ1AqCVQiEKIARBAnQiB0EEayICQQJ2QQFqIgNBA3EhAQJAIAJBDEkEQCAAIQIMAQsgA0H8////B3EhAyAAIQIDQCACIAI1AgAgCn4gCXwiCD4CACACQQRqIgYgBjUCACAKfiAIQiCIfCIIPgIAIAJBCGoiBiAGNQIAIAp+IAhCIIh8Igg+AgAgAkEMaiIGIAY1AgAgCn4gCEIgiHwiCD4CACAIQiCIIQkgAkEQaiECIANBBGsiAw0ACwsgAQRAIAFBAnQhAwNAIAIgAjUCACAKfiAJfCIIPgIAIAJBBGohAiAIQiCIIQkgA0EEayIDDQALCyAAIAhCgICAgBBaBH8gBEEoRg0DIAAgB2ogCT4CACAEQQFqBSAECzYCoAEPCwJAIAFBCHEEQCAAKAKgASIEQSlPDQICQCAERQRAQQAhBAwBCyAEQQJ0IgZBBGsiAkECdkEBaiIDQQNxIQcCQCACQQxJBEBCACEIIAAhAgwBCyADQfz///8HcSEDQgAhCCAAIQIDQCACIAI1AgBC4esXfiAIfCIIPgIAIAJBBGoiBSAFNQIAQuHrF34gCEIgiHwiCD4CACACQQhqIgUgBTUCAELh6xd+IAhCIIh8Igg+AgAgAkEMaiIFIAU1AgBC4esXfiAIQiCIfCIJPgIAIAlCIIghCCACQRBqIQIgA0EEayIDDQALCyAHBEAgB0ECdCEDA0AgAiACNQIAQuHrF34gCHwiCT4CACACQQRqIQIgCUIgiCEIIANBBGsiAw0ACwsgCUKAgICAEFQNACAEQShGDQIgACAGaiAIPgIAIARBAWohBAsgACAENgKgAQsgAUEQcQRAIABByJXCAEECEPMCCyABQSBxBEAgAEHQlcIAQQMQ8wILIAFBwABxBEAgAEHclcIAQQUQ8wILIAFBgAFxBEAgAEHwlcIAQQoQ8wILIAFBgAJxBEAgAEGYlsIAQRMQ8wILIAAgARC5AxoPCwwBC0EAIARBKEGMg8IAEOoHAAtBKEEoQYyDwgAQjAcAC5oKAgl/Bn4jAEEgayIFJAACQAJAIAEtAAgiBkECRg0AIAIgASkDACIMNwMIIAVCADcDEAJAAkACQAJAAkACQCABKAKYASIDQQlJBEAgASkDGEJ/IAwgA618Ig4gDCAOVhtUDQQgASgClAEhCCACKAIEIgStIQ0gBEL/////DyAMIAxC/////w9aG6drIgdBACAEIAdPGyADTwRAIAIoAgAgDCANIAwgDVQbp2ohBCADQQFHBEAgA0UNAyAFQRBqIAQgA/wKAAAMAwsgBSAELQAAOgAQDAILQaiQyAApAwAiD0IIiCEQIA+nIQcgD0L/AYNCBFINAwwCC0EAIANBCEHMisEAEOoHAAtBBCEHCyAOIQ0LIAIgDTcDCAJAIAdB/wFxIgRBBEcEQCAFIAetQv8BgyAQQgiGhCINNwMYIBBCGIinIQMCfwJAAkAgBEEBaw4DAAEBBAsgEKcMAQsgAy0ACAtB/wFxQSVHDQEgBkEBcUUEQCAFQRhqEM4FDAQLIABBADYCACAAQgA3AwggBUEYahDOBQwGCyAIIAVBEGogAxDbBw0BIAIgDDcDCCABQQI6AAggACAMNwMQIABCATcDCCAAQQA2AgAMBQsgACANNwMIIABCgYCAgJCAgICAfzcDAAwECyAGQQFxDQELIAFBAjoACAwBCyAAQQA2AgAgAEIANwMIDAELAkACQAJAAkAgASkDoAEiDCABKQMQVA0AIAFBIGohCUGokMgAKQMAIg5C/wGDIREgDkIIiCEQIAEpAxghDSACKAIAIQogDqchBiACKAIEIgutIQ4DQCAMIA1aDQFCfyAMIAEoAqwBIgOtfCIPIAwgD1YbIg8gDFgNAQJAAkAgAgJ+AkACQAJAIA0gDyANIA9UGyAMfSIPpyIEIANNBEAgASgCqAEhByABKAKwAQ0FIAsgDCAOIAwgDlQbpyIDayAESQ0CIAMgCmohAyAEQQFGDQEgBARAIAcgAyAE/AoAAAtBBCEDDAMLQQAgBCADQbyKwQAQ6gcACyAHIAMtAAA6AABBBCEDDAELIAYhAyAOIBFCBFINARoLIA9C/////w+DIAx8CzcDCCADQf8BcSIDQQRHBEAgEEIYiKchASAQpyICIQQCQAJAAkAgA0EBaw4DAQACCgsgAS0ACCEECyAEQf8BcUElRg0FDAgLIAEtAAhBJUcNByABKAIAIQIgAUEEaigCACIDKAIAIgYEQCACIAYRAwALIAMoAgQiBgRAIAIgBiADKAIIEKIHCyABQQxBBBCiBwwEC0EAIQMgASgCsAFFDQELIAQgASgCtAEiA0kNAyADIAdqIQcgBCADayEECyAFQgE3AhggASgCmAEiCCAETQRAIAVBCGogCSAFQRhqIAcgBCABKAKUASAIIAEoAogBEQoAIAUoAghBAXENBAsgAUEANgKwAUJ/IAEpA6ABIg0gATUCrAEgCEEBayIDQQAgAyAITRutfXwiDCAMIA1UGyIMIAEpAxgiDVQEQCABIAw3A6ABIAwgASkDEFoNAQwCCwsgASANNwMQCyAAQgA3AwggAEEANgIADAMLIAMgBCAEQeCbyAAQ6gcACyAFKAIMIQYgAUEBNgKwASAAQgE3AwggASADIAZqIAhqNgK0ASACIAatIAwgA618fCINNwMIIAAgDTcDECAAQQA2AgAMAQsgACABNgIMIABBgYCAgHg2AgQgACACQQh0IANyNgIIIABBATYCAAsgBUEgaiQAC6MJAg5/AnsCQAJ/AkACQAJAIAEoAiAiESAETQRAIAMgBGoiECARayEKIAQgEUgEQCADIQIMAwsgECAGayEMIAH9AAQQIRUgAf0ABAAhFiABLQAlIQ0gAS0AJCEOIAZBBEkNASAGQQNxQQJrIRIgBSAGQXxxakECaiETIAMhAgNAAkAgAiAOav0AAAAgFv0jIAIgDWr9AAAAIBX9I/1O/WQiC0UNAANAIAUhByAGIQkgDCACIAtoIg9qIghJDQECQANAIAcoAAAgCCIUKAAARw0BIAhBBGohCCAHQQRqIQcgCUEEayIJQQNLDQALIAlBAUsEQCAHLwAAIAgvAABHDQEgFEEGaiEIIBIhCSATIQcLIAlFDQcgBy0AACAILQAARg0HCyALQQFrIAtxIgsNAAsLIAJBEGoiAiAKTQ0ACwwCCwJAIAQgBkkNACADIARqAkAgBkUEQAwBCyADIAZqIQQgAyEHA0AgBy0AACAIQQF0aiEIIAdBAWoiByAESQ0ACwsgASgCZCEEIAEoAmAhASAGayECIAMhBwNAAkAgASAIRw0AIAcgBSAGELsGRQ0AIAcgA2sMBgsgAiAHTQ0BIAYgB2otAAAgCCAEIActAABsa0EBdGohCCAHQQFqIQcMAAsAC0EAIQMMBAsCQCAGQQJPBEAgBkECRg0BIAMhAgNAAkAgAiAOav0AAAAgFv0jIAIgDWr9AAAAIBX9I/1O/WQiB0UNAANAIAwgAiAHaCIPaiIJSQ0BIAUvAAAgCS8AAEYEQCAFLQACIAktAAJGDQcLIAdBAWsgB3EiBw0ACwsgAkEQaiICIApNDQALDAILIAYEQCADIQIDQAJAIAIgDmr9AAAAIBb9IyACIA1q/QAAACAV/SP9Tv1kIgdFDQADQCAMIAIgB2giD2oiCUkNASAFLQAAIAktAABGDQYgB0EBayAHcSIHDQALCyACQRBqIgIgCk0NAAsMAgsgAyECA0AgAiAOav0AAAAgFv0jIAIgDWr9AAAAIBX9I/1O/WQiBwRAIAwgAiAHaCIPak8NBAsgAkEQaiICIApNDQALDAELIAMhAgNAAkAgAiAOav0AAAAgFv0jIAIgDWr9AAAAIBX9I/1O/WQiB0UNAANAIAwgAiAHaCIPaiIJSQ0BIAUvAAAgCS8AAEYNBCAHQQFrIAdxIgcNAAsLIAJBEGoiAiAKTQ0ACwtBACEDIAYgECACa0sgAiAQT3INAiAKIAEtACRq/QAAACAB/QAEAP0jIAogAS0AJWr9AAAAIAH9AAQQ/SP9Tv1kQX8gAiAKa3RxIgtFDQIgECAGayEBIAZBBEkhAgJAA0AgCiALaCISaiIHIAFLDQQgBiEJIAUhCAJAIAJFBEADQCAIKAAAIAcoAABHDQIgB0EEaiEHIAhBBGohCCAJQQRrIglBA0sNAAsLIAlBAUsEQCAILwAAIAcvAABHDQEgCUECayEJIAhBAmohCCAHQQJqIQcLIAlFDQIgCC0AACAHLQAARg0CCyALQQFrIAtxIgsNAAsMAwsgEiAEIBFragwBCyACIANrIA9qCyEHQQEhAwsgACAHNgIEIAAgAzYCAAv7CQIHfwR9IwBBsAFrIgUkAAJ/AkAgASgCCCIGIAJLBEAgASgCBCACQRhsaiIGQRFqLwAAIAZBE2otAAAiB0EQdHIiCEEIdiEJQwAAEEEgASoCSCABLQBYQQJGIgobIQ1DAABAwSABKgJEIAobIQwgCEH/AXEEQCAMIA0gDJNDAAB+Q5UgCEEBa0H/AXGzlJIQiQQhDgsgCUH/AXEEQCAMIA0gDJNDAAB+Q5UgCUEBa0H/AXGzlJIQiQQhDwsgBwR9IAwgDSAMk0MAAH5DlSAHQQFrQf8BcbOUkhCJBAVDAAAAAAshDCAOIA+UQ4/CzT8QtwohDSAOIAyUQ4/CzT8QtwohDiAPIAyUQ4/CzT8QtwogDSAOkpJDAABAQJVD5kAfPxC3CkPbD0lBlCEMIAZBDGovAQAiB0H//wFxRQRAIAdBEHQMAwsgB0H/B3EhBiAHQYCAAnEhCCAHQYD4AXEiB0GA+AFGBEAgCEEQdCIHQYCAgPwHciAGRQ0DGiAHIAZBDXRyQYCAgP4HcgwDCyAIQRB0IQggB0UNASAHQQ10QYCAgPwAcSAGQQ10ckGAgIDAA2ogCHIMAgsgAiAGQdy7xwAQjAcACyAGIAZnQRBrIgZB//8DcUEIanRB////A3EgCEGAgIDYA3IgBkEXdGtyCyEGIAVBCGogASgCECIJIAEoAhQiCiACEOcCIAwgBr6UIQ0CQAJ/AkACQCAFKAIsIgZBCU8EQCAFKAIMIgdFDQEgBUEANgIwIAVBADYCVCAFKAIQDAMLIAYNAQsgAEEBNgIoIAAgAjYCCCAAQQA2AgQgACANOAIADAILIAVBADYCMCAFQQA2AlQgBiEHIAVBDGoLIQggB0ECdCELIAVBiAFqIQdDAACA/yEMA0AgBUGEAWogASAIKAIAIAMgBBD3ASAFQeAAaiAHQQhq/QACAP0LAwAgBUHwAGogB0EYav0AAgD9CwMAIAUgBykCADcDWCAIQQRqIQggBSoChAEhDiAFQTBqIAVB2ABqEP8BIAwgDhDgCCEMIAtBBGsiCw0ACyADKAIIIQECQAJAAkACQAJAIAQgDJQgDV8EQCABIAJNDQEgAygCBCACakEBOgAACyABIAJNDQEgAygCBCACai0AAEUEQCAJIAogAkEEQQAQ1AIgACAMOAIAIABBJGogBUHQAGopAgA3AgAgAEEUaiAFQUBr/QACAP0LAgAgACAF/QACMP0LAgQMBgsgCSAKIAIgBSgCVCIIQQlJBH8gBUE0agUgBSgCNCIIQYCABE8NAyAFKAI4CyAIENQCIABBATYCKCAAIAI2AgggAEEANgIEIAAgDTgCACAFKAJUIgBBCUkNBSAFKAI4IgFBBGsoAgAiAkF4cSIDIABBAnQiAEEEQQggAkEDcSICG2pJDQMgAkEAIAMgAEEnaksbDQQgARCiAgwFCyACIAFB7OrBABCMBwALIAIgAUH86sEAEIwHAAtBjOvBAEEtQbzrwQAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsCQAJAIAZBCU8EQCAFKAIQIgBBBGsoAgAiAUF4cSICIAZBAnQiA0EEQQggAUEDcSIBG2pJDQEgAUEAIAIgA0EnaksbDQIgABCiAgsgBUGwAWokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC6UKAgZ/AX4jAEHgAGsiByQAIAAoAgQhCyAAKAIAIQggB0EANgIMAn8CQCAILQAQQQFHDQAgCCgCACEJAkACQAJAIAtFBEAgByAIQQxqrUKAgICAEIQ3A0AgCUEEaigCACEKIAkoAgAgB0EBNgIkIAdB8PjHADYCICAHQQE2AhwgB0ECNgIUIAdB4PjHADYCECAHIAdBQGsiDDYCGCAKIAdBEGoQwQMNAiAILQAQQQFHDQEgCCgCACEJIAdCgICAgKABNwNIIAcgB0EMaq1CgICAgMAFhDcDQCAJQQRqKAIAIQogCSgCACAHQQE2AiQgB0Go+McANgIgIAdBAjYCHCAHQQI2AhQgB0GM+ccANgIQIAcgDDYCGCAKIAdBEGoQwQMNAgwBCyAJKAIAQZz5xwBBBiAJQQRqKAIAKAIMEQAADQEgCC0AEEEBRw0AIAgoAgAhCSAHQoCAgIDQATcDSCAHQqD4x4CgATcDQCAJQQRqKAIAIQogCSgCACAHQQE2AiQgB0Go+McANgIgIAdBAjYCHCAHQQE2AhQgB0Gg+McANgIQIAcgB0FAazYCGCAKIAdBEGoQwQMNAQsCQAJAIAEoAgBBA0cEQEKAgICA0AUhDSAILQAQRQ0BIAdBMGogAUEgaikCADcDACAHQSBqIAFBEGr9AAIA/QsDACAHIAH9AAIA/QsDECAIKAIAIQEgByANIAdBEGqthDcDOCABQQRqKAIAIQkgASgCACAHQgE3AkwgB0EBNgJEIAdBoPjHADYCQCAHIAdBOGo2AkggCSAHQUBrEMEDRQ0CDAMLIAgoAgAiASgCAEGi+ccAQQkgAUEEaigCACgCDBEAAA0CDAELIAdBMGogAUEgaikCADcDACAHQSBqIAFBEGr9AAIA/QsDACAHIAH9AAIA/QsDECAIKAIAIQEgByANIAdBEGqthDcDOCABQQRqKAIAIQkgASgCACAHQQE2AlQgB0Gs+ccANgJQIAdBATYCTCAHQQE2AkQgB0Gg+McANgJAIAcgB0E4ajYCSCAJIAdBQGsQwQMNAQsgCCgCACIBKAIAQdz4xwBBASABKAIEKAIMEQAADQAgA0EBcUUgAigCAEECRnINAiAHIAQ2AlwCQCAILQAQQQFGBEAgCCgCACEBIAdCgICAgKABNwNIIAdCoPjHgKABNwNAIAFBBGooAgAhAyABKAIAIAdBATYCJCAHQaj4xwA2AiAgB0ECNgIcIAdBATYCFCAHQaD4xwA2AhAgByAHQUBrNgIYIAMgB0EQahDBAw0BCyAIKAIAIgEoAgBBwPjHAEEQIAFBBGooAgAoAgwRAAANACAIKAIEIAgoAgghAyAHQRxqIAJBCGooAgA2AgAgByAIKAIAIgQ2AhAgByACKQIANwIUIAQgB0EUaiADKAIQEQAADQAgCCgCACEBIAdCgICAgBAiDSAHQdwAaq2ENwNAIAFBBGooAgAhAiABKAIAIAdCATcCHCAHQQE2AhQgB0HU+McANgIQIAcgB0FAayIDNgIYIAIgB0EQahDBAw0AIAVBAXFFDQIgByAGNgI4IAgoAgAhASAHIA0gB0E4aq2ENwNAIAFBBGooAgAhAiABKAIAIAdCATcCHCAHQQE2AhQgB0HU+McANgIQIAcgAzYCGCACIAdBEGoQwQNFDQILQQEMAwtBAQwCC0EBIAgoAgAiAigCAEHc+McAQQEgAkEEaigCACgCDBEAAA0BGgsgACALQQFqNgIEQQALIAdB4ABqJAAL7gsCCH8FewJAAkACQCACIANPBEAgA0UNAiABIANqIQUgA0EPTQRAA0AgASAFTw0EIAVBAWsiBS0AAEEKRw0ADAMLAAsgBUEQayIE/QAAAP0MCgoKCgoKCgoKCgoKCgoKCiIM/SP9ZCIGBEAgBCAGZ0Efc2ohBQwCCwJAAkACQAJAAkAgA0HAAEkgAyAFQQ9xayIFQcAASXINAANAIAEgBWoiBEEwayIG/QAEACAM/SMiDSAEQUBqIgj9AAQAIAz9IyIO/VAgBEEgayIH/QAEACAM/SMiD/1QIARBEGsiBP0ABAAgDP0jIhD9UP1kRQRAIAVBQGoiBUFAa0GAAU8NAQwCCwsgEP1kIgUNAyAP/WQiBA0EIA39ZCIEDQEgCCAO/WRna0EfaiEFDAYLA0AgBUEPTARAQQAhByAFQQBKDQNBACEEDAkLIAEgBUEQayIFaiIE/QAAACAM/SP9ZCIGRQ0ACyAEIAZnQR9zaiEFDAULIAYgBGdBH3NqIQUMBAtBACEEIAH9AAAAIAz9I/1kIgVFDQUgASAFZ2tBH2ohBQwDCyAEIAVnQR9zaiEFDAILIAcgBGdBH3NqIQUMAQtBACADIAJB6JzGABDqBwALIAUgAWsiCUEBaiEHIAIgCUsEQCABIAdqIgogAU0EQEEAIQQMAwsgCUEOTQRAQQAhBAJAIAlBA0kEQCABIQUMAQsgASAHQRxxIgJqIQX9DAAAAAAAAAAAAAAAAAAAAAAhDCACIQQDQCAMIAH9XAAA/QwKCgoKCgoKCgoKCgoKCgoK/SMgDP0NAAAAAAEAAAACAAAAAwAAAP0MAQAAAAEAAAABAAAAAQAAAP1O/a4BIQwgAUEEaiEBIARBBGsiBA0ACyAMIAwgDP0NCAkKCwwNDg8AAQIDAAECA/2uASIMIAwgDP0NBAUGBwABAgMAAQIDAAECA/2uAf0bACEEIAIgB0YNBAsDQCAEIAUtAABBCkZqIQQgBUEBaiIFIApHDQALDAMLQQAhAgJAAkAgAUFwcUEQaiIEIAFBAWoiBiAEIAZLGyABayILQQRJBEAgASEGDAELIAEgC0F8cSIIaiEG/QwAAAAAAAAAAAAAAAAAAAAAIQwgCCECA0AgDCAB/VwAAP0MCgoKCgoKCgoKCgoKCgoKCv0jIAz9DQAAAAABAAAAAgAAAAMAAAD9DAEAAAABAAAAAQAAAAEAAAD9Tv2uASEMIAFBBGohASACQQRrIgINAAsgDCAMIAz9DQgJCgsMDQ4PAAECAwABAgP9rgEiDCAMIAz9DQQFBgcAAQIDAAECAwABAgP9rgH9GwAhAiAIIAtGDQELA0AgAiAGLQAAQQpGaiECIAZBAWoiBiAESQ0ACwsCQCAJQT9JDQAgBCAKQUBqIgFLDQADQCAE/QAEAP0MCgoKCgoKCgoKCgoKCgoKCiIM/SP9ZGkgAmogBEEQav0ABAAgDP0j/WRpaiAEQSBq/QAEACAM/SP9ZGlqIARBMGr9AAQAIAz9I/1kaWohAiAEQUBrIgQgAU0NAAsLIApBEGsiASAETwRAA0AgBP0AAAD9DAoKCgoKCgoKCgoKCgoKCgr9I/1kaSACaiECIARBEGoiBCABTQ0ACwtBACEGAkAgBCAKTw0AAkAgBSAEa0EBaiIJQQRJBEAgBCEBDAELIAQgCUF8cSIIaiEB/QwAAAAAAAAAAAAAAAAAAAAAIQwgCCEFA0AgDCAE/VwAAP0MCgoKCgoKCgoKCgoKCgoKCv0jIAz9DQAAAAABAAAAAgAAAAMAAAD9DAEAAAABAAAAAQAAAAEAAAD9Tv2uASEMIARBBGohBCAFQQRrIgUNAAsgDCAMIAz9DQgJCgsMDQ4PAAECAwABAgP9rgEiDCAMIAz9DQQFBgcAAQIDAAECAwABAgP9rgH9GwAhBiAIIAlGDQELA0AgBiABLQAAQQpGaiEGIAFBAWoiASAKRw0ACwsgAiAGaiEEDAILQQAgByACQdicxgAQ6gcACwsgACADIAdrNgIEIAAgBEEBajYCAAvFCQIJfwV9QwAAgD8hDgJ/AkAgASgCACIHIAJBBGooAgAiBEEIaigCACIFSQRAIAFBBGsiCSgCACEBIARBBGooAgAiCCAHQSRsaiIEEIoEIQwgBC8BFCIDQf//AXFFBEAgA0EQdAwDCyADQf8HcSEEIANBgIACcSEGIANBgPgBcSIDQYD4AUYEQCAGQRB0IQMgA0GAgID8B3IgBEUNAxogAyAEQQ10ckGAgID+B3IMAwsgBkEQdCEGIANFDQEgA0ENdEGAgID8AHEgBEENdHJBgICAwANqIAZyDAILIAcgBUHUwMcAEIwHAAsgBkGAgIDYA3IgBGdBEGsiA0EXdGsgBCADQf//A3FBCGp0Qf///wNxcgu+Ig1DAACAP14EQCANEMYFQ1T4LUCUQwAAgD+SkSEOC0MAAIA/IQ0CfwJAIAEgBUkEQCAIIAFBJGxqIgQQigQhDyAELwEUIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQQgA0GAgAJxIQUgA0GA+AFxIgNBgPgBRgRAIAVBEHQhAyADQYCAgPwHciAERQ0DGiADIARBDXRyQYCAgP4HcgwDCyAFQRB0IQUgA0UNASADQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogBXIMAgsgASAFQdTAxwAQjAcACyAFQYCAgNgDciAEZ0EQayIDQRd0ayAEIANB//8DcUEIanRB////A3FyC74iEEMAAIA/XgRAIBAQxgVDVPgtQJRDAACAP5KRIQ0LIAwgDJIgDpQiDCAMXCAMIA8gD5IgDZRgckUEQCACQQRqIQggB0EkbCEKA0ACQCAJIgJBBGogATYCACAAIAJGDQBDAACAPyEOAn8CQCAIKAIAIgRBCGooAgAiBSAHSwRAIAJBBGsiCSgCACEBIARBBGooAgAiCyAKaiIEEIoEIQwgBC8BFCIDQf//AXFFBEAgA0EQdAwDCyADQf8HcSEEIANBgIACcSEGIANBgPgBcSIDQYD4AUYEQCAGQRB0IQMgA0GAgID8B3IgBEUNAxogAyAEQQ10ckGAgID+B3IMAwsgBkEQdCEGIANFDQEgA0ENdEGAgID8AHEgBEENdHJBgICAwANqIAZyDAILIAcgBUHUwMcAEIwHAAsgBkGAgIDYA3IgBGdBEGsiA0EXdGsgBCADQf//A3FBCGp0Qf///wNxcgu+Ig1DAACAP14EQCANEMYFQ1T4LUCUQwAAgD+SkSEOC0MAAIA/IQ0CfwJAIAEgBUkEQCALIAFBJGxqIgQQigQhDyAELwEUIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQQgA0GAgAJxIQUgA0GA+AFxIgNBgPgBRgRAIAVBEHQhAyADQYCAgPwHciAERQ0DGiADIARBDXRyQYCAgP4HcgwDCyAFQRB0IQUgA0UNASADQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogBXIMAgsgASAFQdTAxwAQjAcACyAFQYCAgNgDciAEZ0EQayIDQRd0ayAEIANB//8DcUEIanRB////A3FyC74iEEMAAIA/XgRAIBAQxgVDVPgtQJRDAACAP5KRIQ0LIAwgDJIgDpQiDCAMXA0AIAwgDyAPkiANlGBFDQELCyACIAc2AgALC/YIAg9/AX0jAEEgayIIJAACQAJAAkACQAJAAkAgAC0AuAFBAUcNACAAKAKsASAAKAKwASIFQQJ0IAAoArQBIgYgBWpBAnQQ4QghBSAGQQJ0IgYgACgCZCIHSw0BIAAoAmAhByAIIAUQuAoiCTYCACAIIAY2AgQgBiAJRw0FIAUgByAGEOAJIAVBhAhJDQAgBRCbBwsgAEIANwKwASAAQbgBakEAOgAAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAEUNACAAKAIEIAFBAXQgASACakEBdBDhCCEJAkAgAkECdCIHIAAoAmQiBk0EQCAAIAc2AmQgAkEBdCEFIAAoAmAhAQwBCyAHIAYiBWsiCiAAKAJcIAVrSwRAIABB3ABqIAUgCkEEQQQQpAUgACgCZCEFCyAAKAJgIgEgBUECdCIMaiELIApBAk8EQCAHIAZBf3NqQQJ0IgcEQCALQQAgB/wLAAsgAkEEdCAGQQJ0ayABaiAMakEEayELIAUgCmpBAWshBQsgC0EANgIAIAAgBUEBaiIHNgJkIAJBAXQiBSAHSw0MCyAIIAkQuAoiBjYCACAIIAU2AgQgBSAGRw0OIAEgBSAJEOEJIAJBCWwhCiAEQQluQQlsIQsgBEEBa0EJbkEJbEEJaiEMIARBAmtBCW5BCWxBCWohDSAEQQNrQQluQQlsQQlqIQ4gBEEEa0EJbkEJbEEJaiEPIARBBWtBCW5BCWxBCWohECAEQQZrQQluQQlsQQlqIREgBEEHa0EJbkEJbEEJaiESIARBCGtBCW5BCWxBCWohE0MAAHxCIAAqApABlSEUQQAhBUEAIQADQCAFIAdPDQ0gBUEBaiICIAdPDQ4gACAMRg0KIAFBBGooAgAhAiADIAEoAgAiBkEZdEEZdbIgFJU4AgAgACANRg0JIANBBGogBkESdEEZdbIgFJU4AgAgACAORg0IIANBCGogBkELdEEZdbIgFJU4AgAgACAPRg0HIANBDGogBkEEdEEZdbIgFJU4AgAgACAQRg0GIANBEGogAkEddCAGQQN2ckEZdbIgFJU4AgAgACARRg0FIANBFGogAkEWdEEZdbIgFJU4AgAgACASRg0EIANBGGogAkEPdEEZdbIgFJU4AgAgACATRg0DIANBHGogAkEIdEEZdbIgFJU4AgAgACALRg0CIANBIGogAkEBdEEZdbIgFJU4AgAgAUEIaiEBIAVBAmohBSADQSRqIQMgCiAAQQlqIgBHDQALIAlBhAhJDQAgCRCbBwsgCEEgaiQADwsgAEEIaiEADAcLIABBB2ohAAwGCyAAQQZqIQAMBQsgAEEFaiEADAQLIABBBGohAAwDCyAAQQNqIQAMAgsgAEECaiEADAELIABBAWohAAsgACAEQbzTwAAQjAcAC0EAIAYgB0H868AAEOoHAAtBACAFIAdBzNPAABDqBwALIAUgB0Gc08AAEIwHAAsgAiAHQazTwAAQjAcACyAIQQA2AghBACAIIAhBBGogCEEIakHg+cQAEPUHAAvbCQIGfwR+IwBBwAFrIgIkAAJAAkACQCAAKQMAQgJSBEAgACgCqAEhASAAQQA2AqgBAkACQAJAAkAgAUEBaw4CAQIACyACQQhqIQMCQAJAQSUQcSIBRQ0AIAFBHWpBnZ3HACkAADcAACABQRBqQZCdxwD9AAAA/QsAACABQYCdxwD9AAAA/QsAAEEMEHEiBEUNACAEQSU2AgggBCABNgIEIARBJTYCAEEMEHEiAUUNACABQSg6AAggAUHsisEANgIEIAEgBDYCACADQQA2AhAgAyABrUIghkIDhDcDAAwBCwALDAILIAJBGGogAEHAAWopAwA3AwAgAiAA/QADsAH9CwMIDAELIAAoAqwBIgFBQGshAyABKAIkIQQgASgCICEFAkAgASkDGCIHQgJSBEAgASkDOCEIIAJBMGogAUEQaikDADcDACACQegAaiADQQhq/QADAP0LAwAgAkGoAWogAUGIAWr9AAMA/QsDACACQZgBaiABQfgAav0AAwD9CwMAIAJBuAFqIAFBmAFqKQMANwMAIAIgAf0AAwD9CwMgIAIgAf0AAyj9CwNIIAIgAykDADcDYCACIAH9AANY/QsDeCACIAH9AANo/QsDiAEgAkEYaiACQdAAaikDADcDACACIAQ2AkQgAiAFNgJAIAIgBzcDOCACIAg3A1ggAiAC/QADQP0LAwggAigCJCEEIAIoAiAhBSACQfgAahCEBQwBCyACQRhqIANBEGopAwA3AwAgAiAD/QADAP0LAwgLIAQEQCAFQQRrKAIAIgNBeHEiBkEEQQggA0EDcSIDGyAEakkNBCADQQAgBiAEQSdqSxsNBSAFEKICCyABQQRrKAIAIgRBeHFBvAFBwAEgBEEDcSIDG0kNAyADQQAgBEHgAU8bDQQgARCiAgsCQCACKAIYIgEEQCACKQMQIghQDQEgASkDCCEHIAEoAgQiBK0hCQNAAkAgByAEIAcgCSAHIAlUG6ciA2siBUKAwAAgCCAIQoDAAFobpyIGIAUgBkkbrSIKfCEHIAMgBEYNACAIIAp9IghCAFINAQsLIAEgBzcDCCAAEOoDDAMLIAItAAhBA0cNACACKAIMIgEoAgAhBCABQQRqKAIAIgMoAgAiBQRAIAQgBREDAAsgAygCBCIDBEAgBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAYgA0EnaksbDQUgBBCiAgsgAUEEaygCACIEQXhxIgNBEEEUIARBA3EiBBtJDQMgBEEAIANBNE8bDQQgARCiAgsgABDqAwwBCyAAKAKoAUECSQ0AAkAgACgCrAEiACkDGEICUQRAIAAoAiQiAUUNASAAKAIgIgRBBGsoAgAiA0F4cSIFQQRBCCADQQNxIgMbIAFqSQ0DIANBACAFIAFBJ2pLGw0EIAQQogIMAQsgACgCBCIBBEAgACgCACIEQQRrKAIAIgNBeHEiBUEEQQggA0EDcSIDGyABakkNAyADQQAgBSABQSdqSxsNBCAEEKICCyAAQdgAahCEBQsgAEEEaygCACIBQXhxQbwBQcABIAFBA3EiBBtJDQEgBEEAIAFB4AFPGw0CIAAQogILIAJBwAFqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvrCAIOfwF9IwBBEGsiBiQAAkACQCADQQNsIgdB/////wNLDQAgA0EMbCIEQf3///8HTw0AAkAgBEUEQEEEIQpBACEHDAELIAQQcSIKRQ0CCyAGQQA2AgwgBiAKNgIIIAYgBzYCBAJ/AkACQAJAAkACQCADBEAgASADQQF0Ig5qIQ8gASADQQJ0IhBqIRFBACEHIAMhDUEIIQsDQCACIAdNBEAgByEEDAQLIAdBAWogAk8NBCAGKAIEIQwCfyABIAdqIgRBAWotAABBCHQiCCAELQAAciIEQf//AXEEQCAEQf8HcSEEIAhBgIACcSEFIAhBgPgBcSIIQYD4AUcEQCAFQRB0IgUgCEENdEGAgID8AHEgBEENdHJBgICAwANqciAIDQIaIAVBgICA2ANyIARnQRBrIghBF3RrIAQgCEH//wNxQQhqdEH///8DcXIMAgsgBUEQdCIIIARBDXRyQYCAgP4HciAEDQEaIAhBgICA/AdyDAELIARBEHQLvhCJBCESIAkgDEYEQCAGQQRqQfzoxwAQ+gUgBigCCCEKCyAKIAtqQQhrIBI4AgAgBiAJQQFqIgg2AgwgByAOaiIEIAJPDQMgBEEBaiACTw0FIAYoAgQhDAJ/IAcgD2oiBEEBai0AAEEIdCIFIAQtAAByIgRB//8BcQRAIARB/wdxIQQgBUGAgAJxIQkgBUGA+AFxIgVBgPgBRwRAIAlBEHQiCSAFQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2pyIAUNAhogCUGAgIDYA3IgBGdBEGsiBUEXdGsgBCAFQf//A3FBCGp0Qf///wNxcgwCCyAJQRB0IgUgBEENdHJBgICA/gdyIAQNARogBUGAgID8B3IMAQsgBEEQdAu+EIkEIRIgCCAMRgRAIAZBBGpB/OjHABD6BSAGKAIIIQoLIAogC2pBBGsgEjgCACAGIAhBAWoiCDYCDCAHIBBqIgQgAk8NAiAEQQFqIAJPDQYgBigCBCEMAn8gByARaiIEQQFqLQAAQQh0IgUgBC0AAHIiBEH//wFxBEAgBEH/B3EhBCAFQYCAAnEhCSAFQYD4AXEiBUGA+AFHBEAgCUEQdCIJIAVBDXRBgICA/ABxIARBDXRyQYCAgMADanIgBQ0CGiAJQYCAgNgDciAEZ0EQayIFQRd0ayAEIAVB//8DcUEIanRB////A3FyDAILIAlBEHQiBSAEQQ10ckGAgID+B3IgBA0BGiAFQYCAgPwHcgwBCyAEQRB0C74QiQQhEiAIIAxGBEAgBkEEakH86McAEPoFIAYoAgghCgsgCiALaiASOAIAIAYgCEEBaiIJNgIMIAdBAmohByALQQxqIQsgDUEBayINDQALCyAAIAYpAgQ3AgAgAEEIaiAGQQxqKAIANgIAIAZBEGokAA8LIANBAnQgB2ohBAsgBCACQdzoxwAQjAcACyAHQQFqDAILIARBAWoMAQsgA0ECdCAHakEBagsgAkHs6McAEIwHAAtBzOjHABD/BwsAC/YIARN/IwBBEGsiByQAAkACQCADQQNsIgxB/////wNLDQAgA0EMbCIEQf3///8HTw0AAkAgBEUEQEEEIQoMAQsgDCELIAQQcSIKRQ0CCyAHQQA2AgwgByAKNgIIIAcgCzYCBAJAAkACQAJAAkAgAwRAIAIgA2siBEEAIAIgBE8bIQ0gAiAMayIEQQAgAiAETxshDiABIANqIQ8gASAMaiEQIAEgA0ECdCIRaiESIAEgA0EFbCITaiEUIAEgA0EBdCIVaiEWQQghCwNAIAIgBkYEQCAGIQQMBwsgBiAORg0FAn8gBiAQai0AAEEIdCIFIAEgBmotAAByIgRB//8BcQRAIARB/wdxIQQgBUGAgAJxIQggBUGA+AFxIgVBgPgBRwRAIAhBEHQhCCAFQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogCHIgBQ0CGiAIQYCAgNgDciAEZ0EQayIFQRd0ayAEIAVB//8DcUEIanRB////A3FyDAILIAhBEHQhBSAEQQ10IAVyQYCAgP4HciAEDQEaIAVBgICA/AdyDAELIARBEHQLIQQgBygCBCAJRgRAIAdBBGpBvOrHABD6BSAHKAIIIQoLIAogC2pBCGsgBDYCACAHIAlBAWoiCTYCDCAGIA1GDQMgBiARaiACTw0CAn8gBiASai0AAEEIdCIFIAYgD2otAAByIgRB//8BcQRAIARB/wdxIQQgBUGAgAJxIQggBUGA+AFxIgVBgPgBRwRAIAhBEHQhCCAFQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogCHIgBQ0CGiAIQYCAgNgDciAEZ0EQayIFQRd0ayAEIAVB//8DcUEIanRB////A3FyDAILIAhBEHQhBSAEQQ10IAVyQYCAgP4HciAEDQEaIAVBgICA/AdyDAELIARBEHQLIQQgBygCBCAJRgRAIAdBBGpBvOrHABD6BSAHKAIIIQoLIAogC2pBBGsgBDYCACAHIAlBAWoiCTYCDCAGIBVqIgQgAk8NBiAGIBNqIAJPDQQCfyAGIBRqLQAAQQh0IgUgBiAWai0AAHIiBEH//wFxBEAgBEH/B3EhBCAFQYCAAnEhCCAFQYD4AXEiBUGA+AFHBEAgCEEQdCEIIAVBDXRBgICA/ABxIARBDXRyQYCAgMADaiAIciAFDQIaIAhBgICA2ANyIARnQRBrIgVBF3RrIAQgBUH//wNxQQhqdEH///8DcXIMAgsgCEEQdCEFIARBDXQgBXJBgICA/gdyIAQNARogBUGAgID8B3IMAQsgBEEQdAshBCAHKAIEIAlGBEAgB0EEakG86scAEPoFIAcoAgghCgsgCiALaiAENgIAIAcgCUEBaiIJNgIMIAtBDGohCyADIAZBAWoiBkcNAAsLIAAgBykCBDcCACAAQQhqIAdBDGooAgA2AgAgB0EQaiQADwsgA0ECdCAGaiEEDAMLIAMgBmohBAwCCyADQQVsIAZqIQQMAQsgBiAMaiEECyAEIAJBzOrHABCMBwALQazqxwAQ/wcLAAuYCQINfwF+IwBB8ABrIgIkAEEIIQQgASgCBCEFIAFBBEEkIAEoAiQiA0EISyIGG2pBADYCACACQRhqIAFBCGr9AAIA/QsDACACQShqIAFBGGr9AAIA/QsDACACQQA2AjggAiAFIAMgBhsiCDYCPCACIAEpAgA3AxAgAEEkaiELAkACQAJAAkACQAJAIAggACgCJCIBQQggAUEISyIGGyAAKAIEIAEgBhsiBmtLBEACQAJAIAYgCGoiASAGSQ0AQX8gAUEBa2d2QQAgAUECTxsiAUF/Rg0AIAJBCGogACABQQFqEOgDIAIoAggiAUGBgICAeEYNASABDQMLQdiVxwBBEUHUzMcAEOsHAAsgCygCACEBCyAAQQRqIgYhDCALIQkgAUEJTwRAIAAoAgghDCAGIQkgASEECwJAAkACQAJAIAQgCSgCACIFTQRAIAUhBAwBCyACKAIYIQogAigCNCIOQQhNBEAgAkEQakEEciEDIAUgBGshDSAMIAVBAnRqIQdBACEBA0AgASAIRg0DIAIgAUEBaiIBNgI4IAcgAygCADYCACADQQRqIQMgB0EEaiEHIAEgDWoNAAsMAQsgCEUNA0EAIQECQCAEQQFrIg0gBWsiBCAIQQFrIgMgAyAESxsiBEEESQ0AIAVBAnQgDGoiAyAKa0EQSQ0AIAohByAEQQFqIgEgAUEDcSIBQQQgARtrIgEhBANAIAMgB/0AAgD9CwIAIAdBEGohByADQRBqIQMgBEEEayIEDQALIAEgBWohBQsgDCAFQQJ0aiEDIAogAUECdGohBwNAAkAgAyAHKAIANgIAIAVBAWohBCABQQFqIQEgBSANRg0AIANBBGohAyAHQQRqIQcgBCEFIAEgCEcNAQwECwsgAiABNgI4CyAJIAQ2AgAgAkHoAGogAkE4aikDACIPNwMAIAJB4ABqIAJBMGopAwA3AwAgAkHQAGogAkEgav0AAwD9CwMAIAIgAv0AAxD9CwNAIA+nIgEgAigCbEcEQCACQUBrQQRyIQQDQCACIAFBAWo2AmggBCEDIAIoAmRBCU8EfyACKAJIBSADCyABQQJ0aigCACEJAn8gCygCACIHQQlJBEAgByEBIAYhBUEIIQcgCwwBCyAAKAIEIQEgACgCCCEFIAYLIQMgASAHRgR/IAAQzQYgACgCCCEFIAYhAyAAKAIEBSABC0ECdCAFaiAJNgIAIAMgAygCAEEBajYCACACKAJoIgEgAigCbEcNAAsLIAIoAmQiAUEJSQ0IIAIoAkgiA0EEaygCACIAQXhxIgYgAUECdCIBQQRBCCAAQQNxIgAbakkNBCAAQQAgBiABQSdqSxsNBSADEKICDAgLIAEgBWohBAsgCSAENgIAIA5BCUkNBgsgCkEEaygCACIAQXhxIgYgDkECdCIBQQRBCCAAQQNxIgAbakkNAyAAQQAgBiABQSdqSxsNBCAKEKICDAULAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyACQfAAaiQAC6YNAwZ/BHsCfSABKgIAIRMgACoCACESAkACQAJAAkACQAJAAkACQEGACBBxIg1FDQAgEyASk/0TIQ8gEv0TIRD9DAAAAAABAAAAAgAAAAMAAAAhDgNAIAggDWoiCiAQIA8gDv37Af0MAAB/QwAAf0MAAH9DAAB/Q/3nAf3mAf3kAf0Mu26QPrtukD67bpA+u26QPv3mAf0MAAAAPwAAAD8AAAA/AAAAP/3kAf0LAgAgCkEQaiAQIA8gDv0MBAAAAAQAAAAEAAAABAAAAP2uAf37Af0MAAB/QwAAf0MAAH9DAAB/Q/3nAf3mAf3kAf0Mu26QPrtukD67bpA+u26QPv3mAf0MAAAAPwAAAD8AAAA/AAAAP/3kAf0LAgAgDv0MCAAAAAgAAAAIAAAACAAAAP2uASEOIAhBIGoiCEGACEcNAAsgASoCBCAAKgIEIRJBgAgQcSIKRQ0AIBKT/RMhDyAS/RMhEP0MAAAAAAEAAAACAAAAAwAAACEOQQAhCANAIAggCmoiCyAQIA8gDv37Af0MAAB/QwAAf0MAAH9DAAB/Q/3nAf3mAf3kAf0Mu26QPrtukD67bpA+u26QPv3mAf0MAAAAPwAAAD8AAAA/AAAAP/3kAf0LAgAgC0EQaiAQIA8gDv0MBAAAAAQAAAAEAAAABAAAAP2uAf37Af0MAAB/QwAAf0MAAH9DAAB/Q/3nAf3mAf3kAf0Mu26QPrtukD67bpA+u26QPv3mAf0MAAAAPwAAAD8AAAA/AAAAP/3kAf0LAgAgDv0MCAAAAAgAAAAIAAAACAAAAP2uASEOIAhBIGoiCEGACEcNAAsgASoCCCAAKgIIIRJBgAgQcSILRQ0AIBKT/RMhDyAS/RMhEP0MAAAAAAEAAAACAAAAAwAAACEOQQAhCANAIAggC2oiDCAQIA8gDv37Af0MAAB/QwAAf0MAAH9DAAB/Q/3nAf3mAf3kAf0Mu26QPrtukD67bpA+u26QPv3mAf0MAAAAPwAAAD8AAAA/AAAAP/3kAf0LAgAgDEEQaiAQIA8gDv0MBAAAAAQAAAAEAAAABAAAAP2uAf37Af0MAAB/QwAAf0MAAH9DAAB/Q/3nAf3mAf3kAf0Mu26QPrtukD67bpA+u26QPv3mAf0MAAAAPwAAAD8AAAA/AAAAP/3kAf0LAgAgDv0MCAAAAAgAAAAIAAAACAAAAP2uASEOIAhBIGoiCEGACEcNAAsgASoCDCAAKgIMIRJBgAgQcSIBRQ0AIBKT/RMhECAS/RMhEf0MAAAAAAEAAAACAAAAAwAAACEOQQAhCANAIAEgCGr9DAAAgD8AAIA/AACAPwAAgD/9DAAAgD8AAIA/AACAPwAAgD8gESAQIA79+wH9DAAAf0MAAH9DAAB/QwAAf0P95wH95gH95AH94QEiD/0fABCJBP0TIA/9HwEQiQT9IAEgD/0fAhCJBP0gAiAP/R8DEIkE/SAD/eQB/ecB/QsCACAO/QwEAAAABAAAAAQAAAAEAAAA/a4BIQ4gCEEQaiIIQYAIRw0ACyAHRQ0HQQAhAEEAIQgDQCADIAhNBEAgCCADQZDwxwAQjAcACyAAIAVPDQIgBCANIAIgCGoiDC0AAEECdGoqAgA4AgAgCEEBaiIJIANPDQMgAEEBaiIJIAVPDQQgBEEEaiAKIAxBAWotAABBAnRqKgIAOAIAIAhBAmoiCSADTw0FIABBAmoiCSAFTw0GIARBCGogCyAMQQJqLQAAQQJ0aioCADgCACAIQQNqIgkgA08NByAGIAhqIAEgDEEDai0AAEECdGoqAgA4AgAgBEEMaiEEIABBA2ohACAIQQRqIQggB0EBayIHDQALDAcLAAsgACAFQaDwxwAQjAcACyAJIANBsPDHABCMBwALIAkgBUHA8McAEIwHAAsgCSADQdDwxwAQjAcACyAJIAVB4PDHABCMBwALIAkgA0Hw8McAEIwHAAsCQCABQQRrKAIAIgBBeHFBhAhBiAggAEEDcSICG08EQAJAIAJBACAAQagITxsNAiABEKICIAtBBGsoAgAiAEF4cUGECEGICCAAQQNxIgEbSQ0AIAFBACAAQagITxsNAiALEKICIApBBGsoAgAiAEF4cUGECEGICCAAQQNxIgEbSQ0AIAFBACAAQagITxsNAiAKEKICIA1BBGsoAgAiAEF4cUGECEGICCAAQQNxIgEbSQ0AIAFBACAAQagITxsNAiANEKICDwsLQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC7kJAgh/AX4jAEFAaiIFJAACQCAAAn8CQAJAAkAgASgCFCIEIAEoAhAiAkkEQCABKAIMIQkCfgJAA0AgBCAJai0AACIIQQlrIgNBF0tBASADdEGTgIAEcUVyDQEgASAEQQFqIgQ2AhQgAiAERw0ACyACIQRCAAwBC0KAAgsgCK1CEIaEQoCCuANRDQELIAVBEGogASgCDCIGIAIgAiAESwR/A0AgBCAGai0AACIIQQlrIgNBF0tBASADdEGTgIAEcUVyDQMgASAEQQFqIgQ2AhQgAiAERw0ACyACBSAEC0EBaiIBIAIgASACSRsQ+QEgBSgCFCEDIAUoAhAhAUEUEHEiAkUNBCACIAE2AgwgAkEFNgIAIAIgAzYCECAAIAI2AgQMAgsgASAEQQFqIgY2AhQCQAJAAkAgAiAGTQ0AIAEgBEECaiIDNgIUIAYgCWotAABB9QBHDQEgAyAGIAIgAiAGSRsiBkYNACABIARBA2oiCDYCFCADIAlqLQAAQewARwRAIAghAwwCCyAGIAhGDQAgASAEQQRqIgM2AhQgCCAJai0AAEHsAEcNASAAQQI6AAFBAAwFCyAFIAkgAiAGEPkBIAUoAgQhBiAFKAIAIQFBFBBxIgRFDQUgBEEFNgIADAELIAVBCGogCSACIAMQ+QEgBSgCDCEGIAUoAgghAUEUEHEiBEUNBCAEQQk2AgALIAQgATYCDCAAIAQ2AgQgBCAGNgIQDAELAkAgCEHmAGsiAwRAIANBDkcEQCAAIAEgBUE/akGMhsEAEO4BIAEQ6wU2AgQMAwsgASAEQQFqIgc2AhQCQCACIAdNDQAgASAEQQJqIgM2AhQgBiAHai0AAEHyAEcNAiADIAcgAiACIAdJGyIHRg0AIAEgBEEDaiIINgIUIAMgBmotAABB9QBHBEAgCCEDDAMLIAcgCEYNACABIARBBGoiAzYCFCAGIAhqLQAAQeUARw0CIABBAToAAUEADAQLIAVBGGogBiACIAcQ+QEgBSgCHCEDIAUoAhghAUEUEHEiAkUNBCACIAE2AgwgAkEFNgIAIAIgAzYCECAAIAI2AgQMAgsgASAEQQFqIgc2AhQCQAJAIAIgB00NACABIARBAmoiAzYCFCAGIAdqLQAAQeEARw0BIAMgByACIAIgB0kbIgdGDQAgASAEQQNqIgk2AhQgAyAGai0AAEHsAEcEQCAJIQMMAgsgByAJRg0AIAEgBEEEaiIINgIUIAYgCWotAABB8wBHBEAgCCEDDAILIAcgCEYNACABIARBBWoiAzYCFCAGIAhqLQAAQeUARw0BIABBADoAAUEADAQLIAVBKGogBiACIAcQ+QEgBSgCLCEDIAUoAighAUEUEHEiAkUNBCACIAE2AgwgAkEFNgIAIAIgAzYCECAAIAI2AgQMAgsgBUEwaiAGIAIgAxD5ASAFKAI0IQMgBSgCMCEBQRQQcSICRQ0DIAIgATYCDCACQQk2AgAgAiADNgIQIAAgAjYCBAwBCyAFQSBqIAYgAiADEPkBIAUoAiQhAyAFKAIgIQFBFBBxIgJFDQIgAiABNgIMIAJBCTYCACACIAM2AhAgACACNgIEC0EBCzoAACAFQUBrJAAPCwALvRMBCX8jAEEgayIHJAACQAJAAkADQAJAIAEoAgghAyABEM8FAkACQCABKAIIIgQgASgCBCIGRwRAIAQgBk8NASABKAIAIgggBGotAAAiBUHcAEcEQCAFQSJHBEAgASAEQQFqNgIIIAdBEDYCFCAAIAEgB0EUahDyBgwJCwJAAkACQCACKAIIIgUEQCADIARLDQIgBCADayIGIAIoAgAgBWtLBEAgAiAFIAYQ+AUgAigCCCEFCyACKAIEIQkgBgRAIAUgCWogAyAIaiAG/AoAAAsgASAEQQFqNgIIIAIgBSAGaiICNgIIIAdBCGogCSACEPsCIAcoAggNASAHKAIQIQMgBygCDCEBDAsLAkAgAyAETQRAIAEgBEEBajYCCCAHQQhqIAMgCGogBCADaxD7AiAHKAIIRQRAIAcoAhAhAyAHKAIMIQEMDAsgB0EPNgIUIAcgASAHQRRqEPUGIAcoAgAiAUUNASAHKAIEIQMMCwsgAyAEIAZBqJzGABDqBwALIAAgBygCBDYCBCAAQQI2AgAMCwsgB0EPNgIUIAcgASAHQRRqEPUGIAcoAgAiAUUNASAHKAIEIQMMCQsgAyAEIAZBuJzGABDqBwALIAAgBygCBDYCBCAAQQI2AgAMCAsCQCADIARNBEAgBCADayIJIAIoAgAgAigCCCIKa0sEQCACIAogCRD4BSACKAIIIQoLIAIoAgQhBSAJBEAgBSAKaiADIAhqIAn8CgAACyABIARBAWoiCzYCCCACIAkgCmoiAzYCCAJAAkACQAJAAkACQAJAAkACQAJAAn8gBiALSwRAIAEgBEECajYCCCAIIAtqLQAADAELIAdBBDYCFCAHQQhqIAEgB0EUahDzBiAHLQAIDQwgBy0ACQtB/wFxQSJrDlQCAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAABQAAAAYAAAAAAAAABwAAAAgACQEACyAHQQw2AhQgASAHQRRqEIsHIQMMDgsjAEEgayIEJAACQAJAAkAgASgCBCIDIAEoAggiBk8EQAJAIAMgBmtBA00EQCABIAM2AgggBEEENgIUIARBDGogASAEQRRqEPQGIAMhBQwBCyABIAZBBGoiBTYCCCABKAIAIAZqIgYtAAFBAXQvAYiURiAGLQAAQQF0LwGImEZywUEIdCAGLQACQQF0LgGImEZyIAYtAANBAXQuAYiURnIiBkEATgRAIARBADsBDCAEIAY7AQ4MAQsgBEEMNgIUIARBDGogASAEQRRqEPQGCyAELwEMQQFGBEAgBCgCECEDDAQLIAQvAQ4iBkGA+ANxQYC4A0YNASAGQYDIAGpB//8DcUGA+ANPBEAgASgCACEJAn8gAyAFSwRAIAUgCWotAAAMAQsgBEEENgIUIARBDGogASAEQRRqEPMGIAQtAAxBAUYEQCAEKAIQIQMMBgsgBC0ADQsgASAFQQFqIgg2AghB3ABGBEACfyADIAhLBEAgCCAJai0AAAwBCyAEQQQ2AhQgBEEMaiABIARBFGoQ8wYgBC0ADEEBRgRAIAQoAhAhAwwHCyAELQANCyAFQQJqIQhB9QBGBEAgAyAISQ0FAkAgAyAIa0EDTQRAIAEgAzYCCCAEQQQ2AhQgBEEMaiABIARBFGoQ9AYMAQsgASAFQQZqNgIIIAggCWoiAy0AAUEBdC8BiJRGIAMtAABBAXQvAYiYRnLBQQh0IAMtAAJBAXQuAYiYRnIgAy0AA0EBdC4BiJRGciIDQQBOBEAgBEEAOwEMIAQgAzsBDgwBCyAEQQw2AhQgBEEMaiABIARBFGoQ9AYLIAQvAQxBAUYEQCAEKAIQIQMMBwsgBC8BDiIFQYBAa0H//wNxQYD4A08EQCAFQYDIAGpB//8DcSAGQYDQAGpB//8DcUEKdHIiCEGAgARqIQYgAigCACACKAIIIgNrQQNNBEAgAiADQQQQ+AUgAigCCCEDCyACIANBBGo2AgggAigCBCADaiIDIAZBEnZB8AFyOgAAIANBA2ogBUE/cUGAAXI6AAAgAyAIQQZ2QT9xQYABcjoAAiADIAZBDHZBP3FBgAFyOgABQQAhAwwHCyAEQRQ2AhQgASAEQRRqEIsHIQMMBgsgASAINgIIIARBFzYCFCABIARBFGoQiwchAwwFCyAEQRc2AhQgASAEQRRqEIsHIQMMBAsgBkGAAU8EQCACKAIAIAIoAggiA2tBA00EQCACIANBBBD4BSACKAIIIQMLIAIoAgQgA2ohBQJ/IAZBgBBJBEAgBkEGdkFAciEIQQIMAQsgBSAGQQZ2QT9xQYABcjoAASAGQQx2QWByIQhBAwshCSAFIAg6AAAgAiADIAlqNgIIIAUgCWpBAWsgBkE/cUGAAXI6AABBACEDDAQLIAIoAggiAyACKAIARgRAIAJB+JPGABCnBgsgAiADQQFqNgIIIAIoAgQgA2ogBjoAAEEAIQMMAwsgBiADIANByKXGABDqBwALIARBFDYCFCABIARBFGoQiwchAwwBCyAIIAMgA0HIpcYAEOoHAAsgBEEgaiQAIANFDQ4MDQsgAigCACADRgRAIAJB+JLGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQSI6AAAMCwsgAigCACADRgRAIAJBiJPGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQdwAOgAADAoLIAIoAgAgA0YEQCACQZiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEvOgAADAkLIAIoAgAgA0YEQCACQaiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEIOgAADAgLIAIoAgAgA0YEQCACQbiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEMOgAADAcLIAIoAgAgA0YEQCACQciTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEKOgAADAYLIAIoAgAgA0YEQCACQdiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakENOgAADAULIAIoAgAgA0YEQCACQeiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEJOgAADAQLIAMgBCAGQcicxgAQ6gcACyAHKAIMIQMMAwsgB0EENgIUIAAgASAHQRRqEPIGDAYLIAQgBkGYnMYAEIwHAAsMAQsLIABBAjYCACAAIAM2AgQMAgsgACADNgIIIAAgATYCBCAAQQA2AgAMAQsgACADNgIIIAAgATYCBCAAQQE2AgALIAdBIGokAAvFBwEEfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOBQECAw0EAAsgAC0ABEEDRw0MIAAoAggiAygCACEAIANBBGooAgAiASgCACICBEAgACACEQMACyABKAIEIgEEQCAAQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyABakkNDyACQQAgBCABQSdqSxsNDiAAEKICCyADQQRrKAIAIgBBeHEiAUEQQRQgAEEDcSIAG0kNDiAARSABQTRJcg0LDA0LAkAgAC0ABEEBaw4C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gICAgIAEhDcDECADQgE3AiQgA0EBNgIcIANBoPjHADYCGCADIANBEGo2AiAgA0EEaiADQRhqEOwDQYCAgIB4IQYgAygCCCEFIAMoAgQhBCADNQIMIQpBACEHQRELIQAgAyAKNwMgIAMgBTYCHCADIAg6ABkgAyAAOgAYIANBGGogASACENAFIQACQAJAAkACQAJAIAlFBEAgByAERXINBgwBCyAGBEAgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBmpJDQIgAUEAIAIgBkEnaksbDQMgBRCiAgsgBEUgB3INBQsgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBGpJDQIgAUEAIAIgBEEnaksbDQMgBRCiAgwEC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIANBMGokACAAC+YFAQN/IwBBIGsiAyQAIAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAQ4oAgEBAQEBAQEBAwUBAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQgBAQEBBwALIAFB3ABGDQULIAJBAXFFIAFB/wVNcg0HIAEQ5QRFDQcgA0EOakEAOgAAIANBADsBDCADIAFBFHYtANy2RToADyADIAFBBHZBD3EtANy2RToAEyADIAFBCHZBD3EtANy2RToAEiADIAFBDHZBD3EtANy2RToAESADIAFBEHZBD3EtANy2RToAECABQQFyZ0ECdiICIANBDGoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgAkECayICakHcADoAACADQRRqIgQgAUEPcS0A3LZFOgAAIAAgAykBDDcAACADQf0AOgAVDAgLIABCADcBAiAAQdzgADsBAAwKCyAAQgA3AQIgAEHc6AE7AQAMCQsgAEIANwECIABB3OQBOwEADAgLIABCADcBAiAAQdzcATsBAAwHCyAAQgA3AQIgAEHcuAE7AQAMBgsgAkGAAnFFDQEgAEIANwECIABB3M4AOwEADAULIAJB////B3FBgIAETw0DCyABEOECDQEgA0EYakEAOgAAIANBADsBFiADIAFBFHYtANy2RToAGSADIAFBBHZBD3EtANy2RToAHSADIAFBCHZBD3EtANy2RToA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IAMgAUEDdGoiAiAFNgIEIAIgCjgCACABDQBBACECDAELIAogClsEQANAIAMgAUEBayIGQQF2IgJBA3RqIgcqAgAiCyALWyAKIAtfRXFBfyAKIAtgGyIEQQBMIAUgB0EEaigCAE0gBBsEQCABIQIMAwsgAyABQQN0aiAHKQIANwIAIAIhASAGQQFLDQAMAgsACwNAAkAgAyABQQFrIgRBAXYiAkEDdGoiBioCACILIAtbIAogC19FcQ0AIAUgBkEEaigCAEsNACABIQIMAgsgAyABQQN0aiAGKQIANwIAIAIhASAEQQJPDQALCyADIAJBA3RqIgEgBTYCBCABIAo4AgALIAAgCTYCCCAAIA04AgQgAEEBNgIAC4kGAQV/IwBBIGsiAiQAQQEhBAJAAkACQAJAAkACQEEBIAAoAgAiA0H/////B2ogA0GAgICAeE0bQQFrDgQBAgMEAAsgASgCACIDQcSjxwBBAiABKAIEIgYoAgwiBREAAA0EIABBBGohAAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAURAAANBiAAIAEQrgINBiABKAIAIQMgASgCBCgCDCEFDAELIANB24HCAEECIAURAAANBSACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqEK4CDQUgAigCEEHZgcIAQQIgAigCFCgCDBEAAA0FCyADQd6OyABBASAFEQAAIQQMBAsgASgCACIDQcajxwBBDiABKAIEIgYoAgwiBREAAA0DAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0FIAAoAgQgACgCCCABELUCRQ0BDAULIANB24HCAEECIAURAAANBCACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACgCBCAAKAIIIAJBEGoQtQINBCACQdmBwgBBAhCvAw0ECyADQd6OyABBASAFEQAAIQQMAwsgASgCACIDQdSjxwBBEiABKAIEIgYoAgwiBREAAA0CAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0EIAAoAgQgACgCCCABELUCRQ0BDAQLIANB24HCAEECIAURAAANAyACQQE6AA8gAiAGNgIEIAIg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AkACQAJAAkACQAJAQRUgASgCACIDQYCAgIB4cyADQQBOG0EBaw4IAQIDBAUGBwgACyABIAJBH2pB6OfAABCVCCEBIABBAToAACAAIAE2AgQMCAsgAEEAOgAAIAAgAS0ABDoAAQwHCyABLwEEIgFB/wFNBEAgACABOgABIABBADoAAAwHCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwGCyABKAIEIgFB/wFNBEAgACABOgABIABBADoAAAwGCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwFCyABKQMIIgRC/wFYBEAgACAEPAABIABBADoAAAwFCyACQQE6AAggAiAENwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAEsAAQiAUEASARAIAJBAjoACCACIAGsNwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAAgAToAASAAQQA6AAAMAwsgAS8BBCIBQYACTwRAIAJBAjoACCACIAGtwzcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwDCyAAIAE6AAEgAEEAOgAADAILIAEoAgQiAUGAAk8EQCACQQI6AAggAiABrDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwCCyAAIAE6AAEgAEEAOgAADAELIAACfyABKQMIIgRCgAJaBEAgAkECOgAIIAIgBDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEQQEMAQsgACAEPAABQQALOgAACyACQSBqJAALxgQCBn8DfgJAIAEoAgBBAUYEQCABKQMQIgpQBEAMAgsgASgCGCIGKAIAIAYpAwgiCyAGKAIEIgWtIgwgCyAMVBunaiEHAkAgBUL/////DyALIAtC/////w9aG6drIgRBACAEIAVNGyIFIAogA60iDCAKIAxUG6ciBCAEIAVLGyIEQQFGBEAgAiAHLQAAOgAADAELIARFDQAgAiAHIAT8CgAACyABIAogBK0iCn03AxAgBiAKIAt8NwMIIARFBEBBACEEDAILQQEgBGshCCADQQFrIQYgASgCJCEJIAEoAiAhByABKAIoIQMDQAJAIAIgAi0AACADQQNy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KCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahDUASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2AjggAUEBNgIsIAFBqKPBADYCKCABQgQ3AjAgAUEoahCSByEDCyABQdAAaiQAIAML0wQCB38BfiMAQdAAayIBJAACQCAAEFwiAw0AIAAoAtwEIgJBgYCAgHhGIgRFBEACQAJAIAJBgICAgHhGBEBBACAAIAQbIQUgACgCCCIGQQZ0IQMgACgCBCIHQTxqIQICQANAIAIhBCADRQ0BIANBQGohAyACQUBrIQIgBC0AAEEBRw0ACyAEQTxrIgIoAjggAigCICIERw0DIAQgACgC7AJHDQMLIAZBBnQhAyAHQTxqIQIDQCACIQQgA0UNAiADQUBqIQMgAkFAayECIAQtAABBAkcNAAsgBEE8ayICKAI4IAIoAiBGDQEgAUECNgIsIAFBiKPBADYCKCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahCjASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2Ajgg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rgQCBX8EfiMAQSBrIgIkAEEEIQMgASgCBCIErSEIIAECfgJAIARC/////w8gASkDCCIHIAdC/////w9aG6drIgZBACAEIAZPG0EETwRAIAEoAgAgByAIIAcgCFQbp2ooAAAhBQwBC0GokMgAKQMAIglCCIghCiAJpyEDIAggCUL/AYNCBFINARoLIAdCBHwLIgk3AwgCQCADQf8BcUEERwRAIABBEmogAkEWai8BADsBACACIAOtQv8BgyAKQgiGhDcCDCACQQRqIAJBDWotAAAiAToAACAAIAIpAQ43AQogAiACKAAJIgM2AgAgAEEJaiABOgAAIAAgAzYABSAAQQA6AAQgAEEBNgIADAELIAJBCGpBAXIgBRCYBCACQRxqIAJBDWotAAA6AAAgAiACKAAJIgM2AgAgAiADNgIYAkACQCAEIAkgCCAIIAlWG6ciA2tBBE8EQCABKAIAIANqKAAAIQRBBCEDQgAhBwwBC0EAIQRBqJDIACkDACIKQgiIIQcgCqchAyAKQv8Bg0IEUg0BCyAJQgR8IQgLIAEgCDcDCCADQf8BcUEERwRAIAAgAzoACCAAQQA6AAQgAEEBNgIAIAAgB6ciATsACSAAIAdCGIg+AgwgAEELaiABQRB2OgAADAELIAAgAigCGDYAECAAQQA2AgAgACAErTcDCCAAQRRqIAJBHGotAAA6AAAgAEF/IAQgBEEBcWoiACAAIARJG603AxgLIAJBIGokAAvdBAIHfwF+IwBBEGsiAyQAAkAgAC8BDCICRQRAIAAoAgAgACgCBCABEKEDIQEMAQsgAyAB/QACAP0LAwACQAJ/IAApAggiCaciB0GAgIAIcUUEQCADKAIEDAELIAAoAgAgAygCACADKAIEIgEgACgCBCgCDBEAAA0BIAAgB0GAgID/eXFBsICAgAJyIgc2AgggA0IBNwMAIAIgAUH//wNxayIBQQAgASACTRshAkEACyEIAkAgAygCDCIFRQRADAELIAMoAgghAQNAAn8CQAJAAkACQCABLwEAQQFrDgIBAgALIAFBBGooAgAMAwsgAUECai8BACIEDQFBAQwCCyABQQhqKAIADAELIARB9v8XaiAEQZz/H2pxIARBmPg3aiAEQfCxH2pxc0ERdkEBagsgAUEMaiEBIAZqIQYgBUEBayIFDQALCwJAIAYgCGoiASACQf//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IAEoAiAiAiABKAIcIgFGDQELIAEgB2ohCCACIAFrIQMLIAAgAzYCBCAAIAg2AgAgBkEQaiQAC70DAgZ/AX4jAEHQAGsiAiQAIAJBIGogACAAKAIAKAIEEQEAIAIgAkEwaq1CgICAgLABhDcDKCACIAIpAyA3AjAgASgCACEFIAEoAgQhBiACQgE3AkRBASEDIAJBATYCPCACQaD4xwA2AjggAiACQShqNgJAAkAgBSAGIAJBOGoQwQMNACABLQAKQYABcUUEQEEAIQMMAQsgAkEYaiAAIAAoAgAoAgQRAQAgAkEQaiACKAIYIAIoAhwoAhgRAQAgAigCECIERQRAQQAhAwwBCyACQQhqIAQgAigCFCIHKAIYEQEAIAIoAgwhACACKAIIIQEgAiAHNgIsIAIgBDYCKCACQQE2AjwgAkGA8cEANgI4IAJCATcCRCACIAJBKGqtQoCAgICwAYQiCDcDMCACIAJBMGo2AkAgBSAGIAJBOGoQngkNAANAIAFFBEBBACEDDAILIAIgASAAKAIYEQEAIAIoAgQgAigCACACIAA2AiwgAiABNgIoIAJBATYCPCACQYDxwQA2AjggAkIBNwJEIAIgCDcDMCACIAJBMGo2AkAhASEAIAUgBiACQThqEJ4JRQ0ACwsgAkHQAGokACADC5QDACAAIARqIQACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQf8BcUEBaw4HBwABAgMEBQYLIABBfU0gAEECaiIBIANNcQ0HIAAgASADQbTZxwAQ6gcACyAAQX1NIABBAmoiASADTXENByAAIAEgA0HE2ccAEOoHAAsgAEF7TSAAQQRqIgEgA01xDQcgACABIANB1NnHABDqBwALIABBe00gAEEEaiIBIANNcQ0HIAAgASADQeTZxwAQ6gcACyAAQXtNIABBBGoiASADTXENByAAIAEgA0H02ccAEOoHAAsgAEF3TSAAQQhqIgEgA01xDQcgACABIANBhNrHABDqBwALIAAgA0kNCCAAIANBlNnHABCMBwALIAAgA0kNBiAAIANBpNnHABCMBwALIAAgAmouAACyDwsgACACai8AALMPCyAAIAJqKAAAsg8LIAAgAmooAACzDwsgACACaioAAA8LIAAgAmorAAC2DwsgACACai0AALNDAAB/Q5UPCyAAIAJqLAAA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AAs2AgAgBUEgaiQAC4QDAgJ/AXsCQAJAIARBBE8EQCACIARBBGtBA24iBSACIAVJGyIFQQNNDQEgAiAFQQFqIgIgAkEDcSICQQQgAhtrIgZrIQIgASAGaiAEIAZBfWxqIQQgAyAGQQNsaiEHA0AgAyAAIAH9XAAA/YkB/akBIgj9GwBBAnRqKAAANgAAIANBA2ogACAI/RsBQQJ0aigAADYAACADQQZqIAAgCP0bAkECdGooAAA2AAAgA0EJaiAAIAj9GwNBAnRqKAAANgAAIAFBBGohASADQQxqIQMgBkEEayIGDQALIQEgByEDDAELIAQNAQ8LA0AgAkUEQEEAQQBBpJrFABCMBwALIAMgACABLQAAQQJ0aigAADYAACADQQNqIQMgAkEBayECIAFBAWohASAEQQNrIgRBA0sNAAsLAkAgAgRAIARBA0cNASADIAAgAS0AAEECdGoiAC8AADsAACADQQJqIABBAmotAAA6AAAPC0EAQQBBhJrFABCMBwALQQBBAyAEQZSaxQAQ6gcAC4EDAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB/wFxQQFrDgcHAAECAwQFBgsgA0F9TSADQQJqIgAgAk1xDQcgAyAAIAJBtNjHABDqBwALIANBfU0gA0ECaiIAIAJNcQ0HIAMgACACQcTYxwAQ6gcACyADQXtNIANBBGoiACACTXENByADIAAgAkHU2McAEOoHAAsgA0F7TSADQQRqIgAgAk1xDQcgAyAAIAJB5NjHABDqBwALIANBe00gA0EEaiIAIAJNcQ0HIAMgACACQfTYxwAQ6gcACyADQXdNIANBCGoiACACTXENByADIAAgAkGE2ccAEOoHAAsgAiADTQ0HIAEgA2osAACyDwsgAiADSw0HIAMgAkGk2McAEIwHAAsgASADai4AALIPCyABIANqLwAAsw8LIAEgA2ooAACyDwsgASADaigAALMPCyABIANqKgAADwsgASADaisAALYPCyADIAJBlNjHABCMBwALIAEgA2otAACzC58DAgF+CH8CQAJAAkACQAJAIAAoAgQiBEUNACAAKAIMIggEQCAAKAIAIgJBCGohAyACKQMAQn+FQoCBgoSIkKDAgH+DIQEDQCABUARAA0AgAkGABGshAiADKQMAIANBCGohA0KAgYKEiJCgwIB/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jOrHABCMBwALQezpxwAQ/wcLAAucAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH/AXFBAWsOBwUAAQICAgMECyADQX1NIANBAmoiACACTXENBSADIAAgAkG02scAEOoHAAsgA0F9TSADQQJqIgAgAk1xDQUgAyAAIAJBxNrHABDqBwALIANBe00gA0EEaiIAIAJNcQ0FIAMgACACQdTaxwAQ6gcACyADQXdNIANBCGoiACACTXENBSADIAAgAkHk2scAEOoHAAsgAiADTQ0FIAEgA2osAAAPCyACIANLDQUgAyACQaTaxwAQjAcACyABIANqLgAADwsgASADai8AAA8LIAEgA2ooAAAPCyABIANqKwAA/AMPCyADIAJBlNrHABCMBwALIAEgA2otAAALzQIBBH8jAEEgayIEJAAgASgCDCEFAkAgAAJ/AkACQAJAIAEoAhQiAiABKAIQIgNJBEADQAJAIAIgBWotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgASACQQFqIgI2AhQgAiADRw0ACyADIQILIARBEGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAhQhASAEKAIQIQNBFBBxIgJFDQQgAkEDNgIADAELIARBCGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAgwhASAEKAIIIQNBFBBxIgJFDQMgAkEGNgIACyACIAM2AgwgAiABNgIQQQEMAQsgASACQQFqNgIUIARBGGogARCVAyAEKAIcIQIgBCgCGAs2AgAgACACNgIEIARBIGokAA8LAAu2AgEBfyMAQUBqIgMkACADIAI2AhAgAyABNgIMIAACfwJAAkACQAJAAkACQAJAIAJBA2sOBwAFAQIFBQMFCyABQZDQxwBBAxDbB0UEQCAAQQA6AAFBAAwHCyABQaD3xwBBAxDbBw0DIABBAToAAUEADAYLIAFBo/fHAEEFENsHDQMgAEECOgABQQAMBQsgAUGo98cAQQYQ2wcNAiAAQQM6AAFBAAwECyABQa73xwBBCRDbBw0BIABBBDoAAUEADAMLIAFBt/fHAEEDENsHRQ0BCyADQQE2AiQgA0HQ98cANgIgIANCATcCLCADIANBDGqtQoCAgIAghDcDOCADIANBOGo2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AEGUgICAeEYEQAJAIAACfyADKAIMIgQEQCACIAMoAggQqAMgAigCACIBQYCAgIB4Rw0CIAIoAgQMAQtBACACQQ9qQYTiwAAQ2wYLNgIEIABBgICAgHg2AgAMBAsgAigCBCEDIARBAUYNAiACQQE2AgAgBEEBa0H/////AHFBAWogAkHolcEAENsGIQQgAEGAgICAeDYCACAAIAQ2AgQgAUUNAyADIAFBARCiBwwDCyADIAJBD2pBhOLAABCVCCEBIABBgICAgHg2AgAgACABNgIEDAILQcvawABBLEH42sAAEKsHAAsgACACKAIINgIIIAAgAzYCBCAAIAE2AgALIAJBEGokAAupAgEFfyMAQSBrIgIkAEEBIQMCQCAAKAIAIgQoAgBBAUYEQCABKAIAIgBBw5jIAEEEIAEoAgQiBigCDCIFEQAADQEgBEEIaiEEAkAgAS0ACkGAAXFFBEAgAEG7s8UAQQEgBREAAA0DIAQgARDEBQ0DIAEoAgAhACABKAIEKAIMIQUMAQsgAEHbgcIAQQIgBREAAA0CIAJBAToADyACIAY2AgQgAiAANgIAIAJB4IHCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECAEIAJBEGoQxAUNAiACKAIQQdmBwgBBAiACKAIUKAIMEQAADQILIABB3o7IAEEBIAURAAAhAwwBCyABKAIAQb+YyABBBCABKAIEKAIMEQAAIQMLIAJBIGokACADC5ECAQN/IwBBQGoiASQAAkAgABA9IgINACAALQClU0UEQCABQQA2AjggAUEBNgIsIAFB5KPBADYCKCABQgQ3AjAgAUEoahCSByECDAELIAAoAmRBgICAgHhHBEBBACECIAAtAJgBIgNBCUYNASADQQVGBEAgACgCkAFFDQILIAFBAjYCLCABQZykwQA2AiggAUICNwI0IAEgAEGQAWqtQoCAgIAQhDcDICABIABBmAFqrUKAgICAsASENwMYIAEgAUEYajYCMCABQQxqIgAgAUEoahCxBiAAEI4HIQIMAQsgAUEANgI4IAFBATYCLCABQcCkwQA2AiggAUIENwIwIAFBKGoQkgchAgsgAUFAayQAIAILkgIBA38jAEFAaiIBJAACQCAAED4iAg0AIAAtAMVTRQRAIAFBADYCOCABQQE2AiwgAUHko8EANgIoIAFCBDcC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BEAgACgCtAIgA2ogASAC/AoAAAsgACACIANqNgK4AiAAELgBC1gBAX8gACgC2AIgACgC4AIiA2sgAkkEQCAAQdgCaiADIAJBAUEBEKQFIAAoAuACIQMLIAIEQCAAKALcAiADaiABIAL8CgAACyAAIAIgA2o2AuACIAAQsQELWAEBfyAAKAL4AiAAKAKAAyIDayACSQRAIABB+AJqIAMgAkEBQQEQpAUgACgCgAMhAwsgAgRAIAAoAvwCIANqIAEgAvwKAAALIAAgAiADajYCgAMgABCfAQtXAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEASAAEEELVwEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAEgABBAC1IBAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaCAAED4LUQEBfyAAKAJAIAAoAkgiA2sgAkkEQCAAQUBrIAMgAkEBQQEQpAUgACgCSCEDCyACBEAgACgCRCADaiABIAL8CgAACyAAIAIgA2o2AkggABA9C1ABA38CQAJAIAAEQCAAQQhrIgEgASgCACICQQFqIgM2AgAgA0UNASAAKAIAQf////8HTw0CIAAoAhggASACNgIAQQBHDwsQjgoLAAsQkAoAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcDAxAAgAEEBakHQwMQAIABBAmpB4MDEACACQQxqQfDAxAAQ7gUgAkEQaiQAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcioxwAgAEEBakHYqMcAIABBAmpB6KjHACACQQxqQfioxwAQ7gUgAkEQaiQAC08BAX8gACgCQCAAKAJIIgNrIAJJBEAgAEFAayADIAJBAUEBEKQFIAAoAkghAwsgAgRAIAAoAkQgA2ogASAC/AoAAAsgACACIANqNgJIQQALVQEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAFBAAtVAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEAUEAC1ABAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaEEAC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBqJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFB4J7BADYCACABIAIpAgg3AgQgASAANgIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBxJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC00AIwBBEGsiACQAIAEgAmwiAQR/IAFBwf///wdPBEBB2ObIAEErIABBD2pBtIPJAEHUg8kAEOAGAAtBwAAgARDBBAVBAAsgAEEQaiQAC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFBtLTHADYCACABIAIpAgg3AgQgASAAOgAcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFB7LTHADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1cBAn8jAEEgayIBJAACQCAAEJ8BIgINAEEAIQIgAC0AnAMNACABQQA2AhggAUEBNgIMIAFBxKPBADYCCCABQgQ3AhAgAUEIahCSByECCyABQSBqJAAgAgtXAQJ/IwBBIGsiASQAAkAgABCxASICDQBBACECIAAtAPwCDQAgAUEANgIYIAFBATYCDCABQcSjwQA2AgggAUIENwIQIAFBCGoQ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QeAAaiQADAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAmKAIAICYoAgQgJigCCCAmQRBqJAALTQEBfwJ/AkAgAigCBEUNACACKAIIIgNFDQAgAigCACADQQEgARC7AgwBCyABEHELIQIgACABNgIIIAAgAkEBIAIbNgIEIAAgAkU2AgALSwIBfwJ+IwBBEGsiASQAIAEgADUCiAEgADUChAF+QgRCAyAALQCTARsQ3QYgASkDCCECIAEpAwAhAyABQRBqJABCfyADIAJCAFIbC08AAkACQCACKAIQQQFGBEAgASgChAEgAigCFEsNAQsgAigCGEEBRw0BIAEoAogBIAIoAhxNDQELIABCAjcDCCAAQQM2AgAPCyAAQQY2AgALUAEBfyMAQRBrIgIkACACQQhqIAEgASgCACgCBBEBACACIAIoAgggAigCDCgCGBEBACACKAIEIQEgACACKAIANgIAIAAgATYCBCACQRBqJAALSAEBfyAAKAIAIAAoAggiA2sgAkkEQCAAIAMgAhD3BSAAKAIIIQMLIAIEQCAAKAIEIANqIAEgAvwKAAALIAAgAiADajYCCEEAC0gBAX8gACgCACAAKAIIIgNrIAJJBEAgACADIAIQ+AUgACgCCCEDCyACBEAgACgCBCADaiABIAL8CgAACyAAIAIgA2o2AghBAAtIAQF/IAAoAgAgACgCCCIDayACSQRAIAAgAyACEO8FIAAoAgghAwsgAgRAIAAoAgQgA2ogASAC/AoAAAsgACACIANqNgIIQQALRQEBfwJAIAFBAE4EfyABRQRAQQEhAkEAIQEMAgsgARBxIgINAUEBBSACCyABQcDowQAQkwkACyAAIAI2AgQgACABNgIAC08BAn8gACgCBCECIAAoAgAhAwJAIAAoAggiAC0AAEUNACADQbyLwwBBBCACKAIMEQAARQ0AQQEPCyAAIAFBCkY6AAAgAyABIAIoAhARAgALSgECfyAAIAAoAgQiAyACazYCBCAAIAAoAgAgAiADS3IiBDYCAEEBIQMgBAR/IAMFIAAoAggiACgCACABIAIgACgCBCgCDBEAAAsLSAEBfwJAIAFB4QBrIgFB/wFxQRlLBEBBACEBDAELIAFBAnRB/AdxIgIoAtSQSSEBIAIoAuyPSSECCyAAIAI2AgQgACABNgIAC0kCAn8BfSABKAIIIgNBgICAAXEhAiAAKgIAIQQgA0GAgICAAXFFBEAgASAEIAJBAEdBABD3Ag8LIAEgBCACQQBHIAEvAQ4QvQILRwECfyAALQANIgJBgAFNBEAgASgCACAAIAAtAAwiA2ogAiADayABKAIEKAIMEQAADwsgASgCACAAKAIAIAEoAgQoAhARAgALyQIAAkAgACACTQRAIAAgAU0gASACS3INASMAQTBrIgIkACACIAE2AgQgAiAANgIAIAJBAjYCDCACQfydwgA2AgggAkICNwIUIAIgAkEEaq1CgICAgBCENwMoIAIgAq1CgICAgBCENwMgIAIgAkEgajYCECACQQhqIAMQjQgACyMAQTBrIgEkACABIAI2AgQgASAANgIAIAFBAjYCDCABQaidwgA2AgggAUICNwIUIAEgAUEEaq1CgICAgBCENwMoIAEgAa1CgICAgBCENwMgIAEgAUEgajYCECABQQhqIAMQjQgACyMAQTBrIgAkACAAIAI2AgQgACABNgIAIABBAjYCDCAAQcidwgA2AgggAEICNwIUIAAgAEEEaq1CgICAgBCENwMoIAAgAK1CgICAgBCENwMgIAAgAEEgajYCECAAQQhqIAMQjQgAC0IBAX8jAEEgayIDJAAgA0EANgIQIANBATYCBCADQgQ3AgggAyABNgIcIAMgADYCGCADIANBGGo2AgAgAyACEI0IAAuJDQMHfwV+AXwgASgCCCIDQYCAgAFxIQIgACsDACEOIANBgICAgAFxRQRAIAJBAEchA0EAIQIjAEGAAWsiACQAIA69IQkCf0EDIA6ZRAAAAAAAAPB/YQ0AGkECIAlCgICAgICAgPj/AIMiCkKAgICAgICA+P8AUQ0AGiAJQv////////8HgyINQoCAgICAgIAIhCAJQgGGQv7///////8PgyAJQjSIp0H/D3EiAhsiC0IBgyEMIApQBEBBBCANUA0BGiACQbMIayECQgEhCiAMUAwBC0KAgICAgICAICALQgGGIAtCgICAgICAgAhRIgUbIQtCAkIBIAUbIQpBy3dBzHcgBRsgAmohAiAMUAshBSAAIAI7AXggACAKNwNwIABCATcDaCAAIAs3A2AgACAFOgB6An8CQAJAAkACQCAFQf8BcSICQQFNBEBB6rPFAEEBIAlCAFMiAhshBUHqs8UAQciBwgAg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AnQiACgCwKFJIAAoAqShSSABKAIEKAIMEQAAC+0DAQp/IwBBEGsiAyQAIwBBoANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIEIAQoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAUEIaiAAQQRqQQAQdgJ/IAEoAggiCUECRgRAIAEoAgwhAiABQQA2ApgDIAFCgICAgBA3ApADIAFBnJPBADYC0AEgAUKggICADjcC1AEgASABQZADajYCzAEgAiABQcwBahCvBA0FIAEoApADIQUgASgClAMiCCABKAKYAxDsCCEHIAUEQCAIQQRrKAIAIgZBeHEiCkEEQQggBkEDcSIGGyAFakkNByAGQQAgCiAFQSdqSxsNCCAIEKICCyACIAIoAgAoAgARAwBBAAwBCyABQcwBaiICIAFBCGpBxAH8CgAAIAIQ0QELIQIgACAAKAIAQQFrNgIAIAQgBCgCAEEBayIANgIAIABFBEAgBBDkBgsgAyAHNgIEIAMgAjYCACADIAlBAkY2AgggAUGgA2okAAwGCxCOCgsACxCQCgALQaCexgBBNyABQZ8DakG0k8EAQdiexgAQ4AYAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgAygCACADKAIEIAMoAgggA0EQaiQAC5oFAQp/IwBBEGsiAyQAIwBBsANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIFIAUoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAC0AXCICQQJHBEAgAUEgaiAAQdgAaigCADYCACABQRhqIABB0ABqKQIANwMAIAFBBmogAEHfAGotAAA6AAAgASAA/QACQP0LAwggASAALwBdOwEECyABQfgBaiABQSBqKAIANgIAIAFB8AFqIAFBGGopAwA3AwAgAUH/AWogAUEGai0AADoAACABIAH9AAMI/QsD4AEgASACOgD8ASABIAEvAQQ7AP0BIAFBJGogAEEEakEAIAFB4AFqIgQQcgJ/IAEoAiQiCUECRgRAIAEoAighAiABQQA2AqgDIAFCgICAgBA3AqADIAFBnJPBADYC5AEgAUKggICADjcC6AEgASABQaADajYC4AEgAiAEEK8EDQUgASgCoAMhBCAB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CxCQCgALLAAgASgCACAAKAIALQAAaEECdCIAKAL0h0kgACgC4IdJIAEoAgQoAgwRAAALLAAgASgCACAAKAIALQAAaEECdCIAKAKEjkkgACgC8I1JIAEoAgQoAgwRAAALLgAgAEEcakEAIAEpAgBC2v2W/+no6PrBAIUgASkCCELW+4aRyMDiv/4AhYRQGwssACAAQRxqQQAgASkCAELtwsSbx9P/rT+FIAEpAghC/J7N1v6Dwrh+hYRQGwsuACAAQRxqQQAgASkCAELtuq22zYXU9eMAhSABKQIIQviCmb2V7sbFuX+FhFAbCywAIABBHGpBACABKQIAQvep0+7yobOVe4UgASkCCEKWuaPa9sSH1CeFhFAbCysAIAEoAgAgACgCAC0AAEECdCIAKALohkkgACgCqIZJIAEoAgQoAgwRAAALKQAgASgCACAALQAAaEECdCIAKAKciEkgACgCiIhJIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAqiJSSAAKALoiEkgASgCBCgCDBEAAAslACAARQRAQa35xABBMhCPCgALIAAgAiADIAQgBSABKAIQEQ8ACysAIAEoAgAgACgCAC0AAEECdCIAKALUjUkgACgCuI1JIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAtiOSSAAKAKYjkkgASgCBCgCDBEAAAsrACABKAIAIAAoAgAtAABBAnQiACgC0JFJIAAoAryRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQp6ptofpq8f75ACFIAEpAghChJXY5rmb/qdphYRQGwsrACABKAIAIAAoAgAtAABBAnQiACgC+JFJIAAoAuSRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQvXXvMnIzNazOoUgASkCCEL+28ub8+W5xvUAhYRQGwsuACAAQSBqQQAgASkCAELhypSvjYKC2fIAhSABKQIIQqbKhrK+ypOwu3+FhFAbCy0AIABBHGpBACABKQIAQpLXooDhkqzi9QCFIAEpAghClJ2A4Jq0sLALhYRQGwslACAAQYiWwQA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAK87EEgACgClOxBIAEoAgQoAgwRAAALKAAgASgCACAALQAAQQJ0IgAoAtDtQSAAKAKc7UEgASgCBCgCDBEAAAshACAAQcDOxAA2AgQgACABQQRqQQAgAS0AAEEkRhs2AgALKAAgASgCACAALQAAQQJ0IgAoAsyISSAAKAKwiEkgASgCBCgCDBEAAAsoACABKAIAIAAtAABBAnQiACgCsIpJIAAoAuiJSSABKAIEKAIMEQAACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQsACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWUACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWcACygAIAEoAgAgAC0AAEECdCIAKALwmEkgACgCqJhJIAEoAgQoAgwRAAALIgAgASgCKEECRwRAIAAgASkC3AI3AwAPC0GsmMcAEN0JAAslACAAQailxwA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAKEo0kgACgC3KFJIAEoAgQoAgwRAAALJwAgACgCAC0AAEUEQCABQfKzxQBBBRCXAw8LIAFB97PFAEEEEJcDCyQAIAAtAABFBEAgAUHys8UAQQUQlwMPCyABQfezxQBBBBCXAwshACAARQRAQa35xABBMhCPCgALIAAgAiADIAEoAhARBQALIQAgAEUEQEGt+cQAQTIQjwoACyAAIAIgAyABKAIQEQAACyEAIAEoAgAgAC0AAEECdCgCiOxBQQEgASgCBCgCDBEAAAsiACABIAAtAABBAnQiACgCiIZJIAAoAuiFSSACKAIMEQAACx4AIABBwM7EADYCBCAAQQAgAUEEaiABLQAAGzYCAAscACABIAAoAgAiAEEEaigCACAAQQhqKAIAEJcDCx8AIABFBEBBrfnEAEEyEI8KAAsgACACIAEoAhARAgALthQBEn8Q2gQiCyABJgECfyAAIQ0Q2gQiEiACJgEgCyETIwBBQGoiByQAIAsQuAohAEHUtMkAKAIARQRAAkBBkLXJACgCACELQYy1yQAoAgAhBEGMtckAQoCAgIDAADcCAEGEtckAKAIAIQhBhLXJAEIE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ACgCACEHIA1BACADEOEIIgAQuAohCSAEIAM2AhggBCAJNgIMIAMgCUcNASAAIAcgAxDgCSAAQYQISQ0CIAAQmwcMAgtBACADIABB3OvAABDqBwALDAELIAhBhAhPBEAgCBCbBwtBrLTJAEGstMkAKAIAQQFqNgIAIA1BhAhPBEAgDRCbBwsgDkGECE8EQCAOEJsHCyAEQUBrJAAgAwwBCyAEQQA2AihBACAEQQxqIARBGGogBEEoakHg+cQAEPUHAAsLHAAgAEEEahDqAiAAKAIkIgAgACgCACgCABEDAAscACAAKAIAIgAoAgAgASAAQQRqKAIAKAIQEQIACxwAIAAoAgAiACgCACABIABBBGooAgAoAgwRAgALFAAgACAAIAEgACABXRsgASABXBsLFAAgASABIAAgACABXRsgACAAXBsLGwEBbyAAJQEgASACEAAhAxDaBCIAIAMmASAACxsBAW8gACUBIAElARAJIQIQ2gQiACACJgEgAAscAQFvIAAlASABJQEgARCbByACJQEgAhCbBxALCx8AQYi7yQAtAABFBEBBiLvJAEEBOgAACyAAQQE2AgALHQAgASAALQAAQQJ0IgAoAqSESSAAKAKQhEkQlwMLHAAgASgCACAAKAIAIAAoAgQgASgCBCgCDBEAAAsZACABIAAoAgAiACgCACAAQQRqKAIAEJcDCxkBAW8gACUBIAEQDCECENoEIgAgAiYBIAALFwAgACgCACABIAAoAgRBDGooAgARAgALFQAgACgCACIAQYQITwRAIAAQmwcLCxcBAW8gACABEA8hAhDaBCIAIAImASAACxcBAW8gACABECwhAhDaBCIAIAImASAACxYAIAEgACgCACIAKAIAIAAoAgQQlwMLGQAgASgCAEGQl8cAQRMgASgCBCgCDBEAAAsZACABKAIAQdmXxwBBFyABKAIEKAIMEQAACxkAIAEoAgBB6ZLGAEEIIAEoAgQoAgwRAAALGQAgASgCAEGjl8cAQRAgASgCBCgCDBEAAAsZACABKAIAQaTlwABBFCABKAIEKAIMEQAACxkAIAEoAgBB5ZLGAEEEIAEoAgQoAgwRAAALGQAgASgCAEGilscAQQwgASgCBCgCDBEAAAsZACABKAIAQYWQxgBBAyABKAIEKAIMEQAACxkAIAEoAgBB8JfHAEEUIAEoAgQoAgwR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AgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOQGCwwDCxCOCgsACxCQCgALC4gBAQN/ENoEIgMgASYBAkACQAJAIAAEQCAAQQhrIgIgAigCAEEBaiIENgIAIARFDQEgACgCAA0CIABBfzYCACAAQQhqKAIAIABBDGooAgAgAxCtAyAAIAAoAgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOMGCwwDCxCOCgsACxCQCgALCxEAIAEgACgCACAAKAIEEJcDCxMAIABBKDYCBCAAQZifxwA2AgALEQAgASAAKAIEIAAoAggQlwMLEwAgAEHomsEANgIEIAAgATYCAAsTACAAQaSbwQA2AgQgACABNgIACxMAIABB4JvBADYCBCAAIAE2AgALEwAgAEGMnMEANgIEIAAgATYCAAsTACAAQcicwQA2AgQgACABNgIACxMAIABBhJ3BADYCBCAAIAE2AgALEwAgAEHAncEANgIEIAAgATYCAAsTACAAQfydwQA2AgQgACABNgIACxEAIAAoAgQgACgCCCABELUCCxEAIAEoAgAgASgCBCAAEMEDCxwAIABBmLvP7AM2AgggAELQ5+byk+vFmz83AgALEQAgACgCACAAKAIEIAEQtQILEwAgAEHMs8cANgIEIAAgATYCAAsTACAAQdyxxwA2AgQgACABNgIACxMAIABBiLTHADYCBCAAIAE2AgALEwAgAEHUsscANgIEIAAgATYCAAsTACAAQZiyxwA2AgQgACABNgIACxMAIABBkLPHADYCBCAAIAE2AgALEwAgAEG8jMgANgIEIAAgATYCAAsWAEG4u8kAIAA2AgBBtLvJAEEBOgAACxEBAX8Q2gQiASAAJQEmASABCw4AIAAlASABJQFBABAWCw8AQayewgBBKyAAEOsHAAtpAQF/IwBBMGsiAyQAIAMgADYCBCADIAE2AgAgA0EDNgIMIANB+JvCADYCCCADQgI3AhQgAyADQQRqrUKAgICAEIQ3AyggAyADrUKAgICAEIQ3AyAgAyADQSBqNgIQIANBCGogAhCNCAALEgAgACABLQDoBC0A+J1JOgAACwwAIAAlASABIAIQAgsMACAAIAEgAiUBEAMLDQAgACUBIAElARAIGgsMACAAIAEgAiUBEBkLEQAgAEGohsEA/QACAP0LAgALEQAgAEG4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IAEgAEGAgIB8IApBAWp1IAdxvpMiAJK8BSAJC0GAgH5xviICQwByMT+UIgUgAkOMvr81lCABIAIgAJOTQxhyMT+UkiICkiIAIAAgACAAIACUIgEgASABIAEgAUNMuzEzlEMO6t21kpRDVbOKOJKUQ2ELNruSlEOrqio+kpSTIgGUIAFDAAAAwJKVIAIgACAFk5MiASAAIAGUkpOTQwAAgD+SIgC8IAhBF3RqIglBgICABE4EQCAJvgwBCyAAIAgQsAYLlCECCyACDAMLIAVDYEKiDZRDYEKiDZQMAgsgBUNgQqINlENgQqINlAwBCyAFQ8rySXGUQ8rySXGUCwsIACAAJQEQAQsIACAAJQEQCgsIACAAJQEQFQsIACAAJQEQFwsIACAAJQEQGwsIACAALQDoBAsHABAqEIUICwQAQQALBABBAQsCAAsLtK4JiAEAQYCAwAAL8WFpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdAAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvc3B6LnJzAGxpYnJhcnkvY29yZS9zcmMvc3RyL2xvc3N5LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9wbHkucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL2xlZ2FjeS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL2l0ZXIvYWRhcHRlcnMvc3RlcF9ieS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvdHdvd2F5LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvaW5mbGF0ZS93aW5kb3cucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy95dXYucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZmx0MmRlYy9zdHJhdGVneS9ncmlzdS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc2hhcmVkL3NtYWxsc29ydC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL3F1aWNrc29ydC5ycwBzcGFyay13b3JrZXItcnMvc3JjL3NvcnQucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvYm94ZWQvY29udmVydC5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9mbXQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9mbXQucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZGl5X2Zsb2F0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy90c3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2tzcGxhdC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvYW50aXNwbGF0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9nc3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2NzcGxhdC5ycwBzcGFyay13b3JrZXItcnMvc3JjL2V4dF9zcGxhdHMucnMAc3Bhcmstd29ya2VyLXJzL3NyYy9wYWNrZWRfc3BsYXRzLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvZmRlZmxhdGUtMC4zLjcvc3JjL2RlY29tcHJlc3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzcy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2NvcmUtMS4wLjIyOC9zcmMvZGUvaW1wbHMucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL3NvZ3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlL2luZnRyZWVzLnJzAGxpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9tdXRleC9ub190aHJlYWRzLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9vbmNlL25vX3RocmVhZHMucnMAbGlicmFyeS9hbGxvYy9zcmMvc3RyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaXRlci90cmFpdHMvaXRlcmF0b3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9lcnJvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZXJyb3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2xvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9nZW5lcmljL3BhY2tlZHBhaXIucnMAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9tZW1jaHIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb29wX2ZpbHRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2luZmxhdGUvd3JpdGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaXRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2luZGV4bWFwLTIuMTMuMC9zcmMvaW5uZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9vdXRwdXRfYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci91bmZpbHRlcmluZ19idWZmZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9pbWFnZXMvYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci9yZWFkX2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy92cDhfYXJpdGhtZXRpY19kZWNvZGVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvY29kZWNzL3dlYnAvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL3JlYWQvbWFnaWNfZmluZGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvY21wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9leHRyYV9maWVsZHMvZXh0ZW5kZWRfdGltZXN0YW1wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvbWV0YWRhdGEvY2ljcC5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vc3RkaW8ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2NvbW1vbi5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL29wcy9mdW5jdGlvbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL3N0cmF0ZWd5L2RyYWdvbi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ZkZWZsYXRlLTAuMy43L3NyYy9odWZmbWFuLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvaHVmZm1hbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9iaWdudW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzc190cmFuc2Zvcm0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3RyYW5zZm9ybS5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vYnVmZmVyZWQvbGluZXdyaXRlcnNoaW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3N0cmVhbS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvdGhyZWFkL2xvY2FsLnJzAGxpYnJhcnkvc3RkL3NyYy9zeW5jL2xhenlfbG9jay5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3luYy9yZWVudHJhbnRfbG9jay5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvc3luYy9vbmNlX2xvY2sucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2RlY3MvcG5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwBsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaW8vYm9ycm93ZWRfYnVmLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTcvc3JjL2V4dGVybnJlZi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvdHJhbnNmb3JtL3BhbGV0dGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvYWxsb2NhdGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9jb3JlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvaW8vaW1hZ2VfcmVhZGVyX3R5cGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9zdGFibGUucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3ByaW50YWJsZS5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvY2h1bmtfdHJlZS5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xvZF90cmVlLnJzAHNwYXJrLWxpYi9zcmMvc3BsYXRfZW5jb2RlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtMS4wLjIyOC9zcmMvcHJpdmF0ZS9kZS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZGUucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL3N5bmMvcG9pc29uL29uY2UucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvc2xpY2UucnMAbGlicmFyeS9zdGQvc3JjL2JhY2t0cmFjZS5ycwAvcnVzdC9kZXBzL2hhc2hicm93bi0wLjE1LjUvc3JjL3Jhdy9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9oYXNoYnJvd24tMC4xNi4xL3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvcGFja2VkcGFpci9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL21vZC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy9iaW5hcnlfaGVhcC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL2lvL21vZC5ycwBsaWJyYXJ5L3N0ZC9zcmMvLi4vLi4vYmFja3RyYWNlL3NyYy9zeW1ib2xpemUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWluaXpfb3hpZGUtMC44Ljkvc3JjL2luZmxhdGUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAbGlicmFyeS9zdGQvc3JjL3RocmVhZC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvdmVjL21vZC5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL21vZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvdGlueV9sb2QucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2JoYXR0X2xvZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2NyYzMyL2JyYWlkLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3ZlYy9zcGVjX2Zyb21faXRlcl9uZXN0ZWQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9leHRlbmRlZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvcmFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfanNvbi0xLjAuMTQ1L3NyYy9yZWFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9yZWFkLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjEwL3NyYy9kbG1hbGxvYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvc3BlYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvemxpYi5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NvbnNvbGVfZXJyb3JfcGFuaWNfaG9vay0wLjEuNy9zcmMvbGliLnJzAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI2L3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZS13YXNtLWJpbmRnZW4tMC42LjUvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2pzLXN5cy0wLjMuOTQvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NtYWxsdmVjLTEuMTUuMS9zcmMvbGliLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvdGV4dF9tZXRhZGF0YS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3VuaWNvZGUvdW5pY29kZV9kYXRhLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvdnA4LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvYWRhbTcucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL2NwNDM3LnJzAHNwYXJrLWxpYi9zcmMvc3ltbWF0My5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvY3JjMzIucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL3YwLnJzAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGludmFsaWQgd2luZG93IHNpemUAcmVwZWF0ZWQgY2FsbCB3aXRoIGJhZCBzdGF0ZQBpbnZhbGlkIGJsb2NrIHR5cGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABJSSoA7AUQACQAAABEAwAADQAAAOwFEAAkAAAARQMAAA0AAADsBRAAJAAAAEYDAAANAAAA7AUQACQAAABDAwAA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dWN0IFJhZE1ldGEgd2l0aCAxMSBlbGVtZW50cwAAAFY+EAAfAAAAAAAAAAgAAAAEAAAAqgAAAGZpbGVzbWluc21heHNzaGFwZXN0cnVjdCBNZWFucyB3aXRoIDQgZWxlbWVudHMAAKI+EAAcAAAAZW5jb2RpbmdzdHJ1Y3QgUXVhdHMgd2l0aCAyIGVsZW1lbnRz0D4QABwAAABzdHJ1Y3QgU2gwVjEgd2l0aCAzIGVsZW1lbnRz9D4QABwAAABjb2RlYm9va3N0cnVjdCBTaDBWMiB3aXRoIDIgZWxlbWVudHMgPxAAHAAAAHN0cnVjdCBTaE5WMSB3aXRoIDQgZWxlbWVudHNEPxAAHAAAAGJhbmRzc3RydWN0IFNoTlYyIHdpdGggMyBlbGVtZW50cwAAAG0/EAAcAAAAc3RydWN0IE1lYW5zVjEgd2l0aCA0IGVsZW1lbnRzAACUPxAAHgAAAG1lYW5zc2NhbGVzcXVhdHNzaDBzaE5zdHJ1Y3QgUGNTb2dzVjEgd2l0aCA1IGVsZW1lbnRzAAAA0j8QAB8AAABzdHJ1Y3QgUGNTb2dzVjIgd2l0aCA3IGVsZW1lbnRzAPw/EAAfAAAAc3RydWN0IFNjYWxlc1YxIHdpdGggMyBlbGVtZW50cwAkQBAAHwAAAHN0cnVjdCBTY2FsZXNWMiB3aXRoIDIgZWxlbWVudHMATEAQAB8AAABiYXNlcGF5bG9hZEJ5dGVzcHJvcGVydGllc3N0cnVjdCBSYWRDaHVua01ldGEgd2l0aCA4IGVsZW1lbnRzAAAAjkAQACMAAABnc3BsYXQAALxAEAAGAAAAb2Zmc2V0ZmlsZW5hbWVzdHJ1Y3QgUmFkQ2h1bmtSYW5nZSB3aXRoIDUgZWxlbWVudHMAANpAEAAkAAAAY29tcHJlc3Npb25taW5tYXhzdHJ1Y3QgUmFkQ2h1bmtQcm9wZXJ0eSB3aXRoIDcgZWxlbWVudHMZQRAAJwAAAGEgc2VxdWVuY2UAANsGEABmAAAAjQQAABwAAABzdHJ1Y3QgU2V0U3BsYXRFbmNvZGluZyB3aXRoIDggZWxlbWVudHMAZEEQACcAAABjZW50ZXJhbHBoYXJnYm9yaWVudGF0aW9uY2hpbGRfY291bnRjaGlsZF9zdGFydHNoMV9jb2Rlc2gyX2NvZGVzaDNfY29kZXNoX2xhYmVsAJRBEAAGAAAAmkEQAAUAAACfQRAAAwAAAME/EAAGAAAAokEQAAsAAAD4MxAAAwAAAPszEAADAAAADDYQAAMAAACtQRAACwAAALhBEAALAAAAw0EQAAgAAADLQRAACAAAANNBEAAIAAAA20EQAAgAAABmMTZmMzJfbGVieXRlc2YxNl9sZWJ5dGVzcjhyOF9kZWx0YXM4czhfZGVsdGFsbl8wcjhsbl9mMTZvY3Q4OHI4AogRAAMAAABUQhAAAwAAAFdCEAALAAAAYkIQAAsAAABtQhAAAgAAAG9CEAAIAAAAd0IQAAIAAAB5QhAACAAAAIFCEAAGAAAAh0IQAAYAAACNQhAABwAAAAdZEQADAAAABYgRAAMAQYSGwQALBQEAAACrAEGUhsEAC50NAQAAAKwAAABnegAAHEMQAAIAAACGV40hJKv8MZsV7Rqk/AqGIZHXkOAZBnMEwoE6QC5Aw02j52ZMofSR0h1OTNnv/LcqkTKWy/Ri3BOYR0yo5sJKZQUUCIJCw8J7T1YBdnE/LlNbgd6v+j3VsO5PRvEo+g1lOjkDtdomfifhYlnYlyaf521Pxr7v5E2F7c0GCuf+P/3rIsETwTMoA+inBzqud1sRrxXgIBVknwBi1PJVeIx7Aisj8rJUn2yy7loDmsKEpY45WsRC9+oSngcEldKewYpCm/q8AgqVZ7gNAZD9VtBrMivi9KBl2ERiQe5Ii0cFQ/5K+mCCgfdMVeJBLcgvjfuPC2mlqkI9RC+bfJ3D8Sr9x01mLnzmSbxuYaNTlztp3pcpSPbzROrxa62j6ZmoBdH97HYrR635JQTfXlV6a8Ovn+m9tKIApq4QCN4uyBE87DPEa42psDZg7WP62RG4/bUIrvZnfsvyWSH/wjd06x+Py+lMtpuEl8Ltn4DSZSE7nX4v+OWiItk2yi53ifdj62Zde1sqPTuH9PUU2hK7pnF7Y1zUyuJJAK68UxeBqShYoeSyUAtPu+nwuxBgZKitiEsgHhagE5RBXb1l1/jQzzzaT25jZSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAADoRBAAKgAAAL8aEABTAAAAnAAAADIAAABzFBAATwAAAC8CAAAmAAAATw8QAGYAAACkAAAAKgAAAE8PEABmAAAABAEAACUAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAABcRRAAsAAAALEAAACyAAAAsAAAALMAAABBRVMgZW5jcnlwdGVkIGZpbGVzIGNhbm5vdCBiZSBkZWNyeXB0ZWQgd2l0aG91dCB0aGUgYWVzLWNyeXB0byBmZWF0dXJlLlZhcmlhYmxlLWxlbmd0aCBmaWVsZCBleHRlbmRzIGJleW9uZCBmaWxlIGJvdW5kYXJ5QUVTIGVuY3J5cHRpb24gd2l0aG91dCBBRVMgZXh0cmEgZGF0YSBmaWVsZEFyY2hpdmUgaGVhZGVyIGlzIHRvbyBsYXJnZQDOIRAAWQAAAOYCAAAZAAAAziEQAFkAAADqAgAAEwAAAE92ZXJzaXplZCBjZW50cmFsIGRpcmVjdG9yeVN1cHBvcnQgZm9yIG11bHRpLWRpc2sgZmlsZXMgaXMgbm90IGltcGxlbWVudGVkemlwOjp0eXBlczo6WmlwQ2VudHJhbEVudHJ5QmxvY2sAAFBLAQJJbnZhbGlkIENlbnRyYWwgRGlyZWN0b3J5IGhlYWRlcnppcDo6c3BlYzo6WmlwMzJDREVCbG9ja1BLBQZJbnZhbGlkIGRpZ2l0YWwgc2lnbmF0dXJlIGhlYWRlcgAAAIAkRxAAIAAAAHppcDo6c3BlYzo6WmlwNjRDREVMb2NhdG9yQmxvY2tJbnZhbGlkIHppcDY0IGxvY2F0b3IgZGlnaXRhbCBzaWduYXR1cmUgaGVhZGVyAAAAAAAAgG9HEAAuAAAAemlwOjpzcGVjOjpaaXA2NENERUJsb2NrUEsGBkludmFsaWQgRU9DRDY0OiBpbmNvbnNpc3RlbnQgbGVuZ3RoSW52YWxpZCBFT0NENjQ6IGluY29uc2lzdGVuY3kgd2l0aCBMb2NhdG9yIGRhdGFJbnZhbGlkIEVPQ0Q2NDogaW5jb25zaXN0ZW50IG51bWJlciBvZiBmaWxlc0NvdWxkIG5vdCBmaW5kIEVPQ0Q2NE11bHRpLWRpc2sgWklQIGZpbGVzIGFyZSBub3Qgc3VwcG9ydGVkSW52YWxpZCBFT0NENjQgTG9jYXRvciBDRCBvZmZzZXRObyBDREZIIGZvdW5kSW52YWxpZCBDREZIIG9mZnNldCBpbiBFT0NESW52YWxpZCBFT0NEIGNvbW1lbnQgbGVuZ3RoQ291bGQgbm90IGZpbmQgRU9DREVPQ0QgY29tbWVudCBleGNlZWRzIGZpbGUgYm91bmRhcnkAAABTIhAAWQAAABACAAAkAAAARU9DRDY0IGV4dGVuc2libGUgZGF0YSBzZWN0b3IgZXhjZWVkcyBmaWxlIGJvdW5kYXJ5RU9DRDY0IGV4dGVuZHMgYmV5b25kIEVPQ0Q2NCBsb2NhdG9yTG93IEVPQ0Q2NCByZWNvcmQgc2l6ZQAAALQAAAAMAAAABAAAALUAAAC2AAAAtwBBvJPBAAu5LAEAAAC4AAAAiggQAFgAAACtCAAAGwAAAIoIEABYAAAAqwgAABoAAADavuWfRqP1Qda9IYIEin9+bSFxc5z+Wz98T9PqHwhx/v/RdU8UjvBwCSevxkboy2vj/HVWg7aPELisF+ETauo3Bro1G72r6e53M2YWY4Y3fVerifDxfVD/AOsyEUOUJRdr73nJEJIZqhTGMt1wo/d9s9Z0rBITht2/xAQ7FZjtPv983P/+/w1gGQswk0k0V9UqAxAAXwAAAEoAAAAfAAAAKgMQAF8AAABEAAAAFwAAAAAAAADTCKOFiGo/JERzcAMuihkT0DGfKSI4CaSJbE7smPouCAAAAAAEAAAABAAAALkAAAD4HBAAYAAAAK4CAAATAAAAExsQAEoAAABfAwAACQAAAAAAAAAEAAAABAAAALoAAAC7AAAACAAAAAQAAAAWAAAAuwAAAAgAAAAEAAAAvAAAABYAAAD4ShAAvQAAAL4AAACyAAAAvwAAALMAAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwQAAAAAAAAAEAAAABAAAAMIAAABYWVoAAAAAAAQAAAAEAAAAwwAAAENlbnRlcnNBbHBoYXNTY2FsZXNRdWF0c1NoRXh0ZW5zaW9uQ2hpbGRDb3VudHNDaGlsZFN0YXJ0cwAAAAAAAAAIAAAABAAAAMQAAAAAAAAACAAAAAQAAADFAAAAxAAAALRLEACwAAAAxgAAALIAAACwAAAAswAAAAAAAAAIAAAABAAAAMcAAAAAAAAACAAAAAQAAABwAAAAxwAAAPBLEACwAAAAyAAAALIAAACwAAAAswAAAMkAAAAMAAAABAAAAMoAAADJAAAADAAAAAQAAADLAAAAygAAACxMEADMAAAAzQAAALIAAADOAAAAswAAAK0AAAAMAAAABAAAAM8AAACtAAAADAAAAAQAAADQAAAAzwAAAGhMEACwAAAA0QAAALIAAACwAAAAswAAANIAAAAMAAAABAAAANMAAADSAAAADAAAAAQAAADUAAAA0wAAAKRMEADVAAAA1gAAALIAAADXAAAAswAAANgAAAAEAAAABAAAANkAAADYAAAABAAAAAQAAADaAAAA2QAAAOBMEADbAAAA3AAAALIAAADdAAAAswAAAN4AAAAMAAAABAAAANMAAADeAAAADAAAAAQAAADfAAAA0wAAABxNEADgAAAA4QAAALIAAADgAAAAswAAAOIAAAAoAAAABAAAAOMAAADiAAAAKAAAAAQAAADkAAAA4wAAAFhNEADlAAAA5gAAAOcAAADoAAAA6QAAAOoAAAAgAAAABAAAAOMAAADqAAAAIAAAAAQAAADkAAAA4wAAAJRNEADlAAAA6wAAAOcAAADoAAAA6QAAAOwAAAAoAAAABAAAAOMAAADsAAAAKAAAAAQAAADkAAAA4wAAANBNEADlAAAA7QAAAOcAAADoAAAA6QAAAO4AAAAkAAAABAAAAOQAAADjAAAAdE4QAOUAAADvAAAA5wAAAOgAAADpAAAA8AAAACQAAAAEAAAA4wAAAPAAAAAkAAAABAAAAOQAAADjAAAAOE4QAOUAAADxAAAA5wAAAOgAAADpAAAA7gAAACQAAAAEAAAA4wAAAO4AAAAkAAAABAAAAOQAAADjAAAAdE4QAOUAAADyAAAA5wAAAOgAAADpAAAA8wAAACgAAAAEAAAA4wAAAPMAAAAoAAAABAAAAOQAAADjAAAAsE4QAOUAAAD0AAAA5wAAAOgAAADpAAAA9QAAACgAAAAEAAAA4wAAAPUAAAAoAAAABAAAAOQAAADjAAAA7E4QAOUAAAD2AAAA5wAAAOgAAADpAAAA9wAAAPgAAAD5AAAA+gAAAPsAAAD8AAAA/QAAAP4AAAD/AAAAAAEAAAEBAAACAQAA/AAAAP0AAAADAQAABAEAAAUBAAAGAQAABwEAAAgBAAD9AAAACQEAAAoBAAALAQAADAEAAA0BAAAOAQAA/QAAAA8BAAAQAQAAEQEAABIBAAATAQAADgEAAP0AAAD3AAAAFAEAABUBAAAWAQAAFwEAAPwAAAD9AAAAGAEAABkBAAAaAQAAGwEAABwBAAAdAQAA/QAAAB4BAAAfAQAAIAEAACEBAAAiAQAAIwEAACQBAAAAAAAABAAAAAQAAAAlAQAAJgEAAAQAAAAEAAAAJwEAANgAAAAEAAAABAAAANoAAAAAAAAABAAAAAQAAAAoAQAAKQEAACoBAABGMzJGMTZGMzJMZUJ5dGVzRjE2TGVCeXRlc1I4UjhEZWx0YVM4UzhEZWx0YUxuMFI4TG5GMTZPY3Q4OFI4VTE2VTMyAIwFEAA9AAAASQEAADIAAACMBRAAPQAAAEwBAAA7AAAAjAUQAD0AAABUAQAAMQAAAIwFEAA9AAAAWAEAADEAAACMBRAAPQAAAFABAAAxAAAATgUQAD0AAADzAQAAMQAAAE4FEAA9AAAA6AEAADIAAABOBRAAPQAAAO8BAAAxAAAATgUQAD0AAAD3AQAAMQAAAE4FEAA9AAAA6wEAADsAAAD6GRAAYwAAAPMBAAAVAAAA+hkQAGMAAADjAQAAFQAAACBzcGxhdHMsIGdvdCAAAABQOBAACQAAAFRREAANAAAAIFNIIHJlY29yZHMsIGdvdCAAAABQOBAACQAAAHRREAARAAAASW52YWxpZCBQTFkgZmlsZZhREAAQAAAASW5jb21wbGV0ZSBSQUQgY2h1bmuwURAAFAAAAFRydW5jYXRlZCBnemlwIHN0cmVhbQAAAMxREAAVAAAASW5jb21wbGV0ZSBTUFogc3RyZWFtOiBzdGFnZSA9ICwgc2hfZGVncmVlID0gAAAA7FEQAB8AAAALUhAADgAAAEludmFsaWQgU1BaIHN0cmVhbQAALFIQABIAAAAAAAAACAAAAAQAAAArAQAAiiQQAF4AAAD4BQAAHAAAAIokEABeAAAA+wUAABYAAABOb3QgYSBaSVAvU09HUyBmaWxlAHhSEAATAAAAU09HUyBmaWxlIHRvbyBzbWFsbACUUhAAEwAAAMoFEAAhAAAAnQMAAA0AAADKBRAAIQAAAJ8DAAANAAAAygUQACEAAACcAwAAQAAAAMoFEAAhAAAAqAMAAA0AAADKBRAAIQAAAKgDAAA9AAAAygUQACEAAAAwBAAAIwAAAMoFEAAhAAAAMAQAAA0AAADKBRAAIQAAAC4EAAAnAAAAygUQACEAAAA+BAAAIwAAAMoFEAAhAAAAPgQAAA0AAADKBRAAIQAAADwEAAAnAAAAygUQACEAAACyAwAADQAAAMoFEAAhAAAAsQMAADoAAADKBRAAIQAAAN4DAAA3AAAAygUQACEAAADfAwAAEQAAAMoFEAAhAAAA2QMAACcAAADKBRAAIQAAAPMDAAAoAAAAygUQACEAAAD3AwAAMwAAAMoFEAAhAAAA+AMAAA0AAADKBRAAIQAAAP0DAAA3AAAAygUQACEAAAD+AwAAEQAAAMoFEAAhAAAA/wMAABEAAADKBRAAIQAAAAAEAAARAAAAygUQACEAAADyAwAAKAAAAMoFEAAhAAAAEgQAACgAAADKBRAAIQAAAB4EAAA3AAAAygUQACEAAAAfBAAAEQAAAMoFEAAhAAAAIAQAABEAAADKBRAAIQAAACEEAAARAAAAygUQACEAAAAXBAAANwAAAMoFEAAhAAAAGAQAABEAAADKBRAAIQAAABEEAAAoAAAAygUQACEAAADKAwAADQAAAMoFEAAhAAAAyQMAADwAAADKBRAAIQAAAL4DAAANAAAAygUQACEAAAC9AwAAPgAAAKwOEAA+AAAABQIAACEAAABVbmtub3duIGZpbGUgdHlwZQAAAABVEAARAAAArA4QAD4AAAANAgAAHQAAAAwAAAAMAAAAEAAAAAQAAAAEAAAADAAAABgAAAAoAAAALAAAAAEAAAAGAAAABgAAAAgAAAAEAAAAAgAAAAYAAAAMAAAAFAAAABgAAAD/fwAABgAAAAYAAAAIAAAABAAAAAEAAAAGAAAADAAAABQAAAAYAAAA/38AAAAAAAAJAAAAGAAAAC0AAABTZWN0aW9uIGRhdGEgc2l6ZSBvdmVyZmxvdwAAtFUQABoAAADPBBAAPQAAAOAAAAAoAAAAzwQQAD0AAADiAAAAJgAAAM8EEAA9AAAA5AAAACkAAADPBBAAPQAAAOUAAAA5AAAAzwQQAD0AAADmAAAAOQAAAM8EEAA9AAAA5wAAADkAAADPBBAAPQAAAGkBAABZAAAAzwQQAD0AAABpAQAANgAAAM8EEAA9AAAAaAEAAFkAAADPBBAAPQAAAGgBAAA2AAAAzwQQAD0AAABnAQAAWAAAAM8EEAA9AAAAZwEAADYAAADPBBAAPQAAAGYBAABGAAAAzwQQAD0AAABmAQAAJAAAAM8EEAA9AAAAYwEAAEgAAADPBBAAPQAAAGMBAAAqAAAAzwQQAD0AAABiAQAASgAAAM8EEAA9AAAAYgEAACgAAADPBBAAPQAAAPYAAAAVAAAAzwQQAD0AAAALAQAAFwAAAM8EEAA9AAAAEQEAABcAAADPBBAAPQAAABcBAAAXAAAAzwQQAD0AAAAqAQAAFQAAAM8EEAA9AAAAKwEAABUAAADPBBAAPQAAACwBAAAVAAAAzwQQAD0AAAAtAQAAFQAAAM8EEAA9AAAAMQEAAB8AAADPBBAAPQAAADIBAAAfAAAAzwQQAD0AAAAzAQAAHwAAAM8EEAA9AAAANAEAAB4AAADPBBAAPQAAADQBAAAYAAAAGAAAAB8AAAAmAAAAGQAAACAAAAAnAAAAGgAAACEAAAAoAAAAGwAAACIAAAApAAAAHAAAACMAAAAqAAAAHQAAACQAAAArAAAAHgAAACUAAAAsAAAAzwQQAD0AAABTAQAAIAAAAM8EEAA9AAAATQEAACAAAADPBBAAPQAAAEgBAAAcAAAAzwQQAD0AAADdAAAAJAAAAEJ1Y2tldCBhcnJheSBvdXQgb2YgYm91bmRzAABcWBAAGgAAAFRydW5jYXRlZCBrc3BsYXQgZmlsZQAAAIBYEAAVAAAAVW5leHBlY3RlZCBlbmQgb2YgZmlsZSB3aGlsZSByZWFkaW5nIHNlY3Rpb24gaGVhZGVyc6BYEAA0AAAAU2VjdGlvbiBzaXplIG92ZXJmbG93AAAA3FgQABUAAABJbnZhbGlkIGNvbXByZXNzaW9uIGxldmVsIAAA/FgQABoAAABVbnN1cHBvcnRlZCAua3NwbGF0IHZlcnNpb246IAAAACBZEAAdAAAA7FwRAAEAAABGaWxlIHRvbyBzbWFsbCBmb3Iga3NwbGF0IGhlYWRlclBZEAAgAAAAU0ggYnl0ZSBvdXQgb2YgYm91bmRzAAAAeFkQABUAAADKBRAAIQAAAPgBAAA3AAAAygUQACEAAAD4AQAAWAAAAMoFEAAhAAAAAQIAAEYAAADKBRAAIQAAAAECAAA4AAAAygUQACEAAACUAgAANgAAAMoFEAAhAAAAlAIAACMAAADKBRAAIQAAAIgCAAA2AAAAygUQACEAAACIAgAARQAAAMoFEAAhAAAAiAIAAFgAAADKBRAAIQAAAIgCAAAVAAAAygUQACEAAACDAgAALAAAAMoFEAAhAAAAvgIAADYAAADKBRAAIQAAAL4CAAAjAAAAygUQACEAAADAAgAAJwAAAMoFEAAhAAAArwIAADgAAADKBRAAIQAAAK8CAABHAAAAygUQACEAAACvAgAAWgAAAMoFEAAhAAAArwIAABUAAADKBRAAIQAAALICAABCAAAAygUQACEAAACyAgAAUQAAAMoFEAAhAAAAsgIAAGQAAADKBRAAIQAAAKoCAAAyAAAAygUQACEAAACpAgAAMgAAAMoFEAAhAAAA9AIAAD8AAADKBRAAIQAAAPQCAAAmAAAAygUQACEAAADxAgAAOQAAAMoFEAAhAAAA8QIAACYAAADKBRAAIQAAAOMCAAA+AAAAygUQACEAAADjAgAATQAAAMoFEAAhAAAA4wIAAGAAAADKBRAAIQAAAOMCAAAVAAAAygUQACEAAADfAgAAOAAAAMoFEAAhAAAA3wIAAEcAAADKBRAAIQAAAN8CAABaAAAAygUQACEAAADfAgAAFQAAAMoFEAAhAAAA2gIAAC4AAADKBRAAIQAAANkCAAAuAAAAygUQACEAAAAnAwAAKQAAAMoFEAAhAAAALgMAAEsAAADKBRAAIQAAAC4DAAAhAAAAygUQACEAAAArAwAARQAAAMoFEAAhAAAAKwMAACEAAADKBRAAIQAAABQDAAAhAAAAygUQACEAAAAXAwAANgAAAMoFEAAhAAAAFwMAABUAAADKBRAAIQAAABkDAABAAAAAygUQACEAAAASAwAAMgAAAMoFEAAhAAAABAMAAB0AAADKBRAAIQAAAAgDAAA2AAAAygUQACEAAAAIAwAAFQAAAMoFEAAhAAAAAgMAAC4AAADKBRAAIQAAADsDAAAmAAAAygUQACEAAAA/AwAAIAAAAMoFEAAhAAAAPwMAABMAAADKBRAAIQAAAEUDAAAmAAAAygUQACEAAABJAwAAIAAAAMoFEAAhAAAASQMAABMAAADKBRAAIQAAAJ8BAAA2AAAAygUQACEAAACgAQAANgAAAMoFEAAhAAAArwEAADMAAADKBRAAIQAAALABAAAzAAAAygUQACEAAACsAQAAQwAAAMoFEAAhAAAApgEAAC0AAADKBRAAIQAAAKUBAAAtAAAAygUQACEAAAAKAgAANAAAAMoFEAAhAAAACgIAAFUAAADKBRAAIQAAAD8CAAA2AAAAygUQACEAAAA/AgAAPwAAAMoFEAAhAAAAPwIAAEwAAADKBRAAIQAAAD8CAAAVAAAAygUQACEAAAA6AgAALAAAAMoFEAAhAAAATAIAADIAAADKBRAAIQAAAFECAAA4AAAAygUQACEAAABRAgAAQQAAAMoFEAAhAAAAUQIAAE4AAADKBRAAIQAAAFECAAAVAAAAygUQACEAAABUAgAAQgAAAMoFEAAhAAAAVAIAAEsAAADKBRAAIQAAAFQCAABYAAAAygUQACEAAABUAgAAGQAAAMoFEAAhAAAASwIAADIAAADKBRAAIQAAAGMCAAAyAAAAygUQACEAAABsAgAAQgAAAMoFEAAhAAAAbAIAAEsAAADKBRAAIQAAAGwCAABYAAAAygUQACEAAABsAgAAGQAAAMoFEAAhAAAAaAIAADwAAADKBRAAIQAAAGgCAABFAAAAygUQACEAAABoAgAAUgAAAMoFEAAhAAAAaAIAABkAAADKBRAAIQAAAGICAAAyAAAAygUQACEAAAAlAgAANQAAAMoFEAAhAAAAJQIAAFYAAADKBRAAIQAAAM8BAAAnAAAAygUQACEAAADRAQAAFQAAAMoFEAAhAAAAzgEAACcAAADKBRAAIQAAANABAAAoAAAAygUQACEAAADTAQAAKAAAAMoFEAAhAAAA0gEAACgAAADKBRAAIQAAANQBAAAoAAAAygUQACEAAAAcAgAANgAAAMoFEAAhAAAAHAIAAFcAQYDAwQALBgEAAAAsAQBBkMDBAAsGAQAAAC0BAEGgwMEACwYBAAAALQEAQbDAwQALBgEAAAAtAQBBwMDBAAsGAQAAAC0BAEHQwMEACwYBAAAALgEAQeDAwQALBgEAAAAvAQBB8MDBAAsGAQAAADABAEGAwcEACwYBAAAAMQEAQZDBwQALBgEAAAAyAQBBoMHBAAutBwEAAAAzAQAAehkQAEEAAACaAQAADQAAAHoZEABBAAAAnQEAAA0AAAB6GRAAQQAAALMBAAAZAAAAb3V0cHV0IGJhdGNoIGNodW5rLCBjaHVua19yZWwgPSDYYBAAIAAAAG9jdGFudCBsZW5ndGhzOiAAYRAAEAAAAFz8EQABAAAAehkQAEEAAADjAQAAGQAAAHoZEABBAAAA2gEAACEAAABzcGxpdCBheGlzPSwgZXh0ZW50PSwgc3BsaXQ9LCBhLmxlbj0sIGIubGVuPUBhEAALAAAAS2EQAAkAAABUYRAACAAAAFxhEAAIAAAAZGEQAAgAAABc/BEAAQAAAHoZEABBAAAAzQEAAB0AAAB6GRAAQQAAAOgBAAAFAAAAehkQAEEAAADhAQAATgAAANcAEAA6AAAAPQAAADYAAABQTFkgaGVhZGVyIHRvbyBsYXJnZdxhEAAUAAAAZW5kX2hlYWRlcgoA1wAQADoAAABjAAAAHQAAANcAEAA6AAAAnQAAACQAAADXABAAOgAAAJwAAAAkAAAA1wAQADoAAACbAAAAJAAAANcAEAA6AAAAmgAAACYAAADXABAAOgAAAJkAAAAoAAAA1wAQADoAAACYAAAAJAAAANcAEAA6AAAAlwAAACwAAADXABAAOgAAAJYAAAAqAAAA1wAQADoAAAB0AAAAIgAAANcAEAA6AAAAhAAAACYAAADXABAAOgAAAIoAAAAmAAAA1wAQADoAAACQAAAAJgAAANcAEAA6AAAAfgAAACMAAADXABAAOgAAAHkAAAAkAAAA1wAQADoAAAB2AAAAIgAAANcAEAA6AAAAcQAAACUAAADXABAAOgAAALkAAAAdAAAA1wAQADoAAADOAAAALgAAANcAEAA6AAAAzQAAADAAAADXABAAOgAAAMwAAAAsAAAA1wAQADoAAADLAAAANAAAANcAEAA6AAAAygAAADIAAADXABAAOgAAANoAAABJAAAA1wAQADoAAADZAAAASQAAANcAEAA6AAAA2AAAACsAAADXABAAOgAAAOQAAAAvAAAAMCEQADoAAADvBQAAKwAAAEludmFsaWQgY2h1bmsgY291bnQ6IGV4cGVjdGVkICwgZ290IMRjEAAeAAAA4mMQAAYAAABVbnN1cHBvcnRlZCBSQUQgdmVyc2lvbjogAAAA+GMQABkAAAAwIRAAOgAAANcFAABAAAAASW52YWxpZCBSQUQgbWFnaWM6IDB4AAAALGQQABUAAAACAEHWyMEACwEIAEHgyMEAC8ElIAAA6VVuc3VwcG9ydGVkIFJBRCBjaHVuayB2ZXJzaW9uOiAAZGQQAB8AAAAwIRAAOgAAAEQGAAAvAAAARmFpbGVkIHRvIGRlY29tcHJlc3MgZ3ogZGF0YZxkEAAcAAAAVW5zdXBwb3J0ZWQgY2VudGVyIGVuY29kaW5nOiAAAADAZBAAHQAAAFByb3BlcnR5IG1pc3NpbmcgbWF46GQQABQAAABQcm9wZXJ0eSBtaXNzaW5nIG1pbgRlEAAUAAAAVW5zdXBwb3J0ZWQgYWxwaGEgZW5jb2Rpbmc6ICBlEAAcAAAAVW5zdXBwb3J0ZWQgcmdiIGVuY29kaW5nOiAAAERlEAAaAAAAVW5zdXBwb3J0ZWQgc2NhbGVzIGVuY29kaW5nOiAAAABoZRAAHQAAADAhEAA6AAAAqAYAAC8AAABVbnN1cHBvcnRlZCBvcmllbnRhdGlvbiBlbmNvZGluZzogAACgZRAAIgAAAFVuc3VwcG9ydGVkIGNoaWxkIGNvdW50IGVuY29kaW5nOiAAAMxlEAAiAAAAVW5zdXBwb3J0ZWQgY2hpbGQgc3RhcnQgZW5jb2Rpbmc6IAAA+GUQACIAAAAwIRAAOgAAAN0GAAAeAAAAVW5zdXBwb3J0ZWQgc2ggZW5jb2Rpbmc6IAAAADRmEAAZAAAAVW5zdXBwb3J0ZWQgc2ggbGFiZWwgZW5jb2Rpbmc6IABYZhAAHwAAADAhEAA6AAAAUwYAACQAAABQcm9wZXJ0eSBvZmZzZXQgbWlzbWF0Y2g6IGV4cGVjdGVkIACQZhAAIwAAAOJjEAAGAAAAMCEQADoAAACqBgAASAAAADAhEAA6AAAAOAYAADsAAAAwIRAAOgAAADcGAABFAAAASW52YWxpZCBSQUQgY2h1bmsgbWFnaWM6IDB4APRmEAAbAAAAVW5zdXBwb3J0ZWQgU1BaIHZlcnNpb246IAAAABhnEAAZAAAASW52YWxpZCBTUFogbWFnaWM6IDB4AAAAPGcQABUAAAB+ABAAOgAAAHkAAAApAAAAfgAQADoAAAB6AAAAKQAAAH4AEAA6AAAAewAAACkAAAB+ABAAOgAAAHsAAABPAAAAfgAQADoAAAB6AAAATwAAAH4AEAA6AAAAeQAAAE8AAAB+ABAAOgAAAIEAAAApAAAAfgAQADoAAACCAAAAKQAAAH4AEAA6AAAAgwAAACkAAAB+ABAAOgAAAIMAAABPAAAAfgAQADoAAACCAAAATwAAAH4AEAA6AAAAgQAAAE8AAAB+ABAAOgAAAJ4AAAA2AAAAfgAQADoAAACeAAAAJQAAAH4AEAA6AAAAuQAAADsAAAB+ABAAOgAAALkAAAAlAAAAfgAQADoAAAC6AAAAOwAAAH4AEAA6AAAAugAAACUAAAB+ABAAOgAAALsAAAA7AAAAfgAQADoAAAC7AAAAJQAAAH4AEAA6AAAA1QAAADwAAAB+ABAAOgAAANUAAAAlAAAAfgAQADoAAADWAAAAPAAAAH4AEAA6AAAA1gAAACUAAAB+ABAAOgAAANcAAAA8AAAAfgAQADoAAADXAAAAJQAAAH4AEAA6AAAA8wAAADQAAAB+ABAAOgAAAPQAAAAwAAAAfgAQADoAAAD1AAAAMAAAAH4AEAA6AAAA9gAAADAAAAB+ABAAOgAAAA4BAAApAAAAfgAQADoAAAAPAQAAKQAAAH4AEAA6AAAAEAEAACkAAAB+ABAAOgAAABEBAAApAAAAfgAQADoAAAAXAQAAMQAAAH4AEAA6AAAAGAEAADEAAAB+ABAAOgAAABkBAAAxAAAAfgAQADoAAAAcAQAAKQAAAH4AEAA6AAAAHQEAACkAAAB+ABAAOgAAAB4BAAApAAAAfgAQADoAAAAfAQAAKQAAAH4AEAA6AAAAMgEAACsAAAB+ABAAOgAAAFoBAABEAAAAfgAQADoAAABZAQAARAAAAH4AEAA6AAAAWAEAACoAAAB+ABAAOgAAAE8BAABlAAAAfgAQADoAAABPAQAANQAAAH4AEAA6AAAASAEAAGQAAAB+ABAAOgAAAEgBAAA1AAAAfgAQADoAAABCAQAAUwAAAH4AEAA6AAAAQgEAADEAAAB+ABAAOgAAAHsBAAApAAAAfgAQADoAAAB7AQAARwAAAH4AEAA6AAAAlQEAACsAAAB+ABAAOgAAAJUBAABJAAAAfgAQADoAAAC6AQAAJwAAAH4AEAA6AAAAyAEAAEEAAAB+ABAAOgAAAMEBAAAhAAAAbWV0YS5qc29ubWV0YS5qc29uIG5vdCBmb3VuZCBpbiBTT0dTIHppcAVrEAAfAAAAAQAAAAAAAABMUhEAAQAAAEZhaWxlZCB0byBwYXJzZSBtZXRhLmpzb24gZm9yIFNPR1MgaW4gY2FjaGUA5PcRAA0AAABeaxAACQAAAEIHEAA7AAAAMwIAADIAAABCBxAAOwAAADICAAAyAAAAQgcQADsAAAAxAgAAMgAAAEIHEAA7AAAAMAIAABwAAABCBxAAOwAAAC8CAAAeAAAAQgcQADsAAAAuAgAAGgAAAEIHEAA7AAAALQIAACIAAABCBxAAOwAAACwCAAAgAAAAZGF0YSBkaWQgbm90IG1hdGNoIGFueSB2YXJpYW50IG9mIHVudGFnZ2VkIGVudW0gUGNTb2dzUm9vdHF1YXRlcm5pb25fcGFja2VkZGVjb2RlIG1lYW5zWzBdZGVjb2RlIG1lYW5zWzFdZGVjb2RlIHNjYWxlc2RlY29kZSBxdWF0c2RlY29kZSBzaDBCBxAAOwAAABwBAAAWAAAAQgcQADsAAAAdAQAAFQAAAEIHEAA7AAAAHgEAABQAAABCBxAAOwAAAB8BAAATAAAAQgcQADsAAAAgAQAAFwAAAEIHEAA7AAAAIQEAADUAAABCBxAAOwAAACIBAAA1AAAAQgcQADsAAAAjAQAANQAAAFVuc3VwcG9ydGVkIHF1YXRlcm5pb24gZW5jb2RpbmcgaW4gU09HUyB2MQAABG0QACoAAABCBxAAOwAAAM0AAAAWAAAAQgcQADsAAADOAAAAFQAAAEIHEAA7AAAAzwAAABQAAABCBxAAOwAAANAAAAATAAAAQgcQADsAAADRAAAAFwAAAEIHEAA7AAAA0gAAADUAAABCBxAAOwAAANMAAAA1AAAAQgcQADsAAADUAAAANQAAAFVuZXhwZWN0ZWQgRU9GAAC4bRAADgAAAJEEEAA9AAAAdQAAABsAAACRBBAAPQAAAHYAAABBAAAANAEAANgCAAAIAAAANQEAADYBAAA3AQAAOAEAAMgpAAAEAAAAOQEAADoBAAA7AQAAPAEAAGwAAAAEAAAAPQEAAD4BAAA/AQAAPAEAAGwAAAAEAAAAQAEAAD4BAABBAQAAPAEAAGwAAAAEAAAAQgEAAD4BAABDAQAARAEAAKABAAAIAAAARQEAAEYBAABHAQAASAEAADADAAAIAAAASQEAAEoBAABLAQAATAEAACQqAAAEAAAATQEAAE4BAABPAQAAUAEAAMgAAAAEAAAAUQEAAFIBAABTAQAAUAEAAMgAAAAEAAAAVAEAAFIBAABVAQAAUAEAAMgAAAAEAAAAVgEAAFIBAABXAQAAWAEAAAACAAAIAAAAWQEAAFoBAABbAQAAXAEAALgCAAAIAAAAXQEAAF4BAABfAQAAYAEAAKgpAAAEAAAAYQEAAGIBAABjAQAAZAEAAEwAAAAEAAAAZQEAAGYBAABnAQAAZAEAAEwAAAAEAAAAaAEAAGYBAABpAQAAZAEAAEwAAAAEAAAAagEAAGYBAABrAQAAbAEAAIABAAAIAAAAbQEAAG4BAABvAQAAcAEAADgDAAAIAAAAcQEAAHIBAABzAQAAdAEAACwqAAAEAAAAdQEAAHYBAAB3AQAAeAEAANAAAAAEAAAAeQEAAHoBAAB7AQAAeAEAANAAAAAEAAAAfAEAAHoBAAB9AQAAeAEAANAAAAAEAAAAfgEAAHoBAAB/AQAAgAEAAAgCAAAIAAAAgQEAAIIBAACDAQAArA4QAD4AAACkAQAAJAAAAEludmFsaWQgZGVjb2RlciB0eXBlQHAQABQAAACsDhAAPgAAAL4BAAAJAAAArA4QAD4AAADDAQAAKQAAAKwOEAA+AAAAwAIAABwAAACsDhAAPgAAALsCAABBAAAArA4QAD4AAAC5AgAAQQAAAKwOEAA+AAAArQIAADUAAACsDhAAPgAAAKgCAAA1AAAArA4QAD4AAACkAgAAMQAAAKwOEAA+AAAAoAIAAC8AAACsDhAAPgAAAJ8CAAAxAAAArA4QAD4AAACeAgAALQAAAKwOEAA+AAAAnQIAADUAAACsDhAAPgAAAJwCAAAzAAAAhh8QAD8AAACYAAAAFQAAAHRpbnlfbG9kOjpjb21wdXRlX2xvZF90cmVlOiBzcGxhdHMubGVuPSwgbG9kX2Jhc2U9LCBtZXJnZV9maWx0ZXI9AAAAPHEQACcAAABjcRAACwAAAG5xEAAPAAAAbGV2ZWxfbWluOiAsIGZlYXR1cmVfc2l6ZVswXTogAACYcRAACwAAAKNxEAATAAAAhh8QAD8AAAA0AAAAFAAAAExldmVsOiAsIHN0ZXA6ICwgZnJvbnRpZXI6ICAvIAAA2HEQAAcAAADfcRAACAAAAOdxEAAMAAAA83EQAAMAAABTb3J0ZWQgYWN0aXZlOiAAGHIQAA8AAABNZXJnZWQ6IDByEAAIAAAA83EQAAMAAACGHxAAPwAAAHIAAAAXAAAAAQAAAIYfEAA/AAAAiQAAABMAAABSb290IGluZGV4OiBschAADAAAAFJvb3Q6IAAAgHIQAAYAAACGHxAAPwAAAIcAAAAFAAAAhh8QAD8AAABnAAAAKAAAAIYfEAA/AAAAZwAAAB0AAACGHxAAPwAAAGMAAAAdAAAAhh8QAD8AAABkAAAAGAAAAIYfEAA/AAAAYQAAAFAAAAANBRAAQAAAAM8AAAAdAAAAxh8QAEAAAADYAAAAFQAAAMYfEABAAAAAygAAABYAAABiaGF0dF9sb2Q6OmNvbXB1dGVfbG9kX3RyZWU6IGluaXRpYWxfbGVuPQAAACBzEAApAAAAxh8QAEAAAAAYAAAAGQAAACwgIyBhY3RpdmU6ICwgIyBzcGxhdHM6INhxEAAHAAAA33EQAAgAAADncRAADAAAAPNxEAADAAAAZHMQAAwAAABwcxAADAAAAMYfEABAAAAARQAAABoAAADGHxAAQAAAAHwAAAAdAAAAxh8QAEAAAABoAAAANwAAAMYfEABAAAAAawAAABoAAADGHxAAQAAAAGwAAABBAAAAxh8QAEAAAABvAAAAGwAAAMYfEABAAAAAcwAAACEAAADGHxAAQAAAAFQAAAAtAAAAUm9vdCBzcGxhdDogLHQQAAwAAADGHxAAQAAAAJEAAAAZAAAAxh8QAEAAAACVAAAADgAAAE91dHB1dCBzZXQ6IGB0EAAMAAAA83EQAAMAAABMb0QgZ3Jvd3RoIGZhY3RvcjogAHx0EAATAAAAxh8QAEAAAADgAAAADQAAAFBydW5pbmcgZnJvbSBsaW1pdF9zaXplPSwgIyBmcm9udGllcj0AAACodBAAGAAAAMB0EAANAAAAxh8QAEAAAADyAAAABQAAAFRydW5jYXRlZCB0byBvdXRwdXRfY291bnQ9AADwdBAAGgAAAEF2ZXJhZ2UgY2hpbGRyZW4gcGVyIGludGVyaW9yIHNwbGF0OiAAAAAUdRAAJQAAAFJvb3QgI2NoaWxkcmVuOiBEdRAAEAAAAMYfEABAAAAA9gAAABUAAADGHxAAQAAAAK8AAAAaAAAAxh8QAEAAAACyAAAAGQAAAGFzc2VydGlvbiBmYWlsZWQ6IG5ld19jaGlsZHJlbi5sZW4oKSA8PSA2NTUzNQAAAMYfEABAAAAAswAAABEAAAAKAACABAAAgAgAAIAQ6BEAoPsRAKP7EQCo+xEArvsRALf7EQADAAAAAwAAAAUAAAAGAAAACQAAAAMAAABkSxAAZUsQAGZLEAAHAAAABgAAAAMAAAAGAAAABQAAAAIAAAAJAAAACwAAAAsAAAAEAAAAeEsQAH9LEAD6TREAhUsQAItLEACQSxAAkksQAJtLEACmSxAAk9sRABgAAAAIAAAADwAAAAYAAAAEAAAADgAAAA0AAABe2xEAdtsRAH7bEQCN2xEAk9sRAJfbEQCl2xEAAwAAAAMAAAAKAAAACgAAAAIAAAAHAAAAAgAAAAcAAAAFAAAABQAAAAcAAAADAAAAAwAAAFBQEABTUBAAVlAQAGBQEABqUBAAbFAQAHNQEAB1UBAAfFAQAIFQEACGUBAAjVAQAJBQEADWAxAAIgAAAFIAAAATAAAA8hUQABsAAADoAQAAFwBBrO7BAAueAQEAAACEAQAA+QMQABgAAACKAgAADgAAAHEIEAAYAAAAggIAABMAAABxCBAAGAAAAJ8BAAA/AAAAcQgQABgAAACgAQAAMwAAANjKEQARAAAA9B4QACAAAAAqAgAAEQAAAIUBAAAMAAAABAAAAIYBAACHAQAAiAEAAEMbEAAaAAAAvQEAAB0AAAC0AAAADAAAAAQAAACJAQAAigEAAIsBAEHU78EACzUBAAAAuAAAAGFzc2VydGlvbiBmYWlsZWQ6IHNlbGYuaXNfY2hhcl9ib3VuZGFyeShuKQAAAgBBkvDBAAsBBQBBnPDBAAvOASAAAKggICAgICAgCgpDYXVzZWQgYnk6CgpzdGFjayBiYWNrdHJhY2U6U3RhY2sgYmFja3RyYWNlOgoAAEV4EAARAAAAEgQQAFwAAAA2AAAAHwAAABIEEABcAAAAPAAAABsAAABd/BEAAgAAAGJhY2t0cmFjZSBjYXB0dXJlIGZhaWxlZOMIEABeAAAAZwQAAA4AAAAAAAAAEAAAAAQAAACMAQAAjQEAAI4BAAAKClN0YWNrOgoKAAC0AAAADAAAAAQAAACJAQAAigEAAI8BAEH08cEAC4AYAQAAALgAAACoAQQBAQEEAQICAMAEAgQBCQIBAfsHzwEFATEtAQEBAgECAQEsAQsGCgsBASMBChUQAWUIAQoBBCEBAQEeG1sLOgsEAQIBGBgrAywBBwIFCSk6NwEBAQQIBAEDBwoCDQEPAToBBAQIARQCGgECAjkBBAIEAgIDAwEeAgMBCwI5AQQFAQIEARQCFgYBAToBAgEBBAgBBwILAh4BPQEMATIBAwE3AQEDBQMBBAcCCwIdAToBAgEGAQUCFAIcAjkCBAQIARQCHQFIAQcDAQFaAQIHCwliAQIJCQEBB0kCGwEBAQEBNw4BBQECBQsBJAkBZgQBBgECAgIZAgQDEAQNAQICBgEPAV4BAAMAAx0CHgIeAkACAQcIAQILAwEFAS0FMwFBAiIBdgMEAgkBBgPbAgIBOgEBBwEBAQECCAYKAgEnAQgfMQQwAQEFAQEFASgJDAIgBAICAQM4AQECAwEBAzoIAgJABlIDAQ0BBwQBBgEDAjI/DQEiZQABAQMLAw0DDQMNAgwFCAIKAQIBAgUxBQEKAQENARANMyEAAnEDfQEPAWAgLwEAASQEAwUFAV0GXQMAAQAGAAFiBAEKAQEcBFACDiJOARcDZwMDAggBAwEEARkCBQGXAhoSDQEmCBkLLgMwAQIEAgIRARUCQgYCAgICDAEIASMBCwEzAQEDAgIFAgEBGwEOAgUCAQFkBQkDeQECAQQBAAGTEQAQAwEMECIBAgGpAQcBBgELASMBAQEvAS0CQwEVAwAB4gGVBQAGASoBCQADAQIFBCgDBAGlAgAEJgEaBQEBAAJPBEYLMQR7ATYPKQECAgoDMQQCAgIBBAEKATIDJAUBCD4BDAI0CQoEAgFfAwIBAQIGAQIBnQEDCBUCOQIDASUHAwVGBg0BAQEBAQ4CVQgCAwEBFwFUBgEBBAIBAu4EBgIBAhsCVQgCAQECagEBAQIGAQFlAQEBAgQBBQAJAQIAAgEBBAGQBAICBAEgCigGAgQIAQkGAgMuDQECAAcBBgEBUhYCBwECAQJ6BgMBAQIBBwEBSAIDAQEBAAILAjQFBQEBARcBABEGDwAMAwMABTsHCQQAAygCAAE/EUACAQIABAEHAQIAAgEEAC4CFwADCRACBx4ElAMANwQyCAEOARYFAQ8ABwERAgcBAgEFBT4hAaAOAAE9BAAF/gIAB20IAAUAAR5ggPAAAHAABwAtAQEBAgECAQFICzAVEAFlBwIGAgIBBCMBHhtbCzoJCQEYBAEJAQMBBSsDOwkqGAEgNwEBAQQIBAEDBwoCHQE6AQEBAgQIAQkBCgIaAQICOQEEAgQCAgMDAR4CAwELAjkBBAUBAgQBFAIWBgEBOgEBAgEECAEHAwoCHgE7AQEBDAEJASgBAwE3AQEDBQMBBAcCCwIdAToBAgIBAQMDAQQHAgsCHAI5AgEBAgQIAQkBCgIdAUgBBAECAwEBCAFRAQIHDAhiAQIJCwdJAhsBAQEBATcOAQUBAgULASQJAWYEAQYBAgICGQIEAxAEDQECAgYBDwEAAwAEHAMdAh4CQAIBBwgBAgsJAS0DAQF1AiIBdgMEAgkBBgPbAgIBOgEBBwEBAQECCAYKAgEwHzEEMAoEAyYJDAIgBAIGOAEBAgMBAQU4CAICmAMBDQEHBAEGAQMCxkAAAcMhAAONAWAgAAZpAgAEAQogAlACAAEDAQQBGQIFAZcCGhINASYIGQsBASwDMAECBAICAgEkAUMGAgICAgwBCAEvATMBAQMCAgUCAQEqAggB7gECAQQBAAEAEBAQAAIAAeIBlQUAAwECBQQoAwQBpQIABEEFAAJPBEYLMQR7ATYPKQECAgoDMQQCAgcBPQMkBQEIPgEMAjQJAQEIBAIBXwMCBAYBAgGdAQMIFQI5AgEBAQEMAQkBDgcDBUMBAgYBAQIBAQMEAwEBDgJVCAIDAQEXAVEBAgYBAQIBAQIBAusBAgQGAgECGwJVCAIBAQJqAQEBAghlAQEBAgQBBQAJAQL1AQoEBAGQBAICBAEgCigGAgQIAQkGAgMuDQECAAcBBgEBUhYCBwECAQJ6BgMBAQIBBwEBSAIDAQEBAAILAjQFBQMXAQABBg8ADAMDAAU7BwABPwRRAQsCAAIALgIXAAUDBggIAgceBJQDADcEMggBDgEWBQEPAAcBEQIHAQIBBWQBoAcAAT0EAAT+AgAHbQcAYIDwAKoBCgEEAQUXAR8BwwEEBNABJAcCHgVgASoEAgICBAEBBgEBAwEBARQBUwGLCKYBJgkpACYBAQUBAisBBABWAgYACwUrAgNAwEAAAgYCJgIGAggBAQEBAQEBHwI1AQcBAQMDAQcDBAIGBA0FAwEHdAENARANZQEEAQIKAQEDBQYBAQEBAQEEAQYEAQIEBQUEAREgAwIANADlBgQDAgwmAQEFAQAuEh6EZgMEAT4CAgEBAQgVBQEDACsBDgZQAAcMBQAaBhoAUGAkBCR0CwEPAQcBAgELAQ8BBwECAAECAwEqAQkAMw0zXRYKFgBAAEAAVQFHAQICAQICAgQBDAEBAQcBQQEEAggBBwEcAQQBBQEBAwcBAAIZARkBHwEZAR8BGQEfARkBHwEZAQgACgEUBgYAPgBEABoGGgYaAEFueQocEAAbAAAArwoAACYAAAAKHBAAGwAAALgKAAAaAAAAKzAxMjM0NTY3ODlBQkNERUYsCigKAAAAAAAAAAwAAAAEAAAAkAEAAJEBAACSAQAAIHsKIHsgLi4gfTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAocEAAbAAAANQcAAB8AAABhc3NlcnRpb24gZmFpbGVkOiBvdGhlciA+IDBhc3NlcnRpb24gZmFpbGVkOiBub2JvcnJvdwAAAOoSEAAeAAAAqwEAAAEAAABhc3NlcnRpb24gZmFpbGVkOiBkaWdpdHMgPCA0MDAuMGUwYXNzZXJ0aW9uIGZhaWxlZDogIWJ1Zi5pc19lbXB0eSgpAGIfEAAjAAAAtwAAAAUAAABhc3NlcnRpb24gZmFpbGVkOiBidWZbMF0gPiBiJzAnAGIfEAAjAAAAuAAAAAUAAABiHxAAIwAAAAYBAAAFAAAAYh8QACMAAAAHAQAABQAAAGVlLWFzc2VydGlvbiBmYWlsZWQ6IGJ1Zi5sZW4oKSA+PSBtYXhsZW5iHxAAIwAAAHoCAAANAAAAYh8QACMAAACZAAAADgAAAN9FGj0DzxrmwfvM/gAAAADKxprHF/5wq9z71P4AAAAAT9y8vvyxd//2+9z+AAAAAAzWa0HvkVa+Efzk/gAAAAA8/H+QrR/QjSz87P4AAAAAg5pVMShcUdNG/PT+AAAAALXJpq2PrHGdYfz8/gAAAADLi+4jdyKc6nv8BP8AAAAAbVN4QJFJzK6W/Az/AAAAAFfOtl15EjyCsfwU/wAAAAA3VvtNNpQQwsv8HP8AAAAAT5hIOG/qlpDm/CT/AAAAAMc6giXLhXTXAP0s/wAAAAD0l7+Xzc+GoBv9NP8AAAAA5awqF5gKNO81/Tz/AAAAAI6yNSr7ZziyUP1E/wAAAAA7P8bS39TIhGv9TP8AAAAAus3TGidE3cWF/VT/AAAAAJbJJbvOn2uToP1c/wAAAACEpWJ9JGys27r9ZP8AAAAA9tpfDVhmq6PV/Wz/AAAAACbxw96T+OLz7/10/wAAAAC4gP+qqK21tQr+fP8AAAAAi0p8bAVfYocl/oT/AAAAAFMwwTRg/7zJP/6M/wAAAABVJrqRjIVOllr+lP8AAAAAvX4pcCR3+d90/pz/AAAAAI+45bifvd+mj/6k/wAAAACUfXSIz1+p+Kn+rP8AAAAAz5uoj5NwRLnE/rT/AAAAAGsVD7/48AiK3/68/wAAAAC2MTFlVSWwzfn+xP8AAAAArH970MbiP5kU/8z/AAAAAAY7KyrEEFzkLv/U/wAAAADTknNpmSQkqkn/3P8AAAAADsoAg/K1h/1j/+T/AAAAAOsaEZJkCOW8fv/s/wAAAADMiFBvCcy8jJn/9P8AAAAALGUZ4lgXt9Gz//z/AEH+icIACwVAnM7/BABBjIrCAAvoDRCl1Ojo/wwAAAAAAAAAYqzF63itAwAUAAAAAACECZT4eDk/gR4AHAAAAAAAsxUHyXvOl8A4ACQAAAAAAHBc6nvOMn6PUwAsAAAAAABogOmrpDjS1W0ANAAAAAAARSKaFyYnT5+IADwAAAAAACf7xNQxomPtogBEAAAAAACorciMOGXesL0ATAAAAAAA22WrGo4Ix4PYAFQAAAAAAJodcUL5HV3E8gBcAAAAAABY5xumLGlNkg0BZAAAAAAA6o1wGmTuAdonAWwAAAAAAEp375qZo22iQgF0AAAAAACFa320e3gJ8lwBfAAAAAAAdxjdeaHkVLR3AYQAAAAAAMLFm1uShluGkgGMAAAAAAA9XZbIxVM1yKwBlAAAAAAAs6CX+ly0KpXHAZwAAAAAAONfoJm9n0be4QGkAAAAAAAljDnbNMKbpfwBrAAAAAAAXJ+Yo3KaxvYWArQAAAAAAM6+6VRTv9y3MQK8AAAAAADiQSLyF/P8iEwCxAAAAAAApXhc05vOIMxmAswAAAAAAN9TIXvzWhaYgQLUAAAAAAA6MB+X3LWg4psC3AAAAAAAlrPjXFPR2ai2AuQAAAAAADxEp6TZfJv70ALsAAAAAAAQRKSnTEx2u+sC9AAAAAAAGpxAtu+Oq4sGA/wAAAAAACyEV6YQ7x/QIAMEAQAAAAApMZHp5aQQmzsDDAEAAAAAnQycofubEOdVAxQBAAAAACn0O2LZICiscAMcAQAAAACFz6d6XktEgIsDJAEAAAAALd2sA0DkIb+lAywBAAAAAI//RF4vnGeOwAM0AQAAAABBuIycnRcz1NoDPAEAAAAAqRvjtJLbGZ71A0QBAAAAANl337puv5brDwRMAQAAAADLAhAALgAAAH0AAAAVAAAAywIQAC4AAADvAgAAJgAAAMsCEAAuAAAA4wIAACYAAADLAhAALgAAAMwCAAAmAAAAYXNzZXJ0aW9uIGZhaWxlZDogZC5tYW50ID4gMMsCEAAuAAAA3AEAAAUAAADLAhAALgAAADMCAAARAAAAywIQAC4AAABsAgAACQAAAMsCEAAuAAAAqQAAAAUAAABhc3NlcnRpb24gZmFpbGVkOiBkLm1pbnVzID4gMAAAAMsCEAAuAAAAqgAAAAUAAABhc3NlcnRpb24gZmFpbGVkOiBkLnBsdXMgPiAwywIQAC4AAACrAAAABQAAAGFzc2VydGlvbiBmYWlsZWQ6IGQubWFudCArIGQucGx1cyA8ICgxIDw8IDYxKQAAAMsCEAAuAAAArwAAAAUAAADLAhAALgAAAAoBAAARAAAAywIQAC4AAABAAQAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IGQubWFudC5jaGVja2VkX3N1YihkLm1pbnVzKS5pc19zb21lKCkAywIQAC4AAACtAAAABQAAAGFzc2VydGlvbiBmYWlsZWQ6IGQubWFudC5jaGVja2VkX2FkZChkLnBsdXMpLmlzX3NvbWUoKQAAywIQAC4AAACsAAAABQAAAPQREAAvAAAACwEAAAUAAAD0ERAALwAAAAwBAAAFAAAA9BEQAC8AAAANAQAABQAAAPQREAAvAAAAcgEAACQAAAD0ERAALwAAAHcBAAAvAAAA9BEQAC8AAACEAQAAEgAAAPQREAAvAAAAZgEAAA0AAAD0ERAALwAAAEwBAAAiAAAA9BEQAC8AAAAPAQAABQAAAPQREAAvAAAADgEAAAUAAAD0ERAALwAAAHYAAAAFAAAA9BEQAC8AAAB3AAAABQAAAPQREAAvAAAAeAAAAAUAAAD0ERAALwAAAMIAAAAJAAAA9BEQAC8AAAD7AAAADQAAAPQREAAvAAAAAgEAABIAAAD0ERAALwAAAHoAAAAFAAAA9BEQAC8AAAB5AAAABQAAAAEAAAAKAAAAZAAAAOgDAAAQJwAAoIYBAEBCDwCAlpgAAOH1BQDKmjvBb/KGIwAAAIHvrIVbQW0t7gQAAAEfar9k7Thu7Zen2vT5P+kDTxgAAT6VLgmZ3wP9OBUPL+R0I+z1z9MI3ATE2rDNvBl/M6YDJh/pTgIAAAF8Lphbh9O+cp/Z2IcvFRLGUN5rcG5Kzw/YldVucbImsGbGrSQ2FR1a00I8DlT/Y8BzVcwX7/ll8ii8VffH3IDc7W70zu/cX/dTBQBvBBAAIQAAAC4AAAAJAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQbaYwgALMwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAwMDAwMDAwMDAwMDAwMEBAQEBABB9JjCAAv1cFsuLi5dYmVnaW4gPD0gZW5kICggPD0gKSB3aGVuIHNsaWNpbmcgYAB5jBAADgAAAIeMEAAEAAAAi4wQABAAAADokhEAAQAAAGJ5dGUgaW5kZXggIGlzIG5vdCBhIGNoYXIgYm91bmRhcnk7IGl0IGlzIGluc2lkZSAgKGJ5dGVzICkgb2YgYAC8jBAACwAAAMeMEAAmAAAA7YwQAAgAAAD1jBAABgAAAOiSEQABAAAAIGlzIG91dCBvZiBib3VuZHMgb2YgYAAAvIwQAAsAAAAkjRAAFgAAAOiSEQABAAAAJhEQAB8AAABnBgAAFQAAACYREAAfAAAAlQYAABUAAAAmERAAHwAAAJYGAAAVAAAAJhEQAB8AAAB0BQAAKAAAACYREAAfAAAAdAUAABIAAABjb3B5X2Zyb21fc2xpY2U6IHNvdXJjZSBzbGljZSBsZW5ndGggKCkgZG9lcyBub3QgbWF0Y2ggZGVzdGluYXRpb24gc2xpY2UgbGVuZ3RoICgAAACkjRAAJgAAAMqNEAArAAAAXgcSAAEAAAB1c2VyLXByb3ZpZGVkIGNvbXBhcmlzb24gZnVuY3Rpb24gZG9lcyBub3QgY29ycmVjdGx5IGltcGxlbWVudCBhIHRvdGFsIG9yZGVyEI4QAEwAAAD6AhAALwAAAFwDAAAFAAAAcmFuZ2Ugc3RhcnQgaW5kZXggIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIHSOEAASAAAAho4QACIAAAByYW5nZSBlbmQgaW5kZXgguI4QABAAAACGjhAAIgAAAHNsaWNlIGluZGV4IHN0YXJ0cyBhdCAgYnV0IGVuZHMgYXQgANiOEAAWAAAA7o4QAA0AAAB1ChAAIAAAAIQAAAAeAAAAdQoQACAAAACgAAAACQAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWUAwAAAAOAAAADBAAAA4QAAAMIAAADiAAAAwwAAAOMAAADEAAAA5AAAAMUAAADlAAAAxgAAAOYAAADHAAAA5wAAAMgAAADoAAAAyQAAAOkAAADKAAAA6gAAAMsAAADrAAAAzAAAAOwAAADNAAAA7QAAAM4AAADuAAAAzwAAAO8AAADQAAAA8AAAANEAAADxAAAA0gAAAPIAAADTAAAA8wAAANQAAAD0AAAA1QAAAPUAAADWAAAA9gAAANgAAAD4AAAA2QAAAPkAAADaAAAA+gAAANsAAAD7AAAA3AAAAPwAAADdAAAA/QAAAN4AAAD+AAAAAAEAAAEBAAACAQAAAwEAAAQBAAAFAQAABgEAAAcBAAAIAQAACQEAAAoBAAALAQAADAEAAA0BAAAOAQAADwEAABABAAARAQAAEgEAABMBAAAUAQAAFQEAABYBAAAXAQAAGAEAABkBAAAaAQAAGwEAABwBAAAdAQAAHgEAAB8BAAAgAQAAIQEAACIBAAAjAQAAJAEAACUBAAAmAQAAJwEAACgBAAApAQAAKgEAACsBAAAsAQAALQEAAC4BAAAvAQAAMAEAAAAAQAAyAQAAMwEAADQBAAA1AQAANgEAADcBAAA5AQAAOgEAADsBAAA8AQAAPQEAAD4BAAA/AQAAQAEAAEEBAABCAQAAQwEAAEQBAABFAQAARgEAAEcBAABIAQAASgEAAEsBAABMAQAATQEAAE4BAABPAQAAUAEAAFEBAABSAQAAUwEAAFQBAABVAQAAVgEAAFcBAABYAQAAWQEAAFoBAABbAQAAXAEAAF0BAABeAQAAXwEAAGABAABhAQAAYgEAAGMBAABkAQAAZQEAAGYBAABnAQAAaAEAAGkBAABqAQAAawEAAGwBAABtAQAAbgEAAG8BAABwAQAAcQEAAHIBAABzAQAAdAEAAHUBAAB2AQAAdwEAAHgBAAD/AAAAeQEAAHoBAAB7AQAAfAEAAH0BAAB+AQAAgQEAAFMCAACCAQAAgwEAAIQBAACFAQAAhgEAAFQCAACHAQAAiAEAAIkBAABWAgAAigEAAFcCAACLAQAAjAEAAI4BAADdAQAAjwEAAFkCAACQAQAAWwIAAJEBAACSAQAAkwEAAGACAACUAQAAYwIAAJYBAABpAgAAlwEAAGgCAACYAQAAmQEAAJwBAABvAgAAnQEAAHICAACfAQAAdQIAAKABAAChAQAAogEAAKMBAACkAQAApQEAAKYBAACAAgAApwEAAKgBAACpAQAAgwIAAKwBAACtAQAArgEAAIgCAACvAQAAsAEAALEBAACKAgAAsgEAAIsCAACzAQAAtAEAALUBAAC2AQAAtwEAAJICAAC4AQAAuQEAALwBAAC9AQAAxAEAAMYBAADFAQAAxgEAAMcBAADJAQAAyAEAAMkBAADKAQAAzAEAAMsBAADMAQAAzQEAAM4BAADPAQAA0AEAANEBAADSAQAA0wEAANQBAADVAQAA1gEAANcBAADYAQAA2QEAANoBAADbAQAA3AEAAN4BAADfAQAA4AEAAOEBAADiAQAA4wEAAOQBAADlAQAA5gEAAOcBAADoAQAA6QEAAOoBAADrAQAA7AEAAO0BAADuAQAA7wEAAPEBAADzAQAA8gEAAPMBAAD0AQAA9QEAAPYBAACVAQAA9wEAAL8BAAD4AQAA+QEAAPoBAAD7AQAA/AEAAP0BAAD+AQAA/wEAAAACAAABAgAAAgIAAAMCAAAEAgAABQIAAAYCAAAHAgAACAIAAAkCAAAKAgAACwIAAAwCAAANAgAADgIAAA8CAAAQAgAAEQIAABICAAATAgAAFAIAABUCAAAWAgAAFwIAABgCAAAZAgAAGgIAABsCAAAcAgAAHQIAAB4CAAAfAgAAIAIAAJ4BAAAiAgAAIwIAACQCAAAlAgAAJgIAACcCAAAoAgAAKQIAACoCAAArAgAALAIAAC0CAAAuAgAALwIAADACAAAxAgAAMgIAADMCAAA6AgAAZSwAADsCAAA8AgAAPQIAAJoBAAA+AgAAZiwAAEECAABCAgAAQwIAAIABAABEAgAAiQIAAEUCAACMAgAARgIAAEcCAABIAgAASQIAAEoCAABLAgAATAIAAE0CAABOAgAATwIAAHADAABxAwAAcgMAAHMDAAB2AwAAdwMAAH8DAADzAwAAhgMAAKwDAACIAwAArQMAAIkDAACuAwAAigMAAK8DAACMAwAAzAMAAI4DAADNAwAAjwMAAM4DAACRAwAAsQMAAJIDAACyAwAAkwMAALMDAACUAwAAtAMAAJUDAAC1AwAAlgMAALYDAACXAwAAtwMAAJgDAAC4AwAAmQMAALkDAACaAwAAugMAAJsDAAC7AwAAnAMAALwDAACdAwAAvQMAAJ4DAAC+AwAAnwMAAL8DAACgAwAAwAMAAKEDAADBAwAAowMAAMMDAACkAwAAxAMAAKUDAADFAwAApgMAAMYDAACnAwAAxwMAAKgDAADIAwAAqQMAAMkDAACqAwAAygMAAKsDAADLAwAAzwMAANcDAADYAwAA2QMAANoDAADbAwAA3AMAAN0DAADeAwAA3wMAAOADAADhAwAA4gMAAOMDAADkAwAA5QMAAOYDAADnAwAA6AMAAOkDAADqAwAA6wMAAOwDAADtAwAA7gMAAO8DAAD0AwAAuAMAAPcDAAD4AwAA+QMAAPIDAAD6AwAA+wMAAP0DAAB7AwAA/gMAAHwDAAD/AwAAfQMAAAAEAABQBAAAAQQAAFEEAAACBAAAUgQAAAMEAABTBAAABAQAAFQEAAAFBAAAVQQAAAYEAABWBAAABwQAAFcEAAAIBAAAWAQAAAkEAABZBAAACgQAAFoEAAALBAAAWwQAAAwEAABcBAAADQQAAF0EAAAOBAAAXgQAAA8EAABfBAAAEAQAADAEAAARBAAAMQQAABIEAAAyBAAAEwQAADMEAAAUBAAANAQAABUEAAA1BAAAFgQAADYEAAAXBAAANwQAABgEAAA4BAAAGQQAADkEAAAaBAAAOgQAABsEAAA7BAAAHAQAADwEAAAdBAAAPQQAAB4EAAA+BAAAHwQAAD8EAAAgBAAAQAQAACEEAABBBAAAIgQAAEIEAAAjBAAAQwQAACQEAABEBAAAJQQAAEUEAAAmBAAARgQAACcEAABHBAAAKAQAAEgEAAApBAAASQQAACoEAABKBAAAKwQAAEsEAAAsBAAATAQAAC0EAABNBAAALgQAAE4EAAAvBAAATwQAAGAEAABhBAAAYgQAAGMEAABkBAAAZQQAAGYEAABnBAAAaAQAAGkEAABqBAAAawQAAGwEAABtBAAAbgQAAG8EAABwBAAAcQQAAHIEAABzBAAAdAQAAHUEAAB2BAAAdwQAAHgEAAB5BAAAegQAAHsEAAB8BAAAfQQAAH4EAAB/BAAAgAQAAIEEAACKBAAAiwQAAIwEAACNBAAAjgQAAI8EAACQBAAAkQQAAJIEAACTBAAAlAQAAJUEAACWBAAAlwQAAJgEAACZBAAAmgQAAJsEAACcBAAAnQQAAJ4EAACfBAAAoAQAAKEEAACiBAAAowQAAKQEAAClBAAApgQAAKcEAACoBAAAqQQAAKoEAACrBAAArAQAAK0EAACuBAAArwQAALAEAACxBAAAsgQAALMEAAC0BAAAtQQAALYEAAC3BAAAuAQAALkEAAC6BAAAuwQAALwEAAC9BAAAvgQAAL8EAADABAAAzwQAAMEEAADCBAAAwwQAAMQEAADFBAAAxgQAAMcEAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAADOBAAA0AQAANEEAADSBAAA0wQAANQEAADVBAAA1gQAANcEAADYBAAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAA4gQAAOMEAADkBAAA5QQAAOYEAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAO8EAADwBAAA8QQAAPIEAADzBAAA9AQAAPUEAAD2BAAA9wQAAPgEAAD5BAAA+gQAAPsEAAD8BAAA/QQAAP4EAAD/BAAAAAUAAAEFAAACBQAAAwUAAAQFAAAFBQAABgUAAAcFAAAIBQAACQUAAAoFAAALBQAADAUAAA0FAAAOBQAADwUAABAFAAARBQAAEgUAABMFAAAUBQAAFQUAABYFAAAXBQAAGAUAABkFAAAaBQAAGwUAABwFAAAdBQAAHgUAAB8FAAAgBQAAIQUAACIFAAAjBQAAJAUAACUFAAAmBQAAJwUAACgFAAApBQAAKgUAACsFAAAsBQAALQUAAC4FAAAvBQAAMQUAAGEFAAAyBQAAYgUAADMFAABjBQAANAUAAGQFAAA1BQAAZQUAADYFAABmBQAANwUAAGcFAAA4BQAAaAUAADkFAABpBQAAOgUAAGoFAAA7BQAAawUAADwFAABsBQAAPQUAAG0FAAA+BQAAbgUAAD8FAABvBQAAQAUAAHAFAABBBQAAcQUAAEIFAAByBQAAQwUAAHMFAABEBQAAdAUAAEUFAAB1BQAARgUAAHYFAABHBQAAdwUAAEgFAAB4BQAASQUAAHkFAABKBQAAegUAAEsFAAB7BQAATAUAAHwFAABNBQAAfQUAAE4FAAB+BQAATwUAAH8FAABQBQAAgAUAAFEFAACBBQAAUgUAAIIFAABTBQAAgwUAAFQFAACEBQAAVQUAAIUFAABWBQAAhgUAAKAQAAAALQAAoRAAAAEtAACiEAAAAi0AAKMQAAADLQAApBAAAAQtAAClEAAABS0AAKYQAAAGLQAApxAAAActAACoEAAACC0AAKkQAAAJLQAAqhAAAAotAACrEAAACy0AAKwQAAAMLQAArRAAAA0tAACuEAAADi0AAK8QAAAPLQAAsBAAABAtAACxEAAAES0AALIQAAASLQAAsxAAABMtAAC0EAAAFC0AALUQAAAVLQAAthAAABYtAAC3EAAAFy0AALgQAAAYLQAAuRAAABktAAC6EAAAGi0AALsQAAAbLQAAvBAAABwtAAC9EAAAHS0AAL4QAAAeLQAAvxAAAB8tAADAEAAAIC0AAMEQAAAhLQAAwhAAACItAADDEAAAIy0AAMQQAAAkLQAAxRAAACUtAADHEAAAJy0AAM0QAAAtLQAAoBMAAHCrAAChEwAAcasAAKITAAByqwAAoxMAAHOrAACkEwAAdKsAAKUTAAB1qwAAphMAAHarAACnEwAAd6sAAKgTAAB4qwAAqRMAAHmrAACqEwAAeqsAAKsTAAB7qwAArBMAAHyrAACtEwAAfasAAK4TAAB+qwAArxMAAH+rAACwEwAAgKsAALETAACBqwAAshMAAIKrAACzEwAAg6sAALQTAACEqwAAtRMAAIWrAAC2EwAAhqsAALcTAACHqwAAuBMAAIirAAC5EwAAiasAALoTAACKqwAAuxMAAIurAAC8EwAAjKsAAL0TAACNqwAAvhMAAI6rAAC/EwAAj6sAAMATAACQqwAAwRMAAJGrAADCEwAAkqsAAMMTAACTqwAAxBMAAJSrAADFEwAAlasAAMYTAACWqwAAxxMAAJerAADIEwAAmKsAAMkTAACZqwAAyhMAAJqrAADLEwAAm6sAAMwTAACcqwAAzRMAAJ2rAADOEwAAnqsAAM8TAACfqwAA0BMAAKCrAADREwAAoasAANITAACiqwAA0xMAAKOrAADUEwAApKsAANUTAAClqwAA1hMAAKarAADXEwAAp6sAANgTAACoqwAA2RMAAKmrAADaEwAAqqsAANsTAACrqwAA3BMAAKyrAADdEwAArasAAN4TAACuqwAA3xMAAK+rAADgEwAAsKsAAOETAACxqwAA4hMAALKrAADjEwAAs6sAAOQTAAC0qwAA5RMAALWrAADmEwAAtqsAAOcTAAC3qwAA6BMAALirAADpEwAAuasAAOoTAAC6qwAA6xMAALurAADsEwAAvKsAAO0TAAC9qwAA7hMAAL6rAADvEwAAv6sAAPATAAD4EwAA8RMAAPkTAADyEwAA+hMAAPMTAAD7EwAA9BMAAPwTAAD1EwAA/RMAAIkcAACKHAAAkBwAANAQAACRHAAA0RAAAJIcAADSEAAAkxwAANMQAACUHAAA1BAAAJUcAADVEAAAlhwAANYQAACXHAAA1xAAAJgcAADYEAAAmRwAANkQAACaHAAA2hAAAJscAADbEAAAnBwAANwQAACdHAAA3RAAAJ4cAADeEAAAnxwAAN8QAACgHAAA4BAAAKEcAADhEAAAohwAAOIQAACjHAAA4xAAAKQcAADkEAAApRwAAOUQAACmHAAA5hAAAKccAADnEAAAqBwAAOgQAACpHAAA6RAAAKocAADqEAAAqxwAAOsQAACsHAAA7BAAAK0cAADtEAAArhwAAO4QAACvHAAA7xAAALAcAADwEAAAsRwAAPEQAACyHAAA8hAAALMcAADzEAAAtBwAAPQQAAC1HAAA9RAAALYcAAD2EAAAtxwAAPcQAAC4HAAA+BAAALkcAAD5EAAAuhwAAPoQAAC9HAAA/RAAAL4cAAD+EAAAvxwAAP8QAAAAHgAAAR4AAAIeAAADHgAABB4AAAUeAAAGHgAABx4AAAgeAAAJHgAACh4AAAseAAAMHgAADR4AAA4eAAAPHgAAEB4AABEeAAASHgAAEx4AABQeAAAVHgAAFh4AABceAAAYHgAAGR4AABoeAAAbHgAAHB4AAB0eAAAeHgAAHx4AACAeAAAhHgAAIh4AACMeAAAkHgAAJR4AACYeAAAnHgAAKB4AACkeAAAqHgAAKx4AACweAAAtHgAALh4AAC8eAAAwHgAAMR4AADIeAAAzHgAANB4AADUeAAA2HgAANx4AADgeAAA5HgAAOh4AADseAAA8HgAAPR4AAD4eAAA/HgAAQB4AAEEeAABCHgAAQx4AAEQeAABFHgAARh4AAEceAABIHgAASR4AAEoeAABLHgAATB4AAE0eAABOHgAATx4AAFAeAABRHgAAUh4AAFMeAABUHgAAVR4AAFYeAABXHgAAWB4AAFkeAABaHgAAWx4AAFweAABdHgAAXh4AAF8eAABgHgAAYR4AAGIeAABjHgAAZB4AAGUeAABmHgAAZx4AAGgeAABpHgAAah4AAGseAABsHgAAbR4AAG4eAABvHgAAcB4AAHEeAAByHgAAcx4AAHQeAAB1HgAAdh4AAHceAAB4HgAAeR4AAHoeAAB7HgAAfB4AAH0eAAB+HgAAfx4AAIAeAACBHgAAgh4AAIMeAACEHgAAhR4AAIYeAACHHgAAiB4AAIkeAACKHgAAix4AAIweAACNHgAAjh4AAI8eAACQHgAAkR4AAJIeAACTHgAAlB4AAJUeAACeHgAA3wAAAKAeAAChHgAAoh4AAKMeAACkHgAApR4AAKYeAACnHgAAqB4AAKkeAACqHgAAqx4AAKweAACtHgAArh4AAK8eAACwHgAAsR4AALIeAACzHgAAtB4AALUeAAC2HgAAtx4AALgeAAC5HgAAuh4AALseAAC8HgAAvR4AAL4eAAC/HgAAwB4AAMEeAADCHgAAwx4AAMQeAADFHgAAxh4AAMceAADIHgAAyR4AAMoeAADLHgAAzB4AAM0eAADOHgAAzx4AANAeAADRHgAA0h4AANMeAADUHgAA1R4AANYeAADXHgAA2B4AANkeAADaHgAA2x4AANweAADdHgAA3h4AAN8eAADgHgAA4R4AAOIeAADjHgAA5B4AAOUeAADmHgAA5x4AAOgeAADpHgAA6h4AAOseAADsHgAA7R4AAO4eAADvHgAA8B4AAPEeAADyHgAA8x4AAPQeAAD1HgAA9h4AAPceAAD4HgAA+R4AAPoeAAD7HgAA/B4AAP0eAAD+HgAA/x4AAAgfAAAAHwAACR8AAAEfAAAKHwAAAh8AAAsfAAADHwAADB8AAAQfAAANHwAABR8AAA4fAAAGHwAADx8AAAcfAAAYHwAAEB8AABkfAAARHwAAGh8AABIfAAAbHwAAEx8AABwfAAAUHwAAHR8AABUfAAAoHwAAIB8AACkfAAAhHwAAKh8AACIfAAArHwAAIx8AACwfAAAkHwAALR8AACUfAAAuHwAAJh8AAC8fAAAnHwAAOB8AADAfAAA5HwAAMR8AADofAAAyHwAAOx8AADMfAAA8HwAANB8AAD0fAAA1HwAAPh8AADYfAAA/HwAANx8AAEgfAABAHwAASR8AAEEfAABKHwAAQh8AAEsfAABDHwAATB8AAEQfAABNHwAARR8AAFkfAABRHwAAWx8AAFMfAABdHwAAVR8AAF8fAABXHwAAaB8AAGAfAABpHwAAYR8AAGofAABiHwAAax8AAGMfAABsHwAAZB8AAG0fAABlHwAAbh8AAGYfAABvHwAAZx8AAIgfAACAHwAAiR8AAIEfAACKHwAAgh8AAIsfAACDHwAAjB8AAIQfAACNHwAAhR8AAI4fAACGHwAAjx8AAIcfAACYHwAAkB8AAJkfAACRHwAAmh8AAJIfAACbHwAAkx8AAJwfAACUHwAAnR8AAJUfAACeHwAAlh8AAJ8fAACXHwAAqB8AAKAfAACpHwAAoR8AAKofAACiHwAAqx8AAKMfAACsHwAApB8AAK0fAAClHwAArh8AAKYfAACvHwAApx8AALgfAACwHwAAuR8AALEfAAC6HwAAcB8AALsfAABxHwAAvB8AALMfAADIHwAAch8AAMkfAABzHwAAyh8AAHQfAADLHwAAdR8AAMwfAADDHwAA2B8AANAfAADZHwAA0R8AANofAAB2HwAA2x8AAHcfAADoHwAA4B8AAOkfAADhHwAA6h8AAHofAADrHwAAex8AAOwfAADlHwAA+B8AAHgfAAD5HwAAeR8AAPofAAB8HwAA+x8AAH0fAAD8HwAA8x8AACYhAADJAwAAKiEAAGsAAAArIQAA5QAAADIhAABOIQAAYCEAAHAhAABhIQAAcSEAAGIhAAByIQAAYyEAAHMhAABkIQAAdCEAAGUhAAB1IQAAZiEAAHYhAABnIQAAdyEAAGghAAB4IQAAaSEAAHkhAABqIQAAeiEAAGshAAB7IQAAbCEAAHwhAABtIQAAfSEAAG4hAAB+IQAAbyEAAH8hAACDIQAAhCEAALYkAADQJAAAtyQAANEkAAC4JAAA0iQAALkkAADTJAAAuiQAANQkAAC7JAAA1SQAALwkAADWJAAAvSQAANckAAC+JAAA2CQAAL8kAADZJAAAwCQAANokAADBJAAA2yQAAMIkAADcJAAAwyQAAN0kAADEJAAA3iQAAMUkAADfJAAAxiQAAOAkAADHJAAA4SQAAMgkAADiJAAAySQAAOMkAADKJAAA5CQAAMskAADlJAAAzCQAAOYkAADNJAAA5yQAAM4kAADoJAAAzyQAAOkkAAAALAAAMCwAAAEsAAAxLAAAAiwAADIsAAADLAAAMywAAAQsAAA0LAAABSwAADUsAAAGLAAANiwAAAcsAAA3LAAACCwAADgsAAAJLAAAOSwAAAosAAA6LAAACywAADssAAAMLAAAPCwAAA0sAAA9LAAADiwAAD4sAAAPLAAAPywAABAsAABALAAAESwAAEEsAAASLAAAQiwAABMsAABDLAAAFCwAAEQsAAAVLAAARSwAABYsAABGLAAAFywAAEcsAAAYLAAASCwAABksAABJLAAAGiwAAEosAAAbLAAASywAABwsAABMLAAAHSwAAE0sAAAeLAAATiwAAB8sAABPLAAAICwAAFAsAAAhLAAAUSwAACIsAABSLAAAIywAAFMsAAAkLAAAVCwAACUsAABVLAAAJiwAAFYsAAAnLAAAVywAACgsAABYLAAAKSwAAFksAAAqLAAAWiwAACssAABbLAAALCwAAFwsAAAtLAAAXSwAAC4sAABeLAAALywAAF8sAABgLAAAYSwAAGIsAABrAgAAYywAAH0dAABkLAAAfQIAAGcsAABoLAAAaSwAAGosAABrLAAAbCwAAG0sAABRAgAAbiwAAHECAABvLAAAUAIAAHAsAABSAgAAciwAAHMsAAB1LAAAdiwAAH4sAAA/AgAAfywAAEACAACALAAAgSwAAIIsAACDLAAAhCwAAIUsAACGLAAAhywAAIgsAACJLAAAiiwAAIssAACMLAAAjSwAAI4sAACPLAAAkCwAAJEsAACSLAAAkywAAJQsAACVLAAAliwAAJcsAACYLAAAmSwAAJosAACbLAAAnCwAAJ0sAACeLAAAnywAAKAsAAChLAAAoiwAAKMsAACkLAAApSwAAKYsAACnLAAAqCwAAKksAACqLAAAqywAAKwsAACtLAAAriwAAK8sAACwLAAAsSwAALIsAACzLAAAtCwAALUsAAC2LAAAtywAALgsAAC5LAAAuiwAALssAAC8LAAAvSwAAL4sAAC/LAAAwCwAAMEsAADCLAAAwywAAMQsAADFLAAAxiwAAMcsAADILAAAySwAAMosAADLLAAAzCwAAM0sAADOLAAAzywAANAsAADRLAAA0iwAANMsAADULAAA1SwAANYsAADXLAAA2CwAANksAADaLAAA2ywAANwsAADdLAAA3iwAAN8sAADgLAAA4SwAAOIsAADjLAAA6ywAAOwsAADtLAAA7iwAAPIsAADzLAAAQKYAAEGmAABCpgAAQ6YAAESmAABFpgAARqYAAEemAABIpgAASaYAAEqmAABLpgAATKYAAE2mAABOpgAAT6YAAFCmAABRpgAAUqYAAFOmAABUpgAAVaYAAFamAABXpgAAWKYAAFmmAABapgAAW6YAAFymAABdpgAAXqYAAF+mAABgpgAAYaYAAGKmAABjpgAAZKYAAGWmAABmpgAAZ6YAAGimAABppgAAaqYAAGumAABspgAAbaYAAICmAACBpgAAgqYAAIOmAACEpgAAhaYAAIamAACHpgAAiKYAAImmAACKpgAAi6YAAIymAACNpgAAjqYAAI+mAACQpgAAkaYAAJKmAACTpgAAlKYAAJWmAACWpgAAl6YAAJimAACZpgAAmqYAAJumAAAipwAAI6cAACSnAAAlpwAAJqcAACenAAAopwAAKacAACqnAAArpwAALKcAAC2nAAAupwAAL6cAADKnAAAzpwAANKcAADWnAAA2pwAAN6cAADinAAA5pwAAOqcAADunAAA8pwAAPacAAD6nAAA/pwAAQKcAAEGnAABCpwAAQ6cAAESnAABFpwAARqcAAEenAABIpwAASacAAEqnAABLpwAATKcAAE2nAABOpwAAT6cAAFCnAABRpwAAUqcAAFOnAABUpwAAVacAAFanAABXpwAAWKcAAFmnAABapwAAW6cAAFynAABdpwAAXqcAAF+nAABgpwAAYacAAGKnAABjpwAAZKcAAGWnAABmpwAAZ6cAAGinAABppwAAaqcAAGunAABspwAAbacAAG6nAABvpwAAeacAAHqnAAB7pwAAfKcAAH2nAAB5HQAAfqcAAH+nAACApwAAgacAAIKnAACDpwAAhKcAAIWnAACGpwAAh6cAAIunAACMpwAAjacAAGUCAACQpwAAkacAAJKnAACTpwAAlqcAAJenAACYpwAAmacAAJqnAACbpwAAnKcAAJ2nAACepwAAn6cAAKCnAAChpwAAoqcAAKOnAACkpwAApacAAKanAACnpwAAqKcAAKmnAACqpwAAZgIAAKunAABcAgAArKcAAGECAACtpwAAbAIAAK6nAABqAgAAsKcAAJ4CAACxpwAAhwIAALKnAACdAgAAs6cAAFOrAAC0pwAAtacAALanAAC3pwAAuKcAALmnAAC6pwAAu6cAALynAAC9pwAAvqcAAL+nAADApwAAwacAAMKnAADDpwAAxKcAAJSnAADFpwAAggIAAManAACOHQAAx6cAAMinAADJpwAAyqcAAMunAABkAgAAzKcAAM2nAADQpwAA0acAANanAADXpwAA2KcAANmnAADapwAA26cAANynAACbAQAA9acAAPanAAAh/wAAQf8AACL/AABC/wAAI/8AAEP/AAAk/wAARP8AACX/AABF/wAAJv8AAEb/AAAn/wAAR/8AACj/AABI/wAAKf8AAEn/AAAq/wAASv8AACv/AABL/wAALP8AAEz/AAAt/wAATf8AAC7/AABO/wAAL/8AAE//AAAw/wAAUP8AADH/AABR/wAAMv8AAFL/AAAz/wAAU/8AADT/AABU/wAANf8AAFX/AAA2/wAAVv8AADf/AABX/wAAOP8AAFj/AAA5/wAAWf8AADr/AABa/wAAAAQBACgEAQABBAEAKQQBAAIEAQAqBAEAAwQBACsEAQAEBAEALAQBAAUEAQAtBAEABgQBAC4EAQAHBAEALwQBAAgEAQAwBAEACQQBADEEAQAKBAEAMgQBAAsEAQAzBAEADAQBADQEAQANBAEANQQBAA4EAQA2BAEADwQBADcEAQAQBAEAOAQBABEEAQA5BAEAEgQBADoEAQATBAEAOwQBABQEAQA8BAEAFQQBAD0EAQAWBAEAPgQBABcEAQA/BAEAGAQBAEAEAQAZBAEAQQQBABoEAQBCBAEAGwQBAEMEAQAcBAEARAQBAB0EAQBFBAEAHgQBAEYEAQAfBAEARwQBACAEAQBIBAEAIQQBAEkEAQAiBAEASgQBACMEAQBLBAEAJAQBAEwEAQAlBAEATQQBACYEAQBOBAEAJwQBAE8EAQCwBAEA2AQBALEEAQDZBAEAsgQBANoEAQCzBAEA2wQBALQEAQDcBAEAtQQBAN0EAQC2BAEA3gQBALcEAQDfBAEAuAQBAOAEAQC5BAEA4QQBALoEAQDiBAEAuwQBAOMEAQC8BAEA5AQBAL0EAQDlBAEAvgQBAOYEAQC/BAEA5wQBAMAEAQDoBAEAwQQBAOkEAQDCBAEA6gQBAMMEAQDrBAEAxAQBAOwEAQDFBAEA7QQBAMYEAQDuBAEAxwQBAO8EAQDIBAEA8AQBAMkEAQDxBAEAygQBAPIEAQDLBAEA8wQBAMwEAQD0BAEAzQQBAPUEAQDOBAEA9gQBAM8EAQD3BAEA0AQBAPgEAQDRBAEA+QQBANIEAQD6BAEA0wQBAPsEAQBwBQEAlwUBAHEFAQCYBQEAcgUBAJkFAQBzBQEAmgUBAHQFAQCbBQEAdQUBAJwFAQB2BQEAnQUBAHcFAQCeBQEAeAUBAJ8FAQB5BQEAoAUBAHoFAQChBQEAfAUBAKMFAQB9BQEApAUBAH4FAQClBQEAfwUBAKYFAQCABQEApwUBAIEFAQCoBQEAggUBAKkFAQCDBQEAqgUBAIQFAQCrBQEAhQUBAKwFAQCGBQEArQUBAIcFAQCuBQEAiAUBAK8FAQCJBQEAsAUBAIoFAQCxBQEAjAUBALMFAQCNBQEAtAUBAI4FAQC1BQEAjwUBALYFAQCQBQEAtwUBAJEFAQC4BQEAkgUBALkFAQCUBQEAuwUBAJUFAQC8BQEAgAwBAMAMAQCBDAEAwQwBAIIMAQDCDAEAgwwBAMMMAQCEDAEAxAwBAIUMAQDFDAEAhgwBAMYMAQCHDAEAxwwBAIgMAQDIDAEAiQwBAMkMAQCKDAEAygwBAIsMAQDLDAEAjAwBAMwMAQCNDAEAzQwBAI4MAQDODAEAjwwBAM8MAQCQDAEA0AwBAJEMAQDRDAEAkgwBANIMAQCTDAEA0wwBAJQMAQDUDAEAlQwBANUMAQCWDAEA1gwBAJcMAQDXDAEAmAwBANgMAQCZDAEA2QwBAJoMAQDaDAEAmwwBANsMAQCcDAEA3AwBAJ0MAQDdDAEAngwBAN4MAQCfDAEA3wwBAKAMAQDgDAEAoQwBAOEMAQCiDAEA4gwBAKMMAQDjDAEApAwBAOQMAQClDAEA5QwBAKYMAQDmDAEApwwBAOcMAQCoDAEA6AwBAKkMAQDpDAEAqgwBAOoMAQCrDAEA6wwBAKwMAQDsDAEArQwBAO0MAQCuDAEA7gwBAK8MAQDvDAEAsAwBAPAMAQCxDAEA8QwBALIMAQDyDAEAUA0BAHANAQBRDQEAcQ0BAFINAQByDQEAUw0BAHMNAQBUDQEAdA0BAFUNAQB1DQEAVg0BAHYNAQBXDQEAdw0BAFgNAQB4DQEAWQ0BAHkNAQBaDQEAeg0BAFsNAQB7DQEAXA0BAHwNAQBdDQEAfQ0BAF4NAQB+DQEAXw0BAH8NAQBgDQEAgA0BAGENAQCBDQEAYg0BAIINAQBjDQEAgw0BAGQNAQCEDQEAZQ0BAIUNAQCgGAEAwBgBAKEYAQDBGAEAohgBAMIYAQCjGAEAwxgBAKQYAQDEGAEApRgBAMUYAQCmGAEAxhgBAKcYAQDHGAEAqBgBAMgYAQCpGAEAyRgBAKoYAQDKGAEAqxgBAMsYAQCsGAEAzBgBAK0YAQDNGAEArhgBAM4YAQCvGAEAzxgBALAYAQDQGAEAsRgBANEYAQCyGAEA0hgBALMYAQDTGAEAtBgBANQYAQC1GAEA1RgB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AACBHgAAgR8AAIEgAACBIQAAgSIAAIEjAACBJAAAgSUAAIEmAACBJwAAgSgAAIEpAACBKgAAgSsAAIEsAACBLQAAgS4AAIEvAACBMAAAgTEAAIEyAACBMwAAgTQAAIE1AACBNgAAgTcAAIE4AACBOQAAgToAAIE7AACBPAAAgT0AAIE+AACBPwAAgUAAAIFBAACBQgAAgUMAAIFEAACBRQAAgUYAAIFHAACBSAAAgUkAAIFKAACBSwAAgUwAAIFNAACBTgAAgU8AAIFQAACBUQAAgVIAAIFTAACBVAAAgVUAAIFWAACBVwAAgVgAAIFZAACBWgAAgVsAAIFcAACBXQAAgV4AAIFfAACBYAAAgWEAAIFiAACBYwAAgWQAAIFlAACBZgAAgWcAAIFoAACBaQAAgWoAAIFrAACBbAAAgW0AAIFuAACBbwAAgXAAAIFxAACBcgAAgXMAAIF0AACBdQAAgXYAAIF3AACBeAAAgXkAAIF6AACBewAAgXwAAIF9AACBfgAAgX8AAIGAAACBgQAAgYIAAIGDAACBhAAAgYUAAIGGAACBhwAAgYgAAIGJAACBigAAgYsAAIGMAACBjQAAgY4AAIGPAACBkAAAgZEAAIGSAACBkwAAgZQAAIGVAACBlgAAgZcAAIGYAACBmQAAgZoAAIGbAACBnAAAgZ0AAIGeAACBnwAAgaAAAIGhAACBogAAgaMAAIGkAACBpQAAgaYAAIGnAACBqAAAgakAAIGqAACBqwAAgawAAIGtAACBrgAAga8AAIGwAACBsQAAgbIAAIGzAACBtAAAgbUAAIG2AACBtwAAgbgAAIG5AACBugAAgbsAAIG8AACBvQAAgb4AAIG/AACBwAAAgcEAAIHCAACBwwAAgcQAAIHFAACBxgAAgccAAIHIAACByQAAgcoAAIHLAACBzAAAgc0AAIHOAACBzwAAgdAAAIHRAACB0gAAgdMAAIHUAACB1QAAgdYAAIHXAACB2AAAgdkAAIHaAACB2wAAgdwAAIHdAACB3gAAgd8AAIHgAACB4QAAgeIAAIHjAACB5AAAgeUAAIHmAACB5wAAgegAAIHpAACB6gAAgesAAIHsAACB7QAAge4AAIHvAACB8AAAgfEAAIHyAACB8wAAgfQAAIH1AACB9gAAgfcAAIH4AACB+QAAgfoAAIH7AACB/AAAgf0AAIH+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ZXRyaWMgaW50ZXJwcmV0YXRpb24gb2YgYSBDSUNQIGNvbG9yIHNwYWNlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGBUIxEATAAAAOiSEQABAAAAVGhlIGZpbGUgZXh0ZW5zaW9uICB3YXMgbm90IHJlY29nbml6ZWQgYXMgYW4gaW1hZ2UgZm9ybWF0AAAAsCMRABMAAADDIxEAJgAAAFRoZSBpbWFnZSBmb3JtYXQgY291bGQgbm90IGJlIGRldGVybWluZWRUaGUgaW1hZ2UgZm9ybWF0IAAAACQkEQARAAAAMCMRABEAAABUaGUgZGVjb2RlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmb3JtYXQgZmVhdHVyZSBIJBEAMAAAAFRoZSBkZWNvZGVyIGZvciAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZm9ybWF0IGZlYXR1cmVzIAAAgCQRABAAAACQJBEAJgAAAEVycgAAAAAABAAAAAQAAACtAQAARm9ybWF0RXJyb3JSaWZmU2lnbmF0dXJlSW52YWxpZFdlYnBTaWduYXR1cmVJbnZhbGlkQ2h1bmtNaXNzaW5nQ2h1bmtIZWFkZXJJbnZhbGlkUmVzZXJ2ZWRCaXRTZXRJbnZhbGlkQWxwaGFQcmVwcm9jZXNzaW5nSW52YWxpZENvbXByZXNzaW9uTWV0aG9kQWxwaGFDaHVua1NpemVNaXNtYXRjaEltYWdlVG9vTGFyZ2VGcmFtZU91dHNpZGVJbWFnZUxvc3NsZXNzU2lnbmF0dXJlSW52YWxpZFZlcnNpb25OdW1iZXJJbnZhbGlkSW52YWxpZENvbG9yQ2FjaGVCaXRzSHVmZm1hbkVycm9yQml0U3RyZWFtRXJyb3JUcmFuc2Zvcm1FcnJvclZwOE1hZ2ljSW52YWxpZE5vdEVub3VnaEluaXREYXRhQ29sb3JTcGFjZUludmFsaWRMdW1hUHJlZGljdGlvbk1vZGVJbnZhbGlkSW50cmFQcmVkaWN0aW9uTW9kZUludmFsaWRDaHJvbWFQcmVkaWN0aW9uTW9kZUludmFsaWRJbmNvbnNpc3RlbnRJbWFnZVNpemVzVW5zdXBwb3J0ZWRGZWF0dXJlSW52YWxpZFBhcmFtZXRlck1lbW9yeUxpbWl0RXhjZWVkZWRJbnZhbGlkQ2h1bmtTaXplTm9Nb3JlRnJhbWVzSW52YWxpZERpbWVuc2lvbnMAAAAABAAAAAQAAACuAQAAVHJ5UmVzZXJ2ZUVycm9yTGltaXRzRXhjZWVkZWQAAAC7AAAACAAAAAQAAAAWAAAAuwAAAAgAAAAEAAAAvAAAABYAAAAwJxEAvQAAAL4AAACyAAAAvwAAALMAAABVbnJlcHJlc2VudGFibGVJbnZhbGlkS2V5d29yZFNpemVNaXNzaW5nTnVsbFNlcGFyYXRvckluZmxhdGlvbkVycm9yT3V0T2ZEZWNvbXByZXNzaW9uU3BhY2VJbnZhbGlkQ29tcHJlc3Npb25GbGFnTWlzc2luZ0NvbXByZXNzaW9uRmxhZwAAAAAAAAQAAAAEAAAAwAAAAAAAAAAEAAAABAAAAGMAAABDcmNNaXNtYXRjaGNyY192YWxjcmNfc3VtSW52YWxpZFNpZ25hdHVyZU1pc3NpbmdGY3RsTWlzc2luZ0ltYWdlRGF0YUNodW5rQmVmb3JlSWhkckFmdGVySWRhdEJlZm9yZVBsdGVBZnRlclBsdGVPdXRzaWRlUGx0ZUlkYXREdXBsaWNhdGVDaHVua0FwbmdPcmRlcnByZXNlbnRTaG9ydFBhbGV0dGVsZW4AAAAAAAEAAAABAAAArwEAAEludmFsaWRTYml0Q2h1bmtTaXplY29sb3JfdHlwZQAAAAAAAAEAAAABAAAAsAEAAEludmFsaWRTYml0c2FtcGxlX2RlcHRoc2JpdFBhbGV0dGVSZXF1aXJlZAAAAAAAAAQAAAAEAAAAsQEAAEludmFsaWRDb2xvckJpdERlcHRoYml0X2RlcHRoQ29sb3JXaXRoQmFkVHJuc0ludmFsaWRCaXREZXB0aEludmFsaWRDb2xvclR5cGVJbnZhbGlkRGlzcG9zZU9wSW52YWxpZEJsZW5kT3BJbnZhbGlkVW5pdEludmFsaWRTcmdiUmVuZGVyaW5nSW50ZW50VW5rbm93bkNvbXByZXNzaW9uTWV0aG9kVW5rbm93bkZpbHRlck1ldGhvZFVua25vd25JbnRlcmxhY2VNZXRob2RCYWRTdWJGcmFtZUJvdW5kcwAAAAAAAAAEAAAABAAAALIBAABDb3JydXB0RmxhdGVTdHJlYW1lcnJOb01vcmVJbWFnZURhdGFCYWRUZXh0RW5jb2RpbmdGZGF0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AB4AAAB2JRAAXwAAAAsJAAAXAAAAdiUQAF8AAAAPCQAAJgAAAHYlEABfAAAAEgkAACIAAAB2JRAAXwAAAAwJAAAdAAAAdiUQAF8AAACBCAAABQAAAHYlEABfAAAAhAgAACYAAAB2JRAAXwAAAIgIAAArAAAAdiUQAF8AAACICAAAIAAAAHYlEABfAAAAJQgAAEUAAAB2JRAAXwAAADgIAAAxAAAAdiUQAF8AAAAiCAAAHgAAAHYlEABfAAAAHAgAAEEAAAAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADwAPgBAAEIARABGAEgASgBMAE4AUABSAFQAVgBYAFoAXABeAGAAYgBkAGYAaABqAGwAbgBwAHIAdAB3AHoAfQCAAIMAhgCJAIwAjwCSAJUAmACbAJ4AoQCkAKcAqgCtALEAtQC5AL0AwQDFAMkAzQDRANUA2QDdAOEA5QDqAO8A9QD5AP4AAwEIAQ0BEgEXARwBBAAFAAYABwAIAAkACgAKAAsADAANAA4ADwAQABEAEQASABMAFAAUABUAFQAWABYAFwAXABgAGQAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACUAJgAnACgAKQAqACsALAAtAC4ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWwBdAF8AYABiAGQAZQBmAGgAagBsAG4AcAByAHQAdgB6AHwAfgCAAIIAhACGAIgAigCMAI8AkQCUAJcAmgCdAHYlEABfAAAAaAgAADAAAAB2JRAAXwAAAFwIAAA7AAAAawIQAF8AAABgAAAANQAAAGsCEABfAAAAYwAAAEEAAABrAhAAXwAAAJUAAAAZAAAAawIQAF8AAACUAAAAGQAAAGsCEABfAAAAkwAAABkAAABrAhAAXwAAAJAAAAAkAAAAawIQAF8AAACPAAAAJAAAAGsCEABfAAAAeAAAABUAAABrAhAAXwAAAHcAAAAVAAAAawIQAF8AAAB2AAAAFQAA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UDggY2hyb21hIHByZWRpY3Rpb24gbW9kZTog+DsRACQAAABJbmNvbnNpc3RlbnQgaW1hZ2Ugc2l6ZXNVbnN1cHBvcnRlZCBmZWF0dXJlOiAAAAA8PBEAFQAAAEludmFsaWQgcGFyYW1ldGVyOiAAXDwRABMAAABNZW1vcnkgbGltaXQgZXhjZWVkZWRJbnZhbGlkIGNodW5rIHNpemVObyBtb3JlIGZyYW1lc2Nsb3N1cmUgaW52b2tlZCByZWN1cnNpdmVseSBvciBhZnRlciBiZWluZyBkcm9wcGVkAC0kEABcAAAAhTUAAAEAAAA3NDMyMTAvLi1n8kJD5SwrKikoJyYlJCMiITggHx4dHP+UpJWIoJut3d6GeujK1+DQ3My7t7OxqLLI4sOauK5+eL+dwqq9oqGWwY6Jq7C5p7pwr8C8nIyPe4WAk4qSct+X+dju7P3j2ub3h7Tx6fb054v18/vrycTw1pi2zbV/G9TT0tXkxamfg6xpUGJgYVHPkXRzkIKZeWuEbW58b1Jsdo1xgXd9pXVcalNIY11BT6bto8e+4dHLxtnbzur4nu//////////////////////////////////////////////////////////////////////////////////////mwEQAGcAAADZAQAAHQAAAJsBEABnAAAA2gEAABkAAACbARAAZwAAADECAAAbAAAAmwEQAGcAAAAyAgAAHQAAABYMEAByAAAAKgAAABMAAADYHRAAaAAAANMAAAAcAAAAHBgQAGkAAABrBgAAGgAAABwYEABpAAAAawYAADYAAAAcGBAAaQAAAF4GAAAoAAAAFgwQAHIAAAAgAAAACQAAABwYEABpAAAAcwcAAD4AQaj9xAAL2RoBAQEBAgICAgMDAwMEBAQEBQUFBQAAAAADAAQABQAGAAcACAAJAAoACwANAA8AEQATABcAGwAfACMAKwAzADsAQwBTAGMAcwCDAKMAwwDjAAIBAAIAAgACHBgQAGkAAADZBwAATQAAABwYEABpAAAAPAYAAC0AAAAcGBAAaQAAADwGAAAZAAAAHBgQAGkAAACEBgAAIAAAAAEBAQAEAAEAAgADAAQABQAHAAkADQARABkAIQAxAEEAYQCBAMEAAQGBAQECAQMBBAEGAQgBDAEQARgBIAEwAUABYAAAHBgQAGkAAAARAgAAKAAAAAAAAIAAQADAACAAoABgAOAAEACQAFAA0AAwALAAcADwAAgAiABIAMgAKACoAGgA6AAYAJgAWADYADgAuAB4APgABACEAEQAxAAkAKQAZADkABQAlABUANQANAC0AHQA9AAMAIwATADMACwArABsAOwAHACcAFwA3AA8ALwAfAD8AAIAggBCAMIAIgCiAGIA4gASAJIAUgDSADIAsgByAPIACgCKAEoAygAqAKoAagDqABoAmgBaANoAOgC6AHoA+gAGAIYARgDGACYApgBmAOYAFgCWAFYA1gA2ALYAdgD2AA4AjgBOAM4ALgCuAG4A7gAeAJ4AXgDeAD4AvgB+AP4AAQCBAEEAwQAhAKEAYQDhABEAkQBRANEAMQCxAHEA8QAJAIkASQDJACkAqQBpAOkAGQCZAFkA2QA5ALkAeQD5AAUAhQBFAMUAJQClAGUA5QAVAJUAVQDVADUAtQB1APUADQCNAE0AzQAtAK0AbQDtAB0AnQBdAN0APQC9AH0A/QADAIMAQwDDACMAowBjAOMAEwCTAFMA0wAzALMAcwDzAAsAiwBLAMsAKwCrAGsA6wAbAJsAWwDbADsAuwB7APsABwCHAEcAxwAnAKcAZwDnABcAlwBXANcANwC3AHcA9wAPAI8ATwDPAC8ArwBvAO8AHwCfAF8A3wA/AL8AfwD/gACAgIBAgMCAIICggGCA4IAQgJCAUIDQgDCAsIBwgPCACICIgEiAyIAogKiAaIDogBiAmIBYgNiAOIC4gHiA+IAEgISARIDEgCSApIBkgOSAFICUgFSA1IA0gLSAdID0gAyAjIBMgMyALICsgGyA7IAcgJyAXIDcgDyAvIB8gPyAAoCCgEKAwoAigKKAYoDigBKAkoBSgNKAMoCygHKA8oAKgIqASoDKgCqAqoBqgOqAGoCagFqA2oA6gLqAeoD6gAaAhoBGgMaAJoCmgGaA5oAWgJaAVoDWgDaAtoB2gPaADoCOgE6AzoAugK6AboDugB6AnoBegN6APoC+gH6A/oABgIGAQYDBgCGAoYBhgOGAEYCRgFGA0YAxgLGAcYDxgAmAiYBJgMmAKYCpgGmA6YAZgJmAWYDZgDmAuYB5gPmABYCFgEWAxYAlgKWAZYDlgBWAlYBVgNWANYC1gHWA9YANgI2ATYDNgC2ArYBtgO2AHYCdgF2A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AAQAAAABAAAAxQEAAHR5cGUAAAAAAQAAAAEAAADGAQAAY3JpdGljYWxwcml2YXRlcmVzZXJ2ZWRzYWZlY29weU9uZVR3b0ZvdXJFaWdodFNpeHRlZW5HcmF5c2NhbGVSZ2JJbmRleGVkR3JheXNjYWxlQWxwaGFSZ2JhAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAHdyb25nIGRhdGEgc2l6ZSwgZXhwZWN0ZWQgIGdvdCAAOE4RABoAAABSThEABQAAAEVuZCBvZiBpbWFnZSBoYXMgYmVlbiByZWFjaGVkQSBmYXRhbCBkZWNvZGluZyBlcnJvciBoYXMgYmVlbiBlbmNvdW50ZWQgZWFybGllckNSQyBlcnJvcjogZXhwZWN0ZWQgMHggaGF2ZSAweCB3aGlsZSBkZWNvZGluZyAgY2h1bmsuALZOEQAWAAAAzE4RAAgAAADUThEAEAAAAOROEQAHAAAASW52YWxpZCBQTkcgc2lnbmF0dXJlLmZjVEwgY2h1bmsgbWlzc2luZyBiZWZvcmUgZmRBVCBjaHVuay5JREFUIG9yIGZkQVQgY2h1bmsgaXMgbWlzc2luZy4gY2h1bmsgYXBwZWFyZWQgYmVmb3JlIElIRFIgY2h1bmsAAAEAAAAAAAAAZU8RACEAAABDaHVuayAgaXMgaW52YWxpZCBhZnRlciBJREFUIGNodW5rLgCYTxEABgAAAJ5PEQAdAAAAIGlzIGludmFsaWQgYmVmb3JlIFBMVEUgY2h1bmsuAACYTxEABgAAAMxPEQAeAAAAIGlzIGludmFsaWQgYWZ0ZXIgUExURSBjaHVuay4AAACYTxEABgAAAPxPEQAdAAAAIG11c3QgYXBwZWFyIGJldHdlZW4gUExURSBhbmQgSURBVCBjaHVua3MuAACYTxEABgAAACxQEQAqAAAAIG11c3QgYXBwZWFyIGF0IG1vc3Qgb25jZS4AAJhPEQAGAAAAaFARABoAAABTZXF1ZW5jZSBpcyBub3QgaW4gb3JkZXIsIGV4cGVjdGVkICMgZ290ICMAAJRQEQAkAAAAuFARAAYAAADsXBEAAQAAAE5vdCBlbm91Z2ggcGFsZXR0ZSBlbnRyaWVzLCBleHBlY3QgANhQEQAjAAAAUk4RAAUAAADsXBEAAQAAAFRoZSBzaXplIG9mIHRoZSBzQklUIGNodW5rIHNob3VsZCBiZSAgYnl0ZShzKSwgYnV0ICBieXRlKHMpIHdlcmUgcHJvdmlkZWQgZm9yIHRoZSAgY29sb3IgdHlwZS4AABRREQAlAAAAOVERAA4AAABHUREAHwAAAGZREQAMAAAASW52YWxpZCBzQklUIHZhbHVlIC4gSXQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIHRoZSBzYW1wbGUgZGVwdGggAAAAlFERABMAAACnUREAPgAAAOxcEQABAAAATWlzc2luZyBwYWxldHRlIG9mIGluZGV4ZWQgaW1hZ2UuSW52YWxpZCBjb2xvci9kZXB0aCBjb21iaW5hdGlvbiBpbiBoZWFkZXI6IC8AAAAhUhEAKwAAAExSEQABAAAAVHJhbnNwYXJlbmN5IGNodW5rIGZvdW5kIGZvciBjb2xvciB0eXBlIGBSEQAoAAAA7FwRAAEAAABJbnZhbGlkIGltYWdlIGRpbWVuc2lvbnNJbnZhbGlkIGJpdCBkZXB0aCAAALBSEQASAAAA7FwRAAEAAABJbnZhbGlkIGNvbG9yIHR5cGUgANRSEQATAAAA7FwRAAEAAABJbnZhbGlkIGRpc3Bvc2Ugb3AgAPhSEQATAAAA7FwRAAEAAABJbnZhbGlkIGJsZW5kIG9wIAAAABxTEQARAAAA7FwRAAEAAABJbnZhbGlkIHBoeXNpY2FsIHBpeGVsIHNpemUgdW5pdCAAAABAUxEAIQAAAOxcEQABAAAASW52YWxpZCBzUkdCIHJlbmRlcmluZyBpbnRlbnQgAAB0UxEAHgAAAOxcEQABAAAAVW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QgAKRTEQAbAAAA7FwRAAEAAABVbmtub3duIGZpbHRlciBtZXRob2QgAADQUxEAFgAAAOxcEQABAAAAVW5rbm93biBpbnRlcmxhY2UgbWV0aG9kIAAAAPhTEQAZAAAA7FwRAAEAAABTdWIgZnJhbWUgaXMgb3V0LW9mLWJvdW5kcy5Db3JydXB0IGRlZmxhdGUgc3RyZWFtLiBJREFUIG9yIGZEQVQgY2h1bmsgZG9lcyBub3QgaGF2ZSBlbm91Z2ggZGF0YSBmb3IgaW1hZ2UuVW5yZXByZXNlbnRhYmxlIGRhdGEgaW4gdEVYdCBjaHVuay4AAACOVBEAIwAAAEtleXdvcmQgZW1wdHkgb3IgbG9uZ2VyIHRoYW4gNzkgYnl0ZXMuAAC8VBEAJgAAAE5vIG51bGwgc2VwYXJhdG9yIGluIHRFWHQgY2h1bmsu7FQRACAAAABJbnZhbGlkIGNvbXByZXNzZWQgdGV4dCBkYXRhLgAAABRVEQAdAAAAT3V0IG9mIGRlY29tcHJlc3Npb24gc3BhY2UuIFRyeSB3aXRoIGEgbGFyZ2VyIGxpbWl0LjxVEQA0AAAAVXNpbmcgYW4gdW5yZWNvZ25pemVkIGJ5dGUgYXMgY29tcHJlc3Npb24gbWV0aG9kLgAAAHhVEQAxAAAAVXNpbmcgYSBmbGFnIHRoYXQgaXMgbm90IDAgb3IgMjU1IGFzIGEgY29tcHJlc3Npb24gZmxhZyBmb3IgaVRYdCBjaHVuay4AtFURAEcAAABObyBjb21wcmVzc2lvbiBmbGFnIGluIHRoZSBpVFh0IGNodW5rLgAABFYRACYAAABmZEFUIGNodW5rIHNob3J0ZXIgdGhhbiA0IGJ5dGVzVW5leHBlY3RlZCByZXN0YXJ0IG9mICBjaHVuayBzZXF1ZW5jZVNWEQAWAAAAaVYRAA8AAABDaHVuayBsZW5ndGggd3Jvbmc6IIhWEQAUAAAAVW5yZWNvZ25pemVkIGNyaXRpY2FsIGNodW5rOiAAAACkVhEAHQAAAEJhZCBnYW1tYSB2YWx1ZS5saW1pdHMgYXJlIGV4Y2VlZGVkQmFkWmxpYkhlYWRlckluc3VmZmljaWVudElucHV0SW52YWxpZEJsb2NrVHlwZUludmFsaWRVbmNvbXByZXNzZWRCbG9ja0xlbmd0aEludmFsaWRIbGl0SW52YWxpZEhkaXN0SW52YWxpZENvZGVMZW5ndGhSZXBlYXRCYWRDb2RlTGVuZ3RoSHVmZm1hblRyZWVCYWRMaXRlcmFsTGVuZ3RoSHVmZm1hblRyZWVCYWREaXN0YW5jZUh1ZmZtYW5UcmVlSW52YWxpZExpdGVyYWxMZW5ndGhDb2RlSW52YWxpZERpc3RhbmNlQ29kZUlucHV0U3RhcnRzV2l0aFJ1bkRpc3RhbmNlVG9vRmFyQmFja1dyb25nQ2hlY2tzdW1FeHRyYUlucHV0MAAAAAEnEAAqAAAAHgEA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dgMAABkAAABrIRAAYgAAAHcDAAAZAAAAayEQAGIAAAB4AwAAGQAAAGshEABiAAAAeQMAABkAAABrIRAAYgAAANQDAAARAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAABAAIAAwAEAAUABgAHAAgACQD//////////////////woACwAMAA0ADgAPAP////////////////////////////////////////////////////////////////////8KAAsADAANAA4ADwD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AABAAIAAwAEAAUABgAHAAgACQAP//////////////////oACwAMAA0ADgAPAA/////////////////////////////////////////////////////////////////////6AAsADAANAA4ADwAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2shEABiAAAAswEAABoAAABrIRAAYgAAAAACAAATAAAAayEQAGIAAAAFAgAAMwAAAGshEABiAAAACQIAAD4AAABrIRAAYgAAAA8CAAA6AAAAayEQAGIAAACrAQAAPQAAAGshEABiAAAApgEAAEUAAAAgYXQgbGluZSAAAABCCRAAYwAAAPcBAAAhAAAAQgkQAGMAAAD7AQAADAAAACBjb2x1bW4gQgkQAGMAAAACAgAAIQAAAEIJEABjAAAACwIAACoAAABCCRAAYwAAAA8CAAAsAAAAQgkQAGMAAAAUAgAACQAAAGluZi1pbmZOYU4AALQAAAAMAAAABAAAAIkBAACKAQAA0gEAQZiexgAL5Q0BAAAAuAAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkAwhUQAEsAAAAFCwAADgAAAPYQEABPAAAAPAYAABQAAAD2EBAATwAAADwGAAAhAAAA9hAQAE8AAAAwBgAAFAAAAPYQEABPAAAAMAYAACEAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAACojxEAsAAAALEAAACyAAAAsAAAALMAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmlzX2NoYXJfYm91bmRhcnkobmV3X2xlbilFcnJvcigsIGxpbmU6ICwgY29sdW1uOiAUkBEABgAAABqQEQAIAAAAIpARAAoAAABeBxIAAQAAAGludmFsaWQgdmFsdWU6IABMkBEADwAAABqTEQALAAAARU9GIHdoaWxlIHBhcnNpbmcgYSBsaXN0RU9GIHdoaWxlIHBhcnNpbmcgYW4gb2JqZWN0RU9GIHdoaWxlIHBhcnNpbmcgYSBzdHJpbmdFT0Ygd2hpbGUgcGFyc2lu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AAB2JRAAXwAAAL4FAAA1AAAAdiUQAF8AAAC+BQAAJQAAAHYlEABfAAAAvAUAADoAAABWUDggaW50ZXItcHJlZGljdGlvboQBkQACA5wBgIGjAoKDgAN2JRAAXwAAADUFAAAvAAAAgAHnAIECeAGCAzACBAZZA4MFcwSFhnEFhAd4BocImAeIiXAIgAGYAIECswGCA0ACBAZ+A4MFqgSFhnYFhAcuBocIRgeIiV8IgAGvAIECRQGCA48CBAZQA4MFVQSFhlIFhAdIBocImweIiWcIgAE4AIECOgGCAwoCBAarA4MF2gSFhr0FhAcRBocIDQeIiZgIgAGQAIECRwGCAwoCBAYmA4MFqwSFhtUFhAeQBocIIgeIiRoIgAFyAIECGgGCAxECBAajA4MFLASFhsMFhAcVBocICgeIia0IgAF5AIECGAGCA1ACBAbDA4MFGgSFhj4FhAcsBocIQAeIiVUIgAGqAIECLgGCAzcCBAYTA4MFiASFhqAFhAchBocIzgeIiUcIgAE/AIECFAGCAwgCBAZyA4MFcgSFhtAFhAcMBocICQeIieIIgAFRAIECKAGCAwsCBAZgA4MFtgSFhlQFhAcdBocIEAeIiSQIgAGGAIECtwGCA1kCBAaJA4MFYgSFhmUFhAdqBocIpQeIiZQIgAFIAIECuwGCA2QCBAaCA4MFnQSFhm8FhAcgBocISweIiVAIgAFCAIECZgGCA6cCBAZjA4MFSgSFhj4FhAcoBocI6geIiYAIgAEpAIECNQGCAwkCBAayA4MF8QSFho0FhAcaBocICAeIiWsIgAFoAIECTwGCAwwCBAYbA4MF2QSFhv8FhAdXBocIEQeIiQcIgAFKAIECKwGCAxoCBAaSA4MFSQSFhqYFhAcxBocIFweIiZ0IgAFBAIECJgGCA2kCBAagA4MFMwSFhjQFhAcfBocIcweIiYAIgAFXAIECRAGCA0cCBAYsA4MFcgSFhjMFhAcPBocIugeIiRcIgAEvAIECKQGCAw4CBAZuA4MFtgSFhrcFhAcVBocIEQeIicIIgAFCAIECLQGCAxkCBAZmA4MFxQSFhr0FhAcXBocIEgeIiRYIgAFYAIECWAGCA5MCBAaWA4MFKgSFhi4FhActBocIxAeIic0IgAErAIECYQGCA7cCBAZ1A4MFVQSFhiYFhAcjBocIsweIiT0IgAEnAIECNQGCA8gCBAZXA4MFGgSFhhUFhAcrBocI6AeIiasIgAE4AIECIgGCAzMCBAZoA4MFcgSFhmYFhAcdBocIXQeIiU0IgAFrAIECNgGCAyACBAYaA4MFMwSFhgEFhAdRBocIKweIiR8IgAEnAIECHAGCA1UCBAarA4MFOgSFhqUFhAdaBocIYgeIiUAIgAEiAIECFgGCA3QCBAbOA4MFFwSFhiIFhAcrBocIpgeIiUkIgAFEAIECGQGCA2oCBAYWA4MFQASFhqsFhAckBocI4QeIiXIIgAEiAIECEwGCAxUCBAZmA4MFhASFhrwFhAcQBocITAeIiXwIgAE+AIECEgGCA04CBAZfA4MFVQSFhjkFhAcyBocIMAeIiTMIgAHBAIECZQGCAyMCBAafA4MF1wSFhm8FhAdZBocILgeIiW8IgAE8AIEClAGCAx8CBAasA4MF2wSFhuQFhAcVBocIEgeIiW8IgAFwAIECcQGCA00CBAZVA4MFswSFhv8FhAcmBocIeAeIiXIIgAEoAIECKgGCAwECBAbEA4MF9QSFhtEFhAcKBocIGQeIiW0IgAFkAIECUAGCAwgCBAYrA4MFmgSFhgEFhAczBocIGgeIiUcIgAFYAIECKwGCAx0CBAaMA4MFpgSFhtUFhAclBocIKweIiZoIgAE9AIECPwGCAx4CBAabA4MFQwSFhi0FhAdEBocIAQeIidEIgAGOAIECTgGCA04CBAYQA4MF/wSFhoAFhAciBocIxQeIiasIgAEpAIECKAGCAwUCBAZmA4MF0wSFhrcFhAcEBocIAQeIid0IgAEzAIECMgGCAxECBAaoA4MF0QSFhsAFhAcXBocIGQeIiVIIgAF9AIECYgGCAyoCBAZYA4MFaASFhlUFhAd1BocIrweIiVIIgAFfAIECVAGCAzUCBAZZA4MFgASFhmQFhAdxBocIZQeIiS0IgAFLAIECTwGCA3sCBAYvA4MFMwSFhoAFhAdRBocIqweIiQEIgAE5AIECEQGCAwUCBAZHA4MFZgSFhjkFhAc1BocIKQeIiTEIgAFzAIECFQGCAwICBAYKA4MFZgSFhv8FhAemBocIFweIiQYIgAEmAIECIQGCAw0CBAZ5A4MFOQSFhkkFhAcaBocIAQeIiVUIgAEpAIECCgGCA0MCBAaKA4MFTQSFhm4FhAdaBocILweIiXIIgAFlAIECHQGCAxACBAYKA4MFVQSFhoAFhAdlBocIxAeIiRoIgAE5AIECEgGCAwoCBAZmA4MFZgSFhtUFhAciBocIFAeIiSsIgAF1AIECFAGCAw8CBAYkA4MFowSFhoAFhAdEBocIAQeIiRoIgAGKAIECHwGCAyQCBAarA4MFGwSFhqYFhAcmBocILAeIieUIgAFDAIECVwGCAzoCBAapA4MFUgSFhnMFhAcaBocIOweIibMIgAE/AIECOwGCA1oCBAa0A4MFOwSFhqYFhAddBocISQeIiZoIgAEoAIECKAGCAxUCBAZ0A4MFjwSFhtEFhAciBocIJweIia8IgAE5AIECLgGCAxYCBAYYA4MFgASFhgEFhAc2BocIEQeIiSUIgAEvAIECDwGCAxACBAa3A4MFIgSFht8FhAcxBocILQeIibcIgAEuAIECEQGCAyECBAa3A4MFBgSFhmIFhAcPBocIIAeIibcIgAFBAIECIAGCA0kCBAZzA4MFHASFhoAFhAcXBocIgAeIic0IgAEoAIECAwGCAwkCBAZzA4MFMwSFhsAFhAcSBocIBgeIid8IgAFXAIECJQGCAwkCBAZzA4MFOwSFhk0FhAdABocIFQeIiS8IgAFoAIECNwGCAywCBAbaA4MFCQSFhjYFhAc1BocIggeIieIIgAFAAIECWgGCA0YCBAbNA4MFKASFhikFhAcXBocIGgeIiTkIgAE2AIECOQGCA3ACBAa4A4MFBQSFhikFhAcmBocIpgeIidUIgAEeAIECIgGCAxoCBAaFA4MFmASFhnQFhAcKBocIIAeIiYYIgAFLAIECIAGCAwwCBAYzA4MFwASFhv8FhAegBocIKweIiTMIgAEnAIECEwGCAzUCBAbdA4MFGgSFhnIFhAcgBocISQeIif8IgAEfAIECCQGCA0ECBAbqA4MFAgSFhg8FhAcBBocIdgeIiUkIgAFYAIECHwGCAyMCBAZDA4MFZgSFhlUFhAc3BocIugeIiVUIgAE4AIECFQGCAxcCBAZvA4MFOwSFhs0FhActBocIJQeIicAIgAE3AIECJgGCA0YCBAZ8A4MFSQSFhmYFhAcBBocIIgeIiWIIgAFmAIECPQGCA0cCBAYlA4MFIgSFhjUFhAcfBocI8weIicAIgAFFAIECPAGCA0cCBAYmA4MFSQSFhncFhAccBocI3geIiSUIgAFEAIECLQGCA4ACBAYiA4MFAQSFhi8FhAcLBocI9QeIiasIgAE+AIECEQGCAxMCBAZGA4MFkgSFhlUFhAc3BocIPgeIiUYIgAFLAIECDwGCAwkCBAYJA4MFQASFhv8FhAe4BocIdweIiRAIgAElAIECKwGCAyUCBAaaA4MFZASFhqMFhAdVBocIoAeIiQEIgAE/AIECCQGCA1wCBAaIA4MFHASFhkAFhAcgBocIyQeIiVUIgAFWAIECBgGCAxwCBAYFA4MFQASFhv8FhAcZBocI+AeIiQEIgAE4AIECCAGCAxECBAaEA4MFiQSFhv8FhAc3BocIdAeIiYAIgAE6AIECDwGCAxQCBAZSA4MFhwSFhjkFhAcaBocIeQeIiSgIgAGkAIECMgGCAx8CBAaJA4MFmgSFhoUFhAcZBocIIweIidoIgAEzAIECZwGCAywCBAaDA4MFgwSFhnsFhAcfBocIBgeIiZ4IgAFWAIECKAGCA0ACBAaHA4MFlASFhuAFhActBocItweIiYAIgAEWAIECGgGCAxECBAaDA4MF8ASFhpoFhAcOBocIAQeIidEIgAFTAIECDAGCAw0CBAY2A4MFwASFhv8FhAdEBocILweIiRwIgAEtAIECEAGCAxUCBAZbA4MFQASFht4FhAcHBocIAQeIicUIgAE4AIECFQGCAycCBAabA4MFPASFhooFhAcXBocIZgeIidUIgAFVAIECGgGCA1UCBAZVA4MFgASFhoAFhAcgBocIkgeIiasIgAESAIECCwGCAwcCBAY/A4MFkASFhqsFhAcEBocIBAeIifYIgAEjAIECGwGCAwoCBAaSA4MFrgSFhqsFhAcMBocIGgeIiYAIgAG+AIECUAGCAyMCBAZjA4MFtASFhlAFhAd+BocINgeIiS0IgAFVAIECfgGCAy8CBAZXA4MFsASFhjMFhAcpBocIFAeIiSAIgAFlAIECSwGCA4ACBAaLA4MFdgSFhpIFhAd0BocIgAeIiVUIgAE4AIECKQGCAw8CBAawA4MF7ASFhlUFhAclBocICQeIiT4IgAGSAIECJAGCAxMCBAYeA4MFqwSFhv8FhAdhBocIGweIiRQIgAFHAIECHgGCAxECBAZ3A4MFdgSFhv8FhAcRBocIEgeIiYoIgAFlAIECJgGCAzwCBAaKA4MFNwSFhkYFhAcrBocIGgeIiY4IgAGKAIECLQGCAz0CBAY+A4MF2wSFhgEFhAdRBocIvAeIiUAIgAEgAIECKQGCAxQCBAZ1A4MFlwSFho4FhAcUBocIFQeIiaMIgAFwAIECEwGCAwwCBAY9A4MFwwSFhoAFhAcwBocIBAeIiRgIdiUQAF8AAAA/BQAAJQAAAIABjgCBAnIBgoO3AnYlEABfAAAAUQUAABEAAAB2JRAAXwAAAFIFAAARAAAAdiUQAF8AAABTBQAAEQAAAP///////////////////////////////////////////7D2////////////3/H8///////////5/f3////////////0/P//////////6v7+///////////9///////////////2/v//////////7/3+///////////+//7////////////4/v//////////+//+///////////////////////////9/v//////////+/7+///////////+//7////////////+/f/+////////+v/+//7////////+/////////////////////////////////////////////////////////9n/////////////4fzx/f///v/////q+vH6/f/9/v/////+////////////3/7+///////////u/f7+///////////4/v//////////+f7////////////////////////////9////////////9/7////////////////////////////9/v///////////P/////////////////////////////+/v///////////f/////////////////////////////+/f//////////+v/////////////+/////////////////////////////////////////////////////////7r7+v//////////6vv0/v/////////7+/P9/v/+///////9/v//////////7P3+///////////7/f3+/v/////////+/v///////////v7+///////////////////////////+/////////////v7////////////+/////////////////////////////v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////j/////////////+v78/v/////////4/vn9///////////9/f//////////9v39///////////8/vv+/v/////////+/P//////////+P79///////////9//7+///////////7/v//////////9fv+///////////9/f7////////////7/f///////////P3+/////////////v/////////////8////////////+f/+//////////////7//////////////f//////////+v///////////////////////////////////////////v///////////////////////////3YlEABfAAAAVwcAABcAAACLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAKIAYED/gIEBv8DggXkBIOE2wUHCIAGhYaABwkKgAiHiIAJiYqACosBvQCAAoEBgQPyAgQG/wOCBeMEg4TVBQcI/waFhtsHCQqACIeIgAmJioAKiwFqAIACfgGBA+MCBAb8A4IF1gSDhNEFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJiAYED+AIEBv8DggXsBIOE4gUHCP8GhYb/BwkKgAiHiIAJiYqACosBtQCAAoUBgQPuAgQG/gOCBd0Eg4TqBQcI/waFhpoHCQqACIeIgAmJioAKiwFOAIAChgGBA8oCBAb3A4IFxgSDhLQFBwj/BoWG2wcJCoAIh4iACYmKgAqLAQEAgAK5AYED+QIEBv8DggXzBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBuACAApYBgQP3AgQG/wOCBewEg4TgBQcIgAaFhoAHCQqACIeIgAmJioAKiwFNAIACbgGBA9gCBAb/A4IF7ASDhOYFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAJlAYED+wIEBv8DggXxBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBqgCAAosBgQPxAgQG/AOCBewEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwElAIACdAGBA8QCBAbzA4IF5ASDhP8FBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgALMAYED/gIEBv8DggX1BIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBzwCAAqABgQP6AgQG/wOCBe4Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwFmAIACZwGBA+cCBAb/A4IF0wSDhKsFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKYAYED/AIEBv8DggXwBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBsQCAAocBgQPzAgQG/wOCBeoEg4ThBQcIgAaFhoAHCQqACIeIgAmJioAKiwFQAIACgQGBA9MCBAb/A4IFwgSDhOAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9gCAAgEBgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwH/AIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcYAgAIjAYED7QIEBt8DggXBBIOEuwUHCKIGhYagBwkKkQiHiJsJiYo+CosBgwCAAi0BgQPGAgQG3QOCBawEg4SwBQcI3AaFhp0HCQr8CIeI3QmJigEKiwFEAIACLwGBA5ICBAbQA4IFlQSDhKcFBwjdBoWGogcJCv8Ih4jfCYmKgAqLAQEAgAKVAYED8QIEBv8DggXdBIOE4AUHCP8GhYb/BwkKgAiHiIAJiYqACosBuACAAo0BgQPqAgQG/QOCBd4Eg4TcBQcI/waFhscHCQqACIeIgAmJioAKiwFRAIACYwGBA7UCBAbyA4IFsASDhL4FBwj5BoWGygcJCv8Ih4j/CYmKgAqLAQEAgAKBAYED6AIEBv0DggXWBIOExQUHCPIGhYbEBwkK/wiHiP8JiYqACosBYwCAAnkBgQPSAgQG+gOCBckEg4TGBQcI/waFhsoHCQqACIeIgAmJioAKiwEXAIACWwGBA6MCBAbyA4IFqgSDhLsFBwj3BoWG0gcJCv8Ih4j/CYmKgAqLAQEAgALIAYED9gIEBv8DggXqBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBbQCAArIBgQPxAgQG/wOCBecEg4T1BQcI/waFhv8HCQqACIeIgAmJioAKiwEsAIACggGBA8kCBAb9A4IFzQSDhMAFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAKEAYED7wIEBvsDggXbBIOE0QUHCP8GhYalBwkKgAiHiIAJiYqACosBXgCAAogBgQPhAgQG+wOCBdoEg4S+BQcI/waFhv8HCQqACIeIgAmJioAKiwEWAIACZAGBA64CBAb1A4IFugSDhKEFBwj/BoWGxwcJCoAIh4iACYmKgAqLAQEAgAK2AYED+QIEBv8DggXoBIOE6wUHCIAGhYaABwkKgAiHiIAJiYqACosBfACAAo8BgQPxAgQG/wOCBeMEg4TqBQcIgAaFhoAHCQqACIeIgAmJioAKiwEjAIACTQGBA7UCBAb7A4IFwQSDhNMFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAKdAYED9wIEBv8DggXsBIOE5wUHCP8GhYb/BwkKgAiHiIAJiYqACosBeQCAAo0BgQPrAgQG/wOCBeEEg4TjBQcI/waFhv8HCQqACIeIgAmJioAKiwEtAIACYwGBA7wCBAb7A4IFwwSDhNkFBwj/BoWG4AcJCoAIh4iACYmKgAqLAQEAgAIBAYED+wIEBv8DggXVBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBywCAAgEBgQP4AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGJAIACAQGBA7ECBAb/A4IF4ASDhP8FBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAIJAYED+AIEBvsDggXPBIOE0AUHCP8GhYbABwkKgAiHiIAJiYqACosBrwCAAg0BgQPgAgQG8wOCBcEEg4S5BQcI+QaFhsYHCQr/CIeI/wmJioAKiwFJAIACEQGBA6sCBAbdA4IFoQSDhLMFBwjsBoWGpwcJCv8Ih4jqCYmKgAqLAQEAgAJfAYED9wIEBv0DggXUBIOEtwUHCP8GhYb/BwkKgAiHiIAJiYqACosB7wCAAloBgQP0AgQG+gOCBdMEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwGbAIACTQGBA8MCBAb4A4IFvASDhMMFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAIYAYED7wIEBvsDggXaBIOE2wUHCP8GhYbNBwkKgAiHiIAJiYqACosByQCAAjMBgQPbAgQG/wOCBcQEg4S6BQcIgAaFhoAHCQqACIeIgAmJioAKiwFFAIACLgGBA74CBAbvA4IFyQSDhNoFBwj/BoWG5AcJCoAIh4iACYmKgAqLAQEAgAK/AYED+wIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB3wCAAqUBgQP5AgQG/wOCBdUEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGNAIACfAGBA/gCBAb/A4IF/wSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIQAYED+AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBvgCAAiQBgQPmAgQG/wOCBewEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGVAIACAQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgALiAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9wCAAsABgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwHwAIACgAGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKGAYED/AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB1QCAAj4BgQP6AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwE3AIACXQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcoAgAIYAYED1QIEBusDggW6BIOEvwUHCNwGhYagBwkK8AiHiK8JiYr/CosBfgCAAiYBgQO2AgQG6AOCBakEg4S4BQcI5AaFhq4HCQr/CIeIuwmJioAKiwE9AIACLgGBA4oCBAbbA4IFlwSDhLIFBwjwBoWGqgcJCv8Ih4jYCYmKgAqLAQEAgAJwAYED5gIEBvoDggXHBIOEvwUHCPcGhYafBwkK/wiHiP8JiYqACosBpgCAAm0BgQPkAgQG/AOCBdMEg4TXBQcI/waFhq4HCQqACIeIgAmJioAKiwEnAIACTQGBA6ICBAboA4IFrASDhLQFBwj1BoWGsgcJCv8Ih4j/CYmKgAqLAQEAgAI0AYED3AIEBvYDggXGBIOExwUHCPkGhYbcBwkK/wiHiP8JiYqACosBfACAAkoBgQO/AgQG8wOCBbcEg4TBBQcI+gaFht0HCQr/CIeI/wmJioAKiwEYAIACRwGBA4ICBAbbA4IFmgSDhKoFBwjzBoWGtgcJCv8Ih4j/CYmKgAqLAQEAgAK2AYED4QIEBvkDggXbBIOE8AUHCP8GhYbgBwkKgAiHiIAJiYqACosBlQCAApYBgQPiAgQG/AOCBdgEg4TNBQcI/waFhqsHCQqACIeIgAmJioAKiwEcAIACbAGBA6oCBAbyA4IFtwSDhMIFBwj+BoWG3wcJCv8Ih4j/CYmKgAqLAQEAgAJRAYED5gIEBvwDggXMBIOEywUHCP8GhYbABwkKgAiHiIAJiYqACosBewCAAmYBgQPRAgQG9wOCBbwEg4TEBQcI/waFhukHCQqACIeIgAmJioAKiwEUAIACXwGBA5kCBAbzA4IFpASDhK0FBwj/BoWGywcJCoAIh4iACYmKgAqLAQEAgALeAYED+AIEBv8DggXYBIOE1QUHCIAGhYaABwkKgAiHiIAJiYqACosBqACAAq8BgQP2AgQG/AOCBesEg4TNBQcI/waFhv8HCQqACIeIgAmJioAKiwEvAIACdAGBA9cCBAb/A4IF0wSDhNQFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJ5AYED7AIEBv0DggXUBIOE1gUHCP8GhYb/BwkKgAiHiIAJiYqACosBjQCAAlQBgQPVAgQG/AOCBckEg4TKBQcI/waFhtsHCQqACIeIgAmJioAKiwEqAIACUAGBA6ACBAbwA4IFogSDhLkFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9ACAAgEBgQP/AgQG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AAAA8gEAAAAAAAABAAAAAQAAAPMBAAAAAAAABAAAAAQAAACqAQAAQ2ljcHByaW1hcmllc3RyYW5zZmVybWF0cml4ZnVsbF9yYW5nZURpbWVuc2lvbkVycm9ySW5zdWZmaWNpZW50TWVtb3J5AAAAAAAAACAAAAAIAAAA9AEAAAAAAAAEAAAABAAAAPUBAABsaW1pdHNzdXBwb3J0ZWQA9gEAAAwAAAAEAAAA9wEAAFBhcmFtZXRlckVycm9yQ2FwYWNpdHlPdmVyZmxvdwAAAAAAAAQAAAAEAAAA+AEAAEFsbG9jRXJybGF5b3V0Q3NwbGF0KGNlbnRlcjogAAAATtURAA8AAABv0xEACwAAAHrTEQAHAAAAgdMRAAoAAACL0xEADgAAAF4HEgABAAAARXhhY3ROYW1lUGF0aEV4dGVuc2lvblVua25vd25pbnZhbGlkIHNlZWsgdG8gYSBuZWdhdGl2ZSBvciBvdmVyZmxvd2luZyBwb3NpdGlvbgCt1REAMgAAABQAAACmJhAAWgAAAD0AAAAkAAAARW1wdHlJbnZhbGlkRGlnaXRQb3NPdmVyZmxvd05lZ092ZXJmbG93WmVybwAAAAAABAAAAAQAAAD5AQAAVW5zdXBwb3J0ZWRFcnJvclBuZ0pwZWdHaWZXZWJQUG5tVGlmZlRnYURkc0JtcEljb0hkck9wZW5FeHJGYXJiZmVsZEF2aWZRb2lQY3gAAAAAAAAABAAAAAQAAAD6AQAAUGFyc2VJbnRFcnJvckE4TDFMYTFSZ2IxUmdiYTFMMkxhMlJnYjJSZ2JhMkw0TGE0UmdiNFJnYmE0UmdiNXgxTDhMYThSZ2I4UmdiYThMMTZMYTE2UmdiMTZSZ2JhMTZCZ3I4QmdyYThSZ2IzMkZSZ2JhMzJGQ215azhDbXlrMTZMaW1pdFN1cHBvcnREaW1lbnNpb25NaXNtYXRjaEZhaWxlZEFscmVhZHkAAAAAAAAEAAAABAAAAPsBAABSZ2JDaWNwUmVxdWlyZWRHZW5lcmljTm9Nb3JlRGF0YQAAAAAEAAAAAQAAAPwBAABDaWNwTWlzbWF0Y2hleHBlY3RlZGZvdW5kAAAAAAAAAAgAAAAEAAAAxwAAAAAAAAAIAAAABAAAAHAAAADHAAAAoNcRALAAAADIAAAAsgAAALAAAACzAAAA/QEAACgAAAAI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ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9ybWlkID4gbGVu/wASAAkAAABzdGRvdXRmYWlsZWQgcHJpbnRpbmcgdG8gAAAAFgESABMAAABd/BEAAgAAANoQEAAbAAAAjQQAAAkAAABvcGVyYXRpb24gc3VjY2Vzc2Z1bG9uZS10aW1lIGluaXRpYWxpemF0aW9uIG1heSBub3QgYmUgcGVyZm9ybWVkIHJlY3Vyc2l2ZWx5YAESADgAAABjYW5ub3QgcmVjdXJzaXZlbHkgYWNxdWlyZSBtdXRleKABEgAgAAAA6AcQACwAAAATAAAACQAAAGxvY2sgY291bnQgb3ZlcmZsb3cgaW4gcmVlbnRyYW50IG11dGV4AADlFBAAJgAAACMBAAAtAAAA7xoQACMAAADXAAAAFAAAAO8aEAAjAAAA1wAAADEAAABMYXp5TG9jayBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAAwAhIALgAAAMMUEAAhAAAAlwEAAAUAAABmYWlsZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIHRocmVhZCBJRDogYml0c3BhY2UgZXhoYXVzdGVkAHgCEgA3AAAAph4QAB0AAADUBAAADQAAADoKAACFAQAADAAAAAQAAABIAgAASQIAAEoCAAAAAAAACAAAAAQAAABLAgAATAIAAE0CAABOAgAATwIAABAAAAAEAAAAUAIAAFECAABSAgAAUwIAAGNhbm5vdCBtb2RpZnkgdGhlIHBhbmljIGhvb2sgZnJvbSBhIHBhbmlja2luZyB0aHJlYWQcAxIANAAAAA4WEAAcAAAAkAAAAAkAAAAAAAAABAAAAAQAAABUAgAAV291bGRCbG9jayAob3MgZXJyb3IgAAAAAQAAAAAAAACCAxIACwAAAF4HEgABAAAA2hAQABsAAABcAwAAFAAAAE5vdEZvdW5kUGVybWlzc2lvbkRlbmllZENvbm5lY3Rpb25SZWZ1c2VkQ29ubmVjdGlvblJlc2V0SG9zdFVucmVhY2hhYmxlTmV0d29ya1VucmVhY2hhYmxlQ29ubmVjdGlvbkFib3J0ZWROb3RDb25uZWN0ZWRBZGRySW5Vc2VBZGRyTm90QXZhaWxhYmxlTmV0d29ya0Rvd25Ccm9rZW5QaXBlQWxyZWFkeUV4aXN0c05vdEFEaXJlY3RvcnlJc0FEaXJlY3RvcnlEaXJlY3RvcnlOb3RFbXB0eVJlYWRPbmx5RmlsZXN5c3RlbUZpbGVzeXN0ZW1Mb29wU3RhbGVOZXR3b3JrRmlsZUhhbmRsZUludmFsaWRJbnB1dEludmFsaWREYXRhVGltZWRPdXRXcml0ZVplcm9TdG9yYWdlRnVsbE5vdFNlZWthYmxlUXVvdGFFeGNlZWRlZEZpbGVUb29MYXJnZVJlc291cmNlQnVzeUV4ZWN1dGFibGVGaWxlQnVzeURlYWRsb2NrQ3Jvc3Nlc0RldmljZXNUb29NYW55TGlua3NJbnZhbGlkRmlsZW5hbWVBcmd1bWVudExpc3RUb29Mb25nSW50ZXJydXB0ZWRVbnN1cHBvcnRlZFVuZXhwZWN0ZWRFb2ZPdXRPZk1lbW9yeUluUHJvZ3Jlc3NPdGhlclVuY2F0ZWdvcml6ZWR1bnN1cHBvcnRlZCBiYWNrdHJhY2VkaXNhYmxlZCBiYWNrdHJhY2UAXhsQABwAAACKAQAAHQAAAFUCAAAQAAAABAAAAFYCAABXAgAAcGFuaWNrZWQgYXQgAQAAAAAAAABQ/BEAAQAAAFD8EQABAAAAAAAAAAgAAAAEAAAAWAIAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAACgiEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAAAoIhAAKgAAALcEAAANAAAA4BMQAC0AAAAWAQAAKQAAAIUBAAAMAAAABAAAAFkCAABudWxsIHBvaW50ZXIgcGFzc2VkIHRvIHJ1c3RyZWN1cnNpdmUgdXNlIG9mIGFuIG9iamVjdCBkZXRlY3RlZCB3aGljaCB3b3VsZCBsZWFkIHRvIHVuc2FmZSBhbGlhc2luZyBpbiBydXN0SnNWYWx1ZSgpAFYHEgAIAAAAXgcSAAEAAAB/FhAAaQAAAHwAAAARAAAAfxYQAGkAAACJAAAAEQAAAFpJUDY0IGZvb3RlciBpbmRpY2F0ZXMgbW9yZSBmaWxlcyBvbiB0aGlzIGRpc2sgdGhhbiBpbiB0aGUgd2hvbGUgYXJjaGl2ZUludmFsaWQgY2VudHJhbCBkaXJlY3Rvcnkgc2l6ZSBvciBvZmZzZXRmYWlsZWQgdG8gZmlsbCB3aG9sZSBidWZmZXIAAAgSABsAAAAlAAAAAgAAABwIEgBDUkMzMiBjaGVja3N1bSBmYWlsZWQgb24gVW5pY29kZSBleHRyYSBmaWVsZFVuaWNvZGUgZXh0cmEgZmllbGQgaXMgdG9vIHNtYWxsRXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkIGlzIGVtcHR5AAAA/g8QAHQAAABKAAAAJAAAAGZsYWdzIGFuZCBsZW4gZG9uJ3QgbWF0Y2ggaW4gZXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgYXR0cmlidXRlIHNpemVOVEZTIGV4dHJhIGZpZWxkIGhhcyBhbiB1bnN1cHBvcnRlZCBhdHRyaWJ1dGUgdGFnTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAAQGAAA6AAAARXh0cmEgZmllbGQgY29udGVudCBleGNlZWRzIGRlY2xhcmVkIGxlbmd0aADOIRAAWQAAAAYGAAA7AAAAWklQNjQgZXh0cmEgZmllbGQgdHJ1bmNhdGVkWklQNjQgZXh0cmEtZGF0YSBmaWVsZCBpcyB0aGUgd3JvbmcgbGVuZ3RoAAAAziEQAFkAAABeBgAAEgAAAEFFUyBleHRyYSBmaWVsZCB0cnVuY2F0ZWRJbnZhbGlkIEFFUyBlbmNyeXB0aW9uIHN0cmVuZ3RoSW52YWxpZCBBRVMgdmVuZG9yIHZlcnNpb25JbnZhbGlkIEFFUyB2ZW5kb3JBRVMgZXh0cmEgZGF0YSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAIgGAAAfAAAARXh0cmEgZmllbGQgY29udGVudCB0cnVuY2F0ZWRFeHRyYSBmaWVsZCBoZWFkZXIgdHJ1bmNhdGVkSW52YWxpZCBjaGVja3N1bQBBkJbIAAvjBAEAAAC0AQAAKCkAAMQeEABQAAAAKgIAABEAAABpL28gZXJyb3I6IAAsCxIACwAAAGludmFsaWQgWmlwIGFyY2hpdmU6IAAAAEALEgAVAAAAdW5zdXBwb3J0ZWQgWmlwIGFyY2hpdmU6IAAAAGALEgAZAAAAc3BlY2lmaWVkIGZpbGUgbm90IGZvdW5kIGluIGFyY2hpdmVwcm92aWRlZCBwYXNzd29yZCBpcyBpbmNvcnJlY3QAAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAFV0ZjhFcnJvcnZhbGlkX3VwX3RvZXJyb3JfbGVuAAAAWgIAAAwAAAAEAAAAWwIAAAAAAAAEAAAABAAAAFwCAABGcm9tVXRmOEVycm9yYnl0ZXNlcnJvck5vbmVTb21lACYcEABvAAAAwwAAAAkAAAAmHBAAbwAAALwAAAAqAAAAJhwQAG8AAAC5AAAAKgAAAJsBEABnAAAAdAEAACkAAACbARAAZwAAAHkBAAAcAAAAmwEQAGcAAAB5AQAALQAA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AGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUQERIACAcJBgoFCwQMAw0CDgEPAABZFxAAYAAAAJMAAAAJAAAAAABgB1AAAAgQAAAIcwAUCB8AEgdwAAAIMAAACMAAAAkKABAHYAAACCAAAAigAAAJAAAACIAAAAhAAAAI4AAACQYAEAdYAAAIGAAACJAAAAk7ABMHeAAACDgAAAjQAAAJEQARB2gAAAgoAAAIsAAACQgAAAiIAAAISAAACPAAAAkEABAHVAAACBQAAAjjABUIKwATB3QAAAg0AAAIyAAACQ0AEQdkAAAIJAAACKgAAAkEAAAIhAAACEQAAAjoAAAJCAAQB1wAAAgcAAAImAAACVMAFAd8AAAIPAAACNgAAAkXABIHbAAACCwAAAi4AAAJDAAACIwAAAhMAAAI+AAACQMAEAdSAAAIEgAACKMAFQgjABMHcgAACDIAAAjEAAAJCwARB2IAAAgiAAAIpAAACQIAAAiCAAAIQgAACOQAAAkHABAHWgAACBoAAAiUAAAJQwAUB3oAAAg6AAAI1AAACRMAEgdqAAAIKgAACLQAAAkKAAAIigAACEoAAAj0AAAJBQAQB1YAAAgWAAAIAABACDMAEwd2AAAINgAACMwAAAkPABEHZgAACCYAAAisAAAJBgAACIYAAAhGAAAI7AAACQkAEAdeAAAIHgAACJwAAAljABQHfgAACD4AAAjcAAAJGwASB24AAAguAAAIvAAACQ4AAAiOAAAITgAACPwAAAkAAGAHUQAACBEAAAiDABUIHwASB3EAAAgxAAAIwgAACQoAEAdhAAAIIQAACKIAAAkBAAAIgQAACEEAAAjiAAAJBgAQB1kAAAgZAAAIkgAACTsAEwd5AAAIOQAACNIAAAkRABEHaQAACCkAAAiyAAAJCQAACIkAAAhJAAAI8gAACQQAEAdVAAAIFQAACAIBEAgrABMHdQAACDUAAAjKAAAJDQARB2UAAAglAAAIqgAACQUAAAiFAAAIRQAACOoAAAkIABAHXQAACB0AAAiaAAAJUwAUB30AAAg9AAAI2gAACRcAEgdtAAAILQAACLoAAAkNAAAIjQAACE0AAAj6AAAJAwAQB1MAAAgTAAAIwwAVCCMAEwdzAAAIMwAACMYAAAkLABEHYwAACCMAAAimAAAJAwAACIMAAAhDAAAI5gAACQcAEAdbAAAIGwAACJYAAAlDABQHewAACDsAAAjWAAAJEwASB2sAAAgrAAAItgAACQsAAAiLAAAISwAACPYAAAkFABAHVwAACBcAAAgAAEAIMwATB3cAAAg3AAAIzgAACQ8AEQdnAAAIJwAACK4AAAkHAAAIhwAACEcAAAjuAAAJCQAQB18AAAgfAAAIngAACWMAFAd/AAAIPwAACN4AAAkbABIHbwAACC8AAAi+AAAJDwAACI8AAAhPAAAI/gAACQAAYAdQAAAIEAAACHMAFAgfABIHcAAACDAAAAjBAAAJCgAQB2AAAAggAAAIoQAACQAAAAiAAAAIQAAACOEAAAkGABAHWAAACBgAAAiRAAAJOwATB3gAAAg4AAAI0QAACREAEQdoAAAIKAAACLEAAAkIAAAIiAAACEgAAAjxAAAJBAAQB1QAAAgUAAAI4wAVCCsAEwd0AAAINAAACMkAAAkNABEHZAAACCQAAAipAAAJBAAACIQAAAhEAAAI6QAACQgAEAdcAAAIHAAACJkAAAlTABQHfAAACDwAAAjZAAAJFwASB2wAAAgsAAAIuQAACQwAAAiMAAAITAAACPkAAAkDABAHUgAACBIAAAijABUIIwATB3IAAAgyAAAIxQAACQsAEQdiAAAIIgAACKUAAAkCAAAIggAACEIAAAjlAAAJBwAQB1oAAAgaAAAIlQAACUMAFAd6AAAIOgAACNUAAAkTABIHagAACCoAAAi1AAAJCgAACIoAAAhKAAAI9QAACQUAEAdWAAAIFgAACAAAQAgzABMHdgAACDYAAAjNAAAJDwARB2YAAAgmAAAIrQAACQYAAAiGAAAIRgAACO0AAAkJABAHXgAACB4AAAidAAAJYwAUB34AAAg+AAAI3QAACRsAEgduAAAILgAACL0AAAkOAAAIjgAACE4AAAj9AAAJAABgB1EAAAgRAAAIgwAVCB8AEgdxAAAIMQAACMMAAAkKABAHYQAACCEAAAijAAAJAQAACIEAAAhBAAAI4wAACQYAEAdZAAAIGQAACJMAAAk7ABMHeQAACDkAAAjTAAAJEQARB2kAAAgpAAAIswAACQkAAAiJAAAISQAACPMAAAkEABAHVQAACBUAAAgCARAIKwATB3UAAAg1AAAIywAACQ0AEQdlAAAIJQAACKsAAAkFAAAIhQAA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", self.location.href);\n }\n const imports = __wbg_get_imports();\n if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) {\n module_or_path = fetch(module_or_path);\n }\n const { instance } = await __wbg_load(await module_or_path, imports);\n return __wbg_finalize_init(instance);\n }\n var ch2 = {};\n var wk = function(c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + \';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})\'\n ], { type: "text/javascript" }))));\n w.onmessage = function(e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err2 = new Error(ed[0]);\n err2["code"] = ed[1];\n err2.stack = ed[2];\n cb(err2, null);\n } else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n };\n var u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n var fleb = new u8([\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 0,\n /* unused */\n 0,\n 0,\n /* impossible */\n 0\n ]);\n var fdeb = new u8([\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 2,\n 2,\n 3,\n 3,\n 4,\n 4,\n 5,\n 5,\n 6,\n 6,\n 7,\n 7,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n /* unused */\n 0,\n 0\n ]);\n var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n var freb = function(eb, start) {\n var b = new u16(31);\n for (var i2 = 0; i2 < 31; ++i2) {\n b[i2] = start += 1 << eb[i2 - 1];\n }\n var r = new i32(b[30]);\n for (var i2 = 1; i2 < 30; ++i2) {\n for (var j = b[i2]; j < b[i2 + 1]; ++j) {\n r[j] = j - b[i2] << 5 | i2;\n }\n }\n return { b, r };\n };\n var _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n fl[28] = 258, revfl[258] = 28;\n var _b = freb(fdeb, 0), fd = _b.b;\n var rev = new u16(32768);\n for (var i = 0; i < 32768; ++i) {\n var x = (i & 43690) >> 1 | (i & 21845) << 1;\n x = (x & 52428) >> 2 | (x & 13107) << 2;\n x = (x & 61680) >> 4 | (x & 3855) << 4;\n rev[i] = ((x & 65280) >> 8 | (x & 255) << 8) >> 1;\n }\n var hMap = function(cd, mb, r) {\n var s = cd.length;\n var i2 = 0;\n var l = new u16(mb);\n for (; i2 < s; ++i2) {\n if (cd[i2])\n ++l[cd[i2] - 1];\n }\n var le = new u16(mb);\n for (i2 = 1; i2 < mb; ++i2) {\n le[i2] = le[i2 - 1] + l[i2 - 1] << 1;\n }\n var co;\n if (r) {\n co = new u16(1 << mb);\n var rvb = 15 - mb;\n for (i2 = 0; i2 < s; ++i2) {\n if (cd[i2]) {\n var sv = i2 << 4 | cd[i2];\n var r_1 = mb - cd[i2];\n var v = le[cd[i2] - 1]++ << r_1;\n for (var m = v | (1 << r_1) - 1; v <= m; ++v) {\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n } else {\n co = new u16(s);\n for (i2 = 0; i2 < s; ++i2) {\n if (cd[i2]) {\n co[i2] = rev[le[cd[i2] - 1]++] >> 15 - cd[i2];\n }\n }\n }\n return co;\n };\n var flt = new u8(288);\n for (var i = 0; i < 144; ++i)\n flt[i] = 8;\n for (var i = 144; i < 256; ++i)\n flt[i] = 9;\n for (var i = 256; i < 280; ++i)\n flt[i] = 7;\n for (var i = 280; i < 288; ++i)\n flt[i] = 8;\n var fdt = new u8(32);\n for (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n var flrm = /* @__PURE__ */ hMap(flt, 9, 1);\n var fdrm = /* @__PURE__ */ hMap(fdt, 5, 1);\n var max = function(a) {\n var m = a[0];\n for (var i2 = 1; i2 < a.length; ++i2) {\n if (a[i2] > m)\n m = a[i2];\n }\n return m;\n };\n var bits = function(d, p, m) {\n var o = p / 8 | 0;\n return (d[o] | d[o + 1] << 8) >> (p & 7) & m;\n };\n var bits16 = function(d, p) {\n var o = p / 8 | 0;\n return (d[o] | d[o + 1] << 8 | d[o + 2] << 16) >> (p & 7);\n };\n var shft = function(p) {\n return (p + 7) / 8 | 0;\n };\n var slc = function(v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n return new u8(v.subarray(s, e));\n };\n var ec = [\n "unexpected EOF",\n "invalid block type",\n "invalid length/literal",\n "invalid distance",\n "stream finished",\n "no stream handler",\n ,\n "no callback",\n "invalid UTF-8 data",\n "extra field too long",\n "date not in range 1980-2099",\n "filename too long",\n "stream finishing",\n "invalid zip data"\n // determined by unknown compression method\n ];\n var err = function(ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n };\n var inflt = function(dat, st, buf, dict) {\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n var resize = noBuf || st.i != 2;\n var noSt = st.i;\n if (noBuf)\n buf = new u8(sl * 3);\n var cbuf = function(l2) {\n var bl = buf.length;\n if (l2 > bl) {\n var nbuf = new u8(Math.max(bl * 2, l2));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n var tbts = sl * 8;\n do {\n if (!lm) {\n final = bits(dat, pos, 1);\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n var s = shft(pos) + 4, l = dat[s - 4] | dat[s - 3] << 8, t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + l);\n buf.set(dat.subarray(s, t), bt);\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n } else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n var ldt = new u8(tl);\n var clt = new u8(19);\n for (var i2 = 0; i2 < hcLen; ++i2) {\n clt[clim[i2]] = bits(dat, pos + i2 * 3, 7);\n }\n pos += hcLen * 3;\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n var clm = hMap(clt, clb, 1);\n for (var i2 = 0; i2 < tl; ) {\n var r = clm[bits(dat, pos, clbmsk)];\n pos += r & 15;\n var s = r >> 4;\n if (s < 16) {\n ldt[i2++] = s;\n } else {\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i2 - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i2++] = c;\n }\n }\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n lbt = max(lt);\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n } else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (; ; lpos = pos) {\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n } else {\n var add = sym - 254;\n if (sym > 264) {\n var i2 = sym - 257, b = fleb[i2];\n add = bits(dat, pos, (1 << b) - 1) + fl[i2];\n pos += b;\n }\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n };\n var et = /* @__PURE__ */ new u8(0);\n var mrg = function(a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n };\n var wcln = function(fn, fnStr, td2) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf("[") + 1, st.lastIndexOf("]")).replace(/\\s+/g, "").split(",");\n for (var i2 = 0; i2 < dt.length; ++i2) {\n var v = dt[i2], k = ks[i2];\n if (typeof v == "function") {\n fnStr += ";" + k + "=";\n var st_1 = v.toString();\n if (v.prototype) {\n if (st_1.indexOf("[native code]") != -1) {\n var spInd = st_1.indexOf(" ", 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf("(", spInd));\n } else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ";" + k + ".prototype." + t + "=" + v.prototype[t].toString();\n }\n } else\n fnStr += st_1;\n } else\n td2[k] = v;\n }\n return fnStr;\n };\n var ch = [];\n var cbfs = function(v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n };\n var wrkr = function(fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = "", td_1 = {}, m = fns.length - 1;\n for (var i2 = 0; i2 < m; ++i2)\n fnStr = wcln(fns[i2], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td2 = mrg({}, ch[id].e);\n return wk(ch[id].c + ";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=" + init.toString() + "}", id, td2, cbfs(td2), cb);\n };\n var bInflt = function() {\n return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt];\n };\n var pbf = function(msg) {\n return postMessage(msg, [msg.buffer]);\n };\n var gopt = function(o) {\n return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n };\n };\n var cbify = function(dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function(err2, dat2) {\n w.terminate();\n cb(err2, dat2);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function() {\n w.terminate();\n };\n };\n var b2 = function(d, b) {\n return d[b] | d[b + 1] << 8;\n };\n var b4 = function(d, b) {\n return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0;\n };\n var b8 = function(d, b) {\n return b4(d, b) + b4(d, b + 4) * 4294967296;\n };\n var gzs = function(d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, "invalid gzip data");\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n };\n var Inflate = /* @__PURE__ */ function() {\n function Inflate2(opts, cb) {\n if (typeof opts == "function")\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate2.prototype.e = function(c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate2.prototype.c = function(final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, this.s.p / 8 | 0), this.s.p &= 7;\n };\n Inflate2.prototype.push = function(chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate2;\n }();\n function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != "function")\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function(ev) {\n return pbf(inflateSync(ev.data[0], gopt(ev.data[1])));\n }, 1, cb);\n }\n function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n }\n var Gunzip = /* @__PURE__ */ function() {\n function Gunzip2(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n Gunzip2.prototype.push = function(chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n } else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n Inflate.prototype.c.call(this, final);\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip2;\n }();\n var td = typeof TextDecoder != "undefined" && /* @__PURE__ */ new TextDecoder();\n try {\n td.decode(et, { stream: true });\n } catch (e) {\n }\n var dutf8 = function(d) {\n for (var r = "", i2 = 0; ; ) {\n var c = d[i2++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i2 + eb > d.length)\n return { s: r, r: slc(d, i2 - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i2++] & 63) << 12 | (d[i2++] & 63) << 6 | d[i2++] & 63) - 65536, r += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023);\n } else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | d[i2++] & 63);\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i2++] & 63) << 6 | d[i2++] & 63);\n }\n };\n function strFromU8(dat, latin1) {\n if (latin1) {\n var r = "";\n for (var i2 = 0; i2 < dat.length; i2 += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i2, i2 + 16384));\n return r;\n } else if (td) {\n return td.decode(dat);\n } else {\n var _a2 = dutf8(dat), s = _a2.s, r = _a2.r;\n if (r.length)\n err(8);\n return s;\n }\n }\n var slzh = function(d, b) {\n return b + 30 + b2(d, b + 26) + b2(d, b + 28);\n };\n var zh = function(d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a2 = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a2[0], su = _a2[1], off = _a2[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n };\n var z64e = function(d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n };\n var mt = typeof queueMicrotask == "function" ? queueMicrotask : typeof setTimeout == "function" ? setTimeout : function(fn) {\n fn();\n };\n function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != "function")\n err(7);\n var term = [];\n var tAll = function() {\n for (var i3 = 0; i3 < term.length; ++i3)\n term[i3]();\n };\n var files = {};\n var cbd = function(a, b) {\n mt(function() {\n cb(a, b);\n });\n };\n mt(function() {\n cbd = cb;\n });\n var e = data.length - 22;\n for (; b4(data, e) != 101010256; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 101075792;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function(i3) {\n var _a2 = zh(data, o, z), c_1 = _a2[0], sc = _a2[1], su = _a2[2], fn = _a2[3], no = _a2[4], off = _a2[5], b = slzh(data, off);\n o = no;\n var cbl = function(e2, d) {\n if (e2) {\n tAll();\n cbd(e2, null);\n } else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n } catch (e2) {\n cbl(e2, null);\n }\n } else\n term.push(inflate(infl, { size: su }, cbl));\n } else\n cbl(err(14, "unknown compression type " + c_1, 1), null);\n } else\n cbl(null, null);\n };\n for (var i2 = 0; i2 < c; ++i2) {\n _loop_3(i2);\n }\n } else\n cbd(null, {});\n return tAll;\n }\n function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 101010256; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 101075792;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i2 = 0; i2 < c; ++i2) {\n var _a2 = zh(data, o, z), c_2 = _a2[0], sc = _a2[1], su = _a2[2], fn = _a2[3], no = _a2[4], off = _a2[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, "unknown compression type " + c_2);\n }\n }\n return files;\n }\n /**\n * @license\n * Copyright 2010-2025 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\n const REVISION = "180";\n const NoColorSpace = "";\n const SRGBColorSpace = "srgb";\n const LinearSRGBColorSpace = "srgb-linear";\n const LinearTransfer = "linear";\n const SRGBTransfer = "srgb";\n function clamp(value, min, max2) {\n return Math.max(min, Math.min(max2, value));\n }\n function euclideanModulo(n, m) {\n return (n % m + m) % m;\n }\n function lerp(x2, y, t) {\n return (1 - t) * x2 + t * y;\n }\n class Quaternion {\n /**\n * Constructs a new quaternion.\n *\n * @param {number} [x=0] - The x value of this quaternion.\n * @param {number} [y=0] - The y value of this quaternion.\n * @param {number} [z=0] - The z value of this quaternion.\n * @param {number} [w=1] - The w value of this quaternion.\n */\n constructor(x2 = 0, y = 0, z = 0, w = 1) {\n this.isQuaternion = true;\n this._x = x2;\n this._y = y;\n this._z = z;\n this._w = w;\n }\n /**\n * Interpolates between two quaternions via SLERP. This implementation assumes the\n * quaternion data are managed in flat arrays.\n *\n * @param {Array} dst - The destination array.\n * @param {number} dstOffset - An offset into the destination array.\n * @param {Array} src0 - The source array of the first quaternion.\n * @param {number} srcOffset0 - An offset into the first source array.\n * @param {Array} src1 - The source array of the second quaternion.\n * @param {number} srcOffset1 - An offset into the second source array.\n * @param {number} t - The interpolation factor in the range `[0,1]`.\n * @see {@link Quaternion#slerp}\n */\n static slerpFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t) {\n let x0 = src0[srcOffset0 + 0], y0 = src0[srcOffset0 + 1], z0 = src0[srcOffset0 + 2], w0 = src0[srcOffset0 + 3];\n const x1 = src1[srcOffset1 + 0], y1 = src1[srcOffset1 + 1], z1 = src1[srcOffset1 + 2], w1 = src1[srcOffset1 + 3];\n if (t === 0) {\n dst[dstOffset + 0] = x0;\n dst[dstOffset + 1] = y0;\n dst[dstOffset + 2] = z0;\n dst[dstOffset + 3] = w0;\n return;\n }\n if (t === 1) {\n dst[dstOffset + 0] = x1;\n dst[dstOffset + 1] = y1;\n dst[dstOffset + 2] = z1;\n dst[dstOffset + 3] = w1;\n return;\n }\n if (w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1) {\n let s = 1 - t;\n const cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1, dir = cos >= 0 ? 1 : -1, sqrSin = 1 - cos * cos;\n if (sqrSin > Number.EPSILON) {\n const sin = Math.sqrt(sqrSin), len = Math.atan2(sin, cos * dir);\n s = Math.sin(s * len) / sin;\n t = Math.sin(t * len) / sin;\n }\n const tDir = t * dir;\n x0 = x0 * s + x1 * tDir;\n y0 = y0 * s + y1 * tDir;\n z0 = z0 * s + z1 * tDir;\n w0 = w0 * s + w1 * tDir;\n if (s === 1 - t) {\n const f = 1 / Math.sqrt(x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0);\n x0 *= f;\n y0 *= f;\n z0 *= f;\n w0 *= f;\n }\n }\n dst[dstOffset] = x0;\n dst[dstOffset + 1] = y0;\n dst[dstOffset + 2] = z0;\n dst[dstOffset + 3] = w0;\n }\n /**\n * Multiplies two quaternions. This implementation assumes the quaternion data are managed\n * in flat arrays.\n *\n * @param {Array} dst - The destination array.\n * @param {number} dstOffset - An offset into the destination array.\n * @param {Array} src0 - The source array of the first quaternion.\n * @param {number} srcOffset0 - An offset into the first source array.\n * @param {Array} src1 - The source array of the second quaternion.\n * @param {number} srcOffset1 - An offset into the second source array.\n * @return {Array} The destination array.\n * @see {@link Quaternion#multiplyQuaternions}.\n */\n static multiplyQuaternionsFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1) {\n const x0 = src0[srcOffset0];\n const y0 = src0[srcOffset0 + 1];\n const z0 = src0[srcOffset0 + 2];\n const w0 = src0[srcOffset0 + 3];\n const x1 = src1[srcOffset1];\n const y1 = src1[srcOffset1 + 1];\n const z1 = src1[srcOffset1 + 2];\n const w1 = src1[srcOffset1 + 3];\n dst[dstOffset] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n dst[dstOffset + 1] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n dst[dstOffset + 2] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n dst[dstOffset + 3] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n return dst;\n }\n /**\n * The x value of this quaternion.\n *\n * @type {number}\n * @default 0\n */\n get x() {\n return this._x;\n }\n set x(value) {\n this._x = value;\n this._onChangeCallback();\n }\n /**\n * The y value of this quaternion.\n *\n * @type {number}\n * @default 0\n */\n get y() {\n return this._y;\n }\n set y(value) {\n this._y = value;\n this._onChangeCallback();\n }\n /**\n * The z value of this quaternion.\n *\n * @type {number}\n * @default 0\n */\n get z() {\n return this._z;\n }\n set z(value) {\n this._z = value;\n this._onChangeCallback();\n }\n /**\n * The w value of this quaternion.\n *\n * @type {number}\n * @default 1\n */\n get w() {\n return this._w;\n }\n set w(value) {\n this._w = value;\n this._onChangeCallback();\n }\n /**\n * Sets the quaternion components.\n *\n * @param {number} x - The x value of this quaternion.\n * @param {number} y - The y value of this quaternion.\n * @param {number} z - The z value of this quaternion.\n * @param {number} w - The w value of this quaternion.\n * @return {Quaternion} A reference to this quaternion.\n */\n set(x2, y, z, w) {\n this._x = x2;\n this._y = y;\n this._z = z;\n this._w = w;\n this._onChangeCallback();\n return this;\n }\n /**\n * Returns a new quaternion with copied values from this instance.\n *\n * @return {Quaternion} A clone of this instance.\n */\n clone() {\n return new this.constructor(this._x, this._y, this._z, this._w);\n }\n /**\n * Copies the values of the given quaternion to this instance.\n *\n * @param {Quaternion} quaternion - The quaternion to copy.\n * @return {Quaternion} A reference to this quaternion.\n */\n copy(quaternion) {\n this._x = quaternion.x;\n this._y = quaternion.y;\n this._z = quaternion.z;\n this._w = quaternion.w;\n this._onChangeCallback();\n return this;\n }\n /**\n * Sets this quaternion from the rotation specified by the given\n * Euler angles.\n *\n * @param {Euler} euler - The Euler angles.\n * @param {boolean} [update=true] - Whether the internal `onChange` callback should be executed or not.\n * @return {Quaternion} A reference to this quaternion.\n */\n setFromEuler(euler, update = true) {\n const x2 = euler._x, y = euler._y, z = euler._z, order = euler._order;\n const cos = Math.cos;\n const sin = Math.sin;\n const c1 = cos(x2 / 2);\n const c2 = cos(y / 2);\n const c3 = cos(z / 2);\n const s1 = sin(x2 / 2);\n const s2 = sin(y / 2);\n const s3 = sin(z / 2);\n switch (order) {\n case "XYZ":\n this._x = s1 * c2 * c3 + c1 * s2 * s3;\n this._y = c1 * s2 * c3 - s1 * c2 * s3;\n this._z = c1 * c2 * s3 + s1 * s2 * c3;\n this._w = c1 * c2 * c3 - s1 * s2 * s3;\n break;\n case "YXZ":\n this._x = s1 * c2 * c3 + c1 * s2 * s3;\n this._y = c1 * s2 * c3 - s1 * c2 * s3;\n this._z = c1 * c2 * s3 - s1 * s2 * c3;\n this._w = c1 * c2 * c3 + s1 * s2 * s3;\n break;\n case "ZXY":\n this._x = s1 * c2 * c3 - c1 * s2 * s3;\n this._y = c1 * s2 * c3 + s1 * c2 * s3;\n this._z = c1 * c2 * s3 + s1 * s2 * c3;\n this._w = c1 * c2 * c3 - s1 * s2 * s3;\n break;\n case "ZYX":\n this._x = s1 * c2 * c3 - c1 * s2 * s3;\n this._y = c1 * s2 * c3 + s1 * c2 * s3;\n this._z = c1 * c2 * s3 - s1 * s2 * c3;\n this._w = c1 * c2 * c3 + s1 * s2 * s3;\n break;\n case "YZX":\n this._x = s1 * c2 * c3 + c1 * s2 * s3;\n this._y = c1 * s2 * c3 + s1 * c2 * s3;\n this._z = c1 * c2 * s3 - s1 * s2 * c3;\n this._w = c1 * c2 * c3 - s1 * s2 * s3;\n break;\n case "XZY":\n this._x = s1 * c2 * c3 - c1 * s2 * s3;\n this._y = c1 * s2 * c3 - s1 * c2 * s3;\n this._z = c1 * c2 * s3 + s1 * s2 * c3;\n this._w = c1 * c2 * c3 + s1 * s2 * s3;\n break;\n default:\n console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: " + order);\n }\n if (update === true) this._onChangeCallback();\n return this;\n }\n /**\n * Sets this quaternion from the given axis and angle.\n *\n * @param {Vector3} axis - The normalized axis.\n * @param {number} angle - The angle in radians.\n * @return {Quaternion} A reference to this quaternion.\n */\n setFromAxisAngle(axis, angle) {\n const halfAngle = angle / 2, s = Math.sin(halfAngle);\n this._x = axis.x * s;\n this._y = axis.y * s;\n this._z = axis.z * s;\n this._w = Math.cos(halfAngle);\n this._onChangeCallback();\n return this;\n }\n /**\n * Sets this quaternion from the given rotation matrix.\n *\n * @param {Matrix4} m - A 4x4 matrix of which the upper 3x3 of matrix is a pure rotation matrix (i.e. unscaled).\n * @return {Quaternion} A reference to this quaternion.\n */\n setFromRotationMatrix(m) {\n const te = m.elements, m11 = te[0], m12 = te[4], m13 = te[8], m21 = te[1], m22 = te[5], m23 = te[9], m31 = te[2], m32 = te[6], m33 = te[10], trace = m11 + m22 + m33;\n if (trace > 0) {\n const s = 0.5 / Math.sqrt(trace + 1);\n this._w = 0.25 / s;\n this._x = (m32 - m23) * s;\n this._y = (m13 - m31) * s;\n this._z = (m21 - m12) * s;\n } else if (m11 > m22 && m11 > m33) {\n const s = 2 * Math.sqrt(1 + m11 - m22 - m33);\n this._w = (m32 - m23) / s;\n this._x = 0.25 * s;\n this._y = (m12 + m21) / s;\n this._z = (m13 + m31) / s;\n } else if (m22 > m33) {\n const s = 2 * Math.sqrt(1 + m22 - m11 - m33);\n this._w = (m13 - m31) / s;\n this._x = (m12 + m21) / s;\n this._y = 0.25 * s;\n this._z = (m23 + m32) / s;\n } else {\n const s = 2 * Math.sqrt(1 + m33 - m11 - m22);\n this._w = (m21 - m12) / s;\n this._x = (m13 + m31) / s;\n this._y = (m23 + m32) / s;\n this._z = 0.25 * s;\n }\n this._onChangeCallback();\n return this;\n }\n /**\n * Sets this quaternion to the rotation required to rotate the direction vector\n * `vFrom` to the direction vector `vTo`.\n *\n * @param {Vector3} vFrom - The first (normalized) direction vector.\n * @param {Vector3} vTo - The second (normalized) direction vector.\n * @return {Quaternion} A reference to this quaternion.\n */\n setFromUnitVectors(vFrom, vTo) {\n let r = vFrom.dot(vTo) + 1;\n if (r < 1e-8) {\n r = 0;\n if (Math.abs(vFrom.x) > Math.abs(vFrom.z)) {\n this._x = -vFrom.y;\n this._y = vFrom.x;\n this._z = 0;\n this._w = r;\n } else {\n this._x = 0;\n this._y = -vFrom.z;\n this._z = vFrom.y;\n this._w = r;\n }\n } else {\n this._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n this._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n this._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n this._w = r;\n }\n return this.normalize();\n }\n /**\n * Returns the angle between this quaternion and the given one in radians.\n *\n * @param {Quaternion} q - The quaternion to compute the angle with.\n * @return {number} The angle in radians.\n */\n angleTo(q) {\n return 2 * Math.acos(Math.abs(clamp(this.dot(q), -1, 1)));\n }\n /**\n * Rotates this quaternion by a given angular step to the given quaternion.\n * The method ensures that the final quaternion will not overshoot `q`.\n *\n * @param {Quaternion} q - The target quaternion.\n * @param {number} step - The angular step in radians.\n * @return {Quaternion} A reference to this quaternion.\n */\n rotateTowards(q, step) {\n const angle = this.angleTo(q);\n if (angle === 0) return this;\n const t = Math.min(1, step / angle);\n this.slerp(q, t);\n return this;\n }\n /**\n * Sets this quaternion to the identity quaternion; that is, to the\n * quaternion that represents "no rotation".\n *\n * @return {Quaternion} A reference to this quaternion.\n */\n identity() {\n return this.set(0, 0, 0, 1);\n }\n /**\n * Inverts this quaternion via {@link Quaternion#conjugate}. The\n * quaternion is assumed to have unit length.\n *\n * @return {Quaternion} A reference to this quaternion.\n */\n invert() {\n return this.conjugate();\n }\n /**\n * Returns the rotational conjugate of this quaternion. The conjugate of a\n * quaternion represents the same rotation in the opposite direction about\n * the rotational axis.\n *\n * @return {Quaternion} A reference to this quaternion.\n */\n conjugate() {\n this._x *= -1;\n this._y *= -1;\n this._z *= -1;\n this._onChangeCallback();\n return this;\n }\n /**\n * Calculates the dot product of this quaternion and the given one.\n *\n * @param {Quaternion} v - The quaternion to compute the dot product with.\n * @return {number} The result of the dot product.\n */\n dot(v) {\n return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n }\n /**\n * Computes the squared Euclidean length (straight-line length) of this quaternion,\n * considered as a 4 dimensional vector. This can be useful if you are comparing the\n * lengths of two quaternions, as this is a slightly more efficient calculation than\n * {@link Quaternion#length}.\n *\n * @return {number} The squared Euclidean length.\n */\n lengthSq() {\n return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n }\n /**\n * Computes the Euclidean length (straight-line length) of this quaternion,\n * considered as a 4 dimensional vector.\n *\n * @return {number} The Euclidean length.\n */\n length() {\n return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w);\n }\n /**\n * Normalizes this quaternion - that is, calculated the quaternion that performs\n * the same rotation as this one, but has a length equal to `1`.\n *\n * @return {Quaternion} A reference to this quaternion.\n */\n normalize() {\n let l = this.length();\n if (l === 0) {\n this._x = 0;\n this._y = 0;\n this._z = 0;\n this._w = 1;\n } else {\n l = 1 / l;\n this._x = this._x * l;\n this._y = this._y * l;\n this._z = this._z * l;\n this._w = this._w * l;\n }\n this._onChangeCallback();\n return this;\n }\n /**\n * Multiplies this quaternion by the given one.\n *\n * @param {Quaternion} q - The quaternion.\n * @return {Quaternion} A reference to this quaternion.\n */\n multiply(q) {\n return this.multiplyQuaternions(this, q);\n }\n /**\n * Pre-multiplies this quaternion by the given one.\n *\n * @param {Quaternion} q - The quaternion.\n * @return {Quaternion} A reference to this quaternion.\n */\n premultiply(q) {\n return this.multiplyQuaternions(q, this);\n }\n /**\n * Multiplies the given quaternions and stores the result in this instance.\n *\n * @param {Quaternion} a - The first quaternion.\n * @param {Quaternion} b - The second quaternion.\n * @return {Quaternion} A reference to this quaternion.\n */\n multiplyQuaternions(a, b) {\n const qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\n const qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\n this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n this._onChangeCallback();\n return this;\n }\n /**\n * Performs a spherical linear interpolation between quaternions.\n *\n * @param {Quaternion} qb - The target quaternion.\n * @param {number} t - The interpolation factor in the closed interval `[0, 1]`.\n * @return {Quaternion} A reference to this quaternion.\n */\n slerp(qb, t) {\n if (t === 0) return this;\n if (t === 1) return this.copy(qb);\n const x2 = this._x, y = this._y, z = this._z, w = this._w;\n let cosHalfTheta = w * qb._w + x2 * qb._x + y * qb._y + z * qb._z;\n if (cosHalfTheta < 0) {\n this._w = -qb._w;\n this._x = -qb._x;\n this._y = -qb._y;\n this._z = -qb._z;\n cosHalfTheta = -cosHalfTheta;\n } else {\n this.copy(qb);\n }\n if (cosHalfTheta >= 1) {\n this._w = w;\n this._x = x2;\n this._y = y;\n this._z = z;\n return this;\n }\n const sqrSinHalfTheta = 1 - cosHalfTheta * cosHalfTheta;\n if (sqrSinHalfTheta <= Number.EPSILON) {\n const s = 1 - t;\n this._w = s * w + t * this._w;\n this._x = s * x2 + t * this._x;\n this._y = s * y + t * this._y;\n this._z = s * z + t * this._z;\n this.normalize();\n return this;\n }\n const sinHalfTheta = Math.sqrt(sqrSinHalfTheta);\n const halfTheta = Math.atan2(sinHalfTheta, cosHalfTheta);\n const ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta, ratioB = Math.sin(t * halfTheta) / sinHalfTheta;\n this._w = w * ratioA + this._w * ratioB;\n this._x = x2 * ratioA + this._x * ratioB;\n this._y = y * ratioA + this._y * ratioB;\n this._z = z * ratioA + this._z * ratioB;\n this._onChangeCallback();\n return this;\n }\n /**\n * Performs a spherical linear interpolation between the given quaternions\n * and stores the result in this quaternion.\n *\n * @param {Quaternion} qa - The source quaternion.\n * @param {Quaternion} qb - The target quaternion.\n * @param {number} t - The interpolation factor in the closed interval `[0, 1]`.\n * @return {Quaternion} A reference to this quaternion.\n */\n slerpQuaternions(qa, qb, t) {\n return this.copy(qa).slerp(qb, t);\n }\n /**\n * Sets this quaternion to a uniformly random, normalized quaternion.\n *\n * @return {Quaternion} A reference to this quaternion.\n */\n random() {\n const theta1 = 2 * Math.PI * Math.random();\n const theta2 = 2 * Math.PI * Math.random();\n const x0 = Math.random();\n const r1 = Math.sqrt(1 - x0);\n const r2 = Math.sqrt(x0);\n return this.set(\n r1 * Math.sin(theta1),\n r1 * Math.cos(theta1),\n r2 * Math.sin(theta2),\n r2 * Math.cos(theta2)\n );\n }\n /**\n * Returns `true` if this quaternion is equal with the given one.\n *\n * @param {Quaternion} quaternion - The quaternion to test for equality.\n * @return {boolean} Whether this quaternion is equal with the given one.\n */\n equals(quaternion) {\n return quaternion._x === this._x && quaternion._y === this._y && quaternion._z === this._z && quaternion._w === this._w;\n }\n /**\n * Sets this quaternion\'s components from the given array.\n *\n * @param {Array} array - An array holding the quaternion component values.\n * @param {number} [offset=0] - The offset into the array.\n * @return {Quaternion} A reference to this quaternion.\n */\n fromArray(array, offset = 0) {\n this._x = array[offset];\n this._y = array[offset + 1];\n this._z = array[offset + 2];\n this._w = array[offset + 3];\n this._onChangeCallback();\n return this;\n }\n /**\n * Writes the components of this quaternion to the given array. If no array is provided,\n * the method returns a new instance.\n *\n * @param {Array} [array=[]] - The target array holding the quaternion components.\n * @param {number} [offset=0] - Index of the first element in the array.\n * @return {Array} The quaternion components.\n */\n toArray(array = [], offset = 0) {\n array[offset] = this._x;\n array[offset + 1] = this._y;\n array[offset + 2] = this._z;\n array[offset + 3] = this._w;\n return array;\n }\n /**\n * Sets the components of this quaternion from the given buffer attribute.\n *\n * @param {BufferAttribute} attribute - The buffer attribute holding quaternion data.\n * @param {number} index - The index into the attribute.\n * @return {Quaternion} A reference to this quaternion.\n */\n fromBufferAttribute(attribute, index) {\n this._x = attribute.getX(index);\n this._y = attribute.getY(index);\n this._z = attribute.getZ(index);\n this._w = attribute.getW(index);\n this._onChangeCallback();\n return this;\n }\n /**\n * This methods defines the serialization result of this class. Returns the\n * numerical elements of this quaternion in an array of format `[x, y, z, w]`.\n *\n * @return {Array} The serialized quaternion.\n */\n toJSON() {\n return this.toArray();\n }\n _onChange(callback) {\n this._onChangeCallback = callback;\n return this;\n }\n _onChangeCallback() {\n }\n *[Symbol.iterator]() {\n yield this._x;\n yield this._y;\n yield this._z;\n yield this._w;\n }\n }\n class Vector3 {\n /**\n * Constructs a new 3D vector.\n *\n * @param {number} [x=0] - The x value of this vector.\n * @param {number} [y=0] - The y value of this vector.\n * @param {number} [z=0] - The z value of this vector.\n */\n constructor(x2 = 0, y = 0, z = 0) {\n Vector3.prototype.isVector3 = true;\n this.x = x2;\n this.y = y;\n this.z = z;\n }\n /**\n * Sets the vector components.\n *\n * @param {number} x - The value of the x component.\n * @param {number} y - The value of the y component.\n * @param {number} z - The value of the z component.\n * @return {Vector3} A reference to this vector.\n */\n set(x2, y, z) {\n if (z === void 0) z = this.z;\n this.x = x2;\n this.y = y;\n this.z = z;\n return this;\n }\n /**\n * Sets the vector components to the same value.\n *\n * @param {number} scalar - The value to set for all vector components.\n * @return {Vector3} A reference to this vector.\n */\n setScalar(scalar) {\n this.x = scalar;\n this.y = scalar;\n this.z = scalar;\n return this;\n }\n /**\n * Sets the vector\'s x component to the given value\n *\n * @param {number} x - The value to set.\n * @return {Vector3} A reference to this vector.\n */\n setX(x2) {\n this.x = x2;\n return this;\n }\n /**\n * Sets the vector\'s y component to the given value\n *\n * @param {number} y - The value to set.\n * @return {Vector3} A reference to this vector.\n */\n setY(y) {\n this.y = y;\n return this;\n }\n /**\n * Sets the vector\'s z component to the given value\n *\n * @param {number} z - The value to set.\n * @return {Vector3} A reference to this vector.\n */\n setZ(z) {\n this.z = z;\n return this;\n }\n /**\n * Allows to set a vector component with an index.\n *\n * @param {number} index - The component index. `0` equals to x, `1` equals to y, `2` equals to z.\n * @param {number} value - The value to set.\n * @return {Vector3} A reference to this vector.\n */\n setComponent(index, value) {\n switch (index) {\n case 0:\n this.x = value;\n break;\n case 1:\n this.y = value;\n break;\n case 2:\n this.z = value;\n break;\n default:\n throw new Error("index is out of range: " + index);\n }\n return this;\n }\n /**\n * Returns the value of the vector component which matches the given index.\n *\n * @param {number} index - The component index. `0` equals to x, `1` equals to y, `2` equals to z.\n * @return {number} A vector component value.\n */\n getComponent(index) {\n switch (index) {\n case 0:\n return this.x;\n case 1:\n return this.y;\n case 2:\n return this.z;\n default:\n throw new Error("index is out of range: " + index);\n }\n }\n /**\n * Returns a new vector with copied values from this instance.\n *\n * @return {Vector3} A clone of this instance.\n */\n clone() {\n return new this.constructor(this.x, this.y, this.z);\n }\n /**\n * Copies the values of the given vector to this instance.\n *\n * @param {Vector3} v - The vector to copy.\n * @return {Vector3} A reference to this vector.\n */\n copy(v) {\n this.x = v.x;\n this.y = v.y;\n this.z = v.z;\n return this;\n }\n /**\n * Adds the given vector to this instance.\n *\n * @param {Vector3} v - The vector to add.\n * @return {Vector3} A reference to this vector.\n */\n add(v) {\n this.x += v.x;\n this.y += v.y;\n this.z += v.z;\n return this;\n }\n /**\n * Adds the given scalar value to all components of this instance.\n *\n * @param {number} s - The scalar to add.\n * @return {Vector3} A reference to this vector.\n */\n addScalar(s) {\n this.x += s;\n this.y += s;\n this.z += s;\n return this;\n }\n /**\n * Adds the given vectors and stores the result in this instance.\n *\n * @param {Vector3} a - The first vector.\n * @param {Vector3} b - The second vector.\n * @return {Vector3} A reference to this vector.\n */\n addVectors(a, b) {\n this.x = a.x + b.x;\n this.y = a.y + b.y;\n this.z = a.z + b.z;\n return this;\n }\n /**\n * Adds the given vector scaled by the given factor to this instance.\n *\n * @param {Vector3|Vector4} v - The vector.\n * @param {number} s - The factor that scales `v`.\n * @return {Vector3} A reference to this vector.\n */\n addScaledVector(v, s) {\n this.x += v.x * s;\n this.y += v.y * s;\n this.z += v.z * s;\n return this;\n }\n /**\n * Subtracts the given vector from this instance.\n *\n * @param {Vector3} v - The vector to subtract.\n * @return {Vector3} A reference to this vector.\n */\n sub(v) {\n this.x -= v.x;\n this.y -= v.y;\n this.z -= v.z;\n return this;\n }\n /**\n * Subtracts the given scalar value from all components of this instance.\n *\n * @param {number} s - The scalar to subtract.\n * @return {Vector3} A reference to this vector.\n */\n subScalar(s) {\n this.x -= s;\n this.y -= s;\n this.z -= s;\n return this;\n }\n /**\n * Subtracts the given vectors and stores the result in this instance.\n *\n * @param {Vector3} a - The first vector.\n * @param {Vector3} b - The second vector.\n * @return {Vector3} A reference to this vector.\n */\n subVectors(a, b) {\n this.x = a.x - b.x;\n this.y = a.y - b.y;\n this.z = a.z - b.z;\n return this;\n }\n /**\n * Multiplies the given vector with this instance.\n *\n * @param {Vector3} v - The vector to multiply.\n * @return {Vector3} A reference to this vector.\n */\n multiply(v) {\n this.x *= v.x;\n this.y *= v.y;\n this.z *= v.z;\n return this;\n }\n /**\n * Multiplies the given scalar value with all components of this instance.\n *\n * @param {number} scalar - The scalar to multiply.\n * @return {Vector3} A reference to this vector.\n */\n multiplyScalar(scalar) {\n this.x *= scalar;\n this.y *= scalar;\n this.z *= scalar;\n return this;\n }\n /**\n * Multiplies the given vectors and stores the result in this instance.\n *\n * @param {Vector3} a - The first vector.\n * @param {Vector3} b - The second vector.\n * @return {Vector3} A reference to this vector.\n */\n multiplyVectors(a, b) {\n this.x = a.x * b.x;\n this.y = a.y * b.y;\n this.z = a.z * b.z;\n return this;\n }\n /**\n * Applies the given Euler rotation to this vector.\n *\n * @param {Euler} euler - The Euler angles.\n * @return {Vector3} A reference to this vector.\n */\n applyEuler(euler) {\n return this.applyQuaternion(_quaternion$4.setFromEuler(euler));\n }\n /**\n * Applies a rotation specified by an axis and an angle to this vector.\n *\n * @param {Vector3} axis - A normalized vector representing the rotation axis.\n * @param {number} angle - The angle in radians.\n * @return {Vector3} A reference to this vector.\n */\n applyAxisAngle(axis, angle) {\n return this.applyQuaternion(_quaternion$4.setFromAxisAngle(axis, angle));\n }\n /**\n * Multiplies this vector with the given 3x3 matrix.\n *\n * @param {Matrix3} m - The 3x3 matrix.\n * @return {Vector3} A reference to this vector.\n */\n applyMatrix3(m) {\n const x2 = this.x, y = this.y, z = this.z;\n const e = m.elements;\n this.x = e[0] * x2 + e[3] * y + e[6] * z;\n this.y = e[1] * x2 + e[4] * y + e[7] * z;\n this.z = e[2] * x2 + e[5] * y + e[8] * z;\n return this;\n }\n /**\n * Multiplies this vector by the given normal matrix and normalizes\n * the result.\n *\n * @param {Matrix3} m - The normal matrix.\n * @return {Vector3} A reference to this vector.\n */\n applyNormalMatrix(m) {\n return this.applyMatrix3(m).normalize();\n }\n /**\n * Multiplies this vector (with an implicit 1 in the 4th dimension) by m, and\n * divides by perspective.\n *\n * @param {Matrix4} m - The matrix to apply.\n * @return {Vector3} A reference to this vector.\n */\n applyMatrix4(m) {\n const x2 = this.x, y = this.y, z = this.z;\n const e = m.elements;\n const w = 1 / (e[3] * x2 + e[7] * y + e[11] * z + e[15]);\n this.x = (e[0] * x2 + e[4] * y + e[8] * z + e[12]) * w;\n this.y = (e[1] * x2 + e[5] * y + e[9] * z + e[13]) * w;\n this.z = (e[2] * x2 + e[6] * y + e[10] * z + e[14]) * w;\n return this;\n }\n /**\n * Applies the given Quaternion to this vector.\n *\n * @param {Quaternion} q - The Quaternion.\n * @return {Vector3} A reference to this vector.\n */\n applyQuaternion(q) {\n const vx = this.x, vy = this.y, vz = this.z;\n const qx = q.x, qy = q.y, qz = q.z, qw = q.w;\n const tx = 2 * (qy * vz - qz * vy);\n const ty = 2 * (qz * vx - qx * vz);\n const tz = 2 * (qx * vy - qy * vx);\n this.x = vx + qw * tx + qy * tz - qz * ty;\n this.y = vy + qw * ty + qz * tx - qx * tz;\n this.z = vz + qw * tz + qx * ty - qy * tx;\n return this;\n }\n /**\n * Projects this vector from world space into the camera\'s normalized\n * device coordinate (NDC) space.\n *\n * @param {Camera} camera - The camera.\n * @return {Vector3} A reference to this vector.\n */\n project(camera) {\n return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix);\n }\n /**\n * Unprojects this vector from the camera\'s normalized device coordinate (NDC)\n * space into world space.\n *\n * @param {Camera} camera - The camera.\n * @return {Vector3} A reference to this vector.\n */\n unproject(camera) {\n return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld);\n }\n /**\n * Transforms the direction of this vector by a matrix (the upper left 3 x 3\n * subset of the given 4x4 matrix and then normalizes the result.\n *\n * @param {Matrix4} m - The matrix.\n * @return {Vector3} A reference to this vector.\n */\n transformDirection(m) {\n const x2 = this.x, y = this.y, z = this.z;\n const e = m.elements;\n this.x = e[0] * x2 + e[4] * y + e[8] * z;\n this.y = e[1] * x2 + e[5] * y + e[9] * z;\n this.z = e[2] * x2 + e[6] * y + e[10] * z;\n return this.normalize();\n }\n /**\n * Divides this instance by the given vector.\n *\n * @param {Vector3} v - The vector to divide.\n * @return {Vector3} A reference to this vector.\n */\n divide(v) {\n this.x /= v.x;\n this.y /= v.y;\n this.z /= v.z;\n return this;\n }\n /**\n * Divides this vector by the given scalar.\n *\n * @param {number} scalar - The scalar to divide.\n * @return {Vector3} A reference to this vector.\n */\n divideScalar(scalar) {\n return this.multiplyScalar(1 / scalar);\n }\n /**\n * If this vector\'s x, y or z value is greater than the given vector\'s x, y or z\n * value, replace that value with the corresponding min value.\n *\n * @param {Vector3} v - The vector.\n * @return {Vector3} A reference to this vector.\n */\n min(v) {\n this.x = Math.min(this.x, v.x);\n this.y = Math.min(this.y, v.y);\n this.z = Math.min(this.z, v.z);\n return this;\n }\n /**\n * If this vector\'s x, y or z value is less than the given vector\'s x, y or z\n * value, replace that value with the corresponding max value.\n *\n * @param {Vector3} v - The vector.\n * @return {Vector3} A reference to this vector.\n */\n max(v) {\n this.x = Math.max(this.x, v.x);\n this.y = Math.max(this.y, v.y);\n this.z = Math.max(this.z, v.z);\n return this;\n }\n /**\n * If this vector\'s x, y or z value is greater than the max vector\'s x, y or z\n * value, it is replaced by the corresponding value.\n * If this vector\'s x, y or z value is less than the min vector\'s x, y or z value,\n * it is replaced by the corresponding value.\n *\n * @param {Vector3} min - The minimum x, y and z values.\n * @param {Vector3} max - The maximum x, y and z values in the desired range.\n * @return {Vector3} A reference to this vector.\n */\n clamp(min, max2) {\n this.x = clamp(this.x, min.x, max2.x);\n this.y = clamp(this.y, min.y, max2.y);\n this.z = clamp(this.z, min.z, max2.z);\n return this;\n }\n /**\n * If this vector\'s x, y or z values are greater than the max value, they are\n * replaced by the max value.\n * If this vector\'s x, y or z values are less than the min value, they are\n * replaced by the min value.\n *\n * @param {number} minVal - The minimum value the components will be clamped to.\n * @param {number} maxVal - The maximum value the components will be clamped to.\n * @return {Vector3} A reference to this vector.\n */\n clampScalar(minVal, maxVal) {\n this.x = clamp(this.x, minVal, maxVal);\n this.y = clamp(this.y, minVal, maxVal);\n this.z = clamp(this.z, minVal, maxVal);\n return this;\n }\n /**\n * If this vector\'s length is greater than the max value, it is replaced by\n * the max value.\n * If this vector\'s length is less than the min value, it is replaced by the\n * min value.\n *\n * @param {number} min - The minimum value the vector length will be clamped to.\n * @param {number} max - The maximum value the vector length will be clamped to.\n * @return {Vector3} A reference to this vector.\n */\n clampLength(min, max2) {\n const length = this.length();\n return this.divideScalar(length || 1).multiplyScalar(clamp(length, min, max2));\n }\n /**\n * The components of this vector are rounded down to the nearest integer value.\n *\n * @return {Vector3} A reference to this vector.\n */\n floor() {\n this.x = Math.floor(this.x);\n this.y = Math.floor(this.y);\n this.z = Math.floor(this.z);\n return this;\n }\n /**\n * The components of this vector are rounded up to the nearest integer value.\n *\n * @return {Vector3} A reference to this vector.\n */\n ceil() {\n this.x = Math.ceil(this.x);\n this.y = Math.ceil(this.y);\n this.z = Math.ceil(this.z);\n return this;\n }\n /**\n * The components of this vector are rounded to the nearest integer value\n *\n * @return {Vector3} A reference to this vector.\n */\n round() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n this.z = Math.round(this.z);\n return this;\n }\n /**\n * The components of this vector are rounded towards zero (up if negative,\n * down if positive) to an integer value.\n *\n * @return {Vector3} A reference to this vector.\n */\n roundToZero() {\n this.x = Math.trunc(this.x);\n this.y = Math.trunc(this.y);\n this.z = Math.trunc(this.z);\n return this;\n }\n /**\n * Inverts this vector - i.e. sets x = -x, y = -y and z = -z.\n *\n * @return {Vector3} A reference to this vector.\n */\n negate() {\n this.x = -this.x;\n this.y = -this.y;\n this.z = -this.z;\n return this;\n }\n /**\n * Calculates the dot product of the given vector with this instance.\n *\n * @param {Vector3} v - The vector to compute the dot product with.\n * @return {number} The result of the dot product.\n */\n dot(v) {\n return this.x * v.x + this.y * v.y + this.z * v.z;\n }\n // TODO lengthSquared?\n /**\n * Computes the square of the Euclidean length (straight-line length) from\n * (0, 0, 0) to (x, y, z). If you are comparing the lengths of vectors, you should\n * compare the length squared instead as it is slightly more efficient to calculate.\n *\n * @return {number} The square length of this vector.\n */\n lengthSq() {\n return this.x * this.x + this.y * this.y + this.z * this.z;\n }\n /**\n * Computes the Euclidean length (straight-line length) from (0, 0, 0) to (x, y, z).\n *\n * @return {number} The length of this vector.\n */\n length() {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n }\n /**\n * Computes the Manhattan length of this vector.\n *\n * @return {number} The length of this vector.\n */\n manhattanLength() {\n return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);\n }\n /**\n * Converts this vector to a unit vector - that is, sets it equal to a vector\n * with the same direction as this one, but with a vector length of `1`.\n *\n * @return {Vector3} A reference to this vector.\n */\n normalize() {\n return this.divideScalar(this.length() || 1);\n }\n /**\n * Sets this vector to a vector with the same direction as this one, but\n * with the specified length.\n *\n * @param {number} length - The new length of this vector.\n * @return {Vector3} A reference to this vector.\n */\n setLength(length) {\n return this.normalize().multiplyScalar(length);\n }\n /**\n * Linearly interpolates between the given vector and this instance, where\n * alpha is the percent distance along the line - alpha = 0 will be this\n * vector, and alpha = 1 will be the given one.\n *\n * @param {Vector3} v - The vector to interpolate towards.\n * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n * @return {Vector3} A reference to this vector.\n */\n lerp(v, alpha) {\n this.x += (v.x - this.x) * alpha;\n this.y += (v.y - this.y) * alpha;\n this.z += (v.z - this.z) * alpha;\n return this;\n }\n /**\n * Linearly interpolates between the given vectors, where alpha is the percent\n * distance along the line - alpha = 0 will be first vector, and alpha = 1 will\n * be the second one. The result is stored in this instance.\n *\n * @param {Vector3} v1 - The first vector.\n * @param {Vector3} v2 - The second vector.\n * @param {number} alpha - The interpolation factor, typically in the closed interval `[0, 1]`.\n * @return {Vector3} A reference to this vector.\n */\n lerpVectors(v1, v2, alpha) {\n this.x = v1.x + (v2.x - v1.x) * alpha;\n this.y = v1.y + (v2.y - v1.y) * alpha;\n this.z = v1.z + (v2.z - v1.z) * alpha;\n return this;\n }\n /**\n * Calculates the cross product of the given vector with this instance.\n *\n * @param {Vector3} v - The vector to compute the cross product with.\n * @return {Vector3} The result of the cross product.\n */\n cross(v) {\n return this.crossVectors(this, v);\n }\n /**\n * Calculates the cross product of the given vectors and stores the result\n * in this instance.\n *\n * @param {Vector3} a - The first vector.\n * @param {Vector3} b - The second vector.\n * @return {Vector3} A reference to this vector.\n */\n crossVectors(a, b) {\n const ax = a.x, ay = a.y, az = a.z;\n const bx = b.x, by = b.y, bz = b.z;\n this.x = ay * bz - az * by;\n this.y = az * bx - ax * bz;\n this.z = ax * by - ay * bx;\n return this;\n }\n /**\n * Projects this vector onto the given one.\n *\n * @param {Vector3} v - The vector to project to.\n * @return {Vector3} A reference to this vector.\n */\n projectOnVector(v) {\n const denominator = v.lengthSq();\n if (denominator === 0) return this.set(0, 0, 0);\n const scalar = v.dot(this) / denominator;\n return this.copy(v).multiplyScalar(scalar);\n }\n /**\n * Projects this vector onto a plane by subtracting this\n * vector projected onto the plane\'s normal from this vector.\n *\n * @param {Vector3} planeNormal - The plane normal.\n * @return {Vector3} A reference to this vector.\n */\n projectOnPlane(planeNormal) {\n _vector$c.copy(this).projectOnVector(planeNormal);\n return this.sub(_vector$c);\n }\n /**\n * Reflects this vector off a plane orthogonal to the given normal vector.\n *\n * @param {Vector3} normal - The (normalized) normal vector.\n * @return {Vector3} A reference to this vector.\n */\n reflect(normal) {\n return this.sub(_vector$c.copy(normal).multiplyScalar(2 * this.dot(normal)));\n }\n /**\n * Returns the angle between the given vector and this instance in radians.\n *\n * @param {Vector3} v - The vector to compute the angle with.\n * @return {number} The angle in radians.\n */\n angleTo(v) {\n const denominator = Math.sqrt(this.lengthSq() * v.lengthSq());\n if (denominator === 0) return Math.PI / 2;\n const theta = this.dot(v) / denominator;\n return Math.acos(clamp(theta, -1, 1));\n }\n /**\n * Computes the distance from the given vector to this instance.\n *\n * @param {Vector3} v - The vector to compute the distance to.\n * @return {number} The distance.\n */\n distanceTo(v) {\n return Math.sqrt(this.distanceToSquared(v));\n }\n /**\n * Computes the squared distance from the given vector to this instance.\n * If you are just comparing the distance with another distance, you should compare\n * the distance squared instead as it is slightly more efficient to calculate.\n *\n * @param {Vector3} v - The vector to compute the squared distance to.\n * @return {number} The squared distance.\n */\n distanceToSquared(v) {\n const dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\n return dx * dx + dy * dy + dz * dz;\n }\n /**\n * Computes the Manhattan distance from the given vector to this instance.\n *\n * @param {Vector3} v - The vector to compute the Manhattan distance to.\n * @return {number} The Manhattan distance.\n */\n manhattanDistanceTo(v) {\n return Math.abs(this.x - v.x) + Math.abs(this.y - v.y) + Math.abs(this.z - v.z);\n }\n /**\n * Sets the vector components from the given spherical coordinates.\n *\n * @param {Spherical} s - The spherical coordinates.\n * @return {Vector3} A reference to this vector.\n */\n setFromSpherical(s) {\n return this.setFromSphericalCoords(s.radius, s.phi, s.theta);\n }\n /**\n * Sets the vector components from the given spherical coordinates.\n *\n * @param {number} radius - The radius.\n * @param {number} phi - The phi angle in radians.\n * @param {number} theta - The theta angle in radians.\n * @return {Vector3} A reference to this vector.\n */\n setFromSphericalCoords(radius, phi, theta) {\n const sinPhiRadius = Math.sin(phi) * radius;\n this.x = sinPhiRadius * Math.sin(theta);\n this.y = Math.cos(phi) * radius;\n this.z = sinPhiRadius * Math.cos(theta);\n return this;\n }\n /**\n * Sets the vector components from the given cylindrical coordinates.\n *\n * @param {Cylindrical} c - The cylindrical coordinates.\n * @return {Vector3} A reference to this vector.\n */\n setFromCylindrical(c) {\n return this.setFromCylindricalCoords(c.radius, c.theta, c.y);\n }\n /**\n * Sets the vector components from the given cylindrical coordinates.\n *\n * @param {number} radius - The radius.\n * @param {number} theta - The theta angle in radians.\n * @param {number} y - The y value.\n * @return {Vector3} A reference to this vector.\n */\n setFromCylindricalCoords(radius, theta, y) {\n this.x = radius * Math.sin(theta);\n this.y = y;\n this.z = radius * Math.cos(theta);\n return this;\n }\n /**\n * Sets the vector components to the position elements of the\n * given transformation matrix.\n *\n * @param {Matrix4} m - The 4x4 matrix.\n * @return {Vector3} A reference to this vector.\n */\n setFromMatrixPosition(m) {\n const e = m.elements;\n this.x = e[12];\n this.y = e[13];\n this.z = e[14];\n return this;\n }\n /**\n * Sets the vector components to the scale elements of the\n * given transformation matrix.\n *\n * @param {Matrix4} m - The 4x4 matrix.\n * @return {Vector3} A reference to this vector.\n */\n setFromMatrixScale(m) {\n const sx = this.setFromMatrixColumn(m, 0).length();\n const sy = this.setFromMatrixColumn(m, 1).length();\n const sz = this.setFromMatrixColumn(m, 2).length();\n this.x = sx;\n this.y = sy;\n this.z = sz;\n return this;\n }\n /**\n * Sets the vector components from the specified matrix column.\n *\n * @param {Matrix4} m - The 4x4 matrix.\n * @param {number} index - The column index.\n * @return {Vector3} A reference to this vector.\n */\n setFromMatrixColumn(m, index) {\n return this.fromArray(m.elements, index * 4);\n }\n /**\n * Sets the vector components from the specified matrix column.\n *\n * @param {Matrix3} m - The 3x3 matrix.\n * @param {number} index - The column index.\n * @return {Vector3} A reference to this vector.\n */\n setFromMatrix3Column(m, index) {\n return this.fromArray(m.elements, index * 3);\n }\n /**\n * Sets the vector components from the given Euler angles.\n *\n * @param {Euler} e - The Euler angles to set.\n * @return {Vector3} A reference to this vector.\n */\n setFromEuler(e) {\n this.x = e._x;\n this.y = e._y;\n this.z = e._z;\n return this;\n }\n /**\n * Sets the vector components from the RGB components of the\n * given color.\n *\n * @param {Color} c - The color to set.\n * @return {Vector3} A reference to this vector.\n */\n setFromColor(c) {\n this.x = c.r;\n this.y = c.g;\n this.z = c.b;\n return this;\n }\n /**\n * Returns `true` if this vector is equal with the given one.\n *\n * @param {Vector3} v - The vector to test for equality.\n * @return {boolean} Whether this vector is equal with the given one.\n */\n equals(v) {\n return v.x === this.x && v.y === this.y && v.z === this.z;\n }\n /**\n * Sets this vector\'s x value to be `array[ offset ]`, y value to be `array[ offset + 1 ]`\n * and z value to be `array[ offset + 2 ]`.\n *\n * @param {Array} array - An array holding the vector component values.\n * @param {number} [offset=0] - The offset into the array.\n * @return {Vector3} A reference to this vector.\n */\n fromArray(array, offset = 0) {\n this.x = array[offset];\n this.y = array[offset + 1];\n this.z = array[offset + 2];\n return this;\n }\n /**\n * Writes the components of this vector to the given array. If no array is provided,\n * the method returns a new instance.\n *\n * @param {Array} [array=[]] - The target array holding the vector components.\n * @param {number} [offset=0] - Index of the first element in the array.\n * @return {Array} The vector components.\n */\n toArray(array = [], offset = 0) {\n array[offset] = this.x;\n array[offset + 1] = this.y;\n array[offset + 2] = this.z;\n return array;\n }\n /**\n * Sets the components of this vector from the given buffer attribute.\n *\n * @param {BufferAttribute} attribute - The buffer attribute holding vector data.\n * @param {number} index - The index into the attribute.\n * @return {Vector3} A reference to this vector.\n */\n fromBufferAttribute(attribute, index) {\n this.x = attribute.getX(index);\n this.y = attribute.getY(index);\n this.z = attribute.getZ(index);\n return this;\n }\n /**\n * Sets each component of this vector to a pseudo-random value between `0` and\n * `1`, excluding `1`.\n *\n * @return {Vector3} A reference to this vector.\n */\n random() {\n this.x = Math.random();\n this.y = Math.random();\n this.z = Math.random();\n return this;\n }\n /**\n * Sets this vector to a uniformly random point on a unit sphere.\n *\n * @return {Vector3} A reference to this vector.\n */\n randomDirection() {\n const theta = Math.random() * Math.PI * 2;\n const u = Math.random() * 2 - 1;\n const c = Math.sqrt(1 - u * u);\n this.x = c * Math.cos(theta);\n this.y = u;\n this.z = c * Math.sin(theta);\n return this;\n }\n *[Symbol.iterator]() {\n yield this.x;\n yield this.y;\n yield this.z;\n }\n }\n const _vector$c = /* @__PURE__ */ new Vector3();\n const _quaternion$4 = /* @__PURE__ */ new Quaternion();\n class Matrix3 {\n /**\n * Constructs a new 3x3 matrix. The arguments are supposed to be\n * in row-major order. If no arguments are provided, the constructor\n * initializes the matrix as an identity matrix.\n *\n * @param {number} [n11] - 1-1 matrix element.\n * @param {number} [n12] - 1-2 matrix element.\n * @param {number} [n13] - 1-3 matrix element.\n * @param {number} [n21] - 2-1 matrix element.\n * @param {number} [n22] - 2-2 matrix element.\n * @param {number} [n23] - 2-3 matrix element.\n * @param {number} [n31] - 3-1 matrix element.\n * @param {number} [n32] - 3-2 matrix element.\n * @param {number} [n33] - 3-3 matrix element.\n */\n constructor(n11, n12, n13, n21, n22, n23, n31, n32, n33) {\n Matrix3.prototype.isMatrix3 = true;\n this.elements = [\n 1,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 1\n ];\n if (n11 !== void 0) {\n this.set(n11, n12, n13, n21, n22, n23, n31, n32, n33);\n }\n }\n /**\n * Sets the elements of the matrix.The arguments are supposed to be\n * in row-major order.\n *\n * @param {number} [n11] - 1-1 matrix element.\n * @param {number} [n12] - 1-2 matrix element.\n * @param {number} [n13] - 1-3 matrix element.\n * @param {number} [n21] - 2-1 matrix element.\n * @param {number} [n22] - 2-2 matrix element.\n * @param {number} [n23] - 2-3 matrix element.\n * @param {number} [n31] - 3-1 matrix element.\n * @param {number} [n32] - 3-2 matrix element.\n * @param {number} [n33] - 3-3 matrix element.\n * @return {Matrix3} A reference to this matrix.\n */\n set(n11, n12, n13, n21, n22, n23, n31, n32, n33) {\n const te = this.elements;\n te[0] = n11;\n te[1] = n21;\n te[2] = n31;\n te[3] = n12;\n te[4] = n22;\n te[5] = n32;\n te[6] = n13;\n te[7] = n23;\n te[8] = n33;\n return this;\n }\n /**\n * Sets this matrix to the 3x3 identity matrix.\n *\n * @return {Matrix3} A reference to this matrix.\n */\n identity() {\n this.set(\n 1,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 1\n );\n return this;\n }\n /**\n * Copies the values of the given matrix to this instance.\n *\n * @param {Matrix3} m - The matrix to copy.\n * @return {Matrix3} A reference to this matrix.\n */\n copy(m) {\n const te = this.elements;\n const me = m.elements;\n te[0] = me[0];\n te[1] = me[1];\n te[2] = me[2];\n te[3] = me[3];\n te[4] = me[4];\n te[5] = me[5];\n te[6] = me[6];\n te[7] = me[7];\n te[8] = me[8];\n return this;\n }\n /**\n * Extracts the basis of this matrix into the three axis vectors provided.\n *\n * @param {Vector3} xAxis - The basis\'s x axis.\n * @param {Vector3} yAxis - The basis\'s y axis.\n * @param {Vector3} zAxis - The basis\'s z axis.\n * @return {Matrix3} A reference to this matrix.\n */\n extractBasis(xAxis, yAxis, zAxis) {\n xAxis.setFromMatrix3Column(this, 0);\n yAxis.setFromMatrix3Column(this, 1);\n zAxis.setFromMatrix3Column(this, 2);\n return this;\n }\n /**\n * Set this matrix to the upper 3x3 matrix of the given 4x4 matrix.\n *\n * @param {Matrix4} m - The 4x4 matrix.\n * @return {Matrix3} A reference to this matrix.\n */\n setFromMatrix4(m) {\n const me = m.elements;\n this.set(\n me[0],\n me[4],\n me[8],\n me[1],\n me[5],\n me[9],\n me[2],\n me[6],\n me[10]\n );\n return this;\n }\n /**\n * Post-multiplies this matrix by the given 3x3 matrix.\n *\n * @param {Matrix3} m - The matrix to multiply with.\n * @return {Matrix3} A reference to this matrix.\n */\n multiply(m) {\n return this.multiplyMatrices(this, m);\n }\n /**\n * Pre-multiplies this matrix by the given 3x3 matrix.\n *\n * @param {Matrix3} m - The matrix to multiply with.\n * @return {Matrix3} A reference to this matrix.\n */\n premultiply(m) {\n return this.multiplyMatrices(m, this);\n }\n /**\n * Multiples the given 3x3 matrices and stores the result\n * in this matrix.\n *\n * @param {Matrix3} a - The first matrix.\n * @param {Matrix3} b - The second matrix.\n * @return {Matrix3} A reference to this matrix.\n */\n multiplyMatrices(a, b) {\n const ae = a.elements;\n const be = b.elements;\n const te = this.elements;\n const a11 = ae[0], a12 = ae[3], a13 = ae[6];\n const a21 = ae[1], a22 = ae[4], a23 = ae[7];\n const a31 = ae[2], a32 = ae[5], a33 = ae[8];\n const b11 = be[0], b12 = be[3], b13 = be[6];\n const b21 = be[1], b22 = be[4], b23 = be[7];\n const b31 = be[2], b32 = be[5], b33 = be[8];\n te[0] = a11 * b11 + a12 * b21 + a13 * b31;\n te[3] = a11 * b12 + a12 * b22 + a13 * b32;\n te[6] = a11 * b13 + a12 * b23 + a13 * b33;\n te[1] = a21 * b11 + a22 * b21 + a23 * b31;\n te[4] = a21 * b12 + a22 * b22 + a23 * b32;\n te[7] = a21 * b13 + a22 * b23 + a23 * b33;\n te[2] = a31 * b11 + a32 * b21 + a33 * b31;\n te[5] = a31 * b12 + a32 * b22 + a33 * b32;\n te[8] = a31 * b13 + a32 * b23 + a33 * b33;\n return this;\n }\n /**\n * Multiplies every component of the matrix by the given scalar.\n *\n * @param {number} s - The scalar.\n * @return {Matrix3} A reference to this matrix.\n */\n multiplyScalar(s) {\n const te = this.elements;\n te[0] *= s;\n te[3] *= s;\n te[6] *= s;\n te[1] *= s;\n te[4] *= s;\n te[7] *= s;\n te[2] *= s;\n te[5] *= s;\n te[8] *= s;\n return this;\n }\n /**\n * Computes and returns the determinant of this matrix.\n *\n * @return {number} The determinant.\n */\n determinant() {\n const te = this.elements;\n const a = te[0], b = te[1], c = te[2], d = te[3], e = te[4], f = te[5], g = te[6], h = te[7], i2 = te[8];\n return a * e * i2 - a * f * h - b * d * i2 + b * f * g + c * d * h - c * e * g;\n }\n /**\n * Inverts this matrix, using the [analytic method]{@link https://en.wikipedia.org/wiki/Invertible_matrix#Analytic_solution}.\n * You can not invert with a determinant of zero. If you attempt this, the method produces\n * a zero matrix instead.\n *\n * @return {Matrix3} A reference to this matrix.\n */\n invert() {\n const te = this.elements, n11 = te[0], n21 = te[1], n31 = te[2], n12 = te[3], n22 = te[4], n32 = te[5], n13 = te[6], n23 = te[7], n33 = te[8], t11 = n33 * n22 - n32 * n23, t12 = n32 * n13 - n33 * n12, t13 = n23 * n12 - n22 * n13, det = n11 * t11 + n21 * t12 + n31 * t13;\n if (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0);\n const detInv = 1 / det;\n te[0] = t11 * detInv;\n te[1] = (n31 * n23 - n33 * n21) * detInv;\n te[2] = (n32 * n21 - n31 * n22) * detInv;\n te[3] = t12 * detInv;\n te[4] = (n33 * n11 - n31 * n13) * detInv;\n te[5] = (n31 * n12 - n32 * n11) * detInv;\n te[6] = t13 * detInv;\n te[7] = (n21 * n13 - n23 * n11) * detInv;\n te[8] = (n22 * n11 - n21 * n12) * detInv;\n return this;\n }\n /**\n * Transposes this matrix in place.\n *\n * @return {Matrix3} A reference to this matrix.\n */\n transpose() {\n let tmp;\n const m = this.elements;\n tmp = m[1];\n m[1] = m[3];\n m[3] = tmp;\n tmp = m[2];\n m[2] = m[6];\n m[6] = tmp;\n tmp = m[5];\n m[5] = m[7];\n m[7] = tmp;\n return this;\n }\n /**\n * Computes the normal matrix which is the inverse transpose of the upper\n * left 3x3 portion of the given 4x4 matrix.\n *\n * @param {Matrix4} matrix4 - The 4x4 matrix.\n * @return {Matrix3} A reference to this matrix.\n */\n getNormalMatrix(matrix4) {\n return this.setFromMatrix4(matrix4).invert().transpose();\n }\n /**\n * Transposes this matrix into the supplied array, and returns itself unchanged.\n *\n * @param {Array} r - An array to store the transposed matrix elements.\n * @return {Matrix3} A reference to this matrix.\n */\n transposeIntoArray(r) {\n const m = this.elements;\n r[0] = m[0];\n r[1] = m[3];\n r[2] = m[6];\n r[3] = m[1];\n r[4] = m[4];\n r[5] = m[7];\n r[6] = m[2];\n r[7] = m[5];\n r[8] = m[8];\n return this;\n }\n /**\n * Sets the UV transform matrix from offset, repeat, rotation, and center.\n *\n * @param {number} tx - Offset x.\n * @param {number} ty - Offset y.\n * @param {number} sx - Repeat x.\n * @param {number} sy - Repeat y.\n * @param {number} rotation - Rotation, in radians. Positive values rotate counterclockwise.\n * @param {number} cx - Center x of rotation.\n * @param {number} cy - Center y of rotation\n * @return {Matrix3} A reference to this matrix.\n */\n setUvTransform(tx, ty, sx, sy, rotation, cx, cy) {\n const c = Math.cos(rotation);\n const s = Math.sin(rotation);\n this.set(\n sx * c,\n sx * s,\n -sx * (c * cx + s * cy) + cx + tx,\n -sy * s,\n sy * c,\n -sy * (-s * cx + c * cy) + cy + ty,\n 0,\n 0,\n 1\n );\n return this;\n }\n /**\n * Scales this matrix with the given scalar values.\n *\n * @param {number} sx - The amount to scale in the X axis.\n * @param {number} sy - The amount to scale in the Y axis.\n * @return {Matrix3} A reference to this matrix.\n */\n scale(sx, sy) {\n this.premultiply(_m3.makeScale(sx, sy));\n return this;\n }\n /**\n * Rotates this matrix by the given angle.\n *\n * @param {number} theta - The rotation in radians.\n * @return {Matrix3} A reference to this matrix.\n */\n rotate(theta) {\n this.premultiply(_m3.makeRotation(-theta));\n return this;\n }\n /**\n * Translates this matrix by the given scalar values.\n *\n * @param {number} tx - The amount to translate in the X axis.\n * @param {number} ty - The amount to translate in the Y axis.\n * @return {Matrix3} A reference to this matrix.\n */\n translate(tx, ty) {\n this.premultiply(_m3.makeTranslation(tx, ty));\n return this;\n }\n // for 2D Transforms\n /**\n * Sets this matrix as a 2D translation transform.\n *\n * @param {number|Vector2} x - The amount to translate in the X axis or alternatively a translation vector.\n * @param {number} y - The amount to translate in the Y axis.\n * @return {Matrix3} A reference to this matrix.\n */\n makeTranslation(x2, y) {\n if (x2.isVector2) {\n this.set(\n 1,\n 0,\n x2.x,\n 0,\n 1,\n x2.y,\n 0,\n 0,\n 1\n );\n } else {\n this.set(\n 1,\n 0,\n x2,\n 0,\n 1,\n y,\n 0,\n 0,\n 1\n );\n }\n return this;\n }\n /**\n * Sets this matrix as a 2D rotational transformation.\n *\n * @param {number} theta - The rotation in radians.\n * @return {Matrix3} A reference to this matrix.\n */\n makeRotation(theta) {\n const c = Math.cos(theta);\n const s = Math.sin(theta);\n this.set(\n c,\n -s,\n 0,\n s,\n c,\n 0,\n 0,\n 0,\n 1\n );\n return this;\n }\n /**\n * Sets this matrix as a 2D scale transform.\n *\n * @param {number} x - The amount to scale in the X axis.\n * @param {number} y - The amount to scale in the Y axis.\n * @return {Matrix3} A reference to this matrix.\n */\n makeScale(x2, y) {\n this.set(\n x2,\n 0,\n 0,\n 0,\n y,\n 0,\n 0,\n 0,\n 1\n );\n return this;\n }\n /**\n * Returns `true` if this matrix is equal with the given one.\n *\n * @param {Matrix3} matrix - The matrix to test for equality.\n * @return {boolean} Whether this matrix is equal with the given one.\n */\n equals(matrix) {\n const te = this.elements;\n const me = matrix.elements;\n for (let i2 = 0; i2 < 9; i2++) {\n if (te[i2] !== me[i2]) return false;\n }\n return true;\n }\n /**\n * Sets the elements of the matrix from the given array.\n *\n * @param {Array} array - The matrix elements in column-major order.\n * @param {number} [offset=0] - Index of the first element in the array.\n * @return {Matrix3} A reference to this matrix.\n */\n fromArray(array, offset = 0) {\n for (let i2 = 0; i2 < 9; i2++) {\n this.elements[i2] = array[i2 + offset];\n }\n return this;\n }\n /**\n * Writes the elements of this matrix to the given array. If no array is provided,\n * the method returns a new instance.\n *\n * @param {Array} [array=[]] - The target array holding the matrix elements in column-major order.\n * @param {number} [offset=0] - Index of the first element in the array.\n * @return {Array} The matrix elements in column-major order.\n */\n toArray(array = [], offset = 0) {\n const te = this.elements;\n array[offset] = te[0];\n array[offset + 1] = te[1];\n array[offset + 2] = te[2];\n array[offset + 3] = te[3];\n array[offset + 4] = te[4];\n array[offset + 5] = te[5];\n array[offset + 6] = te[6];\n array[offset + 7] = te[7];\n array[offset + 8] = te[8];\n return array;\n }\n /**\n * Returns a matrix with copied values from this instance.\n *\n * @return {Matrix3} A clone of this instance.\n */\n clone() {\n return new this.constructor().fromArray(this.elements);\n }\n }\n const _m3 = /* @__PURE__ */ new Matrix3();\n const _cache = {};\n function warnOnce(message) {\n if (message in _cache) return;\n _cache[message] = true;\n console.warn(message);\n }\n const LINEAR_REC709_TO_XYZ = /* @__PURE__ */ new Matrix3().set(\n 0.4123908,\n 0.3575843,\n 0.1804808,\n 0.212639,\n 0.7151687,\n 0.0721923,\n 0.0193308,\n 0.1191948,\n 0.9505322\n );\n const XYZ_TO_LINEAR_REC709 = /* @__PURE__ */ new Matrix3().set(\n 3.2409699,\n -1.5373832,\n -0.4986108,\n -0.9692436,\n 1.8759675,\n 0.0415551,\n 0.0556301,\n -0.203977,\n 1.0569715\n );\n function createColorManagement() {\n const ColorManagement2 = {\n enabled: true,\n workingColorSpace: LinearSRGBColorSpace,\n /**\n * Implementations of supported color spaces.\n *\n * Required:\n * - primaries: chromaticity coordinates [ rx ry gx gy bx by ]\n * - whitePoint: reference white [ x y ]\n * - transfer: transfer function (pre-defined)\n * - toXYZ: Matrix3 RGB to XYZ transform\n * - fromXYZ: Matrix3 XYZ to RGB transform\n * - luminanceCoefficients: RGB luminance coefficients\n *\n * Optional:\n * - outputColorSpaceConfig: { drawingBufferColorSpace: ColorSpace, toneMappingMode: \'extended\' | \'standard\' }\n * - workingColorSpaceConfig: { unpackColorSpace: ColorSpace }\n *\n * Reference:\n * - https://www.russellcottrell.com/photo/matrixCalculator.htm\n */\n spaces: {},\n convert: function(color, sourceColorSpace, targetColorSpace) {\n if (this.enabled === false || sourceColorSpace === targetColorSpace || !sourceColorSpace || !targetColorSpace) {\n return color;\n }\n if (this.spaces[sourceColorSpace].transfer === SRGBTransfer) {\n color.r = SRGBToLinear(color.r);\n color.g = SRGBToLinear(color.g);\n color.b = SRGBToLinear(color.b);\n }\n if (this.spaces[sourceColorSpace].primaries !== this.spaces[targetColorSpace].primaries) {\n color.applyMatrix3(this.spaces[sourceColorSpace].toXYZ);\n color.applyMatrix3(this.spaces[targetColorSpace].fromXYZ);\n }\n if (this.spaces[targetColorSpace].transfer === SRGBTransfer) {\n color.r = LinearToSRGB(color.r);\n color.g = LinearToSRGB(color.g);\n color.b = LinearToSRGB(color.b);\n }\n return color;\n },\n workingToColorSpace: function(color, targetColorSpace) {\n return this.convert(color, this.workingColorSpace, targetColorSpace);\n },\n colorSpaceToWorking: function(color, sourceColorSpace) {\n return this.convert(color, sourceColorSpace, this.workingColorSpace);\n },\n getPrimaries: function(colorSpace) {\n return this.spaces[colorSpace].primaries;\n },\n getTransfer: function(colorSpace) {\n if (colorSpace === NoColorSpace) return LinearTransfer;\n return this.spaces[colorSpace].transfer;\n },\n getToneMappingMode: function(colorSpace) {\n return this.spaces[colorSpace].outputColorSpaceConfig.toneMappingMode || "standard";\n },\n getLuminanceCoefficients: function(target, colorSpace = this.workingColorSpace) {\n return target.fromArray(this.spaces[colorSpace].luminanceCoefficients);\n },\n define: function(colorSpaces) {\n Object.assign(this.spaces, colorSpaces);\n },\n // Internal APIs\n _getMatrix: function(targetMatrix, sourceColorSpace, targetColorSpace) {\n return targetMatrix.copy(this.spaces[sourceColorSpace].toXYZ).multiply(this.spaces[targetColorSpace].fromXYZ);\n },\n _getDrawingBufferColorSpace: function(colorSpace) {\n return this.spaces[colorSpace].outputColorSpaceConfig.drawingBufferColorSpace;\n },\n _getUnpackColorSpace: function(colorSpace = this.workingColorSpace) {\n return this.spaces[colorSpace].workingColorSpaceConfig.unpackColorSpace;\n },\n // Deprecated\n fromWorkingColorSpace: function(color, targetColorSpace) {\n warnOnce("THREE.ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace().");\n return ColorManagement2.workingToColorSpace(color, targetColorSpace);\n },\n toWorkingColorSpace: function(color, sourceColorSpace) {\n warnOnce("THREE.ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking().");\n return ColorManagement2.colorSpaceToWorking(color, sourceColorSpace);\n }\n };\n const REC709_PRIMARIES = [0.64, 0.33, 0.3, 0.6, 0.15, 0.06];\n const REC709_LUMINANCE_COEFFICIENTS = [0.2126, 0.7152, 0.0722];\n const D65 = [0.3127, 0.329];\n ColorManagement2.define({\n [LinearSRGBColorSpace]: {\n primaries: REC709_PRIMARIES,\n whitePoint: D65,\n transfer: LinearTransfer,\n toXYZ: LINEAR_REC709_TO_XYZ,\n fromXYZ: XYZ_TO_LINEAR_REC709,\n luminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS,\n workingColorSpaceConfig: { unpackColorSpace: SRGBColorSpace },\n outputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace }\n },\n [SRGBColorSpace]: {\n primaries: REC709_PRIMARIES,\n whitePoint: D65,\n transfer: SRGBTransfer,\n toXYZ: LINEAR_REC709_TO_XYZ,\n fromXYZ: XYZ_TO_LINEAR_REC709,\n luminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS,\n outputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace }\n }\n });\n return ColorManagement2;\n }\n const ColorManagement = /* @__PURE__ */ createColorManagement();\n function SRGBToLinear(c) {\n return c < 0.04045 ? c * 0.0773993808 : Math.pow(c * 0.9478672986 + 0.0521327014, 2.4);\n }\n function LinearToSRGB(c) {\n return c < 31308e-7 ? c * 12.92 : 1.055 * Math.pow(c, 0.41666) - 0.055;\n }\n class Box3 {\n /**\n * Constructs a new bounding box.\n *\n * @param {Vector3} [min=(Infinity,Infinity,Infinity)] - A vector representing the lower boundary of the box.\n * @param {Vector3} [max=(-Infinity,-Infinity,-Infinity)] - A vector representing the upper boundary of the box.\n */\n constructor(min = new Vector3(Infinity, Infinity, Infinity), max2 = new Vector3(-Infinity, -Infinity, -Infinity)) {\n this.isBox3 = true;\n this.min = min;\n this.max = max2;\n }\n /**\n * Sets the lower and upper boundaries of this box.\n * Please note that this method only copies the values from the given objects.\n *\n * @param {Vector3} min - The lower boundary of the box.\n * @param {Vector3} max - The upper boundary of the box.\n * @return {Box3} A reference to this bounding box.\n */\n set(min, max2) {\n this.min.copy(min);\n this.max.copy(max2);\n return this;\n }\n /**\n * Sets the upper and lower bounds of this box so it encloses the position data\n * in the given array.\n *\n * @param {Array} array - An array holding 3D position data.\n * @return {Box3} A reference to this bounding box.\n */\n setFromArray(array) {\n this.makeEmpty();\n for (let i2 = 0, il = array.length; i2 < il; i2 += 3) {\n this.expandByPoint(_vector$b.fromArray(array, i2));\n }\n return this;\n }\n /**\n * Sets the upper and lower bounds of this box so it encloses the position data\n * in the given buffer attribute.\n *\n * @param {BufferAttribute} attribute - A buffer attribute holding 3D position data.\n * @return {Box3} A reference to this bounding box.\n */\n setFromBufferAttribute(attribute) {\n this.makeEmpty();\n for (let i2 = 0, il = attribute.count; i2 < il; i2++) {\n this.expandByPoint(_vector$b.fromBufferAttribute(attribute, i2));\n }\n return this;\n }\n /**\n * Sets the upper and lower bounds of this box so it encloses the position data\n * in the given array.\n *\n * @param {Array} points - An array holding 3D position data as instances of {@link Vector3}.\n * @return {Box3} A reference to this bounding box.\n */\n setFromPoints(points) {\n this.makeEmpty();\n for (let i2 = 0, il = points.length; i2 < il; i2++) {\n this.expandByPoint(points[i2]);\n }\n return this;\n }\n /**\n * Centers this box on the given center vector and sets this box\'s width, height and\n * depth to the given size values.\n *\n * @param {Vector3} center - The center of the box.\n * @param {Vector3} size - The x, y and z dimensions of the box.\n * @return {Box3} A reference to this bounding box.\n */\n setFromCenterAndSize(center, size) {\n const halfSize = _vector$b.copy(size).multiplyScalar(0.5);\n this.min.copy(center).sub(halfSize);\n this.max.copy(center).add(halfSize);\n return this;\n }\n /**\n * Computes the world-axis-aligned bounding box for the given 3D object\n * (including its children), accounting for the object\'s, and children\'s,\n * world transforms. The function may result in a larger box than strictly necessary.\n *\n * @param {Object3D} object - The 3D object to compute the bounding box for.\n * @param {boolean} [precise=false] - If set to `true`, the method computes the smallest\n * world-axis-aligned bounding box at the expense of more computation.\n * @return {Box3} A reference to this bounding box.\n */\n setFromObject(object, precise = false) {\n this.makeEmpty();\n return this.expandByObject(object, precise);\n }\n /**\n * Returns a new box with copied values from this instance.\n *\n * @return {Box3} A clone of this instance.\n */\n clone() {\n return new this.constructor().copy(this);\n }\n /**\n * Copies the values of the given box to this instance.\n *\n * @param {Box3} box - The box to copy.\n * @return {Box3} A reference to this bounding box.\n */\n copy(box) {\n this.min.copy(box.min);\n this.max.copy(box.max);\n return this;\n }\n /**\n * Makes this box empty which means in encloses a zero space in 3D.\n *\n * @return {Box3} A reference to this bounding box.\n */\n makeEmpty() {\n this.min.x = this.min.y = this.min.z = Infinity;\n this.max.x = this.max.y = this.max.z = -Infinity;\n return this;\n }\n /**\n * Returns true if this box includes zero points within its bounds.\n * Note that a box with equal lower and upper bounds still includes one\n * point, the one both bounds share.\n *\n * @return {boolean} Whether this box is empty or not.\n */\n isEmpty() {\n return this.max.x < this.min.x || this.max.y < this.min.y || this.max.z < this.min.z;\n }\n /**\n * Returns the center point of this box.\n *\n * @param {Vector3} target - The target vector that is used to store the method\'s result.\n * @return {Vector3} The center point.\n */\n getCenter(target) {\n return this.isEmpty() ? target.set(0, 0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5);\n }\n /**\n * Returns the dimensions of this box.\n *\n * @param {Vector3} target - The target vector that is used to store the method\'s result.\n * @return {Vector3} The size.\n */\n getSize(target) {\n return this.isEmpty() ? target.set(0, 0, 0) : target.subVectors(this.max, this.min);\n }\n /**\n * Expands the boundaries of this box to include the given point.\n *\n * @param {Vector3} point - The point that should be included by the bounding box.\n * @return {Box3} A reference to this bounding box.\n */\n expandByPoint(point) {\n this.min.min(point);\n this.max.max(point);\n return this;\n }\n /**\n * Expands this box equilaterally by the given vector. The width of this\n * box will be expanded by the x component of the vector in both\n * directions. The height of this box will be expanded by the y component of\n * the vector in both directions. The depth of this box will be\n * expanded by the z component of the vector in both directions.\n *\n * @param {Vector3} vector - The vector that should expand the bounding box.\n * @return {Box3} A reference to this bounding box.\n */\n expandByVector(vector) {\n this.min.sub(vector);\n this.max.add(vector);\n return this;\n }\n /**\n * Expands each dimension of the box by the given scalar. If negative, the\n * dimensions of the box will be contracted.\n *\n * @param {number} scalar - The scalar value that should expand the bounding box.\n * @return {Box3} A reference to this bounding box.\n */\n expandByScalar(scalar) {\n this.min.addScalar(-scalar);\n this.max.addScalar(scalar);\n return this;\n }\n /**\n * Expands the boundaries of this box to include the given 3D object and\n * its children, accounting for the object\'s, and children\'s, world\n * transforms. The function may result in a larger box than strictly\n * necessary (unless the precise parameter is set to true).\n *\n * @param {Object3D} object - The 3D object that should expand the bounding box.\n * @param {boolean} precise - If set to `true`, the method expands the bounding box\n * as little as necessary at the expense of more computation.\n * @return {Box3} A reference to this bounding box.\n */\n expandByObject(object, precise = false) {\n object.updateWorldMatrix(false, false);\n const geometry = object.geometry;\n if (geometry !== void 0) {\n const positionAttribute = geometry.getAttribute("position");\n if (precise === true && positionAttribute !== void 0 && object.isInstancedMesh !== true) {\n for (let i2 = 0, l = positionAttribute.count; i2 < l; i2++) {\n if (object.isMesh === true) {\n object.getVertexPosition(i2, _vector$b);\n } else {\n _vector$b.fromBufferAttribute(positionAttribute, i2);\n }\n _vector$b.applyMatrix4(object.matrixWorld);\n this.expandByPoint(_vector$b);\n }\n } else {\n if (object.boundingBox !== void 0) {\n if (object.boundingBox === null) {\n object.computeBoundingBox();\n }\n _box$4.copy(object.boundingBox);\n } else {\n if (geometry.boundingBox === null) {\n geometry.computeBoundingBox();\n }\n _box$4.copy(geometry.boundingBox);\n }\n _box$4.applyMatrix4(object.matrixWorld);\n this.union(_box$4);\n }\n }\n const children = object.children;\n for (let i2 = 0, l = children.length; i2 < l; i2++) {\n this.expandByObject(children[i2], precise);\n }\n return this;\n }\n /**\n * Returns `true` if the given point lies within or on the boundaries of this box.\n *\n * @param {Vector3} point - The point to test.\n * @return {boolean} Whether the bounding box contains the given point or not.\n */\n containsPoint(point) {\n return point.x >= this.min.x && point.x <= this.max.x && point.y >= this.min.y && point.y <= this.max.y && point.z >= this.min.z && point.z <= this.max.z;\n }\n /**\n * Returns `true` if this bounding box includes the entirety of the given bounding box.\n * If this box and the given one are identical, this function also returns `true`.\n *\n * @param {Box3} box - The bounding box to test.\n * @return {boolean} Whether the bounding box contains the given bounding box or not.\n */\n containsBox(box) {\n return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y && this.min.z <= box.min.z && box.max.z <= this.max.z;\n }\n /**\n * Returns a point as a proportion of this box\'s width, height and depth.\n *\n * @param {Vector3} point - A point in 3D space.\n * @param {Vector3} target - The target vector that is used to store the method\'s result.\n * @return {Vector3} A point as a proportion of this box\'s width, height and depth.\n */\n getParameter(point, target) {\n return target.set(\n (point.x - this.min.x) / (this.max.x - this.min.x),\n (point.y - this.min.y) / (this.max.y - this.min.y),\n (point.z - this.min.z) / (this.max.z - this.min.z)\n );\n }\n /**\n * Returns `true` if the given bounding box intersects with this bounding box.\n *\n * @param {Box3} box - The bounding box to test.\n * @return {boolean} Whether the given bounding box intersects with this bounding box.\n */\n intersectsBox(box) {\n return box.max.x >= this.min.x && box.min.x <= this.max.x && box.max.y >= this.min.y && box.min.y <= this.max.y && box.max.z >= this.min.z && box.min.z <= this.max.z;\n }\n /**\n * Returns `true` if the given bounding sphere intersects with this bounding box.\n *\n * @param {Sphere} sphere - The bounding sphere to test.\n * @return {boolean} Whether the given bounding sphere intersects with this bounding box.\n */\n intersectsSphere(sphere) {\n this.clampPoint(sphere.center, _vector$b);\n return _vector$b.distanceToSquared(sphere.center) <= sphere.radius * sphere.radius;\n }\n /**\n * Returns `true` if the given plane intersects with this bounding box.\n *\n * @param {Plane} plane - The plane to test.\n * @return {boolean} Whether the given plane intersects with this bounding box.\n */\n intersectsPlane(plane) {\n let min, max2;\n if (plane.normal.x > 0) {\n min = plane.normal.x * this.min.x;\n max2 = plane.normal.x * this.max.x;\n } else {\n min = plane.normal.x * this.max.x;\n max2 = plane.normal.x * this.min.x;\n }\n if (plane.normal.y > 0) {\n min += plane.normal.y * this.min.y;\n max2 += plane.normal.y * this.max.y;\n } else {\n min += plane.normal.y * this.max.y;\n max2 += plane.normal.y * this.min.y;\n }\n if (plane.normal.z > 0) {\n min += plane.normal.z * this.min.z;\n max2 += plane.normal.z * this.max.z;\n } else {\n min += plane.normal.z * this.max.z;\n max2 += plane.normal.z * this.min.z;\n }\n return min <= -plane.constant && max2 >= -plane.constant;\n }\n /**\n * Returns `true` if the given triangle intersects with this bounding box.\n *\n * @param {Triangle} triangle - The triangle to test.\n * @return {boolean} Whether the given triangle intersects with this bounding box.\n */\n intersectsTriangle(triangle) {\n if (this.isEmpty()) {\n return false;\n }\n this.getCenter(_center);\n _extents.subVectors(this.max, _center);\n _v0$2.subVectors(triangle.a, _center);\n _v1$7.subVectors(triangle.b, _center);\n _v2$4.subVectors(triangle.c, _center);\n _f0.subVectors(_v1$7, _v0$2);\n _f1.subVectors(_v2$4, _v1$7);\n _f2.subVectors(_v0$2, _v2$4);\n let axes = [\n 0,\n -_f0.z,\n _f0.y,\n 0,\n -_f1.z,\n _f1.y,\n 0,\n -_f2.z,\n _f2.y,\n _f0.z,\n 0,\n -_f0.x,\n _f1.z,\n 0,\n -_f1.x,\n _f2.z,\n 0,\n -_f2.x,\n -_f0.y,\n _f0.x,\n 0,\n -_f1.y,\n _f1.x,\n 0,\n -_f2.y,\n _f2.x,\n 0\n ];\n if (!satForAxes(axes, _v0$2, _v1$7, _v2$4, _extents)) {\n return false;\n }\n axes = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n if (!satForAxes(axes, _v0$2, _v1$7, _v2$4, _extents)) {\n return false;\n }\n _triangleNormal.crossVectors(_f0, _f1);\n axes = [_triangleNormal.x, _triangleNormal.y, _triangleNormal.z];\n return satForAxes(axes, _v0$2, _v1$7, _v2$4, _extents);\n }\n /**\n * Clamps the given point within the bounds of this box.\n *\n * @param {Vector3} point - The point to clamp.\n * @param {Vector3} target - The target vector that is used to store the method\'s result.\n * @return {Vector3} The clamped point.\n */\n clampPoint(point, target) {\n return target.copy(point).clamp(this.min, this.max);\n }\n /**\n * Returns the euclidean distance from any edge of this box to the specified point. If\n * the given point lies inside of this box, the distance will be `0`.\n *\n * @param {Vector3} point - The point to compute the distance to.\n * @return {number} The euclidean distance.\n */\n distanceToPoint(point) {\n return this.clampPoint(point, _vector$b).distanceTo(point);\n }\n /**\n * Returns a bounding sphere that encloses this bounding box.\n *\n * @param {Sphere} target - The target sphere that is used to store the method\'s result.\n * @return {Sphere} The bounding sphere that encloses this bounding box.\n */\n getBoundingSphere(target) {\n if (this.isEmpty()) {\n target.makeEmpty();\n } else {\n this.getCenter(target.center);\n target.radius = this.getSize(_vector$b).length() * 0.5;\n }\n return target;\n }\n /**\n * Computes the intersection of this bounding box and the given one, setting the upper\n * bound of this box to the lesser of the two boxes\' upper bounds and the\n * lower bound of this box to the greater of the two boxes\' lower bounds. If\n * there\'s no overlap, makes this box empty.\n *\n * @param {Box3} box - The bounding box to intersect with.\n * @return {Box3} A reference to this bounding box.\n */\n intersect(box) {\n this.min.max(box.min);\n this.max.min(box.max);\n if (this.isEmpty()) this.makeEmpty();\n return this;\n }\n /**\n * Computes the union of this box and another and the given one, setting the upper\n * bound of this box to the greater of the two boxes\' upper bounds and the\n * lower bound of this box to the lesser of the two boxes\' lower bounds.\n *\n * @param {Box3} box - The bounding box that will be unioned with this instance.\n * @return {Box3} A reference to this bounding box.\n */\n union(box) {\n this.min.min(box.min);\n this.max.max(box.max);\n return this;\n }\n /**\n * Transforms this bounding box by the given 4x4 transformation matrix.\n *\n * @param {Matrix4} matrix - The transformation matrix.\n * @return {Box3} A reference to this bounding box.\n */\n applyMatrix4(matrix) {\n if (this.isEmpty()) return this;\n _points[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(matrix);\n _points[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(matrix);\n _points[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(matrix);\n _points[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(matrix);\n _points[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(matrix);\n _points[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(matrix);\n _points[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(matrix);\n _points[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(matrix);\n this.setFromPoints(_points);\n return this;\n }\n /**\n * Adds the given offset to both the upper and lower bounds of this bounding box,\n * effectively moving it in 3D space.\n *\n * @param {Vector3} offset - The offset that should be used to translate the bounding box.\n * @return {Box3} A reference to this bounding box.\n */\n translate(offset) {\n this.min.add(offset);\n this.max.add(offset);\n return this;\n }\n /**\n * Returns `true` if this bounding box is equal with the given one.\n *\n * @param {Box3} box - The box to test for equality.\n * @return {boolean} Whether this bounding box is equal with the given one.\n */\n equals(box) {\n return box.min.equals(this.min) && box.max.equals(this.max);\n }\n /**\n * Returns a serialized structure of the bounding box.\n *\n * @return {Object} Serialized structure with fields representing the object state.\n */\n toJSON() {\n return {\n min: this.min.toArray(),\n max: this.max.toArray()\n };\n }\n /**\n * Returns a serialized structure of the bounding box.\n *\n * @param {Object} json - The serialized json to set the box from.\n * @return {Box3} A reference to this bounding box.\n */\n fromJSON(json) {\n this.min.fromArray(json.min);\n this.max.fromArray(json.max);\n return this;\n }\n }\n const _points = [\n /* @__PURE__ */ new Vector3(),\n /* @__PURE__ */ new Vector3(),\n /* @__PURE__ */ new Vector3(),\n /* @__PURE__ */ new Vector3(),\n /* @__PURE__ */ new Vector3(),\n /* @__PURE__ */ new Vector3(),\n /* @__PURE__ */ new Vector3(),\n /* @__PURE__ */ new Vector3()\n ];\n const _vector$b = /* @__PURE__ */ new Vector3();\n const _box$4 = /* @__PURE__ */ new Box3();\n const _v0$2 = /* @__PURE__ */ new Vector3();\n const _v1$7 = /* @__PURE__ */ new Vector3();\n const _v2$4 = /* @__PURE__ */ new Vector3();\n const _f0 = /* @__PURE__ */ new Vector3();\n const _f1 = /* @__PURE__ */ new Vector3();\n const _f2 = /* @__PURE__ */ new Vector3();\n const _center = /* @__PURE__ */ new Vector3();\n const _extents = /* @__PURE__ */ new Vector3();\n const _triangleNormal = /* @__PURE__ */ new Vector3();\n const _testAxis = /* @__PURE__ */ new Vector3();\n function satForAxes(axes, v0, v1, v2, extents) {\n for (let i2 = 0, j = axes.length - 3; i2 <= j; i2 += 3) {\n _testAxis.fromArray(axes, i2);\n const r = extents.x * Math.abs(_testAxis.x) + extents.y * Math.abs(_testAxis.y) + extents.z * Math.abs(_testAxis.z);\n const p0 = v0.dot(_testAxis);\n const p1 = v1.dot(_testAxis);\n const p2 = v2.dot(_testAxis);\n if (Math.max(-Math.max(p0, p1, p2), Math.min(p0, p1, p2)) > r) {\n return false;\n }\n }\n return true;\n }\n const _colorKeywords = {\n "aliceblue": 15792383,\n "antiquewhite": 16444375,\n "aqua": 65535,\n "aquamarine": 8388564,\n "azure": 15794175,\n "beige": 16119260,\n "bisque": 16770244,\n "black": 0,\n "blanchedalmond": 16772045,\n "blue": 255,\n "blueviolet": 9055202,\n "brown": 10824234,\n "burlywood": 14596231,\n "cadetblue": 6266528,\n "chartreuse": 8388352,\n "chocolate": 13789470,\n "coral": 16744272,\n "cornflowerblue": 6591981,\n "cornsilk": 16775388,\n "crimson": 14423100,\n "cyan": 65535,\n "darkblue": 139,\n "darkcyan": 35723,\n "darkgoldenrod": 12092939,\n "darkgray": 11119017,\n "darkgreen": 25600,\n "darkgrey": 11119017,\n "darkkhaki": 12433259,\n "darkmagenta": 9109643,\n "darkolivegreen": 5597999,\n "darkorange": 16747520,\n "darkorchid": 10040012,\n "darkred": 9109504,\n "darksalmon": 15308410,\n "darkseagreen": 9419919,\n "darkslateblue": 4734347,\n "darkslategray": 3100495,\n "darkslategrey": 3100495,\n "darkturquoise": 52945,\n "darkviolet": 9699539,\n "deeppink": 16716947,\n "deepskyblue": 49151,\n "dimgray": 6908265,\n "dimgrey": 6908265,\n "dodgerblue": 2003199,\n "firebrick": 11674146,\n "floralwhite": 16775920,\n "forestgreen": 2263842,\n "fuchsia": 16711935,\n "gainsboro": 14474460,\n "ghostwhite": 16316671,\n "gold": 16766720,\n "goldenrod": 14329120,\n "gray": 8421504,\n "green": 32768,\n "greenyellow": 11403055,\n "grey": 8421504,\n "honeydew": 15794160,\n "hotpink": 16738740,\n "indianred": 13458524,\n "indigo": 4915330,\n "ivory": 16777200,\n "khaki": 15787660,\n "lavender": 15132410,\n "lavenderblush": 16773365,\n "lawngreen": 8190976,\n "lemonchiffon": 16775885,\n "lightblue": 11393254,\n "lightcoral": 15761536,\n "lightcyan": 14745599,\n "lightgoldenrodyellow": 16448210,\n "lightgray": 13882323,\n "lightgreen": 9498256,\n "lightgrey": 13882323,\n "lightpink": 16758465,\n "lightsalmon": 16752762,\n "lightseagreen": 2142890,\n "lightskyblue": 8900346,\n "lightslategray": 7833753,\n "lightslategrey": 7833753,\n "lightsteelblue": 11584734,\n "lightyellow": 16777184,\n "lime": 65280,\n "limegreen": 3329330,\n "linen": 16445670,\n "magenta": 16711935,\n "maroon": 8388608,\n "mediumaquamarine": 6737322,\n "mediumblue": 205,\n "mediumorchid": 12211667,\n "mediumpurple": 9662683,\n "mediumseagreen": 3978097,\n "mediumslateblue": 8087790,\n "mediumspringgreen": 64154,\n "mediumturquoise": 4772300,\n "mediumvioletred": 13047173,\n "midnightblue": 1644912,\n "mintcream": 16121850,\n "mistyrose": 16770273,\n "moccasin": 16770229,\n "navajowhite": 16768685,\n "navy": 128,\n "oldlace": 16643558,\n "olive": 8421376,\n "olivedrab": 7048739,\n "orange": 16753920,\n "orangered": 16729344,\n "orchid": 14315734,\n "palegoldenrod": 15657130,\n "palegreen": 10025880,\n "paleturquoise": 11529966,\n "palevioletred": 14381203,\n "papayawhip": 16773077,\n "peachpuff": 16767673,\n "peru": 13468991,\n "pink": 16761035,\n "plum": 14524637,\n "powderblue": 11591910,\n "purple": 8388736,\n "rebeccapurple": 6697881,\n "red": 16711680,\n "rosybrown": 12357519,\n "royalblue": 4286945,\n "saddlebrown": 9127187,\n "salmon": 16416882,\n "sandybrown": 16032864,\n "seagreen": 3050327,\n "seashell": 16774638,\n "sienna": 10506797,\n "silver": 12632256,\n "skyblue": 8900331,\n "slateblue": 6970061,\n "slategray": 7372944,\n "slategrey": 7372944,\n "snow": 16775930,\n "springgreen": 65407,\n "steelblue": 4620980,\n "tan": 13808780,\n "teal": 32896,\n "thistle": 14204888,\n "tomato": 16737095,\n "turquoise": 4251856,\n "violet": 15631086,\n "wheat": 16113331,\n "white": 16777215,\n "whitesmoke": 16119285,\n "yellow": 16776960,\n "yellowgreen": 10145074\n };\n const _hslA = { h: 0, s: 0, l: 0 };\n const _hslB = { h: 0, s: 0, l: 0 };\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * 6 * (2 / 3 - t);\n return p;\n }\n class Color {\n /**\n * Constructs a new color.\n *\n * Note that standard method of specifying color in three.js is with a hexadecimal triplet,\n * and that method is used throughout the rest of the documentation.\n *\n * @param {(number|string|Color)} [r] - The red component of the color. If `g` and `b` are\n * not provided, it can be hexadecimal triplet, a CSS-style string or another `Color` instance.\n * @param {number} [g] - The green component.\n * @param {number} [b] - The blue component.\n */\n constructor(r, g, b) {\n this.isColor = true;\n this.r = 1;\n this.g = 1;\n this.b = 1;\n return this.set(r, g, b);\n }\n /**\n * Sets the colors\'s components from the given values.\n *\n * @param {(number|string|Color)} [r] - The red component of the color. If `g` and `b` are\n * not provided, it can be hexadecimal triplet, a CSS-style string or another `Color` instance.\n * @param {number} [g] - The green component.\n * @param {number} [b] - The blue component.\n * @return {Color} A reference to this color.\n */\n set(r, g, b) {\n if (g === void 0 && b === void 0) {\n const value = r;\n if (value && value.isColor) {\n this.copy(value);\n } else if (typeof value === "number") {\n this.setHex(value);\n } else if (typeof value === "string") {\n this.setStyle(value);\n }\n } else {\n this.setRGB(r, g, b);\n }\n return this;\n }\n /**\n * Sets the colors\'s components to the given scalar value.\n *\n * @param {number} scalar - The scalar value.\n * @return {Color} A reference to this color.\n */\n setScalar(scalar) {\n this.r = scalar;\n this.g = scalar;\n this.b = scalar;\n return this;\n }\n /**\n * Sets this color from a hexadecimal value.\n *\n * @param {number} hex - The hexadecimal value.\n * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n * @return {Color} A reference to this color.\n */\n setHex(hex, colorSpace = SRGBColorSpace) {\n hex = Math.floor(hex);\n this.r = (hex >> 16 & 255) / 255;\n this.g = (hex >> 8 & 255) / 255;\n this.b = (hex & 255) / 255;\n ColorManagement.colorSpaceToWorking(this, colorSpace);\n return this;\n }\n /**\n * Sets this color from RGB values.\n *\n * @param {number} r - Red channel value between `0.0` and `1.0`.\n * @param {number} g - Green channel value between `0.0` and `1.0`.\n * @param {number} b - Blue channel value between `0.0` and `1.0`.\n * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n * @return {Color} A reference to this color.\n */\n setRGB(r, g, b, colorSpace = ColorManagement.workingColorSpace) {\n this.r = r;\n this.g = g;\n this.b = b;\n ColorManagement.colorSpaceToWorking(this, colorSpace);\n return this;\n }\n /**\n * Sets this color from RGB values.\n *\n * @param {number} h - Hue value between `0.0` and `1.0`.\n * @param {number} s - Saturation value between `0.0` and `1.0`.\n * @param {number} l - Lightness value between `0.0` and `1.0`.\n * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n * @return {Color} A reference to this color.\n */\n setHSL(h, s, l, colorSpace = ColorManagement.workingColorSpace) {\n h = euclideanModulo(h, 1);\n s = clamp(s, 0, 1);\n l = clamp(l, 0, 1);\n if (s === 0) {\n this.r = this.g = this.b = l;\n } else {\n const p = l <= 0.5 ? l * (1 + s) : l + s - l * s;\n const q = 2 * l - p;\n this.r = hue2rgb(q, p, h + 1 / 3);\n this.g = hue2rgb(q, p, h);\n this.b = hue2rgb(q, p, h - 1 / 3);\n }\n ColorManagement.colorSpaceToWorking(this, colorSpace);\n return this;\n }\n /**\n * Sets this color from a CSS-style string. For example, `rgb(250, 0,0)`,\n * `rgb(100%, 0%, 0%)`, `hsl(0, 100%, 50%)`, `#ff0000`, `#f00`, or `red` ( or\n * any [X11 color name]{@link https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart} -\n * all 140 color names are supported).\n *\n * @param {string} style - Color as a CSS-style string.\n * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n * @return {Color} A reference to this color.\n */\n setStyle(style, colorSpace = SRGBColorSpace) {\n function handleAlpha(string) {\n if (string === void 0) return;\n if (parseFloat(string) < 1) {\n console.warn("THREE.Color: Alpha component of " + style + " will be ignored.");\n }\n }\n let m;\n if (m = /^(\\w+)\\(([^\\)]*)\\)/.exec(style)) {\n let color;\n const name = m[1];\n const components = m[2];\n switch (name) {\n case "rgb":\n case "rgba":\n if (color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n handleAlpha(color[4]);\n return this.setRGB(\n Math.min(255, parseInt(color[1], 10)) / 255,\n Math.min(255, parseInt(color[2], 10)) / 255,\n Math.min(255, parseInt(color[3], 10)) / 255,\n colorSpace\n );\n }\n if (color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n handleAlpha(color[4]);\n return this.setRGB(\n Math.min(100, parseInt(color[1], 10)) / 100,\n Math.min(100, parseInt(color[2], 10)) / 100,\n Math.min(100, parseInt(color[3], 10)) / 100,\n colorSpace\n );\n }\n break;\n case "hsl":\n case "hsla":\n if (color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n handleAlpha(color[4]);\n return this.setHSL(\n parseFloat(color[1]) / 360,\n parseFloat(color[2]) / 100,\n parseFloat(color[3]) / 100,\n colorSpace\n );\n }\n break;\n default:\n console.warn("THREE.Color: Unknown color model " + style);\n }\n } else if (m = /^\\#([A-Fa-f\\d]+)$/.exec(style)) {\n const hex = m[1];\n const size = hex.length;\n if (size === 3) {\n return this.setRGB(\n parseInt(hex.charAt(0), 16) / 15,\n parseInt(hex.charAt(1), 16) / 15,\n parseInt(hex.charAt(2), 16) / 15,\n colorSpace\n );\n } else if (size === 6) {\n return this.setHex(parseInt(hex, 16), colorSpace);\n } else {\n console.warn("THREE.Color: Invalid hex color " + style);\n }\n } else if (style && style.length > 0) {\n return this.setColorName(style, colorSpace);\n }\n return this;\n }\n /**\n * Sets this color from a color name. Faster than {@link Color#setStyle} if\n * you don\'t need the other CSS-style formats.\n *\n * For convenience, the list of names is exposed in `Color.NAMES` as a hash.\n * ```js\n * Color.NAMES.aliceblue // returns 0xF0F8FF\n * ```\n *\n * @param {string} style - The color name.\n * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n * @return {Color} A reference to this color.\n */\n setColorName(style, colorSpace = SRGBColorSpace) {\n const hex = _colorKeywords[style.toLowerCase()];\n if (hex !== void 0) {\n this.setHex(hex, colorSpace);\n } else {\n console.warn("THREE.Color: Unknown color " + style);\n }\n return this;\n }\n /**\n * Returns a new color with copied values from this instance.\n *\n * @return {Color} A clone of this instance.\n */\n clone() {\n return new this.constructor(this.r, this.g, this.b);\n }\n /**\n * Copies the values of the given color to this instance.\n *\n * @param {Color} color - The color to copy.\n * @return {Color} A reference to this color.\n */\n copy(color) {\n this.r = color.r;\n this.g = color.g;\n this.b = color.b;\n return this;\n }\n /**\n * Copies the given color into this color, and then converts this color from\n * `SRGBColorSpace` to `LinearSRGBColorSpace`.\n *\n * @param {Color} color - The color to copy/convert.\n * @return {Color} A reference to this color.\n */\n copySRGBToLinear(color) {\n this.r = SRGBToLinear(color.r);\n this.g = SRGBToLinear(color.g);\n this.b = SRGBToLinear(color.b);\n return this;\n }\n /**\n * Copies the given color into this color, and then converts this color from\n * `LinearSRGBColorSpace` to `SRGBColorSpace`.\n *\n * @param {Color} color - The color to copy/convert.\n * @return {Color} A reference to this color.\n */\n copyLinearToSRGB(color) {\n this.r = LinearToSRGB(color.r);\n this.g = LinearToSRGB(color.g);\n this.b = LinearToSRGB(color.b);\n return this;\n }\n /**\n * Converts this color from `SRGBColorSpace` to `LinearSRGBColorSpace`.\n *\n * @return {Color} A reference to this color.\n */\n convertSRGBToLinear() {\n this.copySRGBToLinear(this);\n return this;\n }\n /**\n * Converts this color from `LinearSRGBColorSpace` to `SRGBColorSpace`.\n *\n * @return {Color} A reference to this color.\n */\n convertLinearToSRGB() {\n this.copyLinearToSRGB(this);\n return this;\n }\n /**\n * Returns the hexadecimal value of this color.\n *\n * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n * @return {number} The hexadecimal value.\n */\n getHex(colorSpace = SRGBColorSpace) {\n ColorManagement.workingToColorSpace(_color.copy(this), colorSpace);\n return 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 /**\n * Returns the hexadecimal value of this color as a string (for example, \'FFFFFF\').\n *\n * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n * @return {string} The hexadecimal value as a string.\n */\n getHexString(colorSpace = SRGBColorSpace) {\n return ("000000" + this.getHex(colorSpace).toString(16)).slice(-6);\n }\n /**\n * Converts the colors RGB values into the HSL format and stores them into the\n * given target object.\n *\n * @param {{h:number,s:number,l:number}} target - The target object that is used to store the method\'s result.\n * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n * @return {{h:number,s:number,l:number}} The HSL representation of this color.\n */\n getHSL(target, colorSpace = ColorManagement.workingColorSpace) {\n ColorManagement.workingToColorSpace(_color.copy(this), colorSpace);\n const r = _color.r, g = _color.g, b = _color.b;\n const max2 = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let hue, saturation;\n const lightness = (min + max2) / 2;\n if (min === max2) {\n hue = 0;\n saturation = 0;\n } else {\n const delta = max2 - min;\n saturation = lightness <= 0.5 ? delta / (max2 + min) : delta / (2 - max2 - min);\n switch (max2) {\n case r:\n hue = (g - b) / delta + (g < b ? 6 : 0);\n break;\n case g:\n hue = (b - r) / delta + 2;\n break;\n case b:\n hue = (r - g) / delta + 4;\n break;\n }\n hue /= 6;\n }\n target.h = hue;\n target.s = saturation;\n target.l = lightness;\n return target;\n }\n /**\n * Returns the RGB values of this color and stores them into the given target object.\n *\n * @param {Color} target - The target color that is used to store the method\'s result.\n * @param {string} [colorSpace=ColorManagement.workingColorSpace] - The color space.\n * @return {Color} The RGB representation of this color.\n */\n getRGB(target, colorSpace = ColorManagement.workingColorSpace) {\n ColorManagement.workingToColorSpace(_color.copy(this), colorSpace);\n target.r = _color.r;\n target.g = _color.g;\n target.b = _color.b;\n return target;\n }\n /**\n * Returns the value of this color as a CSS style string. Example: `rgb(255,0,0)`.\n *\n * @param {string} [colorSpace=SRGBColorSpace] - The color space.\n * @return {string} The CSS representation of this color.\n */\n getStyle(colorSpace = SRGBColorSpace) {\n ColorManagement.workingToColorSpace(_color.copy(this), colorSpace);\n const r = _color.r, g = _color.g, b = _color.b;\n if (colorSpace !== SRGBColorSpace) {\n return `color(${colorSpace} ${r.toFixed(3)} ${g.toFixed(3)} ${b.toFixed(3)})`;\n }\n return `rgb(${Math.round(r * 255)},${Math.round(g * 255)},${Math.round(b * 255)})`;\n }\n /**\n * Adds the given HSL values to this color\'s values.\n * Internally, this converts the color\'s RGB values to HSL, adds HSL\n * and then converts the color back to RGB.\n *\n * @param {number} h - Hue value between `0.0` and `1.0`.\n * @param {number} s - Saturation value between `0.0` and `1.0`.\n * @param {number} l - Lightness value between `0.0` and `1.0`.\n * @return {Color} A reference to this color.\n */\n offsetHSL(h, s, l) {\n this.getHSL(_hslA);\n return this.setHSL(_hslA.h + h, _hslA.s + s, _hslA.l + l);\n }\n /**\n * Adds the RGB values of the given color to the RGB values of this color.\n *\n * @param {Color} color - The color to add.\n * @return {Color} A reference to this color.\n */\n add(color) {\n this.r += color.r;\n this.g += color.g;\n this.b += color.b;\n return this;\n }\n /**\n * Adds the RGB values of the given colors and stores the result in this instance.\n *\n * @param {Color} color1 - The first color.\n * @param {Color} color2 - The second color.\n * @return {Color} A reference to this color.\n */\n addColors(color1, color2) {\n this.r = color1.r + color2.r;\n this.g = color1.g + color2.g;\n this.b = color1.b + color2.b;\n return this;\n }\n /**\n * Adds the given scalar value to the RGB values of this color.\n *\n * @param {number} s - The scalar to add.\n * @return {Color} A reference to this color.\n */\n addScalar(s) {\n this.r += s;\n this.g += s;\n this.b += s;\n return this;\n }\n /**\n * Subtracts the RGB values of the given color from the RGB values of this color.\n *\n * @param {Color} color - The color to subtract.\n * @return {Color} A reference to this color.\n */\n sub(color) {\n this.r = Math.max(0, this.r - color.r);\n this.g = Math.max(0, this.g - color.g);\n this.b = Math.max(0, this.b - color.b);\n return this;\n }\n /**\n * Multiplies the RGB values of the given color with the RGB values of this color.\n *\n * @param {Color} color - The color to multiply.\n * @return {Color} A reference to this color.\n */\n multiply(color) {\n this.r *= color.r;\n this.g *= color.g;\n this.b *= color.b;\n return this;\n }\n /**\n * Multiplies the given scalar value with the RGB values of this color.\n *\n * @param {number} s - The scalar to multiply.\n * @return {Color} A reference to this color.\n */\n multiplyScalar(s) {\n this.r *= s;\n this.g *= s;\n this.b *= s;\n return this;\n }\n /**\n * Linearly interpolates this color\'s RGB values toward the RGB values of the\n * given color. The alpha argument can be thought of as the ratio between\n * the two colors, where `0.0` is this color and `1.0` is the first argument.\n *\n * @param {Color} color - The color to converge on.\n * @param {number} alpha - The interpolation factor in the closed interval `[0,1]`.\n * @return {Color} A reference to this color.\n */\n lerp(color, alpha) {\n this.r += (color.r - this.r) * alpha;\n this.g += (color.g - this.g) * alpha;\n this.b += (color.b - this.b) * alpha;\n return this;\n }\n /**\n * Linearly interpolates between the given colors and stores the result in this instance.\n * The alpha argument can be thought of as the ratio between the two colors, where `0.0`\n * is the first and `1.0` is the second color.\n *\n * @param {Color} color1 - The first color.\n * @param {Color} color2 - The second color.\n * @param {number} alpha - The interpolation factor in the closed interval `[0,1]`.\n * @return {Color} A reference to this color.\n */\n lerpColors(color1, color2, alpha) {\n this.r = color1.r + (color2.r - color1.r) * alpha;\n this.g = color1.g + (color2.g - color1.g) * alpha;\n this.b = color1.b + (color2.b - color1.b) * alpha;\n return this;\n }\n /**\n * Linearly interpolates this color\'s HSL values toward the HSL values of the\n * given color. It differs from {@link Color#lerp} by not interpolating straight\n * from one color to the other, but instead going through all the hues in between\n * those two colors. The alpha argument can be thought of as the ratio between\n * the two colors, where 0.0 is this color and 1.0 is the first argument.\n *\n * @param {Color} color - The color to converge on.\n * @param {number} alpha - The interpolation factor in the closed interval `[0,1]`.\n * @return {Color} A reference to this color.\n */\n lerpHSL(color, alpha) {\n this.getHSL(_hslA);\n color.getHSL(_hslB);\n const h = lerp(_hslA.h, _hslB.h, alpha);\n const s = lerp(_hslA.s, _hslB.s, alpha);\n const l = lerp(_hslA.l, _hslB.l, alpha);\n this.setHSL(h, s, l);\n return this;\n }\n /**\n * Sets the color\'s RGB components from the given 3D vector.\n *\n * @param {Vector3} v - The vector to set.\n * @return {Color} A reference to this color.\n */\n setFromVector3(v) {\n this.r = v.x;\n this.g = v.y;\n this.b = v.z;\n return this;\n }\n /**\n * Transforms this color with the given 3x3 matrix.\n *\n * @param {Matrix3} m - The matrix.\n * @return {Color} A reference to this color.\n */\n applyMatrix3(m) {\n const r = this.r, g = this.g, b = this.b;\n const e = m.elements;\n this.r = e[0] * r + e[3] * g + e[6] * b;\n this.g = e[1] * r + e[4] * g + e[7] * b;\n this.b = e[2] * r + e[5] * g + e[8] * b;\n return this;\n }\n /**\n * Returns `true` if this color is equal with the given one.\n *\n * @param {Color} c - The color to test for equality.\n * @return {boolean} Whether this bounding color is equal with the given one.\n */\n equals(c) {\n return c.r === this.r && c.g === this.g && c.b === this.b;\n }\n /**\n * Sets this color\'s RGB components from the given array.\n *\n * @param {Array} array - An array holding the RGB values.\n * @param {number} [offset=0] - The offset into the array.\n * @return {Color} A reference to this color.\n */\n fromArray(array, offset = 0) {\n this.r = array[offset];\n this.g = array[offset + 1];\n this.b = array[offset + 2];\n return this;\n }\n /**\n * Writes the RGB components of this color to the given array. If no array is provided,\n * the method returns a new instance.\n *\n * @param {Array} [array=[]] - The target array holding the color components.\n * @param {number} [offset=0] - Index of the first element in the array.\n * @return {Array} The color components.\n */\n toArray(array = [], offset = 0) {\n array[offset] = this.r;\n array[offset + 1] = this.g;\n array[offset + 2] = this.b;\n return array;\n }\n /**\n * Sets the components of this color from the given buffer attribute.\n *\n * @param {BufferAttribute} attribute - The buffer attribute holding color data.\n * @param {number} index - The index into the attribute.\n * @return {Color} A reference to this color.\n */\n fromBufferAttribute(attribute, index) {\n this.r = attribute.getX(index);\n this.g = attribute.getY(index);\n this.b = attribute.getZ(index);\n return this;\n }\n /**\n * This methods defines the serialization result of this class. Returns the color\n * as a hexadecimal value.\n *\n * @return {number} The hexadecimal value.\n */\n toJSON() {\n return this.getHex();\n }\n *[Symbol.iterator]() {\n yield this.r;\n yield this.g;\n yield this.b;\n }\n }\n const _color = /* @__PURE__ */ new Color();\n Color.NAMES = _colorKeywords;\n if (typeof __THREE_DEVTOOLS__ !== "undefined") {\n __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register", { detail: {\n revision: REVISION\n } }));\n }\n if (typeof window !== "undefined") {\n if (window.__THREE__) {\n console.warn("WARNING: Multiple instances of Three.js being imported.");\n } else {\n window.__THREE__ = REVISION;\n }\n }\n const LN_SCALE_MIN = -12;\n const LN_SCALE_MAX = 9;\n const LN_SCALE_ZERO = -30;\n const SCALE_ZERO = Math.exp(LN_SCALE_ZERO);\n const SPLAT_TEX_WIDTH_BITS = 11;\n const SPLAT_TEX_HEIGHT_BITS = 11;\n const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS;\n const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS;\n const SPLAT_TEX_MIN_HEIGHT = 1;\n var SplatFileType = /* @__PURE__ */ ((SplatFileType2) => {\n SplatFileType2["PLY"] = "ply";\n SplatFileType2["SPZ"] = "spz";\n SplatFileType2["SPLAT"] = "splat";\n SplatFileType2["KSPLAT"] = "ksplat";\n SplatFileType2["PCSOGS"] = "pcsogs";\n SplatFileType2["PCSOGSZIP"] = "pcsogszip";\n SplatFileType2["RAD"] = "rad";\n return SplatFileType2;\n })(SplatFileType || {});\n function unindentLines(s) {\n var _a2;\n let seenNonEmpty = false;\n const lines = s.split("\\n").map((line) => {\n const trimmedLine = line.trimEnd();\n if (seenNonEmpty) {\n return trimmedLine;\n }\n if (trimmedLine.length > 0) {\n seenNonEmpty = true;\n return trimmedLine;\n }\n return null;\n }).filter((line) => line != null);\n while (lines.length > 0 && lines[lines.length - 1].length === 0) {\n lines.pop();\n }\n if (lines.length === 0) {\n return [];\n }\n const indent = (_a2 = lines[0].match(/^\\s*/)) == null ? void 0 : _a2[0];\n if (!indent) {\n return lines;\n }\n const regex = new RegExp(`^${indent}`);\n return lines.map((line) => line.replace(regex, ""));\n }\n function unindent(s) {\n return unindentLines(s).join("\\n");\n }\n const f32buffer = new Float32Array(1);\n const u32buffer = new Uint32Array(f32buffer.buffer);\n const supportsFloat16Array = "Float16Array" in globalThis;\n const f16buffer = supportsFloat16Array ? new globalThis["Float16Array"](1) : null;\n const u16buffer = new Uint16Array(f16buffer == null ? void 0 : f16buffer.buffer);\n function normalize(vec) {\n const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0));\n return vec.map((v) => v / norm);\n }\n const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS;\n const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS;\n function toHalfNative(f) {\n f16buffer[0] = f;\n return u16buffer[0];\n }\n function toHalfJS(f) {\n f32buffer[0] = f;\n const bits2 = u32buffer[0];\n const sign = bits2 >> 31 & 1;\n const exp = bits2 >> 23 & 255;\n const frac = bits2 & 8388607;\n const halfSign = sign << 15;\n if (exp === 255) {\n if (frac !== 0) {\n return halfSign | 32767;\n }\n return halfSign | 31744;\n }\n const newExp = exp - 127 + 15;\n if (newExp >= 31) {\n return halfSign | 31744;\n }\n if (newExp <= 0) {\n if (newExp < -10) {\n return halfSign;\n }\n const subFrac = (frac | 8388608) >> 1 - newExp + 13;\n return halfSign | subFrac;\n }\n const halfFrac = frac >> 13;\n return halfSign | newExp << 10 | halfFrac;\n }\n function fromHalfNative(u) {\n u16buffer[0] = u;\n return f16buffer[0];\n }\n function fromHalfJS(h) {\n const sign = h >> 15 & 1;\n const exp = h >> 10 & 31;\n const frac = h & 1023;\n let f32bits;\n if (exp === 0) {\n if (frac === 0) {\n f32bits = sign << 31;\n } else {\n let mant = frac;\n let e = -14;\n while ((mant & 1024) === 0) {\n mant <<= 1;\n e--;\n }\n mant &= 1023;\n const newExp = e + 127;\n const newFrac = mant << 13;\n f32bits = sign << 31 | newExp << 23 | newFrac;\n }\n } else if (exp === 31) {\n if (frac === 0) {\n f32bits = sign << 31 | 2139095040;\n } else {\n f32bits = sign << 31 | 2143289344;\n }\n } else {\n const newExp = exp - 15 + 127;\n const newFrac = frac << 13;\n f32bits = sign << 31 | newExp << 23 | newFrac;\n }\n u32buffer[0] = f32bits;\n return f32buffer[0];\n }\n function floatToUint8(v) {\n return Math.max(0, Math.min(255, Math.round(v * 255)));\n }\n function getTransferable(ctx) {\n const buffers = [];\n const seen = /* @__PURE__ */ new Set();\n function traverse(obj) {\n if (obj && typeof obj === "object" && !seen.has(obj)) {\n seen.add(obj);\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n buffers.push(obj.buffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n traverse(ctx);\n return buffers;\n }\n function setPackedSplat(packedSplats, index, x2, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b, encoding) {\n const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0;\n const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8((encoding == null ? void 0 : encoding.lodOpacity) ? 0.5 * opacity : opacity);\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW)\n );\n const uQuatX = uQuat & 255;\n const uQuatY = uQuat >>> 8 & 255;\n const uQuatZ = uQuat >>> 16 & 255;\n const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN;\n const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX;\n const lnScaleScale = 254 / (lnScaleMax - lnScaleMin);\n const uScaleX = scaleX < SCALE_ZERO ? 0 : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1\n )\n );\n const uScaleY = scaleY < SCALE_ZERO ? 0 : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1\n )\n );\n const uScaleZ = scaleZ < SCALE_ZERO ? 0 : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1\n )\n );\n const uCenterX = toHalf(x2);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n const i4 = index * 4;\n packedSplats[i4] = uR | uG << 8 | uB << 16 | uA << 24;\n packedSplats[i4 + 1] = uCenterX | uCenterY << 16;\n packedSplats[i4 + 2] = uCenterZ | uQuatX << 16 | uQuatY << 24;\n packedSplats[i4 + 3] = uScaleX | uScaleY << 8 | uScaleZ << 16 | uQuatZ << 24;\n }\n function setPackedSplatCenter(packedSplats, index, x2, y, z) {\n const uCenterX = toHalf(x2);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n const i4 = index * 4;\n packedSplats[i4 + 1] = uCenterX | uCenterY << 16;\n packedSplats[i4 + 2] = uCenterZ | packedSplats[i4 + 2] & 4294901760;\n }\n function setPackedSplatScales(packedSplats, index, scaleX, scaleY, scaleZ, encoding) {\n const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN;\n const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX;\n const lnScaleScale = 254 / (lnScaleMax - lnScaleMin);\n const uScaleX = scaleX < SCALE_ZERO ? 0 : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1\n )\n );\n const uScaleY = scaleY < SCALE_ZERO ? 0 : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1\n )\n );\n const uScaleZ = scaleZ < SCALE_ZERO ? 0 : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1\n )\n );\n const i4 = index * 4;\n packedSplats[i4 + 3] = uScaleX | uScaleY << 8 | uScaleZ << 16 | packedSplats[i4 + 3] & 4278190080;\n }\n const tempQuaternion = new Quaternion();\n function setPackedSplatQuat(packedSplats, index, quatX, quatY, quatZ, quatW) {\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW)\n );\n const uQuatX = uQuat & 255;\n const uQuatY = uQuat >>> 8 & 255;\n const uQuatZ = uQuat >>> 16 & 255;\n const i4 = index * 4;\n packedSplats[i4 + 2] = packedSplats[i4 + 2] & 65535 | uQuatX << 16 | uQuatY << 24;\n packedSplats[i4 + 3] = packedSplats[i4 + 3] & 16777215 | uQuatZ << 24;\n }\n function setPackedSplatRgba(packedSplats, index, r, g, b, a, encoding) {\n const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0;\n const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8((encoding == null ? void 0 : encoding.lodOpacity) ? 0.5 * a : a);\n const i4 = index * 4;\n packedSplats[i4] = uR | uG << 8 | uB << 16 | uA << 24;\n }\n function setPackedSplatRgb(packedSplats, index, r, g, b, encoding) {\n const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0;\n const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const i4 = index * 4;\n packedSplats[i4] = uR | uG << 8 | uB << 16 | packedSplats[i4] & 4278190080;\n }\n function setPackedSplatOpacity(packedSplats, index, opacity) {\n const uA = floatToUint8(opacity);\n const i4 = index * 4;\n packedSplats[i4] = packedSplats[i4] & 16777215 | uA << 24;\n }\n new Vector3();\n new Vector3();\n new Color();\n function getTextureSize(numSplats) {\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width))\n );\n const depth = Math.ceil(numSplats / (width * height));\n const maxSplats = width * height * depth;\n return { width, height, depth, maxSplats };\n }\n function computeMaxSplats(numSplats) {\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width))\n );\n const depth = Math.ceil(numSplats / (width * height));\n return width * height * depth;\n }\n unindent(`\n precision highp float;\n\n in vec3 position;\n\n void main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n }\n`);\n const tempNormalizedQuaternion = new Quaternion();\n const tempAxis = new Vector3();\n function encodeQuatOctXy88R8(q) {\n const qnorm = tempNormalizedQuaternion.copy(q).normalize();\n if (qnorm.w < 0) {\n qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w);\n }\n const theta = 2 * Math.acos(qnorm.w);\n const xyz_norm = Math.sqrt(\n qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z\n );\n const axis = xyz_norm < 1e-6 ? tempAxis.set(1, 0, 0) : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm);\n const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z);\n let p_x = axis.x / sum;\n let p_y = axis.y / sum;\n if (axis.z < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n const quantU = Math.round(u_f * 255);\n const quantV = Math.round(v_f * 255);\n const angleInt = Math.round(theta * (255 / Math.PI));\n return angleInt << 16 | quantV << 8 | quantU;\n }\n function packSint8Bytes(b0, b1, b22, b3) {\n const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127)));\n const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127)));\n const clampedB2 = Math.round(Math.max(-127, Math.min(127, b22 * 127)));\n const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127)));\n return clampedB0 & 255 | (clampedB1 & 255) << 8 | (clampedB2 & 255) << 16 | (clampedB3 & 255) << 24;\n }\n function encodeSh1Rgb(sh1Array, index, sh1Rgb, encoding) {\n const sh1Max = (encoding == null ? void 0 : encoding.sh1Max) ?? 1;\n const sh1Scale = 63 / sh1Max;\n const base = index * 2;\n for (let i2 = 0; i2 < 9; ++i2) {\n const s = sh1Rgb[i2] * sh1Scale;\n const value = Math.round(Math.max(-63, Math.min(63, s))) & 127;\n const bitStart = i2 * 7;\n const bitEnd = bitStart + 7;\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = value << bitOffset & 4294967295;\n sh1Array[base + wordStart] |= firstWord;\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = value >>> 32 - bitOffset & 4294967295;\n sh1Array[base + wordStart + 1] |= secondWord;\n }\n }\n }\n function encodeSh2Rgb(sh2Array, index, sh2Rgb, encoding) {\n const sh2Max = (encoding == null ? void 0 : encoding.sh2Max) ?? 1;\n const sh2Scale = 1 / sh2Max;\n sh2Array[index * 4 + 0] = packSint8Bytes(\n sh2Rgb[0] * sh2Scale,\n sh2Rgb[1] * sh2Scale,\n sh2Rgb[2] * sh2Scale,\n sh2Rgb[3] * sh2Scale\n );\n sh2Array[index * 4 + 1] = packSint8Bytes(\n sh2Rgb[4] * sh2Scale,\n sh2Rgb[5] * sh2Scale,\n sh2Rgb[6] * sh2Scale,\n sh2Rgb[7] * sh2Scale\n );\n sh2Array[index * 4 + 2] = packSint8Bytes(\n sh2Rgb[8] * sh2Scale,\n sh2Rgb[9] * sh2Scale,\n sh2Rgb[10] * sh2Scale,\n sh2Rgb[11] * sh2Scale\n );\n sh2Array[index * 4 + 3] = packSint8Bytes(\n sh2Rgb[12] * sh2Scale,\n sh2Rgb[13] * sh2Scale,\n sh2Rgb[14] * sh2Scale,\n 0\n );\n }\n function encodeSh3Rgb(sh3Array, index, sh3Rgb, encoding) {\n const sh3Max = (encoding == null ? void 0 : encoding.sh3Max) ?? 1;\n const sh3Scale = 31 / sh3Max;\n const base = index * 4;\n for (let i2 = 0; i2 < 21; ++i2) {\n const s = sh3Rgb[i2] * sh3Scale;\n const value = Math.round(Math.max(-31, Math.min(31, s))) & 63;\n const bitStart = i2 * 6;\n const bitEnd = bitStart + 6;\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = value << bitOffset & 4294967295;\n sh3Array[base + wordStart] |= firstWord;\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = value >>> 32 - bitOffset & 4294967295;\n sh3Array[base + wordStart + 1] |= secondWord;\n }\n }\n }\n function decompressPartialGzip(fileBytes, numBytes) {\n const chunks = [];\n let totalBytes = 0;\n let result = null;\n const gunzip = new Gunzip((data, final) => {\n chunks.push(data);\n totalBytes += data.length;\n if (final || totalBytes >= numBytes) {\n const allBytes = new Uint8Array(totalBytes);\n let offset2 = 0;\n for (const chunk of chunks) {\n allBytes.set(chunk, offset2);\n offset2 += chunk.length;\n }\n result = allBytes.slice(0, numBytes);\n }\n });\n const CHUNK_SIZE = 1024;\n let offset = 0;\n while (result == null && offset < fileBytes.length) {\n const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE);\n gunzip.push(chunk, false);\n offset += CHUNK_SIZE;\n }\n if (result == null) {\n gunzip.push(new Uint8Array(), true);\n if (result == null) {\n throw new Error("Failed to decompress partial gzip");\n }\n }\n return result;\n }\n class GunzipReader {\n constructor({\n fileBytes,\n chunkBytes = 64 * 1024\n }) {\n this.fileBytes = fileBytes;\n this.chunkBytes = chunkBytes;\n this.chunks = [];\n this.totalBytes = 0;\n const ds = new DecompressionStream("gzip");\n const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds);\n this.reader = decompressionStream.getReader();\n }\n async read(numBytes) {\n while (this.totalBytes < numBytes) {\n const { value: chunk, done: readerDone } = await this.reader.read();\n if (readerDone) {\n break;\n }\n this.chunks.push(chunk);\n this.totalBytes += chunk.length;\n }\n if (this.totalBytes < numBytes) {\n throw new Error(\n `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}`\n );\n }\n const allBytes = new Uint8Array(this.totalBytes);\n let outOffset = 0;\n for (const chunk of this.chunks) {\n allBytes.set(chunk, outOffset);\n outOffset += chunk.length;\n }\n const result = allBytes.subarray(0, numBytes);\n this.chunks = [allBytes.subarray(numBytes)];\n this.totalBytes -= numBytes;\n return result;\n }\n }\n function decodeAntiSplat(fileBytes, initNumSplats, splatCallback) {\n const numSplats = Math.floor(fileBytes.length / 32);\n if (numSplats * 32 !== fileBytes.length) {\n throw new Error("Invalid .splat file size");\n }\n initNumSplats(numSplats);\n const f32 = new Float32Array(fileBytes.buffer);\n for (let i2 = 0; i2 < numSplats; ++i2) {\n const i322 = i2 * 32;\n const i8 = i2 * 8;\n const x2 = f32[i8 + 0];\n const y = f32[i8 + 1];\n const z = f32[i8 + 2];\n const scaleX = f32[i8 + 3];\n const scaleY = f32[i8 + 4];\n const scaleZ = f32[i8 + 5];\n const r = fileBytes[i322 + 24] / 255;\n const g = fileBytes[i322 + 25] / 255;\n const b = fileBytes[i322 + 26] / 255;\n const opacity = fileBytes[i322 + 27] / 255;\n const quatW = (fileBytes[i322 + 28] - 128) / 128;\n const quatX = (fileBytes[i322 + 29] - 128) / 128;\n const quatY = (fileBytes[i322 + 30] - 128) / 128;\n const quatZ = (fileBytes[i322 + 31] - 128) / 128;\n splatCallback(\n i2,\n x2,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b\n );\n }\n }\n function unpackAntiSplat(fileBytes, splatEncoding) {\n let numSplats = 0;\n let maxSplats = 0;\n let packedArray = new Uint32Array(0);\n decodeAntiSplat(\n fileBytes,\n (cbNumSplats) => {\n numSplats = cbNumSplats;\n maxSplats = computeMaxSplats(numSplats);\n packedArray = new Uint32Array(maxSplats * 4);\n },\n (index, x2, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b) => {\n setPackedSplat(\n packedArray,\n index,\n x2,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding\n );\n }\n );\n return { packedArray, numSplats };\n }\n const KSPLAT_COMPRESSION = {\n 0: {\n bytesPerCenter: 12,\n bytesPerScale: 12,\n bytesPerRotation: 16,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 4,\n scaleOffsetBytes: 12,\n rotationOffsetBytes: 24,\n colorOffsetBytes: 40,\n sphericalHarmonicsOffsetBytes: 44,\n scaleRange: 1\n },\n 1: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 2,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767\n },\n 2: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 1,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767\n }\n };\n const KSPLAT_SH_DEGREE_TO_COMPONENTS = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45\n };\n function decodeKsplat(fileBytes, initNumSplats, splatCallback, shCallback) {\n var _a2;\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n for (let section = 0; section < maxSectionCount; ++section) {\n let getSh = function(splatOffset, component) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true\n )\n );\n }\n const t = data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) / 255;\n return minSphericalHarmonicsCoeff + t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff);\n };\n const section2 = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n const sectionSplatCount = section2.getUint32(0, true);\n const sectionMaxSplatCount = section2.getUint32(4, true);\n const bucketSize = section2.getUint32(8, true);\n const bucketCount = section2.getUint32(12, true);\n const bucketBlockSize = section2.getFloat32(16, true);\n const bucketStorageSizeBytes = section2.getUint16(20, true);\n const compressionScaleRange = (section2.getUint32(24, true) || ((_a2 = KSPLAT_COMPRESSION[compressionLevel]) == null ? void 0 : _a2.scaleRange)) ?? 1;\n const fullBucketCount = section2.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section2.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes = bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section2.getUint16(40, true);\n const shComponents = KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat = bytesPerCenter + bytesPerScale + bytesPerRotation + bytesPerColor + shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes = splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9,\n 14,\n 19,\n 10,\n 15,\n 20,\n 11,\n 16,\n 21,\n 12,\n 17,\n 22,\n 13,\n 18,\n 23\n ];\n const sh3Index = [\n 24,\n 31,\n 38,\n 25,\n 32,\n 39,\n 26,\n 33,\n 40,\n 27,\n 34,\n 41,\n 28,\n 35,\n 42,\n 29,\n 36,\n 43,\n 30,\n 37,\n 44\n ];\n const sh1 = sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : void 0;\n const sh2 = sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : void 0;\n const sh3 = sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : void 0;\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount\n );\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n for (let i2 = 0; i2 < sectionSplatCount; ++i2) {\n const splatOffset = i2 * bytesPerSplat;\n let bucketIndex;\n if (i2 < fullBucketSplats) {\n bucketIndex = Math.floor(i2 / bucketSize);\n } else {\n const bucketLength = partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i2 >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n const x2 = compressionLevel === 0 ? data.getFloat32(splatOffset + 0, true) : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) * compressionScaleFactor + bucketArray[3 * bucketIndex + 0];\n const y = compressionLevel === 0 ? data.getFloat32(splatOffset + 4, true) : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) * compressionScaleFactor + bucketArray[3 * bucketIndex + 1];\n const z = compressionLevel === 0 ? data.getFloat32(splatOffset + 8, true) : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) * compressionScaleFactor + bucketArray[3 * bucketIndex + 2];\n const scaleX = compressionLevel === 0 ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true) : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY = compressionLevel === 0 ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true) : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ = compressionLevel === 0 ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true) : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n const quatW = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true)\n );\n const quatX = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true)\n );\n const quatY = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true)\n );\n const quatZ = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true)\n );\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n splatCallback(\n i2,\n x2,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b\n );\n if (sphericalHarmonicsDegree >= 1 && sh1) {\n for (const [i22, key] of sh1Index.entries()) {\n sh1[i22] = getSh(splatOffset, key);\n }\n if (sh2) {\n for (const [i22, key] of sh2Index.entries()) {\n sh2[i22] = getSh(splatOffset, key);\n }\n }\n if (sh3) {\n for (const [i22, key] of sh3Index.entries()) {\n sh3[i22] = getSh(splatOffset, key);\n }\n }\n shCallback == null ? void 0 : shCallback(i2, sh1, sh2, sh3);\n }\n }\n sectionBase += storageSizeBytes;\n }\n }\n function unpackKsplat(fileBytes, splatEncoding) {\n var _a2;\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n const numSplats = splatCount;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra = {};\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n for (let section = 0; section < maxSectionCount; ++section) {\n let getSh = function(splatOffset, component) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true\n )\n );\n }\n const t = data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) / 255;\n return minSphericalHarmonicsCoeff + t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff);\n };\n const section2 = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n const sectionSplatCount = section2.getUint32(0, true);\n const sectionMaxSplatCount = section2.getUint32(4, true);\n const bucketSize = section2.getUint32(8, true);\n const bucketCount = section2.getUint32(12, true);\n const bucketBlockSize = section2.getFloat32(16, true);\n const bucketStorageSizeBytes = section2.getUint16(20, true);\n const compressionScaleRange = (section2.getUint32(24, true) || ((_a2 = KSPLAT_COMPRESSION[compressionLevel]) == null ? void 0 : _a2.scaleRange)) ?? 1;\n const fullBucketCount = section2.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section2.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes = bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section2.getUint16(40, true);\n const shComponents = KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat = bytesPerCenter + bytesPerScale + bytesPerRotation + bytesPerColor + shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes = splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9,\n 14,\n 19,\n 10,\n 15,\n 20,\n 11,\n 16,\n 21,\n 12,\n 17,\n 22,\n 13,\n 18,\n 23\n ];\n const sh3Index = [\n 24,\n 31,\n 38,\n 25,\n 32,\n 39,\n 26,\n 33,\n 40,\n 27,\n 34,\n 41,\n 28,\n 35,\n 42,\n 29,\n 36,\n 43,\n 30,\n 37,\n 44\n ];\n const sh1 = sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : void 0;\n const sh2 = sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : void 0;\n const sh3 = sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : void 0;\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount\n );\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n for (let i2 = 0; i2 < sectionSplatCount; ++i2) {\n const splatOffset = i2 * bytesPerSplat;\n let bucketIndex;\n if (i2 < fullBucketSplats) {\n bucketIndex = Math.floor(i2 / bucketSize);\n } else {\n const bucketLength = partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i2 >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n const x2 = compressionLevel === 0 ? data.getFloat32(splatOffset + 0, true) : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) * compressionScaleFactor + bucketArray[3 * bucketIndex + 0];\n const y = compressionLevel === 0 ? data.getFloat32(splatOffset + 4, true) : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) * compressionScaleFactor + bucketArray[3 * bucketIndex + 1];\n const z = compressionLevel === 0 ? data.getFloat32(splatOffset + 8, true) : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) * compressionScaleFactor + bucketArray[3 * bucketIndex + 2];\n const scaleX = compressionLevel === 0 ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true) : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY = compressionLevel === 0 ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true) : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ = compressionLevel === 0 ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true) : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n const quatW = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true)\n );\n const quatX = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true)\n );\n const quatY = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true)\n );\n const quatZ = compressionLevel === 0 ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true) : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true)\n );\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n setPackedSplat(\n packedArray,\n i2,\n x2,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding\n );\n if (sphericalHarmonicsDegree >= 1) {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n for (const [i22, key] of sh1Index.entries()) {\n sh1[i22] = getSh(splatOffset, key);\n }\n encodeSh1Rgb(extra.sh1, i2, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n for (const [i22, key] of sh2Index.entries()) {\n sh2[i22] = getSh(splatOffset, key);\n }\n encodeSh2Rgb(extra.sh2, i2, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n for (const [i22, key] of sh3Index.entries()) {\n sh3[i22] = getSh(splatOffset, key);\n }\n encodeSh3Rgb(extra.sh3, i2, sh3, splatEncoding);\n }\n }\n }\n sectionBase += storageSizeBytes;\n }\n return { packedArray, numSplats, extra };\n }\n const PLY_PROPERTY_TYPES = [\n "char",\n "uchar",\n "short",\n "ushort",\n "int",\n "uint",\n "float",\n "double"\n ];\n const _PlyReader = class _PlyReader {\n // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet\n constructor({ fileBytes }) {\n this.header = "";\n this.littleEndian = true;\n this.elements = {};\n this.comments = [];\n this.data = null;\n this.numSplats = 0;\n this.fileBytes = fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n }\n // Identify and parse the PLY text header (assumed to be <64KB in size).\n // this.elements will contain all the elements in the file, typically\n // "vertex" contains the Gsplat data.\n async parseHeader() {\n const bufferStream = new ReadableStream({\n start: (controller) => {\n controller.enqueue(this.fileBytes.slice(0, 65536));\n controller.close();\n }\n });\n const decoder = bufferStream.pipeThrough(new TextDecoderStream()).getReader();\n this.header = "";\n const headerTerminator = "end_header\\n";\n while (true) {\n const { value, done } = await decoder.read();\n if (done) {\n throw new Error("Failed to read header");\n }\n this.header += value;\n const endHeader = this.header.indexOf(headerTerminator);\n if (endHeader >= 0) {\n this.header = this.header.slice(0, endHeader + headerTerminator.length);\n break;\n }\n }\n const headerLen = new TextEncoder().encode(this.header).length;\n this.data = new DataView(this.fileBytes.buffer, headerLen);\n this.elements = {};\n let curElement = null;\n this.comments = [];\n this.header.trim().split("\\n").forEach((line, lineIndex) => {\n const trimmedLine = line.trim();\n if (lineIndex === 0) {\n if (trimmedLine !== "ply") {\n throw new Error("Invalid PLY header");\n }\n return;\n }\n if (trimmedLine.length === 0) {\n return;\n }\n const fields = trimmedLine.split(" ");\n switch (fields[0]) {\n case "format":\n if (fields[1] === "binary_little_endian") {\n this.littleEndian = true;\n } else if (fields[1] === "binary_big_endian") {\n this.littleEndian = false;\n } else {\n throw new Error(`Unsupported PLY format: ${fields[1]}`);\n }\n if (fields[2] !== "1.0") {\n throw new Error(`Unsupported PLY version: ${fields[2]}`);\n }\n break;\n case "end_header":\n break;\n case "comment":\n this.comments.push(trimmedLine.slice("comment ".length));\n break;\n case "element": {\n const name = fields[1];\n curElement = {\n name,\n count: Number.parseInt(fields[2]),\n properties: {}\n };\n this.elements[name] = curElement;\n break;\n }\n case "property":\n if (curElement == null) {\n throw new Error("Property must be inside an element");\n }\n if (fields[1] === "list") {\n curElement.properties[fields[4]] = {\n isList: true,\n type: fields[3],\n countType: fields[2]\n };\n } else {\n curElement.properties[fields[2]] = {\n isList: false,\n type: fields[1]\n };\n }\n break;\n }\n });\n if (this.elements.vertex) {\n this.numSplats = this.elements.vertex.count;\n }\n }\n parseData(elementCallback) {\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error("No data to parse");\n }\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const item = createEmptyItem(properties);\n const parseFn = createParseFn(properties, this.littleEndian);\n const callback = elementCallback(element) ?? (() => {\n });\n for (let index = 0; index < count; index++) {\n offset = parseFn(data, offset, item);\n callback(index, item);\n }\n }\n }\n // Parse all the Gsplat data in the PLY file in go, invoking the given\n // callbacks for each Gsplat.\n parseSplats(splatCallback, shCallback) {\n if (this.elements.vertex == null) {\n throw new Error("No vertex element found");\n }\n let isSuperSplat = false;\n const ssChunks = [];\n let numSh = 0;\n let sh1Props = [];\n let sh2Props = [];\n let sh3Props = [];\n let sh1 = void 0;\n let sh2 = void 0;\n let sh3 = void 0;\n function prepareSh() {\n const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh];\n sh1Props = new Array(3).fill(null).flatMap((_, k) => [0, 1, 2].map((_2, d) => k + d * num_f_rest / 3));\n sh2Props = new Array(5).fill(null).flatMap(\n (_, k) => [0, 1, 2].map((_2, d) => 3 + k + d * num_f_rest / 3)\n );\n sh3Props = new Array(7).fill(null).flatMap(\n (_, k) => [0, 1, 2].map((_2, d) => 8 + k + d * num_f_rest / 3)\n );\n sh1 = numSh >= 1 ? new Float32Array(3 * 3) : void 0;\n sh2 = numSh >= 2 ? new Float32Array(5 * 3) : void 0;\n sh3 = numSh >= 3 ? new Float32Array(7 * 3) : void 0;\n }\n function ssShCallback(index, item) {\n if (!sh1) {\n throw new Error("Missing sh1");\n }\n const sh = item.f_rest;\n for (let i2 = 0; i2 < sh1Props.length; i2++) {\n sh1[i2] = sh[sh1Props[i2]] * 8 / 255 - 4;\n }\n if (sh2) {\n for (let i2 = 0; i2 < sh2Props.length; i2++) {\n sh2[i2] = sh[sh2Props[i2]] * 8 / 255 - 4;\n }\n }\n if (sh3) {\n for (let i2 = 0; i2 < sh3Props.length; i2++) {\n sh3[i2] = sh[sh3Props[i2]] * 8 / 255 - 4;\n }\n }\n shCallback == null ? void 0 : shCallback(index, sh1, sh2, sh3);\n }\n function initSuperSplat(element) {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z\n } = element.properties;\n if (!min_x || !min_y || !min_z || !max_x || !max_y || !max_z || !min_scale_x || !min_scale_y || !min_scale_z || !max_scale_x || !max_scale_y || !max_scale_z) {\n throw new Error("Missing PLY chunk properties");\n }\n isSuperSplat = true;\n return (index, item) => {\n const {\n min_x: min_x2,\n min_y: min_y2,\n min_z: min_z2,\n max_x: max_x2,\n max_y: max_y2,\n max_z: max_z2,\n min_scale_x: min_scale_x2,\n min_scale_y: min_scale_y2,\n min_scale_z: min_scale_z2,\n max_scale_x: max_scale_x2,\n max_scale_y: max_scale_y2,\n max_scale_z: max_scale_z2,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b\n } = item;\n ssChunks.push({\n min_x: min_x2,\n min_y: min_y2,\n min_z: min_z2,\n max_x: max_x2,\n max_y: max_y2,\n max_z: max_z2,\n min_scale_x: min_scale_x2,\n min_scale_y: min_scale_y2,\n min_scale_z: min_scale_z2,\n max_scale_x: max_scale_x2,\n max_scale_y: max_scale_y2,\n max_scale_z: max_scale_z2,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b\n });\n };\n }\n function decodeSuperSplat(element) {\n if (shCallback && element.name === "sh") {\n numSh = getNumSh(element.properties);\n prepareSh();\n return ssShCallback;\n }\n if (element.name !== "vertex") {\n return null;\n }\n const { packed_position, packed_rotation, packed_scale, packed_color } = element.properties;\n if (!packed_position || !packed_rotation || !packed_scale || !packed_color) {\n throw new Error(\n "Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color"\n );\n }\n const SQRT2 = Math.sqrt(2);\n return (index, item) => {\n const chunk = ssChunks[index >>> 8];\n if (chunk == null) {\n throw new Error("Missing PLY chunk");\n }\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b\n } = chunk;\n const { packed_position: packed_position2, packed_rotation: packed_rotation2, packed_scale: packed_scale2, packed_color: packed_color2 } = item;\n const x2 = (packed_position2 >>> 21 & 2047) / 2047 * (max_x - min_x) + min_x;\n const y = (packed_position2 >>> 11 & 1023) / 1023 * (max_y - min_y) + min_y;\n const z = (packed_position2 & 2047) / 2047 * (max_z - min_z) + min_z;\n const r0 = ((packed_rotation2 >>> 20 & 1023) / 1023 - 0.5) * SQRT2;\n const r1 = ((packed_rotation2 >>> 10 & 1023) / 1023 - 0.5) * SQRT2;\n const r2 = ((packed_rotation2 & 1023) / 1023 - 0.5) * SQRT2;\n const rr = Math.sqrt(Math.max(0, 1 - r0 * r0 - r1 * r1 - r2 * r2));\n const rOrder = packed_rotation2 >>> 30;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n const scaleX = Math.exp(\n (packed_scale2 >>> 21 & 2047) / 2047 * (max_scale_x - min_scale_x) + min_scale_x\n );\n const scaleY = Math.exp(\n (packed_scale2 >>> 11 & 1023) / 1023 * (max_scale_y - min_scale_y) + min_scale_y\n );\n const scaleZ = Math.exp(\n (packed_scale2 & 2047) / 2047 * (max_scale_z - min_scale_z) + min_scale_z\n );\n const r = (packed_color2 >>> 24 & 255) / 255 * ((max_r ?? 1) - (min_r ?? 0)) + (min_r ?? 0);\n const g = (packed_color2 >>> 16 & 255) / 255 * ((max_g ?? 1) - (min_g ?? 0)) + (min_g ?? 0);\n const b = (packed_color2 >>> 8 & 255) / 255 * ((max_b ?? 1) - (min_b ?? 0)) + (min_b ?? 0);\n const opacity = (packed_color2 & 255) / 255;\n splatCallback(\n index,\n x2,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b\n );\n };\n }\n const elementCallback = (element) => {\n if (element.name === "chunk") {\n return initSuperSplat(element);\n }\n if (isSuperSplat) {\n return decodeSuperSplat(element);\n }\n if (element.name !== "vertex") {\n return null;\n }\n const {\n x: x2,\n y,\n z,\n scale_0,\n scale_1,\n scale_2,\n rot_0,\n rot_1,\n rot_2,\n rot_3,\n opacity,\n f_dc_0,\n f_dc_1,\n f_dc_2,\n red,\n green,\n blue,\n alpha\n } = element.properties;\n if (!x2 || !y || !z) {\n throw new Error("Missing PLY properties: x, y, z");\n }\n const hasScales = scale_0 && scale_1 && scale_2;\n const hasRots = rot_0 && rot_1 && rot_2 && rot_3;\n const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1;\n const redDiv = red != null ? FIELD_SCALE[red.type] : 1;\n const greenDiv = green != null ? FIELD_SCALE[green.type] : 1;\n const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1;\n numSh = getNumSh(element.properties);\n prepareSh();\n return (index, item) => {\n const scaleX = hasScales ? Math.exp(item.scale_0) : _PlyReader.defaultPointScale;\n const scaleY = hasScales ? Math.exp(item.scale_1) : _PlyReader.defaultPointScale;\n const scaleZ = hasScales ? Math.exp(item.scale_2) : _PlyReader.defaultPointScale;\n const quatX = hasRots ? item.rot_1 : 0;\n const quatY = hasRots ? item.rot_2 : 0;\n const quatZ = hasRots ? item.rot_3 : 0;\n const quatW = hasRots ? item.rot_0 : 1;\n const op = opacity != null ? 1 / (1 + Math.exp(-item.opacity)) : alpha != null ? item.alpha / alphaDiv : 1;\n const r = f_dc_0 != null ? item.f_dc_0 * SH_C0$1 + 0.5 : red != null ? item.red / redDiv : 1;\n const g = f_dc_1 != null ? item.f_dc_1 * SH_C0$1 + 0.5 : green != null ? item.green / greenDiv : 1;\n const b = f_dc_2 != null ? item.f_dc_2 * SH_C0$1 + 0.5 : blue != null ? item.blue / blueDiv : 1;\n splatCallback(\n index,\n item.x,\n item.y,\n item.z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n op,\n r,\n g,\n b\n );\n if (shCallback && sh1) {\n const sh = item.f_rest;\n if (sh1) {\n for (let i2 = 0; i2 < sh1Props.length; i2++) {\n sh1[i2] = sh[sh1Props[i2]];\n }\n }\n if (sh2) {\n for (let i2 = 0; i2 < sh2Props.length; i2++) {\n sh2[i2] = sh[sh2Props[i2]];\n }\n }\n if (sh3) {\n for (let i2 = 0; i2 < sh3Props.length; i2++) {\n sh3[i2] = sh[sh3Props[i2]];\n }\n }\n shCallback(index, sh1, sh2, sh3);\n }\n };\n };\n this.parseData(elementCallback);\n }\n // Inject RGBA values into original PLY file, which can be used to modify\n // the color/opacity of the Gsplats and write out the modified PLY file.\n injectRgba(rgba) {\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error("No parsed data");\n }\n if (rgba.length !== this.numSplats * 4) {\n throw new Error("Invalid RGBA array length");\n }\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const parsers = [];\n let rgbaOffset = 0;\n const isVertex = elementName === "vertex";\n if (isVertex) {\n for (const name of ["opacity", "f_dc_0", "f_dc_1", "f_dc_2"]) {\n if (!properties[name] || properties[name].type !== "float") {\n throw new Error(`Can\'t injectRgba due to property: ${name}`);\n }\n }\n }\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!property.isList) {\n if (isVertex) {\n if (propertyName === "f_dc_0" || propertyName === "f_dc_1" || propertyName === "f_dc_2") {\n const component = Number.parseInt(\n propertyName.slice("f_dc_".length)\n );\n parsers.push(() => {\n const value = (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0$1;\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value\n );\n });\n } else if (propertyName === "opacity") {\n parsers.push(() => {\n const value = Math.max(\n -100,\n Math.min(\n 100,\n -Math.log(1 / (rgba[rgbaOffset + 3] / 255) - 1)\n )\n );\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value\n );\n });\n }\n }\n parsers.push(() => {\n offset += FIELD_BYTES[property.type];\n });\n } else {\n parsers.push(() => {\n const length = PARSE_FIELD[property.countType](\n data,\n offset,\n this.littleEndian\n );\n offset += FIELD_BYTES[property.countType];\n offset += length * FIELD_BYTES[property.type];\n });\n }\n }\n for (let index = 0; index < count; index++) {\n for (const parser of parsers) {\n parser();\n }\n if (isVertex) {\n rgbaOffset += 4;\n }\n }\n }\n }\n };\n _PlyReader.defaultPointScale = 1e-3;\n let PlyReader = _PlyReader;\n const SH_C0$1 = 0.28209479177387814;\n const PARSE_FIELD = {\n char: (data, offset, littleEndian) => {\n return data.getInt8(offset);\n },\n uchar: (data, offset, littleEndian) => {\n return data.getUint8(offset);\n },\n short: (data, offset, littleEndian) => {\n return data.getInt16(offset, littleEndian);\n },\n ushort: (data, offset, littleEndian) => {\n return data.getUint16(offset, littleEndian);\n },\n int: (data, offset, littleEndian) => {\n return data.getInt32(offset, littleEndian);\n },\n uint: (data, offset, littleEndian) => {\n return data.getUint32(offset, littleEndian);\n },\n float: (data, offset, littleEndian) => {\n return data.getFloat32(offset, littleEndian);\n },\n double: (data, offset, littleEndian) => {\n return data.getFloat64(offset, littleEndian);\n }\n };\n const SET_FIELD = {\n char: (data, offset, littleEndian, value) => {\n data.setInt8(offset, value);\n },\n uchar: (data, offset, littleEndian, value) => {\n data.setUint8(offset, value);\n },\n short: (data, offset, littleEndian, value) => {\n data.setInt16(offset, value, littleEndian);\n },\n ushort: (data, offset, littleEndian, value) => {\n data.setUint16(offset, value, littleEndian);\n },\n int: (data, offset, littleEndian, value) => {\n data.setInt32(offset, value, littleEndian);\n },\n uint: (data, offset, littleEndian, value) => {\n data.setUint32(offset, value, littleEndian);\n },\n float: (data, offset, littleEndian, value) => {\n data.setFloat32(offset, value, littleEndian);\n },\n double: (data, offset, littleEndian, value) => {\n data.setFloat64(offset, value, littleEndian);\n }\n };\n const FIELD_BYTES = {\n char: 1,\n uchar: 1,\n short: 2,\n ushort: 2,\n int: 4,\n uint: 4,\n float: 4,\n double: 8\n };\n const FIELD_SCALE = {\n char: 127,\n uchar: 255,\n short: 32767,\n ushort: 65535,\n int: 2147483647,\n uint: 4294967295,\n float: 1,\n double: 1\n };\n const NUM_F_REST_TO_NUM_SH = {\n 0: 0,\n 9: 1,\n 24: 2,\n 45: 3\n };\n const NUM_SH_TO_NUM_F_REST = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45\n };\n const F_REST_REGEX = /^f_rest_([0-9]{1,2})$/;\n function createEmptyItem(properties) {\n const item = {};\n for (const [propertyName, property] of Object.entries(properties)) {\n if (F_REST_REGEX.test(propertyName)) {\n item.f_rest = new Array(getNumSh(properties));\n } else {\n item[propertyName] = property.isList ? [] : 0;\n }\n }\n return item;\n }\n function createParseFn(properties, littleEndian) {\n if (safeToCompile(properties)) {\n return createCompiledParserFn(properties, littleEndian);\n }\n return createDynamicParserFn(properties, littleEndian);\n }\n const UNSAFE_EVAL_ALLOWED = (() => {\n try {\n new Function("return 42;");\n } catch (e) {\n return false;\n }\n return true;\n })();\n const PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/;\n function safeToCompile(properties) {\n if (!UNSAFE_EVAL_ALLOWED) {\n return false;\n }\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!PROPERTY_NAME_REGEX.test(propertyName)) {\n return false;\n }\n if (property.isList && !PLY_PROPERTY_TYPES.includes(property.countType)) {\n return false;\n }\n if (!PLY_PROPERTY_TYPES.includes(property.type)) {\n return false;\n }\n }\n return true;\n }\n function createCompiledParserFn(properties, littleEndian) {\n const parserSrc = ["let list;"];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parserSrc.push(\n /*js*/\n `\n item.f_rest[${fRestIndex}] = PARSE_FIELD[\'${property.type}\'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `\n );\n } else if (!property.isList) {\n parserSrc.push(\n /*js*/\n `\n item[\'${propertyName}\'] = PARSE_FIELD[\'${property.type}\'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `\n );\n } else {\n parserSrc.push(\n /*js*/\n `\n list = item[\'${propertyName}\'];\n list.length = PARSE_FIELD[\'${property.countType}\'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.countType]};\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD[\'${property.type}\'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n }\n `\n );\n }\n }\n parserSrc.push("return offset;");\n const fn = new Function(\n "data",\n "offset",\n "item",\n "PARSE_FIELD",\n parserSrc.join("\\n")\n );\n return (data, offset, item) => fn(data, offset, item, PARSE_FIELD);\n }\n function createDynamicParserFn(properties, littleEndian) {\n const parsers = [];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parsers.push(\n (data, offset, item) => {\n item.f_rest[fRestIndex] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian\n );\n return offset + FIELD_BYTES[property.type];\n }\n );\n } else if (!property.isList) {\n parsers.push(\n (data, offset, item) => {\n item[propertyName] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian\n );\n return offset + FIELD_BYTES[property.type];\n }\n );\n } else {\n parsers.push(\n (data, offset, item) => {\n const list = item[propertyName];\n list.length = PARSE_FIELD[property.countType](\n data,\n offset,\n littleEndian\n );\n let currentOffset = offset + FIELD_BYTES[property.countType];\n for (let i2 = 0; i2 < list.length; i2++) {\n list[i2] = PARSE_FIELD[property.type](\n data,\n currentOffset,\n littleEndian\n );\n currentOffset += FIELD_BYTES[property.type];\n }\n return currentOffset;\n }\n );\n }\n }\n return (data, offset, item) => {\n let currentOffset = offset;\n for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) {\n currentOffset = parsers[parserIndex](data, currentOffset, item);\n }\n return currentOffset;\n };\n }\n function getNumSh(properties) {\n let num_f_rest = 0;\n while (properties[`f_rest_${num_f_rest}`]) {\n num_f_rest += 1;\n }\n const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest];\n if (numSh == null) {\n throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`);\n }\n return numSh;\n }\n class SpzReader {\n constructor({ fileBytes }) {\n this.version = -1;\n this.numSplats = 0;\n this.shDegree = 0;\n this.fractionalBits = 0;\n this.flags = 0;\n this.flagAntiAlias = false;\n this.flagLod = false;\n this.reserved = 0;\n this.headerParsed = false;\n this.parsed = false;\n this.fileBytes = fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n this.reader = new GunzipReader({\n fileBytes: this.fileBytes\n });\n }\n async parseHeader() {\n if (this.headerParsed) {\n throw new Error("SPZ file header already parsed");\n }\n const header = new DataView((await this.reader.read(16)).buffer);\n if (header.getUint32(0, true) !== 1347635022) {\n throw new Error("Invalid SPZ file");\n }\n this.version = header.getUint32(4, true);\n if (this.version < 1 || this.version > 3) {\n throw new Error(`Unsupported SPZ version: ${this.version}`);\n }\n this.numSplats = header.getUint32(8, true);\n this.shDegree = header.getUint8(12);\n this.fractionalBits = header.getUint8(13);\n this.flags = header.getUint8(14);\n this.flagAntiAlias = (this.flags & 1) !== 0;\n this.flagLod = (this.flags & 128) !== 0;\n this.reserved = header.getUint8(15);\n this.headerParsed = true;\n this.parsed = false;\n }\n async parseSplats(centerCallback, alphaCallback, rgbCallback, scalesCallback, quatCallback, shCallback, {\n childCounts,\n childStarts\n } = {}) {\n if (!this.headerParsed) {\n throw new Error("SPZ file header must be parsed first");\n }\n if (this.parsed) {\n throw new Error("SPZ file already parsed");\n }\n this.parsed = true;\n if (this.version === 1) {\n const centerBytes = await this.reader.read(this.numSplats * 3 * 2);\n const centerUint16 = new Uint16Array(centerBytes.buffer);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i3 = i2 * 3;\n const x2 = fromHalf(centerUint16[i3]);\n const y = fromHalf(centerUint16[i3 + 1]);\n const z = fromHalf(centerUint16[i3 + 2]);\n centerCallback == null ? void 0 : centerCallback(i2, x2, y, z);\n }\n } else if (this.version === 2 || this.version === 3) {\n const fixed = 1 << this.fractionalBits;\n const centerBytes = await this.reader.read(this.numSplats * 3 * 3);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i9 = i2 * 9;\n const x2 = ((centerBytes[i9 + 2] << 24 | centerBytes[i9 + 1] << 16 | centerBytes[i9] << 8) >> 8) / fixed;\n const y = ((centerBytes[i9 + 5] << 24 | centerBytes[i9 + 4] << 16 | centerBytes[i9 + 3] << 8) >> 8) / fixed;\n const z = ((centerBytes[i9 + 8] << 24 | centerBytes[i9 + 7] << 16 | centerBytes[i9 + 6] << 8) >> 8) / fixed;\n centerCallback == null ? void 0 : centerCallback(i2, x2, y, z);\n }\n } else {\n throw new Error("Unreachable");\n }\n {\n const bytes = await this.reader.read(this.numSplats);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n alphaCallback == null ? void 0 : alphaCallback(i2, bytes[i2] / 255);\n }\n }\n {\n const rgbBytes = await this.reader.read(this.numSplats * 3);\n const scale = SH_C0 / 0.15;\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i3 = i2 * 3;\n const r = (rgbBytes[i3] / 255 - 0.5) * scale + 0.5;\n const g = (rgbBytes[i3 + 1] / 255 - 0.5) * scale + 0.5;\n const b = (rgbBytes[i3 + 2] / 255 - 0.5) * scale + 0.5;\n rgbCallback == null ? void 0 : rgbCallback(i2, r, g, b);\n }\n }\n {\n const scalesBytes = await this.reader.read(this.numSplats * 3);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i3 = i2 * 3;\n const scaleX = Math.exp(scalesBytes[i3] / 16 - 10);\n const scaleY = Math.exp(scalesBytes[i3 + 1] / 16 - 10);\n const scaleZ = Math.exp(scalesBytes[i3 + 2] / 16 - 10);\n scalesCallback == null ? void 0 : scalesCallback(i2, scaleX, scaleY, scaleZ);\n }\n }\n if (this.version === 3) {\n const maxValue = 1 / Math.sqrt(2);\n const quatBytes = await this.reader.read(this.numSplats * 4);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i3 = i2 * 4;\n const quaternion = [0, 0, 0, 0];\n const values = [\n quatBytes[i3],\n quatBytes[i3 + 1],\n quatBytes[i3 + 2],\n quatBytes[i3 + 3]\n ];\n const combinedValues = values[0] + (values[1] << 8) + (values[2] << 16) + (values[3] << 24);\n const valueMask = (1 << 9) - 1;\n const largestIndex = combinedValues >>> 30;\n let remainingValues = combinedValues;\n let sumSquares = 0;\n for (let i22 = 3; i22 >= 0; --i22) {\n if (i22 !== largestIndex) {\n const value = remainingValues & valueMask;\n const sign = remainingValues >>> 9 & 1;\n remainingValues = remainingValues >>> 10;\n quaternion[i22] = maxValue * (value / valueMask);\n quaternion[i22] = sign === 0 ? quaternion[i22] : -quaternion[i22];\n sumSquares += quaternion[i22] * quaternion[i22];\n }\n }\n const square = 1 - sumSquares;\n quaternion[largestIndex] = Math.sqrt(Math.max(square, 0));\n quatCallback == null ? void 0 : quatCallback(\n i2,\n quaternion[0],\n quaternion[1],\n quaternion[2],\n quaternion[3]\n );\n }\n } else {\n const quatBytes = await this.reader.read(this.numSplats * 3);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i3 = i2 * 3;\n const quatX = quatBytes[i3] / 127.5 - 1;\n const quatY = quatBytes[i3 + 1] / 127.5 - 1;\n const quatZ = quatBytes[i3 + 2] / 127.5 - 1;\n const quatW = Math.sqrt(\n Math.max(0, 1 - quatX * quatX - quatY * quatY - quatZ * quatZ)\n );\n quatCallback == null ? void 0 : quatCallback(i2, quatX, quatY, quatZ, quatW);\n }\n }\n if (shCallback && this.shDegree >= 1) {\n const sh1 = new Float32Array(3 * 3);\n const sh2 = this.shDegree >= 2 ? new Float32Array(5 * 3) : void 0;\n const sh3 = this.shDegree >= 3 ? new Float32Array(7 * 3) : void 0;\n const shBytes = await this.reader.read(\n this.numSplats * SH_DEGREE_TO_VECS[this.shDegree] * 3\n );\n let offset = 0;\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n for (let j = 0; j < 9; ++j) {\n sh1[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 9;\n if (sh2) {\n for (let j = 0; j < 15; ++j) {\n sh2[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 15;\n }\n if (sh3) {\n for (let j = 0; j < 21; ++j) {\n sh3[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 21;\n }\n shCallback == null ? void 0 : shCallback(i2, sh1, sh2, sh3);\n }\n }\n if (this.flagLod) {\n let bytes = await this.reader.read(this.numSplats * 2);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i22 = i2 * 2;\n const count = bytes[i22] + (bytes[i22 + 1] << 8);\n childCounts == null ? void 0 : childCounts(i2, count);\n }\n bytes = await this.reader.read(this.numSplats * 4);\n for (let i2 = 0; i2 < this.numSplats; i2++) {\n const i4 = i2 * 4;\n const start = bytes[i4] + (bytes[i4 + 1] << 8) + (bytes[i4 + 2] << 16) + (bytes[i4 + 3] << 24);\n childStarts == null ? void 0 : childStarts(i2, start);\n }\n }\n }\n }\n const SH_DEGREE_TO_VECS = { 1: 3, 2: 8, 3: 15 };\n const SH_C0 = 0.28209479177387814;\n const SPZ_MAGIC = 1347635022;\n const SPZ_VERSION = 3;\n const FLAG_ANTIALIASED = 1;\n class SpzWriter {\n constructor({\n numSplats,\n shDegree,\n fractionalBits = 12,\n flagAntiAlias = true\n }) {\n this.clippedCount = 0;\n const splatSize = 9 + // Position\n 1 + // Opacity\n 3 + // Scale\n 3 + // DC-rgb\n 4 + // Rotation\n (shDegree >= 1 ? 9 : 0) + (shDegree >= 2 ? 15 : 0) + (shDegree >= 3 ? 21 : 0);\n const bufferSize = 16 + numSplats * splatSize;\n this.buffer = new ArrayBuffer(bufferSize);\n this.view = new DataView(this.buffer);\n this.view.setUint32(0, SPZ_MAGIC, true);\n this.view.setUint32(4, SPZ_VERSION, true);\n this.view.setUint32(8, numSplats, true);\n this.view.setUint8(12, shDegree);\n this.view.setUint8(13, fractionalBits);\n this.view.setUint8(14, flagAntiAlias ? FLAG_ANTIALIASED : 0);\n this.view.setUint8(15, 0);\n this.numSplats = numSplats;\n this.shDegree = shDegree;\n this.fractionalBits = fractionalBits;\n this.fraction = 1 << fractionalBits;\n this.flagAntiAlias = flagAntiAlias;\n }\n setCenter(index, x2, y, z) {\n const xRounded = Math.round(x2 * this.fraction);\n const xInt = Math.max(-8388607, Math.min(8388607, xRounded));\n const yRounded = Math.round(y * this.fraction);\n const yInt = Math.max(-8388607, Math.min(8388607, yRounded));\n const zRounded = Math.round(z * this.fraction);\n const zInt = Math.max(-8388607, Math.min(8388607, zRounded));\n const clipped = xRounded !== xInt || yRounded !== yInt || zRounded !== zInt;\n if (clipped) {\n this.clippedCount += 1;\n }\n const i9 = index * 9;\n const base = 16 + i9;\n this.view.setUint8(base, xInt & 255);\n this.view.setUint8(base + 1, xInt >> 8 & 255);\n this.view.setUint8(base + 2, xInt >> 16 & 255);\n this.view.setUint8(base + 3, yInt & 255);\n this.view.setUint8(base + 4, yInt >> 8 & 255);\n this.view.setUint8(base + 5, yInt >> 16 & 255);\n this.view.setUint8(base + 6, zInt & 255);\n this.view.setUint8(base + 7, zInt >> 8 & 255);\n this.view.setUint8(base + 8, zInt >> 16 & 255);\n }\n setAlpha(index, alpha) {\n const base = 16 + this.numSplats * 9 + index;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round(alpha * 255)))\n );\n }\n static scaleRgb(r) {\n const v = ((r - 0.5) / (SH_C0 / 0.15) + 0.5) * 255;\n return Math.max(0, Math.min(255, Math.round(v)));\n }\n setRgb(index, r, g, b) {\n const base = 16 + this.numSplats * 10 + index * 3;\n this.view.setUint8(base, SpzWriter.scaleRgb(r));\n this.view.setUint8(base + 1, SpzWriter.scaleRgb(g));\n this.view.setUint8(base + 2, SpzWriter.scaleRgb(b));\n }\n setScale(index, scaleX, scaleY, scaleZ) {\n const base = 16 + this.numSplats * 13 + index * 3;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleX) + 10) * 16)))\n );\n this.view.setUint8(\n base + 1,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleY) + 10) * 16)))\n );\n this.view.setUint8(\n base + 2,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleZ) + 10) * 16)))\n );\n }\n setQuat(index, ...q) {\n const base = 16 + this.numSplats * 16 + index * 4;\n const quat = normalize(q);\n let iLargest = 0;\n for (let i2 = 1; i2 < 4; ++i2) {\n if (Math.abs(quat[i2]) > Math.abs(quat[iLargest])) {\n iLargest = i2;\n }\n }\n const negate = quat[iLargest] < 0 ? 1 : 0;\n let comp = iLargest;\n for (let i2 = 0; i2 < 4; ++i2) {\n if (i2 !== iLargest) {\n const negbit = (quat[i2] < 0 ? 1 : 0) ^ negate;\n const mag = Math.floor(\n ((1 << 9) - 1) * (Math.abs(quat[i2]) / Math.SQRT1_2) + 0.5\n );\n comp = comp << 10 | negbit << 9 | mag;\n }\n }\n this.view.setUint8(base, comp & 255);\n this.view.setUint8(base + 1, comp >> 8 & 255);\n this.view.setUint8(base + 2, comp >> 16 & 255);\n this.view.setUint8(base + 3, comp >>> 24 & 255);\n }\n static quantizeSh(sh, bits2) {\n const value = Math.round(sh * 128) + 128;\n const bucketSize = 1 << 8 - bits2;\n const quantized = Math.floor((value + bucketSize / 2) / bucketSize) * bucketSize;\n return Math.max(0, Math.min(255, quantized));\n }\n setSh(index, sh1, sh2, sh3) {\n const shVecs = SH_DEGREE_TO_VECS[this.shDegree] || 0;\n const base1 = 16 + this.numSplats * 20 + index * shVecs * 3;\n for (let j = 0; j < 9; ++j) {\n this.view.setUint8(base1 + j, SpzWriter.quantizeSh(sh1[j], 5));\n }\n if (sh2) {\n const base2 = base1 + 9;\n for (let j = 0; j < 15; ++j) {\n this.view.setUint8(base2 + j, SpzWriter.quantizeSh(sh2[j], 4));\n }\n if (sh3) {\n const base3 = base2 + 15;\n for (let j = 0; j < 21; ++j) {\n this.view.setUint8(base3 + j, SpzWriter.quantizeSh(sh3[j], 4));\n }\n }\n }\n }\n async finalize() {\n const input = new Uint8Array(this.buffer);\n const stream = new ReadableStream({\n async start(controller) {\n controller.enqueue(input);\n controller.close();\n }\n });\n const compressed = stream.pipeThrough(new CompressionStream("gzip"));\n const response = new Response(compressed);\n const buffer = await response.arrayBuffer();\n console.log(\n "Compressed",\n input.length,\n "bytes to",\n buffer.byteLength,\n "bytes"\n );\n return new Uint8Array(buffer);\n }\n }\n async function transcodeSpz(input) {\n var _a2, _b2, _c;\n const splats = new SplatData();\n const {\n inputs,\n clipXyz,\n maxSh,\n fractionalBits = 12,\n opacityThreshold\n } = input;\n for (const input2 of inputs) {\n let transformPos = function(pos) {\n pos.multiplyScalar(scale);\n pos.applyQuaternion(quaternion);\n pos.add(translate);\n return pos;\n }, transformScales = function(scales) {\n scales.multiplyScalar(scale);\n return scales;\n }, transformQuaternion = function(quat) {\n quat.premultiply(quaternion);\n return quat;\n }, withinClip = function(p) {\n return !clip || clip.containsPoint(p);\n }, withinOpacity = function(opacity) {\n return opacityThreshold !== void 0 ? opacity >= opacityThreshold : true;\n };\n const scale = ((_a2 = input2.transform) == null ? void 0 : _a2.scale) ?? 1;\n const quaternion = new Quaternion().fromArray(\n ((_b2 = input2.transform) == null ? void 0 : _b2.quaternion) ?? [0, 0, 0, 1]\n );\n const translate = new Vector3().fromArray(\n ((_c = input2.transform) == null ? void 0 : _c.translate) ?? [0, 0, 0]\n );\n const clip = clipXyz ? new Box3(\n new Vector3().fromArray(clipXyz.min),\n new Vector3().fromArray(clipXyz.max)\n ) : void 0;\n let fileType = input2.fileType;\n if (!fileType) {\n fileType = getSplatFileType(input2.fileBytes);\n if (!fileType && input2.pathOrUrl) {\n fileType = getSplatFileTypeFromPath(input2.pathOrUrl);\n }\n }\n switch (fileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes: input2.fileBytes });\n await ply.parseHeader();\n let lastIndex = null;\n ply.parseSplats(\n (index, x2, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b) => {\n const center = transformPos(new Vector3(x2, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new Vector3(scaleX, scaleY, scaleZ)\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion2 = transformQuaternion(\n new Quaternion(quatX, quatY, quatZ, quatW)\n );\n splats.setQuaternion(\n lastIndex,\n quaternion2.x,\n quaternion2.y,\n quaternion2.z,\n quaternion2.w\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (sh1 && lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n }\n if (sh2 && lastIndex !== null) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3 && lastIndex !== null) {\n splats.setSh3(lastIndex, sh3);\n }\n }\n );\n break;\n }\n case SplatFileType.SPZ: {\n const spz2 = new SpzReader({ fileBytes: input2.fileBytes });\n await spz2.parseHeader();\n const mapping = new Int32Array(spz2.numSplats);\n mapping.fill(-1);\n const centers = new Float32Array(spz2.numSplats * 3);\n const center = new Vector3();\n spz2.parseSplats(\n (index, x2, y, z) => {\n const center2 = transformPos(new Vector3(x2, y, z));\n centers[index * 3] = center2.x;\n centers[index * 3 + 1] = center2.y;\n centers[index * 3 + 2] = center2.z;\n },\n (index, alpha) => {\n center.fromArray(centers, index * 3);\n if (withinClip(center) && withinOpacity(alpha)) {\n mapping[index] = splats.pushSplat();\n splats.setCenter(mapping[index], center.x, center.y, center.z);\n splats.setOpacity(mapping[index], alpha);\n }\n },\n (index, r, g, b) => {\n if (mapping[index] >= 0) {\n splats.setColor(mapping[index], r, g, b);\n }\n },\n (index, scaleX, scaleY, scaleZ) => {\n if (mapping[index] >= 0) {\n const scales = transformScales(\n new Vector3(scaleX, scaleY, scaleZ)\n );\n splats.setScale(mapping[index], scales.x, scales.y, scales.z);\n }\n },\n (index, quatX, quatY, quatZ, quatW) => {\n if (mapping[index] >= 0) {\n const quaternion2 = transformQuaternion(\n new Quaternion(quatX, quatY, quatZ, quatW)\n );\n splats.setQuaternion(\n mapping[index],\n quaternion2.x,\n quaternion2.y,\n quaternion2.z,\n quaternion2.w\n );\n }\n },\n (index, sh1, sh2, sh3) => {\n if (mapping[index] >= 0) {\n splats.setSh1(mapping[index], sh1);\n if (sh2) {\n splats.setSh2(mapping[index], sh2);\n }\n if (sh3) {\n splats.setSh3(mapping[index], sh3);\n }\n }\n }\n );\n break;\n }\n case SplatFileType.SPLAT:\n decodeAntiSplat(\n input2.fileBytes,\n (numSplats) => {\n },\n (index, x2, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b) => {\n const center = transformPos(new Vector3(x2, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n const index2 = splats.pushSplat();\n splats.setCenter(index2, center.x, center.y, center.z);\n const scales = transformScales(\n new Vector3(scaleX, scaleY, scaleZ)\n );\n splats.setScale(index2, scales.x, scales.y, scales.z);\n const quaternion2 = transformQuaternion(\n new Quaternion(quatX, quatY, quatZ, quatW)\n );\n splats.setQuaternion(\n index2,\n quaternion2.x,\n quaternion2.y,\n quaternion2.z,\n quaternion2.w\n );\n splats.setOpacity(index2, opacity);\n splats.setColor(index2, r, g, b);\n }\n }\n );\n break;\n case SplatFileType.KSPLAT: {\n let lastIndex = null;\n decodeKsplat(\n input2.fileBytes,\n (numSplats) => {\n },\n (index, x2, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b) => {\n const center = transformPos(new Vector3(x2, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new Vector3(scaleX, scaleY, scaleZ)\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion2 = transformQuaternion(\n new Quaternion(quatX, quatY, quatZ, quatW)\n );\n splats.setQuaternion(\n lastIndex,\n quaternion2.x,\n quaternion2.y,\n quaternion2.z,\n quaternion2.w\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n if (sh2) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3) {\n splats.setSh3(lastIndex, sh3);\n }\n }\n }\n );\n break;\n }\n default:\n throw new Error(`transcodeSpz not implemented for ${fileType}`);\n }\n }\n const shDegree = Math.min(\n maxSh ?? 3,\n splats.sh3 ? 3 : splats.sh2 ? 2 : splats.sh1 ? 1 : 0\n );\n const spz = new SpzWriter({\n numSplats: splats.numSplats,\n shDegree,\n fractionalBits,\n flagAntiAlias: true\n });\n for (let i2 = 0; i2 < splats.numSplats; ++i2) {\n const i3 = i2 * 3;\n const i4 = i2 * 4;\n spz.setCenter(\n i2,\n splats.centers[i3],\n splats.centers[i3 + 1],\n splats.centers[i3 + 2]\n );\n spz.setScale(\n i2,\n splats.scales[i3],\n splats.scales[i3 + 1],\n splats.scales[i3 + 2]\n );\n spz.setQuat(\n i2,\n splats.quaternions[i4],\n splats.quaternions[i4 + 1],\n splats.quaternions[i4 + 2],\n splats.quaternions[i4 + 3]\n );\n spz.setAlpha(i2, splats.opacities[i2]);\n spz.setRgb(\n i2,\n splats.colors[i3],\n splats.colors[i3 + 1],\n splats.colors[i3 + 2]\n );\n if (splats.sh1 && shDegree >= 1) {\n spz.setSh(\n i2,\n splats.sh1.slice(i2 * 9, (i2 + 1) * 9),\n shDegree >= 2 && splats.sh2 ? splats.sh2.slice(i2 * 15, (i2 + 1) * 15) : void 0,\n shDegree >= 3 && splats.sh3 ? splats.sh3.slice(i2 * 21, (i2 + 1) * 21) : void 0\n );\n }\n }\n const spzBytes = await spz.finalize();\n return { fileBytes: spzBytes, clippedCount: spz.clippedCount };\n }\n function getSplatFileType(fileBytes) {\n const view = new DataView(fileBytes.buffer);\n const magic = view.getUint32(0, true);\n if ((magic & 16777215) === 7957616) {\n return SplatFileType.PLY;\n }\n if ((magic & 16777215) === 559903) {\n const header = decompressPartialGzip(fileBytes, 4);\n const gView = new DataView(header.buffer);\n if (gView.getUint32(0, true) === 1347635022) {\n return SplatFileType.SPZ;\n }\n return void 0;\n }\n if (magic === 67324752) {\n if (tryPcSogsZip(fileBytes)) {\n return SplatFileType.PCSOGSZIP;\n }\n return void 0;\n }\n if (magic === 809779538) {\n return SplatFileType.RAD;\n }\n return void 0;\n }\n function getFileExtension(pathOrUrl) {\n const noTrailing = pathOrUrl.split(/[?#]/, 1)[0];\n const lastSlash = Math.max(\n noTrailing.lastIndexOf("/"),\n noTrailing.lastIndexOf("\\\\")\n );\n const filename = noTrailing.slice(lastSlash + 1);\n const lastDot = filename.lastIndexOf(".");\n if (lastDot <= 0 || lastDot === filename.length - 1) {\n return "";\n }\n return filename.slice(lastDot + 1).toLowerCase();\n }\n function getSplatFileTypeFromPath(pathOrUrl) {\n const extension = getFileExtension(pathOrUrl);\n if (extension === "ply") {\n return SplatFileType.PLY;\n }\n if (extension === "spz") {\n return SplatFileType.SPZ;\n }\n if (extension === "splat") {\n return SplatFileType.SPLAT;\n }\n if (extension === "ksplat") {\n return SplatFileType.KSPLAT;\n }\n if (extension === "sog") {\n return SplatFileType.PCSOGSZIP;\n }\n if (extension === "rad") {\n return SplatFileType.RAD;\n }\n return void 0;\n }\n function tryPcSogs(input) {\n try {\n let text;\n if (typeof input === "string") {\n text = input;\n } else {\n const fileBytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n if (fileBytes.length > 65536) {\n return void 0;\n }\n text = new TextDecoder().decode(fileBytes);\n }\n const json = JSON.parse(text);\n if (!json || typeof json !== "object" || Array.isArray(json)) {\n return void 0;\n }\n const isVersion2 = json.version === 2;\n for (const key of ["means", "scales", "quats", "sh0"]) {\n if (!json[key] || typeof json[key] !== "object" || Array.isArray(json[key])) {\n return void 0;\n }\n if (isVersion2) {\n if (!json[key].files) {\n return void 0;\n }\n if ((key === "scales" || key === "sh0") && !json[key].codebook) {\n return void 0;\n }\n if (key === "means" && (!json[key].mins || !json[key].maxs)) {\n return void 0;\n }\n } else {\n if (!json[key].shape || !json[key].files) {\n return void 0;\n }\n if (key !== "quats" && (!json[key].mins || !json[key].maxs)) {\n return void 0;\n }\n }\n }\n return json;\n } catch {\n return void 0;\n }\n }\n function tryPcSogsZip(input) {\n try {\n const fileBytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let metaFilename = null;\n const unzipped = unzipSync(fileBytes, {\n filter: ({ name }) => {\n const filename = name.split(/[\\\\/]/).pop();\n if (filename === "meta.json") {\n metaFilename = name;\n return true;\n }\n return false;\n }\n });\n if (!metaFilename) {\n return void 0;\n }\n const json = tryPcSogs(unzipped[metaFilename]);\n if (!json) {\n return void 0;\n }\n return { name: metaFilename, json };\n } catch {\n return void 0;\n }\n }\n class SplatData {\n constructor({ maxSplats = 1 } = {}) {\n this.numSplats = 0;\n this.maxSplats = getTextureSize(maxSplats).maxSplats;\n this.centers = new Float32Array(this.maxSplats * 3);\n this.scales = new Float32Array(this.maxSplats * 3);\n this.quaternions = new Float32Array(this.maxSplats * 4);\n this.opacities = new Float32Array(this.maxSplats);\n this.colors = new Float32Array(this.maxSplats * 3);\n }\n pushSplat() {\n const index = this.numSplats;\n this.ensureIndex(index);\n this.numSplats += 1;\n return index;\n }\n unpushSplat(index) {\n if (index === this.numSplats - 1) {\n this.numSplats -= 1;\n } else {\n throw new Error("Cannot unpush splat from non-last position");\n }\n }\n ensureCapacity(numSplats) {\n if (numSplats > this.maxSplats) {\n const targetSplats = Math.max(numSplats, this.maxSplats * 2);\n const newCenters = new Float32Array(targetSplats * 3);\n const newScales = new Float32Array(targetSplats * 3);\n const newQuaternions = new Float32Array(targetSplats * 4);\n const newOpacities = new Float32Array(targetSplats);\n const newColors = new Float32Array(targetSplats * 3);\n newCenters.set(this.centers);\n newScales.set(this.scales);\n newQuaternions.set(this.quaternions);\n newOpacities.set(this.opacities);\n newColors.set(this.colors);\n this.centers = newCenters;\n this.scales = newScales;\n this.quaternions = newQuaternions;\n this.opacities = newOpacities;\n this.colors = newColors;\n if (this.sh1) {\n const newSh1 = new Float32Array(targetSplats * 9);\n newSh1.set(this.sh1);\n this.sh1 = newSh1;\n }\n if (this.sh2) {\n const newSh2 = new Float32Array(targetSplats * 15);\n newSh2.set(this.sh2);\n this.sh2 = newSh2;\n }\n if (this.sh3) {\n const newSh3 = new Float32Array(targetSplats * 21);\n newSh3.set(this.sh3);\n this.sh3 = newSh3;\n }\n this.maxSplats = targetSplats;\n }\n }\n ensureIndex(index) {\n this.ensureCapacity(index + 1);\n }\n setCenter(index, x2, y, z) {\n this.centers[index * 3] = x2;\n this.centers[index * 3 + 1] = y;\n this.centers[index * 3 + 2] = z;\n }\n setScale(index, scaleX, scaleY, scaleZ) {\n this.scales[index * 3] = scaleX;\n this.scales[index * 3 + 1] = scaleY;\n this.scales[index * 3 + 2] = scaleZ;\n }\n setQuaternion(index, x2, y, z, w) {\n this.quaternions[index * 4] = x2;\n this.quaternions[index * 4 + 1] = y;\n this.quaternions[index * 4 + 2] = z;\n this.quaternions[index * 4 + 3] = w;\n }\n setOpacity(index, opacity) {\n this.opacities[index] = opacity;\n }\n setColor(index, r, g, b) {\n this.colors[index * 3] = r;\n this.colors[index * 3 + 1] = g;\n this.colors[index * 3 + 2] = b;\n }\n setSh1(index, sh1) {\n if (!this.sh1) {\n this.sh1 = new Float32Array(this.maxSplats * 9);\n }\n for (let j = 0; j < 9; ++j) {\n this.sh1[index * 9 + j] = sh1[j];\n }\n }\n setSh2(index, sh2) {\n if (!this.sh2) {\n this.sh2 = new Float32Array(this.maxSplats * 15);\n }\n for (let j = 0; j < 15; ++j) {\n this.sh2[index * 15 + j] = sh2[j];\n }\n }\n setSh3(index, sh3) {\n if (!this.sh3) {\n this.sh3 = new Float32Array(this.maxSplats * 21);\n }\n for (let j = 0; j < 21; ++j) {\n this.sh3[index * 21 + j] = sh3[j];\n }\n }\n }\n async function unpackPcSogs(json, extraFiles, splatEncoding) {\n const isVersion2 = "version" in json;\n if (!isVersion2 && json.quats.encoding !== "quaternion_packed") {\n throw new Error("Unsupported quaternion encoding");\n }\n const numSplats = isVersion2 ? json.count : json.means.shape[0];\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra = {};\n const meansPromise = Promise.all([\n decodeImageRgba(extraFiles[json.means.files[0]]),\n decodeImageRgba(extraFiles[json.means.files[1]])\n ]).then((means) => {\n for (let i2 = 0; i2 < numSplats; ++i2) {\n const i4 = i2 * 4;\n const fx = (means[0][i4 + 0] + (means[1][i4 + 0] << 8)) / 65535;\n const fy = (means[0][i4 + 1] + (means[1][i4 + 1] << 8)) / 65535;\n const fz = (means[0][i4 + 2] + (means[1][i4 + 2] << 8)) / 65535;\n let x2 = json.means.mins[0] + (json.means.maxs[0] - json.means.mins[0]) * fx;\n let y = json.means.mins[1] + (json.means.maxs[1] - json.means.mins[1]) * fy;\n let z = json.means.mins[2] + (json.means.maxs[2] - json.means.mins[2]) * fz;\n x2 = Math.sign(x2) * (Math.exp(Math.abs(x2)) - 1);\n y = Math.sign(y) * (Math.exp(Math.abs(y)) - 1);\n z = Math.sign(z) * (Math.exp(Math.abs(z)) - 1);\n setPackedSplatCenter(packedArray, i2, x2, y, z);\n }\n });\n const scalesPromise = decodeImageRgba(extraFiles[json.scales.files[0]]).then(\n (scales) => {\n let xLookup;\n let yLookup;\n let zLookup;\n if (isVersion2) {\n xLookup = yLookup = zLookup = json.scales.codebook.map((x2) => Math.exp(x2));\n } else {\n xLookup = new Array(256).fill(0).map(\n (_, i2) => json.scales.mins[0] + (json.scales.maxs[0] - json.scales.mins[0]) * (i2 / 255)\n ).map((x2) => Math.exp(x2));\n yLookup = new Array(256).fill(0).map(\n (_, i2) => json.scales.mins[1] + (json.scales.maxs[1] - json.scales.mins[1]) * (i2 / 255)\n ).map((x2) => Math.exp(x2));\n zLookup = new Array(256).fill(0).map(\n (_, i2) => json.scales.mins[2] + (json.scales.maxs[2] - json.scales.mins[2]) * (i2 / 255)\n ).map((x2) => Math.exp(x2));\n }\n for (let i2 = 0; i2 < numSplats; ++i2) {\n const i4 = i2 * 4;\n setPackedSplatScales(\n packedArray,\n i2,\n xLookup[scales[i4 + 0]],\n yLookup[scales[i4 + 1]],\n zLookup[scales[i4 + 2]],\n splatEncoding\n );\n }\n }\n );\n const quatsPromise = decodeImageRgba(extraFiles[json.quats.files[0]]).then(\n (quats) => {\n const SQRT2 = Math.sqrt(2);\n const lookup = new Array(256).fill(0).map((_, i2) => (i2 / 255 - 0.5) * SQRT2);\n for (let i2 = 0; i2 < numSplats; ++i2) {\n const i4 = i2 * 4;\n const r0 = lookup[quats[i4 + 0]];\n const r1 = lookup[quats[i4 + 1]];\n const r2 = lookup[quats[i4 + 2]];\n const rr = Math.sqrt(Math.max(0, 1 - r0 * r0 - r1 * r1 - r2 * r2));\n const rOrder = quats[i4 + 3] - 252;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n setPackedSplatQuat(packedArray, i2, quatX, quatY, quatZ, quatW);\n }\n }\n );\n const sh0Promise = decodeImageRgba(extraFiles[json.sh0.files[0]]).then(\n (sh0) => {\n const SH_C02 = 0.28209479177387814;\n let rLookup;\n let gLookup;\n let bLookup;\n let aLookup;\n if (isVersion2) {\n rLookup = gLookup = bLookup = json.sh0.codebook.map((x2) => SH_C02 * x2 + 0.5);\n aLookup = new Array(256).fill(0).map((_, i2) => i2 / 255);\n } else {\n rLookup = new Array(256).fill(0).map(\n (_, i2) => json.sh0.mins[0] + (json.sh0.maxs[0] - json.sh0.mins[0]) * (i2 / 255)\n ).map((x2) => SH_C02 * x2 + 0.5);\n gLookup = new Array(256).fill(0).map(\n (_, i2) => json.sh0.mins[1] + (json.sh0.maxs[1] - json.sh0.mins[1]) * (i2 / 255)\n ).map((x2) => SH_C02 * x2 + 0.5);\n bLookup = new Array(256).fill(0).map(\n (_, i2) => json.sh0.mins[2] + (json.sh0.maxs[2] - json.sh0.mins[2]) * (i2 / 255)\n ).map((x2) => SH_C02 * x2 + 0.5);\n aLookup = new Array(256).fill(0).map(\n (_, i2) => json.sh0.mins[3] + (json.sh0.maxs[3] - json.sh0.mins[3]) * (i2 / 255)\n ).map((x2) => 1 / (1 + Math.exp(-x2)));\n }\n for (let i2 = 0; i2 < numSplats; ++i2) {\n const i4 = i2 * 4;\n setPackedSplatRgba(\n packedArray,\n i2,\n rLookup[sh0[i4 + 0]],\n gLookup[sh0[i4 + 1]],\n bLookup[sh0[i4 + 2]],\n aLookup[sh0[i4 + 3]],\n splatEncoding\n );\n }\n }\n );\n const promises = [meansPromise, scalesPromise, quatsPromise, sh0Promise];\n if (json.shN) {\n const useSH3 = isVersion2 ? json.shN.bands >= 3 : json.shN.shape[1] >= 48 - 3;\n const useSH2 = isVersion2 ? json.shN.bands >= 2 : json.shN.shape[1] >= 27 - 3;\n const useSH1 = isVersion2 ? json.shN.bands >= 1 : json.shN.shape[1] >= 12 - 3;\n if (useSH1) extra.sh1 = new Uint32Array(numSplats * 2);\n if (useSH2) extra.sh2 = new Uint32Array(numSplats * 4);\n if (useSH3) extra.sh3 = new Uint32Array(numSplats * 4);\n const sh1 = new Float32Array(9);\n const sh2 = new Float32Array(15);\n const sh3 = new Float32Array(21);\n const shN = json.shN;\n const shNPromise = Promise.all([\n decodeImage(extraFiles[json.shN.files[0]]),\n decodeImage(extraFiles[json.shN.files[1]])\n ]).then(([centroids, labels]) => {\n const lookup = "codebook" in shN ? shN.codebook : new Array(256).fill(0).map((_, i2) => shN.mins + (shN.maxs - shN.mins) * (i2 / 255));\n for (let i2 = 0; i2 < numSplats; ++i2) {\n const i4 = i2 * 4;\n const label = labels.rgba[i4 + 0] + (labels.rgba[i4 + 1] << 8);\n const col = (label & 63) * 15;\n const row = label >>> 6;\n const offset = row * centroids.width + col;\n for (let d = 0; d < 3; ++d) {\n if (useSH1) {\n for (let k = 0; k < 3; ++k) {\n sh1[k * 3 + d] = lookup[centroids.rgba[(offset + k) * 4 + d]];\n }\n }\n if (useSH2) {\n for (let k = 0; k < 5; ++k) {\n sh2[k * 3 + d] = lookup[centroids.rgba[(offset + 3 + k) * 4 + d]];\n }\n }\n if (useSH3) {\n for (let k = 0; k < 7; ++k) {\n sh3[k * 3 + d] = lookup[centroids.rgba[(offset + 8 + k) * 4 + d]];\n }\n }\n }\n if (useSH1)\n encodeSh1Rgb(extra.sh1, i2, sh1, splatEncoding);\n if (useSH2)\n encodeSh2Rgb(extra.sh2, i2, sh2, splatEncoding);\n if (useSH3)\n encodeSh3Rgb(extra.sh3, i2, sh3, splatEncoding);\n }\n });\n promises.push(shNPromise);\n }\n await Promise.all(promises);\n return { packedArray, numSplats, extra };\n }\n let offscreenGlContext = null;\n async function decodeImage(fileBytes) {\n if (!offscreenGlContext) {\n const canvas = new OffscreenCanvas(1, 1);\n offscreenGlContext = canvas.getContext("webgl2");\n if (!offscreenGlContext) {\n throw new Error("Failed to create WebGL2 context");\n }\n }\n const imageBlob = new Blob([fileBytes]);\n const bitmap = await createImageBitmap(imageBlob, {\n premultiplyAlpha: "none"\n });\n const gl = offscreenGlContext;\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, bitmap);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n const framebuffer = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0,\n gl.TEXTURE_2D,\n texture,\n 0\n );\n const data = new Uint8Array(bitmap.width * bitmap.height * 4);\n gl.readPixels(\n 0,\n 0,\n bitmap.width,\n bitmap.height,\n gl.RGBA,\n gl.UNSIGNED_BYTE,\n data\n );\n gl.deleteTexture(texture);\n gl.deleteFramebuffer(framebuffer);\n return { rgba: data, width: bitmap.width, height: bitmap.height };\n }\n async function decodeImageRgba(fileBytes) {\n const { rgba } = await decodeImage(fileBytes);\n return rgba;\n }\n async function unpackPcSogsZip(fileBytes, splatEncoding) {\n var _a2;\n const nameJson = tryPcSogsZip(fileBytes);\n if (!nameJson) {\n throw new Error("Invalid PC SOGS zip file");\n }\n const { name, json } = nameJson;\n const lastSlash = name.lastIndexOf("/");\n const lastBackslash = name.lastIndexOf("\\\\");\n const prefix = name.slice(0, Math.max(lastSlash, lastBackslash) + 1);\n const fileMap = /* @__PURE__ */ new Map();\n const refFiles = [\n ...json.means.files,\n ...json.scales.files,\n ...json.quats.files,\n ...json.sh0.files,\n ...((_a2 = json.shN) == null ? void 0 : _a2.files) ?? []\n ];\n for (const file of refFiles) {\n fileMap.set(prefix + file, file);\n }\n const unzipped = await new Promise(\n (resolve, reject) => {\n unzip(\n fileBytes,\n {\n filter: ({ name: name2 }) => {\n return fileMap.has(name2);\n }\n },\n (err2, files) => {\n if (err2) {\n reject(err2);\n } else {\n resolve(files);\n }\n }\n );\n }\n );\n const extraFiles = {};\n for (const [full, name2] of fileMap.entries()) {\n extraFiles[name2] = unzipped[full];\n }\n return await unpackPcSogs(json, extraFiles, splatEncoding);\n }\n async function onMessage(event) {\n const { name, args, id } = event.data;\n let result = void 0;\n let error = void 0;\n try {\n switch (name) {\n case "unpackPly": {\n const { packedArray, fileBytes, splatEncoding } = args;\n const decoded = await unpackPly({\n packedArray,\n fileBytes,\n splatEncoding\n });\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra\n };\n break;\n }\n case "decodeSpz": {\n const { fileBytes, splatEncoding } = args;\n const decoded = await unpackSpz(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra\n };\n break;\n }\n case "decodeAntiSplat": {\n const { fileBytes, splatEncoding } = args;\n const decoded = unpackAntiSplat(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray\n };\n break;\n }\n case "decodeKsplat": {\n const { fileBytes, splatEncoding } = args;\n const decoded = unpackKsplat(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra\n };\n break;\n }\n case "decodePcSogs": {\n const { fileBytes, extraFiles, splatEncoding } = args;\n const json = JSON.parse(\n new TextDecoder().decode(fileBytes)\n );\n const decoded = await unpackPcSogs(json, extraFiles, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra\n };\n break;\n }\n case "decodePcSogsZip": {\n const { fileBytes, splatEncoding } = args;\n const decoded = await unpackPcSogsZip(fileBytes, splatEncoding);\n result = {\n id,\n numSplats: decoded.numSplats,\n packedArray: decoded.packedArray,\n extra: decoded.extra\n };\n break;\n }\n case "sortSplats": {\n const { totalSplats, readback, ordering } = args;\n result = {\n id,\n readback,\n ...sortSplats({ totalSplats, readback, ordering })\n };\n break;\n }\n case "sortDoubleSplats": {\n const { numSplats, readback, ordering } = args;\n {\n result = {\n id,\n readback,\n ordering,\n activeSplats: sort_splats(numSplats, readback, ordering)\n };\n }\n break;\n }\n case "sort32Splats": {\n const { numSplats, readback, ordering } = args;\n {\n result = {\n id,\n readback,\n ordering,\n activeSplats: sort32_splats(numSplats, readback, ordering)\n };\n }\n break;\n }\n case "transcodeSpz": {\n const input = args;\n const spzBytes = await transcodeSpz(input);\n result = {\n id,\n fileBytes: spzBytes,\n input\n };\n break;\n }\n default: {\n throw new Error(`Unknown name: ${name}`);\n }\n }\n } catch (e) {\n error = e;\n console.error(error);\n }\n self.postMessage(\n { id, result, error },\n { transfer: getTransferable(result) }\n );\n }\n async function unpackPly({\n packedArray,\n fileBytes,\n splatEncoding\n }) {\n const ply = new PlyReader({ fileBytes });\n await ply.parseHeader();\n const numSplats = ply.numSplats;\n const extra = {};\n ply.parseSplats(\n (index, x2, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b) => {\n setPackedSplat(\n packedArray,\n index,\n x2,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding\n );\n },\n (index, sh1, sh2, sh3) => {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n encodeSh1Rgb(extra.sh1, index, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n encodeSh2Rgb(extra.sh2, index, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n encodeSh3Rgb(extra.sh3, index, sh3, splatEncoding);\n }\n }\n );\n return { packedArray, numSplats, extra };\n }\n async function unpackSpz(fileBytes, splatEncoding) {\n const spz = new SpzReader({ fileBytes });\n await spz.parseHeader();\n const numSplats = spz.numSplats;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra = {};\n let extraCallbacks = {};\n if (spz.flagLod) {\n const childCounts = new Uint16Array(numSplats);\n const childStarts = new Uint32Array(numSplats);\n extra.childCounts = childCounts;\n extra.childStarts = childStarts;\n extraCallbacks = {\n childCounts: (index, count) => {\n childCounts[index] = count;\n },\n childStarts: (index, start) => {\n childStarts[index] = start;\n }\n };\n }\n await spz.parseSplats(\n (index, x2, y, z) => {\n setPackedSplatCenter(packedArray, index, x2, y, z);\n },\n (index, alpha) => {\n setPackedSplatOpacity(packedArray, index, alpha);\n },\n (index, r, g, b) => {\n setPackedSplatRgb(packedArray, index, r, g, b, splatEncoding);\n },\n (index, scaleX, scaleY, scaleZ) => {\n setPackedSplatScales(\n packedArray,\n index,\n scaleX,\n scaleY,\n scaleZ,\n splatEncoding\n );\n },\n (index, quatX, quatY, quatZ, quatW) => {\n setPackedSplatQuat(packedArray, index, quatX, quatY, quatZ, quatW);\n },\n (index, sh1, sh2, sh3) => {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n encodeSh1Rgb(extra.sh1, index, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n encodeSh2Rgb(extra.sh2, index, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n encodeSh3Rgb(extra.sh3, index, sh3, splatEncoding);\n }\n },\n extraCallbacks\n );\n return { packedArray, numSplats, extra };\n }\n const DEPTH_INFINITY_F16 = 31744;\n const DEPTH_SIZE_16 = DEPTH_INFINITY_F16 + 1;\n let depthArray16 = null;\n function sortSplats({\n totalSplats,\n readback,\n ordering\n }) {\n if (!depthArray16) {\n depthArray16 = new Uint32Array(DEPTH_SIZE_16);\n }\n depthArray16.fill(0);\n const readbackUint32 = readback.map((layer) => new Uint32Array(layer.buffer));\n const layerSize = readbackUint32[0].length;\n const numLayers = Math.ceil(totalSplats / layerSize);\n let layerBase = 0;\n for (let layer = 0; layer < numLayers; ++layer) {\n const readbackLayer = readbackUint32[layer];\n const layerSplats = Math.min(readbackLayer.length, totalSplats - layerBase);\n for (let i2 = 0; i2 < layerSplats; ++i2) {\n const pri = readbackLayer[i2] & 32767;\n if (pri < DEPTH_INFINITY_F16) {\n depthArray16[pri] += 1;\n }\n }\n layerBase += layerSplats;\n }\n let activeSplats = 0;\n for (let j = 0; j < DEPTH_SIZE_16; ++j) {\n const nextIndex = activeSplats + depthArray16[j];\n depthArray16[j] = activeSplats;\n activeSplats = nextIndex;\n }\n layerBase = 0;\n for (let layer = 0; layer < numLayers; ++layer) {\n const readbackLayer = readbackUint32[layer];\n const layerSplats = Math.min(readbackLayer.length, totalSplats - layerBase);\n for (let i2 = 0; i2 < layerSplats; ++i2) {\n const pri = readbackLayer[i2] & 32767;\n if (pri < DEPTH_INFINITY_F16) {\n ordering[depthArray16[pri]] = layerBase + i2;\n depthArray16[pri] += 1;\n }\n }\n layerBase += layerSplats;\n }\n if (depthArray16[DEPTH_SIZE_16 - 1] !== activeSplats) {\n throw new Error(\n `Expected ${activeSplats} active splats but got ${depthArray16[DEPTH_SIZE_16 - 1]}`\n );\n }\n return { activeSplats, ordering };\n }\n const messageBuffer = [];\n function bufferMessage(event) {\n messageBuffer.push(event);\n }\n async function initialize() {\n self.addEventListener("message", bufferMessage);\n await __wbg_init();\n self.removeEventListener("message", bufferMessage);\n self.addEventListener("message", onMessage);\n for (const event of messageBuffer) {\n onMessage(event);\n }\n messageBuffer.length = 0;\n }\n initialize().catch(console.error);\n})();\n//# sourceMappingURL=oldWorker-DUF0ALOS.js.map\n'; -const blob$1 = typeof self !== "undefined" && self.Blob && new Blob([jsContent$1], { type: "text/javascript;charset=utf-8" }); -function WorkerWrapper$1(options) { - let objURL; - try { - objURL = blob$1 && (self.URL || self.webkitURL).createObjectURL(blob$1); - if (!objURL) throw ""; - const worker = new Worker(objURL, { - name: options == null ? void 0 : options.name - }); - worker.addEventListener("error", () => { - (self.URL || self.webkitURL).revokeObjectURL(objURL); - }); - return worker; - } catch (e) { - return new Worker( - "data:text/javascript;charset=utf-8," + encodeURIComponent(jsContent$1), - { - name: options == null ? void 0 : options.name - } - ); - } finally { - objURL && (self.URL || self.webkitURL).revokeObjectURL(objURL); - } +const LN_SCALE_MIN = -12; +const LN_SCALE_MAX = 9; +const SCALE_MIN = Math.exp(LN_SCALE_MIN); +const SCALE_MAX = Math.exp(LN_SCALE_MAX); +const LN_SCALE_ZERO = -30; +const SCALE_ZERO = Math.exp(LN_SCALE_ZERO); +const SPLAT_TEX_WIDTH_BITS = 11; +const SPLAT_TEX_HEIGHT_BITS = 11; +const SPLAT_TEX_DEPTH_BITS = 11; +const SPLAT_TEX_LAYER_BITS = SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS; +const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS; +const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS; +const SPLAT_TEX_DEPTH = 1 << SPLAT_TEX_DEPTH_BITS; +const SPLAT_TEX_MIN_HEIGHT = 1; +const SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1; +const SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1; +const SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1; +const WASM_SPLAT_SORT = true; +const USE_COMPILED_PARSER_FUNCTION = true; +var SplatFileType = /* @__PURE__ */ ((SplatFileType2) => { + SplatFileType2["PLY"] = "ply"; + SplatFileType2["SPZ"] = "spz"; + SplatFileType2["SPLAT"] = "splat"; + SplatFileType2["KSPLAT"] = "ksplat"; + SplatFileType2["PCSOGS"] = "pcsogs"; + SplatFileType2["PCSOGSZIP"] = "pcsogszip"; + SplatFileType2["RAD"] = "rad"; + return SplatFileType2; +})(SplatFileType || {}); +const DEFAULT_SPLAT_ENCODING = { + rgbMin: 0, + rgbMax: 1, + lnScaleMin: LN_SCALE_MIN, + lnScaleMax: LN_SCALE_MAX, + sh1Max: 1, + sh2Max: 1, + sh3Max: 1, + lodOpacity: false +}; +const defines = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + DEFAULT_SPLAT_ENCODING, + LN_SCALE_MAX, + LN_SCALE_MIN, + LN_SCALE_ZERO, + SCALE_MAX, + SCALE_MIN, + SCALE_ZERO, + SPLAT_TEX_DEPTH, + SPLAT_TEX_DEPTH_BITS, + SPLAT_TEX_DEPTH_MASK, + SPLAT_TEX_HEIGHT, + SPLAT_TEX_HEIGHT_BITS, + SPLAT_TEX_HEIGHT_MASK, + SPLAT_TEX_LAYER_BITS, + SPLAT_TEX_MIN_HEIGHT, + SPLAT_TEX_WIDTH, + SPLAT_TEX_WIDTH_BITS, + SPLAT_TEX_WIDTH_MASK, + SplatFileType, + USE_COMPILED_PARSER_FUNCTION, + WASM_SPLAT_SORT +}, Symbol.toStringTag, { value: "Module" })); +function isBoolType(type) { + return type === "bool" || type === "bvec2" || type === "bvec3" || type === "bvec4"; } -var u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array; -var fleb = new u8([ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 3, - 4, - 4, - 4, - 4, - 5, - 5, - 5, - 5, - 0, - /* unused */ - 0, - 0, - /* impossible */ - 0 -]); -var fdeb = new u8([ - 0, - 0, - 0, - 0, - 1, - 1, - 2, - 2, - 3, - 3, - 4, - 4, - 5, - 5, - 6, - 6, - 7, - 7, - 8, - 8, - 9, - 9, - 10, - 10, - 11, - 11, - 12, - 12, - 13, - 13, - /* unused */ - 0, - 0 -]); -var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); -var freb = function(eb, start) { - var b = new u16(31); - for (var i = 0; i < 31; ++i) { - b[i] = start += 1 << eb[i - 1]; - } - var r = new i32(b[30]); - for (var i = 1; i < 30; ++i) { - for (var j = b[i]; j < b[i + 1]; ++j) { - r[j] = j - b[i] << 5 | i; - } +function isScalarType(type) { + return type === "int" || type === "uint" || type === "float"; +} +function isIntType(type) { + return type === "int" || type === "ivec2" || type === "ivec3" || type === "ivec4"; +} +function isUintType(type) { + return type === "uint" || type === "uvec2" || type === "uvec3" || type === "uvec4"; +} +function isFloatType(type) { + return type === "float" || type === "vec2" || type === "vec3" || type === "vec4"; +} +function isMatFloatType(type) { + return type === "mat2" || type === "mat2x2" || type === "mat2x3" || type === "mat2x4" || type === "mat3" || type === "mat3x2" || type === "mat3x3" || type === "mat3x4" || type === "mat4" || type === "mat4x2" || type === "mat4x3" || type === "mat4x4"; +} +function isAllFloatType(type) { + return isFloatType(type) || isMatFloatType(type); +} +function isVector2Type(type) { + return type === "vec2" || type === "ivec2" || type === "uvec2"; +} +function isVector3Type(type) { + return type === "vec3" || type === "ivec3" || type === "uvec3"; +} +function isVector4Type(type) { + return type === "vec4" || type === "ivec4" || type === "uvec4"; +} +function isVectorType(type) { + return isVector2Type(type) || isVector3Type(type) || isVector4Type(type); +} +function isMat2(type) { + return type === "mat2" || type === "mat2x2"; +} +function isMat3(type) { + return type === "mat3" || type === "mat3x3"; +} +function isMat4(type) { + return type === "mat4" || type === "mat4x4"; +} +function vectorElementType(type) { + switch (type) { + case "vec2": + return "float"; + case "vec3": + return "float"; + case "vec4": + return "float"; + case "ivec2": + return "int"; + case "ivec3": + return "int"; + case "ivec4": + return "int"; + case "uvec2": + return "uint"; + case "uvec3": + return "uint"; + case "uvec4": + return "uint"; + default: + throw new Error(`Invalid vector type: ${type}`); } - return { b, r }; -}; -var _a = freb(fleb, 2), fl = _a.b, revfl = _a.r; -fl[28] = 258, revfl[258] = 28; -var _b = freb(fdeb, 0), fd = _b.b; -var rev = new u16(32768); -for (var i = 0; i < 32768; ++i) { - var x = (i & 43690) >> 1 | (i & 21845) << 1; - x = (x & 52428) >> 2 | (x & 13107) << 2; - x = (x & 61680) >> 4 | (x & 3855) << 4; - rev[i] = ((x & 65280) >> 8 | (x & 255) << 8) >> 1; } -var hMap = function(cd, mb, r) { - var s = cd.length; - var i = 0; - var l = new u16(mb); - for (; i < s; ++i) { - if (cd[i]) - ++l[cd[i] - 1]; +function vectorDim(type) { + switch (type) { + case "vec2": + case "ivec2": + case "uvec2": + return 2; + case "vec3": + case "ivec3": + case "uvec3": + return 3; + case "vec4": + case "ivec4": + case "uvec4": + return 4; + default: + throw new Error(`Invalid vector type: ${type}`); } - var le = new u16(mb); - for (i = 1; i < mb; ++i) { - le[i] = le[i - 1] + l[i - 1] << 1; +} +function sameSizeVec(type) { + if (isScalarType(type)) { + return "float"; } - var co; - if (r) { - co = new u16(1 << mb); - var rvb = 15 - mb; - for (i = 0; i < s; ++i) { - if (cd[i]) { - var sv = i << 4 | cd[i]; - var r_1 = mb - cd[i]; - var v = le[cd[i] - 1]++ << r_1; - for (var m = v | (1 << r_1) - 1; v <= m; ++v) { - co[rev[v] >> rvb] = sv; + if (isVector2Type(type)) { + return "vec2"; + } + if (isVector3Type(type)) { + return "vec3"; + } + if (isVector4Type(type)) { + return "vec4"; + } + throw new Error(`Invalid vector type: ${type}`); +} +function sameSizeUvec(type) { + if (isScalarType(type)) { + return "uint"; + } + if (isVector2Type(type)) { + return "uvec2"; + } + if (isVector3Type(type)) { + return "uvec3"; + } + if (isVector4Type(type)) { + return "uvec4"; + } + throw new Error(`Invalid vector type: ${type}`); +} +function sameSizeIvec(type) { + if (isScalarType(type)) { + return "int"; + } + if (isVector2Type(type)) { + return "ivec2"; + } + if (isVector3Type(type)) { + return "ivec3"; + } + if (isVector4Type(type)) { + return "ivec4"; + } + throw new Error(`Invalid vector type: ${type}`); +} +function typeLiteral(type) { + if (typeof type === "string") { + return type; + } + if (typeof type === "object" && type.type) { + return type.type; + } + throw new Error(`Invalid DynoType: ${String(type)}`); +} +function numberAsInt(value) { + return Math.trunc(value).toString(); +} +function numberAsUint(value) { + const v = Math.max(0, Math.trunc(value)); + return `${v.toString()}u`; +} +function numberAsFloat(value) { + return value === Number.POSITIVE_INFINITY ? "INFINITY" : value === Number.NEGATIVE_INFINITY ? "-INFINITY" : Number.isInteger(value) ? value.toFixed(1) : value.toString(); +} +function valType(val) { + if (val instanceof DynoValue) { + return val.type; + } + const value = val.dynoOut(); + return value.type; +} +class DynoValue { + constructor(type) { + this.__isDynoValue = true; + this.type = type; + } +} +class DynoOutput extends DynoValue { + constructor(dyno2, key) { + super(dyno2.outTypes[key]); + this.dyno = dyno2; + this.key = key; + } +} +class DynoLiteral extends DynoValue { + constructor(type, literal) { + super(type); + this.literal = literal; + } + getLiteral() { + return this.literal; + } +} +function dynoLiteral(type, literal) { + return new DynoLiteral(type, literal); +} +class DynoConst extends DynoLiteral { + constructor(type, value) { + super(type, ""); + this.value = value; + } + getLiteral() { + const { type, value } = this; + switch (type) { + case "bool": + return value ? "true" : "false"; + case "uint": + return numberAsUint(value); + case "int": + return numberAsInt(value); + case "float": + return numberAsFloat(value); + case "bvec2": { + const v = value; + return `bvec2(${v[0]}, ${v[1]})`; + } + case "uvec2": { + if (value instanceof THREE.Vector2) { + return `uvec2(${numberAsUint(value.x)}, ${numberAsUint(value.y)})`; } + const v = value; + return `uvec2(${numberAsUint(v[0])}, ${numberAsUint(v[1])})`; } - } - } else { - co = new u16(s); - for (i = 0; i < s; ++i) { - if (cd[i]) { - co[i] = rev[le[cd[i] - 1]++] >> 15 - cd[i]; + case "ivec2": { + if (value instanceof THREE.Vector2) { + return `ivec2(${numberAsInt(value.x)}, ${numberAsInt(value.y)})`; + } + const v = value; + return `ivec2(${numberAsInt(v[0])}, ${numberAsInt(v[1])})`; } - } - } - return co; -}; -var flt = new u8(288); -for (var i = 0; i < 144; ++i) - flt[i] = 8; -for (var i = 144; i < 256; ++i) - flt[i] = 9; -for (var i = 256; i < 280; ++i) - flt[i] = 7; -for (var i = 280; i < 288; ++i) - flt[i] = 8; -var fdt = new u8(32); -for (var i = 0; i < 32; ++i) - fdt[i] = 5; -var flrm = /* @__PURE__ */ hMap(flt, 9, 1); -var fdrm = /* @__PURE__ */ hMap(fdt, 5, 1); -var max$1 = function(a) { - var m = a[0]; - for (var i = 1; i < a.length; ++i) { - if (a[i] > m) - m = a[i]; - } - return m; -}; -var bits = function(d, p, m) { - var o = p / 8 | 0; - return (d[o] | d[o + 1] << 8) >> (p & 7) & m; -}; -var bits16 = function(d, p) { - var o = p / 8 | 0; - return (d[o] | d[o + 1] << 8 | d[o + 2] << 16) >> (p & 7); -}; -var shft = function(p) { - return (p + 7) / 8 | 0; -}; -var slc = function(v, s, e) { - if (s == null || s < 0) - s = 0; - if (e == null || e > v.length) - e = v.length; - return new u8(v.subarray(s, e)); -}; -var ec = [ - "unexpected EOF", - "invalid block type", - "invalid length/literal", - "invalid distance", - "stream finished", - "no stream handler", - , - "no callback", - "invalid UTF-8 data", - "extra field too long", - "date not in range 1980-2099", - "filename too long", - "stream finishing", - "invalid zip data" - // determined by unknown compression method -]; -var err = function(ind, msg, nt) { - var e = new Error(msg || ec[ind]); - e.code = ind; - if (Error.captureStackTrace) - Error.captureStackTrace(e, err); - if (!nt) - throw e; - return e; -}; -var inflt = function(dat, st, buf, dict) { - var sl = dat.length, dl = dict ? dict.length : 0; - if (!sl || st.f && !st.l) - return buf || new u8(0); - var noBuf = !buf; - var resize = noBuf || st.i != 2; - var noSt = st.i; - if (noBuf) - buf = new u8(sl * 3); - var cbuf = function(l2) { - var bl = buf.length; - if (l2 > bl) { - var nbuf = new u8(Math.max(bl * 2, l2)); - nbuf.set(buf); - buf = nbuf; - } - }; - var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n; - var tbts = sl * 8; - do { - if (!lm) { - final = bits(dat, pos, 1); - var type = bits(dat, pos + 1, 3); - pos += 3; - if (!type) { - var s = shft(pos) + 4, l = dat[s - 4] | dat[s - 3] << 8, t = s + l; - if (t > sl) { - if (noSt) - err(0); - break; + case "vec2": { + if (value instanceof THREE.Vector2) { + return `vec2(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)})`; } - if (resize) - cbuf(bt + l); - buf.set(dat.subarray(s, t), bt); - st.b = bt += l, st.p = pos = t * 8, st.f = final; - continue; - } else if (type == 1) - lm = flrm, dm = fdrm, lbt = 9, dbt = 5; - else if (type == 2) { - var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4; - var tl = hLit + bits(dat, pos + 5, 31) + 1; - pos += 14; - var ldt = new u8(tl); - var clt = new u8(19); - for (var i = 0; i < hcLen; ++i) { - clt[clim[i]] = bits(dat, pos + i * 3, 7); + const v = value; + return `vec2(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])})`; + } + case "bvec3": { + const v = value; + return `bvec3(${v[0]}, ${v[1]}, ${v[2]})`; + } + case "uvec3": { + if (value instanceof THREE.Vector3) { + return `uvec3(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)})`; } - pos += hcLen * 3; - var clb = max$1(clt), clbmsk = (1 << clb) - 1; - var clm = hMap(clt, clb, 1); - for (var i = 0; i < tl; ) { - var r = clm[bits(dat, pos, clbmsk)]; - pos += r & 15; - var s = r >> 4; - if (s < 16) { - ldt[i++] = s; - } else { - var c = 0, n = 0; - if (s == 16) - n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1]; - else if (s == 17) - n = 3 + bits(dat, pos, 7), pos += 3; - else if (s == 18) - n = 11 + bits(dat, pos, 127), pos += 7; - while (n--) - ldt[i++] = c; - } + const v = value; + return `uvec3(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])})`; + } + case "ivec3": { + if (value instanceof THREE.Vector3) { + return `ivec3(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)})`; } - var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit); - lbt = max$1(lt); - dbt = max$1(dt); - lm = hMap(lt, lbt, 1); - dm = hMap(dt, dbt, 1); - } else - err(1); - if (pos > tbts) { - if (noSt) - err(0); - break; + const v = value; + return `ivec3(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])})`; } - } - if (resize) - cbuf(bt + 131072); - var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1; - var lpos = pos; - for (; ; lpos = pos) { - var c = lm[bits16(dat, pos) & lms], sym = c >> 4; - pos += c & 15; - if (pos > tbts) { - if (noSt) - err(0); - break; + case "vec3": { + if (value instanceof THREE.Vector3) { + return `vec3(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)})`; + } + const v = value; + return `vec3(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])})`; } - if (!c) - err(2); - if (sym < 256) - buf[bt++] = sym; - else if (sym == 256) { - lpos = pos, lm = null; - break; - } else { - var add2 = sym - 254; - if (sym > 264) { - var i = sym - 257, b = fleb[i]; - add2 = bits(dat, pos, (1 << b) - 1) + fl[i]; - pos += b; + case "bvec4": { + const v = value; + return `bvec4(${v[0]}, ${v[1]}, ${v[2]}, ${v[3]})`; + } + case "uvec4": { + if (value instanceof THREE.Vector4) { + return `uvec4(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)}, ${numberAsUint(value.w)})`; } - var d = dm[bits16(dat, pos) & dms], dsym = d >> 4; - if (!d) - err(3); - pos += d & 15; - var dt = fd[dsym]; - if (dsym > 3) { - var b = fdeb[dsym]; - dt += bits16(dat, pos) & (1 << b) - 1, pos += b; + const v = value; + return `uvec4(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])}, ${numberAsUint(v[3])})`; + } + case "ivec4": { + if (value instanceof THREE.Vector4) { + return `ivec4(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)}, ${numberAsInt(value.w)})`; } - if (pos > tbts) { - if (noSt) - err(0); - break; + const v = value; + return `ivec4(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])}, ${numberAsInt(v[3])})`; + } + case "vec4": { + if (value instanceof THREE.Vector4) { + return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`; } - if (resize) - cbuf(bt + 131072); - var end = bt + add2; - if (bt < dt) { - var shift = dl - dt, dend = Math.min(dt, end); - if (shift + bt < 0) - err(3); - for (; bt < dend; ++bt) - buf[bt] = dict[shift + bt]; + if (value instanceof THREE.Quaternion) { + return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`; } - for (; bt < end; ++bt) - buf[bt] = buf[bt - dt]; + const v = value; + return `vec4(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])}, ${numberAsFloat(v[3])})`; + } + case "mat2": + case "mat2x2": { + const m = value; + const e = m instanceof THREE.Matrix2 ? m.elements : value; + const arg = new Array(4).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat2x3": { + const e = value; + const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat2x4": { + const e = value; + const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat3": + case "mat3x3": { + const m = value; + const e = m instanceof THREE.Matrix3 ? m.elements : value; + const arg = new Array(9).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat3x2": { + const e = value; + const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat3x4": { + const e = value; + const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat4": + case "mat4x4": { + const m = value; + const e = m instanceof THREE.Matrix4 ? m.elements : value; + const arg = new Array(16).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat4x2": { + const e = value; + const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; + } + case "mat4x3": { + const e = value; + const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i])); + return `${type}(${arg.join(", ")})`; } + default: + throw new Error(`Type not implemented: ${String(type)}`); } - st.l = lm, st.p = lpos, st.b = bt, st.f = final; - if (lm) - final = 1, st.m = lbt, st.d = dm, st.n = dbt; - } while (!final); - return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt); -}; -var et = /* @__PURE__ */ new u8(0); -var b2 = function(d, b) { - return d[b] | d[b + 1] << 8; -}; -var b4 = function(d, b) { - return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0; -}; -var b8 = function(d, b) { - return b4(d, b) + b4(d, b + 4) * 4294967296; -}; -var gzs = function(d) { - if (d[0] != 31 || d[1] != 139 || d[2] != 8) - err(6, "invalid gzip data"); - var flg = d[3]; - var st = 10; - if (flg & 4) - st += (d[10] | d[11] << 8) + 2; - for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++]) - ; - return st + (flg & 2); -}; -var Inflate = /* @__PURE__ */ function() { - function Inflate2(opts, cb) { - if (typeof opts == "function") - cb = opts, opts = {}; - this.ondata = cb; - var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768); - this.s = { i: 0, b: dict ? dict.length : 0 }; - this.o = new u8(32768); - this.p = new u8(0); - if (dict) - this.o.set(dict); } - Inflate2.prototype.e = function(c) { - if (!this.ondata) - err(5); - if (this.d) - err(4); - if (!this.p.length) - this.p = c; - else if (c.length) { - var n = new u8(this.p.length + c.length); - n.set(this.p), n.set(c, this.p.length), this.p = n; - } - }; - Inflate2.prototype.c = function(final) { - this.s.i = +(this.d = final || false); - var bts = this.s.b; - var dt = inflt(this.p, this.s, this.o); - this.ondata(slc(dt, bts, this.s.b), this.d); - this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length; - this.p = slc(this.p, this.s.p / 8 | 0), this.s.p &= 7; - }; - Inflate2.prototype.push = function(chunk, final) { - this.e(chunk), this.c(final); - }; - return Inflate2; -}(); -function inflateSync(data, opts) { - return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary); } -var Gunzip = /* @__PURE__ */ function() { - function Gunzip2(opts, cb) { - this.v = 1; - this.r = 0; - Inflate.call(this, opts, cb); - } - Gunzip2.prototype.push = function(chunk, final) { - Inflate.prototype.e.call(this, chunk); - this.r += chunk.length; - if (this.v) { - var p = this.p.subarray(this.v - 1); - var s = p.length > 3 ? gzs(p) : 4; - if (s > p.length) { - if (!final) - return; - } else if (this.v > 1 && this.onmember) { - this.onmember(this.r - p.length); - } - this.p = p.subarray(s), this.v = 0; - } - Inflate.prototype.c.call(this, final); - if (this.s.f && !this.s.l && !final) { - this.v = shft(this.s.p) + 9; - this.s = { i: 0 }; - this.o = new u8(0); - this.push(new u8(0), final); - } - }; - return Gunzip2; -}(); -var td = typeof TextDecoder != "undefined" && /* @__PURE__ */ new TextDecoder(); -var tds = 0; -try { - td.decode(et, { stream: true }); - tds = 1; -} catch (e) { +function dynoConst(type, value) { + return new DynoConst(type, value); } -var dutf8 = function(d) { - for (var r = "", i = 0; ; ) { - var c = d[i++]; - var eb = (c > 127) + (c > 223) + (c > 239); - if (i + eb > d.length) - return { s: r, r: slc(d, i - 1) }; - if (!eb) - r += String.fromCharCode(c); - else if (eb == 3) { - c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | d[i++] & 63) - 65536, r += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023); - } else if (eb & 1) - r += String.fromCharCode((c & 31) << 6 | d[i++] & 63); - else - r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | d[i++] & 63); +function literalZero(type) { + const typeString = String(type); + if (isBoolType(type)) { + return `${typeString}(false)`; } -}; -function strFromU8(dat, latin1) { - if (latin1) { - var r = ""; - for (var i = 0; i < dat.length; i += 16384) - r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384)); - return r; - } else if (td) { - return td.decode(dat); - } else { - var _a2 = dutf8(dat), s = _a2.s, r = _a2.r; - if (r.length) - err(8); - return s; + if (isAllFloatType(type)) { + return `${typeString}(0.0)`; + } + if (isIntType(type)) { + return `${typeString}(0)`; } + if (isUintType(type)) { + return `${typeString}(0u)`; + } + throw new Error(`Type not implemented: ${typeString}`); } -var slzh = function(d, b) { - return b + 30 + b2(d, b + 26) + b2(d, b + 28); -}; -var zh = function(d, b, z) { - var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20); - var _a2 = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a2[0], su = _a2[1], off = _a2[2]; - return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off]; -}; -var z64e = function(d, b) { - for (; b2(d, b) != 1; b += 4 + b2(d, b + 2)) - ; - return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)]; -}; -function unzipSync(data, opts) { - var files = {}; - var e = data.length - 22; - for (; b4(data, e) != 101010256; --e) { - if (!e || data.length - e > 65558) - err(13); +function literalOne(type) { + const typeString = String(type); + if (isBoolType(type)) { + return `${typeString}(true)`; } - var c = b2(data, e + 8); - if (!c) - return {}; - var o = b4(data, e + 16); - var z = o == 4294967295 || c == 65535; - if (z) { - var ze = b4(data, e - 12); - z = b4(data, ze) == 101075792; - if (z) { - c = b4(data, ze + 32); - o = b4(data, ze + 48); - } + if (isAllFloatType(type)) { + return `${typeString}(1.0)`; } - var fltr = opts && opts.filter; - for (var i = 0; i < c; ++i) { - var _a2 = zh(data, o, z), c_2 = _a2[0], sc = _a2[1], su = _a2[2], fn = _a2[3], no = _a2[4], off = _a2[5], b = slzh(data, off); - o = no; - if (!fltr || fltr({ - name: fn, - size: sc, - originalSize: su, - compression: c_2 - })) { - if (!c_2) - files[fn] = slc(data, b, b + sc); - else if (c_2 == 8) - files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) }); - else - err(14, "unknown compression type " + c_2); - } + if (isIntType(type)) { + return `${typeString}(1)`; } - return files; + if (isUintType(type)) { + return `${typeString}(1u)`; + } + throw new Error(`Type not implemented: ${typeString}`); } -const LN_SCALE_MIN = -12; -const LN_SCALE_MAX = 9; -const SCALE_MIN = Math.exp(LN_SCALE_MIN); -const SCALE_MAX = Math.exp(LN_SCALE_MAX); -const LN_SCALE_ZERO = -30; -const SCALE_ZERO = Math.exp(LN_SCALE_ZERO); -const SPLAT_TEX_WIDTH_BITS = 11; -const SPLAT_TEX_HEIGHT_BITS = 11; -const SPLAT_TEX_DEPTH_BITS = 11; -const SPLAT_TEX_LAYER_BITS = SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS; -const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS; -const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS; -const SPLAT_TEX_DEPTH = 1 << SPLAT_TEX_DEPTH_BITS; -const SPLAT_TEX_MIN_HEIGHT = 1; -const SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1; -const SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1; -const SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1; -const WASM_SPLAT_SORT = true; -const USE_COMPILED_PARSER_FUNCTION = true; -var SplatFileType = /* @__PURE__ */ ((SplatFileType2) => { - SplatFileType2["PLY"] = "ply"; - SplatFileType2["SPZ"] = "spz"; - SplatFileType2["SPLAT"] = "splat"; - SplatFileType2["KSPLAT"] = "ksplat"; - SplatFileType2["PCSOGS"] = "pcsogs"; - SplatFileType2["PCSOGSZIP"] = "pcsogszip"; - SplatFileType2["RAD"] = "rad"; - return SplatFileType2; -})(SplatFileType || {}); -const DEFAULT_SPLAT_ENCODING = { - rgbMin: 0, - rgbMax: 1, - lnScaleMin: LN_SCALE_MIN, - lnScaleMax: LN_SCALE_MAX, - sh1Max: 1, - sh2Max: 1, - sh3Max: 1, - lodOpacity: false -}; -const defines = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ - __proto__: null, - DEFAULT_SPLAT_ENCODING, - LN_SCALE_MAX, - LN_SCALE_MIN, - LN_SCALE_ZERO, - SCALE_MAX, - SCALE_MIN, - SCALE_ZERO, - SPLAT_TEX_DEPTH, - SPLAT_TEX_DEPTH_BITS, - SPLAT_TEX_DEPTH_MASK, - SPLAT_TEX_HEIGHT, - SPLAT_TEX_HEIGHT_BITS, - SPLAT_TEX_HEIGHT_MASK, - SPLAT_TEX_LAYER_BITS, - SPLAT_TEX_MIN_HEIGHT, - SPLAT_TEX_WIDTH, - SPLAT_TEX_WIDTH_BITS, - SPLAT_TEX_WIDTH_MASK, - SplatFileType, - USE_COMPILED_PARSER_FUNCTION, - WASM_SPLAT_SORT -}, Symbol.toStringTag, { value: "Module" })); -function isBoolType(type) { - return type === "bool" || type === "bvec2" || type === "bvec3" || type === "bvec4"; +function literalNegOne(type) { + const typeString = String(type); + if (isBoolType(type)) { + return `${typeString}(true)`; + } + if (isAllFloatType(type)) { + return `${typeString}(-1.0)`; + } + if (isIntType(type)) { + return `${typeString}(-1)`; + } + if (isUintType(type)) { + return `${typeString}(0xFFFFFFFFu)`; + } + throw new Error(`Type not implemented: ${typeString}`); } -function isScalarType(type) { - return type === "int" || type === "uint" || type === "float"; +const DEFAULT_INDENT = " "; +class Compilation { + constructor({ indent } = {}) { + this.globals = /* @__PURE__ */ new Set(); + this.statements = []; + this.uniforms = {}; + this.declares = /* @__PURE__ */ new Set(); + this.updaters = []; + this.sequence = 0; + this.indent = DEFAULT_INDENT; + this.indent = indent ?? DEFAULT_INDENT; + } + nextSequence() { + return this.sequence++; + } } -function isIntType(type) { - return type === "int" || type === "ivec2" || type === "ivec3" || type === "ivec4"; -} -function isUintType(type) { - return type === "uint" || type === "uvec2" || type === "uvec3" || type === "uvec4"; -} -function isFloatType(type) { - return type === "float" || type === "vec2" || type === "vec3" || type === "vec4"; -} -function isMatFloatType(type) { - return type === "mat2" || type === "mat2x2" || type === "mat2x3" || type === "mat2x4" || type === "mat3" || type === "mat3x2" || type === "mat3x3" || type === "mat3x4" || type === "mat4" || type === "mat4x2" || type === "mat4x3" || type === "mat4x4"; -} -function isAllFloatType(type) { - return isFloatType(type) || isMatFloatType(type); -} -function isVector2Type(type) { - return type === "vec2" || type === "ivec2" || type === "uvec2"; -} -function isVector3Type(type) { - return type === "vec3" || type === "ivec3" || type === "uvec3"; -} -function isVector4Type(type) { - return type === "vec4" || type === "ivec4" || type === "uvec4"; -} -function isVectorType(type) { - return isVector2Type(type) || isVector3Type(type) || isVector4Type(type); -} -function isMat2(type) { - return type === "mat2" || type === "mat2x2"; -} -function isMat3(type) { - return type === "mat3" || type === "mat3x3"; -} -function isMat4(type) { - return type === "mat4" || type === "mat4x4"; -} -function vectorElementType(type) { - switch (type) { - case "vec2": - return "float"; - case "vec3": - return "float"; - case "vec4": - return "float"; - case "ivec2": - return "int"; - case "ivec3": - return "int"; - case "ivec4": - return "int"; - case "uvec2": - return "uint"; - case "uvec3": - return "uint"; - case "uvec4": - return "uint"; - default: - throw new Error(`Invalid vector type: ${type}`); - } -} -function vectorDim(type) { - switch (type) { - case "vec2": - case "ivec2": - case "uvec2": - return 2; - case "vec3": - case "ivec3": - case "uvec3": - return 3; - case "vec4": - case "ivec4": - case "uvec4": - return 4; - default: - throw new Error(`Invalid vector type: ${type}`); - } -} -function sameSizeVec(type) { - if (isScalarType(type)) { - return "float"; - } - if (isVector2Type(type)) { - return "vec2"; - } - if (isVector3Type(type)) { - return "vec3"; - } - if (isVector4Type(type)) { - return "vec4"; - } - throw new Error(`Invalid vector type: ${type}`); -} -function sameSizeUvec(type) { - if (isScalarType(type)) { - return "uint"; - } - if (isVector2Type(type)) { - return "uvec2"; - } - if (isVector3Type(type)) { - return "uvec3"; - } - if (isVector4Type(type)) { - return "uvec4"; - } - throw new Error(`Invalid vector type: ${type}`); -} -function sameSizeIvec(type) { - if (isScalarType(type)) { - return "int"; - } - if (isVector2Type(type)) { - return "ivec2"; - } - if (isVector3Type(type)) { - return "ivec3"; - } - if (isVector4Type(type)) { - return "ivec4"; - } - throw new Error(`Invalid vector type: ${type}`); -} -function typeLiteral(type) { - if (typeof type === "string") { - return type; - } - if (typeof type === "object" && type.type) { - return type.type; +class Dyno { + constructor({ + inTypes, + outTypes, + inputs, + update, + globals, + statements, + generate + }) { + this.inTypes = inTypes ?? {}; + this.outTypes = outTypes ?? {}; + this.inputs = inputs ?? {}; + this.update = update; + this.globals = globals; + this.statements = statements; + this.generate = generate ?? (({ inputs: inputs2, outputs, compile }) => { + var _a2, _b2; + return { + globals: (_a2 = this.globals) == null ? void 0 : _a2.call(this, { inputs: inputs2, outputs, compile }), + statements: (_b2 = this.statements) == null ? void 0 : _b2.call(this, { inputs: inputs2, outputs, compile }) + }; + }); } - throw new Error(`Invalid DynoType: ${String(type)}`); -} -function numberAsInt(value) { - return Math.trunc(value).toString(); -} -function numberAsUint(value) { - const v = Math.max(0, Math.trunc(value)); - return `${v.toString()}u`; -} -function numberAsFloat(value) { - return value === Number.POSITIVE_INFINITY ? "INFINITY" : value === Number.NEGATIVE_INFINITY ? "-INFINITY" : Number.isInteger(value) ? value.toFixed(1) : value.toString(); -} -function valType(val) { - if (val instanceof DynoValue) { - return val.type; + get outputs() { + const outputs = {}; + for (const key in this.outTypes) { + outputs[key] = new DynoOutput(this, key); + } + return outputs; } - const value = val.dynoOut(); - return value.type; -} -class DynoValue { - constructor(type) { - this.__isDynoValue = true; - this.type = type; + apply(inputs) { + Object.assign(this.inputs, inputs); + return this.outputs; } -} -class DynoOutput extends DynoValue { - constructor(dyno2, key) { - super(dyno2.outTypes[key]); - this.dyno = dyno2; - this.key = key; + compile({ + inputs, + outputs, + compile + }) { + const result = [ + `// ${this.constructor.name}(${Object.values(inputs).join(", ")}) => (${Object.values(outputs).join(", ")})` + ]; + const declares = []; + for (const key in outputs) { + const name = outputs[key]; + if (name && !compile.declares.has(name)) { + compile.declares.add(name); + declares.push(key); + } + } + const { globals, statements, uniforms } = this.generate({ + inputs, + outputs, + compile + }); + for (const global of globals ?? []) { + compile.globals.add(global); + } + for (const key in uniforms) { + compile.uniforms[key] = uniforms[key]; + } + if (this.update) { + compile.updaters.push(this.update); + } + for (const key of declares) { + const name = outputs[key]; + if (name) { + if (!compile.uniforms[name]) { + result.push(`${dynoDeclare(name, this.outTypes[key])};`); + } + } + } + if (statements == null ? void 0 : statements.length) { + result.push("{"); + result.push(...statements.map((line) => compile.indent + line)); + result.push("}"); + } + return result; } } -class DynoLiteral extends DynoValue { - constructor(type, literal) { - super(type); - this.literal = literal; - } - getLiteral() { - return this.literal; +class DynoBlock extends Dyno { + constructor({ + inTypes, + outTypes, + inputs, + update, + globals, + construct + }) { + super({ + inTypes, + outTypes, + inputs, + update, + globals, + generate: (args) => this.generateBlock(args) + }); + this.construct = construct; } -} -function dynoLiteral(type, literal) { - return new DynoLiteral(type, literal); -} -class DynoConst extends DynoLiteral { - constructor(type, value) { - super(type, ""); - this.value = value; - } - getLiteral() { - const { type, value } = this; - switch (type) { - case "bool": - return value ? "true" : "false"; - case "uint": - return numberAsUint(value); - case "int": - return numberAsInt(value); - case "float": - return numberAsFloat(value); - case "bvec2": { - const v = value; - return `bvec2(${v[0]}, ${v[1]})`; - } - case "uvec2": { - if (value instanceof THREE.Vector2) { - return `uvec2(${numberAsUint(value.x)}, ${numberAsUint(value.y)})`; - } - const v = value; - return `uvec2(${numberAsUint(v[0])}, ${numberAsUint(v[1])})`; - } - case "ivec2": { - if (value instanceof THREE.Vector2) { - return `ivec2(${numberAsInt(value.x)}, ${numberAsInt(value.y)})`; - } - const v = value; - return `ivec2(${numberAsInt(v[0])}, ${numberAsInt(v[1])})`; - } - case "vec2": { - if (value instanceof THREE.Vector2) { - return `vec2(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)})`; - } - const v = value; - return `vec2(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])})`; - } - case "bvec3": { - const v = value; - return `bvec3(${v[0]}, ${v[1]}, ${v[2]})`; - } - case "uvec3": { - if (value instanceof THREE.Vector3) { - return `uvec3(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)})`; - } - const v = value; - return `uvec3(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])})`; + generateBlock({ + inputs, + outputs, + compile + }) { + var _a2, _b2; + const blockInputs = {}; + const blockOutputs = {}; + for (const key in inputs) { + if (inputs[key] != null) { + blockInputs[key] = new DynoLiteral(this.inTypes[key], inputs[key]); } - case "ivec3": { - if (value instanceof THREE.Vector3) { - return `ivec3(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)})`; - } - const v = value; - return `ivec3(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])})`; + } + for (const key in outputs) { + if (outputs[key] != null) { + blockOutputs[key] = new DynoValue(this.outTypes[key]); } - case "vec3": { - if (value instanceof THREE.Vector3) { - return `vec3(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)})`; + } + const options = { roots: [] }; + const returned = this.construct(blockInputs, blockOutputs, options); + for (const global of ((_a2 = this.globals) == null ? void 0 : _a2.call(this, { inputs, outputs, compile })) ?? []) { + compile.globals.add(global); + } + const ordering = []; + const nodeOuts = /* @__PURE__ */ new Map(); + function visit(node, outKey, outName) { + let outs = nodeOuts.get(node); + if (!outs) { + outs = { + sequence: compile.nextSequence(), + outNames: /* @__PURE__ */ new Map(), + newOuts: /* @__PURE__ */ new Set() + }; + nodeOuts.set(node, outs); + for (const key in node.inputs) { + let input = node.inputs[key]; + while (input) { + if (input instanceof DynoValue) { + if (input instanceof DynoOutput) { + visit(input.dyno, input.key); + } + break; + } + if (typeof input.dynoOut !== "function") { + throw new Error( + `dynoOut is not a function for ${input.constructor.name}` + ); + } + input = input.dynoOut(); + } } - const v = value; - return `vec3(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])})`; - } - case "bvec4": { - const v = value; - return `bvec4(${v[0]}, ${v[1]}, ${v[2]}, ${v[3]})`; + ordering.push(node); } - case "uvec4": { - if (value instanceof THREE.Vector4) { - return `uvec4(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)}, ${numberAsUint(value.w)})`; + if (outKey) { + if (!outName) { + outs.newOuts.add(outKey); } - const v = value; - return `uvec4(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])}, ${numberAsUint(v[3])})`; + outs.outNames.set(outKey, outName ?? `${outKey}_${outs.sequence}`); } - case "ivec4": { - if (value instanceof THREE.Vector4) { - return `ivec4(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)}, ${numberAsInt(value.w)})`; + } + for (const root of options.roots) { + visit(root); + } + for (const key in blockOutputs) { + let value = (returned == null ? void 0 : returned[key]) ?? blockOutputs[key]; + while (value) { + if (value instanceof DynoValue) { + if (value instanceof DynoOutput) { + visit(value.dyno, value.key, outputs[key]); + } + break; } - const v = value; - return `ivec4(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])}, ${numberAsInt(v[3])})`; + value = value.dynoOut(); } - case "vec4": { - if (value instanceof THREE.Vector4) { - return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`; - } - if (value instanceof THREE.Quaternion) { - return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`; + blockOutputs[key] = value; + } + const steps = []; + for (const dyno2 of ordering) { + const inputs2 = {}; + const outputs2 = {}; + for (const key in dyno2.inputs) { + let value = dyno2.inputs[key]; + while (value) { + if (value instanceof DynoValue) { + if (value instanceof DynoLiteral) { + inputs2[key] = value.getLiteral(); + } else if (value instanceof DynoOutput) { + const source = (_b2 = nodeOuts.get(value.dyno)) == null ? void 0 : _b2.outNames.get(value.key); + if (!source) { + throw new Error( + `Source not found for ${value.dyno.constructor.name}.${value.key}` + ); + } + inputs2[key] = source; + } + break; + } + value = value.dynoOut(); } - const v = value; - return `vec4(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])}, ${numberAsFloat(v[3])})`; - } - case "mat2": - case "mat2x2": { - const m = value; - const e = m instanceof THREE.Matrix2 ? m.elements : value; - const arg = new Array(4).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; - } - case "mat2x3": { - const e = value; - const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; - } - case "mat2x4": { - const e = value; - const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; - } - case "mat3": - case "mat3x3": { - const m = value; - const e = m instanceof THREE.Matrix3 ? m.elements : value; - const arg = new Array(9).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; - } - case "mat3x2": { - const e = value; - const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; - } - case "mat3x4": { - const e = value; - const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; - } - case "mat4": - case "mat4x4": { - const m = value; - const e = m instanceof THREE.Matrix4 ? m.elements : value; - const arg = new Array(16).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; } - case "mat4x2": { - const e = value; - const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; + const outs = nodeOuts.get(dyno2) ?? { outNames: /* @__PURE__ */ new Map() }; + for (const [key, name] of outs.outNames.entries()) { + outputs2[key] = name; } - case "mat4x3": { - const e = value; - const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i])); - return `${type}(${arg.join(", ")})`; + const newSteps = dyno2.compile({ inputs: inputs2, outputs: outputs2, compile }); + steps.push(newSteps); + } + const literalOutputs = []; + for (const key in outputs) { + if (blockOutputs[key] instanceof DynoLiteral) { + literalOutputs.push( + `${outputs[key]} = ${blockOutputs[key].getLiteral()};` + ); } - default: - throw new Error(`Type not implemented: ${String(type)}`); } + if (literalOutputs.length > 0) { + steps.push(literalOutputs); + } + const statements = steps.flatMap((step2, index) => { + return index === 0 ? step2 : ["", ...step2]; + }); + return { statements }; } } -function dynoConst(type, value) { - return new DynoConst(type, value); +function dynoBlock(inTypes, outTypes, construct, { update, globals } = {}) { + return new DynoBlock({ inTypes, outTypes, construct, update, globals }); } -function literalZero(type) { - const typeString = String(type); - if (isBoolType(type)) { - return `${typeString}(false)`; - } - if (isAllFloatType(type)) { - return `${typeString}(0.0)`; - } - if (isIntType(type)) { - return `${typeString}(0)`; - } - if (isUintType(type)) { - return `${typeString}(0u)`; - } - throw new Error(`Type not implemented: ${typeString}`); -} -function literalOne(type) { - const typeString = String(type); - if (isBoolType(type)) { - return `${typeString}(true)`; - } - if (isAllFloatType(type)) { - return `${typeString}(1.0)`; - } - if (isIntType(type)) { - return `${typeString}(1)`; - } - if (isUintType(type)) { - return `${typeString}(1u)`; - } - throw new Error(`Type not implemented: ${typeString}`); -} -function literalNegOne(type) { - const typeString = String(type); - if (isBoolType(type)) { - return `${typeString}(true)`; - } - if (isAllFloatType(type)) { - return `${typeString}(-1.0)`; - } - if (isIntType(type)) { - return `${typeString}(-1)`; - } - if (isUintType(type)) { - return `${typeString}(0xFFFFFFFFu)`; - } - throw new Error(`Type not implemented: ${typeString}`); -} -const DEFAULT_INDENT = " "; -class Compilation { - constructor({ indent } = {}) { - this.globals = /* @__PURE__ */ new Set(); - this.statements = []; - this.uniforms = {}; - this.declares = /* @__PURE__ */ new Set(); - this.updaters = []; - this.sequence = 0; - this.indent = DEFAULT_INDENT; - this.indent = indent ?? DEFAULT_INDENT; - } - nextSequence() { - return this.sequence++; - } -} -class Dyno { - constructor({ +function dyno$1({ + inTypes, + outTypes, + inputs, + update, + globals, + statements, + generate +}) { + return new Dyno({ inTypes, outTypes, inputs, @@ -1051,320 +705,85 @@ class Dyno { globals, statements, generate - }) { - this.inTypes = inTypes ?? {}; - this.outTypes = outTypes ?? {}; - this.inputs = inputs ?? {}; - this.update = update; - this.globals = globals; - this.statements = statements; - this.generate = generate ?? (({ inputs: inputs2, outputs, compile }) => { - var _a2, _b2; - return { - globals: (_a2 = this.globals) == null ? void 0 : _a2.call(this, { inputs: inputs2, outputs, compile }), - statements: (_b2 = this.statements) == null ? void 0 : _b2.call(this, { inputs: inputs2, outputs, compile }) - }; - }); + }); +} +function dynoDeclare(name, type, count) { + const typeStr = typeof type === "string" ? type : type.type; + if (!typeStr) { + throw new Error(`Invalid DynoType: ${String(type)}`); } - get outputs() { - const outputs = {}; - for (const key in this.outTypes) { - outputs[key] = new DynoOutput(this, key); + return `${typeStr} ${name}${count != null ? `[${count}]` : ""}`; +} +function unindentLines(s) { + var _a2; + let seenNonEmpty = false; + const lines = s.split("\n").map((line) => { + const trimmedLine = line.trimEnd(); + if (seenNonEmpty) { + return trimmedLine; } - return outputs; + if (trimmedLine.length > 0) { + seenNonEmpty = true; + return trimmedLine; + } + return null; + }).filter((line) => line != null); + while (lines.length > 0 && lines[lines.length - 1].length === 0) { + lines.pop(); } - apply(inputs) { - Object.assign(this.inputs, inputs); - return this.outputs; + if (lines.length === 0) { + return []; } - compile({ - inputs, - outputs, - compile + const indent = (_a2 = lines[0].match(/^\s*/)) == null ? void 0 : _a2[0]; + if (!indent) { + return lines; + } + const regex = new RegExp(`^${indent}`); + return lines.map((line) => line.replace(regex, "")); +} +function unindent(s) { + return unindentLines(s).join("\n"); +} +class UnaryOp extends Dyno { + constructor({ + a, + outKey, + outTypeFunc }) { - const result = [ - `// ${this.constructor.name}(${Object.values(inputs).join(", ")}) => (${Object.values(outputs).join(", ")})` - ]; - const declares = []; - for (const key in outputs) { - const name = outputs[key]; - if (name && !compile.declares.has(name)) { - compile.declares.add(name); - declares.push(key); - } - } - const { globals, statements, uniforms } = this.generate({ - inputs, - outputs, - compile - }); - for (const global of globals ?? []) { - compile.globals.add(global); - } - for (const key in uniforms) { - compile.uniforms[key] = uniforms[key]; - } - if (this.update) { - compile.updaters.push(this.update); - } - for (const key of declares) { - const name = outputs[key]; - if (name) { - if (!compile.uniforms[name]) { - result.push(`${dynoDeclare(name, this.outTypes[key])};`); - } - } - } - if (statements == null ? void 0 : statements.length) { - result.push("{"); - result.push(...statements.map((line) => compile.indent + line)); - result.push("}"); - } - return result; + const inTypes = { a: valType(a) }; + const outType = outTypeFunc(valType(a)); + const outTypes = { [outKey]: outType }; + super({ inTypes, outTypes, inputs: { a } }); + this.outKey = outKey; + } + dynoOut() { + return new DynoOutput(this, this.outKey); } } -class DynoBlock extends Dyno { +class BinaryOp extends Dyno { constructor({ - inTypes, - outTypes, - inputs, - update, - globals, - construct + a, + b, + outKey, + outTypeFunc }) { - super({ - inTypes, - outTypes, - inputs, - update, - globals, - generate: (args) => this.generateBlock(args) - }); - this.construct = construct; + const inTypes = { a: valType(a), b: valType(b) }; + const outType = outTypeFunc(valType(a), valType(b)); + const outTypes = { [outKey]: outType }; + super({ inTypes, outTypes, inputs: { a, b } }); + this.outKey = outKey; } - generateBlock({ - inputs, - outputs, - compile - }) { - var _a2, _b2; - const blockInputs = {}; - const blockOutputs = {}; - for (const key in inputs) { - if (inputs[key] != null) { - blockInputs[key] = new DynoLiteral(this.inTypes[key], inputs[key]); - } - } - for (const key in outputs) { - if (outputs[key] != null) { - blockOutputs[key] = new DynoValue(this.outTypes[key]); - } - } - const options = { roots: [] }; - const returned = this.construct(blockInputs, blockOutputs, options); - for (const global of ((_a2 = this.globals) == null ? void 0 : _a2.call(this, { inputs, outputs, compile })) ?? []) { - compile.globals.add(global); - } - const ordering = []; - const nodeOuts = /* @__PURE__ */ new Map(); - function visit(node, outKey, outName) { - let outs = nodeOuts.get(node); - if (!outs) { - outs = { - sequence: compile.nextSequence(), - outNames: /* @__PURE__ */ new Map(), - newOuts: /* @__PURE__ */ new Set() - }; - nodeOuts.set(node, outs); - for (const key in node.inputs) { - let input = node.inputs[key]; - while (input) { - if (input instanceof DynoValue) { - if (input instanceof DynoOutput) { - visit(input.dyno, input.key); - } - break; - } - if (typeof input.dynoOut !== "function") { - throw new Error( - `dynoOut is not a function for ${input.constructor.name}` - ); - } - input = input.dynoOut(); - } - } - ordering.push(node); - } - if (outKey) { - if (!outName) { - outs.newOuts.add(outKey); - } - outs.outNames.set(outKey, outName ?? `${outKey}_${outs.sequence}`); - } - } - for (const root of options.roots) { - visit(root); - } - for (const key in blockOutputs) { - let value = (returned == null ? void 0 : returned[key]) ?? blockOutputs[key]; - while (value) { - if (value instanceof DynoValue) { - if (value instanceof DynoOutput) { - visit(value.dyno, value.key, outputs[key]); - } - break; - } - value = value.dynoOut(); - } - blockOutputs[key] = value; - } - const steps = []; - for (const dyno2 of ordering) { - const inputs2 = {}; - const outputs2 = {}; - for (const key in dyno2.inputs) { - let value = dyno2.inputs[key]; - while (value) { - if (value instanceof DynoValue) { - if (value instanceof DynoLiteral) { - inputs2[key] = value.getLiteral(); - } else if (value instanceof DynoOutput) { - const source = (_b2 = nodeOuts.get(value.dyno)) == null ? void 0 : _b2.outNames.get(value.key); - if (!source) { - throw new Error( - `Source not found for ${value.dyno.constructor.name}.${value.key}` - ); - } - inputs2[key] = source; - } - break; - } - value = value.dynoOut(); - } - } - const outs = nodeOuts.get(dyno2) ?? { outNames: /* @__PURE__ */ new Map() }; - for (const [key, name] of outs.outNames.entries()) { - outputs2[key] = name; - } - const newSteps = dyno2.compile({ inputs: inputs2, outputs: outputs2, compile }); - steps.push(newSteps); - } - const literalOutputs = []; - for (const key in outputs) { - if (blockOutputs[key] instanceof DynoLiteral) { - literalOutputs.push( - `${outputs[key]} = ${blockOutputs[key].getLiteral()};` - ); - } - } - if (literalOutputs.length > 0) { - steps.push(literalOutputs); - } - const statements = steps.flatMap((step2, index) => { - return index === 0 ? step2 : ["", ...step2]; - }); - return { statements }; - } -} -function dynoBlock(inTypes, outTypes, construct, { update, globals } = {}) { - return new DynoBlock({ inTypes, outTypes, construct, update, globals }); -} -function dyno$1({ - inTypes, - outTypes, - inputs, - update, - globals, - statements, - generate -}) { - return new Dyno({ - inTypes, - outTypes, - inputs, - update, - globals, - statements, - generate - }); -} -function dynoDeclare(name, type, count) { - const typeStr = typeof type === "string" ? type : type.type; - if (!typeStr) { - throw new Error(`Invalid DynoType: ${String(type)}`); - } - return `${typeStr} ${name}${count != null ? `[${count}]` : ""}`; -} -function unindentLines(s) { - var _a2; - let seenNonEmpty = false; - const lines = s.split("\n").map((line) => { - const trimmedLine = line.trimEnd(); - if (seenNonEmpty) { - return trimmedLine; - } - if (trimmedLine.length > 0) { - seenNonEmpty = true; - return trimmedLine; - } - return null; - }).filter((line) => line != null); - while (lines.length > 0 && lines[lines.length - 1].length === 0) { - lines.pop(); - } - if (lines.length === 0) { - return []; - } - const indent = (_a2 = lines[0].match(/^\s*/)) == null ? void 0 : _a2[0]; - if (!indent) { - return lines; - } - const regex = new RegExp(`^${indent}`); - return lines.map((line) => line.replace(regex, "")); -} -function unindent(s) { - return unindentLines(s).join("\n"); -} -class UnaryOp extends Dyno { - constructor({ - a, - outKey, - outTypeFunc - }) { - const inTypes = { a: valType(a) }; - const outType = outTypeFunc(valType(a)); - const outTypes = { [outKey]: outType }; - super({ inTypes, outTypes, inputs: { a } }); - this.outKey = outKey; - } - dynoOut() { - return new DynoOutput(this, this.outKey); - } -} -class BinaryOp extends Dyno { - constructor({ - a, - b, - outKey, - outTypeFunc - }) { - const inTypes = { a: valType(a), b: valType(b) }; - const outType = outTypeFunc(valType(a), valType(b)); - const outTypes = { [outKey]: outType }; - super({ inTypes, outTypes, inputs: { a, b } }); - this.outKey = outKey; - } - dynoOut() { - return new DynoOutput(this, this.outKey); - } -} -class TrinaryOp extends Dyno { - constructor({ - a, - b, - c, - outKey, - outTypeFunc + dynoOut() { + return new DynoOutput(this, this.outKey); + } +} +class TrinaryOp extends Dyno { + constructor({ + a, + b, + c, + outKey, + outTypeFunc }) { const inTypes = { a: valType(a), b: valType(b), c: valType(c) }; const outType = outTypeFunc(valType(a), valType(b), valType(c)); @@ -1376,6593 +795,5903 @@ class TrinaryOp extends Dyno { return new DynoOutput(this, this.outKey); } } -const threeRevision = Number.parseInt(THREE.REVISION); -const threeMrtArray = threeRevision >= 179; -const f32buffer = new Float32Array(1); -const u32buffer = new Uint32Array(f32buffer.buffer); -const supportsFloat16Array = "Float16Array" in globalThis; -const f16buffer = supportsFloat16Array ? new globalThis["Float16Array"](1) : null; -const u16buffer = new Uint16Array(f16buffer == null ? void 0 : f16buffer.buffer); -function normalize$1(vec) { - const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0)); - return vec.map((v) => v / norm); -} -function floatBitsToUint$1(f) { - f32buffer[0] = f; - return u32buffer[0]; -} -function uintBitsToFloat$1(u) { - u32buffer[0] = u; - return f32buffer[0]; -} -const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS; -const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS; -function toHalfNative(f) { - f16buffer[0] = f; - return u16buffer[0]; -} -function toHalfJS(f) { - f32buffer[0] = f; - const bits2 = u32buffer[0]; - const sign2 = bits2 >> 31 & 1; - const exp3 = bits2 >> 23 & 255; - const frac = bits2 & 8388607; - const halfSign = sign2 << 15; - if (exp3 === 255) { - if (frac !== 0) { - return halfSign | 32767; - } - return halfSign | 31744; - } - const newExp = exp3 - 127 + 15; - if (newExp >= 31) { - return halfSign | 31744; - } - if (newExp <= 0) { - if (newExp < -10) { - return halfSign; - } - const subFrac = (frac | 8388608) >> 1 - newExp + 13; - return halfSign | subFrac; - } - const halfFrac = frac >> 13; - return halfSign | newExp << 10 | halfFrac; -} -function fromHalfNative(u) { - u16buffer[0] = u; - return f16buffer[0]; -} -function fromHalfJS(h) { - const sign2 = h >> 15 & 1; - const exp3 = h >> 10 & 31; - const frac = h & 1023; - let f32bits; - if (exp3 === 0) { - if (frac === 0) { - f32bits = sign2 << 31; - } else { - let mant = frac; - let e = -14; - while ((mant & 1024) === 0) { - mant <<= 1; - e--; - } - mant &= 1023; - const newExp = e + 127; - const newFrac = mant << 13; - f32bits = sign2 << 31 | newExp << 23 | newFrac; - } - } else if (exp3 === 31) { - if (frac === 0) { - f32bits = sign2 << 31 | 2139095040; - } else { - f32bits = sign2 << 31 | 2143289344; - } - } else { - const newExp = exp3 - 15 + 127; - const newFrac = frac << 13; - f32bits = sign2 << 31 | newExp << 23 | newFrac; +const Gsplat = { type: "Gsplat" }; +const CovSplat = { type: "CovSplat" }; +const TPackedSplats = { type: "PackedSplats" }; +const TExtSplats = { type: "ExtSplats" }; +const TCovSplats = { type: "CovSplats" }; +const numPackedSplats = (packedSplats) => new NumPackedSplats({ packedSplats }); +const readPackedSplat = (packedSplats, index) => new ReadPackedSplat({ packedSplats, index }); +const readPackedSplatRange = (packedSplats, index, base, count) => new ReadPackedSplatRange({ packedSplats, index, base, count }); +const numExtSplats = (extSplats) => new NumExtSplats({ extSplats }); +const readExtSplat = (extSplats, index) => new ReadExtSplat({ extSplats, index }); +const numCovSplats = (covsplats) => new NumCovSplats({ covsplats }); +const readCovSplat = (covSplats, index) => new ReadCovSplat({ covSplats, index }); +const gsplatToCovSplat = (gsplat) => new GsplatToCovSplat({ gsplat }); +const splitGsplat = (gsplat) => new SplitGsplat({ gsplat }); +const combineGsplat = ({ + gsplat, + flags, + index, + center, + scales, + quaternion, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b +}) => { + return new CombineGsplat({ + gsplat, + flags, + index, + center, + scales, + quaternion, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + }); +}; +const gsplatNormal = (gsplat) => new GsplatNormal({ gsplat }); +const transformGsplat = (gsplat, { + scale, + rotate, + translate, + recolor +}) => { + return new TransformGsplat({ gsplat, scale, rotate, translate, recolor }); +}; +const splatTexCoord = (index) => new SplatTexCoord({ index }); +const pagedSplatTexCoord = (index) => new PagedSplatTexCoord({ index }); +const defineGsplat = unindent(` + struct Gsplat { + vec3 center; + uint flags; + vec3 scales; + int index; + vec4 quaternion; + vec4 rgba; + }; + const uint GSPLAT_FLAG_ACTIVE = 1u << 0u; + + bool isGsplatActive(uint flags) { + return (flags & GSPLAT_FLAG_ACTIVE) != 0u; } - u32buffer[0] = f32bits; - return f32buffer[0]; -} -function floatToUint8(v) { - return Math.max(0, Math.min(255, Math.round(v * 255))); -} -function floatToSint8(v) { - return Math.max(-127, Math.min(127, Math.round(v * 127))); -} -function Uint8ToFloat(v) { - return v / 255; -} -function Sint8ToFloat(v) { - return v / 127; -} -class DataCache { - // Create a DataCache with a given function that fetches data not in the cache. +`); +const defineCovSplat = unindent(` + struct CovSplat { + vec3 center; + uint flags; + vec4 rgba; + vec3 xxyyzz; + int index; + vec3 xyxzyz; + }; + + bool isCovSplatActive(uint flags) { + return (flags & GSPLAT_FLAG_ACTIVE) != 0u; + } +`); +const definePackedSplats = unindent(` + struct PackedSplats { + usampler2DArray textureArray; + int numSplats; + vec4 rgbMinMaxLnScaleMinMax; + bool lodOpacity; + }; +`); +class NumPackedSplats extends UnaryOp { constructor({ - asyncFetch, - dispose, - maxItems = 5 + packedSplats }) { - this.asyncFetch = asyncFetch; - this.dispose = dispose; - this.maxItems = maxItems; - this.items = []; - this.pending = /* @__PURE__ */ new Map(); - } - has(key) { - return this.items.some((item) => item.key === key); + super({ a: packedSplats, outKey: "numSplats", outTypeFunc: () => "int" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.numSplats} = ${inputs.a}.numSplats;` + ]; } - getImmediate(key) { - const index = this.items.findIndex((item) => item.key === key); - if (index >= 0) { - const item = this.items.splice(index, 1)[0]; - this.items.push(item); - return item.data; +} +const defineReadPackedArray = unindent(` + bool readPackedArray(usampler2DArray texture, int numSplats, vec4 rgbMinMaxLnScaleMinMax, int index, out Gsplat gsplat) { + if ((index >= 0) && (index < numSplats)) { + uvec4 packedData = texelFetch(texture, splatTexCoord(index), 0); + unpackSplatEncoding(packedData, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba, rgbMinMaxLnScaleMinMax); + return true; + } else { + return false; } - return void 0; } - // Fetch data for the key, returning cached data if available. - async getFetch(key) { - const immediate = this.getImmediate(key); - if (immediate !== void 0) { - return immediate; - } - let pending = this.pending.get(key); - if (pending) { - return pending; - } - pending = this.asyncFetch(key).then((data) => { - this.pending.delete(key); - this.items.push({ key, data }); - while (this.items.length > this.maxItems) { - const removed = this.items.shift(); - if (removed && this.dispose) { - this.dispose(removed.data); +`); +class ReadPackedSplat extends Dyno { + constructor({ + packedSplats, + index + }) { + super({ + inTypes: { packedSplats: TPackedSplats, index: "int" }, + outTypes: { gsplat: Gsplat }, + inputs: { packedSplats, index }, + globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray], + statements: ({ inputs, outputs }) => { + const { gsplat } = outputs; + if (!gsplat) { + return []; + } + const { packedSplats: packedSplats2, index: index2 } = inputs; + let statements; + if (packedSplats2 && index2) { + statements = unindentLines(` + ${gsplat}.flags = 0u; + if (readPackedArray(${packedSplats2}.textureArray, ${packedSplats2}.numSplats, ${packedSplats2}.rgbMinMaxLnScaleMinMax, ${index2}, ${gsplat})) { + if (${packedSplats2}.lodOpacity) { + ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a; + } + bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0))); + ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE; + } + `); + } else { + statements = [`${gsplat}.flags = 0u;`]; } + statements.push(`${gsplat}.index = ${index2 ?? "0"};`); + return statements; } - return data; }); - this.pending.set(key, pending); - return pending; } -} -function mapObject(obj, fn) { - const entries = Object.entries(obj).map(([key, value]) => [ - key, - fn(value, key) - ]); - return Object.fromEntries(entries); -} -function mapFilterObject(obj, fn) { - const entries = Object.entries(obj).map(([key, value]) => [key, fn(value, key)]).filter(([_, value]) => value !== void 0); - return Object.fromEntries(entries); -} -function getTransferable(ctx) { - const buffers = []; - const seen = /* @__PURE__ */ new Set(); - function traverse(obj) { - if (obj && typeof obj === "object" && !seen.has(obj)) { - seen.add(obj); - if (obj instanceof ArrayBuffer) { - buffers.push(obj); - } else if (ArrayBuffer.isView(obj)) { - buffers.push(obj.buffer); - } else if (Array.isArray(obj)) { - obj.forEach(traverse); - } else { - Object.values(obj).forEach(traverse); - } - } + dynoOut() { + return new DynoOutput(this, "gsplat"); } - traverse(ctx); - return buffers; -} -function newArray(n, initFunction) { - return new Array(n).fill(null).map((_, i) => initFunction(i)); } -class FreeList { +class ReadPackedSplatRange extends Dyno { constructor({ - // Allocate a new item with the given args - allocate, - // Dispose of an item (optional, if GC is enough) - dispose, - // Check if an existing item in the list is valid for the given args, - // allowing you to store heterogeneous items in the list. - valid + packedSplats, + index, + base, + count }) { - this.items = []; - this.allocate = allocate; - this.dispose = dispose; - this.valid = valid; - } - // Allocate a new item from the free list, first checking if a existing item - // on the freelist is valid for the given args. - alloc(args) { - while (true) { - const item = this.items.pop(); - if (!item) { - break; - } - if (this.valid(item, args)) { - return item; - } - if (this.dispose) { - this.dispose(item); + super({ + inTypes: { + packedSplats: TPackedSplats, + index: "int", + base: "int", + count: "int" + }, + outTypes: { gsplat: Gsplat }, + inputs: { packedSplats, index, base, count }, + globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray], + statements: ({ inputs, outputs }) => { + const { gsplat } = outputs; + if (!gsplat) { + return []; + } + const { packedSplats: packedSplats2, index: index2, base: base2, count: count2 } = inputs; + let statements; + if (packedSplats2 && index2 && base2 && count2) { + statements = unindentLines(` + ${gsplat}.flags = 0u; + if (readPackedArray(${packedSplats2}.textureArray, ${packedSplats2}.numSplats, ${packedSplats2}.rgbMinMaxLnScaleMinMax, ${index2}, ${gsplat})) { + if (${packedSplats2}.lodOpacity) { + ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a; + } + bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0))); + ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE; + } + `); + } else { + statements = [`${gsplat}.flags = 0u;`]; + } + statements.push(`${gsplat}.index = ${index2 ?? "0"};`); + return statements; } - } - return this.allocate(args); + }); } - free(item) { - this.items.push(item); + dynoOut() { + return new DynoOutput(this, "gsplat"); } - disposeAll() { - let item; - item = this.items.pop(); - while (item) { - if (this.dispose) { - this.dispose(item); - } - item = this.items.pop(); - } +} +const defineExtSplats = unindent(` + struct ExtSplats { + usampler2DArray textureArray1; + usampler2DArray textureArray2; + int numSplats; + }; +`); +class NumExtSplats extends UnaryOp { + constructor({ extSplats }) { + super({ a: extSplats, outKey: "numSplats", outTypeFunc: () => "int" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.numSplats} = ${inputs.a}.numSplats;` + ]; } } -function encodeExtSplat(extArrays, index, x, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b) { - const i4 = index * 4; - const [extA, extB] = extArrays; - extA[i4] = floatBitsToUint$1(x); - extA[i4 + 1] = floatBitsToUint$1(y); - extA[i4 + 2] = floatBitsToUint$1(z); - extA[i4 + 3] = toHalf(opacity); - extB[i4] = toHalf(r) | toHalf(g) << 16; - extB[i4 + 1] = toHalf(b) | toHalf(Math.log(scaleX)) << 16; - extB[i4 + 2] = toHalf(Math.log(scaleY)) | toHalf(Math.log(scaleZ)) << 16; - extB[i4 + 3] = encodeQuatOctXy1010R12(quatX, quatY, quatZ, quatW); +const defineReadExtArrays = unindent(` + void readExtArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out Gsplat gsplat) { + gsplat.flags = 0u; + if ((index >= 0) && (index < numSplats)) { + ivec3 coord = splatTexCoord(index); + uvec4 packed1 = texelFetch(texture1, coord, 0); + uvec4 packed2 = texelFetch(texture2, coord, 0); + unpackSplatExt(packed1, packed2, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba); + gsplat.flags = all(equal(gsplat.scales, vec3(0.0, 0.0, 0.0))) ? 0u : GSPLAT_FLAG_ACTIVE; + gsplat.index = index; + } + } +`); +class ReadExtSplat extends Dyno { + constructor({ + extSplats, + index + }) { + super({ + inTypes: { extSplats: TExtSplats, index: "int" }, + outTypes: { gsplat: Gsplat }, + inputs: { extSplats, index }, + globals: () => [defineGsplat, defineExtSplats, defineReadExtArrays], + statements: ({ inputs, outputs }) => { + const { gsplat } = outputs; + if (!gsplat) { + return [`${gsplat}.flags = 0u;`]; + } + const { extSplats: extSplats2, index: index2 } = inputs; + if (extSplats2 && index2) { + return unindentLines(` + readExtArrays(${extSplats2}.textureArray1, ${extSplats2}.textureArray2, ${extSplats2}.numSplats, ${index2}, ${gsplat}); + `); + } + return [`${gsplat}.flags = 0u;`]; + } + }); + } + dynoOut() { + return new DynoOutput(this, "gsplat"); + } } -function decodeExtSplat(extArrays, index) { - const result = packedFields; - const i4 = index * 4; - const [extA, extB] = extArrays; - result.center.x = uintBitsToFloat$1(extA[i4]); - result.center.y = uintBitsToFloat$1(extA[i4 + 1]); - result.center.z = uintBitsToFloat$1(extA[i4 + 2]); - result.opacity = fromHalf(extA[i4 + 3] & 65535); - result.color.r = fromHalf(extB[i4] & 65535); - result.color.g = fromHalf(extB[i4] >>> 16); - result.color.b = fromHalf(extB[i4 + 1] & 65535); - result.scales.x = Math.exp(fromHalf(extB[i4 + 1] >>> 16)); - result.scales.y = Math.exp(fromHalf(extB[i4 + 2] & 65535)); - result.scales.z = Math.exp(fromHalf(extB[i4 + 2] >>> 16)); - decodeQuatOctXy1010R12(extB[i4 + 3], result.quaternion); - return result; +class NumCovSplats extends UnaryOp { + constructor({ covsplats }) { + super({ a: covsplats, outKey: "numSplats", outTypeFunc: () => "int" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.numSplats} = ${inputs.a}.numSplats;` + ]; + } } -function setPackedSplat(packedSplats, index, x, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b, encoding) { - const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; - const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; - const rgbRange = rgbMax - rgbMin; - const uR = floatToUint8((r - rgbMin) / rgbRange); - const uG = floatToUint8((g - rgbMin) / rgbRange); - const uB = floatToUint8((b - rgbMin) / rgbRange); - const uA = floatToUint8((encoding == null ? void 0 : encoding.lodOpacity) ? 0.5 * opacity : opacity); - const uQuat = encodeQuatOctXy88R8( - tempQuaternion.set(quatX, quatY, quatZ, quatW) - ); - const uQuatX = uQuat & 255; - const uQuatY = uQuat >>> 8 & 255; - const uQuatZ = uQuat >>> 16 & 255; - const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN; - const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX; - const lnScaleScale = 254 / (lnScaleMax - lnScaleMin); - const uScaleX = scaleX < SCALE_ZERO ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1 - ) - ); - const uScaleY = scaleY < SCALE_ZERO ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1 - ) - ); - const uScaleZ = scaleZ < SCALE_ZERO ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1 - ) - ); - const uCenterX = toHalf(x); - const uCenterY = toHalf(y); - const uCenterZ = toHalf(z); - const i4 = index * 4; - packedSplats[i4] = uR | uG << 8 | uB << 16 | uA << 24; - packedSplats[i4 + 1] = uCenterX | uCenterY << 16; - packedSplats[i4 + 2] = uCenterZ | uQuatX << 16 | uQuatY << 24; - packedSplats[i4 + 3] = uScaleX | uScaleY << 8 | uScaleZ << 16 | uQuatZ << 24; +const defineReadCovArrays = unindent(` + void readCovArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out CovSplat covsplat) { + covsplat.flags = 0u; + if ((index >= 0) && (index < numSplats)) { + ivec3 coord = splatTexCoord(index); + uvec4 packed1 = texelFetch(texture1, coord, 0); + uvec4 packed2 = texelFetch(texture2, coord, 0); + unpackSplatExtCov(packed1, packed2, covsplat.center, covsplat.rgba, covsplat.xxyyzz, covsplat.xyxzyz); + covsplat.flags = (all(equal(covsplat.xxyyzz, vec3(0.0))) && all(equal(covsplat.xyxzyz, vec3(0.0)))) ? 0u : GSPLAT_FLAG_ACTIVE; + gsplat.index = index; + } + } +`); +class ReadCovSplat extends Dyno { + constructor({ + covSplats, + index + }) { + super({ + inTypes: { covSplats: TCovSplats, index: "int" }, + outTypes: { covsplat: CovSplat }, + inputs: { covSplats, index }, + globals: () => [defineGsplat, defineCovSplat, defineReadCovArrays], + statements: ({ inputs, outputs }) => { + const { covsplat } = outputs; + if (!covsplat) { + return [`${covsplat}.flags = 0u;`]; + } + const { covSplats: covSplats2, index: index2 } = inputs; + if (covSplats2 && index2) { + return unindentLines(` + readCovArrays(${covSplats2}.textureArray, ${covSplats2}.numSplats, ${index2}, ${covsplat}); + `); + } + return [`${covsplat}.flags = 0u;`]; + } + }); + } + dynoOut() { + return new DynoOutput(this, "covsplat"); + } } -function setPackedSplatCenter(packedSplats, index, x, y, z) { - const uCenterX = toHalf(x); - const uCenterY = toHalf(y); - const uCenterZ = toHalf(z); - const i4 = index * 4; - packedSplats[i4 + 1] = uCenterX | uCenterY << 16; - packedSplats[i4 + 2] = uCenterZ | packedSplats[i4 + 2] & 4294901760; -} -function setPackedSplatScales(packedSplats, index, scaleX, scaleY, scaleZ, encoding) { - const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN; - const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX; - const lnScaleScale = 254 / (lnScaleMax - lnScaleMin); - const uScaleX = scaleX < SCALE_ZERO ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1 - ) - ); - const uScaleY = scaleY < SCALE_ZERO ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1 - ) - ); - const uScaleZ = scaleZ < SCALE_ZERO ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1 - ) - ); - const i4 = index * 4; - packedSplats[i4 + 3] = uScaleX | uScaleY << 8 | uScaleZ << 16 | packedSplats[i4 + 3] & 4278190080; -} -const tempQuaternion = new THREE.Quaternion(); -function setPackedSplatQuat(packedSplats, index, quatX, quatY, quatZ, quatW) { - const uQuat = encodeQuatOctXy88R8( - tempQuaternion.set(quatX, quatY, quatZ, quatW) - ); - const uQuatX = uQuat & 255; - const uQuatY = uQuat >>> 8 & 255; - const uQuatZ = uQuat >>> 16 & 255; - const i4 = index * 4; - packedSplats[i4 + 2] = packedSplats[i4 + 2] & 65535 | uQuatX << 16 | uQuatY << 24; - packedSplats[i4 + 3] = packedSplats[i4 + 3] & 16777215 | uQuatZ << 24; -} -function setPackedSplatRgba(packedSplats, index, r, g, b, a, encoding) { - const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; - const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; - const rgbRange = rgbMax - rgbMin; - const uR = floatToUint8((r - rgbMin) / rgbRange); - const uG = floatToUint8((g - rgbMin) / rgbRange); - const uB = floatToUint8((b - rgbMin) / rgbRange); - const uA = floatToUint8((encoding == null ? void 0 : encoding.lodOpacity) ? 0.5 * a : a); - const i4 = index * 4; - packedSplats[i4] = uR | uG << 8 | uB << 16 | uA << 24; -} -function setPackedSplatRgb(packedSplats, index, r, g, b, encoding) { - const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; - const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; - const rgbRange = rgbMax - rgbMin; - const uR = floatToUint8((r - rgbMin) / rgbRange); - const uG = floatToUint8((g - rgbMin) / rgbRange); - const uB = floatToUint8((b - rgbMin) / rgbRange); - const i4 = index * 4; - packedSplats[i4] = uR | uG << 8 | uB << 16 | packedSplats[i4] & 4278190080; -} -function setPackedSplatOpacity(packedSplats, index, opacity) { - const uA = floatToUint8(opacity); - const i4 = index * 4; - packedSplats[i4] = packedSplats[i4] & 16777215 | uA << 24; -} -const packedCenter = new THREE.Vector3(); -const packedScales = new THREE.Vector3(); -const packedQuaternion = new THREE.Quaternion(); -const packedColor = new THREE.Color(); -const packedFields = { - center: packedCenter, - scales: packedScales, - quaternion: packedQuaternion, - color: packedColor, - opacity: 0 -}; -function unpackSplat(packedSplats, index, encoding) { - const result = packedFields; - const i4 = index * 4; - const word0 = packedSplats[i4]; - const word1 = packedSplats[i4 + 1]; - const word2 = packedSplats[i4 + 2]; - const word3 = packedSplats[i4 + 3]; - const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; - const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; - const rgbRange = rgbMax - rgbMin; - result.color.set( - rgbMin + (word0 & 255) / 255 * rgbRange, - rgbMin + (word0 >>> 8 & 255) / 255 * rgbRange, - rgbMin + (word0 >>> 16 & 255) / 255 * rgbRange - ); - result.opacity = (word0 >>> 24 & 255) / 255; - if (encoding == null ? void 0 : encoding.lodOpacity) { - result.opacity = 2 * result.opacity; - } - result.center.set( - fromHalf(word1 & 65535), - fromHalf(word1 >>> 16 & 65535), - fromHalf(word2 & 65535) - ); - const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN; - const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX; - const lnScaleScale = (lnScaleMax - lnScaleMin) / 254; - const uScalesX = word3 & 255; - result.scales.x = uScalesX === 0 ? 0 : Math.exp(lnScaleMin + (uScalesX - 1) * lnScaleScale); - const uScalesY = word3 >>> 8 & 255; - result.scales.y = uScalesY === 0 ? 0 : Math.exp(lnScaleMin + (uScalesY - 1) * lnScaleScale); - const uScalesZ = word3 >>> 16 & 255; - result.scales.z = uScalesZ === 0 ? 0 : Math.exp(lnScaleMin + (uScalesZ - 1) * lnScaleScale); - const uQuat = word2 >>> 16 & 65535 | word3 >>> 8 & 16711680; - decodeQuatOctXy88R8(uQuat, result.quaternion); - return result; -} -function getTextureSize(numSplats) { - const width = SPLAT_TEX_WIDTH; - const height = Math.max( - SPLAT_TEX_MIN_HEIGHT, - Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)) - ); - const depth = Math.ceil(numSplats / (width * height)); - const maxSplats = width * height * depth; - return { width, height, depth, maxSplats }; -} -function computeMaxSplats(numSplats) { - const width = SPLAT_TEX_WIDTH; - const height = Math.max( - SPLAT_TEX_MIN_HEIGHT, - Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)) - ); - const depth = Math.ceil(numSplats / (width * height)); - return width * height * depth; -} -function isMobile() { - if (navigator.platform.toLowerCase().startsWith("win")) { - return false; +class GsplatToCovSplat extends Dyno { + constructor({ gsplat }) { + super({ + inTypes: { gsplat: Gsplat }, + outTypes: { covsplat: CovSplat }, + inputs: { gsplat }, + globals: () => [defineGsplat, defineCovSplat], + statements: ({ inputs, outputs }) => { + const { gsplat: gsplat2 } = inputs; + const { covsplat } = outputs; + if (!gsplat2) { + return [`${covsplat}.flags = 0u;`]; + } + return unindentLines(` + ${covsplat}.flags = 0u; + if (isGsplatActive(${gsplat2}.flags)) { + ${covsplat}.flags = ${gsplat2}.flags; + ${covsplat}.index = ${gsplat2}.index; + ${covsplat}.rgba = ${gsplat2}.rgba; + ${covsplat}.center = ${gsplat2}.center; + mat3 m = scaleQuaternionToMatrix(${gsplat2}.scales, ${gsplat2}.quaternion); + m = m * transpose(m); + ${covsplat}.xxyyzz = vec3(m[0][0], m[1][1], m[2][2]); + ${covsplat}.xyxzyz = vec3(m[0][1], m[0][2], m[1][2]); + } + `); + } + }); } - if (navigator.maxTouchPoints > 0) { - return true; + dynoOut() { + return new DynoOutput(this, "covsplat"); } - return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test( - navigator.userAgent - ); } -function isAndroid() { - return /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent); -} -function isOculus() { - return !!navigator.xr && /Oculus/.test(navigator.userAgent); -} -function isQuest2() { - return isOculus() && /Quest 2/.test(navigator.userAgent); -} -function isIos() { - return /iPhone|iPad/.test(navigator.userAgent); -} -function isVisionPro() { - return !!navigator.xr && isIos() && /Safari/.test(navigator.userAgent) && isMobile(); +class SplitGsplat extends Dyno { + constructor({ gsplat }) { + super({ + inTypes: { gsplat: Gsplat }, + outTypes: { + flags: "uint", + active: "bool", + index: "int", + center: "vec3", + scales: "vec3", + quaternion: "vec4", + rgba: "vec4", + rgb: "vec3", + opacity: "float", + x: "float", + y: "float", + z: "float", + r: "float", + g: "float", + b: "float" + }, + inputs: { gsplat }, + globals: () => [defineGsplat], + statements: ({ inputs, outputs }) => { + const { gsplat: gsplat2 } = inputs; + const { + flags, + active, + index, + center, + scales, + quaternion, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + } = outputs; + return [ + !flags ? null : `${flags} = ${gsplat2 ? `${gsplat2}.flags` : "0u"};`, + !active ? null : `${active} = isGsplatActive(${gsplat2 ? `${gsplat2}.flags` : "0u"});`, + !index ? null : `${index} = ${gsplat2 ? `${gsplat2}.index` : "0"};`, + !center ? null : `${center} = ${gsplat2 ? `${gsplat2}.center` : "vec3(0.0, 0.0, 0.0)"};`, + !scales ? null : `${scales} = ${gsplat2 ? `${gsplat2}.scales` : "vec3(0.0, 0.0, 0.0)"};`, + !quaternion ? null : `${quaternion} = ${gsplat2 ? `${gsplat2}.quaternion` : "vec4(0.0, 0.0, 0.0, 1.0)"};`, + !rgba ? null : `${rgba} = ${gsplat2 ? `${gsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)"};`, + !rgb ? null : `${rgb} = ${gsplat2 ? `${gsplat2}.rgba.rgb` : "vec3(0.0, 0.0, 0.0)"};`, + !opacity ? null : `${opacity} = ${gsplat2 ? `${gsplat2}.rgba.a` : "0.0"};`, + !x ? null : `${x} = ${gsplat2 ? `${gsplat2}.center.x` : "0.0"};`, + !y ? null : `${y} = ${gsplat2 ? `${gsplat2}.center.y` : "0.0"};`, + !z ? null : `${z} = ${gsplat2 ? `${gsplat2}.center.z` : "0.0"};`, + !r ? null : `${r} = ${gsplat2 ? `${gsplat2}.rgba.r` : "0.0"};`, + !g ? null : `${g} = ${gsplat2 ? `${gsplat2}.rgba.g` : "0.0"};`, + !b ? null : `${b} = ${gsplat2 ? `${gsplat2}.rgba.b` : "0.0"};` + ].filter(Boolean); + } + }); + } } -function flipPixels(pixels, width, height) { - const tempLine = new Uint8Array(width * 4); - for (let y = 0; y < height / 2; y++) { - const topOffset = y * width * 4; - const bottomOffset = (height - 1 - y) * width * 4; - tempLine.set(pixels.subarray(topOffset, topOffset + width * 4)); - pixels.set( - pixels.subarray(bottomOffset, bottomOffset + width * 4), - topOffset - ); - pixels.set(tempLine, bottomOffset); +class CombineGsplat extends Dyno { + constructor({ + gsplat, + flags, + index, + center, + scales, + quaternion, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + }) { + super({ + inTypes: { + gsplat: Gsplat, + flags: "uint", + index: "int", + center: "vec3", + scales: "vec3", + quaternion: "vec4", + rgba: "vec4", + rgb: "vec3", + opacity: "float", + x: "float", + y: "float", + z: "float", + r: "float", + g: "float", + b: "float" + }, + outTypes: { gsplat: Gsplat }, + inputs: { + gsplat, + flags, + index, + center, + scales, + quaternion, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + }, + globals: () => [defineGsplat], + statements: ({ inputs, outputs }) => { + const { gsplat: outGsplat } = outputs; + if (!outGsplat) { + return []; + } + const { + gsplat: gsplat2, + flags: flags2, + index: index2, + center: center2, + scales: scales2, + quaternion: quaternion2, + rgba: rgba2, + rgb: rgb2, + opacity: opacity2, + x: x2, + y: y2, + z: z2, + r: r2, + g: g2, + b: b22 + } = inputs; + return [ + `${outGsplat}.flags = ${flags2 ?? (gsplat2 ? `${gsplat2}.flags` : "0u")};`, + `${outGsplat}.index = ${index2 ?? (gsplat2 ? `${gsplat2}.index` : "0")};`, + `${outGsplat}.center = ${center2 ?? (gsplat2 ? `${gsplat2}.center` : "vec3(0.0, 0.0, 0.0)")};`, + `${outGsplat}.scales = ${scales2 ?? (gsplat2 ? `${gsplat2}.scales` : "vec3(0.0, 0.0, 0.0)")};`, + `${outGsplat}.quaternion = ${quaternion2 ?? (gsplat2 ? `${gsplat2}.quaternion` : "vec4(0.0, 0.0, 0.0, 1.0)")};`, + `${outGsplat}.rgba = ${rgba2 ?? (gsplat2 ? `${gsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)")};`, + !rgb2 ? null : `${outGsplat}.rgba.rgb = ${rgb2};`, + !opacity2 ? null : `${outGsplat}.rgba.a = ${opacity2};`, + !x2 ? null : `${outGsplat}.center.x = ${x2};`, + !y2 ? null : `${outGsplat}.center.y = ${y2};`, + !z2 ? null : `${outGsplat}.center.z = ${z2};`, + !r2 ? null : `${outGsplat}.rgba.r = ${r2};`, + !g2 ? null : `${outGsplat}.rgba.g = ${g2};`, + !b22 ? null : `${outGsplat}.rgba.b = ${b22};` + ].filter(Boolean); + } + }); } - return pixels; -} -function pixelsToPngUrl(pixels, width, height) { - const canvas = document.createElement("canvas"); - canvas.width = width; - canvas.height = height; - const ctx = canvas.getContext("2d"); - if (!ctx) { - throw new Error("Can't get 2d context"); + dynoOut() { + return new DynoOutput(this, "gsplat"); } - const imageData = ctx.createImageData(width, height); - imageData.data.set(pixels); - ctx.putImageData(imageData, 0, 0); - return canvas.toDataURL("image/png"); -} -function cloneClock(clock) { - const newClock = new THREE.Clock(clock.autoStart); - newClock.startTime = clock.startTime; - newClock.oldTime = clock.oldTime; - newClock.elapsedTime = clock.elapsedTime; - newClock.running = clock.running; - return newClock; -} -function omitUndefined(obj) { - return Object.fromEntries( - Object.entries(obj).filter(([_, value]) => value !== void 0) - ); } -const IDENT_VERTEX_SHADER = unindent(` - precision highp float; - - in vec3 position; - - void main() { - gl_Position = vec4(position.xy, 0.0, 1.0); +const defineGsplatNormal = unindent(` + vec3 gsplatNormal(vec3 scales, vec4 quaternion) { + float minScale = min(scales.x, min(scales.y, scales.z)); + vec3 normal; + if (scales.z == minScale) { + normal = vec3(0.0, 0.0, 1.0); + } else if (scales.y == minScale) { + normal = vec3(0.0, 1.0, 0.0); + } else { + normal = vec3(1.0, 0.0, 0.0); + } + return quatVec(quaternion, normal); } `); -function averagePositions(positions) { - const sum = new THREE.Vector3(); - for (const position of positions) { - sum.add(position); +class GsplatNormal extends UnaryOp { + constructor({ gsplat }) { + super({ a: gsplat, outKey: "normal", outTypeFunc: () => "vec3" }); + this.globals = () => [defineGsplat, defineGsplatNormal]; + this.statements = ({ inputs, outputs }) => [ + `${outputs.normal} = gsplatNormal(${inputs.a}.scales, ${inputs.a}.quaternion);` + ]; } - return sum.divideScalar(positions.length); } -function averageQuaternions(quaternions) { - if (quaternions.length === 0) { - return new THREE.Quaternion(); +class TransformGsplat extends Dyno { + constructor({ + gsplat, + scale, + rotate, + translate, + recolor + }) { + super({ + inTypes: { + gsplat: Gsplat, + scale: "float", + rotate: "vec4", + translate: "vec3", + recolor: "vec4" + }, + outTypes: { gsplat: Gsplat }, + inputs: { gsplat, scale, rotate, translate, recolor }, + globals: () => [defineGsplat], + statements: ({ inputs, outputs, compile }) => { + const { gsplat: gsplat2 } = outputs; + if (!gsplat2 || !inputs.gsplat) { + return []; + } + const { scale: scale2, rotate: rotate2, translate: translate2, recolor: recolor2 } = inputs; + const indent = compile.indent; + const statements = [ + `${gsplat2} = ${inputs.gsplat};`, + `if (isGsplatActive(${gsplat2}.flags)) {`, + scale2 ? `${indent}${gsplat2}.center *= ${scale2};` : null, + rotate2 ? `${indent}${gsplat2}.center = quatVec(${rotate2}, ${gsplat2}.center);` : null, + translate2 ? `${indent}${gsplat2}.center += ${translate2};` : null, + scale2 ? `${indent}${gsplat2}.scales *= ${scale2};` : null, + rotate2 ? `${indent}${gsplat2}.quaternion = quatQuat(${rotate2}, ${gsplat2}.quaternion);` : null, + recolor2 ? `${indent}${gsplat2}.rgba *= ${recolor2};` : null, + "}" + ].filter(Boolean); + return statements; + } + }); } - const sum = quaternions[0].clone(); - for (let i = 1; i < quaternions.length; i++) { - if (quaternions[i].dot(quaternions[0]) < 0) { - sum.x -= quaternions[i].x; - sum.y -= quaternions[i].y; - sum.z -= quaternions[i].z; - sum.w -= quaternions[i].w; - } else { - sum.x += quaternions[i].x; - sum.y += quaternions[i].y; - sum.z += quaternions[i].z; - sum.w += quaternions[i].w; - } + dynoOut() { + return new DynoOutput(this, "gsplat"); } - return sum.normalize(); -} -function coinciDist(matrix1, matrix2) { - const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1); - const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2); - const direction1 = new THREE.Vector3(0, 0, -1).applyMatrix4(matrix1).sub(origin1).normalize(); - const direction2 = new THREE.Vector3(0, 0, -1).applyMatrix4(matrix2).sub(origin2).normalize(); - const distance2 = origin1.distanceTo(origin2); - const coincidence = direction1.dot(direction2); - return { distance: distance2, coincidence }; -} -function withinDist({ - matrix1, - matrix2, - maxDistance -}) { - const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1); - const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2); - return origin1.distanceTo(origin2) <= maxDistance; -} -function withinCoinciDist({ - matrix1, - matrix2, - maxDistance, - minCoincidence -}) { - const { distance: distance2, coincidence } = coinciDist(matrix1, matrix2); - return distance2 <= maxDistance && (minCoincidence == null || coincidence >= minCoincidence); } -function coorientDist(matrix1, matrix2) { - const [origin1, rotate1] = [new THREE.Vector3(), new THREE.Quaternion()]; - const [origin2, rotate2] = [new THREE.Vector3(), new THREE.Quaternion()]; - matrix1.decompose(origin1, rotate1, new THREE.Vector3()); - matrix2.decompose(origin2, rotate2, new THREE.Vector3()); - const distance2 = origin1.distanceTo(origin2); - const coorient = Math.abs(rotate1.dot(rotate2)); - return { distance: distance2, coorient }; -} -function withinCoorientDist({ - matrix1, - matrix2, - maxDistance, - minCoorient -}) { - const { distance: distance2, coorient } = coorientDist(matrix1, matrix2); - return distance2 <= maxDistance && (minCoorient == null || coorient >= minCoorient); -} -function epsilonSign(value, epsilon = 1e-3) { - if (Math.abs(value) < epsilon) { - return 0; +const splitCovSplat = (covsplat) => new SplitCovSplat({ covsplat }); +const combineCovSplat = ({ + covsplat, + flags, + index, + center, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b +}) => { + return new CombineCovSplat({ + covsplat, + flags, + index, + center, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + }); +}; +class SplitCovSplat extends Dyno { + constructor({ covsplat }) { + super({ + inTypes: { covsplat: CovSplat }, + outTypes: { + flags: "uint", + active: "bool", + index: "int", + center: "vec3", + rgba: "vec4", + rgb: "vec3", + opacity: "float", + x: "float", + y: "float", + z: "float", + r: "float", + g: "float", + b: "float" + }, + inputs: { covsplat }, + globals: () => [defineCovSplat], + statements: ({ inputs, outputs }) => { + const { covsplat: covsplat2 } = inputs; + const { + flags, + active, + index, + center, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + } = outputs; + return [ + !flags ? null : `${flags} = ${covsplat2 ? `${covsplat2}.flags` : "0u"};`, + !active ? null : `${active} = isCovSplatActive(${covsplat2 ? `${covsplat2}.flags` : "0u"});`, + !index ? null : `${index} = ${covsplat2 ? `${covsplat2}.index` : "0"};`, + !center ? null : `${center} = ${covsplat2 ? `${covsplat2}.center` : "vec3(0.0, 0.0, 0.0)"};`, + !rgba ? null : `${rgba} = ${covsplat2 ? `${covsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)"};`, + !rgb ? null : `${rgb} = ${covsplat2 ? `${covsplat2}.rgba.rgb` : "vec3(0.0, 0.0, 0.0)"};`, + !opacity ? null : `${opacity} = ${covsplat2 ? `${covsplat2}.rgba.a` : "0.0"};`, + !x ? null : `${x} = ${covsplat2 ? `${covsplat2}.center.x` : "0.0"};`, + !y ? null : `${y} = ${covsplat2 ? `${covsplat2}.center.y` : "0.0"};`, + !z ? null : `${z} = ${covsplat2 ? `${covsplat2}.center.z` : "0.0"};`, + !r ? null : `${r} = ${covsplat2 ? `${covsplat2}.rgba.r` : "0.0"};`, + !g ? null : `${g} = ${covsplat2 ? `${covsplat2}.rgba.g` : "0.0"};`, + !b ? null : `${b} = ${covsplat2 ? `${covsplat2}.rgba.b` : "0.0"};` + ].filter(Boolean); + } + }); } - return Math.sign(value); -} -function encodeQuatXyz888(q) { - const negQuat = q.w < 0; - const iQuatX = floatToSint8(negQuat ? -q.x : q.x); - const iQuatY = floatToSint8(negQuat ? -q.y : q.y); - const iQuatZ = floatToSint8(negQuat ? -q.z : q.z); - const uQuatX = iQuatX & 255; - const uQuatY = iQuatY & 255; - const uQuatZ = iQuatZ & 255; - return uQuatX | uQuatY << 8 | uQuatZ << 16; } -function decodeQuatXyz888(encoded, out) { - const iQuatX = encoded << 24 >> 24; - const iQuatY = encoded << 16 >> 24; - const iQuatZ = encoded << 8 >> 24; - out.set(iQuatX / 127, iQuatY / 127, iQuatZ / 127, 0); - const dotSelf = out.x * out.x + out.y * out.y + out.z * out.z; - out.w = Math.sqrt(Math.max(0, 1 - dotSelf)); - return out; +class CombineCovSplat extends Dyno { + constructor({ + covsplat, + flags, + index, + center, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + }) { + super({ + inTypes: { + covsplat: CovSplat, + flags: "uint", + index: "int", + center: "vec3", + rgba: "vec4", + rgb: "vec3", + opacity: "float", + x: "float", + y: "float", + z: "float", + r: "float", + g: "float", + b: "float" + }, + outTypes: { covsplat: CovSplat }, + inputs: { + covsplat, + flags, + index, + center, + rgba, + rgb, + opacity, + x, + y, + z, + r, + g, + b + }, + globals: () => [defineCovSplat], + statements: ({ inputs, outputs }) => { + const { covsplat: outCovSplat } = outputs; + if (!outCovSplat) { + return []; + } + const { + covsplat: covsplat2, + flags: flags2, + index: index2, + center: center2, + rgba: rgba2, + rgb: rgb2, + opacity: opacity2, + x: x2, + y: y2, + z: z2, + r: r2, + g: g2, + b: b22 + } = inputs; + return [ + `${outCovSplat}.flags = ${flags2 ?? (covsplat2 ? `${covsplat2}.flags` : "0u")};`, + `${outCovSplat}.index = ${index2 ?? (covsplat2 ? `${covsplat2}.index` : "0")};`, + `${outCovSplat}.center = ${center2 ?? (covsplat2 ? `${covsplat2}.center` : "vec3(0.0, 0.0, 0.0)")};`, + `${outCovSplat}.rgba = ${rgba2 ?? (covsplat2 ? `${covsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)")};`, + !rgb2 ? null : `${outCovSplat}.rgba.rgb = ${rgb2};`, + !opacity2 ? null : `${outCovSplat}.rgba.a = ${opacity2};`, + !x2 ? null : `${outCovSplat}.center.x = ${x2};`, + !y2 ? null : `${outCovSplat}.center.y = ${y2};`, + !z2 ? null : `${outCovSplat}.center.z = ${z2};`, + !r2 ? null : `${outCovSplat}.rgba.r = ${r2};`, + !g2 ? null : `${outCovSplat}.rgba.g = ${g2};`, + !b22 ? null : `${outCovSplat}.rgba.b = ${b22};`, + `${outCovSplat}.xxyyzz = ${covsplat2 ? `${covsplat2}.xxyyzz` : "vec3(0.0, 0.0, 0.0)"};`, + `${outCovSplat}.xyxzyz = ${covsplat2 ? `${covsplat2}.xyxzyz` : "vec3(0.0, 0.0, 0.0)"};` + ].filter(Boolean); + } + }); + } + dynoOut() { + return new DynoOutput(this, "covsplat"); + } } -const tempNormalizedQuaternion = new THREE.Quaternion(); -const tempAxis = new THREE.Vector3(); -function encodeQuatOctXy88R8(q) { - const qnorm = tempNormalizedQuaternion.copy(q).normalize(); - if (qnorm.w < 0) { - qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w); +class SplatTexCoord extends Dyno { + constructor({ index }) { + super({ + inTypes: { index: "int" }, + outTypes: { coord: "ivec3" }, + inputs: { index }, + statements: ({ inputs, outputs }) => { + const { index: index2 } = inputs; + const { coord } = outputs; + if (!index2 || !coord) { + return []; + } + return [`${coord} = splatTexCoord(${index2});`]; + } + }); } - const theta = 2 * Math.acos(qnorm.w); - const xyz_norm = Math.sqrt( - qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z - ); - const axis = xyz_norm < 1e-6 ? tempAxis.set(1, 0, 0) : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm); - const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z); - let p_x = axis.x / sum; - let p_y = axis.y / sum; - if (axis.z < 0) { - const tmp = p_x; - p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1); - p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1); + dynoOut() { + return new DynoOutput(this, "coord"); } - const u_f = p_x * 0.5 + 0.5; - const v_f = p_y * 0.5 + 0.5; - const quantU = Math.round(u_f * 255); - const quantV = Math.round(v_f * 255); - const angleInt = Math.round(theta * (255 / Math.PI)); - return angleInt << 16 | quantV << 8 | quantU; } -function decodeQuatOctXy88R8(encoded, out) { - const quantU = encoded & 255; - const quantV = encoded >>> 8 & 255; - const angleInt = encoded >>> 16 & 255; - const u_f = quantU / 255; - const v_f = quantV / 255; - let f_x = (u_f - 0.5) * 2; - let f_y = (v_f - 0.5) * 2; - const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y)); - const t = Math.max(-f_z, 0); - f_x += f_x >= 0 ? -t : t; - f_y += f_y >= 0 ? -t : t; - const axis = tempAxis.set(f_x, f_y, f_z).normalize(); - const theta = angleInt / 255 * Math.PI; - const halfTheta = theta * 0.5; - const s = Math.sin(halfTheta); - const w = Math.cos(halfTheta); - out.set(axis.x * s, axis.y * s, axis.z * s, w); - return out; -} -function encodeQuatEulerXyz888(q) { - const qNorm = q.clone().normalize(); - const sinr_cosp = 2 * (qNorm.w * qNorm.x + qNorm.y * qNorm.z); - const cosr_cosp = 1 - 2 * (qNorm.x * qNorm.x + qNorm.y * qNorm.y); - const roll = Math.atan2(sinr_cosp, cosr_cosp); - const sinp = 2 * (qNorm.w * qNorm.y - qNorm.z * qNorm.x); - const pitch = Math.abs(sinp) >= 1 ? Math.sign(sinp) * (Math.PI / 2) : Math.asin(sinp); - const siny_cosp = 2 * (qNorm.w * qNorm.z + qNorm.x * qNorm.y); - const cosy_cosp = 1 - 2 * (qNorm.y * qNorm.y + qNorm.z * qNorm.z); - const yaw = Math.atan2(siny_cosp, cosy_cosp); - const normRoll = (roll + Math.PI) / (2 * Math.PI); - const normPitch = (pitch + Math.PI) / (2 * Math.PI); - const normYaw = (yaw + Math.PI) / (2 * Math.PI); - const rollQ = Math.round(normRoll * 255); - const pitchQ = Math.round(normPitch * 255); - const yawQ = Math.round(normYaw * 255); - return yawQ << 16 | pitchQ << 8 | rollQ; -} -function decodeQuatEulerXyz888(encoded, out) { - const rollQ = encoded & 255; - const pitchQ = encoded >>> 8 & 255; - const yawQ = encoded >>> 16 & 255; - const normRoll = rollQ / 255; - const normPitch = pitchQ / 255; - const normYaw = yawQ / 255; - const roll = normRoll * (2 * Math.PI) - Math.PI; - const pitch = normPitch * (2 * Math.PI) - Math.PI; - const yaw = normYaw * (2 * Math.PI) - Math.PI; - const cr = Math.cos(roll * 0.5); - const sr = Math.sin(roll * 0.5); - const cp = Math.cos(pitch * 0.5); - const sp = Math.sin(pitch * 0.5); - const cy = Math.cos(yaw * 0.5); - const sy = Math.sin(yaw * 0.5); - out.w = cr * cp * cy + sr * sp * sy; - out.x = sr * cp * cy - cr * sp * sy; - out.y = cr * sp * cy + sr * cp * sy; - out.z = cr * cp * sy - sr * sp * cy; - out.normalize(); - return out; +class PagedSplatTexCoord extends Dyno { + constructor({ index }) { + super({ + inTypes: { index: "int" }, + outTypes: { coord: "ivec3" }, + inputs: { index }, + statements: ({ inputs, outputs }) => { + const { index: index2 } = inputs; + const { coord } = outputs; + if (!index2 || !coord) { + return []; + } + return [`${coord} = pagedSplatTexCoord(${index2});`]; + } + }); + } + dynoOut() { + return new DynoOutput(this, "coord"); + } } -function encodeQuatOctXy1010R12(qx, qy, qz, qw) { - const qlen = Math.sqrt(qx * qx + qy * qy + qz * qz + qw * qw); - const qnx = (qw < 0 ? -qx : qx) / qlen; - const qny = (qw < 0 ? -qy : qy) / qlen; - const qnz = (qw < 0 ? -qz : qz) / qlen; - const qnw = (qw < 0 ? -qw : qw) / qlen; - const theta = 2 * Math.acos(qnw); - const xyz_norm = Math.sqrt(qnx * qnx + qny * qny + qnz * qnz); - const axisX = xyz_norm < 1e-6 ? 1 : qnx / xyz_norm; - const axisY = xyz_norm < 1e-6 ? 0 : qny / xyz_norm; - const axisZ = xyz_norm < 1e-6 ? 0 : qnz / xyz_norm; - const sum = Math.abs(axisX) + Math.abs(axisY) + Math.abs(axisZ); - let p_x = axisX / sum; - let p_y = axisY / sum; - if (axisZ < 0) { - const tmp = p_x; - p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1); - p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1); +const outputPackedSplat = (gsplat, rgbMinMaxLnScaleMinMax) => new OutputPackedSplat({ gsplat, rgbMinMaxLnScaleMinMax }); +const outputCovSplat = (covsplat, rgbMinMaxLnScaleMinMax) => new OutputCovSplat({ covsplat, rgbMinMaxLnScaleMinMax }); +const outputExtendedSplat = (gsplat) => new OutputExtendedSplat({ gsplat }); +const outputExtCovSplat = (covsplat) => new OutputExtCovSplat({ covsplat }); +const outputSplatDepth = (gsplat, viewCenter, viewDir, sortRadial) => new OutputSplatDepth({ gsplat, viewCenter, viewDir, sortRadial }); +const outputCovSplatDepth = (covsplat, viewCenter, viewDir, sortRadial) => new OutputCovSplatDepth({ covsplat, viewCenter, viewDir, sortRadial }); +const outputRgba8 = (rgba8) => new OutputRgba8({ rgba8 }); +class OutputPackedSplat extends Dyno { + constructor({ + gsplat, + rgbMinMaxLnScaleMinMax + }) { + super({ + inTypes: { gsplat: Gsplat, rgbMinMaxLnScaleMinMax: "vec4" }, + inputs: { gsplat, rgbMinMaxLnScaleMinMax }, + globals: () => [defineGsplat], + statements: ({ inputs, outputs }) => { + const { gsplat: gsplat2, rgbMinMaxLnScaleMinMax: rgbMinMaxLnScaleMinMax2 } = inputs; + if (gsplat2 && rgbMinMaxLnScaleMinMax2) { + return unindentLines(` + if (isGsplatActive(${gsplat2}.flags)) { + target = packSplatEncoding(${gsplat2}.center, ${gsplat2}.scales, ${gsplat2}.quaternion, ${gsplat2}.rgba, ${rgbMinMaxLnScaleMinMax2}); + } else { + target = uvec4(0u, 0u, 0u, 0u); + } + `); + } + return ["target = uvec4(0u, 0u, 0u, 0u);"]; + } + }); } - const u_f = p_x * 0.5 + 0.5; - const v_f = p_y * 0.5 + 0.5; - const quantU = Math.round(u_f * 1023); - const quantV = Math.round(v_f * 1023); - const angleInt = Math.round(theta * (4095 / Math.PI)); - return angleInt << 20 | quantV << 10 | quantU; } -function decodeQuatOctXy1010R12(encoded, out) { - const quantU = encoded & 1023; - const quantV = encoded >>> 10 & 1023; - const angleInt = encoded >>> 20 & 4095; - const u_f = quantU / 1023; - const v_f = quantV / 1023; - let f_x = (u_f - 0.5) * 2; - let f_y = (v_f - 0.5) * 2; - const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y)); - const t = Math.max(-f_z, 0); - f_x += f_x >= 0 ? -t : t; - f_y += f_y >= 0 ? -t : t; - const axisLen = Math.sqrt(f_x * f_x + f_y * f_y + f_z * f_z); - const axisX = axisLen < 1e-6 ? 0 : f_x / axisLen; - const axisY = axisLen < 1e-6 ? 0 : f_y / axisLen; - const axisZ = axisLen < 1e-6 ? 0 : f_z / axisLen; - const theta = angleInt / 4095 * Math.PI; - const halfTheta = theta * 0.5; - const s = Math.sin(halfTheta); - const w = Math.cos(halfTheta); - out.set(axisX * s, axisY * s, axisZ * s, w); - return out; +class OutputCovSplat extends Dyno { + constructor({ + covsplat, + rgbMinMaxLnScaleMinMax + }) { + super({ + inTypes: { covsplat: CovSplat, rgbMinMaxLnScaleMinMax: "vec4" }, + inputs: { covsplat, rgbMinMaxLnScaleMinMax }, + globals: () => [defineCovSplat], + statements: ({ inputs }) => { + const { covsplat: covsplat2, rgbMinMaxLnScaleMinMax: rgbMinMaxLnScaleMinMax2 } = inputs; + if (covsplat2 && rgbMinMaxLnScaleMinMax2) { + return unindentLines(` + if (isCovSplatActive(${covsplat2}.flags)) { + target = packSplatCovEncoding(${covsplat2}.center, ${covsplat2}.rgba, ${covsplat2}.xxyyzz, ${covsplat2}.xyxzyz, ${rgbMinMaxLnScaleMinMax2}); + } else { + target = uvec4(0u); + } + `); + } + return ["target = uvec4(0u);"]; + } + }); + } } -function packSint8Bytes(b0, b1, b22, b3) { - const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127))); - const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127))); - const clampedB2 = Math.round(Math.max(-127, Math.min(127, b22 * 127))); - const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127))); - return clampedB0 & 255 | (clampedB1 & 255) << 8 | (clampedB2 & 255) << 16 | (clampedB3 & 255) << 24; +class OutputExtendedSplat extends Dyno { + constructor({ + gsplat + }) { + super({ + inTypes: { gsplat: Gsplat }, + inputs: { gsplat }, + globals: () => [defineGsplat], + statements: ({ inputs }) => { + const { gsplat: gsplat2 } = inputs; + if (gsplat2) { + return unindentLines(` + if (isGsplatActive(${gsplat2}.flags)) { + packSplatExt(target, target2, ${gsplat2}.center, ${gsplat2}.scales, ${gsplat2}.quaternion, ${gsplat2}.rgba); + } else { + target = uvec4(0u); + target2 = uvec4(0u); + } + `); + } + return ["target = uvec4(0u);", "target2 = uvec4(0u);"]; + } + }); + } } -function encodeSh1Rgb(sh1Array, index, sh1Rgb, encoding) { - const sh1Max = (encoding == null ? void 0 : encoding.sh1Max) ?? 1; - const sh1Scale = 63 / sh1Max; - const base = index * 2; - for (let i = 0; i < 9; ++i) { - const s = sh1Rgb[i] * sh1Scale; - const value = Math.round(Math.max(-63, Math.min(63, s))) & 127; - const bitStart = i * 7; - const bitEnd = bitStart + 7; - const wordStart = Math.floor(bitStart / 32); - const bitOffset = bitStart - wordStart * 32; - const firstWord = value << bitOffset & 4294967295; - sh1Array[base + wordStart] |= firstWord; - if (bitEnd > wordStart * 32 + 32) { - const secondWord = value >>> 32 - bitOffset & 4294967295; - sh1Array[base + wordStart + 1] |= secondWord; - } +class OutputExtCovSplat extends Dyno { + constructor({ + covsplat + }) { + super({ + inTypes: { covsplat: CovSplat }, + inputs: { covsplat }, + globals: () => [defineCovSplat], + statements: ({ inputs }) => { + const { covsplat: covsplat2 } = inputs; + if (covsplat2) { + return unindentLines(` + if (isCovSplatActive(${covsplat2}.flags)) { + packSplatExtCov(target, target2, ${covsplat2}.center, ${covsplat2}.rgba, ${covsplat2}.xxyyzz, ${covsplat2}.xyxzyz); + } else { + target = uvec4(0u); + target2 = uvec4(0u); + } + `); + } + return ["target = uvec4(0u);", "target2 = uvec4(0u);"]; + } + }); } } -function encodeSh2Rgb(sh2Array, index, sh2Rgb, encoding) { - const sh2Max = (encoding == null ? void 0 : encoding.sh2Max) ?? 1; - const sh2Scale = 1 / sh2Max; - sh2Array[index * 4 + 0] = packSint8Bytes( - sh2Rgb[0] * sh2Scale, - sh2Rgb[1] * sh2Scale, - sh2Rgb[2] * sh2Scale, - sh2Rgb[3] * sh2Scale - ); - sh2Array[index * 4 + 1] = packSint8Bytes( - sh2Rgb[4] * sh2Scale, - sh2Rgb[5] * sh2Scale, - sh2Rgb[6] * sh2Scale, - sh2Rgb[7] * sh2Scale - ); - sh2Array[index * 4 + 2] = packSint8Bytes( - sh2Rgb[8] * sh2Scale, - sh2Rgb[9] * sh2Scale, - sh2Rgb[10] * sh2Scale, - sh2Rgb[11] * sh2Scale - ); - sh2Array[index * 4 + 3] = packSint8Bytes( - sh2Rgb[12] * sh2Scale, - sh2Rgb[13] * sh2Scale, - sh2Rgb[14] * sh2Scale, - 0 - ); -} -function encodeSh3Rgb(sh3Array, index, sh3Rgb, encoding) { - const sh3Max = (encoding == null ? void 0 : encoding.sh3Max) ?? 1; - const sh3Scale = 31 / sh3Max; - const base = index * 4; - for (let i = 0; i < 21; ++i) { - const s = sh3Rgb[i] * sh3Scale; - const value = Math.round(Math.max(-31, Math.min(31, s))) & 63; - const bitStart = i * 6; - const bitEnd = bitStart + 6; - const wordStart = Math.floor(bitStart / 32); - const bitOffset = bitStart - wordStart * 32; - const firstWord = value << bitOffset & 4294967295; - sh3Array[base + wordStart] |= firstWord; - if (bitEnd > wordStart * 32 + 32) { - const secondWord = value >>> 32 - bitOffset & 4294967295; - sh3Array[base + wordStart + 1] |= secondWord; - } +class OutputSplatDepth extends Dyno { + constructor({ + gsplat, + viewCenter, + viewDir, + sortRadial + }) { + super({ + inTypes: { + gsplat: Gsplat, + viewCenter: "vec3", + viewDir: "vec3", + sortRadial: "bool" + }, + inputs: { gsplat, viewCenter, viewDir, sortRadial }, + globals: () => [defineGsplat], + statements: ({ inputs }) => { + const { gsplat: gsplat2, viewCenter: viewCenter2, viewDir: viewDir2, sortRadial: sortRadial2 } = inputs; + if (gsplat2 && viewCenter2 && viewDir2 && sortRadial2) { + return unindentLines(` + float metric = 1.0 / 0.0; + if (isGsplatActive(${gsplat2}.flags)) { + vec3 center = ${gsplat2}.center - ${viewCenter2}; + if (${sortRadial2}) { + metric = length(center); + } else { + float bias = 100.0; // reduce popping + metric = dot(center, ${viewDir2}) + bias; + } + } + target3 = floatToVec4(metric); + `); + } + return []; + } + }); } } -function encodeExtRgb(r, g, b) { - const ar = Math.abs(r); - const ag = Math.abs(g); - const ab = Math.abs(b); - const maxAbs = Math.max(ar, ag, ab); - const base = Math.floor(Math.log2(maxAbs)); - const biasedBase = Math.max(0, Math.min(31, base + 15)); - const divisor = 2 ** (biasedBase - 15) / 255; - const uR = Math.round(Math.max(0, Math.min(255, ar / divisor))); - const uG = Math.round(Math.max(0, Math.min(255, ag / divisor))); - const uB = Math.round(Math.max(0, Math.min(255, ab / divisor))); - const expSigns = biasedBase << 3 | ((r < 0 ? 1 : 0) | (g < 0 ? 2 : 0) | (b < 0 ? 4 : 0)); - return uR | uG << 8 | uB << 16 | expSigns << 24; -} -function decodeExtRgb(encoded) { - const color = packedFields.color; - const biasedBase = encoded >>> 27 & 31; - const divisor = 2 ** (biasedBase - 15) / 255; - const r = (encoded & 255) * divisor; - const g = (encoded >>> 8 & 255) * divisor; - const b = (encoded >>> 16 & 255) * divisor; - color.r = encoded & 16777216 ? -r : r; - color.g = encoded & 33554432 ? -g : g; - color.b = encoded & 67108864 ? -b : b; - return color; -} -function encodeExtSh1Rgb(sh1Array, index, sh1Rgb) { - const i4 = index * 4; - for (let k = 0; k < 3; ++k) { - const k3 = k * 3; - sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]); +class OutputCovSplatDepth extends Dyno { + constructor({ + covsplat, + viewCenter, + viewDir, + sortRadial + }) { + super({ + inTypes: { + covsplat: CovSplat, + viewCenter: "vec3", + viewDir: "vec3", + sortRadial: "bool" + }, + inputs: { covsplat, viewCenter, viewDir, sortRadial }, + globals: () => [defineCovSplat], + statements: ({ inputs }) => { + const { covsplat: covsplat2, viewCenter: viewCenter2, viewDir: viewDir2, sortRadial: sortRadial2 } = inputs; + if (covsplat2 && viewCenter2 && viewDir2 && sortRadial2) { + return unindentLines(` + float metric = 1.0 / 0.0; + if (isCovSplatActive(${covsplat2}.flags)) { + vec3 center = ${covsplat2}.center - ${viewCenter2}; + if (${sortRadial2}) { + metric = length(center); + } else { + float bias = 100.0; // reduce popping + metric = dot(center, ${viewDir2}) + bias; + } + } + target3 = floatToVec4(metric); + `); + } + return []; + } + }); } } -function encodeExtSh12Rgb(sh1Array, sh2Array, index, sh1Rgb, sh2Rgb) { - const i4 = index * 4; - for (let k = 0; k < 3; ++k) { - const k3 = k * 3; - sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]); +class OutputRgba8 extends Dyno { + constructor({ rgba8 }) { + super({ + inTypes: { rgba8: "vec4" }, + inputs: { rgba8 }, + statements: ({ inputs, outputs }) => [ + `target = ${inputs.rgba8 ?? "vec4(0.0, 0.0, 0.0, 0.0)"};` + ] + }); } - sh1Array[i4 + 3] = encodeExtRgb(sh2Rgb[0], sh2Rgb[1], sh2Rgb[2]); - for (let k = 1; k < 5; ++k) { - const k5 = k * 5; - sh2Array[i4 + (k - 1)] = encodeExtRgb( - sh2Rgb[k5], - sh2Rgb[k5 + 1], - sh2Rgb[k5 + 2] - ); + dynoOut() { + return new DynoOutput(this, "rgba8"); } } -function encodeExt3Rgb(sh3ArrayA, sh3ArrayB, index, sh3Rgb) { - const i4 = index * 4; - for (let k = 0; k < 4; ++k) { - const k3 = k * 3; - sh3ArrayA[i4 + k] = encodeExtRgb( - sh3Rgb[k3], - sh3Rgb[k3 + 1], - sh3Rgb[k3 + 2] - ); +const uniform = (key, type, value) => new DynoUniform({ key, type, value }); +const dynoBool = (value = false, key) => new DynoBool({ key, value }); +const dynoUint = (value = 0, key) => new DynoUint({ key, value }); +const dynoInt = (value = 0, key) => new DynoInt({ key, value }); +const dynoFloat = (value = 0, key) => new DynoFloat({ key, value }); +const dynoBvec2 = (value, key) => new DynoBvec2({ key, value }); +const dynoUvec2 = (value, key) => new DynoUvec2({ key, value }); +const dynoIvec2 = (value, key) => new DynoIvec2({ key, value }); +const dynoVec2 = (value, key) => new DynoVec2({ key, value }); +const dynoBvec3 = (value, key) => new DynoBvec3({ key, value }); +const dynoUvec3 = (value, key) => new DynoUvec3({ key, value }); +const dynoIvec3 = (value, key) => new DynoIvec3({ key, value }); +const dynoVec3 = (value, key) => new DynoVec3({ key, value }); +const dynoBvec4 = (value, key) => new DynoBvec4({ key, value }); +const dynoUvec4 = (value, key) => new DynoUvec4({ key, value }); +const dynoIvec4 = (value, key) => new DynoIvec4({ key, value }); +const dynoVec4 = (value, key) => new DynoVec4({ key, value }); +const dynoMat2 = (value, key) => new DynoMat2({ key, value }); +const dynoMat2x2 = (value, key) => new DynoMat2x2({ key, value }); +const dynoMat2x3 = (value, key) => new DynoMat2x3({ key, value }); +const dynoMat2x4 = (value, key) => new DynoMat2x4({ key, value }); +const dynoMat3 = (value, key) => new DynoMat3({ key, value }); +const dynoMat3x2 = (value, key) => new DynoMat3x2({ key, value }); +const dynoMat3x3 = (value, key) => new DynoMat3x3({ key, value }); +const dynoMat3x4 = (value, key) => new DynoMat3x4({ key, value }); +const dynoMat4 = (value, key) => new DynoMat4({ key, value }); +const dynoMat4x2 = (value, key) => new DynoMat4x2({ key, value }); +const dynoMat4x3 = (value, key) => new DynoMat4x3({ key, value }); +const dynoMat4x4 = (value, key) => new DynoMat4x4({ key, value }); +const dynoUsampler2D = (value, key) => new DynoUsampler2D({ key, value }); +const dynoIsampler2D = (value, key) => new DynoIsampler2D({ key, value }); +const dynoSampler2D = (value, key) => new DynoSampler2D({ key, value }); +const dynoUsampler2DArray = (value, key) => new DynoUsampler2DArray({ key, value }); +const dynoIsampler2DArray = (key, value) => new DynoIsampler2DArray({ key, value }); +const dynoSampler2DArray = (value, key) => new DynoSampler2DArray({ key, value }); +const dynoUsampler3D = (value, key) => new DynoUsampler3D({ key, value }); +const dynoIsampler3D = (value, key) => new DynoIsampler3D({ key, value }); +const dynoSampler3D = (value, key) => new DynoSampler3D({ key, value }); +const dynoUsamplerCube = (value, key) => new DynoUsamplerCube({ key, value }); +const dynoIsamplerCube = (value, key) => new DynoIsamplerCube({ key, value }); +const dynoSamplerCube = (value, key) => new DynoSamplerCube({ key, value }); +const dynoSampler2DShadow = (value, key) => new DynoSampler2DShadow({ key, value }); +const dynoSampler2DArrayShadow = (value, key) => new DynoSampler2DArrayShadow({ key, value }); +const dynoSamplerCubeShadow = (value, key) => new DynoSamplerCubeShadow({ key, value }); +class DynoUniform extends Dyno { + constructor({ + key, + type, + count, + value, + update, + globals + }) { + key = key ?? "value"; + super({ + outTypes: { [key]: type }, + update: () => { + if (update) { + const value2 = update(this.value); + if (value2 !== void 0) { + this.value = value2; + } + } + this.uniform.value = this.value; + }, + generate: ({ inputs, outputs }) => { + const allGlobals = (globals == null ? void 0 : globals({ inputs, outputs })) ?? []; + const uniforms = {}; + const name = outputs[key]; + if (name) { + allGlobals.push(`uniform ${dynoDeclare(name, type, count)};`); + uniforms[name] = this.uniform; + } + return { globals: allGlobals, uniforms }; + } + }); + this.type = type; + this.count = count; + this.value = value; + this.uniform = { value }; + this.outKey = key; } - for (let k = 4; k < 7; ++k) { - const k3 = k * 3; - sh3ArrayB[i4 + (k - 4)] = encodeExtRgb( - sh3Rgb[k3], - sh3Rgb[k3 + 1], - sh3Rgb[k3 + 2] - ); + dynoOut() { + return new DynoOutput(this, this.outKey); } } -function decompressPartialGzip(fileBytes, numBytes) { - const chunks = []; - let totalBytes = 0; - let result = null; - const gunzip = new Gunzip((data, final) => { - chunks.push(data); - totalBytes += data.length; - if (final || totalBytes >= numBytes) { - const allBytes = new Uint8Array(totalBytes); - let offset2 = 0; - for (const chunk of chunks) { - allBytes.set(chunk, offset2); - offset2 += chunk.length; - } - result = allBytes.slice(0, numBytes); - } - }); - const CHUNK_SIZE = 1024; - let offset = 0; - while (result == null && offset < fileBytes.length) { - const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE); - gunzip.push(chunk, false); - offset += CHUNK_SIZE; +class DynoBool extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "bool", value, update }); } - if (result == null) { - gunzip.push(new Uint8Array(), true); - if (result == null) { - throw new Error("Failed to decompress partial gzip"); - } +} +class DynoUint extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "uint", value, update }); } - return result; } -class GunzipReader { +class DynoInt extends DynoUniform { constructor({ - fileBytes, - chunkBytes = 64 * 1024 + key, + value, + update }) { - this.fileBytes = fileBytes; - this.chunkBytes = chunkBytes; - this.chunks = []; - this.totalBytes = 0; - const ds = new DecompressionStream("gzip"); - const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds); - this.reader = decompressionStream.getReader(); + super({ key, type: "int", value, update }); } - async read(numBytes) { - while (this.totalBytes < numBytes) { - const { value: chunk, done: readerDone } = await this.reader.read(); - if (readerDone) { - break; - } - this.chunks.push(chunk); - this.totalBytes += chunk.length; - } - if (this.totalBytes < numBytes) { - throw new Error( - `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}` - ); - } - const allBytes = new Uint8Array(this.totalBytes); - let outOffset = 0; - for (const chunk of this.chunks) { - allBytes.set(chunk, outOffset); - outOffset += chunk.length; - } - const result = allBytes.subarray(0, numBytes); - this.chunks = [allBytes.subarray(numBytes)]; - this.totalBytes -= numBytes; - return result; +} +class DynoFloat extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "float", value, update }); } } -const utils = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ - __proto__: null, - DataCache, - FreeList, - GunzipReader, - IDENT_VERTEX_SHADER, - Sint8ToFloat, - Uint8ToFloat, - averagePositions, - averageQuaternions, - cloneClock, - coinciDist, - computeMaxSplats, - coorientDist, - decodeExtRgb, - decodeExtSplat, - decodeQuatEulerXyz888, - decodeQuatOctXy1010R12, - decodeQuatOctXy88R8, - decodeQuatXyz888, - decompressPartialGzip, - encodeExt3Rgb, - encodeExtRgb, - encodeExtSh12Rgb, - encodeExtSh1Rgb, - encodeExtSplat, - encodeQuatEulerXyz888, - encodeQuatOctXy1010R12, - encodeQuatOctXy88R8, - encodeQuatXyz888, - encodeSh1Rgb, - encodeSh2Rgb, - encodeSh3Rgb, - epsilonSign, - flipPixels, - floatBitsToUint: floatBitsToUint$1, - floatToSint8, - floatToUint8, - fromHalf, - getTextureSize, - getTransferable, - isAndroid, - isIos, - isMobile, - isOculus, - isQuest2, - isVisionPro, - mapFilterObject, - mapObject, - newArray, - normalize: normalize$1, - omitUndefined, - pixelsToPngUrl, - setPackedSplat, - setPackedSplatCenter, - setPackedSplatOpacity, - setPackedSplatQuat, - setPackedSplatRgb, - setPackedSplatRgba, - setPackedSplatScales, - threeMrtArray, - threeRevision, - toHalf, - uintBitsToFloat: uintBitsToFloat$1, - unpackSplat, - withinCoinciDist, - withinCoorientDist, - withinDist -}, Symbol.toStringTag, { value: "Module" })); -class OldSplatWorker { - constructor() { - this.messages = {}; - this.messageIdNext = 0; - this.worker = new WorkerWrapper$1(); - this.worker.onmessage = (event) => this.onMessage(event); +class DynoBvec2 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "bvec2", value, update }); } - makeMessageId() { - return ++this.messageIdNext; +} +class DynoUvec2 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "uvec2", value, update }); } - makeMessagePromiseId() { - const id = this.makeMessageId(); - const promise = new Promise((resolve, reject) => { - this.messages[id] = { resolve, reject }; - }); - return { id, promise }; +} +class DynoIvec2 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "ivec2", value, update }); } - onMessage(event) { - const { id, result, error } = event.data; - const handler = this.messages[id]; - if (handler) { - delete this.messages[id]; - if (error) { - handler.reject(error); - } else { - handler.resolve(result); - } - } +} +class DynoVec2 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "vec2", value, update }); } - // Invoke an RPC on the worker with the given name and arguments. - // The normal usage of a worker is to run one activity at a time, - // but this function allows for concurrent calls, tagging each request - // with a unique message Id and awaiting a response to that same Id. - // The method will automatically transfer any ArrayBuffers in the - // arguments to the worker. If you'd like to transfer a copy of a - // buffer then you must clone it before passing to this function. - async call(name, args) { - const { id, promise } = this.makeMessagePromiseId(); - this.worker.postMessage( - { name, args, id }, - { transfer: getTransferable(args) } - ); - return promise; +} +class DynoBvec3 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "bvec3", value, update }); } } -let maxWorkers = 4; -let numWorkers = 0; -const freeWorkers = []; -const workerQueue = []; -async function allocWorker() { - const worker = freeWorkers.shift(); - if (worker) { - return worker; +class DynoUvec3 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "uvec3", value, update }); } - if (numWorkers < maxWorkers) { - const worker2 = new OldSplatWorker(); - numWorkers += 1; - return worker2; +} +class DynoIvec3 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "ivec3", value, update }); } - return new Promise((resolve) => { - workerQueue.push(resolve); - }); } -function freeWorker(worker) { - if (numWorkers > maxWorkers) { - numWorkers -= 1; - return; +class DynoVec3 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "vec3", value, update }); } - const waiter = workerQueue.shift(); - if (waiter) { - waiter(worker); - return; +} +class DynoBvec4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "bvec4", value, update }); } - freeWorkers.push(worker); } -async function withWorker(callback) { - const worker = await allocWorker(); - try { - return await callback(worker); - } finally { - freeWorker(worker); +class DynoUvec4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "uvec4", value, update }); } } -const jsContent = '(function() {\n "use strict";\n class ChunkDecoder {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ChunkDecoder.prototype);\n obj.__wbg_ptr = ptr;\n ChunkDecoderFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ChunkDecoderFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_chunkdecoder_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n finish() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.chunkdecoder_finish(ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n */\n push(bytes) {\n const ret = wasm.chunkdecoder_push(this.__wbg_ptr, bytes);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n }\n if (Symbol.dispose) ChunkDecoder.prototype[Symbol.dispose] = ChunkDecoder.prototype.free;\n class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n }\n if (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n }\n if (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n function bhatt_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, rgba) {\n const ret = wasm.bhatt_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function bhatt_lod_packedsplats(num_splats, packed, extra, lod_base, rgba, encoding) {\n const ret = wasm.bhatt_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function decode_to_csplatarray(file_type, path_name, encoding) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_csplatarray(ptr0, len0, ptr1, len1, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function decode_to_extsplats(file_type, path_name, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_extsplats(ptr0, len0, ptr1, len1, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function decode_to_gsplatarray(file_type, path_name) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_gsplatarray(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function decode_to_packedsplats(file_type, path_name, encoding, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_packedsplats(ptr0, len0, ptr1, len1, encoding, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function dispose_lod_tree(lod_id) {\n wasm.dispose_lod_tree(lod_id);\n }\n function get_lod_tree_level(lod_id, level) {\n const ret = wasm.get_lod_tree_level(lod_id, level);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function init_lod_tree(num_splats, lod_tree) {\n const ret = wasm.init_lod_tree(num_splats, lod_tree);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function new_lod_tree(capacity) {\n const ret = wasm.new_lod_tree(capacity);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function new_shared_lod_tree(orig_lod_id) {\n const ret = wasm.new_shared_lod_tree(orig_lod_id);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n }\n function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n }\n function tiny_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, merge_filter, rgba) {\n const ret = wasm.tiny_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function tiny_lod_packedsplats(num_splats, packed, extra, lod_base, merge_filter, rgba, encoding) {\n const ret = wasm.tiny_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 4294967297 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function update_lod_trees(lod_ids, page_bases, chunk_bases, counts, lod_trees) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(page_bases, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_bases, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(counts, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.update_lod_trees(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, lod_trees);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof v === "boolean" ? v : void 0;\n return isLikeNone(ret) ? 16777215 : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof val === "object" && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === void 0;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof obj === "number" ? obj : void 0;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof obj === "string" ? obj : void 0;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() {\n return handleError(function(arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments);\n },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() {\n return handleError(function(arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments);\n },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, void 0);\n table.set(offset + 0, void 0);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n }\n };\n return {\n __proto__: null,\n "./spark_worker_rs_bg.js": import0\n };\n }\n const ChunkDecoderFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\n const CsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\n const GsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n function addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n }\n function debugString(val) {\n const type = typeof val;\n if (type == "number" || type == "boolean" || val == null) {\n return `${val}`;\n }\n if (type == "string") {\n return `"${val}"`;\n }\n if (type == "symbol") {\n const description = val.description;\n if (description == null) {\n return "Symbol";\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == "function") {\n const name = val.name;\n if (typeof name == "string" && name.length > 0) {\n return `Function(${name})`;\n } else {\n return "Function";\n }\n }\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = "[";\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for (let i = 1; i < length; i++) {\n debug += ", " + debugString(val[i]);\n }\n debug += "]";\n return debug;\n }\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n return toString.call(val);\n }\n if (className == "Object") {\n try {\n return "Object(" + JSON.stringify(val) + ")";\n } catch (_) {\n return "Object";\n }\n }\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\n${val.stack}`;\n }\n return className;\n }\n function getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n }\n function getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n }\n function getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n }\n let cachedDataViewMemory0 = null;\n function getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === void 0 && cachedDataViewMemory0.buffer !== wasm.memory.buffer) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n }\n let cachedFloat32ArrayMemory0 = null;\n function getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n }\n function getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n }\n let cachedUint16ArrayMemory0 = null;\n function getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n }\n let cachedUint32ArrayMemory0 = null;\n function getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n }\n let cachedUint8ArrayMemory0 = null;\n function getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n }\n function handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n }\n function isLikeNone(x) {\n return x === void 0 || x === null;\n }\n function passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n }\n function passArrayF32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getFloat32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n }\n function passStringToWasm0(arg, malloc, realloc) {\n if (realloc === void 0) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr2 = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr2;\n }\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n const mem = getUint8ArrayMemory0();\n let offset = 0;\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 127) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n WASM_VECTOR_LEN = offset;\n return ptr;\n }\n function takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n }\n let cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n const MAX_SAFARI_DECODE_BYTES = 2146435072;\n let numBytesDecoded = 0;\n function decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n }\n const cachedTextEncoder = new TextEncoder();\n if (!("encodeInto" in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function(arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n }\n let WASM_VECTOR_LEN = 0;\n let wasm;\n function __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n }\n async function __wbg_load(module, imports) {\n if (typeof Response === "function" && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === "function") {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n if (validResponse && module.headers.get("Content-Type") !== "application/wasm") {\n console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n", e);\n } else {\n throw e;\n }\n }\n }\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n function expectedResponseType(type) {\n switch (type) {\n case "basic":\n case "cors":\n case "default":\n return true;\n }\n return false;\n }\n }\n async function __wbg_init(module_or_path) {\n if (wasm !== void 0) return wasm;\n if (module_or_path !== void 0) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({ module_or_path } = module_or_path);\n } else {\n console.warn("using deprecated parameters for the initialization function; pass a single object instead");\n }\n }\n if (module_or_path === void 0) {\n module_or_path = new URL("data:application/wasm;base64,AGFzbQEAAAAB6wZpYAN/f38Bf2ACf38AYAJ/fwF/YAF/AGABfwF/YAN/f38AYAR/f39/AGAFf39/f38AYAADf39/YAZ/f39/f38AYAd/f39/f39/AGAEf39/fwF/YAFvAX9gCH9/f39/f39/AGABfwN/f39gBX9/f39/AX9gAX0BfWAAAGACf28AYAF/AX5gA399fwBgBn9/f39/fwF/YAZ/f39/f30AYAABf2ACf30AYAV/f39+fwBgA29/fwFvYAN/f28AYAF/AW9gAAFvYAJvbwF/YAl/f39/f39/f38AYAF+AX9gAn9vA39/f2ACfX0BfWADb39/AGACb28Bb2ACb38Bb2ACf38Bb2AEf39/fQF/YAx/f39/f39/f39/f38AYAl/f39/f39/f38Bf2AFf39/fX8AYAd/f39/f39/AX9gBX9/f399AGAEf31/fwF/YBN/f39/f39/f39/f39/f39/f39/AX9gE39/f39/f39/f39/f39/f39/f38AYAN+fn8BfmAHf39/f399fQBgA39+fgBgBX9/fn9/AGAFf398f38AYAV/f31/fwBgBH9vf28Df39/YAN/b28Bf2AAAn9/YANvb28Bf2ADb29vAGADb29/AGABbwFvYAF8AW9gCn9/f39/f39/f38Bf2ALf39/f39/f39/f38Bf2AKf39/f39/f39/fwBgBn9/fX9/fwBgAn9/AX1gBH9/f34AYAN/f38BfmACf34AYAN/fX8Bf2AFf39/fn4AYAZ/fn9/f38AYAZ/f39/fX0AYAF/AX1gBH5+f38BfmAFf39/f38BfWAJf39/f39/fn5+AGAEf39/fwF9YAJ+fwBgA39/ewBgAn9+AX9gAn1/AX1gA319fQF9YAR/fn5/AGAGf39/fn9/AGAGf39/fH9/AGAGf39/fX9/AGATf318f39/f39/f39/f39/f39/fwN/f39gCX9/f39/f39/bwN/f39gCH9/f39vf39/A39/f2AHf29/fX9/bwN/f39gB39vb399f38Df39/YAd/f39/f39/A39/f2AGf29vf31/A39/f2AGf29/fX9vA39/f2AFf39/f28Df39/YAR/b29/A39/f2AEf39/fwN/f39gAn9/A39/f2ACf28Cf39gBH9+f38AYAR/fX9/AGAEf3x/fwBgAXwBfwKdFS0XLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfZDUxZTg5NDU4YjNmZGJmNgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF8xZTcwMTc5OGZkY2FhM2I0AAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzQ0ODEyNjc2OWJmN2MxODEAIxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsX2U0MjI3NWU2MDFlMTRlZWIAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyZfX3diZ19uZXdfd2l0aF9sZW5ndGhfNDFhMjIxOTFiOWJkZmQ2NgAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX25ld180ZjlmYWZiYjM5MDlhZjcyAB0XLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzhlZTJkMzRmYWNiODQ2NmUAORcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfZjNjOWRmNGYzOGYzZjc5OAAdFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzG19fd2JnX3B1c2hfNmJkYmM5OTBiZTVhYzM3YgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX2dldF9mOTY3MDJjNjI0NWU0ZWY5ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMqX193YmdfX193YmluZGdlbl9pc19mYWxzeV9jNmRkZmFlMWJiNTZkNWVmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzZiZTQyNzY4YzY5MGUzODAAOhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19nZXRfNDg0OGUzNTBiNDBhZmMxNgAlFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2dzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2NzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHF9fd2JnX0Vycm9yXzJlNTliMWIzN2E5YTM0YzMAJhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcytfX3diZ19fX3diaW5kZ2VuX2lzX29iamVjdF80MGM1YTgwNTcyZThmOWQzAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMnX193YmdfZ2V0X3dpdGhfcmVmX2tleV82NDEyY2YzMDk0NTk5Njk0ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMuX193YmdfX193YmluZGdlbl9pc191bmRlZmluZWRfYzBjY2E3MmI4MmI4NmY0ZAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJF9fd2JnX19fd2JpbmRnZW5faW5fNGJkN2E1N2U1NDMzNzM2NgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fbnVtYmVyX2dldF83NTc5YWFiMDJhOGE2MjBjABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMtX193YmdfX193YmluZGdlbl9ib29sZWFuX2dldF9hODZjMjE2NTc1YTc1YzMwAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzgxYjQxNzQzNTJlNmEwOTUAOxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx1fX3diZ19sZW5ndGhfMGMzMmNiODU0M2M4ZTRjOAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzH19fd2JnX3N1YmFycmF5XzBmOThkM2ZiNjM0NTA4YWQAGhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsXzNlMDVlYjk1NDU1NjUwNDYAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diZ19zZXRfaW5kZXhfMzM4YTY2ZTQwZmM0NWRlZQAjFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF9hNGNhOWU3ODM1OWI1ZjFmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfNTE3Y2QwZjE4MTFhYjg3MgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfNjRjMjg3YTI3Y2MyNGQyNwAbFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF82ZTgyMWVkZGU0OTdhNTMyAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMkX193YmdfZ2V0X3VuY2hlY2tlZF83ZDdiYWJlMzJlOWU2YTU0ACUXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193YmdfbmV3XzIyN2Q3YzA1NDE0ZWI4NjEAHRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxxfX3diZ19zdGFja18zYjBkOTc0YmJmMzFlNDRmABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMcX193YmdfZXJyb3JfYTZmYTIwMmI1OGFhMWNkMwABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzMF9fd2JnX19fd2JpbmRnZW5fanN2YWxfbG9vc2VfZXFfM2E3MmFlNzY0ZDQ2ZDk0NAAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fc3RyaW5nX2dldF85MTRkZjk3ZmNmYTc4OGYyABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMsX193YmdfaW5zdGFuY2VvZl9VaW50OEFycmF5XzRiOGRhNjgzZGViMjVkNzIADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcy1fX3diZ19pbnN0YW5jZW9mX0FycmF5QnVmZmVyX2ZmN2MxMzM3YTVlM2IzM2EADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfYTU2MDM3OGVhMTI0MGIxNAA8Fy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfODFmYzc3Njc5YWY4M2JjNgABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLl9fd2JnX19fd2JpbmRnZW5fZGVidWdfc3RyaW5nX2RkNWQyZDA3Y2U5ZTZjNTcAEhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx9fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlABEXLi9zcGFya193b3JrZXJfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDEAPRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMgAmA5cKlQoYGBQUAQoKAQkBCgoFCgkKBAQnBAQNJw0BAQYEBAoEBAUNBgQEBAQJCREFBgEJAQQEBAQJCQYBAgcoCQIJASgGBQ0BKQQGAQA+BQE/DQcGAgIGAgYGAQEGBgUEBAQEBgECBgUGBgYCBwkCBgEFBgEBAwMEBA8DBAEHAQcGAAYDBA0BAgEEAQEVAQYBBAIEBQYDBUABDwcDAgEBBwICBSoCCQEFBwQEBgQCBwUfAioGAQcFBgEHBhYGAQcrCQENAAEBAAIFAQIFAQUKLCsGBQcDBgYBDQEFAwEDBAUCBQMCAwMBAQFBAgYBLAcJARADEEIHBwUGAQMHBwECAgQWCQkBAQJDBw0DCUQAAQEBAQELBC0DAwMEAQIBAgECAwMCRQUGBEYBAQEBBwACCRkCBQIBAQcABQQJAQYBRwYGSAMDBQUDAQUDBgUFAwMtBgUKBQYBAwkABQUHAQIDAwMDLi4FCQkvLwkHBwIBAQAGBQEDAwMDAQMAAQIBAQYCAQZJAgsFAQAFAQYJCQQEBAQCBAEVAQICFQABAQUGAwUVBw0ABQUHAgEAAAIFBQAACQUWHwICCgICAQcHAgMHCgUFAwMBARkCBwUwAgUFBQMwBAABAQQBMQMDCgkFAwMEChBKAQUFBQUWBgEDBksHBQEDAwIBBAIBAQUCBgcBAgICAQEDAgQBAkwDTQEHBwcHAQIKBwlOAwNPAgUBAgcHBQsGAgQEBAEDAQIJBgYHAQMPARcHEAIEUAoCBAMGBAQBDwUfAgkDBAsZFAoCAgIQAwcxBAcCAzIAAQcWAQMCAgYBBAECDwEGCwEFAhcGAQICAgICAgYCEAEHAgcDBwUEBAICBAEBAQEBAQIBAgQEAQECAAICAgIBAgMBBwMCAxAEAQMFAgEBAwMAAgMCAQkBAQEFAgIHAwEDAwcCAAcDAwICAgECBwMpBQICAgICAQIFBQEBAQICAgICAlEBAgICAgICAgEDAgkCAQEHAwEDAwEBAQEBCQkCAwIBAQIBAQMBAQEFAQUCAgFSAQICUwMDAQEBBgADAwEDAgELCwUCAgEBBAMBCwMDAgEBAgMDAwEBAQICAAMyAAAHAgUDAwUCAxkFAxQUBwcJAwYFBQUFAwMDAwMDAwYYGAMFAgMABgMEBAQEAgUBBAQECQQDBwQFAwMDAwMCAgICBVQFBAEDEwEDAQEFBARVCVZXAQECBQcCBhAAAAAAAAAAAAAAAAAEAgIAAAAAIAQgAAQgBAQEAgACAgIAWAUTBQEAAAABAgABAgIGBQIBBAICAlkPWgcCBgIHAQFbXF0DEQMDXl8RC2ACNmFiNgEJAgIhIWMhAAICAgICAg4ODg4ODg4ODgQEBAQCAmQBAQEBAgICAgICAgICFQICAgICAgICAQICAQICDwczNTQCAQECAgIGCwIAAQIANzcDAgIiIgACBQMCAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAwECBQEBAQEBAQEBBAIAAgICAgIJAgICAgEBAQECAwEBAQICAgIEaAMDAgcCCQEXBRcSEgIBAgEBAQEBAQEBAgIBAgEBAQEBAQEDBAEDBQEFBQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAwMBAQEBAQEBAQEBEQERAgICAQIBAgECAgICAQEBAQEBAQEEAwEBAQEBAQEBAQMDCgEEAgEiBAQEBAQEEQQXBQQLAnAB4QThBG8AgAgFAwEAEwYPAn8BQYCAwAALfwFBgAgLB7AMPgZtZW1vcnkCABdfX3diZ19jaHVua2RlY29kZXJfZnJlZQCSBBZfX3diZ19jc3BsYXRhcnJheV9mcmVlALYFIV9fd2JnX2dldF9jc3BsYXRhcnJheV9tYXhTaERlZ3JlZQClCB9fX3diZ19nZXRfY3NwbGF0YXJyYXlfbnVtU3BsYXRzAKYIIV9fd2JnX2dldF9nc3BsYXRhcnJheV9tYXhTaERlZ3JlZQCnCB9fX3diZ19nZXRfZ3NwbGF0YXJyYXlfbnVtU3BsYXRzAKgIFl9fd2JnX2dzcGxhdGFycmF5X2ZyZWUAtwUhX193Ymdfc2V0X2NzcGxhdGFycmF5X21heFNoRGVncmVlAKwIH19fd2JnX3NldF9jc3BsYXRhcnJheV9udW1TcGxhdHMArQghX193Ymdfc2V0X2dzcGxhdGFycmF5X21heFNoRGVncmVlAK4IH19fd2JnX3NldF9nc3BsYXRhcnJheV9udW1TcGxhdHMArwgTYmhhdHRfbG9kX2V4dHNwbGF0cwCDCBZiaGF0dF9sb2RfcGFja2Vkc3BsYXRzAIQIE2NodW5rZGVjb2Rlcl9maW5pc2gAoggRY2h1bmtkZWNvZGVyX3B1c2gAqwgVY3NwbGF0YXJyYXlfYmhhdHRfbG9kAP4GE2NzcGxhdGFycmF5X2hhc19sb2QAxgcYY3NwbGF0YXJyYXlfaW5qZWN0X3JnYmE4AMIJD2NzcGxhdGFycmF5X2xlbgDVBxRjc3BsYXRhcnJheV90aW55X2xvZADrBhhjc3BsYXRhcnJheV90b19leHRzcGxhdHMAnAgcY3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzX2xvZACeCBtjc3BsYXRhcnJheV90b19wYWNrZWRzcGxhdHMAnQgfY3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzX2xvZACfCBVkZWNvZGVfdG9fY3NwbGF0YXJyYXkAhwgTZGVjb2RlX3RvX2V4dHNwbGF0cwD+BxVkZWNvZGVfdG9fZ3NwbGF0YXJyYXkAiwgWZGVjb2RlX3RvX3BhY2tlZHNwbGF0cwD0BxBkaXNwb3NlX2xvZF90cmVlAIwCGGV4dHNwbGF0c190b19nc3BsYXRhcnJheQCKCBJnZXRfbG9kX3RyZWVfbGV2ZWwAkwgVZ3NwbGF0YXJyYXlfYmhhdHRfbG9kAP8GGGdzcGxhdGFycmF5X2luamVjdF9yZ2JhOADDCQ9nc3BsYXRhcnJheV9sZW4A1QcUZ3NwbGF0YXJyYXlfdGlueV9sb2QA7AYYZ3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzAKAIHGdzcGxhdGFycmF5X3RvX2V4dHNwbGF0c19sb2QAoQgbZ3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzAJEIH2dzcGxhdGFycmF5X3RvX3BhY2tlZHNwbGF0c19sb2QAkggNaW5pdF9sb2RfdHJlZQCUCAxuZXdfbG9kX3RyZWUApAgTbmV3X3NoYXJlZF9sb2RfdHJlZQCjCBtwYWNrZWRzcGxhdHNfdG9fY3NwbGF0YXJyYXkAjAgbcGFja2Vkc3BsYXRzX3RvX2dzcGxhdGFycmF5AIkIDHNpbWRfZW5hYmxlZADACg1zb3J0MzJfc3BsYXRzANoIC3NvcnRfc3BsYXRzANsIEnRpbnlfbG9kX2V4dHNwbGF0cwD9BxV0aW55X2xvZF9wYWNrZWRzcGxhdHMA/AcSdHJhdmVyc2VfbG9kX3RyZWVzANwHEHVwZGF0ZV9sb2RfdHJlZXMA8gcKd2FzbV9zdGFydACFCBNnc3BsYXRhcnJheV9oYXNfbG9kAMYHEV9fd2JpbmRnZW5fbWFsbG9jANoHEl9fd2JpbmRnZW5fcmVhbGxvYwCGCA9fX3diaW5kZ2VuX2ZyZWUAlgcUX193YmluZGdlbl9leG5fc3RvcmUA2gkXX19leHRlcm5yZWZfdGFibGVfYWxsb2MA2gQVX193YmluZGdlbl9leHRlcm5yZWZzAQEZX19leHRlcm5yZWZfdGFibGVfZGVhbGxvYwCbBxBfX3diaW5kZ2VuX3N0YXJ0AL4KCbgJAQBBAQvgBIsFxAnpCPMD7QiNASwrvAnECboJ0gjoB5sF9QSnAqIE8gHVCMQBggeeBOwHrASyCvwC5wP2AagG0AeJBssF5gaWCMMI3gLRCZsIswa0AsQIhQXGCYkG3APTA8AG0AmSCpMKugW4BZsKkwGPBtkG3Qj0BMcH2AjDApoKuAiZCsYJ1gLEBLIGpwOABu0GyAjcBdUFyQjJCMkIrgevB7YHygiwB9MIuAevB8sIsQfMCK8HlAfICLkIkQfZCPEG1AjuBukHlwrhBpwKugixCLsI/ATSCaMG7wfzBNMFqAXSCc8J5APKAo0GwgGDA9sExQTVBH20CecI/QjyCIMJiAnwCIwJhgn0CP8I9wiLCYUJhAmCCfoIjQnxCIcJgAn1CIEJ/gjqCIUE/QnRA4oHkQHKBogIgATmCdYDiQeQAYEE+gnXA4cHhQGGBOwJ0gOIB5IB5gj2CIkJgwfGCc8JswqUCsUJwQqDB9cHkgWBCpIJnAnaBs4FrgKzB6cKsge6BdIGsQXwBfEF/AWGCsQJoArjBN0EhQPCCKoKwgjGCc8Jnwq5CcQJ/QXtB4kK7QexBK4G6wSNB4UKjQeDCv4FkQmMCo8J8Qe1CuAHjQrFCeAHwQqQCYcK6gaECoIKoQrJBagKigqOCYsK3AiICqUHlAnMCdAGswikB78K9wSZCcsJ0QbBCJgHmgnICdcGsgipB5kHlgnHCZkGtQinB4wGlwnJCZgGvwiVCcoJvga0CJcHmwnNCZsG2AfLBoYHmAnOCZoG9gfNBe4HxQa4CZEK6wHaBYAK5wX7CPgI8wjvCIoJ+QjuCPwItQb/Cb0HuAOHA+oJxAe1BfkG8wnMB4kB8AlI8QlSnAPoCcEH0we8BvUJuge2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gICAeEYNBCADKQJMIR0gAygCVCEMIANBgICAgHg2AlQgDEGAgICAeEYNBCADKQJYISAgAygCPCERIANBgICAgHg2AjwgEUGAgICAeEYNBCADKQJAISIgAygCMCEPIANBgICAgHg2AjAgD0GAgICAeEYNBCADKQI0ISMgAigCzAEiBSACKALAASIGRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIUIAZBACAGIBRNG2tBDGxqIgYgGTcCBCAGIAQ2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIBo3AgQgBCAHNgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAcNwIEIAQgCTYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgHjcCBCAEIAs2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIB03AgQgBCAINgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAgNwIEIAQgDDYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgIjcCBCAEIBE2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEg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SxsNDyAEEKICCyADQQA2AlggA0KAgICAwAA3AlAgA0EANgKMASADQoCAgIDAADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCINIAJBBXQiCWoiBSgCACIGIAAoAggiBEkEQCAAKAIEIgsgBkEkbGoiBv1dAgggBioCECIB/SACIAH9IAMgA/0JAkwiLv3nAf1oIi39HwL8BCEaIC39HwH8BCEbIC39HwD8BCEcIAcgAkEBaiIITQRAIAIhCgwDCyAHQQFrIQogFUEBcQRAIAchCAwDCyAJIA1qQSBqIQYDQCAGKAIAIgkgBE8NAiALIAlBJGxqIgn9XQIIIAkqAhAiAf0gAiAB/SADIC795wH9aCIt/R8A/AQgHFIgLf0fAfwEIBtSckUgLf0fAvwEIBpRcUUEQCAIQQFrIQoMBAsgBkEgaiEGIAcgCEEBaiIIRw0ACyAHIQgMAgsgBiAEQdTAxwAQjAcACyAJIARB1MDHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayILrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiI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ADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCIWIAJBBXQiCWoiBigCACIFIAAoAggiBEkEQCAAKAIEIgogBUEYbGr9AAIAICz9DQABAgMEBQYHCAkKCwgJCgsgA/0JAkwiLf3nAf1oIiz9HwL8BCEaICz9HwH8BCEbICz9HwD8BCEcIAcgAkEBaiIITQRAIAIhCwwDCyAHQQFrIQsgDkEBcQRAIAchCAwDCyAJIBZqQSBqIQUDQCAFKAIAIgkgBE8NAiAKIAlBGGxq/QACACAs/Q0AAQIDBAUGBwgJCgsICQoLIC395wH9aCIs/R8A/AQgHFIgLP0fAfwEIBtSckUgLP0fAvwEIBpRcUUEQCAIQQFrIQsMBAsgBUEgaiEFIAcgCEEBaiIIRw0ACyAHIQgMAgsgBSAEQdy7xwAQjAcACyAJIARB3LvHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayIMrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhCADKQPwASIbQn+FfiIc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IANrIhUNAQwCCwtBqJDIACkDACJ6Qv8Bg0IEUQ0AIHpCIIinIhIgeqciA0H/AXFBBEYNARogekIQiKchFSB6QgiIpyEIQQAhCwwCCyAELwHIDCAELQDKDEEQdHILIRJBASEJIAEgEkEBdkEHcToAKyABIBJBAXEiA0U6ACggASASQQR2QQFxOgApAkACQAJAAkACQAJAAkAgAw0AIARBADoA2hggBEEAOwHYGCABKALoAyELQQMhFSAEQdgYaiEIAkADQAJAIHlQBEBCACF5DAELIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQAgAyAIaiEIIBUgA2siFQ0BDAILC0EAIQtBqJDIACkDACJ6pyIDQf8BcUEERg0AIHpCIIinIRIgekIQiKchFSB6QgiIpyEIDAgLIAECfwJAAkACQAJ/AkACQCAELwHYGCAELQDaGEEQdHIiB0Gdg6gBRgRAIARBADsByAwgASgC6AMhC0ECIRUgBEHIDGohCANAIHlQBEBCACF5DAMLIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQIgAyAIaiEIIBUgA2siFQ0ACwwCCyAHQQh2IQJBESELDA4LQaiQyAApAwAiekL/AYNCBFENACB6QhCIpyEVIHqnIgNB/wFxQQRHDQIgFQwBCyAELwHIDAshESAEQQA7AcgMIAEoAugDIQtBAiEVIARByAxqIQgDQCB5UA0CIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4g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ADcD0EggA0EANgLYSCADQQA6AMJIIANB4MgAaiIBIANBsMUAahCcBCADLQDgSEEoRwRAIAUgARD8AyADKAIYIgFBBkcNBAsgA0EQNgLYSCADQdDRAGoiASADQbDFAGpBsAP8CgAAIANBGGogARCcBCADLQAYIgZBKEcEQCADQarVAGogAy0AGzoAACADIAMvABk7AahVIAMoAhwhBSADKQIgIRQgARCdAQwZCwJAAkAgAygCHCIBLQC+AiICQQN0KQOwkkkgATUCtAIgATEAvwJ+IhR+IhVC8P////8AVg0AIBVCB3xCA4inQQFqrUGAASABKAK4AiIBIAFBgAFPG61+IhVCIIinDQAgFaciAUH/AXEiBEEARyABQYB+cUGAAmoiBiABSXENACAGIAEgBBsiBkGBgAhJDQELQYCACCEGC0EBIQVB/////wchBAJAIAJBA3QpA+iSSSAUfiIUQvD/////AFYNACAUQgd8QgOIp0EBaiIBQf////8DSw0AIAFBAnQiAkFAcUFAayEIIAFBD3EiAUEAIAIgCEsbDQBBgIAIIAggAiABGyIBIAFBgIAITRshBAsgBgRAIAYQcSIFRQ0WCyADQRhqIANB0NEAakGoA/wKAAAgA0H1A2pCADcAACADQbQEakEANgIAIANBAToA3QQgA0EANgLUBCADQQA2AsgDIANCADcDwAMgA0IANwPwAyADQYCAgIB4NgKgBCADQgE3A5gEIANCADcDkAQgAyAFNgKMBCADIAY2AogEIANCfzcDgAQgA/0MAAAAAAAAAAAAAAAAAAAAAP0LAqQEIAMgBDYCuAQgAyADKAL4VDYC2AQgA0ECNgLcAyADQQA6ANwEIANBADYC0AQgA0KAgICAEDcDyAQgA0EANgLABAJAIAMoAiBBAkcEQEEnIQYgAy0A3gJBA3QpA6CTSSADNQLUAiIUIAMxAN8Cfn5C8f////8AVA0BDBkLQayYxwAQ3QkACyADKALYAiEFIANBEGogA0EYaiIBEIoFIAMtABBBA3QpA9iTSSADMQARIBR+fiIUQvD/////AFYNFyAFrSAUQgd8QgOIfiIVQiCIpyAVp0EASHINFyADQZDVAGogARCMASADLQCQVSIGQShHBEAgA0Gq1QBqIAMtAJNVOgAAIAMgAy8AkVU7AahVIAMoApRVIQUgAykCmFUhFAwY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nNPBABCMBwALIAMgCEGs08EAEIwHAAsgCCAHQbzTwQAQjAcACyAIIAdBzNPBABCMBwALIAggB0Hc08EAEIwHAAsgBiABQezSwQAQjAcACyAHIAFB3NLBABCMBwALIAQgAUHM0sEAEIwHAAsgACAAKAKYAiALIAAoAuwBIAAoAvABEKAFAkACQAJAIAAoAuQBIgEgCyAQbCICTwRAIABBADYC5AEgASACayEDIAVFDQEgASACRg0DIANFDQIgACgC4AEiASABIAJqIAP8CgAADAILDBALIAEgAkYNAQsgACADNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0FIABBADYCmAIgAEEFOgCcAgwFCyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0HC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAgD2UQwAAIMGSEIkEOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQngIgACgC5AEiAiAFSQ0WIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkGc0cEAEIwHAAsgASACQazRwQAQjAcACyACIARBvNHBABCMBwALIAIgBEHM0cEAEIwHAAsgAiAEQdzRwQAQjAcACyACIARB7NHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0EIABBADYCmAIgAEEEOgCcAgwECyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0GC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQpAIgACgC5AEiAiAFSQ0VIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkG80MEAEIwHAAsgASACQczQwQAQjAcACyACIARB3NDBABCMBwALIAIgBEHs0MEAEIwHAAsgAiAEQfzQwQAQjAcACyACIARBjNHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0DIABBADYCmAIgAEEDOgCcAgwDCyAAKALkASICIAAoApACIAAoApgCayILSQRAIAIiC0GAgARJDQULQYCABCALIAtBgIAETxsiCCAAKALwASIBSwRAIAggAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBSABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgQEQCADQQAgBPwLAAsgASACaiICQQFrIQEgBSACQQJ0akEEawUgAwtBADYCACAAIAFBAWo2AvABCwJAIAsEQEMAAIA/QwAAAEAgACwAngJBAE4bIRlBACEDQQAhAQJAAkADQCABIAAoAuQBIgJPDQIgASAAKALwASICTw0BIAAoAuwBIANqIBkgACgC4AEgAWotAACzQwAAf0OVlDgCACADQQRqIQMgCCABQQFqIgFHDQALIAAoAuwBIQ4gACgC8AEhAyAAIAAoApgCIAgQ6QRBACEBQQwhBiAIIQUgAyECA0ACQAJAIAAoAnwiBCABQQNqSwRAIAIEQCABIA5qKAIAIgpB////A3EhDCAKQYCAgIB4cSEEIApBgICA/AdxIgdBgICA/AdGBEAgBEEQdiAMQQ12ckGABEEAIAwbckGA+AFyIQQMBAsgBEEQdiEEIAdBgICAuARLDQIgB0GAgIDEA08EQCAKQQx2IApB/98AcUEAR3EgB0ENdiAMQQ12akGAgAFqIARyaiEEDAQLIAdBgICAmANJDQMgDEGAgIAEciIKQf4AIAdBF3YiDGt2IQcgCkEdIAxrIgx2QQFxBH8gB0EDIAx0QQFrIApxQQBHagUgBwsgBHIhBAwDCyADIANBuLPBABCMBwALIAEgAUEEaiAEQcizwQAQ6gcACyAEQYD4AXIhBAsgACgCeCAGaiAEQf//A3E2AgAgBkEQaiEGIAJBAWshAiABQQRqIQEgBUEBayIFDQALDAMLIAEgAkGs0MEAEIwHAAsgASACQZzQwQAQjAcACyAAIAAoApgCIAgQ6QQLIABBAToAwAECQAJAAkAgCCAAKALkASICTQRAIABBADYC5AEgAiAIayEBIAtFDQEgAiAIRg0DIAFFDQIgACgC4AEiAiACIAhqIAH8CgAADAILQQAgCCACQYSkxwAQ6gcACyACIAhGDQELIAAgATYC5AELIAAgACgCmAIgCGoiAjYCmAIgAiAAKAKQAkcNAiAAQQA2ApgCIABBAjoAnAIMAgsgC0UNAEEBIAAtAJ0CdLMhGUEAIQhBACEBQQAhAkEAIQMCQAJAAkACQANAIAFBA2oiBSAAKALkASIHSwRAIAEgBSAHQYzQwQAQ6gcACyADIAAoAvABIgdPDQEgACgC7AEgAmogACgC4AEgAWoiB0ECai0AACIGQRB0IActAAByIAdBAWotAABBCHRyIgdBgICAeHIgByAGwEEASBuyIBmVOAIAIAFBBmoiByAAKALkASIGSw0CIANBAWoiBSAAKALwASIGTw0DIAAoAuwBIAJqQQRqIAAoAuABIAFqIgVBBWotAAAiBkEQdCAFQQNqLQAAciAFQQRqLQAAQQh0ciIFQYCAgHhyIAUgBsBBAEgbsiAZlTgCACABQQlqIgUgACgC5AEiBksNBCADQQJqIgcgACgC8AEiBkkEQCAAKALsASACakEIaiAAKALgASABaiIBQQhqLQAAIgdBEHQgAUEGai0AAHIgAUEHai0AAEEIdHIiAUGAgIB4ciABIAfAQQBIG7IgGZU4AgAgAkEMaiECIANBA2ohAyAFIQEgCEEBaiIIIARJDQEMBgsLIAcgBkHcz8EAEIwHAAsgAyAHQbzPwQAQjAcACyAFIAcgBkH8z8EAEOoHAAsgBSAGQczPwQAQjAcACyAHIAUgBkHsz8EAEOoHAAsgACAAKAKYAiAEIAAoAuwBIAAoAvABEMIFAkACQAJAIAAoAuQBIgEgBCAMbCICTwRAIABBADYC5AEgASACayEDIAtFDQEgASACRg0DIANFDQIgACgC4AEiASABIAJqIAP8CgAADAILDAsLIAEgAkYNAQsgACADNgLkAQsgACAAKAKYAiAEaiICNgKYAiACIAAoApACRw0AIABBADYCmAIgAEEBOgCcAgwACwALIAlBATYCVCAJQbTOwQA2AlAgCUIBNwJcIAkgCUEsaq1CgICAgBCENwNAIAkgCUFAazYCWCAJQTBqIgAgCUHQAGoQsQYgABCOByEBDAQLIAktAA8hAQsgDSAUaiENAkACQAJAAkACQCABQf8BcQ4DAQIDAAsgCUEBNgJUIAlBmPfHADYCUCAJQgE3AlwgCSAJQQ9qrUKAgICAoASENwNAIAkgCUFAazYCWCAJQRBqIgAgCUHQAGoQsQYgABCOByEBDAYLIABBAToAqVQgDUEIaiANIAAoAswBIgIgDWsiAUEAIAEgAk0bQQdLGyENDAILIBEgFHJFDQELIA0gACgCzAEiA0kNAQsLIA1FDQAgDSAAKALMASICTQRAQQAhASAAQQA2AswBIAIgDUYNAiACIA1rIgIEQCAAKALIASIDIAMgDWogAvwKAAALIAAgAjYCzAEMAgtBACANIAJBhKTHABDqBwALQQAhAQsgCUHwAGokACABDwtBACABIANBhKTHABDqBwALQQAgAiABQYSkxwAQ6gcAC0EAIAUgAkGEpMcAEOoHAAvRXAMYfwR9AX4jAEHwAGsiCCQAAkACQAJAAkACQCAALQCgVEUEQCAIQdAAaiAAQbwBahC4BCAILQBQBEAgCCgCVCEBDAMLIAgtAFFBAUcNASAAQQE6AKBUCyAAKALEASIDRQ0AIABBmAJqIRUgCEE8aq1CgICAgBCEIR0gAEHUAWohFiAAQeABaiESIABB7AFqIRcgAEH4AWohGANAAkAgACgC0AEiBiAAKAKcVCIBayICQQAgAiAGTRtBgIAETwRAIAEhAgwBCyABIAFBgIACayICQQAgASACTxsiBGshAiABIARGBEAgACACNgKcVAwBCyABIAZNBEAgAgRAIAAoAswBIgEgASAEaiAC/AoAAAsgACgCxAEhAyAAIAI2ApxUDAELQQAgASAGQczVwQAQ6gcACwJAAkAgAyANTwRAIAhB0ABqIBUgACgCwAEgDWogAyANayAAKALMASAAKALQASACQQYQRCAIIAgtAFQiAToADyAIKAJQIRQgCCgCWCIRRQ0CIAAoApxUIgMgEWoiAiADTyACIAAoAtABIgZNcQ0BIAMgAiAGQdzVwQAQ6gcACyANIAMgA0Hs1cEAEOoHAAsgACgCzAEhBiAAKALUASAAKALcASICayARSQRAIBYgAiARQQFBARCkBSAAKALcASECCyARBEAgACgC2AEgAmogAyAGaiAR/AoAAAsgACACIBFqIgQ2AtwBIAAgACgCnFQgEWo2ApxUIAAoAuABQYCAgIB4RgRAAkAgBEEQSQ0AIAggACgC2AEiAigAACIDNgIcIANBzo7NggVHBEAgCEEBNgJkIAhBzMjBADYCYCAIQQE2AlQgCEHUzsEANgJQIAhBATYCXCAIIAhBHGqtQoCAgICQBIQ3A0AgCCAIQUBrNgJYIAhBIGoiACAIQdAAahCxBiAAEI4HIQEMBgsgCCACKAAEIgk2AiwgCUEEa0F9TwRAIABBADYC3AEgAiwADiEGIAItAA0hByACLQAMIQMgAigACCEFIARBEGsiBARAIAQEQCACIAJBEGogBPwKAAALIAAgBDYC3AELIAggAzYCPAJAIANBA00EQEGAgMAAEHEiAg0BAAsgCEEBNgJUIAhBoO3HADYCUCAIQgE3AlwgCCAdNwNoIAggCEHoAGo2AlggCEFAayIAIAhB0ABqELEGIAAQkAchAQwHCyAAIAY6AJYCIAAgBzoAlQIgAEEAOgCUAiAAQQA2ApACIAAgAzYCjAIgACAFNgKIAiAAIAk2AoQCIABBADYCgAIgAEKAgICAwAA3AvgBIABCAjcC8AEgAEIANwLoASAAIAI2AuQBIABBgIAQNgLgASAIIAZBgAFxQQd2OgBYIAggAzYCVCAIIAU2AlAgACAIQdAAahClBCAGQQBODQEgAEEBOgCcAQwBCyAIQQE2AlQgCEG0zsEANgJQIAhCATcCXCAIIAhBLGqtQoCAgIAQhDcDQCAIIAhBQGs2AlggCEEwaiIAIAhB0ABqELEGIAAQjgchAQwFCyAAKALgAUGAgICAeEYNAQsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AlAJBAWsOCQ0MCwoAAQYEEAILQQkhD0EGIQEgACgCjAIOBAQIBwYCCyAAQQlBByAALACWAkEAThs6AJQCDA8LIAAoAtwBQQZBCSAAKAKEAiIDQQFGGyIMbiICIAAoAogCIAAoApACayIGSQRAIAIiBkGAgARJDQ4LQYCABCAGIAZBgIAETxsiBUEDbCICIAAoAugBIgFLBH8gAiABayICIAAoAuABIAFrSwRAIBIgASACQQRBBBCkBSAAKALoASEBCyAAKALkASIEIAFBAnRqIQMgAkECTwR/IAJBAnRBBGsiCQRAIANBACAJ/AsACyABIAJqIgJBAWshASAEIAJBAnRqQQRrBSADC0EANgIAIAAgAUEBajYC6AEgACgChAIFIAMLQQFHDQsgBkUNDEEAIQlBACEBQQAhAkEAIQMDQCABQQJqIQcgACgC3AEiBCABQQFqTQRAIAEgByAEQazPwQAQ6gcACwJ/IAAoAtgBIAFqIgRBAWotAABBCHQiCiAELQAAciIEQf//AXFFBEAgBEEQdAwBCyAEQf8HcSEEIApBgIACcSELIApBgPgBcSIKQYD4AUYEQCALQRB0IgpBgICA/AdyIARFDQEaIARBDXQgCnJBgICA/gdyDAELIAtBEHQiCyAKQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2pyIAoNABogBCAEZ0EQayIEQf//A3FBCGp0Qf///wNxIAtBgICA2ANyIARBF3RrcgshBAJ/AkACQCAAKALoASIKIANLBEAgACgC5AEgAmogBDYCACABQQRqIgogACgC3AEiBEsNASAAKALYASABaiIEQQNqLQAAQQh0IgcgBEECai0AAHIiBEH//wFxRQRAIARBEHQMBAsgBEH/B3EhBCAHQYCAAnEhCyAHQYD4AXEiB0GA+AFGBEAgC0EQdCIHQYCAgPwHciAERQ0EGiAEQQ10IAdyQYCAgP4HcgwECyALQRB0IQsgB0UNAiAHQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogC3IMAwsgAyAKQdzOwQAQjAcACyAHIAogBEGcz8EAEOoHAAsgBCAEZ0EQayIEQf//A3FBCGp0Qf///wNxIAtBgICA2ANyIARBF3RrcgshBAJ/AkACQCADQQFqIgcgACgC6AEiC0kEQCAAKALkASACakEEaiAENgIAIAFBBmoiBCAAKALcASIHSw0BIAAoAtgBIAFqIgFBBWotAABBCHQiByABQQRqLQAAciIBQf//AXFFBEAgAUEQdAwECyABQf8HcSEBIAdBgIACcSEKIAdBgPgBcSIHQYD4AUYEQCAKQRB0IgdBgICA/AdyIAFFDQQaIAFBDXQgB3JBgICA/gdyDAQLIApBEHQhCiAHRQ0CIAdBDXRBgICA/ABxIAFBDXRyQYCAgMADaiAKcgwDCyAHIAtB7M7BABCMBwALIAogBCAHQYzPwQAQ6gcACyABIAFnQRBrIgFB//8DcUEIanRB////A3EgCkGAgIDYA3IgAUEXdGtyCyEBIANBAmoiByAAKALoASIKSQRAIAAoAuQBIAJqQQhqIAE2AgAgAkEMaiECIANBA2ohAyAEIQEgCUEBaiIJIAVJDQEMDgsLIAcgCkH8zsEAEIwHAAtB7NPBABCBCAALIAAoAtwBIgFBAnYiAiAAKAKIAiAAKAKQAmsiBEkEQCACIQQgAUGAgBBJDQwLQYCABCAEIARBgIAETxsiAiAAKAKAAiIBSwRAIAIgAWsiAyAAKAL4ASABa0sEQCAYIAEgA0EEQQQQpAUgACgCgAIhAQsgACgC/AEiCSABQQJ0aiEGIANBAk8EfyADQQJ0QQRrIgUEQCAGQQAgBfwLAAsgASADaiIDQQFrIQEgCSADQQJ0akEEawUgBgtBADYCACAAIAFBAWoiATYCgAILIAQEQEEAIQFBACEDAkADQCAAKALcASIGIAFBA2pNBEAgASABQQRqIAZBvNXBABDqBwALIAAoAoACIgYgA0sEQCAAKAL8ASABaiAAKALYASABaigAADYCACABQQRqIQEgAiADQQFqIgNGDQIMAQsLIAMgBkGs1cEAEIwHAAsgACgCgAIhAQsgACAAKAKQAiACIAAoAvwBIAEQtQQCQAJAAkAgACgC3AEiAyACQQJ0IgFPBEAgAEEANgLcASADIAFrIQYgBEUNASABIANGDQMgBkUNAiAAKALYASIDIAEgA2ogBvwKAAAMAgsMFAsgASADRg0BCyAAIAY2AtwBCyAAIAAoApACIAJqIgI2ApACIAIgACgCiAJHDQwgAEEANgKQAkEJIQELIAAgAToAlAIMCwsgACgC3AEiAUEBdiICIAAoAogCIAAoApACayIESQRAIAIhBCABQYCACEkNCgtBgIAEIAQgBEGAgARPGyICIAAoAvQBIgFLBEAgAiABayIDIAAoAuwBIAFrSwRAIBcgASADQQJBAhCkBSAAKAL0ASEBCyAAKALwASIJIAFBAXRqIQYgA0ECTwR/IANBAXRBAmsiBQRAIAZBACAF/AsACyABIANqIgNBAWshASAJIANBAXRqQQJrBSAGC0EAOwEAIAAgAUEBaiIBNgL0AQsgBARAQQAhA0ECIQECQANAIAAoAtwBIgYgAUkEQCABQQJrIAEgBkGc1cEAEOoHAAsgACgC9AEiBiADSwRAIAAoAvABIAFqQQJrIAAoAtgBIAFqQQJrLwAAOwEAIAFBAmohASACIANBAWoiA0YNAgwBCwsgAyAGQYzVwQAQjAcACyAAKAL0ASEBCyAAIAAoApACIAIgACgC8AEgARC0BAJAAkACQCAAKALcASIDIAJBAXQiAU8EQCAAQQA2AtwBIAMgAWshBiAERQ0BIAEgA0YNAyAGRQ0CIAAoAtgBIgMgASADaiAG/AoAAAwCCwwSCyABIANGDQELIAAgBjYC3AELIAAgACgCkAIgAmoiAjYCkAIgAiAAKAKIAkcNCiAAQQA2ApACIABBCDoAlAIMCgtBLSEPDAELQRghDwsgACgC3AEgD24iAiAAKAKIAiAAKAKQAmsiB0kEQCACIgdBgIAESQ0HC0GAgAQgByAHQYCABE8bIg4gD2wiDCAAKALoASIBSwRAIAwgAWsiAiAAKALgASABa0sEQCASIAEgAkEEQQQQpAUgACgC6AEhAQsgACgC5AEiBiABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgQEQCADQQAgBPwLAAsgASACaiICQQFrIQEgBiACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC6AELIA5BCWwhEwJAIAcEQCAOQeAAbCEKIA5BGGwhCUEBIQFBACEQQQAhBgJAA0AgBiEEIAEhBiAEIA9sIgEgACgC3AEiAk8NAwJAAkACQAJAIARBCWwiAyAAKALoASICTw0AIAAoAuQBIANBAnRqIAAoAtgBIAFqLQAAs0MAAADDkkMAAAA8lDgCACABQQNqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EDaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQZqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EGaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQFqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EBaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQRqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EEaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQdqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EHaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQJqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0ECaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQVqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EFaiILIAAoAugBIgJPBEAgCyEDDAELIAAoAuQBIAtBAnRqIAAoAtgBIAVqLQAAs0MAAADDkkMAAAA8lDgCACABQQhqIgUgACgC3AEiAk8EQCAFIQEMCAsgA0EIaiIDIAAoAugBIgJPDQAgACgC5AEgA0ECdGogACgC2AEgBWotAACzQwAAAMOSQwAAADyUOAIAIAAoAowCQQFLDQEMAgsgAyACQfzUwQAQjAcACwJAAkAgAUEJaiIDIAAoAtwBIgVPDQAgBEEPbCATaiICIAAoAugBIgVPDQMgACgC5AEgAkECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAFBDGoiAyAAKALcASIFTw0AIAJBA2oiBCAAKALoASIFTwRAIAQhAgwECyAAKALkASAEQQJ0aiAAKALYASADai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEPaiIDIAAoAtwBIgVPDQAgAkEGaiIEIAAoAugBIgVPBEAgBCECDAQLIAAoAuQBIARBAnRqIAAoAtgBIANqLQAAs0MAAADDkkMAAAA8lDgCACABQRJqIgMgACgC3AEiBU8NACACQQlqIgQgACgC6AEiBU8EQCAEIQIMBAsgACgC5AEgBEECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAFBFWoiAyAAKALcASIFTw0AIAJBDGoiBCAAKALoASIFTwRAIAQhAgwECyAAKALkASAEQQJ0aiAAKALYASADai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEKaiIDIAAoAtwBIgVPDQAgAkEBaiIEIAAoAugBIgVPBEAgBCECDAQLIAAoAuQBIARBAnRqIAAoAtgBIANqLQAAs0MAAADDkkMAAAA8lDgCACABQQ1qIgMgACgC3AEiBU8NACACQQRqIgQgACgC6AEiBU8EQCAEIQIMBAsgACgC5AEgBEECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAFBEGoiAyAAKALcASIFTw0AIAJBB2oiBCAAKALoASIFTwRAIAQhAgwECyAAKALkASAEQQJ0aiAAKALYASADai0AALNDAAAAw5JDAAAAPJQ4AgAgAUETaiIDIAAoAtwBIgVPDQAgAkEKaiIEIAAoAugBIgVPBEAgBCECDAQLIAAoAuQBIARBAnRqIAAoAtgBIANqLQAAs0MAAADDkkMAAAA8lDgCACABQRZqIgMgACgC3AEiBU8NACACQQ1qIgQgACgC6AEiBU8EQCAEIQIMBAsgACgC5AEgBEECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAFBC2oiAyAAKALcASIFTw0AIAJBAmoiBCAAKALoASIFTwRAIAQhAgwECyAAKALkASAEQQJ0aiAAKALYASADai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEOaiIDIAAoAtwBIgVPDQAgAkEFaiIEIAAoAugBIgVPBEAgBCECDAQLIAAoAuQBIARBAnRqIAAoAtgBIANqLQAAs0MAAADDkkMAAAA8lDgCACABQRFqIgMgACgC3AEiBU8NACACQQhqIgQgACgC6AEiBU8EQCAEIQIMBAsgACgC5AEgBEECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAFBFGoiAyAAKALcASIFTw0AIAJBC2oiBCAAKALoASIFTwRAIAQhAgwECyAAKALkASAEQQJ0aiAAKALYASADai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEXaiIDIAAoAtwBIgVPDQAgAkEOaiICIAAoAugBIgVPDQMgACgC5AEgAkECdGogACgC2AEgA2otAACzQwAAAMOSQwAAADyUOAIAIAAoAowCQQJNDQJBACEFIAohAwwBCyADIAVBzNTBABCMBwALAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQANAIAAoAtwBIgIgBSAQaiIBQRhqSwRAIAUgCWoiBCAAKALoASICTw0PIAAoAuQBIANqIAEgACgC2AFqQRhqLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBG2pNDQcgACgC6AEiAiAEQQNqTQ0OIAAoAuQBIANqQQxqIAEgACgC2AFqQRtqLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBHmpNDQYgACgC6AEiAiAEQQZqTQ0NIAAoAuQBIANqQRhqIAEgACgC2AFqQR5qLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBIWpNDQUgACgC6AEiAiAEQQlqTQ0MIAAoAuQBIANqQSRqIAEgACgC2AFqQSFqLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBJGpNDQQgACgC6AEiAiAEQQxqTQ0LIAAoAuQBIANqQTBqIAEgACgC2AFqQSRqLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBJ2pNDQMgACgC6AEiAiAEQQ9qTQ0KIAAoAuQBIANqQTxqIAEgACgC2AFqQSdqLQAAs0MAAADDkkMAAAA8lDgCACAAKALcASICIAFBKmpNDQIgACgC6AEiAiAEQRJqTQ0JIAAoAuQBIANqQcgAaiAAKALYASAQaiAFakEqai0AALNDAAAAw5JDAAAAPJQ4AgAgA0EEaiEDIAVBAWoiBUEDSQ0BDBALCyABQRhqDAYLIAFBKmoMBQsgAUEnagwECyABQSRqDAMLIAFBIWoMAgsgAUEeagwBCyABQRtqCyACQazUwQAQjAcACyAEQRJqIQQMBQsgBEEPaiEEDAQLIARBDGohBAwDCyAEQQlqIQQMAgsgBEEGaiEEDAELIARBA2ohBAsgBCACQbzUwQAQjAcACyAPIBBqIRAgCUEVaiEJIApB1ABqIQogBiAGIA5JIgJqIQEgAkUNAgwBCwsgAiAFQdzUwQAQjAcACyAAKALoASEBCwJAAkACQAJAAkACQCABIBNPBEAgACgC5AEhBiAAKAKQAiEEQQAhAkEEIQkCQCAAKAKMAiIKQQJJBEBBBCEQQQAhBQwBCyAOQRhsIgMgAUsNAiAOQQ9sIQUgBiATQQJ0aiEQIApBAkYNACABIAxJIAMgDEtyDQcgDCADayECIAYgA0ECdGohCQsgBwRAIAAgBCAOIAYgExDOAwsgBQRAIAAgBCAOIBAgBRDiAwsgAgRAIAAgBCAOIAkgAhDjAwsgACgC3AEiAiAMSQ0CIABBADYC3AEgAiAMayEBIAdFDQMgAiAMRg0FIAFFDQQgACgC2AEiAiACIAxqIAH8CgAADAQLQQAgEyABQZzUwQAQ6gcACyATIAMgAUGM1MEAEOoHAAtBACAMIAJBhKTHABDqBwALIAIgDEYNAQsgACABNgLcAQsgACAAKAKQAiAOaiICNgKQAiACIAAoAogCRw0JIABBADYCkAIgAEEGOgCUAgwJCyADIAwgAUH808EAEOoHAAsgASACQezUwQAQjAcACyAAKALcAUEEQQMgACgChAIiA0EDRhsiEG4iAiAAKAKIAiAAKAKQAmsiBkkEQCACIgZBgIAESQ0GCwJAAkACQAJAAkACQAJAAkACQAJAAkBBgIAEIAYgBkGAgARPGyIFQQJ0IgIgACgC6AEiAUsEfyACIAFrIgIgACgC4AEgAWtLBEAgEiABIAJBBEEEEKQFIAAoAugBIQELIAAoAuQBIgQgAUECdGohAyACQQJPBH8gAkECdEEEayIJBEAgA0EAIAn8CwALIAEgAmoiAkEBayEBIAQgAkECdGpBBGsFIAMLQQA2AgAgACABQQFqNgLoASAAKAKEAgUgAwtBA0cEQCAGRQ0LQQAhBEEAIQFBACECQQAhAwNAIAEgACgC3AEiCU8NAiABQQFqIgcgCU8NAyABQQJqIgcgCU8NBEMAAIA/IAAoAtgBIAFqIgktAACzQwAA/0KVQwAAgL+SIhkgGZQgCUEBai0AALNDAAD/QpVDAACAv5IiGiAalJIgCUECai0AALNDAAD/QpVDAACAv5IiGyAblJKTQwAAAAAQ4AghHCADIAAoAugBIglPDQUgACgC5AEgAmogGTgCACADQQFqIgkgACgC6AEiB08NBiAAKALkASACakEEaiAaOAIAIANBAmoiCSAAKALoASIHTw0HIAAoAuQBIAJqQQhqIBs4AgAgA0EDaiIJIAAoAugBIgdPDQggACgC5AEgAmpBDGogHJE4AgAgAUEDaiEBIAJBEGohAiADQQRqIQMgBEEBaiIEIAVJDQALDAsLIAZFDQpBACECQQEhCUEAIQMDQAJAAkACQAJAIAAoAtwBIgEgA0sEQCADQQFqIgQgAU8NASADQQJqIgcgAU8NAiADQQNqIgogAU8NAyAAKALYASADaiIBQQJqLQAAIQwgAUEDai0AACELIAEtAAAgAUEBai0AACEOIAj9DAAAAAAAAAAAAAAAAAAAAAD9CwNQIA5BCHRyIg8gDEEQdCALQRh0cnIhAUMAAAAAIRkCfwJAIAtBBnYiDEEDRwRAIAggD0H/A3GzQwCA/0OVQ/MENT+UIhmMIBkgDkECcRsiGTgCXCAZIBmUIRkgAUEKdiEBIAxBAkYNAQsgCCABQf8DcbNDAID/Q5VD8wQ1P5QiGowgGiABQYAEcRsiGjgCWCAZIBogGpSSIRkgAUEKdiIBIAxBAUYNARoLIAggAUH/A3GzQwCA/0OVQ/MENT+UIhqMIBogAUGABHEbIho4AlQgGSAaIBqUkiEZIAFBCnYLIQEgCEHQAGogDEECdGpDAACAPyALQcAATwR9IAggAUH/A3GzQwCA/0OVQ/MENT+UIhqMIBogAUGABHEbIho4AlAgGSAaIBqUkgUgGQuTIhmRQwAAAAAgGUMAAAAAXhs4AgAgAyAAKALoASIBSQ0EIAMgAUG80sEAEIwHAAsgAyABQfzRwQAQjAcACyAEIAFBjNLBABCMBwALIAcgAUGc0sEAEIwHAAsgCiABQazSwQAQjAcACyAAKALkASACaiAIKgJQOAIAIAQgACgC6AEiAU8NCiAAKALkASACakEEaiAIKgJUOAIAIAcgACgC6AEiAU8NCSAAKALkASACakEIaiAIKgJYOAIAIAogACgC6AEiAU8NCCAAKALkASACakEMaiAIKgJcOAIAIAJBEGohAiADQQRqIQMgBSAJSyAJQQFqIQkNAAsMCgsgASAJQfzSwQAQjAcACyAHIAlBjNPBABCMBwALIAcgCUGc08EAEIwHAAsgAyAJQazTwQAQjAcACyAJIAdBvNPBABCMBwALIAkgB0HM08EAEIwHAAsgCSAHQdzTwQAQjAcACyAKIAFB7NLBABCMBwALIAcgAUHc0sEAEIwHAAsgBCABQczSwQAQjAcACyAAIAAoApACIAUgACgC5AEgACgC6AEQ+wQCQAJAAkAgACgC3AEiASAFIBBsIgJPBEAgAEEANgLcASABIAJrIQMgBkUNASABIAJGDQMgA0UNAiAAKALYASIBIAEgAmogA/wKAAAMAgsMDwsgASACRg0BCyAAIAM2AtwBCyAAIAAoApACIAVqIgI2ApACIAIgACgCiAJHDQYgAEEANgKQAiAAQQU6AJQCDAYLIAAoAtwBIgFBA24iAiAAKAKIAiAAKAKQAmsiCUkEQCACIQkgAUGAgAxJDQULQYCABCAJIAlBgIAETxsiBEEDbCIGIAAoAugBIgFLBEAgBiABayICIAAoAuABIAFrSwRAIBIgASACQQRBBBCkBSAAKALoASEBCyAAKALkASIFIAFBAnRqIQMgAkECTwR/IAJBAnRBBGsiBwRAIANBACAH/AsACyABIAJqIgJBAWshASAFIAJBAnRqQQRrBSADC0EANgIAIAAgAUEBaiIBNgLoAQsCQAJAAkACQAJAAkACQAJAAkAgCQRAQQAhA0EAIQEDQCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAgD2UQwAAIMGSEIkEOAIAIAFBAmoiAiAAKALcASIFTw0GIAIgACgC6AEiBU8NByAAKALkASADakEIaiAAKALYASABakECai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgA0EMaiEDIAYgAUEDaiIBRw0ACyAAKALoASEBCyAAIAAoApACIAQgACgC5AEgARDJAyAAKALcASICIAZJDRUgAEEANgLcASACIAZrIQEgCUUNBiACIAZGDQggAUUNByAAKALYASICIAIgBmogAfwKAAAMBwsgASACQZzRwQAQjAcACyABIAJBrNHBABCMBwALIAIgBUG80cEAEIwHAAsgAiAFQczRwQAQjAcACyACIAVB3NHBABCMBwALIAIgBUHs0cEAEIwHAAsgAiAGRg0BCyAAIAE2AtwBCyAAIAAoApACIARqIgI2ApACIAIgACgCiAJHDQUgAEEANgKQAiAAQQQ6AJQCDAULIAAoAtwBIgFBA24iAiAAKAKIAiAAKAKQAmsiCUkEQCACIQkgAUGAgAxJDQQLQYCABCAJIAlBgIAETxsiBEEDbCIGIAAoAugBIgFLBEAgBiABayICIAAoAuABIAFrSwRAIBIgASACQQRBBBCkBSAAKALoASEBCyAAKALkASIFIAFBAnRqIQMgAkECTwR/IAJBAnRBBGsiBwRAIANBACAH/AsACyABIAJqIgJBAWshASAFIAJBAnRqQQRrBSADC0EANgIAIAAgAUEBaiIBNgLoAQsCQAJAAkACQAJAAkACQAJAAkAgCQRAQQAhA0EAIQEDQCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAFBAmoiAiAAKALc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IAEgDCAIazoAogcgASAnICiINwPQBgwPCyAMQf8BcUERSQ0OIAEgD0ENdkEPcUEEajYCyAYgASAPQQh2QR9xIglBAWo2AsQGIAEgD0EDdkEfcSIIQYECajYCwAZBBCAIQR1LDQMaIAlBHU0NAUEFDAMLIAEgDEEDazoAogcgASAnQgOINwPQBiAnQvgHg1ANAyABLQClB0UEQCABQQE6AKUHIAEoAvgGIQpBACIIRQRAIApB7J3EAEGAEPwKAAALIAhFBEAgCkGAEGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAIGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAMGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAQGtB7J3EAEGAEPwKAAALIAhFBEAgCkGA0ABqQeydxABBgBD8CgAACyAIRQRAIApBgOAAakHsncQAQYAQ/AoAAAsgCEUEQCAKQYDwAGpB7J3EAEGAEPwKAAALIAEoAvwGIQpBAEUEQCAKQeycxABBgAH8CgAACyAIRQRAIApBgAFqQeycxABBgAH8CgAACyAIRQRAIApBgAJqQeycxABBgAH8CgAACyAIRQRAIApBgANqQeycxABBgAH8CgAACyAIRQRAIApBgARqQeycxABBgAH8CgAACyAIRQRAIApBgAVqQeycxABBgAH8CgAACyAIRQRAIApBgAZqQeycxABBgAH8CgAACyAIRQRAIApBgAdqQeycxABBgAH8CgAACyAIRQRAIApBgAhqQeycxABBgAH8CgAACyAIRQRAIApBgAlqQeycxABBgAH8CgAACyAIRQRAIApBgApqQeycxABBgAH8CgAACyAIRQRAIApBgAtqQeycxABBgAH8CgAACyAIRQRAIApBgAxqQeycxABBgAH8CgAACyAIRQRAIApBgA1qQeycxABBgAH8CgAACyAIRQRAIApBgA5qQeycxABBgAH8CgAACyAIRQRAIApBgA9qQeycxABBgAH8CgAACyABQYCA/AM2AoAHIAFBBzoAhAcLIAFBBDoAowcMDQsgAUEAOgClByABQQI6AKMHIAEgDEERazoAogcgASAnQhGINwPQBgwMC0ECCzoAAUEBDBQLIAEgDEEKayIJOgCiByABICdCCogiJzcD0AYgCA0HIAlB/wFxQQpJDQADQCAnQv8Hg0ICUg0BIAEgCUEKayIPOgCi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QbyNyAAQ6wcAC545Azd/A30BfiMAQYABayIBJAACQAJAAkAgACgCaCICQf8fTQRAIAFBADYCQCABQQE2AjQgAUHwssEANgIwIAFCBDcCOCABQTBqEJIHIQMMAQsgASAAKAJkIgMtAAAiBDoABiABIAMtAAEiBjoAByAEQQEgBhsEQCABQQI2AjQgAUHAssEANgIwIAFCAjcCPCABQoCAgIDwBCI7IAFBB2qthDcDECABIDsgAUEGaq2ENwMIIAEgAUEIajYCOCABQTBqEJIHIQMMAQsgA0EEaigAACEqIAMoABAhDSABIAMvABQiBDYCHCAEQQNPBEAgAUEBNgI0IAFBmLLBADYCMCABQgE3AjwgASABQRxqrUKAgICAEIQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyABIANBJGooAAAiBkGAgID+eyAGQf////8HcRs2AiAgASADKAAoIgZBgICA/gMgBkH/////B3EbNgIkIARBKGxBrKrBAGohECACQYAga0EKdkEBaiEUQQAhBEEAIQIgKkEKdEGAIGoiKyEhAkADQAJAIAQgKkcEQCAUIARBAWoiBEcNASABQQA2AkAgAUEBNgI0IAFB1LHBADYCMCABQgQ3AjggAUEwahCSByEDDAQLIAFBADoAOCABIAI2AjQgASANNgIwIAAgAUEwahDpASAqRQ0CQYAgISFBASEuAkADQCAhIgRBgAhqIiEgACgCaCIDSwRAIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgACgCZCIGIARqIgIoABgiEUUEQCAQKAIkIRELIAMgBEEkckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEockkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEqckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAIoAAQhB0EAIQQgECgCCCAQKAIAIBAoAgRqaiACLwAoIiJBA00EfyAiQQJ0KAKkq0EFIAQLIBAoAhBsakEEaiI1rSAHrX4iO0IgiFBFBEAgAUEANgJAIAFBATYCNCABQdCrwQA2AjAgAUIE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IGooAAAgA0GUIGovAABsaiADQaQgaigAAEECdGoiIU0gA0GACGohAw0ACyABQQA2AkAgAUEBNgI0IAFB9LHBADYCMCABQgQ3AjggAUEwahCSByEDDAELQQAhAwsgAUGAAWokACADDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALnjkDN38DfQF+IwBBgAFrIgEkAAJAAkACQCAAKAJIIgJB/x9NBEAgAUEANgJAIAFBATYCNCABQfCywQA2AjAgAUIENwI4IAFBMGoQkgchAwwBCyABIAAoAkQiAy0AACIEOgAGIAEgAy0AASIGOgAHIARBASAGGwRAIAFBAjYCNCABQcCywQA2AjAgAUICNwI8IAFCgICAgPAEIjsgAUEHaq2ENwMQIAEgOyABQQZqrYQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyADQQRqKAAAISogAygAECENIAEgAy8AFCIENgIcIARBA08EQCABQQE2AjQgAUGYssEANgIwIAFCATcCPCABIAFBHGqtQoCAgIAQhDcDCCABIAFBCGo2AjggAUEwahCSByEDDAELIAEgA0EkaigAACIGQYCAgP57IAZB/////wdxGzYCICABIAMoACgiBkGAgID+AyAGQf////8HcRs2AiQgBEEobEGsqsEAaiEQIAJBgCBrQQp2QQFqIRRBACEEQQAhAiAqQQp0QYAgaiIrISECQANAAkAgBCAqRwRAIBQgBEEBaiIERw0BIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBAsgAUEAOgA4IAEgAjYCNCABIA02AjAgACABQTBqEIQCICpFDQJBgCAhIUEBIS4CQANAICEiBEGACGoiISAAKAJIIgNLBEAgAUEANgJAIAFBATYCNCABQdSxwQA2AjAgAUIENwI4IAFBMGoQkgchAwwGCyAAKAJEIgYgBGoiAigAGCIRRQRAIBAoAiQhEQsgAyAEQSRySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQShySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQSpySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIw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AtwCNwM4IAEoAtgCIgJFBEAgAUE4ahCPByECDAMLIAFBLGogAygCADYCACABIAEpAzg3AiQgASABKQPoAiIpNwMwIAEgAjYCIAJAAkAgKacoAkAiEARAIAFB/ABqIQQgAUHwAGohDCABQewCaiEiIAFB4AJqIQ0DQCABQQA6ALgCIAFBADYCsAIgAUHYAmogAUEgaiAdIAFBsAJqEKgBIAFB0ABqIgIgDUEIaigCADYCACABIA0pAwA3A0gCQAJAAkACQAJAAkACQAJAAkAgASkD2AIiKUIDUgRAIAQgIkG0AfwKAAAgDEEIaiACKAIANgIAIAwgASkDSDcDACABICk3A2gCQCABKAJwIAFB6ABqIClCAlEbIgIoAiwiB0EATgRAIAIoAighAgJAIAdFBEBBASELDAELIAcQcSILRQ0ICyAHBEAgCyACIAf8CgAACyABQegAahD8ASAHQQlJDQhB/NXBACAHIAtqQQlrQQkQ2wcNCSAHIQICQANAIAFBCGpBLyALIAIQqQNBASEdQQAhIiABKAIIQQFxRQRADAILAkAgByABKAIMIgJLBEAgAiALai0AAEEvRg0BCyACIAdNDQEMAgsLIAEgAjYCqAQgASALNgKkBCABIAFBpARqrUKAgICAIIQ3A7ACIAFCATcC5AIgAUECNgLcAiABQazWwQA2AtgCIAEgAUGwAmo2AuACIAFB6ABqIAFB2AJqEOwDIAEoAmgiAkGAgICAeEYNACABKQJsIilCIIinIQUgKachHSACISILIAFB2AJqIAFBIGogCyAHEMkEIAFB4ABqIAFB6AJqKAIANgIAIAEgASkD4AI3A1gCQCABKQPYAiIpQgNRBEAgAUHYAGoQjwchAgwBCyABQfwAaiABQewCakG0AfwKAAAgAUH4AGogAUHgAGooAgA2AgAgASApNwNoIAEgASkDWDcDcCABQQA2ArgCIAFCgICAgBA3ArACIAFB2AJqIAFB6ABqIAFBsAJqEJkBIAEoAtgCQQFGBEAgASkC3AIQzwchAiABKAKwAiIABEAgASgCtAIgAEEBEKIHCyABQegAahD8AQwBCyABKAKwAiEnIAEoArQCISggASgCuAIhAiABQegAahD8ASABQQA2ArgCIAEgAjYCtAIgASAoNgKwAiABQdgCaiABQbACahBGIAEoAtwCIQICQCABKALY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AEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALozADJ38EfQF+IwBBwAxrIgMkAAJAAkACQAJAAkACQAJAIAAoAtwEIgFBgYCAgHhGBEACQCAAKALwBCIKQQRJDQACQCAAKALsBCIELwAAIAQtAAJBEHRyQfDY5QNGBEAgCkELSQ0CIApBCmshAkEAIQECQANAIAEgBGpB+MPBAEELENsHRQ0BIAIgAUEBaiIBRw0ACyAKQf//A00NAyADQQA2AugHIANBATYC3AcgA0Hww8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMCQsgASAKSw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIOQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCkEBcUUEQCADKAKwASEIIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAOIAggBCACEJoBIAMoAtgHIQUgAygCtAwiDUGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiEHIAMoAsQKIQsgA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQkgA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIAk2AtwHIAMgCDYC2AcgAEH0BGogDhClBAwDCyADQZgGaiICIANBCGpBwAH8CgAAIANB2AdqIAIQaiADKALcByECIAMoAtgHIgVBgICAgHhGBEAgAkUNBAwKCyADQbADaiADQeAHakHkAvwKAAAgAygCxAohCyADKALICiEHIANBADoA4AcgAyAHNgLcByADIAs2AtgHIABB9ARqIANB2AdqEKUEQYCAgIB4IQ0MAgsgA0EIahCgAyAFIgINCAwCCyADQQA2AugHIANBATYC3AcgA0Goo8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMBwsgACgC8AQiBCABQQtqIghJDQIgAEEANgLwBCAEIAhHBEAgBCAIayIEBEAgACgC7AQiASABIAhqIAT8CgAA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2OUDRgRAIApBC0kNAiAKQQprIQJBACEBAkADQCABIARqQfjDwQBBCxDbB0UNASACIAFBAWoiAUcNAAsgCkH//wNNDQMgA0EANgLoByADQQE2AtwHIANB8MPBADYC2AcgA0IENwLgByADQdgHahCSByECDAkLIAEgCksNCiADQdgHaiAEIAEQ+wIgAykC3AchLCADKALYB0EBRgRAICwQzQchAgwJCyADQdgHaiAspyAsQiCIpxBNIAMoAtgHIQIgAygChAkiBEGAgICAeEYEQCACRQ0DDAkLIANBCGpBBHIgA0HYB2oiDkEEckGoAfwKAAAgA0HAAWogA0GQCWopAwAiLDcDACADIAMpA4gJNwO4ASADIAQ2ArQBIAMgAjYCCAJAICynIgpBAXFFBEAgAygCsAEhCCADKAKcASEEIANBmAZqIgIgA0H4AGoQwwMgDiAIIAQgAhCaASADKALYByEFIAMoArQMIg1BgICAgHhGDQEgAygC3AchAiADQbADaiADQeAHakHkAvwKAAAgAygCyAohByADKALECiELIANBoAJqIANBzApqQZAB/AoAACADKALcCyEJIANByAFqIANB4AtqQdQA/AoAACADKQO4DCEsIANBADoA4AcgAyAJNgLcByADIAg2AtgHIABB9ARqIA4Q4QMMAwsgA0GYBmoiAiADQQhqQcAB/AoAACADQdgHaiACEGogAygC3AchAiADKALYByIFQYCAgIB4RgRAIAJFDQQMCgsgA0GwA2ogA0HgB2pB5AL8CgAAIAMoAsQKIQsgAygCyAohByADQQA6AOAHIAMgBzYC3AcgAyALNgLYByAAQfQEaiADQdgHahDhA0GAgICAeCENDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoAvAEIgQgAUELaiIISQ0CIABBADYC8AQgBCAIRwRAIAQgCGsiBARAIAAoAuwEIgEgASAIaiAE/AoAAAsgACAENgLwBAsCQAJAAkAgACgC3ARBgICAgHhrDgIBAgALIAAQvgIMAQsgABC9AQsgACACNgIEIAAgBTYCACAAQQhqIANBsANqQeQC/AoAACAAIAc2AvACIAAgCzYC7AIgAEH0AmogA0GgAmpBkAH8CgAAIAAg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Sw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIJQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCEEBcUUEQCADKAKwASEHIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAJIAcgBCACEJoBIAMoAtgHIQUgAygCtAwiCkGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiELIAMoAsQKIQ4gA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQ0gA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIA02AtwHIAMgBzYC2AcgACAJEIQCDAMLIANBmAZqIgIgA0EIakHAAfwKAAAgA0HYB2ogAhBqIAMoAtwHIQIgAygC2AciBUGAgICAeEYEQCACRQ0EDAoLIANBsANqIANB4AdqQeQC/AoAACADKALECiEOIAMoAsgKIQsgA0EAOgDgByADIAs2AtwHIAMgDjYC2AcgACADQdgHahCEAkGAgICAeCEKDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoArAFIgQgAUELaiIHSQ0CIABBADYCsAUgBCAHRwRAIAQgB2siBARAIAAoAqwFIgEgASAHaiAE/AoAAAsgACAENgKwBQsgAEFAayEBAkACQAJAIAAoApwFQYCAgIB4aw4CAQIACyABEL4CDAELIAEQvQELIAAgAjYCRCAAIAU2AkAgAEHIAGogA0GwA2pB5AL8CgAAIAAgCzYCsAMgACAONgKsAyAAQbQDaiADQaACakGQAfwKAAAgACANNgLEBCAAQcgEaiADQcgBakHUAPwKAAAgACAsNwOgBSAAIAo2ApwFIAhBAXENACADQQhqEKADC0EAIQIgACgCnAUiAUGBgICAeEYNBQsgAEFAayESIAFBgICAgHhHDQEgACgCqAMiAiAAKAJITwRAIAAoArAFIQFBACECIABBADYCsAUgAQ0EDAULAkADQAJAIAAoAkQgAkEGdGoiBygCJCIJBEAgCSAAKAKwBSILIAxrIgJNDQEMBgtBlMbBABCBCAALIActADwhBUGAgAQhASACIAluIgggBygCICIEIAcoAjgiDmsiAkEAIAIgBE0bIgIgAiAISxsiAkGAgARNBEAgAiIBRQ0FCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAVBAWsOAwIBDAALIBIgASAMIAkgACgCrAUgCxCRAwwLCyAAKALEAUGAgICAeEcNAQwKCyASIAEgDiAMIAkgACgCrAUgCxDnASICDRAgAUEDbCIKIAAoAmAiAksNASABIAAoAmwiAksNAiAKIAAoAngiAksNAyAKIAAoAoQBIgJLDQQgAUECdCIHIAAoApABIgJLDQUgACgCXCEFIAAoAmghCCAAKAJ0IQQgACgCgAEhAiADQgQ3AqAIIANCAjcCmAggA0IENwKQCCADQgQ3AogIIANCBDcCgAggAyAHNgL8ByADIAo2AvQHIAMgAjYC8AcgAyAKNgLsByADIAQ2AugHIAMgATYC5AcgAyAINgLgByADIAo2AtwHIAMgBTYC2AcgAyAAKAKMATYC+AcgACAOIAEgA0HYB2oQ4gEMCQsgEiABIAwgCSAAKAKsBSALEOgBIAFBCWwiByAAKAKcASICSw0FIAAoApgBIQVBACEKIAAoArADIgRBAkkEQCAAIA4gASAFIAdBBEEAQQRBABDbAwwJCyABQQ9sIgggACgCqAEiAksNBiAAIA4gASAFIAcgACgCpAEgCCAEQQJHBH8gAUEVbCIKIAAoArQBIgJLDQggACgCsAEFQQQLIAoQ2wMMCAtBACAKIAJB5MbBABDqBwALQQAgASACQdTGwQAQ6gcAC0EAIAogAkHExsEAEOoHAAtBACAKIAJBtMbBABDqBwALQQAgByACQaTGwQAQ6gcAC0EAIAcgAkGUx8EAEOoHAAtBACAIIAJBhMfBABDqBwALQQAgCiACQfTGwQAQ6gcACyAAKAKoAyIEIAAoAkgiAk8NASAAKAJEIARBBnRqIgggCCgCOCABaiIENgI4IAAoAqgDIQIgCCgCICAERgRAIAAgAkEBaiICNgKoAwsgASAJbCAMaiEMIAIgACgCSEkNAAsgACgCsAUhCwwDCyAEIAJBpMfBABCMBwALQQAgByAEQYSkxwAQ6gcACwJAAkACQAJAAkACQAJAAkACQCAAKAK8BCIBBEAgACgCsAUhBSAAQYABaiEcIAAoAsAEIQIDQEGAgAQhCQJAAkACQAJAAkAgBSAQayIHIAFuIgggACgCuAQiBCACayIBQQAgASAETRsiASABIAhLGyIBQYCABEsNACABIgkNACAFIBBJDQFBACECIABBADYCsAUCQCAQBEAgBSAQRg0UIAdFDQEgACgCrAUiASABIBBqIAf8CgAAIAAgBzYCsAUMFAsgBSAQRg0TCyAAIAc2ArAFDBILIBIgCRDsAUEBIQFBACEHQQAhDkEAIQUCQANAIAEhCCAAKALoAyAALQDsAyAAKAKsBSAAKAKwBSAAKAK8BCAFbCAQaiIGELAEISggBUEDbCIBIAAoAtAEIg1PDRAgAUECdCIRIAAoAswEaiAoOAIAIAAoAvADIAAtAPQDIAAoAqwFIAAoArAFIAYQsAQhKCABQQFqIgQgACgC0AQiDU8EQCAEIQEMEQsgBEECdCILIAAoAswEaiAoOAIAIAAoAvgDIAAtAPwDIAAoAqwFIAAoArAFIAYQsAQhKCABQQJqIgIgACgC0AQiDU8EQCACIQEMEQsgAkECdCIMIAAoAswEaiAoOAIAIAAoArAEIAAtALQEIAAoAqwFIAAoArAFIAYQsAQhKCAAKALcBCIKIAVNBEAgBSAKQZTFwQAQjAcACyAAKALYBCAFQQJ0akMAAIA/ICiMEIkEQwAAgD+SlTgCACAAKAKYBCAALQCcBCAAKAKsBSAAKAKwBSAGELAEISggASAAKALoBCINTw0EIAAoAuQEIBFqIChDu26QPpRDAAAAP5I4AgAgACgCoAQgAC0ApAQgACgCrAUgACgCsAUgBhCwBCEoIAAoAugEIg0gBE0EQCAEIQEMBQsgACgC5AQgC2ogKEO7bpA+lEMAAAA/kjgCACAAKAKoBCAALQCsBCAAKAKsBSAAKAKwBSAGELAEISggACgC6AQiDSACTQRAIAIhAQwFCyAAKALkBCAMaiAoQ7tukD6UQwAAAD+SOAIAIAAoAoAEIAAtAIQEIAAoAqwFIAAoArAFIAYQsAQhKAJAAkACQAJAAkAgASAAKAL0BCINTw0AIAAoAvAEIBFqICgQiQQ4AgAgACgCiAQgAC0AjAQgACgCrAUgACgCsAUgBhCwBCEoIAAoAvQEIg0gBCIBTQ0AIAAoAvAEIAtqICgQiQQ4AgAgACgCkAQgAC0AlAQgACgCrAUgACgCsAUgBhCwBCEoIAAoAvQEIg0gAiIBTQ0AIAAoAvAEIAxqICgQiQQ4AgAgACgCYCAALQBkIAAoAqwFIAAoArAFIAYQsAQhKCAAKAJoIAAtAGwgACgCrAUgACgCsAUgBhCwBCEpIAAoAnAgAC0AdCAAKAKsBSAAKAKwBSAGELAEISogACgCeCAALQB8IAAoAqwFIAAoArAFIAYQsAQhKyAFQQJ0IgEgACgCgAUiAkkNAQwCCyABIA1B5MXBABCMBwALIAAoAvwEIAFBAnRqICggKCAolCApICmUkiAqICqUkiArICuUkpEiKJU4AgAgAUEBciIEIAAoAoAFIgJPBEAgBCEBDAELIAAoAvwEIARBAnRqICkgKJU4AgAgAUECciIEIAAoAoAFIgJPBEAgBCEBDAELIAAoAvwEIARBAnRqICogKJU4AgAgAUEDciIBIAAoAoAFIgJPDQAgACgC/AQgAUECdGogKyAolTgCACAALQCkAyIBQQhHDQEMAgsgASACQdTFwQAQjAcACyAALQDkAyETIAAoAuADIAAtANwDIRUgACgC2AMgAC0A1AMhFyAAKALQAyAALQDMAyEZIAAoAsgDIAAtAMQDIRsgACgCwAMgAC0AvAMhDSAAKAK4AyAALQC0AyELIAAoArADIAAtAKwDIQogACgCqAMgACgCoAMgASAAKAKsBSAAKAKwBSAGELAEISggBUEJbCIBIAAoAowFIgJPDQQgACgCiAUgAUECdGogKDgCACAKIAAoAqwFIAAoArAFIAYQsAQhKCABQQFqIgQgACgCjAUiAk8EQCAEIQEMBQsgACgCiAUgBEECdGogKDgCACALIAAoAqwFIAAoArAFIAYQsAQhKCABQQJqIgQgACgCjAUiAk8EQCAEIQEMBQsgACgCiAUgBEECdGogKDgCACANIAAoAqwFIAAoArAFIAYQsAQhKCABQQNqIgQgACgCjAUiAk8EQCAEIQEMBQsgACgCiAUgBEECdGogKDgCACAbIAAoAqwFIAAoArAFIAYQsAQhKCABQQRqIgQgACgCjAUiAk8EQCAEIQEMBQsgACgCiAUgBEECdGogKDgCACAZIAAoAqwFIAAoArAFIAYQsAQhKCABQQVqIgQgACgCjAUiAk8EQCAEIQEMBQsgACgCiAUgBEECdGogKDgCACAXIAAoAqwFIAAoArAFIAYQsAQhKCABQQZqIgQgACgCjAUiAk8EQCAEIQEMBQsgACgCiAUgBEECdGogKDgCACAVIAAoAqwFIAAoArAFIAYQsAQhKCABQQdqIgQgACgCjAUiAk8EQCAEIQEMBQsgACgCiAUgBEECdGogKDgCACATIAAoAqwFIAAoArAFIAYQsAQhKCABQQhqIgEgACgCjAUiAk8NBCAAKAKIBSABQQJ0aiAoOAIACyAALQCsAiIBQQhHBEAgAC0AnAMhHSAAKAKYAyAALQCUAyEfIAAoApADIAAtAIwDISEgACgCiAMgAC0AhAMhIyAAKAKAAyAALQD8AiElIAAoAvgCIAAtAPQCIScgACgC8AIgAC0A7AIhFCAAKALoAiAALQDkAiEWIAAoAuACIAAtANwCIRggACgC2AIgAC0A1AIhGiAAKALQAiAALQDMAiEPIAAoAsgCIAAtAMQCIREgACgCwAIgAC0AvAIhDCAAKAK4AiAALQC0AiEEIAAoArACIAAoAqgCIAEgACgCrAUgACgCsAUgBhCwBCEoIAVBD2wiASAAKAKYBSIFTw0CIAAoApQFIAFBAnRqICg4AgAgBCAAKAKsBSAAKAKwBSAGELAEISggAUEBaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgDCAAKAKsBSAAKAKwBSAGELAEISggAUECaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgESAAKAKsBSAAKAKwBSAGELAEISggAUEDaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgDyAAKAKsBSAAKAKwBSAGELAEISggAUEEaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgGiAAKAKsBSAAKAKwBSAGELAEISggAUEFaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgGCAAKAKsBSAAKAKwBSAGELAEISggAUEGaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgFiAAKAKsBSAAKAKwBSAGELAEISggAUEHaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgFCAAKAKsBSAAKAKwBSAGELAEISggAUEIaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgJyAAKAKsBSAAKAKwBSAGELAEISggAUEJaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgJSAAKAKsBSAAKAKwBSAGELAEISggAUEKaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgIyAAKAKsBSAAKAKwBSAGELAEISggAUELaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgISAAKAKsBSAAKAKwBSAGELAEISggAUEMaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgHyAAKAKsBSAAKAKwBSAGELAEISggAUENaiICIAAoApgFIgVPBEAgAiEBDAMLIAAoApQFIAJBAnRqICg4AgAgHSAAKAKsBSAAKAKwBSAGELAEISggAUEOaiIBIAAoApgFIgVPDQIgACgClAUgAUECdGogKDgCAAsCQCAALQCEAUEIRwRAIANB2AdqIBxBqAH8CgAAQQAhBSAHIQIgDiEBA0AgA0HYB2ogBWoiBCgCACAEQQRqLQAAIAAoAqwFIAAoArAFIAYQsAQhKCABIAAoAqQFIgRPDQIgACgCoAUgAmogKDgCACACQQRqIQIgAUEBaiEBIAVBCGoiBUGoAUcNAAsLIAdB1ABqIQcgDkEVaiEOIAggCCAJSSICaiEBIAghBSACRQ0GDAELCyABIARBxMXBABCMBwALIAEgBUG0xcEAEIwHAAtBACAQIAVBhKTHABDqBwALIAEgAkGkxcEAEIwHAAsgASANQfTFwQAQjAcACyAJQQNsIg8gACgC0AQiAUsNAiAJIAAoAtwEIgFLDQMgDyAAKALoBCIBSw0EIA8gACgC9AQiAUsNBSAJQQJ0Ig0gACgCgAUiAUsNBiAJQQlsQQAgACgCxAQiAhsiESAAKAKMBSIBSw0HIAlBD2xBACACQQFLGyILIAAoApgFIgFLDQggCUEVbEEAIAJBAksbIgwgACgCpAUiAUsNCSAAKALABCEKIAAoAswEIQ4gACgC2AQhByAAKALkBCEFIAAoAvAEIQggACgC/AQhBCAAKAKIBSECIAAoApQFIQEgA0IENwKgCCADQgI3ApgIIAMgDDYClAggAyALNgKMCCADIAE2AogIIAMgETYChAggAyACNgKACCADIA02AvwHIAMgBDYC+AcgAyAPNgL0ByADIAg2AvAHIAMgDzYC7AcgAyAFNgLoByADIAk2AuQHIAMgBzYC4AcgAyAPNgLcByADIA42AtgHIAMgACgCoAU2ApAIIAAgCiAJIANB2AdqEOIBIAAgACgCwAQgCWoiAjYCwAQgACgCvAQiASAJbCAQaiEQIAAoArAFIQUgAQ0ACwtBhMTBABCBCAALQQAgDyABQYTFwQAQ6gcAC0EAIAkgAUH0xMEAEOoHAAtBACAPIAFB5MTBABDqBwALQQAgDyABQdTEwQAQ6gcAC0EAIA0gAUHExMEAEOoHAAtBACARIAFBtMTBABDqBwALQQAgCyABQaTEwQAQ6gcAC0EAIAwgAUGUxMEAEOoHAAsgASANQYTGwQAQjAcACyALIAxJDQJBACECIABBADYCsAUgCyAMayEBIAwEQCALIAxGDQIgAQRAIAAoAqwFIgQgBCAMaiAB/AoAAAsgACABNgKwBQwCCyALIAxGDQELIAAgATYCsAULIANBwAxqJAAgAg8LQQAgDCALQYSkxwAQ6gcAC0EAIAEgCEHMw8EAEOoHAAuYMAMnfwR9AX4jAEHADGsiAyQAAkACQAJAAkACQAJAAkAgACgCvAUiAUGBgICAeEYEQAJAIAAoAtAFIghBBEkNAAJAIAAoAswFIgQvAAAgBC0AAkEQdHJB8NjlA0YEQCAIQQtJDQIgCEEKayECQQAhAQJAA0AgASAEakH4w8EAQQsQ2wdFDQEgAiABQQFqIgFHDQALIAhB//8DTQ0DIANBADYC6AcgA0EBNgLcByADQfDDwQA2AtgHIANCBDcC4AcgA0HYB2oQkgchAgwJCyABIAhLDQogA0HYB2ogBCABEPsCIAMpAtwHISwgAygC2AdBAUYEQCAsEM0HIQIMCQsgA0HYB2ogLKcgLEIgiKcQTSADKALYByECIAMoAoQJIgRBgICAgHhGBEAgAkUNAwwJCyADQQhqQQRyIANB2AdqIglBBHJBqAH8CgAAIANBwAFqIANBkAlqKQMAIiw3AwAgAyADKQOICTcDuAEgAyAENgK0ASADIAI2AggCQCAspyIIQQFxRQRAIAMoArABIQcgAygCnAEhBCADQZgGaiICIANB+ABqEMMDIAkgByAEIAIQmgEgAygC2AchBSADKAK0DCIKQYCAgIB4Rg0BIAMoAtwHIQIgA0GwA2ogA0HgB2pB5AL8CgAAIAMoAsgKIQsgAygCxAohDiADQaACaiADQcwKakGQAfwKAAAgAygC3AshDSADQcgBaiADQeALakHUAPwKAAAgAykDuAwhLCADQQA6AOAHIAMgDTYC3AcgAyAHNgLYByAAIAkQ6QEMAwsgA0GYBmoiAiADQQhqQcAB/AoAACADQdgHaiACEGogAygC3AchAiADKALYByIFQYCAgIB4RgRAIAJFDQQMCgsgA0GwA2ogA0HgB2pB5AL8CgAAIAMoAsQKIQ4gAygCyAohCyADQQA6AOAHIAMgCzYC3AcgAyAONgLYByAAIANB2AdqEOkBQYCAgIB4IQoMAgsgA0EIahCgAyAFIgINCAwCCyADQQA2AugHIANBATYC3AcgA0Goo8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMBwsgACgC0AUiBCABQQtqIgdJDQIgAEEANgLQBSAEIAdHBEAgBCAHayIEBEAgACgCzAUiASABIAdqIAT8CgAACyAAIAQ2AtAFCyAAQeAAaiEBAkACQAJAIAAoArwFQYCAgIB4aw4CAQIACyABEL4CDAELIAEQvQELIAAgAjYCZCAAIAU2AmAgAEHoAGogA0GwA2pB5AL8CgAAIAAgCzYC0AMgACAONgLMAyAAQdQDaiADQaACakGQAfwKAAAgACANNgLkBCAAQegEaiADQcgBakHUAPwKAAAgACAsNwPABSAAIAo2ArwFIAhBAXENACADQQhqEKADC0EAIQIgACgCvAUiAUGBgICAeEYNBQsgAEHgAGohEiABQYCAgIB4Rw0BIAAoAsgDIgIgACgCaE8EQCAAKALQBSEBQQAhAiAAQQA2AtAFIAENBAwFCwJAA0ACQCAAKAJkIAJBBnRqIgcoAiQiCQRAIAkgACgC0AUiCyAMayICTQ0BDAYLQZTGwQAQgQgACyAHLQA8IQVBgIAEIQEgAiAJbiIIIAcoAiAiBCAHKAI4Ig5rIgJBACACIARNGyICIAIgCEsbIgJBgIAETQRAIAIiAUUNBQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAFQQFrDgMCAQwACyASIAEgDCAJIAAoAswFIAsQkQMMCwsgACgC5AFBgICAgHhHDQEMCgsgEiABIA4gDCAJIAAoAswFIAsQ5wEiAg0QIAFBA2wiCiAAKAKAASICSw0BIAEgACgCjAEiAksNAiAKIAAoApgBIgJLDQMgCiAAKAKkASICSw0EIAFBAnQiByAAKAKwASICSw0FIAAoAnwhBSAAKAKIASEIIAAoApQBIQQgACgCoAEhAiADQgQ3AqAIIANCAjcCmAggA0IENwKQCCADQgQ3AogIIANCBDcCgAggAyAHNgL8ByADIAo2AvQHIAMgAjYC8AcgAyAKNgLsByADIAQ2AugHIAMgATYC5AcgAyAINgLgByADIAo2AtwHIAMgBTYC2AcgAyAAKAKsATYC+AcgACAOIAEgA0HYB2oQkwIMCQsgEiABIAwgCSAAKALMBSALEOgBIAFBCWwiByAAKAK8ASICSw0FIAAoArgBIQVBACEKIAAoAtADIgRBAkkEQCAAIA4gASAFIAdBBEEAQQRBABDqBAwJCyABQQ9sIgggACgCyAEiAksNBiAAIA4gASAFIAcgACgCxAEgCCAEQQJHBH8gAUEVbCIKIAAoAtQBIgJLDQggACgC0AEFQQQLIAoQ6gQMCAtBACAKIAJB5MbBABDqBwALQQAgASACQdTGwQAQ6gcAC0EAIAogAkHExsEAEOoHAAtBACAKIAJBtMbBABDqBwALQQAgByACQaTGwQAQ6gcAC0EAIAcgAkGUx8EAEOoHAAtBACAIIAJBhMfBABDqBwALQQAgCiACQfTGwQAQ6gcACyAAKALIAyIEIAAoAmgiAk8NASAAKAJkIARBBnRqIgggCCgCOCABaiIENgI4IAAoAsgDIQIgCCgCICAERgRAIAAgAkEBaiICNgLIAwsgASAJbCAMaiEMIAIgACgCaEkNAAsgACgC0AUhCwwDCyAEIAJBpMfBABCMBwALQQAgByAEQYSkxwAQ6gcACwJAAkACQAJAAkACQAJAAkACQCAAKALcBCIBBEAgACgC0AUhBSAAQaABaiEcIAAoAuAEIQIDQEGAgAQhCQJAAkACQAJAAkAgBSAQayIHIAFuIgggACgC2AQiBCACayIBQQAgASAETRsiASABIAhLGyIBQYCABEsNACABIgkNACAFIBBJDQFBACECIABBADYC0AUCQCAQBEAgBSAQRg0UIAdFDQEgACgCzAUiASABIBBqIAf8CgAAIAAgBzYC0AUMFAsgBSAQRg0TCyAAIAc2AtAFDBILIBIgCRDsAUEBIQFBACEHQQAhDkEAIQUCQANAIAEhCCAAKAKIBCAALQCMBCAAKALMBSAAKALQBSAAKALcBCAFbCAQaiIGELAEISggBUEDbCIBIAAoAvAEIg1PDRAgAUECdCIRIAAoAuwEaiAoOAIAIAAoApAEIAAtAJQEIAAoAswFIAAoAtAFIAYQsAQhKCABQQFqIgQgACgC8AQiDU8EQCAEIQEMEQsgBEECdCILIAAoAuwEaiAoOAIAIAAoApgEIAAtAJwEIAAoAswFIAAoAtAFIAYQsAQhKCABQQJqIgIgACgC8AQiDU8EQCACIQEMEQsgAkECdCIMIAAoAuwEaiAoOAIAIAAoAtAEIAAtANQEIAAoAswFIAAoAtAFIAYQsAQhKCAAKAL8BCIKIAVNBEAgBSAKQZTFwQAQjAcACyAAKAL4BCAFQQJ0akMAAIA/ICiMEIkEQwAAgD+SlTgCACAAKAK4BCAALQC8BCAAKALMBSAAKALQBSAGELAEISggASAAKAKIBSINTw0EIAAoAoQFIBFqIChDu26QPpRDAAAAP5I4AgAgACgCwAQgAC0AxAQgACgCzAUgACgC0AUgBhCwBCEoIAAoAogFIg0gBE0EQCAEIQEMBQsgACgChAUgC2ogKEO7bpA+lEMAAAA/kjgCACAAKALIBCAALQDMBCAAKALMBSAAKALQBSAGELAEISggACgCiAUiDSACTQRAIAIhAQwFCyAAKAKEBSAMaiAoQ7tukD6UQwAAAD+SOAIAIAAoAqAEIAAtAKQEIAAoAswFIAAoAtAFIAYQsAQhKAJAAkACQAJAAkAgASAAKAKUBSINTw0AIAAoApAFIBFqICgQiQQ4AgAgACgCqAQgAC0ArAQgACgCzAUgACgC0AUgBhCwBCEoIAAoApQFIg0gBCIBTQ0AIAAoApAFIAtqICgQiQQ4AgAgACgCsAQgAC0AtAQgACgCzAUgACgC0AUgBhCwBCEoIAAoApQFIg0gAiIBTQ0AIAAoApAFIAxqICgQiQQ4AgAgACgCgAEgAC0AhAEgACgCzAUgACgC0AUgBhCwBCEoIAAoAogBIAAtAIwBIAAoAswFIAAoAtAFIAYQsAQhKSAAKAKQASAALQCUASAAKALMBSAAKALQBSAGELAEISogACgCmAEgAC0AnAEgACgCzAUgACgC0AUgBhCwBCErIAVBAnQiASAAKAKgBSICSQ0BDAILIAEgDUHkxcEAEIwHAAsgACgCnAUgAUECdGogKCAoICiUICkgKZSSICogKpSSICsgK5SSkSIolTgCACABQQFyIgQgACgCoAUiAk8EQCAEIQEMAQsgACgCnAUgBEECdGogKSAolTgCACABQQJyIgQgACgCoAUiAk8EQCAEIQEMAQsgACgCnAUgBEECdGogKiAolTgCACABQQNyIgEgACgCoAUiAk8NACAAKAKcBSABQQJ0aiArICiVOAIAIAAtAMQDIgFBCEcNAQwCCyABIAJB1MXBABCMBwALIAAtAIQEIRMgACgCgAQgAC0A/AMhFSAAKAL4AyAALQD0AyEXIAAoAvADIAAtAOwDIRkgACgC6AMgAC0A5AMhGyAAKALgAyAALQDcAyENIAAoAtgDIAAtANQDIQsgACgC0AMgAC0AzAMhCiAAKALIAyAAKALAAyABIAAoAswFIAAoAtAFIAYQsAQhKCAFQQlsIgEgACgCrAUiAk8NBCAAKAKoBSABQQJ0aiAoOAIAIAogACgCzAUgACgC0AUgBhCwBCEoIAFBAWoiBCAAKAKsBSICTwRAIAQhAQwFCyAAKAKoBSAEQQJ0aiAoOAIAIAsgACgCzAUgACgC0AUgBhCwBCEoIAFBAmoiBCAAKAKsBSICTwRAIAQhAQwFCyAAKAKoBSAEQQJ0aiAoOAIAIA0gACgCzAUgACgC0AUgBhCwBCEoIAFBA2oiBCAAKAKsBSICTwRAIAQhAQwFCyAAKAKoBSAEQQJ0aiAoOAIAIBsgACgCzAUgACgC0AUgBhCwBCEoIAFBBGoiBCAAKAKsBSICTwRAIAQhAQwFCyAAKAKoBSAEQQJ0aiAoOAIAIBkgACgCzAUgACgC0AUgBhCwBCEoIAFBBWoiBCAAKAKsBSICTwRAIAQhAQwFCyAAKAKoBSAEQQJ0aiAoOAIAIBcgACgCzAUgACgC0AUgBhCwBCEoIAFBBmoiBCAAKAKsBSICTwRAIAQhAQwFCyAAKAKoBSAEQQJ0aiAoOAIAIBUgACgCzAUgACgC0AUgBhCwBCEoIAFBB2oiBCAAKAKsBSICTwRAIAQhAQwFCyAAKAKoBSAEQQJ0aiAoOAIAIBMgACgCzAUgACgC0AUgBhCwBCEoIAFBCGoiASAAKAKsBSICTw0EIAAoAqgFIAFBAnRqICg4AgALIAAtAMwCIgFBCEcEQCAALQC8AyEdIAAoArgDIAAtALQDIR8gACgCsAMgAC0ArAMhISAAKAKoAyAALQCkAyEjIAAoAqADIAAtAJwDISUgACgCmAMgAC0AlAMhJyAAKAKQAyAALQCMAyEUIAAoAogDIAAtAIQDIRYgACgCgAMgAC0A/AIhGCAAKAL4AiAALQD0AiEaIAAoAvACIAAtAOwCIQ8gACgC6AIgAC0A5AIhESAAKALgAiAALQDcAiEMIAAoAtgCIAAtANQCIQQgACgC0AIgACgCyAIgASAAKALMBSAAKALQBSAGELAEISggBUEPbCIBIAAoArgFIgVPDQIgACgCtAUgAUECdGogKDgCACAEIAAoAswFIAAoAtAFIAYQsAQhKCABQQFqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAMIAAoAswFIAAoAtAFIAYQsAQhKCABQQJqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACARIAAoAswFIAAoAtAFIAYQsAQhKCABQQNqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAPIAAoAswFIAAoAtAFIAYQsAQhKCABQQRqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAaIAAoAswFIAAoAtAFIAYQsAQhKCABQQVqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAYIAAoAswFIAAoAtAFIAYQsAQhKCABQQZqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAWIAAoAswFIAAoAtAFIAYQsAQhKCABQQdqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAUIAAoAswFIAAoAtAFIAYQsAQhKCABQQhqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAnIAAoAswFIAAoAtAFIAYQsAQhKCABQQlqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAlIAAoAswFIAAoAtAFIAYQsAQhKCABQQpqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAjIAAoAswFIAAoAtAFIAYQsAQhKCABQQtqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAhIAAoAswFIAAoAtAFIAYQsAQhKCABQQxqIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAfIAAoAswFIAAoAtAFIAYQsAQhKCABQQ1qIgIgACgCuAUiBU8EQCACIQEMAwsgACgCtAUgAkECdGogKDgCACAdIAAoAswFIAAoAtAFIAYQsAQhKCABQQ5qIgEgACgCuAUiBU8NAiAAKAK0BSABQQJ0aiAoOAIACwJAIAAtAKQBQQhHBEAgA0HYB2ogHEGoAfwKAABBACEFIAchAiAOIQEDQCADQdgHaiAFaiIEKAIAIARBBGotAAAgACgCzAUgACgC0AUgBhCwBCEoIAEgACgCxAUiBE8NAiAAKALABSACaiAoOAIAIAJBBGohAiABQQFqIQEgBUEIaiIFQagBRw0ACwsgB0HUAGohByAOQRVqIQ4gCCAIIAlJIgJqIQEgCCEFIAJFDQYMAQsLIAEgBEHExcEAEIwHAAsgASAFQbTFwQAQjAcAC0EAIBAgBUGEpMcAEOoHAAsgASACQaTFwQAQjAcACyABIA1B9MXBABCMBwALIAlBA2wiDyAAKALwBCIBSw0CIAkgACgC/AQiAUsNAyAPIAAoAogFIgFLDQQgDyAAKAKUBSIBSw0FIAlBAnQiDSAAKAKgBSIBSw0GIAlBCWxBACAAKALkBCICGyIRIAAoAqwFIgFLDQcgCUEPbEEAIAJBAUsbIgsgACgCuAUiAUsNCCAJQRVsQQAgAkECSxsiDCAAKALEBSIBSw0JIAAoAuAEIQogACgC7AQhDiAAKAL4BCEHIAAoAoQFIQUgACgCkAUhCCAAKAKcBSEEIAAoAqgFIQIgACgCtAUhASADQgQ3AqAIIANCAjcCmAggAyAMNgKUCCADIAs2AowIIAMgATYCiAggAyARNgKECCADIAI2AoAIIAMgDTYC/AcgAyAENgL4ByADIA82AvQHIAMgCDYC8AcgAyAPNgLsByADIAU2AugHIAMgCTYC5AcgAyAHNgLgByADIA82AtwHIAMgDjYC2AcgAyAAKALABTYCkAggACAKIAkgA0HYB2oQkwIgACAAKALgBCAJaiICNgLgBCAAKALcBCIBIAlsIBBqIRAgACgC0AUhBSABDQALC0GExMEAEIEIAAtBACAPIAFBhMXBABDqBwALQQAgCSABQfTEwQAQ6gcAC0EAIA8gAUHkxMEAEOoHAAtBACAPIAFB1MTBABDqBwALQQAgDSABQcTEwQAQ6gcAC0EAIBEgAUG0xMEAEOoHAAtBACALIAFBpMTBABDqBwALQQAgDCABQZTEwQAQ6gcACyABIA1BhMbBABCMBwALIAsgDEkNAkEAIQIgAEEANgLQBSALIAxrIQEgDARAIAsgDEYNAiABBEAgACgCzAUiBCAEIAxqIAH8CgAACyAAIAE2AtAFDAILIAsgDEYNAQsgACABNgLQBQsgA0HADGokACACDwtBACAMIAtBhKTHABDqBwALQQAgASAIQczDwQAQ6gcAC7soBBl/BX0CfgF7IwBB0AJrIhokAEKAgICAgICAgMAAIAGtIiSAIiUgJH5CgICAgICAgIDAAFKtAn8gAUGBIE8EQEEBIAFBAXJnQR9zIgZBAXYgBkEBcWoiBnQgASAGdmpBAXYMAQtBwAAgASABQQF2ayIGIAZBwABPGwshGyAlfCElIABBBGshHSAAQRBrIR4gAEEIaiEcQQEhCgJAA0BBASENQQAhEyABIBVLBEAgACAVQQJ0IhZqIRMgFa0iJAJ/AkAgASAVayIOIBtJDQACQCAOQQJJBEAgDiEHDAELQwAAgD8hIAJ/AkAgEygCBCIGIAUoAgBBBGooAgAiECgCCCIUSQRAIBMoAgAhCSAQKAIEIhEgBkEYbGoiCy0AEyIIIAstABIiDSALLQARIgcgByANSRsiByAHIAhJGyINBH1DAABAwSAQKgJEIBAtAFhBAkYiBxsiH0MAABBBIBAqAkggBxsgH5NDAAB+Q5UgDUEBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIiALQQxqLwEAIgdB//8BcUUEQCAHQRB0DAMLIAdB/wdxIQggB0GAgAJxIQ0gB0GA+AFxIgdBgPgBRgRAIA1BEHQiB0GAgID8B3IgCEUNAxogByAIQQ10ckGAgID+B3IMAwsgDUEQdCENIAdFDQEgB0ENdEGAgID8AHEgCEENdHJBgICAwANqIA1yDAILDAcLIAggCGdBEGsiB0H//wNxQQhqdEH///8DcSANQYCAgNgDciAHQRd0a3ILviIfQwAAgD9eBEAgHxDGBUNU+C1AlEMAAIA/kpEhIAtDAACAPyEhAn8CQCAJIBRJBEAgESAJQRhsaiILLQATIgggCy0AEiINIAstABEiByAHIA1JGyIHIAcgCEkbIg0EfUMAAEDBIBAqAkQgEC0AWEECRiIHGyIfQwAAEEEgECoCSCAHGyAfk0MAAH5DlSANQQFrQf8BcbOUkhCJBCIfIB+SBUMAAAAACyEjIAtBDGovAQAiB0H//wFxRQRAIAdBEHQMAwsgB0H/B3EhCCAHQYCAAnEhDSAHQYD4AXEiB0GA+AFGBEAgDUEQdCIHQYCAgPwHciAIRQ0DGiAHIAhBDXRyQYCAgP4HcgwDCyANQRB0IQ0gB0UNASAHQQ10QYCAgPwAcSAIQQ10ckGAgIDAA2ogDXIMAgsgCSAUQdy7xwAQjAcACyAIIAhnQRBrIgdB//8DcUEIanRB////A3EgDUGAgIDYA3IgB0EXdGtyC74iH0MAAIA/XgRAIB8QxgVDVPgtQJRDAACAP5KRISELAkACQAJAAkAgIiAglCIfIB9bIB8gIyAhlGBFcSIPRQRAQQIhByAOQQJGDQUgHCAVQQJ0aiESA0BDAACAPyEgAn8CQCAUIBIoAgAiDUsEQCARIA1BGGxqIhgtABMiCSAYLQASIgsgGC0AESIIIAggC0kbIgggCCAJSRsiCwR9QwAAQMEgECoCRCAQLQBYQQJGIggbIh9DAAAQQSAQKgJIIAgbIB+TQwAAfkOVIAtBAWtB/wFxs5SSEIkEIh8gH5IFQwAAAAALISIgGEEMai8BACIIQf//AXFFBEAgCEEQdAwDCyAIQf8HcSEJIAhBgIACcSELIAhBgPgBcSIIQYD4AUYEQCALQRB0IghBgICA/AdyIAlFDQMaIAggCUENdHJBgICA/gdyDAMLIAtBEHQhCyAIRQ0BIAhBDXRBgICA/ABxIAlBDXRyQYCAgMADaiALcgwCCyANIBRB3LvHABCMBwALIAkgCWdBEGsiCEH//wNxQQhqdEH///8DcSALQYCAgNgDciAIQRd0a3ILviIfQwAAgD9eBEAgHxDGBUNU+C1AlEMAAIA/kpEhIAtDAACAPyEhAn8CQCAGIBRJBEAgESAGQRhsaiIJLQATIgsgCS0AEiIIIAktABEiBiAGIAhJGyIGIAYgC0kbIggEfUMAAEDBIBAqAkQgEC0AWEECRiIGGyIfQwAAEEEgECoCSCAGGyAfk0MAAH5DlSAIQQFrQf8BcbOUkhCJBCIfIB+SBUMAAAAACyEjIAlBDGovAQAiBkH//wFxRQRAIAZBEHQMAwsgBkH/B3EhCyAGQYCAAnEhCCAGQYD4AXEiBkGA+AFGBEAgCEEQdCIGQYCAgPwHciALRQ0DGiAGIAtBDXRyQYCAgP4HcgwDCyAIQRB0IQggBkUNASAGQQ10QYCAgPwAcSALQQ10ckGAgIDAA2ogCHIMAgsMDQsgCyALZ0EQayIGQf//A3FBCGp0Qf///wNxIAhBgICA2ANyIAZBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEhCyAiICCUIh8gH1sgHyAjICGUYEVxDQMgEkEEaiESIA0hBiAOIAdBAWoiB0cNAAsMAQsgDkECRg0CQQIhByAcIBVBAnRqIRIDQEMAAIA/ISACfwJAIBQgEigCACINSwRAIBEgDUEYbGoiGC0AEyIJIBgtABIiCyAYLQARIgggCCALSRsiCCAIIAlJGyILBH1DAABAwSAQKgJEIBAtAFhBAkYiCBsiH0MAABBBIBAqAkggCBsgH5NDAAB+Q5UgC0EBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIiAYQQxqLwEAIghB//8BcUUEQCAIQRB0DAMLIAhB/wdxIQkgCEGAgAJxIQsgCEGA+AFxIghBgPgBRgRAIAtBEHQiCEGAgID8B3IgCUUNAxogCCAJQQ10ckGAgID+B3IMAwsgC0EQdCELIAhFDQEgCEENdEGAgID8AHEgCUENdHJBgICAwANqIAtyDAILIA0gFEHcu8cAEIwHAAsgCSAJZ0EQayIIQf//A3FBCGp0Qf///wNxIAtBgICA2ANyIAhBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEgC0MAAIA/ISECfwJAIAYgFEkEQCARIAZBGGxqIgktABMiCyAJLQASIgggCS0AESIGIAYgCEkbIgYgBiALSRsiCAR9QwAAQMEgECoCRCAQLQBYQQJGIgYbIh9DAAAQQSAQKgJIIAYbIB+TQwAAfkOVIAhBAWtB/wFxs5SSEIkEIh8gH5IFQwAAAAALISMgCUEMai8BACIGQf//AXFFBEAgBkEQdAwDCyAGQf8HcSELIAZBgIACcSEIIAZBgPgBcSIGQYD4AUYEQCAIQRB0IgZBgICA/AdyIAtFDQMaIAYgC0ENdHJBgICA/gdyDAMLIAhBEHQhCCAGRQ0BIAZBDXRBgICA/ABxIAtBDXRyQYCAgMADaiAIcgwCCwwMCyALIAtnQRBrIgZB//8DcUEIanRB////A3EgCEGAgIDYA3IgBkEXdGtyC74iH0MAAIA/XgRAIB8QxgVDVPgtQJRDAACAP5KRISELICIgIJQiHyAfXCAfICMgIZRgcg0CIBJBBGohEiANIQYgDiAHQQFqIgdHDQALCyAOIQcLIAcgG0kNAyAPRQ0CIAdBAkkEQEEBIQcMAwsgB0EBdiENIBMgB0ECdCIGaiEIQQAhCSAHQQhJDQEgHiAGIBZqaiEOIA1B/P///wdxIgkhBgNAIBMgDv0AAgAgE/0AAgAiJv0NDA0ODwgJCgsEBQYHAAECA/0LAgAgDiAmICb9DQwNDg8ICQoLBAUGBwABAgP9CwIAIA5BEGshDiATQRBqIRMgBkEEayIGDQALIAkgDUYNAgwBCyATQQhqIQhBACEJQQEhDUECIQcLIAAgCUECdCIGIBZqaiEOIA0gCWshCSAIIAZrQQRrIQYDQCAOKAIAIQ0gDiAGKAIANgIAIAYgDTYCACAGQQRrIQYgDkEEaiEOIAlBAWsiCQ0ACwsgB0EBdEEBcgwBCyAOIBsgDiAbSRtBAXQgBEUNABogE0EgIA4gDkEgTxsiBiACIANBAEEAIAUQOCAGQQF0QQFyCyINQQF2IBVqrXwgJX4gFSAKQQF2a60gJHwgJX6FeachEwsCQAJAIAxBAkkNACAdIBVBAnQiBmohCCAAIAZqIRgDQCAMQQFrIgsgGkGOAmpqLQAAIBNJDQECfwJAAkAgAyAaQQRqIAtBAnRqKAIAIgZBAXYiDyAKQQF2IgxqIhRPIAYgCnJBAXFFcUUEQCAAIBUgFGtBAnRqIQ4gBkEBcUUNAQwCCyAUQQF0DAILIA4gDyACIAMgD0EBcmdBAXRBPnNBACAFEDgLIApBAXFFBEAgDiAPQQJ0aiAMIAIgAyAMQQFyZ0EBdEE+c0EAIAUQOAsCQCAKQQJJIAZBAklyDQAgAyAMIA8gDCAPSSIJGyIHSQ0AIAUoAgAgDiAPQQJ0aiEMIAdBAnQiBwRAIAIgDCAOIAkbIAf8CgAACyACIAdqIQdBBGoiCigCACIXKAIIIRkCQCAJRQRAIAIhBgNAQwAAgD8hIAJ/AkAgGSAMKAIAIgpLBEAgBigCACESIBcoAgQiFiAKQRhsaiIRLQATIg8gES0AEiIJIBEtABEiCiAJIApLGyIKIAogD0kbIgkEfUMAAEDBIBcqAkQgFy0AWEECRiIKGyIfQwAAEEEgFyoCSCAKGyAfk0MAAH5DlSAJQQFrQf8BcbOUkhCJBCIfIB+SBUMAAAAACyEiIBFBDGovAQAiCkH//wFxRQRAIApBEHQMAwsgCkH/B3EhDyAKQYCAAnEhCSAKQYD4AXEiCkGA+AFGBEAgCUEQdCIKQYCAgPwHciAPRQ0DGiAKIA9BDXRyQYCAgP4HcgwDCyAJQRB0IQkgCkUNASAKQQ10QYCAgPwAcSAPQQ10ckGAgIDAA2ogCXIMAgsgCiAZQdy7xwAQjAcACyAPIA9nQRBrIgpB//8DcUEIanRB////A3EgCUGAgIDYA3IgCkEXdGtyC74iH0MAAIA/XgRAIB8QxgVDVPgtQJRDAACAP5KRISALQwAAgD8hIQJ/AkAgEiAZSQRAIBYgEkEYbGoiFi0AEyIPIBYtABIiCSAWLQARIgogCSAKSxsiCiAKIA9JGyIJBH1DAABAwSAXKgJEIBctAFhBAkYiChsiH0MAABBBIBcqAkggChsgH5NDAAB+Q5UgCUEBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIyAWQQxqLwEAIgpB//8BcUUEQCAKQRB0DAMLIApB/wdxIQ8gCkGAgAJxIQkgCkGA+AFxIgpBgPgBRgRAIAlBEHQiCkGAgID8B3IgD0UNAxogCiAPQQ10ckGAgID+B3IMAwsgCUEQdCEJIApFDQEgCkENdEGAgID8AHEgD0ENdHJBgICAwANqIAlyDAILIBIgGUHcu8cAEIwHAAsgDyAPZ0EQayIKQf//A3FBCGp0Qf///wNxIAlBgICA2ANyIApBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEhCyAOIAwgBiAiICCUIh8gH1sgHyAjICGUYEVxIgobKAIANgIAIA5BBGohDiAGIApFQQJ0aiIGIAdGDQIgDCAKQQJ0aiIMIBhHDQALDAELIAghCQNAQwAAgD8hIAJ/AkAgGSAHQQRrIhYoAgAiBksEQCAMQQRrIg8oAgAhEiAXKAIEIAZBGGxqIhEtABMiByARLQASIgwgES0AESIGIAYgDEkbIgYgBiAHSRsiDAR9QwAAQMEgFyoCRCAXLQBYQQJGIgYbIh9DAAAQQSAXKgJIIAYbIB+TQwAAfkOVIAxBAWtB/wFxs5SSEIkEIh8gH5IFQwAAAAALISIgEUEMai8BACIGQf//AXFFBEAgBkEQdAwDCyAGQf8HcSEHIAZBgIACcSEMIAZBgPgBcSIGQYD4AUYEQCAMQRB0IgZBgICA/AdyIAdFDQMaIAYgB0ENdHJBgICA/gdyDAMLIAxBEHQhDCAGRQ0BIAZBDXRBgICA/ABxIAdBDXRyQYCAgMADaiAMcgwCCyAGIBlB3LvHABCMBwALIAcgB2dBEGsiBkH//wNxQQhqdEH///8DcSAMQYCAgNgDciAGQRd0a3ILviIfQwAAgD9eBEAgHxDGBUNU+C1AlEMAAIA/kpEhIAtDAACAPyEhAn8CQCAKKAIAIhAoAggiBiASSwRAIBAoAgQgEkEYbGoiES0AEyIHIBEtABIiDCARLQARIgYgBiAMSRsiBiAGIAdJGyIMBH1DAABAwSAQKgJEIBAtAFhBAkYiBhsiH0MAABBBIBAqAkggBhsgH5NDAAB+Q5UgDEEBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIyARQQxqLwEAIgZB//8BcUUEQCAGQRB0DAMLIAZB/wdxIQcgBkGAgAJxIQwgBkGA+AFxIgZBgPgBRgRAIAxBEHQiBkGAgID8B3IgB0UNAxogBiAHQQ10ckGAgID+B3IMAwsgDEEQdCEMIAZFDQEgBkENdEGAgID8AHEgB0ENdHJBgICAwANqIAxyDAILIBIgBkHcu8cAEIwHAAsgByAHZ0EQayIGQf//A3FBCGp0Qf///wNxIAxBgICA2ANyIAZBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEhCyAJIA8gFiAiICCUIh8gH1sgHyAjICGUYEVxIgYbKAIANgIAIBYgBkECdGohByAOIA8gBkVBAnRqIgxHBEAgCUEEayEJIAIgB0cNAQsLIAwhDiACIQYLIAcgBmsiDEUNACAOIAYgDPwKAAALIBRBAXRBAXILIQpBASEOIAsiDEEBSw0ACwwBCyAMIQ4LIBpBjgJqIA5qIBM6AAAgGkEEaiAOQQJ0aiAKNgIAIAEgFUsEQCAOQQFqIQwgDUEBdiAVaiEVIA0hCgwBCwsgCkEBcUUEQCAAIAEgAiADIAFBAXJnQQF0QT5zQQAgBRA4CyAaQdACaiQADwsgBiAUQdy7xwAQjAcAC7soBBl/BX0CfgF7IwBB0AJrIhokAEKAgICAgICAgMAAIAGtIiSAIiUgJH5CgICAgICAgIDAAFKtAn8gAUGBIE8EQEEBIAFBAXJnQR9zIgZBAXYgBkEBcWoiBnQgASAGdmpBAXYMAQtBwAAgASABQQF2ayIGIAZBwABPGwshGyAlfCElIABBBGshHSAAQRBrIR4gAEEIaiEcQQEhCgJAA0BBASENQQAhEyABIBVLBEAgACAVQQJ0IhZqIRMgFa0iJAJ/AkAgASAVayIOIBtJDQACQCAOQQJJBEAgDiEHDAELQwAAgD8hIAJ/AkAgEygCBCIGIAUoAgBBBGooAgAiECgCCCIUSQRAIBMoAgAhCSAQKAIEIhEgBkEYbGoiCy0AEyIIIAstABIiDSALLQARIgcgByANSRsiByAHIAhJGyINBH1DAABAwSAQKgJEIBAtAFhBAkYiBxsiH0MAABBBIBAqAkggBxsgH5NDAAB+Q5UgDUEBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIiALQQxqLwEAIgdB//8BcUUEQCAHQRB0DAMLIAdB/wdxIQggB0GAgAJxIQ0gB0GA+AFxIgdBgPgBRgRAIA1BEHQiB0GAgID8B3IgCEUNAxogByAIQQ10ckGAgID+B3IMAwsgDUEQdCENIAdFDQEgB0ENdEGAgID8AHEgCEENdHJBgICAwANqIA1yDAILDAcLIAggCGdBEGsiB0H//wNxQQhqdEH///8DcSANQYCAgNgDciAHQRd0a3ILviIfQwAAgD9eBEAgHxDGBUNU+C1AlEMAAIA/kpEhIAtDAACAPyEhAn8CQCAJIBRJBEAgESAJQRhsaiILLQATIgggCy0AEiINIAstABEiByAHIA1JGyIHIAcgCEkbIg0EfUMAAEDBIBAqAkQgEC0AWEECRiIHGyIfQwAAEEEgECoCSCAHGyAfk0MAAH5DlSANQQFrQf8BcbOUkhCJBCIfIB+SBUMAAAAACyEjIAtBDGovAQAiB0H//wFxRQRAIAdBEHQMAwsgB0H/B3EhCCAHQYCAAnEhDSAHQYD4AXEiB0GA+AFGBEAgDUEQdCIHQYCAgPwHciAIRQ0DGiAHIAhBDXRyQYCAgP4HcgwDCyANQRB0IQ0gB0UNASAHQQ10QYCAgPwAcSAIQQ10ckGAgIDAA2ogDXIMAgsgCSAUQdy7xwAQjAcACyAIIAhnQRBrIgdB//8DcUEIanRB////A3EgDUGAgIDYA3IgB0EXdGtyC74iH0MAAIA/XgRAIB8QxgVDVPgtQJRDAACAP5KRISELAkACQAJAAkAgIiAglCIfIB9bIB8gIyAhlGBFcSIPRQRAQQIhByAOQQJGDQUgHCAVQQJ0aiESA0BDAACAPyEgAn8CQCAUIBIoAgAiDUsEQCARIA1BGGxqIhgtABMiCSAYLQASIgsgGC0AESIIIAggC0kbIgggCCAJSRsiCwR9QwAAQMEgECoCRCAQLQBYQQJGIggbIh9DAAAQQSAQKgJIIAgbIB+TQwAAfkOVIAtBAWtB/wFxs5SSEIkEIh8gH5IFQwAAAAALISIgGEEMai8BACIIQf//AXFFBEAgCEEQdAwDCyAIQf8HcSEJIAhBgIACcSELIAhBgPgBcSIIQYD4AUYEQCALQRB0IghBgICA/AdyIAlFDQMaIAggCUENdHJBgICA/gdyDAMLIAtBEHQhCyAIRQ0BIAhBDXRBgICA/ABxIAlBDXRyQYCAgMADaiALcgwCCyANIBRB3LvHABCMBwALIAkgCWdBEGsiCEH//wNxQQhqdEH///8DcSALQYCAgNgDciAIQRd0a3ILviIfQwAAgD9eBEAgHxDGBUNU+C1AlEMAAIA/kpEhIAtDAACAPyEhAn8CQCAGIBRJBEAgESAGQRhsaiIJLQATIgsgCS0AEiIIIAktABEiBiAGIAhJGyIGIAYgC0kbIggEfUMAAEDBIBAqAkQgEC0AWEECRiIGGyIfQwAAEEEgECoCSCAGGyAfk0MAAH5DlSAIQQFrQf8BcbOUkhCJBCIfIB+SBUMAAAAACyEjIAlBDGovAQAiBkH//wFxRQRAIAZBEHQMAwsgBkH/B3EhCyAGQYCAAnEhCCAGQYD4AXEiBkGA+AFGBEAgCEEQdCIGQYCAgPwHciALRQ0DGiAGIAtBDXRyQYCAgP4HcgwDCyAIQRB0IQggBkUNASAGQQ10QYCAgPwAcSALQQ10ckGAgIDAA2ogCHIMAgsMDQsgCyALZ0EQayIGQf//A3FBCGp0Qf///wNxIAhBgICA2ANyIAZBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEhCyAiICCUIh8gH1sgHyAjICGUYEVxDQMgEkEEaiESIA0hBiAOIAdBAWoiB0cNAAsMAQsgDkECRg0CQQIhByAcIBVBAnRqIRIDQEMAAIA/ISACfwJAIBQgEigCACINSwRAIBEgDUEYbGoiGC0AEyIJIBgtABIiCyAYLQARIgggCCALSRsiCCAIIAlJGyILBH1DAABAwSAQKgJEIBAtAFhBAkYiCBsiH0MAABBBIBAqAkggCBsgH5NDAAB+Q5UgC0EBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIiAYQQxqLwEAIghB//8BcUUEQCAIQRB0DAMLIAhB/wdxIQkgCEGAgAJxIQsgCEGA+AFxIghBgPgBRgRAIAtBEHQiCEGAgID8B3IgCUUNAxogCCAJQQ10ckGAgID+B3IMAwsgC0EQdCELIAhFDQEgCEENdEGAgID8AHEgCUENdHJBgICAwANqIAtyDAILIA0gFEHcu8cAEIwHAAsgCSAJZ0EQayIIQf//A3FBCGp0Qf///wNxIAtBgICA2ANyIAhBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEgC0MAAIA/ISECfwJAIAYgFEkEQCARIAZBGGxqIgktABMiCyAJLQASIgggCS0AESIGIAYgCEkbIgYgBiALSRsiCAR9QwAAQMEgECoCRCAQLQBYQQJGIgYbIh9DAAAQQSAQKgJIIAYbIB+TQwAAfkOVIAhBAWtB/wFxs5SSEIkEIh8gH5IFQwAAAAALISMgCUEMai8BACIGQf//AXFFBEAgBkEQdAwDCyAGQf8HcSELIAZBgIACcSEIIAZBgPgBcSIGQYD4AUYEQCAIQRB0IgZBgICA/AdyIAtFDQMaIAYgC0ENdHJBgICA/gdyDAMLIAhBEHQhCCAGRQ0BIAZBDXRBgICA/ABxIAtBDXRyQYCAgMADaiAIcgwCCwwMCyALIAtnQRBrIgZB//8DcUEIanRB////A3EgCEGAgIDYA3IgBkEXdGtyC74iH0MAAIA/XgRAIB8QxgVDVPgtQJRDAACAP5KRISELICIgIJQiHyAfXCAfICMgIZRgcg0CIBJBBGohEiANIQYgDiAHQQFqIgdHDQALCyAOIQcLIAcgG0kNAyAPRQ0CIAdBAkkEQEEBIQcMAwsgB0EBdiENIBMgB0ECdCIGaiEIQQAhCSAHQQhJDQEgHiAGIBZqaiEOIA1B/P///wdxIgkhBgNAIBMgDv0AAgAgE/0AAgAiJv0NDA0ODwgJCgsEBQYHAAECA/0LAgAgDiAmICb9DQwNDg8ICQoLBAUGBwABAgP9CwIAIA5BEGshDiATQRBqIRMgBkEEayIGDQALIAkgDUYNAgwBCyATQQhqIQhBACEJQQEhDUECIQcLIAAgCUECdCIGIBZqaiEOIA0gCWshCSAIIAZrQQRrIQYDQCAOKAIAIQ0gDiAGKAIANgIAIAYgDTYCACAGQQRrIQYgDkEEaiEOIAlBAWsiCQ0ACwsgB0EBdEEBcgwBCyAOIBsgDiAbSRtBAXQgBEUNABogE0EgIA4gDkEgTxsiBiACIANBAEEAIAUQNyAGQQF0QQFyCyINQQF2IBVqrXwgJX4gFSAKQQF2a60gJHwgJX6FeachEwsCQAJAIAxBAkkNACAdIBVBAnQiBmohCCAAIAZqIRgDQCAMQQFrIgsgGkGOAmpqLQAAIBNJDQECfwJAAkAgAyAaQQRqIAtBAnRqKAIAIgZBAXYiDyAKQQF2IgxqIhRPIAYgCnJBAXFFcUUEQCAAIBUgFGtBAnRqIQ4gBkEBcUUNAQwCCyAUQQF0DAILIA4gDyACIAMgD0EBcmdBAXRBPnNBACAFEDcLIApBAXFFBEAgDiAPQQJ0aiAMIAIgAyAMQQFyZ0EBdEE+c0EAIAUQNwsCQCAKQQJJIAZBAklyDQAgAyAMIA8gDCAPSSIJGyIHSQ0AIAUoAgAgDiAPQQJ0aiEMIAdBAnQiBwRAIAIgDCAOIAkbIAf8CgAACyACIAdqIQdBBGoiCigCACIXKAIIIRkCQCAJRQRAIAIhBgNAQwAAgD8hIAJ/AkAgGSAMKAIAIgpLBEAgBigCACESIBcoAgQiFiAKQRhsaiIRLQATIg8gES0AEiIJIBEtABEiCiAJIApLGyIKIAogD0kbIgkEfUMAAEDBIBcqAkQgFy0AWEECRiIKGyIfQwAAEEEgFyoCSCAKGyAfk0MAAH5DlSAJQQFrQf8BcbOUkhCJBCIfIB+SBUMAAAAACyEiIBFBDGovAQAiCkH//wFxRQRAIApBEHQMAwsgCkH/B3EhDyAKQYCAAnEhCSAKQYD4AXEiCkGA+AFGBEAgCUEQdCIKQYCAgPwHciAPRQ0DGiAKIA9BDXRyQYCAgP4HcgwDCyAJQRB0IQkgCkUNASAKQQ10QYCAgPwAcSAPQQ10ckGAgIDAA2ogCXIMAgsgCiAZQdy7xwAQjAcACyAPIA9nQRBrIgpB//8DcUEIanRB////A3EgCUGAgIDYA3IgCkEXdGtyC74iH0MAAIA/XgRAIB8QxgVDVPgtQJRDAACAP5KRISALQwAAgD8hIQJ/AkAgEiAZSQRAIBYgEkEYbGoiFi0AEyIPIBYtABIiCSAWLQARIgogCSAKSxsiCiAKIA9JGyIJBH1DAABAwSAXKgJEIBctAFhBAkYiChsiH0MAABBBIBcqAkggChsgH5NDAAB+Q5UgCUEBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIyAWQQxqLwEAIgpB//8BcUUEQCAKQRB0DAMLIApB/wdxIQ8gCkGAgAJxIQkgCkGA+AFxIgpBgPgBRgRAIAlBEHQiCkGAgID8B3IgD0UNAxogCiAPQQ10ckGAgID+B3IMAwsgCUEQdCEJIApFDQEgCkENdEGAgID8AHEgD0ENdHJBgICAwANqIAlyDAILIBIgGUHcu8cAEIwHAAsgDyAPZ0EQayIKQf//A3FBCGp0Qf///wNxIAlBgICA2ANyIApBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEhCyAOIAwgBiAiICCUIh8gH1sgHyAjICGUYEVxIgobKAIANgIAIA5BBGohDiAGIApFQQJ0aiIGIAdGDQIgDCAKQQJ0aiIMIBhHDQALDAELIAghCQNAQwAAgD8hIAJ/AkAgGSAHQQRrIhYoAgAiBksEQCAMQQRrIg8oAgAhEiAXKAIEIAZBGGxqIhEtABMiByARLQASIgwgES0AESIGIAYgDEkbIgYgBiAHSRsiDAR9QwAAQMEgFyoCRCAXLQBYQQJGIgYbIh9DAAAQQSAXKgJIIAYbIB+TQwAAfkOVIAxBAWtB/wFxs5SSEIkEIh8gH5IFQwAAAAALISIgEUEMai8BACIGQf//AXFFBEAgBkEQdAwDCyAGQf8HcSEHIAZBgIACcSEMIAZBgPgBcSIGQYD4AUYEQCAMQRB0IgZBgICA/AdyIAdFDQMaIAYgB0ENdHJBgICA/gdyDAMLIAxBEHQhDCAGRQ0BIAZBDXRBgICA/ABxIAdBDXRyQYCAgMADaiAMcgwCCyAGIBlB3LvHABCMBwALIAcgB2dBEGsiBkH//wNxQQhqdEH///8DcSAMQYCAgNgDciAGQRd0a3ILviIfQwAAgD9eBEAgHxDGBUNU+C1AlEMAAIA/kpEhIAtDAACAPyEhAn8CQCAKKAIAIhAoAggiBiASSwRAIBAoAgQgEkEYbGoiES0AEyIHIBEtABIiDCARLQARIgYgBiAMSRsiBiAGIAdJGyIMBH1DAABAwSAQKgJEIBAtAFhBAkYiBhsiH0MAABBBIBAqAkggBhsgH5NDAAB+Q5UgDEEBa0H/AXGzlJIQiQQiHyAfkgVDAAAAAAshIyARQQxqLwEAIgZB//8BcUUEQCAGQRB0DAMLIAZB/wdxIQcgBkGAgAJxIQwgBkGA+AFxIgZBgPgBRgRAIAxBEHQiBkGAgID8B3IgB0UNAxogBiAHQQ10ckGAgID+B3IMAwsgDEEQdCEMIAZFDQEgBkENdEGAgID8AHEgB0ENdHJBgICAwANqIAxyDAILIBIgBkHcu8cAEIwHAAsgByAHZ0EQayIGQf//A3FBCGp0Qf///wNxIAxBgICA2ANyIAZBF3Rrcgu+Ih9DAACAP14EQCAfEMYFQ1T4LUCUQwAAgD+SkSEhCyAJIA8gFiAiICCUIh8gH1sgHyAjICGUYEVxIgYbKAIANgIAIBYgBkECdGohByAOIA8gBkVBAnRqIgxHBEAgCUEEayEJIAIgB0cNAQsLIAwhDiACIQYLIAcgBmsiDEUNACAOIAYgDPwKAAALIBRBAXRBAXILIQpBASEOIAsiDEEBSw0ACwwBCyAMIQ4LIBpBjgJqIA5qIBM6AAAgGkEEaiAOQQJ0aiAKNgIAIAEgFUsEQCAOQQFqIQwgDUEBdiAVaiEVIA0hCgwBCwsgCkEBcUUEQCAAIAEgAiADIAFBAXJnQQF0QT5zQQAgBRA3CyAaQdACaiQADwsgBiAUQdy7xwAQjAcAC6MsAxh/BX4BeyMAQeAGayIEJAAgBEHQAGogAUHwBPwKAAAgBEIANwPABSAEIAOtIh83A8gFAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkAgBCgCeEECRwRAIARBQGsgBCgCsAMiBq0gBCgCrAMiC61+IAQtALgFQQN0KQPYnkkQ3QYgBEIANwPQBSAEQn8gBCkDQCAEKQNIQgBSGyIcNwPYBSAcIB9SDQEgBEHwAGohDkEmIQcgBCgCrAVFBEBBASELDAgLIAQtANQERQ0DIARB4AVqIA4QjAEgBC0A4AVBKEYNAiAEKALgBSIHQQh2DAQLDAgLIARBADYC4AUgBEHABWogBEHQBWogBEHgBWpBpM3HABD3BwALIAQoAnhBAkYNBiAEKAKwAyEGIAQoAqwDIQsLIARBOGogDhCKBUIAIRwgBC0AOEEDdCkDqJ9JIAQxADkgC61+fiIdQvH/////AFoEQAwDCyAGrSAdQgd8QgOIfiIdQiCIpw0CIB2nIgtBAEgNAgJAIAMgC08EQCAEQTBqIA4QigUgBC0AMSEGIAQtADAhCSAEKALIBCAEQShqIA4QigUgBC0AKEECdCgC4J9JbCELAkACQAJAIAQtACkiB0EIaw4JAgAAAAAAAAABAAsgB0EITQRAIAtBCCAHbiIHbiIMIAsgByAMbEdqIQsMAgsMCgsgC0EBdCELCyAEKAJ4QQJHBEACQCAELQC0A0UEQCALRQ0BIAQoArgEIQwgBCgCtAQhBSAEIAQoAswEIgc2AvQFIAQgByAMIAVBAkYbIgc2AvgFIAQgCzYC8AUgBCADIAtwIgU2AuQFIAQgAyAFayIFNgLsBSAEIAI2AugFIAQgAiAFajYC4AUDQAJAIAdFBEAgBCgC9AUiB0UNByAEIAdBAWs2AvQFIAQoAuwFIgUgBCgC8AUiB0kNByAEIAUgB2s2AuwFIAQgBCgC6AUiCyAHajYC6AUgCw0BDAcLIARBADYC+AUgBEEgaiEGQQAhCQJAAkAgByAEQeAFaiIIKAIUIgtPBEAgCw0BQQAhCgwCCyAIIAsgB0F/c2o2AhRBASEMAkAgB60gCCgCECILrX4iHUIgiFBFBEBBACEKDAELQQAhCiAIKAIMIgcgHaciBU0NACAIIAcgBWsiBzYCDCAIIAgoAgggBWoiCjYCCCAHIAtJBEBBACEKDAMLIAcgC2shCSAKIAtqIQwLIAggCTYCDCAIIAw2AggMAQtBACEKQQEhCQJAAkAgC0EBa60gCCgCECILrX4iHUIgiKcNACAIKAIMIgcgHaciDE0NACAIIAcgDGsiBTYCDCAIIAgoAgggDGoiBzYCCCAFIAtJDQEgBSALayEKIAcgC2ohCQsgCCAKNgIMIAggCTYCCAtBACEKIAhBADYCFAsgBiALNgIEIAYgCjYCACAEKAIgIgtFDQYgBCgCJCEHCyAEQdAFaiAOIAQoAtAEIAsgBxB6IAQtANAFIgdBKEcEQCAELwDRBSAELQDTBUEQdHIhBiAEKQLYBSEcIAQoAtQFIQsMCgUgBCgC+AUhBwwBCwALAAsgBCgCrAMgBEEYaiAOEIoFIAQtABhBAnQoAvyfSWwhEAJAAkACQCAELQAZIgdBCGsOCQIAAAAAAAAAAQALIAdBCE0EQCAQQQggB24iBW4iByAQIAUgB2xHaiEQDAILDAwLIBBBAXQhEAsgBEGoBWoiBygCACELIAdBADYCACAEQdgFaiIYIAs2AgAgBCkDoAUhHSAEQoCAgIAQNwOgBSAEIB03A9AFAkAgBCgCeEECRwRAIARBoAVqIRYgBkKBgIyIoICAAiAJrUL/AYNCA4aIp2wiGUEDdkEfcSETIARBnAZqIRogBEHsBWohGyAEQewEaiEUIARB+ARqIRUDQCAENQKsAyEdIARBEGogDhCKBQJAAkACQAJAAkACQCAELQAQQQN0KQOYoEkgHSAEMQARfn4iHULw/////wBWDQAgHUIHfEIDiKciCUEASA0AAkAgBCgC2AUiByAJTwRAIAQoAtQFIQoMAQsgCSAHayIFIAQoAtAFIAdrSwRAIARB0AVqIAcgBUEBQQEQpAUgBCgC2AUhBwsgBCgC1AUiCiAHaiELIAVBAk8EQCAFQQFrIgUEQCALQQAgBfwLAAsgCiAFIAdqIgdqIQsLIAtBADoAACAHQQFqIQkLIAQgCTYC2AUCQAJAAkACQAJAIAQoArQEIgZBAkcEQCAEKALEBCEXIAQoAsAEIQwgBCgCvAQhCyAEKAK4BCEHIAZBAXFFDQEgB0UEQCAEKAL4BEEATgRAIARB6AVqIg8gFUEIaigCADYCACAEIBUpAgA3A+AFIARBADYCgAUgBEEBNgL8BCAEKALsBCIRBEAgBCgC8AQiDUEEaygCACIFQXhxIghBBEEIIAVBA3EiBRsgEWpJDR0gBUEAIAggEUEnaksbDR4gDRCiAgsgFCAEKQPgBTcCACAUQQhqIA8oAgA2AgALIARBgICAgHg2AvgEIAQoAnhBAkYNBgsgBC0AtgNBAnQoAuygSSAMbCEIIAQtALcDIgVBCGsOCQQCAgICAgICAwILIARB4AVqIA4Q5wQgBC0A4AVBKEcNB0ECIQYMCAsgB0UEQCAEKAL4BEEATgRAIARB6AVqIg8gFUEIaigCADYCACAEIBUpAgA3A+AFIARBADYCgAUgBEEBNgL8BCAEKALsBCIRBEAgBCgC8AQiDUEEaygCACIFQXhxIghBBEEIIAVBA3EiBRsgEWpJDRsgBUEAIAggEUEnaksbDRwgDRCiAgsgFCAEKQPgBTcCACAUQQhqIA8oAgA2AgALIARBgICAgHg2AvgECyAEKALIBCEIIAQoAtAEIQUMBQsgBUEITQRAIAhBCCAFbiINbiIFIAggBSANbEdqIQgMAgsMFgsgCEEBdCEICyAIQQFqIQUgDCEIDAILDBILQSchByAEKALQBSICRQ0DIAQoAtQFIAJBARCiBwwDCyAEQQhqIA4QigUgBC0ACEECdCgC0KBJIAhsIQgCQAJAAkAgBC0ACSINQQhrDgkCAAAAAAAAAAEACyANQQhNBEAgCEEIIA1uIg9uIg0gCCANIA9sR2ohCAwCCwwTCyAIQQF0IQgLIAggCU0EQCAEQeAFaiAOIAUgCiAIEHogBC0A4AVBKEcNAQwCC0EAIAggCUHomscAEOoHAAsgBCgC7AUhFyAEKALoBSEMIAQoAuQFIQsgBCgC4AUhB0EDIQYLIAQoAqAFIggEQCAEKAKkBSIKQQRrKAIAIgVBeHEiCUEEQQggBUEDcSIFGyAIakkNESAFQQAgCSAIQSdqSxsNEiAKEKICCyAWIAQpA9AFNwIAIBZBCGoiESAYKAIANgIAAkACQCAGQQJrDgIKAQALIAQoAsgEIQUgBCAOEIoFIAQtAABBAnQoAoihSSAMIAUgBkEBcSIKG2whBgJAAkACQCAELQABIgVBCGsOCQIAAAAAAAAAAQALIAVBCE0EQCAGQQggBW4iCW4iBSAGIAUgCWxHaiEGDAILDBILIAZBAXQhBgsgBiAEKAKoBSIFTQ0CQQAgBiAFQfiZxwAQ6gcACyAHQQh2IQYLIAytIBetQiCGhCEcDAsLAkACQAJAAkACQAJAAkAgCgRAIAQoAqQFIQkgF0H/AXFBAWshCgJAAkACQCAZQf8BcSIFQQFrDhABCQAIAAAABwAAAAAAAAAGAAsgCkEHTw0aIAVBCE8NASAEQQA2AvAFIARBATYC5AUgBEG8occANgLgBSAEQgQ3AugFIARB4AVqQeiNxQAQjQgACyAKQQdPDRkgBEIANwLMBiAEQQE6AMgGIARCh4yUoLDAwAA3A8AGIARBADYCpAYgBEEANgKQBiAEQQE6AIAGIARCADcD4AUgBCAMrSIeNwPoBSAEIAk2ArgGIAQgBiAJaiINNgK8BiAEIApBAnQoAJiORSIFQf8Bca0iIDcD8AUgBCAFQQh2IghB/wFxIgqtIh83A/gFIAQgBUEQdkH/AXEgB2wgBUEYdmogEGwiDzYCiAYgDEUgBkVyDQggBCAJQQFqIgU2ArgGIAQgCS0AACIGQQFxrUI4hiAGQQF2QQFxrUIwhoQgBkECdkEBca1CKIaEIAZBA3ZBAXGtQiCGhCAGQQR2QQFxrUIYhoQgBkEFdkEBca1CEIaEIAZBBnZBAXGtQgiGhCAGQQd2rYQiHTcCnAYgAyAPIApBA3ZqIglLBEAgHachCiAfICB8IRxBASEGA0AgAiAJaiIJIAktAAAgCiAIQX9zQQdxdHI6AAAgHkIBfSIeUA0KAn8gBkEIRwRAIAYgGmotAAAMAQsgBSANRg0LIAQgBUEBaiIJNgK4BiAEIAUtAAAiBUEBca1COIYgBUEBdkEBca1CMIaEIAVBAnZBAXGtQiiGhCAFQQN2QQFxrUIghoQgBUEEdkEBca1CGIaEIAVBBXZBAXGtQhCGhCAFQQZ2QQFxrUIIhoQgBUEHdq2EIh03ApwGQQAhBiAJIQUgHacLIQogHEIDiCEdIBynIQggBkEBaiEGIBwgIHwhHCAPIB2naiIJIANJDQALCyAJIANB+IzFABCMBwALIAxFDQcgDK0hHCATIApBAnQoAJiORSIFQf8BcWwhCCADIAVBEHZB/wFxIAdsIAVBGHZqIBBsIBMgBUEIdkH/AXFsaiIKayEFA0AgBkUNCCADIApJDQIgEyAGIAYgE0sbIg0gBUsNAyANBEAgAiAKaiAJIA38CgAACyAGIA1rIQYgCSANaiEJIAUgCGshBSAIIApqIQogHEIBfSIcQgBSDQALDAcLQcyYxwAQ3QkACyAKIAMgA0GIjsUAEOoHAAtBACANIAVB+I3FABDqBwALAkACQAJAIApBB0kEQCAMRQ0HIAytIRwgAyAKQQJ0KACYjkUiDUEQdkH/AXEgB2wgDUEYdmogEGwiCGsgDUEIdkH/AXFBAXQiBWshCiANQf8BcUEBdCENIAUgCGohCANAIAZFDQggAyAISQ0CIApBAU0NA0ECIAYgBkECTxshBSAGQQFGDQQgBiAFayEGIAIgCGogCS8AADsAACAKIA1rIQogCCANaiEIIAUgCWohCSAcQgF9IhxQRQ0ACwwHCwwXCyAIIAMgA0HYjcUAEOoHAAtBAEECIApBuI3FABDqBwALQQIgBUHIjcUAEN4JAAsgCkEHSQRAIAxFDQMgCkECdCgAmI5FIgpB/wFxIQUgDK0hHCAKQRB2Qf8BcSAHbCAKQRh2aiAQbCAKQQh2Qf8BcWohCANAIAZFDQQgAyAISwRAIAIgCGogCS0AADoAACAGQQFrIQYgBSAIaiEIIAlBAWohCSAcQgF9IhxQRQ0BDAULCyAIIANBqI3FABCMBwALDBMLIApBB0kEQCAMRSAGRXINAgJAIApBAnQoAJiORSISQRB2Qf8BcSAHbCASQRh2aiAQbCIPIBJBCHYiDUH/AXEiCkEBdmoiCCADTw0AIAIgCGoiBSAFLQAAIAktAAAiBUEEdiANQQJ0QX9zQQRxdHI6AAAgDEEBRg0DIAYgCWohDSAJQQFqIQkgBUEPcSEFIAytQgF9IR4gEkH/AXGtIh9CAoYhHSAfIAqtfEIChiEcQQEhBgNAAn8gBkECRwRAIAUhCkECDAELIAkgDUYNBSAJLQAAIgZBD3EhBSAGQQR2IQogCUEBaiEJQQELIQYgDyAcQgOIp2oiCCADTw0BIAIgCGoiCCAILQAAIAogHKdBf3NBBHF0cjoAACAcIB18IRwgHkIBfSIeUEUNAAsMAwsgCCADQZiNxQAQjAcACwwSCyAKQQdPDQMgBEIANwPABiAEQQM6AIwGIARBhogINgKIBiAEQQA2AvAFIARBADYC4AUgBCAMrSIgNwOYBiAEIAk2AoAGIAQgBiAJaiIPNgKEBiAEQQI6ALAGIAQgCkECdCgAmI5FIgVB/wFxrSIcNwOgBiAEIAVBCHYiDUH/AXEiCq0iHTcDqAYgBCAFQRB2Qf8BcSAHbCAFQRh2aiAQbCISNgK4BiAMRQ0AIARCATcDkAYgBkUNACAEIAlBAWoiBTYCgAYgBCAJLQAAIgZBA3FBGHQgBkEOdEGAgAxxciAGQQR0QYAGcXIgBkEGdiIIcjYC7AUgAyASIApBAnZqIglLBEAgDUEBdCEKQgEhHiAcQgGGIR8gHCAdfEIBhiEcQQEhBgNAIAIgCWoiCSAJLQAAIAggCkF/c0EGcXRyOgAAIB4gIFENAiAEIB5CAXwiHjcDkAYCQCAGQQRHBEAgBiAbai0AACEIDAELIAUgD0YNAyAEIAVBAWoiCTYCgAYgBCAFLQAAIgVBA3FBGHQgBUEOdEGAgAxxciAFQQR0QYAGcXIgBUEGdiIIcjYC7AVBACEGIAkhBQsgHEIDiCEdIBynIQogHCAffCEcIAZBAWohBiASIB2naiIJIANJDQALCyAJIANBiI3FABCMBwALIAdBCHYhBiAYIBEoAgA2AgAgBCAWKQIANwPQBSAEQQA2AqgFIARCgICAgBA3A6AFIAQoAnhBAkcNAAsLDAoLDA0LIARBADYC8AUgBEEBNgLkBSAEQbyhxwA2AuAFIARCBDcC6AUgBEHgBWpBvJjHABCNCAALDAcLIAutIB9CIIaEIRxBACELDAQLIARB4AVqIA4Q5wQgBC0A4AUiB0EoRg0BIAQvAOEFIAQtAOMFQRB0cgshBiAEKQLoBSEcIAQoAuQFIQsMAgtBCCEMQQIhBkEBIQtBAyEJQQEhBwJAAkACQAJAAkACQAJAAkAgBC0AuAUiBUEBaw4JAgQBAgEDBgAFBwtBDCEJDAMLQQQhBgsgBiEJIAYhDCAGIQcCQCAFQQJrDgMCBAUAC0ECIQsMBAtBBiEJCyAJIQdBAyELDAILQRAhDAtBBCELIAwhBwsCQAJAAkAgByALbkEBaw4CAgEAC0Gk+MYAQShBtM3HABDrBwALIANBfnEiBkUNACACIQcgA0ECayIDQQ5PBEAgByADQQF2QQFqIgxBeHEiBUEBdGohByAFIQsgAiEDA0AgAyAD/QAAAP0MAAAAAAAAAAAAAAAAAAAAAP0NAQADAgUEBwYJCAsKDQwPDv0LAAAgA0EQaiEDIAtBCGsiCw0ACyAFIAxGDQELIAIgBmohAwNAIAcgBy8AACICQQh0IAJBCHZyOwAAIAdBAmoiByADRw0ACwsgAEEGNgIADAILQSchBwsgBCAcNwLYBSAEIAs2AtQFIAQgB0H/AXEgBkEIdHI2AtAFIARB4AVqIARB0AVqEPwDIAAgBP0AAvQF/QsCFCAAQSRqIARBhAZqKAIANgIAIAT9AATgBSEhIAAgBCgC8AU2AhAgACAh/QsDAAsgDhDGAwJAIAFBBGsoAgAiAkF4cUH0BEH4BCACQQNxIgAbTwRAIABBACACQZgFTxsNASABEKICIARB4AZqJAAPCwwDCwwDC0GsmMcAEN0JAAtB0I/FABCBCAALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAKQQdB1I7FABCMBwAL0CsEE38EfQF+AXsjAEHAAWsiAiQAAkACQAJAAkAgASgCiAFBAkcEQCABKAKQAyIFIAEoAuwBSQRAIAFBtAJqIRMgAUH4AWohECABQdgCaiEUA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAugBIAVBKGxqIggpAxAgASkD6AJ8IhkgASkD2AJRBEAgASgCgAMiAyAIKAIYIgVBB2pBeHFJDQEgAyAFSQ0CIAEoAvwCIQMgCC0AICISQQFGBEAgAkEQaiADIAUQ+QIgAigCECIDQYCAgIB4RwRAIAIoAhQgAkEANgKwASACQQE2AqQBIAJBuMnBADYCoAEgAkIENwKoASACQaABahCSByEOIANFDR0gA0EBEKIHDB0LIAIoAhghDiACKAIUIg9BgICAgHhGDRwgAigCHCEFIA4hAwtBCSEEAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAgtACJBAWsODQECAxofHR4bHB8dHgQACyAILQAhDgQEBQYHCQsgCC0AIQ4FCwoJCQwJCyAILQAhIgQOBg4NEBAPDxALIAgtACEOChIRERERERERFBMRCyAILQAhQQtrDgIcHRsLIAJBEGogAyAFQQMgASgCmAMQ+AQMAwsgAkEQaiADIAVBAyABKAKYAxDmAwwCCyACQRBqIAMgBSABKAKYAxCgAgwBCyACQRBqIAMgBSABKAKYAxD+AQsgAigCFCEHIAEoApgDIg0EQCACKAIYIQpBACEGIAEoAoACIgsgASgClAMiDGsiA0EAIAMgC00bIREgASgC/AEgDEEYbGohAyAHIQRBACEFA0AgBSARRg0fIAZBA2oiCSAKSyAFQdSq1aoFS3INICADIARBCGogBP1dAgD9VgIAAiIa/VoCCAIgAyAa/VsCAAAgBEEMaiEEIANBGGohAyAJIQYgDSAFQQFqIgVHDQALCyACKAIQIgNFDTEgB0EEaygCACIGQXhxIgQgA0ECdCIDQQRBCCAGQQNxIgYbakkNNyAGQQAgBCADQSdqSxsNOCAHEKICDDELIAJBATYCpAEgAkHgycEANgKgASACQgE3AqwBIAIgCEEhaq1CgICAgJAFhDcDUCACIAJB0ABqNgKoASACQSBqIgEgAkGgAWoQsQYgARCOByEBIABBAToAACAAIAE2AgQMLwsgAkEBNgKkASACQbzKwQA2AqABIAJCATcCrAEgAiAIQSFqrUKAgICAkAWENwNQIAIgAkHQAGo2AqgBIAJBLGoiASACQaABahCxBiABEI4HDAMLIAJBEGogAyAFQQEgASgCmAMQ5gMMLAsgAkEQaiADIAVBASABKAKYAxD4BAwrCyAIKAIARQRAIAJBADYCsAEgAkEBNgKkASACQZjKwQA2AqABIAJCBDcCqAEgAkGgAWoQkgcMAQsgCCgCCA0pIAJBADYCsAEgAkEBNgKkASACQfzJwQA2AqABIAJCBDcCqAEgAkGgAWoQkgcLIQUgAEEBOgAAIAAgBTYCBAwqCyACQRBqIAMgBUEDIAEoApgDEOYDDCYLIAJBEGogAyAFQQMgASgCmAMQ+AQMJQsgCCgCAEUEQCACQQA2ArABIAJBATYCpAEgAkGYysEANgKgASACQgQ3AqgBIAJBoAFqEJIHDAILIAgoAghFBEAgAkEANgKwASACQQE2AqQBIAJB/MnBADYCoAEgAkIENwKoASACQaABahCSBwwCCyAIKgIEIRUgASgCmAMhBiAIKgIMIRYgBEEERg0jIAJBEGogAyAFQQMgBiAVIBYQ/wMMJAsgAkEBNgKkASACQeDKwQA2AqABIAJCATcCrAEgAiAIQSFqrUKAgICAkAWENwNQIAIgAkHQAGo2AqgBIAJBOGoiASACQaABahCxBiABEI4HCyEFIABBAToAACAAIAU2AgQMJQsgAkEBNgKkASACQYjLwQA2AqABIAJCATcCrAEgAiAIQSFqrUKAgICAkAWENwNQIAIgAkHQAGo2AqgBIAJBxABqIgEgAkGgAWoQsQYgARCOBwwDCyACQRBqIAMgBUEDIAEoApgDEPgEDB4LIAJBEGogAyAFIAEoApgDEP0BDB0LIAgoAgBFBEAgAkEANgKwASACQQE2AqQBIAJBmMrBADYCoAEgAkIENwKoASACQaABahCSBwwBCyAIKAIIDRsgAkEANgKwASACQQE2AqQBIAJB/MnBADYCoAEgAkIENwKoASACQaABahCSBwshBSAAQQE6AAAgACAFNgIEDCALAkACQAJAAkAgCC0AISIGQQpHBEAgBg4CAgMBCyACQdAAaiADIAUgASgCmAMQxQMMHAsgAkEBNgKkASACQcTLwQA2AqABIAJCATcCrAEgAiAIQSFqrUKAgICAkAWENwNoIAIgAkHoAGo2AqgBIAJB3ABqIgEgAkGgAWoQsQYgARCOByEBIABBAToAACAAIAE2AgQMIgsgAkEQaiADIAVBAyABKAKYAxD4BAwBCyACQRBqIAMgBUEDIAEoApgDEOYDCyABKAKYAyIKQQJ0IgVB/////wNLDQ4gCkEEdCIDQf3///8HTw0OAkAgA0UEQEEEIQlBACEFDAELIAMQcSIJRQ0QIAEoApgDIQoLIAJBADYCqAEgAiAJNgKkASACIAU2AqABIAoEQEEAIQNBASEHIAIoAhghBiACKAIUIQUDQCAHQQFrIgQgBk8EQCAEIQcMGgsgBiAEayIEQQAgBCAGTRsiBEEBRg0ZIARBAkYNGEMAAIA/IAUqAgAiFSAVlJMgBUEEaioCACIWIBaUkyAFQQhqKgIAIhcgF5STQwAAAAAQ4AiRIRggAigCoAEgA2tBA00EQCACQaABaiADQQRBBEEEEKQFIAIoAqQBIQkgAigCqAEhAwsgCSADQQJ0aiIEIBg4AgwgBCAXOAIIIAQgFjgCBCAEIBU4AgAgAiADQQRqIgM2AqgBIAdBA2ohByAFQQxqIQUgCkEBayIKDQALCyACQdgAaiACQagBaigCADYCACACIAIpAqABNwNQIAIoAhAiA0UNGCACKAIUIgZBBGsoAgAiBEF4cSIHIANBAnQiA0EEQQggBEEDcSIEG2pJDSYgBEEAIAcgA0EnaksbDScgBhCiAgwYCyAILQAhQQtGDRQgAkEBNgKkASACQfDLwQA2AqABIAJCATcCrAEgAiAIQSFqrUKAgICAkAWENwMQIAIgAkEQajYCqAEgAkGIAWoiASACQaABahCxBiABEI4HIQEgAEEBOgAAIAAgATYCBAweCyAILQAhQQxGDRIgAkEBNgKkASACQZzMwQA2AqABIAJCATcCrAEgAiAIQSFqrUKAgICAkAWENwMQIAIgAkEQajYCqAEgAkGUAWoiASACQaABahCxBiABEI4HIQEgAEEBOgAAIAAgATYCBAwdC0EPIQQMAQtBFSEECwJAAkACQAJAAkAgCC0AISIGDggBAAMDAgIEBAMLIAJBEGogAyAFIAQgASgCmAMQ5gMMEgsgAkEQaiADIAUgBCABKAKYAxD4BAwRCyAIKAIARQRAIAJBADYCsAEgAkEBNgKkASACQZjKwQA2AqABIAJCBDcCqAEgAkGgAWoQkgchBQwPCyAIKAIIRQRAIAJBADYCsAEgAkEBNgKkASACQfzJwQA2AqABIAJCBDcCqAEgAkGgAWoQkgchBQwPCyAIKgIEIRUgASgCmAMhByAIKgIMIRYgBkEERg0PIAJBEGogAyAFIAQgByAVIBYQ/wMMEAsgAkEBNgKkASACQdDMwQA2AqABIAJCATcCrAEgAiAIQSFqrUKAgICAkAWENwNQIAIgAkHQAGo2AqgBIAJB8ABqIgEgAkGgAWoQsQYgARCOByEFDA0LIAgoAghFBEAgAkEANgKwASACQQE2AqQBIAJB/MnBADYCoAEgAkIENwKoASACQaABahCSByEFDA0LIAEoApgDIQcgCCoCDCEVIAZBBkYNCyACQRBqIAMgBSAEIAcgFRCQBAwOCyACQQE2AqQBIAJB+MzBADYCoAEgAkIBNwKsASACIAhBIWqtQoCAgICQBYQ3A1AgAiACQdAAajYCqAEgAkH8AGoiASACQaABahCxBiABEI4HIQEgAEEBOgAAIAAgATYCBAwZCyACQRBqIAMgBSABKAKYAxCOBQwBCyACQRBqIAMgBSABKAKYAxDTBAsgAigCECIDRQ0XIAIoAhQiBkEEaygCACIEQXhxIgcgA0ECdCIDQQRBCCAEQQNxIgQbakkNHSAEQQAgByADQSdqSxsNHiAGEKICDBcLIAIgGTcDUCACQQI2AqQBIAJBtM3BADYCoAEgAkICNwKsASACQoCAgICgBSIZIAJB0ABqrYQ3AxggAiAZIBSthDcDECACIAJBEGo2AqgBIAJBBGoiASACQaABahCxBiABEI4HIQEgAEEBOgAAIAAgATYCBAwbCyAAQQA7AQAMGgtBACAFIANBgM3BABDqBwALIAUgDGogC0Hsu8cAEIwHAAsgBiAJIApB9MLHABDqBwALQZDLwQAQ/wcLAAsgAkEQaiADIAUgBCAHIBUQggUMAgsgAEEBOgAAIAAgBTYCBAwNCyACQRBqIAMgBSAEIAcgFSAWEPkECwJAAkACQAJAAkACQCAILQAiQQVrDggDAQIAAAQEBAALQaT4xgBBKEGkzMEAEOsHAAsgECABKAKUAyABKAKYAyACKAIUIAIoAhgQxwEMAgsgASgC1AJBA0kNASABKAKYAyINRQ0BQwAA/kJDAAD+QiABKgLMApUgAS0A0AJBAkYbIRYgAigCGCELIAIoAhQhBiABKAKsAiABKAKUAyIRQRVsaiEHIAEoArACIQxBACEEQQAhCQNAIAwgCSARaiIDSwRAIAlBAWohCUEAIQUgBiEDA0AgBCAFaiIKIAtPDQUgBSAHakH/AEMAAP5CQwAA/sIgFiADKgIAlCIVIBVDAAD+wl0bIhUgFUMAAP5CXhsQuQciFfwAQYB/IBVDAAAAw2AbIBVDAAD+Ql4bQQAgFSAVWxs6AAAgA0EEaiEDIAVBAWoiBUEVRw0ACyAGQdQAaiEGIARBFWohBCAHQRVqIQcgCSANRw0BDAMLCyAJQRVsIgogC08NAiADIAxBxMTHABCMBwALIBAgASgClAMgASgCmAMgAigCFCACKAIYEJYCCyACKAIQIgNFDQ0CQCACKAIUIgZBBGsoAgAiBEF4cSIHIANBAnQiA0EEQQggBEEDcSIEG2pPBEAgBEEAIAcgA0EnaksbDQEgBhCiAgwPCwwUCwwUCyAKIAtBtMTHABCMBwALIAJBoAFqIAMgBSABKAKYAxDUBCABKAKIAiABKAKMAiABKAKUAyABKAKYAyACKAKkASIDIAIoAqgBEI0DIAIoAqABIgZFDQsCQCADQQRrKAIAIgRBeHEiByAGQQJ0IgZBBEEIIARBA3EiBBtqTwRAIARBACAHIAZBJ2pLGw0BIAMQogIMDQsMEgsMEgsgAkGgAWogAyAFIAEoApgDEJwFIAEoAogCIAEoAowCIAEoApQDIAEoApgDIAIoAqQBIgMgAigCqAEQswMgAigCoAEiBkUNCgJAIANBBGsoAgAiBEF4cSIHIAZBAXQiBkEEQQggBEEDcSIEG2pPBEAgBEEAIAcgBkEnaksbDQEgAxCiAgwMCwwRCwwRCyAHQQFqIQcLIAcgBkHEzcEAEIwHAAsgAigCVCEJAkACQAJAIAEoApgDIgoEQCACKAJYIQtBACEDIAEoAoACIgwgASgClAMiBmsiBEEAIAQgDE0bIQQgASgC/AEgBkEYbGpBFGohBSAJIQcDQCAERQ0CIANBA2ogC08NAyACIAf9AAIA/QsEoAEgBUECaiACQaABahCdBCINQRB2OgAAIAUgDTsBACAHQRBqIQcgA0EEaiEDIAVBGGohBSAGQQFqIQYgBEEBayEEIApBAWsiCg0ACwsgAigCUCIDRQ0KIAlBBGsoAgAiBkF4cSIEIANBAnQiA0EEQQggBkEDcSIGG2pJDRAgBkEAIAQgA0EnaksbDQIgCRCiAgwKCyAGIAxB7LvHABCMBwALIAMgA0EEaiALQdTExwAQ6gcACwwOCyACQRBqIAMgBSABKAKYAyAIKgIEIAgqAgwQqgMLIAIoAhQhBwJAAkACQCABKAKYAyILBEAgAigCGCEKIAEoApQDIgxBGGwhBEEAIQYgByEDQQAhBQNAIAUgDGoiCSABKAKAAiINTw0CIAZBA2oiCSAKSyAFQdSq1aoFS3INAyABKAL8ASAEaiATIAP9XQIAIANBCGoqAgAiFf0gAiAV/SADEN8EIANBDGohAyAEQRhqIQQgCSEGIAsgBUEBaiIFRw0ACwsgAigCECIDRQ0IIAdBBGsoAgAiBkF4cSIEIANBAnQiA0EEQQggBkEDcSIGG2pJDQ4gBkEAIAQgA0EnaksbDQIgBxCiAgwICyAJIA1B7LvHABCMBwALIAYgCSAKQbTFxwAQ6gcACwwMCyACQRBqIAMgBUEDIAYgFSAWEPkECyAQIAEoApQDIAEoApgDIAIoAhQiAyACKAIYEKQEIAIoAhAiBkUNAwJAIANBBGsoAgAiBEF4cSIHIAZBAnQiBkEEQQggBEEDcSIEG2pPBEAgBEEAIAcgBkEnaksbDQEgAxCiAgwFCwwKCwwKCyACQRBqIAMgBUEBIAEoApgDIAgqAgQgCCoCDBD5BAsgASgC/AEgASgCgAIgASgClAMgASgCmAMgAigCFCIDIAIoAhgQqgIgAigCECIGRQ0BAkAgA0EEaygCACIEQXhxIgcgBkECdCIGQQRBCCAEQQNxIgQbak8EQCAEQQAgByAGQSdqSxsNASADEKICDAMLDAgLDAgLIBJFIA9Fcg0FIA4gD0EBEKIHDAULAkACQAJAIAEoAoADIgYgCCgCGEEHakF4cSIDTwRAIAFBADYCgAMgBiADayEEIANFDQEgAyAGRg0DIARFDQIgASgC/AIiBiADIAZqIAT8CgAADAILQQAgAyAGQYSkxwAQ6gcACyADIAZGDQELIAEgBDYCgAMLIAgpAxghGSABIAEoApADQQFqIgU2ApADIAEgASkD2AIgGUIHfEL4////D4N8NwPYAgJAIBJFIA9Fcg0AAkAgDkEEaygCACIDQXhxIgZBBEEIIANBA3EiAxsgD2pPBEAgA0EAIAYgD0EnaksbDQEgDhCiAiABKAKQAyEFDAILDAcLDAcLIAUgASgC7AFJDQALCyAAQYACOwEADAILQYzJwQAQ3QkACyAAQQE6AAAgACAONgIECyACQcABaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALqC8BBX8jAEEwayICJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIAIgMtAABBAWsOIwECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjAAsgAiADQQxqNgIQIAEoAgBBlNDEAEELIAEoAgQoAgwRAAAhACACQQA6ACUgAiAAOgAkIAIgATYCICACQSBqQZ/QxABBByADQQRqQfTPxAAQjAVBptDEAEEHIANBCGpB9M/EABCMBUGM08cAQQUgAkEQakGE0MQAEIwFIAItACUiAyACLQAkIgRyIQAgBEEBcSADQQFHcg0jKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAAwkCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQAMIwsgASgCAEGt0MQAQRAgASgCBCgCDBEAACEADCILIAEoAgBBvdDEAEELIAEoAgQoAgwRAAAhAAwhCyABKAIAQcjQxABBECABKAIEKAIMEQAAIQAMIAsgAiADQQFqNgIQIAEoAgBB2NDEAEEPIAEoAgQoAgwRAAAhACACQQA6ACUgAiAAOgAkIAIgATYCICACQSBqQcj7xwBBBCACQRBqQYTQxAAQjAUgAi0AJSIDIAItACQiBHIhACAEQQFxIANBAUdyDR8oAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADCALIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAwfCyACIANBAWo2AhAgASgCAEHn0MQAQQkgASgCBCgCDBEAACEAIAJBADoAJSACIAA6ACQgAiABNgIgIAJBIGpByPvHAEEEIAJBEGpBhNDEABCMBSACLQAlIgMgAi0AJCIEciEAIARBAXEgA0EBR3INHigCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQAMHwsgACgCAEGls8UAQQEgACgCBCgCDBEAACEADB4LIAIgA0EBajYCECABKAIAQfDQxABBCiABKAIEKAIMEQAAIQAgAkEAOgAlIAIgADoAJCACIAE2AiAgAkEgakHI+8cAQQQgAkEQakGE0MQAEIwFIAItACUiAyACLQAkIgRyIQAgBEEBcSADQQFHcg0dKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAAweCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQAMHQsgAiADQQFqNgIQIAEoAgBB+tDEAEEJIAEoAgQoAgwRAAAhACACQQA6ACUgAiAAOgAkIAIgATYCICACQSBqQcj7xwBBBCACQRBqQYTQxAAQjAUgAi0AJSIDIAItACQiBHIhACAEQQFxIANBAUdyDRwoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADB0LIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAwcCyACIANBAWo2AhAgASgCAEGD0cQAQQ8gASgCBCgCDBEAACEAIAJBADoAJSACIAA6ACQgAiABNgIgIAJBIGpByPvHAEEEIAJBEGpBhNDEABCMBSACLQAlIgMgAi0AJCIEciEAIARBAXEgA0EBR3INGygCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQAMHAsgACgCAEGls8UAQQEgACgCBCgCDBEAACEADBsLIAIgA0EBajYCECABKAIAQZLRxABBDiABKAIEKAIMEQAAIQAgAkEAOgAlIAIgADoAJCACIAE2AiAgAkEgakHI+8cAQQQgAkEQakGE0MQAEIwFIAItACUiAyACLQAkIgRyIQAgBEEBcSADQQFHcg0aKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAAwbCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQAMGgsgAiADQQhqNgIQIAEoAgBBoNHEAEEJIAEoAgQoAgwRAAAhACACQQA6ACUgAiAAOgAkIAIgATYCICACQSBqQanRxABBByADQQRqQfTPxAAQjAVBkK/HAEEIIAJBEGpB1LbEABCMBSACLQAlIgMgAi0AJCIEciEAIARBAXEgA0EBR3INGSgCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQAMGgsgACgCAEGls8UAQQEgACgCBCgCDBEAACEADBkLIAIgA0EIajYCECABKAIAQbDRxABBDCABKAIEKAIMEQAAIQAgAkEAOgAlIAIgADoAJCACIAE2AiAgAkEgakGQr8cAQQggA0EEakGgwMQAEIwFQbzRxABBAyACQRBqQeS2xAAQjAUgAi0AJSIDIAItACQiBHIhACAEQQFxIANBAUdyDRgoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADBkLIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAwYCyACIANBCGo2AhAgASgCAEHQ0cQAQRQgASgCBCgCDBEAACEAIAJBADoAJSACIAA6ACQgAiABNgIgIAJBIGpB5NHEAEEKIANBAWpBwNHEABCMBUGQr8cAQQggA0EEakGgwMQAEIwFQbzRxABBAyACQRBqQeS2xAAQjAUgAi0AJSIDIAItACQiBHIhACAEQQFxIANBAUdyDRcoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADBgLIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAwXCyACIANBAWo2AhAgASgCAEGA0sQAQQsgASgCBCgCDBEAACEAIAJBADoAJSACIAA6ACQgAiABNgIgIAJBIGpBi9LEAEEMIANBAmpB8NHEABCMBUGX0sQAQQQgAkEQakGUtsQAEIwFIAItACUiAyACLQAkIgRyIQAgBEEBcSADQQFHcg0WKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAAwXCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQAMFgsgASgCAEGb0sQAQQ8gASgCBCgCDBEAACEADBULIAIgA0EBajYCECABKAIAQbzSxABBFCABKAIEKAIMEQAAIQAgAkEAOgAlIAIgADoAJCACIAE2AiAgAkEgakHk0cQAQQogA0ECakHA0cQAEIwFQdDSxABBCSACQRBqQazSxAAQjAUgAi0AJSIDIAItACQiBHIhACAEQQFxIANBAUdyDRQoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADBULIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAwUC0EBIQAgASgCACIEQdnSxABBECABKAIEIgYoAgwiBREAAA0TIANBAWohAwJAIAEtAApBgAFxRQRAIARBu7PFAEEBIAURAAANFSABKAIAIAMtAABBAnQiAygCxIdJIAMoAqiHSSABKAIEKAIMEQAARQ0BDBULIARB24HCAEECIAURAAANFCACIAY2AiQgAiAENgIgIAJBAToAECADLQAAQQJ0IgMoArCFSSEEIAMoAsyFSSEDIAIgAkEQajYCKCACQSBqIgUgAyAEEK8DDRQgBUHZgcIAQQIQrwMNFAsgASgCAEHejsgAQQEgASgCBCgCDBEAACEADBMLIAEoAgBB783EAEERIAEoAgQoAgwRAAAhAAwSC0EBIQAgAiADQQFqNgIMIAEoAgAiA0Hp0sQAQQ8gASgCBCIFKAIMIgQRAAANEQJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANEyACQQxqIAEQxARFDQEMEwsgA0HbgcIAQQIgBBEAAA0SIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNEiACKAIgQdmBwgBBAiACKAIkKAIMEQAADRILIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwRC0EBIQAgAiADQQFqNgIMIAEoAgAiA0H40sQAQRAgASgCBCIFKAIMIgQRAAANEAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANEiACQQxqIAEQxARFDQEMEgsgA0HbgcIAQQIgBBEAAA0RIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNESACKAIgQdmBwgBBAiACKAIkKAIMEQAADRELIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwQC0EBIQAgAiADQQFqNgIMIAEoAgAiA0GI08QAQRAgASgCBCIFKAIMIgQRAAANDwJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANESACQQxqIAEQxARFDQEMEQsgA0HbgcIAQQIgBBEAAA0QIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNECACKAIgQdmBwgBBAiACKAIkKAIMEQAADRALIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwPC0EBIQAgAiADQQFqNgIMIAEoAgAiA0GY08QAQQ4gASgCBCIFKAIMIgQRAAANDgJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANECACQQxqIAEQxARFDQEMEAsgA0HbgcIAQQIgBBEAAA0PIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNDyACKAIgQdmBwgBBAiACKAIkKAIMEQAADQ8LIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwOC0EBIQAgAiADQQFqNgIMIAEoAgAiA0Gm08QAQQsgASgCBCIFKAIMIgQRAAANDQJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANDyACQQxqIAEQxARFDQEMDwsgA0HbgcIAQQIgBBEAAA0OIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNDiACKAIgQdmBwgBBAiACKAIkKAIMEQAADQ4LIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwNC0EBIQAgAiADQQFqNgIMIAEoAgAiA0Gx08QAQRogASgCBCIFKAIMIgQRAAANDAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANDiACQQxqIAEQxARFDQEMDgsgA0HbgcIAQQIgBBEAAA0NIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNDSACKAIgQdmBwgBBAiACKAIkKAIMEQAADQ0LIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwMC0EBIQAgAiADQQFqNgIMIAEoAgAiA0HL08QAQRggASgCBCIFKAIMIgQRAAANCwJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANDSACQQxqIAEQxARFDQEMDQsgA0HbgcIAQQIgBBEAAA0MIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNDCACKAIgQdmBwgBBAiACKAIkKAIMEQAADQwLIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwLC0EBIQAgAiADQQFqNgIMIAEoAgAiA0Hj08QAQRMgASgCBCIFKAIMIgQRAAANCgJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANDCACQQxqIAEQxARFDQEMDAsgA0HbgcIAQQIgBBEAAA0LIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNCyACKAIgQdmBwgBBAiACKAIkKAIMEQAADQsLIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwKC0EBIQAgAiADQQFqNgIMIAEoAgAiA0H208QAQRYgASgCBCIFKAIMIgQRAAANCQJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANCyACQQxqIAEQxARFDQEMCwsgA0HbgcIAQQIgBBEAAA0KIAJBAToAHyACIAU2AhQgAiADNgIQIAJB4IHCADYCJCACIAEpAgg3AiggAiACQR9qNgIYIAIgAkEQajYCICACQQxqIAJBIGoQxAQNCiACKAIgQdmBwgBBAiACKAIkKAIMEQAADQoLIAEoAgBB3o7IAEEBIAEoAgQoAgwRAAAhAAwJCyABKAIAQYzUxABBESABKAIEKAIMEQAAIQAMCAsgAiADQQFqNgIQIAEoAgBBsNTEAEESIAEoAgQoAgwRAAAhACACQQA6ACUgAiAAOgAkIAIgATYCICACQSBqQcLUxABBAyACQRBqQaDUxAAQjAUgAi0AJSIDIAItACQiBHIhACAEQQFxIANBAUdyDQcoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADAgLIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAwHCyABKAIAQcXUxABBDyABKAIEKAIMEQAAIQAMBgtBASEAIAEoAgAiBEHU1MQAQQ8gASgCBCIGKAIMIgURAAANBSADQQFqIQMCQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQcgAyABKAIAIAEoAgQQ1ghFDQEMBwsgBEHbgcIAQQIgBREAAA0GIAIgBjYCJCACIAQ2AiAgAkEBOgAQIAIgAkEQajYCKCADIAJBIGoiA0HggcIAENYIDQYgA0HZgcIAQQIQrwMNBgsgASgCAEHejsgAQQEgASgCBCgCDBEAACEADAULIAEoAgBB49TEAEEYIAEoAgQoAgwRAAAhAAwECyACIANBAWo2AhAgASgCAEH71MQAQSQgASgCBCgCDBEAACEAIAJBADoAJSACIAA6ACQgAiABNgIgIAJBIGpByPvHAEEEIAJBEGpBhNDEABCMBSACLQAlIgMgAi0AJCIEciEAIARBAXEgA0EBR3INAygCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQAMBAsgACgCAEGls8UAQQEgACgCBCgCDBEAACEADAMLIAIgA0EBajYCECABKAIAQZ/VxABBECABKAIEKAIMEQAAIQAgAkEAOgAlIAIgADoAJCACIAE2AiAgAkEgakHI+8cAQQQgAkEQakGE0MQAEIwFIAItACUiAyACLQAkIgRyIQAgBEEBcSADQQFHcg0CKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAAwDCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQAMAgsgAiADQQFqNgIQIAEoAgBBr9XEAEEZIAEoAgQoAgwRAAAhACACQQA6ACUgAiAAOgAkIAIgATYCICACQSBqQcjVxABBCCACQRBqQYTQxAAQjAUgAi0AJSIDIAItACQiBHIhACAEQQFxIANBAUdyDQEoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEADAILIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAAwBCyABKAIAQdDVxABBDSABKAIEKAIMEQAAIQALIAJBMGokACAAQQFxC9wkAhd/A34jAEHABmsiBSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKQMAIhxQRQRAIAEpAwgiHVANASABKQMQIh5QDQIgHiAcQn+FVg0DIBwgHVQNBCABLgEYIQEgBSAcPgIMIAVBAUECIBxCgICAgBBUIgYbNgKsASAFQQAgHEIgiKcgBhs2AhAgBUEUakEAQZgB/AsAIAVBtAFqQQBBnAH8CwAgBUEBNgKwASAFQQE2AtACIAGsIBxCAX15fULCmsHoBH5CgKHNoLQCfEIgiKciBsEhDwJAIAFBAE4EQCAFQQxqIAEQuQMaDAELIAVBsAFqQQAgAWvBELkDGgsCQCAPQQBIBEAgBUEMakEAIA9rQf//A3EQ9AEMAQsgBUGwAWogBkH//wFxEPQBCyAFQZwFaiAFQbABakGkAfwKAAAgBUGUBWohCiADIQgDQCAFKAK8BiIBQSlPDQ4CQCABRQ0AAn4gAUECdCIBQQRrIglFBEAgBUGcBWogAWohAUIADAELIAEgCmohByAJQQJ2QQFqQf7///8HcSEGQgAhHANAIAciAUEEaiIHIAc1AgAgHEIghoQiHEKAlOvcA4AiHT4CACABIAE1AgAgHCAdQoCU69wDfn1CIIaEIhxCgJTr3AOAIh0+AgAgHCAdQoCU69wDfn0hHCABQQhrIQcgBkECayIGDQALIAlBBHENASAcQiCGCyEcIAFBBGsiASAcIAE1AgCEQoCU69wDgD4CAAsgCEEJayIIQQlLDQALIAhBAnQoAqCVQkEBdCIGRQ0FIAUoArwGIgFBKU8NDSABBH8gBq0hHAJAAn4gAUECdCIBQQRrIglFBEAgBUGcBWogAWohAUIADAELIAEgBWpBlAVqIQcgCUECdkEBakH+////B3EhBkIAIR0DQCAHIgFBBGoiByAHNQIAIB1CIIaEIh0gHIAiHj4CACABIAE1AgAgHSAcIB5+fUIghoQiHSAcgCIePgIAIB0gHCAefn0hHSABQQhrIQcgBkECayIGDQALIAlBBHENASAdQiCGCyEdIAFBBGsiASAdIAE1AgCEIByAPgIACyAFKAK8BgVBAAshASAFKAKsASIJIAEgASAJSRsiDEEoSw0GAkAgDEUEQEEAIQwMAQtBACEKQQAhCAJAAkAgDEEBRwRAIAxBAXEgDEE+cSELIAVBnAVqIQEgBUEMaiEHA0AgASAHKAIAIg0gASgCAGoiBiAIQQFxaiIONgIAIAFBBGoiCCAHQQRqKAIAIhQgCCgCAGoiCCAGIA1JIAYgDktyaiIGNgIAIAggFEkgBiAISXIhCCAHQQhqIQcgAUEIaiEBIAsgCkECaiIKRw0AC0UNAQsgCkECdCIBIAVBnAVqaiIGIAVBDGogAWooAgAiByAGKAIAaiIBIAhqIgY2AgAgASAHSSABIAZLcg0BDAILIAhFDQELIAxBKEYNDyAFQZwFaiAMQQJ0akEBNgIAIAxBAWohDAsgBSAMNgK8BiAFKALQAiIQIAwgDCAQSRsiAUEpTw0NIAFBAnQhAQJAAkADQCABRQ0BIAFBBGsiASAFQZwFamooAgAiBiABIAVBsAFqaigCACIHRg0ACyAGIAdPDQEMCQsgBUGwAWoiBiABIAZqRw0ICyAPQQFqIQ8MCAtB2I/CAEEcQYCTwgAQ6wcAC0G0kMIAQR1BkJPCABDrBwALQeSQwgBBHEGgk8IAEOsHAAtBuJLCAEE2QZCUwgAQ6wcAC0HwkcIAQTdBgJTCABDrBwALQdSCwgBBG0GMg8IAEOsHAAtBACAMQShBjIPCABDqBwALIAlFBEBBACEJIAVBADYCrAEMAQsgCUECdCIKQQRrIgFBAnZBAWoiB0EDcSEGAkAgAUEMSQRAIAVBDGohAUIAIRwMAQsgB0H8////B3EhByAFQQxqIQFCACEcA0AgASABNQIAQgp+IBx8Ihw+AgAgAUEEaiIIIAg1AgBCCn4gHEIgiHwiHD4CACABQQhqIgggCDUCAEIKfiAcQiCIfCIcPgIAIAFBDGoiCCAINQIAQgp+IBxCIIh8Ih0+AgAgHUIgiCEcIAFBEGohASAHQQRrIgcNAAsLIAYEQCAGQQJ0IQcDQCABIAE1AgBCCn4gHHwiHT4CACABQQRqIQEgHUIgiCEcIAdBBGsiBw0ACwsgHUKAgICAEFoEQCAJQShGDQcgBUEMaiAKaiAcPgIAIAlBAWohCQsgBSAJNgKsAQtBACEMQQEhCyAPwSIBIATBIgZIIhsNACAPIARrwSADIAEgBmsgA0kbIgpFDQBBACIBRQRAIAVB1AJqIAVBsAFqQaQB/AoAAAsgBUHUAmpBARC5AyEUIAFFBEAgBUH4A2ogBUGwAWpBpAH8CgAACyAFQfgDakECELkDIRYgAUUEQCAFQZwFaiAFQbABakGkAfwKAAALIAVBnAVqQQMQuQMhFyAUKAKgASEYIBYoAqABIRkgFygCoAEhGkEAIQ0CQAJAAkADQAJ/AkACQCAJQSlJBEAgCUECdCEEQQAhAQJAA0AgASAERg0BIAVBDGogAWogAUEEaiEBKAIARQ0ACyAaIAkgCSAaSRsiBkEpTw0QIAZBAnQhAQJAAkADQCABRQ0BIAFBBGsiASAFQQxqaigCACIEIAEgBUGcBWpqKAIAIgdGDQALIAQgB0kNAQwFCyAXIAVBnAVqIAFqRg0ECyAJIQZBAAwECyADIApJDQECQCAKIA1GDQAgCiANayIBRQ0AIAIgDWpBMCAB/AsACyAAIA87AQggACAKNgIEDAoLDA0LIA0gCiADQfCTwgAQ6gcAC0EBIQhBACELAkACQCAGQQFHBEAgBkEBcSAGQT5xIREgBUEMaiEBIAVBnAVqIQcDQCABIAEoAgAiEiAHKAIAQX9zaiIEIAhBAXFqIgg2AgAgAUEEaiIJIAkoAgAiEyAHQQRqKAIAQX9zaiIJIAQgEkkgBCAIS3JqIgQ2AgAgCSATSSAEIAlJciEIIAdBCGohByABQQhqIQEgESALQQJqIgtHDQALRQ0BCyALQQJ0IgEgBUEMamoiBCAEKAIAIgQgASAXaigCAEF/c2oiASAIaiIHNgIAIAEgBEkgASAHS3INAQwPCyAIRQ0OCyAFIAY2AqwBQQgLIQ4gGSAGIAYgGUkbIgRBKU8NAiAEQQJ0IQECQAJAAkADQCABRQ0BIAFBBGsiASAFQQxqaigCACIHIAEgBUH4A2pqKAIAIglGDQALIAcgCU8NASAGIQQMAgsgFiAFQfgDaiABakYNACAGIQQMAQsCQCAERQ0AQQEhCEEAIQsCQCAEQQFHBEAgBEEBcSAEQT5xIRIgBUEMaiEBIAVB+ANqIQcDQCABIAEoAgAiEyAHKAIAQX9zaiIGIAhBAXFqIgg2AgAgAUEEaiIJIAkoAgAiFSAHQQRqKAIAQX9zaiIJIAYgE0kgBiAIS3JqIgY2AgAgCSAVSSAGIAlJciEIIAdBCGohByABQQhqIQEgEiALQQJqIgtHDQALRQ0BCyALQQJ0IgEgBUEMamoiBiAGKAIAIgYgASAWaigCAEF/c2oiASAIaiIHNgIAIAEgBkkgASAHS3INAQwPCyAIRQ0OCyAFIAQ2AqwBIA5BBHIhDgsgGCAEIAQgGEkbIgZBKU8NCyAGQQJ0IQECQAJAAkADQCABRQ0BIAFBBGsiASAFQQxqaigCACIHIAEgBUHUAmpqKAIAIglGDQALIAcgCU8NASAEIQYMAgsgFCAFQdQCaiABakYNACAEIQYMAQsCQCAGRQ0AQQEhCEEAIQsCQCAGQQFHBEAgBkEBcSAGQT5xIRIgBUEMaiEBIAVB1AJqIQcDQCABIAEoAgAiEyAHKAIAQX9zaiIEIAhBAXFqIgg2AgAgAUEEaiIJIAkoAgAiFSAHQQRqKAIAQX9zaiIJIAQgE0kgBCAIS3JqIgQ2AgAgCSAVSSAEIAlJciEIIAdBCGohByABQQhqIQEgEiALQQJqIgtHDQALRQ0BCyALQQJ0IgEgBUEMamoiBCAEKAIAIgQgASAUaigCAEF/c2oiASAIaiIHNgIAIAEgBEkgASAHS3INAQwPCyAIRQ0OCyAFIAY2AqwBIA5BAmohDgsgECAGIAYgEEkbIglBKU8NCiAJQQJ0IQECQAJAAkADQCABRQ0BIAFBBGsiASAFQQxqaigCACIEIAEgBUGwAWpqKAIAIgdGDQALIAQgB08NASAGIQkMAgsgBUGwAWoiBCABIARqRg0AIAYhCQwBCwJAIAlFDQBBASEIQQAhCwJAIAlBAUcEQCAJQQFxIAlBPnEhEiAFQQxqIQEgBUGwAWohBwNAIAEgASgCACITIAcoAgBBf3NqIgQgCEEBcWoiCDYCACABQQRqIgYgBigCACIVIAdBBGooAgBBf3NqIgYgBCATSSAEIAhLcmoiBDYCACAGIBVJIAQgBklyIQggB0EIaiEHIAFBCGohASASIAtBAmoiC0cNAAtFDQELIAtBAnQiASAFQQxqaiIEIAQoAgAiBCAFQbABaiABaigCAEF/c2oiASAIaiIGNgIAIAEgBEkgASAGS3INAQwPCyAIRQ0OCyAFIAk2AqwBIA5BAWohDgsgAyANTQ0BIAIgDWogDkEwajoAAAJAIAlFBEBBACEJDAELIAlBAnQiBkEEayIBQQJ2QQFqIgdBA3EhBAJAIAFBDEkEQCAFQQxqIQFCACEdDAELIAdB/P///wdxIQcgBUEMaiEBQgAhHQNAIAEgATUCAEIKfiAdfCIcPgIAIAFBBGoiCCAINQIAQgp+IBxCIIh8Ihw+AgAgAUEIaiIIIAg1AgBCCn4gHEIgiHwiHD4CACABQQxqIgggCDUCAEIKfiAcQiCIfCIcPgIAIBxCIIghHSABQRBqIQEgB0EEayIHDQALCyAEBEAgBEECdCEHA0AgASABNQIAQgp+IB18Ihw+AgAgAUEEaiEBIBxCIIghHSAHQQRrIgcNAAsLIBxCgICAgBBUDQAgCUEoRg0EIAVBDGogBmogHT4CACAJQQFqIQkLIAUgCTYCrAEgDUEBaiINIApHDQALQQAhCwwECyANIANB4JPCABCMBwALQQAgBEEoQYyDwgAQ6gcACwwFC0EAIQoLAn8CQAJAAkAgEEUNACAQQQJ0IgZBBGsiAUECdkEBaiIHQQNxIQQCQCABQQxJBEAgBUGwAWohAUIAIR0MAQsgB0H8////B3EhByAFQbABaiEBQgAhHQNAIAEgATUCAEIFfiAdfCIcPgIAIAFBBGoiCCAINQIAQgV+IBxCIIh8Ihw+AgAgAUEIaiIIIAg1AgBCBX4gHEIgiHwiHD4CACABQQxqIgggCDUCAEIFfiAcQiCIfCIcPgIAIBxCIIghHSABQRBqIQEgB0EEayIHDQALCyAEBEAgBEECdCEHA0AgASABNQIAQgV+IB18Ihw+AgAgAUEEaiEBIBxCIIghHSAHQQRrIgcNAAsLIBxCgICAgBBUBEAgECEMDAELIBBBKEYNByAFQbABaiAGaiAdPgIAIBBBAWohDAsgBSAMNgLQAiAMIAkgCSAMSRsiAUEpTw0FIAFBAnQhASAFQQhqIQcCQAJAAn8CQANAIAFFDQEgASAHaigCACIEIAFBBGsiASAFQbABamooAgAiBkYNAAsgBCAGSyAEIAZJawwBC0F/QQAgBUGwAWoiBCABIARqRxsLQf8BcQ4CAAEDC0EAIAsNAxogAyAKQQFrIgFLBEAgASACai0AAEEBcQ0BDAMLIAEgA0Gwk8IAEIwHAAsgAyAKSQ0AIAIgCmohBiAKIQcCQAJAA0AgByIBRQ0BIAFBAWsiByACaiIELQAAQTlGDQALIAQgBC0AAEEBajoAACABIApNDQEgASAKIApB+ITCABDqBwALAkAgCwRAQTEhAQwBCyACQTE6AABBMCEBIApBAWsiBEUgBEVyDQAgAkEBakEwIAT8CwALIA9BAWohDyAbIAMgCk1yDQIgBiABOgAAIApBAWohCgwCCyABIApGDQEgCiABayIERQ0BIAEgAmpBMCAE/AsADAELQQAgCiADQcCTwgAQ6gcACyADIApJDQIgCgshASAAIA87AQggACABNgIECyAAIAI2AgAgBUHABmokAA8LQQAgCiADQdCTwgAQ6gcAC0EAIAFBKEGMg8IAEOoHAAtBKEEoQYyDwgAQjAcAC0EAIAlBKEGMg8IAEOoHAAtBACAGQShBjIPCABDqBwALQe+CwgBBGkGMg8IAEOsHAAuSMgI0ex1/AkACQAJAAkACQAJAAkACQAJAIAFBAksEQCADRQ0BIAVFDQIgB0UNAyAJRQ0EIAtFDQUgAEH/ASACLQAAQYWVAWxBCHYiRSAGLQAAIkAgBC0AACJGQQxsaiBAQQNsakEIakEEdiJHQZqCAmxBCHZqQZWKAWtBBnUiQ0EAIENBAEobIkMgQ0H/AU4bOgACIABB/wEgRSAKLQAAIkMgCC0AACJLQQxsaiBDQQNsakEIakEEdiJBQaXMAWxBCHZqQZrvAGtBBnUiQkEAIEJBAEobIkIgQkH/AU4bOgAAIABB/wEgRSBHQZMybEEIdiBBQYjoAGxBCHZqa0GExABqQQZ1IkVBACBFQQBKGyJFIEVB/wFOGzoAASABQQNGDQYgAkEBaiFFIANBAWsiA0F+cSFRIABBBGohRyADQQFxIVkgAUEEayJaQXhxIlJFDQkgA0EBdiIDIkEgAUEMa0EDdiIBIAEgQUsbIkEgC0EBayJIIkIgQSBCSRsiQSAJQQFrIkkiQiBBIEJJGyJBIAdBAWsiSiJCIEEgQkkbIkEgBUEBayJCIEEgQkkbIkFBEEkNByBHIAIgAyABIAEgA0sbIgEgSCIDIAEgA0kbIgEgSSIDIAEgA0kbIgEgSiIDIAEgA0kbIgEgQiIDIAEgA0kbIgNBAXRqQQNqSSBFIAAgA0EDdGpBC2oiAUlxDQcgRyAEIANBAmoiAmpJIARBAWoiSiABSXEgRyACIAZqSSABIAZLcXIgRyACIAhqSSAIQQFqIgMgAUlxIEcgAiAKakkgASAKS3Fycg0HIAogQUEBaiIBIAFBD3EiAUEQIAEbayJEaiFVIAsgRGshQSAJIERrIUIgCCBEaiFIIAcgRGshTiAGIERqIVYgBSBEayFPIAQgRGohSSBFIERBAXQiAWohAiBRIAFrIVAgRyBEQQN0IgFqIVcgUiABayFYIEb9DyEUIED9DyEMIEv9DyETIEP9DyENIAYhASAKIUMgRSFGA0AgAEH8AGogRv0AAAAiHiAT/Q0AAgQGAAAAAAAAAAAAAAAA/YkB/akB/QyFSgAAhUoAAIVKAACFSgAAIhX9tQFBCP2tASIWIBMgA/0AAAAiE/0NDxAREhMUFRYXGBkaGxwdHv2JAf2pASIj/QwJAAAACQAAAAkAAAAJAAAAIhD9tQEgQ0EBav0AAAAiG/2JAf2pASIk/a4BIA0gG/0NDxAREhMUFRYXGBkaGxwdHv2JAf2pASAT/YkB/akBIib9rgH9DAMAAAADAAAAAwAAAAMAAAAiEf21Af2uAf0MCAAAAAgAAAAIAAAACAAAACIS/a4BQQT9rQEiF/0MJWYAACVmAAAlZgAAJWYAACIY/bUBQQj9rQH9rgH9DGbI//9myP//Zsj//2bI//8iGf2uAUEG/awB/QwAAAAAAAAAAAAAAAAAAAAAIg39uAH9DP8AAAD/AAAA/wAAAP8AAAAiD/22ASAeIA39DQgKDA4AAAAAAAAAAAAAAAD9iQH9qQEgFf21AUEI/a0BIiAgEyAN/Q0DBAUGAAAAAAAAAAAAAAAA/YkB/akBIicgEP21ASAbIA39DQQFBgcAAAAAAAAAAAAAAAD9iQH9qQEiKP2uASAbIA39DQMEBQYAAAAAAAAAAAAAAAD9iQH9qQEgEyAN/Q0EBQYHAAAAAAAAAAAAAAAA/YkB/akBIin9rgEgEf21Af2uASAS/a4BQQT9rQEiGiAY/bUBQQj9rQH9rgEgGf2uAUEG/awBIA39uAEgD/22Af2GASBG/QAAECIhIA39DQACBAYAAAAAAAAAAAAAAAD9iQH9qQEgFf21AUEI/a0BIiIgEyAN/Q0HCAkKAAAAAAAAAAAAAAAA/YkB/akBIiogEP21ASAbIA39DQgJCgsAAAAAAAAAAAAAAAD9iQH9qQEiK/2uASAbIA39DQcICQoAAAAAAAAAAAAAAAD9iQH9qQEgEyAN/Q0ICQoLAAAAAAAAAAAAAAAA/YkB/akBIiz9rgEgEf21Af2uASAS/a4BQQT9rQEiJSAY/bUBQQj9rQH9rgEgGf2uAUEG/awBIA39uAEgD/22ASAhIA39DQgKDA4AAAAAAAAAAAAAAAD9iQH9qQEgFf21AUEI/a0BIh8gEyAN/Q0LDA0OAAAAAAAAAAAAAAAA/YkB/akBIi0gEP21ASAbIA39DQwNDg8AAAAAAAAAAAAAAAD9iQH9qQEiLv2uASAbIA39DQsMDQ4AAAAAAAAAAAAAAAD9iQH9qQEgEyAN/Q0MDQ4PAAAAAAAAAAAAAAAA/YkB/akBIi/9rgEgEf21Af2uASAS/a4BQQT9rQEiMCAY/bUBQQj9rQH9rgEgGf2uAUEG/awBIA39uAEgD/22Af2GAf1mIg79WAAADyAAQfQAaiAO/VgAAA4gAEHsAGogDv1YAAANIABB5ABqIA79WAAADCAAQdwAaiAO/VgAAAsgAEHUAGogDv1YAAAKIABBzABqIA79WAAACSAAQcQAaiAO/VgAAAggAEE8aiAO/VgAAAcgAEE0aiAO/VgAAAYgAEEsaiAO/VgAAAUgAEEkaiAO/VgAAAQgAEEcaiAO/VgAAAMgAEEUaiAO/VgAAAIgAEEMaiAO/VgAAAEgAEEEaiAO/VgAAAAgAEH9AGogFiAUIEr9AAAAIhT9DQ8QERITFBUWFxgZGhscHR79iQH9qQEiMSAQ/bUBIAFBAWr9AAAAIg79iQH9qQEiMv2uASAMIA79DQ8QERITFBUWFxgZGhscHR79iQH9qQEgFP2JAf2pASIz/a4BIBH9tQH9rgEgEv2uAUEE/a0BIjT9DBMZAAATGQAAExkAABMZAAAiHP21AUEI/a0BIBf9DAg0AAAINAAACDQAAAg0AAAiF/21AUEI/a0B/a4B/bEB/QwEIgAABCIAAAQiAAAEIgAAIh39rgFBBv2sASAN/bgBIA/9tgEgICAUIA39DQMEBQYAAAAAAAAAAAAAAAD9iQH9qQEiNSAQ/bUBIA4gDf0NBAUGBwAAAAAAAAAAAAAAAP2JAf2pASI2/a4BIA4gDf0NAwQFBgAAAAAAAAAAAAAAAP2JAf2pASAUIA39DQQFBgcAAAAAAAAAAAAAAAD9iQH9qQEiN/2uASAR/bUB/a4BIBL9rgFBBP2tASI4IBz9tQFBCP2tASAaIBf9tQFBCP2tAf2uAf2xASAd/a4BQQb9rAEgDf24ASAP/bYB/YYBICIgFCAN/Q0HCAkKAAAAAAAAAAAAAAAA/YkB/akBIjkgEP21ASAOIA39DQgJCgsAAAAAAAAAAAAAAAD9iQH9qQEiOv2uASAOIA39DQcICQoAAAAAAAAAAAAAAAD9iQH9qQEgFCAN/Q0ICQoLAAAAAAAAAAAAAAAA/YkB/akBIjv9rgEgEf21Af2uASAS/a4BQQT9rQEiPCAc/bUBQQj9rQEgJSAX/bUBQQj9rQH9rgH9sQEgHf2uAUEG/awBIA39uAEgD/22ASAfIBQgDf0NCwwNDgAAAAAAAAAAAAAAAP2JAf2pASIlIBD9tQEgDiAN/Q0MDQ4PAAAAAAAAAAAAAAAA/YkB/akBIj39rgEgDiAN/Q0LDA0OAAAAAAAAAAAAAAAA/YkB/akBIBQgDf0NDA0ODwAAAAAAAAAAAAAAAP2JAf2pASI+/a4BIBH9tQH9rgEgEv2uAUEE/a0BIj8gHP21AUEI/a0BIDAgF/21AUEI/a0B/a4B/bEBIB39rgFBBv2sASAN/bgBIA/9tgH9hgH9ZiIM/VgAAA8gAEH1AGogDP1YAAAOIABB7QBqIAz9WAAADSAAQeUAaiAM/VgAAAwgAEHdAGogDP1YAAALIABB1QBqIAz9WAAACiAAQc0AaiAM/VgAAAkgAEHFAGogDP1YAAAIIABBPWogDP1YAAAHIABBNWogDP1YAAAGIABBLWogDP1YAAAFIABBJWogDP1YAAAEIABBHWogDP1YAAADIABBFWogDP1YAAACIABBDWogDP1YAAABIABBBWogDP1YAAAAIABB/gBqIBYgNP0MGoEAABqBAAAagQAAGoEAACIW/bUBQQj9rQH9rgH9DOu6///ruv//67r//+u6//8iGv2uAUEG/awBIA39uAEgD/22ASAgIDggFv21AUEI/a0B/a4BIBr9rgFBBv2sASAN/bgBIA/9tgH9hgEgIiA8IBb9tQFBCP2tAf2uASAa/a4BQQb9rAEgDf24ASAP/bYBIB8gPyAW/bUBQQj9rQH9rgEgGv2uAUEG/awBIA39uAEgD/22Af2GAf1mIgz9WAAADyAAQfYAaiAM/VgAAA4gAEHuAGogDP1YAAANIABB5gBqIAz9WAAADCAAQd4AaiAM/VgAAAsgAEHWAGogDP1YAAAKIABBzgBqIAz9WAAACSAAQcYAaiAM/VgAAAggAEE+aiAM/VgAAAcgAEE2aiAM/VgAAAYgAEEuaiAM/VgAAAUgAEEmaiAM/VgAAAQgAEEeaiAM/VgAAAMgAEEWaiAM/VgAAAIgAEEOaiAM/VgAAAEgAEEGaiAM/VgAAAAgAEEIaiAeIA39DQEDBQcAAAAAAAAAAAAAAAD9iQH9qQEgFf21AUEI/a0BIiAgJiAQ/bUBIEP9AAAAIgz9iQH9qQH9rgEgJCAj/a4BIBH9tQH9rgEgEv2uAUEE/a0BIh8gGP21AUEI/a0B/a4BIBn9rgFBBv2sASAN/bgBIA/9tgEgHiAN/Q0JCw0PAAAAAAAAAAAAAAAA/YkB/akBIBX9tQFBCP2tASIeICkgEP21ASAMIA39DQQFBgcAAAAAAAAAAAAAAAD9iQH9qQH9rgEgKCAn/a4BIBH9tQH9rgEgEv2uAUEE/a0BIiMgGP21AUEI/a0B/a4BIBn9rgFBBv2sASAN/bgBIA/9tgH9hgEgISAN/Q0BAwUHAAAAAAAAAAAAAAAA/YkB/akBIBX9tQFBCP2tASIiICwgEP21ASAMIA39DQgJCgsAAAAAAAAAAAAAAAD9iQH9qQH9rgEgKyAq/a4BIBH9tQH9rgEgEv2uAUEE/a0BIiQgGP21AUEI/a0B/a4BIBn9rgFBBv2sASAN/bgBIA/9tgEgISAN/Q0JCw0PAAAAAAAAAAAAAAAA/YkB/akBIBX9tQFBCP2tASIVIC8gEP21ASAMIA39DQwNDg8AAAAAAAAAAAAAAAD9iQH9qQH9rgEgLiAt/a4BIBH9tQH9rgEgEv2uAUEE/a0BIiEgGP21AUEI/a0B/a4BIBn9rgFBBv2sASAN/bgBIA/9tgH9hgH9ZiIM/VgAAAAgAEEQaiAM/VgAAAEgAEEYaiAM/VgAAAIgAEEgaiAM/VgAAAMgAEEoaiAM/VgAAAQgAEEwaiAM/VgAAAUgAEE4aiAM/VgAAAYgAEFAayAM/VgAAAcgAEHIAGogDP1YAAAIIABB0ABqIAz9WAAACSAAQdgAaiAM/VgAAAogAEHgAGogDP1YAAALIABB6ABqIAz9WAAADCAAQfAAaiAM/VgAAA0gAEH4AGogDP1YAAAOIABBgAFqIkAgDP1YAAAPIABBgQFqICAgMyAQ/bUBIAH9AAAAIgz9iQH9qQH9rgEgMiAx/a4BIBH9tQH9rgEgEv2uAUEE/a0BIhggHP21AUEI/a0BIB8gF/21AUEI/a0B/a4B/bEBIB39rgFBBv2sASAN/bgBIA/9tgEgHiA3IBD9tQEgDCAN/Q0EBQYHAAAAAAAAAAAAAAAA/YkB/akB/a4BIDYgNf2uASAR/bUB/a4BIBL9rgFBBP2tASIZIBz9tQFBCP2tASAjIBf9tQFBCP2tAf2uAf2xASAd/a4BQQb9rAEgDf24ASAP/bYB/YYBICIgOyAQ/bUBIAwgDf0NCAkKCwAAAAAAAAAAAAAAAP2JAf2pAf2uASA6IDn9rgEgEf21Af2uASAS/a4BQQT9rQEiHyAc/bUBQQj9rQEgJCAX/bUBQQj9rQH9rgH9sQEgHf2uAUEG/awBIA39uAEgD/22ASAVID4gEP21ASAMIA39DQwNDg8AAAAAAAAAAAAAAAD9iQH9qQH9rgEgPSAl/a4BIBH9tQH9rgEgEv2uAUEE/a0BIhAgHP21AUEI/a0BICEgF/21AUEI/a0B/a4B/bEBIB39rgFBBv2sASAN/bgBIA/9tgH9hgH9ZiIM/VgAAA8gAEH5AGogDP1YAAAOIABB8QBqIAz9WAAADSAAQekAaiAM/VgAAAwgAEHhAGogDP1YAAALIABB2QBqIAz9WAAACiAAQdEAaiAM/VgAAAkgAEHJAGogDP1YAAAIIABBwQBqIAz9WAAAByAAQTlqIAz9WAAABiAAQTFqIAz9WAAABSAAQSlqIAz9WAAABCAAQSFqIAz9WAAAAyAAQRlqIAz9WAAAAiAAQRFqIAz9WAAAASAAQQlqIAz9WAAAACAAQQpqICAgGCAW/bUBQQj9rQH9rgEgGv2uAUEG/awBIA39uAEgD/22ASAeIBkgFv21AUEI/a0B/a4BIBr9rgFBBv2sASAN/bgBIA/9tgH9hgEgIiAfIBb9tQFBCP2tAf2uASAa/a4BQQb9rAEgDf24ASAP/bYBIBUgECAW/bUBQQj9rQH9rgEgGv2uAUEG/awBIA39uAEgD/22Af2GAf1mIgz9WAAAACAAQRJqIAz9WAAAASAAQRpqIAz9WAAAAiAAQSJqIAz9WAAAAyAAQSpqIAz9WAAABCAAQTJqIAz9WAAABSAAQTpqIAz9WAAABiAAQcIAaiAM/VgAAAcgAEHKAGogDP1YAAAIIABB0gBqIAz9WAAACSAAQdoAaiAM/VgAAAogAEHiAGogDP1YAAALIABB6gBqIAz9WAAADCAAQfIAaiAM/VgAAA0gAEH6AGogDP1YAAAOIABBggFqIAz9WAAADyABQRBqIQEgQ0EQaiFDIEZBIGohRiBKQRBqIUogA0EQaiEDIEAhACAbIQ0gDiEMIERBEGsiRA0ACyAU/RYPIUYgDP0WDyFAIBP9Fg8hSyAN/RYPIUMMCAtBAEEDIAFBiOzEABDqBwALQQBBAEGY7MQAEIwHAAtBAEEAQajsxAAQjAcAC0EAQQBBuOzEABCMBwALQQBBAEHI7MQAEIwHAAtBAEEAQdjsxAAQjAcAC0EEQQNBA0G47cQAEOoHAAsgBCFJIAUhTyAGIVYgByFOIAghSCAJIUIgCyFBIAohVSBSIVggRyFXIFEhUCBFIQILIEhBAWohRCBJQQFqIUpBACEDQQAhAANAIFBFIE9BAklyIE5BAkkgQkECSXJyIEFBAU1yDQEgQ0H/AXEhASADIFdqIkhB/wEgAi0AAEGFlQFsQQh2IkkgACBVaiJTQQFqLQAAIkMgS0H/AXEiTEEJbGogASAAIERqLQAAIktqQQNsakEIakEEdiJNQaXMAWxBCHZqQZrvAGtBBnUiAUEAIAFBAEobIgEgAUH/AU4bOgAAIEhBAmpB/wEgSSAAIFZqIltBAWotAAAiASBGQf8BcSJcQQlsaiAAIEpqLQAAIkYgQEH/AXFqQQNsakEIakEEdiJAQZqCAmxBCHZqQZWKAWtBBnUiVEEAIFRBAEobIlQgVEH/AU4bOgAAIEhBAWpB/wEgSSBAQZMybEEIdiBNQYjoAGxBCHZqa0GExABqQQZ1IkBBACBAQQBKGyJAIEBB/wFOGzoAACBIQQZqQf8BIAJBAWotAABBhZUBbEEIdiJAIFstAAAgRkEJbGogASBcakEDbGpBCGpBBHYiSUGaggJsQQh2akGVigFrQQZ1Ik1BACBNQQBKGyJNIE1B/wFOGzoAACBIQQRqQf8BIEAgUy0AACBLQQlsaiBDIExqQQNsakEIakEEdiJTQaXMAWxBCHZqQZrvAGtBBnUiTEEAIExBAEobIkwgTEH/AU4bOgAAIEhBBWpB/wEgQCBJQZMybEEIdiBTQYjoAGxBCHZqa0GExABqQQZ1IkBBACBAQQBKGyJAIEBB/wFOGzoAACACQQJqIQIgUEECayFQIE9BAWshTyAAQQFqIQAgQUEBayFBIEJBAWshQiBOQQFrIU4gASFAIFggA0EIaiIDRw0ACwsCQAJAAkACQAJAIFkEQCAEIAVqQQFrIgJFDQEgBiAHakEBayIDRQ0CIAggCWpBAWsiAEUNAyAKIAtqQQFrIgRFDQQgWkEHcSIBQQJNDQUgAC0AACEFIEcgUmoiAEH/ASBFIFFqLQAAQYWVAWxBCHYiASADLQAAIgMgAi0AAEEMbGogA0EDbGpBCGpBBHYiAkGaggJsQQh2akGVigFrQQZ1IgNBACADQQBKGyIDIANB/wFOGzoAAiAAQf8BIAEgBC0AACIDIAVBDGxqIANBA2xqQQhqQQR2IgNBpcwBbEEIdmpBmu8Aa0EGdSIEQQAgBEEAShsiBCAEQf8BThs6AAAgAEH/ASABIAJBkzJsQQh2IANBiOgAbEEIdmprQYTEAGpBBnUiAEEAIABBAEobIgAgAEH/AU4bOgABCw8LQejsxAAQ3QkAC0H47MQAEN0JAAtBiO3EABDdCQALQZjtxAAQ3QkAC0EAQQMgAUGo7cQAEOoHAAvpJAMWfwN9AXsjAEHABWsiBiQAIAYgBDYCDCAGIAM2AgggBkHsAWogBRC1ASAGKALsASEFAkACQAJAAkAgBi0AiAIiB0ECRgRAIABBgICAgHg2AgAgACAFNgIEIANFIARBhAhJckUEQCAEEJsHCyACQYQISQ0BIAIQmwcMAQsgBkEkaiAGQYACaikCADcCACAGQS9qIAZBiwJqLQAAOgAAIAYgBv0AAvAB/QsCFCAGIAYvAIkCOwAtIAYgBzoALCAGIAU2AhAgBkHsAWogAiABIAZBDGpBACADQQFxGyAGQRBqELACAkACQAJAAkAgBigC7AFBAkYEQCAGKALwASEBIAZBADYCsAMgBkKAgICAEDcCqAMgBkGck8EANgL0BCAGQqCAgIAONwL4BCAGIAZBqANqNgLwBCABIAZB8ARqEK8EDQggBigCqAMhAiAGKAKsAyIFIAYoArADEOwIIQcgAgRAIAVBBGsoAgAiCEF4cSIKQQRBCCAIQQNxIggbIAJqSQ0IIAhBACAKIAJBJ2pLGw0HIAUQogILIABBgICAgHg2AgAgACAHNgIEIAEgASgCACgCABEDAAwDCyAGQTBqIAZB7AFqIgFBvAH8CgAAIAZBwAJqIAZByAFqIgMoAgA2AgAgBkG4AmogBkHAAWoiBCkCADcCACAGQccCaiAGQc8Bai0AADoAACAGIAb9AAKwAf0LAqgCIAYgBi8AzQE7AMUCIAZBADYCyAIgBiAGLQDMASICOgDEAiAGQQA2AqQCIAZCgICAgBA3ApwCIAZCATcClAIgBkIANwKMAiAGQoCAgIAQNwKEAiAGQgQ3AvwBIAZCADcC9AEgBkKAgICAwAA3AuwBIAYoAtQBIRUgBigC2AEhFiAGIAYoAmAiGzoA+AQgBiAWNgL0BCAGIBU2AvAEIAEgBkHwBGoQ6QEgAkECRwRAIAZBxQJqIQEgAyoCACEcIAQqAgAhHSAGKgLEASEeIAb9AAKwASEfIAYtAMQCQQJHBEAgBkHyBGogAUECai0AADoAACAGIAEvAAA7AfAECyABIAYvAfAEOwAAIAFBAmogBkHyBGotAAA6AAAgBiACQQFxOgDEAiAGIBw4AsACIAYgHjgCvAIgBiAdOAK4AiAGIB/9CwKoAgsgBkEANgKABCAGQoCAgIDAADcC+AMgBkEANgKMBCAGQoCAgIDAADcChAQgBkEANgKYBCAGQoCAgIDAADcCkAQgBkEANgKkBCAGQoCAgIDAADcCnAQgBkEANgKwBCAGQoCAgIDAADcCqAQgBkEANgK8BCAGQoCAgIDAADcCtAQgBkEANgLIBCAGQoCAgIDAADcCwAQgBkEANgLUBCAGQoCAgIDAADcCzAQgBkEANgLgBCAGQoCAgIAgNwLYBCAGQQA2AuwEIAZCgICAgMAANwLkBCAVRQRAQQQhF0EEIRhBBCEZQQQhAUEEIRIMAgtBBCESAkADQCAPQYCABCAVIA5rIgEgAUGAgARPGyIFQQNsIgxJBEAgDCAPayIBIAYoAvgDIA9rSwRAIAZB+ANqIA8gAUEEQQQQpAUgBigC/AMhEiAGKAKABCEPCyASIA9BAnRqIQQgAUECTwR/IAFBAnRBBGsiAgRAIARBACAC/AsACyABIA9qIgFBAWshDyASIAFBAnRqQQRrBSAEC0EANgIAIAYgD0EBaiIPNgKABCAGKAKMBCENCyAFIA1LBEAgBSANayIBIAYoAoQEIA1rSwRAIAZBhARqIA0gAUEEQQQQpAUgBigCjAQhDQsgBigCiAQiAiANQQJ0aiEEIAFBAk8EfyABQQJ0QQRrIgMEQCAEQQAgA/wLAAsgASANaiIBQQFrIQ0gAiABQQJ0akEEawUgBAtBADYCACAGIA1BAWoiDTYCjAQLIAYoApgEIgogDEkEQCAMIAprIgEgBigCkAQgCmtLBEAgBkGQBGogCiABQQRBBBCkBSAGKAKYBCEKCyAGKAKUBCICIApBAnRqIQQgAUECTwR/IAFBAnRBBGsiAwRAIARBACAD/AsACyABIApqIgFBAWshCiACIAFBAnRqQQRrBSAEC0EANgIAIAYgCkEBaiIKNgKYBAsgBigCpAQiCSAMSQRAIAwgCWsiASAGKAKcBCAJa0sEQCAGQZwEaiAJIAFBBEEEEKQFIAYoAqQEIQkLIAYoAqAEIgIgCUECdGohBCABQQJPBH8gAUECdEEEayIDBEAgBEEAIAP8CwALIAEgCWoiAUEBayEJIAIgAUECdGpBBGsFIAQLQQA2AgAgBiAJQQFqIgk2AqQECyAFQQJ0IhMgBigCsAQiB0sEQCATIAdrIgEgBigCqAQgB2tLBEAgBkGoBGogByABQQRBBBCkBSAGKAKwBCEHCyAGKAKsBCICIAdBAnRqIQQgAUECTwR/IAFBAnRBBGsiAwRAIARBACAD/AsACyABIAdqIgFBAWshByACIAFBAnRqQQRrBSAEC0EANgIAIAYgB0EBaiIHNgKwBAsCQAJAAkACQAJAAkACQAJAAkAgDCAPTQRAIAZBMGoiAiAOIAUgBigC/AMiEiAMEKIFIAUgDUsNASAGKAKIBCEBIAIgDiAFEMwDQwAAAEBDAACAPyAGLQDMAUEBcRshHEEAIQMgBigCkAEhBCAGKAKUASEIA0AgA0EEaiICIAhLDQMgAyATRg0EIAEgA2ogHCAELQADs0MAAH9DlZRDAAAAAJI4AgAgBEEQaiEEIAIiAyATRw0ACyAKIAxJDQQgBkEwaiICIA4gBSAGKAKUBCIZIAwQgQUgCSAMSQ0FIAIgDiAFIAYoAqAEIhggDBDGBCAHIBNJDQYgAiAOIAUgBigCrAQiFyATEPADQQQhEUEAIQRBACEIQQQhB0EAIQJBBCEJQQAhA0EEIQogFkUNCSAFQQlsIgMgBigCvAQiAksEQCADIAJrIgcgBigCtAQgAmtLBEAgBkG0BGogAiAHQQRBBBCkBSAGKAK8BCECCyAGKAK4BCIIIAJBAnRqIQogB0ECTwR/IAdBAnRBBGsiCQRAIApBACAJ/AsACyACIAdqIgdBAWshAiAIIAdBAnRqQQRrBSAKC0EANgIAIAYgAkEBaiICNgK8BAsgAiADSQ0HIAZBMGogDiAFIAYoArgEIgogAxD7ASAWQQFGBEBBACEIQQQhB0EAIQJBBCEJDAoLIAVBD2wiAiAGKALIBCIISwRAIAIgCGsiCSAGKALABCAIa0sEQCAGQcAEaiAIIAlBBEEEEKQFIAYoAsgEIQgLIAYoAsQEIgsgCEECdGohByAJQQJPBH8gCUECdEEEayIQBEAgB0EAIBD8CwALIAggCWoiB0EBayEIIAsgB0ECdGpBBGsFIAcLQQA2AgAgBiAIQQFqIgg2AsgECyACIAhNDQhBACACIAhBvOHBABDqBwALQQAgDCAPQZziwQAQ6gcAC0EAIAUgDUGM4sEAEOoHAAsgAyACIAhB7NHAABDqBwALIAUgBUHc0cAAEIwHAAtBACAMIApB/OHBABDqBwALQQAgDCAJQezhwQAQ6gcAC0EAIBMgB0Hc4cEAEOoHAAtBACADIAJBzOHBABDqBwALIAZBMGogDiAFIAYoAsQEIgkgAhDQASAWQQJNBEBBACEIQQQhBwwBCyAFQRVsIgggBigC1AQiB0sEQCAIIAdrIhAgBigCzAQgB2tLBEAgBkHMBGogByAQQQRBBBCkBSAGKALUBCEHCyAGKALQBCIUIAdBAnRqIQsgEEECTwR/IBBBAnRBBGsiGgRAIAtBACAa/AsACyAHIBBqIgtBAWshByAUIAtBAnRqQQRrBSALC0EANgIAIAYgB0EBaiIHNgLUBAsgByAITwRAIAZBMGogDiAFIAYoAtAEIgcgCBClAQwBC0EAIAggB0Gs4cEAEOoHAAsCQAJAIBtFBEBBAiEQDAELIAYoAuAEIgQgBUkEQCAFIARrIgsgBigC2AQgBGtLBEAgBkHYBGogBCALQQJBAhCkBSAGKALgBCEECyAGKALcBCIRIARBAXRqIRAgC0ECTwR/IAtBAXRBAmsiFARAIBBBACAU/AsACyAEIAtqIgtBAWshBCARIAtBAXRqQQJrBSAQC0EAOwEAIAYgBEEBaiIENgLgBAsgBCAFSQ0BIAZBMGogDiAFIAYoAtwEIhAgBRCSAyAGKALsBCIEIAVJBEAgBSAEayIRIAYoAuQEIARrSwRAIAZB5ARqIAQgEUEEQQQQpAUgBigC7AQhBAsgBigC6AQiFCAEQQJ0aiELIBFBAk8EfyARQQJ0QQRrIhoEQCALQQAgGvwLAAsgBCARaiILQQFrIQQgFCALQQJ0akEEawUgCwtBADYCACAGIARBAWoiBDYC7AQLIAQgBUkNAyAGQTBqIA4gBSAGKALoBCIRIAUQkwMgBSEECyAGIAQ2ArwFIAYgETYCuAUgBiAENgK0BSAGIBA2ArAFIAYgCDYCrAUgBiAHNgKoBSAGIAI2AqQFIAYgCTYCoAUgBiADNgKcBSAGIAo2ApgFIAYgEzYClAUgBiAXNgKQBSAGIAw2AowFIAYgGDYCiAUgBiAMNgKEBSAGIBk2AoAFIAYgBTYC/AQgBiABNgL4BCAGIAw2AvQEIAYgEjYC8AQgBkHsAWogDiAFIAZB8ARqEJMCIAUgDmoiDiAVTw0DDAELC0EAIAUgBEGc4cEAEOoHAAtBACAFIARBjOHBABDqBwALIAYoAuQEIgJFDQAgBigC6AQiA0EEaygCACIEQXhxIgUgAkECdCICQQRBCCAEQQNxIgQbakkNBSAEQQAgBSACQSdqSxsNBCADEKICCyAGKALYBCICBEAgBigC3AQiA0EEaygCACIEQXhxIgUgAkEBdCICQQRBCCAEQQNxIgQbakkNBSAEQQAgBSACQSdqSxsNBCADEKICCyAGKALMBCICBEAgBigC0AQiA0EEaygCACIEQXhxIgUgAkECdCICQQRBCCAEQQNxIgQbakkNBSAEQQAgBSACQSdqSxsNBCADEKICCyAGKALABCICBEAgBigCxAQiA0EEaygCACIEQXhxIgUgAkECdCICQQRBCCAEQQNxIgQbakkNBSAEQQAgBSACQSdqSxsNBCADEKICCyAGKAK0BCICBEAgBigCuAQiA0EEaygCACIEQXhxIgUgAkECdCICQQRBCCAEQQNxIgQbakkNBSAEQQAgBSACQSdqSxsNBCADEKICCyAGKAKoBCICBEAgF0EEaygCACIDQXhxIgQgAkECdCICQQRBCCADQQNxIgMbakkNBSADQQAgBCACQSdqSxsNBCAXEKICCyAGKAKcBCICBEAgGEEEaygCACIDQXhxIgQgAkECdCICQQRBCCADQQNxIgMbakkNBSADQQAgBCACQSdqSxsNBCAYEKICCyAGKAKQBCICBEAgGUEEaygCACIDQXhxIgQgAkECdCICQQRBCCADQQNxIgMbakkNBSADQQAgBCACQSdqSxsNBCAZEKICCyAGKAKEBCICBEAgAUEEaygCACIDQXhxIgQgAkECdCICQQRBCCADQQNxIgMbakkNBSADQQAgBCACQSdqSxsNBCABEKICCyAGKAL4AyIBBEAgEkEEaygCACICQXhxIgMgAUECdCIBQQRBCCACQQNxIgIbakkNBSACQQAgAyABQSdqSxsNBCASEKICCyAGKALwASEBIAYoAvQBIQIgBigC7AEhAyAGQagDaiAGQfgBakHQAPwKAAAgA0GAgICAeEcNASAGQQA2AvgEIAZCgICAgBA3AvAEIAZBnJPBADYC8AEgBkKggICADjcC9AEgBiAGQfAEajYC7AEgASAGQewBahCvBA0FIAYoAvAEIQIgBigC9AQiAyAGKAL4BBDsCCEEIAIEQCADQQRrKAIAIgVBeHEiB0EEQQggBUEDcSIFGyACakkNBSAFQQAgByACQSdqSxsNBCADEKICCyAAQYCAgIB4NgIAIAAgBDYCBCABIAEoAgAoAgARAwAgBkEwahDAAiAGKAIMIQQgBigCCCEDCyADRSAEQYQISXINASAEEJsHDAELIAYoAsgCIQQgAEEMaiAGQagDakHQAPwKAAAgACAENgJkIAAgAjYCYCAAIAQ2AlwgACACNgIIIAAgATYCBCAAIAM2AgAgBkEwahDAAiAGKAIIRQ0AIAYoAgwiAEGECEkNACAAEJsHCyAGQcAFaiQADwtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQaCexgBBNyAGQeQEakG0k8EAQdiexgAQ4AYAC5orAhx/AX4jAEHgAWsiAiQAIAJBIGogACAAKAIAKAIEEQEAIAIgAigCJCIJNgIsIAIgAigCICIENgIoAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkAgAS0ACkGAAXFFBEAgAiACQShqrUKAgICAsAGENwNoIAEoAgAgASgCBCACQgE3ApwBQQEhAyACQQE2ApQBIAJBoPjHADYCkAEgAiACQegAajYCmAEgAkGQAWoQwQMNByACQRhqIAIoAiggAigCLCgCGBEBAAJAAkAgAigCGCIFBEAgAigCHCEGIAEoAgBBp/DBAEEMIAEoAgQoAgwRAAANCiACQRBqIAUgBigCGBEBACACQcgAaq1CgICAgLABhCEeIAIoAhBBAEchB0EAIQMDQCACQQhqIAUgBigCGBEBACACKAIMIAIoAgghBCACIAY2AkwgAiAFNgJIIAJBADYCoAEgAkEBNgKUASACQczExAA2ApABIAJCBDcCmAEgASgCACABKAIEIAJBkAFqIgYQngkNAiACQQA6AHQgAiADNgJsIAIgBzYCaCACIAE2AnAgAkEBNgKUASACQaD4xwA2ApABIAJCATcCnAEgAiAeNwNYIAIgAkHYAGo2ApgBIAJB6ABqIAYQnwkNAiADQQFqIQMhBiAEIgUNAAsLAkAgACgCBCIFQQNHBEAgAEEEaiEADAELIAAgACgCACgCGBEEACIARQ0CIAAoAgAhBQtBACEDIAVBAkcNCSACQQA2AkQgAkKAgICAEDcCPCACQbTvwQA2AkwgAkKggICADjcCUCACIAJBPGo2AkgCQCAAKAIAQQFrDgIFAAQLAkACfwJAAkAgAC0AFEEDRgRAIAAoAgwhA0EAIQYMAQsgAiAAQQRqNgKQASACQZABaiEHIwBBIGsiCCQAAkACQAJAIABBFGoiBi0AACIJQQJPBEAgCUEDaw0BDAMLIAZBAjoAACAHKAIAIAdBADYCAARAIAlBAUcEQEH0uskALQAAIQRB9LrJAEEBOgAAIAggBDoAByAERQ0DIAhCADcCFCAIQoGAgIDAADcCDCAIQcCDyAA2AgggCEEHaiAIQQhqEPsHAAsjAEEgayIAJAAgAEEANgIYIABBATYCDCAAQeCEyAA2AgggAEIENwIQIABBCGpB6ITIABCNCAALQaCEyAAQ3QkACyAIQQA2AhggCEEBNgIMIAhBmIPIADYCCCAIQgQ3AhAgCEEIakGQhMgAEI0IAAtB9LrJAEEAOgAAIAZBAzoAAAsgCEEgaiQAIAAoAgwhAyACKAJQQYCAgARxIgYNAQsgAyAAKAIQIgRJDQIgAyAEayEDIAAoAgggBEEMbGoMAQsgACgCCAshDyACQYCAgIB4NgJYIAJBkPrHACkDACIeNwJcIAIgBkEXdiIAOgBkIAIgADoAeCACQQA2AnQgAkGEjMgANgJwIAIgAkHIAGo2AmggAiACQdgAajYCbCADRQRAIB6nIQMgHkIgiKcMCAsgDyADQQxsaiEYIAJBmAFqIREgAkGXAWohGQNAAkAgDygCCCIERQRAIAJBADYCiAEgAiACQegAajYChAEgAkEDNgKQASACQQI2AtABIAJBhAFqIAJBkAFqIAJB0AFqQQAgAkEAIAIQ+AEgAigChAEiACAAKAIMQQFqNgIMRQ0BDA4LIA8oAgQiACAEQSxsaiEaA0AgAkEANgKAASACIAJB6ABqNgJ8AkACQAJAAkAgACgCIEGAgICAeEcEQCACQZABaiIEIAAoAiQiGyAAKAIoIhwQ+wJBAiETIAIoApABDQMgBCACKAKUASIIIAIoApgBIgdBpLbFAEEGEOEBAkACQCACKAKQAQRAIAIoAswBIQUgAigCyAEhBiACKALEASEJIAIoAsABIQQgAigCtAFBf0YNASACQYQBaiARIAQgCSAGIAVBABCCBAwCCwNAIAJB0AFqIAJBkAFqEJgCIAIoAtABIgRBAUYNAAsCQAJAIARBAWsOAhkBAAsgAiACKQLUATcCiAEgAkEBNgKEAQwCCyACQQA2AoQBDAELIAJBhAFqIBEgBCAJIAYgBUEBEIIECyACKAKEAUEBRw0CIAIoAogBIgRBBmoiBkUNAQJAIAYgB08EQCAGIAdHDQEMAwsgBiAIaiwAAEG/f0oNAgsgCCAHIAYgB0GstsUAELsJAAsgAkEDNgKQAQwDCyAHIAhqIQkgBiAIaiEDA0ACQCADIAlGDQACfyADLAAAIgxBAE4EQCAMQf8BcSEFIANBAWoMAQsgAy0AAUE/cSEGIAxBH3EhBSAMQV9NBEAgBUEGdCAGciEFIANBAmoMAQsgAy0AAkE/cSAGQQZ0ciEGIAxBcEkEQCAGIAVBDHRyIQUgA0EDagwBCyAFQRJ0QYCA8ABxIAMtAANBP3EgBkEGdHJyIgVBgIDEAEYNASADQQRqCyEDIAVBxwBrQXhLIAVBOmtBdk9yDQEMAgsLIARFDQECQCAEIAdPBEAgBCAHRg0CDAELIAQgCGosAABBv39MDQAgBCEHDAELIAggB0EAIARBvLbFABC7CQALAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgB0EDTwRAQfC1xQAgCEEDENsHRQ0BIAgvAABB2pwBRg0CIAdBA0YNByAIKAAAQd++6fIERw0HQXwhA0EEIQUgB0EFTw0DQQQhBwwFCyAHQQJHDQ0gCC8AAEHanAFHDQVBfiEDQQIhB0ECIQUMBAtBAyEFQX0hAyAHQQNGBEBBAyEHDAQLIAgsAANBv39KDQMgCCAHQQMgB0GUtsUAELsJAAsgCCwAAkG/f0wNAUECIQVBfiEDDAILIAgsAARBv39KDQEgCCAHQQQgB0H0tcUAELsJAAsgCCAHQQIgB0GEtsUAELsJAAsgBSAIaiIJIAMgB2oiBGohECAEIQMgCSEFAkADQCADBEAgA0EBayEDIAUsAAAgBUEBaiEFQQBODQEMAgsLIARFDQACfyAJLAAAIgNBAE4EQCADQf8BcSEDIAlBAWoMAQsgCS0AAUE/cSEGIANBH3EhBSADQV9NBEAgBUEGdCAGciEDIAlBAmoMAQsgCS0AAkE/cSAGQQZ0ciEGIANBcEkEQCAGIAVBDHRyIQMgCUEDagwBCyAFQRJ0QYCA8ABxIAktAANBP3EgBkEGdHJyIQMgCUEEagshCgJAIANBxQBGBEBBACEGDAELIANBgIDEAEYNAUEAIQYDQCADQTBrQQlLDQJBACEFAkADQAJAIANBMGsiDEEKTwRAIAUNAQwDCyAFrUIKfiIeQiCIpw0FIAogEEYgHqciAyAMaiIFIANJcg0FAn8gCiwAACINQQBOBEAgDUH/AXEhAyAKQQFqDAELIAotAAFBP3EhAyANQR9xIQwgDUFfTQRAIAxBBnQgA3IhAyAKQQJqDAELIAotAAJBP3EgA0EGdHIhAyANQXBJBEAgAyAMQQx0ciEDIApBA2oMAQsgDEESdEGAgPAAcSAKLQADQT9xIANBBnRyciEDIApBBGoLIQogA0GAgMQARw0BDAULCwNAIAogEEYNBAJ/IAosAAAiDUEATgRAIA1B/wFxIQMgCkEBagwBCyAKLQABQT9xIQMgDUEfcSEMIA1BX00EQCAMQQZ0IANyIQMgCkECagwBCyAKLQACQT9xIANBBnRyIQMgDUFwSQRAIAMgDEEMdHIhAyAKQQNqDAELIAxBEnRBgIDwAHEgCi0AA0E/cSADQQZ0cnIiA0GAgMQARg0FIApBBGoLIQogBUEBayIFDQALCyAGQQFqIQYgA0HFAEcNAAsLIBAgCmshDAwICyAHQQJLDQELQQIhByAILQAAQdIARg0BDAcLIAgvAABB36QBRgRAIAgsAAIiA0G/f0wNBCAIQQJqIQRBfiEFDAULIAgtAABB0gBHDQELIAgsAAEiA0G/f0wNASAIQQFqIQRBfyEFDAMLIAdBA0YNBEGKtcUAIAhBAxDbBw0EIAgsAAMiA0G/f0oEQCAIQQNqIQRBfSEFDAMLIAggB0EDIAdBkLXFABC7CQALIAggB0EBIAdBoLXFABC7CQALIAggB0ECIAdBsLXFABC7CQALIANBwQBrQf8BcUEZSw0BIAUgB2ohBkEAIQMDQCADIAZHBEAgAyAEaiADQQFqIQMsAABBAE4NAQwDCwsgEf0MAAAAAAAAAAAAAAAAAAAAAP0LAgAgAiAGNgKUASACIAQ2ApABAkAgAkGQAWpBABDMAUUEQCACKAKQASIFRQ0DIAIoApgBIgMgAi0AlAEgAi8AlQEgGS0AAEEQdHJBCHRyIgpPDQEgAyAFai0AAEHBAGtB/wFxQRpPDQEgAigCnAEhCSACQgA3AqABIAIgCTYCnAEgAiADNgKYASACIAo2ApQBIAIgBTYCkAEgAkGQAWpBABDMAQ0WIAIoApABIgVFDQMgAigCmAEhAyACKAKUASEKDAELDBULAkACQCADRQ0AIAMgCk8EQCADIApGDQEMAgsgAyAFaiwAAEG/f0wNAQsgCiADayEMIAMgBWohCkEAIQkMAQsgBSAKIAMgCkHQtcUAELsJAAsCfyAMRQRAQQAhFCAJIRUgBCEWIAYhFyAIIQ4gByELIAoMAQsgCi0AAEEuRw0BIAogDGohEEEuIQUgCiEDA0ACQAJ/AkAgBcBBAEgEQCADLQABQT9xIQ0gBUEfcSESIAVB/wFxIgVB3wFLDQEgEkEGdCANciEFIANBAmoMAgsgBUH/AXEhBSADQQFqDAELIAMtAAJBP3EgDUEGdHIhDSAFQfABSQRAIA0gEkEMdHIhBSADQQNqDAELIBJBEnRBgIDwAHEgAy0AA0E/cSANQQZ0cnIiBUGAgMQARg0BIANBBGoLIQMCQCAFQd///wBxQcEAa0EaSSAFQTBrQQpJciAFQSFrQQ9Jcg0AAkAgBUE6aw4nAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAAsgBUH7AGtBA0sNBAsgAyAQRg0AIAMtAAAhBQwBCwsgCSEVIAQhFiAGIRcgCCEOIAchCyAMIRQgCgshHUEBIRMLIAIgFDYCrAEgAiAdNgKoASACIAs2AqQBIAIgDjYCoAEgAiAXNgKcASACIBY2ApgBIAIgFTYClAEgAiAcNgK0ASACIBs2ArABIAIgEzYCkAELIAAoAhAiBEECRwRAIAIgACkCGDcC1AELIAIgBDYC0AEgAkH8AGogAkGQAWogAkHQAWogACgCACAAKAIEIAAoAgggACgCDBD4ASACKAJ8IgQgBCgCDEEBajYCDA0OIABBLGoiACAaRw0ACwsgGCAPQQxqIg9HDQALDAYLIAQgAyADQfSLyAAQ6gcAC0EBIQMMCAtBiPHBAEEYQaDxwQAQqwcACyAEIAEgCSgCDBECACEDDAYLIAJBPGpBzIvIAEEVEOIHDQcMBAsgAkE8akHhi8gAQRIQ4gdFDQMMBgsgAigCWCIARQ0CIABBgICAgHhHDQEgAi0AXCEDIAIoAmALIQYgA0H/AXFBA0cNASAGKAIAIQkgBkEEaigCACIEKAIAIgAEQCAJIAARAwALIAQoAgQiCwRAIAlBBGsoAgAiAEF4cSIEQQRBCCAAQQNxIgAbIAtqSQ0IIABBACAEIAtBJ2pLGw0JIAkQogILIAZBBGsoAgAiAEF4cSIEQRBBFCAAQQNxIgAbSQ0HIABBACAEQTRPGw0IIAYQogIMAQsgAigCXCAAQQEQogcLIAJBOGogAkHEAGooAgA2AgAgAiACKQI8NwMwAkACQCABKAIAQbPwwQBBAiABKAIEKAIMEQAADQACQAJAIAIoAjgiAEEQTwRAQbXwwQAgAigCNEEQENsHRQ0BCyACQQA2AqABIAJBATYClAEgAkHY8MEANgKQASACQgQ3ApgBIAEoAgAgASgCBCACQZABahCeCUUNAQwCCyACQTBqIgsoAgQhBAJAAkACQCALKAIIIgBBAU0EQCAAQQFHDQFBACEAIAtBADYCCCALKAIABH8gBAUgC0EAQQEQ+AUgCygCCCEAIAsoAgQLIABqQdMAOgAAIAsgAEEBajYCCAwDCyAELAABQb9/Sg0BC0Hc78EAQSpB4PDBABDrBwALIARB0wA6AAAgCyAANgIICyACKAI4IQALIAJBMGohDiACKAI0IQdBACELAkAgAEUNACAAIAdqIQQDQAJAIAQiAEEBayIELAAAIgZBAEgEQCAGQT9xAn8gAEECayIELQAAIgbAIglBQE4EQCAGQR9xDAELIAlBP3ECfyAAQQNrIgQtAAAiBsAiCUFATgRAIAZBD3EMAQsgCUE/cSAAQQRrIgQtAABBB3FBBnRyC0EGdHILQQZ0ciEGCwJAIAZBIEYgBkEJa0EFSXINACAGQYABSQ0BAkACQAJAAkAgBkEIdiIJQRZrDhsABQUFBQUFBQUFAQUFBQUFBQUFBQUFBQUFBQIDCyAGQYAtRg0DDAQLIAZB/wFxLQDEoUdBAnENAgwDCyAGQYDgAEcNAgwBCyAJDQEgBkH/AXEtAMShR0EBcUUNAQsgBCAHRw0BDAILCyAAIAdrIQsLAkACQCAOKAIIIgAgC08EQCALRSAAIAtNckUEQCAOKAIEIAtqLAAAQb9/TA0CCyAOIAs2AggLDAELQeSfxgBBMEHw8MEAEOsHAAsgAkEBNgKUASACQaD4xwA2ApABIAJCATcCnAEgAiAOrUKAgICAsAWENwNoIAIgAkHoAGo2ApgBIAEoAgAgASgCBCACQZABahCeCUUNAQsgAigCMCILBEAgAigCNCIEQQRrKAIAIgBBeHEiAUEEQQggAEEDcSIAGyALakkNByAAQQAgASALQSdqSxsNCCAEEKICC0EBIQMMAQsgAigCMCIABEAgAigCNCAAQQEQogcLQQAhAwsgAkHgAWokACADDwsCQCACKAJYIgRBgICAgHhHBEAgBEUNAiACKAJcIgNBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIARqSQ0FIABFIAEgBEEnak1yDQEMBgsgAi0AXEEDRw0BIAIoAmAiAygCACELIANBBGooAgAiASgCACIABEAgCyAAEQMACyABKAIEIgQEQCALQQRrKAIAIgBBeHEiAUEEQQggAEEDcSIAGyAEakkNBSAAQQAgASAEQSdqSxsNBiALEKICCyADQQRrKAIAIgBBeHEiAUEQQRQgAEEDcSIAG0kNBCAARQ0AIAFBNE8NBQsgAxCiAgtBoJ7GAEE3IAJB3wFqQczvwQBB2J7GABDgBgALAAtBqLTFAEE9IAJB3wFqQZi0xQBBwLXFABDgBgALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC58jAhZ/AX0jAEGQBWsiBiQAIAYgBDYCDCAGIAM2AgggBkHsAWogBRC1ASAGKALsASEFAkACQAJAAkAgBi0AiAIiB0ECRgRAIABBgICAgHg2AgAgACAFNgIEIANFIARBhAhJckUEQCAEEJsHCyACQYQISQ0BIAIQmwcMAQsgBkEkaiAGQYACaikCADcCACAGQS9qIAZBiwJqLQAAOgAAIAYgBv0AAvAB/QsCFCAGIAYvAIkCOwAtIAYgBzoALCAGIAU2AhAgBkHsAWogAiABIAZBDGpBACADQQFxGyAGQRBqELACAkACQAJAAkAgBigC7AFBAkYEQCAGKALwASEBIAZBADYCsAMgBkKAgICAEDcCqAMgBkGck8EANgLcAyAGQqCAgIAONwLgAyAGIAZBqANqNgLYAyABIAZB2ANqEK8EDQggBigCqAMhAiAGKAKsAyIFIAYoArADEOwIIQcgAgRAIAVBBGsoAgAiCEF4cSIKQQRBCCAIQQNxIggbIAJqSQ0IIAhBACAKIAJBJ2pLGw0HIAUQogILIABBgICAgHg2AgAgACAHNgIEIAEgASgCACgCABEDAAwDCyAGQTBqIAZB7AFqIgFBvAH8CgAAIAZCgICAgCA3AogEIAZCAjcCgAQgBkIANwL4AyAGQoCAgIAgNwLwAyAGQgQ3AugDIAZCADcC4AMgBkKAgICAwAA3AtgDIAZCADcCkAQgBigC1AEhFSAGKALYASEWIAYgBigCYCIbOgD0ASAGIBY2AvABIAYgFTYC7AEgBkHYA2ogARCEAiAGQQA2AqAEIAZCgICAgMAANwKYBCAGQQA2AqwEIAZCgICAgMAANwKkBCAGQQA2ArgEIAZCgICAgMAANwKwBCAGQQA2AsQEIAZCgICAgMAANwK8BCAGQQA2AtAEIAZCgICAgMAANwLIBCAGQQA2AtwEIAZCgICAgMAANwLUBCAGQQA2AugEIAZCgICAgMAANwLgBCAGQQA2AvQEIAZCgICAgMAANwLsBCAGQQA2AoAFIAZCgICAgCA3AvgEIAZBADYCjAUgBkKAgICAwAA3AoQFIBVFBEBBBCEXQQQhGEEEIRlBBCEBQQQhEgwCC0EEIRICQANAIA9BgIAEIBUgDmsiASABQYCABE8bIgVBA2wiDEkEQCAMIA9rIgEgBigCmAQgD2tLBEAgBkGYBGogDyABQQRBBBCkBSAGKAKcBCESIAYoAqAEIQ8LIBIgD0ECdGohBCABQQJPBH8gAUECdEEEayICBEAgBEEAIAL8CwALIAEgD2oiAUEBayEPIBIgAUECdGpBBGsFIAQLQQA2AgAgBiAPQQFqIg82AqAEIAYoAqwEIQ0LIAUgDUsEQCAFIA1rIgEgBigCpAQgDWtLBEAgBkGkBGogDSABQQRBBBCkBSAGKAKsBCENCyAGKAKoBCICIA1BAnRqIQQgAUECTwR/IAFBAnRBBGsiAwRAIARBACAD/AsACyABIA1qIgFBAWshDSACIAFBAnRqQQRrBSAEC0EANgIAIAYgDUEBaiINNgKsBAsgBigCuAQiCiAMSQRAIAwgCmsiASAGKAKwBCAKa0sEQCAGQbAEaiAKIAFBBEEEEKQFIAYoArgEIQoLIAYoArQEIgIgCkECdGohBCABQQJPBH8gAUECdEEEayIDBEAgBEEAIAP8CwALIAEgCmoiAUEBayEKIAIgAUECdGpBBGsFIAQLQQA2AgAgBiAKQQFqIgo2ArgECyAGKALEBCIJIAxJBEAgDCAJayIBIAYoArwEIAlrSwRAIAZBvARqIAkgAUEEQQQQpAUgBigCxAQhCQsgBigCwAQiAiAJQQJ0aiEEIAFBAk8EfyABQQJ0QQRrIgMEQCAEQQAgA/wLAAsgASAJaiIBQQFrIQkgAiABQQJ0akEEawUgBAtBADYCACAGIAlBAWoiCTYCxAQLIAVBAnQiEyAGKALQBCIHSwRAIBMgB2siASAGKALIBCAHa0sEQCAGQcgEaiAHIAFBBEEEEKQFIAYoAtAEIQcLIAYoAswEIgIgB0ECdGohBCABQQJPBH8gAUECdEEEayIDBEAgBEEAIAP8CwALIAEgB2oiAUEBayEHIAIgAUECdGpBBGsFIAQLQQA2AgAgBiAHQQFqIgc2AtAECwJAAkACQAJAAkACQAJAAkACQCAMIA9NBEAgBkEwaiICIA4gBSAGKAKcBCISIAwQogUgBSANSw0BIAYoAqgEIQEgAiAOIAUQzANDAAAAQEMAAIA/IAYtAMwBQQFxGyEcQQAhAyAGKAKQASEEIAYoApQBIQgDQCADQQRqIgIgCEsNAyADIBNGDQQgASADaiAcIAQtAAOzQwAAf0OVlEMAAAAAkjgCACAEQRBqIQQgAiIDIBNHDQALIAogDEkNBCAGQTBqIgIgDiAFIAYoArQEIhkgDBCBBSAJIAxJDQUgAiAOIAUgBigCwAQiGCAMEMYEIAcgE0kNBiACIA4gBSAGKALMBCIXIBMQ8ANBBCERQQAhBEEAIQhBBCEHQQAhAkEEIQlBACEDQQQhCiAWRQ0JIAVBCWwiAyAGKALcBCICSwRAIAMgAmsiByAGKALUBCACa0sEQCAGQdQEaiACIAdBBEEEEKQFIAYoAtwEIQILIAYoAtgEIgggAkECdGohCiAHQQJPBH8gB0ECdEEEayIJBEAgCkEAIAn8CwALIAIgB2oiB0EBayECIAggB0ECdGpBBGsFIAoLQQA2AgAgBiACQQFqIgI2AtwECyACIANJDQcgBkEwaiAOIAUgBigC2AQiCiADEPsBIBZBAUYEQEEAIQhBBCEHQQAhAkEEIQkMCgsgBUEPbCICIAYoAugEIghLBEAgAiAIayIJIAYoAuAEIAhrSwRAIAZB4ARqIAggCUEEQQQQpAUgBigC6AQhCAsgBigC5AQiCyAIQQJ0aiEHIAlBAk8EfyAJQQJ0QQRrIhAEQCAHQQAgEPwLAAsgCCAJaiIHQQFrIQggCyAHQQJ0akEEawUgBwtBADYCACAGIAhBAWoiCDYC6AQLIAIgCE0NCEEAIAIgCEG84cEAEOoHAAtBACAMIA9BnOLBABDqBwALQQAgBSANQYziwQAQ6gcACyADIAIgCEHs0cAAEOoHAAsgBSAFQdzRwAAQjAcAC0EAIAwgCkH84cEAEOoHAAtBACAMIAlB7OHBABDqBwALQQAgEyAHQdzhwQAQ6gcAC0EAIAMgAkHM4cEAEOoHAAsgBkEwaiAOIAUgBigC5AQiCSACENABIBZBAk0EQEEAIQhBBCEHDAELIAVBFWwiCCAGKAL0BCIHSwRAIAggB2siECAGKALsBCAHa0sEQCAGQewEaiAHIBBBBEEEEKQFIAYoAvQEIQcLIAYoAvAEIhQgB0ECdGohCyAQQQJPBH8gEEECdEEEayIaBEAgC0EAIBr8CwALIAcgEGoiC0EBayEHIBQgC0ECdGpBBGsFIAsLQQA2AgAgBiAHQQFqIgc2AvQECyAHIAhPBEAgBkEwaiAOIAUgBigC8AQiByAIEKUBDAELQQAgCCAHQazhwQAQ6gcACwJAAkAgG0UEQEECIRAMAQsgBigCgAUiBCAFSQRAIAUgBGsiCyAGKAL4BCAEa0sEQCAGQfgEaiAEIAtBAkECEKQFIAYoAoAFIQQLIAYoAvwEIhEgBEEBdGohECALQQJPBH8gC0EBdEECayIUBEAgEEEAIBT8CwALIAQgC2oiC0EBayEEIBEgC0EBdGpBAmsFIBALQQA7AQAgBiAEQQFqIgQ2AoAFCyAEIAVJDQEgBkEwaiAOIAUgBigC/AQiECAFEJIDIAYoAowFIgQgBUkEQCAFIARrIhEgBigChAUgBGtLBEAgBkGEBWogBCARQQRBBBCkBSAGKAKMBSEECyAGKAKIBSIUIARBAnRqIQsgEUECTwR/IBFBAnRBBGsiGgRAIAtBACAa/AsACyAEIBFqIgtBAWshBCAUIAtBAnRqQQRrBSALC0EANgIAIAYgBEEBaiIENgKMBQsgBCAFSQ0DIAZBMGogDiAFIAYoAogFIhEgBRCTAyAFIQQLIAYgBDYCuAIgBiARNgK0AiAGIAQ2ArACIAYgEDYCrAIgBiAINgKoAiAGIAc2AqQCIAYgAjYCoAIgBiAJNgKcAiAGIAM2ApgCIAYgCjYClAIgBiATNgKQAiAGIBc2AowCIAYgDDYCiAIgBiAYNgKEAiAGIAw2AoACIAYgGTYC/AEgBiAFNgL4ASAGIAE2AvQBIAYgDDYC8AEgBiASNgLsASAGQdgDaiAOIAUgBkHsAWoQ4gEgBSAOaiIOIBVPDQMMAQsLQQAgBSAEQZzhwQAQ6gcAC0EAIAUgBEGM4cEAEOoHAAsgBigChAUiAkUNACAGKAKIBSIDQQRrKAIAIgRBeHEiBSACQQJ0IgJBBEEIIARBA3EiBBtqSQ0FIARBACAFIAJBJ2pLGw0EIAMQogILIAYoAvgEIgIEQCAGKAL8BCIDQQRrKAIAIgRBeHEiBSACQQF0IgJBBEEIIARBA3EiBBtqSQ0FIARBACAFIAJBJ2pLGw0EIAMQogILIAYoAuwEIgIEQCAGKALwBCIDQQRrKAIAIgRBeHEiBSACQQJ0IgJBBEEIIARBA3EiBBtqSQ0FIARBACAFIAJBJ2pLGw0EIAMQogILIAYoAuAEIgIEQCAGKALkBCIDQQRrKAIAIgRBeHEiBSACQQJ0IgJBBEEIIARBA3EiBBtqSQ0FIARBACAFIAJBJ2pLGw0EIAMQogILIAYoAtQEIgIEQCAGKALYBCIDQQRrKAIAIgRBeHEiBSACQQJ0IgJBBEEIIARBA3EiBBtqSQ0FIARBACAFIAJBJ2pLGw0EIAMQogILIAYoAsgEIgIEQCAXQQRrKAIAIgNBeHEiBCACQQJ0IgJBBEEIIANBA3EiAxtqSQ0FIANBACAEIAJBJ2pLGw0EIBcQogILIAYoArwEIgIEQCAYQQRrKAIAIgNBeHEiBCACQQJ0IgJBBEEIIANBA3EiAxtqSQ0FIANBACAEIAJBJ2pLGw0EIBgQogILIAYoArAEIgIEQCAZQQRrKAIAIgNBeHEiBCACQQJ0IgJBBEEIIANBA3EiAxtqSQ0FIANBACAEIAJBJ2pLGw0EIBkQogILIAYoAqQEIgIEQCABQQRrKAIAIgNBeHEiBCACQQJ0IgJBBEEIIANBA3EiAxtqSQ0FIANBACAEIAJBJ2pLGw0EIAEQogILIAYoApgEIgEEQCASQQRrKAIAIgJBeHEiAyABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0FIAJBACADIAFBJ2pLGw0EIBIQogILIAZBuANqIgQgBkHkA2oiAUEQav0AAgD9CwMAIAZByANqIgUgAUEgav0AAgD9CwMAIAYgAf0AAgD9CwOoAyAGKALcAyEBIAYoAtgDIgdBgICAgHhHDQEgBkEANgLgAyAGQoCAgIAQNwLYAyAGQZyTwQA2AvABIAZCoICAgA43AvQBIAYgBkHYA2o2AuwBIAEgBkHsAWoQrwQNBSAGKALYAyECIAYoAtwDIgMgBigC4AMQ7AghBCACBEAgA0EEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgAmpJDQUgBUEAIAcgAkEnaksbDQQgAxCiAgsgAEGAgICAeDYCACAAIAQ2AgQgASABKAIAKAIAEQMAIAZBMGoQwAIgBigCDCEEIAYoAgghAwsgA0UgBEGECElyDQEgBBCbBwwBCyAGKALgAyECIAYoApQEIQMgACAG/QADqAP9CwIMIABBLGogBf0AAwD9CwIAIABBHGogBP0AAwD9CwIAIAAgAzYCRCAAIAI2AkAgACADNgI8IAAgAjYCCCAAIAE2AgQgACAHNgIAIAZBMGoQwAIgBigCCEUNACAGKAIMIgBBhAhJDQAgABCbBwsgBkGQBWokAA8LQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GgnsYAQTcgBkGEBWpBtJPBAEHYnsYAEOAGAAvsWQNIfwN+AnsjAEGQBGsiBCQAIAEoAgAhAiABKAIoIQUgBEEANgJYIARBATYCTCAEQbDdxwA2AkggBEIENwJQIARByABqEJUHIQMCQAJAAkACQCAFQYCAgIB4RgRAIABBgICAgHg2AgAgACADNgIEIAEoArABIQIgASgCtAEiEgRAIAIhAANAIABBKGooAgAiAwRAIABBLGooAgAiBUEEaygCACIGQXhxIgpBBEEIIAZBA3EiBhsgA2pJDQYgBkEAIAogA0EnaksbDQcgBRCiAgsgABC/BCAAQThqIQAgEkEBayISDQALCyABKAKsASIABEAgAkEEaygCACIDQXhxIgUgAEE4bCIAQQRBCCADQQNxIgMbakkNBCADQQAgBSAAQSdqSxsNBSACEKICCyABKAKYASIABEAgASgCnAEiAkEEaygCACIDQXhxIgVBBEEIIANBA3EiAxsgAGpJDQQgA0EAIAUgAEEnaksbDQUgAhCiAgsgAUHwAGoQvwQMAQsgBEE0aiABQSRqKAIANgIAIARBJGogAUEUav0AAgD9CwIAIARBxABqIAFBNGooAgA2AgAgBCABKQIsNwI8IAQgAf0AAgT9CwIUIAMgAygCACgCABEDACAEIAU2AjggBCACNgIQIARB8ABqIAFBmAFq/QADAP0LAwAgBEHYAGogAUGAAWr9AAMA/QsDACAEQegAaiIGIAFBkAFqKQMAIko3AwAgBCAB/QADcP0LA0ggBCBKpyIjQf8BakEIdiIDNgKEAQJAAkACQAJAAkACQAJAAkACQAJAIAMgBCgCME0EQAJ/QQAgBCgCHEUNABogBCkDICAEKQMoQbjdxwBBBRCVBCFKIAQoAhQiAyBKp3EhDyBKQhmIQv8Ag0KBgoSIkKDAgAF+IUwDQAJAIAIgD2opAAAiSyBMhSJKQn+FIEpCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiSlBFBEADQCACIEp6p0EDdiAPaiADcUFsbGoiBUEMaygCAEEFRgRAQbjdxwAgBUEQaygCAEEFENsHRQ0DCyBKQgF9IEqDIkpQRQ0ACwtBACBLIEtCAYaDQoCBgoSIkKDAgH+DUEUNAhogDyAaQQhqIhpqIANxIQ8MAQsLIAVBFGsLIQIgBEEANgKoAyAEQQE2ApwDIARB1N3HADYCmAMgBEIENwKgAyAEQZgDahCVByEPIAJFDQYgDyAPKAIAKAIAEQMAIAItABAhJCACKAIMISUgBEEQaiICQdzdxwBBBRC5BSEDIARBADYCqAMgBEEBNgKcAyAEQfjdxwA2ApgDIARCBDcCoAMgBEGYA2oQlQchDyADRQ0GIA8gDygCACgCABEDACADLQAQISYgAygCDCEnIAJBgN7HAEEFELkFIQMgBEEANgKoAyAEQQE2ApwDIARBnN7HADYCmAMgBEIENwKgAyAEQZgDahCVByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhKCADKAIMISkgAkGk3scAQQUQuQUhAyAEQQA2AqgDIARBATYCnAMgBEHA3scANgKYAyAEQgQ3AqADIARBmANqEJUHIQ8gA0UNBiAPIA8oAgAoAgARAwAgAy0AECEqIAMoAgwhKyACQcjexwBBBRC5BSEDIARBADYCqAMgBEEBNgKcAyAEQeTexwA2ApgDIARCBDcCoAMgBEGYA2oQlQchDyADRQ0GIA8gDygCACgCABEDACADLQAQISwgAygCDCEtIAJB7N7HAEEFELkFIQMgBEEANgKoAyAEQQE2ApwDIARBiN/HADYCmAMgBEIENwKgAyAEQZgDahCVByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhLiADKAIMIS8gAkGQ38cAQQsQuQUhAyAEQQA2AqgDIARBATYCnAMgBEG438cANgKYAyAEQgQ3AqADIARBmANqEJUHIQ8gA0UNBiAPIA8oAgAoAgARAwAgAy0AECEwIAMoAgwhMSACQcDfxwBBCxC5BSEDIARBADYCqAMgBEEBNgKcAyAEQejfxwA2ApgDIARCBDcCoAMgBEGYA2oQlQchDyADRQ0GIA8gDygCACgCABEDACADLQAQITIgAygCDCEzIAJB8N/HAEELELkFIQMgBEEANgKoAyAEQQE2ApwDIARBmODHADYCmAMgBEIENwKgAyAEQZgDahCVByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhNCADKAIMITUgAkGg4McAQQsQuQUhAyAEQQA2AqgDIARBATYCnAMgBEHI4McANgKYAyAEQgQ3AqADIARBmANqEJUHIQ8gA0UNBiAPIA8oAgAoAgARAwAgAy0AECE2IAMoAgwhNyACQdDgxwBBCxC5BSEDIARBADYCqAMgBEEBNgKcAyAEQfjgxwA2ApgDIARCBDcCoAMgBEGYA2oQlQchDyADRQ0GIA8gDygCACgCABEDACADLQAQITggAygCDCE5IAJBgOHHAEELELkFIQMgBEEANgKoAyAEQQE2ApwDIARBqOHHADYCmAMgBEIENwKgAyAEQZgDahCVByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhOiADKAIMITtBCCEeQQghHyACQbDhxwBBBRC5BSICBEAgAigCDCE8IAItABAhHwsgBEEQakG14ccAQQUQuQUiAgRAIAIoAgwhPSACLQAQIR4LQQghGkEIISAgBEEQakG64ccAQQUQuQUiAgRAIAIoAgwhPiACLQAQISALIARBEGpBv+HHAEEFELkFIgIEQCACKAIMIT8gAi0AECEaC0EIISFBCCEiIARBEGpBxOHHAEEFELkFIgIEQCACKAIMIUAgAi0AECEiCyAEQRBqQcnhxwBBBRC5BSICBEAgAigCDCFBIAItABAhIQsgBEHIAGoiAkHO4ccAQQ8QuQUhAyAEQQA2AqgDIARBATYCnAMgBEGA4scANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgA0UNBSASIBIoAgAoAgARAwAgAy0AECFCIAMoAgwhQyACQYjixwBBDxC5BSEDIARBADYCqAMgBEEBNgKcAyAEQbjixwA2ApgDIARCBDcCoAMgBEGYA2oQlQchEiADRQ0FIBIgEigCACgCABEDACADLQAQIUQgAygCDCFFIAJBwOLHAEEMELkFIQMgBEEANgKoAyAEQQE2ApwDIARB7OLHADYCmAMgBEIENwKgAyAEQZgDahCVByESIANFDQUgEiASKAIAKAIAEQMAIAMtABAhRiADKAIMIUcgAkH04scAQQwQuQUhAiAEQQA2AqgDIARBATYCnAMgBEGg48cANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgAkUNBSASIBIoAgAoAgARAwAgAUE4aiEcIAItABAhSCACKAIMIUkgASgCYEGAgICAeEYNByABKAJYICNHDQggBEHUAWqtQoCAgIAQhCFKQQAhEgNAAkAgBCASNgLUASAEQQE2ApwDIARBiNDHADYCmAMgBEIBNwKkAyAEIEo3A9gBIAQgBEHYAWo2AqADIARB0ANqIARBmANqELEGIBwgBCgC1AMiAyAEKALYAxC5BSAEKALQAyECRQ0AIAIEQCADIAJBARCiBwsgBCgC1AFB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DUEBaiINNgJsDAALAAsgASACQe8BakH4v8EAEO4BIQQMBwsgAkEQaiAGIAMgBCADIAMgBEsbEPkBIAIoAhQhAyACKAIQIQVBFBBxIgRFDQMLIAQgBTYCDCAEQRg2AgAgBCADNgIQDAMLIAUgCBDrBSEEDAILIAJBCGogBSADIAQgAyADIARLGxD5ASACKAIMIQMgAigCCCEEQRQQcSIBRQ0AIAEgBDYCDCABQRg2AgAgACABNgIEIABBgICAgHg2AgAgASADNgIQDAULAAtBgICAgHghAyACKAJkIgVFDQAgAigCaCIGQQRrKAIAIgdBeHEiCSAFQShsIgVBBEEIIAdBA3EiBxtqSQ0EIAdBACAJIAVBJ2pLGw0FIAYQogILIAEgAS0AGEEBajoAGCACIAEQugMiBTYCvAEgAiANNgK4ASACIAQ2ArQBIAIgAzYCsAEgA0GAgICAeEcEQCAFRQ0CIAMEQCAEQQRrKAIAIgZBeHEiByADQShsIgNBBEEIIAZBA3EiBhtqSQ0HIAZBACAHIANBJ2pLGw0IIAQQogILIAUhBAwBCyAFRQ0AIAJBvAFqELEECyAEIAEQ6wUhASAAQYCAgIB4NgIAIAAgATYCBAwBCyAAIA02AgggACAENgIEIAAgAzYCAAsgAkHwAWokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvfFwIafwJ8IwBBsARrIgMkACADQgA3A5gBIANCADcDkAEgA0IANwOIASADQgA3A4ABIANCADcDeCADQgA3A3AgA0IANwNoIANCADcDYCADQgA3A1ggA0IANwNQIANCADcDSCADQgA3A0AgA0IANwM4IANCADcDMCADQgA3AyggA0IANwMgIANCADcDGCADQgA3AxAgA0IANwMIIANCADcDACADQgA3A7gCIANCADcDsAIgA0IANwOoAiADQgA3A6ACIANCADcDmAIgA0IANwOQAiADQgA3A4gCIANCADcDgAIgA0IANwP4ASADQgA3A/ABIANCADcD6AEgA0IANwPgASADQgA3A9gBIANCADcD0AEgA0IANwPIASADQgA3A8ABIANCADcDuAEgA0IANwOwASADQgA3A6gBIANCADcDoAEgA0IANwPYAyAD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AgBB3o7IAEEBIAEoAgQoAgwRAAAhAwwLCyABKAIAQZjMxABBESABKAIEKAIMEQAAIQMMCgtBASEDIAIgAEEBajYCDCABKAIAIgBBqczEAEERIAEoAgQiBSgCDCIEEQAADQkCQCABLQAKQYABcUUEQCAAQbuzxQBBASAEEQAADQsgAkEMaiABEMQERQ0BDAsLIABB24HCAEECIAQRAAANCiACQQE6ABMgAiAFNgIYIAIgADYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqEMQEDQogAigCIEHZgcIAQQIgAigCJCgCDBEAAA0KCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCQtBASEDIAEoAgAiBEG6zMQAQRkgASgCBCIGKAIMIgURAAANCCAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQogACABEKcERQ0BDAoLIARB24HCAEECIAURAAANCSACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQkgAigCIEHZgcIAQQIgAigCJCgCDBEAAA0JCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCAtBASEDIAEoAgAiBEHTzMQAQRogASgCBCIGKAIMIgURAAANByAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQkgACABEKcERQ0BDAkLIARB24HCAEECIAURAAANCCACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQggAigCIEHZgcIAQQIgAigCJCgCDBEAAA0ICyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBwtBASEDIAEoAgAiBEHtzMQAQRsgASgCBCIGKAIMIgURAAANBiAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEKcERQ0BDAgLIARB24HCAEECIAURAAANByACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCAC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LQAAQQNrDgUBAAAAAgALIAAgARDKAgwFCyAAKQMIIglC/////////weDIQogCUL///////////8Ag0L/////////9/8AWARAIAlCNIinIQAgCUIAUw0CIAJBsAJqDAMLQeydxgBB753GACAJQgBZIgAbQfOdxgAgClAiAxshBEEDQQQgABtBAyADGyEADAMLIAEoAgBB8ZLGAEEEIAEoAgQoAgwRAAAMAwsgAkEtOgCwAkEBIQggAkGxAmoLIQYCfwJAAkACQAJAAkACQAJAAkAgAEH/D3EiAEUgClBxRQRAIABBAkkgCkIAUnIhBCAKQoCAgICAgIAIhCAKIAAbIglCAoYhCiAJQgGDIQ8CQAJAAkAgAEG1CGtBzHcgABsiAEEASARAIAJBkAJqQYC8xQAgACAAQYWiU2xBFHYgAEF/R2siAGoiB0EEdCIDaykDACIJIApCAoQiCxDdBiACQYACakGIvMUAIANrKQMAIg0gCxDdBiACQfABaiACKQOYAiILIAIpA4ACfCIMIAIpA4gCIAsgDFatfCAAIAdBsdm1H2xBE3ZrQfwAakH/AHFBwABzIgMQoQcgAkGwAWogCSAKIARBf3OsfCILEN0GIAJBoAFqIA0gCxDdBiACQZABaiACKQO4ASILIAIpA6ABfCIMIAIpA6gBIAsgDFatfCADEKEHIAJB4AFqIAkgChDdBiACQdABaiANIAoQ3QYgAkHAAWogAikD6AEiCSACKQPQAXwiDSACKQPYASAJIA1WrXwgAxChByACKQPAASELIAIpA5ABIQkgAikD8AEhDCAAQQJJDQFBACEDIABBP0kNAgwFCyACQYABaiAAQcHoBGxBEnYgAEEDS2siB0EEdCIDKQPg5EUiCSAKQgKEIg0Q3QYgAkHwAGogA0Ho5MUAaikDACILIA0Q3QYgAkHgAGogAikDiAEiDCACKQNwfCIOIAIpA3ggDCAOVq18IAcgAGsgB0HPpsoAbEETdmpB/QBqQf8AcUHAAHMiABChByACQSBqIAkgCiAEQX9zrHwiDBDdBiACQRBqIAsgDBDdBiACIAIpAygiDCACKQMQfCIOIAIpAxggDCAOVq18IAAQoQcgAkHQAGogCSAKEN0GIAJBQGsgCyAKEN0GIAJBMGogAikDWCIJIAIpA0B8IgsgAikDSCAJIAtWrXwgABChByACKQMw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ACABIAA2ArADQdjmyABBKyABQbADakHY6MAAQbDwwAAQ4AYAC0G4u8kAQQA2AgBBtLvJAEEAOgAAIARBhAhPBEAgBBCbBwsgA0GECE8EQCADEJsHCyACQQRrKAIAIgNBeHEiBEHwAUH0ASADQQNxIgMbSQ0CIANBACAEQZQCTxsNACACEKICIAAgBjYCBCAAQQA2AgAgAUHgCWokAA8LC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAvFFwICfwF+IwBBQGoiAiQAIAEoAgQhAyABKAIAIQECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCACIALQAAQQFrDiMBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhsjHB0eHyAhIgALIAIgAEEEajYCBCACIABBCGo2AiAgAiAAQQxqNgIkIAIgAkEkaq1CgICAgLAMhDcDGCACQoCAgIDADCIEIAJBIGqthDcDECACIAQgAkEEaq2ENwMIIAJCAzcCNCACQQQ2AiwgAkHsncUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwrCyABQYyexQBBFiADKAIMEQAADCoLIAFBop7FAEElIAMoAgwRAAAMKQsgAUHHnsUAQR4gAygCDBEAAAwoCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGIn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwnCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkG8n8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwmCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkHsn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwlCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGcoMUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwkCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkHYoMUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwjCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGEocUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwiCyACIABBBGo2AiAgAiAAQQhqNgIkIAJCgICAgNAMIgQgAkEgaq2ENwMQIAIgBCACQSRqrYQ3AwggAkICNwI0IAJBAzYCLCACQcChxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDCELIAIgAEEEajYCICACIABBCGo2AiQgAkKAgICA0AwiBCACQSRqrYQ3AxAgAiAEIAJBIGqthDcDCCACQgI3AjQgAkEDNgIsIAJB/KHFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMIAsgAiAAQQFqNgIEIAIgAEEEajYCICACIABBCGo2AiQgAiACQQRqrUKAgICA4AyENwMYIAJCgICAgNAMIgQgAkEkaq2ENwMQIAIgBCACQSBqrYQ3AwggAkIDNwI0IAJBBDYCLCACQfSixQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDB8LIAIgAEECajYCICACIABBAWo2AiQgAiACQSBqrUKAgICA8AyENwMQIAIgAkEkaq1CgICAgMAIhDcDCCACQgI3AjQgAkEDNgIsIAJB6KPFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMHgsgAUGApMUAQSEgAygCDBEAAAwdCyACIABBAmo2AiAgAiAAQQFqNgIkIAIgAkEkaq1CgICAgPAMhDcDECACIAJBIGqtQoCAgIDgDIQ3AwggAkICNwI0IAJBAjYCLCACQdCkxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDBwLIAIgAEEBajYCJCACIAJBJGqtQoCAgIDgDIQ3AwggAkIBNwI0IAJBAjYCLCACQYilxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDBsLIAFBmKXFAEEYIAMoAgwRAAAMGgsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBxKXFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMGQsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJB6KXFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMGAsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBjKbFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMFwsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBsKbFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMFgsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJB5KbFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMFQsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBlKfFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMFAsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBwKfFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMEwsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJB6KfFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMEgsgAiAAQQFqNgIkIAIgAkEkaq1CgICAgMAIhDcDCCACQgE3AjQgAkECNgIsIAJBlKjFADYCKCACIAJBCGo2AjAgASADIAJBKGoQwQMMEQsgAUGkqMUAQRsgAygCDBEAAAwQCyABQdeoxQBBNyADKAIMEQAADA8LIAAtAAFBAWsOBwcICQoLDA0GCyABQbSsxQBBHyADKAIMEQAADA0LIAIgAEEBajYCJCACIAJBJGqtQoCAgICwDIQ3AwggAkIBNwI0IAJBAjYCLCACQfisxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDAwLIAIgAEEBajYCJCACIAJBJGqtQoCAgICwDIQ3AwggAkIBNwI0IAJBATYCLCACQZytxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDAsLIAIgAEEBajYCJCACIAJBJGqtQoCAgICwDIQ3AwggAkIBNwI0IAJBATYCLCACQcStxQA2AiggAiACQQhqNgIwIAEgAyACQShqEMEDDAoLIAFBzK3FAEEQIAMoAgwRAAAMCQsgAiAAQQFqNgIkQQEgAUG/qMUAQRggAygCDBEAAA0IGiACQQE2AiwgAkGg+McANgIoIAJCATcCNCACIAJBJGqtQoCAgICADYQ3AwggAiACQQhqNgIwIAEgAyACQShqEJ4JDAgLIAJBADYCOCACQQE2AiwgAkG0qcUANgIoIAJCBDcCMCABIAMgAkEoahCeCQwHCyACQQA2AjggAkEBNgIsIAJB5KnFADYCKCACQgQ3AjAgASADIAJBKGoQngkMBgsgAkEANgI4IAJBATYCLCACQYyqxQA2AiggAkIENwIwIAEgAyACQShqEJ4JDAULIAJBADYCOCACQQE2AiwgAkG0qsUANgIoIAJCBDcCMCABIAMgAkEoahCeCQwECyACQQA2AjggAkEBNgIsIAJB8KrFADYCKCACQgQ3AjAgASADIAJBKGoQngkMAwsgAkEANgI4IAJBATYCLCACQayrxQA2AiggAkIENwIwIAEgAyACQShqEJ4JDAILIAJBADYCOCACQQE2AiwgAkH8q8UANgIoIAJCBDcCMCABIAMgAkEoahCeCQwBCyACQQA2AjggAkEBNgIsIAJBrKzFADYCKCACQgQ3AjAgASADIAJBKGoQngkLIAJBQGskAAvOFgIHfQ5/IwBBIGsiDiQAIAAQowUgAEHAAWpBADoAACAAQgA3ArgBIAAgAhDQBAJAAkAgACgCEEEBRw0AIAAoAhhFDQACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkAgAkECdCINIhEgACgCfCISTQRAIAAoAogBIhMgEU8EQCAAKAJ4IRcgACgChAEhGCACRQ0NQQAgDWshGUEBIRVBFCEMQQMhDQJ/AkADQAJAAn8CQAJAAkACfwJAAkACQAJ/AkACQAJAAkACQAJAAkAgBCAMQRRrSwRAIAxBE2sgBE8NASAMQRJrIARPDQIgDUEDayIPIBFJDQMgDyENDAQLIAxBFGsMDwsgDEETawwKCyAMQRJrDAULQwAAf0MgA0EEaioCACIIiyIFQwAAgD9DAAD4QUMAAAAAIAMqAgAiCYsiBiAFIANBCGoqAgAiCosiCxDgCBDgCBCeBY5DAABwQZIiBSAFQwAAAABdGyIFIAVDAAD4QV4bELkH/AAiD0EPaxCwBkMAAH9DlSIFlSIHIAdDAAB/Q14bELkHIQcgFCAXaiIQQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgD0EbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAMQRFrIARPDQsgDEEQayAETw0HIAxBD2sgBE8NAyARIA1BAmtLBEBDAAB/QyADQRBqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EMaioCACIJiyIGIAUgA0EUaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIPQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAQQQRqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgD0EbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAMQQ5rIARPDQsgDEENayAETw0HIAxBDGsgBE8NAyARIA1BAWtLBEBDAAB/QyADQRxqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EYaioCACIJiyIGIAUgA0EgaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIPQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAQQQhqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgD0EbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAMQQtrIARPDQsgDEEKayAETw0HIAxBCWsgBE8NAyANIBFPDQJDAAB/QyADQShqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EkaioCACIJiyIGIAUgA0EsaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIPQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAQQQxqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgD0EbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAMQQhrIARPDR4gDEEHayAETw0aIAxBBmsgBE8NFiANIBlqIhBBA0cNDyANQQNrDBILIA1BAWshDQwBCyANQQJrIQ0LIA0gEUGovsEAEIwHAAsgDEEJawwCCyAMQQxrDAELIAxBD2sLIARBmL7BABCMBwALIAxBCmsMAgsgDEENawwBCyAMQRBrCyAEQYi+wQAQjAcACyAMQQtrDAILIAxBDmsMAQsgDEERawsgBEH4vcEAEIwHAAtDAAB/QyADQTRqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EwaioCACIJiyIGIAUgA0E4aioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIWQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAUIBhqIg9DAAB/QyAGIAWVIgYgBkMAAH9DXhsQuQf8ASAWQRt0QYCAgAhBACAJQwAAAABdG3JBgICAEEEAIAhDAAAAAF0bckGAgIAgQQAgCkMAAAAAXRtyciAH/AFBCHRyQwAAf0MgCyAFlSIFIAVDAAB/Q14bELkH/AFBEHRyNgIAIAxBBWsgBE8NDSAMQQRrIARPDQkgDEEDayAETw0FIBBBAkYNAUMAAH9DIANBQGsqAgAiCIsiBUMAAIA/QwAA+EFDAAAAACADQTxqKgIAIgmLIgYgBSADQcQAaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIWQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAPQQRqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgFkEbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAMQQJrIARPDQwgDEEBayAETw0IIAQgDE0NByAQQQFHBEBDAAB/QyADQcwAaioCACIIiyIFQwAAgD9DAAD4QUMAAAAAIANByABqKgIAIgmLIgYgBSADQdAAaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIQQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAPQQhqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgEEEbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACAUQRBqIRQgDEEVaiEMIANB1ABqIQMgDUEEaiENIAIgFUsgFUEBaiEVDQEMEQsLIA1BAWsMAQsgDUECawsgEUHovcEAEIwHAAtBACARIBNBqL3BABDqBwALQQAgESASQbi+wQAQ6gcACyAMQQNrIQwMAQsgDEEGayEMCyAMIARB2L3BABCMBwALIAxBAWsMAgsgDEEEawwBCyAMQQdrCyAEQci9wQAQjAcACyAMQQJrDAILIAxBBWsMAQsgDEEIawsgBEG4vcEAEIwHAAsgDiAAKAIUIAFBAnQiAyABIAJqQQJ0IgIQ4QgiARC4CiIENgIAIA4gEjYCBCAEIBJHDQEgASAXIBIQ4AkgAUGECE8EQCABEJsHCyAOIAAoAhwgAyACEOEIIgAQuAoiATYCACAOIBM2AgQgASATRw0BIAAgGCATEOAJIABBhAhJDQAgABCbBwsgDkEgaiQADwsgDkEANgIIQQAgDiAOQQRqIA5BCGpB4PnEABD1BwALvhQBDn8jAEEgayIQJAACQAJAIAFBIUkEQCAAIQkgASEKDAELIAJBBGshESACQRBrIRICQAJAA0AgBEUEQCAAIAEgAiADQQEQ3QEMBQsgACABQQN2IghBHGxqIQYgACAIQQR0aiEJIARBAWshBCAQAn8gAUHAAE8EQCAAIAkgBiAIEMIGDAELIAAgBiAJIAAoAgAiCCAJKAIAIglJIgcgCSAGKAIAIgZJcxsgByAGIAhLcxsLIg0oAgAiBjYCBCANIABrQQJ2IQwCQAJAIAUEQCAFKAIAIAZPDQELIAEgA0sNAyACIAFBAnQiE2ohB0EAIQogACEGIAwhCANAIAAgCEEDayIJQQAgCCAJTxtBAnRqIg4gBksEQCANKAIAIQkDQCAKQQJ0IAIgB0EEayAGKAIAIgsgCUkiDxtqIAs2AgAgCiAPaiIKQQJ0IAIgB0EIayAGQQRqKAIAIgsgCUkiDxtqIAs2AgAgCiAPaiIKQQJ0IAIgB0EMayAGQQhqKAIAIgsgCUkiDxtqIAs2AgAgCiAPaiIKQQJ0IAIgB0EQayIHIAZBDGooAgAiCyAJSSIPG2ogCzYCACAKIA9qIQogBkEQaiIGIA5JDQALCyAAIAhBAnRqIgkgBksEQCANKAIAIQ4DQCAKQQJ0IAIgB0EEayIHIAYoAgAiCyAOSSIPG2ogCzYCACAKIA9qIQogBkEEaiIGIAlJDQALCyABIAhHBEAgB0EEayIHIApBAnRqIAYoAgA2AgAgBkEEaiEGIAEhCAwBCwsgCkECdCIOBEAgACACIA78CgAACyABIAprIQsCQCABIApGDQBBACEJIAtBBE8EQCAAIA5qIQYgEiATaiEHIAtBfHEiCSEIA0AgBiAH/QACAP0MAAAAAAAAAAAAAAAAAAAAAP0NDA0ODwgJCgsEBQYHAAECA/0LAgAgB0EQayEHIAZBEGohBiAIQQRrIggNAAsgCSALRg0BCyARIBMgCUECdCIIa2ohBiAAIAhqIA5qIQcgCSABayAKaiEIA0AgByAGKAIANgIAIAZBBGshBiAHQQRqIQcgCEEBaiIIDQALCyAKRQ0AIAEgCk8NASAQQQA2AhggEEEBNgIMIBBBiILIADYCCCAQQgQ3AhAgEEEIakH0lMEAEI0IAAsgASADSw0CIAIgAUECdCIOaiEHQQAhCCAAIQYDQCAAIAxBA2siBUEAIAUgDE0bQQJ0aiIJIAZLBEAgDSgCACEFA0AgCEECdCACIAdBBGsgBSAGKAIAIgpPIgsbaiAKNgIAIAggC2oiCEECdCACIAdBCGsgBSAGQQRqKAIAIgpPIgsbaiAKNgIAIAggC2oiCEECdCACIAdBDGsgBSAGQQhqKAIAIgpPIgsbaiAKNgIAIAggC2oiCEECdCACIAdBEGsiByAFIAZBDGooAgAiCk8iCxtqIAo2AgAgCCALaiEIIAZBEGoiBiAJSQ0ACwsgACAMQQJ0aiIFIAZLBEAgDSgCACEJA0AgCEECdCACIAdBBGsiByAJIAYoAgAiCk8iCxtqIAo2AgAgCCALaiEIIAZBBGoiBiAFSQ0ACwsgASAMRwRAIAIgCEECdGogBigCADYCACAGQQRqIQYgCEEBaiEIIAdBBGshByABIQwMAQsLIAhBAnQiDQRAIAAgAiAN/AoAAAsgASAIRg0FIAAgDWohCUEAIQwCQCABIAhrIgpBBE8EQCAOIBJqIQYgCSEHIApBfHEiDCEFA0AgByAG/QACAP0MAAAAAAAAAAAAAAAAAAAAAP0NDA0ODwgJCgsEBQYHAAECA/0LAgAgBkEQayEGIAdBEGohByAFQQRrIgUNAAsgCiAMRg0BCyARIAxBAnQiBWsgDmohBiAAIAVqIA1qIQcgDCABayAIaiEFA0AgByAGKAIANgIAIAZBBGshBiAHQQRqIQcgBUEBaiIFDQALCyABIAhJDQNBACEFIAkhACAKIgFBIUkNBAwBCyAAIA5qIAsgAiADIAQgEEEEahCVASAKIgFBIU8NAAsgACEJDAILAAsgCCABIAFBhJXBABDqBwALIApBAkkNACAKQQF2IQEgAQJ/IApBD00EQCAKQQdLBEAgAiAJQQhBDCAJKAIMIAkoAghJIgUbaiIIKAIAIgAgCSAJKAIEIgYgCSgCACIHT0ECdGoiAygCACIEIAAgBEsbNgIMIAIgCUEMQQggBRtqIgUoAgAiDCAJIAYgB0lBAnRqIgcoAgAiBiAGIAxLIgYbNgIAIAIgCCADIAUgBhsgACAESSIEGygCACIAIAcgBSADIAQbIAYbKAIAIgMgACADSxs2AgggAiAAIAMgACADSRs2AgQgAiABQQJ0IgBqIgMgACAJaiIAQQhBDCAAKAIMIAAoAghJIggbaiIMKAIAIgQgACAAKAIEIgcgACgCACINT0ECdGoiBSgCACIGIAQgBksbNgIMIAMgAEEMQQggCBtqIggoAgAiDiAAIAcgDUlBAnRqIg0oAgAiACAAIA5LIgcbNgIAIAMgDCAFIAggBxsgBCAGSSIEGygCACIAIA0gCCAFIAQbIAcbKAIAIgQgACAESRs2AgQgAyAAIAQgACAESxs2AghBBAwCCyACIAkoAgA2AgAgAiABQQJ0IgBqIAAgCWooAgA2AgBBAQwBCyAJIAIgAiAKQQJ0aiIAEMwCIAkgAUECdCIDaiACIANqIABBIGoQzAJBCAsiAEsEQCAAQQJ0IQQgAEEBaiEGIAAhBwNAIAYhAyACIAdBAnQiBWoiBiAFIAlqKAIAIgU2AgAgBkEEaygCACIHIAVLBEAgBCEGAn8DQCACIAZqIgggBzYCACACIAZBBEYNARogBkEEayEGIAUgCEEIaygCACIHSQ0ACyACIAZqCyAFNgIACyAEQQRqIQQgAyABIANLIgVqIQYgAyEHIAUNAAsLIAIgAUECdCIDaiEFIAogAWsiBCAASwRAIAMgCWohDCAAQQJ0IQggAEEBaiEGA0AgBiEDIAUgAEECdCIAaiIGIAAgDGooAgAiADYCACAGQQRrKAIAIgcgAEsEQCAIIQYCfwNAIAUgBmoiDSAHNgIAIAUgBkEERg0BGiAGQQRrIQYgACANQQhrKAIAIgdJDQALIAUgBmoLIAA2AgALIAhBBGohCCADIAMgBEkiB2ohBiADIQAgBw0ACwsgBUEEayEIIAIgCkECdEEEayIAaiEMIAAgCWohBANAIAkgBSgCACIGIAIoAgAiByAGIAdJIg0bNgIAIAQgDCgCACIAIAgoAgAiAyAAIANLGzYCACAEQQRrIQQgCUEEaiEJIAhBfEEAIAAgA0kbaiEIIAxBfEEAIAAgA08baiEMIAIgBiAHT0ECdGohAiAFIA1BAnRqIQUgAUEBayIBDQALIAhBBGohACAKQQFxBH8gCSACIAUgACACSyIBGygCADYCACAFIAAgAk1BAnRqIQUgAiABQQJ0agUgAgsgAEYgBSAMQQRqRnENABCACAALIBBBIGokAAv/EwIKfwZ+QQghBQJAIAFBBEkNACAALQAAIgIgAC0AAUcNACABrSEOIAAtAAMhByAALQACIQMCQAJAAkACQAJ+AkACQAJAAkACQAJAAkACQCACQckAaw4FAA0NDQENCyADQSpHIAdyDQwgAUF8cUEERg0BIAA1AAQhDAwICyADIAdBKkdyDQsgAUF8cUEERg0BIAAoAAQhBAwCC0GokMgAKQMAIg2nQf8BcSICQQRGDQYgAkEDRw0KIA1CIIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0JIAMgACACKAIIEKIHDAkLQaiQyAApAwAiDadB/wFxIgJBBEcNAQsgASAEQRh0IARBgP4DcUEIdHIgBEEIdkGA/gNxIARBGHZycq0iECAOIA4gEFYbpyICa0ECSQ0BIAAgAmovAAAhAkEEIQUMAgsgAkEDRw0HIA1CIIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0GIAMgACACKAIIEKIHDAYLQQAhAkGokMgAKQMAIg1CCIghDyANpyEFIA4gDUL/AYNCBFINARoLIBBCAnwLIQwgBUH/AXEiA0EERgRAQQghBUEAIQRBqJDIACkDACIPQv8BgyERIA9CCIghECAPpyEDIAJBCHQgAkGA/gNxQQh2ckH//wNxIQcDQCAEQf//A3EgB08NBgJ+AkAgASAMIA4gDCAOVBunIgJrQQJPBEAgACACai8AAEGBJEYhCEEEIQJCACENDAELQQAhCCAQIQ0gAyECIA4gEUIEUg0BGgsgDEICfAshDCACQf8BcSICQQRHBEAgAkEDRw0HIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0GIAMgACACKAIIEKIHDAYLAn4CQCABIAwgDiAMIA5UG6ciAmtBAk8EQCAAIAJqLwAAQYAGRiEJQQQhAkIAIQ0MAQtBACEJIBAhDSADIQIgDiARQgRSDQEaCyAMQgJ8CyEMIAJB/wFxIgJBBEcEQCACQQNHDQcgDUIYiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQYgAyAAIAIoAggQogcMBgsCfgJAIAEgDCAOIAwgDlQbpyICa0EETwRAIAAgAmooAABBgICACEYhCkEEIQJCACENDAELQQAhCiAQIQ0gAyECIA4gEUIEUg0BGgsgDEIEfAshDCACQf8BcSICQQRHBEAgAkEDRw0HIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0GIAMgACACKAIIEKIHDAYLAn4CQCABIAwgDiAMIA5UG6ciAmtBAk8EQCAAIAJqLwAAIQZBBCECQgAhDQwBC0EAIQYgECENIAMhAiAOIBFCBFINARoLIAxCAnwLIQwCQCACQf8BcUEERgRAIAEgDCAOIAwgDlQbp2tBAUsiAiADQf8BcSILQQRGcg0BIAtBA0cNCCAPQiCIpyIBKAIAIQMgAUEEaigCACICKAIAIgAEQCADIAARAwALIAIoAgQiAEUNByADIAAgAigCCBCiBwwHCyACQf8BcUEDRw0HIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0GIAMgACACKAIIEKIHDAYLIARBAWohBCAMQgJ8Ig0gDSAOIBFCBFEbIAIbIQwgCCAJcSAKcUUNAAtB/wEgBkEIdCAGQYD+A3FBCHZyQf//A3EiACAAQf8BTxtBAWsiAUH/AXFBB0sNBQwCC0EIIQUgA0EDRw0EIA9CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0DIAMgACACKAIIEKIHDAMLAn4CQCABIAwgDiAMIA5UG6ciAmtBAk8EQCAAIAJqLwAAIQJBBCEEDAELQQAhAkGokMgAKQMAIg1CCIghDyANpyEEIA4gDUL/AYNCBFINARoLIAxCAnwLIQwgBEH/AXEiA0EERw0BQQAhBEGokMgAKQMAIg9C/wGDIREgD0IIiCEQIA+nIQMgAkH//wNxIQcDQCAEQf//A3EgB08NBAJ+AkAgASAMIA4gDCAOVBunIgJrQQJPBEAgACACai8AAEGSAkYhCEEEIQJCACENDAELQQAhCCAQIQ0gAyECIA4gEUIEUg0BGgsgDEICfAshDCACQf8BcSICQQRHBEAgAkEDRw0FIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0EIAMgACACKAIIEKIHDAQLAn4CQCABIAwgDiAMIA5UG6ciAmtBAk8EQCAAIAJqLwAAQQNGIQlBBCECQgAhDQwBC0EAIQkgECENIAMhAiAOIBFCBFINARoLIAxCAnwLIQwgAkH/AXEiAkEERwRAIAJBA0cNBSANQhiIpyIBKAIAIQMgAUEEaigCACICKAIAIgAEQCADIAARAwALIAIoAgQiAEUNBCADIAAgAigCCBCiBwwECwJ+AkAgASAMIA4gDCAOVBunIgJrQQRPBEAgACACaigAAEEBRiEKQQQhAkIAIQ0MAQtBACEKIBAhDSADIQIgDiARQgRSDQEaCyAMQgR8CyEMIAJB/wFxIgJBBEcEQCACQQNHDQUgDUIYiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQQgAyAAIAIoAggQogcMBAsCfgJAIAEgDCAOIAwgDlQbpyICa0ECTwRAIAAgAmovAAAhBkEEIQJCACENDAELQQAhBiAQIQ0gAyECIA4gEUIEUg0BGgsgDEICfAshDCACQf8BcSICQQRHBEAgAkEDRw0FIA1CGIinIgEoAgAhAyABQQRqKAIAIgIoAgAiAARAIAMgABEDAAsgAigCBCIARQ0EIAMgACACKAIIEKIHDAQLIAEgDCAOIAwgDlQbp2tBAUsiAiADQf8BcSILQQRGckUEQCALQQNHDQUgD0IgiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQQgAyAAIAIoAggQogcMBAsgBEEBaiEEIAxCAnwiDSANIA4gEUIEURsgAhshDCAIIAlxIApxRQ0AC0H/ASAGIAZB/wFPG0EBayIBQf8BcUEITw0DC0KAiIio4KDAgwMgAUEDdK1C+AGDiKchBQwCCyADQQNHDQEgD0IYiKciASgCACEDIAFBBGooAgAiAigCACIABEAgAyAAEQMACyACKAIEIgBFDQAgAyAAIAIoAggQogcLIAFBDEEEEKIHQQgPCyAFC4UVAiF/Dn0jAEEQayIRJAAgACABIAIQzAMCQAJAAkACQCADKAIEIhJFBEAgAygCDCEIDAELAkAgAygCDCIIRQ0AIAMoAhQiGEUNACADKAIcIhlFDQAgAygCJCIVRQ0AIAJFDQJDAAAAQEMAAIA/IAAtAJwBGyExIAJBDGwhGyAAKgKMASAAKgKIASIpkyEqIAAqAoQBIAAqAoABIiuTISwgACgCZCEaIAAoAmAhHCADKAIgIR0gAygCGCEeIAMoAhAhHyADKAIIISAgAygCACEhIAghEAJAAkACQAJAAkACQANAIBogBEEEaiILSQRAIAQgCyAaQYThwAAQ6gcACyAGIBJPDQYgEiAGayIFQQAgBSASTRsiBUEBRg0EIAVBAkYNBQJAAkACQCAQBEACQAJAIAYgGE8NAAJAAkAgFyAYakEBaw4CAAEDCyAGQQFqIQYMAQsgBkECaiEGCyAGIBhBtOHAABCMBwALAkACQCAGIBlPDQACQAJAIBcgGWpBAWsOAgABAwsgBkEBaiEGDAELIAZBAmohBgsgBiAZQZThwAAQjAcACyAEIBVPDQcCQCAVIARrIgVBACAFIBVNG0EBaw4DBAYHAAsgEyAhaiIFKAIAIQkgBUEIaigCACEUIAVBBGooAgAhCiAEICBqKgIAIBMgH2oiBCoCACEmIARBCGoqAgAhKCAEQQRqKgIAIScgEyAeaiIEKgIAIS0gBEEIaioCACEuIARBBGoqAgAhLyAWIB1qIgQqAgAhJSARIARBBGoqAgA4AgQgESAlOAIAIBEgBEEIaikCADcCCEMAAH9DQwAAAAAgJyArkyAslUMAAH9DlCIlICVDAAAAAF0bIiUgJUMAAH9DXhsQuQciMEMAAAAAYCEiIDD8ASEjQwAAf0NDAAAAACAoICuTICyVQwAAf0OUIiUgJUMAAAAAXRsiJSAlQwAAf0NeGxC5ByIoQwAAAABgISQgKPwBIQxDAAB/Q0MAAAAAICYgK5MgLJVDAAB/Q5QiJSAlQwAAAABdGyIlICVDAAB/Q14bELkHISYgMZUhJyAJQf///wNxIQUgCUGAgICAeHEhBCAJQYCAgPwHcSIHQYCAgPwHRgRAIARBEHYgBUENdnJBgARBACAFG3JBgPgBciENDAMLIARBEHYhDSAHQYCAgLgESw0BIAdBgICAxANPBEAgCUEMdiAJQf/fAHFBAEdxIAdBDXYgBUENdmpBgIABaiANcmohDQwDCyAHQYCAgJgDSQ0CIAVBgICABHIiCUH+ACAHQRd2IgVrdiEEIAlBHSAFayIFdkEBcQR/IARBAyAFdEEBayAJcUEAR2oFIAQLIA1yIQ0MAgsgCCAIQfTgwAAQjAcACyANQYD4AXIhDQsgCkH///8DcSEFIApBgICAgHhxIQQCQCAKQYCAgPwHcSIHQYCAgPwHRwRAIARBEHYhDiAHQYCAgLgETQRAIAdBgICAxANPBEAgCkEMdiAKQf/fAHFBAEdxIAdBDXYgBUENdmpBgIABaiAOcmohDgwDCyAHQYCAgJgDSQ0CIAVBgICABHIiCUH+ACAHQRd2IgVrdiEEIAlBHSAFayIFdkEBcQR/IARBAyAFdEEBayAJcUEAR2oFIAQLIA5yIQ4MAgsgDkGA+AFyIQ4MAQsgBEEQdiAFQQ12ckGABEEAIAUbckGA+AFyIQ4LIBRB////A3EhBSAUQYCAgIB4cSEEAkAgFEGAgID8B3EiB0GAgID8B0cEQCAEQRB2IQ8gB0GAgIC4BE0EQCAHQYCAgMQDTwRAIBRBDHYgFEH/3wBxQQBHcSAHQQ12IAVBDXZqQYCAAWogD3JqIQ8MAwsgB0GAgICYA0kNAiAFQYCAgARyIglB/gAgB0EXdiIFa3YhBCAJQR0gBWsiBXZBAXEEfyAEQQMgBXRBAWsgCXFBAEdqBSAECyAPciEPDAILIA9BgPgBciEPDAELIAVBDXYgBEEQdnJBgARBACAFG3JBgPgBciEPCyAREJ0EIQpBACEJQQAhBSAtQwAAAABfRQRAQf8BQwAAgD9DAAAAACAtEMYFICmTICqVIiUgJUMAAAAAXRsiJSAlQwAAgD9eG0MAAH5DlBC5ByIl/AFBACAlQwAAAABgGyAlQwAAf0NeG0EBakH/AXEhBQsgL0MAAAAAX0UEQEH/AUMAAIA/QwAAAAAgLxDGBSApkyAqlSIlICVDAAAAAF0bIiUgJUMAAIA/XhtDAAB+Q5QQuQciJfwBQQAgJUMAAAAAYBsgJUMAAH9DXhtBAWpB/wFxQQh0IQkLQQAhBCAuQwAAAABfRQRAQf8BQwAAgD9DAAAAACAuEMYFICmTICqVIiUgJUMAAAAAXRsiJSAlQwAAgD9eG0MAAH5DlBC5ByIl/AFBACAlQwAAAABgGyAlQwAAf0NeG0EBakH/AXFBEHQhBAsgFiAcaiIHQQRqIA1B//8DcSAOQRB0cjYCACAHQQxqIAUgCkEIdEGAgIB4cXIgBCAJcmo2AgAgB0EIaiAPQf//A3EgCkEQdHJB////B3EgCkGA/v8HcUEIdkEYdHI2AgAgB0H/ASAjQQAgIhsgMEMAAH9DXhtBCHRB/wEgDEEAICQbIChDAAB/Q14bQRB0ckH/ASAm/AFBACAmQwAAAABgGyAmQwAAf0NeG3JB/wFDAAB/Q0MAAAAAICdDAAB/Q5QiJSAlQwAAAABdGyIlICVDAAB/Q14bELkHIiX8AUEAICVDAAAAAGAbICVDAAB/Q14bQRh0cjYCACAWQRBqIRYgF0EDayEXIAZBA2ohBiAQQQFrIRAgCyEEIBsgE0EMaiITRw0BDAoLCyAEQQFqIQQMAgsgBEECaiEEDAELIARBA2ohBAsgBCAVQaThwAAQjAcACyAGQQFqIQYMAQsgBkECaiEGCyAGIBJBxOHAABCMBwALIAAgASACIAMoAgAgEhCjAgsgCARAIAMoAgghBCAAIAEgAhDMAyACBEBDAAAAQEMAAIA/IAAtAJwBQQFxGyEnIAJBAnQhECAAKAJkIQUgACgCYCEGIAghCwNAIAxBA2ogBU8NBCALRQ0FIAZBA2pB/wFDAAB/Q0MAAAAAIAQgDGoqAgAgJ5VDAAB/Q5QiJSAlQwAAAABdGyIlICVDAAB/Q14bELkHIiX8AUEAICVDAAAAAGAbICVDAAB/Q14bOgAAIAZBEGohBiALQQFrIQsgECAMQQRqIgxHDQALCyAAQQE6ALgBCyADKAIUIggEQCAAIAEgAiADKAIQIAgQlgQLIAMoAhwiCARAIAAgASACIAMoAhggCBDJAwsgAygCJCIIRQ0AIAAgASACIAMoAiAgCBD7BAsgAEEBOgC4ASADKAI8IQUgAygCOCEQIAMoAjQhBCADKAIwIQsgAygCLCIIBEAgACABIAIgAygCKCAIEM4DCyAEBEAgACABIAIgCyAEEOIDCyAFBEAgACABIAIgECAFEOMDCyADKAJEIggEQCAAIAEgAiADKAJAIAgQtAQLIAMoAkwiCARAIAAgASACIAMoAkggCBC1BAsgEUEQaiQADwsgDCAMQQRqIAVBuNvAABDqBwALIAggCEGo28AAEIwHAAvXFAIWfwF7IwBB0ABrIgQkACAEQRBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAEIBj9CwMAIAEoAgQiCiABKAIIIglBAXQiBmohEyAKIQMCQAJAAkACQAJAAkACQAJAA0AgAyATRwRAIAMvAQAhAiADQQJqIQMgAkUNASACQRBPDQIgBCACQQF0aiICIAIvAQBBAWo7AQAgCEEBaiEIDAELCwJAAkACQAJAAkAgCA4CAwABCyAJBEBBACECIAohAwNAIAMvAQANAyACQQFqIQIgA0ECaiEDIAZBAmsiBg0ACwtB+O3EABDdCQALQRAhBSAEQTBqIBj9CwMAIAQgGP0LAyAgBC8BHiILBEBBDyEDDAYLIAQvARwEQEEPIQVBDiEDDAYLIAQvARoEQEEOIQVBDSEDDAYLIAQvARgEQEENIQVBDCEDDAYLIAQvARYEQEEMIQVBCyEDDAYLIAQvARQEQEELIQVBCiEDDAYLIAQvARIEQEEKIQVBCSEDDAYLIAQvARAEQEEJIQVBCCEDDAYLIAQvAQ4EQEEIIQVBByEDDAYLIAQvAQwEQEEHIQVBBiEDDAYLIAQvAQoEQEEGIQVBBSEDDAYLIAQvAQgEQEEFIQVBBCEDDAYLIAQvAQYEQEEEIQVBAyEDDAYLIAQvAQRFDQJBAyEFQQIhAwwFCyAAIAI7AQQgAEGAgICAeDYCAAwGCyAAQYGAgIB4NgIAIABBDjoABAwFCyAELwECIgJFDQFBASEDIAJBAXQhAkECIQUMAwsgAkEQQZjvxAAQjAcAC0GI7sQAEN0JAAsgBCAELwECQQF0IgI7ASQgBC8BBCACakEBdCECIANBAmoiB0EERgRAQQIhAwwBCyAEIAI7ASYgBC8BBiACakEBdCECIAdBBUYEQEEDIQMMAQsgBCACOwEoIAQvAQggAmpBAXQhAiAHQQZGBEBBBCEDDAELIAQgAjsBKiAELwEKIAJqQQF0IQIgB0EHRgRAQQUhAwwBCyAEIAI7ASwgBC8BDCACakEBdCECIAdBCEYEQEEGIQMMAQsgBCACOwEuIAQvAQ4gAmpBAXQhAiAHQQlGBEBBByEDDAELIAQgAjsBMCAELwEQIAJqQQF0IQIgB0EKRgRAQQghAwwBCyAEIAI7ATIgBC8BEiACakEBdCECIAdBC0YEQEEJIQMMAQsgBCACOwE0IAQvARQgAmpBAXQhAiAHQQxGBEBBCiEDDAELIAQgAjsBNiAELwEWIAJqQQF0IQIgB0ENRgRAQQshAwwBCyAEIAI7ATggBC8BGCACakEBdCECIAdBDkYEQEEMIQMMAQsgBCACOwE6IAQvARogAmpBAXQhAiAHQQ9GBEBBDSEDDAELIAQgAjsBPCAELwEcIAJqQQF0IQIgB0EQRgRAQQ4hAwwBCyAEIAI7AT4gAiALakEBdCECCwJ/AkACQCACQf//A3FBAiADdEH+/wNxRgRAIAVBCiADIANBCk8bIgxBAWoiA0kNASADIAVGDQJBACECQQAhCAJAIAUgA2siB0EITwRAIAQgA0EBdGohAyAHQRhxIgghAgNAIAP9AAEAIBj9jgEhGCADQRBqIQMgAkEIayICDQALIBggGCAY/Q0ICQoLDA0ODwABAAEAAQAB/Y4BIhggGCAY/Q0EBQYHAAEAAQABAAEAAQAB/Y4BIhggGCAY/Q0CAwABAAEAAQABAAEAAQAB/Y4B/RkAIQIgByAIRg0BCyAIQQF0IAxBAXRqIARqQQJqIQMgCCAMaiAFa0EBaiEFA0AgAy8BACACaiECIANBAmohAyAFQQFqIgUNAAsLIAJB//8DcSIDRQ0CIANBBHQQcSIIRQ0FIANBAXQMAwsgAEGBgICAeDYCACAAQQ46AAQMAwsgAyAFQRBBmO7EABDqBwALQQQhCEEACyEDIARBADYCTCAEIAg2AkggBCADNgJEQQQgDHQiDxBxIg1FDQEgDUEEayIWLQAAQQNxRSAPRXJFBEAgDUEAIA/8CwALQQEgDHQiDkEBayEUAkAgCUUNACAKQQJqIQIgBkECa0EBdkEBaiEXQQAhB0EAIQNBASEFIAohCUEAIQsCQANAAkAgCyEQIAkhBiACIQkgBSELAkAgBi8BACIGRQ0AAkAgBkEPTQRAIARBIGogBkEBdGoiAiACLwEAIhJBAWo7AQAgEkEIdCASQQh2ciICQQR2QY8ecSACQY8ecUEEdHIiAkECdkGz5gBxIAJBs+YAcUECdHIiAkEBdkHVqgFxIAJB1aoBcUEBdHIhAgJAAkACQCAGIAxLBEAgDiACQQAgBmtBD3F2IBRxIgJNDQEgDSACQQJ0aiICKAIAIgUNAiACIANBAWoiBzYCACAEKAJEIANGBH8gBEHEAGpByO7EABD5BSAEKAJIBSAICyADQQN0akECOwEAIAQgBzYCTCAHIQIMAwsgDiACQRAgBmt2IgVNDQUgBkEQdCAQciEQQQEgBnQiBkECdCERIA0gBUECdGohAgNAIAIgEDYCACACIBFqIQIgBSAGaiIFIA5JDQALDAULIAIgDkG47sQAEIwHAAsgAyECIAVBAWshAwsgBiAMayIRQf//A3EiBUEBayIGQQAgBSAGTxshBgNAIAYhBQJAAkACQCACIANLBEAgBCgCSCIIIANBA3RqIgYvAQBBAWsOAgoCAQsgAyACQejuxAAQjAcACyAGKAIEIRUMAQsgBkEAOwEAIAYgAiADayIVNgIEIAQoAkQiByACRgRAIARBxABqQfjuxAAQ+QUgBCgCSCEIIAQoAkQhBwsgCCACQQN0akECOwEAIAQgAkEBaiIGNgJMIAYgB0YEfyAEQcQAakGI78QAEPkFIAQoAkgFIAgLIAZBA3RqQQI7AQAgBCACQQJqIgc2AkwgByECCyAFQQFrIQYgEiARQQFrdkEBcSADaiAVaiEDIAUhESAFQf//A3ENAAsMAQsgBkEQQajuxAAQjAcACyADIAdPDQEgBCgCSCIIIANBA3RqIgMvAQBBAkkNAyADIBA7AQIgA0EBOwEAIAchAwsgC0EBaiEFIAlBAkEAIAkgE0cbaiECIAsgF0cNAQwDCwsgAyAHQdjuxAAQjAcACyAAQYGAgIB4NgIAIABBDjoABAJAIBYoAgAiAEF4cSIDQQRBCCAAQQNxIgAbIA9qTwRAIABBACADIA9BJ2pLGw0GIA0QogIgBCgCRCIARQ0DIAhBBGsoAgAiA0F4cSICIABBA3QiAEEEQQggA0EDcSIDG2pJDQUgA0EAIAIgAEEnaksbDQEgCBCiAgwDCwwECwwECyAAIAQpAkQ3AgAgACAUOwEYIAAgDjYCFCAAIA02AhAgACAONgIMIABBCGogBEHMAGooAgA2AgALAkAgASgCACIABEAgCkEEaygCACIBQXhxIgMgAEEBdCIAQQRBCCABQQNxIgEbakkNAyABQQAgAyAAQSdqSxsNASAKEKICCyAEQdAAaiQADwsMAgsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvZFQIPfwN+IwBBMGsiBSQAIAIoAgAiDyACKAIIIg1rIQYCQAJAIAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAqgBQQFrDgIBAgALAkACQEElEHEiAUUNACABQR1qQZ2dxwApAAA3AAAgAUEQakGQnccA/QAAAP0LAAAgAUGAnccA/QAAAP0LAABBDBBxIgJFDQAgAkElNgIIIAIgATYCBCACQSU2AgBBDBBxIgFFDQAgAUEoOgAIIAFB7IrBADYCBCABIAI2AgAgBSABrUIghkIDhDcCAAwBCwALDAILIAZBIE8EQCABKQO4ASESIA8hBCANIQYMCAsgBUEQav0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgBf0MAAAAAAAAAAAAAAAAAAAAAP0LAwACfyABKQO4ASISUARAQgAhEiANDAELIAEoAsABIggoAgAgCCkDCCITIAgoAgQiBK0iFCATIBRUG6dqIQcCQCAEQv////8PIBMgE0L/////D1obp2siA0EAIAMgBE0bIgRCICASIBJCIFobpyIDIAMgBEsbIgRBAUYEQCAFIActAAA6AAAMAQsgBEUNACAFIAcgBPwKAAALIAEgEiAErSIUfSISNwO4ASAIIBMgFHw3AwggDSAEIAZNDQAaIAIgDSAEQQFBARCkBSACKAIICyEIIAQEQCACKAIEIAhqIAUgBPwKAAALIAIgBCAIaiIGNgIIIARFBEBBACEDDAsLIAIoAgAhBAwHCyABKAKsASEHIA8hASANIQgCfwJAIAZBIE8NACAFIAcgAhCPBAJAQQACfyAFLQAAQQRGBEAgBSgCBAwBCyAFKQMAIhNCIIghFCATQv8Bg0IEUg0BIBSnC0UNAhogAigCACEBIAIoAgghCAwBCyATQoB+gyESDAYLQYDAACEJA0ACQCABIA9HIAEgCEdyRQRAIAUgByACEI8EAkACQAJ/IAUtAABBBEYEQCAFKAIEDAELIAUpAwAiE0IgiCEUIBNC/wGDQgRSDQEgFKcLDQEgAigCCCEIDAMLIBNCgH6DIRIMCQsgAigCCCEIIAIoAgAhAQsCQCABIAhHBEAgASAIayEMIAIoAgQhBAwBC0IBIRNCgMwAIRJCACEUIAFBIGoiBCABQQF0IgYgBCAGSxsiBkEASA0IIAUgAQR/IAUgATYCCCAFIAIoAgQ2AgBBAQVBAAs2AgQgBUEkakEBIAYgBRCFByAFKAIkQQFGDQggBSgCKCEEIAIgBjYCACACIAQ2AgQgBiABayEMIAYhAQsgBCAIaiEOIAkgDCAJIAxJGyIGIANrIgQEQCADIA5qQQAgBPwLAAsgBSAHIA4gBhDkAgJAIAUtAABBBEYNACAFKQMAIhJCIIgiFKchBEIAIRMCQAJAAkACQAJAIBKnQf8BcUEBaw4EAgEABAwLIAQtAAhBI0YNAgwKCyAELQAIQSNGDQFCAiETDAoLIBJCgP4Dg0KAxgBRDQBCASETDAkLAn8gEkL/AYNCA1EEQCAEKAIAIQsgBEEEaigCACIDKAIAIgoEQCALIAoRAwALIAMoAgQiAwRAIAtBBGsoAgAiCkF4cSIQQQRBCCAKQQNxIgobIANqTwRAIApBACAQIANBJ2pLGw0VQQAMAwsMEwtBAQwBC0ECCyEDA0ACQAJAAkACQAJAAkACQCADDgIAAQILIAsQogIMBAsgBEEEaygCACIDQXhxIgpBEEEUIANBA3EiAxtJDRYgA0EAIApBNE8bDRcgBBCiAgwBCyAFIAcgDiAGEOQCIAUtAABBBEYNBiAFKQMAIhJCIIgiFKchBAJAAkACQAJAIBKnQf8BcUEBaw4EAAECCRELIBJCgP4Dg0KAxgBRDQJCASETDBALIAQtAAhBI0YNAUICIRMMDwsgBC0ACEEjRw0NCyASQv8Bg0IDUQ0BC0ECIQMMAwsgBCgCACELIARBBGooAgAiAygCACIKBEAgCyAKEQMACyADKAIEIgMNAQtBASEDDAELIAtBBGsoAgAiCkF4cSIQQQRBCCAKQQNxIgobIANqSQ0RIApFIBAgA0Enak1yRQRADBMLQQAhAwwACwALIAIgCDYCCAwBCyAFKAIEIgQgBksEQEG0m8cAQTZB7JvHABDrBwALIAIgBCAIaiIINgIIIARFDQBBfyAJQQF0IAlBAEgbIAkgBCAGRhsgCSAJIAxNGyEJIAYgBGshAwwBCwsgCCANawshAyAHLQC0AUEBRw0JIAIoAggiASANSQ0BIAdBoAFqIAIoAgQgDWogASANaxDeASAHKAKwASAHKAKoAUYNCSAFEJMHCyAFLQAAIQMMBAsgDSABIAFB7KvHABDqBwALQgMhEwsgAiAINgIIIBJCgH6DIRILIAUgFD4CBCAFIBOnIgM6AAAgBSASpyIBQRh2OgADIAUgAUEIdjsAAQsgA0H/AXFBBEYEQCAFKAIEIQMMBAsgBSkDACEUDAELIAEoAsABIQlBgMAAIQsgBUEQaiEQQQAhCANAIAQgD0cgBCAGR3JFBEAgEP0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgBf0MAAAAAAAAAAAAAAAAAAAAAP0LAwACfyASUARAQQAhA0IAIRIgDwwBCyAJKQMIIhMgCSgCBCIErSIUIBMgFFQbpyIHIAkoAgBqIQYCQCAEQv////8PIBMgE0L/////D1obp2siA0EAIAMgBE0bIgNCICASIBJCIFobpyIOIAMgDkkbIgNBAUYEQCAFIAYtAAA6AAAMAQsgA0UNACAFIAYgA/wKAAALIAEgEiADrSIUfSISNwO4ASAJIBMgFHw3AwggDyAEIAdGDQAaIAIgDyADQQFBARCkBSACKAIICyEEIAMEQCACKAIEIARqIAUgA/wKAAALIAIgAyAEaiIGNgIIIANFDQMgAigCACEECwJAIAQgBkcEQCACKAIEIQMMAQtCgcwAIRQgBEEgaiIHIARBAXQiAyADIAdJGyIHQQBIDQIgBSAEBH8gBSAENgIIIAUgAigCBDYCAEEBBUEACzYCBCAFQSRqQQEgByAFEIUHIAUoAiRBAUYNAiAFKAIoIQMgAiAHNgIAIAIgAzYCBCAHIQQLIBJQBEAgAiAGNgIIDAMLIAMgBmohDiAJAn4gCyAEIAZrIgcgByALSxsiB60gElgEQCAJKAIEIgpC/////w8gCSkDCCIUIBRC/////w9aG6drIgNBACADIApNGyIDIAcgAyAHSRsiAwRAIA4gCSgCACAUIAqtIhMgEyAUVhunaiAD/AoAAAsgAyAMIAMgDEsbIQwgFCADrSITfAwBCyAJKAIEIgpC/////w8gCSkDCCIUIBRC/////w9aG6drIgNBACADIApNGyIDIBKnIhEgAyARSRsiAwRAIA4gCSgCACAUIAqtIhMgEyAUVhunaiAD/AoAAAsgAyAMIAMgDEsbIQwgFCADrSITfAs3AwggASASIBN9IhI3A7gBIAIgAyAGaiIGNgIIIANFDQJBf0F/IAsgCEEBakEAIAMgB0kbIghBAUobIAsgByAMRxsiC0EBdCALQQBIGyALIAcgC08bIAsgAyAHRhshCyAMIANrIQwMAAsACyAAIBQ3AgRBAQwCCyAGIA1rIQMLIAAgA603AwhBAAs2AgAgBUEwaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL6CcCMH8GfiMAQbAEayIEJAACf0EAIAMoAgwiC0UNABogAykDECADKQMYQbjTxwBBARCVBCE0IAMoAgQiBiA0p3EhBSA0QhmIQv8Ag0KBgoSIkKDAgAF+ITYgAygCACEHA0ACQCAFIAdqKQAAIjUgNoUiNEJ/hSA0QoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIjRQRQRAA0AgByA0eqdBA3YgBWogBnFBbGxqIghBDGsoAgBBAUYEQCAIQRBrKAIALQAAQfgARg0DCyA0QgF9IDSDIjRQRQ0ACwtBACA1IDVCAYaDQoCBgoSIkKDAgH+DUEUNAhogBSAKQQhqIgpqIAZxIQUMAQsLIAhBFGsLIQUgBEEANgKYAyAEQQE2AowDIARBzNPHADYCiAMgBEIENwKQAyAEQYgDahCVByEGAkACQAJAIAVFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQvwQMAQsgBiAGKAIAKAIAEQMAIAUtABAhFyAFKAIMIRgCf0EAIAtFDQAaIAMpAxAgAykDGEHU08cAQQEQlQQhNCADKAIEIgYgNKdxIQUgNEIZiEL/AINCgYKEiJCgwIABfiE2IAMoAgAhB0EAIQoDQAJAIAUgB2opAAAiNSA2hSI0Qn+FIDRCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiNFBFBEADQCAHIDR6p0EDdiAFaiAGcUFsbGoiCEEMaygCAEEBRgRAIAhBEGsoAgAtAABB+QBGDQMLIDRCAX0gNIMiNFBFDQALC0EAIDUgNUIBhoNCgIGChIiQoMCAf4NQRQ0CGiAFIApBCGoiCmogBnEhBQwBCwsgCEEUawshBSAEQQA2ApgDIARBATYCjAMgBEHo08cANgKIAyAEQgQ3ApADIARBiANqEJUHIQYgBUUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxC/BAwBCyAGIAYoAgAoAgARAwAgBS0AECEZIAUoAgwhGiADQfDTxwBBARC5BSEFIARBADYCmAMgBEEBNgKMAyAEQYTUxwA2AogDIARCBDcCkAMgBEGIA2oQlQchBiAFRQRAIABBgICAgHg2AtwEIAAgBjYCACADEL8EDAELIAYgBigCACgCABEDACAFLQAQIRsgBSgCDCEcIANBjNTHAEEHELkFIQUgBEEANgKYAyAEQQE2AowDIARBrNTHADYCiAMgBEIENwKQAyAEQYgDahCVByEGIAVFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQvwQMAQsgBiAGKAIAKAIAEQMAIAUtABAhHSAFKAIMIR4gA0G01McAQQcQuQUhBSAEQQA2ApgDIARBATYCjAMgBEHU1McANgKIAyAEQgQ3ApADIARBiANqEJUHIQYgBUUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxC/BAwBCyAGIAYoAgAoAgARAwAgBS0AECEfIAUoAgwhICADQdzUxwBBBxC5BSEFIARBADYCmAMgBEEBNgKMAyAEQfzUxwA2AogDIARCBDcCkAMgBEGIA2oQlQchBiAFRQRAIABBgICAgHg2AtwEIAAgBjYCACADEL8EDAELIAYgBigCACgCABEDACAFLQAQISEgBSgCDCEiIANBhNXHAEEFELkFIQUgBEEANgKYAyAEQQE2AowDIARBoNXHADYCiAMgBEIENwKQAyAEQYgDahCVByEGIAVFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQvwQMAQsgBiAGKAIAKAIAEQMAIAUtABAhIyAFKAIMISQgA0Go1ccAQQUQuQUhBSAEQQA2ApgDIARBATYCjAMgBEHE1ccANgKIAyAEQgQ3ApADIARBiANqEJUHIQYgBUUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxC/BAwBCyAGIAYoAgAoAgARAwAgBS0AECElIAUoAgwhJiADQczVxwBBBRC5BSEFIARBADYCmAMgBEEBNgKMAyAEQejVxwA2AogDIARCBDcCkAMgBEGIA2oQlQchBiAFRQRAIABBgICAgHg2AtwEIAAgBjYCACADEL8EDAELIAYgBigCACgCABEDACAFLQAQIScgBSgCDCEoIANB8NXHAEEFELkFIQUgBEEANgKYAyAEQQE2AowDIARBjNbHADYCiAMgBEIENwKQAyAEQYgDahCVByEGIAVFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQvwQMAQsgBiAGKAIAKAIAEQMAIAUtABAhKSAFKAIMISogA0GU1scAQQcQuQUhBSAEQQA2ApgDIARBATYCjAMgBEG01scANgKIAyAEQgQ3ApADIARBiANqEJUHIQYgBUUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxC/BAwBCyAGIAYoAgAoAgARAwAgBS0AECErIAUoAgwhLCADQbzWxwBBBhC5BSEFIARBADYCmAMgBEEBNgKMAyAEQdzWxwA2AogDIARCBDcCkAMgBEGIA2oQlQchBiAFRQRAIABBgICAgHg2AtwEIAAgBjYCACADEL8EDAELIAYgBigCACgCABEDACAFLQAQIS0gBSgCDCEuIANB5NbHAEEGELkFIQUgBEEANgKYAyAEQQE2AowDIARBhNfHADYCiAMgBEIENwKQAyAEQYgDahCVByEGIAVFBEAgAEGAgICAeDYC3AQgACAGNgIAIAMQvwQMAQsgBiAGKAIAKAIAEQMAIAUtABAhLyAFKAIMITAgA0GM18cAQQYQuQUhBSAEQQA2ApgDIARBATYCjAMgBEGs18cANgKIAyAEQgQ3ApADIARBiANqEJUHIQYgBUUEQCAAQYCAgIB4NgLcBCAAIAY2AgAgAxC/BAwBCyAGIAYoAgAoAgARAwAgBEEEaq1CgICAgPABhCE0IAUtABAhMSAFKAIMITJBACEGA0ACQCAEIAY2AgQgBEEBNgKMAyAEQYjQxwA2AogDIARCATcClAMgBCA0NwMYIAQgBEEYajYCkAMgBEEIaiAEQYgDahCxBiADIAQoAgwiCyAEKAIQELkFIAQoAgghBUUNACAFBEAgCyAFQQEQogcLIAQoAgRBAWohBgwBCwsgBQRAIAsgBUEBEKIHC0EBIQZBCCEKQQghE0EIIRICQAJAAkACQAJAAkAgBCgCBCIFDhkFAQEBAQEBAQEEAQEBAQEBAQEBAQEBAQECAAsgBUEtRg0CCyAEQQE2AowDIARB3NfHADYCiAMgBEIBNwKUAyAEIDQ3AwggBCAEQQhqNgKQAyAEQSBqIgEgBEGIA2oQsQYgARCQByEBIABBgICAgHg2AtwEIAAgATYCACADEL8EDAQLQQEhDkECIQYMAQtBASEOQQMhBkEBIRELIARBiANqIQUjAEGAAWsiByQAIAdB5ABqrUKAgICAEIQhNQJAAkAgAygCDARAIAMoAgAhDyADKAIEIQ0gAykDGCE3IAMpAxAhOCAGQQJ0QYiSyQBqKAIAIRVBACEIA0AgByA1NwNYIAcgFSAIIAhB/wFxQQNuIglBA2xrQf8BcWwgCWo2AmQgB0IBNwJ0IAdBATYCbCAHQYjQxwA2AmggByAHQdgAajYCcCAHQcwAaiAHQegAahDsAyANIDggNyAHKAJQIhIgBygCVCIUEJUEIjSncSEJIDRCGYhC/wCDQoGChIiQoMCAAX4hOUEAIRADQAJAIAkgD2opAAAiNiA5hSI0Qn+FIDRCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiNFBFBEADQCAPIDR6p0EDdiAJaiANcUFsbGoiDEEMaygCACAURgRAIBIgDEEQaygCACAUENsHRQ0DCyA0QgF9IDSDIjRQRQ0ACwsgNiA2QgGGg0KAgYKEiJCgwIB/g1BFDQQgCSAQQQhqIhBqIA1xIQkMAQsLIAxBBGstAAAhFCAMQQhrKAIAIQwgBygCTCIJBEAgEkEEaygCACIQQXhxIhZBBEEIIBBBA3EiEBsgCWpJDQcgEEEAIBYgCUEnaksbDQggEhCiAgsgB0EEaiIJIAhBA3RqIhIgFDoABCASIAw2AgAgCEEBaiIIQQlHDQALIAUgCUHIAPwKAAAgB0GAAWokAAwCCyAHIDU3A1ggB0EANgJkIAdCATcCdCAHQQE2AmwgB0GI0McANgJoIAcgB0HYAGo2AnAgB0HMAGogB0HoAGoQ7AMLQfTXxwAQ3QkACyAELQCMAyESIAQoAogDIRQgBEEvaiAEQY0DaiIQQcMA/AoAAAJAIA4EQCMAQbABayIHJAAgB0GUAWqtQoCAgIAQhCE1AkACQCADKAIMBEAgAygCACEMIAMoAgQhCSADKQMYITcgAykDECE4IAZBAnRBlJLJAGooAgAhFUEAIQgDQCAHIDU3A4gBIAcgCEH/AXFBA24iCyAVIAggC0EDbGtB/wFxbGpBA2o2ApQBIAdCATcCpAEgB0EBNgKcASAHQYjQxwA2ApgBIAcgB0GIAWo2AqABIAdB/ABqIAdBmAFqEOwDIAkgOCA3IAcoAoABIg4gBygChAEiExCVBCI0p3EhCyA0QhmIQv8Ag0KBgoSIkKDAgAF+ITlBACEPA0ACQCALIAxqKQAAIjYgOYUiNEJ/hSA0QoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIjRQRQRAA0AgDCA0eqdBA3YgC2ogCXFBbGxqIg1BDGsoAgAgE0YEQCAOIA1BEGsoAgAgExDbB0UNAwsgNEIBfSA0gyI0UEUNAAsLIDYgNkIBhoNCgIGChIiQoMCAf4NQRQ0EIAsgD0EIaiIPaiAJcSELDAELCyANQQRrLQAAIRMgDUEIaygCACENIAcoAnwiCwRAIA5BBGsoAgAiD0F4cSIWQQRBCCAPQQNxIg8bIAtqSQ0JIA9BACAWIAtBJ2pLGw0KIA4QogILIAdBBGoiCyAIQQN0aiIOIBM6AAQgDiANNgIAIAhBAWoiCEEPRw0ACyAFIAtB+AD8CgAAIAdBsAFqJAAMAgsgByA1NwOIASAHQQM2ApQBIAdCATcCpAEgB0EBNgKcASAHQYjQxwA2ApgBIAcgB0GIAWo2AqABIAdB/ABqIAdBmAFqEOwDC0GE2McAEN0JAAsgBC0AjAMhEyAEKAKIAyELIARB8gBqIBBB8wD8CgAAIBENASAGIQUMAgsgEQ0AIAYhBQwBCyAEQYgDaiEPIwBB4AFrIgUkACAFQcQBaq1CgICAgBCEITUCQAJAIAMoAgwEQCADKAIAIQ4gAygCBCEIIAMpAxghNyADKQMQITggBkECdEGgkskAaigCACEQQQAhBwNAIAUgNTcDuAEgBSAHQf8BcUEDbiIKIBAgByAKQQNsa0H/AXFsakEIajYCxAEgBUIBNwLUASAFQQE2AswBIAVBiNDHADYCyAEgBSAFQbgBajYC0AEgBUGsAWogBUHIAWoQ7AMgCCA4IDcgBSgCsAEiCSAFKAK0ASINEJUEIjSncSEKIDRCGYhC/wCDQoGChIiQoMCAAX4hOUEAIQwDQAJAIAogDmopAAAiNiA5hSI0Qn+FIDRCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiNFBFBEADQCAOIDR6p0EDdiAKaiAIcUFsbGoiEUEMaygCACANRgRAIAkgEUEQaygCACANENsHRQ0DCyA0QgF9IDSDIjRQRQ0ACwsgNiA2QgGGg0KAgYKEiJCgwIB/g1BFDQQgCiAMQQhqIgxqIAhxIQoMAQsLIBFBBGstAAAhDSARQQhrKAIAIREgBSgCrAEiCgRAIAlBBGsoAgAiDEF4cSIVQQRBCCAMQQNxIgwbIApqSQ0HIAxBACAVIApBJ2pLGw0IIAkQogILIAVBBGoiCiAHQQN0aiIJIA06AAQgCSARNgIAIAdBAWoiB0EVRw0ACyAPIApBqAH8CgAAIAVB4AFqJAAMAgsgBSA1NwO4ASAFQQg2AsQBIAVCATcC1AEgBUEBNgLMASAFQYjQxwA2AsgBIAUgBUG4AWo2AtABIAVBrAFqIAVByAFqEOwDC0Hk18cAEN0JAAsgBC0AjAMhCiAEKAKIAyEzIARB5QFqIARBjQNqQaMB/AoAACAGIQULIAAgCjoARCAAIDM2AkAgACApOgA8IAAgKjYCOCAAICc6ADQgACAoNgIwIAAgJToALCAAICY2AiggACAjOgAkIAAgJDYCICAAIAP9AAMA/QsDACAAQRBqIANBEGr9AAMA/QsDACAAQcUAaiAEQeUBakGjAfwKAAAgACATOgDsASAAIAs2AugBIABB7QFqIARB8gBqQfMA/AoAACAAIBI6AOQCIAAgFDYC4AIgAEHlAmogBEEvakHDAPwKAAAgAEIENwPgBCAAQgA3A9gEIABCgICAgMAANwPQBCAAQgQ3A8gEIABCADcDwAQgAEKAgICAwAA3A7gEIABCBDcDsAQgAEIANwOoBCAAQoCAgIDAADcDoAQgAEIENwOYBCAAQgA3A5AEIABCgICAgMAANwOIBCAAIAU2AoQEIABBADYCgAQgACACNgL8AyAAIAE2AvgDIAAgKzoA9AMgACAsNgLwAyAAIDE6AOwDIAAgMjYC6AMgACAvOgDkAyAAIDA2AuADIAAgLToA3AMgACAuNgLYAyAAICE6ANQDIAAgIjYC0AMgACAfOgDMAyAAICA2AsgDIAAgHToAxAMgACAeNgLAAyAAIBs6ALwDIAAgHDYCuAMgACAZOgC0AyAAIBo2ArADIAAgFzoArAMgACAYNgKoAwsgBEGwBGokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC5wVBA5/An0BfAJ+IwBBIGsiAiQAAkACQAJAAkACQAJ/AkACQCAAAn8CQAJAAkACQAJAQRUgASgCACIDQYCAgIB4cyADQQBOG0EUaw4CAAEDCwJ9AkACQAJAAn0CQAJAIAEoAgwiAwRAIAJBBGogASgCCCIBEKAEIAIoAgghBiACKAIEIgdBgICAgHhGBEAgBiEBDBILIAIoAhQhCiACKAIQIQkgA0EBRg0EIAIoAhghCyACKAIMIQwCQAJAAkACQAJAAkACQAJAAkBBFSABKAIQIgVBgICAgHhzIAVBAE4bQQFrDgoLAAECAwQFBgcICgsgAS8BFLMMCwsgASgCFLMMCgsgASkDGLUMCQsgASwAFLIMCAsgAS4BFLIMBwsgASgCFLIMBgsgASkDGLQMBQsgASoCFAwECyABKwMYIhK2QwAAgD9DAACAvyASvUIAWRuYDAMLQQBB4P7AAEGA/cAAENsGIQEMEAsgAUEQaiACQR9qQdjnwAAQlQghAQwOCyABLQAUswshECADQQJGDQUCQAJAAkACQAJAAkACQAJAAkBBFSABKAIgIgVBgICAgHhzIAVBAE4bQQFrDgoLAAECAwQFBgcICgsgAS8BJLMMCwsgASgCJLMMCgsgASkDKLUMCQsgASwAJLIMCAsgAS4BJLIMBwsgASgCJLIMBgsgASkDKLQMBQsgASoCJAwECyABKwMoIhK2QwAAgD9DAACAvyASvUIAWRuYDAMLQQFB4P7AAEGA/cAAENsGIQEMCwsgAUEgaiACQR9qQdjnwAAQlQghAQwKCyABLQAkswshEQJAIANBA0cEQCACQQRqIAFBMGoQnwUgAigCBEUNASACKAIIIQEMCgtBA0Hg/sAAQYD9wAAQ2wYhAQwJCyADQQRGBEAgAigCCCEDIAIoAgwMBQsgAkEENgIEIANB/P///wBqQf////8AcUEEaiACQQRqQeiVwQAQ2wYhASAHBEAgBiAHQQEQogcLIAlFDQkgCiAJQQEQogcMCQsgASgCCCIDRQ0FIANBBXQhDiABKAIEIQ9BACEDQYCAgIB4IQcDQAJAAkACQAJAAkACQAJAAkBBFSADIA9qIgEoAgAiBEGAgICAeHMgBEEAThtBAWsODwEAAAIAAAAAAAAAAwQFBgALIAEgAkEfakHU5MAAEJUIIQQgAkEBOgAEIAIgBDYCCAwGCyACQQA6AAQgAkEEIAFBBGotAAAiBCAEQQRPGzoABQwFCyACQQA6AAQgAkIEIAFBCGopAwAiFCAUQgRaGzwABQwECyABQQhqKAIAIQQCfwJAAkACQAJAIAFBDGooAgBBBGsOAgEAAwsgBEGQ/cAAQQUQ2wcNAUEADAMLQQEgBCgAAEHt0rmbB0YNAhogBCgAAEHtwuGbB0cNAUECDAILIARBnf3AAEEFENsHDQBBAwwBC0EECyEEIAJBADoABCACIAQ6AAUMAwsgAUEEaigCACEEAn8CQAJAAkACQCABQQhqKAIAQQRrDgIBAAMLIARBkP3AAEEFENsHDQFBAAwDC0EBIAQoAABB7dK5mwdGDQIaIAQoAABB7cLhmwdHDQFBAgwCCyAEQZ39wABBBRDbBw0AQQMMAQtBBAshBCACQQA6AAQgAiAEOgAFDAILIAJBBGogAUEIaigCACABQQxqKAIAENkFDAELIAJBBGogAUEEaigCACABQQhqKAIAENkFCyACLQAEQQFGBEAgAigCCCEBQQEMCAsgAUEQaiEEAkACQAJAAkACQAJAAkACQCACLQAFDgQAAQIDBwsgB0GAgICAeEcEQEGQ/cAAQQUQnwchAUEBDA8LIAJBBGogBBCgBCACKAIIIQYgAigCBCIHQYCAgIB4RgRAIAYhAQwRCyACKAIYIQsgAigCFCEKIAIoAhAhCSACKAIMIQwMBgsgBQ0CAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAQoAgAiBUGAgICAeHMgBUEAThtBAWsOCgABAgMEBQYHCAkKCyABQRRqLQAAsyEQQQEhBQwPCyABQRRqLwEAsyEQQQEhBQwOCyABQRRqKAIAsyEQQQEhBQwNCyABQRhqKQMAtSEQQQEhBQwMCyABQRRqLAAAsiEQQQEhBQwLCyABQRRqLgEAsiEQQQEhBQwKCyABQRRqKAIAsiEQQQEhBQwJCyABQRhqKQMAtCEQQQEhBQwICyABQRRqKgIAIRBBASEFDAcLIAFBGGorAwAiErZDAACAP0MAAIC/IBK9QgBZG5ghEEEBIQUMBgsgBCACQR9qQdjnwAAQlQghAUEBDA0LIAgNAwJAAkACQAJAAkACQAJAAkACQAJAAkBBFSAEKAIAIghBgICAgHhzIAhBAE4bQQFrDgoAAQIDBAUGBwgJCgsgAUEUai0AALMhEUEBIQgMDgsgAUEUai8BALMhEUEBIQgMDQsgAUEUaigCALMhEUEBIQgMDAsgAUEYaikDALUhEUEBIQgMCwsgAUEUaiwAALIhEUEBIQgMCgsgAUEUai4BALIhEUEBIQgMCQsgAUEUaigCALIhEUEBIQgMCAsgAUEYaikDALQhEUEBIQgMBwsgAUEUaioCACERQQEhCAwGCyABQRhqKwMAIhK2QwAAgD9DAACAvyASvUIAWRuYIRFBASEIDAULIAQgAkEfakHY58AAEJUIIQFBAQwMCyANDQEgAkEEaiAEEJ8FIAIoAgghAUEBIAIoAgQNCxogAa0gAjUCDEIghoQhE0EBIQ0MAwtBlf3AAEEEEJ8HIQFBAQwKC0Gd/cAAQQUQnwchAUEBDAkLQZn9wABBBBCfByEBQQEMCAsgA0EgaiIDIA5HDQALDAILQQJB4P7AAEGA/cAAENsGIQEMBgsgASACQR9qQcTiwAAQlQghAQwGCyAHQYCAgIB4Rg0CIAIgCzYCGCACIAo2AhQgAiAJNgIQIAIgDDYCDCACIAY2AgggAiAHNgIEIAVFBEBBlf3AAEEEEJwHIQEMAgsgCEUEQEGZ/cAAQQQQnAchAQwCCyANRQRAQZ39wABBBRCcByEBDAILIBOnIQMgE0IgiKcLNgIkIAAgAzYCICAAIBE4AhwgACAQOAIYIAAgCzYCFCAAIAo2AhAgACAJNgIMIAAgDDYCCCAAIAY2AgQgACAHNgIADAULIAJBBGoQ5gVBAAwBC0GAgICAeCEHQZD9wABBBRCcByEBQQELRSAHQYCAgIB4RnINAQJAIAcEQCAGQQRrKAIAIgNBeHEiBUEEQQggA0EDcSIDGyAHakkNBSADQQAgBSAHQSdqSxsNBiAGEKICCyAJRQ0CIApBBGsoAgAiBkF4cSIDQQRBCCAGQQNxIgYbIAlqSQ0EIAZBACADIAlBJ2pLGw0AIAoQogIMAgsMBAsgBwRAIAZBBGsoAgAiA0F4cSIFQQRBCCADQQNxIgMbIAdqSQ0DIANBACAFIAdBJ2pLGw0EIAYQogILIAlFDQAgCkEEaygCACIGQXhxIgNBBEEIIAZBA3EiBhsgCWpJDQIgBkEAIAMgCUEnaksbDQMgChCiAgsgAEGBgICAeDYCACAAIAE2AgQLIAJBIGokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC6wUAwZ+EH8BeyMAQSBrIhAkAAJAAkACQAJAAkACQAJAAkACQCAAAn8CQAJAAkAgACgCDCISQQFqIggEQCAAKAIEIg8gD0EBaiINQQN2IglBB2wiFCAPQQhJGyIKQQF2IAhJBEAgCkEBaiIJIAggCCAJSRsiCEEPSQ0CIAhB/////wFNBEBBfyAIQQN0QQduQQFrZ3YiCEH+////AUsNCCAIQQFqIQgMBwsMDgtBACANRQ0EGiAAKAIAIQBBACEIIAkgDUEHcUEAR2oiCkEBTQ0CIAAhCCAKQf7///8DcSILIQkDQCAIIAj9AAMAIhj9TUEH/c0B/QwBAQEBAQEBAQEBAQEBAQEB/U4gGP0Mf39/f39/f39/f39/f39/f/1Q/c4B/QsDACAIQRBqIQggCUECayIJDQALIAogC0YNAyALQQN0IQggCkEBcSEKDAILDAwLQQQgCEEIcUEIaiAIQQRJGyEIDAMLIAAgCGohCANAIAggCCkDACICQn+FQgeIQoGChIiQoMCAAYMgAkL//v379+/fv/8AhHw3AwAgCEEIaiEIIApBAWsiCg0ACwsCQCANQQhPBEAgACANaiAAKQAANwAADAELIA1FDQAgAEEIaiAAIA38CgAACyABKQMAIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQhBSAAQQhqIQsgAEEIayEVIAJCf4UhBiABKQMIIQRBASEBIAAhCUEAIQgDQCAIIQogASEIAkAgACAKaiITLQAAQYABRw0AIBUgCkEDdGshFiAAIApBf3NBA3RqIRcCQANAIA8gBCAWNQIAhSIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEQtKBqpur+oLXp39+IgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQgA0LYotHvwqnlvy1+hSICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEIAZ+IgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQgAiAFfoUgAomnIhFxIgwhASAAIAxqKQAAQoCBgoSIkKDAgH+DIgJQBEBBCCEOA0AgASAOaiEBIA5BCGohDiAAIAEgD3EiAWopAABCgIGChIiQoMCAf4MiAlANAAsLIAAgAnqnQQN2IAFqIA9xIgFqLAAAQQBOBEAgACkDAEKAgYKEiJCgwIB/g3qnQQN2IQELIAEgDGsgCiAMa3MgD3FBCE8EQCAAIAFqIgwtAAAgDCARQRl2Igw6AAAgCyABQQhrIA9xaiAMOgAAQf8BRg0CIAAgAUEDdGshDEF4IQEDQCABIAlqIg4oAAAhESAOIAEgDGoiDigAADYAACAOIBE2AAAgAUEEaiIBDQALDAELCyATIBFBGXYiAToAACALIA8gCkEIa3FqIAE6AAAMAQsgE0H/AToAACALIA8gCkEIa3FqQf8BOgAAIAAgAUF/c0EDdGogFykAADcAAAsgCUEIayEJIAggCCANSSIKaiEBIAoNAAsgDyAUIA9BCEkbCyASazYCCAwFCyAIQQhqIgkgCEEDdCINaiIKIAlJIApB+P///wdLcg0AIAoQcSIKRQ0BIAogDWohCyAJBEAgC0H/ASAJ/AsACyAIQQFrIgwgCEEDdkEHbCAMQQhJGyETIAAoAgAhDSASDQJBACESDAMLIBBBADYCGCAQQQE2AgwgEEHEtcQANgIIIBBCBDcCECAQQQhqQZi1xAAQjQgLAAsgC0EIaiERIAEpAwAiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhCEGIA1BCGshFCACQn+FIQcgDSkDAEJ/hUKAgYKEiJCgwIB/gyEEIAEpAwghBUEAIQggEiEBIA0hCgNAIARQBEADQCAIQQhqIQggCkEIaiIKKQMAQoCBgoSIkKDAgH+DIgJCgIGChIiQoMCAf1ENAAsgAkKAgYKEiJCgwIB/hSEECyALIAwgBSAUIAR6p0EDdiAIaiIVQQN0azUCAIUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCAFQgiIQoCAgPgPgyAFQhiIQoCA/AeDhCAFQiiIQoD+A4MgBUI4iISEhELSgaqbq/qC16d/fiICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISEIANC2KLR78Kp5b8tfoUiAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhCAHfiIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISEIAIgBn6FIAKJpyIWcSIJaikAAEKAgYKEiJCgwIB/gyICUARAQQghDgNAIAkgDmohCSAOQQhqIQ4gCyAJIAxxIglqKQAAQoCBgoSIkKDAgH+DIgJQDQALCyAEQgF9IASDIQQgCyACeqdBA3YgCWogDHEiCWosAABBAE4EQCALKQMAQoCBgoSIkKDAgH+DeqdBA3YhCQsgCSALaiAWQRl2Ig46AAAgESAJQQhrIAxxaiAOOgAAIAsgCUF/c0EDdGogDSAVQX9zQQN0aikAADcDACABQQFrIgENAAsLIAAgDDYCBCAAIAs2AgAgACATIBJrNgIIIA9FDQAgDyAPQQN0QQ9qQXhxIgFqQQlqIgBFDQAgDSABayIBQQRrKAIAIghBeHEiCUEEQQggCEEDcSIIGyAAakkNASAIQQAgCSAAQSdqSxsNAiABEKICCyAQQSBqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgEEEANgIYIBBBATYCDCAQQcS1xAA2AgggEEIENwIQIBBBCGpBmLXEABCNCAALvw4BB38CQAJAIAAoAuACIgEEQCAAKALkAiIEQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKALwAiIBKAL4BiICQQRrKAIAIgRBeHFBhIABQYiAASAEQQNxIgMbSQ0AIANBACAEQaiAAU8bDQEgAhCiAiABKALgBiIEBEAgASgC5AYiAkEEaygCACIDQXhxIgYgBEEBdCIEQQRBCCADQQNxIgMbakkNASADQQAgBiAEQSdqSxsNAiACEKICCyABKAL8BiICQQRrKAIAIgRBeHFBhBBBiBAgBEEDcSIDG0kNACADQQAgBEGoEE8bDQEgAhCiAiABKALsBiIEBEAgASgC8AYiAkEEaygCACIDQXhxIgYgBEEBdCIEQQRBCCADQQNxIgMbakkNASADQQAgBiAEQSdqSxsNAiACEKICCyABQQRrKAIAIgRBeHFBrAdBsAcgBEEDcSICG0kNACACQQAgBEHQB08bDQEgARCiAgJAIAAoAghBAkYNACAAKALIASIBQYKAgIB4SCABRXJFBEAgACgCzAEiBEEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAWpJDQIgAkEAIAMgAUEnaksbDQMgBBCiAgsgACgC1AEiAUGCgICAeEggAUVyRQRAIAAoAtgBIgRBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAFqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoAuABIgFBgoCAgHhIIAFFckUEQCAAKALkASIEQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNAiACQQAgAyABQSdqSxsNAyAEEKICCyAAKALsASIBQYKAgIB4SCABRXJFBEAgACgC8AEiBEEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAWpJDQIgAkEAIAMgAUEnaksbDQMgBBCiAgsgACgC+AEiAUGCgICAeEggAUVyRQRAIAAoAvwBIgRBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAFqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoAoQCIgFBgoCAgHhIIAFFckUEQCAAKAKIAiIEQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNAiACQQAgAyABQSdqSxsNAyAEEKICCyAAKAKoASEEIAAoAqwBIgIEQCAEIQEDQCABKAIAIgMEQCABQQRqKAIAIgZBBGsoAgAiBUF4cSIHQQRBCCAFQQNxIgUbIANqSQ0EIAVBACAHIANBJ2pLGw0FIAYQogILIAFBDGooAgAiAwRAIAFBEGooAgAiBkEEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAcgA0EnaksbDQUgBhCiAgsgAUEYaiEBIAJBAWsiAg0ACwsgACgCpAEiAQRAIARBBGsoAgAiAkF4cSIDIAFBGGwiAUEEQQggAkEDcSICG2pJDQIgAkEAIAMgAUEnaksbDQMgBBCiAgsgACgCtAEhBCAAKAK4ASICBEAgBEEUaiEBA0AgAUEEaygCACIDBEAgASgCACIGQQRrKAIAIgVBeHEiB0EEQQggBUEDcSIFGyADakkNBCAFQQAgByADQSdqSxsNBSAGEKICCyABQRBrKAIAIgMEQCABQQxrKAIAIgZBBGsoAgAiBUF4cSIHQQRBCCAFQQNxIgUbIANqSQ0EIAVBACAHIANBJ2pLGw0FIAYQogILIAFBHGohASACQQFrIgINAAsLIAAoArABIgEEQCAEQQRrKAIAIgJBeHEiAyABQRxsIgFBBEEIIAJBA3EiAhtqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoAsABIQQgACgCxAEiAgRAIAQhAQNAIAFBEGooAgAiAwRAIAFBFGooAgAiBkEEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAcgA0EnaksbDQUgBhCiAgsgAUEcaigCACIDBEAgAUEgaigCACIGQQRrKAIAIgVBeHEiB0EEQQggBUEDcSIFGyADakkNBCAFQQAgByADQSdqSxsNBSAGEKICCyABQShqKAIAIgMEQCABQSxqKAIAIgZBBGsoAgAiBUF4cSIHQQRBCCAFQQNxIgUbIANqSQ0EIAVBACAHIANBJ2pLGw0FIAYQogILIAFBBGooAgAiAwRAIAFBCGooAgAiBkEEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAcgA0EnaksbDQUgBhCiAgsgAUE4aiEBIAJBAWsiAg0ACwsgACgCvAEiAEUNACAEQQRrKAIAIgFBeHEiAiAAQThsIgBBBEEIIAFBA3EiARtqSQ0BIAFBACACIABBJ2pLGw0CIAQQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALkhMDDn8BewF+IwBBEGsiDCQAAkACQAJAAkACQCAAKAIIIglFBEBBACEJQQEhCEEBIQoMAQsgACgCBCEEIAkQcSIKRQ0CIAQhCANAQQAhBQJAAn8gCEEUai8BACICQf//AXFFBEAgAkEQdAwBCyACQf8HcSEBIAJBgIACcSEGIAJBgPgBcSICQYD4AUYEQCAGQRB0IgJBgICA/AdyIAFFDQEaIAIgAUENdHJBgICA/gdyDAELIAZBEHQiBiACQQ10QYCAgPwAcSABQQ10ckGAgIDAA2pyIAINABogBkGAgIDYA3IgAWdBEGsiAkEXdGsgASACQf//A3FBCGp0Qf///wNxcgu+QwAAAABeRQ0AIAhBHGovAQAhBUEAIQICf0EAIAhBHmovAQAiAUH//wFxIgZBgPgBSw0AGkEAIAVB//8BcSIHQYD4AUsNABogAcFBAE4EQCABIAVLIAXBQQBODQEaIAEgB3JBAEcMAQsgBcFBAEggASAFSXELIQcgASAFIAcbIAUgBkGB+AFJGyEBAkAgCEEgai8BACIGQf//AXEiB0GA+AFLDQAgAUH//wFxIgVBgPgBSw0AIAbBQQBOBEAgAcFBAE4EQCAGIAFB//8DcUshAgwCCyAFIAZyQQBHIQIMAQsgAcFBAEggBiABQf//A3FJcSECC0EAIQUCfyAGIAEgAhsgASAHQYH4AUkbIgJB//8BcUUEQCACQRB0DAELIAJB/wdxIQEgAkGAgAJxIQYgAkGA+AFxIgJBgPgBRgRAIAZBEHQiAkGAgID8B3IgAUUNARogAiABQQ10ckGAgID+B3IMAQsgBkEQdCIGIAJBDXRBgICA/ABxIAFBDXRyQYCAgMADanIgAg0AGiAGQYCAgNgDciABZ0EQayICQRd0ayABIAJB//8DcUEIanRB////A3FyC74QiQRDAAAAAF5FDQAgDCAIKQIAIhAQywIgDP0ABAD9DP///3////9/////f////3/9Tv0MAACAfwAAgH8AAIB/AACAf/05/aQBQQ9HDQAgDCAQEMsCIAz9AAQAIg8gD/3mASIPIA8gD/0NCAkKCwwNDg8AAQIDAAECA/3kASIPIA8gD/0NBAUGBwABAgMAAQIDAAECA/3kAf3jAf0fAEMAAAAAXiEFCyADIApqIAU6AAAgCEEkaiEIIAkgA0EBaiIDRw0ACyAEQSRqIQMgCSAKaiEIQQAhASAKIQUCQAJAA0AgBSAIRg0EIAFBAWohBCAFLQAAQQFHDQEgBUEBaiEFIANBJGohAyAEIgEgCUcNAAtBACECDAELIAQgCUYEQEEBIQIMAQsgASAJayEBQQEhBEEBIQIDQAJAAkAgASAEagRAIAQgBWotAAANASACQQFqIQIMAgtB9KHBABDdCQALIAMgAkFcbGoiBiAD/QACAP0LAgAgBkEgaiADQSBqKAIANgIAIAZBEGogA0EQav0AAgD9CwIACyADQSRqIQMgASAEQQFqIgRqDQALCyAAIAkgAms2AggLIAAoAhQiBgRAQQAhBCAAKAIQIgEhAyAKIQUCQANAAkAgBSAIRwRAIAUtAAANAQJAIAEgBEEYbGoiASgCFCICQQVPBEAgASgCCCIBQQRrKAIAIgdBeHEiCyACQQJ0IgJBBEEIIAdBA3EiBxtqSQ0BIAdBACALIAJBJ2pLGw0KIAEQogILQQEhAiAEQQFqIAZGDQQgBCAGayEHQQEhAQNAIAMhBAJAAkAgCCABIAVqIgtHBEAgA0EYaiEDIAstAAANASACQQFqIQIgBEEsaigCACILQQVJDQIgBEEgaigCACIEQQRrKAIAIg1BeHEiDiALQQJ0IgtBBEEIIA1BA3EiDRtqSQ0MIA1BACAOIAtBJ2pLGw0NIAQQogIMAgtBpKLBABDdCQALIAQgAkFobGoiBEEoaiADQRBqKQIANwIAIARBGGogA/0AAgD9CwIACyAHIAFBAWoiAWoNAAsMBAsMBwtBpKLBABDdCQALIAVBAWohBSADQRhqIQMgBEEBaiIEIAZHDQALQQAhAgsgACAGIAJrNgIUCwJAIAAoAiAiAgRAQQAhBEESIQEgCiEFAkACQANAIAUgCEYNBCAEQQFqIQMgBS0AAEEBRw0BIAVBAWohBSABQRJqIQEgAyIEIAJHDQALQQAhAQwBCyACIANGBEBBASEBDAELIAQgAmshBiAAKAIcIAFqIQNBASEEQQEhAQNAAkACQCAIIAQgBWoiB0cEQCAHLQAADQEgAUEBaiEBDAILQYSiwQAQ3QkACyADIAFBbmxqIgcgA/0AAQD9CwEAIAdBEGogA0EQai8BADsBAAsgA0ESaiEDIAYgBEEBaiIEag0ACwsgACACIAFrNgIgCwJAIAAoAiwiAgRAQQAhBEEeIQEgCiEFAkACQANAIAUgCEYNBCAEQQFqIQMgBS0AAEEBRw0BIAVBAWohBSABQR5qIQEgAyIEIAJHDQALQQAhAQwBCyACIANGBEBBASEBDAELIAQgAmshByAAKAIoIAFqIQNBASEEQQEhAQNAAkACQCAIIAQgBWoiBkcEQCAGLQAADQEgAUEBaiEBDAILQeShwQAQ3QkACyADIAFBYmxqIgYgA/0AAQD9CwEAIAZBFmogA0EWaikBADcBACAGQRBqIANBEGopAQA3AQALIANBHmohAyAHIARBAWoiBGoNAAsLIAAgAiABazYCLAsCQCAAKAI4IgIEQEEAIQRBKiEBIAohBQJAAkADQCAFIAhGDQQgBEEBaiEDIAUtAABBAUcNASAFQQFqIQUgAUEqaiEBIAMiBCACRw0AC0EAIQEMAQsgAiADRgRAQQEhAQwBCyAEIAJrIQcgACgCNCABaiEDQQEhBEEBIQEDQAJAAkAgCCAEIAVqIgZHBEAgBi0AAA0BIAFBAWohAQwCC0GUosEAEN0JAAsgAyABQVZsaiIGIAP9AAEA/QsBACAGQShqIANBKGovAQA7AQAgBkEgaiADQSBqKQEANwEAIAZBEGogA0EQav0AAQD9CwEACyADQSpqIQMgByAEQQFqIgRqDQALCyAAIAIgAWs2AjgLAkAgCQRAIApBBGsoAgAiAEF4cSIFQQRBCCAAQQNxIgAbIAlqSQ0HIABBACAFIAlBJ2pLGw0BIAoQogILIAxBEGokAA8LDAYLQZSiwQAQ3QkAC0HkocEAEN0JAAtBhKLBABDdCQALQfShwQAQ3QkACwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC6oVBAh/BH4HfQF7IwBB4AJrIgEkAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AnANFBEAgACgCACICQQJHDQogACgCiAFBAkcNCiAAKAKAAyICQQNNBEBBACECDAwLIAEgACgC/AIiBSgAACIDNgIQAkAgA0HSgpGaBEcEQCADQdKCkYIDRw0DIAJBCEkNASACIAUoAAQiBEEHakF4cUEIaiIDSQ0BIARBCGoiBiACSyAEQXdLcg0EIAFBADYC2AIgASAENgLUAiABIAVBCGo2AtACIAFBIGogAUHQAmoQWSABKAIkIQQgASgCICIGQQJGBEAgBBDOByECDA4LIAFBsAFqIAFBKGpBgAH8CgAAIAEgBDYCrAEgASAGNgKoASAAKAKAAyICIANJDQUgAEEANgKAAyACIANrIQUgA0UNBiACIANGDQggBUUNByAAKAL8AiICIAIgA2ogBfwKAAAMBwsgAUEIaiAAELkCIAEtAAhFBEAgAS0ACQ0JQQAhAgwNCyABKAIMIQIMDAtBACECDAsLIAA1AoADIQkgAEEANgKAAyAAIAkgACkD2AJ8NwPYAgwKCyABQQE2AjQgAUHMyMEANgIwIAFBATYCJCABQcTIwQA2AiAgAUEBNgIsIAEgAUEQaq1CgICAgJAEhDcD0AIgASABQdACajYCKCABQRRqIgAgAUEgahCxBiAAEI4HIQIMCQtBCCAGIAJBnMjBABDqBwALQQAgAyACQYSkxwAQ6gcACyACIANGDQELIAAgBTYCgAMLIAAgACkD2AIgA618Igk3A+ACIAAgCTcD2AICQAJAAkAgASgCpAJBAUYEQCAAIAEoApQCIgM2AogDIAAgASgCtAEgASgCwAEiAiABKAKwARsiBTYCjAMgBUUNASACIAVuIgcgBSAHbCACR2oiBSADRgRAIAEtAKgCIQMgASAEQQAgBkEBcRs2AiQgASACNgIgIAEgA0EBcSICOgAoIABB+AFqIAFBIGoQ6QEgASgC0AEiBEECRwRAAn0gAC0A0AIiA0ECRgRAQwAAQMEhDUMAABBBIQ5DAACAPyEQQQAhA0MAAIA/IRFDAACAPyESQwAAgD8hE0MAAAAADAELIAFBImogAEHTAmotAAA6AAAgASAALwDRAjsBICAAKgLMAiEQIAAqAsgCIREgACoCxAIhEiAAKgLAAiEOIAAqArwCIQ0gACoCuAIhEyAAKgK0AgshDyAAIAEqAoQCIBAgASgCgAIbOALMAiAAIAEqAvwBIBEgASgC+AEbOALIAiAAIAEqAvQBIBIgASgC8AEbOALEAiAAIAEqAuwBIA4gASgC6AEbOALAAiAAIAEqAuQBIA0gASgC4AEbOAK8AiAAIAEqAtwBIBMgASgC2AEbOAK4AiAAIAMgAS0AiAIiAyADQQJGGzoA0AIgACABKgLUASAPIARBAXEbOAK0AiAAQdMCaiABQSJqLQAAOgAAIAAgAS8BIDsA0QILIAJFDQQCfSAALQDQAkECRgRA/QwAAAAAAACAPwAAQMEAABBBIRRDAACAPyENQwAAgD8hDkMAAIA/DAELIAFBImogAEHTAmotAAA6AAAgASAALwDRAjsBICAAKgLIAiENIAAqAsQCIQ4gAP0AArQCIRQgACoCzAILIQ8gAEEBOgDQAiAAIA84AswCIAAgDTgCyAIgACAOOALEAiAAIBT9CwK0AiAAIAEvASA7ANECIABB0wJqIAFBImotAAA6AAAMBAsgASAFNgLMAiABQQI2AiQgAUHox8EANgIgIAFCAjcCLCABQoCAgIAQIgkgAEGIA2qthDcD2AIgASAJIAFBzAJqrYQ3A9ACIAEgAUHQAmo2AiggAUHAAmoiACABQSBqELEGIAAQjgchAgwCCyABQQE2AiQgAUGUyMEANgIgIAFCATcCLCABIAFBpAJqrUKAgICAEIQ3A9ACIAEgAUHQAmo2AiggAUG0AmoiACABQSBqELEGIAAQjgchAiABKAKUAiEDDAELQbTHwQAQgQgACyABKAKQAiEEIAMEQCAEQSRqIQADQCAAQQRrKAIAIgVBgICAgHhyQYCAgIB4RwRAIAAoAgAgBUEBEKIHCyAAQTBqIQAgA0EBayIDDQALCyABKAKMAiIABEAgBCAAQTBsQQgQogcLIAEoApgCIgBBgICAgHhyQYCAgIB4Rg0FIAEoApwCIABBARCiBwwFCwJAIAAoAgBBAkYNACAAKAJoIQQgACgCbCIDBEAgBEEkaiECA0AgAkEEaygCACIFQYCAgIB4ckGAgICAeEcEQCACKAIAIgZBBGsoAgAiB0F4cSIIQQRBCCAHQQNxIgcbIAVqSQ0FIAdBACAIIAVBJ2pLGw0GIAYQogILIAJBMGohAiADQQFrIgMNAAsLIAAoAmQiAwRAIAQgA0EwbEEIEKIHCyAAKAJwIgNBgICAgHhyQYCAgIB4Rg0AIAAoAnQgA0EBEKIHCyAAIAFBqAFqQYgB/AoAAAsgACgCACECDAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACwJAAkACQAJAAn8CQCACQQJHBEAgACgChAMgACgCiANPDQYgACgCiAFBAkYNAUEADAILIAFBqAFqIAAQYyABKAKsAUEAIAEtAKgBIgMbIQIgAw0GIAEtAKkBQQFxRQ0GIAApA/ACIgsgACkD2AIiCVgEQCAAKAKAAyEDDAULIAAoAoADIQRBACEDIABBADYCgAMgBCALIAl9IgogBK0iDCAKIAxUGyIKpyIFayECIApQRQRAIAQgBUYNBCACRQ0DIAAoAvwCIgMgAyAFaiAC/AoAAAwDCyAEIAVHDQIMAwtBAQshAgNAAkACQAJAAkACQAJAAkACQAJAAkACQCACRQRAIAFBqAFqIAAQYyABKAKsASEDIAEtAKgBIgINAiABLQCpAUEBcUUNAiAAKQPwAiIJIAApA9gCIgtWDQEMBgsgAUGoAWogABC5AiABLQCoAUEBRgRAIAEoAqwBIQIMEQsgAS0AqQENCUEAIQIMEAsgACgCgAMhAyAAQQA2AoADIAMgCSALfSIKIAOtIgwgCiAMVBsiCqciAmshBCAKUA0BIAIgA0YNAyAERQ0CIAAoAvwCIgMgAiADaiAE/AoAAAwCCyADQQAgAhshAgwOCyACIANGDQELIAAgBDYCgAMLIAAgCiALfCILNwPYAiAJIAtWDQELAkAgACgCiAFBAkYNACAAKALkASIDRQ0AIAAoAugBIgJBBGsoAgAiBEF4cSIFIANBKGwiA0EEQQggBEEDcSIEG2pJDQIgBEEAIAUgA0EnaksbDQMgAhCiAgsgAEECNgKIASAAIAAoAoQDQQFqIgM2AoQDIAMgACgCiANJDQQMCQtBACECDAkLQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0EAIQIMAQtBASECDAALAAsgACACNgKAAyACIQMLIAAgCSAKfCIJNwPYAiAJIAtaDQBBACECDAILQQAhAiAAQQA2AoADIABBAToAnAMgACAJIAOtfDcD2AIMAQsgAEEBOgCcAyAANQKAAyEJQQAhAiAAQQA2AoADIAAgCSAAKQPYAnw3A9gCCyABQeACaiQAIAILlhoBC38jAEGAAWsiBSQAIAAoAgwhBgJAAkACQAJAAkAgACgCFCIBIAAoAhAiAkkEQCAAQQxqIQsDQAJAIAEgBmotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEAwsgACABQQFqIgE2AhQgASACRw0ACyACIQELIAVBCGogBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAgwhACAFKAIIIQJBFBBxIgFFDQQgAUEDNgIADAILIAUgBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAgQhACAFKAIAIQJBFBBxIgFFDQMgAUEGNgIADAELIABBADYCCCAAIAFBAWoiATYCFAJAIAEgAk8NAANAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASAGai0AACIEQQlrDiUBAQgIAQgICAgICAgICAgICAgICAgICAEIBwgICAgICAgICAgFAAsgBEHbAGsOIQUHBwcHBwcHBwcHAwcHBwcHBwcBBwcHBwcCBwcHBwcHBQcLIAAgAUEBaiIBNgIUIAEgAkcNCyACIQEMDAsgACABQQFqIgQ2AhQCQCACIARNDQAgACABQQJqIgM2AhQCQCAEIAZqLQAAQfUARw0AIAMgBCACIAIgBEkbIgRGDQEgACABQQNqIgc2AhQgAyAGai0AAEHsAEcEQCAHIQMMAQsgBCAHRg0BIAAgAUEEaiIDNgIUIAYgB2otAABB7ABGDQoLIAVB2ABqIAYgAiADEPkBIAUoAlwhACAFKAJYIQJBFBBxIgFFDQ8gAUEJNgIADA0LIAVB0ABqIAYgAiAEEPkBIAUoAlQhACAFKAJQIQJBFBBxIgFFDQ4gAUEFNgIADAwLIAAgAUEBaiIENgIUAkAgAiAETQ0AIAAgAUECaiIDNgIUAkAgBCAGai0AAEHyAEcNACADIAQgAiACIARJGyIERg0BIAAgAUEDaiIHNgIUIAMgBmotAABB9QBHBEAgByEDDAELIAQgB0YNASAAIAFBBGoiAzYCFCAGIAdqLQAAQeUARg0JCyAFQegAaiAGIAIgAxD5ASAFKAJsIQAgBSgCaCECQRQQcSIBRQ0OIAFBCTYCAAwMCyAFQeAAaiAGIAIgBBD5ASAFKAJkIQAgBSgCYCECQRQQcSIBRQ0NIAFBBTYCAAwLCyAAIAFBAWoiBDYCFAJAIAIgBE0NACAAIAFBAmoiAzYCFAJAIAQgBmotAABB4QBHDQAgAyAEIAIgAiAESRsiBEYNASAAIAFBA2oiBzYCFCADIAZqLQAAQewARwRAIAchAwwBCyAEIAdGDQEgACABQQRqIgg2AhQgBiAHai0AAEHzAEcEQCAIIQMMAQsgBCAIRg0BIAAgAUEFaiIDNgIUIAYgCGotAABB5QBGDQgLIAVB+ABqIAYgAiADEPkBIAUoAnwhACAFKAJ4IQJBFBBxIgFFDQ0gAUEJNgIADAsLIAVB8ABqIAYgAiAEEPkBIAUoAnQhACAFKAJwIQJBFBBxIgFFDQwgAUEFNgIADAoLIAAgAUEBajYCFAwDCyAAKAIAIAAoAggiA2sgCkkEQCAAIAMgCkEBQQEQpAUgACgCCCEDCyAKBEAgACgCBCADaiAJOgAAIANBAWohAwsgACADNgIIIAAgACgCFEEBajYCFEEADAULIAAgAUEBajYCFCALEP0DIgENCAwDCyAEQTBrQf8BcUEKTw0BCwJ/IwBBIGsiByQAIAAoAgwhCAJAAkACQAJAAkAgACgCFCIDIAAoAhAiBEkEQCAAIANBAWoiAjYCFCADIAhqLQAAIgFBMEYEQCACIARPDQQgAiAIai0AAEEwa0H/AXFBCkkNAwwECyABQTFrQf8BcUEITQ0BIAIhAwsgB0EYaiAIIAQgAxD5ASAHKAIcIQIgBygCGCEBQRQQcSIDRQ0EIAMgATYCDCADQQ02AgAgAyACNgIQDAMLIAIgBE8NAQNAIAIgCGotAABBMGtB/wFxQQlLDQIgACACQQFqIgI2AhQgAiAERw0AC0EAIQMMAgsgB0EIaiAIIAQgA0ECaiICIAQgAiAESRsQ+QEgBygCDCECIAcoAgghAUEUEHEiA0UNAiADIAE2AgwgA0ENNgIAIAMgAjYCEAwBC0EAIQMgAiAETw0AAkACQCACIAhqLQAAIgFB5QBGIAFBxQBGckUEQCABQS5HDQMgACACQQFqIgE2AhQgASAETw0BIAEgCGotAABBMGtB/wFxQQlLDQEgAkECaiECA0AgBCACIgFGDQMgAkEBaiECIAEgCGotAAAiBkEwa0H/AXFBCkkNAAsgACABNgIUIAZBIHJB5QBHDQMLAn8jAEEQayIDJAAgACAAKAIUIgFBAWoiAjYCFCAAKAIMIQQCQCACIAAoAhAiCE8NAAJAIAIgBGotAABBK2sOAwABAAELIAAgAUECaiICNgIUCwJAAkACQCADQQhqIAQgCCACIAhJBH8gACACQQFqIgE2AhQgAiAEai0AAEEwa0H/AXFBCU0NASABBSACCxD5ASADKAIMIQEgAygCCCEEQRQQcSICRQ0CIAIgBDYCDCACQQ02AgAgAiABNgIQDAELQQAhAiABIAhPDQADQCABIARqLQAAQTBrQf8BcUEJSw0BIAAgAUEBaiIBNgIUIAEgCEcNAAsLIANBEGokACACDAELAAshAwwCCyAHQRBqIAggBCACQQJqIgIgBCACIARJGxD5ASAHKAIUIQIgBygCECEBQRQQcSIDRQ0CIAMgATYCDCADQQ02AgAgAyACNgIQDAELIAAgBDYCFAsgB0EgaiQAIAMMAQsACyIBRQ0BDAYLIAVByABqIAYgAiABQQFqIgAgAiAAIAJJGxD5ASAFKAJMIQAgBSgCSCECQRQQcSIBRQ0GIAFBCjYCAAwECyAKBEAgACgACCEDIAkhBEEBDAELIAAoAggiAkUEQEEAIQEMBQsgACACQQFrIgM2AgggACgCBCADai0AACEEQQELIQogACgCDCEGAkACfwJAAkACQAJAIAAoAhQiASAAKAIQIgJPBEAgBCEJDAELIAAoAgQhByAEIQkDQAJAAkACQAJAAkACQCABIAZqLQAAIgRBCWsOJAEBCAgBCAgICAgICAgICAgICAgICAgIAQgICAgICAgICAgIAgALIARB3QBGDQIgBEH9AEYNAwwHCyAAIAFBAWoiATYCFCABIAJHDQQgAiEBDAULIApFDQYgACABQQFqIgE2AhQMBgsgCUH/AXFB2wBHDQQMAQsgCUH/AXFB+wBHDQMLIAAgAUEBaiIBNgIUIANFBEBBACEBDAsLIAAgA0EBayIDNgIIIAMgB2otAAAhCUEBIQogASACSQ0ACwtBAiEEAkAgCUH/AXEiAEHbAEcEQCAAQfsARw0BQQMhBAsgBUFAayAGIAIgAUEBaiIAIAIgACACSRsQ+QEgBSgCRCEAIAUoAkAhAkEUEHEiAUUNCiABIAQ2AgAMCAtBpPjGAEEoQbjnwAAQ6wcACyAKRQ0AQQcgCUH/AXEiAEHbAEYNAhogAEH7AEYNAUGk+MYAQShByOfAABDrBwALIAlB/wFxQfsARw0CIAEgAkkEQANAAkACQCABIAZqLQAAQQlrIgNBGUsNAEEBIAN0QZOAgARxDQEgA0EZRw0AIAAgAUEBajYCFCALEP0DIgENCiAAKAIMIQYCQAJAIAAoAhQiASAAKAIQIgJJBEADQAJAIAEgBmotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEAwsgACABQQFqIgE2AhQgASACRw0ACyACIQELIAVBMGogBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAjQhACAFKAIwIQJBFBBxIgFFDQ0gAUEDNgIADAsLIAVBKGogBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAiwhACAFKAIoIQJBFBBxIgFFDQwgAUEGNgIADAoLIAAgAUEBaiIBNgIUDAYLIAVBGGogBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAhwhACAFKAIYIQJBFBBxIgFFDQogAUERNgIADAgLIAAgAUEBaiIBNgIUIAEgAkcNAAsgAiEBCyAFQSBqIAYgAiABQQFqIgAgAiAAIAJJGxD5ASAFKAIkIQAgBSgCICECQRQQcSIBRQ0HIAFBAzYCAAwFC0EICyEDIAVBEGogBiACIAFBAWoiACACIAAgAkkbEPkBIAUoAhQhACAFKAIQIQJBFBBxIgFFDQUgASADNgIADAMLQQEhCiABIAJJDQALCyAFQThqIAYgAiABQQFqIgAgAiAAIAJJGxD5ASAFKAI8IQAgBSgCOCECQRQQcSIBRQ0CIAFBBTYCAAsgASACNgIMIAEgADYCEAsgBUGAAWokACABDwsAC+UQAgp/B30gA0EITwRAIAAgACADQQN2IgNBBHQiBWogACADQRxsIghqIAMgBBChASEAIAEgASAFaiABIAhqIAMgBBChASEBIAIgAiAFaiACIAhqIAMgBBChASECC0MAAIA/IRACfwJAIAAoAgAiBSAEKAIAQQRqKAIAIgMoAggiCEkEQCABKAIAIQYgAygCBCILIAVBGGxqIgQtABMiBSAELQASIgcgBC0AESIKIAcgCksbIgcgBSAHSxsiBwR9QwAAQMEgAyoCRCADLQBYQQJGIgUbIg9DAAAQQSADKgJIIAUbIA+TQwAAfkOVIAdBAWtB/wFxs5SSEIkEIg8gD5IFQwAAAAALIRIgBEEMai8BACIEQf//AXEiDUUEQCAEQRB0DAMLIARB/wdxIQUgBEGAgAJxIQogBEGA+AFxIglBgPgBRgRAIApBEHQiCkGAgID8B3IgBUUNAxogCiAFQQ10ckGAgID+B3IMAwsgCkEQdCEKIAlFDQEgCUENdEGAgID8AHEgBUENdHJBgICAwANqIApyDAILIAUgCEHcu8cAEIwHAAsgBSAFZ0EQayIFQf//A3FBCGp0Qf///wNxIApBgICA2ANyIAVBF3Rrcgu+Ig9DAACAP14EQCAPEMYFQ1T4LUCUQwAAgD+SkSEQC0MAAIA/IQ8CfwJAIAYgCEkEQCALIAZBGGxqIgUtABMiBiAFLQASIgogBS0AESIJIAkgCkkbIgogBiAKSxsiCgR9QwAAQMEgAyoCRCADLQBYQQJGIgYbIhFDAAAQQSADKgJIIAYbIBGTQwAAfkOVIApBAWtB/wFxs5SSEIkEIhEgEZIFQwAAAAALIRMgBUEMai8BACIFQf//AXEiDkUEQCAFQRB0DAMLIAVB/wdxIQYgBUGAgAJxIQkgBUGA+AFxIgxBgPgBRgRAIAlBEHQiCUGAgID8B3IgBkUNAxogCSAGQQ10ckGAgID+B3IMAwsgCUEQdCEJIAxFDQEgDEENdEGAgID8AHEgBkENdHJBgICAwANqIAlyDAILIAYgCEHcu8cAEIwHAAsgBiAGZ0EQayIGQf//A3FBCGp0Qf///wNxIAlBgICA2ANyIAZBF3Rrcgu+IhFDAACAP14EQCAREMYFQ1T4LUCUQwAAgD+SkSEPCyACKAIAIQkgBwR9QwAAQMEgAyoCRCADLQBYQQJGIgYbIhFDAAAQQSADKgJIIAYbIBGTQwAAfkOVIAdBAWtB/wFxs5SSEIkEIhEgEZIFQwAAAAALIRRDAACAPyERAn8gBEEQdCANRQ0AGiAEQf8HcSEGIARBgIACcSEHIARBgPgBcSIEQYD4AUYEQCAHQRB0IgRBgICA/AdyIAZFDQEaIAQgBkENdHJBgICA/gdyDAELIAdBEHQiByAEQQ10QYCAgPwAcSAGQQ10ckGAgIDAA2pyIAQNABogBiAGZ0EQayIEQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIARBF3Rrcgu+IhVDAACAP14EQCAVEMYFQ1T4LUCUQwAAgD+SkSERCwJ/AkAgCCAJSwRAIBIgEJQiECATIA+UYCALIAlBGGxqIgQtABMiBiAELQASIgcgBC0AESIJIAcgCUsbIgcgBiAHSxsiBgR9QwAAQMEgAyoCRCADLQBYQQJGIgcbIg9DAAAQQSADKgJIIAcbIA+TQwAAfkOVIAZBAWtB/wFxs5SSEIkEIg8gD5IFQwAAAAALIRJFIQsgECAQWyEMIARBDGovAQAiBEH//wFxIg1FBEAgBEEQdAwDCyAEQf8HcSEIIARBgIACcSEHIARBgPgBcSIJQYD4AUYEQCAHQRB0IgdBgICA/AdyIAhFDQMaIAcgCEENdHJBgICA/gdyDAMLIAdBEHQhByAJRQ0BIAlBDXRBgICA/ABxIAhBDXRyQYCAgMADaiAHcgwCCyAJIAhB3LvHABCMBwALIAggCGdBEGsiCEH//wNxQQhqdEH///8DcSAHQYCAgNgDciAIQRd0a3ILQwAAgD8hD74iEEMAAIA/XgRAIBAQxgVDVPgtQJRDAACAP5KRIQ8LIAsgDHEiCCAUIBGUIhAgEFsgECASIA+UYEVxRgR/IAIgASAIIAoEfUMAAEDBIAMqAkQgAy0AWEECRiIAGyIPQwAAEEEgAyoCSCAAGyAPk0MAAH5DlSAKQQFrQf8BcbOUkhCJBCIPIA+SBUMAAAAACwJ/IAVBEHQgDkUNABogBUH/B3EhACAFQYCAAnEhASAFQYD4AXEiAkGA+AFGBEAgAUEQdCIBQYCAgPwHciAARQ0BGiABIABBDXRyQYCAgP4HcgwBCyABQRB0IgEgAkENdEGAgID8AHEgAEENdHJBgICAwANqciACDQAaIAAgAGdBEGsiAEH//wNxQQhqdEH///8DcSABQYCAgNgDciAAQRd0a3ILviIPQwAAgD9eBH0gDxDGBUNU+C1AlEMAAIA/kpEFQwAAgD8LlCIPIA9bIA8gBgR9QwAAQMEgAyoCRCADLQBYQQJGIgAbIhBDAAAQQSADKgJIIAAbIBCTQwAAfkOVIAZBAWtB/wFxs5SSEIkEIhAgEJIFQwAAAAALAn8gBEEQdCANRQ0AGiAEQf8HcSEAIARBgIACcSEBIARBgPgBcSICQYD4AUYEQCABQRB0IgFBgICA/AdyIABFDQEaIAEgAEENdHJBgICA/gdyDAELIAFBEHQiASACQQ10QYCAgPwAcSAAQQ10ckGAgIDAA2pyIAINABogACAAZ0EQayIAQf//A3FBCGp0Qf///wNxIAFBgICA2ANyIABBF3Rrcgu+IhBDAACAP14EfSAQEMYFQ1T4LUCUQwAAgD+SkQVDAACAPwuUYEVxcxsFIAALC+oRAw1/AXsJfQJAAkACQAJAAkAgACgCCCIJRQRAQQEhBkEBIQoMAQsgACgCBCEFIAkQcSIKRQ0CQwAAEEEgACoCSCAALQBYQQJGIgQbQwAAQMEgACoCRCAEGyITk0MAAH5DlSEUIAVBFGohBgNAQQAhBAJAAn8gBkEIay8BACIBQf//AXFFBEAgAUEQdAwBCyABQf8HcSECIAFBgIACcSEHIAFBgPgBcSIBQYD4AUYEQCAHQRB0IgFBgICA/AdyIAJFDQEaIAEgAkENdHJBgICA/gdyDAELIAdBEHQiByABQQ10QYCAgPwAcSACQQ10ckGAgIDAA2pyIAENABogAiACZ0EQayICQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAJBF3Rrcgu+QwAAAABeRQ0AIAZBAWstAAAiAiAGQQJrLQAAIgEgBkEDay0AACIHIAEgB0sbIgEgASACSRsiAkUNACATIBQgAkEBa0H/AXGzlJIQiQRDAAAAAF5FDQBDAACAPyAGLwEAIgJBCHaz/RMgAiAGQQJqLQAAIgFBEHRyQf8BcbP9IAH9DAAAf0MAAH9DAAB/QwAAf0P95wEiDiAO/eQB/QwAAIC/AACAvwAAgL8AAIC//eQBIg79HwEiD4uTIA79HwAiFYuTIhGMQwAAAAAQ4AghECABs0MAAH9DlUMAAAA/lEPbD0lAlCIWEJkCIhIgDyAQIBCMIhcgDv0MAAAAAAAAAAAAAAAAAAAAAP1G/U0iDv3HAf0bAkEBcRuSIg8gESARlCAPIA+UIBUgECAXIA79GwBBAXEbkiIQIBCUkpKRIg+VlP0TIBIgECAPlZT9IAEgEiARIA+VlP0gAiAWEJsC/SADIg79DP///3////9/////f////3/9Tv0MAACAfwAAgH8AAIB/AACAf/05/aQBQQ9HDQAgDiAO/eYBIg4gDiAO/Q0ICQoLDA0ODwABAgMAAQID/eQBIg4gDiAO/Q0EBQYHAAECAwABAgMAAQID/eQB/eMB/R8AQwAAAABeIQQLIAMgCmogBDoAACAGQRhqIQYgCSADQQFqIgNHDQALIAVBGGohAyAJIApqIQZBACEBIAohBAJAAkADQCAEIAZGDQQgAUEBaiECIAQtAABBAUcNASAEQQFqIQQgA0EYaiEDIAIiASAJRw0AC0EAIQEMAQsgAiAJRgRAQQEhAQwBCyABIAlrIQVBASECQQEhAQNAAkACQCACIAVqBEAgAiAEai0AAA0BIAFBAWohAQwCC0GUocEAEN0JAAsgAyABQWhsaiIHIAP9AAIA/QsCACAHQRBqIANBEGopAgA3AgALIANBGGohAyAFIAJBAWoiAmoNAAsLIAAgCSABazYCCAsgACgCFCIHBEBBACECIAAoAhAiASEDIAohBAJAA0ACQCAEIAZHBEAgBC0AAA0BAkAgASACQRhsaiIBKAIUIgVBBU8EQCABKAIIIgFBBGsoAgAiCEF4cSILIAVBAnQiBUEEQQggCEEDcSIIG2pJDQEgCEEAIAsgBUEnaksbDQogARCiAgtBASEFIAJBAWogB0YNBCACIAdrIQhBASEBA0AgAyECAkACQCAGIAEgBGoiC0cEQCACQRhqIQMgCy0AAA0BIAVBAWohBSACQSxqKAIAIgtBBUkNAiACQSBqKAIAIgJBBGsoAgAiDEF4cSINIAtBAnQiC0EEQQggDEEDcSIMG2pJDQwgDEEAIA0gC0EnaksbDQ0gAhCiAgwCC0GkocEAEN0JAAsgAiAFQWhsaiICQShqIANBEGopAgA3AgAgAkEYaiAD/QACAP0LAgALIAggAUEBaiIBag0ACwwECwwHC0GkocEAEN0JAAsgBEEBaiEEIANBGGohAyACQQFqIgIgB0cNAAtBACEFCyAAIAcgBWs2AhQLAkAgACgCICIFBEBBACECQQkhASAKIQQCQAJAA0AgBCAGRg0EIAJBAWohAyAELQAAQQFHDQEgBEEBaiEEIAFBCWohASADIgIgBUcNAAtBACEBDAELIAMgBUYEQEEBIQEMAQsgAiAFayEHIAAoAhwgAWohA0EBIQJBASEBA0ACQAJAIAYgAiAEaiIIRwRAIAgtAAANASABQQFqIQEMAgtB1KHBABDdCQALIAMgAUF3bGoiCCADKQAANwAAIAhBCGogA0EIai0AADoAAAsgA0EJaiEDIAcgAkEBaiICag0ACwsgACAFIAFrNgIgCwJAIAAoAiwiBQRAQQAhAkEPIQEgCiEEAkACQANAIAQgBkYNBCACQQFqIQMgBC0AAEEBRw0BIARBAWohBCABQQ9qIQEgAyICIAVHDQALQQAhAQwBCyADIAVGBEBBASEBDAELIAIgBWshByAAKAIoIAFqIQNBASECQQEhAQNAAkACQCAGIAIgBGoiCEcEQCAILQAADQEgAUEBaiEBDAILQbShwQAQ3QkACyADIAFBcWxqIgggAykAADcAACAIQQdqIANBB2opAAA3AAALIANBD2ohAyAHIAJBAWoiAmoNAAsLIAAgBSABazYCLAsCQCAAKAI4IgUEQEEAIQJBFSEBIAohBAJAAkADQCAEIAZGDQQgAkEBaiEDIAQtAABBAUcNASAEQQFqIQQgAUEVaiEBIAMiAiAFRw0AC0EAIQEMAQsgAyAFRgRAQQEhAQwBCyACIAVrIQcgACgCNCABaiEDQQEhAkEBIQEDQAJAAkAgBiACIARqIghHBEAgCC0AAA0BIAFBAWohAQwCC0HEocEAEN0JAAsgAyABQWtsaiIIIAP9AAAA/QsAACAIQQ1qIANBDWopAAA3AAALIANBFWohAyAHIAJBAWoiAmoNAAsLIAAgBSABazYCOAsCQCAJBEAgCkEEaygCACIAQXhxIgRBBEEIIABBA3EiABsgCWpJDQcgAEEAIAQgCUEnaksbDQEgChCiAgsPCwwGC0HEocEAEN0JAAtBtKHBABDdCQALQdShwQAQ3QkAC0GUocEAEN0JAAsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvcEAIcfwV9IwBBMGsiBiQAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AuAFBAUcNACAAKAKsASAAKAKwASIBQQJ0IAAoArQBIgMgAWpBAnQQ4QghASADQQJ0IgMgACgCZCIFSw0BIAAoAmAhBSAGIAEQuAoiAjYCFCAGIAM2AgggAiADRw0HIAEgBSADEOAJIAFBhAhJDQAgARCbBwsgAEIANwKwASAAQbgBakEAOgAAIAAoAmgiAUGAgICAeEYgACgCdCIDQYCAgIB4RnENAiABQYCAgIB4RyADQYCAgIB4R3FFBEAgBkEANgIoIAZBATYCHCAGQZzgwAA2AhggBkIENwIgIAZBGGoQkgchAQwGC0GAgBAhCiAAKAJkIgNB//8PTQRAQYCAECADIgFrIgUgACgCXCABa0sEQCAAQdwAaiABIAVBBEEEEKQFIAAoAmQhAQsgACgCYCICIAFBAnRqIQUgA0H//w9HBH9B/P8/IANBAnRrIggEQCAFQQAgCPwLAAsgASADayIDQf//D2ohASACIANBAnRqQfz/P2oFIAULQQA2AgAgAUEBaiEKCyAAIAo2AmQgACgCpAEiC0ECdBC2CSEQAkAgACgCMEUNACAAKAI0IgFBhAhJDQAgARCbBwsgACAQNgI0IABBATYCMCAAKAJoIhFBgICAgHhGDQQgACgCdCISQYCAgIB4Rg0DIAtFDQFDAAAAQEMAAIA/IAAtAJwBQQFxGyEhIAAqAowBIAAqAogBIh2TQwAAfkOVIR4gACgCeCEXIAAoAmwhGCAAKAJ8IRMgACgCcCEUIAAoAqwBIRkgACgCYCEOQQAhAQNAIApBgIAEIAsgAWsiAyADQYCABE8bIghBAnQiBUkEQEEAIAUgCkHo38AAEOoHAAsgBiAZIAFBAnQiFSABIAhqIgNBAnQiGhDhCCICELgKIgQ2AhQgBiAFNgIIAkAgBCAFRgRAIA4gBSACEOEJIAJBhAhPBEAgAhCbBwsgASALRg0BIAhBBHQhFiAVIBdqIRsgGCABQQF0aiEPQQAhDEEAIQgCQANAIAwgFkYEQCAIIAhBBGogBUHY38AAEOoHAAsCfyAMIA5qIg1BBGooAgAiAkH//wFxRQRAIAJBEHQMAQsgAkH/B3EhBCACQYCAAnEhByACQYD4AXEiCUGA+AFGBEAgB0EQdCIHQYCAgPwHciAERQ0BGiAHIARBDXRyQYCAgP4HcgwBCyAHQRB0IgcgCUENdEGAgID8AHEgBEENdHJBgICAwANqciAJDQAaIAdBgICA2ANyIARnQRBrIgdBF3RrIAQgB0H//wNxQQhqdEH///8DcXILIRwCfyACQYCAfHEgAkEQdiICQf//AXFFDQAaIAJB/wdxIQQgAkGAgAJxIQcgAkGA+AFxIglBgPgBRgRAIAdBEHQiB0GAgID8B3IgBEUNARogByACQQ10ckGAgID+B3IMAQsgB0EQdCICIAlBDXRBgICA/ABxIARBDXRyQYCAgMADanIgCQ0AGiACQYCAgNgDciAEZ0EQayICQRd0ayAEIAJB//8DcUEIanRB////A3FyCyEJIAYCfyANQQhqKAIAIgRB//8BcUUEQCAEQRB0DAELIARB/wdxIQIgBEGAgAJxIQcgBEGA+AFxIgRBgPgBRgRAIAdBEHQiBEGAgID8B3IgAkUNARogBCACQQ10ckGAgID+B3IMAQsgB0EQdCIHIARBDXRBgICA/ABxIAJBDXRyQYCAgMADanIgBA0AGiAHQYCAgNgDciACZ0EQayIEQRd0ayACIARB//8DcUEIanRB////A3FyCzYCECAGIAk2AgwgBiAcNgIIIA0tAAMhByANQQxqKAIAIgJBCHYhBEMAAAAAIR8gAkH/AXEEQCAdIB4gAkEBa0H/AXGzlJIQiQQhHwtDAAAAACEgIARB/wFxBEAgHSAeIARBAWtB/wFxs5SSEIkEISALIAYgAkEQdiICQf8BcQR9IB0gHiACQQFrQf8BcbOUkhCJBAVDAAAAAAs4AiAgBiAgOAIcIAYgHzgCGCABIBRJBEAgASATTw0CIA0gBkEIaiAhIAezQwAAf0OVlEMAAAAAkiAGQRhqIA8vAQAgCCAbaigCABCRAiAIQQRqIQggD0ECaiEPIAFBAWohASAWIAxBEGoiDEcNAQwECwsgASAUQbjfwAAQjAcACyABIBNByN/AABCMBwALDAgLIAYgECAVIBoQ4QgiARC4CiICNgIUIAYgBTYCCCACIAVGBEAgASAOIAUQ4AkgAUGECE8EQCABEJsHCyADIgEgC0kNAQwDCwsMBgtBACADIAVB/OvAABDqBwALIBJBgICAgHhyQYCAgIB4RwRAIAAoAngiAUEEaygCACIDQXhxIgUgEkECdCICQQRBCCADQQNxIgMbakkNBiADQQAgBSACQSdqSxsNByABEKICCyAAQYCAgIB4NgJ0IBFBgICAgHhyQYCAgIB4RwRAIAAoAmwiAUEEaygCACIDQXhxIgUgEUEBdCICQQRBCCADQQNxIgMbakkNBiADQQAgBSACQSdqSxsNByABEKICCyAAQYCAgIB4NgJoC0EAIQEgAEEANgJkIAAoAmAhAyAAKAJcIQUgAEKAgICAwAA3AlwgBUUNAiADQQRrKAIAIgBBeHEiAiAFQQJ0IgVBBEEIIABBA3EiABtqSQ0EIABBACACIAVBJ2pLGw0FIAMQogIMAgtBqN/AABDdCQALQZjfwAAQ3QkACyAGQTBqJAAgAQ8LIAZBADYCGEEAIAZBFGogBkEIaiAGQRhqQeD5xAAQ9QcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvuDwEOfyMAQYABayICJAACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAihBAkcEQCABKALUASIDIAEoAtgBQRxsaiEFAkACQANAIAMiBCAFRiIDDQFB1c3HAEEVIAQoAhQgBCgCGBCsA0UEQCAEQQBBHCADG2ohA0HqzccAQRUgBCgCFCAEKAIYEKwDRQ0BCwsgBCgCGCINQQBIDQMgBCgCFCEDAkAgDUUEQEEBIQEMAQsgDRBxIgFFDQoLIA0EQCABIAMgDfwKAAALIAQoAgBBAUYEQCAEKAIMIgdBAEgNDCAEKAIIIQMCQCAHRQRAQQEhBAwBCyAHEHEiBEUNCwsgBwRAIAQgAyAH/AoAAAsgByEDDAcLIAQoAgwiCUEASA0EIAQoAgghAwJAIAlFBEBBASEKDAELIAkQcSIKRQ0KCyAJBEAgCiADIAn8CgAACyACQThqIAogCUGAgIABEN8BQQEhBCACKAI8IQggAgJ/AkAgAigCOEEBRgRAIAhBgICAgHhHDQFBAwwCCyACKAJEIQsgAigCQCEGIAJBADYCQCACQoCAgIAQNwI4QQAhAyALBEAgAkE4akEAIAsQ7wUgAigCQCEDIAYhBQNAQQFBAiAFLAAAIgdBAE4iDhsiDCACKAI4IAMiBGtLBH8gAkE4aiAEIAwQ7wUgAigCQAUgBAsgAigCPCIEaiIPIA4EfyAHBSAPIAdBvwFxOgABIAdBwAFxQQZ2QUByCzoAACACIAMgDGoiAzYCQCAFQQFqIQUgC0EBayILDQALIAIoAjghBwsgCQRAIApBBGsoAgAiBUF4cSIOQQRBCCAFQQNxIgUbIAlqSQ0PIAVBACAOIAlBJ2pLGw0QIAoQogILIAgEQCAGQQRrKAIAIgVBeHEiCkEEQQggBUEDcSIFGyAIakkNDyAFQQAgCiAIQSdqSxsNECAGEKICCyADQQBODQgMDQsgCARAIAIoAkAiBUEEaygCACIDQXhxIgRBBEEIIANBA3EiAxsgCGpJDQ4gA0EAIAQgCEEnaksbDQ8gBRCiAgtBBAs6ACkgAkEeOgAoIAJBOGogAkEoahD8AyACQRBqIgUgAkHMAGr9AAIA/QsDACACQSBqIgQgAkHcAGooAgA2AgAgAiAC/QACPP0LAwAgAigCOCIDQQZGDQEgACAC/QADAP0LAgQgAEEkaiAEKAIANgIAIABBFGogBf0AAwD9CwIAIAAgAzYCAAwICyABKALIASIDIAEoAswBQRhsaiEFAkADQCADIgQgBUYiAQ0BQdXNxwBBFSAEKAIEIAQoAggQrANFBEAgBEEAQRggARtqIQNB6s3HAEEVIAQoAgQgBCgCCBCsA0UNAQsLIAQoAggiBkEASA0LIAQoAgQhAwJAIAZFBEBBASEBDAELIAYQcSIBRQ0KCyAGBEAgASADIAb8CgAACyAEKAIUIgVBAEgNCyAEKAIQIQQCQCAFRQRAQQEhAwwBCyAFEHEiA0UNCgsgBQRAIAMgBCAF/AoAAAsgACAFNgIMIAAgAzYCCCAAIAU2AgQgAEEGNgIAIAZFDQogAUEEaygCACIAQXhxIgNBBEEIIABBA3EiABsgBmpJDQwgAEEAIAMgBkEnaksbDQ0gARCiAgwKCyAAQoaAgICAgICAgH83AwAMCQsgAiAKIAlBfxDfASACKAIEIQwCQAJAIAIoAgBBAUYEQCAMQYCAgIB4Rg0BIAJBADYCSCACQQE2AjwgAkGoscQANgI4IAJCBDcCQCACQThqQbCxxAAQjQgACyAMQYCAgIB4Rw0BCyACQZ4GOwFkIAAgAkHkAGoQ/AMMBwsgAigCDCELIAIoAgghByACQQA2AnwgAkKAgICAEDcCdEEBIQhBACEDIAsEQCACQfQAakEAIAsQ7wUgAigCfCEGIAchBQNAQQFBAiAFLAAAIgNBAE4iDhsiDyACKAJ0IAYiBGtLBH8gAkH0AGogBCAPEO8FIAIoAnwFIAQLIAIoAngiCGoiBCAOBH8gAwUgBCADQb8BcToAASADQcABcUEGdkFAcgs6AAAgAiAGIA9qIgY2AnwgBUEBaiEFIAtBAWsiCw0ACyACKAJ0IQMLIAwEQCAHQQRrKAIAIgRBeHEiBUEEQQggBEEDcSIEGyAMakkNCyAEQQAgBSAMQSdqSxsNDCAHEKICCyAGQQBIDQMMBQtBrJjHABDdCQALQaTvwQAQ/wcMBQtB2JrIABD/BwALQdiayAAQ/wcACwJAIANFBEBBASEIDAELIAMQcSIIRQ0DCyADBEAgCCAEIAP8CgAACyADIQYgBCEKIAchCQsCQCAGRQRAQQEhBwwBCyAGEHEiB0UNAgsgBgRAIAcgCCAG/AoAAAsgAwRAIAhBBGsoAgAiBEF4cSIFQQRBCCAEQQNxIgQbIANqSQ0FIARBACAFIANBJ2pLGw0GIAgQogILIAAgBjYCDCAAIAc2AgggACAGNgIEIABBBjYCAAsgDQRAIAFBBGsoAgAiAEF4cSIDQQRBCCAAQQNxIgAbIA1qSQ0EIABBACADIA1BJ2pLGw0FIAEQogILIAlFDQEgCkEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgCWpJDQMgAEEAIAEgCUEnaksbDQQgChCiAgwBCwALIAJBgAFqJAAPC0Gk78EAEP8HAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL7Q8CIX8VfSMAQfAAayIGJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AuAFBAUcNACAAKAKsASAAKAKwASIFQQJ0IAAoArQBIgcgBWpBAnQQ4QghBSAHQQJ0IgcgACgCZCIISw0BIAAoAmAhCCAGIAUQuAoiCTYCFCAGIAc2AhggByAJRw0LIAUgCCAHEOAJIAVBhAhJDQAgBRCbBwsgAEIANwKwASAAQbgBakEAOgAAIAAoAhBFDQggACgCFCABQQJ0IAEgAmpBAnQQ4QghDQJAIAJBAnQiASAAKAJkIgVNBEAgACABNgJkIAAoAmAhCiABIQcMAQsgBSEIIAEgBWsiByAAKAJcIAVrSwRAIABB3ABqIAUgB0EEQQQQpAUgACgCZCEICyAAKAJgIgogCEECdCIJaiELIAdBAk8EQCABIAVBf3NqQQJ0IgwEQCALQQAgDPwLAAsgAkEEdCAFQQJ0ayAKaiAJakEEayELIAcgCGpBAWshCAsgC0EANgIAIAAgCEEBaiIHNgJkIAEgB0sNAgsgBiANELgKIgU2AhQgBiABNgIYIAEgBUcNCiAKIAEgDRDhCSAEQRVuIRAgBEEUa0EVbkEBaiERIARBE2tBFW5BAWohEiAEQRJrQRVuQQFqIRMgBEERa0EVbkEBaiEUIARBEGtBFW5BAWohFSAEQQ9rQRVuQQFqIRYgBEEOa0EVbkEBaiEXIARBDWtBFW5BAWohGCAEQQxrQRVuQQFqIRkgBEELa0EVbkEBaiEaIARBCmtBFW5BAWohGyAEQQlrQRVuQQFqIRwgBEEIa0EVbkEBaiEdIARBB2tBFW5BAWohHiAEQQZrQRVuQQFqIR8gBEEFa0EVbkEBaiEgIARBBGtBFW5BAWohISAEQQNrQRVuQQFqISIgBEECa0EVbkEBaiEjIARBAWtBFW5BAWohJEMAAPhBIAAqApgBlSEmQQAhBQNAIAVBAnQiACAHTw0DIABBAXIiASAHTw0EIABBAnIiCCAHTw0FIABBA3IiCSAHTw0HIAogAEECdGooAgAhACAGIAogAUECdGooAgA2AgggBiAANgIEIAYgCiAJQQJ0aigCADYCECAGIAogCEECdGooAgA2AgxBACEMIAZBHGoiDkEAQdQA/AsAIAVBFWwhASAFQQFqQQYhAEEAIQsDQCAGQQRqIABBBmsiD0EDdkH8////AXFqIiUoAgAgD0EecXYhCCAOIA9B4AFxQSBqIABJBH8gC0EPSw0IICUoAgQgDEEecXQgCHIFIAgLQRp0QRp1siAmlTgCACAAQQZqIQAgDEEGayEMIA5BBGohDiALQQFqIgtBFUcNAAsgBSAkRg0KIAYqAmwhJyAGKgJoISggBioCZCEpIAYqAmAhKiAGKgJcISsgBioCWCEsIAYqAlQhLSAGKgJQIS4gBioCTCEvIAYqAkghMCAGKgJEITEgBioCQCEyIAYqAjwhMyAGKgI4ITQgBioCNCE1IAYqAjAhNiAGKgIsITcgBioCKCE4IAYqAiQhOSAGKgIgITogAyABQQJ0aiAGKgIcOAIAIAFBAWohACAFICNGBEAgACEBDAsLIAMgAEECdGogOjgCACABQQJqIQAgBSAiRgRAIAAhAQwLCyADIABBAnRqIDk4AgAgAUEDaiEAIAUgIUYEQCAAIQEMCwsgAyAAQQJ0aiA4OAIAIAFBBGohACAFICBGBEAgACEBDAsLIAMgAEECdGogNzgCACABQQVqIQAgBSAfRgRAIAAhAQwLCyADIABBAnRqIDY4AgAgAUEGaiEAIAUgHkYEQCAAIQEMCwsgAyAAQQJ0aiA1OAIAIAFBB2ohACAFIB1GBEAgACEBDAsLIAMgAEECdGogNDgCACABQQhqIQAgBSAcRgRAIAAhAQwLCyADIABBAnRqIDM4AgAgAUEJaiEAIAUgG0YEQCAAIQEMCwsgAyAAQQJ0aiAyOAIAIAFBCmohACAFIBpGBEAgACEBDAsLIAMgAEECdGogMTgCACABQQtqIQAgBSAZRgRAIAAhAQwLCyADIABBAnRqIDA4AgAgAUEMaiEAIAUgGEYEQCAAIQEMCwsgAyAAQQJ0aiAvOAIAIAFBDWohACAFIBdGBEAgACEBDAsLIAMgAEECdGogLjgCACABQQ5qIQAgBSAWRgRAIAAhAQwLCyADIABBAnRqIC04AgAgAUEPaiEAIAUgFUYEQCAAIQEMCwsgAyAAQQJ0aiAsOAIAIAFBEGohACAFIBRGBEAgACEBDAsLIAMgAEECdGogKzgCACABQRFqIQAgBSATRgRAIAAhAQwLCyADIABBAnRqICo4AgAgAUESaiEAIAUgEkYEQCAAIQEMCwsgAyAAQQJ0aiApOAIAIAFBE2ohACAFIBFGBEAgACEBDAsLIAMgAEECdGogKDgCACABQRRqIQEgBSAQRg0KIAMgAUECdGogJzgCACIFIAJHDQALDAcLQQAgByAIQfzrwAAQ6gcAC0EAIAEgB0GM1cAAEOoHAAsgACAHQbzUwAAQjAcACyABIAdBzNTAABCMBwALIAggB0Hc1MAAEIwHAAtBBEEEQfDPxwAQjAcACyAJIAdB7NTAABCMBwALIA1BhAhJDQAgDRCbBwsgBkHwAGokAA8LIAEgBEH81MAAEIwHAAsgBkEANgIcQQAgBkEUaiAGQRhqIAZBHGpB4PnEABD1BwALvxECE38EfiMAQSBrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgZBgICAgHhzIAZBAE4bQRRrDgIBAgALIAEgAkEfakGE48AAEJUIIQEgAEECNgIAIAAgATYCBAwKCyABKAIMIgNFDQIgAkEEaiABKAIIIgcQoAQgAigCCCEGIAIoAgQiCkGAgICAeEYEQCAGIQEMCQsgAigCFCEJIAIoAhAhBSADQQFGDQEgAigCGCEMIAIoAgwhDSACQQRqIgsgB0EQahDTAiACKAIIIQEgAigCBA0HAkACQAJAIANBAkcEQCACKQIMIRUgCyAHQSBqENMCIAIoAgghCyACKAIEBEAgCyEBDAwLIANBA0YNASACKQIMIRYCQAJAAkBBFSAHQTBqIg4oAgAiD0GAgICAeHMgD0EAThtBEGsOAwYBBgALIAJBBGogDhCfBQwBCyACQQRqIAcoAjQQnwULIAIoAgwhECACKAIIIQQgAigCBEUNAiAEIQEMCwtBAkHA/cAAQYD9wAAQ2wYhAQwKC0EDQcD9wABBgP3AABDbBiEBDAkLQQEhCAsgA0EERwRAIAJBBDYCBCADQfz///8AakH/////AHFBBGogAkEEakHolcEAENsGIQEgAEECNgIAIAAgATYCBCAKBEAgBiAKQQEQogcLIAVFDQogCSAFQQEQogcMCgsgACAWNwI0IAAgCzYCMCAAIBU3AiggACABNgIkIAAgDDYCICAAIAk2AhwgACAFNgIYIAAgDTYCFCAAIAY2AhAgACAKNgIMIAAgEDYCCCAAIAQ2AgQgACAINgIADAkLIAEoAggiBkUNAyAGQQV0IRIgASgCBCETQQAhBkECIQVBgICAgHghBwNAAkACQAJAAkACQAJAAkACQEEVIA4gE2oiASgCACIDQYCAgIB4cyADQQBOG0EBaw4PAQAAAgAAAAAAAAADBAUGAAsgASACQR9qQZTkwAAQlQghAyACQQE6AAQgAiADNgIIDAYLIAJBADoABCACQQQgAUEEai0AACIDIANBBE8bOgAFDAULIAJBADoABCACQgQgAUEIaikDACIVIBVCBFobPAAFDAQLIAFBCGooAgAhAwJ/AkACQAJAAkAgAUEMaigCAEEEaw4CAQADCyADQZD9wABBBRDbBw0BQQAMAwtBASADKAAAQe3SuZsHRg0CGiADKAAAQe3C4ZsHRw0BQQIMAgsgA0Gd/cAAQQUQ2wcNAEEDDAELQQQLIQMgAkEAOgAEIAIgAzoABQwDCyABQQRqKAIAIQMCfwJAAkACQAJAIAFBCGooAgBBBGsOAgEAAwsgA0GQ/cAAQQUQ2wcNAUEADAMLQQEgAygAAEHt0rmbB0YNAhogAygAAEHtwuGbB0cNAUECDAILIANBnf3AAEEFENsHDQBBAwwBC0EECyEDIAJBADoABCACIAM6AAUMAgsgAkEEaiABQQhqKAIAIAFBDGooAgAQ2QUMAQsgAkEEaiABQQRqKAIAIAFBCGooAgAQ2QULIAItAARBAUYEQCACKAIIIQRBASEFDAYLIAFBEGohAwJAAkACQAJAAkACQAJAIAItAAUOBAABAgMGCyAHQYCAgIB4RwRAQQEhBUGQ/cAAQQUQnwchBAwMCyACQQRqIAMQoAQgAigCCCEIIAIoAgQiB0GAgICAeEYEQCAIIQQMDQsgAigCGCEQIAIoAhQhDCACKAIQIQkgAigCDCERDAULIAYNAiACQQRqIAMQ0wIgAigCCCEEIAIoAgRBAUYEQEEBIQUMCwsgAikCDCEWQQEhBgwECyAPDQIgAkEEaiADENMCIAIoAgghCyACKAIEQQFGBEBBASEFIAshBAwKCyACKQIMIRdBASEPDAMLIAVBAkcEQEEBIQVBnf3AAEEFEJ8HIQQMCQtBACEFAkACfwJAAkBBFSADKAIAIhRBgICAgHhzIBRBAE4bQRBrDgMDAQMACyACQQRqIAMQnwUgDSACKAIMIAIoAgQiARsMAQsgAkEEaiABQRRqKAIAEJ8FIA0gAigCDCACKAIEIgEbCyENIAIoAgghCkEBIQUgAUUNACAKIQQMCQsgCq0gDa1CIIaEIRgMAgtBASEFQZX9wABBBBCfByEEDAcLQQEhBUGZ/cAAQQQQnwchBAwGCyAOQSBqIg4gEkcNAAsMAgtBAUHA/cAAQYD9wAAQ2wYhAQwFC0EAQcD9wABBgP3AABDbBiEBDAULIAdBgICAgHhGDQAgAiAQNgIYIAIgDDYCFCACIAk2AhAgAiARNgIMIAIgCDYCCCACIAc2AgQgBkEAIA8bRQRAQZn9wABBlf3AACAGG0EEEJwHIQQgAkEEahDmBUEAIQUMAgsgACAXNwI0IAAgCzYCMCAAIBY3AiggACAENgIkIAAgEDYCICAAIAw2AhwgACAJNgIYIAAgETYCFCAAIAg2AhAgACAHNgIMIABCACAYIAVBAkYiARsiFT4CBCAAQQAgBSABGzYCACAAIBVCIIg+AggMBQtBgICAgHghB0EBIQVBkP3AAEEFEJwHIQQLIAVFIAdBgICAgHhGcg0AIAcEQCAIQQRrKAIAIgFBeHEiBkEEQQggAUEDcSIBGyAHakkNBSABQQAgBiAHQSdqSxsNBiAIEKICCyAJRQ0AIAxBBGsoAgAiAUF4cSIIQQRBCCABQQNxIgEbIAlqSQ0EIAFBACAIIAlBJ2pLGw0FIAwQogILIAAgBDYCBCAAQQI2AgAMAgsgCgRAIAZBBGsoAgAiBEF4cSIIQQRBCCAEQQNxIgQbIApqSQ0DIARBACAIIApBJ2pLGw0EIAYQogILIAVFDQAgCUEEaygCACIEQXhxIghBBEEIIARBA3EiBBsgBWpJDQIgBEEAIAggBUEnaksbDQMgCRCiAgsgACABNgIEIABBAjYCAAsgAkEgaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALqBECB30QfyMAQSBrIgwkACAAEKMFIABBwAFqQQA6AAAgAEIANwK4ASAAIAIQ0AQCQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJ/AkACQAJAAkACQCAAKAIAQQFHDQAgACgCCEUNACACQQJ0Ig0gACgCfCIRSw0SIA0gACgCiAEiEksNEyAAKAJ4IRQgACgChAEhFiAMIAAoAgQiGSABQQJ0IhcgASACakECdCIYEOEIIgEQuAoiDjYCACAMIA02AgQgDSAORw0YIBQgDSABEOEJIAFBhAhPBEAgARCbBwsgAgRAIBRBDGohGiANQQJrIRsgAkH/////A3EhFUEAIQFBACEOA0AgASAETw0WIAFBAWoiDyAETw0XIAFBAmoiDyAETw0YIBVFDRlDAAB/QyADQQRqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgAyoCACIJiyIGIAUgA0EIaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIPQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByATIBpqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgD0EbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACABQQNqIARPDQMgAUEEaiAETw0IIAFBBWogBE8NDSANIA5GDRNDAAB/QyADQRBqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EMaioCACIJiyIGIAUgA0EUaioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIQQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByATIBZqIg9DAAB/QyAGIAWVIgYgBkMAAH9DXhsQuQf8ASAQQRt0QYCAgAhBACAJQwAAAABdG3JBgICAEEEAIAhDAAAAAF0bckGAgIAgQQAgCkMAAAAAXRtyciAH/AFBCHRyQwAAf0MgCyAFlSIFIAVDAAB/Q14bELkH/AFBEHRyNgIAIAFBBmogBE8NBCABQQdqIARPDQkgAUEIaiAETw0OQwAAf0MgA0EcaioCACIIiyIFQwAAgD9DAAD4QUMAAAAAIANBGGoqAgAiCYsiBiAFIANBIGoqAgAiCosiCxDgCBDgCBCeBY5DAABwQZIiBSAFQwAAAABdGyIFIAVDAAD4QV4bELkH/AAiEEEPaxCwBkMAAH9DlSIFlSIHIAdDAAB/Q14bELkHIQcgD0EEakMAAH9DIAYgBZUiBiAGQwAAf0NeGxC5B/wBIBBBG3RBgICACEEAIAlDAAAAAF0bckGAgIAQQQAgCEMAAAAAXRtyQYCAgCBBACAKQwAAAABdG3JyIAf8AUEIdHJDAAB/QyALIAWVIgUgBUMAAH9DXhsQuQf8AUEQdHI2AgAgAUEJaiAETw0FIAFBCmogBE8NCiABQQtqIARPDQ8gDiAbRg0SQwAAf0MgA0EoaioCACIIiyIFQwAAgD9DAAD4QUMAAAAAIANBJGoqAgAiCYsiBiAFIANBLGoqAgAiCosiCxDgCBDgCBCeBY5DAABwQZIiBSAFQwAAAABdGyIFIAVDAAD4QV4bELkH/AAiEEEPaxCwBkMAAH9DlSIFlSIHIAdDAAB/Q14bELkHIQcgD0EIakMAAH9DIAYgBZUiBiAGQwAAf0NeGxC5B/wBIBBBG3RBgICACEEAIAlDAAAAAF0bckGAgIAQQQAgCEMAAAAAXRtyQYCAgCBBACAKQwAAAABdG3JyIAf8AUEIdHJDAAB/QyALIAWVIgUgBUMAAH9DXhsQuQf8AUEQdHI2AgAgAUEMaiAETw0GIAFBDWogBE8NCyABQQ5qIARPDRBDAAB/QyADQTRqKgIAIgiLIgVDAACAP0MAAPhBQwAAAAAgA0EwaioCACIJiyIGIAUgA0E4aioCACIKiyILEOAIEOAIEJ4FjkMAAHBBkiIFIAVDAAAAAF0bIgUgBUMAAPhBXhsQuQf8ACIQQQ9rELAGQwAAf0OVIgWVIgcgB0MAAH9DXhsQuQchByAPQQxqQwAAf0MgBiAFlSIGIAZDAAB/Q14bELkH/AEgEEEbdEGAgIAIQQAgCUMAAAAAXRtyQYCAgBBBACAIQwAAAABdG3JBgICAIEEAIApDAAAAAF0bcnIgB/wBQQh0ckMAAH9DIAsgBZUiBSAFQwAAf0NeGxC5B/wBQRB0cjYCACADQTxqIQMgAUEPaiEBIBNBEGohEyAVQQFrIRUgDkEEaiEOIAJBAWsiAg0ACwsgDCAZIBcgGBDhCCIBELgKIgI2AgAgDCARNgIEIAIgEUcNGCABIBQgERDgCSABQYQITwRAIAEQmwcLIAwgACgCDCAXIBgQ4QgiABC4CiIBNgIAIAwgEjYCBCABIBJHDRggACAWIBIQ4AkgAEGECEkNACAAEJsHCyAMQSBqJAAPCyABQQNqDAMLIAFBBmoMAgsgAUEJagwBCyABQQxqCyAEQdi8wQAQjAcACyABQQRqDAMLIAFBB2oMAgsgAUEKagwBCyABQQ1qCyAEQei8wQAQjAcACyABQQVqDAMLIAFBCGoMAgsgAUELagwBCyABQQ5qCyAEQfi8wQAQjAcACyAOQQJqIQ4LIA4gDUGIvcEAEIwHAAtBACANIBFBmL3BABDqBwALQQAgDSASQYi8wQAQ6gcACyABIARBmLzBABCMBwALIA8gBEGovMEAEIwHAAsgDyAEQbi8wQAQjAcACyAOQQNqIA1ByLzBABCMBwALIAxBADYCCEEAIAwgDEEEaiAMQQhqQeD5xAAQ9QcAC/8SAwt/BH4CeyMAQaACayIEJAACQCABKAIQIgUoAjAgAk0EQCAAQgM3AwAgAEGEgICAeDYCCAwBCyAFKAIsIAJBuAFsaiEGAkACQCADLQAIRQRAIAYtAKABIQUgAygCACICRQ0BIAVBAXENAgtBACECIANBADYCAAwBC0EAIQIgBUEBcUUNACAAQSE2AhAgAEHknccANgIMIABBg4CAgHg2AgggAEIDNwMADAELAkACQCAGLQBoQQNGBEAgBikDYCERDAELIAEoAgQiBa0hEAJAAkAgBUL/////DyAGKQNQIg8gD0L/////D1obp2siCEEAIAUgCE8bQR1NBEBBqJDIACkDACIRpyECAkAgEUL/AYNCBFEEQCABIA9CHnw3AwggAkH/AXFBBEcNAQwDCyABIBA3AwggAkH/AXFBBEYNAgsgEUIgiKchASARQgiIpyIFIQMCQAJAAkACQCACQf8BcSIIQQFrDgMBAAACCyABLQAIIQMLIANB/wFxQSVGDQELIAQgATYCUCAEQYGAgIB4NgJIIAQgBUEIdCAIcjYCTAwFCyAEQR42AiQgBEGFnscANgIgIAQgBEEgaq1CgICAgCCENwMYIARCATcCrAEgBEEBNgKkASAEQbiexwA2AqABIAQgBEEYajYCqAEgBEHIAGogBEGgAWoQ7AMgAkH/AXFBA0cNBCABKAIAIQIgAUEEaigCACIDKAIAIgUEQCACIAURAwALIAMoAgQiBQRAIAIgBSADKAIIEKIHCyABQQxBBBCiBwwECyABIA9CHnwiETcDCCABKAIAIA8gECAPIBBUG6dqIgUoAABB0JaNIEYNAQsgBEHQAGpB5J7HACgCADYCACAEQdyexwApAgA3A0gMAgsgBTMAHCEPIAUzABohECAEQgE3A6ABIAQgDyAQIBF8fCIRNwOoASAGQeAAaiAEQaABahDIBgsgASARNwMIIAQgBikDQCIPNwNAIAQgDzcDOEGDgICAeCEFAn4CQAJAIAYvAYQBIgdBAkYEQEHgnMcAIQFBICECDAELIAQpAjwhECAPQiCIpyEKIA+nIQggBjMBICEPAn8CQAJAAkAgAgRAIA9QDQFBmIvBACEBQccAIQIMBQsgD1ANAUGFgICAeCEFDAQLIAMoAgQhBwJAIAYtAKIBIgxFBEAgBi0AiwEhCwwBCyAGLwGYAUEBcQ0CC0EADAILQgAMBAsgBi0AnQELIQ0CQCAHRQRAQfis0ZEBIQNBic+VmgIhCUGQ8dmiAyEFDAELQZDx2aIDIQVBic+VmgIhCUH4rNGRASEDA0AgBUH/AXEgAi0AACADc0H/AXFBAnQoAvC9SCADQQh2cyIDQf8BcSAJakGFiKLAAGxBAWoiCUEYdnNBAnQoAvC9SCAFQQh2cyEFIAJBAWohAiAHQQFrIgcNAAsLIAQgBTYCwAEgBCAJNgK8ASAEIAM2ArgBIAQgCjYCrAEgBCAQNwKkASAEIAg2AqABIAQgATYCsAEgBEHQAGpBADYCAEIAIRAgBEIANwNIAkACQAJAIAQpA6gBIg9QRQRAIAEoAgAhCiABKAIEIgWtIRAgBEHIAGohB0EMIQMCfgNAIAogESAQIBAgEVYbpyIIaiEJAkAgBSAIayICIA8gA60iEiAPIBJUG6ciDiACIA5JGyICQQFGBEAgByAJLQAAOgAADAELIAJFDQAgByAJIAL8CgAACyAPIAKtIhJ9IQ8gESASfCERIA8gBSAIRg0BGiADIAJrIgNFDQMgAiAHaiEHIA9QRQ0AC0IACyEQIAEgETcDCAsgBCAQNwOoAUGBgICAeCEFQaiQyAApAwAiEEL/AYNCBFENAQwCCyABIBE3AwggBCAPNwOoAQsgBEG4AWoiASAELQBIEM8GGiABIAQtAEkQzwYaIAEgBC0AShDPBhogASAELQBLEM8GGiABIAQtAEwQzwYaIAEgBC0ATRDPBhogASAELQBOEM8GGiABIAQtAE8QzwYaIAEgBC0AUBDPBhogASAELQBREM8GGiABIAQtAFIQzwYaIAEgBC0AUxDPBiECAkACQCAMBEAgAkH/AXEgDUcNAQwCCyACQf8BcSALRg0BC0GFgICAeCEFDAELIAQgAf0AAgD9CwM4IAQpAqQBIRAgBCgCoAEhCCAEKAKwASIBDQIgCCEFCyAQQiCIpyECIBCnIQELIAAgAjYCECAAIAE2AgwgACAFNgIIIABCAzcDAAwDCyAEKAK0ASEDIAQoAqwBIQogBCAE/QADOP0LAyggBi8BhAEhB0IBCyERIAYoAogBIQsCQAJAQYDAABBxIgVFDQAgEEIgiKchAiAQpyEJAn8CQAJAIAdB//8DcUEBaw4CAQQACyAEIAT9AAMo/QsDkAH9DAAAAAAAIAAAAAAAAAAAAAAgBf0cACETIAj9ESAJ/RwBIAL9HAIgCv0cAyEUQgIhD0EADAELIAQgAzYCtAEgBCABNgKwASAEIAo2AqwBIAQgAjYCqAEgBCAJNgKkASAEIAg2AqABIAQgBP0AAyj9CwO4ASAEQcgBahCZBCAEQeAAaiAEQfABav0AAwD9CwMAIARB8ABqIARBgAJq/QADAP0LAwAgBEGAAWogBEGQAmr9AAMA/QsDACAEIAT9AAPYAf0LA5ABIAQgBCkD6AE3A1ggBEHAAWr9AAQAIRQgBCgC1AEhAyAEKALQASEBIAQoArQBIQkgBP0ABKABIRMgESEPIAQpA7gBIREgBCgCsAELIQdBuAEQcSICRQ0AIAIgAzYCVCACIAE2AlAgAiAU/QsDQCACIBE3AzggAiAJNgI0IAIgBzYCMCACIBP9CwMgIAIgDzcDGCACQgA3AgwgAkKAwAA3AgQgAiAFNgIAIAIgBP0AA5AB/QsDWCACIAQpA1g3A2ggAkHwAGogBEHgAGr9AAMA/QsDACACQYABaiAEQfAAav0AAwD9CwMAIAJBkAFqIARBgAFq/QADAP0LAwAgAkEBOgC0ASACIAs2ArABIAJBADYCqAEgAkIANwOgASAAQgI3AwAgACAGNgIIIABBAjYCqAEgACACNgKsAQwDCwALIAVBgMAAQQEQogcgAEEgNgIQIABB4JzHADYCDCAAQYOAgIB4NgIIIABCAzcDAAwBCyAEIAQpAEk3AA0gBCAELQBIOgAMIAQgBC0AUzoAFyAEIAQvAFE7ABUgBCgCDCEBIAAgBCkCEDcCDCAAIAE2AgggAEIDNwMACyAEQaACaiQAC6UQAQ5/IwBBgAhrIgMkAAJAIAFBA2pBfHEgAWsiBCACSwRAQQEhDkEEIQsMAQsgASAEaiILIAIgBGsiAkF8cWohDiACQQNxIQ8gAkECdiEIIAQhAgsgAEF/cyEAAkAgAkUNAEEAIQQgAkEBRwRAIAJBAXEgAkF+cSECA0AgASAEaiIHQQFqLQAAIActAAAgAHNB/wFxQQJ0KALwvUggAEEIdnMiAHNB/wFxQQJ0KALwvUggAEEIdnMhACACIARBAmoiBEcNAAtFDQELIAEgBGotAAAgAHNB/wFxQQJ0KALwvUggAEEIdnMhAAtBACEFIAhBBW4iAUEBayICQQAgASACTxshCQJAIAhBCkkEQEEAIQcMAQtBACECIAshBEEAIQcDQAJAAkAgAiAITw0AIAggAmsiBkEAIAYgCE0bIgZBAUcEQCAGQQJHBEAgBkEDRwRAIAZBBEcNBCACQQRqIQIMAwsgAkEDaiECDAILIAJBAmohAgwBCyACQQFqIQILIAIgCEHgvcgAEIwHAAsgByAEQQhqKAIAcyIHQf8BcUECdCgC0J1IIAdBBnZB/AdxKALQpUhzIAdBDnZB/AdxKALQrUhzIAdBFnZB/AdxKALQtUhzIQcgBSAEQQRqKAIAcyIFQf8BcUECdCgC0J1IIAVBBnZB/AdxKALQpUhzIAVBDnZB/AdxKALQrUhzIAVBFnZB/AdxKALQtUhzIQUgACAEKAIAcyIAQf8BcUECdCgC0J1IIABBBnZB/AdxKALQpUhzIABBDnZB/AdxKALQrUhzIABBFnZB/AdxKALQtUhzIQAgDCAEQRBqKAIAcyIMQf8BcUECdCgC0J1IIAxBBnZB/AdxKALQpUhzIAxBDnZB/AdxKALQrUhzIAxBFnZB/AdxKALQtUhzIQwgBEEMaigCACAKcyIKQf8BcUECdCgC0J1IIApBBnZB/AdxKALQpUhzIApBDnZB/AdxKALQrUhzIApBFnZB/AdxKALQtUhzIQogAkEFaiECIARBFGohBCANQQFqIg0gCUkNAAsLIAlBBWwiAiAITQRAAkAgAiAIRg0AIAsgAkECdGoiBCgCACEJQQAiBkUEQCADQfDFyABBgAj8CgAACyADIAAgCXMiAEH/AXFBAnRqKAIAIQkgBkUEQCADQfDNyABBgAj8CgAACyADIABBBnZB/AdxaigCACENIAZFBEAgA0Hw1cgAQYAI/AoAAAsgAyAAQQ52QfwHcWooAgAhECAGRQRAIANB8N3IAEGACPwKAAALIAMgAEEWdkH8B3FqKAIAIAkgDXMgEHNzIQAgCCACayICQQFGDQAgBCgCBCEJQQBFBEAgA0HwxcgAQYAI/AoAAAsgAyAFIAlzIABzIgBB/wFxQQJ0aigCACEFIAZFBEAgA0HwzcgAQYAI/AoAAAsgAyAAQQZ2QfwHcWooAgAhCSAGRQRAIANB8NXIAEGACPwKAAALIAMgAEEOdkH8B3FqKAIAIQ0gBkUEQCADQfDdyABBgAj8CgAACyADIABBFnZB/AdxaigCACAFIAlzIA1zcyEAIAJBAkYNACAEKAIIIQZBACIFRQRAIANB8MXIAEGACPwKAAALIAMgBiAHcyAAcyIAQf8BcUECdGooAgAhByAFRQRAIANB8M3IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQYgBUUEQCADQfDVyABBgAj8CgAACyADIABBDnZB/AdxaigCACEJIAVFBEAgA0Hw3cgAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgBiAHcyAJc3MhACACQQNGDQAgBCgCDCEHQQBFBEAgA0HwxcgAQYAI/AoAAAsgAyAHIApzIABzIgBB/wFxQQJ0aigCACEHIAVFBEAgA0HwzcgAQYAI/AoAAAsgAyAAQQZ2QfwHcWooAgAhCiAFRQRAIANB8NXIAEGACPwKAAALIAMgAEEOdkH8B3FqKAIAIQYgBUUEQCADQfDdyABBgAj8CgAACyADIABBFnZB/AdxaigCACAHIApzIAZzcyEAIAJBBEYNACAEKAIQIQVBACIERQRAIANB8MXIAEGACPwKAAALIAMgBSAMcyAAcyIAQf8BcUECdGooAgAhBSAERQRAIANB8M3IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQcgBEUEQCADQfDVyABBgAj8CgAACyADIABBDnZB/AdxaigCACEKIARFBEAgA0Hw3cgAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgBSAHcyAKc3MhACACQQVGDQAgAUEUbEEBIAEgARsiBEEUbGsgC2pBFGohAiAIIARBBWxqIAFBBWxrQQVrIQEDQCACKAIAIQtBACIERQRAIANB8MXIAEGACPwKAAALIAMgACALcyIAQf8BcUECdGooAgAhCyAERQRAIANB8M3IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQggBEUEQCADQfDVyABBgAj8CgAACyADIABBDnZB/AdxaigCACEFIARFBEAgA0Hw3cgAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgCCALcyAFc3MhACACQQRqIQIgAUEBayIBDQALCwJAIA9FDQAgDi0AACAAc0H/AXFBAnQoAvC9SCAAQQh2cyEAIA9BAUYNACAOLQABIABzQf8BcUECdCgC8L1IIABBCHZzIQAgD0ECRg0AIA4tAAIgAHNB/wFxQQJ0KALwvUggAEEIdnMhAAsgA0GACGokACAAQX9zDwsgAiAIIAhB0L3IABDqBwALsB8DDn8HfgN7IwBBIGsiDyQAAkACQCABQSFPBEADQCADRQRAIAEiAiACQQF2aiIGBEAgACEDA0ACQAJ/IAIgBkEBayIGTQRAIAYgAmsMAQsgA0EQaiIA/QADACEaIAMgBkEFdGoiAf0AAwAhGyAAIAFBEGoiAP0AAwD9CwMAIAP9AAMAIRkgAyAb/QsDACABIBn9CwMAIAAgGv0LAwBBAAsiAUEBdCIFQQFyIgAgAiAGIAIgBkkbIgdPDQADQCAFQQJqIgUgB0kEQAJ/AkAgAyAAQQV0aiIEKQMIIhMgAyAFQQV0aiIFKQMIIhJSDQAgBCkDECITIAUpAxAiElINAEEAIAQpAxgiEyAFKQMYIhJRDQEaCyASIBNWCyAAaiEACyADIABBBXRqIggpAxghFyADIAFBBXRqIgQpAxghFiAEKQMIIhQhEyAIKQMIIhghEgJAIBQgGFINACAEKQMQIhMgCCkDECISUg0AIBciEiAWIhNRDQILIBIgE1gNASAIKAIUIQUgCCgCECEBIAggBCkDEDcDECAEIBg+AgggCCAUPgIIIAQgGEIgiD4CDCAIIBRCIIg+AgwgBCAXPgIYIAggFj4CGCAEKQMAIRIgBCAIKQMANwMAIAggEjcDACAEIAE2AhAgBCAFNgIUIAQgF0IgiD4CHCAIIBZCIIg+AhwgACIBQQF0IgVBAXIiACAHSQ0ACwsgBg0ACwsMBAsgACABQQN2IgVB4AFsaiEGIAAgBUEHdGohBwJAIAFBwABPBEAgACAHIAYgBRDvBCEFDAELIAcpAxghGCAAKQMYIRcgACkDCCITIRUgBykDCCISIRQCfwJAIBIgE1INACAAKQMQIhUgBykDECIUUg0AQQAgGCIUIBciFVENARoLIBQgFVYLIQQgBikDGCEWIAYpAwgiFSEUAkACQCATIBVSDQAgACkDECITIAYpAxAiFFINACAXIhMgFiIUUg0AIAAhBSAERQ0BDAILIAAhBSAEIBMgFFRzDQELIAYgBwJ/AkAgEiAVUg0AIAcpAxAiEiAGKQMQIhVSDQBBACAYIhIgFiIVUQ0BGgsgEiAVVAsgBHMbIQULIANBAWshAyAFIABrIQUCfwJAIAJFDQACQAJAIAIpAwgiEyAAIAVqIgQpAwgiElINACACKQMQIhMgBCkDECISUg0AIAIpAxgiEyAEKQMYIhJRDQELIBIgE1YNAQsgD0EQaiIQIABBEGoiDv0AAwD9CwMAIA8gAP0AAwD9CwMAIAT9AAMAIRkgDiAEQRBqIgL9AAMA/QsDACAAIBn9CwMAIAIgEP0AAwD9CwMAIAQgD/0AAwD9CwMAQSAhBSAAQSBqIQogACABQQV0IgZqIQkgDikDACEXIABBGGopAwAhFiAAQQhqKQMAIRMgAP0AAzAhGiAA/QADICEbIAApAzghFEEAIQ1BACELA0AgBSEEIAAgDWoiAkFAayEMIAJBIGohCCATIRICfwJAIBMgAkHIAGopAwAiFVINACACQdAAaikDACIVIBciElINAEEBIAJB2ABqKQMAIhUgFiISUQ0BGgsgEiAVWgsgCiALQQV0aiIF/QADACEZIAhBEGogBUEQaiIC/QADAP0LAwAgCCAZ/QsDACACIAxBEGr9AAMA/QsDACAFIAz9AAMA/QsDACAEQSBqIQUgC2ohCyAAIA1BIGoiDWoiB0FAayICIAlJDQALIBv9HQEhGCACIAlGBH8gB0EgagUgBkFAaiEHA0AgACAEaiICQSBqIQwgAkFAayEIIBMhEgJ/AkAgEyACQcgAaikDACIVUg0AIAJB0ABqKQMAIhUgFyISUg0AQQEgAkHYAGopAwAiFSAWIhJRDQEaCyASIBVaCyAKIAtBBXRqIgb9AAMAIRkgDEEQaiAGQRBqIgL9AAMA/QsDACAMIBn9CwMAIAIgCEEQav0AAwD9CwMAIAYgCP0AAwD9CwMAIAtqIQsgByAEQSBqIgRHDQALIAAgBGpBIGoLIQQgCiALQQV0aiIF/QADACEZIARBEGogBUEQaiIC/QADAP0LAwAgBCAZ/QsDACACIBr9CwMAIAUgG/0LAwACfwJAIBMgGFINACAa/R0AIhggFyITUg0AQQEgFiITIBQiGFENARoLIBMgGFoLIAtqIgQgAU8NBCAQIA79AAMA/QsDACAPIAD9AAMA/QsDACAAIARBBXRqIgX9AAMAIRkgDiAFQRBqIgL9AAMA/QsDACAAIBn9CwMAIAIgEP0AAwD9CwMAIAUgD/0AAwD9CwMAIAEgBEEBaiICayEBIAAgAkEFdGohAEEADAELIA9BEGoiDiAAQRBqIhH9AAMA/QsDACAPIAD9AAMA/QsDACAAIAVqIgT9AAMAIRkgESAEQRBqIgX9AAMA/QsDACAAIBn9CwMAIAUgDv0AAwD9CwMAIAQgD/0AAwD9CwMAQSAhBSAAQSBqIRAgACABQQV0IghqIQogESkDACEXIABBGGopAwAhFiAAQQhqKQMAIRMgAP0AAzAhGiAA/QADICEbIAApAzghFEEAIQ1BACELA0AgBSEEIAAgDWoiBUFAayEJIAVBIGohDCATIRICfwJAIAVByABqKQMAIhUgE1INACAXIhIgBUHQAGopAwAiFVINAEEAIBYiEiAFQdgAaikDACIVUQ0BGgsgEiAVVgsgECALQQV0aiIG/QADACEZIAxBEGogBkEQaiIF/QADAP0LAwAgDCAZ/QsDACAFIAlBEGr9AAMA/QsDACAGIAn9AAMA/QsDACAEQSBqIQUgC2ohCyAAIA1BIGoiDWoiBkFAayIHIApJDQALIBv9HQEhGCAHIApGBH8gBkEgagUgCEFAaiEGA0AgACAEaiIFQSBqIQkgBUFAayEMIBMhEgJ/AkAgBUHIAGopAwAiFSATUg0AIBciEiAFQdAAaikDACIVUg0AQQAgFiISIAVB2ABqKQMAIhVRDQEaCyASIBVWCyAQIAtBBXRqIgj9AAMAIRkgCUEQaiAIQRBqIgX9AAMA/QsDACAJIBn9CwMAIAUgDEEQav0AAwD9CwMAIAggDP0AAwD9CwMAIAtqIQsgBiAEQSBqIgRHDQALIAAgBGpBIGoLIQcgECALQQV0aiIE/QADACEZIAdBEGogBEEQaiIF/QADAP0LAwAgByAZ/QsDACAFIBr9CwMAIAQgG/0LAwACfwJAIBMgGFINACAXIhMgGv0dACIYUg0AQQAgFiITIBQiGFENARoLIBMgGFYLIAtqIgQgAU8NAyAOIBH9AAMA/QsDACAPIAD9AAMA/QsDACAAIARBBXRqIgf9AAMAIRkgESAHQRBqIgX9AAMA/QsDACAAIBn9CwMAIAUgDv0AAwD9CwMAIAcgD/0AAwD9CwMAIAAgBCACIAMQqgEgASAEQX9zaiEBIAdBIGohACAHCyECIAFBIU8NAAsLIAAhCiMAQYAMayIHJAACQCABIgxBAkkNAEEBIQIgACABQQF2Ig1BBXQiA2ohESADIAdqIQYCQCABQQhPBEAgACAHEK4DIBEgBhCuA0EEIQIMAQsgB0EQaiAKQRBq/QADAP0LAwAgByAK/QADAP0LAwAgBiAR/QADAP0LAwAgBkEQaiARQRBq/QADAP0LAwALIAIgDUkEQCACQQV0IQEgAkEBaiEFIAIhAANAIAAhAyAFIQAgByADQQV0IgNqIgQgAyAKaiIDKQMANwMAIARBGGogA0EYaikDACIWNwMAIARBEGogA0EQaikDADcDACAEQQhqIANBCGopAwAiEzcDAAJAAkAgBEEYaykDACIUIBMiElINACAEKQMQIhIgBEEQaykDACIUUg0AIARBCGspAwAiFCAWIhJRDQELIBIgFFoNACAEKQMQIRcgBCkDACEYIAEhBQNAAkAgBSAHaiIIIAhBIGsiA/0AAwD9CwMAIAhBEGogA0EQav0AAwD9CwMAIAVBIEYEQCAHIQMMAQsgBEEgayEEAkAgCEE4aykDACIUIBMiElINACAFIAdqQTBrKQMAIhQgFyISUg0AIAhBKGspAwAiFCAWIhJSDQAgBCEDDAELIAVBIGshBSASIBRUDQELCyADIBg3AwAgCEEIayAWNwMAIAhBEGsgFzcDACAIQRhrIBM3AwALIAFBIGohASAAIAAgDUkiA2ohBSADDQALCyAMIA1rIhAgAksEQCACQQV0IQ4gAkEBaiEFQSAhCCAGIQADQCACIQEgBSECIAYgAUEFdCIBaiIEIAEgEWoiASkDADcDACAEQRhqIAFBGGopAwAiFjcDACAEQRBqIAFBEGopAwA3AwAgBEEIaiABQQhqKQMAIhM3AwACQAJAIARBGGspAwAiFCATIhJSDQAgBCkDECISIARBEGspAwAiFFINACAEQQhrKQMAIhQgFiISUQ0BCyASIBRaDQAgBCkDECEXIAQpAwAhGCAIIQMgACEJA0ACQCAJIA5qIgUgBUEgayIB/QADAP0LAwAgBUEQaiABQRBq/QADAP0LAwAgAyAORgRAIAYhAQwBCyAEQSBrIQQCQCAFQThrKQMAIhQgEyISUg0AIAkgDmpBMGspAwAiFCAXIhJSDQAgBUEoaykDACIUIBYiElINACAEIQEMAQsgA0EgaiEDIAlBIGshCSASIBRUDQELCyABIBg3AwAgBUEIayAWNwMAIAVBEGsgFzcDACAFQRhrIBM3AwALIAhBIGshCCAAQSBqIQAgAiACIBBJIgFqIQUgAQ0ACwsgBkEgayEJIAogDEEFdEEgayIAaiEDIAAgB2ohBSAHIQQDQAJAAkACQCAGKQMIIhIgBCkDCCIUUg0AIAYpAxAiEiAEKQMQIhRSDQAgBikDGCISIAQpAxgiFFINACAKIAT9AAMA/QsDACAKQRBqIARBEGr9AAMA/QsDAAwBCyAKIAYgBCASIBRUGyIA/QADAP0LAwAgCkEQaiAAQRBq/QADAP0LAwAgEiAUWg0AIAZBIGohBgwBCyAEQSBqIQQLIApBIGohCiADAn8CQCAFKQMIIhIgCSkDCCIUUg0AIAUpAxAiEiAJKQMQIhRSDQBBACEBIAUgBSkDGCISIAkpAxgiFFENARoLIAkgBSASIBRUIgEbCyIA/QADAP0LAwAgA0EQaiAAQRBq/QADAP0LAwAgA0EgayEDIAkgAUEFdCIAayEJIAAgBWpBIGshBSANQQFrIg0NAAsgCUEgaiECIAxBAXEEfyAKIAQgBiACIARLIgEbIgD9AAMA/QsDACAKQRBqIABBEGr9AAMA/QsDACAGQQBBICABG2ohBiAEQSBBACABG2oFIAQLIAJGIAYgBUEgakZxDQAQgAgACyAHQYAMaiQADAELAAsgD0EgaiQAC/4PAhh/Bn4jAEEwayIGJAAgACgCPCERIAAoAjghAyAAKAI0IQEgACgCMCEEIAD9DAAAAAAAAAAAAQAAAAEAAAD9CwQwIAAoAkAhAiAAQQA2AkAgACgCSCEFIABBATYCSCAAKAJQIQogACgCTCELIABCADcCTCAGIAU2AgwgBiALNgIQIAYgCjYCFEGo58gAIQxBgAQhCAJAAkACQAJAIAAtAJgBQQFrDgMAAQIDCyAAQaQBaiEMQbQKIQgMAgsgAEH0KmohDEG0CiEIDAELIABBxNQAaiEMQdAEIQgLQaj3yAAhDkEgIQ0CQAJAAkACQCAALQCgAUEBaw4DAAECAwsgAEGkAWohDkG0CiENDAILIABB9CpqIQ5BtAohDQwBCyAAQcTUAGohDkHQBCENCyAAKAIMIgVBQGoiB0FBSQRAQn8gADUCnAGGQn8gADUClAGGQn+FIRwgBSAHSSEJIAJB/wFxQQlLBH8gAgUgBK0gAa1CIIaEIAMpAAAgAkEPca2GhCIapyEEIBpCIIinIQEgAyACQQN2QQFxQQdzaiEDIAJBOHILIQUgAEHIAGohEiACQYB+cSEVIAAoAkQhFiAAQQhqIRNCf4UhHkEAIAcgCRshECAcpyEUAkACQANAAkAgBCADKQAAIAWthiIZp3IhAgJAAkACQAJAAkACQAJAAkACQAJAAkAgBUH/AXEiFyAAKAKUAUkEQCAIIAIgFHEiBEsNASAEIAhBqPjIABCMBwALIAggBCAUcSIETQ0BCyAFQThyIQUgASAZQiCIp3IhDyAMIARBAnRqIgEtAAMhBCABLwEAIQkgAS0AAiIBRQ0BIAohBwwCCyAEIAhBuPjIABCMBwALIAogC08NASAGKAIMIhggCmogCToAACAGIApBAWoiBzYCFAJAIAKtIA+tQiCGhCAErYgiGSAcg6ciAiAISQRAIAUgBGshBSAMIAJBAnRqIgIvAQAhCSACLQADIQQgAi0AAiIBRQ0BIBlCIIinIQ8gGachAgwCCyACIAhByPjIABCMBwALIAcgC08NAiAHIBhqIAk6AAAgBiAKQQJqIgc2AhQgCCAZIAStiCIZIByDpyICTQ0DIAUgBGshBSAZQiCIpyEPIAwgAkECdGoiAi8BACEJIAItAAMhBCACLQACIQEgGachAgsgAyAXQQN2QQdzaiEDIAUgBGshBSACrSAPrUIghoQgBK2IIhpCIIghGSAapyEEIAFB/wFxRQ0FAkACQANAIAFBEHENAiABQcAAcQ0BIAkgGkJ/IAGtQi+DhkJ/hYOnakH//wNxIgIgCEkEQCAErSAZQiCGhCAMIAJBAnRqIgItAAMiAUE/ca2IIhpCIIghGSAapyEEIAUgAWshBSACLwEAIQkgAi0AAiIBRQ0JDAELCyACIAhB6PjIABCMBwALIAFBIHFFDQUgAEEMOgAADAgLIA0gGiABrUIPgyIdiCIZIB6DpyICSw0DIAIgDUH4+MgAEIwHAAsgCiALQbz/yAAQjAcACyAHIAtBvP/IABCMBwALIAIgCEHY+MgAEIwHAAsgDiACQQJ0aiIKLQADIQsgCi0AAiEEAn8gBSABQQ9xayIBQf8BcUEcTwRAIAEhBSADDAELIAFBOHIhBSADKQAAIAGthiAZhCEZIAMgAUH4AXFBA3ZBB3NqCyECIAovAQAhAyAFIAtrIQUgGSALrYghGwJAAkACQAJAIARBEHFFBEADQCAEQcAAcQ0DIA0gAyAbQn8gBK1CL4OGQn+Fg6dqQf//A3EiA00NAiAFIA4gA0ECdGoiAS0AAyIDayEFIBsgA0E/ca2IIRsgAS8BACEDIAEtAAIiBEEQcUUNAAsLIAkgGkJ/IB2GQn+Fg6dqIQkgBSAEQQ9xayEFIBsgBK1CD4MiGogiHUIgiCEZIB2nIQQgAyAbQn8gGoZCf4WDp2pB//8DcSIKIAdLDQIgBkEMaiAKIAlB//8DcRDsAiACIQMMBgsgAyANQYj5yAAQjAcACyAbpyEEQefQwAAhAUEWIQgMAQsCQAJAAkACQCAKIAdrIgEgACgCEE0EQCAAKAIUIgMNASAQIAFrIQcMBAsgAC0AAUEEcUUNAUHVz8AAIQFBHiEIDAQLIAEgA0sNASADIAFrIQcMAgsgBkEANgIoIAZBATYCHCAGQcT5yAA2AhggBkIENwIgIAZBGGpBzPnIABCNCAALIBAgASADayIBayEHIAEgCUH//wNxTw0AIAZBDGogEyAHIBAQlAUgCSABayEJQQAhByADIQELIAZBDGogEyAHIAEgCUH//wNxIgMgASADSRsgB2oQlAUgASADTwRAIAIhAwwECyAGQQxqIAogAyABaxDsAiACIQMMAwsgAEEeOgAADAULIABBHjoAAEHL0MAAIQFBHCEIIAMhAgwECyAHIAtPDQQgBigCDCAHaiAJOgAAIAYgB0EBajYCFAsgESADayAFQfgBcUEDdmpBDk0NACAZpyEBIAYoAhAiCyAGKAIUIgprQYMCSw0BCwtBACEBIAMhAgsgACAWNgJEIAAgETYCPCASIAYpAgw3AgAgACAVIAVBB3EiA3I2AkAgEkEIaiAGQRRqKAIANgIAIAAgAiAFQfgBcUEDdms2AjggACAEQX8gA3RBf3NxrTcDMCABBEAgACAINgKIASAAIAE2AoQBCyAGQTBqJAAPCyAHIAtBvP/IABCMBwALQeT8yABBygBBsP3IABDrBwALkBECCX8EfiMAQeACayIBJAACQAJAAkAgAC0A+ANFBEAgACgCkAEiAkECRw0CIAAoAgBBAkcNAiAAKAK4AiIDQQNLDQFBACECDAMLIAA1ArgCIQogAEEANgK4AiAAIAogACkDcHw3A3AMAgsgAEGQAWohBiABIAAoArQCIgQoAAAiAjYCEAJAAkACQAJAAkACQAJAAkAgAkHSgpGaBEcEQCACQdKCkYIDRw0CIANBCEkNASADIAQoAAQiBUEHakF4cUEIaiICSQ0BIAVBCGoiByADSyAFQXdLcg0DIAFBADYC2AIgASAFNgLUAiABIARBCGo2AtACIAFBIGogAUHQAmoQWSABKAIkIQUgASgCICIIQQJGBEAgBRDOByECDAsLIAFBsAFqIAFBKGpBgAH8CgAAIABBADYCuAIgASAFNgKsASABIAg2AqgBIAMgAmshBwJAAkAgAkUNACACIANGDQEgB0UNACAEIAIgBGogB/wKAAALIAAgBzYCuAILIAAgACkDcCACrXwiCjcDeCAAIAo3A3AgASgCpAJBAUcNBCAAIAEoApQCIgQ2ApwCIAAgASgCtAEgASgCwAEiAyABKAKwARsiAjYCoAIgAkUNBSAEIAMgAm4iBCACIARsIANHaiICRgRAIAEtAKgCIQIgASAFQQAgCEEBcRs2AiQgASADNgIgIAEgAkEBcSIDOgAoIABBvAJqIAFBIGoQpQQCQCABKALQASICQQJGDQAgAkEBcQRAIAAgASoC1AE4ArwDCyABKALYAUEBRgRAIAAgASoC3AE4AsADCyABKALgAUEBRgRAIAAgASoC5AE4AsQDCyABKALoAUEBRgRAIAAgASoC7AE4AsgDCyABKALwAUEBRgRAIAAgASoC9AE4AswDCyABKAL4AUEBRgRAIAAgASoC/AE4AtADCyABKAKAAkEBRgRAIAAgASoChAI4AtQDCyABLQCIAiICQQJGDQAgACACOgDYAwsgA0UNCCAAQQE6ANgDDAgLIAEgAjYCzAIgAUECNgIkIAFB6MfBADYCICABQgI3AiwgAUKAgICAECIKIABBnAJqrYQ3A9gCIAEgCiABQcwCaq2ENwPQAiABIAFB0AJqNgIoIAFBwAJqIgAgAUEgahCxBgwGCyABQQhqIAAQugIgAS0ACEUEQCABLQAJDQhBACECDAoLIAEoAgwhAgwJC0EAIQIMCAsgAUEBNgI0IAFBzMjBADYCMCABQQE2AiQgAUHEyMEANgIgIAFBATYCLCABIAFBEGqtQoCAgICQBIQ3A9ACIAEgAUHQAmo2AiggAUEUaiIAIAFBIGoQsQYgABCOByECDAcLQQggByADQZzIwQAQ6gcACyABQQE2AiQgAUGUyMEANgIgIAFCATcCLCABIAFBpAJqrUKAgICAEIQ3A9ACIAEgAUHQAmo2AiggAUG0AmoiACABQSBqELEGDAELQbTHwQAQgQgACyAAEI4HIQIgAUGoAWoQzwQMAwsCQAJAAkAgBigCAEECRg0AIAAoAvgBIQQgACgC/AEiAwRAIARBJGohAgNAIAJBBGsoAgAiBUGAgICAeHJBgICAgHhHBEAgAigCACIHQQRrKAIAIghBeHEiCUEEQQggCEEDcSIIGyAFakkNBCAIQQAgCSAFQSdqSxsNBSAHEKICCyACQTBqIQIgA0EBayIDDQALCyAAKAL0ASIDBEAgBCADQTBsQQgQogcLIAAoAoACIgNBgICAgHhyQYCAgIB4Rg0AIAAoAoQCIANBARCiBwsgBiABQagBakGIAfwKAAAMAgtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAYoAgAhAgsCQAJAAkACQAJ/AkAgAkECRwRAIAAoApgCIAAoApwCTw0GIAAoAgBBAkYNAUEADAILIAFBqAFqIAAQRSABKAKsAUEAIAEtAKgBIgMbIQIgAw0GIAEtAKkBQQFxRQ0GIAApA4gBIgwgACkDcCIKWARAIAAoArgCIQMMBQsgACgCuAIhBEEAIQMgAEEANgK4AiAEIAwgCn0iCyAErSINIAsgDVQbIgunIgZrIQIgC1BFBEAgBCAGRg0EIAJFDQMgACgCtAIiAyADIAZqIAL8CgAADAMLIAQgBkcNAgwDC0EBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAIAJFBEAgAUGoAWogABBFIAEoAqwBIQMgAS0AqAEiAg0CIAEtAKkBQQFxRQ0CIAApA4gBIgogACkDcCIMVg0BDAYLIAFBqAFqIAAQugIgAS0AqAFBAUYEQCABKAKsASECDBELIAEtAKkBDQlBACECDBALIAAoArgCIQMgAEEANgK4AiADIAogDH0iCyADrSINIAsgDVQbIgunIgJrIQQgC1ANASACIANGDQMgBEUNAiAAKAK0AiIDIAIgA2ogBPwKAAAMAgsgA0EAIAIbIQIMDgsgAiADRg0BCyAAIAQ2ArgCCyAAIAsgDHwiDDcDcCAKIAxWDQELAkAgACgCAEECRg0AIAAoAlwiA0UNACAAKAJgIgJBBGsoAgAiBEF4cSIGIANBKGwiA0EEQQggBEEDcSIEG2pJDQIgBEEAIAYgA0EnaksbDQMgAhCiAgsgAEECNgIAIAAgACgCmAJBAWoiAzYCmAIgAyAAKAKcAkkNBAwJC0EAIQIMCQtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQQAhAgwBC0EBIQIMAAsACyAAIAI2ArgCIAIhAwsgACAKIAt8Igo3A3AgCiAMWg0AQQAhAgwCC0EAIQIgAEEANgK4AiAAQQE6APgDIAAgCiADrXw3A3AMAQsgAEEBOgD4AyAANQK4AiEKQQAhAiAAQQA2ArgCIAAgCiAAKQNwfDcDcAsgAUHgAmokACACC4oQAhl/AXsjAEFAaiIJJAAgCUEQav0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgCSAh/QsDAAJAAkAgA0UNACACQQJBACADGyINaiEPIAIgA0EBdCISaiEaIBJBAmohCEEPIQsgAiEMAkACQAJAA0AgDC8BACIKBEAgCkEPSw0CIAkgCkEBdGoiDCAMLwEAQQFqOwEAIA4gCiAKIA5JGyEOIAsgCiAKIAtLGyELCyACIA1qIQwgCCANQQJqIg1HDQALIA5FDQMgCyAOTQRAIAkvAQIiCkECSw0CIAkvAQQiDEEEIApBAXRrIghB/v8DcUsNAiAJLwEGIhYgCCAMa0EBdCIIQf7/A3FLDQIgCS8BCCIbIAggFmtBAXQiCEH+/wNxSw0CIAkvAQoiHCAIIBtrQQF0IghB/v8DcUsNAiAJLwEMIg0gCCAca0EBdCIIQf7/A3FLDQIgCS8BDiIQIAggDWtBAXQiCEH+/wNxSw0CIAkvARAiESAIIBBrQQF0IghB/v8DcUsNAiAIIBFrQf//A3FBAXQiCCAJLwESIhNJDQIgCCATa0EBdCIIIAkvARQiFEkNAiAIIBRrQQF0IgggCS8BFiIVSQ0CIAggFWtBAXQiCCAJLwEYIhdJDQIgCCAXa0EBdCIIIAkvARoiGEkNAiAIIBhrQQF0IgggCS8BHCIZSQ0CIAggGWtBAXQiCCAJLwEeIh1JDQIgCCAdRiABQf8BcUEAIA5BAUYbckUEQCAAQX82AgAMBgsgCyAGIA4gBiAOSRsgBiALSRshCCAJQQA2AiAgCSAKOwEkIAkgCiAMaiIGOwEmIAkgBiAWaiIGOwEoIAkgBiAbaiIGOwEqIAkgBiAcaiIGOwEsIAkgBiANaiIGOwEuIAkgBiAQaiIGOwEwIAkgBiARaiIGOwEyIAkgBiATaiIGOwE0IAkgBiAUaiIGOwE2IAkgBiAVaiIGOwE4IAkgBiAXaiIGOwE6IAkgBiAYaiIGOwE8IAkgBiAZajsBPiASQQJrQQF2QQFqIQwgAiEGQQAhDQNAIA8hCgJAIAYvAQAiBkUNACAGQQ9NBEAgCUEgaiAGQQF0aiIGIAYvAQAiBkEBajsBACAGQaACSQRAIAcgBkEBdGogDTsBAAwCCyAGQaACQZSDyQAQjAcACyAGQRBBhIPJABCMBwALIApBAkEAIAogGkcbaiEPIAohBiAMIA1BAWoiDUcNAAtBFCEUIAFB/wFxIgEhF0EBIRhBAiEZAkACQAJAIAFBAWsOAgABAgsgCEELTw0FQbSAyQAhGUHygMkAIRhBHyEXQYECIRQMAQsgCEEJSw0EQZKByQAhGUHSgckAIRhBICEXQQAhFAtBASAIdCIVQQFrIR4gFEEBa0H//wNxIR8gAUEBayEgQQAhD0EAIRNBACEKQQAhECAIIRJBACERQX8hFgNAAkAgFCAHIAoiG0EBdGovAQAiAUsEQCABQQAgASAfSSIBGyEGQQBB4AAgARshAQwBCyABIBRrQf//A3EiBiAXSQRAIAYgGGotAAAhASAZIAZBAXRqLwEAIQYMAQsgBiAXQYSCyQAQjAcACyAEQX8gCyARayIddCIaQQEgEnQiHCAQIA8gEXZqamoiDUECdGohDCAaQQJ0IQ8gHCEKAkACQAJ/AkACQAJAAkACQAJAA0AgBSANTQ0BIAwgBjsBACAMQQNqIB06AAAgDEECaiABOgAAIAwgD2ohDCANIBpqIQ0gCiAaaiIKDQALIAtBD0sNAUGAgICAeCALQQFrdiATaiITQRh0IBNBgP4DcUEIdHIgE0EIdkGA/gNxIBNBGHZyciIBQQR2QY+evPgAcSABQY+evPgAcUEEdHIiAUECdkGz5syZA3EgAUGz5syZA3FBAnRyIgFBAXZB1arVqgVxIAFB1arVqgVxQQF0ciEPIBtBAWohCiAJIAtBAXRqIgEgAS8BAEEBayIBOwEAAkACQCABQf//A3FFBEAgCyAORg0BIBtBnwJGDQUgAyAHIApBAXRqLwEAIgFNDQYgAiABQQF0ai8BACELCyAIIAtPDQogDyAecSIBIBZHDQEMCgsgE0UNCCAFIBBJDQUgBSAQayIBIA9LBEAgBCAQQQJ0aiAPQQJ0aiIBIB06AAMgAUHAADoAAiABQQA7AQAMCQsgDyABQdSCyQAQjAcAC0EBIAsgESAIIBEbIhFrIhJ0Ig0gCyAOTw0GGiAOIBFrIRIgCSALQQF0aiEMIAshBgNAIA0gDC8BAGsiFkEATARAIAYgEWshEgwHCyAMQQJqIQwgFkEBdCENIAZBAWoiBiAOSQ0ACwwFCyANIAVBlILJABCMBwALIAtBEEGkgskAEIwHAAtBoAJBoAJBtILJABCMBwALIAEgA0HEgskAEIwHAAsgECAFIAVB5ILJABDqBwALQQEgEnQLIBVqIRUCQAJAAkAgIA4CAAECCyAVQbQKTQ0BDAgLIBVB0ARLDQcLIAEgBUkEQCAEIAFBAnRqIgYgCDoAAyAGIBI6AAIgBiAQIBxqIhA7AQAgASEWDAILIAEgBUH0gskAEIwHAAsgACAVNgIIIAAgCDYCBCAAQQA2AgAMBwsgCkGgAkcNAAtBoAJBoAJB9IHJABCMBwALQY2cyABBHEGsnMgAEOsHAAsgCkEQQaSDyQAQjAcACyAAQX82AgAMAgsgAEEBNgIADAELIABBAjYCCCAEQoCAgIqAgICgATcBACAAQoCAgIAQNwIACyAJQUBrJAALsBMEDX8KfQN7AX4jAEGgAmsiAiQAIAEqAgAhESABKgIEIQ8gAiABKgIIIhP9EyABKgIQIhD9IAAgASoCFCIS/SAB/QsEkAEgAiAS/RMgASoCDCIS/SAAIA/9IAH9CwSAASACIBD9EyAR/SAAIBL9IAH9CwRwIAL9DAAAgD8AAAAAAAAAAAAAAAD9CwTAASAC/QwAAAAAAACAPwAAAAAAAAAA/QsEsAEgAv0MAAAAAAAAAAAAAIA/AACAP/0LBKABIBGLIA+LkiATi5JDAACAPxDgCEO9N4Y1lCITIBOUIRQgAkHAAWpBBHIhASACQaABakEEciENIAJBsAFqQQRyIQUgAkGAAWohDkEgIQsCfwNAIAIqAnQiDyAPlCACKgJ4IhAgEJSSIAL9AASAASIZ/R8CIhIgEpSSIBReRQRAIBn9HwG8DAILIAIgGSAC/QAEcCIaIBKLIBCLIhEgD4siDyAPIBFdIgwbXiIDG/0LBGAgGv0fACERIBNBCEEEIAMgDHIiBBsiByACQeAAanIqAgAiEItdBEAgAiAa/QsEUAJ9AkAgAioCmAEgGf0fASIPIAQbIA8gESADG5MiDyAPXCAQIBCSIhEgEVxyRQRAIA+8IghBgICA/ANGBEAgERDcBAwDCyAIQR52QQJxIgogEbwiBkEfdnIhCQJAAkACQAJAAkACQCAGQf////8HcSIGRQRAQ9sPScAhDyAJQQJrDgICBgELIAhB/////wdxIghFDQIgCEGAgID8B0cNAyAGQYCAgPwHRw0EIAlBAnQqAoyxSQwICyARDAcLQ9sPSUAMBgtD2w/JPyARmAwFCyAGQYCAgPwHRiAIQYCAgOgAaiAGSXINAwJ9IAoEQEMAAAAAIAZBgICA6ABqIAhJDQEaCyARIA+VixDcBAshDwJAAkACQCAJQQFrDgMBAgAECyAPQy69uzOSQ9sPScCSDAYLIA+MDAULQ9sPSUAgD0MuvbszkpMMBAsgCUECdCoCnLFJIQ8LIA8MAgsgESAPkgwBC0PbD8k/IBGYCyACQdAAaiIJIAdyKgIAIRBDAAAAP5QiDxCZAiERIANBAnQgCXIqAgAiFSAPEJsCIg+UIBEgEJSTIRIgA60hHAJAIANFBEAgAiASOAJwDAELIAIgEjgCdAtBCEEEIAQbIgkgAkHwAGpyIA8gEJQgESAVlJI4AgAgAiAZ/QsEQCAPIBynQQJ0IgogAkFAayIGcioCACISlCARIAYgB3IqAgAiFZSTIRACQCADBEAgAiAQOAKEAQwBCyACIBA4AoABCyACQfAAakEYQRQgBBtqIA8gFZQgESASlJI4AgAgAiAC/QAEkAH9CwQwIA8gAkEwaiIGIApyKgIAIhKUIBEgBiAHcioCACIVlJMhEAJ/IAMEQCACIBA4ApQBIA4MAQsgAiAQOAKQASACQfAAagshBiACQfAAaiIIQShBJCAEG2ogDyAVlCARIBKUkjgCACAGIA8gAv0ABIABIhkgAv0ABHAgAxv9HwAiEJQgESAC/QAEkAEgGSAEG/0fACISlJM4AgBBIEEQIAQbIAhqIA8gEpQgESAQlJI4AgAgBiAPIAL9AASAASIZIAL9AARwIAMb/R8BIhCUIBEgAv0ABJABIBkgBBv9HwEiEpSTOAIEQSRBFCAEGyAIaiAPIBKUIBEgEJSSOAIAIAYgDyAC/QAEgAEiGSAC/QAEcCIaIAMb/R8CIhCUIBEgAv0ABJABIBkgBBv9HwIiEpSTOAIIQShBGCAEGyAIaiAPIBKUIBEgEJSSOAIAIAYgCWpBADYCAAJ/IANFBEBBIEEQIAwbIAhqQQA2AgBCACEcIAJBwAFqIQMgAkGwAWohBCACQaABagwBCyACQQA2ApQBQgEhHCAFIQQgASEDIA0LIAIgAv0ABMAB/QsEACADIA8gAiAcp0ECdHIqAgAiEJQgESACIAdyKgIAIhKUkzgCACACIAL9AASwAf0LBCAgBCAPIAJBIGoiAyAKcioCACIVlCARIAMgB3IqAgAiFpSTOAIAIAIgAv0ABKAB/QsEECAPIAJBEGoiAyAKcioCACIXlCARIAMgB3IqAgAiGJSTOAIAIAJBwAFqIAlyIBEgEJQgDyASlJI4AgAgAkGwAWogCXIgESAVlCAPIBaUkjgCACACQaABaiAJciARIBeUIA8gGJSSOAIAIBr9HwAhEQsgC0EBayILDQALIAIoAoQBCyEDIAIgAioCmAEiEjgC3AEgAiADNgLYASAC/QAEsAEhGSAC/QAEwAEhGiAC/QAEoAEhGyACIBE4AtQBIAIgGiAZ/Q0ICQoLGBkaGwABAgMAAQIDIBv9DQABAgMEBQYHGBkaGxgZGhv9CwSAAiACIBogGf0NBAUGBxQVFhcAAQIDAAECAyAb/Q0AAQIDBAUGBxQVFhcUFRYX/QsE8AEgAiAaIBn9DQABAgMQERITAAECAwABAgMgG/0NAAECAwQFBgcQERITEBESE/0LBOABIBr9HwAiDyAPlCAZ/R8AIhMgE5SSIBv9HwAiECAQlJIiFEMAAAAAXgRAIAIgECAUkSIQlTgC6AEgAiATIBCVOALkASACIA8gEJU4AuABCyAa/R8BIg8gD5QgGf0fASITIBOUkiAb/R8BIhAgEJSSIhRDAAAAAF4EQCACIBAgFJEiEJU4AvgBIAIgEyAQlTgC9AEgAiAPIBCVOALwAQsgGv0fAiIPIA+UIBn9HwIiEyATlJIgG/0fAiIQIBCUkiIUQwAAAABeBEAgAiAQIBSRIhCVOAKIAiACIBMgEJU4AoQCIAIgDyAQlTgCgAILQQAhBCACQQA2ApwCIAJBATYCmAIgAkHUAWohB0EBIQEgEbwiBSAFQR91QQF2cyIFIANBH3VBAXYgA3MiA0gEQEEBIQQgAkEBNgKcAiACQQA2ApgCIAUhAyACQdgBaiEHQQAhAQsCQCADIBK8IgUgBUEfdUEBdnMiBU4EQEECIQMMAQsgAkGYAmohAyAFIAcoAgAiB0EfdUEBdiAHc0oEfyACIAQ2ApgCIAJBnAJqBSADC0ECNgIAAkAgAigCnAIiBEECTQRAIAIoApgCIgVBA08NASABIQMgBSEBDAILIARBA0Hg98cAEIwHAAsgBUEDQfD3xwAQjAcACyAAIAJB4AFqIgUgA0EEdGr9AAQA/QsEMCAAIAFBBHQgBWr9AAQA/QsEICAAIARBBHQgBWr9AAQA/QsEECAAIAJB1AFqIgUgA0ECdGoqAgA4AgggACABQQJ0IAVqKgIAOAIEIAAgBEECdCAFaioCADgCACACQaACaiQAC7cNAgp/An4gACgCFCECIAAoAhAhBSAAKQMIIQwgACgCBCEIIAAoAgAhCSAAKAIYIgNBAEgEQCAFIAhJBEAgCSAFQQJ0aigAACEHCyAHQRh0IAdBgP4DcUEIdHIgB0EIdkGA/gNxIAdBGHZycq0gDEIghoQhDCAFQQFqIQUgA0EgaiEDCyAMQgAgAiACQQF2IgJrIgatIANBP3GthiINIAwgDVQiBBt9IQxBACEHIAMgBiACIAQbIgJnIgNBGGsiBkEAIAMgBk8bIgZrIQMgAiAGdCECAkACQCAEBEAgBSAITQ0BDAILIANBAEgEQCAFIAhJBEAgCSAFQQJ0aigAACEHCyAHQRh0IAdBgP4DcUEIdHIgB0EIdkGA/gNxIAdBGHZycq0gDEIghoQhDCAFQQFqIQUgA0EgaiEDCyAMQgAgAiACQQF2IgJrIgStIANBP3GthiINIAwgDVQiBxt9IQwgBCACIAcbIgIgAmciAkEYayIEQQAgAiAETxsiAnQhBCADIAJrIgNBAEgEQEEAIQIgBSAISQRAIAkgBUECdGooAAAhAgsgAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnKtIAxCIIaEIQwgBUEBaiEFIANBIGohAwsgDCAEIARBAXYiAmsiBq0gA0E/ca2GIg1CACAMIA1aIgQbfSEMIAIgBiAEGyICIAJnIgJBGGsiBkEAIAIgBk8bIgJ0IQYgAyACayIDQQBIBEBBACECIAUgCEkEQCAJIAVBAnRqKAAAIQILIAJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyrSAMQiCGhCEMIAVBAWohBSADQSBqIQMLIAxCACAGIAZBAXYiAmsiCq0gA0E/ca2GIg0gDCANVCIGG30hDCAKIAIgBhsiAiACZyICQRhrIgpBACACIApPGyICdCIKIApBAXYiCmsiC60gAyACayIDQQBIBEBBACECIAUgCEkEQCAJIAVBAnRqKAAAIQILIAJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyrSAMQiCGhCEMIAVBAWohBSADQSBqIQMLIANBP3GthiINIAxYIgJBAEECIAcbIARyQQJ0QQBBAiAGG3JyIQcgDCANQgAgAht9IQwgAyAKIAsgAhsiAmciA0EYayIEQQAgAyAETxsiBGshAwJ/IAIgBHQiBCABQf8BcUEERg0AGiADQQBIBEBBACECIAUgCEkEQCAJIAVBAnRqKAAAIQILIAJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyrSAMQiCGhCEMIAVBAWohBSADQSBqIQMLIAwgBCAEQQF2IgRrIgatIANBP3GthiINQgAgDCANWiICG30hDCADIAQgBiACGyIEZyIDQRhrIgZBACADIAZPGyIGayEDIAIgB0EBdHIhByAEIAZ0IgQgAUH/AXFBBkkNABogA0EASARAQQAhAiAFIAhJBEAgCSAFQQJ0aigAACECCyACQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZycq0gDEIghoQhDCAFQQFqIQUgA0EgaiEDCyAMIAQgBEEBdiIEayIGrSADQT9xrYYiDUIAIAwgDVoiAht9IQwgAyAEIAYgAhsiBGciA0EYayIGQQAgAyAGTxsiBmshAyACIAdBAXRyIQcgBCAGdCIEIAFB/wFxQQZGDQAaIANBAEgEQEEAIQIgBSAISQRAIAkgBUECdGooAAAhAgsgAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnKtIAxCIIaEIQwgBUEBaiEFIANBIGohAwsgDCAEIARBAXYiBGsiBq0gA0E/ca2GIg1CACAMIA1aIgIbfSEMIAMgBCAGIAIbIgRnIgNBGGsiBkEAIAMgBk8bIgZrIQMgAiAHQQF0ciEHIAQgBnQLIQQgA0EASARAQQAhAiAFIAhJBEAgCSAFQQJ0aigAACECCyACQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZycq0gDEIghoQhDCAFQQFqIQUgA0EgaiEDCyAFIAhLDQEgDEIAIAQgBEEBdiICayIIrSADQT9xrYYiDSAMIA1UIgEbfSEMIAggAiABGyICIAJnIgJBGGsiCEEAIAIgCE8bIgh0IQIgAyAIayEDIAdBACAHayABGyEHCyAAIAM2AhggACACNgIUIAAgBTYCECAAIAw3AwggBw8LIAAQtAoEf0EAIAAgARDwB0H/AXEiAWsgASAAELQKGwVBAAsLjhACDn8EfiMAQSBrIgIkAAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQEEVIAEoAgAiA0GAgICAeHMgA0EAThtBFGsOAgECAAsgASACQR9qQfTiwAAQlQghASAAQYCAgIB4NgIAIAAgATYCBAwLCyABKAIMIgVFDQMgAkEEaiABKAIIIgkQoAQgAigCCCEEIAIoAgQiB0GAgICAeEYEQCAEIQEMCgsgAigCFCEIIAIoAhAhAyAFQQFGDQIgAigCGCEKIAIoAgwhCyACQQRqIgYgCUEQahDTAiACKAIIIQEgAigCBA0IIAVBAkYNASACKQIMIRAgBiAJQSBqENMCIAIoAgghBiACKAIEBEAgBiEBDAkLAkAgBUEDRwRAIAIpAgwhESACQQRqIAlBMGoQnwUgAigCBEUNASACKAIIIQEMCgtBA0G0/8AAQYD9wAAQ2wYhAQwJCyAFQQRHBEAgAkEENgIEIAVB/P///wBqQf////8AcUEEaiACQQRqQeiVwQAQ2wYhASAAQYCAgIB4NgIAIAAgATYCBCAHBEAgBCAHQQEQogcLIANFDQsgCCADQQEQogcMCwsgAigCCCEFIAAgAigCDDYCNCAAIAU2AjAgACARNwIoIAAgBjYCJCAAIBA3AhwgACABNgIYIAAgCjYCFCAAIAg2AhAgACADNgIMIAAgCzYCCCAAIAQ2AgQgACAHNgIADAoLIAEoAggiA0UNBCADQQV0IQ0gASgCBCEBQYCAgIB4IQUDQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgNBgICAgHhzIANBAE4bQQFrDg8BAAACAAAAAAAAAAMEBQYACyABIAJBH2pBxOTAABCVCCEDIAJBAToABCACIAM2AggMBgsgAkEAOgAEIAJBBCABQQRqLQAAIgMgA0EETxs6AAUMBQsgAkEAOgAEIAJCBCABQQhqKQMAIhAgEEIEWhs8AAUMBAsgAUEIaigCACEDAn8CQAJAAkACQCABQQxqKAIAQQRrDgIBAAMLIANBkP3AAEEFENsHDQFBAAwDC0EBIAMoAABB7dK5mwdGDQIaIAMoAABB7cLhmwdHDQFBAgwCCyADQZ39wABBBRDbBw0AQQMMAQtBBAshAyACQQA6AAQgAiADOgAFDAMLIAFBBGooAgAhAwJ/AkACQAJAAkAgAUEIaigCAEEEaw4CAQADCyADQZD9wABBBRDbBw0BQQAMAwtBASADKAAAQe3SuZsHRg0CGiADKAAAQe3C4ZsHRw0BQQIMAgsgA0Gd/cAAQQUQ2wcNAEEDDAELQQQLIQMgAkEAOgAEIAIgAzoABQwCCyACQQRqIAFBCGooAgAgAUEMaigCABDZBQwBCyACQQRqIAFBBGooAgAgAUEIaigCABDZBQsgAi0ABEEBRgRAIAIoAgghBEEBDAcLIAFBEGohAwJAAkACQAJAAkACQAJAAkAgAi0ABQ4EAAECAwcLIAVBgICAgHhHBEBBkP3AAEEFEJ8HIQRBAQwOCyACQQRqIAMQoAQgAigCCCEGIAIoAgQiBUGAgICAeEYEQCAGIQQMDwsgAigCGCEOIAIoAhQhCSACKAIQIQggAigCDCEPDAYLIAoNAiACQQRqIAMQ0wIgAigCCCEEQQEgAigCBEEBRg0MGiACKQIMIRFBASEKDAULIAsNAyACQQRqIAMQ0wIgAigCCCEHIAIoAgRBAUYEQCAHIQRBAQwMCyACKQIMIRJBASELDAQLIAwNASACQQRqIAMQnwUgAigCCCEDIAIoAgRBAUYEQCADIQRBAQwLCyADrSACNQIMQiCGhCETQQEhDAwDC0GV/cAAQQQQnwchBEEBDAkLQZ39wABBBRCfByEEQQEMCAtBmf3AAEEEEJ8HIQRBAQwHCyABQSBqIQEgDUEgayINDQALDAMLQQJBtP/AAEGA/cAAENsGIQEMBgtBAUG0/8AAQYD9wAAQ2wYhAQwFC0EAQbT/wABBgP3AABDbBiEBDAULIAVBgICAgHhGDQAgAiAONgIYIAIgCTYCFCACIAg2AhAgAiAPNgIMIAIgBjYCCCACIAU2AgQCQCAKRQRAQZX9wABBBBCcByEEDAELIAtFBEBBmf3AAEEEEJwHIQQMAQsgDEUEQEGd/cAAQQUQnAchBAwBCyAAIBM3AjAgACASNwIoIAAgBzYCJCAAIBE3AhwgACAENgIYIAAgDjYCFCAAIAk2AhAgACAINgIMIAAgDzYCCCAAIAY2AgQgACAFNgIADAYLIAJBBGoQ5gVBAAwBC0GAgICAeCEFQZD9wABBBRCcByEEQQELRSAFQYCAgIB4RnINACAFBEAgBkEEaygCACIBQXhxIgdBBEEIIAFBA3EiARsgBWpJDQUgAUEAIAcgBUEnaksbDQYgBhCiAgsgCEUNACAJQQRrKAIAIgFBeHEiBkEEQQggAUEDcSIBGyAIakkNBCABQQAgBiAIQSdqSxsNBSAJEKICCyAAIAQ2AgQgAEGAgICAeDYCAAwCCyAHBEAgBEEEaygCACIGQXhxIgVBBEEIIAZBA3EiBhsgB2pJDQMgBkEAIAUgB0EnaksbDQQgBBCiAgsgA0UNACAIQQRrKAIAIgRBeHEiBkEEQQggBEEDcSIEGyADakkNAiAEQQAgBiADQSdqSxsNAyAIEKICCyAAIAE2AgQgAEGAgICAeDYCAAsgAkEgaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALxRACCH8EfiMAQeACayIBJAACQAJAAkACQAJAAkACQAJAAkACQCAALQD8AkUEQCAAKAIAIgJBAkcNCSAAKAKIAUECRw0JIAAoAuACIgNBA00EQEEAIQIMCwsgASAAKALcAiIEKAAAIgI2AhACQCACQdKCkZoERwRAIAJB0oKRggNHDQMgA0EISQ0BIAMgBCgABCIFQQdqQXhxQQhqIgJJDQEgBUEIaiIGIANLIAVBd0tyDQQgAUEANgLYAiABIAU2AtQCIAEgBEEIajYC0AIgAUEgaiABQdACahBZIAEoAiQhBSABKAIgIgdBAkYEQCAFEM4HIQIMDQsgAUGwAWogAUEoakGAAfwKAAAgAEEANgLgAiABIAU2AqwBIAEgBzYCqAEgAyACayEGAkACQCACRQ0AIAIgA0YNASAGRQ0AIAQgAiAEaiAG/AoAAAsgACAGNgLgAgsgACAAKQO4AiACrXwiCTcDwAIgACAJNwO4AiABKAKkAkEBRw0FIAAgASgClAIiAzYC6AIgACABKAK0ASABKALAASICIAEoArABGyIENgLsAiAERQ0GIAIgBG4iBiAEIAZsIAJHaiIEIANGBEAgAS0AqAIhAyABIAVBACAHQQFxGzYCJCABIAI2AiAgASADQQFxOgAoIABB+AFqIAFBIGoQhAICQCAAKAIAQQJGDQAgACgCaCEEIAAoAmwiAwRAIARBJGohAgNAIAJBBGsoAgAiBUGAgICAeHJBgICAgHhHBEAgAigCACIGQQRrKAIAIgdBeHEiCEEEQQggB0EDcSIHGyAFakkNDCAHQQAgCCAFQSdqSxsNDSAGEKICCyACQTBqIQIgA0EBayIDDQALCyAAKAJkIgMEQCAEIANBMGxBCBCiBwsgACgCcCIDQYCAgIB4ckGAgICAeEYNACAAKAJ0IANBARCiBwsgACABQagBakGIAfwKAAAMCwsgASAENgLMAiABQQI2AiQgAUHox8EANgIgIAFCAjcCLCABQoCAgIAQIgkgAEHoAmqthDcD2AIgASAJIAFBzAJqrYQ3A9ACIAEgAUHQAmo2AiggAUHAAmoiACABQSBqELEGIAAQjgchAgwJCyABQQhqIAAQuAIgAS0ACEUEQCABLQAJDQpBACECDAwLIAEoAgwhAgwLC0EAIQIMCgsgADUC4AIhCSAAQQA2AuACIAAgCSAAKQO4Anw3A7gCDAkLIAFBATYCNCABQczIwQA2AjAgAUEBNgIkIAFBxMjBADYCICABQQE2AiwgASABQRBqrUKAgICAkASENwPQAiABIAFB0AJqNgIoIAFBFGoiACABQSBqELEGIAAQjgchAgwIC0EIIAYgA0GcyMEAEOoHAAsgAUEBNgIkIAFBlMjBADYCICABQgE3AiwgASABQaQCaq1CgICAgBCENwPQAiABIAFB0AJqNgIoIAFBtAJqIgAgAUEgahCxBiAAEI4HIQIgASgClAIhAwwDC0G0x8EAEIEIAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAEoApACIQQgAwRAIARBJGohAANAIABBBGsoAgAiBUGAgICAeHJBgICAgHhHBEAgACgCACAFQQEQogcLIABBMGohACADQQFrIgMNAAsLIAEoAowCIgAEQCAEIABBMGxBCBCiBwsgASgCmAIiAEGAgICAeHJBgICAgHhGDQIgASgCnAIgAEEBEKIHDAILIAAoAgAhAgsCQAJAAkACQAJ/AkAgAkECRwRAIAAoAuQCIAAoAugCTw0GIAAoAogBQQJGDQFBAAwCCyABQagBaiAAEFsgASgCrAFBACABLQCoASIDGyECIAMNBiABLQCpAUEBcUUNBiAAKQPQAiILIAApA7gCIglYBEAgACgC4AIhAwwFCyAAKALgAiEEQQAhAyAAQQA2AuACIAQgCyAJfSIKIAStIgwgCiAMVBsiCqciBWshAiAKUEUEQCAEIAVGDQQgAkUNAyAAKALcAiIDIAMgBWogAvwKAAAMAwsgBCAFRw0CDAMLQQELIQIDQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAkUEQCABQagBaiAAEFsgASgCrAEhAyABLQCoASICDQIgAS0AqQFBAXFFDQIgACkD0AIiCSAAKQO4AiILVg0BDAYLIAFBqAFqIAAQuAIgAS0AqAFBAUYEQCABKAKsASECDBELIAEtAKkBDQlBACECDBALIAAoAuACIQMgAEEANgLgAiADIAkgC30iCiADrSIMIAogDFQbIgqnIgJrIQQgClANASACIANGDQMgBEUNAiAAKALcAiIDIAIgA2ogBPwKAAAMAgsgA0EAIAIbIQIMDgsgAiADRg0BCyAAIAQ2AuACCyAAIAogC3wiCzcDuAIgCSALVg0BCwJAIAAoAogBQQJGDQAgACgC5AEiA0UNACAAKALoASICQQRrKAIAIgRBeHEiBSADQShsIgNBBEEIIARBA3EiBBtqSQ0CIARBACAFIANBJ2pLGw0DIAIQogILIABBAjYCiAEgACAAKALkAkEBaiIDNgLkAiADIAAoAugCSQ0EDAkLQQAhAgwJC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBACECDAELQQEhAgwACwALIAAgAjYC4AIgAiEDCyAAIAkgCnwiCTcDuAIgCSALWg0AQQAhAgwCC0EAIQIgAEEANgLgAiAAQQE6APwCIAAgCSADrXw3A7gCDAELIABBAToA/AIgADUC4AIhCUEAIQIgAEEANgLgAiAAIAkgACkDuAJ8NwO4AgsgAUHgAmokACACC70PAg5/AX4jAEEgayICJAACQAJAAkACQAJAAkACQAJ/An8CQAJAAkACQAJAAkACQAJAQRUgASgCACIDQYCAgIB4cyADQQBOG0EUaw4CAAEECyABKAIMIgNFDQIgAkEEaiABKAIIIgEQoAQgAigCCCEIIAIoAgQiBkGAgICAeEYEQCAIIQMMDQsgAigCFCEJIAIoAhAhByADQQFGDQEgAigCGCELIAIoAgwhDCACQQRqIAFBEGoQ0AMgAigCCCEEIAIoAgQiBUGAgICAeEYEQCAEIQMMDAsCQAJ/IANBAkcEQCACKAIMIQ4gAkEEaiABQSBqEKUDIAItAARFDQIgAigCCAwBC0ECQYz/wABBgP3AABDbBgshAyAFRQ0MIARBBGsoAgAiAUF4cSIKIAVBAnQiBUEEQQggAUEDcSIBG2pJDRAgAUEAIAogBUEnaksbDQ8gBBCiAgwMCyADQQNGBEAgAi0ABSEPDAsLIAJBAzYCBCADQf3///8AakH/////AHFBA2ogAkEEakHolcEAENsGIQMgBgRAIAggBkEBEKIHCyAHBEAgCSAHQQEQogcLIAVFDQwgBCAFQQJ0QQQQogcMDAsgASgCCCIDRQRAQYCAgIB4IQUMBgsgA0EFdCEKIAEoAgQhAUGAgICAeCEGQYCAgIB4IQUDQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgNBgICAgHhzIANBAE4bQQFrDg8BAAACAAAAAAAAAAMEBQYACyABIAJBH2pBlOXAABCVCCEDIAJBAToABCACIAM2AggMBgsgAkEAOgAEIAJBAyABQQRqLQAAIgMgA0EDTxs6AAUMBQsgAkEAOgAEIAJCAyABQQhqKQMAIhAgEEIDWhs8AAUMBAsgAUEIaigCACEDAn8CQAJAAkACQCABQQxqKAIAQQVrDgQAAwMBAwsgA0GQ/cAAQQUQ2wcNAUEADAMLIAMpAABC496Rq6bs27frAFINAUEBDAILIANB6P7AAEEFENsHDQBBAgwBC0EDCyEDIAJBADoABCACIAM6AAUMAwsgAUEEaigCACEDAn8CQAJAAkACQCABQQhqKAIAQQVrDgQAAwMBAwsgA0GQ/cAAQQUQ2wcNAUEADAMLIAMpAABC496Rq6bs27frAFINAUEBDAILIANB6P7AAEEFENsHDQBBAgwBC0EDCyEDIAJBADoABCACIAM6AAUMAgsgAkEEaiABQQhqKAIAIAFBDGooAgAQygUMAQsgAkEEaiABQQRqKAIAIAFBCGooAgAQygULIAItAARBAUYNBSABQRBqIQMCQAJAAkACQCACLQAFQQFrDgMBAgMACyAGQYCAgIB4RwRAQZD9wABBBRCfByEDQQEMCwsgAkEEaiADEKAEIAIoAgghAyACKAIEIgZBgICAgHhGBEBBgICAgHghBkEBDAsLIAIoAhghCyACKAIUIQkgAigCECEHIAIoAgwhDCADIQgMAgsgBUGAgICAeEcEQEGY/sAAQQgQnwchA0EBDAoLIAJBBGogAxDQAyACKAIIIQQgAigCBCIFQYCAgIB4RgRAQQEhCiAEIQMMDAsgAigCDCEODAELIA1FBEAgAkEEaiADEKUDIAItAARBAUYNByACLQAFIQ9BASENDAELQej+wABBBRCfByEDQQEMCAsgAUEgaiEBIApBIGsiCg0ACwwDC0EBQYz/wABBgP3AABDbBiEDDAkLQQBBjP/AAEGA/cAAENsGIQMMCQsgASACQR9qQcTjwAAQlQghAwwICyAGQYCAgIB4Rg0BIAIgCzYCGCACIAk2AhQgAiAHNgIQIAIgDDYCDCACIAg2AgggAiAGNgIEAkAgBUGAgICAeEYiAUUEQCANDQdB6P7AAEEFEJwHIQMgBUUNASAEIAVBAnRBBBCiBwwBC0GY/sAAQQgQnAchAwsgAkEEahDmBUEADAMLIAIoAgghA0EBDAELQYCAgIB4IQZBkP3AAEEFEJwHIQNBAQshAUEBCyEKIAVB/////wdxRSABRXINAAJAIARBBGsoAgAiAUF4cSILIAVBAnQiBUEEQQggAUEDcSIBG2pPBEAgAUEAIAsgBUEnaksbDQEgBBCiAgwCCwwHCwwFCyAKRSAGQYCAgIB4RnINAgJAIAYEQCAIQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyAGakkNByABQQAgBCAGQSdqSxsNBiAIEKICCyAHRQ0DIAlBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAdqSQ0GIAFBACAEIAdBJ2pLGw0AIAkQogIMAwsMBAsgACAENgIcIAAgBTYCGCAAIAs2AhQgACAJNgIQIAAgBzYCDCAAIAw2AgggACAINgIEIAAgBjYCACAAIA6tIA+tQv8Bg0IghoQ3AiAMAgsgBgRAIAhBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAZqSQ0EIAFBACAEIAZBJ2pLGw0DIAgQogILIAdFDQAgCUEEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgB2pJDQMgAUEAIAQgB0EnaksbDQIgCRCiAgsgAEGBgICAeDYCACAAIAM2AgQLIAJBIGokAA8LQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC4YRAg1/AX4jAEHgAGsiAiQAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiBEGAgICAeHMgBEEAThtBFGsOAgECAAsgASACQRhqQZTjwAAQlQghASAAQYCAgIB4NgIAIAAgATYCBAwHCyABKAIMIgZFDQICQCABKAIIIgUoAgBBlICAgHhGBEACQCAFKAIMIgEEQCACQcgAaiAFKAIIEKgDIAIoAkgiBEGAgICAeEcNASACKAJMIQEMCQtBACACQRhqQYTiwAAQ2wYhAQwICyACKAJMIQcgAUEBRg0BIAJBATYCSCABQQFrQf////8AcUEBaiACQcgAakHolcEAENsGIQEgBEUNByAHIARBARCiBwwHCyAFIAJBGGpBhOLAABCVCCEBDAYLIAZBAUYNASACKAJQIQkgAkHIAGoiAyAFQRBqEKECIAIoAkwhASACKAJIDQQgAkEQaiACQdgAaigCADYCACACIAIpAlA3AwgCQCAGQQJHBEAgAyAFQSBqEKECIAIoAkwhBSACKAJIRQ0BIAUhAQwGC0ECQZD+wABBgP3AABDbBiEBDAULIAJBMGoiAyACQdgAaigCADYCACACQUBrIgggAkEQaigCADYCACACIAIpAlA3AyggAiACKQMINwM4IAZBA0cEQCACQQM2AkggBkH9////AGpB/////wBxQQNqIAJByABqQeiVwQAQ2wYhASAAQYCAgIB4NgIAIAAgATYCBCAERQ0HIAcgBEEBEKIHDAcLIAAgAikDODcCECAAIAIpAyg3AiAgACAFNgIcIAAgATYCDCAAIAk2AgggACAHNgIEIAAgBDYCACAAQRhqIAgoAgA2AgAgAEEoaiADKAIANgIADAYLIAEoAgQhBCABKAIIIQEgAkEANgIUIAIgBCABQQV0aiIMNgIMAkACQAJAIAFFDQAgAkHQAGohCkGAgICAeCEIA0AgAiAEQSBqIgE2AgggAiACKAIUQQFqNgIUIAIgBEEQaiINNgIQAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQRUgBCgCACIDQYCAgIB4cyADQQBOG0EBaw4PAA4OAQ4ODg4ODg4CAwQFDgsgBC0ABA4DCgUHDwsgBCkDCCIPQgJWDQ4gD6dBAWsOAgQGCQsgBCgCCCEDAkAgBCgCDEEEaw4CAAgOCyADKAAAQe3SuZsHRg0DIAMoAABB7cLhmwdGDQUMDQsgBCgCBCEDAkAgBCgCCEEEaw4CAAYNCyADKAAAQe3SuZsHRg0CIAMoAABB7cLhmwdGDQQMDAsgBCgCCCEDAkACQCAEKAIMQQRrDgIBAA0LIAMtAABB5gBHDQwgAy0AAUHpAEcNDCADLQACQewARw0MIAMtAANB5QBHDQwgAy0ABEHzAEcNDAwHCyADLQAAQe0ARw0LAkACQCADLQABQeEAaw4JAQ0NDQ0NDQ0ADQsgAy0AAkHuAEcNDCADLQADQfMARg0CDAwLIAMtAAJB+ABHDQsgAy0AA0HzAEYNAwwLCyAEKAIEIQMCQAJAIAQoAghBBGsOAgEADAsgAy0AAEHmAEcNCyADLQABQekARw0LIAMtAAJB7ABHDQsgAy0AA0HlAEcNCyADLQAEQfMARw0LDAYLIAMtAABB7QBHDQoCQCADLQABQeEAaw4JAgsLCwsLCwsACwsgAy0AAkHuAEcNCiADLQADQfMARw0KCyAGRQ0FQZX9wABBBBCfBwwICyADLQACQfgARw0IIAMtAANB8wBHDQgLIAtFDQRBmf3AAEEEEJ8HDAYLIANBkP3AAEEFENsHRQ0BDAYLIANBkP3AAEEFENsHDQULIAhBgICAgHhHBEBBkP3AAEEFEJ8HDAQLIAJByABqIAJBCGoQsgUgAigCTCEHIAIoAkgiCEGAgICAeEYEQCAHIQUMCQsgAigCUCEOIAIoAgwhDCACKAIIIQEMBQsgAkEANgIQIAJByABqIA0QoQIgAigCTCIFIAIoAkhBAUYNAhogAkEwaiAKQQhqKAIANgIAIAIgCikCADcDKEEBIQYMBAsgAkEANgIQIAJByABqIA0QoQIgAigCTCEJIAkgAigCSEEBRg0BGiACQUBrIApBCGooAgA2AgAgAiAKKQIANwM4QQEhCwwDCyAEIAJBGGpBhOXAABCVCAshBSAIQYCAgIB4ckGAgICAeEYNBAJAIAdBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAhqTwRAIAFBACAEIAhBJ2pLGw0BIAcQogIMBgtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAJBADYCEAsgDCABIgRHDQALIAhBgICAgHhGDQAgBkEAIAsbDQJBmf3AAEGV/cAAIAYbQQQQnAchBSAIRQ0BIAcgCEEBEKIHDAELQZD9wABBBRCcByEFCyAAIAU2AgQgAEGAgICAeDYCACAAIAIpA0g3AhAgAEEYaiACQdAAaigCADYCAAwDCyACQSBqIAJBQGsoAgA2AgAgAkHQAGogAkEwaigCACIBNgIAIAIgAikDODcDGCACIAIpAygiDzcDSCAAIAU2AgwgACAONgIIIAAgBzYCBCAAIAg2AgAgACAPNwIQIABBGGogATYCACAAIAk2AhwMAgtBAUGQ/sAAQYD9wAAQ2wYhAQwCC0EAQZD+wABBgP3AABDbBiEBDAILIAAgAikDGDcCICAAQShqIAJBIGooAgA2AgAMAgsgBEUNACAHQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyAEakkNAiAFQQAgBiAEQSdqSxsNAyAHEKICCyAAIAE2AgQgAEGAgICAeDYCAAsgAkHgAGokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC+EOAgR/A34jAEGwBWsiBiQAIAYgAjYCECAGIAE2AgwgBiAFNgIYIAYgBDYCFAJAAkACQAJAIAMoAgxFDQAgAykDECADKQMYIAQgBRCVBCEKIAMoAgQiASAKp3EhAiAKQhmIQv8Ag0KBgoSIkKDAgAF+IQwgAygCACEHA0AgAiAHaikAACILIAyFIgpCf4UgCkKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIKUEUEQANAAkAgBSAHIAp6p0EDdiACaiABcUFobGoiCEEQaygCAEcNACAEIAhBFGsoAgAgBRDbBw0AQQAhAwwFCyAKQgF9IAqDIgpQRQ0ACwsgCyALQgGGg0KAgYKEiJCgwIB/g1BFDQEgAiAJQQhqIglqIAFxIQIMAAsACyAGIAZBFGqtQoCAgIAghCIKNwNAIAYgBkEMaq1CgICAgCCENwM4IAZCAjcCzAMgBkECNgLEAyAGQdTvxwA2AsADIAYgBkE4aiIENgLIAyAGQZgFaiIHIAZBwANqIgEQ7AMgBkEANgIkIAZCgICAgBA3AhwgBigCmAUhAiAEIAAgBigCnAUiBSAGKAKgBRDbAQJAAkACQAJAAkACQCAGKQM4QgNSBEAgASAEQcgB/AoAACAHIAEgBkEcahDXASAGKAKYBUEBRgRAIAYpApwFENIHIQMgARDDAQwCCyAGKAIYIgBBAEgNAiAGKAIUIQQCQCAARQRAQQEhAQwBCyAAEHEiAUUNBAsgAARAIAEgBCAA/AoAAAsgBiAANgKgBSAGIAE2ApwFIAYgADYCmAUgBkEoaiADIAZBmAVqIAZBHGoQ8gIgBigCKCIAQYCAgIB4ckGAgICAeEcEQCAGKAIsIgFBBGsoAgAiA0F4cSIEQQRBCCADQQNxIgMbIABqSQ0KIANBACAEIABBJ2pLGw0JIAEQogILIAZBwANqEMMBQQAhAwwFCwJAAkACQAJAQQEgBigCQCIEQf////8HaiAEQYCAgIB4TRsOAgABAwsgBi0AREEDRw0CIAYoAkgiASgCACEEIAFBBGooAgAiBygCACIIBEAgBCAIEQMACyAHKAIEIgcEQCAEQQRrKAIAIghBeHEiCUEEQQggCEEDcSIIGyAHakkNDCAIQQAgCSAHQSdqSxsNCyAEEKICCyABQQRrKAIAIgRBeHEiB0EQQRQgBEEDcSIEG0kNCyAERSAHQTRJcg0BDAoLIARBgICAgHhyQYCAgIB4Rg0BIAYoAkQiAUEEaygCACIHQXhxIghBBEEIIAdBA3EiBxsgBGpJDQogB0UNACAIIARBJ2pLDQkLIAEQogILIAZBwANqIAAgBigCFCAGKAIYENsBIAYgCjcDKCAGQgE3AqQFIAZBAjYCnAUgBkGA8McANgKYBSAGIAZBKGo2AqAFIAZBjAVqIAZBmAVqEOwDIAYpA8ADIgpCA1IEQCAGKALIAyEBIAZBhAJqIAZBzANqQbwB/AoAACAGKAKMBSIABEAgBigCkAUiBEEEaygCACIHQXhxIghBBEEIIAdBA3EiBxsgAGpJDQogB0EAIAggAEEnaksbDQkgBBCiAgsgBiABNgJAIAYgCjcDOCAGQcQAaiAGQYQCakG8AfwKAAAgBkHAA2ogBkE4aiIAIAZBHGoQ1wEgBigCwANBAUYEQCAGKQLEAxDSByEDIAAQwwEMAgsgBigCGCIAQQBIDQQgBigCFCEEAkAgAEUEQEEBIQEMAQsgABBxIgFFDQQLIAAEQCABIAQgAPwKAAALIAYgADYCyAMgBiABNgLEAyAGIAA2AsADIAZBmAVqIAMgBkHAA2ogBkEcahDyAiAGKAKYBSIAQYCAgIB4ckGAgICAeEcEQCAGKAKcBSIBQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyAAakkNCiADQQAgBCAAQSdqSxsNCSABEKICCyAGQThqEMMBIAJFBEBBACEDDAgLIAVBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIAJqSQ0JQQAhAyAARSABIAJBJ2pNcg0GDAgLIwBBMGsiACQAIAAQ5AggAEEgaiIDIAZBjAVqIgFBCGooAgA2AgAgAEEsaiAGQcgDaiIEQQhqKAIANgIAIAAgASkCADcDGCAAIAQpAgA3AiRBNBBxIgFFBEAACyABQcC1xwA2AgAgASAAKQIANwIEIAEgACkDGDcCHCABQQxqIABBCGr9AAIA/QsCACABQSRqIAP9AAMA/QsCACAAQTBqJAAgASEDCyAGKAIcIgBFDQMgBigCICIBQQRrKAIAIgRBeHEiB0EEQQggBEEDcSIEGyAAakkNByAEQQAgByAAQSdqSxsNBiABEKICDAMLQdiayAAQ/wcLAAtB2JrIABD/BwALIAJFDQEgBUEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgAmpPBEAgAEUgASACQSdqTXINAQwDCwwDCyAFEKICCyAGQbAFaiQAIAMPC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAumDwQRfwF8B30BbyMAQSBrIgIkACACIAE2AgACQAJAIAElARAQRQRAIAIgAkEfakH8hcEAEIADIQMgAEECOgAcIAAgAzYCACABIgNBgwhLDQEMAgtBAiEHAkADQCADIQUgBEFAaiEEAkACfwJAAkADQCAEQdzrwABqKAIAIgYgBEHg68AAaigCACIQEM8DIgghAyABJQEgAyUBEBEhGxDaBCIDIBsmAQJAIAMlARASBEAgCCUBIAElARATRQ0BCyAEQcgAaiEEAkACQAJAAkAgEEEGaw4FAAcHBwEHC0EAIAZB4OrAAEEGENsHRQ0HGiAGQebqwABBBhDbBw0BQQEMBwtBAiAGQezqwABBChDbB0UNBhogBkH26sAAQQoQ2wcNAUEDDAYLQQQgBkGA68AAQQYQ2wdFDQUaIAZBhuvAAEEGENsHDQNBBQwFCyAGQZLrwABBChDbBw0DQQcMBAsgA0GECE8EQCADEJsHCyAIQYQITwRAIAgQmwcLIARBCGoiBA0ACyAFIQMMAwtBBiAGQYzrwABBBhDbB0UNARoLQQgLIQUgCEGECE8EQCAIEJsHCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAUOCAECAwQFBgcIAAsgA0GECEkNESADEJsHDBELIAkNByACIAM2AgQgAkEIaiADEK8KAn0gAigCCCIFBEAgAisDECITtkMAAIA/QwAAgL8gE71CAFkbmAwBCyACQQRqIAJBH2pB2OfAABCAA74LIRQgA0GECE8EQCADEJsHCyAFRQ0IQQEhCQwQCyAKDQ0gAiADNgIEIAJBCGogAxCvCgJ9IAIoAggiBQRAIAIrAxAiE7ZDAACAP0MAAIC/IBO9QgBZG5gMAQsgAkEEaiACQR9qQdjnwAAQgAO+CyEVIANBhAhPBEAgAxCbBwsgBQRAQQEhCgwQCyAAIBU4AgBBACEEDBILIAsNCyACIAM2AgQgAkEIaiADEK8KAn0gAigCCCIFBEAgAisDECITtkMAAIA/QwAAgL8gE71CAFkbmAwBCyACQQRqIAJBH2pB2OfAABCAA74LIRYgA0GECE8EQCADEJsHCyAFBEBBASELDA8LIAAgFjgCAEEAIQQMEQsgDA0JIAIgAzYCBCACQQhqIAMQrwoCfSACKAIIIgUEQCACKwMQIhO2QwAAgD9DAACAvyATvUIAWRuYDAELIAJBBGogAkEfakHY58AAEIADvgshFyADQYQITwRAIAMQmwcLIAUEQEEBIQwMDgsgACAXOAIAQQAhBAwQCyANDQcgAiADNgIEIAJBCGogAxCvCgJ9IAIoAggiBQRAIAIrAxAiE7ZDAACAP0MAAIC/IBO9QgBZG5gMAQsgAkEEaiACQR9qQdjnwAAQgAO+CyEYIANBhAhPBEAgAxCbBwsgBQRAQQEhDQwNCyAAIBg4AgBBACEEDA8LIA4NBSACIAM2AgQgAkEIaiADEK8KAn0gAigCCCIFBEAgAisDECITtkMAAIA/QwAAgL8gE71CAFkbmAwBCyACQQRqIAJBH2pB2OfAABCAA74LIRkgA0GECE8EQCADEJsHCyAFBEBBASEODAwLIAAgGTgCAEEAIQQMDgsgDw0DIAIgAzYCBCACQQhqIAMQrwoCfSACKAIIIgUEQCACKwMQIhO2QwAAgD9DAACAvyATvUIAWRuYDAELIAJBBGogAkEfakHY58AAEIADvgshGiADQYQITwRAIAMQmwcLIAUEQEEBIQ8MCwsgACAaOAIAQQAhBAwNCyAHQQJHBEAgAEGS68AAQQoQngc2AgAMCQsgAiADNgIIAkAgAxC6CiIHQf///wdHIgUEQCAFIAdBAEdxIREMAQsgAkEIaiACQR9qQYyGwQAQgAMhEgsgA0GECE8EQCADEJsHCyAFRQRAIAAgEjYCAEEAIQQMDQsgESEHDAkLIABB4OrAAEEGEJ4HNgIADAcLIAAgFDgCAEEAIQQMCgsgAEGM68AAQQYQngc2AgAMBQsgAEGG68AAQQYQngc2AgAMBAsgAEGA68AAQQYQngc2AgAMAwsgAEH26sAAQQoQngc2AgAMAgsgAEHs6sAAQQoQngc2AgAMAQsgAEHm6sAAQQYQngc2AgALQQEhBAwDCyAEQcAARw0BCwsgCUUEQCAAQeDqwABBBhCdBzYCAEEAIQQMAQsgCkUEQCAAQebqwABBBhCdBzYCAEEAIQQMAQsgC0UEQCAAQezqwABBChCdBzYCAEEAIQQMAQsgDEUEQCAAQfbqwABBChCdBzYCAEEAIQQMAQsgDUUEQCAAQYDrwABBBhCdBzYCAEEAIQQMAQsgDkUEQCAAQYbrwABBBhCdBzYCAEEAIQQMAQsgD0UEQCAAQYzrwABBBhCdBzYCAEEAIQQMAQsgB0ECRgRAIABBkuvAAEEKEJ0HNgIAQQAhBAwBCyAAIAc6ABwgACAaOAIYIAAgGTgCFCAAIBg4AhAgACAXOAIMIAAgFjgCCCAAIBU4AgQgACAUOAIAIAEiA0GDCEsNAQwCCyAAQQI6ABwgAUGECE8EQCABEJsHCyAEQQFzIANBhAhJcg0BCyADEJsHCyACQSBqJAALiA4CDn8FfSACIAFBAnRBBGsiCmohDSAAIApqIQsgACABQQF2Ig9BAnRqIgpBBGshDCADQQRqIRADQEMAAIA/IRMCfwJAIAooAgAiBCAQKAIAIgMoAggiBkkEQCAAKAIAIQkgAygCBCIIIARBGGxqIgQtABMiBSAELQASIgcgBC0AESIOIAcgDksbIgcgBSAHSxsiBQR9QwAAQMEgAyoCRCADLQBYQQJGIgcbIhJDAAAQQSADKgJIIAcbIBKTQwAAfkOVIAVBAWtB/wFxs5SSEIkEIhIgEpIFQwAAAAALIRUgBEEMai8BACIFQf//AXFFBEAgBUEQdAwDCyAFQf8HcSEEIAVBgIACcSEHIAVBgPgBcSIFQYD4AUYEQCAHQRB0IgVBgICA/AdyIARFDQMaIAUgBEENdHJBgICA/gdyDAMLIAdBEHQhByAFRQ0BIAVBDXRBgICA/ABxIARBDXRyQYCAgMADaiAHcgwCCyAEIAZB3LvHABCMBwALIAQgBGdBEGsiBEH//wNxQQhqdEH///8DcSAHQYCAgNgDciAEQRd0a3ILviISQwAAgD9eBEAgEhDGBUNU+C1AlEMAAIA/kpEhEwtDAACAPyESAn8CQCAGIAlLBEAgCCAJQRhsaiIELQATIgUgBC0AEiIGIAQtABEiCSAGIAlLGyIGIAUgBksbIgUEfUMAAEDBIAMqAkQgAy0AWEECRiIGGyIUQwAAEEEgAyoCSCAGGyAUk0MAAH5DlSAFQQFrQf8BcbOUkhCJBCIUIBSSBUMAAAAACyEUIARBDGovAQAiBEH//wFxRQRAIARBEHQMAwsgBEH/B3EhAyAEQYCAAnEhBSAEQYD4AXEiBEGA+AFGBEAgBUEQdCIEQYCAgPwHciADRQ0DGiAEIANBDXRyQYCAgP4HcgwDCyAFQRB0IQUgBEUNASAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogBXIMAgsgCSAGQdy7xwAQjAcACyADIANnQRBrIgNB//8DcUEIanRB////A3EgBUGAgIDYA3IgA0EXdGtyC74iFkMAAIA/XgRAIBYQxgVDVPgtQJRDAACAP5KRIRILIAIgCiAAIBUgE5QiEyATWyATIBQgEpRgRXEiBxsoAgA2AgBDAACAPyETAn8CQCALKAIAIgQgECgCACIDKAIIIgZJBEAgDCgCACEJIAMoAgQiDiAEQRhsaiIELQATIgUgBC0AEiIIIAQtABEiESAIIBFLGyIIIAUgCEsbIgUEfUMAAEDBIAMqAkQgAy0AWEECRiIIGyISQwAAEEEgAyoCSCAIGyASk0MAAH5DlSAFQQFrQf8BcbOUkhCJBCISIBKSBUMAAAAACyEVIARBDGovAQAiBUH//wFxRQRAIAVBEHQMAwsgBUH/B3EhBCAFQYCAAnEhCCAFQYD4AXEiBUGA+AFGBEAgCEEQdCIFQYCAgPwHciAERQ0DGiAFIARBDXRyQYCAgP4HcgwDCyAIQRB0IQggBUUNASAFQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogCHIMAgsgBCAGQdy7xwAQjAcACyAEIARnQRBrIgRB//8DcUEIanRB////A3EgCEGAgIDYA3IgBEEXdGtyC74iEkMAAIA/XgRAIBIQxgVDVPgtQJRDAACAP5KRIRMLQwAAgD8hEgJ/AkAgBiAJSwRAIA4gCUEYbGoiBC0AEyIFIAQtABIiBiAELQARIgkgBiAJSxsiBiAFIAZLGyIFBH1DAABAwSADKgJEIAMtAFhBAkYiBhsiFEMAABBBIAMqAkggBhsgFJNDAAB+Q5UgBUEBa0H/AXGzlJIQiQQiFCAUkgVDAAAAAAshFCAHRSEGIARBDGovAQAiBEH//wFxRQRAIARBEHQMAwsgBEH/B3EhAyAEQYCAAnEhBSAEQYD4AXEiBEGA+AFGBEAgBUEQdCIEQYCAgPwHciADRQ0DGiAEIANBDXRyQYCAgP4HcgwDCyAFQRB0IQUgBEUNASAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogBXIMAgsgCSAGQdy7xwAQjAcACyADIANnQRBrIgNB//8DcUEIanRB////A3EgBUGAgIDYA3IgA0EXdGtyC74iFkMAAIA/XgRAIBYQxgVDVPgtQJRDAACAP5KRIRILIAdBAnQgCmohCiAGQQJ0IABqIQAgAkEEaiECIA0gDCALIBUgE5QiEyATWyATIBQgEpRgRXEiAxsoAgA2AgAgDCADQQJ0IgNrIQwgAyALakEEayELIA1BBGshDSAPQQFrIg8NAAsgDEEEaiEDIAFBAXEEfyACIAAgCiAAIANJIgEbKAIANgIAIAogACADT0ECdGohCiAAIAFBAnRqBSAACyADRyAKIAtBBGpHckUEQA8LEIAIAAvnEAILfwF+IwBBIGsiAyQAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiBEGAgICAeHMgBEEAThtBFGsOAgECAAsgASADQRRqQeTjwAAQlQghASAAQYCAgIB4NgIAIAAgATYCBAwHCwJAAkACfwJAIAEoAgwiCARAAkAgASgCCCIFKAIAQZSAgIB4RgRAAkAgBSgCDCIEBEAgA0EEaiAFKAIIEKgDIAMoAgQiAUGAgICAeEcNASADKAIIIQQMBwtBACADQRRqQYTiwAAQ2wYhBAwGCyADKAIIIQIgBEEBRg0BIANBATYCBCAEQQFrQf////8AcUEBaiADQQRqQeiVwQAQ2wYhBCABRQ0FIAIgAUEBEKIHDAULIAUgA0EUakGE4sAAEJUIIQQMBAsgCEEBRg0BIAMoAgwhCUGAgICAeCEGAkACfwJAAkBBFSAFQRBqIgooAgAiC0GAgICAeHMgC0EAThtBEGsOAwMBAwALIANBBGogChCoA0GBgICAeCADKAIEIgQgBEGBgICAeEwbDAELIANBBGogBSgCFBCoA0GBgICAeCADKAIEIgQgBEGBgICAeEwbCyEGIAMoAgwhByADKAIIIgQgBkH/////B2pBAkkNAxoLIAhBAkYNBCADQQI2AgQgCEH+////AGpB/////wBxQQJqIANBBGpB6JXBABDbBiEFIABBgICAgHg2AgAgACAFNgIEIAEEQCACIAFBARCiBwsgBkGAgICAeHJBgICAgHhGDQsgBCAGQQEQogcMCwtBAEHs/cAAQYD9wAAQ2wYhBAwCC0EBQez9wABBgP3AABDbBgshBCABRQ0AIAJBBGsoAgAiBkF4cSIFQQRBCCAGQQNxIgYbIAFqSQ0KIAZBACAFIAFBJ2pLGw0JIAIQogILIAAgBDYCBCAAQYCAgIB4NgIADAcLIAAgBzYCFCAAIAQ2AhAgACAGNgIMIAAgCTYCCCAAIAI2AgQgACABNgIADAYLIAEoAgghBCABKAIEIQEgA0IANwIMIAMgATYCBCADIAEgBEEFdGoiCjYCCCAERQRAQYGAgIB4IQUMAgtBgICAgHghB0GBgICAeCEFA0AgAyABQSBqIgQ2AgQgAyADKAIQQQFqNgIQIAMgAUEQaiILNgIMAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiAkGAgICAeHMgAkEAThtBAWsODwAGBgEGBgYGBgYGAgMEBQYLIAEtAAQiAkUNCEEBQQIgAkEBRhshAgwLCyABKQMIIg1QDQdBAUECIA1CAVEbIQIMCgsgASgCCCECIAEoAgxBBWsOBAULCwcLCyABKAIEIQICQCABKAIIQQVrDgQECwsACwsgAikAAELl3I37xqyat+cAUQ0JDAoLIAEoAgghAgJAAkAgASgCDEEFaw4EAAsLAQsLIAItAABB5gBHDQogAi0AAUHpAEcNCiACLQACQewARw0KIAItAANB5QBHDQogAi0ABEHzAEcNCgwFCyACLQAAQeUARw0JIAItAAFB7gBHDQkgAi0AAkHjAEcNCSACLQADQe8ARw0JIAItAARB5ABHDQkgAi0ABUHpAEcNCSACLQAGQe4ARw0JIAItAAdB5wBGDQgMCQsgASgCBCECAkACQCABKAIIQQVrDgQACgoBCgsgAi0AAEHmAEcNCSACLQABQekARw0JIAItAAJB7ABHDQkgAi0AA0HlAEcNCSACLQAEQfMARw0JDAQLIAItAABB5QBHDQggAi0AAUHuAEcNCCACLQACQeMARw0IIAItAANB7wBHDQggAi0ABEHkAEcNCCACLQAFQekARw0IIAItAAZB7gBHDQggAi0AB0HnAEYNBwwICyABIANBFGpB5OTAABCVCCEBDA0LIAJBkP3AAEEFENsHDQYMAQsgAkGQ/cAAQQUQ2wcNBQsgB0GAgICAeEYNAUGQ/cAAQQUQnwchAQwKCyACKQAAQuXcjfvGrJq35wBRDQIMAwsgA0EUaiADQQRqELIFIAMoAhghASADKAIUIgdBgICAgHhGBEBBgICAgHghBwwJCyADKAIcIQwgAygCCCEKIAMoAgQhBCABIQYMBAsgAkECRg0BCyAFQYGAgIB4Rg0BQcj9wABBCBCfByEBIAVBgICAgHhyQYCAgIB4Rg0IDAcLIANBADYCDAwBCyADQQA2AgxBgICAgHghBQJ/AkACQEEVIAsoAgAiAkGAgICAeHMgAkEAThtBEGsOAwMBAwALIANBFGogCxCoAyAIIAMoAhwgAygCFCIBQYCAgIB4RhshCEGBgICAeCABIAFBgYCAgHhMGwwBCyADQRRqIAEoAhQQqAMgCCADKAIcIAMoAhQiAUGAgICAeEYbIQhBgYCAgHggASABQYGAgIB4TBsLIQUgAygCGCIJIQEgBUGBgICAeEYNBgsgCiAEIgFHDQALDAALIAdBgICAgHhGDQAgACAINgIUIAAgCTYCECAAIAw2AgggACAGNgIEIAAgBzYCACAAQYCAgIB4IAUgBUGBgICAeEYbNgIMDAQLQYCAgIB4IQdBkP3AAEEFEJwHIQELIAVFIAVBgoCAgHhIcg0BCyAJQQRrKAIAIgRBeHEiAkEEQQggBEEDcSIEGyAFakkNAyAEQQAgAiAFQSdqSxsNAiAJEKICCyAHQYCAgIB4ckGAgICAeEcEQCAGQQRrKAIAIgRBeHEiBUEEQQggBEEDcSIEGyAHakkNAyAEQQAgBSAHQSdqSxsNAiAGEKICCyAAQgA3AhAgACABNgIEIABBgICAgHg2AgALIANBIGokAA8LQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC7QPAgl/BH4jAEHgAmsiASQAAkACQAJAIAAtAIAERQRAIAAoApABIgJBAkcNAiAAKAIAQQJHDQIgACgCuAIiA0EDSw0BQQAhAgwDCyAANQK4AiEKIABBADYCuAIgACAKIAApA3B8NwNwDAILIABBkAFqIQggASAAKAK0AiIEKAAAIgI2AhACQAJAAkACQAJAAkACQAJAAkAgAkHSgpGaBEcEQCACQdKCkYIDRw0CIANBCEkNASADIAQoAAQiBUEHakF4cUEIaiICSQ0BIAVBCGoiBiADSyAFQXdLcg0DIAFBADYC2AIgASAFNgLUAiABIARBCGo2AtACIAFBIGogAUHQAmoQWSABKAIkIQUgASgCICIHQQJGBEAgBRDOByECDAwLIAFBsAFqIAFBKGpBgAH8CgAAIABBADYCuAIgASAFNgKsASABIAc2AqgBIAMgAmshBgJAAkAgAkUNACACIANGDQEgBkUNACAEIAIgBGogBvwKAAALIAAgBjYCuAILIAAgACkDcCACrXwiCjcDeCAAIAo3A3AgASgCpAJBAUcNBCAAIAEoApQCIgQ2ApwCIAAgASgCtAEgASgCwAEiAyABKAKwARsiAjYCoAIgAkUNBSAEIAMgAm4iBCACIARsIANHaiICRgRAIAEtAKgCIQIgASAFQQAgB0EBcRs2AiQgASADNgIgIAEgAkEBcToAKCAAQbwCaiABQSBqEOEDAkAgACgCkAFBAkYNACAAKAL4ASEEIAAoAvwBIgMEQCAEQSRqIQIDQCACQQRrKAIAIgVBgICAgHhyQYCAgIB4RwRAIAIoAgAiBkEEaygCACIHQXhxIglBBEEIIAdBA3EiBxsgBWpJDQsgB0EAIAkgBUEnaksbDQwgBhCiAgsgAkEwaiECIANBAWsiAw0ACwsgACgC9AEiAwRAIAQgA0EwbEEIEKIHCyAAKAKAAiIDQYCAgIB4ckGAgICAeEYNACAAKAKEAiADQQEQogcLIAggAUGoAWpBiAH8CgAADAoLIAEgAjYCzAIgAUECNgIkIAFB6MfBADYCICABQgI3AiwgAUKAgICAECIKIABBnAJqrYQ3A9gCIAEgCiABQcwCaq2ENwPQAiABIAFB0AJqNgIoIAFBwAJqIgAgAUEgahCxBgwICyABQQhqIAAQtwIgAS0ACEUEQCABLQAJDQlBACECDAsLIAEoAgwhAgwKC0EAIQIMCQsgAUEBNgI0IAFBzMjBADYCMCABQQE2AiQgAUHEyMEANgIgIAFBATYCLCABIAFBEGqtQoCAgICQBIQ3A9ACIAEgAUHQAmo2AiggAUEUaiIAIAFBIGoQsQYgABCOByECDAgLQQggBiADQZzIwQAQ6gcACyABQQE2AiQgAUGUyMEANgIgIAFCATcCLCABIAFBpAJqrUKAgICAEIQ3A9ACIAEgAUHQAmo2AiggAUG0AmoiACABQSBqELEGDAMLQbTHwQAQgQgAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgABCOByECIAFBqAFqEM8EDAILIAgoAgAhAgsCQAJAAkACQAJ/AkAgAkECRwRAIAAoApgCIAAoApwCTw0GIAAoAgBBAkYNAUEADAILIAFBqAFqIAAQNiABKAKsAUEAIAEtAKgBIgMbIQIgAw0GIAEtAKkBQQFxRQ0GIAApA4gBIgwgACkDcCIKWARAIAAoArgCIQMMBQsgACgCuAIhBEEAIQMgAEEANgK4AiAEIAwgCn0iCyAErSINIAsgDVQbIgunIgVrIQIgC1BFBEAgBCAFRg0EIAJFDQMgACgCtAIiAyADIAVqIAL8CgAADAMLIAQgBUcNAgwDC0EBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAIAJFBEAgAUGoAWogABA2IAEoAqwBIQMgAS0AqAEiAg0CIAEtAKkBQQFxRQ0CIAApA4gBIgogACkDcCIMVg0BDAYLIAFBqAFqIAAQtwIgAS0AqAFBAUYEQCABKAKsASECDBELIAEtAKkBDQlBACECDBALIAAoArgCIQMgAEEANgK4AiADIAogDH0iCyADrSINIAsgDVQbIgunIgJrIQQgC1ANASACIANGDQMgBEUNAiAAKAK0AiIDIAIgA2ogBPwKAAAMAgsgA0EAIAIbIQIMDgsgAiADRg0BCyAAIAQ2ArgCCyAAIAsgDHwiDDcDcCAKIAxWDQELAkAgACgCAEECRg0AIAAoAlwiA0UNACAAKAJgIgJBBGsoAgAiBEF4cSIFIANBKGwiA0EEQQggBEEDcSIEG2pJDQIgBEEAIAUgA0EnaksbDQMgAhCiAgsgAEECNgIAIAAgACgCmAJBAWoiAzYCmAIgAyAAKAKcAkkNBAwJC0EAIQIMCQtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQQAhAgwBC0EBIQIMAAsACyAAIAI2ArgCIAIhAwsgACAKIAt8Igo3A3AgCiAMWg0AQQAhAgwCC0EAIQIgAEEANgK4AiAAQQE6AIAEIAAgCiADrXw3A3AMAQsgAEEBOgCABCAANQK4AiEKQQAhAiAAQQA2ArgCIAAgCiAAKQNwfDcDcAsgAUHgAmokACACC5sMAgh/BH4gACgCFCEDIAAoAhAhBSAAKQMIIQsgACgCBCEJIAAoAgAhCCAAKAIYIgJBAEgEQCAFIAlJBEAgCCAFQQJ0aigAACEGCyAGQRh0IAZBgP4DcUEIdHIgBkEIdkGA/gNxIAZBGHZycq0gC0IghoQhCyAFQQFqIQUgAkEgaiECCyALIAMgA0EBdiIDayIErSACQT9xrYYiDEIAIAsgDFoiBht9IQogAiADIAQgBhsiA2ciAkEYayIEQQAgAiAETxsiBGshAiADIAR0IQQCQCABQf8BcUECSQ0AIAJBAEgEQEEAIQYgBSAJSQRAIAggBUECdGooAAAhBgsgBkEYdCAGQYD+A3FBCHRyIAZBCHZBgP4DcSAGQRh2cnKtIApCIIaEIQogBUEBaiEFIAJBIGohAgsgCiAEIARBAXYiBmsiBK0gAkE/ca2GIg1CACAKIA1aIgMbfSEKIAIgBiAEIAMbIgZnIgJBGGsiBEEAIAIgBE8bIgRrIQIgBiAEdCEEIANBAkEAIAsgDFobciEGIAFB/wFxQQJGDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIHrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAcgAxsiBGciAkEYayIHQQAgAiAHTxsiB2shAiAEIAd0IQQgAyAGQQF0ciEGIAFB/wFxQQRJDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIHrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAcgAxsiBGciAkEYayIHQQAgAiAHTxsiB2shAiAEIAd0IQQgAyAGQQF0ciEGIAFB/wFxQQRGDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIHrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAcgAxsiBGciAkEYayIHQQAgAiAHTxsiB2shAiAEIAd0IQQgAyAGQQF0ciEGIAFB/wFxQQZJDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIHrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAcgAxsiBGciAkEYayIHQQAgAiAHTxsiB2shAiAEIAd0IQQgAyAGQQF0ciEGIAFB/wFxQQZGDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIHrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAcgAxsiBGciAkEYayIHQQAgAiAHTxsiB2shAiAEIAd0IQQgAyAGQQF0ciEGIAFB/wFxQQhJDQAgAkEASARAQQAhAyAFIAlJBEAgCCAFQQJ0aigAACEDCyADQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycq0gCkIghoQhCiAFQQFqIQUgAkEgaiECCyAKIAQgBEEBdiIEayIIrSACQT9xrYYiC0IAIAogC1oiAxt9IQogAiAEIAggAxsiBGciAkEYayIIQQAgAiAITxsiCGshAiAEIAh0IQQgAyAGQQF0ciEGCyAFIAlNBEAgACACNgIYIAAgBDYCFCAAIAU2AhAgACAKNwMIIAYPCyAAIAEQ8AcLyA0CDH8BfiMAQdAAayIIJAAgCEEQaiAAKAIEIgYgACgCCCICQficxgBBCRDhAQJAAkACQCAIKAIQQQFGBEAgCEEYaiEHIAgoAkwhAyAIKAJIIQkgCCgCRCEEIAgoAkAhBSAIKAI0QX9GDQEgCEEEaiAHIAUgBCAJIANBABDeAwwCCyAIAn9BACAILQAeDQAaIAgtAB0hCgJAIAgoAhgiAQRAIAgoAkAhDAJAIAgoAkQiBSABTQRAIAEgBUYNAQwHCyABIAxqLAAAQUBIDQYLIAEgDGoiB0EBaywAACIEQQBIBEAgBEE/cQJ/IAdBAmstAAAiCcAiC0G/f0oEQCAJQR9xDAELIAtBP3ECfyAHQQNrLQAAIgPAIglBv39KBEAgA0EPcQwBCyAJQT9xIAdBBGstAABBB3FBBnRyC0EGdHILQQZ0ciEECyAKQQFxDQECf0F/IARBgAFJDQAaQX4gBEGAEEkNABpBfUF8IARBgIAESRsLIAFqIgFFBEBBACEBDAILAkAgASAFTwRAIAEgBUcNBwwBCyABIAxqLAAAQUBIDQYLIAEgDGoiCUEBaywAAEEATg0BIAlBAmssAAAaDAELQQAiASAKQQFxRQ0BGgsgCCABNgIIQQELNgIEDAELIAhBBGogByAFIAQgCSADQQEQ3gMLAkACQAJAAkAgCCgCBEEBRgRAIAgoAggiCUEJaiIFIQEDQAJAIAFFDQAgASACTwRAIAEgAkYNAQwHCyABIAZqLAAAQUBIDQYLAkAgASACRgR/IAIFIAEgBmotAABBMGtB/wFxQQpJDQEgAQshBCABRQ0DAkAgAiAETQRAIAIgBEcNAQwFCyAEIAZqLAAAQb9/Sg0ECyAGIAIgBCACQZSdxgAQuwkACyABQQFqIQEMAAsAC0EAIQoMAQtBACEKIAIgBGtBCEkNACAEIAZqIgcpAABCoMa949aum7cgUg0AIARBCGoiCyEDAkACQAJAAkADQAJAIANFDQAgAiADTQRAIAIgA0YNAQwICyADIAZqLAAAQUBIDQcLAkACQAJAIAIgA0YEQCACIQMMAQsgAyAGai0AAEEwa0H/AXFBCkkNASACIANLDQgLIAQgBUkNAyAFRQ0BIAUgBmosAABBv39KDQEMAwsgA0EBaiEDDAELCyABBEAgBywAAEFASA0BCyAFIAZqIQECQAJAAkAgBCAFayIEDgIHAAELQQEhByABLQAAQStrDgMGAQYBCyABLQAAQStGBEAgBEEBayEHIAFBAWohASAEQQpJDQEMAwsgBCEHIARBCU8NAgtBACEEA0AgAS0AAEEwayIFQQlLDQQgAUEBaiEBIAUgBEEKbGohBCAHQQFrIgcNAAsMAgsgBiACIAUgBEG8ncYAELsJAAtBACEEA0AgB0UNASABLQAAQTBrIgVBCUsNAiAErUIKfiINQiCIpw0CIAFBAWohASAHQQFrIQcgBSANp2oiBCAFTw0ACwwBCwJAAkAgAyALSQ0AIAsEQCACIAtNBEAgAiADRg0DDAILIAIgA0cNASAGIAtqLAAAQUBIDQEMAgsgAiADRg0BCyAGIAIgCyADQcydxgAQuwkACyAGIAtqIQECQAJAAkACQAJAIAIgC2siBQ4CBgABC0EBIQMgAS0AAEEraw4DBQEFAQsgAS0AAEErRgRAIAVBAWshAyABQQFqIQEgBUEKSQ0BDAILIAUiA0EJTw0BC0EAIQUDQCABLQAAQTBrIgdBCUsNBCABQQFqIQEgByAFQQpsaiEFIANBAWsiAw0ACwwBC0EAIQUDQCADRQ0BIAEtAABBMGsiB0EJSw0DIAWtQgp+Ig1CIIinDQMgAUEBaiEBIANBAWshAyAHIAcgDadqIgVNDQALDAILQQEhCiACIAlJDQEgCUUEQCAJIQIMAgsgAiAJTQRAIAkhAgwCCyAJIgIgBmosAABBv39KDQFB5J/GAEEwQdydxgAQ6wcACwsCQAJAAkACQCAAKAIAIgMgAk0NACACRQRAIAZBBGsoAgAiAEF4cSIJQQRBCCAAQQNxIgAbIANqSQ0CIABBACAJIANBJ2pLGw0DIAYQogJBASEGDAELIAYgA0EBIAIQuwIiBkUNAwtBFBBxIgBFDQIgACACNgIIIAAgBjYCBCAAQQA2AgAgACAFQQAgChs2AhAgACAEQQAgChs2AgwgCEHQAGokACAADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwsACyAGIAIgAyACQaydxgAQuwkACyAGIAIgASACQYSdxgAQuwkACyAMIAVBACABQfylxgAQuwkAC4kOAw5/BH4BeyMAQSBrIgokAAJAAkACQCAAKAIMIgsgAWoiASALTwRAAkAgACgCBCIIIAhBAWoiCUEDdiIDQQdsIg4gCEEISRsiBkEBdiABSQRAAkACQAJAAkACfyAGQQFqIgMgASABIANJGyIBQQ9PBEAgAUH/////AUsNC0F/IAFBA3RBB25BAWtndkEBagwBC0EEIAFBCHFBCGogAUEESRsLIgGtQhR+IhFCIIinDQAgEadBB2pBeHEiAyABQQhqIgZqIgUgA0kgBUH4////B0tyDQAgBRBxIgVFDQEgAyAFaiEEIAYEQCAEQf8BIAb8CwALIAFBAWsiCSABQQN2QQdsIAlBCEkbIQwgACgCACEFIAsNAkEAIQsMAwsgCkEANgIYIApBATYCDCAKQcS1xAA2AgggCkIENwIQIApBCGpBmLXEABCNCAsACyAEQQhqIQ0gBUEUayEOIAUpAwBCf4VCgIGChIiQoMCAf4MhESACKQMIIRMgAikDACEUQQAhASALIQIgBSEGA0AgEVAEQANAIAFBCGohASAGQQhqIgYpAwBCgIGChIiQoMCAf4MiEUKAgYKEiJCgwIB/UQ0ACyARQoCBgoSIkKDAgH+FIRELIAQgCSAUIBMgDiAReqdBA3YgAWoiD0FsbGoiA0EEaigCACADQQhqKAIAEJUEpyIQcSIDaikAAEKAgYKEiJCgwIB/gyISUARAQQghBwNAIAMgB2ohAyAHQQhqIQcgBCADIAlxIgNqKQAAQoCBgoSIkKDAgH+DIhJQDQALCyARQgF9IBGDIREgBCASeqdBA3YgA2ogCXEiA2osAABBAE4EQCAEKQMAQoCBgoSIkKDAgH+DeqdBA3YhAwsgAyAEaiAQQRl2Igc6AAAgDSADQQhrIAlxaiAHOgAAIAQgA0F/c0EUbGoiA0EQaiAFIA9Bf3NBFGxqIgdBEGooAAA2AAAgAyAH/QAAAP0LAAAgAkEBayICDQALCyAAIAk2AgQgACAENgIAIAAgDCALazYCCCAIRQ0BIAggCEEUbEEbakF4cSIBakEJaiIARQ0BIAUgAWsiAUEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAGpJDQMgAkEAIAMgAEEnaksbDQQgARCiAgwBCyAAIAkEfyAAKAIAIQACQAJAIAMgCUEHcUEAR2oiBUECSQRAIAUhBgwBCyAFQQFxIQYgBUH+////A3EiBEEDdCEHIAQhAyAAIQEDQCABIAH9AAMAIhX9TUEH/c0B/QwBAQEBAQEBAQEBAQEBAQEB/U4gFf0Mf39/f39/f39/f39/f39/f/1Q/c4B/QsDACABQRBqIQEgA0ECayIDDQALIAQgBUYNAQsgACAHaiEBA0AgASABKQMAIhFCf4VCB4hCgYKEiJCgwIABgyARQv/+/fv379+//wCEfDcDACABQQhqIQEgBkEBayIGDQALCwJAIAlBCE8EQCAAIAlqIAApAAA3AAAMAQsgCUUNACAAQQhqIAAgCfwKAAALIABBCGohBSACKQMIIRIgAikDACETQQEhA0EAIQEDQCABIQYgAyEBAkAgACAGaiIMLQAAQYABRw0AIAAgBkF/c0EUbGohAyAAIAZBbGxqIgJBDGshDyACQRBrIRADQCAIIBMgEiAQKAIAIA8oAgAQlQSnIg1xIgQhAiAAIARqKQAAQoCBgoSIkKDAgH+DIhFQBEBBCCEHA0AgAiAHaiECIAdBCGohByAAIAIgCHEiAmopAABCgIGChIiQoMCAf4MiEVANAAsLIAAgEXqnQQN2IAJqIAhxIgJqLAAAQQBOBEAgACkDAEKAgYKEiJCgwIB/g3qnQQN2IQILIAIgBGsgBiAEa3MgCHFBCE8EQCAAIAJqIgQtAAAgBCANQRl2IgQ6AAAgBSACQQhrIAhxaiAEOgAAIAAgAkF/c0EUbGohAkH/AUYEQCAMQf8BOgAAIAUgCCAGQQhrcWpB/wE6AAAgAkEQaiADQRBqKAAANgAAIAIgA/0AAAD9CwAADAMLIAMoAAAhBCADIAIoAAA2AAAgAiAENgAAIAIoAAQhBCACIAMoAAQ2AAQgAyAENgAEIAMoAAghBCADIAIoAAg2AAggAiAENgAIIAIoAAwhBCACIAMoAAw2AAwgAyAENgAMIAMoABAhBCADIAIoABA2ABAgAiAENgAQDAELCyAMIA1BGXYiAjoAACAFIAggBkEIa3FqIAI6AAALIAEgASAJSSICaiEDIAINAAsgCCAOIAhBCEkbBUEACyALazYCCAsgCkEgaiQADwsMAgtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIApBADYCGCAKQQE2AgwgCkHEtcQANgIIIApCBDcCECAKQQhqQZi1xAAQjQgAC8cNAQh/An8CQCACIANLBEAgASADQRJsaiIDLwEAIgJB//8BcUUEQCACQRB0DAMLIAJB/wdxIQEgAkGAgAJxIQUgAkGA+AFxIgJBgPgBRgRAIAVBEHQhAiACQYCAgPwHciABRQ0DGiACIAFBDXRyQYCAgP4HcgwDCyAFQRB0IQUgAkUNASACQQ10QYCAgPwAcSABQQ10ckGAgIDAA2ogBXIMAgsgAyACQfTAxwAQjAcACyAFQYCAgNgDciABZ0EQayICQRd0ayABIAJB//8DcUEIanRB////A3FyCyEBAn8gAy8BAiIFQf//AXFFBEAgBUEQdAwBCyAFQf8HcSECIAVBgIACcSEGIAVBgPgBcSIFQYD4AUYEQCAGQRB0IQUgBUGAgID8B3IgAkUNARogBSACQQ10ckGAgID+B3IMAQsgBkEQdCEGIAVBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAGciAFDQAaIAZBgICA2ANyIAJnQRBrIgVBF3RrIAIgBUH//wNxQQhqdEH///8DcXILIQUCfyADLwEEIgZB//8BcUUEQCAGQRB0DAELIAZB/wdxIQIgBkGAgAJxIQcgBkGA+AFxIgZBgPgBRgRAIAdBEHQhBiAGQYCAgPwHciACRQ0BGiAGIAJBDXRyQYCAgP4HcgwBCyAHQRB0IQcgBkENdEGAgID8AHEgAkENdHJBgICAwANqIAdyIAYNABogB0GAgIDYA3IgAmdBEGsiBkEXdGsgAiAGQf//A3FBCGp0Qf///wNxcgshBgJ/IAMvAQYiB0H//wFxRQRAIAdBEHQMAQsgB0H/B3EhAiAHQYCAAnEhCCAHQYD4AXEiB0GA+AFGBEAgCEEQdCEHIAdBgICA/AdyIAJFDQEaIAcgAkENdHJBgICA/gdyDAELIAhBEHQhCCAHQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogCHIgBw0AGiAIQYCAgNgDciACZ0EQayIHQRd0ayACIAdB//8DcUEIanRB////A3FyCyEHAn8gAy8BCCIIQf//AXFFBEAgCEEQdAwBCyAIQf8HcSECIAhBgIACcSEJIAhBgPgBcSIIQYD4AUYEQCAJQRB0IQggCEGAgID8B3IgAkUNARogCCACQQ10ckGAgID+B3IMAQsgCUEQdCEJIAhBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAJciAIDQAaIAlBgICA2ANyIAJnQRBrIghBF3RrIAIgCEH//wNxQQhqdEH///8DcXILIQgCfyADLwEKIglB//8BcUUEQCAJQRB0DAELIAlB/wdxIQIgCUGAgAJxIQogCUGA+AFxIglBgPgBRgRAIApBEHQhCSAJQYCAgPwHciACRQ0BGiAJIAJBDXRyQYCAgP4HcgwBCyAKQRB0IQogCUENdEGAgID8AHEgAkENdHJBgICAwANqIApyIAkNABogCkGAgIDYA3IgAmdBEGsiCUEXdGsgAiAJQf//A3FBCGp0Qf///wNxcgshCQJ/IAMvAQwiCkH//wFxRQRAIApBEHQMAQsgCkH/B3EhAiAKQYCAAnEhBCAKQYD4AXEiCkGA+AFGBEAgBEEQdCEKIApBgICA/AdyIAJFDQEaIAogAkENdHJBgICA/gdyDAELIARBEHQhBCAKQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBHIgCg0AGiAEQYCAgNgDciACZ0EQayIKQRd0ayACIApB//8DcUEIanRB////A3FyCyEKAn8gAy8BDiIEQf//AXFFBEAgBEEQdAwBCyAEQf8HcSECIARBgIACcSELIARBgPgBcSIEQYD4AUYEQCALQRB0IQQgBEGAgID8B3IgAkUNARogBCACQQ10ckGAgID+B3IMAQsgC0EQdCELIARBDXRBgICA/ABxIAJBDXRyQYCAgMADaiALciAEDQAaIAtBgICA2ANyIAJnQRBrIgRBF3RrIAIgBEH//wNxQQhqdEH///8DcXILIQIgAAJ/IAMvARAiBEH//wFxRQRAIARBEHQMAQsgBEH/B3EhAyAEQYCAAnEhCyAEQYD4AXEiBEGA+AFGBEAgC0EQdCEEIARBgICA/AdyIANFDQEaIAQgA0ENdHJBgICA/gdyDAELIAtBEHQhCyAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogC3IgBA0AGiALQYCAgNgDciADZ0EQayIEQRd0ayADIARB//8DcUEIanRB////A3FyCzYCICAAIAI2AhwgACAKNgIYIAAgCTYCFCAAIAg2AhAgACAHNgIMIAAgBjYCCCAAIAU2AgQgACABNgIAC/sJAQd/IAAoAgQhAgJAAkAgACgCCCIFBEAgAiEBA0AgAUEoaigCACIGBEAgAUEsaigCACIHQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyAGakkNAyADQQAgBCAGQSdqSxsNBCAHEKICCyABEL8EIAFBQGshASAFQQFrIgUNAAsLIAAoAgAiAwRAIAJBBGsoAgAiAUF4cSIEIANBBnQiA0EEQQggAUEDcSIBG3JJDQEgAUEAIAQgA0EncksbDQIgAhCiAgsCQCAAKAKEASIBQYCAgIB4Rg0AIAEEQCAAKAKIASIEQQRrKAIAIgJBeHEiAyABQQN0IgFBBEEIIAJBA3EiAhtqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoApABIgEEQCAAKAKUASIEQQRrKAIAIgJBeHEiAyABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoApwBIgEEQCAAKAKgASIEQQRrKAIAIgJBeHEiAyABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0CIAJBACADIAFBJ2pLGw0DIAQQogILIAAoAqgBIgFFDQAgACgCrAEiBEEEaygCACICQXhxIgMgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAIMIgEEQCAAKAIQIgRBBGsoAgAiAkF4cSIDIAFByABsIgFBBEEIIAJBA3EiAhtqSQ0BIAJBACADIAFBJ2pLGw0CIAQQogILIAAoAhgiAQRAIAAoAhwiBEEEaygCACICQXhxIgMgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAIkIgEEQCAAKAIoIgRBBGsoAgAiAkF4cSIDIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAMgAUEnaksbDQIgBBCiAgsgACgCMCIBBEAgACgCNCIEQQRrKAIAIgJBeHEiAyABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACADIAFBJ2pLGw0CIAQQogILIAAoAjwiAQRAIAAoAkAiBEEEaygCACICQXhxIgMgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAJIIgEEQCAAKAJMIgRBBGsoAgAiAkF4cSIDIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAMgAUEnaksbDQIgBBCiAgsgACgCVCIBBEAgACgCWCIEQQRrKAIAIgJBeHEiAyABQQJ0IgFBBEEIIAJBA3EiAhtqSQ0BIAJBACADIAFBJ2pLGw0CIAQQogILIAAoAmAiAQRAIAAoAmQiBEEEaygCACICQXhxIgMgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgAyABQSdqSxsNAiAEEKICCyAAKAJsIgEEQCAAKAJwIgRBBGsoAgAiAkF4cSIDIAFBAnQiAUEEQQggAkEDcSICG2pJDQEgAkEAIAMgAUEnaksbDQIgBBCiAgsgACgCeCICBEAgACgCfCIDQQRrKAIAIgBBeHEiASACQQJ0IgJBBEEIIABBA3EiABtqSQ0BIABBACABIAJBJ2pLGw0CIAMQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL1A0CF38BeyABQeTRAGohEiABQYAEaiETIAFBgM8AaiEUIAFBgB1qIRUgAUGg0QBqIRYgAUGANmohFyABQe3RAGohGCMAQfAAayIIQTBqIRkgAS0A61EhBCAIQRhqIRECfwNAAkACQAJAAkACQAJAIARB/wFxIgsOAwABAgMLIBH9DAAAAAAAAAAAAAAAAAAAAAAiGv0LAwAgCCAa/QsDCEEAIQUgCEEsakEAQcQA/AsAA0AgASAFaiIDQbAEav0MHgMeAx4DHgMeAx4DHgMeAyIa/QsCACADQaAEaiAa/QsCACADQZAEaiAa/QsCACADQYAEaiAa/QsCACAFQUBrIgVBgBBHDQALQaACIQQgEyEMIBQhDwwDCyAR/QwAAAAAAAAAAAAAAAAAAAAAIhr9CwMAIAggGv0LAwhBACEFIAhBLGpBAEHEAPwLAANAIAEgBWoiA0GwHWr9DB4DHgMeAx4DHgMeAx4DHgMiGv0LAgAgA0GgHWogGv0LAgAgA0GQHWogGv0LAgAgA0GAHWogGv0LAgAgBUFAayIFQYAQRw0AC0EgIQQgFSEMIBYhDwwCCyAR/QwAAAAAAAAAAAAAAAAAAAAAIhr9CwMAIAggGv0LAwhBACEFIAhBLGpBAEHEAPwLAANAIAEgBWoiA0GwNmr9DB4DHgMeAx4DHgMeAx4DHgMiGv0LAgAgA0GgNmogGv0LAgAgA0GQNmogGv0LAgAgA0GANmogGv0LAgAgBUFAayIFQYAQRw0AC0ETIQQgFyEMIBghDwwCC0EDDAMLIAxBgBBqQQBBgAn8CwALQRwhCUEDIBIgC0EBdGovAQAiECAESw0BGiAQBEAgECEFIA8hBANAQQMgBC0AACIDQQ9LDQMaIAhBCGogA0EBdGoiAyADLwEAQQFqOwEAIARBAWohBCAFQQFrIgUNAAsLQQAhBEEBIQNBACEFQQAhCgNAAkACfyADRQRAIARBD0sNAiAEQQFqDAELIARBECAEayIGIAMgAyAGSxsiBiAEaiIHIAQgB0sbIgRBD0sNASAGIANrIQYDQCAGBEAgBkEBaiEGIARBAWoiBEEQRw0BDAMLC0EAIQMgBEEBagsgGSAEQQJ0aiAFIAhBCGogBEEBdGovAQAiBGpBAXQiBTYCACAEIApqIQohBAwBCwsgBUGAgARHBEBBASALQQJGIApB//8DcUEBS3INAhoLIAxBgBBqIQ1B//8DIQlBACEKA0AgCiAQSQRAIApBAWohBANAIAohCyAEIQoCQCALIA9qLQAAQQ9xIgdFDQAgCEEsaiAHQQJ0aiIDIAMoAgAiA0EBajYCAAJ/IANBf0EgIAdrdnEiA0GABE8EQCADQQh0IANBgP4DcUEIdnIiA0EEdkGPHnEgA0GPHnFBBHRyIgNBAnZBs+YAcSADQbPmAHFBAnRyIgNBAXZB1aoBcSADQdWqAXFBAXRyDAELIANBAXQvAZT/RAtB//8DcUEQIAdrdiEFIAdBCk0EQCAFQf8HSw0BIAdBCXQgC3IhA0EBIAd0IgZBAXQhCyAMIAVBAXRqIQQDQCAEIAM7AQAgBCALaiEEIAUgBmoiBUGACEkNAAsMAQsgDCAFQf8HcUEBdGoiAy8BACIGQZ4GRwR/IAkFIAMgCTsBACAJIgZBAmsLIQMCQCAHQQtGBEAgBUEJdiEODAELQQohCUEDIAVBCnYiDkEBcSAGQX9zakH//wNxIgRBvwRLDQYaIA0gBEEBdGoiBC8BACIGBH8gAwUgBCADOwEAIAMhBiADQQJrCyEEIAdBDUkEQCAEIQMMAQtBAyAFQQt2Ig5BAXEgBkF/c2pB//8DcSIDQb8ESw0GGiANIANBAXRqIgMvAQAiBgR/IAQFIAMgBDsBACAEIQYgBEECawshAyAHQQ1GDQBBAyAFQQx2Ig5BAXEgBkF/c2pB//8DcSIEQb8ESw0GGiANIARBAXRqIgQvAQAiBgR/IAMFIAQgAzsBACADIQYgA0ECawshBCAHQQ9HBEAgBCEDDAELQQMgBUENdiIOQQFxIAZBf3NqQf//A3EiA0G/BEsNBhogDSADQQF0aiIDLwEAIgYEQCAEIQMMAQsgAyAEOwEAIARBAmshAyAEIQYLIA5BAXZBAXEgBkF/c2pB//8DcSIEQb8ESwRAQQohCUEDDAYLIA0gBEEBdGogCzsBACADIQkMAwsgCiAKIBBJIgNqIQQgAw0ACwsLAkACQAJAIAEtAOtRIgMOAwABAgELIAJBADYCDEEMIQlBAQwDCyABIANBAWsiBDoA61EMAQsLIAJBADYCDEEKIQlBAQshBCAAIAk6AAEgACAEOgAAC6IOBAp/A30BewF+IwBB0ARrIgokAAJAAkACQAJAAnsgAxC5CiISBEBDAACAPyEUQwAAgD8hFUMAAIA/IRb9DAAAAAAAAIA/AABAwQAAEEEMAQsgCkHQAWogAxC1ASAKLQDsASINQQJGBEAgCigC0AEhCyAAQQA2AgAgACALNgIEQQEhDQwCCyAKQQ5qIApB7wFqLQAAOgAAIAogCi8A7QE7AQwgCioC6AEhFCAKKgLkASEVIAoqAuABIRYgCv0ABNABCyEXQQYhDAJAAkACQAJAAkAgASgCACILQYCAgIB4Rg0AIApBEGogASgCBCIOIAEoAggQkQUgCi0AEEEBRgRAIAooAhQhDCAKQQA2ApwDIApCgICAgBA3ApQDIApBnJPBADYC1AEgCkKggICADjcC2AEgCiAKQZQDajYC0AEgDCAKQdABahCvBA0CIAooApQDIQ0gCigCmAMiDyAKKAKcAxDsCCERIA0EQCAPQQRrKAIAIhBBeHEiE0EEQQggEEEDcSIQGyANakkNCSAQQQAgEyANQSdqSxsNCiAPEKICC0EAIQ0gAEEANgIAIAAgETYCBCAMIAwoAgAoAgARAwAgC0UNBiAOQQRrKAIAIgBBeHEiDEEEQQggAEEDcSIAGyALakkNCCAAQQAgDCALQSdqSxsNCSAOEKICDAYLIAotABEhDCALRQ0AIA5BBGsoAgAiAUF4cSIPQQRBCCABQQNxIgEbIAtqSQ0HIAFBACAPIAtBJ2pLGw0IIA4QogILQQQhAUEAIQtBABC2CSEQQQAhDkEEIQ8CQCAEQQFxRQ0AIApB0AFqIAUQlwYgCigC2AEhESAKKALUASEPIAooAtABIQ4gBUGECEkNACAFEJsHC0EAIQUCQCAGQQFxRQ0AIApB0AFqIAcQlwYgCigC2AEhBSAKKALUASEBIAooAtABIQsgB0GECEkNACAHEJsHC0EEIQdBACEGQQAhBAJAIAhBAXFFDQAgCkHQAWogCRCXBiAKKALYASEEIAooAtQBIQcgCigC0AEhBiAJQYQISQ0AIAkQmwcLIAogDToA7AIgCiAUOALoAiAKIBU4AuQCIAogFjgC4AIgCiAX/QsC0AIgCkGAgICAeDYCxAIgCkKAgICAgICAgIB/NwK0AiAKQoCAgIDAADcCrAIgCiAENgKoAiAKIAc2AqQCIAogBjYCoAIgCiAFNgKcAiAKIAE2ApgCIAogCzYClAIgCiARNgKQAiAKIA82AowCIAogDjYCiAIgCkEANgKAAiAKQQA2AvgBIApBADYC8AEgCkEANgLoASAKQQA2AuABIApBADYC2AEgCkEANgLQASAKQYgDakEAOgAAQQIhCSAKQe8CaiAKQQ5qLQAAOgAAIApBADYC+AIgCiAQNgL8AiAKQgA3AvACIApCADcCgAMgCiAKLwEMOwDtAiACKAIAIQQgAigCBCEGIAIoAgghAQJ/IAxBBkcEQCAKIAwgCkHQAWoQ1QMgCigCBCEFIAooAgAMAQsgCkGUA2ogCkHUAWpBuAH8CgAAQQAhCUEACyEIQYCAgIB4IQcgBEGAgICAeEcEQCABQQBIDQICQCABRQRAQQEhBwwBCyABEHEiB0UNBAsgAQRAIAcgBiAB/AoAAAsgB60gAa1CIIaEIRggASEHCyAKQRhqIgIgCkGUA2pBuAH8CgAAQewBEHEiAUUNAiABIAk2AgAgAUEEaiACQbgB/AoAACABIAw6AOgBIAEgBTYC5AEgASAINgLgASABQYCAgIB4NgLUASABIBg3AswBIAEgBzYCyAEgAUEANgLEASABQoCAgIAQNwK8ASAAQZDwwAA2AgwgAEEBNgIIIABB+O/AADYCBCAAIAE2AgAgEkUgA0GECElyDQMgAxCbBwwDC0GgnsYAQTcgCkHPBGpBtJPBAEHYnsYAEOAGAAtB2JrIABD/BwsACyAEQYCAgIB4ckGAgICAeEYNAQJAIAZBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIARqTwRAIABBACABIARBJ2pLGw0BIAYQogIMAwsMAwsMAwsgCEUgCUGECElyRQRAIAkQmwcLIAZFIAdBhAhJckUEQCAHEJsHCyAERSAFQYQISXJFBEAgBRCbBwsgEkUgA0GECElyRQRAIAMQmwcLIAIoAgAiAEGAgICAeHJBgICAgHhHBEAgAigCBCICQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyAAakkNAiADQQAgBCAAQSdqSxsNAyACEKICCyANIAEoAgAiAEGAgICAeEdxRSAARXINACABKAIEIgFBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIABqSQ0BIAJBACADIABBJ2pLGw0CIAEQogILIApB0ARqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvLDQMPfwR+AXsjAEEgayIKJAACQAJAAkAgACgCDCILQQFqIgMEQAJAIAAoAgQiCCAIQQFqIglBA3YiAkEHbCIOIAhBCEkbIgZBAXYgA0kEQAJAAkACQAJAAn8gBkEBaiICIAMgAiADSxsiA0EPTwRAIANB/////wFLDQtBfyADQQN0QQduQQFrZ3ZBAWoMAQtBBCADQQhxQQhqIANBBEkbCyIDrUIYfiIRQiCIpw0AIBGnIgIgA0EIaiIGaiIFIAJJIAVB+P///wdLcg0AIAUQcSIFRQ0BIAIgBWohBCAGBEAgBEH/ASAG/AsACyADQQFrIgkgA0EDdkEHbCAJQQhJGyEMIAAoAgAhBSALDQJBACELDAMLIApBADYCGCAKQQE2AgwgCkHEtcQANgIIIApCBDcCECAKQQhqQZi1xAAQjQgLAAsgBEEIaiENIAVBGGshDiAFKQMAQn+FQoCBgoSIkKDAgH+DIREgASkDCCETIAEpAwAhFEEAIQMgCyEBIAUhBgNAIBFQBEADQCADQQhqIQMgBkEIaiIGKQMAQoCBgoSIkKDAgH+DIhFCgIGChIiQoMCAf1ENAAsgEUKAgYKEiJCgwIB/hSERCyAEIAkgFCATIA4gEXqnQQN2IANqIg9BaGxqEPgDpyIQcSICaikAAEKAgYKEiJCgwIB/gyISUARAQQghBwNAIAIgB2ohAiAHQQhqIQcgBCACIAlxIgJqKQAAQoCBgoSIkKDAgH+DIhJQDQALCyARQgF9IBGDIREgBCASeqdBA3YgAmogCXEiAmosAABBAE4EQCAEKQMAQoCBgoSIkKDAgH+DeqdBA3YhAgsgAiAEaiAQQRl2Igc6AAAgDSACQQhrIAlxaiAHOgAAIAQgAkF/c0EYbGoiAkEQaiAFIA9Bf3NBGGxqIgdBEGopAAA3AAAgAiAH/QAAAP0LAAAgAUEBayIBDQALCyAAIAk2AgQgACAENgIAIAAgDCALazYCCCAIRQ0BIAggCEEYbEEfakF4cSIBakEJaiIARQ0BIAUgAWsiAUEEaygCACIDQXhxIgJBBEEIIANBA3EiAxsgAGpJDQMgA0EAIAIgAEEnaksbDQQgARCiAgwBCyAAIAkEfyAAKAIAIQACQAJAIAIgCUEHcUEAR2oiBUECSQRAIAUhBgwBCyAFQQFxIQYgBUH+////A3EiBEEDdCEHIAQhAiAAIQMDQCADIAP9AAMAIhX9TUEH/c0B/QwBAQEBAQEBAQEBAQEBAQEB/U4gFf0Mf39/f39/f39/f39/f39/f/1Q/c4B/QsDACADQRBqIQMgAkECayICDQALIAQgBUYNAQsgACAHaiEDA0AgAyADKQMAIhFCf4VCB4hCgYKEiJCgwIABgyARQv/+/fv379+//wCEfDcDACADQQhqIQMgBkEBayIGDQALCwJAIAlBCE8EQCAAIAlqIAApAAA3AAAMAQsgCUUNACAAQQhqIAAgCfwKAAALIABBCGohBSAAQRhrIQ8gASkDCCESIAEpAwAhE0EBIQJBACEDA0AgAyEGIAIhAwJAIAAgBmoiDC0AAEGAAUcNACAPIAZBaGxqIRAgACAGQX9zQRhsaiECA0AgCCATIBIgEBD4A6ciDXEiBCEBIAAgBGopAABCgIGChIiQoMCAf4MiEVAEQEEIIQcDQCABIAdqIQEgB0EIaiEHIAAgASAIcSIBaikAAEKAgYKEiJCgwIB/gyIRUA0ACwsgACAReqdBA3YgAWogCHEiAWosAABBAE4EQCAAKQMAQoCBgoSIkKDAgH+DeqdBA3YhAQsgASAEayAGIARrcyAIcUEITwRAIAAgAWoiBC0AACAEIA1BGXYiBDoAACAFIAFBCGsgCHFqIAQ6AAAgACABQX9zQRhsaiEBQf8BRgRAIAxB/wE6AAAgBSAIIAZBCGtxakH/AToAACABQRBqIAJBEGopAAA3AAAgASAC/QAAAP0LAAAMAwsgAikAACERIAIgASkAADcAACABIBE3AAAgASkACCERIAEgAikACDcACCACIBE3AAggAigAECEEIAIgASgAEDYAECABKAAUIQcgASACKAAUNgAUIAIgBzYAFCABIAQ2ABAMAQsLIAwgDUEZdiIBOgAAIAUgCCAGQQhrcWogAToAAAsgAyADIAlJIgFqIQIgAQ0ACyAIIA4gCEEISRsFQQALIAtrNgIICyAKQSBqJAAPCwwCC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgCkEANgIYIApBATYCDCAKQcS1xAA2AgggCkIENwIQIApBCGpBmLXEABCNCAALgg0CCX8HfSADQQhPBEAgACAAIANBA3YiA0EEdCIGaiAAIANBHGwiB2ogAyAEEMEBIQAgASABIAZqIAEgB2ogAyAEEMEBIQEgAiACIAZqIAIgB2ogAyAEEMEBIQILQwAAgD8hDgJ/AkAgACgCACIDIAQoAgBBBGooAgAiBEEIaigCACIHSQRAIAEoAgAhBiAEQQRqKAIAIgkgA0EkbGoiCBCKBCEQIAgvARQiBEH//wFxIgxFBEAgBEEQdAwDCyAEQf8HcSEDIARBgIACcSEFIARBgPgBcSIKQYD4AUYEQCAFQRB0IQUgBUGAgID8B3IgA0UNAxogBSADQQ10ckGAgID+B3IMAwsgBUEQdCEFIApFDQEgCkENdEGAgID8AHEgA0ENdHJBgICAwANqIAVyDAILIAMgB0HUwMcAEIwHAAsgBUGAgIDYA3IgA2dBEGsiBUEXdGsgAyAFQf//A3FBCGp0Qf///wNxcgu+Ig9DAACAP14EQCAPEMYFQ1T4LUCUQwAAgD+SkSEOC0MAAIA/IRICfwJAIAYgB0kEQCAJIAZBJGxqIgoQigQhDyAKLwEUIgZB//8BcSINRQRAIAZBEHQMAwsgBkH/B3EhAyAGQYCAAnEhBSAGQYD4AXEiC0GA+AFGBEAgBUEQdCEFIAVBgICA/AdyIANFDQMaIAUgA0ENdHJBgICA/gdyDAMLIAVBEHQhBSALRQ0BIAtBDXRBgICA/ABxIANBDXRyQYCAgMADaiAFcgwCCyAGIAdB1MDHABCMBwALIAVBgICA2ANyIANnQRBrIgVBF3RrIAMgBUH//wNxQQhqdEH///8DcXILviIRQwAAgD9eBEAgERDGBUNU+C1AlEMAAIA/kpEhEgsgAigCACEFIAgQigQhEUMAAIA/IRMCfyAEQRB0IAxFDQAaIARB/wdxIQMgBEGAgAJxIQggBEGA+AFxIgRBgPgBRgRAIAhBEHQhBCAEQYCAgPwHciADRQ0BGiAEIANBDXRyQYCAgP4HcgwBCyAIQRB0IQggBEENdEGAgID8AHEgA0ENdHJBgICAwANqIAhyIAQNABogCEGAgIDYA3IgA2dBEGsiBEEXdGsgAyAEQf//A3FBCGp0Qf///wNxcgu+IhRDAACAP14EQCAUEMYFQ1T4LUCUQwAAgD+SkSETCwJ/AkAgBSAHSQRAIBAgEJIgDpQiDiAPIA+SIBKUYEUhCCAOIA5bIQsgCSAFQSRsaiIHEIoEIRAgBy8BFCIDQf//AXEiDEUEQCADQRB0DAMLIANB/wdxIQQgA0GAgAJxIQUgA0GA+AFxIglBgPgBRgRAIAVBEHQhBSAFQYCAgPwHciAERQ0DGiAFIARBDXRyQYCAgP4HcgwDCyAFQRB0IQUgCUUNASAJQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogBXIMAgsgBSAHQdTAxwAQjAcACyAFQYCAgNgDciAEZ0EQayIFQRd0ayAEIAVB//8DcUEIanRB////A3FyC0MAAIA/IQ6+Ig9DAACAP14EQCAPEMYFQ1T4LUCUQwAAgD+SkSEOCyAIIAtxIgUgESARkiATlCIPIA9bIA8gECAQkiAOlGBFcUYEfyAKEIoEIRBDAACAPyEPAn8gBkEQdCANRQ0AGiAGQf8HcSEAIAZBgIACcSEEIAZBgPgBcSIGQYD4AUYEQCAEQRB0IQQgBEGAgID8B3IgAEUNARogBCAAQQ10ckGAgID+B3IMAQsgBEEQdCEEIAZBDXRBgICA/ABxIABBDXRyQYCAgMADaiAEciAGDQAaIARBgICA2ANyIABnQRBrIgRBF3RrIAAgBEH//wNxQQhqdEH///8DcXILviIOQwAAgD9eBEAgDhDGBUNU+C1AlEMAAIA/kpEhDwtDAACAPyEOIAIgASAFIBAgEJIgD5QiECAQWyAQIAcQigQiEiASkgJ/IANBEHQgDEUNABogA0H/B3EhACADQYCAAnEhBCADQYD4AXEiA0GA+AFGBEAgBEEQdCEDIANBgICA/AdyIABFDQEaIAMgAEENdHJBgICA/gdyDAELIARBEHQhBCADQQ10QYCAgPwAcSAAQQ10ckGAgIDAA2ogBHIgAw0AGiAEQYCAgNgDciAAZ0EQayIDQRd0ayAAIANB//8DcUEIanRB////A3FyC74iEUMAAIA/XgR9IBEQxgVDVPgtQJRDAACAP5KRBSAOC5RgRXFzGwUgAAsLww0DBHsIfwF+AkACQAJAAkBBfyAELQC/AiILQQ9xdCIJQf8BcUH/AUcEQEH/ASAJQX9zIg9B/wFxbiEMQQEgC3RBlgJxRSALQQhLcg0BIAQoAtABIQogBCgCzAEhDSAEKALUASEQQQggC25BAXStIAGtfiIRQiCIUCARpyADSXENAiAAIAFqIQ4gA0F+cSEEAkAgC0EIRwRAIARFDQZBCCALayEJIA1BgYCAgHhGBEBBACEKQQAgBGshAUF/IQQDQCAEQQBIBEAgACAORg0EIAAtAAAhCiAJIQQgAEEBaiEACyACQQFqQf8BOgAAIAIgCiAEdiAPcSAMbDoAACAEIAtrIQQgAkECaiECIAFBAmoiAQ0ACwwHCyAQBEBBACADQX5xayEBQQAhA0F/IQQDQCAEQQBIBEAgACAORg0EIAAtAAAhAyAJIQQgAEEBaiEACyACIANB/wFxIAR2IA9xIg0gDGw6AAAgAkEBakF/QQAgDSAKLQAARxs6AAAgBCALayEEIAJBAmohAiABQQJqIgENAAsMBwsgAUUNAUEAQQBBkJnFABCMBwALIAFFDQUgDUGBgICAeEYEQCADQQF2IgMgAUEBayIBIAEgA0sbIgFBEEkgACACIAFBAXRqQQJqSSAAIAFqQQFqIAJLcXJFBEAgACABQQFqIgEgAUEPcSIBQRAgARtrIglqIAQgCUEBdCIDayEEIAIgA2ogDP0PIQYDQCACQR9qQf8BOgAAIAJBHWpB/wE6AAAgAkEbakH/AToAACACQRlqQf8BOgAAIAJBF2pB/wE6AAAgAkEVakH/AToAACACQRNqQf8BOgAAIAJBEWpB/wE6AAAgAkEPakH/AToAACACQQ1qQf8BOgAAIAJBC2pB/wE6AAAgAkEJakH/AToAACACQQdqQf8BOgAAIAJBBWpB/wE6AAAgAkEDakH/AToAACACQQFqQf8BOgAAIAJBHmogAP0AAAAiBf0WDyAG/RYPbDoAACACQRxqIAX9Fg4gBv0WDmw6AAAgAkEaaiAF/RYNIAb9Fg1sOgAAIAJBGGogBf0WDCAG/RYMbDoAACACQRZqIAX9FgsgBv0WC2w6AAAgAkEUaiAF/RYKIAb9FgpsOgAAIAJBEmogBf0WCSAG/RYJbDoAACACQRBqIAX9FgggBv0WCGw6AAAgAkEOaiAF/RYHIAb9FgdsOgAAIAJBDGogBf0WBiAG/RYGbDoAACACQQpqIAX9FgUgBv0WBWw6AAAgAkEIaiAF/RYEIAb9FgRsOgAAIAJBBmogBf0WAyAG/RYDbDoAACACQQRqIAX9FgIgBv0WAmw6AAAgAkECaiAF/RYBIAb9FgFsOgAAIAIgBf0WACAG/RYAbDoAACAAQRBqIQAgAkEgaiECIAlBEGsiCQ0ACyECIQALA0AgBEUNByACQQFqQf8BOgAAIAIgAC0AACAMbDoAACAEQQJrIQQgAkECaiECIA4gAEEBaiIARw0ACwwGCyAQBEAgA0EBdiIDIAFBAWsiASABIANLGyIBQQ9NDQUgAiAAIAFqQQFqSSAAIAIgAUEBdGpBAmoiA0lxIAIgCkEBakkgAyAKS3FyDQUgACABQQFqIgEgAUEPcSIBQRAgARtrIglqIAQgCUEBdCIDayEEIAIgA2ohAyAK/QcAACEHIAz9DyEGA0AgAiAA/QAAACIF/RYAIAb9FgBs/Q8gBf0WASAG/RYBbP0XASAF/RYCIAb9FgJs/RcCIAX9FgMgBv0WA2z9FwMgBf0WBCAG/RYEbP0XBCAF/RYFIAb9FgVs/RcFIAX9FgYgBv0WBmz9FwYgBf0WByAG/RYHbP0XByAF/RYIIAb9Fghs/RcIIAX9FgkgBv0WCWz9FwkgBf0WCiAG/RYKbP0XCiAF/RYLIAb9Fgts/RcLIAX9FgwgBv0WDGz9FwwgBf0WDSAG/RYNbP0XDSAF/RYOIAb9Fg5s/RcOIAX9Fg8gBv0WD2z9Fw8iCCAFIAf9JCIF/Q0IGAkZChoLGwwcDR0OHg8f/QsAECACIAggBf0NABABEQISAxMEFAUVBhYHF/0LAAAgAEEQaiEAIAJBIGohAiAJQRBrIgkNAAshACADIQIMBQsgBEUNBUEAQQBBkJnFABCMBwALQfyWxQBBIkGgl8UAEKsHAAtBgJnFABCBCAALQbCXxQBBNEHkl8UAEOsHAAtBhJbFAEHlAEHslsUAEOsHAAsDQCAERQ0BIAIgAC0AACIBIAxsOgAAIAJBAWpBf0EAIAEgCi0AAEcbOgAAIARBAmshBCACQQJqIQIgAEEBaiIAIA5HDQALCwu+DAIGfwR+IwBBwAFrIgQkAAJAAkACQCAAKQMAQgJRDQAgACgCqAEhASAAQQA2AqgBAkACQAJAAkAgAUEBaw4CAQIACyAEQQhqIQICQAJAQSUQcSIBRQ0AIAFBHWpBnZ3HACkAADcAACABQRBqQZCdxwD9AAAA/QsAACABQYCdxwD9AAAA/QsAAEEMEHEiA0UNACADQSU2AgggAyABNgIEIANBJTYCAEEMEHEiAUUNACABQSg6AAggAUG4nccANgIEIAEgAzYCACACQQA2AhAgAiABrUIghkIDhDcDAAwBCwALDAILIARBGGogAEHAAWopAwA3AwAgBCAA/QADsAH9CwMIDAELIAAoAqwBIgFBQGshAiABKAIkIQMgASgCICEFAkAgASkDGCIHQgJSBEAgASkDOCEIIARBMGogAUEQaikDADcDACAEQegAaiACQQhq/QADAP0LAwAgBEGoAWogAUGIAWr9AAMA/QsDACAEQZgBaiABQfgAav0AAwD9CwMAIARBuAFqIAFBmAFqKQMANwMAIAQgAf0AAwD9CwMgIAQgAf0AAyj9CwNIIAQgAikDADcDYCAEIAH9AANY/QsDeCAEIAH9AANo/QsDiAEgBEEYaiAEQdAAaikDADcDACAEIAM2AkQgBCAFNgJAIAQgBzcDOCAEIAg3A1ggBCAE/QADQP0LAwggBCgCJCEDIAQoAiAhBSAEQfgAahCEBQwBCyAEQRhqIAJBEGopAwA3AwAgBCAC/QADAP0LAwgLIAMEQCAFQQRrKAIAIgJBeHEiBkEEQQggAkEDcSICGyADakkNAyACQQAgBiADQSdqSxsNBCAFEKICCyABQQRrKAIAIgNBeHFBvAFBwAEgA0EDcSICG0kNAiACQQAgA0HgAU8bDQMgARCiAgsCQCAEKAIYIgEEQCAEKQMQIghQDQEgASkDCCEHIAEoAgQiA60hCQNAAkAgByADIAcgCSAHIAlUG6ciAmsiBUKAwAAgCCAIQoDAAFobpyIGIAUgBkkbrSIKfCEHIAIgA0YNACAIIAp9IghCAFINAQsLIAEgBzcDCAwBCyAELQAIQQNHDQAgBCgCDCIBKAIAIQMgAUEEaigCACICKAIAIgUEQCADIAURAwALIAIoAgQiAgRAIANBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIAJqSQ0DIAVBACAGIAJBJ2pLGw0EIAMQogILIAFBBGsoAgAiA0F4cSICQRBBFCADQQNxIgMbSQ0CIANBACACQTRPGw0DIAEQogILIAAoAiwiAQRAIAAoAigiA0EEaygCACICQXhxIgVBBEEIIAJBA3EiAhsgAWpJDQIgAkEAIAUgAUEnaksbDQMgAxCiAgsgACgCNCIBBEAgACgCMCIDQQRrKAIAIgJBeHEiBUEEQQggAkEDcSICGyABakkNAiACQQAgBSABQSdqSxsNAyADEKICCwJAIAAoAowBIgFFDQAgASABKAIAIgFBAWs2AgAgAUEBRw0AIAAoAowBEN0FCwJAIAAoApABIgFFDQAgASABKAIAIgFBAWs2AgAgAUEBRw0AIAAoApABEN0FCyAAKAI8IgEEQCAAKAI4IgNBBGsoAgAiAkF4cSIFQQRBCCACQQNxIgIbIAFqSQ0CIAJBACAFIAFBJ2pLGw0DIAMQogILIAAoAngiAUUNACAAKAJ8IgNBBGsoAgAiAkF4cSIFIAFBBXQiAUEEQQggAkEDcSICG3JJDQEgAkEAIAUgAUEnaksbDQIgAxCiAgsgACgCqAFBAk8EQAJAIAAoAqwBIgApAxhCAlEEQCAAKAIkIgFFDQEgACgCICIDQQRrKAIAIgJBeHEiBUEEQQggAkEDcSICGyABakkNAyACQQAgBSABQSdqSxsNBCADEKICDAELIAAoAgQiAQRAIAAoAgAiA0EEaygCACICQXhxIgVBBEEIIAJBA3EiAhsgAWpJDQMgAkEAIAUgAUEnaksbDQQgAxCiAgsgAEHYAGoQhAULIABBBGsoAgAiAUF4cUG8AUHAASABQQNxIgMbSQ0BIANBACABQeABTxsNAiAAEKICCyAEQcABaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALuQ4DBX8CfQF+IwBBIGsiAiQAAkAgASgCACIEQYy1xABBBCABKAIEIgMoAgwiBREAAARAQQEhAwwBCwJAAkACQCABKAIIIgZBgICABHFFBEBBASEDIARBu7PFAEEBIAURAAANBCAGQYCAgAFxIQUgACoCACEHIAZBgICAgAFxDQEgAEEEaiEEIAeLIghDyhsOWmAgB0MAAAAAXCAIQxe30ThdcXJFBEAgASAHIAVBAEdBARD3AkUNAwwFCyABIAcgBUEARxDPAkUNAgwECyAEQduBwgBBAiAFEQAABEBBASEDDAQLIAJBAToADyACIAM2AgQgAiAENgIAIAJB4IHCADYCFCACIAEpAggiCTcCGCAJpyIEQYCAgAFxIQMgAiACQQ9qNgIIIAIgAjYCECAAKgIAIQcCQAJAIARBgICAgAFxRQRAIAeLIghDyhsOWmAgB0MAAAAAXCAIQxe30ThdcXINASACQRBqIAcgA0EAR0EBEPcCDQUMAgsgAkEQaiAHIANBAEcgCUIwiKcQvQJFDQEMBAsgAkEQaiAHIANBAEcQzwINAwsgAigCEEHZgcIAQQIgAigCFCgCDBEAAARAQQEhAwwECyAAQQRqIQQMAQsgASAHIAVBAEcgAS8BDhC9Ag0CIABBBGohBAsCQAJAAkACQAJAIAEoAggiA0GAgIAEcUUEQCABKAIAQeeQxgBBAiABKAIEKAIMEQAABEBBASEDDAgLIANBgICAAXEhBSAEKgIAIQcgA0GAgICAAXENASAAQQhqIQQgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQEEBIQMgASAHIAVBAEdBARD3AkUNBQwICyABIAcgBUEARxDPAkUNBEEBIQMMBwsgASkCACEJIAJBAToADyACIAk3AgAgAkHggcIANgIUIAIgASkCCCIJNwIYIAmnIgVBgICAAXEhAyACIAJBD2o2AgggAiACNgIQIAQqAgAhByAFQYCAgIABcUUNASACQRBqIAcgA0EARyAJQjCIpxC9AkUNAgwECyABIAcgBUEARyABLwEOEL0CBEBBASEDDAYLIABBCGohBAwCCyAHiyIIQ8obDlpgIAdDAAAAAFwgCEMXt9E4XXFyRQRAIAJBEGogByADQQBHQQEQ9wINAwwBCyACQRBqIAcgA0EARxDPAg0CCyACKAIQQdmBwgBBAiACKAIUKAIMEQAARQRAIABBCGohBAwBC0EBIQMMAwsCQAJAAkACQAJAIAEoAggiA0GAgIAEcUUEQCABKAIAQeeQxgBBAiABKAIEKAIMEQAABEBBASEDDAkLIANBgICAAXEhBSAEKgIAIQcgA0GAgICAAXENASAAQQxqIQQgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQEEBIQMgASAHIAVBAEdBARD3AkUNBQwJCyABIAcgBUEARxDPAkUNBEEBIQMMCAsgASkCACEJIAJBAToADyACIAk3AgAgAkHggcIANgIUIAIgASkCCCIJNwIYIAmnIgVBgICAAXEhAyACIAJBD2o2AgggAiACNgIQIAQqAgAhByAFQYCAgIABcUUNASACQRBqIAcgA0EARyAJQjCIpxC9AkUNAgwECyABIAcgBUEARyABLwEOEL0CBEBBASEDDAcLIABBDGohBAwCCyAHiyIIQ8obDlpgIAdDAAAAAFwgCEMXt9E4XXFyRQRAIAJBEGogByADQQBHQQEQ9wINAwwBCyACQRBqIAcgA0EARxDPAg0CCyACKAIQQdmBwgBBAiACKAIUKAIMEQAARQRAIABBDGohBAwBC0EBIQMMBAsCQAJAAkACQAJAIAEoAggiA0GAgIAEcUUEQCABKAIAQeeQxgBBAiABKAIEKAIMEQAABEBBASEDDAoLIANBgICAAXEhACAEKgIAIQcgA0GAgICAAXENASAHiyIIQ8obDlpgIAdDAAAAAFwgCEMXt9E4XXFyRQRAQQEhAyABIAcgAEEAR0EBEPcCRQ0FDAoLQQEhAyABIAcgAEEARxDPAkUNBAwJCyABKQIAIQkgAkEBOgAPIAIgCTcCACACQeCBwgA2AhQgAiABKQIIIgk3AhggCaciA0GAgIABcSEAIAIgAkEPajYCCCACIAI2AhAgBCoCACEHIANBgICAgAFxRQ0BIAJBEGogByAAQQBHIAlCMIinEL0CRQ0CDAQLQQEhAyABIAcgAEEARyABLwEOEL0CDQcMAgsgB4siCEPKGw5aYCAHQwAAAABcIAhDF7fROF1xckUEQCACQRBqIAcgAEEAR0EBEPcCDQMMAQsgAkEQaiAHIABBAEcQzwINAgsgAigCEEHZgcIAQQIgAigCFCgCDBEAAEUNAEEBIQMMBQsgASgCAEHejsgAQQEgASgCBCgCDBEAACEDDAQLQQEhAwwDC0EBIQMMAgtBASEDDAELQQEhAwsgAkEgaiQAIAML6A4CC38BfiMAQSBrIgMkAEGAgICAeCEHAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiBEGAgICAeHMgBEEAThtBFGsOAgECAAsgASADQRRqQaTjwAAQlQghASAAQYCAgIB4NgIAIAAgATYCBAwKCyABKAIMIgVFDQECQCABKAIIIgEoAgBBlICAgHhGBEACQCABKAIMIgIEQCADQQRqIAEoAggQqAMgAygCBCIEQYCAgIB4Rw0BIAMoAgghAQwMC0EAIANBFGpBhOLAABDbBiEBDAsLIAMoAgghCCACQQFGDQEgA0EBNgIEIAJBAWtB/////wBxQQFqIANBBGpB6JXBABDbBiEBIARFDQogCCAEQQEQogcMCgsgASADQRRqQYTiwAAQlQghAQwJCwJAAn8gBUEBRwRAIAMoAgwhBiADQQRqIgcgAUEQahDQAyADKAIIIgEgAygCBCICQYCAgIB4Rg0BGiAFQQJGDQIgA0ECNgIEIAVB/v///wBqQf////8AcUECaiAHQeiVwQAQ2wYhBSAAQYCAgIB4NgIAIAAgBTYCBCAEBEAgCCAEQQEQogcLIAJFDQwgASACQQJ0QQQQogcMDAtBAUHsgMEAQYD9wAAQ2wYLIQEgBEUNCSAIQQRrKAIAIgVBeHEiAkEEQQggBUEDcSIFGyAEakkNDCAFQQAgAiAEQSdqSxsNCyAIEKICDAkLIAAgAygCDDYCFCAAIAE2AhAgACACNgIMIAAgBjYCCCAAIAg2AgQgACAENgIADAkLIAEoAgghBCABKAIEIQEgA0IANwIMIAMgATYCBCADIAEgBEEFdGoiCTYCCCAERQ0CQYCAgIB4IQYDQCADIAFBIGoiBDYCBCADIAMoAhBBAWo2AhAgAyABQRBqIgo2AgwCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQRUgASgCACICQYCAgIB4cyACQQBOG0EBaw4PAAsLAQsLCwsLCwsCAwQFCwsgAS0ABCIBRQ0HQQFBAiABQQFGGyEBDAsLIAEpAwgiDVANBkEBQQIgDUIBURshAQwKCyABKAIIIQIgASgCDEEFaw4EBAsLBgsLIAEoAgQhAgJAIAEoAghBBWsOBAMLCwALCyACKQAAQuPekaum7Nu36wBRDQkMCgsgASgCCCECAkACQCABKAIMQQVrDgQACwsBCwsgAi0AAEHmAEcNCiACLQABQekARw0KIAItAAJB7ABHDQogAi0AA0HlAEcNCiACLQAEQfMARw0KDAQLIAItAABB4wBHDQkgAi0AAUHvAEcNCSACLQACQeQARw0JIAItAANB5QBHDQkgAi0ABEHiAEcNCSACLQAFQe8ARw0JIAItAAZB7wBHDQkgAi0AB0HrAEYNCAwJCyABKAIEIQICQAJAIAEoAghBBWsOBAAKCgEKCyACLQAAQeYARw0JIAItAAFB6QBHDQkgAi0AAkHsAEcNCSACLQADQeUARw0JIAItAARB8wBHDQkMAwsgAi0AAEHjAEcNCCACLQABQe8ARw0IIAItAAJB5ABHDQggAi0AA0HlAEcNCCACLQAEQeIARw0IIAItAAVB7wBHDQggAi0ABkHvAEcNCCACLQAHQesARg0HDAgLIAJBkP3AAEEFENsHDQcMAQsgAkGQ/cAAQQUQ2wcNBgsgBkGAgICAeEYNAUGQ/cAAQQUQnwchBAwMCyACKQAAQuPekaum7Nu36wBRDQMMBAsgA0EUaiADQQRqELIFIAMoAhghBCADKAIUIgZBgICAgHhGBEBBgICAgHghBgwLCyADKAIcIQsgAygCCCEJIAQhCCADKAIEDAULIAEgA0EUakH048AAEJUIIQQMCQsgAUECRg0BCyAHQYCAgIB4Rg0BQZj+wABBCBCfByEEIAdFDQkMCAsgA0EANgIMIAQMAQsgA0EANgIMIANBFGogChDQAyADKAIYIQUgAygCFCIHQYCAgIB4RgRAIAUhBAwICyADKAIcIQwgBAsiASAJRw0ACwwBC0EAQeyAwQBBgP3AABDbBiEBDAYLIAZBgICAgHhGDQAgB0GAgICAeEYEQEGY/sAAQQgQnAchBCAGRQ0FIAggBkEBEKIHDAULIAAgDDYCFCAAIAU2AhAgACAHNgIMIAAgCzYCCCAAIAg2AgQgACAGNgIADAYLQYCAgIB4IQZBkP3AAEEFEJwHIQQLIAdBgICAgHhyQYCAgIB4Rg0BCyAFQQRrKAIAIgFBeHEiAiAHQQJ0IgdBBEEIIAFBA3EiARtqSQ0FIAFBACACIAdBJ2pLGw0EIAUQogILIAZBgICAgHhyQYCAgIB4Rg0AIAhBBGsoAgAiAUF4cSIFQQRBCCABQQNxIgEbIAZqSQ0EIAFBACAFIAZBJ2pLGw0DIAgQogILIAAgBDYCBCAAQYCAgIB4NgIADAELIAAgATYCBCAAQYCAgIB4NgIACyADQSBqJAAPC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAvoDgILfwF+IwBBIGsiAyQAQYCAgIB4IQcCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAQRUgASgCACIEQYCAgIB4cyAEQQBOG0EUaw4CAQIACyABIANBFGpB5OLAABCVCCEBIABBgICAgHg2AgAgACABNgIEDAoLIAEoAgwiBUUNAQJAIAEoAggiASgCAEGUgICAeEYEQAJAIAEoAgwiAgRAIANBBGogASgCCBCoAyADKAIEIgRBgICAgHhHDQEgAygCCCEBDAwLQQAgA0EUakGE4sAAENsGIQEMCwsgAygCCCEIIAJBAUYNASADQQE2AgQgAkEBa0H/////AHFBAWogA0EEakHolcEAENsGIQEgBEUNCiAIIARBARCiBwwKCyABIANBFGpBhOLAABCVCCEBDAkLAkACfyAFQQFHBEAgAygCDCEGIANBBGoiByABQRBqENADIAMoAggiASADKAIEIgJBgICAgHhGDQEaIAVBAkYNAiADQQI2AgQgBUH+////AGpB/////wBxQQJqIAdB6JXBABDbBiEFIABBgICAgHg2AgAgACAFNgIEIAQEQCAIIARBARCiBwsgAkUNDCABIAJBAnRBBBCiBwwMC0EBQbz+wABBgP3AABDbBgshASAERQ0JIAhBBGsoAgAiBUF4cSICQQRBCCAFQQNxIgUbIARqSQ0MIAVBACACIARBJ2pLGw0LIAgQogIMCQsgACADKAIMNgIUIAAgATYCECAAIAI2AgwgACAGNgIIIAAgCDYCBCAAIAQ2AgAMCQsgASgCCCEEIAEoAgQhASADQgA3AgwgAyABNgIEIAMgASAEQQV0aiIJNgIIIARFDQJBgICAgHghBgNAIAMgAUEgaiIENgIEIAMgAygCEEEBajYCECADIAFBEGoiCjYCDAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgJBgICAgHhzIAJBAE4bQQFrDg8ACwsBCwsLCwsLCwIDBAULCyABLQAEIgFFDQdBAUECIAFBAUYbIQEMCwsgASkDCCINUA0GQQFBAiANQgFRGyEBDAoLIAEoAgghAiABKAIMQQVrDgQECwsGCwsgASgCBCECAkAgASgCCEEFaw4EAwsLAAsLIAIpAABC496Rq6bs27frAFENCQwKCyABKAIIIQICQAJAIAEoAgxBBWsOBAALCwELCyACLQAAQeYARw0KIAItAAFB6QBHDQogAi0AAkHsAEcNCiACLQADQeUARw0KIAItAARB8wBHDQoMBAsgAi0AAEHjAEcNCSACLQABQe8ARw0JIAItAAJB5ABHDQkgAi0AA0HlAEcNCSACLQAEQeIARw0JIAItAAVB7wBHDQkgAi0ABkHvAEcNCSACLQAHQesARg0IDAkLIAEoAgQhAgJAAkAgASgCCEEFaw4EAAoKAQoLIAItAABB5gBHDQkgAi0AAUHpAEcNCSACLQACQewARw0JIAItAANB5QBHDQkgAi0ABEHzAEcNCQwDCyACLQAAQeMARw0IIAItAAFB7wBHDQggAi0AAkHkAEcNCCACLQADQeUARw0IIAItAARB4gBHDQggAi0ABUHvAEcNCCACLQAGQe8ARw0IIAItAAdB6wBGDQcMCAsgAkGQ/cAAQQUQ2wcNBwwBCyACQZD9wABBBRDbBw0GCyAGQYCAgIB4Rg0BQZD9wABBBRCfByEEDAwLIAIpAABC496Rq6bs27frAFENAwwECyADQRRqIANBBGoQsgUgAygCGCEEIAMoAhQiBkGAgICAeEYEQEGAgICAeCEGDAsLIAMoAhwhCyADKAIIIQkgBCEIIAMoAgQMBQsgASADQRRqQbTkwAAQlQghBAwJCyABQQJGDQELIAdBgICAgHhGDQFBmP7AAEEIEJ8HIQQgB0UNCQwICyADQQA2AgwgBAwBCyADQQA2AgwgA0EUaiAKENADIAMoAhghBSADKAIUIgdBgICAgHhGBEAgBSEEDAgLIAMoAhwhDCAECyIBIAlHDQALDAELQQBBvP7AAEGA/cAAENsGIQEMBgsgBkGAgICAeEYNACAHQYCAgIB4RgRAQZj+wABBCBCcByEEIAZFDQUgCCAGQQEQogcMBQsgACAMNgIUIAAgBTYCECAAIAc2AgwgACALNgIIIAAgCDYCBCAAIAY2AgAMBgtBgICAgHghBkGQ/cAAQQUQnAchBAsgB0GAgICAeHJBgICAgHhGDQELIAVBBGsoAgAiAUF4cSICIAdBAnQiB0EEQQggAUEDcSIBG2pJDQUgAUEAIAIgB0EnaksbDQQgBRCiAgsgBkGAgICAeHJBgICAgHhGDQAgCEEEaygCACIBQXhxIgVBBEEIIAFBA3EiARsgBmpJDQQgAUEAIAUgBkEnaksbDQMgCBCiAgsgACAENgIEIABBgICAgHg2AgAMAQsgACABNgIEIABBgICAgHg2AgALIANBIGokAA8LQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC5kOAgJ9A38CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACRSAAKAJcQQJJckUEQEMAAP5CQwAA/kIgACoCUJUgAC0AWEECRhshBiAAKAIoIAFBD2xqIQkgACgCLCEIQQAhAANAIAEgCE8NECAAIARPDREgACAJaiIHQf8AQwAA/kJDAAD+wiAGIAMqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQFqIARPDQ8gB0EBakH/AEMAAP5CQwAA/sIgBiADQQRqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEECaiAETw0OIAdBAmpB/wBDAAD+QkMAAP7CIAYgA0EIaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBA2ogBE8NDSAHQQNqQf8AQwAA/kJDAAD+wiAGIANBDGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQRqIARPDQwgB0EEakH/AEMAAP5CQwAA/sIgBiADQRBqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEFaiAETw0LIAdBBWpB/wBDAAD+QkMAAP7CIAYgA0EUaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBBmogBE8NCiAHQQZqQf8AQwAA/kJDAAD+wiAGIANBGGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQdqIARPDQkgB0EHakH/AEMAAP5CQwAA/sIgBiADQRxqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEIaiAETw0IIAdBCGpB/wBDAAD+QkMAAP7CIAYgA0EgaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBCWogBE8NByAHQQlqQf8AQwAA/kJDAAD+wiAGIANBJGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQpqIARPDQYgB0EKakH/AEMAAP5CQwAA/sIgBiADQShqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEELaiAETw0FIAdBC2pB/wBDAAD+QkMAAP7CIAYgA0EsaioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIABBDGogBE8NBCAHQQxqQf8AQwAA/kJDAAD+wiAGIANBMGoqAgCUIgUgBUMAAP7CXRsiBSAFQwAA/kJeGxC5ByIF/ABBgH8gBUMAAADDYBsgBUMAAP5CXhtBACAFIAVbGzoAACAAQQ1qIARPDQMgB0ENakH/AEMAAP5CQwAA/sIgBiADQTRqKgIAlCIFIAVDAAD+wl0bIgUgBUMAAP5CXhsQuQciBfwAQYB/IAVDAAAAw2AbIAVDAAD+Ql4bQQAgBSAFWxs6AAAgAEEOaiAETw0CIAdBDmpB/wBDAAD+QkMAAP7CIAYgA0E4aioCAJQiBSAFQwAA/sJdGyIFIAVDAAD+Ql4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbOgAAIANBPGohAyAAQQ9qIQAgAUEBaiEBIAJBAWsiAg0ACwsPCyAAQQ5qIQAMDgsgAEENaiEADA0LIABBDGohAAwMCyAAQQtqIQAMCwsgAEEKaiEADAoLIABBCWohAAwJCyAAQQhqIQAMCAsgAEEHaiEADAcLIABBBmohAAwGCyAAQQVqIQAMBQsgAEEEaiEADAQLIABBA2ohAAwDCyAAQQJqIQAMAgsgAEEBaiEADAELIAAgBE8NACABIAhBpMTHABCMBwALIAAgBEGUxMcAEIwHAAvYDQIEfwF+IwBBMGsiAiQAAn8CQAJAAkACQAJAAkACQCAAKAIAQQFrDgUBAgMEBQALIABBBGohAyABKAIEIQQgASgCACEBIAAoAhQEQCACIABBFGo2AgQgAiACQQRqrUKAgICAkAeENwMQIAIgA61CgICAgKAHhDcDCCACQgI3AiQgAkECNgIcIAJBwMHEADYCGCACIAJBCGo2AiAgASAEIAJBGGoQwQMMBwsgAy0AAEEDRgRAIAFBlcHEAEEMIAQoAgwRAAAMBwsgAiADrUKAgICAoAeENwMIIAJCATcCJCACQQE2AhwgAkG4wcQANgIYIAIgAkEIajYCICABIAQgAkEYahDBAwwGCyAAQQRqIQMgACgCFARAIAIgAEEUajYCBCACIAJBBGqtQoCAgICQB4Q3AxAgAiADrUKAgICAoAeENwMIIAEoAgAgASgCBCACQgI3AiQgAkECNgIcIAJB8MHEADYCGCACIAJBCGo2AiAgAkEYahDBAwwGCyACIAOtQoCAgICgB4Q3AwggASgCACABKAIEIAJCATcCJCACQQE2AhwgAkHowcQANgIYIAIgAkEIajYCICACQRhqEMEDDAULIAEoAgQhAyABKAIAIQQCQAJAAkACQAJAAkACQEEDIAAoAgQiAUGAgICAeHMgAUEAThtBAWsOBQECBQMEAAsgBEGQwsQAQTggAygCDBEAAEUNBUEBDAoLIARByMLEAEHBACADKAIMEQAARQ0EQQEMCQsgAiAAQQhqNgIEIAIgAkEEaq1CgICAgLAHhDcDCCACQgE3AiQgAkECNgIcIAJBtMPEADYCGCACIAJBCGo2AiAgBCADIAJBGGoQwQNFDQNBAQwICyAEQejDxABBJSADKAIMEQAARQ0CQQEMBwsgAiAAQQhqNgIAIAIgAEEMajYCBCACQoCAgICwByIGIAKthDcDECACIAYgAkEEaq2ENwMIIAJCAjcCJCACQQI2AhwgAkG8xMQANgIYIAIgAkEIajYCICAEIAMgAkEYahDBA0UNAUEBDAYLIAIgAEEEajYCBCACIAJBBGqtQoCAgIDAB4Q3AwggAkIBNwIkIAJBATYCHCACQeDDxAA2AhggAiACQQhqNgIgQQEgBCADIAJBGGoQwQMNBRoLQQAgACgCEEUNBBogAiAAQRBqNgIEIAIgAkEEaq1CgICAgJAHhDcDCCACQgE3AiQgAkEBNgIcIAJBzMTEADYCGCACIAJBCGo2AiAgBCADIAJBGGoQwQMMBAsgASgCACEDIAEoAgQoAgwhAQJAAkACQEECIAApAwgiBqdBAmsgBkIBWBtBAWsOAgECAAsgA0G4v8QAQRggAREAAAwFCyADQfj4xABBFSABEQAADAQLIANB0L/EAEHPACABEQAADAMLIABBBGohBCABKAIEIQMgASgCACEBAkACQAJAAkACQEEDIAAtABQiBUEEayAFQQNNG0H/AXFBAWsOBAECAwQACyACIABBFWo2AgQgAiACQQRqrUKAgICA0AeENwMQIAIgBK1CgICAgKAHhDcDCCACQgI3AiQgAkEDNgIcIAJB8MXEADYCGCACIAJBCGo2AiAgASADIAJBGGoQwQMMBgsgAiAAQRVqNgIEIAIgAkEEaq1CgICAgNAHhDcDCCACQgE3AiQgAkECNgIcIAJBxMbEADYCGCACIAJBCGo2AiAgASADIAJBGGoQwQMMBQsgAiAAQRVqNgIEIAIgAkEEaq1CgICAgLAHhDcDCCACQgE3AiQgAkECNgIcIAJBoMfEADYCGCACIAJBCGo2AiAgASADIAJBGGoQwQMMBAsgAEEUaiEAAkACQAJAIAVBAmsOAgECAAsgAiAANgIEIAIgAkEEaq1CgICAgOAHhDcDCCACQgE3AiQgAkECNgIcIAJBuMjEADYCGCACIAJBCGo2AiAgASADIAJBGGoQwQMMBQsgAiAANgIEIAIgAkEEaq1CgICAgOAHhDcDCCACQgE3AiQgAkECNgIcIAJB7MfEADYCGCACIAJBCGo2AiAgASADIAJBGGoQwQMMBAsgAUH8x8QAQSggAygCDBEAAAwDCyACIABBGGo2AgAgAC0ABEEDRg0BIAIgBDYCBCACIAKtQoCAgIDAB4Q3AxAgAiACQQRqrUKAgICA4AeENwMIIAJCAjcCJCACQQI2AhwgAkG4ycQANgIYIAIgAkEIajYCICABIAMgAkEYahDBAwwCCyAAQQRqIAEQngQMAQsgAiACrUKAgICAwAeENwMIIAJCATcCJCACQQE2AhwgAkH4yMQANgIYIAIgAkEIajYCICABIAMgAkEYahDBAwsgAkEwaiQAC+kNAQF/IwBBMGsiAiQAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAtAABBAWsOHAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwACyACIABBBGo2AgwgAiACQQxqrUKAgICA0AaENwMQIAEoAgAgASgCBCACQgE3AiQgAkEBNgIcIAJB9PLEADYCGCACIAJBEGo2AiAgAkEYahDBAwwcCyACIABBAWo2AgwgAiACQQxqrUKAgICAoAiENwMQIAEoAgAgASgCBCACQQE2AiwgAkGc88QANgIoIAJBATYCJCACQQE2AhwgAkGU88QANgIYIAIgAkEQajYCICACQRhqEMEDDBsLIAIgAEEBajYCDCACIAJBDGqtQoCAgICgCIQ3AxAgASgCACABKAIEIAJBATYCLCACQZzzxAA2AiggAkEBNgIkIAJBATYCHCACQczzxAA2AhggAiACQRBqNgIgIAJBGGoQwQMMGgsgASgCAEHU88QAQR0gASgCBCgCDBEAAAwZCyACIABBAWo2AgwgAiACQQxqrUKAgICAoAiENwMQIAEoAgAgASgCBCACQQE2AiwgAkGc88QANgIoIAJBATYCJCACQQE2AhwgAkGI9MQANgIYIAIgAkEQajYCICACQRhqEMEDDBgLIAEoAgBBkPTEAEERIAEoAgQoAgwRAAAMFwsgASgCAEGh9MQAQSYgASgCBCgCDBEAAAwWCyABKAIAQcf0xABBGiABKAIEKAIMEQAADBULIAEoAgBB4fTEAEEZIAEoAgQoAgwRAAAMFAsgASgCAEH69MQAQQ8gASgCBCgCDBEAAAwTCyABKAIAQYn1xABBEyABKAIEKAIMEQAADBILIAIgAEEBajYCDCACIAJBDGqtQoCAgICwCIQ3AxAgASgCACABKAIEIAJBATYCLCACQZzzxAA2AiggAkEBNgIkIAJBATYCHCACQbj1xAA2AhggAiACQRBqNgIgIAJBGGoQwQMMEQsgAiAAQQFqNgIMIAIgAkEMaq1CgICAgMAIhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBATYCHCACQeT1xAA2AhggAiACQRBqNgIgIAJBGGoQwQMMEAsgAiAAQQFqNgIMIAIgAkEMaq1CgICAgMAIhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBATYCHCACQYj2xAA2AhggAiACQRBqNgIgIAJBGGoQwQMMDwsgASgCAEGQ9sQAQRQgASgCBCgCDBEAAAwOCyABKAIAQaT2xABBESABKAIEKAIMEQAADA0LIAEoAgBBtfbEAEERIAEoAgQoAgwRAAAMDAsgAiAAQQFqNgIMIAIgAkEMaq1CgICAgNAIhDcDECABKAIAIAEoAgQgAkEBNgIsIAJBnPPEADYCKCACQQE2AiQgAkEBNgIcIAJB3PbEADYCGCACIAJBEGo2AiAgAkEYahDBAwwLCyABKAIAQeT2xABBGCABKAIEKAIMEQAADAoLIAIgAEEBajYCDCACIAJBDGqtQoCAgIDACIQ3AxAgASgCACABKAIEIAJCATcCJCACQQE2AhwgAkGY98QANgIYIAIgAkEQajYCICACQRhqEMEDDAkLIAIgAEEBajYCDCACIAJBDGqtQoCAgIDgCIQ3AxAgASgCACABKAIEIAJCATcCJCACQQE2AhwgAkHE98QANgIYIAIgAkEQajYCICACQRhqEMEDDAgLIAIgAEEBajYCDCACIAJBDGqtQoCAgIDgCIQ3AxAgASgCACABKAIEIAJCATcCJCACQQE2AhwgAkHw98QANgIYIAIgAkEQajYCICACQRhqEMEDDAcLIAIgAEEBajYCDCACIAJBDGqtQoCAgIDgCIQ3AxAgASgCACABKAIEIAJCATcCJCACQQE2AhwgAkGc+MQANgIYIAIgAkEQajYCICACQRhqEMEDDAYLIAEoAgBBpPjEAEEYIAEoAgQoAgwRAAAMBQsgAiAAQQRqNgIMIAIgAkEMaq1CgICAgMAHhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBATYCHCACQdT4xAA2AhggAiACQRBqNgIgIAJBGGoQwQMMBAsgAiAAQQRqNgIMIAIgAkEMaq1CgICAgMAHhDcDECABKAIAIAEoAgQgAkIBNwIkIAJBATYCHCACQfD4xAA2AhggAiACQRBqNgIgIAJBGGoQwQMMAwsgASgCAEH4+MQAQRUgASgCBCgCDBEAAAwCCyABKAIAQY35xABBEiABKAIEKAIMEQAADAELIAEoAgBBn/nEAEEOIAEoAgQoAgwRAAALIAJBMGokAAvZDAILfwV9QwAAgD8hDwJ/AkAgASgCACIIIAJBBGooAgAiBSgCCCIHSQRAIAFBBGsiCygCACEBIAUoAgQiCSAIQRhsaiIDLQATIgQgAy0AEiIGIAMtABEiCiAGIApLGyIGIAQgBksbIgQEfUMAAEDBIAUqAkQgBS0AWEECRiIGGyIOQwAAEEEgBSoCSCAGGyAOk0MAAH5DlSAEQQFrQf8BcbOUkhCJBCIOIA6SBUMAAAAACyERIANBDGovAQAiBEH//wFxRQRAIARBEHQMAwsgBEH/B3EhAyAEQYCAAnEhBiAEQYD4AXEiBEGA+AFGBEAgBkEQdCIEQYCAgPwHciADRQ0DGiAEIANBDXRyQYCAgP4HcgwDCyAGQRB0IQYgBEUNASAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogBnIMAgsgCCAHQdy7xwAQjAcACyADIANnQRBrIgNB//8DcUEIanRB////A3EgBkGAgIDYA3IgA0EXdGtyC74iDkMAAIA/XgRAIA4QxgVDVPgtQJRDAACAP5KRIQ8LQwAAgD8hDgJ/AkAgASAHSQRAIAkgAUEYbGoiAy0AEyIEIAMtABIiByADLQARIgYgBiAHSRsiByAEIAdLGyIEBH1DAABAwSAFKgJEIAUtAFhBAkYiBxsiEEMAABBBIAUqAkggBxsgEJNDAAB+Q5UgBEEBa0H/AXGzlJIQiQQiECAQkgVDAAAAAAshECADQQxqLwEAIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQUgA0GAgAJxIQQgA0GA+AFxIgNBgPgBRgRAIARBEHQiA0GAgID8B3IgBUUNAxogAyAFQQ10ckGAgID+B3IMAwsgBEEQdCEEIANFDQEgA0ENdEGAgID8AHEgBUENdHJBgICAwANqIARyDAILIAEgB0Hcu8cAEIwHAAsgBSAFZ0EQayIFQf//A3FBCGp0Qf///wNxIARBgICA2ANyIAVBF3Rrcgu+IhJDAACAP14EQCASEMYFQ1T4LUCUQwAAgD+SkSEOCyARIA+UIg8gD1wgDyAQIA6UYHJFBEAgAkEEaiEJIAhBGGwhCgNAAkAgCyICQQRqIAE2AgAgACACRg0AQwAAgD8hDwJ/AkAgCSgCACIFKAIIIgcgCEsEQCACQQRrIgsoAgAhASAFKAIEIgwgCmoiAy0AEyIEIAMtABIiBiADLQARIg0gBiANSxsiBiAEIAZLGyIEBH1DAABAwSAFKgJEIAUtAFhBAkYiBhsiDkMAABBBIAUqAkggBhsgDpNDAAB+Q5UgBEEBa0H/AXGzlJIQiQQiDiAOkgVDAAAAAAshESADQQxqLwEAIgRB//8BcUUEQCAEQRB0DAMLIARB/wdxIQMgBEGAgAJxIQYgBEGA+AFxIgRBgPgBRgRAIAZBEHQiBEGAgID8B3IgA0UNAxogBCADQQ10ckGAgID+B3IMAwsgBkEQdCEGIARFDQEgBEENdEGAgID8AHEgA0ENdHJBgICAwANqIAZyDAILIAggB0Hcu8cAEIwHAAsgAyADZ0EQayIDQf//A3FBCGp0Qf///wNxIAZBgICA2ANyIANBF3Rrcgu+Ig5DAACAP14EQCAOEMYFQ1T4LUCUQwAAgD+SkSEPC0MAAIA/IQ4CfwJAIAEgB0kEQCAMIAFBGGxqIgMtABMiBCADLQASIgcgAy0AESIGIAYgB0kbIgcgBCAHSxsiBAR9QwAAQMEgBSoCRCAFLQBYQQJGIgcbIhBDAAAQQSAFKgJIIAcbIBCTQwAAfkOVIARBAWtB/wFxs5SSEIkEIhAgEJIFQwAAAAALIRAgA0EMai8BACIDQf//AXFFBEAgA0EQdAwDCyADQf8HcSEFIANBgIACcSEEIANBgPgBcSIDQYD4AUYEQCAEQRB0IgNBgICA/AdyIAVFDQMaIAMgBUENdHJBgICA/gdyDAMLIARBEHQhBCADRQ0BIANBDXRBgICA/ABxIAVBDXRyQYCAgMADaiAEcgwCCyABIAdB3LvHABCMBwALIAUgBWdBEGsiBUH//wNxQQhqdEH///8DcSAEQYCAgNgDciAFQRd0a3ILviISQwAAgD9eBEAgEhDGBUNU+C1AlEMAAIA/kpEhDgsgESAPlCIPIA9cDQAgDyAQIA6UYEUNAQsLIAIgCDYCAAsLkAwCCX8BfSMAQYABayIIJAACfwJAIAAoAggiBiABSwRAIAAoAgQgAUEYbGoiBi0AEyIFIAYtABIiByAGLQARIgkgByAJSxsiByAFIAdLGyIFBH1DAABAwSAAKgJEIAAtAFhBAkYiBxsiDkMAABBBIAAqAkggBxsgDpNDAAB+Q5UgBUEBa0H/AXGzlJIQiQQiDiAOkgVDAAAAAAshDiAGQQxqLwEAIgVB//8BcUUEQCAFQRB0DAMLIAVB/wdxIQYgBUGAgAJxIQcgBUGA+AFxIgVBgPgBRgRAIAdBEHQiBUGAgID8B3IgBkUNAxogBSAGQQ10ckGAgID+B3IMAwsgB0EQdCEHIAVFDQEgBUENdEGAgID8AHEgBkENdHJBgICAwANqIAdyDAILIAEgBkHcu8cAEIwHAAsgBiAGZ0EQayIGQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAZBF3RrcgshBgJAAkACQCAOIAa+Ig5DAACAP14EfSAOEMYFQ1T4LUCUQwAAgD+SkQVDAACAPwuUIANdRQRAIAggACgCECIFIAAoAhQiByABEOcCAkAgCCgCJCIGQQlPBEAgCCgCBCIKDQEgCCgCCCIAQQRrKAIAIgFBeHEiAiAGQQJ0IgRBBEEIIAFBA3EiARtqSQ0EIAFBACACIARBJ2pLGw0FIAAQogIMAwsgBiIKRQ0CCyAIQShqIAIoAggiCSAJIApqEIwDIAUgByABAn8gCCgCTCIKQQlPBEAgCCgCLCEKIAgoAjAMAQsgCEEsagsgChDUAiAIQQRqIQECfyAGQQlJBEAgCEEkaiEFIAEMAQsgASEFIAgoAggLIQcCQCAFKAIAIgVBAkkNACAFQRVPBEAgByAFEMEFDAELIAdBBGohBgJAIAVBAXEEQCAGIQkgByEGDAELIAcoAgQiCSAHKAIAIgtJBEAgByAJNgIAIAcgCzYCBAsgB0EIaiEJCyAFQQJGDQAgByAFQQJ0aiENIAlBBGohDANAIAkoAgAiCiAGKAIAIgVJBEAgCSELAn8DQCALIAU2AgAgByAGIAdGDQEaIAYhCyAKIAZBBGsiBigCACIFSQ0ACyAGQQRqCyAKNgIAIAkoAgAhCgsgCiAJKAIEIgtLBEAgDCEFA0ACQCAFIAo2AgAgByAFQQRrIgZGBEAgByEGDAELIAVBCGshCiAGIQUgCyAKKAIAIgpJDQELCyAGIAs2AgALIAlBBGohBiAMQQhqIQwgCUEIaiIJIA1HDQALCyAIKAIkIgchBSAHQQlPBEAgCCgCBCEFIAgoAgghAQsgBQRAIAVBAnQhBiACKAIIIgVBAnQhBwNAIAEoAgAhCSACKAIAIAVGBEAgAkGA5sEAEIsGCyABQQRqIQEgAigCBCAHaiAJNgIAIAIgBUEBaiIFNgIIIAdBBGohByAGQQRrIgYNAAsgCCgCJCEHCyAIKAIEIQUgCEHwAGogCEEgaigCADYCACAIQegAaiAIQRhqKQIANwIAIAggCP0AAgj9CwJYIAggBSAHIAdBCEsiARsiBjYCfCAIIAdBACABGzYCdCAIQQAgBSABGzYCVAJAAkAgBgRAIAdBCU8EQCAIKAJYIgYhAQNAIAAgASgCACACIAMgBBDLASABQQRqIQEgBUEBayIFDQALDAILIAhB1ABqIQFBACEFA0AgCCAFQQFqIgU2AnggACABKAIAIAIgAyAEEMsBIAFBBGohASAFIAdHDQALDAILIAdBCUkNASAIKAJYIQYLIAZBBGsoAgAiAEF4cSIBIAdBAnQiAkEEQQggAEEDcSIAG2pJDQMgAEEAIAEgAkEnaksbDQQgBhCiAgsgCCgCTCIAQQlJDQEgCCgCMCIBQQRrKAIAIgJBeHEiBCAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0CIAJBACAEIABBJ2pLGw0DIAEQogIMAQsgBCgCCCIAIAQoAgBGBEAgBEGQ5sEAEIsGCyAEKAIEIABBAnRqIAE2AgAgBCAAQQFqNgIICyAIQYABaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALshADB38BfgF7IwBBMGsiAyQAAkACQCAAKAIAIgZFBEAgACgCECIARQ0BIABBk7PFAEEBEJcDIQQMAgsgACAAKAIMQQFqIgQ2AgwCQAJAAkACQAJAAkACQAJAIARB9QNPBEAgACgCECIBRQ0BIAFB+rLFAEEZEJcDRQ0BDAgLAkACQAJAAkAgACgCCCICIAAoAgQiCE8EQCAAKAIQIgFFDQEgAUHqssUAQRAQlwMNDAwBC0EBIQQgACACQQFqIgc2AggCQAJAAkACQAJAAkAgAiAGai0AACIFQckAaw4GAgEBAQgFAAsCQCAFQcIAaw4CAwQACyAFQdgAaw4CBwsACyAAKAIQIgFFDQQgAUHqssUAQRAQlwNFDQQMEQsgACABEMwBDRAgAQ0GDAwLIwBBIGsiAiQAAkACQCAAKAIARQRAIAAoAhAiAUUNASABQZOzxQBBARCXAyEBDAILIAIgABCvBiACKAIARQRAIAAoAhAiBQRAQQEhASAFQfqyxQBB6rLFACACLQAEQQFxIgUbQRlBECAFGxCXAw0DCyAAIAL9AAIA/QsCAAwBCyAAKAIQRQ0AIAD9AAIAIQogACAC/QACAP0LAgAgAiAK/QsDECAAIAFBAXEQzAEhASAAIAL9AAMQ/QsCAAwBC0EAIQELIAJBIGokACABRQ0MDA8LIANBIGogAEHzABCsBiADLQAgQQFGBEAgAy0AISEBIAAoAhAiAgRAIAJB+rLFAEHqssUAIAFBAXEiAhtBGUEQIAIbEJcDDRALIAAgAToABAwKCyAAKAIARQRAIAAoAhAiAEUNDiAAQZOzxQBBARCXAyEEDA8LIAMpAyghCSADQSBqIAAQ7wIgAygCIEUEQCADLQAkIQEgACgCECICBEAgAkH6ssUAQeqyxQAgAUEBcSICG0EZQRAgAhsQlwMNEAsgACABOgAEDAoLIAMgA/0AAiD9CwMAIAAoAhAiAUUNCyADIAEQiwINDCAAKAIQIgFFIAlQcg0LIAEoAghBgICABHENCyABKAIAQeiyxQBBASABKAIEKAIMEQAADQ4gACgCECMAQRBrIgIkAEERIQEDQCABIAJqQQJrIAmnQQ9xLQDctkU6AAAgAUEBayEBIAlCD1YgCUIEiCEJDQALQQFBhLTFAEECIAEgAmpBAWtBESABaxDIAyACQRBqJAANDiAAKAIQIgEoAgBB6bLFAEEBIAEoAgQoAgwRAAANDgwLCyAHIAhJBEAgACACQQJqNgIIIAYgB2otAAAiAkHBAGtB/wFxQRpJDQIgAkHhAGtBgIDEACECQf8BcUEaSQ0CCyAAKAIQIgFFDQAgAUHqssUAQRAQlwMNCwtBACEEIABBADoABCAAQQA2AgAMDAtBASEEIAAgARDMAQ0LAkAgACgCAA0AIAAoAhAiAUUNCyABQZSzxQBBAhCXAw0MIAAoAgANAEEAIQQgACgCECIARQ0MIABBk7PFAEEBEJcDIQQMDAsgA0EgaiAAQfMAEKwGIAMtACBBAUYEQCADLQAhIQEgACgCECICBEAgAkH6ssUAQeqyxQAgAUEBcSICG0EZQRAgAhsQlwMNDQsgACABOgAEDAcLIAAoAgBFBEAgACgCECIARQ0LIABBk7PFAEEBEJcDIQQMDAsgAykDKCEJIANBIGogABDvAiADKAIgRQRAIAMtACQhASAAKAIQIgIEQCACQfqyxQBB6rLFACABQQFxIgIbQRlBECACGxCXAw0NCyAAIAE6AAQMBwsgAyAD/QACIP0LAxACQAJAAkAgAkGAgMQARwRAIAAoAhAiAQRAIAFBlrPFAEEDEJcDDQ4LIAJBwwBGDQEgAkHTAEYNAiADIAI2AiAgACgCECIBRQ0DIANBIGogARCoBQ0NDAMLIAMoAhQgAygCHHJFDQsgACgCECIBRQ0LIAFBlLPFAEECEJcDDQ4gACgCECIBRQ0LIANBEGogARCLAkUNCwwOCyAAKAIQIgFFDQEgAUGZs8UAQQcQlwMNCwwBCyAAKAIQIgFFDQAgAUGgs8UAQQQQlwMNCgsgACgCECECIAMoAhQgAygCHHJFDQUgAkUNCCACQdD4xwBBARCXAw0LIAAoAhAiAUUNCCADQRBqIAEQiwINCyAAKAIQIQIMBQsgA0EgaiAAQfMAEKwGIAMtACBBAUcNAiADLQAhIQEgACgCECICBEAgAkH6ssUAQeqyxQAgAUEBcSICG0EZQRAgAhsQlwMNCwsgACABOgAEDAULIAAoAhAiAUUNBSABQZSzxQBBAhCXA0UNBQwJCyAAQQE6AAQMAwsjAEEQayIBJAAgACgCECECIABBADYCECAAQQAQzAEEQEGotMUAQT0gAUEPakGYtMUAQei0xQAQ4AYACyAAIAI2AhAgAUEQaiQACyAAKAIQIgEEQCABQaazxQBBARCXAw0HCyAAEIYCDQQgBUHNAEcEQCAAKAIQIgEEQCABQaezxQBBBBCXAw0GCyAAQQAQzAENBwsgACgCECIBRQ0DIAFBq7PFAEEBEJcDRQ0DDAYLIAJFDQIgAkGks8UAQQEQlwMNBSAAKAIQIQEgAyAJNwMgIAFFDQIgA0EgaiABEIUFDQUgACgCECIBRQ0CIAFBpbPFAEEBEJcDRQ0CDAULQQAhBCAAQQA2AgAMBAsgACgCECIBBEAgAUGms8UAQQEQlwMNBAsgABDuBA0DIAAoAhAiAUUNACABQauzxQBBARCXAw0DC0EAIQQgACgCAEUNAiAAIAAoAgxBAWs2AgwMAgtBASEEDAELQQAhBAsgA0EwaiQAIAQLkB4CFH8CfiMAQeAAayIIJAAgAUFAayEKAkACQCABLQBgIgdBB0sNACAIQdAAaiAKEI4CAkAgCC0AUCIHQR1GBEAgAS0AYCIHQQhPDQJBDyEHDAELIAggCCkBUjcDACAIIAhB2ABqKQEANwEGIAgtAFEhAQsgACABOgABIAAgBzoAACAAIAgpAwA3AQIgAEEIaiAIKQEGNwEADAELIAEgB0EIayIHOgBgIAEgASkDQCIaQgiIIhs3A0ACQAJAAkACQCAapyIGQf8BcUEvRgRAIAdB/wFxQQ1LDQQgCEHQAGogChCOAiAILQBQIgdBHUcNASABLQBgIgdBDk8NA0EPIQcMAgsgACAGOgABIABBCzoAAAwECyAIQRhqIAhB3ABqKAIANgIAIAggCCkCVDcDECAILwFSIQEgCC0AUSEKCyAAIAE7AQIgACAKOgABIAAgBzoAACAAIAgpAxA3AgQgAEEMaiAIQRhqKAIANgIADAILIAopAwAhGwsgASAHQQ5rIgc6AGAgASAbQg6IIho3A0AgASAbp0H//wBxQQFqIgY7AXQgB0H/AXFBDU0EQCAIQdAAaiAKEI4CAkACQCAILQBQIgdBHUYEQCABLQBgIgdBDk8NAkEPIQcMAQsgCEEoaiAIQdwAaigCADYCACAIIAgpAlQ3AyAgCC8BUiEBIAgtAFEhCgsgACABOwECIAAgCjoAASAAIAc6AAAgACAIKQMgNwIEIABBDGogCEEoaigCADYCAAwCCyABKQNAIRogAS8BdCEGCyABIAdBDmsiBzoAYCABIBpCDogiGzcDQCABIBqnQf//AHFBAWoiCTsBdgJAIAIgBkH//wNxRyADIAlHckUEQCAHQf8BcUUEQCAIQdAAaiAKEI4CAkACQCAILQBQIgdBHUYEQCABLQBgIgcNAkEPIQcMAQsgCCAIKQFSNwMwIAggCEHYAGopAQA3ATYgCC0AUSEBCyAAIAE6AAEgACAHOgAAIAAgCCkDMDcBAiAAQQhqIAgpATY3AQAMBAsgCikDACEbCyABIAdBAWsiAjoAYCABIBtCAYgiGjcDQAJAAkAgB0H/AXFBA00EQCAIQdAAaiAKEI4CIAgtAFAiB0EdRw0BIAEtAGAiAkEDSQRAQQ8hBwwDCyAKKQMAIRoLIAEgAkEDazoAYCABIBpCA4g3A0AgGqdBB3EiAkUNAyAAIAI6AAEgAEEMOgAADAQLIAggCCkBUjcDQCAIIAhB2ABqKQEANwFGIAgtAFEhAQsgACAIKQNANwECIABBCGogCCkBRjcBACAAIAE6AAEgACAHOgAADAILIABBFzoAAAwBCyAIQdAAaiELQQAhByMAQeAAayIGJAAgASIDQegAaiEZIANBQGshESADLwF0IRICQAJAA0ACQAJAAkACQAJAAkACQCADLQBgIgkNACAGQcwAaiAREI4CIAsCfyAGLQBMIglBHUYEQCADLQBgIgkNAkEPIQlBAQwBCyAGIAYpAU43AwAgBiAGQdQAaikBADcBBiAGLQBNCzoAASALIAk6AAAgCyAGKQMANwECIAtBCGogBikBBjcBAAwBCyADIAlBAWsiAjoAYCADIAMpA0AiG0IBiCIaNwNAIBtCAYNQRQRAIAlBAk0EQCAGQcwAaiAREI4CAkACQCAGLQBMIglBHUYEQCADLQBgIgJBAk8NAkEPIQkMAQsgBiAGKQFONwMQIAYgBkHUAGopAQA3ARYgBi0ATSEQCyALIBA6AAEgCyAJOgAAIAsgBikDEDcBAiALQQhqIAYpARY3AQAMAwsgESkDACEaCyADIAJBAms6AGAgAyAaQgKINwNAIAMgGqdBA3EiEEEEdGoiDS0AAEEERwRAIAtBEDoAAAwCCyADKAJwIgIgAygCaEYEQCAZQYj7xgAQpwYLIAMoAmwgAmogEDoAACADIAJBAWo2AnACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgEEEBaw4DARECAAsgAy0AYCIJQQJLDQQgBkHMAGogERCOAiAGLQBMIglBHUcNAiADLQBgIglBA08NBEEPIQkMAwsgAy0AYCIJQQJLDQYgBkHMAGogERCOAiAGLQBMIglBHUcNBCADLQBgIglBA08NBkEPIQkMBQsgAy0AYCIJQQdLDQggBkHMAGogERCOAiAGLQBMIglBHUcNBiADLQBgIglBCE8NCEEPIQkMBwsgBiAGKQFONwMgIAYgBkHUAGopAQA3ASYgBi0ATSEXCyALIBc6AAEgCyAJOgAAIAsgBikDIDcBAiALQQhqIAYpASY3AQAMCAsgAyAJQQNrOgBgIAMgAykDQCIaQgOINwNAQX8gGqdBB3EiF0ECaiIPdEF/cyICIBJB//8DcWogD3YiCiACIAMvAXZqIA92IglsIgJBAnQhDAJAIAJFBEBBASEHDAELIAwQcSIHRQ0KIAdBBGstAABBA3FFIAxFcg0AIAdBACAM/AsACyAGQcwAaiADIAogCUEAIAcgDBA6IAYtAEwiCkEdRg0LIAsgBikATTcAASALQQhqIAZB1ABqKQAANwAAIAsgCjoAACACRQ0HIAdBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAxqSQ0MIAJBACADIAxBJ2pLGw0OIAcQogIMBwsgBiAGKQFONwMwIAYgBkHUAGopAQA3ATYgBi0ATSEYCyALIBg6AAEgCyAJOgAAIAsgBikDMDcBAiALQQhqIAYpATY3AQAMBQsgAyAJQQNrOgBgIAMgAykDQCIaQgOINwNAQX8gGqdBB3EiGEECaiIPdEF/cyICIBJB//8DcWogD3YiCiACIAMvAXZqIA92IglsIgJBAnQhDAJAIAJFBEBBASEHDAELIAwQcSIHRQ0HIAdBBGstAABBA3FFIAxFcg0AIAdBACAM/AsACyAGQcwAaiADIAogCUEAIAcgDBA6IAYtAEwiCkEdRg0IIAsgBikATTcAASALQQhqIAZB1ABqKQAANwAAIAsgCjoAACACRQ0EIAdBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAxqSQ0JIAJBACADIAxBJ2pLGw0FIAcQogIMBAsgBkHIAGogBkHYAGooAgA2AgAgBiAGKQJQNwNAIAYvAU4hDiAGLQBNIQMLIAsgDjsBAiALIAM6AAEgCyAJOgAAIAsgBikDQDcCBCALQQxqIAZByABqKAIANgIADAILIAMgCUEIazoAYCADIAMpA0AiGkIIiDcDQCAapyICQf8BcSIOQQFqIhNBAnQiDBBxIgdFDQMgB0EEayIULQAAQQNxRSAMRXJFBEAgB0EAIAz8CwALIAZBzABqIAMgE0EBQQAgByAMEDogBi0ATCIKQR1HBEAgCyAGKQBNNwABIAtBCGogBkHUAGopAAA3AAAgCyAKOgAAIBQoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAxqSQ0HIAJBACADIAxBJ2pLGw0JIAcQogIMAgsgEkH//wNxQQECf0EDIA5BAkkNABpBAiAOQQRJDQAaIA5BEEkLIgp0akEBayAKdiISQf//A00EQCAORQRAQQEhE0EAIQ4MBwtBBCEJIAJBAnRB/AdxIhVBAWsiAiAMIAIgDEkbIgJBBE8EQCACQQFqIgpBA3EiCUEEIAkbIgkgAkF/c2ohFiAKIAlrQQRqIQkgByECA0AgAkEEaiIKIAL9XAAAIAr9XAAA/W79WgAAACAKIQIgFkEEaiIWDQALCyAVQQhqIQIgFUEEaiEKA0AgAiAJRg0GIAkgFGoiFUEEaiIWIBUtAAAgFi0AAGo6AAAgCUEBaiIJIApHDQALDAYLQdjmyABBKyAGQd8AakGY+8YAQaj7xgAQ4AYACyALQR06AAAgCyASOwECCyAGQeAAaiQADAcLQYyNyABBLkG8jcgAEOsHCwALIAlBBGsgDEG4+8YAEIwHAAsCQAJAIA0tAAAiAkEERiACQQJGcg0AIA0oAgQiAkUNACANKAIIIgpBBGsoAgAiCUF4cSIUQQRBCCAJQQNxIgkbIAJqSQ0BIAlBACAUIAJBJ2pLGw0EIAoQogILIA0gDDYCDCANIAc2AgggDSAMNgIEIA0gEzsBAiANIA86AAEgDSAQOgAADAILCwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAgtAFAiAkEdRwRAIAAgCCkCVDcCBCAAQQxqIAhB3ABqKAIANgIAIAgtAFEhASAAIAgvAVI7AQIgACABOgABIAAgAjoAAAwBCyAFIAgvAVIiCSABLwF2IgJsQQJ0IgNPBEAgCEHQAGogASAJIAJBASAEIAMQOiAILQBQIgJBHUcEQCAAIAgpAFE3AAEgAEEIaiAIQdgAaikAADcAACAAIAI6AAAMAgsgASgCcCICBEAgBEEEaiELIAEoAmwiDCACaiEGA0ACQAJAAkACQAJAAkACQAJAIAZBAWsiBi0AACICQQRJBEAgASACQQR0aiICLQAAQQFrDgQEBQIBAwsgAkEEQaj6xgAQjAcAC0G4+sYAEN0JAAsgBCAFIAEvAXQiCSABLwF2IgMgAi8BAiACKAIIIAIoAgwQSiADIAlsQQJ0IQMMBQsgAyAFSw0DIAhB0ABqIAQgAyAJIAEvAXYgAi0AASACKAIIIAIoAgwQTiAILQBQIgJBHUYNBCAAIAgpAFE3AAEgAEEIaiAIQdgAaikAADcAACAAIAI6AAAMCAsgAyAFSw0BIAQgAyAJIAItAAEgAigCCCACKAIMEJcCDAMLIAMgBU0EQCADQXxxIgpFDQMgA0EEayICQQRxBH8gBAUgBCAELQABIgcgBC0AAGo6AAAgBCAHIAQtAAJqOgACIAJBBEkNBCAKQQRrIQogCwshBwNAIAcgB0EBai0AACICIActAABqOgAAIAdBAmoiDSACIA0tAABqOgAAIAdBBGoiAiAHQQVqLQAAIg0gAi0AAGo6AAAgB0EGaiICIA0gAi0AAGo6AAAgB0EIaiEHIApBCGsiCg0ACwwDC0EAIAMgBUHo+sYAEOoHAAtBACADIAVB2PrGABDqBwALQQAgAyAFQcj6xgAQ6gcACyAGIAxHDQALCyAAQR06AAAMAQtBACADIAVB+PrGABDqBwALIAhB4ABqJAAL7g4CDH8DfiMAQTBrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAQRUgASgCACIEQYCAgIB4cyAEQQBOG0EUaw4CAQIACyABIAJBL2pB1OPAABCVCCEBIABBgICAgHg2AgAgACABNgIEDAYLIAEoAgwiBkUNAgJAIAEoAggiBSgCAEGUgICAeEYEQAJAIAUoAgwiAQRAIAJBHGogBSgCCBCoAyACKAIcIgRBgICAgHhHDQEgAigCICEBDAgLQQAgAkEvakGE4sAAENsGIQEMBwsgAigCICEHIAFBAUYNASACQQE2AhwgAUEBa0H/////AHFBAWogAkEcakHolcEAENsGIQEgBEUNBiAHIARBARCiBwwGCyAFIAJBL2pBhOLAABCVCCEBDAULIAZBAUYNASACKAIkIQkgAkEcaiIDIAVBEGoQ0wIgAigCICEBIAIoAhwNAwJAIAZBAkcEQCACKQIkIQ4gAyAFQSBqENMCIAIoAiAhBSACKAIcRQ0BIAUhAQwFC0ECQcSAwQBBgP3AABDbBiEBDAQLIAZBA0cEQCACQQM2AhwgBkH9////AGpB/////wBxQQNqIAJBHGpB6JXBABDbBiEBIABBgICAgHg2AgAgACABNgIEIARFDQYgByAEQQEQogcMBgsgACACKQIkNwIcIAAgBTYCGCAAIA43AhAgACABNgIMIAAgCTYCCCAAIAc2AgQgACAENgIADAULIAEoAgQhBCABKAIIIQEgAkEANgIYIAIgBCABQQV0aiILNgIQAkACQCABRQ0AQYCAgIB4IQgDQCACIARBIGoiATYCDCACIAIoAhhBAWo2AhggAiAEQRBqIgw2AhQCQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBFSAEKAIAIgNBgICAgHhzIANBAE4bQQFrDg8ADg4BDg4ODg4ODgIDBAUOCyAELQAEDgMKBQcPCyAEKQMIIg5CAlYNDiAOp0EBaw4CBAYJCyAEKAIIIQMCQCAEKAIMQQRrDgIACA4LIAMoAABB7dK5mwdGDQMgAygAAEHtwuGbB0YNBQwNCyAEKAIEIQMCQCAEKAIIQQRrDgIABg0LIAMoAABB7dK5mwdGDQIgAygAAEHtwuGbB0YNBAwMCyAEKAIIIQMCQAJAIAQoAgxBBGsOAgEADQsgAy0AAEHmAEcNDCADLQABQekARw0MIAMtAAJB7ABHDQwgAy0AA0HlAEcNDCADLQAEQfMARw0MDAcLIAMtAABB7QBHDQsCQAJAIAMtAAFB4QBrDgkBDQ0NDQ0NDQANCyADLQACQe4ARw0MIAMtAANB8wBGDQIMDAsgAy0AAkH4AEcNCyADLQADQfMARg0DDAsLIAQoAgQhAwJAAkAgBCgCCEEEaw4CAQAMCyADLQAAQeYARw0LIAMtAAFB6QBHDQsgAy0AAkHsAEcNCyADLQADQeUARw0LIAMtAARB8wBHDQsMBgsgAy0AAEHtAEcNCgJAIAMtAAFB4QBrDgkCCwsLCwsLCwALCyADLQACQe4ARw0KIAMtAANB8wBHDQoLIAZFDQVBlf3AAEEEEJ8HDAgLIAMtAAJB+ABHDQggAy0AA0HzAEcNCAsgCkUNBEGZ/cAAQQQQnwcMBgsgA0GQ/cAAQQUQ2wdFDQEMBgsgA0GQ/cAAQQUQ2wcNBQsgCEGAgICAeEcEQEGQ/cAAQQUQnwcMBAsgAkEcaiACQQxqELIFIAIoAiAhByACKAIcIghBgICAgHhGBEAgByEFDAkLIAIoAiQhDSACKAIQIQsgAigCDCEBDAULIAJBADYCFCACQRxqIAwQ0wIgAigCICIFIAIoAhxBAUYNAhogAikCJCEPQQEhBgwECyACQQA2AhQgAkEcaiAMENMCIAIoAiAhCSAJIAIoAhxBAUYNARogAikCJCEQQQEhCgwDCyAEIAJBL2pBhOTAABCVCAshBSAIQYCAgIB4ckGAgICAeEYNBAJAIAdBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAhqTwRAIAFBACAEIAhBJ2pLGw0BIAcQogIMBgtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAJBADYCFAsgCyABIgRHDQALIAhBgICAgHhGDQAgBkEAIAobRQRAQZn9wABBlf3AACAGG0EEEJwHIQUgCEUNAiAHIAhBARCiBwwCCyAAIBA3AhwgACAJNgIYIAAgDzcCECAAIAU2AgwgACANNgIIIAAgBzYCBCAAIAg2AgAMBgtBkP3AAEEFEJwHIQULIAAgBTYCBCAAQYCAgIB4NgIADAQLQQFBxIDBAEGA/cAAENsGIQEMAQtBAEHEgMEAQYD9wAAQ2wYhAQwBCyAERQ0AIAdBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIARqSQ0CIAVBACAGIARBJ2pLGw0DIAcQogILIAAgATYCBCAAQYCAgIB4NgIACyACQTBqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAukDAISfgh/IwBB4ABrIhUkAAJAAn8CQAJAAkACQAJAAkACQCABKQMAIgNQRQRAIAEpAwgiBFANASABKQMQIgVQDQIgBSADQn+FVg0DIAMgBFQNBCADIAV8IgVCgICAgICAgIAgWg0FIBUgAS8BGCIBOwE4IBUgAyAEfSIHNwMwIBUgByAFeSIEhiIIIASIIgY3A0AgBiAHUg0JIBUgATsBOCAVIAM3AzAgFSADIARCP4MiB4YiBiAHiCIHNwNAIAMgB1INCUGgfyABIASnayIXa8FB0ABsQbCnBWpBzhBtIgFB0QBPDQYgFUEgaiABQQR0IgEpA4iFQiIDIAUgBIYQ3QYgFUEQaiADIAgQ3QYgFSADIAYQ3QZCAUEAIBcgAS8BkIVCamtBP3GtIgaGIghCAX0hCiAVKQMQQj+HIQwgFSkDAEI/iCEOIBUpAwghDyABLwGShUIhFyAVKQMYIRAgFSkDKCITIBUpAyBCP4giFHwiEUIBfCIJIAaIpyIWQZDOAE8EQCAWQcCEPUkNCCAWQYDC1y9PBEBBCEEJIBZBgJTr3ANJIgEbIRlBgMLXL0GAlOvcAyABGwwKC0EGQQcgFkGAreIESSIBGyEZQcCEPUGAreIEIAEbDAkLIBZB5ABPBEBBAkEDIBZB6AdJIgEbIRlB5ABB6AcgARsMCQtBCkEBIBZBCUsiGRsMCAtB2I/CAEEcQaSQwgAQ6wcAC0G0kMIAQR1B1JDCABDrBwALQeSQwgBBHEGAkcIAEOsHAAtBuJLCAEE2QfCSwgAQ6wcAC0HwkcIAQTdBqJLCABDrBwALQZCRwgBBLUHAkcIAEOsHAAsgAUHRAEGYj8IAEIwHAAtBBEEFIBZBoI0GSSIBGyEZQZDOAEGgjQYgARsLIQEgCSAKgyEEIA4gD3whCyAZIBdrQQFqIRsgDCAQfSAJfEIBfCINIAqDIQUCQAJAAkACQAJAAkACQAJAAkADQCACIBhqIBYgAW4iHEEwaiIaOgAAIBhBAWohFyANIBYgASAcbGsiFq0gBoYiEiAEfCIDVg0CIBggGUYEQCAXIQFCASEDA0AgAyEHIAFBEUYNBSABIAJqIARCCn4iBCAGiKdBMGoiGDoAACABQQFqIQEgA0IKfiEDIAVCCn4iBSAEIAqDIgRYDQALIAUgBH0iCiAIVCEWIAMgCSALfX4iCSADfCEGIAQgCSADfSIJWg0HIAggClgNAgwHCyABQQpJIBchGCABQQpuIQFFDQALQdCRwgAQgQgACyABIAJqQQFrIRcgBSAIfSELIAggCX0hDUIAIAR9IQoDQCAEIAh8IgMgCVQgCSAKfCAEIA18WnJFBEBBACEWDAYLIBcgGEEBayIYOgAAIAogC3wiDCAIVCEWIAMgCVoNBiAKIAh9IQogAyEEIAggDFgNAAsMBQsgDSADfSIFIAGtIAaGIgdUIQEgCSALfSIGQgF8IQggBSAHVCADIAZCAX0iCVpyDQEgAiAXakEBayEYIAwgEXwgEH0gBCAHfCIEIBJ8fUICfCEKIBEgC30gA30hCyAEIA58IA98IBR9IBN9IBJ8IQZCACEEA0AgAyAHfCIFIAlUIAQgC3wgBlpyRQRAQQAhAQwDCyAYIBpBAWsiGjoAACAEIAp8IgwgB1QhASAFIAlaDQMgBiAHfCEGIAQgB30hBCAFIQMgByAMWA0ACwwCC0ERQRFB4JHCABCMBwALIAMhBQsCQCAFIAhaIAFyDQAgCCAFIAd8IgNYIAggBX0gAyAIfVRxDQAgAEEANgIADAQLIAUgDUIEfVggBUICWnFFBEAgAEEANgIADAQLIAAgGzsBCCAAIBc2AgQMAgsgBCEDCwJAIAMgBlogFnINACAGIAMgCHwiBFggBiADfSAEIAZ9VHENACAAQQA2AgAMAgsgAyAFIAdCWH58WCADIAdCFH5acUUEQCAAQQA2AgAMAgsgACAbOwEIIAAgATYCBAsgACACNgIACyAVQeAAaiQADwsgFUEANgJIIwBBEGsiACQAIAAgFUEwajYCDCAAIBVBQGs2AghBACAAQQhqQfCHwwAgAEEMakHwh8MAIBVByABqQeSWwgAQ8gQAC9ELAhd/AX0jAEEgayIHJAACQAJAAkACQAJAAkACQAJAIAAtALgBQQFHDQAgACgCrAEgACgCsAEiBUECdCAAKAK0ASIGIAVqQQJ0EOEIIQUgBkECdCIGIAAoAmQiCEsNASAAKAJgIQggByAFELgKIgs2AgAgByAGNgIEIAYgC0cNByAFIAggBhDgCSAFQYQISQ0AIAUQmwcLIABCADcCsAEgAEG4AWpBADoAAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAghFDQAgACgCDCABQQJ0IAEgAmpBAnQQ4QghCwJAIAJBAnQiASAAKAJkIgZNBEAgACABNgJkIAAoAmAhCCABIQUMAQsgASAGIgVrIgkgACgCXCAFa0sEQCAAQdwAaiAFIAlBBEEEEKQFIAAoAmQhBQsgACgCYCIIIAVBAnQiDGohCiAJQQJPBEAgASAGQX9zakECdCINBEAgCkEAIA38CwALIAJBBHQgBkECdGsgCGogDGpBBGshCiAFIAlqQQFrIQULIApBADYCACAAIAVBAWoiBTYCZCABIAVLDRILIAcgCxC4CiIGNgIAIAcgATYCBCABIAZHDRYgCCABIAsQ4QkgAkEPbCEMIARBD25BD2whDSAEQQFrQQ9uQQ9sQQ9qIQ4gBEECa0EPbkEPbEEPaiEPIARBA2tBD25BD2xBD2ohECAEQQRrQQ9uQQ9sQQ9qIREgBEEFa0EPbkEPbEEPaiESIARBBmtBD25BD2xBD2ohEyAEQQdrQQ9uQQ9sQQ9qIRQgBEEIa0EPbkEPbEEPaiEVIARBCWtBD25BD2xBD2ohFiAEQQprQQ9uQQ9sQQ9qIRcgBEELa0EPbkEPbEEPaiEYIARBDGtBD25BD2xBD2ohGSAEQQ1rQQ9uQQ9sQQ9qIRogBEEOa0EPbkEPbEEPaiEbQwAA/kIgACoClAGVIRxBACEBQQAhAANAIAEgBU8NEyABQQFqIgIgBU8NFCABQQJqIgIgBU8NFSABQQNqIgIgBU8NFiAAIA5GDRAgCEEEaigCACECIAhBDGooAgAhCSAIQQhqKAIAIQYgAyAIKAIAIgrAsiAclTgCACAAIA9GDQ8gA0EEaiAKQQh2wLIgHJU4AgAgACAQRg0OIANBCGogCkEQdsCyIByVOAIAIAAgEUYNDSADQQxqIApBGHWyIByVOAIAIAAgEkYNDCADQRBqIALAsiAclTgCACAAIBNGDQsgA0EUaiACQQh2wLIgHJU4AgAgACAURg0KIANBGGogAkEQdsCyIByVOAIAIAAgFUYNCSADQRxqIAJBGHWyIByVOAIAIAAgFkYNCCADQSBqIAbAsiAclTgCACAAIBdGDQcgA0EkaiAGQQh2wLIgHJU4AgAgACAYRg0GIANBKGogBkEQdsCyIByVOAIAIAAgGUYNBSADQSxqIAZBGHWyIByVOAIAIAAgGkYNBCADQTBqIAnAsiAclTgCACAAIBtGDQMgA0E0aiAJQQh2wLIgHJU4AgAgACANRg0CIANBOGogCUEQdsCyIByVOAIAIAhBEGohCCABQQRqIQEgA0E8aiEDIAwgAEEPaiIARw0ACyALQYQISQ0AIAsQmwcLIAdBIGokAA8LIABBDmohAAwNCyAAQQ1qIQAMDAsgAEEMaiEADAsLIABBC2ohAAwKCyAAQQpqIQAMCQsgAEEJaiEADAgLIABBCGohAAwHCyAAQQdqIQAMBgsgAEEGaiEADAULIABBBWohAAwECyAAQQRqIQAMAwsgAEEDaiEADAILIABBAmohAAwBCyAAQQFqIQALIAAgBEGc1MAAEIwHAAtBACAGIAhB/OvAABDqBwALQQAgASAFQazUwAAQ6gcACyABIAVB3NPAABCMBwALIAIgBUHs08AAEIwHAAsgAiAFQfzTwAAQjAcACyACIAVBjNTAABCMBwALIAdBADYCCEEAIAcgB0EEaiAHQQhqQeD5xAAQ9QcAC9gQAQR/IwBBEGsiAyQAEL8JIgRBsOjAAEEJEOwIIgIgACgCpAG4ELcJIgEQwAkCQAJAAkACQAJAAkACQAJAAkACQAJAAkBBtLvJAC0AAEUEQEG4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECE8EQCACEJsHCyAEQbnowABBCRDsCCICIAAoAqgBuBC3CSIBEMAJQbS7yQAtAAANAUG4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECE8EQCACEJsHCyAEQcLowABBCxDsCCICIAAoAqwBuBC3CSIBEMAJQbS7yQAtAAANAkG4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECE8EQCACEJsHCyAEQc3owABBBBDsCCICIAAoArABENsJIgEQwAlBtLvJAC0AAA0DQbi7yQBBADYCAEG0u8kAQQA6AAAgAUGECE8EQCABEJsHCyACQYQITwRAIAIQmwcLIARB0ejAAEEEEOwIIgIgACgCtAEQ2wkiARDACUG0u8kALQAADQRBuLvJAEEANgIAQbS7yQBBADoAACABQYQITwRAIAEQmwcLIAJBhAhPBEAgAhCbBwsCQCAAKAIAQQFHDQAgBEH458AAQQMQ7AgiAiAAKAIEENsJIgEQwAlBtLvJAC0AAA0GQbi7yQBBADYCAEG0u8kAQQA6AAAgAUGECE8EQCABEJsHCyACQYQISQ0AIAIQmwcLAkAgACgCCEUNACAEQfvnwABBAxDsCCICIAAoAgwQ2wkiARDACUG0u8kALQAADQdBuLvJAEEANgIAQbS7yQBBADoAACABQYQITwRAIAEQmwcLIAJBhAhJDQAgAhCbBwsCQCAAKAIQRQ0AIARB/ufAAEEEEOwIIgIgACgCFBDbCSIBEMAJQbS7yQAtAAANCEG4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECEkNACACEJsHCwJAIAAoAhhFDQAgBEGC6MAAQQQQ7AgiAiAAKAIcENsJIgEQwAlBtLvJAC0AAA0JQbi7yQBBADYCAEG0u8kAQQA6AAAgAUGECE8EQCABEJsHCyACQYQISQ0AIAIQmwcLAkAgACgCIEUNACAEQajpwABBCBDsCCICIAAoAiQQ2wkiARDACUG0u8kALQAADQpBuLvJAEEANgIAQbS7yQBBADoAACABQYQITwRAIAEQmwcLIAJBhAhJDQAgAhCbBwsCQCAAKAIoRQ0AIARBwOnAAEEIEOwIIgIgACgCLBDbCSIBEMAJQbS7yQAtAAANC0G4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECEkNACACEJsHCwJAIAAoAjBFDQAQwQkiAiAAKAI0ENsJIgEQ4gkgAUGECE8EQCABEJsHCyACIAAoAjgQ2wkiARDiCSABQYQITwRAIAEQmwcLIARB2OnAAEEIEOwIIgEgAhDACUG0u8kALQAADQxBuLvJAEEANgIAQbS7yQBBADoAACACQYQITwRAIAIQmwcLIAFBhAhJDQAgARCbBwsCQCAAKAI8RQ0AIARBhujAAEEHEOwIIgIgACgCQBDbCSIBEMAJQbS7yQAtAAANDUG4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECEkNACACEJsHCyAAEIoCIANBEGokACAEDwtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABBwOrAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQbDqwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEGg6sAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABBkOrAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQYDqwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEHo6MAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABB+OjAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQYjpwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEGY6cAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABBsOnAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQcjpwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEHg6cAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABB8OnAABDgBgAL2BABBX8jAEEQayIDJAAQvwkiBUGw6MAAQQkQ7AgiASAAKAKgAbgQtwkiAhDACQJAAkACQAJAAkACQAJAAkACQAJAAkBBtLvJAC0AAEUEQEG4u8kAQQA2AgBBtLvJAEEAOgAAIAJBhAhPBEAgAhCbBwsgAUGECE8EQCABEJsHCyAFQbnowABBCRDsCCIBIAAoAqQBuBC3CSICEMAJQbS7yQAtAAANAUG4u8kAQQA2AgBBtLvJAEEAOgAAIAJBhAhPBEAgAhCbBwsgAUGECE8EQCABEJsHCyAFQcLowABBCxDsCCIBIAAoAqgBuBC3CSICEMAJQbS7yQAtAAANAkG4u8kAQQA2AgBBtLvJAEEAOgAAIAJBhAhPBEAgAhCbBwsgAUGECE8EQCABEJsHCyAFQaDswABBBhDsCCIBIAAoAqwBEMAJQbS7yQAtAAANA0G4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsCQCAAKAIAQQFHDQAgBUH458AAQQMQ7AgiASAAKAIEENsJIgIQwAlBtLvJAC0AAA0FQbi7yQBBADYCAEG0u8kAQQA6AAAgAkGECE8EQCACEJsHCyABQYQISQ0AIAEQmwcLAkAgACgCCEUNACAFQfvnwABBAxDsCCIBIAAoAgwQ2wkiAhDACUG0u8kALQAADQZBuLvJAEEANgIAQbS7yQBBADoAACACQYQITwRAIAIQmwcLIAFBhAhJDQAgARCbBwsCQCAAKAIQRQ0AIAVBjOzAAEEDEOwIIgEgACgCFBDbCSICEMAJQbS7yQAtAAANB0G4u8kAQQA2AgBBtLvJAEEAOgAAIAJBhAhPBEAgAhCbBwsgAUGECEkNACABEJsHCwJAIAAoAhhFDQAgBUGo6cAAQQgQ7AgiASAAKAIcENsJIgIQwAlBtLvJAC0AAA0IQbi7yQBBADYCAEG0u8kAQQA6AAAgAkGECE8EQCACEJsHCyABQYQISQ0AIAEQmwcLAkAgACgCIEUNACAFQcDpwABBCBDsCCIBIAAoAiQQ2wkiAhDACUG0u8kALQAADQlBuLvJAEEANgIAQbS7yQBBADoAACACQYQITwRAIAIQmwcLIAFBhAhJDQAgARCbBwsCQCAAKAIoRQ0AIAVB2OnAAEEIEOwIIgEgACgCLBDbCSICEMAJQbS7yQAtAAANCkG4u8kAQQA2AgBBtLvJAEEAOgAAIAJBhAhPBEAgAhCbBwsgAUGECEkNACABEJsHCwJAIAAoAjBFDQAgBUGG6MAAQQcQ7AgiASAAKAI0ENsJIgIQwAlBtLvJAC0AAA0LQbi7yQBBADYCAEG0u8kAQQA6AAAgAkGECE8EQCACEJsHCyABQYQISQ0AIAEQmwcLQZjtwABBDRDsCCECEL8JIQEgACoCgAG7ELcJIQQgAUHg6sAAQQYQzwMgBBDjCCAAKgKEAbsQtwkhBCABQebqwABBBhDPAyAEEOMIIAAqAogBuxC3CSEEIAFB7OrAAEEKEM8DIAQQ4wggACoCjAG7ELcJIQQgAUH26sAAQQoQzwMgBBDjCCAAKgKQAbsQtwkhBCABQYDrwABBBhDPAyAEEOMIIAAqApQBuxC3CSEEIAFBhuvAAEEGEM8DIAQQ4wggACoCmAG7ELcJIQQgAUGM68AAQQYQzwMgBBDjCCAALQCcASEEIAFBkuvAAEEKEM8DQYIIQYMIIAQbEOMIIAUgAiABEMAJQbS7yQAtAAANC0G4u8kAQQA2AgBBtLvJAEEAOgAAIAFBhAhPBEAgARCbBwsgAkGECE8EQCACEJsHCyAAEMACIANBEGokACAFDwtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABB6O3AABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQdjtwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEHI7cAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABBuO3AABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQajswAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEG47MAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABByOzAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQdjswAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEHo7MAAEOAGAAtBtLvJAEEAOgAAQbi7yQAoAgAhAEG4u8kAQQA2AgAgAyAANgIMQdjmyABBKyADQQxqQdjowABB+OzAABDgBgALQbS7yQBBADoAAEG4u8kAKAIAIQBBuLvJAEEANgIAIAMgADYCDEHY5sgAQSsgA0EMakHY6MAAQYjtwAAQ4AYAC0G0u8kAQQA6AABBuLvJACgCACEAQbi7yQBBADYCACADIAA2AgxB2ObIAEErIANBDGpB2OjAAEGo7cAAEOAGAAvODAIDfhB/IwBBIGsiDSQAAkACQEHMtckAKAIARQ0AQcS1yQAoAgAiCUHYtckAKQMAIgQgAK2FIgVCOIYgBUKA/gODQiiGhCAFQoCA/AeDQhiGIAVCgICA+A+DQgiGhIQgBEIIiEKAgID4D4MgBEIYiEKAgPwHg4QgBEIoiEKA/gODIARCOIiEhIRC0oGqm6v6gtenf34iBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhCAFQtii0e/CqeW/LX6FIgRCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgBEIIiEKAgID4D4MgBEIYiEKAgPwHg4QgBEIoiEKA/gODIARCOIiEhIRB0LXJACkDACIFQn+FfiIGQjiGIAZCgP4Dg0IohoQgBkKAgPwHg0IYhiAGQoCAgPgPg0IIhoSEIAZCCIhCgICA+A+DIAZCGIhCgID8B4OEIAZCKIhCgP4DgyAGQjiIhISEIAQgBUI4hiAFQoD+A4NCKIaEIAVCgID8B4NCGIYgBUKAgID4D4NCCIaEhCAFQgiIQoCAgPgPgyAFQhiIQoCA/AeDhCAFQiiIQoD+A4MgBUI4iISEhH6FIASJIgSncSEHIARCGYhC/wCDQoGChIiQoMCAAX4hBkHAtckAKAIAIgtBIGshCgNAIAcgC2opAAAiBSAGhSIEQn+FIARCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiBFBFBEADQCAAIAogBHqnQQN2IAdqIAlxIgxBBXRrKAIARg0EIARCAX0gBIMiBFBFDQALCyAFIAVCAYaDQoCBgoSIkKDAgH+DUEUNASAHIAhBCGoiCGogCXEhBwwACwALQbjzwAAQ3QkACyALQQAgDGtBBXRqQQRrKAIAIgwoAghFBEAgDEF/NgIIQQAhB0HQtskAKAIAIhBFBEBByLbJACgCAEH//w9NBEBByLbJAEEAQYCAEEEEQQQQpAVB0LbJACgCACEHC0HMtskAKAIAIAdBAnRqIgBBAEH8/z/8CwBB0LbJACAHQYCAEGoiEDYCACAAQfz/P2pBADYCAAsgASACaiIAIAwoAhQiCEsEQCAIIQkgACAIQQF0IgogACAKSxsiDiAIayIAIAwoAgwgCGtLBEAgDEEMaiAIIABBBEEQEKQFIAwoAhQhCQsgDCgCECEPIABBA3EiCgRAIAkgCmohCyAPIAlBBHRqIQcgCiEAA0AgB0IANwIAIAdBBmpCADcBACAHQRBqIQcgAEEBayIADQALIAshCSAOIAggCmprIQALIAggDmtBfE0EQCAPIAlBBHRqIQcgCSELA0AgB0IANwIAIAdBBmpCADcBACAHQRBqQgA3AgAgB0EWakIANwEAIAdBIGpCADcCACAHQSZqQgA3AQAgB0EwakIANwIAIAdBNmpCADcBACAHQUBrIQcgC0EEaiELIABBBGsiAA0ACwsgDCALNgIUCyACBEAgAUEEdCEUQQAhCUHMtskAKAIAIQ8DQAJAAkACQCAQQYCABCACIAkiAGsiCSAJQYCABE8bIgpBAnQiC08EQCANIAMgAEECdCAAIApqIglBAnQQ4QgiCBC4CiIHNgIAIA0gCzYCBCAHIAtHDQEgDyALIAgQ4QkgCEGECE8EQCAIEJsHCyAAIAJGDQMgCkEEdCERIAAgAWohCiAUIABBBHRqIRVBACEHQQAhAANAIAAgEUYNAyAMKAIUIgggCksEQCAAIA9qIg4oAgAhEiAOQQRqKAIAIRMgDkEIaigCACEWIAwoAhAgFWogAGoiCCAOQQxqKAIANgIAIAhBDGogFjsBACAIQQpqIBNBEHY7AQAgCEEIaiATOwEAIAhBBmogEkEQdjsBACAIQQRqIBI7AQAgB0EEaiEHIApBAWohCiARIABBEGoiAEYNBQwBCwsgCiAIQcjzwAAQjAcAC0EAIAsgEEHY88AAEOoHAAsgDUEANgIIQQAgDSANQQRqIA1BCGpB4PnEABD1BwALIAcgC0H488AAEIwHAAsgAiAJSw0ACwsgDCAMKAIIQQFqNgIIIA1BIGokAA8LQejzwAAQsAoAC/ELAR1/IwBBMGsiASQAIAAQowUgAEHAAWpBADoAACAAQgA3ArgBAkACQAJAAkACQAJAIAAoAowBIgVBgICAgHhGIAAoApgBIgJBgICAgHhGcUUEQCAFQYCAgIB4RyACQYCAgIB4R3FFBEAgAUEANgIoIAFBATYCHCABQZzgwAA2AhggAUIENwIgIAFBGGoQkgchAgwECyAAQYCABBDQBCAAKAKoASIKQQJ0ELYJIQ8CQCAAKAI8RQ0AIAAoAkAiAkGECEkNACACEJsHCyAAIA82AkAgAEEBNgI8IAAoAowBIhBBgICAgHhGDQIgACgCmAEiEUGAgICAeEYNAQJAIApFDQAgACgCnAEhGSAAKAKQASEaIAAoAqABIRIgACgClAEhEyAAKAK0ASEbIAAoArABIRwgACgCiAEhFCAAKAKEASEVIAAoAnwhFiAAKAJ4IQtBACECA0AgFkGAgAQgCiACayIFIAVBgIAETxsiCEECdCIDSQRAQQAgAyAWQYi7wQAQ6gcACwJAIAMgFE0EQCABIBwgAkECdCIMIAIgCGoiBUECdCIXEOEIIgQQuAoiBzYCFCABIAM2AgggAyAHRgRAIAsgAyAEEOEJIARBhAhPBEAgBBCbBwsgASAbIAwgFxDhCCIEELgKIgc2AhQgASADNgIIIAMgB0YEQCAVIAMgBBDhCSAEQYQITwRAIAQQmwcLIAIgCkYNAyAIQQR0IRggDCAZaiEdIBogAkEBdGohDUEAIQRBACEIAkADQCAEIBhGBEAgCCAIQQRqIANB6LrBABDqBwALIAEgBCALaiIOKQIANwIIIAEgDkEIaioCADgCEAJ/IA5BDGooAgAiBkH//wFxRQRAIAZBEHQMAQsgBkH/B3EhByAGQYCAAnEhCSAGQYD4AXEiBkGA+AFGBEAgCUEQdCEGIAZBgICA/AdyIAdFDQEaIAYgB0ENdHJBgICA/gdyDAELIAlBEHQhCSAGQQ10QYCAgPwAcSAHQQ10ckGAgIDAA2ogCXIgBg0AGiAJQYCAgNgDciAHZ0EQayIGQRd0ayAHIAZB//8DcUEIanRB////A3FyCyEHIAFBGGoiBiAEIBVqEJYDIAIgE0kEQCACIBJPDQIgDiABQQhqIAe+IAYgDS8BACAIIB1qKAIAEJECIAhBBGohCCANQQJqIQ0gAkEBaiECIBggBEEQaiIERw0BDAYLCyACIBNByLrBABCMBwALIAIgEkHYusEAEIwHAAsMCQsMCAtBACADIBRB+LrBABDqBwALIAEgDyAMIBcQ4QgiAhC4CiIENgIUIAEgAzYCCCADIARGBEAgAiALIAMQ4AkgAkGECE8EQCACEJsHCyAFIgIgCkkNAQwCCwsMBQsgEUGAgICAeHJBgICAgHhHBEAgACgCnAEiAkEEaygCACIFQXhxIgMgEUECdCIEQQRBCCAFQQNxIgUbakkNBiAFQQAgAyAEQSdqSxsNByACEKICCyAAQYCAgIB4NgKYASAQQYCAgIB4ckGAgICAeEcEQCAAKAKQASICQQRrKAIAIgVBeHEiAyAQQQF0IgRBBEEIIAVBA3EiBRtqSQ0GIAVBACADIARBJ2pLGw0HIAIQogILIABBgICAgHg2AowBC0EAIQIgAEEANgJ8IAAoAnghBSAAKAJ0IQMgAEKAgICAwAA3AnQgAwRAIAVBBGsoAgAiBEF4cSIIIANBAnQiA0EEQQggBEEDcSIEG2pJDQUgBEEAIAggA0EnaksbDQYgBRCiAgsgAEEANgKIASAAKAKEASEFIAAoAoABIQMgAEKAgICAwAA3AoABIANFDQIgBUEEaygCACIAQXhxIgQgA0ECdCIDQQRBCCAAQQNxIgAbakkNBCAAQQAgBCADQSdqSxsNBSAFEKICDAILQbi6wQAQ3QkAC0GousEAEN0JAAsgAUEwaiQAIAIPCyABQQA2AhhBACABQRRqIAFBCGogAUEYakHg+cQAEPUHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL3hgDB38BfgF7IwBBIGsiBiQAAkACQCAAKAIAIgdFBEAgACgCECIARQ0BIABBk7PFAEEBEJcDIQIMAgsCQAJAAkACQAJAIAAoAggiAiAAKAIEIgVPBEAgACgCECIBRQ0BIAFB6rLFAEEQEJcDRQ0BDAULIAAgAkEBaiIENgIIIAIgB2otAAAhAyAAIAAoAgxBAWoiCDYCDCAIQfUDTwRAIAAoAhAiAQRAIAFB+rLFAEEZEJcDDQYLIABBAToABAwCCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIANB0QBrDikLCgEPARABAQEBAQEBAQEBBAcIAQkBAQMEAwEEAwQDAgEBBAMBAQEEAwALIANBwQBrDgINBAALIAAoAhAiAUUNESABQeqyxQBBEBCXAw0VDBELIAAoAhAiAUUNE0EBIQIgAUGSssUAQQEQlwNFDRMMFgsgACADEIYFDRMMEgsgBCAFTw0QIAQgB2otAABB7gBGDQEMEAsjAEEgayICJAACQAJAIAAoAgBFBEAgACgCECIBRQ0BIAFBk7PFAEEBEJcDIQEMAgsgAiAAEK8GIAIoAgBFBEAgACgCECIDBEBBASEBIANB+rLFAEHqssUAIAItAARBAXEiAxtBGUEQIAMbEJcDDQMLIAAgAv0AAgD9CwIADAELIAAoAhBFDQAgAP0AAgAhCiAAIAL9AAIA/QsCACACIAr9CwMQIAAgAUEBcRDVASEBIAAgAv0AAxD9CwIADAELQQAhAQsgAkEgaiQAIAENEQwQCyAAIAJBAmo2AgggACgCECIBRQ0OQQEhAiABQeqzxQBBARCXA0UNDgwSCyAGQRhqIAAQyAUgBigCGCIBRQRAIAYtABwhASAAKAIQIgMEQEEBIQIgA0H6ssUAQeqyxQAgAUEBcSIDG0EZQRAgAxsQlwMNEwsgACABOgAEDA0LIAZBCGogASAGKAIcEMIEAkACQAJAIAYoAghBAUcNACAGKQMQIglCAVYNACAJp0EBaw0BDAILIAAoAhAiAUUNDSABQeqyxQBBEBCXAw0RDA0LIAAoAhAiAUUNDyABQfKzxQBBBRCXAw0QDA8LIAAoAhAiAUUNDiABQfezxQBBBBCXAw0PDA4LIAZBGGogABDIBSAGKAIYIgFFBEAgBi0AHCEBIAAoAhAiAwRAQQEhAiADQfqyxQBB6rLFACABQQFxIgMbQRlBECADGxCXAw0SCyAAIAE6AAQMDAsgBkEIaiABIAYoAhwQwgQCQCAGKAIIIAYpAxAiCUKAgICAEFRxRQ0AQYCAxAAgCaciASABQYCwA3NBgIDEAGtBgJC8f0kbIgFBgIDEAEYNACAAKAIQIQMjAEEgayICJAACf0EAIANFDQAaAkAgAygCAEEnIAMoAgQoAhARAgANAANAAkACQAJ/AkACQCABQSJHBEAgAUGAgMQARgRAIAMoAgBBJyADKAIEKAIQEQIADAkLAkACQAJAAkACQAJAIAFBJkwEQCABQQlrDgUBAwYGAgULIAFBJ0YNAyABQdwARw0FIAJCADcBAiACQdy4ATsBAAwICyACQgA3AQIgAkHc6AE7AQAMBwsgAkIANwECIAJB3OQBOwEADAYLIAJCADcBAiACQdzcATsBAAwFCyACQgA3AQIgAkHczgA7AQAMBAsgAUUNAgsCQAJAIAFBgAZPBEAgARDlBA0BCyABEOECDQELIAJBEGogARDWBSACQQhqIgUgAkEYaiIHLwAAOwEAIAIgAikAEDcDACACLQAaIQEgAi0AGyEEIAcgBS8BADsBACACIAIpAwA3AxAgAUH/AXEgBEH/AXFJDQUMBgsgAiABNgIAQYEBIQRBgAEMAwtBgIDEACEBIAMoAgBBIiADKAIEKAIQEQIARQ0FDAYLIAJCADcBAiACQdzgADsBAAtBAiEEQQALIQEgAkEYaiACQQhqLwEAOwEAIAIgAikDADcDEAsgBEH/AXEhByABQf8BcSEEIAMoAgAhASADKAIEKAIQIQUgAigCECEIA0AgASAHQYABTQR/IAJBEGogBGotAAAFIAgLIAURAgANAyAHIARBAWoiBEcNAAsLQYCAxAAhAQwACwALQQELIAJBIGokAA0PDA4LIAAoAhAiAUUNCiABQeqyxQBBEBCXAw0ODAoLAkAgAQ0AIAAoAhAiA0UNAEEBIQIgA0H7s8UAQQEQlwMNEAsgACgCECIDBEBBASECIANBsrPFAEEBEJcDDRALIAAQwQINDQwICyAEIAVPDQAgBCAHai0AAEHlAEYNAQsCQCABDQAgACgCECIERQ0AQQEhAiAEQfuzxQBBARCXAw0OCyAAKAIQIgQEQEEBIQIgBEGss8UAQQEQlwMNDgsgA0HSAEcNAQwFCyAAIAJBAmo2AgggABDBAg0KDAkLIAAoAhAiAkUNAyACQa6zxQBBBBCXAw0JDAMLAkAgAQ0AIAAoAhAiA0UNAEEBIQIgA0H7s8UAQQEQlwMNCwsgACgCECIDBEBBASECIANB6LLFAEEBEJcDDQsLIAAQyQYNCCAAKAIQIgNFDQdBASECIANB6bLFAEEBEJcDRQ0DDAoLAkAgAQ0AIAAoAhAiA0UNAEEBIQIgA0H7s8UAQQEQlwMNCgsgACgCECIDBEBBASECIANBu7PFAEEBEJcDDQoLQQAhAgJ/AkAgACgCACIDRQ0AA0ACQCAAKAIIIgQgACgCBE8NACADIARqLQAAQcUARw0AIAAgBEEBajYCCAwCCwJAIAJFDQAgACgCECIDRQ0AIANB55DGAEECEJcDRQ0AQQEMAwtBASAAQQEQ1QENAhogAkEBaiECIAAoAgAiAw0ACwtBAAshAyAGIAI2AgQgBiADNgIAQQEhAiAGKAIAQQFxDQkgBigCBEEBRgRAIAAoAhAiA0UNByADQbyzxQBBARCXAw0KCyAAKAIQIgNFDQYgA0HejsgAQQEQlwNFDQIMCQsCQCABDQAgACgCECIDRQ0AQQEhAiADQfuzxQBBARCXAw0JC0EBIQIgAEEBEMwBDQggACgCACIERQRAIAAoAhAiAEUNCCAAQZOzxQBBARCXAyECDAkLIAAoAggiAyAAKAIETwRAIAAoAhAiAUUNAyABQeqyxQBBEBCXA0UNAwwJCyAAIANBAWo2AggCQAJAAkAgAyAEai0AAEHTAGsOAwIBBAALIAAoAhAiAUUNBCABQeqyxQBBEBCXAw0IDAQLIAAoAhAiAwRAIANBu7PFAEEBEJcDDQoLIAAQyQYNByAAKAIQIgNFDQYgA0HejsgAQQEQlwNFDQIMCQsgACgCECICBEAgAkH8s8UAQQMQlwMNBwtBASECQQAhByMAQSBrIgMkAAJAAkACQCAAKAIAIgRFDQADQAJAIAAoAggiBSAAKAIETw0AIAQgBWotAABBxQBHDQAgACAFQQFqNgIIDAILAkACQCAHRQ0AIAAoAhAiBEUNACAEQeeQxgBBAhCXAw0EIAAoAgANACAAKAIQIgVFDQFBASEEIAVBk7PFAEEBEJcDRQ0BDAULIAMgAEHzABCsBiADLQAAQQFGBEAgAy0AASEHIAAoAhAiBQRAQQEhBCAFQfqyxQBB6rLFACAHQQFxIgUbQRlBECAFGxCXAw0GCyAAIAc6AAQgAEEANgIADAMLIAAoAgBFBEAgACgCECIFRQ0BQQEhBCAFQZOzxQBBARCXA0UNAQwFCyADIAAQ7wIgAygCAEUEQCADLQAEIQcgACgCECIFBEBBASEEIAVB+rLFAEHqssUAIAdBAXEiBRtBGUEQIAUbEJcDDQYLIAAgBzoABCAAQQA2AgAMAwsgAyAD/QACAP0LAxACQCAAKAIQIgRFDQAgA0EQaiAEEIsCDQQgACgCECIERQ0AIARB3fjHAEECEJcDDQQLQQEhBCAAQQEQ1QENBAsgB0EBayEHIAAoAgAiBA0ACwtBACEEDAELQQEhBAsgA0EgaiQAIAQNCCAAKAIQIgNFDQUgA0H/s8UAQQIQlwNFDQEMCAtBASECIABBARDVAQ0HCyABDQMgACgCECIBRQ0DQQEhAiABQaWzxQBBARCXA0UNAwwGC0EAIQIgAEEAOgAEIABBADYCAAwFC0EAIQIgAEEANgIADAQLIAAgAxCGBQ0BC0EAIQIgACgCAEUNAiAAIAAoAgxBAWs2AgwMAgtBASECDAELQQAhAgsgBkEgaiQAIAIL/gwBFn8jAEFAaiIFJAACQCABLQD4AkEIRwRAAkACQCADBEAgAUHIAmohFCABQf0CaiEPIAVBIGpBBXIhFSAFQRBqIREgAUHgAmohGSADIQkDQCAFQR5qIhYgD0ECaiISLQAAOgAAIAEtAPgCIQ4gAUEIOgD4AiAFIA8vAAA7ARwCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgDkEIRwRAIAEoAoQDIQggASgCgAMhECABKAD5AiETIA5BBmtB/wFxQQFqQQAgDkEFSxtBAWsOAgIDAQtBgJHFABDdCQALIBUgDy8AADsAACAVQQJqIBItAAA6AAAgBSATNgAhIAUgDjoAICAFIBA2AjQgCEUgCUEET3ENAyAJQQQgCGsiBiAGIAlLGyIGIAhqIgcgCEkgB0EFT3INBiAGBEAgBUE0aiAIaiACIAb8CgAACyAHQQRGBEAgBUEIaiABIAVBIGogBUE0aiAEIAYQNQwFCyABIAc2AoQDIAEgBSgCNDYCgAMgASAFKQMgNwP4AiAFQQA6ABAgBSAGNgIMIAVBADYCCAwECyABKALcAiIGRQ0EIAEoAuACIAEoAugCayIHIAkgByAJSRsiByAGIAYgB0sbIQsgAS0AkQNFBEAgFCACIAsQ3gELIAEtAOwCDQ4gASgC6AIiCiABKALgAiIHRwRAIAohBgwOCyABKAKIAyIGRQ0BIAEgBiAGIAogBiAKSRsiDWs2AogDQQAhB0EAIQYgCkUNDSAKIA1qIgdBAE4EfyAFIAo2AjwgBUEBNgI4IAUgASgC5AI2AjQgBUEoakEBIAcgBUE0ahCFByAFKAIoQQFHDQcgBSgCMCEMIAUoAiwFIAYLIAxBoJHFABCTCQALIAEoAtwCIgYgCSAGIAlJGyIKIQcgBA0GDAcLIAVBJzoADAwHCyAFQQhqIAEgBUEgaiACIARBBBA1CyAFKAIIQQFxDQYgBS0AECEGDAsLIAFCADcDgAMgAUEEOgD4AkEAIQYgEUEAOgAAIAVCADcDCAwKCyAIIAdBBEGQkcUAEOoHAAsgBSgCLCEGIAEgBzYC4AIgASAGNgLkAiABKALoAiEGDAYLIAEoAvACIg0tAKMHQQdGDQACQCABLQD0Ag0AIAEtAPUCQQFxRQ0AIA1BAToApgcLIAQoAgQiCyAEKAIMIgwoAgAiGkGAQGsiByAHIAtLGyIXIAQoAggiGCgCACIHSQ0DIAVBNGogDSACIAogBCgCACAHaiAXIAdrIBogB2tBABBCIAUtADRFBEAgBSgCOCEHIAwgDCgCACAFKAI8aiIMNgIAAkAgDS0AowdBB0cEQCAMQYCAAkkNASAMQYCAAmsiDCAYKAIATQ0BCyAYIAw2AgALIAFBAToA9AIMAQsgBSAFLQA1OgANIAVBHDoADAwBCyABLQCRA0UEQCAHIApLDQQgFCACIAcQ3gEgASgC3AIhBgsgASAGIAdrNgLcAgJAIAYgB0YEQEEEIQ5BACEQQQAhCAwBCyAPIAUvARw7AAAgEiAWLQAAOgAACyABIAg2AoQDIAEgEzYA+QIgASAOOgD4AiABIBA2AoADQQUhBiAFQQU6ABAgBSAHNgIMIAVBADYCCAwGCyAFQQE2AggLIAAgBf0AAwj9CwIAIABBEGogBUEYaigCADYCAAwKCyAHIBcgC0HwkMUAEOoHAAtBACAHIApBsJHFABDqBwALIAcgBmsgC0kEQCAZIAYgCxDvBSABKALoAiEGCyALBEAgASgC5AIgBmogAiAL/AoAAAsgASAGIAtqNgLoAgsgASABKALcAiIMIAtrNgLcAkEEIQpBACEGQQAhB0EAIQ0gCyAMRwRAIA8gBS8BHDsAACASIBYtAAA6AAAgDiEKIAghDSAQIQcLIAEgDTYChAMgASATNgD5AiABIAo6APgCIAEgBzYCgAMgBUEAOgAQIAUgCzYCDCAFQQA2AggLIAUoAgwhCCAGQf8BcQ0DIAggCUsNAiACIAhqIQIgCSAIayIJDQALCyAAQQA6AAggACADNgIEIABBADYCAAwDCyAIIAkgCUHklcUAEOoHAAsgCCAJTQRAIABBADYCACAAIBEpAgA3AgggAEEQaiARQQhqKAIANgIAIAAgAyAJayAIajYCBAwCCyAIIAkgCUH0lcUAEOoHAAsgAEECNgIIIABBJjoABCAAQQE2AgALIAVBQGskAAvlDAIOfwN+IwBBIGsiAyQAAkACQCAAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAqgBQQFrDgIBAgALIANBEGohBQJAAkBBJRBxIgFFDQAgAUEdakGdnccAKQAANwAAIAFBEGpBkJ3HAP0AAAD9CwAAIAFBgJ3HAP0AAAD9CwAAQQwQcSICRQ0AIAJBJTYCCCACIAE2AgQgAkElNgIAQQwQcSIBRQ0AIAFBKDoACCABQbidxwA2AgQgASACNgIAIAUgAa1CIIZCA4Q3AgAMAQsACwwCCyADQRBqIAFBsAFqIAIQ8wEMAQsgASgCrAEhCiACKAIAIhAhBSACKAIIIgwhBwJ/AkAgECAMa0EgTw0AIANBEGogCiACEI8EAkBBAAJ/IAMtABBBBEYEQCADKAIUDAELIAMpAxAiEUIgiCETIBFC/wGDQgRSDQEgE6cLRQ0CGiACKAIAIQUgAigCCCEHDAELIBFCgH6DIRIMBgtBgMAAIQtBACEBA0ACQCAFIBBHIAUgB0dyRQRAIANBEGogCiACEI8EAkACQAJ/IAMtABBBBEYEQCADKAIUDAELIAMpAxAiEUIgiCETIBFC/wGDQgRSDQEgE6cLDQEgAigCCCEHDAMLIBFCgH6DIRIMCQsgAigCCCEHIAIoAgAhBQsCQCAFIAdHBEAgBSAHayENIAIoAgQhBAwBC0IBIRFCgMwAIRJCACETIAVBIGoiCCAFQQF0IgQgBCAISRsiCEEASA0IIAMgBQR/IAMgBTYCGCADIAIoAgQ2AhBBAQVBAAs2AhQgA0EEakEBIAggA0EQahCFByADKAIEQQFGDQggAygCCCEEIAIgCDYCACACIAQ2AgQgCCAFayENIAghBQsgBCAHaiEOIAsgDSALIA1JGyIIIAFrIgQEQCABIA5qQQAgBPwLAAsgA0EQaiAKIA4gCBDkAgJAIAMtABBBBEYNACADKQMQIhJCIIgiE6chBEIAIRECQAJAAkACQAJAIBKnQf8BcUEBaw4EAgEABAwLIAQtAAhBI0YNAgwKCyAELQAIQSNGDQFCAiERDAoLIBJCgP4Dg0KAxgBRDQBCASERDAkLAn8gEkL/AYNCA1EEQCAEKAIAIQEgBEEEaigCACIGKAIAIgkEQCABIAkRAwALIAYoAgQiBgRAIAFBBGsoAgAiCUF4cSIPQQRBCCAJQQNxIgkbIAZqSQ0RIAlBACAPIAZBJ2pLGw0SIAEQogILIARBBGsoAgAiAUF4cSIGQRBBFCABQQNxIgEbSQ0QIAFBACAGQTRPG0UEQEEADAILDBELQQELIQEDQAJAAkAgAUUEQCAEEKICDAELIANBEGogCiAOIAgQ5AIgAy0AEEEERg0EIAMpAxAiEkIgiCITpyEEAkACQAJAAkAgEqdB/wFxQQFrDgQAAQIHDwsgEkKA/gODQoDGAFENAkIBIREMDgsgBC0ACEEjRg0BQgIhEQwNCyAELQAIQSNHDQsLIBJC/wGDQgNRDQELQQEhAQwBCyAEKAIAIQEgBEEEaigCACIGKAIAIgkEQCABIAkRAwALIAYoAgQiBgRAIAFBBGsoAgAiCUF4cSIPQQRBCCAJQQNxIgkbIAZqSQ0QIAlBACAPIAZBJ2pLGw0RIAEQogILIARBBGsoAgAiAUF4cSIGQRBBFCABQQNxIgEbSQ0PIAFFIAZBNElyRQRADBELQQAhAQwACwALIAIgBzYCCAwBCyADKAIUIgEgCEsEQEG0m8cAQTZB7JvHABDrBwALIAIgASAHaiIHNgIIIAFFDQBBfyALQQF0IAtBAEgbIAsgASAIRhsgCyALIA1NGyELIAggAWshAQwBCwsgByAMawshASAKLQC0AUEBRw0GIAIoAggiBSAMSQ0BIApBoAFqIAIoAgQgDGogBSAMaxDeASAKKAKwASAKKAKoAUYNBiADQRBqEJMHCyADLQAQIQEMBAsgDCAFIAVB7KvHABDqBwALQgMhEQsgAiAHNgIIIBJCgH6DIRILIAMgEz4CFCADIBGnIgE6ABAgAyASpyICQRh2OgATIAMgAkEIdjsAEQsgAUH/AXFBBEcNASADKAIUIQELIAAgAa03AwhBAAwBCyAAIAMpAxA3AgRBAQs2AgAgA0EgaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALtAwCDH8BfiMAQeAEayIJJABBBiELAkACQAJAAkACQAJAAkAgASgCACIKQYCAgIB4Rg0AIAlBEGogASgCBCIMIAEoAggQkQUgCS0AEEEBRgRAIAkoAhQhASAJQQA2AqQDIAlCgICAgBA3ApwDIAlBnJPBADYC3AEgCUKggICADjcC4AEgCSAJQZwDajYC2AEgASAJQdgBahCvBA0CIAkoApwDIQsgCSgCoAMiDSAJKAKkAxDsCCEPIAsEQCANQQRrKAIAIg5BeHEiEEEEQQggDkEDcSIOGyALakkNByAOQQAgECALQSdqSxsNCCANEKICCyAAQQA2AgAgACAPNgIEIAEgASgCACgCABEDACAKBEAgDEEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgCmpJDQcgAEEAIAEgCkEnaksbDQggDBCiAgsgB0UgCEGECElyRQRAIAgQmwcLIAVFIAZBhAhJckUEQCAGEJsHCyADRSAEQYQISXJFBEAgBBCbBwsgAigCACIAQYCAgIB4ckGAgICAeEYNBSACKAIEIgFBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIABqSQ0GIAJBACADIABBJ2pLGw0HIAEQogIMBQsgCS0AESELIApFDQAgDEEEaygCACIBQXhxIg1BBEEIIAFBA3EiARsgCmpJDQUgAUEAIA0gCkEnaksbDQYgDBCiAgtBBCEBQQAhCkEAELYJIRNBABC2CSEUQQAhDEEEIQ0CQCADQQFxRQ0AIAlB2AFqIAQQlwYgCSgC4AEhDyAJKALcASENIAkoAtgBIQwgBEGECEkNACAEEJsHC0EAIQQCQCAFQQFxRQ0AIAlB2AFqIAYQlwYgCSgC4AEhBCAJKALcASEBIAkoAtgBIQogBkGECEkNACAGEJsHC0EEIQZBACEFQQAhA0EEIRACQCAHQQFxRQ0AIAlBnANqIAhBABDoCCIHEJcGIAlB2AFqIAhBARDoCCISEJcGIAkoAuABIREgCSgC3AEhECAJKALYASEOIAkoAqQDIQMgCSgCoAMhBiAJKAKcAyEFIBJBhAhPBEAgEhCbBwsgB0GECE8EQCAHEJsHCyAIQYQISQ0AIAgQmwcLIAkgFDYCjAMgCSATNgKIAyAJQQA2AoQDIAlCADcC/AIgCUGAgICAeDYC8AIgCUGAgICAeDYC5AIgCUIENwLcAiAJQgA3AtQCIAlCgICAgMAANwLMAiAJIBE2AsgCIAkgEDYCxAIgCSAONgLAAiAJIAM2ArwCIAkgBjYCuAIgCSAFNgK0AiAJIAQ2ArACIAkgATYCrAIgCSAKNgKoAiAJIA82AqQCIAkgDTYCoAIgCSAMNgKcAiAJQQA2ApQCIAlBADYCiAIgCUEANgKAAiAJQQA2AvgBIAlBADYC8AEgCUEANgLoASAJQQA2AuABIAlBADYC2AEgCUGYA2pBADoAACAJQgA3ApADIAIoAgAhAyACKAIEIQUgAigCCCEBAn8gC0EGRwRAIAlBCGogCyAJQdgBahDUAyAJKAIMIQQgCSgCCCEHQQIMAQsgCUGcA2ogCUHcAWpBwAH8CgAAQQAhB0EACyEGQYCAgIB4IQggA0GAgICAeEcEQCABQQBIDQICQCABRQRAQQEhCAwBCyABEHEiCEUNBAsgAQRAIAggBSAB/AoAAAsgCK0gAa1CIIaEIRUgASEICyAJQRhqIgIgCUGcA2pBwAH8CgAAQfQBEHEiAUUNAiABIAY2AgAgAUEEaiACQcAB/AoAACABIAs6APABIAEgBDYC7AEgASAHNgLoASABQYCAgIB4NgLcASABIBU3AtQBIAEgCDYC0AEgAUEANgLMASABQoCAgIAQNwLEASAAQbDuwAA2AgwgAEEBNgIIIABBmO7AADYCBCAAIAE2AgAgA0GAgICAeHJBgICAgHhGDQMgBUEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgA2pJDQQgAEEAIAEgA0EnaksbDQUgBRCiAgwDC0GgnsYAQTcgCUHfBGpBtJPBAEHYnsYAEOAGAAtB2JrIABD/BwsACyAJQeAEaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL/Q0BBX8jAEEwayICJAACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOBQECAwQFAAtBASEDIAEoAgAiBEHUpccAQQggASgCBCIGKAIMIgURAAANBiAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEIQGRQ0BDAgLIARB24HCAEECIAURAAANByACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIQGDQcgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0HCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBgtBASEDIAEoAgAiBEHcpccAQQggASgCBCIGKAIMIgURAAANBSAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQcgACABEIUGRQ0BDAcLIARB24HCAEECIAURAAANBiACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIUGDQYgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0GCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBQtBASEDIAEoAgAiBEHkpccAQQkgASgCBCIGKAIMIgURAAANBCAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQYgACABEIYGRQ0B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BwsgA0IANwGCASADQdzkATsBgAEMBgsgA0IANwGCASADQdzcATsBgAEMBQsgA0IANwGCASADQdy4ATsBgAEMBAsgA0IANwGCASADQdzEADsBgAEMAwsgA0IANwGCASADQdzOADsBgAEMAgsgAyAENgKAASAAIAMpAoABNwIAIABBCGogA0GIAWovAQA7AQAgBSAJKAIAIAgoAhARAgBFDQMMBQtBACEADAULQQAhAUECCyEEIAAgAykCgAE3AgAgAEEIaiADQYgBai8BADsBACABIAQgASAESxsiAkH/AXEhBCAIKAIQIQoDQCAFIAAgAWotAAAgChECAA0DIAQgAUEBaiIBRw0ACyADIAI6AGALIAYgB0cNAAtBACEADAELQQEhAAsgA0GQAWokACAAC+MJAQZ/IAFBA2wiBCAAKAKQBCICSwRAIAQgAmsiBSAAKAKIBCACa0sEQCAAQYgEaiACIAVBBEEEEKQFIAAoApAEIQILIAAoAowEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKQBAsgACgCnAQiAiABSQRAIAEgAmsiBSAAKAKUBCACa0sEQCAAQZQEaiACIAVBBEEEEKQFIAAoApwEIQILIAAoApgEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKcBAsgACgCqAQiAiAESQRAIAQgAmsiBSAAKAKgBCACa0sEQCAAQaAEaiACIAVBBEEEEKQFIAAoAqgEIQILIAAoAqQEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKoBAsgACgCtAQiAiAESQRAIAQgAmsiBCAAKAKsBCACa0sEQCAAQawEaiACIARBBEEEEKQFIAAoArQEIQILIAAoArAEIgUgAkECdGohAyAEQQJPBH8gBEECdEEEayIGBEAgA0EAIAb8CwALIAIgBGoiA0EBayECIAUgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgK0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AXI6AABBACEDDAQLIAIoAggiAyACKAIARgRAIAJB+JPGABCnBgsgAiADQQFqNgIIIAIoAgQgA2ogBjoAAEEAIQMMAwsgBiADIANByKXGABDqBwALIARBFDYCFCABIARBFGoQiwchAwwBCyAIIAMgA0HIpcYAEOoHAAsgBEEgaiQAIANFDQ4MDQsgAigCACADRgRAIAJB+JLGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQSI6AAAMCwsgAigCACADRgRAIAJBiJPGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQdwAOgAADAoLIAIoAgAgA0YEQCACQZiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEvOgAADAkLIAIoAgAgA0YEQCACQaiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEIOgAADAgLIAIoAgAgA0YEQCACQbiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEMOgAADAcLIAIoAgAgA0YEQCACQciTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEKOgAADAYLIAIoAgAgA0YEQCACQdiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakENOgAADAULIAIoAgAgA0YEQCACQeiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEJOgAADAQLIAMgBCAGQcicxgAQ6gcACyAHKAIMIQMMAwsgB0EENgIUIAAgASAHQRRqEPIGDAYLIAQgBkGYnMYAEIwHAAsMAQsLIABBAjYCACAAIAM2AgQMAgsgACADNgIIIAAgATYCBCAAQQA2AgAMAQsgACADNgIIIAAgATYCBCAAQQE2AgALIAdBIGokAAvFBwEEfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOBQECAw0EAAsgAC0ABEEDRw0MIAAoAggiAygCACEAIANBBGooAgAiASgCACICBEAgACACEQMACyABKAIEIgEEQCAAQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyABakkNDyACQQAgBCABQSdqSxsNDiAAEKICCyADQQRrKAIAIgBBeHEiAUEQQRQgAEEDcSIAG0kNDiAARSABQTRJcg0LDA0LAkAgAC0ABEEBaw4C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gICAgIAEhDcDECADQgE3AiQgA0EBNgIcIANBoPjHADYCGCADIANBEGo2AiAgA0EEaiADQRhqEOwDQYCAgIB4IQYgAygCCCEFIAMoAgQhBCADNQIMIQpBACEHQRELIQAgAyAKNwMgIAMgBTYCHCADIAg6ABkgAyAAOgAYIANBGGogASACENAFIQACQAJAAkACQAJAIAlFBEAgByAERXINBgwBCyAGBEAgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBmpJDQIgAUEAIAIgBkEnaksbDQMgBRCiAgsgBEUgB3INBQsgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBGpJDQIgAUEAIAIgBEEnaksbDQMgBRCiAgwEC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIANBMGokACAAC+YFAQN/IwBBIGsiAyQAIAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAQ4oAgEBAQEBAQEBAwUBAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQgBAQEBBwALIAFB3ABGDQULIAJBAXFFIAFB/wVNcg0HIAEQ5QRFDQcgA0EOakEAOgAAIANBADsBDCADIAFBFHYtANy2RToADyADIAFBBHZBD3EtANy2RToAEyADIAFBCHZBD3EtANy2RToAEiADIAFBDHZBD3EtANy2RToAESADIAFBEHZBD3EtANy2RToAECABQQFyZ0ECdiICIANBDGoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgAkECayICakHcADoAACADQRRqIgQgAUEPcS0A3LZFOgAAIAAgAykBDDcAACADQf0AOgAVDAgLIABCADcBAiAAQdzgADsBAAwKCyAAQgA3AQIgAEHc6AE7AQAMCQsgAEIANwECIABB3OQBOwEADAgLIABCADcBAiAAQdzcATsBAAwHCyAAQgA3AQIgAEHcuAE7AQAMBgsgAkGAAnFFDQEgAEIANwECIABB3M4AOwEADAULIAJB////B3FBgIAETw0DCyABEOECDQEgA0EYakEAOgAAIANBADsBFiADIAFBFHYtANy2RToAGSADIAFBBHZBD3EtANy2RToAHSADIAFBCHZBD3EtANy2RToA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IAMgAUEDdGoiAiAFNgIEIAIgCjgCACABDQBBACECDAELIAogClsEQANAIAMgAUEBayIGQQF2IgJBA3RqIgcqAgAiCyALWyAKIAtfRXFBfyAKIAtgGyIEQQBMIAUgB0EEaigCAE0gBBsEQCABIQIMAwsgAyABQQN0aiAHKQIANwIAIAIhASAGQQFLDQAMAgsACwNAAkAgAyABQQFrIgRBAXYiAkEDdGoiBioCACILIAtbIAogC19FcQ0AIAUgBkEEaigCAEsNACABIQIMAgsgAyABQQN0aiAGKQIANwIAIAIhASAEQQJPDQALCyADIAJBA3RqIgEgBTYCBCABIAo4AgALIAAgCTYCCCAAIA04AgQgAEEBNgIAC4kGAQV/IwBBIGsiAiQAQQEhBAJAAkACQAJAAkACQEEBIAAoAgAiA0H/////B2ogA0GAgICAeE0bQQFrDgQBAgMEAAsgASgCACIDQcSjxwBBAiABKAIEIgYoAgwiBREAAA0EIABBBGohAAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAURAAANBiAAIAEQrgINBiABKAIAIQMgASgCBCgCDCEFDAELIANB24HCAEECIAURAAANBSACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqEK4CDQUgAigCEEHZgcIAQQIgAigCFCgCDBEAAA0FCyADQd6OyABBASAFEQAAIQQMBAsgASgCACIDQcajxwBBDiABKAIEIgYoAgwiBREAAA0DAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0FIAAoAgQgACgCCCABELUCRQ0BDAULIANB24HCAEECIAURAAANBCACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACgCBCAAKAIIIAJBEGoQtQINBCACQdmBwgBBAhCvAw0ECyADQd6OyABBASAFEQAAIQQMAwsgASgCACIDQdSjxwBBEiABKAIEIgYoAgwiBREAAA0CAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0EIAAoAgQgACgCCCABELUCRQ0BDAQLIANB24HCAEECIAURAAANAyACQQE6AA8gAiAGNgIEIAIg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AkACQAJAAkACQAJAQRUgASgCACIDQYCAgIB4cyADQQBOG0EBaw4IAQIDBAUGBwgACyABIAJBH2pB6OfAABCVCCEBIABBAToAACAAIAE2AgQMCAsgAEEAOgAAIAAgAS0ABDoAAQwHCyABLwEEIgFB/wFNBEAgACABOgABIABBADoAAAwHCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwGCyABKAIEIgFB/wFNBEAgACABOgABIABBADoAAAwGCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwFCyABKQMIIgRC/wFYBEAgACAEPAABIABBADoAAAwFCyACQQE6AAggAiAENwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAEsAAQiAUEASARAIAJBAjoACCACIAGsNwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAAgAToAASAAQQA6AAAMAwsgAS8BBCIBQYACTwRAIAJBAjoACCACIAGtwzcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwDCyAAIAE6AAEgAEEAOgAADAILIAEoAgQiAUGAAk8EQCACQQI6AAggAiABrDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwCCyAAIAE6AAEgAEEAOgAADAELIAACfyABKQMIIgRCgAJaBEAgAkECOgAIIAIgBDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEQQEMAQsgACAEPAABQQALOgAACyACQSBqJAALxgQCBn8DfgJAIAEoAgBBAUYEQCABKQMQIgpQBEAMAgsgASgCGCIGKAIAIAYpAwgiCyAGKAIEIgWtIgwgCyAMVBunaiEHAkAgBUL/////DyALIAtC/////w9aG6drIgRBACAEIAVNGyIFIAogA60iDCAKIAxUG6ciBCAEIAVLGyIEQQFGBEAgAiAHLQAAOgAADAELIARFDQAgAiAHIAT8CgAACyABIAogBK0iCn03AxAgBiAKIAt8NwMIIARFBEBBACEEDAILQQEgBGshCCADQQFrIQYgASgCJCEJIAEoAiAhByABKAIoIQMDQAJAIAIgAi0AACADQQNy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KCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahDUASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2AjggAUEBNgIsIAFBqKPBADYCKCABQgQ3AjAgAUEoahCSByEDCyABQdAAaiQAIAML0wQCB38BfiMAQdAAayIBJAACQCAAEFwiAw0AIAAoAtwEIgJBgYCAgHhGIgRFBEACQAJAIAJBgICAgHhGBEBBACAAIAQbIQUgACgCCCIGQQZ0IQMgACgCBCIHQTxqIQICQANAIAIhBCADRQ0BIANBQGohAyACQUBrIQIgBC0AAEEBRw0ACyAEQTxrIgIoAjggAigCICIERw0DIAQgACgC7AJHDQMLIAZBBnQhAyAHQTxqIQIDQCACIQQgA0UNAiADQUBqIQMgAkFAayECIAQtAABBAkcNAAsgBEE8ayICKAI4IAIoAiBGDQEgAUECNgIsIAFBiKPBADYCKCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahCjASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2Ajgg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rgQCBX8EfiMAQSBrIgIkAEEEIQMgASgCBCIErSEIIAECfgJAIARC/////w8gASkDCCIHIAdC/////w9aG6drIgZBACAEIAZPG0EETwRAIAEoAgAgByAIIAcgCFQbp2ooAAAhBQwBC0GokMgAKQMAIglCCIghCiAJpyEDIAggCUL/AYNCBFINARoLIAdCBHwLIgk3AwgCQCADQf8BcUEERwRAIABBEmogAkEWai8BADsBACACIAOtQv8BgyAKQgiGhDcCDCACQQRqIAJBDWotAAAiAToAACAAIAIpAQ43AQogAiACKAAJIgM2AgAgAEEJaiABOgAAIAAgAzYABSAAQQA6AAQgAEEBNgIADAELIAJBCGpBAXIgBRCYBCACQRxqIAJBDWotAAA6AAAgAiACKAAJIgM2AgAgAiADNgIYAkACQCAEIAkgCCAIIAlWG6ciA2tBBE8EQCABKAIAIANqKAAAIQRBBCEDQgAhBwwBC0EAIQRBqJDIACkDACIKQgiIIQcgCqchAyAKQv8Bg0IEUg0BCyAJQgR8IQgLIAEgCDcDCCADQf8BcUEERwRAIAAgAzoACCAAQQA6AAQgAEEBNgIAIAAgB6ciATsACSAAIAdCGIg+AgwgAEELaiABQRB2OgAADAELIAAgAigCGDYAECAAQQA2AgAgACAErTcDCCAAQRRqIAJBHGotAAA6AAAgAEF/IAQgBEEBcWoiACAAIARJG603AxgLIAJBIGokAAvdBAIHfwF+IwBBEGsiAyQAAkAgAC8BDCICRQRAIAAoAgAgACgCBCABEKEDIQEMAQsgAyAB/QACAP0LAwACQAJ/IAApAggiCaciB0GAgIAIcUUEQCADKAIEDAELIAAoAgAgAygCACADKAIEIgEgACgCBCgCDBEAAA0BIAAgB0GAgID/eXFBsICAgAJyIgc2AgggA0IBNwMAIAIgAUH//wNxayIBQQAgASACTRshAkEACyEIAkAgAygCDCIFRQRADAELIAMoAgghAQNAAn8CQAJAAkACQCABLwEAQQFrDgIBAgALIAFBBGooAgAMAwsgAUECai8BACIEDQFBAQwCCyABQQhqKAIADAELIARB9v8XaiAEQZz/H2pxIARBmPg3aiAEQfCxH2pxc0ERdkEBagsgAUEMaiEBIAZqIQYgBUEBayIFDQALCwJAIAYgCGoiASACQf//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IAEoAiAiAiABKAIcIgFGDQELIAEgB2ohCCACIAFrIQMLIAAgAzYCBCAAIAg2AgAgBkEQaiQAC70DAgZ/AX4jAEHQAGsiAiQAIAJBIGogACAAKAIAKAIEEQEAIAIgAkEwaq1CgICAgLABhDcDKCACIAIpAyA3AjAgASgCACEFIAEoAgQhBiACQgE3AkRBASEDIAJBATYCPCACQaD4xwA2AjggAiACQShqNgJAAkAgBSAGIAJBOGoQwQMNACABLQAKQYABcUUEQEEAIQMMAQsgAkEYaiAAIAAoAgAoAgQRAQAgAkEQaiACKAIYIAIoAhwoAhgRAQAgAigCECIERQRAQQAhAwwBCyACQQhqIAQgAigCFCIHKAIYEQEAIAIoAgwhACACKAIIIQEgAiAHNgIsIAIgBDYCKCACQQE2AjwgAkGA8cEANgI4IAJCATcCRCACIAJBKGqtQoCAgICwAYQiCDcDMCACIAJBMGo2AkAgBSAGIAJBOGoQngkNAANAIAFFBEBBACEDDAILIAIgASAAKAIYEQEAIAIoAgQgAigCACACIAA2AiwgAiABNgIoIAJBATYCPCACQYDxwQA2AjggAkIBNwJEIAIgCDcDMCACIAJBMGo2AkAhASEAIAUgBiACQThqEJ4JRQ0ACwsgAkHQAGokACADC5QDACAAIARqIQACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQf8BcUEBaw4HBwABAgMEBQYLIABBfU0gAEECaiIBIANNcQ0HIAAgASADQbTZxwAQ6gcACyAAQX1NIABBAmoiASADTXENByAAIAEgA0HE2ccAEOoHAAsgAEF7TSAAQQRqIgEgA01xDQcgACABIANB1NnHABDqBwALIABBe00gAEEEaiIBIANNcQ0HIAAgASADQeTZxwAQ6gcACyAAQXtNIABBBGoiASADTXENByAAIAEgA0H02ccAEOoHAAsgAEF3TSAAQQhqIgEgA01xDQcgACABIANBhNrHABDqBwALIAAgA0kNCCAAIANBlNnHABCMBwALIAAgA0kNBiAAIANBpNnHABCMBwALIAAgAmouAACyDwsgACACai8AALMPCyAAIAJqKAAAsg8LIAAgAmooAACzDwsgACACaioAAA8LIAAgAmorAAC2DwsgACACai0AALNDAAB/Q5UPCyAAIAJqLAAA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AAs2AgAgBUEgaiQAC4QDAgJ/AXsCQAJAIARBBE8EQCACIARBBGtBA24iBSACIAVJGyIFQQNNDQEgAiAFQQFqIgIgAkEDcSICQQQgAhtrIgZrIQIgASAGaiAEIAZBfWxqIQQgAyAGQQNsaiEHA0AgAyAAIAH9XAAA/YkB/akBIgj9GwBBAnRqKAAANgAAIANBA2ogACAI/RsBQQJ0aigAADYAACADQQZqIAAgCP0bAkECdGooAAA2AAAgA0EJaiAAIAj9GwNBAnRqKAAANgAAIAFBBGohASADQQxqIQMgBkEEayIGDQALIQEgByEDDAELIAQNAQ8LA0AgAkUEQEEAQQBBpJrFABCMBwALIAMgACABLQAAQQJ0aigAADYAACADQQNqIQMgAkEBayECIAFBAWohASAEQQNrIgRBA0sNAAsLAkAgAgRAIARBA0cNASADIAAgAS0AAEECdGoiAC8AADsAACADQQJqIABBAmotAAA6AAAPC0EAQQBBhJrFABCMBwALQQBBAyAEQZSaxQAQ6gcAC4EDAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB/wFxQQFrDgcHAAECAwQFBgsgA0F9TSADQQJqIgAgAk1xDQcgAyAAIAJBtNjHABDqBwALIANBfU0gA0ECaiIAIAJNcQ0HIAMgACACQcTYxwAQ6gcACyADQXtNIANBBGoiACACTXENByADIAAgAkHU2McAEOoHAAsgA0F7TSADQQRqIgAgAk1xDQcgAyAAIAJB5NjHABDqBwALIANBe00gA0EEaiIAIAJNcQ0HIAMgACACQfTYxwAQ6gcACyADQXdNIANBCGoiACACTXENByADIAAgAkGE2ccAEOoHAAsgAiADTQ0HIAEgA2osAACyDwsgAiADSw0HIAMgAkGk2McAEIwHAAsgASADai4AALIPCyABIANqLwAAsw8LIAEgA2ooAACyDwsgASADaigAALMPCyABIANqKgAADwsgASADaisAALYPCyADIAJBlNjHABCMBwALIAEgA2otAACzC58DAgF+CH8CQAJAAkACQAJAIAAoAgQiBEUNACAAKAIMIggEQCAAKAIAIgJBCGohAyACKQMAQn+FQoCBgoSIkKDAgH+DIQEDQCABUARAA0AgAkGABGshAiADKQMAIANBCGohA0KAgYKEiJCgwIB/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jOrHABCMBwALQezpxwAQ/wcLAAucAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH/AXFBAWsOBwUAAQICAgMECyADQX1NIANBAmoiACACTXENBSADIAAgAkG02scAEOoHAAsgA0F9TSADQQJqIgAgAk1xDQUgAyAAIAJBxNrHABDqBwALIANBe00gA0EEaiIAIAJNcQ0FIAMgACACQdTaxwAQ6gcACyADQXdNIANBCGoiACACTXENBSADIAAgAkHk2scAEOoHAAsgAiADTQ0FIAEgA2osAAAPCyACIANLDQUgAyACQaTaxwAQjAcACyABIANqLgAADwsgASADai8AAA8LIAEgA2ooAAAPCyABIANqKwAA/AMPCyADIAJBlNrHABCMBwALIAEgA2otAAALzQIBBH8jAEEgayIEJAAgASgCDCEFAkAgAAJ/AkACQAJAIAEoAhQiAiABKAIQIgNJBEADQAJAIAIgBWotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgASACQQFqIgI2AhQgAiADRw0ACyADIQILIARBEGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAhQhASAEKAIQIQNBFBBxIgJFDQQgAkEDNgIADAELIARBCGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAgwhASAEKAIIIQNBFBBxIgJFDQMgAkEGNgIACyACIAM2AgwgAiABNgIQQQEMAQsgASACQQFqNgIUIARBGGogARCVAyAEKAIcIQIgBCgCGAs2AgAgACACNgIEIARBIGokAA8LAAu2AgEBfyMAQUBqIgMkACADIAI2AhAgAyABNgIMIAACfwJAAkACQAJAAkACQAJAIAJBA2sOBwAFAQIFBQMFCyABQZDQxwBBAxDbB0UEQCAAQQA6AAFBAAwHCyABQaD3xwBBAxDbBw0DIABBAToAAUEADAYLIAFBo/fHAEEFENsHDQMgAEECOgABQQAMBQsgAUGo98cAQQYQ2wcNAiAAQQM6AAFBAAwECyABQa73xwBBCRDbBw0BIABBBDoAAUEADAMLIAFBt/fHAEEDENsHRQ0BCyADQQE2AiQgA0HQ98cANgIgIANCATcCLCADIANBDGqtQoCAgIAghDcDOCADIANBOGo2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AEGUgICAeEYEQAJAIAACfyADKAIMIgQEQCACIAMoAggQqAMgAigCACIBQYCAgIB4Rw0CIAIoAgQMAQtBACACQQ9qQYTiwAAQ2wYLNgIEIABBgICAgHg2AgAMBAsgAigCBCEDIARBAUYNAiACQQE2AgAgBEEBa0H/////AHFBAWogAkHolcEAENsGIQQgAEGAgICAeDYCACAAIAQ2AgQgAUUNAyADIAFBARCiBwwDCyADIAJBD2pBhOLAABCVCCEBIABBgICAgHg2AgAgACABNgIEDAILQcvawABBLEH42sAAEKsHAAsgACACKAIINgIIIAAgAzYCBCAAIAE2AgALIAJBEGokAAupAgEFfyMAQSBrIgIkAEEBIQMCQCAAKAIAIgQoAgBBAUYEQCABKAIAIgBBw5jIAEEEIAEoAgQiBigCDCIFEQAADQEgBEEIaiEEAkAgAS0ACkGAAXFFBEAgAEG7s8UAQQEgBREAAA0DIAQgARDEBQ0DIAEoAgAhACABKAIEKAIMIQUMAQsgAEHbgcIAQQIgBREAAA0CIAJBAToADyACIAY2AgQgAiAANgIAIAJB4IHCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECAEIAJBEGoQxAUNAiACKAIQQdmBwgBBAiACKAIUKAIMEQAADQILIABB3o7IAEEBIAURAAAhAwwBCyABKAIAQb+YyABBBCABKAIEKAIMEQAAIQMLIAJBIGokACADC5ECAQN/IwBBQGoiASQAAkAgABA9IgINACAALQClU0UEQCABQQA2AjggAUEBNgIsIAFB5KPBADYCKCABQgQ3AjAgAUEoahCSByECDAELIAAoAmRBgICAgHhHBEBBACECIAAtAJgBIgNBCUYNASADQQVGBEAgACgCkAFFDQILIAFBAjYCLCABQZykwQA2AiggAUICNwI0IAEgAEGQAWqtQoCAgIAQhDcDICABIABBmAFqrUKAgICAsASENwMYIAEgAUEYajYCMCABQQxqIgAgAUEoahCxBiAAEI4HIQIMAQsgAUEANgI4IAFBATYCLCABQcCkwQA2AiggAUIENwIwIAFBKGoQkgchAgsgAUFAayQAIAILkgIBA38jAEFAaiIBJAACQCAAED4iAg0AIAAtAMVTRQRAIAFBADYCOCABQQE2AiwgAUHko8EANgIoIAFCBDcCMCABQShqEJIHIQIMAQsgACgChAFBgICAgHhHBEBBACECIAAtALgBIgNBCUYNASADQQVGBEAgACgCsAFFDQILIAFBAjYCLCABQZykwQA2AiggAUICNwI0IAEgAEGwAWqtQoCAgIAQhDcDICABIABBuAFqrUKAgICAsASENwMYIAEgAUEYajYCMCABQQxqIgAgAUEoahCxBiAAEI4HIQIMAQsgAUEANgI4IAFBATYCLCABQcCkwQA2AiggAUIENwIwIAFBKGoQkgchAgsgAUFAayQAIAILiAIBAn8jAEHwAGsiAyQAAkACQAJAAkACQCABRQRAIABFDQEgAEEIayIBKAIAQQFHDQQgA0EIaiAAQQRqQegA/AoAACABQQA2AgACQCABQX9GDQAgAEEEayICIAIoAgBBAWsiAjYCACACDQAgAEEMaygCACIAQXhxIgJB+ABB/AAgAEEDcSIAG0kNAyAAQQAgAkGcAU8bDQQgARCiAgsgA0EIahD2AgwFCyAARQ0AIABBCGsiACAAKAIAQQFrIgE2AgAgAQ0EIAAQ5AYMBAsQjgoAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBjNrAAEE/EI8KAAsgA0HwAGokAAuIAgECfyMAQdAAayIDJAACQAJAAkACQAJAIAFFBEAgAEUNASAAQQhrIgEoAgBBAUcNBCADQQhqIABBBGpByAD8CgAAIAFBADYCAAJAIAFBf0YNACAAQQRrIgIgAigCAEEBayICNgIAIAINACAAQQxrKAIAIgBBeHEiAkHYAEHcACAAQQNxIgAbSQ0DIABBACACQfwATxsNBCABEKICCyADQQhqEPUCDAULIABFDQAgAEEIayIAIAAoAgBBAWsiATYCACABDQQgABDjBgwECxCOCgALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0GM2sAAQT8QjwoACyADQdAAaiQAC+cBAQN/IwBBEGsiAyQAIAMgACgCACIANgIEAn8CQCABKAIIIgJBgICAEHFFBEAgAkGAgIAgcQ0BIANBBGogARCLBQwCC0EJIQIDQCACIANqQQZqIABBD3EtANy2RToAACACQQFrIQIgAEEPSyAAQQR2IQANAAsgAUEBQYS0xQBBAiACIANqQQdqQQkgAmsQyAMMAQtBCSECA0AgAiADakEGaiAAQQ9xLQDJgUI6AAAgAkEBayECIABBD0sgAEEEdiEADQALIAFBAUGEtMUAQQIgAiADakEHakEJIAJrEMgDCyADQRBqJAALgwICA34EfyAAKAIMRQRAQQAPCyAAKQMQIAApAxggASACEJUEIQMgACgCBCIHIAOncSEGIANCGYhC/wCDQoGChIiQoMCAAX4hBSAAKAIAIQgDQAJAIAYgCGopAAAiBCAFhSIDQn+FIANCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiA1BFBEADQCAIIAN6p0EDdiAGaiAHcUFsbGoiAEEMaygCACACRgRAIAEgAEEQaygCACACENsHRQ0DCyADQgF9IAODIgNQRQ0ACwtBACEAIAQgBEIBhoNCgIGChIiQoMCAf4NQRQ0AIAYgCUEIaiIJaiAHcSEGDAELCyAAQRRrQQAgABsL5gEBA38jAEEQayIDJAACfwJAIAEoAggiAkGAgIAQcUUEQCACQYCAgCBxDQEgACABEIsFDAILIAAoAgAhAEEJIQIDQCACIANqQQZqIABBD3EtANy2RToAACACQQFrIQIgAEEPSyAAQQR2IQANAAsgAUEBQYS0xQBBAiACIANqQQdqQQkgAmsQyAMMAQsgACgCACEAQQkhAgNAIAIgA2pBBmogAEEPcS0AyYFCOgAAIAJBAWshAiAAQQ9LIABBBHYhAA0ACyABQQFBhLTFAEECIAIgA2pBB2pBCSACaxDIAwsgA0EQaiQAC7QCAQN/IwBBEGsiAiQAAkACQAJAAkAgACgCACIAKAIAQQFrDgIBAgALIAIgAEEIajYCBCABKAIAQfHExABBDyABKAIEKAIMEQAAIQMgAkEAOgANIAIgAzoADCACIAE2AgggAkEIakGQr8cAQQggAEEEakGgwMQAEIwFQYDFxABBBiACQQRqQeS2xAAQjAUgAi0ADSIDIAItAAwiBHIhASAEQQFxIANBAUdyDQIoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEBDAMLIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAQwCCyABKAIAQYbFxABBFSABKAIEKAIMEQAAIQEMAQsgASgCAEGbxcQAQRUgASgCBCgCDBEAACEBCyACQRBqJAAgAUEBcQukAgEFfyMAQSBrIgIkAEEBIQMCQCAAKAIAQQFGBEAgASgCACIEQcOYyABBBCABKAIEIgYoAgwiBREAAA0BIABBBGohAAJAIAEtAApBgAFxRQRAIARBu7PFAEEBIAURAAANAyAAIAEQugUNAyABKAIAIQQgASgCBCgCDCEFDAELIARB24HCAEECIAURAAANAiACQQE6AA8gAiAGNgIEIAIgBDYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqELoFDQIgAigCEEHZgcIAQQIgAigCFCgCDBEAAA0CCyAEQd6OyABBASAFEQAAIQMMAQsgASgCAEG/mMgAQQQgASgCBCgCDBEAACEDCyACQSBqJAAgAwvmAQEDfyMAQRBrIgMkAAJ/AkAgASgCCCICQYCAgBBxRQRAIAJBgICAIHENASAAIAEQ9QQMAgsgACgCACEAQQkhAgNAIAIgA2pBBmogAEEPcS0A3LZFOgAAIAJBAWshAiAAQQ9LIABBBHYhAA0ACyABQQFBhLTFAEECIAIgA2pBB2pBCSACaxDIAwwBCyAAKAIAIQBBCSECA0AgAiADakEGaiAAQQ9xLQDJgUI6AAAgAkEBayECIABBD0sgAEEEdiEADQALIAFBAUGEtMUAQQIgAiADakEHakEJIAJrEMgDCyADQRBqJAAL4gECBH8EfiABKAIEIgOtIQYCQAJAIANC/////w8gASkDCCIHIAdC/////w9aG6drIgRBACADIARPG0EDTwRAIAEoAgAgByAGIAYgB1Ybp2oiAi0AAUEIdCEDIAItAAJBEHQhBCACLQAAIQVBBCECDAELQaiQyAApAwAiCUIIiCEIIAmnIQJBACEDQQAhBCAJQv8Bg0IEUg0BCyAHQgN8IQYLIAEgBjcDCCACQf8BcUEERwRAIAAgAq1C/wGDIAhCCIaENwIEIABBADoAAA8LIAAgAyAFciAEcjYCBCAAQR06AAAL8QECAX4CfyMAQRBrIgMkACAAKAIAIQACfwJAIAEoAggiBEGAgIAQcUUEQCAEQYCAgCBxDQEgACABEIUFDAILIAApAwAhAkERIQADQCAAIANqQQJrIAKnQQ9xLQDctkU6AAAgAEEBayEAIAJCD1YgAkIEiCECDQALIAFBAUGEtMUAQQIgACADakEBa0ERIABrEMgDDAELIAApAwAhAkERIQADQCAAIANqQQJrIAKnQQ9xLQDJgUI6AAAgAEEBayEAIAJCD1YgAkIEiCECDQALIAFBAUGEtMUAQQIgACADakEBa0ERIABrEMgDCyADQRBqJAALggIBBH8CQAJAAkACQCAAKAIIIgFBgICAgHhyQYCAgIB4RwRAIAAoAgwiAkEEaygCACIDQXhxIgRBBEEIIANBA3EiAxsgAWpJDQEgA0EAIAQgAUEnaksbDQIgAhCiAgsCQCAAKAJcIgFFDQAgAUEYbCICIAFqQSFqIgFFDQAgACgCWCACayIAQRxrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNAyACQQAgAyABQSdqSxsNBCAAQRhrEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuCAgEEfyMAQYAgayIEJAACQAJAAkACQAJAQYCJ+gAgASABQYCJ+gBPGyICIAEgAUEBdmsiAyACIANLGyICQYEITwRAIANB/////wNLDQJBMCACIAJBME0bIgVBAnQiA0H9////B08NAiADEHEiAkUNAyAAIAEgAiAFIAFBwQBJEN0BIAJBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIANqSQ0EIABBACABIANBJ2pLGw0FIAIQogIMAQsgACABIARBgAggAUHBAEkQ3QELIARBgCBqJAAPC0HYlcEAEP8HCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC+gBAQR/IAAgASACEOkEAkACQAJAIAIEQCAAKAJ4IQEgACgCfCEIQQEhBQNAIAdBA2ogCE8NAiAFQQFrIgYgBE8EQCAGIQUMBQsgBCAGayIGQQAgBCAGTxsiBkEBRg0EIAZBAkYNAyABIAMqAgA4AgAgAUEIaiADQQhqKAIANgIAIAFBBGogA0EEaioCADgCACABQRBqIQEgB0EEaiEHIAVBA2ohBSADQQxqIQMgAkEBayICDQALCyAAQQE6AMABDwsgByAHQQRqIAhBmLPBABDqBwALIAVBAWohBQsgBSAEQaizwQAQjAcAC/oBAQR/IAAoAgQhAwJAAkACQAJAIAAtAAAiAEEETSAAQQNHcUUEQCADKAIAIQAgA0EEaigCACIBKAIAIgIEQCAAIAIRAwALIAEoAgQiAQRAIABBBGsoAgAiAkF4cSIEQQRBCCACQQNxIgIbIAFqSQ0CIAJBACAEIAFBJ2pLGw0DIAAQogILIANBBGsoAgAiAEF4cSIBQRBBFCAAQQNxIgAbSQ0DIABBACABQTRPGw0EIAMQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC+oBAgF+An8jAEEQayIDJAACfwJAIAEoAggiBEGAgIAQcUUEQCAEQYCAgCBxDQEgACABEIUFDAILIAApAwAhAkERIQADQCAAIANqQQJrIAKnQQ9xLQDctkU6AAAgAEEBayEAIAJCD1YgAkIEiCECDQALIAFBAUGEtMUAQQIgACADakEBa0ERIABrEMgDDAELIAApAwAhAkERIQADQCAAIANqQQJrIAKnQQ9xLQDJgUI6AAAgAEEBayEAIAJCD1YgAkIEiCECDQALIAFBAUGEtMUAQQIgACADakEBa0ERIABrEMgDCyADQRBqJAAL+wEBBH8CQAJAAkACQAJAIAAtAABBJEcNACAALQAEQQNHDQAgACgCCCIAKAIAIQEgAEEEaigCACICKAIAIgMEQCABIAMRAwALIAIoAgQiAgRAIAFBBGsoAgAiA0F4cSIEQQRBCCADQQNxIgMbIAJqSQ0CIANBACAEIAJBJ2pLGw0DIAEQogILIABBBGsoAgAiAUF4cSICQRBBFCABQQNxIgEbSQ0DIAFBACACQTRPGw0EIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC4cCAgJ/An0CQAJAIAC8IgFBgICABE4EQCABQf////sHSw0BQYF/IQJDAAAAACEAIAFBgICA/ANGDQEMAgsgAEMAAAAAWwRAQwAAgL8gACAAlJUPCyABQQBOBEAgAEMAAABMlLwhAUHofiECDAILIAAgAJNDAAAAAJUhAAsgAA8LIAFBjfarAmoiAUEXdiACarIiA0OAcTE/lCABQf///wNxQfOJ1PkDar5DAACAv5IiACADQ9H3FzeUIAAgAEMAAABAkpUiAyAAIABDAAAAP5SUIgQgAyADlCIAIAAgAJQiAEPu6ZE+lEOqqio/kpQgACAAQyaeeD6UQxPOzD6SlJKSlJIgBJOSkguBAgIEfwF+IwBBMGsiASQAIAApAhAhBSAAKAIMIQIgACgCCCEEIAAoAgAhAwJAAkACQAJAAkACQAJAAkAgACgCBCIADgIAAQILIAINAUEBIQNBACEAQQEhAgwDCyACRQ0BCyABIAU3AiggASACNgIkIAEgBDYCICABIAA2AhwgASADNgIYIAFBDGogAUEYahDsAwwCCyADKAIEIgBBAEgNAiADKAIAIQMgAEUEQEEBIQJBACEADAELIAAQcSICRQ0DCyAABEAgAiADIAD8CgAACyABIAA2AhQgASACNgIQIAEgADYCDAsgAUEMahC6ASABQTBqJAAPC0HYmsgAEP8HCwAL4wEBCH8gASgCCCICIAEoAgQiAyACIANLGyEIIAEoAgAhBSACIQYCQAJAA0AgCCAGIgRGDQEgASAEQQFqIgY2AgggBCAFai0AACIHQeEAayEJIAdBMGtB/wFxQQpJIAlB/wFxQQZJcg0ACyAHQd8ARw0AAkAgAgRAIAIgA08EQCACIANHDQIgAyAETw0EDAILIAIgBWosAABBQEggAyAESXINAQwDCyADIARPDQILIAUgAyACIARBqLLFABC7CQALIABBADYCACAAQQA6AAQPCyAAIAQgAms2AgQgACACIAVqNgIAC/cBAQR/IABBBGoQ6gICQAJAAkACQCAALQAcQQNGBEAgACgCICIAKAIAIQEgAEEEaigCACICKAIAIgMEQCABIAMRAwALIAIoAgQiAgRAIAFBBGsoAgAiA0F4cSIEQQRBCCADQQNxIgMbIAJqSQ0CIANBACAEIAJBJ2pLGw0DIAEQogILIABBBGsoAgAiAUF4cSICQRBBFCABQQNxIgEbSQ0DIAFBACACQTRPGw0EIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC4QCAAJ/AkACQAJAIAJBBWsOBAACAgECCwJAAkACQCABLQAAQeIAaw4FAAQEBAEECyABLQABQeEARg0BDAMLIAEtAAFB6QBHDQIgAS0AAkHsAEcNAiABLQADQeUARw0CIAEtAARB8wBHDQJBAAwDCyABLQACQe4ARw0BIAEtAANB5ABHDQEgAS0ABEHzAEcNAUECDAILIAEtAABB4wBHDQAgAS0AAUHvAEcNACABLQACQeQARw0AIAEtAANB5QBHDQAgAS0ABEHiAEcNACABLQAFQe8ARw0AIAEtAAZB7wBHDQAgAS0AB0HrAEcNAEEBDAELQQMLIQEgAEEAOgAAIAAgAToAAQvxAQEEfyMAQTBrIgIkACACQRhqIgMgACgCACUBECkgAiACQQxqrUKAgICAsAWENwMAIAIgAigCHCIANgIUIAIgAigCGDYCECACIAA2AgwgASgCACABKAIEIAJCATcCJCACQQI2AhwgAkHgjsgANgIYIAIgAjYCICADEMEDIQECQAJAIAIoAgwiAARAIAIoAhAiA0EEaygCACIEQXhxIgVBBEEIIARBA3EiBBsgAGpJDQEgBEEAIAUgAEEnaksbDQIgAxCiAgsgAkEwaiQAIAEPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuJAgEDfwJAAkACQAJAAkAgASkCAEL117zJyMzWszqFIAEpAghC/tvLm/Plucb1AIWEUEUEQCAAQQRqEOoCIAAoAhwiAUUNASAAKAIgIgJBBGsoAgAiA0F4cSIEQQRBCCADQQNxIgMbIAFqSQ0CIANBACAEIAFBJ2pLGw0DIAIQogIMAQsgAEEEahDqAiAAQShqEOMECyAAQQRrKAIAIgFBeHEiAkE4QTwgAUEDcSIBG0kNAiABQQAgAkHcAE8bDQMgABCiAg8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuOAgEDfwJAAkACQAJAIAEpAgBC7bqtts2F1PXjAIUgASkCCEL4gpm9le7Gxbl/hYRQRQRAIAAoAiQhAiAAQQRqEOoCIABBBGsoAgAiA0F4cUEsQTAgA0EDcSIEG0kNASAEQQAgA0HQAE8bDQIgABCiAiACIAEgAigCACgCFBEBAA8LIABBBGoQ6gIgACgCJCIBIAEoAgAoAgARAwAgAEEEaygCACIBQXhxQSxBMCABQQNxIgIbSQ0CIAJBACABQdAATxsNAyAAEKICDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC+8BAQR/AkACQAJAAkAgAC0AAEEDRgRAIAAoAgQiACgCACEBIABBBGooAgAiAigCACIDBEAgASADEQMACyACKAIEIgIEQCABQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyACakkNAiADQQAgBCACQSdqSxsNAyABEKICCyAAQQRrKAIAIgFBeHEiAkEQQRQgAUEDcSIBG0kNAyABQQAgAkE0TxsNBCAAEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvPAgIGfwF+AkACQCAAKAIIIgEgACgCBCICRg0AIAEgAk8NASAAKAIAIgQgAWotAAAiA0EiRiADQdwARnIgA0EfTXINACAEIAFBAWoiBWohA0EAIAIgBWtBeHEiBmshAgNAIAMhASACRQRAIAAgBSAGajYCCAJAIAAoAggiASAAKAIEIgJPDQAgACgCACEEA0AgASAEai0AACIDQSJGIANB3ABGciADQSBJcg0BIAAgAUEBaiIBNgIIIAEgAkcNAAsLDwsgAkEIaiECIAFBCGohAyABKQAAIgdCf4UgB0LcuPHixYuXrtwAhUKBgoSIkKDAgAF9IAdCosSIkaLEiJEihUKBgoSIkKDAgAF9IAdCoMCAgYKEiJAgfYSEg0KAgYKEiJCgwIB/gyIHUA0ACyAAIAEgBGsgB3qnQQN2ajYCCAsPCyABIAJBiJzGABCMBwAL6wEBA38jAEFAaiIDJAAgAyACNgIEIAMgATYCACADIAOtQoCAgIAwhDcDECADIACtQoCAgICwDoQ3AwggA0ICNwI0IANBAjYCLCADQaimxgA2AiggAyADQQhqNgIwIANBHGogA0EoahDsAyADKAIcIQAgAygCICIBIAMoAiQQ6wghAgJAAkAgAARAIAFBBGsoAgAiBEF4cSIFQQRBCCAEQQNxIgQbIABqSQ0BIARBACAFIABBJ2pLGw0CIAEQogILIANBQGskACACDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALiAIBA38jAEEQayICJAACQCAAKAIAIgAoAgAEQCACIABBCGo2AgQgASgCAEHw1cQAQQogASgCBCgCDBEAACEDIAJBADoADSACIAM6AAwgAiABNgIIIAJBCGpByKrHAEEGIABB4NXEABCMBUH61cQAQQ4gAkEEakGAwsQAEIwFIAItAA0iAyACLQAMIgRyIQEgBEEBcSADQQFHcg0BKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAQwCCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQEMAQsgASgCAEGeqscAQRAgASgCBCgCDBEAACEBCyACQRBqJAAgAUEBcQvrAQEEfwJAAkACQAJAIABBDGooAgAiAQRAIABBEGooAgAiAkEEaygCACIDQXhxIgQgAUEEdCIBQQRBCCADQQNxIgMbckkNASADQQAgBCABQSdqSxsNAiACEKICCwJAIABBf0YNACAAIAAoAgRBAWsiATYCBCABDQAgAEEEaygCACIBQXhxQRxBICABQQNxIgIbSQ0DIAJBACABQcAATxsNBCAAEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAv/AQEBfyMAQTBrIgIkAAJAIAApAwBC////////////AINCgICAgICAgPj/AFoEQCACIACtQoCAgIDwAoQ3AxAgASgCACABKAIEIAJCATcCJCACQQE2AhwgAkGg+McANgIYIAIgAkEQajYCICACQRhqEMEDIQAMAQsgAkEAOgAMIAIgATYCCCACIACtQoCAgIDwAoQ3AxAgAkIBNwIkQQEhACACQQE2AhwgAkGg+McANgIYIAIgAkEQajYCICACQQhqQcSSxgAgAkEYahDBAw0AIAItAAxFBEAgASgCAEG/ksYAQQIgASgCBCgCDBEAAA0BC0EAIQALIAJBMGokACAAC+sBAQR/AkACQAJAAkAgASgCKEECRwRAAkAgASgCpAJBgYCAgHhGDQAgASgCrAIiAkEASA0CIAIEQCABKAKoAiEDIAIQcSIBRQ0EIAIEQCABIAMgAvwKAAALIAEgAhCWASABQQRrKAIAIgRBeHEiBUEEQQggBEEDcSIEGyACakkNBSAEQQAgBSACQSdqSxsNBiABEKICQf8BcSICQQhHDQELQQAhAgsgAEEGNgIAIAAgAjoABA8LQayYxwAQ3QkAC0HYmsgAEP8HCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC+cBAQF/IwBBEGsiBiQAAkACQAJAIAEEQCAGQQRqIAEgAyAEIAUgAigCEBEHACAGKAIIIQECQCAGKAIEIgMgBigCDCICTQ0AIANBAnQhAyACRQRAIAFBBGsoAgAiBEF4cSIFQQRBCCAEQQNxIgQbIANqSQ0DIARBACAFIANBJ2pLGw0EIAEQogJBBCEBDAELIAEgA0EEIAJBAnQQuwIiAUUNBAsgACACNgIEIAAgATYCACAGQRBqJAAPC0Gt+cQAQTIQjwoAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHCwAL6AEBBH8jAEEQayICQQhqQQA6AAAgAkEAOwEGIAIgAUEUdi0A3LZFOgAJIAIgAUEEdkEPcS0A3LZFOgANIAIgAUEIdkEPcS0A3LZFOgAMIAIgAUEMdkEPcS0A3LZFOgALIAIgAUEQdkEPcS0A3LZFOgAKIAFBAXJnQQJ2IgMgAkEGaiIFaiIEQfsAOgAAIARBAWtB9QA6AAAgBSADQQJrIgNqQdwAOgAAIAJBDmoiBCABQQ9xLQDctkU6AAAgAEEKOgALIAAgAzoACiAAIAIpAQY3AAAgAkH9ADoADyAAQQhqIAQvAQA7AAAL5AECA38BfiMAQSBrIgIkACACQQg6ABsgAkEIaiABIAJBG2ogASgCgAEQ5AQCQCAAAn8gAi0ACCIDQR1HBEAgAikCDCEFIANFBEAgACAFNwIEQQUMAgsgAigCFCEEQRAQcSIBRQ0CIAEgAzoAACABIAQ2AgwgASAFNwIEIABB7LvEADYCGCAAIAE2AhQgAEGABjsBBCABIAJBCGpBAXIiAy8AADsAASABQQNqIANBAmotAAA6AABBAAwBCyAAIAIpAgw3AgQgAEEMaiACQRRqKAIANgIAQQYLNgIAIAJBIGokAA8LAAvkAQIDfwF+IwBBIGsiAiQAIAJBCjoAGyACQQhqIAEgAkEbaiABKAKAARDkBAJAIAACfyACLQAIIgNBHUcEQCACKQIMIQUgA0UEQCAAIAU3AgRBBQwCCyACKAIUIQRBEBBxIgFFDQIgASADOgAAIAEgBDYCDCABIAU3AgQgAEHsu8QANgIYIAAgATYCFCAAQYAGOwEEIAEgAkEIakEBciIDLwAAOwABIAFBA2ogA0ECai0AADoAAEEADAELIAAgAikCDDcCBCAAQQxqIAJBFGooAgA2AgBBBgs2AgAgAkEgaiQADwsAC4gCAAJ/AkACQAJAIAJBBGsOAgEAAgsCQCABLQAAQeYAayICBEAgAkENRgRADAIFDAQLAAsgAS0AAUHpAEcNAiABLQACQewARw0CIAEtAANB5QBHDQIgAS0ABEHzAEcNAkEADAMLIAEtAAFB6ABHDQEgAS0AAkHhAEcNASABLQADQfAARw0BIAEtAARB5QBHDQFBAwwCCyABLQAAQe0ARw0AAkACQAJAIAEtAAFB4QBrDgkAAwMDAwMDAwEDCyABLQACQfgARg0BDAILIAEtAAJB7gBHDQEgAS0AA0HzAEcNAUEBDAILIAEtAANB8wBHDQBBAgwBC0EECyEBIABBADoAACAAIAE6AAEL0QEBA38jAEEQayICJAAgAkEANgIMIAAgAkEMagJ/IAFBgAFPBEAgAUE/cUGAf3IhAyABQQZ2IQAgAUGAEEkEQCACIAM6AA0gAiAAQcABcjoADEECDAILIAFBDHYhBCAAQT9xQYB/ciEAIAFB//8DTQRAIAIgAzoADiACIAA6AA0gAiAEQeABcjoADEEDDAILIAIgAzoADyACIAA6AA4gAiAEQT9xQYB/cjoADSACIAFBEnZBcHI6AAxBBAwBCyACIAE6AAxBAQsQ6wEgAkEQaiQAC9EBAQN/IwBBEGsiAiQAIAJBADYCDCAAIAJBDGoCfyABQYABTwRAIAFBP3FBgH9yIQMgAUEGdiEAIAFBgBBJBEAgAiADOgANIAIgAEHAAXI6AAxBAgwCCyABQQx2IQQgAEE/cUGAf3IhACABQf//A00EQCACIAM6AA4gAiAAOgANIAIgBEHgAXI6AAxBAwwCCyACIAM6AA8gAiAAOgAOIAIgBEE/cUGAf3I6AA0gAiABQRJ2QXByOgAMQQQMAQsgAiABOgAMQQELENUCIAJBEGokAAvlAQECfyMAQRBrIgUkAAJAAkACQCABBEAgBUEEaiABIAMgBCACKAIQEQYAIAUoAgghAQJAIAUoAgQiAyAFKAIMIgJNDQAgA0ECdCEDIAJFBEAgAUEEaygCACIEQXhxIgZBBEEIIARBA3EiBBsgA2pJDQMgBEEAIAYgA0EnaksbDQQgARCiAkEEIQEMAQsgASADQQQgAkECdBC7AiIBRQ0ECyAAIAI2AgQgACABNgIAIAVBEGokAA8LQa35xABBMhCPCgALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcLAAvkAQEEfwJAAkACQAJAIAAoAggiAQRAIAAoAgwiAkEEaygCACIDQXhxIgRBBEEIIANBA3EiAxsgAWpJDQEgA0EAIAQgAUEnaksbDQIgAhCiAgsCQCAAQX9GDQAgACAAKAIEIgFBAWs2AgQgAUEBRw0AIABBBGsoAgAiAUF4cSICQRhBHCABQQNxIgEbSQ0DIAFBACACQTxPGw0EIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC+gBAQR/IwBBMGsiAiQAIAJBKGoiAyABQUBrKQMANwMAIAJBGGoiBSABQTBq/QADAP0LAwAgAiAB/QADIP0LAwgCQAJAQSgQcSIEBEAgBCAC/QADCP0LAwAgBEEgaiADKQMANwMAIARBEGogBf0AAwD9CwMAIAFBBGoQ6gIgAUEEaygCACIDQXhxQcwAQdAAIANBA3EiBRtJDQEgBUEAIANB8ABPGw0CIAEQogIgAEHsr8cANgIEIAAgBDYCACACQTBqJAAPCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC94BAQR/AkACQAJAAkAgACgCACIBBEAgACgCBCICQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyABakkNASADQQAgBCABQSdqSxsNAiACEKICCyAAKAIMIgEEQCAAKAIQIgBBBGsoAgAiAkF4cSIDIAFBAnQiAUEEQQggAkEDcSICG2pJDQMgAkEAIAMgAUEnaksbDQQgABCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL5wEBBH8CQAJAAkACQCAAKAIAIgEEQCAAKAIEIgJBBGsoAgAiA0F4cSIEQQRBCCADQQNxIgMbIAFqSQ0BIANBACAEIAFBJ2pLGw0CIAIQogILIAAoAgwiAUGAgICAeHJBgICAgHhHBEAgACgCECIAQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyABakkNAyACQQAgAyABQSdqSxsNBCAAEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvQAQEDfwJAAkACQCACIAMgBGsiBUsEQCACIANNDQEgAyAEQQF0ayIGIAJPDQIgAyAEaiIHIAJPDQMgASAFai0AACABIANqLQAAayIFIAVBH3UiBXMgBWtBAXRB/gNxIAEgBmotAAAgASAHai0AAGsiBSAFQR91IgVzIAVrQQF2aiAAQf8BcU0EQEEBIAEgAiADIAQQ6AQaCw8LIAUgAkGI18QAEIwHAAsgAyACQZjXxAAQjAcACyAGIAJBqNfEABCMBwALIAcgAkG418QAEIwHAAvGAQEDfyABQf8AQYB/QfwAQYB/IAAEf0H/AEGAfyABLQACIAEtAAVrIgAgAEGAf0wbIgAgAEH/AE4bBSADCyABLQAEIgQgAS0AAyICa0EDbGoiACAAQYB/TBsiACAAQfwAThtBA2pBA3UgAmpBgAFrIgIgAkGAf0wbIgIgAkH/AE4bQYABczoAAyABQf8AQYB/IARB+wAgACAAQfsAThtBBGpBA3UiAGtBgAFrIgEgAUGAf0wbIgEgAUH/AE4bQYABczoABCAAC+8BAQR/IwBBIGsiACQAQaL5xwAhA0EJIQQCQAJAIAIoAgANACAAQRBqIAIoAgQgAigCCBD7AkGi+ccAIAAoAhQgACgCECICGyEDIAINACAAKAIYIgQNACABQQFBABCXAyECDAELIAAgBDYCDCAAIAM2AgggASgCBCEDIAEoAgAhBANAAkAgAEEQaiAAQQhqEO0DIAAoAhAiBUUNACAAKAIUIQYgACgCHEUEQCABIAUgBhCXAyECDAMLQQEhAiAEIAUgBiADKAIMEQAADQIgBEH9/wMgAygCEBECAEUNAQwCCwtBACECCyAAQSBqJAAgAgvSAQEBfyMAQSBrIgUkACAFQQhqIAMgAyAEQQJ0ahCZAwJAAkAgASACSwRAIAAgAkEYbGoiACgCFCIBQQVPBEAgACgCCCICQQRrKAIAIgNBeHEiBCABQQJ0IgFBBEEIIANBA3EiAxtqSQ0CIANBACAEIAFBJ2pLGw0DIAIQogILIAAgBf0AAgj9CwIAIABBEGogBUEYaikCADcCACAFQSBqJAAPCyACIAFBtMDHABCMBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC9kBAQR/AkACQAJAAkAgACgCDCIBBEAgACgCECICQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyABakkNASADQQAgBCABQSdqSxsNAiACEKICCyAAKAIYIgEEQCAAKAIcIgBBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAFqSQ0DIAJBACADIAFBJ2pLGw0EIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC9kBAQR/AkACQAJAAkAgACgCACIBBEAgACgCBCICQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyABakkNASADQQAgBCABQSdqSxsNAiACEKICCyAAKAIMIgEEQCAAKAIQIgBBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAFqSQ0DIAJBACADIAFBJ2pLGw0EIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC+8BAQN/IwBBEGsiAiQAAkAgACgCAARAIAIgADYCBCABKAIAQcCqxwBBCCABKAIEKAIMEQAAIQAgAkEAOgANIAIgADoADCACIAE2AgggAkEIakHIqscAQQYgAkEEakHolsEAEIwFIAItAA0iAyACLQAMIgRyIQEgBEEBcSADQQFHcg0BKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAQwCCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQEMAQsgASgCAEGeqscAQRAgASgCBCgCDBEAACEBCyACQRBqJAAgAUEBcQvvAQEDfyMAQRBrIgIkAAJAIAAoAgAEQCACIAA2AgQgASgCAEHAqscAQQggASgCBCgCDBEAACEAIAJBADoADSACIAA6AAwgAiABNgIIIAJBCGpByKrHAEEGIAJBBGpBsKrHABCMBSACLQANIgMgAi0ADCIEciEBIARBAXEgA0EBR3INASgCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQEMAgsgACgCAEGls8UAQQEgACgCBCgCDBEAACEBDAELIAEoAgBBnqrHAEEQIAEoAgQoAgwRAAAhAQsgAkEQaiQAIAFBAXEL+AEBA38jAEEQayICJAAgAiAANgIEIAEoAgBB7aXHAEEGIAEoAgQoAgwRAAAhAyACQQA6AA0gAiADOgAMIAIgATYCCCACQQhqQbimxwBBDyAAQRBqQZimxwAQjAVBx6bHAEEQIABBGGpBmKbHABCMBUHXpscAQQkgAkEEakGopscAEIwFIQEgAi0ADSIDIAItAAwiBHIhAAJAIARBAXEgA0EBR3INACABKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAAwBCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQALIAJBEGokACAAQQFxC8wBAQF/IwBBQGoiAiQAIAJBBGogARCfAwJAIAItAARBAUYEQCAAIAIoAgg2AgQgAEEENgIADAELIAItAAVFBEAgAEEDNgIADAELIAJBBGogASgCABCDASACKAIEQQNGBEAgACACKAIINgIEIABBBDYCAAwBCyAAIAL9AAIE/QsCACAAQThqIAJBPGooAgA2AgAgAEEwaiACQTRqKQIANwIAIABBIGogAkEkav0AAgD9CwIAIABBEGogAkEUav0AAgD9CwIACyACQUBrJAAL1wEBA38jAEEQayIDJAACQAJAAkACQCAAKAIMBEAgACEBDAELIANBCGogASgCDCABKAIQIAEoAhQQ+QEgAygCDCECIAMoAgghBEEUEHEiAUUNASABIAApAgA3AgAgAUEIaiAAQQhqKAIANgIAIAEgAjYCECABIAQ2AgwgAEEEaygCACICQXhxIgRBGEEcIAJBA3EiAhtJDQIgAkEAIARBPE8bDQMgABCiAgsgA0EQaiQAIAEPCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC9gBAQJ/IwBBEGsiBSQAIAACfwJAIANBASAEGwRAIAEoAhQiAyABKAIQIgRPDQEgASgCDCEGA0AgAyAGai0AAEEwa0H/AXFBCk8NAiABIANBAWoiAzYCFCADIARHDQALDAELIAVBCGogASgCDCABKAIQIAEoAhQQ+QEgBSgCDCECIAUoAgghA0EUEHEiAQRAIAEgAzYCDCABQQ42AgAgACABNgIEIAEgAjYCEEEBDAILAAsgAEQAAAAAAAAAAEQAAAAAAAAAgCACGzkDCEEACzYCACAFQRBqJAAL1QEBBH8gAEEEahDqAgJAAkACQAJAIAAoAhwiAQRAIAAoAiAiAkEEaygCACIDQXhxIgRBBEEIIANBA3EiAxsgAWpJDQEgA0EAIAQgAUEnaksbDQIgAhCiAgsgAEEoahDjBCAAQQRrKAIAIgFBeHEiAkE4QTwgAUEDcSIBG0kNAiABQQAgAkHcAE8bDQMgABCiAg8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvtAQECfyMAQRBrIgkkACAAKAIAQYipxwBBBCAAKAIEKAIMEQAAIQogCUEAOgANIAkgCjoADCAJIAA2AgggCUEIakGMqccAQQkgASACEIwFQZWpxwBBCCADIAQQjAVBnanHAEEGIAUgBhCMBUGjqccAQQogByAIEIwFIQEgCS0ADSICIAktAAwiA3IhAAJAIANBAXEgAkEBR3INACABKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAAwBCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQALIAlBEGokACAAQQFxC7wBAQN/IwBBIGsiAyQAAkACf0EAIAIgASACaiIESw0AGkEAQQggBCAAKAIAIgJBAXQiASABIARJGyIEIARBCE0bIgRBAEgNABpBACEBIAMgAgR/IAMgAjYCHCADIAAoAgQ2AhRBAQUgAQs2AhggA0EIakEBIAQgA0EUahCFByADKAIIQQFHDQEgAygCECEFIAMoAgwLIAVBnJbIABCTCQALIAMoAgwhASAAIAQ2AgAgACABNgIEIANBIGokAAvpAQEDfyMAQRBrIgIkACACIAAoAgAiADYCBCABKAIAQeynxwBBBiABKAIEKAIMEQAAIQMgAkEAOgANIAIgAzoADCACIAE2AgggAkEIakHyp8cAQQQgAEEEakG0lsEAEIwFQfanxwBBBSACQQRqQcSWwQAQjAUhACACLQANIgMgAi0ADCIEciEBAkAgBEEBcSADQQFHcg0AIAAoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEBDAELIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAQsgAkEQaiQAIAFBAXELxwEBAX8jAEEwayICJAACfyAALQAEQQFGBEAgAiAALQAFOgAHIAJBAjYCHCACQfiKwwA2AhggAkICNwIkIAIgAK1CgICAgBCENwMQIAIgAkEHaq1CgICAgPAEhDcDCCACIAJBCGo2AiAgASgCACABKAIEIAJBGGoQwQMMAQsgAkEBNgIcIAJBtIvDADYCGCACQgE3AiQgAiAArUKAgICAEIQ3AwggAiACQQhqNgIgIAEoAgAgASgCBCACQRhqEMEDCyACQTBqJAAL5gEBBH8jAEEgayIAJABBASECAkAgASgCACIDQaiayABBDyABKAIEIgUoAgwiBBEAAA0AAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBBEAAA0CIAFBmJbIAEECEJcDRQ0BDAILIANB24HCAEECIAQRAAANASAAQQE6AA8gACAFNgIEIAAgAzYCACAAQeCBwgA2AhQgACABKQIINwIYIAAgAEEPajYCCCAAIAA2AhAgAEEQakGYlsgAQQIQlwMNASAAQdmBwgBBAhCvAw0BCyADQd6OyABBASAEEQAAIQILIABBIGokACACC+YBAQR/IwBBIGsiACQAQQEhAgJAIAEoAgAiA0HY8sQAQREgASgCBCIFKAIMIgQRAAANAAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAQRAAANAiABQZiWyABBAhCXA0UNAQwCCyADQduBwgBBAiAEEQAADQEgAEEBOgAPIAAgBTYCBCAAIAM2AgAgAEHggcIANgIUIAAgASkCCDcCGCAAIABBD2o2AgggACAANgIQIABBEGpBmJbIAEECEJcDDQEgAEHZgcIAQQIQrwMNAQsgA0HejsgAQQEgBBEAACECCyAAQSBqJAAgAgvpAQEDfyMAQRBrIgIkACACIAAoAgAiADYCBCABKAIAQeynxwBBBiABKAIEKAIMEQAAIQMgAkEAOgANIAIgAzoADCACIAE2AgggAkEIakHyp8cAQQQgAEEEakHMp8cAEIwFQfanxwBBBSACQQRqQdynxwAQjAUhACACLQANIgMgAi0ADCIEciEBAkAgBEEBcSADQQFHcg0AIAAoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEBDAELIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAQsgAkEQaiQAIAFBAXEL2AECBX8BfiMAQTBrIgIkACABKAIAQYCAgIB4RgRAIAEoAgwgAkEANgIUIAJCgICAgBA3AgwoAgAiAykCECEHIAMoAgwhBCADKAIIIQUgAygCACEGIAMoAgQhAyACIAc3AiggAiAENgIkIAIgBTYCICACIAM2AhwgAiAGNgIYIAJBDGpBzIXIACACQRhqEMEDGiACQQhqIAJBFGooAgAiAzYCACACIAIpAgwiBzcDACABQQhqIAM2AgAgASAHNwIACyAAQdyNyAA2AgQgACABNgIAIAJBMGokAAvpAQEDfyMAQRBrIgIkACACIAAoAgAiAEEEajYCBCABKAIAQeiXyABBCSABKAIEKAIMEQAAIQMgAkEAOgANIAIgAzoADCACIAE2AgggAkEIakHxl8gAQQsgAEHIl8gAEIwFQfyXyABBCSACQQRqQdiXyAAQjAUhACACLQANIgMgAi0ADCIEciEBAkAgBEEBcSADQQFHcg0AIAAoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEBDAELIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAQsgAkEQaiQAIAFBAXELugEBA38jAEEgayIDJAACQAJ/QQAgAiABIAJqIgRLDQAaQQBBCCAEIAAoAgAiAkEBdCIBIAEgBEkbIgQgBEEITRsiBEEASA0AGkEAIQEgAyACBH8gAyACNgIcIAMgACgCBDYCFEEBBSABCzYCGCADQQhqIAQgA0EUahDdByADKAIIQQFHDQEgAygCECEFIAMoAgwLIAVB/O7BABCTCQALIAMoAgwhASAAIAQ2AgAgACABNgIEIANBIGokAAu6AQEDfyMAQSBrIgMkAAJAAn9BACACIAEgAmoiBEsNABpBAEEIIAQgACgCACICQQF0IgEgASAESRsiBCAEQQhNGyIEQQBIDQAaQQAhASADIAIEfyADIAI2AhwgAyAAKAIENgIUQQEFIAELNgIYIANBCGogBCADQRRqEN0HIAMoAghBAUcNASADKAIQIQUgAygCDAsgBUGclsgAEJMJAAsgAygCDCEBIAAgBDYCACAAIAE2AgQgA0EgaiQAC7wBAQV/IwBBIGsiAiQAIAAoAgAiBEH/////AEsEQEEAQQAgARCTCQALAkBBBCAEQQF0IgUgBUEETRsiBUEDdCIGQfz///8HTQR/IAIgBAR/IAIgBEEDdDYCHCACIAAoAgQ2AhRBBAUgAws2AhggAkEIakEEIAYgAkEUahCFByACKAIIQQFHDQEgAigCECEDIAIoAgwFIAMLIAMgARCTCQALIAIoAgwhASAAIAU2AgAgACABNgIEIAJBIGokAAu8AQEFfyMAQSBrIgIkACAAKAIAIgRB/////wFLBEBBAEEAIAEQkwkACwJAQQQgBEEBdCIFIAVBBE0bIgVBAnQiBkH8////B00EfyACIAQEfyACIARBAnQ2AhwgAiAAKAIENgIUQQQFIAMLNgIYIAJBCGpBBCAGIAJBFGoQhQcgAigCCEEBRw0BIAIoAhAhAyACKAIMBSADCyADIAEQkwkACyACKAIMIQEgACAFNgIAIAAgATYCBCACQSBqJAALuwEBBX8jAEEgayICJAAgACgCACIEQf///x9LBEBBAEEAIAEQkwkACwJAQQQgBEEBdCIFIAVBBE0bIgVBBXQiBkH4////B00EfyACIAQEfyACIARBBXQ2AhwgAiAAKAIENgIUQQgFIAMLNgIYIAJBCGpBCCAGIAJBFGoQhQcgAigCCEEBRw0BIAIoAhAhAyACKAIMBSADCyADIAEQkwkACyACKAIMIQEgACAFNgIAIAAgATYCBCACQSBqJAAL5AEBA38jAEEQayICJAAgAiAAQQRqNgIEIAEoAgBB6JfIAEEJIAEoAgQoAgwRAAAhAyACQQA6AA0gAiADOgAMIAIgATYCCCACQQhqQfGXyABBCyAAQbSWwQAQjAVB/JfIAEEJIAJBBGpB1JbBABCMBSEAIAItAA0iAyACLQAMIgRyIQECQCAEQQFxIANBAUdyDQAgACgCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQEMAQsgACgCAEGls8UAQQEgACgCBCgCDBEAACEBCyACQRBqJAAgAUEBcQvkAQEDfyMAQRBrIgIkACABKAIAQef7xwBBBSABKAIEKAIMEQAAIQMgAkEAOgAJIAIgAzoACCACIAE2AgQgAiAANgIMIAJBBGpB7LXHAEEHIAJBDGpBiKDBABCMBUGEtscAQQYgAEEIakGYoMEAEIwFIQAgAi0ACSIDIAItAAgiBHIhAQJAIARBAXEgA0EBR3INACAAKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAQwBCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQELIAJBEGokACABQQFxC+QBAQN/IwBBEGsiAiQAIAEoAgBB5/vHAEEFIAEoAgQoAgwRAAAhAyACQQA6AAkgAiADOgAIIAIgATYCBCACIAA2AgwgAkEEakHstccAQQcgAkEMakGIoMEAEIwFQYS2xwBBBiAAQQhqQaigwQAQjAUhACACLQAJIgMgAi0ACCIEciEBAkAgBEEBcSADQQFHcg0AIAAoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEBDAELIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAQsgAkEQaiQAIAFBAXEL5AEBA38jAEEQayICJAAgAiAANgIEIAEoAgBB7KfHAEEGIAEoAgQoAgwRAAAhAyACQQA6AA0gAiADOgAMIAIgATYCCCACQQhqQfKnxwBBBCAAQQRqQaDAxAAQjAVB9qfHAEEFIAJBBGpBsMDEABCMBSEAIAItAA0iAyACLQAMIgRyIQECQCAEQQFxIANBAUdyDQAgACgCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQEMAQsgACgCAEGls8UAQQEgACgCBCgCDBEAACEBCyACQRBqJAAgAUEBcQuvAQEEfyMAQRBrIgMkAEEDIQIgACgCACwAACIEIATAQQd1IgBzIABrIgBB/wFxIgVBCk8EQEEBIQIgAyAAQQF0IgAgAEE4aiAFQeQASRtB/gFxLwC4ukU7AA4gBUHjAEshAAtBACAEIABB/wFxIgAbRQRAIAJBAWsiAiADQQ1qaiAAQQF0LQC5ukU6AAALIAEgBEEATkEBQQAgA0ENaiACakEDIAJrEMgDIANBEGokAAvkAQEDfyMAQRBrIgIkACACIABBBGo2AgQgASgCAEHol8gAQQkgASgCBCgCDBEAACEDIAJBADoADSACIAM6AAwgAiABNgIIIAJBCGpB8ZfIAEELIABBmJzFABCMBUH8l8gAQQkgAkEEakGonMUAEIwFIQAgAi0ADSIDIAItAAwiBHIhAQJAIARBAXEgA0EBR3INACAAKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAQwBCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQELIAJBEGokACABQQFxC8kBAgN/AX4jAEEQayIEJAACQCAAKAIQIgNFBEAMAQtBASECIANB+LTFAEEBEJcDDQAgAVAEQCADQZKyxQBBARCXAyECDAELAkAgASAANQIUIgVYBEAgBSABfSIBQhpUDQEgA0GSssUAQQEQlwMNAiAEIAE3AwggBEEIaiADEIUFIQIMAgsgA0HqssUAQRAQlwMNAUEAIQIgAEEAOgAEIABBADYCAAwBCyAEIAGnQeEAajYCBCAEQQRqIAMQqAUhAgsgBEEQaiQAIAILuwEBBX8jAEEgayICJAAgACgCACIEQf///x9LBEBBAEEAIAEQkwkACwJAQQQgBEEBdCIFIAVBBE0bIgVBBXQiBkH8////B00EfyACIAQEfyACIARBBXQ2AhwgAiAAKAIENgIUQQQFIAMLNgIYIAJBCGpBBCAGIAJBFGoQhQcgAigCCEEBRw0BIAIoAhAhAyACKAIMBSADCyADIAEQkwkACyACKAIMIQEgACAFNgIAIAAgATYCBCACQSBqJAAL5AEBA38jAEEQayICJAAgAiAAQRBqNgIEIAEoAgBBnKjHAEENIAEoAgQoAgwRAAAhAyACQQA6AA0gAiADOgAMIAIgATYCCCACQQhqQamoxwBBBiAAQfynxwAQjAVBr6jHAEEKIAJBBGpBjKjHABCMBSEAIAItAA0iAyACLQAMIgRyIQECQCAEQQFxIANBAUdyDQAgACgCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQEMAQsgACgCAEGls8UAQQEgACgCBCgCDBEAACEBCyACQRBqJAAgAUEBcQvkAQEDfyMAQRBrIgIkACACIABBEGo2AgQgASgCAEG5qMcAQQ0gASgCBCgCDBEAACEDIAJBADoADSACIAM6AAwgAiABNgIIIAJBCGpBqajHAEEGIABB/KfHABCMBUGvqMcAQQogAkEEakGMqMcAEIwFIQAgAi0ADSIDIAItAAwiBHIhAQJAIARBAXEgA0EBR3INACAAKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAQwBCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQELIAJBEGokACABQQFxC+QBAQN/IwBBEGsiAiQAIAIgAEEMajYCBCABKAIAQZCqxwBBDiABKAIEKAIMEQAAIQMgAkEAOgANIAIgAzoADCACIAE2AgggAkEIakHI+8cAQQQgAEGAqscAEIwFQa+oxwBBCiACQQRqQYyoxwAQjAUhACACLQANIgMgAi0ADCIEciEBAkAgBEEBcSADQQFHcg0AIAAoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEBDAELIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAQsgAkEQaiQAIAFBAXEL5AEBA38jAEEQayICJAAgAiAAQRBqNgIEIAEoAgBBuKzHAEEQIAEoAgQoAgwRAAAhAyACQQA6AA0gAiADOgAMIAIgATYCCCACQQhqQamoxwBBBiAAQfynxwAQjAVByPvHAEEEIAJBBGpBqKzHABCMBSEAIAItAA0iAyACLQAMIgRyIQECQCAEQQFxIANBAUdyDQAgACgCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQEMAQsgACgCAEGls8UAQQEgACgCBCgCDBEAACEBCyACQRBqJAAgAUEBcQvkAQEDfyMAQRBrIgIkACABKAIAQef7xwBBBSABKAIEKAIMEQAAIQMgAkEAOgAJIAIgAzoACCACIAE2AgQgAiAANgIMIAJBBGpB7LXHAEEHIAJBDGpB3LXHABCMBUGEtscAQQYgAEEMakH0tccAEIwFIQAgAi0ACSIDIAItAAgiBHIhAQJAIARBAXEgA0EBR3INACAAKAIAIgAtAApBgAFxRQRAIAAoAgBB/7PFAEECIAAoAgQoAgwRAAAhAQwBCyAAKAIAQaWzxQBBASAAKAIEKAIMEQAAIQELIAJBEGokACABQQFxC74BAgN/AX4jAEEQayIDJAAgACgCACEAAkAgASkCCCIFpyICQYCAgARxRQ0AIAJBgICAwABxBEAgAkGAgIAIciECDAELIAFBCjsBDCACQYCAgMgAciECCyABIAJBgICABHI2AghBCSECA0AgAiADakEGaiAAQQ9xLQDctkU6AAAgAkEBayECIABBEEkgAEEEdiEARQ0ACyABQQFBhLTFAEECIAIgA2pBB2pBCSACaxDIAyABIAU3AgggA0EQaiQAC+QBAQN/IwBBEGsiAiQAIAIgAEEMajYCBCABKAIAQaiYyABBDSABKAIEKAIMEQAAIQMgAkEAOgANIAIgAzoADCACIAE2AgggAkEIakG1mMgAQQUgAEGImMgAEIwFQbqYyABBBSACQQRqQZiYyAAQjAUhACACLQANIgMgAi0ADCIEciEBAkAgBEEBcSADQQFHcg0AIAAoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEBDAELIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAQsgAkEQaiQAIAFBAXELugEBBX8jAEEgayICJAAgACgCACIEQf////8BSwRAQQBBACABEJMJAAsCQEEEIARBAXQiBSAFQQRNGyIFQQJ0IgZB/P///wdNBH8gAiAEBH8gAiAEQQJ0NgIcIAIgACgCBDYCFEEEBSADCzYCGCACQQhqIAYgAkEUahCBByACKAIIQQFHDQEgAigCECEDIAIoAgwFIAMLIAMgARCTCQALIAIoAgwhASAAIAU2AgAgACABNgIEIAJBIGokAAvLAQEEfyAAQQRqEOoCAkACQAJAAkAgACgCHCIBBEAgACgCICICQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyABakkNASADQQAgBCABQSdqSxsNAiACEKICCyAAQQRrKAIAIgFBeHFBLEEwIAFBA3EiAhtJDQIgAkEAIAFB0ABPGw0DIAAQogIPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALrAEBBH8jAEEQayIDJABBAyECIAAsAAAiBCAEwEEHdSIAcyAAayIAQf8BcSIFQQpPBEBBASECIAMgAEEBdCIAIABBOGogBUHkAEkbQf4BcS8AuLpFOwAOIAVB4wBLIQALQQAgBCAAQf8BcSIAG0UEQCACQQFrIgIgA0ENamogAEEBdC0AubpFOgAACyABIARBAE5BAUEAIANBDWogAmpBAyACaxDIAyADQRBqJAAL1AEAAkACQCABBEAgACAELQAIOgAAIAFBAWsiAUEHTQRAQQBBCCABQcjjxAAQ6gcACyAAIAQtABE6AAEgACAELQAaOgACIAAgBC0AIzoAAyAAIAQtACw6AAQgACAELQA1OgAFIAAgBC0APjoABiAAIAQtAEc6AAcgACAELQBQOgAIIAMgBUEDdCIASQ0CIAMgAGsiAUEHSw0BQQBBCCABQdjjxAAQ6gcAC0EAQQBBuOPEABCMBwALIAAgAmogBCkASTcAAA8LIAAgAyADQejjxAAQ6gcAC9ABAgF/AX4jAEEwayICJAACfwJAAkACQCAAKAIAKAIAIgAoAgBBAWsOAgECAAsgAiAAKAIENgIAIAIgACgCCDYCBCACQoCAgIAQIgMgAkEEaq2ENwMQIAIgAyACrYQ3AwggASgCACABKAIEIAJCAjcCJCACQQI2AhwgAkHYnMUANgIYIAIgAkEIajYCICACQRhqEMEDDAILIAEoAgBB6JzFAEEdIAEoAgQoAgwRAAAMAQsgASgCAEGFncUAQTEgASgCBCgCDBEAAAsgAkEwaiQAC7cBAgN/BH4gASgCBCICrSEFAkACQCACQv////8PIAEpAwgiBiAGQv////8PWhunayIEQQAgAiAETxtBAk8EQCABKAIAIAYgBSAFIAZWG6dqLwAAIQNBBCECDAELQaiQyAApAwAiCEIIiCEHIAinIQIgCEL/AYNCBFINAQsgBkICfCEFCyABIAU3AwggAkH/AXFBBEcEQCAAIAKtQv8BgyAHQgiGhDcCAA8LIABBBDoAACAAIAM7AQILtwECBH4Ef0EEIQYgASgCBCIIrSECAkACQCAIQv////8PIAEpAwgiAyADQv////8PWhunayIJQQAgCCAJTxtBBE8EQCABKAIAIAMgAiACIANWG6dqKAAAIQcMAQtBqJDIACkDACIFQgiIIQQgBachBiAFQv8Bg0IEUg0BCyADQgR8IQILIAEgAjcDCCAGQf8BcUEERwRAIAAgBq1C/wGDIARCCIaENwIADwsgAEEEOgAAIAAgBzYCBAugCAMDfwF+AW8jAEEgayIFJABBlLvJAEGUu8kAKAIAIgZBAWo2AgACQCAGQQBIDQBBkLvJAC0AAEUEQEGQu8kAQQE6AABBjLvJAEGMu8kAKAIAQQFqNgIAQZi7yQAoAgAiBkEASA0BQZi7yQAgBkEBajYCAEGYu8kAQZy7yQAoAgAEfyAFQQhqIAAgASgCFBEBACAFIAQ6AB0gBSADOgAcIAUgAjYCGCAFIAUpAwg3AhAgBUEQaiEAIwBB0ABrIgIkACACQQA2AgwgAkKAgICAEDcCBAJAAkACQAJAAkAgAkEEaiIEQZiMyABBDBDiBw0AIAIgACgCCCIBKQIANwIQIAIgAUEMaq1CgICAgBCENwMoIAIgAUEIaq1CgICAgBCENwMgIAIgAkEQaq1CgICAgKABhDcDGCACQgM3AjwgAkEDNgI0IAJBpIzIADYCMCACIAJBGGo2AjggBEHU8cEAIAJBMGoiBBDBAw0AIAQgACgCACIBIAAoAgQoAgwiBREBACABIQACQCACKQMwQu26rbbNhdT14wCFIAIpAzhC+IKZvZXuxsW5f4WEUAR/QQQFIAQgACAFEQEAIAIpAzBC9de8ycjM1rM6hSACKQM4Qv7by5vz5bnG9QCFhEIAUg0BIABBBGohAEEICyABaigCACEBIAAoAgAhACACQQRqIgRByIXIAEECEOIHDQEgBCAAIAEQ4gcNAQsgAkE4aiACQQxqKAIAIgA2AgAgAiACKQIEIgg3AzAgCKciBiAAa0EJTQRAIAJBMGogAEEKEPgFIAIoAjAhBiACKAI4IQALIAIoAjQiBCAAaiIBQcjxwQApAAA3AAAgAUEIakHQ8cEALwAAOwAAIAIgAEEKaiIANgI4ECAhCRDaBCIBIAkmASACQRhqIAElARAhIAIoAhghByACKAIcIgUgBiAAa0sEQCACQTBqIAAgBRD4BSACKAIwIQYgAigCNCEEIAIoAjghAAsgBQRAIAAgBGogByAF/AoAAAsgAiAAIAVqIgA2AjggBiAAa0EBTQRAIAJBMGogAEECEPgFIAIoAjQhBCACKAI4IQALIAAgBGpBihQ7AAAgAiAAQQJqIgA2AjggACACKAIwIgZJBEAgBCAGQQEgABC7AiIERQ0CCyAEIAAQIiAFBEAgB0EEaygCACIAQXhxIgRBBEEIIABBA3EiABsgBWpJDQMgAEEAIAQgBUEnaksbDQQgBxCiAgsgAUGECE8EQCABEJsHCyACQdAAaiQADAQLQaCexgBBNyACQTBqQezxwQBB2J7GABDgBgsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBmLvJACgCAEEBawUgBgs2AgBBkLvJAEEAOgAAIANFDQEACyAFIAAgASgCGBEBAAsAC7YBAQZ/IwBBIGsiASQAAkACQCAAKAIAIgNB////H0sNAEEEIANBAXQiBCAEQQRNGyIEQQV0IgVB+P///wdLDQAgASADBH8gASADQQV0NgIcIAEgACgCBDYCFEEIBSACCzYCGCABQQhqQQggBSABQRRqEIUHIAEoAghBAUcNASABKAIQIQYgASgCDCECCyACIAZByOPBABCTCQALIAEoAgwhAiAAIAQ2AgAgACACNgIEIAFBIGokAAvFAQEEfyMAQSBrIgMkACADQRhqIgIgAUEsaikCADcDACADIAH9AAIc/QsDCAJAAkBBGBBxIgQEQCAEIAP9AAMI/QsCACAEQRBqIAIpAwA3AgAgAUEEahDqAiABQQRrKAIAIgJBeHEiBUE4QTwgAkEDcSICG0kNASACQQAgBUHcAE8bDQIgARCiAiAAQaCxxwA2AgQgACAENgIAIANBIGokAA8LAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALrgEBBX8jAEEgayIBJAACQCAAKAIAIgJBksmkEksEf0EABUEEIAJBAXQiAyADQQRNGyIEQRxsIQVBACEDIAEgAgR/IAEgAkEcbDYCHCABIAAoAgQ2AhRBBAUgAws2AhggAUEIakEEIAUgAUEUahCFByABKAIIQQFHDQEgASgCECEAIAEoAgwLIABB0OXBABCTCQALIAEoAgwhAiAAIAQ2AgAgACACNgIEIAFBIGokAAuwAQEFfwJAAkAgACgCBCICIAAoAgAiAUcEQCACIAFrIQIgAUEMbCAAakEMaiEAA0AgAEEEaygCACIBBEAgACgCACIEQQRrKAIAIgNBeHEiBSABQQJ0IgFBBEEIIANBA3EiAxtqSQ0DIANBACAFIAFBJ2pLGw0EIAQQogILIABBDGohACACQQFrIgINAAsLDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALwgEBBn8jAEEgayICJAACQAJAAkAgARC4CiIEQf////8DSw0AIARBAnQiA0H9////B08NAAJAIANFBEBBBCEDDAELIAQhBiADEHEiA0UNAgsgARC4CiEFIAEQuAohByACIAU2AgQgAiAHNgIAIAUgB0cNAiADIAUgARDhCSAAIAQ2AgggACADNgIEIAAgBjYCACACQSBqJAAPC0Hg+cQAEP8HCwALIAJBADYCCEEAIAIgAkEEaiACQQhqQeD5xAAQ9QcAC78BAQR/IwBBEGsiAiQAIAJBCGoiAyABQSRqKAIANgIAIAIgASkCHDcDAAJAAkBBDBBxIgQEQCAEIAIpAwA3AgAgBEEIaiADKAIANgIAIAFBBGoQ6gIgAUEEaygCACIDQXhxQSxBMCADQQNxIgUbSQ0BIAVBACADQdAATxsNAiABEKICIABB+JjBADYCBCAAIAQ2AgAgAkEQaiQADwsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAu/AQEEfyMAQRBrIgIkACACQQhqIgMgAUEkaigCADYCACACIAEpAhw3AwACQAJAQQwQcSIEBEAgBCACKQMANwIAIARBCGogAygCADYCACABQQRqEOoCIAFBBGsoAgAiA0F4cUEsQTAgA0EDcSIFG0kNASAFQQAgA0HQAE8bDQIgARCiAiAAQbyYwQA2AgQgACAENgIAIAJBEGokAA8LAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALvwEBBH8jAEEQayICJAAgAkEIaiIDIAFBJGooAgA2AgAgAiABKQIcNwMAAkACQEEMEHEiBARAIAQgAikDADcCACAEQQhqIAMoAgA2AgAgAUEEahDqAiABQQRrKAIAIgNBeHFBLEEwIANBA3EiBRtJDQEgBUEAIANB0ABPGw0CIAEQogIgAEG0mcEANgIEIAAgBDYCACACQRBqJAAPCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC78BAQR/IwBBEGsiAiQAIAJBCGoiAyABQSRqKAIANgIAIAIgASkCHDcDAAJAAkBBDBBxIgQEQCAEIAIpAwA3AgAgBEEIaiADKAIANgIAIAFBBGoQ6gIgAUEEaygCACIDQXhxQSxBMCADQQNxIgUbSQ0BIAVBACADQdAATxsNAiABEKICIABBrJrBADYCBCAAIAQ2AgAgAkEQaiQADwsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuvAQEDfyAAAn8CQAJAIAIgBEsEQEEKIQYDQCABIARBA3RqIggvAQAiBwRAIAdBAmsNAwwECyAGQQFqIQYgA0EBcSEHIANBAXYhAyAIKAIEIAQgB2pqIgQgAkkNAAsLIAQgAkHctcQAEIwHAAtBDyAFLQAgIgEgBkH/AXFJDQEaIAUgASAGazoAICAAIAgvAQI7AQIgBSAFKQMAIAatiDcDACAAQR06AAAPC0EOCzoAAAuvAQEDfyAAAn8CQAJAIAIgBEsEQEEKIQYDQCABIARBA3RqIggvAQAiBwRAIAdBAmsNAwwECyAGQQFqIQYgA0EBcSEHIANBAXYhAyAIKAIEIAQgB2pqIgQgAkkNAAsLIAQgAkHctcQAEIwHAAtBDyAFLQAMIgEgBkH/AXFJDQEaIAUgASAGazoADCAAIAgvAQI7AQIgBSAFKQMAIAatiDcDACAAQR06AAAPC0EOCzoAAAvQAQEDfyMAQRBrIgIkACACIAA2AgQgASgCAEGQzsQAQQ8gASgCBCgCDBEAACEAIAJBADoADSACIAA6AAwgAiABNgIIIAJBCGpByPvHAEEEIAJBBGpBgM7EABCMBSEAIAItAA0iAyACLQAMIgRyIQECQCAEQQFxIANBAUdyDQAgACgCACIALQAKQYABcUUEQCAAKAIAQf+zxQBBAiAAKAIEKAIMEQAAIQEMAQsgACgCAEGls8UAQQEgACgCBCgCDBEAACEBCyACQRBqJAAgAUEBcQuwAQEFfyMAQSBrIgEkAAJAIAAoAgAiAkHQjtQDSwR/QQAFQQQgAkEBdCIDIANBBE0bIgRBjAFsIQVBACEDIAEgAgR/IAEgAkGMAWw2AhwgASAAKAIENgIUQQQFIAMLNgIYIAFBCGpBBCAFIAFBFGoQhQcgASgCCEEBRw0BIAEoAhAhACABKAIMCyAAQfD/xgAQkwkACyABKAIMIQIgACAENgIAIAAgAjYCBCABQSBqJAAL0AEBA38jAEEQayICJAAgAiAANgIEIAEoAgBBmK3HAEENIAEoAgQoAgwRAAAhACACQQA6AA0gAiAAOgAMIAIgATYCCCACQQhqQcj7xwBBBCACQQRqQYitxwAQjAUhACACLQANIgMgAi0ADCIEciEBAkAgBEEBcSADQQFHcg0AIAAoAgAiAC0ACkGAAXFFBEAgACgCAEH/s8UAQQIgACgCBCgCDBEAACEBDAELIAAoAgBBpbPFAEEBIAAoAgQoAgwRAAAhAQsgAkEQaiQAIAFBAXELvwEBBH8jAEEQayICJAAgAkEIaiIDIAFBJGooAgA2AgAgAiABKQIcNwMAAkACQEEMEHEiBARAIAQgAikDADcCACAEQQhqIAMoAgA2AgAgAUEEahDqAiABQQRrKAIAIgNBeHFBLEEwIANBA3EiBRtJDQEgBUEAIANB0ABPGw0CIAEQogIgAEHksMcANgIEIAAgBDYCACACQRBqJAAPCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC6wBAQV/IwBBIGsiAiQAIAAoAgAiA0HVqtUqSwRAQQBBACABEJMJAAtBBCADQQF0IgQgBEEETRsiBUEMbCEGQQAhBCACIAMEfyACIANBDGw2AhwgAiAAKAIENgIUQQQFIAQLNgIYIAJBCGpBBCAGIAJBFGoQhQcgAigCCEEBRgRAIAIoAgwgAigCECABEJMJAAsgAigCDCEBIAAgBTYCACAAIAE2AgQgAkEgaiQAC6cDAQh/IwBBEGsiAyQAIAAoAgQhBSAAKAIAIQBBASEHIAEoAgBB6LLFAEEBIAEoAgQoAgwRAAAhAiADQQA6AAkgAyACOgAIIAMgATYCBAJAAkAgBQRAA0AgAyAANgIMIANBDGohCCMAQSBrIgEkAEEBIQYCQCADQQRqIgQtAAQNACAELQAFIQkCQCAEKAIAIgItAApBgAFxRQRAIAlBAXFFDQEgAigCAEHnkMYAQQIgAigCBCgCDBEAAEUNAQwCCyAJQQFxRQRAIAIoAgBB3PjHAEEBIAIoAgQoAgwRAAANAgsgAUEBOgAPIAFB4IHCADYCFCABIAIpAgA3AgAgASACKQIINwIYIAEgAUEPajYCCCABIAE2AhAgCCABQRBqEO8HDQEgASgCEEHZgcIAQQIgASgCFCgCDBEAACEGDAELIAggAhDvByEGCyAEQQE6AAUgBCAGOgAEIAFBIGokACAAQQFqIQAgBUEBayIFDQALIAMtAAhFDQEMAgsgAg0BCyADKAIEIgAoAgBB6bLFAEEBIAAoAgQoAgwRAAAhBwsgA0EQaiQAIAcLnQEBBH8gACgCACECIAAgARCiBgJAIAAoAggiBSACIAAoAgwiA2tNDQAgAiAFayIBIAMgAWsiA0sgACgCACIEIAJrIANPcUUEQCAEIAFrIQIgAUEMbCIBBEAgACgCBCIEIAJBDGxqIAQgBUEMbGogAfwKAAALIAAgAjYCCA8LIANBDGwiAUUNACAAKAIEIgAgAkEMbGogACAB/AoAAAsLxAEBBH8jAEEQayIEJAACQAJAAkACQAJAAkACQAJAIAEoAgBBAWsOBQECBwcDAAsgASgCFCIDDQMMBgsgASgCFCIDDQMMBQsgASgCECIDDQMMBAsgAS0ABEEDRw0DIARBCGogASgCCCIBKAIAIAEoAgQoAhgRAQAgBCgCDCEFIAQoAgghAgwDCyABKAIYIQUgAyECDAILIAEoAhghBSADIQIMAQsgASgCFCEFIAMhAgsgACAFNgIEIAAgAjYCACAEQRBqJAALnQEBBH8jAEEgayIBJAACQEEIIAAoAgAiBEEBdCIDIANBCE0bIgNBAE4EfyABIAQEfyABIAQ2AhwgASAAKAIENgIUQQEFIAILNgIYIAFBCGpBASADIAFBFGoQhQcgASgCCEEBRw0BIAEoAhAhAiABKAIMBSACCyACQfznwQAQkwkACyABKAIMIQIgACADNgIAIAAgAjYCBCABQSBqJAALmAEBBH8jAEEgayICJAACQEEIIAAoAgAiBUEBdCIEIARBCE0bIgRBAE4EfyACIAUEfyACIAU2AhwgAiAAKAIENgIUQQEFIAMLNgIYIAJBCGogBCACQRRqEN0HIAIoAghBAUcNASACKAIQIQMgAigCDAUgAwsgAyABEJMJAAsgAigCDCEBIAAgBDYCACAAIAE2AgQgAkEgaiQAC64BAQN/IwBBEGsiAyQAAkACQAJAAkAgAEUgAUVyDQAgACgCACIARQ0AIABBwf///wdPDQEgAUEEaygCACICQXhxIgRBBEEIIAJBA3EiAhsgAGpJDQIgAkEAIAQgAEEnaksbDQMgARCiAgsgA0EQaiQADwtB2ObIAEErIANBD2pBtIPJAEHEg8kAEOAGAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALmQECAn8EfgJAAkAgASgCBCICIAEpAwgiBSACrSIEIAQgBVYbpyICRwRAIAEoAgAgAmotAAAhA0EEIQIMAQtBqJDIACkDACIHQgiIIQYgB6chAiAHQv8Bg0IEUg0BCyAFQgF8IQQLIAEgBDcDCCACQf8BcUEERwRAIAAgAq1C/wGDIAZCCIaENwIADwsgAEEEOgAAIAAgAzoAAQu0AQACfwJAAkACQAJAAkACQCACQQNrDgUEBQECAAULIAFBpPzAAEEHENsHDQRBAAwFC0EBIAFBq/zAAEEFENsHRQ0EGiABQbz/wABBBRDbBw0BQQIMBAsgAUHB/8AAQQYQ2wcNAkEDDAMLIAFBx//AAEEFENsHDQFBBAwCC0EFIAFBzP/AAEEDENsHRQ0BGiABQc//wABBAxDbBw0AQQYMAQtBBwshASAAQQA6AAAgACABOgABC6gBAQV/IwBBIGsiAiQAAkACQCABELsKIgNBAE4EQAJAIANFBEBBASEEDAELIAMQcSIERQ0CCyABELsKIQUgARC7CiEGIAIgBTYCBCACIAY2AgAgBSAGRw0CIAQgBSABEOMJIAAgAzYCCCAAIAQ2AgQgACADNgIAIAJBIGokAA8LQeD5xAAQ/wcLAAsgAkEANgIIQQAgAiACQQRqIAJBCGpB4PnEABD1BwALowECAn8BfiMAQRBrIgMkAAJAAkACQCABKAIIIgQgASgCBEkEQCABKAIAIARqLQAAIAJB/wFxRg0BCyAAQgA3AwgMAQtBASECIAEgBEEBajYCCCADIAEQ2QQgAy0AAEUEQCADKQMIIgVCf1IEQCAAIAVCAXw3AwgMAgsgAEEAOgABDAILIAAgAy0AAToAAQwBC0EAIQILIAAgAjoAACADQRBqJAALqAECBX8BfiMAQSBrIgIkAAJ/IAAoAgBBgICAgHhHBEAgASgCACAAKAIEIAAoAgggASgCBCgCDBEAAAwBCyABKAIEIQMgASgCACAAKAIMKAIAIgApAhAhByAAKAIMIQQgACgCCCEFIAAoAgAhBiAAKAIEIQAgAiAHNwIYIAIgBDYCFCACIAU2AhAgAiAANgIMIAIgBjYCCCADIAJBCGoQwQMLIAJBIGokAAuTAQIBfwF+IwBBMGsiAiQAAn8gACgCACIAKAIMRQRAIAAgARDkAwwBCyACQoCAgIAQIgMgAEEQaq2ENwMQIAIgAyAAQQxqrYQ3AwggAiAArUKAgICAoA6ENwMAIAEoAgAgASgCBCACQgM3AiQgAkEDNgIcIAJBoKXGADYCGCACIAI2AiAgAkEYahDBAwsgAkEwaiQAC6MBAgJ/AX4jAEEQayICJAAgASgCCCEDIAIgARDZBAJAIAItAABBAUYEQCACLQABIQEgAEEANgIAIAAgAToABAwBCyACKQMIIgQgA0EBa61UBEAgASgCDEEBaiIDQfQDTQRAIAAgAzYCDCAAIAQ+AgggACABKQIANwIADAILIABBADYCACAAQQE6AAQMAQsgAEEANgIAIABBADoABAsgAkEQaiQAC6UBAAJAAkACQCABQf8ATARAIAFBgn9ODQMgAEMAAIAMlCEAIAFBm35NDQEgAUHmAGohAQwDCyAAQwAAAH+UIQAgAUH+AUsNASABQf8AayEBDAILIABDAACADJQhAEG2fSABIAFBtn1NG0HMAWohAQwBCyAAQwAAAH+UIQBB/QIgASABQf0CTxtB/gFrIQELIAAgAUEXdEGAgID8A2pBgICA/AdxvpQLqAEBAn8gASgCDCECAkACQAJAAkACQAJAAkAgASgCBA4CAAECCyACDQFBASEDQQAhAUEBIQIMAwsgAkUNAQsgACABEOwDDwsgASgCACICKAIEIgFBAEgNASACKAIAIQMgAUUEQEEBIQJBACEBDAELIAEQcSICRQ0CCyABBEAgAiADIAH8CgAACyAAIAE2AgggACACNgIEIAAgATYCAA8LQdiayAAQ/wcLAAuNAQEDfyMAQRBrIgMkAEEDIQIgACgCAC0AACIAIQQgAEEKTwRAIAMgACAAQeQAbiIEQeQAbGtB/wFxQQF0LwC4ukU7AA5BASECC0EAIAAgBBtFBEAgAkEBayICIANBDWpqIARBAXQtALm6RToAAAsgAUEBQQFBACADQQ1qIAJqQQMgAmsQyAMgA0EQaiQAC4oBAQN/IwBBEGsiAyQAQQMhAiAALQAAIgAhBCAAQQpPBEAgAyAAIABB5ABuIgRB5ABsa0H/AXFBAXQvALi6RTsADkEBIQILQQAgACAEG0UEQCACQQFrIgIgA0ENamogBEEBdC0AubpFOgAACyABQQFBAUEAIANBDWogAmpBAyACaxDIAyADQRBqJAALlQEDA3wBfgF/IAC7IAG7oiIDIAK7IgSgIgW9IgZC/////wGDQoCAgIABUiAGQoCAgICAgID4/wCDQoCAgICAgID4/wBRciAEIAUgA6FhIAUgBKEgA2FxcgR8IAUFIAZCAX0gBkIBhCAGQgBTIgcgAyAEIAWhoCADIAWhIASgIAcgAyAEY3MbRAAAAAAAAAAAY3Mbvwu2C6QBAQR/IAAQ9gICQAJAIAAoAsgFIgEEQCAAKALMBSIDQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyABakkNASACQQAgBCABQSdqSxsNAiADEKICCyAAQeAAaiEBAkACQAJAIAAoArwFQYCAgIB4aw4CAQIACyABEL4CDwsgARC9AQsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAujAQEEfyAAEPUCAkACQCAAKAKoBSIBBEAgACgCrAUiA0EEaygCACICQXhxIgRBBEEIIAJBA3EiAhsgAWpJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgAEFAayEBAkACQAJAIAAoApwFQYCAgIB4aw4CAQIACyABEL4CDwsgARC9AQsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuWAQEDfwJ/AkACQCABKAIAIgNFBEAMAQsDQAJAIAEoAggiBCABKAIETw0AIAMgBGotAABBxQBHDQAgASAEQQFqNgIIDAILAkAgAkUNACABKAIQIgNFDQAgA0HnkMYAQQIQlwMNAwsgARCGAg0CIAJBAWohAiABKAIAIgMNAAsLQQAMAQtBAQshASAAIAI2AgQgACABNgIAC6YBAgJ/AX4CQAJAAkACQCABKAIoQQJHBEAgASgCmAJBgYCAgHhHDQFBgICAgHghAgwCC0GsmMcAEN0JAAsgASgCoAIiAkEASA0BIAEoApwCIQMCQCACRQRAQQEhAQwBCyACEHEiAUUNAwsgAgRAIAEgAyAC/AoAAAsgAa0gAq1CIIaEIQQLIAAgBDcDCCAAIAI2AgQgAEEGNgIADwtB2JrIABD/BwsAC6YBAgJ/AX4CQAJAAkACQCABKAIoQQJHBEAgASgCpAJBgYCAgHhHDQFBgICAgHghAgwCC0GsmMcAEN0JAAsgASgCrAIiAkEASA0BIAEoAqgCIQMCQCACRQRAQQEhAQwBCyACEHEiAUUNAwsgAgRAIAEgAyAC/AoAAAsgAa0gAq1CIIaEIQQLIAAgBDcDCCAAIAI2AgQgAEEGNgIADwtB2JrIABD/BwsAC8cBAQF7IAIgA0sEQCAAIAEgA0EVbGoiASwAFLJDAAD+QpU4AlAgACAB/VwAAP2HAf2nAf36Af0MAAD+QgAA/kIAAP5CAAD+QiIE/ecB/QsCACAAIAH9XAAE/YcB/acB/foBIAT95wH9CwIQIAAgAf1cAAj9hwH9pwH9+gEgBP3nAf0LAiAgACAB/VwADP2HAf2nAf36ASAE/ecB/QsCMCAAIAH9XAAQ/YcB/acB/foBIAT95wH9CwJADwsgAyACQZy8xwAQjAcAC38BAX8gAkEETwRAA0AgACgAACABKAAARwRAQQAPCyABQQRqIQEgAEEEaiEAIAJBBGsiAkEDSw0ACwtBASEDIAJBAUsEQCAALwAAIAEvAABHBEBBAA8LIAJBAmshAiABQQJqIQEgAEECaiEACyACBH8gAC0AACABLQAARgUgAwsLoAEBBH8gAEH0BGoQwAICQAJAIAAoAugEIgIEQCAAKALsBCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCwJAAkACQCAAKALcBEGAgICAeGsOAgECAAsgABC+Ag8LIAAQvQELDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALoAEBBH8gAEH0BGoQigICQAJAIAAoAugEIgIEQCAAKALsBCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCwJAAkACQCAAKALcBEGAgICAeGsOAgECAAsgABC+Ag8LIAAQvQELDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALmgEBA38gASgCICECIAEoAhwhAwJAAkBBCBBxIgQEQCAEIAI2AgQgBCADNgIAIAFBBGoQ6gIgAUEEaygCACICQXhxIgNBKEEsIAJBA3EiAhtJDQEgAkEAIANBzABPGw0CIAEQogIgAEGAmMEANgIEIAAgBDYCAA8LAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALjgEBA38jAEEQayIBJAAgAUEAOgAPAkACQEEBEHEiAgRAIAAgAUEPaq03AwAgACACrTcDCCACQQRrKAIAIgBBeHEiA0EFQQkgAEEDcSIAG0kNASAAQQAgA0EpTxsNAiACEKICIAFBEGokAA8LAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALjgEBBH8jAEEQayICJAACf0EBIAEoAgAiA0EnIAEoAgQiBSgCECIBEQIADQAaIAIgACgCAEGBAhCBAwJAIAItAA0iAEGBAU8EQCADIAIoAgAgARECAEUNAUEBDAILIAMgAiACLQAMIgRqIAAgBGsgBSgCDBEAAEUNAEEBDAELIANBJyABEQIACyACQRBqJAALmgEBA38gASgCICECIAEoAhwhAwJAAkBBCBBxIgQEQCAEIAI2AgQgBCADNgIAIAFBBGoQ6gIgAUEEaygCACICQXhxIgNBKEEsIAJBA3EiAhtJDQEgAkEAIANBzABPGw0CIAEQogIgAEGwr8cANgIEIAAgBDYCAA8LAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALgAEBAn8gA0EITwRAIAAgACADQQN2IgNBBHQiBGogACADQRxsIgVqIAMQwgYhACABIAEgBGogASAFaiADEMIGIQEgAiACIARqIAIgBWogAxDCBiECCyAAIAIgASAAKAIAIgAgASgCACIBSSIDIAEgAigCACICSXMbIAMgACACSXMbC4ABAQJ/IANBCE8EQCAAIAAgA0EDdiIDQQV0IgRqIAAgA0E4bCIFaiADEMMGIQAgASABIARqIAEgBWogAxDDBiEBIAIgAiAEaiACIAVqIAMQwwYhAgsgACACIAEgACgCACIAIAEoAgAiAUkiAyABIAIoAgAiAklzGyADIAAgAklzGwt+AQJ/IAAgACgCCCIDIAFJBH8gASADayIEIAAoAgAgA2tLBEAgACADIARBAUEBEKQFIAAoAgghAwsgACgCBCIAIANqIQEgBEECTwR/IARBAWsiBARAIAEgAiAE/AsACyAAIAMgBGoiA2oFIAELIAI6AAAgA0EBagUgAQs2AggLkAEBAX8jAEEwayICJAACf0EBIAEoAgBBIiABKAIEKAIQEQIADQAaIAIgATYCDCACIACtQoCAgIDQAIQ3AxAgAkIBNwIkIAJBATYCHCACQaD4xwA2AhggAiACQRBqNgIgQQEgAkEMakG4oMEAIAJBGGoQwQMNABogASgCAEEiIAEoAgQoAhARAgALIAJBMGokAAuQAQEBfyMAQTBrIgIkAAJ/QQEgASgCAEEiIAEoAgQoAhARAgANABogAiABNgIMIAIgAK1CgICAgMAHhDcDECACQgE3AiQgAkEBNgIcIAJBoPjHADYCGCACIAJBEGo2AiBBASACQQxqQeS3xwAgAkEYahDBAw0AGiABKAIAQSIgASgCBCgCEBECAAsgAkEwaiQAC48BAQF/IwBBEGsiAiQAIAJBCGogARCfAwJAIAItAAhBAUYEQCAAIAIoAgw2AgQgAEEDNgIADAELIAItAAlFBEAgAEECNgIADAELIAJBCGogASgCABDSAiACKAIIIgFBAkYEQCAAIAIoAgw2AgQgAEEDNgIADAELIAAgAioCDDgCBCAAIAE2AgALIAJBEGokAAuSAQICfwF+IwBBIGsiAiQAAkACQCAALQAIIgNBA0cEQCADQQFLDQIgAEECOgAIIAEoAgAgAUIANwMARQ0BIAEpAwghBCAAQQM6AAggACAENwMACyACQSBqJAAPC0HQnMcAEN0JAAsgAkEANgIYIAJBATYCDCACQZiDyAA2AgggAkIENwIQIAJBCGpBwJzHABCNCAALhQEBA38CfwJAIAAoAgAiAUUNAANAAkAgACgCCCIDIAAoAgRPDQAgASADai0AAEHFAEcNACAAIANBAWo2AggMAgsCQCACRQ0AIAAoAhAiAUUNACABQeeQxgBBAhCXA0UNAEEBDwtBASAAQQEQ1QENAhogAkEBayECIAAoAgAiAQ0ACwtBAAsLhwEBA38gACgCACECIAAoAgQiACgCACIBBEAgAiABEQMACwJAAkAgACgCBCIABEAgAkEEaygCACIBQXhxIgNBBEEIIAFBA3EiARsgAGpJDQEgAUEAIAMgAEEnaksbDQIgAhCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuUAQICfgF/IAEpAgAgASkCCCEDIABBBGoQ6gJC7bqtts2F1PXjAIUgA0L4gpm9le7Gxbl/hYRQBEAgAEEkahCxBAsCQCAAQQRrKAIAIgFBeHFBLEEwIAFBA3EiBBtPBEAgBEEAIAFB0ABPGw0BIAAQogIPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAt/AQF/IwBBQGoiBCQAIAQgATYCDCAEIAA2AgggBCADNgIsIAQgAjYCKCAEQQI2AhQgBEH45sAANgIQIARCAjcCHCAEIARBKGqtQoCAgIDAAIQ3AzggBCAEQQhqrUKAgICAIIQ3AzAgBCAEQTBqNgIYIARBEGoQxwUgBEFAayQAC4oBAQJ/IwBBEGsiAiQAAkACQCAAKAIkIgFBCU8EQCAAKAIEIgFBf0YNAQtBfyABZ3ZBACABGyIBQX9GDQAgAkEIaiAAIAFBAWoQ6AMgAigCCCIAQYGAgIB4RwRAIAANAkHYlccAQRFB1MzHABDrBwALIAJBEGokAA8LQdiVxwBBEUHkzMcAEKsHCwALigEBAn8jAEEQayICJAACQAJAIAAoAhQiAUEFTwRAIAAoAgQiAUF/Rg0BC0F/IAFndkEAIAEbIgFBf0YNACACQQhqIAAgAUEBahDpAyACKAIIIgBBgYCAgHhHBEAgAA0CQdiVxwBBEUHUzMcAEOsHAAsgAkEQaiQADwtB2JXHAEERQeTMxwAQqwcLAAuEAQECfyAAIAEgACgCCCIDQQNyIgJB/v8DcSACbEGA/gNxQQh2cyIBIAAoAgAiAnNB/wFxQQJ0KALwvUggAkEIdnMiAjYCACAAIAAoAgQgAkH/AXFqQYWIosAAbEEBaiICNgIEIAAgA0H/AXEgAkEYdnNBAnQoAvC9SCADQQh2czYCCCABC44BAgN/AX4gASkCHCEFAkACQEEIEHEiAwRAIAMgBTcCACABQQRqEOoCIAFBBGsoAgAiAkF4cSIEQShBLCACQQNxIgIbSQ0BIAJBACAEQcwATxsNAiABEKICIABBxJfBADYCBCAAIAM2AgAPCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC44BAgN/AX4gASkCHCEFAkACQEEIEHEiAwRAIAMgBTcCACABQQRqEOoCIAFBBGsoAgAiAkF4cSIEQShBLCACQQNxIgIbSQ0BIAJBACAEQcwATxsNAiABEKICIABBiJbBADYCBCAAIAM2AgAPCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC4IBAQF/IwBBMGsiAiQAIAIgACgCACgCACIANgIYIAIgAGg2AhwgAkEDNgIEIAJByIvDADYCACACQgI3AgwgAiACQRxqrUKAgICAsAaENwMoIAIgAkEYaq1CgICAgMAGhDcDICACIAJBIGo2AgggASgCACABKAIEIAIQwQMgAkEwaiQAC4sBAQJ/IwBBEGsiAiQAAkACQCAAKAKEASIBQSFPBEAgACgCBCIBQX9GDQELQX8gAWd2QQAgARsiAUF/Rg0AIAJBCGogACABQQFqEPQDIAIoAggiAEGBgICAeEcEQCAADQJB2JXHAEERQdTMxwAQ6wcACyACQRBqJAAPC0HYlccAQRFB5MzHABCrBwsAC4oBAQJ/IwBBEGsiAiQAAkACQCAAKAIUIgFBBU8EQCAAKAIEIgFBf0YNAQtBfyABZ3ZBACABGyIBQX9GDQAgAkEIaiAAIAFBAWoQ9QMgAigCCCIAQYGAgIB4RwRAIAANAkHYlccAQRFB1MzHABDrBwALIAJBEGokAA8LQdiVxwBBEUHkzMcAEKsHCwALigEBAn8jAEEQayICJAACQAJAIAAoAiQiAUEJTwRAIAAoAgQiAUF/Rg0BC0F/IAFndkEAIAEbIgFBf0YNACACQQhqIAAgAUEBahD2AyACKAIIIgBBgYCAgHhHBEAgAA0CQdiVxwBBEUHUzMcAEOsHAAsgAkEQaiQADwtB2JXHAEERQeTMxwAQqwcLAAuOAQIDfwF+IAEpAhwhBQJAAkBBCBBxIgMEQCADIAU3AgAgAUEEahDqAiABQQRrKAIAIgJBeHEiBEEoQSwgAkEDcSICG0kNASACQQAgBEHMAE8bDQIgARCiAiAAQailxwA2AgQgACADNgIADwsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuKAQEDfyABKAIcIQICQAJAQQQQcSIDBEAgAyACNgIAIAFBBGoQ6gIgAUEEaygCACICQXhxQSRBKCACQQNxIgQbSQ0BIARBACACQcgATxsNAiABEKICIABB8JnBADYCBCAAIAM2AgAPCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC4oBAQN/IAEtABwhAgJAAkBBARBxIgMEQCADIAI6AAAgAUEEahDqAiABQQRrKAIAIgJBeHFBJEEoIAJBA3EiBBtJDQEgBEEAIAJByABPGw0CIAEQogIgAEGosMcANgIEIAAgAzYCAA8LAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALbQEDfyMAQRBrIgIkACAALQAAIQNBAyEAA0AgACACakEMaiADQQ9xQcmBwgBqLQAAOgAAIAMiBEEEdiEDIABBAWshACAEQQ9LDQALIAFBAUGEtMUAQQIgACACakENakEDIABrEMgDIAJBEGokAAt7AQF/IwBBIGsiAiQAAn8gACgCAEEBRgRAIAEoAgBBw4/GAEEVIAEoAgQoAgwRAAAMAQsgAiAArUKAgICAEIQ3AwAgASgCACABKAIEIAJCATcCFCACQQI2AgwgAkHwj8YANgIIIAIgAjYCECACQQhqEMEDCyACQSBqJAALdwEBfyMAQUBqIgMkACADIAI2AhQgAyABNgIQIAMgADYCDCADQQI2AhwgA0Gk5sAANgIYIANCAjcCJCADIANBEGqtQoCAgIAwhDcDOCADIANBDGqtQoCAgIAQhDcDMCADIANBMGo2AiAgA0EYahDHBSADQUBrJAALfwEEfyAAQQRqEOoCAkACQCAAKAIcIgIEQCAAKAIgIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILIABBKGoQ4wQPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtiAQR+IAAgAkL/////D4MiAyABQv////8PgyIEfiIFIAQgAkIgiCICfiIEIAMgAUIgiCIGfnwiAUIghnwiAzcDACAAIAMgBVStIAIgBn4gASAEVK1CIIYgAUIgiIR8fDcDCAt6AQF/IwBBQGoiAyQAIAMgAjYCBCADIAE2AgAgAyAA/QADAP0LAyAgA0ECNgIMIANB3KDGADYCCCADQgI3AhQgAyADrUKAgICAMIQ3AzggAyADQSBqrUKAgICA4ACENwMwIAMgA0EwajYCECADQQhqEMcFIANBQGskAAt6AQF/IwBBQGoiAyQAIAMgAjYCBCADIAE2AgAgAyAA/QADAP0LAyAgA0ECNgIMIANBqKbGADYCCCADQgI3AhQgAyADrUKAgICAMIQ3AzggAyADQSBqrUKAgICA4ACENwMwIAMgA0EwajYCECADQQhqEMcFIANBQGskAAt8AQF/IwBBQGoiBSQAIAUgATYCDCAFIAA2AgggBSADNgIUIAUgAjYCECAFQQI2AhwgBUHg+McANgIYIAVCAjcCJCAFIAVBEGqtQoCAgICQAYQ3AzggBSAFQQhqrUKAgICAoAGENwMwIAUgBUEwajYCICAFQRhqIAQQjQgAC2oBA38jAEEQayIDJAAgACgCACgCACEAQQkhAgNAIAIgA2pBBmogAEEPcS0A3LZFOgAAIAJBAWshAiAAQQ9LIABBBHYhAA0ACyABQQFBhLTFAEECIAIgA2pBB2pBCSACaxDIAyADQRBqJAALjAEAAn8CQAJAAkACQAJAIAJBA2sOBAMEAAEECyABQbz/wABBBRDbBw0BQQAMBAsgAUHB/8AAQQYQ2wcNAkEBDAMLIAFBx//AAEEFENsHDQFBAgwCC0EDIAFBzP/AAEEDENsHRQ0BGiABQc//wABBAxDbBw0AQQQMAQtBBQshAiAAQQA6AAAgACACOgABC4IBAQJ/IABBDGoQ9QICQAJAAkAgAEF/Rg0AIAAgACgCBEEBayIBNgIEIAENACAAQQRrKAIAIgFBeHEiAkHYAEHcACABQQNxIgEbSQ0BIAFBACACQfwATxsNAiAAEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC4IBAQJ/IABBDGoQ9gICQAJAAkAgAEF/Rg0AIAAgACgCBEEBayIBNgIEIAENACAAQQRrKAIAIgFBeHEiAkH4AEH8ACABQQNxIgEbSQ0BIAFBACACQZwBTxsNAiAAEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC3wBAX8CQAJAIAFB/////wNLDQAgAUECdCIDQf3///8HTw0AAn8gA0UEQEEEIQJBAAwBCyADEHEiAkUNAiACQQRrLQAAQQNxRSADRXJFBEAgAkEAIAP8CwALIAELIQMgACABNgIIIAAgAjYCBCAAIAM2AgAPCyACEP8HCwALZwEDfyMAQRBrIgMkACAAKAIAIQBBCSECA0AgAiADakEGaiAAQQ9xLQDctkU6AAAgAkEBayECIABBD0sgAEEEdiEADQALIAFBAUGEtMUAQQIgAiADakEHakEJIAJrEMgDIANBEGokAAuCAQEDfwJAAkACQAJAIAAtAABBAWsOAgAAAQsgACgCBCICRQ0AIAAoAggiAEEEaygCACIBQXhxIgNBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAMgAkEnaksbDQIgABCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAt3AQR/AkACQCABKAIUIgUgASgCECIGTw0AIAEoAgwhBwNAIAUgB2otAAAiCEEwa0H/AXFBCU0EQCABIAVBAWoiBTYCFCAFIAZHDQEMAgsLIAhBIHJB5QBGDQELIAAgASACIAMgBBDwBA8LIAAgASACIAMgBBDuAwuCAQAgASgCKEECRwRAAkACQCACKAIQQQFGBEAgASgC3AIgAigCFEsNAQsgAigCGEEBRw0BIAEoAuACIAIoAhxNDQELIABCAjcDCCAAQQM2AgAPCyAAQQY2AgAgASAC/QADAP0LAwAgAUEQaiACQRBq/QADAP0LAwAPC0GsmMcAEN0JAAt3AQN/IABBBGoQ6gICQAJAIAAoAhwiAgRAIAAoAiAiAEEEaygCACIBQXhxIgNBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAMgAkEnaksbDQIgABCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAt0AQJ/AkACQCAABEAgAEEIayIDIAMoAgBBAWoiBDYCACAERQ0BIAAoAgANAiAAQX82AgAgAEEEaiABIAJBAEcQMCAAIAAoAgBBAWo2AgAgAyADKAIAQQFrIgA2AgAgAEUEQCADEOQGCw8LEI4KCwALEJAKAAt0AQJ/AkACQCAABEAgAEEIayIDIAMoAgBBAWoiBDYCACAERQ0BIAAoAgANAiAAQX82AgAgAEEEaiABIAJBAEcQLyAAIAAoAgBBAWo2AgAgAyADKAIAQQFrIgA2AgAgAEUEQCADEOMGCw8LEI4KCwALEJAKAAt1AgF/AX4jAEEQayIFJAAgAUUEQEGt+cQAQTIQjwoACyAFQQhqIAEgAyAEIAIoAhARBgAgACAFKQMIIganIgFB/wFxNgIIIAAgBkIgiKdBACABQQFxIgIbNgIEIABBACABQQh2Qf8BcSACGzYCACAFQRBqJAALdQIBfwF+IwBBEGsiBSQAIAFFBEBBrfnEAEEyEI8KAAsgBUEIaiABIAMgBCACKAIQEQYAIAAgBSkDCCIGpyICQQJGIgE2AgggACAGQiCIpyIDQQAgARs2AgQgAEEAIANBgAggAkEBcRsgARs2AgAgBUEQaiQAC3ABAX8CQAJAIAJBAk8EQCACQQF2IQZBACEAQQAhBQNAIAAgAk8NAiAEIAVGDQMgAyAFaiAAIAFqLQAAOgAAIABBAmohACAFQQFqIgUgBkcNAAsLDwsgACACQeCYxQAQjAcACyAEIARB8JjFABCMBwALdwEEfwJAAkAgACgCACICBEAgACgCBCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAQQxqEOMEDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALcwIBfwF+IwBBEGsiBCQAIAFFBEBBrfnEAEEyEI8KAAsgBEEIaiABIAMgAigCEBEFACAAIAQpAwgiBaciAUH/AXE2AgggACAFQiCIp0EAIAFBAXEiAhs2AgQgAEEAIAFBCHZB/wFxIAIbNgIAIARBEGokAAt6AQN/IwBBEGsiAyQAIANBCGogASgCACABKAIEIAEoAggQ+QEgAygCDCEEIAMoAgghBUEUEHEiAUUEQAALIAEgBTYCDCAAIAE2AgQgAEECNgIAIAEgAikCADcCACABIAQ2AhAgAUEIaiACQQhqKAIANgIAIANBEGokAAt6AQN/IwBBEGsiAyQAIANBCGogASgCACABKAIEIAEoAggQ+QEgAygCDCEEIAMoAgghBUEUEHEiAUUEQAALIAEgBTYCDCAAIAE2AgQgAEEBOgAAIAEgAikCADcCACABIAQ2AhAgAUEIaiACQQhqKAIANgIAIANBEGokAAt6AQN/IwBBEGsiAyQAIANBCGogASgCACABKAIEIAEoAggQ+QEgAygCDCEEIAMoAgghBUEUEHEiAUUEQAALIAEgBTYCDCAAIAE2AgQgAEEBOwEAIAEgAikCADcCACABIAQ2AhAgAUEIaiACQQhqKAIANgIAIANBEGokAAt6AQN/IwBBEGsiAyQAIANBCGogASgCACABKAIEIAEoAggQ+QEgAygCDCEEIAMoAgghBUEUEHEiAUUEQAALIAEgBTYCDCAAIAE2AgQgAEEANgIAIAEgAikCADcCACABIAQ2AhAgAUEIaiACQQhqKAIANgIAIANBEGokAAt9AQN/AkACQCAAKAIAIgJBgICAgHhyQYCAgIB4RwRAIAAoAgQiAEEEaygCACIBQXhxIgNBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAMgAkEnaksbDQIgABCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAt2AQN/IAAQigICQAJAIAAoAsQBIgIEQCAAKALIASIAQQRrKAIAIgFBeHEiA0EEQQggAUEDcSIBGyACakkNASABQQAgAyACQSdqSxsNAiAAEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC3YBA38gABDAAgJAAkAgACgCvAEiAgRAIAAoAsABIgBBBGsoAgAiAUF4cSIDQQRBCCABQQNxIgEbIAJqSQ0BIAFBACADIAJBJ2pLGw0CIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALdAEDfyAAEPYCAkACQCAAKAJgIgIEQCAAKAJkIgBBBGsoAgAiAUF4cSIDQQRBCCABQQNxIgEbIAJqSQ0BIAFBACADIAJBJ2pLGw0CIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALdAEDfyAAEPUCAkACQCAAKAJAIgIEQCAAKAJEIgBBBGsoAgAiAUF4cSIDQQRBCCABQQNxIgEbIAJqSQ0BIAFBACADIAJBJ2pLGw0CIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALdAEEfwJAAkAgACgCKCICBEAgACgCLCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAEL8EDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALdAEDfyAAEPcDAkACQCAAKAJoIgIEQCAAKAJsIgBBBGsoAgAiAUF4cSIDQQRBCCABQQNxIgEbIAJqSQ0BIAFBACADIAJBJ2pLGw0CIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALbQECfyABKAIIIgRFIAMgASgCACIFIARrTXJFBEAgAUEANgIIIAFBADoADEEAIQQLIAMgBUkEQCADBEAgASgCBCAEaiACIAP8CgAACyAAQQQ6AAAgASADIARqNgIIDwsgAEIENwIAIAFBADoADAtvAQJ/AkACQCAABEAgAEEIayICIAIoAgBBAWoiAzYCACADRQ0BIAAoAgANAiAAQX82AgAgAEEEaiABEC0gACAAKAIAQQFqNgIAIAIgAigCAEEBayIANgIAIABFBEAgAhDkBgsPCxCOCgsACxCQCgALbwECfwJAAkAgAARAIABBCGsiAiACKAIAQQFqIgM2AgAgA0UNASAAKAIADQIgAEF/NgIAIABBBGogARAuIAAgACgCAEEBajYCACACIAIoAgBBAWsiADYCACAARQRAIAIQ4wYLDwsQjgoLAAsQkAoAC3IBA38CQAJAIAAoAgAiAkEASgRAIAAoAgQiAEEEaygCACIBQXhxIgNBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAMgAkEnaksbDQIgABCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAttAQF/An8CQAJ/AkAgAigCBARAIAIoAggiA0UEQCABDQIMBAsgAigCACADQQQgARC7AgwCCyABRQ0CCyABEHELIgJBBCACGyEDIAJFDAELQQQhA0EACyECIAAgATYCCCAAIAM2AgQgACACNgIAC3cCAn0CfyABKAIIIgVBgICAAXEhBCAAKgIAIQIgBUGAgICAAXFFBEAgAosiA0PKGw5aYCACQwAAAABcIANDF7fROF1xckUEQCABIAIgBEEAR0EBEPcCDwsgASACIARBAEcQzwIPCyABIAIgBEEARyABLwEOEL0CC28BA38CQAJAIAAoAgAiAgRAIAAoAgQiAEEEaygCACIBQXhxIgNBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAMgAkEnaksbDQIgABCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAt9AwF/AX4BfCMAQRBrIgMkAAJAAkACQAJAIAAoAgBBAWsOAgECAAsgACsDCCEFIANBAzoAACADIAU5AwgMAgsgACkDCCEEIANBAToAACADIAQ3AwgMAQsgACkDCCEEIANBAjoAACADIAQ3AwgLIAMgASACEN8GIANBEGokAAtnAQF/An8CfwJAIAMoAgQEQCADKAIIIgRFBEAgAg0CQQAMBAsgAygCACAEIAEgAhC7AgwCCyACDQBBAAwCCyACEHELIgMgASADGyEBIANFCyEDIAAgAjYCCCAAIAE2AgQgACADNgIAC3EBAn8gAEEEahDqAiAAKAIkIgEgASgCACgCABEDAAJAIABBBGsoAgAiAUF4cUEsQTAgAUEDcSICG08EQCACQQAgAUHQAE8bDQEgABCiAg8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC2sBAn8jAEEgayIBJAACfyAALQBsQQZHBEAgACgCZCICBEAgAiAAKAJoKAIUEQQADAILQZyqwQAQ3QkACyABQQA2AhggAUEBNgIMIAFBlKrBADYCCCABQgQ3AhAgAUEIahCSBwsgAUEgaiQAC24BAn8jAEEgayIBJAACfyAALQDoAUEGRwRAIAAoAuABIgIEQCACIAAoAuQBKAIUEQQADAILQZyqwQAQ3QkACyABQQA2AhggAUEBNgIMIAFBlKrBADYCCCABQgQ3AhAgAUEIahCSBwsgAUEgaiQAC24BAn8jAEEgayIBJAACfyAALQCMAUEGRwRAIAAoAoQBIgIEQCACIAAoAogBKAIUEQQADAILQZyqwQAQ3QkACyABQQA2AhggAUEBNgIMIAFBlKrBADYCCCABQgQ3AhAgAUEIahCSBwsgAUEgaiQAC24BAn8jAEEgayIBJAACfyAALQDwAUEGRwRAIAAoAugBIgIEQCACIAAoAuwBKAIUEQQADAILQZyqwQAQ3QkACyABQQA2AhggAUEBNgIMIAFBlKrBADYCCCABQgQ3AhAgAUEIahCSBwsgAUEgaiQAC24BA38jAEEQayICJAAgAkEIaiAAKAIAIAAoAgQgACgCCBD5ASACKAIMIQMgAigCCCEEQRQQcSIARQRAAAsgACAENgIMIAAgASkCADcCACAAIAM2AhAgAEEIaiABQQhqKAIANgIAIAJBEGokACAAC2kCAX8BfiMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBAjYCDCADQbSIwwA2AgggA0ICNwIUIANCgICAgBAiBCADrYQ3AyggAyAEIANBBGqthDcDICADIANBIGo2AhAgA0EIaiACEI0IAAtmAQN/IwBBEGsiAiQAAkAgASgCACIEKAIAQQFHDQAgBC0ABEEDRw0AIAJBCGogBCgCCCIBKAIAIAEoAgQoAhgRAQAgAigCDCEBIAIoAgghAwsgACABNgIEIAAgAzYCACACQRBqJAALaQECfyMAQSBrIgIkACACQQhqEOQIQSgQcSIBRQRAAAsgAUGYn8EANgIAIAEgAikCCDcCBCABIAApAgA3AhwgAUEMaiACQRBq/QACAP0LAgAgAUEkaiAAQQhqKAIANgIAIAJBIGokACABC2kBAn8jAEEgayICJAAgAkEIahDkCEEoEHEiAUUEQAALIAFB/J7BADYCACABIAIpAgg3AgQgASAAKQIANwIcIAFBDGogAkEQav0AAgD9CwIAIAFBJGogAEEIaigCADYCACACQSBqJAAgAQtpAQJ/IwBBIGsiAiQAIAJBCGoQ5AhBKBBxIgFFBEAACyABQaS1xwA2AgAgASACKQIINwIEIAEgACkCADcCHCABQQxqIAJBEGr9AAIA/QsCACABQSRqIABBCGooAgA2AgAgAkEgaiQAIAELagEBfyMAQRBrIgYkACABRQRAQa35xABBMhCPCgALIAZBCGogASADIAQgBSACKAIQEQcAIAYoAgwhASAAIAYoAggiAjYCCCAAIAFBACACQQFxIgIbNgIEIABBACABIAIbNgIAIAZBEGokAAtnAQJ/IwBBEGsiAiQAIAAoAgwhAQJ/AkACQAJAIAAoAgQOAgABAgsgAQ0BQQFBABC0BwwCCyABDQAgACgCACIAKAIAIAAoAgQQtAcMAQsgAkEEaiIBIAAQ7AMgARCOBwsgAkEQaiQAC24BAn8CQEEQEHEiAUUNACABQfWVyAD9AAAA/QsAAEEMEHEiAkUNACACQRA2AgggAiABNgIEIAJBEDYCAEEMEHEiAUUNACABQRU6AAggAUHgtMQANgIEIAEgAjYCACAAIAGtQiCGQgOENwIADwsAC2gBAX8jAEEQayIFJAAgAUUEQEGt+cQAQTIQjwoACyAFQQhqIAEgAyAEIAIoAhARBgAgBSgCDCEBIAAgBSgCCCICNgIIIAAgAUEAIAJBAXEiAhs2AgQgAEEAIAEgAhs2AgAgBUEQaiQAC2cBAn8jAEEQayICJAAgACgCDCEBAn8CQAJAAkAgACgCBA4CAAECCyABDQFBAUEAELcHDAILIAENACAAKAIAIgAoAgAgACgCBBC3BwwBCyACQQRqIgEgABDsAyABEJAHCyACQRBqJAALZQEBfwJAAkAgAQRAIABBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAFqSQ0BIAJBACADIAFBJ2pLGw0CIAAQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALZwECfyAAQQRqEOoCIABBJGoQsQQCQCAAQQRrKAIAIgFBeHFBLEEwIAFBA3EiAhtPBEAgAkEAIAFB0ABPGw0BIAAQogIPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtnAQJ/IABBBGoQ6gIgAEEcahCxBAJAIABBBGsoAgAiAUF4cUEkQSggAUEDcSICG08EQCACQQAgAUHIAE8bDQEgABCiAg8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC2cBAn8gAEEEahDqAiAAQRxqEOMEAkAgAEEEaygCACIBQXhxQSxBMCABQQNxIgIbTwRAIAJBACABQdAATxsNASAAEKICDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALaQECfyAAQQRqEOoCIABBIGoQgwICQCAAQQRrKAIAIgFBeHFBzABB0AAgAUEDcSICG08EQCACQQAgAUHwAE8bDQEgABCiAg8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC3wBAX8CQAJAIABBhAhPBEAgANBvJgFBoLvJACgCAA0CIABBsLvJACgCACIBSQ0BIAAgAWsiAEGou8kAKAIATw0BQaC0yQAoAgAgAEECdGpBrLvJACgCADYCAEGsu8kAIAA2AgBBoLvJAEEANgIACw8LAAtBgI/IABCwCgALXgEBfyMAQTBrIgIkACACIAE2AgwgAiAANgIIIAJBAjYCFCACQYTmwAA2AhAgAkIBNwIcIAIgAkEIaq1CgICAgCCENwMoIAIgAkEoajYCGCACQRBqEMcFIAJBMGokAAteAQF/IwBBMGsiAiQAIAIgATYCDCACIAA2AgggAkECNgIUIAJBhObAADYCECACQgE3AhwgAiACQQhqrUKAgICAIIQ3AyggAiACQShqNgIYIAJBEGoQ3gQgAkEwaiQAC14BAX8jAEEwayICJAAgAiABNgIMIAIgADYCCCACQQI2AhQgAkHI5sAANgIQIAJCATcCHCACIAJBCGqtQoCAgIAghDcDKCACIAJBKGo2AhggAkEQahDeBCACQTBqJAALXgEBfyMAQTBrIgIkACACIAE2AgwgAiAANgIIIAJBAjYCFCACQcjmwAA2AhAgAkIBNwIcIAIgAkEIaq1CgICAgCCENwMoIAIgAkEoajYCGCACQRBqEMcFIAJBMGokAAtcAAJAIAFBAE4EQAJAIAFFBEBBASECDAELIAEQcSICRQ0CIAJBBGstAABBA3FFIAFFcg0AIAJBACAB/AsACyAAIAE2AgggACACNgIEIAAgATYCAA8LIAIQ/wcLAAtWAQF+AkAgA0HAAHFFBEAgA0UNASACQQAgA2tBP3GthiABIANBP3GtIgSIhCEBIAIgBIghAgwBCyACIANBP3GtiCEBQgAhAgsgACABNwMAIAAgAjcDCAteAQF/AkAgAEEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAWpPBEAgAkEAIAMgAUEnaksbDQEgABCiAg8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC2cBAn8jAEEgayICJAAgAkEIahDkCEEoEHEiAUUEQAALIAFB0J/BADYCACABIAIpAgg3AgQgASAANgIkIAFBIjYCICABQbzWwQA2AhwgAUEMaiACQRBq/QACAP0LAgAgAkEgaiQAIAELYQEBfyAAQQRqEOoCAkAgAEEEaygCACIBQXhxIgJBKEEsIAFBA3EiARtPBEAgAUEAIAJBzABPGw0BIAAQogIPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAthAQJ/IABBBGoQ6gICQCAAQQRrKAIAIgFBeHEiAkEoQSwgAUEDcSIBG08EQCABQQAgAkHMAE8bDQEgABCiAg8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC2ICAX8CfiMAQRBrIgEkACAAKAIoQQJGBEBBrJjHABDdCQALIAEgADUC4AIgADUC3AJ+IAAtAOgEQQN0KQOInkkQ3QYgASkDCCECIAEpAwAhAyABQRBqJABCfyADIAJCAFIbC18BAX8gAEEEahDqAgJAIABBBGsoAgAiAUF4cUEsQTAgAUEDcSICG08EQCACQQAgAUHQAE8bDQEgABCiAg8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC18BAn8gAEEEahDqAgJAIABBBGsoAgAiAUF4cUEkQSggAUEDcSICG08EQCACQQAgAUHIAE8bDQEgABCiAg8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC18BAX8gAEEEahDqAgJAIABBBGsoAgAiAUF4cUEkQSggAUEDcSICG08EQCACQQAgAUHIAE8bDQEgABCiAg8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC2EBAX8gAEEEahDqAgJAIABBBGsoAgAiAUF4cUHMAEHQACABQQNxIgIbTwRAIAJBACABQfAATxsNASAAEKICDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALWwEBfyMAQTBrIgMkACADIAE2AgwgAyAANgIIIANBATYCFCADQaD4xwA2AhAgA0IBNwIcIAMgA0EIaq1CgICAgKABhDcDKCADIANBKGo2AhggA0EQaiACEI0IAAtiAQJ/IwBBIGsiASQAAkAgABC4ASICDQAgAC0AgARFBEAgAUEANgIYIAFBATYCDCABQcSjwQA2AgggAUIENwIQIAFBCGoQkgchAgwBCyAAQbwCahDUASECCyABQSBqJAAgAgtiAQJ/IwBBIGsiASQAAkAgABCsASICDQAgAC0A+ANFBEAgAUEANgIYIAFBATYCDCABQcSjwQA2AgggAUIENwIQIAFBCGoQkgchAgwBCyAAQbwCahCjASECCyABQSBqJAAgAgtcAQF/IwBBEGsiBiQAIAFFBEBBrfnEAEEyEI8KAAsgBkEIaiABIAMgBCAFIAIoAhARMwAgBigCDCEBIAAgBigCCCICNgIEIAAgAUEAIAJBAXEbNgIAIAZBEGokAAtcAQF/IwBBEGsiBiQAIAFFBEBBrfnEAEEyEI8KAAsgBkEIaiABIAMgBCAFIAIoAhARBwAgBigCDCEBIAAgBigCCCICNgIEIAAgAUEAIAJBAXEbNgIAIAZBEGokAAtcAQF/IwBBEGsiBiQAIAFFBEBBrfnEAEEyEI8KAAsgBkEIaiABIAMgBCAFIAIoAhARNAAgBigCDCEBIAAgBigCCCICNgIEIAAgAUEAIAJBAXEbNgIAIAZBEGokAAtcAQF/IwBBEGsiBiQAIAFFBEBBrfnEAEEyEI8KAAsgBkEIaiABIAMgBCAFIAIoAhARNQAgBigCDCEBIAAgBigCCCICNgIEIAAgAUEAIAJBAXEbNgIAIAZBEGokAAtYAQJ/IwBBEGsiAiQAIAEtAABBA0cEf0EABSACQQhqIAEoAgQiASgCACABKAIEKAIkEQEAIAIoAgwhAyACKAIICyEBIAAgAzYCBCAAIAE2AgAgAkEQaiQAC1gBAn8jAEEQayICJAAgAS0AAEEDRwR/QQAFIAJBCGogASgCBCIBKAIAIAEoAgQoAhgRAQAgAigCDCEDIAIoAggLIQEgACADNgIEIAAgATYCACACQRBqJAALXQECfyMAQSBrIgMkACADQQhqEOQIQSQQcSICRQRAAAsgAkG0n8EANgIAIAIgAykCCDcCBCACIAE2AiAgAiAANgIcIAJBDGogA0EQav0AAgD9CwIAIANBIGokACACC1gBAn8jAEEgayIDJAAgABC4CiEEIAMgAjYCBCADIAQ2AgAgAiAERwRAIANBADYCCEEAIAMgA0EEaiADQQhqQeD5xAAQ9QcACyAAIAEgAhDgCSADQSBqJAALWgEBfyMAQRBrIgUkACABRQRAQa35xABBMhCPCgALIAVBCGogASADIAQgAigCEBEGACAFKAIMIQEgACAFKAIIIgI2AgQgACABQQAgAkEBcRs2AgAgBUEQaiQAC10BAn8jAEEgayIDJAAgA0EIahDkCEEkEHEiAkUEQAALIAJBiLXHADYCACACIAMpAgg3AgQgAiABNgIgIAIgADYCHCACQQxqIANBEGr9AAIA/QsCACADQSBqJAAgAgtYAQF/IwBBEGsiBCQAIAFFBEBBrfnEAEEyEI8KAAsgBEEIaiABIAMgAigCEBEFACAEKAIMIQEgACAEKAIIIgI2AgQgACABQQAgAkEBcRs2AgAgBEEQaiQAC1QBAn8CQCAAQ////z4gAJiSIgC8IgJBF3ZB/wFxIgFBlQFLDQBBgICAgHhBgICAfCABQf8Aa3UgAUH/AEkbIgFBf3MgAnFFDQAgASACcb4hAAsgAAtXAQF/IAAoAugEIAAoAvAEIgNrIAJJBEAgAEHoBGogAyACQQFBARCkBSAAKALwBCEDCyACBEAgACgC7AQgA2ogASAC/AoAAAsgACACIANqNgLwBCAAEFwLVwEBfyAAKAKoBSAAKAKwBSIDayACSQRAIABBqAVqIAMgAkEBQQEQpAUgACgCsAUhAwsgAgRAIAAoAqwFIANqIAEgAvwKAAALIAAgAiADajYCsAUgABBeC1cBAX8gACgC6AQgACgC8AQiA2sgAkkEQCAAQegEaiADIAJBAUEBEKQFIAAoAvAEIQMLIAIEQCAAKALsBCADaiABIAL8CgAACyAAIAIgA2o2AvAEIAAQXQtXAQF/IAAoAsgFIAAoAtAFIgNrIAJJBEAgAEHIBWogAyACQQFBARCkBSAAKALQBSEDCyACBEAgACgCzAUgA2ogASAC/AoAAAsgACACIANqNgLQBSAAEF8LWAEBfyAAKAKwAiAAKAK4AiIDayACSQRAIABBsAJqIAMgAkEBQQEQpAUgACgCuAIhAwsgAgRAIAAoArQCIANqIAEgAvwKAAALIAAgAiADajYCuAIgABCsAQtYAQF/IAAoArACIAAoArgCIgNrIAJJBEAgAEGwAmogAyACQQFBARCkBSAAKAK4AiEDCyACBEAgACgCtAIgA2ogASAC/AoAAAsgACACIANqNgK4AiAAELgBC1gBAX8gACgC2AIgACgC4AIiA2sgAkkEQCAAQdgCaiADIAJBAUEBEKQFIAAoAuACIQMLIAIEQCAAKALcAiADaiABIAL8CgAACyAAIAIgA2o2AuACIAAQsQELWAEBfyAAKAL4AiAAKAKAAyIDayACSQRAIABB+AJqIAMgAkEBQQEQpAUgACgCgAMhAwsgAgRAIAAoAvwCIANqIAEgAvwKAAALIAAgAiADajYCgAMgABCfAQtXAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEASAAEEELVwEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAEgABBAC1IBAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaCAAED4LUQEBfyAAKAJAIAAoAkgiA2sgAkkEQCAAQUBrIAMgAkEBQQEQpAUgACgCSCEDCyACBEAgACgCRCADaiABIAL8CgAACyAAIAIgA2o2AkggABA9C1ABA38CQAJAIAAEQCAAQQhrIgEgASgCACICQQFqIgM2AgAgA0UNASAAKAIAQf////8HTw0CIAAoAhggASACNgIAQQBHDwsQjgoLAAsQkAoAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcDAxAAgAEEBakHQwMQAIABBAmpB4MDEACACQQxqQfDAxAAQ7gUgAkEQaiQAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcioxwAgAEEBakHYqMcAIABBAmpB6KjHACACQQxqQfioxwAQ7gUgAkEQaiQAC08BAX8gACgCQCAAKAJIIgNrIAJJBEAgAEFAayADIAJBAUEBEKQFIAAoAkghAwsgAgRAIAAoAkQgA2ogASAC/AoAAAsgACACIANqNgJIQQALVQEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAFBAAtVAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEAUEAC1ABAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaEEAC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBqJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFB4J7BADYCACABIAIpAgg3AgQgASAANgIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBxJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC00AIwBBEGsiACQAIAEgAmwiAQR/IAFBwf///wdPBEBB2ObIAEErIABBD2pBtIPJAEHUg8kAEOAGAAtBwAAgARDBBAVBAAsgAEEQaiQAC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFBtLTHADYCACABIAIpAgg3AgQgASAAOgAcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFB7LTHADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1cBAn8jAEEgayIBJAACQCAAEJ8BIgINAEEAIQIgAC0AnAMNACABQQA2AhggAUEBNgIMIAFBxKPBADYCCCABQgQ3AhAgAUEIahCSByECCyABQSBqJAAgAgtXAQJ/IwBBIGsiASQAAkAgABCxASICDQBBACECIAAtAPwCDQAgAUEANgIYIAFBATYCDCABQcSjwQA2AgggAUIENwIQIAFBCGoQ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QeAAaiQADAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAmKAIAICYoAgQgJigCCCAmQRBqJAALTQEBfwJ/AkAgAigCBEUNACACKAIIIgNFDQAgAigCACADQQEgARC7AgwBCyABEHELIQIgACABNgIIIAAgAkEBIAIbNgIEIAAgAkU2AgALSwIBfwJ+IwBBEGsiASQAIAEgADUCiAEgADUChAF+QgRCAyAALQCTARsQ3QYgASkDCCECIAEpAwAhAyABQRBqJABCfyADIAJCAFIbC08AAkACQCACKAIQQQFGBEAgASgChAEgAigCFEsNAQsgAigCGEEBRw0BIAEoAogBIAIoAhxNDQELIABCAjcDCCAAQQM2AgAPCyAAQQY2AgALUAEBfyMAQRBrIgIkACACQQhqIAEgASgCACgCBBEBACACIAIoAgggAigCDCgCGBEBACACKAIEIQEgACACKAIANgIAIAAgATYCBCACQRBqJAALSAEBfyAAKAIAIAAoAggiA2sgAkkEQCAAIAMgAhD3BSAAKAIIIQMLIAIEQCAAKAIEIANqIAEgAvwKAAALIAAgAiADajYCCEEAC0gBAX8gACgCACAAKAIIIgNrIAJJBEAgACADIAIQ+AUgACgCCCEDCyACBEAgACgCBCADaiABIAL8CgAACyAAIAIgA2o2AghBAAtIAQF/IAAoAgAgACgCCCIDayACSQRAIAAgAyACEO8FIAAoAgghAwsgAgRAIAAoAgQgA2ogASAC/AoAAAsgACACIANqNgIIQQALRQEBfwJAIAFBAE4EfyABRQRAQQEhAkEAIQEMAgsgARBxIgINAUEBBSACCyABQcDowQAQkwkACyAAIAI2AgQgACABNgIAC08BAn8gACgCBCECIAAoAgAhAwJAIAAoAggiAC0AAEUNACADQbyLwwBBBCACKAIMEQAARQ0AQQEPCyAAIAFBCkY6AAAgAyABIAIoAhARAgALSgECfyAAIAAoAgQiAyACazYCBCAAIAAoAgAgAiADS3IiBDYCAEEBIQMgBAR/IAMFIAAoAggiACgCACABIAIgACgCBCgCDBEAAAsLSAEBfwJAIAFB4QBrIgFB/wFxQRlLBEBBACEBDAELIAFBAnRB/AdxIgIoAtSQSSEBIAIoAuyPSSECCyAAIAI2AgQgACABNgIAC0kCAn8BfSABKAIIIgNBgICAAXEhAiAAKgIAIQQgA0GAgICAAXFFBEAgASAEIAJBAEdBABD3Ag8LIAEgBCACQQBHIAEvAQ4QvQILRwECfyAALQANIgJBgAFNBEAgASgCACAAIAAtAAwiA2ogAiADayABKAIEKAIMEQAADwsgASgCACAAKAIAIAEoAgQoAhARAgALyQIAAkAgACACTQRAIAAgAU0gASACS3INASMAQTBrIgIkACACIAE2AgQgAiAANgIAIAJBAjYCDCACQfydwgA2AgggAkICNwIUIAIgAkEEaq1CgICAgBCENwMoIAIgAq1CgICAgBCENwMgIAIgAkEgajYCECACQQhqIAMQjQgACyMAQTBrIgEkACABIAI2AgQgASAANgIAIAFBAjYCDCABQaidwgA2AgggAUICNwIUIAEgAUEEaq1CgICAgBCENwMoIAEgAa1CgICAgBCENwMgIAEgAUEgajYCECABQQhqIAMQjQgACyMAQTBrIgAkACAAIAI2AgQgACABNgIAIABBAjYCDCAAQcidwgA2AgggAEICNwIUIAAgAEEEaq1CgICAgBCENwMoIAAgAK1CgICAgBCENwMgIAAgAEEgajYCECAAQQhqIAMQjQgAC0IBAX8jAEEgayIDJAAgA0EANgIQIANBATYCBCADQgQ3AgggAyABNgIcIAMgADYCGCADIANBGGo2AgAgAyACEI0IAAuJDQMHfwV+AXwgASgCCCIDQYCAgAFxIQIgACsDACEOIANBgICAgAFxRQRAIAJBAEchA0EAIQIjAEGAAWsiACQAIA69IQkCf0EDIA6ZRAAAAAAAAPB/YQ0AGkECIAlCgICAgICAgPj/AIMiCkKAgICAgICA+P8AUQ0AGiAJQv////////8HgyINQoCAgICAgIAIhCAJQgGGQv7///////8PgyAJQjSIp0H/D3EiAhsiC0IBgyEMIApQBEBBBCANUA0BGiACQbMIayECQgEhCiAMUAwBC0KAgICAgICAICALQgGGIAtCgICAgICAgAhRIgUbIQtCAkIBIAUbIQpBy3dBzHcgBRsgAmohAiAMUAshBSAAIAI7AXggACAKNwNwIABCATcDaCAAIAs3A2AgACAFOgB6An8CQAJAAkACQCAFQf8BcSICQQFNBEBB6rPFAEEBIAlCAFMiAhshBUHqs8UAQciBwgAg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AnQiACgCwKFJIAAoAqShSSABKAIEKAIMEQAAC+0DAQp/IwBBEGsiAyQAIwBBoANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIEIAQoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAUEIaiAAQQRqQQAQdgJ/IAEoAggiCUECRgRAIAEoAgwhAiABQQA2ApgDIAFCgICAgBA3ApADIAFBnJPBADYC0AEgAUKggICADjcC1AEgASABQZADajYCzAEgAiABQcwBahCvBA0FIAEoApADIQUgASgClAMiCCABKAKYAxDsCCEHIAUEQCAIQQRrKAIAIgZBeHEiCkEEQQggBkEDcSIGGyAFakkNByAGQQAgCiAFQSdqSxsNCCAIEKICCyACIAIoAgAoAgARAwBBAAwBCyABQcwBaiICIAFBCGpBxAH8CgAAIAIQ0QELIQIgACAAKAIAQQFrNgIAIAQgBCgCAEEBayIANgIAIABFBEAgBBDkBgsgAyAHNgIEIAMgAjYCACADIAlBAkY2AgggAUGgA2okAAwGCxCOCgsACxCQCgALQaCexgBBNyABQZ8DakG0k8EAQdiexgAQ4AYAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgAygCACADKAIEIAMoAgggA0EQaiQAC5oFAQp/IwBBEGsiAyQAIwBBsANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIFIAUoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAC0AXCICQQJHBEAgAUEgaiAAQdgAaigCADYCACABQRhqIABB0ABqKQIANwMAIAFBBmogAEHfAGotAAA6AAAgASAA/QACQP0LAwggASAALwBdOwEECyABQfgBaiABQSBqKAIANgIAIAFB8AFqIAFBGGopAwA3AwAgAUH/AWogAUEGai0AADoAACABIAH9AAMI/QsD4AEgASACOgD8ASABIAEvAQQ7AP0BIAFBJGogAEEEakEAIAFB4AFqIgQQcgJ/IAEoAiQiCUECRgRAIAEoAighAiABQQA2AqgDIAFCgICAgBA3AqADIAFBnJPBADYC5AEgAUKggICADjcC6AEgASABQaADajYC4AEgAiAEEK8EDQUgASgCoAMhBCAB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CxCQCgALLAAgASgCACAAKAIALQAAaEECdCIAKAL0h0kgACgC4IdJIAEoAgQoAgwRAAALLAAgASgCACAAKAIALQAAaEECdCIAKAKEjkkgACgC8I1JIAEoAgQoAgwRAAALLgAgAEEcakEAIAEpAgBC2v2W/+no6PrBAIUgASkCCELW+4aRyMDiv/4AhYRQGwssACAAQRxqQQAgASkCAELtwsSbx9P/rT+FIAEpAghC/J7N1v6Dwrh+hYRQGwsuACAAQRxqQQAgASkCAELtuq22zYXU9eMAhSABKQIIQviCmb2V7sbFuX+FhFAbCywAIABBHGpBACABKQIAQvep0+7yobOVe4UgASkCCEKWuaPa9sSH1CeFhFAbCysAIAEoAgAgACgCAC0AAEECdCIAKALohkkgACgCqIZJIAEoAgQoAgwRAAALKQAgASgCACAALQAAaEECdCIAKAKciEkgACgCiIhJIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAqiJSSAAKALoiEkgASgCBCgCDBEAAAslACAARQRAQa35xABBMhCPCgALIAAgAiADIAQgBSABKAIQEQ8ACysAIAEoAgAgACgCAC0AAEECdCIAKALUjUkgACgCuI1JIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAtiOSSAAKAKYjkkgASgCBCgCDBEAAAsrACABKAIAIAAoAgAtAABBAnQiACgC0JFJIAAoAryRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQp6ptofpq8f75ACFIAEpAghChJXY5rmb/qdphYRQGwsrACABKAIAIAAoAgAtAABBAnQiACgC+JFJIAAoAuSRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQvXXvMnIzNazOoUgASkCCEL+28ub8+W5xvUAhYRQGwsuACAAQSBqQQAgASkCAELhypSvjYKC2fIAhSABKQIIQqbKhrK+ypOwu3+FhFAbCy0AIABBHGpBACABKQIAQpLXooDhkqzi9QCFIAEpAghClJ2A4Jq0sLALhYRQGwslACAAQYiWwQA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAK87EEgACgClOxBIAEoAgQoAgwRAAALKAAgASgCACAALQAAQQJ0IgAoAtDtQSAAKAKc7UEgASgCBCgCDBEAAAshACAAQcDOxAA2AgQgACABQQRqQQAgAS0AAEEkRhs2AgALKAAgASgCACAALQAAQQJ0IgAoAsyISSAAKAKwiEkgASgCBCgCDBEAAAsoACABKAIAIAAtAABBAnQiACgCsIpJIAAoAuiJSSABKAIEKAIMEQAACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQsACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWUACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWcACygAIAEoAgAgAC0AAEECdCIAKALwmEkgACgCqJhJIAEoAgQoAgwRAAALIgAgASgCKEECRwRAIAAgASkC3AI3AwAPC0GsmMcAEN0JAAslACAAQailxwA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAKEo0kgACgC3KFJIAEoAgQoAgwRAAALJwAgACgCAC0AAEUEQCABQfKzxQBBBRCXAw8LIAFB97PFAEEEEJcDCyQAIAAtAABFBEAgAUHys8UAQQUQlwMPCyABQfezxQBBBBCXAwshACAARQRAQa35xABBMhCPCgALIAAgAiADIAEoAhARBQALIQAgAEUEQEGt+cQAQTIQjwoACyAAIAIgAyABKAIQEQAACyEAIAEoAgAgAC0AAEECdCgCiOxBQQEgASgCBCgCDBEAAAsiACABIAAtAABBAnQiACgCiIZJIAAoAuiFSSACKAIMEQAACx4AIABBwM7EADYCBCAAQQAgAUEEaiABLQAAGzYCAAscACABIAAoAgAiAEEEaigCACAAQQhqKAIAEJcDCx8AIABFBEBBrfnEAEEyEI8KAAsgACACIAEoAhARAgALthQBEn8Q2gQiCyABJgECfyAAIQ0Q2gQiEiACJgEgCyETIwBBQGoiByQAIAsQuAohAEHUtMkAKAIARQRAAkBBkLXJACgCACELQYy1yQAoAgAhBEGMtckAQoCAgIDAADcCAEGEtckAKAIAIQhBhLXJAEIE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ACgCACEHIA1BACADEOEIIgAQuAohCSAEIAM2AhggBCAJNgIMIAMgCUcNASAAIAcgAxDgCSAAQYQISQ0CIAAQmwcMAgtBACADIABB3OvAABDqBwALDAELIAhBhAhPBEAgCBCbBwtBrLTJAEGstMkAKAIAQQFqNgIAIA1BhAhPBEAgDRCbBwsgDkGECE8EQCAOEJsHCyAEQUBrJAAgAwwBCyAEQQA2AihBACAEQQxqIARBGGogBEEoakHg+cQAEPUHAAsLHAAgAEEEahDqAiAAKAIkIgAgACgCACgCABEDAAscACAAKAIAIgAoAgAgASAAQQRqKAIAKAIQEQIACxwAIAAoAgAiACgCACABIABBBGooAgAoAgwRAgALFAAgACAAIAEgACABXRsgASABXBsLFAAgASABIAAgACABXRsgACAAXBsLGwEBbyAAJQEgASACEAAhAxDaBCIAIAMmASAACxsBAW8gACUBIAElARAJIQIQ2gQiACACJgEgAAscAQFvIAAlASABJQEgARCbByACJQEgAhCbBxALCx8AQYi7yQAtAABFBEBBiLvJAEEBOgAACyAAQQE2AgALHQAgASAALQAAQQJ0IgAoAqSESSAAKAKQhEkQlwMLHAAgASgCACAAKAIAIAAoAgQgASgCBCgCDBEAAAsZACABIAAoAgAiACgCACAAQQRqKAIAEJcDCxkBAW8gACUBIAEQDCECENoEIgAgAiYBIAALFwAgACgCACABIAAoAgRBDGooAgARAgALFQAgACgCACIAQYQITwRAIAAQmwcLCxcBAW8gACABEA8hAhDaBCIAIAImASAACxcBAW8gACABECwhAhDaBCIAIAImASAACxYAIAEgACgCACIAKAIAIAAoAgQQlwMLGQAgASgCAEGQl8cAQRMgASgCBCgCDBEAAAsZACABKAIAQdmXxwBBFyABKAIEKAIMEQAACxkAIAEoAgBB6ZLGAEEIIAEoAgQoAgwRAAALGQAgASgCAEGjl8cAQRAgASgCBCgCDBEAAAsZACABKAIAQaTlwABBFCABKAIEKAIMEQAACxkAIAEoAgBB5ZLGAEEEIAEoAgQoAgwRAAALGQAgASgCAEGilscAQQwgASgCBCgCDBEAAAsZACABKAIAQYWQxgBBAyABKAIEKAIMEQAACxkAIAEoAgBB8JfHAEEUIAEoAgQoAgwR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AgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOQGCwwDCxCOCgsACxCQCgALC4gBAQN/ENoEIgMgASYBAkACQAJAIAAEQCAAQQhrIgIgAigCAEEBaiIENgIAIARFDQEgACgCAA0CIABBfzYCACAAQQhqKAIAIABBDGooAgAgAxCtAyAAIAAoAgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOMGCwwDCxCOCgsACxCQCgALCxEAIAEgACgCACAAKAIEEJcDCxMAIABBKDYCBCAAQZifxwA2AgALEQAgASAAKAIEIAAoAggQlwMLEwAgAEHomsEANgIEIAAgATYCAAsTACAAQaSbwQA2AgQgACABNgIACxMAIABB4JvBADYCBCAAIAE2AgALEwAgAEGMnMEANgIEIAAgATYCAAsTACAAQcicwQA2AgQgACABNgIACxMAIABBhJ3BADYCBCAAIAE2AgALEwAgAEHAncEANgIEIAAgATYCAAsTACAAQfydwQA2AgQgACABNgIACxEAIAAoAgQgACgCCCABELUCCxEAIAEoAgAgASgCBCAAEMEDCxwAIABBmLvP7AM2AgggAELQ5+byk+vFmz83AgALEQAgACgCACAAKAIEIAEQtQILEwAgAEHMs8cANgIEIAAgATYCAAsTACAAQdyxxwA2AgQgACABNgIACxMAIABBiLTHADYCBCAAIAE2AgALEwAgAEHUsscANgIEIAAgATYCAAsTACAAQZiyxwA2AgQgACABNgIACxMAIABBkLPHADYCBCAAIAE2AgALEwAgAEG8jMgANgIEIAAgATYCAAsWAEG4u8kAIAA2AgBBtLvJAEEBOgAACxEBAX8Q2gQiASAAJQEmASABCw4AIAAlASABJQFBABAWCw8AQayewgBBKyAAEOsHAAtpAQF/IwBBMGsiAyQAIAMgADYCBCADIAE2AgAgA0EDNgIMIANB+JvCADYCCCADQgI3AhQgAyADQQRqrUKAgICAEIQ3AyggAyADrUKAgICAEIQ3AyAgAyADQSBqNgIQIANBCGogAhCNCAALEgAgACABLQDoBC0A+J1JOgAACwwAIAAlASABIAIQAgsMACAAIAEgAiUBEAMLDQAgACUBIAElARAIGgsMACAAIAEgAiUBEBkLEQAgAEGohsEA/QACAP0LAgALEQAgAEG4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IAEgAEGAgIB8IApBAWp1IAdxvpMiAJK8BSAJC0GAgH5xviICQwByMT+UIgUgAkOMvr81lCABIAIgAJOTQxhyMT+UkiICkiIAIAAgACAAIACUIgEgASABIAEgAUNMuzEzlEMO6t21kpRDVbOKOJKUQ2ELNruSlEOrqio+kpSTIgGUIAFDAAAAwJKVIAIgACAFk5MiASAAIAGUkpOTQwAAgD+SIgC8IAhBF3RqIglBgICABE4EQCAJvgwBCyAAIAgQsAYLlCECCyACDAMLIAVDYEKiDZRDYEKiDZQMAgsgBUNgQqINlENgQqINlAwBCyAFQ8rySXGUQ8rySXGUCwsIACAAJQEQAQsIACAAJQEQCgsIACAAJQEQFQsIACAAJQEQFwsIACAAJQEQGwsIACAALQDoBAsHABAqEIUICwQAQQALBABBAQsCAAsLtK4JiAEAQYCAwAAL8WFpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdAAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvc3B6LnJzAGxpYnJhcnkvY29yZS9zcmMvc3RyL2xvc3N5LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9wbHkucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL2xlZ2FjeS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL2l0ZXIvYWRhcHRlcnMvc3RlcF9ieS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvdHdvd2F5LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvaW5mbGF0ZS93aW5kb3cucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy95dXYucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZmx0MmRlYy9zdHJhdGVneS9ncmlzdS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc2hhcmVkL3NtYWxsc29ydC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL3F1aWNrc29ydC5ycwBzcGFyay13b3JrZXItcnMvc3JjL3NvcnQucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvYm94ZWQvY29udmVydC5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9mbXQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9mbXQucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZGl5X2Zsb2F0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy90c3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2tzcGxhdC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvYW50aXNwbGF0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9nc3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2NzcGxhdC5ycwBzcGFyay13b3JrZXItcnMvc3JjL2V4dF9zcGxhdHMucnMAc3Bhcmstd29ya2VyLXJzL3NyYy9wYWNrZWRfc3BsYXRzLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvZmRlZmxhdGUtMC4zLjcvc3JjL2RlY29tcHJlc3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzcy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2NvcmUtMS4wLjIyOC9zcmMvZGUvaW1wbHMucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL3NvZ3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlL2luZnRyZWVzLnJzAGxpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9tdXRleC9ub190aHJlYWRzLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9vbmNlL25vX3RocmVhZHMucnMAbGlicmFyeS9hbGxvYy9zcmMvc3RyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaXRlci90cmFpdHMvaXRlcmF0b3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9lcnJvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZXJyb3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2xvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9nZW5lcmljL3BhY2tlZHBhaXIucnMAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9tZW1jaHIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb29wX2ZpbHRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2luZmxhdGUvd3JpdGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaXRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2luZGV4bWFwLTIuMTMuMC9zcmMvaW5uZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9vdXRwdXRfYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci91bmZpbHRlcmluZ19idWZmZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9pbWFnZXMvYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci9yZWFkX2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy92cDhfYXJpdGhtZXRpY19kZWNvZGVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvY29kZWNzL3dlYnAvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL3JlYWQvbWFnaWNfZmluZGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvY21wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9leHRyYV9maWVsZHMvZXh0ZW5kZWRfdGltZXN0YW1wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvbWV0YWRhdGEvY2ljcC5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vc3RkaW8ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2NvbW1vbi5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL29wcy9mdW5jdGlvbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL3N0cmF0ZWd5L2RyYWdvbi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ZkZWZsYXRlLTAuMy43L3NyYy9odWZmbWFuLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvaHVmZm1hbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9iaWdudW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzc190cmFuc2Zvcm0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3RyYW5zZm9ybS5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vYnVmZmVyZWQvbGluZXdyaXRlcnNoaW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3N0cmVhbS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvdGhyZWFkL2xvY2FsLnJzAGxpYnJhcnkvc3RkL3NyYy9zeW5jL2xhenlfbG9jay5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3luYy9yZWVudHJhbnRfbG9jay5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvc3luYy9vbmNlX2xvY2sucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2RlY3MvcG5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwBsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaW8vYm9ycm93ZWRfYnVmLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTcvc3JjL2V4dGVybnJlZi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvdHJhbnNmb3JtL3BhbGV0dGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvYWxsb2NhdGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9jb3JlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvaW8vaW1hZ2VfcmVhZGVyX3R5cGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9zdGFibGUucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3ByaW50YWJsZS5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvY2h1bmtfdHJlZS5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xvZF90cmVlLnJzAHNwYXJrLWxpYi9zcmMvc3BsYXRfZW5jb2RlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtMS4wLjIyOC9zcmMvcHJpdmF0ZS9kZS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZGUucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL3N5bmMvcG9pc29uL29uY2UucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvc2xpY2UucnMAbGlicmFyeS9zdGQvc3JjL2JhY2t0cmFjZS5ycwAvcnVzdC9kZXBzL2hhc2hicm93bi0wLjE1LjUvc3JjL3Jhdy9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9oYXNoYnJvd24tMC4xNi4xL3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvcGFja2VkcGFpci9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL21vZC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy9iaW5hcnlfaGVhcC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL2lvL21vZC5ycwBsaWJyYXJ5L3N0ZC9zcmMvLi4vLi4vYmFja3RyYWNlL3NyYy9zeW1ib2xpemUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWluaXpfb3hpZGUtMC44Ljkvc3JjL2luZmxhdGUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAbGlicmFyeS9zdGQvc3JjL3RocmVhZC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvdmVjL21vZC5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL21vZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvdGlueV9sb2QucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2JoYXR0X2xvZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2NyYzMyL2JyYWlkLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3ZlYy9zcGVjX2Zyb21faXRlcl9uZXN0ZWQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9leHRlbmRlZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvcmFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfanNvbi0xLjAuMTQ1L3NyYy9yZWFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9yZWFkLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjEwL3NyYy9kbG1hbGxvYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvc3BlYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvemxpYi5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NvbnNvbGVfZXJyb3JfcGFuaWNfaG9vay0wLjEuNy9zcmMvbGliLnJzAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI2L3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZS13YXNtLWJpbmRnZW4tMC42LjUvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2pzLXN5cy0wLjMuOTQvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NtYWxsdmVjLTEuMTUuMS9zcmMvbGliLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvdGV4dF9tZXRhZGF0YS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3VuaWNvZGUvdW5pY29kZV9kYXRhLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvdnA4LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvYWRhbTcucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL2NwNDM3LnJzAHNwYXJrLWxpYi9zcmMvc3ltbWF0My5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvY3JjMzIucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL3YwLnJzAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGludmFsaWQgd2luZG93IHNpemUAcmVwZWF0ZWQgY2FsbCB3aXRoIGJhZCBzdGF0ZQBpbnZhbGlkIGJsb2NrIHR5cGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABJSSoA7AUQACQAAABEAwAADQAAAOwFEAAkAAAARQMAAA0AAADsBRAAJAAAAEYDAAANAAAA7AUQACQAAABDAwAA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dWN0IFJhZE1ldGEgd2l0aCAxMSBlbGVtZW50cwAAAFY+EAAfAAAAAAAAAAgAAAAEAAAAqgAAAGZpbGVzbWluc21heHNzaGFwZXN0cnVjdCBNZWFucyB3aXRoIDQgZWxlbWVudHMAAKI+EAAcAAAAZW5jb2RpbmdzdHJ1Y3QgUXVhdHMgd2l0aCAyIGVsZW1lbnRz0D4QABwAAABzdHJ1Y3QgU2gwVjEgd2l0aCAzIGVsZW1lbnRz9D4QABwAAABjb2RlYm9va3N0cnVjdCBTaDBWMiB3aXRoIDIgZWxlbWVudHMgPxAAHAAAAHN0cnVjdCBTaE5WMSB3aXRoIDQgZWxlbWVudHNEPxAAHAAAAGJhbmRzc3RydWN0IFNoTlYyIHdpdGggMyBlbGVtZW50cwAAAG0/EAAcAAAAc3RydWN0IE1lYW5zVjEgd2l0aCA0IGVsZW1lbnRzAACUPxAAHgAAAG1lYW5zc2NhbGVzcXVhdHNzaDBzaE5zdHJ1Y3QgUGNTb2dzVjEgd2l0aCA1IGVsZW1lbnRzAAAA0j8QAB8AAABzdHJ1Y3QgUGNTb2dzVjIgd2l0aCA3IGVsZW1lbnRzAPw/EAAfAAAAc3RydWN0IFNjYWxlc1YxIHdpdGggMyBlbGVtZW50cwAkQBAAHwAAAHN0cnVjdCBTY2FsZXNWMiB3aXRoIDIgZWxlbWVudHMATEAQAB8AAABiYXNlcGF5bG9hZEJ5dGVzcHJvcGVydGllc3N0cnVjdCBSYWRDaHVua01ldGEgd2l0aCA4IGVsZW1lbnRzAAAAjkAQACMAAABnc3BsYXQAALxAEAAGAAAAb2Zmc2V0ZmlsZW5hbWVzdHJ1Y3QgUmFkQ2h1bmtSYW5nZSB3aXRoIDUgZWxlbWVudHMAANpAEAAkAAAAY29tcHJlc3Npb25taW5tYXhzdHJ1Y3QgUmFkQ2h1bmtQcm9wZXJ0eSB3aXRoIDcgZWxlbWVudHMZQRAAJwAAAGEgc2VxdWVuY2UAANsGEABmAAAAjQQAABwAAABzdHJ1Y3QgU2V0U3BsYXRFbmNvZGluZyB3aXRoIDggZWxlbWVudHMAZEEQACcAAABjZW50ZXJhbHBoYXJnYm9yaWVudGF0aW9uY2hpbGRfY291bnRjaGlsZF9zdGFydHNoMV9jb2Rlc2gyX2NvZGVzaDNfY29kZXNoX2xhYmVsAJRBEAAGAAAAmkEQAAUAAACfQRAAAwAAAME/EAAGAAAAokEQAAsAAAD4MxAAAwAAAPszEAADAAAADDYQAAMAAACtQRAACwAAALhBEAALAAAAw0EQAAgAAADLQRAACAAAANNBEAAIAAAA20EQAAgAAABmMTZmMzJfbGVieXRlc2YxNl9sZWJ5dGVzcjhyOF9kZWx0YXM4czhfZGVsdGFsbl8wcjhsbl9mMTZvY3Q4OHI4AogRAAMAAABUQhAAAwAAAFdCEAALAAAAYkIQAAsAAABtQhAAAgAAAG9CEAAIAAAAd0IQAAIAAAB5QhAACAAAAIFCEAAGAAAAh0IQAAYAAACNQhAABwAAAAdZEQADAAAABYgRAAMAQYSGwQALBQEAAACrAEGUhsEAC50NAQAAAKwAAABnegAAHEMQAAIAAACGV40hJKv8MZsV7Rqk/AqGIZHXkOAZBnMEwoE6QC5Aw02j52ZMofSR0h1OTNnv/LcqkTKWy/Ri3BOYR0yo5sJKZQUUCIJCw8J7T1YBdnE/LlNbgd6v+j3VsO5PRvEo+g1lOjkDtdomfifhYlnYlyaf521Pxr7v5E2F7c0GCuf+P/3rIsETwTMoA+inBzqud1sRrxXgIBVknwBi1PJVeIx7Aisj8rJUn2yy7loDmsKEpY45WsRC9+oSngcEldKewYpCm/q8AgqVZ7gNAZD9VtBrMivi9KBl2ERiQe5Ii0cFQ/5K+mCCgfdMVeJBLcgvjfuPC2mlqkI9RC+bfJ3D8Sr9x01mLnzmSbxuYaNTlztp3pcpSPbzROrxa62j6ZmoBdH97HYrR635JQTfXlV6a8Ovn+m9tKIApq4QCN4uyBE87DPEa42psDZg7WP62RG4/bUIrvZnfsvyWSH/wjd06x+Py+lMtpuEl8Ltn4DSZSE7nX4v+OWiItk2yi53ifdj62Zde1sqPTuH9PUU2hK7pnF7Y1zUyuJJAK68UxeBqShYoeSyUAtPu+nwuxBgZKitiEsgHhagE5RBXb1l1/jQzzzaT25jZSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAADoRBAAKgAAAL8aEABTAAAAnAAAADIAAABzFBAATwAAAC8CAAAmAAAATw8QAGYAAACkAAAAKgAAAE8PEABmAAAABAEAACUAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAABcRRAAsAAAALEAAACyAAAAsAAAALMAAABBRVMgZW5jcnlwdGVkIGZpbGVzIGNhbm5vdCBiZSBkZWNyeXB0ZWQgd2l0aG91dCB0aGUgYWVzLWNyeXB0byBmZWF0dXJlLlZhcmlhYmxlLWxlbmd0aCBmaWVsZCBleHRlbmRzIGJleW9uZCBmaWxlIGJvdW5kYXJ5QUVTIGVuY3J5cHRpb24gd2l0aG91dCBBRVMgZXh0cmEgZGF0YSBmaWVsZEFyY2hpdmUgaGVhZGVyIGlzIHRvbyBsYXJnZQDOIRAAWQAAAOYCAAAZAAAAziEQAFkAAADqAgAAEwAAAE92ZXJzaXplZCBjZW50cmFsIGRpcmVjdG9yeVN1cHBvcnQgZm9yIG11bHRpLWRpc2sgZmlsZXMgaXMgbm90IGltcGxlbWVudGVkemlwOjp0eXBlczo6WmlwQ2VudHJhbEVudHJ5QmxvY2sAAFBLAQJJbnZhbGlkIENlbnRyYWwgRGlyZWN0b3J5IGhlYWRlcnppcDo6c3BlYzo6WmlwMzJDREVCbG9ja1BLBQZJbnZhbGlkIGRpZ2l0YWwgc2lnbmF0dXJlIGhlYWRlcgAAAIAkRxAAIAAAAHppcDo6c3BlYzo6WmlwNjRDREVMb2NhdG9yQmxvY2tJbnZhbGlkIHppcDY0IGxvY2F0b3IgZGlnaXRhbCBzaWduYXR1cmUgaGVhZGVyAAAAAAAAgG9HEAAuAAAAemlwOjpzcGVjOjpaaXA2NENERUJsb2NrUEsGBkludmFsaWQgRU9DRDY0OiBpbmNvbnNpc3RlbnQgbGVuZ3RoSW52YWxpZCBFT0NENjQ6IGluY29uc2lzdGVuY3kgd2l0aCBMb2NhdG9yIGRhdGFJbnZhbGlkIEVPQ0Q2NDogaW5jb25zaXN0ZW50IG51bWJlciBvZiBmaWxlc0NvdWxkIG5vdCBmaW5kIEVPQ0Q2NE11bHRpLWRpc2sgWklQIGZpbGVzIGFyZSBub3Qgc3VwcG9ydGVkSW52YWxpZCBFT0NENjQgTG9jYXRvciBDRCBvZmZzZXRObyBDREZIIGZvdW5kSW52YWxpZCBDREZIIG9mZnNldCBpbiBFT0NESW52YWxpZCBFT0NEIGNvbW1lbnQgbGVuZ3RoQ291bGQg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AIgCAACvAQAAsAEAALEBAACKAgAAsgEAAIsCAACzAQAAtAEAALUBAAC2AQAAtwEAAJICAAC4AQAAuQEAALwBAAC9AQAAxAEAAMYBAADFAQAAxgEAAMcBAADJAQAAyAEAAMkBAADKAQAAzAEAAMsBAADMAQAAzQEAAM4BAADPAQAA0AEAANEBAADSAQAA0wEAANQBAADVAQAA1gEAANcBAADYAQAA2QEAANoBAADbAQAA3AEAAN4BAADfAQAA4AEAAOEBAADiAQAA4wEAAOQBAADlAQAA5gEAAOcBAADoAQAA6QEAAOoBAADrAQAA7AEAAO0BAADuAQAA7wEAAPEBAADzAQAA8gEAAPMBAAD0AQAA9QEAAPYBAACVAQAA9wEAAL8BAAD4AQAA+QEAAPoBAAD7AQAA/AEAAP0BAAD+AQAA/wEAAAACAAABAgAAAgIAAAMCAAAEAgAABQIAAAYCAAAHAgAACAIAAAkCAAAKAgAACwIAAAwCAAANAgAADgIAAA8CAAAQAgAAEQIAABICAAATAgAAFAIAABUCAAAWAgAAFwIAABgCAAAZAgAAGgIAABsCAAAcAgAAHQIAAB4CAAAfAgAAIAIAAJ4BAAAiAgAAIwIAACQCAAAlAgAAJgIAACcCAAAoAgAAKQIAACoCAAArAgAALAIAAC0CAAAuAgAALwIAADACAAAxAgAAMgIAADMCAAA6AgAAZSwAADsCAAA8AgAAPQIAAJoBAAA+AgAAZiwAAEECAABCAgAAQwIAAIABAABEAgAAiQIAAEUCAACMAgAARgIAAEcCAABIAgAASQIAAEoCAABLAgAATAIAAE0CAABOAgAATwIAAHADAABxAwAAcgMAAHMDAAB2AwAAdwMAAH8DAADzAwAAhgMAAKwDAACIAwAArQMAAIkDAACuAwAAigMAAK8DAACMAwAAzAMAAI4DAADNAwAAjwMAAM4DAACRAwAAsQMAAJIDAACyAwAAkwMAALMDAACUAwAAtAMAAJUDAAC1AwAAlgMAALYDAACXAwAAtwMAAJgDAAC4AwAAmQMAALkDAACaAwAAugMAAJsDAAC7AwAAnAMAALwDAACdAwAAvQMAAJ4DAAC+AwAAnwMAAL8DAACgAwAAwAMAAKEDAADBAwAAowMAAMMDAACkAwAAxAMAAKUDAADFAwAApgMAAMYDAACnAwAAxwMAAKgDAADIAwAAqQMAAMkDAACqAwAAygMAAKsDAADLAwAAzwMAANcDAADYAwAA2QMAANoDAADbAwAA3AMAAN0DAADeAwAA3wMAAOADAADhAwAA4gMAAOMDAADkAwAA5QMAAOYDAADnAwAA6AMAAOkDAADqAwAA6wMAAOwDAADtAwAA7gMAAO8DAAD0AwAAuAMAAPcDAAD4AwAA+QMAAPIDAAD6AwAA+wMAAP0DAAB7AwAA/gMAAHwDAAD/AwAAfQMAAAAEAABQBAAAAQQAAFEEAAACBAAAUgQAAAMEAABTBAAABAQAAFQEAAAFBAAAVQQAAAYEAABWBAAABwQAAFcEAAAIBAAAWAQAAAkEAABZBAAACgQAAFoEAAALBAAAWwQAAAwEAABcBAAADQQAAF0EAAAOBAAAXgQAAA8EAABfBAAAEAQAADAEAAARBAAAMQQAABIEAAAyBAAAEwQAADMEAAAUBAAANAQAABUEAAA1BAAAFgQAADYEAAAXBAAANwQAABgEAAA4BAAAGQQAADkEAAAaBAAAOgQAABsEAAA7BAAAHAQAADwEAAAdBAAAPQQAAB4EAAA+BAAAHwQAAD8EAAAgBAAAQAQAACEEAABBBAAAIgQAAEIEAAAjBAAAQwQAACQEAABEBAAAJQQAAEUEAAAmBAAARgQAACcEAABHBAAAKAQAAEgEAAApBAAASQQAACoEAABKBAAAKwQAAEsEAAAsBAAATAQAAC0EAABNBAAALgQAAE4EAAAvBAAATwQAAGAEAABhBAAAYgQAAGMEAABkBAAAZQQAAGYEAABnBAAAaAQAAGkEAABqBAAAawQAAGwEAABtBAAAbgQAAG8EAABwBAAAcQQAAHIEAABzBAAAdAQAAHUEAAB2BAAAdwQAAHgEAAB5BAAAegQAAHsEAAB8BAAAfQQAAH4EAAB/BAAAgAQAAIEEAACKBAAAiwQAAIwEAACNBAAAjgQAAI8EAACQBAAAkQQAAJIEAACTBAAAlAQAAJUEAACWBAAAlwQAAJgEAACZBAAAmgQAAJsEAACcBAAAnQQAAJ4EAACfBAAAoAQAAKEEAACiBAAAowQAAKQEAAClBAAApgQAAKcEAACoBAAAqQQAAKoEAACrBAAArAQAAK0EAACuBAAArwQAALAEAACxBAAAsgQAALMEAAC0BAAAtQQAALYEAAC3BAAAuAQAALkEAAC6BAAAuwQAALwEAAC9BAAAvgQAAL8EAADABAAAzwQAAMEEAADCBAAAwwQAAMQEAADFBAAAxgQAAMcEAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAADOBAAA0AQAANEEAADSBAAA0wQAANQEAADVBAAA1gQAANcEAADYBAAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAA4gQAAOMEAADkBAAA5QQAAOYEAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAO8EAADwBAAA8QQAAPIEAADzBAAA9AQAAPUEAAD2BAAA9wQAAPgEAAD5BAAA+gQAAPsEAAD8BAAA/QQAAP4EAAD/BAAAAAUAAAEFAAACBQAAAwUAAAQFAAAFBQAABgUAAAcFAAAIBQAACQUAAAoFAAALBQAADAUAAA0FAAAOBQAADwUAABAFAAARBQAAEgUAABMFAAAUBQAAFQUAABYFAAAXBQAAGAUAABkFAAAaBQAAGwUAABwFAAAdBQAAHgUAAB8FAAAgBQAAIQUAACIFAAAjBQAAJAUAACUFAAAmBQAAJwUAACgFAAApBQAAKgUAACsFAAAsBQAALQUAAC4FAAAvBQAAMQUAAGEFAAAyBQAAYgUAADMFAABjBQAANAUAAGQFAAA1BQAAZQUAADYFAABmBQAANwUAAGcFAAA4BQAAaAUAADkFAABpBQAAOgUAAGoFAAA7BQAAawUAADwFAABsBQAAPQUAAG0FAAA+BQAAbgUAAD8FAABvBQAAQAUAAHAFAABBBQAAcQUAAEIFAAByBQAAQwUAAHMFAABEBQAAdAUAAEUFAAB1BQAARgUAAHYFAABHBQAAdwUAAEgFAAB4BQAASQUAAHkFAABKBQAAegUAAEsFAAB7BQAATAUAAHwFAABNBQAAfQUAAE4FAAB+BQAATwUAAH8FAABQBQAAgAUAAFEFAACBBQAAUgUAAIIFAABTBQAAgwUAAFQFAACEBQAAVQUAAIUFAABWBQAAhgUAAKAQAAAALQAAoRAAAAEtAACiEAAAAi0AAKMQAAADLQAApBAAAAQtAAClEAAABS0AAKYQAAAGLQAApxAAAActAACoEAAACC0AAKkQAAAJLQAAqhAAAAotAACrEAAACy0AAKwQAAAMLQAArRAAAA0tAACuEAAADi0AAK8QAAAPLQAAsBAAABAtAACxEAAAES0AALIQAAASLQAAsxAAABMtAAC0EAAAFC0AALUQAAAVLQAAthAAABYtAAC3EAAAFy0AALgQAAAYLQAAuRAAABktAAC6EAAAGi0AALsQAAAbLQAAvBAAABwtAAC9EAAAHS0AAL4QAAAeLQAAvxAAAB8tAADAEAAAIC0AAMEQAAAhLQAAwhAAACItAADDEAAAIy0AAMQQAAAkLQAAxRAAACUtAADHEAAAJy0AAM0QAAAtLQAAoBMAAHCrAAChEwAAcasAAKITAAByqwAAoxMAAHOrAACkEwAAdKsAAKUTAAB1qwAAphMAAHarAACnEwAAd6sAAKgTAAB4qwAAqRMAAHmrAACqEwAAeqsAAKsTAAB7qwAArBMAAHyrAACtEwAAfasAAK4TAAB+qwAArxMAAH+rAACwEwAAgKsAALETAACBqwAAshMAAIKrAACzEwAAg6sAALQTAACEqwAAtRMAAIWrAAC2EwAAhqsAALcTAACHqwAAuBMAAIirAAC5EwAAiasAALoTAACKqwAAuxMAAIurAAC8EwAAjKsAAL0TAACNqwAAvhMAAI6rAAC/EwAAj6sAAMATAACQqwAAwRMAAJGrAADCEwAAkqsAAMMTAACTqwAAxBMAAJSrAADFEwAAlasAAMYTAACWqwAAxxMAAJerAADIEwAAmKsAAMkTAACZqwAAyhMAAJqrAADLEwAAm6sAAMwTAACcqwAAzRMAAJ2rAADOEwAAnqsAAM8TAACfqwAA0BMAAKCrAADREwAAoasAANITAACiqwAA0xMAAKOrAADUEwAApKsAANUTAAClqwAA1hMAAKarAADXEwAAp6sAANgTAACoqwAA2RMAAKmrAADaEwAAqqsAANsTAACrqwAA3BMAAKyrAADdEwAArasAAN4TAACuqwAA3xMAAK+rAADgEwAAsKsAAOETAACxqwAA4hMAALKrAADjEwAAs6sAAOQTAAC0qwAA5RMAALWrAADmEwAAtqsAAOcTAAC3qwAA6BMAALirAADpEwAAuasAAOoTAAC6qwAA6xMAALurAADsEwAAvKsAAO0TAAC9qwAA7hMAAL6rAADvEwAAv6sAAPATAAD4EwAA8RMAAPkTAADyEwAA+hMAAPMTAAD7EwAA9BMAAPwTAAD1EwAA/RMAAIkcAACKHAAAkBwAANAQAACRHAAA0RAAAJIcAADSEAAAkxwAANMQAACUHAAA1BAAAJUcAADVEAAAlhwAANYQAACXHAAA1xAAAJgcAADYEAAAmRwAANkQAACaHAAA2hAAAJscAADbEAAAnBwAANwQAACdHAAA3RAAAJ4cAADeEAAAnxwAAN8QAACgHAAA4BAAAKEcAADhEAAAohwAAOIQAACjHAAA4xAAAKQcAADkEAAApRwAAOUQAACmHAAA5hAAAKccAADnEAAAqBwAAOgQAACpHAAA6RAAAKocAADqEAAAqxwAAOsQAACsHAAA7BAAAK0cAADtEAAArhwAAO4QAACvHAAA7xAAALAcAADwEAAAsRwAAPEQAACyHAAA8hAAALMcAADzEAAAtBwAAPQQAAC1HAAA9RAAALYcAAD2EAAAtxwAAPcQAAC4HAAA+BAAALkcAAD5EAAAuhwAAPoQAAC9HAAA/RAAAL4cAAD+EAAAvxwAAP8QAAAAHgAAAR4AAAIeAAADHgAABB4AAAUeAAAGHgAABx4AAAgeAAAJHgAACh4AAAseAAAMHgAADR4AAA4eAAAPHgAAEB4AABEeAAASHgAAEx4AABQeAAAVHgAAFh4AABceAAAYHgAAGR4AABoeAAAbHgAAHB4AAB0eAAAeHgAAHx4AACAeAAAhHgAAIh4AACMeAAAkHgAAJR4AACYeAAAnHgAAKB4AACkeAAAqHgAAKx4AACweAAAtHgAALh4AAC8eAAAwHgAAMR4AADIeAAAzHgAANB4AADUeAAA2HgAANx4AADgeAAA5HgAAOh4AADseAAA8HgAAPR4AAD4eAAA/HgAAQB4AAEEeAABCHgAAQx4AAEQeAABFHgAARh4AAEceAABIHgAASR4AAEoeAABLHgAATB4AAE0eAABOHgAATx4AAFAeAABRHgAAUh4AAFMeAABUHgAAVR4AAFYeAABXHgAAWB4AAFkeAABaHgAAWx4AAFweAABdHgAAXh4AAF8eAABgHgAAYR4AAGIeAABjHgAAZB4AAGUeAABmHgAAZx4AAGgeAABpHgAAah4AAGseAABsHgAAbR4AAG4eAABvHgAAcB4AAHEeAAByHgAAcx4AAHQeAAB1HgAAdh4AAHceAAB4HgAAeR4AAHoeAAB7HgAAfB4AAH0eAAB+HgAAfx4AAIAeAACBHgAAgh4AAIMeAACEHgAAhR4AAIYeAACHHgAAiB4AAIkeAACKHgAAix4AAIweAACNHgAAjh4AAI8eAACQHgAAkR4AAJIeAACTHgAAlB4AAJUeAACeHgAA3wAAAKAeAAChHgAAoh4AAKMeAACkHgAApR4AAKYeAACnHgAAqB4AAKkeAACqHgAAqx4AAKweAACtHgAArh4AAK8eAACwHgAAsR4AALIeAACzHgAAtB4AALUeAAC2HgAAtx4AALgeAAC5HgAAuh4AALseAAC8HgAAvR4AAL4eAAC/HgAAwB4AAMEeAADCHgAAwx4AAMQeAADFHgAAxh4AAMceAADIHgAAyR4AAMoeAADLHgAAzB4AAM0eAADOHgAAzx4AANAeAADRHgAA0h4AANMeAADUHgAA1R4AANYeAADXHgAA2B4AANkeAADaHgAA2x4AANweAADdHgAA3h4AAN8eAADgHgAA4R4AAOIeAADjHgAA5B4AAOUeAADmHgAA5x4AAOgeAADpHgAA6h4AAOseAADsHgAA7R4AAO4eAADvHgAA8B4AAPEeAADyHgAA8x4AAPQeAAD1HgAA9h4AAPceAAD4HgAA+R4AAPoeAAD7HgAA/B4AAP0eAAD+HgAA/x4AAAgfAAAAHwAACR8AAAEfAAAKHwAAAh8AAAsfAAADHwAADB8AAAQfAAANHwAABR8AAA4fAAAGHwAADx8AAAcfAAAYHwAAEB8AABkfAAARHwAAGh8AABIfAAAbHwAAEx8AABwfAAAUHwAAHR8AABUfAAAoHwAAIB8AACkfAAAhHwAAKh8AACIfAAArHwAAIx8AACwfAAAkHwAALR8AACUfAAAuHwAAJh8AAC8fAAAnHwAAOB8AADAfAAA5HwAAMR8AADofAAAyHwAAOx8AADMfAAA8HwAANB8AAD0fAAA1HwAAPh8AADYfAAA/HwAANx8AAEgfAABAHwAASR8AAEEfAABKHwAAQh8AAEsfAABDHwAATB8AAEQfAABNHwAARR8AAFkfAABRHwAAWx8AAFMfAABdHwAAVR8AAF8fAABXHwAAaB8AAGAfAABpHwAAYR8AAGofAABiHwAAax8AAGMfAABsHwAAZB8AAG0fAABlHwAAbh8AAGYfAABvHwAAZx8AAIgfAACAHwAAiR8AAIEfAACKHwAAgh8AAIsfAACDHwAAjB8AAIQfAACNHwAAhR8AAI4fAACGHwAAjx8AAIcfAACYHwAAkB8AAJkfAACRHwAAmh8AAJIfAACbHwAAkx8AAJwfAACUHwAAnR8AAJUfAACeHwAAlh8AAJ8fAACXHwAAqB8AAKAfAACpHwAAoR8AAKofAACiHwAAqx8AAKMfAACsHwAApB8AAK0fAAClHwAArh8AAKYfAACvHwAApx8AALgfAACwHwAAuR8AALEfAAC6HwAAcB8AALsfAABxHwAAvB8AALMfAADIHwAAch8AAMkfAABzHwAAyh8AAHQfAADLHwAAdR8AAMwfAADDHwAA2B8AANAfAADZHwAA0R8AANofAAB2HwAA2x8AAHcfAADoHwAA4B8AAOkfAADhHwAA6h8AAHofAADrHwAAex8AAOwfAADlHwAA+B8AAHgfAAD5HwAAeR8AAPofAAB8HwAA+x8AAH0fAAD8HwAA8x8AACYhAADJAwAAKiEAAGsAAAArIQAA5QAAADIhAABOIQAAYCEAAHAhAABhIQAAcSEAAGIhAAByIQAAYyEAAHMhAABkIQAAdCEAAGUhAAB1IQAAZiEAAHYhAABnIQAAdyEAAGghAAB4IQAAaSEAAHkhAABqIQAAeiEAAGshAAB7IQAAbCEAAHwhAABtIQAAfSEAAG4hAAB+IQAAbyEAAH8hAACDIQAAhCEAALYkAADQJAAAtyQAANEkAAC4JAAA0iQAALkkAADTJAAAuiQAANQkAAC7JAAA1SQAALwkAADWJAAAvSQAANckAAC+JAAA2CQAAL8kAADZJAAAwCQAANokAADBJAAA2yQAAMIkAADcJAAAwyQAAN0kAADEJAAA3iQAAMUkAADfJAAAxiQAAOAkAADHJAAA4SQAAMgkAADiJAAAySQAAOMkAADKJAAA5CQAAMskAADlJAAAzCQAAOYkAADNJAAA5yQAAM4kAADoJAAAzyQAAOkkAAAALAAAMCwAAAEsAAAxLAAAAiwAADIsAAADLAAAMywAAAQsAAA0LAAABSwAADUsAAAGLAAANiwAAAcsAAA3LAAACCwAADgsAAAJLAAAOSwAAAosAAA6LAAACywAADssAAAMLAAAPCwAAA0sAAA9LAAADiwAAD4sAAAPLAAAPywAABAsAABALAAAESwAAEEsAAASLAAAQiwAABMsAABDLAAAFCwAAEQsAAAVLAAARSwAABYsAABGLAAAFywAAEcsAAAYLAAASCwAABksAABJLAAAGiwAAEosAAAbLAAASywAABwsAABMLAAAHSwAAE0sAAAeLAAATiwAAB8sAABPLAAAICwAAFAsAAAhLAAAUSwAACIsAABSLAAAIywAAFMsAAAkLAAAVCwAACUsAABVLAAAJiwAAFYsAAAnLAAAVywAACgsAABYLAAAKSwAAFksAAAqLAAAWiwAACssAABbLAAALCwAAFwsAAAtLAAAXSwAAC4sAABeLAAALywAAF8sAABgLAAAYSwAAGIsAABrAgAAYywAAH0dAABkLAAAfQIAAGcsAABoLAAAaSwAAGosAABrLAAAbCwAAG0sAABRAgAAbiwAAHECAABvLAAAUAIAAHAsAABSAgAAciwAAHMsAAB1LAAAdiwAAH4sAAA/AgAAfywAAEACAACALAAAgSwAAIIsAACDLAAAhCwAAIUsAACGLAAAhywAAIgsAACJLAAAiiwAAIssAACMLAAAjSwAAI4sAACPLAAAkCwAAJEsAACSLAAAkywAAJQsAACVLAAAliwAAJcsAACYLAAAmSwAAJosAACbLAAAnCwAAJ0sAACeLAAAnywAAKAsAAChLAAAoiwAAKMsAACkLAAApSwAAKYsAACnLAAAqCwAAKksAACqLAAAqywAAKwsAACtLAAAriwAAK8sAACwLAAAsSwAALIsAACzLAAAtCwAALUsAAC2LAAAtywAALgsAAC5LAAAuiwAALssAAC8LAAAvSwAAL4sAAC/LAAAwCwAAMEsAADCLAAAwywAAMQsAADFLAAAxiwAAMcsAADILAAAySwAAMosAADLLAAAzCwAAM0sAADOLAAAzywAANAsAADRLAAA0iwAANMsAADULAAA1SwAANYsAADXLAAA2CwAANksAADaLAAA2ywAANwsAADdLAAA3iwAAN8sAADgLAAA4SwAAOIsAADjLAAA6ywAAOwsAADtLAAA7iwAAPIsAADzLAAAQKYAAEGmAABCpgAAQ6YAAESmAABFpgAARqYAAEemAABIpgAASaYAAEqmAABLpgAATKYAAE2mAABOpgAAT6YAAFCmAABRpgAAUqYAAFOmAABUpgAAVaYAAFamAABXpgAAWKYAAFmmAABapgAAW6YAAFymAABdpgAAXqYAAF+mAABgpgAAYaYAAGKmAABjpgAAZKYAAGWmAABmpgAAZ6YAAGimAABppgAAaqYAAGumAABspgAAbaYAAICmAACBpgAAgqYAAIOmAACEpgAAhaYAAIamAACHpgAAiKYAAImmAACKpgAAi6YAAIymAACNpgAAjqYAAI+mAACQpgAAkaYAAJKmAACTpgAAlKYAAJWmAACWpgAAl6YAAJimAACZpgAAmqYAAJumAAAipwAAI6cAACSnAAAlpwAAJqcAACenAAAopwAAKacAACqnAAArpwAALKcAAC2nAAAupwAAL6cAADKnAAAzpwAANKcAADWnAAA2pwAAN6cAADinAAA5pwAAOqcAADunAAA8pwAAPacAAD6nAAA/pwAAQKcAAEGnAABCpwAAQ6cAAESnAABFpwAARqcAAEenAABIpwAASacAAEqnAABLpwAATKcAAE2nAABOpwAAT6cAAFCnAABRpwAAUqcAAFOnAABUpwAAVacAAFanAABXpwAAWKcAAFmnAABapwAAW6cAAFynAABdpwAAXqcAAF+nAABgpwAAYacAAGKnAABjpwAAZKcAAGWnAABmpwAAZ6cAAGinAABppwAAaqcAAGunAABspwAAbacAAG6nAABvpwAAeacAAHqnAAB7pwAAfKcAAH2nAAB5HQAAfqcAAH+nAACApwAAgacAAIKnAACDpwAAhKcAAIWnAACGpwAAh6cAAIunAACMpwAAjacAAGUCAACQpwAAkacAAJKnAACTpwAAlqcAAJenAACYpwAAmacAAJqnAACbpwAAnKcAAJ2nAACepwAAn6cAAKCnAAChpwAAoqcAAKOnAACkpwAApacAAKanAACnpwAAqKcAAKmnAACqpwAAZgIAAKunAABcAgAArKcAAGECAACtpwAAbAIAAK6nAABqAgAAsKcAAJ4CAACxpwAAhwIAALKnAACdAgAAs6cAAFOrAAC0pwAAtacAALanAAC3pwAAuKcAALmnAAC6pwAAu6cAALynAAC9pwAAvqcAAL+nAADApwAAwacAAMKnAADDpwAAxKcAAJSnAADFpwAAggIAAManAACOHQAAx6cAAMinAADJpwAAyqcAAMunAABkAgAAzKcAAM2nAADQpwAA0acAANanAADXpwAA2KcAANmnAADapwAA26cAANynAACbAQAA9acAAPanAAAh/wAAQf8AACL/AABC/wAAI/8AAEP/AAAk/wAARP8AACX/AABF/wAAJv8AAEb/AAAn/wAAR/8AACj/AABI/wAAKf8AAEn/AAAq/wAASv8AACv/AABL/wAALP8AAEz/AAAt/wAATf8AAC7/AABO/wAAL/8AAE//AAAw/wAAUP8AADH/AABR/wAAMv8AAFL/AAAz/wAAU/8AADT/AABU/wAANf8AAFX/AAA2/wAAVv8AADf/AABX/wAAOP8AAFj/AAA5/wAAWf8AADr/AABa/wAAAAQBACgEAQABBAEAKQQBAAIEAQAqBAEAAwQBACsEAQAEBAEALAQBAAUEAQAtBAEABgQBAC4EAQAHBAEALwQBAAgEAQAwBAEACQQBADEEAQAKBAEAMgQBAAsEAQAzBAEADAQBADQEAQANBAEANQQBAA4EAQA2BAEADwQBADcEAQAQBAEAOAQBABEEAQA5BAEAEgQBADoEAQATBAEAOwQBABQEAQA8BAEAFQQBAD0EAQAWBAEAPgQBABcEAQA/BAEAGAQBAEAEAQAZBAEAQQQBABoEAQBCBAEAGwQBAEMEAQAcBAEARAQBAB0EAQBFBAEAHgQBAEYEAQAfBAEARwQBACAEAQBIBAEAIQQBAEkEAQAiBAEASgQBACMEAQBLBAEAJAQBAEwEAQAlBAEATQQBACYEAQBOBAEAJwQBAE8EAQCwBAEA2AQBALEEAQDZBAEAsgQBANoEAQCzBAEA2wQBALQEAQDcBAEAtQQBAN0EAQC2BAEA3gQBALcEAQDfBAEAuAQBAOAEAQC5BAEA4QQBALoEAQDiBAEAuwQBAOMEAQC8BAEA5AQBAL0EAQDlBAEAvgQBAOYEAQC/BAEA5wQBAMAEAQDoBAEAwQQBAOkEAQDCBAEA6gQBAMMEAQDrBAEAxAQBAOwEAQDFBAEA7QQBAMYEAQDuBAEAxwQBAO8EAQDIBAEA8AQBAMkEAQDxBAEAygQBAPIEAQDLBAEA8wQBAMwEAQD0BAEAzQQBAPUEAQDOBAEA9gQBAM8EAQD3BAEA0AQBAPgEAQDRBAEA+QQBANIEAQD6BAEA0wQBAPsEAQBwBQEAlwUBAHEFAQCYBQEAcgUBAJkFAQBzBQEAmgUBAHQFAQCbBQEAdQUBAJwFAQB2BQEAnQUBAHcFAQCeBQEAeAUBAJ8FAQB5BQEAoAUBAHoFAQChBQEAfAUBAKMFAQB9BQEApAUBAH4FAQClBQEAfwUBAKYFAQCABQEApwUBAIEFAQCoBQEAggUBAKkFAQCDBQEAqgUBAIQFAQCrBQEAhQUBAKwFAQCGBQEArQUBAIcFAQCuBQEAiAUBAK8FAQCJBQEAsAUBAIoFAQCxBQEAjAUBALMFAQCNBQEAtAUBAI4FAQC1BQEAjwUBALYFAQCQBQEAtwUBAJEFAQC4BQEAkgUBALkFAQCUBQEAuwUBAJUFAQC8BQEAgAwBAMAMAQCBDAEAwQwBAIIMAQDCDAEAgwwBAMMMAQCEDAEAxAwBAIUMAQDFDAEAhgwBAMYMAQCHDAEAxwwBAIgMAQDIDAEAiQwBAMkMAQCKDAEAygwBAIsMAQDLDAEAjAwBAMwMAQCNDAEAzQwBAI4MAQDODAEAjwwBAM8MAQCQDAEA0AwBAJEMAQDRDAEAkgwBANIMAQCTDAEA0wwBAJQMAQDUDAEAlQwBANUMAQCWDAEA1gwBAJcMAQDXDAEAmAwBANgMAQCZDAEA2QwBAJoMAQDaDAEAmwwBANsMAQCcDAEA3AwBAJ0MAQDdDAEAngwBAN4MAQCfDAEA3wwBAKAMAQDgDAEAoQwBAOEMAQCiDAEA4gwBAKMMAQDjDAEApAwBAOQMAQClDAEA5QwBAKYMAQDmDAEApwwBAOcMAQCoDAEA6AwBAKkMAQDpDAEAqgwBAOoMAQCrDAEA6wwBAKwMAQDsDAEArQwBAO0MAQCuDAEA7gwBAK8MAQDvDAEAsAwBAPAMAQCxDAEA8QwBALIMAQDyDAEAUA0BAHANAQBRDQEAcQ0BAFINAQByDQEAUw0BAHMNAQBUDQEAdA0BAFUNAQB1DQEAVg0BAHYNAQBXDQEAdw0BAFgNAQB4DQEAWQ0BAHkNAQBaDQEAeg0BAFsNAQB7DQEAXA0BAHwNAQBdDQEAfQ0BAF4NAQB+DQEAXw0BAH8NAQBgDQEAgA0BAGENAQCBDQEAYg0BAIINAQBjDQEAgw0BAGQNAQCEDQEAZQ0BAIUNAQCgGAEAwBgBAKEYAQDBGAEAohgBAMIYAQCjGAEAwxgBAKQYAQDEGAEApRgBAMUYAQCmGAEAxhgBAKcYAQDHGAEAqBgBAMgYAQCpGAEAyRgBAKoYAQDKGAEAqxgBAMsYAQCsGAEAzBgBAK0YAQDNGAEArhgBAM4YAQCvGAEAzxgBALAYAQDQGAEAsRgBANEYAQCyGAEA0hgBALMYAQDTGAEAtBgBANQYAQC1GAEA1RgB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AACBHgAAgR8AAIEgAACBIQAAgSIAAIEjAACBJAAAgSUAAIEmAACBJwAAgSgAAIEpAACBKgAAgSsAAIEsAACBLQAAgS4AAIEvAACBMAAAgTEAAIEyAACBMwAAgTQAAIE1AACBNgAAgTcAAIE4AACBOQAAgToAAIE7AACBPAAAgT0AAIE+AACBPwAAgUAAAIFBAACBQgAAgUMAAIFEAACBRQAAgUYAAIFHAACBSAAAgUkAAIFKAACBSwAAgUwAAIFNAACBTgAAgU8AAIFQAACBUQAAgVIAAIFTAACBVAAAgVUAAIFWAACBVwAAgVgAAIFZAACBWgAAgVsAAIFcAACBXQAAgV4AAIFfAACBYAAAgWEAAIFiAACBYwAAgWQAAIFlAACBZgAAgWcAAIFoAACBaQAAgWoAAIFrAACBbAAAgW0AAIFuAACBbwAAgXAAAIFxAACBcgAAgXMAAIF0AACBdQAAgXYAAIF3AACBeAAAgXkAAIF6AACBewAAgXwAAIF9AACBfgAAgX8AAIGAAACBgQAAgYIAAIGDAACBhAAAgYUAAIGGAACBhwAAgYgAAIGJAACBigAAgYsAAIGMAACBjQAAgY4AAIGPAACBkAAAgZEAAIGSAACBkwAAgZQAAIGVAACBlgAAgZcAAIGYAACBmQAAgZoAAIGbAACBnAAAgZ0AAIGeAACBnwAAgaAAAIGhAACBogAAgaMAAIGkAACBpQAAgaYAAIGnAACBqAAAgakAAIGqAACBqwAAgawAAIGtAACBrgAAga8AAIGwAACBsQAAgbIAAIGzAACBtAAAgbUAAIG2AACBtwAAgbgAAIG5AACBugAAgbsAAIG8AACBvQAAgb4AAIG/AACBwAAAgcEAAIHCAACBwwAAgcQAAIHFAACBxgAAgccAAIHIAACByQAAgcoAAIHLAACBzAAAgc0AAIHOAACBzwAAgdAAAIHRAACB0gAAgdMAAIHUAACB1QAAgdYAAIHXAACB2AAAgdkAAIHaAACB2wAAgdwAAIHdAACB3gAAgd8AAIHgAACB4QAAgeIAAIHjAACB5AAAgeUAAIHmAACB5wAAgegAAIHpAACB6gAAgesAAIHsAACB7QAAge4AAIHvAACB8AAAgfEAAIHyAACB8wAAgfQAAIH1AACB9gAAgfcAAIH4AACB+QAAgfoAAIH7AACB/AAAgf0AAIH+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ZXRyaWMgaW50ZXJwcmV0YXRpb24gb2YgYSBDSUNQIGNvbG9yIHNwYWNlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGBUIxEATAAAAOiSEQABAAAAVGhlIGZpbGUgZXh0ZW5zaW9uICB3YXMgbm90IHJlY29nbml6ZWQgYXMgYW4gaW1hZ2UgZm9ybWF0AAAAsCMRABMAAADDIxEAJgAAAFRoZSBpbWFnZSBmb3JtYXQgY291bGQgbm90IGJlIGRldGVybWluZWRUaGUgaW1hZ2UgZm9ybWF0IAAAACQkEQARAAAAMCMRABEAAABUaGUgZGVjb2RlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmb3JtYXQgZmVhdHVyZSBIJBEAMAAAAFRoZSBkZWNvZGVyIGZvciAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZm9ybWF0IGZlYXR1cmVzIAAAgCQRABAAAACQJBEAJgAAAEVycgAAAAAABAAAAAQAAACtAQAARm9ybWF0RXJyb3JSaWZmU2lnbmF0dXJlSW52YWxpZFdlYnBTaWduYXR1cmVJbnZhbGlkQ2h1bmtNaXNzaW5nQ2h1bmtIZWFkZXJJbnZhbGlkUmVzZXJ2ZWRCaXRTZXRJbnZhbGlkQWxwaGFQcmVwcm9jZXNzaW5nSW52YWxpZENvbXByZXNzaW9uTWV0aG9kQWxwaGFDaHVua1NpemVNaXNtYXRjaEltYWdlVG9vTGFyZ2VGcmFtZU91dHNpZGVJbWFnZUxvc3NsZXNzU2lnbmF0dXJlSW52YWxpZFZlcnNpb25OdW1iZXJJbnZhbGlkSW52YWxpZENvbG9yQ2FjaGVCaXRzSHVmZm1hbkVycm9yQml0U3RyZWFtRXJyb3JUcmFuc2Zvcm1FcnJvclZwOE1hZ2ljSW52YWxpZE5vdEVub3VnaEluaXREYXRhQ29sb3JTcGFjZUludmFsaWRMdW1hUHJlZGljdGlvbk1vZGVJbnZhbGlkSW50cmFQcmVkaWN0aW9uTW9kZUludmFsaWRDaHJvbWFQcmVkaWN0aW9uTW9kZUludmFsaWRJbmNvbnNpc3RlbnRJbWFnZVNpemVzVW5zdXBwb3J0ZWRGZWF0dXJlSW52YWxpZFBhcmFtZXRlck1lbW9yeUxpbWl0RXhjZWVkZWRJbnZhbGlkQ2h1bmtTaXplTm9Nb3JlRnJhbWVzSW52YWxpZERpbWVuc2lvbnMAAAAABAAAAAQAAACuAQAAVHJ5UmVzZXJ2ZUVycm9yTGltaXRzRXhjZWVkZWQAAAC7AAAACAAAAAQAAAAWAAAAuwAAAAgAAAAEAAAAvAAAABYAAAAwJxEAvQAAAL4AAACyAAAAvwAAALMAAABVbnJlcHJlc2VudGFibGVJbnZhbGlkS2V5d29yZFNpemVNaXNzaW5nTnVsbFNlcGFyYXRvckluZmxhdGlvbkVycm9yT3V0T2ZEZWNvbXByZXNzaW9uU3BhY2VJbnZhbGlkQ29tcHJlc3Npb25GbGFnTWlzc2luZ0NvbXByZXNzaW9uRmxhZwAAAAAAAAQAAAAEAAAAwAAAAAAAAAAEAAAABAAAAGMAAABDcmNNaXNtYXRjaGNyY192YWxjcmNfc3VtSW52YWxpZFNpZ25hdHVyZU1pc3NpbmdGY3RsTWlzc2luZ0ltYWdlRGF0YUNodW5rQmVmb3JlSWhkckFmdGVySWRhdEJlZm9yZVBsdGVBZnRlclBsdGVPdXRzaWRlUGx0ZUlkYXREdXBsaWNhdGVDaHVua0FwbmdPcmRlcnByZXNlbnRTaG9ydFBhbGV0dGVsZW4AAAAAAAEAAAABAAAArwEAAEludmFsaWRTYml0Q2h1bmtTaXplY29sb3JfdHlwZQAAAAAAAAEAAAABAAAAsAEAAEludmFsaWRTYml0c2FtcGxlX2RlcHRoc2JpdFBhbGV0dGVSZXF1aXJlZAAAAAAAAAQAAAAEAAAAsQEAAEludmFsaWRDb2xvckJpdERlcHRoYml0X2RlcHRoQ29sb3JXaXRoQmFkVHJuc0ludmFsaWRCaXREZXB0aEludmFsaWRDb2xvclR5cGVJbnZhbGlkRGlzcG9zZU9wSW52YWxpZEJsZW5kT3BJbnZhbGlkVW5pdEludmFsaWRTcmdiUmVuZGVyaW5nSW50ZW50VW5rbm93bkNvbXByZXNzaW9uTWV0aG9kVW5rbm93bkZpbHRlck1ldGhvZFVua25vd25JbnRlcmxhY2VNZXRob2RCYWRTdWJGcmFtZUJvdW5kcwAAAAAAAAAEAAAABAAAALIBAABDb3JydXB0RmxhdGVTdHJlYW1lcnJOb01vcmVJbWFnZURhdGFCYWRUZXh0RW5jb2RpbmdGZGF0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AB4AAAB2JRAAXwAAAAsJAAAXAAAAdiUQAF8AAAAPCQAAJgAAAHYlEABfAAAAEgkAACIAAAB2JRAAXwAAAAwJAAAdAAAAdiUQAF8AAACBCAAABQAAAHYlEABfAAAAhAgAACYAAAB2JRAAXwAAAIgIAAArAAAAdiUQAF8AAACICAAAIAAAAHYlEABfAAAAJQgAAEUAAAB2JRAAXwAAADgIAAAxAAAAdiUQAF8AAAAiCAAAHgAAAHYlEABfAAAAHAgAAEEAAAAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADwAPgBAAEIARABGAEgASgBMAE4AUABSAFQAVgBYAFoAXABeAGAAYgBkAGYAaABqAGwAbgBwAHIAdAB3AHoAfQCAAIMAhgCJAIwAjwCSAJUAmACbAJ4AoQCkAKcAqgCtALEAtQC5AL0AwQDFAMkAzQDRANUA2QDdAOEA5QDqAO8A9QD5AP4AAwEIAQ0BEgEXARwBBAAFAAYABwAIAAkACgAKAAsADAANAA4ADwAQABEAEQASABMAFAAUABUAFQAWABYAFwAXABgAGQAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACUAJgAnACgAKQAqACsALAAtAC4ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWwBdAF8AYABiAGQAZQBmAGgAagBsAG4AcAByAHQAdgB6AHwAfgCAAIIAhACGAIgAigCMAI8AkQCUAJcAmgCdAHYlEABfAAAAaAgAADAAAAB2JRAAXwAAAFwIAAA7AAAAawIQAF8AAABgAAAANQAAAGsCEABfAAAAYwAAAEEAAABrAhAAXwAAAJUAAAAZAAAAawIQAF8AAACUAAAAGQAAAGsCEABfAAAAkwAAABkAAABrAhAAXwAAAJAAAAAkAAAAawIQAF8AAACPAAAAJAAAAGsCEABfAAAAeAAAABUAAABrAhAAXwAAAHcAAAAVAAAAawIQAF8AAAB2AAAAFQAA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UDggY2hyb21hIHByZWRpY3Rpb24gbW9kZTog+DsRACQAAABJbmNvbnNpc3RlbnQgaW1hZ2Ugc2l6ZXNVbnN1cHBvcnRlZCBmZWF0dXJlOiAAAAA8PBEAFQAAAEludmFsaWQgcGFyYW1ldGVyOiAAXDwRABMAAABNZW1vcnkgbGltaXQgZXhjZWVkZWRJbnZhbGlkIGNodW5rIHNpemVObyBtb3JlIGZyYW1lc2Nsb3N1cmUgaW52b2tlZCByZWN1cnNpdmVseSBvciBhZnRlciBiZWluZyBkcm9wcGVkAC0kEABcAAAAhTUAAAEAAAA3NDMyMTAvLi1n8kJD5SwrKikoJyYlJCMiITggHx4dHP+UpJWIoJut3d6GeujK1+DQ3My7t7OxqLLI4sOauK5+eL+dwqq9oqGWwY6Jq7C5p7pwr8C8nIyPe4WAk4qSct+X+dju7P3j2ub3h7Tx6fb054v18/vrycTw1pi2zbV/G9TT0tXkxamfg6xpUGJgYVHPkXRzkIKZeWuEbW58b1Jsdo1xgXd9pXVcalNIY11BT6bto8e+4dHLxtnbzur4nu//////////////////////////////////////////////////////////////////////////////////////mwEQAGcAAADZAQAAHQAAAJsBEABnAAAA2gEAABkAAACbARAAZwAAADECAAAbAAAAmwEQAGcAAAAyAgAAHQAAABYMEAByAAAAKgAAABMAAADYHRAAaAAAANMAAAAcAAAAHBgQAGkAAABrBgAAGgAAABwYEABpAAAAawYAADYAAAAcGBAAaQAAAF4GAAAoAAAAFgwQAHIAAAAgAAAACQAAABwYEABpAAAAcwcAAD4AQaj9xAAL2RoBAQEBAgICAgMDAwMEBAQEBQUFBQAAAAADAAQABQAGAAcACAAJAAoACwANAA8AEQATABcAGwAfACMAKwAzADsAQwBTAGMAcwCDAKMAwwDjAAIBAAIAAgACHBgQAGkAAADZBwAATQAAABwYEABpAAAAPAYAAC0AAAAcGBAAaQAAADwGAAAZAAAAHBgQAGkAAACEBgAAIAAAAAEBAQAEAAEAAgADAAQABQAHAAkADQARABkAIQAxAEEAYQCBAMEAAQGBAQECAQMBBAEGAQgBDAEQARgBIAEwAUABYAAAHBgQAGkAAAARAgAAKAAAAAAAAIAAQADAACAAoABgAOAAEACQAFAA0AAwALAAcADwAAgAiABIAMgAKACoAGgA6AAYAJgAWADYADgAuAB4APgABACEAEQAxAAkAKQAZADkABQAlABUANQANAC0AHQA9AAMAIwATADMACwArABsAOwAHACcAFwA3AA8ALwAfAD8AAIAggBCAMIAIgCiAGIA4gASAJIAUgDSADIAsgByAPIACgCKAEoAygAqAKoAagDqABoAmgBaANoAOgC6AHoA+gAGAIYARgDGACYApgBmAOYAFgCWAFYA1gA2ALYAdgD2AA4AjgBOAM4ALgCuAG4A7gAeAJ4AXgDeAD4AvgB+AP4AAQCBAEEAwQAhAKEAYQDhABEAkQBRANEAMQCxAHEA8QAJAIkASQDJACkAqQBpAOkAGQCZAFkA2QA5ALkAeQD5AAUAhQBFAMUAJQClAGUA5QAVAJUAVQDVADUAtQB1APUADQCNAE0AzQAtAK0AbQDtAB0AnQBdAN0APQC9AH0A/QADAIMAQwDDACMAowBjAOMAEwCTAFMA0wAzALMAcwDzAAsAiwBLAMsAKwCrAGsA6wAbAJsAWwDbADsAuwB7APsABwCHAEcAxwAnAKcAZwDnABcAlwBXANcANwC3AHcA9wAPAI8ATwDPAC8ArwBvAO8AHwCfAF8A3wA/AL8AfwD/gACAgIBAgMCAIICggGCA4IAQgJCAUIDQgDCAsIBwgPCACICIgEiAyIAogKiAaIDogBiAmIBYgNiAOIC4gHiA+IAEgISARIDEgCSApIBkgOSAFICUgFSA1IA0gLSAdID0gAyAjIBMgMyALICsgGyA7IAcgJyAXIDcgDyAvIB8gPyAAoCCgEKAwoAigKKAYoDigBKAkoBSgNKAMoCygHKA8oAKgIqASoDKgCqAqoBqgOqAGoCagFqA2oA6gLqAeoD6gAaAhoBGgMaAJoCmgGaA5oAWgJaAVoDWgDaAtoB2gPaADoCOgE6AzoAugK6AboDugB6AnoBegN6APoC+gH6A/oABgIGAQYDBgCGAoYBhgOGAEYCRgFGA0YAxgLGAcYDxgAmAiYBJgMmAKYCpgGmA6YAZgJmAWYDZgDmAuYB5gPmABYCFgEWAxYAlgKWAZYDlgBWAlYBVgNWANYC1gHWA9YANgI2ATYDNgC2ArYBtgO2AHYCdgF2A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AAQAAAABAAAAxQEAAHR5cGUAAAAAAQAAAAEAAADGAQAAY3JpdGljYWxwcml2YXRlcmVzZXJ2ZWRzYWZlY29weU9uZVR3b0ZvdXJFaWdodFNpeHRlZW5HcmF5c2NhbGVSZ2JJbmRleGVkR3JheXNjYWxlQWxwaGFSZ2JhAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAHdyb25nIGRhdGEgc2l6ZSwgZXhwZWN0ZWQgIGdvdCAAOE4RABoAAABSThEABQAAAEVuZCBvZiBpbWFnZSBoYXMgYmVlbiByZWFjaGVkQSBmYXRhbCBkZWNvZGluZyBlcnJvciBoYXMgYmVlbiBlbmNvdW50ZWQgZWFybGllckNSQyBlcnJvcjogZXhwZWN0ZWQgMHggaGF2ZSAweCB3aGlsZSBkZWNvZGluZyAgY2h1bmsuALZOEQAWAAAAzE4RAAgAAADUThEAEAAAAOROEQAHAAAASW52YWxpZCBQTkcgc2lnbmF0dXJlLmZjVEwgY2h1bmsgbWlzc2luZyBiZWZvcmUgZmRBVCBjaHVuay5JREFUIG9yIGZkQVQgY2h1bmsgaXMgbWlzc2luZy4gY2h1bmsgYXBwZWFyZWQgYmVmb3JlIElIRFIgY2h1bmsAAAEAAAAAAAAAZU8RACEAAABDaHVuayAgaXMgaW52YWxpZCBhZnRlciBJREFUIGNodW5rLgCYTxEABgAAAJ5PEQAdAAAAIGlzIGludmFsaWQgYmVmb3JlIFBMVEUgY2h1bmsuAACYTxEABgAAAMxPEQAeAAAAIGlzIGludmFsaWQgYWZ0ZXIgUExURSBjaHVuay4AAACYTxEABgAAAPxPEQAdAAAAIG11c3QgYXBwZWFyIGJldHdlZW4gUExURSBhbmQgSURBVCBjaHVua3MuAACYTxEABgAAACxQEQAqAAAAIG11c3QgYXBwZWFyIGF0IG1vc3Qgb25jZS4AAJhPEQAGAAAAaFARABoAAABTZXF1ZW5jZSBpcyBub3QgaW4gb3JkZXIsIGV4cGVjdGVkICMgZ290ICMAAJRQEQAkAAAAuFARAAYAAADsXBEAAQAAAE5vdCBlbm91Z2ggcGFsZXR0ZSBlbnRyaWVzLCBleHBlY3QgANhQEQAjAAAAUk4RAAUAAADsXBEAAQAAAFRoZSBzaXplIG9mIHRoZSBzQklUIGNodW5rIHNob3VsZCBiZSAgYnl0ZShzKSwgYnV0ICBieXRlKHMpIHdlcmUgcHJvdmlkZWQgZm9yIHRoZSAgY29sb3IgdHlwZS4AABRREQAlAAAAOVERAA4AAABHUREAHwAAAGZREQAMAAAASW52YWxpZCBzQklUIHZhbHVlIC4gSXQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIHRoZSBzYW1wbGUgZGVwdGggAAAAlFERABMAAACnUREAPgAAAOxcEQABAAAATWlzc2luZyBwYWxldHRlIG9mIGluZGV4ZWQgaW1hZ2UuSW52YWxpZCBjb2xvci9kZXB0aCBjb21iaW5hdGlvbiBpbiBoZWFkZXI6IC8AAAAhUhEAKwAAAExSEQABAAAAVHJhbnNwYXJlbmN5IGNodW5rIGZvdW5kIGZvciBjb2xvciB0eXBlIGBSEQAoAAAA7FwRAAEAAABJbnZhbGlkIGltYWdlIGRpbWVuc2lvbnNJbnZhbGlkIGJpdCBkZXB0aCAAALBSEQASAAAA7FwRAAEAAABJbnZhbGlkIGNvbG9yIHR5cGUgANRSEQATAAAA7FwRAAEAAABJbnZhbGlkIGRpc3Bvc2Ugb3AgAPhSEQATAAAA7FwRAAEAAABJbnZhbGlkIGJsZW5kIG9wIAAAABxTEQARAAAA7FwRAAEAAABJbnZhbGlkIHBoeXNpY2FsIHBpeGVsIHNpemUgdW5pdCAAAABAUxEAIQAAAOxcEQABAAAASW52YWxpZCBzUkdCIHJlbmRlcmluZyBpbnRlbnQgAAB0UxEAHgAAAOxcEQABAAAAVW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QgAKRTEQAbAAAA7FwRAAEAAABVbmtub3duIGZpbHRlciBtZXRob2QgAADQUxEAFgAAAOxcEQABAAAAVW5rbm93biBpbnRlcmxhY2UgbWV0aG9kIAAAAPhTEQAZAAAA7FwRAAEAAABTdWIgZnJhbWUgaXMgb3V0LW9mLWJvdW5kcy5Db3JydXB0IGRlZmxhdGUgc3RyZWFtLiBJREFUIG9yIGZEQVQgY2h1bmsgZG9lcyBub3QgaGF2ZSBlbm91Z2ggZGF0YSBmb3IgaW1hZ2UuVW5yZXByZXNlbnRhYmxlIGRhdGEgaW4gdEVYdCBjaHVuay4AAACOVBEAIwAAAEtleXdvcmQgZW1wdHkgb3IgbG9uZ2VyIHRoYW4gNzkgYnl0ZXMuAAC8VBEAJgAAAE5vIG51bGwgc2VwYXJhdG9yIGluIHRFWHQgY2h1bmsu7FQRACAAAABJbnZhbGlkIGNvbXByZXNzZWQgdGV4dCBkYXRhLgAAABRVEQAdAAAAT3V0IG9mIGRlY29tcHJlc3Npb24gc3BhY2UuIFRyeSB3aXRoIGEgbGFyZ2VyIGxpbWl0LjxVEQA0AAAAVXNpbmcgYW4gdW5yZWNvZ25pemVkIGJ5dGUgYXMgY29tcHJlc3Npb24gbWV0aG9kLgAAAHhVEQAxAAAAVXNpbmcgYSBmbGFnIHRoYXQgaXMgbm90IDAgb3IgMjU1IGFzIGEgY29tcHJlc3Npb24gZmxhZyBmb3IgaVRYdCBjaHVuay4AtFURAEcAAABObyBjb21wcmVzc2lvbiBmbGFnIGluIHRoZSBpVFh0IGNodW5rLgAABFYRACYAAABmZEFUIGNodW5rIHNob3J0ZXIgdGhhbiA0IGJ5dGVzVW5leHBlY3RlZCByZXN0YXJ0IG9mICBjaHVuayBzZXF1ZW5jZVNWEQAWAAAAaVYRAA8AAABDaHVuayBsZW5ndGggd3Jvbmc6IIhWEQAUAAAAVW5yZWNvZ25pemVkIGNyaXRpY2FsIGNodW5rOiAAAACkVhEAHQAAAEJhZCBnYW1tYSB2YWx1ZS5saW1pdHMgYXJlIGV4Y2VlZGVkQmFkWmxpYkhlYWRlckluc3VmZmljaWVudElucHV0SW52YWxpZEJsb2NrVHlwZUludmFsaWRVbmNvbXByZXNzZWRCbG9ja0xlbmd0aEludmFsaWRIbGl0SW52YWxpZEhkaXN0SW52YWxpZENvZGVMZW5ndGhSZXBlYXRCYWRDb2RlTGVuZ3RoSHVmZm1hblRyZWVCYWRMaXRlcmFsTGVuZ3RoSHVmZm1hblRyZWVCYWREaXN0YW5jZUh1ZmZtYW5UcmVlSW52YWxpZExpdGVyYWxMZW5ndGhDb2RlSW52YWxpZERpc3RhbmNlQ29kZUlucHV0U3RhcnRzV2l0aFJ1bkRpc3RhbmNlVG9vRmFyQmFja1dyb25nQ2hlY2tzdW1FeHRyYUlucHV0MAAAAAEnEAAqAAAAHgEA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dgMAABkAAABrIRAAYgAAAHcDAAAZAAAAayEQAGIAAAB4AwAAGQAAAGshEABiAAAAeQMAABkAAABrIRAAYgAAANQDAAARAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAABAAIAAwAEAAUABgAHAAgACQD//////////////////woACwAMAA0ADgAPAP////////////////////////////////////////////////////////////////////8KAAsADAANAA4ADwD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AABAAIAAwAEAAUABgAHAAgACQAP//////////////////oACwAMAA0ADgAPAA/////////////////////////////////////////////////////////////////////6AAsADAANAA4ADwAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2shEABiAAAAswEAABoAAABrIRAAYgAAAAACAAATAAAAayEQAGIAAAAFAgAAMwAAAGshEABiAAAACQIAAD4AAABrIRAAYgAAAA8CAAA6AAAAayEQAGIAAACrAQAAPQAAAGshEABiAAAApgEAAEUAAAAgYXQgbGluZSAAAABCCRAAYwAAAPcBAAAhAAAAQgkQAGMAAAD7AQAADAAAACBjb2x1bW4gQgkQAGMAAAACAgAAIQAAAEIJEABjAAAACwIAACoAAABCCRAAYwAAAA8CAAAsAAAAQgkQAGMAAAAUAgAACQAAAGluZi1pbmZOYU4AALQAAAAMAAAABAAAAIkBAACKAQAA0gEAQZiexgAL5Q0BAAAAuAAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkAwhUQAEsAAAAFCwAADgAAAPYQEABPAAAAPAYAABQAAAD2EBAATwAAADwGAAAhAAAA9hAQAE8AAAAwBgAAFAAAAPYQEABPAAAAMAYAACEAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAACojxEAsAAAALEAAACyAAAAsAAAALMAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmlzX2NoYXJfYm91bmRhcnkobmV3X2xlbilFcnJvcigsIGxpbmU6ICwgY29sdW1uOiAUkBEABgAAABqQEQAIAAAAIpARAAoAAABeBxIAAQAAAGludmFsaWQgdmFsdWU6IABMkBEADwAAABqTEQALAAAARU9GIHdoaWxlIHBhcnNpbmcgYSBsaXN0RU9GIHdoaWxlIHBhcnNpbmcgYW4gb2JqZWN0RU9GIHdoaWxlIHBhcnNpbmcgYSBzdHJpbmdFT0Ygd2hpbGUgcGFyc2lu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AAB2JRAAXwAAAL4FAAA1AAAAdiUQAF8AAAC+BQAAJQAAAHYlEABfAAAAvAUAADoAAABWUDggaW50ZXItcHJlZGljdGlvboQBkQACA5wBgIGjAoKDgAN2JRAAXwAAADUFAAAvAAAAgAHnAIECeAGCAzACBAZZA4MFcwSFhnEFhAd4BocImAeIiXAIgAGYAIECswGCA0ACBAZ+A4MFqgSFhnYFhAcuBocIRgeIiV8IgAGvAIECRQGCA48CBAZQA4MFVQSFhlIFhAdIBocImweIiWcIgAE4AIECOgGCAwoCBAarA4MF2gSFhr0FhAcRBocIDQeIiZgIgAGQAIECRwGCAwoCBAYmA4MFqwSFhtUFhAeQBocIIgeIiRoIgAFyAIECGgGCAxECBAajA4MFLASFhsMFhAcVBocICgeIia0IgAF5AIECGAGCA1ACBAbDA4MFGgSFhj4FhAcsBocIQAeIiVUIgAGqAIECLgGCAzcCBAYTA4MFiASFhqAFhAchBocIzgeIiUcIgAE/AIECFAGCAwgCBAZyA4MFcgSFhtAFhAcMBocICQeIieIIgAFRAIECKAGCAwsCBAZgA4MFtgSFhlQFhAcdBocIEAeIiSQIgAGGAIECtwGCA1kCBAaJA4MFYgSFhmUFhAdqBocIpQeIiZQIgAFIAIECuwGCA2QCBAaCA4MFnQSFhm8FhAcgBocISweIiVAIgAFCAIECZgGCA6cCBAZjA4MFSgSFhj4FhAcoBocI6geIiYAIgAEpAIECNQGCAwkCBAayA4MF8QSFho0FhAcaBocICAeIiWsIgAFoAIECTwGCAwwCBAYbA4MF2QSFhv8FhAdXBocIEQeIiQcIgAFKAIECKwGCAxoCBAaSA4MFSQSFhqYFhAcxBocIFweIiZ0IgAFBAIECJgGCA2kCBAagA4MFMwSFhjQFhAcfBocIcweIiYAIgAFXAIECRAGCA0cCBAYsA4MFcgSFhjMFhAcPBocIugeIiRcIgAEvAIECKQGCAw4CBAZuA4MFtgSFhrcFhAcVBocIEQeIicIIgAFCAIECLQGCAxkCBAZmA4MFxQSFhr0FhAcXBocIEgeIiRYIgAFYAIECWAGCA5MCBAaWA4MFKgSFhi4FhActBocIxAeIic0IgAErAIECYQGCA7cCBAZ1A4MFVQSFhiYFhAcjBocIsweIiT0IgAEnAIECNQGCA8gCBAZXA4MFGgSFhhUFhAcrBocI6AeIiasIgAE4AIECIgGCAzMCBAZoA4MFcgSFhmYFhAcdBocIXQeIiU0IgAFrAIECNgGCAyACBAYaA4MFMwSFhgEFhAdRBocIKweIiR8IgAEnAIECHAGCA1UCBAarA4MFOgSFhqUFhAdaBocIYgeIiUAIgAEiAIECFgGCA3QCBAbOA4MFFwSFhiIFhAcrBocIpgeIiUkIgAFEAIECGQGCA2oCBAYWA4MFQASFhqsFhAckBocI4QeIiXIIgAEiAIECEwGCAxUCBAZmA4MFhASFhrwFhAcQBocITAeIiXwIgAE+AIECEgGCA04CBAZfA4MFVQSFhjkFhAcyBocIMAeIiTMIgAHBAIECZQGCAyMCBAafA4MF1wSFhm8FhAdZBocILgeIiW8IgAE8AIEClAGCAx8CBAasA4MF2wSFhuQFhAcVBocIEgeIiW8IgAFwAIECcQGCA00CBAZVA4MFswSFhv8FhAcmBocIeAeIiXIIgAEoAIECKgGCAwECBAbEA4MF9QSFhtEFhAcKBocIGQeIiW0IgAFkAIECUAGCAwgCBAYrA4MFmgSFhgEFhAczBocIGgeIiUcIgAFYAIECKwGCAx0CBAaMA4MFpgSFhtUFhAclBocIKweIiZoIgAE9AIECPwGCAx4CBAabA4MFQwSFhi0FhAdEBocIAQeIidEIgAGOAIECTgGCA04CBAYQA4MF/wSFhoAFhAciBocIxQeIiasIgAEpAIECKAGCAwUCBAZmA4MF0wSFhrcFhAcEBocIAQeIid0IgAEzAIECMgGCAxECBAaoA4MF0QSFhsAFhAcXBocIGQeIiVIIgAF9AIECYgGCAyoCBAZYA4MFaASFhlUFhAd1BocIrweIiVIIgAFfAIECVAGCAzUCBAZZA4MFgASFhmQFhAdxBocIZQeIiS0IgAFLAIECTwGCA3sCBAYvA4MFMwSFhoAFhAdRBocIqweIiQEIgAE5AIECEQGCAwUCBAZHA4MFZgSFhjkFhAc1BocIKQeIiTEIgAFzAIECFQGCAwICBAYKA4MFZgSFhv8FhAemBocIFweIiQYIgAEmAIECIQGCAw0CBAZ5A4MFOQSFhkkFhAcaBocIAQeIiVUIgAEpAIECCgGCA0MCBAaKA4MFTQSFhm4FhAdaBocILweIiXIIgAFlAIECHQGCAxACBAYKA4MFVQSFhoAFhAdlBocIxAeIiRoIgAE5AIECEgGCAwoCBAZmA4MFZgSFhtUFhAciBocIFAeIiSsIgAF1AIECFAGCAw8CBAYkA4MFowSFhoAFhAdEBocIAQeIiRoIgAGKAIECHwGCAyQCBAarA4MFGwSFhqYFhAcmBocILAeIieUIgAFDAIECVwGCAzoCBAapA4MFUgSFhnMFhAcaBocIOweIibMIgAE/AIECOwGCA1oCBAa0A4MFOwSFhqYFhAddBocISQeIiZoIgAEoAIECKAGCAxUCBAZ0A4MFjwSFhtEFhAciBocIJweIia8IgAE5AIECLgGCAxYCBAYYA4MFgASFhgEFhAc2BocIEQeIiSUIgAEvAIECDwGCAxACBAa3A4MFIgSFht8FhAcxBocILQeIibcIgAEuAIECEQGCAyECBAa3A4MFBgSFhmIFhAcPBocIIAeIibcIgAFBAIECIAGCA0kCBAZzA4MFHASFhoAFhAcXBocIgAeIic0IgAEoAIECAwGCAwkCBAZzA4MFMwSFhsAFhAcSBocIBgeIid8IgAFXAIECJQGCAwkCBAZzA4MFOwSFhk0FhAdABocIFQeIiS8IgAFoAIECNwGCAywCBAbaA4MFCQSFhjYFhAc1BocIggeIieIIgAFAAIECWgGCA0YCBAbNA4MFKASFhikFhAcXBocIGgeIiTkIgAE2AIECOQGCA3ACBAa4A4MFBQSFhikFhAcmBocIpgeIidUIgAEeAIECIgGCAxoCBAaFA4MFmASFhnQFhAcKBocIIAeIiYYIgAFLAIECIAGCAwwCBAYzA4MFwASFhv8FhAegBocIKweIiTMIgAEnAIECEwGCAzUCBAbdA4MFGgSFhnIFhAcgBocISQeIif8IgAEfAIECCQGCA0ECBAbqA4MFAgSFhg8FhAcBBocIdgeIiUkIgAFYAIECHwGCAyMCBAZDA4MFZgSFhlUFhAc3BocIugeIiVUIgAE4AIECFQGCAxcCBAZvA4MFOwSFhs0FhActBocIJQeIicAIgAE3AIECJgGCA0YCBAZ8A4MFSQSFhmYFhAcBBocIIgeIiWIIgAFmAIECPQGCA0cCBAYlA4MFIgSFhjUFhAcfBocI8weIicAIgAFFAIECPAGCA0cCBAYmA4MFSQSFhncFhAccBocI3geIiSUIgAFEAIECLQGCA4ACBAYiA4MFAQSFhi8FhAcLBocI9QeIiasIgAE+AIECEQGCAxMCBAZGA4MFkgSFhlUFhAc3BocIPgeIiUYIgAFLAIECDwGCAwkCBAYJA4MFQASFhv8FhAe4BocIdweIiRAIgAElAIECKwGCAyUCBAaaA4MFZASFhqMFhAdVBocIoAeIiQEIgAE/AIECCQGCA1wCBAaIA4MFHASFhkAFhAcgBocIyQeIiVUIgAFWAIECBgGCAxwCBAYFA4MFQASFhv8FhAcZBocI+AeIiQEIgAE4AIECCAGCAxECBAaEA4MFiQSFhv8FhAc3BocIdAeIiYAIgAE6AIECDwGCAxQCBAZSA4MFhwSFhjkFhAcaBocIeQeIiSgIgAGkAIECMgGCAx8CBAaJA4MFmgSFhoUFhAcZBocIIweIidoIgAEzAIECZwGCAywCBAaDA4MFgwSFhnsFhAcfBocIBgeIiZ4IgAFWAIECKAGCA0ACBAaHA4MFlASFhuAFhActBocItweIiYAIgAEWAIECGgGCAxECBAaDA4MF8ASFhpoFhAcOBocIAQeIidEIgAFTAIECDAGCAw0CBAY2A4MFwASFhv8FhAdEBocILweIiRwIgAEtAIECEAGCAxUCBAZbA4MFQASFht4FhAcHBocIAQeIicUIgAE4AIECFQGCAycCBAabA4MFPASFhooFhAcXBocIZgeIidUIgAFVAIECGgGCA1UCBAZVA4MFgASFhoAFhAcgBocIkgeIiasIgAESAIECCwGCAwcCBAY/A4MFkASFhqsFhAcEBocIBAeIifYIgAEjAIECGwGCAwoCBAaSA4MFrgSFhqsFhAcMBocIGgeIiYAIgAG+AIECUAGCAyMCBAZjA4MFtASFhlAFhAd+BocINgeIiS0IgAFVAIECfgGCAy8CBAZXA4MFsASFhjMFhAcpBocIFAeIiSAIgAFlAIECSwGCA4ACBAaLA4MFdgSFhpIFhAd0BocIgAeIiVUIgAE4AIECKQGCAw8CBAawA4MF7ASFhlUFhAclBocICQeIiT4IgAGSAIECJAGCAxMCBAYeA4MFqwSFhv8FhAdhBocIGweIiRQIgAFHAIECHgGCAxECBAZ3A4MFdgSFhv8FhAcRBocIEgeIiYoIgAFlAIECJgGCAzwCBAaKA4MFNwSFhkYFhAcrBocIGgeIiY4IgAGKAIECLQGCAz0CBAY+A4MF2wSFhgEFhAdRBocIvAeIiUAIgAEgAIECKQGCAxQCBAZ1A4MFlwSFho4FhAcUBocIFQeIiaMIgAFwAIECEwGCAwwCBAY9A4MFwwSFhoAFhAcwBocIBAeIiRgIdiUQAF8AAAA/BQAAJQAAAIABjgCBAnIBgoO3AnYlEABfAAAAUQUAABEAAAB2JRAAXwAAAFIFAAARAAAAdiUQAF8AAABTBQAAEQAAAP///////////////////////////////////////////7D2////////////3/H8///////////5/f3////////////0/P//////////6v7+///////////9///////////////2/v//////////7/3+///////////+//7////////////4/v//////////+//+///////////////////////////9/v//////////+/7+///////////+//7////////////+/f/+////////+v/+//7////////+/////////////////////////////////////////////////////////9n/////////////4fzx/f///v/////q+vH6/f/9/v/////+////////////3/7+///////////u/f7+///////////4/v//////////+f7////////////////////////////9////////////9/7////////////////////////////9/v///////////P/////////////////////////////+/v///////////f/////////////////////////////+/f//////////+v/////////////+/////////////////////////////////////////////////////////7r7+v//////////6vv0/v/////////7+/P9/v/+///////9/v//////////7P3+///////////7/f3+/v/////////+/v///////////v7+///////////////////////////+/////////////v7////////////+/////////////////////////////v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////j/////////////+v78/v/////////4/vn9///////////9/f//////////9v39///////////8/vv+/v/////////+/P//////////+P79///////////9//7+///////////7/v//////////9fv+///////////9/f7////////////7/f///////////P3+/////////////v/////////////8////////////+f/+//////////////7//////////////f//////////+v///////////////////////////////////////////v///////////////////////////3YlEABfAAAAVwcAABcAAACLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAKIAYED/gIEBv8DggXkBIOE2wUHCIAGhYaABwkKgAiHiIAJiYqACosBvQCAAoEBgQPyAgQG/wOCBeMEg4TVBQcI/waFhtsHCQqACIeIgAmJioAKiwFqAIACfgGBA+MCBAb8A4IF1gSDhNEFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJiAYED+AIEBv8DggXsBIOE4gUHCP8GhYb/BwkKgAiHiIAJiYqACosBtQCAAoUBgQPuAgQG/gOCBd0Eg4TqBQcI/waFhpoHCQqACIeIgAmJioAKiwFOAIAChgGBA8oCBAb3A4IFxgSDhLQFBwj/BoWG2wcJCoAIh4iACYmKgAqLAQEAgAK5AYED+QIEBv8DggXzBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBuACAApYBgQP3AgQG/wOCBewEg4TgBQcIgAaFhoAHCQqACIeIgAmJioAKiwFNAIACbgGBA9gCBAb/A4IF7ASDhOYFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAJlAYED+wIEBv8DggXxBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBqgCAAosBgQPxAgQG/AOCBewEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwElAIACdAGBA8QCBAbzA4IF5ASDhP8FBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgALMAYED/gIEBv8DggX1BIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBzwCAAqABgQP6AgQG/wOCBe4Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwFmAIACZwGBA+cCBAb/A4IF0wSDhKsFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKYAYED/AIEBv8DggXwBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBsQCAAocBgQPzAgQG/wOCBeoEg4ThBQcIgAaFhoAHCQqACIeIgAmJioAKiwFQAIACgQGBA9MCBAb/A4IFwgSDhOAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9gCAAgEBgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwH/AIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcYAgAIjAYED7QIEBt8DggXBBIOEuwUHCKIGhYagBwkKkQiHiJsJiYo+CosBgwCAAi0BgQPGAgQG3QOCBawEg4SwBQcI3AaFhp0HCQr8CIeI3QmJigEKiwFEAIACLwGBA5ICBAbQA4IFlQSDhKcFBwjdBoWGogcJCv8Ih4jfCYmKgAqLAQEAgAKVAYED8QIEBv8DggXdBIOE4AUHCP8GhYb/BwkKgAiHiIAJiYqACosBuACAAo0BgQPqAgQG/QOCBd4Eg4TcBQcI/waFhscHCQqACIeIgAmJioAKiwFRAIACYwGBA7UCBAbyA4IFsASDhL4FBwj5BoWGygcJCv8Ih4j/CYmKgAqLAQEAgAKBAYED6AIEBv0DggXWBIOExQUHCPIGhYbEBwkK/wiHiP8JiYqACosBYwCAAnkBgQPSAgQG+gOCBckEg4TGBQcI/waFhsoHCQqACIeIgAmJioAKiwEXAIACWwGBA6MCBAbyA4IFqgSDhLsFBwj3BoWG0gcJCv8Ih4j/CYmKgAqLAQEAgALIAYED9gIEBv8DggXqBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBbQCAArIBgQPxAgQG/wOCBecEg4T1BQcI/waFhv8HCQqACIeIgAmJioAKiwEsAIACggGBA8kCBAb9A4IFzQSDhMAFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAKEAYED7wIEBvsDggXbBIOE0QUHCP8GhYalBwkKgAiHiIAJiYqACosBXgCAAogBgQPhAgQG+wOCBdoEg4S+BQcI/waFhv8HCQqACIeIgAmJioAKiwEWAIACZAGBA64CBAb1A4IFugSDhKEFBwj/BoWGxwcJCoAIh4iACYmKgAqLAQEAgAK2AYED+QIEBv8DggXoBIOE6wUHCIAGhYaABwkKgAiHiIAJiYqACosBfACAAo8BgQPxAgQG/wOCBeMEg4TqBQcIgAaFhoAHCQqACIeIgAmJioAKiwEjAIACTQGBA7UCBAb7A4IFwQSDhNMFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAKdAYED9wIEBv8DggXsBIOE5wUHCP8GhYb/BwkKgAiHiIAJiYqACosBeQCAAo0BgQPrAgQG/wOCBeEEg4TjBQcI/waFhv8HCQqACIeIgAmJioAKiwEtAIACYwGBA7wCBAb7A4IFwwSDhNkFBwj/BoWG4AcJCoAIh4iACYmKgAqLAQEAgAIBAYED+wIEBv8DggXVBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBywCAAgEBgQP4AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGJAIACAQGBA7ECBAb/A4IF4ASDhP8FBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAIJAYED+AIEBvsDggXPBIOE0AUHCP8GhYbABwkKgAiHiIAJiYqACosBrwCAAg0BgQPgAgQG8wOCBcEEg4S5BQcI+QaFhsYHCQr/CIeI/wmJioAKiwFJAIACEQGBA6sCBAbdA4IFoQSDhLMFBwjsBoWGpwcJCv8Ih4jqCYmKgAqLAQEAgAJfAYED9wIEBv0DggXUBIOEtwUHCP8GhYb/BwkKgAiHiIAJiYqACosB7wCAAloBgQP0AgQG+gOCBdMEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwGbAIACTQGBA8MCBAb4A4IFvASDhMMFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAIYAYED7wIEBvsDggXaBIOE2wUHCP8GhYbNBwkKgAiHiIAJiYqACosByQCAAjMBgQPbAgQG/wOCBcQEg4S6BQcIgAaFhoAHCQqACIeIgAmJioAKiwFFAIACLgGBA74CBAbvA4IFyQSDhNoFBwj/BoWG5AcJCoAIh4iACYmKgAqLAQEAgAK/AYED+wIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB3wCAAqUBgQP5AgQG/wOCBdUEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGNAIACfAGBA/gCBAb/A4IF/wSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIQAYED+AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBvgCAAiQBgQPmAgQG/wOCBewEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGVAIACAQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgALiAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9wCAAsABgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwHwAIACgAGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKGAYED/AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB1QCAAj4BgQP6AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwE3AIACXQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcoAgAIYAYED1QIEBusDggW6BIOEvwUHCNwGhYagBwkK8AiHiK8JiYr/CosBfgCAAiYBgQO2AgQG6AOCBakEg4S4BQcI5AaFhq4HCQr/CIeIuwmJioAKiwE9AIACLgGBA4oCBAbbA4IFlwSDhLIFBwjwBoWGqgcJCv8Ih4jYCYmKgAqLAQEAgAJwAYED5gIEBvoDggXHBIOEvwUHCPcGhYafBwkK/wiHiP8JiYqACosBpgCAAm0BgQPkAgQG/AOCBdMEg4TXBQcI/waFhq4HCQqACIeIgAmJioAKiwEnAIACTQGBA6ICBAboA4IFrASDhLQFBwj1BoWGsgcJCv8Ih4j/CYmKgAqLAQEAgAI0AYED3AIEBvYDggXGBIOExwUHCPkGhYbcBwkK/wiHiP8JiYqACosBfACAAkoBgQO/AgQG8wOCBbcEg4TBBQcI+gaFht0HCQr/CIeI/wmJioAKiwEYAIACRwGBA4ICBAbbA4IFmgSDhKoFBwjzBoWGtgcJCv8Ih4j/CYmKgAqLAQEAgAK2AYED4QIEBvkDggXbBIOE8AUHCP8GhYbgBwkKgAiHiIAJiYqACosBlQCAApYBgQPiAgQG/AOCBdgEg4TNBQcI/waFhqsHCQqACIeIgAmJioAKiwEcAIACbAGBA6oCBAbyA4IFtwSDhMIFBwj+BoWG3wcJCv8Ih4j/CYmKgAqLAQEAgAJRAYED5gIEBvwDggXMBIOEywUHCP8GhYbABwkKgAiHiIAJiYqACosBewCAAmYBgQPRAgQG9wOCBbwEg4TEBQcI/waFhukHCQqACIeIgAmJioAKiwEUAIACXwGBA5kCBAbzA4IFpASDhK0FBwj/BoWGywcJCoAIh4iACYmKgAqLAQEAgALeAYED+AIEBv8DggXYBIOE1QUHCIAGhYaABwkKgAiHiIAJiYqACosBqACAAq8BgQP2AgQG/AOCBesEg4TNBQcI/waFhv8HCQqACIeIgAmJioAKiwEvAIACdAGBA9cCBAb/A4IF0wSDhNQFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJ5AYED7AIEBv0DggXUBIOE1gUHCP8GhYb/BwkKgAiHiIAJiYqACosBjQCAAlQBgQPVAgQG/AOCBckEg4TKBQcI/waFhtsHCQqACIeIgAmJioAKiwEqAIACUAGBA6ACBAbwA4IFogSDhLkFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9ACAAgEBgQP/AgQG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AAAA8gEAAAAAAAABAAAAAQAAAPMBAAAAAAAABAAAAAQAAACqAQAAQ2ljcHByaW1hcmllc3RyYW5zZmVybWF0cml4ZnVsbF9yYW5nZURpbWVuc2lvbkVycm9ySW5zdWZmaWNpZW50TWVtb3J5AAAAAAAAACAAAAAIAAAA9AEAAAAAAAAEAAAABAAAAPUBAABsaW1pdHNzdXBwb3J0ZWQA9gEAAAwAAAAEAAAA9wEAAFBhcmFtZXRlckVycm9yQ2FwYWNpdHlPdmVyZmxvdwAAAAAAAAQAAAAEAAAA+AEAAEFsbG9jRXJybGF5b3V0Q3NwbGF0KGNlbnRlcjogAAAATtURAA8AAABv0xEACwAAAHrTEQAHAAAAgdMRAAoAAACL0xEADgAAAF4HEgABAAAARXhhY3ROYW1lUGF0aEV4dGVuc2lvblVua25vd25pbnZhbGlkIHNlZWsgdG8gYSBuZWdhdGl2ZSBvciBvdmVyZmxvd2luZyBwb3NpdGlvbgCt1REAMgAAABQAAACmJhAAWgAAAD0AAAAkAAAARW1wdHlJbnZhbGlkRGlnaXRQb3NPdmVyZmxvd05lZ092ZXJmbG93WmVybwAAAAAABAAAAAQAAAD5AQAAVW5zdXBwb3J0ZWRFcnJvclBuZ0pwZWdHaWZXZWJQUG5tVGlmZlRnYURkc0JtcEljb0hkck9wZW5FeHJGYXJiZmVsZEF2aWZRb2lQY3gAAAAAAAAABAAAAAQAAAD6AQAAUGFyc2VJbnRFcnJvckE4TDFMYTFSZ2IxUmdiYTFMMkxhMlJnYjJSZ2JhMkw0TGE0UmdiNFJnYmE0UmdiNXgxTDhMYThSZ2I4UmdiYThMMTZMYTE2UmdiMTZSZ2JhMTZCZ3I4QmdyYThSZ2IzMkZSZ2JhMzJGQ215azhDbXlrMTZMaW1pdFN1cHBvcnREaW1lbnNpb25NaXNtYXRjaEZhaWxlZEFscmVhZHkAAAAAAAAEAAAABAAAAPsBAABSZ2JDaWNwUmVxdWlyZWRHZW5lcmljTm9Nb3JlRGF0YQAAAAAEAAAAAQAAAPwBAABDaWNwTWlzbWF0Y2hleHBlY3RlZGZvdW5kAAAAAAAAAAgAAAAEAAAAxwAAAAAAAAAIAAAABAAAAHAAAADHAAAAoNcRALAAAADIAAAAsgAAALAAAACzAAAA/QEAACgAAAAI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ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9ybWlkID4gbGVu/wASAAkAAABzdGRvdXRmYWlsZWQgcHJpbnRpbmcgdG8gAAAAFgESABMAAABd/BEAAgAAANoQEAAbAAAAjQQAAAkAAABvcGVyYXRpb24gc3VjY2Vzc2Z1bG9uZS10aW1lIGluaXRpYWxpemF0aW9uIG1heSBub3QgYmUgcGVyZm9ybWVkIHJlY3Vyc2l2ZWx5YAESADgAAABjYW5ub3QgcmVjdXJzaXZlbHkgYWNxdWlyZSBtdXRleKABEgAgAAAA6AcQACwAAAATAAAACQAAAGxvY2sgY291bnQgb3ZlcmZsb3cgaW4gcmVlbnRyYW50IG11dGV4AADlFBAAJgAAACMBAAAtAAAA7xoQACMAAADXAAAAFAAAAO8aEAAjAAAA1wAAADEAAABMYXp5TG9jayBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAAwAhIALgAAAMMUEAAhAAAAlwEAAAUAAABmYWlsZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIHRocmVhZCBJRDogYml0c3BhY2UgZXhoYXVzdGVkAHgCEgA3AAAAph4QAB0AAADUBAAADQAAADoKAACFAQAADAAAAAQAAABIAgAASQIAAEoCAAAAAAAACAAAAAQAAABLAgAATAIAAE0CAABOAgAATwIAABAAAAAEAAAAUAIAAFECAABSAgAAUwIAAGNhbm5vdCBtb2RpZnkgdGhlIHBhbmljIGhvb2sgZnJvbSBhIHBhbmlja2luZyB0aHJlYWQcAxIANAAAAA4WEAAcAAAAkAAAAAkAAAAAAAAABAAAAAQAAABUAgAAV291bGRCbG9jayAob3MgZXJyb3IgAAAAAQAAAAAAAACCAxIACwAAAF4HEgABAAAA2hAQABsAAABcAwAAFAAAAE5vdEZvdW5kUGVybWlzc2lvbkRlbmllZENvbm5lY3Rpb25SZWZ1c2VkQ29ubmVjdGlvblJlc2V0SG9zdFVucmVhY2hhYmxlTmV0d29ya1VucmVhY2hhYmxlQ29ubmVjdGlvbkFib3J0ZWROb3RDb25uZWN0ZWRBZGRySW5Vc2VBZGRyTm90QXZhaWxhYmxlTmV0d29ya0Rvd25Ccm9rZW5QaXBlQWxyZWFkeUV4aXN0c05vdEFEaXJlY3RvcnlJc0FEaXJlY3RvcnlEaXJlY3RvcnlOb3RFbXB0eVJlYWRPbmx5RmlsZXN5c3RlbUZpbGVzeXN0ZW1Mb29wU3RhbGVOZXR3b3JrRmlsZUhhbmRsZUludmFsaWRJbnB1dEludmFsaWREYXRhVGltZWRPdXRXcml0ZVplcm9TdG9yYWdlRnVsbE5vdFNlZWthYmxlUXVvdGFFeGNlZWRlZEZpbGVUb29MYXJnZVJlc291cmNlQnVzeUV4ZWN1dGFibGVGaWxlQnVzeURlYWRsb2NrQ3Jvc3Nlc0RldmljZXNUb29NYW55TGlua3NJbnZhbGlkRmlsZW5hbWVBcmd1bWVudExpc3RUb29Mb25nSW50ZXJydXB0ZWRVbnN1cHBvcnRlZFVuZXhwZWN0ZWRFb2ZPdXRPZk1lbW9yeUluUHJvZ3Jlc3NPdGhlclVuY2F0ZWdvcml6ZWR1bnN1cHBvcnRlZCBiYWNrdHJhY2VkaXNhYmxlZCBiYWNrdHJhY2UAXhsQABwAAACKAQAAHQAAAFUCAAAQAAAABAAAAFYCAABXAgAAcGFuaWNrZWQgYXQgAQAAAAAAAABQ/BEAAQAAAFD8EQABAAAAAAAAAAgAAAAEAAAAWAIAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAACgiEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAAAoIhAAKgAAALcEAAANAAAA4BMQAC0AAAAWAQAAKQAAAIUBAAAMAAAABAAAAFkCAABudWxsIHBvaW50ZXIgcGFzc2VkIHRvIHJ1c3RyZWN1cnNpdmUgdXNlIG9mIGFuIG9iamVjdCBkZXRlY3RlZCB3aGljaCB3b3VsZCBsZWFkIHRvIHVuc2FmZSBhbGlhc2luZyBpbiBydXN0SnNWYWx1ZSgpAFYHEgAIAAAAXgcSAAEAAAB/FhAAaQAAAHwAAAARAAAAfxYQAGkAAACJAAAAEQAAAFpJUDY0IGZvb3RlciBpbmRpY2F0ZXMgbW9yZSBmaWxlcyBvbiB0aGlzIGRpc2sgdGhhbiBpbiB0aGUgd2hvbGUgYXJjaGl2ZUludmFsaWQgY2VudHJhbCBkaXJlY3Rvcnkgc2l6ZSBvciBvZmZzZXRmYWlsZWQgdG8gZmlsbCB3aG9sZSBidWZmZXIAAAgSABsAAAAlAAAAAgAAABwIEgBDUkMzMiBjaGVja3N1bSBmYWlsZWQgb24gVW5pY29kZSBleHRyYSBmaWVsZFVuaWNvZGUgZXh0cmEgZmllbGQgaXMgdG9vIHNtYWxsRXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkIGlzIGVtcHR5AAAA/g8QAHQAAABKAAAAJAAAAGZsYWdzIGFuZCBsZW4gZG9uJ3QgbWF0Y2ggaW4gZXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgYXR0cmlidXRlIHNpemVOVEZTIGV4dHJhIGZpZWxkIGhhcyBhbiB1bnN1cHBvcnRlZCBhdHRyaWJ1dGUgdGFnTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAAQGAAA6AAAARXh0cmEgZmllbGQgY29udGVudCBleGNlZWRzIGRlY2xhcmVkIGxlbmd0aADOIRAAWQAAAAYGAAA7AAAAWklQNjQgZXh0cmEgZmllbGQgdHJ1bmNhdGVkWklQNjQgZXh0cmEtZGF0YSBmaWVsZCBpcyB0aGUgd3JvbmcgbGVuZ3RoAAAAziEQAFkAAABeBgAAEgAAAEFFUyBleHRyYSBmaWVsZCB0cnVuY2F0ZWRJbnZhbGlkIEFFUyBlbmNyeXB0aW9uIHN0cmVuZ3RoSW52YWxpZCBBRVMgdmVuZG9yIHZlcnNpb25JbnZhbGlkIEFFUyB2ZW5kb3JBRVMgZXh0cmEgZGF0YSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAIgGAAAfAAAARXh0cmEgZmllbGQgY29udGVudCB0cnVuY2F0ZWRFeHRyYSBmaWVsZCBoZWFkZXIgdHJ1bmNhdGVkSW52YWxpZCBjaGVja3N1bQBBkJbIAAvjBAEAAAC0AQAAKCkAAMQeEABQAAAAKgIAABEAAABpL28gZXJyb3I6IAAsCxIACwAAAGludmFsaWQgWmlwIGFyY2hpdmU6IAAAAEALEgAVAAAAdW5zdXBwb3J0ZWQgWmlwIGFyY2hpdmU6IAAAAGALEgAZAAAAc3BlY2lmaWVkIGZpbGUgbm90IGZvdW5kIGluIGFyY2hpdmVwcm92aWRlZCBwYXNzd29yZCBpcyBpbmNvcnJlY3QAAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAFV0ZjhFcnJvcnZhbGlkX3VwX3RvZXJyb3JfbGVuAAAAWgIAAAwAAAAEAAAAWwIAAAAAAAAEAAAABAAAAFwCAABGcm9tVXRmOEVycm9yYnl0ZXNlcnJvck5vbmVTb21lACYcEABvAAAAwwAAAAkAAAAmHBAAbwAAALwAAAAqAAAAJhwQAG8AAAC5AAAAKgAAAJsBEABnAAAAdAEAACkAAACbARAAZwAAAHkBAAAcAAAAmwEQAGcAAAB5AQAALQAA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AGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUQERIACAcJBgoFCwQMAw0CDgEPAABZFxAAYAAAAJMAAAAJAAAAAABgB1AAAAgQAAAIcwAUCB8AEgdwAAAIMAAACMAAAAkKABAHYAAACCAAAAigAAAJAAAACIAAAAhAAAAI4AAACQYAEAdYAAAIGAAACJAAAAk7ABMHeAAACDgAAAjQAAAJEQARB2gAAAgoAAAIsAAACQgAAAiIAAAISAAACPAAAAkEABAHVAAACBQAAAjjABUIKwATB3QAAAg0AAAIyAAACQ0AEQdkAAAIJAAACKgAAAkEAAAIhAAACEQAAAjoAAAJCAAQB1wAAAgcAAAImAAACVMAFAd8AAAIPAAACNgAAAkXABIHbAAACCwAAAi4AAAJDAAACIwAAAhMAAAI+AAACQMAEAdSAAAIEgAACKMAFQgjABMHcgAACDIAAAjEAAAJCwARB2IAAAgiAAAIpAAACQIAAAiCAAAIQgAACOQAAAkHABAHWgAACBoAAAiUAAAJQwAUB3oAAAg6AAAI1AAACRMAEgdqAAAIKgAACLQAAAkKAAAIigAACEoAAAj0AAAJBQAQB1YAAAgWAAAIAABACDMAEwd2AAAINgAACMwAAAkPABEHZgAACCYAAAisAAAJBgAACIYAAAhGAAAI7AAACQkAEAdeAAAIHgAACJwAAAljABQHfgAACD4AAAjcAAAJGwASB24AAAguAAAIvAAACQ4AAAiOAAAITgAACPwAAAkAAGAHUQAACBEAAAiDABUIHwASB3EAAAgxAAAIwgAACQoAEAdhAAAIIQAACKIAAAkBAAAIgQAACEEAAAjiAAAJBgAQB1kAAAgZAAAIkgAACTsAEwd5AAAIOQAACNIAAAkRABEHaQAACCkAAAiyAAAJCQAACIkAAAhJAAAI8gAACQQAEAdVAAAIFQAACAIBEAgrABMHdQAACDUAAAjKAAAJDQARB2UAAAglAAAIqgAACQUAAAiFAAAIRQAACOoAAAkIABAHXQAACB0AAAiaAAAJUwAUB30AAAg9AAAI2gAACRcAEgdtAAAILQAACLoAAAkNAAAIjQAACE0AAAj6AAAJAwAQB1MAAAgTAAAIwwAVCCMAEwdzAAAIMwAACMYAAAkLABEHYwAACCMAAAimAAAJAwAACIMAAAhDAAAI5gAACQcAEAdbAAAIGwAACJYAAAlDABQHewAACDsAAAjWAAAJEwASB2sAAAgrAAAItgAACQsAAAiLAAAISwAACPYAAAkFABAHVwAACBcAAAgAAEAIMwATB3cAAAg3AAAIzgAACQ8AEQdnAAAIJwAACK4AAAkHAAAIhwAACEcAAAjuAAAJCQAQB18AAAgfAAAIngAACWMAFAd/AAAIPwAACN4AAAkbABIHbwAACC8AAAi+AAAJDwAACI8AAAhPAAAI/gAACQAAYAdQAAAIEAAACHMAFAgfABIHcAAACDAAAAjBAAAJCgAQB2AAAAggAAAIoQAACQAAAAiAAAAIQAAACOEAAAkGABAHWAAACBgAAAiRAAAJOwATB3gAAAg4AAAI0QAACREAEQdoAAAIKAAACLEAAAkIAAAIiAAACEgAAAjxAAAJBAAQB1QAAAgUAAAI4wAVCCsAEwd0AAAINAAACMkAAAkNABEHZAAACCQAAAipAAAJBAAACIQAAAhEAAAI6QAACQgAEAdcAAAIHAAACJkAAAlTABQHfAAACDwAAAjZAAAJFwASB2wAAAgsAAAIuQAACQwAAAiMAAAITAAACPkAAAkDABAHUgAACBIAAAijABUIIwATB3IAAAgyAAAIxQAACQsAEQdiAAAIIgAACKUAAAkCAAAIggAACEIAAAjlAAAJBwAQB1oAAAgaAAAIlQAACUMAFAd6AAAIOgAACNUAAAkTABIHagAACCoAAAi1AAAJCgAACIoAAAhKAAAI9QAACQUAEAdWAAAIFgAACAAAQAgzABMHdgAACDYAAAjNAAAJDwARB2YAAAgmAAAIrQAACQYAAAiGAAAIRgAACO0AAAkJABAHXgAACB4AAAidAAAJYwAUB34AAAg+AAAI3QAACRsAEgduAAAILgAACL0AAAkOAAAIjgAACE4AAAj9AAAJAABgB1EAAAgRAAAIgwAVCB8AEgdxAAAIMQAACMMAAAkKABAHYQAACCEAAAijAAAJAQAACIEAAAhBAAAI4wAACQYAEAdZAAAIGQAACJMAAAk7ABMHeQAACDkAAAjTAAAJEQARB2kAAAgpAAAIswAACQkAAAiJAAAISQAACPMAAAkEABAHVQAACBUAAAgCARAIKwATB3UAAAg1AAAIywAACQ0AEQdlAAAIJQAACKsAAAkFAAAIhQAA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", self.location.href);\n }\n const imports = __wbg_get_imports();\n if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) {\n module_or_path = fetch(module_or_path);\n }\n const { instance } = await __wbg_load(await module_or_path, imports);\n return __wbg_finalize_init(instance);\n }\n const rpcHandlers = {\n sortSplats16,\n sortSplats32,\n loadPackedSplats,\n loadExtSplats,\n tinyLodPackedSplats,\n qualityLodPackedSplats,\n tinyLodExtSplats,\n qualityLodExtSplats,\n newLodTree,\n newSharedLodTree,\n initLodTree,\n disposeLodTree,\n updateLodTrees,\n traverseLodTrees,\n getLodTreeLevel,\n nextChunk\n };\n async function onMessage(event) {\n const {\n id,\n name,\n args\n } = event.data;\n try {\n const handler = rpcHandlers[name];\n if (!handler) {\n throw new Error(`Unknown worker RPC: ${name}`);\n }\n const sendStatus = (data) => {\n self.postMessage(\n { id, status: data },\n { transfer: getTransferable(data) }\n );\n };\n const result = await handler(args, { sendStatus });\n self.postMessage({ id, result }, { transfer: getTransferable(result) });\n } catch (error) {\n console.warn(`Worker error: ${error}`);\n self.postMessage({ id, error }, { transfer: getTransferable(error) });\n }\n }\n function sortSplats16({\n numSplats,\n readback,\n ordering\n }) {\n const activeSplats = sort_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n }\n function sortSplats32({\n numSplats,\n readback,\n ordering\n }) {\n const activeSplats = sort32_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n }\n async function decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n }) {\n if (fileBytes) {\n const CHUNK_SIZE = 1048576;\n for (let i = 0; i < fileBytes.length; i += CHUNK_SIZE) {\n decoder.push(\n fileBytes.subarray(i, Math.min(i + CHUNK_SIZE, fileBytes.length))\n );\n }\n } else if (url) {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : void 0,\n credentials: withCredentials ? "include" : "same-origin"\n });\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch "${url}": ${response.status} ${response.statusText}`\n );\n }\n const readStream = response.body.getReader();\n const contentLength = Number.parseInt(\n response.headers.get("Content-Length") || "0"\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n let loaded = 0;\n while (true) {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n break;\n }\n loaded += value.length;\n sendStatus({ loaded, total });\n decoder.push(value);\n }\n } else if (chunked) {\n let loaded = 0;\n const total = chunkedLength ?? 0;\n while (true) {\n const readNextChunk = new Promise((resolve) => {\n nextChunkWaiter = resolve;\n });\n sendStatus({ nextChunk: true });\n const nextChunk2 = await readNextChunk;\n if (nextChunk2.length === 0) {\n break;\n }\n decoder.push(nextChunk2);\n loaded += nextChunk2.length;\n sendStatus({ progress: { loaded, total } });\n }\n if (total === 0) {\n sendStatus({ progress: { loaded, total: loaded } });\n }\n } else {\n throw new Error("No url or fileBytes provided");\n }\n const decoded = decoder.finish();\n return decoded;\n }\n function toPackedResult(packed) {\n return {\n numSplats: packed.numSplats,\n packedArray: packed.packed,\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3: packed.sh3,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree\n },\n splatEncoding: packed.splatEncoding\n };\n }\n async function loadPackedSplats({\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n encoding,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes\n }, {\n sendStatus\n }) {\n if (!lod) {\n const decoder2 = decode_to_packedsplats(\n fileType,\n pathName ?? url,\n encoding,\n sh1Codes,\n sh2Codes,\n sh3Codes\n );\n const decoded2 = await decodeBytesUrl({\n decoder: decoder2,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n const result2 = toPackedResult(decoded2);\n if (result2.splatEncoding.lodOpacity) {\n return { lodSplats: result2 };\n }\n return result2;\n }\n const decoder = decode_to_csplatarray(fileType, pathName ?? url, encoding);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n if (decoded.has_lod()) {\n const result2 = toPackedResult(\n decoded.to_packedsplats_lod()\n );\n return { lodSplats: result2 };\n }\n if (lodAbove !== void 0) {\n if (decoded.len() < lodAbove) {\n return toPackedResult(decoded.to_packedsplats());\n }\n }\n let result = {};\n if (nonLod) {\n result = toPackedResult(decoded.to_packedsplats());\n }\n const initialSplats = decoded.len();\n const lodName = lod === "quality" ? "Bhatt" : "Tiny";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`\n );\n const lodStart = performance.now();\n if (lod === "quality") {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.25));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`\n );\n const lodPacked = decoded.to_packedsplats_lod();\n result.lodSplats = toPackedResult(lodPacked);\n return result;\n }\n function toExtResult(packed) {\n return {\n numSplats: packed.numSplats,\n extArrays: [packed.ext0, packed.ext1],\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3a: packed.sh3a,\n sh3b: packed.sh3b,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree\n }\n };\n }\n async function loadExtSplats({\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes\n }, {\n sendStatus\n }) {\n if (!lod) {\n const decoder2 = decode_to_extsplats(\n fileType,\n pathName ?? url,\n sh1Codes,\n sh2Codes,\n sh3Codes\n );\n const decoded2 = await decodeBytesUrl({\n decoder: decoder2,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n const result2 = toExtResult(decoded2);\n if (result2.extra.lodTree) {\n return { lodSplats: result2 };\n }\n return result2;\n }\n const decoder = decode_to_gsplatarray(fileType, pathName ?? url);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n if (decoded.has_lod()) {\n return {\n lodSplats: toExtResult(decoded.to_extsplats_lod())\n };\n }\n if (lodAbove !== void 0) {\n if (decoded.len() < lodAbove) {\n return toExtResult(decoded.to_extsplats());\n }\n }\n let result = {};\n if (nonLod) {\n result = toExtResult(decoded.to_extsplats());\n }\n const initialSplats = decoded.len();\n const lodName = lod === "quality" ? "Bhatt" : "Tiny";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`\n );\n const lodStart = performance.now();\n if (lod === "quality") {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.75));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`\n );\n const lodPacked = decoded.to_extsplats_lod();\n result.lodSplats = toExtResult(lodPacked);\n return result;\n }\n async function tinyLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_packedsplats(\n numSplats,\n packedArray,\n extra,\n base,\n filter,\n rgba,\n encoding\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n async function qualityLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_packedsplats(\n numSplats,\n packedArray,\n extra,\n base,\n rgba,\n encoding\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n async function tinyLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra,\n base,\n filter,\n rgba\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n async function qualityLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra,\n base,\n rgba\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n function newLodTree({\n capacity\n }) {\n const { lodId } = new_lod_tree(capacity);\n return { lodId };\n }\n function newSharedLodTree({\n lodId\n }) {\n const { lodId: newLodId } = new_shared_lod_tree(lodId);\n return { lodId: newLodId };\n }\n function initLodTree({\n numSplats,\n lodTree\n }) {\n const { lodId, chunkToPage } = init_lod_tree(numSplats, lodTree);\n return { lodId, chunkToPage };\n }\n function disposeLodTree({ lodId }) {\n dispose_lod_tree(lodId);\n }\n function updateLodTrees({\n ranges\n }) {\n const lodIds = new Uint32Array(ranges.map(({ lodId }) => lodId));\n const pageBases = new Uint32Array(ranges.map(({ pageBase }) => pageBase));\n const chunkBases = new Uint32Array(ranges.map(({ chunkBase }) => chunkBase));\n const counts = new Uint32Array(ranges.map(({ count }) => count));\n const lodTreeData = ranges.map(({ lodTreeData: lodTreeData2 }) => lodTreeData2);\n update_lod_trees(\n lodIds,\n pageBases,\n chunkBases,\n counts,\n lodTreeData\n );\n }\n function traverseLodTrees({\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n instances\n }) {\n const keyInstances = Object.entries(instances);\n const lodIds = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.lodId)\n );\n const rootPages = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.rootPage ?? 4294967295)\n );\n const viewToObjects = new Float32Array(\n keyInstances.flatMap(([_key, instance]) => {\n if (instance.viewToObjectCols.length !== 16) {\n throw new Error("Incorrect array size for viewToObjectCols");\n }\n return instance.viewToObjectCols;\n })\n );\n const lodScales = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.lodScale)\n );\n const behindFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.behindFoveate)\n );\n const coneFov0s = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov0)\n );\n const coneFovs = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov)\n );\n const coneFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFoveate)\n );\n const result = traverse_lod_trees(\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n lodIds,\n rootPages,\n viewToObjects,\n lodScales,\n behindFoveates,\n coneFoveates,\n coneFov0s,\n coneFovs\n );\n const { instanceIndices, chunks, pixelLimit } = result;\n const indices = keyInstances.reduce(\n (indices2, [key, _instance], index) => {\n indices2[key] = instanceIndices[index];\n return indices2;\n },\n {}\n );\n return {\n keyIndices: indices,\n chunks,\n pixelLimit\n };\n }\n function getLodTreeLevel({\n lodId,\n level\n }) {\n return get_lod_tree_level(lodId, level);\n }\n let nextChunkWaiter = (_chunk) => {\n };\n async function nextChunk({ chunk }) {\n nextChunkWaiter(chunk);\n }\n function getTransferable(ctx) {\n const buffers = [];\n const seen = /* @__PURE__ */ new Set();\n function traverse(obj) {\n if (obj && typeof obj === "object" && !seen.has(obj)) {\n seen.add(obj);\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n buffers.push(obj.buffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n traverse(ctx);\n return buffers;\n }\n async function initialize() {\n const pending = [];\n const bufferMessage = (event) => {\n pending.push(event);\n };\n self.addEventListener("message", bufferMessage);\n await __wbg_init();\n self.removeEventListener("message", bufferMessage);\n self.addEventListener("message", onMessage);\n for (const event of pending) {\n onMessage(event);\n }\n pending.length = 0;\n }\n initialize().catch(console.error);\n})();\n//# sourceMappingURL=worker-On-THXgb.js.map\n'; -const blob = typeof self !== "undefined" && self.Blob && new Blob([jsContent], { type: "text/javascript;charset=utf-8" }); -function WorkerWrapper(options) { - let objURL; - try { - objURL = blob && (self.URL || self.webkitURL).createObjectURL(blob); - if (!objURL) throw ""; - const worker = new Worker(objURL, { - name: options == null ? void 0 : options.name - }); - worker.addEventListener("error", () => { - (self.URL || self.webkitURL).revokeObjectURL(objURL); - }); - return worker; - } catch (e) { - return new Worker( - "data:text/javascript;charset=utf-8," + encodeURIComponent(jsContent), - { - name: options == null ? void 0 : options.name - } - ); - } finally { - objURL && (self.URL || self.webkitURL).revokeObjectURL(objURL); +class DynoIvec4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "ivec4", value, update }); } } -const _SplatWorker = class _SplatWorker { - constructor() { - this.queue = null; - this.messages = {}; - this.worker = new WorkerWrapper(); - this.worker.onmessage = (event) => this.onMessage(event); +class DynoVec4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "vec4", value, update }); } - onMessage(event) { - var _a2; - const { id, result, error, status } = event.data; - const promise = this.messages[id]; - if (promise) { - if (error !== void 0) { - delete this.messages[id]; - promise.reject(error); - } else if (status !== void 0) { - (_a2 = promise.onStatus) == null ? void 0 : _a2.call(promise, status); - } else { - delete this.messages[id]; - promise.resolve(result); - } - } +} +class DynoMat2 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat2", value, update }); } - tryExclusive(callback) { - return this.queue == null ? this.exclusive(callback) : null; +} +class DynoMat2x2 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat2x2", value, update }); } - async exclusive(callback) { - const queue = this.queue; - if (queue != null) { - await new Promise((resolve) => { - queue.push(() => resolve(void 0)); - }); - } else { - this.queue = []; - } - try { - return await callback(this); - } finally { - if (this.queue != null) { - if (this.queue.length === 0) { - this.queue = null; - } else { - const waiter = this.queue.shift(); - waiter(); - } - } - } +} +class DynoMat2x3 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat2x3", value, update }); } - async call(name, args, options = {}) { - const id = ++_SplatWorker.currentId; - const promise = new Promise((resolve, reject) => { - this.messages[id] = { resolve, reject, onStatus: options.onStatus }; - }); - this.worker.postMessage( - { id, name, args }, - { transfer: getTransferable(args) } - ); - return await promise; +} +class DynoMat2x4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat2x4", value, update }); } - dispose() { - this.worker.terminate(); - const messages = Object.values(this.messages); - this.messages = {}; - for (const message of messages) { - message.reject(new Error("Worker terminate")); - } +} +class DynoMat3 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat3", value, update }); } -}; -_SplatWorker.currentId = 0; -let SplatWorker = _SplatWorker; -class NewSplatWorkerPool { - constructor(maxWorkers2 = 4) { - this.numWorkers = 0; - this.freelist = []; - this.queue = []; - this.maxWorkers = maxWorkers2; +} +class DynoMat3x2 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat3x2", value, update }); } - async withWorker(callback) { - const worker = await this.allocWorker(); - try { - return await callback(worker); - } finally { - this.freeWorker(worker); - } +} +class DynoMat3x3 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat3x3", value, update }); } - async allocWorker() { - const worker = this.freelist.pop(); - if (worker) { - return worker; - } - if (this.numWorkers < this.maxWorkers) { - const worker2 = new SplatWorker(); - this.numWorkers += 1; - return worker2; - } - return new Promise((resolve) => { - this.queue.push(resolve); - }); +} +class DynoMat3x4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat3x4", value, update }); } - freeWorker(worker) { - if (this.numWorkers > this.maxWorkers) { - this.numWorkers -= 1; - return; - } - const waiter = this.queue.shift(); - if (waiter) { - waiter(worker); - return; - } - this.freelist.push(worker); +} +class DynoMat4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat4", value, update }); } } -const workerPool = new NewSplatWorkerPool(); -const Gsplat = { type: "Gsplat" }; -const CovSplat = { type: "CovSplat" }; -const TPackedSplats = { type: "PackedSplats" }; -const TExtSplats = { type: "ExtSplats" }; -const TCovSplats = { type: "CovSplats" }; -const numPackedSplats = (packedSplats) => new NumPackedSplats({ packedSplats }); -const readPackedSplat = (packedSplats, index) => new ReadPackedSplat({ packedSplats, index }); -const readPackedSplatRange = (packedSplats, index, base, count) => new ReadPackedSplatRange({ packedSplats, index, base, count }); -const numExtSplats = (extSplats) => new NumExtSplats({ extSplats }); -const readExtSplat = (extSplats, index) => new ReadExtSplat({ extSplats, index }); -const numCovSplats = (covsplats) => new NumCovSplats({ covsplats }); -const readCovSplat = (covSplats, index) => new ReadCovSplat({ covSplats, index }); -const gsplatToCovSplat = (gsplat) => new GsplatToCovSplat({ gsplat }); -const splitGsplat = (gsplat) => new SplitGsplat({ gsplat }); -const combineGsplat = ({ - gsplat, - flags, - index, - center, - scales, - quaternion, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b -}) => { - return new CombineGsplat({ - gsplat, - flags, - index, - center, - scales, - quaternion, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b - }); -}; -const gsplatNormal = (gsplat) => new GsplatNormal({ gsplat }); -const transformGsplat = (gsplat, { - scale, - rotate, - translate, - recolor -}) => { - return new TransformGsplat({ gsplat, scale, rotate, translate, recolor }); -}; -const splatTexCoord = (index) => new SplatTexCoord({ index }); -const pagedSplatTexCoord = (index) => new PagedSplatTexCoord({ index }); -const defineGsplat = unindent(` - struct Gsplat { - vec3 center; - uint flags; - vec3 scales; - int index; - vec4 quaternion; - vec4 rgba; - }; - const uint GSPLAT_FLAG_ACTIVE = 1u << 0u; - - bool isGsplatActive(uint flags) { - return (flags & GSPLAT_FLAG_ACTIVE) != 0u; - } -`); -const defineCovSplat = unindent(` - struct CovSplat { - vec3 center; - uint flags; - vec4 rgba; - vec3 xxyyzz; - int index; - vec3 xyxzyz; - }; - - bool isCovSplatActive(uint flags) { - return (flags & GSPLAT_FLAG_ACTIVE) != 0u; - } -`); -const definePackedSplats = unindent(` - struct PackedSplats { - usampler2DArray textureArray; - int numSplats; - vec4 rgbMinMaxLnScaleMinMax; - bool lodOpacity; - }; -`); -class NumPackedSplats extends UnaryOp { +class DynoMat4x2 extends DynoUniform { constructor({ - packedSplats + key, + value, + update }) { - super({ a: packedSplats, outKey: "numSplats", outTypeFunc: () => "int" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.numSplats} = ${inputs.a}.numSplats;` - ]; + super({ key, type: "mat4x2", value, update }); } } -const defineReadPackedArray = unindent(` - bool readPackedArray(usampler2DArray texture, int numSplats, vec4 rgbMinMaxLnScaleMinMax, int index, out Gsplat gsplat) { - if ((index >= 0) && (index < numSplats)) { - uvec4 packedData = texelFetch(texture, splatTexCoord(index), 0); - unpackSplatEncoding(packedData, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba, rgbMinMaxLnScaleMinMax); - return true; - } else { - return false; - } - } -`); -class ReadPackedSplat extends Dyno { +class DynoMat4x3 extends DynoUniform { constructor({ - packedSplats, - index + key, + value, + update }) { - super({ - inTypes: { packedSplats: TPackedSplats, index: "int" }, - outTypes: { gsplat: Gsplat }, - inputs: { packedSplats, index }, - globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray], - statements: ({ inputs, outputs }) => { - const { gsplat } = outputs; - if (!gsplat) { - return []; - } - const { packedSplats: packedSplats2, index: index2 } = inputs; - let statements; - if (packedSplats2 && index2) { - statements = unindentLines(` - ${gsplat}.flags = 0u; - if (readPackedArray(${packedSplats2}.textureArray, ${packedSplats2}.numSplats, ${packedSplats2}.rgbMinMaxLnScaleMinMax, ${index2}, ${gsplat})) { - if (${packedSplats2}.lodOpacity) { - ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a; - } - bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0))); - ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE; - } - `); - } else { - statements = [`${gsplat}.flags = 0u;`]; - } - statements.push(`${gsplat}.index = ${index2 ?? "0"};`); - return statements; - } - }); + super({ key, type: "mat4x3", value, update }); } - dynoOut() { - return new DynoOutput(this, "gsplat"); +} +class DynoMat4x4 extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "mat4x4", value, update }); } } -class ReadPackedSplatRange extends Dyno { +class DynoUsampler2D extends DynoUniform { constructor({ - packedSplats, - index, - base, - count + key, + value, + update }) { - super({ - inTypes: { - packedSplats: TPackedSplats, - index: "int", - base: "int", - count: "int" - }, - outTypes: { gsplat: Gsplat }, - inputs: { packedSplats, index, base, count }, - globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray], - statements: ({ inputs, outputs }) => { - const { gsplat } = outputs; - if (!gsplat) { - return []; - } - const { packedSplats: packedSplats2, index: index2, base: base2, count: count2 } = inputs; - let statements; - if (packedSplats2 && index2 && base2 && count2) { - statements = unindentLines(` - ${gsplat}.flags = 0u; - if (readPackedArray(${packedSplats2}.textureArray, ${packedSplats2}.numSplats, ${packedSplats2}.rgbMinMaxLnScaleMinMax, ${index2}, ${gsplat})) { - if (${packedSplats2}.lodOpacity) { - ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a; - } - bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0))); - ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE; - } - `); - } else { - statements = [`${gsplat}.flags = 0u;`]; - } - statements.push(`${gsplat}.index = ${index2 ?? "0"};`); - return statements; - } - }); + super({ key, type: "usampler2D", value, update }); } - dynoOut() { - return new DynoOutput(this, "gsplat"); +} +class DynoIsampler2D extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "isampler2D", value, update }); } } -const defineExtSplats = unindent(` - struct ExtSplats { - usampler2DArray textureArray1; - usampler2DArray textureArray2; - int numSplats; - }; -`); -class NumExtSplats extends UnaryOp { - constructor({ extSplats }) { - super({ a: extSplats, outKey: "numSplats", outTypeFunc: () => "int" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.numSplats} = ${inputs.a}.numSplats;` - ]; +class DynoSampler2D extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "sampler2D", value, update }); } } -const defineReadExtArrays = unindent(` - void readExtArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out Gsplat gsplat) { - gsplat.flags = 0u; - if ((index >= 0) && (index < numSplats)) { - ivec3 coord = splatTexCoord(index); - uvec4 packed1 = texelFetch(texture1, coord, 0); - uvec4 packed2 = texelFetch(texture2, coord, 0); - unpackSplatExt(packed1, packed2, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba); - gsplat.flags = all(equal(gsplat.scales, vec3(0.0, 0.0, 0.0))) ? 0u : GSPLAT_FLAG_ACTIVE; - gsplat.index = index; - } +class DynoUsampler2DArray extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "usampler2DArray", value, update }); } -`); -class ReadExtSplat extends Dyno { +} +class DynoIsampler2DArray extends DynoUniform { constructor({ - extSplats, - index + key, + value, + update }) { - super({ - inTypes: { extSplats: TExtSplats, index: "int" }, - outTypes: { gsplat: Gsplat }, - inputs: { extSplats, index }, - globals: () => [defineGsplat, defineExtSplats, defineReadExtArrays], - statements: ({ inputs, outputs }) => { - const { gsplat } = outputs; - if (!gsplat) { - return [`${gsplat}.flags = 0u;`]; - } - const { extSplats: extSplats2, index: index2 } = inputs; - if (extSplats2 && index2) { - return unindentLines(` - readExtArrays(${extSplats2}.textureArray1, ${extSplats2}.textureArray2, ${extSplats2}.numSplats, ${index2}, ${gsplat}); - `); - } - return [`${gsplat}.flags = 0u;`]; - } - }); + super({ key, type: "isampler2DArray", value, update }); } - dynoOut() { - return new DynoOutput(this, "gsplat"); +} +class DynoSampler2DArray extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "sampler2DArray", value, update }); } } -class NumCovSplats extends UnaryOp { - constructor({ covsplats }) { - super({ a: covsplats, outKey: "numSplats", outTypeFunc: () => "int" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.numSplats} = ${inputs.a}.numSplats;` - ]; +class DynoUsampler3D extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "usampler3D", value, update }); } } -const defineReadCovArrays = unindent(` - void readCovArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out CovSplat covsplat) { - covsplat.flags = 0u; - if ((index >= 0) && (index < numSplats)) { - ivec3 coord = splatTexCoord(index); - uvec4 packed1 = texelFetch(texture1, coord, 0); - uvec4 packed2 = texelFetch(texture2, coord, 0); - unpackSplatExtCov(packed1, packed2, covsplat.center, covsplat.rgba, covsplat.xxyyzz, covsplat.xyxzyz); - covsplat.flags = (all(equal(covsplat.xxyyzz, vec3(0.0))) && all(equal(covsplat.xyxzyz, vec3(0.0)))) ? 0u : GSPLAT_FLAG_ACTIVE; - gsplat.index = index; - } - } -`); -class ReadCovSplat extends Dyno { +class DynoIsampler3D extends DynoUniform { constructor({ - covSplats, - index + key, + value, + update }) { - super({ - inTypes: { covSplats: TCovSplats, index: "int" }, - outTypes: { covsplat: CovSplat }, - inputs: { covSplats, index }, - globals: () => [defineGsplat, defineCovSplat, defineReadCovArrays], - statements: ({ inputs, outputs }) => { - const { covsplat } = outputs; - if (!covsplat) { - return [`${covsplat}.flags = 0u;`]; - } - const { covSplats: covSplats2, index: index2 } = inputs; - if (covSplats2 && index2) { - return unindentLines(` - readCovArrays(${covSplats2}.textureArray, ${covSplats2}.numSplats, ${index2}, ${covsplat}); - `); - } - return [`${covsplat}.flags = 0u;`]; - } - }); - } - dynoOut() { - return new DynoOutput(this, "covsplat"); + super({ key, type: "isampler3D", value, update }); } } -class GsplatToCovSplat extends Dyno { - constructor({ gsplat }) { - super({ - inTypes: { gsplat: Gsplat }, - outTypes: { covsplat: CovSplat }, - inputs: { gsplat }, - globals: () => [defineGsplat, defineCovSplat], - statements: ({ inputs, outputs }) => { - const { gsplat: gsplat2 } = inputs; - const { covsplat } = outputs; - if (!gsplat2) { - return [`${covsplat}.flags = 0u;`]; - } - return unindentLines(` - ${covsplat}.flags = 0u; - if (isGsplatActive(${gsplat2}.flags)) { - ${covsplat}.flags = ${gsplat2}.flags; - ${covsplat}.index = ${gsplat2}.index; - ${covsplat}.rgba = ${gsplat2}.rgba; - ${covsplat}.center = ${gsplat2}.center; - mat3 m = scaleQuaternionToMatrix(${gsplat2}.scales, ${gsplat2}.quaternion); - m = m * transpose(m); - ${covsplat}.xxyyzz = vec3(m[0][0], m[1][1], m[2][2]); - ${covsplat}.xyxzyz = vec3(m[0][1], m[0][2], m[1][2]); - } - `); - } - }); - } - dynoOut() { - return new DynoOutput(this, "covsplat"); +class DynoSampler3D extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "sampler3D", value, update }); } } -class SplitGsplat extends Dyno { - constructor({ gsplat }) { - super({ - inTypes: { gsplat: Gsplat }, - outTypes: { - flags: "uint", - active: "bool", - index: "int", - center: "vec3", - scales: "vec3", - quaternion: "vec4", - rgba: "vec4", - rgb: "vec3", - opacity: "float", - x: "float", - y: "float", - z: "float", - r: "float", - g: "float", - b: "float" - }, - inputs: { gsplat }, - globals: () => [defineGsplat], - statements: ({ inputs, outputs }) => { - const { gsplat: gsplat2 } = inputs; - const { - flags, - active, - index, - center, - scales, - quaternion, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b - } = outputs; - return [ - !flags ? null : `${flags} = ${gsplat2 ? `${gsplat2}.flags` : "0u"};`, - !active ? null : `${active} = isGsplatActive(${gsplat2 ? `${gsplat2}.flags` : "0u"});`, - !index ? null : `${index} = ${gsplat2 ? `${gsplat2}.index` : "0"};`, - !center ? null : `${center} = ${gsplat2 ? `${gsplat2}.center` : "vec3(0.0, 0.0, 0.0)"};`, - !scales ? null : `${scales} = ${gsplat2 ? `${gsplat2}.scales` : "vec3(0.0, 0.0, 0.0)"};`, - !quaternion ? null : `${quaternion} = ${gsplat2 ? `${gsplat2}.quaternion` : "vec4(0.0, 0.0, 0.0, 1.0)"};`, - !rgba ? null : `${rgba} = ${gsplat2 ? `${gsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)"};`, - !rgb ? null : `${rgb} = ${gsplat2 ? `${gsplat2}.rgba.rgb` : "vec3(0.0, 0.0, 0.0)"};`, - !opacity ? null : `${opacity} = ${gsplat2 ? `${gsplat2}.rgba.a` : "0.0"};`, - !x ? null : `${x} = ${gsplat2 ? `${gsplat2}.center.x` : "0.0"};`, - !y ? null : `${y} = ${gsplat2 ? `${gsplat2}.center.y` : "0.0"};`, - !z ? null : `${z} = ${gsplat2 ? `${gsplat2}.center.z` : "0.0"};`, - !r ? null : `${r} = ${gsplat2 ? `${gsplat2}.rgba.r` : "0.0"};`, - !g ? null : `${g} = ${gsplat2 ? `${gsplat2}.rgba.g` : "0.0"};`, - !b ? null : `${b} = ${gsplat2 ? `${gsplat2}.rgba.b` : "0.0"};` - ].filter(Boolean); - } - }); +class DynoUsamplerCube extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "usamplerCube", value, update }); } } -class CombineGsplat extends Dyno { +class DynoIsamplerCube extends DynoUniform { constructor({ - gsplat, - flags, - index, - center, - scales, - quaternion, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b + key, + value, + update }) { - super({ - inTypes: { - gsplat: Gsplat, - flags: "uint", - index: "int", - center: "vec3", - scales: "vec3", - quaternion: "vec4", - rgba: "vec4", - rgb: "vec3", - opacity: "float", - x: "float", - y: "float", - z: "float", - r: "float", - g: "float", - b: "float" - }, - outTypes: { gsplat: Gsplat }, - inputs: { - gsplat, - flags, - index, - center, - scales, - quaternion, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b - }, - globals: () => [defineGsplat], - statements: ({ inputs, outputs }) => { - const { gsplat: outGsplat } = outputs; - if (!outGsplat) { - return []; - } - const { - gsplat: gsplat2, - flags: flags2, - index: index2, - center: center2, - scales: scales2, - quaternion: quaternion2, - rgba: rgba2, - rgb: rgb2, - opacity: opacity2, - x: x2, - y: y2, - z: z2, - r: r2, - g: g2, - b: b22 - } = inputs; - return [ - `${outGsplat}.flags = ${flags2 ?? (gsplat2 ? `${gsplat2}.flags` : "0u")};`, - `${outGsplat}.index = ${index2 ?? (gsplat2 ? `${gsplat2}.index` : "0")};`, - `${outGsplat}.center = ${center2 ?? (gsplat2 ? `${gsplat2}.center` : "vec3(0.0, 0.0, 0.0)")};`, - `${outGsplat}.scales = ${scales2 ?? (gsplat2 ? `${gsplat2}.scales` : "vec3(0.0, 0.0, 0.0)")};`, - `${outGsplat}.quaternion = ${quaternion2 ?? (gsplat2 ? `${gsplat2}.quaternion` : "vec4(0.0, 0.0, 0.0, 1.0)")};`, - `${outGsplat}.rgba = ${rgba2 ?? (gsplat2 ? `${gsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)")};`, - !rgb2 ? null : `${outGsplat}.rgba.rgb = ${rgb2};`, - !opacity2 ? null : `${outGsplat}.rgba.a = ${opacity2};`, - !x2 ? null : `${outGsplat}.center.x = ${x2};`, - !y2 ? null : `${outGsplat}.center.y = ${y2};`, - !z2 ? null : `${outGsplat}.center.z = ${z2};`, - !r2 ? null : `${outGsplat}.rgba.r = ${r2};`, - !g2 ? null : `${outGsplat}.rgba.g = ${g2};`, - !b22 ? null : `${outGsplat}.rgba.b = ${b22};` - ].filter(Boolean); - } - }); + super({ key, type: "isamplerCube", value, update }); } - dynoOut() { - return new DynoOutput(this, "gsplat"); +} +class DynoSamplerCube extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "samplerCube", value, update }); } } -const defineGsplatNormal = unindent(` - vec3 gsplatNormal(vec3 scales, vec4 quaternion) { - float minScale = min(scales.x, min(scales.y, scales.z)); - vec3 normal; - if (scales.z == minScale) { - normal = vec3(0.0, 0.0, 1.0); - } else if (scales.y == minScale) { - normal = vec3(0.0, 1.0, 0.0); - } else { - normal = vec3(1.0, 0.0, 0.0); - } - return quatVec(quaternion, normal); - } -`); -class GsplatNormal extends UnaryOp { - constructor({ gsplat }) { - super({ a: gsplat, outKey: "normal", outTypeFunc: () => "vec3" }); - this.globals = () => [defineGsplat, defineGsplatNormal]; - this.statements = ({ inputs, outputs }) => [ - `${outputs.normal} = gsplatNormal(${inputs.a}.scales, ${inputs.a}.quaternion);` - ]; - } -} -class TransformGsplat extends Dyno { +class DynoSampler2DShadow extends DynoUniform { constructor({ - gsplat, - scale, - rotate, - translate, - recolor + key, + value, + update }) { - super({ - inTypes: { - gsplat: Gsplat, - scale: "float", - rotate: "vec4", - translate: "vec3", - recolor: "vec4" - }, - outTypes: { gsplat: Gsplat }, - inputs: { gsplat, scale, rotate, translate, recolor }, - globals: () => [defineGsplat], - statements: ({ inputs, outputs, compile }) => { - const { gsplat: gsplat2 } = outputs; - if (!gsplat2 || !inputs.gsplat) { - return []; - } - const { scale: scale2, rotate: rotate2, translate: translate2, recolor: recolor2 } = inputs; - const indent = compile.indent; - const statements = [ - `${gsplat2} = ${inputs.gsplat};`, - `if (isGsplatActive(${gsplat2}.flags)) {`, - scale2 ? `${indent}${gsplat2}.center *= ${scale2};` : null, - rotate2 ? `${indent}${gsplat2}.center = quatVec(${rotate2}, ${gsplat2}.center);` : null, - translate2 ? `${indent}${gsplat2}.center += ${translate2};` : null, - scale2 ? `${indent}${gsplat2}.scales *= ${scale2};` : null, - rotate2 ? `${indent}${gsplat2}.quaternion = quatQuat(${rotate2}, ${gsplat2}.quaternion);` : null, - recolor2 ? `${indent}${gsplat2}.rgba *= ${recolor2};` : null, - "}" - ].filter(Boolean); - return statements; - } - }); - } - dynoOut() { - return new DynoOutput(this, "gsplat"); + super({ key, type: "sampler2DShadow", value, update }); } } -const splitCovSplat = (covsplat) => new SplitCovSplat({ covsplat }); -const combineCovSplat = ({ - covsplat, - flags, - index, - center, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b -}) => { - return new CombineCovSplat({ - covsplat, - flags, - index, - center, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b - }); -}; -class SplitCovSplat extends Dyno { - constructor({ covsplat }) { - super({ - inTypes: { covsplat: CovSplat }, - outTypes: { - flags: "uint", - active: "bool", - index: "int", - center: "vec3", - rgba: "vec4", - rgb: "vec3", - opacity: "float", - x: "float", - y: "float", - z: "float", - r: "float", - g: "float", - b: "float" - }, - inputs: { covsplat }, - globals: () => [defineCovSplat], - statements: ({ inputs, outputs }) => { - const { covsplat: covsplat2 } = inputs; - const { - flags, - active, - index, - center, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b - } = outputs; - return [ - !flags ? null : `${flags} = ${covsplat2 ? `${covsplat2}.flags` : "0u"};`, - !active ? null : `${active} = isCovSplatActive(${covsplat2 ? `${covsplat2}.flags` : "0u"});`, - !index ? null : `${index} = ${covsplat2 ? `${covsplat2}.index` : "0"};`, - !center ? null : `${center} = ${covsplat2 ? `${covsplat2}.center` : "vec3(0.0, 0.0, 0.0)"};`, - !rgba ? null : `${rgba} = ${covsplat2 ? `${covsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)"};`, - !rgb ? null : `${rgb} = ${covsplat2 ? `${covsplat2}.rgba.rgb` : "vec3(0.0, 0.0, 0.0)"};`, - !opacity ? null : `${opacity} = ${covsplat2 ? `${covsplat2}.rgba.a` : "0.0"};`, - !x ? null : `${x} = ${covsplat2 ? `${covsplat2}.center.x` : "0.0"};`, - !y ? null : `${y} = ${covsplat2 ? `${covsplat2}.center.y` : "0.0"};`, - !z ? null : `${z} = ${covsplat2 ? `${covsplat2}.center.z` : "0.0"};`, - !r ? null : `${r} = ${covsplat2 ? `${covsplat2}.rgba.r` : "0.0"};`, - !g ? null : `${g} = ${covsplat2 ? `${covsplat2}.rgba.g` : "0.0"};`, - !b ? null : `${b} = ${covsplat2 ? `${covsplat2}.rgba.b` : "0.0"};` - ].filter(Boolean); - } - }); +class DynoSampler2DArrayShadow extends DynoUniform { + constructor({ + key, + value, + update + }) { + super({ key, type: "sampler2DArrayShadow", value, update }); } } -class CombineCovSplat extends Dyno { +class DynoSamplerCubeShadow extends DynoUniform { constructor({ - covsplat, - flags, - index, - center, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b + key, + value, + update }) { - super({ - inTypes: { - covsplat: CovSplat, - flags: "uint", - index: "int", - center: "vec3", - rgba: "vec4", - rgb: "vec3", - opacity: "float", - x: "float", - y: "float", - z: "float", - r: "float", - g: "float", - b: "float" - }, - outTypes: { covsplat: CovSplat }, - inputs: { - covsplat, - flags, - index, - center, - rgba, - rgb, - opacity, - x, - y, - z, - r, - g, - b - }, - globals: () => [defineCovSplat], - statements: ({ inputs, outputs }) => { - const { covsplat: outCovSplat } = outputs; - if (!outCovSplat) { - return []; - } - const { - covsplat: covsplat2, - flags: flags2, - index: index2, - center: center2, - rgba: rgba2, - rgb: rgb2, - opacity: opacity2, - x: x2, - y: y2, - z: z2, - r: r2, - g: g2, - b: b22 - } = inputs; - return [ - `${outCovSplat}.flags = ${flags2 ?? (covsplat2 ? `${covsplat2}.flags` : "0u")};`, - `${outCovSplat}.index = ${index2 ?? (covsplat2 ? `${covsplat2}.index` : "0")};`, - `${outCovSplat}.center = ${center2 ?? (covsplat2 ? `${covsplat2}.center` : "vec3(0.0, 0.0, 0.0)")};`, - `${outCovSplat}.rgba = ${rgba2 ?? (covsplat2 ? `${covsplat2}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)")};`, - !rgb2 ? null : `${outCovSplat}.rgba.rgb = ${rgb2};`, - !opacity2 ? null : `${outCovSplat}.rgba.a = ${opacity2};`, - !x2 ? null : `${outCovSplat}.center.x = ${x2};`, - !y2 ? null : `${outCovSplat}.center.y = ${y2};`, - !z2 ? null : `${outCovSplat}.center.z = ${z2};`, - !r2 ? null : `${outCovSplat}.rgba.r = ${r2};`, - !g2 ? null : `${outCovSplat}.rgba.g = ${g2};`, - !b22 ? null : `${outCovSplat}.rgba.b = ${b22};`, - `${outCovSplat}.xxyyzz = ${covsplat2 ? `${covsplat2}.xxyyzz` : "vec3(0.0, 0.0, 0.0)"};`, - `${outCovSplat}.xyxzyz = ${covsplat2 ? `${covsplat2}.xyxzyz` : "vec3(0.0, 0.0, 0.0)"};` - ].filter(Boolean); - } - }); - } - dynoOut() { - return new DynoOutput(this, "covsplat"); + super({ key, type: "samplerCubeShadow", value, update }); } } -class SplatTexCoord extends Dyno { - constructor({ index }) { - super({ - inTypes: { index: "int" }, - outTypes: { coord: "ivec3" }, - inputs: { index }, - statements: ({ inputs, outputs }) => { - const { index: index2 } = inputs; - const { coord } = outputs; - if (!index2 || !coord) { - return []; - } - return [`${coord} = splatTexCoord(${index2});`]; - } - }); +var u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array; +var fleb = new u8([ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 4, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 0, + /* unused */ + 0, + 0, + /* impossible */ + 0 +]); +var fdeb = new u8([ + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 4, + 4, + 5, + 5, + 6, + 6, + 7, + 7, + 8, + 8, + 9, + 9, + 10, + 10, + 11, + 11, + 12, + 12, + 13, + 13, + /* unused */ + 0, + 0 +]); +var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); +var freb = function(eb, start) { + var b = new u16(31); + for (var i = 0; i < 31; ++i) { + b[i] = start += 1 << eb[i - 1]; } - dynoOut() { - return new DynoOutput(this, "coord"); + var r = new i32(b[30]); + for (var i = 1; i < 30; ++i) { + for (var j = b[i]; j < b[i + 1]; ++j) { + r[j] = j - b[i] << 5 | i; + } } + return { b, r }; +}; +var _a = freb(fleb, 2), fl = _a.b, revfl = _a.r; +fl[28] = 258, revfl[258] = 28; +var _b = freb(fdeb, 0), fd = _b.b; +var rev = new u16(32768); +for (var i = 0; i < 32768; ++i) { + var x = (i & 43690) >> 1 | (i & 21845) << 1; + x = (x & 52428) >> 2 | (x & 13107) << 2; + x = (x & 61680) >> 4 | (x & 3855) << 4; + rev[i] = ((x & 65280) >> 8 | (x & 255) << 8) >> 1; } -class PagedSplatTexCoord extends Dyno { - constructor({ index }) { - super({ - inTypes: { index: "int" }, - outTypes: { coord: "ivec3" }, - inputs: { index }, - statements: ({ inputs, outputs }) => { - const { index: index2 } = inputs; - const { coord } = outputs; - if (!index2 || !coord) { - return []; - } - return [`${coord} = pagedSplatTexCoord(${index2});`]; - } - }); +var hMap = function(cd, mb, r) { + var s = cd.length; + var i = 0; + var l = new u16(mb); + for (; i < s; ++i) { + if (cd[i]) + ++l[cd[i] - 1]; } - dynoOut() { - return new DynoOutput(this, "coord"); + var le = new u16(mb); + for (i = 1; i < mb; ++i) { + le[i] = le[i - 1] + l[i - 1] << 1; } -} -const outputPackedSplat = (gsplat, rgbMinMaxLnScaleMinMax) => new OutputPackedSplat({ gsplat, rgbMinMaxLnScaleMinMax }); -const outputCovSplat = (covsplat, rgbMinMaxLnScaleMinMax) => new OutputCovSplat({ covsplat, rgbMinMaxLnScaleMinMax }); -const outputExtendedSplat = (gsplat) => new OutputExtendedSplat({ gsplat }); -const outputExtCovSplat = (covsplat) => new OutputExtCovSplat({ covsplat }); -const outputSplatDepth = (gsplat, viewCenter, viewDir, sortRadial) => new OutputSplatDepth({ gsplat, viewCenter, viewDir, sortRadial }); -const outputCovSplatDepth = (covsplat, viewCenter, viewDir, sortRadial) => new OutputCovSplatDepth({ covsplat, viewCenter, viewDir, sortRadial }); -const outputRgba8 = (rgba8) => new OutputRgba8({ rgba8 }); -class OutputPackedSplat extends Dyno { - constructor({ - gsplat, - rgbMinMaxLnScaleMinMax - }) { - super({ - inTypes: { gsplat: Gsplat, rgbMinMaxLnScaleMinMax: "vec4" }, - inputs: { gsplat, rgbMinMaxLnScaleMinMax }, - globals: () => [defineGsplat], - statements: ({ inputs, outputs }) => { - const { gsplat: gsplat2, rgbMinMaxLnScaleMinMax: rgbMinMaxLnScaleMinMax2 } = inputs; - if (gsplat2 && rgbMinMaxLnScaleMinMax2) { - return unindentLines(` - if (isGsplatActive(${gsplat2}.flags)) { - target = packSplatEncoding(${gsplat2}.center, ${gsplat2}.scales, ${gsplat2}.quaternion, ${gsplat2}.rgba, ${rgbMinMaxLnScaleMinMax2}); - } else { - target = uvec4(0u, 0u, 0u, 0u); - } - `); + var co; + if (r) { + co = new u16(1 << mb); + var rvb = 15 - mb; + for (i = 0; i < s; ++i) { + if (cd[i]) { + var sv = i << 4 | cd[i]; + var r_1 = mb - cd[i]; + var v = le[cd[i] - 1]++ << r_1; + for (var m = v | (1 << r_1) - 1; v <= m; ++v) { + co[rev[v] >> rvb] = sv; } - return ["target = uvec4(0u, 0u, 0u, 0u);"]; } - }); - } -} -class OutputCovSplat extends Dyno { - constructor({ - covsplat, - rgbMinMaxLnScaleMinMax - }) { - super({ - inTypes: { covsplat: CovSplat, rgbMinMaxLnScaleMinMax: "vec4" }, - inputs: { covsplat, rgbMinMaxLnScaleMinMax }, - globals: () => [defineCovSplat], - statements: ({ inputs }) => { - const { covsplat: covsplat2, rgbMinMaxLnScaleMinMax: rgbMinMaxLnScaleMinMax2 } = inputs; - if (covsplat2 && rgbMinMaxLnScaleMinMax2) { - return unindentLines(` - if (isCovSplatActive(${covsplat2}.flags)) { - target = packSplatCovEncoding(${covsplat2}.center, ${covsplat2}.rgba, ${covsplat2}.xxyyzz, ${covsplat2}.xyxzyz, ${rgbMinMaxLnScaleMinMax2}); - } else { - target = uvec4(0u); - } - `); - } - return ["target = uvec4(0u);"]; + } + } else { + co = new u16(s); + for (i = 0; i < s; ++i) { + if (cd[i]) { + co[i] = rev[le[cd[i] - 1]++] >> 15 - cd[i]; } - }); + } } -} -class OutputExtendedSplat extends Dyno { - constructor({ - gsplat - }) { - super({ - inTypes: { gsplat: Gsplat }, - inputs: { gsplat }, - globals: () => [defineGsplat], - statements: ({ inputs }) => { - const { gsplat: gsplat2 } = inputs; - if (gsplat2) { - return unindentLines(` - if (isGsplatActive(${gsplat2}.flags)) { - packSplatExt(target, target2, ${gsplat2}.center, ${gsplat2}.scales, ${gsplat2}.quaternion, ${gsplat2}.rgba); - } else { - target = uvec4(0u); - target2 = uvec4(0u); - } - `); - } - return ["target = uvec4(0u);", "target2 = uvec4(0u);"]; - } - }); + return co; +}; +var flt = new u8(288); +for (var i = 0; i < 144; ++i) + flt[i] = 8; +for (var i = 144; i < 256; ++i) + flt[i] = 9; +for (var i = 256; i < 280; ++i) + flt[i] = 7; +for (var i = 280; i < 288; ++i) + flt[i] = 8; +var fdt = new u8(32); +for (var i = 0; i < 32; ++i) + fdt[i] = 5; +var flrm = /* @__PURE__ */ hMap(flt, 9, 1); +var fdrm = /* @__PURE__ */ hMap(fdt, 5, 1); +var max$1 = function(a) { + var m = a[0]; + for (var i = 1; i < a.length; ++i) { + if (a[i] > m) + m = a[i]; } -} -class OutputExtCovSplat extends Dyno { - constructor({ - covsplat - }) { - super({ - inTypes: { covsplat: CovSplat }, - inputs: { covsplat }, - globals: () => [defineCovSplat], - statements: ({ inputs }) => { - const { covsplat: covsplat2 } = inputs; - if (covsplat2) { - return unindentLines(` - if (isCovSplatActive(${covsplat2}.flags)) { - packSplatExtCov(target, target2, ${covsplat2}.center, ${covsplat2}.rgba, ${covsplat2}.xxyyzz, ${covsplat2}.xyxzyz); - } else { - target = uvec4(0u); - target2 = uvec4(0u); - } - `); + return m; +}; +var bits = function(d, p, m) { + var o = p / 8 | 0; + return (d[o] | d[o + 1] << 8) >> (p & 7) & m; +}; +var bits16 = function(d, p) { + var o = p / 8 | 0; + return (d[o] | d[o + 1] << 8 | d[o + 2] << 16) >> (p & 7); +}; +var shft = function(p) { + return (p + 7) / 8 | 0; +}; +var slc = function(v, s, e) { + if (s == null || s < 0) + s = 0; + if (e == null || e > v.length) + e = v.length; + return new u8(v.subarray(s, e)); +}; +var ec = [ + "unexpected EOF", + "invalid block type", + "invalid length/literal", + "invalid distance", + "stream finished", + "no stream handler", + , + "no callback", + "invalid UTF-8 data", + "extra field too long", + "date not in range 1980-2099", + "filename too long", + "stream finishing", + "invalid zip data" + // determined by unknown compression method +]; +var err = function(ind, msg, nt) { + var e = new Error(msg || ec[ind]); + e.code = ind; + if (Error.captureStackTrace) + Error.captureStackTrace(e, err); + if (!nt) + throw e; + return e; +}; +var inflt = function(dat, st, buf, dict) { + var sl = dat.length, dl = dict ? dict.length : 0; + if (!sl || st.f && !st.l) + return buf || new u8(0); + var noBuf = !buf; + var resize = noBuf || st.i != 2; + var noSt = st.i; + if (noBuf) + buf = new u8(sl * 3); + var cbuf = function(l2) { + var bl = buf.length; + if (l2 > bl) { + var nbuf = new u8(Math.max(bl * 2, l2)); + nbuf.set(buf); + buf = nbuf; + } + }; + var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n; + var tbts = sl * 8; + do { + if (!lm) { + final = bits(dat, pos, 1); + var type = bits(dat, pos + 1, 3); + pos += 3; + if (!type) { + var s = shft(pos) + 4, l = dat[s - 4] | dat[s - 3] << 8, t = s + l; + if (t > sl) { + if (noSt) + err(0); + break; } - return ["target = uvec4(0u);", "target2 = uvec4(0u);"]; - } - }); - } -} -class OutputSplatDepth extends Dyno { - constructor({ - gsplat, - viewCenter, - viewDir, - sortRadial - }) { - super({ - inTypes: { - gsplat: Gsplat, - viewCenter: "vec3", - viewDir: "vec3", - sortRadial: "bool" - }, - inputs: { gsplat, viewCenter, viewDir, sortRadial }, - globals: () => [defineGsplat], - statements: ({ inputs }) => { - const { gsplat: gsplat2, viewCenter: viewCenter2, viewDir: viewDir2, sortRadial: sortRadial2 } = inputs; - if (gsplat2 && viewCenter2 && viewDir2 && sortRadial2) { - return unindentLines(` - float metric = 1.0 / 0.0; - if (isGsplatActive(${gsplat2}.flags)) { - vec3 center = ${gsplat2}.center - ${viewCenter2}; - if (${sortRadial2}) { - metric = length(center); - } else { - float bias = 100.0; // reduce popping - metric = dot(center, ${viewDir2}) + bias; - } - } - target3 = floatToVec4(metric); - `); + if (resize) + cbuf(bt + l); + buf.set(dat.subarray(s, t), bt); + st.b = bt += l, st.p = pos = t * 8, st.f = final; + continue; + } else if (type == 1) + lm = flrm, dm = fdrm, lbt = 9, dbt = 5; + else if (type == 2) { + var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4; + var tl = hLit + bits(dat, pos + 5, 31) + 1; + pos += 14; + var ldt = new u8(tl); + var clt = new u8(19); + for (var i = 0; i < hcLen; ++i) { + clt[clim[i]] = bits(dat, pos + i * 3, 7); } - return []; - } - }); - } -} -class OutputCovSplatDepth extends Dyno { - constructor({ - covsplat, - viewCenter, - viewDir, - sortRadial - }) { - super({ - inTypes: { - covsplat: CovSplat, - viewCenter: "vec3", - viewDir: "vec3", - sortRadial: "bool" - }, - inputs: { covsplat, viewCenter, viewDir, sortRadial }, - globals: () => [defineCovSplat], - statements: ({ inputs }) => { - const { covsplat: covsplat2, viewCenter: viewCenter2, viewDir: viewDir2, sortRadial: sortRadial2 } = inputs; - if (covsplat2 && viewCenter2 && viewDir2 && sortRadial2) { - return unindentLines(` - float metric = 1.0 / 0.0; - if (isCovSplatActive(${covsplat2}.flags)) { - vec3 center = ${covsplat2}.center - ${viewCenter2}; - if (${sortRadial2}) { - metric = length(center); - } else { - float bias = 100.0; // reduce popping - metric = dot(center, ${viewDir2}) + bias; - } - } - target3 = floatToVec4(metric); - `); + pos += hcLen * 3; + var clb = max$1(clt), clbmsk = (1 << clb) - 1; + var clm = hMap(clt, clb, 1); + for (var i = 0; i < tl; ) { + var r = clm[bits(dat, pos, clbmsk)]; + pos += r & 15; + var s = r >> 4; + if (s < 16) { + ldt[i++] = s; + } else { + var c = 0, n = 0; + if (s == 16) + n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1]; + else if (s == 17) + n = 3 + bits(dat, pos, 7), pos += 3; + else if (s == 18) + n = 11 + bits(dat, pos, 127), pos += 7; + while (n--) + ldt[i++] = c; + } } - return []; + var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit); + lbt = max$1(lt); + dbt = max$1(dt); + lm = hMap(lt, lbt, 1); + dm = hMap(dt, dbt, 1); + } else + err(1); + if (pos > tbts) { + if (noSt) + err(0); + break; } - }); - } -} -class OutputRgba8 extends Dyno { - constructor({ rgba8 }) { - super({ - inTypes: { rgba8: "vec4" }, - inputs: { rgba8 }, - statements: ({ inputs, outputs }) => [ - `target = ${inputs.rgba8 ?? "vec4(0.0, 0.0, 0.0, 0.0)"};` - ] - }); - } - dynoOut() { - return new DynoOutput(this, "rgba8"); - } -} -const uniform = (key, type, value) => new DynoUniform({ key, type, value }); -const dynoBool = (value = false, key) => new DynoBool({ key, value }); -const dynoUint = (value = 0, key) => new DynoUint({ key, value }); -const dynoInt = (value = 0, key) => new DynoInt({ key, value }); -const dynoFloat = (value = 0, key) => new DynoFloat({ key, value }); -const dynoBvec2 = (value, key) => new DynoBvec2({ key, value }); -const dynoUvec2 = (value, key) => new DynoUvec2({ key, value }); -const dynoIvec2 = (value, key) => new DynoIvec2({ key, value }); -const dynoVec2 = (value, key) => new DynoVec2({ key, value }); -const dynoBvec3 = (value, key) => new DynoBvec3({ key, value }); -const dynoUvec3 = (value, key) => new DynoUvec3({ key, value }); -const dynoIvec3 = (value, key) => new DynoIvec3({ key, value }); -const dynoVec3 = (value, key) => new DynoVec3({ key, value }); -const dynoBvec4 = (value, key) => new DynoBvec4({ key, value }); -const dynoUvec4 = (value, key) => new DynoUvec4({ key, value }); -const dynoIvec4 = (value, key) => new DynoIvec4({ key, value }); -const dynoVec4 = (value, key) => new DynoVec4({ key, value }); -const dynoMat2 = (value, key) => new DynoMat2({ key, value }); -const dynoMat2x2 = (value, key) => new DynoMat2x2({ key, value }); -const dynoMat2x3 = (value, key) => new DynoMat2x3({ key, value }); -const dynoMat2x4 = (value, key) => new DynoMat2x4({ key, value }); -const dynoMat3 = (value, key) => new DynoMat3({ key, value }); -const dynoMat3x2 = (value, key) => new DynoMat3x2({ key, value }); -const dynoMat3x3 = (value, key) => new DynoMat3x3({ key, value }); -const dynoMat3x4 = (value, key) => new DynoMat3x4({ key, value }); -const dynoMat4 = (value, key) => new DynoMat4({ key, value }); -const dynoMat4x2 = (value, key) => new DynoMat4x2({ key, value }); -const dynoMat4x3 = (value, key) => new DynoMat4x3({ key, value }); -const dynoMat4x4 = (value, key) => new DynoMat4x4({ key, value }); -const dynoUsampler2D = (value, key) => new DynoUsampler2D({ key, value }); -const dynoIsampler2D = (value, key) => new DynoIsampler2D({ key, value }); -const dynoSampler2D = (value, key) => new DynoSampler2D({ key, value }); -const dynoUsampler2DArray = (value, key) => new DynoUsampler2DArray({ key, value }); -const dynoIsampler2DArray = (key, value) => new DynoIsampler2DArray({ key, value }); -const dynoSampler2DArray = (value, key) => new DynoSampler2DArray({ key, value }); -const dynoUsampler3D = (value, key) => new DynoUsampler3D({ key, value }); -const dynoIsampler3D = (value, key) => new DynoIsampler3D({ key, value }); -const dynoSampler3D = (value, key) => new DynoSampler3D({ key, value }); -const dynoUsamplerCube = (value, key) => new DynoUsamplerCube({ key, value }); -const dynoIsamplerCube = (value, key) => new DynoIsamplerCube({ key, value }); -const dynoSamplerCube = (value, key) => new DynoSamplerCube({ key, value }); -const dynoSampler2DShadow = (value, key) => new DynoSampler2DShadow({ key, value }); -const dynoSampler2DArrayShadow = (value, key) => new DynoSampler2DArrayShadow({ key, value }); -const dynoSamplerCubeShadow = (value, key) => new DynoSamplerCubeShadow({ key, value }); -class DynoUniform extends Dyno { - constructor({ - key, - type, - count, - value, - update, - globals - }) { - key = key ?? "value"; - super({ - outTypes: { [key]: type }, - update: () => { - if (update) { - const value2 = update(this.value); - if (value2 !== void 0) { - this.value = value2; - } + } + if (resize) + cbuf(bt + 131072); + var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1; + var lpos = pos; + for (; ; lpos = pos) { + var c = lm[bits16(dat, pos) & lms], sym = c >> 4; + pos += c & 15; + if (pos > tbts) { + if (noSt) + err(0); + break; + } + if (!c) + err(2); + if (sym < 256) + buf[bt++] = sym; + else if (sym == 256) { + lpos = pos, lm = null; + break; + } else { + var add2 = sym - 254; + if (sym > 264) { + var i = sym - 257, b = fleb[i]; + add2 = bits(dat, pos, (1 << b) - 1) + fl[i]; + pos += b; } - this.uniform.value = this.value; - }, - generate: ({ inputs, outputs }) => { - const allGlobals = (globals == null ? void 0 : globals({ inputs, outputs })) ?? []; - const uniforms = {}; - const name = outputs[key]; - if (name) { - allGlobals.push(`uniform ${dynoDeclare(name, type, count)};`); - uniforms[name] = this.uniform; + var d = dm[bits16(dat, pos) & dms], dsym = d >> 4; + if (!d) + err(3); + pos += d & 15; + var dt = fd[dsym]; + if (dsym > 3) { + var b = fdeb[dsym]; + dt += bits16(dat, pos) & (1 << b) - 1, pos += b; } - return { globals: allGlobals, uniforms }; + if (pos > tbts) { + if (noSt) + err(0); + break; + } + if (resize) + cbuf(bt + 131072); + var end = bt + add2; + if (bt < dt) { + var shift = dl - dt, dend = Math.min(dt, end); + if (shift + bt < 0) + err(3); + for (; bt < dend; ++bt) + buf[bt] = dict[shift + bt]; + } + for (; bt < end; ++bt) + buf[bt] = buf[bt - dt]; } - }); - this.type = type; - this.count = count; - this.value = value; - this.uniform = { value }; - this.outKey = key; - } - dynoOut() { - return new DynoOutput(this, this.outKey); + } + st.l = lm, st.p = lpos, st.b = bt, st.f = final; + if (lm) + final = 1, st.m = lbt, st.d = dm, st.n = dbt; + } while (!final); + return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt); +}; +var et = /* @__PURE__ */ new u8(0); +var b2 = function(d, b) { + return d[b] | d[b + 1] << 8; +}; +var b4 = function(d, b) { + return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0; +}; +var b8 = function(d, b) { + return b4(d, b) + b4(d, b + 4) * 4294967296; +}; +var gzs = function(d) { + if (d[0] != 31 || d[1] != 139 || d[2] != 8) + err(6, "invalid gzip data"); + var flg = d[3]; + var st = 10; + if (flg & 4) + st += (d[10] | d[11] << 8) + 2; + for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++]) + ; + return st + (flg & 2); +}; +var Inflate = /* @__PURE__ */ function() { + function Inflate2(opts, cb) { + if (typeof opts == "function") + cb = opts, opts = {}; + this.ondata = cb; + var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768); + this.s = { i: 0, b: dict ? dict.length : 0 }; + this.o = new u8(32768); + this.p = new u8(0); + if (dict) + this.o.set(dict); } + Inflate2.prototype.e = function(c) { + if (!this.ondata) + err(5); + if (this.d) + err(4); + if (!this.p.length) + this.p = c; + else if (c.length) { + var n = new u8(this.p.length + c.length); + n.set(this.p), n.set(c, this.p.length), this.p = n; + } + }; + Inflate2.prototype.c = function(final) { + this.s.i = +(this.d = final || false); + var bts = this.s.b; + var dt = inflt(this.p, this.s, this.o); + this.ondata(slc(dt, bts, this.s.b), this.d); + this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length; + this.p = slc(this.p, this.s.p / 8 | 0), this.s.p &= 7; + }; + Inflate2.prototype.push = function(chunk, final) { + this.e(chunk), this.c(final); + }; + return Inflate2; +}(); +function inflateSync(data, opts) { + return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary); } -class DynoBool extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "bool", value, update }); +var Gunzip = /* @__PURE__ */ function() { + function Gunzip2(opts, cb) { + this.v = 1; + this.r = 0; + Inflate.call(this, opts, cb); } + Gunzip2.prototype.push = function(chunk, final) { + Inflate.prototype.e.call(this, chunk); + this.r += chunk.length; + if (this.v) { + var p = this.p.subarray(this.v - 1); + var s = p.length > 3 ? gzs(p) : 4; + if (s > p.length) { + if (!final) + return; + } else if (this.v > 1 && this.onmember) { + this.onmember(this.r - p.length); + } + this.p = p.subarray(s), this.v = 0; + } + Inflate.prototype.c.call(this, final); + if (this.s.f && !this.s.l && !final) { + this.v = shft(this.s.p) + 9; + this.s = { i: 0 }; + this.o = new u8(0); + this.push(new u8(0), final); + } + }; + return Gunzip2; +}(); +var td = typeof TextDecoder != "undefined" && /* @__PURE__ */ new TextDecoder(); +var tds = 0; +try { + td.decode(et, { stream: true }); + tds = 1; +} catch (e) { } -class DynoUint extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "uint", value, update }); +var dutf8 = function(d) { + for (var r = "", i = 0; ; ) { + var c = d[i++]; + var eb = (c > 127) + (c > 223) + (c > 239); + if (i + eb > d.length) + return { s: r, r: slc(d, i - 1) }; + if (!eb) + r += String.fromCharCode(c); + else if (eb == 3) { + c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | d[i++] & 63) - 65536, r += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023); + } else if (eb & 1) + r += String.fromCharCode((c & 31) << 6 | d[i++] & 63); + else + r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | d[i++] & 63); + } +}; +function strFromU8(dat, latin1) { + if (latin1) { + var r = ""; + for (var i = 0; i < dat.length; i += 16384) + r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384)); + return r; + } else if (td) { + return td.decode(dat); + } else { + var _a2 = dutf8(dat), s = _a2.s, r = _a2.r; + if (r.length) + err(8); + return s; } } -class DynoInt extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "int", value, update }); +var slzh = function(d, b) { + return b + 30 + b2(d, b + 26) + b2(d, b + 28); +}; +var zh = function(d, b, z) { + var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20); + var _a2 = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a2[0], su = _a2[1], off = _a2[2]; + return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off]; +}; +var z64e = function(d, b) { + for (; b2(d, b) != 1; b += 4 + b2(d, b + 2)) + ; + return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)]; +}; +function unzipSync(data, opts) { + var files = {}; + var e = data.length - 22; + for (; b4(data, e) != 101010256; --e) { + if (!e || data.length - e > 65558) + err(13); } -} -class DynoFloat extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "float", value, update }); + var c = b2(data, e + 8); + if (!c) + return {}; + var o = b4(data, e + 16); + var z = o == 4294967295 || c == 65535; + if (z) { + var ze = b4(data, e - 12); + z = b4(data, ze) == 101075792; + if (z) { + c = b4(data, ze + 32); + o = b4(data, ze + 48); + } } -} -class DynoBvec2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "bvec2", value, update }); + var fltr = opts && opts.filter; + for (var i = 0; i < c; ++i) { + var _a2 = zh(data, o, z), c_2 = _a2[0], sc = _a2[1], su = _a2[2], fn = _a2[3], no = _a2[4], off = _a2[5], b = slzh(data, off); + o = no; + if (!fltr || fltr({ + name: fn, + size: sc, + originalSize: su, + compression: c_2 + })) { + if (!c_2) + files[fn] = slc(data, b, b + sc); + else if (c_2 == 8) + files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) }); + else + err(14, "unknown compression type " + c_2); + } } + return files; } -class DynoUvec2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "uvec2", value, update }); - } +const threeRevision = Number.parseInt(THREE.REVISION); +const threeMrtArray = threeRevision >= 179; +const f32buffer = new Float32Array(1); +const u32buffer = new Uint32Array(f32buffer.buffer); +const supportsFloat16Array = "Float16Array" in globalThis; +const f16buffer = supportsFloat16Array ? new globalThis["Float16Array"](1) : null; +const u16buffer = new Uint16Array(f16buffer == null ? void 0 : f16buffer.buffer); +function normalize$1(vec) { + const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0)); + return vec.map((v) => v / norm); } -class DynoIvec2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "ivec2", value, update }); - } +function floatBitsToUint$1(f) { + f32buffer[0] = f; + return u32buffer[0]; } -class DynoVec2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "vec2", value, update }); - } +function uintBitsToFloat$1(u) { + u32buffer[0] = u; + return f32buffer[0]; } -class DynoBvec3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "bvec3", value, update }); - } +const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS; +const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS; +function toHalfNative(f) { + f16buffer[0] = f; + return u16buffer[0]; } -class DynoUvec3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "uvec3", value, update }); +function toHalfJS(f) { + f32buffer[0] = f; + const bits2 = u32buffer[0]; + const sign2 = bits2 >> 31 & 1; + const exp3 = bits2 >> 23 & 255; + const frac = bits2 & 8388607; + const halfSign = sign2 << 15; + if (exp3 === 255) { + if (frac !== 0) { + return halfSign | 32767; + } + return halfSign | 31744; } -} -class DynoIvec3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "ivec3", value, update }); + const newExp = exp3 - 127 + 15; + if (newExp >= 31) { + return halfSign | 31744; } -} -class DynoVec3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "vec3", value, update }); + if (newExp <= 0) { + if (newExp < -10) { + return halfSign; + } + const subFrac = (frac | 8388608) >> 1 - newExp + 13; + return halfSign | subFrac; } + const halfFrac = frac >> 13; + return halfSign | newExp << 10 | halfFrac; } -class DynoBvec4 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "bvec4", value, update }); - } +function fromHalfNative(u) { + u16buffer[0] = u; + return f16buffer[0]; } -class DynoUvec4 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "uvec4", value, update }); +function fromHalfJS(h) { + const sign2 = h >> 15 & 1; + const exp3 = h >> 10 & 31; + const frac = h & 1023; + let f32bits; + if (exp3 === 0) { + if (frac === 0) { + f32bits = sign2 << 31; + } else { + let mant = frac; + let e = -14; + while ((mant & 1024) === 0) { + mant <<= 1; + e--; + } + mant &= 1023; + const newExp = e + 127; + const newFrac = mant << 13; + f32bits = sign2 << 31 | newExp << 23 | newFrac; + } + } else if (exp3 === 31) { + if (frac === 0) { + f32bits = sign2 << 31 | 2139095040; + } else { + f32bits = sign2 << 31 | 2143289344; + } + } else { + const newExp = exp3 - 15 + 127; + const newFrac = frac << 13; + f32bits = sign2 << 31 | newExp << 23 | newFrac; } + u32buffer[0] = f32bits; + return f32buffer[0]; } -class DynoIvec4 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "ivec4", value, update }); - } +function floatToUint8(v) { + return Math.max(0, Math.min(255, Math.round(v * 255))); } -class DynoVec4 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "vec4", value, update }); - } +function floatToSint8(v) { + return Math.max(-127, Math.min(127, Math.round(v * 127))); } -class DynoMat2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat2", value, update }); - } +function Uint8ToFloat(v) { + return v / 255; } -class DynoMat2x2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat2x2", value, update }); - } +function Sint8ToFloat(v) { + return v / 127; } -class DynoMat2x3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat2x3", value, update }); - } -} -class DynoMat2x4 extends DynoUniform { +class DataCache { + // Create a DataCache with a given function that fetches data not in the cache. constructor({ - key, - value, - update + asyncFetch, + dispose, + maxItems = 5 }) { - super({ key, type: "mat2x4", value, update }); + this.asyncFetch = asyncFetch; + this.dispose = dispose; + this.maxItems = maxItems; + this.items = []; + this.pending = /* @__PURE__ */ new Map(); } -} -class DynoMat3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat3", value, update }); + has(key) { + return this.items.some((item) => item.key === key); } -} -class DynoMat3x2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat3x2", value, update }); + getImmediate(key) { + const index = this.items.findIndex((item) => item.key === key); + if (index >= 0) { + const item = this.items.splice(index, 1)[0]; + this.items.push(item); + return item.data; + } + return void 0; } -} -class DynoMat3x3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat3x3", value, update }); + // Fetch data for the key, returning cached data if available. + async getFetch(key) { + const immediate = this.getImmediate(key); + if (immediate !== void 0) { + return immediate; + } + let pending = this.pending.get(key); + if (pending) { + return pending; + } + pending = this.asyncFetch(key).then((data) => { + this.pending.delete(key); + this.items.push({ key, data }); + while (this.items.length > this.maxItems) { + const removed = this.items.shift(); + if (removed && this.dispose) { + this.dispose(removed.data); + } + } + return data; + }); + this.pending.set(key, pending); + return pending; } } -class DynoMat3x4 extends DynoUniform { - constructor({ +function mapObject(obj, fn) { + const entries = Object.entries(obj).map(([key, value]) => [ key, - value, - update - }) { - super({ key, type: "mat3x4", value, update }); - } + fn(value, key) + ]); + return Object.fromEntries(entries); } -class DynoMat4 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat4", value, update }); - } +function mapFilterObject(obj, fn) { + const entries = Object.entries(obj).map(([key, value]) => [key, fn(value, key)]).filter(([_, value]) => value !== void 0); + return Object.fromEntries(entries); } -class DynoMat4x2 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat4x2", value, update }); +function getTransferable(ctx) { + const buffers = []; + const seen = /* @__PURE__ */ new Set(); + function traverse(obj) { + if (obj && typeof obj === "object" && !seen.has(obj)) { + seen.add(obj); + if (obj instanceof ArrayBuffer) { + buffers.push(obj); + } else if (ArrayBuffer.isView(obj)) { + buffers.push(obj.buffer); + } else if (Array.isArray(obj)) { + obj.forEach(traverse); + } else { + Object.values(obj).forEach(traverse); + } + } } + traverse(ctx); + return buffers; } -class DynoMat4x3 extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "mat4x3", value, update }); - } +function newArray(n, initFunction) { + return new Array(n).fill(null).map((_, i) => initFunction(i)); } -class DynoMat4x4 extends DynoUniform { +class FreeList { constructor({ - key, - value, - update + // Allocate a new item with the given args + allocate, + // Dispose of an item (optional, if GC is enough) + dispose, + // Check if an existing item in the list is valid for the given args, + // allowing you to store heterogeneous items in the list. + valid }) { - super({ key, type: "mat4x4", value, update }); + this.items = []; + this.allocate = allocate; + this.dispose = dispose; + this.valid = valid; } -} -class DynoUsampler2D extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "usampler2D", value, update }); + // Allocate a new item from the free list, first checking if a existing item + // on the freelist is valid for the given args. + alloc(args) { + while (true) { + const item = this.items.pop(); + if (!item) { + break; + } + if (this.valid(item, args)) { + return item; + } + if (this.dispose) { + this.dispose(item); + } + } + return this.allocate(args); } -} -class DynoIsampler2D extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "isampler2D", value, update }); + free(item) { + this.items.push(item); } -} -class DynoSampler2D extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "sampler2D", value, update }); + disposeAll() { + let item; + item = this.items.pop(); + while (item) { + if (this.dispose) { + this.dispose(item); + } + item = this.items.pop(); + } } } -class DynoUsampler2DArray extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "usampler2DArray", value, update }); - } +function encodeExtSplat(extArrays, index, x, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b) { + const i4 = index * 4; + const [extA, extB] = extArrays; + extA[i4] = floatBitsToUint$1(x); + extA[i4 + 1] = floatBitsToUint$1(y); + extA[i4 + 2] = floatBitsToUint$1(z); + extA[i4 + 3] = toHalf(opacity); + extB[i4] = toHalf(r) | toHalf(g) << 16; + extB[i4 + 1] = toHalf(b) | toHalf(Math.log(scaleX)) << 16; + extB[i4 + 2] = toHalf(Math.log(scaleY)) | toHalf(Math.log(scaleZ)) << 16; + extB[i4 + 3] = encodeQuatOctXy1010R12(quatX, quatY, quatZ, quatW); } -class DynoIsampler2DArray extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "isampler2DArray", value, update }); - } +function decodeExtSplat(extArrays, index) { + const result = packedFields; + const i4 = index * 4; + const [extA, extB] = extArrays; + result.center.x = uintBitsToFloat$1(extA[i4]); + result.center.y = uintBitsToFloat$1(extA[i4 + 1]); + result.center.z = uintBitsToFloat$1(extA[i4 + 2]); + result.opacity = fromHalf(extA[i4 + 3] & 65535); + result.color.r = fromHalf(extB[i4] & 65535); + result.color.g = fromHalf(extB[i4] >>> 16); + result.color.b = fromHalf(extB[i4 + 1] & 65535); + result.scales.x = Math.exp(fromHalf(extB[i4 + 1] >>> 16)); + result.scales.y = Math.exp(fromHalf(extB[i4 + 2] & 65535)); + result.scales.z = Math.exp(fromHalf(extB[i4 + 2] >>> 16)); + decodeQuatOctXy1010R12(extB[i4 + 3], result.quaternion); + return result; } -class DynoSampler2DArray extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "sampler2DArray", value, update }); - } +function setPackedSplat(packedSplats, index, x, y, z, scaleX, scaleY, scaleZ, quatX, quatY, quatZ, quatW, opacity, r, g, b, encoding) { + const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; + const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; + const rgbRange = rgbMax - rgbMin; + const uR = floatToUint8((r - rgbMin) / rgbRange); + const uG = floatToUint8((g - rgbMin) / rgbRange); + const uB = floatToUint8((b - rgbMin) / rgbRange); + const uA = floatToUint8((encoding == null ? void 0 : encoding.lodOpacity) ? 0.5 * opacity : opacity); + const uQuat = encodeQuatOctXy88R8( + tempQuaternion.set(quatX, quatY, quatZ, quatW) + ); + const uQuatX = uQuat & 255; + const uQuatY = uQuat >>> 8 & 255; + const uQuatZ = uQuat >>> 16 & 255; + const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN; + const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX; + const lnScaleScale = 254 / (lnScaleMax - lnScaleMin); + const uScaleX = scaleX < SCALE_ZERO ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1 + ) + ); + const uScaleY = scaleY < SCALE_ZERO ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1 + ) + ); + const uScaleZ = scaleZ < SCALE_ZERO ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1 + ) + ); + const uCenterX = toHalf(x); + const uCenterY = toHalf(y); + const uCenterZ = toHalf(z); + const i4 = index * 4; + packedSplats[i4] = uR | uG << 8 | uB << 16 | uA << 24; + packedSplats[i4 + 1] = uCenterX | uCenterY << 16; + packedSplats[i4 + 2] = uCenterZ | uQuatX << 16 | uQuatY << 24; + packedSplats[i4 + 3] = uScaleX | uScaleY << 8 | uScaleZ << 16 | uQuatZ << 24; } -class DynoUsampler3D extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "usampler3D", value, update }); - } +function setPackedSplatCenter(packedSplats, index, x, y, z) { + const uCenterX = toHalf(x); + const uCenterY = toHalf(y); + const uCenterZ = toHalf(z); + const i4 = index * 4; + packedSplats[i4 + 1] = uCenterX | uCenterY << 16; + packedSplats[i4 + 2] = uCenterZ | packedSplats[i4 + 2] & 4294901760; } -class DynoIsampler3D extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "isampler3D", value, update }); - } +function setPackedSplatScales(packedSplats, index, scaleX, scaleY, scaleZ, encoding) { + const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN; + const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX; + const lnScaleScale = 254 / (lnScaleMax - lnScaleMin); + const uScaleX = scaleX < SCALE_ZERO ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1 + ) + ); + const uScaleY = scaleY < SCALE_ZERO ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1 + ) + ); + const uScaleZ = scaleZ < SCALE_ZERO ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1 + ) + ); + const i4 = index * 4; + packedSplats[i4 + 3] = uScaleX | uScaleY << 8 | uScaleZ << 16 | packedSplats[i4 + 3] & 4278190080; } -class DynoSampler3D extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "sampler3D", value, update }); - } +const tempQuaternion = new THREE.Quaternion(); +function setPackedSplatQuat(packedSplats, index, quatX, quatY, quatZ, quatW) { + const uQuat = encodeQuatOctXy88R8( + tempQuaternion.set(quatX, quatY, quatZ, quatW) + ); + const uQuatX = uQuat & 255; + const uQuatY = uQuat >>> 8 & 255; + const uQuatZ = uQuat >>> 16 & 255; + const i4 = index * 4; + packedSplats[i4 + 2] = packedSplats[i4 + 2] & 65535 | uQuatX << 16 | uQuatY << 24; + packedSplats[i4 + 3] = packedSplats[i4 + 3] & 16777215 | uQuatZ << 24; } -class DynoUsamplerCube extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "usamplerCube", value, update }); - } +function setPackedSplatRgba(packedSplats, index, r, g, b, a, encoding) { + const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; + const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; + const rgbRange = rgbMax - rgbMin; + const uR = floatToUint8((r - rgbMin) / rgbRange); + const uG = floatToUint8((g - rgbMin) / rgbRange); + const uB = floatToUint8((b - rgbMin) / rgbRange); + const uA = floatToUint8((encoding == null ? void 0 : encoding.lodOpacity) ? 0.5 * a : a); + const i4 = index * 4; + packedSplats[i4] = uR | uG << 8 | uB << 16 | uA << 24; } -class DynoIsamplerCube extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "isamplerCube", value, update }); - } +function setPackedSplatRgb(packedSplats, index, r, g, b, encoding) { + const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; + const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; + const rgbRange = rgbMax - rgbMin; + const uR = floatToUint8((r - rgbMin) / rgbRange); + const uG = floatToUint8((g - rgbMin) / rgbRange); + const uB = floatToUint8((b - rgbMin) / rgbRange); + const i4 = index * 4; + packedSplats[i4] = uR | uG << 8 | uB << 16 | packedSplats[i4] & 4278190080; } -class DynoSamplerCube extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "samplerCube", value, update }); - } +function setPackedSplatOpacity(packedSplats, index, opacity) { + const uA = floatToUint8(opacity); + const i4 = index * 4; + packedSplats[i4] = packedSplats[i4] & 16777215 | uA << 24; } -class DynoSampler2DShadow extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "sampler2DShadow", value, update }); +const packedCenter = new THREE.Vector3(); +const packedScales = new THREE.Vector3(); +const packedQuaternion = new THREE.Quaternion(); +const packedColor = new THREE.Color(); +const packedFields = { + center: packedCenter, + scales: packedScales, + quaternion: packedQuaternion, + color: packedColor, + opacity: 0 +}; +function unpackSplat(packedSplats, index, encoding) { + const result = packedFields; + const i4 = index * 4; + const word0 = packedSplats[i4]; + const word1 = packedSplats[i4 + 1]; + const word2 = packedSplats[i4 + 2]; + const word3 = packedSplats[i4 + 3]; + const rgbMin = (encoding == null ? void 0 : encoding.rgbMin) ?? 0; + const rgbMax = (encoding == null ? void 0 : encoding.rgbMax) ?? 1; + const rgbRange = rgbMax - rgbMin; + result.color.set( + rgbMin + (word0 & 255) / 255 * rgbRange, + rgbMin + (word0 >>> 8 & 255) / 255 * rgbRange, + rgbMin + (word0 >>> 16 & 255) / 255 * rgbRange + ); + result.opacity = (word0 >>> 24 & 255) / 255; + if (encoding == null ? void 0 : encoding.lodOpacity) { + result.opacity = 2 * result.opacity; } + result.center.set( + fromHalf(word1 & 65535), + fromHalf(word1 >>> 16 & 65535), + fromHalf(word2 & 65535) + ); + const lnScaleMin = (encoding == null ? void 0 : encoding.lnScaleMin) ?? LN_SCALE_MIN; + const lnScaleMax = (encoding == null ? void 0 : encoding.lnScaleMax) ?? LN_SCALE_MAX; + const lnScaleScale = (lnScaleMax - lnScaleMin) / 254; + const uScalesX = word3 & 255; + result.scales.x = uScalesX === 0 ? 0 : Math.exp(lnScaleMin + (uScalesX - 1) * lnScaleScale); + const uScalesY = word3 >>> 8 & 255; + result.scales.y = uScalesY === 0 ? 0 : Math.exp(lnScaleMin + (uScalesY - 1) * lnScaleScale); + const uScalesZ = word3 >>> 16 & 255; + result.scales.z = uScalesZ === 0 ? 0 : Math.exp(lnScaleMin + (uScalesZ - 1) * lnScaleScale); + const uQuat = word2 >>> 16 & 65535 | word3 >>> 8 & 16711680; + decodeQuatOctXy88R8(uQuat, result.quaternion); + return result; } -class DynoSampler2DArrayShadow extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "sampler2DArrayShadow", value, update }); - } +function getTextureSize(numSplats) { + const width = SPLAT_TEX_WIDTH; + const height = Math.max( + SPLAT_TEX_MIN_HEIGHT, + Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)) + ); + const depth = Math.ceil(numSplats / (width * height)); + const maxSplats = width * height * depth; + return { width, height, depth, maxSplats }; } -class DynoSamplerCubeShadow extends DynoUniform { - constructor({ - key, - value, - update - }) { - super({ key, type: "samplerCubeShadow", value, update }); - } +function computeMaxSplats(numSplats) { + const width = SPLAT_TEX_WIDTH; + const height = Math.max( + SPLAT_TEX_MIN_HEIGHT, + Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)) + ); + const depth = Math.ceil(numSplats / (width * height)); + return width * height * depth; } -class DynoProgram { - constructor({ - graph, - inputs, - outputs, - template, - consoleLog - }) { - this.graph = graph; - this.template = template; - this.inputs = inputs ?? {}; - this.outputs = outputs ?? {}; - const compile = new Compilation({ indent: this.template.indent }); - for (const key in this.outputs) { - if (this.outputs[key]) { - compile.declares.add(this.outputs[key]); - } - } - const statements = graph.compile({ - inputs: this.inputs, - outputs: this.outputs, - compile - }); - this.shader = template.generate({ globals: compile.globals, statements }); - this.uniforms = compile.uniforms; - this.updaters = compile.updaters; - if (consoleLog) { - console.log("*** COMPILED SHADER", this.shader); - console.log("*** UNIFORMS", this.uniforms); - } - } - prepareMaterial() { - return getMaterial(this); +function isMobile() { + if (navigator.platform.toLowerCase().startsWith("win")) { + return false; } - update() { - for (const updater of this.updaters) { - updater(); - } + if (navigator.maxTouchPoints > 0) { + return true; } + return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test( + navigator.userAgent + ); } -class DynoProgramTemplate { - constructor(template) { - const globals = template.match(/^([ \t]*)\{\{\s*GLOBALS\s*\}\}/m); - const statements = template.match(/^([ \t]*)\{\{\s*STATEMENTS\s*\}\}/m); - if (!globals || !statements) { - throw new Error( - "Template must contain {{ GLOBALS }} and {{ STATEMENTS }}" - ); - } - this.before = template.substring(0, globals.index); - this.between = template.substring( - globals.index + globals[0].length, - statements.index - ); - this.after = template.substring( - statements.index + statements[0].length +function isAndroid() { + return /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent); +} +function isOculus() { + return !!navigator.xr && /Oculus/.test(navigator.userAgent); +} +function isQuest2() { + return isOculus() && /Quest 2/.test(navigator.userAgent); +} +function isIos() { + return /iPhone|iPad/.test(navigator.userAgent); +} +function isVisionPro() { + return !!navigator.xr && isIos() && /Safari/.test(navigator.userAgent) && isMobile(); +} +function flipPixels(pixels, width, height) { + const tempLine = new Uint8Array(width * 4); + for (let y = 0; y < height / 2; y++) { + const topOffset = y * width * 4; + const bottomOffset = (height - 1 - y) * width * 4; + tempLine.set(pixels.subarray(topOffset, topOffset + width * 4)); + pixels.set( + pixels.subarray(bottomOffset, bottomOffset + width * 4), + topOffset ); - this.indent = statements[1]; - } - generate({ - globals, - statements - }) { - return this.before + Array.from(globals).join("\n\n") + this.between + statements.map((s) => this.indent + s).join("\n") + this.after; + pixels.set(tempLine, bottomOffset); } + return pixels; } -const programMaterial = /* @__PURE__ */ new WeakMap(); -function getMaterial(program) { - let material = programMaterial.get(program); - if (material) { - return material; +function pixelsToPngUrl(pixels, width, height) { + const canvas = document.createElement("canvas"); + canvas.width = width; + canvas.height = height; + const ctx = canvas.getContext("2d"); + if (!ctx) { + throw new Error("Can't get 2d context"); } - material = new THREE.RawShaderMaterial({ - glslVersion: THREE.GLSL3, - vertexShader: IDENT_VERTEX_SHADER, - fragmentShader: program.shader, - uniforms: program.uniforms - }); - programMaterial.set(program, material); - return material; + const imageData = ctx.createImageData(width, height); + imageData.data.set(pixels); + ctx.putImageData(imageData, 0, 0); + return canvas.toDataURL("image/png"); } -function addOutputType(a, b, operation = "add") { - const error = () => { - throw new Error(`Invalid ${operation} types: ${a}, ${b}`); - }; - if (a === b) return a; - if (a === "int") { - if (isIntType(b)) return b; - error(); - } - if (b === "int") { - if (isIntType(a)) return a; - error(); - } - if (a === "uint") { - if (isUintType(b)) return b; - error(); +function omitUndefined(obj) { + return Object.fromEntries( + Object.entries(obj).filter(([_, value]) => value !== void 0) + ); +} +const IDENT_VERTEX_SHADER = unindent(` + precision highp float; + + in vec3 position; + + void main() { + gl_Position = vec4(position.xy, 0.0, 1.0); } - if (b === "uint") { - if (isUintType(a)) return a; - error(); +`); +function averagePositions(positions) { + const sum = new THREE.Vector3(); + for (const position of positions) { + sum.add(position); } - if (a === "float") { - if (isAllFloatType(b)) return b; - error(); + return sum.divideScalar(positions.length); +} +function averageQuaternions(quaternions) { + if (quaternions.length === 0) { + return new THREE.Quaternion(); } - if (b === "float") { - if (isAllFloatType(a)) return a; - error(); + const sum = quaternions[0].clone(); + for (let i = 1; i < quaternions.length; i++) { + if (quaternions[i].dot(quaternions[0]) < 0) { + sum.x -= quaternions[i].x; + sum.y -= quaternions[i].y; + sum.z -= quaternions[i].z; + sum.w -= quaternions[i].w; + } else { + sum.x += quaternions[i].x; + sum.y += quaternions[i].y; + sum.z += quaternions[i].z; + sum.w += quaternions[i].w; + } } - throw new Error(`Invalid ${operation} types: ${a}, ${b}`); + return sum.normalize(); } -function subOutputType(a, b) { - return addOutputType(a, b, "sub"); +function coinciDist(matrix1, matrix2) { + const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1); + const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2); + const direction1 = new THREE.Vector3(0, 0, -1).applyMatrix4(matrix1).sub(origin1).normalize(); + const direction2 = new THREE.Vector3(0, 0, -1).applyMatrix4(matrix2).sub(origin2).normalize(); + const distance2 = origin1.distanceTo(origin2); + const coincidence = direction1.dot(direction2); + return { distance: distance2, coincidence }; } -function mulOutputType(a, b) { - const error = () => { - throw new Error(`Invalid mul types: ${a}, ${b}`); - }; - const result = (value) => value; - if (a === "int") { - if (isIntType(b)) return result(b); - error(); - } - if (b === "int") { - if (isIntType(a)) return result(a); - error(); - } - if (a === "uint") { - if (isUintType(b)) return result(b); - error(); - } - if (b === "uint") { - if (isUintType(a)) return result(a); - error(); - } - if (a === "float") { - if (isAllFloatType(b)) return result(b); - error(); - } - if (b === "float") { - if (isAllFloatType(a)) return result(a); - error(); - } - if (isIntType(a) || isUintType(a) || isIntType(b) || isUintType(b)) { - if (a === b) return result(a); - error(); +function withinDist({ + matrix1, + matrix2, + maxDistance +}) { + const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1); + const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2); + return origin1.distanceTo(origin2) <= maxDistance; +} +function withinCoinciDist({ + matrix1, + matrix2, + maxDistance, + minCoincidence +}) { + const { distance: distance2, coincidence } = coinciDist(matrix1, matrix2); + return distance2 <= maxDistance && (minCoincidence == null || coincidence >= minCoincidence); +} +function coorientDist(matrix1, matrix2) { + const [origin1, rotate1] = [new THREE.Vector3(), new THREE.Quaternion()]; + const [origin2, rotate2] = [new THREE.Vector3(), new THREE.Quaternion()]; + matrix1.decompose(origin1, rotate1, new THREE.Vector3()); + matrix2.decompose(origin2, rotate2, new THREE.Vector3()); + const distance2 = origin1.distanceTo(origin2); + const coorient = Math.abs(rotate1.dot(rotate2)); + return { distance: distance2, coorient }; +} +function withinCoorientDist({ + matrix1, + matrix2, + maxDistance, + minCoorient +}) { + const { distance: distance2, coorient } = coorientDist(matrix1, matrix2); + return distance2 <= maxDistance && (minCoorient == null || coorient >= minCoorient); +} +function epsilonSign(value, epsilon = 1e-3) { + if (Math.abs(value) < epsilon) { + return 0; } - if (a === "vec2") { - if (b === "vec2" || isMat2(b)) return result("vec2"); - if (b === "mat3x2") return result("vec3"); - if (b === "mat4x2") return result("vec4"); - error(); - } - if (a === "vec3") { - if (b === "mat2x3") return result("vec2"); - if (b === "vec3" || isMat3(b)) return result("vec3"); - if (b === "mat4x3") return result("vec4"); - error(); - } - if (a === "vec4") { - if (b === "mat2x4") return result("vec2"); - if (b === "mat3x4") return result("vec3"); - if (b === "vec4" || isMat4(b)) return result("vec4"); - error(); - } - if (b === "vec2") { - if (isMat2(a)) return result("vec2"); - if (a === "mat2x3") return result("vec3"); - if (a === "mat2x4") return result("vec4"); - error(); - } - if (b === "vec3") { - if (a === "mat3x2") return result("vec2"); - if (isMat3(a)) return result("vec3"); - if (a === "mat3x4") return result("vec4"); - error(); - } - if (b === "vec4") { - if (a === "mat4x2") return result("vec2"); - if (a === "mat4x3") return result("vec3"); - if (isMat4(a)) return result("vec4"); - error(); - } - if (isMat2(a)) { - if (isMat2(b)) return result("mat2"); - if (b === "mat3x2") return result("mat3x2"); - if (b === "mat4x2") return result("mat4x2"); - error(); - } - if (a === "mat2x3") { - if (isMat2(b)) return result("mat2x3"); - if (b === "mat3x2") return result("mat3"); - if (b === "mat4x2") return result("mat4x3"); - error(); - } - if (a === "mat2x4") { - if (isMat2(b)) return result("mat2x4"); - if (b === "mat3x2") return result("mat3x4"); - if (b === "mat4x2") return result("mat4"); - error(); - } - if (a === "mat3x2") { - if (b === "mat2x3") return result("mat2"); - if (isMat3(b)) return result("mat3x2"); - if (b === "mat4x3") return result("mat4x2"); - error(); - } - if (isMat3(a)) { - if (b === "mat2x3") return result("mat2x3"); - if (isMat3(b)) return result("mat3"); - if (b === "mat4x3") return result("mat4x3"); - error(); - } - if (a === "mat3x4") { - if (b === "mat2x3") return result("mat2x4"); - if (isMat3(b)) return result("mat3x4"); - if (b === "mat4x3") return result("mat4"); - error(); - } - if (a === "mat4x2") { - if (b === "mat2x4") return result("mat2"); - if (b === "mat3x4") return result("mat3x2"); - if (isMat4(b)) return result("mat4x2"); - error(); - } - if (a === "mat4x3") { - if (b === "mat2x4") return result("mat2x3"); - if (b === "mat3x4") return result("mat3"); - if (isMat4(b)) return result("mat4x3"); - error(); - } - if (isMat4(a)) { - if (b === "mat2x4") return result("mat2x4"); - if (b === "mat3x4") return result("mat3x4"); - if (isMat4(b)) return result("mat4"); - error(); - } - throw new Error(`Invalid mul types: ${a}, ${b}`); -} -function divOutputType(a, b) { - return addOutputType(a, b, "div"); -} -function imodOutputType(a, b) { - if (a === b) return a; - if (a === "int") { - if (isIntType(b)) return b; - } else if (b === "int") { - if (isIntType(a)) return a; - } else if (a === "uint") { - if (isUintType(b)) return b; - } else if (b === "uint") { - if (isUintType(a)) return a; - } - throw new Error(`Invalid imod types: ${a}, ${b}`); -} -function modOutputType(a, b) { - if (a === b || b === "float") return a; - throw new Error(`Invalid mod types: ${a}, ${b}`); -} -function modfOutputType(a) { - return a; + return Math.sign(value); } -function negOutputType(a) { - return a; +function encodeQuatXyz888(q) { + const negQuat = q.w < 0; + const iQuatX = floatToSint8(negQuat ? -q.x : q.x); + const iQuatY = floatToSint8(negQuat ? -q.y : q.y); + const iQuatZ = floatToSint8(negQuat ? -q.z : q.z); + const uQuatX = iQuatX & 255; + const uQuatY = iQuatY & 255; + const uQuatZ = iQuatZ & 255; + return uQuatX | uQuatY << 8 | uQuatZ << 16; } -function absOutputType(a) { - return a; +function decodeQuatXyz888(encoded, out) { + const iQuatX = encoded << 24 >> 24; + const iQuatY = encoded << 16 >> 24; + const iQuatZ = encoded << 8 >> 24; + out.set(iQuatX / 127, iQuatY / 127, iQuatZ / 127, 0); + const dotSelf = out.x * out.x + out.y * out.y + out.z * out.z; + out.w = Math.sqrt(Math.max(0, 1 - dotSelf)); + return out; } -function signOutputType(a) { - return a; +const tempNormalizedQuaternion = new THREE.Quaternion(); +const tempAxis = new THREE.Vector3(); +function encodeQuatOctXy88R8(q) { + const qnorm = tempNormalizedQuaternion.copy(q).normalize(); + if (qnorm.w < 0) { + qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w); + } + const theta = 2 * Math.acos(qnorm.w); + const xyz_norm = Math.sqrt( + qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z + ); + const axis = xyz_norm < 1e-6 ? tempAxis.set(1, 0, 0) : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm); + const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z); + let p_x = axis.x / sum; + let p_y = axis.y / sum; + if (axis.z < 0) { + const tmp = p_x; + p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1); + p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1); + } + const u_f = p_x * 0.5 + 0.5; + const v_f = p_y * 0.5 + 0.5; + const quantU = Math.round(u_f * 255); + const quantV = Math.round(v_f * 255); + const angleInt = Math.round(theta * (255 / Math.PI)); + return angleInt << 16 | quantV << 8 | quantU; } -function floorOutputType(a) { - return a; +function decodeQuatOctXy88R8(encoded, out) { + const quantU = encoded & 255; + const quantV = encoded >>> 8 & 255; + const angleInt = encoded >>> 16 & 255; + const u_f = quantU / 255; + const v_f = quantV / 255; + let f_x = (u_f - 0.5) * 2; + let f_y = (v_f - 0.5) * 2; + const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y)); + const t = Math.max(-f_z, 0); + f_x += f_x >= 0 ? -t : t; + f_y += f_y >= 0 ? -t : t; + const axis = tempAxis.set(f_x, f_y, f_z).normalize(); + const theta = angleInt / 255 * Math.PI; + const halfTheta = theta * 0.5; + const s = Math.sin(halfTheta); + const w = Math.cos(halfTheta); + out.set(axis.x * s, axis.y * s, axis.z * s, w); + return out; } -function ceilOutputType(a) { - return a; +function encodeQuatEulerXyz888(q) { + const qNorm = q.clone().normalize(); + const sinr_cosp = 2 * (qNorm.w * qNorm.x + qNorm.y * qNorm.z); + const cosr_cosp = 1 - 2 * (qNorm.x * qNorm.x + qNorm.y * qNorm.y); + const roll = Math.atan2(sinr_cosp, cosr_cosp); + const sinp = 2 * (qNorm.w * qNorm.y - qNorm.z * qNorm.x); + const pitch = Math.abs(sinp) >= 1 ? Math.sign(sinp) * (Math.PI / 2) : Math.asin(sinp); + const siny_cosp = 2 * (qNorm.w * qNorm.z + qNorm.x * qNorm.y); + const cosy_cosp = 1 - 2 * (qNorm.y * qNorm.y + qNorm.z * qNorm.z); + const yaw = Math.atan2(siny_cosp, cosy_cosp); + const normRoll = (roll + Math.PI) / (2 * Math.PI); + const normPitch = (pitch + Math.PI) / (2 * Math.PI); + const normYaw = (yaw + Math.PI) / (2 * Math.PI); + const rollQ = Math.round(normRoll * 255); + const pitchQ = Math.round(normPitch * 255); + const yawQ = Math.round(normYaw * 255); + return yawQ << 16 | pitchQ << 8 | rollQ; } -function truncOutputType(a) { - return a; +function decodeQuatEulerXyz888(encoded, out) { + const rollQ = encoded & 255; + const pitchQ = encoded >>> 8 & 255; + const yawQ = encoded >>> 16 & 255; + const normRoll = rollQ / 255; + const normPitch = pitchQ / 255; + const normYaw = yawQ / 255; + const roll = normRoll * (2 * Math.PI) - Math.PI; + const pitch = normPitch * (2 * Math.PI) - Math.PI; + const yaw = normYaw * (2 * Math.PI) - Math.PI; + const cr = Math.cos(roll * 0.5); + const sr = Math.sin(roll * 0.5); + const cp = Math.cos(pitch * 0.5); + const sp = Math.sin(pitch * 0.5); + const cy = Math.cos(yaw * 0.5); + const sy = Math.sin(yaw * 0.5); + out.w = cr * cp * cy + sr * sp * sy; + out.x = sr * cp * cy - cr * sp * sy; + out.y = cr * sp * cy + sr * cp * sy; + out.z = cr * cp * sy - sr * sp * cy; + out.normalize(); + return out; } -function roundOutputType(a) { - return a; +function encodeQuatOctXy1010R12(qx, qy, qz, qw) { + const qlen = Math.sqrt(qx * qx + qy * qy + qz * qz + qw * qw); + const qnx = (qw < 0 ? -qx : qx) / qlen; + const qny = (qw < 0 ? -qy : qy) / qlen; + const qnz = (qw < 0 ? -qz : qz) / qlen; + const qnw = (qw < 0 ? -qw : qw) / qlen; + const theta = 2 * Math.acos(qnw); + const xyz_norm = Math.sqrt(qnx * qnx + qny * qny + qnz * qnz); + const axisX = xyz_norm < 1e-6 ? 1 : qnx / xyz_norm; + const axisY = xyz_norm < 1e-6 ? 0 : qny / xyz_norm; + const axisZ = xyz_norm < 1e-6 ? 0 : qnz / xyz_norm; + const sum = Math.abs(axisX) + Math.abs(axisY) + Math.abs(axisZ); + let p_x = axisX / sum; + let p_y = axisY / sum; + if (axisZ < 0) { + const tmp = p_x; + p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1); + p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1); + } + const u_f = p_x * 0.5 + 0.5; + const v_f = p_y * 0.5 + 0.5; + const quantU = Math.round(u_f * 1023); + const quantV = Math.round(v_f * 1023); + const angleInt = Math.round(theta * (4095 / Math.PI)); + return angleInt << 20 | quantV << 10 | quantU; } -function fractOutputType(a) { - return a; -} -function powOutputType(a) { - return a; -} -function expOutputType(a) { - return a; -} -function exp2OutputType(a) { - return a; -} -function logOutputType(a) { - return a; -} -function log2OutputType(a) { - return a; -} -function sqrOutputType(a) { - return a; -} -function sqrtOutputType(a) { - return a; -} -function inversesqrtOutputType(a) { - return a; -} -function minOutputType(a, b, operation = "min") { - if (a === b) return a; - if (b === "float") { - if (isFloatType(a)) return a; - } else if (b === "int") { - if (isIntType(a)) return a; - } else if (b === "uint") { - if (isUintType(a)) return a; - } - throw new Error(`Invalid ${operation} types: ${a}, ${b}`); +function decodeQuatOctXy1010R12(encoded, out) { + const quantU = encoded & 1023; + const quantV = encoded >>> 10 & 1023; + const angleInt = encoded >>> 20 & 4095; + const u_f = quantU / 1023; + const v_f = quantV / 1023; + let f_x = (u_f - 0.5) * 2; + let f_y = (v_f - 0.5) * 2; + const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y)); + const t = Math.max(-f_z, 0); + f_x += f_x >= 0 ? -t : t; + f_y += f_y >= 0 ? -t : t; + const axisLen = Math.sqrt(f_x * f_x + f_y * f_y + f_z * f_z); + const axisX = axisLen < 1e-6 ? 0 : f_x / axisLen; + const axisY = axisLen < 1e-6 ? 0 : f_y / axisLen; + const axisZ = axisLen < 1e-6 ? 0 : f_z / axisLen; + const theta = angleInt / 4095 * Math.PI; + const halfTheta = theta * 0.5; + const s = Math.sin(halfTheta); + const w = Math.cos(halfTheta); + out.set(axisX * s, axisY * s, axisZ * s, w); + return out; } -function maxOutputType(a, b) { - return minOutputType(a, b, "max"); +function packSint8Bytes(b0, b1, b22, b3) { + const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127))); + const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127))); + const clampedB2 = Math.round(Math.max(-127, Math.min(127, b22 * 127))); + const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127))); + return clampedB0 & 255 | (clampedB1 & 255) << 8 | (clampedB2 & 255) << 16 | (clampedB3 & 255) << 24; } -function clampOutputType(a, b, _c) { - if (b === "float") { - if (isFloatType(a)) return a; - } else if (b === "int") { - if (isIntType(a)) return a; - } else if (b === "uint") { - if (isUintType(a)) return a; +function encodeSh1Rgb(sh1Array, index, sh1Rgb, encoding) { + const sh1Max = (encoding == null ? void 0 : encoding.sh1Max) ?? 1; + const sh1Scale = 63 / sh1Max; + const base = index * 2; + for (let i = 0; i < 9; ++i) { + const s = sh1Rgb[i] * sh1Scale; + const value = Math.round(Math.max(-63, Math.min(63, s))) & 127; + const bitStart = i * 7; + const bitEnd = bitStart + 7; + const wordStart = Math.floor(bitStart / 32); + const bitOffset = bitStart - wordStart * 32; + const firstWord = value << bitOffset & 4294967295; + sh1Array[base + wordStart] |= firstWord; + if (bitEnd > wordStart * 32 + 32) { + const secondWord = value >>> 32 - bitOffset & 4294967295; + sh1Array[base + wordStart + 1] |= secondWord; + } } - throw new Error(`Invalid clamp types: ${a}, ${b}`); -} -function mixOutputType(a, b, c) { - if (c === a) return a; - if (c === "float") return a; - if (c === "bool" && a === "float") return a; - if (c === "bvec2" && a === "vec2") return a; - if (c === "bvec3" && a === "vec3") return a; - if (c === "bvec4" && a === "vec4") return a; - throw new Error(`Invalid mix types: ${a}, ${b}, ${c}`); } -function stepOutputType(a, b) { - if (a === b || b === "float") return b; - throw new Error(`Invalid step types: ${a}, ${b}`); +function encodeSh2Rgb(sh2Array, index, sh2Rgb, encoding) { + const sh2Max = (encoding == null ? void 0 : encoding.sh2Max) ?? 1; + const sh2Scale = 1 / sh2Max; + sh2Array[index * 4 + 0] = packSint8Bytes( + sh2Rgb[0] * sh2Scale, + sh2Rgb[1] * sh2Scale, + sh2Rgb[2] * sh2Scale, + sh2Rgb[3] * sh2Scale + ); + sh2Array[index * 4 + 1] = packSint8Bytes( + sh2Rgb[4] * sh2Scale, + sh2Rgb[5] * sh2Scale, + sh2Rgb[6] * sh2Scale, + sh2Rgb[7] * sh2Scale + ); + sh2Array[index * 4 + 2] = packSint8Bytes( + sh2Rgb[8] * sh2Scale, + sh2Rgb[9] * sh2Scale, + sh2Rgb[10] * sh2Scale, + sh2Rgb[11] * sh2Scale + ); + sh2Array[index * 4 + 3] = packSint8Bytes( + sh2Rgb[12] * sh2Scale, + sh2Rgb[13] * sh2Scale, + sh2Rgb[14] * sh2Scale, + 0 + ); } -function smoothstepOutputType(a, b, c) { - if (a === b) { - if (a === c || a === "float") return c; +function encodeSh3Rgb(sh3Array, index, sh3Rgb, encoding) { + const sh3Max = (encoding == null ? void 0 : encoding.sh3Max) ?? 1; + const sh3Scale = 31 / sh3Max; + const base = index * 4; + for (let i = 0; i < 21; ++i) { + const s = sh3Rgb[i] * sh3Scale; + const value = Math.round(Math.max(-31, Math.min(31, s))) & 63; + const bitStart = i * 6; + const bitEnd = bitStart + 6; + const wordStart = Math.floor(bitStart / 32); + const bitOffset = bitStart - wordStart * 32; + const firstWord = value << bitOffset & 4294967295; + sh3Array[base + wordStart] |= firstWord; + if (bitEnd > wordStart * 32 + 32) { + const secondWord = value >>> 32 - bitOffset & 4294967295; + sh3Array[base + wordStart + 1] |= secondWord; + } } - throw new Error(`Invalid smoothstep types: ${a}, ${b}, ${c}`); } -function isNanOutputType(a, operation = "isNan") { - if (a === "float") return "bool"; - if (a === "vec2") return "bvec2"; - if (a === "vec3") return "bvec3"; - if (a === "vec4") return "bvec4"; - throw new Error(`Invalid ${operation} types: ${a}`); +function encodeExtRgb(r, g, b) { + const ar = Math.abs(r); + const ag = Math.abs(g); + const ab = Math.abs(b); + const maxAbs = Math.max(ar, ag, ab); + const base = Math.floor(Math.log2(maxAbs)); + const biasedBase = Math.max(0, Math.min(31, base + 15)); + const divisor = 2 ** (biasedBase - 15) / 255; + const uR = Math.round(Math.max(0, Math.min(255, ar / divisor))); + const uG = Math.round(Math.max(0, Math.min(255, ag / divisor))); + const uB = Math.round(Math.max(0, Math.min(255, ab / divisor))); + const expSigns = biasedBase << 3 | ((r < 0 ? 1 : 0) | (g < 0 ? 2 : 0) | (b < 0 ? 4 : 0)); + return uR | uG << 8 | uB << 16 | expSigns << 24; } -function isInfOutputType(a) { - return isNanOutputType(a, "isInf"); +function decodeExtRgb(encoded) { + const color = packedFields.color; + const biasedBase = encoded >>> 27 & 31; + const divisor = 2 ** (biasedBase - 15) / 255; + const r = (encoded & 255) * divisor; + const g = (encoded >>> 8 & 255) * divisor; + const b = (encoded >>> 16 & 255) * divisor; + color.r = encoded & 16777216 ? -r : r; + color.g = encoded & 33554432 ? -g : g; + color.b = encoded & 67108864 ? -b : b; + return color; } -const add = (a, b) => new Add({ a, b }); -const sub = (a, b) => new Sub({ a, b }); -const mul = (a, b) => new Mul({ a, b }); -const div = (a, b) => new Div({ a, b }); -const imod = (a, b) => new IMod({ a, b }); -const mod = (a, b) => new Mod({ a, b }); -const modf = (a) => new Modf({ a }).outputs; -const neg = (a) => new Neg({ a }); -const abs = (a) => new Abs({ a }); -const sign = (a) => new Sign({ a }); -const floor = (a) => new Floor({ a }); -const ceil = (a) => new Ceil({ a }); -const trunc = (a) => new Trunc({ a }); -const round = (a) => new Round({ a }); -const fract = (a) => new Fract({ a }); -const pow = (a, b) => new Pow({ a, b }); -const exp = (a) => new Exp({ a }); -const exp2 = (a) => new Exp2({ a }); -const log = (a) => new Log({ a }); -const log2 = (a) => new Log2({ a }); -const sqr = (a) => new Sqr({ a }); -const sqrt = (a) => new Sqrt({ a }); -const inversesqrt = (a) => new InverseSqrt({ a }); -const min = (a, b) => new Min({ a, b }); -const max = (a, b) => new Max({ a, b }); -const clamp = (a, min2, max2) => new Clamp({ a, min: min2, max: max2 }); -const mix = (a, b, t) => new Mix({ a, b, t }); -const step = (edge, x) => new Step({ edge, x }); -const smoothstep = (edge0, edge1, x) => new Smoothstep({ edge0, edge1, x }); -const isNan = (a) => new IsNan({ a }); -const isInf = (a) => new IsInf({ a }); -class Add extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "sum", outTypeFunc: addOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.sum} = ${inputs.a} + ${inputs.b};`]; - }; +function encodeExtSh1Rgb(sh1Array, index, sh1Rgb) { + const i4 = index * 4; + for (let k = 0; k < 3; ++k) { + const k3 = k * 3; + sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]); } } -class Sub extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "difference", outTypeFunc: subOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.difference} = ${inputs.a} - ${inputs.b};`]; - }; +function encodeExtSh12Rgb(sh1Array, sh2Array, index, sh1Rgb, sh2Rgb) { + const i4 = index * 4; + for (let k = 0; k < 3; ++k) { + const k3 = k * 3; + sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]); } -} -class Mul extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "product", outTypeFunc: mulOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.product} = ${inputs.a} * ${inputs.b};`]; - }; + sh1Array[i4 + 3] = encodeExtRgb(sh2Rgb[0], sh2Rgb[1], sh2Rgb[2]); + for (let k = 1; k < 5; ++k) { + const k5 = k * 5; + sh2Array[i4 + (k - 1)] = encodeExtRgb( + sh2Rgb[k5], + sh2Rgb[k5 + 1], + sh2Rgb[k5 + 2] + ); } } -class Div extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "quotient", outTypeFunc: divOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.quotient} = ${inputs.a} / ${inputs.b};`]; - }; +function encodeExt3Rgb(sh3ArrayA, sh3ArrayB, index, sh3Rgb) { + const i4 = index * 4; + for (let k = 0; k < 4; ++k) { + const k3 = k * 3; + sh3ArrayA[i4 + k] = encodeExtRgb( + sh3Rgb[k3], + sh3Rgb[k3 + 1], + sh3Rgb[k3 + 2] + ); } -} -class IMod extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "remainder", outTypeFunc: imodOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.remainder} = ${inputs.a} % ${inputs.b};`]; - }; + for (let k = 4; k < 7; ++k) { + const k3 = k * 3; + sh3ArrayB[i4 + (k - 4)] = encodeExtRgb( + sh3Rgb[k3], + sh3Rgb[k3 + 1], + sh3Rgb[k3 + 2] + ); } } -class Mod extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "remainder", outTypeFunc: modOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.remainder} = mod(${inputs.a}, ${inputs.b});`]; - }; +function decompressPartialGzip(fileBytes, numBytes) { + const chunks = []; + let totalBytes = 0; + let result = null; + const gunzip = new Gunzip((data, final) => { + chunks.push(data); + totalBytes += data.length; + if (final || totalBytes >= numBytes) { + const allBytes = new Uint8Array(totalBytes); + let offset2 = 0; + for (const chunk of chunks) { + allBytes.set(chunk, offset2); + offset2 += chunk.length; + } + result = allBytes.slice(0, numBytes); + } + }); + const CHUNK_SIZE = 1024; + let offset = 0; + while (result == null && offset < fileBytes.length) { + const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE); + gunzip.push(chunk, false); + offset += CHUNK_SIZE; } -} -class Modf extends Dyno { - constructor({ a }) { - const inTypes = { a: valType(a) }; - const outType = modfOutputType(inTypes.a); - const outTypes = { - fract: outType, - integer: outType - }; - super({ inTypes, outTypes, inputs: { a } }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.fract} = modf(${inputs.a}, ${outputs.integer});`]; - }; + if (result == null) { + gunzip.push(new Uint8Array(), true); + if (result == null) { + throw new Error("Failed to decompress partial gzip"); + } } + return result; } -class Neg extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "neg", outTypeFunc: negOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.neg} = -${inputs.a};`]; - }; +class GunzipReader { + constructor({ + fileBytes, + chunkBytes = 64 * 1024 + }) { + this.fileBytes = fileBytes; + this.chunkBytes = chunkBytes; + this.chunks = []; + this.totalBytes = 0; + const ds = new DecompressionStream("gzip"); + const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds); + this.reader = decompressionStream.getReader(); } -} -class Abs extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "abs", outTypeFunc: absOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.abs} = abs(${inputs.a});`]; - }; + async read(numBytes) { + while (this.totalBytes < numBytes) { + const { value: chunk, done: readerDone } = await this.reader.read(); + if (readerDone) { + break; + } + this.chunks.push(chunk); + this.totalBytes += chunk.length; + } + if (this.totalBytes < numBytes) { + throw new Error( + `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}` + ); + } + const allBytes = new Uint8Array(this.totalBytes); + let outOffset = 0; + for (const chunk of this.chunks) { + allBytes.set(chunk, outOffset); + outOffset += chunk.length; + } + const result = allBytes.subarray(0, numBytes); + this.chunks = [allBytes.subarray(numBytes)]; + this.totalBytes -= numBytes; + return result; } } -class Sign extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "sign", outTypeFunc: signOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.sign} = sign(${inputs.a});`]; - }; +function uploadU32DataTextureRows(renderer, texture2, width, rows, data) { + const gl = renderer.getContext(); + const props = renderer.properties.get(texture2); + const glTexture = props == null ? void 0 : props.__webglTexture; + if (!glTexture) { + throw new Error("texture not found"); } + const currentFlipY = gl.getParameter(gl.UNPACK_FLIP_Y_WEBGL); + const currentPremultiply = gl.getParameter(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL); + renderer.state.activeTexture(gl.TEXTURE0); + renderer.state.bindTexture(gl.TEXTURE_2D, glTexture); + gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null); + gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false); + gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false); + gl.texSubImage2D( + gl.TEXTURE_2D, + 0, + 0, + 0, + width, + rows, + gl.RGBA_INTEGER, + gl.UNSIGNED_INT, + data + ); + renderer.state.unbindTexture(); + gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, currentFlipY); + gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, currentPremultiply); } -class Floor extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "floor", outTypeFunc: floorOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.floor} = floor(${inputs.a});`]; - }; +const utils = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + DataCache, + FreeList, + GunzipReader, + IDENT_VERTEX_SHADER, + Sint8ToFloat, + Uint8ToFloat, + averagePositions, + averageQuaternions, + coinciDist, + computeMaxSplats, + coorientDist, + decodeExtRgb, + decodeExtSplat, + decodeQuatEulerXyz888, + decodeQuatOctXy1010R12, + decodeQuatOctXy88R8, + decodeQuatXyz888, + decompressPartialGzip, + encodeExt3Rgb, + encodeExtRgb, + encodeExtSh12Rgb, + encodeExtSh1Rgb, + encodeExtSplat, + encodeQuatEulerXyz888, + encodeQuatOctXy1010R12, + encodeQuatOctXy88R8, + encodeQuatXyz888, + encodeSh1Rgb, + encodeSh2Rgb, + encodeSh3Rgb, + epsilonSign, + flipPixels, + floatBitsToUint: floatBitsToUint$1, + floatToSint8, + floatToUint8, + fromHalf, + getTextureSize, + getTransferable, + isAndroid, + isIos, + isMobile, + isOculus, + isQuest2, + isVisionPro, + mapFilterObject, + mapObject, + newArray, + normalize: normalize$1, + omitUndefined, + pixelsToPngUrl, + setPackedSplat, + setPackedSplatCenter, + setPackedSplatOpacity, + setPackedSplatQuat, + setPackedSplatRgb, + setPackedSplatRgba, + setPackedSplatScales, + threeMrtArray, + threeRevision, + toHalf, + uintBitsToFloat: uintBitsToFloat$1, + unpackSplat, + uploadU32DataTextureRows, + withinCoinciDist, + withinCoorientDist, + withinDist +}, Symbol.toStringTag, { value: "Module" })); +class DynoProgram { + constructor({ + graph, + inputs, + outputs, + template, + consoleLog + }) { + this.graph = graph; + this.template = template; + this.inputs = inputs ?? {}; + this.outputs = outputs ?? {}; + const compile = new Compilation({ indent: this.template.indent }); + for (const key in this.outputs) { + if (this.outputs[key]) { + compile.declares.add(this.outputs[key]); + } + } + const statements = graph.compile({ + inputs: this.inputs, + outputs: this.outputs, + compile + }); + this.shader = template.generate({ globals: compile.globals, statements }); + this.uniforms = compile.uniforms; + this.updaters = compile.updaters; + if (consoleLog) { + console.log("*** COMPILED SHADER", this.shader); + console.log("*** UNIFORMS", this.uniforms); + } } -} -class Ceil extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "ceil", outTypeFunc: ceilOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.ceil} = ceil(${inputs.a});`]; - }; + prepareMaterial() { + return getMaterial(this); } -} -class Trunc extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "trunc", outTypeFunc: truncOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.trunc} = trunc(${inputs.a});`]; - }; + update() { + for (const updater of this.updaters) { + updater(); + } } } -class Round extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "round", outTypeFunc: roundOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.round} = round(${inputs.a});`]; - }; +class DynoProgramTemplate { + constructor(template) { + const globals = template.match(/^([ \t]*)\{\{\s*GLOBALS\s*\}\}/m); + const statements = template.match(/^([ \t]*)\{\{\s*STATEMENTS\s*\}\}/m); + if (!globals || !statements) { + throw new Error( + "Template must contain {{ GLOBALS }} and {{ STATEMENTS }}" + ); + } + this.before = template.substring(0, globals.index); + this.between = template.substring( + globals.index + globals[0].length, + statements.index + ); + this.after = template.substring( + statements.index + statements[0].length + ); + this.indent = statements[1]; } -} -class Fract extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "fract", outTypeFunc: fractOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.fract} = fract(${inputs.a});`]; - }; + generate({ + globals, + statements + }) { + return this.before + Array.from(globals).join("\n\n") + this.between + statements.map((s) => this.indent + s).join("\n") + this.after; } } -class Pow extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "power", outTypeFunc: powOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.power} = pow(${inputs.a}, ${inputs.b});`]; - }; +const programMaterial = /* @__PURE__ */ new WeakMap(); +function getMaterial(program) { + let material = programMaterial.get(program); + if (material) { + return material; } + material = new THREE.RawShaderMaterial({ + glslVersion: THREE.GLSL3, + vertexShader: IDENT_VERTEX_SHADER, + fragmentShader: program.shader, + uniforms: program.uniforms + }); + programMaterial.set(program, material); + return material; } -class Exp extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "exp", outTypeFunc: expOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.exp} = exp(${inputs.a});`]; - }; +function addOutputType(a, b, operation = "add") { + const error = () => { + throw new Error(`Invalid ${operation} types: ${a}, ${b}`); + }; + if (a === b) return a; + if (a === "int") { + if (isIntType(b)) return b; + error(); } -} -class Exp2 extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "exp2", outTypeFunc: exp2OutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.exp2} = exp2(${inputs.a});`]; - }; + if (b === "int") { + if (isIntType(a)) return a; + error(); } -} -class Log extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "log", outTypeFunc: logOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.log} = log(${inputs.a});`]; - }; + if (a === "uint") { + if (isUintType(b)) return b; + error(); } -} -class Log2 extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "log2", outTypeFunc: log2OutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.log2} = log2(${inputs.a});`]; - }; + if (b === "uint") { + if (isUintType(a)) return a; + error(); } -} -class Sqr extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "sqr", outTypeFunc: sqrOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.sqr} = ${inputs.a} * ${inputs.a};`]; - }; + if (a === "float") { + if (isAllFloatType(b)) return b; + error(); } -} -class Sqrt extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "sqrt", outTypeFunc: sqrtOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.sqrt} = sqrt(${inputs.a});`]; - }; + if (b === "float") { + if (isAllFloatType(a)) return a; + error(); } + throw new Error(`Invalid ${operation} types: ${a}, ${b}`); } -class InverseSqrt extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "inversesqrt", outTypeFunc: inversesqrtOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.inversesqrt} = inversesqrt(${inputs.a});`]; - }; - } +function subOutputType(a, b) { + return addOutputType(a, b, "sub"); } -class Min extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "min", outTypeFunc: minOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.min} = min(${inputs.a}, ${inputs.b});`]; - }; +function mulOutputType(a, b) { + const error = () => { + throw new Error(`Invalid mul types: ${a}, ${b}`); + }; + const result = (value) => value; + if (a === "int") { + if (isIntType(b)) return result(b); + error(); } -} -class Max extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "max", outTypeFunc: maxOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.max} = max(${inputs.a}, ${inputs.b});`]; - }; + if (b === "int") { + if (isIntType(a)) return result(a); + error(); } -} -class Clamp extends TrinaryOp { - constructor({ - a, - min: min2, - max: max2 - }) { - super({ - a, - b: min2, - c: max2, - outKey: "clamp", - outTypeFunc: clampOutputType - }); - this.statements = ({ inputs, outputs }) => { - const { a: a2, b: min3, c: max3 } = inputs; - return [`${outputs.clamp} = clamp(${a2}, ${min3}, ${max3});`]; - }; + if (a === "uint") { + if (isUintType(b)) return result(b); + error(); } -} -class Mix extends TrinaryOp { - constructor({ a, b, t }) { - super({ a, b, c: t, outKey: "mix", outTypeFunc: mixOutputType }); - this.statements = ({ inputs, outputs }) => { - const { a: a2, b: b22, c: t2 } = inputs; - return [`${outputs.mix} = mix(${a2}, ${b22}, ${t2});`]; - }; + if (b === "uint") { + if (isUintType(a)) return result(a); + error(); } -} -class Step extends BinaryOp { - constructor({ edge, x }) { - super({ - a: edge, - b: x, - outKey: "step", - outTypeFunc: stepOutputType - }); - this.statements = ({ inputs, outputs }) => { - const { a: edge2, b: x2 } = inputs; - return [`${outputs.step} = step(${edge2}, ${x2});`]; - }; + if (a === "float") { + if (isAllFloatType(b)) return result(b); + error(); } -} -class Smoothstep extends TrinaryOp { - constructor({ - edge0, - edge1, - x - }) { - super({ - a: edge0, - b: edge1, - c: x, - outKey: "smoothstep", - outTypeFunc: smoothstepOutputType - }); - this.statements = ({ inputs, outputs }) => { - const { a: edge02, b: edge12, c: x2 } = inputs; - return [`${outputs.smoothstep} = smoothstep(${edge02}, ${edge12}, ${x2});`]; - }; + if (b === "float") { + if (isAllFloatType(a)) return result(a); + error(); } -} -class IsNan extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "isNan", outTypeFunc: isNanOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.isNan} = isNan(${inputs.a});`]; - }; + if (isIntType(a) || isUintType(a) || isIntType(b) || isUintType(b)) { + if (a === b) return result(a); + error(); } -} -class IsInf extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "isInf", outTypeFunc: isInfOutputType }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.isInf} = isInf(${inputs.a});`]; - }; + if (a === "vec2") { + if (b === "vec2" || isMat2(b)) return result("vec2"); + if (b === "mat3x2") return result("vec3"); + if (b === "mat4x2") return result("vec4"); + error(); } -} -const and = (a, b) => new And({ a, b }); -const or = (a, b) => new Or({ a, b }); -const xor = (a, b) => new Xor({ a, b }); -const not = (a) => new Not({ a }); -const shr = (a, b) => new Shr({ a, b }); -const shl = (a, b) => new Shl({ a, b }); -const lessThan = (a, b) => new LessThan({ a, b }); -const lessThanEqual = (a, b) => new LessThanEqual({ a, b }); -const greaterThan = (a, b) => new GreaterThan({ a, b }); -const greaterThanEqual = (a, b) => new GreaterThanEqual({ a, b }); -const equal = (a, b) => new Equal({ a, b }); -const notEqual = (a, b) => new NotEqual({ a, b }); -const any = (a) => new Any({ a }); -const all = (a) => new All({ a }); -const select = (cond, t, f) => new Select({ cond, t, f }); -const compXor = (a) => new CompXor({ a }); -class And extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "and" }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.and === "bool") { - return [`${outputs.and} = ${inputs.a} && ${inputs.b};`]; - } - return [`${outputs.and} = ${inputs.a} & ${inputs.b};`]; - }; - } -} -class Or extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "or" }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.or === "bool") { - return [`${outputs.or} = ${inputs.a} || ${inputs.b};`]; - } - return [`${outputs.or} = ${inputs.a} | ${inputs.b};`]; - }; - } -} -class Xor extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "xor" }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.xor === "bool") { - return [`${outputs.xor} = ${inputs.a} ^^ ${inputs.b};`]; - } - return [`${outputs.xor} = ${inputs.a} ^ ${inputs.b};`]; - }; - } -} -class Not extends UnaryOp { - constructor({ a }) { - super({ a, outTypeFunc: (aType) => aType, outKey: "not" }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.not === "bool") { - return [`${outputs.not} = !${inputs.a};`]; - } - return [`${outputs.not} = not(${inputs.a});`]; - }; + if (a === "vec3") { + if (b === "mat2x3") return result("vec2"); + if (b === "vec3" || isMat3(b)) return result("vec3"); + if (b === "mat4x3") return result("vec4"); + error(); } -} -class LessThan extends BinaryOp { - constructor({ a, b }) { - super({ - a, - b, - outTypeFunc: (aType, bType) => compareOutputType(aType, "lessThan"), - outKey: "lessThan" - }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.lessThan === "bool") { - return [`${outputs.lessThan} = ${inputs.a} < ${inputs.b};`]; - } - return [`${outputs.lessThan} = lessThan(${inputs.a}, ${inputs.b});`]; - }; + if (a === "vec4") { + if (b === "mat2x4") return result("vec2"); + if (b === "mat3x4") return result("vec3"); + if (b === "vec4" || isMat4(b)) return result("vec4"); + error(); } -} -class LessThanEqual extends BinaryOp { - constructor({ a, b }) { - super({ - a, - b, - outTypeFunc: (aType, bType) => compareOutputType(aType, "lessThanEqual"), - outKey: "lessThanEqual" - }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.lessThanEqual === "bool") { - return [`${outputs.lessThanEqual} = ${inputs.a} <= ${inputs.b};`]; - } - return [ - `${outputs.lessThanEqual} = lessThanEqual(${inputs.a}, ${inputs.b});` - ]; - }; + if (b === "vec2") { + if (isMat2(a)) return result("vec2"); + if (a === "mat2x3") return result("vec3"); + if (a === "mat2x4") return result("vec4"); + error(); } -} -class GreaterThan extends BinaryOp { - constructor({ a, b }) { - super({ - a, - b, - outTypeFunc: (aType, bType) => compareOutputType(aType, "greaterThan"), - outKey: "greaterThan" - }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.greaterThan === "bool") { - return [`${outputs.greaterThan} = ${inputs.a} > ${inputs.b};`]; - } - return [ - `${outputs.greaterThan} = greaterThan(${inputs.a}, ${inputs.b});` - ]; - }; + if (b === "vec3") { + if (a === "mat3x2") return result("vec2"); + if (isMat3(a)) return result("vec3"); + if (a === "mat3x4") return result("vec4"); + error(); } -} -class GreaterThanEqual extends BinaryOp { - constructor({ a, b }) { - super({ - a, - b, - outTypeFunc: (aType, bType) => compareOutputType(aType, "greaterThanEqual"), - outKey: "greaterThanEqual" - }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.greaterThanEqual === "bool") { - return [`${outputs.greaterThanEqual} = ${inputs.a} >= ${inputs.b};`]; - } - return [ - `${outputs.greaterThanEqual} = greaterThanEqual(${inputs.a}, ${inputs.b});` - ]; - }; + if (b === "vec4") { + if (a === "mat4x2") return result("vec2"); + if (a === "mat4x3") return result("vec3"); + if (isMat4(a)) return result("vec4"); + error(); } -} -class Equal extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outTypeFunc: equalOutputType, outKey: "equal" }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.equal === "bool") { - return [`${outputs.equal} = ${inputs.a} == ${inputs.b};`]; - } - return [`${outputs.equal} = equal(${inputs.a}, ${inputs.b});`]; - }; + if (isMat2(a)) { + if (isMat2(b)) return result("mat2"); + if (b === "mat3x2") return result("mat3x2"); + if (b === "mat4x2") return result("mat4x2"); + error(); } -} -class NotEqual extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outTypeFunc: notEqualOutputType, outKey: "notEqual" }); - this.statements = ({ inputs, outputs }) => { - if (this.outTypes.notEqual === "bool") { - return [`${outputs.notEqual} = ${inputs.a} != ${inputs.b};`]; - } - return [`${outputs.notEqual} = notEqual(${inputs.a}, ${inputs.b});`]; - }; + if (a === "mat2x3") { + if (isMat2(b)) return result("mat2x3"); + if (b === "mat3x2") return result("mat3"); + if (b === "mat4x2") return result("mat4x3"); + error(); } -} -class Any extends UnaryOp { - constructor({ a }) { - super({ a, outTypeFunc: (aType) => "bool", outKey: "any" }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.any} = any(${inputs.a});`]; - }; + if (a === "mat2x4") { + if (isMat2(b)) return result("mat2x4"); + if (b === "mat3x2") return result("mat3x4"); + if (b === "mat4x2") return result("mat4"); + error(); } -} -class All extends UnaryOp { - constructor({ a }) { - super({ a, outTypeFunc: (aType) => "bool", outKey: "all" }); - this.statements = ({ inputs, outputs }) => { - return [`${outputs.all} = all(${inputs.a});`]; - }; + if (a === "mat3x2") { + if (b === "mat2x3") return result("mat2"); + if (isMat3(b)) return result("mat3x2"); + if (b === "mat4x3") return result("mat4x2"); + error(); } -} -class Select extends TrinaryOp { - constructor({ - cond, - t, - f - }) { - super({ - a: cond, - b: t, - c: f, - outKey: "select", - outTypeFunc: (aType, bType, cType) => bType - }); - this.statements = ({ inputs, outputs }) => { - const { a: cond2, b: t2, c: f2 } = inputs; - return [`${outputs.select} = (${cond2}) ? (${t2}) : (${f2});`]; - }; + if (isMat3(a)) { + if (b === "mat2x3") return result("mat2x3"); + if (isMat3(b)) return result("mat3"); + if (b === "mat4x3") return result("mat4x3"); + error(); } -} -function compareOutputType(type, operator) { - if (isScalarType(type)) { - return "bool"; + if (a === "mat3x4") { + if (b === "mat2x3") return result("mat2x4"); + if (isMat3(b)) return result("mat3x4"); + if (b === "mat4x3") return result("mat4"); + error(); } - if (type === "ivec2" || type === "uvec2" || type === "vec2") { - return "bvec2"; + if (a === "mat4x2") { + if (b === "mat2x4") return result("mat2"); + if (b === "mat3x4") return result("mat3x2"); + if (isMat4(b)) return result("mat4x2"); + error(); } - if (type === "ivec3" || type === "uvec3" || type === "vec3") { - return "bvec3"; + if (a === "mat4x3") { + if (b === "mat2x4") return result("mat2x3"); + if (b === "mat3x4") return result("mat3"); + if (isMat4(b)) return result("mat4x3"); + error(); } - if (type === "ivec4" || type === "uvec4" || type === "vec4") { - return "bvec4"; + if (isMat4(a)) { + if (b === "mat2x4") return result("mat2x4"); + if (b === "mat3x4") return result("mat3x4"); + if (isMat4(b)) return result("mat4"); + error(); } - throw new Error(`Invalid ${operator} type: ${type}`); + throw new Error(`Invalid mul types: ${a}, ${b}`); } -function equalOutputType(type, operator = "equal") { - if (isScalarType(type)) { - return "bool"; - } - if (isBoolType(type)) { - return type; - } - if (type === "ivec2" || type === "uvec2" || type === "vec2") { - return "bvec2"; - } - if (type === "ivec3" || type === "uvec3" || type === "vec3") { - return "bvec3"; +function divOutputType(a, b) { + return addOutputType(a, b, "div"); +} +function imodOutputType(a, b) { + if (a === b) return a; + if (a === "int") { + if (isIntType(b)) return b; + } else if (b === "int") { + if (isIntType(a)) return a; + } else if (a === "uint") { + if (isUintType(b)) return b; + } else if (b === "uint") { + if (isUintType(a)) return a; } - if (type === "ivec4" || type === "uvec4" || type === "vec4") { - return "bvec4"; + throw new Error(`Invalid imod types: ${a}, ${b}`); +} +function modOutputType(a, b) { + if (a === b || b === "float") return a; + throw new Error(`Invalid mod types: ${a}, ${b}`); +} +function modfOutputType(a) { + return a; +} +function negOutputType(a) { + return a; +} +function absOutputType(a) { + return a; +} +function signOutputType(a) { + return a; +} +function floorOutputType(a) { + return a; +} +function ceilOutputType(a) { + return a; +} +function truncOutputType(a) { + return a; +} +function roundOutputType(a) { + return a; +} +function fractOutputType(a) { + return a; +} +function powOutputType(a) { + return a; +} +function expOutputType(a) { + return a; +} +function exp2OutputType(a) { + return a; +} +function logOutputType(a) { + return a; +} +function log2OutputType(a) { + return a; +} +function sqrOutputType(a) { + return a; +} +function sqrtOutputType(a) { + return a; +} +function inversesqrtOutputType(a) { + return a; +} +function minOutputType(a, b, operation = "min") { + if (a === b) return a; + if (b === "float") { + if (isFloatType(a)) return a; + } else if (b === "int") { + if (isIntType(a)) return a; + } else if (b === "uint") { + if (isUintType(a)) return a; } - throw new Error(`Invalid ${operator} type: ${type}`); + throw new Error(`Invalid ${operation} types: ${a}, ${b}`); } -function notEqualOutputType(type) { - return equalOutputType(type, "notEqual"); +function maxOutputType(a, b) { + return minOutputType(a, b, "max"); } -function compXorOutputType(type) { - if (isBoolType(type)) { - return "bool"; +function clampOutputType(a, b, _c) { + if (b === "float") { + if (isFloatType(a)) return a; + } else if (b === "int") { + if (isIntType(a)) return a; + } else if (b === "uint") { + if (isUintType(a)) return a; } - if (isIntType(type)) { - return "int"; + throw new Error(`Invalid clamp types: ${a}, ${b}`); +} +function mixOutputType(a, b, c) { + if (c === a) return a; + if (c === "float") return a; + if (c === "bool" && a === "float") return a; + if (c === "bvec2" && a === "vec2") return a; + if (c === "bvec3" && a === "vec3") return a; + if (c === "bvec4" && a === "vec4") return a; + throw new Error(`Invalid mix types: ${a}, ${b}, ${c}`); +} +function stepOutputType(a, b) { + if (a === b || b === "float") return b; + throw new Error(`Invalid step types: ${a}, ${b}`); +} +function smoothstepOutputType(a, b, c) { + if (a === b) { + if (a === c || a === "float") return c; } - if (isUintType(type)) { - return "uint"; + throw new Error(`Invalid smoothstep types: ${a}, ${b}, ${c}`); +} +function isNanOutputType(a, operation = "isNan") { + if (a === "float") return "bool"; + if (a === "vec2") return "bvec2"; + if (a === "vec3") return "bvec3"; + if (a === "vec4") return "bvec4"; + throw new Error(`Invalid ${operation} types: ${a}`); +} +function isInfOutputType(a) { + return isNanOutputType(a, "isInf"); +} +const add = (a, b) => new Add({ a, b }); +const sub = (a, b) => new Sub({ a, b }); +const mul = (a, b) => new Mul({ a, b }); +const div = (a, b) => new Div({ a, b }); +const imod = (a, b) => new IMod({ a, b }); +const mod = (a, b) => new Mod({ a, b }); +const modf = (a) => new Modf({ a }).outputs; +const neg = (a) => new Neg({ a }); +const abs = (a) => new Abs({ a }); +const sign = (a) => new Sign({ a }); +const floor = (a) => new Floor({ a }); +const ceil = (a) => new Ceil({ a }); +const trunc = (a) => new Trunc({ a }); +const round = (a) => new Round({ a }); +const fract = (a) => new Fract({ a }); +const pow = (a, b) => new Pow({ a, b }); +const exp = (a) => new Exp({ a }); +const exp2 = (a) => new Exp2({ a }); +const log = (a) => new Log({ a }); +const log2 = (a) => new Log2({ a }); +const sqr = (a) => new Sqr({ a }); +const sqrt = (a) => new Sqrt({ a }); +const inversesqrt = (a) => new InverseSqrt({ a }); +const min = (a, b) => new Min({ a, b }); +const max = (a, b) => new Max({ a, b }); +const clamp = (a, min2, max2) => new Clamp({ a, min: min2, max: max2 }); +const mix = (a, b, t) => new Mix({ a, b, t }); +const step = (edge, x) => new Step({ edge, x }); +const smoothstep = (edge0, edge1, x) => new Smoothstep({ edge0, edge1, x }); +const isNan = (a) => new IsNan({ a }); +const isInf = (a) => new IsInf({ a }); +class Add extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "sum", outTypeFunc: addOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.sum} = ${inputs.a} + ${inputs.b};`]; + }; } - throw new Error(`Invalid compXor type: ${type}`); } -class CompXor extends UnaryOp { - constructor({ a }) { - const outType = compXorOutputType(valType(a)); - super({ a, outTypeFunc: (aType) => outType, outKey: "compXor" }); +class Sub extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "difference", outTypeFunc: subOutputType }); this.statements = ({ inputs, outputs }) => { - if (isScalarType(this.outTypes.compXor)) { - return [`${outputs.compXor} = ${inputs.a};`]; - } - const components = isVector2Type(outType) ? ["x", "y"] : isVector3Type(outType) ? ["x", "y", "z"] : ["x", "y", "z", "w"]; - const operands = components.map((c) => `${inputs.a}.${c}`); - const operator = isBoolType(outType) ? "^^" : "^"; - return [`${outputs.compXor} = ${operands.join(` ${operator} `)};`]; + return [`${outputs.difference} = ${inputs.a} - ${inputs.b};`]; }; } } -class Shr extends BinaryOp { +class Mul extends BinaryOp { constructor({ a, b }) { - super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "shr" }); + super({ a, b, outKey: "product", outTypeFunc: mulOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.shr} = ${inputs.a} >> ${inputs.b};`]; + return [`${outputs.product} = ${inputs.a} * ${inputs.b};`]; }; } } -class Shl extends BinaryOp { +class Div extends BinaryOp { constructor({ a, b }) { - super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "shl" }); + super({ a, b, outKey: "quotient", outTypeFunc: divOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.shl} = ${inputs.a} << ${inputs.b};`]; + return [`${outputs.quotient} = ${inputs.a} / ${inputs.b};`]; }; } } -const bool = (value) => new Bool({ value }); -const int = (value) => new Int({ value }); -const uint = (value) => new Uint({ value }); -const float = (value) => new Float({ value }); -const bvec2 = (value) => new BVec2({ value }); -const bvec3 = (value) => new BVec3({ value }); -const bvec4 = (value) => new BVec4({ value }); -const ivec2 = (value) => new IVec2({ value }); -const ivec3 = (value) => new IVec3({ value }); -const ivec4 = (value) => new IVec4({ value }); -const uvec2 = (value) => new UVec2({ value }); -const uvec3 = (value) => new UVec3({ value }); -const uvec4 = (value) => new UVec4({ value }); -const vec2 = (value) => new Vec2({ value }); -const vec3 = (value) => new Vec3({ value }); -const vec4 = (value) => new Vec4({ value }); -const mat2 = (value) => new Mat2({ value }); -const mat3 = (value) => new Mat3({ value }); -const mat4 = (value) => new Mat4({ value }); -const floatBitsToInt = (value) => new FloatBitsToInt({ value }); -const floatBitsToUint = (value) => new FloatBitsToUint({ value }); -const intBitsToFloat = (value) => new IntBitsToFloat({ value }); -const uintBitsToFloat = (value) => new UintBitsToFloat({ value }); -const packSnorm2x16 = (value) => new PackSnorm2x16({ value }); -const unpackSnorm2x16 = (value) => new UnpackSnorm2x16({ value }); -const packUnorm2x16 = (value) => new PackUnorm2x16({ value }); -const unpackUnorm2x16 = (value) => new UnpackUnorm2x16({ value }); -const packHalf2x16 = (value) => new PackHalf2x16({ value }); -const unpackHalf2x16 = (value) => new UnpackHalf2x16({ value }); -const uintToRgba8 = (value) => new UintToRgba8({ value }); -class SimpleCast extends UnaryOp { - constructor({ - value, - outType, - outKey - }) { - super({ a: value, outTypeFunc: () => outType, outKey }); - this.statements = ({ inputs, outputs }) => [ - `${outputs[outKey]} = ${typeLiteral(outType)}(${inputs.a});` - ]; +class IMod extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "remainder", outTypeFunc: imodOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.remainder} = ${inputs.a} % ${inputs.b};`]; + }; } } -class Bool extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "bool", outKey: "bool" }); +class Mod extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "remainder", outTypeFunc: modOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.remainder} = mod(${inputs.a}, ${inputs.b});`]; + }; } } -class Int extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "int", outKey: "int" }); - } -} -class Uint extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "uint", outKey: "uint" }); - } -} -class Float extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "float", outKey: "float" }); - } -} -class BVec2 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "bvec2", outKey: "bvec2" }); - } -} -class BVec3 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "bvec3", outKey: "bvec3" }); - } -} -class BVec4 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "bvec4", outKey: "bvec4" }); - } -} -class IVec2 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "ivec2", outKey: "ivec2" }); - } -} -class IVec3 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "ivec3", outKey: "ivec3" }); - } -} -class IVec4 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "ivec4", outKey: "ivec4" }); - } -} -class UVec2 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "uvec2", outKey: "uvec2" }); - } -} -class UVec3 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "uvec3", outKey: "uvec3" }); +class Modf extends Dyno { + constructor({ a }) { + const inTypes = { a: valType(a) }; + const outType = modfOutputType(inTypes.a); + const outTypes = { + fract: outType, + integer: outType + }; + super({ inTypes, outTypes, inputs: { a } }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.fract} = modf(${inputs.a}, ${outputs.integer});`]; + }; } } -class UVec4 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "uvec4", outKey: "uvec4" }); +class Neg extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "neg", outTypeFunc: negOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.neg} = -${inputs.a};`]; + }; } } -class Vec2 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "vec2", outKey: "vec2" }); +class Abs extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "abs", outTypeFunc: absOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.abs} = abs(${inputs.a});`]; + }; } } -class Vec3 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "vec3", outKey: "vec3" }); +class Sign extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "sign", outTypeFunc: signOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.sign} = sign(${inputs.a});`]; + }; } } -class Vec4 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "vec4", outKey: "vec4" }); +class Floor extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "floor", outTypeFunc: floorOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.floor} = floor(${inputs.a});`]; + }; } } -class Mat2 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "mat2", outKey: "mat2" }); +class Ceil extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "ceil", outTypeFunc: ceilOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.ceil} = ceil(${inputs.a});`]; + }; } } -class Mat3 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "mat3", outKey: "mat3" }); +class Trunc extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "trunc", outTypeFunc: truncOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.trunc} = trunc(${inputs.a});`]; + }; } } -class Mat4 extends SimpleCast { - constructor({ - value - }) { - super({ value, outType: "mat4", outKey: "mat4" }); +class Round extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "round", outTypeFunc: roundOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.round} = round(${inputs.a});`]; + }; } } -class FloatBitsToInt extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "int", outTypeFunc: () => "int" }); +class Fract extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "fract", outTypeFunc: fractOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.int} = floatBitsToInt(${inputs.a});`]; + return [`${outputs.fract} = fract(${inputs.a});`]; }; } } -class FloatBitsToUint extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); +class Pow extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "power", outTypeFunc: powOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.uint} = floatBitsToUint(${inputs.a});`]; + return [`${outputs.power} = pow(${inputs.a}, ${inputs.b});`]; }; } } -class IntBitsToFloat extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "float", outTypeFunc: () => "float" }); +class Exp extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "exp", outTypeFunc: expOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.float} = intBitsToFloat(${inputs.a});`]; + return [`${outputs.exp} = exp(${inputs.a});`]; }; } } -class UintBitsToFloat extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "float", outTypeFunc: () => "float" }); +class Exp2 extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "exp2", outTypeFunc: exp2OutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.float} = uintBitsToFloat(${inputs.a});`]; + return [`${outputs.exp2} = exp2(${inputs.a});`]; }; } } -class PackSnorm2x16 extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); +class Log extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "log", outTypeFunc: logOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.uint} = packSnorm2x16(${inputs.a});`]; + return [`${outputs.log} = log(${inputs.a});`]; }; } } -class UnpackSnorm2x16 extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "vec2", outTypeFunc: () => "vec2" }); +class Log2 extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "log2", outTypeFunc: log2OutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.vec2} = unpackSnorm2x16(${inputs.a});`]; + return [`${outputs.log2} = log2(${inputs.a});`]; }; } } -class PackUnorm2x16 extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); +class Sqr extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "sqr", outTypeFunc: sqrOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.uint} = packUnorm2x16(${inputs.a});`]; + return [`${outputs.sqr} = ${inputs.a} * ${inputs.a};`]; }; } } -class UnpackUnorm2x16 extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "vec2", outTypeFunc: () => "vec2" }); +class Sqrt extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "sqrt", outTypeFunc: sqrtOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.vec2} = unpackUnorm2x16(${inputs.a});`]; + return [`${outputs.sqrt} = sqrt(${inputs.a});`]; }; } } -class PackHalf2x16 extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); +class InverseSqrt extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "inversesqrt", outTypeFunc: inversesqrtOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.uint} = packHalf2x16(${inputs.a});`]; + return [`${outputs.inversesqrt} = inversesqrt(${inputs.a});`]; }; } } -class UnpackHalf2x16 extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "vec2", outTypeFunc: () => "vec2" }); +class Min extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "min", outTypeFunc: minOutputType }); this.statements = ({ inputs, outputs }) => { - return [`${outputs.vec2} = unpackHalf2x16(${inputs.a});`]; + return [`${outputs.min} = min(${inputs.a}, ${inputs.b});`]; }; } } -class UintToRgba8 extends UnaryOp { - constructor({ value }) { - super({ a: value, outKey: "rgba8", outTypeFunc: () => "vec4" }); +class Max extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "max", outTypeFunc: maxOutputType }); this.statements = ({ inputs, outputs }) => { - return [ - `uvec4 uRgba = uvec4(${inputs.a} & 0xffu, (${inputs.a} >> 8u) & 0xffu, (${inputs.a} >> 16u) & 0xffu, (${inputs.a} >> 24u) & 0xffu);`, - `${outputs.rgba8} = vec4(uRgba) / 255.0;` - ]; + return [`${outputs.max} = max(${inputs.a}, ${inputs.b});`]; }; } } -const length = (a) => new Length({ a }); -const distance = (a, b) => new Distance({ a, b }); -const dot = (a, b) => new Dot({ a, b }); -const cross = (a, b) => new Cross({ a, b }); -const normalize = (a) => new Normalize({ a }); -const faceforward = (a, b, c) => new FaceForward({ a, b, c }); -const reflectVec = (incident, normal) => new ReflectVec({ incident, normal }); -const refractVec = (incident, normal, eta) => new RefractVec({ incident, normal, eta }); -const split = (vector) => new Split({ vector }); -const combine = ({ - vector, - vectorType, - x, - y, - z, - w, - r, - g, - b, - a -}) => new Combine({ vector, vectorType, x, y, z, w, r, g, b, a }); -const projectH = (a) => new ProjectH({ a }); -const extendVec = (a, b) => new ExtendVec({ a, b }); -const swizzle = (a, select2) => new Swizzle({ vector: a, select: select2 }); -const compMult = (a, b) => new CompMult({ a, b }); -const outer = (a, b) => new Outer({ a, b }); -const transpose = (a) => new Transpose({ a }); -const determinant = (a) => new Determinant({ a }); -const inverse = (a) => new Inverse({ a }); -class Length extends UnaryOp { - constructor({ a }) { - super({ a, outTypeFunc: (aType) => "float", outKey: "length" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.length} = length(${inputs.a});` - ]; +class Clamp extends TrinaryOp { + constructor({ + a, + min: min2, + max: max2 + }) { + super({ + a, + b: min2, + c: max2, + outKey: "clamp", + outTypeFunc: clampOutputType + }); + this.statements = ({ inputs, outputs }) => { + const { a: a2, b: min3, c: max3 } = inputs; + return [`${outputs.clamp} = clamp(${a2}, ${min3}, ${max3});`]; + }; } } -class Distance extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "distance", outTypeFunc: (aType, bType) => "float" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.distance} = distance(${inputs.a}, ${inputs.b});` - ]; +class Mix extends TrinaryOp { + constructor({ a, b, t }) { + super({ a, b, c: t, outKey: "mix", outTypeFunc: mixOutputType }); + this.statements = ({ inputs, outputs }) => { + const { a: a2, b: b22, c: t2 } = inputs; + return [`${outputs.mix} = mix(${a2}, ${b22}, ${t2});`]; + }; } } -class Dot extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "dot", outTypeFunc: (aType, bType) => "float" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.dot} = dot(${inputs.a}, ${inputs.b});` - ]; +class Step extends BinaryOp { + constructor({ edge, x }) { + super({ + a: edge, + b: x, + outKey: "step", + outTypeFunc: stepOutputType + }); + this.statements = ({ inputs, outputs }) => { + const { a: edge2, b: x2 } = inputs; + return [`${outputs.step} = step(${edge2}, ${x2});`]; + }; } } -class Cross extends BinaryOp { - constructor({ a, b }) { - super({ a, b, outKey: "cross", outTypeFunc: (aType, bType) => "vec3" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.cross} = cross(${inputs.a}, ${inputs.b});` - ]; +class Smoothstep extends TrinaryOp { + constructor({ + edge0, + edge1, + x + }) { + super({ + a: edge0, + b: edge1, + c: x, + outKey: "smoothstep", + outTypeFunc: smoothstepOutputType + }); + this.statements = ({ inputs, outputs }) => { + const { a: edge02, b: edge12, c: x2 } = inputs; + return [`${outputs.smoothstep} = smoothstep(${edge02}, ${edge12}, ${x2});`]; + }; } } -class Normalize extends UnaryOp { +class IsNan extends UnaryOp { constructor({ a }) { - super({ a, outTypeFunc: (aType) => aType, outKey: "normalize" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.normalize} = normalize(${inputs.a});` - ]; + super({ a, outKey: "isNan", outTypeFunc: isNanOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.isNan} = isNan(${inputs.a});`]; + }; } } -function projectHOutputType(type) { - if (type === "vec3") { - return "vec2"; - } - if (type === "vec4") { - return "vec3"; +class IsInf extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "isInf", outTypeFunc: isInfOutputType }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.isInf} = isInf(${inputs.a});`]; + }; } - throw new Error("Invalid type"); } -class ProjectH extends UnaryOp { - constructor({ a }) { - super({ - a, - outTypeFunc: (aType) => projectHOutputType(aType), - outKey: "projected" - }); +const and = (a, b) => new And({ a, b }); +const or = (a, b) => new Or({ a, b }); +const xor = (a, b) => new Xor({ a, b }); +const not = (a) => new Not({ a }); +const shr = (a, b) => new Shr({ a, b }); +const shl = (a, b) => new Shl({ a, b }); +const lessThan = (a, b) => new LessThan({ a, b }); +const lessThanEqual = (a, b) => new LessThanEqual({ a, b }); +const greaterThan = (a, b) => new GreaterThan({ a, b }); +const greaterThanEqual = (a, b) => new GreaterThanEqual({ a, b }); +const equal = (a, b) => new Equal({ a, b }); +const notEqual = (a, b) => new NotEqual({ a, b }); +const any = (a) => new Any({ a }); +const all = (a) => new All({ a }); +const select = (cond, t, f) => new Select({ cond, t, f }); +const compXor = (a) => new CompXor({ a }); +class And extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "and" }); this.statements = ({ inputs, outputs }) => { - if (this.inTypes.a === "vec3") { - return [`${outputs.projected} = ${inputs.a}.xy / ${inputs.a}.z;`]; - } - if (this.inTypes.a === "vec4") { - return [`${outputs.projected} = ${inputs.a}.xyz / ${inputs.a}.w;`]; + if (this.outTypes.and === "bool") { + return [`${outputs.and} = ${inputs.a} && ${inputs.b};`]; } - throw new Error("Invalid type"); + return [`${outputs.and} = ${inputs.a} & ${inputs.b};`]; }; } } -function extendVecOutputType(type) { - if (type === "float") return "vec2"; - if (type === "vec2") return "vec3"; - if (type === "vec3") return "vec4"; - throw new Error("Invalid type"); +class Or extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "or" }); + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.or === "bool") { + return [`${outputs.or} = ${inputs.a} || ${inputs.b};`]; + } + return [`${outputs.or} = ${inputs.a} | ${inputs.b};`]; + }; + } } -class ExtendVec extends BinaryOp { +class Xor extends BinaryOp { constructor({ a, b }) { - const type = valType(a); - const outType = extendVecOutputType(type); - super({ a, b, outKey: "extend", outTypeFunc: () => outType }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.extend} = ${outType}(${inputs.a}, ${inputs.b});` - ]; + super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "xor" }); + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.xor === "bool") { + return [`${outputs.xor} = ${inputs.a} ^^ ${inputs.b};`]; + } + return [`${outputs.xor} = ${inputs.a} ^ ${inputs.b};`]; + }; } } -class FaceForward extends TrinaryOp { - constructor({ a, b, c }) { +class Not extends UnaryOp { + constructor({ a }) { + super({ a, outTypeFunc: (aType) => aType, outKey: "not" }); + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.not === "bool") { + return [`${outputs.not} = !${inputs.a};`]; + } + return [`${outputs.not} = not(${inputs.a});`]; + }; + } +} +class LessThan extends BinaryOp { + constructor({ a, b }) { super({ a, b, - c, - outKey: "forward", - outTypeFunc: (aType, bType, cType) => aType + outTypeFunc: (aType, bType) => compareOutputType(aType, "lessThan"), + outKey: "lessThan" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.forward} = faceforward(${inputs.a}, ${inputs.b}, ${inputs.c});` - ]; + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.lessThan === "bool") { + return [`${outputs.lessThan} = ${inputs.a} < ${inputs.b};`]; + } + return [`${outputs.lessThan} = lessThan(${inputs.a}, ${inputs.b});`]; + }; } } -class ReflectVec extends BinaryOp { - constructor({ - incident, - normal - }) { +class LessThanEqual extends BinaryOp { + constructor({ a, b }) { super({ - a: incident, - b: normal, - outKey: "reflection", - outTypeFunc: (aType, bType) => aType + a, + b, + outTypeFunc: (aType, bType) => compareOutputType(aType, "lessThanEqual"), + outKey: "lessThanEqual" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.reflection} = reflect(${inputs.a}, ${inputs.b});` - ]; + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.lessThanEqual === "bool") { + return [`${outputs.lessThanEqual} = ${inputs.a} <= ${inputs.b};`]; + } + return [ + `${outputs.lessThanEqual} = lessThanEqual(${inputs.a}, ${inputs.b});` + ]; + }; } } -class RefractVec extends TrinaryOp { - constructor({ - incident, - normal, - eta - }) { +class GreaterThan extends BinaryOp { + constructor({ a, b }) { super({ - a: incident, - b: normal, - c: eta, - outKey: "refraction", - outTypeFunc: (aType, bType, cType) => aType + a, + b, + outTypeFunc: (aType, bType) => compareOutputType(aType, "greaterThan"), + outKey: "greaterThan" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.refraction} = refract(${inputs.a}, ${inputs.b}, ${inputs.c});` - ]; + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.greaterThan === "bool") { + return [`${outputs.greaterThan} = ${inputs.a} > ${inputs.b};`]; + } + return [ + `${outputs.greaterThan} = greaterThan(${inputs.a}, ${inputs.b});` + ]; + }; } } -class CompMult extends BinaryOp { +class GreaterThanEqual extends BinaryOp { constructor({ a, b }) { - super({ a, b, outKey: "product", outTypeFunc: (aType, bType) => aType }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.product} = matrixCompMult(${a}, ${b});` - ]; + super({ + a, + b, + outTypeFunc: (aType, bType) => compareOutputType(aType, "greaterThanEqual"), + outKey: "greaterThanEqual" + }); + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.greaterThanEqual === "bool") { + return [`${outputs.greaterThanEqual} = ${inputs.a} >= ${inputs.b};`]; + } + return [ + `${outputs.greaterThanEqual} = greaterThanEqual(${inputs.a}, ${inputs.b});` + ]; + }; } } -function outerOutputType(aType, bType) { - if (aType === "vec2") { - if (bType === "vec2") return "mat2"; - if (bType === "vec3") return "mat3x2"; - if (bType === "vec4") return "mat4x2"; - } - if (aType === "vec3") { - if (bType === "vec2") return "mat2x3"; - if (bType === "vec3") return "mat3"; - if (bType === "vec4") return "mat4x3"; - } - if (aType === "vec4") { - if (bType === "vec2") return "mat2x4"; - if (bType === "vec3") return "mat3x4"; - if (bType === "vec4") return "mat4"; +class Equal extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outTypeFunc: equalOutputType, outKey: "equal" }); + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.equal === "bool") { + return [`${outputs.equal} = ${inputs.a} == ${inputs.b};`]; + } + return [`${outputs.equal} = equal(${inputs.a}, ${inputs.b});`]; + }; } - throw new Error(`Invalid outer type: ${aType}, ${bType}`); } -class Outer extends BinaryOp { +class NotEqual extends BinaryOp { constructor({ a, b }) { - super({ a, b, outKey: "outer", outTypeFunc: outerOutputType }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.outer} = outerProduct(${inputs.a}, ${inputs.b});` - ]; + super({ a, b, outTypeFunc: notEqualOutputType, outKey: "notEqual" }); + this.statements = ({ inputs, outputs }) => { + if (this.outTypes.notEqual === "bool") { + return [`${outputs.notEqual} = ${inputs.a} != ${inputs.b};`]; + } + return [`${outputs.notEqual} = notEqual(${inputs.a}, ${inputs.b});`]; + }; } } -function transposeOutputType(type) { - if (type === "mat2") return "mat2"; - if (type === "mat3") return "mat3"; - if (type === "mat4") return "mat4"; - if (type === "mat2x2") return "mat2x2"; - if (type === "mat2x3") return "mat3x2"; - if (type === "mat2x4") return "mat4x2"; - if (type === "mat3x2") return "mat2x3"; - if (type === "mat3x3") return "mat3x3"; - if (type === "mat3x4") return "mat4x3"; - if (type === "mat4x2") return "mat2x4"; - if (type === "mat4x3") return "mat3x4"; - if (type === "mat4x4") return "mat4x4"; - throw new Error(`Invalid transpose type: ${type}`); -} -class Transpose extends UnaryOp { +class Any extends UnaryOp { constructor({ a }) { - super({ a, outKey: "transpose", outTypeFunc: transposeOutputType }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.transpose} = transpose(${inputs.a});` - ]; + super({ a, outTypeFunc: (aType) => "bool", outKey: "any" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.any} = any(${inputs.a});`]; + }; } } -class Determinant extends UnaryOp { +class All extends UnaryOp { constructor({ a }) { - super({ a, outKey: "det", outTypeFunc: (aType) => "float" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.det} = determinant(${inputs.a});` - ]; + super({ a, outTypeFunc: (aType) => "bool", outKey: "all" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.all} = all(${inputs.a});`]; + }; } } -class Inverse extends UnaryOp { - constructor({ a }) { - super({ a, outKey: "inverse", outTypeFunc: (aType) => aType }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.inverse} = inverse(${a});` - ]; +class Select extends TrinaryOp { + constructor({ + cond, + t, + f + }) { + super({ + a: cond, + b: t, + c: f, + outKey: "select", + outTypeFunc: (aType, bType, cType) => bType + }); + this.statements = ({ inputs, outputs }) => { + const { a: cond2, b: t2, c: f2 } = inputs; + return [`${outputs.select} = (${cond2}) ? (${t2}) : (${f2});`]; + }; } } -function splitOutTypes(type) { - const result = (value) => value; - switch (type) { - case "vec2": - return result({ x: "float", y: "float", r: "float", g: "float" }); - case "vec3": - return result({ - x: "float", - y: "float", - z: "float", - r: "float", - g: "float", - b: "float" - }); - case "vec4": - return result({ - x: "float", - y: "float", - z: "float", - w: "float", - r: "float", - g: "float", - b: "float", - a: "float" - }); - case "ivec2": - return result({ x: "int", y: "int", r: "int", g: "int" }); - case "ivec3": - return result({ - x: "int", - y: "int", - z: "int", - r: "int", - g: "int", - b: "int" - }); - case "ivec4": - return result({ - x: "int", - y: "int", - z: "int", - w: "int", - r: "int", - g: "int", - b: "int", - a: "int" - }); - case "uvec2": - return result({ x: "uint", y: "uint", r: "uint", g: "uint" }); - case "uvec3": - return result({ - x: "uint", - y: "uint", - z: "uint", - r: "uint", - g: "uint", - b: "uint" - }); - case "uvec4": - return result({ - x: "uint", - y: "uint", - z: "uint", - w: "uint", - r: "uint", - g: "uint", - b: "uint", - a: "uint" - }); - default: - throw new Error(`Invalid vector type: ${type}`); +function compareOutputType(type, operator) { + if (isScalarType(type)) { + return "bool"; } + if (type === "ivec2" || type === "uvec2" || type === "vec2") { + return "bvec2"; + } + if (type === "ivec3" || type === "uvec3" || type === "vec3") { + return "bvec3"; + } + if (type === "ivec4" || type === "uvec4" || type === "vec4") { + return "bvec4"; + } + throw new Error(`Invalid ${operator} type: ${type}`); } -class Split extends Dyno { - constructor({ vector }) { - const type = valType(vector); - const inTypes = { vector: type }; - const outTypes = splitOutTypes(inTypes.vector); - super({ inTypes, outTypes, inputs: { vector } }); - this.statements = ({ inputs, outputs }) => { - const { x, y, z, w, r, g, b, a } = outputs; - const { vector: vector2 } = inputs; - return [ - x ? `${x} = ${vector2}.x;` : null, - y ? `${y} = ${vector2}.y;` : null, - z ? `${z} = ${vector2}.z;` : null, - w ? `${w} = ${vector2}.w;` : null, - r ? `${r} = ${vector2}.r;` : null, - g ? `${g} = ${vector2}.g;` : null, - b ? `${b} = ${vector2}.b;` : null, - a ? `${a} = ${vector2}.a;` : null - ].filter(Boolean); - }; +function equalOutputType(type, operator = "equal") { + if (isScalarType(type)) { + return "bool"; + } + if (isBoolType(type)) { + return type; + } + if (type === "ivec2" || type === "uvec2" || type === "vec2") { + return "bvec2"; + } + if (type === "ivec3" || type === "uvec3" || type === "vec3") { + return "bvec3"; + } + if (type === "ivec4" || type === "uvec4" || type === "vec4") { + return "bvec4"; } + throw new Error(`Invalid ${operator} type: ${type}`); } -class Combine extends Dyno { - constructor({ - vector, - vectorType, - x, - y, - z, - w, - r, - g, - b, - a - }) { - if (!vector && !vectorType) { - throw new Error("Either vector or vectorType must be provided"); - } - const vType = vectorType ?? valType(vector); - const elType = vectorElementType(vType); - const dim = vectorDim(vType); - const inTypes = { - vector: vType, - x: elType, - y: elType, - r: elType, - g: elType - }; - const inputs = { vector, x, y, r, g }; - if (dim >= 3) { - Object.assign(inTypes, { z: elType, b: elType }); - Object.assign(inputs, { z, b }); - } - if (dim >= 4) { - Object.assign(inTypes, { w: elType, a: elType }); - Object.assign(inputs, { w, a }); - } - super({ inTypes, outTypes: { vector: vType }, inputs }); - this.statements = ({ inputs: inputs2, outputs }) => { - const { vector: vector2 } = outputs; - const { - vector: input, - x: x2, - y: y2, - z: z2, - w: w2, - r: r2, - g: g2, - b: b22, - a: a2 - } = inputs2; - const statements = [ - `${vector2}.x = ${x2 ?? r2 ?? (input ? `${input}.x` : literalZero(elType))};`, - `${vector2}.y = ${y2 ?? g2 ?? (input ? `${input}.y` : literalZero(elType))};` - ]; - if (dim >= 3) - statements.push( - `${vector2}.z = ${z2 ?? b22 ?? (input ? `${input}.z` : literalZero(elType))};` - ); - if (dim >= 4) - statements.push( - `${vector2}.w = ${w2 ?? a2 ?? (input ? `${input}.w` : literalZero(elType))};` - ); - return statements; - }; +function notEqualOutputType(type) { + return equalOutputType(type, "notEqual"); +} +function compXorOutputType(type) { + if (isBoolType(type)) { + return "bool"; } - dynoOut() { - return new DynoOutput( - this, - "vector" - ); + if (isIntType(type)) { + return "int"; + } + if (isUintType(type)) { + return "uint"; } + throw new Error(`Invalid compXor type: ${type}`); } -function swizzleOutputType(type, swizzle2) { - let result = null; - if (isFloatType(type)) { - result = swizzle2.length === 1 ? "float" : swizzle2.length === 2 ? "vec2" : swizzle2.length === 3 ? "vec3" : swizzle2.length === 4 ? "vec4" : null; - } else if (isIntType(type)) { - result = swizzle2.length === 1 ? "int" : swizzle2.length === 2 ? "ivec2" : swizzle2.length === 3 ? "ivec3" : swizzle2.length === 4 ? "ivec4" : null; - } else if (isUintType(type)) { - result = swizzle2.length === 1 ? "uint" : swizzle2.length === 2 ? "uvec2" : swizzle2.length === 3 ? "uvec3" : swizzle2.length === 4 ? "uvec4" : null; +class CompXor extends UnaryOp { + constructor({ a }) { + const outType = compXorOutputType(valType(a)); + super({ a, outTypeFunc: (aType) => outType, outKey: "compXor" }); + this.statements = ({ inputs, outputs }) => { + if (isScalarType(this.outTypes.compXor)) { + return [`${outputs.compXor} = ${inputs.a};`]; + } + const components = isVector2Type(outType) ? ["x", "y"] : isVector3Type(outType) ? ["x", "y", "z"] : ["x", "y", "z", "w"]; + const operands = components.map((c) => `${inputs.a}.${c}`); + const operator = isBoolType(outType) ? "^^" : "^"; + return [`${outputs.compXor} = ${operands.join(` ${operator} `)};`]; + }; } - if (result == null) { - throw new Error(`Invalid swizzle: ${swizzle2}`); +} +class Shr extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "shr" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.shr} = ${inputs.a} >> ${inputs.b};`]; + }; } - return result; } -class Swizzle extends UnaryOp { - constructor({ vector, select: select2 }) { - super({ - a: vector, - outKey: "swizzle", - outTypeFunc: (aType) => swizzleOutputType(aType, select2) - }); +class Shl extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outTypeFunc: (aType, bType) => aType, outKey: "shl" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.shl} = ${inputs.a} << ${inputs.b};`]; + }; + } +} +const bool = (value) => new Bool({ value }); +const int = (value) => new Int({ value }); +const uint = (value) => new Uint({ value }); +const float = (value) => new Float({ value }); +const bvec2 = (value) => new BVec2({ value }); +const bvec3 = (value) => new BVec3({ value }); +const bvec4 = (value) => new BVec4({ value }); +const ivec2 = (value) => new IVec2({ value }); +const ivec3 = (value) => new IVec3({ value }); +const ivec4 = (value) => new IVec4({ value }); +const uvec2 = (value) => new UVec2({ value }); +const uvec3 = (value) => new UVec3({ value }); +const uvec4 = (value) => new UVec4({ value }); +const vec2 = (value) => new Vec2({ value }); +const vec3 = (value) => new Vec3({ value }); +const vec4 = (value) => new Vec4({ value }); +const mat2 = (value) => new Mat2({ value }); +const mat3 = (value) => new Mat3({ value }); +const mat4 = (value) => new Mat4({ value }); +const floatBitsToInt = (value) => new FloatBitsToInt({ value }); +const floatBitsToUint = (value) => new FloatBitsToUint({ value }); +const intBitsToFloat = (value) => new IntBitsToFloat({ value }); +const uintBitsToFloat = (value) => new UintBitsToFloat({ value }); +const packSnorm2x16 = (value) => new PackSnorm2x16({ value }); +const unpackSnorm2x16 = (value) => new UnpackSnorm2x16({ value }); +const packUnorm2x16 = (value) => new PackUnorm2x16({ value }); +const unpackUnorm2x16 = (value) => new UnpackUnorm2x16({ value }); +const packHalf2x16 = (value) => new PackHalf2x16({ value }); +const unpackHalf2x16 = (value) => new UnpackHalf2x16({ value }); +const uintToRgba8 = (value) => new UintToRgba8({ value }); +class SimpleCast extends UnaryOp { + constructor({ + value, + outType, + outKey + }) { + super({ a: value, outTypeFunc: () => outType, outKey }); this.statements = ({ inputs, outputs }) => [ - `${outputs.swizzle} = ${inputs.a}.${select2};` + `${outputs[outKey]} = ${typeLiteral(outType)}(${inputs.a});` ]; } } -const remapIndex = (index, from, to) => { - return new DynoRemapIndex({ index, from, to }); -}; -const pcgMix = (value) => { - return new PcgMix({ value }); -}; -const pcgNext = (state) => { - return new PcgNext({ state }); -}; -const pcgHash = (state) => { - return new PcgHash({ state }); -}; -const hash = (value) => { - return new Hash({ value }); -}; -const hash2 = (value) => { - return new Hash2({ value }); -}; -const hash3 = (value) => { - return new Hash3({ value }); -}; -const hash4 = (value) => { - return new Hash4({ value }); -}; -const hashFloat = (value) => { - return new HashFloat({ value }); -}; -const hashVec2 = (value) => { - return new HashVec2({ value }); -}; -const hashVec3 = (value) => { - return new HashVec3({ value }); -}; -const hashVec4 = (value) => { - return new HashVec4({ value }); -}; -const normalizedDepth = (z, zNear, zFar) => { - return new NormalizedDepth({ z, zNear, zFar }).outputs.depth; -}; -const debugColorHue = (index) => { - return new DebugColorHue({ index }); -}; -class DynoRemapIndex extends Dyno { +class Bool extends SimpleCast { constructor({ - from, - to, - index + value }) { - super({ - inTypes: { from: "int", to: "int", index: "int" }, - outTypes: { index: "int" }, - inputs: { from, to, index }, - statements: ({ inputs, outputs }) => { - return [ - `${outputs.index} = ${inputs.index} - ${inputs.from} + ${inputs.to};` - ]; - } - }); - } - dynoOut() { - return new DynoOutput(this, "index"); + super({ value, outType: "bool", outKey: "bool" }); } } -class PcgNext extends Dyno { - constructor({ state }) { - const type = valType(state); - super({ - inTypes: { state: type }, - outTypes: { state: "uint" }, - inputs: { state }, - globals: () => [ - unindent(` - uint pcg_next(uint state) { - return state * 747796405u + 2891336453u; - } - `) - ], - statements: ({ inputs, outputs }) => { - const toUint = type === "uint" ? `${inputs.state}` : type === "int" ? `uint(${inputs.state})` : `floatBitsToUint(${inputs.state})`; - return [`${outputs.state} = pcg_next(${toUint});`]; - } - }); - } - dynoOut() { - return new DynoOutput(this, "state"); +class Int extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "int", outKey: "int" }); } } -class PcgHash extends Dyno { - constructor({ state }) { - super({ - inTypes: { state: "uint" }, - outTypes: { hash: "uint" }, - inputs: { state }, - globals: () => [ - unindent(` - uint pcg_hash(uint state) { - uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u; - return (hash >> 22u) ^ hash; - } - `) - ], - statements: ({ inputs, outputs }) => [ - `${outputs.hash} = pcg_hash(${inputs.state});` - ] - }); +class Uint extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "uint", outKey: "uint" }); } - dynoOut() { - return new DynoOutput(this, "hash"); +} +class Float extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "float", outKey: "float" }); } } -class PcgMix extends Dyno { - constructor({ value }) { - const type = valType(value); - const tempType = sameSizeUvec(type); - super({ - inTypes: { value: type }, - outTypes: { state: "uint" }, - inputs: { value }, - globals: () => [ - unindent(` - uint pcg_mix(uint value) { - return value; - } - uint pcg_mix(uvec2 value) { - return value.x + 0x9e3779b9u * value.y; - } - uint pcg_mix(uvec3 value) { - return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z; - } - uint pcg_mix(uvec4 value) { - return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z + 0xc2b2ae35u * value.w; - } - `) - ], - statements: ({ inputs, outputs }) => { - const toUvec = isUintType(type) ? `${inputs.value}` : isIntType(type) ? `${tempType}(${inputs.value})` : `floatBitsToUint(${inputs.value})`; - return [ - `${tempType} bits = ${toUvec};`, - `${outputs.state} = pcg_mix(bits);` - ]; - } - }); +class BVec2 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "bvec2", outKey: "bvec2" }); } - dynoOut() { - return new DynoOutput(this, "state"); +} +class BVec3 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "bvec3", outKey: "bvec3" }); } } -class Hash extends DynoBlock { - constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "uint" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - let state = new PcgMix({ value: value2 }).outputs.state; - state = new PcgNext({ state }).outputs.state; - return new PcgHash({ state }).outputs; - } - }); +class BVec4 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "bvec4", outKey: "bvec4" }); } - dynoOut() { - return new DynoOutput(this, "hash"); +} +class IVec2 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "ivec2", outKey: "ivec2" }); } } -class Hash2 extends DynoBlock { - constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "uvec2" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - let state = new PcgMix({ value: value2 }).outputs.state; - state = new PcgNext({ state }).outputs.state; - const x = new PcgHash({ state }).outputs.hash; - state = new PcgNext({ state }).outputs.state; - const y = new PcgHash({ state }).outputs.hash; - return { hash: combine({ vectorType: "uvec2", x, y }) }; - } - }); +class IVec3 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "ivec3", outKey: "ivec3" }); } - dynoOut() { - return new DynoOutput(this, "hash"); +} +class IVec4 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "ivec4", outKey: "ivec4" }); } } -class Hash3 extends DynoBlock { - constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "uvec3" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - let state = new PcgMix({ value: value2 }).outputs.state; - state = new PcgNext({ state }).outputs.state; - const x = new PcgHash({ state }).outputs.hash; - state = new PcgNext({ state }).outputs.state; - const y = new PcgHash({ state }).outputs.hash; - state = new PcgNext({ state }).outputs.state; - const z = new PcgHash({ state }).outputs.hash; - return { hash: combine({ vectorType: "uvec3", x, y, z }) }; - } - }); +class UVec2 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "uvec2", outKey: "uvec2" }); } - dynoOut() { - return new DynoOutput(this, "hash"); +} +class UVec3 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "uvec3", outKey: "uvec3" }); } } -class Hash4 extends DynoBlock { - constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "uvec4" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - let state = new PcgMix({ value: value2 }).outputs.state; - state = new PcgNext({ state }).outputs.state; - const x = new PcgHash({ state }).outputs.hash; - state = new PcgNext({ state }).outputs.state; - const y = new PcgHash({ state }).outputs.hash; - state = new PcgNext({ state }).outputs.state; - const z = new PcgHash({ state }).outputs.hash; - state = new PcgNext({ state }).outputs.state; - const w = new PcgHash({ state }).outputs.hash; - return { hash: combine({ vectorType: "uvec4", x, y, z, w }) }; - } - }); +class UVec4 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "uvec4", outKey: "uvec4" }); } - dynoOut() { - return new DynoOutput(this, "hash"); +} +class Vec2 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "vec2", outKey: "vec2" }); } } -class HashFloat extends DynoBlock { - constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "float" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - const word = hash(value2); - return { hash: mul(float(word), dynoConst("float", 1 / 2 ** 32)) }; - } - }); +class Vec3 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "vec3", outKey: "vec3" }); } - dynoOut() { - return new DynoOutput(this, "hash"); +} +class Vec4 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "vec4", outKey: "vec4" }); } } -class HashVec2 extends DynoBlock { - constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "vec2" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - const words = hash2(value2); - return { hash: mul(vec2(words), dynoConst("float", 1 / 2 ** 32)) }; - } - }); +class Mat2 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "mat2", outKey: "mat2" }); } - dynoOut() { - return new DynoOutput(this, "hash"); +} +class Mat3 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "mat3", outKey: "mat3" }); } } -class HashVec3 extends DynoBlock { - constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "vec3" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - const words = hash3(value2); - return { hash: mul(vec3(words), dynoConst("float", 1 / 2 ** 32)) }; - } - }); - } - dynoOut() { - return new DynoOutput(this, "hash"); +class Mat4 extends SimpleCast { + constructor({ + value + }) { + super({ value, outType: "mat4", outKey: "mat4" }); } } -class HashVec4 extends DynoBlock { +class FloatBitsToInt extends UnaryOp { constructor({ value }) { - super({ - inTypes: { value: valType(value) }, - outTypes: { hash: "vec4" }, - inputs: { value }, - construct: ({ value: value2 }) => { - if (!value2) { - throw new Error("value is required"); - } - const words = hash4(value2); - return { hash: mul(vec4(words), dynoConst("float", 1 / 2 ** 32)) }; - } - }); - } - dynoOut() { - return new DynoOutput(this, "hash"); + super({ a: value, outKey: "int", outTypeFunc: () => "int" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.int} = floatBitsToInt(${inputs.a});`]; + }; } } -class NormalizedDepth extends Dyno { - constructor({ - z, - zNear, - zFar - }) { - super({ - inTypes: { z: "float", zNear: "float", zFar: "float" }, - outTypes: { depth: "float" }, - inputs: { z, zNear, zFar }, - statements: ({ inputs, outputs }) => [ - `float clamped = clamp(${inputs.z}, ${inputs.zNear}, ${inputs.zFar});`, - `${outputs.depth} = (log2(clamped + 1.0) - log2(${inputs.zNear} + 1.0)) / (log2(${inputs.zFar} + 1.0) - log2(${inputs.zNear} + 1.0));` - ] - }); +class FloatBitsToUint extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.uint} = floatBitsToUint(${inputs.a});`]; + }; } - dynoOut() { - return new DynoOutput(this, "depth"); +} +class IntBitsToFloat extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "float", outTypeFunc: () => "float" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.float} = intBitsToFloat(${inputs.a});`]; + }; } } -class DebugColorHue extends Dyno { - constructor({ index }) { - super({ - inTypes: { index: "int" }, - outTypes: { color: "vec3" }, - inputs: { index }, - statements: ({ inputs, outputs }) => [ - `${outputs.color} = debugColorHue(uint(${inputs.index}));` - ] - }); +class UintBitsToFloat extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "float", outTypeFunc: () => "float" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.float} = uintBitsToFloat(${inputs.a});`]; + }; } - dynoOut() { - return new DynoOutput(this, "color"); +} +class PackSnorm2x16 extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.uint} = packSnorm2x16(${inputs.a});`]; + }; } } -const transformPos = (position, { - scale, - scales, - rotate, - translate -}) => { - return new TransformPosition({ position, scale, scales, rotate, translate }).outputs.position; -}; -const transformDir = (dir, { - scale, - scales, - rotate -}) => { - return new TransformDir({ dir, scale, scales, rotate }).outputs.dir; -}; -const transformQuat = (quaternion, { rotate }) => { - return new TransformQuaternion({ quaternion, rotate }).outputs.quaternion; -}; -class TransformPosition extends Dyno { - constructor({ - position, - scale, - scales, - rotate, - translate - }) { - super({ - inTypes: { - position: "vec3", - scale: "float", - scales: "vec3", - rotate: "vec4", - translate: "vec3" - }, - outTypes: { position: "vec3" }, - inputs: { position, scale, scales, rotate, translate }, - statements: ({ inputs, outputs }) => { - const { position: position2 } = outputs; - if (!position2) { - return []; - } - const { scale: scale2, scales: scales2, rotate: rotate2, translate: translate2 } = inputs; - return [ - `${position2} = ${inputs.position ?? "vec3(0.0, 0.0, 0.0)"};`, - !scale2 ? null : `${position2} *= ${scale2};`, - !scales2 ? null : `${position2} *= ${scales2};`, - !rotate2 ? null : `${position2} = quatVec(${rotate2}, ${position2});`, - !translate2 ? null : `${position2} += ${translate2};` - ].filter(Boolean); - } - }); +class UnpackSnorm2x16 extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "vec2", outTypeFunc: () => "vec2" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.vec2} = unpackSnorm2x16(${inputs.a});`]; + }; } } -class TransformDir extends Dyno { - constructor({ - dir, - scale, - scales, - rotate - }) { - super({ - inTypes: { dir: "vec3", scale: "float", scales: "vec3", rotate: "vec4" }, - outTypes: { dir: "vec3" }, - inputs: { dir, scale, scales, rotate }, - statements: ({ inputs, outputs }) => { - const { dir: dir2 } = outputs; - if (!dir2) { - return []; - } - const { scale: scale2, scales: scales2, rotate: rotate2 } = inputs; - return [ - `${dir2} = ${inputs.dir ?? "vec3(0.0, 0.0, 0.0)"};`, - !scale2 ? null : `${dir2} *= ${scale2};`, - !scales2 ? null : `${dir2} *= ${scales2};`, - !rotate2 ? null : `${dir2} = quatVec(${rotate2}, ${dir2});` - ].filter(Boolean); - } - }); +class PackUnorm2x16 extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.uint} = packUnorm2x16(${inputs.a});`]; + }; } } -class TransformQuaternion extends Dyno { - constructor({ - quaternion, - rotate - }) { - super({ - inTypes: { quaternion: "vec4", rotate: "vec4" }, - outTypes: { quaternion: "vec4" }, - inputs: { quaternion, rotate }, - statements: ({ inputs, outputs }) => { - const { quaternion: quaternion2 } = outputs; - if (!quaternion2) { - return []; - } - return [ - `${quaternion2} = ${inputs.quaternion ?? "vec4(0.0, 0.0, 0.0, 1.0)"};`, - !rotate ? null : `${quaternion2} = quatQuat(${inputs.rotate}, ${quaternion2});` - ].filter(Boolean); - } - }); +class UnpackUnorm2x16 extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "vec2", outTypeFunc: () => "vec2" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.vec2} = unpackUnorm2x16(${inputs.a});`]; + }; } } -const dynoIf = () => { - throw new Error("Not implemented"); -}; -const dynoSwitch = () => { - throw new Error("Not implemented"); -}; -const dynoFor = () => { - throw new Error("Not implemented"); -}; -const comment = () => { - throw new Error("Not implemented"); -}; -const arrayIndex = () => { - throw new Error("Not implemented"); -}; -const arrayLength = () => { - throw new Error("Not implemented"); -}; -const textureSize = (texture2, lod) => new TextureSize({ texture: texture2, lod }); -const texture = (texture2, coord, bias) => new Texture({ texture: texture2, coord, bias }); -const texelFetch = (texture2, coord, lod) => new TexelFetch({ texture: texture2, coord, lod }); -class TextureSize extends Dyno { - constructor({ texture: texture2, lod }) { - const textureType = valType(texture2); - super({ - inTypes: { texture: textureType, lod: "int" }, - outTypes: { size: textureSizeType(textureType) }, - inputs: { texture: texture2, lod }, - statements: ({ inputs, outputs }) => [ - `${outputs.size} = textureSize(${inputs.texture}, ${inputs.lod ?? "0"});` - ] - }); +class PackHalf2x16 extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "uint", outTypeFunc: () => "uint" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.uint} = packHalf2x16(${inputs.a});`]; + }; } - dynoOut() { - return new DynoOutput(this, "size"); +} +class UnpackHalf2x16 extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "vec2", outTypeFunc: () => "vec2" }); + this.statements = ({ inputs, outputs }) => { + return [`${outputs.vec2} = unpackHalf2x16(${inputs.a});`]; + }; } } -class Texture extends Dyno { - constructor({ - texture: texture2, - coord, - bias - }) { - const textureType = valType(texture2); - super({ - inTypes: { - texture: textureType, - coord: textureCoordType(textureType), - bias: "float" - }, - outTypes: { sample: textureReturnType(textureType) }, - inputs: { texture: texture2, coord, bias }, - statements: ({ inputs, outputs }) => [ - `${outputs.sample} = texture(${inputs.texture}, ${inputs.coord}${inputs.bias ? `, ${inputs.bias}` : ""});` - ] - }); - } - dynoOut() { - return new DynoOutput(this, "sample"); - } -} -class TexelFetch extends Dyno { - constructor({ - texture: texture2, - coord, - lod - }) { - const textureType = valType(texture2); - super({ - inTypes: { - texture: textureType, - coord: textureSizeType(textureType), - lod: "int" - }, - outTypes: { texel: textureReturnType(textureType) }, - inputs: { texture: texture2, coord, lod }, - statements: ({ inputs, outputs }) => [ - `${outputs.texel} = texelFetch(${inputs.texture}, ${inputs.coord}, ${inputs.lod ?? "0"});` - ] - }); - } - dynoOut() { - return new DynoOutput(this, "texel"); - } -} -function textureSizeType(textureType) { - switch (textureType) { - case "sampler2D": - case "usampler2D": - case "isampler2D": - case "samplerCube": - case "usamplerCube": - case "isamplerCube": - case "sampler2DShadow": - case "samplerCubeShadow": - return "ivec2"; - case "sampler3D": - case "usampler3D": - case "isampler3D": - case "sampler2DArray": - case "usampler2DArray": - case "isampler2DArray": - case "sampler2DArrayShadow": - return "ivec3"; - default: - throw new Error(`Invalid texture type: ${textureType}`); - } -} -function textureCoordType(textureType) { - switch (textureType) { - case "sampler2D": - case "usampler2D": - case "isampler2D": - return "vec2"; - case "sampler3D": - case "usampler3D": - case "isampler3D": - case "samplerCube": - case "usamplerCube": - case "isamplerCube": - case "sampler2DArray": - case "usampler2DArray": - case "isampler2DArray": - case "sampler2DShadow": - return "vec3"; - case "samplerCubeShadow": - case "sampler2DArrayShadow": - return "vec4"; - default: - throw new Error(`Invalid texture type: ${textureType}`); - } -} -function textureReturnType(textureType) { - switch (textureType) { - case "sampler2D": - case "sampler2DArray": - case "sampler3D": - case "samplerCube": - case "sampler2DShadow": - return "vec4"; - case "usampler2D": - case "usampler2DArray": - case "usampler3D": - case "usamplerCube": - return "uvec4"; - case "isampler2D": - case "isampler2DArray": - case "isampler3D": - case "isamplerCube": - return "ivec4"; - case "samplerCubeShadow": - case "sampler2DArrayShadow": - return "float"; - default: - throw new Error(`Invalid texture type: ${textureType}`); - } -} -const radians = (degrees2) => new Radians({ degrees: degrees2 }); -const degrees = (radians2) => new Degrees({ radians: radians2 }); -const sin = (radians2) => new Sin({ radians: radians2 }); -const cos = (radians2) => new Cos({ radians: radians2 }); -const tan = (radians2) => new Tan({ radians: radians2 }); -const asin = (sin2) => new Asin({ sin: sin2 }); -const acos = (cos2) => new Acos({ cos: cos2 }); -const atan = (tan2) => new Atan({ tan: tan2 }); -const atan2 = (y, x) => new Atan2({ y, x }); -const sinh = (x) => new Sinh({ x }); -const cosh = (x) => new Cosh({ x }); -const tanh = (x) => new Tanh({ x }); -const asinh = (x) => new Asinh({ x }); -const acosh = (x) => new Acosh({ x }); -const atanh = (x) => new Atanh({ x }); -class Radians extends UnaryOp { - constructor({ degrees: degrees2 }) { - super({ a: degrees2, outTypeFunc: (aType) => aType, outKey: "radians" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.radians} = radians(${inputs.a});` - ]; +class UintToRgba8 extends UnaryOp { + constructor({ value }) { + super({ a: value, outKey: "rgba8", outTypeFunc: () => "vec4" }); + this.statements = ({ inputs, outputs }) => { + return [ + `uvec4 uRgba = uvec4(${inputs.a} & 0xffu, (${inputs.a} >> 8u) & 0xffu, (${inputs.a} >> 16u) & 0xffu, (${inputs.a} >> 24u) & 0xffu);`, + `${outputs.rgba8} = vec4(uRgba) / 255.0;` + ]; + }; } } -class Degrees extends UnaryOp { - constructor({ radians: radians2 }) { - super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "degrees" }); +const length = (a) => new Length({ a }); +const distance = (a, b) => new Distance({ a, b }); +const dot = (a, b) => new Dot({ a, b }); +const cross = (a, b) => new Cross({ a, b }); +const normalize = (a) => new Normalize({ a }); +const faceforward = (a, b, c) => new FaceForward({ a, b, c }); +const reflectVec = (incident, normal) => new ReflectVec({ incident, normal }); +const refractVec = (incident, normal, eta) => new RefractVec({ incident, normal, eta }); +const split = (vector) => new Split({ vector }); +const combine = ({ + vector, + vectorType, + x, + y, + z, + w, + r, + g, + b, + a +}) => new Combine({ vector, vectorType, x, y, z, w, r, g, b, a }); +const projectH = (a) => new ProjectH({ a }); +const extendVec = (a, b) => new ExtendVec({ a, b }); +const swizzle = (a, select2) => new Swizzle({ vector: a, select: select2 }); +const compMult = (a, b) => new CompMult({ a, b }); +const outer = (a, b) => new Outer({ a, b }); +const transpose = (a) => new Transpose({ a }); +const determinant = (a) => new Determinant({ a }); +const inverse = (a) => new Inverse({ a }); +class Length extends UnaryOp { + constructor({ a }) { + super({ a, outTypeFunc: (aType) => "float", outKey: "length" }); this.statements = ({ inputs, outputs }) => [ - `${outputs.degrees} = degrees(${inputs.a});` + `${outputs.length} = length(${inputs.a});` ]; } } -class Sin extends UnaryOp { - constructor({ radians: radians2 }) { - super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "sin" }); +class Distance extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "distance", outTypeFunc: (aType, bType) => "float" }); this.statements = ({ inputs, outputs }) => [ - `${outputs.sin} = sin(${inputs.a});` + `${outputs.distance} = distance(${inputs.a}, ${inputs.b});` ]; } } -class Cos extends UnaryOp { - constructor({ radians: radians2 }) { - super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "cos" }); +class Dot extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "dot", outTypeFunc: (aType, bType) => "float" }); this.statements = ({ inputs, outputs }) => [ - `${outputs.cos} = cos(${inputs.a});` + `${outputs.dot} = dot(${inputs.a}, ${inputs.b});` ]; } } -class Tan extends UnaryOp { - constructor({ radians: radians2 }) { - super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "tan" }); +class Cross extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "cross", outTypeFunc: (aType, bType) => "vec3" }); this.statements = ({ inputs, outputs }) => [ - `${outputs.tan} = tan(${inputs.a});` + `${outputs.cross} = cross(${inputs.a}, ${inputs.b});` ]; } } -class Asin extends UnaryOp { - constructor({ sin: sin2 }) { - super({ a: sin2, outTypeFunc: (aType) => aType, outKey: "asin" }); +class Normalize extends UnaryOp { + constructor({ a }) { + super({ a, outTypeFunc: (aType) => aType, outKey: "normalize" }); this.statements = ({ inputs, outputs }) => [ - `${outputs.asin} = asin(${inputs.a});` + `${outputs.normalize} = normalize(${inputs.a});` ]; } } -class Acos extends UnaryOp { - constructor({ cos: cos2 }) { - super({ a: cos2, outTypeFunc: (aType) => aType, outKey: "acos" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.acos} = acos(${inputs.a});` - ]; +function projectHOutputType(type) { + if (type === "vec3") { + return "vec2"; } -} -class Atan extends UnaryOp { - constructor({ tan: tan2 }) { - super({ a: tan2, outTypeFunc: (aType) => aType, outKey: "atan" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.atan} = atan(${inputs.a});` - ]; + if (type === "vec4") { + return "vec3"; } + throw new Error("Invalid type"); } -class Atan2 extends BinaryOp { - constructor({ y, x }) { +class ProjectH extends UnaryOp { + constructor({ a }) { super({ - a: y, - b: x, - outTypeFunc: (aType, bType) => aType, - outKey: "atan2" + a, + outTypeFunc: (aType) => projectHOutputType(aType), + outKey: "projected" }); + this.statements = ({ inputs, outputs }) => { + if (this.inTypes.a === "vec3") { + return [`${outputs.projected} = ${inputs.a}.xy / ${inputs.a}.z;`]; + } + if (this.inTypes.a === "vec4") { + return [`${outputs.projected} = ${inputs.a}.xyz / ${inputs.a}.w;`]; + } + throw new Error("Invalid type"); + }; + } +} +function extendVecOutputType(type) { + if (type === "float") return "vec2"; + if (type === "vec2") return "vec3"; + if (type === "vec3") return "vec4"; + throw new Error("Invalid type"); +} +class ExtendVec extends BinaryOp { + constructor({ a, b }) { + const type = valType(a); + const outType = extendVecOutputType(type); + super({ a, b, outKey: "extend", outTypeFunc: () => outType }); this.statements = ({ inputs, outputs }) => [ - `${outputs.atan2} = atan2(${inputs.a}, ${inputs.b});` - ]; - } -} -class Sinh extends UnaryOp { - constructor({ x }) { - super({ a: x, outTypeFunc: (aType) => aType, outKey: "sinh" }); - this.statements = ({ inputs, outputs }) => [ - `${outputs.sinh} = sinh(${inputs.a});` + `${outputs.extend} = ${outType}(${inputs.a}, ${inputs.b});` ]; } } -class Cosh extends UnaryOp { - constructor({ x }) { - super({ a: x, outTypeFunc: (aType) => aType, outKey: "cosh" }); +class FaceForward extends TrinaryOp { + constructor({ a, b, c }) { + super({ + a, + b, + c, + outKey: "forward", + outTypeFunc: (aType, bType, cType) => aType + }); this.statements = ({ inputs, outputs }) => [ - `${outputs.cosh} = cosh(${inputs.a});` + `${outputs.forward} = faceforward(${inputs.a}, ${inputs.b}, ${inputs.c});` ]; } } -class Tanh extends UnaryOp { - constructor({ x }) { - super({ a: x, outTypeFunc: (aType) => aType, outKey: "tanh" }); +class ReflectVec extends BinaryOp { + constructor({ + incident, + normal + }) { + super({ + a: incident, + b: normal, + outKey: "reflection", + outTypeFunc: (aType, bType) => aType + }); this.statements = ({ inputs, outputs }) => [ - `${outputs.tanh} = tanh(${inputs.a});` + `${outputs.reflection} = reflect(${inputs.a}, ${inputs.b});` ]; } } -class Asinh extends UnaryOp { - constructor({ x }) { - super({ a: x, outTypeFunc: (aType) => aType, outKey: "asinh" }); +class RefractVec extends TrinaryOp { + constructor({ + incident, + normal, + eta + }) { + super({ + a: incident, + b: normal, + c: eta, + outKey: "refraction", + outTypeFunc: (aType, bType, cType) => aType + }); this.statements = ({ inputs, outputs }) => [ - `${outputs.asinh} = asinh(${inputs.a});` + `${outputs.refraction} = refract(${inputs.a}, ${inputs.b}, ${inputs.c});` ]; } } -class Acosh extends UnaryOp { - constructor({ x }) { - super({ a: x, outTypeFunc: (aType) => aType, outKey: "acosh" }); +class CompMult extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "product", outTypeFunc: (aType, bType) => aType }); this.statements = ({ inputs, outputs }) => [ - `${outputs.acosh} = acosh(${inputs.a});` + `${outputs.product} = matrixCompMult(${a}, ${b});` ]; } } -class Atanh extends UnaryOp { - constructor({ x }) { - super({ a: x, outTypeFunc: (aType) => aType, outKey: "atanh" }); +function outerOutputType(aType, bType) { + if (aType === "vec2") { + if (bType === "vec2") return "mat2"; + if (bType === "vec3") return "mat3x2"; + if (bType === "vec4") return "mat4x2"; + } + if (aType === "vec3") { + if (bType === "vec2") return "mat2x3"; + if (bType === "vec3") return "mat3"; + if (bType === "vec4") return "mat4x3"; + } + if (aType === "vec4") { + if (bType === "vec2") return "mat2x4"; + if (bType === "vec3") return "mat3x4"; + if (bType === "vec4") return "mat4"; + } + throw new Error(`Invalid outer type: ${aType}, ${bType}`); +} +class Outer extends BinaryOp { + constructor({ a, b }) { + super({ a, b, outKey: "outer", outTypeFunc: outerOutputType }); this.statements = ({ inputs, outputs }) => [ - `${outputs.atanh} = atanh(${inputs.a});` + `${outputs.outer} = outerProduct(${inputs.a}, ${inputs.b});` ]; } } -const dyno = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ - __proto__: null, - Abs, - Acos, - Acosh, - Add, - All, - And, - Any, - Asin, - Asinh, - Atan, - Atan2, - Atanh, - BVec2, - BVec3, - BVec4, - BinaryOp, - Bool, - Ceil, - Clamp, - Combine, - CombineCovSplat, - CombineGsplat, - CompMult, - CompXor, - Compilation, - Cos, - Cosh, - CovSplat, - Cross, - DebugColorHue, - Degrees, - Determinant, - Distance, - Div, - Dot, - Dyno, - DynoBlock, - DynoBool, - DynoBvec2, - DynoBvec3, - DynoBvec4, - DynoConst, - DynoFloat, - DynoInt, - DynoIsampler2D, - DynoIsampler2DArray, - DynoIsampler3D, - DynoIsamplerCube, - DynoIvec2, - DynoIvec3, - DynoIvec4, - DynoLiteral, - DynoMat2, - DynoMat2x2, - DynoMat2x3, - DynoMat2x4, - DynoMat3, - DynoMat3x2, - DynoMat3x3, - DynoMat3x4, - DynoMat4, - DynoMat4x2, - DynoMat4x3, - DynoMat4x4, - DynoOutput, - DynoProgram, - DynoProgramTemplate, - DynoRemapIndex, - DynoSampler2D, - DynoSampler2DArray, - DynoSampler2DArrayShadow, - DynoSampler2DShadow, - DynoSampler3D, - DynoSamplerCube, - DynoSamplerCubeShadow, - DynoUint, - DynoUniform, - DynoUsampler2D, - DynoUsampler2DArray, - DynoUsampler3D, - DynoUsamplerCube, - DynoUvec2, - DynoUvec3, - DynoUvec4, - DynoValue, - DynoVec2, - DynoVec3, - DynoVec4, - Equal, - Exp, - Exp2, - ExtendVec, - FaceForward, - Float, - FloatBitsToInt, - FloatBitsToUint, - Floor, - Fract, - GreaterThan, - GreaterThanEqual, - Gsplat, - GsplatNormal, - GsplatToCovSplat, - Hash, - Hash2, - Hash3, - Hash4, - HashFloat, - HashVec2, - HashVec3, - HashVec4, - IMod, - IVec2, - IVec3, - IVec4, - Int, - IntBitsToFloat, - Inverse, - InverseSqrt, - IsInf, - IsNan, - Length, - LessThan, - LessThanEqual, - Log, - Log2, - Mat2, - Mat3, - Mat4, - Max, - Min, - Mix, - Mod, - Modf, - Mul, - Neg, - Normalize, - NormalizedDepth, - Not, - NotEqual, - NumCovSplats, - NumExtSplats, - NumPackedSplats, - Or, - Outer, - OutputCovSplat, - OutputExtCovSplat, - OutputExtendedSplat, - OutputPackedSplat, - OutputRgba8, - PackHalf2x16, - PackSnorm2x16, - PackUnorm2x16, - PagedSplatTexCoord, - PcgHash, - PcgMix, - PcgNext, - Pow, - ProjectH, - Radians, - ReadCovSplat, - ReadExtSplat, - ReadPackedSplat, - ReadPackedSplatRange, - ReflectVec, - RefractVec, - Round, - Select, - Shl, - Shr, - Sign, - SimpleCast, - Sin, - Sinh, - Smoothstep, - SplatTexCoord, - Split, - SplitCovSplat, - SplitGsplat, - Sqr, - Sqrt, - Step, - Sub, - Swizzle, - TCovSplats, - TExtSplats, - TPackedSplats, - Tan, - Tanh, - TexelFetch, - Texture, - TextureSize, - TransformDir, - TransformGsplat, - TransformPosition, - TransformQuaternion, - Transpose, - TrinaryOp, - Trunc, - UVec2, - UVec3, - UVec4, - Uint, - UintBitsToFloat, - UintToRgba8, - UnaryOp, - UnpackHalf2x16, - UnpackSnorm2x16, - UnpackUnorm2x16, - Vec2, - Vec3, - Vec4, - Xor, - abs, - acos, - acosh, - add, - all, - and, - any, - arrayIndex, - arrayLength, - asin, - asinh, - atan, - atan2, - atanh, - bool, - bvec2, - bvec3, - bvec4, - ceil, - clamp, - combine, - combineCovSplat, - combineGsplat, - comment, - compMult, - compXor, - cos, - cosh, - cross, - debugColorHue, - defineCovSplat, - defineExtSplats, - defineGsplat, - defineGsplatNormal, - definePackedSplats, - degrees, - determinant, - distance, - div, - dot, - dyno: dyno$1, - dynoBlock, - dynoBool, - dynoBvec2, - dynoBvec3, - dynoBvec4, - dynoConst, - dynoDeclare, - dynoFloat, - dynoFor, - dynoIf, - dynoInt, - dynoIsampler2D, - dynoIsampler2DArray, - dynoIsampler3D, - dynoIsamplerCube, - dynoIvec2, - dynoIvec3, - dynoIvec4, - dynoLiteral, - dynoMat2, - dynoMat2x2, - dynoMat2x3, - dynoMat2x4, - dynoMat3, - dynoMat3x2, - dynoMat3x3, - dynoMat3x4, - dynoMat4, - dynoMat4x2, - dynoMat4x3, - dynoMat4x4, - dynoSampler2D, - dynoSampler2DArray, - dynoSampler2DArrayShadow, - dynoSampler2DShadow, - dynoSampler3D, - dynoSamplerCube, - dynoSamplerCubeShadow, - dynoSwitch, - dynoUint, - dynoUsampler2D, - dynoUsampler2DArray, - dynoUsampler3D, - dynoUsamplerCube, - dynoUvec2, - dynoUvec3, - dynoUvec4, - dynoVec2, - dynoVec3, - dynoVec4, - equal, - exp, - exp2, - extendVec, - faceforward, - float, - floatBitsToInt, - floatBitsToUint, - floor, - fract, - greaterThan, - greaterThanEqual, - gsplatNormal, - gsplatToCovSplat, - hash, - hash2, - hash3, - hash4, - hashFloat, - hashVec2, - hashVec3, - hashVec4, - imod, - int, - intBitsToFloat, - inverse, - inversesqrt, - isAllFloatType, - isBoolType, - isFloatType, - isInf, - isIntType, - isMat2, - isMat3, - isMat4, - isMatFloatType, - isNan, - isScalarType, - isUintType, - isVector2Type, - isVector3Type, - isVector4Type, - isVectorType, - ivec2, - ivec3, - ivec4, - length, - lessThan, - lessThanEqual, - literalNegOne, - literalOne, - literalZero, - log, - log2, - mat2, - mat3, - mat4, - max, - min, - mix, - mod, - modf, - mul, - neg, - normalize, - normalizedDepth, - not, - notEqual, - numCovSplats, - numExtSplats, - numPackedSplats, - numberAsFloat, - numberAsInt, - numberAsUint, - or, - outer, - outputCovSplat, - outputCovSplatDepth, - outputExtCovSplat, - outputExtendedSplat, - outputPackedSplat, - outputRgba8, - outputSplatDepth, - packHalf2x16, - packSnorm2x16, - packUnorm2x16, - pagedSplatTexCoord, - pcgHash, - pcgMix, - pcgNext, - pow, - projectH, - radians, - readCovSplat, - readExtSplat, - readPackedSplat, - readPackedSplatRange, - reflectVec, - refractVec, - remapIndex, - round, - sameSizeIvec, - sameSizeUvec, - sameSizeVec, - select, - shl, - shr, - sign, - sin, - sinh, - smoothstep, - splatTexCoord, - split, - splitCovSplat, - splitGsplat, - sqr, - sqrt, - step, - sub, - swizzle, - tan, - tanh, - texelFetch, - texture, - textureSize, - transformDir, - transformGsplat, - transformPos, - transformQuat, - transpose, - trunc, - typeLiteral, - uint, - uintBitsToFloat, - uintToRgba8, - uniform, - unindent, - unindentLines, - unpackHalf2x16, - unpackSnorm2x16, - unpackUnorm2x16, - uvec2, - uvec3, - uvec4, - valType, - vec2, - vec3, - vec4, - vectorDim, - vectorElementType, - xor -}, Symbol.toStringTag, { value: "Module" })); -const _ExtSplats = class _ExtSplats { - constructor(options = {}) { - this.maxSplats = 0; - this.numSplats = 0; - this.extra = {}; - this.maxSh = 3; - this.isInitialized = false; - this.extArrays = [new Uint32Array(0), new Uint32Array(0)]; - this.textures = [_ExtSplats.emptyTexture, _ExtSplats.emptyTexture]; - this.extra = {}; - this.dyno = new DynoExtSplats({ extSplats: this }); - this.dynoNumSh = new DynoInt({ - key: "numSh", - value: 0, - update: () => { - return Math.min(this.getNumSh(), this.maxSh); - } - }); - this.initialized = Promise.resolve(this); - this.reinitialize(options); +function transposeOutputType(type) { + if (type === "mat2") return "mat2"; + if (type === "mat3") return "mat3"; + if (type === "mat4") return "mat4"; + if (type === "mat2x2") return "mat2x2"; + if (type === "mat2x3") return "mat3x2"; + if (type === "mat2x4") return "mat4x2"; + if (type === "mat3x2") return "mat2x3"; + if (type === "mat3x3") return "mat3x3"; + if (type === "mat3x4") return "mat4x3"; + if (type === "mat4x2") return "mat2x4"; + if (type === "mat4x3") return "mat3x4"; + if (type === "mat4x4") return "mat4x4"; + throw new Error(`Invalid transpose type: ${type}`); +} +class Transpose extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "transpose", outTypeFunc: transposeOutputType }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.transpose} = transpose(${inputs.a});` + ]; } - reinitialize(options) { - this.isInitialized = false; - this.extra = {}; - this.maxSplats = options.maxSplats ?? 0; - this.lod = options.lod; - this.nonLod = options.nonLod; - if (options.url || options.fileBytes || options.stream || options.construct) { - this.initialized = this.asyncInitialize(options).then(() => { - this.isInitialized = true; - return this; +} +class Determinant extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "det", outTypeFunc: (aType) => "float" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.det} = determinant(${inputs.a});` + ]; + } +} +class Inverse extends UnaryOp { + constructor({ a }) { + super({ a, outKey: "inverse", outTypeFunc: (aType) => aType }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.inverse} = inverse(${a});` + ]; + } +} +function splitOutTypes(type) { + const result = (value) => value; + switch (type) { + case "vec2": + return result({ x: "float", y: "float", r: "float", g: "float" }); + case "vec3": + return result({ + x: "float", + y: "float", + z: "float", + r: "float", + g: "float", + b: "float" }); - } else { - this.initialize(options); - this.isInitialized = true; - this.initialized = Promise.resolve(this); + case "vec4": + return result({ + x: "float", + y: "float", + z: "float", + w: "float", + r: "float", + g: "float", + b: "float", + a: "float" + }); + case "ivec2": + return result({ x: "int", y: "int", r: "int", g: "int" }); + case "ivec3": + return result({ + x: "int", + y: "int", + z: "int", + r: "int", + g: "int", + b: "int" + }); + case "ivec4": + return result({ + x: "int", + y: "int", + z: "int", + w: "int", + r: "int", + g: "int", + b: "int", + a: "int" + }); + case "uvec2": + return result({ x: "uint", y: "uint", r: "uint", g: "uint" }); + case "uvec3": + return result({ + x: "uint", + y: "uint", + z: "uint", + r: "uint", + g: "uint", + b: "uint" + }); + case "uvec4": + return result({ + x: "uint", + y: "uint", + z: "uint", + w: "uint", + r: "uint", + g: "uint", + b: "uint", + a: "uint" + }); + default: + throw new Error(`Invalid vector type: ${type}`); + } +} +class Split extends Dyno { + constructor({ vector }) { + const type = valType(vector); + const inTypes = { vector: type }; + const outTypes = splitOutTypes(inTypes.vector); + super({ inTypes, outTypes, inputs: { vector } }); + this.statements = ({ inputs, outputs }) => { + const { x, y, z, w, r, g, b, a } = outputs; + const { vector: vector2 } = inputs; + return [ + x ? `${x} = ${vector2}.x;` : null, + y ? `${y} = ${vector2}.y;` : null, + z ? `${z} = ${vector2}.z;` : null, + w ? `${w} = ${vector2}.w;` : null, + r ? `${r} = ${vector2}.r;` : null, + g ? `${g} = ${vector2}.g;` : null, + b ? `${b} = ${vector2}.b;` : null, + a ? `${a} = ${vector2}.a;` : null + ].filter(Boolean); + }; + } +} +class Combine extends Dyno { + constructor({ + vector, + vectorType, + x, + y, + z, + w, + r, + g, + b, + a + }) { + if (!vector && !vectorType) { + throw new Error("Either vector or vectorType must be provided"); } - } - initialize(options) { - this.extra = options.extra ?? {}; - this.lodSplats = options.lodSplats; - if (options.extArrays) { - this.extArrays = options.extArrays; - this.maxSplats = Math.floor( - Math.min(this.extArrays[0].length / 4, this.extArrays[1].length / 4) - ); - this.numSplats = options.numSplats ?? this.maxSplats; - this.maxSplats = Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - this.numSplats = Math.min( - this.maxSplats, - options.numSplats ?? Number.POSITIVE_INFINITY - ); - this.updateTextures(); - } else { - this.maxSplats = options.maxSplats ?? 0; - this.numSplats = 0; - this.extArrays = [new Uint32Array(0), new Uint32Array(0)]; + const vType = vectorType ?? valType(vector); + const elType = vectorElementType(vType); + const dim = vectorDim(vType); + const inTypes = { + vector: vType, + x: elType, + y: elType, + r: elType, + g: elType + }; + const inputs = { vector, x, y, r, g }; + if (dim >= 3) { + Object.assign(inTypes, { z: elType, b: elType }); + Object.assign(inputs, { z, b }); } - } - async asyncInitialize(options) { - const { - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - construct, - lod, - nonLod, - lodAbove - } = options; - this.lod = lod; - this.nonLod = nonLod; - const loader = new SplatLoader(); - if (fileBytes || url || stream) { - await loader.loadInternalAsync({ - extSplats: this, - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - onProgress: options.onProgress, - lodAbove - }); + if (dim >= 4) { + Object.assign(inTypes, { w: elType, a: elType }); + Object.assign(inputs, { w, a }); } - if (construct) { - const maybePromise = construct(this); - if (maybePromise instanceof Promise) { - await maybePromise; + super({ inTypes, outTypes: { vector: vType }, inputs }); + this.statements = ({ inputs: inputs2, outputs }) => { + const { vector: vector2 } = outputs; + const { + vector: input, + x: x2, + y: y2, + z: z2, + w: w2, + r: r2, + g: g2, + b: b22, + a: a2 + } = inputs2; + const statements = [ + `${vector2}.x = ${x2 ?? r2 ?? (input ? `${input}.x` : literalZero(elType))};`, + `${vector2}.y = ${y2 ?? g2 ?? (input ? `${input}.y` : literalZero(elType))};` + ]; + if (dim >= 3) + statements.push( + `${vector2}.z = ${z2 ?? b22 ?? (input ? `${input}.z` : literalZero(elType))};` + ); + if (dim >= 4) + statements.push( + `${vector2}.w = ${w2 ?? a2 ?? (input ? `${input}.w` : literalZero(elType))};` + ); + return statements; + }; + } + dynoOut() { + return new DynoOutput( + this, + "vector" + ); + } +} +function swizzleOutputType(type, swizzle2) { + let result = null; + if (isFloatType(type)) { + result = swizzle2.length === 1 ? "float" : swizzle2.length === 2 ? "vec2" : swizzle2.length === 3 ? "vec3" : swizzle2.length === 4 ? "vec4" : null; + } else if (isIntType(type)) { + result = swizzle2.length === 1 ? "int" : swizzle2.length === 2 ? "ivec2" : swizzle2.length === 3 ? "ivec3" : swizzle2.length === 4 ? "ivec4" : null; + } else if (isUintType(type)) { + result = swizzle2.length === 1 ? "uint" : swizzle2.length === 2 ? "uvec2" : swizzle2.length === 3 ? "uvec3" : swizzle2.length === 4 ? "uvec4" : null; + } + if (result == null) { + throw new Error(`Invalid swizzle: ${swizzle2}`); + } + return result; +} +class Swizzle extends UnaryOp { + constructor({ vector, select: select2 }) { + super({ + a: vector, + outKey: "swizzle", + outTypeFunc: (aType) => swizzleOutputType(aType, select2) + }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.swizzle} = ${inputs.a}.${select2};` + ]; + } +} +const remapIndex = (index, from, to) => { + return new DynoRemapIndex({ index, from, to }); +}; +const pcgMix = (value) => { + return new PcgMix({ value }); +}; +const pcgNext = (state) => { + return new PcgNext({ state }); +}; +const pcgHash = (state) => { + return new PcgHash({ state }); +}; +const hash = (value) => { + return new Hash({ value }); +}; +const hash2 = (value) => { + return new Hash2({ value }); +}; +const hash3 = (value) => { + return new Hash3({ value }); +}; +const hash4 = (value) => { + return new Hash4({ value }); +}; +const hashFloat = (value) => { + return new HashFloat({ value }); +}; +const hashVec2 = (value) => { + return new HashVec2({ value }); +}; +const hashVec3 = (value) => { + return new HashVec3({ value }); +}; +const hashVec4 = (value) => { + return new HashVec4({ value }); +}; +const normalizedDepth = (z, zNear, zFar) => { + return new NormalizedDepth({ z, zNear, zFar }).outputs.depth; +}; +const debugColorHue = (index) => { + return new DebugColorHue({ index }); +}; +class DynoRemapIndex extends Dyno { + constructor({ + from, + to, + index + }) { + super({ + inTypes: { from: "int", to: "int", index: "int" }, + outTypes: { index: "int" }, + inputs: { from, to, index }, + statements: ({ inputs, outputs }) => { + return [ + `${outputs.index} = ${inputs.index} - ${inputs.from} + ${inputs.to};` + ]; } - } + }); } - // Call this when you are finished with the PackedSplats and want to free - // any buffers it holds. - dispose() { - if (this.textures[0] !== _ExtSplats.emptyTexture) { - this.textures[0].dispose(); - this.textures[0].source.data = null; - this.textures[0] = _ExtSplats.emptyTexture; - } - if (this.textures[1] !== _ExtSplats.emptyTexture) { - this.textures[1].dispose(); - this.textures[1].source.data = null; - this.textures[1] = _ExtSplats.emptyTexture; - } - this.extArrays = [new Uint32Array(0), new Uint32Array(0)]; - for (const key in this.extra) { - const dyno2 = this.extra[key]; - if (dyno2 instanceof DynoUniform) { - const texture2 = dyno2.value; - if (texture2 == null ? void 0 : texture2.isTexture) { - texture2.dispose(); - texture2.source.data = null; - } + dynoOut() { + return new DynoOutput(this, "index"); + } +} +class PcgNext extends Dyno { + constructor({ state }) { + const type = valType(state); + super({ + inTypes: { state: type }, + outTypes: { state: "uint" }, + inputs: { state }, + globals: () => [ + unindent(` + uint pcg_next(uint state) { + return state * 747796405u + 2891336453u; + } + `) + ], + statements: ({ inputs, outputs }) => { + const toUint = type === "uint" ? `${inputs.state}` : type === "int" ? `uint(${inputs.state})` : `floatBitsToUint(${inputs.state})`; + return [`${outputs.state} = pcg_next(${toUint});`]; } - } - this.extra = {}; - this.disposeLodSplats(); + }); } - prepareFetchSplat() { + dynoOut() { + return new DynoOutput(this, "state"); + } +} +class PcgHash extends Dyno { + constructor({ state }) { + super({ + inTypes: { state: "uint" }, + outTypes: { hash: "uint" }, + inputs: { state }, + globals: () => [ + unindent(` + uint pcg_hash(uint state) { + uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u; + return (hash >> 22u) ^ hash; + } + `) + ], + statements: ({ inputs, outputs }) => [ + `${outputs.hash} = pcg_hash(${inputs.state});` + ] + }); } - getNumSplats() { - return this.numSplats; + dynoOut() { + return new DynoOutput(this, "hash"); } - hasRgbDir() { - return Math.min(this.getNumSh(), this.maxSh) > 0; +} +class PcgMix extends Dyno { + constructor({ value }) { + const type = valType(value); + const tempType = sameSizeUvec(type); + super({ + inTypes: { value: type }, + outTypes: { state: "uint" }, + inputs: { value }, + globals: () => [ + unindent(` + uint pcg_mix(uint value) { + return value; + } + uint pcg_mix(uvec2 value) { + return value.x + 0x9e3779b9u * value.y; + } + uint pcg_mix(uvec3 value) { + return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z; + } + uint pcg_mix(uvec4 value) { + return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z + 0xc2b2ae35u * value.w; + } + `) + ], + statements: ({ inputs, outputs }) => { + const toUvec = isUintType(type) ? `${inputs.value}` : isIntType(type) ? `${tempType}(${inputs.value})` : `floatBitsToUint(${inputs.value})`; + return [ + `${tempType} bits = ${toUvec};`, + `${outputs.state} = pcg_mix(bits);` + ]; + } + }); } - getNumSh() { - return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3a || !this.extra.sh3b ? 2 : 3; + dynoOut() { + return new DynoOutput(this, "state"); } - setMaxSh(maxSh) { - this.maxSh = maxSh; +} +class Hash extends DynoBlock { + constructor({ value }) { + super({ + inTypes: { value: valType(value) }, + outTypes: { hash: "uint" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); + } + let state = new PcgMix({ value: value2 }).outputs.state; + state = new PcgNext({ state }).outputs.state; + return new PcgHash({ state }).outputs; + } + }); } - fetchSplat({ - index, - viewOrigin - }) { - let gsplat = readExtSplat(this.dyno, index); - if (this.hasRgbDir() && viewOrigin) { - const splatCenter = splitGsplat(gsplat).outputs.center; - const viewDir = normalize(sub(splatCenter, viewOrigin)); - const { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB } = this.ensureShTextures(); - let { rgb } = evaluateExtSH({ - coord: splatTexCoord(index), - viewDir, - numSh: this.dynoNumSh, - sh1Texture, - sh2Texture, - sh3TextureA, - sh3TextureB - }); - rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); - gsplat = combineGsplat({ gsplat, rgb }); - } - return gsplat; + dynoOut() { + return new DynoOutput(this, "hash"); } - ensureShTextures() { - if (!this.extra.sh1) { - return {}; - } - let sh1Texture = this.extra.sh1Texture; - if (!sh1Texture) { - let sh1 = this.extra.sh1; - const { width, height, depth, maxSplats } = getTextureSize( - sh1.length / 4 - ); - if (sh1.length < maxSplats * 4) { - const newSh1 = new Uint32Array(maxSplats * 4); - newSh1.set(sh1); - this.extra.sh1 = newSh1; - sh1 = newSh1; - } - const texture2 = newUint32ArrayTexture( - sh1, - width, - height, - depth, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType, - "RGBA32UI" - ); - sh1Texture = new DynoUsampler2DArray({ - value: texture2, - key: "sh1" - }); - this.extra.sh1Texture = sh1Texture; - } - if (!this.extra.sh2) { - return { sh1Texture }; - } - let sh2Texture = this.extra.sh2Texture; - if (!sh2Texture) { - let sh2 = this.extra.sh2; - const { width, height, depth, maxSplats } = getTextureSize( - sh2.length / 4 - ); - if (sh2.length < maxSplats * 4) { - const newSh2 = new Uint32Array(maxSplats * 4); - newSh2.set(sh2); - this.extra.sh2 = newSh2; - sh2 = newSh2; - } - const texture2 = newUint32ArrayTexture( - sh2, - width, - height, - depth, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType, - "RGBA32UI" - ); - sh2Texture = new DynoUsampler2DArray({ - value: texture2, - key: "sh2" - }); - this.extra.sh2Texture = sh2Texture; - } - if (!this.extra.sh3a || !this.extra.sh3b) { - return { sh1Texture, sh2Texture }; - } - let sh3TextureA = this.extra.sh3TextureA; - if (!sh3TextureA) { - let sh3a = this.extra.sh3a; - const { width, height, depth, maxSplats } = getTextureSize( - sh3a.length / 4 - ); - if (sh3a.length < maxSplats * 4) { - const newSh3 = new Uint32Array(maxSplats * 4); - newSh3.set(sh3a); - this.extra.sh3a = newSh3; - sh3a = newSh3; - } - const texture2 = newUint32ArrayTexture( - sh3a, - width, - height, - depth, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType, - "RGBA32UI" - ); - sh3TextureA = new DynoUsampler2DArray({ - value: texture2, - key: "sh3" - }); - this.extra.sh3TextureA = sh3TextureA; - } - let sh3TextureB = this.extra.sh3TextureB; - if (!sh3TextureB) { - let sh3b = this.extra.sh3b; - const { width, height, depth, maxSplats } = getTextureSize( - sh3b.length / 4 - ); - if (sh3b.length < maxSplats * 4) { - const newSh3b = new Uint32Array(maxSplats * 4); - newSh3b.set(sh3b); - this.extra.sh3b = newSh3b; - sh3b = newSh3b; +} +class Hash2 extends DynoBlock { + constructor({ value }) { + super({ + inTypes: { value: valType(value) }, + outTypes: { hash: "uvec2" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); + } + let state = new PcgMix({ value: value2 }).outputs.state; + state = new PcgNext({ state }).outputs.state; + const x = new PcgHash({ state }).outputs.hash; + state = new PcgNext({ state }).outputs.state; + const y = new PcgHash({ state }).outputs.hash; + return { hash: combine({ vectorType: "uvec2", x, y }) }; } - const texture2 = newUint32ArrayTexture( - sh3b, - width, - height, - depth, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType, - "RGBA32UI" - ); - sh3TextureB = new DynoUsampler2DArray({ - value: texture2, - key: "sh3b" - }); - this.extra.sh3TextureB = sh3TextureB; - } - return { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB }; + }); } - // Ensures that this.extArrays can fit numSplats Gsplats. If it's too small, - // resize exponentially and copy over the original data. - // - // Typically you don't need to call this, because calling this.setSplat(index, ...) - // and this.pushSplat(...) will automatically call ensureSplats() so we have - // enough splats. - ensureSplats(numSplats) { - const targetSize = numSplats <= this.maxSplats ? this.maxSplats : ( - // Grow exponentially to avoid frequent reallocations - Math.max(numSplats, 2 * this.maxSplats) - ); - const currentSize = !this.extArrays[0] ? 0 : this.extArrays[0].length / 4; - if (!this.extArrays[0] || targetSize > currentSize) { - this.maxSplats = getTextureSize(targetSize).maxSplats; - const newArray0 = new Uint32Array(this.maxSplats * 4); - const newArray1 = new Uint32Array(this.maxSplats * 4); - if (this.extArrays[0]) { - newArray0.set(this.extArrays[0]); - newArray1.set(this.extArrays[1]); + dynoOut() { + return new DynoOutput(this, "hash"); + } +} +class Hash3 extends DynoBlock { + constructor({ value }) { + super({ + inTypes: { value: valType(value) }, + outTypes: { hash: "uvec3" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); + } + let state = new PcgMix({ value: value2 }).outputs.state; + state = new PcgNext({ state }).outputs.state; + const x = new PcgHash({ state }).outputs.hash; + state = new PcgNext({ state }).outputs.state; + const y = new PcgHash({ state }).outputs.hash; + state = new PcgNext({ state }).outputs.state; + const z = new PcgHash({ state }).outputs.hash; + return { hash: combine({ vectorType: "uvec3", x, y, z }) }; } - this.extArrays[0] = newArray0; - this.extArrays[1] = newArray1; - } - return this.extArrays; - } - // Unpack the 16-byte Gsplat data at index into the Three.js components - // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, - // opacity: number 0..1, color: THREE.Color 0..1. - getSplat(index) { - if (index >= this.numSplats) { - throw new Error("Invalid index"); - } - return decodeExtSplat(this.extArrays, index); + }); } - // Set all ExtSplat components at index with the provided Gsplat attributes - // (can be the same objects returned by getSplat). Ensures there is capacity - // for at least index+1 Gsplats. - setSplat(index, center, scales, quaternion, opacity, color) { - const extArrays = this.ensureSplats(index + 1); - encodeExtSplat( - extArrays, - index, - center.x, - center.y, - center.z, - scales.x, - scales.y, - scales.z, - quaternion.x, - quaternion.y, - quaternion.z, - quaternion.w, - opacity, - color.r, - color.g, - color.b - ); - this.numSplats = Math.max(this.numSplats, index + 1); + dynoOut() { + return new DynoOutput(this, "hash"); } - // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on - // construction where you just want to iterate and create a collection of Gsplats. - pushSplat(center, scales, quaternion, opacity, color) { - const extArrays = this.ensureSplats(this.numSplats + 1); - encodeExtSplat( - extArrays, - this.numSplats, - center.x, - center.y, - center.z, - scales.x, - scales.y, - scales.z, - quaternion.x, - quaternion.y, - quaternion.z, - quaternion.w, - opacity, - color.r, - color.g, - color.b - ); - ++this.numSplats; +} +class Hash4 extends DynoBlock { + constructor({ value }) { + super({ + inTypes: { value: valType(value) }, + outTypes: { hash: "uvec4" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); + } + let state = new PcgMix({ value: value2 }).outputs.state; + state = new PcgNext({ state }).outputs.state; + const x = new PcgHash({ state }).outputs.hash; + state = new PcgNext({ state }).outputs.state; + const y = new PcgHash({ state }).outputs.hash; + state = new PcgNext({ state }).outputs.state; + const z = new PcgHash({ state }).outputs.hash; + state = new PcgNext({ state }).outputs.state; + const w = new PcgHash({ state }).outputs.hash; + return { hash: combine({ vectorType: "uvec4", x, y, z, w }) }; + } + }); } - // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat - // and invoke the callback function with the Gsplat attributes. - forEachSplat(callback) { - if (!this.numSplats) { - return; - } - for (let i = 0; i < this.numSplats; ++i) { - const unpacked = decodeExtSplat(this.extArrays, i); - callback( - i, - unpacked.center, - unpacked.scales, - unpacked.quaternion, - unpacked.opacity, - unpacked.color - ); - } + dynoOut() { + return new DynoOutput(this, "hash"); } - // Check if source texture needs to be created/updated - updateTextures() { - if (this.textures[0] !== _ExtSplats.emptyTexture) { - const { width, height, depth } = this.textures[0].image; - if (this.maxSplats !== width * height * depth) { - this.textures[0].dispose(); - this.textures[0] = _ExtSplats.emptyTexture; - this.textures[1].dispose(); - this.textures[1] = _ExtSplats.emptyTexture; +} +class HashFloat extends DynoBlock { + constructor({ value }) { + super({ + inTypes: { value: valType(value) }, + outTypes: { hash: "float" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); + } + const word = hash(value2); + return { hash: mul(float(word), dynoConst("float", 1 / 2 ** 32)) }; } - } - if (this.textures[0] === _ExtSplats.emptyTexture) { - const { width, height, depth } = getTextureSize(this.maxSplats); - this.textures[0] = newUint32ArrayTexture( - this.extArrays[0], - width, - height, - depth, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType, - "RGBA32UI" - ); - this.textures[1] = newUint32ArrayTexture( - this.extArrays[1], - width, - height, - depth, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType, - "RGBA32UI" - ); - } else if (this.extArrays[0].buffer !== this.textures[0].image.data.buffer) { - this.textures[0].image.data = new Uint8Array(this.extArrays[0].buffer); - this.textures[1].image.data = new Uint8Array(this.extArrays[1].buffer); - this.textures[0].needsUpdate = true; - this.textures[1].needsUpdate = true; - } + }); } - extractSplats(indices, pageColoring) { - const maxSplats = getTextureSize(indices.length).maxSplats; - const newSplats = new _ExtSplats({ maxSplats }); - for (let i = 0; i < indices.length; i++) { - const splat = this.getSplat(indices[i]); - if (pageColoring) { - let hue = (indices[i] >>> 16) * 0.61803398875; - hue = hue - Math.floor(hue); - const r = Math.max(0, Math.min(1, Math.abs(hue * 6 - 3) - 1)); - const g = Math.max(0, Math.min(1, Math.abs(hue * 6 + 1) - 1)); - const b = Math.max(0, Math.min(1, Math.abs(hue * 6 - 1) - 1)); - splat.color.r *= r; - splat.color.g *= g; - splat.color.b *= b; + dynoOut() { + return new DynoOutput(this, "hash"); + } +} +class HashVec2 extends DynoBlock { + constructor({ value }) { + super({ + inTypes: { value: valType(value) }, + outTypes: { hash: "vec2" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); + } + const words = hash2(value2); + return { hash: mul(vec2(words), dynoConst("float", 1 / 2 ** 32)) }; } - newSplats.pushSplat( - splat.center, - splat.scales, - splat.quaternion, - splat.opacity, - splat.color - ); - } - return newSplats; + }); } - disposeLodSplats() { - if (this.lodSplats) { - this.lodSplats.dispose(); - this.lodSplats = void 0; - } + dynoOut() { + return new DynoOutput(this, "hash"); } - async createLodSplats({ - rgbaArray, - quality - } = {}) { - const lodBase = typeof this.lod === "number" ? Math.max(1.1, Math.min(2, this.lod)) : quality ? 1.75 : 1.5; - const extArrays = [this.extArrays[0].slice(), this.extArrays[1].slice()]; - const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : void 0; - const extra = { - sh1: this.extra.sh1 ? this.extra.sh1.slice() : void 0, - sh2: this.extra.sh2 ? this.extra.sh2.slice() : void 0, - sh3: this.extra.sh3 ? this.extra.sh3.slice() : void 0 - }; - const decoded = await workerPool.withWorker(async (worker) => { - return await worker.call( - quality ? "qualityLodExtSplats" : "tinyLodExtSplats", - { - numSplats: this.numSplats, - extArrays, - extra, - lodBase, - rgba +} +class HashVec3 extends DynoBlock { + constructor({ value }) { + super({ + inTypes: { value: valType(value) }, + outTypes: { hash: "vec3" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); } - ); + const words = hash3(value2); + return { hash: mul(vec3(words), dynoConst("float", 1 / 2 ** 32)) }; + } }); - const lodSplats = new _ExtSplats(decoded); - if (this.lodSplats) { - this.lodSplats.dispose(); - } - this.lodSplats = lodSplats; - this.nonLod = true; - this.lod = quality ? "quality" : true; } -}; -_ExtSplats.emptyArray = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 4); - const texture2 = new THREE.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE.RGBAIntegerFormat; - texture2.type = THREE.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_ExtSplats.emptyTexture = newUint32ArrayTexture( - null, - 1, - 1, - 1, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType, - "RGBA32UI" -); -_ExtSplats.emptyUint32x4 = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 4); - const texture2 = new THREE.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE.RGBAIntegerFormat; - texture2.type = THREE.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -let ExtSplats = _ExtSplats; -class DynoExtSplats extends DynoUniform { - constructor({ extSplats } = {}) { + dynoOut() { + return new DynoOutput(this, "hash"); + } +} +class HashVec4 extends DynoBlock { + constructor({ value }) { super({ - key: "extSplats", - type: TExtSplats, - globals: () => [defineExtSplats], - value: { - textureArray1: ExtSplats.emptyTexture, - textureArray2: ExtSplats.emptyTexture, - numSplats: 0 - }, - update: (value) => { - var _a2, _b2, _c; - value.textureArray1 = ((_a2 = this.extSplats) == null ? void 0 : _a2.textures[0]) ?? ExtSplats.emptyTexture; - value.textureArray2 = ((_b2 = this.extSplats) == null ? void 0 : _b2.textures[1]) ?? ExtSplats.emptyTexture; - value.numSplats = ((_c = this.extSplats) == null ? void 0 : _c.numSplats) ?? 0; - return value; + inTypes: { value: valType(value) }, + outTypes: { hash: "vec4" }, + inputs: { value }, + construct: ({ value: value2 }) => { + if (!value2) { + throw new Error("value is required"); + } + const words = hash4(value2); + return { hash: mul(vec4(words), dynoConst("float", 1 / 2 ** 32)) }; } }); - this.extSplats = extSplats; + } + dynoOut() { + return new DynoOutput(this, "hash"); } } -const defineEvaluateExtSH1 = unindent(` - vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) { - vec3 sh1_0 = decodeExtRgb(packedData.x); - vec3 sh1_1 = decodeExtRgb(packedData.y); - vec3 sh1_2 = decodeExtRgb(packedData.z); - - return sh1_0 * (-0.4886025 * viewDir.y) - + sh1_1 * (0.4886025 * viewDir.z) - + sh1_2 * (-0.4886025 * viewDir.x); +class NormalizedDepth extends Dyno { + constructor({ + z, + zNear, + zFar + }) { + super({ + inTypes: { z: "float", zNear: "float", zFar: "float" }, + outTypes: { depth: "float" }, + inputs: { z, zNear, zFar }, + statements: ({ inputs, outputs }) => [ + `float clamped = clamp(${inputs.z}, ${inputs.zNear}, ${inputs.zFar});`, + `${outputs.depth} = (log2(clamped + 1.0) - log2(${inputs.zNear} + 1.0)) / (log2(${inputs.zFar} + 1.0) - log2(${inputs.zNear} + 1.0));` + ] + }); } -`); -const defineEvaluateExtSH12 = unindent(` - vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) { - vec3 sh1_0 = decodeExtRgb(packed1.x); - vec3 sh1_1 = decodeExtRgb(packed1.y); - vec3 sh1_2 = decodeExtRgb(packed1.z); - - vec3 sh2_0 = decodeExtRgb(packed1.w); - vec3 sh2_1 = decodeExtRgb(packed2.x); - vec3 sh2_2 = decodeExtRgb(packed2.y); - vec3 sh2_3 = decodeExtRgb(packed2.z); - vec3 sh2_4 = decodeExtRgb(packed2.w); - - vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y) - + sh1_1 * (0.4886025 * viewDir.z) - + sh1_2 * (-0.4886025 * viewDir.x); - - vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y) - + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z) - + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y)) - + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z) - + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y)); - - return sh1Rgb + sh2Rgb; + dynoOut() { + return new DynoOutput(this, "depth"); } -`); -const defineEvaluateExtSH3 = unindent(` - vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) { - vec3 sh3_0 = decodeExtRgb(packedA.x); - vec3 sh3_1 = decodeExtRgb(packedA.y); - vec3 sh3_2 = decodeExtRgb(packedA.z); - vec3 sh3_3 = decodeExtRgb(packedA.w); - vec3 sh3_4 = decodeExtRgb(packedB.x); - vec3 sh3_5 = decodeExtRgb(packedB.y); - vec3 sh3_6 = decodeExtRgb(packedB.z); - - float xx = viewDir.x * viewDir.x; - float yy = viewDir.y * viewDir.y; - float zz = viewDir.z * viewDir.z; - float xy = viewDir.x * viewDir.y; - float yz = viewDir.y * viewDir.z; - float zx = viewDir.z * viewDir.x; - - return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy)) - + sh3_1 * (2.8906114 * xy * viewDir.z) + - + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy)) - + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) - + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy)) - + sh3_5 * (1.4453057 * viewDir.z * (xx - yy)) - + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy)); +} +class DebugColorHue extends Dyno { + constructor({ index }) { + super({ + inTypes: { index: "int" }, + outTypes: { color: "vec3" }, + inputs: { index }, + statements: ({ inputs, outputs }) => [ + `${outputs.color} = debugColorHue(uint(${inputs.index}));` + ] + }); } -`); -function evaluateExtSH({ - coord, - viewDir, - numSh, - sh1Texture, - sh2Texture, - sh3TextureA, - sh3TextureB -}) { - return new Dyno({ - inTypes: { - coord: "ivec3", - viewDir: "vec3", - numSh: "int", - sh1Texture: "usampler2DArray", - sh2Texture: "usampler2DArray", - sh3TextureA: "usampler2DArray", - sh3TextureB: "usampler2DArray" - }, - outTypes: { rgb: "vec3" }, - inputs: { - coord, - viewDir, - numSh, - sh1Texture, - sh2Texture, - sh3TextureA, - sh3TextureB - }, - globals: () => [ - defineEvaluateExtSH1, - defineEvaluateExtSH12, - defineEvaluateExtSH3 - ], - statements: ({ inputs, outputs }) => { - const lines = ["vec3 rgb = vec3(0.0);"]; - if (inputs.sh1Texture) { - if (!inputs.sh2Texture) { - lines.push( - ...unindentLines(` - if (${inputs.numSh} >= 1) { - rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir}); - } - `) - ); - } else { - lines.push( - ...unindentLines(` - if (${inputs.numSh} == 1) { - rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir}); - } else if (${inputs.numSh} >= 2) { - rgb = evaluateExtSH12(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}); - `) - ); - if (inputs.sh3TextureA && inputs.sh3TextureB) { - lines.push( - ...unindentLines(` - if (${inputs.numSh} >= 3) { - rgb += evaluateExtSH3(texelFetch(${inputs.sh3TextureA}, ${inputs.coord}, 0), texelFetch(${inputs.sh3TextureB}, ${inputs.coord}, 0), ${inputs.viewDir}); - } - `) - ); - } - lines.push("}"); + dynoOut() { + return new DynoOutput(this, "color"); + } +} +const transformPos = (position, { + scale, + scales, + rotate, + translate +}) => { + return new TransformPosition({ position, scale, scales, rotate, translate }).outputs.position; +}; +const transformDir = (dir, { + scale, + scales, + rotate +}) => { + return new TransformDir({ dir, scale, scales, rotate }).outputs.dir; +}; +const transformQuat = (quaternion, { rotate }) => { + return new TransformQuaternion({ quaternion, rotate }).outputs.quaternion; +}; +class TransformPosition extends Dyno { + constructor({ + position, + scale, + scales, + rotate, + translate + }) { + super({ + inTypes: { + position: "vec3", + scale: "float", + scales: "vec3", + rotate: "vec4", + translate: "vec3" + }, + outTypes: { position: "vec3" }, + inputs: { position, scale, scales, rotate, translate }, + statements: ({ inputs, outputs }) => { + const { position: position2 } = outputs; + if (!position2) { + return []; } + const { scale: scale2, scales: scales2, rotate: rotate2, translate: translate2 } = inputs; + return [ + `${position2} = ${inputs.position ?? "vec3(0.0, 0.0, 0.0)"};`, + !scale2 ? null : `${position2} *= ${scale2};`, + !scales2 ? null : `${position2} *= ${scales2};`, + !rotate2 ? null : `${position2} = quatVec(${rotate2}, ${position2});`, + !translate2 ? null : `${position2} += ${translate2};` + ].filter(Boolean); } - lines.push(`${outputs.rgb} = rgb;`); - return lines; - } - }).outputs; -} -function newUint32ArrayTexture(data, width, height, depth, format, type, internalFormat) { - const texture2 = new THREE.DataArrayTexture( - data, - width, - height, - depth - ); - texture2.format = format; - texture2.type = type; - texture2.internalFormat = internalFormat; - texture2.needsUpdate = true; - return texture2; -} -function decode_rad_header(bytes) { - const ret = wasm.decode_rad_header(bytes); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); + }); } - return takeFromExternrefTable0(ret[0]); -} -function get_raycast_buffer() { - const ret = wasm.get_raycast_buffer(); - return ret; -} -function get_raycast_buffer2() { - const ret = wasm.get_raycast_buffer2(); - return ret; -} -function raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count) { - const ret = wasm.raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count); - return ret; -} -function raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity) { - const ret = wasm.raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity); - return ret; } -function __wbg_get_imports() { - const import0 = { - __proto__: null, - __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) { - const ret = Error(getStringFromWasm0(arg0, arg1)); - return ret; - }, - __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) { - throw new Error(getStringFromWasm0(arg0, arg1)); - }, - __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) { - let deferred0_0; - let deferred0_1; - try { - deferred0_0 = arg0; - deferred0_1 = arg1; - console.error(getStringFromWasm0(arg0, arg1)); - } finally { - wasm.__wbindgen_free(deferred0_0, deferred0_1, 1); +class TransformDir extends Dyno { + constructor({ + dir, + scale, + scales, + rotate + }) { + super({ + inTypes: { dir: "vec3", scale: "float", scales: "vec3", rotate: "vec4" }, + outTypes: { dir: "vec3" }, + inputs: { dir, scale, scales, rotate }, + statements: ({ inputs, outputs }) => { + const { dir: dir2 } = outputs; + if (!dir2) { + return []; + } + const { scale: scale2, scales: scales2, rotate: rotate2 } = inputs; + return [ + `${dir2} = ${inputs.dir ?? "vec3(0.0, 0.0, 0.0)"};`, + !scale2 ? null : `${dir2} *= ${scale2};`, + !scales2 ? null : `${dir2} *= ${scales2};`, + !rotate2 ? null : `${dir2} = quatVec(${rotate2}, ${dir2});` + ].filter(Boolean); } - }, - __wbg_length_0c32cb8543c8e4c8: function(arg0) { - const ret = arg0.length; - return ret; - }, - __wbg_length_1e701798fdcaa3b4: function(arg0) { - const ret = arg0.length; - return ret; - }, - __wbg_length_fd4646b401926788: function(arg0) { - const ret = arg0.length; - return ret; - }, - __wbg_new_227d7c05414eb861: function() { - const ret = new Error(); - return ret; - }, - __wbg_new_4f9fafbb3909af72: function() { - const ret = new Object(); - return ret; - }, - __wbg_new_f3c9df4f38f3f798: function() { - const ret = new Array(); - return ret; - }, - __wbg_new_with_length_26bffbe236bf73f9: function(arg0) { - const ret = new Float32Array(arg0 >>> 0); - return ret; - }, - __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) { - Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2); - }, - __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) { - Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2); - }, - __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) { - arg0[arg1] = arg2; - }, - __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) { - arg0[arg1 >>> 0] = arg2; - }, - __wbg_set_8ee2d34facb8466e: function() { - return handleError(function(arg0, arg1, arg2) { - const ret = Reflect.set(arg0, arg1, arg2); - return ret; - }, arguments); - }, - __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) { - arg0.set(getArrayF32FromWasm0(arg1, arg2)); - }, - __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) { - const ret = arg1.stack; - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); - }, - __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) { - const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0); - return ret; - }, - __wbindgen_cast_0000000000000001: function(arg0) { - const ret = arg0; - return ret; - }, - __wbindgen_cast_0000000000000002: function(arg0, arg1) { - const ret = getArrayF32FromWasm0(arg0, arg1); - return ret; - }, - __wbindgen_cast_0000000000000003: function(arg0, arg1) { - const ret = getArrayU32FromWasm0(arg0, arg1); - return ret; - }, - __wbindgen_cast_0000000000000004: function(arg0, arg1) { - const ret = getStringFromWasm0(arg0, arg1); - return ret; - }, - __wbindgen_cast_0000000000000005: function(arg0) { - const ret = BigInt.asUintN(64, arg0); - return ret; - }, - __wbindgen_init_externref_table: function() { - const table = wasm.__wbindgen_externrefs; - const offset = table.grow(4); - table.set(0, void 0); - table.set(offset + 0, void 0); - table.set(offset + 1, null); - table.set(offset + 2, true); - table.set(offset + 3, false); - } - }; - return { - __proto__: null, - "./spark_rs_bg.js": import0 - }; -} -function addToExternrefTable0(obj) { - const idx = wasm.__externref_table_alloc(); - wasm.__wbindgen_externrefs.set(idx, obj); - return idx; + }); + } } -function getArrayF32FromWasm0(ptr, len) { - ptr = ptr >>> 0; - return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len); +class TransformQuaternion extends Dyno { + constructor({ + quaternion, + rotate + }) { + super({ + inTypes: { quaternion: "vec4", rotate: "vec4" }, + outTypes: { quaternion: "vec4" }, + inputs: { quaternion, rotate }, + statements: ({ inputs, outputs }) => { + const { quaternion: quaternion2 } = outputs; + if (!quaternion2) { + return []; + } + return [ + `${quaternion2} = ${inputs.quaternion ?? "vec4(0.0, 0.0, 0.0, 1.0)"};`, + !rotate ? null : `${quaternion2} = quatQuat(${inputs.rotate}, ${quaternion2});` + ].filter(Boolean); + } + }); + } } -function getArrayU32FromWasm0(ptr, len) { - ptr = ptr >>> 0; - return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len); +const dynoIf = () => { + throw new Error("Not implemented"); +}; +const dynoSwitch = () => { + throw new Error("Not implemented"); +}; +const dynoFor = () => { + throw new Error("Not implemented"); +}; +const comment = () => { + throw new Error("Not implemented"); +}; +const arrayIndex = () => { + throw new Error("Not implemented"); +}; +const arrayLength = () => { + throw new Error("Not implemented"); +}; +const textureSize = (texture2, lod) => new TextureSize({ texture: texture2, lod }); +const texture = (texture2, coord, bias) => new Texture({ texture: texture2, coord, bias }); +const texelFetch = (texture2, coord, lod) => new TexelFetch({ texture: texture2, coord, lod }); +class TextureSize extends Dyno { + constructor({ texture: texture2, lod }) { + const textureType = valType(texture2); + super({ + inTypes: { texture: textureType, lod: "int" }, + outTypes: { size: textureSizeType(textureType) }, + inputs: { texture: texture2, lod }, + statements: ({ inputs, outputs }) => [ + `${outputs.size} = textureSize(${inputs.texture}, ${inputs.lod ?? "0"});` + ] + }); + } + dynoOut() { + return new DynoOutput(this, "size"); + } } -function getArrayU8FromWasm0(ptr, len) { - ptr = ptr >>> 0; - return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len); +class Texture extends Dyno { + constructor({ + texture: texture2, + coord, + bias + }) { + const textureType = valType(texture2); + super({ + inTypes: { + texture: textureType, + coord: textureCoordType(textureType), + bias: "float" + }, + outTypes: { sample: textureReturnType(textureType) }, + inputs: { texture: texture2, coord, bias }, + statements: ({ inputs, outputs }) => [ + `${outputs.sample} = texture(${inputs.texture}, ${inputs.coord}${inputs.bias ? `, ${inputs.bias}` : ""});` + ] + }); + } + dynoOut() { + return new DynoOutput(this, "sample"); + } } -let cachedDataViewMemory0 = null; -function getDataViewMemory0() { - if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === void 0 && cachedDataViewMemory0.buffer !== wasm.memory.buffer) { - cachedDataViewMemory0 = new DataView(wasm.memory.buffer); +class TexelFetch extends Dyno { + constructor({ + texture: texture2, + coord, + lod + }) { + const textureType = valType(texture2); + super({ + inTypes: { + texture: textureType, + coord: textureSizeType(textureType), + lod: "int" + }, + outTypes: { texel: textureReturnType(textureType) }, + inputs: { texture: texture2, coord, lod }, + statements: ({ inputs, outputs }) => [ + `${outputs.texel} = texelFetch(${inputs.texture}, ${inputs.coord}, ${inputs.lod ?? "0"});` + ] + }); + } + dynoOut() { + return new DynoOutput(this, "texel"); } - return cachedDataViewMemory0; } -let cachedFloat32ArrayMemory0 = null; -function getFloat32ArrayMemory0() { - if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) { - cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer); +function textureSizeType(textureType) { + switch (textureType) { + case "sampler2D": + case "usampler2D": + case "isampler2D": + case "samplerCube": + case "usamplerCube": + case "isamplerCube": + case "sampler2DShadow": + case "samplerCubeShadow": + return "ivec2"; + case "sampler3D": + case "usampler3D": + case "isampler3D": + case "sampler2DArray": + case "usampler2DArray": + case "isampler2DArray": + case "sampler2DArrayShadow": + return "ivec3"; + default: + throw new Error(`Invalid texture type: ${textureType}`); } - return cachedFloat32ArrayMemory0; } -function getStringFromWasm0(ptr, len) { - ptr = ptr >>> 0; - return decodeText(ptr, len); +function textureCoordType(textureType) { + switch (textureType) { + case "sampler2D": + case "usampler2D": + case "isampler2D": + return "vec2"; + case "sampler3D": + case "usampler3D": + case "isampler3D": + case "samplerCube": + case "usamplerCube": + case "isamplerCube": + case "sampler2DArray": + case "usampler2DArray": + case "isampler2DArray": + case "sampler2DShadow": + return "vec3"; + case "samplerCubeShadow": + case "sampler2DArrayShadow": + return "vec4"; + default: + throw new Error(`Invalid texture type: ${textureType}`); + } } -let cachedUint32ArrayMemory0 = null; -function getUint32ArrayMemory0() { - if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) { - cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer); +function textureReturnType(textureType) { + switch (textureType) { + case "sampler2D": + case "sampler2DArray": + case "sampler3D": + case "samplerCube": + case "sampler2DShadow": + return "vec4"; + case "usampler2D": + case "usampler2DArray": + case "usampler3D": + case "usamplerCube": + return "uvec4"; + case "isampler2D": + case "isampler2DArray": + case "isampler3D": + case "isamplerCube": + return "ivec4"; + case "samplerCubeShadow": + case "sampler2DArrayShadow": + return "float"; + default: + throw new Error(`Invalid texture type: ${textureType}`); } - return cachedUint32ArrayMemory0; } -let cachedUint8ArrayMemory0 = null; -function getUint8ArrayMemory0() { - if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { - cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); +const radians = (degrees2) => new Radians({ degrees: degrees2 }); +const degrees = (radians2) => new Degrees({ radians: radians2 }); +const sin = (radians2) => new Sin({ radians: radians2 }); +const cos = (radians2) => new Cos({ radians: radians2 }); +const tan = (radians2) => new Tan({ radians: radians2 }); +const asin = (sin2) => new Asin({ sin: sin2 }); +const acos = (cos2) => new Acos({ cos: cos2 }); +const atan = (tan2) => new Atan({ tan: tan2 }); +const atan2 = (y, x) => new Atan2({ y, x }); +const sinh = (x) => new Sinh({ x }); +const cosh = (x) => new Cosh({ x }); +const tanh = (x) => new Tanh({ x }); +const asinh = (x) => new Asinh({ x }); +const acosh = (x) => new Acosh({ x }); +const atanh = (x) => new Atanh({ x }); +class Radians extends UnaryOp { + constructor({ degrees: degrees2 }) { + super({ a: degrees2, outTypeFunc: (aType) => aType, outKey: "radians" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.radians} = radians(${inputs.a});` + ]; } - return cachedUint8ArrayMemory0; } -function handleError(f, args) { - try { - return f.apply(this, args); - } catch (e) { - const idx = addToExternrefTable0(e); - wasm.__wbindgen_exn_store(idx); +class Degrees extends UnaryOp { + constructor({ radians: radians2 }) { + super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "degrees" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.degrees} = degrees(${inputs.a});` + ]; } } -function passStringToWasm0(arg, malloc, realloc) { - if (realloc === void 0) { - const buf = cachedTextEncoder.encode(arg); - const ptr2 = malloc(buf.length, 1) >>> 0; - getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf); - WASM_VECTOR_LEN = buf.length; - return ptr2; +class Sin extends UnaryOp { + constructor({ radians: radians2 }) { + super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "sin" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.sin} = sin(${inputs.a});` + ]; } - let len = arg.length; - let ptr = malloc(len, 1) >>> 0; - const mem = getUint8ArrayMemory0(); - let offset = 0; - for (; offset < len; offset++) { - const code = arg.charCodeAt(offset); - if (code > 127) break; - mem[ptr + offset] = code; +} +class Cos extends UnaryOp { + constructor({ radians: radians2 }) { + super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "cos" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.cos} = cos(${inputs.a});` + ]; } - if (offset !== len) { - if (offset !== 0) { - arg = arg.slice(offset); - } - ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; - const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); - const ret = cachedTextEncoder.encodeInto(arg, view); - offset += ret.written; - ptr = realloc(ptr, len, offset, 1) >>> 0; +} +class Tan extends UnaryOp { + constructor({ radians: radians2 }) { + super({ a: radians2, outTypeFunc: (aType) => aType, outKey: "tan" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.tan} = tan(${inputs.a});` + ]; } - WASM_VECTOR_LEN = offset; - return ptr; } -function takeFromExternrefTable0(idx) { - const value = wasm.__wbindgen_externrefs.get(idx); - wasm.__externref_table_dealloc(idx); - return value; +class Asin extends UnaryOp { + constructor({ sin: sin2 }) { + super({ a: sin2, outTypeFunc: (aType) => aType, outKey: "asin" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.asin} = asin(${inputs.a});` + ]; + } } -let cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }); -cachedTextDecoder.decode(); -const MAX_SAFARI_DECODE_BYTES = 2146435072; -let numBytesDecoded = 0; -function decodeText(ptr, len) { - numBytesDecoded += len; - if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) { - cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }); - cachedTextDecoder.decode(); - numBytesDecoded = len; +class Acos extends UnaryOp { + constructor({ cos: cos2 }) { + super({ a: cos2, outTypeFunc: (aType) => aType, outKey: "acos" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.acos} = acos(${inputs.a});` + ]; } - return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); } -const cachedTextEncoder = new TextEncoder(); -if (!("encodeInto" in cachedTextEncoder)) { - cachedTextEncoder.encodeInto = function(arg, view) { - const buf = cachedTextEncoder.encode(arg); - view.set(buf); - return { - read: arg.length, - written: buf.length - }; - }; +class Atan extends UnaryOp { + constructor({ tan: tan2 }) { + super({ a: tan2, outTypeFunc: (aType) => aType, outKey: "atan" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.atan} = atan(${inputs.a});` + ]; + } } -let WASM_VECTOR_LEN = 0; -let wasm; -function __wbg_finalize_init(instance, module) { - wasm = instance.exports; - cachedDataViewMemory0 = null; - cachedFloat32ArrayMemory0 = null; - cachedUint32ArrayMemory0 = null; - cachedUint8ArrayMemory0 = null; - wasm.__wbindgen_start(); - return wasm; +class Atan2 extends BinaryOp { + constructor({ y, x }) { + super({ + a: y, + b: x, + outTypeFunc: (aType, bType) => aType, + outKey: "atan2" + }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.atan2} = atan2(${inputs.a}, ${inputs.b});` + ]; + } } -async function __wbg_load(module, imports) { - if (typeof Response === "function" && module instanceof Response) { - if (typeof WebAssembly.instantiateStreaming === "function") { - try { - return await WebAssembly.instantiateStreaming(module, imports); - } catch (e) { - const validResponse = module.ok && expectedResponseType(module.type); - if (validResponse && module.headers.get("Content-Type") !== "application/wasm") { - console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); - } else { - throw e; - } - } - } - const bytes = await module.arrayBuffer(); - return await WebAssembly.instantiate(bytes, imports); - } else { - const instance = await WebAssembly.instantiate(module, imports); - if (instance instanceof WebAssembly.Instance) { - return { instance, module }; - } else { - return instance; - } +class Sinh extends UnaryOp { + constructor({ x }) { + super({ a: x, outTypeFunc: (aType) => aType, outKey: "sinh" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.sinh} = sinh(${inputs.a});` + ]; } - function expectedResponseType(type) { - switch (type) { - case "basic": - case "cors": - case "default": - return true; - } - return false; +} +class Cosh extends UnaryOp { + constructor({ x }) { + super({ a: x, outTypeFunc: (aType) => aType, outKey: "cosh" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.cosh} = cosh(${inputs.a});` + ]; } } -async function __wbg_init(module_or_path) { - if (wasm !== void 0) return wasm; - if (module_or_path !== void 0) { - if (Object.getPrototypeOf(module_or_path) === Object.prototype) { - ({ module_or_path } = module_or_path); - } else { - console.warn("using deprecated parameters for the initialization function; pass a single object instead"); - } +class Tanh extends UnaryOp { + constructor({ x }) { + super({ a: x, outTypeFunc: (aType) => aType, outKey: "tanh" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.tanh} = tanh(${inputs.a});` + ]; } - if (module_or_path === void 0) { - module_or_path = new URL("data:application/wasm;base64,AGFzbQEAAAABlwM3YAN/f38Bf2ACf38Bf2ACf38AYAN/f38AYAF/AGABfwF/YAV/f39/fwBgBH9/f38AYAABb2AAAGACf38Bb2AEf39/fwF/YAZ/f39/f38AYAFvAX9gAX0BfWAFf39/fn8AYAABf2AFf39/f38Bf2ADf39vAGAGf39/f39/AX9gB39/f39/f38AYAV/f35/fwBgBX9/fH9/AGAFf399f38AYAADf39/YANvb28AYANvf28AYANvb28Bf2ADb39/AW9gAX8Bb2ADb39/AGACf28AYAF8AW9gAX4Bb2AKf39/f3t9fX19fwBgB39/f39/f38Bf2AIf397fX1/f38AYAJ+fwBgA39/fgBgAn9+AX9gA39+fgBgBH9+fn8AYAZ/f39+f38AYAZ/f398f38AYAZ/f399f38AYAZ/f39/f30AYA59fX19fX19fX1/b319fwFvYA19fX19fX19fX1/fX1/AW9gAW8Df39/YAp9fX19fX19fX1/AW9gBH9+f38AYAR/fX9/AGAEf3x/fwBgAn19AX1gAXwBfwK7CRgQLi9zcGFya19yc19iZy5qcxpfX3diZ19uZXdfZjNjOWRmNGYzOGYzZjc5OAAIEC4vc3BhcmtfcnNfYmcuanMaX193YmdfbmV3XzRmOWZhZmJiMzkwOWFmNzIACBAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX3NldF82YmU0Mjc2OGM2OTBlMzgwABkQLi9zcGFya19yc19iZy5qcxpfX3diZ19zZXRfNmM2MGIyZThhZDBlOTM4MwAaEC4vc3BhcmtfcnNfYmcuanMdX193YmdfbGVuZ3RoXzBjMzJjYjg1NDNjOGU0YzgADRAuL3NwYXJrX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfM2UwNWViOTU0NTU2NTA0NgASEC4vc3BhcmtfcnNfYmcuanMaX193Ymdfc2V0XzhlZTJkMzRmYWNiODQ2NmUAGxAuL3NwYXJrX3JzX2JnLmpzH19fd2JnX3N1YmFycmF5X2Q1MWU4OTQ1OGIzZmRiZjYAHBAuL3NwYXJrX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF8xZTcwMTc5OGZkY2FhM2I0AA0QLi9zcGFya19yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsX2U0MjI3NWU2MDFlMTRlZWIAEhAuL3NwYXJrX3JzX2JnLmpzJl9fd2JnX25ld193aXRoX2xlbmd0aF8yNmJmZmJlMjM2YmY3M2Y5AB0QLi9zcGFya19yc19iZy5qcx1fX3diZ19sZW5ndGhfZmQ0NjQ2YjQwMTkyNjc4OAANEC4vc3BhcmtfcnNfYmcuanMaX193Ymdfc2V0X2E5OGM4ZGE2NTU3ZTYzZGUAHhAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX25ld18yMjdkN2MwNTQxNGViODYxAAgQLi9zcGFya19yc19iZy5qcxxfX3diZ19zdGFja18zYjBkOTc0YmJmMzFlNDRmAB8QLi9zcGFya19yc19iZy5qcxxfX3diZ19lcnJvcl9hNmZhMjAyYjU4YWExY2QzAAIQLi9zcGFya19yc19iZy5qcxxfX3diZ19FcnJvcl8yZTU5YjFiMzdhOWEzNGMzAAoQLi9zcGFya19yc19iZy5qcydfX3diZ19fX3diaW5kZ2VuX3Rocm93XzgxZmM3NzY3OWFmODNiYzYAAhAuL3NwYXJrX3JzX2JnLmpzH19fd2JpbmRnZW5faW5pdF9leHRlcm5yZWZfdGFibGUACRAuL3NwYXJrX3JzX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAxACAQLi9zcGFya19yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMgAKEC4vc3BhcmtfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDMAChAuL3NwYXJrX3JzX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDA0AAoQLi9zcGFya19yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwNQAhA54CnAIFAAECAQIFAQEGBQAiIwcCAwUBAg4OBAECBQMACwUBBQICAAIFAgQkAgMDAgACAAUCABMBAQkBFAACDwEFBRQOAg8ABQIEJQEDAQICBRAFBQEEBQEPAQEMAgEBBwUBAgEBASYBAQICAgICAQIFBAIBDAYBAgMDJwECBAYCAgMBAQICAQUCASgGAAABBAMDAwMEBgYHAwQABwEDAgADDAQEAQEG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NgIEDAELIAAPCyAAQQhqC98XAhp/AnwjAEGwBGsiAyQAIANCADcDmAEgA0IANwOQASADQgA3A4gBIANCADcDgAEgA0IANwN4IANCADcDcCADQgA3A2ggA0IANwNgIANCADcDWCADQgA3A1AgA0IANwNIIANCADcDQCADQgA3AzggA0IANwMwIANCADcDKCADQgA3AyAgA0IANwMYIANCADcDECADQgA3AwggA0IANwMAIANCADcDuAIgA0IANwOwAiADQgA3A6gCIANCADcDoAIgA0IANwOYAiADQgA3A5ACIANCADcDiAIgA0IANwOAAiADQgA3A/gBIANCADcD8AEgA0IANwPoASADQgA3A+ABIANCADcD2AEgA0IANwPQASADQgA3A8gBIANCADcDwAEgA0IANwO4ASADQgA3A7ABIANCADcDqAEgA0IANwOgASADQgA3A9gDIANCADcD0AMgA0IANwPIAyADQgA3A8ADIANCADcDuAMgA0IANwOwAyADQgA3A6gDIANCADcDoAMgA0IANwOYAyADQgA3A5ADIANCADcDiAMgA0IANwOAAyADQgA3A/gCIANCADcD8AIgA0IANwPoAiADQgA3A+ACIANCADcD2AIgA0IANwPQAiADQgA3A8gCIANCADcDwAIgA0HgA2pBAEHQAPwLAEHQ38EAKAIAIgkhBiACQQNrQRhtIgVBACAFQQBKGyILIQUgC0ECdEHg38EAaiEHA0AgAyAEQQN0aiAFQQBIBHxEAAAAAAAAAAAFIAcoAgC3CzkDACAEIAZJIgoEQCAHQQRqIQcgBUEBaiEFIAQgCmoiBCAGTQ0BCwtBACEFA0BBACEEIANBwAJqIAVBA3RqIB0gACAEQQN0aisDACADIAUgBGtBA3RqKwMAoqA5AwAgBSAJSSIGBEAgBSAGaiIFIAlNDQELC0QAAAAAAADwf0QAAAAAAADgfyACIAtBaGxqIgpBGGsiAkH+D0siEBtEAAAAAAAAAABEAAAAAAAAYAMgAkG5cEkiERtEAAAAAAAA8D8gAkGCeEgiEhsgAkH/B0oiExtB/RcgAiACQf0XTxtB/g9rIApBlwhrIBAbIhVB8GggAiACQfBoTRtBkg9qIApBsQdqIBEbIhYgAiASGyATG0H/B2qtQjSGv6IhHiADQdwDaiIOIAlBAnRqIQ9BLyAKa0Ef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ADYCyAIgAiACQagCajYC0AIgAkHIAmoQSQwQCyABKAIAQdyWwQBBCiABKAIEKAIMEQAADA8LIAEoAgBB5pbBAEEMIAEoAgQoAgwRAAAMDgsgASgCAEHylsEAQQ4gASgCBCgCDBEAAAwNCyABKAIAQYCXwQBBCCABKAIEKAIMEQAADAwLIAEoAgBBiJfBAEEDIAEoAgQoAgwRAAAMCwsgASgCAEGLl8EAQQQgASgCBCgCDBEAAAwKCyABKAIAQY+XwQBBDCABKAIEKAIMEQAADAkLIAEoAgBBm5fBAEEPIAEoAgQoAgwRAAAMCAsgASgCAEGql8EAQQ0gASgCBCgCDBEAAAwHCyABKAIAQbeXwQBBDiABKAIEKAIMEQAADAYLIAEoAgAgACgCBCAAKAIIIAEoAgQoAgwRAAAMBQsgACkDCCIJQv////////8HgyEKIAlC////////////AINC//////////f/AFgEQCAJQjSIpyEAIAlCAFMNAiACQagCagwDC0HUosEAQdeiwQAgCUIAWSIAG0HbosEAIApQIgQbIQNBA0EEIAAbQQMgBBshAAwDCyABKAIAQdqXwQBBBCABKAIEKAIMEQAADAMLIAJBLToAqAJBASEIIAJBqQJqCyEGAn8CQAJAAkACQAJAAkACQAJAIABB/w9xIgBFIApQcUUEQCAAQQJJIApCAFJyIQMgCkKAgICAgICACIQgCiAAGyIJQgKGIQogCUIBgyEPAkACQAJAIABBtQhrQcx3IAAbIgBBAEgEQCACQZACakHQwcAAIAAgAEGFolNsQRR2IABBf0drIgBqIgdBBHQiBGspAwAiCSAKQgKEIgsQngEgAkGAAmpB2MHAACAEaykDACINIAsQngEgAkHwAWogAikDmAIiCyACKQOAAnwiDCACKQOIAiALIAxWrXwgACAHQbHZtR9sQRN2a0H8AGpB/wBxQcAAcyIEELsBIAJBsAFqIAkgCiADQX9zrHwiCxCeASACQaABaiANIAsQngEgAkGQAWogAikDuAEiCyACKQOgAXwiDCACKQOoASALIAxWrXwgBBC7ASACQeABaiAJIAoQngEgAkHQAWogDSAKEJ4BIAJBwAFqIAIpA+gBIgkgAikD0AF8Ig0gAikD2AEgCSANVq18IAQQuwEgAikDwAEhCyACKQOQASEJIAIpA/ABIQwg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QYABcjoAAEEAIQMMBAsgAigCCCIDIAIoAgBGBEAgAkHgmMEAEJQBCyACIANBAWo2AgggAigCBCADaiAGOgAAQQAhAwwDCyAGIAMgA0GcqsEAEM8BAAsgBEEUNgIUIAEgBEEUahCwASEDDAELIAggAyADQZyqwQAQzwEACyAEQSBqJAAgA0UNDgwNCyACKAIAIANGBEAgAkHgl8EAEJQBIAIoAgQhBQsgAiADQQFqNgIIIAMgBWpBIjoAAAwLCyACKAIAIANGBEAgAkHwl8EAEJQBIAIoAgQhBQsgAiADQQFqNgIIIAMgBWpB3AA6AAAMCgsgAigCACADRgRAIAJBgJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQS86AAAMCQsgAigCACADRgRAIAJBkJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQg6AAAMCAsgAigCACADRgRAIAJBoJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQw6AAAMBwsgAigCACADRgRAIAJBsJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQo6AAAMBgsgAigCACADRgRAIAJBwJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQ06AAAMBQsgAigCACADRgRAIAJB0JjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQk6AAAMBAsgAyAEIAZBsKHBABDPAQALIAcoAgwhAwwDCyAHQQQ2AhQgACABIAdBFGoQpAEMBgsgBCAGQYChwQAQsQEACwwBCwsgAEECNgIAIAAgAzYCBAwCCyAAIAM2AgggACABNgIEIABBADYCAAwBCyAAIAM2AgggACABNgIEIABBATYCAAsgB0EgaiQAC68QAwd/An4BeyMAQSBrIgUkAAJAAkAgACgCACICRQRAIAAoAhAiAEUNASAAQbu3wABBARBEIQIMAgsCQAJAAkACQAJAAkACQCAAKAIIIgQgACgCBCIGTwRAIAAoAhAiAkUNASACQZK3wABBEBBERQ0BDAcLIAAgBEEBaiIBNgIIIAVBCGogAiAEai0AACIDEM0BIAUoAggiBwRAIAAoAhAiAEUNCCAAIAcgBSgCDBBEIQIMCQsgACAAKAIMQQFqIgc2AgwgB0H1A08EQCAAKAIQIgIEQCAC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AgBBlObBAEGU5sEAKAIAIABqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAA8LAn9BjObBACgCACICQQEgAEEDdnQiA3FFBEBBjObBACACIANyNgIAIABB+AFxQYTkwQBqIgAMAQsgAEH4AXEiAkGE5MEAaiEAIAJBjOTBAGooAgALIQIgACABNgIIIAIgATYCDCABIAA2AgwgASACNgIIDwsCQAJAIAAgAygCACIDKAIEQXhxRgRAIAMhAgwBCyAAQRkgAkEBdmtBACACQR9HG3QhBANAIAMgBEEddkEEcWoiBSgCECICRQ0CIARBAXQhBCACIQMgAigCBEF4cSAARw0ACwsgAigCCCIAIAE2AgwgAiABNgIIIAFBADYCGCABIAI2AgwgASAANgIIDAELIAVBEGogATYCACABIAM2AhggASABNgIMIAEgATYCCAtBACEBQbTmwQBBtObBACgCAEEBayIANgIAIAANAUH848EAKAIAIgAEQANAIAFBAWohASAAKAIIIgANAAsLQbTmwQBB/x8gASABQf8fTRs2AgAPC0H848EAKAIAIgEEQANAIARBAWohBCABKAIIIgENAAsLQbTmwQBB/x8gBCAEQf8fTRs2AgAgAiADTw0AQazmwQBBfzYCAAsL2AkBBH8jAEFAaiICJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOGAECAwQFBgcICQoLDA0ODxAREhMUFRYXGAALIAEoAgAgACgCBCAAKAIIIAEoAgQoAgwRAAAhAQwYCwJAAkACQAJAIAAtAARBAWsOAwECAwALIAIgACgCCDYCBEEUEBgiAEUNGyAAQRBqQc3UwQAoAAA2AAAgAEG91MEA/QAAAP0LAAAgAkEUNgIQIAIgADYCDCACQRQ2AgggAiACQQRqrUKAgICAgAeENwMgIAIgAkEIaq1CgICAgJAHhDcDGCABKAIAIAEoAgQgAkICNwI0IAJBAzYCLCACQYDYwQA2AiggAiACQRhqNgIwIAJBKGoQSSEBIAIoAggiAEUNGiACKAIMIgRBBGsoAgAiA0F4cSIFQQRBCCADQQNxIgMbIABqSQ0cIANBACAFIABBJ2pLGw0dIAQQLgwaCyACIAAtAAVBAnQiACgC+NxB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/AoAAAsgACACIANqNgIIQQALUAEBfyMAQRBrIgIkACACQQhqIAEgASgCACgCBBECACACIAIoAgggAigCDCgCGBECACACKAIEIQEgACACKAIANgIAIAAgATYCBCACQRBqJAALTwECfyAAKAIEIQIgACgCACEDAkAgACgCCCIALQAARQ0AIANBurPAAEEEIAIoAgwRAABFDQBBAQ8LIAAgAUEKRjoAACADIAEgAigCEBEBAAtKAQJ/IAAgACgCBCIDIAJrNgIEIAAgACgCACACIANLciIENgIAQQEhAyAEBH8gAwUgACgCCCIAKAIAIAEgAiAAKAIEKAIMEQAACwtIAQF/AkAgAUHhAGsiAUH/AXFBGUsEQEEAIQEMAQsgAUECdEH8B3EiAigCwNtBIQEgAigC2NpBIQILIAAgAjYCBCAAIAE2AgALQgEBfyMAQSBrIgMkACADQQA2AhAgA0EBNgIEIANCBDcCCCADIAE2AhwgAyAANgIYIAMgA0EYajYCACADIAIQ2QEAC8kCAAJAIAAgAk0EQCAAIAFNIAEgAktyDQEjAEEwayICJAAgAiABNgIEIAIgADYCACACQQI2AgwgAkG0pMAANgIIIAJCAjcCFCACIAJBBGqtQoCAgIAQhDcDKCACIAKtQoCAgIAQhDcDICACIAJBIGo2AhAgAkEIaiADENkBAAsjAEEwayIBJAAgASACNgIEIAEgADYCACABQQI2AgwgAUHgo8AANgIIIAFCAjcCFCABIAFBBGqtQoCAgIAQhDcDKCABIAGtQoCAgIAQhDcDICABIAFBIGo2AhAgAUEIaiADENkBAAsjAEEwayIAJAAgACACNgIEIAAgATYCACAAQQI2AgwgAEGApMAANgIIIABCAjcCFCAAIABBBGqtQoCAgIAQhDcDKCAAIACtQoCAgIAQhDcDICAAIABBIGo2AhAgAEEIaiADENkBAAs3AAJ/IARBAXEEQCAFuxCOAgwBC0GBCEGACCABLQAAGwshBCACIANBBhBLIAQQ6gEgAEEANgIACzgBAX8jAEEQayICJAAgAkEIaiAAIAAoAgAoAgQRAgAgAigCCCABIAIoAgwoAhARAQAgAkEQaiQACzgAAkAgAkGAgMQARg0AIAAgAiABKAIQEQEARQ0AQQEPCyADRQRAQQAPCyAAIAMgBCABKAIMEQAACzwBAn8gASgCBCECIAEoAgAhA0EIEBgiAUUEQAALIAEgAjYCBCABIAM2AgAgAEGI2cEANgIEIAAgATYCAAs5AQF/IwBBEGsiAyQAIAMgATYCDCADIAA2AgggA0EIakHEscAAIANBDGpBxLHAACACQai0wAAQbwALNwEBfyMAQSBrIgEkACABQQA2AhggAUEBNgIMIAFBxJXAADYCCCABQgQ3AhAgAUEIaiAAENkBAAuUBQIHfwF7EGUiEiAKJgECfyMAQdAAayIOJAAgDkKAgICAwAA3AgQgDkEANgIMIA4gDUEARzoALCAOQYCAgPwDNgIoIA5CgICA/IOAgMA/NwIgIA4gDDgCHCAOIAs4AhggDkKAgICAgICAwD83AhBBrOLBACgCAEUEQBBNCwJAAkACQAJAQbDiwQAoAgBFBEBBsOLBAEF/NgIAAn8gCUUEQEEAIQ1BBAwBC0G84sEAKAIAIRFBuOLBACgCACETIAP9EyAE/SABIRVBACENA0AgEiUBIA1BAnQgDUGAgAQgCSANayIPIA9BgIAETxsiD2oiDUECdBAHIQoQZSIQIAomASAPQQJ0Ig8gEUsNAyAOIBAlARAIIhQ2AjAgDiAPNgI0IA8gFEcNBiATIA8gECUBEAkgDiACOAJAIA4gATgCPCAOIAA4AjggEyAPIA5BBGogDkE4aiAVIAUgBiAHIAggDkEQahAkIBBBhAhPBEAgEBC3AQsgCSANSw0AC0Gw4sEAKAIAQQFqIQ8gDigCDCENIA4oAggLIQlBsOLBACAPNgIAIA0QCiEKEGUiDyAKJgEgDyUBEAshECAOIA02AjQgDiAQNgIwIA0gEEcNBCAPJQEgCSANEAwgDigCBCINBEAgCUEEaygCACIQQXhxIhEgDUECdCINQQRBCCAQQQNxIhAbakkNAyAQQQAgESANQSdqSxsNBCAJEC4LIBJBhAhPBEAgEhC3AQsgDkHQAGokACAPDAULQfCSwAAQqwIAC0EAIA8gEUH4k8AAEM8BAAtBqNnBAEEuQdjZwQAQzgEAC0Ho2cEAQS5BmNrBABDOAQALIA5BADYCOCAOQTBqIA5BNGogDkE4ahDUAQALIgklASAJELcBC8ECAQR/IwBBEGsiASQAQdjiwQAtAABBA0cEQCABQQE6AA8gAUEPaiECIwBBIGsiACQAAkACQAJAAkACQAJAAkACQAJAQdjiwQAtAABBAWsOAwQDAQALQdjiwQBBAjoAACACLQAAIAJBADoAAEUNBEHE5sEAKAIAQf////8HcQRAQbzmwQAoAgANBgtByObBACgCAA0BQdjiwQBBAzoAAEHM5sEAQQE2AgALIABBIGokAAwGCwALIABBADYCGCAAQQE2AgwgAEGM1cEANgIIDAMLIABBADYCGCAAQQE2AgwgAEGsgMAANgIIDAILQeCSwAAQngIACyAAQQA2AhggAEEBNgIMIABBvNfBADYCCCAAQgQ3AhAgAEEIakHE18EAENkBAAsgAEIENwIQIABBCGpBqJPAABDZAQALCyABQRBqJAALLQACQCADaUEBRyABQYCAgIB4IANrS3JFBEAgACABIAMgAhA0IgANAQsACyAAC/wBAgJ/AX4jAEEQayICJAAgAkEBOwEMIAIgATYCCCACIAA2AgQjAEEQayIBJAAgAkEEaiIAKQIAIQQgASAANgIMIAEgBDcCBCMAQRBrIgAkACABQQRqIgEoAgAiAigCDCEDAkACQAJAAkAgAigCBA4CAAECCyADDQFBASECQQAhAwwCCyADDQAgAigCACICKAIEIQMgAigCACECDAELIABBgICAgHg2AgAgACABNgIMIABB7NbBACABKAIEIAEoAggiAC0ACCAALQAJEJIBAAsgACADNgIEIAAgAjYCACAAQdDWwQAgASgCBCABKAIIIgAtAAggAC0ACRCSAQALqQICAX8BbwJ/IwBBMGsiDSQAQaziwQAoAgBFBEAQTQsCQEGw4sEAKAIARQRAQbDiwQBBfzYCAEHU4sEAQQA2AgAgDSAMQQBHOgAgIA1BgICA/AM2AhwgDUKAgID8g4CAwD83AhQgDSALOAIQIA0gCjgCDCANQoCAgICAgIDAPzcCBCAJQQJ0IglBvOLBACgCACIMSw0BQbjiwQAoAgAgDSACOAIsIA0gATgCKCANIAA4AiQgCUHM4sEAIA1BJGogA/0TIAT9IAEgBSAGIAcgCCANQQRqECRB0OLBACgCAEHU4sEAKAIAEO8BQbDiwQBBsOLBACgCAEEBajYCACANQTBqJAAMAgtB8JLAABCrAgALQQAgCSAMQeiTwAAQzwEACyIJJQEgCRC3AQvUVQMefwR+AXwjAEEQayIaJAAQZSIbIAAmASMAQYAIayIBJAACQAJAAkACQAJA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CyABQZ+4wABBBBBECx4AIABFBEAQrwIACyAAIAIgAyAEIAUgASgCEBERAAscACAARQRAEK8CAAsgACACIAMgBCABKAIQEQsACxwAIABFBEAQrwIACyAAIAIgAyAEIAEoAhARBwALHAAgAEUEQBCvAgALIAAgAiADIAQgASgCEBEyAAscACAARQRAEK8CAAsgACACIAMgBCABKAIQETMACxwAIABFBEAQrwIACyAAIAIgAyAEIAEoAhARNAALGgAgAEUEQBCvAgALIAAgAiADIAEoAhARAwALGgAgAEUEQBCvAgALIAAgAiADIAEoAhARAAALFAAgASABIAAgACABXRsgACAAXBsLHAEBbyAAJQEgASUBIAEQtwEgAiUBIAIQtwEQAgsYACAARQRAEK8CAAsgACACIAEoAhARAQALHAAgASgCACAAKAIAIAAoAgQgASgCBCgCDBEAAAsfAEG55sEALQAARQRAQbnmwQBBAToAAAsgAEEBNgIACxcAIAAoAgAgASAAKAIEQQxqKAIAEQEACxYBAW8gACABEBQhAhBlIgAgAiYBIAALFgEBbyAAIAEQFSECEGUiACACJgEgAAsWAQFvIAAgARAWIQIQZSIAIAImASAACxkAIAEoAgBBkKTBAEEFIAEoAgQoAgwRAAALDgAgAARAAAsgARDVAQALEwAgASgCBBogAEHclcAAIAEQSQsQACACKAIEGiAAIAEgAhBJCxMAIAEoAgQaIABB8JfAACABEEkLEwAgASgCBBogAEH0lcAAIAEQSQsTACABKAIEGiAAQZSYwAAgARBJCxMAIAEoAgQaIABB4J7AACABEEkLEwAgASgCBBogAEHMv8AAIAEQSQsZACABKAIAQbG9wABBEiABKAIEKAIMEQAACxUAIAEgACgCACIAKAIAIAAoAgQQRAsTACABKAIEGiAAQeCiwQAgARBJCxYAIABBgMjBADYCBCAAIAFBHGo2AgALFgAgAEHEx8EANgIEIAAgAUEcajYCAAsQACAAQQRqED4gAEEcahBdCxkAIAEoAgBB0pfBAEEIIAEoAgQoAgwRAAALGQAgASgCAEGTlcEAQQMgASgCBCgCDBEAAAsZACABKAIAQcjDwQBBFyABKAIEKAIMEQAACxkAIAEoAgBB1MLBAEEUIAEoAgQoAgwRAAALGQAgASgCAEGsw8EAQQog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EGsiASQAIAFB3ZLAADYCDCABIABBB2o2AgggAUEIakHU18EAIAFBDGpB1NfBACAAQQhqQbzVwQAQbwALIwBBIGsiACQAIABBADYCGCAAQQE2AgwgAEGc1sEANgIIIABCBDcCECAAQQhqQaTWwQAQ2QEAC0Hc1cEAEJ4CAAsgAEEANgIYIABBATYCDCAAQYzVwQA2AgggAEIENwIQIABBCGpBzNXBABDZAQALQbjmwQBBADoAACAEQQM6AAALIABBIGokACAJKAIMIQMgAigCUEGAgIAEcSIEDQELIAMgCSgCECIASQ0CIAMgAGshAyAJKAIIIABBDGxqDAELIAkoAggLIQ8gAkGAgICAeDYCWCACQcjOwQApAwAiHzcCXCACIARBF3YiADoAZCACIAA6AHggAkEANgJ0IAJB0NjBADYCcCACIAJByABqNgJoIAIgAkHYAGo2AmwgA0UEQCAfpyEDIB9CIIinDAgLIA8gA0EMbGohGCACQZgBaiEVIAJBlwFqIRkDQAJAIA8oAggiAEUEQCACQQA2AogBIAIgAkHoAGo2AoQBIAJBAzYCkAEgAkECNgLQASACQYQBaiACQZABaiACQdABakEAIAJBACACECUgAigChAEiASABKAIMQQFqNgIMRQ0BDA4LIA8oAgQiCSAAQSxsaiEaA0AgAkEANgKAASACIAJB6ABqNgJ8AkACQAJAAkAgCSgCIEGAgICAeEcEQCACQZABaiIAIAkoAiQiGyAJKAIoIhwQQUECIRcgAigCkAENAyAAIAIoApQBIgggAigCmAEiAUHMusAAQQYQIQJAAkAgAigCkAEEQCACKALMASEAIAIoAsgBIQQgAigCxAEhBiACKALAASEDIAIoArQBQX9GDQEgAkGEAWogFSADIAYgBCAAQQAQVgwCCwNAIAJB0AFqIAJBkAFqECsgAigC0AEiAEEBRg0ACwJAAkAgAEEBaw4CGQEACyACIAIpAtQBNwKIASACQQE2AoQBDAILIAJBADYChAEMAQsgAkGEAWogFSADIAYgBCAAQQEQVgsgAigChAFBAUcNAiACKAKIASIAQQZqIgRFDQECQCABIARNBEAgASAERw0BDAMLIAQgCGosAABBv39KDQILIAggASAEIAFB1LrAABCQAgALIAJBAzYCkAEMAwsgASAIaiEHIAQgCGohAwNAAkAgAyAHRg0AAn8gAywAACIEQQBOBEAgBEH/AXEhBSADQQFqDAELIAMtAAFBP3EhBSAEQR9xIQYgBEFfTQRAIAZBBnQgBXIhBSADQQJqDAELIAMtAAJBP3EgBUEGdHIhBSAEQXBJBEAgBSAGQQx0ciEFIANBA2oMAQsgBkESdEGAgPAAcSADLQADQT9xIAVBBnRyciIFQYCAxABGDQEgA0EEagshAyAFQccAa0F4SyAFQTprQXZPcg0BDAILCyAARQ0BAkAgACABTwRAIAAgAUYNAgwBCyAAIAhqLAAAQb9/TA0AIAAhAQwBCyAIIAFBACAAQeS6wAAQkAIACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBA08EQEGYusAAIAhBAxDGAUUNASAILwAAQdqcAUYNAiABQQNGDQcgCCgAAEHfvunyBEcNB0F8IQNBBCEFIAFBBU8NA0EEIQEMBQsgAUECRw0NIAgvAABB2pwBRw0FQX4hA0ECIQFBAiEFDAQLQQMhBUF9IQMgAUEDRgRAQQMhAQwECyAILAADQb9/Sg0DIAggAUEDIAFBvLrAABCQAgALIAgsAAJBv39MDQFBAiEFQX4hAwwCCyAILAAEQb9/Sg0BIAggAUEEIAFBnLrAABCQAgALIAggAUECIAFBrLrAABCQAgALIAUgCGoiBiABIANqIgBqIQ4gACEDIAYhBQJAA0AgAwRAIANBAWshAyAFLAAAIAVBAWohBUEATg0BDAILCyAARQ0AAn8gBiwAACIEQQBOBEAgBEH/AXEhAyAGQQFqDAELIAYtAAFBP3EhBSAEQR9xIQMgBEFfTQRAIANBBnQgBXIhAyAGQQJqDAELIAYtAAJBP3EgBUEGdHIhBSAEQXBJBEAgBSADQQx0ciEDIAZBA2oMAQsgA0ESdEGAgPAAcSAGLQADQT9xIAVBBnRyciEDIAZBBGoLIQcCQCADQcUARgRAQQAhBAwBCyADQYCAxABGDQFBACEEA0AgA0Ewa0EJSw0CQQAhBQJAA0ACQCADQTBrIgxBCk8EQCAFDQEMAwsgBa1CCn4iH0IgiKcNBSAHIA5GIB+nIgMgDGoiBSADSXINBQJ/IAcsAAAiA0EATgRAIANB/wFxIQMgB0EBagwBCyAHLQABQT9xIQogA0EfcSEMIANBX00EQCAMQQZ0IApyIQMgB0ECagwBCyAHLQACQT9xIApBBnRyIQogA0FwSQRAIAogDEEMdHIhAyAHQQNqDAELIAxBEnRBgIDwAHEgBy0AA0E/cSAKQQZ0cnIhAyAHQQRqCyEHIANBgIDEAEcNAQwFCwsDQCAHIA5GDQQCfyAHLAAAIgNBAE4EQCADQf8BcSEDIAdBAWoMAQsgBy0AAUE/cSEKIANBH3EhDCADQV9NBEAgDEEGdCAKciEDIAdBAmoMAQsgBy0AAkE/cSAKQQZ0ciEKIANBcEkEQCAKIAxBDHRyIQMgB0EDagwBCyAMQRJ0QYCA8ABxIActAANBP3EgCkEGdHJyIgNBgIDEAEYNBSAHQQRqCyEHIAVBAWsiBQ0ACwsgBEEBaiEEIANBxQBHDQALCyAOIAdrIQ4MCAsgAUECSw0BC0ECIQEgCC0AAEHSAEYNAQwHCyAILwAAQd+kAUYEQCAILAACIgNBv39MDQQgCEECaiEAQX4hBQwFCyAILQAAQdIARw0BCyAILAABIgNBv39MDQEgCEEBaiEAQX8hBQwDCyABQQNGDQRBsrnAACAIQQMQxgENBCAILAADIgNBv39KBEAgCEEDaiEAQX0hBQwDCyAIIAFBAyABQbi5wAAQkAIACyAIIAFBASABQci5wAAQkAIACyAIIAFBAiABQdi5wAAQkAIACyADQcEAa0H/AXFBGUsNASABIAVqIQRBACEDA0AgAyAERwRAIAAgA2ogA0EBaiEDLAAAQQBODQEMAwsLIBX9DAAAAAAAAAAAAAAAAAAAAAD9CwIAIAIgBDYClAEgAiAANgKQAQJAIAJBkAFqQQAQH0UEQCACKAKQASIFRQ0DIAIoApgBIgMgAi0AlAEgAi8AlQEgGS0AAEEQdHJBCHRyIgdPDQEgAyAFai0AAEHBAGtB/wFxQRpPDQEgAigCnAEhBiACQgA3AqABIAIgBjYCnAEgAiADNgKYASACIAc2ApQBIAIgBTYCkAEgAkGQAWpBABAfDRYgAigCkAEiBUUNAyACKAKYASEDIAIoApQBIQcMAQsMFQsCQAJAIANFDQAgAyAHTwRAIAMgB0YNAQwCCyADIAVqLAAAQb9/TA0BCyAHIANrIQ4gAyAFaiEHQQAhBgwBCyAFIAcgAyAHQfi5wAAQkAIACwJ/IA5FBEBBACERIAYhEiAAIRMgBCEUIAghECABIQ0gBwwBCyAHLQAAQS5HDQEgByAOaiEdQS4hBSAHIQMDQAJAAn8CQCAFwEEASARAIAMtAAFBP3EhCiAFQR9xIQwgBUH/AXEiHkHfAUsNASAMQQZ0IApyIQUgA0ECagwCCyAFQf8BcSEFIANBAWoMAQsgAy0AAkE/cSAKQQZ0ciEFIB5B8AFJBEAgBSAMQQx0ciEFIANBA2oMAQsgDEESdEGAgPAAcSADLQADQT9xIAVBBnRyciIFQYCAxABGDQEgA0EEagshAwJAIAVB3///AHFBwQBrQRpJIAVBMGtBCklyIAVBIWtBD0lyDQACQCAFQTprDicBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEACyAFQfsAa0EDSw0ECyADIB1GDQAgAy0AACEFDAELCyAGIRIgACETIAQhFCAIIRAgASENIA4hESAHCyEWQQEhFwsgAiARNgKsASACIBY2AqgBIAIgDTYCpAEgAiAQNgKgASACIBQ2ApwBIAIgEzYCmAEgAiASNgKUASACIBw2ArQBIAIgGzYCsAEgAiAXNgKQAQsgCSgCECIAQQJHBEAgAiAJKQIYNwLUAQsgAiAANgLQASACQfwAaiACQZABaiACQdABaiAJKAIAIAkoAgQgCSgCCCAJKAIMECUgAigCfCIBIAEoAgxBAWo2AgwNDiAJQSxqIgkgGkcNAAsLIBggD0EMaiIPRw0ACwwGCyAAIAMgA0HA2MEAEM8BAAtBASEDDAgLIwBBMGsiACQAIABBGDYCDCAAQciXwAA2AgggAEEBNgIUIABB2MzBADYCECAAQgE3AhwgACAAQQhqrUKAgICAoAGENwMoIAAgAEEoajYCGCAAQRBqQeCXwAAQ2QEACyAGIAsgBCgCDBEBACEDDAYLIAJBPGpBmNjBAEEVEMgBDQcMBAsgAkE8akGt2MEAQRIQyAFFDQMMBgsgAigCWCIARQ0CIABBgICAgHhHDQEgAi0AXCEDIAIoAmALIQAgA0H/AXFBA0cNASAAKAIAIQEgAEEEaigCACIEKAIAIgYEQCABIAYRBAALIAQoAgQiBARAIAFBBGsoAgAiBkF4cSIDQQRBCCAGQQNxIgYbIARqSQ0IIAZBACADIARBJ2pLGw0JIAEQLgsgAEEEaygCACIBQXhxIgRBEEEUIAFBA3EiARtJDQcgAUEAIARBNE8bDQggABAuDAELIAIoAlwgABC8AQsgAkE4aiACQcQAaigCADYCACACIAIpAjw3AzACQAJAIAsoAgBB/JbAAEECIAsoAgQoAgwRAAANAAJAAkAgAigCOCIJQRBPBEBB/pbAACACKAI0QRAQxgFFDQELIAJBADYCoAEgAkEBNgKUASACQaCXwAA2ApABIAJCBDcCmAEgCygCACALKAIEIAJBkAFqEPUBRQ0BDAILIAJBMGoiACgCBCEBAkACQAJAIAAoAggiBEEBTQRAIARBAUcNAUEAIQkgAEEANgIIIAAoAgAEfyABBSAAQQBBARCMASAAKAIIIQkgACgCBAsgCWpB0wA6AAAgACAJQQFqNgIIDAMLIAEsAAFBv39KDQELQZyWwABBKkGol8AAEM4BAAsgAUHTADoAACAAIAQ2AggLIAIoAjghCQsgAkEwaiEGIAIoAjQhA0EAIQ0CQCAJRQ0AIAMgCWohAANAAkAgACIBQQFrIgAsAAAiBEEASARAIARBP3ECfyABQQJrIgAtAAAiBMAiBUFATgRAIARBH3EMAQsgBUE/cQJ/IAFBA2siAC0AACIEwCIFQUBOBEAgBEEPcQwBCyAFQT9xIAFBBGsiAC0AAEEHcUEGdHILQQZ0cgtBBnRyIQQLAkAgBEEgRiAEQQlrQQVJcg0AIARBgAFJDQECQAJAAkACQCAEQQh2IgVBFmsOGwAFBQUFBQUFBQUBBQUFBQUFBQUFBQUFBQUFAgMLIARBgC1GDQMMBAsgBEH/AXEtALTFQUECcQ0CDAMLIARBgOAARw0CDAELIAUNASAEQf8BcS0AtMVBQQFxRQ0BCyAAIANHDQEMAgsLIAEgA2shDQsCQAJAIAYoAggiACANTwRAIA1FIAAgDU1yRQRAIAYoAgQgDWosAABBv39MDQILIAYgDTYCCAsMAQtBlaTBAEEwQbiXwAAQzgEACyACQQE2ApQBIAJB2MzBADYCkAEgAkIBNwKcASACIAatQoCAgIDQAYQ3A2ggAiACQegAajYCmAEgCygCACALKAIEIAJBkAFqEPUBRQ0BCyACKAIwIgAEQCACKAI0IgFBBGsoAgAiBEF4cSIGQQRBCCAEQQNxIgQbIABqSQ0HIARBACAGIABBJ2pLGw0IIAEQLgtBASEDDAELIAIoAjAiAARAIAIoAjQgABC8AQtBACEDCyACQeABaiQAIAMMBgsCQCACKAJYIgBBgICAgHhHBEAgAEUNAiACKAJcIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIABqSQ0FIAFFIAQgAEEnak1yDQEMBgsgAi0AXEEDRw0BIAIoAmAiAygCACEAIANBBGooAgAiASgCACIEBEAgACAEEQQACyABKAIEIgEEQCAAQQRrKAIAIgRBeHEiBkEEQQggBEEDcSIEGyABakkNBSAEQQAgBiABQSdqSxsNBiAAEC4LIANBBGsoAgAiAEF4cSIBQRBBFCAAQQNxIgAbSQ0EIABFDQAgAUE0Tw0FCyADEC4LQYijwQBBNyACQd8BakGMlsAAQcCjwQAQnwEACwALQdC4wABBPSACQd8BakHAuMAAQei5wAAQnwEAC0Go2cEAQS5B2NnBABDOAQALQejZwQBBLkGY2sEAEM4BAAsLCAAgACUBEAQLDABB9LPAAEEyEBEACwcAEBIQ1wELBABBAQsEAEEACwIACwub3wE+AEGAgMAAC5UTT25jZSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAAAABAAKgAAAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI2L3NyYy9sZWdhY3kucnMAc3BhcmstcnMvc3JjL3JheWNhc3QucnMAbGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYW55aG93LTEuMC45OC9zcmMvZm10LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9pbXBscy5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3lzL3N5bmMvbXV0ZXgvbm9fdGhyZWFkcy5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvc3lzL3N5bmMvb25jZS9ub190aHJlYWRzLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYW55aG93LTEuMC45OC9zcmMvZXJyb3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL2Vycm9yLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvc3RyL3BhdHRlcm4ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9jb3JlL3NyYy9vcHMvZnVuY3Rpb24ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3luYy9sYXp5X2xvY2sucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAGxpYnJhcnkvc3RkL3NyYy9wYW5pY2tpbmcucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjExNy9zcmMvZXh0ZXJucmVmLnJzAGxpYnJhcnkvY29yZS9zcmMvdW5pY29kZS9wcmludGFibGUucnMAc3BhcmstbGliL3NyYy9zcGxhdF9lbmNvZGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL2RlLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvc3RkL3NyYy9zeW5jL3BvaXNvbi9vbmNlLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3NsaWNlLnJzAGxpYnJhcnkvc3RkL3NyYy9iYWNrdHJhY2UucnMAL3J1c3QvZGVwcy9oYXNoYnJvd24tMC4xNS41L3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwBsaWJyYXJ5L3N0ZC9zcmMvLi4vLi4vYmFja3RyYWNlL3NyYy9zeW1ib2xpemUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAc3BhcmstbGliL3NyYy9yYWQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL3JlYWQucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuMTAvc3JjL2RsbWFsbG9jLnJzAHNwYXJrLXJzL3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9jb25zb2xlX2Vycm9yX3BhbmljX2hvb2stMC4xLjcvc3JjL2xpYi5ycwAvcnVzdC9kZXBzL3J1c3RjLWRlbWFuZ2xlLTAuMS4yNi9zcmMvbGliLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtd2FzbS1iaW5kZ2VuLTAuNi41L3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMu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//////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAEAAgADAAQABQAGAAcACAAJAP//////////////////CgALAAwADQAOAA8A/////////////////////////////////////////////////////////////////////woACwAMAA0ADgAPAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAEAAgADAAQABQAGAAcACAAJAA//////////////////+gALAAwADQAOAA8AD/////////////////////////////////////////////////////////////////////oACwAMAA0ADgAPAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////MgcQAGIAAACzAQAAGgAAADIHEABiAAAAAAIAABMAAAAyBxAAYgAAAAUCAAAzAAAAMgcQAGIAAAAJAgAAPgAAADIHEABiAAAADwIAADoAAAAyBxAAYgAAAKsBAAA9AAAAMgcQAGIAAACmAQAARQAAACBhdCBsaW5lIAAAAEACEABjAAAA9wEAACEAAABAAhAAYwAAAPsBAAAMAAAAIGNvbHVtbiBAAhAAYwAAAAICAAAhAAAAQAIQAGMAAAALAgAAKgAAAEACEABjAAAADwIAACwAAABAAhAAYwAAABQCAAAJAAAAaW5mLWluZk5hTgAAPgAAAAwAAAAEAAAAPwAAAEAAAABYAEGAo8EAC/sHAQAAAEIAAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5ALcDEABLAAAABQsAAA4AAACkAhAATwAAADwGAAAUAAAApAIQAE8AAAA8BgAAIQAAAKQCEABPAAAAMAYAABQAAACkAhAATwAAADAGAAAhAAAARXJyb3Jhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmlzX2NoYXJfYm91bmRhcnkobmV3X2xlbilFcnJvcigsIGxpbmU6ICwgY29sdW1uOiAAAABFUhAABgAAAEtSEAAIAAAAU1IQAAoAAAD/axAAAQAAAGludmFsaWQgdHlwZTogAACAUhAADgAAABtWEAALAAAAaW52YWxpZCB2YWx1ZTogAKBSEAAPAAAAG1YQAAsAAABFT0Ygd2hpbGUgcGFyc2luZyBhIGxpc3RFT0Ygd2hpbGUgcGFyc2luZyBhbiBvYmplY3RFT0Ygd2hpbGUgcGFyc2luZyBhIHN0cmluZ0VPRiB3aGlsZSBwYXJzaW5nIGEgdmFsdWVleHBlY3RlZCBgOmBleHBlY3RlZCBgLGAgb3IgYF1gZXhwZWN0ZWQgYCxgIG9yIGB9YGV4cGVjdGVkIGlkZW50ZXhwZWN0ZWQgdmFsdWVleHBlY3RlZCBgImBpbnZhbGlk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aWQgUkFEIG1hZ2ljOiAweAAAAABmEAAVAAAAAgBBqszBAAsBCABBtMzBAAt1IAAA6W1dy9YsUOtjeEGmV3Ebi7n1Ky+JZFpnOv7tcjMv54x1AQAAAAAAAAACAAAAAAAAAAEAAAABAAAAAAAAACAAAOggICAgICAgICAgICAgYXQgOgAAAIhmEAABAAAACjogAAEAAAAAAAAAlWYQAAIAAAACAEGyzcEACwEEAEG8zcEACzEgAADoIC0gAAEAAAAAAAAAwGYQAAMAAAAgICAgICA8dW5rbm93bj4AAgAAAAAAAAACAEH4zcEAC50NIACA4O+/vQAyBhAANAAAAGcBAAAwAAAAb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybRBnEAAoAAAAJAAAAAAAAAACAAAAOGcQAGVudGl0eSBub3QgZm91bmRwZXJtaXNzaW9uIGRlbmllZGNvbm5lY3Rpb24gcmVmdXNlZGNvbm5lY3Rpb24gcmVzZXRob3N0IHVucmVhY2hhYmxlbmV0d29yayB1bnJlYWNoYWJsZWNvbm5lY3Rpb24gYWJvcnRlZG5vdCBjb25uZWN0ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2Ug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"); +} +class Asinh extends UnaryOp { + constructor({ x }) { + super({ a: x, outTypeFunc: (aType) => aType, outKey: "asinh" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.asinh} = asinh(${inputs.a});` + ]; } - const imports = __wbg_get_imports(); - if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) { - module_or_path = fetch(module_or_path); +} +class Acosh extends UnaryOp { + constructor({ x }) { + super({ a: x, outTypeFunc: (aType) => aType, outKey: "acosh" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.acosh} = acosh(${inputs.a});` + ]; + } +} +class Atanh extends UnaryOp { + constructor({ x }) { + super({ a: x, outTypeFunc: (aType) => aType, outKey: "atanh" }); + this.statements = ({ inputs, outputs }) => [ + `${outputs.atanh} = atanh(${inputs.a});` + ]; } - const { instance, module } = await __wbg_load(await module_or_path, imports); - return __wbg_finalize_init(instance); } +const dyno = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + Abs, + Acos, + Acosh, + Add, + All, + And, + Any, + Asin, + Asinh, + Atan, + Atan2, + Atanh, + BVec2, + BVec3, + BVec4, + BinaryOp, + Bool, + Ceil, + Clamp, + Combine, + CombineCovSplat, + CombineGsplat, + CompMult, + CompXor, + Compilation, + Cos, + Cosh, + CovSplat, + Cross, + DebugColorHue, + Degrees, + Determinant, + Distance, + Div, + Dot, + Dyno, + DynoBlock, + DynoBool, + DynoBvec2, + DynoBvec3, + DynoBvec4, + DynoConst, + DynoFloat, + DynoInt, + DynoIsampler2D, + DynoIsampler2DArray, + DynoIsampler3D, + DynoIsamplerCube, + DynoIvec2, + DynoIvec3, + DynoIvec4, + DynoLiteral, + DynoMat2, + DynoMat2x2, + DynoMat2x3, + DynoMat2x4, + DynoMat3, + DynoMat3x2, + DynoMat3x3, + DynoMat3x4, + DynoMat4, + DynoMat4x2, + DynoMat4x3, + DynoMat4x4, + DynoOutput, + DynoProgram, + DynoProgramTemplate, + DynoRemapIndex, + DynoSampler2D, + DynoSampler2DArray, + DynoSampler2DArrayShadow, + DynoSampler2DShadow, + DynoSampler3D, + DynoSamplerCube, + DynoSamplerCubeShadow, + DynoUint, + DynoUniform, + DynoUsampler2D, + DynoUsampler2DArray, + DynoUsampler3D, + DynoUsamplerCube, + DynoUvec2, + DynoUvec3, + DynoUvec4, + DynoValue, + DynoVec2, + DynoVec3, + DynoVec4, + Equal, + Exp, + Exp2, + ExtendVec, + FaceForward, + Float, + FloatBitsToInt, + FloatBitsToUint, + Floor, + Fract, + GreaterThan, + GreaterThanEqual, + Gsplat, + GsplatNormal, + GsplatToCovSplat, + Hash, + Hash2, + Hash3, + Hash4, + HashFloat, + HashVec2, + HashVec3, + HashVec4, + IMod, + IVec2, + IVec3, + IVec4, + Int, + IntBitsToFloat, + Inverse, + InverseSqrt, + IsInf, + IsNan, + Length, + LessThan, + LessThanEqual, + Log, + Log2, + Mat2, + Mat3, + Mat4, + Max, + Min, + Mix, + Mod, + Modf, + Mul, + Neg, + Normalize, + NormalizedDepth, + Not, + NotEqual, + NumCovSplats, + NumExtSplats, + NumPackedSplats, + Or, + Outer, + OutputCovSplat, + OutputExtCovSplat, + OutputExtendedSplat, + OutputPackedSplat, + OutputRgba8, + PackHalf2x16, + PackSnorm2x16, + PackUnorm2x16, + PagedSplatTexCoord, + PcgHash, + PcgMix, + PcgNext, + Pow, + ProjectH, + Radians, + ReadCovSplat, + ReadExtSplat, + ReadPackedSplat, + ReadPackedSplatRange, + ReflectVec, + RefractVec, + Round, + Select, + Shl, + Shr, + Sign, + SimpleCast, + Sin, + Sinh, + Smoothstep, + SplatTexCoord, + Split, + SplitCovSplat, + SplitGsplat, + Sqr, + Sqrt, + Step, + Sub, + Swizzle, + TCovSplats, + TExtSplats, + TPackedSplats, + Tan, + Tanh, + TexelFetch, + Texture, + TextureSize, + TransformDir, + TransformGsplat, + TransformPosition, + TransformQuaternion, + Transpose, + TrinaryOp, + Trunc, + UVec2, + UVec3, + UVec4, + Uint, + UintBitsToFloat, + UintToRgba8, + UnaryOp, + UnpackHalf2x16, + UnpackSnorm2x16, + UnpackUnorm2x16, + Vec2, + Vec3, + Vec4, + Xor, + abs, + acos, + acosh, + add, + all, + and, + any, + arrayIndex, + arrayLength, + asin, + asinh, + atan, + atan2, + atanh, + bool, + bvec2, + bvec3, + bvec4, + ceil, + clamp, + combine, + combineCovSplat, + combineGsplat, + comment, + compMult, + compXor, + cos, + cosh, + cross, + debugColorHue, + defineCovSplat, + defineExtSplats, + defineGsplat, + defineGsplatNormal, + definePackedSplats, + degrees, + determinant, + distance, + div, + dot, + dyno: dyno$1, + dynoBlock, + dynoBool, + dynoBvec2, + dynoBvec3, + dynoBvec4, + dynoConst, + dynoDeclare, + dynoFloat, + dynoFor, + dynoIf, + dynoInt, + dynoIsampler2D, + dynoIsampler2DArray, + dynoIsampler3D, + dynoIsamplerCube, + dynoIvec2, + dynoIvec3, + dynoIvec4, + dynoLiteral, + dynoMat2, + dynoMat2x2, + dynoMat2x3, + dynoMat2x4, + dynoMat3, + dynoMat3x2, + dynoMat3x3, + dynoMat3x4, + dynoMat4, + dynoMat4x2, + dynoMat4x3, + dynoMat4x4, + dynoSampler2D, + dynoSampler2DArray, + dynoSampler2DArrayShadow, + dynoSampler2DShadow, + dynoSampler3D, + dynoSamplerCube, + dynoSamplerCubeShadow, + dynoSwitch, + dynoUint, + dynoUsampler2D, + dynoUsampler2DArray, + dynoUsampler3D, + dynoUsamplerCube, + dynoUvec2, + dynoUvec3, + dynoUvec4, + dynoVec2, + dynoVec3, + dynoVec4, + equal, + exp, + exp2, + extendVec, + faceforward, + float, + floatBitsToInt, + floatBitsToUint, + floor, + fract, + greaterThan, + greaterThanEqual, + gsplatNormal, + gsplatToCovSplat, + hash, + hash2, + hash3, + hash4, + hashFloat, + hashVec2, + hashVec3, + hashVec4, + imod, + int, + intBitsToFloat, + inverse, + inversesqrt, + isAllFloatType, + isBoolType, + isFloatType, + isInf, + isIntType, + isMat2, + isMat3, + isMat4, + isMatFloatType, + isNan, + isScalarType, + isUintType, + isVector2Type, + isVector3Type, + isVector4Type, + isVectorType, + ivec2, + ivec3, + ivec4, + length, + lessThan, + lessThanEqual, + literalNegOne, + literalOne, + literalZero, + log, + log2, + mat2, + mat3, + mat4, + max, + min, + mix, + mod, + modf, + mul, + neg, + normalize, + normalizedDepth, + not, + notEqual, + numCovSplats, + numExtSplats, + numPackedSplats, + numberAsFloat, + numberAsInt, + numberAsUint, + or, + outer, + outputCovSplat, + outputCovSplatDepth, + outputExtCovSplat, + outputExtendedSplat, + outputPackedSplat, + outputRgba8, + outputSplatDepth, + packHalf2x16, + packSnorm2x16, + packUnorm2x16, + pagedSplatTexCoord, + pcgHash, + pcgMix, + pcgNext, + pow, + projectH, + radians, + readCovSplat, + readExtSplat, + readPackedSplat, + readPackedSplatRange, + reflectVec, + refractVec, + remapIndex, + round, + sameSizeIvec, + sameSizeUvec, + sameSizeVec, + select, + shl, + shr, + sign, + sin, + sinh, + smoothstep, + splatTexCoord, + split, + splitCovSplat, + splitGsplat, + sqr, + sqrt, + step, + sub, + swizzle, + tan, + tanh, + texelFetch, + texture, + textureSize, + transformDir, + transformGsplat, + transformPos, + transformQuat, + transpose, + trunc, + typeLiteral, + uint, + uintBitsToFloat, + uintToRgba8, + uniform, + unindent, + unindentLines, + unpackHalf2x16, + unpackSnorm2x16, + unpackUnorm2x16, + uvec2, + uvec3, + uvec4, + valType, + vec2, + vec3, + vec4, + vectorDim, + vectorElementType, + xor +}, Symbol.toStringTag, { value: "Module" })); var computeUvec4_default = "precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout uvec4 target;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n target = uvec4(0u, 0u, 0u, 0u);\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}"; var computeUvec4_Vec4_default = "precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out vec4 target3;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n \n target = uvec4(0u, 0u, 0u, 0u);\n\n \n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}"; var computeUvec4x2_Vec4_default = "precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out uvec4 target2;\nlayout(location = 2) out vec4 target3;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n \n target = uvec4(0u, 0u, 0u, 0u);\n target2 = uvec4(0u, 0u, 0u, 0u);\n\n \n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}"; var computeVec4_default = "precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout vec4 target;\n\n{{ GLOBALS }}\n\nvoid computeReadback(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n if ((index >= 0) && (index < targetCount)) {\n computeReadback(index);\n } else {\n target = vec4(0.0, 0.0, 0.0, 0.0);\n }\n}"; -var oldSplatFragment_default = "precision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool stochastic;\nuniform bool disableFalloff;\nuniform float falloff;\n\nuniform bool splatTexEnable;\nuniform sampler3D splatTexture;\nuniform mat2 splatTexMul;\nuniform vec2 splatTexAdd;\nuniform float splatTexNear;\nuniform float splatTexFar;\nuniform float splatTexMid;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z = dot(vSplatUv, vSplatUv);\n if (!splatTexEnable) {\n if (z > (maxStdDev * maxStdDev)) {\n discard;\n }\n } else {\n vec2 uv = splatTexMul * vSplatUv + splatTexAdd;\n float ndcZ = vNdc.z;\n float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near));\n float clampedFar = max(splatTexFar, splatTexNear);\n float clampedDepth = clamp(depth, splatTexNear, clampedFar);\n float logDepth = log2(clampedDepth + 1.0);\n float logNear = log2(splatTexNear + 1.0);\n float logFar = log2(clampedFar + 1.0);\n\n float texZ;\n if (splatTexMid > 0.0) {\n float clampedMid = clamp(splatTexMid, splatTexNear, clampedFar);\n float logMid = log2(clampedMid + 1.0);\n texZ = (clampedDepth <= clampedMid) ?\n (0.5 * ((logDepth - logNear) / (logMid - logNear))) :\n (0.5 * ((logDepth - logMid) / (logFar - logMid)) + 0.5);\n } else {\n texZ = (logDepth - logNear) / (logFar - logNear);\n }\n\n vec4 modulate = texture(splatTexture, vec3(uv, 1.0 - texZ));\n rgba *= modulate;\n }\n\n rgba.a *= mix(1.0, exp(-0.5 * z), falloff);\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n if (stochastic) {\n const bool STEADY = false;\n uint uTime = STEADY ? 0u : floatBitsToUint(time);\n uvec2 coord = uvec2(gl_FragCoord.xy);\n uint state = uTime + 0x9e3779b9u * coord.x + 0x85ebca6bu * coord.y + 0xc2b2ae35u * uint(vSplatIndex);\n state = state * 747796405u + 2891336453u;\n uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u;\n hash = (hash >> 22u) ^ hash;\n float rand = float(hash) / 4294967296.0;\n if (rand < rgba.a) {\n fragColor = vec4(rgba.rgb, 1.0);\n } else {\n discard;\n }\n } else {\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n }\n}"; -var oldSplatVertex_default = "precision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nattribute uint splatIndex;\n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\n\nuniform vec2 renderSize;\nuniform uint numSplats;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool stochastic;\nuniform bool enable2DGS;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2DArray packedSplats;\nuniform vec4 rgbMinMaxLnScaleMinMax;\n\nvoid main() {\n \n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n if (uint(gl_InstanceID) >= numSplats) {\n return;\n }\n\n ivec3 texCoord;\n if (stochastic) {\n texCoord = ivec3(\n uint(gl_InstanceID) & SPLAT_TEX_WIDTH_MASK,\n (uint(gl_InstanceID) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK,\n (uint(gl_InstanceID) >> SPLAT_TEX_LAYER_BITS)\n );\n } else {\n if (splatIndex == 0xffffffffu) {\n \n return;\n }\n texCoord = ivec3(\n splatIndex & SPLAT_TEX_WIDTH_MASK,\n (splatIndex >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK,\n splatIndex >> SPLAT_TEX_LAYER_BITS\n );\n }\n uvec4 packedData = texelFetch(packedSplats, texCoord, 0);\n\n vec3 center, scales;\n vec4 quaternion, rgba;\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, rgbMinMaxLnScaleMinMax);\n\n if (rgba.a < minAlpha) {\n return;\n }\n bvec3 zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n\n \n vec3 viewCenter = quatVec(renderToViewQuat, center) + renderToViewPos;\n\n \n if (viewCenter.z >= 0.0) {\n return;\n }\n\n \n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n \n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n \n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n \n vSplatIndex = splatIndex;\n\n \n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vRgba = rgba;\n vSplatUv = position.xy * maxStdDev;\n\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n return;\n }\n\n \n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n\n \n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n mat3 cov3D = RS * transpose(RS);\n\n \n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if(isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n \n \n \n \n \n \n \n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n \n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n \n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n \n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n\n \n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = normalize(vec2((abs(b) < 0.001) ? 1.0 : b, eigen1 - a));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, maxStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, maxStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n \n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vRgba = rgba;\n vSplatUv = position.xy * maxStdDev;\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n}"; var splatDefines_default = "const float LN_SCALE_MIN = -12.0;\nconst float LN_SCALE_MAX = 9.0;\n\nconst uint SPLAT_TEX_WIDTH_BITS = 11u;\nconst uint SPLAT_TEX_HEIGHT_BITS = 11u;\nconst uint SPLAT_TEX_DEPTH_BITS = 11u;\nconst uint SPLAT_TEX_LAYER_BITS = SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nconst uint SPLAT_TEX_WIDTH = 1u << SPLAT_TEX_WIDTH_BITS;\nconst uint SPLAT_TEX_HEIGHT = 1u << SPLAT_TEX_HEIGHT_BITS;\nconst uint SPLAT_TEX_DEPTH = 1u << SPLAT_TEX_DEPTH_BITS;\n\nconst uint SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1u;\nconst uint SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1u;\nconst uint SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1u;\n\nconst uint F16_INF = 0x7c00u;\nconst float PI = 3.1415926535897932384626433832795;\n\nconst float INFINITY = 1.0 / 0.0;\nconst float NEG_INFINITY = -INFINITY;\n\nfloat sqr(float x) {\n return x * x;\n}\n\nfloat pow4(float x) {\n float x2 = x * x;\n return x2 * x2;\n}\n\nfloat pow8(float x) {\n float x4 = pow4(x);\n return x4 * x4;\n}\n\nvec3 srgbToLinear(vec3 rgb) {\n return pow(rgb, vec3(2.2));\n}\n\nvec3 linearToSrgb(vec3 rgb) {\n return pow(rgb, vec3(1.0 / 2.2));\n}\n\nuint encodeQuatOctXy88R8(vec4 q) {\n \n if (q.w < 0.0) {\n q = -q;\n }\n \n float theta = 2.0 * acos(q.w);\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n \n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n \n \n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n \n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n \n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n \n uint quantU = uint(clamp(round(u_f * 255.0), 0.0, 255.0));\n uint quantV = uint(clamp(round(v_f * 255.0), 0.0, 255.0));\n \n \n \n uint angleInt = uint(clamp(round((theta / 3.14159265359) * 255.0), 0.0, 255.0));\n \n \n return (angleInt << 16u) | (quantV << 8u) | quantU;\n}\n\nvec4 decodeQuatOctXy88R8(uint encoded) {\n \n uint quantU = encoded & uint(0xFFu); \n uint quantV = (encoded >> 8u) & uint(0xFFu); \n uint angleInt = encoded >> 16u; \n\n \n float u_f = float(quantU) / 255.0;\n float v_f = float(quantV) / 255.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n \n float theta = (float(angleInt) / 255.0) * 3.14159265359;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\nuint encodeQuatOctXy1010R12(vec4 q) {\n \n if (q.w < 0.0) {\n q = -q;\n }\n \n float halfTheta = acos(q.w);\n float theta = 2.0 * halfTheta;\n float s = sin(halfTheta);\n \n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n \n \n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n \n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n \n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n \n uint quantU = uint(clamp(round(u_f * 1023.0), 0.0, 1023.0));\n uint quantV = uint(clamp(round(v_f * 1023.0), 0.0, 1023.0));\n \n \n \n uint angleInt = uint(clamp(round((theta / PI) * 4095.0), 0.0, 4095.0));\n \n \n return (angleInt << 20u) | (quantV << 10u) | quantU;\n}\n\nvec4 decodeQuatOctXy1010R12(uint encoded) {\n \n uint quantU = encoded & uint(0x3FFu); \n uint quantV = (encoded >> 10u) & uint(0x3FFu); \n uint angleInt = encoded >> 20u; \n\n \n float u_f = float(quantU) / 1023.0;\n float v_f = float(quantV) / 1023.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n \n float theta = (float(angleInt) / 4095.0) * PI;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\nuvec4 packSplatEncoding(\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n uint uQuat = encodeQuatOctXy88R8(quaternion);\n \n \n uvec3 uQuat3 = uvec3(uQuat & 0xffu, (uQuat >> 8u) & 0xffu, (uQuat >> 16u) & 0xffu);\n\n \n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n uvec3 uScales = uvec3(\n (scales.x == 0.0) ? 0u : uint(round(clamp((log(scales.x) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.y == 0.0) ? 0u : uint(round(clamp((log(scales.y) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.z == 0.0) ? 0u : uint(round(clamp((log(scales.z) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u\n );\n\n \n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) | (uQuat3.x << 16u) | (uQuat3.y << 24u);\n uint word3 = uScales.x | (uScales.y << 8u) | (uScales.z << 16u) | (uQuat3.z << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\nuvec4 packSplat(vec3 center, vec3 scales, vec4 quaternion, vec4 rgba) {\n return packSplatEncoding(center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nvoid unpackSplatEncoding(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec4(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu)\n ).xyz;\n\n uvec3 uScales = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n scales = vec3(\n (uScales.x == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.x - 1u) * lnScaleScale),\n (uScales.y == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.y - 1u) * lnScaleScale),\n (uScales.z == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.z - 1u) * lnScaleScale)\n );\n\n uint uQuat = ((word2 >> 16u) & 0xFFFFu) | ((word3 >> 8u) & 0xFF0000u);\n quaternion = decodeQuatOctXy88R8(uQuat);\n \n \n}\n\nvoid unpackSplat(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nuvec4 packSplatCovEncoding(\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 255.0 / (2.0 * (lnScaleMax - lnScaleMin));\n uvec3 uXxyyzz = uvec3(round(clamp((log(xxyyzz) - 2.0 * lnScaleMin) * diagScale, 0.0, 255.0)));\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n ivec3 iXyxzyzCor = ivec3(round(xyxzyzCor * 127.0));\n\n \n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) |\n ((uint(iXyxzyzCor.y) & 0xffu) << 16u) |\n ((uint(iXyxzyzCor.z) & 0xffu) << 24u);\n uint word3 =\n uXxyyzz.x | (uXxyyzz.y << 8u) | (uXxyyzz.z << 16u) |\n ((uint(iXyxzyzCor.x) & 0xffu) << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\nvoid unpackSplatCovEncoding(uvec4 packedData, out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec3(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu).x\n );\n\n uvec3 uXxyyzz = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n ivec3 iXyxzyzCor = ivec3(int(word3) >> 24, int(word2 << 8u) >> 24, int(word2) >> 24);\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 2.0 * (lnScaleMax - lnScaleMin) / 255.0;\n xxyyzz = exp(2.0 * lnScaleMin + vec3(uXxyyzz) * diagScale);\n\n vec3 xyxzyzCor = vec3(iXyxzyzCor) / 127.0;\n xyxzyz = xyxzyzCor * vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExtCov(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, rgba.b));\n packedData2.x = packHalf2x16(rgba.rg);\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n xyxzyzCor = sign(xyxzyzCor) * clamp(log(abs(xyxzyzCor)), -100.0, -0.0000001);\n xxyyzz = log(xxyyzz);\n\n packedData2.y = packHalf2x16(vec2(xxyyzz.x, xxyyzz.y));\n packedData2.z = packHalf2x16(vec2(xxyyzz.z, xyxzyzCor.x));\n packedData2.w = packHalf2x16(vec2(xyxzyzCor.y, xyxzyzCor.z));\n}\n\nvoid unpackSplatExtCov(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n\n vec2 ab = unpackHalf2x16(packedData.w);\n vec2 rg = unpackHalf2x16(packedData2.x);\n rgba = vec4(rg, ab.y, ab.x);\n\n vec2 xxyy = unpackHalf2x16(packedData2.y);\n vec2 zzxy = unpackHalf2x16(packedData2.z);\n vec2 xzyz = unpackHalf2x16(packedData2.w);\n xxyyzz = exp(vec3(xxyy.x, xxyy.y, zzxy.x));\n xyxzyz = vec3(zzxy.y, xzyz.x, xzyz.y);\n xyxzyz = -sign(xyxzyz) * exp(-abs(xyxzyz));\n xyxzyz *= vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExt(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, 0.0));\n\n packedData2.x = packHalf2x16(rgba.rg);\n packedData2.y = packHalf2x16(vec2(rgba.b, log(scales.x)));\n packedData2.z = packHalf2x16(log(scales.yz));\n packedData2.w = encodeQuatOctXy1010R12(quaternion);\n}\n\nvec4 unpackSplatExtCenterAlpha(uvec4 packedData) {\n return vec4(\n uintBitsToFloat(packedData.x),\n uintBitsToFloat(packedData.y),\n uintBitsToFloat(packedData.z),\n unpackHalf2x16(packedData.w).x\n );\n}\n\nfloat unpackSplatExtAlpha(uvec4 packedData) {\n return unpackHalf2x16(packedData.w).x;\n}\n\nvoid unpackSplatExt(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n rgba.a = unpackHalf2x16(packedData.w).x;\n\n rgba.rg = unpackHalf2x16(packedData2.x);\n vec2 split = unpackHalf2x16(packedData2.y);\n rgba.b = split.x;\n scales.x = exp(split.y);\n scales.yz = exp(unpackHalf2x16(packedData2.z));\n quaternion = decodeQuatOctXy1010R12(packedData2.w);\n}\n\nuint encodeExtRgb(vec3 rgb) {\n vec3 absRgb = abs(rgb);\n float maxAbs = max(absRgb.r, max(absRgb.g, absRgb.b));\n\n int base = clamp(int(floor(log2(maxAbs))) + 15, 0, 31);\n float divisor = exp2(float(base - 15)) / 255.0;\n\n uvec3 uRgb = uvec3(round(clamp(absRgb / divisor, 0.0, 255.0)));\n uint expSigns = (uint(base) << 3u) | ((rgb.r < 0.0 ? 0x1u : 0u) | (rgb.g < 0.0 ? 0x2u : 0u) | (rgb.b < 0.0 ? 0x4u : 0u));\n return uRgb.r | (uRgb.g << 8u) | (uRgb.b << 16u) | (expSigns << 24u);\n}\n\nvec3 decodeExtRgb(uint encoded) {\n uint biasedBase = (encoded >> 27u) & 0x1fu;\n float divisor = exp2(float(int(biasedBase) - 15)) / 255.0;\n\n vec3 rgb = vec3(uvec3(encoded & 0xffu, (encoded >> 8u) & 0xffu, (encoded >> 16u) & 0xffu));\n rgb *= divisor;\n\n return vec3(\n ((encoded & 0x1000000u) != 0u) ? -rgb.r : rgb.r,\n ((encoded & 0x2000000u) != 0u) ? -rgb.g : rgb.g,\n ((encoded & 0x4000000u) != 0u) ? -rgb.b : rgb.b\n );\n}\n\nvec3 quatVec(vec4 q, vec3 v) {\n \n vec3 t = 2.0 * cross(q.xyz, v);\n return v + q.w * t + cross(q.xyz, t);\n}\n\nvec4 quatQuat(vec4 q1, vec4 q2) {\n return vec4(\n q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,\n q1.w * q2.y - q1.x * q2.z + q1.y * q2.w + q1.z * q2.x,\n q1.w * q2.z + q1.x * q2.y - q1.y * q2.x + q1.z * q2.w,\n q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z\n );\n}\n\nmat3 quaternionToMatrix(vec4 q) {\n return mat3(\n (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n (2.0 * (q.x * q.y + q.w * q.z)),\n (2.0 * (q.x * q.z - q.w * q.y)),\n (2.0 * (q.x * q.y - q.w * q.z)),\n (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n (2.0 * (q.y * q.z + q.w * q.x)),\n (2.0 * (q.x * q.z + q.w * q.y)),\n (2.0 * (q.y * q.z - q.w * q.x)),\n (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\nmat3 scaleQuaternionToMatrix(vec3 s, vec4 q) {\n \n return mat3(\n s.x * (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n s.x * (2.0 * (q.x * q.y + q.w * q.z)),\n s.x * (2.0 * (q.x * q.z - q.w * q.y)),\n s.y * (2.0 * (q.x * q.y - q.w * q.z)),\n s.y * (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n s.y * (2.0 * (q.y * q.z + q.w * q.x)),\n s.z * (2.0 * (q.x * q.z + q.w * q.y)),\n s.z * (2.0 * (q.y * q.z - q.w * q.x)),\n s.z * (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\nvec4 slerp(vec4 q1, vec4 q2, float t) {\n \n float cosHalfTheta = dot(q1, q2);\n\n \n if (abs(cosHalfTheta) >= 0.999) {\n return q1;\n }\n \n \n \n if (cosHalfTheta < 0.0) {\n q2 = -q2;\n cosHalfTheta = -cosHalfTheta;\n }\n\n \n float halfTheta = acos(cosHalfTheta);\n float sinHalfTheta = sqrt(1.0 - cosHalfTheta * cosHalfTheta);\n\n \n float ratioA = sin((1.0 - t) * halfTheta) / sinHalfTheta;\n float ratioB = sin(t * halfTheta) / sinHalfTheta;\n\n \n return q1 * ratioA + q2 * ratioB;\n}\n\nivec3 splatTexCoord(int index) {\n uint x = uint(index) & SPLAT_TEX_WIDTH_MASK;\n uint y = (uint(index) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK;\n uint z = uint(index) >> SPLAT_TEX_LAYER_BITS;\n return ivec3(x, y, z);\n}\n\nivec3 pagedSplatTexCoord(int index) {\n return ivec3(index & 255, (index >> 8) & 255, index >> 16);\n}\n\nvec4 uintToVec4(uint u32) {\n uvec4 bytes = uvec4(\n u32 & 0xFFu,\n (u32 >> 8u) & 0xFFu,\n (u32 >> 16u) & 0xFFu,\n (u32 >> 24u) & 0xFFu\n );\n return vec4(bytes) / 255.0;\n}\n\nvec4 floatToVec4(float f) {\n uint u32 = floatBitsToUint(f);\n return uintToVec4(u32);\n}\n\nvec3 debugColorHue(uint i) {\n \n float hue = fract(float(i) * 0.61803398875);\n \n vec3 rgb = clamp(abs(mod(hue*6.0 + vec3(0.0,4.0,2.0), 6.0) - 3.0) - 1.0, 0.0, 1.0);\n return mix(vec3(1.0), rgb, 0.85); \n}"; var splatFragment_default = "precision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\n#include \n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n if (false) {\n \n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n float min1a = min(1.0, a);\n rgba.a = mix(min1a, min1a * exp(exponent), falloff);\n } else {\n \n if (rgba.a <= 1.0) {\n rgba.a = mix(rgba.a, rgba.a * exp(-0.5 * z2), falloff);\n } else {\n float a = exp((rgba.a*rgba.a - 1.0) / 2.718281828459045);\n float alpha = 1.0 - pow(1.0 - exp(-0.5 * z2), a);\n rgba.a = mix(1.0, alpha, falloff);\n }\n }\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n\n #include \n}"; var splatVertex_default = "precision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\nflat out float adjustedStdDev;\n\nuniform vec2 renderSize;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform mat3 renderToViewBasis;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform bool enableExtSplats;\nuniform bool enableCovSplats;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool enable2DGS;\nuniform bool lodInflate;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2D ordering;\nuniform usampler2DArray extSplats;\nuniform usampler2DArray extSplats2;\n\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == -1.0;\n}\n\n#include \n\nvoid main() {\n \n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n ivec2 orderingCoord = ivec2((gl_InstanceID >> 2) & 4095, gl_InstanceID >> 14);\n uint splatIndex = texelFetch(ordering, orderingCoord, 0)[gl_InstanceID & 3];\n if (splatIndex == 0xffffffffu) {\n \n return;\n }\n\n ivec3 texCoord = splatTexCoord(int(splatIndex));\n vec3 center, scales, xxyyzz, xyxzyz;\n vec4 quaternion, rgba;\n mat3 cov3D;\n bvec3 zeroScales = bvec3(false);\n\n if (enableExtSplats) {\n uvec4 ext1 = texelFetch(extSplats, texCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if ((alpha == 0.0) || (alpha < minAlpha)) {\n return;\n }\n uvec4 ext2 = texelFetch(extSplats2, texCoord, 0);\n\n if (!enableCovSplats) {\n unpackSplatExt(ext1, ext2, center, scales, quaternion, rgba);\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatExtCov(ext1, ext2, center, rgba, xxyyzz, xyxzyz);\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n } else {\n uvec4 packedData = texelFetch(extSplats, texCoord, 0);\n if (!enableCovSplats) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatCovEncoding(packedData, center, rgba, xxyyzz, xyxzyz, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n\n rgba.a *= 2.0;\n if ((rgba.a == 0.0) || (rgba.a < minAlpha)) {\n return;\n }\n }\n\n adjustedStdDev = maxStdDev;\n if (rgba.a > 1.0) {\n \n rgba.a = min(rgba.a * 4.0 - 3.0, 5.0);\n\n if (lodInflate) {\n \n float opacity = exp((rgba.a * rgba.a - 1.0) / 2.718281828459045);\n float rescale = pow(opacity, 1.0 / 3.0);\n scales *= rescale;\n rgba.a = 1.0;\n }\n\n \n adjustedStdDev = maxStdDev + 0.7 * (rgba.a - 1.0);\n }\n\n \n vec3 viewCenter = (!enableCovSplats ? quatVec(renderToViewQuat, center) : (renderToViewBasis * center)) + renderToViewPos;\n\n \n if (viewCenter.z >= 0.0) {\n return;\n }\n\n \n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n \n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n \n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n vRgba = rgba;\n vSplatUv = position.xy * adjustedStdDev;\n\n \n vSplatIndex = splatIndex;\n\n if (!enableCovSplats) {\n \n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n\n #include \n return;\n }\n\n \n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n cov3D = RS * transpose(RS);\n } else {\n cov3D = mat3(\n xxyyzz.x, xyxzyz.x, xyxzyz.y,\n xyxzyz.x, xxyyzz.y, xyxzyz.z,\n xyxzyz.y, xyxzyz.z, xxyyzz.z\n );\n cov3D = renderToViewBasis * cov3D * transpose(renderToViewBasis);\n }\n\n \n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if (isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n \n \n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n \n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n \n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n \n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n vRgba.a = rgba.a;\n\n \n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = (abs(b) > 0.001) ? normalize(vec2(b, eigen1 - a))\n : ((a >= d) ? vec2(1.0, 0.0) : vec2(0.0, 1.0));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n \n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n\n \n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n\n #include \n}"; @@ -7971,8 +6700,6 @@ function getShaders() { if (!shaders) { THREE.ShaderChunk.splatDefines = splatDefines_default; shaders = { - oldSplatVertex: oldSplatVertex_default, - oldSplatFragment: oldSplatFragment_default, splatVertex: splatVertex_default, splatFragment: splatFragment_default, computeVec4Template: computeVec4_default, @@ -8156,292 +6883,73 @@ const _Readback = class _Readback { subReadback ); promises.push(promise); - baseIndex += SPLAT_TEX_WIDTH * layerYEnd; - } - return Promise.all(promises).then(() => readback); - } - // Perform render operation to run the Rgba8Readback program - // but don't perform the readback yet. - render({ - reader, - count, - renderer - }) { - this.renderer = renderer || this.renderer; - if (!this.renderer) { - throw new Error("No renderer"); - } - this.ensureCapacity(count); - const { program, material } = this.prepareProgramMaterial(reader); - program.update(); - const renderState = this.saveRenderState(this.renderer); - this.process({ count, material }); - this.resetRenderState(this.renderer, renderState); - } - // Perform a readback of the render target, returning a buffer of the - // given type. - async readback({ - readback - }) { - if (!this.renderer) { - throw new Error("No renderer"); - } - const renderState = this.saveRenderState(this.renderer); - const promise = this.read({ readback }); - this.resetRenderState(this.renderer, renderState); - return promise; - } - // Perform a render and readback operation for the given Rgba8Readback, - // and readback buffer (call ensureBuffer first). - async renderReadback({ - reader, - count, - renderer, - readback - }) { - this.renderer = renderer || this.renderer; - if (!this.renderer) { - throw new Error("No renderer"); - } - this.ensureCapacity(count); - const { program, material } = this.prepareProgramMaterial(reader); - program.update(); - const renderState = this.saveRenderState(this.renderer); - this.process({ count, material }); - const promise = this.read({ readback }); - this.resetRenderState(this.renderer, renderState); - return promise; - } - getTexture() { - var _a2; - return (_a2 = this.target) == null ? void 0 : _a2.texture; - } -}; -_Readback.programTemplate = null; -_Readback.readbackProgram = /* @__PURE__ */ new WeakMap(); -_Readback.fullScreenQuad = new FullScreenQuad( - new THREE.RawShaderMaterial({ visible: false }) -); -let Readback = _Readback; -const _RgbaArray = class _RgbaArray { - constructor(options = {}) { - this.capacity = 0; - this.count = 0; - this.array = null; - this.readback = null; - this.source = null; - this.needsUpdate = true; - this.dyno = new DynoUniform({ - key: "rgbaArray", - type: TRgbaArray, - globals: () => [defineRgbaArray], - value: { - texture: _RgbaArray.getEmpty(), - count: 0 - }, - update: (value) => { - value.texture = this.getTexture(); - value.count = this.count; - return value; - } - }); - if (options.array) { - this.array = options.array; - const splatCount = Math.floor(this.array.length / 4); - this.capacity = Math.ceil(splatCount / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - if (this.capacity > splatCount) { - this.array = new Uint8Array(this.capacity * 4); - this.array.set(options.array); - } - this.count = Math.min( - splatCount, - options.count ?? Number.POSITIVE_INFINITY - ); - } else { - this.capacity = options.capacity ?? 0; - this.count = 0; - } - } - // Free up resources - dispose() { - if (this.readback) { - this.readback.dispose(); - this.readback = null; - } - if (this.source) { - this.source.dispose(); - this.source = null; - } - } - // Ensure that our array is large enough to hold capacity RGBA8 values. - ensureCapacity(capacity) { - var _a2; - if (!this.array || capacity > (((_a2 = this.array) == null ? void 0 : _a2.length) ?? 0) / 4) { - this.capacity = getTextureSize(capacity).maxSplats; - const newArray2 = new Uint8Array(this.capacity * 4); - if (this.array) { - newArray2.set(this.array); - } - this.array = newArray2; - } - return this.array; - } - // Get the THREE.DataArrayTexture from either the readback or the source. - getTexture() { - var _a2; - let texture2 = (_a2 = this.readback) == null ? void 0 : _a2.getTexture(); - if (this.source || this.array) { - texture2 = this.maybeUpdateSource(); - } - return texture2 ?? _RgbaArray.getEmpty(); - } - // Create or get a THREE.DataArrayTexture from the data array. - maybeUpdateSource() { - if (!this.array) { - throw new Error("No array"); - } - if (this.needsUpdate || !this.source) { - this.needsUpdate = false; - if (this.source) { - const { width, height, depth } = this.source.image; - if (this.capacity !== width * height * depth) { - this.source.dispose(); - this.source = null; - } - } - if (!this.source) { - const { width, height, depth } = getTextureSize(this.capacity); - this.source = new THREE.DataArrayTexture( - this.array, - width, - height, - depth - ); - this.source.format = THREE.RGBAFormat; - this.source.type = THREE.UnsignedByteType; - this.source.internalFormat = "RGBA8"; - this.source.needsUpdate = true; - } else if (this.array.buffer !== this.source.image.data.buffer) { - this.source.image.data = new Uint8Array(this.array.buffer); - } - this.source.needsUpdate = true; - } - return this.source; - } - // Generate the RGBA8 values from a Rgba8Readback dyno program. - render({ - reader, - count, - renderer - }) { - if (!this.readback) { - this.readback = new Readback({ renderer }); - } - this.readback.render({ reader, count, renderer }); - this.capacity = this.readback.capacity; - this.count = this.readback.count; + baseIndex += SPLAT_TEX_WIDTH * layerYEnd; + } + return Promise.all(promises).then(() => readback); } - // Extract the RGBA8 values from a PackedSplats collection. - fromPackedSplats({ - packedSplats, - base, + // Perform render operation to run the Rgba8Readback program + // but don't perform the readback yet. + render({ + reader, count, renderer }) { - const { dynoSplats, dynoBase, dynoCount, reader } = _RgbaArray.makeDynos(); - dynoSplats.packedSplats = packedSplats; - dynoBase.value = base; - dynoCount.value = count; - this.render({ reader, count, renderer }); - return this; - } - // Read back the RGBA8 values from the readback buffer. - async read() { - if (!this.readback) { - throw new Error("No readback"); - } - if (!this.array || this.array.length < this.count * 4) { - this.array = new Uint8Array(this.capacity * 4); + this.renderer = renderer || this.renderer; + if (!this.renderer) { + throw new Error("No renderer"); } - const result = await this.readback.readback({ readback: this.array }); - return result.subarray(0, this.count * 4); + this.ensureCapacity(count); + const { program, material } = this.prepareProgramMaterial(reader); + program.update(); + const renderState = this.saveRenderState(this.renderer); + this.process({ count, material }); + this.resetRenderState(this.renderer, renderState); } - async getArray() { - if (this.readback) { - return await this.read(); - } - if (this.array) { - return this.array; + // Perform a readback of the render target, returning a buffer of the + // given type. + async readback({ + readback + }) { + if (!this.renderer) { + throw new Error("No renderer"); } - throw new Error("No array"); + const renderState = this.saveRenderState(this.renderer); + const promise = this.read({ readback }); + this.resetRenderState(this.renderer, renderState); + return promise; } - // Can be used where you need an uninitialized THREE.DataArrayTexture like - // a uniform you will update with the result of this.getTexture() later. - static getEmpty() { - if (!_RgbaArray.emptySource) { - const emptyArray = new Uint8Array(1 * 4); - _RgbaArray.emptySource = new THREE.DataArrayTexture(emptyArray, 1, 1, 1); - _RgbaArray.emptySource.format = THREE.RGBAFormat; - _RgbaArray.emptySource.type = THREE.UnsignedByteType; - _RgbaArray.emptySource.internalFormat = "RGBA8"; - _RgbaArray.emptySource.needsUpdate = true; + // Perform a render and readback operation for the given Rgba8Readback, + // and readback buffer (call ensureBuffer first). + async renderReadback({ + reader, + count, + renderer, + readback + }) { + this.renderer = renderer || this.renderer; + if (!this.renderer) { + throw new Error("No renderer"); } - return _RgbaArray.emptySource; + this.ensureCapacity(count); + const { program, material } = this.prepareProgramMaterial(reader); + program.update(); + const renderState = this.saveRenderState(this.renderer); + this.process({ count, material }); + const promise = this.read({ readback }); + this.resetRenderState(this.renderer, renderState); + return promise; } - // Create a dyno program that can extract RGBA8 values from a PackedSplats - static makeDynos() { - if (!_RgbaArray.dynos) { - const dynoSplats = new DynoPackedSplats(); - const dynoBase = new DynoInt({ value: 0 }); - const dynoCount = new DynoInt({ value: 0 }); - const reader = dynoBlock( - { index: "int" }, - { rgba8: "vec4" }, - ({ index }) => { - if (!index) { - throw new Error("index is undefined"); - } - index = add(index, dynoBase); - const gsplat = readPackedSplatRange( - dynoSplats, - index, - dynoBase, - dynoCount - ); - return { rgba8: splitGsplat(gsplat).outputs.rgba }; - } - ); - _RgbaArray.dynos = { dynoSplats, dynoBase, dynoCount, reader }; - } - return _RgbaArray.dynos; + getTexture() { + var _a2; + return (_a2 = this.target) == null ? void 0 : _a2.texture; } }; -_RgbaArray.emptySource = null; -_RgbaArray.dynos = null; -let RgbaArray = _RgbaArray; -const TRgbaArray = { type: "RgbaArray" }; -const defineRgbaArray = unindent(` - struct RgbaArray { - sampler2DArray texture; - int count; - }; -`); -function readRgbaArray(rgba, index) { - const dyno2 = new Dyno({ - inTypes: { rgba: TRgbaArray, index: "int" }, - outTypes: { rgba: "vec4" }, - inputs: { rgba, index }, - globals: () => [defineRgbaArray], - statements: ({ inputs, outputs }) => unindentLines(` - if ((${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) { - ${outputs.rgba} = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0); - } else { - ${outputs.rgba} = vec4(0.0, 0.0, 0.0, 0.0); - } - `) - }); - return dyno2.outputs.rgba; -} +_Readback.programTemplate = null; +_Readback.readbackProgram = /* @__PURE__ */ new WeakMap(); +_Readback.fullScreenQuad = new FullScreenQuad( + new THREE.RawShaderMaterial({ visible: false }) +); +let Readback = _Readback; var SplatEditSdfType = /* @__PURE__ */ ((SplatEditSdfType2) => { SplatEditSdfType2["ALL"] = "all"; SplatEditSdfType2["PLANE"] = "plane"; @@ -9194,2142 +7702,2479 @@ class CovSplatTransformer { } }).outputs.covsplat; } - // Update the uniforms to match the given transform matrix. - updateFromMatrix(transform) { - const basis = new THREE.Matrix3().setFromMatrix4(transform); - const offset = new THREE.Vector3().setFromMatrixColumn(transform, 3); - const updated = !basis.equals(this.basis.value) || !offset.equals(this.offset.value); - if (updated) { - this.basis.value.copy(basis); - this.offset.value.copy(offset); + // Update the uniforms to match the given transform matrix. + updateFromMatrix(transform) { + const basis = new THREE.Matrix3().setFromMatrix4(transform); + const offset = new THREE.Vector3().setFromMatrixColumn(transform, 3); + const updated = !basis.equals(this.basis.value) || !offset.equals(this.offset.value); + if (updated) { + this.basis.value.copy(basis); + this.offset.value.copy(offset); + } + return updated; + } + // Update this transform to match the object's to-world transform. + update(object) { + object.updateMatrixWorld(); + return this.updateFromMatrix(object.matrixWorld); + } +} +class SplatGenerator extends THREE.Object3D { + constructor({ + numSplats, + generator, + covGenerator, + construct, + update + }) { + super(); + this.numSplats = numSplats ?? 0; + this.generator = generator; + this.covGenerator = covGenerator; + this.frameUpdate = update; + this.version = 0; + this.mappingVersion = 0; + if (construct) { + const constructed = construct(this); + Object.assign(this, constructed); + } + } + updateVersion() { + this.version += 1; + } + updateMappingVersion() { + this.mappingVersion += 1; + this.version += 1; + } + set needsUpdate(value) { + if (value) { + this.updateVersion(); + } + } +} +class CsplatArray { + static __wrap(ptr) { + ptr = ptr >>> 0; + const obj = Object.create(CsplatArray.prototype); + obj.__wbg_ptr = ptr; + CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj); + return obj; + } + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + CsplatArrayFinalization.unregister(this); + return ptr; + } + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_csplatarray_free(ptr, 0); + } + /** + * @param {number} lod_base + */ + bhatt_lod(lod_base) { + wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base); + } + /** + * @returns {boolean} + */ + has_lod() { + const ret = wasm.csplatarray_has_lod(this.__wbg_ptr); + return ret !== 0; + } + /** + * @param {Uint8Array} rgba + */ + inject_rgba8(rgba) { + wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba); + } + /** + * @returns {number} + */ + len() { + const ret = wasm.csplatarray_len(this.__wbg_ptr); + return ret >>> 0; + } + /** + * @param {number} lod_base + * @param {boolean} merge_filter + */ + tiny_lod(lod_base, merge_filter) { + wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter); + } + /** + * @returns {object} + */ + to_extsplats() { + const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); + } + /** + * @returns {object} + */ + to_extsplats_lod() { + const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); + } + /** + * @returns {object} + */ + to_packedsplats() { + const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); + } + /** + * @returns {object} + */ + to_packedsplats_lod() { + const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); + } + /** + * @returns {number} + */ + get maxShDegree() { + const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr); + return ret >>> 0; + } + /** + * @returns {number} + */ + get numSplats() { + const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr); + return ret >>> 0; + } + /** + * @param {number} arg0 + */ + set maxShDegree(arg0) { + wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0); + } + /** + * @param {number} arg0 + */ + set numSplats(arg0) { + wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0); + } +} +if (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free; +class GsplatArray { + static __wrap(ptr) { + ptr = ptr >>> 0; + const obj = Object.create(GsplatArray.prototype); + obj.__wbg_ptr = ptr; + GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj); + return obj; + } + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + GsplatArrayFinalization.unregister(this); + return ptr; + } + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_gsplatarray_free(ptr, 0); + } + /** + * @returns {number} + */ + get maxShDegree() { + const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr); + return ret >>> 0; + } + /** + * @returns {number} + */ + get numSplats() { + const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr); + return ret >>> 0; + } + /** + * @param {number} lod_base + */ + bhatt_lod(lod_base) { + wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base); + } + /** + * @returns {boolean} + */ + has_lod() { + const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr); + return ret !== 0; + } + /** + * @param {Uint8Array} rgba + */ + inject_rgba8(rgba) { + wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba); + } + /** + * @returns {number} + */ + len() { + const ret = wasm.gsplatarray_len(this.__wbg_ptr); + return ret >>> 0; + } + /** + * @param {number} lod_base + * @param {boolean} merge_filter + */ + tiny_lod(lod_base, merge_filter) { + wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter); + } + /** + * @returns {object} + */ + to_extsplats() { + const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); } - return updated; + return takeFromExternrefTable0(ret[0]); } - // Update this transform to match the object's to-world transform. - update(object) { - object.updateMatrixWorld(); - return this.updateFromMatrix(object.matrixWorld); + /** + * @returns {object} + */ + to_extsplats_lod() { + const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); } -} -class SplatGenerator extends THREE.Object3D { - constructor({ - numSplats, - generator, - covGenerator, - construct, - update - }) { - super(); - this.numSplats = numSplats ?? 0; - this.generator = generator; - this.covGenerator = covGenerator; - this.frameUpdate = update; - this.version = 0; - this.mappingVersion = 0; - if (construct) { - const constructed = construct(this); - Object.assign(this, constructed); + /** + * @param {any} encoding + * @returns {object} + */ + to_packedsplats(encoding) { + const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); } + return takeFromExternrefTable0(ret[0]); } - updateVersion() { - this.version += 1; + /** + * @param {any} encoding + * @returns {object} + */ + to_packedsplats_lod(encoding) { + const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); } - updateMappingVersion() { - this.mappingVersion += 1; - this.version += 1; + /** + * @param {number} arg0 + */ + set maxShDegree(arg0) { + wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0); } - set needsUpdate(value) { - if (value) { - this.updateVersion(); + /** + * @param {number} arg0 + */ + set numSplats(arg0) { + wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0); + } +} +if (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free; +function decode_rad_header(bytes) { + const ret = wasm.decode_rad_header(bytes); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); +} +function get_raycast_buffer() { + const ret = wasm.get_raycast_buffer(); + return ret; +} +function get_raycast_buffer2() { + const ret = wasm.get_raycast_buffer2(); + return ret; +} +function raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count) { + const ret = wasm.raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count); + return ret; +} +function raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity) { + const ret = wasm.raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity); + return ret; +} +function __wbg_get_imports() { + const import0 = { + __proto__: null, + __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) { + const ret = Error(getStringFromWasm0(arg0, arg1)); + return ret; + }, + __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) { + const v = arg0; + const ret = typeof v === "boolean" ? v : void 0; + return isLikeNone(ret) ? 16777215 : ret ? 1 : 0; + }, + __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) { + const ret = debugString(arg1); + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }, + __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) { + const ret = arg0 in arg1; + return ret; + }, + __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) { + const ret = !arg0; + return ret; + }, + __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) { + const val = arg0; + const ret = typeof val === "object" && val !== null; + return ret; + }, + __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) { + const ret = arg0 === void 0; + return ret; + }, + __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) { + const ret = arg0 == arg1; + return ret; + }, + __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) { + const obj = arg1; + const ret = typeof obj === "number" ? obj : void 0; + getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true); + }, + __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) { + const obj = arg1; + const ret = typeof obj === "string" ? obj : void 0; + var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }, + __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }, + __wbg_csplatarray_new: function(arg0) { + const ret = CsplatArray.__wrap(arg0); + return ret; + }, + __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) { + let deferred0_0; + let deferred0_1; + try { + deferred0_0 = arg0; + deferred0_1 = arg1; + console.error(getStringFromWasm0(arg0, arg1)); + } finally { + wasm.__wbindgen_free(deferred0_0, deferred0_1, 1); + } + }, + __wbg_get_4848e350b40afc16: function(arg0, arg1) { + const ret = arg0[arg1 >>> 0]; + return ret; + }, + __wbg_get_f96702c6245e4ef9: function() { + return handleError(function(arg0, arg1) { + const ret = Reflect.get(arg0, arg1); + return ret; + }, arguments); + }, + __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) { + const ret = arg0[arg1 >>> 0]; + return ret; + }, + __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) { + const ret = arg0[arg1]; + return ret; + }, + __wbg_gsplatarray_new: function(arg0) { + const ret = GsplatArray.__wrap(arg0); + return ret; + }, + __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) { + let result; + try { + result = arg0 instanceof ArrayBuffer; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }, + __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) { + let result; + try { + result = arg0 instanceof Uint8Array; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }, + __wbg_length_0c32cb8543c8e4c8: function(arg0) { + const ret = arg0.length; + return ret; + }, + __wbg_length_1e701798fdcaa3b4: function(arg0) { + const ret = arg0.length; + return ret; + }, + __wbg_length_6e821edde497a532: function(arg0) { + const ret = arg0.length; + return ret; + }, + __wbg_length_a4ca9e78359b5f1f: function(arg0) { + const ret = arg0.length; + return ret; + }, + __wbg_length_fd4646b401926788: function(arg0) { + const ret = arg0.length; + return ret; + }, + __wbg_new_227d7c05414eb861: function() { + const ret = new Error(); + return ret; + }, + __wbg_new_4f9fafbb3909af72: function() { + const ret = new Object(); + return ret; + }, + __wbg_new_a560378ea1240b14: function(arg0) { + const ret = new Uint8Array(arg0); + return ret; + }, + __wbg_new_f3c9df4f38f3f798: function() { + const ret = new Array(); + return ret; + }, + __wbg_new_with_length_26bffbe236bf73f9: function(arg0) { + const ret = new Float32Array(arg0 >>> 0); + return ret; + }, + __wbg_new_with_length_41a22191b9bdfd66: function(arg0) { + const ret = new Uint32Array(arg0 >>> 0); + return ret; + }, + __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) { + Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2); + }, + __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) { + Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2); + }, + __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) { + Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2); + }, + __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) { + const ret = arg0.push(arg1); + return ret; + }, + __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) { + arg0.set(getArrayU32FromWasm0(arg1, arg2)); + }, + __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) { + arg0[arg1] = arg2; + }, + __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) { + arg0[arg1 >>> 0] = arg2; + }, + __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) { + arg0.set(arg1, arg2 >>> 0); + }, + __wbg_set_8ee2d34facb8466e: function() { + return handleError(function(arg0, arg1, arg2) { + const ret = Reflect.set(arg0, arg1, arg2); + return ret; + }, arguments); + }, + __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) { + arg0.set(getArrayF32FromWasm0(arg1, arg2)); + }, + __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) { + arg0[arg1 >>> 0] = arg2 >>> 0; + }, + __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) { + const ret = arg1.stack; + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }, + __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) { + const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0); + return ret; + }, + __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) { + const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0); + return ret; + }, + __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) { + const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0); + return ret; + }, + __wbindgen_cast_0000000000000001: function(arg0) { + const ret = arg0; + return ret; + }, + __wbindgen_cast_0000000000000002: function(arg0, arg1) { + const ret = getArrayF32FromWasm0(arg0, arg1); + return ret; + }, + __wbindgen_cast_0000000000000003: function(arg0, arg1) { + const ret = getArrayU32FromWasm0(arg0, arg1); + return ret; + }, + __wbindgen_cast_0000000000000004: function(arg0, arg1) { + const ret = getStringFromWasm0(arg0, arg1); + return ret; + }, + __wbindgen_cast_0000000000000005: function(arg0) { + const ret = BigInt.asUintN(64, arg0); + return ret; + }, + __wbindgen_init_externref_table: function() { + const table = wasm.__wbindgen_externrefs; + const offset = table.grow(4); + table.set(0, void 0); + table.set(offset + 0, void 0); + table.set(offset + 1, null); + table.set(offset + 2, true); + table.set(offset + 3, false); } - } + }; + return { + __proto__: null, + "./spark_rs_bg.js": import0 + }; } -const _SplatAccumulator = class _SplatAccumulator { - constructor({ - extSplats, - covSplats - } = {}) { - this.time = 0; - this.deltaTime = 0; - this.viewToWorld = new THREE.Matrix4(); - this.viewOrigin = new THREE.Vector3(); - this.viewDirection = new THREE.Vector3(); - this.maxSplats = 0; - this.numSplats = 0; - this.target = null; - this.mapping = []; - this.version = -1; - this.mappingVersion = -1; - this.readback = null; - this.readbackSplats = []; - if (!threeMrtArray) { - throw new Error("Spark requires THREE.js r179 or above"); - } - this.extSplats = extSplats ?? true; - this.covSplats = covSplats ?? false; - } - dispose() { - if (this.target) { - this.target.dispose(); - this.target = null; - } - } - // Returns a THREE.DataArrayTexture representing the NewSplatAccumulator - // content as 2 x Uint32x4 data array textures (2048 x 2048 x 2048 in size) - getTextures() { - if (this.target) { - return this.target.textures; - } - return _SplatAccumulator.emptyTextures; +typeof FinalizationRegistry === "undefined" ? {} : new FinalizationRegistry((ptr) => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1)); +const CsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => { +}, unregister: () => { +} } : new FinalizationRegistry((ptr) => wasm.__wbg_csplatarray_free(ptr >>> 0, 1)); +const GsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => { +}, unregister: () => { +} } : new FinalizationRegistry((ptr) => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1)); +function addToExternrefTable0(obj) { + const idx = wasm.__externref_table_alloc(); + wasm.__wbindgen_externrefs.set(idx, obj); + return idx; +} +function debugString(val) { + const type = typeof val; + if (type == "number" || type == "boolean" || val == null) { + return `${val}`; } - // Given an array of splatCounts (.numSplats for each - // SplatGenerator/SplatMesh in the scene), compute a - // "mapping layout" in the composite array of generated outputs. - generateMapping(splatCounts) { - let maxSplats = 0; - const mapping = splatCounts.map((numSplats) => { - const base = maxSplats; - const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - maxSplats += rounded; - return { base, count: numSplats }; - }); - return { maxSplats, mapping }; + if (type == "string") { + return `"${val}"`; } - // Ensures our NewSplatAccumulator.target render target has enough space - // to generate maxSplats total Gsplats, and reallocate if not large enough. - ensureGenerate({ maxSplats }) { - if (this.target && (maxSplats ?? 1) <= this.maxSplats) { - return false; - } - this.dispose(); - const textureSize2 = getTextureSize(maxSplats ?? 1); - const { width, height, depth } = textureSize2; - this.maxSplats = textureSize2.maxSplats; - this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, { - depthBuffer: false, - stencilBuffer: false, - generateMipmaps: false, - magFilter: THREE.NearestFilter, - minFilter: THREE.NearestFilter, - format: THREE.RGBAIntegerFormat, - type: THREE.UnsignedIntType - }); - this.target.scissorTest = true; - if (this.extSplats) { - const target2 = this.target.texture.clone(); - const target3 = this.target.texture.clone(); - target3.format = THREE.RGBAFormat; - target3.type = THREE.UnsignedByteType; - target3.internalFormat = "RGBA8"; - this.target.textures = [this.target.texture, target2, target3]; + if (type == "symbol") { + const description = val.description; + if (description == null) { + return "Symbol"; } else { - const target3 = this.target.texture.clone(); - target3.format = THREE.RGBAFormat; - target3.type = THREE.UnsignedByteType; - target3.internalFormat = "RGBA8"; - this.target.textures = [this.target.texture, target3]; - } - return true; - } - saveRenderState(renderer) { - return { - target: renderer.getRenderTarget(), - xrEnabled: renderer.xr.enabled, - autoClear: renderer.autoClear - }; - } - resetRenderState(renderer, state) { - renderer.setRenderTarget(state.target); - renderer.xr.enabled = state.xrEnabled; - renderer.autoClear = state.autoClear; - } - // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator, - // generating it if necessary and caching the result. - prepareProgramMaterial(generator, covGenerator) { - const theGenerator = generator ?? covGenerator; - if (!theGenerator) { - throw new Error("Either generator or covGenerator must be provided"); - } - let program = _SplatAccumulator.generatorProgram.get(theGenerator); - if (!program) { - const graph = dynoBlock( - { index: "int" }, - {}, - ({ index }, _outputs, { roots }) => { - if (generator) { - generator.inputs.index = index; - } - if (covGenerator) { - covGenerator.inputs.index = index; - } - if (this.extSplats) { - if (!this.covSplats) { - if (generator) { - const output = outputExtendedSplat(generator.outputs.gsplat); - roots.push(output); - } else { - throw new Error("Generator must be provided"); - } - } else { - if (covGenerator) { - const output = outputExtCovSplat(covGenerator.outputs.covsplat); - roots.push(output); - } else if (generator) { - const covsplat = gsplatToCovSplat(generator.outputs.gsplat); - const output = outputExtCovSplat(covsplat); - roots.push(output); - } else { - throw new Error("Generator must be provided"); - } - } - } else { - if (!this.covSplats) { - if (generator) { - const centerSubView = sub( - splitGsplat(generator.outputs.gsplat).outputs.center, - _SplatAccumulator.viewCenterUniform - ); - const halfAlpha = mul( - splitGsplat(generator.outputs.gsplat).outputs.opacity, - dynoConst("float", 0.5) - ); - const gsplat = combineGsplat({ - gsplat: generator.outputs.gsplat, - center: centerSubView, - opacity: halfAlpha - }); - const output = outputPackedSplat( - gsplat, - dynoConst("vec4", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]) - ); - roots.push(output); - } else { - throw new Error("Generator must be provided"); - } - } else { - let covsplat; - if (covGenerator) { - covsplat = covGenerator.outputs.covsplat; - } else if (generator) { - covsplat = gsplatToCovSplat(generator.outputs.gsplat); - } else { - throw new Error("Generator must be provided"); - } - const centerSubView = sub( - splitCovSplat(covsplat).outputs.center, - _SplatAccumulator.viewCenterUniform - ); - const halfAlpha = mul( - splitCovSplat(covsplat).outputs.opacity, - dynoConst("float", 0.5) - ); - covsplat = combineCovSplat({ - covsplat, - center: centerSubView, - opacity: halfAlpha - }); - const output = outputCovSplat( - covsplat, - dynoConst("vec4", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]) - ); - roots.push(output); - } - if (!generator) { - throw new Error("Generator must be provided"); - } - } - if (generator) { - const outputDepth = outputSplatDepth( - generator.outputs.gsplat, - _SplatAccumulator.viewCenterUniform, - _SplatAccumulator.viewDirUniform, - _SplatAccumulator.sortRadialUniform - ); - roots.push(outputDepth); - } - if (covGenerator) { - const outputDepth = outputCovSplatDepth( - covGenerator.outputs.covsplat, - _SplatAccumulator.viewCenterUniform, - _SplatAccumulator.viewDirUniform, - _SplatAccumulator.sortRadialUniform - ); - roots.push(outputDepth); - } - return void 0; - } - ); - program = new DynoProgram({ - graph, - inputs: { index: "_index" }, - outputs: {}, - template: this.extSplats ? _SplatAccumulator.programExtTemplate : _SplatAccumulator.programTemplate - // consoleLog: true, - }); - _SplatAccumulator.generatorProgram.set(theGenerator, program); + return `Symbol(${description})`; } - Object.assign(program.uniforms, { - targetLayer: { value: 0 }, - targetBase: { value: 0 }, - targetCount: { value: 0 } - }); - const material = program.prepareMaterial(); - _SplatAccumulator.fullScreenQuad.material = material; - return { program, material }; } - generate({ - generator, - covGenerator, - base, - count, - renderer - }) { - if (!this.target) { - throw new Error("Target must be initialized with ensureGenerate"); + if (type == "function") { + const name = val.name; + if (typeof name == "string" && name.length > 0) { + return `Function(${name})`; + } else { + return "Function"; } - if (base + count > this.maxSplats) { - throw new Error("Base + count exceeds maxSplats"); + } + if (Array.isArray(val)) { + const length2 = val.length; + let debug = "["; + if (length2 > 0) { + debug += debugString(val[0]); } - const { program, material } = this.prepareProgramMaterial( - generator, - covGenerator - ); - program.update(); - const renderState = this.saveRenderState(renderer); - const nextBase = Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT; - material.uniforms.targetBase.value = base; - material.uniforms.targetCount.value = count; - while (base < nextBase) { - const layer = Math.floor(base / layerSize); - material.uniforms.targetLayer.value = layer; - const layerBase = layer * layerSize; - const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH); - const layerYEnd = Math.min( - SPLAT_TEX_HEIGHT, - Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH) - ); - this.target.scissor.set( - 0, - layerYStart, - SPLAT_TEX_WIDTH, - layerYEnd - layerYStart - ); - renderer.setRenderTarget(this.target, layer); - renderer.xr.enabled = false; - renderer.autoClear = false; - _SplatAccumulator.fullScreenQuad.render(renderer); - base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart); + for (let i = 1; i < length2; i++) { + debug += ", " + debugString(val[i]); } - this.resetRenderState(renderer, renderState); - return { nextBase }; + debug += "]"; + return debug; } - prepareGenerate({ - renderer, - scene, - time, - camera, - sortRadial, - renderSize, - previous, - lodInstances - }) { - var _a2; - this.viewToWorld.copy(camera.matrixWorld); - camera.getWorldPosition(this.viewOrigin); - camera.getWorldDirection(this.viewDirection); - _SplatAccumulator.viewCenterUniform.value.copy(this.viewOrigin); - _SplatAccumulator.viewDirUniform.value.copy(this.viewDirection); - _SplatAccumulator.sortRadialUniform.value = sortRadial; - this.time = time; - this.deltaTime = time - previous.time; - const allGenerators = []; - scene.traverse((node) => { - if (node instanceof SplatGenerator) { - if (!camera.layers || camera.layers.test(node.layers)) { - allGenerators.push(node); - } - } - }); - const globalEditsSet = /* @__PURE__ */ new Set(); - scene.traverseVisible((node) => { - if (node instanceof SplatEdit) { - let ancestor = node.parent; - while (ancestor != null && !(ancestor instanceof SplatMesh)) { - ancestor = ancestor.parent; - } - if (ancestor == null) { - globalEditsSet.add(node); - } - } - }); - const globalEdits = Array.from(globalEditsSet); - for (const object of allGenerators) { - try { - (_a2 = object.frameUpdate) == null ? void 0 : _a2.call(object, { - renderer, - object, - time: this.time, - deltaTime: this.deltaTime, - viewToWorld: this.viewToWorld, - camera, - renderSize, - globalEdits, - lodIndices: lodInstances && object instanceof SplatMesh ? lodInstances.get(object) : void 0 - }); - } catch (error) { - console.error("frameUpdate error", error); - object.generator = void 0; - object.covGenerator = void 0; - object.generatorError = error; - } + const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val)); + let className; + if (builtInMatches && builtInMatches.length > 1) { + className = builtInMatches[1]; + } else { + return toString.call(val); + } + if (className == "Object") { + try { + return "Object(" + JSON.stringify(val) + ")"; + } catch (_) { + return "Object"; } - const visibleGenerators = []; - scene.traverseVisible((node) => { - if (node instanceof SplatGenerator) { - if (!camera.layers || camera.layers.test(node.layers)) { - visibleGenerators.push(node); - } - } - }); - const splatCounts = visibleGenerators.map( - (generator) => generator.numSplats - ); - const { maxSplats, mapping: baseCounts } = this.generateMapping(splatCounts); - const previousMappings = previous.mapping.reduce((mappings, mapping) => { - mappings.set(mapping.node, mapping); - return mappings; - }, /* @__PURE__ */ new Map()); - this.mapping = []; - this.numSplats = 0; - baseCounts.forEach(({ base, count }, index) => { - const node = visibleGenerators[index]; - const previousNode = previousMappings.get(node); - if (previousNode && previousNode.count !== node.numSplats) { - node.updateMappingVersion(); - } - const { generator, covGenerator } = node; - if ((generator || covGenerator) && count > 0) { - const { version, mappingVersion } = node; - this.mapping.push({ - node, - generator, - covGenerator, - version, - mappingVersion, - base, - count - }); - this.numSplats = Math.max(this.numSplats, base + count); - } - }); - const { splatsUpdated, mappingUpdated } = previous.checkVersions( - this.mapping - ); - this.version = previous.version + (splatsUpdated ? 1 : 0); - this.mappingVersion = previous.mappingVersion + (mappingUpdated ? 1 : 0); - return { - sameMapping: !mappingUpdated, - version: this.version, - mappingVersion: this.mappingVersion, - visibleGenerators, - generate: () => { - this.ensureGenerate({ maxSplats }); - for (const { node, base, count } of this.mapping) { - const { generator, covGenerator } = node; - if ((generator || covGenerator) && count > 0) { - this.generate({ generator, covGenerator, base, count, renderer }); - } - } - }, - readback: async () => { - const textures = this.getTextures(); - if (this.readbackSplats.length === 0) { - this.readbackSplats = [ - new DynoUsampler2DArray({ value: textures[0], key: "extSplats" }), - new DynoUsampler2DArray({ value: textures[1], key: "extSplats" }) - ]; - } - this.readbackSplats[0].value = textures[0]; - this.readbackSplats[1].value = textures[1]; - if (!this.readback) { - this.readback = new Readback({ renderer }); - } - const readback = this.readback; - const words = this.extSplats ? 8 : 4; - const array = readback.ensureBuffer( - this.numSplats * words, - new Uint32Array(0) - ); - const reader = dynoBlock( - { index: "int" }, - { rgba8: "vec4" }, - ({ index }) => { - const rgba8 = new Dyno({ - inTypes: { - index: "int", - extSplats1: "usampler2DArray", - extSplats2: "usampler2DArray" - }, - outTypes: { rgba8: "vec4" }, - inputs: { - index, - extSplats1: this.readbackSplats[0], - extSplats2: this.readbackSplats[1] - }, - statements: ({ inputs, outputs }) => { - if (this.extSplats) { - return unindentLines(` - int indexDiv8 = ${inputs.index} >> 3; - ivec3 coord = splatTexCoord(indexDiv8); - uvec4 packedData; - if ((${inputs.index} & 4) == 0) { - packedData = texelFetch(${inputs.extSplats1}, coord, 0); - } else { - packedData = texelFetch(${inputs.extSplats2}, coord, 0); - } - - int indexMod4 = ${inputs.index} & 3; - uint data = (indexMod4 == 0) ? packedData.x - : (indexMod4 == 1) ? packedData.y - : (indexMod4 == 2) ? packedData.z - : packedData.w; - ${outputs.rgba8} = uintToVec4(data); - `); - } - return unindentLines(` - int indexDiv4 = ${inputs.index} >> 2; - ivec3 coord = splatTexCoord(indexDiv4); - uvec4 packedData = texelFetch(${inputs.extSplats1}, coord, 0); - - int indexMod4 = ${inputs.index} & 3; - uint data = (indexMod4 == 0) ? packedData.x - : (indexMod4 == 1) ? packedData.y - : (indexMod4 == 2) ? packedData.z - : packedData.w; - ${outputs.rgba8} = uintToVec4(data); - `); - } - }).outputs.rgba8; - return { rgba8 }; - } - ); - return await readback.renderReadback({ - reader, - count: this.numSplats * words, - renderer, - readback: array - }); - } - }; } - // Check if this accumulator has exactly the same generator mapping as - // the previous one. If so, we can reuse the Gsplat sort order. - checkVersions(otherMapping) { - if (this.mapping.length !== otherMapping.length) { - return { splatsUpdated: true, mappingUpdated: true }; - } - const mappingUpdated = this.mapping.some((item, i) => { - const other = otherMapping[i]; - return item.node !== other.node || item.base !== other.base || item.count !== other.count || item.mappingVersion !== other.mappingVersion; - }); - if (mappingUpdated) { - return { splatsUpdated: true, mappingUpdated: true }; - } - const splatsUpdated = this.mapping.some((item, i) => { - return item.version !== otherMapping[i].version; - }); - return { splatsUpdated, mappingUpdated }; + if (val instanceof Error) { + return `${val.name}: ${val.message} +${val.stack}`; + } + return className; +} +function getArrayF32FromWasm0(ptr, len) { + ptr = ptr >>> 0; + return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len); +} +function getArrayU16FromWasm0(ptr, len) { + ptr = ptr >>> 0; + return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len); +} +function getArrayU32FromWasm0(ptr, len) { + ptr = ptr >>> 0; + return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len); +} +function getArrayU8FromWasm0(ptr, len) { + ptr = ptr >>> 0; + return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len); +} +let cachedDataViewMemory0 = null; +function getDataViewMemory0() { + if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === void 0 && cachedDataViewMemory0.buffer !== wasm.memory.buffer) { + cachedDataViewMemory0 = new DataView(wasm.memory.buffer); + } + return cachedDataViewMemory0; +} +let cachedFloat32ArrayMemory0 = null; +function getFloat32ArrayMemory0() { + if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) { + cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer); + } + return cachedFloat32ArrayMemory0; +} +function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return decodeText(ptr, len); +} +let cachedUint16ArrayMemory0 = null; +function getUint16ArrayMemory0() { + if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) { + cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer); } -}; -_SplatAccumulator.viewCenterUniform = new DynoVec3({ value: new THREE.Vector3() }); -_SplatAccumulator.viewDirUniform = new DynoVec3({ value: new THREE.Vector3() }); -_SplatAccumulator.sortRadialUniform = new DynoBool({ value: true }); -_SplatAccumulator.emptyTexture = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 4); - const texture2 = new THREE.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE.RGBAIntegerFormat; - texture2.type = THREE.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_SplatAccumulator.emptyTextures = (() => { - return [_SplatAccumulator.emptyTexture, _SplatAccumulator.emptyTexture]; -})(); -_SplatAccumulator.programExtTemplate = new DynoProgramTemplate( - getShaders().computeUvec4x2Vec4Template -); -_SplatAccumulator.programTemplate = new DynoProgramTemplate( - getShaders().computeUvec4Vec4Template -); -_SplatAccumulator.generatorProgram = /* @__PURE__ */ new WeakMap(); -_SplatAccumulator.fullScreenQuad = new FullScreenQuad( - new THREE.RawShaderMaterial({ visible: false }) -); -let SplatAccumulator = _SplatAccumulator; -class SplatGeometry extends THREE.InstancedBufferGeometry { - constructor() { - super(); - this.setAttribute("position", new THREE.BufferAttribute(QUAD_VERTICES, 3)); - this.setIndex(new THREE.BufferAttribute(QUAD_INDICES, 1)); + return cachedUint16ArrayMemory0; +} +let cachedUint32ArrayMemory0 = null; +function getUint32ArrayMemory0() { + if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) { + cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer); } + return cachedUint32ArrayMemory0; } -const QUAD_VERTICES = new Float32Array([ - -1, - -1, - 0, - 1, - -1, - 0, - 1, - 1, - 0, - -1, - 1, - 0 -]); -const QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]); -const _SparkRenderer = class _SparkRenderer extends THREE.Mesh { - constructor(options) { - if (!options) { - throw new Error("SparkRenderer options are required"); - } - if (!options.renderer) { - throw new Error("renderer is required in SparkRenderer options"); +let cachedUint8ArrayMemory0 = null; +function getUint8ArrayMemory0() { + if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { + cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8ArrayMemory0; +} +function handleError(f, args) { + try { + return f.apply(this, args); + } catch (e) { + const idx = addToExternrefTable0(e); + wasm.__wbindgen_exn_store(idx); + } +} +function isLikeNone(x) { + return x === void 0 || x === null; +} +function passStringToWasm0(arg, malloc, realloc) { + if (realloc === void 0) { + const buf = cachedTextEncoder.encode(arg); + const ptr2 = malloc(buf.length, 1) >>> 0; + getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf); + WASM_VECTOR_LEN = buf.length; + return ptr2; + } + let len = arg.length; + let ptr = malloc(len, 1) >>> 0; + const mem = getUint8ArrayMemory0(); + let offset = 0; + for (; offset < len; offset++) { + const code = arg.charCodeAt(offset); + if (code > 127) break; + mem[ptr + offset] = code; + } + if (offset !== len) { + if (offset !== 0) { + arg = arg.slice(offset); } - const uniforms = _SparkRenderer.makeUniforms(); - Object.assign(uniforms, options.extraUniforms ?? {}); - const shaders2 = getShaders(); - const premultipliedAlpha = options.premultipliedAlpha ?? true; - const geometry = new SplatGeometry(); - const material = new THREE.ShaderMaterial({ - glslVersion: THREE.GLSL3, - vertexShader: options.vertexShader ?? shaders2.splatVertex, - fragmentShader: options.fragmentShader ?? shaders2.splatFragment, - uniforms, - premultipliedAlpha, - transparent: options.transparent ?? true, - depthTest: options.depthTest ?? true, - depthWrite: options.depthWrite ?? false, - side: THREE.DoubleSide, - allowOverride: false - }); - super(geometry, material); - this.renderSize = new THREE.Vector2(); - this.lastFrame = -1; - this.updateTimeoutId = -1; - this.orderingTexture = null; - this.maxSplats = 0; - this.activeSplats = 0; - this.accumulators = []; - this.sorting = false; - this.sortDirty = false; - this.lastSortTime = 0; - this.sortWorker = null; - this.sortTimeoutId = -1; - this.sortedCenter = new THREE.Vector3().setScalar(Number.NEGATIVE_INFINITY); - this.sortedDir = new THREE.Vector3().setScalar(0); - this.readback32 = new Uint32Array(0); - this.lastLodRaycastTime = 0; - this.lodWorker = null; - this.lodMeshes = []; - this.lodDirty = false; - this.lodIds = /* @__PURE__ */ new Map(); - this.lodIdToSplats = /* @__PURE__ */ new Map(); - this.lodInitQueue = []; - this.lodInstances = /* @__PURE__ */ new Map(); - this.lodUpdates = []; - this.lastTraverseTime = 0; - this.pagerId = 0; - this.superXY = 1; - this.flushAfterGenerate = false; - this.flushAfterRead = false; - this.readPause = 1; - this.sortPause = 0; - this.sortDelay = 0; - this.pageSizeWarning = false; - this.material = material; - this.uniforms = uniforms; - this.frustumCulled = false; - this.renderer = options.renderer; - this.onDirty = options.onDirty; - this.dirty = true; - this.autoUpdate = options.autoUpdate ?? true; - this.preUpdate = options.preUpdate ?? true; - this.maxStdDev = options.maxStdDev ?? Math.sqrt(8); - this.minPixelRadius = options.minPixelRadius ?? 0; - this.maxPixelRadius = options.maxPixelRadius ?? 512; - this.accumExtSplats = options.accumExtSplats ?? false; - this.covSplats = options.covSplats ?? false; - this.minAlpha = options.minAlpha ?? 0.5 * (1 / 255); - this.enable2DGS = options.enable2DGS ?? false; - this.preBlurAmount = options.preBlurAmount ?? 0; - this.blurAmount = options.blurAmount ?? 0.3; - this.focalDistance = options.focalDistance ?? 0; - this.apertureAngle = options.apertureAngle ?? 0; - this.falloff = options.falloff ?? 1; - this.clipXY = options.clipXY ?? 1.4; - this.focalAdjustment = options.focalAdjustment ?? 1; - this.encodeLinear = options.encodeLinear ?? false; - this.sortRadial = options.sortRadial ?? true; - this.minSortIntervalMs = options.minSortIntervalMs ?? 0; - this.enableLod = options.enableLod ?? true; - this.enableDriveLod = options.enableDriveLod ?? this.enableLod; - this.enableLodFetching = options.enableLodFetching ?? true; - this.lodSplatCount = options.lodSplatCount; - this.lodSplatScale = options.lodSplatScale ?? 1; - this.lodRenderScale = options.lodRenderScale ?? 1; - this.lodInflate = options.lodInflate ?? false; - this.pagedExtSplats = options.pagedExtSplats ?? false; - const defaultPages = isMobile() ? isIos() ? 96 : 128 : 256; - this.maxPagedSplats = options.maxPagedSplats ?? defaultPages * 65536; - this.numLodFetchers = options.numLodFetchers ?? 3; - this.behindFoveate = options.behindFoveate ?? 0.2; - this.coneFov0 = options.coneFov0 ?? 90; - this.coneFov = options.coneFov ?? 120; - this.coneFoveate = options.coneFoveate ?? 0.4; - this.lodRaycast = options.lodRaycast === void 0 ? isMobile() ? 1e4 : 25e3 : options.lodRaycast; - this.lodRaycastIntervalMs = options.lodRaycastIntervalMs ?? 500; - this.clock = options.clock ? cloneClock(options.clock) : new THREE.Clock(); - const accumulatorOptions = { - extSplats: this.accumExtSplats, - covSplats: this.covSplats + ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; + const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); + const ret = cachedTextEncoder.encodeInto(arg, view); + offset += ret.written; + ptr = realloc(ptr, len, offset, 1) >>> 0; + } + WASM_VECTOR_LEN = offset; + return ptr; +} +function takeFromExternrefTable0(idx) { + const value = wasm.__wbindgen_externrefs.get(idx); + wasm.__externref_table_dealloc(idx); + return value; +} +let cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }); +cachedTextDecoder.decode(); +const MAX_SAFARI_DECODE_BYTES = 2146435072; +let numBytesDecoded = 0; +function decodeText(ptr, len) { + numBytesDecoded += len; + if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) { + cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }); + cachedTextDecoder.decode(); + numBytesDecoded = len; + } + return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); +} +const cachedTextEncoder = new TextEncoder(); +if (!("encodeInto" in cachedTextEncoder)) { + cachedTextEncoder.encodeInto = function(arg, view) { + const buf = cachedTextEncoder.encode(arg); + view.set(buf); + return { + read: arg.length, + written: buf.length }; - this.display = new SplatAccumulator(accumulatorOptions); - this.current = this.display; - this.accumulators.push(new SplatAccumulator(accumulatorOptions)); - this.accumulators.push(new SplatAccumulator(accumulatorOptions)); - if (options.target) { - const { - width, - height, - doubleBuffer, - superXY: origSuperXY, - ...origTargetOptions - } = options.target; - const superXY = Math.max(1, Math.min(4, origSuperXY ?? 1)); - if (width * superXY > 8192 || height * superXY > 8192) { - throw new Error("Target size too large"); - } - this.superXY = superXY; - const superWidth = width * superXY; - const superHeight = height * superXY; - const targetOptions = { - format: THREE.RGBAFormat, - type: THREE.UnsignedByteType, - colorSpace: THREE.SRGBColorSpace, - ...origTargetOptions - }; - this.target = new THREE.WebGLRenderTarget( - superWidth, - superHeight, - targetOptions - ); - if (doubleBuffer) { - this.backTarget = new THREE.WebGLRenderTarget( - superWidth, - superHeight, - targetOptions - ); + }; +} +let WASM_VECTOR_LEN = 0; +let wasm; +function __wbg_finalize_init(instance, module) { + wasm = instance.exports; + cachedDataViewMemory0 = null; + cachedFloat32ArrayMemory0 = null; + cachedUint16ArrayMemory0 = null; + cachedUint32ArrayMemory0 = null; + cachedUint8ArrayMemory0 = null; + wasm.__wbindgen_start(); + return wasm; +} +async function __wbg_load(module, imports) { + if (typeof Response === "function" && module instanceof Response) { + if (typeof WebAssembly.instantiateStreaming === "function") { + try { + return await WebAssembly.instantiateStreaming(module, imports); + } catch (e) { + const validResponse = module.ok && expectedResponseType(module.type); + if (validResponse && module.headers.get("Content-Type") !== "application/wasm") { + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); + } else { + throw e; + } } - this.encodeLinear = options.encodeLinear ?? true; + } + const bytes = await module.arrayBuffer(); + return await WebAssembly.instantiate(bytes, imports); + } else { + const instance = await WebAssembly.instantiate(module, imports); + if (instance instanceof WebAssembly.Instance) { + return { instance, module }; + } else { + return instance; } } - static makeUniforms() { - const uniforms = { - // // number of active splats to render - // numSplats: { value: 0 }, - // Size of render viewport in pixels - renderSize: { value: new THREE.Vector2() }, - // Near and far plane distances - near: { value: 0.1 }, - far: { value: 1e3 }, - // SplatAccumulator to view transformation quaternion - renderToViewQuat: { value: new THREE.Quaternion() }, - // SplatAccumulator to view transformation translation - renderToViewPos: { value: new THREE.Vector3() }, - renderToViewBasis: { value: new THREE.Matrix3() }, - renderToViewOffset: { value: new THREE.Vector3() }, - // Maximum distance (in stddevs) from Gsplat center to render - maxStdDev: { value: 1 }, - // Minimum pixel radius for splat rendering - minPixelRadius: { value: 0 }, - // Maximum pixel radius for splat rendering - maxPixelRadius: { value: 512 }, - // Minimum alpha value for splat rendering - minAlpha: { value: 0.5 * (1 / 255) }, - // Enable interpreting 0-thickness Gsplats as 2DGS - enable2DGS: { value: false }, - // Enable ray-splat max response evaluation - // enableRayEval: { value: false }, - // Inflate LoD splats so that opacity <= 1.0 - lodInflate: { value: false }, - // Add to projected 2D splat covariance diagonal (thickens and brightens) - preBlurAmount: { value: 0 }, - // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing) - blurAmount: { value: 0.3 }, - // Depth-of-field distance to focal plane - focalDistance: { value: 0 }, - // Full-width angle of aperture opening (in radians) - apertureAngle: { value: 0 }, - // Modulate Gaussian kernal falloff. 0 means "no falloff, flat shading", - // 1 is normal e^-x^2 falloff. - falloff: { value: 1 }, - // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds - clipXY: { value: 1.4 }, - // Debug renderSize scale factor - focalAdjustment: { value: 1 }, - // Whether to encode Gsplat with linear RGB (for environment mapping) - encodeLinear: { value: false }, - // Back-to-front sort ordering of splat indices - ordering: { type: "t", value: _SparkRenderer.emptyOrdering }, - enableExtSplats: { value: false }, - enableCovSplats: { value: false }, - // Gsplat collection to render - extSplats: { type: "t", value: SplatAccumulator.emptyTexture }, - extSplats2: { type: "t", value: SplatAccumulator.emptyTexture }, - // Time in seconds for time-based effects - time: { value: 0 }, - // Delta time in seconds since last frame - deltaTime: { value: 0 }, - // Debug flag that alternates each frame - debugFlag: { value: false } - }; - return uniforms; + function expectedResponseType(type) { + switch (type) { + case "basic": + case "cors": + case "default": + return true; + } + return false; } - dispose() { - if (this.target) { - this.target.dispose(); - this.target = void 0; +} +async function __wbg_init(module_or_path) { + if (wasm !== void 0) return wasm; + if (module_or_path !== void 0) { + if (Object.getPrototypeOf(module_or_path) === Object.prototype) { + ({ module_or_path } = module_or_path); + } else { + console.warn("using deprecated parameters for the initialization function; pass a single object instead"); } - if (this.backTarget) { - this.backTarget.dispose(); - this.backTarget = void 0; + } + const imports = __wbg_get_imports(); + if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) { + module_or_path = fetch(module_or_path); + } + const { instance, module } = await __wbg_load(await module_or_path, imports); + return __wbg_finalize_init(instance); +} +function b64ToUint6(nChr) { + return nChr > 64 && nChr < 91 ? nChr - 65 : nChr > 96 && nChr < 123 ? nChr - 71 : nChr > 47 && nChr < 58 ? nChr + 4 : nChr === 43 ? 62 : nChr === 47 ? 63 : 0; +} +function base64ToUint8(sBase64, nBlocksSize) { + const sB64Enc = sBase64.replace(/[^A-Za-z0-9+/]/g, ""); + const nInLen = sB64Enc.length; + const nOutLen = nBlocksSize ? Math.ceil((nInLen * 3 + 1 >> 2) / nBlocksSize) * nBlocksSize : nInLen * 3 + 1 >> 2; + const taBytes = new Uint8Array(nOutLen); + let nMod3; + let nMod4; + let nUint24 = 0; + let nOutIdx = 0; + for (let nInIdx = 0; nInIdx < nInLen; nInIdx++) { + nMod4 = nInIdx & 3; + nUint24 |= b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 6 * (3 - nMod4); + if (nMod4 === 3 || nInLen - nInIdx === 1) { + nMod3 = 0; + while (nMod3 < 3 && nOutIdx < nOutLen) { + taBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255; + nMod3++; + nOutIdx++; + } + nUint24 = 0; + } + } + return taBytes; +} +function toUint8(b64) { + if (typeof Uint8Array.fromBase64 === "function") return Uint8Array.fromBase64(b64); + let bin = atob(b64); + let len = bin.length; + let bytes = new Uint8Array(len); + for (let i = 0; i < len; i++) { + bytes[i] = bin.charCodeAt(i); + } + return bytes; +} +const decode64 = typeof atob === "function" ? toUint8 : base64ToUint8; +const WASM = decode64("AGFzbQEAAAABzAdyYAN/f38Bf2ACf38AYAJ/fwF/YAF/AGABfwF/YAN/f38AYAR/f39/AGAFf39/f38AYAADf39/YAZ/f39/f38AYAd/f39/f39/AGAEf39/fwF/YAFvAX9gCH9/f39/f39/AGABfwN/f39gAABgBX9/f39/AX9gAX0BfWACf28AYAF/AX5gBn9/f39/fQBgAAFvYAN/fX8AYAZ/f39/f38Bf2AFf39/fn8AYAABf2ABfwFvYAJ/fwFvYAJ/fQBgAX4Bf2ADb39/AW9gA29/fwBgAm9vAX9gA39/bwBgCX9/f39/f39/fwBgB39/f39/f38Bf2ADf39/AX5gAn9vA39/f2ACfX0BfWACb28Bb2ACb38Bb2AEf39/fQF/YAx/f39/f39/f39/f38AYAl/f39/f39/f38Bf2AFf39/fX8AYAV/f39/fQBgBH9/f34AYAR/fX9/AX9gE39/f39/f39/f39/f39/f39/f38Bf2ATf39/f39/f39/f39/f39/f39/fwBgA35+fwF+YAd/f39/f319AGADf35+AGAFf399f38AYAV/f3x/fwBgBX9/fn9/AGATf318f39/f39/f39/f39/f39/fwN/f39gBH9vf28Df39/YAN/b28Bf2AAAn9/YANvb28Bf2ADb29vAGADb39vAGADb29/AGABbwFvYAF8AW9gAX4Bb2AKf39/f39/f39/fwF/YAt/f39/f39/f39/fwF/YAp/f39/f39/f39/AGAGf399f39/AGACf38BfWACf34AYAN/fX8Bf2AGf35/f39/AGAFf39/fn4AYAh/f3t9fX9/fwBgCn9/f397fX19fX8AYAZ/f39/fX0AYAV/f39/fwF9YAR+fn9/AX5gBH9/f38BfWACfn8AYAF/AX1gCX9/f39/f35+fgBgA39/ewBgAn5/AX9gAn9+AX9gAn1/AX1gA319fQF9YAR/fn5/AGAGf39/fX9/AGAGf39/fH9/AGAGf39/fn9/AGAJf39/f39/f39vA39/f2AIf39/f29/f38Df39/YAd/f39/f39/A39/f2AHf29/fX9/bwN/f39gB39vb399f38Df39/YA59fX19fX19fX1/b319fwFvYAZ/b399f28Df39/YAZ/b29/fX8Df39/YAV/f39/bwN/f39gBH9/f38Df39/YAR/b29/A39/f2ACf38Df39/YA19fX19fX19fX1/fX1/AW9gAW8Df39/YAJ/bwJ/f2AKfX19fX19fX19fwFvYAR/fX9/AGAEf3x/fwBgBH9+f38AYAF8AX8CxRU0EC4vc3BhcmtfcnNfYmcuanMaX193YmdfbmV3X2YzYzlkZjRmMzhmM2Y3OTgAFRAuL3NwYXJrX3JzX2JnLmpzJl9fd2JnX25ld193aXRoX2xlbmd0aF80MWEyMjE5MWI5YmRmZDY2ABoQLi9zcGFya19yc19iZy5qcx9fX3diZ19zdWJhcnJheV9kNTFlODk0NThiM2ZkYmY2AB4QLi9zcGFya19yc19iZy5qcx1fX3diZ19sZW5ndGhfMWU3MDE3OThmZGNhYTNiNAAMEC4vc3BhcmtfcnNfYmcuanMaX193Ymdfc2V0XzQ0ODEyNjc2OWJmN2MxODEAHxAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX25ld180ZjlmYWZiYjM5MDlhZjcyABUQLi9zcGFya19yc19iZy5qcxpfX3diZ19zZXRfOGVlMmQzNGZhY2I4NDY2ZQA8EC4vc3BhcmtfcnNfYmcuanMbX193YmdfcHVzaF82YmRiYzk5MGJlNWFjMzdiACAQLi9zcGFya19yc19iZy5qcxVfX3diZ19jc3BsYXRhcnJheV9uZXcAGhAuL3NwYXJrX3JzX2JnLmpzFV9fd2JnX2dzcGxhdGFycmF5X25ldwAaEC4vc3BhcmtfcnNfYmcuanMcX193YmdfRXJyb3JfMmU1OWIxYjM3YTlhMzRjMwAbEC4vc3BhcmtfcnNfYmcuanMrX193YmdfX193YmluZGdlbl9pc19vYmplY3RfNDBjNWE4MDU3MmU4ZjlkMwAMEC4vc3BhcmtfcnNfYmcuanMnX193YmdfZ2V0X3dpdGhfcmVmX2tleV82NDEyY2YzMDk0NTk5Njk0ACcQLi9zcGFya19yc19iZy5qcy5fX3diZ19fX3diaW5kZ2VuX2lzX3VuZGVmaW5lZF9jMGNjYTcyYjgyYjg2ZjRkAAwQLi9zcGFya19yc19iZy5qcyRfX3diZ19fX3diaW5kZ2VuX2luXzRiZDdhNTdlNTQzMzczNjYAIBAuL3NwYXJrX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fbnVtYmVyX2dldF83NTc5YWFiMDJhOGE2MjBjABIQLi9zcGFya19yc19iZy5qcy1fX3diZ19fX3diaW5kZ2VuX2Jvb2xlYW5fZ2V0X2E4NmMyMTY1NzVhNzVjMzAADBAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX3NldF82YmU0Mjc2OGM2OTBlMzgwAD0QLi9zcGFya19yc19iZy5qcxpfX3diZ19zZXRfNmM2MGIyZThhZDBlOTM4MwA+EC4vc3BhcmtfcnNfYmcuanMaX193Ymdfc2V0XzgxYjQxNzQzNTJlNmEwOTUAPxAuL3NwYXJrX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfZTQyMjc1ZTYwMWUxNGVlYgAhEC4vc3BhcmtfcnNfYmcuanMaX193YmdfZ2V0X2Y5NjcwMmM2MjQ1ZTRlZjkAJxAuL3NwYXJrX3JzX2JnLmpzKl9fd2JnX19fd2JpbmRnZW5faXNfZmFsc3lfYzZkZGZhZTFiYjU2ZDVlZgAMEC4vc3BhcmtfcnNfYmcuanMdX193YmdfbGVuZ3RoXzBjMzJjYjg1NDNjOGU0YzgADBAuL3NwYXJrX3JzX2JnLmpzH19fd2JnX3N1YmFycmF5XzBmOThkM2ZiNjM0NTA4YWQAHhAuL3NwYXJrX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfM2UwNWViOTU0NTU2NTA0NgAhEC4vc3BhcmtfcnNfYmcuanMdX193YmdfbGVuZ3RoXzZlODIxZWRkZTQ5N2E1MzIADBAuL3NwYXJrX3JzX2JnLmpzJF9fd2JnX2dldF91bmNoZWNrZWRfN2Q3YmFiZTMyZTllNmE1NAAoEC4vc3BhcmtfcnNfYmcuanMgX193Ymdfc2V0X2luZGV4XzMzOGE2NmU0MGZjNDVkZWUAHxAuL3NwYXJrX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF9hNGNhOWU3ODM1OWI1ZjFmAAwQLi9zcGFya19yc19iZy5qcx9fX3diZ19zdWJhcnJheV81MTdjZDBmMTgxMWFiODcyAB4QLi9zcGFya19yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsXzY0YzI4N2EyN2NjMjRkMjcAIRAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX2dldF80ODQ4ZTM1MGI0MGFmYzE2ACgQLi9zcGFya19yc19iZy5qcyZfX3diZ19uZXdfd2l0aF9sZW5ndGhfMjZiZmZiZTIzNmJmNzNmOQAaEC4vc3BhcmtfcnNfYmcuanMdX193YmdfbGVuZ3RoX2ZkNDY0NmI0MDE5MjY3ODgADBAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX3NldF9hOThjOGRhNjU1N2U2M2RlAB8QLi9zcGFya19yc19iZy5qcxpfX3diZ19uZXdfMjI3ZDdjMDU0MTRlYjg2MQAVEC4vc3BhcmtfcnNfYmcuanMcX193Ymdfc3RhY2tfM2IwZDk3NGJiZjMxZTQ0ZgASEC4vc3BhcmtfcnNfYmcuanMcX193YmdfZXJyb3JfYTZmYTIwMmI1OGFhMWNkMwABEC4vc3BhcmtfcnNfYmcuanMwX193YmdfX193YmluZGdlbl9qc3ZhbF9sb29zZV9lcV8zYTcyYWU3NjRkNDZkOTQ0ACAQLi9zcGFya19yc19iZy5qcyxfX3diZ19fX3diaW5kZ2VuX3N0cmluZ19nZXRfOTE0ZGY5N2ZjZmE3ODhmMgASEC4vc3BhcmtfcnNfYmcuanMsX193YmdfaW5zdGFuY2VvZl9VaW50OEFycmF5XzRiOGRhNjgzZGViMjVkNzIADBAuL3NwYXJrX3JzX2JnLmpzLV9fd2JnX2luc3RhbmNlb2ZfQXJyYXlCdWZmZXJfZmY3YzEzMzdhNWUzYjMzYQAMEC4vc3BhcmtfcnNfYmcuanMaX193YmdfbmV3X2E1NjAzNzhlYTEyNDBiMTQAQBAuL3NwYXJrX3JzX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfODFmYzc3Njc5YWY4M2JjNgABEC4vc3BhcmtfcnNfYmcuanMuX193YmdfX193YmluZGdlbl9kZWJ1Z19zdHJpbmdfZGQ1ZDJkMDdjZTllNmM1NwASEC4vc3BhcmtfcnNfYmcuanMfX193YmluZGdlbl9pbml0X2V4dGVybnJlZl90YWJsZQAPEC4vc3BhcmtfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDEAQRAuL3NwYXJrX3JzX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAyABsQLi9zcGFya19yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMwAbEC4vc3BhcmtfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDQAGxAuL3NwYXJrX3JzX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDA1AEID2wrZChwcFhYBAQoKCQEKCgUJBAQpCgoEDQQpDQEKAQUGBAQEBA0GBAQEBAUGBAQEBA8FCQkJBgEBCQkqBioCAQcJBgkGAgENDQYGBQErBAcBAEMBAUQGBgICAgEGAQQEBAQGAQEFBgYFBgYCAgYBCQIHBQYBAQEDBgQDBAEQAwQHAAYBBwYEAw0CBAEBAQEBFwQGAQIEBQYFA0UFARAHAwIBAQcCBQIBLAkFBwQGBAIEBgECBSIHAiwBAQcHAQYGBhQNASMECQcAAQAAAgEFAgUtBQoFBwYBAwYGAQ0BAQUDCQEBAwIFBgIFAwMCAwEBBAFGAi0GAwEHAQcHEQMRRwUHBgEDBwcBAQECFAICCQkEAgEuBw0BAwkFAQEBAQABCyQELwMBAwMCAQECA0gEBQEGAwQjBUkBAQEBBwAYBQICAUoCCQIBBwEAAQYJAUsGBgYBAwMFBQEFTAMBAwYEBAUFBTAwBAQvAwMxMQYkBQUKAQMJAAUGBQcBAgMDAwMHTQIBBQkJCQUABwMHAQEAAgYFAQMDAwMBAwYBAQECAU4GAgUGAQUBCwAJCQQBARcBAgIHFwABBQYDBQ0FFwEDAAUiAgEFAAAHBQUAABQJDwUHAgIKAgIBAgcHAgMKBQMFAQMEGAUHMgUFBQMyAQEzAAYEAwMKBREJAwMEBwoBBQUFTxQGBQIBAwYCUAUCAQMBAwFRAQQBBwUCBgIYAQJSAgIBAVMDAgEDAgJUAQsHBwcHCgEBAgcDAwkCBQEHBwULBgcEBAQDAQECCQYGAREDEAQEBwEEGRAKVSMEAwECByIHCQUEAhgDAgIFBAsWAgoCEQJWAzMLAgM0AAIBFAMHAQICBAIHAQIBAgICAgIQBgEEBgQBBgIZAgYCBREBAwIDBwUHBAQHBAEBAQEBAQIBAQEBAQIBBAQBAQACAgEBAwEDAgIDEQEDBQEBAgMDAgMCAQkBAQUHAwIBAwMHAgIABwMDAgICAQIHAQEDAgMrBQIHAgIFAgICAwUFAwEBAQICAgICVwECAgICAgIDAQkBAQQDCQEJAi4DAQEBAQEJCQICAQICAgMDBAMDAQEBAwEBAQUBBQFYAQJZAQEBAAEDBgIBCwsCAQYFAgIBAQQDAwEDAgIDAwMLAgEBAgEBAQEAAgM0AAAHBQMDBQMYAgUDFhYHBwkDBgUFBQUDAwMDAwMGHBwAAwYCAwADBAQEBAIFAQQEBAkEBwQFAwMDAwMCAgICBhMFWgUEAQMBAQMBBQQEWwlcXQEBAgUCBwICBhEAAAAAAAAAAAAAAAAEAgIAAAAAHR0EAAQdBAQEAgACAgIAODgFARMFAQAAAAECAAICAgIFAgECBBQCAgJeEF8HAgYCBwFgYWIDDwMCA2NkZQIPC2YCZzk5aAICAQICAgICCQICAgIlaSUlAAICAgICAgICAgICag4ODg4ODg4ODmsEBAQEAgJsAQEBAQABAgICFwICAgICbQECAgEQBzU2NwEBAgILBgIBADo6AwICJiYABQIDAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwMDAQIBAQEBAQEBAQEEAgACAgICAgkCAgICAQEBAQIDAQEBAgECAgICAgIEcR0DAwIHAgkBARkZBRISAgECAQEBAQEBAQEBAgIBAgEBAQEBAQEBAwQBBQUDBQIFBAUBBQUVFQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAgIDAwEBAQEBAQEBAQEBAQEBDwEPAQICAgECAgIBAQICAQEBAQMBAQEBAQEBAQEDAwoBAgQBJgQEBAQEBA8EGQUECwJwAeoE6gRvAIAIBQMBABMGDwJ/AUGAgMAAC38BQYAICwfZDUUGbWVtb3J5AgAXX193YmdfY2h1bmtkZWNvZGVyX2ZyZWUAtgQRY2h1bmtkZWNvZGVyX3B1c2gA9ggTY2h1bmtkZWNvZGVyX2ZpbmlzaADmCAxuZXdfbG9kX3RyZWUA5wgTbmV3X3NoYXJlZF9sb2RfdHJlZQDoCA1pbml0X2xvZF90cmVlANUIEGRpc3Bvc2VfbG9kX3RyZWUAmwIQdXBkYXRlX2xvZF90cmVlcwCrCBJnZXRfbG9kX3RyZWVfbGV2ZWwA1ggSdHJhdmVyc2VfbG9kX3RyZWVzAJEIGmR5bmFtaWNfdHJhdmVyc2VfbG9kX3RyZWVzAJIICndhc21fc3RhcnQAwAgMc2ltZF9lbmFibGVkAIsLC3NvcnRfc3BsYXRzAJkJDXNvcnQzMl9zcGxhdHMAmgkWZGVjb2RlX3RvX3BhY2tlZHNwbGF0cwCtCBNkZWNvZGVfdG9fZXh0c3BsYXRzALQIFl9fd2JnX2dzcGxhdGFycmF5X2ZyZWUA5wUfX193YmdfZ2V0X2dzcGxhdGFycmF5X251bVNwbGF0cwDwCB9fX3diZ19zZXRfZ3NwbGF0YXJyYXlfbnVtU3BsYXRzAPcIIV9fd2JnX2dldF9nc3BsYXRhcnJheV9tYXhTaERlZ3JlZQDxCCFfX3diZ19zZXRfZ3NwbGF0YXJyYXlfbWF4U2hEZWdyZWUA+AgPZ3NwbGF0YXJyYXlfbGVuAIoIFGdzcGxhdGFycmF5X3RpbnlfbG9kAJ8HFWdzcGxhdGFycmF5X2JoYXR0X2xvZACxBxtnc3BsYXRhcnJheV90b19wYWNrZWRzcGxhdHMA1wgfZ3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzX2xvZADYCBhnc3BsYXRhcnJheV90b19leHRzcGxhdHMA6QgcZ3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzX2xvZADqCBhnc3BsYXRhcnJheV9pbmplY3RfcmdiYTgAhQoVZGVjb2RlX3RvX2dzcGxhdGFycmF5AMQIG3BhY2tlZHNwbGF0c190b19nc3BsYXRhcnJheQDFCBZfX3diZ19jc3BsYXRhcnJheV9mcmVlAOgFH19fd2JnX2dldF9jc3BsYXRhcnJheV9udW1TcGxhdHMA8ggfX193Ymdfc2V0X2NzcGxhdGFycmF5X251bVNwbGF0cwD5CCFfX3diZ19nZXRfY3NwbGF0YXJyYXlfbWF4U2hEZWdyZWUA8wghX193Ymdfc2V0X2NzcGxhdGFycmF5X21heFNoRGVncmVlAPoID2NzcGxhdGFycmF5X2xlbgCKCBNjc3BsYXRhcnJheV9oYXNfbG9kAPsHFGNzcGxhdGFycmF5X3RpbnlfbG9kAKAHFWNzcGxhdGFycmF5X2JoYXR0X2xvZACyBxtjc3BsYXRhcnJheV90b19wYWNrZWRzcGxhdHMA6wgfY3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzX2xvZADsCBhjc3BsYXRhcnJheV90b19leHRzcGxhdHMA7QgcY3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzX2xvZADuCBhjc3BsYXRhcnJheV9pbmplY3RfcmdiYTgAhgoVZGVjb2RlX3RvX2NzcGxhdGFycmF5AMIIG3BhY2tlZHNwbGF0c190b19jc3BsYXRhcnJheQDGCBhleHRzcGxhdHNfdG9fZ3NwbGF0YXJyYXkAxwgVdGlueV9sb2RfcGFja2Vkc3BsYXRzALUIFmJoYXR0X2xvZF9wYWNrZWRzcGxhdHMAvQgSdGlueV9sb2RfZXh0c3BsYXRzALYIE2JoYXR0X2xvZF9leHRzcGxhdHMAvggSZ2V0X3JheWNhc3RfYnVmZmVyAK0KE2dldF9yYXljYXN0X2J1ZmZlcjIArgoVcmF5Y2FzdF9wYWNrZWRfYnVmZmVyAOUIE3JheWNhc3RfZXh0X2J1ZmZlcnMAhgkVcmF5Y2FzdF9wYWNrZWRfc3BsYXRzALwIEWRlY29kZV9yYWRfaGVhZGVyAO8IE2dzcGxhdGFycmF5X2hhc19sb2QA+wcRX193YmluZGdlbl9tYWxsb2MAjwgSX193YmluZGdlbl9yZWFsbG9jAMEID19fd2JpbmRnZW5fZnJlZQDIBxRfX3diaW5kZ2VuX2V4bl9zdG9yZQCfChdfX2V4dGVybnJlZl90YWJsZV9hbGxvYwCFBRVfX3diaW5kZ2VuX2V4dGVybnJlZnMBARlfX2V4dGVybnJlZl90YWJsZV9kZWFsbG9jAM0HEF9fd2JpbmRnZW5fc3RhcnQAiQsJyQkBAEEBC+kEowiHCqcJtQStCZsBMi/+CYcK/QqmA4wEgwLfBoUIoQXLCtAB/wG2B5sG/AmJCvoFige/CNoI9wKVCp4IM+MI0wbRAp0D6QfbCJMJnwiYBdAEyASICcoEpQi9AjEwmwaCBJQK5ArjCroI8AacCbYF/AeWCdgC5wrLCOgKiQqBB+sKnAHFBu8C1QTSBs0DjAbGB4sJoQeBBoUGjAnqB4sJgAnEB5gJpQeUCZUJ7QeiB40J4QeMCeIHjAniB+IHjgnjB48J5AegCOwKggehCM4IyQjPCKYFlgrUBqgI7AeHBsUFlgqTCooE8ALOAagDggXsBO0EjQaIAdwG/gqeCvgK9QmlCcUJuwmxCccJ8QnJCb0JtAm2CcAJwgmz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7AI2AgQgAyACKAL4AjYCCCADIAIoAoQDNgIMIAMgAigCkAM2AhAgAyACKAKcAzYCFCADIAIoAqgDNgIYIAMgAigCtAM2AhwgAkEINgJYIAIgAzYCVCACQQg2AlAgAiAkNwOwAiACQgE3AsQDIAJBAjYCvAMgAkGkk8EANgK4AyACIAJBsAJqNgLAAyACQbgDahCEAyACKAJQIgQEQCACKAJUIgZBBGsoAgAiA0F4cSIFIARBAnQiBEEEQQggA0EDcSIDG2pJDRUgA0EAIAUgBEEnaksbDQcgBhC0AgtB4AAQfiIKRQ0RIAogAkHYAmpB4AD8CgAAIAooAgAhDiAKQYCAgIB4NgIAIA5BgICAgHhGDQcgCkEEaiILKQIAIScgCigCDCEPIApBgICAgHg2AgwgD0GAgICAeEYNByAKKQIQISggCigCJCEHIApBgICAgHg2AiQgB0GAgICAeEYNByAKKQIoISkgCigCGCEIIApBgICAgHg2AhggCEGAgICAeEYNByAKKQIcIR8gCigCSCEGIApBgICAgHg2AkggBkGAgICAeEYNByAKKQJMIRsgCigCVCEFIApBgICAgHg2AlQgBUGAgICAeEYNByAKKQJYIRkgCigCPCEEIApBgICAgHg2AjwgBEGAgICAeEYNByAKKQJAIRogCigCMCEDIApBgICAgHg2AjAgA0GAgICAeEYNByACIAopAjQ3ApgEIAIgAzYClAQgAiAaNwKMBCACIAQ2AogEIAIgGTcCgAQgAiAFNgL8AyACIBs3AvQDIAIgBjYC8AMgAiAfNwLoAyACIAg2AuQDIAIgKTcC3AMgAiAHNgLYAyACICg3AtADIAIgDzYCzAMgAiAnNwLEAyACIA42AsADIAJCgICAgIABNwK4AyACKALMASINIAIoAsABIgRGBEAgAkHAAWpBtJPBABDaBiACKALMASENIAIoAsABIQQLIAIoAsQBIgkgAigCyAEiCCANaiIDIARBACADIARPG2tBDGxqIgMgJzcCBCADIA42AgAgAiANQQFqIgY2AswBIAQgBkYEQCACQcABakG0k8EAENoGIAIoAsQBIQkgAigCyAEhCCACKALMASEGIAIoAsABIQQLIAkgBiAIaiIDIARBACADIARPG2tBDGxqIgMgKDcCBCADIA82AgAgAiAGQQFqIgY2AswBIAQgBkYE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AigCTEEBSw0EIAIgACgCCEEBazYC3AEgAkEBNgLEAyACQdS3wQA2AsADIAJCATcCzAMgAiACQdwBaq1CgICAgBCENwOgAiACIAJBoAJqNgLIAyACQbACaiACQcADahDmBiACKAKwAiIEBEAgAigCtAIgBEEBENYHCwJAAkACQCACKALcASIEIAAoAggiA0kEQCACQQE2AsQDIAJBlLvBADYCwAMgAkIBNwLMAyACIAAoAgQgBEEkbGo2AvABIAIgJ0KAgICAoAWENwOgAiACIAJBoAJqNgLIAyACQbACaiACQcADahDmBiACKAKwAiIEBEAgAigCtAIgBEEBENYHCyACQSBqIAAoAghBAXRBAWsQmwhBACEFIAJBADYC6AEgAiACKQMgNwLgASACQeABaiIEIAIoAixBARD3BiAEIAAoAghBABD3BiACKALcASIDIAIoAugBIgpPDQIgAigC5AEiCyADakEBOgAAIAJBwANqIAAgAigC3AEgBCABEKQCQQAhBgJAIApBBE8EQP0MAAAAAAAAAAAAAAAAAAAAACEzIApBfHEiBiEFIAshAwNAIDMgA/1cAAD9iQH9qQH9rgEhMyADQQRqIQMgBUEEayIFDQALIDMgMyAz/Q0ICQoLDA0ODwABAgMAAQID/a4BIjMgMyAz/Q0EBQYHAAECAwABAgMAAQID/a4B/RsAIQUgBiAKRg0BCyAGIAtqIQMgCiAGayEGA0AgBSADLQAAaiEFIANBAWohAyAGQQFrIgYNAAsLIAIoAugDIQwgAigCzAMhDSACIAU2AuwBIAIgACgCCDYC8AEgAkECNgLEAyACQci7wQA2AsADIAJCAjcCzAMgAiAoNwO4AiACIAJB7AFqrUKAgICAEIQiFjcDsAIgAiACQbACajYCyAMgAkGgAmogAkHAA2oQ5gYgAigCoAIiBARAIAIoAqQCIARBARDWBwsgAkEBNgLEAyACQey7wQA2AsADIAJCATcCzAMgAiAnQoCAgICABYQ3A6ACIAIgAigC7AGzIAIoAiyzlTgC8AEgAiACQaACajYCyAMgAkGwAmogAkHAA2oQ5gYgAigCsAIiBARAIAIoArQCIARBARDWBwsgAkEANgL4ASACQoCAgIDAADcC8AEgAigC3AEhBCACQfABakH0u8EAEKwGIAIoAvQBIAQ2AgAgAkEBNgL4ASAC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IANCgICAgMAANwKwASADQQA2ArwBIANBADYC3AEgB0UEQEL///////////8AIRtCgICAgICAgICAfyEdQoCAgICAgICAgH8hHEKAgICAgICAgIB/IR5C////////////ACEfQv///////////wAhIAwEC0KAgICAgICAgIB/IR5C////////////ACEgQQAhAkL///////////8AIR9C////////////ACEbQoCAgICAgICAgH8hHEKAgICAgICAgIB/IR0DQAJAAkAgAygCPCIVIAJBBXQiCWoiBSgCACIGIAAoAggiBEkEQCAAKAIEIg4gBkEkbGoiBv1dAgggBioCECIB/SACIAH9IAMgA/0JAoQBIiz95wH9aCIr/R8C/AQhGCAr/R8B/AQhGSAr/R8A/AQhGiAHIAJBAWoiCE0EQCACIQoMAwsgB0EBayEKIBFBAXEEQCAHIQgMAwsgCSAVakEgaiEGA0AgBigCACIJIARPDQIgDiAJQSRsaiIJ/V0CCCAJKgIQIgH9IAIgAf0gAyAs/ecB/WgiK/0fAPwEIBpSICv9HwH8BCAZUnJFICv9HwL8BCAYUXFFBEAgCEEBayEKDAQLIAZBIGohBiAHIAhBAWoiCEcNAAsgByEIDAILIAYgBEHoyMcAEL8HAAsgCSAEQejIxwAQvwcACyAdIBggGCAdUxshHSAcIBkgGSAcUxshHCAeIBogGiAeUxshHiAbIBggGCAbVRshGyAfIBkgGSAfVRshHyAgIBogGiAgVRshICADIAMoAtwBQQFqNgLcASADKQNoIhggCCACayINrYUiGUI4hiAZQoD+A4NCKIaEIBlCgID8B4NCGIYgGUKAgID4D4NCCIaEhCAYQgiIQoCAgPgPgyAYQhiIQoCA/AeDhCAYQiiIQoD+A4MgGEI4iISEhELSgaqbq/qC16d/fiIYQjiGIBhCgP4Dg0IohoQgGEKAgPwHg0IYhiAYQoCAgPgPg0IIhoSEIBhCCIhCgICA+A+DIBhCGIhCgID8B4OEIBhCKIhCgP4DgyAYQjiIhISEIBlC2KLR78Kp5b8tfoUiGEI4hiAYQoD+A4NCKIaEIBhCgID8B4NCGIYgGEKAgID4D4NCCIaEhCAYQgiIQoCAgPgPgyAYQhiIQoCA/AeDhCAYQiiIQoD+A4MgGEI4iISEhCADKQNgIhlCf4V+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CwMAIARB+Bhq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAEQegYav0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgBP0MAAAAAAAAAAAAAAAAAAAAAP0LA9gYIAJBBE8NAiAEQcgYaiABIARB2BhqIA5BASADIAhqQf8BcSAbIAJBBHRqIgMvAQQgAy8BBhDyASAELQDJGCETIAQtAMgYIghBHUYNAyAEIAQpAcoYNwO4DCAEIARB0BhqKQEANwG+DAwbC0EDIQwgAkEDSw0DDAULIAsgA0H0tcYAEL8HAAsgAkEEQYS2xgAQvwcACyABIBM6AJYFIAEoAqQEIgMgC0sEQCABKAKgBCAFaiATOgAUIARB2BhqIgMgAygCACIIIAMoAjAiB2siDCADKAIQIgogAygCICITayIRazYCMCADIAcgCGoiCCAKIBNqIgdrNgIgIAMgDCARajYCECADIAcgCGo2AgAgAyADKAIkIgggAygCFCIHaiIMIAMoAjQiCiADKAIEIhNqIhFqNgIEIAMgEyAKayIKIAcgCGsiCGs2AjQgAyAIIApqNgIUIAMgESAMazYCJCADIAMoAigiByADKAIYIgxqIgogAygCOCITIAMoAggiEWoiD2oiCDYCCCADIBEgE2siEyAMIAdrIgdrNgI4IAMgDyAKazYCKCADIAcgE2o2AhggAyADKAIsIgwgAygCHCIKaiITIAMoAjwiESADKAIMIg9qIhpqIgc2AgwgAyAKIAxrIgogDyARayIRaiIMNgIcIAMgESAKazYCPCADIBogE2siCjYCLCADIAcgAygCACITakEDaiIRIAggAygCBCIPaiIaa0EDdTYCCCADIBMgB2tBA2oiByAPIAhrIghrQQN1NgIMIAMgByAIakEDdTYCBCADIBEgGmpBA3U2AgAgAyADKAIQIgggDGtBA2oiByADKAIUIhMgAygCGCIRayIPa0EDdTYCHCADIAggDGpBA2oiCCARIBNqIgxrQQN1NgIYIAMgByAPakEDdTYCFCADIAggDGpBA3U2AhAgAyADKAIgIgggCmtBA2oiByADKAIkIgwgAygCKCITayIRa0EDdTYCLCADIAggCmpBA2oiCCAMIBNqIgxrQQN1NgIoIAMgByARakEDdTYCJCADIAggDGpBA3U2AiAgAyADKAIwIgggAygCPCIHa0EDaiIMIAMo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AU0bIghFDQMgA0EYaiAHIAxqIAj8CgAADAMLIAcgCEGk+MQAEKMKAAsgByAIQcT4xAAQvwcACyAHIAhB1PjEABCjCgALIAMgAy0AGCIIOgCUAiADIAg6AMABIAMgCDoAbCADIAMtABkiCDoAlQIgAyAIOgDBASADIAg6AG0gAyADLQAaIgg6AJYCIAMgCDoAwgEgAyAIOgBuIAMgAy0AGyIIOgCXAiADIAg6AMMBIAMgCDoAbyAKAn8gC0UEQCADQYEBOgDXAiADQYEBOgDCAiADQYEBOgCtAiADQYEBOgCYAiADQYEBOgCDAiADQYEBOgDuASADQYEBOgDZASADQYEBOgDEASADQYEBOgCvASADQYEBOgCaASADQYEBOgCFASADQYEBOgBwIANBgQE6AFsgA0GBAToARiADQYEBOgAxIANBgQE6ABxBgX9B/wAgFhsMAQsCQCARBEAgEUEBayIIRQ0BIAMgAi0AAToAHCAIQQFGDQEgAyACLQACOgAxIAhBAkYNASADIAItAAM6AEYgCEEDRg0BIAMgAi0ABDoAWyAIQQRGDQEgAyACLQAFOgBwIAhBBUYNASADIAItAAY6AIUBIAhBBkYNASADIAItAAc6AJoBIAhBB0YNASADIAItAAg6AK8BIAhBCEYNASADIAItAAk6AMQBIAhBCUYNASADIAItAAo6ANkBIAhBCkYNASADIAItAAs6AO4BIAhBC0YNASADIAItAAw6AIMCIAhBDEYNASADIAItAA06AJgCIAhBDUYNASADIAItAA46AK0CIAhBDkYNASADIAItAA86AMICIAhBD0YNASADIAItABA6ANcCDAELQQFBAEG0+MQAEKMKAAtBgX9B/wAgFhsgFkUNABogAi0AAAs6AAAgCkEBaiADQQhqQeQC/AoAACADQfACaiQAIAZBAWsOBAQFBgcICyALIAhBvLbGABC/BwALIBNBCUHMtsYAEL8HAAsgCyAIQdy2xgAQvwcACyALIAhBjLfGABC/BwALQbB9IQcDQCAEQcgMaiAHaiIDQeYCaiAELQDJDDoAACADQecCaiAELQDKDDoAACADQegCaiAELQDLDDoAACADQekCaiAELQDMDDoAACADQeoCaiAELQDNDDoAACADQesCaiAELQDODDoAACADQewCaiAELQDPDDoAACADQe0CaiAELQDQ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GCICOgCYGSAEIAQoANoYNgCZGSAEIAQvAN4YOwCdGSAEIAQtAOAYOgCfGSAEIAI6AKEZIAQgBC0A2hg6AKIZIAQgAzoAoxkgBCAELQDcGDoApBkgBCAELQDdGDoApRkgBCAELQDeGDoAphkgBCAELQDfGDoApxkgBCAELQDgGDoAqBkgBCAELQDJDDoA0gwgBCAELQDKDDoA0wwgBCAELQDLDDoA1AwgBCAELQDMDDoA1QwgBCAELQDNDDoA1gwgBCAELQDODDoA1wwgBCAELQDPDDoA2AwgBCAELQDQDDoA2QwgBCAELQDJDDoA2wwgBCAELQDKDDoA3AwgBCAELQDLDDoA3QwgBCAELQDMDDoA3gwgBCAELQDNDDoA3wwgBCAELQDODDoA4AwgBCAELQDPDDoA4QwgBCAELQDQDDoA4gwgBCAELQDJDDoA5AwgBCAELQDKDDoA5QwgBCAELQDLDDoA5gwgBCAELQDMDDoA5wwgBCAELQDNDDoA6AwgBCAELQDODDoA6QwgBCAELQDPDDoA6gwgBCAELQDQDDoA6wwgBCAELQDJDDoA7QwgBCAELQDKDDoA7gwgBCAELQDLDDoA7wwgBCAELQDMDDoA8AwgBCAELQDNDDoA8QwgBCAELQDODDoA8gwgBCAELQDPDDoA8wwgBCAELQDQDDoA9AwgBCAELQDJDDoA9gwgBCAELQDKDDoA9wwgBCAELQDLDDoA+AwgBCAELQDMDDoA+QwgBCAELQDNDDoA+gwgBCAELQDODDoA+wwgBCAELQDPDDoA/AwgBCAELQDQDDoA/QwgBCAELQDJDDoA/wwgBCAELQDKDDoAgA0gBCAELQDLDDoAgQ0gBCAELQDMDDoAgg0gBCAELQDNDDoAgw0gBCAELQDODDoAhA0gBCAELQDPDDoAhQ0gBCAELQDQDDoAhg0gBCAELQDJDDoAiA0gBCAELQDKDDoAiQ0gBCAELQDLDDoAig0gBCAELQDMDDoAiw0gBCAELQDNDDoAjA0gBCAELQDODDoAjQ0gBCAELQDPDDoAjg0gBCAELQDQDDoAjw0gBCAELQDJDDoAkQ0gBCAELQDKDDoAkg0gBCAELQDLDDoAkw0gBCAELQDMDDoAlA0gBCAELQDNDDoAlQ0gBCAELQDODDoAlg0gBCAELQDPDDoAlw0gBCAELQDQDDoAmA0M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EL8HAAsgASgCqAMgBWogA2ogAyAUaiIIKAIANgIAIAxBAkYNBSARIAEoAqwDIgZPDQEgASgCqAMgBWogA2pBBGogCEEEaigCADYCACAMQQFGDQYgASgCrAMiBiAXSwRAIAEoAqgDIAVqIANqQQhqIAhBCGooAgA2AgAgA0EQaiEDIAJBBGohAiALIA9JIAtBAWohCw0BDCALCyAKQQJ0IAJqQQFrDAELIApBAnQgAmpBAmsLIAZByNjBABC/BwALDDELDDALIAJBAmsMAgsgAkEBawwBCyACQQNrCyAJQbjYwQAQvwcACyADQQhqDAILIANBC2oMAQsgA0EOagsgBUGI2MEAEL8HAAsgA0EHagwCCyADQQpqDAELIANBDWoLIAVB+NfBABC/BwALIANBBmoMAgsgA0EJagwBCyADQQxqCyAFQejXwQAQvwcACyAEIAEoAuACIA8gChCgCSICEIMLIgM2AnAgBCAINgJYAkACQCADIAhGBEAgAiAVIAgQqQogAkGECE8EQCACEM0HCyAEIAEoAugCIA8gChCgCSICEIMLIgM2AnAgBCAINgJYIAMgCEcNIiACIAwgCBCpCiACQYQITwRAIAIQzQcLIAEoApQDIgMgCkkEQCAKIAMiAmsiBiABKAKMAyACa0sEQCAgIAIgBkEEQQQQ0AUgASgClAMhAgsgASgCkAMiCSACQQJ0IgtqIQUgBkECTwRAIAogA0F/c2pBAnQiCgRAIAVBACAK/AsACyASQQR0IANBAnRrIAlqIAtqQQRrIQUgAiAGakEBayECCyAFQQA2AgAgASACQQFqNgKUAwsgEEUNDCAVQQxqIQogFEEEdEEMciEOQQAhAkEBIQZBACEDAkACQAJAA0AgAkEDaiIFIAhPDQUgAiAPakEDaiIFIAEoAogDIglPDQYgASgChAMgDmogA2ogAyAKaigCADYCACACIBRqIgkgASgClAMiBU8NAyABKAKQAyAPaiADaiADIAxqIgsoAgA2AgAgASgClAMiBSAJQQFqSwRAIAEoApADIA9qIANqQQRqIAtBBGooAgA2AgAgASgClAMiBSAJQQJqTQ0CIAEoApADIA9qIANqQQhqIAtBCGooAgA2AgAgASgClAMiBSAJQQNqTQ0DIAEoApADIA9qIANqQQxqIAtBDGooAgA2AgAgAkEEaiECIANBEGohAyAGIBBJIAZBAWohBg0BDBELCyAJQQFqIQkMAgsgCUECaiEJDAELIAlBA2ohCQsgCSAFQZjXwQAQvwcACwwhCyAFIAhB+NbBABC/BwALIAUgCUGI18EAEL8HAAsgA0EBagwBCyADQQRqCyAFQbjWwQAQvwcACyADQQNqIQMLIAMgBUGo1sEAEL8HAAsgA0EBawwBCyADQQJqCyAFQZjWwQAQvwcACyAEIAEoAuACIA9BAnQiECAOEKAJIgIQgwsiAzYCcCAEIAw2AlggAyAMRw0WIAIgCSAMEKkKIAJBhAhPBEAgAhDNBwsgASgCiAMiAyAOSQRAIA4gAyICayIGIAEoAoADIAJrSwRAIB8gAiAGQQRBBBDQBSABKAKIAyECCyABKAKEAyILIAJBAnQiCGohBSAGQQJPBEAgDiADQX9zakECdCIOBEAgBUEAIA78CwALIBRBBHQgA0ECdGsgC2ogCGpBBGshBSACIAZqQQFrIQILIAVBADYCACABIAJBAWo2AogDCyAKRQ0AIA9BBHQhBkEAIQJBASELQQEhAwJ/AkACQAJAAkACQAJAAkADQCAMIANBAWsiBUsEQCABKAKIAyIIIAUgEGpNDQUgASgChAMgBmogAmogAiAJaiIFKAIANgIAIAMgDE8NBCADIBBqIg4gASgCiAMiCE8NCCABKAKEAyAGaiACakEEaiAFQQRqKAIANgIAIANBAWogDE8NAyABKAKIAyIIIA5BAWpNDQcgASgChAMgBmogAmpBCGogBUEIaigCADYCACADQQJqIAxPDQIgASgCiAMiCCAOQQJqTQ0GIAEoAoQDIAZqIAJqQQxqIAVBDGooAgA2AgAgA0EEaiEDIAJBEGohAiAKIAtLIAtBAWohCw0BDAoLCyADQQFrIQMMAgsgA0ECaiEDDAELIANBAWohAwsgAyAMQfjVwQAQvwcACyAPQQJ0IANqQQFrDAMLIA9BAnQgA2pBAmoMAgsgD0ECdCADakEBagwBCyAPQQJ0IANqCyAIQYjWwQAQvwcACyAEKAIYIgJFDQ0gB0EEaygCACIDQXhxIgYgAkECdCICQQRBCCADQQNxIgMbakkNEyADQQAgBiACQSdqSxsNACAHELQCDA0LDBMLIARBqAFqIAIgAyABKAKsAhD7BCATIAEoAqgCIAEoAqwCIAQoAqwBIgIgBCgCsAEQ3wQgBCgCqAEiA0UNCwJAIAJBBGsoAgAiB0F4cSIGIANBAnQiA0EEQQggB0EDcSIHG2pPBEAgB0EAIAYgA0EnaksbDQEgAhC0AgwNCwwSCwwSCyAEQagBaiACIAMgASgCrAIQyAUgEyABKAKoAiABKAKsAiAEKAKsASICIAQoArABEOAEIAQoAqgBIgNFDQoCQCACQQRrKAIAIgdBeHEiBiADQQF0IgNBBEEIIAdBA3EiBxtqTwRAIAdBACAGIANBJ2pLGw0BIAIQtAIMDAsMEQsMEQsgCUEBaiEJCyAJIAdB4J/BABC/BwALIBMgASgCqAIgASgCrAIgBCgCXCICIAQoAmAQrgUgBCgCWCIDRQ0HAkAgAkEEaygCACIHQXhxIgYgA0ECdCIDQQRBCCAHQQNxIgcbak8EQCAHQQAgBiADQSdqSxsNASACELQCDAkLDA4LDA4LIARBGGogAiADIAEoAqwCIA0qAgQgDSoCDBDPAwsgEyABKAKoAiABKAKsAiAEKAIcIgIgBCgCIBCqAiAEKAIYIgNFDQUCQCACQQRrKAIAIgdBeHEiBiADQQJ0IgNBBEEIIAdBA3EiBxtqTwRAIAdBACAGIANBJ2pLGw0BIAIQtAIMBwsMDAsMDAsgBEEYaiACIANBAyAHICUgKBCkBQsgEyABKAKoAiABKAKsAiAEKAIcIgIgBCgCIBC2AiAEKAIYIgNFDQMCQCACQQRrKAIAIgdBeHEiBiADQQJ0IgNBBEEIIAdBA3EiBxtqTwRAIAdBACAGIANBJ2pLGw0BIAIQtAIMBQsMCgsMCgsgBEEYaiACIANBASABKAKsAiANKgIEIA0qAgwQpAULIBMgASgCqAIgASgCrAIgBCgCHCICIAQoAiAQsQIgBCgCGCIDRQ0BAkAgAkEEaygCACIHQXhxIgYgA0ECdCIDQQRBCCAHQQNxIgcbak8EQCAHQQAgBiADQSdqSxsNASACELQCDAMLDAgLDAgLIABBAToAACAAIAE2AgQgG0UgGkVyDQUgGSAaQQEQ1gcMBQsCQAJAAkAgASgCuAIiAyANKAIYQQdqQXhxIgJPBEAgAUEANgK4AiADIAJrIQcgAkUNASACIANGDQMgB0UNAiABKAK0AiIDIAIgA2ogB/wKAAAMAgsgAiADQdyrxwAQogoACyACIANGDQELIAEgBzYCuAILIA0pAxghLCABIAEoAqQCQQFqIgM2AqQCIAEgASkDcCAsQgd8Qvj///8Pg3w3A3ACQCAbRSAaRXINAAJAIBlBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIBpqTwRAIAJBACADIBpBJ2pLGw0BIBkQtAIgASgCpAIhAwwCCwwHCwwHCyADIAEoAmRJDQALCyAAQYACOwEADAILQaibwQAQpAoACyAAQQE6AAAgACAZNgIECyAEQcABaiQADwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIARBADYCqAFBACAEQfAAaiAEQdgAaiAEQagBakHcgcUAEK4IAAuwXwIZfwd9IwBBIGsiGCQAAkACQAJAAkAgAUEhSQRAIAAhCCABIQcMAQsgAkEEayEeIAJBEGshHwNAIARFBEAgACABIAIgA0EBIAYQaQwDCyAAIAFBA3YiCEEcbGohFyAAIAhBBHRqIQwCQCABQcAATwRAIAAgDCAXIAggBhCtASEXIAYoAgAhEgwBC0MAAIA/ISECfwJAIAAoAgAiByAGKAIAIhJBBGooAgAiCCgCCCIKSQRAIAwoAgAhDSAIKAIEIhAgB0EYbGoiBy0AEyIVIActABIiDyAHLQARIg4gDiAPSRsiDyAPIBVJGyIPBH1DAABAwSAIKgJEIAgtAFhBAkYiFRsiIEMAABBBIAgqAkggFRsgIJNDAAB+Q5UgD0EBa0H/AXGzlJIQpgQiICAgkgVDAAAAAAshIiAHQQxqLwEAIhVB//8BcSITRQRAIBVBEHQMAwsgFUH/B3EhByAVQYCAAnEhDiAVQYD4AXEiC0GA+AFGBEAgDkEQdCIOQYCAgPwHciAHRQ0DGiAOIAdBDXRyQYCAgP4HcgwDCyAOQRB0IQ4gC0UNASALQQ10QYCAgPwAcSAHQQ10ckGAgIDAA2ogDnIMAgsgByAKQbTUxwAQvwcACyAHIAdnQRBrIgdB//8DcUEIanRB////A3EgDkGAgIDYA3IgB0EXdGtyC74iIEMAAIA/XgRAICAQ9AVDVPgtQJRDAACAP5KRISELQwAAgD8hIAJ/AkAgCiANSwRAIBAgDUEYbGoiBy0AEyINIActABIiDiAHLQARIgsgCyAOSRsiDiANIA5LGyIOBH1DAABAwSAIKgJEIAgtAFhBAkYiDRsiI0MAABBBIAgqAkggDRsgI5NDAAB+Q5UgDkEBa0H/AXGzlJIQpgQiIyAjkgVDAAAAAAshJCAHQQxqLwEAIg1B//8BcSIRRQRAIA1BEHQMAwsgDUH/B3EhByANQYCAAnEhCyANQYD4AXEiCUGA+AFGBEAgC0EQdCILQYCAgPwHciAHRQ0DGiALIAdBDXRyQYCAgP4HcgwDCyALQRB0IQsgCUUNASAJQQ10QYCAgPwAcSAHQQ10ckGAgIDAA2ogC3IMAgsgDSAKQbTUxwAQvwcACyAHIAdnQRBrIgdB//8DcUEIanRB////A3EgC0GAgIDYA3IgB0EXdGtyC74iI0MAAIA/XgRAICMQ9AVDVPgtQJRDAACAP5KRISALIBcoAgAhByAPBH1DAABAwSAIKgJEIAgtAFhBAkYiCxsiI0MAABBBIAgqAkggCxsgI5NDAAB+Q5UgD0EBa0H/AXGzlJIQpgQiIyAjkgVDAAAAAAshJUMAAIA/ISMCfyAVQRB0IBNFDQAaIBVB/wdxIQ8gFUGAgAJxIQsgFUGA+AFxIhVBgPgBRgRAIAtBEHQiFUGAgID8B3IgD0UNARogFSAPQQ10ckGAgID+B3IMAQsgC0EQdCILIBVBDXRBgICA/ABxIA9BDXRyQYCAgMADanIgFQ0AGiAPIA9nQRBrIhVB//8DcUEIanRB////A3EgC0GAgIDYA3IgFUEXdGtyC74iJkMAAIA/XgRAICYQ9AVDVPgtQJRDAACAP5KRISMLAn8CQCAHIApJBEAgIiAhlCIhICQgIJRgIBAgB0EYbGoiBy0AEyIVIActABIiDyAHLQARIhAgDyAQSxsiDyAPIBVJGyIVBH1DAABAwSAIKgJEIAgtAFhBAkYiDxsiIEMAABBBIAgqAkggDxsgIJNDAAB+Q5UgFUEBa0H/AXGzlJIQpgQiICAgkgVDAAAAAAshIkUhCyAhICFbIQkgB0EMai8BACIHQf//AXEiE0UEQCAHQRB0DAMLIAdB/wdxIQogB0GAgAJxIQ8gB0GA+AFxIhBBgPgBRgRAIA9BEHQiD0GAgID8B3IgCkUNAxogDyAKQQ10ckGAgID+B3IMAwsgD0EQdCEPIBBFDQEgEEENdEGAgID8AHEgCkENdHJBgICAwANqIA9yDAILDAYLIAogCmdBEGsiCkH//wNxQQhqdEH///8DcSAPQYCAgNgDciAKQRd0a3ILQwAAgD8hIL4iIUMAAIA/XgRAICEQ9AVDVPgtQJRDAACAP5KRISALIAkgC3EiECAlICOUIiEgIVsgISAiICCUYEVxRwRAIAAhFwwBCyAXIAwgECAOBH1DAABAwSAIKgJEIAgtAFhBAkYiChsiIUMAABBBIAgqAkggChsgIZNDAAB+Q5UgDkEBa0H/AXGzlJIQpgQiISAhkgVDAAAAAAsCfyANQRB0IBFFDQAaIA1B/wdxIQogDUGAgAJxIQ8gDUGA+AFxIg1BgPgBRgRAIA9BEHQiDUGAgID8B3IgCkUNARogDSAKQQ10ckGAgID+B3IMAQsgD0EQdCIPIA1BDXRBgICA/ABxIApBDXRyQYCAgMADanIgDQ0AGiAKIApnQRBrIgpB//8DcUEIanRB////A3EgD0GAgIDYA3IgCkEXdGtyC74iIUMAAIA/XgR9ICEQ9AVDVPgtQJRDAACAP5KRBUMAAIA/C5QiISAhWyAhIBUEfUMAAEDBIAgqAkQgCC0AWEECRiIKGyIgQwAAEEEgCCoCSCAKGyAgk0MAAH5DlSAVQQFrQf8BcbOUkhCmBCIgICCSBUMAAAAACwJ/IAdBEHQgE0UNABogB0H/B3EhCCAHQYCAAnEhCiAHQYD4AXEiB0GA+AFGBEAgCkEQdCIHQYCAgPwHciAIRQ0BGiAHIAhBDXRyQYCAgP4HcgwBCyAKQRB0IgogB0ENdEGAgID8AHEgCEENdHJBgICAwANqciAHDQAaIAggCGdBEGsiCEH//wNxQQhqdEH///8DcSAKQYCAgNgDciAIQRd0a3ILviIgQwAAgD9eBH0gIBD0BUNU+C1AlEMAAIA/kpEFQwAAgD8LlGBFcXMbIRcLIARBAWshBCAYIBcoAgAiDTYCBCAXIABrQQJ2IRUCQAJAAkAgBQRAQwAAgD8hIQJ/AkAgBSgCACIHIBJBBGooAgAiCCgCCCIPSQRAIAgoAgQiDiAHQRhsaiIHLQATIgogBy0AEiIMIActABEiECAMIBBLGyIMIAogDEsbIgoEfUMAAEDBIAgqAkQgCC0AWEECRiIMGyIgQwAAEEEgCCoCSCAMGyAgk0MAAH5DlSAKQQFrQf8BcbOUkhCmBCIgICCSBUMAAAAACyEjIAdBDGovAQAiCkH//wFxRQRAIApBEHQMAwsgCkH/B3EhByAKQYCAAnEhDCAKQYD4AXEiCkGA+AFGBEAgDEEQdCIKQYCAgPwHciAHRQ0DGiAKIAdBDXRyQYCAgP4HcgwDCyAMQRB0IQwgCkUNASAKQQ10QYCAgPwAcSAHQQ10ckGAgIDAA2ogDHIMAgsgByAPQbTUxwAQvwcACyAHIAdnQRBrIgdB//8DcUEIanRB////A3EgDEGAgIDYA3IgB0EXdGtyC74iIEMAAIA/XgRAICAQ9AVDVPgtQJRDAACAP5KRISELQwAAgD8hIAJ/AkAgDSAPSQRAIA4gDUEYbGoiBy0AEyIKIActABIiDSAHLQARIg8gDSAPSxsiDSAKIA1LGyIKBH1DAABAwSAIKgJEIAgtAFhBAkYiDRsiIkMAABBBIAgqAkggDRsgIpNDAAB+Q5UgCkEBa0H/AXGzlJIQpgQiIiAikgVDAAAAAAshIiAHQQxqLwEAIgdB//8BcUUEQCAHQRB0DAMLIAdB/wdxIQggB0GAgAJxIQogB0GA+AFxIgdBgPgBRgRAIApBEHQiB0GAgID8B3IgCEUNAxogByAIQQ10ckGAgID+B3IMAwsgCkEQdCEKIAdFDQEgB0ENdEGAgID8AHEgCEENdHJBgICAwANqIApyDAILIA0gD0G01McAEL8HAAsgCCAIZ0EQayIIQf//A3FBCGp0Qf///wNxIApBgICA2ANyIAhBF3Rrcgu+IiRDAACAP14EQCAkEPQFQ1T4LUCUQwAAgD+SkSEgCyAjICGUIiEgIVwgISAiICCUYHINAQsgASADSw0BIAIgAUECdCIbaiEPQQAhByAAIQ0gFSEKA0AgACAKQQNrIghBACAIIApNG0ECdGoiFiANSwRAIBJBBGooAgAiCCgCCCEOIBcoAgAhEwNAQwAAgD8hIQJ/AkAgDiANKAIAIgxLBEAgCCgCBCIQIAxBGGxqIgstABMiCSALLQASIhEgCy0AESIUIBEgFEsbIhEgCSARSxsiCQR9QwAAQMEgCCoCRCAILQBYQQJGIhEbIiBDAAAQQSAIKgJIIBEbICCTQwAAfkOVIAlBAWtB/wFxs5SSEKYEIiAgIJIFQwAAAAALISMgC0EMai8BACIJQf//AXFFBEAgCUEQdAwDCyAJQf8HcSELIAlBgIACcSERIAlBgPgBcSIJQYD4AUYEQCARQRB0IglBgICA/AdyIAtFDQMaIAkgC0ENdHJBgICA/gdyDAMLIBFBEHQhESAJRQ0BIAlBDXRBgICA/ABxIAtBDXRyQYCAgMADaiARcgwCCwwMCyALIAtnQRBrIgtB//8DcUEIanRB////A3EgEUGAgIDYA3IgC0EXdGtyC74iIEMAAIA/XgRAICAQ9AVDVPgtQJRDAACAP5KRISELQwAAgD8hIAJ/AkAgDiATSwRAIBAgE0EYbGoiCy0AEyIJIAstABIiESALLQARIhQgESAUSxsiESAJIBFLGyIJBH1DAABAwSAIKgJEIAgtAFhBAkYiERsiIkMAABBBIAgqAkggERsgIpNDAAB+Q5UgCUEBa0H/AXGzlJIQpgQiIiAikgVDAAAAAAshIiALQQxqLwEAIglB//8BcUUEQCAJQRB0DAMLIAlB/wdxIQsgCUGAgAJxIREgCUGA+AFxIglBgPgBRgRAIBFBEHQiCUGAgID8B3IgC0UNAxogCSALQQ10ckGAgID+B3IMAwsgEUEQdCERIAlFDQEgCUENdEGAgID8AHEgC0ENdHJBgICAwANqIBFyDAILIBMgDkG01McAEL8HAAsgCyALZ0EQayILQf//A3FBCGp0Qf///wNxIBFBgICA2ANyIAtBF3Rrcgu+IiRDAACAP14EQCAkEPQFQ1T4LUCUQwAAgD+SkSEgCyAHQQJ0IAIgD0EEayAjICGUIiEgIVsgISAiICCUYEVxIhkbaiAMNgIAQwAAgD8hIQJ/AkAgDiANQQRqKAIAIhFLBEAgFygCACEMIBAgEUEYbGoiCy0AEyIJIAstABIiFCALLQARIhogFCAaSxsiFCAJIBRLGyIJBH1DAABAwSAIKgJEIAgtAFhBAkYiFBsiIEMAABBBIAgqAkggFBsgIJNDAAB+Q5UgCUEBa0H/AXGzlJIQpgQiICAgkgVDAAAAAAshIyALQQxqLwEAIglB//8BcUUEQCAJQRB0DAMLIAlB/wdxIQsgCUGAgAJxIRQgCUGA+AFxIglBgPgBRgRAIBRBEHQiCUGAgID8B3IgC0UNAxogCSALQQ10ckGAgID+B3IMAwsgFEEQdCEUIAlFDQEgCUENdEGAgID8AHEgC0ENdHJBgICAwANqIBRyDAILIBEgDkG01McAEL8HAAsgCyALZ0EQayILQf//A3FBCGp0Qf///wNxIBRBgICA2ANyIAtBF3Rrcgu+IiBDAACAP14EQCAgEPQFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISACfwJAIAwgDkkEQCAQIAxBGGxqIgstABMiDCALLQASIgkgCy0AESIUIAkgFEsbIgkgCSAMSRsiDAR9QwAAQMEgCCoCRCAILQBYQQJGIgkbIiJDAAAQQSAIKgJIIAkbICKTQwAAfkOVIAxBAWtB/wFxs5SSEKYEIiIgIpIFQwAAAAALISIgC0EMaiIaLwEAIglB//8BcUUEQCAJQRB0DAMLIAlB/wdxIQwgCUGAgAJxIRQgCUGA+AFxIglBgPgBRgRAIBRBEHQiCUGAgID8B3IgDEUNAxogCSAMQQ10ckGAgID+B3IMAwsgFEEQdCEUIAlFDQEgCUENdEGAgID8AHEgDEENdHJBgICAwANqIBRyDAILDAwLIAwgDGdBEGsiDEH//wNxQQhqdEH///8DcSAUQYCAgNgDciAMQRd0a3ILviIkQwAAgD9eBEAgJBD0BUNU+C1AlEMAAIA/kpEhIAsgByAZaiIUQQJ0IAIgD0EIayAjICGUIiEgIVsgISAiICCUYEVxIhkbaiARNgIAQwAAgD8hIQJ/AkAgDiANQQhqKAIAIgxLBEAgECAMQRhsaiIHLQATIgkgBy0AEiIRIActABEiHCARIBxLGyIRIAkgEUsbIgkEfUMAAEDBIAgqAkQgCC0AWEECRiIRGyIgQwAAEEEgCCoCSCARGyAgk0MAAH5DlSAJQQFrQf8BcbOUkhCmBCIgICCSBUMAAAAACyEjIAdBDGovAQAiCUH//wFxRQRAIAlBEHQMAwsgCUH/B3EhByAJQYCAAnEhESAJQYD4AXEiCUGA+AFGBEAgEUEQdCIJQYCAgPwHciAHRQ0DGiAJIAdBDXRyQYCAgP4HcgwDCyARQRB0IREgCUUNASAJQQ10QYCAgPwAcSAHQQ10ckGAgIDAA2ogEXIMAgsMDAsgByAHZ0EQayIHQf//A3FBCGp0Qf///wNxIBFBgICA2ANyIAdBF3Rrcgu+IiBDAACAP14EQCAgEPQFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISAgFCAZaiIUQQJ0IAIgD0EMayAjICGUIiEgIVsgISALLQATIgcgCy0AEiIJIAstABEiCyAJIAtLGyILIAcgC0sbIgcEfUMAAEDBIAgqAkQgCC0AWEECRiILGyIjQwAAEEEgCCoCSCALGyAjk0MAAH5DlSAHQQFrQf8BcbOUkhCmBCIjICOSBUMAAAAACwJ/IBovAQAiC0H//wFxRQRAIAtBEHQMAQsgC0H/B3EhByALQYCAAnEhCSALQYD4AXEiC0GA+AFGBEAgCUEQdCILQYCAgPwHciAHRQ0BGiALIAdBDXRyQYCAgP4HcgwBCyAJQRB0IgkgC0ENdEGAgID8AHEgB0ENdHJBgICAwANqciALDQAaIAcgB2dBEGsiB0H//wNxQQhqdEH///8DcSAJQYCAgNgDciAHQRd0a3ILviIjQwAAgD9eBH0gIxD0BUNU+C1AlEMAAIA/kpEFQwAAgD8LlGBFcSIZG2ogDDYCAEMAAIA/ISECfwJAIA4gDUEMaigCACIJSwRAIBcoAgAhDCAQIAlBGGxqIgctABMiCyAHLQASIhEgBy0AESIaIBEgGksbIhEgCyARSxsiCwR9QwAAQMEgCCoCRCAILQBYQQJGIhEbIiNDAAAQQSAIKgJIIBEbICOTQwAAfkOVIAtBAWtB/wFxs5SSEKYEIiMgI5IFQwAAAAALISMgB0EMai8BACILQf//AXFFBEAgC0EQdAwDCyALQf8HcSEHIAtBgIACcSERIAtBgPgBcSILQYD4AUYEQCARQRB0IgtBgICA/AdyIAdFDQMaIAsgB0ENdHJBgICA/gdyDAMLIBFBEHQhESALRQ0BIAtBDXRBgICA/ABxIAdBDXRyQYCAgMADaiARcgwCCyAJIA5BtNTHABC/BwALIAcgB2dBEGsiB0H//wNxQQhqdEH///8DcSARQYCAgNgDciAHQRd0a3ILviIiQwAAgD9eBEAgIhD0BUNU+C1AlEMAAIA/kpEhIQsCfwJAIAwgDkkEQCAQIAxBGGxqIgctABMiDCAHLQASIhAgBy0AESILIAsgEEkbIhAgDCAQSxsiDAR9QwAAQMEgCCoCRCAILQBYQQJGIhAbIiJDAAAQQSAIKgJIIBAbICKTQwAAfkOVIAxBAWtB/wFxs5SSEKYEIiIgIpIFQwAAAAALISIgB0EMai8BACIMQf//AXFFBEAgDEEQdAwDCyAMQf8HcSEHIAxBgIACcSEQIAxBgPgBcSIMQYD4AUYEQCAQQRB0IgxBgICA/AdyIAdFDQMaIAwgB0ENdHJBgICA/gdyDAMLIBBBEHQhECAMRQ0BIAxBDXRBgICA/ABxIAdBDXRyQYCAgMADaiAQcgwCCwwMCyAHIAdnQRBrIgdB//8DcUEIanRB////A3EgEEGAgIDYA3IgB0EXdGtyC74iJEMAAIA/XgRAICQQ9AVDVPgtQJRDAACAP5KRISALIBQgGWoiB0ECdCACIA9BEGsiDyAjICGUIiEgIVsgISAiICCUYEVxIgwbaiAJNgIAIAcgDGohByANQRBqIg0gFkkNAAsLIAAgCkECdGoiESANSwRAIBJBBGooAgAiCCgCCCEOIBcoAgAhCwNAQwAAgD8hIQJ/AkAgDiANKAIAIglLBEAgCCgCBCIUIAlBGGxqIgwtABMiECAMLQASIhMgDC0AESIWIBMgFksbIhMgECATSxsiEAR9QwAAQMEgCCoCRCAILQBYQQJGIhMbIiBDAAAQQSAIKgJIIBMbICCTQwAAfkOVIBBBAWtB/wFxs5SSEKYEIiAgIJIFQwAAAAALISAgDEEMai8BACIQQf//AXFFBEAgEEEQdAwDCyAQQf8HcSEMIBBBgIACcSETIBBBgPgBcSIQQYD4AUYEQCATQRB0IhBBgICA/AdyIAxFDQMaIBAgDEENdHJBgICA/gdyDAMLIBNBEHQhEyAQRQ0BIBBBDXRBgICA/ABxIAxBDXRyQYCAgMADaiATcgwCCyAJIA5BtNTHABC/BwALIAwgDGdBEGsiDEH//wNxQQhqdEH///8DcSATQYCAgNgDciAMQRd0a3ILviIjQwAAgD9eBEAgIxD0BUNU+C1AlEMAAIA/kpEhIQsCfwJAIAsgDkkEQCAUIAtBGGxqIgwtABMiECAMLQASIhMgDC0AESIUIBMgFEsbIhMgECATSxsiEAR9QwAAQMEgCCoCRCAILQBYQQJGIhMbIiNDAAAQQSAIKgJIIBMbICOTQwAAfkOVIBBBAWtB/wFxs5SSEKYEIiMgI5IFQwAAAAALISMgDEEMai8BACIQQf//AXFFBEAgEEEQdAwDCyAQQf8HcSEMIBBBgIACcSETIBBBgPgBcSIQQYD4AUYEQCATQRB0IhBBgICA/AdyIAxFDQMaIBAgDEENdHJBgICA/gdyDAMLIBNBEHQhEyAQRQ0BIBBBDXRBgICA/ABxIAxBDXRyQYCAgMADaiATcgwCCyALIA5BtNTHABC/BwwGCyAMIAxnQRBrIgxB//8DcUEIanRB////A3EgE0GAgIDYA3IgDEEXdGtyCyEMIAdBAnQgAiAPQQRrIg8gICAhlCIhICFbICEgIyAMviIgQwAAgD9eBH0gIBD0BUNU+C1AlEMAAIA/kpEFQwAAgD8LlGBFcSIMG2ogCTYCACAHIAxqIQcgDUEEaiINIBFJDQALCyABIApHBEAgD0EEayIPIAdBAnRqIA0oAgA2AgAgDUEEaiENIAEhCgwBCwsgB0ECdCIMBEAgACACIAz8CgAACyABIAdrIQ4CQCABIAdGDQBBACEIIA5BBE8EQCAAIAxqIQogGyAfaiENIA5BfHEiCCEPA0AgCiAN/QACAP0MAAAAAAAAAAAAAAAAAAAAAP0NDA0ODwgJCgsEBQYHAAECA/0LAgAgCkEQaiEKIA1BEGshDSAPQQRrIg8NAAsgCCAORg0BCyAeIBsgCEECdCINa2ohCiAAIA1qIAxqIQ0gCCABayAHaiEPA0AgDSAKKAIANgIAIApBBGshCiANQQRqIQ0gD0EBaiIPDQALCyAHRQ0AIAEgB08NAiAYQQA2AhggGEEBNgIMIBhBhI/IADYCCCAYQgQ3AhAgGEEIakGE98AAEMoIAAsgASADSw0AIAIgAUECdCIRaiEMIAYoAgAhG0EAIQ4gACEPA0AgACAVQQNrIgVBACAFIBVNG0ECdGoiGSAPSwRAIBtBBGooAgAiDSgCCCELIBcoAgAhECAGKAIAQQRqIRoDQEMAAIA/ISECfwJAIAsgEEsEQCAPKAIAIQggDSgCBCISIBBBGGwiCWoiBS0AEyIHIAUtABIiCiAFLQARIhMgCiATSxsiCiAHIApLGyIHBH1DAABAwSANKgJEIA0tAFhBAkYiChsiIEMAABBBIA0qAkggChsgIJNDAAB+Q5UgB0EBa0H/AXGzlJIQpgQiICAgkgVDAAAAAAshIyAFQQxqLwEAIgdB//8BcUUEQCAHQRB0DAMLIAdB/wdxIQUgB0GAgAJxIQogB0GA+AFxIgdBgPgBRgRAIApBEHQiB0GAgID8B3IgBUUNAxogByAFQQ10ckGAgID+B3IMAwsgCkEQdCEKIAdFDQEgB0ENdEGAgID8AHEgBUENdHJBgICAwANqIApyDAILIBAgC0G01McAEL8HAAsgBSAFZ0EQayIFQf//A3FBCGp0Qf///wNxIApBgICA2ANyIAVBF3Rrcgu+IiBDAACAP14EQCAgEPQFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISACfwJAIAggC0kEQCASIAhBGGxqIgUtABMiByAFLQASIgogBS0AESISIAogEksbIgogByAKSxsiBwR9QwAAQMEgDSoCRCANLQBYQQJGIgobIiJDAAAQQSANKgJIIAobICKTQwAAfkOVIAdBAWtB/wFxs5SSEKYEIiIgIpIFQwAAAAALISIgBUEMai8BACIHQf//AXFFBEAgB0EQdAwDCyAHQf8HcSEFIAdBgIACcSEKIAdBgPgBcSIHQYD4AUYEQCAKQRB0IgdBgICA/AdyIAVFDQMaIAcgBUENdHJBgICA/gdyDAMLIApBEHQhCiAHRQ0BIAdBDXRBgICA/ABxIAVBDXRyQYCAgMADaiAKcgwCCyAIIAtBtNTHABC/BwALIAUgBWdBEGsiBUH//wNxQQhqdEH///8DcSAKQYCAgNgDciAFQRd0a3ILviIkQwAAgD9eBEAgJBD0BUNU+C1AlEMAAIA/kpEhIAsgDkECdCACIAxBBGsgIyAhlCIhICFcICEgIiAglGByIhwbaiAINgIAQwAAgD8hIQJ/AkAgGigCACIFKAIIIgogEEsEQCAPQQRqKAIAIRIgCSAFKAIEIhNqIggtABMiByAILQASIgkgCC0AESIUIAkgFEsbIgkgByAJSxsiBwR9QwAAQMEgBSoCRCAFLQBYQQJGIgkbIiBDAAAQQSAFKgJIIAkbICCTQwAAfkOVIAdBAWtB/wFxs5SSEKYEIiAgIJIFQwAAAAALISMgCEEMaiIULwEAIglB//8BcUUEQCAJQRB0DAMLIAlB/wdxIQcgCUGAgAJxIRYgCUGA+AFxIglBgPgBRgRAIBZBEHQiCUGAgID8B3IgB0UNAxogCSAHQQ10ckGAgID+B3IMAwsgFkEQdCEWIAlFDQEgCUENdEGAgID8AHEgB0ENdHJBgICAwANqIBZyDAILIBAgCkG01McAEL8HAAsgByAHZ0EQayIHQf//A3FBCGp0Qf///wNxIBZBgICA2ANyIAdBF3Rrcgu+IiBDAACAP14EQCAgEPQFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISACfwJAIAogEksEQCATIBJBGGxqIgctABMiCSAHLQASIhYgBy0AESIdIBYgHUsbIhYgCSAWSxsiCQR9QwAAQMEgBSoCRCAFLQBYQQJGIhYbIiJDAAAQQSAFKgJIIBYbICKTQwAAfkOVIAlBAWtB/wFxs5SSEKYEIiIgIpIFQwAAAAALISIgB0EMai8BACIJQf//AXFFBEAgCUEQdAwDCyAJQf8HcSEHIAlBgIACcSEWIAlBgPgBcSIJQYD4AUYEQCAWQRB0IglBgICA/AdyIAdFDQMaIAkgB0ENdHJBgICA/gdyDAMLIBZBEHQhFiAJRQ0BIAlBDXRBgICA/ABxIAdBDXRyQYCAgMADaiAWcgwCCyASIApBtNTHABC/BwALIAcgB2dBEGsiB0H//wNxQQhqdEH///8DcSAWQYCAgNgDciAHQRd0a3ILviIkQwAAgD9eBEAgJBD0BUNU+C1AlEMAAIA/kpEhIAsgDiAcaiIWQQJ0IAIgDEEIayAjICGUIiEgIVwgISAiICCUYHIiHBtqIBI2AgAgD0EIaigCACEHIAgtABMiDiAILQASIhIgCC0AESIJIAkgEkkbIhIgDiASSxsiDgR9QwAAQMEgBSoCRCAFLQBYQQJGIhIbIiFDAAAQQSAFKgJIIBIbICGTQwAAfkOVIA5BAWtB/wFxs5SSEKYEIiEgIZIFQwAAAAALISNDAACAPyEhAn8gFC8BACISQf//AXFFBEAgEkEQdAwBCyASQf8HcSEOIBJBgIACcSEJIBJBgPgBcSISQYD4AUYEQCAJQRB0IhJBgICA/AdyIA5FDQEaIBIgDkENdHJBgICA/gdyDAELIAlBEHQiCSASQQ10QYCAgPwAcSAOQQ10ckGAgIDAA2pyIBINABogDiAOZ0EQayIOQf//A3FBCGp0Qf///wNxIAlBgICA2ANyIA5BF3Rrcgu+IiBDAACAP14EQCAgEPQFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISACfwJAIAcgCkkEQCATIAdBGGxqIg4tABMiEiAOLQASIgkgDi0AESIdIAkgHUsbIgkgCSASSRsiEgR9QwAAQMEgBSoCRCAFLQBYQQJGIgkbIiJDAAAQQSAFKgJIIAkbICKTQwAAfkOVIBJBAWtB/wFxs5SSEKYEIiIgIpIFQwAAAAALISIgDkEMai8BACISQf//AXFFBEAgEkEQdAwDCyASQf8HcSEOIBJBgIACcSEJIBJBgPgBcSISQYD4AUYEQCAJQRB0IhJBgICA/AdyIA5FDQMaIBIgDkENdHJBgICA/gdyDAMLIAlBEHQhCSASRQ0BIBJBDXRBgICA/ABxIA5BDXRyQYCAgMADaiAJcgwCCwwKCyAOIA5nQRBrIg5B//8DcUEIanRB////A3EgCUGAgIDYA3IgDkEXdGtyC74iJEMAAIA/XgRAICQQ9AVDVPgtQJRDAACAP5KRISALIBYgHGoiCUECdCACIAxBDGsgIyAhlCIhICFcICEgIiAglGByIhYbaiAHNgIAIA9BDGooAgAhByAILQATIg4gCC0AEiISIAgtABEiCCAIIBJJGyIIIAggDkkbIggEfUMAAEDBIAUqAkQgBS0AWEECRiIOGyIhQwAAEEEgBSoCSCAOGyAhk0MAAH5DlSAIQQFrQf8BcbOUkhCmBCIhICGSBUMAAAAACyEjQwAAgD8hIQJ/IBQvAQAiDkH//wFxRQRAIA5BEHQMAQsgDkH/B3EhCCAOQYCAAnEhEiAOQYD4AXEiDkGA+AFGBEAgEkEQdCIOQYCAgPwHciAIRQ0BGiAOIAhBDXRyQYCAgP4HcgwBCyASQRB0IhIgDkENdEGAgID8AHEgCEENdHJBgICAwANqciAODQAaIAggCGdBEGsiCEH//wNxQQhqdEH///8DcSASQYCAgNgDciAIQRd0a3ILviIgQwAAgD9eBEAgIBD0BUNU+C1AlEMAAIA/kpEhIQtDAACAPyEgAn8CQCAHIApJBEAgEyAHQRhsaiIILQATIgogCC0AEiIOIAgtABEiEiAOIBJLGyIOIAogDksbIgoEfUMAAEDBIAUqAkQgBS0AWEECRiIOGyIiQwAAEEEgBSoCSCAOGyAik0MAAH5DlSAKQQFrQf8BcbOUkhCmBCIiICKSBUMAAAAACyEiIAhBDGovAQAiCEH//wFxRQRAIAhBEHQMAwsgCEH/B3EhBSAIQYCAAnEhCiAIQYD4AXEiCEGA+AFGBEAgCkEQdCIIQYCAgPwHciAFRQ0DGiAIIAVBDXRyQYCAgP4HcgwDCyAKQRB0IQogCEUNASAIQQ10QYCAgPwAcSAFQQ10ckGAgIDAA2ogCnIMAgsMCgsgBSAFZ0EQayIFQf//A3FBCGp0Qf///wNxIApBgICA2ANyIAVBF3Rrcgu+IiRDAACAP14EQCAkEPQFQ1T4LUCUQwAAgD+SkSEgCyAJIBZqIgVBAnQgAiAMQRBrIgwgIyAhlCIhICFcICEgIiAglGByIggbaiAHNgIAIAUgCGohDiAPQRBqIg8gGUkNAAsLIAAgFUECdGoiEiAPSwRAIBtBBGooAgAiBSgCCCEHIBcoAgAhEANAQwAAgD8hIQJ/AkAgByAQSwRAIA8oAgAhCiAFKAIEIgkgEEEYbGoiCC0AEyINIAgtABIiCyAILQARIhMgCyATSxsiCyALIA1JGyINBH1DAABAwSAFKgJEIAUtAFhBAkYiCxsiIEMAABBBIAUqAkggCxsgIJNDAAB+Q5UgDUEBa0H/AXGzlJIQpgQiICAgkgVDAAAAAAshIyAIQQxqLwEAIg1B//8BcUUEQCANQRB0DAMLIA1B/wdxIQggDUGAgAJxIQsgDUGA+AFxIg1BgPgBRgRAIAtBEHQiDUGAgID8B3IgCEUNAxogDSAIQQ10ckGAgID+B3IMAwsgC0EQdCELIA1FDQEgDUENdEGAgID8AHEgCEENdHJBgICAwANqIAtyDAILIBAgB0G01McAEL8HAAsgCCAIZ0EQayIIQf//A3FBCGp0Qf///wNxIAtBgICA2ANyIAhBF3Rrcgu+IiBDAACAP14EQCAgEPQFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISACfwJAIAcgCksEQCAJIApBGGxqIggtABMiDSAILQASIgsgCC0AESIJIAkgC0kbIgsgCyANSRsiDQR9QwAAQMEgBSoCRCAFLQBYQQJGIgsbIiJDAAAQQSAFKgJIIAsbICKTQwAAfkOVIA1BAWtB/wFxs5SSEKYEIiIgIpIFQwAAAAALISIgCEEMai8BACINQf//AXFFBEAgDUEQdAwDCyANQf8HcSEIIA1BgIACcSELIA1BgPgBcSINQYD4AUYEQCALQRB0Ig1BgICA/AdyIAhFDQMaIA0gCEENdHJBgICA/gdyDAMLIAtBEHQhCyANRQ0BIA1BDXRBgICA/ABxIAhBDXRyQYCAgMADaiALcgwCCyAKIAdBtNTHABC/BwALIAggCGdBEGsiCEH//wNxQQhqdEH///8DcSALQYCAgNgDciAIQRd0a3ILviIkQwAAgD9eBEAgJBD0BUNU+C1AlEMAAIA/kpEhIAsgDkECdCACIAxBBGsiDCAjICGUIiEgIVwgISAiICCUYHIiCBtqIAo2AgAgCCAOaiEOIA9BBGoiDyASSQ0ACwsgASAVRwRAIAIgDkECdGogDygCADYCACAPQQRqIQ8gDkEBaiEOIAxBBGshDCABIRUMAQsLIA5BAnQiBQRAIAAgAiAF/AoAAAsgASAORg0EIAAgBWohCEEAIQwCQCABIA5rIgdBBE8EQCARIB9qIQogB0F8cSIMIQ8gCCENA0AgDSAK/QACAP0MAAAAAAAAAAAAAAAAAAAAAP0NDA0ODwgJCgsEBQYHAAECA/0LAgAgDUEQaiENIApBEGshCiAPQQRrIg8NAAsgByAMRg0BCyAeIAxBAnQiFWsgEWohCiAAIBVqIAVqIQ0gDCABayAOaiEPA0AgDSAKKAIANgIAIApBBGshCiANQQRqIQ0gD0EBaiIPDQALCyABIA5PBEBBACEFIAghACAHIQEgB0EhSQ0EDAMLIA4gAUGU98AAEKMKAAsACyAAIAxqIA4gAiADIAQgGEEEaiAGED4gByEBIAdBIU8NAAsgACEICyAHQQJJDQAgBigCACEBIAdBAXYhACAAAn8gB0EPTQRAIAdBB0sEQCAIIAIgAUEEaiIDKAIAEHsgCCAAQQJ0IgRqIAIgBGogAygCABB7QQQMAgsgAiAIKAIANgIAIAIgAEECdCIDaiADIAhqKAIANgIAQQEMAQsgCCACIAdBAnRqIgMgAUEEaiIEKAIAEHsgCEEQaiADQRBqIAQoAgAQeyADQQggAiABEMIBIAggAEECdCIFaiIGIANBIGoiCiAEKAIAEHsgBkEQaiADQTBqIAQoAgAQeyAKQQggAiAFaiABEMIBQQgLIgNLBEAgACADayENIANBAnQhCgNAIAIgCmoiBCAIIApqKAIANgIAIAIgBCABENUBIApBBGohCiANQQFrIg0NAAsLIAcgAGsgA0sEQCACIABBAnQiBGohBSAIIANBAnQgBGoiBGohDSACIARqIQogACADaiAHayEMA0AgCiANKAIANgIAIAUgCiABENUBIA1BBGohDSAKQQRqIQogDEEBaiIMDQALCyACIAcgCCABEMIBCyAYQSBqJAAPCyAHIApBtNTHABC/BwALIAwgDkG01McAEL8HAAuwXwIZfwd9IwBBIGsiGCQAAkACQAJAAkAgAUEhSQRAIAAhCCABIQcMAQsgAkEEayEeIAJBEGshHwNAIARFBEAgACABIAIgA0EBIAYQagwDCyAAIAFBA3YiCEEcbGohFyAAIAhBBHRqIQwCQCABQcAATwRAIAAgDCAXIAggBhCtASEXIAYoAgAhEgwBC0MAAIA/ISECfwJAIAAoAgAiByAGKAIAIhJBBGooAgAiCCgCCCIKSQRAIAwoAgAhDSAIKAIEIhAgB0EYbGoiBy0AEyIVIActABIiDyAHLQARIg4gDiAPSRsiDyAPIBVJGyIPBH1DAABAwSAIKgJEIAgtAFhBAkYiFRsiIEMAABBBIAgqAkggFRsgIJNDAAB+Q5UgD0EBa0H/AXGzlJIQpgQiICAgkgVDAAAAAAshIiAHQQxqLwEAIhVB//8BcSITRQRAIBVBEHQMAwsgFUH/B3EhByAVQYCAAnEhDiAVQYD4AXEiC0GA+AFGBEAgDkEQdCIOQYCAgPwHciAHRQ0DGiAOIAdBDXRyQYCAgP4HcgwDCyAOQRB0IQ4gC0UNASALQQ10QYCAgPwAcSAHQQ10ckGAgIDAA2ogDnIMAgsgByAKQbTUxwAQvwcACyAHIAdnQRBrIgdB//8DcUEIanRB////A3EgDkGAgIDYA3IgB0EXdGtyC74iIEMAAIA/XgRAICAQ9AVDVPgtQJRDAACAP5KRISELQwAAgD8hIAJ/AkAgCiANSwRAIBAgDUEYbGoiBy0AEyINIActABIiDiAHLQARIgsgCyAOSRsiDiANIA5LGyIOBH1DAABAwSAIKgJEIAgtAFhBAkYiDRsiI0MAABBBIAgqAkggDRsgI5NDAAB+Q5UgDkEBa0H/AXGzlJIQpgQiIyAjkgVDAAAAAAshJCAHQQxqLwEAIg1B//8BcSIRRQRAIA1BEHQMAwsgDUH/B3EhByANQYCAAnEhCyANQYD4AXEiCUGA+AFGBEAgC0EQdCILQYCAgPwHciAHRQ0DGiALIAdBDXRyQYCAgP4HcgwDCyALQRB0IQsgCUUNASAJQQ10QYCAgPwAcSAHQQ10ckGAgIDAA2ogC3IMAgsgDSAKQbTUxwAQvwcACyAHIAdnQRBrIgdB//8DcUEIanRB////A3EgC0GAgIDYA3IgB0EXdGtyC74iI0MAAIA/XgRAICMQ9AVDVPgtQJRDAACAP5KRISALIBcoAgAhByAPBH1DAABAwSAIKgJEIAgtAFhBAkYiCxsiI0MAABBBIAgqAkggCxsgI5NDAAB+Q5UgD0EBa0H/AXGzlJIQpgQiIyAjkgVDAAAAAAshJUMAAIA/ISMCfyAVQRB0IBNFDQAaIBVB/wdxIQ8gFUGAgAJxIQsgFUGA+AFxIhVBgPgBRgRAIAtBEHQiFUGAgID8B3IgD0UNARogFSAPQQ10ckGAgID+B3IMAQsgC0EQdCILIBVBDXRBgICA/ABxIA9BDXRyQYCAgMADanIgFQ0AGiAPIA9nQRBrIhVB//8DcUEIanRB////A3EgC0GAgIDYA3IgFUEXdGtyC74iJkMAAIA/XgRAICYQ9AVDVPgtQJRDAACAP5KRISMLAn8CQCAHIApJBEAgIiAhlCIhICQgIJRgIBAgB0EYbGoiBy0AEyIVIActABIiDyAHLQARIhAgDyAQSxsiDyAPIBVJGyIVBH1DAABAwSAIKgJEIAgtAFhBAkYiDxsiIEMAABBBIAgqAkggDxsgIJNDAAB+Q5UgFUEBa0H/AXGzlJIQpgQiICAgkgVDAAAAAAshIkUhCyAhICFbIQkgB0EMai8BACIHQf//AXEiE0UEQCAHQRB0DAMLIAdB/wdxIQogB0GAgAJxIQ8gB0GA+AFxIhBBgPgBRgRAIA9BEHQiD0GAgID8B3IgCkUNAxogDyAKQQ10ckGAgID+B3IMAwsgD0EQdCEPIBBFDQEgEEENdEGAgID8AHEgCkENdHJBgICAwANqIA9yDAILDAYLIAogCmdBEGsiCkH//wNxQQhqdEH///8DcSAPQYCAgNgDciAKQRd0a3ILQwAAgD8hIL4iIUMAAIA/XgRAICEQ9AVDVPgtQJRDAACAP5KRISALIAkgC3EiECAlICOUIiEgIVsgISAiICCUYEVxRwRAIAAhFwwBCyAXIAwgECAOBH1DAABAwSAIKgJEIAgtAFhBAkYiChsiIUMAABBBIAgqAkggChsgIZNDAAB+Q5UgDkEBa0H/AXGzlJIQpgQiISAhkgVDAAAAAAsCfyANQRB0IBFFDQAaIA1B/wdxIQogDUGAgAJxIQ8gDUGA+AFxIg1BgPgBRgRAIA9BEHQiDUGAgID8B3IgCkUNARogDSAKQQ10ckGAgID+B3IMAQsgD0EQdCIPIA1BDXRBgICA/ABxIApBDXRyQYCAgMADanIgDQ0AGiAKIApnQRBrIgpB//8DcUEIanRB////A3EgD0GAgIDYA3IgCkEXdGtyC74iIUMAAIA/XgR9ICEQ9AVDVPgtQJRDAACAP5KRBUMAAIA/C5QiISAhWyAhIBUEfUMAAEDBIAgqAkQgCC0AWEECRiIKGyIgQwAAEEEgCCoCSCAKGyAgk0MAAH5DlSAVQQFrQf8BcbOUkhCmBCIgICCSBUMAAAAACwJ/IAdBEHQgE0UNABogB0H/B3EhCCAHQYCAAnEhCiAHQYD4AXEiB0GA+AFGBEAgCkEQdCIHQYCAgPwHciAIRQ0BGiAHIAhBDXRyQYCAgP4HcgwBCyAKQRB0IgogB0ENdEGAgID8AHEgCEENdHJBgICAwANqciAHDQAaIAggCGdBEGsiCEH//wNxQQhqdEH///8DcSAKQYCAgNgDciAIQRd0a3ILviIgQwAAgD9eBH0gIBD0BUNU+C1AlEMAAIA/kpEFQwAAgD8LlGBFcXMbIRcLIARBAWshBCAYIBcoAgAiDTYCBCAXIABrQQJ2IRUCQAJAAkAgBQRAQwAAgD8hIQJ/AkAgBSgCACIHIBJBBGooAgAiCCgCCCIPSQRAIAgoAgQiDiAHQRhsaiIHLQATIgogBy0AEiIMIActABEiECAMIBBLGyIMIAogDEsbIgoEfUMAAEDBIAgqAkQgCC0AWEECRiIMGyIgQwAAEEEgCCoCSCAMGyAgk0MAAH5DlSAKQQFrQf8BcbOUkhCmBCIgICCSBUMAAAAACyEjIAdBDGovAQAiCkH//wFxRQRAIApBEHQMAwsgCkH/B3EhByAKQYCAAnEhDCAKQYD4AXEiCkGA+AFGBEAgDEEQdCIKQYCAgPwHciAHRQ0DGiAKIAdBDXRyQYCAgP4HcgwDCyAMQRB0IQwgCkUNASAKQQ10QYCAgPwAcSAHQQ10ckGAgIDAA2ogDHIMAgsgByAPQbTUxwAQvwcACyAHIAdnQRBrIgdB//8DcUEIanRB////A3EgDEGAgIDYA3IgB0EXdGtyC74iIEMAAIA/XgRAICAQ9AVDVPgtQJRDAACAP5KRISELQwAAgD8hIAJ/AkAgDSAPSQRAIA4gDUEYbGoiBy0AEyIKIActABIiDSAHLQARIg8gDSAPSxsiDSAKIA1LGyIKBH1DAABAwSAIKgJEIAgtAFhBAkYiDRsiIkMAABBBIAgqAkggDRsgIpNDAAB+Q5UgCkEBa0H/AXGzlJIQpgQiIiAikgVDAAAAAAshIiAHQQxqLwEAIgdB//8BcUUEQCAHQRB0DAMLIAdB/wdxIQggB0GAgAJxIQogB0GA+AFxIgdBgPgBRgRAIApBEHQiB0GAgID8B3IgCEUNAxogByAIQQ10ckGAgID+B3IMAwsgCkEQdCEKIAdFDQEgB0ENdEGAgID8AHEgCEENdHJBgICAwANqIApyDAILIA0gD0G01McAEL8HAAsgCCAIZ0EQayIIQf//A3FBCGp0Qf///wNxIApBgICA2ANyIAhBF3Rrcgu+IiRDAACAP14EQCAkEPQFQ1T4LUCUQwAAgD+SkSEgCyAjICGUIiEgIVwgISAiICCUYHINAQsgASADSw0BIAIgAUECdCIbaiEPQQAhByAAIQ0gFSEKA0AgACAKQQNrIghBACAIIApNG0ECdGoiFiANSwRAIBJBBGooAgAiCCgCCCEOIBcoAgAhEwNAQwAAgD8hIQJ/AkAgDiANKAIAIgxLBEAgCCgCBCIQIAxBGGxqIgstABMiCSALLQASIhEgCy0AESIUIBEgFEsbIhEgCSARSxsiCQR9QwAAQMEgCCoCRCAILQBYQQJGIhEbIiBDAAAQQSAIKgJIIBEbICCTQwAAfkOVIAlBAWtB/wFxs5SSEKYEIiAgIJIFQwAAAAALISMgC0EMai8BACIJQf//AXFFBEAgCUEQdAwDCyAJQf8HcSELIAlBgIACcSERIAlBgPgBcSIJQYD4AUYEQCARQRB0IglBgICA/AdyIAtFDQMaIAkgC0ENdHJBgICA/gdyDAMLIBFBEHQhESAJRQ0BIAlBDXRBgICA/ABxIAtBDXRyQYCAgMADaiARcgwCCwwMCyALIAtnQRBrIgtB//8DcUEIanRB////A3EgEUGAgIDYA3IgC0EXdGtyC74iIEMAAIA/XgRAICAQ9AVDVPgtQJRDAACAP5KRISELQwAAgD8hIAJ/AkAgDiATSwRAIBAgE0EYbGoiCy0AEyIJIAstABIiESALLQARIhQgESAUSxsiESAJIBFLGyIJBH1DAABAwSAIKgJEIAgtAFhBAkYiERsiIkMAABBBIAgqAkggERsgIpNDAAB+Q5UgCUEBa0H/AXGzlJIQpgQiIiAikgVDAAAAAAshIiALQQxqLwEAIglB//8BcUUEQCAJQRB0DAMLIAlB/wdxIQsgCUGAgAJxIREgCUGA+AFxIglBgPgBRgRAIBFBEHQiCUGAgID8B3IgC0UNAxogCSALQQ10ckGAgID+B3IMAwsgEUEQdCERIAlFDQEgCUENdEGAgID8AHEgC0ENdHJBgICAwANqIBFyDAILIBMgDkG01McAEL8HAAsgCyALZ0EQayILQf//A3FBCGp0Qf///wNxIBFBgICA2ANyIAtBF3Rrcgu+IiRDAACAP14EQCAkEPQFQ1T4LUCUQwAAgD+SkSEgCyAHQQJ0IAIgD0EEayAjICGUIiEgIVsgISAiICCUYEVxIhkbaiAMNgIAQwAAgD8hIQJ/AkAgDiANQQRqKAIAIhFLBEAgFygCACEMIBAgEUEYbGoiCy0AEyIJIAstABIiFCALLQARIhogFCAaSxsiFCAJIBRLGyIJBH1DAABAwSAIKgJEIAgtAFhBAkYiFBsiIEMAABBBIAgqAkggFBsgIJNDAAB+Q5UgCUEBa0H/AXGzlJIQpgQiICAgkgVDAAAAAAshIyALQQxqLwEAIglB//8BcUUEQCAJQRB0DAMLIAlB/wdxIQsgCUGAgAJxIRQgCUGA+AFxIglBgPgBRgRAIBRBEHQiCUGAgID8B3IgC0UNAxogCSALQQ10ckGAgID+B3IMAwsgFEEQdCEUIAlFDQEgCUENdEGAgID8AHEgC0ENdHJBgICAwANqIBRyDAILIBEgDkG01McAEL8HAAsgCyALZ0EQayILQf//A3FBCGp0Qf///wNxIBRBgICA2ANyIAtBF3Rrcgu+IiBDAACAP14EQCAgEPQFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISACfwJAIAwgDkkEQCAQIAxBGGxqIgstABMiDCALLQASIgkgCy0AESIUIAkgFEsbIgkgCSAMSRsiDAR9QwAAQMEgCCoCRCAILQBYQQJGIgkbIiJDAAAQQSAIKgJIIAkbICKTQwAAfkOVIAxBAWtB/wFxs5SSEKYEIiIgIpIFQwAAAAALISIgC0EMaiIaLwEAIglB//8BcUUEQCAJQRB0DAMLIAlB/wdxIQwgCUGAgAJxIRQgCUGA+AFxIglBgPgBRgRAIBRBEHQiCUGAgID8B3IgDEUNAxogCSAMQQ10ckGAgID+B3IMAwsgFEEQdCEUIAlFDQEgCUENdEGAgID8AHEgDEENdHJBgICAwANqIBRyDAILDAwLIAwgDGdBEGsiDEH//wNxQQhqdEH///8DcSAUQYCAgNgDciAMQRd0a3ILviIkQwAAgD9eBEAgJBD0BUNU+C1AlEMAAIA/kpEhIAsgByAZaiIUQQJ0IAIgD0EIayAjICGUIiEgIVsgISAiICCUYEVxIhkbaiARNgIAQwAAgD8hIQJ/AkAgDiANQQhqKAIAIgxLBEAgECAMQRhsaiIHLQATIgkgBy0AEiIRIActABEiHCARIBxLGyIRIAkgEUsbIgkEfUMAAEDBIAgqAkQgCC0AWEECRiIRGyIgQwAAEEEgCCoCSCARGyAgk0MAAH5DlSAJQQFrQf8BcbOUkhCmBCIgICCSBUMAAAAACyEjIAdBDGovAQAiCUH//wFxRQRAIAlBEHQMAwsgCUH/B3EhByAJQYCAAnEhESAJQYD4AXEiCUGA+AFGBEAgEUEQdCIJQYCAgPwHciAHRQ0DGiAJIAdBDXRyQYCAgP4HcgwDCyARQRB0IREgCUUNASAJQQ10QYCAgPwAcSAHQQ10ckGAgIDAA2ogEXIMAgsMDAsgByAHZ0EQayIHQf//A3FBCGp0Qf///wNxIBFBgICA2ANyIAdBF3Rrcgu+IiBDAACAP14EQCAgEPQFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISAgFCAZaiIUQQJ0IAIgD0EMayAjICGUIiEgIVsgISALLQATIgcgCy0AEiIJIAstABEiCyAJIAtLGyILIAcgC0sbIgcEfUMAAEDBIAgqAkQgCC0AWEECRiILGyIjQwAAEEEgCCoCSCALGyAjk0MAAH5DlSAHQQFrQf8BcbOUkhCmBCIjICOSBUMAAAAACwJ/IBovAQAiC0H//wFxRQRAIAtBEHQMAQsgC0H/B3EhByALQYCAAnEhCSALQYD4AXEiC0GA+AFGBEAgCUEQdCILQYCAgPwHciAHRQ0BGiALIAdBDXRyQYCAgP4HcgwBCyAJQRB0IgkgC0ENdEGAgID8AHEgB0ENdHJBgICAwANqciALDQAaIAcgB2dBEGsiB0H//wNxQQhqdEH///8DcSAJQYCAgNgDciAHQRd0a3ILviIjQwAAgD9eBH0gIxD0BUNU+C1AlEMAAIA/kpEFQwAAgD8LlGBFcSIZG2ogDDYCAEMAAIA/ISECfwJAIA4gDUEMaigCACIJSwRAIBcoAgAhDCAQIAlBGGxqIgctABMiCyAHLQASIhEgBy0AESIaIBEgGksbIhEgCyARSxsiCwR9QwAAQMEgCCoCRCAILQBYQQJGIhEbIiNDAAAQQSAIKgJIIBEbICOTQwAAfkOVIAtBAWtB/wFxs5SSEKYEIiMgI5IFQwAAAAALISMgB0EMai8BACILQf//AXFFBEAgC0EQdAwDCyALQf8HcSEHIAtBgIACcSERIAtBgPgBcSILQYD4AUYEQCARQRB0IgtBgICA/AdyIAdFDQMaIAsgB0ENdHJBgICA/gdyDAMLIBFBEHQhESALRQ0BIAtBDXRBgICA/ABxIAdBDXRyQYCAgMADaiARcgwCCyAJIA5BtNTHABC/BwALIAcgB2dBEGsiB0H//wNxQQhqdEH///8DcSARQYCAgNgDciAHQRd0a3ILviIiQwAAgD9eBEAgIhD0BUNU+C1AlEMAAIA/kpEhIQsCfwJAIAwgDkkEQCAQIAxBGGxqIgctABMiDCAHLQASIhAgBy0AESILIAsgEEkbIhAgDCAQSxsiDAR9QwAAQMEgCCoCRCAILQBYQQJGIhAbIiJDAAAQQSAIKgJIIBAbICKTQwAAfkOVIAxBAWtB/wFxs5SSEKYEIiIgIpIFQwAAAAALISIgB0EMai8BACIMQf//AXFFBEAgDEEQdAwDCyAMQf8HcSEHIAxBgIACcSEQIAxBgPgBcSIMQYD4AUYEQCAQQRB0IgxBgICA/AdyIAdFDQMaIAwgB0ENdHJBgICA/gdyDAMLIBBBEHQhECAMRQ0BIAxBDXRBgICA/ABxIAdBDXRyQYCAgMADaiAQcgwCCwwMCyAHIAdnQRBrIgdB//8DcUEIanRB////A3EgEEGAgIDYA3IgB0EXdGtyC74iJEMAAIA/XgRAICQQ9AVDVPgtQJRDAACAP5KRISALIBQgGWoiB0ECdCACIA9BEGsiDyAjICGUIiEgIVsgISAiICCUYEVxIgwbaiAJNgIAIAcgDGohByANQRBqIg0gFkkNAAsLIAAgCkECdGoiESANSwRAIBJBBGooAgAiCCgCCCEOIBcoAgAhCwNAQwAAgD8hIQJ/AkAgDiANKAIAIglLBEAgCCgCBCIUIAlBGGxqIgwtABMiECAMLQASIhMgDC0AESIWIBMgFksbIhMgECATSxsiEAR9QwAAQMEgCCoCRCAILQBYQQJGIhMbIiBDAAAQQSAIKgJIIBMbICCTQwAAfkOVIBBBAWtB/wFxs5SSEKYEIiAgIJIFQwAAAAALISAgDEEMai8BACIQQf//AXFFBEAgEEEQdAwDCyAQQf8HcSEMIBBBgIACcSETIBBBgPgBcSIQQYD4AUYEQCATQRB0IhBBgICA/AdyIAxFDQMaIBAgDEENdHJBgICA/gdyDAMLIBNBEHQhEyAQRQ0BIBBBDXRBgICA/ABxIAxBDXRyQYCAgMADaiATcgwCCyAJIA5BtNTHABC/BwALIAwgDGdBEGsiDEH//wNxQQhqdEH///8DcSATQYCAgNgDciAMQRd0a3ILviIjQwAAgD9eBEAgIxD0BUNU+C1AlEMAAIA/kpEhIQsCfwJAIAsgDkkEQCAUIAtBGGxqIgwtABMiECAMLQASIhMgDC0AESIUIBMgFEsbIhMgECATSxsiEAR9QwAAQMEgCCoCRCAILQBYQQJGIhMbIiNDAAAQQSAIKgJIIBMbICOTQwAAfkOVIBBBAWtB/wFxs5SSEKYEIiMgI5IFQwAAAAALISMgDEEMai8BACIQQf//AXFFBEAgEEEQdAwDCyAQQf8HcSEMIBBBgIACcSETIBBBgPgBcSIQQYD4AUYEQCATQRB0IhBBgICA/AdyIAxFDQMaIBAgDEENdHJBgICA/gdyDAMLIBNBEHQhEyAQRQ0BIBBBDXRBgICA/ABxIAxBDXRyQYCAgMADaiATcgwCCyALIA5BtNTHABC/BwwGCyAMIAxnQRBrIgxB//8DcUEIanRB////A3EgE0GAgIDYA3IgDEEXdGtyCyEMIAdBAnQgAiAPQQRrIg8gICAhlCIhICFbICEgIyAMviIgQwAAgD9eBH0gIBD0BUNU+C1AlEMAAIA/kpEFQwAAgD8LlGBFcSIMG2ogCTYCACAHIAxqIQcgDUEEaiINIBFJDQALCyABIApHBEAgD0EEayIPIAdBAnRqIA0oAgA2AgAgDUEEaiENIAEhCgwBCwsgB0ECdCIMBEAgACACIAz8CgAACyABIAdrIQ4CQCABIAdGDQBBACEIIA5BBE8EQCAAIAxqIQogGyAfaiENIA5BfHEiCCEPA0AgCiAN/QACAP0MAAAAAAAAAAAAAAAAAAAAAP0NDA0ODwgJCgsEBQYHAAECA/0LAgAgCkEQaiEKIA1BEGshDSAPQQRrIg8NAAsgCCAORg0BCyAeIBsgCEECdCINa2ohCiAAIA1qIAxqIQ0gCCABayAHaiEPA0AgDSAKKAIANgIAIApBBGshCiANQQRqIQ0gD0EBaiIPDQALCyAHRQ0AIAEgB08NAiAYQQA2AhggGEEBNgIMIBhBhI/IADYCCCAYQgQ3AhAgGEEIakGE98AAEMoIAAsgASADSw0AIAIgAUECdCIRaiEMIAYoAgAhG0EAIQ4gACEPA0AgACAVQQNrIgVBACAFIBVNG0ECdGoiGSAPSwRAIBtBBGooAgAiDSgCCCELIBcoAgAhECAGKAIAQQRqIRoDQEMAAIA/ISECfwJAIAsgEEsEQCAPKAIAIQggDSgCBCISIBBBGGwiCWoiBS0AEyIHIAUtABIiCiAFLQARIhMgCiATSxsiCiAHIApLGyIHBH1DAABAwSANKgJEIA0tAFhBAkYiChsiIEMAABBBIA0qAkggChsgIJNDAAB+Q5UgB0EBa0H/AXGzlJIQpgQiICAgkgVDAAAAAAshIyAFQQxqLwEAIgdB//8BcUUEQCAHQRB0DAMLIAdB/wdxIQUgB0GAgAJxIQogB0GA+AFxIgdBgPgBRgRAIApBEHQiB0GAgID8B3IgBUUNAxogByAFQQ10ckGAgID+B3IMAwsgCkEQdCEKIAdFDQEgB0ENdEGAgID8AHEgBUENdHJBgICAwANqIApyDAILIBAgC0G01McAEL8HAAsgBSAFZ0EQayIFQf//A3FBCGp0Qf///wNxIApBgICA2ANyIAVBF3Rrcgu+IiBDAACAP14EQCAgEPQFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISACfwJAIAggC0kEQCASIAhBGGxqIgUtABMiByAFLQASIgogBS0AESISIAogEksbIgogByAKSxsiBwR9QwAAQMEgDSoCRCANLQBYQQJGIgobIiJDAAAQQSANKgJIIAobICKTQwAAfkOVIAdBAWtB/wFxs5SSEKYEIiIgIpIFQwAAAAALISIgBUEMai8BACIHQf//AXFFBEAgB0EQdAwDCyAHQf8HcSEFIAdBgIACcSEKIAdBgPgBcSIHQYD4AUYEQCAKQRB0IgdBgICA/AdyIAVFDQMaIAcgBUENdHJBgICA/gdyDAMLIApBEHQhCiAHRQ0BIAdBDXRBgICA/ABxIAVBDXRyQYCAgMADaiAKcgwCCyAIIAtBtNTHABC/BwALIAUgBWdBEGsiBUH//wNxQQhqdEH///8DcSAKQYCAgNgDciAFQRd0a3ILviIkQwAAgD9eBEAgJBD0BUNU+C1AlEMAAIA/kpEhIAsgDkECdCACIAxBBGsgIyAhlCIhICFcICEgIiAglGByIhwbaiAINgIAQwAAgD8hIQJ/AkAgGigCACIFKAIIIgogEEsEQCAPQQRqKAIAIRIgCSAFKAIEIhNqIggtABMiByAILQASIgkgCC0AESIUIAkgFEsbIgkgByAJSxsiBwR9QwAAQMEgBSoCRCAFLQBYQQJGIgkbIiBDAAAQQSAFKgJIIAkbICCTQwAAfkOVIAdBAWtB/wFxs5SSEKYEIiAgIJIFQwAAAAALISMgCEEMaiIULwEAIglB//8BcUUEQCAJQRB0DAMLIAlB/wdxIQcgCUGAgAJxIRYgCUGA+AFxIglBgPgBRgRAIBZBEHQiCUGAgID8B3IgB0UNAxogCSAHQQ10ckGAgID+B3IMAwsgFkEQdCEWIAlFDQEgCUENdEGAgID8AHEgB0ENdHJBgICAwANqIBZyDAILIBAgCkG01McAEL8HAAsgByAHZ0EQayIHQf//A3FBCGp0Qf///wNxIBZBgICA2ANyIAdBF3Rrcgu+IiBDAACAP14EQCAgEPQFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISACfwJAIAogEksEQCATIBJBGGxqIgctABMiCSAHLQASIhYgBy0AESIdIBYgHUsbIhYgCSAWSxsiCQR9QwAAQMEgBSoCRCAFLQBYQQJGIhYbIiJDAAAQQSAFKgJIIBYbICKTQwAAfkOVIAlBAWtB/wFxs5SSEKYEIiIgIpIFQwAAAAALISIgB0EMai8BACIJQf//AXFFBEAgCUEQdAwDCyAJQf8HcSEHIAlBgIACcSEWIAlBgPgBcSIJQYD4AUYEQCAWQRB0IglBgICA/AdyIAdFDQMaIAkgB0ENdHJBgICA/gdyDAMLIBZBEHQhFiAJRQ0BIAlBDXRBgICA/ABxIAdBDXRyQYCAgMADaiAWcgwCCyASIApBtNTHABC/BwALIAcgB2dBEGsiB0H//wNxQQhqdEH///8DcSAWQYCAgNgDciAHQRd0a3ILviIkQwAAgD9eBEAgJBD0BUNU+C1AlEMAAIA/kpEhIAsgDiAcaiIWQQJ0IAIgDEEIayAjICGUIiEgIVwgISAiICCUYHIiHBtqIBI2AgAgD0EIaigCACEHIAgtABMiDiAILQASIhIgCC0AESIJIAkgEkkbIhIgDiASSxsiDgR9QwAAQMEgBSoCRCAFLQBYQQJGIhIbIiFDAAAQQSAFKgJIIBIbICGTQwAAfkOVIA5BAWtB/wFxs5SSEKYEIiEgIZIFQwAAAAALISNDAACAPyEhAn8gFC8BACISQf//AXFFBEAgEkEQdAwBCyASQf8HcSEOIBJBgIACcSEJIBJBgPgBcSISQYD4AUYEQCAJQRB0IhJBgICA/AdyIA5FDQEaIBIgDkENdHJBgICA/gdyDAELIAlBEHQiCSASQQ10QYCAgPwAcSAOQQ10ckGAgIDAA2pyIBINABogDiAOZ0EQayIOQf//A3FBCGp0Qf///wNxIAlBgICA2ANyIA5BF3Rrcgu+IiBDAACAP14EQCAgEPQFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISACfwJAIAcgCkkEQCATIAdBGGxqIg4tABMiEiAOLQASIgkgDi0AESIdIAkgHUsbIgkgCSASSRsiEgR9QwAAQMEgBSoCRCAFLQBYQQJGIgkbIiJDAAAQQSAFKgJIIAkbICKTQwAAfkOVIBJBAWtB/wFxs5SSEKYEIiIgIpIFQwAAAAALISIgDkEMai8BACISQf//AXFFBEAgEkEQdAwDCyASQf8HcSEOIBJBgIACcSEJIBJBgPgBcSISQYD4AUYEQCAJQRB0IhJBgICA/AdyIA5FDQMaIBIgDkENdHJBgICA/gdyDAMLIAlBEHQhCSASRQ0BIBJBDXRBgICA/ABxIA5BDXRyQYCAgMADaiAJcgwCCwwKCyAOIA5nQRBrIg5B//8DcUEIanRB////A3EgCUGAgIDYA3IgDkEXdGtyC74iJEMAAIA/XgRAICQQ9AVDVPgtQJRDAACAP5KRISALIBYgHGoiCUECdCACIAxBDGsgIyAhlCIhICFcICEgIiAglGByIhYbaiAHNgIAIA9BDGooAgAhByAILQATIg4gCC0AEiISIAgtABEiCCAIIBJJGyIIIAggDkkbIggEfUMAAEDBIAUqAkQgBS0AWEECRiIOGyIhQwAAEEEgBSoCSCAOGyAhk0MAAH5DlSAIQQFrQf8BcbOUkhCmBCIhICGSBUMAAAAACyEjQwAAgD8hIQJ/IBQvAQAiDkH//wFxRQRAIA5BEHQMAQsgDkH/B3EhCCAOQYCAAnEhEiAOQYD4AXEiDkGA+AFGBEAgEkEQdCIOQYCAgPwHciAIRQ0BGiAOIAhBDXRyQYCAgP4HcgwBCyASQRB0IhIgDkENdEGAgID8AHEgCEENdHJBgICAwANqciAODQAaIAggCGdBEGsiCEH//wNxQQhqdEH///8DcSASQYCAgNgDciAIQRd0a3ILviIgQwAAgD9eBEAgIBD0BUNU+C1AlEMAAIA/kpEhIQtDAACAPyEgAn8CQCAHIApJBEAgEyAHQRhsaiIILQATIgogCC0AEiIOIAgtABEiEiAOIBJLGyIOIAogDksbIgoEfUMAAEDBIAUqAkQgBS0AWEECRiIOGyIiQwAAEEEgBSoCSCAOGyAik0MAAH5DlSAKQQFrQf8BcbOUkhCmBCIiICKSBUMAAAAACyEiIAhBDGovAQAiCEH//wFxRQRAIAhBEHQMAwsgCEH/B3EhBSAIQYCAAnEhCiAIQYD4AXEiCEGA+AFGBEAgCkEQdCIIQYCAgPwHciAFRQ0DGiAIIAVBDXRyQYCAgP4HcgwDCyAKQRB0IQogCEUNASAIQQ10QYCAgPwAcSAFQQ10ckGAgIDAA2ogCnIMAgsMCgsgBSAFZ0EQayIFQf//A3FBCGp0Qf///wNxIApBgICA2ANyIAVBF3Rrcgu+IiRDAACAP14EQCAkEPQFQ1T4LUCUQwAAgD+SkSEgCyAJIBZqIgVBAnQgAiAMQRBrIgwgIyAhlCIhICFcICEgIiAglGByIggbaiAHNgIAIAUgCGohDiAPQRBqIg8gGUkNAAsLIAAgFUECdGoiEiAPSwRAIBtBBGooAgAiBSgCCCEHIBcoAgAhEANAQwAAgD8hIQJ/AkAgByAQSwRAIA8oAgAhCiAFKAIEIgkgEEEYbGoiCC0AEyINIAgtABIiCyAILQARIhMgCyATSxsiCyALIA1JGyINBH1DAABAwSAFKgJEIAUtAFhBAkYiCxsiIEMAABBBIAUqAkggCxsgIJNDAAB+Q5UgDUEBa0H/AXGzlJIQpgQiICAgkgVDAAAAAAshIyAIQQxqLwEAIg1B//8BcUUEQCANQRB0DAMLIA1B/wdxIQggDUGAgAJxIQsgDUGA+AFxIg1BgPgBRgRAIAtBEHQiDUGAgID8B3IgCEUNAxogDSAIQQ10ckGAgID+B3IMAwsgC0EQdCELIA1FDQEgDUENdEGAgID8AHEgCEENdHJBgICAwANqIAtyDAILIBAgB0G01McAEL8HAAsgCCAIZ0EQayIIQf//A3FBCGp0Qf///wNxIAtBgICA2ANyIAhBF3Rrcgu+IiBDAACAP14EQCAgEPQFQ1T4LUCUQwAAgD+SkSEhC0MAAIA/ISACfwJAIAcgCksEQCAJIApBGGxqIggtABMiDSAILQASIgsgCC0AESIJIAkgC0kbIgsgCyANSRsiDQR9QwAAQMEgBSoCRCAFLQBYQQJGIgsbIiJDAAAQQSAFKgJIIAsbICKTQwAAfkOVIA1BAWtB/wFxs5SSEKYEIiIgIpIFQwAAAAALISIgCEEMai8BACINQf//AXFFBEAgDUEQdAwDCyANQf8HcSEIIA1BgIACcSELIA1BgPgBcSINQYD4AUYEQCALQRB0Ig1BgICA/AdyIAhFDQMaIA0gCEENdHJBgICA/gdyDAMLIAtBEHQhCyANRQ0BIA1BDXRBgICA/ABxIAhBDXRyQYCAgMADaiALcgwCCyAKIAdBtNTHABC/BwALIAggCGdBEGsiCEH//wNxQQhqdEH///8DcSALQYCAgNgDciAIQRd0a3ILviIkQwAAgD9eBEAgJBD0BUNU+C1AlEMAAIA/kpEhIAsgDkECdCACIAxBBGsiDCAjICGUIiEgIVwgISAiICCUYHIiCBtqIAo2AgAgCCAOaiEOIA9BBGoiDyASSQ0ACwsgASAVRwRAIAIgDkECdGogDygCADYCACAPQQRqIQ8gDkEBaiEOIAxBBGshDCABIRUMAQsLIA5BAnQiBQRAIAAgAiAF/AoAAAsgASAORg0EIAAgBWohCEEAIQwCQCABIA5rIgdBBE8EQCARIB9qIQogB0F8cSIMIQ8gCCENA0AgDSAK/QACAP0MAAAAAAAAAAAAAAAAAAAAAP0NDA0ODwgJCgsEBQYHAAECA/0LAgAgDUEQaiENIApBEGshCiAPQQRrIg8NAAsgByAMRg0BCyAeIAxBAnQiFWsgEWohCiAAIBVqIAVqIQ0gDCABayAOaiEPA0AgDSAKKAIANgIAIApBBGshCiANQQRqIQ0gD0EBaiIPDQALCyABIA5PBEBBACEFIAghACAHIQEgB0EhSQ0EDAMLIA4gAUGU98AAEKMKAAsACyAAIAxqIA4gAiADIAQgGEEEaiAGED8gByEBIAdBIU8NAAsgACEICyAHQQJJDQAgBigCACEBIAdBAXYhACAAAn8gB0EPTQRAIAdBB0sEQCAIIAIgAUEEaiIDKAIAEHsgCCAAQQJ0IgRqIAIgBGogAygCABB7QQQMAgsgAiAIKAIANgIAIAIgAEECdCIDaiADIAhqKAIANgIAQQEMAQsgCCACIAdBAnRqIgMgAUEEaiIEKAIAEHsgCEEQaiADQRBqIAQoAgAQeyADQQggAiABEMIBIAggAEECdCIFaiIGIANBIGoiCiAEKAIAEHsgBkEQaiADQTBqIAQoAgAQeyAKQQggAiAFaiABEMIBQQgLIgNLBEAgACADayENIANBAnQhCgNAIAIgCmoiBCAIIApqKAIANgIAIAIgBCABENUBIApBBGohCiANQQFrIg0NAAsLIAcgAGsgA0sEQCACIABBAnQiBGohBSAIIANBAnQgBGoiBGohDSACIARqIQogACADaiAHayEMA0AgCiANKAIANgIAIAUgCiABENUBIA1BBGohDSAKQQRqIQogDEEBaiIMDQALCyACIAcgCCABEMIBCyAYQSBqJAAPCyAHIApBtNTHABC/BwALIAwgDkG01McAEL8HAAuWbwMVfwd+AnsjAEGw1QBrIgMkACAD/QwAAAAAAAAAAAAAAAAAAAAA/QsD8EggAq0hGwJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkBB8KPHACkDACIcQv8Bg0IEUgRAQhAhGQNAIAIgGiAbIBogG1QbpyIEayIFQoDAACAZIBlCgMAAWhunIgYgBSAGSRsiBQRAIANBGGogASAEaiAF/AoAAAsgAiAERg0CQRBCECAYIBhCEFobpyIGayIEIAUgBCAFSSIHGyIEBEAgA0HwyABqIAZqIANBGGogBPwKAAALIAcNAyAaIAWtIh18IRogBSAKaiEKIBggBK18IRggGSAdfSIZQgBSDQALDAELQhAhGQNAIAIgGiAbIBogG1QbpyIEayIFQoDAACAZIBlCgMAAWhunIgYgBSAGSRsiBQRAIANBGGogASAEaiAF/AoAAAsgAiAERg0BQRBCECAYIBhCEFobpyIGayIEIAUgBCAFSRsiBARAIANB8MgAaiAGaiADQRhqIAT8CgAACyAYIAStfCEYIAUgCmohCiAaIAWtIhx8IRogGSAcfSIZUEUNAAsLQbzMyQAoAgAiDkEASA0CQbzMyQAgDkEBajYCACAKQRFJBEADQCAMQdzXxABqKAIAIQYgDEHY18QAaigCACEFAkAgDEHk18QAaigCACIHRQRAIAYgCksNASAFIANB8MgAaiAGEJAIDQEMBQsgBiAKSw0AIAxB4NfEAGooAgAiBCAHaiEPIANB8MgAaiEHA0AgBkUNBSAGQQFrIQZB/KvHACAEIARFIAQgD0ZyIggbIQ0gBy0AACEJIAUtAAAhCyAHQQFqIQcgBUEBaiEFQQAgBEEBaiAIGyEEIAsgCSANLQAAcUYNAAsLIAxBFGoiDEG4A0cNAAtBvMzJACAONgIAQQMhBUEEIQFBAyEJDA0LIApBEEHsq8cAEKIKAAsgHBCHCCEBIABBgICAgHg2AgAgACABNgIEDAwLQbzMyQAgDjYCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAMQejXxABqLQAAIgQOBAAFBQEFC0GAgAEQfiIERQ0LIARBAEGAgAH8CwBBgBAQfiIGRQ0LIAZBAEGAEPwLACADQSRqQQA7AQAgA0EANgIgQagHEH4iBUUNCyAFQQBB2Ab8CwAgBUEANgKUByAFQQA2AogHIAVBADoAhAcgBUEANgKAByAFIAY2AvwGIAUgBDYC+AYgBUICNwPwBiAFQgA3A+gGIAVCgICAgCA3A+AGIAVBATYC3AYgBUEdNgLYBiAFQQA6AKYHIAUgAykDGDcDmAcgBUGeB2ogAykBHjcBAEGAARB+IgRFDQsgA0HkAmpCADcCACAD/QwAAAAAAAAAAAAAAAAAAAAA/QsC1AIgA0ECNgK4RSADQQA2ArBFIANBvMUAaiADQRhqIgZB1AL8CgAAIANBgAI7AMNIIANBATsBwEggA0KAgICAgiA3A7hIIANCADcDsEggA0EAOgCoSCADQYACOwGkSCADIAU2AqBIIANBADoAnEggA0EANgKYSCADIAQ2ApRIIANBgAE2ApBIIAMgATYCyEggAyACNgLMSCADQgA3A9BIIANBADYC2EggA0EAOgDCSCADQeDIAGoiASADQbDFAGoQwwQgAy0A4EhBKEcEQCAGIAEQnQQgAygCGCIBQQZHDQQLIANBEDYC2EggA0Hg0QBqIgEgA0GwxQBqQbAD/AoAACADQRhqIAEQwwQgAy0AGCIEQShHBEAgA0He0QBqIAMtABs6AAAgAyADLwAZOwHcUSADKAIcIQYgAykCICEbIAEQpwEMDwsCQAJAIAMoAhwiAS0AvgIiAkEDdEH4pMkAaikDACABNQK0AiABMQC/An4iGH4iHEIDiCAcQgeDQgBSrXwiHEL+////D1YNACAcp0EBaq1BgAEgASgCuAIiASABQYABTxutfiIcQiCIpw0AIBynIgRB/wFxIgEEQCAEIAQgAWtBgAJqIgRLDQELIARBgYAISQ0BC0GAgAghBAtBASEGQf////8HIQUCQCACQQN0QbClyQBqKQMAIBh+IhhCA4ggGEIHg0IAUq18IhhC/v///w9WDQAgGKdBAWoiAUH/////A0sNACABQQJ0IghBPHEiAQRAIAggCCABa0FAayIISw0BC0GAgAggCCAIQYCACE0bIQULIAQEQCAEEH4iBkUNDAsgAyAFNgK4BCADQQA2ArQEIANCADcCrAQgA0EANgKQBCADIAY2AowEIAMgBDYCiAQgA0KAgICAgICAgIB/NwKcBCADQoCAgIAQNwKUBCADQn83A4AEIANBGGogA0Hg0QBqQagD/AoAACADQfUDakIANwAAIANCADcD8AMgA0EANgLIAyADQgA3A8ADIANBgAI7AdwEIANCADcD0AQgA0KAgICAEDcDyAQgA0EANgLABCADIAMoAohVNgLYBCADQQI2AtwDAkAgAygCIEECRwRAQSchBCADLQDeAkEDdEHopckAaikDACADNQLUAiIYIAMxAN8Cfn4iG0IDiCAbQgeDQgBSrXxC/////w9UDQEMDwtB5J/HABCkCgALIAMoAtgCIQYgA0EQaiADQRhqIgEQtwUgAywAEEEDdEGgpskAaikDACADMQARIBh+fiIYQgOIIBhCB4NCAFKtfCIbQv7///8PVg0NIBsgBq1+IhhCIIinIBinQQBIcg0NIANBoNUAaiABEJQBIAMtAKBVIgRBKEcEQCADQd7RAGogAy0Ao1U6AAAgAyADLwChVTsB3FEgAygCpFUhBiADKQKoVSEbDA4LIAMoAiAiBkECRg0FQQEhBCADKAJMBEAgAygCUCADLQDRAkECRmohBAsgA0He0QBqIgEgAy0AHzoAACADIAQ2AtQEIAMgAy8AHTsB3FEgAy0AHCEEIAMpAiQhGyADKAIsIQIgAygCMCEIIAMtADQhByADLQA1IQkgAy0ANiELIAMtADchCiAD/QADOCEgIAMoAhghBSADQcDNAGoiDCADQcgAakGYBPwKAAAgBUECRg0OIAMgAy8B3FE7APVIIAMgAS0AADoA90ggA0GgyQBqIAxBmAT8CgAAIAMgIP0LBJBJIAMgCjoAj0kgAyALOgCOSSADIAk6AI1JIAMgBzoAjEkgAyAINgKISSADIAI2AoRJIAMgGzcC/EggAyAGNgL4SCADIAQ6APRIIAMgBTYC8EggA0EIaiADQfDIAGoQtwVBHCEHIAMtAAkhBAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADLQAIQQFrDgYaARsCGgMAC0EAIQZBASEHIARoIgVBAWsOBAQDEA8aC0ECIQZBAyEHIARoIgVBAWsOBAQFDwYZC0EBIQZBAiEHIARoIgVBAWsOBAYHDggYC0EEIQcgBGgiBkEBaw4ECAkNChcLQQkhBwwWC0EFIQcMFQtBByEHDBQLQQshBwwTC0EGIQYMCAtBBiEHDBELQQohBwwQC0EFIQYMBQtBCCEHDA4LQQwhBwwNC0EHIQYMAgsCe0GA0ckAKAIAQQFGBEBBiNHJAP0AAwAMAQsgA0HAzQBqEO4GQYDRyQBCATcDAEGQ0ckAIAMpA8hNNwMAIAP9AATATQshH0EAIQYgA0E8akEANgIAIAMgH/0LA4ABQYjRyQAgH/0dAEIBfDcDACADQgA3A2ggAyABNgJgIANBAjoAXSADQYCAgIB4NgIgIANCADcDGCAD/QwAAAAAAAAAAAAAAAAAAAAA/QsCLCADQQE6AEAgA0EBNgKoASAD/Qz/////AAAAAAAAAAAAAAAA/QsDmAEgA0IANwOQASADQQA6AKwBIANBmKXIAP0AAwD9CwNwIAMgAjYCZCACQQRPBEAgASgAACEGQgQhGQwGCyADQgQgG0HgocgAKQMAIhhC/wGDQgRRGyIZNwNoIBinIgRB/wFxQQRGDQUgGEIIiCIZQv///weDIRgMBgtBBCEGCyAD/QAE8EghICADQZjAAGoiASADQYDJAGpBuAT8CgAAQfAEEH4iBEUNCCAEQQA6AB8gBEEAOwAdIARBgICAgAI2AgggBEIBNwMAIAT9DAAAAAAAAAAAAAAAAAAAAAD9CwIMIAQgIP0LAyAgBEEwaiABQbgE/AoAACAEIAY6AOgEQYCsxwAMDQsgAykDOCEbIAMpAzAhGSADLQAvIQkgAy0ALiEEIAMtAC0hByADLQAsIQogAygCKCELIAMoAhwhBSADKQMgIhhCIIinIQYgGKchCCADQbDFAGoQpwEMCwtBBCEBQgAhGkIAIRsgBEEIdCIJIQUMDAtB5J/HABCkCgALIANBwM0AakEBciAGEL0EQQQhBCADLQDDTSEGIAMvAMFNIQUgAwJ+AkAgAiAZIBsgGSAbVBunIghrQQRPBEAgASAIajUAACEcQgAhGAwBC0HgocgAKQMAIhpCCIghGCAapyEEQgAhHCAbIBpC/wGDQgRSDQEaCyAZQgR8CyIaNwNoIBghGSAEQf8BcUEERg0BCyADQQA2ArBFIAMgBK1C/wGDIBlCCIZCgICAgHCDIBhCCIZCgP7//w+DhIQ3ArRFDAELAkACQAJAAkACQAJAAkACQAJAAkACQCAFIAZBEHRyQf8BcUUEQEEEIQQgAwJ+AkAgAiAaIBsgGiAbVBunIgZrQQRPBEAgASAGaigAACEGQgAhGQwBC0EAIQZB4KHIACkDACIYQgiIIRkgGKchBCAbIBhC/wGDQgRSDQEaCyAaQgR8CyIaNwNoIARB/wFxQQRHBEAgAyAErUL/AYMgGUIIhoQ3AsRNIANBusUAaiADQcrNAGovAQA7AQAgAyADKQHCTTcBskUgA0EAOgCwRQwNCyADQcDNAGpBAXIgBhC9BEHSkpmyBCEEAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAy0AwU1BAWsOCwABAgMEBQYHCAkKCwtBBCEEIAMCfgJAIAIgGiAbIBogG1QbpyIGa0EETwRAIAEgBmooAAAhBkIAIRgMAQtBACEGQeChyAApAwAiGUIIiCEYIBmnIQQgGyAZQv8Bg0IEUg0BGgsgGkIEfAsiGjcDaCAEQf8BcUEERwRAIBhC////B4MhGQwkCyADQcDNAGpBAXIgBhC9BAJAAkAgAiAaIBsgGiAbVBunIgJrQQRPBEAgASACaigAACEGQQQhBEIAIRkMAQtBACEGQeChyAApAwAiGEIIiCEZIBinIQQgGEL/AYNCBFINAQsgGkIEfCEbCyADLQDDTSEFIAMtAMRNIQEgAy8AwU0hCSADLQDFTSELIAMgGzcDaCAZIRggBEH/AXFBBEcNIyADQfAAaiEKIANB4ABqIQggAyALOgDkSCADIAkgBUEQdHIiAiABQRh0cjYC4EggBq0hGkHSkpmyBCEFIAJB/wFxQQFrDgsLFBUWDA0ODxAREhMLQdag4YECIQQMCQtB1qDh4QQhBAwIC0HWoOHBBSEEDAcLQcGcpeoEIQQMBgtBwZy1sgQhBAwFC0HBmMHCBCEEDAQLQcmGjYIFIQQMAwtBxbClsgQhBAwCC0HYmsGCAiEEDAELIAMoAcJNIQQLIAMgBDYAsUUgA0ECOgCwRQwZC0HXiomCBSEFDAcLQcGcpeoEIQUMBgtBwZy1sgQhBQwFC0HBmMHCBCEFDAQLQcmGjYIFIQUMAwtBxbClsgQhBQwCC0HYmsGCAiEFDAELIAMoAOFIIQULIAMgBTYAsUUgA0EEOgCwRQwQCyADQcDNAGohAUEAIQRCACEcIAgoAgQiAq0hGAJAAkAgAkL/////DyAIKQMIIhkgGUL/////D1obp2siBkEAIAIgBk8bQQNPBEAgCCgCACAZIBggGCAZVhunaiICLwAAIAJBAmotAABBEHRyIQRBBCECDAELQeChyAApAwAiHUIIiCEcIB2nIQIgHUL/AYNCBFINAQsgGUIDfCEYCyAIIBg3AwgCQCACQf8BcUEERwRAIAEgAq1C/wGDIBxCCIaENwIADAELIAFBBDoAACABIAQ2AgQLAkAgAy0AwE1BBEcEQCADKQPATSIYQiCIpyEEIBinIgFB/wFxQQRGDQEgAyAENgK4RSADIAE6ALRFIANBADoAsEUgAyABQRh2OgC3RSADIAFBCHY7ALVFDBELIAMoAsRNIQQLAkAgBEEBcUUEQCADKAJkIgGtIRkgAUL/////DyADKQNoIhggGEL/////D1obp2siAkEAIAEgAk8bQQJLDQFB4KHIACkDACIcpyEBAkAgHEL/AYNCBFEEQCADIBhCA3w3A2ggAUH/AXFBBEYNAQwRCyADIBk3A2ggAUH/AXFBBEcNEAtBACEEDA4LQRMhBUETEH4iAUUNEiABQYC1xgD9AAAA/QsAACABQQ9qQY+1xgAoAAA2AAAgA0EYOgCwRSADQRM2ArRFIAMgATYCuEUMEAsgAyAYQgN8NwNoIAMoAmAgGCAZIBggGVQbp2oiAS8AACABQQJqLQAAQRB0ciIEQZ2DqAFHDQwgA0HAzQBqIAgQvgYgAy0AwE1BBEYEQCADLwHCTSEEDAsLIAMpA8BNIhhCEIinIQQgGKciAUH/AXFBBEYNCiADIAQ7AbZFIAMgAToAtEUgA0EAOgCwRSADIBhCIIg+ArhFIAMgGEIIiDwAtUUMDwsgA0HAzQBqIAgQ4AYCQCADLQDATUEERwRAIAMpA8BNIhhCCIinIQQgGKciAUH/AXFBBEYNASADQbrFAGogGEIwiD0BACADIAQ6ALVFIAMgAToAtEUgA0EAOgCwRSADIBhCEIg+AbZFDBALIAMtAMFNIQQLIARB/wFxQS9HDQEgA0HAzQBqIAgQvwYgAy0AwE1BBEYEQCADKALETSEEDAkLIAMpA8BNIhhCIIinIQQgGKciAUH/AXFBBEYNCCADIAQ2ArhFIAMgAToAtEUgA0EAOgCwRSADIAFBGHY6ALdFIAMgAUEIdjsAtUUMDgsgA0HAzQBqIhAhB0IAIRlBACEOQQAhBEEAIQIjAEEQayEPIAgCfgJAIAgoAgQiDSAIKQMIIhogDa0iGCAYIBpWG6ciAUcEQCAIKAIAIAFqLQAAIQ5BBCEMDAELQeChyAApAwAiHUIIiCEZIB2nIQwgGCAdQv8Bg0IEUg0BGgsgGkIBfAsiGjcDCEEEIQECQAJAIAxB/wFxQQRHBEAgByAZPAAFIAcgDDoABCAHQQA6AAAgB0EKaiAZQiiIPQEAIAcgGUIIiD4BBgwBC0IAIRkgCAJ+IA0gGiAYIBggGlYbp2tBAk0EQEHgocgAKQMAIh1CCIghGSAdpyEBIBggHUL/AYNCBFINARoLIBpCA3wLIho3AwggAUH/AXFBBEcEQCAPIAGtQv8BgyAZQgiGhCIYNwMAIAcgDykCBDcCCCAHIBg+AgQgB0EAOgAADAELIAgCfgJAIA0gGiAYIBggGlYbpyIBa0EDTwRAIAgoAgAgAWoiBC0AAUEIdCEBIAQtAAJBEHQhAiAELQAAIRFBBCEMQgAhGQwBC0HgocgAKQMAIh1CCIghGSAdpyEMQQAhASAYIB1C/wGDQgRSDQEaCyABIQQgGkIDfAsiGjcDCCAMQf8BcUEERwRAIA8gDK1C/wGDIBlCCIaEIhg3AwAgByAPKQIENwIIIAcgGD4CBCAHQQA6AAAMAQsCfwJAIA0gGiAYIBggGlYbpyIBa0EDTwRAIAgoAgAgAWoiDS0AAUEIdCEMIA0tAAJBEHQhASANLQAAIRJBBCENQgAhGQwBC0HgocgAKQMAIh1CCIghGSAdpyENQQAhDEEAIQFBACAdQv8Bg0IEUg0BGgsgGkIDfCEYIAwLIQwgCCAYNwMIIA1B/wFxQQRHBEAgDyANrUL/AYMgGUIIhoQiGDcDACAHIA8pAgQ3AgggByAYPgIEIAdBADoAAAwBCyAEIBFyIAJyQQFqIgKtIAwgEnIgAXJBAWoiAa1+QiCIUARAIAdBADoADCAHQQA2AgggByABNgIEIAcgAjYCACAHIA5BAnZBAXE6ABQgByAOQQN2QQFxOgATIAcgDkEFdkEBcToAEiAHIA5BBHZBAXE6ABEgByAOQQF2QQFxOgAVDAILIAdBCToAAAsgB0ECOgAVCyADKALMTSEHIAMoAshNIQwgAygCxE0hDiADKALATSECIAMtANVNIg9BAkYNBSADIA42AqABIAMgAjYCnAEgAyAbQX8gBiAGQQFxaiIBIAEgBkkbrXwiGjcDaCADLwHWTSEUIAMtANRNIREgAy0A000hEiADLQDSTSEVIAMtANFNIRMgAy0A0E0hFiAcQg1UDQMgGiAcQgx9IhhCACAYIBxYG3whHUHgocgAKQMAIhhC/wGDIR4gGEIIiCEcIBBBAXIhECAYpyEBIBohGANAIAMoAmQiBK0hGyADAn4CQCAEQv////8PIBogGkL/////D1obp2siBUEAIAQgBU8bQQRPBEAgAygCYCAaIBsgGiAbVBunaigAACEFQgAhGUEEIQYMAQtBACEFIAEhBiAcIRkgGyAeQgRSDQEaCyAaQgR8CyIaNwNoIAZB/wFxQQRHBEAgAygCzE0hBQwECyAQIAUQvQQCQAJAIAQgGiAbIBogG1QbpyIEa0EETwRAIAMoAmAgBGooAAAhBEEEIQZCACEZDAELQQAhBCAcIRkgASEGIB5CBFINAQsgGkIEfCEbCyADLQDFTSEJIAMtAMRNIQsgAy8Bwk0hFyADLQDBTSENIAMgGzcDaCAGQf8BcUEERw0DIBhCCHwiGkF/IAQgBEEBcWoiBSAEIAVLGyIFrSIZfCEYAkACQAJAAkAgDUELRwRAIBogBK18IRsgAyANOgDgUSADIAtBEHQgF3IgCUEYdHI2AOFRIANBwM0AaiAKIANB4NEAahClBAJAIAMtAMxNQQxHBEAgA0Hw0QBqIANB0M0AaikDADcDACADIAP9AAPATf0LA+BRDAELIANBDDoA7FEgAyADKQPATTcD4FELIANB4NEAaiAaIBsQqAUgDUEGRg0BIAMpA2ghGwsgGSAbfCIaIBtaDQEgA0KAgIDgAD4AtUUgA0G7xQBqQgA8AAAgA0G5xQBqQtkjPQAAIANBAjoAtEUgA0EAOgCwRQwSCyADIAMoAqQBQQFqNgKkASAEQRhJDQEgAykDaCIaQgx8IhsgGlQEQCADQoCAgOAAPgC1RSADQbvFAGpCADwAACADQbnFAGpC2SM9AAAgA0ECOgC0RSADQQA6ALBFDBILIAMgGzcDaCADQcDNAGogCBC/BiADLQDATUEERgRAIAMoAsRNIQQMAwsgAykDwE0iGkIgiKchBCAapyIGQf8BcUEERg0CIANBt8UAaiAGQRh2OgAAIAMgBDYCuEUgAyAGOgC0RSADQQA6ALBFIAMgBkEIdjsAtUUMEQsgAyAaNwNoIBggHVQNAgwGCyADQRs6ALBFDA8LIAMgAykDkAEgBEH///8Hca18NwOQAQJAAkAgAy0AqgFFBEAgA0HAzQBqIAgQ3wMgAygCwE0NCAJAAkAgAy0A0E1BAmsOBgABAQEBAAELIANBAToAqgELIAVBGEkgGSADKQNoIht8Qhh9IhogG1RzRQ0BIANCgICA4AA+ALVFIANBu8UAakIAPAAAIANBucUAakLZIz0AACADQQI6ALRFIANBADoAsEUMEQsgBUEQSSAZIAMpA2giG3xCEH0iGiAbVHMNAQsgAyAaNwNoIBggHVQNAQwFCwsgA0KAgIDgAD4AtUUgA0G7xQBqQgA8AAAgA0G5xQBqQtkjPQAAIANBAjoAtEUgA0EAOgCwRQwNCyADIAQ6ALFFIANBCzoAsEUMDAsgA0HSkpmyBDYAsUUgA0EEOgCwRQwLCyAZQhiIpyEEIBlCCIinIQkgGachAQJAAkACQAJAIAZB/wFxIgtBAWsOAwEAAAILIAQtAAghAQsgAUH/AXFBJUYNAQsgAyAENgK4RSADQQA6ALBFIAMgGadBCHRBgP4DcSAJQRB0ciALcjYCtEUMCwsgAyAENgLETSADIAZB/wFxIBmnQQh0QYD+A3EgCUEQdHJyNgLATSADQcDNAGoQ+wULIAMgAy0AqgEEf0EBBSAKQbiAxwAQzwRBAEcLOgCqAQJAAkACQCAPQQFxBEAgCkH8gMcAEM8ERQ0BIApB5IDHABDPBEUNAQsgEkEBcQRAIApBgYHHABDPBEUNAQsgEUEBcQRAIApBhoHHABDPBEUNAQsgD0EBcQ0BIApBuIDHABDPBEEARyAKQaCAxwAQzwRFRg0CCyADQQM6ALBFDAsLIANBBToAwE0gA0Hg0QBqIANBGGogA0HAzQBqQQYQoAQCQAJAAkACQAJAAkACQAJAAkAgAy0A4FFBGmsOBAEGBgAGCyADKALkUUGAgICAeEcEQCADQdDNAGogA0Hk0QBqIgRBCGooAgAiATYCACADIAQpAgA3A8hNIAFBBEkNAiADQgQ3A8BNIAMoAsxNKAAAIQwMAwsgA0EDOgCwRQwGCyADQRs6ALBFIANB4NEAahDUBAwFCyADQgQgAa1B4KHIACkDACIYQv8Bg0IEURs3A8BNIBinIgFB/wFxQQRHDQELIANBoNUAaiEBQQAhDUIAIRwgA0HAzQBqIgQoAhAiBq0hGAJAAkAgBkL/////DyAEKQMAIhkgGUL/////D1obp2siEEEAIAYgEE8bQQJPBEAgBCgCDCAZIBggGCAZVhunai8AACENQQQhBgwBC0HgocgAKQMAIhpCCIghHCAapyEGIBpC/wGDQgRSDQELIBlCAnwhGAsgBCAYNwMAAkAgBkH/AXFBBEcEQCABIAatQv8BgyAcQgiGhDcCAAwBCyABQQQ6AAAgASANOwECCyADLQCgVUEERgRAIAMvAaJVIQQMBQsgAykDoFUiGEIQiKchBCAYpyIBQf8BcUEERg0EIAMgBDsBtkUgAyABOgC0RSADQQA6ALBFIAMgGEIgiD4CuEUgAyAYQgiIPAC1RQwBCyADQbvFAGogGEI4iDwAACADQbnFAGogGEIoiD0AACADIAE6ALRFIANBADoAsEUgAyAYQgiIPgC1RQsgAygCyE0iAQRAIAMoAsxNIAFBARDWBwsMAQsgA0G4xQBqIANB6NEAaigCADYCACADIAMpAuBRNwOwRSADKALsUSEFCyADLQCwRSECDAQLIAMgBDsBqAEgCkHkgMcAEM8EIgEEQCADIAEpAwhCCH03AxggAygCyE0iAUUNASADKALMTSABQQEQ1gcMAQtBjIHHABCkCgALAkACQCAKQeSAxwAQzwQiAUUNACABKQMQIRkgAyABKQMIIhhCEHw3A2ggA0HAzQBqIgEgCBDfAyADKALATQ0BIAMgAy0A1E06AJRVIAMgAygC0E02ApBVIAMpA9hNIRwgAykDyE0gASAKIANBkNUAahClBCAYQhh8Iht8IRoCQCADLQDMTUEMRwRAIANB8NEAaiADQdDNAGopAwA3AwAgAyAD/QADwE39CwPgUQwBCyADQQw6AOxRIAMgAykDwE03A+BRCyADQeDRAGogGyAaEKgFIBggHHxCIHwiGCAZVg0AIANBwM0AaiIBIAgQ3wMgAygCwE0NASADIAMtANRNOgCUVSADIAMoAtBNNgKQVSADKQPITSEZIAEgCiADQZDVAGoQpQQgGCAZfCEZAkAgAy0AzE1BDEcEQCADQfDRAGogA0HQzQBqKQMANwMAIAMgA/0AA8BN/QsD4FEMAQsgA0EMOgDsUSADIAMpA8BNNwPgUQsgA0Hg0QBqIBggGRCoBQsgAyAUOwFeIAMgDzoAXSADIBE6AFwgAyASOgBbIAMgFToAWiADIBM6AFkgAyAWOgBYIAMgBzYCVCADIAw2AlAgAyAONgJMIAMgAjYCSCADIBM6AKsBDAYLCyADIAMpA8hNNwK0RSADIAMoAsRNIgI2ArBFIAMoAtBNIQUMAQsgAyAMNgK4RSADIA42ArRFIAMgAjYCsEUgByEFCyACQf8BcUEdRw0GDAILIARB/////wFNBEAgAyAEQQFqQf//AHE2ApwBIAMgBEEOdkEBakH//wBxNgKgASADQQM6AOBRIANBwM0AaiAKIANB4NEAaiAbIBogG3wQ/gIgAyAEQf////8ASzoAqwEgA0EDOgBdDAILIANBDDoAsEUgAyAEQR12OgCxRQwFCyADQcDNAGogCBC+BgJAIAMtAMBNQQRGBEAgAy8Bwk0hBgwBCyADKQPATSIYQhCIpyEGIBinIgVB/wFxQQRGDQAgAyAGOwG2RSADIAU6ALRFIANBADoAsEUgAyAYQiCIPgK4RSADIBhCCIg8ALVFDAULIAMgBkH//wBxIgE2AqABIAMgBEH//wBxIgI2ApwBIAJBACABG0UEQCADQRc6ALBFDAULIANBAjoA4FEgA0HAzQBqIAogA0Hg0QBqIBsgGiAbfBD+AiADQQE6AKoBIANBAjoAXQsgAykDGCEYIAMoAiQhBiADKQMoIRsgAygCMCEFIAMoAjQhCCADKAI4IQIgAygCPCEJIAP9AANAIR8gAygCICEBIANB8MgAaiIEIANB0ABqQeAA/AoAACABQYGAgIB4Rg0EIANB0MQAaiIHIARB4AD8CgAAQaABEH4iBEUNBSAEIB/9CwIoIAQgCTYCJCAEIAI2AiAgBCAINgIcIAQgBTYCGCAEIBs3AhAgBCAGNgIMIAQgATYCCCAEIBg3AwAgBEE4aiAHQeAA/AoAACAEQQg6AJgBQbisxwAMCgsgA0EROgCwRSADIAQ7ALFFIAMgBEEQdjoAs0UMAgsgAyAcQgiIIhg+ALVFIANBu8UAaiAYQjCIPAAAIANBucUAaiAYQiCIPQAAIAMgAToAtEUgA0EAOgCwRQwBCyADQQA2ArBFIAMgBK1C/wGDIBhCCIZCgICAgHCDIBlCCIZCgP7//w+DhIQ3ArRFCyADKQK0RSEbIAMoArBFIQYgAygCICIBQYCAgIB4ckGAgICAeEcEQCADKAIkIgJBBGsoAgAiBEF4cSIIQQRBCCAEQQNxIgQbIAFqSQ0OIARBACAIIAFBJ2pLGw0PIAIQtAILIAMoAnQiAUUNACABQRlsIgJBIWoiBEUNACADKAJwIAFBaGxqIgFBHGsoAgAiCEF4cSIJIARBBEEIIAhBA3EiCBtqSQ0NIAhBACAJIAJByABqSxsNDiABQRhrELQCCyAGQf8BcQR/QRAQfiIJRQ0BIAkgBTYCDCAJIBs3AgQgCSAGNgIAQoAGIRtBAAVBBQshASAbQiCIpyEIIBunIQVByNXEACEHQgAhGgwGCwALIANB8MgAahDoA0EEIQpBACEFQQQhAQwCCyADQRhqEOgDCyADIAQ6AJBVIAMgAy8B3FE7AJFVIAMgGzcCmFUgAyAGNgKUVSADIANB3tEAai0AADoAk1UgA0EYaiADQZDVAGoQnQQgAykDOCEbIAMpAzAhGSADLQAvIQkgAy0ALiEEIAMtAC0hByADLQAsIQogAygCKCELIAMoAiQhBiADKAIgIQggAygCHCEFIAMoAhghAQsgAUEGRwRAIApB/wFxIAdB/wFxQQh0ciAEQf8BcUEQdHIgCUEYdHIhCSAZQoCAgIBwgyEaIBmnIQcMAgsgBSEEIAgLIQIgBCACKAIsERMAIhhCgICAgAJYDQFBACEGQQMhAUEDDAILIBogB62E/RIgG/0eASEfDAMLIANBADYCiEkgA0EANgKASSADQoCAgIACIBh9NwP4SCADQgE3A/BIIANBGGogBCADQfDIAGogAigCMBEFACADKAIYIgFBBkYNASAD/QADMCEfIAMoAiwhCSADKAIoIQsgAygCJCEGIAMoAhwhBSADKAIgCyEIIAIoAgAiBwRAIAQgBxEDAAsgAigCBCICRQ0BIARBBGsoAgAiB0F4cSIKQQRBCCAHQQNxIgcbIAJqSQ0DIAdBACAKIAJBJ2pLGw0EIAQQtAIMAQsgAyAEIAIoAgwRAQAgAygCBCEKIAMoAgAhCQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAEIAIoAhARBABB/wFxQQFrDgkBAgMEBQYHCAkACyADQRhqIAQgAhDHBCADKAIkIQYgAygCICEIIAMoAhwhBSADKAIYIgFBBkcNHwJAIAqtIhkgCa1+IhhCIIhQBEAgGKciASAGTSICDQELQQAhC0ECIQEgBUUNHyAIIAVBARDWB0GAgICAeCEFDCELIAVBgICAgHhHDQkMHAsgA0EYaiAEIAIQxwQgAygCJCEGIAMoAiAhCCADKAIcIQUgAygCGCIBQQZHDR5BACELAkAgCUEASA0AIAqtIhggCUEBdK1+IhlCIIinDQAgGacgBk0NCgtBAiEBIAVFDR0gCCAFQQEQ1gdBgICAgHghBQwfCyADQRhqIAQgAhDHBCADKAIkIQYgAygCICEIIAMoAhwhBSADKAIYIgFBBkcNHQJAAkAgCa0iGUIDfiIcQiCIpw0AIAqtIhggHKetfiIcQiCIpw0AIBynIAZNDQELQQAhC0ECIQEgBUUNHSAIIAVBARDWB0GAgICAeCEFDB8LIAVBgICAgHhGDRogGUIDfiIZQiCIUARAIBmnrSAYfiIZQiCIUA0KCwwiCyADQRhqIAQgAhDHBCADKAIkIQYgAygCICEHIAMoAhwhBCADKAIYIgFBBkcEQCAD/QADMCEfIAMoAiwhCSADKAIoIQsgBCEFIAchCAweCwJAAkAgCUH/////A0sNACAJQQJ0rSAKrX4iGEIgiKcNACAYpyAGTQ0BC0EAIQtBgICAgHghBUECIQEgBEUNHiAHIARBARDWBwweC0GAgICAeCEFIARBgICAgHhHDRhBACELQQIhAQwdCyADQRhqIAQgAhCuBCADKAIkIQYgAygCICEIIAMoAhwhBSADKAIYIgFBBkcNGyAKrSIZIAmtfiIYQiCIUARAIBinIgEgBk0iAg0JC0EAIQsgBUUNGUECIQEgCCAFQQF0QQIQ1gdBgICAgHghBQwcCyADQRhqIAQgAhCuBCADKAIkIQYgAygCICEIIAMoAhwhBSADKAIYIgFBBkcNGkEAIQsCQCAJQQBIDQAgCq0iGCAJQQF0rX4iGUIgiKcNACAZpyAGTQ0JCyAFRQ0YQQIhASAIIAVBAXRBAhDWB0GAgICAeCEFDBsLIANBGGogBCACEK4EIAMoAiQhBiADKAIgIQggAygCHCEFIAMoAhgiAUEGRw0ZAkACQCAJrSIZQgN+IhxCIIinDQAgCq0iGCAcp61+IhxCIIinDQAgHKcgBk0NAQtBACELIAVFDRhBAiEBIAggBUEBdEECENYHQYCAgIB4IQUMGwsgBUGAgICAeEYNFiAZQgN+IhlCIIhQBEAgGaetIBh+IhlCIIhQDQkLDB4LIANBGGogBCACEK4EIAMoAiQhBiADKAIgIQggAygCHCEFIAMoAhgiAUEGRw0YAkAgCUH/////A0sNACAKrSIYIAlBAnStfiIZQiCIpw0AIBmnIAZNDQkLQQAhCyAFRQ0WQQIhASAIIAVBAXRBAhDWB0GAgICAeCEFDBkLIANBGGogBCACEK8EIAMoAiQhBiADKAIgIQggAygCHCEFIAMoAhgiAUEGRw0XAkACQCAJrSIZQgN+IhxCIIinDQAgCq0iGCAcp61+IhxCIIinDQAgHKcgBk0NAQtBACELIAVFDRZBAiEBIAggBUECdEEEENYHQYCAgIB4IQUMGQsgBUGAgICAeEYNFCAZQgN+IhlCIIhQBEAgGaetIBh+IhlCIIhQDQkLDBwLIANBGGogBCACEK8EIAMoAiQhBiADKAIgIQggAygCHCEFIAMoAhgiAUEGRw0WAkAgCUH/////A0sNACAKrSIYIAlBAnStfiIZQiCIpw0AIBmnIAZNDQkLQQAhCyAFRQ0UQQIhASAIIAVBAnRBBBDWB0GAgICAeCEFDBcLAkAgGEIgiFAEQCACDQEMHQsMGwsgA0EYaiAIIAFBAhCHASADKAIcIQcCQAJAAkAgCUH/////A0sNACAJQQJ0rSAZfiIYQiCIpw0AIAMoAiAiBiAYp08NAQsgAygCGCIARQ0BIAcgAEEBENYHDAELIAMoAhgiBEGAgICAeEcNCQsMHAsgBUGAgICAeEYNEQJAIAlBAXStIBh+IhlCIIhQBEAgGaciASAGTQ0BDBwLDBoLIANBGGogCCABQQMQhwEgAygCHCEHAkACQAJAIAlB/////wNLDQAgCUECdK0gGH4iGEIgiKcNACADKAIgIgYgGKdPDQELIAMoAhgiAEUNASAHIABBARDWBwwBCyADKAIYIgRBgICAgHhHDQkLDBsLIBmnIgEgBksNGSADQRhqIAggAUEAEIcBIAMoAhwhBwJAAkACQCAJQf////8DSw0AIAlBAnStIBh+IhhCIIinDQAgAygCICIGIBinTw0BCyADKAIYIgBFDQEgByAAQQEQ1gcMAQsgAygCGCIEQYCAgIB4Rw0JCwwaCyAFQYCAgIB4Rg0PAkAgGEIgiFAEQCACDQEMGgsMGAsgA0EYaiAIIAFBAhCGASADKAIcIQcCQAJAAkAgCUH/////A0sNACAJQQJ0rSAZfiIYQiCIpw0AIAMoAiAiBiAYp08NAQsgAygCGCIARQ0BIAcgAEEBENYHDAELIAMoAhgiBEGAgICAeEcNCQsMGQsgBUGAgICAeEYNDgJAIAlBAXStIBh+IhlCIIhQBEAgGaciASAGTQ0BDBkLDBcLIANBGGogCCABQQMQhgEgAygCHCEHAkACQAJAIAlB/////wNLDQAgCUECdK0gGH4iGEIgiKcNACADKAIgIgYgGKdPDQELIAMoAhgiAEUNASAHIABBARDWBwwBCyADKAIYIgRBgICAgHhHDQkLDBgLIBmnIgEgBksNFiADQRhqIAggAUEAEIYBIAMoAhwhBwJAAkACQCAJQf////8DSw0AIAlBAnStIBh+IhhCIIinDQAgAygCICIGIBinTw0BCyADKAIYIgBFDQEgByAAQQEQ1gcMAQsgAygCGCIEQYCAgIB4Rw0JCwwXCyAFQYCAgIB4Rg0MAkAgCUECdK0gGH4iGEIgiFAEQCAYpyIBIAZNDQEMFwsMFQsgA0EYaiAIIAFBARCGASADKAIcIQcCQCADKAIgIgYgAUkEQCADKAIYIgBFDQEgByAAQQEQ1gcMAQsgAygCGCIEQYCAgIB4Rw0JCwwWCyAZpyIBIAZLDRQgA0EYaiAIIAFBABDhAiADKAIcIQcCQAJAAkAgCUH/////A0sNACAJQQJ0rSAYfiIYQiCIpw0AIAMoAiAiBiAYp08NAQsgAygCGCIARQ0BIAcgAEEBENYHDAELIAMoAhgiBEGAgICAeEcNCQsMFQsgBUGAgICAeEYNCgJAIAlBAnStIBh+IhhCIIhQBEAgGKciASAGTQ0BDBULDBMLIANBGGogCCABQQEQ4QIgAygCHCEHIAMoAiAiBiABSQRAIAMoAhgiAEUNFSAHIABBARDWBwwVCyADKAIYIgRBgICAgHhGDRQgBUUNCSAIQQRrKAIAIgFBeHEiAiAFQQJ0IgVBBEEIIAFBA3EiARtqSQ0QIAFFIAIgBUEnak1yDQgMEQsgBUUNCCAIQQRrKAIAIgFBeHEiAkEEQQggAUEDcSIBGyAFakkNDyABRSACIAVBJ2pNcg0HDBALIAVFDQcgCEEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBWpJDQ4gAUUgAiAFQSdqTXINBgwPCyAFRQ0GIAhBBGsoAgAiAUF4cSICQQRBCCABQQNxIgEbIAVqSQ0NIAFFIAIgBUEnak1yDQUMDgsgBUUNBSAIQQRrKAIAIgFBeHEiAiAFQQF0IgVBBEEIIAFBA3EiARtqSQ0MIAFFIAIgBUEnak1yDQQMDQsgBUUNBCAIQQRrKAIAIgFBeHEiAiAFQQF0IgVBBEEIIAFBA3EiARtqSQ0LIAFFIAIgBUEnak1yDQMMDAsgBUUNAyAIQQRrKAIAIgFBeHEiAiAFQQF0IgVBBEEIIAFBA3EiARtqSQ0KIAFFIAIgBUEnak1yDQIMCwsgBUUNAiAIQQRrKAIAIgFBeHEiAiAFQQF0IgVBBEEIIAFBA3EiARtqSQ0JIAFFIAIgBUEnak1yDQEMCgsgBUUNASAIQQRrKAIAIgFBeHEiAiAFQQJ0IgVBBEEIIAFBA3EiARtqSQ0IIAFFDQAgAiAFQSdqSw0JCyAIELQCCyAAIAo2AhAgACAJNgIMIAAgBjYCCCAAIAc2AgQgACAENgIADAULQQAhCwtBAiEBQYCAgIB4IQUMAgtBgICAgHghBQwBCyAD/QADMCEfIAMoAiwhCSADKAIoIQsLIAMgH/0LAzAgAyAJNgIsIAMgCzYCKCADIAY2AiQgAyAINgIgIAMgBTYCHCADIAE2AhgjAEHQAGsiASQAIAFBDGoQowkgAUHIAGogA0EYaiICQSBqKQIANwIAIAFBOGogAkEQav0AAgD9CwIAIAEgAv0AAgD9CwIoQcgAEH4iAkUEQAALIAJB9LvHADYCACACIAEpAgw3AgQgAiABKQIkNwIcIAJBDGogAUEUav0AAgD9CwIAIAJBJGogAUEsav0AAgD9CwIAIAJBNGogAUE8av0AAgD9CwIAIAJBxABqIAFBzABqKAIANgIAIAFB0ABqJAAgAEGAgICAeDYCACAAIAI2AgQLIANBsNUAaiQADwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALQYTWxAAQpAoACyABIAZBlNbEABCiCgALQaTWxABBL0HU1sQAEN4HAAvIWgQtfwd9AXsBfiMAQZAEayIGJABBABD3CSEIQQAQ9wkhByAGQcADakEAOgAAIAZCADcDuAMgAhCDCyEOIAMQgwshIyAIQYQITwRAIAgQzQcLIAdBhAhPBEAgBxDNBwsgAq0gA61CIIaEITsCQCAEQQFxRQ0AIAVB/OXAAEEDEKwJIgkQogkhA0H40MkALQAAIQhB+NDJAEEAOgAAQfzQyQAoAgBB/NDJAEEANgIAIAMgCBshCgJAAkAgCEUEQCAKEIULRQRAQQEhDQwDCyAKQYMISw0BDAILIApBhAhJDQELIAoQzQcLIAlBhAhPBEAgCRDNBwsgBUH/5cAAQQMQrAkiCRCiCSEDQfjQyQAtAAAhCEH40MkAQQA6AABB/NDJACgCAEH80MkAQQA2AgAgAyAIGyEHAn8CQAJAIAhFBEAgBxCFC0UEQEEBIQ9BAgwECyAHQYMISw0BDAILIA0gB0GECEkNAhoLIAcQzQcLIA0LISYgCUGECE8EQCAJEM0HCyAFQYDOwQBBBBCsCSIJEKIJIQNB+NDJAC0AACEIQfjQyQBBADoAAEH80MkAKAIAQfzQyQBBADYCACADIAgbIQICQAJAIAhFBEAgAhCFC0UEQEEDISZBASERDAMLIAJBgwhLDQEMAgsgAkGECEkNAQsgAhDNBwsgCUGECE8EQCAJEM0HC0EAIQkgBUGUzsEAQQQQrAkiGRCiCSEIQfjQyQAtAAAhC0H40MkAQQA6AABB/NDJACgCAEH80MkAQQA2AgAgCCALGyEDAkACQCALRQRAIAMQhQtFBEBBAyEmQQEhCQwDCyADQYMISw0BDAILIANBhAhJDQELIAMQzQcLIBlBhAhPBEAgGRDNBwsgBUGgiMgAQQcQrAkiFhCiCSELQfjQyQAtAAAhGUH40MkAQQA6AABB/NDJACgCAEH80MkAQQA2AgAgCyAZGyEIAkACQCAZRQRAIAgQhQtFBEBBASExDAMLIAhBgwhLDQEMAgsgCEGECEkNAQsgCBDNBwsgFkGECEkNACAWEM0HCyAGQcwBaiAGQcADai0AADoAACAGQc8BaiAGQYICai0AADoAACAGIAYpA7gDNwLEASAGIAYvAIACOwDNASAGIDs3ArwBIAYgJjYCuAEgBiABNgK0ASAGQYCAgIB4NgKkASAGQYCAgIB4NgKYASAGQgQ3ApABIAZCADcCiAEgBkKAgICAwAA3AoABIAZCBDcCeCAGQgA3AnAgBkKAgICAwAA3AmggBkIENwJgIAZCADcCWCAGQoCAgIDAADcCUCAGIAg2AkwgBiAxNgJIIAZBADYCPCAGQQA2AjQgBkEANgIsIAYgAzYCKCAGIAk2AiQgBiACNgIgIAYgETYCHCAGIAc2AhggBiAPNgIUIAYgCjYCECAGIA02AgwgBiAjIA4gDiAjSxtBAnY2ArABIAZCgICAgCA3ArACIAZCAjcCqAIgBkIANwKgAiAGQoCAgIAgNwKYAiAGQgQ3ApACIAZCADcCiAIgBkKAgICAwAA3AoACIAZCADcCuAIgBiAxOgDAAyAGICY2ArwDIAYgATYCuAMgBkGAAmogBkG4A2oQkwIgBkEANgLIAiAGQoCAgIDAADcCwAIgBkEANgLUAiAGQoCAgIDAADcCzAIgBkEANgLgAiAGQoCAgIDAADcC2AIgBkEANgLsAiAGQoCAgIDAADcC5AIgBkEANgL4AiAGQoCAgIDAADcC8AIgBkEANgKEAyAGQoCAgIDAADcC/AIgBkEANgKQAyAGQoCAgIDAADcCiAMgBkEANgKcAyAGQoCAgIDAADcClAMgBkEANgKoAyAGQoCAgIAgNwKgAyAGQQA2ArQDIAZCgICAgMAANwKsAwJAAkACQAJAIAFFBEBBBCEkQQQhLEEEIRtBBCEWQQQhGQwBCyAGQcQBaiEnIAZBgAFqITJBACEjQQQhJAJAA0AgHEGAgAQgASAXayICIAJBgIAETxsiDEEDbCIQSQRAIBAgHCIDayIJIAYoAsACIANrSwRAIAZBwAJqIAMgCUEEQQQQ0AUgBigCxAIhJCAGKALIAiEDCyAkIANBAnRqIQggCUECTwR/IBAgHEF/c2pBAnQiAgRAIAhBACAC/AsACyADIAlqIgJBAWshAyAkIAJBAnRqQQRrBSAIC0EANgIAIAYgA0EBaiIcNgLIAiAGKALUAiEjCyAMICNLBEAgDCAjIgNrIgcgBigCzAIgA2tLBEAgBkHMAmogAyAHQQRBBBDQBSAGKALUAiEDCyAGKALQAiIIIANBAnRqIQkgB0ECTwR/IAwgI0F/c2pBAnQiAgRAIAlBACAC/AsACyADIAdqIgJBAWshAyAIIAJBAnRqQQRrBSAJC0EANgIAIAYgA0EBaiIjNgLUAgsgBigC4AIiDyAQSQRAIBAgDyIDayIHIAYoAtgCIANrSwRAIAZB2AJqIAMgB0EEQQQQ0AUgBigC4AIhAwsgBigC3AIiCCADQQJ0aiEJIAdBAk8EfyAQIA9Bf3NqQQJ0IgIEQCAJQQAgAvwLAAsgAyAHaiICQQFrIQMgCCACQQJ0akEEawUgCQtBADYCACAGIANBAWoiDzYC4AILIAYoAuwCIg0gEEkEQCAQIA0iA2siByAGKALkAiADa0sEQCAGQeQCaiADIAdBBEEEENAFIAYoAuwCIQMLIAYoAugCIgggA0ECdGohCSAHQQJPBH8gECANQX9zakECdCICBEAgCUEAIAL8CwALIAMgB2oiAkEBayEDIAggAkECdGpBBGsFIAkLQQA2AgAgBiADQQFqIg02AuwCCyAMQQJ0IgggBigC+AIiDksEQCAIIA4iA2siCyAGKALwAiADa0sEQCAGQfACaiADIAtBBEEEENAFIAYoAvgCIQMLIAYoAvQCIgkgA0ECdGohByALQQJPBH8gCCAOQX9zakECdCICBEAgB0EAIAL8CwALIAMgC2oiAkEBayEDIAkgAkECdGpBBGsFIAcLQQA2AgAgBiADQQFqIg42AvgCCwJAAkAgECAcTQRAIAYoAsQCISQgBkEMaiAXIAwQkgVBBCEHIAxBBHQhE0ECIBAgEEECTRtBA25BBHQhC0EAIRsgBigChAEhCSAGKAKIASEWICQhAkEAIQMCQAJAAkADQCAHIBZLDQMgAyATRg0CIAMgCWoiGUEIaioCACEzIAIgGSoCADgCACACQQRqIBlBBGoqAgA4AgAgAyALRg0BIAJBCGogMzgCACACQQxqIQIgG0EDaiEbIAdBBGohByATIANBEGoiA0cNAAsgDCAjTQRAIAYoAtACISwgBkEMaiAXIAwQkgUgDEECdCEqIAYoAoQBQQxqIQdBACEDIAYoAogBIRkCQANAAn8CQCAZIANBBGoiAk8EQCAHKAIAIgtB//8BcUUEQCALQRB0DAMLIAtB/wdxIRYgC0GAgAJxIQkgC0GA+AFxIgtBgPgBRgRAIAlBEHQiCUGAgID8B3IgFkUNAxogCSAWQQ10ckGAgID+B3IMAwsgCUEQdCEJIAtFDQEgC0ENdEGAgID8AHEgFkENdHJBgICAwANqIAlyDAILIAIgGUHo3MEAEKIKAAsgCUGAgIDYA3IgFmdBEGsiCUEXdGsgFiAJQf//A3FBCGp0Qf///wNxcgshCSADICpGDQEgAyAsaiAJNgIAIAdBEGohByACIgMgKkcNAAsgDyAQTwRAIAYoAtwCIRkgBkEMaiAXIAwQkgVBACERQQQhCSAGKAKQASEbIAYoApQBIQ8gGSEDAkACQAJAAkACQAJAAkACQAJAAkADQAJ/AkAgCSAPTQRAIBsoAgAiEkEQdiEKIBJBEHQgEkH//wFxRQ0CGiASQf8HcSELIBJBgIACcSEHIBJBgPgBcSICQYD4AUYEQCAHQRB0IgJBgICA/AdyIAtFDQMaIAIgC0ENdHJBgICA/gdyDAMLIAdBEHQhByACRQ0BIAJBDXRBgICA/ABxIAtBDXRyQYCAgMADaiAHcgwCCyAJIA9BiN3BABCiCgALIAsgC2dBEGsiAkH//wNxQQhqdEH///8DcSAHQYCAgNgDciACQRd0a3ILIRYgG0EEaigCACEeAn8gCkH//wFxBEAgCkH/B3EhCyAKQYCAAnEhByAKQYD4AXEiAkGA+AFHBEAgB0EQdCIHIAJBDXRBgICA/ABxIAtBDXRyQYCAgMADanIgAg0CGiALIAtnQRBrIgJB//8DcUEIanRB////A3EgB0GAgIDYA3IgAkEXdGtyDAILIAdBEHQiAiAKQQ10ckGAgID+B3IgCw0BGiACQYCAgPwHcgwBCyASQYCAfHELIQsCfyAeQf//AXEEQCAeQf8HcSEKIB5BgIACcSEHIB5BgPgBcSICQYD4AUcEQCAHQRB0IgcgAkENdEGAgID8AHEgCkENdHJBgICAwANqciACDQIaIAogCmdBEGsiAkH//wNxQQhqdEH///8DcSAHQYCAgNgDciACQRd0a3IMAgsgB0EQdCICIApBDXRyQYCAgP4HciAKDQEaIAJBgICA/AdyDAELIB5BEHQLIQIgECARRg0BIAMgFjYCACADQQhqIAI2AgAgA0EEaiALNgIAIANBDGohAyAJQQRqIQkgG0EQaiEbIBAgEUEDaiIRRw0ACyANIBBJDQEgBigC6AIhFiAGQQxqIBcgDBCSBUEAIQpBBCECIBYhA0EAIQcDQCACIAYoApQBIglLDQMgBkG4A2ogBigCkAEgCmpBBBClAyAHIBBGDQQgAyAGKgK4AzgCACADQQRqIAYpArwDNwIAIANBDGohAyACQQRqIQIgCkEQaiEKIBAgB0EDaiIHRw0ACyAIIA5LDQQgBigC9AIhGyAGQQxqIBcgDBCSBSAGKAKQAUEMaiEHQQAhAiAGKAKUASELQQAhAwNAIAJBBGoiCSALSw0GIAMgE0YNB0MAAIA/IAMgB2ooAgAiAkEKdv0RIAL9HAH9DP8DAAD/AwAA/wMAAP8DAAD9Tv37Af0MAMB/RADAf0QAwH9EAMB/RP3nASI6IDr95AH9DAAAgL8AAIC/AACAvwAAgL/95AEiOv0fASIzi5MgOv0fACI1i5MiNoxDAAAAABCfCSE3IAMgG2ogAkEUdrNDAPB/RZVDAAAAP5RD2w9JQJQiNBCsAiI4IDMgNyA3jCIzIDr9DAAAAAAAAAAAAAAAAAAAAAD9Rv1NIjr9xwH9GwJBAXEbkiI5IDYgNpQgOSA5lCA1IDcgMyA6/RsAQQFxG5IiNSA1lJKSkSIzlZT9EyA4IDUgM5WU/SABIDggNiAzlZT9IAIgNBCuAv0gA/0LAgAgCSECIBMgA0EQaiIDRw0AC0EEIS1BACELQQAhEUEEIQ9BACEhQQQhLkEAIShBBCEvICZFDRICQCAMQQlsIiggBigChAMiA00EQCAGKAKAAyEvDAELIAMhAiAoIANrIgcgBigC/AIgA2tLBEAgBkH8AmogAyAHQQRBBBDQBSAGKAKEAyECCyAGKAKAAyIvIAJBAnRqIQkgB0ECTwR/ICggA0F/c2pBAnQiAwRAIAlBACAD/AsACyACIAdqIgNBAWshAiAvIANBAnRqQQRrBSAJC0EANgIAIAYgAkEBaiIDNgKEAwsgAyAoSQ0HIAZBDGoQzwUgJ0IANwIAICdBCGoiIkEAOgAAIAYoAgxFDREgBigCECAXQQJ0IAwgF2pBAnQQoAkhEwJAIAYoAogBIgMgCE8EQCAGIAg2AogBIAghCQwBCyAIIAMiAmsiDyAGKAKAASADa0sEQCAyIAMgD0EEQQQQ0AUgBigCiAEhAgsgBigChAEiDSACQQJ0Ig5qIQcgD0ECTwRAIAggA0F/c2pBAnQiCQRAIAdBACAJ/AsACyAMQQR0IANBAnRrIA1qIA5qQQRrIQcgAiAPakEBayECCyAHQQA2AgAgBiACQQFqIgk2AogBIAggCUsNCQsgBigChAEhByAGIBMQgwsiAjYCiAQgBiAINgKMBCACIAhHDQkgByAIIBMQqwogDEEkbCECQQAhD0EBIQpBACENAkACQAJAAkADQCAKQQFrIAlPDQEgAiANRg0EIA0gL2oiDkEIakMAAIA/IAcoAgAiA0EbdkEPaxDlBkMAAH9DlSI0IANBEHZB/wFxs5QiM4wgMyADQYCAgCBxGzgCACAOQQRqIDQgA0EIdkH/AXGzlCIzjCAzIANBgICAEHEbOAIAIA4gNCADQf8BcbOUIjOMIDMgA0GAgIAIcRs4AgAgCSAKTQ0DIA5BFGpDAACAPyAHQQRqKAIAIgNBG3ZBD2sQ5QZDAAB/Q5UiNCADQRB2Qf8BcbOUIjOMIDMgA0GAgIAgcRs4AgAgDkEQaiA0IANBCHZB/wFxs5QiM4wgMyADQYCAgBBxGzgCACAOQQxqIDQgA0H/AXGzlCIzjCAzIANBgICACHEbOAIAIApBAWogCU8NAiAOQSBqQwAAgD8gB0EIaigCACIDQRt2QQ9rEOUGQwAAf0OVIjQgA0EQdkH/AXGzlCIzjCAzIANBgICAIHEbOAIAIA5BHGogNCADQQh2Qf8BcbOUIjOMIDMgA0GAgIAQcRs4AgAgDkEYaiA0IANB/wFxs5QiM4wgMyADQYCAgAhxGzgCACAKQQRqIQogB0EQaiEHIA9BCWohDyACIA1BJGoiDUcNAAsgE0GECEkNFSATEM0HDBULIApBAWshCgwBCyAKQQFqIQoLIAogCUH43cEAEL8HAAsgDyAoQYjewQAQvwcACyARIBBBmN3BABC/BwALIBAgDUGItMEAEKIKAAsgAiAJQajdwQAQogoACyAHIBBBuN3BABC/BwALIAggDkGYtMEAEKIKAAsgCSALQcjdwQAQogoACyACIAhB2N3BABC/BwALICggA0GotMEAEKIKAAsgCCAJQejdwQAQogoACwwMCyAQIA9B+LPBABCiCgALIAwgDEH43MEAEL8HAAsgDCAjQeizwQAQogoACyAbQQJqIBBB2NzBABC/BwALIBsgEEHI3MEAEL8HAAsgByAWQbjcwQAQogoACyAQIBxB2LPBABCiCgALICZBAUYEQEEEIQ8MAQsCQCAMQQ9sIiEgBigCkAMiA00EQCAGKAKMAyEuDAELIAMhAiAhIANrIgcgBigCiAMgA2tLBEAgBkGIA2ogAyAHQQRBBBDQBSAGKAKQAyECCyAGKAKMAyIuIAJBAnRqIQkgB0ECTwR/ICEgA0F/c2pBAnQiAwRAIAlBACAD/AsACyACIAdqIgNBAWshAiAuIANBAnRqQQRrBSAJC0EANgIAIAYgAkEBaiIDNgKQAwsCQAJAAkACQAJAAkAgAyAhTwRAIAZBDGoQzwUgJ0IANwIAICJBADoAACAGKAIMRQ0GIAYoAhAgF0ECdCIDIAwgF2pBAnQiAhCgCSElIAYoAhRBAUcEQCAlQYMITQ0HDAYLIAYoAhggAyACEKAJISkgBkEMaiAMEPcEIAggBigCiAEiGksNASAGKAKEASEDIAYgJRCDCyICNgKIBCAGIAg2AowEIAIgCEcNCyADIAggJRCrCiAIIAYoApQBIh9LDQIgBigCkAEhMCAGICkQgwsiAjYCiAQgBiAINgKMBCACIAhHDQsgMCAIICkQqwogA0EMaiETIAxBPGwhEiAhQQNrIQdBASEKQQAhA0EAIQkCfwJAAkACQAJAAn8CQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQANAIAdBAWoiD0EDbiAHQQJqIg5BA24gCkECaiIeIBpPDRcgCSASRg0YIAkgLmoiFEEIakMAAIA/IBEgE2ooAgAiIEEbdkEPaxDlBkMAAH9DlSI0ICBBEHZB/wFxs5QiM4wgMyAgQYCAgCBxGzgCACAUQQRqIDQgIEEIdkH/AXGzlCIzjCAzICBBgICAEHEbOAIAIBQgNCAgQf8BcbOUIjOMIDMgIEGAgIAIcRs4AgAgCkEBayAfTw0CQwAAgD8gESAwaiIgKAIAIhhBG3ZBD2sQ5QYhMyAOQQNJDQUgFEEMaiAzQwAAf0OVIjQgGEH/AXGzlCIzjCAzIBhBgICACHEbOAIAIA9BA0kNCiAUQRBqIDQgGEEIdkH/AXGzlCIzjCAzIBhBgICAEHEbOAIAIAdBA0kNDyAUQRRqIDQgGEEQdkH/AXGzlCIzjCAzIBhBgICAIHEbOAIAIAogH08NBEMAAIA/ICBBBGooAgAiGEEbdkEPaxDlBiEzQQJqIg9BA0YNBiAUQRhqIDNDAAB/Q5UiNCAYQf8BcbOUIjOMIDMgGEGAgIAIcRs4AgBBAmoiDkEDRg0LIBRBHGogNCAYQQh2Qf8BcbOUIjOMIDMgGEGAgIAQcRs4AgAgB0EDbkECaiICQQNGDRAgFEEgaiA0IBhBEHZB/wFxs5QiM4wgMyAYQYCAgCBxGzgCACAKQQFqIB9PDQNDAACAPyAgQQhqKAIAIg1BG3ZBD2sQ5QYhMyAPQQRGDQcgFEEkaiAzQwAAf0OVIjQgDUH/AXGzlCIzjCAzIA1BgICACHEbOAIAIA5BBEYNDCAUQShqIDQgDUEIdkH/AXGzlCIzjCAzIA1BgICAEHEbOAIAIAJBBEYNESAUQSxqIDQgDUEQdkH/AXGzlCIzjCAzIA1BgICAIHEbOAIAIB4gH08NAUMAAIA/ICBBDGooAgAiDUEbdkEPaxDlBiEzIA9BBUYNCCAUQTBqIDNDAAB/Q5UiNCANQf8BcbOUIjOMIDMgDUGAgIAIcRs4AgAgDkEFRg0NIBRBNGogNCANQQh2Qf8BcbOUIjOMIDMgDUGAgIAQcRs4AgAgAkEFRg0SIBRBOGogNCANQRB2Qf8BcbOUIjOMIDMgDUGAgIAgcRs4AgAgCkEEaiEKIBFBEGohESADQQ9qIQMgB0EPayEHIBIgCUE8aiIJRw0ACyApQYQITwRAICkQzQcLICVBgwhLDRgMGQsgCkECaiEKDAILIApBAWshCgwBCyAKQQFqIQoLIAogH0HY3sEAEL8HAAsgA0EDagwDCyADQQZqDAILIANBCWoMAQsgA0EMagsgIUHo3sEAEL8HAAsgA0EEagwDCyADQQdqDAILIANBCmoMAQsgA0ENagsgIUH43sEAEL8HAAsgA0EFagwDCyADQQhqDAILIANBC2oMAQsgA0EOagsgIUGI38EAEL8HAAsgISADQbi0wQAQogoACyAIIBpBmN7BABCiCgALIAggH0Go3sEAEKIKAAsgHiAaQbjewQAQvwcACyADICFByN7BABC/BwALICUQzQcLICZBAk0EQEEAIRFBBCEPDAELAkAgDEEVbCIRIAYoApwDIgNNBEAgBigCmAMhDwwBCyADIQIgESADayIHIAYoApQDIANrSwRAIAZBlANqIAMgB0EEQQQQ0AUgBigCnAMhAgsgBigCmAMiDyACQQJ0aiEJIAdBAk8EfyARIANBf3NqQQJ0IgMEQCAJQQAgA/wLAAsgAiAHaiIDQQFrIQIgDyADQQJ0akEEawUgCQtBADYCACAGIAJBAWoiAzYCnAMLAkACQAJAAkACQAJAAn8CQAJAAn8CQAJAIAMgEU8EQCAGQQxqIgkQzwUgJ0IANwIAICJBADoAACAGKAIcQQFHDQ0gBigCICAXQQJ0IgMgDCAXakECdCICEKAJIRQgBigCJEEBRw0LIAYoAiggAyACEKAJIRggCSAMEPcEIAYoAogBIisgCE8EQCAGKAKEASElIAYgFBCDCyICNgKIBCAGIAg2AowEIAIgCEYEQCAlIAggFBCrCiAGKAKUASIfIAhPBEAgBigCkAEhKSAGIBgQgwsiAjYCiAQgBiAINgKMBCACIAhGBEAgKSAIIBgQqwogEUEMayEKQQAhAkEAIQlBACEOQQAhA0EAIQ0CfwJAA0AgCkEDbiAKQQFqIiJBA24gCkECaiIeQQNuAkACQCACICtPDQACQCAMIA1LBEAgDiAPaiIVQQhqQwAAgD8gCSAlaiIaKAIAIgdBG3ZBD2sQ5QZDAAB/Q5UiNCAHQRB2Qf8BcbOUIjOMIDMgB0GAgIAgcRs4AgAgFUEEaiA0IAdBCHZB/wFxs5QiM4wgMyAHQYCAgBBxGzgCACAVIDQgB0H/AXGzlCIzjCAzIAdBgICACHEbOAIAIAJBAWoiByArSQ0BIAchAgwCCyADIBFBiODBABC/BwALIBVBFGpDAACAPyAaQQRqKAIAIhJBG3ZBD2sQ5QZDAAB/Q5UiNCASQRB2Qf8BcbOUIjOMIDMgEkGAgIAgcRs4AgAgFUEQaiA0IBJBCHZB/wFxs5QiM4wgMyASQYCAgBBxGzgCACAVQQxqIDQgEkH/AXGzlCIzjCAzIBJBgICACHEbOAIAAkAgKyACQQJqIhJLBEAgFUEgakMAAIA/IBpBCGooAgAiHUEbdkEPaxDlBkMAAH9DlSI0IB1BEHZB/wFxs5QiM4wgMyAdQYCAgCBxGzgCACAVQRxqIDQgHUEIdkH/AXGzlCIzjCAzIB1BgICAEHEbOAIAIBVBGGogNCAdQf8BcbOUIjOMIDMgHUGAgIAIcRs4AgAgAkEDaiArTw0BIBVBLGpDAACAPyAaQQxqKAIAIhpBG3ZBD2sQ5QZDAAB/Q5UiNCAaQRB2Qf8BcbOUIjOMIDMgGkGAgIAgcRs4AgAgFUEoaiA0IBpBCHZB/wFxs5QiM4wgMyAaQYCAgBBxGzgCACAVQSRqIDQgGkH/AXGzlCIzjCAzIBpBgICACHEbOAIAIAIgH0kNAwwUCyACQQJqIQIMAQsgAkEDaiECCyACICtB+N/BABC/BwALQwAAgD8gCSApaiIaKAIAIh1BG3ZBD2sQ5QYhMwJAAkAgHkEDTwRAIBVBMGogM0MAAH9DlSI0IB1B/wFxs5QiM4wgMyAdQYCAgAhxGzgCACAiQQNJDQEgFUE0aiA0IB1BCHZB/wFxs5QiM4wgMyAdQYCAgBBxGzgCACAKQQNPDQIgA0EOagwFCyADQQxqDA8LIANBDWoMCwsgFUE4aiA0IB1BEHZB/wFxs5QiM4wgMyAdQYCAgCBxGzgCACAHIB9PDQ5DAACAPyAaQQRqKAIAIiJBG3ZBD2sQ5QYhM0EFaiIeQQZGDQwgFUE8aiAzQwAAf0OVIjQgIkH/AXGzlCIzjCAzICJBgICACHEbOAIAQQVqIhNBBkYNCSAVQUBrIDQgIkEIdkH/AXGzlCIzjCAzICJBgICAEHEbOAIAQQVqIgdBBkcEQCAVQcQAaiA0ICJBEHZB/wFxs5QiM4wgMyAiQYCAgCBxGzgCACASIB9PDRBDAACAPyAaQQhqKAIAIhJBG3ZBD2sQ5QYhMyAeQQdGDQwgFUHIAGogM0MAAH9DlSI0IBJB/wFxs5QiM4wgMyASQYCAgAhxGzgCACATQQdGDQkgFUHMAGogNCASQQh2Qf8BcbOUIjOMIDMgEkGAgIAQcRs4AgAgB0EHRg0CIBVB0ABqIDQgEkEQdkH/AXGzlCIzjCAzIBJBgICAIHEbOAIAIAJBBGohAiAJQRBqIQkgDkHUAGohDiADQRVqIQMgCkEVayEKIA1BAWoiDSAMTw0SDAELCyADQRFqDAELIANBFGoLIBFB6N/BABC/BwALDBQLIAggH0Go38EAEKIKAAsMEgsgCCArQZjfwQAQogoACyARIANByLTBABCiCgALIANBE2oMAQsgA0EQagsgEUHY38EAEL8HAAsgA0ESagwBCyADQQ9qCyARQcjfwQAQvwcACyACQQFqIQIMAQsgAkECaiECCyACIB9BuN/BABC/BwALIBhBhAhPBEAgGBDNBwsgFEGDCEsNAQwCCyAUQYMITQ0BCyAUEM0HCwJAIDFFBEBBAiEJDAELAkAgBigCqAMiAyAMTwRAIAYoAqQDIQkMAQsgAyECIAwgA2siCyAGKAKgAyADa0sEQCAGQaADaiADIAtBAkECENAFIAYoAqgDIQILIAYoAqQDIgkgAkEBdGohByALQQJPBH8gDCADQX9zakEBdCIDBEAgB0EAIAP8CwALIAIgC2oiA0EBayECIAkgA0EBdGpBAmsFIAcLQQA7AQAgBiACQQFqIgM2AqgDCwJAAkACQCADIAxPBEAgBkEMahDPBSAnQgA3AgAgJ0EIaiINQQA6AAAgBigCSEUNAyAGKAJMIBdBAnQgDCAXakECdBCgCSETAkAgBigCiAEiAyAITwRAIAYgCDYCiAEgCCEKDAELIAggAyICayIKIAYoAoABIANrSwRAIDIgAyAKQQRBBBDQBSAGKAKIASECCyAGKAKEASIcIAJBAnQiDmohByAKQQJPBEAgCCADQX9zakECdCILBEAgB0EAIAv8CwALIAxBBHQgA0ECdGsgHGogDmpBBGshByACIApqQQFrIQILIAdBADYCACAGIAJBAWoiCjYCiAEgCCAKSw0CCyAGKAKEASEDIAYgExCDCyICNgKIBCAGIAg2AowEIAIgCEcNCCADIAggExCrCiADQQhqIQJBACEDIAkhBwJAA0AgA0ECaiILIApPDQQgAyAqRg0BIAcgAigCADsBACACQRBqIQIgB0ECaiEHICogA0EEaiIDRw0ACyATQYQISQ0EIBMQzQcMBAsgDCAMQbjgwQAQvwcACyAMIANB2LTBABCiCgALIAggCkGY4MEAEKIKAAsgCyAKQajgwQAQvwcACwJAIAYoArQDIgMgDE8EQCAGKAKwAyEtDAELIAMhAiAMIANrIgsgBigCrAMgA2tLBEAgBkGsA2ogAyALQQRBBBDQBSAGKAK0AyECCyAGKAKwAyItIAJBAnRqIQcgC0ECTwR/IAwgA0F/c2pBAnQiAwRAIAdBACAD/AsACyACIAtqIgNBAWshAiAtIANBAnRqQQRrBSAHC0EANgIAIAYgAkEBaiIDNgK0AwsCQAJAAkAgAyAMTwRAIAZBDGoQzwUgJ0IANwIAIA1BADoAACAGKAJIRQ0DIAYoAkwgF0ECdCAMIBdqQQJ0EKAJIQoCQCAGKAKIASIDIAhPBEAgBiAINgKIASAIIQcMAQsgCCADIgJrIg0gBigCgAEgA2tLBEAgMiADIA1BBEEEENAFIAYoAogBIQILIAYoAoQBIhwgAkECdCIOaiEHIA1BAk8EQCAIIANBf3NqQQJ0IgsEQCAHQQAgC/wLAAsgDEEEdCADQQJ0ayAcaiAOakEEayEHIAIgDWpBAWshAgsgB0EANgIAIAYgAkEBaiIHNgKIASAHIAhJDQILIAYoAoQBIQMgBiAKEIMLIgI2AogEIAYgCDYCjAQgAiAIRw0IIAMgCCAKEKsKIANBDGohAkEAIQMCQANAIANBA2oiCyAHTw0EIAMgKkYNASADIC1qIAIoAgA2AgAgAkEQaiECICogA0EEaiIDRw0ACyAKQYQISQ0EIAoQzQcMBAsgDCAMQejgwQAQvwcACyAMIANB6LTBABCiCgALIAggB0HI4MEAEKIKAAsgCyAHQdjgwQAQvwcACyAGKALIAiEcIAwhCwsgECAcTQRAIAYgCzYChAQgBiAtNgKABCAGIAs2AvwDIAYgCTYC+AMgBiARNgL0AyAGIA82AvADIAYgITYC7AMgBiAuNgLoAyAGICg2AuQDIAYgLzYC4AMgBiAINgLcAyAGIBs2AtgDIAYgEDYC1AMgBiAWNgLQAyAGIBA2AswDIAYgGTYCyAMgBiAMNgLEAyAGICw2AsADIAYgEDYCvAMgBiAkNgK4AyAGQYACaiAXIAwgBkG4A2oQ7wEgDCAXaiIXIAFPDQIMAQsLIBAgHEH4tMEAEKIKAAsgBigCrAMiAkUNACAGKAKwAyIIQQRrKAIAIgFBeHEiAyACQQJ0IgJBBEEIIAFBA3EiARtqSQ0CIAFBACADIAJBJ2pLGw0DIAgQtAILIAYoAqADIgIEQCAGKAKkAyIIQQRrKAIAIgFBeHEiAyACQQF0IgJBBEEIIAFBA3EiARtqSQ0CIAFBACADIAJBJ2pLGw0DIAgQtAILIAYoApQDIgIEQCAGKAKYAyIIQQRrKAIAIgFBeHEiAyACQQJ0IgJBBEEIIAFBA3EiARtqSQ0CIAFBACADIAJBJ2pLGw0DIAgQtAILIAYoAogDIgIEQCAGKAKMAyIIQQRrKAIAIgFBeHEiAyACQQJ0IgJBBEEIIAFBA3EiARtqSQ0CIAFBACADIAJBJ2pLGw0DIAgQtAILIAYoAvwCIgIEQCAGKAKAAyIIQQRrKAIAIgFBeHEiAyACQQJ0IgJBBEEIIAFBA3EiARtqSQ0CIAFBACADIAJBJ2pLGw0DIAgQtAILIAYoAvACIgIEQCAbQQRrKAIAIgFBeHEiAyACQQJ0IgJBBEEIIAFBA3EiARtqSQ0CIAFBACADIAJBJ2pLGw0DIBsQtAILIAYoAuQCIgIEQCAWQQRrKAIAIgFBeHEiAyACQQJ0IgJBBEEIIAFBA3EiARtqSQ0CIAFBACADIAJBJ2pLGw0DIBYQtAILIAYoAtgCIgIEQCAZQQRrKAIAIgFBeHEiAyACQQJ0IgJBBEEIIAFBA3EiARtqSQ0CIAFBACADIAJBJ2pLGw0DIBkQtAILIAYoAswCIgIEQCAsQQRrKAIAIgFBeHEiAyACQQJ0IgJBBEEIIAFBA3EiARtqSQ0CIAFBACADIAJBJ2pLGw0DICwQtAILIAYoAsACIgIEQCAkQQRrKAIAIgFBeHEiAyACQQJ0IgJBBEEIIAFBA3EiARtqSQ0CIAFBACADIAJBJ2pLGw0DICQQtAILIAZB4AFqIgMgBkGMAmoiAUEQav0AAgD9CwMAIAZB8AFqIgIgAUEgav0AAgD9CwMAIAYgAf0AAgD9CwPQASAGKAKEAiEHAkACQAJAIAYoAoACIgFBgICAgHhGBEAgBkEANgKIAiAGQoCAgIAQNwKAAiAGQcz1wAA2ArwDIAZCoICAgA43AsADIAYgBkGAAmo2ArgDIAcgBkG4A2oQ2QQNAyAGKAKAAiEJIAYoAoQCIgggBigCiAIQrAkhAyAJBEAgCEEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgCWpJDQYgAUEAIAIgCUEnaksbDQcgCBC0AgsgAEGAgICAeDYCACAAIAM2AgQgByAHKAIAKAIAEQMAIAZBDGoQmgIgBEUNAiAFQYMISw0BDAILIAYoAogCIQkgBigCvAIhCCAAIAb9AAPQAf0LAgwgAEEsaiAC/QADAP0LAgAgAEEcaiAD/QADAP0LAgAgACAINgJEIAAgCTYCQCAAIAg2AjwgACAJNgIIIAAgBzYCBCAAIAE2AgAgBkEMahCaAiAERSAFQYQISXINAQsgBRDNBwsgBkGQBGokAA8LQYybxgBBNyAGQawDakHk9cAAQcSbxgAQlQcACyAGQQA2ArgDQQAgBkGIBGogBkGMBGogBkG4A2pB3IHFABCuCAALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC5RdBBh/BH0BfgF7IwBB8ABrIgkkAAJAAkACQAJAIAAtAKRTRQRAIAlB0ABqIABBQGsQ4wQgCS0AUARAIAkoAlQhAgwDCyAJLQBRQQFHDQEgAEEBOgCkUwsgACgCSCIBRQ0AIABBnAFqIRUgCUE8aq1CgICAgBCEIR0gAEHYAGohFiAAQeQAaiESIABB8ABqIRcgAEH8AGohGANAAkAgACgCVCIIIAAoAqBTIgJrIgNBACADIAhNG0GAgARPBEAgAiEDDAELIAIgAkGAgAJrIgNBACACIANPGyIHayEDIAIgB0YEQCAAIAM2AqBTDAELIAIgCE0EQCADBEAgACgCUCIBIAEgB2ogA/wKAAALIAAoAkghASAAIAM2AqBTDAELIAIgCEHop8EAEKIKAAsCQAJAAkACQAJAAkACQAJAAkACQCABIA1PBEAgCUHQAGogFSAAKAJEIA1qIAEgDWsgACgCUCAAKAJUIANBBhBLIAkgCS0AVCICOgAPIAkoAlAhFCAJKAJYIhFFDQogACgCoFMiASARaiIDIAFJDQggAyAAKAJUIghLDQcgACgCUCEIIAAoAlggACgCYCIDayARSQRAIBYgAyARQQFBARDQBSAAKAJgIQMLIBEEQCAAKAJcIANqIAEgCGogEfwKAAALIAAgAyARaiIINgJgIAAgACgCoFMgEWo2AqBTIAAoAmRBgICAgHhHDQQgCEEQSQ0DIAkgACgCXCIBKAAAIgM2AhwgA0HOjs2CBUcNBiAJIAEoAAQiBzYCLCAHQQRrQX1JDQUgAEEANgJgIAEtAA4hCiABLQANIQQgAS0ADCEDIAEoAAghBSAIQRBrIggEQCAIBEAgASABQRBqIAj8CgAACyAAIAg2AmALIAkgAzYCPCADQQNLDQFBgIDAABB+IgENAgALIA0gAUGIqMEAEKMKAAsgCUEBNgJUIAlBjPLHADYCUCAJQgE3AlwgCSAdNwNoIAkgCUHoAGo2AlggCUFAayIAIAlB0ABqEOYGIAAQwwchAgwLCyAAIAo6AJoBIAAgBDoAmQEgAEEAOgCYASAAQQA2ApQBIAAgAzYCkAEgACAFNgKMASAAIAc2AogBIABBADYChAEgAEKAgICAwAA3AnwgAEICNwJ0IABCADcCbCAAIAE2AmggAEGAgBA2AmQgCSAKQYABcUEHdjoAWCAJIAM2AlQgCSAFNgJQIAAgCUHQAGoQkwILIAAoAmRBgICAgHhGDQYLA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAALQCYAUEBaw4JDQwLCgABBgQhAgtBCSEPQQYhAiAAKAKQAQ4EBAgHBgILIABBCUEHIAAsAJoBQQBOGzoAmAEMGgsgACgCYEEGQQkgACgCiAEiAkEBRhsiC24iASAAKAKMASAAKAKUAWsiCkkEQCABIgpBgIAESQ0fC0GAgAQgCiAKQYCABE8bIghBA2wiByAAKAJsIgNLBH8gByADIgFrIgIgACgCZCABa0sEQCASIAEgAkEEQQQQ0AUgACgCbCEBCyAAKAJoIgQgAUECdGohBSACQQJPBH8gByADQX9zakECdCIDBEAgBUEAIAP8CwALIAEgAmoiA0EBayEBIAQgA0ECdGpBBGsFIAULQQA2AgAgACABQQFqNgJsIAAoAogBBSACC0EBRw0LIApFDQ1BBiECQQAhB0EAIQNBACEBA0ACfwJAIAJBBGsiBSAAKAJgIgRNBEAgACgCXCACaiIFQQVrLQAAQQh0IgQgBUEGay0AAHIiBUH//wFxRQRAIAVBEHQMAwsgBUH/B3EhBSAEQYCAAnEhBiAEQYD4AXEiBEGA+AFGBEAgBkEQdCIEQYCAgPwHciAFRQ0DGiAFQQ10IARyQYCAgP4HcgwDCyAGQRB0IQYgBEUNASAEQQ10QYCAgPwAcSAFQQ10ckGAgIDAA2ogBnIMAgsgBSAEQfigwQAQogoACyAFIAVnQRBrIgVB//8DcUEIanRB////A3EgBkGAgIDYA3IgBUEXdGtyCyEFAn8CQCAAKAJsIgQgAUsEQCAAKAJoIANqIAU2AgAgAkECayIFIAAoAmAiBE0EQCAAKAJcIAJqIgVBA2stAABBCHQiBCAFQQRrLQAAciIFQf//AXFFBEAgBUEQdAwECyAFQf8HcSEFIARBgIACcSEGIARBgPgBcSIEQYD4AUYEQCAGQRB0IgRBgICA/AdyIAVFDQQaIAVBDXQgBHJBgICA/gdyDAQLIAZBEHQhBiAERQ0CIARBDXRBgICA/ABxIAVBDXRyQYCAgMADaiAGcgwDCyAFIARBmKHBABCiCgALIAEgBEGIocEAEL8HAAsgBSAFZ0EQayIFQf//A3FBCGp0Qf///wNxIAZBgICA2ANyIAVBF3RrcgshBQJ/AkAgAUEBaiIEIAAoAmwiBkkEQCAAKAJoIANqQQRqIAU2AgAgACgCYCIFIAJPBEAgACgCXCACaiIFQQFrLQAAQQh0IgQgBUECay0AAHIiBUH//wFxRQRAIAVBEHQMBAsgBUH/B3EhBSAEQYCAAnEhBiAEQYD4AXEiBEGA+AFGBEAgBkEQdCIEQYCAgPwHciAFRQ0EGiAFQQ10IARyQYCAgP4HcgwECyAGQRB0IQYgBEUNAiAEQQ10QYCAgPwAcSAFQQ10ckGAgIDAA2ogBnIMAwsgAiAFQbihwQAQogoACyAEIAZBqKHBABC/BwALIAUgBWdBEGsiBUH//wNxQQhqdEH///8DcSAGQYCAgNgDciAFQRd0a3ILIQUgAUECaiIEIAAoAmwiBkkEQCAAKAJoIANqQQhqIAU2AgAgAkEGaiECIANBDGohAyABQQNqIQEgB0EBaiIHIAhJDQEMDgsLIAQgBkHIocEAEL8HAAtBiKbBABC5CAALIAAoAmAiA0ECdiIBIAAoAowBIAAoApQBayIHSQRAIAEhByADQYCAEEkNHQtBgIAEIAcgB0GAgARPGyIDIAAoAoQBIgJLBEAgAiEBIAMgAmsiCCAAKAJ8IAJrSwRAIBggAiAIQQRBBBDQBSAAKAKEASEBCyAAKAKAASIFIAFBAnRqIQogCEECTwR/IAMgAkF/c2pBAnQiAgRAIApBACAC/AsACyABIAhqIgJBAWshASAFIAJBAnRqQQRrBSAKC0EANgIAIAAgAUEBaiICNgKEAQsCQAJAAkACQAJAIAcEQEEBIAMgA0EBTRshCEEAIQFBBCECA0AgAiAAKAJgIgpLDQMgASAAKAKEASIKTw0CIAAoAoABIAJqQQRrIAAoAlwgAmpBBGsoAAA2AgAgAkEEaiECIAggAUEBaiIBRw0ACyAAKAKEASECCyAAKAIQIAAoAhQgACgClAEgAyAAKAKAASACELQDIAAoAmAiASADQQJ0IgJJDSYgAEEANgJgIAEgAmshCCAHRQ0CIAEgAkYNBCAIRQ0DIAAoAlwiASABIAJqIAj8CgAADAMLIAEgCkHYp8EAEL8HAAsgAiAKQcinwQAQogoACyABIAJGDQELIAAgCDYCYAsgACAAKAKUASADaiIBNgKUASABIAAoAowBRw0XIABBADYClAFBCSECCyAAIAI6AJgBDBYLIAAoAmAiA0EBdiIBIAAoAowBIAAoApQBayIHSQRAIAEhByADQYCACEkNGwtBgIAEIAcgB0GAgARPGyIDIAAoAngiAksEQCACIQEgAyACayIIIAAoAnAgAmtLBEAgFyACIAhBAkECENAFIAAoAnghAQsgACgCdCIFIAFBAXRqIQogCEECTwR/IAMgAkF/c2pBAXQiAgRAIApBACAC/AsACyABIAhqIgJBAWshASAFIAJBAXRqQQJrBSAKC0EAOwEAIAAgAUEBaiICNgJ4CyAHBEBBASADIANBAU0bIQhBACEBQQIhAgJAA0AgACgCYCIKIAJJBEAgAiAKQainwQAQogoACyAAKAJ4IgogAUsEQCAAKAJ0IAJqQQJrIAAoAlwgAmpBAmsvAAA7AQAgAkECaiECIAggAUEBaiIBRg0CDAELCyABIApBuKfBABC/BwALIAAoAnghAgsgACgCECAAKAIUIAAoApQBIAMgACgCdCACENkDAkACQAJAIAAoAmAiASADQQF0IgJPBEAgAEEANgJgIAEgAmshCCAHRQ0BIAEgAkYNAyAIRQ0CIAAoAlwiASABIAJqIAj8CgAADAILDCILIAEgAkYNAQsgACAINgJgCyAAIAAoApQBIANqIgE2ApQBIAEgACgCjAFHDRUgAEEANgKUASAAQQg6AJgBDBULQS0hDwwBC0EYIQ8LIAAoAmAgD24iASAAKAKMASAAKAKUAWsiBUkEQCABIgVBgIAESQ0YC0GAgAQgBSAFQYCABE8bIg4gD2wiDCAAKAJsIgJLBEAgAiEBIAwgAmsiAyAAKAJkIAJrSwRAIBIgAiADQQRBBBDQBSAAKAJsIQELIAAoAmgiByABQQJ0aiEIIANBAk8EfyAMIAJBf3NqQQJ0IgIEQCAIQQAgAvwLAAsgASADaiIDQQFrIQEgByADQQJ0akEEawUgCAtBADYCACAAIAFBAWoiAjYCbAsgDkEJbCETAkAgBQRAIA5B4ABsIQogDkEYbCEHQQEhAkEAIRBBACEIAkADQCAIIQQgAiEIIAQgD2wiAiAAKAJgIgNPDQMCQAJAAkACQCAEQQlsIgEgACgCbCIDTw0AIAAoAmggAUECdGogACgCXCACai0AALNDAAAAw5JDAAAAPJQ4AgAgAkEDaiIGIAAoAmAiA08EQCAGIQIMCAsgAUEDaiILIAAoAmwiA08EQCALIQEMAQsgACgCaCALQQJ0aiAAKAJcIAZqLQAAs0MAAADDkkMAAAA8lDgCACACQQZqIgYgACgCYCIDTwRAIAYhAgwICyABQQZqIgsgACgCbCIDTwRAIAshAQwBCyAAKAJoIAtBAnRqIAAoAlwgBmotAACzQwAAAMOSQwAAADyUOAIAIAJBAWoiBiAAKAJgIgNPBEAgBiECDAgLIAFBAWoiCyAAKAJsIgNPBEAgCyEBDAELIAAoAmggC0ECdGogACgCXCAGai0AALNDAAAAw5JDAAAAPJQ4AgAgAkEEaiIGIAAoAmAiA08EQCAGIQIMCAsgAUEEaiILIAAoAmwiA08EQCALIQEMAQsgACgCaCALQQJ0aiAAKAJcIAZqLQAAs0MAAADDkkMAAAA8lDgCACACQQdqIgYgACgCYCIDTwRAIAYhAgwICyABQQdqIgsgACgCbCIDTwRAIAshAQwBCyAAKAJoIAtBAnRqIAAoAlwgBmotAACzQwAAAMOSQwAAADyUOAIAIAJBAmoiBiAAKAJgIgNPBEAgBiECDAgLIAFBAmoiCyAAKAJsIgNPBEAgCyEBDAELIAAoAmggC0ECdGogACgCXCAGai0AALNDAAAAw5JDAAAAPJQ4AgAgAkEFaiIGIAAoAmAiA08EQCAGIQIMCAsgAUEFaiILIAAoAmwiA08EQCALIQEMAQsgACgCaCALQQJ0aiAAKAJcIAZqLQAAs0MAAADDkkMAAAA8lDgCACACQQhqIgYgACgCYCIDTwRAIAYhAgwICyABQQhqIgEgACgCbCIDTw0AIAAoAmggAUECdGogACgCXCAGai0AALNDAAAAw5JDAAAAPJQ4AgAgACgCkAFBAUsNAQwCCyABIANBmKfBABC/BwALAkACQCACQQlqIgEgACgCYCIGTw0AIARBD2wgE2oiAyAAKAJsIgZPDQMgACgCaCADQQJ0aiAAKAJcIAFqLQAAs0MAAADDkkMAAAA8lDgCACACQQxqIgEgACgCYCIGTw0AIANBA2oiBCAAKAJsIgZPBEAgBCEDDAQLIAAoAmggBEECdGogACgCXCABai0AALNDAAAAw5JDAAAAPJQ4AgAgAkEPaiIBIAAoAmAiBk8NACADQQZqIgQgACgCbCIGTwRAIAQhAwwECyAAKAJoIARBAnRqIAAoAlwgAWotAACzQwAAAMOSQwAAADyUOAIAIAJBEmoiASAAKAJgIgZPDQAgA0EJaiIEIAAoAmwiBk8EQCAEIQMMBAsgACgCaCAEQQJ0aiAAKAJcIAFqLQAAs0MAAADDkkMAAAA8lDgCACACQRVqIgEgACgCYCIGTw0AIANBDGoiBCAAKAJsIgZPBEAgBCEDDAQLIAAoAmggBEECdGogACgCXCABai0AALNDAAAAw5JDAAAAPJQ4AgAgAkEKaiIBIAAoAmAiBk8NACADQQFqIgQgACgCbCIGTwRAIAQhAwwECyAAKAJoIARBAnRqIAAoAlwgAWotAACzQwAAAMOSQwAAADyUOAIAIAJBDWoiASAAKAJgIgZPDQAgA0EEaiIEIAAoAmwiBk8EQCAEIQMMBAsgACgCaCAEQQJ0aiAAKAJcIAFqLQAAs0MAAADDkkMAAAA8lDgCACACQRBqIgEgACgCYCIGTw0AIANBB2oiBCAAKAJsIgZPBEAgBCEDDAQLIAAoAmggBEECdGogACgCXCABai0AALNDAAAAw5JDAAAAPJQ4AgAgAkETaiIBIAAoAmAiBk8NACADQQpqIgQgACgCbCIGTwRAIAQhAwwECyAAKAJoIARBAnRqIAAoAlwgAWotAACzQwAAAMOSQwAAADyUOAIAIAJBFmoiASAAKAJgIgZPDQAgA0ENaiIEIAAoAmwiBk8EQCAEIQMMBAsgACgCaCAEQQJ0aiAAKAJcIAFqLQAAs0MAAADDkkMAAAA8lDgCACACQQtqIgEgACgCYCIGTw0AIANBAmoiBCAAKAJsIgZPBEAgBCEDDAQLIAAoAmggBEECdGogACgCXCABai0AALNDAAAAw5JDAAAAPJQ4AgAgAkEOaiIBIAAoAmAiBk8NACADQQVqIgQgACgCbCIGTwRAIAQhAwwECyAAKAJoIARBAnRqIAAoAlwgAWotAACzQwAAAMOSQwAAADyUOAIAIAJBEWoiASAAKAJgIgZPDQAgA0EIaiIEIAAoAmwiBk8EQCAEIQMMBAsgACgCaCAEQQJ0aiAAKAJcIAFqLQAAs0MAAADDkkMAAAA8lDgCACACQRRqIgEgACgCYCIGTw0AIANBC2oiBCAAKAJsIgZPBEAgBCEDDAQLIAAoAmggBEECdGogACgCXCABai0AALNDAAAAw5JDAAAAPJQ4AgAgAkEXaiIBIAAoAmAiBk8NACADQQ5qIgMgACgCbCIGTw0DIAAoAmggA0ECdGogACgCXCABai0AALNDAAAAw5JDAAAAPJQ4AgAgACgCkAFBAk0NAkEAIQYgCiEBDAELIAEgBkHopsEAEL8HAAsCQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAA0AgACgCYCIDIAYgEGoiAkEYaksEQCAGIAdqIgQgACgCbCIDTw0PIAAoAmggAWogAiAAKAJcakEYai0AALNDAAAAw5JDAAAAPJQ4AgAgACgCYCIDIAJBG2pNDQcgACgCbCIDIARBA2pNDQ4gACgCaCABakEMaiACIAAoAlxqQRtqLQAAs0MAAADDkkMAAAA8lDgCACAAKAJgIgMgAkEeak0NBiAAKAJsIgMgBEEGak0NDSAAKAJoIAFqQRhqIAIgACgCXGpBHmotAACzQwAAAMOSQwAAADyUOAIAIAAoAmAiAyACQSFqTQ0FIAAoAmwiAyAEQQlqTQ0MIAAoAmggAWpBJGogAiAAKAJcakEhai0AALNDAAAAw5JDAAAAPJQ4AgAgACgCYCIDIAJBJGpNDQQgACgCbCIDIARBDGpNDQsgACgCaCABakEwaiACIAAoAlxqQSRqLQAAs0MAAADDkkMAAAA8lDgCACAAKAJgIgMgAkEnak0NAyAAKAJsIgMgBEEPak0NCiAAKAJoIAFqQTxqIAIgACgCXGpBJ2otAACzQwAAAMOSQwAAADyUOAIAIAAoAmAiAyACQSpqTQ0CIAAoAmwiAyAEQRJqTQ0JIAAoAmggAWpByABqIAAoAlwgEGogBmpBKmotAACzQwAAAMOSQwAAADyUOAIAIAFBBGohASAGQQFqIgZBA0kNAQwQCwsgAkEYagwGCyACQSpqDAULIAJBJ2oMBAsgAkEkagwDCyACQSFqDAILIAJBHmoMAQsgAkEbagsgA0HIpsEAEL8HAAsgBEESaiEEDAULIARBD2ohBAwECyAEQQxqIQQMAwsgBEEJaiEEDAILIARBBmohBAwBCyAEQQNqIQQLIAQgA0HYpsEAEL8HAAsgDyAQaiEQIAdBFWohByAKQdQAaiEKIAggCCAOSSIBaiECIAFFDQIMAQsLIAMgBkH4psEAEL8HAAsgACgCbCECCwJAAkACQAJAAkACQAJAIAIgE08EQCAAKAJoIQggACgClAEhCkEAIQNBBCEGAkAgACgCkAEiBEECSQRAQQQhB0EAIRAMAQsgDkEYbCIBIAJLDQIgDkEPbCEQIAggE0ECdGohByAEQQJGDQAgASAMSw0DIAIgDEkNBCAMIAFrIQMgCCABQQJ0aiEGCyAAIAogDiAIIBMgByAQIAYgAxDxAyAAKAJgIgEgDEkNBCAAQQA2AmAgASAMayEDIAVFDQUgASAMRg0HIANFDQYgACgCXCIBIAEgDGogA/wKAAAMBgsgEyACQZimwQAQogoACyABIAJBqKbBABCiCgALIAEgDEG4psEAEKUKAAsgDCACQbimwQAQogoACyAMIAFB3KvHABCiCgALIAEgDEYNAQsgACADNgJgCyAAIAAoApQBIA5qIgE2ApQBIAEgACgCjAFHDRMgAEEANgKUASAAQQY6AJgBDBMLIAIgA0GIp8EAEL8HAAsgACgCYEEEQQMgACgCiAEiAkEDRhsiEG4iASAAKAKMASAAKAKUAWsiCEkEQCABIghBgIAESQ0XCwJAAkACQAJAAkACQAJAAkACQAJAAkBBgIAEIAggCEGAgARPGyIKQQJ0IgcgACgCbCIDSwR/IAcgAyIBayICIAAoAmQgAWtLBEAgEiABIAJBBEEEENAFIAAoAmwhAQsgACgCaCIEIAFBAnRqIQUgAkECTwR/IAcgA0F/c2pBAnQiAwRAIAVBACAD/AsACyABIAJqIgNBAWshASAEIANBAnRqQQRrBSAFC0EANgIAIAAgAUEBajYCbCAAKAKIAQUgAgtBA0cEQCAIRQ0LQQAhBEEAIQJBACEDQQAhAQNAIAIgACgCYCIHTw0CIAJBAWoiBSAHTw0DIAJBAmoiBSAHTw0EQwAAgD8gACgCXCACaiIHLQAAs0MAAP9ClUMAAIC/kiIZIBmUIAdBAWotAACzQwAA/0KVQwAAgL+SIhogGpSSIAdBAmotAACzQwAA/0KVQwAAgL+SIhsgG5SSk0MAAAAAEJ8JIRwgASAAKAJsIgdPDQUgACgCaCADaiAZOAIAIAFBAWoiByAAKAJsIgVPDQYgACgCaCADakEEaiAaOAIAIAFBAmoiByAAKAJsIgVPDQcgACgCaCADakEIaiAbOAIAIAFBA2oiByAAKAJsIgVPDQggACgCaCADakEMaiAckTgCACACQQNqIQIgA0EQaiEDIAFBBGohASAEQQFqIgQgCkkNAAsMCwsgCEUNCkEAIQNBASEHQQAhAQNAAkACQAJAAkAgACgCYCICIAFLBEAgAUEBaiIFIAJPDQEgAUECaiIEIAJPDQIgAUEDaiIGIAJPDQMgACgCXCABaiICQQJqLQAAIQwgAkEDai0AACELIAItAAAgAkEBai0AACEOIAn9DAAAAAAAAAAAAAAAAAAAAAD9CwNQIA5BCHRyIg8gDEEQdCALQRh0cnIhAkMAAAAAIRkCfwJAIAtBBnYiDEEDRwRAIAkgD0H/A3GzQwCA/0OVQ/MENT+UIhmMIBkgDkECcRsiGTgCXCAZIBmUIRkgAkEKdiECIAxBAkYNAQsgCSACQf8DcbNDAID/Q5VD8wQ1P5QiGowgGiACQYAEcRsiGjgCWCAZIBogGpSSIRkgAkEKdiICIAxBAUYNARoLIAkgAkH/A3GzQwCA/0OVQ/MENT+UIhqMIBogAkGABHEbIho4AlQgGSAaIBqUkiEZIAJBCnYLIQIgCUHQAGogDEECdGpDAACAPyALQcAATwR9IAkgAkH/A3GzQwCA/0OVQ/MENT+UIhqMIBogAkGABHEbIho4AlAgGSAaIBqUkgUgGQuTIhmRQwAAAAAgGUMAAAAAXhs4AgAgASAAKAJsIgJJDQQgASACQdikwQAQvwcACyABIAJBmKTBABC/BwALIAUgAkGopMEAEL8HAAsgBCACQbikwQAQvwcACyAGIAJByKTBABC/BwALIAAoAmggA2ogCSoCUDgCACAFIAAoAmwiAk8NCiAAKAJoIANqQQRqIAkqAlQ4AgAgBCAAKAJsIgJPDQkgACgCaCADakEIaiAJKgJYOAIAIAYgACgCbCICTw0IIAAoAmggA2pBDGogCSoCXDgCACADQRBqIQMgAUEEaiEBIAcgCkkgB0EBaiEHDQALDAoLIAIgB0GYpcEAEL8HAAsgBSAHQailwQAQvwcACyAFIAdBuKXBABC/BwALIAEgB0HIpcEAEL8HAAsgByAFQdilwQAQvwcACyAHIAVB6KXBABC/BwALIAcgBUH4pcEAEL8HAAsgBiACQYilwQAQvwcACyAEIAJB+KTBABC/BwALIAUgAkHopMEAEL8HAAsgACgCBCAAKAIIIAAoApQBIAogACgCaCAAKAJsEL0GAkACQAJAIAAoAmAiASAKIBBsIgJPBEAgAEEANgJgIAEgAmshAyAIRQ0BIAEgAkYNAyADRQ0CIAAoAlwiASABIAJqIAP8CgAADAILDB4LIAEgAkYNAQsgACADNgJgCyAAIAAoApQBIApqIgE2ApQBIAEgACgCjAFHDREgAEEANgKUASAAQQU6AJgBDBELIAAoAmAiA0EDbiIBIAAoAowBIAAoApQBayIISQRAIAEhCCADQYCADEkNFgtBgIAEIAggCEGAgARPGyIKQQNsIgcgACgCbCIDSwRAIAcgAyIBayICIAAoAmQgAWtLBEAgEiABIAJBBEEEENAFIAAoAmwhAQsgACgCaCIEIAFBAnRqIQUgAkECTwR/IAcgA0F/c2pBAnQiAwRAIAVBACAD/AsACyABIAJqIgNBAWshASAEIANBAnRqQQRrBSAFC0EANgIAIAAgAUEBajYCbAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCARAQQEgCiAKQQFNG0EDbCEFQQAhAkEIIQEDQCACIAAoAmAiA08NAiACIAAoAmwiA08NAyAAKAJoIAFqQQhrIAAoAlwgAmotAACzQwAAgD2UQwAAIMGSEKYEOAIAIAJBAWoiAyAAKAJgIgRPDQQgAyAAKAJsIgRPDQUgACgCaCABakEEayAAKAJcIAJqQQFqLQAAs0MAAIA9lEMAACDBkhCmBDgCACACQQJqIgMgACgCYCIETw0GIAMgACgCbCIETw0HIAAoAmggAWogACgCXCACakECai0AALNDAACAPZRDAAAgwZIQpgQ4AgAgAUEMaiEBIAUgAkEDaiICRw0AC0EAIQIgACgCCCIFIAAoApQBIgRrIgFBACABIAVNGyEMIAAoAgQgBEEkbGohBiAAKAJoIQEgACgCbCELQQMhAwNAIAIgDEYNKSACQdWq1aoFRg0IIAMgC0sNCSAJIAH9XQIAIAFBCGoqAgAiGf0gAiAZ/SAD/QsEUCADQQNqIQMgAUEMaiEBIAYgCUHQAGoQ8QIgBkEkaiEGIAogAkEBaiICRw0ACwsgACgCYCIBIAdJDQggAEEANgJgIAEgB2shAyAIRQ0JIAEgB0YNCyADRQ0KIAAoAlwiASABIAdqIAP8CgAADAoLIAIgA0G4o8EAEL8HAAsgAiADQcijwQAQvwcACyADIARB2KPBABC/BwALIAMgBEHoo8EAEL8HAAsgAyAEQfijwQAQvwcACyADIARBiKTBABC/BwALQX9BAkGk0scAEKUKAAsgAyALQaTSxwAQogoACyAHIAFB3KvHABCiCgALIAEgB0YNAQsgACADNgJgCyAAIAAoApQBIApqIgE2ApQBIAEgACgCjAFHDRAgAEEANgKUASAAQQQ6AJgBDBALIAAoAmAiA0EDbiIBIAAoAowBIAAoApQBayIISQRAIAEhCCADQYCADEkNFQtBgIAEIAggCEGAgARPGyIKQQNsIgcgACgCbCIDSwRAIAcgAyIBayICIAAoAmQgAWtLBEAgEiABIAJBBEEEENAFIAAoAmwhAQsgACgCaCIEIAFBAnRqIQUgAkECTwR/IAcgA0F/c2pBAnQiAwRAIAVBACAD/AsACyABIAJqIgNBAWshASAEIANBAnRqQQRrBSAFC0EANgIAIAAgAUEBajYCbAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCARAQQEgCiAKQQFNG0EDbCEFQQAhAkEIIQEDQCACIAAoAmAiA08NAiACIAAoAmwiA08NAyAAKAJoIAFqQQhrIAAoAlwgAmotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAJBAWoiAyAAKAJgIgRPDQQgAyAAKAJsIgRPDQUgACgCaCABakEEayAAKAJcIAJqQQFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACACQQJqIgMgACgCYCIETw0GIAMgACgCbCIETw0HIAAoAmggAWogACgCXCACakECai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUEMaiEBIAUgAkEDaiICRw0AC0EAIQIgACgCCCIFIAAoApQBIgRrIgFBACABIAVNGyEMIAAoAgQgBEEkbGohBiAAKAJoIQEgACgCbCELQQMhAwNAIAIgDEYNKCACQdWq1aoFRg0IIAMgC0sNCSAJIAH9XQIAIAFBCGoqAgAiGf0gAiAZ/SAD/QsEUCADQQNqIQMgAUEMaiEBIAYgCUHQAGoQ+gIgBkEkaiEGIAogAkEBaiICRw0ACwsgACgCYCIBIAdJDQggAEEANgJgIAEgB2shAyAIRQ0JIAEgB0YNCyADRQ0KIAAoAlwiASABIAdqIAP8CgAADAoLIAIgA0HYosEAEL8HAAsgAiADQeiiwQAQvwcACyADIARB+KLBABC/BwALIAMgBEGIo8EAEL8HAAsgAyAEQZijwQAQvwcACyADIARBqKPBABC/BwALQX9BAkGU0scAEKUKAAsgAyALQZTSxwAQogoACyAHIAFB3KvHABCiCgALIAEgB0YNAQsgACADNgJgCyAAIAAoApQBIApqIgE2ApQBIAEgACgCjAFHDQ8gAEEANgKUASAAQQM6AJgBDA8LIAAoAmAiASAAKAKMASAAKAKUAWsiB0kEQCABIgdBgIAESQ0UC0GAgAQgByAHQYCABE8bIgggACgCbCICSwRAIAIhASAIIAJrIgMgACgCZCACa0sEQCASIAIgA0EEQQQQ0AUgACgCbCEBCyAAKAJoIgUgAUECdGohCiADQQJPBH8gCCACQX9zakECdCICBEAgCkEAIAL8CwALIAEgA2oiA0EBayEBIAUgA0ECdGpBBGsFIAoLQQA2AgAgACABQQFqIgI2AmwLAkACQAJAAkACQAJAIAcEQEMAAIA/QwAAAEAgACwAmgFBAE4bIRlBASEDQQEgCCAIQQFNGyEBQQAhAgNAIAIgACgCYCIKTw0CIAIgACgCbCIKTw0DIAAoAmggAkECdGogGSAAKAJcIAJqLQAAs0MAAH9DlZQ4AgAgAyICQQFqIQMgASACRw0ACyAAKAJsIQILIAAoAgQgACgCCCAAKAKUASAIIAAoAmggAhC+AiAAKAJgIgEgCEkNAiAAQQA2AmAgASAIayEDIAdFDQMgASAIRg0FIANFDQQgACgCXCIBIAEgCGogA/wKAAAMBAsgAiAKQbiiwQAQvwcACyACIApByKLBABC/BwALIAggAUHcq8cAEKIKAAsgASAIRg0BCyAAIAM2AmALIAAgACgClAEgCGoiATYClAEgASAAKAKMAUcNDiAAQQA2ApQBIABBAjoAmAEMDgsgCkUNAUEBIAAtAJkBdLMhGUEJIQJBACEHQQAhA0EAIQEDQCACQQZrIgUgACgCYCIESw0HIAEgACgCbCIFTw0JIAAoAmggA2ogACgCXCACaiIFQQdrLQAAIgRBEHQgBUEJay0AAHIgBUEIay0AAEEIdHIiBUGAgIB4ciAFIATAQQBIG7IgGZU4AgAgAkEDayIFIAAoAmAiBEsNCCABQQFqIgUgACgCbCIETw0LIAAoAmggA2pBBGogACgCXCACaiIFQQRrLQAAIgRBEHQgBUEGay0AAHIgBUEFay0AAEEIdHIiBUGAgIB4ciAFIATAQQBIG7IgGZU4AgAgAiAAKAJgIgVLDQogAUECaiIFIAAoAmwiBE8NAyAAKAJoIANqQQhqIAAoAlwgAmoiBUEBay0AACIEQRB0IAVBA2stAAByIAVBAmstAABBCHRyIgVBgICAeHIgBSAEwEEASBuyIBmVOAIAIAJBCWohAiADQQxqIQMgAUEDaiEBIAdBAWoiByAISQ0ACwsgCkUNACAAKAJsIQcgACgCaCEBQQAhAiAAKAIIIgUgACgClAEiBGsiA0EAIAMgBU0bIQwgACgCBCAEQSRsakEIaiEDQQMhBgNAIAIgDEYNGCACQdWq1aoFRg0DIAYgB0sNBCADIAFBCGogAf1dAgD9VgIAAiIe/VoCCAIgAyAe/VsCAAAgBkEDaiEGIAFBDGohASADQSRqIQMgCCACQQFqIgJHDQALCyAAKAJgIgEgCCALbCICSQ0VIABBADYCYCABIAJrIQMgCkUNAyABIAJGDQogA0UNCSAAKAJcIgEgASACaiAD/AoAAAwJCyAFIARBqKLBABC/BwALQX9BAkH00ccAEKUKAAsgBiAHQfTRxwAQogoACyABIAJHDQUMBgsgBSAEQdihwQAQogoACyAFIARB+KHBABCiCgALIAEgBUHoocEAEL8HAAsgAiAFQZiiwQAQogoACyAFIARBiKLBABC/BwALIAAgAzYCYAsgACAAKAKUASAIaiIBNgKUASABIAAoAowBRw0AIABBADYClAEgAEEBOgCYAQwACwALIAlBATYCVCAJQdCgwQA2AlAgCUIBNwJcIAkgCUEsaq1CgICAgBCENwNAIAkgCUFAazYCWCAJQTBqIgAgCUHQAGoQ5gYgABDBByECDAcLIAlBATYCZCAJQbCCyAA2AmAgCUEBNgJUIAlB8KDBADYCUCAJQQE2AlwgCSAJQRxqrUKAgICAoAOENwNAIAkgCUFAazYCWCAJQSBqIgAgCUHQAGoQ5gYgABDBByECDAYLIAMgCEH4p8EAEKIKAAsgASADQfinwQAQpQoACyAJLQAPIQILIA0gFGohDQJAAkACQAJAAkAgAkH/AXEOAwECAwALIAlBATYCVCAJQZyDyAA2AlAgCUIBNwJcIAkgCUEPaq1CgICAgLADhDcDQCAJIAlBQGs2AlggCUEQaiIAIAlB0ABqEOYGIAAQwQchAgwGCyAAQQE6AKVTIA1BCGogDSAAKAJIIgEgDWsiA0EAIAEgA08bQQdLGyENDAILIBEgFHJFDQELIA0gACgCSCIBSQ0BCwsgDUUNACANIAAoAkgiAU0EQEEAIQIgAEEANgJIIAEgDUYNAiABIA1rIgEEQCAAKAJEIgMgAyANaiAB/AoAAAsgACABNgJIDAILIA0gAUHcq8cAEKIKAAtBACECCyAJQfAAaiQAIAIPCyACIAFB3KvHABCiCgALIAIgBGogBUH4yMcAEL8HAAu7XwQafwR9AXsBfiMAQfAAayIIJAACQAJAAkAgAC0AxFNFBEAgCEHQAGogAEHgAGoQ4wQgCC0AUARAIAgoAlQhAQwDCyAILQBRQQFHDQEgAEEBOgDEUwsgACgCaCICRQ0AIABB2QBqIRUgAEG8AWohFyAIQTxqrUKAgICAEIQhICAAQfgAaiEYIABBhAFqIRQgAEGQAWohGSAAQZwBaiEaA0ACQCAAKAJ0IgUgACgCwFMiAWsiA0EAIAMgBU0bQYCABE8EQCABIQMMAQsgASABQYCAAmsiA0EAIAEgA08bIgdrIQMgASAHRgRAIAAgAzYCwFMMAQsgASAFTQRAIAMEQCAAKAJwIgIgAiAHaiAD/AoAAAsgACgCaCECIAAgAzYCwFMMAQsgASAFQeinwQAQogoACwJAAkACQAJAAkACQAJAAkACQCACIA1PBEAgCEHQAGogFyAAKAJkIA1qIAIgDWsgACgCcCAAKAJ0IANBBhBLIAggCC0AVCIBOgAPIAgoAlAhFiAIKAJYIhNFDQkgACgCwFMiByATaiIDIAdJDQQgAyAAKAJ0IgJLDQUgACgCcCECIAAoAnggACgCgAEiA2sgE0kEQCAYIAMgE0EBQQEQ0AUgACgCgAEhAwsgEwRAIAAoAnwgA2ogAiAHaiAT/AoAAAsgACADIBNqIgY2AoABIAAgACgCwFMgE2o2AsBTIAAoAoQBQYCAgIB4Rw0IIAZBEEkNByAIIAAoAnwiDCgAACICNgIcIAJBzo7NggVHDQYgCCAMKAAEIgU2AiwgBUEEa0F9SQ0DIABBADYCgAEgDCwADiEEIAwtAA0hAyAMLQAMIQkgDCgACCEHIAZBEGsiAgRAIAIEQCAMIAxBEGogAvwKAAALIAAgAjYCgAELIAggCTYCPCAJQQNLDQFBgIDAABB+IgINAgALIA0gAkGIqMEAEKMKAAsgCEEBNgJUIAhBjPLHADYCUCAIQgE3AlwgCCAgNwNoIAggCEHoAGo2AlggCEFAayIAIAhB0ABqEOYGIAAQwwchAQwKCyAAIAQ6ALoBIAAgAzoAuQEgAEEAOgC4ASAAQQA2ArQBIAAgCTYCsAEgACAHNgKsASAAIAU2AqgBIABBADYCpAEgAEKAgICAwAA3ApwBIABCAjcClAEgAEIANwKMASAAIAI2AogBIABBgIAQNgKEASAIIARBgAFxQQd2OgBYIAggCTYCVCAIIAc2AlAgACAIQdAAahD5ASAEQQBODQQCeyAALQBYQQJGBEBDAACAPyEcQwAAgD8hHUMAAIA/IRv9DAAAAAAAAIA/AABAwQAAEEEMAQsgCEHSAGogFUECai0AADoAACAIIBUvAAA7AVAgACoCVCEcIAAqAlAhHSAAKgJMIRsgAP0AAjwLIR8gAEEBOgBYIAAgHDgCVCAAIB04AlAgACAbOAJMIAAgH/0LAjwgFSAILwFQOwAAIBVBAmogCEHSAGotAAA6AAAMBAsgCEEBNgJUIAhB0KDBADYCUCAIQgE3AlwgCCAIQSxqrUKAgICAEIQ3A0AgCCAIQUBrNgJYIAhBMGoiACAIQdAAahDmBiAAEMEHIQEMCAsgByADQfinwQAQpQoACyADIAJB+KfBABCiCgALIAhBATYCZCAIQbCCyAA2AmAgCEEBNgJUIAhB8KDBADYCUCAIQQE2AlwgCCAIQRxqrUKAgICAoAOENwNAIAggCEFAazYCWCAIQSBqIgAgCEHQAGoQ5gYgABDBByEBDAULIAAoAoQBQYCAgIB4Rg0BCwJAAkACQAJAAkADQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAtALgBQQFrDgkNDAsKAAEGBB4CC0EJIRJBBiEBIAAoArABDgQECAcGAgsgAEEJQQcgACwAugFBAE4bOgC4AQwXCyAAKAKAAUEGQQkgACgCqAEiA0EBRhsiDG4iAiAAKAKsASAAKAK0AWsiBkkEQCACIgZBgIAESQ0cC0GAgAQgBiAGQYCABE8bIg5BA2wiBSAAKAKMASIBSwR/IAUgASICayIEIAAoAoQBIAFrSwRAIBQgASAEQQRBBBDQBSAAKAKMASECCyAAKAKIASIDIAJBAnRqIQcgBEECTwR/IAUgAUF/c2pBAnQiAQRAIAdBACAB/AsACyACIARqIgFBAWshAiADIAFBAnRqQQRrBSAHC0EANgIAIAAgAkEBajYCjAEgACgCqAEFIAMLQQFHDQsgBkUNDUEGIQFBACEHQQAhA0EAIQIDQAJ/AkAgAUEEayIEIAAoAoABIgVNBEAgACgCfCABaiIFQQVrLQAAQQh0IgkgBUEGay0AAHIiBUH//wFxRQRAIAVBEHQMAwsgBUH/B3EhCyAJQYCAAnEhBCAJQYD4AXEiBUGA+AFGBEAgBEEQdCIFQYCAgPwHciALRQ0DGiALQQ10IAVyQYCAgP4HcgwDCyAEQRB0IQQgBUUNASAFQQ10QYCAgPwAcSALQQ10ckGAgIDAA2ogBHIMAgsgBCAFQfigwQAQogoACyALIAtnQRBrIgVB//8DcUEIanRB////A3EgBEGAgIDYA3IgBUEXdGtyCyEEAn8CQCAAKAKMASIFIAJLBEAgACgCiAEgA2ogBDYCACABQQJrIgQgACgCgAEiBU0EQCAAKAJ8IAFqIgVBA2stAABBCHQiCSAFQQRrLQAAciIFQf//AXFFBEAgBUEQdAwECyAFQf8HcSELIAlBgIACcSEEIAlBgPgBcSIFQYD4AUYEQCAEQRB0IgVBgICA/AdyIAtFDQQaIAtBDXQgBXJBgICA/gdyDAQLIARBEHQhBCAFRQ0CIAVBDXRBgICA/ABxIAtBDXRyQYCAgMADaiAEcgwDCyAEIAVBmKHBABCiCgALIAIgBUGIocEAEL8HAAsgCyALZ0EQayIFQf//A3FBCGp0Qf///wNxIARBgICA2ANyIAVBF3RrcgshCQJ/AkAgAkEBaiIEIAAoAowBIgVJBEAgACgCiAEgA2pBBGogCTYCACAAKAKAASIFIAFPBEAgACgCfCABaiIFQQFrLQAAQQh0IgkgBUECay0AAHIiBUH//wFxRQRAIAVBEHQMBAsgBUH/B3EhCyAJQYCAAnEhBCAJQYD4AXEiBUGA+AFGBEAgBEEQdCIFQYCAgPwHciALRQ0EGiALQQ10IAVyQYCAgP4HcgwECyAEQRB0IQQgBUUNAiAFQQ10QYCAgPwAcSALQQ10ckGAgIDAA2ogBHIMAwsgASAFQbihwQAQogoACyAEIAVBqKHBABC/BwALIAsgC2dBEGsiBUH//wNxQQhqdEH///8DcSAEQYCAgNgDciAFQRd0a3ILIQkgAkECaiIEIAAoAowBIgVJBEAgACgCiAEgA2pBCGogCTYCACABQQZqIQEgA0EMaiEDIAJBA2ohAiAHQQFqIgcgDkkNAQwOCwsgBCAFQcihwQAQvwcAC0GIpsEAELkIAAsgACgCgAEiAUECdiICIAAoAqwBIAAoArQBayIHSQRAIAIhByABQYCAEEkNGgtBgIAEIAcgB0GAgARPGyIEIAAoAqQBIgFLBEAgASECIAQgAWsiBiAAKAKcASABa0sEQCAaIAEgBkEEQQQQ0AUgACgCpAEhAgsgACgCoAEiAyACQQJ0aiEFIAZBAk8EfyAEIAFBf3NqQQJ0IgEEQCAFQQAgAfwLAAsgAiAGaiIBQQFrIQIgAyABQQJ0akEEawUgBQtBADYCACAAIAJBAWoiATYCpAELAkACQAJAAkACQCAHBEBBASAEIARBAU0bIQVBACECQQQhAQNAIAEgACgCgAEiA0sNAyACIAAoAqQBIgNPDQIgACgCoAEgAWpBBGsgACgCfCABakEEaygAADYCACABQQRqIQEgBSACQQFqIgJHDQALIAAoAqQBIQELIAAoAhAgACgCFCAAKAK0ASAEIAAoAqABIAEQtQMgACgCgAEiAiAEQQJ0IgNJDSMgAEEANgKAASACIANrIQEgB0UNAiACIANGDQQgAUUNAyAAKAJ8IgIgAiADaiAB/AoAAAwDCyACIANB2KfBABC/BwALIAEgA0HIp8EAEKIKAAsgAiADRg0BCyAAIAE2AoABCyAAIAAoArQBIARqIgI2ArQBIAIgACgCrAFHDRQgAEEANgK0AUEJIQELIAAgAToAuAEMEwsgACgCgAEiAUEBdiICIAAoAqwBIAAoArQBayIHSQRAIAIhByABQYCACEkNGAtBgIAEIAcgB0GAgARPGyIEIAAoApgBIgFLBEAgASECIAQgAWsiBiAAKAKQASABa0sEQCAZIAEgBkECQQIQ0AUgACgCmAEhAgsgACgClAEiAyACQQF0aiEFIAZBAk8EfyAEIAFBf3NqQQF0IgEEQCAFQQAgAfwLAAsgAiAGaiIBQQFrIQIgAyABQQF0akECawUgBQtBADsBACAAIAJBAWoiATYCmAELIAcEQEEBIAQgBEEBTRshBUEAIQJBAiEBAkADQCAAKAKAASIDIAFJBEAgASADQainwQAQogoACyAAKAKYASIDIAJLBEAgACgClAEgAWpBAmsgACgCfCABakECay8AADsBACABQQJqIQEgBSACQQFqIgJGDQIMAQsLIAIgA0G4p8EAEL8HAAsgACgCmAEhAQsgACgCECAAKAIUIAAoArQBIAQgACgClAEgARDaAwJAAkACQCAAKAKAASICIARBAXQiA08EQCAAQQA2AoABIAIgA2shASAHRQ0BIAIgA0YNAyABRQ0CIAAoAnwiAiACIANqIAH8CgAADAILDB8LIAIgA0YNAQsgACABNgKAAQsgACAAKAK0ASAEaiICNgK0ASACIAAoAqwBRw0SIABBADYCtAEgAEEIOgC4AQwSC0EtIRIMAQtBGCESCyAAKAKAASASbiICIAAoAqwBIAAoArQBayILSQRAIAIiC0GAgARJDRULQYCABCALIAtBgIAETxsiDyASbCIQIAAoAowBIgFLBEAgASECIBAgAWsiBSAAKAKEASABa0sEQCAUIAEgBUEEQQQQ0AUgACgCjAEhAgsgACgCiAEiAyACQQJ0aiEHIAVBAk8EfyAQIAFBf3NqQQJ0IgEEQCAHQQAgAfwLAAsgAiAFaiIBQQFrIQIgAyABQQJ0akEEawUgBwtBADYCACAAIAJBAWoiATYCjAELIA9BCWwhDgJAIAsEQCAPQeAAbCEGIA9BGGwhB0EBIQFBACERQQAhBQJAA0AgBSEMIAEhBSAMIBJsIgEgACgCgAEiA08NAwJAAkACQAJAIAxBCWwiAiAAKAKMASIDTw0AIAAoAogBIAJBAnRqIAAoAnwgAWotAACzQwAAAMOSQwAAADyUOAIAIAFBA2oiCSAAKAKAASIDTwRAIAkhAQwICyACQQNqIgQgACgCjAEiA08EQCAEIQIMAQsgACgCiAEgBEECdGogACgCfCAJai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEGaiIJIAAoAoABIgNPBEAgCSEBDAgLIAJBBmoiBCAAKAKMASIDTwRAIAQhAgwBCyAAKAKIASAEQQJ0aiAAKAJ8IAlqLQAAs0MAAADDkkMAAAA8lDgCACABQQFqIgkgACgCgAEiA08EQCAJIQEMCAsgAkEBaiIEIAAoAowBIgNPBEAgBCECDAELIAAoAogBIARBAnRqIAAoAnwgCWotAACzQwAAAMOSQwAAADyUOAIAIAFBBGoiCSAAKAKAASIDTwRAIAkhAQwICyACQQRqIgQgACgCjAEiA08EQCAEIQIMAQsgACgCiAEgBEECdGogACgCfCAJai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEHaiIJIAAoAoABIgNPBEAgCSEBDAgLIAJBB2oiBCAAKAKMASIDTwRAIAQhAgwBCyAAKAKIASAEQQJ0aiAAKAJ8IAlqLQAAs0MAAADDkkMAAAA8lDgCACABQQJqIgkgACgCgAEiA08EQCAJIQEMCAsgAkECaiIEIAAoAowBIgNPBEAgBCECDAELIAAoAogBIARBAnRqIAAoAnwgCWotAACzQwAAAMOSQwAAADyUOAIAIAFBBWoiCSAAKAKAASIDTwRAIAkhAQwICyACQQVqIgQgACgCjAEiA08EQCAEIQIMAQsgACgCiAEgBEECdGogACgCfCAJai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEIaiIEIAAoAoABIgNPBEAgBCEBDAgLIAJBCGoiAiAAKAKMASIDTw0AIAAoAogBIAJBAnRqIAAoAnwgBGotAACzQwAAAMOSQwAAADyUOAIAIAAoArABQQFLDQEMAgsgAiADQZinwQAQvwcACwJAAkAgAUEJaiICIAAoAoABIgpPDQAgDEEPbCAOaiIDIAAoAowBIgpPDQMgACgCiAEgA0ECdGogACgCfCACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEMaiICIAAoAoABIgpPDQAgA0EDaiIEIAAoAowBIgpPBEAgBCEDDAQLIAAoAogBIARBAnRqIAAoAnwgAmotAACzQwAAAMOSQwAAADyUOAIAIAFBD2oiAiAAKAKAASIKTw0AIANBBmoiBCAAKAKMASIKTwRAIAQhAwwECyAAKAKIASAEQQJ0aiAAKAJ8IAJqLQAAs0MAAADDkkMAAAA8lDgCACABQRJqIgIgACgCgAEiCk8NACADQQlqIgQgACgCjAEiCk8EQCAEIQMMBAsgACgCiAEgBEECdGogACgCfCACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEVaiICIAAoAoABIgpPDQAgA0EMaiIEIAAoAowBIgpPBEAgBCEDDAQLIAAoAogBIARBAnRqIAAoAnwgAmotAACzQwAAAMOSQwAAADyUOAIAIAFBCmoiAiAAKAKAASIKTw0AIANBAWoiBCAAKAKMASIKTwRAIAQhAwwECyAAKAKIASAEQQJ0aiAAKAJ8IAJqLQAAs0MAAADDkkMAAAA8lDgCACABQQ1qIgIgACgCgAEiCk8NACADQQRqIgQgACgCjAEiCk8EQCAEIQMMBAsgACgCiAEgBEECdGogACgCfCACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEQaiICIAAoAoABIgpPDQAgA0EHaiIEIAAoAowBIgpPBEAgBCEDDAQLIAAoAogBIARBAnRqIAAoAnwgAmotAACzQwAAAMOSQwAAADyUOAIAIAFBE2oiAiAAKAKAASIKTw0AIANBCmoiBCAAKAKMASIKTwRAIAQhAwwECyAAKAKIASAEQQJ0aiAAKAJ8IAJqLQAAs0MAAADDkkMAAAA8lDgCACABQRZqIgIgACgCgAEiCk8NACADQQ1qIgQgACgCjAEiCk8EQCAEIQMMBAsgACgCiAEgBEECdGogACgCfCACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUELaiICIAAoAoABIgpPDQAgA0ECaiIEIAAoAowBIgpPBEAgBCEDDAQLIAAoAogBIARBAnRqIAAoAnwgAmotAACzQwAAAMOSQwAAADyUOAIAIAFBDmoiAiAAKAKAASIKTw0AIANBBWoiBCAAKAKMASIKTwRAIAQhAwwECyAAKAKIASAEQQJ0aiAAKAJ8IAJqLQAAs0MAAADDkkMAAAA8lDgCACABQRFqIgIgACgCgAEiCk8NACADQQhqIgQgACgCjAEiCk8EQCAEIQMMBAsgACgCiAEgBEECdGogACgCfCACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEUaiICIAAoAoABIgpPDQAgA0ELaiIEIAAoAowBIgpPBEAgBCEDDAQLIAAoAogBIARBAnRqIAAoAnwgAmotAACzQwAAAMOSQwAAADyUOAIAIAFBF2oiAiAAKAKAASIKTw0AIANBDmoiAyAAKAKMASIKTw0DIAAoAogBIANBAnRqIAAoAnwgAmotAACzQwAAAMOSQwAAADyUOAIAIAAoArABQQJNDQJBACEKIAYhAgwBCyACIApB6KbBABC/BwALAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQANAIAAoAoABIgMgCiARaiIEQRhqSwRAIAcgCmoiASAAKAKMASIDTw0PIAAoAogBIAJqIAQgACgCfGpBGGotAACzQwAAAMOSQwAAADyUOAIAIAAoAoABIgMgBEEbak0NByAAKAKMASIDIAFBA2pNDQ4gACgCiAEgAmpBDGogBCAAKAJ8akEbai0AALNDAAAAw5JDAAAAPJQ4AgAgACgCgAEiAyAEQR5qTQ0GIAAoAowBIgMgAUEGak0NDSAAKAKIASACakEYaiAEIAAoAnxqQR5qLQAAs0MAAADDkkMAAAA8lDgCACAAKAKAASIDIARBIWpNDQUgACgCjAEiAyABQQlqTQ0MIAAoAogBIAJqQSRqIAQgACgCfGpBIWotAACzQwAAAMOSQwAAADyUOAIAIAAoAoABIgMgBEEkak0NBCAAKAKMASIDIAFBDGpNDQsgACgCiAEgAmpBMGogBCAAKAJ8akEkai0AALNDAAAAw5JDAAAAPJQ4AgAgACgCgAEiAyAEQSdqTQ0DIAAoAowBIgMgAUEPak0NCiAAKAKIASACakE8aiAEIAAoAnxqQSdqLQAAs0MAAADDkkMAAAA8lDgCACAAKAKAASIDIARBKmpNDQIgACgCjAEiAyABQRJqTQ0JIAAoAogBIAJqQcgAaiAAKAJ8IBFqIApqQSpqLQAAs0MAAADDkkMAAAA8lDgCACACQQRqIQIgCkEBaiIKQQNJDQEMEAsLIARBGGoMBgsgBEEqagwFCyAEQSdqDAQLIARBJGoMAwsgBEEhagwCCyAEQR5qDAELIARBG2oLIANByKbBABC/BwALIAFBEmohAQwFCyABQQ9qIQEMBAsgAUEMaiEBDAMLIAFBCWohAQwCCyABQQZqIQEMAQsgAUEDaiEBCyABIANB2KbBABC/BwALIBEgEmohESAHQRVqIQcgBkHUAGohBiAFIAUgD0kiAmohASACRQ0CDAELCyADIApB+KbBABC/BwALIAAoAowBIQELAkACQAJAAkACQAJAAkAgASAOTwRAIAAoAogBIQYgACgCtAEhBUEAIQNBBCEKAkAgACgCsAEiAkECSQRAQQQhB0EAIREMAQsgD0EYbCIEIAFLDQIgD0EPbCERIAYgDkECdGohByACQQJGDQAgBCAQSw0DIAEgEEkNBCAQIARrIQMgBiAEQQJ0aiEKCyAAIAUgDyAGIA4gByARIAogAxCPBSAAKAKAASICIBBJDQQgAEEANgKAASACIBBrIQEgC0UNBSACIBBGDQcgAUUNBiAAKAJ8IgIgAiAQaiAB/AoAAAwGCyAOIAFBmKbBABCiCgALIAQgAUGopsEAEKIKAAsgBCAQQbimwQAQpQoACyAQIAFBuKbBABCiCgALIBAgAkHcq8cAEKIKAAsgAiAQRg0BCyAAIAE2AoABCyAAIAAoArQBIA9qIgI2ArQBIAIgACgCrAFHDRAgAEEANgK0ASAAQQY6ALgBDBALIAEgA0GIp8EAEL8HAAsgACgCgAFBBEEDIAAoAqgBIgNBA0YbIgluIgIgACgCrAEgACgCtAFrIgVJBEAgAiIFQYCABEkNFAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkBBgIAEIAUgBUGAgARPGyIPQQJ0IgYgACgCjAEiAUsEfyAGIAEiAmsiBCAAKAKEASABa0sEQCAUIAEgBEEEQQQQ0AUgACgCjAEhAgsgACgCiAEiAyACQQJ0aiEHIARBAk8EfyAGIAFBf3NqQQJ0IgEEQCAHQQAgAfwLAAsgAiAEaiIBQQFrIQIgAyABQQJ0akEEawUgBwtBADYCACAAIAJBAWo2AowBIAAoAqgBBSADC0EDRwRAIAVFDQxBACEHQQAhAUEAIQNBACECA0AgASAAKAKAASIETw0CIAFBAWoiBiAETw0DIAFBAmoiBiAETw0EQwAAgD8gACgCfCABaiIGLQAAs0MAAP9ClUMAAIC/kiIeIB6UIAZBAWotAACzQwAA/0KVQwAAgL+SIhwgHJSSIAZBAmotAACzQwAA/0KVQwAAgL+SIh0gHZSSk0MAAAAAEJ8JIRsgAiAAKAKMASIGTw0FIAAoAogBIANqIB44AgAgAkEBaiIEIAAoAowBIgZPDQYgACgCiAEgA2pBBGogHDgCACACQQJqIgQgACgCjAEiBk8NByAAKAKIASADakEIaiAdOAIAIAJBA2oiBCAAKAKMASIGTw0IIAAoAogBIANqQQxqIBuROAIAIAFBA2ohASADQRBqIQMgAkEEaiECIAdBAWoiByAPSQ0ACwwLCyAFRQ0LQQAhA0EBIRFBACECA0ACQAJAAkACQCAAKAKAASIBIAJLBEAgAkEBaiISIAFPDQEgAkECaiIOIAFPDQIgAkEDaiILIAFPDQMgACgCfCACaiIHQQJqLQAAIQYgB0EDai0AACEMIActAAAgB0EBai0AACEEIAj9DAAAAAAAAAAAAAAAAAAAAAD9CwNQIARBCHRyIgcgBkEQdCAMQRh0cnIhAUMAAAAAIRwCfwJAIAxBBnYiBkEDRwRAIAggB0H/A3GzQwCA/0OVQ/MENT+UIhuMIBsgBEECcRsiGzgCXCAbIBuUIRwgAUEKdiEBIAZBAkYNAQsgCCABQf8DcbNDAID/Q5VD8wQ1P5QiG4wgGyABQYAEcRsiGzgCWCAcIBsgG5SSIRwgAUEKdiIBIAZBAUYNARoLIAggAUH/A3GzQwCA/0OVQ/MENT+UIhuMIBsgAUGABHEbIhs4AlQgHCAbIBuUkiEcIAFBCnYLIQEgCEHQAGogBkECdGpDAACAPyAMQcAATwR9IAggAUH/A3GzQwCA/0OVQ/MENT+UIhuMIBsgAUGABHEbIhs4AlAgHCAbIBuUkgUgHAuTIhuRQwAAAAAgG0MAAAAAXhs4AgAgAiAAKAKMASIBSQ0EIAIgAUHYpMEAEL8HAAsgAiABQZikwQAQvwcACyASIAFBqKTBABC/BwALIA4gAUG4pMEAEL8HAAsgCyABQcikwQAQvwcACyAAKAKIASADaiAIKgJQOAIAIBIgACgCjAEiAU8NCiAAKAKIASADakEEaiAIKgJUOAIAIA4gACgCjAEiAU8NCSAAKAKIASADakEIaiAIKgJYOAIAIAsgACgCjAEiAU8NCCAAKAKIASADakEMaiAIKgJcOAIAIANBEGohAyACQQRqIQIgDyARSyARQQFqIRENAAsMCgsgASAEQZilwQAQvwcACyAGIARBqKXBABC/BwALIAYgBEG4pcEAEL8HAAsgAiAGQcilwQAQvwcACyAEIAZB2KXBABC/BwALIAQgBkHopcEAEL8HAAsgBCAGQfilwQAQvwcACyALIAFBiKXBABC/BwALIA4gAUH4pMEAEL8HAAsgEiABQeikwQAQvwcACyAFRQ0AIAAoAowBIQsgACgCiAEhCkEAIQEgACgCCCIMIAAoArQBIgRrIgJBACACIAxNGyEGIAAoAgQgBEEYbGpBFGohAkEEIQMDQCABIAZGDQIgAUH/////A0YNAyADIAtLDQQgCCAK/QACAP0LBFAgAkECaiAIQdAAahDEBCIHQRB2OgAAIAIgBzsBACADQQRqIQMgCkEQaiEKIAJBGGohAiAPIAFBAWoiAUcNAAsLIAAoAoABIgIgCSAPbCIDSQ0eIABBADYCgAEgAiADayEBIAVFDQMgAiADRg0FIAFFDQQgACgCfCICIAIgA2ogAfwKAAAMBAsgASAEaiAMQcTUxwAQvwcAC0F8QQBBtNjHABClCgALIAMgC0G02McAEKIKAAsgAiADRg0BCyAAIAE2AoABCyAAIAAoArQBIA9qIgI2ArQBIAIgACgCrAFHDQ4gAEEANgK0ASAAQQU6ALgBDA4LIAAoAoABIgFBA24iAiAAKAKsASAAKAK0AWsiB0kEQCACIQcgAUGAgAxJDRMLQYCABCAHIAdBgIAETxsiBEEDbCIJIAAoAowBIgFLBEAgASECIAkgAWsiBiAAKAKEASABa0sEQCAUIAEgBkEEQQQQ0AUgACgCjAEhAgsgACgCiAEiAyACQQJ0aiEFIAZBAk8EfyAJIAFBf3NqQQJ0IgEEQCAFQQAgAfwLAAsgAiAGaiIBQQFrIQIgAyABQQJ0akEEawUgBQtBADYCACAAIAJBAWoiATYCjAELAkACQAJAAkACQAJAAkACQAJAAkAgBwRAQQEgBCAEQQFNG0EDbCEFQQAhAUEIIQIDQCABIAAoAoABIgNPDQIgASAAKAKMASIDTw0DIAAoAogBIAJqQQhrIAAoAnwgAWotAACzQwAAgD2UQwAAIMGSEKYEOAIAIAFBAWoiBiAAKAKAASIDTw0EIAYgACgCjAEiA08NBSAAKAKIASACakEEayAAKAJ8IAFqQQFqLQAAs0MAAIA9lEMAACDBkhCmBDgCACABQQJqIgYgACgCgAEiA08NBiAGIAAoAowBIgNPDQcgACgCiAEgAmogACgCfCABakECai0AALNDAACAPZRDAAAgwZIQpgQ4AgAgAkEMaiECIAUgAUEDaiIBRw0ACyAAKAKMASEBCyAAIAAoArQBIAQgACgCiAEgARCgBiAAKAKAASICIAlJDQYgAEEANgKAASACIAlrIQEgB0UNByACIAlGDQkgAUUNCCAAKAJ8IgIgAiAJaiAB/AoAAAwICyABIANBuKPBABC/BwALIAEgA0HIo8EAEL8HAAsgBiADQdijwQAQvwcACyAGIANB6KPBABC/BwALIAYgA0H4o8EAEL8HAAsgBiADQYikwQAQvwcACyAJIAJB3KvHABCiCgALIAIgCUYNAQsgACABNgKAAQsgACAAKAK0ASAEaiICNgK0ASACIAAoAqwBRw0NIABBADYCtAEgAEEEOgC4AQwNCyAAKAKAASIBQQNuIgIgACgCrAEgACgCtAFrIgdJBEAgAiEHIAFBgIAMSQ0SC0GAgAQgByAHQYCABE8bIgRBA2wiCSAAKAKMASIBSwRAIAEhAiAJIAFrIgYgACgChAEgAWtLBEAgFCABIAZBBEEEENAFIAAoAowBIQILIAAoAogBIgMgAkECdGohBSAGQQJPBH8gCSABQX9zakECdCIBBEAgBUEAIAH8CwALIAIgBmoiAUEBayECIAMgAUECdGpBBGsFIAULQQA2AgAgACACQQFqIgE2AowBCwJAAkACQAJAAkACQAJAAkACQAJAIAcEQEEBIAQgBEEBTRtBA2whBUEAIQFBCCECA0AgASAAKAKAASIDTw0CIAEgACgCjAEiA08NAyAAKAKIASACakEIayAAKAJ8IAFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQFqIgYgACgCgAEiA08NBCAGIAAoAowBIgNPDQUgACgCiAEgAmpBBGsgACgCfCABakEBai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUECaiIGIAAoAoABIgNPDQYgBiAAKAKMASIDTw0HIAAoAogBIAJqIAAoAnwgAWpBAmotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAJBDGohAiAFIAFBA2oiAUcNAAsgACgCjAEhAQsgACAAKAK0ASAEIAAoAogBIAEQxgQgACgCgAEiAiAJSQ0GIABBADYCgAEgAiAJayEBIAdFDQcgAiAJRg0JIAFFDQggACgCfCICIAIgCWogAfwKAAAMCAsgASADQdiiwQAQvwcACyABIANB6KLBABC/BwALIAYgA0H4osEAEL8HAAsgBiADQYijwQAQvwcACyAGIANBmKPBABC/BwALIAYgA0Goo8EAEL8HAAsgCSACQdyrxwAQogoACyACIAlGDQELIAAgATYCgAELIAAgACgCtAEgBGoiAjYCtAEgAiAAKAKsAUcNDCAAQQA2ArQBIABBAzoAuAEMDAsgACgCgAEiAiAAKAKsASAAKAK0AWsiB0kEQCACIgdBgIAESQ0RC0GAgAQgByAHQYCABE8bIgQgACgCjAEiAUsEQCABIQIgBCABayIGIAAoAoQBIAFrSwRAIBQgASAGQQRBBBDQBSAAKAKMASECCyAAKAKIASIDIAJBAnRqIQUgBkECTwR/IAQgAUF/c2pBAnQiAQRAIAVBACAB/AsACyACIAZqIgFBAWshAiADIAFBAnRqQQRrBSAFC0EANgIAIAAgAkEBaiIBNgKMAQsCQAJAAkACQAJAAkAgBwRAQwAAgD9DAAAAQCAALAC6AUEAThshG0EBIQNBASAEIARBAU0bIQVBACEBA0AgASAAKAKAASICTw0CIAEgACgCjAEiAk8NAyAAKAKIASABQQJ0aiAbIAAoAnwgAWotAACzQwAAf0OVlDgCACADIgFBAWohAyABIAVHDQALIAAoAowBIQELIAAoAgQgACgCCCAAKAK0ASAEIAAoAogBIAEQvwIgACgCgAEiAiAESQ0CIABBADYCgAEgAiAEayEBIAdFDQMgAiAERg0FIAFFDQQgACgCfCICIAIgBGogAfwKAAAMBAsgASACQbiiwQAQvwcACyABIAJByKLBABC/BwALIAQgAkHcq8cAEKIKAAsgAiAERg0BCyAAIAE2AoABCyAAIAAoArQBIARqIgI2ArQBIAIgACgCrAFHDQsgAEEANgK0ASAAQQI6ALgBDAsLIAZFDQFBASAALQC5AXSzIRtBCSEBQQAhB0EAIQNBACECA0AgAUEGayIEIAAoAoABIgVLDQogAiAAKAKMASIFTw0NIAAoAogBIANqIAAoAnwgAWoiBUEHay0AACIEQRB0IAVBCWstAAByIAVBCGstAABBCHRyIgVBgICAeHIgBSAEwEEASBuyIBuVOAIAIAFBA2siBCAAKAKAASIFSw0MIAJBAWoiBCAAKAKMASIFTw0PIAAoAogBIANqQQRqIAAoAnwgAWoiBUEEay0AACIEQRB0IAVBBmstAAByIAVBBWstAABBCHRyIgVBgICAeHIgBSAEwEEASBuyIBuVOAIAIAEgACgCgAEiBUsNDiACQQJqIgQgACgCjAEiBU8NAyAAKAKIASADakEIaiAAKAJ8IAFqIgVBAWstAAAiBEEQdCAFQQNrLQAAciAFQQJrLQAAQQh0ciIFQYCAgHhyIAUgBMBBAEgbsiAblTgCACABQQlqIQEgA0EMaiEDIAJBA2ohAiAHQQFqIgcgDkkNAAsLIAZFDQAgACgCjAEhCSAAKAKIASECQQAhASAAKAIIIgQgACgCtAEiBWsiA0EAIAMgBE0bIQcgACgCBCAFQRhsaiEDQQMhCgNAIAEgB0YNAyABQdWq1aoFRg0EIAkgCkkNBSADIAJBCGogAv1dAgD9VgIAAiIf/VoCCAIgAyAf/VsCAAAgCkEDaiEKIAJBDGohAiADQRhqIQMgDiABQQFqIgFHDQALCyAAKAKAASICIAwgDmwiA0kNEiAAQQA2AoABIAIgA2shASAGRQ0EIAIgA0YNBiABRQ0FIAAoAnwiAiACIANqIAH8CgAADAULIAQgBUGoosEAEL8HAAsgASAFaiAEQcTUxwAQvwcAC0F/QQJB9NfHABClCgALIAogCUH018cAEKIKAAsgAiADRg0BCyAAIAE2AoABCyAAIAAoArQBIA5qIgI2ArQBIAIgACgCrAFHDQEgAEEANgK0ASAAQQE6ALgBDAELCyAEIAVB2KHBABCiCgALIAQgBUH4ocEAEKIKAAsgAiAFQeihwQAQvwcACyABIAVBmKLBABCiCgALIAQgBUGIosEAEL8HAAsgCC0ADyEBCyANIBZqIQ0CQAJAAkACQAJAIAFB/wFxDgMBAgMACyAIQQE2AlQgCEGcg8gANgJQIAhCATcCXCAIIAhBD2qtQoCAgICwA4Q3A0AgCCAIQUBrNgJYIAhBEGoiACAIQdAAahDmBiAAEMEHIQEMBgsgAEEBOgDFUyANQQhqIA0gACgCaCIBIA1rIgJBACABIAJPG0EHSxshDQwCCyATIBZyRQ0BCyANIAAoAmgiAkkNAQsLIA1FDQAgDSAAKAJoIgJNBEBBACEBIABBADYCaCACIA1GDQIgAiANayIDBEAgACgCZCICIAIgDWogA/wKAAALIAAgAzYCaAwCCyANIAJB3KvHABCiCgALQQAhAQsgCEHwAGokACABDwsgAyACQdyrxwAQogoAC7dfBBN/En0IewV+IwBBkAVrIgskACAAKAIIIRYgC0EANgLQAyALQQA2AtQEIAsgADYCqAEgCyABIAJBAnRqIhQ2AqQBIAsgATYCoAEgC0HUA2ohCSALQdQEaiEHQSAhBgJAAkACQAJAAkACfyACQSFJBEAgByEIIAkMAQsgC0EQaiALQdADakF/IAJBAWtndkEBahCXBCALKAIQIghBgYCAgHhHBEAgCA0CQaifxwBBEUGAxccAEKIIAAsgCygC1AQiBkEhSQRAIAYhBCAHIQhBICEGIAkMAQsgCygC1AMhBCAJIQggCygC2AMLIQUCQAJAIAggBCAGSQR/IAUgBEECdGohBQNAIAtBCGogC0GgAWoQ6wQgCygCCEEBcUUNAiAFIAsqAgw4AgAgBUEEaiEFIAYgBEEBaiIERw0ACyAGBSAECzYCACALQSBqIAtBqAFqKAIANgIAIAsgCykCoAE3AxgDQCALIAtBGGoQ6wQgCygCAEEBcUUNAgJ/IAsoAtQEIgZBIUkEQCAGIQUgCSEIQSAhBiAHDAELIAsoAtQDIQUgCygC2AMhCCAJCyEEIAsqAgQhFyAFIAZGBH8gC0HQA2oQgwcgCygC2AMhCCAJIQQgCygC1AMFIAULQQJ0IAhqIBc4AgAgBCAEKAIAQQFqNgIADAALAAsgCCAENgIACyALQRhqIAtB0ANqQYgB/AoAAAJAAn8gCygCnAEiCUEhTwRAIAsoAiAhByALKAIcDAELIAtBHGohByAJCyIIRQRAQwAAAIAhHAwBCyAIQQNxIQQCQCAIQQRJBEBBACEGQwAAAIAhHAwBCyAIQXxxIQhBACEGQwAAAIAhHCAHIQUDQCAcIAUqAgCSIAVBBGoqAgCSIAVBCGoqAgCSIAVBDGoqAgCSIRwgBUEQaiEFIAggBkEEaiIGRw0ACwsgBEUNACAHIAZBAnRqIQUDQCAcIAUqAgCSIRwgBUEEaiEFIARBAWsiBA0ACwsgHENgQqINEJ8JIScgC0EcaiIVIQggCUEhTwRAIAsoAhwhCSALKAIgIQgLAkAgCUUNACAIIQUgCUEBa0H/////A3EiBEEDTwRAIAUgBEEBaiIKQfz///8HcSIHQQJ0aiEFICf9EyEqIAchBiAIIQQDQCAEIAT9AAIAICr95wH9CwIAIARBEGohBCAGQQRrIgYNAAsgByAKRg0BCyAIIAlBAnRqIQgDQCAFIAUqAgAgJ5U4AgAgBUEEaiIFIAhHDQALCyACRQRAIAtCADcDsAFDAAAAACEcDAULIAsoAhwgCygCnAEiCCAIQSBLIggbIQ8gAkEBa0H/////A3FBAWohDCAAKAIEIQogACgCCCEOQQAhBiALKAIgIBUgCBsiCSEIIAFBBGoiBSEEIAEhBwNAIAcoAgAiByAOTw0CIAYgD08NAyAKIAdBJGxqIgcqAgwhGSAHKgIIIRggByoCECAIKgIAIRogC0HQA2ogBxDLAyAL/QAE0AMiKv0fAiAaICv9HwIQ6Ab9EyAq/R8AIBogK/0fABDoBv0gACAq/R8BIBogK/0fARDoBv0gASErIBogLP0fAhDoBv0TIBggGiAs/R8AEOgG/SAAIBkgGiAs/R8BEOgG/SABISwgCEEEaiEIIAQgBCIHIBRHQQJ0aiEEIAwgBkEBaiIGRw0ACyALQgA3A7ABIANDAAAAP5QiAyADlCEoQQAhBiABIQRDAAAAACEcA0AgDiAEKAIAIghNBEAgCCAOQZjNxwAQvwcACyAGIA9PDQQgCiAIQSRsaiIEQRBqIAT9XQII/VYCAAIhKiAJKgIAISQgC0HQA2oiCCAEEMIDIAv9AATQAyEtIAggBCkCABDdAiAoICogLP3lASIu/R8AIiEgIZQgLSAp/Q0ICQoLCAkKCwgJCgsAAQIDIAv9AATQAyIq/R8AIiYgKv0fAiIeIB6SIiKUIhsgKv0fAyIfICr9HwEiGCAYkiIXlCIdkv0TIBggIpQiICAfICYgJpIiA5QiGpP9IAFDAACAPyAmIAOUIgMgGCAXlCIZkpP9IAL95gEiL/0fACIjICOUIC0gKf0NBAUGBwQFBgcEBQYHAAECAyAmIBeUIhggHyAilCIXk/0TQwAAgD8gAyAeICKUIgOSk/0gASAgIBqS/SAC/eYBIjD9HwAiHiAelCAtICn9DQABAgMAAQIDAAECAwABAgNDAACAPyAZIAOSk/0TIBggF5L9IAEgGyAdk/0gAv3mASIq/R8AIh8gH5SSkpKSICQgKf0fABDoBv0TICggLv0fASIbIBuUIC/9HwEiHSAdlCAw/R8BIiAgIJQgKv0fASIaIBqUkpKSkiAkICn9HwEQ6Ab9IAEgKCAu/R8CIhkgGZQgL/0fAiIYIBiUIDD9HwIiFyAXlCAq/R8CIgMgA5SSkpKSICQgKf0fAhDoBv0gAiAhIBuUICMgHZQgHiAglCAfIBqUkpKSICQgKf0fAxDoBv0gAyEpIAlBBGohCSAFIgQgFEdBAnQgBGohBSAbIBmUIB0gGJQgICAXlCAaIAOUkpKSICQgHBDoBiEcICEgGZQgIyAYlCAeIBeUIB8gA5SSkpIgJCAlEOgGISUgBkEBaiIGIAxHDQALDAQLAAsgByAOQejIxwAQvwcACyAGIA9BuM3HABC/BwALIAYgD0GozccAEL8HAAsgCyAcOAK0ASALICU4ArABIAsgKf0LBKABICn9HwC8Qf////8HcUH////7B0sgKf0fAbxB/////wdxQf////sHS3JFICn9HwK8Qf////8HcUH////7B01xRQRAQYjJxwBB7ABB9MnHABCiCAALAn0CQAJAICn9HwO8Qf////8HcUH////7B0sgJbxB/////wdxQf////sHS3IgHLxB/////wdxQf////sHS3JFBEAgC0HQA2ogC0GgAWoQvQEgCyoC2AMgCyoC1AMhAyALKgLQAyEXIAsqAugDIiMgCyoC8AMiISAL/QAEgAQiKf0fASIdlCALKgL0AyIbICn9HwAiIJSTlCALKgLgAyIaIBsgKf0fAiIZlCALKgL4AyIiIB2Uk5QgCyoC5AMiHiAhIBmUICIgIJSTlJOSQwAAAABdBEAgGYz9EyAgjP0gACAdjP0gASEpC0MAAAAAEJ8JIANDAAAAABCfCSAXQwAAAAAQnwmRIhi8Qf////8HcUH////7B0sNAZEiF7xB/////wdxQf////sHSw0BkSIDvEH/////B3FB////+wdLDQEgA/0TIBj9IAAgF/0gAf0MYEKiDWBCog1gQqINYEKiDf3rASEqICn9HwEhGSAp/R8AIRggKf0fAiIDQwAAAABfRQRAIANDAACAP5IhFyAaIBuSIgNDAAAAAF9FBEAgAyAXkiIDQwAAAD8gA5GVIgOUIR8gHiAhkyADlCEbIBggI5MgA5QhHSAiIBmTIAOUDAULIB4gIZNDAAAAPyAXIAOTIgORlSIXlCEfIAMgF5QhGyAiIBmSIBeUIR0gIyAYkiAXlAwEC0MAAIA/IAOTIRcgGyAakyIDQwAAAABfRQ0CICIgGZNDAAAAPyAXIAOTIgORlSIXlCEfICMgGJIgF5QhGyAeICGSIBeUIR0gAyAXlAwDC0GEyscAQewAQfDKxwAQoggAC0GAy8cAQdYAQdjLxwAQoggACyAYICOTQwAAAD8gAyAXkiIDkZUiF5QhHyAiIBmSIBeUIRsgAyAXlCEdIB4gIZIgF5QLICr9HwAiICAq/R8BIhqUQ4/CzT8QggshFyAgICr9HwIiGZRDj8LNPxCCCyEDQwAAekRDvTeGNSAnIBogGZRDj8LNPxCCCyAXIAOSkkMAAEBAlUPmQB8/EIILQ9sPSUGUlSIDIANDvTeGNV0bIgMgA0MAAHpEXhu8IgRB////A3EhBSAEQYCAgIB4cSEIAkAgBEGAgID8B3EiBkGAgID8B0YEQCAFQQ12IAhBEHZyIAVBAEdBCXRyQYD4AXIhDQwBCyAIQRB2IQ0gBkGAgIC4BE0EQCAGQYCAgMQDTwRAIARBDHYgBEH/3wBxQQBHcSAGQQ12IAVBDXZqQYCAAWogDXJqIQ0MAgsgBkGAgICYA0kNASAFQYCAgARyIgRBHiAGQRd2IghrdiEFIARBHSAIayIIdkEBcQR/IAVBAyAIdEEBayAEcUEAR2oFIAULIA1yIQ0MAQsgDUGA+AFyIQ0LICv9GwAiBEH///8DcSEFIARBgICAgHhxIQggK/0bASEKAkAgBEGAgID8B3EiBkGAgID8B0YEQCAFQQ12IAhBEHZyIAVBAEdBCXRyQYD4AXIhEQwBCyAIQRB2IREgBkGAgIC4BE0EQCAGQYCAgMQDTwRAIARBDHYgBEH/3wBxQQBHcSAGQQ12IAVBDXZqQYCAAWogEXJqIREMAgsgBkGAgICYA0kNASAFQYCAgARyIgRBHiAGQRd2IghrdiEFIARBHSAIayIIdkEBcQR/IAVBAyAIdEEBayAEcUEAR2oFIAULIBFyIREMAQsgEUGA+AFyIRELICv9GwIhByAKQf///wNxIQUgCkGAgICAeHEhCAJAIApBgICA/AdxIglBgICA/AdHBEAgCEEQdiEGIAlBgICAuARNBEAgCUGAgIDEA08EQCAKQQx2IApB/98AcUEAR3EgCUENdiAFQQ12akGAgAFqIAZyaiEGDAMLIAlBgICAmANJDQIgBUGAgIAEciIEQR4gCUEXdiIIa3YhBSAEQR0gCGsiCHZBAXEEfyAFQQMgCHRBAWsgBHFBAEdqBSAFCyAGciEGDAILIAZBgPgBciEGDAELIAVBDXYgCEEQdnIgBUEAR0EJdHJBgPgBciEGCyAHQf///wNxIQUgB0GAgICAeHEhCAJAIAdBgICA/AdxIgRBgICA/AdHBEAgCEEQdiEIIARBgICAuARNBEAgBEGAgIDEA08EQCAHQQx2IAdB/98AcUEAR3EgBEENdiAFQQ12akGAgAFqIAhyaiEIDAMLIARBgICAmANJDQIgBUGAgIAEciIJQR4gBEEXdiIFa3YhBCAJQR0gBWsiBXZBAXEEfyAEQQMgBXRBAWsgCXFBAEdqBSAECyAIciEIDAILIAhBgPgBciEIDAELIAVBDXYgCEEQdnIgBUEAR0EJdHJBgPgBciEICyAgEPQFvCIJQf///wNxIQQgCUGAgICAeHEhBQJAIAlBgICA/AdxIgdBgICA/AdGBEAgBEENdiAFQRB2ciAEQQBHQQl0ckGA+AFyIRAMAQsgBUEQdiEQIAdBgICAuARNBEAgB0GAgIDEA08EQCAJQQx2IAlB/98AcUEAR3EgB0ENdiAEQQ12akGAgAFqIBByaiEQDAILIAdBgICAmANJDQEgBEGAgIAEciIJQR4gB0EXdiIFa3YhBCAJQR0gBWsiBXZBAXEEfyAEQQMgBXRBAWsgCXFBAEdqBSAECyAQciEQDAELIBBBgPgBciEQCyAaEPQFvCIHQf///wNxIQQgB0GAgICAeHEhBQJAIAdBgICA/AdxIgpBgICA/AdHBEAgBUEQdiEJIApBgICAuARNBEAgCkGAgIDEA08EQCAHQQx2IAdB/98AcUEAR3EgCkENdiAEQQ12akGAgAFqIAlyaiEJDAMLIApBgICAmANJDQIgBEGAgIAEciIHQR4gCkEXdiIFa3YhBCAHQR0gBWsiBXZBAXEEfyAEQQMgBXRBAWsgB3FBAEdqBSAECyAJciEJDAILIAlBgPgBciEJDAELIARBDXYgBUEQdnIgBEEAR0EJdHJBgPgBciEJCyAZEPQFvCIKQf///wNxIQQgCkGAgICAeHEhBQJAIApBgICA/AdxIgxBgICA/AdHBEAgBUEQdiEHIAxBgICAuARNBEAgDEGAgIDEA08EQCAKQQx2IApB/98AcUEAR3EgDEENdiAEQQ12akGAgAFqIAdyaiEHDAMLIAxBgICAmANJDQIgBEGAgIAEciIKQR4gDEEXdiIFa3YhBCAKQR0gBWsiBXZBAXEEfyAEQQMgBXRBAWsgCnFBAEdqBSAECyAHciEHDAILIAdBgPgBciEHDAELIARBDXYgBUEQdnIgBEEAR0EJdHJBgPgBciEHC7wiCkH///8DcSEEIB28IQ8CfiAEQQ12IhMgCkGAgICAeHEiBUEQdnIgBEEAR0EJdHJBgPgBcq0gCkGAgID8B3EiDkGAgID8B0YNABogBUEQdiEMAkAgDkGAgIC4BE0EQCATIA5BDXZqQYCAAWogDHKtIApBDHYgCkH/3wBxQQBHca18IA5BgICAxANPDQIaIA5BgICAmANJDQEgBEGAgIAEciIKQR4gDkEXdiIFa3YhBCAKQR0gBWsiBXZBAXEEfyAEQQMgBXRBAWsgCnFBAEdqBSAECyAMcq0MAgsgDEGA+AFyrQwBCyAMrQshMiAbvCESIA9B////A3EhBCAPQYCAgIB4cSEFAn4gD0GAgID8B3EiDkGAgID8B0cEQCAFQRB2IQwgDkGAgIC4BE0EQCAOQQ12IARBDXZqQYCAAWogDHKtIA9BDHYgD0H/3wBxQQBHca18IA5BgICAxANPDQIaIA5BgICAmANPBEAgBEGAgIAEciIKQR4gDkEXdiIFa3YhBCAKQR0gBWsiBXZBAXEEfyAEQQMgBXRBAWsgCnFBAEdqBSAECyAMcq0MAwsgDK0MAgsgDEGA+AFyrQwBCyAFQRB2IARBDXZyIARBAEdBCXRyQYD4AXKtCyEzIB+8IQ8gEkH///8DcSEEIBJBgICAgHhxIQUCfiASQYCAgPwHcSIOQYCAgPwHRwRAIAVBEHYhDCAOQYCAgLgETQRAIA5BDXYgBEENdmpBgIABaiAMcq0gEkEMdiASQf/fAHFBAEdxrXwgDkGAgIDEA08NAhogDkGAgICYA08EQCAEQYCAgARyIgpBHiAOQRd2IgVrdiEEIApBHSAFayIFdkEBcQR/IARBAyAFdEEBayAKcUEAR2oFIAQLIAxyrQwDCyAMrQwCCyAMQYD4AXKtDAELIAVBEHYgBEENdnIgBEEAR0EJdHJBgPgBcq0LITQgD0H///8DcSEEIA9BgICAgHhxIQUCfiAPQYCAgPwHcSIOQYCAgPwHRwRAIAVBEHYhDCAOQYCAgLgETQRAIA5BDXYgBEENdmpBgIABaiAMcq0gD0EMdiAPQf/fAHFBAEdxrXwgDkGAgIDEA08NAhogDkGAgICYA08EQCAEQYCAgARyIgpBHiAOQRd2IgVrdiEEIApBHSAFayIFdkEBcQR/IARBAyAFdEEBayAKcUEAR2oFIAQLIAxyrQwDCyAMrQwCCyAMQYD4AXKtDAELIAVBEHYgBEENdnIgBEEAR0EJdHJBgPgBcq0LITUgACgCCCIOIAAoAgBGBEBBACEMIwBBIGsiDyQAAkACQEEEIAAoAgAiCkEBdCIFIAVBBE0bIgStQiR+IjFCIIhQRQ0AIDGnIgVB/P///wdLDQAgDyAKBH8gDyAKQSRsNgIcIA8gACgCBDYCFEEEBUEACzYCGCAPQQhqQQQgBSAPQRRqENIHIA8oAghBAUcNASAPKAIQGiAPKAIMIQwLIAxB6MvHABDQCQALIA8oAgwhBSAAIAQ2AgAgACAFNgIEIA9BIGokAAsgACgCBCAOQSRsaiIFICz9WgIQAiAFICz9WwIIACAFIAc7ASAgBSAJOwEeIAUgEDsBHCAFIAg7ARogBSAGOwEYIAUgETsBFiAFIA07ARQgBSAyQv//A4MgM0IQhkKAgPz/D4MgNEIghkKAgICA8P8/gyA1QjCGhISENwIAIAAgDkEBajYCCCALQdADaiABIBQQwQMgACgCFCIJIAAoAgxGBEBBACEGIwBBIGsiCiQAAkACQEEEIABBDGoiBygCACIEQQF0IgggCEEETRsiBa1CGH4iMUIgiFBFDQAgMaciCEH8////B0sNACAKIAQEfyAKIARBGGw2AhwgCiAHKAIENgIUQQQFQQALNgIYIApBCGpBBCAIIApBFGoQ0gcgCigCCEEBRw0BIAooAhAaIAooAgwhBgsgBkH4y8cAENAJAAsgCigCDCEIIAcgBTYCACAHIAg2AgQgCkEgaiQACyAAKAIQIAlBGGxqIgggC/0AAtAD/QsCACAIQRBqIAtB4ANqKQIANwIAIAAgCUEBajYCFAJAIAAoAjxFDQAgC0HgAWoiEv0MAAAAAAAAAAAAAAAAAAAAAP0LBAAgC0HQAWr9DAAAAAAAAAAAAAAAAAAAAAD9CwQAIAv9DAAAAAAAAAAAAAAAAAAAAAD9CwTAAQJAIAJFBEAgACgCICEQDAELIAsoAiAgFSALKAKcASIFQSBLIggbIQ8gCygCHCAFIAgbIREgAUEEaiEGIAAoAhwhDiAAKAIgIRBBACEFQQEhCCABIQkCQANAIAUgEUkEQCAJKAIAIgcgEE8NAiAGIQkgCCEEIA8gBUECdGoqAgAhAyAOIAdBEmxqIQVBACEIA0AgBUECai8BACENAn8gBS8BACIGQf//AXFFBEAgBkEQdAwBCyAGQf8HcSEKIAZBgIACcSEHIAZBgPgBcSIGQYD4AUYEQCAHQRB0IgZBgICA/AdyIApFDQEaIAYgCkENdHJBgICA/gdyDAELIAdBEHQiByAGQQ10QYCAgPwAcSAKQQ10ckGAgIDAA2pyIAYNABogCiAKZ0EQayIGQf//A3FBCGp0Qf///wNxIAdBgICA2ANyIAZBF3RrcgshDCAFQQRqLwEAIRMCfyANQf//AXEEQCANQf8HcSEKIA1BgIACcSEHIA1BgPgBcSIGQYD4AUcEQCAHQRB0IgcgBkENdEGAgID8AHEgCkENdHJBgICAwANqciAGDQIaIAogCmdBEGsiBkH//wNxQQhqdEH///8DcSAHQYCAgNgDciAGQRd0a3IMAgsgB0EQdCIGIApBDXRyQYCAgP4HciAKDQEaIAZBgICA/AdyDAELIA1BEHQLIQogC0HQA2ogCGoCfyATQf//AXEEQCATQf8HcSENIBNBgIACcSEHIBNBgPgBcSIGQYD4AUcEQCAHQRB0IgcgBkENdEGAgID8AHEgDUENdHJBgICAwANqciAGDQIaIA0gDWdBEGsiBkH//wNxQQhqdEH///8DcSAHQYCAgNgDciAGQRd0a3IMAgsgB0EQdCIGIA1BDXRyQYCAgP4HciANDQEaIAZBgICA/AdyDAELIBNBEHQLviADIAtBwAFqIAhqIgZBCGoqAgAQ6Ab9EyAMviADIAYqAgAQ6Ab9IAAgCr4gAyAGQQRqKgIAEOgG/SAB/QsEACAFQQZqIQUgCEEQaiIIQTBHDQALIBIgC0HwA2r9AAQA/QsEACALQdABaiALQeADav0ABAD9CwQAIAsgC/0ABNAD/QsEwAEgBCAJIBRHIgdqIQggCSAHQQJ0aiEGIAQhBSAHDQEMAwsLIAUgEUH4zMcAEL8HAAsgByAQQYjNxwAQvwcACyALQcABaiEFQQAhCANAIAUoAgAiB0H///8DcSEGIAdBgICAgHhxIQQgBUEEaigCACEPAkAgB0GAgID8B3EiCkGAgID8B0YEQCAGQQ12IARBEHZyIAZBAEdBCXRyQYD4AXIhCQwBCyAEQRB2IQkgCkGAgIC4BE0EQCAKQYCAgMQDTwRAIAdBDHYgB0H/3wBxQQBHcSAKQQ12IAZBDXZqQYCAAWogCXJqIQkMAgsgCkGAgICYA0kNASAGQYCAgARyIgdBHiAKQRd2IgRrdiEGIAdBHSAEayIEdkEBcQR/IAZBAyAEdEEBayAHcUEAR2oFIAYLIAlyIQkMAQsgCUGA+AFyIQkLIAVBCGooAgAhDiAPQf///wNxIQYgD0GAgICAeHEhBAJAIA9BgICA/AdxIgxBgICA/AdHBEAgBEEQdiEHIAxBgICAuARNBEAgDEGAgIDEA08EQCAPQQx2IA9B/98AcUEAR3EgDEENdiAGQQ12akGAgAFqIAdyaiEHDAMLIAxBgICAmANJDQIgBkGAgIAEciIKQR4gDEEXdiIEa3YhBiAKQR0gBGsiBHZBAXEEfyAGQQMgBHRBAWsgCnFBAEdqBSAGCyAHciEHDAILIAdBgPgBciEHDAELIAZBDXYgBEEQdnIgBkEAR0EJdHJBgPgBciEHCyAOQf///wNxIQYgDkGAgICAeHEhBAJAIA5BgICA/AdxIgxBgICA/AdHBEAgBEEQdiENIAxBgICAuARNBEAgDEGAgIDEA08EQCAOQQx2IA5B/98AcUEAR3EgDEENdiAGQQ12akGAgAFqIA1yaiENDAMLIAxBgICAmANJDQIgBkGAgIAEciIKQR4gDEEXdiIEa3YhBiAKQR0gBGsiBHZBAXEEfyAGQQMgBHRBAWsgCnFBAEdqBSAGCyANciENDAILIA1BgPgBciENDAELIAZBDXYgBEEQdnIgBkEAR0EJdHJBgPgBciENCyALQdADaiAIaiIEIAk7AQAgBEEEaiANOwEAIARBAmogBzsBACAFQRBqIQUgCEEGaiIIQRJHDQALIAtB0AJqIgQgC0HgA2ovAQA7AQAgCyAL/QAB0AP9CwPAAiAAKAIYIBBGBEBBACEJIwBBIGsiCiQAAkACQEEEIABBGGoiBygCACIGQQF0IgggCEEETRsiBa1CEn4iMUIgiFBFDQAgMaciCEH+////B0sNACAKIAYEfyAKIAZBEmw2AhwgCiAHKAIENgIUQQIFQQALNgIYIApBCGpBAiAIIApBFGoQ0gcgCigCCEEBRw0BIAooAhAaIAooAgwhCQsgCUGIzMcAENAJAAsgCigCDCEIIAcgBTYCACAHIAg2AgQgCkEgaiQACyAAKAIcIBBBEmxqIgggC/0AA8AC/QsBACAIQRBqIAQvAQA7AQAgACAQQQFqNgIgIAAoAjxBAU0NACALQfABakEAQdAA/AsAAkAgAkUEQCAAKAIsIRAMAQsgCygCICAVIAsoApwBIgVBIEsiCBshEiALKAIcIAUgCBshESABQQRqIQYgACgCKCEPIAAoAiwhEEEAIQVBASEIIAEhCQJAA0AgBSARSQRAIAkoAgAiCSAQTw0CIAghBCASIAVBAnRqKgIAIQMgDyAJQR5saiEFQQAhCANAIAVBAmovAQAhDAJ/IAUvAQAiCUH//wFxRQRAIAlBEHQMAQsgCUH/B3EhCiAJQYCAAnEhByAJQYD4AXEiCUGA+AFGBEAgB0EQdCIJQYCAgPwHciAKRQ0BGiAJIApBDXRyQYCAgP4HcgwBCyAHQRB0IgcgCUENdEGAgID8AHEgCkENdHJBgICAwANqciAJDQAaIAogCmdBEGsiCUH//wNxQQhqdEH///8DcSAHQYCAgNgDciAJQRd0a3ILIQ4gBUEEai8BACETAn8gDEH//wFxBEAgDEH/B3EhCiAMQYCAAnEhByAMQYD4AXEiCUGA+AFHBEAgB0EQdCIHIAlBDXRBgICA/ABxIApBDXRyQYCAgMADanIgCQ0CGiAKIApnQRBrIglB//8DcUEIanRB////A3EgB0GAgIDYA3IgCUEXdGtyDAILIAdBEHQiCSAKQQ10ckGAgID+B3IgCg0BGiAJQYCAgPwHcgwBCyAMQRB0CyEMIAtB0ANqIgogCGoCfyATQf//AXEEQCATQf8HcSENIBNBgIACcSEHIBNBgPgBcSIJQYD4AUcEQCAHQRB0IgcgCUENdEGAgID8AHEgDUENdHJBgICAwANqciAJDQIaIA0gDWdBEGsiCUH//wNxQQhqdEH///8DcSAHQYCAgNgDciAJQRd0a3IMAgsgB0EQdCIJIA1BDXRyQYCAgP4HciANDQEaIAlBgICA/AdyDAELIBNBEHQLviADIAtB8AFqIgkgCGoiB0EIaioCABDoBv0TIA6+IAMgByoCABDoBv0gACAMviADIAdBBGoqAgAQ6Ab9IAH9CwQAIAVBBmohBSAIQRBqIghB0ABHDQALIAkgCkHQAPwKAAAgBCAGIgkgFEciB2ohCCAGIAdBAnRqIQYgBCEFIAcNAQwDCwsgBSARQdjMxwAQvwcACyAJIBBB6MzHABC/BwALIAtB8AFqIQVBACEIA0AgBSgCACIHQf///wNxIQYgB0GAgICAeHEhBCAFQQRqKAIAIQ8CQCAHQYCAgPwHcSIKQYCAgPwHRgRAIAZBDXYgBEEQdnIgBkEAR0EJdHJBgPgBciEJDAELIARBEHYhCSAKQYCAgLgETQRAIApBgICAxANPBEAgB0EMdiAHQf/fAHFBAEdxIApBDXYgBkENdmpBgIABaiAJcmohCQwCCyAKQYCAgJgDSQ0BIAZBgICABHIiB0EeIApBF3YiBGt2IQYgB0EdIARrIgR2QQFxBH8gBkEDIAR0QQFrIAdxQQBHagUgBgsgCXIhCQwBCyAJQYD4AXIhCQsgBUEIaigCACEOIA9B////A3EhBiAPQYCAgIB4cSEEAkAgD0GAgID8B3EiDEGAgID8B0cEQCAEQRB2IQcgDEGAgIC4BE0EQCAMQYCAgMQDTwRAIA9BDHYgD0H/3wBxQQBHcSAMQQ12IAZBDXZqQYCAAWogB3JqIQcMAwsgDEGAgICYA0kNAiAGQYCAgARyIgpBHiAMQRd2IgRrdiEGIApBHSAEayIEdkEBcQR/IAZBAyAEdEEBayAKcUEAR2oFIAYLIAdyIQcMAgsgB0GA+AFyIQcMAQsgBkENdiAEQRB2ciAGQQBHQQl0ckGA+AFyIQcLIA5B////A3EhBiAOQYCAgIB4cSEEAkAgDkGAgID8B3EiDEGAgID8B0cEQCAEQRB2IQ0gDEGAgIC4BE0EQCAMQYCAgMQDTwRAIA5BDHYgDkH/3wBxQQBHcSAMQQ12IAZBDXZqQYCAAWogDXJqIQ0MAwsgDEGAgICYA0kNAiAGQYCAgARyIgpBHiAMQRd2IgRrdiEGIApBHSAEayIEdkEBcQR/IAZBAyAEdEEBayAKcUEAR2oFIAYLIA1yIQ0MAgsgDUGA+AFyIQ0MAQsgBkENdiAEQRB2ciAGQQBHQQl0ckGA+AFyIQ0LIAtB0ANqIAhqIgQgCTsBACAEQQRqIA07AQAgBEECaiAHOwEAIAVBEGohBSAIQQZqIghBHkcNAAsgC0HWAmoiBiALQeYDaikBADcBACALQdACaiIEIAtB4ANqKQEANwMAIAsgC/0AAdAD/QsDwAIgACgCJCAQRgRAQQAhByMAQSBrIgwkAAJAAkBBBCAAQSRqIgooAgAiCUEBdCIIIAhBBE0bIgWtQh5+IjFCIIhQRQ0AIDGnIghB/v///wdLDQAgDCAJBH8gDCAJQR5sNgIcIAwgCigCBDYCFEECBUEACzYCGCAMQQhqQQIgCCAMQRRqENIHIAwoAghBAUcNASAMKAIQGiAMKAIMIQcLIAdBmMzHABDQCQALIAwoAgwhCCAKIAU2AgAgCiAINgIEIAxBIGokAAsgACgCKCAQQR5saiIIIAv9AAPAAv0LAQAgCEEWaiAGKQEANwEAIAhBEGogBCkDADcBACAAIBBBAWo2AiwgACgCPEECTQ0AIAtB4AJqQQBB8AD8CwACQCACRQRAIAAoAjghEAwBCyALKAIgIBUgCygCnAEiCEEgSyICGyEOIAsoAhwgCCACGyEPIAFBBGohBiAAKAI0IQwgACgCOCEQQQAhBUEBIQgCQANAIAUgD0kEQCABKAIAIgEgEE8NAiAIIQIgDiAFQQJ0aioCACEDIAwgAUEqbGohBUEAIQgDQCAFQQJqLwEAIQcCfyAFLwEAIgFB//8BcUUEQCABQRB0DAELIAFB/wdxIQkgAUGAgAJxIQQgAUGA+AFxIgFBgPgBRgRAIARBEHQiAUGAgID8B3IgCUUNARogASAJQQ10ckGAgID+B3IMAQsgBEEQdCIEIAFBDXRBgICA/ABxIAlBDXRyQYCAgMADanIgAQ0AGiAJIAlnQRBrIgFB//8DcUEIanRB////A3EgBEGAgIDYA3IgAUEXdGtyCyEKIAVBBGovAQAhEQJ/IAdB//8BcQRAIAdB/wdxIQkgB0GAgAJxIQQgB0GA+AFxIgFBgPgBRwRAIARBEHQiBCABQQ10QYCAgPwAcSAJQQ10ckGAgIDAA2pyIAENAhogCSAJZ0EQayIBQf//A3FBCGp0Qf///wNxIARBgICA2ANyIAFBF3RrcgwCCyAEQRB0IgEgCUENdHJBgICA/gdyIAkNARogAUGAgID8B3IMAQsgB0EQdAshByALQdADaiIJIAhqAn8gEUH//wFxBEAgEUH/B3EhEiARQYCAAnEhBCARQYD4AXEiAUGA+AFHBEAgBEEQdCIEIAFBDXRBgICA/ABxIBJBDXRyQYCAgMADanIgAQ0CGiASIBJnQRBrIgFB//8DcUEIanRB////A3EgBEGAgIDYA3IgAUEXdGtyDAILIARBEHQiASASQQ10ckGAgID+B3IgEg0BGiABQYCAgPwHcgwBCyARQRB0C74gAyALQeACaiIBIAhqIgRBCGoqAgAQ6Ab9EyAKviADIAQqAgAQ6Ab9IAAgB74gAyAEQQRqKgIAEOgG/SAB/QsEACAFQQZqIQUgCEEQaiIIQfAARw0ACyABIAlB8AD8CgAAIAIgBiIBIBRHIgRqIQggBiAEQQJ0aiEGIAIhBSAEDQEMAwsLIAUgD0G4zMcAEL8HAAsgASAQQcjMxwAQvwcACyALQeACaiEFQQAhCANAIAUoAgAiBEH///8DcSECIARBgICAgHhxIQEgBUEEaigCACEMAkAgBEGAgID8B3EiBkGAgID8B0YEQCACQQ12IAFBEHZyIAJBAEdBCXRyQYD4AXIhCQwBCyABQRB2IQkgBkGAgIC4BE0EQCAGQYCAgMQDTwRAIARBDHYgBEH/3wBxQQBHcSAGQQ12IAJBDXZqQYCAAWogCXJqIQkMAgsgBkGAgICYA0kNASACQYCAgARyIgRBHiAGQRd2IgFrdiECIARBHSABayIBdkEBcQR/IAJBAyABdEEBayAEcUEAR2oFIAILIAlyIQkMAQsgCUGA+AFyIQkLIAVBCGooAgAhCiAMQf///wNxIQIgDEGAgICAeHEhAQJAIAxBgICA/AdxIgZBgICA/AdHBEAgAUEQdiEHIAZBgICAuARNBEAgBkGAgIDEA08EQCAMQQx2IAxB/98AcUEAR3EgBkENdiACQQ12akGAgAFqIAdyaiEHDAMLIAZBgICAmANJDQIgAkGAgIAEciIEQR4gBkEXdiIBa3YhAiAEQR0gAWsiAXZBAXEEfyACQQMgAXRBAWsgBHFBAEdqBSACCyAHciEHDAILIAdBgPgBciEHDAELIAJBDXYgAUEQdnIgAkEAR0EJdHJBgPgBciEHCyAKQf///wNxIQIgCkGAgICAeHEhAQJAIApBgICA/AdxIgZBgICA/AdHBEAgAUEQdiENIAZBgICAuARNBEAgBkGAgIDEA08EQCAKQQx2IApB/98AcUEAR3EgBkENdiACQQ12akGAgAFqIA1yaiENDAMLIAZBgICAmANJDQIgAkGAgIAEciIEQR4gBkEXdiIBa3YhAiAEQR0gAWsiAXZBAXEEfyACQQMgAXRBAWsgBHFBAEdqBSACCyANciENDAILIA1BgPgBciENDAELIAJBDXYgAUEQdnIgAkEAR0EJdHJBgPgBciENCyALQeYEaiAIaiIBIAk7AQAgAUEEaiANOwEAIAFBAmogBzsBACAFQRBqIQUgCEEGaiIIQSpHDQALIAAoAjAgEEYEQEEAIQUjAEEgayIGJAACQAJAQQQgAEEwaiIEKAIAIghBAXQiASABQQRNGyICrUIqfiIxQiCIUEUNACAxpyIBQf7///8HSw0AIAYgCAR/IAYgCEEqbDYCHCAGIAQoAgQ2AhRBAgVBAAs2AhggBkEIakECIAEgBkEUahDSByAGKAIIQQFHDQEgBigCEBogBigCDCEFCyAFQajMxwAQ0AkACyAGKAIMIQEgBCACNgIAIAQgATYCBCAGQSBqJAALIAAoAjQgEEEqbGoiASAL/QAB5gT9CwEAIAFBKGogC0GOBWovAQA7AQAgAUEgaiALQYYFaikBADcBACABQRBqIAtB9gRq/QABAP0LAQAgACAQQQFqNgI4CwJAAkAgCygCnAEiAUEhTwRAIAsoAiAiCEEEaygCACIAQXhxIgIgAUECdCIBQQRBCCAAQQNxIgAbakkNASAAQQAgAiABQSdqSxsNAiAIELQCCyALQZAFaiQAIBYPC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAuKVwMsfwV+AXsjAEHQAmsiByQAIAFBQGshEQJAAkACQAJAAkACQAJAAkAgAS0AYCIKDQAgB0G0AmogERCeAiAHLQC0AiIKQR1GBEAgAS0AYCIKDQEMAwsMAQsgASAKQQFrIgg6AGAgASABKQNAIjRCAYgiMzcDQAJAAkACQAJAAkACQAJAAkACQCA0QgGDUARAQYCAgIB4IR0MAQsgCkEETQRAIAdBtAJqIBEQngIgBy0AtAIiCkEdRw0KIAEtAGAiCEEESQ0LIBEpAwAhMwsgASAIQQRrOgBgIAEgM0IEiDcDQCAzp0EPcSIOQQFrQQtPBEBBDSEKDAwLQQQgDnQiCBB+IgpFDQMgCkEEay0AAEEDcUUgCEVyRQRAIApBACAI/AsACyAKrUEBIA50Ih2tQiCGhCE0CyA0pyEkQQEhCEECIR5BASElIARFDQECQAJAAkAgAS0AYCIKRQRAIAdBtAJqIBEQngIgBy0AtAIiCkEdRw0BIAEtAGAiCkUNBAsgASAKQQFrIgQ6AGAgASABKQNAIjNCAYgiNTcDQCAzQgGDUA0EIApBA00EQCAHQbQCaiAREJ4CIActALQCIgpBHUcNASABLQBgIgRBA0kNBCARKQMAITULIAEgBEEDazoAYCABIDVCA4g3A0BBfyA1p0EHcUECaiIcdEF/cyIEIAJB//8DcWogHHYiJSAEIANB//8DcWogHHYiBGwiIEECdCEUICAEQCAUEH4iDEUNBiAMQQRrLQAAQQNxRSAURXJFBEAgDEEAIBT8CwALIAdBtAJqIAEgJSAEQQAgDCAUEEUgBy0AtAIiCkEdRg0DIAcpArwCITQgBygCuAIhDSAHLwG2AiELIActALUCIQkgDCAUQQEQ1gcMCwsgB0G0AmogASAlIARBAEEBIBQQRSAHLQC0AiIKQR1GDQELIAcpArwCITQgBygCuAIhDSAHLwG2AiELIActALUCIQkMCQtBACEgDAILICBBAXQQfiIeRQ0CAkACQCAUQQRrIg1FBEAgDCEKDAELIA1BAnZBAWpB/v///wdxIQsgHiEEIAwhCgNAIAQgCi8AACIJQQh0IAlBCHZyIgk7AQAgBEECaiAKQQRqLwAAIhBBCHQgEEEIdnIiEDsBACAIIAlB//8DcSIJQQFqIAggCUsbIgggEEH//wNxIglBAWogCCAJSxshCCAKQQhqIQogBEEEaiEEIAsgG0ECaiIbRw0ACyANQQRxDQELIB4gG0EBdGogCi8AACIEQQh0IARBCHZyIgQ7AQAgCCAEQf//A3EiBEEBaiAEIAhJGyEIIBtBAWohGwsgDCAUQQEQ1gcMAQtBDyEKDAYLIDRCIIinIR8gB0EANgIcIAdCgICAgMAANwIUQQEgCCAIQQFNGyEwQQEgDkEPcXQhMSAHQbgCaiEhIAdBtAJqIgRBAXIhLSAHQbIBaiEWIAdBsQFqISYgB0G0AWohIiAEQQJyISNBBCEUQQAhCgNAIAohBEEAIQwgB0EAOwGUASAHQYCAgIB4NgKQASAHQQA7AXggB0GAgICAeDYCdCAHQQA7AVwgB0GAgICAeDYCWCAHQQA7AUAgB0GAgICAeDYCPCAHQQA7ASQgB0GAgICAeDYCIEEBIQoCQAJ/AkACQAJAA0AgDCEnIAohDCAnQQF0QdSHxwBqLwEAAkAgAS0AYCIKDQAgB0G0AmogERCeAgJAIActALQCIgpBHUYEQCABLQBgIgoNAkEPIQoMAQsgByAjKQEANwPIASAHICNBBmopAQA3Ac4BIActALUCIQELIBYgBykDyAE3AQAgFkEGaiAHKQHOATcBACAHIAE6ALEBIAcgCjoAsAEMBAtBACAxQQAgHUGAgICAeEcbICcbaiETIAEgCkEBayIKOgBgIAEgASkDQCIzQgGIIjQ3A0ACQAJAAn8CQAJAAkACQAJAAkACQAJAIDNCAYNQRQRAIApB/wFxDQQgB0G0AmogERCeAiAHLQC0AiIKQR1HDQEgAS0AYCIKDQNBDyEKDAILQSYQfiINRQ0SIA1BBGsiCy0AAEEDcQRAIA39DAAAAAAAAAAAAAAAAAAAAAAiOP0LAAAgDUEeakIANwAAIA1BEGogOP0LAAALIAEtAGAiCkEDSw0GIAdBtAJqIBEQngIgBy0AtAIiCkEdRw0EIAEtAGAiCkEETw0GQQ8hCgwFCyAHICMpAQA3A9gBIAcgI0EGaikBADcB3gEgBy0AtQIhAQsgFiAHKQPYATcBACAWQQZqIAcpAd4BNwEAIAcgAToAsQEgByAKOgCwASAHQYGAgIB4NgKsAQwMCyARKQMAITQLIAEgCkEBayIKOgBgIAEgNEIBiCIzNwNAIApB/wFxRQRAIAdBtAJqIBEQngICQAJAIActALQCIgpBHUYEQCABLQBgIgoNAkEPIQoMAQsgByAjKQEANwPoASAHICNBBmopAQA3Ae4BIActALUCIQELIBYgBykD6AE3AQAgFkEGaiAHKQHuATcBACAHIAE6ALEBIAcgCjoAsAEgB0GBgICAeDYCrAEMDAsgESkDACEzCyABIApBAWsiCjoAYCABIDNCAYg3A0ACQAJAQQhBASAzp0EBcRsiCCAKQf8BcUsEQCAHQbQCaiAREJ4CIActALQCIgpBHUcEQCAHQYACaiAhQQhqKAIANgIAIAcgISkCADcD+AEgBy8BtgIhASAHLQC1AiEIDAILIAEtAGAhCgsgCkH/AXEgCE8NAUEPIQoLICIgBykD+AE3AgAgIkEIaiAHQYACaigCADYCACAHIAE7AbIBIAcgCDoAsQEgByAKOgCwASAHQYGAgIB4NgKsAQwLCyABIAogCGsiCToAYCABIAEpA0AiNSAIrSI2iCIzNwNAIBNB//8DcSINIDVCfyA2hkJ/hYOnIgpNBEAMCgsgNEIBg1ANAyAJQf8BcUEHTQRAIAdBtAJqIBEQngICQAJ/IActALQCIghBHUYEQCABLQBgIglBCE8NAkEPDAELIAdBoAJqICFBCGooAgA2AgAgByAhKQIANwOYAiAHLwG2AiESIActALUCIQEgCAshCiAiIAcpA5gCNwIAICJBCGogB0GgAmooAgA2AgAgByASOwGyASAHIAE6ALEBIAcgCjoAsAEgB0GBgICAeDYCrAEMDAsgESkDACEzCyABIAlBCGs6AGAgASAzQgiINwNAIA0gM6dB/wFxIhJLBEBBGBB+IghFDQ8gCEECOwEQIAggEjsBCiAIQQE7AQggCCAKOwECIAhBATsBAEEIEH4iCUUNDyAJIBJBgIAEcjYCBCAJIApBgIAEcjYCACAHQQE7AcQBIAdBAjYCwAEgByAJNgK8ASAHQoOAgIAgNwK0ASAHIAg2ArABIAdBAzYCrAEgCCEKQQMMBQsMCQsgB0GGAmogLUECai0AADoAACAHIC0vAAA7AYQCIAcoArgCIQEgBykCvAIhNAsgJiAHLwGEAjsAACAmQQJqIAdBhgJqLQAAOgAAIAcgCjoAsAEgByA0NwK4ASAHIAE2ArQBDAYLIAEgCkEEayIKOgBgIAEgASkDQCIzQgSIIjQ3A0AgM6dBD3FBAnQhEEFwIQgDQCAKQf8BcUECTQRAIAdBtAJqIBEQngICQAJAIActALQCIgpBHUYEQCABLQBgIgpBA08NAkEPIQoMAQsgB0GQAmogIUEIaigCADYCACAHICEpAgA3A4gCIAcvAbYCIQkgBy0AtQIhAQsgIiAHKQOIAjcCACAiQQhqIAdBkAJqKAIANgIAIAcgCTsBsgEgByABOgCxASAHIAo6ALABDAgLIBEpAwAhNAsgASAKQQNrIgo6AGAgASA0QgOIIjM3A0AgCEHohscAaigCACIJQRJNBEAgDSAJQQF0aiA0p0EHcSIJOwEAIDMhNCAQIAhBBGoiCEYNBAwBCwsgCUETQaSHxwAQvwcACyAHIAo7AbABIAdBgICAgHg2AqwBQYCAgIB4CyETIAcpArgBITQgBygCtAEhDSAHLwGyASELIActALEBIQkMAQsgB0ETNgKgAiAHIA02ApwCIAdBEzYCmAIgB0G0AmogB0GYAmoQngEgBygCxAIhGCAHKALAAiEXIAcoArwCIQsgBygCuAIhDQJAIAcoArQCIhlBgYCAgHhGBEAgDSEKIBghDyAXIQgMAQsgBykCyAIhNAJAAkAgCkH/AXFFBEAgB0G0AmogERCeAgJAIActALQCIgpBHUYEQCABLQBgIgoNAUEPIQoMBAsMAgsgESkDACEzCyABIApBAWsiCToAYCABIDNCAYgiNTcDQCATIRogM0IBg1BFBEACQAJAIApB/wFxQQNNBEAgB0G0AmogERCeAiAHLQC0AiIKQR1HDQRBDyEKIAEtAGAiCUEDSQ0FIBEpAwAhNQsgASAJQQNrIgk6AGAgASA1QgOINwNAIDWnQQF0QQ5xQQJqIhAgCUH/AXFNDQEgB0G0AmogERCeAiAHLQC0AiIKQR1GDQAMAwsgAS0AYCEJC0EPIQogCUH/AXEgEEkNAiABIAkgEGs6AGAgASABKQNAIjMgEK0iNYg3A0AgE0ECa0H//wNxIDNCfyA1hkJ/hYOnIglB//8DcUkNAiAJQQJqIRoLIBNB//8DcSIPBH8gD0EBdCIoEH4iEEUNDCAQQQRrIjItAABBA3FFIChFckUEQCAQQQAgKPwLAAsCQCAaQf//A3FFDQAgNEIgiCEzIDSnIS5BACEKQQghKwJAA0ACQCAHQbQCaiAREJ4CAkACQAJAAkACQAJ/IActALQCIghBHUcEQCAHLQC3AkEYdCAHLwC1AkEIdHIgCHIMAQsgDSEIIBlBgICAgHhGDQIgESkDACI0IDODp0H//wNxIgggLk8NAwJAIBggCEECdGooAgAiCEGAgARPBEAgAS0AYCIVIAhBEHYiCUH/AXFPDQNBDyEJIAcvAbYCIQgMAQsgB0G0AmogDSALIDSnQQp2QT9xIAhBAWsgERDNBiAHLwG2AiEIIActALQCIglBHUYNAwsgBy0AtQJBCHQgCXIgCEEQdHILIQogBygCwAIhDyAHKAK8AiEIIAcoArgCIQsMBwsgASAVIAlrOgBgIAEgNCAJrYg3A0ALAkAgCEH//wNxIhVBEE8EQCAIQRBrIilB//8DcUEDSQ0BDAULIBAgCkH//wNxQQF0aiAIOwEAIAggKyAVGyErIApBAWohCgwDCyABLQBgIglBgoYcIClBA3RB+P8DcXYiCEEHcUkEQCAHQbQCaiAREJ4CIActALQCIglBHUcEQCAHLQC1AkEIdCAJciEKIAcoAsACIQ8gBygCvAIhCCAHKAK4AiELIAcvAbYCISwMAwsgAS0AYCEJCyAJQf8BcSAIQf8BcUkEQEEPIQoMAgsgASAJIAhrOgBgIAEgASkDQCI0IAitQgeDIjWINwNAIBNB//8DcSIIQoOAjICwASApQQR0rULw/wODiKciKiA0Qn8gNYZCf4WDpyIsaiIJIApqQf//A3FJDQMgK0EAIBVBEEYbISkgCkH//wNxIgogCCAIIApJGyIvIAprIgggKiAsakEBa0H//wNxIhUgCCAVSRsiCEEITwRAIAhBAWoiFUEHcSIqQQggKhsiKiAIQX9zaiEIIAkgFSAqayIVayEJIAogFWogECAKQQF0aiEKICn9ECE4A0AgCiA4/QsBACAKQRBqIQogCEEIaiIIDQALIQoLIBAgCkEBdGohCANAIAogL0cEQCAIICk7AQAgCEECaiEIIApBAWohCiAJQQFrIglB//8DcQ0BDAQLCyAvIA9B4InHABC/BwALIAggLkGsgccAEL8HAAsgLEEQdCAKciEKDAMLIApB//8DcSATQf//A3FPDQMgGkEBayIaQf//A3ENAQwDCwtBDyEKCwJAIDIoAgAiCUF4cSITQQRBCCAJQQNxIgkbIChqTwRAIAlBACATIChBJ2pLGw0BIBAQtAIMBQsMGAsMGAsgEAVBAgshCEEdIQoCQAJAIBlBgICAgHhGDQAgGQRAIA1BBGsoAgAiCUF4cSILIBlBA3QiEEEEQQggCUEDcSIJG2pJDRggCUEAIAsgEEEnaksbDRkgDRC0AgsgF0UNACAYQQRrKAIAIglBeHEiDSAXQQJ0IgtBBEEIIAlBA3EiCRtqSQ0XIAlBACANIAtBJ2pLGw0BIBgQtAILIA8hCwwDCwwWCyAHLQC1AkEIdCAKciAHLwG2AkEQdHIhCiAHKALAAiEPIAcoArwCIQggBygCuAIhCwsgGUGAgICAeEYNAAJAIBkEQCANQQRrKAIAIglBeHEiECAZQQN0IhNBBEEIIAlBA3EiCRtqSQ0VIAlBACAQIBNBJ2pLGw0WIA0QtAILIBdFDQEgGEEEaygCACIJQXhxIg0gF0ECdCIQQQRBCCAJQQNxIgkbakkNFCAJQQAgDSAQQSdqSxsNACAYELQCDAELDBQLIApB/wFxQR1HBEAgB0GzAWogCkEYdjoAACAHIA82ArwBIAcgCDYCuAEgByALNgK0ASAHIAo6ALABIAdBgYCAgHg2AqwBIAcgCkEIdjsAsQEMBQsgByAPNgKwAiAHIAg2AqwCIAcgCzYCqAIgB0GsAWogB0GoAmoQngEgBy0AsAEhCiAHKQK4ASE0IAcoArQBIQ0gBy8BsgEhCyAHLQCxASIJIAcoAqwBIhNBgYCAgHhGDQUaCyAHKQLAASEzAkACQCAHQSBqICdBHGxqIggoAgAiEEGAgICAeEYNACAQBEAgCCgCBCIYQQRrKAIAIhdBeHEiGiAQQQN0IhBBBEEIIBdBA3EiFxtqSQ0CIBdBACAaIBBBJ2pLGw0VIBgQtAILIAgoAgwiEEUNACAIKAIQIhhBBGsoAgAiF0F4cSIaIBBBAnQiEEEEQQggF0EDcSIXG2pJDRMgF0EAIBogEEEnaksbDRQgGBC0AgsgCCAzNwIUIAggNDcCDCAIIA02AgggCCALOwEGIAggCToABSAIIAo6AAQgCCATNgIAIAwgDEEFSSIIaiEKIAhFDQYMAQsLDBALAkAgCygCACIBQXhxIgJBKkEuIAFBA3EiARtPBEAgAUEAIAJBzgBPGw0BIA0QtAIMAwsMEAtBoIzIAEEuQdCMyAAQoggMBQsgB0GBgICAeDYCrAFBDyEKIAdBDzoAsAELIAcpArgBITQgBygCtAEhDSAHLwGyASELIActALEBCyEJIAdBIGoQnQIgBARAIBQhAQNAIAEQnQIgAUGMAWohASAEQQFrIgQNAAsLAkAgBygCFCIBBEAgFEEEaygCACICQXhxIgMgAUGMAWwiAUEEQQggAkEDcSICG2pJDQ4gAkEAIAMgAUEnaksbDQ8gFBC0AgsgIEUNCCAeQQRrKAIAIgFBeHEiAiAgQQF0IgNBBEEIIAFBA3EiARtqSQ0NIAFBACACIANBJ2pLGw0AIB4QtAIMCAsMDQsgBygCFCAERgRAIAdBFGoQqgYgBygCGCEUCyAUIARBjAFsaiAHQSBqQYwB/AoAACAHIARBAWoiCjYCHCAKIDBHDQALIAcoAhQhIQJAAkAgHEUEQEEAIQgMAQsgG0UNASAeLwEAIgggBEsNBgsCQAJAAkAgAkH//wNxIhcgA0H//wNxbCIYRQ0AQX8gHHRBf3NB//8DIBwbISggJUH//wNxISUgBkEQayEaIAatQgF8ITRBACAOa0EfcSEnIAJBAWtB//8DcSEiIBQgCEGMAWxqIQ5BACENQQAhEwNAAkAgAkH//wNxRQRAIAdBtAJqIBEQngIgBy0AtAIiCEEdRw0IIA0gE0kNAUGsg8cAELsIAAsDQCAHQbQCaiAREJ4CIActALQCIghBHUcNCCANIBNJDQEgDSANIBduIgggF2wiCWshAwJAIBxFBEBBACELDAELIBsgJSAIQf//A3EgHHZsIANB//8DcSAcdmoiCEsEQCAeIAhBAXRqLwEAIgsgBE0NASALIApBvIPHABC/BwALIAggG0Gk5cQAEL8HAAsgCSADIChyIgMgIiADICJJG2pBAWohEyAUIAtBjAFsaiIOKAIAQYCAgIB4Rw0BIA4oAhxBgICAgHhHDQEgDigCOEGAgICAeEcNASAOKAJUQYCAgIB4Rw0BIA4vAQQiEkGAAk8NASAOLQBYIQsgDi0APCEQIA4tACAhFQJAIBMgDWsgGCAcGyIZRQ0AQQAhCEEBIQkgEkEIdEGA/gNxIAtBGHQgEEEQdHJyIBVyISMCQCA0IA1BAnQiA619IjNCACAzIDRYG0IDfEICiCIzIAZBACADIAZrQQNqIgwgDEEDSyIPG2ogA2tBAnatIjUgMyA1VBsiNiAZQQFrrSI1IDUgNlYbIjZCGFQNACANIDMgBkEAIAwgDxtqIANrQQJ2rSI3IDMgN1QbIjMgNSAzIDVUG6dqQQJ0IANJDQAgNqciCEF/cyAIQQFqIghBA3EiCUEEIAkbIglqIQ8gAyAFaiEMIAggCWsiCEEBaiEJICP9ESE4A0AgDCA4/QsAACAMQRBqIQwgD0EEaiIPDQALCyAZQQFqIQwDQCAIIA1qQQJ0IgMgBksEQCADIAZBuIbHABCjCgALIAYgA2siCEEDSwRAIAMgBWogIzYAACAMIAkiCEEBaiIJRw0BDAILC0EEIAhBqIbHABCiCgALAkAgHUGAgICAeEcEQCASQQh0QYD+A3EgC0EYdHIgFUEQdHIgEHJBvc/W8QFsICd2IgMgH08NASAkIANBAnRqIgMgCzoAAyADIBA6AAIgAyASOgABIAMgFToAAAsgDSAZaiINIBhJDQEMBAsLIAMgH0HsgccAEL8HAAsCQCAYAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAOKAIAQYCAgIB4RwRAIA4oAhQiCCARKQMAIjOnIgkgDi8BGHEiA00NAgJAIA4oAhAgA0ECdGooAgAiCEGAgARPBEAgAS0AYCIJIAhBEHYiA0H/AXFJBEBBDyEJIAcvAbYCIQgMAgsgASAJIANrOgBgIAEgMyADrYg3A0AMAwsgB0G0AmogDigCBCAOKAIIIAlBgPgDcUEKdiAIQQFrIBEQzQYgBy8BtgIhCCAHLQC0AiIJQR1GDQILIAAgBykCuAI3AgQgAEEMaiAHQcACaigCADYCACAHLQC1AiEBIAAgCDsBAiAAIAE6AAEgACAJOgAADBoLIA4vAQQhCAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCEH//wNxIgNBgAJPBEAgA0GYAkkNASAHQQ86ALQCIB1BgICAgHhHDQIgBygCuAIhASAAIAcpArwCNwIIIAAgATYCBCAAQQ86AAAMJgsgDigCHEGAgICAeEYNCSAOKAIwIgkgESkDACIzpyIMIA4vATRxIgNNDS4gDigCLCADQQJ0aigCACILQYCABEkNByABLQBgIgkgC0EQdiIDQf8BcUkEQEEPIQkgBy8BtgIhCwwJCyABIAkgA2s6AGAgASAzIAOtiDcDQAwKCyAIQfwDcUGAAkYEfyAIQf8Ba0H//wNxBSABLQBgIgkgCEH+AWpB/v8DcUEBdiIDQf8BcSIMSQ0LIAEgCSADazoAYCABIAEpA0AiMyADrUL/AYMiNYg3A0AgM0J/IDWGQn+Fg6cgCEEBcUECciAMdGpBAWoLIRYgDigCcEGAgICAeEYNBCAOKAKEASIIIBEpAwAiM6ciCSAOLwGIAXEiA00NDyAOKAKAASADQQJ0aigCACIIQYCABEkNAiABLQBgIgkgCEEQdiIDQf8BcU8NAUEPIQkgBy8BtgIhCAwDCyAHQbQCahDUBCAfIAhBmAJrQf//A3EiCE0NCwJAIA1BAnQiAyAGTQRAIAYgA2siCUEDTQ0OIAMgBWogJCAIQQJ0aigAADYAACANQQFqIgMgE0kNASADDBsLIAMgBkGMhMcAEKMKAAsgESkDACEzIA4oAgBBgICAgHhGDQ0CQCAOKAIUIgkgDi8BGCAzp3EiCEsEQCAOKAIQIAhBAnRqKAIAIglBgIAETw0BIAMMGwsgCCAJQZyBxwAQvwcACyAJQRB2IQsMGAsgASAJIANrOgBgIAEgMyADrYg3A0AMAwsgB0G0AmogDigCdCAOKAJ4IAlBgPgDcUEKdiAIQQFrIBEQzQYgBy8BtgIhCCAHLQC0AiIJQR1GDQILIAAgBykCuAI3AgQgAEEMaiAHQcACaigCADYCACAHLQC1AiEBIAAgCDsBAiAAIAE6AAEgACAJOgAADB8LIA4vAXQhCAsgCEH//wNxQQRJDQogCEECayIDQf//A3FB/wNLDQsgAS0AYCIJIANBAXYiA0H/AXFJBEAgACAmNgIEIABBDzoAAAweCyABIAkgA0H//wFxIgNrOgBgIAEgASkDQCIzIAOtIjWINwNAIDNCfyA1hkJ/hYOnIAhBAXFBAnIgA3RqQQFqIiZB+ABNDREgJkH4AGshCwwSCyAHQbQCaiAOKAIgIA4oAiQgDEGA+ANxQQp2IAtBAWsgERDNBiAHLwG2AiELIActALQCIglBHUYNAgsgACAHKQK4AjcCBCAAQQxqIAdBwAJqKAIANgIAIActALUCIQEgACALOwECIAAgAToAASAAIAk6AAAMGwsgDi0AICELCwJAAn8gDigCOEGAgICAeEcEQCAOKAJMIgkgESkDACIzpyIPIA4vAVBxIgNNDSYCQCAOKAJIIANBAnRqKAIAIgxBgIAETwRAIAEtAGAiCSAMQRB2IgNB/wFxSQRAQQ8hCSAHLwG2AiEMDAILIAEgCSADayIJOgBgIAEgMyADrYg3A0AMBAsgB0G0AmogDigCPCAOKAJAIA9BgPgDcUEKdiAMQQFrIBEQzQYgBy8BtgIiDCAHLQC0AiIJQR1GDQIaCyAAIAcpArgCNwIEIABBDGogB0HAAmooAgA2AgAgBy0AtQIhASAAIAw7AQIgACABOgABIAAgCToAAAwcCyAOLQA8CyEMIAEtAGAhCQsCQCAJQf8BcUEOSw0AIAdBtAJqIBEQngIgBy0AtAIiA0EdRg0AIAAgBykAtQI3AAEgAEEIaiAHQbwCaikAADcAACAAIAM6AAAMGgsCQCAOKAJUQYCAgIB4RwRAIA4oAmgiCSARKQMAIjOnIhIgDi8BbHEiA00NJQJAIA4oAmQgA0ECdGooAgAiD0GAgARPBEAgAS0AYCIJIA9BEHYiA0H/AXFJBEBBDyEJIAcvAbYCIQ8MAgsgASAJIANrOgBgIAEgMyADrYg3A0AMAwsgB0G0AmogDigCWCAOKAJcIBJBgPgDcUEKdiAPQQFrIBEQzQYgBy8BtgIhDyAHLQC0AiIJQR1GDQILIAAgBykCuAI3AgQgAEEMaiAHQcACaigCADYCACAHLQC1AiEBIAAgDzsBAiAAIAE6AAEgACAJOgAADBsLIA4tAFghDwsgDUECdCIDIAZPDQggAyAFaiALOgAAIANBAXIiCSAGTw0JIAUgCWogCDoAACADQQJyIgkgBk8NCiAFIAlqIAw6AAAgA0EDciIDIAZPDQsgAyAFaiAPOgAAIB1BgICAgHhHBEAgDEH/AXEgCEEIdEGA/gNxIAtBEHRyQYD+/wdxIA9BGHRyckG9z9bxAWwgJ3YiAyAfTw0NICQgA0ECdGoiAyAPOgADIAMgDDoAAiADIAg6AAEgAyALOgAACyANQQFqDBALIAAgFjYCBCAAQQ86AAAMGAsgAyAIQayBxwAQvwcACyAIIB9BzIPHABC/BwALQQQgCUHcg8cAEKIKAAsgDi8BBCEJQQAhCwwKCyADIAhBrIHHABC/BwALIAhBAWpB//8DcSEmDAYLQcD4yABBKyAHQbQCakHsgscAQciGxwAQlQcACyADIAZB6IXHABC/BwALIAkgBkH4hccAEL8HAAsgCSAGQYiGxwAQvwcACyADIAZBmIbHABC/BwALIAMgH0HsgccAEL8HAAsgJkEBayIDQfgASQRAQQEgA0EBdCIDQd+HxwBqLAAAIBdsIANB3ofHAGosAABqIgMgA0EBTBshCwwBC0F/QfgAQdCJxwAQvwcACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBggDWsgFkkgCyANS3JFBEAgC0EBRgRAAkAgDUECdCIDQQRrIgggBk0EQCAGIAhrIglBA0sNAUEEIAlBnITHABCiCgALIAggBkHMhMcAEKMKAAsgBSAIaigAACESQQAhCQJAIBZBAWutIjMgNCADrX0iNUIAIDQgNVobQgN8QgKIIjUgBiADa0ECdiILrSI2IDUgNlQbIjUgMyA1VBsiM0IUVARAQQEhCAwBC0EBIQggDSAzpyIMakECdCADSQ0AIAxBAWoiCEEDcSIJQQQgCRsiCSAMQX9zaiEPIAMgBWohDCAIIAlrIglBAWohCCAS/REhOANAIAwgOP0LAAAgDEEQaiEMIA9BBGoiDw0ACwsgC0EBaiEMIBZBAWohDwNAIAkgDWpBAnQiAyAGTQRAIAggDEYNBCADIAVqIBI2AAAgCCEJIA8gCEEBaiIIRw0BDBALCyADIAZBvITHABCjCgALIA0gFmpBA2ogGEsNCCANIAtrQQJ0IglBEGohAyAJQW9LDQIgAyAGSw0DIA1BAnQiCCAaSw0EIAUgCGogBSAJav0AAAD9CwAAIBZBBE0gC0EET3ENCSALQQJ0Ig9FDQUgFkECdCIDIANB/P8DcUEQIA8gD0EQTxsiA0H//wNxbiIMIANsa0H//wNxQQBHIAxqIhJBAkkNCSADIAlqIhBBEGohDCAQQW9LDQYgBiAMSQ0HIBogAyAIak8EQCASQQJrIQsgA0EBdCAPayEQIAMgBWohDCAFIAMgD2tqIQ8gAyESA0AgCCAMaiAIIA9q/QAAAP0LAAAgC0UNCwJAIAggEGoiCUFvTQRAIAlBEGogBk0NASANQQJ0IBBqQRBqIQwMCwsgDUECdCAQaiIQQRBqIQwMCQsgC0EBayELIAMgEGohECADIAxqIQwgAyAPaiEPIAggAyASaiISaiAaTQ0ACwsgB0EANgLEAiAHQQE2ArgCIAdB9K7IADYCtAIgB0IENwK8AiAHQbQCakHYhccAEMoIAAsgAEEPOgAADBcLQQQgBiADa0GshMcAEKIKAAsgCSADQfyExwAQpQoACyADIAZB/ITHABCiCgALIAdBADYCxAIgB0EBNgK4AiAHQfSuyAA2ArQCIAdCBDcCvAIgB0G0AmpB/ITHABDKCAALQYyFxwBBG0GohccAEKIIAAsgECAMQdiFxwAQpQoACyAMIAZB2IXHABCiCgALQQAhCQJAIBZBAnQiFUEBayIIIAYgDUECdCIDIAtBAnQiDGsiDyAGIA9LGyAMaiADayISIAYgA2siD0EAIAYgD08bIg8gDyASSxsiEiAIIBJJGyILQQFqIhJBEUkEQEEBIQgMAQtBASEIIAxBD00NACASQQ9xIghBECAIGyIIIAtBf3NqIRAgAyAFaiELQQAgDGshGSASIAhrIglBAWohCANAIAsgCyAZav0AAAD9CwAAIAtBEGohCyAQQRBqIhANAAsLIA9BAWohEiAVQQFqIQsDQCADIAlqIgkgDGsiDyAGTw0CIAggEkYNAyAFIAlqIAUgD2otAAA6AAAgCCEJIAsgCEEBaiIIRw0ACwsgHUGAgICAeEcNAgwDCyAPIAZB3ITHABC/BwALIAkgBkHshMcAEL8HAAsCQCANQQJ0IgMgBk0EQCAWQQJ0IgggBiADayIJTQRAIAhFDQMgAyAFaiELQQAgCGshDANAIAsoAAAiA0GA/oN4cSADQRB0QYCA/AdxciADQRB2IglB/wFxckG9z9bxAWwgJ3YiCCAfTw0DICQgCEECdGoiCCADQRh2OgADIAggCToAAiAIIANBCHY6AAEgCCADOgAAIAtBBGohCyAMQQRqIgwNAAsMAwsgCCAJQbiFxwAQogoACyADIAZByIXHABCjCgALIAggH0HsgccAEL8HAAsgDSAWagwBCyADIAlB//8DcUGYAkkNABogAS0AYCIIIAtB/wFxSQRAIABBDzoAAAwKCyABIAggC2s6AGAgASAzIAutiDcDQCAGIANBAnQiA0kNBSAGIANrIghBA00NBCAfIAlBmAJrQf//A3EiCE0NASADIAVqICQgCEECdGooAAA2AAAgDUECagsiDUsNAQwCCwsgCCAfQcyDxwAQvwcACyAAQR06AAAMBQtBBCAIQeyDxwAQogoACyADIAZB/IPHABCjCgALQQBBAEGk5cQAEL8HAAsACyAAIAcpALUCNwABIABBCGogB0G8AmopAAA3AAAgACAIOgAACyAdQYCAgIB4ckGAgICAeEYNACAkIB1BAnRBARDWBwsgIARAIB4gIEEBdEECENYHCyAEQQFqIQogFCEBA0AgARCdAiABQYwBaiEBIApBAWsiCg0ACyAhRQ0FIBQgIUGMAWxBBBDWBwwFCyAIIApBnIPHABC/BwALAkAgHUGAgICAeHJBgICAgHhHBEAgJEEEaygCACIBQXhxIgIgHUECdCIDQQRBCCABQQNxIgEbakkNBiABQQAgAiADQSdqSxsNASAkELQCCyAAIDQ3AgggACANNgIEIAAgCzsBAiAAIAk6AAEgACAKOgAADAQLDAULIAcgBykAtwI3AwAgByAHQbwCaikAADcABSAHLQC2AiEBIActALUCIQ4MAQtBDyEKCyAAIAE6AAIgACAOOgABIAAgCjoAACAAIAcpAwA3AAMgAEEIaiAHKQAFNwAACyAHQdACaiQADwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIAMgCUGsgccAEL8HAAuwVgMsfwR+AXsjAEHQAmsiByQAIAFBQGshEQJAAkACQAJAAkACQAJAAkAgAS0ATCIKDQAgB0G0AmogERCfAiAHLQC0AiIKQR1GBEAgAS0ATCIKDQEM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gAIiAUsEQCABIQIgBCABayIIIAAoAvgBIAFrSwRAIBkgASAIQQRBBBDQBSAAKAKAAiECCyAAKAL8ASIDIAJBAnRqIQUgCEECTwR/IAQgAUF/c2pBAnQiAQRAIAVBACAB/AsACyACIAhqIgFBAWshAiADIAFBAnRqQQRrBSAFC0EANgIAIAAgAkEBaiIBNgKAAgsCQAJAAkACQAJAIAYEQEEBIAQgBEEBTRshBUEAIQJBBCEBA0AgASAAKALcASIDSw0DIAIgACgCgAIiA08NAiAAKAL8ASABakEEayAAKALYASABakEEaygAADYCACABQQRqIQEgBSACQQFqIgJHDQALIAAoAoACIQELIAAgACgCkAIgBCAAKAL8ASABEN0EIAAoAtwBIgIgBEECdCIDSQ0fIABBADYC3AEgAiADayEBIAZFDQIgAiADRg0EIAFFDQMgACgC2AEiAiACIANqIAH8CgAADAMLIAIgA0HYp8EAEL8HAAsgASADQcinwQAQogoACyACIANGDQELIAAgATYC3AELIAAgACgCkAIgBGoiAjYCkAIgAiAAKAKIAkcNECAAQQA2ApACQQkhAQsgACABOgCUAgwPCyAAKALcASIBQQF2IgIgACgCiAIgACgCkAJrIgZJBEAgAiEGIAFBgIAISQ0UC0GAgAQgBiAGQYCABE8bIgQgACgC9AEiAUsEQCABIQIgBCABayIIIAAoAuwBIAFrSwRAIBggASAIQQJBAhDQBSAAKAL0ASECCyAAKALwASIDIAJBAXRqIQUgCEECTwR/IAQgAUF/c2pBAXQiAQRAIAVBACAB/AsACyACIAhqIgFBAWshAiADIAFBAXRqQQJrBSAFC0EAOwEAIAAgAkEBaiIBNgL0AQsgBgRAQQEgBCAEQQFNGyEFQQAhAkECIQECQANAIAAoAtwBIgMgAUkEQCABIANBqKfBABCiCgALIAAoAvQBIgMgAksEQCAAKALwASABakECayAAKALYASABakECay8AADsBACABQQJqIQEgBSACQQFqIgJGDQIMAQsLIAIgA0G4p8EAEL8HAAsgACgC9AEhAQsgACAAKAKQAiAEIAAoAvABIAEQ3gQCQAJAAkAgACgC3AEiAiAEQQF0IgNPBEAgAEEANgLcASACIANrIQEgBkUNASACIANGDQMgAUUNAiAAKALYASICIAIgA2ogAfwKAAAMAgsMGwsgAiADRg0BCyAAIAE2AtwBCyAAIAAoApACIARqIgI2ApACIAIgACgCiAJHDQ4gAEEANgKQAiAAQQg6AJQCDA4LQS0hEgwBC0EYIRILIAAoAtwBIBJuIgIgACgCiAIgACgCkAJrIgtJBEAgAiILQYCABEkNEQtBgIAEIAsgC0GAgARPGyIOIBJsIhAgACgC6AEiAUsEQCABIQIgECABayIFIAAoAuABIAFrSwRAIBQgASAFQQRBBBDQBSAAKALoASECCyAAKALkASIDIAJBAnRqIQYgBUECTwR/IBAgAUF/c2pBAnQiAQRAIAZBACAB/AsACyACIAVqIgFBAWshAiADIAFBAnRqQQRrBSAGC0EANgIAIAAgAkEBaiIBNgLoAQsgDkEJbCEPAkAgCwRAIA5B4ABsIQggDkEYbCEGQQEhAUEAIRFBACEFAkADQCAFIQ0gASEFIA0gEmwiASAAKALcASIDTw0DAkACQAJAAkAgDUEJbCICIAAoAugBIgNPDQAgACgC5AEgAkECdGogACgC2AEgAWotAACzQwAAAMOSQwAAADyUOAIAIAFBA2oiByAAKALcASIDTwRAIAchAQwICyACQQNqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBBmoiByAAKALcASIDTwRAIAchAQwICyACQQZqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBAWoiByAAKALcASIDTwRAIAchAQwICyACQQFqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBBGoiByAAKALcASIDTwRAIAchAQwICyACQQRqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBB2oiByAAKALcASIDTwRAIAchAQwICyACQQdqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBAmoiByAAKALcASIDTwRAIAchAQwICyACQQJqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBBWoiByAAKALcASIDTwRAIAchAQwICyACQQVqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBCGoiBCAAKALcASIDTwRAIAQhAQwICyACQQhqIgIgACgC6AEiA08NACAAKALkASACQQJ0aiAAKALYASAEai0AALNDAAAAw5JDAAAAPJQ4AgAgACgCjAJBAUsNAQwCCyACIANBmKfBABC/BwALAkACQCABQQlqIgIgACgC3AEiCk8NACANQQ9sIA9qIgMgACgC6AEiCk8NAyAAKALkASADQQJ0aiAAKALYASACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEMaiICIAAoAtwBIgpPDQAgA0EDaiIEIAAoAugBIgpPBEAgBCEDDAQLIAAoAuQBIARBAnRqIAAoAtgBIAJqLQAAs0MAAADDkkMAAAA8lDgCACABQQ9qIgIgACgC3AEiCk8NACADQQZqIgQgACgC6AEiCk8EQCAEIQMMBAsgACgC5AEgBEECdGogACgC2AEgAmotAACzQwAAAMOSQwAAADyUOAIAIAFBEmoiAiAAKALcASIKTw0AIANBCWoiBCAAKALoASIKTwRAIAQhAwwECyAAKALkASAEQQJ0aiAAKALYASACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEVaiICIAAoAtwBIgpPDQAgA0EMaiIEIAAoAugBIgpPBEAgBCEDDAQLIAAoAuQBIARBAnRqIAAoAtgBIAJqLQAAs0MAAADDkkMAAAA8lDgCACABQQpqIgIgACgC3AEiCk8NACADQQFqIgQgACgC6AEiCk8EQCAEIQMMBAsgACgC5AEgBEECdGogACgC2AEgAmotAACzQwAAAMOSQwAAADyUOAIAIAFBDWoiAiAAKALcASIKTw0AIANBBGoiBCAAKALoASIKTwRAIAQhAwwECyAAKALkASAEQQJ0aiAAKALYASACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEQaiICIAAoAtwBIgpPDQAgA0EHaiIEIAAoAugBIgpPBEAgBCED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f3NqQQJ0IgEEQCAFQQAgAfwLAAsgAiAIaiIBQQFrIQIgAyABQQJ0akEEawUgBQtBADYCACAAIAJBAWoiATYC6AELAkACQAJAAkACQAJAAkACQAJAAkAgBgRAQQEgBCAEQQFNG0EDbCEFQQAhAUEIIQIDQCABIAAoAtwBIgNPDQIgASAAKALoASIDTw0DIAAoAuQBIAJqQQhrIAAoAtgBIAFqLQAAs0MAAIA9lEMAACDBkhCmBDgCACABQQFqIgggACgC3AEiA08NBCAIIAAoAugBIgNPDQUgACgC5AEgAmpBBGsgACgC2AEgAWpBAWotAACzQwAAgD2UQwAAIMGSEKYEOAIAIAFBAmoiCCAAKALcASIDTw0GIAggACgC6AEiA08NByAAKALkASACaiAAKALYASABakECai0AALNDAACAPZRDAAAgwZIQpgQ4AgAgAkEMaiECIAUgAUEDaiIBRw0ACyAAKALoASEBCyAAIAAoApACIAQgACgC5AEgARDiAyAAKALcASICIAdJDQYgAEEANgLcASACIAdrIQEgBkUNByACIAdGDQkgAUUNCCAAKALYASICIAIgB2ogAfwKAAAMCAsgASADQbijwQAQvwcACyABIANByKPBABC/BwALIAggA0HYo8EAEL8HAAsgCCADQeijwQAQvwcACyAIIANB+KPBABC/BwALIAggA0GIpMEAEL8HAAsgByACQdyrxwAQogoACyACIAdGDQELIAAgATYC3AELIAAgACgCkAIgBGoiAjYCkAIgAiAAKAKIAkcNCSAAQQA2ApACIABBBDoAlAIMCQsgACgC3AEiAUEDbiICIAAoAogCIAAoApACayIGSQRAIAIhBiABQYCADEkNDgtBgIAEIAYgBkGAgARPGyIEQQNsIgcgACgC6AEiAUsEQCABIQIgByABayIIIAAoAuABIAFrSwRAIBQgASAIQQRBBBDQBSAAKALoASECCyAAKALkASIDIAJBAnRqIQUgCEECTwR/IAcgAUF/c2pBAnQiAQRAIAVBACAB/AsACyACIAhqIgFBAWshAiADIAFBAnRqQQRrBSAFC0EANgIAIAAgAkEBaiIBNgLoAQsCQAJAAkACQAJAAkACQAJAAkACQCAGBEBBASAEIARBAU0bQQNsIQVBACEBQQghAgNAIAEgACgC3AEiA08NAiABIAAoAugBIgNPDQMgACgC5AEgAmpBCGsgACgC2AEgAWotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAFBAWoiCCAAKALcASIDTw0EIAggACgC6AEiA08NBSAAKALkASACakEEayAAKALYASABakEBai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUECaiIIIAAoAtwBIgNPDQYgCCAAKALoASIDTw0HIAAoAuQBIAJqIAAoAtgBIAFqQQJqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACACQQxqIQIgBSABQQNqIgFHDQALIAAoAugBIQELIAAgACgCkAIgBCAAKALkASABEKsEIAAoAtwBIgIgB0kNBiAAQQA2AtwBIAIgB2shASAGRQ0HIAIgB0YNCSABRQ0IIAAoAtgBIgIgAiAHaiAB/AoAAAwICyABIANB2KLBABC/BwALIAEgA0HoosEAEL8HAAsgCCADQfiiwQAQvwcACyAIIANBiKPBABC/BwALIAggA0GYo8EAEL8HAAsgCCADQaijwQAQvwcACyAHIAJB3KvHABCiCgALIAIgB0YNAQsgACABNgLcAQsgACAAKAKQAiAEaiICNgKQAiACIAAoAogCRw0IIABBADYCkAIgAEEDOgCUAgwICyAAKALcASICIAAoAogCIAAoApACayIGSQRAIAIiBkGAgARJDQ0LQYCABCAGIAZBgIAETxsiBCAAKALoASIBSwRAIAEhAiAEIAFrIgggACgC4AEgAWtLBEAgFCABIAhBBEEEENAFIAAoAugBIQILIAAoAuQBIgMgAkECdGohBSAIQQJPBH8gBCABQX9zakECdCIBBEAgBUEAIAH8CwALIAIgCGoiAUEBayECIAMgAUECdGpBBGsFIAULQQA2AgAgACACQQFqIgE2AugBCwJAAkACQAJAAkACQCAGBEBDAACAP0MAAABAIAAsAJYCQQBOGyEaQQEhA0EBIAQgBEEBTRshBUEAIQEDQCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIAFBAnRqIBogACgC2AEgAWotAACzQwAAf0OVlDgCACADIgFBAWohAyABIAVHDQALIAAoAugBIQELIAAgACgCkAIgBCAAKALkASABEK8DIAAoAtwBIgIgBEkNAiAAQQA2AtwB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ApACIAAoApgCayIGSQRAIAIhBiABQYCADEkNEwtBgIAEIAYgBkGAgARPGyIEQQNsIgcgACgC8AEiAUsEQCABIQIgByABayIIIAAoAugBIAFrSwRAIBQgASAIQQRBBBDQBSAAKALwASECCyAAKALsASIDIAJBAnRqIQUgCEECTwR/IAcgAUF/c2pBAnQiAQRAIAVBACAB/AsACyACIAhqIgFBAWshAiADIAFBAnRqQQRrBSAFC0EANgIAIAAgAkEBaiIBNgLwAQsCQAJAAkACQAJAAkACQAJAAkACQCAGBEBBASAEIARBAU0bQQNsIQVBACEBQQghAgNAIAEgACgC5AEiA08NAiABIAAoAvABIgNPDQMgACgC7AEgAmpBCGsgACgC4AEgAWotAACzQwAAgD2UQwAAIMGSEKYEOAIAIAFBAWoiCCAAKALkASIDTw0EIAggACgC8AEiA08NBSAAKALsASACakEEayAAKALgASABakEBai0AALNDAACAPZRDAAAgwZIQpgQ4AgAgAUECaiIIIAAoAuQBIgNPDQYgCCAAKALwASIDTw0HIAAoAuwBIAJqIAAoAuABIAFqQQJqLQAAs0MAAIA9lEMAACDBkhCmBDgCACACQQxqIQIgBSABQQNqIgFHDQALIAAoAvABIQELIAAgACgCmAIgBCAAKALsASABEKoCIAAoAuQBIgIgB0kNBiAAQQA2AuQBIAIgB2shASAGRQ0HIAIgB0YNCSABRQ0IIAAoAuABIgIgAiAHaiAB/AoAAAwICyABIANBuKPBABC/BwALIAEgA0HIo8EAEL8HAAsgCCADQdijwQAQvwcACyAIIANB6KPBABC/BwALIAggA0H4o8EAEL8HAAsgCCADQYikwQAQvwcACyAHIAJB3KvHABCiCgALIAIgB0YNAQsgACABNgLkAQsgACAAKAKYAiAEaiICNgKYAiACIAAoApACRw0NIABBADYCmAIgAEEEOgCcAgwNCyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIgZJBEAgAiEGIAFBgIAMSQ0SC0GAgAQgBiAGQYCABE8bIgRBA2wiByAAKALwASIBSwRAIAEhAiAHIAFrIgggACgC6AEgAWtLBEAgFCABIAhBBEEEENAFIAAoAvABIQILIAAoAuwBIgMgAkECdGohBSAIQQJPBH8gByABQX9zakECdCIBBEAgBUEAIAH8CwALIAIgCGoiAUEBayECIAMgAUECdGpBBGsFIAULQQA2AgAgACACQQFqIgE2AvABCwJAAkACQAJAAkACQAJAAkACQAJAIAYEQEEBIAQgBEEBTRtBA2whBUEAIQFBCCECA0AgASAAKALkASIDTw0CIAEgACgC8AEiA08NAyAAKALsASACakEIayAAKALgASABai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUEBaiIIIAAoAuQBIgNPDQQgCCAAKALwASIDTw0FIAAoAuwBIAJqQQRrIAAoAuABIAFqQQFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQJqIgggACgC5AEiA08NBiAIIAAoAvABIgNPDQcgACgC7AEgAmogACgC4AEgAWpBAmotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAJBDGohAiAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiAEIAAoAuwBIAEQtgIgACgC5AEiAiAHSQ0GIABBADYC5AEgAiAHayEBIAZFDQcgAiAHRg0JIAFFDQggACgC4AEiAiACIAdqIAH8CgAADAgLIAEgA0HYosEAEL8HAAsgASADQeiiwQAQvwcACyAIIANB+KLBABC/BwALIAggA0GIo8EAEL8HAAsgCCADQZijwQAQvwcACyAIIANBqKPBABC/BwALIAcgAkHcq8cAEKIKAAsgAiAHRg0BCyAAIAE2AuQBCyAAIAAoApgCIARqIgI2ApgCIAIgACgCkAJHDQwgAEEANgKYAiAAQQM6AJwCDAwLIAAoAuQBIgIgACgCkAIgACgCmAJrIgZJBEAgAiIGQYCABEkNEQtBgIAEIAYgBkGAgARPGyIEIAAoAvABIgFLBEAgASECIAQgAWsiCCAAKALoASABa0sEQCAUIAEgCEEEQQQQ0AUgACgC8AEhAgsgACgC7AEiAyACQQJ0aiEFIAhBAk8EfyAEIAFBf3NqQQJ0IgEEQCAFQQAgAfwLAAsgAiAIaiIBQQFrIQIgAyABQQJ0akEEawUgBQtBADYCACAAIAJBAWoiATYC8AELAkACQAJAAkACQAJAIAYEQEMAAIA/QwAAAEAgACwAngJBAE4bIRpBASEDQQEgBCAEQQFNGyEFQQAhAQNAIAEgACgC5AEiAk8NAiABIAAoAvABIgJPDQMgACgC7AEgAUECdGogGiAAKALgASABai0AALNDAAB/Q5WUOAIAIAMiAUEBaiEDIAEgBUcNAAsgACgC8AEhAQsgACAAKAKYAiAEIAAoAuwBIAEQsQIgACgC5AEiAiAESQ0CIABBADYC5AEgAiAEayEBIAZFDQMgAiAERg0FIAFFDQQgACgC4AEiAiACIARqIAH8CgAADAQLIAEgAkG4osEAEL8HAAsgASACQciiwQAQvwcACyAEIAJB3KvHABCiCgALIAIgBEYNAQsgACABNgLkAQsgACAAKAKYAiAEaiICNgKYAiACIAAoApACRw0LIABBADYCmAIgAEECOgCcAgwLCyAIRQ0AQQEgAC0AnQJ0syEaQQkhAUEAIQZBACEDQQAhAgNAIAFBBmsiBCAAKALkASIFSw0EIAIgACgC8AEiBU8NBiAAKALsASADaiAAKALgASABaiIFQQdrLQAAIgRBEHQgBUEJay0AAHIgBUEIay0AAEEIdHIiBUGAgIB4ciAFIATAQQBIG7IgGpU4AgAgAUEDayIEIAAoAuQBIgVLDQUgAkEBaiIEIAAoAvABIgVPDQggACgC7AEgA2pBBGogACgC4AEgAWoiBUEEay0AACIEQRB0IAVBBmstAAByIAVBBWstAABBCHRyIgVBgICAeHIgBSAEwEEASBuyIBqVOAIAIAEgACgC5AEiBUsNByACQQJqIgQgACgC8AEiBU8NAiAAKALsASADakEIaiAAKALgASABaiIFQQFrLQAAIgRBEHQgBUEDay0AAHIgBUECay0AAEEIdHIiBUGAgIB4ciAFIATAQQBIG7IgGpU4AgAgAUEJaiEBIANBDGohAyACQQNqIQIgBkEBaiIGIA9JDQALCyAAIAAoApgCIA8gACgC7AEgACgC8AEQ1QUgACgC5AEiAiANIA9sIgNJDRMgAEEANgLkASACIANrIQEgCEUNASACIANGDQggAUUNByAAKALgASICIAIgA2ogAfwKAAAMBwsgBCAFQaiiwQAQvwcACyACIANHDQUMBgsgBCAFQdihwQAQogoACyAEIAVB+KHBABCiCgALIAIgBUHoocEAEL8HAAsgASAFQZiiwQAQogoACyAEIAVBiKLBABC/BwALIAAgATYC5AELIAAgACgCmAIgD2oi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A0IBNwLsASADIAGtQoCAgIAghDcDiAIgAyADQYgCajYC6AEgA0HwAGoiASADQeABahDiBCABEMMHDAULQfykyAAQtwgAC0EAIQEgBCEFA0AgBUUNAiACLQAAQTBrIglBCUsEQEEBEIYIDAULQQIhBCABrUIKfiIeQiCIpw0BIAJBAWohAiAFQQFrIQUgCSAepyIGaiIBIAZPDQALCyAEEIYIDAILIAxBAE4EQAJAIAxFBEBBASECDAELIAwQfiICRQ0OCyAMBEAgAiALIAz8CgAACyADQQA2AjQgAyABNgIwIANBADYCLCADQoCAgIDAADcCJCADIAw2AiAgAyACNgIcIAMgDDYCGAwDC0H8pMgAELcIAAsgA0EBNgLkASADQdjexwA2AuABIANCATcC7AEgAyADQegAaq1CgICAgCCENwOIAiADIANBiAJqNgLoASADQZQBaiIBIANB4AFqEOIEIAEQwwcLIQEgAEGAgICAeDYCrAEgACABNgIAIA1FDQcgCiANQQN0QQQQ1gcMBwsCQCANBEAgCkEEaygCACIBQXhxIgQgDUEDdCICQQRBCCABQQNxIgEbakkNDiABQQAgBCACQSdqSxsNASAKELQCCyADKAJgIQ4gAygCVCEJIAMoAkQhBiADLQBdQQFxRQ0FDAYLDA0LIAEhB0EAIQwgAQshAiAIIAtGDQALAkACQCANIA9HBEAgDSECDAELIA1BAXRBASANGyICQYCAgIABTw0BQQQgAiACQQRNGyICQQN0IQUCfyANBEAgCiANQQN0QQQgBRDQAgwBCyAFEH4LIgpFDQgLIAogD0EDdGoiBSALIAhrNgIEIAUgCCASajYCACAPQQFqIQ8gAiENDAELCwtB/KHIABC3CAALIAMoAhghAiADQYCAgIB4NgIYIAJBgICAgHhHBEAgAygCFCIBIAMoAgxGBEAgA0EMakHA28cAELQGCyADKAIQIAFBBXRqIgQgAjYCACAEIBUpAgA3AgQgBEEMaiAVQQhq/QACAP0LAgAgBEEcaiAVQRhqKAIANgIAIAMgAUEBajYCFAsgHA0BIANBADYCSCADQQE2AjwgA0Ho28cANgI4IANCBDcCQCADQThqEMcHIQEgAEGAgICAeDYCrAEgACABNgIACwJAIAMoAhgiAEGAgICAeEYNACAABEAgAygCHCAAQQEQ1gcL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AygAJCIGQYCAgP57IAZB/////wdxGzYCICABIAMoACgiBkGAgID+AyAGQf////8HcRs2AiQgBEEobEGgiMEAaiEPIAJBgCBrQQp2QQFqIRFBACEGIClBCnRBgCBqIiohBAJAA0ACQCAIIClHBEAgESAIQQFqIghHDQEgAUEANgJAIAFBATYCNCABQciPwQA2AjAgAUIENwI4IAFBMGoQxQchAwwECyABQQA6ADggASAGNgI0IAEgDTYCMCAAIAFBMGoQhgQgKUUNAkGAICErQQEhLgJAA0AgKyIEQYAIaiIrIAAoAswBIgNLBEAgAUEANgJAIAFBATYCNCABQciPwQA2AjAgAUIENwI4IAFBMGoQxQchAwwGCyAAKALIASIGIARqIgJBGGooAAAiEkUEQCAPKAIkIRILIAMgBEEkciINSQRAIAFBADYCQCABQQE2AjQgAUHkrcEANgIwIAFCBDcCOCABQTBqEMUHIQMMBgsgAyAEQShyIhFJBEAgAUEANgJAIAFBATYCNCABQeStwQA2AjAgAUIENwI4IAFBMGoQxQchAwwGCyADIARBKnJJBEAgAUEANgJAIAFBATYCNCABQeStwQA2AjAgAUIENwI4IAFBMGoQxQchAwwGCyACQQRqKAAAIQRBACEIIA8oAgggDygCACAPKAIEamogBiARai8AACIiQQNNBH8gIkECdEGYicEAaigCAAUgCAsgDygCEGxqQQRqIjWtIAStfiI7QiCIUEUEQCABQQA2AkAgAUEBNgI0IAFBxInBADYCMCABQgQ3AjggAUEwahDFByEDDAYLAkAgAyAqIgQgBiANaigAACIwQQJ0IgkgAkEMaigAACINIAJBFGovAABsamoiESA7pyIHaiIqTwRAIAIoAAAhCCACQRBqKgAAITggAkEIaigAACEvIAJBIGooAAAhGyANRQRAQQAhHgwCCyADIAQgCWoiAiANQQxsak8EQCACIAZqIR4gDUEDbCEfDAILIAFBADYCQCABQQE2AjQgAUHsjsEANgIwIAFCBDcCOCABQTBqEMUHIQMMBwsgAUEANgJAIAFBATYCNCABQYyPwQA2AjAgAUIENwI4IAFBMGoQxQchAwwGCwJAAkAgESAqTQRAAkAgCEEDbCINQf////8DSw0AIAhBDGwiAkH9////B08NAAJAAkACQAJAAkACfyAC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AUGDgICAeEYEQAJAIAAoAvAEIgZBBEkNAAJAAkAgACgC7AQiBC8AACAELQACQRB0ckHw2OUDRgRAIAZBC0kNAyAGQQprIQNBACEBAkADQCABIARqQYyVwQBBCxCQCEUNASADIAFBAWoiAUcNAAsgBkH//wNNDQQgAkEANgLYByACQQE2AswHIAJBhJXBADYCyAcgAkIENwLQByACQcgHahDFByEDDAkLIAEgBksNASACQcgHaiAEIAEQnwMgAikCzAchLCACKALIBwRAICwQggghAwwJCyACQcgHaiAspyAsQiCIpxBPIAIoAsgHIQMgAigC9AgiBEGAgICAeEYEQCADRQ0EDAkLIAJBBHIgAkHIB2oiCEEEckGoAfwKAAAgAiAC/QAD+Aj9CwOwASACIAQ2AqwBIAIgAzYCAAJAAkACQCACLQC5ASIJRQRAIAJB8ABqIQUgAi0AuAENASACKAKoASEGIAIoApQBIQQgAkGIBmoiAyAFEO0DIAggBiAEIAMQowEgAigCyAchBSACKAKkDCIMQYCAgIB4Rg0DIAIoAswHIQMgAkH4BGogAkHQB2pBjAH8CgAAIAIpA+AIISwgAigC3AghDiACQagDaiACQegIakHMAfwKAAAgAigCuAohCiACKAK0CiELIAJBmAJqIAJBvApqQZAB/AoAACACKALMCyENIAJBwAFqIAJB0AtqQdQA/AoAACACKQOoDCEtIAJBADoA0AcgAiANNgLMByACIAY2AsgHIABB9ARqIAgQzAQMBgsgAkGIBmoiAyACQcAB/AoAACACQcgHaiADEHYgAigCzAchAyACKALIByIFQYCAgIB4Rw0BIANFDQYMCwsgAigCqAEhCCACKAKUASEGIAJBiAZqIgMgBRDtAyACQcgHaiIEIAggBiADEJcCIAIoAsgHIQUgAigC3AgiDkGAgICAeEYNASACKALMByEDIAJB+ARqIAJB0AdqQYwB/AoAACACKQPgCCEsIAJBADoA0AcgAkEANgLMByACIAg2AsgHIABB9ARqIAQQzARBgICAgHghDAwECyACQfgEaiACQdAHakGMAfwKAAAgAikC4AghLCACKALcCCEOIAJBqANqIAJB6AhqQcwB/AoAACACKAK0CiELIAIoArgKIQogAkEAOgDQByACIAo2AswHIAIgCzYCyAcgAEH0BGogAkHI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AuwEIAAoAvAEIAcQsQQhKCABIAAoAqgEIg5PDQQgACgCpAQgD2ogKEO7bpA+lEMAAAA/kjgCACAAKALgAyAALQDkAyAAKALsBCAAKALwBCAHELEEISggACgCqAQiDiAETQRAIAQhAQwFCyAAKAKkBCATaiAoQ7tukD6UQwAAAD+SOAIAIAAoAugDIAAtAOwDIAAoAuwEIAAoAvAEIAcQsQQhKCAAKAKoBCIOIANNBEAgAyEBDAULIAAoAqQEIBBqIChDu26QPpRDAAAAP5I4AgAgACgCwAMgAC0AxAMgACgC7AQgACgC8AQgBxCxBCEoAkACQAJAAkACQCABIAAoArQEIg5PDQAgACgCsAQgD2ogKBCmBDgCACAAKALIAyAALQDMAyAAKALsBCAAKALwBCAHELEEISggACgCtAQiDiAEIgFNDQAgACgCsAQgE2ogKBCmBDgCACAAKALQAyAALQDUAyAAKALsBCAAKALwBCAHELEEISggACgCtAQiDiADIgFNDQAgACgCsAQgEGogKBCmBDgCACAAKAIgIAAtACQgACgC7AQgACgC8AQgBxCxBCEoIAAoAiggAC0ALCAAKALsBCAAKALwBCAHELEEISkgACgCMCAALQA0IAAoAuwEIAAoAvAEIAcQsQQhKiAAKAI4IAAtADwgACgC7AQgACgC8AQgBxCxBCErIAVBAnQiASAAKALABCIDSQ0BDAILIAEgDkH4lsEAEL8HAAsgACgCvAQgAUECdGogKCAoICiUICkgKZSSICogKpSSICsgK5SSkSIolTgCACABQQFyIgQgACgCwAQiA08EQCAEIQEMAQsgACgCvAQgBEECdGogKSAolTgCACABQQJyIgQgACgCwAQiA08EQCAEIQEMAQsgACgCvAQgBEECdGogKiAolTgCACABQQNyIgEgACgCwAQiA08NACAAKAK8BCABQQJ0aiArICiVOAIAIAAtAOQCIgFBCEcNAQwCCyABIANB6JbBABC/BwALIAAtAKQDIRUgACgCoAMgAC0AnAMhFyAAKAKYAyAALQCUAyEZIAAoApADIAAtAIwDIQsgACgCiAMgAC0AhAMhDiAAKAKAAyAALQD8AiESIAAoAvgCIAAtAPQCIRMgACgC8AIgAC0A7AIhESAAKALoAiAAKALgAiABIAAoAuwEIAAoAvAEIAcQsQQhKCAFQQlsIgEgACgCzAQiA08NBCAAKALIBCABQQJ0aiAoOAIAIBEgACgC7AQgACgC8AQgBxCxBCEoIAFBAWoiBCAAKALMBCIDTwRAIAQhAQwFCyAAKALIBCAEQQJ0aiAoOAIAIBMgACgC7AQgACgC8AQgBxCxBCEoIAFBAmoiBCAAKALMBCIDTwRAIAQhAQwFCyAAKALIBCAEQQJ0aiAoOAIAIBIgACgC7AQgACgC8AQgBxCxBCEoIAFBA2oiBCAAKALMBCIDTwRAIAQhAQwFCyAAKALIBCAEQQJ0aiAoOAIAIA4gACgC7AQgACgC8AQgBxCxBCEoIAFBBGoiBCAAKALMBCIDTwRAIAQhAQwFCyAAKALIBCAEQQJ0aiAoOAIAIAsgACgC7AQgACgC8AQgBxCxBCEoIAFBBWoiBCAAKALMBCIDTwRAIAQhAQwFCyAAKALIBCAEQQJ0aiAoOAIAIBkgACgC7AQgACgC8AQgBxCxBCEoIAFBBmoiBCAAKALMBCIDTwRAIAQhAQwFCyAAKALIBCAEQQJ0aiAoOAIAIBcgACgC7AQgACgC8AQgBxCxBCEoIAFBB2oiBCAAKALMBCIDTwRAIAQhAQwFCyAAKALIBCAEQQJ0aiAoOAIAIBUgACgC7AQgACgC8AQgBxCxBCEoIAFBCGoiASAAKALMBCIDTw0EIAAoAsgEIAFBAnRqICg4AgALIAAtAOwBIgFBCEcEQCAALQDcAiEdIAAoAtgCIAAtANQCIR8gACgC0AIgAC0AzAIhISAAKALIAiAALQDEAiEjIAAoAsACIAAtALwCISUgACgCuAIgAC0AtAIhJyAAKAKwAiAALQCsAiEWIAAoAqgCIAAtAKQCIRggACgCoAIgAC0AnAIhGiAAKAKYAiAALQCUAiENIAAoApACIAAtAIwCIQwgACgCiAIgAC0AhAIhDyAAKAKAAiAALQD8ASEQIAAoAvgBIAAtAPQBIQQgACgC8AEgACgC6AEgASAAKALsBCAAKALwBCAHELEEISggBUEPbCIBIAAoAtgEIgVPDQIgACgC1AQgAUECdGogKDgCACAEIAAoAuwEIAAoAvAEIAcQsQQhKCABQQFqIgMgACgC2AQiBU8EQCADIQEMAwsgACgC1AQgA0ECdGogKDgCACAQIAAoAuwEIAAoAvAEIAcQsQQhKCABQQJqIgMgACgC2AQiBU8EQCADIQEMAwsgACgC1AQgA0ECdGogKDgCACAPIAAoAuwEIAAoAvAEIAcQsQQhKCABQQNqIgMgACgC2AQiBU8EQCADIQEMAwsgACgC1AQgA0ECdGogKDgCACAMIAAoAuwEIAAoAvAEIAcQsQQhKCABQQRqIgMgACgC2AQiBU8EQCADIQEMAwsgACgC1AQgA0ECdGogKDgCACANIAAoAuwEIAAoAvAEIAcQsQQhKCABQQVqIgMgACgC2AQiBU8EQCADIQEMAwsgACgC1AQgA0ECdGogKDgCACAaIAAoAuwEIAAoAvAEIAcQsQQhKCABQQZqIgMgACgC2AQiBU8EQCADIQEMAwsgACgC1AQgA0ECdGogKDgCACAYIAAoAuwEIAAoAvAEIAcQsQQhKCABQQdqIgMgACgC2AQiBU8EQCADIQEMAwsgACgC1AQgA0ECdGogKDgCACAWIAAoAuwEIAAoAvAEIAcQsQQhKCABQQhqIgMgACgC2AQiBU8EQCADIQEMAwsgACgC1AQgA0ECdGogKDgCACAnIAAoAuwEIAAoAvAEIAcQsQQhKCABQQlqIgMgACgC2AQiBU8EQCADIQEMAwsgACgC1AQgA0ECdGogKDgCACAlIAAoAuwEIAAoAvAEIAcQsQQhKCABQQpqIgMgACgC2AQiBU8EQCADIQEMAwsgACgC1AQgA0ECdGogKDgCACAjIAAoAuwEIAAoAvAEIAcQsQQhKCABQQtqIgMgACgC2AQiBU8EQCADIQEMAwsgACgC1AQgA0ECdGogKDgCACAhIAAoAuwEIAAoAvAEIAcQsQQhKCABQQxqIgMgACgC2AQiBU8EQCADIQEMAwsgACgC1AQgA0ECdGogKDgCACAfIAAoAuwEIAAoAvAEIAcQsQQhKCABQQ1qIgMgACgC2AQiBU8EQCADIQEMAwsgACgC1AQgA0ECdGogKDgCACAdIAAoAuwEIAAoAvAEIAcQsQQhKCABQQ5qIgEgACgC2AQiBU8NAiAAKALUBCABQQJ0aiAoOAIACwJAIAAtAERBCEcEQCACQcgHaiAcQagB/AoAAEEAIQUgCSEDIAohAQNAIAJByAdqIAVqIgQoAgAgBEEEai0AACAAKALsBCAAKALwBCAHELEEISggASAAKALkBCIETw0CIAAoAuAEIANqICg4AgAgA0EEaiEDIAFBAWohASAFQQhqIgVBqAFHDQALCyAJQdQAaiEJIApBFWohCiAGIAYgCEkiA2ohASAGIQUgA0UNBgwBCwsgASAEQdiWwQAQvwcACyABIAVByJbBABC/BwALIBQgBUHcq8cAEKIKAAsgASADQbiWwQAQvwcACyABIA5BiJfBABC/BwALIAhBA2wiDCAAKAKQBCIBSw0CIAggACgCnAQiAUsNAyAMIAAoAqgEIgFLDQQgDCAAKAK0BCIBSw0FIAhBAnQiEiAAKALABCIBSw0GIAhBCWxBACAAKAKEBCIDGyIPIAAoAswEIgFLDQcgCEEPbEEAIANBAUsbIhMgACgC2AQiAUsNCCAIQRVsQQAgA0ECSxsiECAAKALkBCIBSw0JIAAoAoAEIREgACgCjAQhCSAAKAKYBCEFIAAoAqQEIQogACgCsAQhBiAAKAK8BCEEIAAoAsgEIQMgACgC1AQhASACQgQ3ApAIIAJCAjcCiAggAiAQNgKECCACIBM2AvwHIAIgATYC+AcgAiAPNgL0ByACIAM2AvAHIAIgEjYC7AcgAiAENgLoByACIAw2AuQHIAIgBjYC4AcgAiAMNgLcByACIAo2AtgHIAIgCDYC1AcgAiAFNgLQByACIAw2AswHIAIgCTYCyAcgAiAAKALgBDYCgAggGyARIAggAkHIB2oQqAEgACAAKAKABCAIaiIDNgKABCAAKAL8AyIBIAhsIBRqIRQgACgC8AQhBSABDQALC0GYlcEAELkIAAsgDCABQaiVwQAQogoACyAIIAFBuJXBABCiCgALIAwgAUHIlcEAEKIKAAsgDCABQdiVwQAQogoACyASIAFB6JXBABCiCgALIA8gAUH4lcEAEKIKAAsgEyABQYiWwQAQogoACyAQIAFBmJbBABCiCgALQfj/xgBBKEGol8EAEKIIAAsgAkGwDGokACADDwsgASAOQZiXwQAQvwcAC5M+Ayd/BH0CfiMAQbAMayICJAACQAJAAkACQAJAIAAoAtwEIgFBg4CAgHhGBEACQCAAKALwBCIGQQRJDQACQAJAIAAoAuwEIgQvAAAgBC0AAkEQdHJB8NjlA0YEQCAGQQtJDQMgBkEKayEDQQAhAQJAA0AgASAEakGMlcEAQQsQkAhFDQEgAyABQQFqIgFHDQALIAZB//8DTQ0EIAJBADYC2AcgAkEBNgLMByACQYSVwQA2AsgHIAJCBDcC0AcgAkHIB2oQxQchAwwJCyABIAZLDQEgAkHIB2ogBCABEJ8DIAIpAswHISwgAigCyAcEQCAsEIIIIQMMCQsgAkHIB2ogLKcgLEIgiKcQTyACKALIByEDIAIoAvQIIgRBgICAgHhGBEAgA0UNBAwJCyACQQRyIAJByAdqIghBBHJBqAH8CgAAIAIgAv0AA/gI/QsDsAEgAiAENgKsASACIAM2AgACQAJAAkAgAi0AuQEiCUUEQCACQfAAaiEFIAItALgBDQEgAigCqAEhBiACKAKUASEEIAJBiAZqIgMgBRDtAyAIIAYgBCADEKMBIAIoAsgHIQUgAigCpAwiDEGAgICAeEYNAyACKALMByEDIAJB+ARqIAJB0AdqQYwB/AoAACACKQPgCCEsIAIoAtwIIQ4gAkGoA2ogAkHoCGpBzAH8CgAAIAIoArgKIQogAigCtAohCyACQZgCaiACQbwKakGQAfwKAAAgAigCzAshDSACQcABaiACQdALakHUAPwKAAAgAikDqAwhLSACQQA6ANAHIAIgDTYCzAcgAiAGNgLIByAAQfQEaiAIEIYEDAYLIAJBiAZqIgMgAkHAAfwKAAAgAkHIB2ogAxB2IAIoAswHIQMgAigCyAciBUGAgICAeEcNASADRQ0GDAsLIAIoAqgBIQggAigClAEhBiACQYgGaiIDIAUQ7QMgAkHIB2oiBCAIIAYgAxCXAiACKALIByEFIAIoAtwIIg5BgICAgHhGDQEgAigCzAchAyACQfgEaiACQdAHakGMAfwKAAAgAikD4AghLCACQQA6ANAHIAJBADYCzAcgAiAINgLIByAAQfQEaiAEEIYEQYCAgIB4IQwMBAsgAkH4BGogAkHQB2pBjAH8CgAAIAIpAuAIISwgAigC3AghDiACQagDaiACQegIakHMAfwKAAAgAigCtAohCyACKAK4CiEKIAJBADoA0AcgAiAKNgLMByACIAs2AsgHIABB9ARqIAJByAdqEIYEQYKAgIB4IQwMAwsgAhDIAyAFIgMNCAwDCyACQQA2AtgHIAJBATYCzAcgAkHchcEANgLIByACQgQ3AtAHIAJByAdqEMUHIQMMBwsgASAGQeCUwQAQogoACyAAKALwBCIEIAFBC2oiBkkNAiAAQQA2AvAEIAQgBkcEQCAEIAZrIgQEQCAAKALsBCIBIAEgBmogBPwKAAALIAAgBDYC8AQLAkAgACgC3AQiAUGDgICAeEYNAAJAAkACQEEBIAFBgICAgHhzIAFBAE4bDgIBAgALIAAQyQEMAgsgABDuAwwBCyAAENQCCyAAIAM2AgQgACAFNgIAIABBCGogAkH4BGpBjAH8CgAAIAAgLDcDmAEgACAONgKUASAAQaABaiACQagDakHMAfwKAAAgACAKNgLwAiAAIAs2AuwCIABB9AJqIAJBmAJqQZAB/AoAACAAIA02AoQEIABBiARqIAJBwAFqQdQA/AoAACAAIC03A+AEIAAgDDYC3AQgCQ0AIAIQyAMLQQAhAyAAKALcBCIBQYOAgIB4Rg0ECwJAIAFBgICAgHhzQQEgAUEASCIDG0EBaw4CAwIACyABQYCAgIB4RgRAAkACQAJAAkACQCAAKAJcIgEEQCAAKALwBCEFIABB9ARqIRMgAEGUAWohECAAQYgBaiERIAAoAmAhA0EAIQgDQEGAgAQhCgJAAkACQCAFIAhrIgkgAW4iBiAAKAJYIgQgA2siAUEAIAEgBE0bIgEgASAGSxsiAUGAgARLDQAgASIKDQAgBSAISQ0BQQAhAyAAQQA2AvAEAkAgCARAIAUgCEYNECAJRQ0BIAAoAuwEIgEgASAIaiAJ/AoAACAAIAk2AvAEDBALIAUgCEYNDwsgACAJNgLwBAwOCyAAIAoQxgJBfCEOQQAhAUEDIQVBfSEMQQAhA0EAIQsCQANAIAAoAiggAC0ALCAAKALsBCAAKALwBCAAKAJcIAtsIAhqIhIQsQQhKAJAAkACfyAFQQNrIg8gACgCbCINTwRAIA8MAQsgACgCaCABaiAoOAIAIAAoAjAgAC0ANCAAKALsBCAAKALwBCASELEEISggBUECayIJIAAoAmwiDUkEQCAAKAJoIAFqQQRqICg4AgAgACgCOCAALQA8IAAoAuwEIAAoAvAEIBIQsQQhKCAFQQFrIgYgACgCbCINSQRAIAAoAmggAWpBCGogKDgCAEMAAIA/ISggAC0AJCIEQQhHDQMMBAsgBUEBawwBCyAFQQJrCyANQbiYwQAQvwcACyAAKAIgIAQgACgC7AQgACgC8AQgEhCxBCEoCwJAAn8CQCAAKAJ4IgQgC0sEQCAAKAJ0IANqICg4AgAgACgCQCAALQBEIAAoAuwEIAAoAvAEIBIQsQQhKCAPIAAoAoQBIg1JDQEgBUEDawwCCyALIARBmJjBABC/BwALIAAoAoABIAFqICg4AgAgACgCSCAALQBMIAAoAuwEIAAoAvAEIBIQsQQhKCAAKAKEASINIAlLBEAgACgCgAEgAWpBBGogKDgCACAAKAJQIAAtAFQgACgC7AQgACgC8AQgEhCxBCEoIAYgACgChAEiDUkNAiAFQQFrDAELIAVBAmsLIA1BqJjBABC/BwALIAAoAoABIAFqQQhqICg4AgAgACgCkAEiBCAFTwRAIAAgDzYCkAEgAkHvpIzUAzYC7AcgAkLvpIzU883EwTo3AuQHIAJCgICAgDA3AtwHIAIgBTYC1AcgAiARNgLQByACIAQgDGo2AtgHIAJByAdqIgYQpgIgA0EEaiIEIAAoApwBIglLDQIgACADNgKcASAC/QwAAAAAAAAAAAAAAAAAAIA//QsC5AcgAkKAgICAwAA3AtwHIAIgBDYC1AcgAiAQNgLQByACIAkgDmo2AtgHIAxBA2shDCAFQQNqIQUgAUEMaiEBIA5BBGshDiAGEKYCIAQhAyALQQFqIgsgCk8NBAwBCwsgBSAEQdyrxwAQogoACyAEIAlB3KvHABCiCgALIAggBUHcq8cAEKIKAAsgCkEDbCIPIAAoAmwiAUsNAiAKIAAoAngiAUsNAyAPIAAoAoQBIgFLDQQgDyAAKAKQASIBSw0FIApBAnQiCSAAKAKcASIBSw0GIAAoAmAhBSAAKAJoIQYgACgCdCEEIAAoAoABIQMgACgCjAEhASACQgQ3ApAIIAJCAjcCiAggAkIENwKACCACQgQ3AvgHIAJCBDcC8AcgAiAJNgLsByACIA82AuQHIAIgATYC4AcgAiAPNgLcByACIAM2AtgHIAIgCjYC1AcgAiAENgLQByACIA82AswHIAIgBjYCyAcgAiAAKAKYATYC6AcgEyAFIAogAkHIB2oQnQEgACAAKAJgIApqIgM2AmAgACgCXCIBIApsIAhqIQggACgC8AQhBSABDQALC0G4l8EAELkIAAsgDyABQciXwQAQogoACyAKIAFB2JfBABCiCgALIA8gAUHol8EAEKIKAAsgDyABQfiXwQAQogoACyAJIAFBiJjBABCiCgALQfj/xgBBKEHImMEAEKIIAAsgBiAEQdyrxwAQogoACwJAAkACQCABQYKAgIB4RgRAIAAoAugCIgMgACgCCEkNASAAKALwBCEBQQAhAyAAQQA2AvAEIAENAgwFC0H4/8YAQShB+JnBABCiCAALIABB9ARqIQhBACELAkACQANAAkAgACgCBCADQQZ0aiIFKAIkIhAEQCAQIAAoAvAEIg0gC2siA00NAQwEC0HYmMEAELkIAAsgBS0APCEKQYCABCEBIAMgEG4iBiAFKAIgIgQgBSgCOCIRayIDQQAgAyAETRsiAyADIAZLGyIDQYCABE0EQCADIgFFDQMLAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAKQQFrDgMCAQ0ACyAAIAEgCyAQIAAoAuwEIA0QtgMMDAsgACgChAFBgICAgHhHDQEMCwsgACABIBEgCyAQIAAoAuwEIA0Q9AEiAw0RIAFBA2wiCSAAKAIgIgNLDQEgASAAKAIsIgNLDQIgCSAAKAI4IgNLDQMgCSAAKAJEIgNLDQQgAUECdCIFIAAoAlAiA0sNBSAAKAIcIQogACgCKCEGIAAoAjQhBCAAKAJAIQMgAkIENwKQCCACQgI3AogIIAJCBDcCgAggAkIENwL4ByACQgQ3AvAHIAIgBTYC7AcgAiAJNgLkByACIAM2AuAHIAIgCTYC3AcgAiAENgLYByACIAE2AtQHIAIgBjYC0AcgAiAJNgLMByACIAo2AsgHIAIgACgCTDYC6AcgCCARIAEgAkHIB2oQnQEMCgsgACABIAsgECAAKALsBCANEPYBIAFBCWwiCSAAKAJcIgNLDQUgACgCWCEFIAAoAvACIgZBAkkNCCABQQ9sIgogACgCaCIDSw0GIAAoAmQhBAJ/IAZBAkYEQEEAIQxBBAwBCyABQRVsIgwgACgCdCIDSw0IIAAoAnALIQMgCCARIAEgBSAJEPcBIAggESABIAQgChC0ASAMRQ0JIAggESABIAMgDBChAQwJCyAJIANB6JjBABCiCgALIAEgA0H4mMEAEKIKAAsgCSADQYiZwQAQogoACyAJIANBmJnBABCiCgALIAUgA0GomcEAEKIKAAsgCSADQbiZwQAQogoACyAKIANByJnBABCiCgALIAwgA0HYmcEAEKIKAAsgCCARIAEgBSAJEPcBCyAAKALoAiIEIAAoAggiA08NASAAKAIEIARBBnRqIgYgBigCOCABaiIENgI4IAAoAugCIQMgBigCICAERgRAIAAgA0EBaiIDNgLoAgsgASAQbCALaiELIAMgACgCCEkNAAsgACgC8AQhDQwBCyAEIANB6JnBABC/BwALIAsgDUsNAUEAIQMgAEEANgLwBCANIAtrIQEgCwRAIAsgDUYNBCABBEAgACgC7AQiBCAEIAtqIAH8CgAACyAAIAE2AvAEDAQLIAsgDUYNAwsgACABNgLwBAwCCyALIA1B3KvHABCiCgALIANFBEACQAJAAkACQAJAAkACQAJAIAAoAvwDIgEEQCAAKALwBCEFIABB9ARqIRsgAEFAayEcIAAoAoAEIQMDQEGAgAQhCAJAAkACQAJAAkAgBSAUayIKIAFuIgYgACgC+AMiBCADayIBQQAgASAETRsiASABIAZLGyIBQYCABEsNACABIggNACAFIBRJDQFBACEDIABBADYC8AQCQCAUBEAgBSAURg0SIApFDQEgACgC7AQiASABIBRqIAr8CgAAIAAgCjYC8AQMEgsgBSAURg0RCyAAIAo2AvAEDBALIAAgCBDpAUEBIQFBACEJQQAhCkEAIQUCQANAIAEhBiAAKAKoAyAALQCsAyAAKALsBCAAKALwBCAAKAL8AyAFbCAUaiIHELEEISggBUEDbCIBIAAoApAEIg5PDRIgAUECdCIPIAAoAowEaiAoOAIAIAAoArADIAAtALQDIAAoAuwEIAAoAvAEIAcQsQQhKCABQQFqIgQgACgCkAQiDk8EQCAEIQEMEwsgBEECdCITIAAoAowEaiAoOAIAIAAoArgDIAAtALwDIAAoAuwEIAAoAvAEIAcQsQQhKCABQQJqIgMgACgCkAQiDk8EQCADIQEMEwsgA0ECdCIQIAAoAowEaiAoOAIAIAAoAvADIAAtAPQDIAAoAuwEIAAoAvAEIAcQsQQhKCAAKAKcBCIRIAVNBEAgBSARQaiWwQAQvwcACyAAKAKYBCAFQQJ0akMAAIA/ICiMEKYEQwAAgD+SlTgCACAAKALYAyAALQDcAyAAKALsBCAAKALwBCAHELEEISggASAAKAKoBCIOTw0EIAAoAqQEIA9qIChDu26QPpRDAAAAP5I4AgAgACgC4AMgAC0A5AMgACgC7AQgACgC8AQgBxCxBCEoIAAoAqgEIg4gBE0EQCAEIQEMBQsgACgCpAQgE2ogKEO7bpA+lEMAAAA/kjgCACAAKALoAyAALQDsAyAAKALsBCAAKALwBCAHELEEISggACgCqAQiDiADTQRAIAMhAQwFCyAAKAKkBCAQaiAoQ7tukD6UQwAAAD+SOAIAIAAoAsADIAAtAMQDIAAoAuwEIAAoAvAEIAcQsQQhKAJAAkACQAJAAkAgASAAKAK0BCIOTw0AIAAoArAEIA9qICgQpgQ4AgAgACgCyAMgAC0AzAMgACgC7AQgACgC8AQgBxCxBCEoIAAoArQEIg4gBCIBTQ0AIAAoArAEIBNqICgQpgQ4AgAgACgC0AMgAC0A1AMgACgC7AQgACgC8AQgBxCxBCEoIAAoArQEIg4gAyIBTQ0AIAAoArAEIBBqICgQpgQ4AgAgACgCICAALQAkIAAoAuwEIAAoAvAEIAcQsQQhKCAAKAIoIAAtACwgACgC7AQgACgC8AQgBxCxBCEpIAAoAjAgAC0ANCAAKALsBCAAKALwBCAHELEEISogACgCOCAALQA8IAAoAuwEIAAoAvAEIAcQsQQhKyAFQQJ0IgEgACgCwAQiA0kNAQwCCyABIA5B+JbBABC/BwALIAAoArwEIAFBAnRqICggKCAolCApICmUkiAqICqUkiArICuUkpEiKJU4AgAgAUEBciIEIAAoAsAEIgNPBEAgBCEBDAELIAAoArwEIARBAnRqICkgKJU4AgAgAUECciIEIAAoAsAEIgNPBEAgBCEBDAELIAAoArwEIARBAnRqICogKJU4AgAgAUEDciIBIAAoAsAEIgNPDQAgACgCvAQgAUECdGogKyAolTgCACAALQDkAiIBQQhHDQEMAgsgASADQeiWwQAQvwcACyAALQCkAyEVIAAoAqADIAAtAJwDIRcgACgCmAMgAC0AlAMhGSAAKAKQAyAALQCMAyELIAAoAogDIAAtAIQDIQ4gACgCgAMgAC0A/AIhEiAAKAL4AiAALQD0AiETIAAoAvACIAAtAOwCIREgACgC6AIgACgC4AIgASAAKALsBCAAKALwBCAHELEEISggBUEJbCIBIAAoAswEIgNPDQQgACgCyAQgAUECdGogKDgCACARIAAoAuwEIAAoAvAEIAcQsQQhKCABQQFqIgQgACgCzAQiA08EQCAEIQEMBQsgACgCyAQgBEECdGogKDgCACATIAAoAuwEIAAoAvAEIAcQsQQhKCABQQJqIgQgACgCzAQiA08EQCAEIQEMBQsgACgCyAQgBEECdGogKDgCACASIAAoAuwEIAAoAvAEIAcQsQQhKCABQQNqIgQgACgCzAQiA08EQCAEIQEMBQsgACgCyAQgBEECdGogKDgCACAOIAAoAuwEIAAoAvAEIAcQsQQhKCABQQRqIgQgACgCzAQiA08EQCAEIQEMBQsgACgCyAQgBEECdGogKDgCACALIAAoAuwEIAAoAvAEIAcQsQQhKCABQQVqIgQgACgCzAQiA08EQCAEIQEMBQsgACgCyAQgBEECdGogKDgCACAZIAAoAuwEIAAoAvAEIAcQsQQhKCABQQZqIgQgACgCzAQiA08EQCAEIQEMBQsgACgCyAQgBEECdGogKDgCACAXIAAoAuwEIAAoAvAEIAcQsQQhKCABQQdqIgQgACgCzAQiA08EQCAEIQEMBQsgACgCyAQgBEECdGogKDgCACAVIAAoAuwEIAAoAvAEIAcQsQQhKCABQQhqIgEgACgCzAQiA08NBCAAKALIBCABQQJ0aiAoOAIACyAALQDsASIBQQhHBEAgAC0A3AIhHSAAKALYAiAALQDUAiEfIAAoAtACIAAtAMwCISEgACgCyAIgAC0AxAIhIyAAKALAAiAALQC8AiElIAAoArgCIAAtALQCIScgACgCsAIgAC0ArAIhFiAAKAKoAiAALQCkAiEYIAAoAqACIAAtAJwCIRogACgCmAIgAC0AlAIhDSAAKAKQAiAALQCMAiEMIAAoAogCIAAtAIQCIQ8gACgCgAIgAC0A/AEhECAAKAL4ASAALQD0ASEEIAAoAvABIAAoAugBIAEgACgC7AQgACgC8AQgBxCxBCEoIAVBD2wiASAAKALYBCIFTw0CIAAoAtQEIAFBAnRqICg4AgAgBCAAKALsBCAAKALwBCAHELEEISggAUEBaiIDIAAoAtgEIgVPBEAgAyEBDAMLIAAoAtQEIANBAnRqICg4AgAgECAAKALsBCAAKALwBCAHELEEISggAUECaiIDIAAoAtgEIgVPBEAgAyEBDAMLIAAoAtQEIANBAnRqICg4AgAgDyAAKALsBCAAKALwBCAHELEEISggAUEDaiIDIAAoAtgEIgVPBEAgAyEBDAMLIAAoAtQEIANBAnRqICg4AgAgDCAAKALsBCAAKALwBCAHELEEISggAUEEaiIDIAAoAtgEIgVPBEAgAyEBDAMLIAAoAtQEIANBAnRqICg4AgAgDSAAKALsBCAAKALwBCAHELEEISggAUEFaiIDIAAoAtgEIgVPBEAgAyEBDAMLIAAoAtQEIANBAnRqICg4AgAgGiAAKALsBCAAKALwBCAHELEEISggAUEGaiIDIAAoAtgEIgVPBEAgAyEBDAMLIAAoAtQEIANBAnRqICg4AgAgGCAAKALsBCAAKALwBCAHELEEISggAUEHaiIDIAAoAtgEIgVPBEAgAyEBDAMLIAAoAtQEIANBAnRqICg4AgAgFiAAKALsBCAAKALwBCAHELEEISggAUEIaiIDIAAoAtgEIgVPBEAgAyEBDAMLIAAoAtQEIANBAnRqICg4AgAgJyAAKALsBCAAKALwBCAHELEEISggAUEJaiIDIAAoAtgEIgVPBEAgAyEBDAMLIAAoAtQEIANBAnRqICg4AgAgJSAAKALsBCAAKALwBCAHELEEISggAUEKaiIDIAAoAtgEIgVPBEAgAyEBDAMLIAAoAtQEIANBAnRqICg4AgAgIyAAKALsBCAAKALwBCAHELEEISggAUELaiIDIAAoAtgEIgVPBEAgAyEBDAMLIAAoAtQEIANBAnRqICg4AgAgISAAKALsBCAAKALwBCAHELEEISggAUEMaiIDIAAoAtgEIgVPBEAgAyEBDAMLIAAoAtQEIANBAnRqICg4AgAgHyAAKALsBCAAKALwBCAHELEEISggAUENaiIDIAAoAtgEIgVPBEAgAyEBDAMLIAAoAtQEIANBAnRqICg4AgAgHSAAKALsBCAAKALwBCAHELEEISggAUEOaiIBIAAoAtgEIgVPDQIgACgC1AQgAUECdGogKDgCAAsCQCAALQBEQQhHBEAgAkHIB2ogHEGoAfwKAABBACEFIAkhAyAKIQEDQCACQcgHaiAFaiIEKAIAIARBBGotAAAgACgC7AQgACgC8AQgBxCxBCEoIAEgACgC5AQiBE8NAiAAKALgBCADaiAoOAIAIANBBGohAyABQQFqIQEgBUEIaiIFQagBRw0ACwsgCUHUAGohCSAKQRVqIQogBiAGIAhJIgNqIQEgBiEFIANFDQYMAQsLIAEgBEHYlsEAEL8HAAsgASAFQciWwQAQvwcACyAUIAVB3KvHABCiCgALIAEgA0G4lsEAEL8HAAsgASAOQYiXwQAQvwcACyAIQQNsIgwgACgCkAQiAUsNAiAIIAAoApwEIgFLDQMgDCAAKAKoBCIBSw0EIAwgACgCtAQiAUsNBSAIQQJ0IhIgACgCwAQiAUsNBiAIQQlsQQAgACgChAQiAxsiDyAAKALMBCIBSw0HIAhBD2xBACADQQFLGyITIAAoAtgEIgFLDQggCEEVbEEAIANBAksbIhAgACgC5AQiAUsNCSAAKAKABCERIAAoAowEIQkgACgCmAQhBSAAKAKkBCEKIAAoArAEIQYgACgCvAQhBCAAKALIBCEDIAAoAtQEIQEgAkIENwKQCCACQgI3AogIIAIgEDYChAggAiATNgL8ByACIAE2AvgHIAIgDzYC9AcgAiADNgLwByACIBI2AuwHIAIgBDYC6AcgAiAMNgLkByACIAY2AuAHIAIgDDYC3AcgAiAKNgLYByACIAg2AtQHIAIgBTYC0AcgAiAMNgLMByACIAk2AsgHIAIgACgC4AQ2AoAIIBsgESAIIAJByAdqEJ0BIAAgACgCgAQgCGoiAzYCgAQgACgC/AMiASAIbCAUaiEUIAAoAvAEIQUgAQ0ACwtBmJXBABC5CAALIAwgAUGolcEAEKIKAAsgCCABQbiVwQAQogoACyAMIAFByJXBABCiCgALIAwgAUHYlcEAEKIKAAsgEiABQeiVwQAQogoACyAPIAFB+JXBABCiCgALIBMgAUGIlsEAEKIKAAsgECABQZiWwQAQogoAC0H4/8YAQShBqJfBABCiCAALIAJBsAxqJAAgAw8LIAEgDkGYl8EAEL8HAAuiPgMnfwR9An4jAEGwDGsiAiQAAkACQAJAAkACQCAAKAK8BSIBQYOAgIB4RgRAAkAgACgC0AUiBkEESQ0AAkACQCAAKALMBSIELwAAIAQtAAJBEHRyQfDY5QNGBEAgBkELSQ0DIAZBCmshA0EAIQECQANAIAEgBGpBjJXBAEELEJAIRQ0BIAMgAUEBaiIBRw0ACyAGQf//A00NBCACQQA2AtgHIAJBATYCzAcgAkGElcEANgLIByACQgQ3AtAHIAJByAdqEMUHIQMMCQsgASAGSw0BIAJByAdqIAQgARCfAyACKQLMByEsIAIoAsgHBEAgLBCCCCEDDAkLIAJByAdqICynICxCIIinEE8gAigCyAchAyACKAL0CCIEQYCAgIB4RgRAIANFDQQMCQsgAkEEciACQcgHaiIMQQRyQagB/AoAACACIAL9AAP4CP0LA7ABIAIgBDYCrAEgAiADNgIAAkACQAJAIAItALkBIgpFBEAgAkHwAGohBSACLQC4AQ0BIAIoAqgBIQYgAigClAEhBCACQYgGaiIDIAUQ7QMgDCAGIAQgAxCjASACKALIByEFIAIoAqQMIghBgICAgHhGDQMgAigCzAchAyACQfgEaiACQdAHakGMAfwKAAAgAikD4AghLCACKALcCCELIAJBqANqIAJB6AhqQcwB/AoAACACKAK4CiEJIAIoArQKIQ0gAkGYAmogAkG8CmpBkAH8CgAAIAIoAswLIQ4gAkHAAWogAkHQC2pB1AD8CgAAIAIpA6gMIS0gAkEAOgDQByACIA42AswHIAIgBjYCyAcgACAMEPkBDAYLIAJBiAZqIgMgAkHAAfwKAAAgAkHIB2ogAxB2IAIoAswHIQMgAigCyAciBUGAgICAeEcNASADRQ0GDAsLIAIoAqgBIQggAigClAEhBiACQYgGaiIDIAUQ7QMgAkHIB2oiBCAIIAYgAxCXAiACKALIByEFIAIoAtwIIgtBgICAgHhGDQEgAigCzAchAyACQfgEaiACQdAHakGMAfwKAAAgAikD4AghLCACQQA6ANAHIAJBADYCzAcgAiAINgLIByAAIAQQ+QFBgICAgHghCAwECyACQfgEaiACQdAHakGMAfwKAAAgAikC4AghLCACKALcCCELIAJBqANqIAJB6AhqQcwB/AoAACACKAK0CiENIAIoArgKIQkgAkEAOgDQByACIAk2AswHIAIgDTYCyAcgACACQcgHahD5AUGCgICAeCEIDAMLIAIQyAMgBSIDDQgMAwsgAkEANgLYByACQQE2AswHIAJB3IXBADYCyAcgAkIENwLQByACQcgHahDFByEDDAcLIAEgBkHglMEAEKIKAAsgACgC0AUiBCABQQtqIgZJDQIgAEEANgLQBSAEIAZHBEAgBCAGayIEBEAgACgCzAUiASABIAZqIAT8CgAACyAAIAQ2AtAFCwJAIAAoArwFIgFBg4CAgHhGDQAgAEHgAGohBAJAAkACQEEBIAFBgICAgHhzIAFBAE4bDgIBAgALIAQQyQEMAgsgBBDuAwwBCyAEENQCCyAAIAM2AmQgACAFNgJgIABB6ABqIAJB+ARqQYwB/AoAACAAICw3A/gBIAAgCzYC9AEgAEGAAmogAkGoA2pBzAH8CgAAIAAgCTYC0AMgACANNgLMAyAAQdQDaiACQZgCakGQAfwKAAAgACAONgLkBCAAQegEaiACQcABakHUAPwKAAAgACAtNwPABSAAIAg2ArwFIAoNACACEMgDC0EAIQMgACgCvAUiAUGDgICAeEYNBAsgAEHgAGohFAJAIAFBgICAgHhzQQEgAUEASCIDG0EBaw4CAwIACyABQYCAgIB4RgRAAkACQAJAAkACQCAAKAK8ASIBBEAgACgC0AUhBSAAQfQBaiERIABB6AFqIRIgACgCwAEhA0EAIQoDQEGAgAQhCQJAAkACQCAFIAprIgggAW4iBiAAKAK4ASIEIANrIgFBACABIARNGyIBIAEgBksbIgFBgIAESw0AIAEiCQ0AIAUgCkkNAUEAIQMgAEEANgLQBQJAIAoEQCAFIApGDRAgCEUNASAAKALMBSIBIAEgCmogCPwKAAAgACAINgLQBQwQCyAFIApGDQ8LIAAgCDYC0AUMDgsgFCAJEMYCQXwhC0EAIQFBAyEFQX0hCEEAIQNBACENAkADQCAAKAKIASAALQCMASAAKALMBSAAKALQBSAAKAK8ASANbCAKaiIPELEEISgCQAJAAn8gBUEDayIEIhAgACgCzAEiDk8EQCAEDAELIAAoAsgBIAFqICg4AgAgACgCkAEgAC0AlAEgACgCzAUgACgC0AUgDxCxBCEoIAVBAmsiDCAAKALMASIOSQRAIAAoAsgBIAFqQQRqICg4AgAgACgCmAEgAC0AnAEgACgCzAUgACgC0AUgDxCxBCEoIAVBAWsiBiAAKALMASIOSQRAIAAoAsgBIAFqQQhqICg4AgBDAACAPyEoIAAtAIQBIgRBCEcNAwwECyAFQQFrDAELIAVBAmsLIA5BuJjBABC/BwALIAAoAoABIAQgACgCzAUgACgC0AUgDxCxBCEoCwJAAn8CQCAAKALYASIEIA1LBEAgACgC1AEgA2ogKDgCACAAKAKgASAALQCkASAAKALMBSAAKALQBSAPELEEISggECAAKALkASIOSQ0BIAVBA2sMAgsgDSAEQZiYwQAQvwcACyAAKALgASABaiAoOAIAIAAoAqgBIAAtAKwBIAAoAswFIAAoAtAFIA8QsQQhKCAAKALkASIOIAxLBEAgACgC4AEgAWpBBGogKDgCACAAKAKwASAALQC0ASAAKALMBSAAKALQBSAPELEEISggBiAAKALkASIOSQ0CIAVBAWsMAQsgBUECawsgDkGomMEAEL8HAAsgACgC4AEgAWpBCGogKDgCACAAKALwASIEIAVPBEAgACAQNgLwASACQe+kjNQDNgLsByACQu+kjNTzzcTBOjcC5AcgAkKAgICAMDcC3AcgAiAFNgLUByACIBI2AtAHIAIgBCAIajYC2AcgAkHIB2oiBhCmAiADQQRqIgQgACgC/AEiDEsNAiAAIAM2AvwBIAL9DAAAAAAAAAAAAAAAAAAAgD/9CwLkByACQoCAgIDAADcC3AcgAiAENgLUByACIBE2AtAHIAIgCyAMajYC2AcgCEEDayEIIAVBA2ohBSABQQxqIQEgC0EEayELIAYQpgIgBCEDIA1BAWoiDSAJTw0EDAELCyAFIARB3KvHABCiCgALIAQgDEHcq8cAEKIKAAsgCiAFQdyrxwAQogoACyAJQQNsIgwgACgCzAEiAUsNAiAJIAAoAtgBIgFLDQMgDCAAKALkASIBSw0EIAwgACgC8AEiAUsNBSAJQQJ0IgggACgC/AEiAUsNBiAAKALAASEFIAAoAsgBIQYgACgC1AEhBCAAKALgASEDIAAoAuwBIQEgAkIENwKQCCACQgI3AogIIAJCBDcCgAggAkIENwL4ByACQgQ3AvAHIAIgCDYC7AcgAiAMNgLkByACIAE2AuAHIAIgDDYC3AcgAiADNgLYByACIAk2AtQHIAIgBDYC0AcgAiAMNgLMByACIAY2AsgHIAIgACgC+AE2AugHIAAgBSAJIAJByAdqEKUCIAAgACgCwAEgCWoiAzYCwAEgACgCvAEiASAJbCAKaiEKIAAoAtAFIQUgAQ0ACwtBuJfBABC5CAALIAwgAUHIl8EAEKIKAAsgCSABQdiXwQAQogoACyAMIAFB6JfBABCiCgALIAwgAUH4l8EAEKIKAAsgCCABQYiYwQAQogoAC0H4/8YAQShByJjBABCiCAALIAYgBEHcq8cAEKIKAAsCQAJAAkAgAUGCgICAeEYEQCAAKALIAyIDIAAoAmhJDQEgACgC0AUhAUEAIQMgAEEANgLQBSABDQIMBQtB+P/GAEEoQfiZwQAQoggAC0EAIQ0CQAJAA0ACQCAAKAJkIANBBnRqIgUoAiQiDARAIAwgACgC0AUiDiANayIDTQ0BDAQLQdiYwQAQuQgACyAFLQA8IQlBgIAEIQEgAyAMbiIGIAUoAiAiBCAFKAI4IgprIgNBACADIARNGyIDIAMgBksbIgNBgIAETQRAIAMiAUUNAwsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAJQQFrDgMCAQwACyAUIAEgDSAMIAAoAswFIA4QtgMMCwsgACgC5AFBgICAgHhHDQEMCgsgFCABIAogDSAMIAAoAswFIA4Q9AEiAw0QIAFBA2wiCCAAKAKAASIDSw0BIAEgACgCjAEiA0sNAiAIIAAoApgBIgNLDQMgCCAAKAKkASIDSw0EIAFBAnQiBSAAKAKwASIDSw0FIAAoAnwhCSAAKAKIASEGIAAoApQBIQQgACgCoAEhAyACQgQ3ApAIIAJCAjcCiAggAkIENwKACCACQgQ3AvgHIAJCBDcC8AcgAiAFNgLsByACIAg2AuQHIAIgAzYC4AcgAiAINgLcByACIAQ2AtgHIAIgATYC1AcgAiAGNgLQByACIAg2AswHIAIgCTYCyAcgAiAAKAKsATYC6AcgACAKIAEgAkHIB2oQpQIMCQsgFCABIA0gDCAAKALMBSAOEPYBIAFBCWwiBSAAKAK8ASIDSw0FIAAoArgBIQlBACEIIAAoAtADIgRBAkkEQCAAIAogASAJIAVBBEEAQQRBABCPBQwJCyABQQ9sIgYgACgCyAEiA0sNBiAAIAogASAJIAUgACgCxAEgBiAEQQJHBH8gAUEVbCIIIAAoAtQBIgNLDQggACgC0AEFQQQLIAgQjwUMCAsgCCADQeiYwQAQogoACyABIANB+JjBABCiCgALIAggA0GImcEAEKIKAAsgCCADQZiZwQAQogoACyAFIANBqJnBABCiCgALIAUgA0G4mcEAEKIKAAsgBiADQciZwQAQogoACyAIIANB2JnBABCiCgALIAAoAsgDIgQgACgCaCIDTw0BIAAoAmQgBEEGdGoiBiAGKAI4IAFqIgQ2AjggACgCyAMhAyAGKAIgIARGBEAgACADQQFqIgM2AsgDCyABIAxsIA1qIQ0gAyAAKAJoSQ0ACyAAKALQBSEODAELIAQgA0HomcEAEL8HAAsgDSAOSw0BQQAhAyAAQQA2AtAFIA4gDWshASANBEAgDSAORg0EIAEEQCAAKALMBSIEIAQgDWogAfwKAAALIAAgATYC0AUMBAsgDSAORg0DCyAAIAE2AtAFDAILIA0gDkHcq8cAEKIKAAsgA0UEQAJAAkACQAJAAkACQAJAAkAgACgC3AQiAQRAIAAoAtAFIQUgAEGgAWohHCAAKALgBCEDA0BBgIAEIQoCQAJAAkACQAJAIAUgE2siCSABbiIGIAAoAtgEIgQgA2siAUEAIAEgBE0bIgEgASAGSxsiAUGAgARLDQAgASIKDQAgBSATSQ0BQQAhAyAAQQA2AtAFAkAgEwRAIAUgE0YNEiAJRQ0BIAAoAswFIgEgASATaiAJ/AoAACAAIAk2AtAFDBILIAUgE0YNEQsgACAJNgLQBQwQCyAUIAoQ6QFBASEBQQAhCEEAIQlBACEFAkADQCABIQYgACgCiAQgAC0AjAQgACgCzAUgACgC0AUgACgC3AQgBWwgE2oiBxCxBCEoIAVBA2wiASAAKALwBCILTw0SIAFBAnQiECAAKALsBGogKDgCACAAKAKQBCAALQCUBCAAKALMBSAAKALQBSAHELEEISggAUEBaiIEIAAoAvAEIgtPBEAgBCEBDBMLIARBAnQiESAAKALsBGogKDgCACAAKAKYBCAALQCcBCAAKALMBSAAKALQBSAHELEEISggAUECaiIDIAAoAvAEIgtPBEAgAyEBDBMLIANBAnQiEiAAKALsBGogKDgCACAAKALQBCAALQDUBCAAKALMBSAAKALQBSAHELEEISggACgC/AQiDCAFTQRAIAUgDEGolsEAEL8HAAsgACgC+AQgBUECdGpDAACAPyAojBCmBEMAAIA/kpU4AgAgACgCuAQgAC0AvAQgACgCzAUgACgC0AUgBxCxBCEoIAEgACgCiAUiC08NBCAAKAKEBSAQaiAoQ7tukD6UQwAAAD+SOAIAIAAoAsAEIAAtAMQEIAAoAswFIAAoAtAFIAcQsQQhKCAAKAKIBSILIARNBEAgBCEBDAULIAAoAoQFIBFqIChDu26QPpRDAAAAP5I4AgAgACgCyAQgAC0AzAQgACgCzAUgACgC0AUgBxCxBCEoIAAoAogFIgsgA00EQCADIQEMBQsgACgChAUgEmogKEO7bpA+lEMAAAA/kjgCACAAKAKgBCAALQCkBCAAKALMBSAAKALQBSAHELEEISgCQAJAAkACQAJAIAEgACgClAUiC08NACAAKAKQBSAQaiAoEKYEOAIAIAAoAqgEIAAtAKwEIAAoAswFIAAoAtAFIAcQsQQhKCAAKAKUBSILIAQiAU0NACAAKAKQBSARaiAoEKYEOAIAIAAoArAEIAAtALQEIAAoAswFIAAoAtAFIAcQsQQhKCAAKAKUBSILIAMiAU0NACAAKAKQBSASaiAoEKYEOAIAIAAoAoABIAAtAIQBIAAoAswFIAAoAtAFIAcQsQQhKCAAKAKIASAALQCMASAAKALMBSAAKALQBSAHELEEISkgACgCkAEgAC0AlAEgACgCzAUgACgC0AUgBxCxBCEqIAAoApgBIAAtAJwBIAAoAswFIAAoAtAFIAcQsQQhKyAFQQJ0IgEgACgCoAUiA0kNAQwCCyABIAtB+JbBABC/BwALIAAoApwFIAFBAnRqICggKCAolCApICmUkiAqICqUkiArICuUkpEiKJU4AgAgAUEBciIEIAAoAqAFIgNPBEAgBCEBDAELIAAoApwFIARBAnRqICkgKJU4AgAgAUECciIEIAAoAqAFIgNPBEAgBCEBDAELIAAoApwFIARBAnRqICogKJU4AgAgAUEDciIBIAAoAqAFIgNPDQAgACgCnAUgAUECdGogKyAolTgCACAALQDEAyIBQQhHDQEMAgsgASADQeiWwQAQvwcACyAALQCEBCEVIAAoAoAEIAAtAPwDIRcgACgC+AMgAC0A9AMhGSAAKALwAyAALQDsAyEbIAAoAugDIAAtAOQDIQ4gACgC4AMgAC0A3AMhDyAAKALYAyAALQDUAyERIAAoAtADIAAtAMwDIQwgACgCyAMgACgCwAMgASAAKALMBSAAKALQBSAHELEEISggBUEJbCIBIAAoAqwFIgNPDQQgACgCqAUgAUECdGogKDgCACAMIAAoAswFIAAoAtAFIAcQsQQhKCABQQFqIgQgACgCrAUiA08EQCAEIQEMBQsgACgCqAUgBEECdGogKDgCACARIAAoAswFIAAoAtAFIAcQsQQhKCABQQJqIgQgACgCrAUiA08EQCAEIQEMBQsgACgCqAUgBEECdGogKDgCACAPIAAoAswFIAAoAtAFIAcQsQQhKCABQQNqIgQgACgCrAUiA08EQCAEIQEMBQsgACgCqAUgBEECdGogKDgCACAOIAAoAswFIAAoAtAFIAcQsQQhKCABQQRqIgQgACgCrAUiA08EQCAEIQEMBQsgACgCqAUgBEECdGogKDgCACAbIAAoAswFIAAoAtAFIAcQsQQhKCABQQVqIgQgACgCrAUiA08EQCAEIQEMBQsgACgCqAUgBEECdGogKDgCACAZIAAoAswFIAAoAtAFIAcQsQQhKCABQQZqIgQgACgCrAUiA08EQCAEIQEMBQsgACgCqAUgBEECdGogKDgCACAXIAAoAswFIAAoAtAFIAcQsQQhKCABQQdqIgQgACgCrAUiA08EQCAEIQEMBQsgACgCqAUgBEECdGogKDgCACAVIAAoAswFIAAoAtAFIAcQsQQhKCABQQhqIgEgACgCrAUiA08NBCAAKAKoBSABQQJ0aiAoOAIACyAALQDMAiIBQQhHBEAgAC0AvAMhHSAAKAK4AyAALQC0AyEfIAAoArADIAAtAKwDISEgACgCqAMgAC0ApAMhIyAAKAKgAyAALQCcAyElIAAoApgDIAAtAJQDIScgACgCkAMgAC0AjAMhFiAAKAKIAyAALQCEAyEYIAAoAoADIAAtAPwCIRogACgC+AIgAC0A9AIhDSAAKALwAiAALQDsAiELIAAoAugCIAAtAOQCIRAgACgC4AIgAC0A3AIhEiAAKALYAiAALQDUAiEEIAAoAtACIAAoAsgCIAEgACgCzAUgACgC0AUgBxCxBCEoIAVBD2wiASAAKAK4BSIFTw0CIAAoArQFIAFBAnRqICg4AgAgBCAAKALMBSAAKALQBSAHELEEISggAUEBaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANBAnRqICg4AgAgEiAAKALMBSAAKALQBSAHELEEISggAUECaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANBAnRqICg4AgAgECAAKALMBSAAKALQBSAHELEEISggAUEDaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANBAnRqICg4AgAgCyAAKALMBSAAKALQBSAHELEEISggAUEEaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANBAnRqICg4AgAgDSAAKALMBSAAKALQBSAHELEEISggAUEFaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANBAnRqICg4AgAgGiAAKALMBSAAKALQBSAHELEEISggAUEGaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANB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a0EJEJAIDQggCCECA0ACQCABQS8gCyACENADQQEhHUEAISIgASgCAEEBcUUEQAwBCwJAIAEoAgQiAiAITw0AIAIgC2otAABBL0cNACABIAI2AqgEIAEgCzYCpAQgAUECNgLUAiABQciowQA2AtACIAFCATcC3AIgASABQaQEaq1CgICAgCCENwOoAiABIAFBqAJqNgLYAiABQeAAaiABQdACahDiBCABKAJgIgJBgICAgHhGDQEgASkCZCIpQiCIpyEJICmnIR0gAiEiDAELIAIgCE0NAQsLIAFB0AJqIAFBGGogCyAIEPAEIAFB2ABqIAFB4AJqKAIANgIAIAEgASkD2AI3A1ACQAJAIAEpA9ACIilCA1EEQCABQdAAahDCByECDAELIAFB9ABqIAFB5AJqQbQB/AoAACABQfAAaiABQdgAaigCADYCACABICk3A2AgASABKQNQNwNoIAFBADYCsAIgAUKAgICAEDcCqAIgAUHQAmogAUHgAGogAUGoAmoQogEgASgC0AJBAUYEQCABKQLUAhCDCCECIAEoAqgCIgAEQCABKAKsAiAAQQEQ1gcLIAFB4ABqEIgCDAELIAEoAqgCIScgASgCrAIhKCABKAKwAiECIAFB4ABqEIgCIAFBADYCsAIgASACNgKsAiABICg2AqgCIAFB0AJqIAFBqAJqEE4gASgC1AIhAgJAIAEoAtACIgRBgYCAgHhGBEAgAhDXByECDAELIAFB6ABqIAFB2AJqQcAB/AoAACABIAI2AmQgASAENgJgIAFB5ABqIQMgAQJ7QYDRyQAoAgBBAUYEQEGI0ckA/QADAAwBCyABQdACahDuBkGA0ckAQgE3AwBBkNHJACABKQPYAjcDACAB/QAE0AILIir9CwO4AkGI0ckAICr9HQBCAXw3AwAgAUGYpcgA/QADAP0LA6gCAkAgAUHgAGogHSAJIAFBGGogAUGoAmoiBRD/BCICBEAgBRCLBCAEQYCAgIB4Rw0BIAMQlAIMAgsgASABQagCajYCzAIgBEGAgICAeEcEQCABQdACaiABQeAAakHIAfwKAAAgASgCuAMiJUGAgICAeEYNBCABKALAA0ERRw0EIAEoAoADIQYgASgCvANBzqrBAEEREJAIDQRBACEJIAEoAvADIgVBgICAgHhGDQggASgClAQiAkEtTwRAQQMhCQwJCyAC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h8EANgLQAiABQgQ3AtgCIAFB0AJqEMUHIQILIAFBkAVqJAAgAgubNQMofwF+AXsjAEGQBWsiASQAAkACQCAAKAJIIgNBBE8EQCAAKAJEIgIoAABB0JaNIEcNASABQgA3AxAgASADNgIMIAEgAjYCCCABQdACaiABQQhqEDggAUE4aiIDIAFB3AJqKAIANgIAIAEgASkC1AI3AzAgASgC0AIiAkUEQCABQTBqEMIHIQIMAwsgAUEkaiADKAIANgIAIAEgASkDMDcCHCABIAEpA+ACIik3AyggASACNgIYAkACQCAppygCQCIRBEAgAUH0AGohBCABQegAaiEMIAFB5AJqISIgAUHYAmohDQNAIAFBADoAsAIgAUEANgKoAiABQdACaiABQRhqIB0gAUGoAmoQsgEgAUHIAGoiAiANQQhqKAIANgIAIAEgDSkDADcDQAJAAkACQAJAAkACQAJAAkAgASkD0AIiKUIDUgRAIAQgIkG0AfwKAAAgDEEIaiACKAIANgIAIAwgASkDQDcDACABICk3A2AgASgCaCABQeAAaiApQgJRGyICKAIsIghBAEgNASACKAIoIQICQCAIRQRAQQEhCgwBCyAIEH4iCkUNAwsgCARAIAogAiAI/AoAAAsgAUHgAGoQiAIgCEEJSQ0FQZiowQAgCCAKakEJa0EJEJAIDQYgCCECA0ACQCABQS8gCiACENADQQEhHUEAISIgASgCAEEBcUUEQAwBCwJAIAEoAgQiAiAITw0AIAIgCmotAABBL0cNACABIAI2AqgEIAEgCjYCpAQgAUECNgLUAiABQciowQA2AtACIAFCATcC3AIgASABQaQEaq1CgICAgCCENwOoAiABIAFBqAJqNgLYAiABQeAAaiABQdACahDiBCABKAJgIgJBgICAgHhGDQEgASkCZCIpQiCIpyELICmnIR0gAiEiDAELIAIgCE0NAQsLIAFB0AJqIAFBGGogCiAIEPAEIAFB2ABqIAFB4AJqKAIANgIAIAEgASkD2AI3A1ACQAJAIAEpA9ACIilCA1EEQCABQdAAahDCByECDAELIAFB9ABqIAFB5AJqQbQB/AoAACABQfAAaiABQdgAaigCADYCACABICk3A2AgASABKQNQNwNoIAFBADYCsAIgAUKAgICAEDcCqAIgAUHQAmogAUHgAGogAUGoAmoQogEg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NgIAIAwgASkDQDcDACABICk3A2AgASgCaCABQeAAaiApQgJRGyICKAIsIghBAEgNASACKAIoIQICQCAIRQRAQQEhCgwBCyAIEH4iCkUNAwsgCARAIAogAiAI/AoAAAsgAUHgAGoQiAIgCEEJSQ0FQZiowQAgCCAKakEJa0EJEJAIDQYgCCECA0ACQCABQS8gCiACENADQQEhHUEAISIgASgCAEEBcUUEQAwBCwJAIAEoAgQiAiAITw0AIAIgCmotAABBL0cNACABIAI2AqgEIAEgCjYCpAQgAUECNgLUAiABQciowQA2AtACIAFCATcC3AIgASABQaQEaq1CgICAgCCENwOoAiABIAFBqAJqNgLYAiABQeAAaiABQdACahDiBCABKAJgIgJBgICAgHhGDQEgASkCZCIpQiCIpyELICmnIR0gAiEiDAELIAIgCE0NAQsLIAFB0AJqIAFBGGogCiAIEPAEIAFB2ABqIAFB4AJqKAIANgIAIAEgASkD2AI3A1ACQAJAIAEpA9ACIilCA1EEQCABQdAAahDCByECDAELIAFB9ABqIAFB5AJqQbQB/AoAACABQfAAaiABQdgAaigCADYCACABICk3A2AgASABKQNQNwNoIAFBADYCsAIgAUKAgICAEDcCqAIgAUHQAmogAUHgAGogAUGoAmoQogEgASgC0AJBAUYEQCABKQLUAhCDCCECIAEoAqgCIgAEQCABKAKsAiAAQQEQ1gcLIAFB4ABqEIgCDAELIAEoAqgCIScgASgCrAIhKCABKAKwAiECIAFB4ABqEIgCIAFBADYCsAIgASACNgKsAiABICg2AqgCIAFB0AJqIAFBqAJqEE4gASgC1AIhAgJAIAEoAtACIgRBgYCAgHhGBEAgAhDXByECDAELIAFB6ABqIAFB2AJqQcAB/AoAACABIAI2AmQgASAENgJgIAFB5ABqIQMgAQJ7QYDRyQAoAgBBAUYEQEGI0ckA/QADAAwBCyABQdACahDuBkGA0ckAQgE3AwBBkNHJACABKQPYAjcDACAB/QAE0AILIir9CwO4AkGI0ckAICr9HQBCAXw3AwAgAUGYpcgA/QADAP0LA6gCAkAgAUHgAGogHSALIAFBGGogAUGoAmoiBRD/BCICBEAgBRCLBCAEQYCAgIB4Rw0BIAMQlAIMAgsgASABQagCajYCzAIgBEGA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AgsgASgCKCIAIAAoAgAiAEEBazYCACAAQQFHDQMgASgCKBCMAwwDC0Hgi8gAQS5BkIzIABCiCAALIAFBADYC4AIgAUEBNgLUAiABQdyHwQA2AtACIAFCBDcC2AIgAUHQAmoQxQchAgwBCyABQQA2AuACIAFBATYC1AIgAUHAh8EANgLQAiABQgQ3AtgCIAFB0AJqEMUHIQILIAFBkAVqJAAgAgueNQMofwF+AXsjAEGQBWsiASQAAkACQCAAKALMASIDQQRPBEAgACgCyAEiAigAAEHQlo0gRw0BIAFCADcDECABIAM2AgwgASACNgIIIAFB0AJqIAFBCGoQOCABQThqIgMgAUHcAmooAgA2AgAgASABKQLUAjcDMCABKALQAiICRQRAIAFBMGoQwgchAgwDCyABQSRqIAMoAgA2AgAgASABKQMwNwIcIAEgASkD4AIiKTcDKCABIAI2AhgCQAJAICmnKAJAIhEEQCABQfQAaiEEIAFB6ABqIQ0gAUHkAmohIiABQdgCaiEOA0AgAUEAOgCwAiABQQA2AqgCIAFB0AJqIAFBGGogHSABQagCahCyASABQcgAaiICIA5BCGooAgA2AgAgASAOKQMANwNAAkACQAJAAkACQAJAAn8CQAJAAkAgASkD0AIiKUIDUgRAIAQgIkG0AfwKAAAgDUEIaiACKAIANgIAIA0gASkDQDcDACABICk3A2AgASgCaCABQeAAaiApQgJRGyICKAIsIghBAEgNASACKAIoIQICQCAIRQRAQQEhCwwBCyAIEH4iC0UNBwsgCARAIAsgAiAI/AoAAAsgAUHgAGoQiAIgCEEJSQ0HQZiowQAgCCALakEJa0EJEJAIDQggCCECA0ACQCABQS8gCyACENADQQEhHUEAISIgASgCAEEBcUUEQAwBCwJAIAEoAgQiAiAITw0AIAIgC2otAABBL0cNACABIAI2AqgEIAEgCzYCpAQgAUECNgLUAiABQciowQA2AtACIAFCATcC3AIgASABQaQEaq1CgICAgCCENwOoAiABIAFBqAJqNgLYAiABQeAAaiABQdACahDiBCABKAJgIgJBgICAgHhGDQEgASkCZCIpQiCIpyEJICmnIR0gAiEiDAELIAIgCE0NAQsLIAFB0AJqIAFBGGogCyAIEPAEIAFB2ABqIAFB4AJqKAIANgIAIAEgASkD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IAItACQiBHIhACAEQQFxIANBAUdyDRQoAgAiAC0ACkGAAXFFBEAgACgCAEHxwMUAQQIgACgCBCgCDBEAACEADBULIAAoAgBBkr3FAEEBIAAoAgQoAgwRAAAhAAwUC0EBIQAgASgCACIEQf3IxABBECABKAIEIgYoAgwiBREAAA0TIANBAWohAwJAIAEtAApBgAFxRQRAIARB+brFAEEBIAURAAANFSABKAIAIAMtAABBAnQiA0HUnckAaigCACADQbidyQBqKAIAIAEoAgQoAgwRAABFDQEMFQsgBEGMocIAQQIgBREAAA0UIAIgBjYCJCACIAQ2AiAgAkEBOgAQIAMtAABBAnQiA0HAm8kAaigCACEEIANB3JvJAGooAgAhAyACIAJBEGo2AiggAkEgaiIFIAMgBBDYAw0UIAVBg6HCAEECENgDDRQLIAEoAgBBpqHIAEEBIAEoAgQoAgwRAAAhAAwTCyABKAIAQZPExABBESABKAIEKAIMEQAAIQAMEgtBASEAIAIgA0EBajYCDCABKAIAIgNBjcnEAEEPIAEoAgQiBSgCDCIEEQAADRECQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADRMgAkEMaiABENUERQ0BDBMLIANBjKHCAEECIAQRAAANEiACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDRIgAigCIEGDocIAQQIgAigCJCgCDBEAAA0SCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMEQtBASEAIAIgA0EBajYCDCABKAIAIgNBnMnEAEEQIAEoAgQiBSgCDCIEEQAADRACQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADRIgAkEMaiABENUERQ0BDBILIANBjKHCAEECIAQRAAANESACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDREgAigCIEGDocIAQQIgAigCJCgCDBEAAA0RCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMEAtBASEAIAIgA0EBajYCDCABKAIAIgNBrMnEAEEQIAEoAgQiBSgCDCIEEQAADQ8CQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADREgAkEMaiABENUERQ0BDBELIANBjKHCAEECIAQRAAANECACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDRAgAigCIEGDocIAQQIgAigCJCgCDBEAAA0QCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMDwtBASEAIAIgA0EBajYCDCABKAIAIgNBvMnEAEEOIAEoAgQiBSgCDCIEEQAADQ4CQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADRAgAkEMaiABENUERQ0BDBALIANBjKHCAEECIAQRAAANDyACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQ8gAigCIEGDocIAQQIgAigCJCgCDBEAAA0PCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMDgtBASEAIAIgA0EBajYCDCABKAIAIgNBysnEAEELIAEoAgQiBSgCDCIEEQAADQ0CQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQ8gAkEMaiABENUERQ0BDA8LIANBjKHCAEECIAQRAAANDiACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQ4gAigCIEGDocIAQQIgAigCJCgCDBEAAA0OCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMDQtBASEAIAIgA0EBajYCDCABKAIAIgNB1cnEAEEaIAEoAgQiBSgCDCIEEQAADQwCQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQ4gAkEMaiABENUERQ0BDA4LIANBjKHCAEECIAQRAAANDSACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQ0gAigCIEGDocIAQQIgAigCJCgCDBEAAA0NCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMDAtBASEAIAIgA0EBajYCDCABKAIAIgNB78nEAEEYIAEoAgQiBSgCDCIEEQAADQsCQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQ0gAkEMaiABENUERQ0BDA0LIANBjKHCAEECIAQRAAANDCACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQwgAigCIEGDocIAQQIgAigCJCgCDBEAAA0MCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMCwtBASEAIAIgA0EBajYCDCABKAIAIgNBh8rEAEETIAEoAgQiBSgCDCIEEQAADQoCQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQwgAkEMaiABENUERQ0BDAwLIANBjKHCAEECIAQRAAANCyACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQsgAigCIEGDocIAQQIgAigCJCgCDBEAAA0LCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMCgtBASEAIAIgA0EBajYCDCABKAIAIgNBmsrEAEEWIAEoAgQiBSgCDCIEEQAADQkCQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQsgAkEMaiABENUERQ0BDAsLIANBjKHCAEECIAQRAAANCiACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQogAigCIEGDocIAQQIgAigCJCgCDBEAAA0KCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMCQsgASgCAEGwysQAQREgASgCBCgCDBEAACEADAgLIAIgA0EBajYCECABKAIAQdTKxABBEiABKAIEKAIMEQAAIQAgAkEAOgAlIAIgADoAJCACIAE2AiAgAkEgakHmysQAQQMgAkEQakHEysQAEL0FIAItACUiAyACLQAkIgRyIQAgBEEBcSADQQFHcg0HKAIAIgAtAApBgAFxRQRAIAAoAgBB8cDFAEECIAAoAgQoAgwRAAAhAAwI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akkNByAGQQAgByADQSdqSxsNCCAEELQCCyAFIQQMAQsgBUUNACACQbwBahDXBAsgBCABEJYGIQEgAEGAgICAeDYCACAAIAE2AgQMAQsgACANNgIIIAAgBDYCBCAAIAM2AgALIAJB8AFqJAAPC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAAL7hcCG38CfCMAQbAEayIDJAAgA0IANwOYASADQgA3A5ABIANCADcDiAEgA0IANwOAASADQgA3A3ggA0IANwNwIANCADcDaCADQgA3A2AgA0IANwNYIANCADcDUCADQgA3A0ggA0IANwNAIANCADcDOCADQgA3AzAgA0IANwMoIANCADcDICADQgA3AxggA0IANwMQIANCADcDCCADQgA3AwAgA0IANwO4AiADQgA3A7ACIANCADcDqAIgA0IANwOgAiADQgA3A5gCIANCADcDkAIgA0IANwOIAiADQgA3A4ACIANCADcD+AEgA0IANwPwASADQgA3A+gBIANCADcD4AEgA0IANwPYASADQgA3A9ABIANCADcDyAEgA0IANwPAASADQgA3A7gBIANCADcDsAEgA0IANwOoASADQgA3A6ABIANCADcD2AMgA0IANwPQAyADQgA3A8gDIANCADcDwAMgA0IANwO4AyADQgA3A7ADIANCADcDqAMgA0IANwOgAyADQgA3A5gDIANCADcDkAMgA0IANwOIAyADQgA3A4ADIANCADcD+AIgA0IANwPwAiADQgA3A+gCIANCADcD4AIgA0IANwPYAiADQgA3A9ACIANCADcDyAIgA0IANwPAAiADQeADakEAQdAA/AsAQYTGyQAoAgAiCiEGIAJBA2tBGG0iBUEAIAVBAEobIgshBSALQQJ0QZTGyQBqIQgDQCADIARBA3RqIAVBAEgEfEQAAAAAAAAAAAUgCCgCALcLOQMAIAQgBkkiDARAIAhBBGohCCAFQQFqIQUgBCAMaiIEIAZNDQELCyACQRhrIQZBACEFA0BBACEEIANBwAJqIAVBA3RqIB4gACAEQQN0aisDACADIAUgBGtBA3RqKwMAoqA5AwAgBSAKSSIEBEAgBCAFaiIFIApNDQELC0QAAAAAAADwf0QAAAAAAADgfyAGIAtB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AiAgAkEMaiACQSBqENUEDRIgAigCIEGDocIAQQIgAigCJCgCDBEAAA0SCyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMEQtBASEDIAIgAEEBajYCDCABKAIAIgBB3MHEAEEUIAEoAgQiBSgCDCIEEQAADRACQCABLQAKQYABcUUEQCAAQfm6xQBBASAEEQAADRIgAkEMaiABENUERQ0BDBILIABBjKHCAEECIAQRAAANESACQQE6ABMgAiAFNgIYIAIgADYCFCACQeSgwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqENUEDREgAigCIEGDocIAQQIgAigCJCgCDBEAAA0RCyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMEAtBASEDIAIgAEEBajYCDCABKAIAIgBB8MHEAEEVIAEoAgQiBSgCDCIEEQAADQ8CQCABLQAKQYABcUUEQCAAQfm6xQBBASAEEQAADREgAkEMaiABENUERQ0BDBELIABBjKHCAEECIAQRAAANECACQQE6ABMgAiAFNgIYIAIgADYCFCACQeSgwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqENUEDRAgAigCIEGDocIAQQIgAigCJCgCDBEAAA0QCyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMDwsgASgCAEGFwsQAQQwgASgCBCgCDBEAACEDDA4LIAEoAgBBkcLEAEEOIAEoAgQoAgwRAAAhAwwNCyABKAIAQZ/CxABBDiABKAIEKAIMEQAAIQMMDAtBASEDIAEoAgAiBEGtwsQAQQ8gASgCBCIGKAIMIgURAAANCyAAQQFqIQACQCABLQAKQYABcUUEQCAEQfm6xQBBASAFEQAADQ0gACABENEDRQ0BDA0LIARBjKHCAEECIAURAAANDCACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqENEDDQwgAigCIEGDocIAQQIgAigCJCgCDBEAAA0MCyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMCwsgASgCAEG8wsQAQREgASgCBCgCDBEAACEDDAoLQQEhAyACIABBAWo2AgwgASgCACIAQc3CxABBESABKAIEIgUoAgwiBBEAAA0JAkAgAS0ACkGAAXFFBEAgAEH5usUAQQEgBBEAAA0LIAJBDGogARDVBEUNAQwLCyAAQYyhwgBBAiAEEQAADQogAkEBOgATIAIgBTYCGCACIAA2AhQgAkHkoMIANgIkIAIgASkCCDcCKCACIAJBE2o2AhwgAiACQRRqNgIgIAJBDGogAkEgahDVBA0KIAIoAiBBg6HCAEECIAIoAiQoAgwRAAANCgsgASgCAEGmocgAQQEgASgCBCgCDBEAACEDDAkLQQEhAyABKAIAIgRB3sLEAEEZIAEoAgQiBigCDCIFEQAADQggAEEBaiEAAkAgAS0ACkGAAXFFBEAgBEH5usUAQQEgBREAAA0KIAAgARC8BEUNAQwKCyAEQYyhwgBBAiAFEQAADQkgAkEBOgAMIAIgBjYCGCACIAQ2AhQgAkHkoMIANgIkIAIgASkCCDcCKCACIAJBDGo2AhwgAiACQRRqNgIgIAAgAkEgahC8BA0JIAIoAiBBg6HCAEECIAIoAiQoAgwRAAANCQsgASgCAEGmocgAQQEgASgCBCgCDBEAACEDDAgLQQEhAyABKAIAIgRB98LEAEEaIAEoAgQiBigCDCIFEQAADQcgAEEBaiEAAkAgAS0ACkGAAXFFBEAgBEH5usUAQQEgBREAAA0JIAAgARC8BEUNAQwJCyAEQYyhwgBBAiAFEQAADQggAkEBOgAMIAIgBjYCGCACIAQ2AhQgAkHkoMIANgIkIAIgASkCCDcCKCACIAJBDGo2AhwgAiACQRRqNgIgIAAgAkEgahC8BA0IIAIoAiBBg6HCAEECIAIoAiQoAgwRAAANCAsgASgCAEGmocgAQQEgASgCBCgCDBEAACEDDAcLQQEhAyABKAIAIgRBkcPEAEEbIAEoAgQiBigCDCIFEQAADQYgAEEBaiEAAkAgAS0ACkGAAXFFBEAgBEH5usUAQQEgBREAAA0IIAAgARC8BEUNAQwICyAEQYyhwgBBAiAFEQAADQcgAkEBOgAMIAIgBjYCGCACIAQ2AhQgAkHkoMIANgIkIAIgASkCCDcCKCACIAJBDGo2AhwgAiACQRRqNgIgIAAgAkEgahC8BA0HIAIoAiBBg6HCAEECIAIoAiQoAgwRAAANBwsgASgCAEGmocgAQQEgASgCBCgCDBEAACEDDAYLIAEoAgBBrMPEAEEWIAEoAgQoAgwRAAAhAwwFC0EBIQMgASgCACIEQcLDxABBEiABKAIEIgYoAgwiBREAAA0EAkAgAS0ACkGAAXFFBEAgBEH5usUAQQEgBREAAA0GIAAoAgggACgCDCABEM4CRQ0BDAYLIARBjKHCAEECIAURAAANBSACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGoiBDYCICAAKAIIIAAoAgwgAkEgahDOAg0FIARBg6HCAEECENgDDQULIAEoAgBBpqHIAEEBIAEoAgQoAgwRAAAhAwwEC0EBIQMgASgCACIEQdTDxABBECABKAIEIgYoAgwiBREAAA0DAkAgAS0ACkGAAXFFBEAgBEH5usUAQQEgBREAAA0FIAAoAgggACgCDCABEM4CRQ0BDAULIARBjKHCAEECIAURAAANBCACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGoiBDYCICAAKAIIIAAoAgwgAkEgahDOAg0EIARBg6HCAEECENgDDQQLIAEoAgBBpqHIAEEBIAEoAgQoAgwRAAAhAwwDCyABKAIAQeTDxABBEyABKAIEKAIMEQAAIQMMAgsgASgCAEH3w8QAQRAgASgCBCgCDBEAACEDDAELIAEoAgBBh8TEAEEMIAEoAgQoAgwRAAAhAwsgAkEwaiQAIAML4BgCDn8CeyMAQUBqIgIkACACIAE2AhwgAkEANgIYIAIgATYCFCACIAA2AhAgAkEBOgAkIAJBPzYCDCACQT82AiAgAkE0aiIDIAJBDGoiBRChAyACIAIoAjggASACKAI0GyIBNgIcIAJBADYCGCACIAE2AhQgAiAANgIQIAJBAToAJCACQSM2AgwgAkEjNgIgIAMgBRChAyACKAI4IQMgAigCNCEGIAJBATsBMCACIAMgASAGGyIBNgIsIAJBADYCKCACQQE6ACQgAkEuNgIgIAIgATYCHCACQQA2AhggAiABNgIUIAIgADYCECACQS42AgwCQAJAAkACQAJAAkACQANAAkAgAigCECEBIAJBNGogAkEMahChAyACKAI0RQRAAkAgAi0AMQ0AAkAgAi0AMEEBRgRAIAIoAiwhACACKAIoIQEMAQsgAigCLCIAIAIoAigiAUYNAQsgAigCECABaiEHIAAgAWshBgwCCyAHDQFBBiEBDAMLIAIoAighACACIAIoAjw2AiggACABaiEHIAIoAjggAGshBiACLQAxQQFxRQ0BCwsgBkEASA0DAkAgBkUEQEEAIQVBASEEDAELIAYQfiIERQ0FIAchASAEIQACQCAGIgNBEEkNACADQfD///8HcSEJQQAhBQNAIAQgBWohACAFIAdqIgH9AAAAIhH9DP/////////////////////9JyIQ/RYBQQFxIBD9FgBBAXFqIBD9FgJBAXFqIBD9FgNBAXFqIBD9FgRBAXFqIBD9FgVBAXFqIBD9FgZBAXFqIBD9FgdBAXFqIBD9FghBAXFqIBD9FglBAXFqIBD9FgpBAXFqIBD9FgtBAXFqIBD9FgxBAXFqIBD9Fg1BAXFqIBD9Fg5BAXFqIBD9Fg9BAXFqQf8BcUEQRwRAIAUhCQwCCyAA/QwgICAgICAgICAgICAgICAg/QwAAAAAAAAAAAAAAAAAAAAAIBH9DL+/v7+/v7+/v7+/v7+/v7/9bv0MGhoaGhoaGhoaGhoaGhoaGv0m/VIgEf1Q/QsAACAFQRBqIQUgA0EQayIDQQ9LDQALIANFBEAgCSEFDAILIAUgB2ohASAEIAVqIQALIAMgCWohBQNAIAEsAAAiCkEATgRAIAAgCkHBAGtB/wFxQRpJQQV0IApyOgAAIABBAWohACABQQFqIQEgCUEBaiEJIANBAWsiAw0BDAILCyACIAk2AhQgAiAENgIQIAEgA2ohDiACIAY2AgwgBiAHaiEPIAkhBUEAIQMDQAJ/An8CQAJAAkAgASwAACIAQQBIBEAgAS0AAUE/cSELIABBH3EhCgJ/IABBX00EQCAKQQZ0IAtyIQAgAUECagwBCyABLQACQT9xIAtBBnRyIQsgAEFwSQRAIAsgCkEMdHIhACABQQNqDAELIApBEnRBgIDwAHEgAS0AA0E/cSALQQZ0cnIhACABQQRqCyIKIAMgAWtqIQsgAEGjB0YEQAJAIAMgCWoiBEUNACAEIAZPBEAgBCAGRg0BDBELIAQgB2osAABBQEgNEAsgBCAHaiEBQQAhCAJAA0BBgwEhDCABIAdGDQEgAUEBayIDLAAAIgBBAEgEQCAAQT9xAn8gAUECayIDLQAAIgDAIg1BQE4EQCAAQR9xDAELIA1BP3ECfyABQQNrIgMtAAAiAMAiDUG/f0oEQCAAQQ9xDAELIA1BP3EgAUEEayIDLQAAQQdxQQZ0cgtBBnRyC0EGdHIiAEGAgMQARg0CCwJ/AkAgCA0AIAAQgQVFDQBBgIDEACEAQQAMAQtBAQshCCADIQEgAEGAgMQARg0ACyAAEJMFRQ0AAkAgBEECaiIARQ0AIAAgBk8EQCAAIAZGDQEMEQsgACAHaiwAAEFASA0QCyAAIAdqIQFBACEDA0BBggEhDCABIA9GDQECfyABLAAAIgBBAE4EQCAAQf8BcSEAIAFBAWoMAQsgAS0AAUE/cSEIIABBH3EhBCAAQV9NBEAgBEEGdCAIciEAIAFBAmoMAQsgAS0AAkE/cSAIQQZ0ciEIIABBcEkEQCAIIARBDHRyIQAgAUEDagwBCyAEQRJ0QYCA8ABxIAEtAANBP3EgCEEGdHJyIgBBgIDEAEYNAiABQQRqCyEBAn8CQCADQQFxDQAgABCBBUUNAEGAgMQAIQBBAAwBC0EBCyEDIABBgIDEAEYNAAtBg39Bgn8gABCTBRshDAsgAigCDCAFIgFrQQFNBH8gAkEMaiABQQIQqAYgAigCFAUgAQsgAigCECIEaiIAIAw6AAEgAEHPAToAACAFQQJqDAYLIABBgAFJDQFBzQVBACAAQdI9TxsiASABQeYCaiIBIAFBA3RBuLvCAGooAgAgAEsbIgEgAUGzAWoiASABQQN0Qbi7wgBqKAIAIABLGyIBIAFB2gBqIgEgAUEDdEG4u8IAaigCACAASxsiASABQS1qIgEgAUEDdEG4u8IAaigCACAASxsiASABQRZqIgEgAUEDdEG4u8IAaigCACAASxsiASABQQtqIgEgAUEDdEG4u8IAaigCACAASxsiASABQQZqIgEgAUEDdEG4u8IAaigCACAASxsiASABQQNqIgEgAUEDdEG4u8IAaigCACAASxsiASABQQFqIgEgAUEDdEG4u8IAaigCACAASxsiASABQQFqIgEgAUEDdEG4u8IAaigCACAASxsiAUEDdEG4u8IAaigCACIDIABGDQIMAwsgAEH/AXEhACABQQFqIgogAyABa2ohCwsgAEHBAGtBGklBBXQgAHIhAEEBIQhBAQwCCwJAIAEgACADS2oiAEGZC00EQEHpACAAQQN0Qby7wgBqKAIAIgAgAEGAsANzQYCAxABrQYCQvH9JIgEbIQAgAQ0BQQEhCCAAQYABTw0CQQEMAwtBmgtBmgtBqLvCABC/BwALIAUhAwJ/QQEgAEGAAUkiCA0AGkECIABBgBBJDQAaQQNBBCAAQYCABEkbCyIBIAIoAgwgBWtLBH8gAkEMaiAFIAEQqAYgAigCECEEIAIoAhQFIAMLIARqIQMCQAJAIAhFBEAgAEGAEEkNASAAQYCABE8EQCADIABBP3FBgAFyOgADIAMgAEESdkHwAXI6AAAgAyAAQQZ2QT9xQYABcjoAAiADIABBDHZBP3FBgAFyOgABDAMLIAMgAEE/cUGAAXI6AAIgAyAAQQx2QeABcjoAACADIABBBnZBP3FBgAFyOgABDAILIAMgADoAAAwBCyADIABBP3FBgAFyOgABIAMgAEEGdkHAAXI6AAALIAIgASAFaiIBNgIUIAIoAgwgASIAa0EBTQR/IAJBDGogAEECEKgGIAIoAhQFIAALIAIoAhAiBGpBzI8COwAAIAFBAmoMAgtBACEIQQIgAEGAEEkNABpBA0EEIABBgIAESRsLIgEgAigCDCAFIgNrSwR/IAJBDGogAyABEKgGIAIoAhAhBCACKAIUBSADCyAEaiEDAkACQAJAIAhFBEAgAEGAEEkNASAAQYCABEkNAiADIABBP3FBgAFyOgADIAMgAEESdkHwAXI6AAAgAyAAQQZ2QT9xQYABcjoAAiADIABBDHZBP3FBgAFyOgABDAMLIAMgADoAAAwCCyADIABBP3FBgAFyOgABIAMgAEEGdkHAAXI6AAAMAQsgAyAAQT9xQYABcjoAAiADIABBDHZB4AFyOgAAIAMgAEEGdkE/cUGAAXI6AAELIAEgBWoLIQUgCyEDIAIgBTYCFCAKIgEgDkcNAAsgAigCECEEIAIoAgwhBgsCQAJAAkACQAJAAkACQCAFQQNrDgQABAECBQsgBEHw2scAQQMQkAhFBEBBACEBDAYLIARByILIAEEDEJAIDQJBASEBDAULIARBy4LIAEEFEJAIDQNBAiEBDAQLIARB0ILIAEEGEJAIDQJBAyEBDAMLQQQhASAEQYCDyABBAxCQCEUNAiAEQYODyABBAxCQCEUNAkEGQQUgBEHfgsgAQQMQkAgbIQEMAgsgBCgAAEHz3p2bB0cNAEEEIQEMAQtBBiEBCyAGRQ0AIARBBGsoAgAiAEF4cSIDQQRBCCAAQQNxIgAbIAZqSQ0BIABBACADIAZBJ2pLGw0CIAQQtAILIAJBQGskACABDwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALQdD3wQAQtwgLAAsgByAGIAAgBkHA98EAEP0JAAsgByAGQQAgBEGw98EAEP0JAAuLHgIMfwF+IwBBsAFrIgIkACABKAIMIQcCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIUIgQgASgCECIGSQRAIAFBDGohBQNAAkACQCAEIAdqLQAAIgNBCWsOJQEBCwsBCwsLCwsLCwsLCwsLCwsLCwsLAQsICwsLCwsLCwsLCwcACyADQdsAaw4hCAoKCgoKCgoKCgoFCgoKCgoKCgMKCgoKCgQKCgoKCgoJCgsgASAEQQFqIgQ2AhQgBCAGRw0ACyAGIQQLIAJBCGogByAGIARBAWoiASAGIAEgBkkbEIYCIAIoAgwhAyACKAIIIQVBFBB+IgFFDR4gASAFNgIMIAFBBTYCACAAIAE2AgQgAEGVgICAeDYCACABIAM2AhAMHQsgASAEQQFqIgU2AhQCQCAFIAZPDQAgASAEQQJqIgM2AhQgBSAHai0AAEH1AEcNGyADIAUgBiAFIAZLGyIFRg0AIAEgBEEDaiIJNgIUIAMgB2otAABB7ABHBEAgCSEDDBwLIAUgCUYNACABIARBBGoiAzYCFCAHIAlqLQAAQewARw0bIABCkoCAgAg3AwAMHQsgAkEQaiAHIAYgBRCGAiACKAIUIQEgAigCECEDQRQQfiIERQ0dIARBBTYCAAwbCyABIARBAWoiBTYCFAJAIAUgBk8NACABIARBAmoiAzYCFCAFIAdqLQAAQfIARw0YIAMgBSAGIAUgBksbIgVGDQAgASAEQQNqIgk2AhQgAyAHai0AAEH1AEcEQCAJIQMMGQsgBSAJRg0AIAEgBEEEaiIDNgIUIAcgCWotAABB5QBHDRggAEKAgICAGDcDAAwcCyACQSBqIAcgBiAFEIYCIAIoAiQhASACKAIgIQNBFBB+IgRFDRwgBEEFNgIADBgLIAEgBEEBaiIFNgIUAkAgBSAGTw0AIAEgBEECaiIDNgIUIAUgB2otAABB4QBHDRUgAyAFIAYgBSAGSxsiBUYNACABIARBA2oiCTYCFCADIAdqLQAAQewARwRAIAkhAwwWCyAFIAlGDQAgASAEQQRqIgg2AhQgByAJai0AAEHzAEcEQCAIIQMMFgsgBSAIRg0AIAEgBEEFaiIDNgIUIAcgCGotAABB5QBHDRUgAEKAgICACDcDAAwbCyACQTBqIAcgBiAFEIYCIAIoAjQhASACKAIwIQNBFBB+IgRFDRsgBEEFNgIADBULIAEgBEEBajYCFCACQeAAaiABQQAQ6QMgAikDYCIOQgNRDRIgACACKQNoNwMIIABBADYCBCAAIA6nQQJ0QfjzwQBqKAIANgIADBkLIAFBADYCCCABIARBAWo2AhQgAkHgAGogBSABEI8CIAIoAmQhBSACKAJgIgNBAkYNECACKAJoIQEgA0EBcUUNBCABQQBIDQMCQCABRQRAQQEhAwwBCyABEH4iA0UNGgsgAQRAIAMgBSAB/AoAAAsgACABNgIMIAAgAzYCCCAAIAE2AgQgAEGMgICAeDYCAAwYCyABIAEtABhBAWsiBToAGCAEQQFqIQMgBUH/AXFFDQ4gASADNgIUIAJBAToAlAEgAiABNgKQASACQoCAgICAATcCoAFBACEEQQghA0EIIQYCQANAAkAgAiAENgKoASACQeAAaiACQZABahDHAwJAAkAgAi0AYEEBRgRAIAIoAmQhBQwBCyACLQBhQQFHDQIgAkHgAGogAigCkAEQiwEgAigCZCEFIAIoAmAiC0GVgICAeEcNAQsgAigCpAEhBiAEBEAgBiEDA0AgAxCiAyADQRBqIQMgBEEBayIEDQALC0GVgICAeCEEQQEhCSACKAKgASIDRQ0DIAZBBGsoAgAiCEF4cSIHIANBBHQiA0EEQQggCEEDcSIIG3JJDQggCEEAIAcgA0EnaksbDQkgBhC0AgwDCyACKQNoIQ4gAigCoAEgBEYEQCMAQSBrIgYkAAJAAkAgAkGgAWoiCCgCACIHQf///z9LDQBBBCAHQQF0IgwgDEEETRsiDEEEdCINQfj///8HSw0AIAYgBwR/IAYgB0EEdDYCHCAGIAgoAgQ2AhRBCAVBAAs2AhggBkEIakEIIA0gBkEUahDSByAGKAIIQQFHDQEgBigCEBogBigCDCEKCyAKQfCEwQAQ0AkACyAGKAIMIQcgCCAMNgIAIAggBzYCBCAGQSBqJAAgAigCpAEhBgsgAyAGaiIIIA43AgAgCEEEayAFNgIAIAhBCGsgCzYCACADQRBqIQMgBEEBaiEEDAELC0GUgICAeCEEIAIpAqQBIQ4gAigCoAEhBQsgASABLQAYQQFqOgAYIAIgARDbAyIDNgJwIAIgDjcDaCACIAU2AmQgAiAENgJgAkACQCAJRQRAIAMNASAOQiCIpyEDIA6nIQkMDwtBlYCAgHghBCADRQ0BIAJB8ABqENcEDAELIAJB4ABqEKIDQZWAgIB4IQQgAyEFCwwMCyABIAEtABhBAWsiBToAGCAEQQFqIQMgBUH/AXFFDQogASADNgIUIAJBAToAgAEgAiABNgJ8IAJBADYCjAEgAkKAgICAgAE3AoQBQQghBQNAIAJB4ABqIAJB/ABqEOcCIAItAGBBAUYEQCACKAJkIQYMCgsgAi0AYUEBRgRAIAIoAnwiCEEANgIIIAggCCgCFEEBajYCFCACQeAAaiAIQQxqIAgQjwIgAigCZCEGIAIoAmAiA0ECRg0KIAIoAmghBAJ/IANBAXEEQCAEQQBIDQkCQCAERQRAQQEhAwwBCyAEEH4iA0UNHAsgBARAIAMgBiAE/AoAAAsgBCEGQYyAgIB4DAELIAQhA0GNgICAeAshCiACIAQ2AqwBIAIgAzYCqAEgAiAGNgKkASACIAo2AqABIAgoAgwhBwJAAkAgCCgCFCIEIAgoAhAiA0kEQANAAkAgBCAHai0AAEEJaw4yAAADAwADAwMDAwMDAwMDAwMDAwMDAwMAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQDCyAIIARBAWoiBDYCFCADIARHDQALIAMhBAsgAkHYAGogByADIARBAWoiBSADIAMgBUsbEIYCIAIoAlwhAyACKAJYIQVBFBB+IgZFDRsgBiAFNgIMIAZBAzYCACAGIAM2AhAMCwsgAkHQAGogByADIARBAWoiBSADIAMgBUsbEIYCIAIoAlQhAyACKAJQIQVBFBB+IgZFDRogBiAFNgIMIAZBBjYCACAGIAM2AhAMCgsgCCAEQQFqNgIUIAJB4ABqIAgQiwEgAigCYEGVgICAeEYNCCACIAL9AANg/QsDkAEgAikDqAEhDiACKAKEASAJRgRAQQAhCCMAQSBrIgMkAAJAAkAgAkGEAWoiBSgCACIEQf///x9LDQBBBCAEQQF0IgcgB0EETRsiB0EFdCILQfj///8HSw0AIAMgBAR/IAMgBEEFdDYCHCADIAUoAgQ2AhRBCAVBAAs2AhggA0EIakEIIAsgA0EUahDSByADKAIIQQFHDQEgAygCEBogAygCDCEICyAIQeCEwQAQ0AkACyADKAIMIQQgBSAHNgIAIAUgBDYCBCADQSBqJAAgAigCiAEhBQsgBSAJQQV0aiIDIA43AgggAyAGNgIEIAMgCjYCACADIAL9AAOQAf0LAhAgAiAJQQFqIgk2AowBDAELCyAJrSEOIAIoAoQBIQQMCQsgA0Ewa0H/AXFBCk8EQCACIAcgBiAEQQFqIgMgBiADIAZJGxCGAiACKAIEIQMgAigCACEEQRQQfiIFRQ0XIAUgBDYCDCAFQQo2AgAgBSADNgIQDAwLIAJB4ABqIAFBARDpAyACKQNgIg5CA1EEQCAAIAIoAmg2AgQgAEGVgICAeDYCAAwWCyAAIAIpA2g3AwggAEEANgIEIAAgDqdBAnRB+PPBAGooAgA2AgAMFQtB/KTIABC3CAALIAAgATYCCCAAIAU2AgQgAEGNgICAeDYCAAwTC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAtB/KTIABC3CAALIAIoAmQhBgsgAkGgAWoQogMLIAIoAogBIQMgCQRAIAMhBANAIAQQogMgBEEQahCiAyAEQSBqIQQgCUEBayIJDQALC0GVgICAeCEEIAIoAoQBIgVFBEAgBiEFDAELIAMgBUEFdEEIENYHIAYhBQsgASABLQAYQQFqOgAYIAIgARCKBSIDNgJwIAIgBTYCZCACIAQ2AmAgAiAONwNoAkACQCAEQZWAgIB4RwRAIAMNASAOQiCIpyEDIA6nIQkMBAsgAw0BQZWAgIB4IQQgDqchCQwDCyACQeAAahCiA0GVgICAeCEEIAMhBSAOpyEJDAILIAJB8ABqENcEQZWAgIB4IQQgDqchCQwBCyACQcgAaiAHIAYgAyAGIAMgBkkbEIYCIAIoAkwhAyACKAJIIQVBFBB+IgFFDQwgASAFNgIMIAFBGDYCACAAIAE2AgQgAEGVgICAeDYCACABIAM2AhAMCwsgBEGVgICAeEYNACAAIAM2AgwgACAJNgIIIAAgBTYCBCAAIAQ2AgAMCgsgBSABEJYGIQEgAEGVgICAeDYCACAAIAE2AgQMCQsgAkFAayAHIAYgAyAGIAMgBkkbEIYCIAIoAkQhAyACKAJAIQVBFBB+IgFFDQkgASAFNgIMIAFBGDYCACAAIAE2AgQgAEGVgICAeDYCACABIAM2AhAMCAsgAEGVgICAeDYCACAAIAU2AgQMBwsgACACKAJoNgIEIABBlYCAgHg2AgAMBgsgAkE4aiAHIAYgAxCGAiACKAI8IQEgAigCOCEDQRQQfiIERQ0GIARBCTYCAAsgBCADNgIMIAAgBDYCBCAAQZWAgIB4NgIAIAQgATYCEAwECyACQShqIAcgBiADEIYCIAIoAiwhASACKAIoIQNBFBB+IgRFDQQgBEEJNgIACyAEIAM2AgwgACAENgIEIABBlYCAgHg2AgAgBCABNgIQDAILIAJBGGogByAGIAMQhgIgAigCHCEBIAIoAhghA0EUEH4iBEUNAiAEQQk2AgALIAQgAzYCDCAAIAQ2AgQgAEGVgICAeDYCACAEIAE2AhALIAJBsAFqJAAPCwALhhYDEX8BfgFvIwBB4AZrIgEkACABQaABaiIHIAIgAygCDBEBAAJAAkACQAJAAkACQCABKQOgAULjuLff5OHXqGOFIAEpA6gBQpWjj9nAx5KMvX+FhFAEQCABQTBqIAJB8AD8CgAAIAEoApQBIgNFDQEgByADIAEoApgBIhIoAgwiCBEBAAJAAkACQAJAAkAgASkDoAFC7sGdmPLCkvmYf4UgASkDqAFChcyOgPfP6dRohYRQRQRAIAcgAyAIEQEAIAEpA6ABQuWH3ryz2rPhxACFIAEpA6gBQqynl6rfstjsyQCFhFANASAHIAMgCBEBACABKQOgAUKA49yut8CX5S+FIAEpA6gBQvGsgrbkgP7hPoWEUA0CIAcgAyAIEQEAIAEpA6ABQqDNkamkofv0k3+FIAEpA6gBQtDM+uGw4u+YEYWEUA0DIAcgAyAIEQEAIAEpA6ABQuvPl52IxIGDon+FIAEpA6gBQveAsPjX6uXBqn+FhFANBCAHIAMgCBEBACABKQOgAULhj7yU1aXQy9YAhSABKQOoAUKupdLzmqHj775/hYRQIhMNBSABQQA2ArABIAFBATYCpAEgAUGws8EANgKgASABQgQ3AqgBIAdBuLPBABDKCAALIAFBoAFqIANBuAX8CgAAIAFBEGogA0Ecav0AAgD9CwMAIAFBIGogA0Esav0AAgD9CwMAIAEgA/0AAgz9CwMAIAMoAjwhByADKAIIIQggAykDACEVIAEoAsgGIgQEQCABKALMBiIFQQRrKAIAIgZBeHEiCUEEQQggBkEDcSIGGyAEakkNDCAGQQAgCSAEQSdqSxsNCyAFELQCCwJAIAEoArwGIgVBg4CAgHhGDQAgAUHgAWohBAJAAkACQEEBIAVBgICAgHhzIAVBAE4bDgIBAgALIAQQyQEMAgsgBBDuAwwBCyAEENQCCyADQQRrKAIAIgRBeHFBvAVBwAUgBEEDcSIFG0kNCyAFRQ0IIARB4AVPDQoMCAsgAUEQaiADQRxq/QACAP0LAwAgAUEgaiADQSxq/QACAP0LAwAgASAD/QACDP0LAwAgAygCgAEhCSADKAJ8IQ0gAygCdCEOIAMoAnAhCyADKAJoIRIgAygCZCEEIAMoAlwhEyADKAJYIQUgAygCUCEMIAMoAkwhBiADKAI8IQcgAygCCCEIIAMpAgAhFSADKAJAIgoEQCADKAJEIg9BBGsoAgAiEEF4cSIRQQRBCCAQQQNxIhAbIApqSQ0LIBBBACARIApBJ2pLGw0KIA8QtAILIAYEQCAMQQRrKAIAIgpBeHEiD0EEQQggCkEDcSIKGyAGakkNCyAKQQAgDyAGQSdqSxsNCiAMELQCCyAFBEAgE0EEaygCACIGQXhxIgxBBEEIIAZBA3EiBhsgBWpJDQsgBkEAIAwgBUEnaksbDQogExC0AgsCQCAEQYCAgIB4Rg0AIAQEQCASQQRrKAIAIgVBeHEiBiAEQQJ0IgRBBEEIIAVBA3EiBRtqSQ0MIAVBACAGIARBJ2pLGw0LIBIQtAILIAsEQCAOQQRrKAIAIgRBeHEiBSALQQF0IgZBBEEIIARBA3EiBBtqSQ0MIARBACAFIAZBJ2pLGw0LIA4QtAILIA1FDQAgCUEEaygCACIEQXhxIgUgDUECdCIGQQRBCCAEQQNxIgQbakkNCyAEQQAgBSAGQSdqSxsNCiAJELQCCyADQQRrKAIAIgRBeHFBrNMAQbDTACAEQQNxIgUbSQ0KIAVFIARB0NMASXINBwwJCyABQRBqIANBHGr9AAIA/QsDACABQSBqIANBLGr9AAIA/QsDACABIAP9AAIM/QsDACADKAI8IQcgAygCCCEIIAMpAgAhFSADKAJAIgQEQCADKAJEIgVBBGsoAgAiBkF4cSIJQQRBCCAGQQNxIgYbIARqSQ0KIAZBACAJIARBJ2pLGw0JIAUQtAILIANBBGsoAgAiBEF4cSIFQdAAQdQAIARBA3EiBBtJDQkgBEUgBUH0AElyDQYMCAsgAUEQaiADQRxq/QACAP0LAwAgAUEgaiADQSxq/QACAP0LAwAgASAD/QACDP0LAwAgAygCPCEHIAMoAgghCCADKQIAIRUgAygCQCIEBEAgAygCRCIFQQRrKAIAIgZBeHEiCUEEQQggBkEDcSIGGyAEakkNCSAGQQAgCSAEQSdqSxsNCCAFELQCCyADQQRrKAIAIgRBeHEiBUHQAEHUACAEQQNxIgQbSQ0IIARFIAVB9ABJcg0FDAcLIAFBEGogA0Ecav0AAgD9CwMAIAFBIGogA0Esav0AAgD9CwMAIAEgA/0AAgz9CwMAIAMoAjwhByADKAIIIQggAykCACEVIAMoAkAiBARAIAMoAkQgBEEBENYHCyADQQRrKAIAIgRBeHEiBUHQAEHUACAEQQNxIgQbSQ0HIARFIAVB9ABJcg0EDAYLIAFBEGogA0GUAmr9AAIA/QsDACABQSBqIANBpAJq/QACAP0LAwAgASAD/QAChAL9CwMAIAMoAoACIQggAykC+AEhFSADKALoASEMIAMoAuQBIQYgAygCiAEhCiADKAJ0IQ8gAygCcCEJIAMoAmwhBSADKAJoIQ0gAygCZCEOIAMoAgAhBCADKAK0AiEHIAMoAtgCIgsEQCADKALcAiALQQEQ1gcLAkAgBEECRg0AIAUEQCANQSRqIQQDQCAEQQRrKAIAIgtBgICAgHhyQYCAgIB4RwRAIAQoAgAiEEEEaygCACIRQXhxIhRBBEEIIBFBA3EiERsgC2pJDQogEUEAIBQgC0EnaksbDQkgEBC0AgsgBEEwaiEEIAVBAWsiBQ0ACwsgDgRAIA0gDkEwbEEIENYHCyAJQYCAgIB4ckGAgICAeEYNACAPIAlBARDWBwsgAyASIBMbIQMgBkUgCkECRnJFBEAgDCAGQShsQQgQ1gcLIANBBGsoAgAiBEF4cUGEA0GIAyAEQQNxIgUbSQ0CIAVFIARBqANJcg0DDAULIAEgAzYCpAEgASACNgKgAUHA+MgAQSsgAUGgAWpBwPHBAEHg8sEAEJUHAAtBjLPBABCkCgALQeCLyABBLkGQjMgAEKIIDAELIAMQtAIgASgCPCIDQYCAgIB4ckGAgICAeEcEQCABKAJAIgRBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIANqSQ0DIAVBACAGIANBJ2pLGw0CIAQQtAILIAEoAkhBgICAgHhHBEAgAUHIAGoQmQMLIAEoAjAiAwRAIAEoAjQiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgA2pJDQMgBUEAIAYgA0EnaksbDQIgBBC0AgsCQCABKAKIASIDQYCAgIB4ckGAgICAeEcEQCABKAKMASIEQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyADakkNBCAFQQAgBiADQSdqSxsNASAEELQCC0HUABB+IgNFDQEgAyAINgIUIAMgFTcCDCADQQA2AgggA0KBgICAEDcCACADIAH9AAMA/QsCGCADIAc2AlAgAyAINgJMIAMgBzYCSCADQShqIAFBEGr9AAMA/QsCACADQThqIAFBIGr9AAMA/QsCACADQQhqEAkhFhCFBSIHIBYmASACQQRrKAIAIgNBeHFB9ABB+AAgA0EDcSIIG0kNAyAIQQAgA0GYAU8bDQIgAhC0AiAAIAc2AgQgAEEANgIAIAFB4AZqJAAPCwwBCwALQaCMyABBLkHQjMgAEKIIAAtB4IvIAEEuQZCMyAAQoggAC+IaAxN/Bn0BfiMAQbABayICJAACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQCABKAIUIgMgASgCECIESQRAIAEoAgwhBgJ+AkADQCADIAZqLQAAIgVBCWsiB0EXS0EBIAd0QZOAgARxRXINASABIANBAWoiAzYCFCADIARHDQALIAQhA0IADAELQoACCyAFrUIQhoRCgIK4A1ENAQsCQCACQShqIAEoAgwiByAEIAMgBEkEfwNAIAMgB2otAAAiCEEJayIFQRdLQQEgBXRBk4CABHFFcg0CIAEgA0EBaiIDNgIUIAMgBEcNAAsgBAUgAwtBAWoiASAEIAEgBEkbEIYCIAIoAiwhASACKAIoIQRBFBB+IgMNAgwQCwJAIAhB2wBHBEAgCEH7AEYNASABIAJBrwFqQYySwQAQ+gEhBQwOCyABIAEtABhBAWsiBToAGCADQQFqIQMgBUH/AXFFDQsgASADNgIUIAIgATYCpAEgAkEBOgCoASACQeQAaiACQaQBahDHAwJAIAItAGRBAUYEQCACKAJoIQRBAiEDDAELAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAItAGVBAUYEQCACQeQAaiACKAKkARDoAiACKAJkIgVBAkYEQCACKAJoIQRBAiEDDA4LIAIoAmghDyACQeQAaiACQaQBahDHAyACLQBkQQFGBEAgAigCaCEEQQIhAwwOCyACLQBlQQFHDQIgAkHkAGogAigCpAEQ6AIgAigCZCIHQQJHDQEgAigCaCEEQQIhAwwNC0EAQdiKyABBgIjIABCPByEEQQIhAwwMCyACKgJoIRUgAkHkAGogAkGkAWoQxwMgAi0AZEEBRgRAIAIoAmghBEECIQMMDAsgAi0AZUEBRw0CIAJB5ABqIAIoAqQBEOgCIAIoAmQiCEECRw0BIAIoAmghBEECIQMMCwtBAUHYisgAQYCIyAAQjwchBEECIQMMCgsgAioCaCEWIAJB5ABqIAJBpAFqEMcDIAItAGRBAUYEQCACKAJoIQRBAiEDDAoLIAItAGVBAUcNAiACQeQAaiACKAKkARDoAiACKAJkIhBBAkcNASACKAJoIQRBAiEDDAkLQQJB2IrIAEGAiMgAEI8HIQRBAiEDDAgLIAIqAmghFyACQeQAaiACQaQBahDHAyACLQBkQQFGBEAgAigCaCEEQQIhAwwICyACLQBlQQFHDQIgAkHkAGogAigCpAEQ6AIgAigCZCIRQQJHDQEgAigCaCEEQQIhAwwHC0EDQdiKyABBgIjIABCPByEEQQIhAwwGCyACKgJoIRggAkHkAGogAkGkAWoQxwMgAi0AZEEBRgRAIAIoAmghBEECIQMMBgsgAi0AZUEBRw0BIAJB5ABqIAIoAqQBEOgCQQIhAyACKAJkIhJBAkYEQCACKAJoIQQMBgsgAigCaCEKIAJB5ABqIAJBpAFqEPoGIAIoAmghBCACKAJkIgtBAmsOAgMFAgtBBEHYisgAQYCIyAAQjwchBEECIQMMBAtBBUHYisgAQYCIyAAQjwchBEECIQMMAwsgAkHkAGohCSMAQRBrIgYkACAGQQhqIAJBpAFqIgwQxwMCQCAGLQAIQQFGBEAgCSAGKAIMNgIEIAlBAToAAAwBCyAGLQAJRQRAIAlBgAY7AQAMAQsgBkEIaiAMKAIAEI0CIAYtAAhBAUYEQCAJIAYoAgw2AgQgCUEBOgAADAELIAkgBi0ACToAASAJQQA6AAALIAZBEGokACACLQBkRQ0BIAIoAmghBAwCC0EGQdiKyABBgIjIABCPByEEDAELIAItAGUiE0EDRwRAIAQhFCAPIQQgBSEDDAELQQdB2IrIAEGAiMgAEI8HIQQLIAEgAS0AGEEBajoAGCACIAEQ2wMiBTYCoAEgAiATOgCcASACIBQ2ApgBIAIgCzYClAEgAiAKNgKQASACIBI2AowBIAIgGDgCiAEgAiARNgKEASACIBc4AoABIAIgEDYCfCACIBY4AnggAiAINgJ0IAIgFTgCcCACIAc2AmwgAiAENgJoIAIgAzYCZEECIQcgA0ECRwRAIAUNCyACQeAAaiACQewAaiIFQTBqKAIANgIAIAJB0ABqIAVBIGr9AAIA/QsDACACQUBrIAVBEGr9AAIA/QsDACACIAX9AAIA/QsDMCADIQcMCgsgBQ0DDAkLIAEgAS0AGEEBayIFOgAYIANBAWohAyAFQf8BcUUNByABIAM2AhQgAkEBOgCoASACIAE2AqQBQQMhBkECIQlBAiEMQQIhDUECIQtBAiEFQQIhDkECIQoCfwJAA0ACQCACQeQAaiIEIAJBpAFqEOcCIAItAGRBAUYNACACLQBlQQFHDQcgAigCpAEiA0EANgIIIAMgAygCFEEBajYCFCAEIANBDGogAxCPAiACKAJoIQQgAigCZEECRg0CAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAmxBBmsOBQADAwMBAwsgBEHeicgAQQYQkAhFDQMgBEHkicgAQQYQkAgNASAOQQJGDQRB5InIAEEGENEHIQRBAgwOCyAEQeqJyABBChCQCEUNBCAEQfSJyABBChCQCEUNBSAEQZCKyABBChCQCA0BIAZBA0YNCUGQisgAQQoQ0QchBEECDA0LIARB/onIAEEGEJAIRQ0FIARBhIrIAEEGEJAIRQ0GIARBiorIAEEGEJAIRQ0HCyADEKsBIgRFDQkMCgsgCkECRwRAQd6JyABBBhDRByEEQQIMCwsgAkHkAGogAxDZBUECIQMgAigCaCIPIQQgAigCZCIKQQJHDQgMEQsgAkHkAGogAxDZBUECIQMgAigCaCIEviEXIAIoAmQiDkECRw0HDBALIAVBAkcEQEHqicgAQQoQ0QchBEECDAkLIAJB5ABqIAMQ2QVBAiEDIAIoAmgiBL4hFSACKAJkIgVBAkcNBgwPCyALQQJHBEBB9InIAEEKENEHIQRBAgwICyACQeQAaiADENkFQQIhAyACKAJoIgS+IRYgAigCZCILQQJHDQUMDgsgDUECRwRAQf6JyABBBhDRByEEQQIMBwsgAkHkAGogAxDZBUECIQMgAigCaCIEviEYIAIoAmQiDUECRw0EDA0LIAxBAkcEQEGEisgAQQYQ0QchBEECDAYLIAJB5ABqIAMQ2QVBAiEDIAIoAmgiBL4hGSACKAJkIgxBAkcNAwwMCyAJQQJHBEBBiorIAEEGENEHIQRBAgwFCyACQeQAaiADENkFQQIhAyACKAJoIgS+IRogAigCZCIJQQJHDQIMCwsgAkHkAGogAxDcBSACLQBlIQYgAi0AZEEBRw0BCwsgAigCaCEEC0ECCyEDDAYLIAEgA0EBaiIFNgIUAkAgBCAFTQ0AIAEgA0ECaiIINgIUIAUgBmotAABB9QBHDQQgCCAFIAQgBCAFSRsiBUYNACABIANBA2oiBzYCFCAGIAhqLQAAQewARwRAIAchCAwFCyAFIAdGDQAgASADQQRqIgg2AhQgBiAHai0AAEHsAEcNBCAAQQI2AgAMDgsgAkEIaiAGIAQgBRCGAiACKAIMIQEgAigCCCEEQRQQfiIDRQ0OIANBBTYCAAwECyADIAQ2AgwgA0EFNgIAIAMgATYCEAwLCyACQaABahDXBAwFCyAKQQAgCkECRxshAyAJQQAgCUECRxshEyAMQQAgDEECRxshEiANQQAgDUECRxshByALQQAgC0ECRxshCCAFQQAgBUECRxshECAOQQAgDkECRxshEUECIAYgBkEDRhshFCAPIQQMAgsgAkEQaiAGIAQgCBCGAiACKAIUIQEgAigCECEEQRQQfiIDRQ0KIANBCTYCAAsgAyAENgIMIAAgAzYCBCAAQQM2AgAgAyABNgIQDAgLIAEgAS0AGEEBajoAGCACIAEQigUiBTYCoAEgAiAUOgCcASACIBo4ApgBIAIgEzYClAEgAiAZOAKQASACIBI2AowBIAIgGDgCiAEgAiAHNgKEASACIBY4AoABIAIgCDYCfCACIBU4AnggAiAQNgJ0IAIgFzgCcCACIBE2AmwgAiAENgJoIAIgAzYCZEECIQcgA0ECRwRAIAUNAyACQeAAaiACQewAaiIFQTBqKAIANgIAIAJB0ABqIAVBIGr9AAIA/QsDACACQUBrIAVBEGr9AAIA/QsDACACIAX9AAIA/QsDMCADIQcgBCEFDAMLIAVFBEAgBCEFDAMLIAJBoAFqENcEIAQhBQwCCyACQSBqIAcgBCADIAQgAyAESRsQhgIgAigCICEEIAIoAiQMAwsgBCEFCyAHQQJGDQIgACAC/QADMP0LAgggAEE4aiACQeAAaigCADYCACAAQShqIAJB0ABq/QADAP0LAgAgAEEYaiACQUBr/QADAP0LAgAgACAFNgIEIAAgBzYCAAwECyACQRhqIAcgBCADIAQgAyAESRsQhgIgAigCGCEEIAIoAhwLIQFBFBB+IgNFDQMgAyAENgIMIANBGDYCACADIAE2AhAMAQsgBSABEJYGIQMLIABBAzYCACAAIAM2AgQLIAJBsAFqJAAPCwAL1BYCH38FfSMAQZABayIBJAACQAJAAkACQAJAAkAgACgCxAEiAkEfcUUEQCABQQA6AEggAUEANgJEIAEgAkEFdiIZNgJAIAAgAUFAaxDMBCABQQA2AgwgAUKAgICAwAA3AgQgAUEANgIYIAFCgICAgMAANwIQIAFBADYCJCABQoCAgIDAADcCHCABQQA2AjAgAUKAgICAwAA3AiggAUEANgI8IAFCgICAgMAANwI0IAJFBEBBBCECIAAQrwEhCkEEIQRBBCEDQQQhEAwDC0EEIRACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkADQCALQYCABCAZIBNrIgIgAkGAgARPGyIOQQNsIgdJBEAgByALIgJrIgMgASgCBCACa0sEQCABQQRqIAIgA0EEQQQQ0AUgASgCCCEQIAEoAgwhAgsgECACQQJ0aiEEIANBAkkEfyACBSAHIAtBf3NqQQJ0IgUEQCAEQQAgBfwLAAsgECACIAdqIAtrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiILNgIMIAEoAhghBQsgBSAOSQRAIA4gBSICayIDIAEoAhAgAmtLBEAgAUEQaiACIANBBEEEENAFIAEoAhghAgsgASgCFCIGIAJBAnRqIQQgA0ECSQR/IAIFIA4gBUF/c2pBAnQiDARAIARBACAM/AsACyAGIAIgDmogBWtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIgU2AhgLIAEoAiQiDCAHSQRAIAcgDCICayIDIAEoAhwgAmtLBEAgAUEcaiACIANBBEEEENAFIAEoAiQhAgsgASgCICIGIAJBAnRqIQQgA0ECSQR/IAIFIAcgDEF/c2pBAnQiDQRAIARBACAN/AsACyAGIAIgB2ogDGtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIgw2AiQLIAEoAjAiDSAHSQRAIAcgDSICayIDIAEoAiggAmtLBEAgAUEoaiACIANBBEEEENAFIAEoAjAhAgsgASgCLCIGIAJBAnRqIQQgA0ECSQR/IAIFIAcgDUF/c2pBAnQiCgRAIARBACAK/AsACyAGIAIgB2ogDWtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIg02AjALIA5BAnQiFCABKAI8IgZLBEAgFCAGIgJrIgMgASgCNCACa0sEQCABQTRqIAIgA0EEQQQQ0AUgASgCPCECCyABKAI4IgogAkECdGohBCADQQJJBH8gAgUgFCAGQX9zakECdCIIBEAgBEEAIAj8CwALIAogAiAUaiAGa0ECdGpBBGshBCACIANqQQFrCyEDIARBADYCACABIANBAWoiBjYCPAsgASgCCCEQAkAgEyAZRwRAIBNBBXQiGiAAKALAAWohG0EBIA4gDkEBTRtBBXQhHCAAKALEASEDQQAhGCABKAI4IRUgASgCFCEdIAEoAiAhHiABKAIsIR8gBSECQQAhF0EAIQ9BACEKA0AgGCAaaiIIQQRqIgQgA0sNIyAIQQhqIgQgA0sNIyAIQQxqIgQgA0sNIyAIQRBqIgQgA0sNIyAIQRRqIgQgA0sNIyAIQRhqIhYgA0sNGSALIA9NDQIgGCAbaiIEQQRqKgAAISAgBEEIaioAACEhIARBDGoqAAAhIiAEQRBqKgAAISMgBEEUaioAACEkIBAgF2oiESAEKgAAOAIAIA9BAWoiCSALTw0EIBFBBGogIDgCACAPQQJqIhIgC08NBSARQQhqICE4AgAgDSAPTQ0GIBcgH2oiESAiOAIAIAkgDU8NByARQQRqICM4AgAgDSASTQ0IIBFBCGogJDgCACADIBZNDQkgDCAPTQ0KIBcgHmoiFiAEQRhqLQAAs0MAAH9DlTgCACAIQRlqIhEgA08NCyAJIAxPDQwgFkEEaiAEQRlqLQAAs0MAAH9DlTgCACAIQRpqIgkgA08NDSAMIBJNDQ4gFkEIaiAEQRpqLQAAs0MAAH9DlTgCACAIQRtqIgkgA08NDyACRQ0QIAogHWogBEEbai0AALNDAAB/Q5U4AgAgCEEcaiIJIANPDREgCEEdaiIJIANPDRIgCEEeaiIJIANPDRMgCEEfaiIIIANPDRQgBiAKTQ0VIARBHGotAAAhCCAEQR5qLQAAIQkgBEEfai0AACESIBUgBEEdai0AALNDAAAAw5JDAAAAPJQ4AgAgCkEBaiIEIAZPDRYgFUEEaiAJs0MAAADDkkMAAAA8lDgCACAKQQJqIgQgBk8NFyAVQQhqIBKzQwAAAMOSQwAAADyUOAIAIApBA2oiBCAGTw0YIBVBDGogCLNDAAAAw5JDAAAAPJQ4AgAgAkEBayECIBVBEGohFSAXQQxqIRcgD0EDaiEPIApBBGohCiAcIBhBIGoiGEcNAAsLIAcgC0sNGCAFIA5JDRkgByAMSw0aIAcgDUsNGyAGIBRJDRwgASgCFCEDIAEoAiAhBCABKAIsIQIgAUIENwKIASABQgI3AoABIAFCBDcCeCABQgQ3AnAgAUIENwJoIAEgFDYCZCABIAEoAjgiBjYCYCABIAc2AlwgASACNgJYIAEgBzYCVCABIAQ2AlAgASAONgJMIAEgAzYCSCABIAc2AkQgASAQNgJAIAAgEyAOIAFBQGsQqAEgDiATaiITIBlPDR4MAQsLIA8gC0H02MAAEL8HAAsgCSALQYTZwAAQvwcACyASIAtBlNnAABC/BwALIA8gDUGk2cAAEL8HAAsgCSANQbTZwAAQvwcACyASIA1BxNnAABC/BwALIBYgA0HU2cAAEL8HAAsgDyAMQeTZwAAQvwcACyARIANB9NnAABC/BwALIAkgDEGE2sAAEL8HAAsgCSADQZTawAAQvwcACyASIAxBpNrAABC/BwALIAkgA0G02sAAEL8HAAsgBSAFQcTawAAQvwcACyAJIANB1NrAABC/BwALIAkgA0Hk2sAAEL8HAAsgCSADQfTawAAQvwcACyAIIANBhNvAABC/BwALIAogBkGU28AAEL8HAAsgBCAGQaTbwAAQvwcACyAEIAZBtNvAABC/BwALIAQgBkHE28AAEL8HAAsgFiADQcy4wQAQogoACyAHIAtBpNjAABCiCgALIA4gBUG02MAAEKIKAAsgByAMQcTYwAAQogoACyAHIA1B1NjAABCiCgALIBQgBkHk2MAAEKIKAAsgAUEANgJQIAFBATYCRCABQezbwAA2AkAgAUIENwJIIAFBQGsQxQchCgwCCyABKAI0IQUgABCvASEKIAVFDQAgBkEEaygCACIAQXhxIgsgBUECdCIFQQRBCCAAQQNxIgAbakkNAyAAQQAgCyAFQSdqSxsNBCAGELQCCyABKAIoIgAEQCACQQRrKAIAIgVBeHEiBiAAQQJ0IgBBBEEIIAVBA3EiBRtqSQ0DIAVBACAGIABBJ2pLGw0EIAIQtAILIAEoAhwiAARAIARBBGsoAgAiAkF4cSIFIABBAnQiAEEEQQggAkEDcSICG2pJDQMgAkEAIAUgAEEnaksbDQQgBBC0AgsgASgCECIABEAgA0EEaygCACICQXhxIgUgAEECdCIAQQRBCCACQQNxIgIbakkNAyACQQAgBSAAQSdqSxsNBCADELQCCyABKAIEIgBFDQAgEEEEaygCACICQXhxIgMgAEECdCIAQQRBCCACQQNxIgIbakkNAiACQQAgAyAAQSdqSxsNAyAQELQCCyABQZABaiQAIAoPCyAEIANBzLjBABCiCgALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC9QWAh9/BX0jAEGQAWsiASQAAkACQAJAAkACQAJAIAAoAswBIgJBH3FFBEAgAUEAOgBIIAFBADYCRCABIAJBBXYiGTYCQCAAIAFBQGsQhgQgAUEANgIMIAFCgICAgMAANwIEIAFBADYCGCABQoCAgIDAADcCECABQQA2AiQgAUKAgICAwAA3AhwgAUEANgIwIAFCgICAgMAANwIoIAFBADYCPCABQoCAgIDAADcCNCACRQRAQQQhAiAAEOABIQpBBCEEQQQhA0EEIRAMAwtBBCEQAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAA0AgC0GAgAQgGSATayICIAJBgIAETxsiDkEDbCIHSQRAIAcgCyICayIDIAEoAgQgAmtLBEAgAUEEaiACIANBBEEEENAFIAEoAgghECABKAIMIQILIBAgAkECdGohBCADQQJJBH8gAgUgByALQX9zakECdCIFBEAgBEEAIAX8CwALIBAgAiAHaiALa0ECdGpBBGshBCACIANqQQFrCyEDIARBADYCACABIANBAWoiCzYCDCABKAIYIQULIAUgDkkEQCAOIAUiAmsiAyABKAIQIAJrSwRAIAFBEGogAiADQQRBBBDQBSABKAIYIQILIAEoAhQiBiACQQJ0aiEEIANBAkkEfyACBSAOIAVBf3NqQQJ0IgwEQCAEQQAgDPwLAAsgBiACIA5qIAVrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiIFNgIYCyABKAIkIgwgB0kEQCAHIAwiAmsiAyABKAIcIAJrSwRAIAFBHGogAiADQQRBBBDQBSABKAIkIQILIAEoAiAiBiACQQJ0aiEEIANBAkkEfyACBSAHIAxBf3NqQQJ0Ig0EQCAEQQAgDfwLAAsgBiACIAdqIAxrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiIMNgIkCyABKAIwIg0gB0kEQCAHIA0iAmsiAyABKAIoIAJrSwRAIAFBKGogAiADQQRBBBDQBSABKAIwIQILIAEoAiwiBiACQQJ0aiEEIANBAkkEfyACBSAHIA1Bf3NqQQJ0IgoEQCAEQQAgCvwLAAsgBiACIAdqIA1rQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiINNgIwCyAOQQJ0IhQgASgCPCIGSwRAIBQgBiICayIDIAEoAjQgAmtLBEAgAUE0aiACIANBBEEEENAFIAEoAjwhAgsgASgCOCIKIAJBAnRqIQQgA0ECSQR/IAIFIBQgBkF/c2pBAnQiCARAIARBACAI/AsACyAKIAIgFGogBmtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIgY2AjwLIAEoAgghEAJAIBMgGUcEQCATQQV0IhogACgCyAFqIRtBASAOIA5BAU0bQQV0IRwgACgCzAEhA0EAIRggASgCOCEVIAEoAhQhHSABKAIgIR4gASgCLCEfIAUhAkEAIRdBACEPQQAhCgNAIBggGmoiCEEEaiIEIANLDSMgCEEIaiIEIANLDSMgCEEMaiIEIANLDSMgCEEQaiIEIANLDSMgCEEUaiIEIANLDSMgCEEYaiIWIANLDRkgCyAPTQ0CIBggG2oiBEEEaioAACEgIARBCGoqAAAhISAEQQxqKgAAISIgBEEQaioAACEjIARBFGoqAAAhJCAQIBdqIhEgBCoAADgCACAPQQFqIgkgC08NBCARQQRqICA4AgAgD0ECaiISIAtPDQUgEUEIaiAhOAIAIA0gD00NBiAXIB9qIhEgIjgCACAJIA1PDQcgEUEEaiAjOAIAIA0gEk0NCCARQQhqICQ4AgAgAyAWTQ0JIAwgD00NCiAXIB5qIhYgBEEYai0AALNDAAB/Q5U4AgAgCEEZaiIRIANPDQsgCSAMTw0MIBZBBGogBEEZai0AALNDAAB/Q5U4AgAgCEEaaiIJIANPDQ0gDCASTQ0OIBZBCGogBEEaai0AALNDAAB/Q5U4AgAgCEEbaiIJIANPDQ8gAkUNECAKIB1qIARBG2otAACzQwAAf0OVOAIAIAhBHGoiCSADTw0RIAhBHWoiCSADTw0SIAhBHmoiCSADTw0TIAhBH2oiCCADTw0UIAYgCk0NFSAEQRxqLQAAIQggBEEeai0AACEJIARBH2otAAAhEiAVIARBHWotAACzQwAAAMOSQwAAADyUOAIAIApBAWoiBCAGTw0WIBVBBGogCbNDAAAAw5JDAAAAPJQ4AgAgCkECaiIEIAZPDRcgFUEIaiASs0MAAADDkkMAAAA8lDgCACAKQQNqIgQgBk8NGCAVQQxqIAizQwAAAMOSQwAAADyUOAIAIAJBAWshAiAVQRBqIRUgF0EMaiEXIA9BA2ohDyAKQQRqIQogHCAYQSBqIhhHDQALCyAHIAtLDRggBSAOSQ0ZIAcgDEsNGiAHIA1LDRsgBiAUSQ0cIAEoAhQhAyABKAIgIQQgASgCLCECIAFCBDcCiAEgAUICNwKAASABQgQ3AnggAUIENwJwIAFCBDcCaCABIBQ2AmQgASABKAI4IgY2AmAgASAHNgJcIAEgAjYCWCABIAc2AlQgASAENgJQIAEgDjYCTCABIAM2AkggASAHNgJEIAEgEDYCQCAAIBMgDiABQUBrEJ0BIA4gE2oiEyAZTw0eDAELCyAPIAtB9NjAABC/BwALIAkgC0GE2cAAEL8HAAsgEiALQZTZwAAQvwcACyAPIA1BpNnAABC/BwALIAkgDUG02cAAEL8HAAsgEiANQcTZwAAQvwcACyAWIANB1NnAABC/BwALIA8gDEHk2cAAEL8HAAsgESADQfTZwAAQvwcACyAJIAxBhNrAABC/BwALIAkgA0GU2sAAEL8HAAsgEiAMQaTawAAQvwcACyAJIANBtNrAABC/BwALIAUgBUHE2sAAEL8HAAsgCSADQdTawAAQvwcACyAJIANB5NrAABC/BwALIAkgA0H02sAAEL8HAAsgCCADQYTbwAAQvwcACyAKIAZBlNvAABC/BwALIAQgBkGk28AAEL8HAAsgBCAGQbTbwAAQvwcACyAEIAZBxNvAABC/BwALIBYgA0HMuMEAEKIKAAsgByALQaTYwAAQogoACyAOIAVBtNjAABCiCgALIAcgDEHE2MAAEKIKAAsgByANQdTYwAAQogoACyAUIAZB5NjAABCiCgALIAFBADYCUCABQQE2AkQgAUHs28AANgJAIAFCBDcCSCABQUBrEMUHIQoMAgsgASgCNCEFIAAQ4AEhCiAFRQ0AIAZBBGsoAgAiAEF4cSILIAVBAnQiBUEEQQggAEEDcSIAG2pJDQMgAEEAIAsgBUEnaksbDQQgBhC0AgsgASgCKCIABEAgAkEEaygCACIFQXhxIgYgAEECdCIAQQRBCCAFQQNxIgUbakkNAyAFQQAgBiAAQSdqSxsNBCACELQCCyABKAIcIgAEQCAEQQRrKAIAIgJBeHEiBSAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0DIAJBACAFIABBJ2pLGw0EIAQQtAILIAEoAhAiAARAIANBBGsoAgAiAkF4cSIFIABBAnQiAEEEQQggAkEDcSICG2pJDQMgAkEAIAUgAEEnaksbDQQgAxC0AgsgASgCBCIARQ0AIBBBBGsoAgAiAkF4cSIDIABBAnQiAEEEQQggAkEDcSICG2pJDQIgAkEAIAMgAEEnaksbDQMgEBC0AgsgAUGQAWokACAKDwsgBCADQcy4wQAQogoAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAvLFgIffwV9IwBBkAFrIgEkAAJAAkACQAJAIAAoAmgiAkEfcQRAIAFBADYCUCABQQE2AkQgAUHs28AANgJAIAFCBDcCSCABQUBrEMUHIQIMAQsgAUEAOgBIIAFBADYCRCABIAJBBXYiGTYCQCAAIAFBQGsQ+QEgAUEANgIMIAFCgICAgMAANwIEIAFBADYCGCABQoCAgIDAADcCECABQQA2AiQgAUKAgICAwAA3AhwgAUEANgIwIAFCgICAgMAANwIoIAFBADYCPCABQoCAgIDAADcCNAJAAkAgAkUEQEEEIQJBBCEEQQQhA0EEIQ8MAQtBBCEPAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkADQCAKQYCABCAZIBNrIgIgAkGAgARPGyINQQNsIgdJBEAgByAKIgJrIgMgASgCBCACa0sEQCABQQRqIAIgA0EEQQQQ0AUgASgCCCEPIAEoAgwhAgsgDyACQQJ0aiEEIANBAkkEfyACBSAHIApBf3NqQQJ0IgUEQCAEQQAgBfwLAAsgDyACIAdqIAprQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiIKNgIMIAEoAhghBQsgBSANSQRAIA0gBSICayIDIAEoAhAgAmtLBEAgAUEQaiACIANBBEEEENAFIAEoAhghAgsgASgCFCIGIAJBAnRqIQQgA0ECSQR/IAIFIA0gBUF/c2pBAnQiCwRAIARBACAL/AsACyAGIAIgDWogBWtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIgU2AhgLIAEoAiQiCyAHSQRAIAcgCyICayIDIAEoAhwgAmtLBEAgAUEcaiACIANBBEEEENAFIAEoAiQhAgsgASgCICIGIAJBAnRqIQQgA0ECSQR/IAIFIAcgC0F/c2pBAnQiDARAIARBACAM/AsACyAGIAIgB2ogC2tBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIgs2AiQLIAEoAjAiDCAHSQRAIAcgDCICayIDIAEoAiggAmtLBEAgAUEoaiACIANBBEEEENAFIAEoAjAhAgsgASgCLCIGIAJBAnRqIQQgA0ECSQR/IAIFIAcgDEF/c2pBAnQiCARAIARBACAI/AsACyAGIAIgB2ogDGtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIgw2AjALIA1BAnQiFCABKAI8IgZLBEAgFCAGIgJrIgMgASgCNCACa0sEQCABQTRqIAIgA0EEQQQQ0AUgASgCPCECCyABKAI4IgggAkECdGohBCADQQJJBH8gAgUgFCAGQX9zakECdCIOBEAgBEEAIA78CwALIAggAiAUaiAGa0ECdGpBBGshBCACIANqQQFrCyEDIARBADYCACABIANBAWoiBjYCPAsgASgCCCEPAkAgEyAZRwRAIBNBBXQiGiAAKAJkaiEbQQEgDSANQQFNG0EFdCEcIAAoAmghA0EAIRggASgCOCEVIAEoAhQhHSABKAIgIR4gASgCLCEfIAUhAkEAIRdBACEOQQAhEANAIBggGmoiCEEEaiIEIANLDSMgCEEIaiIEIANLDSMgCEEMaiIEIANLDSMgCEEQaiIEIANLDSMgCEEUaiIEIANLDSMgCEEYaiIWIANLDRkgCiAOTQ0CIBggG2oiBEEEaioAACEgIARBCGoqAAAhISAEQQxqKgAAISIgBEEQaioAACEjIARBFGoqAAAhJCAPIBdqIhEgBCoAADgCACAOQQFqIgkgCk8NBCARQQRqICA4AgAgDkECaiISIApPDQUgEUEIaiAhOAIAIAwgDk0NBiAXIB9qIhEgIjgCACAJIAxPDQcgEUEEaiAjOAIAIAwgEk0NCCARQQhqICQ4AgAgAyAWTQ0JIAsgDk0NCiAXIB5qIhYgBEEYai0AALNDAAB/Q5U4AgAgCEEZaiIRIANPDQsgCSALTw0MIBZBBGogBEEZai0AALNDAAB/Q5U4AgAgCEEaaiIJIANPDQ0gCyASTQ0OIBZBCGogBEEaai0AALNDAAB/Q5U4AgAgCEEbaiIJIANPDQ8gAkUNECAQIB1qIARBG2otAACzQwAAf0OVOAIAIAhBHGoiCSADTw0RIAhBHWoiCSADTw0SIAhBHmoiCSADTw0TIAhBH2oiCCADTw0UIAYgEE0NFSAEQRxqLQAAIQggBEEeai0AACEJIARBH2otAAAhEiAVIARBHWotAACzQwAAAMOSQwAAADyUOAIAIBBBAWoiBCAGTw0WIBVBBGogCbNDAAAAw5JDAAAAPJQ4AgAgEEECaiIEIAZPDRcgFUEIaiASs0MAAADDkkMAAAA8lDgCACAQQQNqIgQgBk8NGCAVQQxqIAizQwAAAMOSQwAAADyUOAIAIAJBAWshAiAVQRBqIRUgF0EMaiEXIA5BA2ohDiAQQQRqIRAgHCAYQSBqIhhHDQALCyAHIApLDRggBSANSQ0ZIAcgC0sNGiAHIAxLDRsgBiAUSQ0cIAEoAhQhAyABKAIgIQQgASgCLCECIAFCBDcCiAEgAUICNwKAASABQgQ3AnggAUIENwJwIAFCBDcCaCABIBQ2AmQgASABKAI4IgY2AmAgASAHNgJcIAEgAjYCWCABIAc2AlQgASAENgJQIAEgDTYCTCABIAM2AkggASAHNgJEIAEgDzYCQCAAIBMgDSABQUBrEKUCIA0gE2oiEyAZTw0dDAELCyAOIApB9NjAABC/BwALIAkgCkGE2cAAEL8HAAsgEiAKQZTZwAAQvwcACyAOIAxBpNnAABC/BwALIAkgDEG02cAAEL8HAAsgEiAMQcTZwAAQvwcACyAWIANB1NnAABC/BwALIA4gC0Hk2cAAEL8HAAsgESADQfTZwAAQvwcACyAJIAtBhNrAABC/BwALIAkgA0GU2sAAEL8HAAsgEiALQaTawAAQvwcACyAJIANBtNrAABC/BwALIAUgBUHE2sAAEL8HAAsgCSADQdTawAAQvwcACyAJIANB5NrAABC/BwALIAkgA0H02sAAEL8HAAsgCCADQYTbwAAQvwcACyAQIAZBlNvAABC/BwALIAQgBkGk28AAEL8HAAsgBCAGQbTbwAAQvwcACyAEIAZBxNvAABC/BwALIBYgA0HMuMEAEKIKAAsgByAKQaTYwAAQogoACyANIAVBtNjAABCiCgALIAcgC0HE2MAAEKIKAAsgByAMQdTYwAAQogoACyAUIAZB5NjAABCiCgALIAEoAjQiAEUNACAGQQRrKAIAIgVBeHEiCiAAQQJ0IgBBBEEIIAVBA3EiBRtqSQ0EIAVBACAKIABBJ2pLGw0FIAYQtAILIAEoAigiAARAIAJBBGsoAgAiBUF4cSIGIABBAnQiAEEEQQggBUEDcSIFG2pJDQQgBUEAIAYgAEEnaksbDQUgAhC0AgsgASgCHCIABEAgBEEEaygCACICQXhxIgUgAEECdCIAQQRBCCACQQNxIgIbakkNBCACQQAgBSAAQSdqSxsNBSAEELQCCyABKAIQIgAEQCADQQRrKAIAIgJBeHEiBSAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0EIAJBACAFIABBJ2pLGw0FIAMQtAILIAEoAgQiAARAIA9BBGsoAgAiAkF4cSIDIABBAnQiAEEEQQggAkEDcSICG2pJDQQgAkEAIAMgAEEnaksbDQEgDxC0AgtBACECDAELDAMLIAFBkAFqJAAgAg8LIAQgA0HMuMEAEKIKAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALyxYCH38FfSMAQZABayIBJAACQAJAAkACQCAAKAJIIgJBH3EEQCABQQA2AlAgAUEBNgJEIAFB7NvAADYCQCABQgQ3AkggAUFAaxDFByECDAELIAFBADoASCABQQA2AkQgASACQQV2Ihk2AkAgACABQUBrEJMCIAFBADYCDCABQoCAgIDAADcCBCABQQA2AhggAUKAgICAwAA3AhAgAUEANgIkIAFCgICAgMAANwIcIAFBADYCMCABQoCAgIDAADcCKCABQQA2AjwgAUKAgICAwAA3AjQCQAJAIAJFBEBBBCECQQQhBEEEIQNBBCEPDAELQQQhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAA0AgCkGAgAQgGSATayICIAJBgIAETxsiDUEDbCIHSQRAIAcgCiICayIDIAEoAgQgAmtLBEAgAUEEaiACIANBBEEEENAFIAEoAgghDyABKAIMIQILIA8gAkECdGohBCADQQJJBH8gAgUgByAKQX9zakECdCIFBEAgBEEAIAX8CwALIA8gAiAHaiAKa0ECdGpBBGshBCACIANqQQFrCyEDIARBADYCACABIANBAWoiCjYCDCABKAIYIQULIAUgDUkEQCANIAUiAmsiAyABKAIQIAJrSwRAIAFBEGogAiADQQRBBBDQBSABKAIYIQILIAEoAhQiBiACQQJ0aiEEIANBAkkEfyACBSANIAVBf3NqQQJ0IgsEQCAEQQAgC/wLAAsgBiACIA1qIAVrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiIFNgIYCyABKAIkIgsgB0kEQCAHIAsiAmsiAyABKAIcIAJrSwRAIAFBHGogAiADQQRBBBDQBSABKAIkIQILIAEoAiAiBiACQQJ0aiEEIANBAkkEfyACBSAHIAtBf3NqQQJ0IgwEQCAEQQAgDPwLAAsgBiACIAdqIAtrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiILNgIkCyABKAIwIgwgB0kEQCAHIAwiAmsiAyABKAIoIAJrSwRAIAFBKGogAiADQQRBBBDQBSABKAIwIQILIAEoAiwiBiACQQJ0aiEEIANBAkkEfyACBSAHIAxBf3NqQQJ0IggEQCAEQQAgCPwLAAsgBiACIAdqIAxrQQJ0akEEayEEIAIgA2pBAWsLIQMgBEEANgIAIAEgA0EBaiIMNgIwCyANQQJ0IhQgASgCPCIGSwRAIBQgBiICayIDIAEoAjQgAmtLBEAgAUE0aiACIANBBEEEENAFIAEoAjwhAgsgASgCOCIIIAJBAnRqIQQgA0ECSQR/IAIFIBQgBkF/c2pBAnQiDgRAIARBACAO/AsACyAIIAIgFGogBmtBAnRqQQRrIQQgAiADakEBawshAyAEQQA2AgAgASADQQFqIgY2AjwLIAEoAgghDwJAIBMgGUcEQCATQQV0IhogACgCRGohG0EBIA0gDUEBTRtBBXQhHCAAKAJIIQNBACEYIAEoAjghFSABKAIUIR0gASgCICEeIAEoAiwhHyAFIQJBACEXQQAhDkEAIRADQCAYIBpqIghBBGoiBCADSw0jIAhBCGoiBCADSw0jIAhBDGoiBCADSw0jIAhBEGoiBCADSw0jIAhBFGoiBCADSw0jIAhBGGoiFiADSw0ZIAogDk0NAiAYIBtqIgRBBGoqAAAhICAEQQhqKgAAISEgBEEMaioAACEiIARBEGoqAAAhIyAEQRRqKgAAISQgDyAXaiIRIAQqAAA4AgAgDkEBaiIJIApPDQQgEUEEaiAgOAIAIA5BAmoiEiAKTw0FIBFBCGogITgCACAMIA5NDQYgFyAfaiIRICI4AgAgCSAMTw0HIBFBBGogIzgCACAMIBJNDQggEUEIaiAkOAIAIAMgFk0NCSALIA5NDQogFyAeaiIWIARBGGotAACzQwAAf0OVOAIAIAhBGWoiESADTw0LIAkgC08NDCAWQQRqIARBGWotAACzQwAAf0OVOAIAIAhBGmoiCSADTw0NIAsgEk0NDiAWQQhqIARBGmotAACzQwAAf0OVOAIAIAhBG2oiCSADTw0PIAJFDRAgECAdaiAEQRtqLQAAs0MAAH9DlTgCACAIQRxqIgkgA08NESAIQR1qIgkgA08NEiAIQR5qIgkgA08NEyAIQR9qIgggA08NFCAGIBBNDRUgBEEcai0AACEIIARBHmotAAAhCSAEQR9qLQAAIRIgFSAEQR1qLQAAs0MAAADDkkMAAAA8lDgCACAQQQFqIgQgBk8NFiAVQQRqIAmzQwAAAMOSQwAAADyUOAIAIBBBAmoiBCAGTw0XIBVBCGogErNDAAAAw5JDAAAAPJQ4AgAgEEEDaiIEIAZPDRggFUEMaiAIs0MAAADDkkMAAAA8lDgCACACQQFrIQIgFUEQaiEVIBdBDGohFyAOQQNqIQ4gEEEEaiEQIBwgGEEgaiIYRw0ACwsgByAKSw0YIAUgDUkNGSAHIAtLDRogByAMSw0bIAYgFEkNHCABKAIUIQMgASgCICEEIAEoAiwhAiABQgQ3AogBIAFCAjcCgAEgAUIENwJ4IAFCBDcCcCABQgQ3AmggASAUNgJkIAEgASgCOCIGNgJgIAEgBzYCXCABIAI2AlggASAHNgJUIAEgBDYCUCABIA02AkwgASADNgJIIAEgBzYCRCABIA82AkAgACATIA0gAUFAaxDvASANIBNqIhMgGU8NHQwBCwsgDiAKQfTYwAAQvwcACyAJIApBhNnAABC/BwALIBIgCkGU2cAAEL8HAAsgDiAMQaTZwAAQvwcACyAJIAxBtNnAABC/BwALIBIgDEHE2cAAEL8HAAsgFiADQdTZwAAQvwcACyAOIAtB5NnAABC/BwALIBEgA0H02cAAEL8HAAsgCSALQYTawAAQvwcACyAJIANBlNrAABC/BwALIBIgC0Gk2sAAEL8HAAsgCSADQbTawAAQvwcACyAFIAVBxNrAABC/BwALIAkgA0HU2sAAEL8HAAsgCSADQeTawAAQvwcACyAJIANB9NrAABC/BwALIAggA0GE28AAEL8HAAsgECAGQZTbwAAQvwcACyAEIAZBpNvAABC/BwALIAQgBkG028AAEL8HAAsgBCAGQcTbwAAQvwcACyAWIANBzLjBABCiCgALIAcgCkGk2MAAEKIKAAsgDSAFQbTYwAAQogoACyAHIAtBxNjAABCiCgALIAcgDEHU2MAAEKIKAAsgFCAGQeTYwAAQogoACyABKAI0IgBFDQAgBkEEaygCACIFQXhxIgogAEECdCIAQQRBCCAFQQNxIgUbakkNBCAFQQAgCiAAQSdqSxsNBSAGELQCCyABKAIoIgAEQCACQQRrKAIAIgVBeHEiBiAAQQJ0IgBBBEEIIAVBA3EiBRtqSQ0EIAVBACAGIABBJ2pLGw0FIAIQtAILIAEoAhwiAARAIARBBGsoAgAiAkF4cSIFIABBAnQiAEEEQQggAkEDcSICG2pJDQQgAkEAIAUgAEEnaksbDQUgBBC0AgsgASgCECIABEAgA0EEaygCACICQXhxIgUgAEECdCIAQQRBCCACQQNxIgIbakkNBCACQQAgBSAAQSdqSxsNBSADELQCCyABKAIEIgAEQCAPQQRrKAIAIgJBeHEiAyAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0EIAJBACADIABBJ2pLGw0BIA8QtAILQQAhAgwBCwwDCyABQZABaiQAIAIPCyAEIANBzLjBABCiCgALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC9QXAyR/A30BeyMAQcACayIEJAACeyADLQAcIgVBAkYEQEMAAIA/IShBACEFQwAAgD8hKUMAAIA/ISr9DAAAAAAAAIA/AABAwQAAEEEMAQsgBEHiAWogA0Efai0AADoAACAEIAMvAB07AeABIAMqAhghKCADKgIUISkgAyoCECEqIAP9AAIACyErIARBABD3CTYCsAEgBEEANgKsASAEQgA3AqQBIARBADYCXCAEQoCAgIDAADcCVCAEQgQ3AkwgBEIANwJEIARCgICAgMAANwI8IARBADYCLCAEQQA2AiQgBEEANgIcIARBADYCFCAEQQA2AgwgBEEANgIEIARBADYCNCAEQYCAgIB4NgJsIARBgICAgHg2AnggBCAr/QsChAEgBCAqOAKUASAEICk4ApgBIAQgKDgCnAEgBCAFOgCgASAEQbwBakEAOgAAIARBowFqIARB4gFqLQAAOgAAIARBADYCaCAEQoCAgIDAADcCYCAEQgA3ArQBIAQgBC8B4AE7AKEBIAEoAjwhEyAEIAI6AOgBIAQgEzYC5AEgBCABKAIIIgg2AuABIARBBGogBEHgAWoQzAQgAgRAIARBAToAoAELAkACQAJAAkBBgIAwEH4iEEUNACAQQQRrIh0tAABBA3EEQCAQQQBBgIAw/AsAC0GAgBAQfiIJRQ0AIAlBBGsiHi0AAEEDcQRAIAlBAEGAgBD8CwALQYCAMBB+IhFFDQAgEUEEayIfLQAAQQNxBEAgEUEAQYCAMPwLAAtBgIAwEH4iEkUNACASQQRrIiAtAABBA3EEQCASQQBBgIAw/AsAC0GAgMAAEH4iC0UNACALQQRrIiEtAABBA3EEQCALQQBBgIDAAPwLAAtBgIAIEH4iDEUNACAMQQRrIiItAABBA3EEQCAMQQBBgIAI/AsAC0GAgBAQfiINRQ0AIA1BBGsiIygCACIFQQNxIgMEQCANQQBBgIAQ/AsACyAIBEAgDEECIAIbISQgDUEEIAIbISVBgIAEQQAgAhshGyABKAIQISYgASgCFCEcIAEoAgQhJwNAQYCABCAIIA5rIgMgA0GAgARPGyEUIAggDkcEQCAnIA5BJGxqIQMgJiAOQRhsaiEGQQAhFSAJIRZBACEFIA0hFyAMIRggCyEZA0AgFgJ/AkAgCCAOIBVqIhpLBEAgA0EQaioCACEoIANBDGoqAgAhKSADQQhqKgIAISogBEHAAWogAxDLAyAEQdABaiADEMIDIARB4AFqIAMpAgAQ3QIgBP0ABOABISsgBSAQaiIKICo4AgAgBSARaiIHIAQqAsABOAIAIAUgEmoiDyAEKgLQATgCACAKQQRqICk4AgAgB0EEaiAEKgLEATgCACAPQQRqIAQqAtQBOAIAIApBCGogKDgCACAHQQhqIAQqAsgBOAIAIA9BCGogBCoC2AE4AgAgGSAr/QsCACADQRRqLwEAIgdB//8BcUUEQCAHQRB0DAMLIAdB/wdxIQogB0GAgAJxIQ8gB0GA+AFxIgdBgPgBRgRAIA9BEHQhByAHQYCAgPwHciAKRQ0DGiAHIApBDXRyQYCAgP4HcgwDCyAPQRB0IQ8gB0UNASAHQQ10QYCAgPwAcSAKQQ10ckGAgIDAA2ogD3IMAgsgGiAIQejIxwAQvwcACyAPQYCAgNgDciAKZ0EQayIHQRd0ayAKIAdB//8DcUEIanRB////A3FyCzYCACACBEACfwJAIBogHEkEQAJ/IAZBFGooAgAiCkEESwRAIAZBBGooAgAhCiAGQQhqKAIADAELIAZBBGoLIQcgCg0BQQAhCkEADAILIBogHEHozccAEL8HDAcLIAcoAgALIQcgGCAKOwEAIBcgBzYCAAsgA0EkaiEDIAZBGGohBiAWQQRqIRYgBUEMaiEFIBdBBGohFyAYQQJqIRggGUEQaiEZIBVBAWoiFSAUSQ0ACwsgBCAbNgKsAiAEICU2AqgCIAQgGzYCpAIgBCAkNgKgAiAEQQA2ApwCIARCgICAgMAANwKUAiAEQoCAgIDAADcCjAIgBEKAgJCAwAA3AoQCIAQgCzYCgAIgBEGAgAw2AvwBIAQgEjYC+AEgBEGAgAw2AvQBIAQgETYC8AEgBEGAgAQ2AuwBIAQgCTYC6AEgBEGAgAw2AuQBIAQgEDYC4AEgBEEEaiAOIBQgBEHgAWoQqAEgDiAUaiIOIAhJDQALICMoAgAiBUEDcSEDCwJAAkAgBUF4cUGEgBBBiIAQIAMbTwRAIANBACAFQaiAEE8bDQYgDRC0AiAiKAIAIgJBeHFBhIAIQYiACCACQQNxIgMbSQ0FIANBACACQaiACE8bDQYgDBC0AiAhKAIAIgJBeHFBhIDAAEGIgMAAIAJBA3EiAxtJDQUgA0EAIAJBqIDAAE8bDQYgCxC0AiAgKAIAIgJBeHFBhIAwQYiAMCACQQNxIgMbSQ0FIANBACACQaiAME8bDQYgEhC0AiAfKAIAIgJBeHFBhIAwQYiAMCACQQNxIgMbSQ0FIANBACACQaiAME8bDQYgERC0AiAeKAIAIgJBeHFBhIAQQYiAECACQQNxIgMbSQ0FIANBACACQaiAEE8bDQYgCRC0AiAdKAIAIgJBeHFBhIAwQYiAMCACQQNxIgMbSQ0FIANBACACQaiAME8bDQYgEBC0AiATRQ0EQYCAkAEQfiICRQ0DIAJBBGsiCygCACIFQQNxIgMEQCACQQBBgICQAfwLAAsgCEUNAiABKAIgIQwgASgCHCENQQAhBgNAQYCABCAIIAZrIgMgA0GAgARPGyEJIAYgCEcEQEEAIQUgAiEDA0AgBEHgAWogDSAMIAUgBmoQxwEgAyAE/QAE4AH9CwIAIANBEGogBP0ABPAB/QsCACADQSBqIAQqAoACOAIAIANBJGohAyAFQQFqIgUgCUkNAAsLIARBBGogBiAJIAJBgIAkEPcDIAggBiAJaiIGSw0ACwwBCwwECyALKAIAIgVBA3EhAwsCQCAFQXhxQYSAkAFBiICQASADG08EQCADQQAgBUGogJABTxsNBSACELQCIBNBAUYNA0GAgPABEH4iAkUNAiACQQRrIgsoAgAiBUEDcSIDBEAgAkEAQYCA8AH8CwALIAgEQCABKAIsIQwgASgCKCENQQAhBgNAQYCABCAIIAZrIgMgA0GAgARPGyEJIAYgCEcEQEEAIQUgAiEDA0AgBEHgAWogDSAMIAUgBmoQlgEgAyAE/QAE4AH9CwIAIANBEGogBP0ABPAB/QsCACADQSBqIAT9AASAAv0LAgAgA0EwaiAEKgKQAjgCACADQTRqIAQpApQCNwIAIANBPGohAyAFQQFqIgUgCUkNAAsLIARBBGogBiAJIAJBgIA8EIgEIAYgCWoiBiAISQ0ACyALKAIAIgVBA3EhAwsgBUF4cUGEgPABQYiA8AEgAxtJDQQgA0EAIAVBqIDwAU8bDQUgAhC0AiATQQJNDQNBgIDQAhB+IgJFDQIgAkEEayIJKAIAIgVBA3EiAwRAIAJBAEGAgNAC/AsACyAIBEAgASgCOCELIAEoAjQhDEEAIQYDQEGAgAQgCCAGayIBIAFBgIAETxshASAGIAhHBEBBACEFIAIhAwNAIARB4AFqIAwgCyAFIAZqEHkgAyAE/QAE4AH9CwIAIANBEGogBP0ABPAB/QsCACADQSBqIAT9AASAAv0LAgAgA0EwaiAE/QAEkAL9CwIAIANBQGsgBP0ABKAC/QsCACADQdAAaiAEKgKwAjgCACADQdQAaiEDIAVBAWoiBSABSQ0ACwsgBEEEaiAGIAEgAkGAgNQAEIkEIAEgBmoiBiAISQ0ACyAJKAIAIgVBA3EhAwsgBUF4cUGEgNACQYiA0AIgAxtJDQQgA0EAIAVBqIDQAk8bDQEgAhC0AgwDCwwDCwwDCwALAkAgBEEEaiICEK8BIgEEQCAAQQI2AgAgACABNgIEIAIQ1wIMAQsgACAEQQRqQbwB/AoAAAsgBEHAAmokAA8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC8QbAxN/Bn0BfiMAQbABayICJAACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQCABKAIUIgQgASgCECIDSQRAIAEoAgwhBgJ+AkADQCAEIAZqLQAAIgVBCWsiB0EXS0EBIAd0QZOAgARxRXINASABIARBAWoiBDYCFCADIARHDQALIAMhBEIADAELQoACCyAFrUIQhoRCgIK4A1ENAQsCQCACQShqIAEoAgwiByADIAMgBEsEfwNAIAQgB2otAAAiCUEJayIFQRdLQQEgBXRBk4CABHFFcg0CIAEgBEEBaiIENgIUIAMgBEcNAAsgAwUgBAtBAWoiASADIAEgA0kbEIYCIAIoAiwhASACKAIoIQNBFBB+IgQNAgwQCwJAIAlB2wBHBEAgCUH7AEYNASABIAJBrwFqQfzGxwAQ+wEhBQwOCyABIAEtABhBAWsiBToAGCAEQQFqIQQgBUH/AXFFDQsgASAENgIUIAIgATYCpAEgAkEBOgCoASACQeQAaiACQaQBahDHAwJAIAItAGRBAUYEQCACKAJoIQNBAiEEDAELAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAItAGVBAUYEQCACQeQAaiACKAKkARDqAiACKAJkIgVBAkYEQCACKAJoIQNBAiEEDA4LIAIoAmghDyACQeQAaiACQaQBahDHAyACLQBkQQFGBEAgAigCaCEDQQIhBAwOCyACLQBlQQFHDQIgAkHkAGogAigCpAEQ6gIgAigCZCIHQQJHDQEgAigCaCEDQQIhBAwNC0EAQdiKyAAQkAchA0ECIQQMDAsgAioCaCEVIAJB5ABqIAJBpAFqEMcDIAItAGRBAUYEQCACKAJoIQNBAiEEDAwLIAItAGVBAUcNAiACQeQAaiACKAKkARDqAiACKAJkIglBAkcNASACKAJoIQNBAiEEDAsLQQFB2IrIABCQByEDQQIhBAwKCyACKgJoIRYgAkHkAGogAkGkAWoQxwMgAi0AZEEBRgRAIAIoAmghA0ECIQQMCgsgAi0AZUEBRw0CIAJB5ABqIAIoAqQBEOoCIAIoAmQiEEECRw0BIAIoAmghA0ECIQQMCQtBAkHYisgAEJAHIQNBAiEEDAgLIAIqAmghFyACQeQAaiACQaQBahDHAyACLQBkQQFGBEAgAigCaCEDQQIhBAwICyACLQBlQQFHDQIgAkHkAGogAigCpAEQ6gIgAigCZCIRQQJHDQEgAigCaCEDQQIhBAwHC0EDQdiKyAAQkAchA0ECIQQMBgsgAioCaCEYIAJB5ABqIAJBpAFqEMcDIAItAGRBAUYEQCACKAJoIQNBAiEEDAYLIAItAGVBAUcNASACQeQAaiACKAKkARDqAkECIQQgAigCZCISQQJGBEAgAigCaCEDDAYLIAIoAmghCiACQeQAaiEGIwBBEGsiAyQAIANBCGogAkGkAWoiCBDHAwJAIAMtAAhBAUYEQCAGIAMoAgw2AgQgBkEDNgIADAELIAMtAAlFBEAgBkECNgIADAELIANBCGogCCgCABDqAiADKAIIIghBAkYEQCAGIAMoAgw2AgQgBkEDNgIADAELIAYgAyoCDDgCBCAGIAg2AgALIANBEGokACACKAJoIQMgAigCZCILQQJrDgIDBQILQQRB2IrIABCQByEDQQIhBAwEC0EFQdiKyAAQkAchA0ECIQQMAwsgAkHkAGohCCMAQRBrIgYkACAGQQhqIAJBpAFqIgwQxwMCQCAGLQAIQQFGBEAgCCAGKAIMNgIEIAhBAToAAAwBCyAGLQAJRQRAIAhBgAY7AQAMAQsgBkEIaiAMKAIAEI4CIAYtAAhBAUYEQCAIIAYoAgw2AgQgCEEBOgAADAELIAggBi0ACToAASAIQQA6AAALIAZBEGokACACLQBkRQ0BIAIoAmghAwwCC0EGQdiKyAAQkAchAwwBCyACLQBlIhNBA0cEQCADIRQgDyEDIAUhBAwBC0EHQdiKyAAQkAchAwsgASABLQAYQQFqOgAYIAIgARDbAyIFNgKgASACIBM6AJwBIAIgFDYCmAEgAiALNgKUASACIAo2ApABIAIgEjYCjAEgAiAYOAKIASACIBE2AoQBIAIgFzgCgAEgAiAQNgJ8IAIgFjgCeCACIAk2AnQgAiAVOAJwIAIgBzYCbCACIAM2AmggAiAENgJkQQIhByAEQQJHBEAgBQ0LIAJB4ABqIAJB7ABqIgVBMGooAgA2AgAgAkHQAGogBUEgav0AAgD9CwMAIAJBQGsgBUEQav0AAgD9CwMAIAIgBf0AAgD9CwMwIAQhBwwKCyAFDQMMCQsgASABLQAYQQFrIgU6ABggBEEBaiEEIAVB/wFxRQ0HIAEgBDYCFCACQQE6AKgBIAIgATYCpAFBAyEGQQIhCEECIQxBAiENQQIhC0ECIQVBAiEOQQIhCgJ/AkADQAJAIAJB5ABqIgMgAkGkAWoQ5wIgAi0AZEEBRg0AIAItAGVBAUcNByACKAKkASIEQQA2AgggBCAEKAIUQQFqNgIUIAMgBEEMaiAEEI8CIAIoAmghAyACKAJkQQJGDQICQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAigCbEEGaw4FAAMDAwEDCyADQd6JyABBBhCQCEUNAyADQeSJyABBBhCQCA0BIA5BAkYNBEHkicgAQQYQ0QchA0ECDA4LIANB6onIAEEKEJAIRQ0EIANB9InIAEEKEJAIRQ0FIANBkIrIAEEKEJAIDQEgBkEDRg0JQZCKyABBChDRByEDQQIMDQsgA0H+icgAQQYQkAhFDQUgA0GEisgAQQYQkAhFDQYgA0GKisgAQQYQkAhFDQcLIAQQqwEiA0UNCQwKCyAKQQJHBEBB3onIAEEGENEHIQNBAgwLCyACQeQAaiAEEOQFQQIhBCACKAJoIg8hAyACKAJkIgpBAkcNCAwRCyACQeQAaiAEEOQFQQIhBCACKAJoIgO+IRcgAigCZCIOQQJHDQcMEAsgBUECRwRAQeqJyABBChDRByEDQQIMCQsgAkHkAGogBBDkBUECIQQgAigCaCIDviEVIAIoAmQiBUECRw0GDA8LIAtBAkcEQEH0icgAQQoQ0QchA0ECDAgLIAJB5ABqIAQQ5AVBAiEEIAIoAmgiA74hFiACKAJkIgtBAkcNBQwOCyANQQJHBEBB/onIAEEGENEHIQNBAgwHCyACQeQAaiAEEOQFQQIhBCACKAJoIgO+IRggAigCZCINQQJHDQQMDQsgDEECRwRAQYSKyABBBhDRByEDQQIMBgsgAkHkAGogBBDkBUECIQQgAigCaCIDviEZIAIoAmQiDEECRw0DDAwLIAhBAkcEQEGKisgAQQYQ0QchA0ECDAULIAJB5ABqIAQQ5AVBAiEEIAIoAmgiA74hGiACKAJkIghBAkcNAgwLCyACQeQAaiAEEOEFIAItAGUhBiACLQBkQQFHDQELCyACKAJoIQMLQQILIQQMBgsgASAEQQFqIgU2AhQCQCADIAVNDQAgASAEQQJqIgk2AhQgBSAGai0AAEH1AEcNBCAJIAUgAyADIAVJGyIFRg0AIAEgBEEDaiIHNgIUIAYgCWotAABB7ABHBEAgByEJDAULIAUgB0YNACABIARBBGoiCTYCFCAGIAdqLQAAQewARw0EIABBAjYCAAwOCyACQQhqIAYgAyAFEIYCIAIoAgwhASACKAIIIQNBFBB+IgRFDQ4gBEEFNgIADAQLIAQgAzYCDCAEQQU2AgAgBCABNgIQDAsLIAJBoAFqENcEDAULIApBACAKQQJHGyEEIAhBACAIQQJHGyETIAxBACAMQQJHGyESIA1BACANQQJHGyEHIAtBACALQQJHGyEJIAVBACAFQQJHGyEQIA5BACAOQQJHGyERQQIgBiAGQQNGGyEUIA8hAwwCCyACQRBqIAYgAyAJEIYCIAIoAhQhASACKAIQIQNBFBB+IgRFDQogBEEJNgIACyAEIAM2AgwgACAENgIEIABBAzYCACAEIAE2AhAMCAsgASABLQAYQQFqOgAYIAIgARCKBSIFNgKgASACIBQ6AJwBIAIgGjgCmAEgAiATNgKUASACIBk4ApABIAIgEjYCjAEgAiAYOAKIASACIAc2AoQBIAIgFjgCgAEgAiAJNgJ8IAIgFTgCeCACIBA2AnQgAiAXOAJwIAIgETYCbCACIAM2AmggAiAENgJkQQIhByAEQQJHBEAgBQ0DIAJB4ABqIAJB7ABqIgVBMGooAgA2AgAgAkHQAGogBUEgav0AAgD9CwMAIAJBQGsgBUEQav0AAgD9CwMAIAIgBf0AAgD9CwMwIAQhByADIQUMAwsgBUUEQCADIQUMAwsgAkGgAWoQ1wQgAyEFDAILIAJBIGogByADIAQgAyADIARLGxCGAiACKAIgIQMgAigCJAwDCyADIQULIAdBAkYNAiAAIAL9AAMw/QsCCCAAQThqIAJB4ABqKAIANgIAIABBKGogAkHQAGr9AAMA/QsCACAAQRhqIAJBQGv9AAMA/QsCACAAIAU2AgQgACAHNgIADAQLIAJBGGogByADIAQgAyADIARLGxCGAiACKAIYIQMgAigCHAshAUEUEH4iBEUNAyAEIAM2AgwgBEEYNgIAIAQgATYCEAwBCyAFIAEQlgYhBAsgAEEDNgIAIAAgBDYCBAsgAkGwAWokAA8LAAvFFgIQfwJ+IwBBIGsiCyQAAkACQAJAA0ACfyABKAKcAyICIAEpA6ADIhIgAq0iEyASIBNUG6ciBEYEQEEBIQVBJSEGQQAhCEEAIQJBACEJQQAhByADQYB+cUEkcgwBCyALQQhqIAEgASgCmAMgBGogAiAEa0EAEOYBIAspAhAiEkIoiKchCCASQiCIpyECIBJCGIinIQkgEkIQiKchByASQgiIpyEGIAstABshDCALLQAaIQ0gCy0AGSEOIAstABghCiALKAIMIQQgEqchBSAEIAsoAggNABogASABKQOgAyAErXw3A6ADIANBgH5xQShyCyIDQf8BcUEoRwRAIANBCHYhAQwCCwJAAkACQAJAIAVB/wFxQQFrDgIAAQQLIApB/wFxIgRByQBGDQEgBEHmAEcgDkH/AXFB5ABHciANQf8BcUHBAEcgDEH/AXFB1ABHcnINAwwCCyAGQf8BcUHJAEcgB0H/AXFBxQBHciAJQf8BcUHOAEcgAkH/AXFBxABHcnINAkEDIQMMAwsgDkH/AXFBxABHIA1B/wFxQcEAR3IgDEH/AXFB1ABHcg0BCwsCQAJ/AkACQCABKAIIQQJHBEBBASEHIAFBCGoiA0G4AkGgAiABLQC5AkECRiIFG2ooAgAhBCADQbQCQZwCIAUbaigCACEDIAEtAMQCIgxBAUYEQAJAIARBA3YgBEEHcUEAR2oiBUUNAEEBIQogA0EDdiADQQdxQQBHaiICRQ0AQQEMBQtBASEKIAVFDQIgA0EEayICQQAgAiADTRsiAkEDdiACQQdxQQBHaiICRQ0CQQIhBwwDCyAERQRAQQIhDkEAIQpBACEFQQAhDQwFC0EAIQogBCEFQQAMAwtB5J/HABCkCgALQQMhByAEQQRrIgJBACACIARNGyICQQN2IAJBB3FBAEdqIgUEQCADQQJ2IANBA3FBAEdqIgINAQsCQCAEQQJ2IARBA3FBAEdqIgVFDQAgA0ECayICQQAgAiADTRsiAkECdiACQQNxQQBHaiICRQ0AQQQhBwwBCwJAIARBAmsiAkEAIAIgBE0bIgJBAnYgAkEDcUEAR2oiBUUNACADIANBAXZrIgJFDQBBBSEHDAELAkAgBCAEQQF2ayIFRQ0AIANBAWsiAkEAIAIgA00bIgIgAkEBdmsiAkUNAEEGIQcMAQtBACENQQchB0ECIQ4gBEEBayICQQAgAiAETRsiAiACQQF2ayIFRQRAIAMhAgwDCyADRQRAIAMhAgwDCyADIQILQQELIQ5BASENCyABLQDGAiIIQQJ0Ig9B2KbJAGooAgAgA2whCQJAAkACQCABLQDHAiIGQQhrDgkCAAAAAAAAAAEACyAGQQhNBEAgCUEIIAZuIhBuIhEgCSAQIBFsR2ohCQwCCwwECyAJQQF0IQkLIAFBADoA5AMgASAENgLcAyABIAM2AtgDIAEgBzoA1AMgASACNgLQAyABIAM2AswDIAFBADYCyAMgASAONgLEAyABIAc6AMADIAEgBDYCvAMgASADNgK4AyABIAI2ArQDIAEgBTYCsAMgASANNgKsAyABIAo2AqgDIAEgCUEBaiIFNgLgAwJAAkACQAJAIA9ByKfJAGooAgAgBkEHakEDdmxBAWsiAkEIT0GvASACdkEBcUVyRQRAIAFCgYSMoIDAgYAIIAJBA3StiDwAxQQgDEUEQCAErSAFrX4hEgwFCyAIQQJ0IgJBkKfJAGooAgAgA0EDdiADQQdxQQBHamwhBwJAAkACQCAGQQhrIgUOCQIAAAAAAAAAAQALIAZBCE0EQCAHQQggBm4iCW4iCiAHIAkgCmxHaiEHDAILDAkLIAdBAXQhBwsgAkHkp8kAaigCACADQQRrIgJBACACIANNGyICQQN2IAJBB3FBAEdqbCECAkACQAJAAkACQAJAIAUOCQQAAAAAAAAAAQALIAZBCU8NDCAIQQJ0QYCoyQBqKAIAIANBAnYgA0EDcUEAR2psIQkgAkEIIAZuIgVuIgogAiAFIApsR2pBAWohCiAGQQhrDgkEAgICAgICAgECCyAIQQJ0QYCoyQBqKAIAIANBAnYgA0EDcUEAR2psIQkgAkEBdEEBciEKCyAJQQF0IQkMAgsgBkEITQRAIAlBCCAGbiICbiIFIAkgAiAFbEdqIQkMAgsMCQsgCEECdEGAqMkAaigCACADQQJ2IANBA3FBAEdqbCEJIAJBAWohCgsgCEECdCICQZyoyQBqKAIAIANBAmsiBUEAIAMgBU8bIgVBAnYgBUEDcUEAR2psIQUCQAJAAkACQAJAAkAgBkEIaw4JBAAAAAAAAAABAAsgBkEJTw0MIARBAnYgBEEDcUEAR2ohDiAIQQJ0QbioyQBqKAIAIAMgA0EBdmtsIQIgBUEIIAZuIg1uIgwgBSAMIA1sR2pBAWohDSAGQQhrDgkEAgICAgICAgECCyAEQQJ2IARBA3FBAEdqIQ4gAkG4qMkAaigCACADIANBAXZrbCECIAVBAXRBAXIhDQsgAkEBdCECDAILIAZBCE0EQCACQQggBm4iBW4iDCACIAUgDGxHaiECDAILDAkLIARBAnYgBEEDcUEAR2ohDiACQbioyQBqKAIAIAMgA0EBdmtsIQIgBUEBaiENCyAIQQJ0Ig9B1KjJAGooAgAgA0EBayIFQQAgAyAFTxsiBSAFQQF2a2whBQJAAkACQCAGQQhrDgkAAgICAgICAgECCyAFQQFqIQUgBCAEQQF2ayEMIA9BrKfJAGooAgAgA2whCAwFCyAEIARBAXZrIQwgBUEBdEEBciEFIA9BrKfJAGooAgAgA2whCAwCCyAGQQlPDQcgBUEIIAZuIgxuIg8gBSAMIA9sR2pBAWohBSAEIARBAXZrIQwgCEECdEGsp8kAaigCACADbCEIIAZBCGsOCQMCAgICAgICAQILIAtBADYCGCALQQE2AgwgC0HAmsUANgIIIAtCBDcCECALQQhqQciaxQAQyggACyAIQQF0IQgMAQsgBkEISw0EIAhBCCAGbiIGbiIPIAggBiAPbEdqIQgLIARBBGsiBkEAIAQgBk8bIgZBA3YgBkEHcUEAR2qtIAlBAWqtfiAEQQN2IARBB3FBAEdqrSAKrSAHQQFqrXx+fCAOrSANrX58IARBAmsiBkEAIAQgBk8bIgZBAnYgBkEDcUEAR2qtIAJBAWqtfnwgDK0gBa1+fCAEQQFrIgJBACACIARNGyICIAJBAXZrrSAIQQFqrX58IRIMAAsgAUEANgL4AwJAAkAgASgCiAQiAkGCgICAeEggAkVyRQRAIAEoAowEIgNBBGsoAgAiBEF4cSIFQQRBCCAEQQNxIgQbIAJqSQ0BIARBACAFIAJBJ2pLGw0CIAMQtAIgASgC2AMhAwsgAUEANgKcBCABQgA3ApQEIAFBgICAgHg2AogEIAEgEjcD6AMgCyABELcFIAssAABBAnRB9KbJAGooAgAgA2whAwJAAkACQCALLQABIgJBCGsOCQIAAAAAAAAAAQALIAJBCE0EQCADQQggAm4iAm4iBCADIAIgBGxHaiEDDAILDAYLIANBAXQhAwsgAyABKAKIAyICSwRAIABBJzoAAAwECyAAQSg6AAAgASACIANrNgKIAwwDC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAsgACAIOwAJIAAgATsAASAAIAw6AA8gACANOgAOIAAgDjoADSAAIAo6AAwgACACOgAIIAAgCToAByAAIAc6AAYgACAGOgAFIAAgBToABCAAIAM6AAAgAEELaiAIQRB2OgAAIABBA2ogAUEQdjoAAAsgC0EgaiQADwtB3JnFABC5CAAL5hYCDH8IfUMAAIA/IRACfwJAIAAoAgQiAyACQQhqKAIAIgVJBEAgACgCACEGIAJBBGooAgAiCSADQSRsaiICENMEIQ8gAi8BFCIDQf//AXFFBEAgA0EQdAwDCyADQf8HcSECIANBgIACcSEEIANBgPgBcSIDQYD4AUYEQCAEQRB0IQMgA0GAgID8B3IgAkUNAxogAyACQQ10ckGAgID+B3IMAwsgBEEQdCEEIANFDQEgA0ENdEGAgID8AHEgAkENdHJBgICAwANqIARyDAILIAMgBUHoyMcAEL8HAAsgBEGAgIDYA3IgAmdBEGsiA0EXdGsgAiADQf//A3FBCGp0Qf///wNxcgu+IhFDAACAP14EQCAREPQFQ1T4LUCUQwAAgD+SkSEQC0MAAIA/IRECfwJAIAUgBksEQCAJIAZBJGxqIgIQ0wQhEyACLwEUIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQIgA0GAgAJxIQYgA0GA+AFxIgNBgPgBRgRAIAZBEHQhAyADQYCAgPwHciACRQ0DGiADIAJBDXRyQYCAgP4HcgwDCyAGQRB0IQYgA0UNASADQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBnIMAgsgBiAFQejIxwAQvwcACyAGQYCAgNgDciACZ0EQayIDQRd0ayACIANB//8DcUEIanRB////A3FyC74iEkMAAIA/XgRAIBIQ9AVDVPgtQJRDAACAP5KRIRELQwAAgD8hFAJAAkACfwJAIAUgACgCDCICSwRAIAAoAgghBiAJIAJBJGxqIgIQ0wQhEiACLwEUIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQIgA0GAgAJxIQQgA0GA+AFxIgNBgPgBRgRAIARBEHQhAyADQYCAgPwHciACRQ0DGiADIAJBDXRyQYCAgP4HcgwDCyAEQRB0IQQgA0UNASADQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBHIMAgsMAgsgBEGAgIDYA3IgAmdBEGsiA0EXdGsgAiADQf//A3FBCGp0Qf///wNxcgu+IhVDAACAP14EQCAVEPQFQ1T4LUCUQwAAgD+SkSEUCwJ/AkAgBSAGSwRAIAkgBkEkbGoiAhDTBCEVIAIvARQiA0H//wFxRQRAIANBEHQMAwsgA0H/B3EhAiADQYCAAnEhBiADQYD4AXEiA0GA+AFGBEAgBkEQdCEDIANBgICA/AdyIAJFDQMaIAMgAkENdHJBgICA/gdyDAMLIAZBEHQhBiADRQ0BIANBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAGcgwCCyAGIAVB6MjHABC/BwALIAZBgICA2ANyIAJnQRBrIgNBF3RrIAIgA0H//wNxQQhqdEH///8DcXILIQJDAACAPyEWAn8CQCAFIABBDEEIIBIgEpIgFJQiEiASWyASIBUgFZIgAr4iFEMAAIA/XgR9IBQQ9AVDVPgtQJRDAACAP5KRBSAWC5RgRXEiBxtqIgYoAgAiAksEQCAAIA8gD5IgEJQiDyAPWyAPIBMgE5IgEZRgRXEiCkECdGoiDCgCACEEIAkgAkEkbGoiAhDTBCETIAIvARQiA0H//wFxRQRAIANBEHQMAwsgA0H/B3EhAiADQYCAAnEhCCADQYD4AXEiA0GA+AFGBEAgCEEQdCEDIANBgICA/AdyIAJFDQMaIAMgAkENdHJBgICA/gdyDAMLIAhBEHQhCCADRQ0BIANBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAIcgwCCwwCCyAIQYCAgNgDciACZ0EQayIDQRd0ayACIANB//8DcUEIanRB////A3FyC0MAAIA/IQ++IhBDAACAP14EQCAQEPQFQ1T4LUCUQwAAgD+SkSEPC0MAAIA/IRACfwJAIAQgBUkEQEEIQQwgBxshCCAJIARBJGxqIgIQ0wQhEiACLwEUIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQIgA0GAgAJxIQQgA0GA+AFxIgNBgPgBRgRAIARBEHQhAyADQYCAgPwHciACRQ0DGiADIAJBDXRyQYCAgP4HcgwDCyAEQRB0IQQgA0UNASADQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBHIMAgsMAwsgBEGAgIDYA3IgAmdBEGsiA0EXdGsgAiADQf//A3FBCGp0Qf///wNxcgu+IhFDAACAP14EQCAREPQFQ1T4LUCUQwAAgD+SkSEQC0MAAIA/IRECfwJAIAUgACAIaiIIKAIAIgJLBEAgACAKRUECdGoiAygCACEEIAkgAkEkbGoiABDTBCEUIAAvARQiAkH//wFxRQRAIAJBEHQMAwsgAkH/B3EhACACQYCAAnEhByACQYD4AXEiAkGA+AFGBEAgB0EQdCECIAJBgICA/AdyIABFDQMaIAIgAEENdHJBgICA/gdyDAMLIAdBEHQhByACRQ0BIAJBDXRBgICA/ABxIABBDXRyQYCAgMADaiAHcgwCCwwCCyAHQYCAgNgDciAAZ0EQayICQRd0ayAAIAJB//8DcUEIanRB////A3FyC74iFUMAAIA/XgRAIBUQ9AVDVPgtQJRDAACAP5KRIRELAn8CQCAEIAVJBEAgEyATkiAPlCIPIBIgEpIgEJRgRSEHIA8gD1shCiAJIARBJGxqIgAQ0wQhECAALwEUIgJB//8BcUUEQCACQRB0DAMLIAJB/wdxIQAgAkGAgAJxIQQgAkGA+AFxIgJBgPgBRgRAIARBEHQhAiACQYCAgPwHciAARQ0DGiACIABBDXRyQYCAgP4HcgwDCyAEQRB0IQQgAkUNASACQQ10QYCAgPwAcSAAQQ10ckGAgIDAA2ogBHIMAgsMAwsgBEGAgIDYA3IgAGdBEGsiAkEXdGsgACACQf//A3FBCGp0Qf///wNxcgshAEMAAIA/IQ8CfwJAIAUgCCADIAYgByAKcSIHGyAUIBSSIBGUIhEgEVsgESAQIBCSIAC+IhNDAACAP14EfSATEPQFQ1T4LUCUQwAAgD+SkQUgDwuUYEVxIgobIg0oAgAiAEsEQCAMIAYgAyAKGyAHGyIOKAIAIQQgCSAAQSRsaiIAENMEIRAgAC8BFCICQf//AXFFBEAgAkEQdAwDCyACQf8HcSEAIAJBgIACcSELIAJBgPgBcSICQYD4AUYEQCALQRB0IQIgAkGAgID8B3IgAEUNAxogAiAAQQ10ckGAgID+B3IMAwsgC0EQdCELIAJFDQEgAkENdEGAgID8AHEgAEENdHJBgICAwANqIAtyDAILIAAgBUHoyMcAEL8HAAsgC0GAgIDYA3IgAGdBEGsiAkEXdGsgACACQf//A3FBCGp0Qf///wNxcgtDAACAPyERviIPQwAAgD9eBEAgDxD0BUNU+C1AlEMAAIA/kpEhEQtDAACAPyEPAn8CQCAEIAVJBEAgCSAEQSRsaiIAENMEIRMgAC8BFCICQf//AXFFBEAgAkEQdAwDCyACQf8HcSEAIAJBgIACcSEFIAJBgPgBcSICQYD4AUYEQCAFQRB0IQIgAkGAgID8B3IgAEUNAxogAiAAQQ10ckGAgID+B3IMAwsgBUEQdCEFIAJFDQEgAkENdEGAgID8AHEgAEENdHJBgICAwANqIAVyDAILDAMLIAVBgICA2ANyIABnQRBrIgJBF3RrIAAgAkH//wNxQQhqdEH///8DcXILviISQwAAgD9eBEAgEhD0BUNU+C1AlEMAAIA/kpEhDwsgASAGIAwgBxsoAgA2AgAgASANIA4gECAQkiARlCIQIBBbIBAgEyATkiAPlGBFcSIAGygCADYCBCABIA4gDSAAGygCADYCCCABIAMgCCAKGygCADYCDA8LIAIgBUHoyMcAEL8HAAsgBCAFQejIxwAQvwcAC7UWAQ5/An8CQCACIANLBEAgASADQR5saiIDLwEAIgJB//8BcUUEQCACQRB0DAMLIAJB/wdxIQEgAkGAgAJxIQUgAkGA+AFxIgJBgPgBRgRAIAVBEHQhAiACQYCAgPwHciABRQ0DGiACIAFBDXRyQYCAgP4HcgwDCyAFQRB0IQUgAkUNASACQQ10QYCAgPwAcSABQQ10ckGAgIDAA2ogBXIMAgsgAyACQYjOxwAQvwcACyAFQYCAgNgDciABZ0EQayICQRd0ayABIAJB//8DcUEIanRB////A3FyCyEBAn8gAy8BAiIFQf//AXFFBEAgBUEQdAwBCyAFQf8HcSECIAVBgIACcSEGIAVBgPgBcSIFQYD4AUYEQCAGQRB0IQUgBUGAgID8B3IgAkUNARogBSACQQ10ckGAgID+B3IMAQsgBkEQdCEGIAVBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAGciAFDQAaIAZBgICA2ANyIAJnQRBrIgVBF3RrIAIgBUH//wNxQQhqdEH///8DcXILIQUCfyADLwEEIgZB//8BcUUEQCAGQRB0DAELIAZB/wdxIQIgBkGAgAJxIQcgBkGA+AFxIgZBgPgBRgRAIAdBEHQhBiAGQYCAgPwHciACRQ0BGiAGIAJBDXRyQYCAgP4HcgwBCyAHQRB0IQcgBkENdEGAgID8AHEgAkENdHJBgICAwANqIAdyIAYNABogB0GAgIDYA3IgAmdBEGsiBkEXdGsgAiAGQf//A3FBCGp0Qf///wNxcgshBgJ/IAMvAQYiB0H//wFxRQRAIAdBEHQMAQsgB0H/B3EhAiAHQYCAAnEhCCAHQYD4AXEiB0GA+AFGBEAgCEEQdCEHIAdBgICA/AdyIAJFDQEaIAcgAkENdHJBgICA/gdyDAELIAhBEHQhCCAHQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogCHIgBw0AGiAIQYCAgNgDciACZ0EQayIHQRd0ayACIAdB//8DcUEIanRB////A3FyCyEHAn8gAy8BCCIIQf//AXFFBEAgCEEQdAwBCyAIQf8HcSECIAhBgIACcSEJIAhBgPgBcSIIQYD4AUYEQCAJQRB0IQggCEGAgID8B3IgAkUNARogCCACQQ10ckGAgID+B3IMAQsgCUEQdCEJIAhBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAJciAIDQAaIAlBgICA2ANyIAJnQRBrIghBF3RrIAIgCEH//wNxQQhqdEH///8DcXILIQgCfyADLwEKIglB//8BcUUEQCAJQRB0DAELIAlB/wdxIQIgCUGAgAJxIQogCUGA+AFxIglBgPgBRgRAIApBEHQhCSAJQYCAgPwHciACRQ0BGiAJIAJBDXRyQYCAgP4HcgwBCyAKQRB0IQogCUENdEGAgID8AHEgAkENdHJBgICAwANqIApyIAkNABogCkGAgIDYA3IgAmdBEGsiCUEXdGsgAiAJQf//A3FBCGp0Qf///wNxcgshCQJ/IAMvAQwiCkH//wFxRQRAIApBEHQMAQsgCkH/B3EhAiAKQYCAAnEhCyAKQYD4AXEiCkGA+AFGBEAgC0EQdCEKIApBgICA/AdyIAJFDQEaIAogAkENdHJBgICA/gdyDAELIAtBEHQhCyAKQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogC3IgCg0AGiALQYCAgNgDciACZ0EQayIKQRd0ayACIApB//8DcUEIanRB////A3FyCyEKAn8gAy8BDiILQf//AXFFBEAgC0EQdAwBCyALQf8HcSECIAtBgIACcSEMIAtBgPgBcSILQYD4AUYEQCAMQRB0IQsgC0GAgID8B3IgAkUNARogCyACQQ10ckGAgID+B3IMAQsgDEEQdCEMIAtBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAMciALDQAaIAxBgICA2ANyIAJnQRBrIgtBF3RrIAIgC0H//wNxQQhqdEH///8DcXILIQsCfyADLwEQIgxB//8BcUUEQCAMQRB0DAELIAxB/wdxIQIgDEGAgAJxIQ0gDEGA+AFxIgxBgPgBRgRAIA1BEHQhDCAMQYCAgPwHciACRQ0BGiAMIAJBDXRyQYCAgP4HcgwBCyANQRB0IQ0gDEENdEGAgID8AHEgAkENdHJBgICAwANqIA1yIAwNABogDUGAgIDYA3IgAmdBEGsiDEEXdGsgAiAMQf//A3FBCGp0Qf///wNxcgshDAJ/IAMvARIiDUH//wFxRQRAIA1BEHQMAQsgDUH/B3EhAiANQYCAAnEhDiANQYD4AXEiDUGA+AFGBEAgDkEQdCENIA1BgICA/AdyIAJFDQEaIA0gAkENdHJBgICA/gdyDAELIA5BEHQhDiANQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogDnIgDQ0AGiAOQYCAgNgDciACZ0EQayINQRd0ayACIA1B//8DcUEIanRB////A3FyCyENAn8gAy8BFCIOQf//AXFFBEAgDkEQdAwBCyAOQf8HcSECIA5BgIACcSEPIA5BgPgBcSIOQYD4AUYEQCAPQRB0IQ4gDkGAgID8B3IgAkUNARogDiACQQ10ckGAgID+B3IMAQsgD0EQdCEPIA5BDXRBgICA/ABxIAJBDXRyQYCAgMADaiAPciAODQAaIA9BgICA2ANyIAJnQRBrIg5BF3RrIAIgDkH//wNxQQhqdEH///8DcXILIQ4CfyADLwEWIg9B//8BcUUEQCAPQRB0DAELIA9B/wdxIQIgD0GAgAJxIRAgD0GA+AFxIg9BgPgBRgRAIBBBEHQhDyAPQYCAgPwHciACRQ0BGiAPIAJBDXRyQYCAgP4HcgwBCyAQQRB0IRAgD0ENdEGAgID8AHEgAkENdHJBgICAwANqIBByIA8NABogEEGAgIDYA3IgAmdBEGsiD0EXdGsgAiAPQf//A3FBCGp0Qf///wNxcgshDwJ/IAMvARgiEEH//wFxRQRAIBBBEHQMAQsgEEH/B3EhAiAQQYCAAnEhBCAQQYD4AXEiEEGA+AFGBEAgBEEQdCEQIBBBgICA/AdyIAJFDQEaIBAgAkENdHJBgICA/gdyDAELIARBEHQhBCAQQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBHIgEA0AGiAEQYCAgNgDciACZ0EQayIQQRd0ayACIBBB//8DcUEIanRB////A3FyCyEQAn8gAy8BGiIEQf//AXFFBEAgBEEQdAwBCyAEQf8HcSECIARBgIACcSERIARBgPgBcSIEQYD4AUYEQCARQRB0IQQgBEGAgID8B3IgAkUNARogBCACQQ10ckGAgID+B3IMAQsgEUEQdCERIARBDXRBgICA/ABxIAJBDXRyQYCAgMADaiARciAEDQAaIBFBgICA2ANyIAJnQRBrIgRBF3RrIAIgBEH//wNxQQhqdEH///8DcXILIQIgAAJ/IAMvARwiBEH//wFxRQRAIARBEHQMAQsgBEH/B3EhAyAEQYCAAnEhESAEQYD4AXEiBEGA+AFGBEAgEUEQdCEEIARBgICA/AdyIANFDQEaIAQgA0ENdHJBgICA/gdyDAELIBFBEHQhESAEQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogEXIgBA0AGiARQYCAgNgDciADZ0EQayIEQRd0ayADIARB//8DcUEIanRB////A3FyCzYCOCAAIAI2AjQgACAQNgIwIAAgDzYCLCAAIA42AiggACANNgIkIAAgDDYCICAAIAs2AhwgACAKNgIYIAAgCTYCFCAAIAg2AhAgACAHNgIMIAAgBjYCCCAAIAU2AgQgACABNgIAC6EUAxF/AX4BbyMAQcAHayIBJAAgAUHgAWoiByACIAMoAgwRAQACQAJAAkACQAJAAkAgASkD4AFCotzE/4a99taZf4UgASkD6AFC2viHx93blNbmAIWEUARAIAFB0ABqIAJBkAH8CgAAIAEoAtQBIgNFDQEgByADIAEoAtgBIhIoAgwiCBEBAAJAAkACQAJAAkAgASkD4AFCwa/Q/prKzJYkhSABKQPoAULzuJ/+p+nNsUaFhFBFBEAgByADIAgRAQAgASkD4AFChZuLttiEpIblAIUgASkD6AFCqdSD8JWulZTLAIWEUA0BIAcgAyAIEQEAIAEpA+ABQrftztKOhPr6M4UgASkD6AFC3/ba84jqlJhVhYRQDQIgByADIAgRAQAgASkD4AFChsPvoeq667y/f4UgASkD6AFC/92etbLaod/9AIWEUA0DIAcgAyAIEQEAIAEpA+ABQoDf7viUprWs0ACFIAEpA+gBQpee4+SGwaSlcYWEUA0EIAcgAyAIEQEAIAEpA+ABQqj/h/v+/vrjVIUgASkD6AFC85mCzIeIn/TMAIWEUCITDQUgAUEANgLwASABQQE2AuQBIAFBsLPBADYC4AEgAUIENwLoASAHQbizwQAQyggACyABQeABaiADQdgF/AoAACADKAIIIQcgAykDACEVIAEgA0EMakHQAPwKAAAgAygCXCEIIAEoAqgHIgQEQCABKAKsByIFQQRrKAIAIgZBeHEiCUEEQQggBkEDcSIGGyAEakkNDCAGQQAgCSAEQSdqSxsNCyAFELQCCwJAIAEoApwHIgVBg4CAgHhGDQAgAUHAAmohBAJAAkACQEEBIAVBgICAgHhzIAVBAE4bDgIBAgALIAQQyQEMAgsgBBDuAwwBCyAEENQCCyADQQRrKAIAIgRBeHFB3AVB4AUgBEEDcSIFG0kNCyAFRQ0IIARBgAZPDQoMCAsgAygCCCEHIAMpAgAhFSABIANBDGpB0AD8CgAAIAMoAqABIQkgAygCnAEhDiADKAKUASEPIAMoApABIQsgAygCiAEhEiADKAKEASEEIAMoAnwhEyADKAJ4IQUgAygCcCENIAMoAmwhBiADKAJcIQggAygCYCIKBEAgAygCZCIQQQRrKAIAIgxBeHEiEUEEQQggDEEDcSIMGyAKakkNCyAMQQAgESAKQSdqSxsNCiAQELQCCyAGBEAgDUEEaygCACIKQXhxIhBBBEEIIApBA3EiChsgBmpJDQsgCkEAIBAgBkEnaksbDQogDRC0AgsgBQRAIBNBBGsoAgAiBkF4cSINQQRBCCAGQQNxIgYbIAVqSQ0LIAZBACANIAVBJ2pLGw0KIBMQtAILAkAgBEGAgICAeEYNACAEBEAgEkEEaygCACIFQXhxIgYgBEECdCIEQQRBCCAFQQNxIgUbakkNDCAFQQAgBiAEQSdqSxsNCyASELQCCyALBEAgD0EEaygCACIEQXhxIgUgC0EBdCIGQQRBCCAEQQNxIgQbakkNDCAEQQAgBSAGQSdqSxsNCyAPELQCCyAORQ0AIAlBBGsoAgAiBEF4cSIFIA5BAnQiBkEEQQggBEEDcSIEG2pJDQsgBEEAIAUgBkEnaksbDQogCRC0AgsgA0EEaygCACIEQXhxQczTAEHQ0wAgBEEDcSIFG0kNCiAFRSAEQfDTAElyDQcMCQsgAygCCCEHIAMpAgAhFSABIANBDGpB0AD8CgAAIAMoAlwhCCADKAJgIgQEQCADKAJkIgVBBGsoAgAiBkF4cSIJQQRBCCAGQQNxIgYbIARqSQ0KIAZBACAJIARBJ2pLGw0JIAUQtAILIANBBGsoAgAiBEF4cSIFQfAAQfQAIARBA3EiBBtJDQkgBEUgBUGUAUlyDQYMCAsgAygCCCEHIAMpAgAhFSABIANBDGpB0AD8CgAAIAMoAlwhCCADKAJgIgQEQCADKAJkIgVBBGsoAgAiBkF4cSIJQQRBCCAGQQNxIgYbIARqSQ0JIAZBACAJIARBJ2pLGw0IIAUQtAILIANBBGsoAgAiBEF4cSIFQfAAQfQAIARBA3EiBBtJDQggBEUgBUGUAUlyDQUMBwsgAygCCCEHIAMpAgAhFSABIANBDGpB0AD8CgAAIAMoAlwhCCADKAJgIgQEQCADKAJkIARBARDWBwsgA0EEaygCACIEQXhxIgVB8ABB9AAgBEEDcSIEG0kNByAERSAFQZQBSXINBAwGCyADKAKAAiEHIAMpAvgBIRUgAygC/AIhCyADKAL4AiEEIAMoAugBIQ0gAygC5AEhBiADKAKIASEKIAMoAnQhECADKAJwIQkgAygCbCEFIAMoAmghDiADKAJkIQ8gAygCACEMIAEgA0GEAmpB0AD8CgAAIAMoAtQCIQggBARAIAsgBEEBENYHCwJAIAxBAkYNACAFBEAgDkEkaiEEA0AgBEEEaygCACILQYCAgIB4ckGAgICAeEcEQCAEKAIAIgxBBGsoAgAiEUF4cSIUQQRBCCARQQNxIhEbIAtqSQ0KIBFBACAUIAtBJ2pLGw0JIAwQtAILIARBMGohBCAFQQFrIgUNAAsLIA8EQCAOIA9BMGxBCBDWBwsgCUGAgICAeHJBgICAgHhGDQAgECAJQQEQ1gcLIAMgEiATGyEDIAZFIApBAkZyRQRAIA0gBkEobEEIENYHCyADQQRrKAIAIgRBeHFBpANBqAMgBEEDcSIFG0kNAiAFRSAEQcgDSXINAwwFCyABIAM2AuQBIAEgAjYC4AFBwPjIAEErIAFB4AFqQcDxwQBBmPPBABCVBwALQYyzwQAQpAoAC0Hgi8gAQS5BkIzIABCiCAwBCyADELQCIAEoAlwiA0GAgICAeHJBgICAgHhHBEAgASgCYCIEQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyADakkNAyAFQQAgBiADQSdqSxsNAiAEELQCCyABKAJoQYCAgIB4RwRAIAFB6ABqEJgDCyABKAJQIgMEQCABKAJUIgRBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIANqSQ0DIAVBACAGIANBJ2pLGw0CIAQQtAILAkAgASgCyAEiA0GAgICAeHJBgICAgHhHBEAgASgCzAEiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgA2pJDQQgBUEAIAYgA0EnaksbDQEgBBC0AgtB9AAQfiIDRQ0BIAMgBzYCFCADIBU3AgwgA0EANgIIIANCgYCAgBA3AgAgA0EYaiABQdAA/AoAACADIAg2AnAgAyAHNgJsIAMgCDYCaCADQQhqEAghFhCFBSIHIBYmASACQQRrKAIAIgNBeHFBlAFBmAEgA0EDcSIIG0kNAyAIQQAgA0G4AU8bDQIgAhC0AiAAIAc2AgQgAEEANgIAIAFBwAdqJAAPCwwBCwALQaCMyABBLkHQjMgAEKIIAAtB4IvIAEEuQZCMyAAQoggAC7MWAyV/A30BeyMAQdACayIDJABBABD3CSEEIANBABD3CTYCwAEgAyAENgK8ASADQQA2ArgBIANCADcCsAEgA0IENwJ4IANCADcCcCADQoCAgIDAADcCaCADQgQ3AmAgA0IANwJYIANCgICAgMAANwJQIANBADYCPCADQQA2AjQgA0EANgIsIANBADYCJCADQQA2AhwgA0EANgIUIANBADYCDCADQQA2AkggA0GAgICAeDYCmAEgA0GAgICAeDYCpAEgA0HMAWpBADoAACADQgQ3ApABIANCADcCiAEgA0KAgICAwAA3AoABIANCADcCxAEgASgCPCETIAMgAjoA+AEgAyATNgL0ASADIAEoAggiCDYC8AEgA0EMaiADQfABahCGBAJAAkACQAJAQYCAMBB+IhBFDQAgEEEEayIdLQAAQQNxBEAgEEEAQYCAMPwLAAtBgIAQEH4iCUUNACAJQQRrIh4tAABBA3EEQCAJQQBBgIAQ/AsAC0GAgDAQfiIRRQ0AIBFBBGsiHy0AAEEDcQRAIBFBAEGAgDD8CwALQYCAMBB+IhJFDQAgEkEEayIgLQAAQQNxBEAgEkEAQYCAMPwLAAtBgIDAABB+IgtFDQAgC0EEayIhLQAAQQNxBEAgC0EAQYCAwAD8CwALQYCACBB+IgxFDQAgDEEEayIiLQAAQQNxBEAgDEEAQYCACPwLAAtBgIAQEH4iDUUNACANQQRrIiMoAgAiBUEDcSIEBEAgDUEAQYCAEPwLAAsgCARAIAxBAiACGyEkIA1BBCACGyElQYCABEEAIAIbIRsgASgCECEmIAEoAhQhHCABKAIEIScDQEGAgAQgCCAOayIEIARBgIAETxshFCAIIA5HBEAgJyAOQSRsaiEEICYgDkEYbGohBkEAIRUgCSEWQQAhBSANIRcgDCEYIAshGQNAIBYCfwJAIAggDiAVaiIaSwRAIARBEGoqAgAhKCAEQQxqKgIAISkgBEEIaioCACEqIANB0AFqIAQQywMgA0HgAWogBBDCAyADQfABaiAEKQIAEN0CIAP9AATwASErIAUgEGoiCiAqOAIAIAUgEWoiByADKgLQATgCACAFIBJqIg8gAyoC4AE4AgAgCkEEaiApOAIAIAdBBGogAyoC1AE4AgAgD0EEaiADKgLkATgCACAKQQhqICg4AgAgB0EIaiADKgLYATgCACAPQQhqIAMqAugBOAIAIBkgK/0LAgAgBEEUai8BACIHQf//AXFFBEAgB0EQdAwDCyAHQf8HcSEKIAdBgIACcSEPIAdBgPgBcSIHQYD4AUYEQCAPQRB0IQcgB0GAgID8B3IgCkUNAxogByAKQQ10ckGAgID+B3IMAwsgD0EQdCEPIAdFDQEgB0ENdEGAgID8AHEgCkENdHJBgICAwANqIA9yDAILIBogCEHoyMcAEL8HAAsgD0GAgIDYA3IgCmdBEGsiB0EXdGsgCiAHQf//A3FBCGp0Qf///wNxcgs2AgAgAgRAAn8CQCAaIBxJBEACfyAGQRRqKAIAIgpBBEsEQCAGQQRqKAIAIQogBkEIaigCAAwBCyAGQQRqCyEHIAoNAUEAIQpBAAwCCyAaIBxB6M3HABC/BwwHCyAHKAIACyEHIBggCjsBACAXIAc2AgALIARBJGohBCAGQRhqIQYgFkEEaiEWIAVBDGohBSAXQQRqIRcgGEECaiEYIBlBEGohGSAVQQFqIhUgFEkNAAsLIAMgGzYCvAIgAyAlNgK4AiADIBs2ArQCIAMgJDYCsAIgA0EANgKsAiADQoCAgIDAADcCpAIgA0KAgICAwAA3ApwCIANCgICQgMAANwKUAiADIAs2ApACIANBgIAMNgKMAiADIBI2AogCIANBgIAMNgKEAiADIBE2AoACIANBgIAENgL8ASADIAk2AvgBIANBgIAMNgL0ASADIBA2AvABIANBDGogDiAUIANB8AFqEJ0BIA4gFGoiDiAISQ0ACyAjKAIAIgVBA3EhBAsCQAJAIAVBeHFBhIAQQYiAECAEG08EQCAEQQAgBUGogBBPGw0GIA0QtAIgIigCACICQXhxQYSACEGIgAggAkEDcSIEG0kNBSAEQQAgAkGogAhPGw0GIAwQtAIgISgCACICQXhxQYSAwABBiIDAACACQQNxIgQbSQ0FIARBACACQaiAwABPGw0GIAsQtAIgICgCACICQXhxQYSAMEGIgDAgAkEDcSIEG0kNBSAEQQAgAkGogDBPGw0GIBIQtAIgHygCACICQXhxQYSAMEGIgDAgAkEDcSIEG0kNBSAEQQAgAkGogDBPGw0GIBEQtAIgHigCACICQXhxQYSAEEGIgBAgAkEDcSIEG0kNBSAEQQAgAkGogBBPGw0GIAkQtAIgHSgCACICQXhxQYSAMEGIgDAgAkEDcSIEG0kNBSAEQQAgAkGogDBPGw0GIBAQtAIgE0UNBEGAgJABEH4iAkUNAyACQQRrIgsoAgAiBUEDcSIEBEAgAkEAQYCAkAH8CwALIAhFDQIgASgCICEMIAEoAhwhDUEAIQYDQEGAgAQgCCAGayIEIARBgIAETxshCSAGIAhHBEBBACEFIAIhBANAIANB8AFqIA0gDCAFIAZqEMcBIAQgA/0ABPAB/QsCACAEQRBqIAP9AASAAv0LAgAgBEEgaiADKgKQAjgCACAEQSRqIQQgBUEBaiIFIAlJDQALCyADQQxqIAYgCSACQYCAJBD3ASAIIAYgCWoiBksNAAsMAQsMBAsgCygCACIFQQNxIQQLAkAgBUF4cUGEgJABQYiAkAEgBBtPBEAgBEEAIAVBqICQAU8bDQUgAhC0AiATQQFGDQNBgIDwARB+IgJFDQIgAkEEayILKAIAIgVBA3EiBARAIAJBAEGAgPAB/AsACyAIBEAgASgCLCEMIAEoAighDUEAIQYDQEGAgAQgCCAGayIEIARBgIAETxshCSAGIAhHBEBBACEFIAIhBANAIANB8AFqIA0gDCAFIAZqEJYBIAQgA/0ABPAB/QsCACAEQRBqIAP9AASAAv0LAgAgBEEgaiAD/QAEkAL9CwIAIARBMGogAyoCoAI4AgAgBEE0aiADKQKkAjcCACAEQTxqIQQgBUEBaiIFIAlJDQALCyADQQxqIAYgCSACQYCAPBC0ASAGIAlqIgYgCEkNAAsgCygCACIFQQNxIQQLIAVBeHFBhIDwAUGIgPABIAQbSQ0EIARBACAFQaiA8AFPGw0FIAIQtAIgE0ECTQ0DQYCA0AIQfiICRQ0CIAJBBGsiCSgCACIFQQNxIgQEQCACQQBBgIDQAvwLAAsgCARAIAEoAjghCyABKAI0IQxBACEGA0BBgIAEIAggBmsiASABQYCABE8bIQEgBiAIRwRAQQAhBSACIQQDQCADQfABaiAMIAsgBSAGahB5IAQgA/0ABPAB/QsCACAEQRBqIAP9AASAAv0LAgAgBEEgaiAD/QAEkAL9CwIAIARBMGogA/0ABKAC/QsCACAEQUBrIAP9AASwAv0LAgAgBEHQAGogAyoCwAI4AgAgBEHUAGohBCAFQQFqIgUgAUkNAAsLIANBDGogBiABIAJBgIDUABChASABIAZqIgYgCEkNAAsgCSgCACIFQQNxIQQLIAVBeHFBhIDQAkGIgNACIAQbSQ0EIARBACAFQaiA0AJPGw0BIAIQtAIMAwsMAwsMAwsACwJAIANBDGoiAhDgASIBBEAgAEECNgIAIAAgATYCBCACEJoCDAELIAAgA0EMakHEAfwKAAALIANB0AJqJAAPC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAuOFAEQfyMAQeAJayIBJAAgAUGwA2oiBSACIAMoAgwRAQACQAJAAkACQCABKQOwA0Lh5I+q8P7EoMAAhSABKQO4A0Kwn6ug+YTv4TuFhFAEQCACLQDoASISQQZHBEAgAUHEAWogAkHsAfwKAAAgASgCpAMiA0UNAiAFIAMgASgCqAMiECgCDCIEEQEAAkACQAJAAkACQCABKQOwA0LF0aqyxo/W0OEAhSABKQO4A0KQouuknKPo52iFhFBFBEAgBSADIAQRAQAgASkDsANCwOPHtPah7oKIf4UgASkDuANCzq37vMqx7qCgf4WEUA0BIAUgAyAEEQEAIAEpA7ADQururryp5cP+VoUgASkDuANC7uaYmcqG5c/YAIWEUA0CIAUgAyAEEQEAIAEpA7ADQpWkz+yXzf9XhSABKQO4A0KZkaLy7aHJylGFhFANAyAFIAMgBBEBACABKQOwA0Lnl9GDi7qz4aR/hSABKQO4A0LLysXGtdCJ/GyFhFANBCAFIAMgBBEBACABKQOwA0KJ2cvlwdX7hr1/hSABKQO4A0LUgduR+YX4oUaFhFAiEQ0FIAFBADYCwAMgAUEBNgK0AyABQbCzwQA2ArADIAFCBDcCuAMgBUG4s8EAEMoIAAsgAUGwA2ogA0GwBvwKAAAgAUEIaiADQfQEakG8AfwKAAAgASgCmAgiBARAIAEoApwIIgVBBGsoAgAiBkF4cSIHQQRBCCAGQQNxIgYbIARqSQ0LIAZBACAHIARBJ2pLGw0KIAUQtAILAkAgASgCjAgiBEGDgICAeEYNAAJAAkACQEEBIARBgICAgHhzIARBAE4bDgIBAgALIAFBsANqEMkBDAILIAFBsANqEO4DDAELIAFBsANqENQCCyADQQRrKAIAIgRBeHFBtAZBuAYgBEEDcSIFG0kNCiAFRQ0IIARB2AZPDQkMCAsgAUEIaiADQbwB/AoAACADKAL8ASEHIAMoAvgBIQsgAygC8AEhDCADKALsASEJIAMoAuQBIRAgAygC4AEhBCADKALYASERIAMoAtQBIQUgAygCzAEhCiADKALIASEGIAMoArwBIggEQCADKALAASINQQRrKAIAIg5BeHEiD0EEQQggDkEDcSIOGyAIakkNCiAOQQAgDyAIQSdqSxsNCSANELQCCyAGBEAgCkEEaygCACIIQXhxIg1BBEEIIAhBA3EiCBsgBmpJDQogCEEAIA0gBkEnaksbDQkgChC0AgsgBQRAIBFBBGsoAgAiBkF4cSIKQQRBCCAGQQNxIgYbIAVqSQ0KIAZBACAKIAVBJ2pLGw0JIBEQtAILAkAgBEGAgICAeEYNACAEBEAgEEEEaygCACIFQXhxIgYgBEECdCIEQQRBCCAFQQNxIgUbakkNCyAFQQAgBiAEQSdqSxsNCiAQELQCCyAJBEAgDEEEaygCACIEQXhxIgUgCUEBdCIGQQRBCCAEQQNxIgQbakkNCyAEQQAgBSAGQSdqSxsNCiAMELQCCyALRQ0AIAdBBGsoAgAiBEF4cSIFIAtBAnQiBkEEQQggBEEDcSIEG2pJDQogBEEAIAUgBkEnaksbDQkgBxC0AgsgA0EEaygCACIEQXhxIgVBqNQAQazUACAEQQNxIgQbSQ0JIARFIAVBzNQASXINBwwICyABQQhqIANBvAH8CgAAIAMoArwBIgQEQCADKALAASIFQQRrKAIAIgZBeHEiB0EEQQggBkEDcSIGGyAEakkNCSAGQQAgByAEQSdqSxsNCCAFELQCCyADQQRrKAIAIgRBeHFBzAFB0AEgBEEDcSIFG0kNCCAFRSAEQfABSXINBgwHCyABQQhqIANBvAH8CgAAIAMoArwBIgQEQCADKALAASIFQQRrKAIAIgZBeHEiB0EEQQggBkEDcSIGGyAEakkNCCAGQQAgByAEQSdqSxsNByAFELQCCyADQQRrKAIAIgRBeHFBzAFB0AEgBEEDcSIFG0kNByAFRSAEQfABSXINBQwGCyABQQhqIANBvAH8CgAAIAMoArwBIgQEQCADKALAASAEQQEQ1gcLIANBBGsoAgAiBEF4cUHMAUHQASAEQQNxIgUbSQ0GIAVFIARB8AFJcg0EDAULIAMoArQCIQkgAygCsAIhBCADKAKEAiEKIAMoAoACIQYgAygC/AEhBSADKAL4ASEHIAMoAvQBIQsgAygCkAEhCCADKAJgIQ0gAygCXCEMIAMoAgAhDiABQQhqIANBvAJqQbwB/AoAACAEBEAgCSAEQQEQ1gcLAkAgCEECRg0AIAUEQCAHQSRqIQQDQCAEQQRrKAIAIglBgICAgHhyQYCAgIB4RwRAIAQoAgAiCEEEaygCACIPQXhxIhNBBEEIIA9BA3EiDxsgCWpJDQkgD0EAIBMgCUEnaksbDQggCBC0AgsgBEEwaiEEIAVBAWsiBQ0ACwsgCwRAIAcgC0EwbEEIENYHCyAGQYCAgIB4ckGAgICAeEYNACAKIAZBARDWBwsgAyAQIBEbIQMgDEUgDkECRnJFBEAgDSAMQShsQQgQ1gcLIANBBGsoAgAiBEF4cUGEBEGIBCAEQQNxIgUbSQ0FIAVFIARBqARJcg0DDAQLQZjxwQAQpAoACyABIAM2ArQDIAEgAjYCsANBwPjIAEErIAFBsANqQcDxwQBB0PHBABCVBwALQYyzwQAQpAoACyADELQCAkAgASgCjAMiA0GAgICAeHJBgICAgHhHBEAgASgCkAMiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgA2pJDQMgBUEAIAYgA0EnaksbDQIgBBC0AgsgASgCxAFBAkcEQCABQcQBahDXAgsgASgCgAMiAwRAIAEoAoQDIgRBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIANqSQ0DIAVBACAGIANBJ2pLGw0CIAQQtAILIAEoApgDIgNBgICAgHhyQYCAgIB4RwRAIAEoApwDIgRBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIANqSQ0DIAVBACAGIANBJ2pLGw0CIAQQtAILIBJBAnQiA0Gc9MEAaigCACEEIANBhPTBAGooAgAhBSABQQhqEN4BIgZBqPHBAEEIEKwJIgMgBSAEEKwJIgQQhApB+NDJAC0AAARAQfjQyQBBADoAAEH80MkAKAIAIQBB/NDJAEEANgIAIAEgADYCsANBwPjIAEErIAFBsANqQdS/wQBBsPHBABCVBwALQfzQyQBBADYCAEH40MkAQQA6AAAgBEGECE8EQCAEEM0HCyADQYQITwRAIAMQzQcLIAJBBGsoAgAiA0F4cSIEQfABQfQBIANBA3EiAxtJDQIgA0EAIARBlAJPGw0AIAIQtAIgACAGNgIEIABBADYCACABQeAJaiQADwsLQaCMyABBLkHQjMgAEKIIAAtB4IvIAEEuQZCMyAAQoggAC44UARB/IwBBgAprIgEkACABQcADaiIFIAIgAygCDBEBAAJAAkACQAJAIAEpA8ADQqKUvM/+h5L5I4UgASkDyANC7oSH0viX7cxvhYRQBEAgAi0A8AEiEkEGRwRAIAFBzAFqIAJB9AH8CgAAIAEoArQDIgNFDQIgBSADIAEoArgDIhAoAgwiBBEBAAJAAkACQAJAAkAgASkDwANCl9KZp6TMmMCof4UgASkDyANC3fL9zc/Q8eGSf4WEUEUEQCAFIAMgBBEBACABKQPAA0Kuq5bW7ufU8nGFIAEpA8gDQvPQn6DI3NiQ9QCFhFANASAFIAMgBBEBACABKQPAA0L+r+nwrqHMnLN/hSABKQPIA0LFpZiXg4rt0GyFhFANAiAFIAMgBBEBACABKQPAA0KOzNvsmtqovXaFIAEpA8gDQuyK4MaX/+eC9gCFhFANAyAFIAMgBBEBACABKQPAA0LQr/L02oWzkAyFIAEpA8gDQvmH9YjusKn8jn+FhFANBCAFIAMgBBEBACABKQPAA0L7hqHhvIrxojiFIAEpA8gDQvaW1vniq+jAcYWEUCIRDQUgAUEANgLQAyABQQE2AsQDIAFBsLPBADYCwAMgAUIENwLIAyAFQbizwQAQyggACyABQcADaiADQbgG/AoAACABQQhqIANB9ARqQcQB/AoAACABKAKoCCIEBEAgASgCrAgiBUEEaygCACIGQXhxIgdBBEEIIAZBA3EiBhsgBGpJDQsgBkEAIAcgBEEnaksbDQogBRC0AgsCQCABKAKcCCIEQYOAgIB4Rg0AAkACQAJAQQEgBEGAgICAeHMgBEEAThsOAgECAAsgAUHAA2oQyQEMAgsgAUHAA2oQ7gMMAQsgAUHAA2oQ1AILIANBBGsoAgAiBEF4cUG8BkHABiAEQQNxIgUbSQ0KIAVFDQggBEHgBk8NCQwICyABQQhqIANBxAH8CgAAIAMoAoQCIQcgAygCgAIhCyADKAL4ASEMIAMoAvQBIQkgAygC7AEhECADKALoASEEIAMoAuABIREgAygC3AEhBSADKALUASEKIAMoAtABIQYgAygCxAEiCARAIAMoAsgBIg1BBGsoAgAiDkF4cSIPQQRBCCAOQQNxIg4bIAhqSQ0KIA5BACAPIAhBJ2pLGw0JIA0QtAILIAYEQCAKQQRrKAIAIghBeHEiDUEEQQggCEEDcSIIGyAGakkNCiAIQQAgDSAGQSdqSxsNCSAKELQCCyAFBEAgEUEEaygCACIGQXhxIgpBBEEIIAZBA3EiBhsgBWpJDQogBkEAIAogBUEnaksbDQkgERC0AgsCQCAEQYCAgIB4Rg0AIAQEQCAQQQRrKAIAIgVBeHEiBiAEQQJ0IgRBBEEIIAVBA3EiBRtqSQ0LIAVBACAGIARBJ2pLGw0KIBAQtAILIAkEQCAMQQRrKAIAIgRBeHEiBSAJQQF0IgZBBEEIIARBA3EiBBtqSQ0LIARBACAFIAZBJ2pLGw0KIAwQtAILIAtFDQAgB0EEaygCACIEQXhxIgUgC0ECdCIGQQRBCCAEQQNxIgQbakkNCiAEQQAgBSAGQSdqSxsNCSAHELQCCyADQQRrKAIAIgRBeHEiBUGw1ABBtNQAIARBA3EiBBtJDQkgBEUgBUHU1ABJcg0HDAgLIAFBCGogA0HEAfwKAAAgAygCxAEiBARAIAMoAsgBIgVBBGsoAgAiBkF4cSIHQQRBCCAGQQNxIgYbIARqSQ0JIAZBACAHIARBJ2pLGw0IIAUQtAILIANBBGsoAgAiBEF4cUHUAUHYASAEQQNxIgUbSQ0IIAVFIARB+AFJcg0GDAcLIAFBCGogA0HEAfwKAAAgAygCxAEiBARAIAMoAsgBIgVBBGsoAgAiBkF4cSIHQQRBCCAGQQNxIgYbIARqSQ0IIAZBACAHIARBJ2pLGw0HIAUQtAILIANBBGsoAgAiBEF4cUHUAUHYASAEQQNxIgUbSQ0HIAVFIARB+AFJcg0FDAYLIAFBCGogA0HEAfwKAAAgAygCxAEiBARAIAMoAsgBIARBARDWBwsgA0EEaygCACIEQXhxQdQBQdgBIARBA3EiBRtJDQYgBUUgBEH4AUlyDQQMBQsgAygCtAIhCSADKAKwAiEEIAMoAoQCIQogAygCgAIhBiADKAL8ASEFIAMoAvgBIQcgAygC9AEhCyADKAKQASEIIAMoAmAhDSADKAJcIQwgAygCACEOIAFBCGogA0G8AmpBxAH8CgAAIAQEQCAJIARBARDWBwsCQCAIQQJGDQAgBQRAIAdBJGohBANAIARBBGsoAgAiCUGAgICAeHJBgICAgHhHBEAgBCgCACIIQQRrKAIAIg9BeHEiE0EEQQggD0EDcSIPGyAJakkNCSAPQQAgEyAJQSdqSxsNCCAIELQCCyAEQTBqIQQgBUEBayIFDQALCyALBEAgByALQTBsQQgQ1gcLIAZBgICAgHhyQYCAgIB4Rg0AIAogBkEBENYHCyADIBAgERshAyAMRSAOQQJGckUEQCANIAxBKGxBCBDWBwsgA0EEaygCACIEQXhxQYwEQZAEIARBA3EiBRtJDQUgBUUgBEGwBElyDQMMBAtBiPLBABCkCgALIAEgAzYCxAMgASACNgLAA0HA+MgAQSsgAUHAA2pBwPHBAEGo8sEAEJUHAAtBjLPBABCkCgALIAMQtAICQCABKAKcAyIDQYCAgIB4ckGAgICAeEcEQCABKAKgAyIEQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyADakkNAyAFQQAgBiADQSdqSxsNAiAEELQCCyABKALMAUECRwRAIAFBzAFqEJoCCyABKAKQAyIDBEAgASgClAMiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgA2pJDQMgBUEAIAYgA0EnaksbDQIgBBC0AgsgASgCqAMiA0GAgICAeHJBgICAgHhHBEAgASgCrAMiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgA2pJDQMgBUEAIAYgA0EnaksbDQIgBBC0AgsgEkECdCIDQZz0wQBqKAIAIQQgA0GE9MEAaigCACEFIAFBCGoQ3AEiBkGo8cEAQQgQrAkiAyAFIAQQrAkiBBCECkH40MkALQAABEBB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgASAANgLAA0HA+MgAQSsgAUHAA2pB1L/BAEGY8sEAEJUHAAtB/NDJAEEANgIAQfjQyQBBADoAACAEQYQITwRAIAQQzQcLIANBhAhPBEAgAxDNBwsgAkEEaygCACIDQXhxIgRB+AFB/AEgA0EDcSIDG0kNAiADQQAgBEGcAk8bDQAgAhC0AiAAIAY2AgQgAEEANgIAIAFBgApqJAAPCwtBoIzIAEEuQdCMyAAQoggAC0Hgi8gAQS5BkIzIABCiCAALvhUCB38HfiMAQeACayICJAACfwJAAn8CQAJAAkACQCAALQAAQQNrDgUBAAAAAgALIAAgARDwAgwFCyAAKQMIIglC/////////weDIQsgCUL///////////8Ag0L/////////9/8AWARAIAlCNIinIQAgCUIAUw0CIAJByAJqDAMLQdeaxgBB2prGACAJQgBZIgAbQd6axgAgC1AiBBshA0EDQQQgABtBAyAEGyEADAMLIAEoAgBBrKLGAEEEIAEoAgQoAgwRAAAMAwsgAkEtOgDIAkEBIQcgAkHJAmoLIQYCfwJ/AkACQAJAIABB/w9xIgBFIAtQcUUEQCAAQQJJIAtCAFJyIQMgC0KAgICAgICACIQgCyAAGyIJQgKGIQogCUIBgyEPIABBtQhrQcx3IAAbIgBBAEgEQCACQZACakHY7sUAIAAgAEGFolNsQRR2IABBf0drIgBqIgVBBHQiBGspAwAiCSAKQgKEIgwQkgcgAkGAAmpB4O7FACAEaykDACILIAwQkgcgAkHwAWogAikDmAIiDCACKQOAAnwiDSACKQOIAiAMIA1WrXwgACAFQbHZtR9sQRN2a0H8AGpB/wBxQcAAcyIEENUHIAJBsAFqIAkgCiADQX9zrHwiDBCSByACQaABaiALIAwQkgcgAkGQAWogAikDuAEiDCACKQOgAXwiDSACKQOoASAMIA1WrXwgBBDVByACQeABaiAJIAoQkgcgAkHQAWogCyAKEJIHIAJBwAFqIAIpA+gBIgkgAikD0AF8IgsgAikD2AEgCSALVq18IAQQ1QcgAikDwAEhDCACKQOQASENIAIpA/ABIQkgAEECTwRAIApCfyAArYZCf4WDUEUgAEE/T3INBAwFCyAJIA99IQlBASEIIA9QIANxDAULIAJBgAFqIABBwegEbEESdiAAQQNLayIFQQR0IgRB+MPFAGopAwAiCSAKQgKEIgsQkgcgAkHwAGogBEGAxMUAaikDACIMIAsQkgcgAkHgAGogAikDiAEiDSACKQNwfCIOIAIpA3ggDSAOVq18IAUgAGsgBUHPpsoAbEETdmpB/QBqQf8AcUHAAHMiABDVByACQSBqIAkgCiADQX9zrHwiDRCSByACQRBqIAwgDRCSByACIAIpAygiDSACKQMQfCIOIAIpAxggDSAOVq18IAAQ1QcgAkHQAGogCSAKEJIHIAJB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RQRAIANBqL/IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQcgBEUEQCADQajHyABBgAj8CgAACyADIABBDnZB/AdxaigCACEKIARFBEAgA0Goz8gAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgBSAHcyAKc3MhACACQQVGDQAgAUEUbEEBIAEgARsiBEEUbGsgC2pBFGohAiAIIARBBWxqIAFBBWxrQQVrIQEDQCACKAIAIQtBACIERQRAIANBqLfIAEGACPwKAAALIAMgACALcyIAQf8BcUECdGooAgAhCyAERQRAIANBqL/IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQggBEUEQCADQajHyABBgAj8CgAACyADIABBDnZB/AdxaigCACEFIARFBEAgA0Goz8gAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgCCALcyAFc3MhACACQQRqIQIgAUEBayIBDQALCwJAIA9FDQAgDi0AACAAc0H/AXFBAnRBqK/IAGooAgAgAEEIdnMhACAPQQFGDQAgDi0AASAAc0H/AXFBAnRBqK/IAGooAgAgAEEIdnMhACAPQQJGDQAgDi0AAiAAc0H/AXFBAnRBqK/IAGooAgAgAEEIdnMhAAsgA0GACGokACAAQX9zDwsgAiAIQazXyAAQowoAC6oTAwt/BH4CeyMAQaACayIEJAACQCABKAIQIgUoAjAgAk0EQCAAQgM3AwAgAEGEgICAeDYCCAwBCyAFKAIsIAJBuAFsaiEHAkACQCADLQAIRQRAIActAKABIQUgAygCACICRQ0BIAVBAXENAgtBACECIANBADYCAAwBC0EAIQIgBUEBcUUNACAAQSE2AhAgAEGcpccANgIMIABBg4CAgHg2AgggAEIDNwMADAELAkACQCAHLQBoQQNGBEAgBykDYCERDAELIAEoAgQiBa0hEAJAAkAgBUL/////DyAHKQNQIg8gD0L/////D1obp2siBkEAIAUgBk8bQR1NBEBB4KHIACkDACIRpyECAkAgEUL/AYNCBFEEQCABIA9CHnw3AwggAkH/AXFBBEcNAQwDCyABIBA3AwggAkH/AXFBBEYNAgsgEUIgiKchASARQgiIpyIFIQMCQAJAAkACQCACQf8BcSIGQQFrDgMBAAACCyABLQAIIQMLIANB/wFxQSVGDQELIAQgATYC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NgIAIAAgETYCBCAMIAwoAgAoAgARAwBBASEMIAtFDQYgDkEEaygCACIAQXhxIg1BBEEIIABBA3EiABsgC2pJDQggAEEAIA0gC0EnaksbDQkgDhC0AgwGCyAKLQARIQwgC0UNACAOQQRrKAIAIgFBeHEiD0EEQQggAUEDcSIBGyALakkNByABQQAgDyALQSdqSxsNCCAOELQCC0EEIQFBACELQQAQ9wkhEEEAIQ5BBCEPAkAgBEEBcUUNACAKQdABaiAFEMwGIAooAtgBIREgCigC1AEhDyAKKALQASEOIAVBhAhJDQAgBRDNBwtBACEFAkAgBkEBcUUNACAKQdABaiAHEMwGIAooAtgBIQUgCigC1AEhASAKKALQASELIAdBhAhJDQAgBxDNBwtBBCEHQQAhBkEAIQQCQCAIQQFxRQ0AIApB0AFqIAkQzAYgCigC2AEhBCAKKALUASEHIAooAtABIQYgCUGECEkNACAJEM0HCyAKIA06AOwCIAogFDgC6AIgCiAVOALkAiAKIBY4AuACIAogF/0LAtACIApBgICAgHg2AsQCIApCgICAgICAgICAfzcCtAIgCkKAgICAwAA3AqwCIAogBDYCqAIgCiAHNgKkAiAKIAY2AqACIAogBTYCnAIgCiABNgKYAiAKIAs2ApQCIAogETYCkAIgCiAPNgKMAiAKIA42AogCIApBADYCgAIgCkEANgL4ASAKQQA2AvABIApBADYC6AEgCkEANgLgASAKQQA2AtgBIApBADYC0AEgCkGIA2pBADoAAEECIQkgCkHvAmogCkEOai0AADoAACAKQQA2AvgCIAogEDYC/AIgCkIANwLwAiAKQgA3AoADIAogCi8BDDsA7QIgAigCACEEIAIoAgQhBiACKAIIIQECfyAMQQZHBEAgCiAMIApB0AFqEPgDIAooAgQhBSAKKAIADAELIApBlANqIApB1AFqQbgB/AoAAEEAIQlBAAshCEGAgICAeCEHIARBgICAgHhHBEAgAUEASA0CAkAgAUUEQEEBIQcMAQsgARB+IgdFDQQLIAEEQCAHIAYgAfwKAAALIAetIAGtQiCGhCEYIAEhBwsgCkEYaiICIApBlANqQbgB/AoAAEHsARB+IgFFDQIgASAJNgIAIAFBBGogAkG4AfwKAAAgASAMOgDoASABIAU2AuQBIAEgCDYC4AEg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AwsgB0EBcUUNAyAAQQA2AgAgAEIANwMIDAULIAAgDTcDCCAAQoGAgICQgICAgH83AwAMBAsgAEEANgIAIABCADcDCCAFQRhqEPsFDAMLIAIgDDcDCCABQQI6AAggACAMNwMQIABCATcDCCAAQQA2AgAMAgsgAUECOgAICwJAAkACQAJAAkAgASkDoAEiDCABKQMQVA0AIAFBIGohCUHgocgAKQMAIg5C/wGDIREgDkIIiCEQIAEpAxghDSACKAIAIQogDqchByACKAIEIgutIQ4DQCAMIA1aDQFCfyAMIAEoAqwBIgOtfCIPIAwgD1YbIg8gDFgNASADIA0gDyANIA9UGyAMfSIPpyIESQ0CIAEoAqgBIQYCQCABKAKwAUUEQCACAn4CQCAEIAsgDCAOIAwgDlQbpyIDa00EQCADIApqIQMgBEEBRwRAIAQEQCAGIAMgBPwKAAALQQQhAwwCCyAGIAMtAAA6AABBBCEDDAELIAchAyAOIBFCBFINARoLIA9C/////w+DIAx8CzcDCCADQf8BcSIDQQRHBEAgEEIYiKchASAQpyICIQQCQAJAAkAgA0EBaw4DAQACCwsgAS0ACCEECyAEQf8BcUElRg0FDAkLIAEtAAhBJUcNCCABKAIAIQIgAUEEaigCACIDKAIAIgcEQCACIAcRAwALIAMoAgQiBwRAIAIgByADKAIIENYHCyABQQxBBBDWBwwEC0EAIQggASgCsAFBAXFFDQELIAQgASgCtAEiCEkNBCAGIAhqIQYgBCAIayEECyAFQgE3AhggASgCmAEiAyAETQRAIAVBCGogCSAFQRhqIAYgBCABKAKUASADIAEoAogBEQoAIAUoAghBAXENBSABKAKYASEDCyABQQA2ArABQn8gASkDoAEiDSABNQKsASADQQFrIgRBACADIARPG619fCIMIAwgDVQbIgwgASkDGCINVARAIAEgDDcDoAEgDCABKQMQWg0BDAILCyABIA03AxALIABCADcDCCAAQQA2AgAMBAsgBCADQeDswAAQogoACyAIIARB/KjIABCjCgALIAUoAgwhAyABQQE2ArABIABCATcDCCACIAOtIAwgCK18fCINNwMIIAEgASgCmAEgAyAIamo2ArQBIAAgDTcDECAAQQA2AgAMAQsgACABNgIMIABBgYCAgHg2AgQgACACQQh0IANy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IAJBAToALCACIAY2AhQgAiADNgIQIAJB5KDCADYCICACIAEpAgg3AiQgAiACQSxqNgIYIAIgAkEQajYCHCAEIAJBHGoQ2wINBCACKAIcQYOhwgBBAiACKAIgKAIMEQAADQQLIANBpqHIAEEBIAURAAAhAAwDC0EBIQAgASgCACIDQbfAxwBBDiABKAIEIgcoAgwiBREAAA0CIARBAWohBgJAIAEtAApBgAFxRQRAIANB+brFAEEBIAURAAANBCACIAY2AhwgASAEQQRqQbSvxwAgBEECakHEr8cAIARBA2pB1K/HACACQRxqQeSvxwAQnQYNBCABKAIAIQMgASgCBCgCDCEFDAELIANBjKHCAEECIAURAAANAyACQQE6AA8gAiAHNgIUIAIgAzYCECACQeSgwgA2AiAgAiABKQIINwIkIAIgAkEPajYCGCACIAJBEGo2AhwgAiAGNgIsIAJBHGogBEEEakG0r8cAIARBAmpBxK/HACAEQQNqQdSvxwAgAkEsakHkr8cAEJ0GDQMgAigCHEGDocIAQQIgAigCICgCDBEAAA0DCyADQaahyABBASAFEQAAIQAMAgtBASEAIAEoAgAiA0HFwMcAQQYgASgCBCIGKAIMIgURAAANAQJAIAEtAApBgAFxRQRAIANB+brFAEEBIAURAAANAyAEIAEQsQNFDQEMAwsgA0GMocIAQQIgBREAAA0CIAJBAToALCACIAY2AhQgAiADNgIQIAJB5KDCADYCICACIAEpAgg3AiQgAiACQSxqNgIYIAIgAkEQaiIBNgIcIAQgAkEcahCxAw0CIAFBg6HCAEECENgDDQILIANBpqHIAEEBIAURAAAhAAwBC0EBIQAgASgCACIDQcvAxwBBDiABKAIEIgYoAgwiBREAAA0AAkAgAS0ACkGAAXFFBEAgA0H5usUAQQEgBREAAA0CIARBCGooAgAgBEEMaigCACABEM4CRQ0BDAILIANBjKHCAEECIAURAAANASACQQE6ACwgAiAGNgIUIAIgAzYCECACQeSgwgA2AiAgAiABKQIINwIkIAIgAkEsajYCGCAEQQhqKAIAIARBDGooAgAgAiACQRBqIgY2AhwgAkEcahDOAg0BIAZBg6HCAEECENgDDQELIANBpqHIAEEBIAURAAAhAAsgAkEwaiQAIAAL+ggDCn8CfgJ7IwBB8ABr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KAKUBCIBBEAgACgCmAQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKAKgBCIBBEAgACgCpAQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKAKsBCIBBEAgACgCsAQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKAK4BCIBBEAgACgCvAQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKALEBCIBBEAgACgCyAQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKALQBCIBBEAgACgC1AQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKALcBCIBBEAgACgC4AQiAEEEaygCACIDQXhxIgIgAUECdCIBQQRBCCADQQNxIgMbakkNASADQQAgAiABQSdqSxsNAiAAELQCCw8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC7oGAQh/IwBBIGshCANAIAEoAgAiBEH///8DcSEDIARBgICAgHhxIQYCQCAEQYCAgPwHcSICQYCAgPwHRgRAIANBDXYgBkEQdnIgA0EAR0EJdHJBgPgBciEGDAELIAZBEHYhBiACQYCAgLgETQRAIAJBgICAxANPBEAgBEEMdiAEQf/fAHFBAEdxIAJBDXYgA0ENdmpBgIABaiAGcmohBgwCCyACQYCAgJgDSQ0BIANBgICABHIiBEEeIAJBF3YiA2t2IQIgBEEdIANrIgN2QQFxBH8gAkEDIAN0QQFrIARxQQBHagUgAgsgBnIhBgwBCyAGQYD4AXIhBgsgAUEEaigCACIDQf///wNxIQUgA0GAgICAeHEhBAJAIANBgICA/AdxIgJBgICA/AdHBEAgBEEQdiEEIAJBgICAuARNBEAgAkGAgIDEA08EQCADQQx2IANB/98A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AQEBAQEBAQMFAQEEAQEBAQEBAQEBAQEBAQEBAQEBAQEIAQEBAQcACyABQdwARg0FCyACQQFxRSABQf8FTXINByABEIAFRQ0HIANBDmpBADoAACADQQA7AQwgAyABQRR2QbS4xQBqLQAAOgAPIAMgAUEEdkEPcUG0uMUAai0AADoAEyADIAFBCHZBD3FBtLjFAGotAAA6ABIgAyABQQx2QQ9xQbS4xQBqLQAAOgARIAMgAUEQdkEPcUG0uMUAai0AADoAECABQQFyZ0ECdiICIANBDGoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgAkECayICakHcADoAACADQRRqIgQgAUEPcUG0uMUAai0AADoAACAAIAMpAQw3AAAgA0H9ADoAFQwICyAAQgA3AQIgAEHc4AA7AQAMCgsgAEIANwECIABB3OgBOwEADAkLIABCADcBAiAAQdzkATsBAAwICyAAQgA3AQIgAEHc3AE7AQAMBwsgAEIANwECIABB3LgBOwEADAYLIAJBgAJxRQ0BIABCADcBAiAAQdzOADsBAAwFCyACQf///wdxQYCABE8NAwsgARDXBg0BIANBGGpBADoAACADQQA7ARYgAyABQRR2QbS4xQBqLQAAOgAZIAMgAUEEdkEPcUG0uMUAai0AADoAHSADIAFBCHZBD3FBtLjFAGotAAA6ABwgAyABQQx2QQ9xQbS4xQBqLQAAOgAbIAMgAUEQdkEPcUG0uMUAai0AADoAGiABQQFyZ0ECdiICIANBFmoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgAkECayICakHcADoAACADQR5qIgQgAUEPcUG0uMUAai0AADoAACAAIAMpARY3AAAgA0H9ADoAHwsgAEEIaiAELwEAOwAAQQoMAwsgACABNgIAQYABIQJBgQEMAgsgAEIANwECIABB3MQAOwEAC0EAIQJBAgs6AA0gACACOgAMIANBIGokAAuMBQIMfwN+IwBBoAFrIggkACAIQQBBoAH8CwACQAJAIAIgACgCoAEiBU0EQCAFQSlPDQIgBUECdCEJIAVBAWohDCABIAJBAnRqIQ0CQANAIAggBkECdGohAwNAIAYhAiADIQQgASANRg0EIANBBGohAyACQQFqIQYgASgCACEHIAFBBGoiCyEBIAdFDQALIAetIRFCACEPIAkhByACIQEg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fyMAQSBrIgIkAAJAAkACQAJAAkAgAC0AAEEBaw4DAQIDAAtBASEEIAEoAgAiA0G6sccAQQUgASgCBCIGKAIMIgURAAANAwJAIAEtAApBgAFxRQRAIANB+brFAEEBIAURAAANBSADIAAtAAFBAnQiAEGwqckAaigCACAAQfCoyQBqKAIAIAURAABFDQEMBQsgA0GMocIAQQIgBREAAA0EIAIgBjYCFCACIAM2AhAgAkEBOgAAIAAtAAFBAnQiAEHwqckAaigCACEBIABBsKrJAGooAgAhACACIAI2AhggAkEQaiIGIAAgARDYAw0EIAZBg6HCAEECENgDDQQLIANBpqHIAEEBIAURAAAhBAwDC0EBIQQgASgCACIDQb+xxwBBBCABKAIEIgYoAgwiBREAAA0CAkAgAS0ACkGAAXFFBEAgA0H5usUAQQEgBREAAA0EIABBCGooAgAgAEEMaigCACABEM4CRQ0BDAQLIANBjKHCAEECIAURAAANAyACQQE6AA8gAiAGNgIEIAIgAzYCACACQeSgwgA2AhQgAiABKQIINwIYIABBCGooAgAgAEEMaigCACACIAJBD2o2AgggAiACNgIQIAJBEGoQzgINAyACQYOhwgBBAhDYAw0DCyADQaahyABBASAFEQAAIQQMAgtBASEEIAEoAgAiA0HDsccAQQ0gASgCBCIGKAIMIgURAAANASAAQQRqIQACQCABLQAKQYABcUUEQCADQfm6xQBBASAFEQAADQMgACABELoCRQ0BDAMLIANBjKHCAEECIAURAAANAiACQQE6AA8gAiAGNgIEIAIgAzYCACACQeSgwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqELoCDQIgAkGDocIAQQIQ2AMNAgsgA0GmocgAQQEgBREAACEEDAELIAEoAgBB0LHHAEEHIAEoAgQoAgwRAAAhBAsgAkEgaiQAIAQLmgUDB38FfgJ7IAApAzghDCAAKQMoIgkhCwJAAkACQAJAAkACQCAJIAApAwgiClINACAAKQMwIgsgACkDECIKUg0AIAwhCyAMIAApAxgiClENAQsgCiALWA0AIABBMGohAkECIQMDQCACQShqKQMAIQsgAkEYaikDACINIQoCQCAJIA1SDQAgAkEgaikDACIKIAIpAwAiCVINACAMIQkgCyIK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IARGBEAgA0EUakH09cAAEKwGIAMoAhghAgsgAiAEQQJ0aiABNgIAIAMgBEEBaiIENgIcDAELIAMoAhAiBSADKAIIRgRAIANBCGpBhPbAABCsBgsgAygCDCAFQQJ0aiABNgIAIAMgBUEBajYCEAsgBkEIaiIGIApHDQALCyAHBEAgCEEEaygCACIBQXhxIgIgB0EDdCIEQQRBCCABQQNxIgEbakkNAiABQQAgAiAEQSdqSxsNAyAIELQCCyAAIAMpAgg3AgAgACADKQIUNwIMIABBCGogA0EQaigCADYCACAAQRRqIANBHGooAgA2AgAgA0EgaiQADwsgASAFQejIxwAQvwcAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAv6AwAgACAEaiEAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUH/AXFBAWsOBwcAAQIDBAUGCyAAQQJqIQEgAEF9Sw0NIAEgA00NByABIANBnO/HABCiCgALIABBAmohASAAQX1LDQ0gASADTQ0HIAEgA0Gs78cAEKIKAAsgAEEEaiEBIABBe0sNDSABIANNDQcgASADQbzvxwAQogoACyAAQQRqIQEgAEF7Sw0NIAEgA00NByABIANBzO/HABCiCgALIABBBGohASAAQXtLDQ0gASADTQ0HIAEgA0Hc78cAEKIKAAsgAEEIaiEBIABBd0sNDSABIANNDQcgASADQezvxwAQogoACyAAIANJDQ4gACADQfzuxwAQvwcACyAAIANJDQwgACADQYzvxwAQvwcACyAAIAJqLgAAsg8LIAAgAmovAACzDwsgACACaigAALIPCyAAIAJqKAAAsw8LIAAgAmoqAAAPCyAAIAJqKwAAtg8LIAAgAUGc78cAEKUKAAsgACABQazvxwAQpQoACyAAIAFBvO/HABClCgALIAAgAUHM78cAEKUKAAsgACABQdzvxwAQpQoACyAAIAFB7O/HABClCgALIAAgAmotAACzQwAAf0OVDwsgACACaiwAALJDAAB/Q5ULyQMBC38jAEEQayIHJAACQAJAAkACQCADIARsIgZB/////wNLDQAgBkECdCIJQf3///8HTw0AAkAgCUUEQEEEIQpBACEGDAELIAkQfiIKRQ0CCyAHQQA2AgwgByAKNgII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IAJBH2pBwODAABDZCCEBDAkLIAEtAAQhAQwICyABLwEEIQEMBwsgASgCBCEBDAYLIAEpAwgiBUL/////D1gEQCAFpyEBDAULQQEhAyACQQE6AAggAiAFNwMQIAJBCGogAkEfakHA4MAAEJMHIQEMBQsgASwABCIBQQBIBEAgAkECOgAIIAIgAaw3AxAgAkEIaiACQR9qQcDgwAAQkwchAUEBIQMMBQsgAUH/AXEhAQwDCyABLgEEIgFBAEgEQCACQQI6AAggAiABrDcDECACQQhqIAJBH2pBwODAABCTByEBQQEhAwwECyABQf//A3EhAQwCCyABKAIEIgFBAE4NASACQQI6AAggAiABrDcDECACQQhqIAJBH2pBwODAABCTByEBQQEhAwwCCyABKQMIIgVCgICAgBBaBEAgAkECOgAIIAIgBTcDECACQQhqIAJBH2pBwODAABCTByEBQQEhAwwCCyAFpyEBCwsgACABNgIEIAAgAzYCACACQSBqJAALhAMBA38gAC8BHCECAkACQCAALwEeIgFB//8BcUGA+AFLDQAgAkH//wFxIgNBgPgBSw0AIAHBQQBOBEAgAsFBAE4EQCABIAJNDQIMAwsgASADckUNAQwCCyACwUEATg0AIAEgAkkNAQsgAiEBCwJAAkAgAC8BICIAQf//AXFBgPgBSw0AIAFB//8BcSICQYD4AUsNACAAwUEATgRAIAHBQQBOBEAgACABQf//A3FNDQIMAwsgACACckUNAQwCCyABwUEATg0AIAAgAUH//wNxSQ0BCyABIQALAn8gAEEQdCAAQf//AXFFDQAaIABB/wdxIQEgAEGAgAJxIQIgAEGA+AFxIgBBgPgBRgRAIAJBEHQiAEGAgID8B3IgAUUNARogACABQQ10ckGAgID+B3IMAQsgAkEQdCICIABBDXRBgICA/ABxIAFBDXRyQYCAgMADanIgAA0AGiACQYCAgNgDciABZ0EQayIAQRd0ayABIABB//8DcUEIanRB////A3FyC74QpgQL+gIBBH8CQAJAAkACQAJAAkACQCAALQAADhoABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBAgQLIAAtAARBA0cNAyAAKAIIIgAoAgAhAiAAQQRqKAIAIgEoAgAiAwRAIAIgAxEDAAsgASgCBCIBBEAgAkEEaygCACIDQXhxIgRBBEEIIANBA3EiAxsgAWpJDQYgA0EAIAQgAUEnaksbDQUgAhC0AgsgAEEEaygCACICQXhxIgFBEEEUIAJBA3EiAhtJDQUgAkUgAUE0SXINAgwECyAAKAIEIgJFDQIgACgCCCIAQQRrKAIAIgFBeHEiA0EEQQggAUEDcSIBGyACakkNBCABRSADIAJBJ2pNcg0BDAMLIAAoAgQiAkUNASAAKAIIIgBBBGsoAgAiAUF4cSIDQQRBCCABQQNxIgEbIAJqSQ0DIAFFIAMgAkEnak1yDQAMAgsgABC0AgsPC0GgjMgAQS5B0IzIABCiCAALQeCLyABBLkGQjMgAEKIIAAudAwEDfyMAQYABayIEJAAgACgCACEAAn8CQCABKAIIIgJBgICAEHFFBEAgAkGAgIAgcQ0BQQMhAiAALQAAIgAhAyAAQQpPBEAgBCAAIABB5ABuIgNB5ABsa0H/AXFBAXQiAkGvwsUAai0AADoAAiAEIAJBrsLFAGotAAA6AAFBASECC0EAIAAgAxtFBEAgBCACQQFrIgJqIANBAXRB/gFxQa/CxQBqLQAAOgAACyABQQFBAUEAIAIgBGpBAyACaxDsAwwCCyAALQAAIQJBgQEhAANAIAAgBGpBAmsgAkEPcSIDQTByIANB1wBqIANBCkkbOgAAIAJB/wFxIgNBBHYhAiAAQQFrIQAgA0EPSw0ACyABQQFB88DFAEECIAAgBGpBAWtBgQEgAGsQ7AMMAQsgAC0AACECQYEBIQADQCAAIARqQQJrIAJBD3EiA0EwciADQTdqIANBCkkbOgAAIAJB/wFxIgNBBHYhAiAAQQFrIQAgA0EPSw0ACyABQQFB88DFAEECIAAgBGpBAWtBgQEgAGsQ7AMLIARBgAFqJAALjQMBDX8jAEEQayIGJAACQCABLQAlDQAgASgCBCEHAkAgASgCECIEIAEoAggiDEsNACAEIAEoAgwiAkkNACABQRRqIg0gAS0AGCIFakEBay0AACEJIAVBBUkhDgNAAkAgAiAHaiEKAkAgBCACayILQQdNBEAgAiAERg0CQQAhAwNAIAMgCmotAAAgCUYNAiALIANBAWoiA0cNAAsMAgsgBkEIaiAJIAogCxC+BSAGKAIIQQFxRQ0BIAYoAgwhAwsgASACIANqQQFqIgI2AgwCQCACIAVJIAIgDEtyDQAgDgRAIAcgAiAFayIDaiANIAUQkAgNASABKAIcIQQgASACNgIcIAQgB2ohCCADIARrIQMMBQsgBUEEQdzBxwAQogoACyACIARNDQEMAgsLIAEgBDYCDAsgAUEBOgAlAkAgAS0AJEEBRgRAIAEoAiAhAiABKAIcIQEMAQsgASgCICICIAEoAhwiAUYNAQsgASAHaiEIIAIgAWshAwsgACADNgIEIAAgCDYCACAGQRBqJAAL0gIBBX8CQAJAAkACQAJAAkAgACgCACIAKAIADgIAAQMLIAAoAggiAUUNAiAAKAIEIgNBBGsoAgAiAkF4cSIEQQRBCCACQQNxIgIbIAFqSQ0EIAJFIAQgAUEnak1yDQEMAwsgAC0ABEEDRw0BIAAoAggiAygCACEBIANBBGooAgAiAigCACIEBEAgASAEEQMACyACKAIEIgIEQCABQQRrKAIAIgRBeHEiBUEEQQggBEEDcSIEGyACakkNBCAEQQAgBSACQSdqSxsNAyABELQCCyADQQRrKAIAIgFBeHEiAkEQQRQgAUEDcSIBG0kNAyABRQ0AIAJBNE8NAgsgAxC0AgsgAEEEaygCACIDQXhxIgFBGEEcIANBA3EiAxtJDQEgA0EAIAFBPE8bDQAgABC0Ag8LQaCMyABBLkHQjMgAEKIIAAtB4IvIAEEuQZCMyAAQoggAC5YDAQN/IwBBgAFrIgQkAAJ/AkAgASgCCCICQYCAgBBxRQRAIAJBgICAIHENAUEDIQIgAC0AACIAIQMgAEEKTwRAIAQgACAAQeQAbiIDQeQAbGtB/wFxQQF0IgJBr8LFAGotAAA6AAIgBCACQa7CxQBqLQAAOgABQQEhAgtBACAAIAMbRQRAIAQgAkEBayICaiADQQF0Qf4BcUGvwsUAai0AADoAAAsgAUEBQQFBACACIARqQQMgAmsQ7AMMAgsgAC0AACECQYEBIQADQCAAIARqQQJrIAJBD3EiA0EwciADQdcAaiADQQpJGzoAACACQf8BcSIDQQR2IQIgAEEBayEAIANBD0sNAAsgAUEBQfPAxQBBAiAAIARqQQFrQYEBIABrEOwDDAELIAAtAAAhAkGBASEAA0AgACAEakECayACQQ9xIgNBMHIgA0E3aiADQQpJGzoAACACQf8BcSIDQQR2IQIgAEEBayEAIANBD0sNAAsgAUEBQfPAxQBBAiAAIARqQQFrQYEBIABrEOwDCyAEQYABaiQAC7wDAgZ/AX4jAEHQAGsiAiQAIAJBIGogACAAKAIAKAIEEQEAIAIgAkHIAGqtQoCAgIDwAoQ3AyhBASEDIAJBATYCNCACQfCOyAA2AjAgAkIBNwI8IAIgAikDIDcCSCACIAJBKGo2AjgCQCABKAIAIgYgASgCBCIHIAJBMGoQ5AMNACABLQAKQYABcUUEQEEAIQMMAQsgAkEYaiAAIAAoAgAoAgQRAQAgAkEQaiACKAIYIAIoAhwoAhgRAQAgAigCECIERQRAQQAhAwwBCyACQQhqIAQgAigCFCIFKAIYEQEAIAIoAgwhACACKAIIIQEgAiAFNgIsIAIgBDYCKCACQQE2AjQgAkH0+MEANgIwIAJCATcCPCACIAJBKGqtQoCAgIDwAoQiCDcDSCACIAJByABqNgI4IAYgByACQTBqENsJDQADQCABRQRAQQAhAwwCCyACIAEgACgCGBEBACACKAIEIAIoAgAgAiAANgIsIAIgATYCKCACQQE2AjQgAkH0+MEANgIwIAJCATcCPCACIAg3A0ggAiACQcgAajYCOCEBIQAgBiAHIAJBMGoQ2wlFDQALCyACQdAAaiQAIAMLkAMBBH8CQAJAAkACQAJAAkAgByAIVgRAIAcgCH0gCFgNAQJAIAYgByAGfVQgByAGQgGGfSAIQgGGWnFFBEAgBiAIVg0BDAgLIAIgA0kNAwwGCyAHIAYgCH0iBn0gBlYNBiACIANJDQMgASADaiEMIAMhCgJAAkADQCAKIglFDQEgCUEBayIKIAFqIgstAABBOUYNAAsgCyALLQAAQQFqOgAAIAMgCU8NASAJIANBqJzCABCjCgALAkAgA0UEQEExIQoMAQsgAUExOgAAQTAhCiADQQFrIglFIAlFcg0AIAFBAWpBMCAJ/AsACyAEQQFqwSIEIAXBTCACIANNcg0FIAwgCjoAACADQQFqIQMMBQsgAyAJRg0EIAMgCWsiBUUNBCABIAlqQTAgBfwLAAwECyAAQQA2AgAPCyAAQQA2AgAPCyADIAJBmJzCABCiCgALIAMgAkH4m8IAEKIKAAsgAiADTw0AIAMgAkGInMIAEKIKAAsgACAEOwEIIAAgAzYCBCAAIAE2AgAPCyAAQQA2AgALvAMCBX8BfiMAQSBrIgIkAAJAAkACQAJAAkAgAS0AmAEiA0EIRw0AIAJBCToAECACIAEgAkEQaiABKAKAARCgBAJAIAItAAAiA0EdRgRAIAIoAgQiBEGAgICAeEcNAUEAIQMgAUEAOgCYAQwCCyACKQIEIQcCfyADRQRAIAIgBzcDECAHpyEDIAIpAhQhB0EFDAELIAIoAgwhBEEQEH4iAUUNBCABIAM6AAAgASAENgIMIAEgBzcCBCABIAJBAXIiAy8AADsAASABQQNqIANBAmotAAA6AAAgAkGABjsBECACKAIQIQNBAAshBCAAQcjVxAA2AhggACABNgIUIAAgB0IgiD4CDCAAIAc+AgggACADNgIEIAAgBDYCAAwCCyACKQIIIAEgAigCCCACKAIMEKABQf8BcSIBQQAgAUEIRxsiAzoAmAEgBEUNAKciAUEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgBGpJDQMgBUEAIAYgBEEnaksbDQQgARC0AgsgAEEGNgIAIAAgAzoABAsgAkEgaiQADwsAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAvfAgIEfwN9IANBCE8EQCAAIAAgA0EDdiIDQTBsIgRqIAAgA0HUAGwiBWogAxDcBCEAIAEgASAEaiABIAVqIAMQ3AQhASACIAIgBGogAiAFaiADENwEIQILIAEqAgAiCCAIXCEFAn8gACoCACIJIAlcIgQgCCAJX3IiA0EAIAUgCCAJYHIbRQRAIANFDAELIAAoAgQiAyABKAIEIgZHBEAgAyAGSQwBCyAAKAIIIAEoAghJCyEDIAIqAgAiCiAKXCEGAn8gBCAJIApgciIEQQAgBiAJIApfchtFBEAgBEEBcwwBCyAAKAIEIgQgAigCBCIHRwRAIAQgB0kMAQsgACgCCCACKAIISQsgA0YEfyACIAECfyAFIAggCmByIgBBACAGIAggCl9yG0UEQCAAQQFzDAELIAEoAgQiACACKAIEIgRHBEAgACAESQwBCyABKAIIIAIoAghJCyADcxsFIAALC5gDAQZ/AkAgACgCdEGAgICAeEcNAAJAAkAgACgCpAEiBkH/////A0sNACAGQQJ0IgVB/f///wdPDQACfyAFRQRAQQQhB0EADAELIAUQfiIHRQ0CIAdBBGstAABBA3FFIAVFckUEQCAHQQAgBfwLAAsgBgshBSAAIAY2AnwgACAHNgJ4IAAgBTYCdAwCC0GYyMEAELcICwALAkACQCACBEBBACEGIAAoAnghByAAKAJ8IgggAWsiAEEAIAAgCE0bIgkgAkEBayIAIAAgCUsbIgAgBCAAIARJGyIFQQNLBEAgByABQQJ0aiEAIAVBAWoiBSAFQQNxIgVBBCAFG2siBiEKIAMhBQNAIAAgBf0AAgD9CwIAIAVBEGohBSAAQRBqIQAgCkEEayIKDQALCyADIAZBAnRqIQAgByABIAZqQQJ0aiEFA0AgBCAGRg0DIAYgCUYNAiAFIAAoAgA2AgAgBUEEaiEFIABBBGohACACIAZBAWoiBkcNAAsLDwsgASAGaiAIQbjIwQAQvwcACyAEIARBqMjBABC/BwALlAMBBn8CQCAAKAJoQYCAgIB4Rw0AAkACQCAAKAKkASIGQQBIDQAgBkEBdCIFQf////8HTw0AAn8gBUUEQEECIQdBAAwBCyAFEH4iB0UNAiAHQQRrLQAAQQNxRSAFRXJFBEAgB0EAIAX8CwALIAYLIQUgACAGNgJwIAAgBzYCbCAAIAU2AmgMAgtB6MfBABC3CAsACwJAAkAgAgRAQQAhBiAAKAJsIQcgACgCcCIIIAFrIgBBACAAIAhNGyIJIAJBAWsiACAAIAlLGyIAIAQgACAESRsiBUEHSwRAIAcgAUEBdGohACAFQQFqIgUgBUEHcSIFQQggBRtrIgYhCiADIQUDQCAAIAX9AAEA/QsBACAFQRBqIQUgAEEQaiEAIApBCGsiCg0ACwsgAyAGQQF0aiEAIAcgASAGakEBdGohBQNAIAQgBkYNAyAGIAlGDQIgBSAALwEAOwEAIAVBAmohBSAAQQJqIQAgAiAGQQFqIgZHDQALCw8LIAEgBmogCEGIyMEAEL8HAAsgBCAEQfjHwQAQvwcAC54DAQZ/AkAgACgCmAFBgICAgHhHDQACQAJAIAAoAqgBIgZB/////wNLDQAgBkECdCIFQf3///8HTw0AAn8gBUUEQEEEIQdBAAwBCyAFEH4iB0UNAiAHQQRrLQAAQQNxRSAFRXJFBEAgB0EAIAX8CwALIAYLIQUgACAGNgKgASAAIAc2ApwBIAAgBTYCmAEMAgtBiNzBABC3CAsACwJAAkAgAgRAQQAhBiAAKAKcASEHIAAoAqABIgggAWsiAEEAIAAgCE0bIgkgAkEBayIAIAAgCUsbIgAgBCAAIARJGyIFQQNLBEAgByABQQJ0aiEAIAVBAWoiBSAFQQNxIgVBBCAFG2siBiEKIAMhBQNAIAAgBf0AAgD9CwIAIAVBEGohBSAAQRBqIQAgCkEEayIKDQALCyADIAZBAnRqIQAgByABIAZqQQJ0aiEFA0AgBCAGRg0DIAYgCUYNAiAFIAAoAgA2AgAgBUEEaiEFIABBBGohACACIAZBAWoiBkcNAAsLDwsgASAGaiAIQajcwQAQvwcACyAEIARBmNzBABC/BwALmgMBBn8CQCAAKAKMAUGAgICAeEcNAAJAAkAgACgCqAEiBkEASA0AIAZBAXQiBUH/////B08NAAJ/IAVFBEBBAiEHQQAMAQsgBRB+IgdFDQIgB0EEay0AAEEDcUUgBUVyRQRAIAdBACAF/AsACyAGCyEFIAAgBjYClAEgACAHNgKQASAAIAU2AowBDAILQdjbwQAQtwgLAAsCQAJAIAIEQEEAIQYgACgCkAEhByAAKAKUASIIIAFrIgBBACAAIAhNGyIJIAJBAWsiACAAIAlLGyIAIAQgACAESRsiBUEHSwRAIAcgAUEBdGohACAFQQFqIgUgBUEHcSIFQQggBRtrIgYhCiADIQUDQCAAIAX9AAEA/QsBACAFQRBqIQUgAEEQaiEAIApBCGsiCg0ACwsgAyAGQQF0aiEAIAcgASAGakEBdGohBQNAIAQgBkYNAyAGIAlGDQIgBSAALwEAOwEAIAVBAmohBSAAQQJqIQAgAiAGQQFqIgZHDQALCw8LIAEgBmogCEH428EAEL8HAAsgBCAEQejbwQAQvwcAC6YDAQJ/IwBB0ABrIgckACAHQQBB0AD8CwACQCACRQRAIAdC//79+/fv37//ADcDAAwBCyABQQN0IgggBE0EQCAEIAhGDQFBAUEIIAQgCGsiBCAEQQhPGyIEIARBAU0bIgRFDQEgByADIAhqIAT8CgAADAELIAggBEH0+MQAEKMKAAsgAAJ/IAFFBEAgB0GBAToARyAHQYEBOgA+IAdBgQE6ADUgB0GBAToALCAHQYEBOgAjIAdBgQE6ABogB0GBAToAESAHQYEBOgAIQYF/Qf8AIAIbDAELAkAgBgRAIAZBAWsiAUUNASAHIAUtAAE6AAggAUEBRg0BIAcgBS0AAjoAESABQQJGDQEgByAFLQADOgAaIAFBA0YNASAHIAUtAAQ6ACMgAUEERg0BIAcgBS0ABToALCABQQVGDQEgByAFLQAGOgA1IAFBBkYNASAHIAUtAAc6AD4gAUEHRg0BIAcgBS0ACDoARwwBC0EBQQBB5PjEABCjCgALQYF/Qf8AIAIbIAJFDQAaIAUtAAALOgAAIABBAWogB0HQAPwKAAAgB0HQAGokAAu1AwIGfwF7IwBBEGsiBCQAAkACQAJAAkAgASgCBCIFBEAgASgCACEHAkAgBUEETwRAIAdBHGohAyAFQXxxIgYhAgNAIAMgA0EIayADQRBrIANBGGv9XAIA/VYCAAH9VgIAAv1WAgADIAj9rgEhCCADQSBqIQMgAkEEayICDQALIAggCCAI/Q0ICQoLDA0ODwABAgMAAQID/a4BIgggCCAI/Q0EBQYHAAECAwABAgMAAQID/a4B/RsAIQIgBSAGRg0BCyAFIAZrIQUgBkEDdCAHakEEaiEDA0AgAygCACACaiECIANBCGohAyAFQQFrIgUNAAsLIAEoAgxFDQIgAkEPSw0BIAcoAgQNAQwDCyABKAIMRQ0CCyACQQAgAkEAShtBAXQhAgsCQCACQQBOBEAgAkUNAiACEH4iA0UNAQwDC0Hg9sEAELcICwALQQEhA0EAIQILIARBADYCCCAEIAM2AgQgBCACNgIAIARBsPbBACABEOQDRQRAIAAgBCkCADcCACAAQQhqIARBCGooAgA2AgAgBEEQaiQADwtB6pbIAEHWACAEQQ9qQYD3wQBBkPfBABCVBwALiwMBBX8jAEEgayIGJAACQAJAAkACQCABKAIIIgNBCkkNAAJAAkAgASgCBCIELQAAQR9HDQAgBC0AAUGLAUcNACAELQACQQhHDQBBCiECIAQtAAMiBUEEcQRAIANBDEkNAyADIAQvAApBDGoiAkkNAwsgBUEIcUUNASACIANPDQIDQCACIARqLQAARQRAIAJBAWohAgwDCyADIAJBAWoiAkcNAAsMAgsgBkEANgIYQQEhBSAGQQE2AgwgBkHw8ccANgIIIAZCBDcCECAAIAZBCGoQxwc2AgQMAwsgBUEQcQRAIAIgA08NAQNAIAIgBGotAAAEQCADIAJBAWoiAkcNAQwDCwsgAkEBaiECCyAFQQJxRQ0BIAMgAkECaiICTw0BC0EAIQUgAEEAOgABDAELIAIgA0sNAUEAIQUgAUEANgIIIAIgA0cEQCADIAJrIgMEQCAEIAIgBGogA/wKAAALIAEgAzYCCAsgAEEBOgABCyAAIAU6AAAgBkEgaiQADwsgAiADQdyrxwAQogoAC88DAQV/IwBBIGsiAiQAIAAoAgAiA0EIaiEFQQEhAAJAIAMoAgBBAUYEQCABKAIAIgNB67/EAEEDIAEoAgQiBigCDCIEEQAADQECQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQMgBSABEKIGRQ0BDAMLIANBjKHCAEECIAQRAAANAiACQQE6AA8gAiAGNgIEIAIgAzYCACACQeSgwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBSACQRBqEKIGDQIgAkGDocIAQQIQ2AMNAgsgA0GmocgAQQEgBBEAACEADAELIAEoAgAiA0HolckAQQIgASgCBCIGKAIMIgQRAAANAAJAIAEtAApBgAFxRQRAIANB+brFAEEBIAQRAAANAiAFIAEQsAUNAiABKAIAIQMgASgCBCgCDCEEDAELIANBjKHCAEECIAQRAAANASACQQE6AA8gAiAGNgIEIAIgAzYCACACQeSgwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBSACQRBqELAFDQEgAigCEEGDocIAQQIgAigCFCgCDBEAAA0BCyADQaahyABBASAEEQAAIQALIAJBIGokACAAC4MDAQF/IwBBIGsiBSQAIAACfwJAIARFBEAgA0EEaiACSyADQXtLckUEQCAAIAEgA2oqAAA4AgQMAgsgBUEANgIYIAVBATYCDCAFQeStwQA2AgggBUIENwIQIAAgBUEIahDFBzYCBEEBDAILIANBfU0gA0ECaiACTXFFBEAgBUEANgIYIAVBATYCDCAFQeStwQA2AgggBUIENwIQIAAgBUEIahDFBzYCBEEBDAILIAACfyABIANqIgEtAAFBCHQiAiABLQAAciIBQf//AXFFBEAgAUEQdAwBCyABQf8HcSEBIAJBgIACcSEDIAJBgPgBcSICQYD4AUYEQCADQRB0IQIgAkGAgID8B3IgAUUNARogAUENdCACckGAgID+B3IMAQsgA0EQdCEDIAJBDXRBgICA/ABxIAFBDXRyQYCAgMADaiADciACDQAaIANBgICA2ANyIAFnQRBrIgJBF3RrIAEgAkH//wNxQQhqdEH///8D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5AMLIAJBMGokAAvmAQEEfyMAQSBrIgAkAEEBIQICQCABKAIAIgNB7KTIAEEPIAEoAgQiBSgCDCIEEQAADQACQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQIgAUHoocgAQQIQvgNFDQEMAgsgA0GMocIAQQIgBBEAAA0BIABBAToADyAAIAU2AgQgACADNgIAIABB5KDCADYCFCAAIAEpAgg3AhggACAAQQ9qNgIIIAAgADYCECAAQRBqQeihyABBAhC+Aw0BIABBg6HCAEECENgDDQELIANBpqHIAEEBIAQRAAAhAgsgAEEgaiQAIAILugEBA38jAEEgayIDJAACQAJ/QQAgASABIAJqIgJLDQAaQQBBCCACIAAoAgAiAUEBdCIEIAIgBEsbIgIgAkEITRsiBEEASA0AGkEAIQIgAyABBH8gAyABNgIcIAMgACgCBDYCFEEBBSACCzYCGCADQQhqQQEgBCADQRRqENIHIAMoAghBAUcNASADKAIQIQUgAygCDAtB/KHIABDQCQALIAMoAgwhASAAIAQ2AgAgACABNgIEIANBIGokAAvmAQEEfyMAQSBrIgAkAEEBIQICQCABKAIAIgNBgN7EAEERIAEoAgQiBSgCDCIEEQAADQACQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQIgAUHoocgAQQIQvgNFDQEMAgsgA0GMocIAQQIgBBEAAA0BIABBAToADyAAIAU2AgQgACADNgIAIABB5KDCADYCFCAAIAEpAgg3AhggACAAQQ9qNgIIIAAgADYCECAAQRBqQeihyABBAhC+Aw0BIABBg6HCAEECENgDDQELIANBpqHIAEEBIAQRAAAhAgsgAEEgaiQAIAIL6QEBA38jAEEQayICJAAgAiAAKAIAIgA2AgQgASgCAEHYrscAQQYgASgCBCgCDBEAACEDIAJBADoADSACIAM6AAwgAiABNgIIIAJBCGpB3q7HAEEEIABBBGpBuK7HABC9BUHirscAQQUgAkEEakHIrscAEL0FIQAgAi0ADSIDIAItAAwiBHIhAQJAIARBAXEgA0EBR3INACAAKAIAIgAtAApBgAFxRQRAIAAoAgBB8cDFAEECIAAoAgQoAgwRAAAhAQwBCyAAKAIAQZK9xQBBASAAKAIEKAIMEQAAIQELIAJBEGokACABQQFxC+kB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ACADIAIgAiADVhunaigAACEHDAELQeChyAApAwAiBUIIiCEEIAWnIQYgBUL/AYNCBFINAQsgA0IEfCECCyABIAI3AwggBkH/AXFBBEcEQCAAIAatQv8BgyAEQgiGhDcCAA8LIABBBDoAACAAIAc2AgQLxwEBA38jAEEQayICJAAgACgCDCEBAkACQAJAAkACQAJAAkACQCAAKAIEDgIAAQILIAENAUEBIQNBACEAQQEhAQwDCyABRQ0BCyACQQRqIAAQ4gQMAgsgACgCACIBKAIEIgBBAEgNAiABKAIAIQMgAEUEQEEBIQFBACEADAELIAAQfiIBRQ0DCyAABEAgASADIAD8CgAACyACIAA2AgwgAiABNgIIIAIgADYCBAsgAkEEahDFASACQRBqJAAPC0H8pMgAELcICwALtAEBBn8jAEEgayIBJAACQAJAIAAoAgAiA0H///8fSw0AQQQgA0EBdCIEIARBBE0bIgRBBXQiBUH4////B0sNACABIAMEfyABIANBBXQ2AhwgASAAKAIENgIUQQgFIAILNgIYIAFBCGpBCCAFIAFBFGoQ0gcgASgCCEEBRw0BIAEoAhAhBiABKAIMIQILIAJBpLbBABDQCQALIAEoAgwhAiAAIAQ2AgAgACACNgIEIAFBIGokAAvPAQACQCABBEAgACAELQAIOgAAIAFBCEsNAUEIIAFBAWtBlPnEABCiCgALQQBBAEGE+cQAEL8HAAsgACAELQAROgABIAAgBC0AGjoAAiAAIAQtACM6AAMgACAELQAsOgAEIAAgBC0ANToABSAAIAQtAD46AAYgACAELQBHOgAHIAAgBC0AUDoACAJAIAVBA3QiACADTQRAIAMgAGsiAUEHSw0BQQggAUGk+cQAEKIKAAsgACADQbT5xAAQowoACyAAIAJqIARByQBqKQAANwAAC8UBAQR/IwBBIGsiAyQAIANBGGoiAiABQSxqKQIANwMAIAMgAf0AAhz9CwMIAkACQEEYEH4iBARAIAQgA/0AAwj9CwIAIARBEGogAikDADcCACABQQRqEIMDIAFBBGsoAgAiAkF4cSIFQThBPCACQQNxIgIbSQ0BIAJBACAFQdwATxsNAiABELQCIABBkLfHADYCBCAAIAQ2AgAgA0EgaiQADwsAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgA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AgA3AgAgASAENgIQIAFBCGogAkEIaigCADYCACADQRBqJAALegEDfyMAQRBrIgMkACADQQhqIAEoAgAgASgCBCABKAIIEIYCIAMoAgwhBCADKAIIIQVBFBB+IgFFBEAACyABIAU2AgwgACABNgIEIABBAToAACABIAIpAgA3AgAgASAENgIQIAFBCGogAkEIaigCADYCACADQRBqJAALegEDfyMAQRBrIgMkACADQQhqIAEoAgAgASgCBCABKAIIEIYCIAMoAgwhBCADKAIIIQVBFBB+IgFFBEAACyABIAU2AgwgACABNgIEIABBATsBACABIAIpAgA3AgAgASAENgIQIAFBCGogAkEIaigCADYCACADQRBqJAALegEDfyMAQRBrIgMkACADQQhqIAEoAgAgASgCBCABKAIIEIYCIAMoAgwhBCADKAIIIQVBFBB+IgFFBEAACyABIAU2AgwgACABNgIEIABBADYCACABIAIpAgA3AgAgASAENgIQIAFBCGogAkEIaigCADYCACADQRBqJAALdgEDfyAAEJoCAkACQCAAKALEASICBEAgACgCyAEiAEEEaygCACIBQXhxIgNBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAMgAkEnaksbDQIgABC0AgsPC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAt2AQN/IAAQ1wICQAJAIAAoArwBIgIEQCAAKALAASIAQQRrKAIAIgFBeHEiA0EEQQggAUEDcSIBGyACakkNASABQQAgAyACQSdqSxsNAiAAELQCCw8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC3QBA38gABCYAwJAAkAgACgCYCICBEAgACgCZCIAQQRrKAIAIgFBeHEiA0EEQQggAUEDcSIBGyACakkNASABQQAgAyACQSdqSxsNAiAAELQCCw8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC3QBA38gABCZAwJAAkAgACgCQCICBEAgACgCRCIAQQRrKAIAIgFBeHEiA0EEQQggAUEDcSIBGyACakkNASABQQAgAyACQSdqSxsNAiAAELQCCw8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC3QBBH8CQAJAIAAoAigiAgRAIAAoAiwi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JAALNAAgASgCACAAKAIALQAAaEECdCIAQYSeyQBqKAIAIABB8J3JAGooAgAgASgCBCgCDBEAAAs0ACABKAIAIAAoAgAtAABoQQJ0IgBBpKDJAGooAgAgAEGQoMkAaigCACABKAIEKAIMEQAAC/4BAgJ/AX4jAEEQayICJAAgAkEBOwEMIAIgATYCCCACIAA2AgQjAEEQayIBJAAgAkEEaiIAKQIAIQQgASAANgIMIAEgBDcCBCMAQRBrIgAkACABQQRqIgEoAgAiAigCDCEDAkACQAJAAkAgAigCBA4CAAECCyADDQFBASECQQAhAwwCCyADDQAgAigCACICKAIEIQMgAigCACECDAELIABBgICAgHg2AgAgACABNgIMIABB/wBBgAEgASgCBCABKAIIIgAtAAggAC0ACRDEBgALIAAgAzYCBCAAIAI2AgAgAEGBAUGCASABKAIEIAEoAggiAC0ACCAALQAJEMQGAAszACABKAIAIAAoAgAtAABBAnQiAEGAm8kAaigCACAAQcCayQBqKAIAIAEoAgQoAgwRAAALMwAgASgCACAAKAIALQAAQQJ0IgBB+JzJAGooAgAgAEG4nMkAaigCACABKAIEKAIMEQAACzEAIAEoAgAgAC0AAGhBAnQiAEGsnskAaigCACAAQZieyQBqKAIAIAEoAgQoAgwRAAALMwAgASgCACAAKAIALQAAQQJ0IgBB9J/JAGooAgAgAEHYn8kAaigCACABKAIEKAIMEQAACzMAIAEoAgAgACgCAC0AAEECdCIAQfigyQBqKAIAIABBuKDJAGooAgAgASgCBCgCDBEAAAsnACACIARGBEAgBARAIAMgASAE/AoAAAsPCyAEIAJBzLPFABCnCgALMwAgASgCACAAKAIALQAAQQJ0IgBBoKLJAGooAgAgAEGMoskAaigCACABKAIEKAIMEQAACzMAIAEoAgAgACgCAC0AAEECdCIAQcCkyQBqKAIAIABBrKTJAGooAgAgASgCBCgCDBEAAAsmAQF/IwBBEGsiAiQAIAEoAgQaIABBsIvIACABEOQDIAJBEGokAAszACABKAIAIAAoAgAoAgBBAnQiAEHwxckAaigCACAAQczFyQBqKAIAIAEoAgQoAgwRAAALhQkCC38BeyMAQRBrIggkABCFBSILIAEmASAAIQdBACEAIwBBQGoiAyQA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IAIgAxs2AgAgAUHwB2okAAwDCwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyAaKAIAIBooAgQgGigCCCAaQRBqJAALJgACQCAABEAgACgCAEH/////B08NASAAKAJEDwsQ3goACxDgCgALJgACQCAABEAgACgCAEH/////B08NASAAKAJIDwsQ3goACxDgCgALJgACQCAABEAgACgCAEH/////B08NASAAKAJkDwsQ3goACxDgCgALJgACQCAABEAgACgCAEH/////B08NASAAKAJoDwsQ3goACxDgCgALLgAgASgCAEGjw8cAQZjDxwAgACgCAC0AACIAG0EJQQsgABsgASgCBCgCDBEAAAspACAAIAAtAAQgAUEuRnI6AAQgACgCACIAKAIAIAEgACgCBCgCEBECAAusCAEOfyMAQRBrIgokABCFBSIGIAEmASMAQTBrIgIkAAJAAkACQAJAAkACQAJAAkAgACIJBEAgAEEIayILIAsoAgBBAWoiADYCACAARQ0BIAkoAgANAiAJQX82AgAgCUEIaigCACENIAkoAgQhDkHAyckAKAIARQRAAkBBzMnJACgCACEHQcjJyQAoAgAhAEHIyckAQoCAgIAQNwIAQcDJyQAoAgAhBEHAyckAQgE3AgBB0MnJAEEANgIAAkACQCAERSAARXJFBEAgB0EEaygCACIEQXhxIgVBBEEIIARBA3EiBBsgAGpJDQEgBEEAIAUgAEEnaksbDQIgBxC0AgsMAgtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALC0HEyckAKAIADQNBxMnJAEF/NgIAAkBBgIDAACAGEIYLIgAgAEGAgMAATxsiBEHQyckAKAIAIgBNBEBBzMnJACgCACEFDAELIAQgAGsiA0HIyckAKAIAIABrSwRAQcjJyQAgACADQQFBARDQBUHQyckAKAIAIQALQczJyQAoAgAiBSAAaiEHIANBAk8EfyADQQFrIgMEQCAHQQAgA/wLAAsgBSAAIANqIgBqBSAHC0EAOgAAIABBAWohBAtBACEAQdDJyQAgBDYCAAJAAkACQANAIAAiByAGEIYLIg9PDQEgACAEIAYQhgsgAGsiAyADIARLGyIIaiEAIAYlASAHIAAQGCEBEIUFIgMgASYBIAMQhgshDCACIAg2Aggg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yABBFCABKAIEKAIMEQAACxkAIAEoAgBBx5rGAEECIAEoAgQoAgwRAAALGQAgASgCAEGI4MAAQRQgASgCBCgCDBEAAAsZACABKAIAQcqJyABBFCABKAIEKAIMEQAACxkAIAEoAgBBnODAAEEUIAEoAgQoAgwRAAALGQAgASgCAEHbiMgAQQ4gASgCBCgCDBEAAAsZACABKAIAQYqHyABBDCABKAIEKAIMEQAACxkAIAEoAgBByZrGAEEDIAEoAgQoAgwRAAALEgAgAEEEahCDAyAAQSRqENcECxIAIABBBGoQgwMgAEEcahCLBQsSACAAQQRqEIMDIABBHGoQ1wQLFgAgAEHY/MAANgIEIAAgAUEIajYCAAsZACABKAIAQc+VyABBBSABKAIEKAIMEQAACw4AIAAEQAALIAEQtwgACxYAIABB8PnAADYCBCAAIAFBHGo2AgALFgAgAEGs+sAANgIEIAAgAUEcajYCAAsWACAAQZj4wAA2AgQgACABQRxqNgIACxYAIABB6PrAADYCBCAAIAFBHGo2AgALFgAgAEGk+8AANgIEIAAgAUEcajYCAAsWACAAQeD7wAA2AgQgACABQRxqNgIACxYAIABBnPzAADYCBCAAIAFBHGo2AgALFgAgAEHY/MAANgIEIAAgAUEcajYCAAsTACAAIAAgACgCACIAajYCACAACxQAIAEoAgQaIABBsPbBACABEOQDCxEAIAIoAgQaIAAgASACEOQDCxQAIAEoAgQaIABBtPjBACABEOQDCxQAIAEoAgQaIABB4PfBACABEOQDCxQAIAEoAgQaIABB9PnBACABEOQDCxQAIAEoAgQaIABB5KDCACABEOQDCxQAIAEoAgQaIABB3L3EACABEOQDCxQAIAEgAiADIAQgBSAAKAIAEQcACxQAIAEoAgQaIABB5LjFACABEOQDCxkAIAEoAgBBnMLFAEESIAEoAgQoAgwRAAALFAAgASgCBBogAEH4l8YAIAEQ5AMLFAAgASgCBBogAEHkmsYAIAEQ5AMLFgAgAEHMt8cANgIEIAAgAUEcajYCAAsWACAAQYi4xwA2AgQgACABQRxqNgIACxYAIABBmLbHADYCBCAAIAFBHGo2AgALFgAgAEHUtscANgIEIAAgAUEgajYCAAsZACABKAIAQcS0xwBBDCABKAIEKAIMEQAACxIAIABB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iPnAADYCAAsTACAAQYT9wAA2AgQgACABNgIACxMAIABBwP3AADYCBCAAIAE2AgALEwAgAEH8/cAANgIEIAAgATYCAAsTACAAQbj+wAA2AgQgACABNgIACxMAIABB9P7AADYCBCAAIAE2AgALEwAgAEGw/8AANgIEIAAgATYCAAsTACAAQez/wAA2AgQgACABNgIACxMAIABBqIDBADYCBCAAIAE2AgALEQAgACgCBCAAKAIIIAEQzgILEQAgASgCACABKAIEIAAQ5AMLHAAgAEGYu8/sAzYCCCAAQtDn5vKT68WbPzcCAAsRACAAKAIAIAAoAgQgARDOAgsTACAAQYC5xwA2AgQgACABNgIACxMAIABB8LrHADYCBCAAIAE2AgALEwAgAEG8uccANgIEIAAgATYCAAsTACAAQbS6xwA2AgQgACABNgIACxMAIABBxLjHADYCBCAAIAE2AgALEwAgAEH4uccANgIEIAAgATYCAAsTACAAQay7xwA2AgQgACABNgIACxMAIABB5JnIADYCBCAAIAE2AgALFgBB/NDJACAANgIAQfjQyQBBAToAAAsRAQF/EIUFIgEgACUBJgEgAQsOACAAJQEgASUBQQAQEwtpAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0ECNgIMIANBhLfCADYCCCADQgI3AhQgAyADQQRqrUKAgICAEIQ3AyggAyADrUKAgICAEIQ3AyAgAyADQSBqNgIQIANBCGogAhDKCAALaQEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBAjYCDCADQeS2wgA2AgggA0ICNwIUIAMgA0EEaq1CgICAgBCENwMoIAMgA61CgICAgBCENwMgIAMgA0EgajYCECADQQhqIAIQyggACw8AQbWewgBBKyAAEKIIAAtpAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0ECNgIMIANBuLfCADYCCCADQgI3AhQgAyADQQRqrUKAgICAEIQ3AyggAyADrUKAgICAEIQ3AyAgAyADQSBqNgIQIANBCGogAhDKCAALDwAgACgCACgCACABEKoFC2kBAX8jAEEwayIDJAAgAyAANgIEIAMgATYCACADQQM2AgwgA0GcuMIANgIIIANCAjcCFCADIANBBGqtQoCAgIAQhDcDKCADIAOtQoCAgIAQhDcDICADIANBIGo2AhAgA0EIaiACEMoIAAsNAEEDQQIgAC0AkwEbCwwAIAAlASABIAIQBAsNACAAJQEgASUBEAcaCwwAIAAgASACJQEQFAsMACAAIAEgAiUBEBkLZAIBfwFvQfDLyQAoAgBFBEAQ/gMLQfTLyQAoAgAEQEHQ7MAAEPwKAAtB9MvJAEF/NgIAQfzLyQAoAgBBgMzJACgCABCrCSEAQfTLyQBB9MvJACgCAEEBajYCACAAJQEgABDNBwtkAgF/AW9B8MvJACgCAEUEQBD+AwtB9MvJACgCAARAQdDswAAQ/AoAC0H0y8kAQX82AgBBiMzJACgCAEGMzMkAKAIAEKsJIQBB9MvJAEH0y8kAKAIAQQFqNgIAIAAlASAAEM0HCxEAIABBgOnAAP0AAgD9CwIACxEAIABBkOnAAP0AAgD9CwIACxEAIABBoOnAAP0AAgD9CwIACxEAIABBsOnAAP0AAgD9CwIACxEAIABBwOnAAP0AAgD9CwIACxEAIABB0OnAAP0AAgD9CwIACxEAIABB4OnAAP0AAgD9CwIACxEAIABB8OnAAP0AAgD9CwIACxEAIABBgOrAAP0AAgD9CwIACxEAIABBkOrAAP0AAgD9CwIACxEAIABBoOrAAP0AAgD9CwIACxEAIABBsOrAAP0AAgD9CwIACxEAIABBwOrAAP0AAgD9CwIACxEAIABB0OrAAP0AAgD9CwIACxEAIABB4OrAAP0AAgD9CwIACxEAIABB8OrAAP0AAgD9CwIACxEAIABBgOvAAP0AAgD9CwIACxEAIABBkOvAAP0AAgD9CwIACxEAIABBoOvAAP0AAgD9CwIACxEAIABBsOvAAP0AAgD9CwIACxEAIABBwOvAAP0AAgD9CwIACxEAIABB0OvAAP0AAgD9CwIACxEAIABB4OvAAP0AAgD9CwIACxEAIABB8OvAAP0AAgD9CwIACxEAIABBgOzAAP0AAgD9CwIACxEAIABBkOzAAP0AAgD9CwIACxEAIABBoOzAAP0AAgD9CwIACxEAIABBsOzAAP0AAgD9CwIACwwAIAAoAgAgARCqBQsOACAAQeSCwQAgARDkAwsOACAAQcz1wAAgARDkAwsKACAAQQRqEIMDCwoAIABBCGoQ1wQLEQAgAEGU9sAA/QACAP0LAgALEQAgAEGk9sAA/QACAP0LAgALEQAgAEGYqMcA/QACAP0LAgALEQAgAEG09sAA/QACAP0LAgALEQAgAEHE9sAA/QACAP0LAgALEQAgAEG4p8cA/QACAP0LAgALEQAgAEHU9sAA/QACAP0LAgALEQAgAEHk9sAA/QACAP0LAgALEQAgAEGIqMcA/QACAP0LAgALEQAgAEHYqMcA/QACAP0LAgALEQAgAEHop8cA/QACAP0LAgALEQAgAEH09sAA/QACAP0LAgALEQAgAEHoqMcA/QACAP0LAgALEQAgAEH4p8cA/QACAP0LAgALDQBBtKDIAEEbEN8KAAsJACAAIAEQLAALDgBBz6DIAEHPABDfCgALDAAgACABKQIENwMACwsAIAAoAgAgARB1Cw4AIAFB/Z3CAEEgEL4DCw4AIAFBnZ7CAEEYEL4DCxEAIABBqKjHAP0AAgD9CwIACw4AIAFB6KHIAEECEL4DCwwAIAAoAgAgARC2BQsMACAAKAIAIAEQugILEQAgAEGUvsQA/QACAP0LAgALEQAgAEGkvsQA/QACAP0LAgALDAAgACgCACABEMoECwwAIAAoAgAgARCmBQsRACAAQainxwD9AAIA/QsCAAsRACAAQcioxwD9AAIA/QsCAAsRACAAQfimxwD9AAIA/QsCAAsRACAAQcinxwD9AAIA/QsCAAsKACAAQSBqEOgDCw0AIAAgASkChAE3AwALEQAgAEGYp8cA/QACAP0LAgALEQAgAEGIp8cA/QACAP0LAgALEQAgAEHYp8cA/QACAP0LAgALEQAgAEG4qMcA/QACAP0LAgALEQAgAEHgisgA/QACAP0LAgALDAAgACABKQIANwMACxEAIABB8IrIAP0AAgD9CwIACwoAIAAgASUBEA8LTQEBfyMAQTBrIgEkACABQQE2AgwgAUHwjsgANgIIIAFCATcCFCABIAFBL2qtQoCAgIDgBoQ3AyAgASABQSBqNgIQIAFBCGogABDKCAALTQEBfyMAQTBrIgEkACABQQE2AgwgAUHwjsgANgIIIAFCATcCFCABIAFBL2qtQoCAgIDQBoQ3AyAgASABQSBqNgIQIAFBCGogABDKCAALCQAgAEIBNwMACwkAIABBADYCAAsIACAAIAEQdQsKACAAQYABEPgECxIAIABChoCAgICAgICAfzcDAAvkCwIFfQZ/An1DAACAPyECAkACQAJAAkAgALwi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c3JjL3N0ci9sb3NzeS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvRG9jdW1lbnRzL05hdlZpcy9yZXBvcy9zcGFyay1jbG9jay10aW1lci9ydXN0L3NwYXJrLWxpYi9zcmMvcGx5LnJzAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI1L3NyYy9sZWdhY3kucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9pdGVyL2FkYXB0ZXJzL3N0ZXBfYnkucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWVtY2hyLTIuNy42L3NyYy9hcmNoL2FsbC90d293YXkucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pbmRleC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlL3dpbmRvdy5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy95dXYucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZmx0MmRlYy9zdHJhdGVneS9ncmlzdS5ycwBzcGFyay1ycy9zcmMvcmF5Y2FzdC5ycwBsaWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc2hhcmVkL3NtYWxsc29ydC5ycwAvcnVzdGMvMTE1OWU3OGM0NzQ3YjAyZWY5OTZlNTUwODJiNzA0YzA5Yjk3MDU4OC9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL3F1aWNrc29ydC5ycwBzcGFyay1ycy9zcmMvc29ydC5ycwAvcnVzdGMvMTE1OWU3OGM0NzQ3YjAyZWY5OTZlNTUwODJiNzA0YzA5Yjk3MDU4OC9saWJyYXJ5L2FsbG9jL3NyYy9ib3hlZC9jb252ZXJ0LnJzAGxpYnJhcnkvYWxsb2Mvc3JjL2ZtdC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9mbXQucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZGl5X2Zsb2F0LnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci9Eb2N1bWVudHMvTmF2VmlzL3JlcG9zL3NwYXJrLWNsb2NrLXRpbWVyL3J1c3Qvc3BhcmstbGliL3NyYy90c3BsYXQucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyL0RvY3VtZW50cy9OYXZWaXMvcmVwb3Mvc3BhcmstY2xvY2stdGltZXIvcnVzdC9zcGFyay1saWIvc3JjL2tzcGxhdC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvRG9jdW1lbnRzL05hdlZpcy9yZXBvcy9zcGFyay1jbG9jay10aW1lci9ydXN0L3NwYXJrLWxpYi9zcmMvYW50aXNwbGF0LnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci9Eb2N1bWVudHMvTmF2VmlzL3JlcG9zL3NwYXJrLWNsb2NrLXRpbWVyL3J1c3Qvc3BhcmstbGliL3NyYy9nc3BsYXQucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyL0RvY3VtZW50cy9OYXZWaXMvcmVwb3Mvc3BhcmstY2xvY2stdGltZXIvcnVzdC9zcGFyay1saWIvc3JjL2NzcGxhdC5ycwBzcGFyay1ycy9zcmMvZXh0X3NwbGF0cy5ycwBzcGFyay1ycy9zcmMvcGFja2VkX3NwbGF0cy5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9mZGVmbGF0ZS0wLjMuNy9zcmMvZGVjb21wcmVzcy5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzcy5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9jb3JlLTEuMC4yMjgvc3JjL2RlL2ltcGxzLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci9Eb2N1bWVudHMvTmF2VmlzL3JlcG9zL3NwYXJrLWNsb2NrLXRpbWVyL3J1c3Qvc3BhcmstbGliL3NyYy9zb2dzLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2luZmxhdGUvaW5mdHJlZXMucnMAbGlicmFyeS9zdGQvc3JjL3N5cy9zeW5jL211dGV4L25vX3RocmVhZHMucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9zdGQvc3JjL3N5cy9zeW5jL29uY2Uvbm9fdGhyZWFkcy5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9zdHIucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9pdGVyL3RyYWl0cy9pdGVyYXRvci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9lcnJvci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL2Vycm9yLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLTAuMjUuMTAvc3JjL2NvbG9yLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9nZW5lcmljL3BhY2tlZHBhaXIucnMAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9tZW1jaHIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvbG9vcF9maWx0ZXIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvaW5mbGF0ZS93cml0ZXIucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pdGVyLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2luZGV4bWFwLTIuMTMuMC9zcmMvaW5uZXIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWluaXpfb3hpZGUtMC44Ljkvc3JjL2luZmxhdGUvb3V0cHV0X2J1ZmZlci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3VuZmlsdGVyaW5nX2J1ZmZlci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9pbWFnZXMvYnVmZmVyLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvcmVhZF9kZWNvZGVyLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL3ZwOF9hcml0aG1ldGljX2RlY29kZXIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvY29kZWNzL3dlYnAvZGVjb2Rlci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvRG9jdW1lbnRzL05hdlZpcy9yZXBvcy9zcGFyay1jbG9jay10aW1lci9ydXN0L3NwYXJrLWxpYi9zcmMvZGVjb2Rlci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9kZWNvZGVyLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvcmVhZC9tYWdpY19maW5kZXIucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9jbXAucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9leHRyYV9maWVsZHMvZXh0ZW5kZWRfdGltZXN0YW1wLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLTAuMjUuMTAvc3JjL21ldGFkYXRhL2NpY3AucnMAbGlicmFyeS9zdGQvc3JjL2lvL3N0ZGlvLnJzAC9ydXN0Yy8xMTU5ZTc4YzQ3NDdiMDJlZjk5NmU1NTA4MmI3MDRjMDliOTcwNTg4L2xpYnJhcnkvY29yZS9zcmMvc3RyL3BhdHRlcm4ucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvY29tbW9uLnJzAC9ydXN0Yy8xMTU5ZTc4YzQ3NDdiMDJlZjk5NmU1NTA4MmI3MDRjMDliOTcwNTg4L2xpYnJhcnkvY29yZS9zcmMvb3BzL2Z1bmN0aW9uLnJzAGxpYnJhcnkvY29yZS9zcmMvbnVtL2ZsdDJkZWMvc3RyYXRlZ3kvZHJhZ29uLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ZkZWZsYXRlLTAuMy43L3NyYy9odWZmbWFuLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2h1ZmZtYW4ucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vYmlnbnVtLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2xvc3NsZXNzX3RyYW5zZm9ybS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3RyYW5zZm9ybS5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vYnVmZmVyZWQvbGluZXdyaXRlcnNoaW0ucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci9zdHJlYW0ucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3luYy9sYXp5X2xvY2sucnMAbGlicmFyeS9zdGQvc3JjL3N5bmMvcmVlbnRyYW50X2xvY2sucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9zdGQvc3JjL3N5bmMvb25jZV9sb2NrLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLTAuMjUuMTAvc3JjL2NvZGVjcy9wbmcucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAGxpYnJhcnkvc3RkL3NyYy9wYW5pY2tpbmcucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9pby9ib3Jyb3dlZF9idWYucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTcvc3JjL2V4dGVybnJlZi5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3RyYW5zZm9ybS9wYWxldHRlLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2luZmxhdGUucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvYWxsb2NhdGUucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWluaXpfb3hpZGUtMC44Ljkvc3JjL2luZmxhdGUvY29yZS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9pby9pbWFnZV9yZWFkZXJfdHlwZS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9zdGFibGUucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3ByaW50YWJsZS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvRG9jdW1lbnRzL05hdlZpcy9yZXBvcy9zcGFyay1jbG9jay10aW1lci9ydXN0L3NwYXJrLWxpYi9zcmMvY2h1bmtfdHJlZS5ycwBzcGFyay1ycy9zcmMvbG9kX3RyZWUucnMAc3BhcmstbGliL3NyYy9zcGxhdF9lbmNvZGUucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtMS4wLjIyOC9zcmMvcHJpdmF0ZS9kZS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL2RlLnJzAC9ydXN0Yy8xMTU5ZTc4YzQ3NDdiMDJlZjk5NmU1NTA4MmI3MDRjMDliOTcwNTg4L2xpYnJhcnkvc3RkL3NyYy9zeW5jL3BvaXNvbi9vbmNlLnJzAC9ydXN0Yy8xMTU5ZTc4YzQ3NDdiMDJlZjk5NmU1NTA4MmI3MDRjMDliOTcwNTg4L2xpYnJhcnkvYWxsb2Mvc3JjL3NsaWNlLnJzAGxpYnJhcnkvc3RkL3NyYy9iYWNrdHJhY2UucnMAL3J1c3QvZGVwcy9oYXNoYnJvd24tMC4xNS40L3NyYy9yYXcvbW9kLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2hhc2hicm93bi0wLjE2LjEvc3JjL3Jhdy9tb2QucnMAbGlicmFyeS9jb3JlL3NyYy9mbXQvbW9kLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvcGFja2VkcGFpci9tb2QucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci9tb2QucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9hbGxvYy9zcmMvY29sbGVjdGlvbnMvYmluYXJ5X2hlYXAvbW9kLnJzAC9ydXN0Yy8xMTU5ZTc4YzQ3NDdiMDJlZjk5NmU1NTA4MmI3MDRjMDliOTcwNTg4L2xpYnJhcnkvc3RkL3NyYy9pby9tb2QucnMAbGlicmFyeS9zdGQvc3JjLy4uLy4uL2JhY2t0cmFjZS9zcmMvc3ltYm9saXplL21vZC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9tb2QucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAbGlicmFyeS9zdGQvc3JjL3RocmVhZC9tb2QucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9hbGxvYy9zcmMvdmVjL21vZC5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL21vZC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvRG9jdW1lbnRzL05hdlZpcy9yZXBvcy9zcGFyay1jbG9jay10aW1lci9ydXN0L3NwYXJrLWxpYi9zcmMvdGlueV9sb2QucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyL0RvY3VtZW50cy9OYXZWaXMvcmVwb3Mvc3BhcmstY2xvY2stdGltZXIvcnVzdC9zcGFyay1saWIvc3JjL2JoYXR0X2xvZC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9jcmMzMi9icmFpZC5ycwAvcnVzdGMvMTE1OWU3OGM0NzQ3YjAyZWY5OTZlNTUwODJiNzA0YzA5Yjk3MDU4OC9saWJyYXJ5L2FsbG9jL3NyYy92ZWMvc3BlY19mcm9tX2l0ZXJfbmVzdGVkLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2V4dGVuZGVkLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci9Eb2N1bWVudHMvTmF2VmlzL3JlcG9zL3NwYXJrLWNsb2NrLXRpbWVyL3J1c3Qvc3BhcmstbGliL3NyYy9yYWQucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfanNvbi0xLjAuMTQ1L3NyYy9yZWFkLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvcmVhZC5ycwAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi4xMC9zcmMvZGxtYWxsb2MucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9zcGVjLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvemxpYi5ycwBzcGFyay1ycy9zcmMvbGliLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NvbnNvbGVfZXJyb3JfcGFuaWNfaG9vay0wLjEuNy9zcmMvbGliLnJzAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI1L3NyYy9saWIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtd2FzbS1iaW5kZ2VuLTAuNi41L3NyYy9saWIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvanMtc3lzLTAuMy45NC9zcmMvbGliLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NtYWxsdmVjLTEuMTUuMS9zcmMvbGliLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL3RleHRfbWV0YWRhdGEucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3VuaWNvZGVfZGF0YS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy92cDgucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvYWRhbTcucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9jcDQzNy5ycwBzcGFyay1saWIvc3JjL3N5bW1hdDMucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9jcmMzMi5ycwAvcnVzdC9kZXBzL3J1c3RjLWRlbWFuZ2xlLTAuMS4yNS9zcmMvdjAucnMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwBpbnZhbGlkIGNvZGUgLS0gbWlzc2luZyBlbmQtb2YtYmxvY2sAaW5jb3JyZWN0IGhl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7LIcrO4NvdTANpIv4EPG/lca7goxObPFEuYyULSh7MEX1K9RMi0kc9zHf0o3Y8aulcXqPlPl8XPoB4TkYiF1Vh0QAFMAAACbAAAAMgAAAK0WEABPAAAALwIAACYAAABKERAAbQAAAKQAAAAqAAAAShEQAG0AAAAEAQAAJQAAAJ0AAAAMAAAABAAAAJ4AAACdAAAADAAAAAQAAACfAAAAngAAAIA2EACgAAAAoQAAAKIAAACgAAAAowAAAEFFUyBlbmNyeXB0ZWQgZmlsZXMgY2Fubm90IGJlIGRlY3J5cHRlZCB3aXRob3V0IHRoZSBhZXMtY3J5cHRvIGZlYXR1cmUuVmFyaWFibGUtbGVuZ3RoIGZpZWxkIGV4dGVuZHMgYmV5b25kIGZpbGUgYm91bmRhcnlBRVMgZW5jcnlwdGlvbiB3aXRob3V0IEFFUyBleHRyYSBkYXRhIGZpZWxkQXJjaGl2ZSBoZWFkZXIgaXMgdG9vIGxhcmdlAPckEABgAAAA5gIAABkAAAD3JBAAYAAAAOoCAAATAAAAT3ZlcnNpemVkIGNlbnRyYWwgZGlyZWN0b3J5U3VwcG9ydCBmb3IgbXVsdGktZGlzayBmaWxlcyBpcyBub3QgaW1wbGVtZW50ZWR6aXA6OnNwZWM6OlppcDY0Q0RFQmxvY2sAAFBLBgZJbnZhbGlkIGRpZ2l0YWwgc2lnbmF0dXJlIGhlYWRlcgAAAIAEOBAAIAAAAHppcDo6c3BlYzo6WmlwMzJDREVCbG9ja1BLBQZ6aXA6OnNwZWM6OlppcDY0Q0RFTG9jYXRvckJsb2NrSW52YWxpZCB6aXA2NCBsb2NhdG9yIGRpZ2l0YWwgc2lnbmF0dXJlIGhlYWRlcgAAAAAAAIBrOBAALgAAAHppcDo6dHlwZXM6OlppcENlbnRyYWxFbnRyeUJsb2NrUEsBAkludmFsaWQgQ2VudHJhbCBEaXJlY3RvcnkgaGVhZGVyAAAAgMw4EAAgAAAASW52YWxpZCBFT0NENjQ6IGluY29uc2lzdGVudCBsZW5ndGhJbnZhbGlkIEVPQ0Q2NDogaW5jb25zaXN0ZW5jeSB3aXRoIExvY2F0b3IgZGF0YUludmFsaWQgRU9DRDY0OiBpbmNvbnNpc3RlbnQgbnVtYmVyIG9mIGZpbGVzQ291bGQgbm90IGZpbmQg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AAAAtwIAABEAAAA0BxAAHQAAALgCAAAwAAAANAcQAB0AAADjAgAAJgAAADQHEAAdAAAA5wIAACAAAAA0BxAAHQAAAOcCAAATAAAANAcQAB0AAADtAgAAJgAAADQHEAAdAAAA8QIAACAAAAA0BxAAHQAAAPECAAATAAAANAcQAB0AAABDAwAAQQAAADQHEAAdAAAARAMAAA0AAAA0BxAAHQAAAEUDAAANAAAANAcQAB0AAABGAwAADQAAADQHEAAdAAAATwMAAD4AAAA0BxAAHQAAAE8DAAANAAAANAcQAB0AAABYAwAAOwAAADQHEAAdAAAAWQMAAA0AAAA0BxAAHQAAAFoDAAANAAAANAcQAB0AAABbAwAADQAAADQHEAAdAAAAZAMAAD8AAAA0BxAAHQAAAGUDAAANAAAANAcQAB0AAABmAwAADQAAADQHEAAdAAAAZwMAAA0AAAA0BxAAHQAAAHADAAA9AAAANAcQAB0AAABxAwAADQAAADQHEAAdAAAAcgMAAA0AAAA0BxAAHQAAAHMDAAANAAAANAcQAB0AAAB0AwAADQAAADQHEAAdAAAAgAMAACUAAAA0BxAAHQAAAIQDAAAlAAAANAcQAB0AAACEAwAANgAAADQHEAAdAAAAhgMAAB0AAAA0BxAAHQAAAJIDAAAlAAAANAcQAB0AAACWAwAAJQAAADQHEAAdAAAAlgMAADYAAAA0BxAAHQAAAJYDAABLAAAANAcQAB0AAACWAwAAYAAAADQHEAAdAAAAmAMAAB4AAAA0BxAAHQAAAKQDAAAlAAAANAcQAB0AAACoAwAAJQAAADQHEAAdAAAAqAMAADYAAAA0BxAAHQAAAKgDAABLAAAANAcQAB0AAACoAwAAYAAAADQHEAAdAAAAqgMAAB4AAAA0BxAAHQAAALYDAAAlAAAANAcQAB0AAAC4AwAAIQAAADQHEAAdAAAAuAMAAA0AAAA0BxAAHQAAAMQDAAAlAAAANAcQAB0AAADGAwAAIQAAADQHEAAdAAAAxgMAAA0AAABleHQwZXh0MRkHEAAaAAAATAAAAFMAAAAZBxAAGgAAAE8AAABTAAAAc2gzYRkHEAAaAAAAUgAAAFUAAABzaDNiGQcQABoAAABVAAAAVQAAABkHEAAaAAAAWAAAAF4AAAAZBxAAGgAAAFsAAABeAAAAGQcQABoAAABhAAAAWQAAABkHEAAaAAAAZAAAAFwAAAAZBxAAGgAAAEoAAABnAAAAGQcQABoAAABJAAAAZwAAABkHEAAaAAAASAAAAG0AAAAZBxAAGgAAAEcAAABoAAAAGQcQABoAAABGAAAAaAAAABkHEAAaAAAAtgAAADAAAAAZBxAAGgAAALgAAAAwAAAAGQcQABoAAACfAQAANgAAABkHEAAaAAAAoAEAADYAAAAZBxAAGgAAAKUBAAAtAAAAGQcQABoAAACmAQAALQAAABkHEAAaAAAArAEAAEMAAAAZBxAAGgAAAK8BAAAzAAAAGQcQABoAAACwAQAAMwAAABkHEAAaAAAAzgEAACcAAAAZBxAAGgAAAM8BAAAnAAAAGQcQABoAAADRAQAAFQAAABkHEAAaAAAA0AEAACgAAAAZBxAAGgAAANIBAAAoAAAAGQcQABoAAADTAQAAKAAAABkHEAAaAAAA1AEAACgAAAAZBxAAGgAAAPgBAAA3AAAAGQcQABoAAAD4AQAAWAAAABkHEAAaAAAAAQIAADgAAAAZBxAAGgAAAAECAABGAAAAGQcQABoAAAAKAgAANAAAABkHEAAaAAAACgIAAFUAAAAZBxAAGgAAABwCAAA2AAAAGQcQABoAAAAcAgAAVwAAABkHEAAaAAAAJQIAADUAAAAZBxAAGgAAACUCAABWAAAAGQcQABoAAAA6AgAALAAAABkHEAAaAAAAPwIAADYAAAAZBxAAGgAAAD8CAAA/AAAAGQcQABoAAAA/AgAATAAAABkHEAAaAAAAPwIAABUAAAAZBxAAGgAAAEsCAAAyAAAAGQcQABoAAABMAgAAMgAAABkHEAAaAAAAUQIAADgAAAAZBxAAGgAAAFECAABBAAAAGQcQABoAAABRAgAATgAAABkHEAAaAAAAUQIAABUAAAAZBxAAGgAAAFQCAABCAAAAGQcQABoAAABUAgAASwAAABkHEAAaAAAAVAIAAFgAAAAZBxAAGgAAAFQCAAAZAAAAGQcQABoAAABiAgAAMgAAABkHEAAaAAAAYwIAADIAAAAZBxAAGgAAAGwCAABCAAAAGQcQABoAAABsAgAASwAAABkHEAAaAAAAbAIAAFgAAAAZBxAAGgAAAGwCAAAZAAAAGQcQABoAAABoAgAAPAAAABkHEAAaAAAAaAIAAEUAAAAZBxAAGgAAAGgCAABSAAAAGQcQABoAAABoAgAAGQAAABkHEAAaAAAAgwIAACwAAAAZBxAAGgAAAJQCAAA2AAAAGQcQABoAAACUAgAAIwAAABkHEAAaAAAAiAIAADYAAAAZBxAAGgAAAIgCAABFAAAAGQcQABoAAACIAgAAWAAAABkHEAAaAAAAiAIAABUAAAAZBxAAGgAAAKkCAAAyAAAAGQcQABoAAACqAgAAMgAAABkHEAAaAAAAvgIAADYAAAAZBxAAGgAAAL4CAAAjAAAAGQcQABoAAADAAgAAJwAAABkHEAAaAAAArwIAADgAAAAZBxAAGgAAAK8CAABHAAAAGQcQABoAAACvAgAAWgAAABkHEAAaAAAArwIAABUAAAAZBxAAGgAAALICAABCAAAAGQcQABoAAACyAgAAUQAAABkHEAAaAAAAsgIAAGQAAAAZBxAAGgAAANkCAAAuAAAAGQcQABoAAADaAgAALgAAABkHEAAaAAAA9AIAAD8AAAAZBxAAGgAAAPQCAAAmAAAAGQcQABoAAADxAgAAOQAAABkHEAAaAAAA8QIAACYAAAAZBxAAGgAAAOMCAAA+AAAAGQcQABoAAADjAgAATQAAABkHEAAaAAAA4wIAAGAAAAAZBxAAGgAAAOMCAAAVAAAAGQcQABoAAADfAgAAOAAAABkHEAAaAAAA3wIAAEcAAAAZBxAAGgAAAN8CAABaAAAAGQcQABoAAADfAgAAFQAAABkHEAAaAAAAAgMAAC4AAAAZBxAAGgAAABIDAAAyAAAAGQcQABoAAAAnAwAAKQAAABkHEAAaAAAALgMAAEsAAAAZBxAAGgAAAC4DAAAhAAAAGQcQABoAAAArAwAARQAAABkHEAAaAAAAKwMAACEAAAAZBxAAGgAAABQDAAAhAAAAGQcQABoAAAAXAwAANgAAABkHEAAaAAAAFwMAABUAAAAZBxAAGgAAABkDAABAAAAAGQcQABoAAAAEAwAAHQAAABkHEAAaAAAACAMAADYAAAAZBxAAGgAAAAgDAAAVAAAAGQcQABoAAAA7AwAAJgAAABkHEAAaAAAAPwMAACAAAAAZBxAAGgAAAD8DAAATAAAAGQcQABoAAABFAwAAJgAAABkHEAAaAAAASQMAACAAAAAZBxAAGgAAAEkDAAATAAAAGQcQABoAAACcAwAAQAAAABkHEAAaAAAAnQMAAA0AAAAZ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AQEBAgQBBQAJAQIAAgEBBAGQBAICBAEgCigGAgQIAQkGAgMuDQECAAcBBgEBUhYCBwECAQJ6BgMBAQIBBwEBSAIDAQEBAAILAjQFBQEBARcBABEGDwAMAwMABTsHCQQAAygCAAE/EUACAQIABAEHAQIAAgEEAC4CFwADCRACBx4ElAMANwQyCAEOARYFAQ8ABwERAgcBAgEFBT4hAaAOAAE9BAAF/gIAB20IAAUAAR5ggPAAQRoGGi8BCgEEAQUXAR8BwwEEBNABJAcCHgVgASoEAgICBAEBBgEBAwEBARQBUwGLCKYBJgkpACYBAQUBAisBBABWAgYACwUrAgNAwEAAAgYCJgIGAggBAQEBAQEBHwI1AQcBAQMDAQcDBAIGBA0FAwEHdAENARANZQEEAQIKAQEDBQYBAQEBAQEEAQYEAQIEBQUEAREgAwIANADlBgQDAgwmAQEFAQAuEh6EZgMEAT4CAgEBAQgVBQEDACsBDgZQAAcMBQAaBhoAUGAkBCR0CwEPAQcBAgELAQ8BBwECAAECAwEqAQkAMw0zXRYKFgBAAEAAVQFHAQICAQICAgQBDAEBAQcBQQEEAggBBwEcAQQBBQEBAwcBAAIZARkBHwEZAR8BGQEfARkBHwEZAQgACgEUBgYAPgBEABoGGgYaAABwAAcALQEBAQIBAgEBSAswFRABZQcCBgICAQQjAR4bWws6CQkBGAQBCQEDAQUrAzsJKhgBIDcBAQEECAQBAwcKAh0BOgEBAQIECAEJAQoCGgECAjkBBAIEAgIDAwEeAgMBCwI5AQQFAQIEARQCFgYBAToBAQIBBAgBBwMKAh4BOwEBAQwBCQEoAQMBNwEBAwUDAQQHAgsCHQE6AQICAQEDAwEEBwILAhwCOQIBAQIECAEJAQoCHQFIAQQBAgMBAQgBUQECBwwIYgECCQsHSQIbAQEBAQE3DgEFAQIFCwEkCQFmBAEGAQICAhkCBAMQBA0BAgIGAQ8BAAMABBwDHQIeAkACAQcIAQILCQEtAwEBdQIiAXYDBAIJAQYD2wICAToBAQcBAQEBAggGCgIBMB8xBDAKBAMmCQwCIAQCBjgBAQIDAQEFOAgCApgDAQ0BBwQBBgEDAsZAAAHDIQADjQFgIAAGaQIABAEKIAJQAgABAwEEARkCBQGXAhoSDQEmCBkLAQEsAzABAgQCAgIBJAFD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AABQAQAAUQEAAFIBAABTAQAAVAEAAFUBAABWAQAAVwEAAFgBAABZAQAAWgEAAFsBAABcAQAAXQEAAF4BAABfAQAAYAEAAGEBAABiAQAAYwEAAGQBAABlAQAAZgEAAGcBAABoAQAAaQEAAGoBAABrAQAAbAEAAG0BAABuAQAAbwEAAHABAABxAQAAcgEAAHMBAAB0AQAAdQEAAHYBAAB3AQAAeAEAAP8AAAB5AQAAegEAAHsBAAB8AQAAfQEAAH4BAACBAQAAUwIAAIIBAACDAQAAhAEAAIUBAACGAQAAVAIAAIcBAACIAQAAiQEAAFYCAACKAQAAVwIAAIsBAACMAQAAjgEAAN0BAACPAQAAWQIAAJABAABbAgAAkQEAAJIBAACTAQAAYAIAAJQBAABjAgAAlgEAAGkCAACXAQAAaAIAAJgBAACZAQAAnAEAAG8CAACdAQAAcgIAAJ8BAAB1AgAAoAEAAKEBAACiAQAAowEAAKQBAAClAQAApgEAAIACAACnAQAAqAEAAKkBAACDAgAArAEAAK0BAACuAQAAiAIAAK8BAACwAQAAsQEAAIoCAACyAQAAiwIAALMBAAC0AQAAtQEAALYBAAC3AQAAkgIAALgBAAC5AQAAvAEAAL0BAADEAQAAxgEAAMUBAADGAQAAxwEAAMkBAADIAQAAyQEAAMoBAADMAQAAywEAAMwBAADNAQAAzgEAAM8BAADQAQAA0QEAANIBAADTAQAA1AEAANUBAADWAQAA1wEAANgBAADZAQAA2gEAANsBAADcAQAA3gEAAN8BAADgAQAA4QEAAOIBAADjAQAA5AEAAOUBAADmAQAA5wEAAOgBAADpAQAA6gEAAOsBAADsAQAA7QEAAO4BAADvAQAA8QEAAPMBAADyAQAA8wEAAPQBAAD1AQAA9gEAAJUBAAD3AQAAvwEAAPgBAAD5AQAA+gEAAPsBAAD8AQAA/QEAAP4BAAD/AQAAAAIAAAECAAACAgAAAwIAAAQCAAAFAgAABgIAAAcCAAAIAgAACQIAAAoCAAALAgAADAIAAA0CAAAOAgAADwIAABACAAARAgAAEgIAABMCAAAUAgAAFQIAABYCAAAXAgAAGAIAABkCAAAaAgAAGwIAABwCAAAdAgAAHgIAAB8CAAAgAgAAngEAACICAAAjAgAAJAIAACUCAAAmAgAAJwIAACgC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AABiBQAAMwUAAGMFAAA0BQAAZAUAADUFAABlBQAANgUAAGYFAAA3BQAAZwUAADgFAABoBQAAOQUAAGkFAAA6BQAAagUAADsFAABrBQAAPAUAAGwFAAA9BQAAbQUAAD4FAABuBQAAPwUAAG8FAABABQAAcAUAAEEFAABxBQAAQgUAAHIFAABDBQAAcwUAAEQFAAB0BQAARQUAAHUFAABGBQAAdgUAAEcFAAB3BQAASAUAAHgFAABJBQAAeQUAAEoFAAB6BQAASwUAAHsFAABMBQAAfAUAAE0FAAB9BQAATgUAAH4FAABPBQAAfwUAAFAFAACABQAAUQUAAIEFAABSBQAAggUAAFMFAACDBQAAVAUAAIQFAABVBQAAhQUAAFYFAACGBQAAoBAAAAAtAAChEAAAAS0AAKIQAAACLQAAoxAAAAMtAACkEAAABC0AAKUQAAAFLQAAphAAAAYtAACnEAAABy0AAKgQAAAILQAAqRAAAAktAACqEAAACi0AAKsQAAALLQAArBAAAAwtAACtEAAADS0AAK4QAAAOLQAArxAAAA8tAACwEAAAEC0AALEQAAARLQAAshAAABItAACzEAAAEy0AALQQAAAULQAAtRAAABUtAAC2EAAAFi0AALcQAAAXLQAAuBAAABgtAAC5EAAAGS0AALoQAAAaLQAAuxAAABstAAC8EAAAHC0AAL0QAAAdLQAAvhAAAB4tAAC/EAAAHy0AAMAQAAAgLQAAwRAAACEtAADCEAAAIi0AAMMQAAAjLQAAxBAAACQtAADFEAAAJS0AAMcQAAAnLQAAzRAAAC0tAACgEwAAcKsAAKETAABxqwAAohMAAHKrAACjEwAAc6sAAKQTAAB0qwAApRMAAHWrAACmEwAAdqsAAKcTAAB3qwAAqBMAAHirAACpEwAAeasAAKoTAAB6qwAAqxMAAHurAACsEwAAfKsAAK0TAAB9qwAArhMAAH6rAACvEwAAf6sAALATAACAqwAAsRMAAIGrAACyEwAAgqsAALMTAACDqwAAtBMAAISrAAC1EwAAhasAALYTAACGqwAAtxMAAIerAAC4EwAAiKsAALkTAACJqwAAuhMAAIqrAAC7EwAAi6sAALwTAACMqwAAvRMAAI2rAAC+EwAAjqsAAL8TAACPqwAAwBMAAJCrAADBEwAAkasAAMITAACSqwAAwxMAAJOrAADEEwAAlKsAAMUTAACVqwAAxhMAAJarAADHEwAAl6sAAMgTAACYqwAAyRMAAJmrAADKEwAAmqsAAMsTAACbqwAAzBMAAJyrAADNEwAAnasAAM4TAACeqwAAzxMAAJ+rAADQEwAAoKsAANETAAChqwAA0hMAAKKrAADTEwAAo6sAANQTAACkqwAA1RMAAKWrAADWEwAApqsAANcTAACnqwAA2BMAAKirAADZEwAAqasAANoTAACqqwAA2xMAAKurAADcEwAArKsAAN0TAACtqwAA3hMAAK6rAADfEwAAr6sAAOATAACwqwAA4RMAALGrAADiEwAAsqsAAOMTAACzqwAA5BMAALSrAADlEwAAtasAAOYTAAC2qwAA5xMAALerAADoEwAAuKsAAOkTAAC5qwAA6hMAALqrAADrEwAAu6sAAOwTAAC8qwAA7RMAAL2rAADuEwAAvqsAAO8TAAC/qwAA8BMAAPgTAADxEwAA+RMAAPITAAD6EwAA8xMAAPsTAAD0EwAA/BMAAPUTAAD9EwAAiRwAAIocAACQHAAA0BAAAJEcAADREAAAkhwAANIQAACTHAAA0xAAAJQcAADUEAAAlRwAANUQAACWHAAA1hAAAJccAADXEAAAmBwAANgQAACZHAAA2RAAAJocAADaEAAAmxwAANsQAACcHAAA3BAAAJ0cAADdEAAAnhwAAN4QAACfHAAA3xAAAKAcAADgEAAAoRwAAOEQAACiHAAA4hAAAKMcAADjEAAApBwAAOQQAAClHAAA5RAAAKYcAADmEAAApxwAAOcQAACoHAAA6BAAAKkcAADpEAAAqhwAAOoQAACrHAAA6xAAAKwcAADsEAAArRwAAO0QAACuHAAA7hAAAK8cAADvEAAAsBwAAPAQAACxHAAA8RAAALIcAADyEAAAsxwAAPMQAAC0HAAA9BAAALUcAAD1EAAAthwAAPYQAAC3HAAA9xAAALgcAAD4EAAAuRwAAPkQAAC6HAAA+hAAAL0cAAD9EAAAvhwAAP4QAAC/HAAA/xAAAAAeAAABHgAAAh4AAAMeAAAEHgAABR4AAAYeAAAHHgAACB4AAAkeAAAKHgAACx4AAAweAAANHgAADh4AAA8eAAAQHgAAER4AABIeAAATHgAAFB4AABUeAAAWHgAAFx4AABgeAAAZHgAAGh4AABseAAAcHgAAHR4AAB4eAAAfHgAAIB4AACEeAAAiHgAAIx4AACQeAAAlHgAAJh4AACceAAAoHgAAKR4AACoeAAArHgAALB4AAC0eAAAuHgAALx4AADAeAAAxHgAAMh4AADMeAAA0HgAANR4AADYeAAA3HgAAOB4AADkeAAA6HgAAOx4AADweAAA9HgAAPh4AAD8eAABAHgAAQR4AAEIeAABDHgAARB4AAEUeAABGHgAARx4AAEgeAABJHgAASh4AAEseAABMHgAATR4AAE4eAABPHgAAUB4AAFEeAABSHgAAUx4AAFQeAABVHgAAVh4AAFceAABYHgAAWR4AAFoeAABbHgAAXB4AAF0eAABeHgAAXx4AAGAeAABhHgAAYh4AAGMeAABkHgAAZR4AAGYeAABnHgAAaB4AAGkeAABqHgAAax4AAGweAABtHgAAbh4AAG8eAABwHgAAcR4AAHIeAABzHgAAdB4AAHUeAAB2HgAAdx4AAHgeAAB5HgAAeh4AAHseAAB8HgAAfR4AAH4eAAB/HgAAgB4AAIEeAACCHgAAgx4AAIQeAACFHgAAhh4AAIceAACIHgAAiR4AAIoeAACLHgAAjB4AAI0eAACOHgAAjx4AAJAeAACRHgAAkh4AAJMeAACUHgAAlR4AAJ4eAADfAAAAoB4AAKEeAACiHgAAox4AAKQeAAClHgAAph4AAKceAACoHgAAqR4AAKoeAACrHgAArB4AAK0eAACuHgAArx4AALAeAACxHgAAsh4AALMeAAC0HgAAtR4AALYeAAC3HgAAuB4AALkeAAC6HgAAux4AALweAAC9HgAAvh4AAL8eAADAHgAAwR4AAMIeAADDHgAAxB4AAMUeAADGHgAAxx4AAMgeAADJHgAAyh4AAMseAADMHgAAzR4AAM4eAADPHgAA0B4AANEeAADSHgAA0x4AANQeAADVHgAA1h4AANceAADYHgAA2R4AANoeAADbHgAA3B4AAN0eAADeHgAA3x4AAOAeAADhHgAA4h4AAOMeAADkHgAA5R4AAOYeAADnHgAA6B4AAOkeAADqHgAA6x4AAOweAADtHgAA7h4AAO8eAADwHgAA8R4AAPIeAADzHgAA9B4AAPUeAAD2HgAA9x4AAPgeAAD5HgAA+h4AAPseAAD8HgAA/R4AAP4eAAD/HgAACB8AAAAfAAAJHwAAAR8AAAofAAACHwAACx8AAAMfAAAMHwAABB8AAA0fAAAFHwAADh8AAAYfAAAPHwAABx8AABgfAAAQHwAAGR8AABEfAAAaHwAAEh8AABsfAAATHwAAHB8AABQfAAAdHwAAFR8AACgfAAAgHwAAKR8AACEfAAAqHwAAIh8AACsfAAAjHwAALB8AACQfAAAtHwAAJR8AAC4fAAAmHwAALx8AACcfAAA4HwAAMB8AADkfAAAxHwAAOh8AADIfAAA7HwAAMx8AADwfAAA0HwAAPR8AADUfAAA+HwAANh8AAD8fAAA3HwAASB8AAEAfAABJHwAAQR8AAEofAABCHwAASx8AAEMfAABMHwAARB8AAE0fAABFHwAAWR8AAFEfAABbHwAAUx8AAF0fAABVHwAAXx8AAFcfAABoHwAAYB8AAGkfAABhHwAAah8AAGIfAABrHwAAYx8AAGwfAABkHwAAbR8AAGUfAABuHwAAZh8AAG8fAABnHwAAiB8AAIAfAACJHwAAgR8AAIofAACCHwAAix8AAIMfAACMHwAAhB8AAI0fAACFHwAAjh8AAIYfAACPHwAAhx8AAJgfAACQHwAAmR8AAJEfAACaHwAAkh8AAJsfAACTHwAAnB8AAJQfAACdHwAAlR8AAJ4fAACWHwAAnx8AAJcfAACoHwAAoB8AAKkfAAChHwAAqh8AAKIfAACrHwAAox8AAKwfAACkHwAArR8AAKUfAACuHwAAph8AAK8fAACnHwAAuB8AALAfAAC5HwAAsR8AALofAABwHwAAux8AAHEfAAC8HwAAsx8AAMgfAAByHwAAyR8AAHMfAADKHwAAdB8AAMsfAAB1HwAAzB8AAMMfAADYHwAA0B8AANkfAADRHwAA2h8AAHYfAADbHwAAdx8AAOgfAADgHwAA6R8AAOEfAADqHwAAeh8AAOsfAAB7HwAA7B8AAOUfAAD4HwAAeB8AAPkfAAB5HwAA+h8AAHwfAAD7HwAAfR8AAPwfAADzHwAAJiEAAMkDAAAqIQAAawAAACshAADlAAAAMiEAAE4hAABgIQAAcCEAAGEhAABxIQAAYiEAAHIhAABjIQAAcyEAAGQhAAB0IQAAZSEAAHUhAABmIQAAdiEAAGchAAB3IQAAaCEAAHghAABpIQAAeSEAAGohAAB6IQAAayEAAHshAABsIQAAfCEAAG0hAAB9IQAAbiEAAH4hAABvIQAAfyEAAIMhAACEIQAAtiQAANAkAAC3JAAA0SQAALgkAADSJAAAuSQAANMkAAC6JAAA1CQAALskAADVJAAAvCQAANYkAAC9JAAA1yQAAL4kAADYJAAAvyQAANkkAADAJAAA2iQAAMEkAADbJAAAwiQAANwkAADDJAAA3SQAAMQkAADeJAAAxSQAAN8kAADGJAAA4CQAAMckAADhJAAAyCQAAOIkAADJJAAA4yQAAMokAADkJAAAyyQAAOUkAADMJAAA5iQAAM0kAADnJAAAziQAAOgkAADPJAAA6SQAAAAsAAAwLAAAASwAADEsAAACLAAAMiwAAAMsAAAzLAAABCwAADQsAAAFLAAANSwAAAYsAAA2LAAABywAADcsAAAILAAAOCwAAAksAAA5LAAACiwAADosAAALLAAAOywAAAwsAAA8LAAADSwAAD0sAAAOLAAAPiwAAA8sAAA/LAAAECwAAEAsAAARLAAAQSwAABIsAABCLAAAEywAAEMsAAAULAAARCwAABUsAABFLAAAFiwAAEYsAAAXLAAARywAABgsAABILAAAGSwAAEksAAAaLAAASiwAABssAABLLAAAHCwAAEwsAAAdLAAATSwAAB4sAABOLAAAHywAAE8sAAAgLAAAUCwAACEsAABRLAAAIiwAAFIsAAAjLAAAUywAACQsAABULAAAJSwAAFUsAAAmLAAAViwAACcsAABXLAAAKCwAAFgsAAApLAAAWSwAACosAABaLAAAKywAAFssAAAsLAAAXCwAAC0sAABdLAAALiwAAF4sAAAvLAAAXywAAGAsAABhLAAAYiwAAGsCAABjLAAAfR0AAGQsAAB9AgAAZywAAGgsAABpLAAAaiwAAGssAABsLAAAbSwAAFECAABuLAAAcQIAAG8sAABQAgAAcCwAAFICAAByLAAAcywAAHUsAAB2LAAAfiwAAD8CAAB/LAAAQAIAAIAsAACBLAAAgiwAAIMsAACELAAAhSwAAIYsAACHLAAAiCwAAIksAACKLAAAiywAAIwsAACNLAAAjiwAAI8sAACQLAAAkSwAAJIsAACTLAAAlCwAAJUsAACWLAAAlywAAJgsAACZLAAAmiwAAJssAACcLAAAnSwAAJ4sAACfLAAAoCwAAKEsAACiLAAAoywAAKQsAAClLAAApiwAAKcsAACoLAAAqSwAAKosAACrLAAArCwAAK0sAACuLAAArywAALAsAACxLAAAsiwAALMsAAC0LAAAtSwAALYsAAC3LAAAuCwAALksAAC6LAAAuywAALwsAAC9LAAAviwAAL8sAADALAAAwSwAAMIsAADDLAAAxCwAAMUsAADGLAAAxywAAMgsAADJLAAAyiwAAMssAADMLAAAzSwAAM4sAADPLAAA0CwAANEsAADSLAAA0ywAANQsAADVLAAA1iwAANcsAADYLAAA2SwAANosAADbLAAA3CwAAN0sAADeLAAA3ywAAOAsAADhLAAA4iwAAOMsAADrLAAA7CwAAO0sAADuLAAA8iwAAPMsAABApgAAQaYAAEKmAABDpgAARKYAAEWmAABGpgAAR6YAAEimAABJpgAASqYAAEumAABMpgAATaYAAE6mAABPpgAAUKYAAFGmAABSpgAAU6YAAFSmAABVpgAAVqYAAFemAABYpgAAWaYAAFqmAABbpgAAXKYAAF2mAABepgAAX6YAAGCmAABhpgAAYqYAAGOmAABkpgAAZaYAAGamAABnpgAAaKYAAGmmAABqpgAAa6YAAGymAABtpgAAgKYAAIGmAACCpgAAg6YAAISmAACFpgAAhqYAAIemAACIpgAAiaYAAIqmAACLpgAAjKYAAI2mAACOpgAAj6YAAJCmAACRpgAAkqYAAJOmAACUpgAAlaYAAJamAACXpgAAmKYAAJmmAACapgAAm6YAACKnAAAjpwAAJKcAACWnAAAmpwAAJ6cAACinAAAppwAAKqcAACunAAAspwAALacAAC6nAAAvpwAAMqcAADOnAAA0pwAANacAADanAAA3pwAAOKcAADmnAAA6pwAAO6cAADynAAA9pwAAPqcAAD+nAABApwAAQacAAEKnAABDpwAARKcAAEWnAABGpwAAR6cAAEinAABJpwAASqcAAEunAABMpwAATacAAE6nAABPpwAAUKcAAFGnAABSpwAAU6cAAFSnAABVpwAAVqcAAFenAABYpwAAWacAAFqnAABbpwAAXKcAAF2nAABepwAAX6cAAGCnAABhpwAAYqcAAGOnAABkpwAAZacAAGanAABnpwAAaKcAAGmnAABqpwAAa6cAAGynAABtpwAAbqcAAG+nAAB5pwAAeqcAAHunAAB8pwAAfacAAHkdAAB+pwAAf6cAAICnAACBpwAAgqcAAIOnAACEpwAAhacAAIan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AAAAgQAAAIEBAACBAgAAgQMAAIEEAACBBQAAgQYAAIEHAACBCAAAgQkAAIEKAACBCwAAgQwAAIENAACBDgAAgQ8AAIEQAACBEQAAgRIAAIETAACBFAAAgRUAAIEWAACBFwAAgRgAAIEZAACBGgAAgRsAAIEcAACBHQAAgR4AAIEfAACBIAAAgSEAAIEiAACBIwAAgSQAAIElAACBJgAAgScAAIEoAACBKQAAgSoAAIErAACBLAAAgS0AAIEuAACBLwAAgTAAAIExAACBMgAAgTMAAIE0AACBNQAAgTYAAIE3AACBOAAAgTkAAIE6AACBOwAAgTwAAIE9AACBPgAAgT8AAIFAAACBQQAAgUIAAIFDAACBRAAAgUUAAIFGAACBRwAAgUgAAIFJAACBSgAAgUsAAIFMAACBTQAAgU4AAIFPAACBUAAAgVEAAIFSAACBUwAAgVQAAIFVAACBVgAAgVcAAIFYAACBWQAAgVoAAIFbAACBXAAAgV0AAIFeAACBXwAAgWAAAIFhAACBYgAAgWMAAIFkAACBZQAAgWYAAIFnAACBaAAAgWkAAIFqAACBawAAgWwAAIFtAACBbgAAgW8AAIFwAACBcQAAgXIAAIFzAACBdAAAgXUAAIF2AACBdwAAgXgAAIF5AACBegAAgXsAAIF8AACBfQAAgX4AAIF/AACBgAAAgYEAAIGCAACBgwAAgYQAAIGFAACBhgAAgYcAAIGIAACBiQAAgYoAAIGLAACBjAAAgY0AAIGOAACBjwAAgZAAAIGRAACBkgAAgZMAAIGUAACBlQAAgZYAAIGXAACBmAAAgZkAAIGaAACBmwAAgZwAAIGdAACBngAAgZ8AAIGgAACBoQAAgaIAAIGjAACBpAAAgaUAAIGmAACBpwAAgagAAIGpAACBqgAAgasAAIGsAACBrQAAga4AAIGvAACBsAAAgbEAAIGyAACBswAAgbQAAIG1AACBtgAAgbcAAIG4AACBuQAAgboAAIG7AACBvAAAgb0AAIG+AACBvwAAgcAAAIHBAACBwgAAgcMAAIHEAACBxQAAgcYAAIHHAACByAAAgckAAIHKAACBywAAgcwAAIHNAACBzgAAgc8AAIHQAACB0QAAgdIAAIHTAACB1AAAgdUAAIHWAACB1wAAgdgAAIHZAACB2gAAgdsAAIHcAACB3QAAgd4AAIHfAACB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AGoAAAAlAAAAKAAAAEhhc2ggdGFibGUgY2FwYWNpdHkgb3ZlcmZsb3eYHhEAHAAAABIeEAAqAAAAJQAAACgAAACkFBAAagAAALYAAAAUAAAApAAAAAwAAAAEAAAAoAEAAKEBAACiAQBB/L3EAAvlGQEAAACoAAAAAAAAAAQAAAAEAAAARwAAAJP0KqYkdcJruBMj36YIMbHK3Z7guRk0Y3X0d+GGnSFzAAAAAAQAAAAEAAAAowEAAAAAAAAEAAAABAAAAKQBAAAAAAAABAAAAAQAAACkAQAAAAAAAAQAAAAEAAAAsQAAAAAAAAAEAAAABAAAALIAAAAAAAAABAAAAAQAAAClAQAAaW5uZXIAAAAAAAAABAAAAAQAAACmAQAASW1hZ2VCdWZmZXJTaXplYWN0dWFsUG9sbGVkQWZ0ZXJFbmRPZkltYWdlUG9sbGVkQWZ0ZXJGYXRhbEVycm9yRXJyAAAAAAAABAAAAAQAAACnAQAARm9ybWF0RXJyb3JSaWZmU2lnbmF0dXJlSW52YWxpZFdlYnBTaWduYXR1cmVJbnZhbGlkQ2h1bmtNaXNzaW5nQ2h1bmtIZWFkZXJJbnZhbGlkUmVzZXJ2ZWRCaXRTZXRJbnZhbGlkQWxwaGFQcmVwcm9jZXNzaW5nSW52YWxpZENvbXByZXNzaW9uTWV0aG9kQWxwaGFDaHVua1NpemVNaXNtYXRjaEltYWdlVG9vTGFyZ2VGcmFtZU91dHNpZGVJbWFnZUxvc3NsZXNzU2lnbmF0dXJlSW52YWxpZFZlcnNpb25OdW1iZXJJbnZhbGlkSW52YWxpZENvbG9yQ2FjaGVCaXRzSHVmZm1hbkVycm9yQml0U3RyZWFtRXJyb3JUcmFuc2Zvcm1FcnJvclZwOE1hZ2ljSW52YWxpZE5vdEVub3VnaEluaXREYXRhQ29sb3JTcGFjZUludmFsaWRMdW1hUHJlZGljdGlvbk1vZGVJbnZhbGlkSW50cmFQcmVkaWN0aW9uTW9kZUludmFsaWRDaHJvbWFQcmVkaWN0aW9uTW9kZUludmFsaWRJbmNvbnNpc3RlbnRJbWFnZVNpemVzVW5zdXBwb3J0ZWRGZWF0dXJlSW52YWxpZFBhcmFtZXRlck1lbW9yeUxpbWl0RXhjZWVkZWRJbnZhbGlkQ2h1bmtTaXplTm9Nb3JlRnJhbWVzSW52YWxpZERpbWVuc2lvbnMAAAAABAAAAAQAAACoAQAAVHJ5UmVzZXJ2ZUVycm9yTGltaXRzRXhjZWVkZWQAAACrAAAACAAAAAQAAAAtAAAAqwAAAAgAAAAEAAAArAAAAC0AAABUIhEArQAAAK4AAACvAAAAsAAAAKMAAABVbnJlcHJlc2VudGFibGVJbnZhbGlkS2V5d29yZFNpemVNaXNzaW5nTnVsbFNlcGFyYXRvckluZmxhdGlvbkVycm9yT3V0T2ZEZWNvbXByZXNzaW9uU3BhY2VJbnZhbGlkQ29tcHJlc3Npb25GbGFnTWlzc2luZ0NvbXByZXNzaW9uRmxhZwAAAAAAAAQAAAAEAAAAsQAAAAAAAAAEAAAABAAAAGcAAABDcmNNaXNtYXRjaGNyY192YWxjcmNfc3VtSW52YWxpZFNpZ25hdHVyZU1pc3NpbmdGY3RsTWlzc2luZ0ltYWdlRGF0YUNodW5rQmVmb3JlSWhkckFmdGVySWRhdEJlZm9yZVBsdGVBZnRlclBsdGVPdXRzaWRlUGx0ZUlkYXREdXBsaWNhdGVDaHVua0FwbmdPcmRlcnByZXNlbnRTaG9ydFBhbGV0dGVsZW4AAAAAAAEAAAABAAAAqQEAAEludmFsaWRTYml0Q2h1bmtTaXplY29sb3JfdHlwZQAAAAAAAAEAAAABAAAAqgEAAEludmFsaWRTYml0c2FtcGxlX2RlcHRoc2JpdFBhbGV0dGVSZXF1aXJlZAAAAAAAAAQAAAAEAAAAqwEAAEludmFsaWRDb2xvckJpdERlcHRoYml0X2RlcHRoQ29sb3JXaXRoQmFkVHJuc0ludmFsaWRCaXREZXB0aEludmFsaWRDb2xvclR5cGVJbnZhbGlkRGlzcG9zZU9wSW52YWxpZEJsZW5kT3BJbnZhbGlkVW5pdEludmFsaWRTcmdiUmVuZGVyaW5nSW50ZW50VW5rbm93bkNvbXByZXNzaW9uTWV0aG9kVW5rbm93bkZpbHRlck1ldGhvZFVua25vd25JbnRlcmxhY2VNZXRob2RCYWRTdWJGcmFtZUJvdW5kcwAAAAAAAAAEAAAABAAAAKwBAABDb3JydXB0RmxhdGVTdHJlYW1lcnJOb01vcmVJbWFnZURhdGFCYWRUZXh0RW5jb2RpbmdGZGF0U2hvcnRlclRoYW5Gb3VyQnl0ZXNVbmV4cGVjdGVkUmVzdGFydE9mRGF0YUNodW5rU2VxdWVuY2VDaHVua0xlbmd0aFdyb25nVW5yZWNvZ25pemVkQ3JpdGljYWxDaHVua3R5cGVfc3RyQmFkR2FtbWFWYWx1ZQAAAAAAAAAIAAAABAAAAK0BAABBbGxvY0Vycm9ybm9uX2V4aGF1c3RpdmVUaGUgZW5jb2RlciBvciBkZWNvZGVyIGZvciAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgY29sb3IgdHlwZSBgAAAALCYRABsAAABHJhEAIgAAAP/EEQABAAAAQ29udmVydGluZyB3aXRoIHRoZSB0ZXhlbCBtZW1vcnkgbGF5b3V0ICBpcyBub3Qgc3VwcG9ydGVkAAAAhCYRACgAAACsJhEAEQAAAFRoZSBjb2xvcmltZXRyaWMgaW50ZXJwcmV0YXRpb24gb2YgYSBDSUNQIGNvbG9yIHNwYWNlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGDQJhEATAAAAP/EEQABAAAAVGhlIGZpbGUgZXh0ZW5zaW9uICB3YXMgbm90IHJlY29nbml6ZWQgYXMgYW4gaW1hZ2UgZm9ybWF0AAAALCcRABMAAAA/JxEAJgAAAFRoZSBpbWFnZSBmb3JtYXQgY291bGQgbm90IGJlIGRldGVybWluZWRUaGUgaW1hZ2UgZm9ybWF0IAAAAKAnEQARAAAArCYRABEAAABUaGUgZGVjb2RlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmb3JtYXQgZmVhdHVyZSDEJxEAMAAAAFRoZSBkZWNvZGVyIGZvciAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZm9ybWF0IGZlYXR1cmVzIAAA/CcRABAAAAAMKBEAJgAAAFRoZSBJbWFnZSdzIGRpbWVuc2lvbnMgYXJlIGVpdGhlciB0b28gc21hbGwgb3IgdG9vIGxhcmdlVGhlIGVuZCB0aGUgaW1hZ2Ugc3RyZWFtIGhhcyBiZWVuIHJlYWNoZWQgZHVlIHRvIGEgcHJldmlvdXMgZXJyb3JUaGUgQ0lDUCAgY2FuIG5vdCBiZSB1c2VkIGZvciBSR0IgaW1hZ2VzAAAAvSgRAAkAAADGKBEAHwAAAFRoZSBwYXJhbWV0ZXIgaXMgbWFsZm9ybWVkOiD4KBEA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bGFnIGludmFsaWRJbnZhbGlkIGNvbXByZXNzaW9uIG1ldGhvZEFscGhhIGNodW5rIHNpemUgbWlzbWF0Y2hJbWFnZSB0b28gbGFyZ2VGcmFtZSBvdXRzaWRlIGltYWdlSW52YWxpZCBsb3NzbGVzcyBzaWduYXR1cmU6IJg+EQAcAAAASW52YWxpZCBsb3NzbGVzcyB2ZXJzaW9uIG51bWJlcjogAAAAvD4RACEAAABJbnZhbGlkIGNvbG9yIGNhY2hlIGJpdHM6IAAA6D4RABoAAABJbnZhbGlkIEh1ZmZtYW4gY29kZUNvcnJ1cHQgYml0c3RyZWFtSW52YWxpZCB0cmFuc2Zvcm1JbnZhbGlkIFZQOCBtYWdpYzogAAAAQj8RABMAAABOb3QgZW5vdWdoIFZQOCBpbml0IGRhdGFJbnZhbGlkIFZQOCBjb2xvciBzcGFjZTogAAAAeD8RABkAAABJbnZhbGlkIFZQOCBsdW1hIHByZWRpY3Rpb24gbW9kZTogAACcPxEAIgAAAEludmFsaWQgVlA4IGludHJhIHByZWRpY3Rpb24gbW9kZTogAMg/EQAjAAAASW52YWxpZCBWUDggY2hyb21hIHByZWRpY3Rpb24gbW9kZTog9D8RACQAAABJbmNvbnNpc3RlbnQgaW1hZ2Ugc2l6ZXNVbnN1cHBvcnRlZCBmZWF0dXJlOiAAAAA4QBEAFQAAAEludmFsaWQgcGFyYW1ldGVyOiAAWEARABMAAABNZW1vcnkgbGltaXQgZXhjZWVkZWRJbnZhbGlkIGNodW5rIHNpemVObyBtb3JlIGZyYW1lc2Nsb3N1cmUgaW52b2tlZCByZWN1cnNpdmVseSBvciBhZnRlciBiZWluZyBkcm9wcGVkAHInEABjAAAAhTUAAAEAAAA3NDMyMTAvLi1n8kJD5SwrKikoJyYlJCMiITggHx4dHP+UpJWIoJut3d6GeujK1+DQ3My7t7OxqLLI4sOauK5+eL+dwqq9oqGWwY6Jq7C5p7pwr8C8nIyPe4WAk4qSct+X+dju7P3j2ub3h7Tx6fb054v18/vrycTw1pi2zbV/G9TT0tXkxamfg6xpUGJgYVHPkXRzkIKZeWuEbW58b1Jsdo1xgXd9pXVcalNIY11BT6bto8e+4dHLxtnbzur4nu//////////////////////////////////////////////////////////////////////////////////////1wEQAG4AAADZAQAAHQAAANcBEABuAAAA2gEAABkAAADXARAAbgAAADECAAAbAAAA1wEQAG4AAAAyAgAAHQAAAEYCEABPAAAAYQMAADIAAAB5GhAAcAAAABECAAAoAAAAeRoQAHAAAACGAgAAHQAAAAAAAIAAQADAACAAoABgAOAAEACQAFAA0AAwALAAcADwAAgAiABIAMgAKACoAGgA6AAYAJgAWADYADgAuAB4APgABACEAEQAxAAkAKQAZADkABQAlABUANQANAC0AHQA9AAMAIwATADMACwArABsAOwAHACcAFwA3AA8ALwAfAD8AAIAggBCAMIAIgCiAGIA4gASAJIAUgDSADIAsgByAPIACgCKAEoAygAqAKoAagDqABoAmgBaANoAOgC6AHoA+gAGAIYARgDGACYApgBmAOYAFgCWAFYA1gA2ALYAdgD2AA4AjgBOAM4ALgCuAG4A7gAeAJ4AXgDeAD4AvgB+AP4AAQCBAEEAwQAhAKEAYQDhABEAkQBRANEAMQCxAHEA8QAJAIkASQDJACkAqQBpAOkAGQCZAFkA2QA5ALkAeQD5AAUAhQBFAMUAJQClAGUA5QAVAJUAVQDVADUAtQB1APUADQCNAE0AzQAtAK0AbQDtAB0AnQBdAN0APQC9AH0A/QADAIMAQwDDACMAowBjAOMAEwCTAFMA0wAzALMAcwDzAAsAiwBLAMsAKwCrAGsA6wAbAJsAWwDbADsAuwB7APsABwCHAEcAxwAnAKcAZwDnABcAlwBXANcANwC3AHcA9wAPAI8ATwDPAC8ArwBvAO8AHwCfAF8A3wA/AL8AfwD/gACAgIBAgMCAIICggGCA4IAQgJCAUIDQgDCAsIBwgPCACICIgEiAyIAogKiAaIDogBiAmIBYgNiAOIC4gHiA+IAEgISARIDEgCSApIBkgOSAFICUgFSA1IA0gLSAdID0gAyAjIBMgMyALICsgGyA7IAcgJyAXIDcgDyAvIB8gPyAAoCCgEKAwoAigKKAYoDigBKAkoBSgNKAMoCygHKA8oAKgIqASoDKgCqAqoBqgOqAGoCagFqA2oA6gLqAeoD6gAaAhoBGgMaAJoCmgGaA5oAWgJaAVoDWgDaAtoB2gPaADoCO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AAAlAAAANykQAGIAAACPAQAAFAAAADcpEABiAAAAlwEAAEIAAAA3KRAAYgAAAJgBAAAfAAAANykQAGIAAACYAQAAFAAAAENodW5rVHlwZQAAAAAAAAAEAAAAAQAAAMABAAAAAAAAAQAAAAEAAADBAQAAY3JpdGljYWxwcml2YXRlcmVzZXJ2ZWRzYWZlY29weQBWExAAYwAAAEIAAAAdAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogTm90IGEgcG9zc2libGUgYnl0ZSByb3VuZGVkIHBpeGVsIHdpZHRoAAAA7EwRAFEAAABWExAAYwAAAFEDAAASAAAAd3JvbmcgZGF0YSBzaXplLCBleHBlY3RlZCAgZ290IABYTREAGgAAAHJNEQAFAAAARW5kIG9mIGltYWdlIGhhcyBiZWVuIHJlYWNoZWRBIGZhdGFsIGRlY29kaW5nIGVycm9yIGhhcyBiZWVuIGVuY291bnRlZCBlYXJsaWVybGltaXRzIGFyZSBleGNlZWRlZENSQyBlcnJvcjogZXhwZWN0ZWQgMHggaGF2ZSAweCB3aGlsZSBkZWNvZGluZyAgY2h1bmsuAADpTREAFgAAAP9NEQAIAAAAB04RABAAAAAXThEABwAAAEludmFsaWQgUE5HIHNpZ25hdHVyZS5mY1RMIGNodW5rIG1pc3NpbmcgYmVmb3JlIGZkQVQgY2h1bmsuSURBVCBvciBmZEFUIGNodW5rIGlzIG1pc3NpbmcuIGNodW5rIGFwcGVhcmVkIGJlZm9yZSBJSERSIGNodW5rAAABAAAAAAAAAJlOEQAhAAAAQ2h1bmsgIGlzIGludmFsaWQgYWZ0ZXIgSURBVCBjaHVuay4AzE4RAAYAAADSThEAHQAAACBpcyBpbnZhbGlkIGJlZm9yZSBQTFRFIGNodW5rLgAAzE4RAAYAAAAATxEAHgAAACBpcyBpbnZhbGlkIGFmdGVyIFBMVEUgY2h1bmsuAAAAzE4RAAYAAAAwTxEAHQAAACBtdXN0IGFwcGVhciBiZXR3ZWVuIFBMVEUgYW5kIElEQVQgY2h1bmtzLgAAzE4RAAYAAABgTxEAKgAAACBtdXN0IGFwcGVhciBhdCBtb3N0IG9uY2UuAADMThEABgAAAJxPEQAaAAAAU2VxdWVuY2UgaXMgbm90IGluIG9yZGVyLCBleHBlY3RlZCAjIGdvdCAjAADITxEAJAAAAOxPEQAGAAAAoF0RAAEAAABOb3QgZW5vdWdoIHBhbGV0dGUgZW50cmllcywgZXhwZWN0IAAMUBEAIwAAAHJNEQAFAAAAoF0RAAEAAABUaGUgc2l6ZSBvZiB0aGUgc0JJVCBjaHVuayBzaG91bGQgYmUgIGJ5dGUocyksIGJ1dCAgYnl0ZShzKSB3ZXJlIHByb3ZpZGVkIGZvciB0aGUgIGNvbG9yIHR5cGUuAABIUBEAJQAAAG1QEQAOAAAAe1ARAB8AAACaUBEADAAAAEludmFsaWQgc0JJVCB2YWx1ZSAuIEl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8gYW5kIGxlc3MgdGhhbiB0aGUgc2FtcGxlIGRlcHRoIAAAAMhQEQATAAAA21ARAD4AAACgXREAAQAAAE1pc3NpbmcgcGFsZXR0ZSBvZiBpbmRleGVkIGltYWdlLkludmFsaWQgY29sb3IvZGVwdGggY29tYmluYXRpb24gaW4gaGVhZGVyOiAvAAAAVVERACsAAACAUREAAQAAAFRyYW5zcGFyZW5jeSBjaHVuayBmb3VuZCBmb3IgY29sb3IgdHlwZSCUUREAKAAAAKBdEQABAAAASW52YWxpZCBpbWFnZSBkaW1lbnNpb25zSW52YWxpZCBiaXQgZGVwdGggAADkUREAEgAAAKBdEQABAAAASW52YWxpZCBjb2xvciB0eXBlIAAIUhEAEwAAAKBdEQABAAAASW52YWxpZCBkaXNwb3NlIG9wIAAsUhEAEwAAAKBdEQABAAAASW52YWxpZCBibGVuZCBvcCAAAABQUhEAEQAAAKBdEQABAAAASW52YWxpZCBwaHlzaWNhbCBwaXhlbCBzaXplIHVuaXQgAAAAdFIRACEAAACgXREAAQAAAEludmFsaWQgc1JHQiByZW5kZXJpbmcgaW50ZW50IAAAqFIRAB4AAACgXREAAQAAAFVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIADYUhEAGwAAAKBdEQABAAAAVW5rbm93biBmaWx0ZXIgbWV0aG9kIAAABFMRABYAAACgXREAAQAAAFVua25vd24gaW50ZXJsYWNlIG1ldGhvZCAAAAAsUxEAGQAAAKBdEQABAAAAU3ViIGZyYW1lIGlzIG91dC1vZi1ib3VuZHMuQ29ycnVwdCBkZWZsYXRlIHN0cmVhbS4gSURBVCBvciBmREFUIGNodW5rIGRvZXMgbm90IGhhdmUgZW5vdWdoIGRhdGEgZm9yIGltYWdlLlVucmVwcmVzZW50YWJsZSBkYXRhIGluIHRFWHQgY2h1bmsuAAAAwlMRACMAAABLZXl3b3JkIGVtcHR5IG9yIGxvbmdlciB0aGFuIDc5IGJ5dGVzLgAA8FMRACYAAABObyBudWxsIHNlcGFyYXRvciBpbiB0RVh0IGNodW5rLiBUEQAgAAAASW52YWxpZCBjb21wcmVzc2VkIHRleHQgZGF0YS4AAABIVBEAHQAAAE91dCBvZiBkZWNvbXByZXNzaW9uIHNwYWNlLiBUcnkgd2l0aCBhIGxhcmdlciBsaW1pdC5wVBEANAAAAFVzaW5nIGFuIHVucmVjb2duaXplZCBieXRlIGFzIGNvbXByZXNzaW9uIG1ldGhvZC4AAACsVBEAMQAAAFVzaW5nIGEgZmxhZyB0aGF0IGlzIG5vdCAwIG9yIDI1NSBhcyBhIGNvbXByZXNzaW9uIGZsYWcgZm9yIGlUWHQgY2h1bmsuAOhUEQBHAAAATm8gY29tcHJlc3Npb24gZmxhZyBpbiB0aGUgaVRYdCBjaHVuay4AADhVEQAmAAAAZmRBVCBjaHVuayBzaG9ydGVyIHRoYW4gNCBieXRlc1VuZXhwZWN0ZWQgcmVzdGFydCBvZiAgY2h1bmsgc2VxdWVuY2WHVREAFgAAAJ1VEQAPAAAAQ2h1bmsgbGVuZ3RoIHdyb25nOiC8VREAFAAAAFVucmVjb2duaXplZCBjcml0aWNhbCBjaHVuazogAAAA2FURAB0AAABCYWQgZ2FtbWEgdmFsdWUuQRYQAGsAAAC4AgAAPAAAAEEWEABrAAAAugIAAB8AAABBFhAAawAAAM4CAAAnAAAAQRYQAGsAAADjAgAAHgAAAEEWEABrAAAAGAMAACcAAABBFhAAawAAADMDAAA3AAAAQRYQAGsAAAAnBAAAKgAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IFVucmVjb2duaXplZCBjaHVuayAgc2hvdWxkIGhhdmUgYmVlbiBjYXVnaHQg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AAAAAAAIAAAABAAAANkBAADaAQAA2wEAAHVuaXRhIGJvb2xlYW5hIHN0cmluZ2J5dGUgYXJyYXlib29sZWFuIGAvjBEACQAAAP/EEQABAAAAaW50ZWdlciBgAAAASIwRAAkAAAD/xBEAAQAAAGNoYXJhY3RlciBgAGSMEQALAAAA/8QRAAEAAABzdHJpbmcgAICMEQAHAAAAdW5pdCB2YWx1ZU9wdGlvbiB2YWx1ZW5ld3R5cGUgc3RydWN0c2VxdWVuY2VtYXBlbnVtdW5pdCB2YXJpYW50bmV3dHlwZSB2YXJpYW50dHVwbGUgdmFyaWFudHN0cnVjdCB2YXJpYW50AAAA9CAQAGsAAAAkCQAAEgAAAP/EEQABAAAA/8QRAAEAAABgIG9yIGAAAP/EEQABAAAAHI0RAAYAAAD/xBEAAQAAAG9uZSBvZiAsIC4wdTh1MzJ1NjR1c2l6ZWYzMmluZi1pbmZOYU4AAACkAAAADAAAAAQAAACTAQAAlAEAANwBAEGEm8YAC80YAQAAAKgAAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5AAMYEABLAAAADwsAAA4AAAAGExAATwAAADwGAAAUAAAABhMQAE8AAAA8BgAAIQAAAAYTEABPAAAAMAYAABQAAAAGExAATwAAADAGAAAhAAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi5pc19jaGFyX2JvdW5kYXJ5KG5ld19sZW4pBhMQAE8AAAC9BAAAJAAAAEVPRiB3aGlsZSBwYXJzaW5nIGEgbGlzdEVPRiB3aGlsZSBwYXJzaW5nIGFuIG9iamVjdEVPRiB3aGlsZSBwYXJzaW5nIGEgc3RyaW5nRU9GIHdoaWxlIHBhcnNpbmcgYSB2YWx1ZWV4cGVjdGVkIGA6YGV4cGVjdGVkIGAsYCBvciBgXWBleHBlY3RlZCBgLGAgb3IgYH1gZXhwZWN0ZWQgaWRlbnRleHBlY3RlZCB2YWx1ZWV4cGVjdGVkIGAiYGludmFsaWQgZXNjYXBlaW52YWxpZCBudW1iZXJudW1iZXIgb3V0IG9mIHJhbmdlaW52YWxpZCB1bmljb2RlIGNvZGUgcG9pbnRjb250cm9sIGNoYXJhY3RlciAoXHUwMDAwLVx1MDAxRikgZm91bmQgd2hpbGUgcGFyc2luZyBhIHN0cmluZ2tleSBtdXN0IGJlIGEgc3RyaW5naW52YWxpZCB2YWx1ZTogZXhwZWN0ZWQga2V5IHRvIGJlIGEgbnVtYmVyIGluIHF1b3Rlc2Zsb2F0IGtleSBtdXN0IGJlIGZpbml0ZSAoZ290IE5hTiBvciArLy1pbmYpbG9uZSBsZWFkaW5nIHN1cnJvZ2F0ZSBpbiBoZXggZXNjYXBldHJhaWxpbmcgY29tbWF0cmFpbGluZyBjaGFyYWN0ZXJzdW5leHBlY3RlZCBlbmQgb2YgaGV4IGVzY2FwZXJlY3Vyc2lvbiBsaW1pdCBleGNlZWRlZCBhdCBsaW5lICBjb2x1bW4gAAAAAQAAAAAAAACIkBEACQAAAJGQEQAIAAAARXJyb3IoLCBsaW5lOiAsIGNvbHVtbjogtJARAAYAAAC6kBEACAAAAMKQEQAKAAAAphASAAEAAABpbnZhbGlkIHZhbHVlOiAA7JARAA8AAAAfxREACwAAAGZsb2F0aW5nIHBvaW50IGAMkREAEAAAAP/EEQABAAAAbnVsbMQKEABqAAAA9wEAACEAAADEChAAagAAAPsBAAAMAAAAxAoQAGoAAAACAgAAIQAAAMQKEABqAAAACwIAACoAAADEChAAagAAAA8CAAAsAAAAxAoQAGoAAAAUAgAACQAAAI0kEABpAAAApgEAAEUAAACNJBAAaQAAAKsBAAA9AAAAjSQQAGkAAACzAQAAGgAAAI0kEABpAAAAAAIAABMAAACNJBAAaQAAAAUCAAAzAAAAjSQQAGkAAAAJAgAAPgAAAI0kEABpAAAADwIAADoAAACNJBAAaQAAAFwCAAATAAAAjSQQAGkAAABuAgAAGQAAAI0kEABpAAAAcgMAABkAAACNJBAAaQAAAHMDAAAaAAAAjSQQAGkAAAB0AwAAGQAAAI0kEABpAAAAdQMAABkAAACNJBAAaQAAAHYDAAAZAAAAjSQQAGkAAAB3AwAAGQAAAI0kEABpAAAAeAMAABkAAACNJBAAaQAAAHkDAAAZAAAAjSQQAGkAAADUAwAAEQAAAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAQACAAMABAAFAAYABwAIAAkA//////////////////8KAAsADAANAA4ADwD/////////////////////////////////////////////////////////////////////CgALAAwADQAOAA8A////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAQACAAMABAAFAAYABwAIAAkAD//////////////////6AAsADAANAA4ADwAP////////////////////////////////////////////////////////////////////+gALAAwADQAOAA8AD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9pbnZhbGlkIHR5cGU6IAAAsJYRAA4AAAAfxREACwAAACBjYW4ndCBiZSByZXByZXNlbnRlZCBhcyBhIEphdmFTY3JpcHQgbnVtYmVyAQAAAAAAAADQlhEALAAAAAMnEABuAAAANQAAAA4AAAALDRAATgAAACMIAAARAAAADhAQAHMAAAA5AAAACQAAANAoEABmAAAApQYAAEsAAADQKBAAZgAAAKsGAABLAAAA0CgQAGYAAACrBgAAMQAAANAoEABmAAAApQYAADEAAADQKBAAZgAAAJkGAABJAAAA0CgQAGYAAACZBgAAMQAAANAoEABmAAAA1gYAAEsAAADQKBAAZgAAAN0GAABLAAAA0CgQAGYAAADdBgAAMQAAANAoEABmAAAA1gYAADEAAADQKBAAZgAAAMkGAABNAAAA0CgQAGYAAADJBgAANQAAANAoEABmAAAAuwYAAE0AAADQKBAAZgAAALsGAAA1AAAA0CgQAGYAAACNBgAASQAAANAoEABmAAAAjQYAADEAAADQKBAAZgAAAMUHAAAqAAAA0CgQAGYAAACiBwAAFQAAANAoEABmAAAArAcAACEAAADQKBAAZgAAALoHAAAiAAAA0CgQAGYAAACxBwAAIQAAANAoEABmAAAABwQAAB0AAADQKBAAZgAAABoEAAAaAAAA0CgQAGYAAAAbBAAAMQAAANAoEABmAAAAHAQAAAkAAADQKBAAZgAAABIEAAAtAAAA0CgQAGYAAAATBAAAEQAAAKsAAAAIAAAABAAAAKwAAABSZWFkaW5nIGZyb20gJlt1OF0gY2FuJ3QgZmFpbCBhbmQgdGhlIGNodW5rIGlzIGNvbXBsZXRlANAoEABmAAAADQQAABYAAABhc3NlcnRpb24gZmFpbGVkOiBjb21wbGV4aXR5IDw9IDIAAADQKBAAZgAAANMFAAAJAAAA0CgQAGYAAADXBQAAHAAAAAABAgMGBAUGBgYGBgYGBgfQKBAAZgAAAOEFAAAZAAAAdW5rbm93biB0b2tlbjogAKiZEQAPAAAA0CgQAGYAAAADBgAAFgAAAJ8AQdyzxgALAqWRAEHos8YACwOtlIwAQfSzxgAL9U6wm4yHAAAAAAAAAAC0nY2GggAAAAAAAAD+/vPmxLGZjIWCgQAFBwsTI0MAAQQIBQIDBgkMDQoHCw4PAADQKBAAZgAAABUGAAANAAAA0CgQAGYAAACxBAAAEQAAANAoEABmAAAAswQAABEAAADQKBAAZgAAALUEAAARAAAA0CgQAGYAAADFBAAAJQAAAE5vbi1rZXlmcmFtZSBmcmFtZXMA0CgQAGYAAABzBQAAGwAAANAoEABmAAAAdQUAADEAAADQKBAAZgAAAHkFAAA3AAAA0CgQAGYAAACBBQAAVgAAANAoEABmAAAAgQUAAC8AAADQKBAAZgAAAHkFAAArAAAA0CgQAGYAAAAoBgAAJgAAANAoEABmAAAAKgYAABcAAADQKBAAZgAAAC8GAAAVAAAABQAAAAcAAADQKBAAZgAAAFcGAAAgAAAA0CgQAGYAAABeBgAALgAAANAoEABmAAAAXgYAACYAAADQKBAAZgAAAGoGAAAdAAAA0CgQAGYAAABBBgAAKgAAANAoEABmAAAAQgYAABsAAADQKBAAZgAAAE0GAAAZAAAA0CgQAGYAAAC8BQAASgAAANAoEABmAAAAvgUAADUAAADQKBAAZgAAAL4FAAAlAAAA0CgQAGYAAAC8BQAAOgAAAFZQOCBpbnRlci1wcmVkaWN0aW9uhAGRAAIDnAGAgaMCgoOAA9AoEABmAAAANQUAAC8AAACAAecAgQJ4AYIDMAIEBlkDgwVzBIWGcQWEB3gGhwiYB4iJcAiAAZgAgQKzAYIDQAIEBn4DgwWqBIWGdgWEBy4GhwhGB4iJXwiAAa8AgQJFAYIDjwIEBlADgwVVBIWGUgWEB0gGhwibB4iJZwiAATgAgQI6AYIDCgIEBqsDgwXaBIWGvQWEBxEGhwgNB4iJmAiAAZAAgQJHAYIDCgIEBiYDgwWrBIWG1QWEB5AGhwgiB4iJGgiAAXIAgQIaAYIDEQIEBqMDgwUsBIWGwwWEBxUGhwgKB4iJrQiAAXkAgQIYAYIDUAIEBsMDgwUaBIWGPgWEBywGhwhAB4iJVQiAAaoAgQIuAYIDNwIEBhMDgwWIBIWGoAWEByEGhwjOB4iJRwiAAT8AgQIUAYIDCAIEBnIDgwVyBIWG0AWEBwwGhwgJB4iJ4giAAVEAgQIoAYIDCwIEBmADgwW2BIWGVAWEBx0GhwgQB4iJJAiAAYYAgQK3AYIDWQIEBokDgwViBIWGZQWEB2oGhwilB4iJlAiAAUgAgQK7AYIDZAIEBoIDgwWdBIWGbwWEByAGhwhLB4iJUAiAAUIAgQJmAYIDpwIEBmMDgwVKBIWGPgWEBygGhwjqB4iJgAiAASkAgQI1AYIDCQIEBrIDgwXxBIWGjQWEBxoGhwgIB4iJawiAAWgAgQJPAYIDDAIEBhsDgwXZBIWG/wWEB1cGhwgRB4iJBwiAAUoAgQIrAYIDGgIEBpIDgwVJBIWGpgWEBzEGhwgXB4iJnQiAAUEAgQImAYIDaQIEBqADgwUzBIWGNAWEBx8GhwhzB4iJgAiAAVcAgQJEAYIDRwIEBiwDgwVyBIWGMwWEBw8Ghwi6B4iJFwiAAS8AgQIpAYIDDgIEBm4DgwW2BIWGtwWEBxUGhwgRB4iJwgiAAUIAgQItAYIDGQIEBmYDgwXFBIWGvQWEBxcGhwgSB4iJFgiAAVgAgQJYAYIDkwIEBpYDgwUqBIWGLgWEBy0GhwjEB4iJzQiAASsAgQJhAYIDtwIEBnUDgwVVBIWGJgWEByMGhwizB4iJPQiAAScAgQI1AYIDyAIEBlcDgwUaBIWGFQWEBysGhwjoB4iJqwiAATgAgQIiAYIDMwIEBmgDgwVyBIWGZgWEBx0GhwhdB4iJTQiAAWsAgQI2AYIDIAIEBhoDgwUzBIWGAQWEB1EGhwgrB4iJHwiAAScAgQIcAYIDVQIEBqsDgwU6BIWGpQWEB1oGhwhiB4iJQAiAASIAgQIWAYIDdAIEBs4DgwUXBIWGIgWEBysGhwimB4iJSQiAAUQAgQIZAYIDagIEBhYDgwVABIWGqwWEByQGhwjhB4iJcgiAASIAgQITAYIDFQIEBmYDgwWEBIWGvAWEBxAGhwhMB4iJfAiAAT4AgQISAYIDTgIEBl8DgwVVBIWGOQWEBzIGhwgwB4iJMwiAAcEAgQJlAYIDIwIEBp8DgwXXBIWGbwWEB1kGhwguB4iJbwiAATwAgQKUAYIDHwIEBqwDgwXbBIWG5AWEBxUGhwgSB4iJbwiAAXAAgQJxAYIDTQIEBlUDgwWzBIWG/wWEByYGhwh4B4iJcgiAASgAgQIqAYIDAQIEBsQDgwX1BIWG0QWEBwoGhwgZB4iJbQiAAWQAgQJQAYIDCAIEBisDgwWaBIWGAQWEBzMGhwgaB4iJRwiAAVgAgQIrAYIDHQIEBowDgwWmBIWG1QWEByUGhwgrB4iJmgiAAT0AgQI/AYIDHgIEBpsDgwVDBIWGLQWEB0QGhwgBB4iJ0QiAAY4AgQJOAYIDTgIEBhADgwX/BIWGgAWEByIGhwjFB4iJqwiAASkAgQIoAYIDBQIEBmYDgwXTBIWGtwWEBwQGhwgBB4iJ3QiAATMAgQIyAYIDEQIEBqgDgwXRBIWGwAWEBxcGhwgZB4iJUgiAAX0AgQJiAYIDKgIEBlgDgwVoBIWGVQWEB3UGhwivB4iJUgiAAV8AgQJUAYIDNQIEBlkDgwWABIWGZAWEB3EGhwhlB4iJLQiAAUsAgQJPAYIDewIEBi8DgwUzBIWGgAWEB1EGhwirB4iJAQiAATkAgQIRAYIDBQIEBkcDgwVmBIWGOQWEBzUGhwgpB4iJMQiAAXMAgQIVAYIDAgIEBgoDgwVmBIWG/wWEB6YGhwgXB4iJBgiAASYAgQIhAYIDDQIEBnkDgwU5BIWGSQWEBxoGhwgBB4iJVQiAASkAgQIKAYIDQwIEBooDgwVNBIWGbgWEB1oGhwgvB4iJcgiAAWUAgQIdAYIDEAIEBgoDgwVVBIWGgAWEB2UGhwjEB4iJGgiAATkAgQISAYIDCgIEBmYDgwVmBIWG1QWEByIGhwgUB4iJKwiAAXUAgQIUAYIDDwIEBiQDgwWjBIWGgAWEB0QGhwgBB4iJGgiAAYoAgQIfAYIDJAIEBqsDgwUbBIWGpgWEByYGhwgsB4iJ5QiAAUMAgQJXAYIDOgIEBqkDgwVSBIWGcwWEBxoGhwg7B4iJswiAAT8AgQI7AYIDWgIEBrQDgwU7BIWGpgWEB10GhwhJB4iJmgiAASgAgQIoAYIDFQIEBnQDgwWPBIWG0QWEByIGhwgnB4iJrwiAATkAgQIuAYIDFgIEBhgDgwWABIWGAQWEBzYGhwgRB4iJJQiAAS8AgQIPAYIDEAIEBrcDgwUiBIWG3wWEBzEGhwgtB4iJtwiAAS4AgQIRAYIDIQIEBrcDgwUGBIWGYgWEBw8GhwggB4iJtwiAAUEAgQIgAYIDSQIEBnMDgwUcBIWGgAWEBxcGhwiAB4iJzQiAASgAgQIDAYIDCQIEBnMDgwUzBIWGwAWEBxIGhwgGB4iJ3wiAAVcAgQIlAYIDCQIEBnMDgwU7BIWGTQWEB0AGhwgVB4iJLwiAAWgAgQI3AYIDLAIEBtoDgwUJBIWGNgWEBzUGhwiCB4iJ4giAAUAAgQJaAYIDRgIEBs0DgwUoBIWGKQWEBxcGhwgaB4iJOQiAATYAgQI5AYIDcAIEBrgDgwUFBIWGKQWEByYGhwimB4iJ1QiAAR4AgQIiAYIDGgIEBoUDgwWYBIWGdAWEBwoGhwggB4iJhgiAAUsAgQIgAYIDDAIEBjMDgwXABIWG/wWEB6AGhwgrB4iJMwiAAScAgQITAYIDNQIEBt0DgwUaBIWGcgWEByAGhwhJB4iJ/wiAAR8AgQIJAYIDQQIEBuoDgwUCBIWGDwWEBwEGhwh2B4iJSQiAAVgAgQIfAYIDIwIEBkMDgwVmBIWGVQWEBzcGhwi6B4iJVQiAATgAgQIVAYIDFwIEBm8DgwU7BIWGzQWEBy0GhwglB4iJwAiAATcAgQImAYIDRgIEBnwDgwVJBIWGZgWEBwEGhwgiB4iJYgiAAWYAgQI9AYIDRwIEBiUDgwUiBIWGNQWEBx8GhwjzB4iJwAiAAUUAgQI8AYIDRwIEBiYDgwVJBIWGdwWEBxwGhwjeB4iJJQiAAUQAgQItAYIDgAIEBiIDgwUBBIWGLwWEBwsGhwj1B4iJqwiAAT4AgQIRAYIDEwIEBkYDgwWSBIWGVQWEBzcGhwg+B4iJRgiAAUsAgQIPAYIDCQIEBgkDgwVABIWG/wWEB7gGhwh3B4iJEAiAASUAgQIrAYIDJQIEBpoDgwVkBIWGowWEB1UGhwigB4iJAQiAAT8AgQIJAYIDXAIEBogDgwUcBIWGQAWEByAGhwjJB4iJVQiAAVYAgQIGAYIDHAIEBgUDgwVABIWG/wWEBxkGhwj4B4iJAQiAATgAgQIIAYIDEQIEBoQDgwWJBIWG/wWEBzcGhwh0B4iJgAiAAToAgQIPAYIDFAIEBlIDgwWHBIWGOQWEBxoGhwh5B4iJKAiAAaQAgQIyAYIDHwIEBokDgwWaBIWGhQWEBxkGhwgjB4iJ2giAATMAgQJnAYIDLAIEBoMDgwWDBIWGewWEBx8GhwgGB4iJngiAAVYAgQIoAYIDQAIEBocDgwWUBIWG4AWEBy0Ghwi3B4iJgAiAARYAgQIaAYIDEQIEBoMDgwXwBIWGmgWEBw4GhwgBB4iJ0QiAAVMAgQIMAYIDDQIEBjYDgwXABIWG/wWEB0QGhwgvB4iJHAiAAS0AgQIQAYIDFQIEBlsDgwVABIWG3gWEBwcGhwgBB4iJxQiAATgAgQIVAYIDJwIEBpsDgwU8BIWGigWEBxcGhwhmB4iJ1QiAAVUAgQIaAYIDVQIEBlUDgwWABIWGgAWEByAGhwiSB4iJqwiAARIAgQILAYIDBwIEBj8DgwWQBIWGqwWEBwQGhwgEB4iJ9giAASMAgQIbAYIDCgIEBpIDgwWuBIWGqwWEBwwGhwgaB4iJgAiAAb4AgQJQAYIDIwIEBmMDgwW0BIWGUAWEB34Ghwg2B4iJLQiAAVUAgQJ+AYIDLwIEBlcDgwWwBIWGMwWEBykGhwgUB4iJIAiAAWUAgQJLAYIDgAIEBosDgwV2BIWGkgWEB3QGhwiAB4iJVQiAATgAgQIpAYIDDwIEBrADgwXsBIWGVQWEByUGhwgJB4iJPgiAAZIAgQIkAYIDEwIEBh4DgwWrBIWG/wWEB2EGhwgbB4iJFAiAAUcAgQIeAYIDEQIEBncDgwV2BIWG/wWEBxEGhwgSB4iJigiAAWUAgQImAYIDPAIEBooDgwU3BIWGRgWEBysGhwgaB4iJjgiAAYoAgQItAYIDPQIEBj4DgwXbBIWGAQWEB1EGhwi8B4iJQAiAASAAgQIpAYIDFAIEBnUDgwWXBIWGjgWEBxQGhwgVB4iJowiAAXAAgQITAYIDDAIEBj0DgwXDBIWGgAWEBzAGhwgEB4iJGAjQKBAAZgAAAD8FAAAlAAAAgAGOAIECcgGCg7cC0CgQAGYAAABRBQAAEQAAANAoEABmAAAAUgUAABEAAADQKBAAZgAAAFMFAAARAAAA////////////////////////////////////////////sPb////////////f8fz///////////n9/f////////////T8///////////q/v7///////////3///////////////b+///////////v/f7///////////7//v////////////j+///////////7//7///////////////////////////3+///////////7/v7///////////7//v////////////79//7////////6//7//v////////7/////////////////////////////////////////////////////////2f/////////////h/PH9///+/////+r68fr9//3+//////7////////////f/v7//////////+79/v7///////////j+///////////5/v////////////////////////////3////////////3/v////////////////////////////3+///////////8//////////////////////////////7+///////////9//////////////////////////////79///////////6//////////////7/////////////////////////////////////////////////////////uvv6///////////q+/T+//////////v78/3+//7///////3+///////////s/f7///////////v9/f7+//////////7+///////////+/v7///////////////////////////7////////////+/v////////////7////////////////////////////+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+P/////////////6/vz+//////////j++f3///////////39///////////2/f3///////////z++/7+//////////78///////////4/v3///////////3//v7///////////v+///////////1+/7///////////39/v////////////v9///////////8/f7////////////+//////////////z////////////5//7//////////////v/////////////9///////////6///////////////////////////////////////////+////////////////////////////0CgQAGYAAABXBwAAFwAAAIsBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB/QCAAogBgQP+AgQG/wOCBeQEg4TbBQcIgAaFhoAHCQqACIeIgAmJioAKiwG9AIACgQGBA/ICBAb/A4IF4wSDhNUFBwj/BoWG2wcJCoAIh4iACYmKgAqLAWoAgAJ+AYED4wIEBvwDggXWBIOE0QUHCP8GhYb/BwkKgAiHiIAJiYqACosBAQCAAmIBgQP4AgQG/wOCBewEg4TiBQcI/waFhv8HCQqACIeIgAmJioAKiwG1AIAChQGBA+4CBAb+A4IF3QSDhOoFBwj/BoWGmgcJCoAIh4iACYmKgAqLAU4AgAKGAYEDygIEBvcDggXGBIOEtAUHCP8GhYbbBwkKgAiHiIAJiYqACosBAQCAArkBgQP5AgQG/wOCBfMEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwG4AIAClgGBA/cCBAb/A4IF7ASDhOAFBwiABoWGgAcJCoAIh4iACYmKgAqLAU0AgAJuAYED2AIEBv8DggXsBIOE5gUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAAmUBgQP7AgQG/wOCBfEEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGqAIACiwGBA/ECBAb8A4IF7ASDhNEFBwj/BoWG/wcJCoAIh4iACYmKgAqLASUAgAJ0AYEDxAIEBvMDggXkBIOE/wUHCP8GhYb/BwkKgAiHiIAJiYqACosBAQCAAswBgQP+AgQG/wOCBfUEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwHPAIACoAGBA/oCBAb/A4IF7gSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAWYAgAJnAYED5wIEBv8DggXTBIOEqwUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAApgBgQP8AgQG/wOCBfAEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGxAIAChwGBA/MCBAb/A4IF6gSDhOEFBwiABoWGgAcJCoAIh4iACYmKgAqLAVAAgAKBAYED0wIEBv8DggXCBIOE4AUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAAgEBgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwH2AIACAQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAf8AgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBxgCAAiMBgQPtAgQG3wOCBcEEg4S7BQcIogaFhqAHCQqRCIeImwmJij4KiwGDAIACLQGBA8YCBAbdA4IFrASDhLAFBwjcBoWGnQcJCvwIh4jdCYmKAQqLAUQAgAIvAYEDkgIEBtADggWVBIOEpwUHCN0GhYaiBwkK/wiHiN8JiYqACosBAQCAApUBgQPxAgQG/wOCBd0Eg4TgBQcI/waFhv8HCQqACIeIgAmJioAKiwG4AIACjQGBA+oCBAb9A4IF3gSDhNwFBwj/BoWGxwcJCoAIh4iACYmKgAqLAVEAgAJjAYEDtQIEBvIDggWwBIOEvgUHCPkGhYbKBwkK/wiHiP8JiYqACosBAQCAAoEBgQPoAgQG/QOCBdYEg4TFBQcI8gaFhsQHCQr/CIeI/wmJioAKiwFjAIACeQGBA9ICBAb6A4IFyQSDhMYFBwj/BoWGygcJCoAIh4iACYmKgAqLARcAgAJbAYEDowIEBvIDggWqBIOEuwUHCPcGhYbSBwkK/wiHiP8JiYqACosBAQCAAsgBgQP2AgQG/wOCBeoEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwFtAIACsgGBA/ECBAb/A4IF5wSDhPUFBwj/BoWG/wcJCoAIh4iACYmKgAqLASwAgAKCAYEDyQIEBv0DggXNBIOEwAUHCP8GhYb/BwkKgAiHiIAJiYqACosBAQCAAoQBgQPvAgQG+wOCBdsEg4TRBQcI/waFhqUHCQqACIeIgAmJioAKiwFeAIACiAGBA+ECBAb7A4IF2gSDhL4FBwj/BoWG/wcJCoAIh4iACYmKgAqLARYAgAJkAYEDrgIEBvUDggW6BIOEoQUHCP8GhYbHBwkKgAiHiIAJiYqACosBAQCAArYBgQP5AgQG/wOCBegEg4TrBQcIgAaFhoAHCQqACIeIgAmJioAKiwF8AIACjwGBA/ECBAb/A4IF4wSDhOoFBwiABoWGgAcJCoAIh4iACYmKgAqLASMAgAJNAYEDtQIEBvsDggXBBIOE0wUHCP8GhYbNBwkKgAiHiIAJiYqACosBAQCAAp0BgQP3AgQG/wOCBewEg4TnBQcI/waFhv8HCQqACIeIgAmJioAKiwF5AIACjQGBA+sCBAb/A4IF4QSDhOMFBwj/BoWG/wcJCoAIh4iACYmKgAqLAS0AgAJjAYEDvAIEBvsDggXDBIOE2QUHCP8GhYbgBwkKgAiHiIAJiYqACosBAQCAAgEBgQP7AgQG/wOCBdUEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwHLAIACAQGBA/gCBAb/A4IF/wSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYkAgAIBAYEDsQIEBv8DggXgBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosB/QCAAgkBgQP4AgQG+wOCBc8Eg4TQBQcI/waFhsAHCQqACIeIgAmJioAKiwGvAIACDQGBA+ACBAbzA4IFwQSDhLkFBwj5BoWGxgcJCv8Ih4j/CYmKgAqLAUkAgAIRAYEDqwIEBt0DggWhBIOEswUHCOwGhYanBwkK/wiHiOoJiYqACosBAQCAAl8BgQP3AgQG/QOCBdQEg4S3BQcI/waFhv8HCQqACIeIgAmJioAKiwHvAIACWgGBA/QCBAb6A4IF0wSDhNEFBwj/BoWG/wcJCoAIh4iACYmKgAqLAZsAgAJNAYEDwwIEBvgDggW8BIOEwwUHCP8GhYb/BwkKgAiHiIAJiYqACosBAQCAAhgBgQPvAgQG+wOCBdoEg4TbBQcI/waFhs0HCQqACIeIgAmJioAKiwHJAIACMwGBA9sCBAb/A4IFxASDhLoFBwiABoWGgAcJCoAIh4iACYmKgAqLAUUAgAIuAYEDvgIEBu8DggXJBIOE2gUHCP8GhYbkBwkKgAiHiIAJiYqACosBAQCAAr8BgQP7AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwHfAIACpQGBA/kCBAb/A4IF1QSDhP8FBwiABoWGgAcJCoAIh4iACYmKgAqLAY0AgAJ8AYED+AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAAhABgQP4AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwG+AIACJAGBA+YCBAb/A4IF7ASDhP8FBwiABoWGgAcJCoAIh4iACYmKgAqLAZUAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAAuIBgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwH3AIACwAGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAfAAgAKAAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAAoYBgQP8AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwHVAIACPgGBA/oCBAb/A4IF/wSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLATcAgAJdAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBygCAAhgBgQPVAgQG6wOCBboEg4S/BQcI3AaFhqAHCQrwCIeIrwmJiv8KiwF+AIACJgGBA7YCBAboA4IFqQSDhLgFBwjkBoWGrgcJCv8Ih4i7CYmKgAqLAT0AgAIuAYEDigIEBtsDggWXBIOEsgUHCPAGhYaqBwkK/wiHiNgJiYqACosBAQCAAnABgQPmAgQG+gOCBccEg4S/BQcI9waFhp8HCQr/CIeI/wmJioAKiwGmAIACbQGBA+QCBAb8A4IF0wSDhNcFBwj/BoWGrgcJCoAIh4iACYmKgAqLAScAgAJNAYEDogIEBugDggWsBIOEtAUHCPUGhYayBwkK/wiHiP8JiYqACosBAQCAAjQBgQPcAgQG9gOCBcYEg4THBQcI+QaFhtwHCQr/CIeI/wmJioAKiwF8AIACSgGBA78CBAbzA4IFtwSDhMEFBwj6BoWG3QcJCv8Ih4j/CYmKgAqLARgAgAJHAYEDggIEBtsDggWaBIOEqgUHCPMGhYa2BwkK/wiHiP8JiYqACosBAQCAArYBgQPhAgQG+QOCBdsEg4TwBQcI/waFhuAHCQqACIeIgAmJioAKiwGVAIAClgGBA+ICBAb8A4IF2ASDhM0FBwj/BoWGqwcJCoAIh4iACYmKgAqLARwAgAJsAYEDqgIEBvIDggW3BIOEwgUHCP4GhYbfBwkK/wiHiP8JiYqACosBAQCAAlEBgQPmAgQG/AOCBcwEg4TLBQcI/waFhsAHCQqACIeIgAmJ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AABw1hEArQAAAK4AAACvAAAAsAAAAKMAAABEZWNvZGluZ0VuY29kaW5nUGFyYW1ldGVyTGltaXRzSW9FcnJvcgAAAAAAAAQAAAAEAAAA9QEAAExpbWl0RXJyb3IAAAAAAAAIAAAABAAAAPYBAAAAAAAABAAAAAQAAAD3AQAAbWF4X2ltYWdlX3dpZHRobWF4X2ltYWdlX2hlaWdodG1heF9hbGxvYwAAAAAEAAAABAAAALEAAAAAAAAABAAAAAQAAACyAAAATGF5b3V0c2l6ZWFsaWduAPgBAAAQAAAABAAAAPkBAAAAAAAABAAAAAQAAAD6AQAARGVjb2RpbmdFcnJvcmZvcm1hdHVuZGVybHlpbmdFbmNvZGluZ0Vycm9yAAAAAAAAAQAAAAEAAAD7AQAAAAAAAAEAAAABAAAA/AEAAAAAAAABAAAAAQAAAP0BAAAAAAAABAAAAAQAAAC9AQAAQ2ljcHByaW1hcmllc3RyYW5zZmVybWF0cml4ZnVsbF9yYW5nZURpbWVuc2lvbkVycm9ySW5zdWZmaWNpZW50TWVtb3J5AAAAAAAAACAAAAAIAAAA/gEAAAAAAAAEAAAABAAAAP8BAABsaW1pdHNzdXBwb3J0ZWQAAAIAAAwAAAAEAAAAAQIAAFBhcmFtZXRlckVycm9yQ2FwYWNpdHlPdmVyZmxvdwAAAAAAAAQAAAAEAAAAAgIAAEFsbG9jRXJybGF5b3V0RXhhY3ROYW1lUGF0aEV4dGVuc2lvblVua25vd25pbnZhbGlkIHNlZWsgdG8gYSBuZWdhdGl2ZSBvciBvdmVyZmxvd2luZyBwb3NpdGlvbgAAANfYEQAyAAAAFAAAABUqEABhAAAAPQAAACQAAABFbXB0eUludmFsaWREaWdpdFBvc092ZXJmbG93TmVnT3ZlcmZsb3daZXJvAAAAAAAEAAAABAAAAAMCAABVbnN1cHBvcnRlZEVycm9yUG5nSnBlZ0dpZldlYlBQbm1UaWZmVGdhRGRzQm1wSWNvSGRyT3BlbkV4ckZhcmJmZWxkQXZpZlFvaVBjeAAAAAAAAAAEAAAABAAAAAQCAABQYXJzZUludEVycm9yQThMMUxhMVJnYjFSZ2JhMUwyTGEyUmdiMlJnYmEyTDRMYTRSZ2I0UmdiYTRSZ2I1eDFMOExhOFJnYjhSZ2JhOEwxNkxh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b3J0ZWQgUExZIGhlYWRlciBsaW5lOiAAAAA47xEAHQAAAE1pc3NpbmcgY2h1bmsgZWxlbWVudCBmb3IgU3VwZXJTcGxhdCBQTFlg7xEAKAAAAG1pbl94TWlzc2luZyBtaW5feCBwcm9wZXJ0eQCV7xEAFgAAAG1pbl95TWlzc2luZyBtaW5feSBwcm9wZXJ0eQC57xEAFgAAAG1pbl96TWlzc2luZyBtaW5feiBwcm9wZXJ0eQDd7xEAFgAAAG1heF94TWlzc2luZyBtYXhfeCBwcm9wZXJ0eQAB8BEAFgAAAG1heF95TWlzc2luZyBtYXhfeSBwcm9wZXJ0eQAl8BEAFgAAAG1heF96TWlzc2luZyBtYXhfeiBwcm9wZXJ0eQBJ8BEAFgAAAG1pbl9zY2FsZV94TWlzc2luZyBtaW5fc2NhbGVfeCBwcm9wZXJ0eQBz8BEAHAAAAG1pbl9zY2FsZV95TWlzc2luZyBtaW5fc2NhbGVfeSBwcm9wZXJ0eQCj8BEAHAAAAG1pbl9zY2FsZV96TWlzc2luZyBtaW5fc2NhbGVfeiBwcm9wZXJ0eQDT8BEAHAAAAG1heF9zY2FsZV94TWlzc2luZyBtYXhfc2NhbGVfeCBwcm9wZXJ0eQAD8REAHAAAAG1heF9zY2FsZV95TWlzc2luZyBtYXhfc2NhbGVfeSBwcm9wZXJ0eQAz8REAHAAAAG1heF9zY2FsZV96TWlzc2luZyBtYXhfc2NhbGVfeiBwcm9wZXJ0eQBj8REAHAAAAG1pbl9ybWluX2dtaW5fYm1heF9ybWF4X2dtYXhfYnBhY2tlZF9wb3NpdGlvbk1pc3NpbmcgcGFja2VkX3Bvc2l0aW9uIHByb3BlcnR5AAAAtfERACAAAABwYWNrZWRfcm90YXRpb25NaXNzaW5nIHBhY2tlZF9yb3RhdGlvbiBwcm9wZXJ0eQDv8REAIAAAAHBhY2tlZF9zY2FsZU1pc3NpbmcgcGFja2VkX3NjYWxlIHByb3BlcnR5AAAAJPIRAB0AAABwYWNrZWRfY29sb3JNaXNzaW5nIHBhY2tlZF9jb2xvciBwcm9wZXJ0eQAAAFjyEQAdAAAAZl9yZXN0XwCA8hEABwAAADkBEAAUAAAAhgIAADAAAAA5ARAAFAAAAIoCAAAfAAAASW52YWxpZCBudW1iZXIgb2Yg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b3VudHN0cnVjdCBSYWRNZXRhc3RydWN0IFJhZE1ldGEgd2l0aCAxMSBlbGVtZW50c2kEEgAfAAAAZ3NwbGF0AACQBBIABgAAAHN0cnVjdCBSYWRDaHVua01ldGFzdHJ1Y3QgUmFkQ2h1bmtQcm9wZXJ0eXN0cnVjdCBTcGxhdEVuY29kaW5ncmdiTWlucmdiTWF4bG5TY2FsZU1pbmxuU2NhbGVNYXhzaDFNYXhzaDJNYXhzaDNNYXhsb2RPcGFjaXR5c3RydWN0IFNldFNwbGF0RW5jb2RpbmdzdHJ1Y3QgU2V0U3BsYXRFbmNvZGluZyB3aXRoIDggZWxlbWVudHMxBRIAJwAAAG1dy9YsUOtjeEGmV3Ebi7kJBmaBAfO5VKIIL0OCV3QyOiAAAAAAAAAEAAAABAAAAFECAAA6AAAAAQAAAAAAAACUBRIAAQAAAJQFEgABAAAAUgIAAAwAAAAEAAAAUwIAAFQCAABVAgAAjgEAAAwAAAAEAAAAVgIAAFcCAABYAgAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPj0gc2l6ZSArIG1pbl9vdmVyaGVhZAAAWCUQACoAAACxBAAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplIDw9IHNpemUgKyBtYXhfb3ZlcmhlYWQAAFglEAAqAAAAtwQAAA0AAABmYWlsZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIHRocmVhZCBJRDogYml0c3BhY2UgZXhoYXVzdGVkAGAGEgA3AAAAYCEQAB0AAAC8BAAADQAAAP0WEAAhAAAA0QAAABMAAAACAAAAAAAAAAIAQdSNyAALwQwgAIDgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybdgGEgAoAAAAJAAAAAAAAAACAAAAAAcSAHVuc3VwcG9ydGVkIGJhY2t0cmFjZWRpc2FibGVkIGJhY2t0cmFjZQD1HRAAHAAAAIoBAAAdAAAAWQIAABAAAAAEAAAAWgIAAFsCAABXb3VsZEJsb2NrAAABAAAAAAAAAG1pZCA+IGxlbgAAAHgHEgAJAAAAExYQAC0AAAAWAQAAKQAAAGVudGl0eSBub3QgZm91bmRwZXJtaXNzaW9uIGRlbmllZGNvbm5lY3Rpb24gcmVmdXNlZGNvbm5lY3Rpb24gcmVzZXRob3N0IHVucmVhY2hhYmxlbmV0d29yayB1bnJlYWNoYWJsZWNvbm5lY3Rpb24gYWJvcnRlZG5vdCBjb25uZWN0ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9yT3MAAAAAAAQAAAAEAAAAXAIAAGNvZGUAAAAAAQAAAAEAAABdAgAAa2luZI4BAAAMAAAABAAAAF4CAABtZXNzYWdlS2luZEVycm9yAAAAAAgAAAAEAAAAXwIAAAAAAAAEAAAABAAAAGACAABDdXN0b20gKG9zIGVycm9yIAAAAAEAAAAAAAAA+goSAAsAAACmEBIAAQAAAOoSEAAbAAAAXAMAABQAAABmYWlsZWQgcHJpbnRpbmcgdG8gADALEgATAAAAgAUSAAIAAADqEhAAGwAAAI0EAAAJAAAAc3Rkb3V0YSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHdoZW4gdGhlIHVuZGVybHlpbmcgc3RyZWFtIGRpZCBub3RqCxIAVgAAADUgEAAZAAAAiAIAABEAAABwYW5pY2tlZCBhdCA6CmNhbm5vdCByZWN1cnNpdmVseSBhY3F1aXJlIG11dGV4AADmCxIAIAAAAGMJEAAsAAAAEwAAAAkAAACGHRAAIwAAAJsAAAAyAAAAhh0QACMAAADWAAAAFAAAAGxvY2sgY291bnQgb3ZlcmZsb3cgaW4gcmVlbnRyYW50IG11dGV4AAAfFxAAJgAAACQBAAAtAAAAPHVua25vd24+77+9Y2Fubm90IG1vZGlmeSB0aGUgcGFuaWMgaG9vayBmcm9tIGEgcGFuaWNraW5nIHRocmVhZIQMEgA0AAAATxgQABwAAACQAAAACQAAAAoAAACOAQAADAAAAAQAAABhAgAAAAAAAAgAAAAEAAAAYgIAAE8gEAA0AAAAZwEAADAAAAABAAAAAAAAAIAFEgACAAAAAgBBnprIAAsBBABBqJrIAAvCByAAAOggLSAAAQAAAAAAAAAsDRIAAwAAAAIAAAAAAAAAAQAAAAEAAAAAAAAAIAAA6CAgICAgICAgICAgICAgICAgICBhdCAAAJQFEgABAAAATm90Rm91bmRQZXJtaXNzaW9uRGVuaWVkQ29ubmVjdGlvblJlZnVzZWRDb25uZWN0aW9uUmVzZXRIb3N0VW5yZWFjaGFibGVOZXR3b3JrVW5yZWFjaGFibGVDb25uZWN0aW9uQWJvcnRlZE5vdENvbm5lY3RlZEFkZHJJblVzZUFkZHJOb3RBdmFpbGFibGVOZXR3b3JrRG93bkJyb2tlblBpcGVBbHJlYWR5RXhpc3RzTm90QURpcmVjdG9yeUlzQURpcmVjdG9yeURpcmVjdG9yeU5vdEVtcHR5UmVhZE9ubHlGaWxlc3lzdGVtRmlsZXN5c3RlbUxvb3BTdGFsZU5ldHdvcmtGaWxlSGFuZGxlSW52YWxpZElucHV0SW52YWxpZERhdGFUaW1lZE91dFdyaXRlWmVyb1N0b3JhZ2VGdWxsTm90U2Vla2FibGVRdW90YUV4Y2VlZGVkRmlsZVRvb0xhcmdlUmVzb3VyY2VCdXN5RXhlY3V0YWJsZUZpbGVCdXN5RGVhZGxvY2tDcm9zc2VzRGV2aWNlc1Rvb01hbnlMaW5rc0ludmFsaWRGaWxlbmFtZUFyZ3VtZW50TGlzdFRvb0xvbmdJbnRlcnJ1cHRlZFVuc3VwcG9ydGVkVW5leHBlY3RlZEVvZk91dE9mTWVtb3J5SW5Qcm9ncmVzc090aGVyVW5jYXRlZ29yaXplZG9wZXJhdGlvbiBzdWNjZXNzZnVsT25jZSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAACgDxIAKgAAAG9uZS10aW1lIGluaXRpYWxpemF0aW9uIG1heSBub3QgYmUgcGVyZm9ybWVkIHJlY3Vyc2l2ZWx51A8SADgAAADAGBAAcAAAAHwAAAARAAAAwBgQAHAAAACJAAAAEQAAAG51bGwgcG9pbnRlciBwYXNzZWQgdG8gcnVzdHJlY3Vyc2l2ZSB1c2Ugb2YgYW4gb2JqZWN0IGRldGVjdGVkIHdoaWNoIHdvdWxkIGxlYWQgdG8gdW5zYWZlIGFsaWFzaW5nIGluIHJ1c3RKc1ZhbHVlKCkAnhASAAgAAACmEBIAAQAAAGZhaWxlZCB0byBmaWxsIHdob2xlIGJ1ZmZlcgC4EBIAGwAAACUAAAACAAAA1BASACgpAEH0ocgAC6cDAQAAAL8BAAB+IRAAUAAAAC4CAAARAAAAAAAAAAQAAAAEAAAAsQAAAAAAAAAEAAAABAAAALMAAABVdGY4RXJyb3J2YWxpZF91cF90b2Vycm9yX2xlbgAAAGMCAAAMAAAABAAAAGQCAAAAAAAABAAAAAQAAABlAgAARnJvbVV0ZjhFcnJvcmJ5dGVzZXJyb3JOb25lU29tZQDEHhAAdgAAAMMAAAAJAAAAxB4QAHYAAAC8AAAAKgAAAMQeEAB2AAAAuQAAACoAAADXARAAbgAAAHQBAAApAAAA1wEQAG4AAAB5AQAAHAAAANcBEABuAAAAeQEAAC0AAADXARAAbgAAAIABAAAwAAAA1wEQAG4AAABLAQAAKQAAANcBEABuAAAAUQEAABwAAADXARAAbgAAAFEBAAAtAAAA1wEQAG4AAABZAQAAJAAAANcBEABuAAAAWQEAADEAAACVCxAAdgAAADoAAAAbAAAAlQsQAHYAAAA7AAAAGwAAAFRyeUZyb21JbnRFcnJvcgCqHRAASgAAAL0BAAAdAAAAAAAAAP//////////kBISAEGopcgAC4VTWg0QAGcAAABzAAAAFgAAAFoNEABnAAAALgAAACMAAABaDRAAZwAAAEMBAAAWAAAAWg0QAGcAAABPAQAAOAAAAFoNEABnAAAA6AEAABYAAABaDRAAZwAAACYAAAAPAAAAZgIAABQAAAAEAAAAZwIAAJopEABhAAAAHwAAACwAAABJbnZhbGlkIGNoZWNrc3VtRXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkIGlzIGVtcHR5AAAAABIQAHsAAABKAAAAJAAAAGZsYWdzIGFuZCBsZW4gZG9uJ3QgbWF0Y2ggaW4gZXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgYXR0cmlidXRlIHNpemVOVEZTIGV4dHJhIGZpZWxkIGhhcyBhbiB1bnN1cHBvcnRlZCBhdHRyaWJ1dGUgdGFnTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoQ1JDMzIgY2hlY2tzdW0gZmFpbGVkIG9uIFVuaWNvZGUgZXh0cmEgZmllbGRVbmljb2RlIGV4dHJhIGZpZWxkIGlzIHRvbyBzbWFsbAAAShEQAG0AAAAdAAAAEQAAAEoREABtAAAARgAAABEAAABaSVA2NCBmb290ZXIgaW5kaWNhdGVzIG1vcmUgZmlsZXMgb24gdGhpcyBkaXNrIHRoYW4gaW4gdGhlIHdob2xlIGFyY2hpdmVJbnZhbGlkIGNlbnRyYWwgZGlyZWN0b3J5IHNpemUgb3Igb2Zmc2V09yQQAGAAAAAEBgAAOgAAAPckEABgAAAABgYAADsAAABFeHRyYSBmaWVsZCBjb250ZW50IGV4Y2VlZHMgZGVjbGFyZWQgbGVuZ3RoWklQNjQgZXh0cmEgZmllbGQgdHJ1bmNhdGVkWklQNjQgZXh0cmEtZGF0YSBmaWVsZCBpcyB0aGUgd3JvbmcgbGVuZ3Ro9yQQAGAAAABeBgAAEgAAAEFFUyBleHRyYSBmaWVsZCB0cnVuY2F0ZWRJbnZhbGlkIEFFUyBlbmNyeXB0aW9uIHN0cmVuZ3RoSW52YWxpZCBBRVMgdmVu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ABAHWAAACBgAAAiQAAAJOwATB3gAAAg4AAAI0AAACREAEQdoAAAIKAAACLAAAAkIAAAIiAAACEgAAAjwAAAJBAAQB1QAAAgUAAAI4wAVCCsAEwd0AAAINAAACMgAAAkNABEHZAAACCQAAAioAAAJBAAACIQAAAhEAAAI6AAACQgAEAdcAAAIHAAACJgAAAlTABQHfAAACDwAAAjYAAAJFwASB2wAAAgsAAAIuAAACQwAAAiMAAAITAAACPgAAAkDABAHUgAACBIAAAijABUIIwATB3IAAAgyAAAIxAAACQsAEQdiAAAIIgAACKQAAAkCAAAIggAACEIAAAjkAAAJBwAQB1oAAAgaAAAIlAAACUMAFAd6AAAIOgAACNQAAAkTABIHagAACCoAAAi0AAAJCgAACIoAAAhKAAAI9AAACQUAEAdWAAAIFgAACAAAQAgzABMHdgAACDYAAAjMAAAJDwARB2YAAAgmAAAIrAAACQYAAAiGAAAIRgAACOwAAAkJABAHXgAACB4AAAicAAAJYwAUB34AAAg+AAAI3AAACRsAEgduAAAILgAACLwAAAkOAAAIjgAACE4AAAj8AAAJAABgB1EAAAgRAAAIgwAVCB8AEgdxAAAIMQAACMIAAAkKABAHYQAACCEAAAiiAAAJAQAACIEAAAhBAAAI4gAACQYAEAdZAAAIGQAACJIAAAk7ABMHeQAACDkAAAjSAAAJEQARB2kAAAgpAAAIsgAACQkAAAiJAAAISQAACPIAAAkEABAHVQAACBUAAAgCARAIKwATB3UAAAg1AAAIygAACQ0AEQdlAAAIJQAACKoAAAkFAAAIhQAACEUAAAjqAAAJCAAQB10AAAgdAAAImgAACVMAFAd9AAAIPQAACNoAAAkXABIHbQAACC0AAAi6AAAJDQAACI0AAAhNAAAI+gAACQMAEAdTAAAIEwAACMMAFQgjABMHcwAACDMAAAjGAAAJCwARB2MAAAgjAAAIpgAACQMAAAiDAAAIQwAACOYAAAkHABAHWwAACBsAAAiWAAAJQwAUB3sAAAg7AAAI1gAACRMAEgdrAAAIKwAACLYAAAkLAAAIiwAACEsAAAj2AAAJBQAQB1cAAAgXAAAIAABACDMAEwd3AAAINwAACM4AAAkPABEHZwAACCcAAAiuAAAJBwAACIcAAAhHAAAI7gAACQkAEAdfAAAIHwAACJ4AAAljABQHfwAACD8AAAjeAAAJGwASB28AAAgvAAAIvgAACQ8AAAiPAAAITwAACP4AAAkAAGAHUAAACBAAAAhzABQIHwASB3AAAAgwAAAIwQAACQoAEAdgAAAIIAAACKEAAAkAAAAIgAAACEAAAAjhAAAJBgAQB1gAAAgYAAAIkQAACTsAEwd4AAAIOAAACNEAAAkRABEHaAAACCgAAAixAAAJCAAACIgAAAhIAAAI8QAACQQAEAdUAAAIFAAACOMAFQgrABMHdAAACDQAAAjJAAAJDQARB2QAAAgkAAAIqQAACQQAAAiEAAAIRAAACOkAAAkIABAHXAAACBwAAAiZAAAJUwAUB3wAAAg8AAAI2QAACRcAEgdsAAAILAAACLkAAAkMAAAIjAAACEwAAAj5AAAJAwAQB1IAAAgSAAAIowAVCCMAEwdyAAAIMgAACMUAAAkLABEHYgAACCIAAAilAAAJAgAACIIAAAhCAAAI5QAACQcAEAdaAAAIGgAACJUAAAlDABQHegAACDoAAAjVAAAJEwASB2oAAAgqAAAItQAACQoAAAiKAAAISgAACPUAAAkFABAHVgAACBYAAAgAAEAIMwATB3YAAAg2AAAIzQAACQ8AEQdmAAAIJgAACK0AAAkGAAAIhgAACEYAAAjtAAAJCQAQB14AAAgeAAAInQAACWMAFAd+AAAIPgAACN0AAAkbABIHbgAACC4AAAi9AAAJDgAACI4AAAhOAAAI/QAACQAAYAdRAAAIEQAACIMAFQgfABIHcQAACDEAAAjDAAAJCgAQB2EAAAghAAAIowAACQEAAAiBAAAIQQAACOMAAAkGABAHWQAACBkAAAiTAAAJOwATB3kAAAg5AAAI0wAACREAEQdpAAAIKQAACLMAAAkJAAAIiQAACEkAAAjzAAAJBAAQB1UAAAgVAAAIAgEQCCsAEwd1AAAINQAACMsAAAkNABEHZQAACCUAAAirAAAJBQAACIUAAAhFAAAI6wAACQgAEAddAAAIHQAACJsAAAlTABQHfQAACD0AAAjbAAAJFwASB20AAAgtAAAIuwAACQ0AAAiNAAAITQAACPsAAAkDABAHUwAACBMAAAjDABUIIwATB3MAAAgzAAAIxwAACQsAEQdjAAAIIwAACKcAAAkDAAAIgwAACEMAAAjnAAAJBwAQB1sAAAgb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").buffer; +const WASM_MODULE = WebAssembly.compile(WASM); +let initialized = false; +const initialization = __wbg_init({ module_or_path: WASM_MODULE }).then( + (_) => { + initialized = true; + } +); +function isInitialized() { + return initialized; +} +const jsContent = '(function() {\n "use strict";\n class ChunkDecoder {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ChunkDecoder.prototype);\n obj.__wbg_ptr = ptr;\n ChunkDecoderFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ChunkDecoderFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_chunkdecoder_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n finish() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.chunkdecoder_finish(ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n */\n push(bytes) {\n const ret = wasm.chunkdecoder_push(this.__wbg_ptr, bytes);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n }\n if (Symbol.dispose) ChunkDecoder.prototype[Symbol.dispose] = ChunkDecoder.prototype.free;\n class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n }\n if (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n }\n if (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n function bhatt_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, rgba) {\n const ret = wasm.bhatt_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function bhatt_lod_packedsplats(num_splats, packed, extra, lod_base, rgba, encoding) {\n const ret = wasm.bhatt_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function decode_to_csplatarray(file_type, path_name, encoding) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_csplatarray(ptr0, len0, ptr1, len1, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function decode_to_extsplats(file_type, path_name, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_extsplats(ptr0, len0, ptr1, len1, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function decode_to_gsplatarray(file_type, path_name) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_gsplatarray(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function decode_to_packedsplats(file_type, path_name, encoding, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_packedsplats(ptr0, len0, ptr1, len1, encoding, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n }\n function dispose_lod_tree(lod_id) {\n wasm.dispose_lod_tree(lod_id);\n }\n function dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 4294967297 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function get_lod_tree_level(lod_id, level) {\n const ret = wasm.get_lod_tree_level(lod_id, level);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function init_lod_tree(num_splats, lod_tree) {\n const ret = wasm.init_lod_tree(num_splats, lod_tree);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function new_lod_tree(capacity) {\n const ret = wasm.new_lod_tree(capacity);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function new_shared_lod_tree(orig_lod_id) {\n const ret = wasm.new_shared_lod_tree(orig_lod_id);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n }\n function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n }\n function tiny_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, merge_filter, rgba) {\n const ret = wasm.tiny_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function tiny_lod_packedsplats(num_splats, packed, extra, lod_base, merge_filter, rgba, encoding) {\n const ret = wasm.tiny_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 4294967297 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function update_lod_trees(lod_ids, page_bases, chunk_bases, counts, lod_trees) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(page_bases, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_bases, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(counts, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.update_lod_trees(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, lod_trees);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n function __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof v === "boolean" ? v : void 0;\n return isLikeNone(ret) ? 16777215 : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof val === "object" && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === void 0;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof obj === "number" ? obj : void 0;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof obj === "string" ? obj : void 0;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() {\n return handleError(function(arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments);\n },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_fd4646b401926788: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_26bffbe236bf73f9: function(arg0) {\n const ret = new Float32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() {\n return handleError(function(arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments);\n },\n __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) {\n arg0.set(getArrayF32FromWasm0(arg1, arg2));\n },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n const ret = getArrayF32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000003: function(arg0, arg1) {\n const ret = getArrayU32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000004: function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000005: function(arg0) {\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, void 0);\n table.set(offset + 0, void 0);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n }\n };\n return {\n __proto__: null,\n "./spark_rs_bg.js": import0\n };\n }\n const ChunkDecoderFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\n const CsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\n const GsplatArrayFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {\n }, unregister: () => {\n } } : new FinalizationRegistry((ptr) => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n function addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n }\n function debugString(val) {\n const type = typeof val;\n if (type == "number" || type == "boolean" || val == null) {\n return `${val}`;\n }\n if (type == "string") {\n return `"${val}"`;\n }\n if (type == "symbol") {\n const description = val.description;\n if (description == null) {\n return "Symbol";\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == "function") {\n const name = val.name;\n if (typeof name == "string" && name.length > 0) {\n return `Function(${name})`;\n } else {\n return "Function";\n }\n }\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = "[";\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for (let i = 1; i < length; i++) {\n debug += ", " + debugString(val[i]);\n }\n debug += "]";\n return debug;\n }\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n return toString.call(val);\n }\n if (className == "Object") {\n try {\n return "Object(" + JSON.stringify(val) + ")";\n } catch (_) {\n return "Object";\n }\n }\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\n${val.stack}`;\n }\n return className;\n }\n function getArrayF32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n }\n function getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n }\n function getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n }\n function getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n }\n let cachedDataViewMemory0 = null;\n function getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === void 0 && cachedDataViewMemory0.buffer !== wasm.memory.buffer) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n }\n let cachedFloat32ArrayMemory0 = null;\n function getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n }\n function getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n }\n let cachedUint16ArrayMemory0 = null;\n function getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n }\n let cachedUint32ArrayMemory0 = null;\n function getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n }\n let cachedUint8ArrayMemory0 = null;\n function getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n }\n function handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n }\n function isLikeNone(x) {\n return x === void 0 || x === null;\n }\n function passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n }\n function passArrayF32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getFloat32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n }\n function passStringToWasm0(arg, malloc, realloc) {\n if (realloc === void 0) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr2 = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr2;\n }\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n const mem = getUint8ArrayMemory0();\n let offset = 0;\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 127) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n WASM_VECTOR_LEN = offset;\n return ptr;\n }\n function takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n }\n let cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n const MAX_SAFARI_DECODE_BYTES = 2146435072;\n let numBytesDecoded = 0;\n function decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n }\n const cachedTextEncoder = new TextEncoder();\n if (!("encodeInto" in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function(arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n }\n let WASM_VECTOR_LEN = 0;\n let wasm;\n function __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n }\n async function __wbg_load(module, imports) {\n if (typeof Response === "function" && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === "function") {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n if (validResponse && module.headers.get("Content-Type") !== "application/wasm") {\n console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n", e);\n } else {\n throw e;\n }\n }\n }\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n function expectedResponseType(type) {\n switch (type) {\n case "basic":\n case "cors":\n case "default":\n return true;\n }\n return false;\n }\n }\n async function __wbg_init(module_or_path) {\n if (wasm !== void 0) return wasm;\n if (module_or_path !== void 0) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({ module_or_path } = module_or_path);\n } else {\n console.warn("using deprecated parameters for the initialization function; pass a single object instead");\n }\n }\n const imports = __wbg_get_imports();\n if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) {\n module_or_path = fetch(module_or_path);\n }\n const { instance } = await __wbg_load(await module_or_path, imports);\n return __wbg_finalize_init(instance);\n }\n const rpcHandlers = {\n sortSplats16,\n sortSplats32,\n loadPackedSplats,\n loadExtSplats,\n tinyLodPackedSplats,\n qualityLodPackedSplats,\n tinyLodExtSplats,\n qualityLodExtSplats,\n newLodTree,\n newSharedLodTree,\n initLodTree,\n disposeLodTree,\n updateLodTrees,\n traverseLodTrees,\n getLodTreeLevel,\n nextChunk\n };\n async function onMessage(event) {\n const {\n id,\n name,\n args\n } = event.data;\n try {\n const handler = rpcHandlers[name];\n if (!handler) {\n throw new Error(`Unknown worker RPC: ${name}`);\n }\n const sendStatus = (data) => {\n self.postMessage(\n { id, status: data },\n { transfer: getTransferable(data) }\n );\n };\n const result = await handler(args, { sendStatus });\n self.postMessage({ id, result }, { transfer: getTransferable(result) });\n } catch (error) {\n console.warn(`Worker error: ${error}`);\n self.postMessage({ id, error }, { transfer: getTransferable(error) });\n }\n }\n function sortSplats16({\n numSplats,\n readback,\n ordering\n }) {\n const activeSplats = sort_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n }\n function sortSplats32({\n numSplats,\n readback,\n ordering\n }) {\n const activeSplats = sort32_splats(numSplats, readback, ordering);\n return { activeSplats, readback, ordering };\n }\n async function decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n }) {\n if (fileBytes) {\n const CHUNK_SIZE = 1048576;\n for (let i = 0; i < fileBytes.length; i += CHUNK_SIZE) {\n decoder.push(\n fileBytes.subarray(i, Math.min(i + CHUNK_SIZE, fileBytes.length))\n );\n }\n } else if (url) {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : void 0,\n credentials: withCredentials ? "include" : "same-origin"\n });\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch "${url}": ${response.status} ${response.statusText}`\n );\n }\n const readStream = response.body.getReader();\n const contentLength = Number.parseInt(\n response.headers.get("Content-Length") || "0"\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n let loaded = 0;\n while (true) {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n break;\n }\n loaded += value.length;\n sendStatus({ loaded, total });\n decoder.push(value);\n }\n } else if (chunked) {\n let loaded = 0;\n const total = chunkedLength ?? 0;\n while (true) {\n const readNextChunk = new Promise((resolve) => {\n nextChunkWaiter = resolve;\n });\n sendStatus({ nextChunk: true });\n const nextChunk2 = await readNextChunk;\n if (nextChunk2.length === 0) {\n break;\n }\n decoder.push(nextChunk2);\n loaded += nextChunk2.length;\n sendStatus({ progress: { loaded, total } });\n }\n if (total === 0) {\n sendStatus({ progress: { loaded, total: loaded } });\n }\n } else {\n throw new Error("No url or fileBytes provided");\n }\n const decoded = decoder.finish();\n return decoded;\n }\n function toPackedResult(packed) {\n return {\n numSplats: packed.numSplats,\n packedArray: packed.packed,\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3: packed.sh3,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree\n },\n splatEncoding: packed.splatEncoding\n };\n }\n async function loadPackedSplats({\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n encoding,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes\n }, {\n sendStatus\n }) {\n if (!lod) {\n const decoder2 = decode_to_packedsplats(\n fileType,\n pathName ?? url,\n encoding,\n sh1Codes,\n sh2Codes,\n sh3Codes\n );\n const decoded2 = await decodeBytesUrl({\n decoder: decoder2,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n const result2 = toPackedResult(decoded2);\n if (result2.splatEncoding.lodOpacity) {\n return { lodSplats: result2 };\n }\n return result2;\n }\n const decoder = decode_to_csplatarray(fileType, pathName ?? url, encoding);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n if (decoded.has_lod()) {\n const result2 = toPackedResult(\n decoded.to_packedsplats_lod()\n );\n return { lodSplats: result2 };\n }\n if (lodAbove !== void 0) {\n if (decoded.len() < lodAbove) {\n return toPackedResult(decoded.to_packedsplats());\n }\n }\n let result = {};\n if (nonLod) {\n result = toPackedResult(decoded.to_packedsplats());\n }\n const initialSplats = decoded.len();\n const lodName = lod === "quality" ? "Bhatt" : "Tiny";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`\n );\n const lodStart = performance.now();\n if (lod === "quality") {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.25));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`\n );\n const lodPacked = decoded.to_packedsplats_lod();\n result.lodSplats = toPackedResult(lodPacked);\n return result;\n }\n function toExtResult(packed) {\n return {\n numSplats: packed.numSplats,\n extArrays: [packed.ext0, packed.ext1],\n extra: {\n sh1: packed.sh1,\n sh2: packed.sh2,\n sh3a: packed.sh3a,\n sh3b: packed.sh3b,\n sh1Codes: packed.sh1Codes,\n sh2Codes: packed.sh2Codes,\n sh3Codes: packed.sh3Codes,\n lodTree: packed.lodTree\n }\n };\n }\n async function loadExtSplats({\n url,\n requestHeader,\n withCredentials,\n fileBytes,\n fileType,\n pathName,\n chunked,\n chunkedLength,\n lod,\n lodBase,\n lodAbove,\n nonLod,\n sh1Codes,\n sh2Codes,\n sh3Codes\n }, {\n sendStatus\n }) {\n if (!lod) {\n const decoder2 = decode_to_extsplats(\n fileType,\n pathName ?? url,\n sh1Codes,\n sh2Codes,\n sh3Codes\n );\n const decoded2 = await decodeBytesUrl({\n decoder: decoder2,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n const result2 = toExtResult(decoded2);\n if (result2.extra.lodTree) {\n return { lodSplats: result2 };\n }\n return result2;\n }\n const decoder = decode_to_gsplatarray(fileType, pathName ?? url);\n const decoded = await decodeBytesUrl({\n decoder,\n fileBytes,\n url,\n requestHeader,\n withCredentials,\n chunked,\n chunkedLength,\n sendStatus\n });\n if (decoded.has_lod()) {\n return {\n lodSplats: toExtResult(decoded.to_extsplats_lod())\n };\n }\n if (lodAbove !== void 0) {\n if (decoded.len() < lodAbove) {\n return toExtResult(decoded.to_extsplats());\n }\n }\n let result = {};\n if (nonLod) {\n result = toExtResult(decoded.to_extsplats());\n }\n const initialSplats = decoded.len();\n const lodName = lod === "quality" ? "Bhatt" : "Tiny";\n console.log(\n `Loaded ${initialSplats} splats. Starting ${lodName} LoD build...`\n );\n const lodStart = performance.now();\n if (lod === "quality") {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.75));\n decoded.bhatt_lod(base);\n } else {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n decoded.tiny_lod(base, false);\n }\n const lodDuration = performance.now() - lodStart;\n console.log(\n `${lodName} LoD: ${initialSplats} -> ${decoded.len()} (${lodDuration} ms)`\n );\n const lodPacked = decoded.to_extsplats_lod();\n result.lodSplats = toExtResult(lodPacked);\n return result;\n }\n async function tinyLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_packedsplats(\n numSplats,\n packedArray,\n extra,\n base,\n filter,\n rgba,\n encoding\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n async function qualityLodPackedSplats({\n numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_packedsplats(\n numSplats,\n packedArray,\n extra,\n base,\n rgba,\n encoding\n );\n const lodDuration = performance.now() - lodStart;\n const result = toPackedResult(decoded);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n async function tinyLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.5));\n const lodStart = performance.now();\n const filter = false;\n const decoded = tiny_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra,\n base,\n filter,\n rgba\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded);\n console.log(\n `Tiny LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n async function qualityLodExtSplats({\n numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n encoding\n }) {\n const base = Math.max(1.1, Math.min(2, lodBase ?? 1.75));\n const lodStart = performance.now();\n const decoded = bhatt_lod_extsplats(\n numSplats,\n extArrays[0],\n extArrays[1],\n extra,\n base,\n rgba\n );\n const lodDuration = performance.now() - lodStart;\n const result = toExtResult(decoded);\n console.log(\n `Bhatt LoD: ${numSplats} -> ${result.numSplats} (${lodDuration} ms)`\n );\n return result;\n }\n function newLodTree({\n capacity\n }) {\n const { lodId } = new_lod_tree(capacity);\n return { lodId };\n }\n function newSharedLodTree({\n lodId\n }) {\n const { lodId: newLodId } = new_shared_lod_tree(lodId);\n return { lodId: newLodId };\n }\n function initLodTree({\n numSplats,\n lodTree\n }) {\n const { lodId, chunkToPage } = init_lod_tree(numSplats, lodTree);\n return { lodId, chunkToPage };\n }\n function disposeLodTree({ lodId }) {\n dispose_lod_tree(lodId);\n }\n function updateLodTrees({\n ranges\n }) {\n const lodIds = new Uint32Array(ranges.map(({ lodId }) => lodId));\n const pageBases = new Uint32Array(ranges.map(({ pageBase }) => pageBase));\n const chunkBases = new Uint32Array(ranges.map(({ chunkBase }) => chunkBase));\n const counts = new Uint32Array(ranges.map(({ count }) => count));\n const lodTreeData = ranges.map(({ lodTreeData: lodTreeData2 }) => lodTreeData2);\n update_lod_trees(\n lodIds,\n pageBases,\n chunkBases,\n counts,\n lodTreeData\n );\n }\n function traverseLodTrees({\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n instances,\n traverseMode\n }) {\n const keyInstances = Object.entries(instances);\n const lodIds = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.lodId)\n );\n const rootPages = new Uint32Array(\n keyInstances.map(([_key, instance]) => instance.rootPage ?? 4294967295)\n );\n const viewToObjects = new Float32Array(\n keyInstances.flatMap(([_key, instance]) => {\n if (instance.viewToObjectCols.length !== 16) {\n throw new Error("Incorrect array size for viewToObjectCols");\n }\n return instance.viewToObjectCols;\n })\n );\n const lodScales = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.lodScale)\n );\n const behindFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.behindFoveate)\n );\n const coneFov0s = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov0)\n );\n const coneFovs = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFov)\n );\n const coneFoveates = new Float32Array(\n keyInstances.map(([_key, instance]) => instance.coneFoveate)\n );\n const lodFunction = traverseMode === "dynamic" ? dynamic_traverse_lod_trees : traverse_lod_trees;\n const result = lodFunction(\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit,\n lodIds,\n rootPages,\n viewToObjects,\n lodScales,\n behindFoveates,\n coneFoveates,\n coneFov0s,\n coneFovs\n );\n const { instanceIndices, chunks, pixelLimit } = result;\n const indices = keyInstances.reduce(\n (indices2, [key, _instance], index) => {\n indices2[key] = instanceIndices[index];\n return indices2;\n },\n {}\n );\n return {\n keyIndices: indices,\n chunks,\n pixelLimit\n };\n }\n function getLodTreeLevel({\n lodId,\n level\n }) {\n return get_lod_tree_level(lodId, level);\n }\n let nextChunkWaiter = (_chunk) => {\n };\n async function nextChunk({ chunk }) {\n nextChunkWaiter(chunk);\n }\n function getTransferable(ctx) {\n const buffers = [];\n const seen = /* @__PURE__ */ new Set();\n function traverse(obj) {\n if (obj && typeof obj === "object" && !seen.has(obj)) {\n seen.add(obj);\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n buffers.push(obj.buffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n traverse(ctx);\n return buffers;\n }\n async function initialize() {\n let resolveWaitForModule;\n const waitForModule = new Promise((resolve) => {\n resolveWaitForModule = resolve;\n });\n const pending = [];\n const bufferMessage = (event) => {\n if (event.data.name === "init-wasm") {\n resolveWaitForModule(event.data.module);\n return;\n }\n pending.push(event);\n };\n self.addEventListener("message", bufferMessage);\n await __wbg_init({ module_or_path: await waitForModule });\n self.removeEventListener("message", bufferMessage);\n self.addEventListener("message", onMessage);\n for (const event of pending) {\n onMessage(event);\n }\n pending.length = 0;\n }\n initialize().catch(console.error);\n})();\n//# sourceMappingURL=worker-D9w847yb.js.map\n'; +const blob = typeof self !== "undefined" && self.Blob && new Blob([jsContent], { type: "text/javascript;charset=utf-8" }); +function WorkerWrapper(options) { + let objURL; + try { + objURL = blob && (self.URL || self.webkitURL).createObjectURL(blob); + if (!objURL) throw ""; + const worker = new Worker(objURL, { + name: options == null ? void 0 : options.name + }); + worker.addEventListener("error", () => { + (self.URL || self.webkitURL).revokeObjectURL(objURL); + }); + return worker; + } catch (e) { + return new Worker( + "data:text/javascript;charset=utf-8," + encodeURIComponent(jsContent), + { + name: options == null ? void 0 : options.name + } + ); + } finally { + objURL && (self.URL || self.webkitURL).revokeObjectURL(objURL); + } +} +const _SplatWorker = class _SplatWorker { + constructor() { + this.queue = null; + this.messages = {}; + this.worker = new WorkerWrapper(); + this.worker.onmessage = (event) => this.onMessage(event); + WASM_MODULE.then((module) => { + this.worker.postMessage({ name: "init-wasm", module }); + }); + } + onMessage(event) { + var _a2; + const { id, result, error, status } = event.data; + const promise = this.messages[id]; + if (promise) { + if (error !== void 0) { + delete this.messages[id]; + promise.reject(error); + } else if (status !== void 0) { + (_a2 = promise.onStatus) == null ? void 0 : _a2.call(promise, status); + } else { + delete this.messages[id]; + promise.resolve(result); + } } - if (this.orderingTexture) { - this.orderingTexture.dispose(); - this.orderingTexture = null; + } + tryExclusive(callback) { + return this.queue == null ? this.exclusive(callback) : null; + } + async exclusive(callback) { + const queue = this.queue; + if (queue != null) { + await new Promise((resolve) => { + queue.push(() => resolve(void 0)); + }); + } else { + this.queue = []; } - const accumulators = /* @__PURE__ */ new Set(); - accumulators.add(this.display); - accumulators.add(this.current); - for (const accumulator of this.accumulators) { - accumulators.add(accumulator); + try { + return await callback(this); + } finally { + if (this.queue != null) { + if (this.queue.length === 0) { + this.queue = null; + } else { + const waiter = this.queue.shift(); + waiter(); + } + } + } + } + async call(name, args, options = {}) { + const id = ++_SplatWorker.currentId; + const promise = new Promise((resolve, reject) => { + this.messages[id] = { resolve, reject, onStatus: options.onStatus }; + }); + this.worker.postMessage( + { id, name, args }, + { transfer: getTransferable(args) } + ); + return await promise; + } + dispose() { + this.worker.terminate(); + const messages = Object.values(this.messages); + this.messages = {}; + for (const message of messages) { + message.reject(new Error("Worker terminate")); } - for (const accumulator of accumulators) { - accumulator.dispose(); + } +}; +_SplatWorker.currentId = 0; +let SplatWorker = _SplatWorker; +class NewSplatWorkerPool { + constructor(maxWorkers = 4) { + this.numWorkers = 0; + this.freelist = []; + this.queue = []; + this.maxWorkers = maxWorkers; + } + async withWorker(callback) { + const worker = await this.allocWorker(); + try { + return await callback(worker); + } finally { + this.freeWorker(worker); } - const instances = this.lodInstances.values(); - this.lodInstances.clear(); - for (const instance of instances) { - instance.texture.dispose(); + } + async allocWorker() { + const worker = this.freelist.pop(); + if (worker) { + return worker; } - if (this.sortWorker) { - this.sortWorker.dispose(); - this.sortWorker = null; + if (this.numWorkers < this.maxWorkers) { + const worker2 = new SplatWorker(); + this.numWorkers += 1; + return worker2; } - if (this.lodWorker) { - this.lodWorker.dispose(); - this.lodWorker = null; + return new Promise((resolve) => { + this.queue.push(resolve); + }); + } + freeWorker(worker) { + if (this.numWorkers > this.maxWorkers) { + this.numWorkers -= 1; + return; } - if (this.pager) { - this.pager.dispose(); - this.pager = void 0; + const waiter = this.queue.shift(); + if (waiter) { + waiter(worker); + return; } + this.freelist.push(worker); } - setDirty() { - var _a2; - if (!this.dirty) { - this.dirty = true; - (_a2 = this.onDirty) == null ? void 0 : _a2.call(this); - } +} +const workerPool = new NewSplatWorkerPool(); +const _PackedSplats = class _PackedSplats { + constructor(options = {}) { + this.maxSplats = 0; + this.numSplats = 0; + this.packedArray = null; + this.maxSh = 3; + this.isInitialized = false; + this.target = null; + this.source = null; + this.needsUpdate = true; + this.extra = {}; + this.dyno = new DynoPackedSplats({ packedSplats: this }); + this.dynoRgbMinMaxLnScaleMinMax = new DynoVec4({ + key: "rgbMinMaxLnScaleMinMax", + value: new THREE.Vector4(0, 1, LN_SCALE_MIN, LN_SCALE_MAX), + update: (value) => { + var _a2, _b2, _c, _d; + value.set( + ((_a2 = this.splatEncoding) == null ? void 0 : _a2.rgbMin) ?? 0, + ((_b2 = this.splatEncoding) == null ? void 0 : _b2.rgbMax) ?? 1, + ((_c = this.splatEncoding) == null ? void 0 : _c.lnScaleMin) ?? LN_SCALE_MIN, + ((_d = this.splatEncoding) == null ? void 0 : _d.lnScaleMax) ?? LN_SCALE_MAX + ); + return value; + } + }); + this.dynoNumSh = new DynoInt({ + key: "numSh", + value: 0, + update: () => { + return Math.min(this.getNumSh(), this.maxSh); + } + }); + this.dynoShMax = new DynoVec3({ + key: "shMax", + value: new THREE.Vector3(), + update: (value) => { + var _a2, _b2, _c; + value.set( + ((_a2 = this.splatEncoding) == null ? void 0 : _a2.sh1Max) ?? 1, + ((_b2 = this.splatEncoding) == null ? void 0 : _b2.sh2Max) ?? 1, + ((_c = this.splatEncoding) == null ? void 0 : _c.sh3Max) ?? 1 + ); + return value; + } + }); + this.initialized = Promise.resolve(this); + this.reinitialize(options); } - onBeforeRender(renderer, scene, camera) { - var _a2; - const spark = _SparkRenderer.sparkOverride ?? this; - const frame = renderer.info.render.frame; - const isNewFrame = frame !== spark.lastFrame; - spark.lastFrame = frame; - if (spark.target) { - spark.renderSize.set(spark.target.width, spark.target.height); + reinitialize(options) { + this.isInitialized = false; + this.extra = {}; + this.maxSplats = options.maxSplats ?? 0; + this.splatEncoding = options.splatEncoding; + this.lod = options.lod; + this.nonLod = options.nonLod; + if (options.url || options.fileBytes || options.stream || options.construct) { + this.initialized = this.asyncInitialize(options).then(() => { + this.isInitialized = true; + return this; + }); } else { - const renderSize = renderer.getDrawingBufferSize(spark.renderSize); - if (renderer.xr.isPresenting) { - if (renderSize.x === 1 && renderSize.y === 1) { - const baseLayer = (_a2 = renderer.xr.getSession()) == null ? void 0 : _a2.renderState.baseLayer; - if (baseLayer) { - renderSize.x = baseLayer.framebufferWidth; - renderSize.y = baseLayer.framebufferHeight; - } - } - } - } - this.uniforms.renderSize.value.copy(spark.renderSize); - const typedCamera = camera; - this.uniforms.near.value = typedCamera.near; - this.uniforms.far.value = typedCamera.far; - const geometry = this.geometry; - geometry.instanceCount = spark.activeSplats; - const accumToWorld = new THREE.Matrix4(); - if (!this.display.extSplats) { - accumToWorld.makeTranslation(spark.display.viewOrigin); + this.initialize(options); + this.isInitialized = true; + this.initialized = Promise.resolve(this); } - const cameraToWorld = camera.matrixWorld.clone(); - const worldToCamera = cameraToWorld.invert(); - const accumToCamera = worldToCamera.multiply(accumToWorld); - accumToCamera.decompose( - this.uniforms.renderToViewPos.value, - this.uniforms.renderToViewQuat.value, - new THREE.Vector3() - ); - this.uniforms.renderToViewBasis.value.setFromMatrix4(accumToCamera); - this.uniforms.maxStdDev.value = spark.maxStdDev; - this.uniforms.minPixelRadius.value = spark.minPixelRadius; - this.uniforms.maxPixelRadius.value = spark.maxPixelRadius; - this.uniforms.minAlpha.value = spark.minAlpha; - this.uniforms.enable2DGS.value = spark.enable2DGS; - this.uniforms.lodInflate.value = spark.lodInflate; - this.uniforms.preBlurAmount.value = spark.preBlurAmount; - this.uniforms.blurAmount.value = spark.blurAmount; - this.uniforms.focalDistance.value = spark.focalDistance; - this.uniforms.apertureAngle.value = spark.apertureAngle; - this.uniforms.falloff.value = spark.falloff; - this.uniforms.clipXY.value = spark.clipXY; - this.uniforms.focalAdjustment.value = spark.focalAdjustment; - this.uniforms.encodeLinear.value = spark.encodeLinear; - this.uniforms.ordering.value = spark.orderingTexture ?? _SparkRenderer.emptyOrdering; - this.uniforms.enableExtSplats.value = this.display.extSplats; - this.uniforms.enableCovSplats.value = this.display.covSplats; - if (this.display.extSplats) { - const extSplats = spark.display.getTextures(); - this.uniforms.extSplats.value = extSplats[0]; - this.uniforms.extSplats2.value = extSplats[1]; + } + initialize(options) { + this.extra = options.extra ?? {}; + this.splatEncoding = options.splatEncoding ?? this.splatEncoding; + this.lodSplats = options.lodSplats; + if (options.packedArray) { + this.packedArray = options.packedArray; + this.numSplats = options.numSplats ?? this.packedArray.length / 4; + this.maxSplats = Math.floor(this.packedArray.length / 4); + this.maxSplats = Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + this.numSplats = Math.min( + this.maxSplats, + options.numSplats ?? Number.POSITIVE_INFINITY + ); } else { - const packedSplats = spark.display.getTextures(); - this.uniforms.extSplats.value = packedSplats[0]; - this.uniforms.extSplats2.value = packedSplats[0]; + this.maxSplats = options.maxSplats ?? 0; + this.numSplats = 0; } - this.uniforms.time.value = spark.display.time; - this.uniforms.deltaTime.value = spark.display.deltaTime; - this.uniforms.debugFlag.value = performance.now() / 1e3 % 2 < 1; - if (spark.autoUpdate && isNewFrame) { - const preUpdate = spark.preUpdate && !renderer.xr.isPresenting; - const useCamera = renderer.xr.isPresenting ? renderer.xr.getCamera() : camera; - if (preUpdate) { - spark.updateInternal({ - scene, - camera: useCamera, - autoUpdate: true - }); - } else { - if (spark.updateTimeoutId === -1) { - spark.updateTimeoutId = setTimeout(() => { - spark.updateTimeoutId = -1; - spark.updateInternal({ - scene, - camera: useCamera, - autoUpdate: true - }); - }, 1); - } + } + async asyncInitialize(options) { + const { + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + construct, + lod, + nonLod, + lodAbove + } = options; + this.lod = lod; + this.nonLod = nonLod; + const loader = new SplatLoader(); + if (fileBytes || url || stream) { + await loader.loadInternalAsync({ + packedSplats: this, + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + onProgress: options.onProgress, + lodAbove + }); + } + if (construct) { + const maybePromise = construct(this); + if (maybePromise instanceof Promise) { + await maybePromise; } } - spark.dirty = false; - } - clearSplats() { - this.activeSplats = 0; - this.display.numSplats = 0; - this.setDirty(); - } - async update({ - scene, - camera - }) { - await this.updateInternal({ scene, camera, autoUpdate: false }); } - // /** - // * Provide additional cameras to prefetch paged splat chunks without - // * affecting main LOD selection. - // */ - // setPrefetchCameras(cameras?: THREE.Camera[], lodScaleMultiplier = 1.0) { - // const next = cameras?.filter(Boolean) ?? []; - // const sameCameras = - // this.prefetchCameras.length === next.length && - // this.prefetchCameras.every((camera, index) => camera === next[index]); - // if (sameCameras && this.prefetchLodScale === lodScaleMultiplier) { - // return; - // } - // this.prefetchCameras = next; - // this.prefetchLodScale = lodScaleMultiplier; - // this.invalidatePrefetchCache(); - // } - // /** - // * Invalidate the prefetch meshes cache. Call this when SplatMeshes are - // * added or removed from the scene. - // */ - // invalidatePrefetchCache() { - // this.prefetchMeshesCacheScene = undefined; - // } - async updateInternal({ - scene, - camera, - autoUpdate - }) { - const renderer = this.renderer; - const time = this.time ?? this.clock.getElapsedTime(); - const center = camera.getWorldPosition(new THREE.Vector3()); - const dir = camera.getWorldDirection(new THREE.Vector3()); - const viewChanged = center.distanceTo(this.sortedCenter) > 1e-3 || dir.dot(this.sortedDir) < 0.999; - const next = this.accumulators.pop(); - if (!next) { - throw new Error("No next accumulator"); - } - if (next === this.current) { - throw new Error( - "Next accumulator is the same as the current accumulator" - ); - } - const { version, mappingVersion, visibleGenerators, generate } = next.prepareGenerate({ - renderer, - scene, - time, - camera, - sortRadial: this.sortRadial ?? true, - renderSize: this.renderSize, - previous: this.current, - lodInstances: this.enableLod ? this.lodInstances : void 0 - }); - let doUpdate = true; - const needsUpdate = viewChanged || version !== this.current.version; - const mappingUpdated = mappingVersion !== this.display.mappingVersion; - if (autoUpdate && !needsUpdate) { - doUpdate = false; + // Call this when you are finished with the PackedSplats and want to free + // any buffers it holds. + dispose() { + if (this.target) { + this.target.dispose(); + this.target.texture.source.data = null; + this.target = null; } - if (mappingUpdated && this.sorting) { - doUpdate = false; + if (this.source) { + this.source.dispose(); + this.source.source.data = null; + this.source = null; } - if (!doUpdate) { - this.accumulators.push(next); - } else { - generate(); - if (this.flushAfterGenerate) { - const gl = renderer.getContext(); - gl.flush(); - } - if (this.display.mappingVersion === next.mappingVersion) { - this.accumulators.push(this.display); - this.display = next; - } else { - if (this.display !== this.current) { - this.accumulators.push(this.current); + this.packedArray = null; + for (const key in this.extra) { + const dyno2 = this.extra[key]; + if (dyno2 instanceof DynoUniform) { + const texture2 = dyno2.value; + if (texture2 == null ? void 0 : texture2.isTexture) { + texture2.dispose(); + texture2.source.data = null; } } - this.current = next; - this.sortDirty = true; - this.setDirty(); - } - if (this.enableDriveLod) { - this.driveLod({ visibleGenerators, camera, scene }); } - await this.driveSort(); + this.extra = {}; + this.disposeLodSplats(); } - async driveSort() { - if (this.sorting || !this.sortDirty) { - return; + prepareFetchSplat() { + } + getNumSplats() { + return this.numSplats; + } + hasRgbDir() { + return Math.min(this.getNumSh(), this.maxSh) > 0; + } + getNumSh() { + return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3 ? 2 : 3; + } + setMaxSh(maxSh) { + this.maxSh = maxSh; + } + fetchSplat({ + index, + viewOrigin + }) { + let gsplat = readPackedSplat(this.dyno, index); + if (this.hasRgbDir() && viewOrigin) { + const splatCenter = splitGsplat(gsplat).outputs.center; + const viewDir = normalize(sub(splatCenter, viewOrigin)); + const { sh1Texture, sh2Texture, sh3Texture } = this.ensureShTextures(); + let { rgb } = evaluatePackedSH({ + coord: splatTexCoord(index), + viewDir, + numSh: this.dynoNumSh, + sh1Texture, + sh2Texture, + sh3Texture, + shMax: this.dynoShMax + }); + rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); + gsplat = combineGsplat({ gsplat, rgb }); } - if (this.sortTimeoutId !== -1) { - clearTimeout(this.sortTimeoutId); - this.sortTimeoutId = -1; + return gsplat; + } + ensureShTextures() { + if (!this.extra.sh1) { + return {}; } - const now = performance.now(); - const nextSortTime = this.lastSortTime ? this.lastSortTime + this.minSortIntervalMs : now; - if (now < nextSortTime) { - this.sortTimeoutId = setTimeout(() => { - this.sortTimeoutId = -1; - this.driveSort(); - }, nextSortTime - now); - return; + let sh1Texture = this.extra.sh1Texture; + if (!sh1Texture) { + let sh1 = this.extra.sh1; + const { width, height, depth, maxSplats } = getTextureSize( + sh1.length / 2 + ); + if (sh1.length < maxSplats * 2) { + const newSh1 = new Uint32Array(maxSplats * 2); + newSh1.set(sh1); + this.extra.sh1 = newSh1; + sh1 = newSh1; + } + const texture2 = new THREE.DataArrayTexture(sh1, width, height, depth); + texture2.format = THREE.RGIntegerFormat; + texture2.type = THREE.UnsignedIntType; + texture2.internalFormat = "RG32UI"; + texture2.needsUpdate = true; + sh1Texture = new DynoUsampler2DArray({ + value: texture2, + key: "sh1" + }); + this.extra.sh1Texture = sh1Texture; } - this.sorting = true; - this.sortDirty = false; - this.lastSortTime = now; - if (this.readPause > 0) { - await new Promise((resolve) => setTimeout(resolve, this.readPause)); + if (!this.extra.sh2) { + return { sh1Texture }; } - const current = this.current; - this.sortedCenter.copy(current.viewOrigin); - this.sortedDir.copy(current.viewDirection); - const { numSplats, maxSplats } = current; - const rows = Math.max(1, Math.ceil(maxSplats / 16384)); - const orderingMaxSplats = rows * 16384; - this.maxSplats = Math.max(this.maxSplats, orderingMaxSplats); - const ordering = new Uint32Array(this.maxSplats); - const readback = Readback.ensureBuffer(maxSplats, this.readback32); - this.readback32 = readback; - await this.readbackDepth({ - current, - renderer: this.renderer, - numSplats, - readback - }); - if (this.sortPause > 0) { - await new Promise((resolve) => setTimeout(resolve, this.sortPause)); + let sh2Texture = this.extra.sh2Texture; + if (!sh2Texture) { + let sh2 = this.extra.sh2; + const { width, height, depth, maxSplats } = getTextureSize( + sh2.length / 4 + ); + if (sh2.length < maxSplats * 4) { + const newSh2 = new Uint32Array(maxSplats * 4); + newSh2.set(sh2); + this.extra.sh2 = newSh2; + sh2 = newSh2; + } + const texture2 = new THREE.DataArrayTexture(sh2, width, height, depth); + texture2.format = THREE.RGBAIntegerFormat; + texture2.type = THREE.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + sh2Texture = new DynoUsampler2DArray({ + value: texture2, + key: "sh2" + }); + this.extra.sh2Texture = sh2Texture; } - if (!this.sortWorker) { - this.sortWorker = new SplatWorker(); + if (!this.extra.sh3) { + return { sh1Texture, sh2Texture }; } - const result = await this.sortWorker.call("sortSplats32", { - numSplats, - readback, - ordering - }); - if (this.sortDelay > 0) { - await new Promise((resolve) => setTimeout(resolve, this.sortDelay)); + let sh3Texture = this.extra.sh3Texture; + if (!sh3Texture) { + let sh3 = this.extra.sh3; + const { width, height, depth, maxSplats } = getTextureSize( + sh3.length / 4 + ); + if (sh3.length < maxSplats * 4) { + const newSh3 = new Uint32Array(maxSplats * 4); + newSh3.set(sh3); + this.extra.sh3 = newSh3; + sh3 = newSh3; + } + const texture2 = new THREE.DataArrayTexture(sh3, width, height, depth); + texture2.format = THREE.RGBAIntegerFormat; + texture2.type = THREE.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + sh3Texture = new DynoUsampler2DArray({ + value: texture2, + key: "sh3" + }); + this.extra.sh3Texture = sh3Texture; } - this.readback32 = result.readback; - this.activeSplats = result.activeSplats; - if (this.orderingTexture) { - if (rows > this.orderingTexture.image.height) { - this.orderingTexture.dispose(); - this.orderingTexture = null; + return { sh1Texture, sh2Texture, sh3Texture }; + } + // Ensures that this.packedArray can fit numSplats Gsplats. If it's too small, + // resize exponentially and copy over the original data. + // + // Typically you don't need to call this, because calling this.setSplat(index, ...) + // and this.pushSplat(...) will automatically call ensureSplats() so we have + // enough splats. + ensureSplats(numSplats) { + const targetSize = numSplats <= this.maxSplats ? this.maxSplats : ( + // Grow exponentially to avoid frequent reallocations + Math.max(numSplats, 2 * this.maxSplats) + ); + const currentSize = !this.packedArray ? 0 : this.packedArray.length / 4; + if (!this.packedArray || targetSize > currentSize) { + this.maxSplats = getTextureSize(targetSize).maxSplats; + const newArray2 = new Uint32Array(this.maxSplats * 4); + if (this.packedArray) { + newArray2.set(this.packedArray); } + this.packedArray = newArray2; } - if (!this.orderingTexture) { - const orderingTexture = new THREE.DataTexture( - result.ordering, - 4096, - rows, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType - ); - orderingTexture.internalFormat = "RGBA32UI"; - orderingTexture.needsUpdate = true; - this.orderingTexture = orderingTexture; + return this.packedArray; + } + // Ensure the extra array for the given level is large enough to hold numSplats + ensureSplatsSh(level, numSplats) { + let wordsPerSplat; + let key; + if (level === 0) { + return this.ensureSplats(numSplats); + } + if (level === 1) { + wordsPerSplat = 2; + key = "sh1"; + } else if (level === 2) { + wordsPerSplat = 4; + key = "sh2"; + } else if (level === 3) { + wordsPerSplat = 4; + key = "sh3"; } else { - const renderer = this.renderer; - const gl = renderer.getContext(); - if (!renderer.properties.has(this.orderingTexture)) { - this.orderingTexture.needsUpdate = true; - } else { - const props = renderer.properties.get(this.orderingTexture); - const glTexture = props.__webglTexture; - if (!glTexture) { - throw new Error("ordering texture not found"); - } - renderer.state.activeTexture(gl.TEXTURE0); - renderer.state.bindTexture(gl.TEXTURE_2D, glTexture); - gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null); - gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false); - gl.texSubImage2D( - gl.TEXTURE_2D, - 0, - 0, - 0, - 4096, - rows, - gl.RGBA_INTEGER, - gl.UNSIGNED_INT, - // data, - result.ordering - ); - renderer.state.bindTexture(gl.TEXTURE_2D, null); - } + throw new Error(`Invalid level: ${level}`); } - if (this.current.mappingVersion === current.mappingVersion) { - if (this.current.mappingVersion !== this.display.mappingVersion) { - this.accumulators.push(this.display); - this.display = this.current; + let maxSplats = !this.extra[key] ? 0 : this.extra[key].length / wordsPerSplat; + const targetSize = numSplats <= maxSplats ? maxSplats : Math.max(numSplats, 2 * maxSplats); + if (!this.extra[key] || targetSize > maxSplats) { + maxSplats = getTextureSize(targetSize).maxSplats; + const newArray2 = new Uint32Array(maxSplats * wordsPerSplat); + if (this.extra[key]) { + newArray2.set(this.extra[key]); } + this.extra[key] = newArray2; } - this.sorting = false; - this.setDirty(); - this.driveSort(); + return this.extra[key]; } - ensureLodWorker() { - if (!this.lodWorker) { - this.lodWorker = new SplatWorker(); + // Unpack the 16-byte Gsplat data at index into the Three.js components + // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, + // opacity: number 0..1, color: THREE.Color 0..1. + getSplat(index) { + if (!this.packedArray || index >= this.numSplats) { + throw new Error("Invalid index"); } - return this.lodWorker; + return unpackSplat(this.packedArray, index, this.splatEncoding); } - defaultSplatTarget() { - return isOculus() ? 5e5 : isVisionPro() ? 75e4 : isAndroid() ? 1e6 : isIos() ? 15e5 : 25e5; + // Set all PackedSplat components at index with the provided Gsplat attributes + // (can be the same objects returned by getSplat). Ensures there is capacity + // for at least index+1 Gsplats. + setSplat(index, center, scales, quaternion, opacity, color) { + const packedSplats = this.ensureSplats(index + 1); + setPackedSplat( + packedSplats, + index, + center.x, + center.y, + center.z, + scales.x, + scales.y, + scales.z, + quaternion.x, + quaternion.y, + quaternion.z, + quaternion.w, + opacity, + color.r, + color.g, + color.b + ); + this.numSplats = Math.max(this.numSplats, index + 1); } - driveLod({ - visibleGenerators, - camera, - scene - }) { - var _a2, _b2; - const defaultSplatCount = this.defaultSplatTarget(); - const splatCount = this.lodSplatCount ?? defaultSplatCount; - const maxSplats = splatCount * this.lodSplatScale; - let pixelScaleLimit = 0; - if (camera instanceof THREE.PerspectiveCamera) { - const tanYfov = Math.tan(0.5 * camera.fov * Math.PI / 180); - pixelScaleLimit = 2 * tanYfov / this.renderSize.y; - } else if (camera instanceof THREE.OrthographicCamera) { - const viewHeight = (camera.top - camera.bottom) / camera.zoom; - const viewWidth = (camera.right - camera.left) / camera.zoom; - const pxY = viewHeight / Math.max(1, this.renderSize.y); - const pxX = viewWidth / Math.max(1, this.renderSize.x); - pixelScaleLimit = Math.min(pxX, pxY); + // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on + // construction where you just want to iterate and create a collection of Gsplats. + pushSplat(center, scales, quaternion, opacity, color) { + const packedSplats = this.ensureSplats(this.numSplats + 1); + setPackedSplat( + packedSplats, + this.numSplats, + center.x, + center.y, + center.z, + scales.x, + scales.y, + scales.z, + quaternion.x, + quaternion.y, + quaternion.z, + quaternion.w, + opacity, + color.r, + color.g, + color.b + ); + ++this.numSplats; + } + // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat + // and invoke the callback function with the Gsplat attributes. + forEachSplat(callback) { + if (!this.packedArray || !this.numSplats) { + return; } - pixelScaleLimit *= this.lodRenderScale; - const viewPos = new THREE.Vector3(); - const viewQuat = new THREE.Quaternion(); - this.current.viewToWorld.decompose(viewPos, viewQuat, new THREE.Vector3()); - if (this.lodPosOverride) { - viewPos.copy(this.lodPosOverride); + for (let i = 0; i < this.numSplats; ++i) { + const unpacked = unpackSplat(this.packedArray, i, this.splatEncoding); + callback( + i, + unpacked.center, + unpacked.scales, + unpacked.quaternion, + unpacked.opacity, + unpacked.color + ); } - if (this.lodQuatOverride) { - viewQuat.copy(this.lodQuatOverride).normalize(); + } + // Ensures our PackedSplats.target render target has enough space to generate + // maxSplats total Gsplats, and reallocate if not large enough. + ensureGenerate(maxSplats) { + if (this.target && (maxSplats ?? 1) <= this.maxSplats) { + return false; } - if (this.lastLod) { - if (this.lastLod.pixelScaleLimit !== pixelScaleLimit || this.lastLod.maxSplats !== maxSplats) { - this.lodDirty = true; - } - const distance2 = viewPos.distanceTo(this.lastLod.pos); - const distanceRamp = Math.max(0, 1 - distance2 / 1); - const dot2 = viewQuat.dot(this.lastLod.quat); - const quatRamp = Math.max(0, 1 - (1 - dot2) / 0.01); - const similarity = distanceRamp * quatRamp; - if (similarity < 0.999) { - this.lodDirty = true; - } + if (this.target) { + this.target.dispose(); } - const lodMeshes = !this.enableLod ? [] : visibleGenerators.filter((generator) => { - var _a3, _b3; - return generator instanceof SplatMesh && (((_a3 = generator.packedSplats) == null ? void 0 : _a3.lodSplats) || ((_b3 = generator.extSplats) == null ? void 0 : _b3.lodSplats) || generator.paged) && generator.enableLod !== false; + const textureSize2 = getTextureSize(maxSplats ?? 1); + const { width, height, depth } = textureSize2; + this.maxSplats = textureSize2.maxSplats; + this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, { + depthBuffer: false, + stencilBuffer: false, + generateMipmaps: false, + magFilter: THREE.NearestFilter, + minFilter: THREE.NearestFilter }); - const hasPaged = lodMeshes.some((mesh) => mesh.paged); - if (this.lodMeshes.length !== lodMeshes.length) { - this.lodDirty = true; - } else { - if (lodMeshes.some( - (m, i) => m !== this.lodMeshes[i].mesh || m.version > this.lodMeshes[i].version - )) { - this.lodDirty = true; - } + this.target.texture.format = THREE.RGBAIntegerFormat; + this.target.texture.type = THREE.UnsignedIntType; + this.target.texture.internalFormat = "RGBA32UI"; + this.target.scissorTest = true; + return true; + } + // Given an array of splatCounts (.numSplats for each + // SplatGenerator/SplatMesh in the scene), compute a + // "mapping layout" in the composite array of generated outputs. + generateMapping(splatCounts) { + let maxSplats = 0; + const mapping = splatCounts.map((numSplats) => { + const base = maxSplats; + const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + maxSplats += rounded; + return { base, count: numSplats }; + }); + return { maxSplats, mapping }; + } + // Returns a THREE.DataArrayTexture representing the PackedSplats content as + // a Uint32x4 data array texture (2048 x 2048 x depth in size) + getTexture() { + if (this.target) { + return this.target.texture; } - this.lodMeshes = lodMeshes.map((mesh) => ({ - mesh, - version: mesh.version + 1 - })); - this.lodInitQueue = []; - const now = performance.now(); - for (const mesh of lodMeshes) { - const splats = ((_a2 = mesh.packedSplats) == null ? void 0 : _a2.lodSplats) ?? ((_b2 = mesh.extSplats) == null ? void 0 : _b2.lodSplats) ?? mesh.paged; - if (splats) { - const record = this.lodIds.get(splats); - if (record) { - record.lastTouched = now; - } else { - this.lodInitQueue.push(splats); - } - } + if (this.source || this.packedArray) { + const source = this.maybeUpdateSource(); + return source; } - this.ensureLodWorker().tryExclusive(async (worker) => { - if (hasPaged && !this.pager) { - this.pager = new SplatPager({ - renderer: this.renderer, - extSplats: this.pagedExtSplats, - maxSplats: this.maxPagedSplats, - numFetchers: this.numLodFetchers - }); - const { lodId } = await worker.call("newLodTree", { - capacity: this.pager.maxSplats - }); - this.pagerId = lodId; - } - if (this.pager) { - for (const { mesh } of this.lodMeshes) { - if (mesh.paged && !mesh.paged.pager) { - mesh.paged.pager = this.pager; - } - } - } - if (this.lodInitQueue.length > 0) { - const lodInitQueue = this.lodInitQueue; - this.lodInitQueue = []; - while (lodInitQueue.length > 0) { - const splats = lodInitQueue.shift(); - if (splats) { - await this.initLodTree(worker, splats); - this.lodDirty = true; - } - } - } - if (this.pager) { - const updates = this.pager.consumeLodTreeUpdates(); - for (const { splats, page, chunk, numSplats, lodTree } of updates) { - const record = this.lodIds.get(splats); - if (record) { - if (lodTree && chunk === 0) { - record.rootPage = page; - } - this.lodUpdates.push({ - lodId: record.lodId, - pageBase: page * this.pager.pageSplats, - chunkBase: chunk * this.pager.pageSplats, - count: numSplats, - lodTreeData: lodTree - }); - } + return _PackedSplats.getEmptyArray; + } + // Check if source texture needs to be created/updated + maybeUpdateSource() { + if (!this.packedArray) { + throw new Error("No packed splats"); + } + if (this.needsUpdate || !this.source) { + this.needsUpdate = false; + if (this.source) { + const { width, height, depth } = this.source.image; + if (this.maxSplats !== width * height * depth) { + this.source.dispose(); + this.source = null; } } - if (this.lodUpdates.length > 0) { - const lodUpdates = this.lodUpdates; - this.lodUpdates = []; - await worker.call("updateLodTrees", { ranges: lodUpdates }); - this.lodDirty = true; - } - if (this.lodDirty) { - const now2 = performance.now(); - const deltaPred = new THREE.Vector3(); - if (this.lastLod) { - const deltaTime = Math.max(1, now2 - this.lastLod.timestamp); - deltaPred.copy(viewPos).sub(this.lastLod.pos).multiplyScalar(this.lastTraverseTime / deltaTime); - } - this.lastLod = { - pos: viewPos, - quat: viewQuat, - pixelScaleLimit, - maxSplats, - timestamp: now2 - }; - this.lodDirty = false; - await this.updateLodInstances( - worker, - deltaPred, - lodMeshes, - maxSplats, - viewPos, - viewQuat, - pixelScaleLimit + if (!this.source) { + const { width, height, depth } = getTextureSize(this.maxSplats); + this.source = new THREE.DataArrayTexture( + this.packedArray, + width, + height, + depth ); - this.currentLod = this.lastLod; - this.setDirty(); + this.source.format = THREE.RGBAIntegerFormat; + this.source.type = THREE.UnsignedIntType; + this.source.internalFormat = "RGBA32UI"; + this.source.needsUpdate = true; + } else if (this.packedArray.buffer !== this.source.image.data.buffer) { + this.source.image.data = new Uint8Array(this.packedArray.buffer); } - await this.cleanupLodTrees(worker); - }); - } - async initLodTree(worker, splats) { - if (splats instanceof PackedSplats || splats instanceof ExtSplats) { - const { lodId } = await worker.call("initLodTree", { - numSplats: splats.numSplats ?? 0, - lodTree: splats.extra.lodTree.slice() - }); - this.lodIds.set(splats, { lodId, lastTouched: performance.now() }); - this.lodIdToSplats.set(lodId, splats); - } else { - const { lodId } = await worker.call("newSharedLodTree", { - lodId: this.pagerId - }); - this.lodIds.set(splats, { lodId, lastTouched: performance.now() }); - this.lodIdToSplats.set(lodId, splats); + this.source.needsUpdate = true; } + return this.source; } - async updateLodInstances(worker, deltaPred, lodMeshes, maxSplats, viewPos, viewQuat, pixelScaleLimit) { - const uuidToMesh = /* @__PURE__ */ new Map(); - const cameraToWorld = new THREE.Matrix4().compose( - viewPos, - viewQuat, - new THREE.Vector3().setScalar(1) - ); - const instances = lodMeshes.reduce( - (instances2, mesh) => { - var _a2, _b2; - uuidToMesh.set(mesh.uuid, mesh); - const viewToObject = mesh.matrixWorld.clone().invert().multiply(cameraToWorld); - const splats = ((_a2 = mesh.packedSplats) == null ? void 0 : _a2.lodSplats) ?? ((_b2 = mesh.extSplats) == null ? void 0 : _b2.lodSplats) ?? mesh.paged; - if (!splats) { - return instances2; - } - const record = this.lodIds.get(splats); - if (!record) { - return instances2; - } - if (this.pager && mesh.paged && record.rootPage === void 0) { - return instances2; - } - instances2[mesh.uuid] = { - instanceId: mesh.uuid, - lodId: record.lodId, - rootPage: record.rootPage, - viewToObjectCols: viewToObject.elements, - lodScale: mesh.lodScale, - behindFoveate: mesh.behindFoveate ?? this.behindFoveate, - coneFov0: mesh.coneFov0 ?? this.coneFov0, - coneFov: mesh.coneFov ?? this.coneFov, - coneFoveate: mesh.coneFoveate ?? this.coneFoveate - }; - return instances2; - }, - {} - ); - const traverseStart = performance.now(); - const result = await worker.call("traverseLodTrees", { - maxSplats, - pixelScaleLimit, - lastPixelLimit: this.lastPixelLimit, - instances - }); - this.lastTraverseTime = performance.now() - traverseStart; - const { keyIndices, chunks, pixelLimit } = result; - this.lastPixelLimit = pixelLimit; - const totalLodSplats = Object.values(keyIndices).reduce( - (sum, { numSplats }) => sum + numSplats, - 0 - ); - this.updateLodIndices(uuidToMesh, keyIndices); - if (this.pager) { - this.pager.processUploads(); - const pagedMeshes = lodMeshes.map((mesh) => { - if (!mesh.paged || !this.pager) { - return null; + // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator, + // generating it if necessary and caching the result. + prepareProgramMaterial(generator) { + let program = _PackedSplats.generatorProgram.get(generator); + if (!program) { + const graph = dynoBlock( + { index: "int" }, + {}, + ({ index }, _outputs, { roots }) => { + generator.inputs.index = index; + const gsplat = generator.outputs.gsplat; + const output = outputPackedSplat( + gsplat, + this.dynoRgbMinMaxLnScaleMinMax + ); + roots.push(output); + return void 0; } - const meshPosition = mesh.getWorldPosition(new THREE.Vector3()); - return { - splats: mesh.paged, - distance: meshPosition.distanceTo(viewPos) - }; - }).filter((result2) => result2 !== null); - if (!this.pageSizeWarning && pagedMeshes.length > this.pager.maxPages) { - this.pageSizeWarning = true; - console.warn( - `# paged SplatMeshes exceeds maxPages: ${pagedMeshes.length} > ${this.pager.maxPages}` + ); + if (!_PackedSplats.programTemplate) { + _PackedSplats.programTemplate = new DynoProgramTemplate( + getShaders().computeUvec4Template ); } - pagedMeshes.sort((a, b) => a.distance - b.distance); - this.pager.fetchPriority = pagedMeshes.map(({ splats }) => ({ - splats, - chunk: 0 - })); - for (const [lodId, chunk] of chunks) { - const splats = this.lodIdToSplats.get(lodId); - if (splats instanceof PagedSplats) { - if (chunk !== 0) { - this.pager.fetchPriority.push({ splats, chunk }); - } - } - } - this.pager.autoDrive = this.enableLodFetching; - if (this.enableLodFetching) { - this.pager.driveFetchers(); - } - } - if (this.lodRaycast && performance.now() - this.lastLodRaycastTime >= this.lodRaycastIntervalMs) { - this.lastLodRaycastTime = performance.now(); - const traverseStart2 = performance.now(); - const result2 = await worker.call("traverseLodTrees", { - maxSplats: Math.min(this.lodRaycast, Math.round(totalLodSplats * 0.1)), - pixelScaleLimit, - instances + program = new DynoProgram({ + graph, + inputs: { index: "_index" }, + outputs: { output: "target" }, + template: _PackedSplats.programTemplate }); - performance.now() - traverseStart2; - const { keyIndices: keyIndices2 } = result2; - Object.values(keyIndices2).reduce( - (sum, { numSplats }) => sum + numSplats, - 0 + Object.assign(program.uniforms, { + targetLayer: { value: 0 }, + targetBase: { value: 0 }, + targetCount: { value: 0 } + }); + _PackedSplats.generatorProgram.set(generator, program); + } + const material = program.prepareMaterial(); + _PackedSplats.fullScreenQuad.material = material; + return { program, material }; + } + saveRenderState(renderer) { + return { + target: renderer.getRenderTarget(), + xrEnabled: renderer.xr.enabled, + autoClear: renderer.autoClear + }; + } + resetRenderState(renderer, state) { + renderer.setRenderTarget(state.target); + renderer.xr.enabled = state.xrEnabled; + renderer.autoClear = state.autoClear; + } + // Executes a dyno program specified by generator which is any DynoBlock that + // maps { index: "int" } to { gsplat: Gsplat }. This is called in + // SparkRenderer.updateInternal() to re-generate Gsplats in the scene for + // SplatGenerator instances whose version is newer than what was generated + // for it last time. + generate({ + generator, + base, + count, + renderer + }) { + if (!this.target) { + throw new Error("Target must be initialized with ensureSplats"); + } + if (base + count > this.maxSplats) { + throw new Error("Base + count exceeds maxSplats"); + } + const { program, material } = this.prepareProgramMaterial(generator); + program.update(); + const renderState = this.saveRenderState(renderer); + const nextBase = Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT; + material.uniforms.targetBase.value = base; + material.uniforms.targetCount.value = count; + while (base < nextBase) { + const layer = Math.floor(base / layerSize); + material.uniforms.targetLayer.value = layer; + const layerBase = layer * layerSize; + const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH); + const layerYEnd = Math.min( + SPLAT_TEX_HEIGHT, + Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH) ); - for (const [uuid, countIndices] of Object.entries(keyIndices2)) { - const mesh = uuidToMesh.get(uuid); - mesh.raycastIndices = countIndices; - } + this.target.scissor.set( + 0, + layerYStart, + SPLAT_TEX_WIDTH, + layerYEnd - layerYStart + ); + renderer.setRenderTarget(this.target, layer); + renderer.xr.enabled = false; + renderer.autoClear = false; + _PackedSplats.fullScreenQuad.render(renderer); + base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart); } + this.resetRenderState(renderer, renderState); + return { nextBase }; } - async cleanupLodTrees(worker) { - const DISPOSE_TIMEOUT_MS = 3e3; - const now = performance.now(); - let oldest = null; - for (const [splats, record] of this.lodIds.entries()) { - if (oldest == null || record.lastTouched < oldest.lastTouched) { - oldest = { - splats, - lastTouched: record.lastTouched, - lodId: record.lodId - }; - } + disposeLodSplats() { + if (this.lodSplats) { + this.lodSplats.dispose(); + this.lodSplats = void 0; } - if (!oldest || oldest.lastTouched > now - DISPOSE_TIMEOUT_MS) { - return; + } + async createLodSplats({ + rgbaArray, + quality + } = {}) { + const lodBase = typeof this.lod === "number" ? Math.max(1.1, Math.min(2, this.lod)) : quality ? 1.75 : 1.5; + const packedArray = this.packedArray.slice(); + const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : void 0; + const extra = { + sh1: this.extra.sh1 ? this.extra.sh1.slice() : void 0, + sh2: this.extra.sh2 ? this.extra.sh2.slice() : void 0, + sh3: this.extra.sh3 ? this.extra.sh3.slice() : void 0 + }; + const decoded = await workerPool.withWorker(async (worker) => { + return await worker.call( + quality ? "qualityLodPackedSplats" : "tinyLodPackedSplats", + { + numSplats: this.numSplats, + packedArray, + extra, + lodBase, + rgba, + encoding: this.splatEncoding ?? DEFAULT_SPLAT_ENCODING + } + ); + }); + const lodSplats = new _PackedSplats(decoded); + if (this.lodSplats) { + this.lodSplats.dispose(); } - this.lodIds.delete(oldest.splats); - this.lodIdToSplats.delete(oldest.lodId); - for (const [mesh, instance] of this.lodInstances.entries()) { - if (instance.lodId === oldest.lodId) { - instance.texture.dispose(); - this.lodInstances.delete(mesh); + this.lodSplats = lodSplats; + this.nonLod = true; + this.lod = quality ? "quality" : true; + } + extractSplats(indices, pageColoring) { + const maxSplats = getTextureSize(indices.length).maxSplats; + const newSplats = new _PackedSplats({ maxSplats }); + for (let i = 0; i < indices.length; i++) { + const splat = this.getSplat(indices[i]); + if (pageColoring) { + let hue = (indices[i] >>> 16) * 0.61803398875; + hue = hue - Math.floor(hue); + const r = Math.max(0, Math.min(1, Math.abs(hue * 6 - 3) - 1)); + const g = Math.max(0, Math.min(1, Math.abs(hue * 6 + 1) - 1)); + const b = Math.max(0, Math.min(1, Math.abs(hue * 6 - 1) - 1)); + splat.color.r *= r; + splat.color.g *= g; + splat.color.b *= b; } + newSplats.pushSplat( + splat.center, + splat.scales, + splat.quaternion, + splat.opacity, + splat.color + ); } - await worker.call("disposeLodTree", { lodId: oldest.lodId }); + return newSplats; } - updateLodIndices(uuidToMesh, keyIndices) { - for (const [uuid, countIndices] of Object.entries(keyIndices)) { - const { lodId, numSplats, indices } = countIndices; - const mesh = uuidToMesh.get(uuid); - if (mesh.paged) { - mesh.paged.update(numSplats, indices); - } else { - let instance = this.lodInstances.get(mesh); - if (instance) { - if (indices.length > instance.indices.length) { - instance.texture.dispose(); - instance = void 0; - } - } - const rows = Math.ceil(indices.length / 16384); - if (!instance) { - const capacity = rows * 16384; - if (indices.length !== capacity) { - throw new Error("Indices length != capacity"); - } - const texture2 = new THREE.DataTexture( - indices, - 4096, - rows, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType - ); - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - instance = { lodId, numSplats, indices, texture: texture2 }; - this.lodInstances.set(mesh, instance); - } else { - instance.numSplats = numSplats; - const renderer = this.renderer; - const gl = renderer.getContext(); - if (renderer.properties.has(instance.texture)) { - const props = renderer.properties.get(instance.texture); - const glTexture = props.__webglTexture; - if (!glTexture) { - throw new Error("lodIndices texture not found"); - } - renderer.state.activeTexture(gl.TEXTURE0); - renderer.state.bindTexture(gl.TEXTURE_2D, glTexture); - gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null); - gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false); - gl.texSubImage2D( - gl.TEXTURE_2D, - 0, - 0, - 0, - 4096, - rows, - gl.RGBA_INTEGER, - gl.UNSIGNED_INT, - indices - ); - renderer.state.bindTexture(gl.TEXTURE_2D, null); - } - } +}; +_PackedSplats.getEmptyArray = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 4); + const texture2 = new THREE.DataArrayTexture( + emptyArray, + width, + height, + depth + ); + texture2.format = THREE.RGBAIntegerFormat; + texture2.type = THREE.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +_PackedSplats.programTemplate = null; +_PackedSplats.generatorProgram = /* @__PURE__ */ new WeakMap(); +_PackedSplats.fullScreenQuad = new FullScreenQuad( + new THREE.RawShaderMaterial({ visible: false }) +); +_PackedSplats.emptyUint32x4 = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 4); + const texture2 = new THREE.DataArrayTexture( + emptyArray, + width, + height, + depth + ); + texture2.format = THREE.RGBAIntegerFormat; + texture2.type = THREE.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +_PackedSplats.emptyUint32x2 = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 2); + const texture2 = new THREE.DataArrayTexture( + emptyArray, + width, + height, + depth + ); + texture2.format = THREE.RGIntegerFormat; + texture2.type = THREE.UnsignedIntType; + texture2.internalFormat = "RG32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +let PackedSplats = _PackedSplats; +class DynoPackedSplats extends DynoUniform { + constructor({ packedSplats } = {}) { + super({ + key: "packedSplats", + type: TPackedSplats, + globals: () => [definePackedSplats], + value: { + textureArray: PackedSplats.getEmptyArray, + numSplats: 0, + rgbMinMaxLnScaleMinMax: new THREE.Vector4( + 0, + 1, + LN_SCALE_MIN, + LN_SCALE_MAX + ), + lodOpacity: false + }, + update: (value) => { + var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l; + value.textureArray = ((_a2 = this.packedSplats) == null ? void 0 : _a2.getTexture()) ?? PackedSplats.getEmptyArray; + value.numSplats = ((_b2 = this.packedSplats) == null ? void 0 : _b2.numSplats) ?? 0; + value.rgbMinMaxLnScaleMinMax.set( + ((_d = (_c = this.packedSplats) == null ? void 0 : _c.splatEncoding) == null ? void 0 : _d.rgbMin) ?? 0, + ((_f = (_e = this.packedSplats) == null ? void 0 : _e.splatEncoding) == null ? void 0 : _f.rgbMax) ?? 1, + ((_h = (_g = this.packedSplats) == null ? void 0 : _g.splatEncoding) == null ? void 0 : _h.lnScaleMin) ?? LN_SCALE_MIN, + ((_j = (_i = this.packedSplats) == null ? void 0 : _i.splatEncoding) == null ? void 0 : _j.lnScaleMax) ?? LN_SCALE_MAX + ); + value.lodOpacity = ((_l = (_k = this.packedSplats) == null ? void 0 : _k.splatEncoding) == null ? void 0 : _l.lodOpacity) ?? false; + return value; } - mesh.updateMappingVersion(); - } + }); + this.packedSplats = packedSplats; } - async readbackDepth({ - current, - renderer, - numSplats, - readback - }) { - if (!renderer) { - throw new Error("No renderer"); - } - if (!current.target) { - throw new Error("No target"); - } - const roundedCount = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - if (readback.byteLength < roundedCount * 4) { - throw new Error( - `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}` - ); - } - const readbackUint8 = new Uint8Array(readback.buffer); - const renderState = this.saveRenderState(renderer); - const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT; - let baseIndex = 0; - const promises = []; - while (baseIndex < numSplats) { - const layer = Math.floor(baseIndex / layerSize); - const layerBase = layer * layerSize; - const layerYEnd = Math.min( - SPLAT_TEX_HEIGHT, - Math.ceil((numSplats - layerBase) / SPLAT_TEX_WIDTH) - ); - const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4; - const subReadback = readbackUint8.subarray( - layerBase * 4, - layerBase * 4 + readbackSize - ); - renderer.setRenderTarget(current.target, layer); - const promise = renderer.readRenderTargetPixelsAsync( - current.target, - 0, - 0, - SPLAT_TEX_WIDTH, - layerYEnd, - subReadback, - void 0, - current.extSplats ? 2 : 1 - ); - promises.push(promise); - if (this.flushAfterRead) { - const gl = renderer.getContext(); - gl.flush(); +} +const defineEvalPackedSH1 = unindent(` + vec3 evaluatePackedSH1(uvec2 packedData, vec3 viewDir, float sh1Max) { + // Extract sint7 values packed into 2 x uint32 + vec3 sh1_0 = vec3(ivec3( + int(packedData.x << 25u) >> 25, + int(packedData.x << 18u) >> 25, + int(packedData.x << 11u) >> 25 + )); + vec3 sh1_1 = vec3(ivec3( + int(packedData.x << 4u) >> 25, + int((packedData.x >> 3u) | (packedData.y << 29u)) >> 25, + int(packedData.y << 22u) >> 25 + )); + vec3 sh1_2 = vec3(ivec3( + int(packedData.y << 15u) >> 25, + int(packedData.y << 8u) >> 25, + int(packedData.y << 1u) >> 25 + )); + + vec3 rgb = sh1_0 * (-0.4886025 * viewDir.y) + + sh1_1 * (0.4886025 * viewDir.z) + + sh1_2 * (-0.4886025 * viewDir.x); + return rgb * (sh1Max / 63.0); + } +`); +const defineEvalPackedSH2 = unindent(` + vec3 evaluatePackedSH2(uvec4 packedData, vec3 viewDir, float sh2Max) { + // Extract sint8 values packed into 4 x uint32 + vec3 sh2_0 = vec3(ivec3( + int(packedData.x << 24u) >> 24, + int(packedData.x << 16u) >> 24, + int(packedData.x << 8u) >> 24 + )); + vec3 sh2_1 = vec3(ivec3( + int(packedData.x) >> 24, + int(packedData.y << 24u) >> 24, + int(packedData.y << 16u) >> 24 + )); + vec3 sh2_2 = vec3(ivec3( + int(packedData.y << 8u) >> 24, + int(packedData.y) >> 24, + int(packedData.z << 24u) >> 24 + )); + vec3 sh2_3 = vec3(ivec3( + int(packedData.z << 16u) >> 24, + int(packedData.z << 8u) >> 24, + int(packedData.z) >> 24 + )); + vec3 sh2_4 = vec3(ivec3( + int(packedData.w << 24u) >> 24, + int(packedData.w << 16u) >> 24, + int(packedData.w << 8u) >> 24 + )); + + vec3 rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y) + + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z) + + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y)) + + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z) + + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y)); + return rgb * (sh2Max / 127.0); + } +`); +const defineEvalPackedSH3 = unindent(` + vec3 evaluatePackedSH3(uvec4 packedData, vec3 viewDir, float sh3Max) { + // Extract sint6 values packed into 4 x uint32 + vec3 sh3_0 = vec3(ivec3( + int(packedData.x << 26u) >> 26, + int(packedData.x << 20u) >> 26, + int(packedData.x << 14u) >> 26 + )); + vec3 sh3_1 = vec3(ivec3( + int(packedData.x << 8u) >> 26, + int(packedData.x << 2u) >> 26, + int((packedData.x >> 4u) | (packedData.y << 28u)) >> 26 + )); + vec3 sh3_2 = vec3(ivec3( + int(packedData.y << 22u) >> 26, + int(packedData.y << 16u) >> 26, + int(packedData.y << 10u) >> 26 + )); + vec3 sh3_3 = vec3(ivec3( + int(packedData.y << 4u) >> 26, + int((packedData.y >> 2u) | (packedData.z << 30u)) >> 26, + int(packedData.z << 24u) >> 26 + )); + vec3 sh3_4 = vec3(ivec3( + int(packedData.z << 18u) >> 26, + int(packedData.z << 12u) >> 26, + int(packedData.z << 6u) >> 26 + )); + vec3 sh3_5 = vec3(ivec3( + int(packedData.z) >> 26, + int(packedData.w << 26u) >> 26, + int(packedData.w << 20u) >> 26 + )); + vec3 sh3_6 = vec3(ivec3( + int(packedData.w << 14u) >> 26, + int(packedData.w << 8u) >> 26, + int(packedData.w << 2u) >> 26 + )); + + float xx = viewDir.x * viewDir.x; + float yy = viewDir.y * viewDir.y; + float zz = viewDir.z * viewDir.z; + float xy = viewDir.x * viewDir.y; + float yz = viewDir.y * viewDir.z; + float zx = viewDir.z * viewDir.x; + + vec3 rgb = sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy)) + + sh3_1 * (2.8906114 * xy * viewDir.z) + + + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy)) + + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) + + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy)) + + sh3_5 * (1.4453057 * viewDir.z * (xx - yy)) + + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy)); + return rgb * (sh3Max / 31.0); + } +`); +function evaluatePackedSH({ + coord, + viewDir, + numSh, + sh1Texture, + sh2Texture, + sh3Texture, + shMax +}) { + return new Dyno({ + inTypes: { + coord: "ivec3", + viewDir: "vec3", + numSh: "int", + sh1Texture: "usampler2DArray", + sh2Texture: "usampler2DArray", + sh3Texture: "usampler2DArray", + shMax: "vec3" + }, + outTypes: { rgb: "vec3" }, + inputs: { + coord, + viewDir, + numSh, + sh1Texture, + sh2Texture, + sh3Texture, + shMax + }, + globals: () => [ + defineEvalPackedSH1, + defineEvalPackedSH2, + defineEvalPackedSH3 + ], + statements: ({ inputs, outputs }) => { + const lines = ["vec3 rgb = vec3(0.0);"]; + if (inputs.sh1Texture) { + lines.push( + ...unindentLines(` + if (${inputs.numSh} >= 1) { + vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0).rg, ${inputs.viewDir}, ${inputs.shMax}.x); + rgb += sh1Rgb; + `) + ); + if (inputs.sh2Texture) { + lines.push( + ...unindentLines(` + if (${inputs.numSh} >= 2) { + vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.y); + rgb += sh2Rgb; + `) + ); + if (inputs.sh3Texture) { + lines.push( + ...unindentLines(` + if (${inputs.numSh} >= 3) { + vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${inputs.sh3Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.z); + rgb += sh3Rgb; + } + `) + ); + } + lines.push("}"); + } + lines.push("}"); } - baseIndex += SPLAT_TEX_WIDTH * layerYEnd; + lines.push(`${outputs.rgb} = rgb;`); + return lines; } - this.resetRenderState(renderer, renderState); - return Promise.all(promises).then(() => readback); + }).outputs; +} +class SplatLoader extends Loader { + constructor(manager) { + super(manager); + this.fileLoader = new FileLoader(manager); } - saveRenderState(renderer) { - return { - target: renderer.getRenderTarget(), - xrEnabled: renderer.xr.enabled, - autoClear: renderer.autoClear - }; + load(url, onLoad, onProgress, onError) { + return this.loadInternal({ + url, + onLoad, + onProgress, + onError + }); } - resetRenderState(renderer, state) { - renderer.setRenderTarget(state.target); - renderer.xr.enabled = state.xrEnabled; - renderer.autoClear = state.autoClear; + async loadAsync(url, onProgress) { + return new Promise((resolve, reject) => { + this.load( + url, + (decoded) => { + resolve(decoded); + }, + onProgress, + reject + ); + }); } - render(scene, camera) { - try { - _SparkRenderer.sparkOverride = this; - this.renderer.render(scene, camera); - } finally { - _SparkRenderer.sparkOverride = void 0; - } + parse(packedSplats) { + return new SplatMesh({ packedSplats }); } - renderTarget({ - scene, - camera + loadInternal({ + packedSplats, + extSplats, + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + onLoad, + onProgress, + onError, + lod, + nonLod, + lodAbove, + lodBase }) { - const target = this.backTarget ?? this.target; - if (!target) { - throw new Error("No target"); - } - const previousTarget = this.renderer.getRenderTarget(); - try { - this.renderer.setRenderTarget(target); - _SparkRenderer.sparkOverride = this; - this.renderer.render(scene, camera); - } finally { - _SparkRenderer.sparkOverride = void 0; - this.renderer.setRenderTarget(previousTarget); - } - if (target !== this.target) { - [this.target, this.backTarget] = [this.backTarget, this.target]; - } - return target; - } - // Read back the previously rendered target image as a Uint8Array of packed - // RGBA values (in that order). Subsequent calls to this.readTarget() - // will reuse the same buffers to minimize memory allocations. - async readTarget() { - if (!this.target) { - throw new Error("Must initialize with target"); - } - const { width, height } = this.target; - const byteSize = width * height * 4; - if (!this.superPixels || this.superPixels.length < byteSize) { - this.superPixels = new Uint8Array(byteSize); - } - const superPixels = this.superPixels; - await this.renderer.readRenderTargetPixelsAsync( - this.target, - 0, - 0, - width, - height, - superPixels - ); - const { superXY } = this; - if (superXY === 1) { - return superPixels; - } - const subWidth = width / superXY; - const subHeight = height / superXY; - const subSize = subWidth * subHeight * 4; - if (!this.targetPixels || this.targetPixels.length < subSize) { - this.targetPixels = new Uint8Array(subSize); + if (fileBytes instanceof ArrayBuffer) { + fileBytes = new Uint8Array(fileBytes); } - const targetPixels = this.targetPixels; - const super2 = superXY * superXY; - for (let y = 0; y < subHeight; y++) { - const row = y * subWidth; - for (let x = 0; x < subWidth; x++) { - const superCol = x * superXY; - let r = 0; - let g = 0; - let b = 0; - let a = 0; - for (let sy = 0; sy < superXY; sy++) { - const superRow = (y * superXY + sy) * width; - for (let sx = 0; sx < superXY; sx++) { - const superIndex = (superRow + superCol + sx) * 4; - r += superPixels[superIndex]; - g += superPixels[superIndex + 1]; - b += superPixels[superIndex + 2]; - a += superPixels[superIndex + 3]; + const resolvedURL = fileBytes ? void 0 : this.manager.resolveURL((this.path ?? "") + (url ?? "")); + let readStream = stream == null ? void 0 : stream.getReader(); + this.manager.itemStart(resolvedURL ?? ""); + workerPool.withWorker(async (worker) => { + const splatsLod = (packedSplats == null ? void 0 : packedSplats.lod) ?? (extSplats == null ? void 0 : extSplats.lod); + if (splatsLod) { + lod = splatsLod; + } + const splatsNonLod = (packedSplats == null ? void 0 : packedSplats.nonLod) ?? (extSplats == null ? void 0 : extSplats.nonLod); + if (splatsNonLod !== void 0) { + nonLod = splatsNonLod; + } + const onStatus = async (data) => { + const { loaded, total } = data; + if (loaded !== void 0 && onProgress) { + onProgress( + new ProgressEvent("progress", { + lengthComputable: total !== 0, + loaded, + total + }) + ); + } + if (data.nextChunk) { + let chunk; + if (!readStream) { + chunk = new Uint8Array(0); + } else { + const { done, value } = await readStream.read(); + if (done) { + readStream.releaseLock(); + readStream = void 0; + chunk = new Uint8Array(0); + } else { + chunk = value; + } } + worker.call("nextChunk", { chunk }); + } + }; + const basedUrl = resolvedURL ? new URL(resolvedURL, window.location.href).toString() : void 0; + const decoded = await worker.call( + extSplats ? "loadExtSplats" : "loadPackedSplats", + { + url: basedUrl, + requestHeader: this.requestHeader, + withCredentials: this.withCredentials, + fileBytes: fileBytes == null ? void 0 : fileBytes.slice(), + fileType, + pathName: resolvedURL || fileName, + chunked: stream !== void 0, + chunkedLength: streamLength, + encoding: packedSplats == null ? void 0 : packedSplats.splatEncoding, + lod, + lodBase, + nonLod, + lodAbove + }, + { onStatus } + ); + if (decoded.lodSplats) { + if (extSplats) { + decoded.lodSplats = new ExtSplats({ + ...decoded.lodSplats + }); + } else { + decoded.lodSplats = new PackedSplats({ + ...decoded.lodSplats, + maxSplats: packedSplats == null ? void 0 : packedSplats.maxSplats + }); + } + } + if (extSplats) { + const initExtSplats = { + // ...(initExt ?? {}), + ...decoded + }; + extSplats.initialize(initExtSplats); + onLoad == null ? void 0 : onLoad(extSplats); + } else { + const initSplats = { + // ...(init ?? {}), + ...decoded + }; + if (packedSplats) { + packedSplats.initialize(initSplats); + onLoad == null ? void 0 : onLoad(packedSplats); + } else { + onLoad == null ? void 0 : onLoad(new PackedSplats(initSplats)); } - const pixelIndex = (row + x) * 4; - targetPixels[pixelIndex] = r / super2; - targetPixels[pixelIndex + 1] = g / super2; - targetPixels[pixelIndex + 2] = b / super2; - targetPixels[pixelIndex + 3] = a / super2; } - } - return targetPixels; - } - async renderReadTarget({ - scene, - camera - }) { - this.renderTarget({ scene, camera }); - return this.readTarget(); + }).catch((error) => { + this.manager.itemError(resolvedURL ?? ""); + onError == null ? void 0 : onError(error); + }).finally(() => { + this.manager.itemEnd(resolvedURL ?? ""); + }); } - // Renders out the scene to a cube map that can be used for - // Image-based lighting or similar applications. First optionally updates Gsplats, - // sorts them with respect to the provided worldCenter, renders 6 cube faces. - async renderCubeMap({ - scene, - worldCenter, - size = 256, - near = 0.1, - far = 1e3, - hideObjects = [], - update = true, - filter = false + async loadInternalAsync({ + packedSplats, + extSplats, + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + onProgress, + lod, + nonLod, + lodAbove, + lodBase }) { - if (!_SparkRenderer.cubeRender || _SparkRenderer.cubeRender.target.width !== size || _SparkRenderer.cubeRender.near !== near || _SparkRenderer.cubeRender.far !== far) { - if (_SparkRenderer.cubeRender) { - _SparkRenderer.cubeRender.target.dispose(); - } - const target2 = new THREE.WebGLCubeRenderTarget(size, { - format: THREE.RGBAFormat, - type: THREE.UnsignedByteType, - generateMipmaps: filter, - minFilter: filter ? THREE.LinearMipMapLinearFilter : THREE.LinearFilter, - magFilter: THREE.LinearFilter, - colorSpace: filter ? THREE.LinearSRGBColorSpace : THREE.SRGBColorSpace + return new Promise((resolve, reject) => { + this.loadInternal({ + packedSplats, + extSplats, + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + onLoad: resolve, + onProgress, + onError: reject, + lod, + nonLod, + lodAbove, + lodBase }); - const cubeCamera2 = new THREE.CubeCamera(near, far, target2); - _SparkRenderer.cubeRender = { target: target2, cubeCamera: cubeCamera2, near, far }; - } - const { target, cubeCamera } = _SparkRenderer.cubeRender; - cubeCamera.position.copy(worldCenter); - const objectVisibility = /* @__PURE__ */ new Map(); - for (const object of hideObjects) { - objectVisibility.set(object, object.visible); - object.visible = false; - } - if (update) { - const tempCamera = new THREE.Camera(); - tempCamera.position.copy(worldCenter); - await this.update({ scene, camera: tempCamera }); - } - try { - _SparkRenderer.sparkOverride = this; - cubeCamera.update(this.renderer, scene); - } finally { - _SparkRenderer.sparkOverride = void 0; - } - for (const [object, visible] of objectVisibility.entries()) { - object.visible = visible; - } - return target.texture; + }); } - async readCubeTargets() { - if (!_SparkRenderer.cubeRender) { - throw new Error("No cube render"); - } - const textures = _SparkRenderer.cubeRender.target.texture; - const promises = []; - const buffers = []; - for (let i = 0; i < textures.images.length; ++i) { - const { width, height } = textures.images[i]; - const byteSize = width * height * 4; - const readback = new Uint8Array(byteSize); - buffers.push(readback); - const promise = this.renderer.readRenderTargetPixelsAsync( - _SparkRenderer.cubeRender.target, - 0, - 0, - width, - height, - readback, - i - ); - promises.push(promise); +} +function getSplatFileType(fileBytes) { + const view = new DataView(fileBytes.buffer); + const magic = view.getUint32(0, true); + if ((magic & 16777215) === 7957616) { + return SplatFileType.PLY; + } + if ((magic & 16777215) === 559903) { + const header = decompressPartialGzip(fileBytes, 4); + const gView = new DataView(header.buffer); + if (gView.getUint32(0, true) === 1347635022) { + return SplatFileType.SPZ; } - await Promise.all(promises); - return buffers; + return void 0; } - // Renders out the scene to an environment map that can be used for - // Image-based lighting or similar applications. First optionally updates Gsplats, - // sorts them with respect to the provided worldCenter, renders 6 cube faces, - // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture - // that can assigned directly to a THREE.MeshStandardMaterial.envMap property. - async renderEnvMap({ - scene, - worldCenter, - size = 256, - near = 0.1, - far = 1e3, - hideObjects = [], - update = true - }) { - var _a2; - const cubeTexture = await this.renderCubeMap({ - scene, - worldCenter, - size, - near, - far, - hideObjects, - update, - filter: true - }); - if (!_SparkRenderer.pmrem) { - _SparkRenderer.pmrem = new THREE.PMREMGenerator(this.renderer); + if (magic === 67324752) { + if (tryPcSogsZip(fileBytes)) { + return SplatFileType.PCSOGSZIP; } - return (_a2 = _SparkRenderer.pmrem) == null ? void 0 : _a2.fromCubemap(cubeTexture).texture; + return void 0; } - // Utility function to recursively set the envMap property for any - // THREE.MeshStandardMaterial within the subtree of root. - recurseSetEnvMap(root, envMap) { - root.traverse((node) => { - if (node instanceof THREE.Mesh) { - if (Array.isArray(node.material)) { - for (const material of node.material) { - if (material instanceof THREE.MeshStandardMaterial) { - material.envMap = envMap; - } - } - } else { - if (node.material instanceof THREE.MeshStandardMaterial) { - node.material.envMap = envMap; - } + if (magic === 809779538) { + return SplatFileType.RAD; + } + return void 0; +} +function getFileExtension(pathOrUrl) { + const noTrailing = pathOrUrl.split(/[?#]/, 1)[0]; + const lastSlash = Math.max( + noTrailing.lastIndexOf("/"), + noTrailing.lastIndexOf("\\") + ); + const filename = noTrailing.slice(lastSlash + 1); + const lastDot = filename.lastIndexOf("."); + if (lastDot <= 0 || lastDot === filename.length - 1) { + return ""; + } + return filename.slice(lastDot + 1).toLowerCase(); +} +function getSplatFileTypeFromPath(pathOrUrl) { + const extension = getFileExtension(pathOrUrl); + if (extension === "ply") { + return SplatFileType.PLY; + } + if (extension === "spz") { + return SplatFileType.SPZ; + } + if (extension === "splat") { + return SplatFileType.SPLAT; + } + if (extension === "ksplat") { + return SplatFileType.KSPLAT; + } + if (extension === "sog") { + return SplatFileType.PCSOGSZIP; + } + if (extension === "rad") { + return SplatFileType.RAD; + } + return void 0; +} +function isPcSogs(input) { + return tryPcSogs(input) !== void 0; +} +function tryPcSogs(input) { + try { + let text; + if (typeof input === "string") { + text = input; + } else { + const fileBytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input; + if (fileBytes.length > 65536) { + return void 0; + } + text = new TextDecoder().decode(fileBytes); + } + const json = JSON.parse(text); + if (!json || typeof json !== "object" || Array.isArray(json)) { + return void 0; + } + const isVersion2 = json.version === 2; + for (const key of ["means", "scales", "quats", "sh0"]) { + if (!json[key] || typeof json[key] !== "object" || Array.isArray(json[key])) { + return void 0; + } + if (isVersion2) { + if (!json[key].files) { + return void 0; + } + if ((key === "scales" || key === "sh0") && !json[key].codebook) { + return void 0; + } + if (key === "means" && (!json[key].mins || !json[key].maxs)) { + return void 0; + } + } else { + if (!json[key].shape || !json[key].files) { + return void 0; + } + if (key !== "quats" && (!json[key].mins || !json[key].maxs)) { + return void 0; } } - }); - } - async getLodTreeLevel(splats, level, pageColoring = false) { - var _a2, _b2; - const instance = this.lodInstances.get(splats); - if (!instance) { - return null; } - const result = await this.ensureLodWorker().exclusive(async (worker) => { - return await worker.call("getLodTreeLevel", { - lodId: instance.lodId, - level - }); + return json; + } catch { + return void 0; + } +} +function tryPcSogsZip(input) { + try { + const fileBytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input; + let metaFilename = null; + const unzipped = unzipSync(fileBytes, { + filter: ({ name }) => { + const filename = name.split(/[\\/]/).pop(); + if (filename === "meta.json") { + metaFilename = name; + return true; + } + return false; + } }); - if ((_a2 = splats.packedSplats) == null ? void 0 : _a2.lodSplats) { - const newSplats = splats.packedSplats.lodSplats.extractSplats( - result.indices, - pageColoring - ); - return new SplatMesh({ packedSplats: newSplats }); + if (!metaFilename) { + return void 0; } - if ((_b2 = splats.extSplats) == null ? void 0 : _b2.lodSplats) { - const newSplats = splats.extSplats.lodSplats.extractSplats( - result.indices, - pageColoring - ); - return new SplatMesh({ extSplats: newSplats }); + const json = tryPcSogs(unzipped[metaFilename]); + if (!json) { + return void 0; } - throw new Error( - "Only LoD-enabled PackedSplats and ExtSplats are supported" - ); + return { name: metaFilename, json }; + } catch { + return void 0; } - get premultipliedAlpha() { - return this.material.premultipliedAlpha; +} +class SplatData { + constructor({ maxSplats = 1 } = {}) { + this.numSplats = 0; + this.maxSplats = getTextureSize(maxSplats).maxSplats; + this.centers = new Float32Array(this.maxSplats * 3); + this.scales = new Float32Array(this.maxSplats * 3); + this.quaternions = new Float32Array(this.maxSplats * 4); + this.opacities = new Float32Array(this.maxSplats); + this.colors = new Float32Array(this.maxSplats * 3); } - set premultipliedAlpha(value) { - if (this.material.premultipliedAlpha !== value) { - this.material.premultipliedAlpha = value; - this.material.needsUpdate = true; - } + pushSplat() { + const index = this.numSplats; + this.ensureIndex(index); + this.numSplats += 1; + return index; } -}; -_SparkRenderer.emptyOrdering = (() => { - const numIndices = 4 * 4096 * 1; - const emptyArray = new Uint32Array(numIndices); - const texture2 = new THREE.DataTexture(emptyArray, 4096, 1); - texture2.format = THREE.RGBAIntegerFormat; - texture2.type = THREE.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_SparkRenderer.cubeRender = null; -_SparkRenderer.pmrem = null; -let SparkRenderer = _SparkRenderer; -class PagedSplats { - constructor(options) { - var _a2; - this.pager = options.pager; - this.rootUrl = options.rootUrl ?? ""; - this.requestHeader = options.requestHeader; - this.withCredentials = options.withCredentials; - this.numSh = 0; - this.maxSh = ((_a2 = options.pager) == null ? void 0 : _a2.maxSh) ?? 3; - this.numSplats = 0; - this.dynoNumSplats = new DynoInt({ value: 0 }); - this.dynoIndices = new DynoUsampler2D({ - value: SplatPager.emptyIndicesTexture - }); - this.rgbMinMaxLnScaleMinMax = new DynoVec4({ - value: new THREE.Vector4(0, 1, LN_SCALE_MIN, LN_SCALE_MAX) - }); - this.lodOpacity = new DynoBool({ - value: false - }); - this.dynoNumSh = new DynoInt({ value: 0 }); - this.shMax = new DynoVec3({ value: new THREE.Vector3() }); - this.fileBytes = options.fileBytes; - this.fileType = options.fileType; - if (!this.fileType && this.fileBytes) { - this.fileType = getSplatFileType(this.fileBytes); + unpushSplat(index) { + if (index === this.numSplats - 1) { + this.numSplats -= 1; + } else { + throw new Error("Cannot unpush splat from non-last position"); } - if (!this.fileType && this.rootUrl) { - this.fileType = getSplatFileTypeFromPath(this.rootUrl); + } + ensureCapacity(numSplats) { + if (numSplats > this.maxSplats) { + const targetSplats = Math.max(numSplats, this.maxSplats * 2); + const newCenters = new Float32Array(targetSplats * 3); + const newScales = new Float32Array(targetSplats * 3); + const newQuaternions = new Float32Array(targetSplats * 4); + const newOpacities = new Float32Array(targetSplats); + const newColors = new Float32Array(targetSplats * 3); + newCenters.set(this.centers); + newScales.set(this.scales); + newQuaternions.set(this.quaternions); + newOpacities.set(this.opacities); + newColors.set(this.colors); + this.centers = newCenters; + this.scales = newScales; + this.quaternions = newQuaternions; + this.opacities = newOpacities; + this.colors = newColors; + if (this.sh1) { + const newSh1 = new Float32Array(targetSplats * 9); + newSh1.set(this.sh1); + this.sh1 = newSh1; + } + if (this.sh2) { + const newSh2 = new Float32Array(targetSplats * 15); + newSh2.set(this.sh2); + this.sh2 = newSh2; + } + if (this.sh3) { + const newSh3 = new Float32Array(targetSplats * 21); + newSh3.set(this.sh3); + this.sh3 = newSh3; + } + this.maxSplats = targetSplats; } - if (!this.fileType) { - throw new Error("Unable to determine file type"); + } + ensureIndex(index) { + this.ensureCapacity(index + 1); + } + setCenter(index, x, y, z) { + this.centers[index * 3] = x; + this.centers[index * 3 + 1] = y; + this.centers[index * 3 + 2] = z; + } + setScale(index, scaleX, scaleY, scaleZ) { + this.scales[index * 3] = scaleX; + this.scales[index * 3 + 1] = scaleY; + this.scales[index * 3 + 2] = scaleZ; + } + setQuaternion(index, x, y, z, w) { + this.quaternions[index * 4] = x; + this.quaternions[index * 4 + 1] = y; + this.quaternions[index * 4 + 2] = z; + this.quaternions[index * 4 + 3] = w; + } + setOpacity(index, opacity) { + this.opacities[index] = opacity; + } + setColor(index, r, g, b) { + this.colors[index * 3] = r; + this.colors[index * 3 + 1] = g; + this.colors[index * 3 + 2] = b; + } + setSh1(index, sh1) { + if (!this.sh1) { + this.sh1 = new Float32Array(this.maxSplats * 9); } - if (this.fileType === SplatFileType.RAD) { - this.radMetaPromise = this.getRadMeta(); + for (let j = 0; j < 9; ++j) { + this.sh1[index * 9 + j] = sh1[j]; } } - dispose() { - if (this.dynoIndices.value !== SplatPager.emptyIndicesTexture) { - this.dynoIndices.value.dispose(); - this.dynoIndices.value = SplatPager.emptyIndicesTexture; + setSh2(index, sh2) { + if (!this.sh2) { + this.sh2 = new Float32Array(this.maxSplats * 15); + } + for (let j = 0; j < 15; ++j) { + this.sh2[index * 15 + j] = sh2[j]; } } - setMaxSh(maxSh) { - this.maxSh = maxSh; - } - getRadMeta() { - if (this.radMetaPromise) { - return this.radMetaPromise; + setSh3(index, sh3) { + if (!this.sh3) { + this.sh3 = new Float32Array(this.maxSplats * 21); } - this.radMetaPromise = (async () => { - await wasmInitialized; - if (this.fileBytes) { - const metaStart = decode_rad_header(this.fileBytes.slice(0, 1048576)); - if (metaStart) { - return metaStart; - } - throw new Error("Failed to decode RAD header"); - } - if (!this.rootUrl) { - throw new Error("No url or fileBytes provided"); - } - for (const tryBytes of [65536, 256 * 1024, 1024 * 1024]) { - const bytes = await fetchRange({ - url: this.rootUrl, - requestHeader: this.requestHeader, - withCredentials: this.withCredentials, - offset: 0, - bytes: tryBytes - }); - const metaStart = decode_rad_header(bytes); - if (metaStart) { - return metaStart; - } + for (let j = 0; j < 21; ++j) { + this.sh3[index * 21 + j] = sh3[j]; + } + } +} +const _ExtSplats = class _ExtSplats { + constructor(options = {}) { + this.maxSplats = 0; + this.numSplats = 0; + this.extra = {}; + this.maxSh = 3; + this.isInitialized = false; + this.extArrays = [new Uint32Array(0), new Uint32Array(0)]; + this.textures = [_ExtSplats.emptyTexture, _ExtSplats.emptyTexture]; + this.extra = {}; + this.dyno = new DynoExtSplats({ extSplats: this }); + this.dynoNumSh = new DynoInt({ + key: "numSh", + value: 0, + update: () => { + return Math.min(this.getNumSh(), this.maxSh); } - throw new Error("Failed to decode RAD header"); - })().then((metaStart) => { - return metaStart; - }); - this.radMetaPromise.catch((error) => { - console.error(error); }); - return this.radMetaPromise; - } - chunkUrl(chunk) { - return this.rootUrl.replace(/-lod-0\./, `-lod-${chunk}.`); + this.initialized = Promise.resolve(this); + this.reinitialize(options); } - async fetchDecodeChunk(chunk) { - let decodeBytes = void 0; - if (this.fileType === SplatFileType.RAD) { - const { meta, chunksStart } = await this.getRadMeta(); - if (chunk < 0 || chunk >= meta.chunks.length) { - throw new Error( - `Chunk index out of range: ${chunk} (max: ${meta.chunks.length - 1})` - ); - } - let { offset, bytes, filename } = meta.chunks[chunk]; - if (filename) { - if (this.fileBytes) { - throw new Error("Chunked RAD file not supported with fileBytes"); - } - const resolvedRoot = new URL( - this.rootUrl, - window.location.href - ).toString(); - const chunkUrl = new URL(filename, resolvedRoot).toString(); - decodeBytes = await fetchRange({ - url: chunkUrl, - requestHeader: this.requestHeader, - withCredentials: this.withCredentials - }); - } else { - offset += chunksStart; - if (this.fileBytes) { - if (offset < 0 || offset + bytes > this.fileBytes.length) { - throw new Error( - `Invalid chunk offset or bytes: ${offset} + ${bytes} > ${this.fileBytes.length}` - ); - } - decodeBytes = this.fileBytes.slice(offset, offset + bytes); - } else if (this.rootUrl) { - decodeBytes = await fetchRange({ - url: this.rootUrl, - requestHeader: this.requestHeader, - withCredentials: this.withCredentials, - offset, - bytes - }); - } else { - throw new Error("No url or fileBytes provided"); - } - } - } else if (this.fileBytes) ; - else if (this.rootUrl) { - const url = this.chunkUrl(chunk); - const request = new Request(url, { - headers: this.requestHeader ? new Headers(this.requestHeader) : void 0, - credentials: this.withCredentials ? "include" : "same-origin" + reinitialize(options) { + this.isInitialized = false; + this.extra = {}; + this.maxSplats = options.maxSplats ?? 0; + this.lod = options.lod; + this.nonLod = options.nonLod; + if (options.url || options.fileBytes || options.stream || options.construct) { + this.initialized = this.asyncInitialize(options).then(() => { + this.isInitialized = true; + return this; }); - const response = await fetch(request); - if (!response.ok || !response.body) { - throw new Error( - `Failed to fetch "${url}": ${response.status} ${response.statusText}` - ); - } - decodeBytes = new Uint8Array(await response.arrayBuffer()); } else { - throw new Error("No url or fileBytes provided"); + this.initialize(options); + this.isInitialized = true; + this.initialized = Promise.resolve(this); } - return await workerPool.withWorker(async (worker) => { - var _a2, _b2, _c, _d, _e; - if (!this.pager) { - throw new Error("PagedSplats.pager not set"); - } - if (!this.pager.extSplats) { - const result2 = await worker.call("loadPackedSplats", { - fileBytes: decodeBytes, - pathName: this.chunkUrl(chunk), - sh1Codes: (_a2 = this.sh1Codes) == null ? void 0 : _a2.slice(), - sh2Codes: (_b2 = this.sh2Codes) == null ? void 0 : _b2.slice(), - sh3Codes: (_c = this.sh3Codes) == null ? void 0 : _c.slice() - }); - const lodSplats2 = result2.lodSplats; - if (!this.splatEncoding) { - this.splatEncoding = lodSplats2.splatEncoding; - this.numSh = lodSplats2.extra.sh3 ? 3 : lodSplats2.extra.sh2 ? 2 : lodSplats2.extra.sh1 ? 1 : 0; - this.rgbMinMaxLnScaleMinMax.value.set( - this.splatEncoding.rgbMin ?? 0, - this.splatEncoding.rgbMax ?? 1, - this.splatEncoding.lnScaleMin ?? LN_SCALE_MIN, - this.splatEncoding.lnScaleMax ?? LN_SCALE_MAX - ); - this.lodOpacity.value = this.splatEncoding.lodOpacity ?? false; - this.shMax.value.set( - this.splatEncoding.sh1Max ?? 1, - this.splatEncoding.sh2Max ?? 1, - this.splatEncoding.sh3Max ?? 1 - ); - } - this.sh1Codes = lodSplats2.extra.sh1Codes ?? this.sh1Codes; - this.sh2Codes = lodSplats2.extra.sh2Codes ?? this.sh2Codes; - this.sh3Codes = lodSplats2.extra.sh3Codes ?? this.sh3Codes; - return lodSplats2; - } - const sh3Codes = this.sh3Codes; - const result = await worker.call("loadExtSplats", { - fileBytes: decodeBytes, - pathName: this.chunkUrl(chunk), - sh1Codes: (_d = this.sh1Codes) == null ? void 0 : _d.slice(), - sh2Codes: (_e = this.sh2Codes) == null ? void 0 : _e.slice(), - sh3Codes: sh3Codes ? [sh3Codes[0].slice(), sh3Codes[1].slice()] : void 0 + } + initialize(options) { + this.extra = options.extra ?? {}; + this.lodSplats = options.lodSplats; + if (options.extArrays) { + this.extArrays = options.extArrays; + this.maxSplats = Math.floor( + Math.min(this.extArrays[0].length / 4, this.extArrays[1].length / 4) + ); + this.numSplats = options.numSplats ?? this.maxSplats; + this.maxSplats = Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + this.numSplats = Math.min( + this.maxSplats, + options.numSplats ?? Number.POSITIVE_INFINITY + ); + this.updateTextures(); + } else { + this.maxSplats = options.maxSplats ?? 0; + this.numSplats = 0; + this.extArrays = [new Uint32Array(0), new Uint32Array(0)]; + } + } + async asyncInitialize(options) { + const { + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + construct, + lod, + nonLod, + lodAbove + } = options; + this.lod = lod; + this.nonLod = nonLod; + const loader = new SplatLoader(); + if (fileBytes || url || stream) { + await loader.loadInternalAsync({ + extSplats: this, + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + onProgress: options.onProgress, + lodAbove }); - const lodSplats = result.lodSplats; - if (!this.splatEncoding) { - this.splatEncoding = DEFAULT_SPLAT_ENCODING; - this.numSh = lodSplats.extra.sh3a && lodSplats.extra.sh3b ? 3 : lodSplats.extra.sh2 ? 2 : lodSplats.extra.sh1 ? 1 : 0; + } + if (construct) { + const maybePromise = construct(this); + if (maybePromise instanceof Promise) { + await maybePromise; } - this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes; - this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes; - this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes; - return lodSplats; - }); + } } - update(numSplats, indices) { - if (!this.pager) { - throw new Error("PagedSplats.pager not set"); + // Call this when you are finished with the PackedSplats and want to free + // any buffers it holds. + dispose() { + if (this.textures[0] !== _ExtSplats.emptyTexture) { + this.textures[0].dispose(); + this.textures[0].source.data = null; + this.textures[0] = _ExtSplats.emptyTexture; } - const renderer = this.pager.renderer; - this.numSplats = numSplats; - this.dynoNumSplats.value = this.numSplats; - const rows = Math.ceil(numSplats / 16384); - let indicesTexture = this.dynoIndices.value === SplatPager.emptyIndicesTexture ? void 0 : this.dynoIndices.value; - if (indicesTexture && rows > indicesTexture.image.height) { - indicesTexture.dispose(); - indicesTexture = void 0; + if (this.textures[1] !== _ExtSplats.emptyTexture) { + this.textures[1].dispose(); + this.textures[1].source.data = null; + this.textures[1] = _ExtSplats.emptyTexture; } - if (!indicesTexture) { - indicesTexture = new THREE.DataTexture( - indices, - 4096, - rows, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType - ); - indicesTexture.internalFormat = "RGBA32UI"; - indicesTexture.needsUpdate = true; - renderer.initTexture(indicesTexture); - this.dynoIndices.value = indicesTexture; - } else { - const textureIndices = indicesTexture.image.data; - textureIndices.set(indices.subarray(0, numSplats)); - const gl = renderer.getContext(); - renderer.state.activeTexture(gl.TEXTURE0); - renderer.state.bindTexture( - gl.TEXTURE_2D, - getGlTexture(renderer, indicesTexture) - ); - gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null); - gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false); - gl.texSubImage2D( - gl.TEXTURE_2D, - 0, - 0, - 0, - 4096, - rows, - gl.RGBA_INTEGER, - gl.UNSIGNED_INT, - indices - ); - renderer.state.bindTexture(gl.TEXTURE_2D, null); + this.extArrays = [new Uint32Array(0), new Uint32Array(0)]; + for (const key in this.extra) { + const dyno2 = this.extra[key]; + if (dyno2 instanceof DynoUniform) { + const texture2 = dyno2.value; + if (texture2 == null ? void 0 : texture2.isTexture) { + texture2.dispose(); + texture2.source.data = null; + } + } } + this.extra = {}; + this.disposeLodSplats(); } prepareFetchSplat() { } @@ -11337,75 +10182,248 @@ class PagedSplats { return this.numSplats; } hasRgbDir() { - if (!this.pager) { - return false; - } - return Math.min(this.numSh, this.pager.maxSh) > 0; + return Math.min(this.getNumSh(), this.maxSh) > 0; } getNumSh() { - return this.numSh; + return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3a || !this.extra.sh3b ? 2 : 3; + } + setMaxSh(maxSh) { + this.maxSh = maxSh; } fetchSplat({ index, viewOrigin }) { - if (!this.pager) { - throw new Error("PagedSplats.pager not set"); + let gsplat = readExtSplat(this.dyno, index); + if (this.hasRgbDir() && viewOrigin) { + const splatCenter = splitGsplat(gsplat).outputs.center; + const viewDir = normalize(sub(splatCenter, viewOrigin)); + const { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB } = this.ensureShTextures(); + let { rgb } = evaluateExtSH({ + coord: splatTexCoord(index), + viewDir, + numSh: this.dynoNumSh, + sh1Texture, + sh2Texture, + sh3TextureA, + sh3TextureB + }); + rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); + gsplat = combineGsplat({ gsplat, rgb }); } - const splatIndex = this.pager.readIndex.apply({ - index, - numSplats: this.dynoNumSplats, - indices: this.dynoIndices - }).index; - if (!this.pager.extSplats) { - if (this.hasRgbDir() && viewOrigin) { - this.dynoNumSh.value = Math.min( - this.numSh, - this.maxSh, - this.pager.maxSh - ); - return this.pager.readSplatDir.apply({ - index: splatIndex, - rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax, - lodOpacity: this.lodOpacity, - viewOrigin, - numSh: this.dynoNumSh, - shMax: this.shMax - }).gsplat; + return gsplat; + } + ensureShTextures() { + if (!this.extra.sh1) { + return {}; + } + let sh1Texture = this.extra.sh1Texture; + if (!sh1Texture) { + let sh1 = this.extra.sh1; + const { width, height, depth, maxSplats } = getTextureSize( + sh1.length / 4 + ); + if (sh1.length < maxSplats * 4) { + const newSh1 = new Uint32Array(maxSplats * 4); + newSh1.set(sh1); + this.extra.sh1 = newSh1; + sh1 = newSh1; } - return this.pager.readSplat.apply({ - index: splatIndex, - rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax, - lodOpacity: this.lodOpacity - }).gsplat; + const texture2 = newUint32ArrayTexture( + sh1, + width, + height, + depth, + THREE.RGBAIntegerFormat, + THREE.UnsignedIntType, + "RGBA32UI" + ); + sh1Texture = new DynoUsampler2DArray({ + value: texture2, + key: "sh1" + }); + this.extra.sh1Texture = sh1Texture; } - if (this.hasRgbDir() && viewOrigin) { - this.dynoNumSh.value = Math.min(this.numSh, this.maxSh, this.pager.maxSh); - return this.pager.readSplatExtDir.apply({ - index: splatIndex, - viewOrigin, - numSh: this.dynoNumSh - }).gsplat; + if (!this.extra.sh2) { + return { sh1Texture }; } - return this.pager.readSplatExt.apply({ index: splatIndex }).gsplat; + let sh2Texture = this.extra.sh2Texture; + if (!sh2Texture) { + let sh2 = this.extra.sh2; + const { width, height, depth, maxSplats } = getTextureSize( + sh2.length / 4 + ); + if (sh2.length < maxSplats * 4) { + const newSh2 = new Uint32Array(maxSplats * 4); + newSh2.set(sh2); + this.extra.sh2 = newSh2; + sh2 = newSh2; + } + const texture2 = newUint32ArrayTexture( + sh2, + width, + height, + depth, + THREE.RGBAIntegerFormat, + THREE.UnsignedIntType, + "RGBA32UI" + ); + sh2Texture = new DynoUsampler2DArray({ + value: texture2, + key: "sh2" + }); + this.extra.sh2Texture = sh2Texture; + } + if (!this.extra.sh3a || !this.extra.sh3b) { + return { sh1Texture, sh2Texture }; + } + let sh3TextureA = this.extra.sh3TextureA; + if (!sh3TextureA) { + let sh3a = this.extra.sh3a; + const { width, height, depth, maxSplats } = getTextureSize( + sh3a.length / 4 + ); + if (sh3a.length < maxSplats * 4) { + const newSh3 = new Uint32Array(maxSplats * 4); + newSh3.set(sh3a); + this.extra.sh3a = newSh3; + sh3a = newSh3; + } + const texture2 = newUint32ArrayTexture( + sh3a, + width, + height, + depth, + THREE.RGBAIntegerFormat, + THREE.UnsignedIntType, + "RGBA32UI" + ); + sh3TextureA = new DynoUsampler2DArray({ + value: texture2, + key: "sh3" + }); + this.extra.sh3TextureA = sh3TextureA; + } + let sh3TextureB = this.extra.sh3TextureB; + if (!sh3TextureB) { + let sh3b = this.extra.sh3b; + const { width, height, depth, maxSplats } = getTextureSize( + sh3b.length / 4 + ); + if (sh3b.length < maxSplats * 4) { + const newSh3b = new Uint32Array(maxSplats * 4); + newSh3b.set(sh3b); + this.extra.sh3b = newSh3b; + sh3b = newSh3b; + } + const texture2 = newUint32ArrayTexture( + sh3b, + width, + height, + depth, + THREE.RGBAIntegerFormat, + THREE.UnsignedIntType, + "RGBA32UI" + ); + sh3TextureB = new DynoUsampler2DArray({ + value: texture2, + key: "sh3b" + }); + this.extra.sh3TextureB = sh3TextureB; + } + return { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB }; + } + // Ensures that this.extArrays can fit numSplats Gsplats. If it's too small, + // resize exponentially and copy over the original data. + // + // Typically you don't need to call this, because calling this.setSplat(index, ...) + // and this.pushSplat(...) will automatically call ensureSplats() so we have + // enough splats. + ensureSplats(numSplats) { + const targetSize = numSplats <= this.maxSplats ? this.maxSplats : ( + // Grow exponentially to avoid frequent reallocations + Math.max(numSplats, 2 * this.maxSplats) + ); + const currentSize = !this.extArrays[0] ? 0 : this.extArrays[0].length / 4; + if (!this.extArrays[0] || targetSize > currentSize) { + this.maxSplats = getTextureSize(targetSize).maxSplats; + const newArray0 = new Uint32Array(this.maxSplats * 4); + const newArray1 = new Uint32Array(this.maxSplats * 4); + if (this.extArrays[0]) { + newArray0.set(this.extArrays[0]); + newArray1.set(this.extArrays[1]); + } + this.extArrays[0] = newArray0; + this.extArrays[1] = newArray1; + } + return this.extArrays; + } + // Unpack the 16-byte Gsplat data at index into the Three.js components + // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, + // opacity: number 0..1, color: THREE.Color 0..1. + getSplat(index) { + if (index >= this.numSplats) { + throw new Error("Invalid index"); + } + return decodeExtSplat(this.extArrays, index); + } + // Set all ExtSplat components at index with the provided Gsplat attributes + // (can be the same objects returned by getSplat). Ensures there is capacity + // for at least index+1 Gsplats. + setSplat(index, center, scales, quaternion, opacity, color) { + const extArrays = this.ensureSplats(index + 1); + encodeExtSplat( + extArrays, + index, + center.x, + center.y, + center.z, + scales.x, + scales.y, + scales.z, + quaternion.x, + quaternion.y, + quaternion.z, + quaternion.w, + opacity, + color.r, + color.g, + color.b + ); + this.numSplats = Math.max(this.numSplats, index + 1); + } + // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on + // construction where you just want to iterate and create a collection of Gsplats. + pushSplat(center, scales, quaternion, opacity, color) { + const extArrays = this.ensureSplats(this.numSplats + 1); + encodeExtSplat( + extArrays, + this.numSplats, + center.x, + center.y, + center.z, + scales.x, + scales.y, + scales.z, + quaternion.x, + quaternion.y, + quaternion.z, + quaternion.w, + opacity, + color.r, + color.g, + color.b + ); + ++this.numSplats; } // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat // and invoke the callback function with the Gsplat attributes. forEachSplat(callback) { - if (!this.pager || !this.numSplats) { + if (!this.numSplats) { return; } - const extSplats = this.pager.extSplats; - const indices = this.dynoIndices.value.image.data; - const packedSplatArray = this.pager.packedTexture.value.image.data; - const extPackedSplatArray = this.pager.extTexture.value.image.data; - const extArrays = [ - packedSplatArray, - extPackedSplatArray - ]; for (let i = 0; i < this.numSplats; ++i) { - const splatIndex = indices[i]; - const unpacked = extSplats ? decodeExtSplat(extArrays, splatIndex) : unpackSplat(packedSplatArray, splatIndex, this.splatEncoding); + const unpacked = decodeExtSplat(this.extArrays, i); callback( i, unpacked.center, @@ -11416,3299 +10434,3807 @@ class PagedSplats { ); } } -} -const _SplatPager = class _SplatPager { - constructor(options) { - this.fetchPause = 0; - this.splatsChunkToPage = /* @__PURE__ */ new Map(); - this.pageToSplatsChunk = []; - this.renderer = options.renderer; - this.extSplats = options.extSplats ?? false; - this.pageSplats = 65536; - this.maxSplats = options.maxSplats ?? 16777216; - this.maxPages = Math.ceil(this.maxSplats / this.pageSplats); - this.maxSplats = this.maxPages * this.pageSplats; - this.maxSh = options.maxSh ?? 3; - this.curSh = 0; - this.autoDrive = options.autoDrive ?? true; - this.numFetchers = options.numFetchers ?? 3; - this.splatsChunkToPage = /* @__PURE__ */ new Map(); - this.pageToSplatsChunk = new Array(this.maxPages); - this.pageFreelist = Array.from({ length: this.maxPages }, (_, i) => i); - this.pageLru = /* @__PURE__ */ new Set(); - this.freeablePages = []; - this.newUploads = []; - this.readyUploads = []; - this.lodTreeUpdates = []; - this.fetchers = []; - this.fetched = []; - this.fetchPriority = []; - this.packedTexture = new DynoUsampler2DArray({ - value: this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, + // Check if source texture needs to be created/updated + updateTextures() { + if (this.textures[0] !== _ExtSplats.emptyTexture) { + const { width, height, depth } = this.textures[0].image; + if (this.maxSplats !== width * height * depth) { + this.textures[0].dispose(); + this.textures[0] = _ExtSplats.emptyTexture; + this.textures[1].dispose(); + this.textures[1] = _ExtSplats.emptyTexture; + } + } + if (this.textures[0] === _ExtSplats.emptyTexture) { + const { width, height, depth } = getTextureSize(this.maxSplats); + this.textures[0] = newUint32ArrayTexture( + this.extArrays[0], + width, + height, + depth, THREE.RGBAIntegerFormat, THREE.UnsignedIntType, "RGBA32UI" - ) - }); - this.extTexture = new DynoUsampler2DArray({ - value: this.extSplats ? this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, + ); + this.textures[1] = newUint32ArrayTexture( + this.extArrays[1], + width, + height, + depth, THREE.RGBAIntegerFormat, THREE.UnsignedIntType, "RGBA32UI" - ) : _SplatPager.emptyExtTexture - }); - this.sh1Texture = new DynoUsampler2DArray({ - value: this.extSplats ? _SplatPager.emptyExtSh1Texture : _SplatPager.emptySh1Texture - }); - this.sh2Texture = new DynoUsampler2DArray({ - value: this.extSplats ? _SplatPager.emptyExtSh2Texture : _SplatPager.emptySh2Texture - }); - this.sh3Texture = new DynoUsampler2DArray({ - value: this.extSplats ? _SplatPager.emptyExtSh3Texture : _SplatPager.emptySh3Texture - }); - this.sh3TextureB = new DynoUsampler2DArray({ - value: _SplatPager.emptyExtSh3BTexture - }); - this.readIndex = dynoBlock( - { index: "int", numSplats: "int", indices: "usampler2D" }, - { index: "int" }, - ({ index, numSplats, indices }) => { - return new Dyno({ - inTypes: { - index: "int", - numSplats: "int", - indices: "usampler2D" - }, - outTypes: { index: "int" }, - inputs: { - index, - numSplats, - indices - }, - statements: ({ inputs, outputs }) => unindentLines(` - if (${inputs.index} >= ${inputs.numSplats}) { - return; - } - - ivec2 indexCoord = ivec2((${inputs.index} >> 2) & 4095, ${inputs.index} >> 14); - uint index = texelFetch(${inputs.indices}, indexCoord, 0)[${inputs.index} & 3]; - ${outputs.index} = int(index); - `) - }).outputs; - } - ); - this.readSplat = dynoBlock( - { index: "int", rgbMinMaxLnScaleMinMax: "vec4", lodOpacity: "bool" }, - { gsplat: Gsplat }, - ({ index, rgbMinMaxLnScaleMinMax, lodOpacity }) => { - return new Dyno({ - inTypes: { - index: "int", - packedTexture: "usampler2DArray", - rgbMinMaxLnScaleMinMax: "vec4", - lodOpacity: "bool" - }, - outTypes: { gsplat: Gsplat }, - inputs: { - index, - packedTexture: this.packedTexture, - rgbMinMaxLnScaleMinMax, - lodOpacity - }, - globals: () => [defineGsplat], - statements: ({ inputs, outputs }) => unindentLines(` - int index = ${inputs.index}; - ivec3 splatCoord = pagedSplatTexCoord(index); - uvec4 packedData = texelFetch(${inputs.packedTexture}, splatCoord, 0); - - unpackSplatEncoding(packedData, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba, ${inputs.rgbMinMaxLnScaleMinMax}); - if ((${outputs.gsplat}.rgba.a == 0.0) || all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { - return; - } - - ${outputs.gsplat}.index = index; - ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE; - if (${inputs.lodOpacity}) { - ${outputs.gsplat}.rgba.a *= 2.0; - } - `) - }).outputs; + ); + } else if (this.extArrays[0].buffer !== this.textures[0].image.data.buffer) { + this.textures[0].image.data = new Uint8Array(this.extArrays[0].buffer); + this.textures[1].image.data = new Uint8Array(this.extArrays[1].buffer); + this.textures[0].needsUpdate = true; + this.textures[1].needsUpdate = true; + } + } + extractSplats(indices, pageColoring) { + const maxSplats = getTextureSize(indices.length).maxSplats; + const newSplats = new _ExtSplats({ maxSplats }); + for (let i = 0; i < indices.length; i++) { + const splat = this.getSplat(indices[i]); + if (pageColoring) { + let hue = (indices[i] >>> 16) * 0.61803398875; + hue = hue - Math.floor(hue); + const r = Math.max(0, Math.min(1, Math.abs(hue * 6 - 3) - 1)); + const g = Math.max(0, Math.min(1, Math.abs(hue * 6 + 1) - 1)); + const b = Math.max(0, Math.min(1, Math.abs(hue * 6 - 1) - 1)); + splat.color.r *= r; + splat.color.g *= g; + splat.color.b *= b; } - ); - this.readSplatDir = dynoBlock( - { - index: "int", - rgbMinMaxLnScaleMinMax: "vec4", - lodOpacity: "bool", - viewOrigin: "vec3", - numSh: "int", - shMax: "vec3" + newSplats.pushSplat( + splat.center, + splat.scales, + splat.quaternion, + splat.opacity, + splat.color + ); + } + return newSplats; + } + disposeLodSplats() { + if (this.lodSplats) { + this.lodSplats.dispose(); + this.lodSplats = void 0; + } + } + async createLodSplats({ + rgbaArray, + quality + } = {}) { + const lodBase = typeof this.lod === "number" ? Math.max(1.1, Math.min(2, this.lod)) : quality ? 1.75 : 1.5; + const extArrays = [this.extArrays[0].slice(), this.extArrays[1].slice()]; + const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : void 0; + const extra = { + sh1: this.extra.sh1 ? this.extra.sh1.slice() : void 0, + sh2: this.extra.sh2 ? this.extra.sh2.slice() : void 0, + sh3: this.extra.sh3 ? this.extra.sh3.slice() : void 0 + }; + const decoded = await workerPool.withWorker(async (worker) => { + return await worker.call( + quality ? "qualityLodExtSplats" : "tinyLodExtSplats", + { + numSplats: this.numSplats, + extArrays, + extra, + lodBase, + rgba + } + ); + }); + const lodSplats = new _ExtSplats(decoded); + if (this.lodSplats) { + this.lodSplats.dispose(); + } + this.lodSplats = lodSplats; + this.nonLod = true; + this.lod = quality ? "quality" : true; + } +}; +_ExtSplats.emptyArray = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 4); + const texture2 = new THREE.DataArrayTexture( + emptyArray, + width, + height, + depth + ); + texture2.format = THREE.RGBAIntegerFormat; + texture2.type = THREE.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +_ExtSplats.emptyTexture = newUint32ArrayTexture( + null, + 1, + 1, + 1, + THREE.RGBAIntegerFormat, + THREE.UnsignedIntType, + "RGBA32UI" +); +_ExtSplats.emptyUint32x4 = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 4); + const texture2 = new THREE.DataArrayTexture( + emptyArray, + width, + height, + depth + ); + texture2.format = THREE.RGBAIntegerFormat; + texture2.type = THREE.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +let ExtSplats = _ExtSplats; +class DynoExtSplats extends DynoUniform { + constructor({ extSplats } = {}) { + super({ + key: "extSplats", + type: TExtSplats, + globals: () => [defineExtSplats], + value: { + textureArray1: ExtSplats.emptyTexture, + textureArray2: ExtSplats.emptyTexture, + numSplats: 0 }, - { gsplat: Gsplat }, - ({ - index, - rgbMinMaxLnScaleMinMax, - lodOpacity, - viewOrigin, - numSh, - shMax - }) => { - if (!index || !rgbMinMaxLnScaleMinMax || !lodOpacity || !viewOrigin || !numSh || !shMax) { - throw new Error("index and viewOrigin are required"); - } - let gsplat = this.readSplat.apply({ - index, - rgbMinMaxLnScaleMinMax, - lodOpacity - }).gsplat; - const splatCenter = splitGsplat(gsplat).outputs.center; - const viewDir = normalize(sub(splatCenter, viewOrigin)); - let rgb = evaluatePackedSH({ - coord: pagedSplatTexCoord(index), - viewDir, - numSh, - sh1Texture: this.sh1Texture, - sh2Texture: this.sh2Texture, - sh3Texture: this.sh3Texture, - shMax - }).rgb; - rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); - gsplat = combineGsplat({ gsplat, rgb }); - return { gsplat }; + update: (value) => { + var _a2, _b2, _c; + value.textureArray1 = ((_a2 = this.extSplats) == null ? void 0 : _a2.textures[0]) ?? ExtSplats.emptyTexture; + value.textureArray2 = ((_b2 = this.extSplats) == null ? void 0 : _b2.textures[1]) ?? ExtSplats.emptyTexture; + value.numSplats = ((_c = this.extSplats) == null ? void 0 : _c.numSplats) ?? 0; + return value; } - ); - this.readSplatExt = dynoBlock( - { index: "int" }, - { gsplat: Gsplat }, - ({ index }) => { - return new Dyno({ - inTypes: { - index: "int", - extTexture1: "usampler2DArray", - extTexture2: "usampler2DArray" - }, - outTypes: { gsplat: Gsplat }, - inputs: { - index, - extTexture1: this.packedTexture, - extTexture2: this.extTexture - }, - globals: () => [defineGsplat], - statements: ({ inputs, outputs }) => unindentLines(` - int index = ${inputs.index}; - ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16); - uvec4 ext1 = texelFetch(${inputs.extTexture1}, splatCoord, 0); - float alpha = unpackSplatExtAlpha(ext1); - if (alpha == 0.0) { - return; - } + }); + this.extSplats = extSplats; + } +} +const defineEvaluateExtSH1 = unindent(` + vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) { + vec3 sh1_0 = decodeExtRgb(packedData.x); + vec3 sh1_1 = decodeExtRgb(packedData.y); + vec3 sh1_2 = decodeExtRgb(packedData.z); - uvec4 ext2 = texelFetch(${inputs.extTexture2}, splatCoord, 0); - unpackSplatExt(ext1, ext2, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba); - if (all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { - return; - } + return sh1_0 * (-0.4886025 * viewDir.y) + + sh1_1 * (0.4886025 * viewDir.z) + + sh1_2 * (-0.4886025 * viewDir.x); + } +`); +const defineEvaluateExtSH12 = unindent(` + vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) { + vec3 sh1_0 = decodeExtRgb(packed1.x); + vec3 sh1_1 = decodeExtRgb(packed1.y); + vec3 sh1_2 = decodeExtRgb(packed1.z); - ${outputs.gsplat}.index = index; - ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE; - `) - }).outputs; - } - ); - this.readSplatExtDir = dynoBlock( - { - index: "int", - viewOrigin: "vec3", - numSh: "int" - }, - { gsplat: Gsplat }, - ({ index, viewOrigin, numSh }) => { - if (!index || !viewOrigin || !numSh) { - throw new Error("index and viewOrigin are required"); - } - let gsplat = this.readSplatExt.apply({ index }).gsplat; - const splatCenter = splitGsplat(gsplat).outputs.center; - const viewDir = normalize(sub(splatCenter, viewOrigin)); - let rgb = evaluateExtSH({ - coord: pagedSplatTexCoord(index), - viewDir, - numSh, - sh1Texture: this.sh1Texture, - sh2Texture: this.sh2Texture, - sh3TextureA: this.sh3Texture, - sh3TextureB: this.sh3TextureB - }).rgb; - rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); - gsplat = combineGsplat({ gsplat, rgb }); - return { gsplat }; - } - ); + vec3 sh2_0 = decodeExtRgb(packed1.w); + vec3 sh2_1 = decodeExtRgb(packed2.x); + vec3 sh2_2 = decodeExtRgb(packed2.y); + vec3 sh2_3 = decodeExtRgb(packed2.z); + vec3 sh2_4 = decodeExtRgb(packed2.w); + + vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y) + + sh1_1 * (0.4886025 * viewDir.z) + + sh1_2 * (-0.4886025 * viewDir.x); + + vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y) + + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z) + + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y)) + + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z) + + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y)); + + return sh1Rgb + sh2Rgb; } - dispose() { - this.autoDrive = false; - this.numFetchers = 0; - this.packedTexture.value.dispose(); - this.packedTexture.value.source.data = null; - if (this.extTexture.value !== _SplatPager.emptyExtTexture) { - this.extTexture.value.dispose(); - this.extTexture.value.source.data = null; - } - if (!this.extSplats) { - if (this.sh1Texture.value !== _SplatPager.emptySh1Texture) { - this.sh1Texture.value.dispose(); - this.sh1Texture.value.source.data = null; - } - if (this.sh2Texture.value !== _SplatPager.emptySh2Texture) { - this.sh2Texture.value.dispose(); - this.sh2Texture.value.source.data = null; - } - if (this.sh3Texture.value !== _SplatPager.emptySh3Texture) { - this.sh3Texture.value.dispose(); - this.sh3Texture.value.source.data = null; - } - } else { - if (this.sh1Texture.value !== _SplatPager.emptyExtSh1Texture) { - this.sh1Texture.value.dispose(); - this.sh1Texture.value.source.data = null; - } - if (this.sh2Texture.value !== _SplatPager.emptyExtSh2Texture) { - this.sh2Texture.value.dispose(); - this.sh2Texture.value.source.data = null; - } - if (this.sh3Texture.value !== _SplatPager.emptyExtSh3Texture) { - this.sh3Texture.value.dispose(); - this.sh3Texture.value.source.data = null; - } - if (this.sh3TextureB.value !== _SplatPager.emptyExtSh3BTexture) { - this.sh3TextureB.value.dispose(); - this.sh3TextureB.value.source.data = null; +`); +const defineEvaluateExtSH3 = unindent(` + vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) { + vec3 sh3_0 = decodeExtRgb(packedA.x); + vec3 sh3_1 = decodeExtRgb(packedA.y); + vec3 sh3_2 = decodeExtRgb(packedA.z); + vec3 sh3_3 = decodeExtRgb(packedA.w); + vec3 sh3_4 = decodeExtRgb(packedB.x); + vec3 sh3_5 = decodeExtRgb(packedB.y); + vec3 sh3_6 = decodeExtRgb(packedB.z); + + float xx = viewDir.x * viewDir.x; + float yy = viewDir.y * viewDir.y; + float zz = viewDir.z * viewDir.z; + float xy = viewDir.x * viewDir.y; + float yz = viewDir.y * viewDir.z; + float zx = viewDir.z * viewDir.x; + + return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy)) + + sh3_1 * (2.8906114 * xy * viewDir.z) + + + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy)) + + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) + + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy)) + + sh3_5 * (1.4453057 * viewDir.z * (xx - yy)) + + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy)); + } +`); +function evaluateExtSH({ + coord, + viewDir, + numSh, + sh1Texture, + sh2Texture, + sh3TextureA, + sh3TextureB +}) { + return new Dyno({ + inTypes: { + coord: "ivec3", + viewDir: "vec3", + numSh: "int", + sh1Texture: "usampler2DArray", + sh2Texture: "usampler2DArray", + sh3TextureA: "usampler2DArray", + sh3TextureB: "usampler2DArray" + }, + outTypes: { rgb: "vec3" }, + inputs: { + coord, + viewDir, + numSh, + sh1Texture, + sh2Texture, + sh3TextureA, + sh3TextureB + }, + globals: () => [ + defineEvaluateExtSH1, + defineEvaluateExtSH12, + defineEvaluateExtSH3 + ], + statements: ({ inputs, outputs }) => { + const lines = ["vec3 rgb = vec3(0.0);"]; + if (inputs.sh1Texture) { + if (!inputs.sh2Texture) { + lines.push( + ...unindentLines(` + if (${inputs.numSh} >= 1) { + rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir}); + } + `) + ); + } else { + lines.push( + ...unindentLines(` + if (${inputs.numSh} == 1) { + rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir}); + } else if (${inputs.numSh} >= 2) { + rgb = evaluateExtSH12(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}); + `) + ); + if (inputs.sh3TextureA && inputs.sh3TextureB) { + lines.push( + ...unindentLines(` + if (${inputs.numSh} >= 3) { + rgb += evaluateExtSH3(texelFetch(${inputs.sh3TextureA}, ${inputs.coord}, 0), texelFetch(${inputs.sh3TextureB}, ${inputs.coord}, 0), ${inputs.viewDir}); + } + `) + ); + } + lines.push("}"); + } } + lines.push(`${outputs.rgb} = rgb;`); + return lines; } - } - ensureShTextures(numSh) { - this.curSh = Math.max(this.curSh, numSh); - if (!this.extSplats) { - if (this.curSh >= 1 && this.sh1Texture.value === _SplatPager.emptySh1Texture) { - this.sh1Texture.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 2), - 256, - 256, - this.maxPages, - THREE.RGIntegerFormat, - THREE.UnsignedIntType, - "RG32UI" - ); + }).outputs; +} +function newUint32ArrayTexture(data, width, height, depth, format, type, internalFormat) { + const texture2 = new THREE.DataArrayTexture( + data, + width, + height, + depth + ); + texture2.format = format; + texture2.type = type; + texture2.internalFormat = internalFormat; + texture2.needsUpdate = true; + return texture2; +} +const _RgbaArray = class _RgbaArray { + constructor(options = {}) { + this.capacity = 0; + this.count = 0; + this.array = null; + this.readback = null; + this.source = null; + this.needsUpdate = true; + this.dyno = new DynoUniform({ + key: "rgbaArray", + type: TRgbaArray, + globals: () => [defineRgbaArray], + value: { + texture: _RgbaArray.getEmpty(), + count: 0 + }, + update: (value) => { + value.texture = this.getTexture(); + value.count = this.count; + return value; } - } else { - if (this.curSh >= 1 && this.sh1Texture.value === _SplatPager.emptyExtSh1Texture) { - this.sh1Texture.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType, - "RGBA32UI" - ); + }); + if (options.array) { + this.array = options.array; + const splatCount = Math.floor(this.array.length / 4); + this.capacity = Math.ceil(splatCount / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + if (this.capacity > splatCount) { + this.array = new Uint8Array(this.capacity * 4); + this.array.set(options.array); } - } - if (this.curSh >= 2 && this.sh2Texture.value === (!this.extSplats ? _SplatPager.emptySh2Texture : _SplatPager.emptyExtSh2Texture)) { - this.sh2Texture.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType, - "RGBA32UI" + this.count = Math.min( + splatCount, + options.count ?? Number.POSITIVE_INFINITY ); - } - if (!this.extSplats) { - if (this.curSh >= 3 && this.sh3Texture.value === _SplatPager.emptySh3Texture) { - this.sh3Texture.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType, - "RGBA32UI" - ); - } } else { - if (this.curSh >= 3) { - if (this.sh3Texture.value === _SplatPager.emptyExtSh3Texture) { - this.sh3Texture.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType, - "RGBA32UI" - ); - } - if (this.sh3TextureB.value === _SplatPager.emptyExtSh3BTexture) { - this.sh3TextureB.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType, - "RGBA32UI" - ); - } - } - } - } - allocatePage() { - return this.pageFreelist.shift(); - } - freePage(page) { - this.pageFreelist.push(page); - } - getSplatsChunk(splats, chunk) { - const chunks = this.splatsChunkToPage.get(splats); - if (!chunks) { - return void 0; + this.capacity = options.capacity ?? 0; + this.count = 0; } - return chunks[chunk]; } - insertSplatsChunkPage(splats, chunk, page, now) { - if (!this.splatsChunkToPage.has(splats)) { - this.splatsChunkToPage.set(splats, []); - } - const chunks = this.splatsChunkToPage.get(splats); - if (!chunks) { - throw new Error("impossible"); + // Free up resources + dispose() { + if (this.readback) { + this.readback.dispose(); + this.readback = null; } - if (chunk >= chunks.length) { - chunks.length = chunk + 1; + if (this.source) { + this.source.dispose(); + this.source = null; } - const pageLru = { page, lru: now }; - chunks[chunk] = pageLru; - this.pageLru.add(pageLru); - this.pageToSplatsChunk[page] = { splats, chunk, time: performance.now() }; - return this.pageToSplatsChunk[page]; } - removeSplatsChunkPage(splats, chunk, page) { - const chunks = this.splatsChunkToPage.get(splats); - if (!chunks) { - throw new Error("impossible"); - } - const pageLru = chunks[chunk]; - if (!pageLru) { - throw new Error( - `pageLru not found for splats: ${splats}, chunk: ${chunk}, page: ${page}` - ); - } - this.pageLru.delete(pageLru); - chunks[chunk] = void 0; - while (chunks.length > 0 && chunks[chunks.length - 1] === void 0) { - chunks.pop(); - } - if (chunks.length === 0) { - this.splatsChunkToPage.delete(splats); - } - this.pageToSplatsChunk[page] = void 0; - while (this.pageToSplatsChunk.length > 0 && this.pageToSplatsChunk[this.pageToSplatsChunk.length - 1] === void 0) { - this.pageToSplatsChunk.pop(); + // Ensure that our array is large enough to hold capacity RGBA8 values. + ensureCapacity(capacity) { + var _a2; + if (!this.array || capacity > (((_a2 = this.array) == null ? void 0 : _a2.length) ?? 0) / 4) { + this.capacity = getTextureSize(capacity).maxSplats; + const newArray2 = new Uint8Array(this.capacity * 4); + if (this.array) { + newArray2.set(this.array); + } + this.array = newArray2; } + return this.array; } - uploadPage(page, packedArray, extra, extArray) { - const pageBase = page * this.pageSplats; - const array = this.packedTexture.value.image.data; - array.subarray(pageBase * 4, pageBase * 4 + packedArray.length).set(packedArray); - this.packedTexture.value.addLayerUpdate(page); - this.packedTexture.value.needsUpdate = true; - if (extArray) { - const array2 = this.extTexture.value.image.data; - array2.subarray(pageBase * 4, pageBase * 4 + extArray.length).set(extArray); - this.extTexture.value.addLayerUpdate(page); - this.extTexture.value.needsUpdate = true; + // Get the THREE.DataArrayTexture from either the readback or the source. + getTexture() { + var _a2; + let texture2 = (_a2 = this.readback) == null ? void 0 : _a2.getTexture(); + if (this.source || this.array) { + texture2 = this.maybeUpdateSource(); } - const numSh = this.extSplats ? extra.sh3a && extra.sh3b ? 3 : extra.sh2 ? 2 : extra.sh1 ? 1 : 0 : extra.sh3 ? 3 : extra.sh2 ? 2 : extra.sh1 ? 1 : 0; - this.ensureShTextures(numSh); - if (!this.extSplats) { - if (this.sh1Texture.value !== _SplatPager.emptySh1Texture && extra.sh1) { - const sh1 = extra.sh1; - const array2 = this.sh1Texture.value.image.data; - array2.subarray(pageBase * 2, pageBase * 2 + sh1.length).set(sh1); - this.sh1Texture.value.addLayerUpdate(page); - this.sh1Texture.value.needsUpdate = true; - } - } else { - if (this.sh1Texture.value !== _SplatPager.emptyExtSh1Texture && extra.sh1) { - const sh1 = extra.sh1; - const array2 = this.sh1Texture.value.image.data; - array2.subarray(pageBase * 4, pageBase * 4 + sh1.length).set(sh1); - this.sh1Texture.value.addLayerUpdate(page); - this.sh1Texture.value.needsUpdate = true; - } - } - if (this.sh2Texture.value !== _SplatPager.emptySh2Texture && extra.sh2) { - const sh2 = extra.sh2; - const array2 = this.sh2Texture.value.image.data; - array2.subarray(pageBase * 4, pageBase * 4 + sh2.length).set(sh2); - this.sh2Texture.value.addLayerUpdate(page); - this.sh2Texture.value.needsUpdate = true; - } - if (!this.extSplats) { - if (this.sh3Texture.value !== _SplatPager.emptySh3Texture && extra.sh3) { - const sh3 = extra.sh3; - const array2 = this.sh3Texture.value.image.data; - array2.subarray(pageBase * 4, pageBase * 4 + sh3.length).set(sh3); - this.sh3Texture.value.addLayerUpdate(page); - this.sh3Texture.value.needsUpdate = true; - } - } else { - if (this.sh3Texture.value !== _SplatPager.emptyExtSh3Texture && extra.sh3a) { - const sh3a = extra.sh3a; - const array2 = this.sh3Texture.value.image.data; - array2.subarray(pageBase * 4, pageBase * 4 + sh3a.length).set(sh3a); - this.sh3Texture.value.addLayerUpdate(page); - this.sh3Texture.value.needsUpdate = true; - } - if (this.sh3TextureB.value !== _SplatPager.emptyExtSh3BTexture && extra.sh3b) { - const sh3b = extra.sh3b; - const array2 = this.sh3TextureB.value.image.data; - array2.subarray(pageBase * 4, pageBase * 4 + sh3b.length).set(sh3b); - this.sh3TextureB.value.addLayerUpdate(page); - this.sh3TextureB.value.needsUpdate = true; - } - } - } - getGlTexture(texture2) { - return getGlTexture(this.renderer, texture2); - } - newUint32ArrayTexture(data, width, height, depth, format, type, internalFormat) { - const texture2 = new THREE.DataArrayTexture(data, width, height, depth); - texture2.format = format; - texture2.type = type; - texture2.internalFormat = internalFormat; - texture2.needsUpdate = true; - this.renderer.initTexture(texture2); - return texture2; + return texture2 ?? _RgbaArray.getEmpty(); } - driveFetchers() { - const needed = []; - const overflow = []; - let numPages = 0; - for (const { splats, chunk } of this.fetchPriority) { - const pageLru = this.getSplatsChunk(splats, chunk); - if (pageLru) { - if (numPages >= this.maxPages) { - overflow.push(pageLru); - } else { - needed.push(pageLru); + // Create or get a THREE.DataArrayTexture from the data array. + maybeUpdateSource() { + if (!this.array) { + throw new Error("No array"); + } + if (this.needsUpdate || !this.source) { + this.needsUpdate = false; + if (this.source) { + const { width, height, depth } = this.source.image; + if (this.capacity !== width * height * depth) { + this.source.dispose(); + this.source = null; } - numPages += 1; - continue; } - if (this.fetched.some( - ({ splats: s, chunk: c }) => splats === s && chunk === c - ) || this.fetchers.some( - ({ splats: s, chunk: c }) => splats === s && chunk === c - )) { - numPages += 1; - continue; - } - if (numPages < this.maxPages && this.fetchers.length < this.numFetchers) { - numPages += 1; - const promise = splats.fetchDecodeChunk(chunk).then( - async (data) => { - this.fetched.push({ splats, chunk, data }); - if (this.fetchPause > 0) { - await new Promise( - (resolve) => setTimeout(resolve, this.fetchPause) - ); - } - }, - async (error) => { - console.warn(error); - const backoff = 250 + 500 * Math.random(); - await new Promise((resolve) => setTimeout(resolve, backoff)); - } - ).finally(() => { - this.fetchers = this.fetchers.filter( - ({ splats: s, chunk: c }) => splats !== s || chunk !== c - ); - this.processFetched(); - }); - this.fetchers.push({ splats, chunk, promise }); - promise.then((data) => { - if (this.autoDrive) { - this.driveFetchers(); - } - }); + if (!this.source) { + const { width, height, depth } = getTextureSize(this.capacity); + this.source = new THREE.DataArrayTexture( + this.array, + width, + height, + depth + ); + this.source.format = THREE.RGBAFormat; + this.source.type = THREE.UnsignedByteType; + this.source.internalFormat = "RGBA8"; + this.source.needsUpdate = true; + } else if (this.array.buffer !== this.source.image.data.buffer) { + this.source.image.data = new Uint8Array(this.array.buffer); } + this.source.needsUpdate = true; } - const now = performance.now(); - for (const pageLru of overflow.reverse()) { - pageLru.lru = now; - this.pageLru.delete(pageLru); - this.pageLru.add(pageLru); + return this.source; + } + // Generate the RGBA8 values from a Rgba8Readback dyno program. + render({ + reader, + count, + renderer + }) { + if (!this.readback) { + this.readback = new Readback({ renderer }); + } + this.readback.render({ reader, count, renderer }); + this.capacity = this.readback.capacity; + this.count = this.readback.count; + } + // Extract the RGBA8 values from a PackedSplats collection. + fromPackedSplats({ + packedSplats, + base, + count, + renderer + }) { + const { dynoSplats, dynoBase, dynoCount, reader } = _RgbaArray.makeDynos(); + dynoSplats.packedSplats = packedSplats; + dynoBase.value = base; + dynoCount.value = count; + this.render({ reader, count, renderer }); + return this; + } + // Read back the RGBA8 values from the readback buffer. + async read() { + if (!this.readback) { + throw new Error("No readback"); } - const extraPages = new Set(this.pageLru); - for (const pageLru of needed.reverse()) { - extraPages.delete(pageLru); - pageLru.lru = now; - this.pageLru.delete(pageLru); - this.pageLru.add(pageLru); + if (!this.array || this.array.length < this.count * 4) { + this.array = new Uint8Array(this.capacity * 4); } - this.freeablePages = Array.from(extraPages).map(({ page }) => page); + const result = await this.readback.readback({ readback: this.array }); + return result.subarray(0, this.count * 4); } - allocateFreeable() { - const page = this.freeablePages.shift(); - if (page === void 0) { - return void 0; + async getArray() { + if (this.readback) { + return await this.read(); } - const splatsChunk = this.pageToSplatsChunk[page]; - if (!splatsChunk) { - throw new Error(`splatsChunk not found for page: ${page}`); + if (this.array) { + return this.array; } - const { splats, chunk } = splatsChunk; - this.removeSplatsChunkPage(splats, chunk, page); - this.lodTreeUpdates.push({ - splats, - page, - chunk, - numSplats: this.pageSplats - }); - return page; + throw new Error("No array"); } - processFetched() { - const now = performance.now(); - while (true) { - const fetched = this.fetched.shift(); - if (!fetched) { - break; - } - const { splats, chunk, data } = fetched; - let page = this.allocatePage(); - if (page === void 0) { - page = this.allocateFreeable(); - if (page === void 0) { - return; - } - } - this.insertSplatsChunkPage(splats, chunk, page, now); - const { numSplats, extra } = data; - this.lodTreeUpdates.push({ - splats, - page, - chunk, - numSplats, - lodTree: extra.lodTree - }); - if (!this.extSplats) { - const packedArray = data.packedArray; - this.newUploads.push({ page, numSplats, packedArray, extra }); - } else { - const extArrays = data.extArrays; - const packedArray = extArrays[0]; - const extArray = extArrays[1]; - this.newUploads.push({ page, numSplats, packedArray, extArray, extra }); - } + // Can be used where you need an uninitialized THREE.DataArrayTexture like + // a uniform you will update with the result of this.getTexture() later. + static getEmpty() { + if (!_RgbaArray.emptySource) { + const emptyArray = new Uint8Array(1 * 4); + _RgbaArray.emptySource = new THREE.DataArrayTexture(emptyArray, 1, 1, 1); + _RgbaArray.emptySource.format = THREE.RGBAFormat; + _RgbaArray.emptySource.type = THREE.UnsignedByteType; + _RgbaArray.emptySource.internalFormat = "RGBA8"; + _RgbaArray.emptySource.needsUpdate = true; } + return _RgbaArray.emptySource; } - processUploads() { - while (true) { - const upload = this.readyUploads.shift(); - if (!upload) { - break; - } - const { page, numSplats, packedArray, extArray, extra } = upload; - this.uploadPage(page, packedArray, extra, extArray); + // Create a dyno program that can extract RGBA8 values from a PackedSplats + static makeDynos() { + if (!_RgbaArray.dynos) { + const dynoSplats = new DynoPackedSplats(); + const dynoBase = new DynoInt({ value: 0 }); + const dynoCount = new DynoInt({ value: 0 }); + const reader = dynoBlock( + { index: "int" }, + { rgba8: "vec4" }, + ({ index }) => { + if (!index) { + throw new Error("index is undefined"); + } + index = add(index, dynoBase); + const gsplat = readPackedSplatRange( + dynoSplats, + index, + dynoBase, + dynoCount + ); + return { rgba8: splitGsplat(gsplat).outputs.rgba }; + } + ); + _RgbaArray.dynos = { dynoSplats, dynoBase, dynoCount, reader }; } - } - consumeLodTreeUpdates() { - const updates = this.lodTreeUpdates; - this.lodTreeUpdates = []; - this.readyUploads.push(...this.newUploads); - this.newUploads = []; - return updates; + return _RgbaArray.dynos; } }; -_SplatPager.emptyUint32x4 = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 4); - const texture2 = new THREE.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE.RGBAIntegerFormat; - texture2.type = THREE.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_SplatPager.emptyUint32x2 = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 2); - const texture2 = new THREE.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE.RGIntegerFormat; - texture2.type = THREE.UnsignedIntType; - texture2.internalFormat = "RG32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_SplatPager.emptyIndicesTexture = (() => { - const emptyArray = new Uint32Array(4096 * 4); - const texture2 = new THREE.DataTexture(emptyArray, 4096, 1); - texture2.format = THREE.RGBAIntegerFormat; - texture2.type = THREE.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_SplatPager.emptyPackedTexture = _SplatPager.emptyUint32x4; -_SplatPager.emptyExtTexture = _SplatPager.emptyUint32x4; -_SplatPager.emptySh1Texture = _SplatPager.emptyUint32x2; -_SplatPager.emptySh2Texture = _SplatPager.emptyUint32x4; -_SplatPager.emptySh3Texture = _SplatPager.emptyUint32x4; -_SplatPager.emptyExtSh1Texture = _SplatPager.emptyUint32x4; -_SplatPager.emptyExtSh2Texture = _SplatPager.emptyUint32x4; -_SplatPager.emptyExtSh3Texture = _SplatPager.emptyUint32x4; -_SplatPager.emptyExtSh3BTexture = _SplatPager.emptyUint32x4; -let SplatPager = _SplatPager; -function getGlTexture(renderer, texture2) { - if (!renderer.properties.has(texture2)) { - throw new Error("texture not found"); - } - const props = renderer.properties.get(texture2); - const glTexture = props.__webglTexture; - if (!glTexture) { - throw new Error("texture not found"); - } - return glTexture; -} -const wasmInitialized = __wbg_init(); -async function fetchRange({ - url, - requestHeader, - withCredentials, - offset, - bytes -}) { - const request = new Request(url, { - headers: requestHeader ? new Headers(requestHeader) : void 0, - credentials: withCredentials ? "include" : "same-origin" +_RgbaArray.emptySource = null; +_RgbaArray.dynos = null; +let RgbaArray = _RgbaArray; +const TRgbaArray = { type: "RgbaArray" }; +const defineRgbaArray = unindent(` + struct RgbaArray { + sampler2DArray texture; + int count; + }; +`); +function readRgbaArray(rgba, index) { + const dyno2 = new Dyno({ + inTypes: { rgba: TRgbaArray, index: "int" }, + outTypes: { rgba: "vec4" }, + inputs: { rgba, index }, + globals: () => [defineRgbaArray], + statements: ({ inputs, outputs }) => unindentLines(` + if ((${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) { + ${outputs.rgba} = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0); + } else { + ${outputs.rgba} = vec4(0.0, 0.0, 0.0, 0.0); + } + `) }); - if (offset !== void 0 && bytes !== void 0) { - request.headers.set("Range", `bytes=${offset}-${offset + bytes - 1}`); - } - const response = await fetch(request); - if (!response.ok || !response.body) { - throw new Error( - `Failed to fetch "${url}": ${response.status} ${response.statusText}` - ); - } - return new Uint8Array(await response.arrayBuffer()); + return dyno2.outputs.rgba; } -class EmptySplatSource { - constructor() { - this.fetchDyno = new Dyno({ - inTypes: {}, - outTypes: { gsplat: Gsplat }, - globals: () => [defineGsplat], - statements: ({ outputs }) => unindentLines(` - ${outputs.gsplat}.flags = 0u; - return; - `) - }).outputs.gsplat; - } - prepareFetchSplat() { +const PAGE_WIDTH = 256; +const PAGE_HEIGHT = 256; +const PAGE_SPLATS = PAGE_WIDTH * PAGE_HEIGHT; +class PagedSplats { + constructor(options) { + var _a2; + this.pager = options.pager; + this.rootUrl = options.rootUrl ?? ""; + this.requestHeader = options.requestHeader; + this.withCredentials = options.withCredentials; + this.numSh = 0; + this.maxSh = ((_a2 = options.pager) == null ? void 0 : _a2.maxSh) ?? 3; + this.numSplats = 0; + this.dynoNumSplats = new DynoInt({ value: 0 }); + this.dynoIndices = new DynoUsampler2D({ + value: SplatPager.emptyIndicesTexture + }); + this.rgbMinMaxLnScaleMinMax = new DynoVec4({ + value: new THREE.Vector4(0, 1, LN_SCALE_MIN, LN_SCALE_MAX) + }); + this.lodOpacity = new DynoBool({ + value: false + }); + this.dynoNumSh = new DynoInt({ value: 0 }); + this.shMax = new DynoVec3({ value: new THREE.Vector3() }); + this.fileBytes = options.fileBytes; + this.fileType = options.fileType; + if (!this.fileType && this.fileBytes) { + this.fileType = getSplatFileType(this.fileBytes); + } + if (!this.fileType && this.rootUrl) { + this.fileType = getSplatFileTypeFromPath(this.rootUrl); + } + if (!this.fileType) { + throw new Error("Unable to determine file type"); + } + if (this.fileType === SplatFileType.RAD) { + this.radMetaPromise = this.getRadMeta(); + } } dispose() { - } - getNumSplats() { - return 0; - } - hasRgbDir() { - return false; - } - getNumSh() { - return 0; + if (this.dynoIndices.value !== SplatPager.emptyIndicesTexture) { + this.dynoIndices.value.dispose(); + this.dynoIndices.value = SplatPager.emptyIndicesTexture; + } } setMaxSh(maxSh) { + this.maxSh = maxSh; } - fetchSplat({ index }) { - return this.fetchDyno; + getRadMeta() { + if (this.radMetaPromise) { + return this.radMetaPromise; + } + this.radMetaPromise = (async () => { + await initialization; + if (this.fileBytes) { + const metaStart = decode_rad_header(this.fileBytes.slice(0, 1048576)); + if (metaStart) { + return metaStart; + } + throw new Error("Failed to decode RAD header"); + } + if (!this.rootUrl) { + throw new Error("No url or fileBytes provided"); + } + for (const tryBytes of [65536, 256 * 1024, 1024 * 1024]) { + const bytes = await fetchRange({ + url: this.rootUrl, + requestHeader: this.requestHeader, + withCredentials: this.withCredentials, + offset: 0, + bytes: tryBytes + }); + const metaStart = decode_rad_header(bytes); + if (metaStart) { + return metaStart; + } + } + throw new Error("Failed to decode RAD header"); + })().then((metaStart) => { + return metaStart; + }); + this.radMetaPromise.catch((error) => { + console.error(error); + }); + return this.radMetaPromise; } - forEachSplat() { + chunkUrl(chunk) { + return this.rootUrl.replace(/-lod-0\./, `-lod-${chunk}.`); } -} -const _SplatMesh = class _SplatMesh extends SplatGenerator { - constructor(options = {}) { - super({ - update: (context) => this.update(context) - }); - this.isInitialized = false; - this.recolor = new THREE.Color(1, 1, 1); - this.opacity = 1; - this.generatorDirty = true; - this.enableViewToObject = false; - this.enableViewToWorld = false; - this.enableWorldToView = false; - this.skinning = null; - this.edits = null; - this.rgbaDisplaceEdits = null; - this.splatRgba = null; - this.maxSh = 3; - this.showLodPageDyno = new DynoInt({ value: 0 }); - if (options.splats) { - this.splats = options.splats; - this.numSplats = options.splats.getNumSplats(); - } else if (options.paged) { - if (options.extSplats) { - console.warn( - "To set extSplats with the paged option, set SparkRenderer.pagedExtSplats" + async fetchDecodeChunk(chunk) { + let decodeBytes = void 0; + if (this.fileType === SplatFileType.RAD) { + const { meta, chunksStart } = await this.getRadMeta(); + if (chunk < 0 || chunk >= meta.chunks.length) { + throw new Error( + `Chunk index out of range: ${chunk} (max: ${meta.chunks.length - 1})` ); } - const rootUrl = options.url ?? ""; - if (options.paged === true) { - this.paged = new PagedSplats({ rootUrl }); - } else if (options.paged instanceof PagedSplats) { - this.paged = options.paged; - } else if (options.paged instanceof SplatPager) { - this.paged = new PagedSplats({ rootUrl, pager: options.paged }); + let { offset, bytes, filename } = meta.chunks[chunk]; + if (filename) { + if (this.fileBytes) { + throw new Error("Chunked RAD file not supported with fileBytes"); + } + const resolvedRoot = new URL( + this.rootUrl, + window.location.href + ).toString(); + const chunkUrl = new URL(filename, resolvedRoot).toString(); + decodeBytes = await fetchRange({ + url: chunkUrl, + requestHeader: this.requestHeader, + withCredentials: this.withCredentials + }); } else { - throw new Error("Invalid paged option"); - } - this.splats = this.paged; - } else if (options.extSplats) { - this.extSplats = options.extSplats instanceof ExtSplats ? options.extSplats : new ExtSplats(); - options.extSplats = this.extSplats; - this.numSplats = this.extSplats.numSplats; - this.splats = this.extSplats; - } else if (options.packedSplats) { - this.packedSplats = options.packedSplats; - this.packedSplats.splatEncoding = options.splatEncoding ?? { - ...DEFAULT_SPLAT_ENCODING - }; - this.splats = this.packedSplats; - } else { - this.packedSplats = new PackedSplats(); - } - this.editable = options.editable ?? true; - this.raycastable = options.raycastable ?? true; - this.minRaycastOpacity = options.minRaycastOpacity ?? 0.2; - this.onFrame = options.onFrame; - this.context = { - transform: new SplatTransformer(), - viewToWorld: new SplatTransformer(), - worldToView: new SplatTransformer(), - viewToObject: new SplatTransformer(), - covTransform: new CovSplatTransformer(), - covViewToWorld: new CovSplatTransformer(), - covWorldToView: new CovSplatTransformer(), - covViewToObject: new CovSplatTransformer(), - recolor: new DynoVec4({ - value: new THREE.Vector4().setScalar(Number.NEGATIVE_INFINITY) - }), - time: new DynoFloat({ value: 0 }), - deltaTime: new DynoFloat({ value: 0 }), - numSplats: new DynoInt({ value: 0 }), - splats: new EmptySplatSource(), - enableLod: new DynoBool({ value: false }), - lodIndices: new DynoUsampler2D({ - value: emptyLodIndices, - key: "lodIndices" - }) - }; - this.covSplats = options.covSplats ?? false; - if (this.covSplats && !this.extSplats) { - throw new Error("CovSplats requires ExtSplats"); - } - this.objectModifiers = options.objectModifier ? [options.objectModifier] : void 0; - this.worldModifiers = options.worldModifier ? [options.worldModifier] : void 0; - if (options.objectModifiers) { - this.objectModifiers = options.objectModifiers; - } - if (options.worldModifiers) { - this.worldModifiers = options.worldModifiers; - } - this.enableLod = options.enableLod; - this.lodScale = options.lodScale ?? 1; - this.behindFoveate = options.behindFoveate; - this.coneFov0 = options.coneFov0; - this.coneFov = options.coneFov; - this.coneFoveate = options.coneFoveate; - this.updateGenerator(); - if (options.url || options.fileBytes || options.stream || options.constructSplats || options.packedSplats && !options.packedSplats.isInitialized || this.extSplats && !this.extSplats.isInitialized) { - this.initialized = this.asyncInitialize(options).then(async () => { - this.updateGenerator(); - this.isInitialized = true; - if (options.onLoad) { - const maybePromise = options.onLoad(this); - if (maybePromise instanceof Promise) { - await maybePromise; + offset += chunksStart; + if (this.fileBytes) { + if (offset < 0 || offset + bytes > this.fileBytes.length) { + throw new Error( + `Invalid chunk offset or bytes: ${offset} + ${bytes} > ${this.fileBytes.length}` + ); } - } - return this; - }); - } else { - this.isInitialized = true; - this.initialized = Promise.resolve(this); - if (options.onLoad) { - const maybePromise = options.onLoad(this); - if (maybePromise instanceof Promise) { - this.initialized = maybePromise.then(() => this); + decodeBytes = this.fileBytes.slice(offset, offset + bytes); + } else if (this.rootUrl) { + decodeBytes = await fetchRange({ + url: this.rootUrl, + requestHeader: this.requestHeader, + withCredentials: this.withCredentials, + offset, + bytes + }); + } else { + throw new Error("No url or fileBytes provided"); } } - } - } - async asyncInitialize(options) { - const { - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - maxSplats, - constructSplats, - onProgress, - splatEncoding, - lod, - nonLod, - lodAbove - } = options; - if (this.packedSplats) { - if (url || fileBytes || stream || constructSplats) { - const packedSplatsOptions = { - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - maxSplats, - construct: constructSplats, - onProgress, - splatEncoding, - lod, - nonLod, - lodAbove - }; - this.packedSplats.reinitialize(packedSplatsOptions); + } else if (this.fileBytes) ; + else if (this.rootUrl) { + const url = this.chunkUrl(chunk); + const request = new Request(url, { + headers: this.requestHeader ? new Headers(this.requestHeader) : void 0, + credentials: this.withCredentials ? "include" : "same-origin" + }); + const response = await fetch(request); + if (!response.ok || !response.body) { + throw new Error( + `Failed to fetch "${url}": ${response.status} ${response.statusText}` + ); } - await this.packedSplats.initialized; - this.splats = this.packedSplats; - } else if (this.extSplats) { - if (url || fileBytes || stream || constructSplats) { - const construct = constructSplats; - this.extSplats.reinitialize({ - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - maxSplats, - construct, - onProgress, - lod, - nonLod, - lodAbove + decodeBytes = new Uint8Array(await response.arrayBuffer()); + } else { + throw new Error("No url or fileBytes provided"); + } + return await workerPool.withWorker(async (worker) => { + var _a2, _b2, _c, _d, _e; + if (!this.pager) { + throw new Error("PagedSplats.pager not set"); + } + if (!this.pager.extSplats) { + const result2 = await worker.call("loadPackedSplats", { + fileBytes: decodeBytes, + pathName: this.chunkUrl(chunk), + sh1Codes: (_a2 = this.sh1Codes) == null ? void 0 : _a2.slice(), + sh2Codes: (_b2 = this.sh2Codes) == null ? void 0 : _b2.slice(), + sh3Codes: (_c = this.sh3Codes) == null ? void 0 : _c.slice() }); - await this.extSplats.initialized; - this.splats = this.extSplats; + const lodSplats2 = result2.lodSplats; + if (!this.splatEncoding) { + this.splatEncoding = lodSplats2.splatEncoding; + this.numSh = lodSplats2.extra.sh3 ? 3 : lodSplats2.extra.sh2 ? 2 : lodSplats2.extra.sh1 ? 1 : 0; + this.rgbMinMaxLnScaleMinMax.value.set( + this.splatEncoding.rgbMin ?? 0, + this.splatEncoding.rgbMax ?? 1, + this.splatEncoding.lnScaleMin ?? LN_SCALE_MIN, + this.splatEncoding.lnScaleMax ?? LN_SCALE_MAX + ); + this.lodOpacity.value = this.splatEncoding.lodOpacity ?? false; + this.shMax.value.set( + this.splatEncoding.sh1Max ?? 1, + this.splatEncoding.sh2Max ?? 1, + this.splatEncoding.sh3Max ?? 1 + ); + } + this.sh1Codes = lodSplats2.extra.sh1Codes ?? this.sh1Codes; + this.sh2Codes = lodSplats2.extra.sh2Codes ?? this.sh2Codes; + this.sh3Codes = lodSplats2.extra.sh3Codes ?? this.sh3Codes; + return lodSplats2; + } + const sh3Codes = this.sh3Codes; + const result = await worker.call("loadExtSplats", { + fileBytes: decodeBytes, + pathName: this.chunkUrl(chunk), + sh1Codes: (_d = this.sh1Codes) == null ? void 0 : _d.slice(), + sh2Codes: (_e = this.sh2Codes) == null ? void 0 : _e.slice(), + sh3Codes: sh3Codes ? [sh3Codes[0].slice(), sh3Codes[1].slice()] : void 0 + }); + const lodSplats = result.lodSplats; + if (!this.splatEncoding) { + this.splatEncoding = DEFAULT_SPLAT_ENCODING; + this.numSh = lodSplats.extra.sh3a && lodSplats.extra.sh3b ? 3 : lodSplats.extra.sh2 ? 2 : lodSplats.extra.sh1 ? 1 : 0; } + this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes; + this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes; + this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes; + return lodSplats; + }); + } + update(numSplats, indices) { + if (!this.pager) { + throw new Error("PagedSplats.pager not set"); } - if (this.splats) { - this.numSplats = this.splats.getNumSplats(); - this.updateGenerator(); + const renderer = this.pager.renderer; + this.numSplats = numSplats; + this.dynoNumSplats.value = this.numSplats; + const rows = Math.ceil(numSplats / 16384); + let indicesTexture = this.dynoIndices.value === SplatPager.emptyIndicesTexture ? void 0 : this.dynoIndices.value; + if (indicesTexture && rows > indicesTexture.image.height) { + indicesTexture.dispose(); + indicesTexture = void 0; + } + if (!indicesTexture) { + indicesTexture = new THREE.DataTexture( + indices, + 4096, + rows, + THREE.RGBAIntegerFormat, + THREE.UnsignedIntType + ); + indicesTexture.internalFormat = "RGBA32UI"; + indicesTexture.needsUpdate = true; + renderer.initTexture(indicesTexture); + this.dynoIndices.value = indicesTexture; + } else { + const textureIndices = indicesTexture.image.data; + textureIndices.set(indices.subarray(0, numSplats)); + uploadU32DataTextureRows( + renderer, + indicesTexture, + 4096, + rows, + textureIndices + ); } } - static async staticInitialize() { - await __wbg_init(); - _SplatMesh.isStaticInitialized = true; + prepareFetchSplat() { } - // Creates a new Gsplat with the provided parameters (all values in "float" space, - // i.e. 0-1 for opacity and color) and adds it to the end of the packedSplats, - // increasing numSplats by 1. If necessary, reallocates the buffer with an exponential - // doubling strategy to fit the new data, so it's fairly efficient to just - // pushSplat(...) each Gsplat you want to create in a loop. - pushSplat(center, scales, quaternion, opacity, color) { - if (this.packedSplats) { - this.packedSplats.pushSplat(center, scales, quaternion, opacity, color); - } else if (this.extSplats) { - this.extSplats.pushSplat(center, scales, quaternion, opacity, color); + getNumSplats() { + return this.numSplats; + } + hasRgbDir() { + if (!this.pager) { + return false; } + return Math.min(this.numSh, this.pager.maxSh) > 0; } - // This method iterates over all Gsplats in this instance's packedSplats, - // invoking the provided callback with index: number in 0..=(this.numSplats-1) and - // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, - // opacity: number (0..1), and color: THREE.Color (rgb values in 0..1). - // Note that the objects passed in as center etc. are the same for every callback - // invocation: these objects are reused for efficiency. Changing these values has - // no effect as they are decoded/unpacked copies of the underlying data. To update - // the packedSplats, call .packedSplats.setSplat(index, center, scales, - // quaternion, opacity, color). - forEachSplat(callback) { - var _a2; - (_a2 = this.splats) == null ? void 0 : _a2.forEachSplat(callback); + getNumSh() { + return this.numSh; } - // Call this when you are finished with the SplatMesh and want to free - // any buffers it holds (via packedSplats). - dispose() { - if (this.splats && this.splats !== this.packedSplats && this.splats !== this.extSplats) { - this.splats.dispose(); - this.splats = void 0; + fetchSplat({ + index, + viewOrigin + }) { + if (!this.pager) { + throw new Error("PagedSplats.pager not set"); } - if (this.packedSplats) { - this.packedSplats.dispose(); - this.packedSplats = void 0; + const splatIndex = this.pager.readIndex.apply({ + index, + numSplats: this.dynoNumSplats, + indices: this.dynoIndices + }).index; + if (!this.pager.extSplats) { + if (this.hasRgbDir() && viewOrigin) { + this.dynoNumSh.value = Math.min( + this.numSh, + this.maxSh, + this.pager.maxSh + ); + return this.pager.readSplatDir.apply({ + index: splatIndex, + rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax, + lodOpacity: this.lodOpacity, + viewOrigin, + numSh: this.dynoNumSh, + shMax: this.shMax + }).gsplat; + } + return this.pager.readSplat.apply({ + index: splatIndex, + rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax, + lodOpacity: this.lodOpacity + }).gsplat; } - if (this.extSplats) { - this.extSplats.dispose(); - this.extSplats = void 0; + if (this.hasRgbDir() && viewOrigin) { + this.dynoNumSh.value = Math.min(this.numSh, this.maxSh, this.pager.maxSh); + return this.pager.readSplatExtDir.apply({ + index: splatIndex, + viewOrigin, + numSh: this.dynoNumSh + }).gsplat; } + return this.pager.readSplatExt.apply({ index: splatIndex }).gsplat; } - // Returns axis-aligned bounding box of the SplatMesh. If centers_only is true, - // only the centers of the splats are used to compute the bounding box. - // IMPORTANT: This should only be called after the SplatMesh is initialized. - getBoundingBox(centers_only = true) { - var _a2; - if (!this.initialized) { - throw new Error( - "Cannot get bounding box before SplatMesh is initialized" + // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat + // and invoke the callback function with the Gsplat attributes. + forEachSplat(callback) { + if (!this.pager || !this.numSplats) { + return; + } + const extSplats = this.pager.extSplats; + const indices = this.dynoIndices.value.image.data; + const packedSplatArray = this.pager.packedTexture.value.image.data; + const extPackedSplatArray = this.pager.extTexture.value.image.data; + const extArrays = [ + packedSplatArray, + extPackedSplatArray + ]; + for (let i = 0; i < this.numSplats; ++i) { + const splatIndex = indices[i]; + const unpacked = extSplats ? decodeExtSplat(extArrays, splatIndex) : unpackSplat(packedSplatArray, splatIndex, this.splatEncoding); + callback( + i, + unpacked.center, + unpacked.scales, + unpacked.quaternion, + unpacked.opacity, + unpacked.color ); } - const minVec = new THREE.Vector3( - Number.POSITIVE_INFINITY, - Number.POSITIVE_INFINITY, - Number.POSITIVE_INFINITY + } +} +const _SplatPager = class _SplatPager { + constructor(options) { + this.fetchPause = 0; + this.splatsChunkToPage = /* @__PURE__ */ new Map(); + this.pageToSplatsChunk = []; + this.renderer = options.renderer; + this.extSplats = options.extSplats ?? false; + this.pageSplats = PAGE_SPLATS; + this.maxSplats = options.maxSplats ?? 16777216; + this.maxPages = Math.ceil(this.maxSplats / PAGE_SPLATS); + this.maxSplats = this.maxPages * PAGE_SPLATS; + this.maxSh = options.maxSh ?? 3; + this.curSh = 0; + this.autoDrive = options.autoDrive ?? true; + this.numFetchers = options.numFetchers ?? 3; + this.splatsChunkToPage = /* @__PURE__ */ new Map(); + this.pageToSplatsChunk = new Array(this.maxPages); + this.pageFreelist = Array.from({ length: this.maxPages }, (_, i) => i); + this.pageLru = /* @__PURE__ */ new Set(); + this.freeablePages = []; + this.newUploads = []; + this.readyUploads = []; + this.lodTreeUpdates = []; + this.fetchers = []; + this.fetched = []; + this.fetchPriority = []; + this.packedTexture = new DynoUsampler2DArray({ + value: this.newUint32ArrayTexture(4) + }); + this.extTexture = new DynoUsampler2DArray({ + value: this.extSplats ? this.newUint32ArrayTexture(4) : _SplatPager.emptyExtTexture + }); + const emptyShTextures = this.extSplats ? _SplatPager.emptyExtShTextures : _SplatPager.emptyShTextures; + this.shTextures = emptyShTextures.map( + (texture2) => new DynoUsampler2DArray({ + value: texture2 + }) ); - const maxVec = new THREE.Vector3( - Number.NEGATIVE_INFINITY, - Number.NEGATIVE_INFINITY, - Number.NEGATIVE_INFINITY + this.readIndex = dynoBlock( + { index: "int", numSplats: "int", indices: "usampler2D" }, + { index: "int" }, + ({ index, numSplats, indices }) => { + return new Dyno({ + inTypes: { + index: "int", + numSplats: "int", + indices: "usampler2D" + }, + outTypes: { index: "int" }, + inputs: { + index, + numSplats, + indices + }, + statements: ({ inputs, outputs }) => unindentLines(` + if (${inputs.index} >= ${inputs.numSplats}) { + return; + } + + ivec2 indexCoord = ivec2((${inputs.index} >> 2) & 4095, ${inputs.index} >> 14); + uint index = texelFetch(${inputs.indices}, indexCoord, 0)[${inputs.index} & 3]; + ${outputs.index} = int(index); + `) + }).outputs; + } ); - const corners = new THREE.Vector3(); - const signs = [-1, 1]; - function callback(_index, center, scales, quaternion, _opacity, _color) { - if (centers_only) { - minVec.min(center); - maxVec.max(center); - } else { - for (const x of signs) { - for (const y of signs) { - for (const z of signs) { - corners.set(x * scales.x, y * scales.y, z * scales.z); - corners.applyQuaternion(quaternion); - corners.add(center); - minVec.min(corners); - maxVec.max(corners); + this.readSplat = dynoBlock( + { index: "int", rgbMinMaxLnScaleMinMax: "vec4", lodOpacity: "bool" }, + { gsplat: Gsplat }, + ({ index, rgbMinMaxLnScaleMinMax, lodOpacity }) => { + return new Dyno({ + inTypes: { + index: "int", + packedTexture: "usampler2DArray", + rgbMinMaxLnScaleMinMax: "vec4", + lodOpacity: "bool" + }, + outTypes: { gsplat: Gsplat }, + inputs: { + index, + packedTexture: this.packedTexture, + rgbMinMaxLnScaleMinMax, + lodOpacity + }, + globals: () => [defineGsplat], + statements: ({ inputs, outputs }) => unindentLines(` + int index = ${inputs.index}; + ivec3 splatCoord = pagedSplatTexCoord(index); + uvec4 packedData = texelFetch(${inputs.packedTexture}, splatCoord, 0); + + unpackSplatEncoding(packedData, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba, ${inputs.rgbMinMaxLnScaleMinMax}); + if ((${outputs.gsplat}.rgba.a == 0.0) || all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { + return; } - } - } + + ${outputs.gsplat}.index = index; + ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE; + if (${inputs.lodOpacity}) { + ${outputs.gsplat}.rgba.a *= 2.0; + } + `) + }).outputs; } - } - (_a2 = this.splats) == null ? void 0 : _a2.forEachSplat(callback); - const box = new THREE.Box3(minVec, maxVec); - return box; - } - set objectModifier(modifier) { - if (modifier) { - this.objectModifiers = [modifier]; - } else { - this.objectModifiers = void 0; - } - } - set worldModifier(modifier) { - if (modifier) { - this.worldModifiers = [modifier]; - } else { - this.worldModifiers = void 0; - } - } - constructGenerator(context) { - if (this.covSplats) { - return this.constructCovGenerator(context); - } - const { transform, viewToObject, recolor } = context; - const generator = dynoBlock( - { index: "int" }, + ); + this.readSplatDir = dynoBlock( + { + index: "int", + rgbMinMaxLnScaleMinMax: "vec4", + lodOpacity: "bool", + viewOrigin: "vec3", + numSh: "int", + shMax: "vec3" + }, { gsplat: Gsplat }, - ({ index }) => { - if (!index) { - throw new Error("index is undefined"); + ({ + index, + rgbMinMaxLnScaleMinMax, + lodOpacity, + viewOrigin, + numSh, + shMax + }) => { + if (!index || !rgbMinMaxLnScaleMinMax || !lodOpacity || !viewOrigin || !numSh || !shMax) { + throw new Error("index and viewOrigin are required"); } - index = maybeLookupIndex( - context.lodIndices, - index, - context.numSplats, - context.enableLod, - this.showLodPageDyno - ); - context.splats.setMaxSh(this.maxSh); - context.splats.prepareFetchSplat(); - let gsplat = context.splats.fetchSplat({ + let gsplat = this.readSplat.apply({ index, - viewOrigin: viewToObject.translate - }); - if (this.splatRgba) { - gsplat = maybeInjectSplatRgba( - gsplat, - this.splatRgba.dyno, - index, - context.enableLod - ); - } - if (this.skinning) { - gsplat = this.skinning.modify(gsplat); - } - if (this.objectModifiers) { - for (const modifier of this.objectModifiers) { - gsplat = modifier.apply({ gsplat }).gsplat; - } - } - gsplat = transform.applyGsplat(gsplat); - const recolorRgba = mul(recolor, splitGsplat(gsplat).outputs.rgba); - gsplat = combineGsplat({ gsplat, rgba: recolorRgba }); - if (this.rgbaDisplaceEdits) { - gsplat = this.rgbaDisplaceEdits.modify(gsplat); - } - if (this.worldModifiers) { - for (const modifier of this.worldModifiers) { - gsplat = modifier.apply({ gsplat }).gsplat; - } - } + rgbMinMaxLnScaleMinMax, + lodOpacity + }).gsplat; + const splatCenter = splitGsplat(gsplat).outputs.center; + const viewDir = normalize(sub(splatCenter, viewOrigin)); + let rgb = evaluatePackedSH({ + coord: pagedSplatTexCoord(index), + viewDir, + numSh, + sh1Texture: this.shTextures[0], + sh2Texture: this.shTextures[1], + sh3Texture: this.shTextures[2], + shMax + }).rgb; + rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); + gsplat = combineGsplat({ gsplat, rgb }); return { gsplat }; } ); - this.generator = generator; - this.covGenerator = void 0; - } - constructCovGenerator(context) { - const { covTransform, covViewToObject, recolor } = context; - const generator = dynoBlock( + this.readSplatExt = dynoBlock( { index: "int" }, - { covsplat: CovSplat }, + { gsplat: Gsplat }, ({ index }) => { - if (!index) { - throw new Error("index is undefined"); - } - index = maybeLookupIndex( - context.lodIndices, - index, - context.numSplats, - context.enableLod, - this.showLodPageDyno - ); - context.splats.prepareFetchSplat(); - let gsplat = context.splats.fetchSplat({ - index, - viewOrigin: covViewToObject.offset - }); - if (this.splatRgba) { - gsplat = maybeInjectSplatRgba( - gsplat, - this.splatRgba.dyno, - index, - context.enableLod - ); - } - if (this.objectModifiers) { - for (const modifier of this.objectModifiers) { - gsplat = modifier.apply({ gsplat }).gsplat; - } - } - let covsplat = gsplatToCovSplat(gsplat); - if (this.skinning) { - covsplat = this.skinning.modifyCov(covsplat); - } - if (this.covObjectModifiers) { - for (const modifier of this.covObjectModifiers) { - covsplat = modifier.apply({ covsplat }).covsplat; - } - } - covsplat = covTransform.applyCovSplat(covsplat); - const recolorRgba = mul(recolor, splitCovSplat(covsplat).outputs.rgba); - covsplat = combineCovSplat({ covsplat, rgba: recolorRgba }); - if (this.rgbaDisplaceEdits) { - covsplat = this.rgbaDisplaceEdits.modifyCov(covsplat); - } - if (this.covWorldModifiers) { - for (const modifier of this.covWorldModifiers) { - covsplat = modifier.apply({ covsplat }).covsplat; - } + return new Dyno({ + inTypes: { + index: "int", + extTexture1: "usampler2DArray", + extTexture2: "usampler2DArray" + }, + outTypes: { gsplat: Gsplat }, + inputs: { + index, + extTexture1: this.packedTexture, + extTexture2: this.extTexture + }, + globals: () => [defineGsplat], + statements: ({ inputs, outputs }) => unindentLines(` + int index = ${inputs.index}; + ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16); + uvec4 ext1 = texelFetch(${inputs.extTexture1}, splatCoord, 0); + float alpha = unpackSplatExtAlpha(ext1); + if (alpha == 0.0) { + return; + } + + uvec4 ext2 = texelFetch(${inputs.extTexture2}, splatCoord, 0); + unpackSplatExt(ext1, ext2, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba); + if (all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { + return; + } + + ${outputs.gsplat}.index = index; + ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE; + `) + }).outputs; + } + ); + this.readSplatExtDir = dynoBlock( + { + index: "int", + viewOrigin: "vec3", + numSh: "int" + }, + { gsplat: Gsplat }, + ({ index, viewOrigin, numSh }) => { + if (!index || !viewOrigin || !numSh) { + throw new Error("index and viewOrigin are required"); } - return { covsplat }; + let gsplat = this.readSplatExt.apply({ index }).gsplat; + const splatCenter = splitGsplat(gsplat).outputs.center; + const viewDir = normalize(sub(splatCenter, viewOrigin)); + let rgb = evaluateExtSH({ + coord: pagedSplatTexCoord(index), + viewDir, + numSh, + sh1Texture: this.shTextures[0], + sh2Texture: this.shTextures[1], + sh3TextureA: this.shTextures[2], + sh3TextureB: this.shTextures[3] + }).rgb; + rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); + gsplat = combineGsplat({ gsplat, rgb }); + return { gsplat }; } ); - this.generator = void 0; - this.covGenerator = generator; } - // Call this whenever something changes in the Gsplat processing pipeline, - // for example changing maxSh or updating objectModifier or worldModifier. - // Compiled generators are cached for efficiency and re-use when the same - // pipeline structure emerges after successive changes. - updateGenerator() { - this.generatorDirty = true; + dispose() { + this.autoDrive = false; + this.numFetchers = 0; + this.packedTexture.value.dispose(); + this.packedTexture.value.source.data = null; + if (this.extTexture.value !== _SplatPager.emptyExtTexture) { + this.extTexture.value.dispose(); + this.extTexture.value.source.data = null; + } + const emptyShTextures = this.extSplats ? _SplatPager.emptyExtShTextures : _SplatPager.emptyShTextures; + for (let i = 0; i < emptyShTextures.length; i++) { + const texture2 = this.shTextures[i].value; + if (texture2 !== emptyShTextures[i]) { + texture2.dispose(); + texture2.source.data = null; + } + } } - // This is called automatically by SparkRenderer and you should not have to - // call it. It updates parameters for the generated pipeline and calls - // updateGenerator() if the pipeline needs to change. - update({ - renderer, - time, - deltaTime, - viewToWorld, - camera, - renderSize, - globalEdits, - lodIndices - }) { - var _a2, _b2, _c; - this.context.time.value = time; - this.context.deltaTime.value = deltaTime; - _SplatMesh.dynoTime.value = time; - this.showLodPageDyno.value = this.showLodPage ?? -1; - const splats = this.splats ?? this.packedSplats ?? this.extSplats; - if (splats) { - this.context.splats = splats; + ensureShTextures(numSh) { + this.curSh = Math.max(this.curSh, numSh); + const emptyShTextures = this.extSplats ? _SplatPager.emptyExtShTextures : _SplatPager.emptyShTextures; + for (let i = 0; i < this.curSh; i++) { + if (this.shTextures[i].value === emptyShTextures[i]) { + const elementsPerSplat = this.shTextures[i].value === _SplatPager.emptyUint32x2 ? 2 : 4; + this.shTextures[i].value = this.newUint32ArrayTexture(elementsPerSplat); + } } - this.numSplats = this.context.splats.getNumSplats(); - let updated = false; - const lodSplats = ((_a2 = this.packedSplats) == null ? void 0 : _a2.lodSplats) ?? ((_b2 = this.extSplats) == null ? void 0 : _b2.lodSplats); - this.context.enableLod.value = lodSplats != null && lodIndices != null; - if (this.enableLod === false) { - this.context.enableLod.value = false; + } + allocatePage() { + return this.pageFreelist.shift(); + } + getSplatsChunk(splats, chunk) { + const chunks = this.splatsChunkToPage.get(splats); + if (!chunks) { + return void 0; } - this.context.lodIndices.value = (lodIndices == null ? void 0 : lodIndices.texture) ?? emptyLodIndices; - if (this.context.enableLod.value && lodSplats) { - this.context.splats = lodSplats; - this.numSplats = (lodIndices == null ? void 0 : lodIndices.numSplats) ?? 0; + return chunks[chunk]; + } + insertSplatsChunkPage(splats, chunk, page, now) { + if (!this.splatsChunkToPage.has(splats)) { + this.splatsChunkToPage.set(splats, []); } - this.context.numSplats.value = this.numSplats; - if (this.context.splats !== this.lastSplats) { - this.lastSplats = this.context.splats; - this.generatorDirty = true; + const chunks = this.splatsChunkToPage.get(splats); + if (!chunks) { + throw new Error("impossible"); } - if (!this.covSplats) { - if (this.context.transform.update(this)) { - updated = true; - } - if (this.context.viewToWorld.updateFromMatrix(viewToWorld) && this.enableViewToWorld) { - updated = true; - } - const worldToView = viewToWorld.clone().invert(); - if (this.context.worldToView.updateFromMatrix(worldToView) && this.enableWorldToView) { - updated = true; - } - const objectToWorld = new THREE.Matrix4().compose( - this.context.transform.translate.value, - this.context.transform.rotate.value, - new THREE.Vector3().setScalar(this.context.transform.scale.value) + if (chunk >= chunks.length) { + chunks.length = chunk + 1; + } + const pageLru = { page, lru: now }; + chunks[chunk] = pageLru; + this.pageLru.add(pageLru); + this.pageToSplatsChunk[page] = { splats, chunk, time: performance.now() }; + return this.pageToSplatsChunk[page]; + } + removeSplatsChunkPage(splats, chunk, page) { + const chunks = this.splatsChunkToPage.get(splats); + if (!chunks) { + throw new Error("impossible"); + } + const pageLru = chunks[chunk]; + if (!pageLru) { + throw new Error( + `pageLru not found for splats: ${splats}, chunk: ${chunk}, page: ${page}` ); - const worldToObject = objectToWorld.invert(); - const viewToObjectMatrix = worldToObject.multiply(viewToWorld); - if (this.context.viewToObject.updateFromMatrix(viewToObjectMatrix) && (this.enableViewToObject || this.context.splats.hasRgbDir())) { - updated = true; - } - } else { - if (this.context.covTransform.update(this)) { - updated = true; + } + this.pageLru.delete(pageLru); + chunks[chunk] = void 0; + while (chunks.length > 0 && chunks[chunks.length - 1] === void 0) { + chunks.pop(); + } + if (chunks.length === 0) { + this.splatsChunkToPage.delete(splats); + } + this.pageToSplatsChunk[page] = void 0; + while (this.pageToSplatsChunk.length > 0 && this.pageToSplatsChunk[this.pageToSplatsChunk.length - 1] === void 0) { + this.pageToSplatsChunk.pop(); + } + } + removeSplats(splats) { + const chunks = this.splatsChunkToPage.get(splats); + if (!chunks) { + return; + } + const freedPages = /* @__PURE__ */ new Set(); + while (chunks.length > 0) { + const chunk = chunks.pop(); + if (chunk) { + const { page } = chunk; + this.pageToSplatsChunk[page] = void 0; + freedPages.add(page); + this.pageFreelist.push(page); + this.pageLru.delete(chunk); } - if (this.context.covViewToWorld.updateFromMatrix(viewToWorld) && this.enableViewToWorld) { - updated = true; + } + this.splatsChunkToPage.delete(splats); + this.freeablePages = this.freeablePages.filter( + (page) => !freedPages.has(page) + ); + } + uploadPage(page, packedArray, shArrays, extArray) { + const pageBase = page * PAGE_SPLATS; + uploadTextureLayer(this.packedTexture, page, pageBase * 4, packedArray); + if (extArray) { + uploadTextureLayer(this.extTexture, page, pageBase * 4, extArray); + } + const numSh = Math.min(shArrays.length, 3); + this.ensureShTextures(numSh); + for (let i = 0; i < shArrays.length; i++) { + const array = shArrays[i]; + const elementsPerSplat = this.shTextures[i].value.format === THREE.RGIntegerFormat ? 2 : 4; + uploadTextureLayer( + this.shTextures[i], + page, + pageBase * elementsPerSplat, + array + ); + } + } + newUint32ArrayTexture(elementsPerSplat) { + const data = new Uint32Array( + this.maxPages * PAGE_WIDTH * PAGE_HEIGHT * elementsPerSplat + ); + const texture2 = new THREE.DataArrayTexture( + data, + PAGE_WIDTH, + PAGE_HEIGHT, + this.maxPages + ); + texture2.format = elementsPerSplat === 2 ? THREE.RGIntegerFormat : THREE.RGBAIntegerFormat; + texture2.type = THREE.UnsignedIntType; + texture2.internalFormat = elementsPerSplat === 2 ? "RG32UI" : "RGBA32UI"; + texture2.needsUpdate = true; + texture2.source.dataReady = false; + this.renderer.initTexture(texture2); + return texture2; + } + driveFetchers() { + const needed = []; + const overflow = []; + let numPages = 0; + for (const { splats, chunk } of this.fetchPriority) { + const pageLru = this.getSplatsChunk(splats, chunk); + if (pageLru) { + if (numPages >= this.maxPages) { + overflow.push(pageLru); + } else { + needed.push(pageLru); + } + numPages += 1; + continue; } - const worldToView = viewToWorld.clone().invert(); - if (this.context.covWorldToView.updateFromMatrix(worldToView) && this.enableWorldToView) { - updated = true; + if (this.fetched.some( + ({ splats: s, chunk: c }) => splats === s && chunk === c + ) || this.fetchers.some( + ({ splats: s, chunk: c }) => splats === s && chunk === c + )) { + numPages += 1; + continue; } - const worldToObject = this.matrixWorld.clone().invert(); - const viewToObjectMatrix = worldToObject.multiply(viewToWorld); - if (this.context.covViewToObject.updateFromMatrix(viewToObjectMatrix) && (this.enableViewToObject || this.context.splats.hasRgbDir())) { - updated = true; + if (numPages < this.maxPages && this.fetchers.length < this.numFetchers) { + numPages += 1; + const promise = splats.fetchDecodeChunk(chunk).then( + async (data) => { + this.fetched.push({ splats, chunk, data }); + if (this.fetchPause > 0) { + await new Promise( + (resolve) => setTimeout(resolve, this.fetchPause) + ); + } + }, + async (error) => { + console.warn(error); + const backoff = 250 + 500 * Math.random(); + await new Promise((resolve) => setTimeout(resolve, backoff)); + } + ).finally(() => { + this.fetchers = this.fetchers.filter( + ({ splats: s, chunk: c }) => splats !== s || chunk !== c + ); + this.processFetched(); + }); + this.fetchers.push({ splats, chunk, promise }); + promise.then((data) => { + if (this.autoDrive) { + this.driveFetchers(); + } + }); } } - const newRecolor = new THREE.Vector4( - this.recolor.r, - this.recolor.g, - this.recolor.b, - this.opacity - ); - if (!newRecolor.equals(this.context.recolor.value)) { - this.context.recolor.value.copy(newRecolor); - updated = true; - } - const edits = this.editable ? (this.edits ?? []).concat(globalEdits) : []; - if (this.editable && !this.edits) { - this.traverseVisible((node) => { - if (node instanceof SplatEdit) { - edits.push(node); - } - }); - } - edits.sort((a, b) => a.ordering - b.ordering); - const editsSdfs = edits.map((edit) => { - if (edit.sdfs != null) { - return { edit, sdfs: edit.sdfs }; - } - const sdfs = []; - edit.traverseVisible((node) => { - if (node instanceof SplatEditSdf) { - sdfs.push(node); - } - }); - return { edit, sdfs }; - }); - if (editsSdfs.length > 0 && !this.rgbaDisplaceEdits) { - const edits2 = editsSdfs.length; - const sdfs = editsSdfs.reduce( - (total, edit) => total + edit.sdfs.length, - 0 - ); - this.rgbaDisplaceEdits = new SplatEdits({ - maxEdits: edits2, - maxSdfs: sdfs - }); - this.generatorDirty = true; + const now = performance.now(); + for (const pageLru of overflow.reverse()) { + pageLru.lru = now; + this.pageLru.delete(pageLru); + this.pageLru.add(pageLru); } - if (this.rgbaDisplaceEdits) { - const editResult = this.rgbaDisplaceEdits.update(editsSdfs); - updated || (updated = editResult.updated); - if (editResult.dynoUpdated) { - this.generatorDirty = true; - } + const extraPages = new Set(this.pageLru); + for (const pageLru of needed.reverse()) { + extraPages.delete(pageLru); + pageLru.lru = now; + this.pageLru.delete(pageLru); + this.pageLru.add(pageLru); } - if (this.generatorDirty) { - this.constructGenerator(this.context); - this.generatorDirty = false; - updated = true; + this.freeablePages = Array.from(extraPages).map(({ page }) => page); + } + allocateFreeable() { + const page = this.freeablePages.shift(); + if (page === void 0) { + return void 0; } - if (updated) { - this.updateVersion(); + const splatsChunk = this.pageToSplatsChunk[page]; + if (!splatsChunk) { + throw new Error(`splatsChunk not found for page: ${page}`); } - (_c = this.onFrame) == null ? void 0 : _c.call(this, { mesh: this, time, deltaTime }); + const { splats, chunk } = splatsChunk; + this.removeSplatsChunkPage(splats, chunk, page); + this.lodTreeUpdates.push({ + splats, + page, + chunk, + numSplats: PAGE_SPLATS + }); + return page; } - // This method conforms to the standard THREE.Raycaster API, performing object-ray - // intersections using this method to populate the provided intersects[] array - // with each intersection point. - raycast(raycaster, intersects) { - var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w; - if (!_SplatMesh.isStaticInitialized || !this.raycastable || !this.packedSplats && !this.extSplats && !this.paged) { - return; - } - const paged = this.paged != null; - const ext = paged ? ((_b2 = (_a2 = this.paged) == null ? void 0 : _a2.pager) == null ? void 0 : _b2.extSplats) ?? false : this.extSplats != null; - const { near, far, ray } = raycaster; - const worldToMesh = this.matrixWorld.clone().invert(); - const worldToMeshRot = new THREE.Matrix3().setFromMatrix4(worldToMesh); - const origin = ray.origin.clone().applyMatrix4(worldToMesh); - const direction = ray.direction.clone().applyMatrix3(worldToMeshRot); - const buffer = get_raycast_buffer(); - const bufferSize = buffer.length / 4; - let intersections = 0; - const numSplats = ((_c = this.raycastIndices) == null ? void 0 : _c.numSplats) ?? (paged ? (_d = this.paged) == null ? void 0 : _d.numSplats : this.context.numSplats.value) ?? 0; - const indices = ((_e = this.raycastIndices) == null ? void 0 : _e.indices) ?? (paged ? (_f = this.paged) == null ? void 0 : _f.dynoIndices.value.image.data : this.context.enableLod.value ? this.context.lodIndices.value.image.data : null) ?? null; - if (!ext) { - const packed = paged ? (_h = (_g = this.paged) == null ? void 0 : _g.pager) == null ? void 0 : _h.packedTexture.value.image.data : indices ? (_j = (_i = this.packedSplats) == null ? void 0 : _i.lodSplats) == null ? void 0 : _j.packedArray : (_k = this.packedSplats) == null ? void 0 : _k.packedArray; - if (!packed) { - return; - } - const splatEncoding = paged ? (_l = this.paged) == null ? void 0 : _l.splatEncoding : (_m = this.packedSplats) == null ? void 0 : _m.splatEncoding; - for (let base = 0; base < numSplats; base += bufferSize) { - const count = Math.min(bufferSize, numSplats - base); - if (!indices) { - buffer.set(packed.subarray(base * 4, (base + count) * 4)); - } else { - for (let i = 0; i < count; ++i) { - const index = indices[base + i]; - const i4 = i * 4; - const index4 = index * 4; - buffer[i4] = packed[index4]; - buffer[i4 + 1] = packed[index4 + 1]; - buffer[i4 + 2] = packed[index4 + 2]; - buffer[i4 + 3] = packed[index4 + 3]; - } - } - const newIntersections = raycast_packed_buffer( - origin.x, - origin.y, - origin.z, - direction.x, - direction.y, - direction.z, - this.minRaycastOpacity, - near, - far, - count, - (splatEncoding == null ? void 0 : splatEncoding.lnScaleMin) ?? LN_SCALE_MIN, - (splatEncoding == null ? void 0 : splatEncoding.lnScaleMax) ?? LN_SCALE_MAX, - (splatEncoding == null ? void 0 : splatEncoding.lodOpacity) ?? false - ); - intersections = this.appendRaycastBuffer( - intersections, - newIntersections - ); - } - } else { - const buffer2 = get_raycast_buffer2(); - const ext1 = paged ? (_o = (_n = this.paged) == null ? void 0 : _n.pager) == null ? void 0 : _o.packedTexture.value.image.data : indices ? (_q = (_p = this.extSplats) == null ? void 0 : _p.lodSplats) == null ? void 0 : _q.extArrays[0] : (_r = this.extSplats) == null ? void 0 : _r.extArrays[0]; - const ext2 = paged ? (_t = (_s = this.paged) == null ? void 0 : _s.pager) == null ? void 0 : _t.extTexture.value.image.data : indices ? (_v = (_u = this.extSplats) == null ? void 0 : _u.lodSplats) == null ? void 0 : _v.extArrays[1] : (_w = this.extSplats) == null ? void 0 : _w.extArrays[1]; - if (!ext1 || !ext2) { - return; + processFetched() { + const now = performance.now(); + while (true) { + const fetched = this.fetched.shift(); + if (!fetched) { + break; } - for (let base = 0; base < numSplats; base += bufferSize) { - const count = Math.min(bufferSize, numSplats - base); - if (!indices) { - buffer.set(ext1.subarray(base * 4, (base + count) * 4)); - buffer2.set(ext2.subarray(base * 4, (base + count) * 4)); - } else { - for (let i = 0; i < count; ++i) { - const index = indices[base + i]; - const i4 = i * 4; - const index4 = index * 4; - buffer[i4] = ext1[index4]; - buffer[i4 + 1] = ext1[index4 + 1]; - buffer[i4 + 2] = ext1[index4 + 2]; - buffer[i4 + 3] = ext1[index4 + 3]; - buffer2[i4] = ext2[index4]; - buffer2[i4 + 1] = ext2[index4 + 1]; - buffer2[i4 + 2] = ext2[index4 + 2]; - buffer2[i4 + 3] = ext2[index4 + 3]; - } + const { splats, chunk, data } = fetched; + let page = this.allocatePage(); + if (page === void 0) { + page = this.allocateFreeable(); + if (page === void 0) { + return; } - const newIntersections = raycast_ext_buffers( - origin.x, - origin.y, - origin.z, - direction.x, - direction.y, - direction.z, - this.minRaycastOpacity, - near, - far, - count - ); - intersections = this.appendRaycastBuffer( - intersections, - newIntersections - ); } - } - for (const distance2 of _SplatMesh.raycastBuffer.subarray(0, intersections)) { - const point = ray.direction.clone().multiplyScalar(distance2).add(ray.origin); - intersects.push({ - distance: distance2, - point, - object: this + this.insertSplatsChunkPage(splats, chunk, page, now); + const { numSplats, extra } = data; + this.lodTreeUpdates.push({ + splats, + page, + chunk, + numSplats, + lodTree: extra.lodTree }); + if (isExtResult(data, this.extSplats)) { + const extArrays = data.extArrays; + const packedArray = extArrays[0]; + const extArray = extArrays[1]; + const shArrays = [ + data.extra.sh1, + data.extra.sh2, + data.extra.sh3a, + data.extra.sh3b + ]; + shArrays.length = shArrays.findIndex((sh) => !sh); + this.newUploads.push({ + page, + numSplats, + packedArray, + extArray, + shArrays + }); + } else { + const packedArray = data.packedArray; + const shArrays = [ + data.extra.sh1, + data.extra.sh2, + data.extra.sh3 + ]; + shArrays.length = shArrays.findIndex((sh) => !sh); + this.newUploads.push({ + page, + numSplats, + packedArray, + shArrays + }); + } } } - appendRaycastBuffer(count, additional) { - const total = count + additional.length; - let capacity = _SplatMesh.raycastBuffer.length; - if (total > capacity) { - while (capacity < total) { - capacity *= 2; + processUploads() { + while (true) { + const upload = this.readyUploads.shift(); + if (!upload) { + break; } - const newBuffer = new Float32Array(capacity); - newBuffer.set(_SplatMesh.raycastBuffer.subarray(0, count)); - _SplatMesh.raycastBuffer = newBuffer; + const { page, numSplats, packedArray, extArray, shArrays } = upload; + this.uploadPage(page, packedArray, shArrays, extArray); } - _SplatMesh.raycastBuffer.set(additional, count); - return count + additional.length; } - async createLodSplats({ - rgbaArray, - quality - } = {}) { - if (this.packedSplats) { - await this.packedSplats.createLodSplats({ quality, rgbaArray }); - } else if (this.extSplats) { - await this.extSplats.createLodSplats({ quality, rgbaArray }); - } + consumeLodTreeUpdates() { + const updates = this.lodTreeUpdates; + this.lodTreeUpdates = []; + this.readyUploads.push(...this.newUploads); + this.newUploads = []; + return updates; } }; -_SplatMesh.staticInitialized = _SplatMesh.staticInitialize(); -_SplatMesh.isStaticInitialized = false; -_SplatMesh.dynoTime = new DynoFloat({ value: 0 }); -_SplatMesh.raycastBuffer = new Float32Array(1024); -let SplatMesh = _SplatMesh; -function maybeLookupIndex(lodIndices, index, numSplats, enableLod, showLodPage) { - return dyno$1({ - inTypes: { - lodIndices: "usampler2D", - index: "int", - numSplats: "int", - enableLod: "bool", - showLodPage: "int" - }, - outTypes: { - index: "int" - }, - inputs: { - lodIndices, - index, - numSplats, - enableLod, - showLodPage - }, - statements: ({ inputs, outputs }) => unindentLines(` - int index = ${inputs.index}; - if (${inputs.showLodPage} < 0) { - if (index >= ${inputs.numSplats}) { - return; - } - if (${inputs.enableLod}) { - ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14); - uint splatIndex = texelFetch(${inputs.lodIndices}, lodIndexCoord, 0)[index & 3]; - ${outputs.index} = int(splatIndex); - } else { - ${outputs.index} = index; - } - } else { - int start = ${inputs.showLodPage} << 16; - if (index >= 65536) { - return; - } - ${outputs.index} = start + index; - } - `) - }).outputs.index; -} -function maybeInjectSplatRgba(gsplat, rgba, index, enableLod) { - return dyno$1({ - inTypes: { - gsplat: Gsplat, - rgba: TRgbaArray, - index: "int", - enableLod: "bool" - }, - outTypes: { gsplat: Gsplat }, - inputs: { gsplat, rgba, index, enableLod }, - statements: ({ inputs, outputs }) => unindentLines(` - ${outputs.gsplat} = ${inputs.gsplat}; - if (!${inputs.enableLod} && (${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) { - ${outputs.gsplat}.rgba = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0); - } - `) - }).outputs.gsplat; -} -const emptyLodIndices = (() => { - const texture2 = new THREE.DataTexture( - new Uint32Array(16384), - 4096, - 1, - THREE.RGBAIntegerFormat, - THREE.UnsignedIntType +_SplatPager.emptyUint32x4 = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 4); + const texture2 = new THREE.DataArrayTexture( + emptyArray, + width, + height, + depth ); + texture2.format = THREE.RGBAIntegerFormat; + texture2.type = THREE.UnsignedIntType; texture2.internalFormat = "RGBA32UI"; texture2.needsUpdate = true; return texture2; })(); -new THREE.BufferGeometry(); -new THREE.ShaderMaterial(); -const PLY_PROPERTY_TYPES = [ - "char", - "uchar", - "short", - "ushort", - "int", - "uint", - "float", - "double" +_SplatPager.emptyUint32x2 = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 2); + const texture2 = new THREE.DataArrayTexture( + emptyArray, + width, + height, + depth + ); + texture2.format = THREE.RGIntegerFormat; + texture2.type = THREE.UnsignedIntType; + texture2.internalFormat = "RG32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +_SplatPager.emptyIndicesTexture = (() => { + const emptyArray = new Uint32Array(4096 * 4); + const texture2 = new THREE.DataTexture(emptyArray, 4096, 1); + texture2.format = THREE.RGBAIntegerFormat; + texture2.type = THREE.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +_SplatPager.emptyPackedTexture = _SplatPager.emptyUint32x4; +_SplatPager.emptyExtTexture = _SplatPager.emptyUint32x4; +_SplatPager.emptyShTextures = [ + _SplatPager.emptyUint32x2, + _SplatPager.emptyUint32x4, + _SplatPager.emptyUint32x4 ]; -const _PlyReader = class _PlyReader { - // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet - constructor({ fileBytes }) { - this.header = ""; - this.littleEndian = true; - this.elements = {}; - this.comments = []; - this.data = null; - this.numSplats = 0; - this.fileBytes = fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes; +_SplatPager.emptyExtShTextures = [ + _SplatPager.emptyUint32x4, + _SplatPager.emptyUint32x4, + _SplatPager.emptyUint32x4, + // SH3A + _SplatPager.emptyUint32x4 + // SH3B +]; +let SplatPager = _SplatPager; +function isExtResult(data, extSplats) { + return extSplats; +} +function uploadTextureLayer(texture2, layer, dstOffset, data) { + const array = texture2.value.image.data; + array.subarray(dstOffset, dstOffset + data.length).set(data); + texture2.value.addLayerUpdate(layer); + texture2.value.needsUpdate = true; + texture2.value.source.dataReady = true; +} +async function fetchRange({ + url, + requestHeader, + withCredentials, + offset, + bytes +}) { + const request = new Request(url, { + headers: requestHeader ? new Headers(requestHeader) : void 0, + credentials: withCredentials ? "include" : "same-origin" + }); + if (offset !== void 0 && bytes !== void 0) { + request.headers.set("Range", `bytes=${offset}-${offset + bytes - 1}`); } - // Identify and parse the PLY text header (assumed to be <64KB in size). - // this.elements will contain all the elements in the file, typically - // "vertex" contains the Gsplat data. - async parseHeader() { - const bufferStream = new ReadableStream({ - start: (controller) => { - controller.enqueue(this.fileBytes.slice(0, 65536)); - controller.close(); - } + const response = await fetch(request); + if (!response.ok || !response.body) { + throw new Error( + `Failed to fetch "${url}": ${response.status} ${response.statusText}` + ); + } + return new Uint8Array(await response.arrayBuffer()); +} +class EmptySplatSource { + constructor() { + this.fetchDyno = new Dyno({ + inTypes: {}, + outTypes: { gsplat: Gsplat }, + globals: () => [defineGsplat], + statements: ({ outputs }) => unindentLines(` + ${outputs.gsplat}.flags = 0u; + return; + `) + }).outputs.gsplat; + } + prepareFetchSplat() { + } + dispose() { + } + getNumSplats() { + return 0; + } + hasRgbDir() { + return false; + } + getNumSh() { + return 0; + } + setMaxSh(maxSh) { + } + fetchSplat({ index }) { + return this.fetchDyno; + } + forEachSplat() { + } +} +const _SplatMesh = class _SplatMesh extends SplatGenerator { + constructor(options = {}) { + super({ + update: (context) => this.update(context) }); - const decoder = bufferStream.pipeThrough(new TextDecoderStream()).getReader(); - this.header = ""; - const headerTerminator = "end_header\n"; - while (true) { - const { value, done } = await decoder.read(); - if (done) { - throw new Error("Failed to read header"); + this.isInitialized = false; + this.recolor = new THREE.Color(1, 1, 1); + this.opacity = 1; + this.generatorDirty = true; + this.enableViewToObject = false; + this.enableViewToWorld = false; + this.enableWorldToView = false; + this.skinning = null; + this.edits = null; + this.rgbaDisplaceEdits = null; + this.splatRgba = null; + this.maxSh = 3; + this.showLodPageDyno = new DynoInt({ value: 0 }); + if (options.splats) { + this.splats = options.splats; + this.numSplats = options.splats.getNumSplats(); + } else if (options.paged) { + if (options.extSplats) { + console.warn( + "To set extSplats with the paged option, set SparkRenderer.pagedExtSplats" + ); } - this.header += value; - const endHeader = this.header.indexOf(headerTerminator); - if (endHeader >= 0) { - this.header = this.header.slice(0, endHeader + headerTerminator.length); - break; + const rootUrl = options.url ?? ""; + if (options.paged === true) { + this.paged = new PagedSplats({ rootUrl }); + } else if (options.paged instanceof PagedSplats) { + this.paged = options.paged; + } else if (options.paged instanceof SplatPager) { + this.paged = new PagedSplats({ rootUrl, pager: options.paged }); + } else { + throw new Error("Invalid paged option"); } + this.splats = this.paged; + } else if (options.extSplats) { + this.extSplats = options.extSplats instanceof ExtSplats ? options.extSplats : new ExtSplats(); + options.extSplats = this.extSplats; + this.numSplats = this.extSplats.numSplats; + this.splats = this.extSplats; + } else if (options.packedSplats) { + this.packedSplats = options.packedSplats; + this.packedSplats.splatEncoding = options.splatEncoding ?? { + ...DEFAULT_SPLAT_ENCODING + }; + this.splats = this.packedSplats; + } else { + this.packedSplats = new PackedSplats(); + } + this.editable = options.editable ?? true; + this.raycastable = options.raycastable ?? true; + this.minRaycastOpacity = options.minRaycastOpacity ?? 0.2; + this.onFrame = options.onFrame; + this.context = { + transform: new SplatTransformer(), + viewToWorld: new SplatTransformer(), + worldToView: new SplatTransformer(), + viewToObject: new SplatTransformer(), + covTransform: new CovSplatTransformer(), + covViewToWorld: new CovSplatTransformer(), + covWorldToView: new CovSplatTransformer(), + covViewToObject: new CovSplatTransformer(), + recolor: new DynoVec4({ + value: new THREE.Vector4().setScalar(Number.NEGATIVE_INFINITY) + }), + time: new DynoFloat({ value: 0 }), + deltaTime: new DynoFloat({ value: 0 }), + numSplats: new DynoInt({ value: 0 }), + splats: new EmptySplatSource(), + enableLod: new DynoBool({ value: false }), + lodIndices: new DynoUsampler2D({ + value: emptyLodIndices, + key: "lodIndices" + }) + }; + this.covSplats = options.covSplats ?? false; + if (this.covSplats && !this.extSplats) { + throw new Error("CovSplats requires ExtSplats"); } - const headerLen = new TextEncoder().encode(this.header).length; - this.data = new DataView(this.fileBytes.buffer, headerLen); - this.elements = {}; - let curElement = null; - this.comments = []; - this.header.trim().split("\n").forEach((line, lineIndex) => { - const trimmedLine = line.trim(); - if (lineIndex === 0) { - if (trimmedLine !== "ply") { - throw new Error("Invalid PLY header"); - } - return; - } - if (trimmedLine.length === 0) { - return; - } - const fields = trimmedLine.split(" "); - switch (fields[0]) { - case "format": - if (fields[1] === "binary_little_endian") { - this.littleEndian = true; - } else if (fields[1] === "binary_big_endian") { - this.littleEndian = false; - } else { - throw new Error(`Unsupported PLY format: ${fields[1]}`); - } - if (fields[2] !== "1.0") { - throw new Error(`Unsupported PLY version: ${fields[2]}`); + this.objectModifiers = options.objectModifier ? [options.objectModifier] : void 0; + this.worldModifiers = options.worldModifier ? [options.worldModifier] : void 0; + if (options.objectModifiers) { + this.objectModifiers = options.objectModifiers; + } + if (options.worldModifiers) { + this.worldModifiers = options.worldModifiers; + } + this.enableLod = options.enableLod; + this.lodScale = options.lodScale ?? 1; + this.behindFoveate = options.behindFoveate; + this.coneFov0 = options.coneFov0; + this.coneFov = options.coneFov; + this.coneFoveate = options.coneFoveate; + this.updateGenerator(); + if (options.url || options.fileBytes || options.stream || options.constructSplats || options.packedSplats && !options.packedSplats.isInitialized || this.extSplats && !this.extSplats.isInitialized) { + this.initialized = this.asyncInitialize(options).then(async () => { + this.updateGenerator(); + this.isInitialized = true; + if (options.onLoad) { + const maybePromise = options.onLoad(this); + if (maybePromise instanceof Promise) { + await maybePromise; } - break; - case "end_header": - break; - case "comment": - this.comments.push(trimmedLine.slice("comment ".length)); - break; - case "element": { - const name = fields[1]; - curElement = { - name, - count: Number.parseInt(fields[2]), - properties: {} - }; - this.elements[name] = curElement; - break; } - case "property": - if (curElement == null) { - throw new Error("Property must be inside an element"); - } - if (fields[1] === "list") { - curElement.properties[fields[4]] = { - isList: true, - type: fields[3], - countType: fields[2] - }; - } else { - curElement.properties[fields[2]] = { - isList: false, - type: fields[1] - }; - } - break; + return this; + }); + } else { + this.isInitialized = true; + this.initialized = Promise.resolve(this); + if (options.onLoad) { + const maybePromise = options.onLoad(this); + if (maybePromise instanceof Promise) { + this.initialized = maybePromise.then(() => this); + } } - }); - if (this.elements.vertex) { - this.numSplats = this.elements.vertex.count; } } - parseData(elementCallback) { - let offset = 0; - const data = this.data; - if (data == null) { - throw new Error("No data to parse"); - } - for (const elementName in this.elements) { - const element = this.elements[elementName]; - const { count, properties } = element; - const item = createEmptyItem(properties); - const parseFn = createParseFn(properties, this.littleEndian); - const callback = elementCallback(element) ?? (() => { - }); - for (let index = 0; index < count; index++) { - offset = parseFn(data, offset, item); - callback(index, item); + async asyncInitialize(options) { + const { + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + maxSplats, + constructSplats, + onProgress, + splatEncoding, + lod, + nonLod, + lodAbove + } = options; + if (this.packedSplats) { + if (url || fileBytes || stream || constructSplats) { + const packedSplatsOptions = { + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + maxSplats, + construct: constructSplats, + onProgress, + splatEncoding, + lod, + nonLod, + lodAbove + }; + this.packedSplats.reinitialize(packedSplatsOptions); + } + await this.packedSplats.initialized; + this.splats = this.packedSplats; + } else if (this.extSplats) { + if (url || fileBytes || stream || constructSplats) { + const construct = constructSplats; + this.extSplats.reinitialize({ + url, + fileBytes, + fileType, + fileName, + stream, + streamLength, + maxSplats, + construct, + onProgress, + lod, + nonLod, + lodAbove + }); + await this.extSplats.initialized; + this.splats = this.extSplats; } } + if (this.splats) { + this.numSplats = this.splats.getNumSplats(); + this.updateGenerator(); + } } - // Parse all the Gsplat data in the PLY file in go, invoking the given - // callbacks for each Gsplat. - parseSplats(splatCallback, shCallback) { - if (this.elements.vertex == null) { - throw new Error("No vertex element found"); + // Creates a new Gsplat with the provided parameters (all values in "float" space, + // i.e. 0-1 for opacity and color) and adds it to the end of the packedSplats, + // increasing numSplats by 1. If necessary, reallocates the buffer with an exponential + // doubling strategy to fit the new data, so it's fairly efficient to just + // pushSplat(...) each Gsplat you want to create in a loop. + pushSplat(center, scales, quaternion, opacity, color) { + if (this.packedSplats) { + this.packedSplats.pushSplat(center, scales, quaternion, opacity, color); + } else if (this.extSplats) { + this.extSplats.pushSplat(center, scales, quaternion, opacity, color); } - let isSuperSplat = false; - const ssChunks = []; - let numSh = 0; - let sh1Props = []; - let sh2Props = []; - let sh3Props = []; - let sh1 = void 0; - let sh2 = void 0; - let sh3 = void 0; - function prepareSh() { - const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh]; - sh1Props = new Array(3).fill(null).flatMap((_, k) => [0, 1, 2].map((_2, d) => k + d * num_f_rest / 3)); - sh2Props = new Array(5).fill(null).flatMap( - (_, k) => [0, 1, 2].map((_2, d) => 3 + k + d * num_f_rest / 3) - ); - sh3Props = new Array(7).fill(null).flatMap( - (_, k) => [0, 1, 2].map((_2, d) => 8 + k + d * num_f_rest / 3) + } + // This method iterates over all Gsplats in this instance's packedSplats, + // invoking the provided callback with index: number in 0..=(this.numSplats-1) and + // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, + // opacity: number (0..1), and color: THREE.Color (rgb values in 0..1). + // Note that the objects passed in as center etc. are the same for every callback + // invocation: these objects are reused for efficiency. Changing these values has + // no effect as they are decoded/unpacked copies of the underlying data. To update + // the packedSplats, call .packedSplats.setSplat(index, center, scales, + // quaternion, opacity, color). + forEachSplat(callback) { + var _a2; + (_a2 = this.splats) == null ? void 0 : _a2.forEachSplat(callback); + } + // Call this when you are finished with the SplatMesh and want to free + // any buffers it holds (via packedSplats). + dispose() { + if (this.splats && this.splats !== this.packedSplats && this.splats !== this.extSplats) { + this.splats.dispose(); + this.splats = void 0; + } + if (this.packedSplats) { + this.packedSplats.dispose(); + this.packedSplats = void 0; + } + if (this.extSplats) { + this.extSplats.dispose(); + this.extSplats = void 0; + } + } + // Returns axis-aligned bounding box of the SplatMesh. If centers_only is true, + // only the centers of the splats are used to compute the bounding box. + // IMPORTANT: This should only be called after the SplatMesh is initialized. + getBoundingBox(centers_only = true) { + var _a2; + if (!this.initialized) { + throw new Error( + "Cannot get bounding box before SplatMesh is initialized" ); - sh1 = numSh >= 1 ? new Float32Array(3 * 3) : void 0; - sh2 = numSh >= 2 ? new Float32Array(5 * 3) : void 0; - sh3 = numSh >= 3 ? new Float32Array(7 * 3) : void 0; } - function ssShCallback(index, item) { - if (!sh1) { - throw new Error("Missing sh1"); - } - const sh = item.f_rest; - for (let i = 0; i < sh1Props.length; i++) { - sh1[i] = sh[sh1Props[i]] * 8 / 255 - 4; - } - if (sh2) { - for (let i = 0; i < sh2Props.length; i++) { - sh2[i] = sh[sh2Props[i]] * 8 / 255 - 4; - } - } - if (sh3) { - for (let i = 0; i < sh3Props.length; i++) { - sh3[i] = sh[sh3Props[i]] * 8 / 255 - 4; + const minVec = new THREE.Vector3( + Number.POSITIVE_INFINITY, + Number.POSITIVE_INFINITY, + Number.POSITIVE_INFINITY + ); + const maxVec = new THREE.Vector3( + Number.NEGATIVE_INFINITY, + Number.NEGATIVE_INFINITY, + Number.NEGATIVE_INFINITY + ); + const corners = new THREE.Vector3(); + const signs = [-1, 1]; + function callback(_index, center, scales, quaternion, _opacity, _color) { + if (centers_only) { + minVec.min(center); + maxVec.max(center); + } else { + for (const x of signs) { + for (const y of signs) { + for (const z of signs) { + corners.set(x * scales.x, y * scales.y, z * scales.z); + corners.applyQuaternion(quaternion); + corners.add(center); + minVec.min(corners); + maxVec.max(corners); + } + } } } - shCallback == null ? void 0 : shCallback(index, sh1, sh2, sh3); } - function initSuperSplat(element) { - const { - min_x, - min_y, - min_z, - max_x, - max_y, - max_z, - min_scale_x, - min_scale_y, - min_scale_z, - max_scale_x, - max_scale_y, - max_scale_z - } = element.properties; - if (!min_x || !min_y || !min_z || !max_x || !max_y || !max_z || !min_scale_x || !min_scale_y || !min_scale_z || !max_scale_x || !max_scale_y || !max_scale_z) { - throw new Error("Missing PLY chunk properties"); - } - isSuperSplat = true; - return (index, item) => { - const { - min_x: min_x2, - min_y: min_y2, - min_z: min_z2, - max_x: max_x2, - max_y: max_y2, - max_z: max_z2, - min_scale_x: min_scale_x2, - min_scale_y: min_scale_y2, - min_scale_z: min_scale_z2, - max_scale_x: max_scale_x2, - max_scale_y: max_scale_y2, - max_scale_z: max_scale_z2, - min_r, - min_g, - min_b, - max_r, - max_g, - max_b - } = item; - ssChunks.push({ - min_x: min_x2, - min_y: min_y2, - min_z: min_z2, - max_x: max_x2, - max_y: max_y2, - max_z: max_z2, - min_scale_x: min_scale_x2, - min_scale_y: min_scale_y2, - min_scale_z: min_scale_z2, - max_scale_x: max_scale_x2, - max_scale_y: max_scale_y2, - max_scale_z: max_scale_z2, - min_r, - min_g, - min_b, - max_r, - max_g, - max_b - }); - }; + (_a2 = this.splats) == null ? void 0 : _a2.forEachSplat(callback); + const box = new THREE.Box3(minVec, maxVec); + return box; + } + set objectModifier(modifier) { + if (modifier) { + this.objectModifiers = [modifier]; + } else { + this.objectModifiers = void 0; } - function decodeSuperSplat(element) { - if (shCallback && element.name === "sh") { - numSh = getNumSh(element.properties); - prepareSh(); - return ssShCallback; - } - if (element.name !== "vertex") { - return null; - } - const { packed_position, packed_rotation, packed_scale, packed_color } = element.properties; - if (!packed_position || !packed_rotation || !packed_scale || !packed_color) { - throw new Error( - "Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color" - ); - } - const SQRT2 = Math.sqrt(2); - return (index, item) => { - const chunk = ssChunks[index >>> 8]; - if (chunk == null) { - throw new Error("Missing PLY chunk"); - } - const { - min_x, - min_y, - min_z, - max_x, - max_y, - max_z, - min_scale_x, - min_scale_y, - min_scale_z, - max_scale_x, - max_scale_y, - max_scale_z, - min_r, - min_g, - min_b, - max_r, - max_g, - max_b - } = chunk; - const { packed_position: packed_position2, packed_rotation: packed_rotation2, packed_scale: packed_scale2, packed_color: packed_color2 } = item; - const x = (packed_position2 >>> 21 & 2047) / 2047 * (max_x - min_x) + min_x; - const y = (packed_position2 >>> 11 & 1023) / 1023 * (max_y - min_y) + min_y; - const z = (packed_position2 & 2047) / 2047 * (max_z - min_z) + min_z; - const r0 = ((packed_rotation2 >>> 20 & 1023) / 1023 - 0.5) * SQRT2; - const r1 = ((packed_rotation2 >>> 10 & 1023) / 1023 - 0.5) * SQRT2; - const r2 = ((packed_rotation2 & 1023) / 1023 - 0.5) * SQRT2; - const rr = Math.sqrt(Math.max(0, 1 - r0 * r0 - r1 * r1 - r2 * r2)); - const rOrder = packed_rotation2 >>> 30; - const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1; - const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2; - const quatZ = rOrder <= 2 ? r2 : rr; - const quatW = rOrder === 0 ? rr : r0; - const scaleX = Math.exp( - (packed_scale2 >>> 21 & 2047) / 2047 * (max_scale_x - min_scale_x) + min_scale_x - ); - const scaleY = Math.exp( - (packed_scale2 >>> 11 & 1023) / 1023 * (max_scale_y - min_scale_y) + min_scale_y - ); - const scaleZ = Math.exp( - (packed_scale2 & 2047) / 2047 * (max_scale_z - min_scale_z) + min_scale_z - ); - const r = (packed_color2 >>> 24 & 255) / 255 * ((max_r ?? 1) - (min_r ?? 0)) + (min_r ?? 0); - const g = (packed_color2 >>> 16 & 255) / 255 * ((max_g ?? 1) - (min_g ?? 0)) + (min_g ?? 0); - const b = (packed_color2 >>> 8 & 255) / 255 * ((max_b ?? 1) - (min_b ?? 0)) + (min_b ?? 0); - const opacity = (packed_color2 & 255) / 255; - splatCallback( - index, - x, - y, - z, - scaleX, - scaleY, - scaleZ, - quatX, - quatY, - quatZ, - quatW, - opacity, - r, - g, - b - ); - }; + } + set worldModifier(modifier) { + if (modifier) { + this.worldModifiers = [modifier]; + } else { + this.worldModifiers = void 0; } - const elementCallback = (element) => { - if (element.name === "chunk") { - return initSuperSplat(element); - } - if (isSuperSplat) { - return decodeSuperSplat(element); - } - if (element.name !== "vertex") { - return null; - } - const { - x, - y, - z, - scale_0, - scale_1, - scale_2, - rot_0, - rot_1, - rot_2, - rot_3, - opacity, - f_dc_0, - f_dc_1, - f_dc_2, - red, - green, - blue, - alpha - } = element.properties; - if (!x || !y || !z) { - throw new Error("Missing PLY properties: x, y, z"); + } + constructGenerator(context) { + if (this.covSplats) { + return this.constructCovGenerator(context); + } + const { transform, viewToObject, recolor } = context; + const generator = dynoBlock( + { index: "int" }, + { gsplat: Gsplat }, + ({ index }) => { + if (!index) { + throw new Error("index is undefined"); + } + index = maybeLookupIndex( + context.lodIndices, + index, + context.numSplats, + context.enableLod, + this.showLodPageDyno + ); + context.splats.setMaxSh(this.maxSh); + context.splats.prepareFetchSplat(); + let gsplat = context.splats.fetchSplat({ + index, + viewOrigin: viewToObject.translate + }); + if (this.splatRgba) { + gsplat = maybeInjectSplatRgba( + gsplat, + this.splatRgba.dyno, + index, + context.enableLod + ); + } + if (this.skinning) { + gsplat = this.skinning.modify(gsplat); + } + if (this.objectModifiers) { + for (const modifier of this.objectModifiers) { + gsplat = modifier.apply({ gsplat }).gsplat; + } + } + gsplat = transform.applyGsplat(gsplat); + const recolorRgba = mul(recolor, splitGsplat(gsplat).outputs.rgba); + gsplat = combineGsplat({ gsplat, rgba: recolorRgba }); + if (this.rgbaDisplaceEdits) { + gsplat = this.rgbaDisplaceEdits.modify(gsplat); + } + if (this.worldModifiers) { + for (const modifier of this.worldModifiers) { + gsplat = modifier.apply({ gsplat }).gsplat; + } + } + return { gsplat }; } - const hasScales = scale_0 && scale_1 && scale_2; - const hasRots = rot_0 && rot_1 && rot_2 && rot_3; - const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1; - const redDiv = red != null ? FIELD_SCALE[red.type] : 1; - const greenDiv = green != null ? FIELD_SCALE[green.type] : 1; - const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1; - numSh = getNumSh(element.properties); - prepareSh(); - return (index, item) => { - const scaleX = hasScales ? Math.exp(item.scale_0) : _PlyReader.defaultPointScale; - const scaleY = hasScales ? Math.exp(item.scale_1) : _PlyReader.defaultPointScale; - const scaleZ = hasScales ? Math.exp(item.scale_2) : _PlyReader.defaultPointScale; - const quatX = hasRots ? item.rot_1 : 0; - const quatY = hasRots ? item.rot_2 : 0; - const quatZ = hasRots ? item.rot_3 : 0; - const quatW = hasRots ? item.rot_0 : 1; - const op = opacity != null ? 1 / (1 + Math.exp(-item.opacity)) : alpha != null ? item.alpha / alphaDiv : 1; - const r = f_dc_0 != null ? item.f_dc_0 * SH_C0$1 + 0.5 : red != null ? item.red / redDiv : 1; - const g = f_dc_1 != null ? item.f_dc_1 * SH_C0$1 + 0.5 : green != null ? item.green / greenDiv : 1; - const b = f_dc_2 != null ? item.f_dc_2 * SH_C0$1 + 0.5 : blue != null ? item.blue / blueDiv : 1; - splatCallback( + ); + this.generator = generator; + this.covGenerator = void 0; + } + constructCovGenerator(context) { + const { covTransform, covViewToObject, recolor } = context; + const generator = dynoBlock( + { index: "int" }, + { covsplat: CovSplat }, + ({ index }) => { + if (!index) { + throw new Error("index is undefined"); + } + index = maybeLookupIndex( + context.lodIndices, index, - item.x, - item.y, - item.z, - scaleX, - scaleY, - scaleZ, - quatX, - quatY, - quatZ, - quatW, - op, - r, - g, - b + context.numSplats, + context.enableLod, + this.showLodPageDyno ); - if (shCallback && sh1) { - const sh = item.f_rest; - if (sh1) { - for (let i = 0; i < sh1Props.length; i++) { - sh1[i] = sh[sh1Props[i]]; - } + context.splats.prepareFetchSplat(); + let gsplat = context.splats.fetchSplat({ + index, + viewOrigin: covViewToObject.offset + }); + if (this.splatRgba) { + gsplat = maybeInjectSplatRgba( + gsplat, + this.splatRgba.dyno, + index, + context.enableLod + ); + } + if (this.objectModifiers) { + for (const modifier of this.objectModifiers) { + gsplat = modifier.apply({ gsplat }).gsplat; } - if (sh2) { - for (let i = 0; i < sh2Props.length; i++) { - sh2[i] = sh[sh2Props[i]]; - } + } + let covsplat = gsplatToCovSplat(gsplat); + if (this.skinning) { + covsplat = this.skinning.modifyCov(covsplat); + } + if (this.covObjectModifiers) { + for (const modifier of this.covObjectModifiers) { + covsplat = modifier.apply({ covsplat }).covsplat; } - if (sh3) { - for (let i = 0; i < sh3Props.length; i++) { - sh3[i] = sh[sh3Props[i]]; - } + } + covsplat = covTransform.applyCovSplat(covsplat); + const recolorRgba = mul(recolor, splitCovSplat(covsplat).outputs.rgba); + covsplat = combineCovSplat({ covsplat, rgba: recolorRgba }); + if (this.rgbaDisplaceEdits) { + covsplat = this.rgbaDisplaceEdits.modifyCov(covsplat); + } + if (this.covWorldModifiers) { + for (const modifier of this.covWorldModifiers) { + covsplat = modifier.apply({ covsplat }).covsplat; } - shCallback(index, sh1, sh2, sh3); } - }; - }; - this.parseData(elementCallback); + return { covsplat }; + } + ); + this.generator = void 0; + this.covGenerator = generator; } - // Inject RGBA values into original PLY file, which can be used to modify - // the color/opacity of the Gsplats and write out the modified PLY file. - injectRgba(rgba) { - let offset = 0; - const data = this.data; - if (data == null) { - throw new Error("No parsed data"); + // Call this whenever something changes in the Gsplat processing pipeline, + // for example changing maxSh or updating objectModifier or worldModifier. + // Compiled generators are cached for efficiency and re-use when the same + // pipeline structure emerges after successive changes. + updateGenerator() { + this.generatorDirty = true; + } + // This is called automatically by SparkRenderer and you should not have to + // call it. It updates parameters for the generated pipeline and calls + // updateGenerator() if the pipeline needs to change. + update({ + renderer, + time, + deltaTime, + viewToWorld, + camera, + renderSize, + globalEdits, + lodIndices + }) { + var _a2, _b2, _c; + this.context.time.value = time; + this.context.deltaTime.value = deltaTime; + _SplatMesh.dynoTime.value = time; + this.showLodPageDyno.value = this.showLodPage ?? -1; + const splats = this.splats ?? this.packedSplats ?? this.extSplats; + if (splats) { + this.context.splats = splats; } - if (rgba.length !== this.numSplats * 4) { - throw new Error("Invalid RGBA array length"); + this.numSplats = this.context.splats.getNumSplats(); + let updated = false; + const lodSplats = ((_a2 = this.packedSplats) == null ? void 0 : _a2.lodSplats) ?? ((_b2 = this.extSplats) == null ? void 0 : _b2.lodSplats); + this.context.enableLod.value = lodSplats != null && lodIndices != null; + if (this.enableLod === false) { + this.context.enableLod.value = false; } - for (const elementName in this.elements) { - const element = this.elements[elementName]; - const { count, properties } = element; - const parsers = []; - let rgbaOffset = 0; - const isVertex = elementName === "vertex"; - if (isVertex) { - for (const name of ["opacity", "f_dc_0", "f_dc_1", "f_dc_2"]) { - if (!properties[name] || properties[name].type !== "float") { - throw new Error(`Can't injectRgba due to property: ${name}`); - } - } + this.context.lodIndices.value = (lodIndices == null ? void 0 : lodIndices.texture) ?? emptyLodIndices; + if (this.context.enableLod.value && lodSplats) { + this.context.splats = lodSplats; + this.numSplats = (lodIndices == null ? void 0 : lodIndices.numSplats) ?? 0; + } + this.context.numSplats.value = this.numSplats; + if (this.context.splats !== this.lastSplats) { + this.lastSplats = this.context.splats; + this.generatorDirty = true; + } + if (!this.covSplats) { + if (this.context.transform.update(this)) { + updated = true; + } + if (this.context.viewToWorld.updateFromMatrix(viewToWorld) && this.enableViewToWorld) { + updated = true; + } + const worldToView = viewToWorld.clone().invert(); + if (this.context.worldToView.updateFromMatrix(worldToView) && this.enableWorldToView) { + updated = true; + } + const objectToWorld = new THREE.Matrix4().compose( + this.context.transform.translate.value, + this.context.transform.rotate.value, + new THREE.Vector3().setScalar(this.context.transform.scale.value) + ); + const worldToObject = objectToWorld.invert(); + const viewToObjectMatrix = worldToObject.multiply(viewToWorld); + if (this.context.viewToObject.updateFromMatrix(viewToObjectMatrix) && (this.enableViewToObject || this.context.splats.hasRgbDir())) { + updated = true; + } + } else { + if (this.context.covTransform.update(this)) { + updated = true; + } + if (this.context.covViewToWorld.updateFromMatrix(viewToWorld) && this.enableViewToWorld) { + updated = true; + } + const worldToView = viewToWorld.clone().invert(); + if (this.context.covWorldToView.updateFromMatrix(worldToView) && this.enableWorldToView) { + updated = true; } - for (const [propertyName, property] of Object.entries(properties)) { - if (!property.isList) { - if (isVertex) { - if (propertyName === "f_dc_0" || propertyName === "f_dc_1" || propertyName === "f_dc_2") { - const component = Number.parseInt( - propertyName.slice("f_dc_".length) - ); - parsers.push(() => { - const value = (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0$1; - SET_FIELD[property.type]( - data, - offset, - this.littleEndian, - value - ); - }); - } else if (propertyName === "opacity") { - parsers.push(() => { - const value = Math.max( - -100, - Math.min( - 100, - -Math.log(1 / (rgba[rgbaOffset + 3] / 255) - 1) - ) - ); - SET_FIELD[property.type]( - data, - offset, - this.littleEndian, - value - ); - }); - } - } - parsers.push(() => { - offset += FIELD_BYTES[property.type]; - }); - } else { - parsers.push(() => { - const length2 = PARSE_FIELD[property.countType]( - data, - offset, - this.littleEndian - ); - offset += FIELD_BYTES[property.countType]; - offset += length2 * FIELD_BYTES[property.type]; - }); - } + const worldToObject = this.matrixWorld.clone().invert(); + const viewToObjectMatrix = worldToObject.multiply(viewToWorld); + if (this.context.covViewToObject.updateFromMatrix(viewToObjectMatrix) && (this.enableViewToObject || this.context.splats.hasRgbDir())) { + updated = true; } - for (let index = 0; index < count; index++) { - for (const parser of parsers) { - parser(); + } + const newRecolor = new THREE.Vector4( + this.recolor.r, + this.recolor.g, + this.recolor.b, + this.opacity + ); + if (!newRecolor.equals(this.context.recolor.value)) { + this.context.recolor.value.copy(newRecolor); + updated = true; + } + const edits = this.editable ? (this.edits ?? []).concat(globalEdits) : []; + if (this.editable && !this.edits) { + this.traverseVisible((node) => { + if (node instanceof SplatEdit) { + edits.push(node); } - if (isVertex) { - rgbaOffset += 4; + }); + } + edits.sort((a, b) => a.ordering - b.ordering); + const editsSdfs = edits.map((edit) => { + if (edit.sdfs != null) { + return { edit, sdfs: edit.sdfs }; + } + const sdfs = []; + edit.traverseVisible((node) => { + if (node instanceof SplatEditSdf) { + sdfs.push(node); } + }); + return { edit, sdfs }; + }); + if (editsSdfs.length > 0 && !this.rgbaDisplaceEdits) { + const edits2 = editsSdfs.length; + const sdfs = editsSdfs.reduce( + (total, edit) => total + edit.sdfs.length, + 0 + ); + this.rgbaDisplaceEdits = new SplatEdits({ + maxEdits: edits2, + maxSdfs: sdfs + }); + this.generatorDirty = true; + } + if (this.rgbaDisplaceEdits) { + const editResult = this.rgbaDisplaceEdits.update(editsSdfs); + updated || (updated = editResult.updated); + if (editResult.dynoUpdated) { + this.generatorDirty = true; } } + if (this.generatorDirty) { + this.constructGenerator(this.context); + this.generatorDirty = false; + updated = true; + } + if (updated) { + this.updateVersion(); + } + (_c = this.onFrame) == null ? void 0 : _c.call(this, { mesh: this, time, deltaTime }); } -}; -_PlyReader.defaultPointScale = 1e-3; -let PlyReader = _PlyReader; -const SH_C0$1 = 0.28209479177387814; -const PARSE_FIELD = { - char: (data, offset, littleEndian) => { - return data.getInt8(offset); - }, - uchar: (data, offset, littleEndian) => { - return data.getUint8(offset); - }, - short: (data, offset, littleEndian) => { - return data.getInt16(offset, littleEndian); - }, - ushort: (data, offset, littleEndian) => { - return data.getUint16(offset, littleEndian); - }, - int: (data, offset, littleEndian) => { - return data.getInt32(offset, littleEndian); - }, - uint: (data, offset, littleEndian) => { - return data.getUint32(offset, littleEndian); - }, - float: (data, offset, littleEndian) => { - return data.getFloat32(offset, littleEndian); - }, - double: (data, offset, littleEndian) => { - return data.getFloat64(offset, littleEndian); - } -}; -const SET_FIELD = { - char: (data, offset, littleEndian, value) => { - data.setInt8(offset, value); - }, - uchar: (data, offset, littleEndian, value) => { - data.setUint8(offset, value); - }, - short: (data, offset, littleEndian, value) => { - data.setInt16(offset, value, littleEndian); - }, - ushort: (data, offset, littleEndian, value) => { - data.setUint16(offset, value, littleEndian); - }, - int: (data, offset, littleEndian, value) => { - data.setInt32(offset, value, littleEndian); - }, - uint: (data, offset, littleEndian, value) => { - data.setUint32(offset, value, littleEndian); - }, - float: (data, offset, littleEndian, value) => { - data.setFloat32(offset, value, littleEndian); - }, - double: (data, offset, littleEndian, value) => { - data.setFloat64(offset, value, littleEndian); - } -}; -const FIELD_BYTES = { - char: 1, - uchar: 1, - short: 2, - ushort: 2, - int: 4, - uint: 4, - float: 4, - double: 8 -}; -const FIELD_SCALE = { - char: 127, - uchar: 255, - short: 32767, - ushort: 65535, - int: 2147483647, - uint: 4294967295, - float: 1, - double: 1 -}; -const NUM_F_REST_TO_NUM_SH = { - 0: 0, - 9: 1, - 24: 2, - 45: 3 -}; -const NUM_SH_TO_NUM_F_REST = { - 0: 0, - 1: 9, - 2: 24, - 3: 45 -}; -const F_REST_REGEX = /^f_rest_([0-9]{1,2})$/; -function createEmptyItem(properties) { - const item = {}; - for (const [propertyName, property] of Object.entries(properties)) { - if (F_REST_REGEX.test(propertyName)) { - item.f_rest = new Array(getNumSh(properties)); + // This method conforms to the standard THREE.Raycaster API, performing object-ray + // intersections using this method to populate the provided intersects[] array + // with each intersection point. + raycast(raycaster, intersects) { + var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w; + if (!isInitialized() || !this.raycastable || !this.packedSplats && !this.extSplats && !this.paged) { + return; + } + const paged = this.paged != null; + const ext = paged ? ((_b2 = (_a2 = this.paged) == null ? void 0 : _a2.pager) == null ? void 0 : _b2.extSplats) ?? false : this.extSplats != null; + const { near, far, ray } = raycaster; + const worldToMesh = this.matrixWorld.clone().invert(); + const worldToMeshRot = new THREE.Matrix3().setFromMatrix4(worldToMesh); + const origin = ray.origin.clone().applyMatrix4(worldToMesh); + const direction = ray.direction.clone().applyMatrix3(worldToMeshRot); + const buffer = get_raycast_buffer(); + const bufferSize = buffer.length / 4; + let intersections = 0; + const numSplats = ((_c = this.raycastIndices) == null ? void 0 : _c.numSplats) ?? (paged ? (_d = this.paged) == null ? void 0 : _d.numSplats : this.context.numSplats.value) ?? 0; + const indices = ((_e = this.raycastIndices) == null ? void 0 : _e.indices) ?? (paged ? (_f = this.paged) == null ? void 0 : _f.dynoIndices.value.image.data : this.context.enableLod.value ? this.context.lodIndices.value.image.data : null) ?? null; + if (!ext) { + const packed = paged ? (_h = (_g = this.paged) == null ? void 0 : _g.pager) == null ? void 0 : _h.packedTexture.value.image.data : indices ? (_j = (_i = this.packedSplats) == null ? void 0 : _i.lodSplats) == null ? void 0 : _j.packedArray : (_k = this.packedSplats) == null ? void 0 : _k.packedArray; + if (!packed) { + return; + } + const splatEncoding = paged ? (_l = this.paged) == null ? void 0 : _l.splatEncoding : (_m = this.packedSplats) == null ? void 0 : _m.splatEncoding; + for (let base = 0; base < numSplats; base += bufferSize) { + const count = Math.min(bufferSize, numSplats - base); + if (!indices) { + buffer.set(packed.subarray(base * 4, (base + count) * 4)); + } else { + for (let i = 0; i < count; ++i) { + const index = indices[base + i]; + const i4 = i * 4; + const index4 = index * 4; + buffer[i4] = packed[index4]; + buffer[i4 + 1] = packed[index4 + 1]; + buffer[i4 + 2] = packed[index4 + 2]; + buffer[i4 + 3] = packed[index4 + 3]; + } + } + const newIntersections = raycast_packed_buffer( + origin.x, + origin.y, + origin.z, + direction.x, + direction.y, + direction.z, + this.minRaycastOpacity, + near, + far, + count, + (splatEncoding == null ? void 0 : splatEncoding.lnScaleMin) ?? LN_SCALE_MIN, + (splatEncoding == null ? void 0 : splatEncoding.lnScaleMax) ?? LN_SCALE_MAX, + (splatEncoding == null ? void 0 : splatEncoding.lodOpacity) ?? false + ); + intersections = this.appendRaycastBuffer( + intersections, + newIntersections + ); + } } else { - item[propertyName] = property.isList ? [] : 0; - } - } - return item; -} -function createParseFn(properties, littleEndian) { - if (safeToCompile(properties)) { - return createCompiledParserFn(properties, littleEndian); - } - return createDynamicParserFn(properties, littleEndian); -} -const UNSAFE_EVAL_ALLOWED = (() => { - try { - new Function("return 42;"); - } catch (e) { - return false; - } - return true; -})(); -const PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/; -function safeToCompile(properties) { - if (!UNSAFE_EVAL_ALLOWED) { - return false; - } - for (const [propertyName, property] of Object.entries(properties)) { - if (!PROPERTY_NAME_REGEX.test(propertyName)) { - return false; + const buffer2 = get_raycast_buffer2(); + const ext1 = paged ? (_o = (_n = this.paged) == null ? void 0 : _n.pager) == null ? void 0 : _o.packedTexture.value.image.data : indices ? (_q = (_p = this.extSplats) == null ? void 0 : _p.lodSplats) == null ? void 0 : _q.extArrays[0] : (_r = this.extSplats) == null ? void 0 : _r.extArrays[0]; + const ext2 = paged ? (_t = (_s = this.paged) == null ? void 0 : _s.pager) == null ? void 0 : _t.extTexture.value.image.data : indices ? (_v = (_u = this.extSplats) == null ? void 0 : _u.lodSplats) == null ? void 0 : _v.extArrays[1] : (_w = this.extSplats) == null ? void 0 : _w.extArrays[1]; + if (!ext1 || !ext2) { + return; + } + for (let base = 0; base < numSplats; base += bufferSize) { + const count = Math.min(bufferSize, numSplats - base); + if (!indices) { + buffer.set(ext1.subarray(base * 4, (base + count) * 4)); + buffer2.set(ext2.subarray(base * 4, (base + count) * 4)); + } else { + for (let i = 0; i < count; ++i) { + const index = indices[base + i]; + const i4 = i * 4; + const index4 = index * 4; + buffer[i4] = ext1[index4]; + buffer[i4 + 1] = ext1[index4 + 1]; + buffer[i4 + 2] = ext1[index4 + 2]; + buffer[i4 + 3] = ext1[index4 + 3]; + buffer2[i4] = ext2[index4]; + buffer2[i4 + 1] = ext2[index4 + 1]; + buffer2[i4 + 2] = ext2[index4 + 2]; + buffer2[i4 + 3] = ext2[index4 + 3]; + } + } + const newIntersections = raycast_ext_buffers( + origin.x, + origin.y, + origin.z, + direction.x, + direction.y, + direction.z, + this.minRaycastOpacity, + near, + far, + count + ); + intersections = this.appendRaycastBuffer( + intersections, + newIntersections + ); + } } - if (property.isList && !PLY_PROPERTY_TYPES.includes(property.countType)) { - return false; + for (const distance2 of _SplatMesh.raycastBuffer.subarray(0, intersections)) { + const point = ray.direction.clone().multiplyScalar(distance2).add(ray.origin); + intersects.push({ + distance: distance2, + point, + object: this + }); } - if (!PLY_PROPERTY_TYPES.includes(property.type)) { - return false; + } + appendRaycastBuffer(count, additional) { + const total = count + additional.length; + let capacity = _SplatMesh.raycastBuffer.length; + if (total > capacity) { + while (capacity < total) { + capacity *= 2; + } + const newBuffer = new Float32Array(capacity); + newBuffer.set(_SplatMesh.raycastBuffer.subarray(0, count)); + _SplatMesh.raycastBuffer = newBuffer; } + _SplatMesh.raycastBuffer.set(additional, count); + return count + additional.length; } - return true; -} -function createCompiledParserFn(properties, littleEndian) { - const parserSrc = ["let list;"]; - for (const [propertyName, property] of Object.entries(properties)) { - const fRestMatch = propertyName.match(F_REST_REGEX); - if (fRestMatch) { - const fRestIndex = +fRestMatch[1]; - parserSrc.push( - /*js*/ - ` - item.f_rest[${fRestIndex}] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian}); - offset += ${FIELD_BYTES[property.type]}; - ` - ); - } else if (!property.isList) { - parserSrc.push( - /*js*/ - ` - item['${propertyName}'] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian}); - offset += ${FIELD_BYTES[property.type]}; - ` - ); - } else { - parserSrc.push( - /*js*/ - ` - list = item['${propertyName}']; - list.length = PARSE_FIELD['${property.countType}'](data, offset, ${littleEndian}); - offset += ${FIELD_BYTES[property.countType]}; - for (let i = 0; i < list.length; i++) { - list[i] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian}); - offset += ${FIELD_BYTES[property.type]}; - } - ` - ); + async createLodSplats({ + rgbaArray, + quality + } = {}) { + if (this.packedSplats) { + await this.packedSplats.createLodSplats({ quality, rgbaArray }); + } else if (this.extSplats) { + await this.extSplats.createLodSplats({ quality, rgbaArray }); } } - parserSrc.push("return offset;"); - const fn = new Function( - "data", - "offset", - "item", - "PARSE_FIELD", - parserSrc.join("\n") - ); - return (data, offset, item) => fn(data, offset, item, PARSE_FIELD); -} -function createDynamicParserFn(properties, littleEndian) { - const parsers = []; - for (const [propertyName, property] of Object.entries(properties)) { - const fRestMatch = propertyName.match(F_REST_REGEX); - if (fRestMatch) { - const fRestIndex = +fRestMatch[1]; - parsers.push( - (data, offset, item) => { - item.f_rest[fRestIndex] = PARSE_FIELD[property.type]( - data, - offset, - littleEndian - ); - return offset + FIELD_BYTES[property.type]; - } - ); - } else if (!property.isList) { - parsers.push( - (data, offset, item) => { - item[propertyName] = PARSE_FIELD[property.type]( - data, - offset, - littleEndian - ); - return offset + FIELD_BYTES[property.type]; - } - ); - } else { - parsers.push( - (data, offset, item) => { - const list = item[propertyName]; - list.length = PARSE_FIELD[property.countType]( - data, - offset, - littleEndian - ); - let currentOffset = offset + FIELD_BYTES[property.countType]; - for (let i = 0; i < list.length; i++) { - list[i] = PARSE_FIELD[property.type]( - data, - currentOffset, - littleEndian - ); - currentOffset += FIELD_BYTES[property.type]; +}; +_SplatMesh.dynoTime = new DynoFloat({ value: 0 }); +_SplatMesh.raycastBuffer = new Float32Array(1024); +let SplatMesh = _SplatMesh; +function maybeLookupIndex(lodIndices, index, numSplats, enableLod, showLodPage) { + return dyno$1({ + inTypes: { + lodIndices: "usampler2D", + index: "int", + numSplats: "int", + enableLod: "bool", + showLodPage: "int" + }, + outTypes: { + index: "int" + }, + inputs: { + lodIndices, + index, + numSplats, + enableLod, + showLodPage + }, + statements: ({ inputs, outputs }) => unindentLines(` + int index = ${inputs.index}; + if (${inputs.showLodPage} < 0) { + if (index >= ${inputs.numSplats}) { + return; } - return currentOffset; + if (${inputs.enableLod}) { + ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14); + uint splatIndex = texelFetch(${inputs.lodIndices}, lodIndexCoord, 0)[index & 3]; + ${outputs.index} = int(splatIndex); + } else { + ${outputs.index} = index; + } + } else { + int start = ${inputs.showLodPage} << 16; + if (index >= 65536) { + return; + } + ${outputs.index} = start + index; + } + `) + }).outputs.index; +} +function maybeInjectSplatRgba(gsplat, rgba, index, enableLod) { + return dyno$1({ + inTypes: { + gsplat: Gsplat, + rgba: TRgbaArray, + index: "int", + enableLod: "bool" + }, + outTypes: { gsplat: Gsplat }, + inputs: { gsplat, rgba, index, enableLod }, + statements: ({ inputs, outputs }) => unindentLines(` + ${outputs.gsplat} = ${inputs.gsplat}; + if (!${inputs.enableLod} && (${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) { + ${outputs.gsplat}.rgba = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0); } - ); + `) + }).outputs.gsplat; +} +const emptyLodIndices = (() => { + const texture2 = new THREE.DataTexture( + new Uint32Array(16384), + 4096, + 1, + THREE.RGBAIntegerFormat, + THREE.UnsignedIntType + ); + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +const _SplatAccumulator = class _SplatAccumulator { + constructor({ + extSplats, + covSplats + } = {}) { + this.time = 0; + this.deltaTime = 0; + this.viewToWorld = new THREE.Matrix4(); + this.viewOrigin = new THREE.Vector3(); + this.viewDirection = new THREE.Vector3(); + this.maxSplats = 0; + this.numSplats = 0; + this.target = null; + this.mapping = []; + this.version = -1; + this.mappingVersion = -1; + this.readback = null; + this.readbackSplats = []; + if (!threeMrtArray) { + throw new Error("Spark requires THREE.js r179 or above"); } + this.extSplats = extSplats ?? true; + this.covSplats = covSplats ?? false; } - return (data, offset, item) => { - let currentOffset = offset; - for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) { - currentOffset = parsers[parserIndex](data, currentOffset, item); + dispose() { + if (this.target) { + this.target.dispose(); + this.target = null; } - return currentOffset; - }; -} -function getNumSh(properties) { - let num_f_rest = 0; - while (properties[`f_rest_${num_f_rest}`]) { - num_f_rest += 1; } - const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest]; - if (numSh == null) { - throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`); + // Returns a THREE.DataArrayTexture representing the NewSplatAccumulator + // content as 2 x Uint32x4 data array textures (2048 x 2048 x 2048 in size) + getTextures() { + if (this.target) { + return this.target.textures; + } + return _SplatAccumulator.emptyTextures; } - return numSh; -} -class SplatLoader extends Loader { - constructor(manager) { - super(manager); - this.fileLoader = new FileLoader(manager); + // Given an array of splatCounts (.numSplats for each + // SplatGenerator/SplatMesh in the scene), compute a + // "mapping layout" in the composite array of generated outputs. + generateMapping(splatCounts) { + let maxSplats = 0; + const mapping = splatCounts.map((numSplats) => { + const base = maxSplats; + const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + maxSplats += rounded; + return { base, count: numSplats }; + }); + return { maxSplats, mapping }; } - load(url, onLoad, onProgress, onError) { - return this.loadInternal({ - url, - onLoad, - onProgress, - onError + // Ensures our NewSplatAccumulator.target render target has enough space + // to generate maxSplats total Gsplats, and reallocate if not large enough. + ensureGenerate({ maxSplats }) { + if (this.target && (maxSplats ?? 1) <= this.maxSplats) { + return false; + } + this.dispose(); + const textureSize2 = getTextureSize(maxSplats ?? 1); + const { width, height, depth } = textureSize2; + this.maxSplats = textureSize2.maxSplats; + this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, { + depthBuffer: false, + stencilBuffer: false, + generateMipmaps: false, + magFilter: THREE.NearestFilter, + minFilter: THREE.NearestFilter, + format: THREE.RGBAIntegerFormat, + type: THREE.UnsignedIntType }); + this.target.scissorTest = true; + if (this.extSplats) { + const target2 = this.target.texture.clone(); + const target3 = this.target.texture.clone(); + target3.format = THREE.RGBAFormat; + target3.type = THREE.UnsignedByteType; + target3.internalFormat = "RGBA8"; + this.target.textures = [this.target.texture, target2, target3]; + } else { + const target3 = this.target.texture.clone(); + target3.format = THREE.RGBAFormat; + target3.type = THREE.UnsignedByteType; + target3.internalFormat = "RGBA8"; + this.target.textures = [this.target.texture, target3]; + } + return true; } - async loadAsync(url, onProgress) { - return new Promise((resolve, reject) => { - this.load( - url, - (decoded) => { - resolve(decoded); - }, - onProgress, - reject + saveRenderState(renderer) { + return { + target: renderer.getRenderTarget(), + activeCubeFace: renderer.getActiveCubeFace(), + activeMipmapLevel: renderer.getActiveMipmapLevel(), + xrEnabled: renderer.xr.enabled, + autoClear: renderer.autoClear + }; + } + resetRenderState(renderer, state) { + renderer.setRenderTarget( + state.target, + state.activeCubeFace, + state.activeMipmapLevel + ); + renderer.xr.enabled = state.xrEnabled; + renderer.autoClear = state.autoClear; + } + // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator, + // generating it if necessary and caching the result. + prepareProgramMaterial(generator, covGenerator) { + const theGenerator = generator ?? covGenerator; + if (!theGenerator) { + throw new Error("Either generator or covGenerator must be provided"); + } + let program = _SplatAccumulator.generatorProgram.get(theGenerator); + if (!program) { + const graph = dynoBlock( + { index: "int" }, + {}, + ({ index }, _outputs, { roots }) => { + if (generator) { + generator.inputs.index = index; + } + if (covGenerator) { + covGenerator.inputs.index = index; + } + if (this.extSplats) { + if (!this.covSplats) { + if (generator) { + const output = outputExtendedSplat(generator.outputs.gsplat); + roots.push(output); + } else { + throw new Error("Generator must be provided"); + } + } else { + if (covGenerator) { + const output = outputExtCovSplat(covGenerator.outputs.covsplat); + roots.push(output); + } else if (generator) { + const covsplat = gsplatToCovSplat(generator.outputs.gsplat); + const output = outputExtCovSplat(covsplat); + roots.push(output); + } else { + throw new Error("Generator must be provided"); + } + } + } else { + if (!this.covSplats) { + if (generator) { + const centerSubView = sub( + splitGsplat(generator.outputs.gsplat).outputs.center, + _SplatAccumulator.viewCenterUniform + ); + const halfAlpha = mul( + splitGsplat(generator.outputs.gsplat).outputs.opacity, + dynoConst("float", 0.5) + ); + const gsplat = combineGsplat({ + gsplat: generator.outputs.gsplat, + center: centerSubView, + opacity: halfAlpha + }); + const output = outputPackedSplat( + gsplat, + dynoConst("vec4", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]) + ); + roots.push(output); + } else { + throw new Error("Generator must be provided"); + } + } else { + let covsplat; + if (covGenerator) { + covsplat = covGenerator.outputs.covsplat; + } else if (generator) { + covsplat = gsplatToCovSplat(generator.outputs.gsplat); + } else { + throw new Error("Generator must be provided"); + } + const centerSubView = sub( + splitCovSplat(covsplat).outputs.center, + _SplatAccumulator.viewCenterUniform + ); + const halfAlpha = mul( + splitCovSplat(covsplat).outputs.opacity, + dynoConst("float", 0.5) + ); + covsplat = combineCovSplat({ + covsplat, + center: centerSubView, + opacity: halfAlpha + }); + const output = outputCovSplat( + covsplat, + dynoConst("vec4", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]) + ); + roots.push(output); + } + if (!generator) { + throw new Error("Generator must be provided"); + } + } + if (generator) { + const outputDepth = outputSplatDepth( + generator.outputs.gsplat, + _SplatAccumulator.viewCenterUniform, + _SplatAccumulator.viewDirUniform, + _SplatAccumulator.sortRadialUniform + ); + roots.push(outputDepth); + } + if (covGenerator) { + const outputDepth = outputCovSplatDepth( + covGenerator.outputs.covsplat, + _SplatAccumulator.viewCenterUniform, + _SplatAccumulator.viewDirUniform, + _SplatAccumulator.sortRadialUniform + ); + roots.push(outputDepth); + } + return void 0; + } ); + program = new DynoProgram({ + graph, + inputs: { index: "_index" }, + outputs: {}, + template: this.extSplats ? _SplatAccumulator.programExtTemplate : _SplatAccumulator.programTemplate + // consoleLog: true, + }); + _SplatAccumulator.generatorProgram.set(theGenerator, program); + } + Object.assign(program.uniforms, { + targetLayer: { value: 0 }, + targetBase: { value: 0 }, + targetCount: { value: 0 } }); + const material = program.prepareMaterial(); + _SplatAccumulator.fullScreenQuad.material = material; + return { program, material }; } - parse(packedSplats) { - return new SplatMesh({ packedSplats }); - } - loadInternal({ - packedSplats, - extSplats, - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - onLoad, - onProgress, - onError, - lod, - nonLod, - lodAbove, - lodBase + generate({ + generator, + covGenerator, + base, + count, + renderer }) { - if (fileBytes instanceof ArrayBuffer) { - fileBytes = new Uint8Array(fileBytes); + if (!this.target) { + throw new Error("Target must be initialized with ensureGenerate"); } - const resolvedURL = fileBytes ? void 0 : this.manager.resolveURL((this.path ?? "") + (url ?? "")); - let readStream = stream == null ? void 0 : stream.getReader(); - this.manager.itemStart(resolvedURL ?? ""); - workerPool.withWorker(async (worker) => { - const splatsLod = (packedSplats == null ? void 0 : packedSplats.lod) ?? (extSplats == null ? void 0 : extSplats.lod); - if (splatsLod) { - lod = splatsLod; - } - const splatsNonLod = (packedSplats == null ? void 0 : packedSplats.nonLod) ?? (extSplats == null ? void 0 : extSplats.nonLod); - if (splatsNonLod !== void 0) { - nonLod = splatsNonLod; + if (base + count > this.maxSplats) { + throw new Error("Base + count exceeds maxSplats"); + } + const { program, material } = this.prepareProgramMaterial( + generator, + covGenerator + ); + program.update(); + const renderState = this.saveRenderState(renderer); + const nextBase = Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT; + material.uniforms.targetBase.value = base; + material.uniforms.targetCount.value = count; + while (base < nextBase) { + const layer = Math.floor(base / layerSize); + material.uniforms.targetLayer.value = layer; + const layerBase = layer * layerSize; + const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH); + const layerYEnd = Math.min( + SPLAT_TEX_HEIGHT, + Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH) + ); + this.target.scissor.set( + 0, + layerYStart, + SPLAT_TEX_WIDTH, + layerYEnd - layerYStart + ); + renderer.setRenderTarget(this.target, layer); + renderer.xr.enabled = false; + renderer.autoClear = false; + _SplatAccumulator.fullScreenQuad.render(renderer); + base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart); + } + this.resetRenderState(renderer, renderState); + return { nextBase }; + } + prepareGenerate({ + renderer, + scene, + time, + camera, + sortRadial, + renderSize, + previous, + lodInstances + }) { + var _a2; + this.viewToWorld.copy(camera.matrixWorld); + camera.getWorldPosition(this.viewOrigin); + camera.getWorldDirection(this.viewDirection); + _SplatAccumulator.viewCenterUniform.value.copy(this.viewOrigin); + _SplatAccumulator.viewDirUniform.value.copy(this.viewDirection); + _SplatAccumulator.sortRadialUniform.value = sortRadial; + this.time = time; + this.deltaTime = time - previous.time; + const allGenerators = []; + scene.traverse((node) => { + if (node instanceof SplatGenerator) { + if (!camera.layers || camera.layers.test(node.layers)) { + allGenerators.push(node); + } } - const onStatus = async (data) => { - const { loaded, total } = data; - if (loaded !== void 0 && onProgress) { - onProgress( - new ProgressEvent("progress", { - lengthComputable: total !== 0, - loaded, - total - }) - ); + }); + const globalEditsSet = /* @__PURE__ */ new Set(); + scene.traverseVisible((node) => { + if (node instanceof SplatEdit) { + let ancestor = node.parent; + while (ancestor != null && !(ancestor instanceof SplatMesh)) { + ancestor = ancestor.parent; } - if (data.nextChunk) { - let chunk; - if (!readStream) { - chunk = new Uint8Array(0); - } else { - const { done, value } = await readStream.read(); - if (done) { - readStream.releaseLock(); - readStream = void 0; - chunk = new Uint8Array(0); - } else { - chunk = value; - } - } - worker.call("nextChunk", { chunk }); + if (ancestor == null) { + globalEditsSet.add(node); } - }; - const basedUrl = resolvedURL ? new URL(resolvedURL, window.location.href).toString() : void 0; - const decoded = await worker.call( - extSplats ? "loadExtSplats" : "loadPackedSplats", - { - url: basedUrl, - requestHeader: this.requestHeader, - withCredentials: this.withCredentials, - fileBytes: fileBytes == null ? void 0 : fileBytes.slice(), - fileType, - pathName: resolvedURL || fileName, - chunked: stream !== void 0, - chunkedLength: streamLength, - encoding: packedSplats == null ? void 0 : packedSplats.splatEncoding, - lod, - lodBase, - nonLod, - lodAbove - }, - { onStatus } - ); - if (decoded.lodSplats) { - if (extSplats) { - decoded.lodSplats = new ExtSplats({ - ...decoded.lodSplats - }); - } else { - decoded.lodSplats = new PackedSplats({ - ...decoded.lodSplats, - maxSplats: packedSplats == null ? void 0 : packedSplats.maxSplats - }); + } + }); + const globalEdits = Array.from(globalEditsSet); + for (const object of allGenerators) { + try { + (_a2 = object.frameUpdate) == null ? void 0 : _a2.call(object, { + renderer, + object, + time: this.time, + deltaTime: this.deltaTime, + viewToWorld: this.viewToWorld, + camera, + renderSize, + globalEdits, + lodIndices: lodInstances && object instanceof SplatMesh ? lodInstances.get(object) : void 0 + }); + } catch (error) { + console.error("frameUpdate error", error); + object.generator = void 0; + object.covGenerator = void 0; + object.generatorError = error; + } + } + const visibleGenerators = []; + scene.traverseVisible((node) => { + if (node instanceof SplatGenerator) { + if (!camera.layers || camera.layers.test(node.layers)) { + visibleGenerators.push(node); + } + } + }); + const splatCounts = visibleGenerators.map( + (generator) => generator.numSplats + ); + const { maxSplats, mapping: baseCounts } = this.generateMapping(splatCounts); + const previousMappings = previous.mapping.reduce((mappings, mapping) => { + mappings.set(mapping.node, mapping); + return mappings; + }, /* @__PURE__ */ new Map()); + this.mapping = []; + this.numSplats = 0; + baseCounts.forEach(({ base, count }, index) => { + const node = visibleGenerators[index]; + const previousNode = previousMappings.get(node); + if (previousNode && previousNode.count !== node.numSplats) { + node.updateMappingVersion(); + } + const { generator, covGenerator } = node; + if ((generator || covGenerator) && count > 0) { + const { version, mappingVersion } = node; + this.mapping.push({ + node, + generator, + covGenerator, + version, + mappingVersion, + base, + count + }); + this.numSplats = Math.max(this.numSplats, base + count); + } + }); + const { splatsUpdated, mappingUpdated } = previous.checkVersions( + this.mapping + ); + this.version = previous.version + (splatsUpdated ? 1 : 0); + this.mappingVersion = previous.mappingVersion + (mappingUpdated ? 1 : 0); + return { + sameMapping: !mappingUpdated, + version: this.version, + mappingVersion: this.mappingVersion, + visibleGenerators, + generate: () => { + this.ensureGenerate({ maxSplats }); + for (const { node, base, count } of this.mapping) { + const { generator, covGenerator } = node; + if ((generator || covGenerator) && count > 0) { + this.generate({ generator, covGenerator, base, count, renderer }); + } } - } - if (extSplats) { - const initExtSplats = { - // ...(initExt ?? {}), - ...decoded - }; - extSplats.initialize(initExtSplats); - onLoad == null ? void 0 : onLoad(extSplats); - } else { - const initSplats = { - // ...(init ?? {}), - ...decoded - }; - if (packedSplats) { - packedSplats.initialize(initSplats); - onLoad == null ? void 0 : onLoad(packedSplats); - } else { - onLoad == null ? void 0 : onLoad(new PackedSplats(initSplats)); + }, + readback: async () => { + const textures = this.getTextures(); + if (this.readbackSplats.length === 0) { + this.readbackSplats = [ + new DynoUsampler2DArray({ value: textures[0], key: "extSplats" }), + new DynoUsampler2DArray({ value: textures[1], key: "extSplats" }) + ]; } + this.readbackSplats[0].value = textures[0]; + this.readbackSplats[1].value = textures[1]; + if (!this.readback) { + this.readback = new Readback({ renderer }); + } + const readback = this.readback; + const words = this.extSplats ? 8 : 4; + const array = readback.ensureBuffer( + this.numSplats * words, + new Uint32Array(0) + ); + const reader = dynoBlock( + { index: "int" }, + { rgba8: "vec4" }, + ({ index }) => { + const rgba8 = new Dyno({ + inTypes: { + index: "int", + extSplats1: "usampler2DArray", + extSplats2: "usampler2DArray" + }, + outTypes: { rgba8: "vec4" }, + inputs: { + index, + extSplats1: this.readbackSplats[0], + extSplats2: this.readbackSplats[1] + }, + statements: ({ inputs, outputs }) => { + if (this.extSplats) { + return unindentLines(` + int indexDiv8 = ${inputs.index} >> 3; + ivec3 coord = splatTexCoord(indexDiv8); + uvec4 packedData; + if ((${inputs.index} & 4) == 0) { + packedData = texelFetch(${inputs.extSplats1}, coord, 0); + } else { + packedData = texelFetch(${inputs.extSplats2}, coord, 0); + } + + int indexMod4 = ${inputs.index} & 3; + uint data = (indexMod4 == 0) ? packedData.x + : (indexMod4 == 1) ? packedData.y + : (indexMod4 == 2) ? packedData.z + : packedData.w; + ${outputs.rgba8} = uintToVec4(data); + `); + } + return unindentLines(` + int indexDiv4 = ${inputs.index} >> 2; + ivec3 coord = splatTexCoord(indexDiv4); + uvec4 packedData = texelFetch(${inputs.extSplats1}, coord, 0); + + int indexMod4 = ${inputs.index} & 3; + uint data = (indexMod4 == 0) ? packedData.x + : (indexMod4 == 1) ? packedData.y + : (indexMod4 == 2) ? packedData.z + : packedData.w; + ${outputs.rgba8} = uintToVec4(data); + `); + } + }).outputs.rgba8; + return { rgba8 }; + } + ); + return await readback.renderReadback({ + reader, + count: this.numSplats * words, + renderer, + readback: array + }); } - }).catch((error) => { - this.manager.itemError(resolvedURL ?? ""); - onError == null ? void 0 : onError(error); - }).finally(() => { - this.manager.itemEnd(resolvedURL ?? ""); - }); - } - async loadInternalAsync({ - packedSplats, - extSplats, - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - onProgress, - lod, - nonLod, - lodAbove, - lodBase - }) { - return new Promise((resolve, reject) => { - this.loadInternal({ - packedSplats, - extSplats, - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - onLoad: resolve, - onProgress, - onError: reject, - lod, - nonLod, - lodAbove, - lodBase - }); - }); - } -} -function getSplatFileType(fileBytes) { - const view = new DataView(fileBytes.buffer); - const magic = view.getUint32(0, true); - if ((magic & 16777215) === 7957616) { - return SplatFileType.PLY; + }; } - if ((magic & 16777215) === 559903) { - const header = decompressPartialGzip(fileBytes, 4); - const gView = new DataView(header.buffer); - if (gView.getUint32(0, true) === 1347635022) { - return SplatFileType.SPZ; + // Check if this accumulator has exactly the same generator mapping as + // the previous one. If so, we can reuse the Gsplat sort order. + checkVersions(otherMapping) { + if (this.mapping.length !== otherMapping.length) { + return { splatsUpdated: true, mappingUpdated: true }; } - return void 0; - } - if (magic === 67324752) { - if (tryPcSogsZip(fileBytes)) { - return SplatFileType.PCSOGSZIP; + const mappingUpdated = this.mapping.some((item, i) => { + const other = otherMapping[i]; + return item.node !== other.node || item.base !== other.base || item.count !== other.count || item.mappingVersion !== other.mappingVersion; + }); + if (mappingUpdated) { + return { splatsUpdated: true, mappingUpdated: true }; } - return void 0; - } - if (magic === 809779538) { - return SplatFileType.RAD; + const splatsUpdated = this.mapping.some((item, i) => { + return item.version !== otherMapping[i].version; + }); + return { splatsUpdated, mappingUpdated }; } - return void 0; -} -function getFileExtension(pathOrUrl) { - const noTrailing = pathOrUrl.split(/[?#]/, 1)[0]; - const lastSlash = Math.max( - noTrailing.lastIndexOf("/"), - noTrailing.lastIndexOf("\\") +}; +_SplatAccumulator.viewCenterUniform = new DynoVec3({ value: new THREE.Vector3() }); +_SplatAccumulator.viewDirUniform = new DynoVec3({ value: new THREE.Vector3() }); +_SplatAccumulator.sortRadialUniform = new DynoBool({ value: true }); +_SplatAccumulator.emptyTexture = (() => { + const { width, height, depth, maxSplats } = getTextureSize(1); + const emptyArray = new Uint32Array(maxSplats * 4); + const texture2 = new THREE.DataArrayTexture( + emptyArray, + width, + height, + depth ); - const filename = noTrailing.slice(lastSlash + 1); - const lastDot = filename.lastIndexOf("."); - if (lastDot <= 0 || lastDot === filename.length - 1) { - return ""; - } - return filename.slice(lastDot + 1).toLowerCase(); -} -function getSplatFileTypeFromPath(pathOrUrl) { - const extension = getFileExtension(pathOrUrl); - if (extension === "ply") { - return SplatFileType.PLY; - } - if (extension === "spz") { - return SplatFileType.SPZ; - } - if (extension === "splat") { - return SplatFileType.SPLAT; - } - if (extension === "ksplat") { - return SplatFileType.KSPLAT; - } - if (extension === "sog") { - return SplatFileType.PCSOGSZIP; - } - if (extension === "rad") { - return SplatFileType.RAD; + texture2.format = THREE.RGBAIntegerFormat; + texture2.type = THREE.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +_SplatAccumulator.emptyTextures = (() => { + return [_SplatAccumulator.emptyTexture, _SplatAccumulator.emptyTexture]; +})(); +_SplatAccumulator.programExtTemplate = new DynoProgramTemplate( + getShaders().computeUvec4x2Vec4Template +); +_SplatAccumulator.programTemplate = new DynoProgramTemplate( + getShaders().computeUvec4Vec4Template +); +_SplatAccumulator.generatorProgram = /* @__PURE__ */ new WeakMap(); +_SplatAccumulator.fullScreenQuad = new FullScreenQuad( + new THREE.RawShaderMaterial({ visible: false }) +); +let SplatAccumulator = _SplatAccumulator; +class SplatGeometry extends THREE.InstancedBufferGeometry { + constructor() { + super(); + this.setAttribute("position", new THREE.BufferAttribute(QUAD_VERTICES, 3)); + this.setIndex(new THREE.BufferAttribute(QUAD_INDICES, 1)); } - return void 0; -} -function isPcSogs(input) { - return tryPcSogs(input) !== void 0; } -function tryPcSogs(input) { - try { - let text; - if (typeof input === "string") { - text = input; - } else { - const fileBytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input; - if (fileBytes.length > 65536) { - return void 0; - } - text = new TextDecoder().decode(fileBytes); +const QUAD_VERTICES = new Float32Array([ + -1, + -1, + 0, + 1, + -1, + 0, + 1, + 1, + 0, + -1, + 1, + 0 +]); +const QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]); +const _SparkRenderer = class _SparkRenderer extends THREE.Mesh { + constructor(options) { + if (!options) { + throw new Error("SparkRenderer options are required"); } - const json = JSON.parse(text); - if (!json || typeof json !== "object" || Array.isArray(json)) { - return void 0; + if (!options.renderer) { + throw new Error("renderer is required in SparkRenderer options"); } - const isVersion2 = json.version === 2; - for (const key of ["means", "scales", "quats", "sh0"]) { - if (!json[key] || typeof json[key] !== "object" || Array.isArray(json[key])) { - return void 0; + const uniforms = _SparkRenderer.makeUniforms(); + Object.assign(uniforms, options.extraUniforms ?? {}); + const shaders2 = getShaders(); + const premultipliedAlpha = options.premultipliedAlpha ?? true; + const geometry = new SplatGeometry(); + const material = new THREE.ShaderMaterial({ + glslVersion: THREE.GLSL3, + vertexShader: options.vertexShader ?? shaders2.splatVertex, + fragmentShader: options.fragmentShader ?? shaders2.splatFragment, + uniforms, + premultipliedAlpha, + transparent: options.transparent ?? true, + depthTest: options.depthTest ?? true, + depthWrite: options.depthWrite ?? false, + side: THREE.DoubleSide, + allowOverride: false + }); + super(geometry, material); + this.renderSize = new THREE.Vector2(); + this.lastFrame = -1; + this.updateTimeoutId = -1; + this.orderingTexture = null; + this.maxSplats = 0; + this.activeSplats = 0; + this.accumulators = []; + this.sorting = false; + this.sortDirty = false; + this.lastSortTime = 0; + this.sortWorker = null; + this.sortTimeoutId = -1; + this.sortedCenter = new THREE.Vector3().setScalar(Number.NEGATIVE_INFINITY); + this.sortedDir = new THREE.Vector3().setScalar(0); + this.readback32 = new Uint32Array(0); + this.lastLodRaycastTime = 0; + this.lodWorker = null; + this.lodMeshes = []; + this.lodDirty = false; + this.lodIds = /* @__PURE__ */ new Map(); + this.lodIdToSplats = /* @__PURE__ */ new Map(); + this.lodInitQueue = []; + this.lodInstances = /* @__PURE__ */ new Map(); + this.lodUpdates = []; + this.lastTraverseTime = 0; + this.pagerId = 0; + this.superXY = 1; + this.flushAfterGenerate = false; + this.flushAfterRead = false; + this.readPause = 1; + this.sortPause = 0; + this.sortDelay = 0; + this.pageSizeWarning = false; + this.material = material; + this.uniforms = uniforms; + this.frustumCulled = false; + this.renderer = options.renderer; + this.onDirty = options.onDirty; + this.dirty = true; + this.autoUpdate = options.autoUpdate ?? true; + this.preUpdate = options.preUpdate ?? true; + this.maxStdDev = options.maxStdDev ?? Math.sqrt(8); + this.minPixelRadius = options.minPixelRadius ?? 0; + this.maxPixelRadius = options.maxPixelRadius ?? 512; + this.accumExtSplats = options.accumExtSplats ?? false; + this.covSplats = options.covSplats ?? false; + this.minAlpha = options.minAlpha ?? 0.5 * (1 / 255); + this.enable2DGS = options.enable2DGS ?? false; + this.preBlurAmount = options.preBlurAmount ?? 0; + this.blurAmount = options.blurAmount ?? 0.3; + this.focalDistance = options.focalDistance ?? 0; + this.apertureAngle = options.apertureAngle ?? 0; + this.falloff = options.falloff ?? 1; + this.clipXY = options.clipXY ?? 1.4; + this.focalAdjustment = options.focalAdjustment ?? 1; + this.sortRadial = options.sortRadial ?? true; + this.minSortIntervalMs = options.minSortIntervalMs ?? 0; + this.enableLod = options.enableLod ?? true; + this.enableDriveLod = options.enableDriveLod ?? this.enableLod; + this.enableLodFetching = options.enableLodFetching ?? true; + this.lodSplatCount = options.lodSplatCount; + this.lodSplatScale = options.lodSplatScale ?? 1; + this.lodRenderScale = options.lodRenderScale ?? 1; + this.lodInflate = options.lodInflate ?? false; + this.lodTraverseMode = options.lodTraverseMode ?? "standard"; + this.pagedExtSplats = options.pagedExtSplats ?? false; + const defaultPages = isMobile() ? isIos() ? 96 : 128 : 256; + this.maxPagedSplats = options.maxPagedSplats ?? defaultPages * 65536; + this.numLodFetchers = options.numLodFetchers ?? 3; + this.behindFoveate = options.behindFoveate ?? 0.2; + this.coneFov0 = options.coneFov0 ?? 90; + this.coneFov = options.coneFov ?? 120; + this.coneFoveate = options.coneFoveate ?? 0.4; + this.lodRaycast = options.lodRaycast === void 0 ? isMobile() ? 1e4 : 25e3 : options.lodRaycast; + this.lodRaycastIntervalMs = options.lodRaycastIntervalMs ?? 500; + this.timer = options.timer ?? new THREE.Timer(); + const accumulatorOptions = { + extSplats: this.accumExtSplats, + covSplats: this.covSplats + }; + this.display = new SplatAccumulator(accumulatorOptions); + this.current = this.display; + this.accumulators.push(new SplatAccumulator(accumulatorOptions)); + this.accumulators.push(new SplatAccumulator(accumulatorOptions)); + const provokingVertexExt = this.renderer.getContext().getExtension("WEBGL_provoking_vertex"); + if (provokingVertexExt) { + provokingVertexExt.provokingVertexWEBGL( + provokingVertexExt.FIRST_VERTEX_CONVENTION_WEBGL + ); + } + if (options.target) { + const { + width, + height, + doubleBuffer, + superXY: origSuperXY, + ...origTargetOptions + } = options.target; + const superXY = Math.max(1, Math.min(4, origSuperXY ?? 1)); + if (width * superXY > 8192 || height * superXY > 8192) { + throw new Error("Target size too large"); } - if (isVersion2) { - if (!json[key].files) { - return void 0; - } - if ((key === "scales" || key === "sh0") && !json[key].codebook) { - return void 0; - } - if (key === "means" && (!json[key].mins || !json[key].maxs)) { - return void 0; - } - } else { - if (!json[key].shape || !json[key].files) { - return void 0; - } - if (key !== "quats" && (!json[key].mins || !json[key].maxs)) { - return void 0; - } + this.superXY = superXY; + const superWidth = width * superXY; + const superHeight = height * superXY; + const targetOptions = { + format: THREE.RGBAFormat, + type: THREE.UnsignedByteType, + colorSpace: THREE.SRGBColorSpace, + ...origTargetOptions + }; + this.target = new THREE.WebGLRenderTarget( + superWidth, + superHeight, + targetOptions + ); + if (doubleBuffer) { + this.backTarget = new THREE.WebGLRenderTarget( + superWidth, + superHeight, + targetOptions + ); } } - return json; - } catch { - return void 0; } -} -function tryPcSogsZip(input) { - try { - const fileBytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input; - let metaFilename = null; - const unzipped = unzipSync(fileBytes, { - filter: ({ name }) => { - const filename = name.split(/[\\/]/).pop(); - if (filename === "meta.json") { - metaFilename = name; - return true; - } - return false; - } - }); - if (!metaFilename) { - return void 0; + static makeUniforms() { + const uniforms = { + // // number of active splats to render + // numSplats: { value: 0 }, + // Size of render viewport in pixels + renderSize: { value: new THREE.Vector2() }, + // Near and far plane distances + near: { value: 0.1 }, + far: { value: 1e3 }, + // SplatAccumulator to view transformation quaternion + renderToViewQuat: { value: new THREE.Quaternion() }, + // SplatAccumulator to view transformation translation + renderToViewPos: { value: new THREE.Vector3() }, + renderToViewBasis: { value: new THREE.Matrix3() }, + renderToViewOffset: { value: new THREE.Vector3() }, + // Maximum distance (in stddevs) from Gsplat center to render + maxStdDev: { value: 1 }, + // Minimum pixel radius for splat rendering + minPixelRadius: { value: 0 }, + // Maximum pixel radius for splat rendering + maxPixelRadius: { value: 512 }, + // Minimum alpha value for splat rendering + minAlpha: { value: 0.5 * (1 / 255) }, + // Enable interpreting 0-thickness Gsplats as 2DGS + enable2DGS: { value: false }, + // Enable ray-splat max response evaluation + // enableRayEval: { value: false }, + // Inflate LoD splats so that opacity <= 1.0 + lodInflate: { value: false }, + // Add to projected 2D splat covariance diagonal (thickens and brightens) + preBlurAmount: { value: 0 }, + // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing) + blurAmount: { value: 0.3 }, + // Depth-of-field distance to focal plane + focalDistance: { value: 0 }, + // Full-width angle of aperture opening (in radians) + apertureAngle: { value: 0 }, + // Modulate Gaussian kernal falloff. 0 means "no falloff, flat shading", + // 1 is normal e^-x^2 falloff. + falloff: { value: 1 }, + // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds + clipXY: { value: 1.4 }, + // Debug renderSize scale factor + focalAdjustment: { value: 1 }, + // Whether to encode Gsplat with linear RGB (for environment mapping) + encodeLinear: { value: false }, + // Back-to-front sort ordering of splat indices + ordering: { type: "t", value: _SparkRenderer.emptyOrdering }, + enableExtSplats: { value: false }, + enableCovSplats: { value: false }, + // Gsplat collection to render + extSplats: { type: "t", value: SplatAccumulator.emptyTexture }, + extSplats2: { type: "t", value: SplatAccumulator.emptyTexture }, + // Time in seconds for time-based effects + time: { value: 0 }, + // Delta time in seconds since last frame + deltaTime: { value: 0 }, + // Debug flag that alternates each frame + debugFlag: { value: false } + }; + return uniforms; + } + dispose() { + if (this.target) { + this.target.dispose(); + this.target = void 0; } - const json = tryPcSogs(unzipped[metaFilename]); - if (!json) { - return void 0; + if (this.backTarget) { + this.backTarget.dispose(); + this.backTarget = void 0; } - return { name: metaFilename, json }; - } catch { - return void 0; - } -} -async function unpackSplats({ - input, - extraFiles, - fileType, - pathOrUrl, - splatEncoding -}) { - const fileBytes = input instanceof ArrayBuffer ? new Uint8Array(input) : input; - let splatFileType = fileType; - if (!fileType) { - splatFileType = getSplatFileType(fileBytes); - if (!splatFileType && pathOrUrl) { - splatFileType = getSplatFileTypeFromPath(pathOrUrl); - } - } - switch (splatFileType) { - case SplatFileType.PLY: { - const ply = new PlyReader({ fileBytes }); - await ply.parseHeader(); - const numSplats = ply.numSplats; - const maxSplats = getTextureSize(numSplats).maxSplats; - const args = { - fileBytes, - packedArray: new Uint32Array(maxSplats * 4), - splatEncoding - }; - return await withWorker(async (worker) => { - const { packedArray, numSplats: numSplats2, extra } = await worker.call( - "unpackPly", - args - ); - return { packedArray, numSplats: numSplats2, extra }; - }); + if (this.orderingTexture) { + this.orderingTexture.dispose(); + this.orderingTexture = null; } - case SplatFileType.SPZ: { - return await withWorker(async (worker) => { - const { packedArray, numSplats, extra } = await worker.call( - "decodeSpz", - { - fileBytes, - splatEncoding - } - ); - return { packedArray, numSplats, extra }; - }); + const accumulators = /* @__PURE__ */ new Set(); + accumulators.add(this.display); + accumulators.add(this.current); + for (const accumulator of this.accumulators) { + accumulators.add(accumulator); } - case SplatFileType.SPLAT: { - return await withWorker(async (worker) => { - const { packedArray, numSplats } = await worker.call( - "decodeAntiSplat", - { - fileBytes, - splatEncoding - } - ); - return { packedArray, numSplats }; - }); + for (const accumulator of accumulators) { + accumulator.dispose(); } - case SplatFileType.KSPLAT: { - return await withWorker(async (worker) => { - const { packedArray, numSplats, extra } = await worker.call( - "decodeKsplat", - { fileBytes, splatEncoding } - ); - return { packedArray, numSplats, extra }; - }); + const instances = this.lodInstances.values(); + this.lodInstances.clear(); + for (const instance of instances) { + instance.texture.dispose(); } - case SplatFileType.PCSOGS: { - return await withWorker(async (worker) => { - const { packedArray, numSplats, extra } = await worker.call( - "decodePcSogs", - { fileBytes, extraFiles, splatEncoding } - ); - return { packedArray, numSplats, extra }; - }); + if (this.sortWorker) { + this.sortWorker.dispose(); + this.sortWorker = null; } - case SplatFileType.PCSOGSZIP: { - return await withWorker(async (worker) => { - const { packedArray, numSplats, extra } = await worker.call( - "decodePcSogsZip", - { fileBytes, splatEncoding } - ); - return { packedArray, numSplats, extra }; - }); + if (this.lodWorker) { + this.lodWorker.dispose(); + this.lodWorker = null; } - default: { - throw new Error(`Unknown splat file type: ${splatFileType}`); + if (this.pager) { + this.pager.dispose(); + this.pager = void 0; } } -} -class SplatData { - constructor({ maxSplats = 1 } = {}) { - this.numSplats = 0; - this.maxSplats = getTextureSize(maxSplats).maxSplats; - this.centers = new Float32Array(this.maxSplats * 3); - this.scales = new Float32Array(this.maxSplats * 3); - this.quaternions = new Float32Array(this.maxSplats * 4); - this.opacities = new Float32Array(this.maxSplats); - this.colors = new Float32Array(this.maxSplats * 3); - } - pushSplat() { - const index = this.numSplats; - this.ensureIndex(index); - this.numSplats += 1; - return index; + setDirty() { + var _a2; + if (!this.dirty) { + this.dirty = true; + (_a2 = this.onDirty) == null ? void 0 : _a2.call(this); + } } - unpushSplat(index) { - if (index === this.numSplats - 1) { - this.numSplats -= 1; + onBeforeRender(renderer, scene, camera) { + var _a2; + const spark = _SparkRenderer.sparkOverride ?? this; + const frame = renderer.info.render.frame; + const isNewFrame = frame !== spark.lastFrame; + spark.lastFrame = frame; + const currentRenderTarget = renderer.getRenderTarget(); + const isXRRenderTarget = checkIsXRRenderTarget(currentRenderTarget); + if (currentRenderTarget) { + spark.renderSize.set( + currentRenderTarget.width, + currentRenderTarget.height + ); + if (isXRRenderTarget && spark.renderSize.x === 1 && spark.renderSize.y === 1) { + const baseLayer = (_a2 = renderer.xr.getSession()) == null ? void 0 : _a2.renderState.baseLayer; + if (baseLayer) { + spark.renderSize.x = baseLayer.framebufferWidth; + spark.renderSize.y = baseLayer.framebufferHeight; + } + } } else { - throw new Error("Cannot unpush splat from non-last position"); + renderer.getDrawingBufferSize(spark.renderSize); + } + this.uniforms.renderSize.value.copy(spark.renderSize); + const typedCamera = camera; + this.uniforms.near.value = typedCamera.near; + this.uniforms.far.value = typedCamera.far; + const geometry = this.geometry; + geometry.instanceCount = spark.activeSplats; + const accumToWorld = new THREE.Matrix4(); + if (!this.display.extSplats) { + accumToWorld.makeTranslation(spark.display.viewOrigin); + } + const cameraToWorld = camera.matrixWorld.clone(); + const worldToCamera = cameraToWorld.invert(); + const accumToCamera = worldToCamera.multiply(accumToWorld); + accumToCamera.decompose( + this.uniforms.renderToViewPos.value, + this.uniforms.renderToViewQuat.value, + new THREE.Vector3() + ); + this.uniforms.renderToViewBasis.value.setFromMatrix4(accumToCamera); + this.uniforms.maxStdDev.value = spark.maxStdDev; + this.uniforms.minPixelRadius.value = spark.minPixelRadius; + this.uniforms.maxPixelRadius.value = spark.maxPixelRadius; + this.uniforms.minAlpha.value = spark.minAlpha; + this.uniforms.enable2DGS.value = spark.enable2DGS; + this.uniforms.lodInflate.value = spark.lodInflate; + this.uniforms.preBlurAmount.value = spark.preBlurAmount; + this.uniforms.blurAmount.value = spark.blurAmount; + this.uniforms.focalDistance.value = spark.focalDistance; + this.uniforms.apertureAngle.value = spark.apertureAngle; + this.uniforms.falloff.value = spark.falloff; + this.uniforms.clipXY.value = spark.clipXY; + this.uniforms.focalAdjustment.value = spark.focalAdjustment; + const outputColorSpace = currentRenderTarget === null ? renderer.outputColorSpace : isXRRenderTarget ? currentRenderTarget.texture.colorSpace : THREE.ColorManagement.workingColorSpace; + this.uniforms.encodeLinear.value = outputColorSpace !== THREE.SRGBColorSpace; + this.uniforms.ordering.value = spark.orderingTexture ?? _SparkRenderer.emptyOrdering; + this.uniforms.enableExtSplats.value = this.display.extSplats; + this.uniforms.enableCovSplats.value = this.display.covSplats; + if (this.display.extSplats) { + const extSplats = spark.display.getTextures(); + this.uniforms.extSplats.value = extSplats[0]; + this.uniforms.extSplats2.value = extSplats[1]; + } else { + const packedSplats = spark.display.getTextures(); + this.uniforms.extSplats.value = packedSplats[0]; + this.uniforms.extSplats2.value = packedSplats[0]; + } + this.uniforms.time.value = spark.display.time; + this.uniforms.deltaTime.value = spark.display.deltaTime; + this.uniforms.debugFlag.value = performance.now() / 1e3 % 2 < 1; + if (spark.autoUpdate && isNewFrame) { + const preUpdate = spark.preUpdate && !renderer.xr.isPresenting; + const useCamera = renderer.xr.isPresenting ? renderer.xr.getCamera() : camera; + if (preUpdate) { + spark.updateInternal({ + scene, + camera: useCamera, + autoUpdate: true + }); + } else { + if (spark.updateTimeoutId === -1) { + spark.updateTimeoutId = setTimeout(() => { + spark.updateTimeoutId = -1; + spark.updateInternal({ + scene, + camera: useCamera, + autoUpdate: true + }); + }, 1); + } + } + } + spark.dirty = false; + } + clearSplats() { + this.activeSplats = 0; + this.display.numSplats = 0; + this.setDirty(); + } + async update({ + scene, + camera + }) { + await this.updateInternal({ scene, camera, autoUpdate: false }); + } + // /** + // * Provide additional cameras to prefetch paged splat chunks without + // * affecting main LOD selection. + // */ + // setPrefetchCameras(cameras?: THREE.Camera[], lodScaleMultiplier = 1.0) { + // const next = cameras?.filter(Boolean) ?? []; + // const sameCameras = + // this.prefetchCameras.length === next.length && + // this.prefetchCameras.every((camera, index) => camera === next[index]); + // if (sameCameras && this.prefetchLodScale === lodScaleMultiplier) { + // return; + // } + // this.prefetchCameras = next; + // this.prefetchLodScale = lodScaleMultiplier; + // this.invalidatePrefetchCache(); + // } + // /** + // * Invalidate the prefetch meshes cache. Call this when SplatMeshes are + // * added or removed from the scene. + // */ + // invalidatePrefetchCache() { + // this.prefetchMeshesCacheScene = undefined; + // } + async updateInternal({ + scene, + camera, + autoUpdate + }) { + const renderer = this.renderer; + this.timer.update(); + const time = this.time ?? this.timer.getElapsed(); + const center = camera.getWorldPosition(new THREE.Vector3()); + const dir = camera.getWorldDirection(new THREE.Vector3()); + const viewChanged = center.distanceTo(this.sortedCenter) > 1e-3 || dir.dot(this.sortedDir) < 0.999; + const next = this.accumulators.pop(); + if (!next) { + throw new Error("No next accumulator"); + } + if (next === this.current) { + throw new Error( + "Next accumulator is the same as the current accumulator" + ); + } + const { version, mappingVersion, visibleGenerators, generate } = next.prepareGenerate({ + renderer, + scene, + time, + camera, + sortRadial: this.sortRadial ?? true, + renderSize: this.renderSize, + previous: this.current, + lodInstances: this.enableLod ? this.lodInstances : void 0 + }); + let doUpdate = true; + const needsUpdate = viewChanged || version !== this.current.version; + const mappingUpdated = mappingVersion !== this.display.mappingVersion; + if (autoUpdate && !needsUpdate) { + doUpdate = false; + } + if (mappingUpdated && this.sorting) { + doUpdate = false; } - } - ensureCapacity(numSplats) { - if (numSplats > this.maxSplats) { - const targetSplats = Math.max(numSplats, this.maxSplats * 2); - const newCenters = new Float32Array(targetSplats * 3); - const newScales = new Float32Array(targetSplats * 3); - const newQuaternions = new Float32Array(targetSplats * 4); - const newOpacities = new Float32Array(targetSplats); - const newColors = new Float32Array(targetSplats * 3); - newCenters.set(this.centers); - newScales.set(this.scales); - newQuaternions.set(this.quaternions); - newOpacities.set(this.opacities); - newColors.set(this.colors); - this.centers = newCenters; - this.scales = newScales; - this.quaternions = newQuaternions; - this.opacities = newOpacities; - this.colors = newColors; - if (this.sh1) { - const newSh1 = new Float32Array(targetSplats * 9); - newSh1.set(this.sh1); - this.sh1 = newSh1; - } - if (this.sh2) { - const newSh2 = new Float32Array(targetSplats * 15); - newSh2.set(this.sh2); - this.sh2 = newSh2; + if (!doUpdate) { + this.accumulators.push(next); + } else { + generate(); + if (this.flushAfterGenerate) { + const gl = renderer.getContext(); + gl.flush(); } - if (this.sh3) { - const newSh3 = new Float32Array(targetSplats * 21); - newSh3.set(this.sh3); - this.sh3 = newSh3; + if (this.display.mappingVersion === next.mappingVersion) { + this.accumulators.push(this.display); + this.display = next; + } else { + if (this.display !== this.current) { + this.accumulators.push(this.current); + } } - this.maxSplats = targetSplats; - } - } - ensureIndex(index) { - this.ensureCapacity(index + 1); - } - setCenter(index, x, y, z) { - this.centers[index * 3] = x; - this.centers[index * 3 + 1] = y; - this.centers[index * 3 + 2] = z; - } - setScale(index, scaleX, scaleY, scaleZ) { - this.scales[index * 3] = scaleX; - this.scales[index * 3 + 1] = scaleY; - this.scales[index * 3 + 2] = scaleZ; - } - setQuaternion(index, x, y, z, w) { - this.quaternions[index * 4] = x; - this.quaternions[index * 4 + 1] = y; - this.quaternions[index * 4 + 2] = z; - this.quaternions[index * 4 + 3] = w; - } - setOpacity(index, opacity) { - this.opacities[index] = opacity; - } - setColor(index, r, g, b) { - this.colors[index * 3] = r; - this.colors[index * 3 + 1] = g; - this.colors[index * 3 + 2] = b; - } - setSh1(index, sh1) { - if (!this.sh1) { - this.sh1 = new Float32Array(this.maxSplats * 9); + this.current = next; + this.sortDirty = true; + this.setDirty(); } - for (let j = 0; j < 9; ++j) { - this.sh1[index * 9 + j] = sh1[j]; + if (this.enableDriveLod) { + this.driveLod({ visibleGenerators, camera, scene }); } + await this.driveSort(); } - setSh2(index, sh2) { - if (!this.sh2) { - this.sh2 = new Float32Array(this.maxSplats * 15); + async driveSort() { + if (this.sorting || !this.sortDirty) { + return; } - for (let j = 0; j < 15; ++j) { - this.sh2[index * 15 + j] = sh2[j]; + if (this.sortTimeoutId !== -1) { + clearTimeout(this.sortTimeoutId); + this.sortTimeoutId = -1; } - } - setSh3(index, sh3) { - if (!this.sh3) { - this.sh3 = new Float32Array(this.maxSplats * 21); + const now = performance.now(); + const nextSortTime = this.lastSortTime ? this.lastSortTime + this.minSortIntervalMs : now; + if (now < nextSortTime) { + this.sortTimeoutId = setTimeout(() => { + this.sortTimeoutId = -1; + this.driveSort(); + }, nextSortTime - now); + return; } - for (let j = 0; j < 21; ++j) { - this.sh3[index * 21 + j] = sh3[j]; + this.sorting = true; + this.sortDirty = false; + this.lastSortTime = now; + if (this.readPause > 0) { + await new Promise((resolve) => setTimeout(resolve, this.readPause)); } - } -} -const _PackedSplats = class _PackedSplats { - constructor(options = {}) { - this.maxSplats = 0; - this.numSplats = 0; - this.packedArray = null; - this.maxSh = 3; - this.isInitialized = false; - this.target = null; - this.source = null; - this.needsUpdate = true; - this.extra = {}; - this.dyno = new DynoPackedSplats({ packedSplats: this }); - this.dynoRgbMinMaxLnScaleMinMax = new DynoVec4({ - key: "rgbMinMaxLnScaleMinMax", - value: new THREE.Vector4(0, 1, LN_SCALE_MIN, LN_SCALE_MAX), - update: (value) => { - var _a2, _b2, _c, _d; - value.set( - ((_a2 = this.splatEncoding) == null ? void 0 : _a2.rgbMin) ?? 0, - ((_b2 = this.splatEncoding) == null ? void 0 : _b2.rgbMax) ?? 1, - ((_c = this.splatEncoding) == null ? void 0 : _c.lnScaleMin) ?? LN_SCALE_MIN, - ((_d = this.splatEncoding) == null ? void 0 : _d.lnScaleMax) ?? LN_SCALE_MAX - ); - return value; - } - }); - this.dynoNumSh = new DynoInt({ - key: "numSh", - value: 0, - update: () => { - return Math.min(this.getNumSh(), this.maxSh); - } - }); - this.dynoShMax = new DynoVec3({ - key: "shMax", - value: new THREE.Vector3(), - update: (value) => { - var _a2, _b2, _c; - value.set( - ((_a2 = this.splatEncoding) == null ? void 0 : _a2.sh1Max) ?? 1, - ((_b2 = this.splatEncoding) == null ? void 0 : _b2.sh2Max) ?? 1, - ((_c = this.splatEncoding) == null ? void 0 : _c.sh3Max) ?? 1 - ); - return value; - } + const current = this.current; + this.sortedCenter.copy(current.viewOrigin); + this.sortedDir.copy(current.viewDirection); + const { numSplats, maxSplats } = current; + const rows = Math.max(1, Math.ceil(maxSplats / 16384)); + const orderingMaxSplats = rows * 16384; + this.maxSplats = Math.max(this.maxSplats, orderingMaxSplats); + const ordering = new Uint32Array(this.maxSplats); + const readback = Readback.ensureBuffer(maxSplats, this.readback32); + this.readback32 = readback; + await this.readbackDepth({ + current, + renderer: this.renderer, + numSplats, + readback }); - this.initialized = Promise.resolve(this); - this.reinitialize(options); - } - reinitialize(options) { - this.isInitialized = false; - this.extra = {}; - this.maxSplats = options.maxSplats ?? 0; - this.splatEncoding = options.splatEncoding; - this.lod = options.lod; - this.nonLod = options.nonLod; - if (options.url || options.fileBytes || options.stream || options.construct) { - this.initialized = this.asyncInitialize(options).then(() => { - this.isInitialized = true; - return this; - }); - } else { - this.initialize(options); - this.isInitialized = true; - this.initialized = Promise.resolve(this); + if (this.sortPause > 0) { + await new Promise((resolve) => setTimeout(resolve, this.sortPause)); } - } - initialize(options) { - this.extra = options.extra ?? {}; - this.splatEncoding = options.splatEncoding ?? this.splatEncoding; - this.lodSplats = options.lodSplats; - if (options.packedArray) { - this.packedArray = options.packedArray; - this.numSplats = options.numSplats ?? this.packedArray.length / 4; - this.maxSplats = Math.floor(this.packedArray.length / 4); - this.maxSplats = Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - this.numSplats = Math.min( - this.maxSplats, - options.numSplats ?? Number.POSITIVE_INFINITY - ); - } else { - this.maxSplats = options.maxSplats ?? 0; - this.numSplats = 0; + if (!this.sortWorker) { + this.sortWorker = new SplatWorker(); } - } - async asyncInitialize(options) { - const { - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - construct, - lod, - nonLod, - lodAbove - } = options; - this.lod = lod; - this.nonLod = nonLod; - const loader = new SplatLoader(); - if (fileBytes || url || stream) { - await loader.loadInternalAsync({ - packedSplats: this, - url, - fileBytes, - fileType, - fileName, - stream, - streamLength, - onProgress: options.onProgress, - lodAbove - }); + const result = await this.sortWorker.call("sortSplats32", { + numSplats, + readback, + ordering + }); + if (this.sortDelay > 0) { + await new Promise((resolve) => setTimeout(resolve, this.sortDelay)); } - if (construct) { - const maybePromise = construct(this); - if (maybePromise instanceof Promise) { - await maybePromise; + this.readback32 = result.readback; + this.activeSplats = result.activeSplats; + if (this.orderingTexture) { + if (rows > this.orderingTexture.image.height) { + this.orderingTexture.dispose(); + this.orderingTexture = null; } } - } - // Call this when you are finished with the PackedSplats and want to free - // any buffers it holds. - dispose() { - if (this.target) { - this.target.dispose(); - this.target.texture.source.data = null; - this.target = null; - } - if (this.source) { - this.source.dispose(); - this.source.source.data = null; - this.source = null; + if (!this.orderingTexture) { + const orderingTexture = new THREE.DataTexture( + result.ordering, + 4096, + rows, + THREE.RGBAIntegerFormat, + THREE.UnsignedIntType + ); + orderingTexture.internalFormat = "RGBA32UI"; + orderingTexture.needsUpdate = true; + this.orderingTexture = orderingTexture; + } else { + const renderer = this.renderer; + if (!renderer.properties.has(this.orderingTexture)) { + this.orderingTexture.needsUpdate = true; + } else { + uploadU32DataTextureRows( + renderer, + this.orderingTexture, + 4096, + rows, + result.ordering + ); + } } - this.packedArray = null; - for (const key in this.extra) { - const dyno2 = this.extra[key]; - if (dyno2 instanceof DynoUniform) { - const texture2 = dyno2.value; - if (texture2 == null ? void 0 : texture2.isTexture) { - texture2.dispose(); - texture2.source.data = null; - } + if (this.current.mappingVersion === current.mappingVersion) { + if (this.current.mappingVersion !== this.display.mappingVersion) { + this.accumulators.push(this.display); + this.display = this.current; } } - this.extra = {}; - this.disposeLodSplats(); - } - prepareFetchSplat() { - } - getNumSplats() { - return this.numSplats; - } - hasRgbDir() { - return Math.min(this.getNumSh(), this.maxSh) > 0; + this.sorting = false; + this.setDirty(); + this.driveSort(); } - getNumSh() { - return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3 ? 2 : 3; + ensureLodWorker() { + if (!this.lodWorker) { + this.lodWorker = new SplatWorker(); + } + return this.lodWorker; } - setMaxSh(maxSh) { - this.maxSh = maxSh; + defaultSplatTarget() { + return isOculus() ? 5e5 : isVisionPro() ? 75e4 : isAndroid() ? 1e6 : isIos() ? 15e5 : 25e5; } - fetchSplat({ - index, - viewOrigin + driveLod({ + visibleGenerators, + camera, + scene }) { - let gsplat = readPackedSplat(this.dyno, index); - if (this.hasRgbDir() && viewOrigin) { - const splatCenter = splitGsplat(gsplat).outputs.center; - const viewDir = normalize(sub(splatCenter, viewOrigin)); - const { sh1Texture, sh2Texture, sh3Texture } = this.ensureShTextures(); - let { rgb } = evaluatePackedSH({ - coord: splatTexCoord(index), - viewDir, - numSh: this.dynoNumSh, - sh1Texture, - sh2Texture, - sh3Texture, - shMax: this.dynoShMax - }); - rgb = add(rgb, splitGsplat(gsplat).outputs.rgb); - gsplat = combineGsplat({ gsplat, rgb }); - } - return gsplat; - } - ensureShTextures() { - if (!this.extra.sh1) { - return {}; - } - let sh1Texture = this.extra.sh1Texture; - if (!sh1Texture) { - let sh1 = this.extra.sh1; - const { width, height, depth, maxSplats } = getTextureSize( - sh1.length / 2 - ); - if (sh1.length < maxSplats * 2) { - const newSh1 = new Uint32Array(maxSplats * 2); - newSh1.set(sh1); - this.extra.sh1 = newSh1; - sh1 = newSh1; - } - const texture2 = new THREE.DataArrayTexture(sh1, width, height, depth); - texture2.format = THREE.RGIntegerFormat; - texture2.type = THREE.UnsignedIntType; - texture2.internalFormat = "RG32UI"; - texture2.needsUpdate = true; - sh1Texture = new DynoUsampler2DArray({ - value: texture2, - key: "sh1" - }); - this.extra.sh1Texture = sh1Texture; - } - if (!this.extra.sh2) { - return { sh1Texture }; + var _a2, _b2; + const defaultSplatCount = this.defaultSplatTarget(); + const splatCount = this.lodSplatCount ?? defaultSplatCount; + const maxSplats = splatCount * this.lodSplatScale; + let pixelScaleLimit = 0; + if (camera instanceof THREE.PerspectiveCamera) { + const tanYfov = Math.tan(0.5 * camera.fov * Math.PI / 180); + pixelScaleLimit = 2 * tanYfov / this.renderSize.y; + } else if (camera instanceof THREE.OrthographicCamera) { + const viewHeight = (camera.top - camera.bottom) / camera.zoom; + const viewWidth = (camera.right - camera.left) / camera.zoom; + const pxY = viewHeight / Math.max(1, this.renderSize.y); + const pxX = viewWidth / Math.max(1, this.renderSize.x); + pixelScaleLimit = Math.min(pxX, pxY); } - let sh2Texture = this.extra.sh2Texture; - if (!sh2Texture) { - let sh2 = this.extra.sh2; - const { width, height, depth, maxSplats } = getTextureSize( - sh2.length / 4 - ); - if (sh2.length < maxSplats * 4) { - const newSh2 = new Uint32Array(maxSplats * 4); - newSh2.set(sh2); - this.extra.sh2 = newSh2; - sh2 = newSh2; - } - const texture2 = new THREE.DataArrayTexture(sh2, width, height, depth); - texture2.format = THREE.RGBAIntegerFormat; - texture2.type = THREE.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - sh2Texture = new DynoUsampler2DArray({ - value: texture2, - key: "sh2" - }); - this.extra.sh2Texture = sh2Texture; + pixelScaleLimit *= this.lodRenderScale; + const viewPos = new THREE.Vector3(); + const viewQuat = new THREE.Quaternion(); + this.current.viewToWorld.decompose(viewPos, viewQuat, new THREE.Vector3()); + if (this.lodPosOverride) { + viewPos.copy(this.lodPosOverride); } - if (!this.extra.sh3) { - return { sh1Texture, sh2Texture }; + if (this.lodQuatOverride) { + viewQuat.copy(this.lodQuatOverride).normalize(); } - let sh3Texture = this.extra.sh3Texture; - if (!sh3Texture) { - let sh3 = this.extra.sh3; - const { width, height, depth, maxSplats } = getTextureSize( - sh3.length / 4 - ); - if (sh3.length < maxSplats * 4) { - const newSh3 = new Uint32Array(maxSplats * 4); - newSh3.set(sh3); - this.extra.sh3 = newSh3; - sh3 = newSh3; + if (this.lastLod) { + if (this.lastLod.pixelScaleLimit !== pixelScaleLimit || this.lastLod.maxSplats !== maxSplats) { + this.lodDirty = true; } - const texture2 = new THREE.DataArrayTexture(sh3, width, height, depth); - texture2.format = THREE.RGBAIntegerFormat; - texture2.type = THREE.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - sh3Texture = new DynoUsampler2DArray({ - value: texture2, - key: "sh3" - }); - this.extra.sh3Texture = sh3Texture; - } - return { sh1Texture, sh2Texture, sh3Texture }; - } - // Ensures that this.packedArray can fit numSplats Gsplats. If it's too small, - // resize exponentially and copy over the original data. - // - // Typically you don't need to call this, because calling this.setSplat(index, ...) - // and this.pushSplat(...) will automatically call ensureSplats() so we have - // enough splats. - ensureSplats(numSplats) { - const targetSize = numSplats <= this.maxSplats ? this.maxSplats : ( - // Grow exponentially to avoid frequent reallocations - Math.max(numSplats, 2 * this.maxSplats) - ); - const currentSize = !this.packedArray ? 0 : this.packedArray.length / 4; - if (!this.packedArray || targetSize > currentSize) { - this.maxSplats = getTextureSize(targetSize).maxSplats; - const newArray2 = new Uint32Array(this.maxSplats * 4); - if (this.packedArray) { - newArray2.set(this.packedArray); + const distance2 = viewPos.distanceTo(this.lastLod.pos); + const distanceRamp = Math.max(0, 1 - distance2 / 1); + const dot2 = viewQuat.dot(this.lastLod.quat); + const quatRamp = Math.max(0, 1 - (1 - dot2) / 0.01); + const similarity = distanceRamp * quatRamp; + if (similarity < 0.999) { + this.lodDirty = true; } - this.packedArray = newArray2; - } - return this.packedArray; - } - // Ensure the extra array for the given level is large enough to hold numSplats - ensureSplatsSh(level, numSplats) { - let wordsPerSplat; - let key; - if (level === 0) { - return this.ensureSplats(numSplats); } - if (level === 1) { - wordsPerSplat = 2; - key = "sh1"; - } else if (level === 2) { - wordsPerSplat = 4; - key = "sh2"; - } else if (level === 3) { - wordsPerSplat = 4; - key = "sh3"; + const lodMeshes = !this.enableLod ? [] : visibleGenerators.filter((generator) => { + var _a3, _b3; + return generator instanceof SplatMesh && (((_a3 = generator.packedSplats) == null ? void 0 : _a3.lodSplats) || ((_b3 = generator.extSplats) == null ? void 0 : _b3.lodSplats) || generator.paged) && generator.enableLod !== false; + }); + const hasPaged = lodMeshes.some((mesh) => mesh.paged); + if (this.lodMeshes.length !== lodMeshes.length) { + this.lodDirty = true; } else { - throw new Error(`Invalid level: ${level}`); + if (lodMeshes.some( + (m, i) => m !== this.lodMeshes[i].mesh || m.version > this.lodMeshes[i].version + )) { + this.lodDirty = true; + } } - let maxSplats = !this.extra[key] ? 0 : this.extra[key].length / wordsPerSplat; - const targetSize = numSplats <= maxSplats ? maxSplats : Math.max(numSplats, 2 * maxSplats); - if (!this.extra[key] || targetSize > maxSplats) { - maxSplats = getTextureSize(targetSize).maxSplats; - const newArray2 = new Uint32Array(maxSplats * wordsPerSplat); - if (this.extra[key]) { - newArray2.set(this.extra[key]); + this.lodMeshes = lodMeshes.map((mesh) => ({ + mesh, + version: mesh.version + 1 + })); + this.lodInitQueue = []; + const now = performance.now(); + for (const mesh of lodMeshes) { + const splats = ((_a2 = mesh.packedSplats) == null ? void 0 : _a2.lodSplats) ?? ((_b2 = mesh.extSplats) == null ? void 0 : _b2.lodSplats) ?? mesh.paged; + if (splats) { + const record = this.lodIds.get(splats); + if (record) { + record.lastTouched = now; + } else { + this.lodInitQueue.push(splats); + } } - this.extra[key] = newArray2; } - return this.extra[key]; + this.ensureLodWorker().tryExclusive(async (worker) => { + if (hasPaged && !this.pager) { + this.pager = new SplatPager({ + renderer: this.renderer, + extSplats: this.pagedExtSplats, + maxSplats: this.maxPagedSplats, + numFetchers: this.numLodFetchers + }); + const { lodId } = await worker.call("newLodTree", { + capacity: this.pager.maxSplats + }); + this.pagerId = lodId; + } + if (this.pager) { + for (const { mesh } of this.lodMeshes) { + if (mesh.paged && !mesh.paged.pager) { + mesh.paged.pager = this.pager; + } + } + } + if (this.lodInitQueue.length > 0) { + const lodInitQueue = this.lodInitQueue; + this.lodInitQueue = []; + while (lodInitQueue.length > 0) { + const splats = lodInitQueue.shift(); + if (splats) { + await this.initLodTree(worker, splats); + this.lodDirty = true; + } + } + } + if (this.pager) { + const updates = this.pager.consumeLodTreeUpdates(); + for (const { splats, page, chunk, numSplats, lodTree } of updates) { + const record = this.lodIds.get(splats); + if (record) { + if (lodTree && chunk === 0) { + record.rootPage = page; + } + this.lodUpdates.push({ + lodId: record.lodId, + pageBase: page * this.pager.pageSplats, + chunkBase: chunk * this.pager.pageSplats, + count: numSplats, + lodTreeData: lodTree + }); + } + } + } + if (this.lodUpdates.length > 0) { + const lodUpdates = this.lodUpdates; + this.lodUpdates = []; + await worker.call("updateLodTrees", { ranges: lodUpdates }); + this.lodDirty = true; + } + if (this.lodDirty) { + const now2 = performance.now(); + const deltaPred = new THREE.Vector3(); + if (this.lastLod) { + const deltaTime = Math.max(1, now2 - this.lastLod.timestamp); + deltaPred.copy(viewPos).sub(this.lastLod.pos).multiplyScalar(this.lastTraverseTime / deltaTime); + } + this.lastLod = { + pos: viewPos, + quat: viewQuat, + pixelScaleLimit, + maxSplats, + timestamp: now2 + }; + this.lodDirty = false; + await this.updateLodInstances( + worker, + deltaPred, + lodMeshes, + maxSplats, + viewPos, + viewQuat, + pixelScaleLimit + ); + this.currentLod = this.lastLod; + this.setDirty(); + } + await this.cleanupLodTrees(worker); + }); } - // Unpack the 16-byte Gsplat data at index into the Three.js components - // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, - // opacity: number 0..1, color: THREE.Color 0..1. - getSplat(index) { - if (!this.packedArray || index >= this.numSplats) { - throw new Error("Invalid index"); + async initLodTree(worker, splats) { + if (splats instanceof PackedSplats || splats instanceof ExtSplats) { + const { lodId } = await worker.call("initLodTree", { + numSplats: splats.numSplats ?? 0, + lodTree: splats.extra.lodTree.slice() + }); + this.lodIds.set(splats, { lodId, lastTouched: performance.now() }); + this.lodIdToSplats.set(lodId, splats); + } else { + const { lodId } = await worker.call("newSharedLodTree", { + lodId: this.pagerId + }); + this.lodIds.set(splats, { lodId, lastTouched: performance.now() }); + this.lodIdToSplats.set(lodId, splats); } - return unpackSplat(this.packedArray, index, this.splatEncoding); } - // Set all PackedSplat components at index with the provided Gsplat attributes - // (can be the same objects returned by getSplat). Ensures there is capacity - // for at least index+1 Gsplats. - setSplat(index, center, scales, quaternion, opacity, color) { - const packedSplats = this.ensureSplats(index + 1); - setPackedSplat( - packedSplats, - index, - center.x, - center.y, - center.z, - scales.x, - scales.y, - scales.z, - quaternion.x, - quaternion.y, - quaternion.z, - quaternion.w, - opacity, - color.r, - color.g, - color.b + async updateLodInstances(worker, deltaPred, lodMeshes, maxSplats, viewPos, viewQuat, pixelScaleLimit) { + const uuidToMesh = /* @__PURE__ */ new Map(); + const cameraToWorld = new THREE.Matrix4().compose( + viewPos, + viewQuat, + new THREE.Vector3().setScalar(1) ); - this.numSplats = Math.max(this.numSplats, index + 1); - } - // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on - // construction where you just want to iterate and create a collection of Gsplats. - pushSplat(center, scales, quaternion, opacity, color) { - const packedSplats = this.ensureSplats(this.numSplats + 1); - setPackedSplat( - packedSplats, - this.numSplats, - center.x, - center.y, - center.z, - scales.x, - scales.y, - scales.z, - quaternion.x, - quaternion.y, - quaternion.z, - quaternion.w, - opacity, - color.r, - color.g, - color.b + const instances = lodMeshes.reduce( + (instances2, mesh) => { + var _a2, _b2; + uuidToMesh.set(mesh.uuid, mesh); + const viewToObject = mesh.matrixWorld.clone().invert().multiply(cameraToWorld); + const splats = ((_a2 = mesh.packedSplats) == null ? void 0 : _a2.lodSplats) ?? ((_b2 = mesh.extSplats) == null ? void 0 : _b2.lodSplats) ?? mesh.paged; + if (!splats) { + return instances2; + } + const record = this.lodIds.get(splats); + if (!record) { + return instances2; + } + if (this.pager && mesh.paged && record.rootPage === void 0) { + return instances2; + } + instances2[mesh.uuid] = { + instanceId: mesh.uuid, + lodId: record.lodId, + rootPage: record.rootPage, + viewToObjectCols: viewToObject.elements, + lodScale: mesh.lodScale, + behindFoveate: mesh.behindFoveate ?? this.behindFoveate, + coneFov0: mesh.coneFov0 ?? this.coneFov0, + coneFov: mesh.coneFov ?? this.coneFov, + coneFoveate: mesh.coneFoveate ?? this.coneFoveate + }; + return instances2; + }, + {} ); - ++this.numSplats; - } - // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat - // and invoke the callback function with the Gsplat attributes. - forEachSplat(callback) { - if (!this.packedArray || !this.numSplats) { - return; + const traverseStart = performance.now(); + const result = await worker.call("traverseLodTrees", { + maxSplats, + pixelScaleLimit, + lastPixelLimit: this.lastPixelLimit, + instances, + traverseMode: this.lodTraverseMode + }); + this.lastTraverseTime = performance.now() - traverseStart; + const { keyIndices, chunks, pixelLimit } = result; + this.lastPixelLimit = pixelLimit; + const totalLodSplats = Object.values(keyIndices).reduce( + (sum, { numSplats }) => sum + numSplats, + 0 + ); + this.updateLodIndices(uuidToMesh, keyIndices); + if (this.pager) { + this.pager.processUploads(); + const pagedMeshes = lodMeshes.map((mesh) => { + if (!mesh.paged || !this.pager) { + return null; + } + const meshPosition = mesh.getWorldPosition(new THREE.Vector3()); + return { + splats: mesh.paged, + distance: meshPosition.distanceTo(viewPos) + }; + }).filter((result2) => result2 !== null); + if (!this.pageSizeWarning && pagedMeshes.length > this.pager.maxPages) { + this.pageSizeWarning = true; + console.warn( + `# paged SplatMeshes exceeds maxPages: ${pagedMeshes.length} > ${this.pager.maxPages}` + ); + } + pagedMeshes.sort((a, b) => a.distance - b.distance); + this.pager.fetchPriority = pagedMeshes.map(({ splats }) => ({ + splats, + chunk: 0 + })); + for (const [lodId, chunk] of chunks) { + const splats = this.lodIdToSplats.get(lodId); + if (splats instanceof PagedSplats) { + if (chunk !== 0) { + this.pager.fetchPriority.push({ splats, chunk }); + } + } + } + this.pager.autoDrive = this.enableLodFetching; + if (this.enableLodFetching) { + this.pager.driveFetchers(); + } } - for (let i = 0; i < this.numSplats; ++i) { - const unpacked = unpackSplat(this.packedArray, i, this.splatEncoding); - callback( - i, - unpacked.center, - unpacked.scales, - unpacked.quaternion, - unpacked.opacity, - unpacked.color + if (this.lodRaycast && performance.now() - this.lastLodRaycastTime >= this.lodRaycastIntervalMs) { + this.lastLodRaycastTime = performance.now(); + const traverseStart2 = performance.now(); + const result2 = await worker.call("traverseLodTrees", { + maxSplats: Math.min(this.lodRaycast, Math.round(totalLodSplats * 0.1)), + pixelScaleLimit, + instances + }); + performance.now() - traverseStart2; + const { keyIndices: keyIndices2 } = result2; + Object.values(keyIndices2).reduce( + (sum, { numSplats }) => sum + numSplats, + 0 ); + for (const [uuid, countIndices] of Object.entries(keyIndices2)) { + const mesh = uuidToMesh.get(uuid); + mesh.raycastIndices = countIndices; + } } } - // Ensures our PackedSplats.target render target has enough space to generate - // maxSplats total Gsplats, and reallocate if not large enough. - ensureGenerate(maxSplats) { - if (this.target && (maxSplats ?? 1) <= this.maxSplats) { - return false; + async cleanupLodTrees(worker) { + var _a2; + const DISPOSE_TIMEOUT_MS = 3e3; + const now = performance.now(); + let oldest = null; + for (const [splats, record] of this.lodIds.entries()) { + if (oldest == null || record.lastTouched < oldest.lastTouched) { + oldest = { + splats, + lastTouched: record.lastTouched, + lodId: record.lodId + }; + } } - if (this.target) { - this.target.dispose(); + if (!oldest || oldest.lastTouched > now - DISPOSE_TIMEOUT_MS) { + return; } - const textureSize2 = getTextureSize(maxSplats ?? 1); - const { width, height, depth } = textureSize2; - this.maxSplats = textureSize2.maxSplats; - this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, { - depthBuffer: false, - stencilBuffer: false, - generateMipmaps: false, - magFilter: THREE.NearestFilter, - minFilter: THREE.NearestFilter - }); - this.target.texture.format = THREE.RGBAIntegerFormat; - this.target.texture.type = THREE.UnsignedIntType; - this.target.texture.internalFormat = "RGBA32UI"; - this.target.scissorTest = true; - return true; - } - // Given an array of splatCounts (.numSplats for each - // SplatGenerator/SplatMesh in the scene), compute a - // "mapping layout" in the composite array of generated outputs. - generateMapping(splatCounts) { - let maxSplats = 0; - const mapping = splatCounts.map((numSplats) => { - const base = maxSplats; - const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - maxSplats += rounded; - return { base, count: numSplats }; - }); - return { maxSplats, mapping }; - } - // Returns a THREE.DataArrayTexture representing the PackedSplats content as - // a Uint32x4 data array texture (2048 x 2048 x depth in size) - getTexture() { - if (this.target) { - return this.target.texture; + this.lodIds.delete(oldest.splats); + this.lodIdToSplats.delete(oldest.lodId); + for (const [mesh, instance] of this.lodInstances.entries()) { + if (instance.lodId === oldest.lodId) { + instance.texture.dispose(); + this.lodInstances.delete(mesh); + } } - if (this.source || this.packedArray) { - const source = this.maybeUpdateSource(); - return source; + if (oldest.splats instanceof PagedSplats) { + (_a2 = this.pager) == null ? void 0 : _a2.removeSplats(oldest.splats); } - return _PackedSplats.getEmptyArray; + await worker.call("disposeLodTree", { lodId: oldest.lodId }); } - // Check if source texture needs to be created/updated - maybeUpdateSource() { - if (!this.packedArray) { - throw new Error("No packed splats"); - } - if (this.needsUpdate || !this.source) { - this.needsUpdate = false; - if (this.source) { - const { width, height, depth } = this.source.image; - if (this.maxSplats !== width * height * depth) { - this.source.dispose(); - this.source = null; + updateLodIndices(uuidToMesh, keyIndices) { + for (const [uuid, countIndices] of Object.entries(keyIndices)) { + const { lodId, numSplats, indices } = countIndices; + const mesh = uuidToMesh.get(uuid); + if (mesh.paged) { + mesh.paged.update(numSplats, indices); + } else { + let instance = this.lodInstances.get(mesh); + if (instance) { + if (indices.length > instance.indices.length) { + instance.texture.dispose(); + instance = void 0; + } + } + const rows = Math.ceil(indices.length / 16384); + if (!instance) { + const capacity = rows * 16384; + if (indices.length !== capacity) { + throw new Error("Indices length != capacity"); + } + const texture2 = new THREE.DataTexture( + indices, + 4096, + rows, + THREE.RGBAIntegerFormat, + THREE.UnsignedIntType + ); + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + instance = { lodId, numSplats, indices, texture: texture2 }; + this.lodInstances.set(mesh, instance); + } else { + instance.numSplats = numSplats; + const renderer = this.renderer; + const gl = renderer.getContext(); + if (renderer.properties.has(instance.texture)) { + const props = renderer.properties.get(instance.texture); + const glTexture = props.__webglTexture; + if (!glTexture) { + throw new Error("lodIndices texture not found"); + } + renderer.state.activeTexture(gl.TEXTURE0); + renderer.state.bindTexture(gl.TEXTURE_2D, glTexture); + gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null); + gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false); + gl.texSubImage2D( + gl.TEXTURE_2D, + 0, + 0, + 0, + 4096, + rows, + gl.RGBA_INTEGER, + gl.UNSIGNED_INT, + indices + ); + renderer.state.bindTexture(gl.TEXTURE_2D, null); + } } } - if (!this.source) { - const { width, height, depth } = getTextureSize(this.maxSplats); - this.source = new THREE.DataArrayTexture( - this.packedArray, - width, - height, - depth - ); - this.source.format = THREE.RGBAIntegerFormat; - this.source.type = THREE.UnsignedIntType; - this.source.internalFormat = "RGBA32UI"; - this.source.needsUpdate = true; - } else if (this.packedArray.buffer !== this.source.image.data.buffer) { - this.source.image.data = new Uint8Array(this.packedArray.buffer); - } - this.source.needsUpdate = true; + mesh.updateMappingVersion(); } - return this.source; } - // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator, - // generating it if necessary and caching the result. - prepareProgramMaterial(generator) { - let program = _PackedSplats.generatorProgram.get(generator); - if (!program) { - const graph = dynoBlock( - { index: "int" }, - {}, - ({ index }, _outputs, { roots }) => { - generator.inputs.index = index; - const gsplat = generator.outputs.gsplat; - const output = outputPackedSplat( - gsplat, - this.dynoRgbMinMaxLnScaleMinMax - ); - roots.push(output); - return void 0; - } + async readbackDepth({ + current, + renderer, + numSplats, + readback + }) { + if (!renderer) { + throw new Error("No renderer"); + } + if (!current.target) { + throw new Error("No target"); + } + const roundedCount = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; + if (readback.byteLength < roundedCount * 4) { + throw new Error( + `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}` + ); + } + const readbackUint8 = new Uint8Array(readback.buffer); + const renderState = this.saveRenderState(renderer); + const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT; + let baseIndex = 0; + const promises = []; + while (baseIndex < numSplats) { + const layer = Math.floor(baseIndex / layerSize); + const layerBase = layer * layerSize; + const layerYEnd = Math.min( + SPLAT_TEX_HEIGHT, + Math.ceil((numSplats - layerBase) / SPLAT_TEX_WIDTH) + ); + const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4; + const subReadback = readbackUint8.subarray( + layerBase * 4, + layerBase * 4 + readbackSize + ); + renderer.setRenderTarget(current.target, layer); + const promise = renderer.readRenderTargetPixelsAsync( + current.target, + 0, + 0, + SPLAT_TEX_WIDTH, + layerYEnd, + subReadback, + void 0, + current.extSplats ? 2 : 1 ); - if (!_PackedSplats.programTemplate) { - _PackedSplats.programTemplate = new DynoProgramTemplate( - getShaders().computeUvec4Template - ); + promises.push(promise); + if (this.flushAfterRead) { + const gl = renderer.getContext(); + gl.flush(); } - program = new DynoProgram({ - graph, - inputs: { index: "_index" }, - outputs: { output: "target" }, - template: _PackedSplats.programTemplate - }); - Object.assign(program.uniforms, { - targetLayer: { value: 0 }, - targetBase: { value: 0 }, - targetCount: { value: 0 } - }); - _PackedSplats.generatorProgram.set(generator, program); + baseIndex += SPLAT_TEX_WIDTH * layerYEnd; } - const material = program.prepareMaterial(); - _PackedSplats.fullScreenQuad.material = material; - return { program, material }; + this.resetRenderState(renderer, renderState); + return Promise.all(promises).then(() => readback); } saveRenderState(renderer) { return { @@ -14722,1681 +14248,1036 @@ const _PackedSplats = class _PackedSplats { renderer.xr.enabled = state.xrEnabled; renderer.autoClear = state.autoClear; } - // Executes a dyno program specified by generator which is any DynoBlock that - // maps { index: "int" } to { gsplat: Gsplat }. This is called in - // SparkRenderer.updateInternal() to re-generate Gsplats in the scene for - // SplatGenerator instances whose version is newer than what was generated - // for it last time. - generate({ - generator, - base, - count, - renderer - }) { - if (!this.target) { - throw new Error("Target must be initialized with ensureSplats"); - } - if (base + count > this.maxSplats) { - throw new Error("Base + count exceeds maxSplats"); - } - const { program, material } = this.prepareProgramMaterial(generator); - program.update(); - const renderState = this.saveRenderState(renderer); - const nextBase = Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH; - const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT; - material.uniforms.targetBase.value = base; - material.uniforms.targetCount.value = count; - while (base < nextBase) { - const layer = Math.floor(base / layerSize); - material.uniforms.targetLayer.value = layer; - const layerBase = layer * layerSize; - const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH); - const layerYEnd = Math.min( - SPLAT_TEX_HEIGHT, - Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH) - ); - this.target.scissor.set( - 0, - layerYStart, - SPLAT_TEX_WIDTH, - layerYEnd - layerYStart - ); - renderer.setRenderTarget(this.target, layer); - renderer.xr.enabled = false; - renderer.autoClear = false; - _PackedSplats.fullScreenQuad.render(renderer); - base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart); + render(scene, camera) { + try { + _SparkRenderer.sparkOverride = this; + this.renderer.render(scene, camera); + } finally { + _SparkRenderer.sparkOverride = void 0; } - this.resetRenderState(renderer, renderState); - return { nextBase }; } - disposeLodSplats() { - if (this.lodSplats) { - this.lodSplats.dispose(); - this.lodSplats = void 0; + renderTarget({ + scene, + camera + }) { + const target = this.backTarget ?? this.target; + if (!target) { + throw new Error("No target"); } - } - async createLodSplats({ - rgbaArray, - quality - } = {}) { - const lodBase = typeof this.lod === "number" ? Math.max(1.1, Math.min(2, this.lod)) : quality ? 1.75 : 1.5; - const packedArray = this.packedArray.slice(); - const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : void 0; - const extra = { - sh1: this.extra.sh1 ? this.extra.sh1.slice() : void 0, - sh2: this.extra.sh2 ? this.extra.sh2.slice() : void 0, - sh3: this.extra.sh3 ? this.extra.sh3.slice() : void 0 - }; - const decoded = await workerPool.withWorker(async (worker) => { - return await worker.call( - quality ? "qualityLodPackedSplats" : "tinyLodPackedSplats", - { - numSplats: this.numSplats, - packedArray, - extra, - lodBase, - rgba, - encoding: this.splatEncoding ?? DEFAULT_SPLAT_ENCODING - } - ); - }); - const lodSplats = new _PackedSplats(decoded); - if (this.lodSplats) { - this.lodSplats.dispose(); + const previousTarget = this.renderer.getRenderTarget(); + try { + this.renderer.setRenderTarget(target); + _SparkRenderer.sparkOverride = this; + this.renderer.render(scene, camera); + } finally { + _SparkRenderer.sparkOverride = void 0; + this.renderer.setRenderTarget(previousTarget); } - this.lodSplats = lodSplats; - this.nonLod = true; - this.lod = quality ? "quality" : true; - } - extractSplats(indices, pageColoring) { - const maxSplats = getTextureSize(indices.length).maxSplats; - const newSplats = new _PackedSplats({ maxSplats }); - for (let i = 0; i < indices.length; i++) { - const splat = this.getSplat(indices[i]); - if (pageColoring) { - let hue = (indices[i] >>> 16) * 0.61803398875; - hue = hue - Math.floor(hue); - const r = Math.max(0, Math.min(1, Math.abs(hue * 6 - 3) - 1)); - const g = Math.max(0, Math.min(1, Math.abs(hue * 6 + 1) - 1)); - const b = Math.max(0, Math.min(1, Math.abs(hue * 6 - 1) - 1)); - splat.color.r *= r; - splat.color.g *= g; - splat.color.b *= b; - } - newSplats.pushSplat( - splat.center, - splat.scales, - splat.quaternion, - splat.opacity, - splat.color - ); + if (target !== this.target) { + [this.target, this.backTarget] = [this.backTarget, this.target]; } - return newSplats; + return target; } -}; -_PackedSplats.getEmptyArray = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 4); - const texture2 = new THREE.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE.RGBAIntegerFormat; - texture2.type = THREE.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_PackedSplats.programTemplate = null; -_PackedSplats.generatorProgram = /* @__PURE__ */ new WeakMap(); -_PackedSplats.fullScreenQuad = new FullScreenQuad( - new THREE.RawShaderMaterial({ visible: false }) -); -_PackedSplats.emptyUint32x4 = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 4); - const texture2 = new THREE.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE.RGBAIntegerFormat; - texture2.type = THREE.UnsignedIntType; - texture2.internalFormat = "RGBA32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -_PackedSplats.emptyUint32x2 = (() => { - const { width, height, depth, maxSplats } = getTextureSize(1); - const emptyArray = new Uint32Array(maxSplats * 2); - const texture2 = new THREE.DataArrayTexture( - emptyArray, - width, - height, - depth - ); - texture2.format = THREE.RGIntegerFormat; - texture2.type = THREE.UnsignedIntType; - texture2.internalFormat = "RG32UI"; - texture2.needsUpdate = true; - return texture2; -})(); -let PackedSplats = _PackedSplats; -class DynoPackedSplats extends DynoUniform { - constructor({ packedSplats } = {}) { - super({ - key: "packedSplats", - type: TPackedSplats, - globals: () => [definePackedSplats], - value: { - textureArray: PackedSplats.getEmptyArray, - numSplats: 0, - rgbMinMaxLnScaleMinMax: new THREE.Vector4( - 0, - 1, - LN_SCALE_MIN, - LN_SCALE_MAX - ), - lodOpacity: false - }, - update: (value) => { - var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l; - value.textureArray = ((_a2 = this.packedSplats) == null ? void 0 : _a2.getTexture()) ?? PackedSplats.getEmptyArray; - value.numSplats = ((_b2 = this.packedSplats) == null ? void 0 : _b2.numSplats) ?? 0; - value.rgbMinMaxLnScaleMinMax.set( - ((_d = (_c = this.packedSplats) == null ? void 0 : _c.splatEncoding) == null ? void 0 : _d.rgbMin) ?? 0, - ((_f = (_e = this.packedSplats) == null ? void 0 : _e.splatEncoding) == null ? void 0 : _f.rgbMax) ?? 1, - ((_h = (_g = this.packedSplats) == null ? void 0 : _g.splatEncoding) == null ? void 0 : _h.lnScaleMin) ?? LN_SCALE_MIN, - ((_j = (_i = this.packedSplats) == null ? void 0 : _i.splatEncoding) == null ? void 0 : _j.lnScaleMax) ?? LN_SCALE_MAX - ); - value.lodOpacity = ((_l = (_k = this.packedSplats) == null ? void 0 : _k.splatEncoding) == null ? void 0 : _l.lodOpacity) ?? false; - return value; + // Read back the previously rendered target image as a Uint8Array of packed + // RGBA values (in that order). Subsequent calls to this.readTarget() + // will reuse the same buffers to minimize memory allocations. + async readTarget() { + if (!this.target) { + throw new Error("Must initialize with target"); + } + const { width, height } = this.target; + const byteSize = width * height * 4; + if (!this.superPixels || this.superPixels.length < byteSize) { + this.superPixels = new Uint8Array(byteSize); + } + const superPixels = this.superPixels; + await this.renderer.readRenderTargetPixelsAsync( + this.target, + 0, + 0, + width, + height, + superPixels + ); + const { superXY } = this; + if (superXY === 1) { + return superPixels; + } + const subWidth = width / superXY; + const subHeight = height / superXY; + const subSize = subWidth * subHeight * 4; + if (!this.targetPixels || this.targetPixels.length < subSize) { + this.targetPixels = new Uint8Array(subSize); + } + const targetPixels = this.targetPixels; + const super2 = superXY * superXY; + for (let y = 0; y < subHeight; y++) { + const row = y * subWidth; + for (let x = 0; x < subWidth; x++) { + const superCol = x * superXY; + let r = 0; + let g = 0; + let b = 0; + let a = 0; + for (let sy = 0; sy < superXY; sy++) { + const superRow = (y * superXY + sy) * width; + for (let sx = 0; sx < superXY; sx++) { + const superIndex = (superRow + superCol + sx) * 4; + r += superPixels[superIndex]; + g += superPixels[superIndex + 1]; + b += superPixels[superIndex + 2]; + a += superPixels[superIndex + 3]; + } + } + const pixelIndex = (row + x) * 4; + targetPixels[pixelIndex] = r / super2; + targetPixels[pixelIndex + 1] = g / super2; + targetPixels[pixelIndex + 2] = b / super2; + targetPixels[pixelIndex + 3] = a / super2; } - }); - this.packedSplats = packedSplats; + } + return targetPixels; } -} -const defineEvalPackedSH1 = unindent(` - vec3 evaluatePackedSH1(uvec2 packedData, vec3 viewDir, float sh1Max) { - // Extract sint7 values packed into 2 x uint32 - vec3 sh1_0 = vec3(ivec3( - int(packedData.x << 25u) >> 25, - int(packedData.x << 18u) >> 25, - int(packedData.x << 11u) >> 25 - )); - vec3 sh1_1 = vec3(ivec3( - int(packedData.x << 4u) >> 25, - int((packedData.x >> 3u) | (packedData.y << 29u)) >> 25, - int(packedData.y << 22u) >> 25 - )); - vec3 sh1_2 = vec3(ivec3( - int(packedData.y << 15u) >> 25, - int(packedData.y << 8u) >> 25, - int(packedData.y << 1u) >> 25 - )); - - vec3 rgb = sh1_0 * (-0.4886025 * viewDir.y) - + sh1_1 * (0.4886025 * viewDir.z) - + sh1_2 * (-0.4886025 * viewDir.x); - return rgb * (sh1Max / 63.0); + async renderReadTarget({ + scene, + camera + }) { + this.renderTarget({ scene, camera }); + return this.readTarget(); } -`); -const defineEvalPackedSH2 = unindent(` - vec3 evaluatePackedSH2(uvec4 packedData, vec3 viewDir, float sh2Max) { - // Extract sint8 values packed into 4 x uint32 - vec3 sh2_0 = vec3(ivec3( - int(packedData.x << 24u) >> 24, - int(packedData.x << 16u) >> 24, - int(packedData.x << 8u) >> 24 - )); - vec3 sh2_1 = vec3(ivec3( - int(packedData.x) >> 24, - int(packedData.y << 24u) >> 24, - int(packedData.y << 16u) >> 24 - )); - vec3 sh2_2 = vec3(ivec3( - int(packedData.y << 8u) >> 24, - int(packedData.y) >> 24, - int(packedData.z << 24u) >> 24 - )); - vec3 sh2_3 = vec3(ivec3( - int(packedData.z << 16u) >> 24, - int(packedData.z << 8u) >> 24, - int(packedData.z) >> 24 - )); - vec3 sh2_4 = vec3(ivec3( - int(packedData.w << 24u) >> 24, - int(packedData.w << 16u) >> 24, - int(packedData.w << 8u) >> 24 - )); - - vec3 rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y) - + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z) - + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y)) - + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z) - + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y)); - return rgb * (sh2Max / 127.0); + // Renders out the scene to a cube map that can be used for + // Image-based lighting or similar applications. First optionally updates Gsplats, + // sorts them with respect to the provided worldCenter, renders 6 cube faces. + async renderCubeMap({ + scene, + worldCenter, + size = 256, + near = 0.1, + far = 1e3, + hideObjects = [], + update = true, + filter = false + }) { + if (!_SparkRenderer.cubeRender || _SparkRenderer.cubeRender.target.width !== size || _SparkRenderer.cubeRender.near !== near || _SparkRenderer.cubeRender.far !== far) { + if (_SparkRenderer.cubeRender) { + _SparkRenderer.cubeRender.target.dispose(); + } + const target2 = new THREE.WebGLCubeRenderTarget(size, { + format: THREE.RGBAFormat, + type: THREE.UnsignedByteType, + generateMipmaps: filter, + minFilter: filter ? THREE.LinearMipMapLinearFilter : THREE.LinearFilter, + magFilter: THREE.LinearFilter, + colorSpace: filter ? THREE.LinearSRGBColorSpace : THREE.SRGBColorSpace + }); + const cubeCamera2 = new THREE.CubeCamera(near, far, target2); + _SparkRenderer.cubeRender = { target: target2, cubeCamera: cubeCamera2, near, far }; + } + const { target, cubeCamera } = _SparkRenderer.cubeRender; + cubeCamera.position.copy(worldCenter); + const objectVisibility = /* @__PURE__ */ new Map(); + for (const object of hideObjects) { + objectVisibility.set(object, object.visible); + object.visible = false; + } + if (update) { + const tempCamera = new THREE.Camera(); + tempCamera.position.copy(worldCenter); + await this.update({ scene, camera: tempCamera }); + } + try { + _SparkRenderer.sparkOverride = this; + cubeCamera.update(this.renderer, scene); + } finally { + _SparkRenderer.sparkOverride = void 0; + } + for (const [object, visible] of objectVisibility.entries()) { + object.visible = visible; + } + return target.texture; } -`); -const defineEvalPackedSH3 = unindent(` - vec3 evaluatePackedSH3(uvec4 packedData, vec3 viewDir, float sh3Max) { - // Extract sint6 values packed into 4 x uint32 - vec3 sh3_0 = vec3(ivec3( - int(packedData.x << 26u) >> 26, - int(packedData.x << 20u) >> 26, - int(packedData.x << 14u) >> 26 - )); - vec3 sh3_1 = vec3(ivec3( - int(packedData.x << 8u) >> 26, - int(packedData.x << 2u) >> 26, - int((packedData.x >> 4u) | (packedData.y << 28u)) >> 26 - )); - vec3 sh3_2 = vec3(ivec3( - int(packedData.y << 22u) >> 26, - int(packedData.y << 16u) >> 26, - int(packedData.y << 10u) >> 26 - )); - vec3 sh3_3 = vec3(ivec3( - int(packedData.y << 4u) >> 26, - int((packedData.y >> 2u) | (packedData.z << 30u)) >> 26, - int(packedData.z << 24u) >> 26 - )); - vec3 sh3_4 = vec3(ivec3( - int(packedData.z << 18u) >> 26, - int(packedData.z << 12u) >> 26, - int(packedData.z << 6u) >> 26 - )); - vec3 sh3_5 = vec3(ivec3( - int(packedData.z) >> 26, - int(packedData.w << 26u) >> 26, - int(packedData.w << 20u) >> 26 - )); - vec3 sh3_6 = vec3(ivec3( - int(packedData.w << 14u) >> 26, - int(packedData.w << 8u) >> 26, - int(packedData.w << 2u) >> 26 - )); - - float xx = viewDir.x * viewDir.x; - float yy = viewDir.y * viewDir.y; - float zz = viewDir.z * viewDir.z; - float xy = viewDir.x * viewDir.y; - float yz = viewDir.y * viewDir.z; - float zx = viewDir.z * viewDir.x; - - vec3 rgb = sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy)) - + sh3_1 * (2.8906114 * xy * viewDir.z) + - + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy)) - + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) - + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy)) - + sh3_5 * (1.4453057 * viewDir.z * (xx - yy)) - + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy)); - return rgb * (sh3Max / 31.0); + async readCubeTargets() { + if (!_SparkRenderer.cubeRender) { + throw new Error("No cube render"); + } + const textures = _SparkRenderer.cubeRender.target.texture; + const promises = []; + const buffers = []; + for (let i = 0; i < textures.images.length; ++i) { + const { width, height } = textures.images[i]; + const byteSize = width * height * 4; + const readback = new Uint8Array(byteSize); + buffers.push(readback); + const promise = this.renderer.readRenderTargetPixelsAsync( + _SparkRenderer.cubeRender.target, + 0, + 0, + width, + height, + readback, + i + ); + promises.push(promise); + } + await Promise.all(promises); + return buffers; + } + // Renders out the scene to an environment map that can be used for + // Image-based lighting or similar applications. First optionally updates Gsplats, + // sorts them with respect to the provided worldCenter, renders 6 cube faces, + // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture + // that can assigned directly to a THREE.MeshStandardMaterial.envMap property. + async renderEnvMap({ + scene, + worldCenter, + size = 256, + near = 0.1, + far = 1e3, + hideObjects = [], + update = true + }) { + var _a2; + const cubeTexture = await this.renderCubeMap({ + scene, + worldCenter, + size, + near, + far, + hideObjects, + update, + filter: true + }); + if (!_SparkRenderer.pmrem) { + _SparkRenderer.pmrem = new THREE.PMREMGenerator(this.renderer); + } + return (_a2 = _SparkRenderer.pmrem) == null ? void 0 : _a2.fromCubemap(cubeTexture).texture; } -`); -function evaluatePackedSH({ - coord, - viewDir, - numSh, - sh1Texture, - sh2Texture, - sh3Texture, - shMax -}) { - return new Dyno({ - inTypes: { - coord: "ivec3", - viewDir: "vec3", - numSh: "int", - sh1Texture: "usampler2DArray", - sh2Texture: "usampler2DArray", - sh3Texture: "usampler2DArray", - shMax: "vec3" - }, - outTypes: { rgb: "vec3" }, - inputs: { - coord, - viewDir, - numSh, - sh1Texture, - sh2Texture, - sh3Texture, - shMax - }, - globals: () => [ - defineEvalPackedSH1, - defineEvalPackedSH2, - defineEvalPackedSH3 - ], - statements: ({ inputs, outputs }) => { - const lines = ["vec3 rgb = vec3(0.0);"]; - if (inputs.sh1Texture) { - lines.push( - ...unindentLines(` - if (${inputs.numSh} >= 1) { - vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0).rg, ${inputs.viewDir}, ${inputs.shMax}.x); - rgb += sh1Rgb; - `) - ); - if (inputs.sh2Texture) { - lines.push( - ...unindentLines(` - if (${inputs.numSh} >= 2) { - vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.y); - rgb += sh2Rgb; - `) - ); - if (inputs.sh3Texture) { - lines.push( - ...unindentLines(` - if (${inputs.numSh} >= 3) { - vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${inputs.sh3Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.z); - rgb += sh3Rgb; - } - `) - ); + // Utility function to recursively set the envMap property for any + // THREE.MeshStandardMaterial within the subtree of root. + recurseSetEnvMap(root, envMap) { + root.traverse((node) => { + if (node instanceof THREE.Mesh) { + if (Array.isArray(node.material)) { + for (const material of node.material) { + if (material instanceof THREE.MeshStandardMaterial) { + material.envMap = envMap; + } + } + } else { + if (node.material instanceof THREE.MeshStandardMaterial) { + node.material.envMap = envMap; } - lines.push("}"); } - lines.push("}"); } - lines.push(`${outputs.rgb} = rgb;`); - return lines; + }); + } + async getLodTreeLevel(splats, level, pageColoring = false) { + var _a2, _b2; + const instance = this.lodInstances.get(splats); + if (!instance) { + return null; } - }).outputs; + const result = await this.ensureLodWorker().exclusive(async (worker) => { + return await worker.call("getLodTreeLevel", { + lodId: instance.lodId, + level + }); + }); + if ((_a2 = splats.packedSplats) == null ? void 0 : _a2.lodSplats) { + const newSplats = splats.packedSplats.lodSplats.extractSplats( + result.indices, + pageColoring + ); + return new SplatMesh({ packedSplats: newSplats }); + } + if ((_b2 = splats.extSplats) == null ? void 0 : _b2.lodSplats) { + const newSplats = splats.extSplats.lodSplats.extractSplats( + result.indices, + pageColoring + ); + return new SplatMesh({ extSplats: newSplats }); + } + throw new Error( + "Only LoD-enabled PackedSplats and ExtSplats are supported" + ); + } + get premultipliedAlpha() { + return this.material.premultipliedAlpha; + } + set premultipliedAlpha(value) { + if (this.material.premultipliedAlpha !== value) { + this.material.premultipliedAlpha = value; + this.material.needsUpdate = true; + } + } +}; +_SparkRenderer.emptyOrdering = (() => { + const numIndices = 4 * 4096 * 1; + const emptyArray = new Uint32Array(numIndices); + const texture2 = new THREE.DataTexture(emptyArray, 4096, 1); + texture2.format = THREE.RGBAIntegerFormat; + texture2.type = THREE.UnsignedIntType; + texture2.internalFormat = "RGBA32UI"; + texture2.needsUpdate = true; + return texture2; +})(); +_SparkRenderer.cubeRender = null; +_SparkRenderer.pmrem = null; +let SparkRenderer = _SparkRenderer; +function checkIsXRRenderTarget(renderTarget) { + return renderTarget == null ? void 0 : renderTarget.isXRRenderTarget; } -const _OldSparkViewpoint = class _OldSparkViewpoint { - constructor(options) { - this.lastTime = null; - this.encodeLinear = false; - this.superXY = 1; - this.display = null; - this.sorting = null; - this.pending = null; - this.sortingCheck = false; - this.readback16 = new Uint16Array(0); - this.readback32 = new Uint32Array(0); - this.spark = options.spark; - this.camera = options.camera; - this.viewToWorld = options.viewToWorld ?? new THREE.Matrix4(); - if (options.target) { - const { width, height, doubleBuffer } = options.target; - const superXY = Math.max(1, Math.min(4, options.target.superXY ?? 1)); - this.superXY = superXY; - if (width * superXY > 8192 || height * superXY > 8192) { - throw new Error("Target size too large"); +const PLY_PROPERTY_TYPES = [ + "char", + "uchar", + "short", + "ushort", + "int", + "uint", + "float", + "double" +]; +const _PlyReader = class _PlyReader { + // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet + constructor({ fileBytes }) { + this.header = ""; + this.littleEndian = true; + this.elements = {}; + this.comments = []; + this.data = null; + this.numSplats = 0; + this.fileBytes = fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes; + } + // Identify and parse the PLY text header (assumed to be <64KB in size). + // this.elements will contain all the elements in the file, typically + // "vertex" contains the Gsplat data. + async parseHeader() { + const bufferStream = new ReadableStream({ + start: (controller) => { + controller.enqueue(this.fileBytes.slice(0, 65536)); + controller.close(); } - this.target = new THREE.WebGLRenderTarget( - width * superXY, - height * superXY, - { - format: THREE.RGBAFormat, - type: THREE.UnsignedByteType, - colorSpace: THREE.SRGBColorSpace + }); + const decoder = bufferStream.pipeThrough(new TextDecoderStream()).getReader(); + this.header = ""; + const headerTerminator = "end_header\n"; + while (true) { + const { value, done } = await decoder.read(); + if (done) { + throw new Error("Failed to read header"); + } + this.header += value; + const endHeader = this.header.indexOf(headerTerminator); + if (endHeader >= 0) { + this.header = this.header.slice(0, endHeader + headerTerminator.length); + break; + } + } + const headerLen = new TextEncoder().encode(this.header).length; + this.data = new DataView(this.fileBytes.buffer, headerLen); + this.elements = {}; + let curElement = null; + this.comments = []; + this.header.trim().split("\n").forEach((line, lineIndex) => { + const trimmedLine = line.trim(); + if (lineIndex === 0) { + if (trimmedLine !== "ply") { + throw new Error("Invalid PLY header"); } - ); - if (doubleBuffer) { - this.back = new THREE.WebGLRenderTarget( - width * superXY, - height * superXY, - { - format: THREE.RGBAFormat, - type: THREE.UnsignedByteType, - colorSpace: THREE.SRGBColorSpace + return; + } + if (trimmedLine.length === 0) { + return; + } + const fields = trimmedLine.split(" "); + switch (fields[0]) { + case "format": + if (fields[1] === "binary_little_endian") { + this.littleEndian = true; + } else if (fields[1] === "binary_big_endian") { + this.littleEndian = false; + } else { + throw new Error(`Unsupported PLY format: ${fields[1]}`); + } + if (fields[2] !== "1.0") { + throw new Error(`Unsupported PLY version: ${fields[2]}`); + } + break; + case "end_header": + break; + case "comment": + this.comments.push(trimmedLine.slice("comment ".length)); + break; + case "element": { + const name = fields[1]; + curElement = { + name, + count: Number.parseInt(fields[2]), + properties: {} + }; + this.elements[name] = curElement; + break; + } + case "property": + if (curElement == null) { + throw new Error("Property must be inside an element"); } - ); + if (fields[1] === "list") { + curElement.properties[fields[4]] = { + isList: true, + type: fields[3], + countType: fields[2] + }; + } else { + curElement.properties[fields[2]] = { + isList: false, + type: fields[1] + }; + } + break; } - this.encodeLinear = true; - } - this.onTextureUpdated = options.onTextureUpdated; - this.sortRadial = options.sortRadial ?? true; - this.sortDistance = options.sortDistance; - this.sortCoorient = options.sortCoorient; - this.depthBias = options.depthBias; - this.sort360 = options.sort360; - this.sort32 = options.sort32; - this.stochastic = options.stochastic ?? false; - this.orderingFreelist = new FreeList({ - allocate: (maxSplats) => new Uint32Array(maxSplats), - valid: (ordering, maxSplats) => ordering.length === maxSplats }); - this.autoUpdate = false; - this.setAutoUpdate(options.autoUpdate ?? false); - } - // Call this when you are done with the SparkViewpoint and want to - // free up its resources (GPU targets, pixel buffers, etc.) - dispose() { - var _a2; - this.setAutoUpdate(false); - if (this.target) { - this.target.dispose(); - this.target = void 0; - } - if (this.back) { - this.back.dispose(); - this.back = void 0; - } - if (this.display) { - this.spark.releaseAccumulator(this.display.accumulator); - this.display.geometry.dispose(); - this.display = null; - } - if ((_a2 = this.pending) == null ? void 0 : _a2.accumulator) { - this.spark.releaseAccumulator(this.pending.accumulator); - this.pending = null; - } - } - // Use this function to change whether this viewpoint will auto-update - // its sort order whenever the attached SparkRenderer updates the Gsplats. - // Turn this on or off depending on whether you expect to do renders from - // this viewpoint most frames. - setAutoUpdate(autoUpdate) { - if (!this.autoUpdate && autoUpdate) { - this.spark.autoViewpoints.push(this); - } else if (this.autoUpdate && !autoUpdate) { - this.spark.autoViewpoints = this.spark.autoViewpoints.filter( - (v) => v !== this - ); + if (this.elements.vertex) { + this.numSplats = this.elements.vertex.count; } - this.autoUpdate = autoUpdate; } - // See below async prepareRenderPixels() for explanation of parameters. - // Awaiting this method updates the Gsplats in the scene and performs a sort of the - // Gsplats from this viewpoint, preparing it for a subsequent this.renderTarget() - // call in the same tick. - async prepare({ - scene, - camera, - viewToWorld, - update, - forceOrigin - }) { - if (viewToWorld) { - this.viewToWorld = viewToWorld; - } else { - this.camera = camera ?? this.camera; - if (this.camera) { - this.camera.updateMatrixWorld(); - this.viewToWorld = this.camera.matrixWorld.clone(); - } + parseData(elementCallback) { + let offset = 0; + const data = this.data; + if (data == null) { + throw new Error("No data to parse"); } - while (update ?? true) { - const originToWorld = forceOrigin ? this.viewToWorld : this.spark.matrixWorld; - const updated = this.spark.updateInternal({ scene, originToWorld }); - if (updated) { - break; + for (const elementName in this.elements) { + const element = this.elements[elementName]; + const { count, properties } = element; + const item = createEmptyItem(properties); + const parseFn = createParseFn(properties, this.littleEndian); + const callback = elementCallback(element) ?? (() => { + }); + for (let index = 0; index < count; index++) { + offset = parseFn(data, offset, item); + callback(index, item); } - await new Promise((resolve) => setTimeout(resolve, 10)); - } - const accumulator = this.spark.active; - accumulator.refCount += 1; - await this.sortUpdate({ accumulator, viewToWorld: this.viewToWorld }); - this.spark.releaseAccumulator(accumulator); - } - // Render out the viewpoint to the view target RGBA buffer. - // Swaps buffers if doubleBuffer: true was set. - // Calls onTextureUpdated(texture) with the resulting texture. - renderTarget({ - scene, - camera - }) { - var _a2; - const target = this.back ?? this.target; - if (!target) { - throw new Error("Must initialize SparkViewpoint with target"); - } - camera = camera ?? this.camera; - if (!camera) { - throw new Error("Must provide camera"); - } - if (camera instanceof THREE.PerspectiveCamera) { - const newCam = new THREE.PerspectiveCamera().copy(camera, false); - newCam.aspect = target.width / target.height; - newCam.updateProjectionMatrix(); - camera = newCam; } - this.viewToWorld = camera.matrixWorld.clone(); - const previousTarget = this.spark.renderer.getRenderTarget(); - try { - this.spark.renderer.setRenderTarget(target); - this.spark.prepareViewpoint(this); - this.spark.renderer.render(scene, camera); - } finally { - this.spark.prepareViewpoint(this.spark.defaultView); - this.spark.renderer.setRenderTarget(previousTarget); - } - if (target !== this.target) { - [this.target, this.back] = [this.back, this.target]; - } - (_a2 = this.onTextureUpdated) == null ? void 0 : _a2.call(this, target.texture); } - // Read back the previously rendered target image as a Uint8Array of packed - // RGBA values (in that order). If superXY was set greater than 1 then - // downsampling is performed in the target pixel array with simple averaging - // to derive the returned pixel values. Subsequent calls to this.readTarget() - // will reuse the same buffers to minimize memory allocations. - async readTarget() { - if (!this.target) { - throw new Error("Must initialize SparkViewpoint with target"); - } - const { width, height } = this.target; - const byteSize = width * height * 4; - if (!this.superPixels || this.superPixels.length < byteSize) { - this.superPixels = new Uint8Array(byteSize); - } - await this.spark.renderer.readRenderTargetPixelsAsync( - this.target, - 0, - 0, - width, - height, - this.superPixels - ); - const { superXY } = this; - if (superXY === 1) { - return this.superPixels; + // Parse all the Gsplat data in the PLY file in go, invoking the given + // callbacks for each Gsplat. + parseSplats(splatCallback, shCallback) { + if (this.elements.vertex == null) { + throw new Error("No vertex element found"); } - const subWidth = width / superXY; - const subHeight = height / superXY; - const subSize = subWidth * subHeight * 4; - if (!this.pixels || this.pixels.length < subSize) { - this.pixels = new Uint8Array(subSize); + let isSuperSplat = false; + const ssChunks = []; + let numSh = 0; + let sh1Props = []; + let sh2Props = []; + let sh3Props = []; + let sh1 = void 0; + let sh2 = void 0; + let sh3 = void 0; + function prepareSh() { + const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh]; + sh1Props = new Array(3).fill(null).flatMap((_, k) => [0, 1, 2].map((_2, d) => k + d * num_f_rest / 3)); + sh2Props = new Array(5).fill(null).flatMap( + (_, k) => [0, 1, 2].map((_2, d) => 3 + k + d * num_f_rest / 3) + ); + sh3Props = new Array(7).fill(null).flatMap( + (_, k) => [0, 1, 2].map((_2, d) => 8 + k + d * num_f_rest / 3) + ); + sh1 = numSh >= 1 ? new Float32Array(3 * 3) : void 0; + sh2 = numSh >= 2 ? new Float32Array(5 * 3) : void 0; + sh3 = numSh >= 3 ? new Float32Array(7 * 3) : void 0; } - const { superPixels, pixels } = this; - const super2 = superXY * superXY; - for (let y = 0; y < subHeight; y++) { - const row = y * subWidth; - for (let x = 0; x < subWidth; x++) { - const superCol = x * superXY; - let r = 0; - let g = 0; - let b = 0; - let a = 0; - for (let sy = 0; sy < superXY; sy++) { - const superRow = (y * superXY + sy) * this.target.width; - for (let sx = 0; sx < superXY; sx++) { - const superIndex = (superRow + superCol + sx) * 4; - r += superPixels[superIndex]; - g += superPixels[superIndex + 1]; - b += superPixels[superIndex + 2]; - a += superPixels[superIndex + 3]; - } - } - const pixelIndex = (row + x) * 4; - pixels[pixelIndex] = r / super2; - pixels[pixelIndex + 1] = g / super2; - pixels[pixelIndex + 2] = b / super2; - pixels[pixelIndex + 3] = a / super2; - } - } - return pixels; - } - // Render out a viewpoint as a Uint8Array of RGBA values for the provided scene - // and any camera/viewToWorld viewpoint overrides. By default update is true, - // which triggers its SparkRenderer to check and potentially update the Gsplats. - // Setting update to false disables this and sorts the Gsplats as they are. - // Setting forceOrigin (default: false) to true forces the view update to - // recalculate the splats with this view origin, potentially altering any - // view-dependent effects. If you expect view-dependent effects to play a role - // in the rendering quality, enable this. - // - // Underneath, prepareRenderPixels() simply calls await this.prepare(...), - // this.renderTarget(...), and finally returns the result this.readTarget(), - // a Promise to a Uint8Array with RGBA values for all the pixels (potentially - // downsampled if the superXY parameter was used). These steps can also be called - // manually, for example if you need to alter the scene before and after - // this.renderTarget(...) to hide UI elements from being rendered. - async prepareRenderPixels({ - scene, - camera, - viewToWorld, - update, - forceOrigin - }) { - await this.prepare({ scene, camera, viewToWorld, update, forceOrigin }); - this.renderTarget({ scene, camera }); - return this.readTarget(); - } - // This is called automatically by SparkRenderer, there is no need to call it! - // The method cannot be private because then SparkRenderer would - // not be able to call it. - autoPoll({ accumulator }) { - var _a2, _b2, _c; - if (this.camera) { - this.camera.updateMatrixWorld(); - this.viewToWorld = this.camera.matrixWorld.clone(); - } - let needsSort = false; - let displayed = false; - if (!this.display) { - needsSort = true; - } else if (accumulator) { - needsSort = true; - const { mappingVersion } = this.display.accumulator; - if (accumulator.mappingVersion === mappingVersion) { - accumulator.refCount += 1; - this.spark.releaseAccumulator(this.display.accumulator); - this.display.accumulator = accumulator; - this.display.viewToWorld.copy(this.viewToWorld); - displayed = true; - if (this.spark.viewpoint === this) { - this.spark.prepareViewpoint(this); - } + function ssShCallback(index, item) { + if (!sh1) { + throw new Error("Missing sh1"); } - } - const latestView = ((_a2 = this.sorting) == null ? void 0 : _a2.viewToWorld) ?? ((_b2 = this.display) == null ? void 0 : _b2.viewToWorld); - if (latestView && !withinCoorientDist({ - matrix1: this.viewToWorld, - matrix2: latestView, - // By default update sort each 1 cm - maxDistance: this.sortDistance ?? 0.01, - // By default for radial sort, update for intermittent movement so that - // we bring back splats culled by being behind the camera. - // For depth sort, small rotations can change sort order a lot, so - // update sort for even small rotations. - minCoorient: this.sortCoorient ?? this.sortRadial ? 0.99 : 0.999 - })) { - needsSort = true; - } - if (!needsSort) { - return; - } - if (accumulator) { - accumulator.refCount += 1; - } - if ((_c = this.pending) == null ? void 0 : _c.accumulator) { - this.spark.releaseAccumulator(this.pending.accumulator); - } - this.pending = { accumulator, viewToWorld: this.viewToWorld, displayed }; - this.driveSort(); - } - async driveSort() { - var _a2; - while (true) { - if (this.sorting || !this.pending) { - return; + const sh = item.f_rest; + for (let i = 0; i < sh1Props.length; i++) { + sh1[i] = sh[sh1Props[i]] * 8 / 255 - 4; } - const { viewToWorld, displayed } = this.pending; - let accumulator = this.pending.accumulator; - if (!accumulator) { - accumulator = ((_a2 = this.display) == null ? void 0 : _a2.accumulator) ?? this.spark.active; - accumulator.refCount += 1; + if (sh2) { + for (let i = 0; i < sh2Props.length; i++) { + sh2[i] = sh[sh2Props[i]] * 8 / 255 - 4; + } } - this.pending = null; - if (!accumulator) { - throw new Error("No accumulator to sort"); + if (sh3) { + for (let i = 0; i < sh3Props.length; i++) { + sh3[i] = sh[sh3Props[i]] * 8 / 255 - 4; + } } - this.sorting = { viewToWorld }; - await this.sortUpdate({ accumulator, viewToWorld, displayed }); - this.sorting = null; - this.spark.releaseAccumulator(accumulator); + shCallback == null ? void 0 : shCallback(index, sh1, sh2, sh3); } - } - async sortUpdate({ - accumulator, - viewToWorld, - displayed = false - }) { - if (this.sortingCheck) { - throw new Error("Only one sort at a time"); - } - this.sortingCheck = true; - accumulator = accumulator ?? this.spark.active; - const { numSplats, maxSplats } = accumulator.splats; - let activeSplats = 0; - let ordering = this.orderingFreelist.alloc(maxSplats); - if (this.stochastic) { - activeSplats = numSplats; - for (let i = 0; i < numSplats; ++i) { - ordering[i] = i; - } - } else if (numSplats > 0) { + function initSuperSplat(element) { const { - reader, - doubleSortReader, - sort32Reader, - dynoSortRadial, - dynoOrigin, - dynoDirection, - dynoDepthBias, - dynoSort360, - dynoSplats - } = _OldSparkViewpoint.makeSorter(); - const sort32 = this.sort32 ?? false; - let readback; - if (sort32) { - this.readback32 = reader.ensureBuffer(maxSplats, this.readback32); - readback = this.readback32; - } else { - const halfMaxSplats = Math.ceil(maxSplats / 2); - this.readback16 = reader.ensureBuffer(halfMaxSplats, this.readback16); - readback = this.readback16; - } - const worldToOrigin = accumulator.toWorld.clone().invert(); - const viewToOrigin = viewToWorld.clone().premultiply(worldToOrigin); - dynoSortRadial.value = this.sort360 ? true : this.sortRadial; - dynoOrigin.value.set(0, 0, 0).applyMatrix4(viewToOrigin); - dynoDirection.value.set(0, 0, -1).applyMatrix4(viewToOrigin).sub(dynoOrigin.value).normalize(); - dynoDepthBias.value = this.depthBias ?? 1; - dynoSort360.value = this.sort360 ?? false; - dynoSplats.packedSplats = accumulator.splats; - const sortReader = sort32 ? sort32Reader : doubleSortReader; - const count = sort32 ? numSplats : Math.ceil(numSplats / 2); - await reader.renderReadback({ - renderer: this.spark.renderer, - reader: sortReader, - count, - readback - }); - const result = await withWorker(async (worker) => { - const rpcName = sort32 ? "sort32Splats" : "sortDoubleSplats"; - return worker.call(rpcName, { - maxSplats, - numSplats, - readback, - ordering - }); - }); - if (sort32) { - this.readback32 = result.readback; - } else { - this.readback16 = result.readback; + min_x, + min_y, + min_z, + max_x, + max_y, + max_z, + min_scale_x, + min_scale_y, + min_scale_z, + max_scale_x, + max_scale_y, + max_scale_z + } = element.properties; + if (!min_x || !min_y || !min_z || !max_x || !max_y || !max_z || !min_scale_x || !min_scale_y || !min_scale_z || !max_scale_x || !max_scale_y || !max_scale_z) { + throw new Error("Missing PLY chunk properties"); } - ordering = result.ordering; - activeSplats = result.activeSplats; - } - this.updateDisplay({ - accumulator, - viewToWorld, - ordering, - activeSplats, - displayed - }); - this.sortingCheck = false; - } - updateDisplay({ - accumulator, - viewToWorld, - ordering, - activeSplats, - displayed = false - }) { - if (!this.display) { - accumulator.refCount += 1; - this.display = { - accumulator, - viewToWorld, - geometry: new OldSplatGeometry(ordering, activeSplats) + isSuperSplat = true; + return (index, item) => { + const { + min_x: min_x2, + min_y: min_y2, + min_z: min_z2, + max_x: max_x2, + max_y: max_y2, + max_z: max_z2, + min_scale_x: min_scale_x2, + min_scale_y: min_scale_y2, + min_scale_z: min_scale_z2, + max_scale_x: max_scale_x2, + max_scale_y: max_scale_y2, + max_scale_z: max_scale_z2, + min_r, + min_g, + min_b, + max_r, + max_g, + max_b + } = item; + ssChunks.push({ + min_x: min_x2, + min_y: min_y2, + min_z: min_z2, + max_x: max_x2, + max_y: max_y2, + max_z: max_z2, + min_scale_x: min_scale_x2, + min_scale_y: min_scale_y2, + min_scale_z: min_scale_z2, + max_scale_x: max_scale_x2, + max_scale_y: max_scale_y2, + max_scale_z: max_scale_z2, + min_r, + min_g, + min_b, + max_r, + max_g, + max_b + }); }; - } else { - if (!displayed && accumulator !== this.display.accumulator) { - accumulator.refCount += 1; - this.spark.releaseAccumulator(this.display.accumulator); - this.display.accumulator = accumulator; - } - this.display.viewToWorld = viewToWorld; - const oldOrdering = this.display.geometry.ordering; - if (oldOrdering.length === ordering.length) { - this.display.geometry.update(ordering, activeSplats); - } else { - this.display.geometry.dispose(); - this.display.geometry = new OldSplatGeometry(ordering, activeSplats); + } + function decodeSuperSplat(element) { + if (shCallback && element.name === "sh") { + numSh = getNumSh(element.properties); + prepareSh(); + return ssShCallback; + } + if (element.name !== "vertex") { + return null; } - this.orderingFreelist.free(oldOrdering); - } - if (this.spark.viewpoint === this) { - this.spark.prepareViewpoint(this); - } - } - static makeSorter() { - if (!_OldSparkViewpoint.dynos) { - const dynoSortRadial = new DynoBool({ value: true }); - const dynoOrigin = new DynoVec3({ value: new THREE.Vector3() }); - const dynoDirection = new DynoVec3({ value: new THREE.Vector3() }); - const dynoDepthBias = new DynoFloat({ value: 1 }); - const dynoSort360 = new DynoBool({ value: false }); - const dynoSplats = new DynoPackedSplats(); - const reader = new Readback(); - const doubleSortReader = dynoBlock( - { index: "int" }, - { rgba8: "vec4" }, - ({ index }) => { - if (!index) { - throw new Error("No index"); - } - const sortParams = { - sortRadial: dynoSortRadial, - sortOrigin: dynoOrigin, - sortDirection: dynoDirection, - sortDepthBias: dynoDepthBias, - sort360: dynoSort360 - }; - const index2 = mul(index, dynoConst("int", 2)); - const gsplat0 = readPackedSplat(dynoSplats, index2); - const metric0 = computeSortMetric({ gsplat: gsplat0, ...sortParams }); - const gsplat1 = readPackedSplat( - dynoSplats, - add(index2, dynoConst("int", 1)) - ); - const metric1 = computeSortMetric({ gsplat: gsplat1, ...sortParams }); - const combined = combine({ - vectorType: "vec2", - x: metric0, - y: metric1 - }); - const rgba8 = uintToRgba8(packHalf2x16(combined)); - return { rgba8 }; - } - ); - const sort32Reader = dynoBlock( - { index: "int" }, - { rgba8: "vec4" }, - ({ index }) => { - if (!index) { - throw new Error("No index"); - } - const sortParams = { - sortRadial: dynoSortRadial, - sortOrigin: dynoOrigin, - sortDirection: dynoDirection, - sortDepthBias: dynoDepthBias, - sort360: dynoSort360 - }; - const gsplat = readPackedSplat(dynoSplats, index); - const metric = computeSortMetric({ gsplat, ...sortParams }); - const rgba8 = uintToRgba8(floatBitsToUint(metric)); - return { rgba8 }; + const { packed_position, packed_rotation, packed_scale, packed_color } = element.properties; + if (!packed_position || !packed_rotation || !packed_scale || !packed_color) { + throw new Error( + "Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color" + ); + } + const SQRT2 = Math.sqrt(2); + return (index, item) => { + const chunk = ssChunks[index >>> 8]; + if (chunk == null) { + throw new Error("Missing PLY chunk"); } - ); - _OldSparkViewpoint.dynos = { - dynoSortRadial, - dynoOrigin, - dynoDirection, - dynoDepthBias, - dynoSort360, - dynoSplats, - reader, - doubleSortReader, - sort32Reader + const { + min_x, + min_y, + min_z, + max_x, + max_y, + max_z, + min_scale_x, + min_scale_y, + min_scale_z, + max_scale_x, + max_scale_y, + max_scale_z, + min_r, + min_g, + min_b, + max_r, + max_g, + max_b + } = chunk; + const { packed_position: packed_position2, packed_rotation: packed_rotation2, packed_scale: packed_scale2, packed_color: packed_color2 } = item; + const x = (packed_position2 >>> 21 & 2047) / 2047 * (max_x - min_x) + min_x; + const y = (packed_position2 >>> 11 & 1023) / 1023 * (max_y - min_y) + min_y; + const z = (packed_position2 & 2047) / 2047 * (max_z - min_z) + min_z; + const r0 = ((packed_rotation2 >>> 20 & 1023) / 1023 - 0.5) * SQRT2; + const r1 = ((packed_rotation2 >>> 10 & 1023) / 1023 - 0.5) * SQRT2; + const r2 = ((packed_rotation2 & 1023) / 1023 - 0.5) * SQRT2; + const rr = Math.sqrt(Math.max(0, 1 - r0 * r0 - r1 * r1 - r2 * r2)); + const rOrder = packed_rotation2 >>> 30; + const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1; + const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2; + const quatZ = rOrder <= 2 ? r2 : rr; + const quatW = rOrder === 0 ? rr : r0; + const scaleX = Math.exp( + (packed_scale2 >>> 21 & 2047) / 2047 * (max_scale_x - min_scale_x) + min_scale_x + ); + const scaleY = Math.exp( + (packed_scale2 >>> 11 & 1023) / 1023 * (max_scale_y - min_scale_y) + min_scale_y + ); + const scaleZ = Math.exp( + (packed_scale2 & 2047) / 2047 * (max_scale_z - min_scale_z) + min_scale_z + ); + const r = (packed_color2 >>> 24 & 255) / 255 * ((max_r ?? 1) - (min_r ?? 0)) + (min_r ?? 0); + const g = (packed_color2 >>> 16 & 255) / 255 * ((max_g ?? 1) - (min_g ?? 0)) + (min_g ?? 0); + const b = (packed_color2 >>> 8 & 255) / 255 * ((max_b ?? 1) - (min_b ?? 0)) + (min_b ?? 0); + const opacity = (packed_color2 & 255) / 255; + splatCallback( + index, + x, + y, + z, + scaleX, + scaleY, + scaleZ, + quatX, + quatY, + quatZ, + quatW, + opacity, + r, + g, + b + ); }; } - return _OldSparkViewpoint.dynos; - } -}; -_OldSparkViewpoint.EMPTY_TEXTURE = new THREE.Texture(); -_OldSparkViewpoint.dynos = null; -let OldSparkViewpoint = _OldSparkViewpoint; -const defineComputeSortMetric = unindent(` - float computeSort(Gsplat gsplat, bool sortRadial, vec3 sortOrigin, vec3 sortDirection, float sortDepthBias, bool sort360) { - if (!isGsplatActive(gsplat.flags)) { - return INFINITY; - } - - vec3 center = gsplat.center - sortOrigin; - float biasedDepth = dot(center, sortDirection) + sortDepthBias; - if (!sort360 && (biasedDepth <= 0.0)) { - return INFINITY; - } - - return sortRadial ? length(center) : biasedDepth; - } -`); -function computeSortMetric({ - gsplat, - sortRadial, - sortOrigin, - sortDirection, - sortDepthBias, - sort360 -}) { - return dyno$1({ - inTypes: { - gsplat: Gsplat, - sortRadial: "bool", - sortOrigin: "vec3", - sortDirection: "vec3", - sortDepthBias: "float", - sort360: "bool" - }, - outTypes: { metric: "float" }, - globals: () => [defineGsplat, defineComputeSortMetric], - inputs: { - gsplat, - sortRadial, - sortOrigin, - sortDirection, - sortDepthBias, - sort360 - }, - statements: ({ inputs, outputs }) => { - const { - gsplat: gsplat2, - sortRadial: sortRadial2, - sortOrigin: sortOrigin2, - sortDirection: sortDirection2, - sortDepthBias: sortDepthBias2, - sort360: sort3602 - } = inputs; - return unindentLines(` - ${outputs.metric} = computeSort(${gsplat2}, ${sortRadial2}, ${sortOrigin2}, ${sortDirection2}, ${sortDepthBias2}, ${sort3602}); - `); - } - }).outputs.metric; -} -class OldSplatAccumulator { - constructor() { - this.splats = new PackedSplats(); - this.toWorld = new THREE.Matrix4(); - this.mapping = []; - this.refCount = 0; - this.splatsVersion = -1; - this.mappingVersion = -1; - } - ensureGenerate(maxSplats) { - if (this.splats.ensureGenerate(maxSplats)) { - this.mapping = []; - } - } - // Generate all Gsplats from an array of generators - generateSplats({ - renderer, - modifier, - generators: generators2, - forceUpdate, - originToWorld - }) { - const mapping = this.mapping.reduce((map, record) => { - map.set(record.node, record); - return map; - }, /* @__PURE__ */ new Map()); - let updated = 0; - let numSplats = 0; - for (const { node, generator, version, base, count } of generators2) { - const current = mapping.get(node); - if (forceUpdate || generator !== (current == null ? void 0 : current.generator) || version !== (current == null ? void 0 : current.version) || base !== (current == null ? void 0 : current.base) || count !== (current == null ? void 0 : current.count)) { - if (generator && count > 0) { - const modGenerator = modifier.apply(generator); - try { - this.splats.generate({ - generator: modGenerator, - base, - count, - renderer - }); - } catch (error) { - node.generator = void 0; - node.generatorError = error; - } - updated += 1; - } + const elementCallback = (element) => { + if (element.name === "chunk") { + return initSuperSplat(element); } - numSplats = Math.max(numSplats, base + count); - } - this.splats.numSplats = numSplats; - this.toWorld.copy(originToWorld); - this.mapping = generators2; - return updated !== 0; - } - // Check if this accumulator has exactly the same generator mapping as - // the previous one. If so, we can reuse the Gsplat sort order. - hasCorrespondence(other) { - if (this.mapping.length !== other.mapping.length) { - return false; - } - return this.mapping.every(({ node, base, count }, i) => { - const { - node: otherNode, - base: otherBase, - count: otherCount - } = other.mapping[i]; - return node === otherNode && base === otherBase && count === otherCount; - }); - } -} -const MAX_ACCUMULATORS = 5; -const _OldSparkRenderer = class _OldSparkRenderer extends THREE.Mesh { - constructor(options) { - const uniforms = _OldSparkRenderer.makeUniforms(); - const shaders2 = getShaders(); - const premultipliedAlpha = options.premultipliedAlpha ?? true; - const material = new THREE.ShaderMaterial({ - glslVersion: THREE.GLSL3, - vertexShader: shaders2.oldSplatVertex, - fragmentShader: shaders2.oldSplatFragment, - uniforms, - premultipliedAlpha, - transparent: true, - depthTest: true, - depthWrite: false, - side: THREE.DoubleSide - }); - super(EMPTY_GEOMETRY, material); - this.splatTexture = null; - this.autoViewpoints = []; - this.rotateToAccumulator = new DynoVec4({ value: new THREE.Quaternion() }); - this.translateToAccumulator = new DynoVec3({ value: new THREE.Vector3() }); - this.lastFrame = -1; - this.lastUpdateTime = null; - this.defaultCameras = []; - this.lastStochastic = null; - this.pendingUpdate = { - scene: null, - originToWorld: new THREE.Matrix4(), - timeoutId: -1 - }; - this.envViewpoint = null; - this.frustumCulled = false; - this.renderer = options.renderer; - this.material = material; - this.uniforms = uniforms; - const modifier = dynoBlock( - { gsplat: Gsplat }, - { gsplat: Gsplat }, - ({ gsplat }) => { - if (!gsplat) { - throw new Error("gsplat not defined"); - } - gsplat = transformGsplat(gsplat, { - rotate: this.rotateToAccumulator, - translate: this.translateToAccumulator - }); - return { gsplat }; + if (isSuperSplat) { + return decodeSuperSplat(element); } - ); - this.modifier = new SplatModifier(modifier); - this.premultipliedAlpha = premultipliedAlpha; - this.autoUpdate = options.autoUpdate ?? true; - this.preUpdate = options.preUpdate ?? false; - this.needsUpdate = false; - this.originDistance = options.originDistance ?? 1; - this.maxStdDev = options.maxStdDev ?? Math.sqrt(8); - this.minPixelRadius = options.minPixelRadius ?? 0; - this.maxPixelRadius = options.maxPixelRadius ?? 512; - this.minAlpha = options.minAlpha ?? 0.5 * (1 / 255); - this.enable2DGS = options.enable2DGS ?? false; - this.preBlurAmount = options.preBlurAmount ?? 0; - this.blurAmount = options.blurAmount ?? 0.3; - this.focalDistance = options.focalDistance ?? 0; - this.apertureAngle = options.apertureAngle ?? 0; - this.falloff = options.falloff ?? 1; - this.clipXY = options.clipXY ?? 1.4; - this.focalAdjustment = options.focalAdjustment ?? 1; - this.splatEncoding = options.splatEncoding ?? { ...DEFAULT_SPLAT_ENCODING }; - this.active = new OldSplatAccumulator(); - this.active.refCount = 1; - this.accumulatorCount = 1; - this.freeAccumulators = []; - for (let count = 0; count < 1; ++count) { - this.freeAccumulators.push(new OldSplatAccumulator()); - this.accumulatorCount += 1; - } - this.defaultView = new OldSparkViewpoint({ - ...options.view, - autoUpdate: true, - spark: this - }); - this.viewpoint = this.defaultView; - this.prepareViewpoint(this.viewpoint); - this.clock = options.clock ? cloneClock(options.clock) : new THREE.Clock(); - } - static makeUniforms() { - const uniforms = { - // Size of render viewport in pixels - renderSize: { value: new THREE.Vector2() }, - // Near and far plane distances - near: { value: 0.1 }, - far: { value: 1e3 }, - // Total number of Gsplats in packedSplats to render - numSplats: { value: 0 }, - // SplatAccumulator to view transformation quaternion - renderToViewQuat: { value: new THREE.Quaternion() }, - // SplatAccumulator to view transformation translation - renderToViewPos: { value: new THREE.Vector3() }, - // Maximum distance (in stddevs) from Gsplat center to render - maxStdDev: { value: 1 }, - // Minimum pixel radius for splat rendering - minPixelRadius: { value: 0 }, - // Maximum pixel radius for splat rendering - maxPixelRadius: { value: 512 }, - // Minimum alpha value for splat rendering - minAlpha: { value: 0.5 * (1 / 255) }, - // Enable stochastic splat rendering - stochastic: { value: false }, - // Enable interpreting 0-thickness Gsplats as 2DGS - enable2DGS: { value: false }, - // Add to projected 2D splat covariance diagonal (thickens and brightens) - preBlurAmount: { value: 0 }, - // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing) - blurAmount: { value: 0.3 }, - // Depth-of-field distance to focal plane - focalDistance: { value: 0 }, - // Full-width angle of aperture opening (in radians) - apertureAngle: { value: 0 }, - // Modulate Gaussian kernal falloff. 0 means "no falloff, flat shading", - // 1 is normal e^-x^2 falloff. - falloff: { value: 1 }, - // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds - clipXY: { value: 1.4 }, - // Debug renderSize scale factor - focalAdjustment: { value: 1 }, - // Enable splat texture rendering - splatTexEnable: { value: false }, - // Splat texture to render - splatTexture: { type: "t", value: _OldSparkRenderer.EMPTY_SPLAT_TEXTURE }, - // Splat texture UV transform (multiply) - splatTexMul: { value: new THREE.Matrix2() }, - // Splat texture UV transform (add) - splatTexAdd: { value: new THREE.Vector2() }, - // Splat texture near plane distance - splatTexNear: { value: 0.1 }, - // Splat texture far plane distance - splatTexFar: { value: 1e3 }, - // Splat texture mid plane distance, or 0.0 to disable - splatTexMid: { value: 0 }, - // Gsplat collection to render - packedSplats: { type: "t", value: PackedSplats.getEmptyArray }, - // Splat encoding ranges - rgbMinMaxLnScaleMinMax: { value: new THREE.Vector4() }, - // Time in seconds for time-based effects - time: { value: 0 }, - // Delta time in seconds since last frame - deltaTime: { value: 0 }, - // Whether to encode Gsplat with linear RGB (for environment mapping) - encodeLinear: { value: false }, - // Debug flag that alternates each frame - debugFlag: { value: false } + if (element.name !== "vertex") { + return null; + } + const { + x, + y, + z, + scale_0, + scale_1, + scale_2, + rot_0, + rot_1, + rot_2, + rot_3, + opacity, + f_dc_0, + f_dc_1, + f_dc_2, + red, + green, + blue, + alpha + } = element.properties; + if (!x || !y || !z) { + throw new Error("Missing PLY properties: x, y, z"); + } + const hasScales = scale_0 && scale_1 && scale_2; + const hasRots = rot_0 && rot_1 && rot_2 && rot_3; + const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1; + const redDiv = red != null ? FIELD_SCALE[red.type] : 1; + const greenDiv = green != null ? FIELD_SCALE[green.type] : 1; + const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1; + numSh = getNumSh(element.properties); + prepareSh(); + return (index, item) => { + const scaleX = hasScales ? Math.exp(item.scale_0) : _PlyReader.defaultPointScale; + const scaleY = hasScales ? Math.exp(item.scale_1) : _PlyReader.defaultPointScale; + const scaleZ = hasScales ? Math.exp(item.scale_2) : _PlyReader.defaultPointScale; + const quatX = hasRots ? item.rot_1 : 0; + const quatY = hasRots ? item.rot_2 : 0; + const quatZ = hasRots ? item.rot_3 : 0; + const quatW = hasRots ? item.rot_0 : 1; + const op = opacity != null ? 1 / (1 + Math.exp(-item.opacity)) : alpha != null ? item.alpha / alphaDiv : 1; + const r = f_dc_0 != null ? item.f_dc_0 * SH_C0$1 + 0.5 : red != null ? item.red / redDiv : 1; + const g = f_dc_1 != null ? item.f_dc_1 * SH_C0$1 + 0.5 : green != null ? item.green / greenDiv : 1; + const b = f_dc_2 != null ? item.f_dc_2 * SH_C0$1 + 0.5 : blue != null ? item.blue / blueDiv : 1; + splatCallback( + index, + item.x, + item.y, + item.z, + scaleX, + scaleY, + scaleZ, + quatX, + quatY, + quatZ, + quatW, + op, + r, + g, + b + ); + if (shCallback && sh1) { + const sh = item.f_rest; + if (sh1) { + for (let i = 0; i < sh1Props.length; i++) { + sh1[i] = sh[sh1Props[i]]; + } + } + if (sh2) { + for (let i = 0; i < sh2Props.length; i++) { + sh2[i] = sh[sh2Props[i]]; + } + } + if (sh3) { + for (let i = 0; i < sh3Props.length; i++) { + sh3[i] = sh[sh3Props[i]]; + } + } + shCallback(index, sh1, sh2, sh3); + } + }; }; - return uniforms; - } - canAllocAccumulator() { - return this.freeAccumulators.length > 0 || this.accumulatorCount < MAX_ACCUMULATORS; + this.parseData(elementCallback); } - maybeAllocAccumulator() { - let accumulator = this.freeAccumulators.pop(); - if (accumulator === void 0) { - if (this.accumulatorCount >= MAX_ACCUMULATORS) { - return null; - } - accumulator = new OldSplatAccumulator(); - this.accumulatorCount += 1; + // Inject RGBA values into original PLY file, which can be used to modify + // the color/opacity of the Gsplats and write out the modified PLY file. + injectRgba(rgba) { + let offset = 0; + const data = this.data; + if (data == null) { + throw new Error("No parsed data"); } - accumulator.refCount = 1; - return accumulator; - } - releaseAccumulator(accumulator) { - accumulator.refCount -= 1; - if (accumulator.refCount === 0) { - this.freeAccumulators.push(accumulator); + if (rgba.length !== this.numSplats * 4) { + throw new Error("Invalid RGBA array length"); } - } - newViewpoint(options) { - return new OldSparkViewpoint({ ...options, spark: this }); - } - onBeforeRender(renderer, scene, camera) { - var _a2, _b2; - const time = this.time ?? this.clock.getElapsedTime(); - const deltaTime = time - (this.viewpoint.lastTime ?? time); - this.viewpoint.lastTime = time; - const frame = renderer.info.render.frame; - const isNewFrame = frame !== this.lastFrame; - this.lastFrame = frame; - const viewpoint = this.viewpoint; - if (viewpoint === this.defaultView) { - if (isNewFrame) { - if (!renderer.xr.isPresenting) { - this.defaultView.viewToWorld = camera.matrixWorld.clone(); - this.defaultCameras = [this.defaultView.viewToWorld]; - } else { - const cameras = renderer.xr.getCamera().cameras; - this.defaultCameras = cameras.map((camera2) => camera2.matrixWorld); - this.defaultView.viewToWorld = averageOriginToWorlds(this.defaultCameras) ?? new THREE.Matrix4(); + for (const elementName in this.elements) { + const element = this.elements[elementName]; + const { count, properties } = element; + const parsers = []; + let rgbaOffset = 0; + const isVertex = elementName === "vertex"; + if (isVertex) { + for (const name of ["opacity", "f_dc_0", "f_dc_1", "f_dc_2"]) { + if (!properties[name] || properties[name].type !== "float") { + throw new Error(`Can't injectRgba due to property: ${name}`); + } } } - if (this.autoUpdate) { - this.update({ scene, viewToWorld: this.defaultView.viewToWorld }); - } - } - if (isNewFrame) { - if (this.material.premultipliedAlpha !== this.premultipliedAlpha) { - this.material.premultipliedAlpha = this.premultipliedAlpha; - this.material.needsUpdate = true; - } - this.uniforms.time.value = time; - this.uniforms.deltaTime.value = deltaTime; - this.uniforms.debugFlag.value = performance.now() / 1e3 % 2 < 1; - if (viewpoint.display && viewpoint.stochastic) { - this.geometry.instanceCount = this.uniforms.numSplats.value; - } - } - if (viewpoint.target) { - this.uniforms.renderSize.value.set( - viewpoint.target.width, - viewpoint.target.height - ); - } else { - const renderSize = renderer.getDrawingBufferSize( - this.uniforms.renderSize.value - ); - if (renderSize.x === 1 && renderSize.y === 1) { - const baseLayer = (_a2 = renderer.xr.getSession()) == null ? void 0 : _a2.renderState.baseLayer; - if (baseLayer) { - renderSize.x = baseLayer.framebufferWidth; - renderSize.y = baseLayer.framebufferHeight; + for (const [propertyName, property] of Object.entries(properties)) { + if (!property.isList) { + if (isVertex) { + if (propertyName === "f_dc_0" || propertyName === "f_dc_1" || propertyName === "f_dc_2") { + const component = Number.parseInt( + propertyName.slice("f_dc_".length) + ); + parsers.push(() => { + const value = (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0$1; + SET_FIELD[property.type]( + data, + offset, + this.littleEndian, + value + ); + }); + } else if (propertyName === "opacity") { + parsers.push(() => { + const value = Math.max( + -100, + Math.min( + 100, + -Math.log(1 / (rgba[rgbaOffset + 3] / 255) - 1) + ) + ); + SET_FIELD[property.type]( + data, + offset, + this.littleEndian, + value + ); + }); + } + } + parsers.push(() => { + offset += FIELD_BYTES[property.type]; + }); + } else { + parsers.push(() => { + const length2 = PARSE_FIELD[property.countType]( + data, + offset, + this.littleEndian + ); + offset += FIELD_BYTES[property.countType]; + offset += length2 * FIELD_BYTES[property.type]; + }); } } - } - const typedCamera = camera; - this.uniforms.near.value = typedCamera.near; - this.uniforms.far.value = typedCamera.far; - this.uniforms.encodeLinear.value = viewpoint.encodeLinear; - this.uniforms.maxStdDev.value = this.maxStdDev; - this.uniforms.minPixelRadius.value = this.minPixelRadius; - this.uniforms.maxPixelRadius.value = this.maxPixelRadius; - this.uniforms.minAlpha.value = this.minAlpha; - this.uniforms.stochastic.value = viewpoint.stochastic; - this.uniforms.enable2DGS.value = this.enable2DGS; - this.uniforms.preBlurAmount.value = this.preBlurAmount; - this.uniforms.blurAmount.value = this.blurAmount; - this.uniforms.focalDistance.value = this.focalDistance; - this.uniforms.apertureAngle.value = this.apertureAngle; - this.uniforms.falloff.value = this.falloff; - this.uniforms.clipXY.value = this.clipXY; - this.uniforms.focalAdjustment.value = this.focalAdjustment; - if (this.lastStochastic !== !viewpoint.stochastic) { - this.lastStochastic = !viewpoint.stochastic; - this.material.transparent = !viewpoint.stochastic; - this.material.depthWrite = viewpoint.stochastic; - this.material.needsUpdate = true; - } - if (this.splatTexture) { - const { enable, texture: texture2, multiply, add: add2, near, far, mid } = this.splatTexture; - if (enable && texture2) { - this.uniforms.splatTexEnable.value = true; - this.uniforms.splatTexture.value = texture2; - if (multiply) { - this.uniforms.splatTexMul.value.fromArray(multiply.elements); - } else { - this.uniforms.splatTexMul.value.set( - 0.5 / this.maxStdDev, - 0, - 0, - 0.5 / this.maxStdDev - ); + for (let index = 0; index < count; index++) { + for (const parser of parsers) { + parser(); + } + if (isVertex) { + rgbaOffset += 4; } - this.uniforms.splatTexAdd.value.set((add2 == null ? void 0 : add2.x) ?? 0.5, (add2 == null ? void 0 : add2.y) ?? 0.5); - this.uniforms.splatTexNear.value = near ?? this.uniforms.near.value; - this.uniforms.splatTexFar.value = far ?? this.uniforms.far.value; - this.uniforms.splatTexMid.value = mid ?? 0; - } else { - this.uniforms.splatTexEnable.value = false; - this.uniforms.splatTexture.value = _OldSparkRenderer.EMPTY_SPLAT_TEXTURE; } + } + } +}; +_PlyReader.defaultPointScale = 1e-3; +let PlyReader = _PlyReader; +const SH_C0$1 = 0.28209479177387814; +const PARSE_FIELD = { + char: (data, offset, littleEndian) => { + return data.getInt8(offset); + }, + uchar: (data, offset, littleEndian) => { + return data.getUint8(offset); + }, + short: (data, offset, littleEndian) => { + return data.getInt16(offset, littleEndian); + }, + ushort: (data, offset, littleEndian) => { + return data.getUint16(offset, littleEndian); + }, + int: (data, offset, littleEndian) => { + return data.getInt32(offset, littleEndian); + }, + uint: (data, offset, littleEndian) => { + return data.getUint32(offset, littleEndian); + }, + float: (data, offset, littleEndian) => { + return data.getFloat32(offset, littleEndian); + }, + double: (data, offset, littleEndian) => { + return data.getFloat64(offset, littleEndian); + } +}; +const SET_FIELD = { + char: (data, offset, littleEndian, value) => { + data.setInt8(offset, value); + }, + uchar: (data, offset, littleEndian, value) => { + data.setUint8(offset, value); + }, + short: (data, offset, littleEndian, value) => { + data.setInt16(offset, value, littleEndian); + }, + ushort: (data, offset, littleEndian, value) => { + data.setUint16(offset, value, littleEndian); + }, + int: (data, offset, littleEndian, value) => { + data.setInt32(offset, value, littleEndian); + }, + uint: (data, offset, littleEndian, value) => { + data.setUint32(offset, value, littleEndian); + }, + float: (data, offset, littleEndian, value) => { + data.setFloat32(offset, value, littleEndian); + }, + double: (data, offset, littleEndian, value) => { + data.setFloat64(offset, value, littleEndian); + } +}; +const FIELD_BYTES = { + char: 1, + uchar: 1, + short: 2, + ushort: 2, + int: 4, + uint: 4, + float: 4, + double: 8 +}; +const FIELD_SCALE = { + char: 127, + uchar: 255, + short: 32767, + ushort: 65535, + int: 2147483647, + uint: 4294967295, + float: 1, + double: 1 +}; +const NUM_F_REST_TO_NUM_SH = { + 0: 0, + 9: 1, + 24: 2, + 45: 3 +}; +const NUM_SH_TO_NUM_F_REST = { + 0: 0, + 1: 9, + 2: 24, + 3: 45 +}; +const F_REST_REGEX = /^f_rest_([0-9]{1,2})$/; +function createEmptyItem(properties) { + const item = {}; + for (const [propertyName, property] of Object.entries(properties)) { + if (F_REST_REGEX.test(propertyName)) { + item.f_rest = new Array(getNumSh(properties)); } else { - this.uniforms.splatTexEnable.value = false; - this.uniforms.splatTexture.value = _OldSparkRenderer.EMPTY_SPLAT_TEXTURE; + item[propertyName] = property.isList ? [] : 0; } - const accumToWorld = ((_b2 = viewpoint.display) == null ? void 0 : _b2.accumulator.toWorld) ?? new THREE.Matrix4(); - const worldToCamera = camera.matrixWorld.clone().invert(); - const originToCamera = accumToWorld.clone().premultiply(worldToCamera); - originToCamera.decompose( - this.uniforms.renderToViewPos.value, - this.uniforms.renderToViewQuat.value, - new THREE.Vector3() - ); } - // Update the uniforms for the given viewpoint. - // Note that the client expects to be able to call render() at any point - // to update the canvas, so we must switch the viewpoint back to - // defaultView when we're finished. - prepareViewpoint(viewpoint) { - var _a2, _b2, _c, _d; - this.viewpoint = viewpoint ?? this.viewpoint; - if (this.viewpoint.display) { - const { accumulator, geometry } = this.viewpoint.display; - this.uniforms.numSplats.value = accumulator.splats.numSplats; - this.uniforms.packedSplats.value = accumulator.splats.getTexture(); - this.uniforms.rgbMinMaxLnScaleMinMax.value.set( - ((_a2 = accumulator.splats.splatEncoding) == null ? void 0 : _a2.rgbMin) ?? 0, - ((_b2 = accumulator.splats.splatEncoding) == null ? void 0 : _b2.rgbMax) ?? 1, - ((_c = accumulator.splats.splatEncoding) == null ? void 0 : _c.lnScaleMin) ?? LN_SCALE_MIN, - ((_d = accumulator.splats.splatEncoding) == null ? void 0 : _d.lnScaleMax) ?? LN_SCALE_MAX - ); - this.geometry = geometry; - this.material.transparent = !this.viewpoint.stochastic; - this.material.depthWrite = this.viewpoint.stochastic; - this.material.needsUpdate = true; - } else { - this.uniforms.numSplats.value = 0; - this.uniforms.packedSplats.value = PackedSplats.getEmptyArray; - this.geometry = EMPTY_GEOMETRY; - } + return item; +} +function createParseFn(properties, littleEndian) { + if (safeToCompile(properties)) { + return createCompiledParserFn(properties, littleEndian); } - // If spark.autoUpdate is false then you must manually call - // spark.update({ scene }) to have the scene Gsplats be re-generated. - update({ - scene, - viewToWorld - }) { - const originToWorld = this.matrixWorld; - if (this.preUpdate) { - this.updateInternal({ - scene, - originToWorld: originToWorld.clone(), - viewToWorld - }); - } else { - this.pendingUpdate.scene = scene; - this.pendingUpdate.originToWorld.copy(originToWorld); - if (this.pendingUpdate.timeoutId === -1) { - this.pendingUpdate.timeoutId = setTimeout(() => { - const { scene: scene2, originToWorld: originToWorld2 } = this.pendingUpdate; - this.pendingUpdate.scene = null; - this.pendingUpdate.timeoutId = -1; - const updated = this.updateInternal({ - scene: scene2, - originToWorld: originToWorld2, - viewToWorld - }); - if (updated) { - const gl = this.renderer.getContext(); - gl.flush(); - } - }, 1); - } - } + return createDynamicParserFn(properties, littleEndian); +} +const UNSAFE_EVAL_ALLOWED = (() => { + try { + new Function("return 42;"); + } catch (e) { + return false; } - updateInternal({ - scene, - originToWorld, - viewToWorld - }) { - var _a2; - if (!this.canAllocAccumulator()) { + return true; +})(); +const PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/; +function safeToCompile(properties) { + if (!UNSAFE_EVAL_ALLOWED) { + return false; + } + for (const [propertyName, property] of Object.entries(properties)) { + if (!PROPERTY_NAME_REGEX.test(propertyName)) { return false; } - if (!originToWorld) { - originToWorld = this.active.toWorld; - } - viewToWorld = viewToWorld ?? originToWorld.clone(); - const time = this.time ?? this.clock.getElapsedTime(); - const deltaTime = time - (this.lastUpdateTime ?? time); - this.lastUpdateTime = time; - const activeMapping = this.active.mapping.reduce((map, record) => { - map.set(record.node, record); - return map; - }, /* @__PURE__ */ new Map()); - const { generators: generators2, visibleGenerators, globalEdits } = this.compileScene(scene); - for (const object of generators2) { - (_a2 = object.frameUpdate) == null ? void 0 : _a2.call(object, { - renderer: this.renderer, - object, - time, - deltaTime, - viewToWorld, - globalEdits - }); + if (property.isList && !PLY_PROPERTY_TYPES.includes(property.countType)) { + return false; } - const visibleGenHash = new Set(visibleGenerators.map((g) => g.uuid)); - for (const object of generators2) { - const current = activeMapping.get(object); - const isVisible = object.generator && visibleGenHash.has(object.uuid); - const numSplats = isVisible ? object.numSplats : 0; - if (this.needsUpdate || object.generator !== (current == null ? void 0 : current.generator) || numSplats !== (current == null ? void 0 : current.count)) { - object.updateVersion(); - } + if (!PLY_PROPERTY_TYPES.includes(property.type)) { + return false; } - const originUpdate = !withinCoorientDist({ - matrix1: originToWorld, - matrix2: this.active.toWorld, - maxDistance: this.originDistance - }); - const needsUpdate = this.needsUpdate || originUpdate || generators2.length !== activeMapping.size || generators2.some((g) => { - var _a3; - return g.version !== ((_a3 = activeMapping.get(g)) == null ? void 0 : _a3.version); - }); - this.needsUpdate = false; - let accumulator = null; - if (needsUpdate) { - accumulator = this.maybeAllocAccumulator(); - if (!accumulator) { - throw new Error("Unreachable"); - } - const originChanged = !withinCoorientDist({ - matrix1: originToWorld, - matrix2: accumulator.toWorld, - maxDistance: 1e-5, - minCoorient: 0.99999 - }); - const sorted = visibleGenerators.map((g, gIndex) => { - const lastGen = activeMapping.get(g); - return !lastGen ? [Number.POSITIVE_INFINITY, g.version, g] : ( - // Sort by version deltas then by previous ordering in the mapping, - // attempting to keep unchanging generators near the front - // to improve our chances of avoiding a re-generation. - [g.version - lastGen.version, lastGen.base, g] - ); - }).sort((a, b) => { - if (a[0] !== b[0]) { - return a[0] - b[0]; + } + return true; +} +function createCompiledParserFn(properties, littleEndian) { + const parserSrc = ["let list;"]; + for (const [propertyName, property] of Object.entries(properties)) { + const fRestMatch = propertyName.match(F_REST_REGEX); + if (fRestMatch) { + const fRestIndex = +fRestMatch[1]; + parserSrc.push( + /*js*/ + ` + item.f_rest[${fRestIndex}] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian}); + offset += ${FIELD_BYTES[property.type]}; + ` + ); + } else if (!property.isList) { + parserSrc.push( + /*js*/ + ` + item['${propertyName}'] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian}); + offset += ${FIELD_BYTES[property.type]}; + ` + ); + } else { + parserSrc.push( + /*js*/ + ` + list = item['${propertyName}']; + list.length = PARSE_FIELD['${property.countType}'](data, offset, ${littleEndian}); + offset += ${FIELD_BYTES[property.countType]}; + for (let i = 0; i < list.length; i++) { + list[i] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian}); + offset += ${FIELD_BYTES[property.type]}; } - return a[1] - b[1]; - }); - const genOrder = sorted.map(([_version, _seq, g]) => g); - const splatCounts = genOrder.map((g) => g.numSplats); - const { maxSplats, mapping } = accumulator.splats.generateMapping(splatCounts); - const newGenerators = genOrder.map((node, gIndex) => { - const { base, count } = mapping[gIndex]; - return { - node, - generator: node.generator, - version: node.version, - base, - count - }; - }); - originToWorld.clone().invert().decompose( - this.translateToAccumulator.value, - this.rotateToAccumulator.value, - new THREE.Vector3() + ` ); - accumulator.ensureGenerate(maxSplats); - accumulator.splats.splatEncoding = { ...this.splatEncoding }; - accumulator.generateSplats({ - renderer: this.renderer, - modifier: this.modifier, - generators: newGenerators, - forceUpdate: originChanged, - originToWorld - }); - accumulator.splatsVersion = this.active.splatsVersion + 1; - const hasCorrespondence = accumulator.hasCorrespondence(this.active); - accumulator.mappingVersion = this.active.mappingVersion + (hasCorrespondence ? 0 : 1); - this.releaseAccumulator(this.active); - this.active = accumulator; - this.prepareViewpoint(); - } - setTimeout(() => { - for (const view of this.autoViewpoints) { - view.autoPoll({ accumulator: accumulator ?? void 0 }); - } - }, 1); - return true; + } } - compileScene(scene) { - const generators2 = []; - scene.traverse((node) => { - if (node instanceof SplatGenerator) { - generators2.push(node); - } - }); - const visibleGenerators = []; - scene.traverseVisible((node) => { - if (node instanceof SplatGenerator) { - visibleGenerators.push(node); - } - }); - const globalEdits = /* @__PURE__ */ new Set(); - scene.traverseVisible((node) => { - if (node instanceof SplatEdit) { - let ancestor = node.parent; - while (ancestor != null && !(ancestor instanceof SplatMesh)) { - ancestor = ancestor.parent; + parserSrc.push("return offset;"); + const fn = new Function( + "data", + "offset", + "item", + "PARSE_FIELD", + parserSrc.join("\n") + ); + return (data, offset, item) => fn(data, offset, item, PARSE_FIELD); +} +function createDynamicParserFn(properties, littleEndian) { + const parsers = []; + for (const [propertyName, property] of Object.entries(properties)) { + const fRestMatch = propertyName.match(F_REST_REGEX); + if (fRestMatch) { + const fRestIndex = +fRestMatch[1]; + parsers.push( + (data, offset, item) => { + item.f_rest[fRestIndex] = PARSE_FIELD[property.type]( + data, + offset, + littleEndian + ); + return offset + FIELD_BYTES[property.type]; } - if (ancestor == null) { - globalEdits.add(node); + ); + } else if (!property.isList) { + parsers.push( + (data, offset, item) => { + item[propertyName] = PARSE_FIELD[property.type]( + data, + offset, + littleEndian + ); + return offset + FIELD_BYTES[property.type]; } - } - }); - return { - generators: generators2, - visibleGenerators, - globalEdits: Array.from(globalEdits) - }; - } - // Renders out the scene to an environment map that can be used for - // Image-based lighting or similar applications. First optionally updates Gsplats, - // sorts them with respect to the provided worldCenter, renders 6 cube faces, - // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture - // that can assigned directly to a THREE.MeshStandardMaterial.envMap property. - async renderEnvMap({ - renderer, - scene, - worldCenter, - size = 256, - near = 0.1, - far = 1e3, - hideObjects = [], - update = false - }) { - var _a2, _b2; - if (!this.envViewpoint) { - this.envViewpoint = this.newViewpoint({ sort360: true }); - } - if (!_OldSparkRenderer.cubeRender || _OldSparkRenderer.cubeRender.target.width !== size || _OldSparkRenderer.cubeRender.near !== near || _OldSparkRenderer.cubeRender.far !== far) { - if (_OldSparkRenderer.cubeRender) { - _OldSparkRenderer.cubeRender.target.dispose(); - } - const target2 = new THREE.WebGLCubeRenderTarget(size, { - format: THREE.RGBAFormat, - generateMipmaps: true, - minFilter: THREE.LinearMipMapLinearFilter - }); - const camera2 = new THREE.CubeCamera(near, far, target2); - _OldSparkRenderer.cubeRender = { target: target2, camera: camera2, near, far }; - } - if (!_OldSparkRenderer.pmrem) { - _OldSparkRenderer.pmrem = new THREE.PMREMGenerator( - renderer ?? this.renderer ); - } - const viewToWorld = new THREE.Matrix4().setPosition(worldCenter); - await ((_a2 = this.envViewpoint) == null ? void 0 : _a2.prepare({ scene, viewToWorld, update })); - const { target, camera } = _OldSparkRenderer.cubeRender; - camera.position.copy(worldCenter); - const objectVisibility = /* @__PURE__ */ new Map(); - for (const object of hideObjects) { - objectVisibility.set(object, object.visible); - object.visible = false; - } - this.prepareViewpoint(this.envViewpoint); - camera.update(renderer ?? this.renderer, scene); - this.prepareViewpoint(this.defaultView); - for (const [object, visible] of objectVisibility.entries()) { - object.visible = visible; - } - return (_b2 = _OldSparkRenderer.pmrem) == null ? void 0 : _b2.fromCubemap(target.texture).texture; - } - // Utility function to recursively set the envMap property for any - // THREE.MeshStandardMaterial within the subtree of root. - recurseSetEnvMap(root, envMap) { - root.traverse((node) => { - if (node instanceof THREE.Mesh) { - if (Array.isArray(node.material)) { - for (const material of node.material) { - if (material instanceof THREE.MeshStandardMaterial) { - material.envMap = envMap; - } - } - } else { - if (node.material instanceof THREE.MeshStandardMaterial) { - node.material.envMap = envMap; + } else { + parsers.push( + (data, offset, item) => { + const list = item[propertyName]; + list.length = PARSE_FIELD[property.countType]( + data, + offset, + littleEndian + ); + let currentOffset = offset + FIELD_BYTES[property.countType]; + for (let i = 0; i < list.length; i++) { + list[i] = PARSE_FIELD[property.type]( + data, + currentOffset, + littleEndian + ); + currentOffset += FIELD_BYTES[property.type]; } + return currentOffset; } - } - }); - } - // Utility function that helps extract the Gsplat RGBA values from a - // SplatGenerator, including the result of any real-time RGBA SDF edits applied - // to a SplatMesh. This effectively "bakes" any computed RGBA values, which can - // now be used as a pipeline input via SplatMesh.splatRgba to inject these - // baked values into the Gsplat data. - getRgba({ - generator, - rgba - }) { - const mapping = this.active.mapping.find(({ node }) => node === generator); - if (!mapping) { - throw new Error("Generator not found"); - } - rgba = rgba ?? new RgbaArray(); - rgba.fromPackedSplats({ - packedSplats: this.active.splats, - base: mapping.base, - count: mapping.count, - renderer: this.renderer - }); - return rgba; - } - // Utility function that builds on getRgba({ generator }) and additionally - // reads back the RGBA values to the CPU in a Uint8Array with packed RGBA - // in that byte order. - async readRgba({ - generator, - rgba - }) { - rgba = this.getRgba({ generator, rgba }); - return rgba.read(); + ); + } } -}; -_OldSparkRenderer.cubeRender = null; -_OldSparkRenderer.pmrem = null; -_OldSparkRenderer.EMPTY_SPLAT_TEXTURE = new THREE.Data3DTexture(); -let OldSparkRenderer = _OldSparkRenderer; -const EMPTY_GEOMETRY = new OldSplatGeometry(new Uint32Array(1), 0); -dynoBlock( - { packedSplats: TPackedSplats, index: "int" }, - { gsplat: Gsplat }, - ({ packedSplats, index }) => { - if (!packedSplats || !index) { - throw new Error("Invalid input"); - } - const gsplat = readPackedSplat(packedSplats, index); - return { gsplat }; + return (data, offset, item) => { + let currentOffset = offset; + for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) { + currentOffset = parsers[parserIndex](data, currentOffset, item); + } + return currentOffset; + }; +} +function getNumSh(properties) { + let num_f_rest = 0; + while (properties[`f_rest_${num_f_rest}`]) { + num_f_rest += 1; } -); -function averageOriginToWorlds(originToWorlds) { - if (originToWorlds.length === 0) { - return null; + const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest]; + if (numSh == null) { + throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`); } - const position = new THREE.Vector3(); - const quaternion = new THREE.Quaternion(); - const scale = new THREE.Vector3(); - const positions = []; - const quaternions = []; - for (const matrix of originToWorlds) { - matrix.decompose(position, quaternion, scale); - positions.push(position); - quaternions.push(quaternion); - } - return new THREE.Matrix4().compose( - averagePositions(positions), - averageQuaternions(quaternions), - new THREE.Vector3(1, 1, 1) - ); + return numSh; } function decodeAntiSplat(fileBytes, initNumSplats, splatCallback) { const numSplats = Math.floor(fileBytes.length / 32); @@ -20611,9 +19492,6 @@ export { LN_SCALE_MAX, LN_SCALE_MIN, NUM_JOINTS, - OldSparkRenderer, - OldSparkViewpoint, - OldSplatAccumulator, PackedSplats, PagedSplats, PlyReader, @@ -20673,7 +19551,6 @@ export { toHalf, transcodeSpz, unpackSplat, - unpackSplats, utils }; //# sourceMappingURL=spark.module.js.map diff --git a/dist/spark.module.js.map b/dist/spark.module.js.map index 55170a7c..0c8b9c35 100644 --- a/dist/spark.module.js.map +++ b/dist/spark.module.js.map @@ -1 +1 @@ -{"version":3,"file":"spark.module.js","sources":["../src/OldSplatGeometry.ts","../node_modules/fflate/esm/browser.js","../src/defines.ts","../src/dyno/types.ts","../src/dyno/value.ts","../src/dyno/base.ts","../src/utils.ts","../src/OldSplatWorker.ts","../src/SplatWorker.ts","../src/dyno/splats.ts","../src/dyno/output.ts","../src/dyno/uniforms.ts","../src/dyno/program.ts","../src/dyno/mathTypes.ts","../src/dyno/math.ts","../src/dyno/logic.ts","../src/dyno/convert.ts","../src/dyno/vecmat.ts","../src/dyno/util.ts","../src/dyno/transform.ts","../src/dyno/control.ts","../src/dyno/texture.ts","../src/dyno/trig.ts","../src/ExtSplats.ts","../rust/spark-rs/pkg/spark_rs.js","../src/shaders/computeUvec4.glsl","../src/shaders/computeUvec4_Vec4.glsl","../src/shaders/computeUvec4x2_Vec4.glsl","../src/shaders/computeVec4.glsl","../src/shaders/oldSplatFragment.glsl","../src/shaders/oldSplatVertex.glsl","../src/shaders/splatDefines.glsl","../src/shaders/splatFragment.glsl","../src/shaders/splatVertex.glsl","../src/shaders.ts","../src/Readback.ts","../src/RgbaArray.ts","../src/SplatEdit.ts","../src/SplatGenerator.ts","../src/SplatAccumulator.ts","../src/SplatGeometry.ts","../src/SparkRenderer.ts","../src/SplatPager.ts","../src/SplatMesh.ts","../src/ply.ts","../src/SplatLoader.ts","../src/PackedSplats.ts","../src/OldSparkViewpoint.ts","../src/OldSplatAccumulator.ts","../src/OldSparkRenderer.ts","../src/antisplat.ts","../src/ksplat.ts","../src/spz.ts","../src/SplatSkinning.ts","../src/splatConstructors.ts","../src/generators/static.ts","../src/generators/snow.ts","../src/modifiers/normalColor.ts","../src/modifiers/depthColor.ts","../src/SparkXr.ts","../src/hands.ts","../src/controls.ts","../src/SparkPortals.ts"],"sourcesContent":["import * as THREE from \"three\";\n\n// SplatGeometry is an internal class used by SparkRenderer to render a collection\n// of Gsplats in a single draw call by extending THREE.InstancedBufferGeometry.\n// Each Gsplat is drawn as two triangles, with the order of the Gsplats determined\n// by the instance attribute \"ordering\".\n\nexport class OldSplatGeometry extends THREE.InstancedBufferGeometry {\n ordering: Uint32Array;\n attribute: THREE.InstancedBufferAttribute;\n\n constructor(ordering: Uint32Array, activeSplats: number) {\n super();\n\n this.ordering = ordering;\n\n this.setAttribute(\"position\", new THREE.BufferAttribute(QUAD_VERTICES, 3));\n this.setIndex(new THREE.BufferAttribute(QUAD_INDICES, 1));\n\n // Hack to work around Three.js\n // @ts-ignore\n this._maxInstanceCount = ordering.length;\n this.instanceCount = activeSplats;\n\n this.attribute = new THREE.InstancedBufferAttribute(ordering, 1, false, 1);\n this.attribute.setUsage(THREE.DynamicDrawUsage);\n this.setAttribute(\"splatIndex\", this.attribute);\n }\n\n update(ordering: Uint32Array, activeSplats: number) {\n this.ordering = ordering;\n this.attribute.array = ordering;\n this.instanceCount = activeSplats;\n this.attribute.addUpdateRange(0, activeSplats);\n this.attribute.needsUpdate = true;\n }\n}\n\n// Each instance draws to triangles covering a quad over coords (-1,-1,0)..(1,1,0)\nconst QUAD_VERTICES = new Float32Array([\n -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0,\n]);\n\nconst QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]);\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","// LN_SCALE_MIN..LN_SCALE_MAX define the internal scale range of for Gsplats,\n// covering approx 0.0001..8000 in range with discrete steps 7% apart.\n// The value \"0\" is reserved for truly flat scales, indicating a 2DGS.\n// If these values are changed, the corresponding values in splatDefines.glsl\n// must also be updated to match.\n\nexport const LN_SCALE_MIN = -12.0;\nexport const LN_SCALE_MAX = 9.0;\nexport const SCALE_MIN = Math.exp(LN_SCALE_MIN);\nexport const SCALE_MAX = Math.exp(LN_SCALE_MAX);\n\nexport const LN_SCALE_ZERO = -30.0;\nexport const SCALE_ZERO = Math.exp(LN_SCALE_ZERO);\n\n// Gsplats are stored in textures that are 2^11 x 2^11 x up to 2^11\n// Most WebGL2 implementations support 2D textures up to 2^12 x 2^12 (max 16M Gsplats)\n// 2D array textures and 3D textures up to 2^11 x 2^11 x 2^11 (max 8G Gsplats),\n// so we use 2D array textures for our representation for higher limits.\n\nexport const SPLAT_TEX_WIDTH_BITS = 11;\nexport const SPLAT_TEX_HEIGHT_BITS = 11;\nexport const SPLAT_TEX_DEPTH_BITS = 11;\nexport const SPLAT_TEX_LAYER_BITS =\n SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nexport const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS; // 2048\nexport const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS; // 2048\nexport const SPLAT_TEX_DEPTH = 1 << SPLAT_TEX_DEPTH_BITS; // 2048\nexport const SPLAT_TEX_MIN_HEIGHT = 1;\n\nexport const SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1;\nexport const SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1;\nexport const SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1;\n\n// Enable/disable Gsplat sorting via Rust WASM code. In testing the sorting\n// time between pure JS and WASM are minimal and don't make a big difference.\n\nexport const WASM_SPLAT_SORT = true;\n\n// Enable/disable compiling a dedicated parse function per element type\n// in the plyReader.\n\nexport const USE_COMPILED_PARSER_FUNCTION = true;\n\nexport enum SplatFileType {\n PLY = \"ply\",\n SPZ = \"spz\",\n SPLAT = \"splat\",\n KSPLAT = \"ksplat\",\n PCSOGS = \"pcsogs\",\n PCSOGSZIP = \"pcsogszip\",\n RAD = \"rad\",\n}\n\nexport type SplatEncoding = {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n sh1Max?: number;\n sh2Max?: number;\n sh3Max?: number;\n lodOpacity?: boolean;\n};\n\nexport const DEFAULT_SPLAT_ENCODING: SplatEncoding = {\n rgbMin: 0,\n rgbMax: 1,\n lnScaleMin: LN_SCALE_MIN,\n lnScaleMax: LN_SCALE_MAX,\n sh1Max: 1,\n sh2Max: 1,\n sh3Max: 1,\n lodOpacity: false,\n};\n\nexport type RadMeta = {\n version: number;\n type: string;\n count: number;\n maxSh?: number;\n lodTree?: boolean;\n chunkSize?: number;\n chunks: {\n offset: number;\n bytes: number;\n base?: number;\n count?: number;\n filename?: string;\n }[];\n splatEncoding?: SplatEncoding;\n};\n\nexport type PackedExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type PackedResult = {\n numSplats: number;\n packedArray: Uint32Array;\n extra: PackedExtra;\n splatEncoding: SplatEncoding;\n};\n\nexport type ExtExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3a?: Uint32Array;\n sh3b?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type ExtResult = {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: ExtExtra;\n};\n","import type * as THREE from \"three\";\n\nexport type BoolTypes = \"bool\" | \"bvec2\" | \"bvec3\" | \"bvec4\";\nexport type IntTypes = \"int\" | \"ivec2\" | \"ivec3\" | \"ivec4\";\nexport type UintTypes = \"uint\" | \"uvec2\" | \"uvec3\" | \"uvec4\";\nexport type AllIntTypes = IntTypes | UintTypes;\nexport type FloatTypes = \"float\" | \"vec2\" | \"vec3\" | \"vec4\";\nexport type ScalarTypes = \"uint\" | \"int\" | \"float\";\nexport type Vector2Types = \"vec2\" | \"ivec2\" | \"uvec2\";\nexport type Vector3Types = \"vec3\" | \"ivec3\" | \"uvec3\";\nexport type Vector4Types = \"vec4\" | \"ivec4\" | \"uvec4\";\nexport type VectorTypes = Vector2Types | Vector3Types | Vector4Types;\nexport type MatFloatTypes =\n | \"mat2\"\n | \"mat2x2\"\n | \"mat2x3\"\n | \"mat2x4\"\n | \"mat3\"\n | \"mat3x2\"\n | \"mat3x3\"\n | \"mat3x4\"\n | \"mat4\"\n | \"mat4x2\"\n | \"mat4x3\"\n | \"mat4x4\";\nexport type SquareMatTypes =\n | \"mat2\"\n | \"mat3\"\n | \"mat4\"\n | \"mat2x2\"\n | \"mat3x3\"\n | \"mat4x4\";\nexport type AllFloatTypes = FloatTypes | MatFloatTypes;\nexport type SignedTypes = IntTypes | FloatTypes;\nexport type AllSignedTypes = SignedTypes | MatFloatTypes;\nexport type ValueTypes = FloatTypes | IntTypes | UintTypes;\nexport type AllValueTypes = AllFloatTypes | IntTypes | UintTypes;\nexport type SimpleTypes = BoolTypes | AllValueTypes;\n\nexport type VectorElementType = A extends FloatTypes\n ? \"float\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nexport type SameSizeVec = T extends ScalarTypes\n ? \"float\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"vec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"vec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"vec4\"\n : never;\n\nexport type SameSizeUvec = T extends ScalarTypes\n ? \"uint\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"uvec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"uvec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"uvec4\"\n : never;\n\nexport type SameSizeIvec = T extends ScalarTypes\n ? \"int\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"ivec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"ivec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"ivec4\"\n : never;\n\nexport type SamplerTypes =\n | \"sampler2D\"\n | \"sampler2DArray\"\n | \"sampler3D\"\n | \"samplerCube\";\nexport type UsamplerTypes =\n | \"usampler2D\"\n | \"usampler2DArray\"\n | \"usampler3D\"\n | \"usamplerCube\";\nexport type IsamplerTypes =\n | \"isampler2D\"\n | \"isampler2DArray\"\n | \"isampler3D\"\n | \"isamplerCube\";\nexport type NormalSamplerTypes = SamplerTypes | UsamplerTypes | IsamplerTypes;\nexport type SamplerShadowTypes =\n | \"sampler2DShadow\"\n | \"sampler2DArrayShadow\"\n | \"samplerCubeShadow\";\nexport type AllSamplerTypes = NormalSamplerTypes | SamplerShadowTypes;\nexport type Sampler2DTypes =\n | \"sampler2D\"\n | \"usampler2D\"\n | \"isampler2D\"\n | \"sampler2DShadow\";\nexport type Sampler2DArrayTypes =\n | \"sampler2DArray\"\n | \"usampler2DArray\"\n | \"isampler2DArray\"\n | \"sampler2DArrayShadow\";\nexport type Sampler3DTypes = \"sampler3D\" | \"usampler3D\" | \"isampler3D\";\nexport type SamplerCubeTypes =\n | \"samplerCube\"\n | \"usamplerCube\"\n | \"isamplerCube\"\n | \"samplerCubeShadow\";\n\nexport function isBoolType(type: DynoType): boolean {\n return (\n type === \"bool\" || type === \"bvec2\" || type === \"bvec3\" || type === \"bvec4\"\n );\n}\n\nexport function isScalarType(type: DynoType): boolean {\n return type === \"int\" || type === \"uint\" || type === \"float\";\n}\n\nexport function isIntType(type: DynoType): boolean {\n return (\n type === \"int\" || type === \"ivec2\" || type === \"ivec3\" || type === \"ivec4\"\n );\n}\n\nexport function isUintType(type: DynoType): boolean {\n return (\n type === \"uint\" || type === \"uvec2\" || type === \"uvec3\" || type === \"uvec4\"\n );\n}\n\nexport function isFloatType(type: DynoType): boolean {\n return (\n type === \"float\" || type === \"vec2\" || type === \"vec3\" || type === \"vec4\"\n );\n}\n\nexport function isMatFloatType(type: DynoType): boolean {\n return (\n type === \"mat2\" ||\n type === \"mat2x2\" ||\n type === \"mat2x3\" ||\n type === \"mat2x4\" ||\n type === \"mat3\" ||\n type === \"mat3x2\" ||\n type === \"mat3x3\" ||\n type === \"mat3x4\" ||\n type === \"mat4\" ||\n type === \"mat4x2\" ||\n type === \"mat4x3\" ||\n type === \"mat4x4\"\n );\n}\n\nexport function isAllFloatType(type: DynoType): boolean {\n return isFloatType(type) || isMatFloatType(type);\n}\n\nexport function isVector2Type(type: DynoType): boolean {\n return type === \"vec2\" || type === \"ivec2\" || type === \"uvec2\";\n}\n\nexport function isVector3Type(type: DynoType): boolean {\n return type === \"vec3\" || type === \"ivec3\" || type === \"uvec3\";\n}\n\nexport function isVector4Type(type: DynoType): boolean {\n return type === \"vec4\" || type === \"ivec4\" || type === \"uvec4\";\n}\n\nexport function isVectorType(type: DynoType): boolean {\n return isVector2Type(type) || isVector3Type(type) || isVector4Type(type);\n}\n\nexport function isMat2(type: DynoType): boolean {\n return type === \"mat2\" || type === \"mat2x2\";\n}\nexport function isMat3(type: DynoType): boolean {\n return type === \"mat3\" || type === \"mat3x3\";\n}\nexport function isMat4(type: DynoType): boolean {\n return type === \"mat4\" || type === \"mat4x4\";\n}\n\nexport function vectorElementType(\n type: A,\n): VectorElementType {\n switch (type) {\n case \"vec2\":\n return \"float\" as VectorElementType;\n case \"vec3\":\n return \"float\" as VectorElementType;\n case \"vec4\":\n return \"float\" as VectorElementType;\n case \"ivec2\":\n return \"int\" as VectorElementType;\n case \"ivec3\":\n return \"int\" as VectorElementType;\n case \"ivec4\":\n return \"int\" as VectorElementType;\n case \"uvec2\":\n return \"uint\" as VectorElementType;\n case \"uvec3\":\n return \"uint\" as VectorElementType;\n case \"uvec4\":\n return \"uint\" as VectorElementType;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function vectorDim(type: A): number {\n switch (type) {\n case \"vec2\":\n case \"ivec2\":\n case \"uvec2\":\n return 2;\n case \"vec3\":\n case \"ivec3\":\n case \"uvec3\":\n return 3;\n case \"vec4\":\n case \"ivec4\":\n case \"uvec4\":\n return 4;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function sameSizeVec(type: T): SameSizeVec {\n if (isScalarType(type)) {\n return \"float\" as SameSizeVec;\n }\n if (isVector2Type(type)) {\n return \"vec2\" as SameSizeVec;\n }\n if (isVector3Type(type)) {\n return \"vec3\" as SameSizeVec;\n }\n if (isVector4Type(type)) {\n return \"vec4\" as SameSizeVec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeUvec(type: T): SameSizeUvec {\n if (isScalarType(type)) {\n return \"uint\" as SameSizeUvec;\n }\n if (isVector2Type(type)) {\n return \"uvec2\" as SameSizeUvec;\n }\n if (isVector3Type(type)) {\n return \"uvec3\" as SameSizeUvec;\n }\n if (isVector4Type(type)) {\n return \"uvec4\" as SameSizeUvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeIvec(type: T): SameSizeIvec {\n if (isScalarType(type)) {\n return \"int\" as SameSizeIvec;\n }\n if (isVector2Type(type)) {\n return \"ivec2\" as SameSizeIvec;\n }\n if (isVector3Type(type)) {\n return \"ivec3\" as SameSizeIvec;\n }\n if (isVector4Type(type)) {\n return \"ivec4\" as SameSizeIvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport type BaseType = SimpleTypes | AllSamplerTypes;\nexport type UserType = { type: string };\nexport type DynoType = BaseType | UserType;\n\nexport type DynoJsType = T extends \"bool\"\n ? boolean\n : T extends \"uint\"\n ? number\n : T extends \"int\"\n ? number\n : T extends \"float\"\n ? number\n : T extends \"bvec2\"\n ? [boolean, boolean]\n : T extends \"uvec2\"\n ? THREE.Vector2 | [number, number] | Uint32Array\n : T extends \"ivec2\"\n ? THREE.Vector2 | [number, number] | Int32Array\n : T extends \"vec2\"\n ? THREE.Vector2 | [number, number] | Float32Array\n : T extends \"bvec3\"\n ? [boolean, boolean, boolean]\n : T extends \"uvec3\"\n ? THREE.Vector3 | [number, number, number] | Uint32Array\n : T extends \"ivec3\"\n ? THREE.Vector3 | [number, number, number] | Int32Array\n : T extends \"vec3\"\n ?\n | THREE.Vector3\n | THREE.Color\n | [number, number, number]\n | Float32Array\n : T extends \"bvec4\"\n ? [boolean, boolean, boolean, boolean]\n : T extends \"uvec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Uint32Array\n : T extends \"ivec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Int32Array\n : T extends \"vec4\"\n ?\n | THREE.Vector4\n | THREE.Quaternion\n | [number, number, number, number]\n | Float32Array\n : T extends \"mat2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x3\"\n ? Float32Array\n : T extends \"mat2x4\"\n ? Float32Array\n : T extends \"mat3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x2\"\n ? Float32Array\n : T extends \"mat3x3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x4\"\n ? Float32Array\n : T extends \"mat4\"\n ? THREE.Matrix4 | Float32Array\n : T extends \"mat4x2\"\n ? Float32Array\n : T extends \"mat4x3\"\n ? Float32Array\n : T extends \"mat4x4\"\n ?\n | THREE.Matrix4\n | Float32Array\n : T extends \"usampler2D\"\n ? THREE.Texture\n : T extends \"isampler2D\"\n ? THREE.Texture\n : T extends \"sampler2D\"\n ? THREE.Texture\n : T extends \"sampler2DShadow\"\n ? THREE.Texture\n : T extends \"usampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"isampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArrayShadow\"\n ? THREE.Texture\n : T extends \"usampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"isampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"sampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"usamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"isamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCubeShadow\"\n ? THREE.Texture\n : unknown;\n\nexport function typeLiteral(type: DynoType): string {\n if (typeof type === \"string\") {\n return type;\n }\n if (typeof type === \"object\" && type.type) {\n return type.type;\n }\n throw new Error(`Invalid DynoType: ${String(type)}`);\n}\n\nexport function numberAsInt(value: number): string {\n return Math.trunc(value).toString();\n}\n\nexport function numberAsUint(value: number): string {\n const v = Math.max(0, Math.trunc(value));\n return `${v.toString()}u`;\n}\n\nexport function numberAsFloat(value: number): string {\n return value === Number.POSITIVE_INFINITY\n ? \"INFINITY\"\n : value === Number.NEGATIVE_INFINITY\n ? \"-INFINITY\"\n : Number.isInteger(value)\n ? value.toFixed(1)\n : value.toString();\n}\n","import * as THREE from \"three\";\n\nimport type { Dyno, IOTypes } from \"./base\";\nimport {\n type DynoJsType,\n type DynoType,\n type SimpleTypes,\n isAllFloatType,\n isBoolType,\n isIntType,\n isUintType,\n numberAsFloat,\n numberAsInt,\n numberAsUint,\n} from \"./types\";\n\nexport type DynoVal = DynoValue | HasDynoOut;\n\nexport function valType(val: DynoVal): T {\n if (val instanceof DynoValue) {\n return val.type;\n }\n const value = val.dynoOut();\n return value.type;\n}\n\nexport interface HasDynoOut {\n dynoOut(): DynoValue;\n}\n\nexport class DynoValue {\n type: T;\n // This field prevents TypeScript structural matching on objects with a \"type\" field\n private __isDynoValue = true;\n\n constructor(type: T) {\n this.type = type;\n }\n}\n\nexport class DynoOutput<\n T extends DynoType,\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends DynoValue {\n dyno: Dyno;\n key: string;\n\n constructor(dyno: Dyno, key: string) {\n super(dyno.outTypes[key] as T);\n this.dyno = dyno;\n this.key = key;\n }\n}\n\nexport class DynoLiteral extends DynoValue {\n literal: string;\n\n constructor(type: T, literal: string) {\n super(type);\n this.literal = literal;\n }\n\n getLiteral(): string {\n return this.literal;\n }\n}\n\nexport function dynoLiteral(\n type: T,\n literal: string,\n): DynoLiteral {\n return new DynoLiteral(type, literal);\n}\n\nexport class DynoConst extends DynoLiteral {\n value: DynoJsType;\n\n constructor(type: T, value: DynoJsType) {\n super(type, \"\");\n this.value = value;\n }\n\n getLiteral(): string {\n const { type, value } = this;\n switch (type) {\n case \"bool\":\n return value ? \"true\" : \"false\";\n case \"uint\":\n return numberAsUint(value as number);\n case \"int\":\n return numberAsInt(value as number);\n case \"float\":\n return numberAsFloat(value as number);\n case \"bvec2\": {\n const v = value as [boolean, boolean];\n return `bvec2(${v[0]}, ${v[1]})`;\n }\n case \"uvec2\": {\n if (value instanceof THREE.Vector2) {\n return `uvec2(${numberAsUint(value.x)}, ${numberAsUint(value.y)})`;\n }\n const v = value as [number, number] | Uint32Array;\n return `uvec2(${numberAsUint(v[0])}, ${numberAsUint(v[1])})`;\n }\n case \"ivec2\": {\n if (value instanceof THREE.Vector2) {\n return `ivec2(${numberAsInt(value.x)}, ${numberAsInt(value.y)})`;\n }\n const v = value as [number, number] | Int32Array;\n return `ivec2(${numberAsInt(v[0])}, ${numberAsInt(v[1])})`;\n }\n case \"vec2\": {\n if (value instanceof THREE.Vector2) {\n return `vec2(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)})`;\n }\n const v = value as [number, number] | Float32Array;\n return `vec2(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])})`;\n }\n case \"bvec3\": {\n const v = value as [boolean, boolean, boolean];\n return `bvec3(${v[0]}, ${v[1]}, ${v[2]})`;\n }\n case \"uvec3\": {\n if (value instanceof THREE.Vector3) {\n return `uvec3(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)})`;\n }\n const v = value as [number, number, number] | Uint32Array;\n return `uvec3(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])})`;\n }\n case \"ivec3\": {\n if (value instanceof THREE.Vector3) {\n return `ivec3(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)})`;\n }\n const v = value as [number, number, number] | Int32Array;\n return `ivec3(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])})`;\n }\n case \"vec3\": {\n if (value instanceof THREE.Vector3) {\n return `vec3(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)})`;\n }\n const v = value as [number, number, number] | Float32Array;\n return `vec3(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])})`;\n }\n case \"bvec4\": {\n const v = value as [boolean, boolean, boolean, boolean];\n return `bvec4(${v[0]}, ${v[1]}, ${v[2]}, ${v[3]})`;\n }\n case \"uvec4\": {\n if (value instanceof THREE.Vector4) {\n return `uvec4(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)}, ${numberAsUint(value.w)})`;\n }\n const v = value as [number, number, number, number] | Uint32Array;\n return `uvec4(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])}, ${numberAsUint(v[3])})`;\n }\n case \"ivec4\": {\n if (value instanceof THREE.Vector4) {\n return `ivec4(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)}, ${numberAsInt(value.w)})`;\n }\n const v = value as [number, number, number, number] | Int32Array;\n return `ivec4(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])}, ${numberAsInt(v[3])})`;\n }\n case \"vec4\": {\n if (value instanceof THREE.Vector4) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n if (value instanceof THREE.Quaternion) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n const v = value as [number, number, number, number] | Float32Array;\n return `vec4(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])}, ${numberAsFloat(v[3])})`;\n }\n case \"mat2\":\n case \"mat2x2\": {\n const m = value as DynoJsType<\"mat2\">;\n const e =\n m instanceof THREE.Matrix2 ? m.elements : (value as Float32Array);\n const arg = new Array(4).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x3\": {\n const e = value as DynoJsType<\"mat2x3\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x4\": {\n const e = value as DynoJsType<\"mat2x4\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3\":\n case \"mat3x3\": {\n const m = value as DynoJsType<\"mat3\">;\n const e =\n m instanceof THREE.Matrix3 ? m.elements : (value as Float32Array);\n const arg = new Array(9).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x2\": {\n const e = value as DynoJsType<\"mat3x2\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x4\": {\n const e = value as DynoJsType<\"mat3x4\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4\":\n case \"mat4x4\": {\n const m = value as DynoJsType<\"mat4\">;\n const e =\n m instanceof THREE.Matrix4 ? m.elements : (value as Float32Array);\n const arg = new Array(16).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x2\": {\n const e = value as DynoJsType<\"mat4x2\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x3\": {\n const e = value as DynoJsType<\"mat4x3\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n default:\n throw new Error(`Type not implemented: ${String(type)}`);\n }\n }\n}\n\nexport function dynoConst(\n type: T,\n value: DynoJsType,\n): DynoConst {\n return new DynoConst(type, value);\n}\n\nexport function literalZero(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(false)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(0.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(0)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(1u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalNegOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(-1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(-1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0xFFFFFFFFu)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n","import type { IUniform } from \"three\";\nimport type { DynoType } from \"./types\";\nimport {\n DynoLiteral,\n DynoOutput,\n type DynoVal,\n DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nconst DEFAULT_INDENT = \" \";\n\nexport class Compilation {\n globals: Set = new Set();\n statements: string[] = [];\n uniforms: Record = {};\n declares: Set = new Set();\n updaters: (() => void)[] = [];\n sequence = 0;\n indent: string = DEFAULT_INDENT;\n\n constructor({ indent }: { indent?: string } = {}) {\n this.indent = indent ?? DEFAULT_INDENT;\n }\n\n nextSequence() {\n return this.sequence++;\n }\n}\n\nexport type IOTypes = Record;\ntype GenerateContext = {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n};\n\nexport class Dyno {\n inTypes: InTypes;\n outTypes: OutTypes;\n\n inputs: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n }) {\n this.inTypes = inTypes ?? ({} as InTypes);\n this.outTypes = outTypes ?? ({} as OutTypes);\n this.inputs = inputs ?? {};\n this.update = update;\n\n this.globals = globals;\n this.statements = statements;\n this.generate =\n generate ??\n (({ inputs, outputs, compile }) => {\n return {\n globals: this.globals?.({ inputs, outputs, compile }),\n statements: this.statements?.({ inputs, outputs, compile }),\n };\n });\n }\n\n get outputs(): { [K in keyof OutTypes]: DynoVal } {\n const outputs = {} as { [K in keyof OutTypes]: DynoVal };\n for (const key in this.outTypes) {\n outputs[key] = new DynoOutput(this, key);\n }\n return outputs;\n }\n\n apply(inputs: { [K in keyof InTypes]?: DynoVal }): {\n [K in keyof OutTypes]: DynoVal;\n } {\n Object.assign(this.inputs, inputs);\n return this.outputs;\n }\n\n compile({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }): string[] {\n const result = [\n `// ${this.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`,\n ];\n\n const declares: (keyof OutTypes)[] = [];\n for (const key in outputs) {\n const name = outputs[key];\n if (name && !compile.declares.has(name)) {\n compile.declares.add(name);\n declares.push(key);\n }\n }\n\n const { globals, statements, uniforms } = this.generate({\n inputs,\n outputs,\n compile,\n });\n for (const global of globals ?? []) {\n compile.globals.add(global);\n }\n for (const key in uniforms) {\n compile.uniforms[key] = uniforms[key];\n }\n if (this.update) {\n compile.updaters.push(this.update);\n }\n\n for (const key of declares) {\n const name = outputs[key];\n if (name) {\n if (!compile.uniforms[name]) {\n result.push(`${dynoDeclare(name, this.outTypes[key])};`);\n }\n }\n }\n\n if (statements?.length) {\n result.push(\"{\");\n result.push(...statements.map((line) => compile.indent + line));\n result.push(\"}\");\n }\n return result;\n }\n}\n\nexport type DynoBlockType = (\n inputs: { [K in keyof InTypes]?: DynoVal },\n outputs: { [K in keyof OutTypes]?: DynoVal },\n { roots }: { roots: Dyno[] },\n) => { [K in keyof OutTypes]?: DynoVal } | undefined;\n\nexport class DynoBlock<\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends Dyno {\n construct: DynoBlockType;\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n construct,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n construct: DynoBlockType;\n }) {\n super({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n generate: (args) => this.generateBlock(args),\n });\n this.construct = construct;\n }\n\n generateBlock({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }) {\n const blockInputs: { [K in keyof InTypes]?: DynoVal } = {};\n const blockOutputs: { [K in keyof OutTypes]?: DynoVal } = {};\n\n for (const key in inputs) {\n if (inputs[key] != null) {\n blockInputs[key] = new DynoLiteral(this.inTypes[key], inputs[key]);\n }\n }\n for (const key in outputs) {\n if (outputs[key] != null) {\n blockOutputs[key] = new DynoValue(this.outTypes[key]);\n }\n }\n\n const options: { roots: Dyno[] } = { roots: [] };\n const returned = this.construct(blockInputs, blockOutputs, options);\n\n for (const global of this.globals?.({ inputs, outputs, compile }) ?? []) {\n compile.globals.add(global);\n }\n\n const ordering: Dyno[] = [];\n const nodeOuts = new Map<\n Dyno,\n { sequence: number; outNames: Map; newOuts: Set }\n >();\n\n function visit(\n node: Dyno,\n outKey?: string,\n outName?: string,\n ) {\n let outs = nodeOuts.get(node);\n if (!outs) {\n // First time visiting this node\n outs = {\n sequence: compile.nextSequence(),\n outNames: new Map(),\n newOuts: new Set(),\n };\n nodeOuts.set(node, outs);\n\n for (const key in node.inputs) {\n let input = node.inputs[key];\n while (input) {\n if (input instanceof DynoValue) {\n if (input instanceof DynoOutput) {\n visit(input.dyno, input.key);\n }\n break;\n }\n // Must be as HasDynoOut\n if (typeof input.dynoOut !== \"function\") {\n throw new Error(\n `dynoOut is not a function for ${input.constructor.name}`,\n );\n }\n input = input.dynoOut();\n }\n }\n ordering.push(node);\n }\n if (outKey) {\n if (!outName) {\n outs.newOuts.add(outKey);\n }\n outs.outNames.set(outKey, outName ?? `${outKey}_${outs.sequence}`);\n }\n }\n\n for (const root of options.roots) {\n visit(root);\n }\n\n for (const key in blockOutputs) {\n let value = returned?.[key] ?? blockOutputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoOutput) {\n visit(value.dyno, value.key, outputs[key]);\n }\n break;\n }\n // Must be as HasDynoOut\n value = value.dynoOut();\n }\n blockOutputs[key] = value;\n }\n\n const steps = [];\n\n for (const dyno of ordering) {\n // compile.statements.push(`// ${dyno.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`);\n\n const inputs: Record = {};\n const outputs: Record = {};\n\n for (const key in dyno.inputs) {\n let value = dyno.inputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoLiteral) {\n inputs[key] = value.getLiteral();\n } else if (value instanceof DynoOutput) {\n const source = nodeOuts.get(value.dyno)?.outNames.get(value.key);\n if (!source) {\n throw new Error(\n `Source not found for ${value.dyno.constructor.name}.${value.key}`,\n );\n }\n inputs[key] = source;\n }\n break;\n }\n // Must be as HasDynOut\n value = value.dynoOut();\n }\n }\n\n const outs = nodeOuts.get(dyno) ?? { outNames: new Map() };\n for (const [key, name] of outs.outNames.entries()) {\n outputs[key] = name;\n }\n\n const newSteps = dyno.compile({ inputs, outputs, compile });\n steps.push(newSteps);\n }\n\n const literalOutputs = [];\n for (const key in outputs) {\n if (blockOutputs[key] instanceof DynoLiteral) {\n literalOutputs.push(\n `${outputs[key]} = ${blockOutputs[key].getLiteral()};`,\n );\n }\n }\n if (literalOutputs.length > 0) {\n steps.push(literalOutputs);\n }\n\n const statements = steps.flatMap((step, index) => {\n // Add a blank line between steps\n return index === 0 ? step : [\"\", ...step];\n });\n return { statements };\n }\n}\n\nexport function dynoBlock<\n InTypes extends Record,\n OutTypes extends Record,\n>(\n inTypes: InTypes,\n outTypes: OutTypes,\n construct: DynoBlockType,\n { update, globals }: { update?: () => void; globals?: () => string[] } = {},\n) {\n return new DynoBlock({ inTypes, outTypes, construct, update, globals });\n}\n\nexport function dyno<\n InTypes extends Record,\n OutTypes extends Record,\n>({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n}: {\n inTypes: InTypes;\n outTypes: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n}) {\n return new Dyno({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n });\n}\n\nexport function dynoDeclare(name: string, type: DynoType, count?: number) {\n const typeStr = typeof type === \"string\" ? type : type.type;\n if (!typeStr) {\n throw new Error(`Invalid DynoType: ${String(type)}`);\n }\n return `${typeStr} ${name}${count != null ? `[${count}]` : \"\"}`;\n}\n\nexport function unindentLines(s: string): string[] {\n let seenNonEmpty = false;\n const lines = s\n .split(\"\\n\")\n .map((line) => {\n const trimmedLine = line.trimEnd();\n if (seenNonEmpty) {\n return trimmedLine;\n }\n if (trimmedLine.length > 0) {\n seenNonEmpty = true;\n return trimmedLine;\n }\n return null;\n })\n .filter((line) => line != null);\n while (lines.length > 0 && lines[lines.length - 1].length === 0) {\n lines.pop();\n }\n if (lines.length === 0) {\n return [];\n }\n\n const indent = lines[0].match(/^\\s*/)?.[0];\n if (!indent) {\n return lines; // No indent, return as is\n }\n // Remove indent from the beginning of each line\n const regex = new RegExp(`^${indent}`);\n return lines.map((line) => line.replace(regex, \"\"));\n}\n\nexport function unindent(s: string): string {\n return unindentLines(s).join(\"\\n\");\n}\n\nexport class UnaryOp<\n A extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n outKey,\n outTypeFunc,\n }: { a: DynoVal; outKey: OutKey; outTypeFunc: (aType: A) => OutType }) {\n const inTypes = { a: valType(a) };\n const outType = outTypeFunc(valType(a));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class BinaryOp<\n A extends DynoType,\n B extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b) };\n const outType = outTypeFunc(valType(a), valType(b));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class TrinaryOp<\n A extends DynoType,\n B extends DynoType,\n C extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B; c: C }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n c,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n c: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B, cType: C) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b), c: valType(c) };\n const outType = outTypeFunc(valType(a), valType(b), valType(c));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b, c } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n","import { Gunzip } from \"fflate\";\nimport * as THREE from \"three\";\n\n// Miscellaneous utility functions for Spark\n\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SCALE_ZERO,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_MIN_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines.js\";\nimport { unindent } from \"./dyno/base.js\";\n\nexport const threeRevision = Number.parseInt(THREE.REVISION);\nexport const threeMrtArray = threeRevision >= 179;\n\nconst f32buffer = new Float32Array(1);\nconst u32buffer = new Uint32Array(f32buffer.buffer);\nconst supportsFloat16Array = \"Float16Array\" in globalThis;\nconst f16buffer = supportsFloat16Array\n ? new globalThis[\"Float16Array\" as keyof typeof globalThis](1)\n : null;\nconst u16buffer = new Uint16Array(f16buffer?.buffer);\n\n// Returns a normalized array of numbers\nexport function normalize(vec: number[]) {\n const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0));\n return vec.map((v) => v / norm);\n}\n\n// Reinterpret the bits of a float32 as a uint32\nexport function floatBitsToUint(f: number): number {\n f32buffer[0] = f;\n return u32buffer[0];\n}\n\n// Reinterpret the bits of a uint32 as a float32\nexport function uintBitsToFloat(u: number): number {\n u32buffer[0] = u;\n return f32buffer[0];\n}\n\nexport const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS;\nexport const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS;\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfNative(f: number): number {\n f16buffer[0] = f;\n return u16buffer[0];\n}\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfJS(f: number): number {\n // Store the value into the shared Float32 array.\n f32buffer[0] = f;\n const bits = u32buffer[0];\n\n // Extract sign (1 bit), exponent (8 bits), and fraction (23 bits)\n const sign = (bits >> 31) & 0x1;\n const exp = (bits >> 23) & 0xff;\n const frac = bits & 0x7fffff;\n const halfSign = sign << 15;\n\n // Handle special cases: NaN and Infinity\n if (exp === 0xff) {\n // NaN: set all exponent bits to 1 and some nonzero fraction bits.\n if (frac !== 0) {\n return halfSign | 0x7fff;\n }\n // Infinity\n return halfSign | 0x7c00;\n }\n\n // Adjust the exponent from float32 bias (127) to float16 bias (15)\n const newExp = exp - 127 + 15;\n\n // Handle overflow: too large to represent in half precision.\n if (newExp >= 0x1f) {\n return halfSign | 0x7c00; // Infinity\n }\n if (newExp <= 0) {\n // Handle subnormals and underflow.\n if (newExp < -10) {\n // Too small: underflows to zero.\n return halfSign;\n }\n // Convert to subnormal: add the implicit leading 1 to the fraction,\n // then shift to align with the half-precision's 10 fraction bits.\n const subFrac = (frac | 0x800000) >> (1 - newExp + 13);\n return halfSign | subFrac;\n }\n\n // Normalized half-precision number: shift fraction to fit into 10 bits.\n const halfFrac = frac >> 13;\n return halfSign | (newExp << 10) | halfFrac;\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfNative(u: number): number {\n u16buffer[0] = u;\n return f16buffer[0];\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfJS(h: number): number {\n // Extract the sign (1 bit), exponent (5 bits), and fraction (10 bits)\n const sign = (h >> 15) & 0x1;\n const exp = (h >> 10) & 0x1f;\n const frac = h & 0x3ff;\n\n let f32bits: number;\n\n if (exp === 0) {\n if (frac === 0) {\n // Zero (positive or negative)\n f32bits = sign << 31;\n } else {\n // Subnormal half-precision number.\n // Normalize the subnormal number:\n let mant = frac;\n let e = -14; // For half, the exponent for subnormals is fixed at -14.\n // Shift left until the implicit leading 1 is in place.\n while ((mant & 0x400) === 0) {\n // 0x400 === 1 << 10\n mant <<= 1;\n e--;\n }\n // Remove the leading 1 (which is now implicit)\n mant &= 0x3ff;\n // Convert the half exponent (e) to the 32-bit float exponent:\n const newExp = e + 127; // 32-bit float bias is 127.\n const newFrac = mant << 13; // Align to 23-bit fraction (23 - 10 = 13)\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n } else if (exp === 0x1f) {\n // Handle special cases for Infinity and NaN.\n if (frac === 0) {\n // Infinity\n f32bits = (sign << 31) | 0x7f800000;\n } else {\n // NaN (we choose a quiet NaN)\n f32bits = (sign << 31) | 0x7fc00000;\n }\n } else {\n // Normalized half-precision number.\n // Adjust exponent from half (bias 15) to float32 (bias 127)\n const newExp = exp - 15 + 127;\n const newFrac = frac << 13;\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n\n // Write the 32-bit bit pattern to the shared buffer,\n // then read it as a float32 to return a JavaScript number.\n u32buffer[0] = f32bits;\n return f32buffer[0];\n}\n\n// Convert a number 0..1 to a 0..255 uint\nexport function floatToUint8(v: number): number {\n // Converts from 0..1 float to 0..255 uint8\n return Math.max(0, Math.min(255, Math.round(v * 255)));\n}\n\n// Convert a number -1..1 to a -127..127 int\nexport function floatToSint8(v: number): number {\n // Converts from -1..1 float to -127..127 int8\n return Math.max(-127, Math.min(127, Math.round(v * 127)));\n}\n\n// Convert a 0..255 uint to a 0..1 float\nexport function Uint8ToFloat(v: number): number {\n // Converts from 0..255 uint8 to 0..1 float\n return v / 255;\n}\n\n// Convert a -127..127 int to a -1..1 float\nexport function Sint8ToFloat(v: number): number {\n // Converts from -127..127 int8 to -1..1 float\n return v / 127;\n}\n\n// A simple utility class for caching a fixed number of items\nexport class DataCache {\n // Maximum number of items to cache\n maxItems: number;\n\n // Function to fetch data for a key\n asyncFetch: (key: string) => Promise;\n\n // Function to dispose of data when it is no longer needed\n dispose?: (data: unknown) => void;\n\n // Array of cached items\n items: { key: string; data: unknown }[];\n\n // In-progress fetch promises\n pending: Map>;\n\n // Create a DataCache with a given function that fetches data not in the cache.\n constructor({\n asyncFetch,\n dispose,\n maxItems = 5,\n }: {\n asyncFetch: (key: string) => Promise;\n dispose?: (data: unknown) => void;\n maxItems?: number;\n }) {\n this.asyncFetch = asyncFetch;\n this.dispose = dispose;\n this.maxItems = maxItems;\n this.items = [];\n this.pending = new Map();\n }\n\n has(key: string): boolean {\n return this.items.some((item) => item.key === key);\n }\n\n getImmediate(key: string): unknown | undefined {\n const index = this.items.findIndex((item) => item.key === key);\n if (index >= 0) {\n // Data exists in our cache, move it to the end of the array\n const item = this.items.splice(index, 1)[0];\n this.items.push(item);\n // Return the cached data\n return item.data;\n }\n return undefined;\n }\n\n // Fetch data for the key, returning cached data if available.\n async getFetch(key: string): Promise {\n const immediate = this.getImmediate(key);\n if (immediate !== undefined) {\n return immediate;\n }\n\n let pending = this.pending.get(key);\n if (pending) {\n return pending;\n }\n\n pending = this.asyncFetch(key).then((data) => {\n this.pending.delete(key);\n\n // Add the data to the cache\n this.items.push({ key, data });\n // If the cache is too large, remove the oldest accessed item\n while (this.items.length > this.maxItems) {\n const removed = this.items.shift();\n if (removed && this.dispose) {\n this.dispose(removed.data);\n }\n }\n // Return the fetched data\n return data;\n });\n this.pending.set(key, pending);\n return pending;\n }\n}\n\n// Like Array.map but for objects\nexport function mapObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n const entries = Object.entries(obj).map(([key, value]) => [\n key,\n fn(value, key),\n ]);\n // Returns a new object with the mapped values\n return Object.fromEntries(entries);\n}\n\n// Like Array.map().filter() but for objects.\n// The callback fn() should return undefined to filter out the key.\nexport function mapFilterObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n // If no return (or return undefined), the key is not included in the result\n const entries = Object.entries(obj)\n .map(([key, value]) => [key, fn(value, key)])\n .filter(([_, value]) => value !== undefined);\n // Returns a new object with the filtered values\n return Object.fromEntries(entries);\n}\n\n// Recursively finds all ArrayBuffers in an object and returns them as an array\n// to use as transferable objects to send between workers.\nexport function getTransferable(ctx: unknown): Transferable[] {\n const buffers: Transferable[] = [];\n const seen = new Set();\n\n function traverse(obj: unknown) {\n if (obj && typeof obj === \"object\" && !seen.has(obj)) {\n seen.add(obj);\n\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n // Handles TypedArrays and DataView\n buffers.push(obj.buffer as ArrayBuffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n\n traverse(ctx);\n return buffers;\n}\n\n// Create an array of the given size and initialize element with initFunction()\nexport function newArray(\n n: number,\n initFunction: (index: number) => T,\n): T[] {\n // Creates a new array and calls a constructor function for each element with index\n return new Array(n).fill(null).map((_, i) => initFunction(i));\n}\n\n// A free list that has a pool of items of type T, with callbacks\n// for constructing, disposing, and checking if an item is valid for the given args.\nexport class FreeList {\n items: T[];\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n\n constructor({\n // Allocate a new item with the given args\n allocate,\n // Dispose of an item (optional, if GC is enough)\n dispose,\n // Check if an existing item in the list is valid for the given args,\n // allowing you to store heterogeneous items in the list.\n valid,\n }: {\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n }) {\n this.items = [];\n this.allocate = allocate;\n this.dispose = dispose;\n this.valid = valid;\n }\n\n // Allocate a new item from the free list, first checking if a existing item\n // on the freelist is valid for the given args.\n alloc(args: Args): T {\n while (true) {\n const item = this.items.pop();\n if (!item) {\n // No items in the free list, allocate a new one\n break;\n }\n if (this.valid(item, args)) {\n // Found a valid item, return it\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): found valid item. Reusing...`);\n return item;\n }\n // Item isn't valid for our args, dispose of it and try again\n if (this.dispose) {\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): disposing invalid item.`);\n this.dispose(item);\n }\n }\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): allocating new item`);\n return this.allocate(args);\n }\n\n free(item: T) {\n // Return item to the free list\n this.items.push(item);\n }\n\n disposeAll() {\n // Disposes of all items in the free list\n let item: T | undefined;\n item = this.items.pop();\n while (item) {\n if (this.dispose) {\n this.dispose(item);\n }\n item = this.items.pop();\n }\n }\n}\n\nexport function encodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) {\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n extA[i4] = floatBitsToUint(x);\n extA[i4 + 1] = floatBitsToUint(y);\n extA[i4 + 2] = floatBitsToUint(z);\n extA[i4 + 3] = toHalf(opacity);\n extB[i4] = toHalf(r) | (toHalf(g) << 16);\n extB[i4 + 1] = toHalf(b) | (toHalf(Math.log(scaleX)) << 16);\n extB[i4 + 2] = toHalf(Math.log(scaleY)) | (toHalf(Math.log(scaleZ)) << 16);\n extB[i4 + 3] = encodeQuatOctXy1010R12(quatX, quatY, quatZ, quatW);\n}\n\nexport function decodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n result.center.x = uintBitsToFloat(extA[i4]);\n result.center.y = uintBitsToFloat(extA[i4 + 1]);\n result.center.z = uintBitsToFloat(extA[i4 + 2]);\n result.opacity = fromHalf(extA[i4 + 3] & 0xffff);\n result.color.r = fromHalf(extB[i4] & 0xffff);\n result.color.g = fromHalf(extB[i4] >>> 16);\n result.color.b = fromHalf(extB[i4 + 1] & 0xffff);\n result.scales.x = Math.exp(fromHalf(extB[i4 + 1] >>> 16));\n result.scales.y = Math.exp(fromHalf(extB[i4 + 2] & 0xffff));\n result.scales.z = Math.exp(fromHalf(extB[i4 + 2] >>> 16));\n decodeQuatOctXy1010R12(extB[i4 + 3], result.quaternion);\n return result;\n}\n\n// Encode a PackedSplat as 4 consecutive Uint32 elements in the packedSplats array.\n// The center coordinates x,y,z are encoded as float16, the scales x,y,z as a\n// logarithmic uint8, rotation as three uint8s representing rotation axis and angle,\n// and RGBA as 4xuint8.\nexport function setPackedSplat(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * opacity : opacity);\n\n // Alternate internal encodings commented out below.\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n // Encode the splat as 4 consecutive Uint32 elements\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] =\n uScaleX | (uScaleY << 8) | (uScaleZ << 16) | (uQuatZ << 24);\n}\n\n// Encode the center coordinates x,y,z in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatCenter(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n) {\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n const i4 = index * 4;\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (packedSplats[i4 + 2] & 0xffff0000);\n}\n\n// Encode the scales x,y,z in the packedSplats Uint32Array, leaving all other fields as is.\nexport function setPackedSplatScales(\n packedSplats: Uint32Array,\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n encoding?: {\n lnScaleMin?: number;\n lnScaleMax?: number;\n },\n) {\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const i4 = index * 4;\n packedSplats[i4 + 3] =\n uScaleX |\n (uScaleY << 8) |\n (uScaleZ << 16) |\n (packedSplats[i4 + 3] & 0xff000000);\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempQuaternion = new THREE.Quaternion();\n\n// Encode the rotation quatX, quatY, quatZ, quatW in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatQuat(\n packedSplats: Uint32Array,\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n) {\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n const i4 = index * 4;\n packedSplats[i4 + 2] =\n (packedSplats[i4 + 2] & 0x0000ffff) | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] = (packedSplats[i4 + 3] & 0x00ffffff) | (uQuatZ << 24);\n}\n\n// Encode the RGBA color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgba(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n a: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * a : a);\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n}\n\n// Encode the RGB color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgb(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n\n const i4 = index * 4;\n packedSplats[i4] =\n uR | (uG << 8) | (uB << 16) | (packedSplats[i4] & 0xff000000);\n}\n\n// Encode the opacity in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatOpacity(\n packedSplats: Uint32Array,\n index: number,\n opacity: number,\n) {\n const uA = floatToUint8(opacity);\n\n const i4 = index * 4;\n packedSplats[i4] = (packedSplats[i4] & 0x00ffffff) | (uA << 24);\n}\n\nconst packedCenter = new THREE.Vector3();\nconst packedScales = new THREE.Vector3();\nconst packedQuaternion = new THREE.Quaternion();\nconst packedColor = new THREE.Color();\nconst packedFields = {\n center: packedCenter,\n scales: packedScales,\n quaternion: packedQuaternion,\n color: packedColor,\n opacity: 0.0,\n};\n\n// Unpack all components of a PackedSplat from the packedSplats Uint32Array into\n// THREE.js vector objects. The returned objects will be reused each call.\nexport function unpackSplat(\n packedSplats: Uint32Array,\n index: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n\n const i4 = index * 4;\n const word0 = packedSplats[i4];\n const word1 = packedSplats[i4 + 1];\n const word2 = packedSplats[i4 + 2];\n const word3 = packedSplats[i4 + 3];\n\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n result.color.set(\n rgbMin + ((word0 & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 8) & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 16) & 0xff) / 255) * rgbRange,\n );\n result.opacity = ((word0 >>> 24) & 0xff) / 255;\n if (encoding?.lodOpacity) {\n result.opacity = 2.0 * result.opacity;\n }\n result.center.set(\n fromHalf(word1 & 0xffff),\n fromHalf((word1 >>> 16) & 0xffff),\n fromHalf(word2 & 0xffff),\n );\n\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n const uScalesX = word3 & 0xff;\n result.scales.x =\n uScalesX === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesX - 1) * lnScaleScale);\n const uScalesY = (word3 >>> 8) & 0xff;\n result.scales.y =\n uScalesY === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesY - 1) * lnScaleScale);\n const uScalesZ = (word3 >>> 16) & 0xff;\n result.scales.z =\n uScalesZ === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesZ - 1) * lnScaleScale);\n\n const uQuat = ((word2 >>> 16) & 0xffff) | ((word3 >>> 8) & 0xff0000);\n decodeQuatOctXy88R8(uQuat, result.quaternion);\n // decodeQuatXyz888(uQuat, result.quaternion);\n // decodeQuatEulerXyz888(uQuat, result.quaternion);\n\n return result;\n}\n\n// Compute a texture array size that is large enough to fit numSplats. The most\n// common 2D texture size in WebGL2 is 4096x4096 which only allows for 16M splats,\n// so Spark stores Gsplat data in a 2D texture array, which most platforms support\n// up to 2048x2048x2048 = 8G splats. Allocations that fit within a single 2D texture\n// array layer will be rounded up to fill an entire texture row. Once a texture\n// array layer is filled, the allocation will be rounded up to fill an entire layer.\n// This is done so the entire set of splats can be covered by min/max coords across\n// each dimension.\nexport function getTextureSize(numSplats: number): {\n width: number;\n height: number;\n depth: number;\n maxSplats: number;\n} {\n // Compute a texture array size that is large enough to fit numSplats.\n // The width is always 2048, the height sized to fit the splats but no larger than 2048.\n // The depth is the number of layers needed to fit the splats.\n // maxSplats is computed as the new total available splats that can be stored.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n const maxSplats = width * height * depth;\n return { width, height, depth, maxSplats };\n}\n\nexport function computeMaxSplats(numSplats: number): number {\n // Compute the size of a Gsplat array texture (2048x2048xD) that can fit\n // numSplats splats, and return the total number of splats that can be stored\n // in such a texture.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n return width * height * depth;\n}\n\n// Heuristic function to determine if we are running on a mobile device.\nexport function isMobile(): boolean {\n if (navigator.platform.toLowerCase().startsWith(\"win\")) {\n return false;\n }\n if (navigator.maxTouchPoints > 0) {\n // Touch-enabled device, assume it's mobile\n return true;\n }\n return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test(\n navigator.userAgent,\n );\n}\n\n// Heuristic function to determine if we are running on an Android device.\n// (does not include Oculus Quest)\nexport function isAndroid(): boolean {\n return (\n /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent)\n );\n}\n\n// Heuristic function to determine if we are running on an Oculus Quest device.\nexport function isOculus(): boolean {\n return !!navigator.xr && /Oculus/.test(navigator.userAgent);\n}\n\nexport function isQuest2() {\n return isOculus() && /Quest 2/.test(navigator.userAgent);\n}\n\nexport function isIos(): boolean {\n return /iPhone|iPad/.test(navigator.userAgent);\n}\n\nexport function isVisionPro(): boolean {\n return (\n !!navigator.xr &&\n isIos() &&\n /Safari/.test(navigator.userAgent) &&\n isMobile()\n );\n}\n\n// Take an array of RGBA8 encoded pixels and flip them vertically in-place.\n// This is useful for converting between top-left and bottom-left coordinate systems\n// in standard 2D images vs WebGL2.\nexport function flipPixels(\n pixels: Uint8Array,\n width: number,\n height: number,\n): Uint8Array {\n // Flips pixels vertically in-place, returns original array.\n const tempLine = new Uint8Array(width * 4);\n\n // Only need to process half the height since we're swapping\n for (let y = 0; y < height / 2; y++) {\n const topOffset = y * width * 4;\n const bottomOffset = (height - 1 - y) * width * 4;\n\n // Save top line to temp buffer\n tempLine.set(pixels.subarray(topOffset, topOffset + width * 4));\n // Move bottom line to top\n pixels.set(\n pixels.subarray(bottomOffset, bottomOffset + width * 4),\n topOffset,\n );\n // Move saved top line to bottom\n pixels.set(tempLine, bottomOffset);\n }\n return pixels;\n}\n\n// Utility to take an array of RGBA8 encoded pixels and convert them to a\n// PNG-encoded image data URL that can be downloaded to the client.\nexport function pixelsToPngUrl(\n pixels: Uint8Array,\n width: number,\n height: number,\n): string {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Can't get 2d context\");\n }\n const imageData = ctx.createImageData(width, height);\n imageData.data.set(pixels);\n ctx.putImageData(imageData, 0, 0);\n return canvas.toDataURL(\"image/png\");\n}\n\n// Manually clone a THREE.Clock object.\nexport function cloneClock(clock: THREE.Clock): THREE.Clock {\n const newClock = new THREE.Clock(clock.autoStart);\n newClock.startTime = clock.startTime;\n newClock.oldTime = clock.oldTime;\n newClock.elapsedTime = clock.elapsedTime;\n newClock.running = clock.running;\n return newClock;\n}\n\n// Utility to filter out an undefined values from an object.\nexport function omitUndefined(obj: T): Partial {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => value !== undefined),\n ) as Partial;\n}\n\n// \"Identity\" vertex shader that just passes through the position.\nexport const IDENT_VERTEX_SHADER = unindent(`\n precision highp float;\n\n in vec3 position;\n\n void main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n }\n`);\n\n// Returns the average position of an array of THREE.Vector3.\nexport function averagePositions(positions: THREE.Vector3[]): THREE.Vector3 {\n const sum = new THREE.Vector3();\n for (const position of positions) {\n sum.add(position);\n }\n return sum.divideScalar(positions.length);\n}\n\n// Returns an \"average\" of an array of THREE.Quaternion objects.\n// Note that this is not a spherical lerp between quaternions but\n// rather an arithmetic mean that is normalized to unit length.\nexport function averageQuaternions(\n quaternions: THREE.Quaternion[],\n): THREE.Quaternion {\n if (quaternions.length === 0) {\n return new THREE.Quaternion();\n }\n const sum = quaternions[0].clone();\n for (let i = 1; i < quaternions.length; i++) {\n if (quaternions[i].dot(quaternions[0]) < 0.0) {\n sum.x -= quaternions[i].x;\n sum.y -= quaternions[i].y;\n sum.z -= quaternions[i].z;\n sum.w -= quaternions[i].w;\n } else {\n sum.x += quaternions[i].x;\n sum.y += quaternions[i].y;\n sum.z += quaternions[i].z;\n sum.w += quaternions[i].w;\n }\n }\n return sum.normalize();\n}\n\n// Compare two coordinates given by matrix1 and matrix2, returning the distance\n// between their origins and the \"coincidence\" of their orientations, defined\n// as the dot product of their \"-z\" axes.\nexport function coinciDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n const direction1 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix1)\n .sub(origin1)\n .normalize();\n const direction2 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix2)\n .sub(origin2)\n .normalize();\n\n const distance = origin1.distanceTo(origin2);\n const coincidence = direction1.dot(direction2);\n return { distance, coincidence };\n}\n\n// Utility function that returns whether two coordinate system origins\n// given by matrix1 and matrix2 are within a certain maxDistance of each other.\nexport function withinDist({\n matrix1,\n matrix2,\n maxDistance,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n}): boolean {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n return origin1.distanceTo(origin2) <= maxDistance;\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined by a maxDistance and a minCoincidence.\nexport function withinCoinciDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoincidence,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoincidence?: number;\n}): boolean {\n const { distance, coincidence } = coinciDist(matrix1, matrix2);\n return (\n distance <= maxDistance &&\n (minCoincidence == null || coincidence >= minCoincidence)\n );\n}\n\n// Compare two coordinate systems given by matrix1 and matrix2, returning the\n// distance between their origins and the \"coorientation\" of their orientations,\n// define as the dot product of their quaternion transforms (flipping their\n// orientation to be on the same hemisphere if necessary).\nexport function coorientDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const [origin1, rotate1] = [new THREE.Vector3(), new THREE.Quaternion()];\n const [origin2, rotate2] = [new THREE.Vector3(), new THREE.Quaternion()];\n matrix1.decompose(origin1, rotate1, new THREE.Vector3());\n matrix2.decompose(origin2, rotate2, new THREE.Vector3());\n\n const distance = origin1.distanceTo(origin2);\n const coorient = Math.abs(rotate1.dot(rotate2));\n return { distance, coorient };\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined a maxDistance and a minCoorient.\nexport function withinCoorientDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoorient,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoorient?: number;\n}): boolean {\n const { distance, coorient } = coorientDist(matrix1, matrix2);\n return (\n distance <= maxDistance && (minCoorient == null || coorient >= minCoorient)\n );\n}\n\n// Like Math.sign but with a custom epsilon value.\nexport function epsilonSign(value: number, epsilon = 0.001): number {\n if (Math.abs(value) < epsilon) {\n return 0;\n }\n return Math.sign(value);\n}\n\n// Encode a THREE.Quaternion into a 24-bit integer, converting the xyz coordinates\n// to signed 8-bit integers (w can be derived from xyz), and flipping the sign\n// of the quaternion if necessary to make this possible (q == -q for quaternions).\nexport function encodeQuatXyz888(q: THREE.Quaternion): number {\n const negQuat = q.w < 0.0;\n const iQuatX = floatToSint8(negQuat ? -q.x : q.x);\n const iQuatY = floatToSint8(negQuat ? -q.y : q.y);\n const iQuatZ = floatToSint8(negQuat ? -q.z : q.z);\n const uQuatX = iQuatX & 0xff;\n const uQuatY = iQuatY & 0xff;\n const uQuatZ = iQuatZ & 0xff;\n return uQuatX | (uQuatY << 8) | (uQuatZ << 16);\n}\n\n// Decode a 24-bit integer of the quaternion's xyz coordinates into a THREE.Quaternion.\nexport function decodeQuatXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n const iQuatX = (encoded << 24) >> 24;\n const iQuatY = (encoded << 16) >> 24;\n const iQuatZ = (encoded << 8) >> 24;\n out.set(iQuatX / 127.0, iQuatY / 127.0, iQuatZ / 127.0, 0.0);\n const dotSelf = out.x * out.x + out.y * out.y + out.z * out.z;\n out.w = Math.sqrt(Math.max(0.0, 1.0 - dotSelf));\n return out;\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempNormalizedQuaternion = new THREE.Quaternion();\nconst tempAxis = new THREE.Vector3();\n\n/**\n * Encodes a THREE.Quaternion into a 24‐bit integer.\n *\n * Bit layout (LSB → MSB):\n * - Bits 0–7: quantized U (8 bits)\n * - Bits 8–15: quantized V (8 bits)\n * - Bits 16–23: quantized angle θ (8 bits) from [0,π]\n *\n * This version uses folded octahedral mapping (all inline).\n */\nexport function encodeQuatOctXy88R8(q: THREE.Quaternion): number {\n // Force the minimal representation (q.w >= 0)\n const qnorm = tempNormalizedQuaternion.copy(q).normalize();\n if (qnorm.w < 0) {\n qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w);\n }\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnorm.w);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(\n qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z,\n );\n const axis =\n xyz_norm < 1e-6\n ? tempAxis.set(1, 0, 0)\n : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm);\n // const foldAxis = (axis.z < 0);\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z);\n let p_x = axis.x / sum;\n let p_y = axis.y / sum;\n // Fold the lower hemisphere.\n if (axis.z < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 7 bits (0..127)\n const quantU = Math.round(u_f * 255);\n const quantV = Math.round(v_f * 255);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 10 bits (0..1023) ---\n const angleInt = Math.round(theta * (255 / Math.PI));\n\n // Pack into 24 bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16) | (quantV << 8) | quantU;\n}\n\n/**\n * Decodes a 24‐bit encoded quaternion (packed in a number) back to a THREE.Quaternion.\n *\n * Assumes the same bit layout as in encodeQuatOctXy88R8.\n */\nexport function decodeQuatOctXy88R8(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 8‐bit quantU and quantV, and 8‐bit angleInt.\n const quantU = encoded & 0xff; // bits 0–7\n const quantV = (encoded >>> 8) & 0xff; // bits 8–15\n const angleInt = (encoded >>> 16) & 0xff; // bits 16–23\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 255;\n const v_f = quantV / 255;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axis = tempAxis.set(f_x, f_y, f_z).normalize();\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 255) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axis.x * s, axis.y * s, axis.z * s, w);\n return out;\n}\n\n/**\n * Encodes a THREE.Quaternion into a 24‑bit unsigned integer\n * by converting it to Euler angles (roll, pitch, yaw).\n * The Euler angles are assumed to be in radians in the range [-π, π].\n * Each angle is normalized to [0,1] and quantized to 8 bits.\n * Bit layout (LSB→MSB):\n * - Bits 0–7: roll (quantized)\n * - Bits 8–15: pitch (quantized)\n * - Bits 16–23: yaw (quantized)\n */\nexport function encodeQuatEulerXyz888(q: THREE.Quaternion): number {\n // Normalize quaternion to ensure a proper rotation.\n const qNorm = q.clone().normalize();\n\n // Tait–Bryan angles (roll, pitch, yaw)\n const sinr_cosp = 2.0 * (qNorm.w * qNorm.x + qNorm.y * qNorm.z);\n const cosr_cosp = 1.0 - 2.0 * (qNorm.x * qNorm.x + qNorm.y * qNorm.y);\n const roll = Math.atan2(sinr_cosp, cosr_cosp);\n\n const sinp = 2.0 * (qNorm.w * qNorm.y - qNorm.z * qNorm.x);\n const pitch =\n Math.abs(sinp) >= 1.0 ? Math.sign(sinp) * (Math.PI / 2) : Math.asin(sinp);\n\n const siny_cosp = 2.0 * (qNorm.w * qNorm.z + qNorm.x * qNorm.y);\n const cosy_cosp = 1.0 - 2.0 * (qNorm.y * qNorm.y + qNorm.z * qNorm.z);\n const yaw = Math.atan2(siny_cosp, cosy_cosp);\n\n // Map each angle from [-π, π] to [0, 1]\n const normRoll = (roll + Math.PI) / (2 * Math.PI);\n const normPitch = (pitch + Math.PI) / (2 * Math.PI);\n const normYaw = (yaw + Math.PI) / (2 * Math.PI);\n\n // Quantize to 8 bits (0 to 255)\n const rollQ = Math.round(normRoll * 255);\n const pitchQ = Math.round(normPitch * 255);\n const yawQ = Math.round(normYaw * 255);\n\n // Pack into a 24-bit unsigned integer:\n // Bits 0–7: rollQ, Bits 8–15: pitchQ, Bits 16–23: yawQ.\n return (yawQ << 16) | (pitchQ << 8) | rollQ;\n}\n\n/**\n * Decodes a 24‑bit unsigned integer into a THREE.Quaternion\n * by unpacking three 8‑bit values (roll, pitch, yaw) in the range [0,255]\n * and then converting them back to Euler angles in [-π, π] and to a quaternion.\n */\nexport function decodeQuatEulerXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Unpack 8‑bit values.\n const rollQ = encoded & 0xff;\n const pitchQ = (encoded >>> 8) & 0xff;\n const yawQ = (encoded >>> 16) & 0xff;\n\n // Convert quantized values back to normalized [0,1] values.\n const normRoll = rollQ / 255;\n const normPitch = pitchQ / 255;\n const normYaw = yawQ / 255;\n\n // Map from [0,1] to [-π, π]\n const roll = normRoll * (2 * Math.PI) - Math.PI;\n const pitch = normPitch * (2 * Math.PI) - Math.PI;\n const yaw = normYaw * (2 * Math.PI) - Math.PI;\n\n // Convert Euler angles to quaternion (Tait–Bryan: roll, pitch, yaw).\n const cr = Math.cos(roll * 0.5);\n const sr = Math.sin(roll * 0.5);\n const cp = Math.cos(pitch * 0.5);\n const sp = Math.sin(pitch * 0.5);\n const cy = Math.cos(yaw * 0.5);\n const sy = Math.sin(yaw * 0.5);\n\n out.w = cr * cp * cy + sr * sp * sy;\n out.x = sr * cp * cy - cr * sp * sy;\n out.y = cr * sp * cy + sr * cp * sy;\n out.z = cr * cp * sy - sr * sp * cy;\n out.normalize();\n return out;\n}\n\nexport function encodeQuatOctXy1010R12(\n qx: number,\n qy: number,\n qz: number,\n qw: number,\n): number {\n const qlen = Math.sqrt(qx * qx + qy * qy + qz * qz + qw * qw);\n // Force the minimal representation (q.w >= 0)\n const qnx = (qw < 0 ? -qx : qx) / qlen;\n const qny = (qw < 0 ? -qy : qy) / qlen;\n const qnz = (qw < 0 ? -qz : qz) / qlen;\n const qnw = (qw < 0 ? -qw : qw) / qlen;\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnw);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(qnx * qnx + qny * qny + qnz * qnz);\n const axisX = xyz_norm < 1e-6 ? 1 : qnx / xyz_norm;\n const axisY = xyz_norm < 1e-6 ? 0 : qny / xyz_norm;\n const axisZ = xyz_norm < 1e-6 ? 0 : qnz / xyz_norm;\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axisX) + Math.abs(axisY) + Math.abs(axisZ);\n let p_x = axisX / sum;\n let p_y = axisY / sum;\n // Fold the lower hemisphere.\n if (axisZ < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 10 bits (0..1023)\n const quantU = Math.round(u_f * 1023);\n const quantV = Math.round(v_f * 1023);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 12 bits (0..4095) ---\n const angleInt = Math.round(theta * (4095 / Math.PI));\n\n // Pack into 32 bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20) | (quantV << 10) | quantU;\n}\n\nexport function decodeQuatOctXy1010R12(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 10‐bit quantU and quantV, and 12‐bit angleInt.\n const quantU = encoded & 0x3ff; // bits 0–9\n const quantV = (encoded >>> 10) & 0x3ff; // bits 10–19\n const angleInt = (encoded >>> 20) & 0xfff; // bits 20–31\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 1023;\n const v_f = quantV / 1023;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axisLen = Math.sqrt(f_x * f_x + f_y * f_y + f_z * f_z);\n const axisX = axisLen < 1e-6 ? 0 : f_x / axisLen;\n const axisY = axisLen < 1e-6 ? 0 : f_y / axisLen;\n const axisZ = axisLen < 1e-6 ? 0 : f_z / axisLen;\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 4095) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axisX * s, axisY * s, axisZ * s, w);\n return out;\n}\n\n// Pack four signed 8-bit values into a single uint32.\nfunction packSint8Bytes(\n b0: number,\n b1: number,\n b2: number,\n b3: number,\n): number {\n const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127)));\n const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127)));\n const clampedB2 = Math.round(Math.max(-127, Math.min(127, b2 * 127)));\n const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127)));\n return (\n (clampedB0 & 0xff) |\n ((clampedB1 & 0xff) << 8) |\n ((clampedB2 & 0xff) << 16) |\n ((clampedB3 & 0xff) << 24)\n );\n}\n\n// Encode an array of 9 signed RGB SH1 coefficients (clamped to [-1,1]) into\n// a pair of uint32 values, where each coefficient is stored as a sint7\nexport function encodeSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n encoding?: {\n sh1Max?: number;\n },\n) {\n const sh1Max = encoding?.sh1Max ?? 1;\n const sh1Scale = 63 / sh1Max;\n\n // Pack sint7 values into 2 x uint32\n const base = index * 2;\n for (let i = 0; i < 9; ++i) {\n const s = sh1Rgb[i] * sh1Scale;\n const value = Math.round(Math.max(-63, Math.min(63, s))) & 0x7f;\n const bitStart = i * 7;\n const bitEnd = bitStart + 7;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh1Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh1Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\n// Encode an array of 15 signed RGB SH2 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint8.\nexport function encodeSh2Rgb(\n sh2Array: Uint32Array,\n index: number,\n sh2Rgb: Float32Array,\n encoding?: {\n sh2Max?: number;\n },\n) {\n const sh2Max = encoding?.sh2Max ?? 1;\n const sh2Scale = 1 / sh2Max;\n\n // Pack sint8 values into 4 x uint32\n sh2Array[index * 4 + 0] = packSint8Bytes(\n sh2Rgb[0] * sh2Scale,\n sh2Rgb[1] * sh2Scale,\n sh2Rgb[2] * sh2Scale,\n sh2Rgb[3] * sh2Scale,\n );\n sh2Array[index * 4 + 1] = packSint8Bytes(\n sh2Rgb[4] * sh2Scale,\n sh2Rgb[5] * sh2Scale,\n sh2Rgb[6] * sh2Scale,\n sh2Rgb[7] * sh2Scale,\n );\n sh2Array[index * 4 + 2] = packSint8Bytes(\n sh2Rgb[8] * sh2Scale,\n sh2Rgb[9] * sh2Scale,\n sh2Rgb[10] * sh2Scale,\n sh2Rgb[11] * sh2Scale,\n );\n sh2Array[index * 4 + 3] = packSint8Bytes(\n sh2Rgb[12] * sh2Scale,\n sh2Rgb[13] * sh2Scale,\n sh2Rgb[14] * sh2Scale,\n 0,\n );\n}\n\n// Encode an array of 21 signed RGB SH3 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint6.\nexport function encodeSh3Rgb(\n sh3Array: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n encoding?: {\n sh3Max?: number;\n },\n) {\n const sh3Max = encoding?.sh3Max ?? 1;\n const sh3Scale = 31 / sh3Max;\n\n // Pack sint6 values into 4 x uint32\n const base = index * 4;\n for (let i = 0; i < 21; ++i) {\n const s = sh3Rgb[i] * sh3Scale;\n const value = Math.round(Math.max(-31, Math.min(31, s))) & 0x3f;\n const bitStart = i * 6;\n const bitEnd = bitStart + 6;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh3Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh3Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\nexport function encodeExtRgb(r: number, g: number, b: number): number {\n const ar = Math.abs(r);\n const ag = Math.abs(g);\n const ab = Math.abs(b);\n const maxAbs = Math.max(ar, ag, ab);\n const base = Math.floor(Math.log2(maxAbs));\n const biasedBase = Math.max(0, Math.min(31, base + 15));\n const divisor = 2 ** (biasedBase - 15) / 255;\n const uR = Math.round(Math.max(0, Math.min(255, ar / divisor)));\n const uG = Math.round(Math.max(0, Math.min(255, ag / divisor)));\n const uB = Math.round(Math.max(0, Math.min(255, ab / divisor)));\n const expSigns =\n (biasedBase << 3) |\n ((r < 0 ? 0x1 : 0) | (g < 0 ? 0x2 : 0) | (b < 0 ? 0x4 : 0));\n return uR | (uG << 8) | (uB << 16) | (expSigns << 24);\n}\n\nexport function decodeExtRgb(encoded: number): THREE.Color {\n const color = packedFields.color;\n const biasedBase = (encoded >>> 27) & 0x1f;\n const divisor = 2 ** (biasedBase - 15) / 255;\n const r = (encoded & 0xff) * divisor;\n const g = ((encoded >>> 8) & 0xff) * divisor;\n const b = ((encoded >>> 16) & 0xff) * divisor;\n color.r = encoded & 0x1000000 ? -r : r;\n color.g = encoded & 0x2000000 ? -g : g;\n color.b = encoded & 0x4000000 ? -b : b;\n return color;\n}\n\nexport function encodeExtSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n}\n\nexport function encodeExtSh12Rgb(\n sh1Array: Uint32Array,\n sh2Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n sh2Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n sh1Array[i4 + 3] = encodeExtRgb(sh2Rgb[0], sh2Rgb[1], sh2Rgb[2]);\n for (let k = 1; k < 5; ++k) {\n const k5 = k * 5;\n sh2Array[i4 + (k - 1)] = encodeExtRgb(\n sh2Rgb[k5],\n sh2Rgb[k5 + 1],\n sh2Rgb[k5 + 2],\n );\n }\n}\n\nexport function encodeExt3Rgb(\n sh3ArrayA: Uint32Array,\n sh3ArrayB: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 4; ++k) {\n const k3 = k * 3;\n sh3ArrayA[i4 + k] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n for (let k = 4; k < 7; ++k) {\n const k3 = k * 3;\n sh3ArrayB[i4 + (k - 4)] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n}\n\n// Partially decompress a gzip-encoded Uint8Array, returning a Uint8Array of\n// the specified numBytes from the start of the file.\nexport function decompressPartialGzip(\n fileBytes: Uint8Array,\n numBytes: number,\n): Uint8Array {\n const chunks: Uint8Array[] = [];\n let totalBytes = 0;\n let result: Uint8Array | null = null;\n\n const gunzip = new Gunzip((data, final) => {\n chunks.push(data);\n totalBytes += data.length;\n if (final || totalBytes >= numBytes) {\n const allBytes = new Uint8Array(totalBytes);\n let offset = 0;\n for (const chunk of chunks) {\n allBytes.set(chunk, offset);\n offset += chunk.length;\n }\n result = allBytes.slice(0, numBytes);\n }\n });\n\n const CHUNK_SIZE = 1024;\n let offset = 0;\n while (result == null && offset < fileBytes.length) {\n const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE);\n gunzip.push(chunk, false);\n offset += CHUNK_SIZE;\n }\n\n if (result == null) {\n gunzip.push(new Uint8Array(), true);\n if (result == null) {\n throw new Error(\"Failed to decompress partial gzip\");\n }\n }\n return result;\n}\n\nexport class GunzipReader {\n fileBytes: Uint8Array;\n chunkBytes: number;\n\n chunks: Uint8Array[];\n totalBytes: number;\n reader: ReadableStreamDefaultReader;\n\n constructor({\n fileBytes,\n chunkBytes = 64 * 1024,\n }: { fileBytes: Uint8Array; chunkBytes?: number }) {\n this.fileBytes = fileBytes;\n this.chunkBytes = chunkBytes;\n this.chunks = [];\n this.totalBytes = 0;\n\n const ds = new DecompressionStream(\"gzip\");\n const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds);\n this.reader = decompressionStream.getReader();\n }\n\n async read(numBytes: number): Promise {\n while (this.totalBytes < numBytes) {\n const { value: chunk, done: readerDone } = await this.reader.read();\n if (readerDone) {\n break;\n }\n\n this.chunks.push(chunk);\n this.totalBytes += chunk.length;\n }\n\n if (this.totalBytes < numBytes) {\n throw new Error(\n `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}`,\n );\n }\n\n const allBytes = new Uint8Array(this.totalBytes);\n let outOffset = 0;\n for (const chunk of this.chunks) {\n allBytes.set(chunk, outOffset);\n outOffset += chunk.length;\n }\n\n const result = allBytes.subarray(0, numBytes);\n this.chunks = [allBytes.subarray(numBytes)];\n this.totalBytes -= numBytes;\n return result;\n }\n}\n","import BundledWorker from \"./oldWorker?worker&inline\";\nimport { getTransferable } from \"./utils.js\";\n\n// SplatWorker is an internal class that manages a WebWorker for executing\n// longer running CPU tasks such as Gsplat file decoding and sorting.\n// Although a SplatWorker can be created and used directly, the utility\n// function withWorker() is recommended to allocate from a managed\n// pool of SplatWorkers.\n\nexport class OldSplatWorker {\n worker: Worker;\n messages: Record<\n number,\n { resolve: (value: unknown) => void; reject: (reason?: unknown) => void }\n > = {};\n messageIdNext = 0;\n\n constructor() {\n // this.worker = new Worker(new URL(\"./worker\", import.meta.url), { type: \"module\" });\n this.worker = new BundledWorker();\n this.worker.onmessage = (event) => this.onMessage(event);\n }\n\n makeMessageId(): number {\n return ++this.messageIdNext;\n }\n\n makeMessagePromiseId(): { id: number; promise: Promise } {\n const id = this.makeMessageId();\n const promise = new Promise((resolve, reject) => {\n this.messages[id] = { resolve, reject };\n });\n return { id, promise };\n }\n\n onMessage(event: MessageEvent) {\n // console.log(\"SplatWorker.onMessage:\", event);\n const { id, result, error } = event.data;\n // console.log(`SplatWorker.onMessage(${id}):`, result, error);\n const handler = this.messages[id];\n if (handler) {\n delete this.messages[id];\n if (error) {\n handler.reject(error);\n } else {\n handler.resolve(result);\n }\n }\n }\n\n // Invoke an RPC on the worker with the given name and arguments.\n // The normal usage of a worker is to run one activity at a time,\n // but this function allows for concurrent calls, tagging each request\n // with a unique message Id and awaiting a response to that same Id.\n // The method will automatically transfer any ArrayBuffers in the\n // arguments to the worker. If you'd like to transfer a copy of a\n // buffer then you must clone it before passing to this function.\n async call(name: string, args: unknown): Promise {\n const { id, promise } = this.makeMessagePromiseId();\n // console.log(`SplatWorker.call(${name}):`, args);\n this.worker.postMessage(\n { name, args, id },\n { transfer: getTransferable(args) },\n );\n return promise;\n }\n}\n\nlet maxWorkers = 4;\n\nlet numWorkers = 0;\nconst freeWorkers: OldSplatWorker[] = [];\nconst workerQueue: ((worker: OldSplatWorker) => void)[] = [];\n\n// Set the maximum number of workers to allocate for the pool. (default: 4)\nexport function setWorkerPool(count = 4) {\n maxWorkers = count;\n}\n\n// Allocate a worker from the pool. If none are available and we are below the\n// maximum, create a new one. Otherwise, add the request to a queue and wait\n// for it to be fulfilled.\nexport async function allocWorker(): Promise {\n const worker = freeWorkers.shift();\n if (worker) {\n return worker;\n }\n\n if (numWorkers < maxWorkers) {\n const worker = new OldSplatWorker();\n numWorkers += 1;\n return worker;\n }\n\n return new Promise((resolve) => {\n workerQueue.push(resolve);\n });\n}\n\n// Return a worker to the pool. Pass the worker to any pending waiter.\nexport function freeWorker(worker: OldSplatWorker) {\n if (numWorkers > maxWorkers) {\n // Worker no longer needed\n numWorkers -= 1;\n return;\n }\n\n const waiter = workerQueue.shift();\n if (waiter) {\n waiter(worker);\n return;\n }\n\n freeWorkers.push(worker);\n}\n\n// Allocate a worker from the pool and invoke the callback with the worker.\n// When the callback completes, the worker will be returned to the pool.\nexport async function withWorker(\n callback: (worker: OldSplatWorker) => Promise,\n): Promise {\n const worker = await allocWorker();\n try {\n return await callback(worker);\n } finally {\n freeWorker(worker);\n }\n}\n","import { getTransferable } from \"./utils\";\nimport BundledWorker from \"./worker?worker&inline\";\n\ntype PromiseRecord = {\n resolve: (value: unknown) => void;\n reject: (reason?: unknown) => void;\n onStatus?: (data: unknown) => void;\n};\n\nexport class SplatWorker {\n worker: Worker;\n queue: (() => void)[] | null = null;\n messages: Record = {};\n static currentId = 0;\n\n constructor() {\n this.worker = new BundledWorker();\n this.worker.onmessage = (event) => this.onMessage(event);\n }\n\n onMessage(event: MessageEvent) {\n const { id, result, error, status } = event.data;\n const promise = this.messages[id];\n if (promise) {\n if (error !== undefined) {\n delete this.messages[id];\n promise.reject(error);\n } else if (status !== undefined) {\n promise.onStatus?.(status);\n } else {\n delete this.messages[id];\n promise.resolve(result);\n }\n }\n }\n\n tryExclusive(callback: (worker: SplatWorker) => Promise) {\n return this.queue == null ? this.exclusive(callback) : null;\n }\n\n async exclusive(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const queue = this.queue;\n if (queue != null) {\n await new Promise((resolve) => {\n queue.push(() => resolve(undefined));\n });\n } else {\n this.queue = [];\n }\n\n try {\n return await callback(this);\n } finally {\n if (this.queue != null) {\n if (this.queue.length === 0) {\n this.queue = null;\n } else {\n const waiter = this.queue.shift() as () => void;\n waiter();\n }\n }\n }\n }\n\n async call(\n name: string,\n args: unknown,\n options: { onStatus?: (data: unknown) => void } = {},\n ): Promise {\n const id = ++SplatWorker.currentId;\n const promise = new Promise((resolve, reject) => {\n this.messages[id] = { resolve, reject, onStatus: options.onStatus };\n });\n this.worker.postMessage(\n { id, name, args },\n { transfer: getTransferable(args) },\n );\n return await promise;\n }\n\n dispose() {\n this.worker.terminate();\n\n const messages = Object.values(this.messages);\n this.messages = {};\n for (const message of messages) {\n message.reject(new Error(\"Worker terminate\"));\n }\n }\n}\n\nexport class NewSplatWorkerPool {\n maxWorkers;\n numWorkers = 0;\n freelist: SplatWorker[] = [];\n queue: ((worker: SplatWorker) => void)[] = [];\n\n constructor(maxWorkers = 4) {\n this.maxWorkers = maxWorkers;\n }\n\n async withWorker(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const worker = await this.allocWorker();\n try {\n return await callback(worker);\n } finally {\n this.freeWorker(worker);\n }\n }\n\n async allocWorker(): Promise {\n const worker = this.freelist.pop();\n if (worker) {\n return worker;\n }\n\n if (this.numWorkers < this.maxWorkers) {\n const worker = new SplatWorker();\n this.numWorkers += 1;\n return worker;\n }\n\n return new Promise((resolve) => {\n this.queue.push(resolve);\n });\n }\n\n freeWorker(worker: SplatWorker) {\n if (this.numWorkers > this.maxWorkers) {\n // Worker no longer needed\n this.numWorkers -= 1;\n return;\n }\n\n const waiter = this.queue.shift();\n if (waiter) {\n waiter(worker);\n return;\n }\n\n this.freelist.push(worker);\n }\n}\n\nexport const workerPool = new NewSplatWorkerPool();\n","import { Dyno, UnaryOp, unindent, unindentLines } from \"./base\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const Gsplat = { type: \"Gsplat\" } as { type: \"Gsplat\" };\nexport const CovSplat = { type: \"CovSplat\" } as { type: \"CovSplat\" };\nexport const TPackedSplats = { type: \"PackedSplats\" } as {\n type: \"PackedSplats\";\n};\nexport const TExtSplats = { type: \"ExtSplats\" } as {\n type: \"ExtSplats\";\n};\nexport const TCovSplats = { type: \"CovSplats\" } as {\n type: \"CovSplats\";\n};\n\nexport const numPackedSplats = (\n packedSplats: DynoVal,\n): DynoVal<\"int\"> => new NumPackedSplats({ packedSplats });\nexport const readPackedSplat = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadPackedSplat({ packedSplats, index });\nexport const readPackedSplatRange = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n base: DynoVal<\"int\">,\n count: DynoVal<\"int\">,\n): DynoVal =>\n new ReadPackedSplatRange({ packedSplats, index, base, count });\n\nexport const numExtSplats = (\n extSplats: DynoVal,\n): DynoVal<\"int\"> => new NumExtSplats({ extSplats });\nexport const readExtSplat = (\n extSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadExtSplat({ extSplats, index });\n\nexport const numCovSplats = (\n covsplats: DynoVal,\n): DynoVal<\"int\"> => new NumCovSplats({ covsplats });\nexport const readCovSplat = (\n covSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadCovSplat({ covSplats, index });\n\nexport const gsplatToCovSplat = (\n gsplat: DynoVal,\n): DynoVal => new GsplatToCovSplat({ gsplat });\n\nexport const splitGsplat = (gsplat: DynoVal) =>\n new SplitGsplat({ gsplat });\nexport const combineGsplat = ({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineGsplat({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\nexport const gsplatNormal = (gsplat: DynoVal): DynoVal<\"vec3\"> =>\n new GsplatNormal({ gsplat });\n\nexport const transformGsplat = (\n gsplat: DynoVal,\n {\n scale,\n rotate,\n translate,\n recolor,\n }: {\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n },\n): DynoVal => {\n return new TransformGsplat({ gsplat, scale, rotate, translate, recolor });\n};\n\nexport const splatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new SplatTexCoord({ index });\n\nexport const pagedSplatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new PagedSplatTexCoord({ index });\n\nexport const defineGsplat = unindent(`\n struct Gsplat {\n vec3 center;\n uint flags;\n vec3 scales;\n int index;\n vec4 quaternion;\n vec4 rgba;\n };\n const uint GSPLAT_FLAG_ACTIVE = 1u << 0u;\n\n bool isGsplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const defineCovSplat = unindent(`\n struct CovSplat {\n vec3 center;\n uint flags;\n vec4 rgba;\n vec3 xxyyzz;\n int index;\n vec3 xyxzyz;\n };\n\n bool isCovSplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const definePackedSplats = unindent(`\n struct PackedSplats {\n usampler2DArray textureArray;\n int numSplats;\n vec4 rgbMinMaxLnScaleMinMax;\n bool lodOpacity;\n };\n`);\n\nexport class NumPackedSplats extends UnaryOp<\n typeof TPackedSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({\n packedSplats,\n }: { packedSplats: DynoVal }) {\n super({ a: packedSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadPackedArray = unindent(`\n bool readPackedArray(usampler2DArray texture, int numSplats, vec4 rgbMinMaxLnScaleMinMax, int index, out Gsplat gsplat) {\n if ((index >= 0) && (index < numSplats)) {\n uvec4 packedData = texelFetch(texture, splatTexCoord(index), 0);\n unpackSplatEncoding(packedData, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba, rgbMinMaxLnScaleMinMax);\n return true;\n } else {\n return false;\n }\n }\n`);\n\nexport class ReadPackedSplat\n extends Dyno<\n { packedSplats: typeof TPackedSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n }: { packedSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { packedSplats: TPackedSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index } = inputs;\n let statements: string[];\n if (packedSplats && index) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class ReadPackedSplatRange\n extends Dyno<\n {\n packedSplats: typeof TPackedSplats;\n index: \"int\";\n base: \"int\";\n count: \"int\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n base,\n count,\n }: {\n packedSplats?: DynoVal;\n index?: DynoVal<\"int\">;\n base?: DynoVal<\"int\">;\n count?: DynoVal<\"int\">;\n }) {\n super({\n inTypes: {\n packedSplats: TPackedSplats,\n index: \"int\",\n base: \"int\",\n count: \"int\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index, base, count },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index, base, count } = inputs;\n let statements: string[];\n if (packedSplats && index && base && count) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineExtSplats = unindent(`\n struct ExtSplats {\n usampler2DArray textureArray1;\n usampler2DArray textureArray2;\n int numSplats;\n };\n`);\n\nexport class NumExtSplats extends UnaryOp<\n typeof TExtSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ extSplats }: { extSplats: DynoVal }) {\n super({ a: extSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadExtArrays = unindent(`\n void readExtArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out Gsplat gsplat) {\n gsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExt(packed1, packed2, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba);\n gsplat.flags = all(equal(gsplat.scales, vec3(0.0, 0.0, 0.0))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadExtSplat\n extends Dyno<\n { extSplats: typeof TExtSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n extSplats,\n index,\n }: { extSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { extSplats: TExtSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { extSplats, index },\n globals: () => [defineGsplat, defineExtSplats, defineReadExtArrays],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [`${gsplat}.flags = 0u;`];\n }\n const { extSplats, index } = inputs;\n let statements: string[];\n if (extSplats && index) {\n return unindentLines(`\n readExtArrays(${extSplats}.textureArray1, ${extSplats}.textureArray2, ${extSplats}.numSplats, ${index}, ${gsplat});\n `);\n }\n return [`${gsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class NumCovSplats extends UnaryOp<\n typeof TCovSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ covsplats }: { covsplats: DynoVal }) {\n super({ a: covsplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadCovArrays = unindent(`\n void readCovArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out CovSplat covsplat) {\n covsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExtCov(packed1, packed2, covsplat.center, covsplat.rgba, covsplat.xxyyzz, covsplat.xyxzyz);\n covsplat.flags = (all(equal(covsplat.xxyyzz, vec3(0.0))) && all(equal(covsplat.xyxzyz, vec3(0.0)))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadCovSplat\n extends Dyno<\n { covSplats: typeof TCovSplats; index: \"int\" },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covSplats,\n index,\n }: { covSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { covSplats: TCovSplats, index: \"int\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covSplats, index },\n globals: () => [defineGsplat, defineCovSplat, defineReadCovArrays],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = outputs;\n if (!covsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n const { covSplats, index } = inputs;\n let statements: string[];\n if (covSplats && index) {\n return unindentLines(`\n readCovArrays(${covSplats}.textureArray, ${covSplats}.numSplats, ${index}, ${covsplat});\n `);\n }\n return [`${covsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class GsplatToCovSplat extends Dyno<\n { gsplat: typeof Gsplat },\n { covsplat: typeof CovSplat }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: { covsplat: CovSplat },\n inputs: { gsplat },\n globals: () => [defineGsplat, defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const { covsplat } = outputs;\n if (!gsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n\n return unindentLines(`\n ${covsplat}.flags = 0u;\n if (isGsplatActive(${gsplat}.flags)) {\n ${covsplat}.flags = ${gsplat}.flags;\n ${covsplat}.index = ${gsplat}.index;\n ${covsplat}.rgba = ${gsplat}.rgba;\n ${covsplat}.center = ${gsplat}.center;\n mat3 m = scaleQuaternionToMatrix(${gsplat}.scales, ${gsplat}.quaternion);\n m = m * transpose(m);\n ${covsplat}.xxyyzz = vec3(m[0][0], m[1][1], m[2][2]);\n ${covsplat}.xyxzyz = vec3(m[0][1], m[0][2], m[1][2]);\n }\n `);\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplitGsplat extends Dyno<\n { gsplat: typeof Gsplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags ? null : `${flags} = ${gsplat ? `${gsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isGsplatActive(${gsplat ? `${gsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${gsplat ? `${gsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !scales\n ? null\n : `${scales} = ${gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !quaternion\n ? null\n : `${quaternion} = ${gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${gsplat ? `${gsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${gsplat ? `${gsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${gsplat ? `${gsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${gsplat ? `${gsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${gsplat ? `${gsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${gsplat ? `${gsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${gsplat ? `${gsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${gsplat ? `${gsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat: outGsplat } = outputs;\n if (!outGsplat) {\n return [];\n }\n const {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outGsplat}.flags = ${flags ?? (gsplat ? `${gsplat}.flags` : \"0u\")};`,\n `${outGsplat}.index = ${index ?? (gsplat ? `${gsplat}.index` : \"0\")};`,\n `${outGsplat}.center = ${center ?? (gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.scales = ${scales ?? (gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.quaternion = ${quaternion ?? (gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\")};`,\n `${outGsplat}.rgba = ${rgba ?? (gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outGsplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outGsplat}.rgba.a = ${opacity};`,\n !x ? null : `${outGsplat}.center.x = ${x};`,\n !y ? null : `${outGsplat}.center.y = ${y};`,\n !z ? null : `${outGsplat}.center.z = ${z};`,\n !r ? null : `${outGsplat}.rgba.r = ${r};`,\n !g ? null : `${outGsplat}.rgba.g = ${g};`,\n !b ? null : `${outGsplat}.rgba.b = ${b};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineGsplatNormal = unindent(`\n vec3 gsplatNormal(vec3 scales, vec4 quaternion) {\n float minScale = min(scales.x, min(scales.y, scales.z));\n vec3 normal;\n if (scales.z == minScale) {\n normal = vec3(0.0, 0.0, 1.0);\n } else if (scales.y == minScale) {\n normal = vec3(0.0, 1.0, 0.0);\n } else {\n normal = vec3(1.0, 0.0, 0.0);\n }\n return quatVec(quaternion, normal);\n }\n`);\n\nexport class GsplatNormal extends UnaryOp {\n constructor({ gsplat }: { gsplat: DynoVal }) {\n super({ a: gsplat, outKey: \"normal\", outTypeFunc: () => \"vec3\" });\n this.globals = () => [defineGsplat, defineGsplatNormal];\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normal} = gsplatNormal(${inputs.a}.scales, ${inputs.a}.quaternion);`,\n ];\n }\n}\n\nexport class TransformGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n scale: \"float\";\n rotate: \"vec4\";\n translate: \"vec3\";\n recolor: \"vec4\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n scale,\n rotate,\n translate,\n recolor,\n }: {\n gsplat?: DynoVal;\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n scale: \"float\",\n rotate: \"vec4\",\n translate: \"vec3\",\n recolor: \"vec4\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, scale, rotate, translate, recolor },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs, compile }) => {\n const { gsplat } = outputs;\n if (!gsplat || !inputs.gsplat) {\n return [];\n }\n const { scale, rotate, translate, recolor } = inputs;\n const indent = compile.indent;\n const statements = [\n `${gsplat} = ${inputs.gsplat};`,\n `if (isGsplatActive(${gsplat}.flags)) {`,\n\n scale ? `${indent}${gsplat}.center *= ${scale};` : null,\n rotate\n ? `${indent}${gsplat}.center = quatVec(${rotate}, ${gsplat}.center);`\n : null,\n translate ? `${indent}${gsplat}.center += ${translate};` : null,\n\n scale ? `${indent}${gsplat}.scales *= ${scale};` : null,\n\n rotate\n ? `${indent}${gsplat}.quaternion = quatQuat(${rotate}, ${gsplat}.quaternion);`\n : null,\n recolor ? `${indent}${gsplat}.rgba *= ${recolor};` : null,\n \"}\",\n ].filter(Boolean) as string[];\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const splitCovSplat = (covsplat: DynoVal) =>\n new SplitCovSplat({ covsplat });\nexport const combineCovSplat = ({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineCovSplat({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\n\nexport class SplitCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ covsplat }: { covsplat?: DynoVal }) {\n super({\n inTypes: { covsplat: CovSplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags\n ? null\n : `${flags} = ${covsplat ? `${covsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isCovSplatActive(${covsplat ? `${covsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${covsplat ? `${covsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${covsplat ? `${covsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${covsplat ? `${covsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${covsplat ? `${covsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${covsplat ? `${covsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${covsplat ? `${covsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${covsplat ? `${covsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${covsplat ? `${covsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${covsplat ? `${covsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineCovSplat\n extends Dyno<\n {\n covsplat: typeof CovSplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { covsplat: CovSplat },\n inputs: {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat: outCovSplat } = outputs;\n if (!outCovSplat) {\n return [];\n }\n const {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outCovSplat}.flags = ${flags ?? (covsplat ? `${covsplat}.flags` : \"0u\")};`,\n `${outCovSplat}.index = ${index ?? (covsplat ? `${covsplat}.index` : \"0\")};`,\n `${outCovSplat}.center = ${center ?? (covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outCovSplat}.rgba = ${rgba ?? (covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outCovSplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outCovSplat}.rgba.a = ${opacity};`,\n !x ? null : `${outCovSplat}.center.x = ${x};`,\n !y ? null : `${outCovSplat}.center.y = ${y};`,\n !z ? null : `${outCovSplat}.center.z = ${z};`,\n !r ? null : `${outCovSplat}.rgba.r = ${r};`,\n !g ? null : `${outCovSplat}.rgba.g = ${g};`,\n !b ? null : `${outCovSplat}.rgba.b = ${b};`,\n `${outCovSplat}.xxyyzz = ${covsplat ? `${covsplat}.xxyyzz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n `${outCovSplat}.xyxzyz = ${covsplat ? `${covsplat}.xyxzyz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = splatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n\nexport class PagedSplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = pagedSplatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n","import * as THREE from \"three\";\nimport { Dyno, unindentLines } from \"./base\";\nimport { CovSplat, Gsplat, defineCovSplat, defineGsplat } from \"./splats\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const outputPackedSplat = (\n gsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputPackedSplat({ gsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputCovSplat = (\n covsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputCovSplat({ covsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputExtendedSplat = (gsplat: DynoVal) =>\n new OutputExtendedSplat({ gsplat });\n\nexport const outputExtCovSplat = (covsplat: DynoVal) =>\n new OutputExtCovSplat({ covsplat });\n\nexport const outputSplatDepth = (\n gsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputSplatDepth({ gsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputCovSplatDepth = (\n covsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputCovSplatDepth({ covsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputRgba8 = (rgba8: DynoVal<\"vec4\">) =>\n new OutputRgba8({ rgba8 });\n\nexport class OutputPackedSplat extends Dyno<\n { gsplat: typeof Gsplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n gsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n gsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { gsplat: Gsplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { gsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (gsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n target = packSplatEncoding(${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u, 0u, 0u, 0u);\n }\n `);\n }\n return [\"target = uvec4(0u, 0u, 0u, 0u);\"];\n },\n });\n }\n}\n\nexport class OutputCovSplat extends Dyno<\n { covsplat: typeof CovSplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n covsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n covsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { covsplat: CovSplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { covsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (covsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n target = packSplatCovEncoding(${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtendedSplat extends Dyno<\n { gsplat: typeof Gsplat },\n Record\n> {\n constructor({\n gsplat,\n }: {\n gsplat?: DynoVal;\n }) {\n super({\n inTypes: { gsplat: Gsplat },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat } = inputs;\n if (gsplat) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n packSplatExt(target, target2, ${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n Record\n> {\n constructor({\n covsplat,\n }: {\n covsplat?: DynoVal;\n }) {\n super({\n inTypes: { covsplat: CovSplat },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat } = inputs;\n if (covsplat) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n packSplatExtCov(target, target2, ${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nclass OutputSplatDepth extends Dyno<\n {\n gsplat: typeof Gsplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n gsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n gsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { gsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (gsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isGsplatActive(${gsplat}.flags)) {\n vec3 center = ${gsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nclass OutputCovSplatDepth extends Dyno<\n {\n covsplat: typeof CovSplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n covsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n covsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { covsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (covsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isCovSplatActive(${covsplat}.flags)) {\n vec3 center = ${covsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nexport class OutputRgba8\n extends Dyno<{ rgba8: \"vec4\" }, { rgba8: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ rgba8 }: { rgba8?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { rgba8: \"vec4\" },\n inputs: { rgba8 },\n statements: ({ inputs, outputs }) => [\n `target = ${inputs.rgba8 ?? \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"rgba8\");\n }\n}\n","import type { IUniform } from \"three\";\nimport { Dyno, dynoDeclare } from \"./base\";\nimport type { DynoJsType, DynoType } from \"./types\";\nimport { DynoOutput, type DynoValue, type HasDynoOut } from \"./value\";\n\nexport const uniform = >(\n key: string,\n type: DynoType,\n value: V,\n) => new DynoUniform({ key, type, value });\nexport const dynoBool = (value = false, key?: string) =>\n new DynoBool({ key, value });\nexport const dynoUint = (value = 0, key?: string) =>\n new DynoUint({ key, value });\nexport const dynoInt = (value = 0, key?: string) => new DynoInt({ key, value });\nexport const dynoFloat = (value = 0.0, key?: string) =>\n new DynoFloat({ key, value });\n\nexport const dynoBvec2 = >(\n value: V,\n key?: string,\n) => new DynoBvec2({ key, value });\nexport const dynoUvec2 = >(\n value: V,\n key?: string,\n) => new DynoUvec2({ key, value });\nexport const dynoIvec2 = >(\n value: V,\n key?: string,\n) => new DynoIvec2({ key, value });\nexport const dynoVec2 = >(\n value: V,\n key?: string,\n) => new DynoVec2({ key, value });\n\nexport const dynoBvec3 = >(\n value: V,\n key?: string,\n) => new DynoBvec3({ key, value });\nexport const dynoUvec3 = >(\n value: V,\n key?: string,\n) => new DynoUvec3({ key, value });\nexport const dynoIvec3 = >(\n value: V,\n key?: string,\n) => new DynoIvec3({ key, value });\nexport const dynoVec3 = >(\n value: V,\n key?: string,\n) => new DynoVec3({ key, value });\n\nexport const dynoBvec4 = >(\n value: V,\n key?: string,\n) => new DynoBvec4({ key, value });\nexport const dynoUvec4 = >(\n value: V,\n key?: string,\n) => new DynoUvec4({ key, value });\nexport const dynoIvec4 = >(\n value: V,\n key?: string,\n) => new DynoIvec4({ key, value });\nexport const dynoVec4 = >(\n value: V,\n key?: string,\n) => new DynoVec4({ key, value });\n\nexport const dynoMat2 = >(\n value: V,\n key?: string,\n) => new DynoMat2({ key, value });\nexport const dynoMat2x2 = >(\n value: V,\n key?: string,\n) => new DynoMat2x2({ key, value });\nexport const dynoMat2x3 = >(\n value: V,\n key?: string,\n) => new DynoMat2x3({ key, value });\nexport const dynoMat2x4 = >(\n value: V,\n key?: string,\n) => new DynoMat2x4({ key, value });\n\nexport const dynoMat3 = >(\n value: V,\n key?: string,\n) => new DynoMat3({ key, value });\nexport const dynoMat3x2 = >(\n value: V,\n key?: string,\n) => new DynoMat3x2({ key, value });\nexport const dynoMat3x3 = >(\n value: V,\n key?: string,\n) => new DynoMat3x3({ key, value });\nexport const dynoMat3x4 = >(\n value: V,\n key?: string,\n) => new DynoMat3x4({ key, value });\n\nexport const dynoMat4 = >(\n value: V,\n key?: string,\n) => new DynoMat4({ key, value });\nexport const dynoMat4x2 = >(\n value: V,\n key?: string,\n) => new DynoMat4x2({ key, value });\nexport const dynoMat4x3 = >(\n value: V,\n key?: string,\n) => new DynoMat4x3({ key, value });\nexport const dynoMat4x4 = >(\n value: V,\n key?: string,\n) => new DynoMat4x4({ key, value });\n\nexport const dynoUsampler2D = >(\n value: V,\n key?: string,\n) => new DynoUsampler2D({ key, value });\nexport const dynoIsampler2D = >(\n value: V,\n key?: string,\n) => new DynoIsampler2D({ key, value });\nexport const dynoSampler2D = >(\n value: V,\n key?: string,\n) => new DynoSampler2D({ key, value });\n\nexport const dynoUsampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoUsampler2DArray({ key, value });\nexport const dynoIsampler2DArray = >(\n key: string,\n value: V,\n) => new DynoIsampler2DArray({ key, value });\nexport const dynoSampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoSampler2DArray({ key, value });\n\nexport const dynoUsampler3D = >(\n value: V,\n key?: string,\n) => new DynoUsampler3D({ key, value });\nexport const dynoIsampler3D = >(\n value: V,\n key?: string,\n) => new DynoIsampler3D({ key, value });\nexport const dynoSampler3D = >(\n value: V,\n key?: string,\n) => new DynoSampler3D({ key, value });\n\nexport const dynoUsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoUsamplerCube({ key, value });\nexport const dynoIsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoIsamplerCube({ key, value });\nexport const dynoSamplerCube = >(\n value: V,\n key?: string,\n) => new DynoSamplerCube({ key, value });\n\nexport const dynoSampler2DShadow = >(\n value: V,\n key?: string,\n) => new DynoSampler2DShadow({ key, value });\nexport const dynoSampler2DArrayShadow = <\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSampler2DArrayShadow({ key, value });\nexport const dynoSamplerCubeShadow = <\n V extends DynoJsType<\"samplerCubeShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSamplerCubeShadow({ key, value });\n\nexport class DynoUniform<\n T extends DynoType,\n K extends string = \"value\",\n V extends DynoJsType = DynoJsType,\n >\n extends Dyno, { [key in K]: T }>\n implements HasDynoOut\n{\n public type: T;\n public count?: number;\n public outKey: K;\n public value: V;\n public uniform: { value: V; type?: string };\n\n constructor({\n key,\n type,\n count,\n value,\n update,\n globals,\n }: {\n key?: K;\n type: T;\n count?: number;\n value: V;\n update?: (value: V) => V | undefined;\n globals?: ({\n inputs,\n outputs,\n }: { inputs: unknown; outputs: { [key in K]?: string } }) => string[];\n }) {\n key = (key ?? \"value\") as K;\n super({\n outTypes: { [key]: type } as { [key in K]: T },\n update: () => {\n if (update) {\n const value = update(this.value);\n if (value !== undefined) {\n this.value = value;\n }\n }\n this.uniform.value = this.value;\n },\n generate: ({ inputs, outputs }) => {\n const allGlobals = globals?.({ inputs, outputs }) ?? [];\n const uniforms: Record = {};\n const name = outputs[key];\n if (name) {\n allGlobals.push(`uniform ${dynoDeclare(name, type, count)};`);\n uniforms[name] = this.uniform;\n }\n return { globals: allGlobals, uniforms };\n },\n });\n this.type = type;\n this.count = count;\n this.value = value;\n this.uniform = { value };\n this.outKey = key;\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class DynoBool extends DynoUniform<\n \"bool\",\n K,\n boolean\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: boolean;\n update?: (value: boolean) => boolean | undefined;\n }) {\n super({ key, type: \"bool\", value, update });\n }\n}\n\nexport class DynoUint extends DynoUniform<\"uint\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"uint\", value, update });\n }\n}\n\nexport class DynoInt extends DynoUniform<\"int\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"int\", value, update });\n }\n}\n\nexport class DynoFloat extends DynoUniform<\n \"float\",\n K,\n number\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"float\", value, update });\n }\n}\n\nexport class DynoBvec2<\n K extends string,\n V extends DynoJsType<\"bvec2\">,\n> extends DynoUniform<\"bvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec2\", value, update });\n }\n}\n\nexport class DynoUvec2<\n K extends string,\n V extends DynoJsType<\"uvec2\">,\n> extends DynoUniform<\"uvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec2\", value, update });\n }\n}\n\nexport class DynoIvec2<\n K extends string,\n V extends DynoJsType<\"ivec2\">,\n> extends DynoUniform<\"ivec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec2\", value, update });\n }\n}\n\nexport class DynoVec2<\n K extends string,\n V extends DynoJsType<\"vec2\">,\n> extends DynoUniform<\"vec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec2\", value, update });\n }\n}\n\nexport class DynoBvec3<\n K extends string,\n V extends DynoJsType<\"bvec3\">,\n> extends DynoUniform<\"bvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec3\", value, update });\n }\n}\n\nexport class DynoUvec3<\n V extends DynoJsType<\"uvec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"uvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec3\", value, update });\n }\n}\n\nexport class DynoIvec3<\n V extends DynoJsType<\"ivec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"ivec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec3\", value, update });\n }\n}\n\nexport class DynoVec3<\n V extends DynoJsType<\"vec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec3\", value, update });\n }\n}\n\nexport class DynoBvec4<\n K extends string,\n V extends DynoJsType<\"bvec4\">,\n> extends DynoUniform<\"bvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec4\", value, update });\n }\n}\n\nexport class DynoUvec4<\n K extends string,\n V extends DynoJsType<\"uvec4\">,\n> extends DynoUniform<\"uvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec4\", value, update });\n }\n}\n\nexport class DynoIvec4<\n K extends string,\n V extends DynoJsType<\"ivec4\">,\n> extends DynoUniform<\"ivec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec4\", value, update });\n }\n}\n\nexport class DynoVec4<\n V extends DynoJsType<\"vec4\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec4\", value, update });\n }\n}\n\nexport class DynoMat2<\n K extends string,\n V extends DynoJsType<\"mat2\">,\n> extends DynoUniform<\"mat2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2\", value, update });\n }\n}\n\nexport class DynoMat2x2<\n K extends string,\n V extends DynoJsType<\"mat2x2\">,\n> extends DynoUniform<\"mat2x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x2\", value, update });\n }\n}\n\nexport class DynoMat2x3<\n K extends string,\n V extends DynoJsType<\"mat2x3\">,\n> extends DynoUniform<\"mat2x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x3\", value, update });\n }\n}\n\nexport class DynoMat2x4<\n K extends string,\n V extends DynoJsType<\"mat2x4\">,\n> extends DynoUniform<\"mat2x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x4\", value, update });\n }\n}\n\nexport class DynoMat3<\n K extends string,\n V extends DynoJsType<\"mat3\">,\n> extends DynoUniform<\"mat3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3\", value, update });\n }\n}\n\nexport class DynoMat3x2<\n K extends string,\n V extends DynoJsType<\"mat3x2\">,\n> extends DynoUniform<\"mat3x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x2\", value, update });\n }\n}\n\nexport class DynoMat3x3<\n K extends string,\n V extends DynoJsType<\"mat3x3\">,\n> extends DynoUniform<\"mat3x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x3\", value, update });\n }\n}\n\nexport class DynoMat3x4<\n K extends string,\n V extends DynoJsType<\"mat3x4\">,\n> extends DynoUniform<\"mat3x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x4\", value, update });\n }\n}\n\nexport class DynoMat4<\n K extends string,\n V extends DynoJsType<\"mat4\">,\n> extends DynoUniform<\"mat4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4\", value, update });\n }\n}\n\nexport class DynoMat4x2<\n K extends string,\n V extends DynoJsType<\"mat4x2\">,\n> extends DynoUniform<\"mat4x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x2\", value, update });\n }\n}\n\nexport class DynoMat4x3<\n K extends string,\n V extends DynoJsType<\"mat4x3\">,\n> extends DynoUniform<\"mat4x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x3\", value, update });\n }\n}\n\nexport class DynoMat4x4<\n K extends string,\n V extends DynoJsType<\"mat4x4\">,\n> extends DynoUniform<\"mat4x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x4\", value, update });\n }\n}\n\nexport class DynoUsampler2D<\n K extends string,\n V extends DynoJsType<\"usampler2D\">,\n> extends DynoUniform<\"usampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2D\", value, update });\n }\n}\n\nexport class DynoIsampler2D<\n K extends string,\n V extends DynoJsType<\"isampler2D\">,\n> extends DynoUniform<\"isampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2D\", value, update });\n }\n}\n\nexport class DynoSampler2D<\n K extends string,\n V extends DynoJsType<\"sampler2D\">,\n> extends DynoUniform<\"sampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2D\", value, update });\n }\n}\n\nexport class DynoUsampler2DArray<\n K extends string,\n V extends DynoJsType<\"usampler2DArray\">,\n> extends DynoUniform<\"usampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2DArray\", value, update });\n }\n}\n\nexport class DynoIsampler2DArray<\n K extends string,\n V extends DynoJsType<\"isampler2DArray\">,\n> extends DynoUniform<\"isampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2DArray\", value, update });\n }\n}\n\nexport class DynoSampler2DArray<\n K extends string,\n V extends DynoJsType<\"sampler2DArray\">,\n> extends DynoUniform<\"sampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArray\", value, update });\n }\n}\n\nexport class DynoUsampler3D<\n K extends string,\n V extends DynoJsType<\"usampler3D\">,\n> extends DynoUniform<\"usampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler3D\", value, update });\n }\n}\n\nexport class DynoIsampler3D<\n K extends string,\n V extends DynoJsType<\"isampler3D\">,\n> extends DynoUniform<\"isampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler3D\", value, update });\n }\n}\n\nexport class DynoSampler3D<\n K extends string,\n V extends DynoJsType<\"sampler3D\">,\n> extends DynoUniform<\"sampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler3D\", value, update });\n }\n}\n\nexport class DynoUsamplerCube<\n K extends string,\n V extends DynoJsType<\"usamplerCube\">,\n> extends DynoUniform<\"usamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usamplerCube\", value, update });\n }\n}\n\nexport class DynoIsamplerCube<\n K extends string,\n V extends DynoJsType<\"isamplerCube\">,\n> extends DynoUniform<\"isamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isamplerCube\", value, update });\n }\n}\n\nexport class DynoSamplerCube<\n K extends string,\n V extends DynoJsType<\"samplerCube\">,\n> extends DynoUniform<\"samplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCube\", value, update });\n }\n}\n\nexport class DynoSampler2DShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DShadow\">,\n> extends DynoUniform<\"sampler2DShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DShadow\", value, update });\n }\n}\n\nexport class DynoSampler2DArrayShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n> extends DynoUniform<\"sampler2DArrayShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArrayShadow\", value, update });\n }\n}\n\nexport class DynoSamplerCubeShadow<\n K extends string,\n V extends DynoJsType<\"samplerCubeShadow\">,\n> extends DynoUniform<\"samplerCubeShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCubeShadow\", value, update });\n }\n}\n","import * as THREE from \"three\";\n\nimport { IDENT_VERTEX_SHADER } from \"../utils\";\nimport { Compilation, type Dyno, type IOTypes } from \"./base\";\n\nexport class DynoProgram {\n graph: Dyno;\n template: DynoProgramTemplate;\n inputs: Record;\n outputs: Record;\n shader: string;\n uniforms: Record;\n updaters: (() => void)[];\n\n constructor({\n graph,\n inputs,\n outputs,\n template,\n consoleLog,\n }: {\n graph: Dyno;\n inputs?: Record;\n outputs?: Record;\n template: DynoProgramTemplate;\n consoleLog?: boolean;\n }) {\n this.graph = graph;\n this.template = template;\n this.inputs = inputs ?? {};\n this.outputs = outputs ?? {};\n\n const compile = new Compilation({ indent: this.template.indent });\n for (const key in this.outputs) {\n if (this.outputs[key]) {\n compile.declares.add(this.outputs[key]);\n }\n }\n const statements = graph.compile({\n inputs: this.inputs,\n outputs: this.outputs,\n compile,\n });\n\n this.shader = template.generate({ globals: compile.globals, statements });\n this.uniforms = compile.uniforms;\n this.updaters = compile.updaters;\n if (consoleLog) {\n console.log(\"*** COMPILED SHADER\", this.shader);\n console.log(\"*** UNIFORMS\", this.uniforms);\n }\n }\n\n prepareMaterial(): THREE.RawShaderMaterial {\n return getMaterial(this);\n }\n\n update() {\n for (const updater of this.updaters) {\n updater();\n }\n }\n}\n\nexport class DynoProgramTemplate {\n before: string;\n between: string;\n after: string;\n indent: string;\n\n constructor(template: string) {\n const globals = template.match(/^([ \\t]*)\\{\\{\\s*GLOBALS\\s*\\}\\}/m);\n const statements = template.match(/^([ \\t]*)\\{\\{\\s*STATEMENTS\\s*\\}\\}/m);\n if (!globals || !statements) {\n throw new Error(\n \"Template must contain {{ GLOBALS }} and {{ STATEMENTS }}\",\n );\n }\n\n this.before = template.substring(0, globals.index);\n this.between = template.substring(\n (globals.index as number) + globals[0].length,\n statements.index,\n );\n this.after = template.substring(\n (statements.index as number) + statements[0].length,\n );\n this.indent = statements[1];\n }\n\n generate({\n globals,\n statements,\n }: { globals: Set; statements: string[] }): string {\n return (\n this.before +\n Array.from(globals).join(\"\\n\\n\") +\n this.between +\n statements.map((s) => this.indent + s).join(\"\\n\") +\n this.after\n );\n }\n}\n\nconst programMaterial = new WeakMap();\n\nfunction getMaterial(program: DynoProgram): THREE.RawShaderMaterial {\n let material = programMaterial.get(program);\n if (material) {\n return material;\n }\n\n material = new THREE.RawShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: IDENT_VERTEX_SHADER,\n fragmentShader: program.shader,\n uniforms: program.uniforms,\n });\n programMaterial.set(program, material);\n return material;\n}\n","import {\n type AllFloatTypes,\n type AllIntTypes,\n type AllSignedTypes,\n type AllValueTypes,\n type BaseType,\n type BoolTypes,\n type FloatTypes,\n type IntTypes,\n type SignedTypes,\n type UintTypes,\n type ValueTypes,\n isAllFloatType,\n isFloatType,\n isIntType,\n isMat2,\n isMat3,\n isMat4,\n isUintType,\n} from \"./types\";\n\nexport type AddOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : never);\n\nexport type SubOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type MulOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : A extends IntTypes\n ? B extends A\n ? A\n : never\n : B extends IntTypes\n ? A extends B\n ? A\n : never\n : A extends UintTypes\n ? B extends A\n ? A\n : never\n : B extends UintTypes\n ? A extends B\n ? A\n : never\n : // Vector * Matrix/Vector\n A extends \"vec2\"\n ? B extends \"vec2\" | \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : B extends \"mat3x2\"\n ? \"vec3\"\n : B extends \"mat4x2\"\n ? \"vec4\"\n : never\n : A extends \"vec3\"\n ? B extends \"mat2x3\"\n ? \"vec2\"\n : B extends \"vec3\" | \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : B extends \"mat4x3\"\n ? \"vec4\"\n : never\n : A extends \"vec4\"\n ? B extends \"mat2x4\"\n ? \"vec2\"\n : B extends \"mat3x4\"\n ? \"vec3\"\n : B extends \"vec4\" | \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Vector\n B extends \"vec2\"\n ? A extends \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : A extends \"mat2x3\"\n ? \"vec3\"\n : A extends \"mat2x4\"\n ? \"vec4\"\n : never\n : B extends \"vec3\"\n ? A extends \"mat3x2\"\n ? \"vec2\"\n : A extends \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : A extends \"mat3x4\"\n ? \"vec4\"\n : never\n : B extends \"vec4\"\n ? A extends \"mat4x2\"\n ? \"vec2\"\n : A extends \"mat4x3\"\n ? \"vec3\"\n : A extends \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n A extends \"mat2\" | \"mat2x2\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2\"\n : B extends \"mat3x2\"\n ? \"mat3x2\"\n : B extends \"mat4x2\"\n ? \"mat4x2\"\n : never\n : A extends \"mat2x3\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x3\"\n : B extends \"mat3x2\"\n ? \"mat3\"\n : B extends \"mat4x2\"\n ? \"mat4x3\"\n : never\n : A extends \"mat2x4\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x4\"\n : B extends \"mat3x2\"\n ? \"mat3x4\"\n : B extends \"mat4x2\"\n ? \"mat4\"\n : never\n : A extends \"mat3x2\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x2\"\n : B extends \"mat4x3\"\n ? \"mat4x2\"\n : never\n : A extends \"mat3\" | \"mat3x3\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x3\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3\"\n : B extends \"mat4x3\"\n ? \"mat4x3\"\n : never\n : A extends \"mat3x4\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x4\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x4\"\n : B extends \"mat4x3\"\n ? \"mat4\"\n : never\n : A extends \"mat4x2\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2\"\n : B extends \"mat3x4\"\n ? \"mat3x2\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x2\"\n : never\n : A extends \"mat4x3\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x3\"\n : B extends \"mat3x4\"\n ? \"mat3\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x3\"\n : never\n : A extends \"mat4\" | \"mat4x4\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x4\"\n : B extends \"mat3x4\"\n ? \"mat3x4\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4\"\n : never\n : never);\n\nexport type DivOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type IModOutput<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\n\nexport type ModOutput = BaseType &\n (A extends B ? A : B extends \"float\" ? A : never);\n\nexport type PowOutput = BaseType &\n (A extends B ? A : never);\n\nexport type MinOutput = BaseType &\n (A extends B\n ? A\n : B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MaxOutput = MinOutput<\n A,\n B\n>;\nexport type ClampOutput = BaseType &\n (B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MixOutput<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> = BaseType &\n (T extends A\n ? A\n : T extends \"float\"\n ? A\n : T extends \"bool\"\n ? A extends \"float\"\n ? A\n : never\n : T extends \"bvec2\"\n ? A extends \"vec2\"\n ? A\n : never\n : T extends \"bvec3\"\n ? A extends \"vec3\"\n ? A\n : never\n : T extends \"bvec4\"\n ? A extends \"vec4\"\n ? A\n : never\n : never);\nexport type StepOutput = BaseType &\n (A extends B ? B : A extends \"float\" ? B : never);\nexport type SmoothstepOutput<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n> = BaseType &\n (A extends B ? (A extends C ? C : A extends \"float\" ? C : never) : never);\n\nexport type IsNanOutput = BaseType &\n (A extends \"float\"\n ? \"bool\"\n : A extends \"vec2\"\n ? \"bvec2\"\n : A extends \"vec3\"\n ? \"bvec3\"\n : A extends \"vec4\"\n ? \"bvec4\"\n : never);\nexport type IsInfOutput = IsNanOutput;\n\n// // Run-time type helper functions\n\nexport function addOutputType(\n a: A,\n b: B,\n operation = \"add\",\n): AddOutput {\n const error = () => {\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n };\n // @ts-ignore\n if (a === b) return a as AddOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as AddOutput;\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return a as AddOutput;\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return b as AddOutput;\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return a as AddOutput;\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return b as AddOutput;\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return a as AddOutput;\n error();\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function subOutputType(\n a: A,\n b: B,\n): SubOutput {\n return addOutputType(a, b, \"sub\");\n}\n\nexport function mulOutputType(\n a: A,\n b: B,\n): MulOutput {\n const error = () => {\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n };\n const result = (value: unknown) => value as MulOutput;\n if (a === \"int\") {\n if (isIntType(b)) return result(b);\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return result(a);\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return result(b);\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return result(a);\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return result(b);\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return result(a);\n error();\n }\n if (isIntType(a) || isUintType(a) || isIntType(b) || isUintType(b)) {\n // @ts-ignore\n if (a === b) return result(a);\n error();\n }\n // Vector * Matrix/Vector\n if (a === \"vec2\") {\n if (b === \"vec2\" || isMat2(b)) return result(\"vec2\");\n if (b === \"mat3x2\") return result(\"vec3\");\n if (b === \"mat4x2\") return result(\"vec4\");\n error();\n }\n if (a === \"vec3\") {\n if (b === \"mat2x3\") return result(\"vec2\");\n if (b === \"vec3\" || isMat3(b)) return result(\"vec3\");\n if (b === \"mat4x3\") return result(\"vec4\");\n error();\n }\n if (a === \"vec4\") {\n if (b === \"mat2x4\") return result(\"vec2\");\n if (b === \"mat3x4\") return result(\"vec3\");\n if (b === \"vec4\" || isMat4(b)) return result(\"vec4\");\n error();\n }\n // Matrix * Vector\n if (b === \"vec2\") {\n if (isMat2(a)) return result(\"vec2\");\n if (a === \"mat2x3\") return result(\"vec3\");\n if (a === \"mat2x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec3\") {\n if (a === \"mat3x2\") return result(\"vec2\");\n if (isMat3(a)) return result(\"vec3\");\n if (a === \"mat3x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec4\") {\n if (a === \"mat4x2\") return result(\"vec2\");\n if (a === \"mat4x3\") return result(\"vec3\");\n if (isMat4(a)) return result(\"vec4\");\n error();\n }\n // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n if (isMat2(a)) {\n if (isMat2(b)) return result(\"mat2\");\n if (b === \"mat3x2\") return result(\"mat3x2\");\n if (b === \"mat4x2\") return result(\"mat4x2\");\n error();\n }\n if (a === \"mat2x3\") {\n if (isMat2(b)) return result(\"mat2x3\");\n if (b === \"mat3x2\") return result(\"mat3\");\n if (b === \"mat4x2\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat2x4\") {\n if (isMat2(b)) return result(\"mat2x4\");\n if (b === \"mat3x2\") return result(\"mat3x4\");\n if (b === \"mat4x2\") return result(\"mat4\");\n error();\n }\n if (a === \"mat3x2\") {\n if (b === \"mat2x3\") return result(\"mat2\");\n if (isMat3(b)) return result(\"mat3x2\");\n if (b === \"mat4x3\") return result(\"mat4x2\");\n error();\n }\n if (isMat3(a)) {\n if (b === \"mat2x3\") return result(\"mat2x3\");\n if (isMat3(b)) return result(\"mat3\");\n if (b === \"mat4x3\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat3x4\") {\n if (b === \"mat2x3\") return result(\"mat2x4\");\n if (isMat3(b)) return result(\"mat3x4\");\n if (b === \"mat4x3\") return result(\"mat4\");\n error();\n }\n if (a === \"mat4x2\") {\n if (b === \"mat2x4\") return result(\"mat2\");\n if (b === \"mat3x4\") return result(\"mat3x2\");\n if (isMat4(b)) return result(\"mat4x2\");\n error();\n }\n if (a === \"mat4x3\") {\n if (b === \"mat2x4\") return result(\"mat2x3\");\n if (b === \"mat3x4\") return result(\"mat3\");\n if (isMat4(b)) return result(\"mat4x3\");\n error();\n }\n if (isMat4(a)) {\n if (b === \"mat2x4\") return result(\"mat2x4\");\n if (b === \"mat3x4\") return result(\"mat3x4\");\n if (isMat4(b)) return result(\"mat4\");\n error();\n }\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n}\n\nexport function divOutputType(\n a: A,\n b: B,\n): DivOutput {\n return addOutputType(a, b, \"div\");\n}\n\nexport function imodOutputType(\n a: A,\n b: B,\n): IModOutput {\n // @ts-ignore\n if (a === b) return a as IModOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as IModOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as IModOutput;\n } else if (a === \"uint\") {\n if (isUintType(b)) return b as IModOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as IModOutput;\n }\n throw new Error(`Invalid imod types: ${a}, ${b}`);\n}\n\nexport function modOutputType(\n a: A,\n b: B,\n): ModOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return a as ModOutput;\n throw new Error(`Invalid mod types: ${a}, ${b}`);\n}\n\nexport function modfOutputType(a: A): A {\n return a;\n}\n\nexport function negOutputType(a: A): A {\n return a;\n}\n\nexport function absOutputType(a: A): A {\n return a;\n}\n\nexport function signOutputType(a: A): A {\n return a;\n}\n\nexport function floorOutputType(a: A): A {\n return a;\n}\n\nexport function ceilOutputType(a: A): A {\n return a;\n}\n\nexport function truncOutputType(a: A): A {\n return a;\n}\n\nexport function roundOutputType(a: A): A {\n return a;\n}\n\nexport function fractOutputType(a: A): A {\n return a;\n}\n\nexport function powOutputType(a: A): A {\n return a;\n}\n\nexport function expOutputType(a: A): A {\n return a;\n}\n\nexport function exp2OutputType(a: A): A {\n return a;\n}\n\nexport function logOutputType(a: A): A {\n return a;\n}\n\nexport function log2OutputType(a: A): A {\n return a;\n}\n\nexport function sqrOutputType(a: A): A {\n return a;\n}\n\nexport function sqrtOutputType(a: A): A {\n return a;\n}\n\nexport function inversesqrtOutputType(a: A): A {\n return a;\n}\n\nexport function minOutputType(\n a: A,\n b: B,\n operation = \"min\",\n): MinOutput {\n // @ts-ignore\n if (a === b) return a as MinOutput;\n if (b === \"float\") {\n if (isFloatType(a)) return a as MinOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as MinOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as MinOutput;\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function maxOutputType(\n a: A,\n b: B,\n): MaxOutput {\n return minOutputType(a, b, \"max\");\n}\n\nexport function clampOutputType(\n a: A,\n b: B,\n _c: B,\n): ClampOutput {\n if (b === \"float\") {\n if (isFloatType(a)) return a as ClampOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as ClampOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as ClampOutput;\n }\n throw new Error(`Invalid clamp types: ${a}, ${b}`);\n}\n\nexport function mixOutputType<\n A extends FloatTypes,\n C extends FloatTypes | BoolTypes,\n>(a: A, b: A, c: C): MixOutput {\n // @ts-ignore\n if (c === a) return a as MixOutput;\n if (c === \"float\") return a as MixOutput;\n if (c === \"bool\" && a === \"float\") return a as MixOutput;\n if (c === \"bvec2\" && a === \"vec2\") return a as MixOutput;\n if (c === \"bvec3\" && a === \"vec3\") return a as MixOutput;\n if (c === \"bvec4\" && a === \"vec4\") return a as MixOutput;\n throw new Error(`Invalid mix types: ${a}, ${b}, ${c}`);\n}\n\nexport function stepOutputType(\n a: A,\n b: B,\n): StepOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return b as StepOutput;\n throw new Error(`Invalid step types: ${a}, ${b}`);\n}\n\nexport function smoothstepOutputType<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n>(a: A, b: B, c: C): SmoothstepOutput {\n // @ts-ignore\n if (a === b) {\n if (a === c || a === \"float\") return c as SmoothstepOutput;\n }\n throw new Error(`Invalid smoothstep types: ${a}, ${b}, ${c}`);\n}\n\nexport function isNanOutputType(\n a: A,\n operation = \"isNan\",\n): IsNanOutput {\n if (a === \"float\") return \"bool\" as IsNanOutput;\n if (a === \"vec2\") return \"bvec2\" as IsNanOutput;\n if (a === \"vec3\") return \"bvec3\" as IsNanOutput;\n if (a === \"vec4\") return \"bvec4\" as IsNanOutput;\n throw new Error(`Invalid ${operation} types: ${a}`);\n}\n\nexport function isInfOutputType(a: A): IsInfOutput {\n return isNanOutputType(a, \"isInf\");\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AddOutput,\n type ClampOutput,\n type DivOutput,\n type IModOutput,\n type IsInfOutput,\n type IsNanOutput,\n type MaxOutput,\n type MinOutput,\n type MixOutput,\n type ModOutput,\n type MulOutput,\n type SmoothstepOutput,\n type StepOutput,\n type SubOutput,\n absOutputType,\n addOutputType,\n ceilOutputType,\n clampOutputType,\n divOutputType,\n exp2OutputType,\n expOutputType,\n floorOutputType,\n fractOutputType,\n imodOutputType,\n inversesqrtOutputType,\n isInfOutputType,\n isNanOutputType,\n log2OutputType,\n logOutputType,\n maxOutputType,\n minOutputType,\n mixOutputType,\n modOutputType,\n modfOutputType,\n mulOutputType,\n negOutputType,\n powOutputType,\n roundOutputType,\n signOutputType,\n smoothstepOutputType,\n sqrOutputType,\n sqrtOutputType,\n stepOutputType,\n subOutputType,\n truncOutputType,\n} from \"./mathTypes\";\nimport type {\n AllIntTypes,\n AllSignedTypes,\n AllValueTypes,\n BoolTypes,\n FloatTypes,\n SignedTypes,\n ValueTypes,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const add = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Add({ a, b });\nexport const sub = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Sub({ a, b });\nexport const mul = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mul({ a, b });\nexport const div = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Div({ a, b });\nexport const imod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new IMod({ a, b });\nexport const mod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mod({ a, b });\nexport const modf = (a: DynoVal) =>\n new Modf({ a }).outputs;\n\nexport const neg = (a: DynoVal): DynoVal =>\n new Neg({ a });\nexport const abs = (a: DynoVal): DynoVal =>\n new Abs({ a });\nexport const sign = (a: DynoVal): DynoVal =>\n new Sign({ a });\nexport const floor = (a: DynoVal): DynoVal =>\n new Floor({ a });\nexport const ceil = (a: DynoVal): DynoVal =>\n new Ceil({ a });\nexport const trunc = (a: DynoVal): DynoVal =>\n new Trunc({ a });\nexport const round = (a: DynoVal): DynoVal =>\n new Round({ a });\nexport const fract = (a: DynoVal): DynoVal =>\n new Fract({ a });\n\nexport const pow = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Pow({ a, b });\nexport const exp = (a: DynoVal): DynoVal =>\n new Exp({ a });\nexport const exp2 = (a: DynoVal): DynoVal =>\n new Exp2({ a });\nexport const log = (a: DynoVal): DynoVal =>\n new Log({ a });\nexport const log2 = (a: DynoVal): DynoVal =>\n new Log2({ a });\nexport const sqr = (a: DynoVal): DynoVal =>\n new Sqr({ a });\nexport const sqrt = (a: DynoVal): DynoVal =>\n new Sqrt({ a });\nexport const inversesqrt = (a: DynoVal): DynoVal =>\n new InverseSqrt({ a });\n\nexport const min = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Min({ a, b });\nexport const max = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Max({ a, b });\nexport const clamp = (\n a: DynoVal,\n min: DynoVal,\n max: DynoVal,\n): DynoVal> => new Clamp({ a, min, max });\nexport const mix = (\n a: DynoVal,\n b: DynoVal,\n t: DynoVal,\n): DynoVal> => new Mix({ a, b, t });\nexport const step = (\n edge: DynoVal,\n x: DynoVal,\n): DynoVal> => new Step({ edge, x });\nexport const smoothstep = (\n edge0: DynoVal,\n edge1: DynoVal,\n x: DynoVal,\n): DynoVal> =>\n new Smoothstep({ edge0, edge1, x });\n\nexport const isNan = (\n a: DynoVal,\n): DynoVal> => new IsNan({ a });\nexport const isInf = (\n a: DynoVal,\n): DynoVal> => new IsInf({ a });\n\nexport class Add<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"sum\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"sum\", outTypeFunc: addOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sum} = ${inputs.a} + ${inputs.b};`];\n };\n }\n}\n\nexport class Sub<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"difference\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"difference\", outTypeFunc: subOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.difference} = ${inputs.a} - ${inputs.b};`];\n };\n }\n}\n\nexport class Mul<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"product\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: mulOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.product} = ${inputs.a} * ${inputs.b};`];\n };\n }\n}\n\nexport class Div<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"quotient\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"quotient\", outTypeFunc: divOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.quotient} = ${inputs.a} / ${inputs.b};`];\n };\n }\n}\n\nexport class IMod<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> extends BinaryOp, \"remainder\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: imodOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = ${inputs.a} % ${inputs.b};`];\n };\n }\n}\n\nexport class Mod extends BinaryOp<\n A,\n B,\n ModOutput,\n \"remainder\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: modOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = mod(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Modf extends Dyno<\n { a: A },\n { fract: A; integer: A }\n> {\n constructor({ a }: { a: DynoVal }) {\n const inTypes = { a: valType(a) };\n const outType = modfOutputType(inTypes.a);\n const outTypes = {\n fract: outType,\n integer: outType,\n };\n super({ inTypes, outTypes, inputs: { a } });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = modf(${inputs.a}, ${outputs.integer});`];\n };\n }\n}\n\nexport class Neg extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"neg\", outTypeFunc: negOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.neg} = -${inputs.a};`];\n };\n }\n}\n\nexport class Abs extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"abs\", outTypeFunc: absOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.abs} = abs(${inputs.a});`];\n };\n }\n}\n\nexport class Sign extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sign\", outTypeFunc: signOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sign} = sign(${inputs.a});`];\n };\n }\n}\n\nexport class Floor extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"floor\", outTypeFunc: floorOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.floor} = floor(${inputs.a});`];\n };\n }\n}\n\nexport class Ceil extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"ceil\", outTypeFunc: ceilOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.ceil} = ceil(${inputs.a});`];\n };\n }\n}\n\nexport class Trunc extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"trunc\", outTypeFunc: truncOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.trunc} = trunc(${inputs.a});`];\n };\n }\n}\n\nexport class Round extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"round\", outTypeFunc: roundOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.round} = round(${inputs.a});`];\n };\n }\n}\n\nexport class Fract extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"fract\", outTypeFunc: fractOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = fract(${inputs.a});`];\n };\n }\n}\n\nexport class Pow extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"power\", outTypeFunc: powOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.power} = pow(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Exp extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp\", outTypeFunc: expOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp} = exp(${inputs.a});`];\n };\n }\n}\n\nexport class Exp2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp2\", outTypeFunc: exp2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp2} = exp2(${inputs.a});`];\n };\n }\n}\n\nexport class Log extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log\", outTypeFunc: logOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log} = log(${inputs.a});`];\n };\n }\n}\n\nexport class Log2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log2\", outTypeFunc: log2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log2} = log2(${inputs.a});`];\n };\n }\n}\n\nexport class Sqr extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqr\", outTypeFunc: sqrOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqr} = ${inputs.a} * ${inputs.a};`];\n };\n }\n}\n\nexport class Sqrt extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqrt\", outTypeFunc: sqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqrt} = sqrt(${inputs.a});`];\n };\n }\n}\n\nexport class InverseSqrt extends UnaryOp<\n A,\n A,\n \"inversesqrt\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inversesqrt\", outTypeFunc: inversesqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.inversesqrt} = inversesqrt(${inputs.a});`];\n };\n }\n}\n\nexport class Min extends BinaryOp<\n A,\n B,\n MinOutput,\n \"min\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"min\", outTypeFunc: minOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.min} = min(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Max extends BinaryOp<\n A,\n B,\n MaxOutput,\n \"max\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"max\", outTypeFunc: maxOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.max} = max(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Clamp<\n A extends ValueTypes,\n MinMax extends ValueTypes,\n> extends TrinaryOp, \"clamp\"> {\n constructor({\n a,\n min,\n max,\n }: { a: DynoVal; min: DynoVal; max: DynoVal }) {\n super({\n a,\n b: min,\n c: max,\n outKey: \"clamp\",\n outTypeFunc: clampOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a, b: min, c: max } = inputs;\n return [`${outputs.clamp} = clamp(${a}, ${min}, ${max});`];\n };\n }\n}\n\nexport class Mix<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> extends TrinaryOp, \"mix\"> {\n constructor({ a, b, t }: { a: DynoVal; b: DynoVal; t: DynoVal }) {\n super({ a, b, c: t, outKey: \"mix\", outTypeFunc: mixOutputType });\n this.statements = ({ inputs, outputs }) => {\n const { a, b, c: t } = inputs;\n return [`${outputs.mix} = mix(${a}, ${b}, ${t});`];\n };\n }\n}\n\nexport class Step<\n Edge extends FloatTypes,\n X extends FloatTypes,\n> extends BinaryOp, \"step\"> {\n constructor({ edge, x }: { edge: DynoVal; x: DynoVal }) {\n super({\n a: edge,\n b: x,\n outKey: \"step\",\n outTypeFunc: stepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge, b: x } = inputs;\n return [`${outputs.step} = step(${edge}, ${x});`];\n };\n }\n}\n\nexport class Smoothstep<\n X extends FloatTypes,\n Edge extends X | \"float\",\n> extends TrinaryOp<\n Edge,\n Edge,\n X,\n SmoothstepOutput,\n \"smoothstep\"\n> {\n constructor({\n edge0,\n edge1,\n x,\n }: { edge0: DynoVal; edge1: DynoVal; x: DynoVal }) {\n super({\n a: edge0,\n b: edge1,\n c: x,\n outKey: \"smoothstep\",\n outTypeFunc: smoothstepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge0, b: edge1, c: x } = inputs;\n return [`${outputs.smoothstep} = smoothstep(${edge0}, ${edge1}, ${x});`];\n };\n }\n}\n\nexport class IsNan extends UnaryOp<\n A,\n IsNanOutput,\n \"isNan\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isNan\", outTypeFunc: isNanOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isNan} = isNan(${inputs.a});`];\n };\n }\n}\n\nexport class IsInf extends UnaryOp<\n A,\n IsInfOutput,\n \"isInf\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isInf\", outTypeFunc: isInfOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isInf} = isInf(${inputs.a});`];\n };\n }\n}\n","import { BinaryOp, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AllIntTypes,\n type BoolTypes,\n type IntTypes,\n type ScalarTypes,\n type SimpleTypes,\n type UintTypes,\n type ValueTypes,\n isBoolType,\n isIntType,\n isScalarType,\n isUintType,\n isVector2Type,\n isVector3Type,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const and = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new And({ a, b });\nexport const or = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Or({ a, b });\nexport const xor = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Xor({ a, b });\nexport const not = (\n a: DynoVal,\n): DynoVal => new Not({ a });\n\nexport const shr = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shr({ a, b });\n\nexport const shl = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shl({ a, b });\n\nexport const lessThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThan({ a, b });\nexport const lessThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThanEqual({ a, b });\nexport const greaterThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThan({ a, b });\nexport const greaterThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThanEqual({ a, b });\nexport const equal = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Equal({ a, b });\nexport const notEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new NotEqual({ a, b });\n\nexport const any = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new Any({ a });\nexport const all = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new All({ a });\nexport const select = (\n cond: DynoVal<\"bool\">,\n t: DynoVal,\n f: DynoVal,\n): DynoVal => new Select({ cond, t, f });\n\nexport const compXor = (\n a: DynoVal,\n): DynoVal> => new CompXor({ a });\n\nexport class And extends BinaryOp<\n T,\n T,\n T,\n \"and\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"and\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.and === \"bool\") {\n return [`${outputs.and} = ${inputs.a} && ${inputs.b};`];\n }\n return [`${outputs.and} = ${inputs.a} & ${inputs.b};`];\n };\n }\n}\n\nexport class Or extends BinaryOp<\n T,\n T,\n T,\n \"or\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"or\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.or === \"bool\") {\n return [`${outputs.or} = ${inputs.a} || ${inputs.b};`];\n }\n return [`${outputs.or} = ${inputs.a} | ${inputs.b};`];\n };\n }\n}\n\nexport class Xor extends BinaryOp<\n T,\n T,\n T,\n \"xor\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"xor\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.xor === \"bool\") {\n return [`${outputs.xor} = ${inputs.a} ^^ ${inputs.b};`];\n }\n return [`${outputs.xor} = ${inputs.a} ^ ${inputs.b};`];\n };\n }\n}\n\nexport class Not extends UnaryOp<\n T,\n T,\n \"not\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => aType, outKey: \"not\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.not === \"bool\") {\n return [`${outputs.not} = !${inputs.a};`];\n }\n return [`${outputs.not} = not(${inputs.a});`];\n };\n }\n}\n\nexport class LessThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) => compareOutputType(aType, \"lessThan\"),\n outKey: \"lessThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThan === \"bool\") {\n return [`${outputs.lessThan} = ${inputs.a} < ${inputs.b};`];\n }\n return [`${outputs.lessThan} = lessThan(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class LessThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"lessThanEqual\"),\n outKey: \"lessThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThanEqual === \"bool\") {\n return [`${outputs.lessThanEqual} = ${inputs.a} <= ${inputs.b};`];\n }\n return [\n `${outputs.lessThanEqual} = lessThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThan\"),\n outKey: \"greaterThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThan === \"bool\") {\n return [`${outputs.greaterThan} = ${inputs.a} > ${inputs.b};`];\n }\n return [\n `${outputs.greaterThan} = greaterThan(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThanEqual\"),\n outKey: \"greaterThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThanEqual === \"bool\") {\n return [`${outputs.greaterThanEqual} = ${inputs.a} >= ${inputs.b};`];\n }\n return [\n `${outputs.greaterThanEqual} = greaterThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class Equal extends BinaryOp<\n T,\n T,\n EqualOutput,\n \"equal\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: equalOutputType, outKey: \"equal\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.equal === \"bool\") {\n return [`${outputs.equal} = ${inputs.a} == ${inputs.b};`];\n }\n return [`${outputs.equal} = equal(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class NotEqual extends BinaryOp<\n T,\n T,\n NotEqualOutput,\n \"notEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: notEqualOutputType, outKey: \"notEqual\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.notEqual === \"bool\") {\n return [`${outputs.notEqual} = ${inputs.a} != ${inputs.b};`];\n }\n return [`${outputs.notEqual} = notEqual(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Any extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"any\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.any} = any(${inputs.a});`];\n };\n }\n}\n\nexport class All extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"all\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.all} = all(${inputs.a});`];\n };\n }\n}\n\nexport class Select extends TrinaryOp<\n \"bool\",\n T,\n T,\n T,\n \"select\"\n> {\n constructor({\n cond,\n t,\n f,\n }: { cond: DynoVal<\"bool\">; t: DynoVal; f: DynoVal }) {\n super({\n a: cond,\n b: t,\n c: f,\n outKey: \"select\",\n outTypeFunc: (aType: \"bool\", bType: T, cType: T) => bType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: cond, b: t, c: f } = inputs;\n return [`${outputs.select} = (${cond}) ? (${t}) : (${f});`];\n };\n }\n}\n\ntype CompareOutput = T extends ScalarTypes\n ? \"bool\"\n : T extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : T extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : T extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction compareOutputType(\n type: T,\n operator: string,\n): CompareOutput {\n if (isScalarType(type)) {\n return \"bool\" as CompareOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as CompareOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as CompareOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as CompareOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype EqualOutput = A extends ScalarTypes\n ? \"bool\"\n : A extends BoolTypes\n ? A\n : A extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : A extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : A extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction equalOutputType(\n type: A,\n operator = \"equal\",\n): EqualOutput {\n if (isScalarType(type)) {\n return \"bool\" as EqualOutput;\n }\n if (isBoolType(type)) {\n return type as EqualOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as EqualOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as EqualOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as EqualOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype NotEqualOutput = EqualOutput;\n\nfunction notEqualOutputType(\n type: A,\n): NotEqualOutput {\n return equalOutputType(type, \"notEqual\");\n}\n\ntype CompXorOutput = A extends BoolTypes\n ? \"bool\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nfunction compXorOutputType(\n type: A,\n): CompXorOutput {\n if (isBoolType(type)) {\n return \"bool\" as CompXorOutput;\n }\n if (isIntType(type)) {\n return \"int\" as CompXorOutput;\n }\n if (isUintType(type)) {\n return \"uint\" as CompXorOutput;\n }\n throw new Error(`Invalid compXor type: ${type}`);\n}\n\nexport class CompXor extends UnaryOp<\n T,\n CompXorOutput,\n \"compXor\"\n> {\n constructor({ a }: { a: DynoVal }) {\n const outType = compXorOutputType(valType(a));\n super({ a, outTypeFunc: (aType: T) => outType, outKey: \"compXor\" });\n this.statements = ({ inputs, outputs }) => {\n if (isScalarType(this.outTypes.compXor)) {\n return [`${outputs.compXor} = ${inputs.a};`];\n }\n const components = isVector2Type(outType)\n ? [\"x\", \"y\"]\n : isVector3Type(outType)\n ? [\"x\", \"y\", \"z\"]\n : [\"x\", \"y\", \"z\", \"w\"];\n const operands = components.map((c) => `${inputs.a}.${c}`);\n const operator = isBoolType(outType) ? \"^^\" : \"^\";\n return [`${outputs.compXor} = ${operands.join(` ${operator} `)};`];\n };\n }\n}\n\nexport class Shr extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shr\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shr} = ${inputs.a} >> ${inputs.b};`];\n };\n }\n}\n\nexport class Shl extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shl\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shl} = ${inputs.a} << ${inputs.b};`];\n };\n }\n}\n","import { UnaryOp } from \"./base\";\nimport { type SimpleTypes, typeLiteral } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const bool = (\n value: DynoVal,\n): DynoVal<\"bool\"> => new Bool({ value });\nexport const int = (\n value: DynoVal,\n): DynoVal<\"int\"> => new Int({ value });\nexport const uint = (\n value: DynoVal,\n): DynoVal<\"uint\"> => new Uint({ value });\nexport const float = (\n value: DynoVal,\n): DynoVal<\"float\"> => new Float({ value });\n\nexport const bvec2 = (\n value: DynoVal,\n): DynoVal<\"bvec2\"> => new BVec2({ value });\nexport const bvec3 = (\n value: DynoVal,\n): DynoVal<\"bvec3\"> => new BVec3({ value });\nexport const bvec4 = (\n value: DynoVal,\n): DynoVal<\"bvec4\"> => new BVec4({ value });\n\nexport const ivec2 = (\n value: DynoVal,\n): DynoVal<\"ivec2\"> => new IVec2({ value });\nexport const ivec3 = (\n value: DynoVal,\n): DynoVal<\"ivec3\"> => new IVec3({ value });\nexport const ivec4 = (\n value: DynoVal,\n): DynoVal<\"ivec4\"> => new IVec4({ value });\n\nexport const uvec2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => new UVec2({ value });\nexport const uvec3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => new UVec3({ value });\nexport const uvec4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => new UVec4({ value });\n\nexport const vec2 = <\n T extends \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec2\"> => new Vec2({ value });\nexport const vec3 = <\n T extends \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec3\"> => new Vec3({ value });\nexport const vec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => new Vec4({ value });\n\nexport const mat2 = (\n value: DynoVal,\n): DynoVal<\"mat2\"> => new Mat2({ value });\nexport const mat3 = (\n value: DynoVal,\n): DynoVal<\"mat3\"> => new Mat3({ value });\nexport const mat4 = (\n value: DynoVal,\n): DynoVal<\"mat4\"> => new Mat4({ value });\n\nexport const floatBitsToInt = (value: DynoVal<\"float\">): DynoVal<\"int\"> =>\n new FloatBitsToInt({ value });\nexport const floatBitsToUint = (value: DynoVal<\"float\">): DynoVal<\"uint\"> =>\n new FloatBitsToUint({ value });\nexport const intBitsToFloat = (value: DynoVal<\"int\">): DynoVal<\"float\"> =>\n new IntBitsToFloat({ value });\nexport const uintBitsToFloat = (value: DynoVal<\"uint\">): DynoVal<\"float\"> =>\n new UintBitsToFloat({ value });\n\nexport const packSnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackSnorm2x16({ value });\nexport const unpackSnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackSnorm2x16({ value });\nexport const packUnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackUnorm2x16({ value });\nexport const unpackUnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackUnorm2x16({ value });\n\nexport const packHalf2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackHalf2x16({ value });\nexport const unpackHalf2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackHalf2x16({ value });\n\nexport const uintToRgba8 = (value: DynoVal<\"uint\">): DynoVal<\"vec4\"> =>\n new UintToRgba8({ value });\n\nexport class SimpleCast<\n Allowed extends SimpleTypes,\n OutType extends SimpleTypes,\n OutKey extends string,\n> extends UnaryOp {\n constructor({\n value,\n outType,\n outKey,\n }: { value: DynoVal; outType: OutType; outKey: OutKey }) {\n super({ a: value, outTypeFunc: () => outType, outKey });\n this.statements = ({ inputs, outputs }) => [\n `${outputs[outKey]} = ${typeLiteral(outType)}(${inputs.a});`,\n ];\n }\n}\n\nexport class Bool extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"bool\",\n \"bool\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"bool\", outKey: \"bool\" });\n }\n}\n\nexport class Int extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"int\",\n \"int\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"int\", outKey: \"int\" });\n }\n}\n\nexport class Uint extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"uint\",\n \"uint\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"uint\", outKey: \"uint\" });\n }\n}\n\nexport class Float extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"float\",\n \"float\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"float\", outKey: \"float\" });\n }\n}\n\nexport class BVec2 extends SimpleCast<\n \"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"bvec2\",\n \"bvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"bvec2\", outKey: \"bvec2\" });\n }\n}\n\nexport class BVec3 extends SimpleCast<\n \"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"bvec3\",\n \"bvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"bvec3\", outKey: \"bvec3\" });\n }\n}\n\nexport class BVec4 extends SimpleCast<\n \"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"bvec4\",\n \"bvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"bvec4\", outKey: \"bvec4\" });\n }\n}\n\nexport class IVec2 extends SimpleCast<\n \"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"ivec2\",\n \"ivec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"ivec2\", outKey: \"ivec2\" });\n }\n}\n\nexport class IVec3 extends SimpleCast<\n \"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"ivec3\",\n \"ivec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"ivec3\", outKey: \"ivec3\" });\n }\n}\n\nexport class IVec4 extends SimpleCast<\n \"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"ivec4\",\n \"ivec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"ivec4\", outKey: \"ivec4\" });\n }\n}\n\nexport class UVec2 extends SimpleCast<\n \"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\",\n \"uvec2\",\n \"uvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"uvec2\", outKey: \"uvec2\" });\n }\n}\n\nexport class UVec3 extends SimpleCast<\n \"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\",\n \"uvec3\",\n \"uvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"uvec3\", outKey: \"uvec3\" });\n }\n}\n\nexport class UVec4 extends SimpleCast<\n \"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\",\n \"uvec4\",\n \"uvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"uvec4\", outKey: \"uvec4\" });\n }\n}\n\nexport class Vec2 extends SimpleCast<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n \"vec2\",\n \"vec2\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec2\", outKey: \"vec2\" });\n }\n}\n\nexport class Vec3 extends SimpleCast<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\",\n \"vec3\",\n \"vec3\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec3\", outKey: \"vec3\" });\n }\n}\n\nexport class Vec4 extends SimpleCast<\n \"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"vec4\",\n \"vec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"vec4\", outKey: \"vec4\" });\n }\n}\n\nexport class Mat2 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat2\",\n \"mat2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat2\", outKey: \"mat2\" });\n }\n}\n\nexport class Mat3 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat3\",\n \"mat3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat3\", outKey: \"mat3\" });\n }\n}\n\nexport class Mat4 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat4\",\n \"mat4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat4\", outKey: \"mat4\" });\n }\n}\n\nexport class FloatBitsToInt extends UnaryOp<\"float\", \"int\", \"int\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"int\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.int} = floatBitsToInt(${inputs.a});`];\n };\n }\n}\n\nexport class FloatBitsToUint extends UnaryOp<\"float\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = floatBitsToUint(${inputs.a});`];\n };\n }\n}\n\nexport class IntBitsToFloat extends UnaryOp<\"int\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"int\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = intBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class UintBitsToFloat extends UnaryOp<\"uint\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = uintBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class PackSnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackSnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackUnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackUnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackHalf2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackHalf2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UintToRgba8 extends UnaryOp<\"uint\", \"vec4\", \"rgba8\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"rgba8\", outTypeFunc: () => \"vec4\" });\n this.statements = ({ inputs, outputs }) => {\n return [\n `uvec4 uRgba = uvec4(${inputs.a} & 0xffu, (${inputs.a} >> 8u) & 0xffu, (${inputs.a} >> 16u) & 0xffu, (${inputs.a} >> 24u) & 0xffu);`,\n `${outputs.rgba8} = vec4(uRgba) / 255.0;`,\n ];\n };\n }\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type FloatTypes,\n type IntTypes,\n type MatFloatTypes,\n type SquareMatTypes,\n type UintTypes,\n type VectorElementType,\n type VectorTypes,\n isFloatType,\n isIntType,\n isUintType,\n vectorDim,\n vectorElementType,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n literalZero,\n valType,\n} from \"./value\";\n\nexport const length = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Length({ a });\nexport const distance = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Distance({ a, b });\nexport const dot = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Dot({ a, b });\nexport const cross = (\n a: DynoVal<\"vec3\">,\n b: DynoVal<\"vec3\">,\n): DynoVal<\"vec3\"> => new Cross({ a, b });\nexport const normalize = (\n a: DynoVal,\n): DynoVal => new Normalize({ a });\nexport const faceforward = (\n a: DynoVal,\n b: DynoVal,\n c: DynoVal,\n): DynoVal => new FaceForward({ a, b, c });\nexport const reflectVec = (\n incident: DynoVal,\n normal: DynoVal,\n): DynoVal => new ReflectVec({ incident, normal });\nexport const refractVec = (\n incident: DynoVal,\n normal: DynoVal,\n eta: DynoVal<\"float\">,\n): DynoVal => new RefractVec({ incident, normal, eta });\nexport const split = (vector: DynoVal): Split =>\n new Split({ vector });\nexport const combine = >({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n}: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n}): DynoVal => new Combine({ vector, vectorType, x, y, z, w, r, g, b, a });\nexport const projectH = (\n a: DynoVal,\n): DynoVal> => new ProjectH({ a });\nexport const extendVec = (\n a: DynoVal,\n b: DynoVal<\"float\">,\n): DynoVal> => new ExtendVec({ a, b });\nexport const swizzle = (\n a: DynoVal,\n select: S,\n): DynoVal>> =>\n new Swizzle({ vector: a, select });\nexport const compMult = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new CompMult({ a, b });\nexport const outer = <\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Outer({ a, b });\nexport const transpose = (\n a: DynoVal,\n): DynoVal> => new Transpose({ a });\nexport const determinant = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Determinant({ a });\nexport const inverse = (a: DynoVal): DynoVal =>\n new Inverse({ a });\n\nexport class Length extends UnaryOp<\n A,\n \"float\",\n \"length\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => \"float\", outKey: \"length\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.length} = length(${inputs.a});`,\n ];\n }\n}\n\nexport class Distance extends BinaryOp<\n A,\n A,\n \"float\",\n \"distance\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"distance\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.distance} = distance(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Dot extends BinaryOp<\n A,\n A,\n \"float\",\n \"dot\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"dot\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.dot} = dot(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Cross extends BinaryOp<\"vec3\", \"vec3\", \"vec3\", \"cross\"> {\n constructor({ a, b }: { a: DynoVal<\"vec3\">; b: DynoVal<\"vec3\"> }) {\n super({ a, b, outKey: \"cross\", outTypeFunc: (aType, bType) => \"vec3\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cross} = cross(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Normalize extends UnaryOp<\n A,\n A,\n \"normalize\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => aType, outKey: \"normalize\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normalize} = normalize(${inputs.a});`,\n ];\n }\n}\n\ntype ProjectHOutput = A extends \"vec3\"\n ? \"vec2\"\n : A extends \"vec4\"\n ? \"vec3\"\n : never;\n\nfunction projectHOutputType(\n type: A,\n): ProjectHOutput {\n if (type === \"vec3\") {\n return \"vec2\" as ProjectHOutput;\n }\n if (type === \"vec4\") {\n return \"vec3\" as ProjectHOutput;\n }\n throw new Error(\"Invalid type\");\n}\n\nexport class ProjectH extends UnaryOp<\n A,\n ProjectHOutput,\n \"projected\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({\n a,\n outTypeFunc: (aType) => projectHOutputType(aType),\n outKey: \"projected\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.inTypes.a === \"vec3\") {\n return [`${outputs.projected} = ${inputs.a}.xy / ${inputs.a}.z;`];\n }\n if (this.inTypes.a === \"vec4\") {\n return [`${outputs.projected} = ${inputs.a}.xyz / ${inputs.a}.w;`];\n }\n throw new Error(\"Invalid type\");\n };\n }\n}\n\ntype ExtendVecOutput = A extends \"float\"\n ? \"vec2\"\n : A extends \"vec2\"\n ? \"vec3\"\n : A extends \"vec3\"\n ? \"vec4\"\n : never;\n\nfunction extendVecOutputType(\n type: A,\n): ExtendVecOutput {\n if (type === \"float\") return \"vec2\" as ExtendVecOutput;\n if (type === \"vec2\") return \"vec3\" as ExtendVecOutput;\n if (type === \"vec3\") return \"vec4\" as ExtendVecOutput;\n throw new Error(\"Invalid type\");\n}\n\nexport class ExtendVec extends BinaryOp<\n A,\n \"float\",\n ExtendVecOutput,\n \"extend\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal<\"float\"> }) {\n const type = valType(a);\n const outType = extendVecOutputType(type);\n super({ a, b, outKey: \"extend\", outTypeFunc: () => outType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.extend} = ${outType}(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class FaceForward extends TrinaryOp<\n A,\n A,\n A,\n A,\n \"forward\"\n> {\n constructor({ a, b, c }: { a: DynoVal; b: DynoVal; c: DynoVal }) {\n super({\n a,\n b,\n c,\n outKey: \"forward\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.forward} = faceforward(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class ReflectVec extends BinaryOp<\n A,\n A,\n A,\n \"reflection\"\n> {\n constructor({\n incident,\n normal,\n }: { incident: DynoVal; normal: DynoVal }) {\n super({\n a: incident,\n b: normal,\n outKey: \"reflection\",\n outTypeFunc: (aType, bType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.reflection} = reflect(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class RefractVec extends TrinaryOp<\n A,\n A,\n \"float\",\n A,\n \"refraction\"\n> {\n constructor({\n incident,\n normal,\n eta,\n }: { incident: DynoVal; normal: DynoVal; eta: DynoVal<\"float\"> }) {\n super({\n a: incident,\n b: normal,\n c: eta,\n outKey: \"refraction\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.refraction} = refract(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class CompMult extends BinaryOp<\n A,\n A,\n A,\n \"product\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: (aType, bType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.product} = matrixCompMult(${a}, ${b});`,\n ];\n }\n}\n\ntype OuterOutput<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> = A extends \"vec2\"\n ? B extends \"vec2\"\n ? \"mat2\"\n : B extends \"vec3\"\n ? \"mat3x2\"\n : B extends \"vec4\"\n ? \"mat4x2\"\n : never\n : A extends \"vec3\"\n ? B extends \"vec2\"\n ? \"mat2x3\"\n : B extends \"vec3\"\n ? \"mat3\"\n : B extends \"vec4\"\n ? \"mat4x3\"\n : never\n : A extends \"vec4\"\n ? B extends \"vec2\"\n ? \"mat2x4\"\n : B extends \"vec3\"\n ? \"mat3x4\"\n : B extends \"vec4\"\n ? \"mat4\"\n : never\n : never;\n\nfunction outerOutputType<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(aType: A, bType: B): OuterOutput {\n if (aType === \"vec2\") {\n if (bType === \"vec2\") return \"mat2\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x2\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x2\" as OuterOutput;\n }\n if (aType === \"vec3\") {\n if (bType === \"vec2\") return \"mat2x3\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x3\" as OuterOutput;\n }\n if (aType === \"vec4\") {\n if (bType === \"vec2\") return \"mat2x4\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x4\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4\" as OuterOutput;\n }\n throw new Error(`Invalid outer type: ${aType}, ${bType}`);\n}\n\nexport class Outer<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> extends BinaryOp, \"outer\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"outer\", outTypeFunc: outerOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.outer} = outerProduct(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\ntype TransposeOutput = A extends SquareMatTypes\n ? A\n : A extends \"mat2x3\"\n ? \"mat3x2\"\n : A extends \"mat2x4\"\n ? \"mat4x2\"\n : A extends \"mat3x2\"\n ? \"mat2x3\"\n : A extends \"mat3x4\"\n ? \"mat4x3\"\n : A extends \"mat4x2\"\n ? \"mat2x4\"\n : A extends \"mat4x3\"\n ? \"mat3x4\"\n : never;\n\nfunction transposeOutputType(\n type: A,\n): TransposeOutput {\n if (type === \"mat2\") return \"mat2\" as TransposeOutput;\n if (type === \"mat3\") return \"mat3\" as TransposeOutput;\n if (type === \"mat4\") return \"mat4\" as TransposeOutput;\n if (type === \"mat2x2\") return \"mat2x2\" as TransposeOutput;\n if (type === \"mat2x3\") return \"mat3x2\" as TransposeOutput;\n if (type === \"mat2x4\") return \"mat4x2\" as TransposeOutput;\n if (type === \"mat3x2\") return \"mat2x3\" as TransposeOutput;\n if (type === \"mat3x3\") return \"mat3x3\" as TransposeOutput;\n if (type === \"mat3x4\") return \"mat4x3\" as TransposeOutput;\n if (type === \"mat4x2\") return \"mat2x4\" as TransposeOutput;\n if (type === \"mat4x3\") return \"mat3x4\" as TransposeOutput;\n if (type === \"mat4x4\") return \"mat4x4\" as TransposeOutput;\n throw new Error(`Invalid transpose type: ${type}`);\n}\n\nexport class Transpose extends UnaryOp<\n A,\n TransposeOutput,\n \"transpose\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"transpose\", outTypeFunc: transposeOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.transpose} = transpose(${inputs.a});`,\n ];\n }\n}\n\nexport class Determinant extends UnaryOp<\n A,\n \"float\",\n \"det\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"det\", outTypeFunc: (aType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.det} = determinant(${inputs.a});`,\n ];\n }\n}\n\nexport class Inverse extends UnaryOp<\n A,\n A,\n \"inverse\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inverse\", outTypeFunc: (aType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.inverse} = inverse(${a});`,\n ];\n }\n}\n\ntype SplitOutTypes = A extends \"vec2\"\n ? { x: \"float\"; y: \"float\"; r: \"float\"; g: \"float\" }\n : A extends \"vec3\"\n ? { x: \"float\"; y: \"float\"; z: \"float\"; r: \"float\"; g: \"float\"; b: \"float\" }\n : A extends \"vec4\"\n ? {\n x: \"float\";\n y: \"float\";\n z: \"float\";\n w: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n a: \"float\";\n }\n : A extends \"ivec2\"\n ? { x: \"int\"; y: \"int\"; r: \"int\"; g: \"int\" }\n : A extends \"ivec3\"\n ? { x: \"int\"; y: \"int\"; z: \"int\"; r: \"int\"; g: \"int\"; b: \"int\" }\n : A extends \"ivec4\"\n ? {\n x: \"int\";\n y: \"int\";\n z: \"int\";\n w: \"int\";\n r: \"int\";\n g: \"int\";\n b: \"int\";\n a: \"int\";\n }\n : A extends \"uvec2\"\n ? { x: \"uint\"; y: \"uint\"; r: \"uint\"; g: \"uint\" }\n : A extends \"uvec3\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n }\n : A extends \"uvec4\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n w: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n a: \"uint\";\n }\n : never;\n\nfunction splitOutTypes(type: A): SplitOutTypes {\n const result = (value: unknown) => value as SplitOutTypes;\n switch (type) {\n case \"vec2\":\n return result({ x: \"float\", y: \"float\", r: \"float\", g: \"float\" });\n case \"vec3\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n });\n case \"vec4\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n w: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n a: \"float\",\n });\n case \"ivec2\":\n return result({ x: \"int\", y: \"int\", r: \"int\", g: \"int\" });\n case \"ivec3\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n });\n case \"ivec4\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n w: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n a: \"int\",\n });\n case \"uvec2\":\n return result({ x: \"uint\", y: \"uint\", r: \"uint\", g: \"uint\" });\n case \"uvec3\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n });\n case \"uvec4\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n w: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n a: \"uint\",\n });\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport class Split extends Dyno<\n { vector: V },\n SplitOutTypes\n> {\n constructor({ vector }: { vector: DynoVal }) {\n const type = valType(vector);\n const inTypes = { vector: type };\n const outTypes = splitOutTypes(inTypes.vector);\n super({ inTypes, outTypes, inputs: { vector } });\n this.statements = ({ inputs, outputs }) => {\n const { x, y, z, w, r, g, b, a } = outputs as unknown as Record<\n string,\n string\n >;\n const { vector } = inputs;\n return [\n x ? `${x} = ${vector}.x;` : null,\n y ? `${y} = ${vector}.y;` : null,\n z ? `${z} = ${vector}.z;` : null,\n w ? `${w} = ${vector}.w;` : null,\n r ? `${r} = ${vector}.r;` : null,\n g ? `${g} = ${vector}.g;` : null,\n b ? `${b} = ${vector}.b;` : null,\n a ? `${a} = ${vector}.a;` : null,\n ].filter(Boolean) as string[];\n };\n }\n}\n\nexport class Combine>\n extends Dyno & { vector: V }, { vector: V }>\n implements HasDynoOut\n{\n constructor({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n }: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n }) {\n if (!vector && !vectorType) {\n throw new Error(\"Either vector or vectorType must be provided\");\n }\n const vType = vectorType ?? valType(vector as DynoVal);\n const elType = vectorElementType(vType);\n const dim = vectorDim(vType);\n\n const inTypes = {\n vector: vType,\n x: elType,\n y: elType,\n r: elType,\n g: elType,\n } as unknown as SplitOutTypes & { vector: V };\n const inputs = { vector, x, y, r, g };\n if (dim >= 3) {\n Object.assign(inTypes, { z: elType, b: elType });\n Object.assign(inputs, { z, b });\n }\n if (dim >= 4) {\n Object.assign(inTypes, { w: elType, a: elType });\n Object.assign(inputs, { w, a });\n }\n // @ts-ignore\n super({ inTypes, outTypes: { vector: vType }, inputs });\n this.statements = ({ inputs, outputs }) => {\n const { vector } = outputs;\n const {\n vector: input,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n } = inputs as Record;\n const statements = [\n `${vector}.x = ${x ?? r ?? (input ? `${input}.x` : literalZero(elType))};`,\n `${vector}.y = ${y ?? g ?? (input ? `${input}.y` : literalZero(elType))};`,\n ];\n if (dim >= 3)\n statements.push(\n `${vector}.z = ${z ?? b ?? (input ? `${input}.z` : literalZero(elType))};`,\n );\n if (dim >= 4)\n statements.push(\n `${vector}.w = ${w ?? a ?? (input ? `${input}.w` : literalZero(elType))};`,\n );\n return statements;\n };\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput & { vector: V }, { vector: V }>(\n this,\n \"vector\",\n );\n }\n}\n\ntype SwizzleOutput<\n A extends VectorTypes,\n Len extends number,\n> = A extends FloatTypes\n ? Len extends 1\n ? \"float\"\n : Len extends 2\n ? \"vec2\"\n : Len extends 3\n ? \"vec3\"\n : Len extends 4\n ? \"vec4\"\n : never\n : A extends IntTypes\n ? Len extends 1\n ? \"int\"\n : Len extends 2\n ? \"ivec2\"\n : Len extends 3\n ? \"ivec3\"\n : Len extends 4\n ? \"ivec4\"\n : never\n : A extends UintTypes\n ? Len extends 1\n ? \"uint\"\n : Len extends 2\n ? \"uvec2\"\n : Len extends 3\n ? \"uvec3\"\n : Len extends 4\n ? \"uvec4\"\n : never\n : never;\n\ntype SwizzleSelectLen = S extends Swizzle1Select\n ? 1\n : S extends Swizzle2Select\n ? 2\n : S extends Swizzle3Select\n ? 3\n : S extends Swizzle4Select\n ? 4\n : never;\n\nfunction swizzleOutputType(\n type: A,\n swizzle: S,\n): SwizzleOutput> {\n let result = null;\n if (isFloatType(type)) {\n result =\n swizzle.length === 1\n ? \"float\"\n : swizzle.length === 2\n ? \"vec2\"\n : swizzle.length === 3\n ? \"vec3\"\n : swizzle.length === 4\n ? \"vec4\"\n : null;\n } else if (isIntType(type)) {\n result =\n swizzle.length === 1\n ? \"int\"\n : swizzle.length === 2\n ? \"ivec2\"\n : swizzle.length === 3\n ? \"ivec3\"\n : swizzle.length === 4\n ? \"ivec4\"\n : null;\n } else if (isUintType(type)) {\n result =\n swizzle.length === 1\n ? \"uint\"\n : swizzle.length === 2\n ? \"uvec2\"\n : swizzle.length === 3\n ? \"uvec3\"\n : swizzle.length === 4\n ? \"uvec4\"\n : null;\n }\n if (result == null) {\n throw new Error(`Invalid swizzle: ${swizzle}`);\n }\n return result as SwizzleOutput>;\n}\n\ntype Swizzle1Select = `${\"x\" | \"y\" | \"z\" | \"w\"}|${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle2Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle3Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle4Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype SwizzleSelect =\n | Swizzle1Select\n | Swizzle2Select\n | Swizzle3Select\n | Swizzle4Select;\n\nexport class Swizzle<\n A extends VectorTypes,\n S extends SwizzleSelect,\n> extends UnaryOp>, \"swizzle\"> {\n constructor({ vector, select }: { vector: DynoVal; select: S }) {\n super({\n a: vector,\n outKey: \"swizzle\",\n outTypeFunc: (aType) => swizzleOutputType(aType, select),\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.swizzle} = ${inputs.a}.${select};`,\n ];\n }\n}\n","import { Dyno, DynoBlock, unindent } from \"./base\";\nimport { float, vec2, vec3, vec4 } from \"./convert\";\nimport { mul } from \"./math\";\nimport { type ValueTypes, isIntType, isUintType, sameSizeUvec } from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n dynoConst,\n valType,\n} from \"./value\";\nimport { combine } from \"./vecmat\";\n\nexport const remapIndex = (\n index: DynoVal<\"int\">,\n from: DynoVal<\"int\">,\n to: DynoVal<\"int\">,\n): DynoVal<\"int\"> => {\n return new DynoRemapIndex({ index, from, to });\n};\nexport const pcgMix = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new PcgMix({ value });\n};\nexport const pcgNext = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgNext({ state });\n};\nexport const pcgHash = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgHash({ state });\n};\nexport const hash = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new Hash({ value });\n};\nexport const hash2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => {\n return new Hash2({ value });\n};\nexport const hash3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => {\n return new Hash3({ value });\n};\nexport const hash4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => {\n return new Hash4({ value });\n};\nexport const hashFloat = (\n value: DynoVal,\n): DynoVal<\"float\"> => {\n return new HashFloat({ value });\n};\nexport const hashVec2 = (\n value: DynoVal,\n): DynoVal<\"vec2\"> => {\n return new HashVec2({ value });\n};\nexport const hashVec3 = (\n value: DynoVal,\n): DynoVal<\"vec3\"> => {\n return new HashVec3({ value });\n};\nexport const hashVec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => {\n return new HashVec4({ value });\n};\nexport const normalizedDepth = (\n z: DynoVal<\"float\">,\n zNear: DynoVal<\"float\">,\n zFar: DynoVal<\"float\">,\n): DynoVal<\"float\"> => {\n return new NormalizedDepth({ z, zNear, zFar }).outputs.depth;\n};\n\nexport const debugColorHue = (index: DynoVal<\"int\">): DynoVal<\"vec3\"> => {\n return new DebugColorHue({ index });\n};\n\nexport class DynoRemapIndex\n extends Dyno<{ from: \"int\"; to: \"int\"; index: \"int\" }, { index: \"int\" }>\n implements HasDynoOut<\"int\">\n{\n constructor({\n from,\n to,\n index,\n }: { from: DynoVal<\"int\">; to: DynoVal<\"int\">; index: DynoVal<\"int\"> }) {\n super({\n inTypes: { from: \"int\", to: \"int\", index: \"int\" },\n outTypes: { index: \"int\" },\n inputs: { from, to, index },\n statements: ({ inputs, outputs }) => {\n return [\n `${outputs.index} = ${inputs.index} - ${inputs.from} + ${inputs.to};`,\n ];\n },\n });\n }\n\n dynoOut(): DynoValue<\"int\"> {\n return new DynoOutput(this, \"index\");\n }\n}\n\nexport class PcgNext\n extends Dyno<{ state: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal }) {\n const type = valType(state);\n super({\n inTypes: { state: type },\n outTypes: { state: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_next(uint state) {\n return state * 747796405u + 2891336453u;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUint =\n type === \"uint\"\n ? `${inputs.state}`\n : type === \"int\"\n ? `uint(${inputs.state})`\n : `floatBitsToUint(${inputs.state})`;\n return [`${outputs.state} = pcg_next(${toUint});`];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class PcgHash\n extends Dyno<{ state: \"uint\" }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal<\"uint\"> }) {\n super({\n inTypes: { state: \"uint\" },\n outTypes: { hash: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_hash(uint state) {\n uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u;\n return (hash >> 22u) ^ hash;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => [\n `${outputs.hash} = pcg_hash(${inputs.state});`,\n ],\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class PcgMix\n extends Dyno<{ value: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n const type = valType(value);\n const tempType = sameSizeUvec(type);\n super({\n inTypes: { value: type },\n outTypes: { state: \"uint\" },\n inputs: { value },\n globals: () => [\n unindent(`\n uint pcg_mix(uint value) {\n return value;\n }\n uint pcg_mix(uvec2 value) {\n return value.x + 0x9e3779b9u * value.y;\n }\n uint pcg_mix(uvec3 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z;\n }\n uint pcg_mix(uvec4 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z + 0xc2b2ae35u * value.w;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUvec = isUintType(type)\n ? `${inputs.value}`\n : isIntType(type)\n ? `${tempType}(${inputs.value})`\n : `floatBitsToUint(${inputs.value})`;\n return [\n `${tempType} bits = ${toUvec};`,\n `${outputs.state} = pcg_mix(bits);`,\n ];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class Hash\n extends DynoBlock<{ value: T }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uint\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n return new PcgHash({ state }).outputs;\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash2\n extends DynoBlock<{ value: T }, { hash: \"uvec2\" }>\n implements HasDynoOut<\"uvec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec2\", x, y }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash3\n extends DynoBlock<{ value: T }, { hash: \"uvec3\" }>\n implements HasDynoOut<\"uvec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec3\", x, y, z }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash4\n extends DynoBlock<{ value: T }, { hash: \"uvec4\" }>\n implements HasDynoOut<\"uvec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const w = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec4\", x, y, z, w }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashFloat\n extends DynoBlock<{ value: T }, { hash: \"float\" }>\n implements HasDynoOut<\"float\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"float\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const word = hash(value);\n return { hash: mul(float(word), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec2\n extends DynoBlock<{ value: T }, { hash: \"vec2\" }>\n implements HasDynoOut<\"vec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash2(value);\n return { hash: mul(vec2(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec3\n extends DynoBlock<{ value: T }, { hash: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash3(value);\n return { hash: mul(vec3(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec4\n extends DynoBlock<{ value: T }, { hash: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash4(value);\n return { hash: mul(vec4(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class NormalizedDepth\n extends Dyno<\n { z: \"float\"; zNear: \"float\"; zFar: \"float\" },\n { depth: \"float\" }\n >\n implements HasDynoOut<\"float\">\n{\n constructor({\n z,\n zNear,\n zFar,\n }: { z: DynoVal<\"float\">; zNear: DynoVal<\"float\">; zFar: DynoVal<\"float\"> }) {\n super({\n inTypes: { z: \"float\", zNear: \"float\", zFar: \"float\" },\n outTypes: { depth: \"float\" },\n inputs: { z, zNear, zFar },\n statements: ({ inputs, outputs }) => [\n `float clamped = clamp(${inputs.z}, ${inputs.zNear}, ${inputs.zFar});`,\n `${outputs.depth} = (log2(clamped + 1.0) - log2(${inputs.zNear} + 1.0)) / (log2(${inputs.zFar} + 1.0) - log2(${inputs.zNear} + 1.0));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"depth\");\n }\n}\n\nexport class DebugColorHue\n extends Dyno<{ index: \"int\" }, { color: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ index }: { index: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { color: \"vec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => [\n `${outputs.color} = debugColorHue(uint(${inputs.index}));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"color\");\n }\n}\n","import { Dyno } from \"./base\";\nimport type { DynoVal } from \"./value\";\n\nexport const transformPos = (\n position: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n translate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformPosition({ position, scale, scales, rotate, translate })\n .outputs.position;\n};\nexport const transformDir = (\n dir: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformDir({ dir, scale, scales, rotate }).outputs.dir;\n};\nexport const transformQuat = (\n quaternion: DynoVal<\"vec4\">,\n { rotate }: { rotate?: DynoVal<\"vec4\"> },\n): DynoVal<\"vec4\"> => {\n return new TransformQuaternion({ quaternion, rotate }).outputs.quaternion;\n};\n\nexport class TransformPosition extends Dyno<\n {\n position: \"vec3\";\n scale: \"float\";\n scales: \"vec3\";\n rotate: \"vec4\";\n translate: \"vec3\";\n },\n { position: \"vec3\" }\n> {\n constructor({\n position,\n scale,\n scales,\n rotate,\n translate,\n }: {\n position?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n }) {\n super({\n inTypes: {\n position: \"vec3\",\n scale: \"float\",\n scales: \"vec3\",\n rotate: \"vec4\",\n translate: \"vec3\",\n },\n outTypes: { position: \"vec3\" },\n inputs: { position, scale, scales, rotate, translate },\n statements: ({ inputs, outputs }) => {\n const { position } = outputs;\n if (!position) {\n return [];\n }\n const { scale, scales, rotate, translate } = inputs;\n return [\n `${position} = ${inputs.position ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${position} *= ${scale};`,\n !scales ? null : `${position} *= ${scales};`,\n !rotate ? null : `${position} = quatVec(${rotate}, ${position});`,\n !translate ? null : `${position} += ${translate};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformDir extends Dyno<\n { dir: \"vec3\"; scale: \"float\"; scales: \"vec3\"; rotate: \"vec4\" },\n { dir: \"vec3\" }\n> {\n constructor({\n dir,\n scale,\n scales,\n rotate,\n }: {\n dir?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { dir: \"vec3\", scale: \"float\", scales: \"vec3\", rotate: \"vec4\" },\n outTypes: { dir: \"vec3\" },\n inputs: { dir, scale, scales, rotate },\n statements: ({ inputs, outputs }) => {\n const { dir } = outputs;\n if (!dir) {\n return [];\n }\n const { scale, scales, rotate } = inputs;\n return [\n `${dir} = ${inputs.dir ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${dir} *= ${scale};`,\n !scales ? null : `${dir} *= ${scales};`,\n !rotate ? null : `${dir} = quatVec(${rotate}, ${dir});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformQuaternion extends Dyno<\n { quaternion: \"vec4\"; rotate: \"vec4\" },\n { quaternion: \"vec4\" }\n> {\n constructor({\n quaternion,\n rotate,\n }: { quaternion?: DynoVal<\"vec4\">; rotate?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { quaternion: \"vec4\", rotate: \"vec4\" },\n outTypes: { quaternion: \"vec4\" },\n inputs: { quaternion, rotate },\n statements: ({ inputs, outputs }) => {\n const { quaternion } = outputs;\n if (!quaternion) {\n return [];\n }\n return [\n `${quaternion} = ${inputs.quaternion ?? \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rotate\n ? null\n : `${quaternion} = quatQuat(${inputs.rotate}, ${quaternion});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n","// TODO:\n// if, switch, for, comment,\n// arrayIndex, arrayLength,\n\nexport const dynoIf = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoSwitch = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoFor = () => {\n throw new Error(\"Not implemented\");\n};\nexport const comment = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayIndex = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayLength = () => {\n throw new Error(\"Not implemented\");\n};\n","import { Dyno } from \"./base\";\nimport type {\n AllSamplerTypes,\n IsamplerTypes,\n NormalSamplerTypes,\n Sampler2DArrayTypes,\n Sampler2DTypes,\n Sampler3DTypes,\n SamplerCubeTypes,\n SamplerShadowTypes,\n SamplerTypes,\n UsamplerTypes,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nexport const textureSize = (\n texture: DynoVal,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TextureSize({ texture, lod });\nexport const texture = (\n texture: DynoVal,\n coord: DynoVal>,\n bias?: DynoVal<\"float\">,\n): DynoVal> => new Texture({ texture, coord, bias });\nexport const texelFetch = (\n texture: DynoVal,\n coord: DynoVal>,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TexelFetch({ texture, coord, lod });\n\nexport class TextureSize\n extends Dyno<{ texture: T; lod: \"int\" }, { size: TextureSizeType }>\n implements HasDynoOut>\n{\n constructor({ texture, lod }: { texture: DynoVal; lod?: DynoVal<\"int\"> }) {\n const textureType = valType(texture);\n super({\n inTypes: { texture: textureType, lod: \"int\" },\n outTypes: { size: textureSizeType(textureType) },\n inputs: { texture, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.size} = textureSize(${inputs.texture}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"size\");\n }\n}\n\nexport class Texture\n extends Dyno<\n { texture: T; coord: TextureCoordType; bias: \"float\" },\n { sample: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n bias,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n bias?: DynoVal<\"float\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureCoordType(textureType),\n bias: \"float\",\n },\n outTypes: { sample: textureReturnType(textureType) },\n inputs: { texture, coord, bias },\n statements: ({ inputs, outputs }) => [\n `${outputs.sample} = texture(${inputs.texture}, ${inputs.coord}${inputs.bias ? `, ${inputs.bias}` : \"\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"sample\");\n }\n}\n\nexport class TexelFetch\n extends Dyno<\n { texture: T; coord: TextureSizeType; lod: \"int\" },\n { texel: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n lod,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n lod?: DynoVal<\"int\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureSizeType(textureType),\n lod: \"int\",\n },\n outTypes: { texel: textureReturnType(textureType) },\n inputs: { texture, coord, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.texel} = texelFetch(${inputs.texture}, ${inputs.coord}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"texel\");\n }\n}\n\ntype TextureSizeType = T extends\n | Sampler2DTypes\n | SamplerCubeTypes\n ? \"ivec2\"\n : T extends Sampler3DTypes | Sampler2DArrayTypes\n ? \"ivec3\"\n : never;\n\nfunction textureSizeType(\n textureType: T,\n): TextureSizeType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DShadow\":\n case \"samplerCubeShadow\":\n return \"ivec2\" as TextureSizeType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DArrayShadow\":\n return \"ivec3\" as TextureSizeType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureCoordType = T extends Sampler2DTypes\n ? \"vec2\"\n : T extends\n | Sampler3DTypes\n | Sampler2DArrayTypes\n | SamplerCubeTypes\n | Sampler2DArrayTypes\n ? \"vec3\"\n : T extends \"samperCubeShadow\" | \"sampler2DArrayShadow\"\n ? \"vec4\"\n : never;\n\nfunction textureCoordType(\n textureType: T,\n): TextureCoordType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n return \"vec2\" as TextureCoordType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DShadow\":\n return \"vec3\" as TextureCoordType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"vec4\" as TextureCoordType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureReturnType = T extends SamplerTypes\n ? \"vec4\"\n : T extends UsamplerTypes\n ? \"uvec4\"\n : T extends IsamplerTypes\n ? \"ivec4\"\n : T extends SamplerShadowTypes\n ? \"float\"\n : never;\n\nfunction textureReturnType(\n textureType: T,\n): TextureReturnType {\n switch (textureType) {\n case \"sampler2D\":\n case \"sampler2DArray\":\n case \"sampler3D\":\n case \"samplerCube\":\n case \"sampler2DShadow\":\n return \"vec4\" as TextureReturnType;\n case \"usampler2D\":\n case \"usampler2DArray\":\n case \"usampler3D\":\n case \"usamplerCube\":\n return \"uvec4\" as TextureReturnType;\n case \"isampler2D\":\n case \"isampler2DArray\":\n case \"isampler3D\":\n case \"isamplerCube\":\n return \"ivec4\" as TextureReturnType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"float\" as TextureReturnType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n","import { BinaryOp, UnaryOp } from \"./base\";\nimport type { FloatTypes } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const radians = (\n degrees: DynoVal,\n): DynoVal => new Radians({ degrees });\nexport const degrees = (\n radians: DynoVal,\n): DynoVal => new Degrees({ radians });\n\nexport const sin = (radians: DynoVal): DynoVal =>\n new Sin({ radians });\nexport const cos = (radians: DynoVal): DynoVal =>\n new Cos({ radians });\nexport const tan = (radians: DynoVal): DynoVal =>\n new Tan({ radians });\n\nexport const asin = (sin: DynoVal): DynoVal =>\n new Asin({ sin });\nexport const acos = (cos: DynoVal): DynoVal =>\n new Acos({ cos });\nexport const atan = (tan: DynoVal): DynoVal =>\n new Atan({ tan });\nexport const atan2 = (\n y: DynoVal,\n x: DynoVal,\n): DynoVal => new Atan2({ y, x });\n\nexport const sinh = (x: DynoVal): DynoVal =>\n new Sinh({ x });\nexport const cosh = (x: DynoVal): DynoVal =>\n new Cosh({ x });\nexport const tanh = (x: DynoVal): DynoVal =>\n new Tanh({ x });\n\nexport const asinh = (x: DynoVal): DynoVal =>\n new Asinh({ x });\nexport const acosh = (x: DynoVal): DynoVal =>\n new Acosh({ x });\nexport const atanh = (x: DynoVal): DynoVal =>\n new Atanh({ x });\n\nexport class Radians extends UnaryOp {\n constructor({ degrees }: { degrees: DynoVal }) {\n super({ a: degrees, outTypeFunc: (aType) => aType, outKey: \"radians\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.radians} = radians(${inputs.a});`,\n ];\n }\n}\n\nexport class Degrees extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"degrees\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.degrees} = degrees(${inputs.a});`,\n ];\n }\n}\n\nexport class Sin extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"sin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sin} = sin(${inputs.a});`,\n ];\n }\n}\n\nexport class Cos extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"cos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cos} = cos(${inputs.a});`,\n ];\n }\n}\n\nexport class Tan extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"tan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tan} = tan(${inputs.a});`,\n ];\n }\n}\n\nexport class Asin extends UnaryOp {\n constructor({ sin }: { sin: DynoVal }) {\n super({ a: sin, outTypeFunc: (aType) => aType, outKey: \"asin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asin} = asin(${inputs.a});`,\n ];\n }\n}\n\nexport class Acos extends UnaryOp {\n constructor({ cos }: { cos: DynoVal }) {\n super({ a: cos, outTypeFunc: (aType) => aType, outKey: \"acos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acos} = acos(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan extends UnaryOp {\n constructor({ tan }: { tan: DynoVal }) {\n super({ a: tan, outTypeFunc: (aType) => aType, outKey: \"atan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan} = atan(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan2 extends BinaryOp {\n constructor({ y, x }: { y: DynoVal; x: DynoVal }) {\n super({\n a: y,\n b: x,\n outTypeFunc: (aType, bType) => aType,\n outKey: \"atan2\",\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan2} = atan2(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Sinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"sinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sinh} = sinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Cosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"cosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cosh} = cosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Tanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"tanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tanh} = tanh(${inputs.a});`,\n ];\n }\n}\n\nexport class Asinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"asinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asinh} = asinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Acosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"acosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acosh} = acosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Atanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"atanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atanh} = atanh(${inputs.a});`,\n ];\n }\n}\n","import * as THREE from \"three\";\nimport type { RgbaArray } from \"./RgbaArray\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { SPLAT_TEX_WIDTH, type SplatFileType } from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n type Gsplat,\n TExtSplats,\n add,\n combineGsplat,\n defineExtSplats,\n normalize,\n readExtSplat,\n splatTexCoord,\n splitGsplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { decodeExtSplat, encodeExtSplat, getTextureSize } from \"./utils\";\n\nexport type ExtSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided pair of uint32 arrays, where blocks of 4 uint32s in each,\n // encode an \"extended packed\" Gsplat. (default: undefined)\n extArrays?: [Uint32Array, Uint32Array];\n // Override number of splats in packed arrays to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: ExtSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the ExtSplats\n lodSplats?: ExtSplats;\n};\n\nexport class ExtSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record = {};\n maxSh = 3;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: ExtSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n textures: [THREE.DataArrayTexture, THREE.DataArrayTexture];\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoNumSh: DynoInt<\"numSh\">;\n\n constructor(options: ExtSplatsOptions = {}) {\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n this.textures = [ExtSplats.emptyTexture, ExtSplats.emptyTexture];\n\n this.extra = {};\n this.dyno = new DynoExtSplats({ extSplats: this });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: ExtSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: ExtSplatsOptions) {\n this.extra = options.extra ?? {};\n this.lodSplats = options.lodSplats;\n\n if (options.extArrays) {\n this.extArrays = options.extArrays;\n this.maxSplats = Math.floor(\n Math.min(this.extArrays[0].length / 4, this.extArrays[1].length / 4),\n );\n this.numSplats = options.numSplats ?? this.maxSplats;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n this.updateTextures();\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n }\n }\n\n async asyncInitialize(options: ExtSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n extSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n this.textures[0].dispose();\n this.textures[0].source.data = null;\n this.textures[0] = ExtSplats.emptyTexture;\n }\n if (this.textures[1] !== ExtSplats.emptyTexture) {\n this.textures[1].dispose();\n this.textures[1].source.data = null;\n this.textures[1] = ExtSplats.emptyTexture;\n }\n\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"ExtSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1\n ? 0\n : !this.extra.sh2\n ? 1\n : !this.extra.sh3a || !this.extra.sh3b\n ? 2\n : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readExtSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB } =\n this.ensureShTextures();\n let { rgb } = evaluateExtSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 4,\n );\n if (sh1.length < maxSplats * 4) {\n const newSh1 = new Uint32Array(maxSplats * 4);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n const texture = newUint32ArrayTexture(\n sh1,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = newUint32ArrayTexture(\n sh2,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3a || !this.extra.sh3b) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3TextureA = this.extra.sh3TextureA as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureA) {\n let sh3a = this.extra.sh3a as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3a.length / 4,\n );\n if (sh3a.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3a);\n this.extra.sh3a = newSh3;\n sh3a = newSh3;\n }\n\n const texture = newUint32ArrayTexture(\n sh3a,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureA = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3TextureA = sh3TextureA;\n }\n\n let sh3TextureB = this.extra.sh3TextureB as\n | DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureB) {\n let sh3b = this.extra.sh3b as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3b.length / 4,\n );\n if (sh3b.length < maxSplats * 4) {\n const newSh3b = new Uint32Array(maxSplats * 4);\n newSh3b.set(sh3b);\n this.extra.sh3b = newSh3b;\n sh3b = newSh3b;\n }\n\n const texture = newUint32ArrayTexture(\n sh3b,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureB = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3b\",\n });\n this.extra.sh3TextureB = sh3TextureB;\n }\n\n return { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB };\n }\n\n // Ensures that this.extArrays can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): [Uint32Array, Uint32Array] {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.extArrays[0] ? 0 : this.extArrays[0].length / 4;\n\n if (!this.extArrays[0] || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray0 = new Uint32Array(this.maxSplats * 4);\n const newArray1 = new Uint32Array(this.maxSplats * 4);\n if (this.extArrays[0]) {\n // Copy over existing data\n newArray0.set(this.extArrays[0]);\n newArray1.set(this.extArrays[1]);\n }\n this.extArrays[0] = newArray0;\n this.extArrays[1] = newArray1;\n }\n return this.extArrays;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return decodeExtSplat(this.extArrays, index);\n }\n\n // Set all ExtSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(index + 1);\n encodeExtSplat(\n extArrays,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(this.numSplats + 1);\n encodeExtSplat(\n extArrays,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = decodeExtSplat(this.extArrays, i);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Check if source texture needs to be created/updated\n private updateTextures() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n const { width, height, depth } = this.textures[0].image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.textures[0].dispose();\n this.textures[0] = ExtSplats.emptyTexture;\n this.textures[1].dispose();\n this.textures[1] = ExtSplats.emptyTexture;\n }\n }\n if (this.textures[0] === ExtSplats.emptyTexture) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.textures[0] = newUint32ArrayTexture(\n this.extArrays[0],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n this.textures[1] = newUint32ArrayTexture(\n this.extArrays[1],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n } else if (\n this.extArrays[0].buffer !== this.textures[0].image.data.buffer\n ) {\n this.textures[0].image.data = new Uint8Array(this.extArrays[0].buffer);\n this.textures[1].image.data = new Uint8Array(this.extArrays[1].buffer);\n // Indicate to Three.js that the source textures needs to be uploaded to the GPU\n this.textures[0].needsUpdate = true;\n this.textures[1].needsUpdate = true;\n }\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new ExtSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static emptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTexture = newUint32ArrayTexture(\n null,\n 1,\n 1,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const extArrays = [this.extArrays[0].slice(), this.extArrays[1].slice()];\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodExtSplats\" : \"tinyLodExtSplats\",\n {\n numSplats: this.numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n },\n )) as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n };\n });\n\n const lodSplats = new ExtSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\nexport const dynoExtSplats = (extSplats?: ExtSplats) =>\n new DynoExtSplats({ extSplats });\n\nexport class DynoExtSplats extends DynoUniform<\n typeof TExtSplats,\n \"extSplats\",\n {\n textureArray1: THREE.DataArrayTexture;\n textureArray2: THREE.DataArrayTexture;\n numSplats: number;\n }\n> {\n extSplats?: ExtSplats;\n\n constructor({ extSplats }: { extSplats?: ExtSplats } = {}) {\n super({\n key: \"extSplats\",\n type: TExtSplats,\n globals: () => [defineExtSplats],\n value: {\n textureArray1: ExtSplats.emptyTexture,\n textureArray2: ExtSplats.emptyTexture,\n numSplats: 0,\n },\n update: (value) => {\n value.textureArray1 =\n this.extSplats?.textures[0] ?? ExtSplats.emptyTexture;\n value.textureArray2 =\n this.extSplats?.textures[1] ?? ExtSplats.emptyTexture;\n value.numSplats = this.extSplats?.numSplats ?? 0;\n return value;\n },\n });\n this.extSplats = extSplats;\n }\n}\n\nexport const defineEvaluateExtSH1 = unindent(`\n vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packedData.x);\n vec3 sh1_1 = decodeExtRgb(packedData.y);\n vec3 sh1_2 = decodeExtRgb(packedData.z);\n\n return sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n }\n`);\n\nexport const defineEvaluateExtSH12 = unindent(`\n vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packed1.x);\n vec3 sh1_1 = decodeExtRgb(packed1.y);\n vec3 sh1_2 = decodeExtRgb(packed1.z);\n\n vec3 sh2_0 = decodeExtRgb(packed1.w);\n vec3 sh2_1 = decodeExtRgb(packed2.x);\n vec3 sh2_2 = decodeExtRgb(packed2.y);\n vec3 sh2_3 = decodeExtRgb(packed2.z);\n vec3 sh2_4 = decodeExtRgb(packed2.w);\n\n vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n\n vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n\n return sh1Rgb + sh2Rgb;\n }\n`);\n\nexport const defineEvaluateExtSH3 = unindent(`\n vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) {\n vec3 sh3_0 = decodeExtRgb(packedA.x);\n vec3 sh3_1 = decodeExtRgb(packedA.y);\n vec3 sh3_2 = decodeExtRgb(packedA.z);\n vec3 sh3_3 = decodeExtRgb(packedA.w);\n vec3 sh3_4 = decodeExtRgb(packedB.x);\n vec3 sh3_5 = decodeExtRgb(packedB.y);\n vec3 sh3_6 = decodeExtRgb(packedB.z);\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n }\n`);\n\nexport function evaluateExtSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3TextureA: \"usampler2DArray\",\n sh3TextureB: \"usampler2DArray\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n },\n globals: () => [\n defineEvaluateExtSH1,\n defineEvaluateExtSH12,\n defineEvaluateExtSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n if (!inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n } else {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} == 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n } else if (${inputs.numSh} >= 2) {\n rgb = evaluateExtSH12(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n `),\n );\n\n if (inputs.sh3TextureA && inputs.sh3TextureB) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n rgb += evaluateExtSH3(texelFetch(${inputs.sh3TextureA}, ${inputs.coord}, 0), texelFetch(${inputs.sh3TextureB}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n }\n\n lines.push(\"}\");\n }\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n\nfunction newUint32ArrayTexture(\n data: Uint32Array | null,\n width: number,\n height: number,\n depth: number,\n format: THREE.AnyPixelFormat,\n type: THREE.TextureDataType,\n internalFormat: THREE.PixelFormatGPU,\n): THREE.DataArrayTexture {\n const texture = new THREE.DataArrayTexture(\n data as Uint32Array,\n width,\n height,\n depth,\n );\n texture.format = format;\n texture.type = type;\n texture.internalFormat = internalFormat;\n texture.needsUpdate = true;\n return texture;\n}\n","/* @ts-self-types=\"./spark_rs.d.ts\" */\n\n/**\n * @param {Uint8Array} bytes\n * @returns {any}\n */\nexport function decode_rad_header(bytes) {\n const ret = wasm.decode_rad_header(bytes);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer() {\n const ret = wasm.get_raycast_buffer();\n return ret;\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer2() {\n const ret = wasm.get_raycast_buffer2();\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @returns {Float32Array}\n */\nexport function raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count) {\n const ret = wasm.raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} num_splats\n * @param {Uint32Array} packed_splats\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @returns {boolean}\n */\nexport function simd_enabled() {\n const ret = wasm.simd_enabled();\n return ret !== 0;\n}\n\nexport function wasm_start() {\n wasm.wasm_start();\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_fd4646b401926788: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_26bffbe236bf73f9: function(arg0) {\n const ret = new Float32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n },\n __wbg_set_8ee2d34facb8466e: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) {\n arg0.set(getArrayF32FromWasm0(arg1, arg2));\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(F32)) -> NamedExternref(\"Float32Array\")`.\n const ret = getArrayF32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000003: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U32)) -> NamedExternref(\"Uint32Array\")`.\n const ret = getArrayU32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000004: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000005: function(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./spark_rs_bg.js\": import0,\n };\n}\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction getArrayF32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\nfunction getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (module_or_path === undefined) {\n module_or_path = new URL('spark_rs_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout uvec4 target;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n target = uvec4(0u, 0u, 0u, 0u);\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out vec4 target3;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial target to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize depthTarget to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out uvec4 target2;\nlayout(location = 2) out vec4 target3;\n// layout(location = 0) out vec4 target3;\n// layout(location = 1) out uvec4 target;\n// layout(location = 2) out uvec4 target2;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial targets to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n target2 = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize target3 to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout vec4 target;\n\n{{ GLOBALS }}\n\nvoid computeReadback(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n if ((index >= 0) && (index < targetCount)) {\n computeReadback(index);\n } else {\n target = vec4(0.0, 0.0, 0.0, 0.0);\n }\n}\n","\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool stochastic;\nuniform bool disableFalloff;\nuniform float falloff;\n\nuniform bool splatTexEnable;\nuniform sampler3D splatTexture;\nuniform mat2 splatTexMul;\nuniform vec2 splatTexAdd;\nuniform float splatTexNear;\nuniform float splatTexFar;\nuniform float splatTexMid;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z = dot(vSplatUv, vSplatUv);\n if (!splatTexEnable) {\n if (z > (maxStdDev * maxStdDev)) {\n discard;\n }\n } else {\n vec2 uv = splatTexMul * vSplatUv + splatTexAdd;\n float ndcZ = vNdc.z;\n float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near));\n float clampedFar = max(splatTexFar, splatTexNear);\n float clampedDepth = clamp(depth, splatTexNear, clampedFar);\n float logDepth = log2(clampedDepth + 1.0);\n float logNear = log2(splatTexNear + 1.0);\n float logFar = log2(clampedFar + 1.0);\n\n float texZ;\n if (splatTexMid > 0.0) {\n float clampedMid = clamp(splatTexMid, splatTexNear, clampedFar);\n float logMid = log2(clampedMid + 1.0);\n texZ = (clampedDepth <= clampedMid) ?\n (0.5 * ((logDepth - logNear) / (logMid - logNear))) :\n (0.5 * ((logDepth - logMid) / (logFar - logMid)) + 0.5);\n } else {\n texZ = (logDepth - logNear) / (logFar - logNear);\n }\n\n vec4 modulate = texture(splatTexture, vec3(uv, 1.0 - texZ));\n rgba *= modulate;\n }\n\n rgba.a *= mix(1.0, exp(-0.5 * z), falloff);\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n if (stochastic) {\n const bool STEADY = false;\n uint uTime = STEADY ? 0u : floatBitsToUint(time);\n uvec2 coord = uvec2(gl_FragCoord.xy);\n uint state = uTime + 0x9e3779b9u * coord.x + 0x85ebca6bu * coord.y + 0xc2b2ae35u * uint(vSplatIndex);\n state = state * 747796405u + 2891336453u;\n uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u;\n hash = (hash >> 22u) ^ hash;\n float rand = float(hash) / 4294967296.0;\n if (rand < rgba.a) {\n fragColor = vec4(rgba.rgb, 1.0);\n } else {\n discard;\n }\n } else {\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n }\n}\n","\nprecision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nattribute uint splatIndex;\n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\n\nuniform vec2 renderSize;\nuniform uint numSplats;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool stochastic;\nuniform bool enable2DGS;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2DArray packedSplats;\nuniform vec4 rgbMinMaxLnScaleMinMax;\n\nvoid main() {\n // Default to outside the frustum so it's discarded if we return early\n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n if (uint(gl_InstanceID) >= numSplats) {\n return;\n }\n\n ivec3 texCoord;\n if (stochastic) {\n texCoord = ivec3(\n uint(gl_InstanceID) & SPLAT_TEX_WIDTH_MASK,\n (uint(gl_InstanceID) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK,\n (uint(gl_InstanceID) >> SPLAT_TEX_LAYER_BITS)\n );\n } else {\n if (splatIndex == 0xffffffffu) {\n // Special value reserved for \"no splat\"\n return;\n }\n texCoord = ivec3(\n splatIndex & SPLAT_TEX_WIDTH_MASK,\n (splatIndex >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK,\n splatIndex >> SPLAT_TEX_LAYER_BITS\n );\n }\n uvec4 packedData = texelFetch(packedSplats, texCoord, 0);\n\n vec3 center, scales;\n vec4 quaternion, rgba;\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, rgbMinMaxLnScaleMinMax);\n\n if (rgba.a < minAlpha) {\n return;\n }\n bvec3 zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n\n // Compute the view space center of the splat\n vec3 viewCenter = quatVec(renderToViewQuat, center) + renderToViewPos;\n\n // Discard splats behind the camera\n if (viewCenter.z >= 0.0) {\n return;\n }\n\n // Compute the clip space center of the splat\n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n // Discard splats outside near/far planes\n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n // Discard splats more than clipXY times outside the XY frustum\n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n // Record the splat index for entropy\n vSplatIndex = splatIndex;\n\n // Compute view space quaternion of splat\n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vRgba = rgba;\n vSplatUv = position.xy * maxStdDev;\n\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n return;\n }\n\n // Compute NDC center of the splat\n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n\n // Compute the 3D covariance matrix of the splat\n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n mat3 cov3D = RS * transpose(RS);\n\n // Compute the Jacobian of the splat's projection at its center\n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if(isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n // Compute the 2D covariance by projecting the 3D covariance\n // and picking out the XY plane components.\n // Keeping below because we may need it in the future\n // for skinning deformations.\n // mat3 W = transpose(mat3(viewMatrix));\n // mat3 T = W * J;\n // mat3 cov2D = transpose(T) * cov3D * T;\n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n // Optionally pre-blur the splat to match non-antialias optimized splats\n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n // Do convolution with a 0.5-pixel Gaussian for anti-aliasing: sqrt(0.3) ~= 0.5\n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n // Compute anti-aliasing intensity scaling factor\n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n\n // Compute the eigenvalue and eigenvectors of the 2D covariance matrix\n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = normalize(vec2((abs(b) < 0.001) ? 1.0 : b, eigen1 - a));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, maxStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, maxStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n // Compute the NDC coordinates for the ellipsoid's diagonal axes.\n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vRgba = rgba;\n vSplatUv = position.xy * maxStdDev;\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n}\n","const float LN_SCALE_MIN = -12.0;\nconst float LN_SCALE_MAX = 9.0;\n\nconst uint SPLAT_TEX_WIDTH_BITS = 11u;\nconst uint SPLAT_TEX_HEIGHT_BITS = 11u;\nconst uint SPLAT_TEX_DEPTH_BITS = 11u;\nconst uint SPLAT_TEX_LAYER_BITS = SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nconst uint SPLAT_TEX_WIDTH = 1u << SPLAT_TEX_WIDTH_BITS;\nconst uint SPLAT_TEX_HEIGHT = 1u << SPLAT_TEX_HEIGHT_BITS;\nconst uint SPLAT_TEX_DEPTH = 1u << SPLAT_TEX_DEPTH_BITS;\n\nconst uint SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1u;\nconst uint SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1u;\nconst uint SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1u;\n\nconst uint F16_INF = 0x7c00u;\nconst float PI = 3.1415926535897932384626433832795;\n\nconst float INFINITY = 1.0 / 0.0;\nconst float NEG_INFINITY = -INFINITY;\n\nfloat sqr(float x) {\n return x * x;\n}\n\nfloat pow4(float x) {\n float x2 = x * x;\n return x2 * x2;\n}\n\nfloat pow8(float x) {\n float x4 = pow4(x);\n return x4 * x4;\n}\n\nvec3 srgbToLinear(vec3 rgb) {\n return pow(rgb, vec3(2.2));\n}\n\nvec3 linearToSrgb(vec3 rgb) {\n return pow(rgb, vec3(1.0 / 2.2));\n}\n\n// Encode a quaternion (vec4) into a 24‐bit uint with folded octahedral mapping.\nuint encodeQuatOctXy88R8(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float theta = 2.0 * acos(q.w);\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 8 bits (0 to 255)\n uint quantU = uint(clamp(round(u_f * 255.0), 0.0, 255.0));\n uint quantV = uint(clamp(round(v_f * 255.0), 0.0, 255.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 8 bits (0 to 255)\n uint angleInt = uint(clamp(round((theta / 3.14159265359) * 255.0), 0.0, 255.0));\n \n // Pack bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16u) | (quantV << 8u) | quantU;\n}\n\n// Decode a 24‐bit encoded uint into a quaternion (vec4) using the folded octahedral inverse.\nvec4 decodeQuatOctXy88R8(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0xFFu); // bits 0–7\n uint quantV = (encoded >> 8u) & uint(0xFFu); // bits 8–15\n uint angleInt = encoded >> 16u; // bits 16–23\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 255.0;\n float v_f = float(quantV) / 255.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 255.0) * 3.14159265359;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\nuint encodeQuatOctXy1010R12(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float halfTheta = acos(q.w);\n float theta = 2.0 * halfTheta;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 10 bits (0 to 1023)\n uint quantU = uint(clamp(round(u_f * 1023.0), 0.0, 1023.0));\n uint quantV = uint(clamp(round(v_f * 1023.0), 0.0, 1023.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 12 bits (0 to 4095)\n uint angleInt = uint(clamp(round((theta / PI) * 4095.0), 0.0, 4095.0));\n \n // Pack bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20u) | (quantV << 10u) | quantU;\n}\n\nvec4 decodeQuatOctXy1010R12(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0x3FFu); // bits 0–9\n uint quantV = (encoded >> 10u) & uint(0x3FFu); // bits 10–19\n uint angleInt = encoded >> 20u; // bits 20–31\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 1023.0;\n float v_f = float(quantV) / 1023.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 4095.0) * PI;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplatEncoding(\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n uint uQuat = encodeQuatOctXy88R8(quaternion);\n // uint uQuat = encodeQuatXyz888(quaternion);\n // uint uQuat = encodeQuatEulerXyz888(quaternion);\n uvec3 uQuat3 = uvec3(uQuat & 0xffu, (uQuat >> 8u) & 0xffu, (uQuat >> 16u) & 0xffu);\n\n // Encode scales in three uint8s, where 0=>0.0 and 1..=255 stores log scale\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n uvec3 uScales = uvec3(\n (scales.x == 0.0) ? 0u : uint(round(clamp((log(scales.x) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.y == 0.0) ? 0u : uint(round(clamp((log(scales.y) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.z == 0.0) ? 0u : uint(round(clamp((log(scales.z) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u\n );\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) | (uQuat3.x << 16u) | (uQuat3.y << 24u);\n uint word3 = uScales.x | (uScales.y << 8u) | (uScales.z << 16u) | (uQuat3.z << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplat(vec3 center, vec3 scales, vec4 quaternion, vec4 rgba) {\n return packSplatEncoding(center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nvoid unpackSplatEncoding(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec4(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu)\n ).xyz;\n\n uvec3 uScales = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n scales = vec3(\n (uScales.x == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.x - 1u) * lnScaleScale),\n (uScales.y == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.y - 1u) * lnScaleScale),\n (uScales.z == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.z - 1u) * lnScaleScale)\n );\n\n\n uint uQuat = ((word2 >> 16u) & 0xFFFFu) | ((word3 >> 8u) & 0xFF0000u);\n quaternion = decodeQuatOctXy88R8(uQuat);\n // quaternion = decodeQuatXyz888(uQuat);\n // quaternion = decodeQuatEulerXyz888(uQuat);\n}\n\n// Unpack a Gsplat from a uvec4\nvoid unpackSplat(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nuvec4 packSplatCovEncoding(\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 255.0 / (2.0 * (lnScaleMax - lnScaleMin));\n uvec3 uXxyyzz = uvec3(round(clamp((log(xxyyzz) - 2.0 * lnScaleMin) * diagScale, 0.0, 255.0)));\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n ivec3 iXyxzyzCor = ivec3(round(xyxzyzCor * 127.0));\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) |\n ((uint(iXyxzyzCor.y) & 0xffu) << 16u) |\n ((uint(iXyxzyzCor.z) & 0xffu) << 24u);\n uint word3 =\n uXxyyzz.x | (uXxyyzz.y << 8u) | (uXxyyzz.z << 16u) |\n ((uint(iXyxzyzCor.x) & 0xffu) << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\nvoid unpackSplatCovEncoding(uvec4 packedData, out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec3(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu).x\n );\n\n uvec3 uXxyyzz = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n ivec3 iXyxzyzCor = ivec3(int(word3) >> 24, int(word2 << 8u) >> 24, int(word2) >> 24);\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 2.0 * (lnScaleMax - lnScaleMin) / 255.0;\n xxyyzz = exp(2.0 * lnScaleMin + vec3(uXxyyzz) * diagScale);\n\n vec3 xyxzyzCor = vec3(iXyxzyzCor) / 127.0;\n xyxzyz = xyxzyzCor * vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExtCov(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, rgba.b));\n packedData2.x = packHalf2x16(rgba.rg);\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n xyxzyzCor = sign(xyxzyzCor) * clamp(log(abs(xyxzyzCor)), -100.0, -0.0000001);\n xxyyzz = log(xxyyzz);\n\n packedData2.y = packHalf2x16(vec2(xxyyzz.x, xxyyzz.y));\n packedData2.z = packHalf2x16(vec2(xxyyzz.z, xyxzyzCor.x));\n packedData2.w = packHalf2x16(vec2(xyxzyzCor.y, xyxzyzCor.z));\n}\n\nvoid unpackSplatExtCov(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n\n vec2 ab = unpackHalf2x16(packedData.w);\n vec2 rg = unpackHalf2x16(packedData2.x);\n rgba = vec4(rg, ab.y, ab.x);\n\n vec2 xxyy = unpackHalf2x16(packedData2.y);\n vec2 zzxy = unpackHalf2x16(packedData2.z);\n vec2 xzyz = unpackHalf2x16(packedData2.w);\n xxyyzz = exp(vec3(xxyy.x, xxyy.y, zzxy.x));\n xyxzyz = vec3(zzxy.y, xzyz.x, xzyz.y);\n xyxzyz = -sign(xyxzyz) * exp(-abs(xyxzyz));\n xyxzyz *= vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExt(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, 0.0));\n\n packedData2.x = packHalf2x16(rgba.rg);\n packedData2.y = packHalf2x16(vec2(rgba.b, log(scales.x)));\n packedData2.z = packHalf2x16(log(scales.yz));\n packedData2.w = encodeQuatOctXy1010R12(quaternion);\n}\n\nvec4 unpackSplatExtCenterAlpha(uvec4 packedData) {\n return vec4(\n uintBitsToFloat(packedData.x),\n uintBitsToFloat(packedData.y),\n uintBitsToFloat(packedData.z),\n unpackHalf2x16(packedData.w).x\n );\n}\n\nfloat unpackSplatExtAlpha(uvec4 packedData) {\n return unpackHalf2x16(packedData.w).x;\n}\n\nvoid unpackSplatExt(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n rgba.a = unpackHalf2x16(packedData.w).x;\n\n rgba.rg = unpackHalf2x16(packedData2.x);\n vec2 split = unpackHalf2x16(packedData2.y);\n rgba.b = split.x;\n scales.x = exp(split.y);\n scales.yz = exp(unpackHalf2x16(packedData2.z));\n quaternion = decodeQuatOctXy1010R12(packedData2.w);\n}\n\nuint encodeExtRgb(vec3 rgb) {\n vec3 absRgb = abs(rgb);\n float maxAbs = max(absRgb.r, max(absRgb.g, absRgb.b));\n\n int base = clamp(int(floor(log2(maxAbs))) + 15, 0, 31);\n float divisor = exp2(float(base - 15)) / 255.0;\n\n uvec3 uRgb = uvec3(round(clamp(absRgb / divisor, 0.0, 255.0)));\n uint expSigns = (uint(base) << 3u) | ((rgb.r < 0.0 ? 0x1u : 0u) | (rgb.g < 0.0 ? 0x2u : 0u) | (rgb.b < 0.0 ? 0x4u : 0u));\n return uRgb.r | (uRgb.g << 8u) | (uRgb.b << 16u) | (expSigns << 24u);\n}\n\nvec3 decodeExtRgb(uint encoded) {\n uint biasedBase = (encoded >> 27u) & 0x1fu;\n float divisor = exp2(float(int(biasedBase) - 15)) / 255.0;\n\n vec3 rgb = vec3(uvec3(encoded & 0xffu, (encoded >> 8u) & 0xffu, (encoded >> 16u) & 0xffu));\n rgb *= divisor;\n\n return vec3(\n ((encoded & 0x1000000u) != 0u) ? -rgb.r : rgb.r,\n ((encoded & 0x2000000u) != 0u) ? -rgb.g : rgb.g,\n ((encoded & 0x4000000u) != 0u) ? -rgb.b : rgb.b\n );\n}\n\n// Rotate vector v by quaternion q\nvec3 quatVec(vec4 q, vec3 v) {\n // Rotate vector v by quaternion q\n vec3 t = 2.0 * cross(q.xyz, v);\n return v + q.w * t + cross(q.xyz, t);\n}\n\n// Apply quaternion q1 after quaternion q2\nvec4 quatQuat(vec4 q1, vec4 q2) {\n return vec4(\n q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,\n q1.w * q2.y - q1.x * q2.z + q1.y * q2.w + q1.z * q2.x,\n q1.w * q2.z + q1.x * q2.y - q1.y * q2.x + q1.z * q2.w,\n q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z\n );\n}\n\nmat3 quaternionToMatrix(vec4 q) {\n return mat3(\n (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n (2.0 * (q.x * q.y + q.w * q.z)),\n (2.0 * (q.x * q.z - q.w * q.y)),\n (2.0 * (q.x * q.y - q.w * q.z)),\n (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n (2.0 * (q.y * q.z + q.w * q.x)),\n (2.0 * (q.x * q.z + q.w * q.y)),\n (2.0 * (q.y * q.z - q.w * q.x)),\n (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\nmat3 scaleQuaternionToMatrix(vec3 s, vec4 q) {\n // Compute the matrix of scaling by s then rotating by q\n return mat3(\n s.x * (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n s.x * (2.0 * (q.x * q.y + q.w * q.z)),\n s.x * (2.0 * (q.x * q.z - q.w * q.y)),\n s.y * (2.0 * (q.x * q.y - q.w * q.z)),\n s.y * (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n s.y * (2.0 * (q.y * q.z + q.w * q.x)),\n s.z * (2.0 * (q.x * q.z + q.w * q.y)),\n s.z * (2.0 * (q.y * q.z - q.w * q.x)),\n s.z * (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\n// Spherical lerp between two quaternions\nvec4 slerp(vec4 q1, vec4 q2, float t) {\n // Compute the cosine of the angle between the two vectors\n float cosHalfTheta = dot(q1, q2);\n\n // If q1=q2 or q1=-q2 then theta = 0 and we can return q1\n if (abs(cosHalfTheta) >= 0.999) {\n return q1;\n }\n \n // If q1 and q2 are more than 180 degrees apart, \n // we need to negate one to get the shortest path\n if (cosHalfTheta < 0.0) {\n q2 = -q2;\n cosHalfTheta = -cosHalfTheta;\n }\n\n // Calculate temporary values\n float halfTheta = acos(cosHalfTheta);\n float sinHalfTheta = sqrt(1.0 - cosHalfTheta * cosHalfTheta);\n\n // Calculate the interpolation factors\n float ratioA = sin((1.0 - t) * halfTheta) / sinHalfTheta;\n float ratioB = sin(t * halfTheta) / sinHalfTheta;\n\n // Calculate the interpolated quaternion\n return q1 * ratioA + q2 * ratioB;\n}\n\nivec3 splatTexCoord(int index) {\n uint x = uint(index) & SPLAT_TEX_WIDTH_MASK;\n uint y = (uint(index) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK;\n uint z = uint(index) >> SPLAT_TEX_LAYER_BITS;\n return ivec3(x, y, z);\n}\n\nivec3 pagedSplatTexCoord(int index) {\n return ivec3(index & 255, (index >> 8) & 255, index >> 16);\n}\n\nvec4 uintToVec4(uint u32) {\n uvec4 bytes = uvec4(\n u32 & 0xFFu,\n (u32 >> 8u) & 0xFFu,\n (u32 >> 16u) & 0xFFu,\n (u32 >> 24u) & 0xFFu\n );\n return vec4(bytes) / 255.0;\n}\n\nvec4 floatToVec4(float f) {\n uint u32 = floatBitsToUint(f);\n return uintToVec4(u32);\n}\n\nvec3 debugColorHue(uint i) {\n // Golden ratio conjugate; spreads hues evenly\n float hue = fract(float(i) * 0.61803398875);\n // HSV to RGB with fixed S/V\n vec3 rgb = clamp(abs(mod(hue*6.0 + vec3(0.0,4.0,2.0), 6.0) - 3.0) - 1.0, 0.0, 1.0);\n return mix(vec3(1.0), rgb, 0.85); // saturation ~0.85, value ~1.0\n}\n","\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\n#include \n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n if (false) {\n // if (debugFlag) {\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n float min1a = min(1.0, a);\n rgba.a = mix(min1a, min1a * exp(exponent), falloff);\n } else {\n // New falloff function, more or less equivalent\n if (rgba.a <= 1.0) {\n rgba.a = mix(rgba.a, rgba.a * exp(-0.5 * z2), falloff);\n } else {\n float a = exp((rgba.a*rgba.a - 1.0) / 2.718281828459045);\n float alpha = 1.0 - pow(1.0 - exp(-0.5 * z2), a);\n rgba.a = mix(1.0, alpha, falloff);\n }\n }\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n\n #include \n}\n","\nprecision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\nflat out float adjustedStdDev;\n\n// uniform uint numSplats;\nuniform vec2 renderSize;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform mat3 renderToViewBasis;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform bool enableExtSplats;\nuniform bool enableCovSplats;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool enable2DGS;\nuniform bool lodInflate;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2D ordering;\nuniform usampler2DArray extSplats;\nuniform usampler2DArray extSplats2;\n\n// Required by logdepthbuf_pars_vertex (normally defined in three.js #include )\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == -1.0;\n}\n\n#include \n\nvoid main() {\n // Default to outside the frustum so it's discarded if we return early\n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n ivec2 orderingCoord = ivec2((gl_InstanceID >> 2) & 4095, gl_InstanceID >> 14);\n uint splatIndex = texelFetch(ordering, orderingCoord, 0)[gl_InstanceID & 3];\n if (splatIndex == 0xffffffffu) {\n // Special value reserved for \"no splat\"\n return;\n }\n\n ivec3 texCoord = splatTexCoord(int(splatIndex));\n vec3 center, scales, xxyyzz, xyxzyz;\n vec4 quaternion, rgba;\n mat3 cov3D;\n bvec3 zeroScales = bvec3(false);\n\n if (enableExtSplats) {\n uvec4 ext1 = texelFetch(extSplats, texCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if ((alpha == 0.0) || (alpha < minAlpha)) {\n return;\n }\n uvec4 ext2 = texelFetch(extSplats2, texCoord, 0);\n\n if (!enableCovSplats) {\n unpackSplatExt(ext1, ext2, center, scales, quaternion, rgba);\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatExtCov(ext1, ext2, center, rgba, xxyyzz, xyxzyz);\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n } else {\n uvec4 packedData = texelFetch(extSplats, texCoord, 0);\n if (!enableCovSplats) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatCovEncoding(packedData, center, rgba, xxyyzz, xyxzyz, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n\n rgba.a *= 2.0;\n if ((rgba.a == 0.0) || (rgba.a < minAlpha)) {\n return;\n }\n }\n\n adjustedStdDev = maxStdDev;\n if (rgba.a > 1.0) {\n // Stretch 1..2 to 1..5\n rgba.a = min(rgba.a * 4.0 - 3.0, 5.0);\n\n if (lodInflate) {\n // Adjust size to componsate for loss of opacity\n float opacity = exp((rgba.a * rgba.a - 1.0) / 2.718281828459045);\n float rescale = pow(opacity, 1.0 / 3.0);\n scales *= rescale;\n rgba.a = 1.0;\n }\n\n // Expand the maximum std dev to approximately cover the larger range\n adjustedStdDev = maxStdDev + 0.7 * (rgba.a - 1.0);\n }\n\n // Compute the view space center of the splat\n vec3 viewCenter = (!enableCovSplats ? quatVec(renderToViewQuat, center) : (renderToViewBasis * center)) + renderToViewPos;\n\n // Discard splats behind the camera\n if (viewCenter.z >= 0.0) {\n return;\n }\n\n // Compute the clip space center of the splat\n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n // Discard splats outside near/far planes\n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n // Discard splats more than clipXY times outside the XY frustum\n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n vRgba = rgba;\n vSplatUv = position.xy * adjustedStdDev;\n\n // Record the splat index for entropy\n vSplatIndex = splatIndex;\n\n if (!enableCovSplats) {\n // Compute view space quaternion of splat\n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n\n #include \n return;\n }\n\n // Compute the 3D covariance matrix of the splat\n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n cov3D = RS * transpose(RS);\n } else {\n cov3D = mat3(\n xxyyzz.x, xyxzyz.x, xyxzyz.y,\n xyxzyz.x, xxyyzz.y, xyxzyz.z,\n xyxzyz.y, xyxzyz.z, xxyyzz.z\n );\n cov3D = renderToViewBasis * cov3D * transpose(renderToViewBasis);\n }\n\n // Compute the Jacobian of the splat's projection at its center\n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if (isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n // Compute the 2D covariance by projecting the 3D covariance\n // and picking out the XY plane components.\n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n // Optionally pre-blur the splat to match non-antialias optimized splats\n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n // Do convolution with a 0.5-pixel Gaussian for anti-aliasing: sqrt(0.3) ~= 0.5\n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n // Compute anti-aliasing intensity scaling factor\n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n vRgba.a = rgba.a;\n\n // Compute the eigenvalue and eigenvectors of the 2D covariance matrix\n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = (abs(b) > 0.001) ? normalize(vec2(b, eigen1 - a))\n : ((a >= d) ? vec2(1.0, 0.0) : vec2(0.0, 1.0));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n // Compute the NDC coordinates for the ellipsoid's diagonal axes.\n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n\n // Compute NDC center of the splat\n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n\n #include \n}\n","import * as THREE from \"three\";\n\nimport computeUvec4Template from \"./shaders/computeUvec4.glsl\";\nimport computeUvec4Vec4Template from \"./shaders/computeUvec4_Vec4.glsl\";\nimport computeUvec4x2Vec4Template from \"./shaders/computeUvec4x2_Vec4.glsl\";\nimport computeVec4Template from \"./shaders/computeVec4.glsl\";\nimport oldSplatFragment from \"./shaders/oldSplatFragment.glsl\";\nimport oldSplatVertex from \"./shaders/oldSplatVertex.glsl\";\nimport splatDefines from \"./shaders/splatDefines.glsl\";\nimport splatFragment from \"./shaders/splatFragment.glsl\";\nimport splatVertex from \"./shaders/splatVertex.glsl\";\n\nlet shaders: Record | null = null;\n\nexport function getShaders(): Record {\n if (!shaders) {\n // @ts-ignore\n THREE.ShaderChunk.splatDefines = splatDefines;\n shaders = {\n oldSplatVertex,\n oldSplatFragment,\n splatVertex,\n splatFragment,\n computeVec4Template,\n computeUvec4Vec4Template,\n computeUvec4x2Vec4Template,\n computeUvec4Template,\n };\n }\n return shaders;\n}\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { type Dyno, OutputRgba8, dynoBlock } from \"./dyno\";\nimport { DynoProgram, DynoProgramTemplate } from \"./dyno/program\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize } from \"./utils\";\n\n// Readback can be used to run a Dyno program that maps an index to a 32-bit\n// RGBA8 value, which is the only allowed, portable readback format for WebGL2.\n// Using data packing and conversion you can read back any 32-bit value, which\n// Spark uses to read back 2 float16 Gsplat distance values per index.\n\nexport type Rgba8Readback = Dyno<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n\n// Readback can be performed with various typed buffers, making it convenient\n// to encode readback data in a variety of formats.\n\nexport type ReadbackBuffer =\n | ArrayBuffer\n | Uint8Array\n | Uint8ClampedArray\n | Int8Array\n | Uint16Array\n | Int16Array\n | Uint32Array\n | Int32Array\n | Float32Array;\n\nexport class Readback {\n renderer?: THREE.WebGLRenderer;\n target?: THREE.WebGLArrayRenderTarget;\n capacity: number;\n count: number;\n\n constructor({ renderer }: { renderer?: THREE.WebGLRenderer } = {}) {\n this.renderer = renderer;\n this.capacity = 0;\n this.count = 0;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n }\n\n // Ensure we have a buffer large enough for the readback of count indices.\n // Pass in previous bufer of the desired type.\n static ensureBuffer(count: number, buffer: B): B {\n // Readback is performed in a 2D array of pixels, so round up with SPLAT_TEX_WIDTH\n const roundedCount =\n Math.ceil(Math.max(1, count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const bytes = roundedCount * 4;\n if (buffer.byteLength >= bytes) {\n return buffer;\n }\n\n // Need a larger buffer, create a new one of the same type\n const newBuffer = new ArrayBuffer(bytes);\n if (buffer instanceof ArrayBuffer) {\n return newBuffer as B;\n }\n\n const ctor = buffer.constructor as { new (arrayBuffer: ArrayBuffer): B };\n return new ctor(newBuffer) as B;\n }\n\n ensureBuffer(count: number, buffer: B): B {\n return Readback.ensureBuffer(count, buffer);\n }\n\n // Ensure our render target is large enough for the readback of capacity indices.\n ensureCapacity(capacity: number) {\n const { width, height, depth, maxSplats } = getTextureSize(capacity);\n if (!this.target || maxSplats > this.capacity) {\n this.dispose();\n this.capacity = maxSplats;\n\n // The only portable readback format for WebGL2 is RGBA8\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAFormat;\n this.target.texture.type = THREE.UnsignedByteType;\n this.target.texture.internalFormat = \"RGBA8\";\n this.target.scissorTest = true;\n }\n }\n\n // Get a program and THREE.RawShaderMaterial for a given Rgba8Readback,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(reader: Rgba8Readback): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = Readback.readbackProgram.get(reader);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n reader.inputs.index = index;\n const rgba8 = new OutputRgba8({ rgba8: reader.outputs.rgba8 });\n return { rgba8 };\n },\n );\n if (!Readback.programTemplate) {\n Readback.programTemplate = new DynoProgramTemplate(\n getShaders().computeVec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { rgba8: \"target\" },\n template: Readback.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n Readback.readbackProgram.set(reader, program);\n }\n\n const material = program.prepareMaterial();\n Readback.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private process({\n count,\n material,\n }: { count: number; material: THREE.RawShaderMaterial }) {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n // Run the program in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of indices.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = 0;\n material.uniforms.targetCount.value = count;\n let baseIndex = 0;\n\n // Keep generating layers until completed count items\n while (baseIndex < count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((count - layerBase) / SPLAT_TEX_WIDTH),\n );\n material.uniforms.targetLayer.value = layer;\n\n // Render the desired portion of the layer\n this.target.scissor.set(0, 0, SPLAT_TEX_WIDTH, layerYEnd);\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n Readback.fullScreenQuad.render(renderer);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.count = count;\n }\n\n private async read({\n readback,\n }: { readback: B }): Promise {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(this.count / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(\n readback instanceof ArrayBuffer ? readback : readback.buffer,\n );\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < this.count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((this.count - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n renderer.setRenderTarget(this.target, layer);\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n const promise = renderer?.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n );\n promises.push(promise);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n // const gl = renderer.getContext() as WebGL2RenderingContext;\n // gl.flush();\n return Promise.all(promises).then(() => readback);\n }\n\n // Perform render operation to run the Rgba8Readback program\n // but don't perform the readback yet.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer?: THREE.WebGLRenderer }) {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n this.process({ count, material });\n this.resetRenderState(this.renderer, renderState);\n }\n\n // Perform a readback of the render target, returning a buffer of the\n // given type.\n async readback({\n readback,\n }: { readback: B }): Promise {\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n const renderState = this.saveRenderState(this.renderer);\n const promise = this.read({ readback });\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n // Perform a render and readback operation for the given Rgba8Readback,\n // and readback buffer (call ensureBuffer first).\n async renderReadback({\n reader,\n count,\n renderer,\n readback,\n }: {\n reader: Rgba8Readback;\n count: number;\n renderer?: THREE.WebGLRenderer;\n readback: B;\n }): Promise {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n\n // Generate output\n this.process({ count, material });\n\n // Initiate readback\n const promise = this.read({ readback });\n\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n getTexture(): THREE.DataArrayTexture | undefined {\n return this.target?.texture;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for Rgba8Readback programs\n static readbackProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n}\n","import * as THREE from \"three\";\n\nimport { DynoPackedSplats, type PackedSplats } from \"./PackedSplats\";\nimport { Readback, type Rgba8Readback } from \"./Readback\";\nimport { SPLAT_TEX_WIDTH } from \"./defines\";\nimport {\n Dyno,\n type DynoBlock,\n DynoInt,\n DynoUniform,\n type DynoVal,\n add,\n dynoBlock,\n readPackedSplatRange,\n splitGsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize } from \"./utils\";\n\n// An RgbaArray is a collection of ordered RGBA8 values, which can be used as a dyno\n// data source, for example for recoloring Gsplats via SplatMesh.splatRgba.\n// It can be instantiated from a Uint8Array of RGBA8 values, or it can be\n// generated using a Rgba8Readback dyno program.\n\nexport type RgbaArrayOptions = {\n // Reserve space for at least this many RGBA values.\n capacity?: number;\n // Use the provided array of RGBA8 values as the source.\n array?: Uint8Array;\n // The number of actual RGBA8 values in the array.\n count?: number;\n};\n\nexport class RgbaArray {\n capacity = 0;\n count = 0;\n array: Uint8Array | null = null;\n\n readback: Readback | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source array is updated to have it upload to GPU\n needsUpdate = true;\n\n // Use this as a TRgbaArray in a dyno graph\n dyno: DynoUniform;\n\n constructor(options: RgbaArrayOptions = {}) {\n this.dyno = new DynoUniform({\n key: \"rgbaArray\",\n type: TRgbaArray,\n globals: () => [defineRgbaArray],\n value: {\n texture: RgbaArray.getEmpty(),\n count: 0,\n },\n update: (value) => {\n value.texture = this.getTexture();\n value.count = this.count;\n return value;\n },\n });\n\n if (options.array) {\n // Initialize with given array\n this.array = options.array;\n const splatCount = Math.floor(this.array.length / 4);\n this.capacity = Math.ceil(splatCount / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (this.capacity > splatCount) {\n this.array = new Uint8Array(this.capacity * 4);\n this.array.set(options.array);\n }\n this.count = Math.min(\n splatCount,\n options.count ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.capacity = options.capacity ?? 0;\n this.count = 0;\n }\n }\n\n // Free up resources\n dispose() {\n if (this.readback) {\n this.readback.dispose();\n this.readback = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source = null;\n }\n }\n\n // Ensure that our array is large enough to hold capacity RGBA8 values.\n ensureCapacity(capacity: number): Uint8Array {\n if (!this.array || capacity > (this.array?.length ?? 0) / 4) {\n this.capacity = getTextureSize(capacity).maxSplats;\n const newArray = new Uint8Array(this.capacity * 4);\n if (this.array) {\n // Copy over existing data\n newArray.set(this.array);\n }\n this.array = newArray;\n }\n return this.array;\n }\n\n // Get the THREE.DataArrayTexture from either the readback or the source.\n getTexture(): THREE.DataArrayTexture {\n let texture = this.readback?.getTexture();\n if (this.source || this.array) {\n texture = this.maybeUpdateSource();\n }\n return texture ?? RgbaArray.getEmpty();\n }\n\n // Create or get a THREE.DataArrayTexture from the data array.\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.array) {\n throw new Error(\"No array\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.capacity !== width * height * depth) {\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n const { width, height, depth } = getTextureSize(this.capacity);\n this.source = new THREE.DataArrayTexture(\n this.array as Uint8Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAFormat;\n this.source.type = THREE.UnsignedByteType;\n this.source.internalFormat = \"RGBA8\";\n this.source.needsUpdate = true;\n } else if (this.array.buffer !== this.source.image.data.buffer) {\n this.source.image.data = new Uint8Array(this.array.buffer);\n }\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n // Generate the RGBA8 values from a Rgba8Readback dyno program.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer: THREE.WebGLRenderer }) {\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n this.readback.render({ reader, count, renderer });\n this.capacity = this.readback.capacity;\n this.count = this.readback.count;\n }\n\n // Extract the RGBA8 values from a PackedSplats collection.\n fromPackedSplats({\n packedSplats,\n base,\n count,\n renderer,\n }: {\n packedSplats: PackedSplats;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n const { dynoSplats, dynoBase, dynoCount, reader } = RgbaArray.makeDynos();\n dynoSplats.packedSplats = packedSplats;\n dynoBase.value = base;\n dynoCount.value = count;\n this.render({ reader, count, renderer });\n return this;\n }\n\n // Read back the RGBA8 values from the readback buffer.\n async read(): Promise {\n if (!this.readback) {\n throw new Error(\"No readback\");\n }\n if (!this.array || this.array.length < this.count * 4) {\n this.array = new Uint8Array(this.capacity * 4);\n }\n const result = await this.readback.readback({ readback: this.array });\n return result.subarray(0, this.count * 4);\n }\n\n async getArray(): Promise {\n if (this.readback) {\n return await this.read();\n }\n if (this.array) {\n return this.array;\n }\n throw new Error(\"No array\");\n }\n\n private static emptySource: THREE.DataArrayTexture | null = null;\n\n // Can be used where you need an uninitialized THREE.DataArrayTexture like\n // a uniform you will update with the result of this.getTexture() later.\n static getEmpty(): THREE.DataArrayTexture {\n if (!RgbaArray.emptySource) {\n const emptyArray = new Uint8Array(1 * 4);\n RgbaArray.emptySource = new THREE.DataArrayTexture(emptyArray, 1, 1, 1);\n RgbaArray.emptySource.format = THREE.RGBAFormat;\n RgbaArray.emptySource.type = THREE.UnsignedByteType;\n RgbaArray.emptySource.internalFormat = \"RGBA8\";\n RgbaArray.emptySource.needsUpdate = true;\n }\n return RgbaArray.emptySource;\n }\n\n private static dynos: {\n dynoSplats: DynoPackedSplats;\n dynoBase: DynoInt;\n dynoCount: DynoInt;\n reader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n } | null = null;\n\n // Create a dyno program that can extract RGBA8 values from a PackedSplats\n private static makeDynos() {\n if (!RgbaArray.dynos) {\n const dynoSplats = new DynoPackedSplats();\n const dynoBase = new DynoInt({ value: 0 });\n const dynoCount = new DynoInt({ value: 0 });\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n index = add(index, dynoBase);\n const gsplat = readPackedSplatRange(\n dynoSplats,\n index,\n dynoBase,\n dynoCount,\n );\n return { rgba8: splitGsplat(gsplat).outputs.rgba };\n },\n );\n RgbaArray.dynos = { dynoSplats, dynoBase, dynoCount, reader };\n }\n return RgbaArray.dynos;\n }\n}\n\n// Dyno types and definitions\n\nexport const TRgbaArray = { type: \"RgbaArray\" } as { type: \"RgbaArray\" };\n\nexport const defineRgbaArray = unindent(`\n struct RgbaArray {\n sampler2DArray texture;\n int count;\n };\n`);\n\nexport function readRgbaArray(\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal<\"vec4\"> {\n const dyno = new Dyno<\n { rgba: typeof TRgbaArray; index: \"int\" },\n { rgba: \"vec4\" }\n >({\n inTypes: { rgba: TRgbaArray, index: \"int\" },\n outTypes: { rgba: \"vec4\" },\n inputs: { rgba, index },\n globals: () => [defineRgbaArray],\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n if ((${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.rgba} = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n } else {\n ${outputs.rgba} = vec4(0.0, 0.0, 0.0, 0.0);\n }\n `),\n });\n return dyno.outputs.rgba;\n}\n","import * as THREE from \"three\";\n\nimport {\n CovSplat,\n Dyno,\n DynoInt,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { newArray } from \"./utils\";\n\n// Spark provides the ability to apply \"edits\" to Gsplats as part of the standard\n// SplatMesh pipeline. These edits take the form of a sequence of operations,\n// applied one at a time to the set of Gsplats in its packedSplats. Each operation\n// evaluates a 7-dimensional field (RGBA and XYZ displacement) at each point in\n// space that derives from N=1 or more Signed Distance Field shapes (such as spheres,\n// boxes, planes, etc.), blended together and across inside-outisde boundaries.\n\n// The result is a an RGBA,XYZ value for each point in space, which combined with\n// SplatEditRgbaBlendMode.MULTIPLY/SET_RGB/ADD_RGBA can be used to create special\n// effects, for example simulating simple lighting or applying deformations in space,\n// whose parameters can be updated each frame to create animated effects.\n\n// RGBA-XYZ values are computed by blending together values from all SDF shapes using\n// the exponential \"softmax\" function, which is commutative (so blending order within\n// a SplatEdit operation doesn't matter). The parameter SplatEdit.sdfSmooth controls\n// the blending scale between SDF shapes, while SplatEdit.softEdge controls the scale\n// of soft inside-outside shape edit blending. Their default values start at 0.0 and\n// should be increased to soften the effect.\n\n// Note that XYZ displacement values are blended in the same way as RGBA, with a\n// resulting displacement field that can be quite complex but \"softly\" blending\n// between shapes. These RGBA-XYZ edits, along with time-based and overlapping\n// fields can create many interesting animations and special effects, such as\n// rippling leaves in the wind, an angry fire, or a looping water effects. Simply\n// update the SplatEdit and SplatEditSdf objects and the operations will be applied\n// immediately to the Gsplats in the scene.\n\nexport enum SplatEditSdfType {\n // ALL: Affects all points in space\n ALL = \"all\",\n // PLANE: Infinite plane (position, rotation)\n PLANE = \"plane\",\n // SPHERE: Sphere (position, radius)\n SPHERE = \"sphere\",\n // BOX: Rounded box (position, rotation, sizes, radius)\n BOX = \"box\",\n // ELLIPSOID: Ellipsoid (position, rotation, sizes)\n ELLIPSOID = \"ellipsoid\",\n // CYLINDER: Cylinder (position, rotation, radius, size_y)\n CYLINDER = \"cylinder\",\n // CAPSULE: Capsule (position, rotation, radius, size_y)\n CAPSULE = \"capsule\",\n // INFINITE_CONE: Infinite cone (position, rotation, radius=angle)\n INFINITE_CONE = \"infinite_cone\",\n}\n\nfunction sdfTypeToNumber(type: SplatEditSdfType) {\n switch (type) {\n case SplatEditSdfType.ALL:\n return 0;\n case SplatEditSdfType.PLANE:\n return 1;\n case SplatEditSdfType.SPHERE:\n return 2;\n case SplatEditSdfType.BOX:\n return 3;\n case SplatEditSdfType.ELLIPSOID:\n return 4;\n case SplatEditSdfType.CYLINDER:\n return 5;\n case SplatEditSdfType.CAPSULE:\n return 6;\n case SplatEditSdfType.INFINITE_CONE:\n return 7;\n default:\n throw new Error(`Unknown SDF type: ${type}`);\n }\n}\n\nexport enum SplatEditRgbaBlendMode {\n // The RGBA of the splat is multiplied component-wise by the SDF’s\n // RGBA value at that point in space.\n MULTIPLY = \"multiply\",\n // Ignore the Alpha value in the SDF, but set the splat’s RGB to\n // equal the SDF’s RGB value at that point.\n SET_RGB = \"set_rgb\",\n // Add the SDF’s RGBA value at that point to the RGBA value of\n // the Gsplat. This can produce hyper-saturated results, but is useful\n // to easily “light up” areas.\n ADD_RGBA = \"add_rgba\",\n}\n\nfunction rgbaBlendModeToNumber(mode: SplatEditRgbaBlendMode) {\n switch (mode) {\n case SplatEditRgbaBlendMode.MULTIPLY:\n return 0;\n case SplatEditRgbaBlendMode.SET_RGB:\n return 1;\n case SplatEditRgbaBlendMode.ADD_RGBA:\n return 2;\n default:\n throw new Error(`Unknown blend mode: ${mode}`);\n }\n}\n\nexport type SplatEditSdfOptions = {\n // The SDF shape type: ALL, PLANE, SPHERE, BOX, ELLIPSOID, CYLINDER, CAPSULE,\n // or INFINITE_CONE. (default: SplatEditSdfType.SPHERE)\n type?: SplatEditSdfType;\n // Invert the SDF evaluation, swapping inside and outside regions. (default: false)\n invert?: boolean;\n // Opacity / \"alpha\" value used differently by blending modes (default: 1.0)\n opacity?: number;\n // RGB color applied within the shape. (default: new THREE.Color(1.0, 1.0, 1.0))\n color?: THREE.Color;\n // XYZ displacement applied to splat positions inside the shape.\n // (default: new THREE.Vector3(0.0, 0.0, 0.0))\n displace?: THREE.Vector3;\n // Shape-specific size parameter: sphere radius, box corner rounding,\n // cylinder/capsule radius, or for the infinite cone the angle factor\n // (opening half-angle = π/4 × radius).\n radius?: number;\n};\n\nexport class SplatEditSdf extends THREE.Object3D {\n type: SplatEditSdfType;\n invert: boolean;\n opacity: number;\n color: THREE.Color;\n displace: THREE.Vector3;\n radius: number;\n\n constructor(options: SplatEditSdfOptions = {}) {\n super();\n const { type, invert, opacity, color, displace, radius } = options;\n this.type = type ?? SplatEditSdfType.SPHERE;\n this.invert = invert ?? false;\n this.opacity = opacity ?? 1.0;\n this.color = color ?? new THREE.Color(1.0, 1.0, 1.0);\n this.displace = displace ?? new THREE.Vector3(0.0, 0.0, 0.0);\n this.radius = radius ?? 0.0;\n }\n}\n\nexport type SplatEditOptions = {\n // Name of this edit operation. If you omit it, a default \"Edit 1\", \"Edit 2\", ...\n // is assigned.\n name?: string;\n // How the SDF’s RGBA modifies each splat’s RGBA: multiply, overwrite RGB,\n // or add RGBA. (default: MULTIPLY)\n rgbaBlendMode?: SplatEditRgbaBlendMode;\n // Smoothing (in world‐space units) for blending between multiple SDF shapes\n // at their boundaries. (default: 0.0)\n sdfSmooth?: number;\n // Soft‐edge falloff radius (in world‐space units) around each SDF shape’s surface.\n // (default: 0.0)\n softEdge?: number;\n // Invert the SDF evaluation (inside/outside swap). (default: false)\n invert?: boolean;\n // Explicit array of SplatEditSdf objects to include. If null, any child\n // SplatEditSdf instances are used.\n sdfs?: SplatEditSdf[];\n};\n\nexport class SplatEdit extends THREE.Object3D {\n // ordering used to apply SplatEdit operations to Gsplats. This is implicitly\n // increased with each new SplatEdit. Reassigning ordering can be used to\n // reorder the operations.\n ordering: number;\n rgbaBlendMode: SplatEditRgbaBlendMode;\n sdfSmooth: number;\n softEdge: number;\n invert: boolean;\n\n // Optional list of explicit SDFs to including in this edit. If it is null, then\n // any SplatEditSdf children in the scene graph will be added automatically.\n sdfs: SplatEditSdf[] | null;\n\n // The next ordering number to use for a new SplatEdit, auto-incremented\n static nextOrdering = 1;\n\n constructor(options: SplatEditOptions = {}) {\n const {\n name,\n rgbaBlendMode = SplatEditRgbaBlendMode.MULTIPLY,\n sdfSmooth = 0.0,\n softEdge = 0.0,\n invert = false,\n sdfs = null,\n } = options;\n\n super();\n this.rgbaBlendMode = rgbaBlendMode;\n this.sdfSmooth = sdfSmooth;\n this.softEdge = softEdge;\n this.invert = invert;\n this.sdfs = sdfs;\n // Assign and auto-increment unique ordering number for this edit\n this.ordering = SplatEdit.nextOrdering++;\n // Automatically assign a default name if not provided\n this.name = name ?? `Edit ${this.ordering}`;\n }\n\n addSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n this.sdfs = [];\n }\n if (!this.sdfs.includes(sdf)) {\n this.sdfs.push(sdf);\n }\n }\n\n removeSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n return;\n }\n this.sdfs = this.sdfs.filter((s) => s !== sdf);\n }\n}\n\n// Dyno implementation of RGBA-XYZ SDF editing.\n// The SDFs are encoded in a texture while the edits are encoded\n// as a uniform uvec4 array.\n\nexport class SplatEdits {\n // Maximum number of SDFs allocated\n maxSdfs: number;\n // Number of SDFs currently in use\n numSdfs: number;\n // Encoded SDF data\n sdfData: Uint32Array;\n // Float interpretation of SDF data\n sdfFloatData: Float32Array;\n // Texture with encoded SDF data\n sdfTexture: THREE.DataTexture;\n // An SdfArray dyno uniform\n dynoSdfArray: DynoUniform;\n\n // Maximum number of edits allocated\n maxEdits: number;\n // Number of edits currently in use\n numEdits: number;\n // Encoded edit data\n editData: Uint32Array;\n // Float interpretation of edit data\n editFloatData: Float32Array;\n // A dyno uniform for the number of edits\n dynoNumEdits: DynoUniform<\"int\", \"numEdits\">;\n // A dyno uniform for the encoded edits, one uvec4 per edit\n dynoEdits: DynoUniform<\"uvec4\", \"edits\">;\n\n constructor({ maxSdfs, maxEdits }: { maxSdfs?: number; maxEdits?: number }) {\n // Allocate at least 16 SDFs for efficiency\n this.maxSdfs = Math.max(16, maxSdfs ?? 0);\n this.numSdfs = 0;\n\n // Allocate space: 8 x (u)vec4 values per SDF, Uint32 and Float32 arrays\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n this.dynoSdfArray = new DynoUniform({\n key: \"sdfArray\",\n type: SdfArray,\n globals: () => [defineSdfArray],\n value: {\n numSdfs: 0,\n sdfTexture: this.sdfTexture,\n },\n update: (uniform) => {\n uniform.numSdfs = this.numSdfs;\n uniform.sdfTexture = this.sdfTexture;\n return uniform;\n },\n });\n\n // Allocate at least 16 edits slots for efficiency\n this.maxEdits = Math.max(16, maxEdits ?? 0);\n this.numEdits = 0;\n // Allocate space: 1 uvec4 per edit\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoNumEdits = new DynoInt({ value: 0 });\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n }\n\n private newSdfTexture(data: Uint32Array, maxSdfs: number) {\n const texture = new THREE.DataTexture(\n data,\n 8,\n maxSdfs,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n }\n\n private newEdits(data: Uint32Array, maxEdits: number) {\n return new DynoUniform({\n key: \"edits\",\n type: \"uvec4\",\n count: maxEdits,\n globals: () => [defineEdit],\n value: data,\n });\n }\n\n // Ensure our SDF texture and edits uniform array have enough capacity.\n // Reallocate if not.\n private ensureCapacity({\n maxSdfs,\n maxEdits,\n }: { maxSdfs: number; maxEdits: number }): boolean {\n let dynoUpdated = false;\n if (maxSdfs > this.sdfTexture.image.height) {\n this.sdfTexture.dispose();\n // At least double the size to avoid frequent reallocations\n this.maxSdfs = Math.max(this.maxSdfs * 2, maxSdfs);\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n }\n if (maxEdits > (this.dynoEdits.count ?? 0)) {\n // At least double the size to avoid frequent reallocations\n this.maxEdits = Math.max(this.maxEdits * 2, maxEdits);\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n dynoUpdated = true;\n }\n return dynoUpdated;\n }\n\n private updateEditData(offset: number, value: number): boolean {\n // Update an edit uint32 value and return true if it changed\n const updated = this.editData[offset] !== value;\n this.editData[offset] = value;\n return updated;\n }\n\n private updateEditFloatData(offset: number, value: number): boolean {\n // Update an edit float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.editFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.editFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeEdit(\n editIndex: number,\n {\n sdfFirst,\n sdfCount,\n invert,\n rgbaBlendMode,\n softEdge,\n sdfSmooth,\n }: {\n sdfFirst: number;\n sdfCount: number;\n invert: boolean;\n rgbaBlendMode: number;\n softEdge: number;\n sdfSmooth: number;\n },\n ): boolean {\n const base = editIndex * 4;\n let updated = false;\n // Encode the edit fields into the editData array and check if any changed\n updated =\n this.updateEditData(base + 0, rgbaBlendMode | (invert ? 1 << 8 : 0)) ||\n updated;\n updated =\n this.updateEditData(base + 1, sdfFirst | (sdfCount << 16)) || updated;\n updated = this.updateEditFloatData(base + 2, softEdge) || updated;\n updated = this.updateEditFloatData(base + 3, sdfSmooth) || updated;\n return updated;\n }\n\n private updateSdfData(offset: number, value: number): boolean {\n // Update an SDF uint32 value and return true if it changed\n const updated = this.sdfData[offset] !== value;\n this.sdfData[offset] = value;\n return updated;\n }\n\n private updateSdfFloatData(offset: number, value: number): boolean {\n // Update an SDF float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.sdfFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.sdfFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeSdf(\n sdfIndex: number,\n {\n sdfType,\n invert,\n center,\n quaternion,\n scale,\n sizes,\n }: {\n sdfType: number;\n invert?: boolean;\n center?: THREE.Vector3;\n quaternion?: THREE.Quaternion;\n scale?: THREE.Vector3;\n sizes?: THREE.Vector4;\n },\n values: THREE.Vector4[],\n ): boolean {\n // Encode the SDF fields into the sdfData array and check if any changed\n const base = sdfIndex * (8 * 4);\n const flags = sdfType | (invert ? 1 << 8 : 0);\n let updated = false;\n\n updated = this.updateSdfFloatData(base + 0, center?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 1, center?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 2, center?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 3, flags) || updated;\n\n updated = this.updateSdfFloatData(base + 4, quaternion?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 5, quaternion?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 6, quaternion?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 7, quaternion?.w ?? 0) || updated;\n\n updated = this.updateSdfFloatData(base + 8, scale?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 9, scale?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 10, scale?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 11, 0) || updated;\n\n updated = this.updateSdfFloatData(base + 12, sizes?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 13, sizes?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 14, sizes?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 15, sizes?.w ?? 0) || updated;\n\n const nValues = Math.min(4, values.length);\n for (let i = 0; i < nValues; ++i) {\n const vBase = base + 16 + i * 4;\n updated = this.updateSdfFloatData(vBase + 0, values[i].x) || updated;\n updated = this.updateSdfFloatData(vBase + 1, values[i].y) || updated;\n updated = this.updateSdfFloatData(vBase + 2, values[i].z) || updated;\n updated = this.updateSdfFloatData(vBase + 3, values[i].w) || updated;\n }\n return updated;\n }\n\n // Update the SDFs and edits from an array of SplatEdits and their\n // associated SplatEditSdfs, updating it for the dyno shader program.\n update(edits: { edit: SplatEdit; sdfs: SplatEditSdf[] }[]): {\n updated: boolean;\n dynoUpdated: boolean;\n } {\n const sdfCount = edits.reduce((total, { sdfs }) => total + sdfs.length, 0);\n const dynoUpdated = this.ensureCapacity({\n maxEdits: edits.length,\n maxSdfs: sdfCount,\n });\n\n const values = [new THREE.Vector4(), new THREE.Vector4()];\n const center = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const scale = new THREE.Vector3();\n const sizes = new THREE.Vector4();\n\n let sdfIndex = 0;\n let updated = dynoUpdated;\n\n if (edits.length !== this.dynoNumEdits.value) {\n this.dynoNumEdits.value = edits.length;\n this.numEdits = edits.length;\n updated = true;\n }\n\n for (const [editIndex, { edit, sdfs }] of edits.entries()) {\n updated =\n this.encodeEdit(editIndex, {\n sdfFirst: sdfIndex,\n sdfCount: sdfs.length,\n invert: edit.invert,\n rgbaBlendMode: rgbaBlendModeToNumber(edit.rgbaBlendMode),\n softEdge: edit.softEdge,\n sdfSmooth: edit.sdfSmooth,\n }) || updated;\n\n let sdfUpdated = false;\n for (const sdf of sdfs) {\n sizes.set(sdf.scale.x, sdf.scale.y, sdf.scale.z, sdf.radius);\n // Temporarily set the SDF scale to 1.0 to get the world-to-SDF\n // transform without scaling. The SDF treats the scale separately.\n sdf.scale.setScalar(1.0);\n sdf.updateMatrixWorld();\n const worldToSdf = sdf.matrixWorld.clone().invert();\n worldToSdf.decompose(center, quaternion, scale);\n\n sdf.scale.set(sizes.x, sizes.y, sizes.z);\n sdf.updateMatrixWorld();\n\n values[0].set(sdf.color.r, sdf.color.g, sdf.color.b, sdf.opacity);\n values[1].set(sdf.displace.x, sdf.displace.y, sdf.displace.z, 1.0);\n\n sdfUpdated =\n this.encodeSdf(\n sdfIndex,\n {\n sdfType: sdfTypeToNumber(sdf.type),\n invert: sdf.invert,\n center,\n quaternion,\n scale,\n sizes,\n },\n values,\n ) || sdfUpdated;\n\n sdfIndex += 1;\n }\n this.numSdfs = sdfIndex;\n if (sdfUpdated) {\n this.sdfTexture.needsUpdate = true;\n }\n updated ||= sdfUpdated;\n }\n return { updated, dynoUpdated };\n }\n\n // Modify a Gsplat in a dyno shader program using the current edits and SDFs.\n modify(gsplat: DynoVal): DynoVal {\n return applyGsplatRgbaDisplaceEdits(\n gsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n return applyCovSplatRgbaDisplaceEdits(\n covsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n}\n\n// Dyno types and components:\n\n// An SdfArray contains a collection of SDFs encoded in a texture.\n// Each SDF has a type and geometric parameters, but also encodes\n// 4 x vec4 values, which can all be blended across multiple SDFs.\n// The SplatEdit system uses 7 of these 16 values to encode RGBA-XYZ edits,\n// but more can be added, and these SDFs can be used for entirely different\n// purposes as well.\n\nexport const SdfArray = { type: \"SdfArray\" } as { type: \"SdfArray\" };\n\nexport const defineSdfArray = unindent(`\n struct SdfArray {\n int numSdfs;\n usampler2D sdfTexture;\n };\n\n void unpackSdfArray(\n usampler2D sdfTexture, int sdfIndex, out uint flags,\n out vec3 center, out vec4 quaternion, out vec3 scale, out vec4 sizes,\n int numValues, out vec4 values[4]\n ) {\n uvec4 temp = texelFetch(sdfTexture, ivec2(0, sdfIndex), 0);\n flags = temp.w;\n center = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(1, sdfIndex), 0);\n quaternion = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n temp = texelFetch(sdfTexture, ivec2(2, sdfIndex), 0);\n scale = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(3, sdfIndex), 0);\n sizes = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n for (int i = 0; i < numValues; ++i) {\n temp = texelFetch(sdfTexture, ivec2(4 + i, sdfIndex), 0);\n values[i] = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n }\n }\n\n const uint SDF_FLAG_TYPE = 0xFFu;\n const uint SDF_FLAG_INVERT = 1u << 8u;\n\n const uint SDF_TYPE_ALL = 0u;\n const uint SDF_TYPE_PLANE = 1u;\n const uint SDF_TYPE_SPHERE = 2u;\n const uint SDF_TYPE_BOX = 3u;\n const uint SDF_TYPE_ELLIPSOID = 4u;\n const uint SDF_TYPE_CYLINDER = 5u;\n const uint SDF_TYPE_CAPSULE = 6u;\n const uint SDF_TYPE_INFINITE_CONE = 7u;\n\n float evaluateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 outValues[4]\n ) {\n float distanceAccum = (smoothK == 0.0) ? 1.0 / 0.0 : 0.0;\n float maxExp = -1.0 / 0.0;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = vec4(0.0);\n }\n\n uint flags;\n vec3 center, scale;\n vec4 quaternion, sizes;\n vec4 values[4];\n\n int sdfLast = min(sdfFirst + sdfCount, numSdfs);\n for (int index = sdfFirst; index < sdfLast; ++index) {\n unpackSdfArray(sdfTexture, index, flags, center, quaternion, scale, sizes, numValues, values);\n uint sdfType = flags & SDF_FLAG_TYPE;\n vec3 sdfPos = quatVec(quaternion, pos * scale) + center;\n\n float distance;\n switch (sdfType) {\n case SDF_TYPE_ALL:\n distance = -1.0 / 0.0;\n break;\n case SDF_TYPE_PLANE: {\n distance = sdfPos.z;\n break;\n }\n case SDF_TYPE_SPHERE: {\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_BOX: {\n vec3 q = abs(sdfPos) - sizes.xyz + sizes.w;\n distance = length(max(q, 0.0)) + min(max(q.x, max(q.y, q.z)), 0.0) - sizes.w;\n break;\n }\n case SDF_TYPE_ELLIPSOID: {\n vec3 sizes = sizes.xyz;\n float k0 = length(sdfPos / sizes);\n float k1 = length(sdfPos / dot(sizes, sizes));\n distance = k0 * (k0 - 1.0) / k1;\n break;\n }\n case SDF_TYPE_CYLINDER: {\n vec2 d = abs(vec2(length(sdfPos.xz), sdfPos.y)) - sizes.wy;\n distance = min(max(d.x, d.y), 0.0) + length(max(d, 0.0));\n break;\n }\n case SDF_TYPE_CAPSULE: {\n sdfPos.y -= clamp(sdfPos.y, -0.5 * sizes.y, 0.5 * sizes.y);\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_INFINITE_CONE: {\n float angle = 0.25 * PI * sizes.w;\n vec2 c = vec2(sin(angle), cos(angle));\n vec2 q = vec2(length(sdfPos.xy), -sdfPos.z);\n float d = length(q - c * max(dot(q, c), 0.0));\n distance = d * (((q.x * c.y - q.y * c.x) < 0.0) ? -1.0 : 1.0);\n break;\n }\n }\n\n if ((flags & SDF_FLAG_INVERT) != 0u) {\n distance = -distance;\n }\n\n if (smoothK == 0.0) {\n if (distance < distanceAccum) {\n distanceAccum = distance;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = values[i];\n }\n }\n } else {\n float scaledDistance = -distance / smoothK;\n if (scaledDistance > maxExp) {\n float scale = exp(maxExp - scaledDistance);\n distanceAccum *= scale;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] *= scale;\n }\n maxExp = scaledDistance;\n }\n\n float weight = exp(scaledDistance - maxExp);\n distanceAccum += weight;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] += weight * values[i];\n }\n }\n }\n\n if (smoothK == 0.0) {\n return distanceAccum;\n } else {\n // Very distant SDFs may result in 0 accumulation\n if (distanceAccum == 0.0) {\n return 1.0 / 0.0;\n }\n for (int i = 0; i < numValues; ++i) {\n outValues[i] /= distanceAccum;\n }\n return (-log(distanceAccum) - maxExp) * smoothK;\n }\n }\n\n float modulateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 values[4],\n float softEdge, bool invert\n ) {\n float distance = evaluateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, numValues, values);\n if (invert) {\n distance = -distance;\n }\n\n return (softEdge == 0.0) ? ((distance < 0.0) ? 1.0 : 0.0)\n : clamp(-distance / softEdge + 0.5, 0.0, 1.0);\n }\n`);\n\nexport const defineEdit = unindent(`\n const uint EDIT_FLAG_BLEND = 0xFFu;\n const uint EDIT_BLEND_MULTIPLY = 0u;\n const uint EDIT_BLEND_SET_RGB = 1u;\n const uint EDIT_BLEND_ADD_RGBA = 2u;\n const uint EDIT_FLAG_INVERT = 0x100u;\n\n void decodeEdit(\n uvec4 packedEdit, out int sdfFirst, out int sdfCount,\n out bool invert, out uint rgbaBlendMode, out float softEdge, out float sdfSmooth\n ) {\n rgbaBlendMode = packedEdit.x & EDIT_FLAG_BLEND;\n invert = (packedEdit.x & EDIT_FLAG_INVERT) != 0u;\n\n sdfFirst = int(packedEdit.y & 0xFFFFu);\n sdfCount = int(packedEdit.y >> 16u);\n\n softEdge = uintBitsToFloat(packedEdit.z);\n sdfSmooth = uintBitsToFloat(packedEdit.w);\n }\n\n void applyRgbaDisplaceEdit(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, inout vec3 pos,\n float smoothK, float softEdge, bool invert, uint rgbaBlendMode, inout vec4 rgba\n ) {\n vec4 values[4];\n float modulate = modulateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, 2, values, softEdge, invert);\n // On Android, moving values[0] is necessary to work around a compiler bug.\n vec4 sdfRgba = values[0];\n vec4 sdfDisplaceScale = values[1];\n\n vec4 target;\n switch (rgbaBlendMode) {\n case EDIT_BLEND_MULTIPLY:\n target = rgba * sdfRgba;\n break;\n case EDIT_BLEND_SET_RGB:\n target = vec4(sdfRgba.rgb, rgba.a * sdfRgba.a);\n break;\n case EDIT_BLEND_ADD_RGBA:\n target = rgba + sdfRgba;\n break;\n default:\n // Debug output if blend mode not set\n target = vec4(fract(pos), 1.0);\n }\n rgba = mix(rgba, target, modulate);\n pos += sdfDisplaceScale.xyz * modulate;\n }\n\n void applyPackedRgbaDisplaceEdit(uvec4 packedEdit, usampler2D sdfTexture, int numSdfs, inout vec3 pos, inout vec4 rgba) {\n int sdfFirst, sdfCount;\n bool invert;\n uint rgbaBlendMode;\n float softEdge, sdfSmooth;\n decodeEdit(packedEdit, sdfFirst, sdfCount, invert, rgbaBlendMode, softEdge, sdfSmooth);\n applyRgbaDisplaceEdit(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, sdfSmooth, softEdge, invert, rgbaBlendMode, rgba);\n }\n`);\n\nfunction applyGsplatRgbaDisplaceEdits(\n gsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n gsplat: typeof Gsplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { gsplat: typeof Gsplat }\n >({\n inTypes: {\n gsplat: Gsplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { gsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${gsplat}.center, ${gsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nfunction applyCovSplatRgbaDisplaceEdits(\n covsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n covsplat: typeof CovSplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { covsplat: typeof CovSplat }\n >({\n inTypes: {\n covsplat: CovSplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { covsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${covsplat}.center, ${covsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nconst tempFloat32 = new Float32Array(1);\n","import * as THREE from \"three\";\nimport type { SplatEdit } from \"./SplatEdit\";\nimport {\n CovSplat,\n Dyno,\n DynoFloat,\n DynoMat3,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n Gsplat,\n add,\n dynoBlock,\n mul,\n transformDir,\n transformGsplat,\n transformPos,\n unindentLines,\n} from \"./dyno\";\n\n// A GsplatGenerator is a dyno program that maps an index to a Gsplat's properties\n\nexport type GsplatGenerator = Dyno<{ index: \"int\" }, { gsplat: typeof Gsplat }>;\n\nexport type CovSplatGenerator = Dyno<\n { index: \"int\" },\n { covsplat: typeof CovSplat }\n>;\n\n// A GsplatModifier is a dyno program that inputs a Gsplat, modifies, and outputs it\n\nexport type GsplatModifier = Dyno<\n { gsplat: typeof Gsplat },\n { gsplat: typeof Gsplat }\n>;\n\nexport type CovSplatModifier = Dyno<\n { covsplat: typeof CovSplat },\n { covsplat: typeof CovSplat }\n>;\n\n// A SplatModifier is a utility class to apply a GsplatModifier to\n// a GsplatGenerator pipeline, caching the combined result for efficiency.\n\nexport class SplatModifier {\n modifier: GsplatModifier;\n cache: Map;\n\n constructor(modifier: GsplatModifier) {\n this.modifier = modifier;\n this.cache = new Map();\n }\n\n apply(generator: GsplatGenerator): GsplatGenerator {\n let modified = this.cache.get(generator);\n if (!modified) {\n modified = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n const { gsplat } = generator.apply({ index });\n return this.modifier.apply({ gsplat });\n },\n );\n this.cache.set(generator, modified);\n }\n return modified;\n }\n}\n\n// A SplatTransformer is a utility class to apply a transform to a Gsplat\n// via a scale, rotation, and translation. Scale is a single float because\n// anisotropic scaling of Gsplats is not supported.\n\nexport class SplatTransformer {\n scale: DynoFloat;\n rotate: DynoVec4;\n translate: DynoVec3;\n\n // Create the dyno uniforms that parameterize the transform, setting them\n // to initial values that are different from any valid transform.\n constructor() {\n this.scale = new DynoFloat({ value: Number.NEGATIVE_INFINITY });\n this.rotate = new DynoVec4({\n value: new THREE.Quaternion(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n this.translate = new DynoVec3({\n value: new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformPos(position, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformDir(dir, {\n rotate: this.rotate,\n });\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyGsplat(gsplat: DynoVal): DynoVal {\n return transformGsplat(gsplat, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const scale = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const position = new THREE.Vector3();\n transform.decompose(position, quaternion, scale);\n const newScale = (scale.x + scale.y + scale.z) / 3;\n\n let updated = false;\n if (newScale !== this.scale.value) {\n this.scale.value = newScale;\n updated = true;\n }\n if (!position.equals(this.translate.value)) {\n this.translate.value.copy(position);\n updated = true;\n }\n if (!quaternion.equals(this.rotate.value)) {\n this.rotate.value.copy(quaternion);\n updated = true;\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\nexport class CovSplatTransformer {\n basis: DynoMat3<\"basis\", THREE.Matrix3>;\n offset: DynoVec3;\n\n constructor() {\n this.basis = new DynoMat3({ value: new THREE.Matrix3() });\n this.offset = new DynoVec3({ value: new THREE.Vector3() });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n const rebased = mul(this.basis, position);\n return add(rebased, this.offset);\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return mul(this.basis, dir);\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyCovSplat(covsplat: DynoVal): DynoVal {\n return new Dyno({\n inTypes: { covsplat: CovSplat, basis: \"mat3\", offset: \"vec3\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covsplat, basis: this.basis, offset: this.offset },\n statements: ({ inputs, outputs }) => {\n const { covsplat, basis, offset } = inputs;\n if (!covsplat || !basis || !offset) {\n return [`${outputs.covsplat}.flags = 0u;`];\n }\n return unindentLines(`\n ${outputs.covsplat}.flags = 0u;\n if (isCovSplatActive(${covsplat}.flags)) {\n ${outputs.covsplat}.flags = ${covsplat}.flags;\n ${outputs.covsplat}.index = ${covsplat}.index;\n ${outputs.covsplat}.rgba = ${covsplat}.rgba;\n\n ${outputs.covsplat}.center = ${basis} * ${covsplat}.center + ${offset};\n \n mat3 cov = mat3(\n ${covsplat}.xxyyzz.x, ${covsplat}.xyxzyz.x, ${covsplat}.xyxzyz.y,\n ${covsplat}.xyxzyz.x, ${covsplat}.xxyyzz.y, ${covsplat}.xyxzyz.z,\n ${covsplat}.xyxzyz.y, ${covsplat}.xyxzyz.z, ${covsplat}.xxyyzz.z\n );\n cov = ${basis} * cov * transpose(${basis});\n ${outputs.covsplat}.xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n ${outputs.covsplat}.xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n `);\n },\n }).outputs.covsplat;\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const basis = new THREE.Matrix3().setFromMatrix4(transform);\n const offset = new THREE.Vector3().setFromMatrixColumn(transform, 3);\n\n const updated =\n !basis.equals(this.basis.value) || !offset.equals(this.offset.value);\n if (updated) {\n this.basis.value.copy(basis);\n this.offset.value.copy(offset);\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\n// SplatGenerator is an Object3D that can be placed anywhere in the scene\n// to generate Gsplats into the world for SparkRenderer. All Gsplats from\n// SplatGenerators across the scene will be accumulated into a single\n// SplatAccumulator, which are sorted and rendered together.\n//\n// Each SplatGenerator has two main properties:\n// - numSplats: the number of Gsplats to generate\n// - generator: a GsplatGenerator dyno program that maps a splat index\n// to a Gsplat's properties\n// Each of these properties can be changed at anytime, however changing\n// numSplats means we no longer have a correspondence between Gsplats\n// in successive frames, meaning we can't reuse the previous Gsplat sort\n// order. Similarly, changing the generator requires re-generating the\n// shader program, which will trigger a GPU shader compilation the first\n// time (possibly a perceptible \"hickup\" in the framerate) but is cached\n// subsequence times if the generator is the same as one that was used previously.\n//\n// A SplatGenerator also has a custom frameUpdate function that is called\n// on each execution, allowing you to update uniforms or other parameters that\n// affect the generation. If the Gsplats are changed, you must call\n// updateVersion() (alternatively, set needsUpdate to true) to trigger a\n// re-generation of the Gsplats for this SplatGenerator.\n\nexport interface FrameUpdateContext {\n renderer: THREE.WebGLRenderer;\n object: SplatGenerator;\n time: number;\n deltaTime: number;\n viewToWorld: THREE.Matrix4;\n camera?: THREE.Camera;\n renderSize?: THREE.Vector2;\n globalEdits: SplatEdit[];\n lodIndices?: { numSplats: number; texture: THREE.DataTexture };\n}\n\nexport class SplatGenerator extends THREE.Object3D {\n numSplats: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n generatorError?: unknown;\n covGeneratorError?: unknown;\n frameUpdate?: (context: FrameUpdateContext) => void;\n version: number;\n mappingVersion: number;\n\n constructor({\n numSplats,\n generator,\n covGenerator,\n construct,\n update,\n }: {\n numSplats?: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n construct?: (object: SplatGenerator) => {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n numSplats?: number;\n frameUpdate?: (context: FrameUpdateContext) => void;\n };\n update?: (context: FrameUpdateContext) => void;\n }) {\n super();\n\n this.numSplats = numSplats ?? 0;\n this.generator = generator;\n this.covGenerator = covGenerator;\n this.frameUpdate = update;\n this.version = 0;\n this.mappingVersion = 0;\n\n if (construct) {\n const constructed = construct(this);\n // If we returned something, update our properties\n Object.assign(this, constructed);\n }\n }\n\n updateVersion() {\n this.version += 1;\n }\n\n updateMappingVersion() {\n this.mappingVersion += 1;\n this.version += 1;\n }\n\n set needsUpdate(value: boolean) {\n if (value) {\n this.updateVersion();\n }\n }\n}\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\nimport { Readback } from \"./Readback\";\nimport { SplatEdit } from \"./SplatEdit\";\nimport {\n type CovSplatGenerator,\n type GsplatGenerator,\n SplatGenerator,\n} from \"./SplatGenerator\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines\";\nimport {\n type CovSplat,\n Dyno,\n DynoBool,\n DynoProgram,\n DynoProgramTemplate,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n combineCovSplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n gsplatToCovSplat,\n mul,\n outputCovSplat,\n outputCovSplatDepth,\n outputExtCovSplat,\n outputExtendedSplat,\n outputPackedSplat,\n outputSplatDepth,\n splitCovSplat,\n splitGsplat,\n sub,\n unindentLines,\n} from \"./dyno\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, threeMrtArray } from \"./utils\";\n\n// A GeneratorMapping describes a Gsplat range that was generated, including\n// which generator and its version number.\nexport type GeneratorMapping = {\n node: SplatGenerator;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n version: number;\n mappingVersion?: number;\n base: number;\n count: number;\n};\n\nexport class SplatAccumulator {\n time = 0;\n deltaTime = 0;\n viewToWorld = new THREE.Matrix4();\n viewOrigin = new THREE.Vector3();\n viewDirection = new THREE.Vector3();\n static viewCenterUniform = new DynoVec3({ value: new THREE.Vector3() });\n static viewDirUniform = new DynoVec3({ value: new THREE.Vector3() });\n static sortRadialUniform = new DynoBool({ value: true });\n maxSplats = 0;\n numSplats = 0;\n target: THREE.WebGLArrayRenderTarget | null = null;\n mapping: GeneratorMapping[] = [];\n version = -1;\n mappingVersion = -1;\n extSplats: boolean;\n covSplats: boolean;\n readback: Readback | null = null;\n readbackSplats: DynoUsampler2DArray<\"extSplats\", THREE.DataArrayTexture>[] =\n [];\n\n constructor({\n extSplats,\n covSplats,\n }: { extSplats?: boolean; covSplats?: boolean } = {}) {\n if (!threeMrtArray) {\n throw new Error(\"Spark requires THREE.js r179 or above\");\n }\n this.extSplats = extSplats ?? true;\n this.covSplats = covSplats ?? false;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = null;\n }\n }\n\n // Returns a THREE.DataArrayTexture representing the NewSplatAccumulator\n // content as 2 x Uint32x4 data array textures (2048 x 2048 x 2048 in size)\n getTextures(): THREE.DataArrayTexture[] {\n if (this.target) {\n return this.target.textures;\n }\n return SplatAccumulator.emptyTextures;\n }\n\n static emptyTexture = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTextures = (() => {\n return [SplatAccumulator.emptyTexture, SplatAccumulator.emptyTexture];\n })();\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Ensures our NewSplatAccumulator.target render target has enough space\n // to generate maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate({ maxSplats }: { maxSplats: number }) {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n this.dispose();\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n format: THREE.RGBAIntegerFormat,\n type: THREE.UnsignedIntType,\n });\n this.target.scissorTest = true;\n\n if (this.extSplats) {\n const target2 = this.target.texture.clone();\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target2, target3];\n } else {\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target3];\n }\n\n return true;\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(\n generator?: GsplatGenerator,\n covGenerator?: CovSplatGenerator,\n ) {\n const theGenerator = generator ?? covGenerator;\n if (!theGenerator) {\n throw new Error(\"Either generator or covGenerator must be provided\");\n }\n\n let program = SplatAccumulator.generatorProgram.get(theGenerator);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n if (generator) {\n generator.inputs.index = index;\n }\n if (covGenerator) {\n covGenerator.inputs.index = index;\n }\n\n if (this.extSplats) {\n if (!this.covSplats) {\n if (generator) {\n const output = outputExtendedSplat(generator.outputs.gsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n if (covGenerator) {\n const output = outputExtCovSplat(covGenerator.outputs.covsplat);\n roots.push(output);\n } else if (generator) {\n const covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n const output = outputExtCovSplat(covsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n }\n } else {\n if (!this.covSplats) {\n if (generator) {\n const centerSubView = sub(\n splitGsplat(generator.outputs.gsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n // Use expanded LoD opacity encoding\n const halfAlpha = mul(\n splitGsplat(generator.outputs.gsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n const gsplat = combineGsplat({\n gsplat: generator.outputs.gsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputPackedSplat(\n gsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n let covsplat: DynoVal;\n if (covGenerator) {\n covsplat = covGenerator.outputs.covsplat;\n } else if (generator) {\n covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n const centerSubView = sub(\n splitCovSplat(covsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n const halfAlpha = mul(\n splitCovSplat(covsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n covsplat = combineCovSplat({\n covsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputCovSplat(\n covsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n }\n if (!generator) {\n throw new Error(\"Generator must be provided\");\n }\n }\n if (generator) {\n const outputDepth = outputSplatDepth(\n generator.outputs.gsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n if (covGenerator) {\n const outputDepth = outputCovSplatDepth(\n covGenerator.outputs.covsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n return undefined;\n },\n );\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: {},\n template: this.extSplats\n ? SplatAccumulator.programExtTemplate\n : SplatAccumulator.programTemplate,\n // consoleLog: true,\n });\n\n SplatAccumulator.generatorProgram.set(theGenerator, program);\n }\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n\n const material = program.prepareMaterial();\n SplatAccumulator.fullScreenQuad.material = material;\n return { program, material };\n }\n\n static programExtTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4x2Vec4Template,\n );\n static programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Vec4Template,\n );\n static generatorProgram = new WeakMap<\n GsplatGenerator | CovSplatGenerator,\n DynoProgram\n >();\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n generate({\n generator,\n covGenerator,\n base,\n count,\n renderer,\n }: {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureGenerate\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(\n generator,\n covGenerator,\n );\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n SplatAccumulator.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial,\n renderSize,\n previous,\n lodInstances,\n }: {\n renderer: THREE.WebGLRenderer;\n scene: THREE.Scene;\n time: number;\n camera: THREE.Camera;\n sortRadial: boolean;\n renderSize: THREE.Vector2;\n previous: SplatAccumulator;\n lodInstances?: Map<\n SplatMesh,\n { numSplats: number; texture: THREE.DataTexture }\n >;\n }) {\n this.viewToWorld.copy(camera.matrixWorld);\n camera.getWorldPosition(this.viewOrigin);\n camera.getWorldDirection(this.viewDirection);\n SplatAccumulator.viewCenterUniform.value.copy(this.viewOrigin);\n SplatAccumulator.viewDirUniform.value.copy(this.viewDirection);\n SplatAccumulator.sortRadialUniform.value = sortRadial;\n\n this.time = time;\n this.deltaTime = time - previous.time;\n\n const allGenerators: SplatGenerator[] = [];\n scene.traverse((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n allGenerators.push(node);\n }\n }\n });\n\n const globalEditsSet = new Set();\n scene.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n let ancestor = node.parent;\n while (ancestor != null && !(ancestor instanceof SplatMesh)) {\n ancestor = ancestor.parent;\n }\n if (ancestor == null) {\n // Not part of a SplatMesh so it's a global edit\n globalEditsSet.add(node);\n }\n }\n });\n const globalEdits = Array.from(globalEditsSet);\n\n for (const object of allGenerators) {\n try {\n object.frameUpdate?.({\n renderer,\n object,\n time: this.time,\n deltaTime: this.deltaTime,\n viewToWorld: this.viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices:\n lodInstances && object instanceof SplatMesh\n ? lodInstances.get(object)\n : undefined,\n });\n } catch (error) {\n console.error(\"frameUpdate error\", error);\n object.generator = undefined;\n object.covGenerator = undefined;\n object.generatorError = error;\n }\n }\n\n const visibleGenerators: SplatGenerator[] = [];\n scene.traverseVisible((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n visibleGenerators.push(node);\n }\n }\n });\n\n const splatCounts = visibleGenerators.map(\n (generator) => generator.numSplats,\n );\n const { maxSplats, mapping: baseCounts } =\n this.generateMapping(splatCounts);\n\n const previousMappings = previous.mapping.reduce((mappings, mapping) => {\n mappings.set(mapping.node, mapping);\n return mappings;\n }, new Map());\n\n this.mapping = [];\n this.numSplats = 0;\n\n baseCounts.forEach(({ base, count }, index) => {\n const node = visibleGenerators[index];\n const previousNode = previousMappings.get(node);\n if (previousNode && previousNode.count !== node.numSplats) {\n node.updateMappingVersion();\n }\n\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n const { version, mappingVersion } = node;\n this.mapping.push({\n node,\n generator,\n covGenerator,\n version,\n mappingVersion,\n base,\n count,\n });\n this.numSplats = Math.max(this.numSplats, base + count);\n }\n });\n const { splatsUpdated, mappingUpdated } = previous.checkVersions(\n this.mapping,\n );\n this.version = previous.version + (splatsUpdated ? 1 : 0);\n this.mappingVersion = previous.mappingVersion + (mappingUpdated ? 1 : 0);\n\n return {\n sameMapping: !mappingUpdated,\n version: this.version,\n mappingVersion: this.mappingVersion,\n visibleGenerators,\n generate: () => {\n this.ensureGenerate({ maxSplats });\n\n for (const { node, base, count } of this.mapping) {\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n this.generate({ generator, covGenerator, base, count, renderer });\n }\n }\n },\n readback: async () => {\n const textures = this.getTextures();\n if (this.readbackSplats.length === 0) {\n this.readbackSplats = [\n new DynoUsampler2DArray({ value: textures[0], key: \"extSplats\" }),\n new DynoUsampler2DArray({ value: textures[1], key: \"extSplats\" }),\n ];\n }\n this.readbackSplats[0].value = textures[0];\n this.readbackSplats[1].value = textures[1];\n\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n const readback = this.readback;\n const words = this.extSplats ? 8 : 4;\n const array = readback.ensureBuffer(\n this.numSplats * words,\n new Uint32Array(0),\n );\n\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n const rgba8 = new Dyno({\n inTypes: {\n index: \"int\",\n extSplats1: \"usampler2DArray\",\n extSplats2: \"usampler2DArray\",\n },\n outTypes: { rgba8: \"vec4\" },\n inputs: {\n index,\n extSplats1: this.readbackSplats[0],\n extSplats2: this.readbackSplats[1],\n },\n statements: ({ inputs, outputs }) => {\n if (this.extSplats) {\n return unindentLines(`\n int indexDiv8 = ${inputs.index} >> 3;\n ivec3 coord = splatTexCoord(indexDiv8);\n uvec4 packedData;\n if ((${inputs.index} & 4) == 0) {\n packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n } else {\n packedData = texelFetch(${inputs.extSplats2}, coord, 0);\n }\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n }\n return unindentLines(`\n int indexDiv4 = ${inputs.index} >> 2;\n ivec3 coord = splatTexCoord(indexDiv4);\n uvec4 packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n },\n }).outputs.rgba8;\n return { rgba8 };\n },\n );\n\n return await readback.renderReadback({\n reader,\n count: this.numSplats * words,\n renderer,\n readback: array,\n });\n },\n };\n }\n\n // Check if this accumulator has exactly the same generator mapping as\n // the previous one. If so, we can reuse the Gsplat sort order.\n checkVersions(otherMapping: GeneratorMapping[]) {\n if (this.mapping.length !== otherMapping.length) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const mappingUpdated = this.mapping.some((item, i) => {\n const other = otherMapping[i];\n return (\n item.node !== other.node ||\n item.base !== other.base ||\n item.count !== other.count ||\n item.mappingVersion !== other.mappingVersion\n );\n });\n if (mappingUpdated) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const splatsUpdated = this.mapping.some((item, i) => {\n return item.version !== otherMapping[i].version;\n });\n return { splatsUpdated, mappingUpdated };\n }\n}\n","import * as THREE from \"three\";\n\n// SplatGeometry is an internal class used by SparkRenderer to render a collection\n// of Gsplats in a single draw call by extending THREE.InstancedBufferGeometry.\n// Each Gsplat is drawn as two triangles, with the order of the Gsplats determined\n// by a texture lookup via gl_InstanceID.\n\nexport class SplatGeometry extends THREE.InstancedBufferGeometry {\n constructor() {\n super();\n this.setAttribute(\"position\", new THREE.BufferAttribute(QUAD_VERTICES, 3));\n this.setIndex(new THREE.BufferAttribute(QUAD_INDICES, 1));\n }\n}\n\n// Each instance draws to triangles covering a quad over coords (-1,-1,0)..(1,1,0)\nconst QUAD_VERTICES = new Float32Array([\n -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0,\n]);\n\nconst QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]);\n","import * as THREE from \"three\";\nimport {\n ExtSplats,\n PackedSplats,\n PagedSplats,\n Readback,\n type SplatGenerator,\n SplatMesh,\n SplatPager,\n} from \".\";\nimport { SplatAccumulator } from \"./SplatAccumulator\";\nimport { SplatGeometry } from \"./SplatGeometry\";\nimport { SplatWorker } from \"./SplatWorker\";\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { getShaders } from \"./shaders\";\nimport {\n cloneClock,\n isAndroid,\n isIos,\n isMobile,\n isOculus,\n isVisionPro,\n} from \"./utils\";\n\nexport interface SparkRendererOptions {\n /**\n * Pass in your THREE.WebGLRenderer instance so Spark can perform work\n * outside the usual render loop. Should be created with antialias: false\n * (default setting) as WebGL anti-aliasing doesn't improve Gaussian Splatting\n * rendering and significantly reduces performance.\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Callback function to be called when SparkRenderer needs to re-render,\n * for example when splat sort order or LoD updates complete.\n */\n onDirty?: () => void;\n /**\n * Whether to use premultiplied alpha when accumulating splat RGB\n * @default true\n */\n premultipliedAlpha?: boolean;\n /**\n * Whether to encode Gsplat with linear RGB (for environment mapping)\n * @default false\n */\n encodeLinear?: boolean;\n /**\n * Pass in a THREE.Clock to synchronize time-based effects across different\n * systems. Alternatively, you can set the property time directly.\n * (default: new THREE.Clock)\n */\n clock?: THREE.Clock;\n /**\n * Controls whether to check and automatically update Gsplat collection\n * each frame render.\n * @default true\n */\n autoUpdate?: boolean;\n /**\n * Controls whether to update the Gsplats before or after rendering. For WebXR\n * this is set to false in order to complete rendering as soon as possible.\n * @default true (if not WebXR)\n */\n preUpdate?: boolean;\n /**\n * Maximum standard deviations from the center to render Gaussians. Values\n * Math.sqrt(4)..Math.sqrt(9) produce acceptable results and can be tweaked for\n * performance.\n * @default Math.sqrt(8)\n */\n maxStdDev?: number;\n /*\n **\n * Minimum pixel radius for splat rendering.\n * @default 0.0\n */\n minPixelRadius?: number;\n /**\n * Maximum pixel radius for splat rendering.\n * @default 512.0\n */\n maxPixelRadius?: number;\n /**\n * Whether to use extended Gsplat encoding for intermediary accumulator splats.\n * @default false\n */\n accumExtSplats?: boolean;\n /**\n * Whether to use covariance Gsplat encoding for intermediary splats.\n * @default false\n */\n covSplats?: boolean;\n /**\n * Minimum alpha value for splat rendering.\n * @default 0.5 * (1.0 / 255.0)\n */\n minAlpha?: number;\n /**\n * Enable 2D Gaussian splatting rendering ability. When this mode is enabled,\n * any scale x/y/z component that is exactly 0 (minimum quantized value) results\n * in the other two non-0 axis being interpreted as an oriented 2D Gaussian Splat,\n * rather instead of the usual projected 3DGS Z-slice. When reading PLY files,\n * scale values less than e^-30 will be interpreted as 0.\n * @default false\n */\n enable2DGS?: boolean;\n /**\n * Enable alternative ray-splat max response evaluation, used by 3DGUT (unscented transform),\n * 3DGRT, and HTGS.\n * @default false\n */\n // enableRayEval?: boolean;\n /**\n * Scalar value to add to 2D splat covariance diagonal, effectively blurring +\n * enlarging splats. In scenes trained without the Gsplat anti-aliasing tweak\n * this value was typically 0.3, but with anti-aliasing it is 0.0\n * @default 0.0\n */\n preBlurAmount?: number;\n /**\n * Scalar value to add to 2D splat covarianve diagonal, with opacity adjustment\n * to correctly account for \"blurring\" when anti-aliasing. Typically 0.3\n * (equivalent to approx 0.5 pixel radius) in scenes trained with anti-aliasing.\n */\n blurAmount?: number;\n /**\n * Depth-of-field distance to focal plane\n */\n focalDistance?: number;\n /**\n * Full-width angle of aperture opening (in radians), 0.0 to disable\n * @default 0.0\n */\n apertureAngle?: number;\n /**\n * Modulate Gaussian kernel falloff. 0 means \"no falloff, flat shading\",\n * while 1 is the normal Gaussian kernel.\n * @default 1.0\n */\n falloff?: number;\n /**\n * X/Y clipping boundary factor for Gsplat centers against view frustum.\n * 1.0 clips any centers that are exactly out of bounds, while 1.4 clips\n * centers that are 40% beyond the bounds.\n * @default 1.4\n */\n clipXY?: number;\n /**\n * Parameter to adjust projected splat scale calculation to match other renderers,\n * similar to the same parameter in the MKellogg 3DGS renderer. Higher values will\n * tend to sharpen the splats. A value 2.0 can be used to match the behavior of\n * the PlayCanvas renderer.\n * @default 1.0\n */\n focalAdjustment?: number;\n /**\n * Whether to sort splats radially (geometric distance) from the viewpoint (true)\n * or by Z-depth (false). Most scenes are trained with the Z-depth `sort `metric\n * and will render more accurately at certain viewpoints. However, radial sorting\n * is more stable under viewpoint rotations.\n * @default true\n */\n sortRadial?: boolean;\n /**\n * Minimum interval between sort calls in milliseconds.\n * @default 0\n */\n minSortIntervalMs?: number;\n /*\n * Flag to control whether LoD is enabled. @default true\n */\n enableLod?: boolean;\n /**\n * Whether to drive LOD updates (compute lodInstances, update pager, etc.).\n * Set to false to use LOD instances from another renderer without driving updates.\n * Only has effect if enableLod is true.\n * @default true (if enableLod is true)\n */\n enableDriveLod?: boolean;\n /**\n * Whether to enable page fetching for LoD.\n * @default true\n */\n enableLodFetching?: boolean;\n /**\n * Set the target # splats for LoD. If this isn't set then default base LoD splat\n * counts will apply: 500K-750K for WebXR, 1-1.5M for mobile, and 2.5M for desktop.\n * @default 500K-2500K depending on platform\n */\n lodSplatCount?: number;\n /**\n * Scale factor for target # splats for LoD. 2.0 means 2x the base LoD splat count.\n * This is the easiest LoD parameter to adjust and will scale detail appropriately\n * for the platform.\n * @default 1.0\n */\n lodSplatScale?: number;\n /**\n * Determines the minimum screen pixel size of LoD splats. The default 1.0 means\n * the splat LoD tree will pick splats that are no smaller than 1 pixel in size.\n * Setting this to a higher value as high as 5.0 will often be indistinguishable\n * but will avoid wasting rendering capacity on tiny splats.\n * @default 1.0\n */\n lodRenderScale?: number;\n /**\n * Inflate LoD splats to ensure opacity stays <= 1.0, producing a softer appearance.\n * @default false\n */\n lodInflate?: boolean;\n /**\n * Whether to use extended Gsplat encoding for paged splats, useful for eliminating\n * quantization artifacts from splat scenes with large internal position coordinates.\n * @default false\n */\n pagedExtSplats?: boolean;\n /**\n * Allocation size of paged splats. This must be a multiple of the page size (65536).\n * @default 16777216 (256 * 65536) for desktop, 6291456 for iOS, 8,388,608 for other mobile\n */\n maxPagedSplats?: number;\n /**\n * Number of parallel chunk fetchers for LoD. These are run within a shared pool\n * of 4 background WebWorker threads, so setting it above 4 will not have any\n * effect. Setting it 3 leaves one spare worker for other loading/decoding tasks.\n * @default 3\n */\n numLodFetchers?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with no foveation applied (full resolution, foveate=1.0). Set to 0 to disable.\n * @default 90.0\n */\n coneFov0?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with reduced resolution specified by `coneFoveate`. Foveation will be applied\n * smoothly from 1.0 down to `coneFoveate` as you move outward from\n * `coneFov0` to `coneFov`. Set to 0 to disable.\n * @default 120.0\n */\n coneFov?: number;\n /**\n * Foveation scale to apply to LoD splats at the edge of coneFov. Foveation will\n * be applied smoothly from `coneFoveate` down to `behindFoveate` as you move\n * outward from `coneFov` to 180 degrees (behind the viewer).\n * @default 0.4\n */\n coneFoveate?: number;\n /**\n * Foveation scale to apply to LoD splats behind the viewer. Setting this to 0.1\n * for example will result in splats 10x larger than inside the viewing frustum.\n * @default 0.2\n */\n behindFoveate?: number;\n /**\n * How many LoD splats to generate for raycasting\n * @default 10000-25000 iff default canvas target is used\n */\n lodRaycast?: number;\n lodRaycastIntervalMs?: number;\n /**\n * Configures an offline render target for the SparkRenderer (as opposed to\n * rendering to the canvas). This is useful for rendering environment maps,\n * additional viewpoints, or video frame rendering.\n * @default undefined\n */\n target?: {\n /**\n * Width of the render target in pixels.\n */\n width: number;\n /**\n * Height of the render target in pixels.\n */\n height: number;\n /**\n * If you want to be able to render a scene that depends on this target's\n * output (for example, a recursive viewport), set this to true to enable\n * double buffering.\n * @default false\n */\n doubleBuffer?: boolean;\n /**\n * Super-sampling factor for the render target. Values 1-4 are supported.\n * Note that re-sampling back down to .width x .height is done on the CPU\n * with simple averaging only when calling readTarget().\n * @default 1\n */\n superXY?: number;\n } & THREE.RenderTargetOptions;\n /**\n * Extra uniform values to pass to the shader.\n * @default undefined = no extra uniforms\n */\n extraUniforms?: Record;\n /**\n * Replace the default `splatVertex.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatVertex.glsl` shader\n */\n vertexShader?: string;\n /**\n * Replace the default `splatFragment.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatFragment.glsl` shader\n */\n fragmentShader?: string;\n /**\n * Set the splat shader material to be transparent which determines if the\n * splats are rendered during the first opaque THREE.js render pass or the\n * second transparent render pass.\n * @default undefined = true\n */\n transparent?: boolean;\n /**\n * Set the splat shader material to enable depth testing which determines if the\n * splats respect the Z depth buffer and blend with other opaque objects in the scene.\n * @default undefined = true\n */\n depthTest?: boolean;\n /**\n * Set the splat shader material to enable depth writing which determines if the\n * splats write to the Z depth buffer. Note that enabling this may produce\n * undesirable results because most of the Gsplat is transparent.\n * @default undefined = false\n */\n depthWrite?: boolean;\n}\n\nexport class SparkRenderer extends THREE.Mesh {\n readonly renderer: THREE.WebGLRenderer;\n readonly material: THREE.ShaderMaterial;\n readonly uniforms: ReturnType;\n\n autoUpdate: boolean;\n preUpdate: boolean;\n static sparkOverride?: SparkRenderer;\n\n renderSize = new THREE.Vector2();\n maxStdDev: number;\n minPixelRadius: number;\n maxPixelRadius: number;\n accumExtSplats: boolean;\n covSplats: boolean;\n minAlpha: number;\n enable2DGS: boolean;\n // enableRayEval: boolean;\n preBlurAmount: number;\n blurAmount: number;\n focalDistance: number;\n apertureAngle: number;\n falloff: number;\n clipXY: number;\n focalAdjustment: number;\n encodeLinear: boolean;\n\n sortRadial: boolean;\n minSortIntervalMs: number;\n\n clock: THREE.Clock;\n time?: number;\n lastFrame = -1;\n updateTimeoutId = -1;\n onDirty?: () => void;\n dirty: boolean;\n\n orderingTexture: THREE.DataTexture | null = null;\n maxSplats = 0;\n activeSplats = 0;\n\n display: SplatAccumulator;\n current: SplatAccumulator;\n accumulators: SplatAccumulator[] = [];\n\n sorting = false;\n sortDirty = false;\n lastSortTime = 0;\n sortWorker: SplatWorker | null = null;\n sortTimeoutId = -1;\n sortedCenter = new THREE.Vector3().setScalar(Number.NEGATIVE_INFINITY);\n sortedDir = new THREE.Vector3().setScalar(0);\n readback32 = new Uint32Array(0);\n\n enableLod: boolean;\n enableDriveLod: boolean;\n enableLodFetching: boolean;\n lodSplatCount?: number;\n lodSplatScale: number;\n lodRenderScale: number;\n lodInflate: boolean;\n pagedExtSplats: boolean;\n maxPagedSplats: number;\n numLodFetchers: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n\n lodRaycast?: number;\n lodRaycastIntervalMs: number;\n lastLodRaycastTime = 0;\n\n lodWorker: SplatWorker | null = null;\n lodMeshes: { mesh: SplatMesh; version: number }[] = [];\n lodDirty = false;\n lodIds: Map<\n PackedSplats | ExtSplats | PagedSplats,\n { lodId: number; lastTouched: number; rootPage?: number }\n > = new Map();\n lodIdToSplats: Map =\n new Map();\n lodInitQueue: (PackedSplats | ExtSplats | PagedSplats)[] = [];\n lastLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n currentLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n lodPosOverride?: THREE.Vector3;\n lodQuatOverride?: THREE.Quaternion;\n lodInstances: Map<\n SplatMesh,\n {\n lodId: number;\n numSplats: number;\n indices: Uint32Array;\n texture: THREE.DataTexture;\n }\n > = new Map();\n lodUpdates: {\n lodId: number;\n pageBase: number;\n chunkBase: number;\n count: number;\n lodTreeData?: Uint32Array;\n }[] = [];\n lastTraverseTime = 0;\n lastPixelLimit?: number;\n\n pager?: SplatPager;\n pagerId = 0;\n // prefetchCameras: THREE.Camera[] = [];\n // prefetchLodScale = 1.0;\n // prefetchMeshesCache: SplatMesh[] = [];\n // prefetchMeshesCacheScene?: THREE.Scene;\n\n target?: THREE.WebGLRenderTarget;\n backTarget?: THREE.WebGLRenderTarget;\n superPixels?: Uint8Array;\n targetPixels?: Uint8Array;\n superXY = 1;\n\n flushAfterGenerate = false;\n flushAfterRead = false;\n readPause = 1;\n sortPause = 0;\n sortDelay = 0;\n\n constructor(options: SparkRendererOptions) {\n if (!options) {\n throw new Error(\"SparkRenderer options are required\");\n }\n if (!options.renderer) {\n throw new Error(\"renderer is required in SparkRenderer options\");\n }\n\n const uniforms = SparkRenderer.makeUniforms();\n Object.assign(uniforms, options.extraUniforms ?? {});\n\n const shaders = getShaders();\n const premultipliedAlpha = options.premultipliedAlpha ?? true;\n const geometry = new SplatGeometry();\n const material = new THREE.ShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: options.vertexShader ?? shaders.splatVertex,\n fragmentShader: options.fragmentShader ?? shaders.splatFragment,\n uniforms,\n premultipliedAlpha,\n transparent: options.transparent ?? true,\n depthTest: options.depthTest ?? true,\n depthWrite: options.depthWrite ?? false,\n side: THREE.DoubleSide,\n allowOverride: false,\n });\n\n super(geometry, material);\n this.material = material;\n this.uniforms = uniforms;\n // Disable frustum culling because we want to always draw them all\n // and cull Gsplats individually in the shader\n this.frustumCulled = false;\n\n // By default SparkRenderer will only render for layer 0\n // this.layers.enableAll();\n\n // sparkRendererInstance = this;\n this.renderer = options.renderer;\n this.onDirty = options.onDirty;\n this.dirty = true;\n this.autoUpdate = options.autoUpdate ?? true;\n this.preUpdate = options.preUpdate ?? true;\n\n this.maxStdDev = options.maxStdDev ?? Math.sqrt(8.0);\n this.minPixelRadius = options.minPixelRadius ?? 0.0; //1.6;\n this.maxPixelRadius = options.maxPixelRadius ?? 512.0;\n this.accumExtSplats = options.accumExtSplats ?? false;\n this.covSplats = options.covSplats ?? false;\n this.minAlpha = options.minAlpha ?? 0.5 * (1.0 / 255.0);\n this.enable2DGS = options.enable2DGS ?? false;\n // this.enableRayEval = options.enableRayEval ?? false;\n this.preBlurAmount = options.preBlurAmount ?? 0.0;\n this.blurAmount = options.blurAmount ?? 0.3;\n this.focalDistance = options.focalDistance ?? 0.0;\n this.apertureAngle = options.apertureAngle ?? 0.0;\n this.falloff = options.falloff ?? 1.0;\n this.clipXY = options.clipXY ?? 1.4;\n this.focalAdjustment = options.focalAdjustment ?? 1.0;\n this.encodeLinear = options.encodeLinear ?? false;\n\n this.sortRadial = options.sortRadial ?? true;\n this.minSortIntervalMs = options.minSortIntervalMs ?? 0;\n\n this.enableLod = options.enableLod ?? true;\n // enableDriveLod defaults to true if enableLod is true, false otherwise\n this.enableDriveLod = options.enableDriveLod ?? this.enableLod;\n this.enableLodFetching = options.enableLodFetching ?? true;\n this.lodSplatCount = options.lodSplatCount;\n this.lodSplatScale = options.lodSplatScale ?? 1.0;\n this.lodRenderScale = options.lodRenderScale ?? 1.0;\n this.lodInflate = options.lodInflate ?? false;\n this.pagedExtSplats = options.pagedExtSplats ?? false;\n const defaultPages = isMobile() ? (isIos() ? 96 : 128) : 256;\n this.maxPagedSplats = options.maxPagedSplats ?? defaultPages * 65536;\n this.numLodFetchers = options.numLodFetchers ?? 3;\n this.behindFoveate = options.behindFoveate ?? 0.2;\n this.coneFov0 = options.coneFov0 ?? 90.0;\n this.coneFov = options.coneFov ?? 120.0;\n this.coneFoveate = options.coneFoveate ?? 0.4;\n\n this.lodRaycast =\n options.lodRaycast === undefined\n ? isMobile()\n ? 10000\n : 25000\n : options.lodRaycast;\n this.lodRaycastIntervalMs = options.lodRaycastIntervalMs ?? 500;\n\n this.clock = options.clock ? cloneClock(options.clock) : new THREE.Clock();\n\n const accumulatorOptions = {\n extSplats: this.accumExtSplats,\n covSplats: this.covSplats,\n };\n this.display = new SplatAccumulator(accumulatorOptions);\n this.current = this.display;\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n\n if (options.target) {\n const {\n width,\n height,\n doubleBuffer,\n superXY: origSuperXY,\n ...origTargetOptions\n } = options.target;\n const superXY = Math.max(1, Math.min(4, origSuperXY ?? 1));\n if (width * superXY > 8192 || height * superXY > 8192) {\n throw new Error(\"Target size too large\");\n }\n this.superXY = superXY;\n\n const superWidth = width * superXY;\n const superHeight = height * superXY;\n const targetOptions: THREE.RenderTargetOptions = {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n ...origTargetOptions,\n };\n\n this.target = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n if (doubleBuffer) {\n this.backTarget = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n }\n this.encodeLinear = options.encodeLinear ?? true;\n }\n }\n\n static makeUniforms() {\n const uniforms = {\n // // number of active splats to render\n // numSplats: { value: 0 },\n // Size of render viewport in pixels\n renderSize: { value: new THREE.Vector2() },\n // Near and far plane distances\n near: { value: 0.1 },\n far: { value: 1000.0 },\n // SplatAccumulator to view transformation quaternion\n renderToViewQuat: { value: new THREE.Quaternion() },\n // SplatAccumulator to view transformation translation\n renderToViewPos: { value: new THREE.Vector3() },\n renderToViewBasis: { value: new THREE.Matrix3() },\n renderToViewOffset: { value: new THREE.Vector3() },\n // Maximum distance (in stddevs) from Gsplat center to render\n maxStdDev: { value: 1.0 },\n // Minimum pixel radius for splat rendering\n minPixelRadius: { value: 0.0 },\n // Maximum pixel radius for splat rendering\n maxPixelRadius: { value: 512.0 },\n // Minimum alpha value for splat rendering\n minAlpha: { value: 0.5 * (1.0 / 255.0) },\n // Enable interpreting 0-thickness Gsplats as 2DGS\n enable2DGS: { value: false },\n // Enable ray-splat max response evaluation\n // enableRayEval: { value: false },\n // Inflate LoD splats so that opacity <= 1.0\n lodInflate: { value: false },\n // Add to projected 2D splat covariance diagonal (thickens and brightens)\n preBlurAmount: { value: 0.0 },\n // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing)\n blurAmount: { value: 0.3 },\n // Depth-of-field distance to focal plane\n focalDistance: { value: 0.0 },\n // Full-width angle of aperture opening (in radians)\n apertureAngle: { value: 0.0 },\n // Modulate Gaussian kernal falloff. 0 means \"no falloff, flat shading\",\n // 1 is normal e^-x^2 falloff.\n falloff: { value: 1.0 },\n // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds\n clipXY: { value: 1.4 },\n // Debug renderSize scale factor\n focalAdjustment: { value: 1.0 },\n // Whether to encode Gsplat with linear RGB (for environment mapping)\n encodeLinear: { value: false },\n // Back-to-front sort ordering of splat indices\n ordering: { type: \"t\", value: SparkRenderer.emptyOrdering },\n enableExtSplats: { value: false },\n enableCovSplats: { value: false },\n // Gsplat collection to render\n extSplats: { type: \"t\", value: SplatAccumulator.emptyTexture },\n extSplats2: { type: \"t\", value: SplatAccumulator.emptyTexture },\n // Time in seconds for time-based effects\n time: { value: 0 },\n // Delta time in seconds since last frame\n deltaTime: { value: 0 },\n // Debug flag that alternates each frame\n debugFlag: { value: false },\n };\n return uniforms;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n if (this.backTarget) {\n this.backTarget.dispose();\n this.backTarget = undefined;\n }\n if (this.orderingTexture) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n\n const accumulators = new Set();\n accumulators.add(this.display);\n accumulators.add(this.current);\n for (const accumulator of this.accumulators) {\n accumulators.add(accumulator);\n }\n for (const accumulator of accumulators) {\n accumulator.dispose();\n }\n\n const instances = this.lodInstances.values();\n this.lodInstances.clear();\n for (const instance of instances) {\n instance.texture.dispose();\n }\n\n if (this.sortWorker) {\n this.sortWorker.dispose();\n this.sortWorker = null;\n }\n if (this.lodWorker) {\n this.lodWorker.dispose();\n this.lodWorker = null;\n }\n if (this.pager) {\n this.pager.dispose();\n this.pager = undefined;\n }\n }\n\n setDirty() {\n if (!this.dirty) {\n this.dirty = true;\n this.onDirty?.();\n }\n }\n\n onBeforeRender(\n renderer: THREE.WebGLRenderer,\n scene: THREE.Scene,\n camera: THREE.Camera,\n ) {\n const spark = SparkRenderer.sparkOverride ?? this;\n\n const frame = renderer.info.render.frame;\n const isNewFrame = frame !== spark.lastFrame;\n spark.lastFrame = frame;\n\n if (spark.target) {\n spark.renderSize.set(spark.target.width, spark.target.height);\n } else {\n const renderSize = renderer.getDrawingBufferSize(spark.renderSize);\n if (renderer.xr.isPresenting) {\n if (renderSize.x === 1 && renderSize.y === 1) {\n // WebXR mode on Apple Vision Pro returns 1x1 when presenting.\n // Use a different means to figure out the render size.\n const baseLayer = renderer.xr.getSession()?.renderState.baseLayer;\n if (baseLayer) {\n renderSize.x = baseLayer.framebufferWidth;\n renderSize.y = baseLayer.framebufferHeight;\n }\n }\n }\n }\n this.uniforms.renderSize.value.copy(spark.renderSize);\n\n const typedCamera = camera as\n | THREE.PerspectiveCamera\n | THREE.OrthographicCamera;\n\n this.uniforms.near.value = typedCamera.near;\n this.uniforms.far.value = typedCamera.far;\n\n const geometry = this.geometry as SplatGeometry;\n geometry.instanceCount = spark.activeSplats;\n\n const accumToWorld = new THREE.Matrix4();\n if (!this.display.extSplats) {\n accumToWorld.makeTranslation(spark.display.viewOrigin);\n }\n const cameraToWorld = camera.matrixWorld.clone();\n const worldToCamera = cameraToWorld.invert();\n const accumToCamera = worldToCamera.multiply(accumToWorld);\n accumToCamera.decompose(\n this.uniforms.renderToViewPos.value,\n this.uniforms.renderToViewQuat.value,\n new THREE.Vector3(),\n );\n this.uniforms.renderToViewBasis.value.setFromMatrix4(accumToCamera);\n\n this.uniforms.maxStdDev.value = spark.maxStdDev;\n this.uniforms.minPixelRadius.value = spark.minPixelRadius;\n this.uniforms.maxPixelRadius.value = spark.maxPixelRadius;\n this.uniforms.minAlpha.value = spark.minAlpha;\n this.uniforms.enable2DGS.value = spark.enable2DGS;\n // this.uniforms.enableRayEval.value = spark.enableRayEval;\n this.uniforms.lodInflate.value = spark.lodInflate;\n this.uniforms.preBlurAmount.value = spark.preBlurAmount;\n this.uniforms.blurAmount.value = spark.blurAmount;\n this.uniforms.focalDistance.value = spark.focalDistance;\n this.uniforms.apertureAngle.value = spark.apertureAngle;\n this.uniforms.falloff.value = spark.falloff;\n this.uniforms.clipXY.value = spark.clipXY;\n this.uniforms.focalAdjustment.value = spark.focalAdjustment;\n this.uniforms.encodeLinear.value = spark.encodeLinear;\n\n this.uniforms.ordering.value =\n spark.orderingTexture ?? SparkRenderer.emptyOrdering;\n this.uniforms.enableExtSplats.value = this.display.extSplats;\n this.uniforms.enableCovSplats.value = this.display.covSplats;\n if (this.display.extSplats) {\n const extSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = extSplats[0];\n this.uniforms.extSplats2.value = extSplats[1];\n } else {\n const packedSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = packedSplats[0];\n this.uniforms.extSplats2.value = packedSplats[0];\n }\n\n this.uniforms.time.value = spark.display.time;\n this.uniforms.deltaTime.value = spark.display.deltaTime;\n // Alternating debug flag that can aid in visual debugging\n this.uniforms.debugFlag.value = (performance.now() / 1000.0) % 2.0 < 1.0;\n\n if (spark.autoUpdate && isNewFrame) {\n const preUpdate = spark.preUpdate && !renderer.xr.isPresenting;\n const useCamera = renderer.xr.isPresenting\n ? renderer.xr.getCamera()\n : camera;\n if (preUpdate) {\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n } else {\n if (spark.updateTimeoutId === -1) {\n spark.updateTimeoutId = setTimeout(() => {\n spark.updateTimeoutId = -1;\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n }, 1);\n }\n }\n }\n\n spark.dirty = false;\n }\n\n clearSplats() {\n this.activeSplats = 0;\n this.display.numSplats = 0;\n this.setDirty();\n }\n\n async update({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }) {\n await this.updateInternal({ scene, camera, autoUpdate: false });\n }\n\n // /**\n // * Provide additional cameras to prefetch paged splat chunks without\n // * affecting main LOD selection.\n // */\n // setPrefetchCameras(cameras?: THREE.Camera[], lodScaleMultiplier = 1.0) {\n // const next = cameras?.filter(Boolean) ?? [];\n // const sameCameras =\n // this.prefetchCameras.length === next.length &&\n // this.prefetchCameras.every((camera, index) => camera === next[index]);\n // if (sameCameras && this.prefetchLodScale === lodScaleMultiplier) {\n // return;\n // }\n // this.prefetchCameras = next;\n // this.prefetchLodScale = lodScaleMultiplier;\n // this.invalidatePrefetchCache();\n // }\n\n // /**\n // * Invalidate the prefetch meshes cache. Call this when SplatMeshes are\n // * added or removed from the scene.\n // */\n // invalidatePrefetchCache() {\n // this.prefetchMeshesCacheScene = undefined;\n // }\n\n private async updateInternal({\n scene,\n camera,\n autoUpdate,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n autoUpdate: boolean;\n }) {\n const renderer = this.renderer;\n const time = this.time ?? this.clock.getElapsedTime();\n\n const center = camera.getWorldPosition(new THREE.Vector3());\n const dir = camera.getWorldDirection(new THREE.Vector3());\n\n const viewChanged =\n center.distanceTo(this.sortedCenter) > 0.001 ||\n dir.dot(this.sortedDir) < 0.999;\n\n const next = this.accumulators.pop();\n if (!next) {\n // Should never happen\n throw new Error(\"No next accumulator\");\n }\n if (next === this.current) {\n // Should never happen\n throw new Error(\n \"Next accumulator is the same as the current accumulator\",\n );\n }\n const { version, mappingVersion, visibleGenerators, generate } =\n next.prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial: this.sortRadial ?? true,\n renderSize: this.renderSize,\n previous: this.current,\n lodInstances: this.enableLod ? this.lodInstances : undefined,\n });\n\n let doUpdate = true;\n const needsUpdate = viewChanged || version !== this.current.version;\n const mappingUpdated = mappingVersion !== this.display.mappingVersion;\n\n if (autoUpdate && !needsUpdate) {\n // Triggered by auto-update but no change\n doUpdate = false;\n }\n\n if (mappingUpdated && this.sorting) {\n // We need to be able to sort the splats because the mapping has changed.\n // Try again next time around.\n doUpdate = false;\n }\n\n if (!doUpdate) {\n // Restore unused accumulator to the free list\n this.accumulators.push(next);\n } else {\n generate();\n\n if (this.flushAfterGenerate) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n if (this.display.mappingVersion === next.mappingVersion) {\n // Same splat mapping so let's display it immediately and\n // reuse the sort order\n this.accumulators.push(this.display);\n this.display = next;\n } else {\n if (this.display !== this.current) {\n // The previous current is not being displayed, so replace it\n this.accumulators.push(this.current);\n }\n }\n\n this.current = next;\n this.sortDirty = true;\n this.setDirty();\n }\n\n if (this.enableDriveLod) {\n this.driveLod({ visibleGenerators, camera, scene });\n }\n await this.driveSort();\n }\n\n private async driveSort() {\n if (this.sorting || !this.sortDirty) {\n return;\n }\n\n if (this.sortTimeoutId !== -1) {\n clearTimeout(this.sortTimeoutId);\n this.sortTimeoutId = -1;\n }\n\n const now = performance.now();\n const nextSortTime = this.lastSortTime\n ? this.lastSortTime + this.minSortIntervalMs\n : now;\n if (now < nextSortTime) {\n this.sortTimeoutId = setTimeout(() => {\n this.sortTimeoutId = -1;\n this.driveSort();\n }, nextSortTime - now);\n return;\n }\n\n this.sorting = true;\n this.sortDirty = false;\n this.lastSortTime = now;\n\n if (this.readPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.readPause));\n }\n\n const current = this.current;\n\n this.sortedCenter.copy(current.viewOrigin);\n this.sortedDir.copy(current.viewDirection);\n\n const { numSplats, maxSplats } = current;\n const rows = Math.max(1, Math.ceil(maxSplats / 16384));\n const orderingMaxSplats = rows * 16384;\n this.maxSplats = Math.max(this.maxSplats, orderingMaxSplats);\n\n const ordering = new Uint32Array(this.maxSplats);\n const readback = Readback.ensureBuffer(maxSplats, this.readback32);\n this.readback32 = readback;\n\n await this.readbackDepth({\n current,\n renderer: this.renderer,\n numSplats,\n readback,\n });\n\n if (this.sortPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortPause));\n }\n\n if (!this.sortWorker) {\n this.sortWorker = new SplatWorker();\n }\n const result = (await this.sortWorker.call(\"sortSplats32\", {\n numSplats,\n readback,\n ordering,\n })) as {\n readback: Uint32Array;\n ordering: Uint32Array;\n activeSplats: number;\n };\n\n if (this.sortDelay > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortDelay));\n }\n\n this.readback32 = result.readback;\n\n this.activeSplats = result.activeSplats;\n\n if (this.orderingTexture) {\n if (rows > this.orderingTexture.image.height) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n }\n\n if (!this.orderingTexture) {\n // console.log(`Allocating orderingTexture: ${4096}x${rows}`);\n const orderingTexture = new THREE.DataTexture(\n result.ordering,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n orderingTexture.internalFormat = \"RGBA32UI\";\n orderingTexture.needsUpdate = true;\n this.orderingTexture = orderingTexture;\n } else {\n const renderer = this.renderer;\n const gl = renderer.getContext() as WebGL2RenderingContext;\n if (!renderer.properties.has(this.orderingTexture)) {\n this.orderingTexture.needsUpdate = true;\n } else {\n const props = renderer.properties.get(this.orderingTexture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"ordering texture not found\");\n }\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n // data,\n result.ordering,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n\n // console.log(`Sorted (${this.minSortIntervalMs}) ${numSplats} splats in ${(performance.now() - now).toFixed(0)} ms`);\n\n if (this.current.mappingVersion === current.mappingVersion) {\n if (this.current.mappingVersion !== this.display.mappingVersion) {\n this.accumulators.push(this.display);\n this.display = this.current;\n }\n }\n this.sorting = false;\n this.setDirty();\n\n this.driveSort();\n }\n\n private ensureLodWorker() {\n if (!this.lodWorker) {\n this.lodWorker = new SplatWorker();\n }\n return this.lodWorker;\n }\n\n defaultSplatTarget() {\n return isOculus()\n ? 500000\n : isVisionPro()\n ? 750000\n : isAndroid()\n ? 1000000\n : isIos()\n ? 1500000\n : 2500000;\n }\n\n private driveLod({\n visibleGenerators,\n camera,\n scene,\n }: {\n visibleGenerators: SplatGenerator[];\n camera: THREE.Camera;\n scene: THREE.Scene;\n }) {\n const defaultSplatCount = this.defaultSplatTarget();\n const splatCount = this.lodSplatCount ?? defaultSplatCount;\n const maxSplats = splatCount * this.lodSplatScale;\n\n let pixelScaleLimit = 0.0;\n if (camera instanceof THREE.PerspectiveCamera) {\n const tanYfov = Math.tan((0.5 * camera.fov * Math.PI) / 180);\n pixelScaleLimit = (2.0 * tanYfov) / this.renderSize.y;\n } else if (camera instanceof THREE.OrthographicCamera) {\n // Effective visible size after zoom\n const viewHeight = (camera.top - camera.bottom) / camera.zoom;\n const viewWidth = (camera.right - camera.left) / camera.zoom;\n // World/view units per pixel (constant with depth for ortho)\n const pxY = viewHeight / Math.max(1, this.renderSize.y);\n const pxX = viewWidth / Math.max(1, this.renderSize.x);\n pixelScaleLimit = Math.min(pxX, pxY);\n }\n\n pixelScaleLimit *= this.lodRenderScale;\n\n const viewPos = new THREE.Vector3();\n const viewQuat = new THREE.Quaternion();\n this.current.viewToWorld.decompose(viewPos, viewQuat, new THREE.Vector3());\n\n if (this.lodPosOverride) {\n viewPos.copy(this.lodPosOverride);\n }\n if (this.lodQuatOverride) {\n viewQuat.copy(this.lodQuatOverride).normalize();\n }\n\n if (this.lastLod) {\n if (\n this.lastLod.pixelScaleLimit !== pixelScaleLimit ||\n this.lastLod.maxSplats !== maxSplats\n ) {\n this.lodDirty = true;\n }\n\n const distance = viewPos.distanceTo(this.lastLod.pos);\n const distanceRamp = Math.max(0.0, 1.0 - distance / 1.0);\n const dot = viewQuat.dot(this.lastLod.quat);\n const quatRamp = Math.max(0.0, 1.0 - (1.0 - dot) / 0.01);\n const similarity = distanceRamp * quatRamp;\n if (similarity < 0.999) {\n this.lodDirty = true;\n }\n }\n\n const lodMeshes = !this.enableLod\n ? []\n : (visibleGenerators.filter((generator) => {\n return (\n generator instanceof SplatMesh &&\n (generator.packedSplats?.lodSplats ||\n generator.extSplats?.lodSplats ||\n generator.paged) &&\n generator.enableLod !== false\n );\n }) as SplatMesh[]);\n const hasPaged = lodMeshes.some((mesh) => mesh.paged);\n\n if (this.lodMeshes.length !== lodMeshes.length) {\n this.lodDirty = true;\n } else {\n if (\n lodMeshes.some(\n (m, i) =>\n m !== this.lodMeshes[i].mesh ||\n m.version > this.lodMeshes[i].version,\n )\n ) {\n this.lodDirty = true;\n }\n }\n\n this.lodMeshes = lodMeshes.map((mesh) => ({\n mesh,\n version: mesh.version + 1,\n }));\n\n // if (!this.lodDirty && lodMeshes.length === 0 && this.lodIds.size === 0) {\n // return;\n // }\n\n this.lodInitQueue = [];\n const now = performance.now();\n\n for (const mesh of lodMeshes) {\n const splats =\n mesh.packedSplats?.lodSplats ?? mesh.extSplats?.lodSplats ?? mesh.paged;\n if (splats) {\n const record = this.lodIds.get(splats);\n if (record) {\n record.lastTouched = now;\n } else {\n this.lodInitQueue.push(splats);\n }\n }\n }\n\n this.ensureLodWorker().tryExclusive(async (worker) => {\n if (hasPaged && !this.pager) {\n this.pager = new SplatPager({\n renderer: this.renderer,\n extSplats: this.pagedExtSplats,\n maxSplats: this.maxPagedSplats,\n numFetchers: this.numLodFetchers,\n });\n\n const { lodId } = (await worker.call(\"newLodTree\", {\n capacity: this.pager.maxSplats,\n })) as { lodId: number };\n this.pagerId = lodId;\n }\n\n // Assign pager to any new meshes that don't have one yet\n // (must run every frame, not just when pager is first created)\n if (this.pager) {\n for (const { mesh } of this.lodMeshes) {\n if (mesh.paged && !mesh.paged.pager) {\n mesh.paged.pager = this.pager;\n }\n }\n }\n\n if (this.lodInitQueue.length > 0) {\n const lodInitQueue = this.lodInitQueue;\n this.lodInitQueue = [];\n while (lodInitQueue.length > 0) {\n const splats = lodInitQueue.shift();\n if (splats) {\n await this.initLodTree(worker, splats);\n this.lodDirty = true;\n }\n }\n }\n\n if (this.pager) {\n const updates = this.pager.consumeLodTreeUpdates();\n\n for (const { splats, page, chunk, numSplats, lodTree } of updates) {\n const record = this.lodIds.get(splats);\n if (record) {\n if (lodTree && chunk === 0) {\n record.rootPage = page;\n }\n this.lodUpdates.push({\n lodId: record.lodId,\n pageBase: page * this.pager.pageSplats,\n chunkBase: chunk * this.pager.pageSplats,\n count: numSplats,\n lodTreeData: lodTree,\n });\n }\n }\n }\n\n if (this.lodUpdates.length > 0) {\n const lodUpdates = this.lodUpdates;\n this.lodUpdates = [];\n await worker.call(\"updateLodTrees\", { ranges: lodUpdates });\n this.lodDirty = true;\n }\n\n if (this.lodDirty) {\n const now = performance.now();\n const deltaPred = new THREE.Vector3();\n if (this.lastLod) {\n const deltaTime = Math.max(1, now - this.lastLod.timestamp);\n deltaPred\n .copy(viewPos)\n .sub(this.lastLod.pos)\n .multiplyScalar(this.lastTraverseTime / deltaTime);\n }\n this.lastLod = {\n pos: viewPos,\n quat: viewQuat,\n pixelScaleLimit,\n maxSplats,\n timestamp: now,\n };\n this.lodDirty = false;\n\n await this.updateLodInstances(\n worker,\n deltaPred,\n lodMeshes,\n maxSplats,\n viewPos,\n viewQuat,\n pixelScaleLimit,\n );\n this.currentLod = this.lastLod;\n this.setDirty();\n }\n\n await this.cleanupLodTrees(worker);\n });\n }\n\n private async initLodTree(\n worker: SplatWorker,\n splats: PackedSplats | ExtSplats | PagedSplats,\n ) {\n if (splats instanceof PackedSplats || splats instanceof ExtSplats) {\n const { lodId } = (await worker.call(\"initLodTree\", {\n numSplats: splats.numSplats ?? 0,\n lodTree: (splats.extra.lodTree as Uint32Array).slice(),\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** initLodTree\", lodId, splats.extra.lodTree, splats);\n } else {\n const { lodId } = (await worker.call(\"newSharedLodTree\", {\n lodId: this.pagerId,\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** newSharedLodTree\", lodId, this.pagerId, splats);\n }\n }\n\n private pageSizeWarning = false;\n\n private async updateLodInstances(\n worker: SplatWorker,\n deltaPred: THREE.Vector3,\n lodMeshes: SplatMesh[],\n maxSplats: number,\n viewPos: THREE.Vector3,\n viewQuat: THREE.Quaternion,\n pixelScaleLimit: number,\n ) {\n // Commented out because it makes LoDing less stable\n // viewPos.add(deltaPred);\n\n const uuidToMesh: Map = new Map();\n const cameraToWorld = new THREE.Matrix4().compose(\n viewPos,\n viewQuat,\n new THREE.Vector3().setScalar(1),\n );\n\n const instances = lodMeshes.reduce(\n (instances, mesh) => {\n uuidToMesh.set(mesh.uuid, mesh);\n const viewToObject = mesh.matrixWorld\n .clone()\n .invert()\n .multiply(cameraToWorld);\n\n const splats =\n mesh.packedSplats?.lodSplats ??\n mesh.extSplats?.lodSplats ??\n mesh.paged;\n if (!splats) {\n return instances;\n }\n const record = this.lodIds.get(splats);\n if (!record) {\n return instances;\n }\n\n if (this.pager && mesh.paged && record.rootPage === undefined) {\n return instances;\n }\n\n instances[mesh.uuid] = {\n instanceId: mesh.uuid,\n lodId: record.lodId,\n rootPage: record.rootPage,\n viewToObjectCols: viewToObject.elements,\n lodScale: mesh.lodScale,\n behindFoveate: mesh.behindFoveate ?? this.behindFoveate,\n coneFov0: mesh.coneFov0 ?? this.coneFov0,\n coneFov: mesh.coneFov ?? this.coneFov,\n coneFoveate: mesh.coneFoveate ?? this.coneFoveate,\n };\n return instances;\n },\n {} as Record<\n string,\n {\n instanceId: string;\n lodId: number;\n rootPage?: number;\n viewToObjectCols: number[];\n lodScale: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n }\n >,\n );\n\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit: this.lastPixelLimit,\n instances,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n chunks: [number, number][];\n pixelLimit?: number;\n };\n this.lastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices, chunks, pixelLimit } = result;\n this.lastPixelLimit = pixelLimit;\n const totalLodSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n // console.log(\n // `traverseLodTrees in ${this.lastTraverseTime} ms, pixelLimit=${pixelLimit}, totalLodSplats=${totalLodSplats}`,\n // );\n\n this.updateLodIndices(uuidToMesh, keyIndices);\n // console.log(\"chunks.length =\", chunks.length);\n\n if (this.pager) {\n this.pager.processUploads();\n\n const pagedMeshes = lodMeshes\n .map((mesh) => {\n if (!mesh.paged || !this.pager) {\n return null;\n }\n const meshPosition = mesh.getWorldPosition(new THREE.Vector3());\n return {\n splats: mesh.paged,\n distance: meshPosition.distanceTo(viewPos),\n };\n })\n .filter((result) => result !== null);\n\n if (!this.pageSizeWarning && pagedMeshes.length > this.pager.maxPages) {\n this.pageSizeWarning = true;\n console.warn(\n `# paged SplatMeshes exceeds maxPages: ${pagedMeshes.length} > ${this.pager.maxPages}`,\n );\n }\n\n // Fetch root chunk of each paged splats in priority of distance to camera\n pagedMeshes.sort((a, b) => a.distance - b.distance);\n this.pager.fetchPriority = pagedMeshes.map(({ splats }) => ({\n splats,\n chunk: 0,\n }));\n\n for (const [lodId, chunk] of chunks) {\n const splats = this.lodIdToSplats.get(lodId);\n if (splats instanceof PagedSplats) {\n if (chunk !== 0) {\n this.pager.fetchPriority.push({ splats, chunk });\n }\n }\n }\n\n this.pager.autoDrive = this.enableLodFetching;\n if (this.enableLodFetching) {\n this.pager.driveFetchers();\n }\n }\n\n if (\n this.lodRaycast &&\n performance.now() - this.lastLodRaycastTime >= this.lodRaycastIntervalMs\n ) {\n this.lastLodRaycastTime = performance.now();\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats: Math.min(this.lodRaycast, Math.round(totalLodSplats * 0.1)),\n pixelScaleLimit,\n instances,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n };\n const raycastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices } = result;\n const totalRaycastSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n mesh.raycastIndices = countIndices;\n // console.log(\"Set raycast indices\", uuid, countIndices.numSplats, countIndices.indices.length);\n }\n // console.log(`raycast traverse in ${raycastTraverseTime} ms, totalRaycastSplats=${totalRaycastSplats}`);\n }\n }\n\n private async cleanupLodTrees(worker: SplatWorker) {\n const DISPOSE_TIMEOUT_MS = 3000;\n const now = performance.now();\n\n let oldest = null;\n for (const [splats, record] of this.lodIds.entries()) {\n if (oldest == null || record.lastTouched < oldest.lastTouched) {\n oldest = {\n splats,\n lastTouched: record.lastTouched,\n lodId: record.lodId,\n };\n }\n }\n if (!oldest || oldest.lastTouched > now - DISPOSE_TIMEOUT_MS) {\n return;\n }\n\n this.lodIds.delete(oldest.splats);\n this.lodIdToSplats.delete(oldest.lodId);\n\n for (const [mesh, instance] of this.lodInstances.entries()) {\n if (instance.lodId === oldest.lodId) {\n instance.texture.dispose();\n this.lodInstances.delete(mesh);\n }\n }\n\n await worker.call(\"disposeLodTree\", { lodId: oldest.lodId });\n // console.log(\"disposed lodTree\", oldest.lodId);\n }\n\n private updateLodIndices(\n uuidToMesh: Map,\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >,\n ) {\n // console.log(\"updateLodIndices\", keyIndices);\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const { lodId, numSplats, indices } = countIndices;\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n\n if (mesh.paged) {\n mesh.paged.update(numSplats, indices);\n // console.log(\"*** paged.update\", lodId, numSplats, indices.slice(0, 5).join(\",\"));\n } else {\n let instance = this.lodInstances.get(mesh);\n if (instance) {\n if (indices.length > instance.indices.length) {\n instance.texture.dispose();\n instance = undefined;\n }\n }\n\n const rows = Math.ceil(indices.length / 16384);\n if (!instance) {\n const capacity = rows * 16384;\n if (indices.length !== capacity) {\n throw new Error(\"Indices length != capacity\");\n }\n const texture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n instance = { lodId, numSplats, indices, texture };\n this.lodInstances.set(mesh, instance);\n } else {\n instance.numSplats = numSplats;\n // instance.indices.set(indices.subarray(0, numSplats));\n\n const renderer = this.renderer;\n const gl = renderer.getContext() as WebGL2RenderingContext;\n if (renderer.properties.has(instance.texture)) {\n const props = renderer.properties.get(instance.texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"lodIndices texture not found\");\n }\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n indices,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n }\n mesh.updateMappingVersion();\n }\n }\n\n private async readbackDepth({\n current,\n renderer,\n numSplats,\n readback,\n }: {\n current: SplatAccumulator;\n renderer: THREE.WebGLRenderer;\n numSplats: number;\n readback: Uint32Array;\n }) {\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!current.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(readback.buffer);\n const renderState = this.saveRenderState(renderer);\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < numSplats) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((numSplats - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n renderer.setRenderTarget(current.target, layer);\n\n const promise = renderer.readRenderTargetPixelsAsync(\n current.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n undefined,\n current.extSplats ? 2 : 1,\n );\n promises.push(promise);\n\n if (this.flushAfterRead) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.resetRenderState(renderer, renderState);\n return Promise.all(promises).then(() => readback);\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private static emptyOrdering = (() => {\n const numIndices = 4 * 4096 * 1;\n const emptyArray = new Uint32Array(numIndices);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n render(scene: THREE.Scene, camera: THREE.Camera) {\n try {\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n }\n\n renderTarget({\n scene,\n camera,\n }: { scene: THREE.Scene; camera: THREE.Camera }): THREE.WebGLRenderTarget {\n const target = this.backTarget ?? this.target;\n if (!target) {\n throw new Error(\"No target\");\n }\n\n const previousTarget = this.renderer.getRenderTarget();\n try {\n this.renderer.setRenderTarget(target);\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n this.renderer.setRenderTarget(previousTarget);\n }\n\n if (target !== this.target) {\n // Swap back buffer and target\n [this.target, this.backTarget] = [this.backTarget, this.target];\n }\n return target;\n }\n\n // Read back the previously rendered target image as a Uint8Array of packed\n // RGBA values (in that order). Subsequent calls to this.readTarget()\n // will reuse the same buffers to minimize memory allocations.\n async readTarget(): Promise {\n if (!this.target) {\n throw new Error(\"Must initialize with target\");\n }\n const { width, height } = this.target;\n const byteSize = width * height * 4;\n if (!this.superPixels || this.superPixels.length < byteSize) {\n this.superPixels = new Uint8Array(byteSize);\n // console.log(`Allocated superPixels: ${width}x${height} = ${pixelCount} bytes`);\n }\n const superPixels = this.superPixels;\n\n await this.renderer.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n width,\n height,\n superPixels,\n );\n\n const { superXY } = this;\n if (superXY === 1) {\n return superPixels;\n }\n\n const subWidth = width / superXY;\n const subHeight = height / superXY;\n const subSize = subWidth * subHeight * 4;\n if (!this.targetPixels || this.targetPixels.length < subSize) {\n this.targetPixels = new Uint8Array(subSize);\n // console.log(`Allocated targetPixels: ${subWidth}x${subHeight} = ${subSize} bytes`);\n }\n const targetPixels = this.targetPixels;\n\n const super2 = superXY * superXY;\n for (let y = 0; y < subHeight; y++) {\n const row = y * subWidth;\n for (let x = 0; x < subWidth; x++) {\n const superCol = x * superXY;\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n for (let sy = 0; sy < superXY; sy++) {\n const superRow = (y * superXY + sy) * width;\n for (let sx = 0; sx < superXY; sx++) {\n const superIndex = (superRow + superCol + sx) * 4;\n r += superPixels[superIndex];\n g += superPixels[superIndex + 1];\n b += superPixels[superIndex + 2];\n a += superPixels[superIndex + 3];\n }\n }\n const pixelIndex = (row + x) * 4;\n targetPixels[pixelIndex] = r / super2;\n targetPixels[pixelIndex + 1] = g / super2;\n targetPixels[pixelIndex + 2] = b / super2;\n targetPixels[pixelIndex + 3] = a / super2;\n }\n }\n return targetPixels;\n }\n\n async renderReadTarget({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }): Promise {\n this.renderTarget({ scene, camera });\n return this.readTarget();\n }\n\n // Data and buffers used for environment map rendering\n private static cubeRender: {\n target: THREE.WebGLCubeRenderTarget;\n cubeCamera: THREE.CubeCamera;\n near: number;\n far: number;\n } | null = null;\n private static pmrem: THREE.PMREMGenerator | null = null;\n\n // Renders out the scene to a cube map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces.\n async renderCubeMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n filter = false,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n filter: boolean;\n }): Promise {\n if (\n !SparkRenderer.cubeRender ||\n SparkRenderer.cubeRender.target.width !== size ||\n SparkRenderer.cubeRender.near !== near ||\n SparkRenderer.cubeRender.far !== far\n ) {\n if (SparkRenderer.cubeRender) {\n SparkRenderer.cubeRender.target.dispose();\n }\n const target = new THREE.WebGLCubeRenderTarget(size, {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n generateMipmaps: filter,\n minFilter: filter ? THREE.LinearMipMapLinearFilter : THREE.LinearFilter,\n magFilter: THREE.LinearFilter,\n colorSpace: filter ? THREE.LinearSRGBColorSpace : THREE.SRGBColorSpace,\n });\n const cubeCamera = new THREE.CubeCamera(near, far, target);\n SparkRenderer.cubeRender = { target, cubeCamera, near, far };\n }\n\n const { target, cubeCamera } = SparkRenderer.cubeRender;\n cubeCamera.position.copy(worldCenter);\n\n // Save the visibility state of objects we want to hide before render\n const objectVisibility = new Map();\n for (const object of hideObjects) {\n objectVisibility.set(object, object.visible);\n object.visible = false;\n }\n\n if (update) {\n const tempCamera = new THREE.Camera();\n tempCamera.position.copy(worldCenter);\n await this.update({ scene, camera: tempCamera });\n }\n\n try {\n SparkRenderer.sparkOverride = this;\n // Update the CubeCamera, which performs 6 cube face renders\n cubeCamera.update(this.renderer, scene);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n\n // Restore viewpoint to default and object visibility\n for (const [object, visible] of objectVisibility.entries()) {\n object.visible = visible;\n }\n\n return target.texture;\n }\n\n async readCubeTargets(): Promise {\n if (!SparkRenderer.cubeRender) {\n throw new Error(\"No cube render\");\n }\n\n const textures = SparkRenderer.cubeRender.target.texture;\n const promises = [];\n const buffers = [];\n\n for (let i = 0; i < textures.images.length; ++i) {\n const { width, height } = textures.images[i];\n const byteSize = width * height * 4;\n const readback = new Uint8Array(byteSize);\n buffers.push(readback);\n const promise = this.renderer.readRenderTargetPixelsAsync(\n SparkRenderer.cubeRender.target,\n 0,\n 0,\n width,\n height,\n readback,\n i,\n );\n promises.push(promise);\n }\n\n await Promise.all(promises);\n return buffers;\n }\n\n // Renders out the scene to an environment map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces,\n // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture\n // that can assigned directly to a THREE.MeshStandardMaterial.envMap property.\n async renderEnvMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n }): Promise {\n const cubeTexture = await this.renderCubeMap({\n scene,\n worldCenter,\n size,\n near,\n far,\n hideObjects,\n update,\n filter: true,\n });\n // Pre-filter the cube map using THREE.PMREMGenerator if requested\n if (!SparkRenderer.pmrem) {\n SparkRenderer.pmrem = new THREE.PMREMGenerator(this.renderer);\n }\n\n return SparkRenderer.pmrem?.fromCubemap(cubeTexture).texture;\n }\n\n // Utility function to recursively set the envMap property for any\n // THREE.MeshStandardMaterial within the subtree of root.\n recurseSetEnvMap(root: THREE.Object3D, envMap: THREE.Texture) {\n root.traverse((node) => {\n if (node instanceof THREE.Mesh) {\n if (Array.isArray(node.material)) {\n for (const material of node.material) {\n if (material instanceof THREE.MeshStandardMaterial) {\n material.envMap = envMap;\n }\n }\n } else {\n if (node.material instanceof THREE.MeshStandardMaterial) {\n node.material.envMap = envMap;\n }\n }\n }\n });\n }\n\n async getLodTreeLevel(\n splats: SplatMesh,\n level: number,\n pageColoring = false,\n ) {\n const instance = this.lodInstances.get(splats);\n if (!instance) {\n return null;\n }\n\n const result = await this.ensureLodWorker().exclusive(async (worker) => {\n return (await worker.call(\"getLodTreeLevel\", {\n lodId: instance.lodId,\n level,\n })) as { indices: Uint32Array };\n });\n\n if (splats.packedSplats?.lodSplats) {\n const newSplats = splats.packedSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ packedSplats: newSplats });\n }\n if (splats.extSplats?.lodSplats) {\n const newSplats = splats.extSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ extSplats: newSplats });\n }\n throw new Error(\n \"Only LoD-enabled PackedSplats and ExtSplats are supported\",\n );\n }\n\n get premultipliedAlpha(): boolean {\n return this.material.premultipliedAlpha;\n }\n\n set premultipliedAlpha(value: boolean) {\n if (this.material.premultipliedAlpha !== value) {\n this.material.premultipliedAlpha = value;\n this.material.needsUpdate = true;\n }\n }\n}\n","import * as THREE from \"three\";\n\nimport init_wasm, { decode_rad_header } from \"spark-rs\";\nimport { LN_SCALE_MAX, LN_SCALE_MIN, dyno } from \".\";\nimport { evaluateExtSH } from \"./ExtSplats\";\nimport { evaluatePackedSH } from \"./PackedSplats\";\nimport { getSplatFileType, getSplatFileTypeFromPath } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n type ExtResult,\n type PackedResult,\n type RadMeta,\n type SplatEncoding,\n SplatFileType,\n} from \"./defines\";\nimport { pagedSplatTexCoord } from \"./dyno\";\nimport { decodeExtSplat, getTextureSize, unpackSplat } from \"./utils\";\n\nexport interface PagedSplatsOptions {\n pager?: SplatPager;\n rootUrl?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n maxSh?: number;\n}\n\nexport class PagedSplats implements SplatSource {\n pager?: SplatPager;\n rootUrl: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n\n numSh: number;\n maxSh: number;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array | [Uint32Array, Uint32Array];\n\n numSplats: number;\n splatEncoding?: SplatEncoding;\n radMetaPromise?: Promise<{ meta: RadMeta; chunksStart: number }>;\n\n dynoNumSplats: dyno.DynoInt<\"numSplats\">;\n dynoIndices: dyno.DynoUsampler2D<\"indices\", THREE.DataTexture>;\n rgbMinMaxLnScaleMinMax: dyno.DynoVec4<\n THREE.Vector4,\n \"rgbMinMaxLnScaleMinMax\"\n >;\n lodOpacity: dyno.DynoBool<\"lodOpacity\">;\n dynoNumSh: dyno.DynoInt<\"numSh\">;\n shMax: dyno.DynoVec3;\n\n constructor(options: PagedSplatsOptions) {\n this.pager = options.pager;\n this.rootUrl = options.rootUrl ?? \"\";\n this.requestHeader = options.requestHeader;\n this.withCredentials = options.withCredentials;\n this.numSh = 0;\n this.maxSh = options.pager?.maxSh ?? 3;\n\n this.numSplats = 0;\n\n this.dynoNumSplats = new dyno.DynoInt({ value: 0 });\n this.dynoIndices = new dyno.DynoUsampler2D({\n value: SplatPager.emptyIndicesTexture,\n });\n\n this.rgbMinMaxLnScaleMinMax = new dyno.DynoVec4({\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n });\n this.lodOpacity = new dyno.DynoBool({\n value: false,\n });\n\n this.dynoNumSh = new dyno.DynoInt({ value: 0 });\n this.shMax = new dyno.DynoVec3({ value: new THREE.Vector3() });\n\n this.fileBytes = options.fileBytes;\n this.fileType = options.fileType;\n if (!this.fileType && this.fileBytes) {\n this.fileType = getSplatFileType(this.fileBytes);\n }\n if (!this.fileType && this.rootUrl) {\n this.fileType = getSplatFileTypeFromPath(this.rootUrl);\n }\n if (!this.fileType) {\n throw new Error(\"Unable to determine file type\");\n }\n if (this.fileType === SplatFileType.RAD) {\n this.radMetaPromise = this.getRadMeta();\n }\n }\n\n dispose() {\n if (this.dynoIndices.value !== SplatPager.emptyIndicesTexture) {\n this.dynoIndices.value.dispose();\n this.dynoIndices.value = SplatPager.emptyIndicesTexture;\n }\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n getRadMeta(): Promise<{ meta: RadMeta; chunksStart: number }> {\n if (this.radMetaPromise) {\n return this.radMetaPromise;\n }\n\n this.radMetaPromise = (async () => {\n await wasmInitialized;\n\n if (this.fileBytes) {\n // Shouldn't be more than 1 MB, so don't send more data than that.\n const metaStart = decode_rad_header(this.fileBytes.slice(0, 1048576));\n if (metaStart) {\n return metaStart;\n }\n throw new Error(\"Failed to decode RAD header\");\n }\n if (!this.rootUrl) {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n // We don't know how big the header will be. Most likely 64KB will be enough,\n // but try larger blocks in backoff if it wasn't enough.\n for (const tryBytes of [65536, 256 * 1024, 1024 * 1024]) {\n const bytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset: 0,\n bytes: tryBytes,\n });\n const metaStart = decode_rad_header(bytes);\n if (metaStart) {\n return metaStart;\n }\n }\n throw new Error(\"Failed to decode RAD header\");\n })().then((metaStart) => {\n // console.log(\"RAD meta: \", metaStart.meta);\n return metaStart;\n });\n\n this.radMetaPromise.catch((error) => {\n console.error(error);\n // Allow it to be tried again\n // this.radMetaPromise = undefined;\n });\n\n return this.radMetaPromise;\n }\n\n chunkUrl(chunk: number): string {\n return this.rootUrl.replace(/-lod-0\\./, `-lod-${chunk}.`);\n }\n\n async fetchDecodeChunk(chunk: number) {\n let decodeBytes = undefined;\n\n if (this.fileType === SplatFileType.RAD) {\n const { meta, chunksStart } = await this.getRadMeta();\n if (chunk < 0 || chunk >= meta.chunks.length) {\n throw new Error(\n `Chunk index out of range: ${chunk} (max: ${meta.chunks.length - 1})`,\n );\n }\n let { offset, bytes, filename } = meta.chunks[chunk];\n\n if (filename) {\n if (this.fileBytes) {\n throw new Error(\"Chunked RAD file not supported with fileBytes\");\n }\n const resolvedRoot = new URL(\n this.rootUrl,\n window.location.href,\n ).toString();\n const chunkUrl = new URL(filename, resolvedRoot).toString();\n decodeBytes = await fetchRange({\n url: chunkUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n });\n } else {\n offset += chunksStart;\n // console.log(`Fetching chunk ${chunk} at offset ${offset} with bytes ${bytes}`);\n if (this.fileBytes) {\n if (offset < 0 || offset + bytes > this.fileBytes.length) {\n throw new Error(\n `Invalid chunk offset or bytes: ${offset} + ${bytes} > ${this.fileBytes.length}`,\n );\n }\n decodeBytes = this.fileBytes.slice(offset, offset + bytes);\n } else if (this.rootUrl) {\n decodeBytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset,\n bytes,\n });\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n }\n } else if (this.fileBytes) {\n // Fall through\n } else if (this.rootUrl) {\n const url = this.chunkUrl(chunk);\n const request = new Request(url, {\n headers: this.requestHeader\n ? new Headers(this.requestHeader)\n : undefined,\n credentials: this.withCredentials ? \"include\" : \"same-origin\",\n });\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n decodeBytes = new Uint8Array(await response.arrayBuffer());\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n return await workerPool.withWorker(async (worker) => {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n if (!this.pager.extSplats) {\n const result = (await worker.call(\"loadPackedSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: this.sh3Codes?.slice(),\n })) as { lodSplats: PackedResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = lodSplats.splatEncoding;\n\n this.numSh = lodSplats.extra.sh3\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n\n this.rgbMinMaxLnScaleMinMax.value.set(\n this.splatEncoding.rgbMin ?? 0.0,\n this.splatEncoding.rgbMax ?? 1.0,\n this.splatEncoding.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding.lnScaleMax ?? LN_SCALE_MAX,\n );\n\n this.lodOpacity.value = this.splatEncoding.lodOpacity ?? false;\n\n this.shMax.value.set(\n this.splatEncoding.sh1Max ?? 1.0,\n this.splatEncoding.sh2Max ?? 1.0,\n this.splatEncoding.sh3Max ?? 1.0,\n );\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n }\n\n const sh3Codes = this.sh3Codes as [Uint32Array, Uint32Array] | undefined;\n const result = (await worker.call(\"loadExtSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: sh3Codes\n ? [sh3Codes[0].slice(), sh3Codes[1].slice()]\n : undefined,\n })) as { lodSplats: ExtResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = DEFAULT_SPLAT_ENCODING;\n this.numSh =\n lodSplats.extra.sh3a && lodSplats.extra.sh3b\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n });\n }\n\n update(numSplats: number, indices: Uint32Array) {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const renderer = this.pager.renderer;\n this.numSplats = numSplats;\n this.dynoNumSplats.value = this.numSplats;\n const rows = Math.ceil(numSplats / 16384);\n\n let indicesTexture =\n this.dynoIndices.value === SplatPager.emptyIndicesTexture\n ? undefined\n : this.dynoIndices.value;\n if (indicesTexture && rows > indicesTexture.image.height) {\n indicesTexture.dispose();\n indicesTexture = undefined;\n }\n\n if (!indicesTexture) {\n indicesTexture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n indicesTexture.internalFormat = \"RGBA32UI\";\n indicesTexture.needsUpdate = true;\n renderer.initTexture(indicesTexture);\n this.dynoIndices.value = indicesTexture;\n } else {\n const textureIndices = indicesTexture.image.data as Uint32Array;\n textureIndices.set(indices.subarray(0, numSplats));\n\n const gl = renderer.getContext() as WebGL2RenderingContext;\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(\n gl.TEXTURE_2D,\n getGlTexture(renderer, indicesTexture),\n );\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n indices,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n\n prepareFetchSplat() {}\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n if (!this.pager) {\n return false;\n }\n return Math.min(this.numSh, this.pager.maxSh) > 0;\n }\n\n getNumSh(): number {\n return this.numSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: {\n index: dyno.DynoVal<\"int\">;\n viewOrigin?: dyno.DynoVal<\"vec3\">;\n }): dyno.DynoVal {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const splatIndex = this.pager.readIndex.apply({\n index,\n numSplats: this.dynoNumSplats,\n indices: this.dynoIndices,\n }).index;\n\n if (!this.pager.extSplats) {\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(\n this.numSh,\n this.maxSh,\n this.pager.maxSh,\n );\n return this.pager.readSplatDir.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n viewOrigin,\n numSh: this.dynoNumSh,\n shMax: this.shMax,\n }).gsplat;\n }\n return this.pager.readSplat.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n }).gsplat;\n }\n\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(this.numSh, this.maxSh, this.pager.maxSh);\n return this.pager.readSplatExtDir.apply({\n index: splatIndex,\n viewOrigin,\n numSh: this.dynoNumSh,\n }).gsplat;\n }\n return this.pager.readSplatExt.apply({ index: splatIndex }).gsplat;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.pager || !this.numSplats) {\n return;\n }\n const extSplats = this.pager.extSplats;\n const indices = this.dynoIndices.value.image.data as Uint32Array;\n const packedSplatArray = this.pager.packedTexture.value.image\n .data as Uint32Array;\n const extPackedSplatArray = this.pager.extTexture.value.image\n .data as Uint32Array;\n const extArrays: [Uint32Array, Uint32Array] = [\n packedSplatArray,\n extPackedSplatArray,\n ];\n\n for (let i = 0; i < this.numSplats; ++i) {\n const splatIndex = indices[i];\n const unpacked = extSplats\n ? decodeExtSplat(extArrays, splatIndex)\n : unpackSplat(packedSplatArray, splatIndex, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n}\n\nexport interface SplatPagerOptions {\n /**\n * THREE.WebGLRenderer instance to upload texture data\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Whether to use extended Gsplat encoding for paged splats.\n * @default false\n */\n extSplats?: boolean;\n /**\n * Maximum size of splat page pool\n * @default 65536 * 256 = 16777216\n */\n maxSplats?: number;\n /**\n * Maximum number of spherical harmonics to keep\n * @default 3\n */\n maxSh?: number;\n /**\n * Automatically drive page fetching, or poll via drive()\n * @default true\n */\n autoDrive?: boolean;\n /**\n * Number of parallel chunk fetchers\n * @default 3\n */\n numFetchers?: number;\n}\n\nexport class SplatPager {\n renderer: THREE.WebGLRenderer;\n\n extSplats: boolean;\n maxPages: number;\n maxSplats: number;\n pageSplats: number;\n\n maxSh: number;\n curSh: number;\n\n autoDrive: boolean;\n numFetchers: number;\n fetchPause = 0;\n\n splatsChunkToPage: Map<\n PagedSplats,\n ({ page: number; lru: number } | undefined)[]\n > = new Map();\n pageToSplatsChunk: (\n | { splats: PagedSplats; chunk: number; time: number }\n | undefined\n )[] = [];\n pageFreelist: number[];\n pageLru: Set<{ page: number; lru: number }>;\n freeablePages: number[];\n newUploads: {\n page: number;\n numSplats: number;\n packedArray: Uint32Array;\n extArray?: Uint32Array;\n extra: Record;\n }[];\n readyUploads: {\n page: number;\n numSplats: number;\n packedArray: Uint32Array;\n extArray?: Uint32Array;\n extra: Record;\n }[];\n lodTreeUpdates: {\n splats: PagedSplats;\n page: number;\n chunk: number;\n numSplats: number;\n lodTree?: Uint32Array;\n }[];\n\n fetchers: { splats: PagedSplats; chunk: number; promise: Promise }[];\n fetched: {\n splats: PagedSplats;\n chunk: number;\n data: PackedResult | ExtResult;\n }[];\n fetchPriority: { splats: PagedSplats; chunk: number }[];\n\n packedTexture: dyno.DynoUsampler2DArray<\n \"packedTexture\",\n THREE.DataArrayTexture\n >;\n extTexture: dyno.DynoUsampler2DArray<\"extTexture\", THREE.DataArrayTexture>;\n\n sh1Texture: dyno.DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture: dyno.DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture: dyno.DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB: dyno.DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n\n readIndex: dyno.DynoBlock<\n { index: \"int\"; numSplats: \"int\"; indices: \"usampler2D\" },\n { index: \"int\" }\n >;\n readSplat: dyno.DynoBlock<\n { index: \"int\"; rgbMinMaxLnScaleMinMax: \"vec4\"; lodOpacity: \"bool\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExt: dyno.DynoBlock<\n { index: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatDir: dyno.DynoBlock<\n {\n index: \"int\";\n rgbMinMaxLnScaleMinMax: \"vec4\";\n lodOpacity: \"bool\";\n viewOrigin: \"vec3\";\n numSh: \"int\";\n shMax: \"vec3\";\n },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExtDir: dyno.DynoBlock<\n { index: \"int\"; viewOrigin: \"vec3\"; numSh: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n\n constructor(options: SplatPagerOptions) {\n this.renderer = options.renderer;\n this.extSplats = options.extSplats ?? false;\n\n this.pageSplats = 65536;\n this.maxSplats = options.maxSplats ?? 16777216;\n this.maxPages = Math.ceil(this.maxSplats / this.pageSplats);\n this.maxSplats = this.maxPages * this.pageSplats;\n\n this.maxSh = options.maxSh ?? 3;\n this.curSh = 0;\n\n this.autoDrive = options.autoDrive ?? true;\n this.numFetchers = options.numFetchers ?? 3;\n\n this.splatsChunkToPage = new Map();\n this.pageToSplatsChunk = new Array(this.maxPages);\n this.pageFreelist = Array.from({ length: this.maxPages }, (_, i) => i);\n this.pageLru = new Set();\n this.freeablePages = [];\n this.newUploads = [];\n this.readyUploads = [];\n this.lodTreeUpdates = [];\n\n this.fetchers = [];\n this.fetched = [];\n this.fetchPriority = [];\n\n this.packedTexture = new dyno.DynoUsampler2DArray({\n value: this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n ),\n });\n this.extTexture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n )\n : SplatPager.emptyExtTexture,\n });\n this.sh1Texture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? SplatPager.emptyExtSh1Texture\n : SplatPager.emptySh1Texture,\n });\n this.sh2Texture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? SplatPager.emptyExtSh2Texture\n : SplatPager.emptySh2Texture,\n });\n this.sh3Texture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? SplatPager.emptyExtSh3Texture\n : SplatPager.emptySh3Texture,\n });\n this.sh3TextureB = new dyno.DynoUsampler2DArray({\n value: SplatPager.emptyExtSh3BTexture,\n });\n\n this.readIndex = dyno.dynoBlock(\n { index: \"int\", numSplats: \"int\", indices: \"usampler2D\" },\n { index: \"int\" },\n ({ index, numSplats, indices }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n numSplats: \"int\",\n indices: \"usampler2D\",\n },\n outTypes: { index: \"int\" },\n inputs: {\n index,\n numSplats,\n indices,\n },\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n if (${inputs.index} >= ${inputs.numSplats}) {\n return;\n }\n\n ivec2 indexCoord = ivec2((${inputs.index} >> 2) & 4095, ${inputs.index} >> 14);\n uint index = texelFetch(${inputs.indices}, indexCoord, 0)[${inputs.index} & 3];\n ${outputs.index} = int(index);\n `),\n }).outputs;\n },\n );\n\n this.readSplat = dyno.dynoBlock(\n { index: \"int\", rgbMinMaxLnScaleMinMax: \"vec4\", lodOpacity: \"bool\" },\n { gsplat: dyno.Gsplat },\n ({ index, rgbMinMaxLnScaleMinMax, lodOpacity }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n packedTexture: \"usampler2DArray\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n packedTexture: this.packedTexture,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = pagedSplatTexCoord(index);\n uvec4 packedData = texelFetch(${inputs.packedTexture}, splatCoord, 0);\n\n unpackSplatEncoding(packedData, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba, ${inputs.rgbMinMaxLnScaleMinMax});\n if ((${outputs.gsplat}.rgba.a == 0.0) || all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n \n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n if (${inputs.lodOpacity}) {\n ${outputs.gsplat}.rgba.a *= 2.0;\n }\n `),\n }).outputs;\n },\n );\n\n this.readSplatDir = dyno.dynoBlock(\n {\n index: \"int\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n shMax: \"vec3\",\n },\n { gsplat: dyno.Gsplat },\n ({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n viewOrigin,\n numSh,\n shMax,\n }) => {\n if (\n !index ||\n !rgbMinMaxLnScaleMinMax ||\n !lodOpacity ||\n !viewOrigin ||\n !numSh ||\n !shMax\n ) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplat.apply({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluatePackedSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.sh1Texture,\n sh2Texture: this.sh2Texture,\n sh3Texture: this.sh3Texture,\n shMax,\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n\n this.readSplatExt = dyno.dynoBlock(\n { index: \"int\" },\n { gsplat: dyno.Gsplat },\n ({ index }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n extTexture1: \"usampler2DArray\",\n extTexture2: \"usampler2DArray\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n extTexture1: this.packedTexture,\n extTexture2: this.extTexture,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16);\n uvec4 ext1 = texelFetch(${inputs.extTexture1}, splatCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if (alpha == 0.0) {\n return;\n }\n\n uvec4 ext2 = texelFetch(${inputs.extTexture2}, splatCoord, 0);\n unpackSplatExt(ext1, ext2, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba);\n if (all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n\n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n `),\n }).outputs;\n },\n );\n\n this.readSplatExtDir = dyno.dynoBlock(\n {\n index: \"int\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n },\n { gsplat: dyno.Gsplat },\n ({ index, viewOrigin, numSh }) => {\n if (!index || !viewOrigin || !numSh) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplatExt.apply({ index }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluateExtSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.sh1Texture,\n sh2Texture: this.sh2Texture,\n sh3TextureA: this.sh3Texture,\n sh3TextureB: this.sh3TextureB,\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n }\n\n dispose() {\n this.autoDrive = false;\n this.numFetchers = 0;\n\n this.packedTexture.value.dispose();\n this.packedTexture.value.source.data = null;\n if (this.extTexture.value !== SplatPager.emptyExtTexture) {\n this.extTexture.value.dispose();\n this.extTexture.value.source.data = null;\n }\n\n if (!this.extSplats) {\n if (this.sh1Texture.value !== SplatPager.emptySh1Texture) {\n this.sh1Texture.value.dispose();\n this.sh1Texture.value.source.data = null;\n }\n if (this.sh2Texture.value !== SplatPager.emptySh2Texture) {\n this.sh2Texture.value.dispose();\n this.sh2Texture.value.source.data = null;\n }\n if (this.sh3Texture.value !== SplatPager.emptySh3Texture) {\n this.sh3Texture.value.dispose();\n this.sh3Texture.value.source.data = null;\n }\n } else {\n if (this.sh1Texture.value !== SplatPager.emptyExtSh1Texture) {\n this.sh1Texture.value.dispose();\n this.sh1Texture.value.source.data = null;\n }\n if (this.sh2Texture.value !== SplatPager.emptyExtSh2Texture) {\n this.sh2Texture.value.dispose();\n this.sh2Texture.value.source.data = null;\n }\n if (this.sh3Texture.value !== SplatPager.emptyExtSh3Texture) {\n this.sh3Texture.value.dispose();\n this.sh3Texture.value.source.data = null;\n }\n if (this.sh3TextureB.value !== SplatPager.emptyExtSh3BTexture) {\n this.sh3TextureB.value.dispose();\n this.sh3TextureB.value.source.data = null;\n }\n }\n }\n\n private ensureShTextures(numSh: number) {\n this.curSh = Math.max(this.curSh, numSh);\n if (!this.extSplats) {\n if (\n this.curSh >= 1 &&\n this.sh1Texture.value === SplatPager.emptySh1Texture\n ) {\n this.sh1Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 2),\n 256,\n 256,\n this.maxPages,\n THREE.RGIntegerFormat,\n THREE.UnsignedIntType,\n \"RG32UI\",\n );\n }\n } else {\n if (\n this.curSh >= 1 &&\n this.sh1Texture.value === SplatPager.emptyExtSh1Texture\n ) {\n this.sh1Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n }\n if (\n this.curSh >= 2 &&\n this.sh2Texture.value ===\n (!this.extSplats\n ? SplatPager.emptySh2Texture\n : SplatPager.emptyExtSh2Texture)\n ) {\n this.sh2Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n if (!this.extSplats) {\n if (\n this.curSh >= 3 &&\n this.sh3Texture.value === SplatPager.emptySh3Texture\n ) {\n this.sh3Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n } else {\n if (this.curSh >= 3) {\n if (this.sh3Texture.value === SplatPager.emptyExtSh3Texture) {\n this.sh3Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n if (this.sh3TextureB.value === SplatPager.emptyExtSh3BTexture) {\n this.sh3TextureB.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n }\n }\n }\n\n private allocatePage(): number | undefined {\n return this.pageFreelist.shift();\n }\n\n private freePage(page: number) {\n this.pageFreelist.push(page);\n }\n\n getSplatsChunk(splats: PagedSplats, chunk: number) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n return undefined;\n }\n return chunks[chunk];\n }\n\n private insertSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n now: number,\n ) {\n if (!this.splatsChunkToPage.has(splats)) {\n this.splatsChunkToPage.set(splats, []);\n }\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n if (chunk >= chunks.length) {\n chunks.length = chunk + 1;\n }\n const pageLru = { page, lru: now };\n chunks[chunk] = pageLru;\n this.pageLru.add(pageLru);\n\n this.pageToSplatsChunk[page] = { splats, chunk, time: performance.now() };\n return this.pageToSplatsChunk[page];\n }\n\n private removeSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n ) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n\n const pageLru = chunks[chunk];\n if (!pageLru) {\n throw new Error(\n `pageLru not found for splats: ${splats}, chunk: ${chunk}, page: ${page}`,\n );\n }\n this.pageLru.delete(pageLru);\n\n chunks[chunk] = undefined;\n\n while (chunks.length > 0 && chunks[chunks.length - 1] === undefined) {\n chunks.pop();\n }\n if (chunks.length === 0) {\n this.splatsChunkToPage.delete(splats);\n }\n\n this.pageToSplatsChunk[page] = undefined;\n while (\n this.pageToSplatsChunk.length > 0 &&\n this.pageToSplatsChunk[this.pageToSplatsChunk.length - 1] === undefined\n ) {\n this.pageToSplatsChunk.pop();\n }\n }\n\n private uploadPage(\n page: number,\n packedArray: Uint32Array,\n extra: Record,\n extArray?: Uint32Array,\n ) {\n const pageBase = page * this.pageSplats;\n\n // const gl = this.renderer.getContext() as WebGL2RenderingContext;\n\n // this.renderer.state.activeTexture(gl.TEXTURE0);\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.packedTexture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RGBA_INTEGER,\n // gl.UNSIGNED_INT,\n // packedArray,\n // );\n\n const array = this.packedTexture.value.image.data;\n array\n .subarray(pageBase * 4, pageBase * 4 + packedArray.length)\n .set(packedArray);\n this.packedTexture.value.addLayerUpdate(page);\n this.packedTexture.value.needsUpdate = true;\n\n if (extArray) {\n const array = this.extTexture.value.image.data;\n array\n .subarray(pageBase * 4, pageBase * 4 + extArray.length)\n .set(extArray);\n this.extTexture.value.addLayerUpdate(page);\n this.extTexture.value.needsUpdate = true;\n }\n\n const numSh = this.extSplats\n ? extra.sh3a && extra.sh3b\n ? 3\n : extra.sh2\n ? 2\n : extra.sh1\n ? 1\n : 0\n : extra.sh3\n ? 3\n : extra.sh2\n ? 2\n : extra.sh1\n ? 1\n : 0;\n this.ensureShTextures(numSh);\n\n if (!this.extSplats) {\n if (this.sh1Texture.value !== SplatPager.emptySh1Texture && extra.sh1) {\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.sh1Texture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RG_INTEGER,\n // gl.UNSIGNED_INT,\n // extra.sh1 as Uint32Array,\n // );\n const sh1 = extra.sh1 as Uint32Array;\n const array = this.sh1Texture.value.image.data;\n array.subarray(pageBase * 2, pageBase * 2 + sh1.length).set(sh1);\n this.sh1Texture.value.addLayerUpdate(page);\n this.sh1Texture.value.needsUpdate = true;\n }\n } else {\n if (\n this.sh1Texture.value !== SplatPager.emptyExtSh1Texture &&\n extra.sh1\n ) {\n const sh1 = extra.sh1 as Uint32Array;\n const array = this.sh1Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh1.length).set(sh1);\n this.sh1Texture.value.addLayerUpdate(page);\n this.sh1Texture.value.needsUpdate = true;\n }\n }\n\n if (this.sh2Texture.value !== SplatPager.emptySh2Texture && extra.sh2) {\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.sh2Texture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RGBA_INTEGER,\n // gl.UNSIGNED_INT,\n // extra.sh2 as Uint32Array,\n // );\n const sh2 = extra.sh2 as Uint32Array;\n const array = this.sh2Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh2.length).set(sh2);\n this.sh2Texture.value.addLayerUpdate(page);\n this.sh2Texture.value.needsUpdate = true;\n }\n\n if (!this.extSplats) {\n if (this.sh3Texture.value !== SplatPager.emptySh3Texture && extra.sh3) {\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.sh3Texture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RGBA_INTEGER,\n // gl.UNSIGNED_INT,\n // extra.sh3 as Uint32Array,\n // );\n const sh3 = extra.sh3 as Uint32Array;\n const array = this.sh3Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh3.length).set(sh3);\n this.sh3Texture.value.addLayerUpdate(page);\n this.sh3Texture.value.needsUpdate = true;\n }\n } else {\n if (\n this.sh3Texture.value !== SplatPager.emptyExtSh3Texture &&\n extra.sh3a\n ) {\n const sh3a = extra.sh3a as Uint32Array;\n const array = this.sh3Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh3a.length).set(sh3a);\n this.sh3Texture.value.addLayerUpdate(page);\n this.sh3Texture.value.needsUpdate = true;\n }\n if (\n this.sh3TextureB.value !== SplatPager.emptyExtSh3BTexture &&\n extra.sh3b\n ) {\n const sh3b = extra.sh3b as Uint32Array;\n const array = this.sh3TextureB.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh3b.length).set(sh3b);\n this.sh3TextureB.value.addLayerUpdate(page);\n this.sh3TextureB.value.needsUpdate = true;\n }\n }\n\n // this.renderer.state.bindTexture(gl.TEXTURE_2D_ARRAY, null);\n }\n\n private getGlTexture(texture: THREE.Texture): WebGLTexture {\n return getGlTexture(this.renderer, texture);\n }\n\n private newUint32ArrayTexture(\n data: Uint32Array | null,\n width: number,\n height: number,\n depth: number,\n format: THREE.AnyPixelFormat,\n type: THREE.TextureDataType,\n internalFormat: THREE.PixelFormatGPU,\n ): THREE.DataArrayTexture {\n const texture = new THREE.DataArrayTexture(data, width, height, depth);\n texture.format = format;\n texture.type = type;\n texture.internalFormat = internalFormat;\n texture.needsUpdate = true;\n this.renderer.initTexture(texture);\n return texture;\n }\n\n driveFetchers() {\n const needed = [];\n const overflow = [];\n let numPages = 0;\n\n for (const { splats, chunk } of this.fetchPriority) {\n const pageLru = this.getSplatsChunk(splats, chunk);\n if (pageLru) {\n if (numPages >= this.maxPages) {\n overflow.push(pageLru);\n } else {\n needed.push(pageLru);\n }\n numPages += 1;\n continue;\n }\n\n if (\n this.fetched.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n ) ||\n this.fetchers.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n )\n ) {\n numPages += 1;\n continue;\n }\n\n if (numPages < this.maxPages && this.fetchers.length < this.numFetchers) {\n numPages += 1;\n const promise = splats\n .fetchDecodeChunk(chunk)\n .then(\n async (data) => {\n // Place data in ready queue and remove self from active fetchers list\n this.fetched.push({ splats, chunk, data });\n if (this.fetchPause > 0) {\n await new Promise((resolve) =>\n setTimeout(resolve, this.fetchPause),\n );\n }\n },\n async (error) => {\n console.warn(error);\n const backoff = 250 + 500 * Math.random();\n await new Promise((resolve) => setTimeout(resolve, backoff));\n },\n )\n .finally(() => {\n this.fetchers = this.fetchers.filter(\n ({ splats: s, chunk: c }) => splats !== s || chunk !== c,\n );\n this.processFetched();\n });\n // Add self to active fetchers list\n this.fetchers.push({ splats, chunk, promise });\n\n promise.then((data) => {\n if (this.autoDrive) {\n this.driveFetchers();\n }\n });\n }\n }\n\n // Update LRU ordering in reverse priority order\n const now = performance.now();\n\n for (const pageLru of overflow.reverse()) {\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n\n // Create set of pages not needed\n const extraPages = new Set(this.pageLru);\n for (const pageLru of needed.reverse()) {\n extraPages.delete(pageLru);\n\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n this.freeablePages = Array.from(extraPages).map(({ page }) => page);\n }\n\n private allocateFreeable(): number | undefined {\n const page = this.freeablePages.shift();\n if (page === undefined) {\n // No freeable pages available\n return undefined;\n }\n\n const splatsChunk = this.pageToSplatsChunk[page];\n if (!splatsChunk) {\n throw new Error(`splatsChunk not found for page: ${page}`);\n }\n\n const { splats, chunk } = splatsChunk;\n this.removeSplatsChunkPage(splats, chunk, page);\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats: this.pageSplats,\n });\n return page;\n }\n\n private processFetched() {\n const now = performance.now();\n while (true) {\n const fetched = this.fetched.shift();\n if (!fetched) {\n break;\n }\n const { splats, chunk, data } = fetched;\n\n let page = this.allocatePage();\n if (page === undefined) {\n page = this.allocateFreeable();\n if (page === undefined) {\n // No pages available, stop for now\n return;\n }\n }\n\n this.insertSplatsChunkPage(splats, chunk, page, now);\n const { numSplats, extra } = data;\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats,\n lodTree: extra.lodTree as Uint32Array,\n });\n\n if (!this.extSplats) {\n const packedArray = (data as PackedResult).packedArray;\n this.newUploads.push({ page, numSplats, packedArray, extra });\n } else {\n const extArrays = (data as ExtResult).extArrays;\n const packedArray = extArrays[0];\n const extArray = extArrays[1];\n this.newUploads.push({ page, numSplats, packedArray, extArray, extra });\n }\n }\n }\n\n processUploads() {\n while (true) {\n const upload = this.readyUploads.shift();\n if (!upload) {\n break;\n }\n const { page, numSplats, packedArray, extArray, extra } = upload;\n this.uploadPage(page, packedArray, extra, extArray);\n }\n }\n\n consumeLodTreeUpdates() {\n const updates = this.lodTreeUpdates;\n this.lodTreeUpdates = [];\n\n this.readyUploads.push(...this.newUploads);\n this.newUploads = [];\n return updates;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyIndicesTexture = (() => {\n const emptyArray = new Uint32Array(4096 * 4);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyPackedTexture = this.emptyUint32x4;\n static emptyExtTexture = this.emptyUint32x4;\n static emptySh1Texture = this.emptyUint32x2;\n static emptySh2Texture = this.emptyUint32x4;\n static emptySh3Texture = this.emptyUint32x4;\n static emptyExtSh1Texture = this.emptyUint32x4;\n static emptyExtSh2Texture = this.emptyUint32x4;\n static emptyExtSh3Texture = this.emptyUint32x4;\n static emptyExtSh3BTexture = this.emptyUint32x4;\n}\n\nfunction getGlTexture(\n renderer: THREE.WebGLRenderer,\n texture: THREE.Texture,\n): WebGLTexture {\n if (!renderer.properties.has(texture)) {\n throw new Error(\"texture not found\");\n }\n const props = renderer.properties.get(texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"texture not found\");\n }\n return glTexture;\n}\n\nconst wasmInitialized = init_wasm();\n\nasync function fetchRange({\n url,\n requestHeader,\n withCredentials,\n offset,\n bytes,\n}: {\n url: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n offset?: number;\n bytes?: number;\n}): Promise {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n if (offset !== undefined && bytes !== undefined) {\n request.headers.set(\"Range\", `bytes=${offset}-${offset + bytes - 1}`);\n }\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n return new Uint8Array(await response.arrayBuffer());\n}\n","import * as THREE from \"three\";\n\nimport init_wasm, {\n get_raycast_buffer,\n get_raycast_buffer2,\n raycast_ext_buffers,\n raycast_packed_buffer,\n} from \"spark-rs\";\nimport { ExtSplats } from \"./ExtSplats\";\nimport { OldSparkRenderer } from \"./OldSparkRenderer\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { type RgbaArray, TRgbaArray } from \"./RgbaArray\";\nimport { SparkRenderer } from \"./SparkRenderer\";\nimport { SplatEdit, SplatEditSdf, SplatEdits } from \"./SplatEdit\";\nimport {\n type CovSplatModifier,\n CovSplatTransformer,\n type FrameUpdateContext,\n type GsplatModifier,\n SplatGenerator,\n SplatTransformer,\n} from \"./SplatGenerator\";\nimport { PagedSplats, SplatPager } from \"./SplatPager\";\nimport type { SplatSkinning } from \"./SplatSkinning\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n CovSplat,\n Dyno,\n DynoBool,\n DynoFloat,\n DynoInt,\n DynoUsampler2D,\n type DynoVal,\n DynoVec4,\n Gsplat,\n combineCovSplat,\n combineGsplat,\n defineGsplat,\n dyno,\n dynoBlock,\n gsplatToCovSplat,\n mul,\n splitCovSplat,\n splitGsplat,\n unindentLines,\n} from \"./dyno\";\n\nexport type SplatMeshOptions = {\n // URL to fetch a Gaussian splat file from(supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Use an existing PackedSplats object as the source instead of loading from\n // a file. Can be used to share a collection of Gsplats among multiple SplatMeshes\n // (default: undefined creates a new empty PackedSplats or decoded from a\n // data source above)\n packedSplats?: PackedSplats;\n // Use an existing SplatSource object as the source instead of loading from file.\n splats?: SplatSource;\n // Reserve space for at least this many splats when constructing the mesh\n // initially. (default: determined by file)\n maxSplats?: number;\n // Callback function to programmatically create splats at initialization\n // in provided PackedSplats. (default: undefined)\n constructSplats?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Callback function that is called when mesh initialization is complete.\n // (default: undefined)\n onLoad?: (mesh: SplatMesh) => Promise | void;\n // Controls whether SplatEdits have any effect on this mesh. (default: true)\n editable?: boolean;\n // Controls whether SplatMesh participates in Three.js raycasting (default: true)\n raycastable?: boolean;\n // Minimum opacity for raycasting splats. (default: 0.2)\n minRaycastOpacity?: number;\n // Callback function that is called every frame to update the mesh.\n // Call mesh.updateVersion() if splats need to be regenerated due to some change.\n // Calling updateVersion() is not necessary for object transformations, recoloring,\n // or opacity adjustments as these are auto-detected. (default: undefined)\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n // Gsplat modifier to apply in object-space before any transformations.\n // A GsplatModifier is a dyno shader-graph block that transforms an input\n // gsplat: DynoVal to an output gsplat: DynoVal with gsplat.center\n // coordinate in object-space. (default: undefined)\n objectModifier?: GsplatModifier;\n objectModifiers?: GsplatModifier[];\n // Gsplat modifier to apply in world-space after transformations.\n // (default: undefined)\n worldModifier?: GsplatModifier;\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Set to true to load/use \"extended splat\" encoding with float32 x/y/z\n extSplats?: boolean | ExtSplats;\n // Set to true to output covariance splats for anisotropic scaling\n covSplats?: boolean;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Only create LoD if the input splat acount is above this (default: undefined=0)\n lodAbove?: number;\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Force enable/disable LoD (default: enabled iff packedSplats.lodSplats is not null)\n enableLod?: boolean;\n // LoD scale to apply @default 1.0\n lodScale?: number;\n // Foveation scale to apply behind viewer\n // (default: 1.0)\n behindFoveate?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction\n // with perfection foveation=1.0\n // (default: 0.0)\n coneFov0?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction. 0.0=disable\n // (default: 0.0)\n coneFov?: number;\n // Foveation scale to apply at the edge of the cone\n // (default: 1.0)\n coneFoveate?: number;\n paged?: boolean | PagedSplats | SplatPager;\n};\n\nexport type SplatMeshContext = {\n transform: SplatTransformer;\n viewToWorld: SplatTransformer;\n worldToView: SplatTransformer;\n viewToObject: SplatTransformer;\n covTransform: CovSplatTransformer;\n covViewToWorld: CovSplatTransformer;\n covWorldToView: CovSplatTransformer;\n covViewToObject: CovSplatTransformer;\n recolor: DynoVec4;\n time: DynoFloat;\n deltaTime: DynoFloat;\n numSplats: DynoInt;\n splats: SplatSource;\n enableLod: DynoBool;\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>;\n};\n\nexport interface SplatSource {\n prepareFetchSplat(): void;\n dispose(): void;\n\n getNumSplats(): number;\n hasRgbDir(): boolean;\n getNumSh(): number;\n setMaxSh(maxSh: number): void;\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n >;\n\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ): void;\n}\n\nexport class EmptySplatSource implements SplatSource {\n fetchDyno = new Dyno({\n inTypes: {},\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplat],\n statements: ({ outputs }) =>\n unindentLines(`\n ${outputs.gsplat}.flags = 0u;\n return;\n `),\n }).outputs.gsplat;\n\n prepareFetchSplat() {}\n dispose() {}\n\n getNumSplats() {\n return 0;\n }\n hasRgbDir() {\n return false;\n }\n getNumSh() {\n return 0;\n }\n setMaxSh(maxSh: number) {}\n\n fetchSplat({ index }: { index: DynoVal<\"int\"> }): DynoVal {\n return this.fetchDyno;\n }\n\n forEachSplat() {}\n}\n\nexport class SplatMesh extends SplatGenerator {\n // A Promise you can await to ensure fetching, parsing,\n // and initialization has completed\n initialized: Promise;\n // A boolean indicating whether initialization is complete\n isInitialized = false;\n\n // If you modify packedSplats you should set\n // splatMesh.packedSplats.needsUpdate = true to signal to Three.js that it\n // should re-upload the data to the underlying texture. Use this sparingly with\n // objects with smaller Gsplat counts as it requires a CPU-GPU data transfer for\n // each frame. Thousands to tens of thousands of Gsplats is fine. (See hands.ts\n // for an example of rendering \"Gsplat hands\" in WebXR using this technique.)\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n covSplats: boolean;\n splats?: SplatSource;\n lastSplats?: SplatSource;\n paged?: PagedSplats;\n\n // A THREE.Color that can be used to tint all splats in the mesh.\n // (default: new THREE.Color(1, 1, 1))\n recolor: THREE.Color = new THREE.Color(1, 1, 1);\n // Global opacity multiplier for all splats in the mesh. (default: 1)\n opacity = 1;\n\n // A SplatMeshContext consisting of useful scene and object dyno uniforms that can\n // be used to in the Gsplat processing pipeline, for example via objectModifier and\n // worldModifier. (created on construction)\n context: SplatMeshContext;\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n generatorDirty = true;\n\n objectModifiers?: GsplatModifier[];\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Set to true to have the viewToObject property in context be updated each frame.\n // If the mesh has extra.sh1 (first order spherical harmonics directional lighting)\n // this property will always be updated. (default: false)\n enableViewToObject = false;\n // Set to true to have context.viewToWorld updated each frame. (default: false)\n enableViewToWorld = false;\n // Set to true to have context.worldToView updated each frame. (default: false)\n enableWorldToView = false;\n\n // Optional SplatSkinning instance for animating splats with dual-quaternion\n // skeletal animation. (default: null)\n skinning: SplatSkinning | null = null;\n\n // Optional list of SplatEdits to apply to the mesh. If null, any SplatEdit\n // children in the scene graph will be added automatically. (default: null)\n edits: SplatEdit[] | null = null;\n editable: boolean;\n raycastable: boolean;\n minRaycastOpacity: number;\n raycastIndices?: { numSplats: number; indices: Uint32Array };\n // Compiled SplatEdits for applying SDF edits to splat RGBA + centers\n rgbaDisplaceEdits: SplatEdits | null = null;\n // Optional RgbaArray to overwrite splat RGBA values with custom values.\n // Useful for \"baking\" RGB and opacity edits into the SplatMesh. (default: null)\n splatRgba: RgbaArray | null = null;\n\n // Maximum Spherical Harmonics level to use. Call updateGenerator()\n // after changing. (default: 3)\n maxSh = 3;\n\n enableLod?: boolean;\n lodScale: number;\n behindFoveate?: number;\n coneFov0?: number;\n coneFov?: number;\n coneFoveate?: number;\n\n showLodPage?: number;\n showLodPageDyno = new DynoInt({ value: 0 });\n\n constructor(options: SplatMeshOptions = {}) {\n super({\n update: (context) => this.update(context),\n });\n\n if (options.splats) {\n this.splats = options.splats;\n this.numSplats = options.splats.getNumSplats();\n } else if (options.paged) {\n if (options.extSplats) {\n console.warn(\n \"To set extSplats with the paged option, set SparkRenderer.pagedExtSplats\",\n );\n }\n const rootUrl = options.url ?? \"\";\n if (options.paged === true) {\n this.paged = new PagedSplats({ rootUrl });\n } else if (options.paged instanceof PagedSplats) {\n this.paged = options.paged;\n } else if (options.paged instanceof SplatPager) {\n this.paged = new PagedSplats({ rootUrl, pager: options.paged });\n } else {\n throw new Error(\"Invalid paged option\");\n }\n this.splats = this.paged;\n } else if (options.extSplats) {\n this.extSplats =\n options.extSplats instanceof ExtSplats\n ? options.extSplats\n : new ExtSplats();\n options.extSplats = this.extSplats;\n this.numSplats = this.extSplats.numSplats;\n this.splats = this.extSplats;\n } else if (options.packedSplats) {\n this.packedSplats = options.packedSplats;\n this.packedSplats.splatEncoding = options.splatEncoding ?? {\n ...DEFAULT_SPLAT_ENCODING,\n };\n this.splats = this.packedSplats;\n } else {\n this.packedSplats = new PackedSplats();\n }\n\n this.editable = options.editable ?? true;\n this.raycastable = options.raycastable ?? true;\n this.minRaycastOpacity = options.minRaycastOpacity ?? 0.2;\n this.onFrame = options.onFrame;\n\n this.context = {\n transform: new SplatTransformer(),\n viewToWorld: new SplatTransformer(),\n worldToView: new SplatTransformer(),\n viewToObject: new SplatTransformer(),\n covTransform: new CovSplatTransformer(),\n covViewToWorld: new CovSplatTransformer(),\n covWorldToView: new CovSplatTransformer(),\n covViewToObject: new CovSplatTransformer(),\n recolor: new DynoVec4({\n value: new THREE.Vector4().setScalar(Number.NEGATIVE_INFINITY),\n }),\n time: new DynoFloat({ value: 0 }),\n deltaTime: new DynoFloat({ value: 0 }),\n numSplats: new DynoInt({ value: 0 }),\n splats: new EmptySplatSource(),\n enableLod: new DynoBool({ value: false }),\n lodIndices: new DynoUsampler2D({\n value: emptyLodIndices,\n key: \"lodIndices\",\n }),\n };\n\n this.covSplats = options.covSplats ?? false;\n if (this.covSplats && !this.extSplats) {\n throw new Error(\"CovSplats requires ExtSplats\");\n }\n\n this.objectModifiers = options.objectModifier\n ? [options.objectModifier]\n : undefined;\n this.worldModifiers = options.worldModifier\n ? [options.worldModifier]\n : undefined;\n\n if (options.objectModifiers) {\n this.objectModifiers = options.objectModifiers;\n }\n if (options.worldModifiers) {\n this.worldModifiers = options.worldModifiers;\n }\n\n this.enableLod = options.enableLod;\n this.lodScale = options.lodScale ?? 1.0;\n this.behindFoveate = options.behindFoveate;\n this.coneFov0 = options.coneFov0;\n this.coneFov = options.coneFov;\n this.coneFoveate = options.coneFoveate;\n\n this.updateGenerator();\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.constructSplats ||\n (options.packedSplats && !options.packedSplats.isInitialized) ||\n (this.extSplats && !this.extSplats.isInitialized)\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(async () => {\n this.updateGenerator();\n\n this.isInitialized = true;\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n return this;\n });\n } else {\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n // If onLoad returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n this.initialized = maybePromise.then(() => this);\n }\n }\n }\n\n // this.add(createRendererDetectionMesh());\n }\n\n async asyncInitialize(options: SplatMeshOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n } = options;\n if (this.packedSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const packedSplatsOptions = {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct: constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n };\n this.packedSplats.reinitialize(packedSplatsOptions);\n }\n await this.packedSplats.initialized;\n this.splats = this.packedSplats;\n } else if (this.extSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const construct = constructSplats as\n | ((splats: ExtSplats) => Promise)\n | undefined;\n this.extSplats.reinitialize({\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n });\n await this.extSplats.initialized;\n this.splats = this.extSplats;\n }\n }\n\n if (this.splats) {\n this.numSplats = this.splats.getNumSplats();\n this.updateGenerator();\n }\n }\n\n static staticInitialized = SplatMesh.staticInitialize();\n static isStaticInitialized = false;\n\n static dynoTime = new DynoFloat({ value: 0 });\n\n static async staticInitialize() {\n await init_wasm();\n SplatMesh.isStaticInitialized = true;\n }\n\n // Creates a new Gsplat with the provided parameters (all values in \"float\" space,\n // i.e. 0-1 for opacity and color) and adds it to the end of the packedSplats,\n // increasing numSplats by 1. If necessary, reallocates the buffer with an exponential\n // doubling strategy to fit the new data, so it's fairly efficient to just\n // pushSplat(...) each Gsplat you want to create in a loop.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n if (this.packedSplats) {\n this.packedSplats.pushSplat(center, scales, quaternion, opacity, color);\n } else if (this.extSplats) {\n this.extSplats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n\n // This method iterates over all Gsplats in this instance's packedSplats,\n // invoking the provided callback with index: number in 0..=(this.numSplats-1) and\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number (0..1), and color: THREE.Color (rgb values in 0..1).\n // Note that the objects passed in as center etc. are the same for every callback\n // invocation: these objects are reused for efficiency. Changing these values has\n // no effect as they are decoded/unpacked copies of the underlying data. To update\n // the packedSplats, call .packedSplats.setSplat(index, center, scales,\n // quaternion, opacity, color).\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n this.splats?.forEachSplat(callback);\n }\n\n // Call this when you are finished with the SplatMesh and want to free\n // any buffers it holds (via packedSplats).\n dispose() {\n if (\n this.splats &&\n this.splats !== this.packedSplats &&\n this.splats !== this.extSplats\n ) {\n this.splats.dispose();\n this.splats = undefined;\n }\n if (this.packedSplats) {\n this.packedSplats.dispose();\n this.packedSplats = undefined;\n }\n if (this.extSplats) {\n this.extSplats.dispose();\n this.extSplats = undefined;\n }\n }\n\n // Returns axis-aligned bounding box of the SplatMesh. If centers_only is true,\n // only the centers of the splats are used to compute the bounding box.\n // IMPORTANT: This should only be called after the SplatMesh is initialized.\n getBoundingBox(centers_only = true) {\n if (!this.initialized) {\n throw new Error(\n \"Cannot get bounding box before SplatMesh is initialized\",\n );\n }\n const minVec = new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n );\n const maxVec = new THREE.Vector3(\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n );\n const corners = new THREE.Vector3();\n const signs = [-1, 1];\n\n function callback(\n _index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n _opacity: number,\n _color: THREE.Color,\n ) {\n if (centers_only) {\n minVec.min(center);\n maxVec.max(center);\n } else {\n // Get the 8 corners of the AABB in local space\n for (const x of signs) {\n for (const y of signs) {\n for (const z of signs) {\n corners.set(x * scales.x, y * scales.y, z * scales.z);\n // Transform corner by rotation and position\n corners.applyQuaternion(quaternion);\n corners.add(center);\n minVec.min(corners);\n maxVec.max(corners);\n }\n }\n }\n }\n }\n\n this.splats?.forEachSplat(callback);\n const box = new THREE.Box3(minVec, maxVec);\n return box;\n }\n\n set objectModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.objectModifiers = [modifier];\n } else {\n this.objectModifiers = undefined;\n }\n }\n\n set worldModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.worldModifiers = [modifier];\n } else {\n this.worldModifiers = undefined;\n }\n }\n\n private constructGenerator(context: SplatMeshContext) {\n if (this.covSplats) {\n return this.constructCovGenerator(context);\n }\n\n const { transform, viewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.setMaxSh(this.maxSh);\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: viewToObject.translate,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n gsplat = this.skinning.modify(gsplat);\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // Transform from object to world-space\n gsplat = transform.applyGsplat(gsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitGsplat(gsplat).outputs.rgba);\n gsplat = combineGsplat({ gsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n gsplat = this.rgbaDisplaceEdits.modify(gsplat);\n }\n\n if (this.worldModifiers) {\n // Inject world-space Gsplat modifier dyno\n for (const modifier of this.worldModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { gsplat };\n },\n );\n this.generator = generator;\n this.covGenerator = undefined;\n }\n\n constructCovGenerator(context: SplatMeshContext) {\n // console.log(\"CovSplatMesh.constructCovGenerator\");\n const { covTransform, covViewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { covsplat: CovSplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: covViewToObject.offset,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n let covsplat = gsplatToCovSplat(gsplat);\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n covsplat = this.skinning.modifyCov(covsplat);\n }\n\n if (this.covObjectModifiers) {\n // Inject object-space CovSplat modifier dyno\n for (const modifier of this.covObjectModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // Transform from object to world-space\n covsplat = covTransform.applyCovSplat(covsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitCovSplat(covsplat).outputs.rgba);\n covsplat = combineCovSplat({ covsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n covsplat = this.rgbaDisplaceEdits.modifyCov(covsplat);\n }\n\n if (this.covWorldModifiers) {\n // Inject world-space CovSplat modifier dyno\n for (const modifier of this.covWorldModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { covsplat };\n },\n );\n this.generator = undefined;\n this.covGenerator = generator;\n }\n\n // Call this whenever something changes in the Gsplat processing pipeline,\n // for example changing maxSh or updating objectModifier or worldModifier.\n // Compiled generators are cached for efficiency and re-use when the same\n // pipeline structure emerges after successive changes.\n updateGenerator() {\n this.generatorDirty = true;\n }\n\n // This is called automatically by SparkRenderer and you should not have to\n // call it. It updates parameters for the generated pipeline and calls\n // updateGenerator() if the pipeline needs to change.\n update({\n renderer,\n time,\n deltaTime,\n viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices,\n }: FrameUpdateContext) {\n this.context.time.value = time;\n this.context.deltaTime.value = deltaTime;\n SplatMesh.dynoTime.value = time;\n this.showLodPageDyno.value = this.showLodPage ?? -1;\n\n const splats = this.splats ?? this.packedSplats ?? this.extSplats;\n if (splats) {\n this.context.splats = splats;\n }\n this.numSplats = this.context.splats.getNumSplats();\n\n let updated = false;\n\n const lodSplats = this.packedSplats?.lodSplats ?? this.extSplats?.lodSplats;\n this.context.enableLod.value = lodSplats != null && lodIndices != null;\n if (this.enableLod === false) {\n this.context.enableLod.value = false;\n }\n this.context.lodIndices.value = lodIndices?.texture ?? emptyLodIndices;\n\n if (this.context.enableLod.value && lodSplats) {\n this.context.splats = lodSplats;\n this.numSplats = lodIndices?.numSplats ?? 0;\n }\n\n this.context.numSplats.value = this.numSplats;\n\n if (this.context.splats !== this.lastSplats) {\n this.lastSplats = this.context.splats;\n this.generatorDirty = true;\n }\n\n if (!this.covSplats) {\n if (this.context.transform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.viewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.worldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const objectToWorld = new THREE.Matrix4().compose(\n this.context.transform.translate.value,\n this.context.transform.rotate.value,\n new THREE.Vector3().setScalar(this.context.transform.scale.value),\n );\n const worldToObject = objectToWorld.invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.viewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n } else {\n if (this.context.covTransform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.covViewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.covWorldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const worldToObject = this.matrixWorld.clone().invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.covViewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n }\n\n const newRecolor = new THREE.Vector4(\n this.recolor.r,\n this.recolor.g,\n this.recolor.b,\n this.opacity,\n );\n if (!newRecolor.equals(this.context.recolor.value)) {\n this.context.recolor.value.copy(newRecolor);\n updated = true;\n }\n\n const edits = this.editable ? (this.edits ?? []).concat(globalEdits) : [];\n if (this.editable && !this.edits) {\n // If we haven't set any explicit edits, add any child SplatEdits\n this.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n edits.push(node);\n }\n });\n }\n\n edits.sort((a, b) => a.ordering - b.ordering);\n const editsSdfs = edits.map((edit) => {\n if (edit.sdfs != null) {\n return { edit, sdfs: edit.sdfs };\n }\n const sdfs: SplatEditSdf[] = [];\n edit.traverseVisible((node) => {\n if (node instanceof SplatEditSdf) {\n sdfs.push(node);\n }\n });\n return { edit, sdfs };\n });\n\n if (editsSdfs.length > 0 && !this.rgbaDisplaceEdits) {\n const edits = editsSdfs.length;\n const sdfs = editsSdfs.reduce(\n (total, edit) => total + edit.sdfs.length,\n 0,\n );\n this.rgbaDisplaceEdits = new SplatEdits({\n maxEdits: edits,\n maxSdfs: sdfs,\n });\n this.generatorDirty = true;\n }\n if (this.rgbaDisplaceEdits) {\n const editResult = this.rgbaDisplaceEdits.update(editsSdfs);\n updated ||= editResult.updated;\n if (editResult.dynoUpdated) {\n this.generatorDirty = true;\n }\n }\n\n if (this.generatorDirty) {\n this.constructGenerator(this.context);\n this.generatorDirty = false;\n updated = true;\n }\n\n if (updated) {\n this.updateVersion();\n }\n\n this.onFrame?.({ mesh: this, time, deltaTime });\n }\n\n // This method conforms to the standard THREE.Raycaster API, performing object-ray\n // intersections using this method to populate the provided intersects[] array\n // with each intersection point.\n raycast(\n raycaster: THREE.Raycaster,\n intersects: {\n distance: number;\n point: THREE.Vector3;\n object: THREE.Object3D;\n }[],\n ) {\n if (\n !SplatMesh.isStaticInitialized ||\n !this.raycastable ||\n (!this.packedSplats && !this.extSplats && !this.paged)\n ) {\n return;\n }\n const paged = this.paged != null;\n const ext = paged\n ? (this.paged?.pager?.extSplats ?? false)\n : this.extSplats != null;\n\n const { near, far, ray } = raycaster;\n const worldToMesh = this.matrixWorld.clone().invert();\n const worldToMeshRot = new THREE.Matrix3().setFromMatrix4(worldToMesh);\n const origin = ray.origin.clone().applyMatrix4(worldToMesh);\n const direction = ray.direction.clone().applyMatrix3(worldToMeshRot);\n\n const buffer = get_raycast_buffer();\n const bufferSize = buffer.length / 4;\n let intersections = 0;\n\n const numSplats =\n this.raycastIndices?.numSplats ??\n (paged ? this.paged?.numSplats : this.context.numSplats.value) ??\n 0;\n const indices =\n this.raycastIndices?.indices ??\n (paged\n ? (this.paged?.dynoIndices.value.image.data as Uint32Array)\n : this.context.enableLod.value\n ? (this.context.lodIndices.value.image.data as Uint32Array)\n : null) ??\n null;\n\n if (!ext) {\n const packed = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.packedSplats?.lodSplats?.packedArray\n : this.packedSplats?.packedArray;\n if (!packed) {\n return;\n }\n const splatEncoding = paged\n ? this.paged?.splatEncoding\n : this.packedSplats?.splatEncoding;\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(packed.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = packed[index4];\n buffer[i4 + 1] = packed[index4 + 1];\n buffer[i4 + 2] = packed[index4 + 2];\n buffer[i4 + 3] = packed[index4 + 3];\n }\n }\n\n const newIntersections = raycast_packed_buffer(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n splatEncoding?.lodOpacity ?? false,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n } else {\n const buffer2 = get_raycast_buffer2();\n const ext1 = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[0]\n : this.extSplats?.extArrays[0];\n const ext2 = paged\n ? (this.paged?.pager?.extTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[1]\n : this.extSplats?.extArrays[1];\n if (!ext1 || !ext2) {\n return;\n }\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(ext1.subarray(base * 4, (base + count) * 4));\n buffer2.set(ext2.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = ext1[index4];\n buffer[i4 + 1] = ext1[index4 + 1];\n buffer[i4 + 2] = ext1[index4 + 2];\n buffer[i4 + 3] = ext1[index4 + 3];\n buffer2[i4] = ext2[index4];\n buffer2[i4 + 1] = ext2[index4 + 1];\n buffer2[i4 + 2] = ext2[index4 + 2];\n buffer2[i4 + 3] = ext2[index4 + 3];\n }\n }\n\n const newIntersections = raycast_ext_buffers(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n }\n\n for (const distance of SplatMesh.raycastBuffer.subarray(0, intersections)) {\n const point = ray.direction\n .clone()\n .multiplyScalar(distance)\n .add(ray.origin);\n intersects.push({\n distance,\n point,\n object: this,\n });\n }\n }\n\n static raycastBuffer = new Float32Array(1024);\n\n private appendRaycastBuffer(count: number, additional: Float32Array) {\n const total = count + additional.length;\n let capacity = SplatMesh.raycastBuffer.length;\n\n if (total > capacity) {\n while (capacity < total) {\n capacity *= 2;\n }\n const newBuffer = new Float32Array(capacity);\n newBuffer.set(SplatMesh.raycastBuffer.subarray(0, count));\n SplatMesh.raycastBuffer = newBuffer;\n }\n\n SplatMesh.raycastBuffer.set(additional, count);\n return count + additional.length;\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n if (this.packedSplats) {\n await this.packedSplats.createLodSplats({ quality, rgbaArray });\n } else if (this.extSplats) {\n await this.extSplats.createLodSplats({ quality, rgbaArray });\n }\n }\n}\n\nexport function maybeLookupIndex(\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>,\n index: DynoVal<\"int\">,\n numSplats: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n showLodPage: DynoVal<\"int\">,\n) {\n return dyno({\n inTypes: {\n lodIndices: \"usampler2D\",\n index: \"int\",\n numSplats: \"int\",\n enableLod: \"bool\",\n showLodPage: \"int\",\n },\n outTypes: {\n index: \"int\",\n },\n inputs: {\n lodIndices,\n index,\n numSplats,\n enableLod,\n showLodPage,\n },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n int index = ${inputs.index};\n if (${inputs.showLodPage} < 0) {\n if (index >= ${inputs.numSplats}) {\n return;\n }\n if (${inputs.enableLod}) {\n ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14);\n uint splatIndex = texelFetch(${inputs.lodIndices}, lodIndexCoord, 0)[index & 3];\n ${outputs.index} = int(splatIndex);\n } else {\n ${outputs.index} = index;\n }\n } else {\n int start = ${inputs.showLodPage} << 16;\n if (index >= 65536) {\n return;\n }\n ${outputs.index} = start + index;\n }\n `),\n }).outputs.index;\n}\n\nexport function maybeInjectSplatRgba(\n gsplat: DynoVal,\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n): DynoVal {\n return dyno({\n inTypes: {\n gsplat: Gsplat,\n rgba: TRgbaArray,\n index: \"int\",\n enableLod: \"bool\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, rgba, index, enableLod },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n ${outputs.gsplat} = ${inputs.gsplat};\n if (!${inputs.enableLod} && (${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.gsplat}.rgba = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n }\n `),\n }).outputs.gsplat;\n}\n\nexport const emptyLodIndices = (() => {\n const texture = new THREE.DataTexture(\n new Uint32Array(16384),\n 4096,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n})();\n\nconst EMPTY_GEOMETRY = new THREE.BufferGeometry();\nconst EMPTY_MATERIAL = new THREE.ShaderMaterial();\n\n// Creates an empty mesh to hook into Three.js rendering.\n// This is used to detect if a SparkRenderer is present in the scene.\n// If not, one will be injected automatically.\nfunction createRendererDetectionMesh(): THREE.Mesh {\n const mesh = new THREE.Mesh(EMPTY_GEOMETRY, EMPTY_MATERIAL);\n mesh.frustumCulled = false;\n mesh.onBeforeRender = function (renderer, scene) {\n if (!scene.isScene) {\n // The SplatMesh is part of render call that doesn't have a Scene at its root\n // Don't auto-inject a renderer.\n this.removeFromParent();\n return;\n }\n\n // Check if the scene has a SparkRenderer instance\n let hasSparkRenderer = false;\n scene.traverse((c) => {\n if (c instanceof SparkRenderer || c instanceof OldSparkRenderer) {\n hasSparkRenderer = true;\n }\n });\n\n if (!hasSparkRenderer) {\n // No spark renderer present in the scene, inject one.\n scene.add(new SparkRenderer({ renderer }));\n }\n\n // Remove mesh to stop checking\n this.removeFromParent();\n };\n return mesh;\n}\n","// PLY file format reader\n\nimport { USE_COMPILED_PARSER_FUNCTION } from \"./defines\";\n\nconst PLY_PROPERTY_TYPES = [\n \"char\",\n \"uchar\",\n \"short\",\n \"ushort\",\n \"int\",\n \"uint\",\n \"float\",\n \"double\",\n] as const;\nexport type PlyPropertyType = (typeof PLY_PROPERTY_TYPES)[number];\n\nexport type PlyElement = {\n name: string;\n count: number;\n properties: Record;\n};\n\nexport type PlyProperty = {\n isList: boolean;\n type: PlyPropertyType;\n countType?: PlyPropertyType;\n};\n\n// Callback for parseSplats base Gsplat data\nexport type SplatCallback = (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) => void;\n\n// Callback for parseSplats SH coefficients\nexport type SplatShCallback = (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n) => void;\n\n// A PlyReader is used to parse PLY files for Gsplat data.\n// It takes a Uint8Array/ArrayBuffer as input fileBytes, parses the text header,\n// and provides a method parseData to iterate over the entire binary data\n// efficiently, or parseSplats to iterate over Gsplat data.\n\nexport class PlyReader {\n fileBytes: Uint8Array;\n header = \"\";\n littleEndian = true;\n elements: Record = {};\n comments: string[] = [];\n data: DataView | null = null;\n static defaultPointScale = 0.001;\n\n numSplats = 0;\n\n // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n }\n\n // Identify and parse the PLY text header (assumed to be <64KB in size).\n // this.elements will contain all the elements in the file, typically\n // \"vertex\" contains the Gsplat data.\n async parseHeader() {\n const bufferStream = new ReadableStream({\n start: (\n controller: ReadableStreamController>,\n ) => {\n // Assume the header is less than 64KB\n controller.enqueue(this.fileBytes.slice(0, 65536));\n controller.close();\n },\n });\n const decoder = bufferStream\n .pipeThrough(new TextDecoderStream())\n .getReader();\n\n // Find the end of the text section of the PLY file\n this.header = \"\";\n const headerTerminator = \"end_header\\n\";\n while (true) {\n const { value, done } = await decoder.read();\n if (done) {\n throw new Error(\"Failed to read header\");\n }\n\n this.header += value as string;\n const endHeader = this.header.indexOf(headerTerminator);\n if (endHeader >= 0) {\n this.header = this.header.slice(0, endHeader + headerTerminator.length);\n break;\n }\n }\n // Partition the file into header and binary data\n const headerLen = new TextEncoder().encode(this.header).length;\n this.data = new DataView(this.fileBytes.buffer, headerLen);\n\n this.elements = {};\n let curElement: PlyElement | null = null;\n this.comments = [];\n\n this.header\n .trim()\n .split(\"\\n\")\n .forEach((line: string, lineIndex: number) => {\n const trimmedLine = line.trim();\n if (lineIndex === 0) {\n if (trimmedLine !== \"ply\") {\n throw new Error(\"Invalid PLY header\");\n }\n return;\n }\n if (trimmedLine.length === 0) {\n return; // Skip empty lines\n }\n\n const fields = trimmedLine.split(\" \");\n switch (fields[0]) {\n case \"format\":\n if (fields[1] === \"binary_little_endian\") {\n this.littleEndian = true;\n } else if (fields[1] === \"binary_big_endian\") {\n this.littleEndian = false;\n } else {\n // ascii formats not supported\n throw new Error(`Unsupported PLY format: ${fields[1]}`);\n }\n if (fields[2] !== \"1.0\") {\n throw new Error(`Unsupported PLY version: ${fields[2]}`);\n }\n break;\n case \"end_header\":\n break;\n case \"comment\":\n this.comments.push(trimmedLine.slice(\"comment \".length));\n break;\n case \"element\": {\n const name = fields[1];\n curElement = {\n name,\n count: Number.parseInt(fields[2]),\n properties: {},\n };\n this.elements[name] = curElement;\n break;\n }\n case \"property\":\n if (curElement == null) {\n throw new Error(\"Property must be inside an element\");\n }\n if (fields[1] === \"list\") {\n curElement.properties[fields[4]] = {\n isList: true,\n type: fields[3] as PlyPropertyType,\n countType: fields[2] as PlyPropertyType,\n };\n } else {\n curElement.properties[fields[2]] = {\n isList: false,\n type: fields[1] as PlyPropertyType,\n };\n }\n break;\n default:\n // console.warn(`Skipping unsupported PLY keyword: ${fields[0]}`);\n }\n });\n\n if (this.elements.vertex) {\n this.numSplats = this.elements.vertex.count;\n }\n }\n\n parseData(\n elementCallback: (\n element: PlyElement,\n ) =>\n | null\n | ((index: number, item: Record) => void),\n ) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No data to parse\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const item = createEmptyItem(properties);\n // Construct a parse function\n const parseFn = createParseFn(properties, this.littleEndian);\n\n // Parse all the items in the element\n const callback = elementCallback(element) ?? (() => {});\n for (let index = 0; index < count; index++) {\n offset = parseFn(data, offset, item);\n callback(index, item);\n }\n }\n }\n\n // Parse all the Gsplat data in the PLY file in go, invoking the given\n // callbacks for each Gsplat.\n parseSplats(splatCallback: SplatCallback, shCallback?: SplatShCallback) {\n if (this.elements.vertex == null) {\n throw new Error(\"No vertex element found\");\n }\n\n let isSuperSplat = false;\n const ssChunks: SSChunk[] = [];\n\n let numSh = 0;\n let sh1Props: number[] = [];\n let sh2Props: number[] = [];\n let sh3Props: number[] = [];\n let sh1: Float32Array | undefined = undefined;\n let sh2: Float32Array | undefined = undefined;\n let sh3: Float32Array | undefined = undefined;\n\n function prepareSh() {\n // Prepare SH coefficient names and arrays for numSh total SH levels\n const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh];\n sh1Props = new Array(3)\n .fill(null)\n .flatMap((_, k) => [0, 1, 2].map((_, d) => k + (d * num_f_rest) / 3));\n sh2Props = new Array(5)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 3 + k + (d * num_f_rest) / 3),\n );\n sh3Props = new Array(7)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 8 + k + (d * num_f_rest) / 3),\n );\n sh1 = numSh >= 1 ? new Float32Array(3 * 3) : undefined;\n sh2 = numSh >= 2 ? new Float32Array(5 * 3) : undefined;\n sh3 = numSh >= 3 ? new Float32Array(7 * 3) : undefined;\n }\n\n function ssShCallback(\n index: number,\n item: Record,\n ) {\n // Decode SH for SuperSplat compressed data\n if (!sh1) {\n throw new Error(\"Missing sh1\");\n }\n const sh = item.f_rest as number[];\n\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = (sh[sh1Props[i]] * 8) / 255 - 4;\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = (sh[sh2Props[i]] * 8) / 255 - 4;\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = (sh[sh3Props[i]] * 8) / 255 - 4;\n }\n }\n shCallback?.(index, sh1, sh2, sh3);\n }\n\n function initSuperSplat(element: PlyElement) {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n } = element.properties;\n if (\n !min_x ||\n !min_y ||\n !min_z ||\n !max_x ||\n !max_y ||\n !max_z ||\n !min_scale_x ||\n !min_scale_y ||\n !min_scale_z ||\n !max_scale_x ||\n !max_scale_y ||\n !max_scale_z\n ) {\n throw new Error(\"Missing PLY chunk properties\");\n }\n\n // SuperSplat chunks are used to quantize splat data, so we need to store them\n isSuperSplat = true;\n return (index: number, item: Record) => {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = item as Record;\n ssChunks.push({\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n });\n };\n }\n\n function decodeSuperSplat(element: PlyElement) {\n // Decode SuperSplat compressed data in vertex and sh elements\n if (shCallback && element.name === \"sh\") {\n numSh = getNumSh(element.properties);\n prepareSh();\n return ssShCallback;\n }\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n element.properties;\n if (\n !packed_position ||\n !packed_rotation ||\n !packed_scale ||\n !packed_color\n ) {\n throw new Error(\n \"Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color\",\n );\n }\n\n const SQRT2 = Math.sqrt(2);\n\n return (index: number, item: Record) => {\n // SuperSplat data are quantized within chunks with 256 Gsplats each\n const chunk = ssChunks[index >>> 8];\n if (chunk == null) {\n throw new Error(\"Missing PLY chunk\");\n }\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = chunk;\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n item as Record;\n\n const x =\n (((packed_position >>> 21) & 2047) / 2047) * (max_x - min_x) + min_x;\n const y =\n (((packed_position >>> 11) & 1023) / 1023) * (max_y - min_y) + min_y;\n const z = ((packed_position & 2047) / 2047) * (max_z - min_z) + min_z;\n\n const r0 = (((packed_rotation >>> 20) & 1023) / 1023 - 0.5) * SQRT2;\n const r1 = (((packed_rotation >>> 10) & 1023) / 1023 - 0.5) * SQRT2;\n const r2 = ((packed_rotation & 1023) / 1023 - 0.5) * SQRT2;\n const rr = Math.sqrt(Math.max(0, 1.0 - r0 * r0 - r1 * r1 - r2 * r2));\n\n const rOrder = packed_rotation >>> 30;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n\n const scaleX = Math.exp(\n (((packed_scale >>> 21) & 2047) / 2047) *\n (max_scale_x - min_scale_x) +\n min_scale_x,\n );\n const scaleY = Math.exp(\n (((packed_scale >>> 11) & 1023) / 1023) *\n (max_scale_y - min_scale_y) +\n min_scale_y,\n );\n const scaleZ = Math.exp(\n ((packed_scale & 2047) / 2047) * (max_scale_z - min_scale_z) +\n min_scale_z,\n );\n\n const r =\n (((packed_color >>> 24) & 255) / 255) *\n ((max_r ?? 1) - (min_r ?? 0)) +\n (min_r ?? 0);\n const g =\n (((packed_color >>> 16) & 255) / 255) *\n ((max_g ?? 1) - (min_g ?? 0)) +\n (min_g ?? 0);\n const b =\n (((packed_color >>> 8) & 255) / 255) * ((max_b ?? 1) - (min_b ?? 0)) +\n (min_b ?? 0);\n const opacity = (packed_color & 255) / 255;\n\n splatCallback(\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n };\n }\n\n const elementCallback = (element: PlyElement) => {\n if (element.name === \"chunk\") {\n // \"chunk\" could conceivably be used for other formats, and we would\n // ideally check for the comment: Generated by SuperSplat 2.*\n // but gsplat also outputs this format without such a comment.\n // In order to support both, let's assume a \"chunk\" element should\n // be interpreted as this format.\n return initSuperSplat(element);\n }\n if (isSuperSplat) {\n return decodeSuperSplat(element);\n }\n\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const {\n x,\n y,\n z,\n scale_0,\n scale_1,\n scale_2,\n rot_0,\n rot_1,\n rot_2,\n rot_3,\n opacity,\n f_dc_0,\n f_dc_1,\n f_dc_2,\n red,\n green,\n blue,\n alpha,\n } = element.properties;\n\n if (!x || !y || !z) {\n throw new Error(\"Missing PLY properties: x, y, z\");\n }\n // Pure point cloud PLY files have no scales or rotations\n const hasScales = scale_0 && scale_1 && scale_2;\n const hasRots = rot_0 && rot_1 && rot_2 && rot_3;\n // Quantization scale factor for argb values\n const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1;\n const redDiv = red != null ? FIELD_SCALE[red.type] : 1;\n const greenDiv = green != null ? FIELD_SCALE[green.type] : 1;\n const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1;\n\n numSh = getNumSh(element.properties);\n prepareSh();\n\n return (index: number, item: Record) => {\n const scaleX = hasScales\n ? Math.exp(item.scale_0 as number)\n : PlyReader.defaultPointScale;\n const scaleY = hasScales\n ? Math.exp(item.scale_1 as number)\n : PlyReader.defaultPointScale;\n const scaleZ = hasScales\n ? Math.exp(item.scale_2 as number)\n : PlyReader.defaultPointScale;\n\n const quatX = hasRots ? (item.rot_1 as number) : 0;\n const quatY = hasRots ? (item.rot_2 as number) : 0;\n const quatZ = hasRots ? (item.rot_3 as number) : 0;\n const quatW = hasRots ? (item.rot_0 as number) : 1;\n\n const op =\n opacity != null\n ? 1.0 / (1.0 + Math.exp(-item.opacity as number))\n : alpha != null\n ? (item.alpha as number) / alphaDiv\n : 1.0;\n const r =\n f_dc_0 != null\n ? (item.f_dc_0 as number) * SH_C0 + 0.5\n : red != null\n ? (item.red as number) / redDiv\n : 1.0;\n const g =\n f_dc_1 != null\n ? (item.f_dc_1 as number) * SH_C0 + 0.5\n : green != null\n ? (item.green as number) / greenDiv\n : 1.0;\n const b =\n f_dc_2 != null\n ? (item.f_dc_2 as number) * SH_C0 + 0.5\n : blue != null\n ? (item.blue as number) / blueDiv\n : 1.0;\n\n splatCallback(\n index,\n item.x as number,\n item.y as number,\n item.z as number,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n op,\n r,\n g,\n b,\n );\n\n if (shCallback && sh1) {\n const sh = item.f_rest as number[];\n if (sh1) {\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = sh[sh1Props[i]];\n }\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = sh[sh2Props[i]];\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = sh[sh3Props[i]];\n }\n }\n shCallback(index, sh1, sh2, sh3);\n }\n };\n };\n\n this.parseData(elementCallback);\n }\n\n // Inject RGBA values into original PLY file, which can be used to modify\n // the color/opacity of the Gsplats and write out the modified PLY file.\n injectRgba(rgba: Uint8Array) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No parsed data\");\n }\n if (rgba.length !== this.numSplats * 4) {\n throw new Error(\"Invalid RGBA array length\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const parsers = [];\n\n let rgbaOffset = 0;\n const isVertex = elementName === \"vertex\";\n if (isVertex) {\n for (const name of [\"opacity\", \"f_dc_0\", \"f_dc_1\", \"f_dc_2\"]) {\n if (!properties[name] || properties[name].type !== \"float\") {\n throw new Error(`Can't injectRgba due to property: ${name}`);\n }\n }\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!property.isList) {\n if (isVertex) {\n if (\n propertyName === \"f_dc_0\" ||\n propertyName === \"f_dc_1\" ||\n propertyName === \"f_dc_2\"\n ) {\n const component = Number.parseInt(\n propertyName.slice(\"f_dc_\".length),\n );\n parsers.push(() => {\n // Inject DC coefficients\n const value =\n (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0;\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n } else if (propertyName === \"opacity\") {\n parsers.push(() => {\n // Inject opacity sigmoid, clamped to [-100, 100]\n const value = Math.max(\n -100,\n Math.min(\n 100,\n -Math.log(1.0 / (rgba[rgbaOffset + 3] / 255) - 1.0),\n ),\n );\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n }\n }\n parsers.push(() => {\n offset += FIELD_BYTES[property.type];\n });\n } else {\n parsers.push(() => {\n const length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n this.littleEndian,\n );\n offset += FIELD_BYTES[property.countType as PlyPropertyType];\n offset += length * FIELD_BYTES[property.type];\n });\n }\n }\n\n for (let index = 0; index < count; index++) {\n // Go through all the data and field parsers to compute offset\n for (const parser of parsers) {\n parser();\n }\n if (isVertex) {\n rgbaOffset += 4;\n }\n }\n }\n }\n}\n\nexport const SH_C0 = 0.28209479177387814;\n\ntype FieldParser = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n) => number;\ntype FieldSetter = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n) => void;\n\nconst PARSE_FIELD: Record = {\n char: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt8(offset);\n },\n uchar: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint8(offset);\n },\n short: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt16(offset, littleEndian);\n },\n ushort: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint16(offset, littleEndian);\n },\n int: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt32(offset, littleEndian);\n },\n uint: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint32(offset, littleEndian);\n },\n float: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat32(offset, littleEndian);\n },\n double: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat64(offset, littleEndian);\n },\n};\n\nconst SET_FIELD: Record = {\n char: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt8(offset, value);\n },\n uchar: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint8(offset, value);\n },\n short: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt16(offset, value, littleEndian);\n },\n ushort: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint16(offset, value, littleEndian);\n },\n int: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt32(offset, value, littleEndian);\n },\n uint: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint32(offset, value, littleEndian);\n },\n float: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat32(offset, value, littleEndian);\n },\n double: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat64(offset, value, littleEndian);\n },\n};\n\nconst FIELD_BYTES: Record = {\n char: 1,\n uchar: 1,\n short: 2,\n ushort: 2,\n int: 4,\n uint: 4,\n float: 4,\n double: 8,\n};\n\nconst FIELD_SCALE: Record = {\n char: 127,\n uchar: 255,\n short: 32767,\n ushort: 65535,\n int: 2147483647,\n uint: 4294967295,\n float: 1,\n double: 1,\n};\n\nconst NUM_F_REST_TO_NUM_SH: Record = {\n 0: 0,\n 9: 1,\n 24: 2,\n 45: 3,\n};\nconst NUM_SH_TO_NUM_F_REST: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nconst F_REST_REGEX = /^f_rest_([0-9]{1,2})$/;\n\nfunction createEmptyItem(\n properties: Record,\n): Record {\n const item: Record = {};\n for (const [propertyName, property] of Object.entries(properties)) {\n // Treat f_rest properties as a single array for performance\n if (F_REST_REGEX.test(propertyName)) {\n item.f_rest = new Array(getNumSh(properties));\n } else {\n item[propertyName] = property.isList ? [] : 0;\n }\n }\n return item;\n}\n\nfunction createParseFn(\n properties: Record,\n littleEndian: boolean,\n) {\n if (USE_COMPILED_PARSER_FUNCTION && safeToCompile(properties)) {\n return createCompiledParserFn(properties, littleEndian);\n }\n return createDynamicParserFn(properties, littleEndian);\n}\n\n// Detect if unsafe eval is allowed in the current execution context\nconst UNSAFE_EVAL_ALLOWED = (() => {\n try {\n new Function(\"return 42;\");\n } catch (e) {\n return false;\n }\n return true;\n})();\nconst PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/;\n\nfunction safeToCompile(properties: Record) {\n if (!UNSAFE_EVAL_ALLOWED) {\n return false;\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!PROPERTY_NAME_REGEX.test(propertyName)) {\n return false;\n }\n\n if (\n property.isList &&\n !PLY_PROPERTY_TYPES.includes(property.countType as PlyPropertyType)\n ) {\n return false;\n }\n\n if (!PLY_PROPERTY_TYPES.includes(property.type)) {\n return false;\n }\n }\n return true;\n}\n\nfunction createCompiledParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct the parser function source.\n const parserSrc: string[] = [\"let list;\"];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parserSrc.push(/*js*/ `\n item.f_rest[${fRestIndex}] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else if (!property.isList) {\n parserSrc.push(/*js*/ `\n item['${propertyName}'] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else {\n // Property is a list, so parse the count first\n parserSrc.push(/*js*/ `\n list = item['${propertyName}'];\n list.length = PARSE_FIELD['${property.countType}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.countType as PlyPropertyType]};\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n }\n `);\n }\n }\n parserSrc.push(\"return offset;\");\n\n const fn = new Function(\n \"data\",\n \"offset\",\n \"item\",\n \"PARSE_FIELD\",\n parserSrc.join(\"\\n\"),\n );\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => fn(data, offset, item, PARSE_FIELD);\n}\n\nfunction createDynamicParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct an array of parser function to parse each property in an item\n const parsers: Array<\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => number\n > = [];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n (item.f_rest as number[])[fRestIndex] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else if (!property.isList) {\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n item[propertyName] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else {\n // Property is a list, so parse the count first\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n const list = item[propertyName] as number[];\n list.length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n littleEndian,\n );\n let currentOffset =\n offset + FIELD_BYTES[property.countType as PlyPropertyType];\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD[property.type](\n data,\n currentOffset,\n littleEndian,\n );\n currentOffset += FIELD_BYTES[property.type];\n }\n return currentOffset;\n },\n );\n }\n }\n\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n let currentOffset = offset;\n for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) {\n currentOffset = parsers[parserIndex](data, currentOffset, item);\n }\n return currentOffset;\n };\n}\n\nfunction getNumSh(properties: Record) {\n let num_f_rest = 0;\n while (properties[`f_rest_${num_f_rest}`]) {\n num_f_rest += 1;\n }\n const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest];\n if (numSh == null) {\n throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`);\n }\n return numSh;\n}\n\ntype SSChunk = {\n min_x: number;\n min_y: number;\n min_z: number;\n max_x: number;\n max_y: number;\n max_z: number;\n min_scale_x: number;\n min_scale_y: number;\n min_scale_z: number;\n max_scale_x: number;\n max_scale_y: number;\n max_scale_z: number;\n min_r?: number;\n min_g?: number;\n min_b?: number;\n max_r?: number;\n max_g?: number;\n max_b?: number;\n};\n","import { unzipSync } from \"fflate\";\nimport { FileLoader, Loader, type LoadingManager } from \"three\";\nimport { ExtSplats, type ExtSplatsOptions } from \"./ExtSplats\";\nimport { withWorker } from \"./OldSplatWorker\";\nimport { PackedSplats, type PackedSplatsOptions } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { type SplatEncoding, SplatFileType } from \"./defines\";\nimport { PlyReader } from \"./ply\";\nimport { decompressPartialGzip, getTextureSize } from \"./utils\";\n\n// SplatLoader implements the THREE.Loader interface and supports loading a variety\n// of different Gsplat file formats. Formats .PLY and .SPZ can be auto-detected\n// from the file contents, while .SPLAT and .KSPLAT require either having the\n// appropriate file extension as part of the path, or it can be explicitly set\n// in the loader using the fileType property.\n\nexport class SplatLoader extends Loader {\n fileLoader: FileLoader;\n\n constructor(manager?: LoadingManager) {\n super(manager);\n this.fileLoader = new FileLoader(manager);\n }\n\n load(\n url: string,\n onLoad?: (decoded: PackedSplats | ExtSplats) => void,\n onProgress?: (event: ProgressEvent) => void,\n onError?: (error: unknown) => void,\n ) {\n return this.loadInternal({\n url,\n onLoad,\n onProgress,\n onError,\n });\n }\n\n async loadAsync(\n url: string,\n onProgress?: (event: ProgressEvent) => void,\n ): Promise {\n return new Promise((resolve, reject) => {\n this.load(\n url,\n (decoded) => {\n resolve(decoded);\n },\n onProgress,\n reject,\n );\n });\n }\n\n parse(packedSplats: PackedSplats): SplatMesh {\n return new SplatMesh({ packedSplats });\n }\n\n loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad,\n onProgress,\n onError,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onLoad?: (decoded: PackedSplats | ExtSplats) => void;\n onProgress?: (event: ProgressEvent) => void;\n onError?: (error: unknown) => void;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n if (fileBytes instanceof ArrayBuffer) {\n fileBytes = new Uint8Array(fileBytes);\n }\n const resolvedURL = fileBytes\n ? undefined\n : this.manager.resolveURL((this.path ?? \"\") + (url ?? \"\"));\n\n let readStream = stream?.getReader();\n\n this.manager.itemStart(resolvedURL ?? \"\");\n // let calledOnLoad = false;\n\n workerPool\n .withWorker(async (worker) => {\n // If LoD is set and not falsey\n const splatsLod = packedSplats?.lod ?? extSplats?.lod;\n if (splatsLod) {\n lod = splatsLod;\n }\n const splatsNonLod = packedSplats?.nonLod ?? extSplats?.nonLod;\n if (splatsNonLod !== undefined) {\n nonLod = splatsNonLod;\n }\n\n // let init: {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // } | null = null;\n // let initExt: {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // } | null = null;\n\n const onStatus = async (data: unknown) => {\n const { loaded, total } = data as { loaded: number; total: number };\n if (loaded !== undefined && onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n\n if ((data as { nextChunk?: boolean }).nextChunk) {\n let chunk: Uint8Array;\n if (!readStream) {\n chunk = new Uint8Array(0);\n } else {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n readStream = undefined;\n chunk = new Uint8Array(0);\n } else {\n chunk = value;\n }\n }\n worker.call(\"nextChunk\", { chunk });\n }\n\n // if ((data as { orig?: unknown }).orig) {\n // if (extSplats) {\n // initExt = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // };\n // extSplats.initialize({\n // numSplats: initExt?.numSplats,\n // extArrays: [initExt?.ext0, initExt?.ext1],\n // extra: initExt?.extra,\n // });\n // calledOnLoad = true;\n // onLoad?.(extSplats);\n // } else if (packedSplats) {\n // init = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // };\n // packedSplats.initialize({\n // numSplats: init?.numSplats,\n // packedArray: init?.packedArray,\n // extra: init?.extra,\n // splatEncoding: init?.splatEncoding,\n // });\n // calledOnLoad = true;\n // onLoad?.(packedSplats);\n // } else {\n // console.warn(\"No splats to initialize\");\n // }\n // }\n };\n\n const basedUrl = resolvedURL\n ? new URL(resolvedURL, window.location.href).toString()\n : undefined;\n const decoded = (await worker.call(\n extSplats ? \"loadExtSplats\" : \"loadPackedSplats\",\n {\n url: basedUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n fileBytes: fileBytes?.slice(),\n fileType,\n pathName: resolvedURL || fileName,\n chunked: stream !== undefined,\n chunkedLength: streamLength,\n encoding: packedSplats?.splatEncoding,\n lod,\n lodBase,\n nonLod,\n lodAbove,\n },\n { onStatus },\n )) as {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n lodSplats?:\n | {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n }\n | PackedSplats\n | ExtSplats;\n };\n\n if (decoded.lodSplats) {\n if (extSplats) {\n decoded.lodSplats = new ExtSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n }),\n });\n } else {\n decoded.lodSplats = new PackedSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n }),\n maxSplats: packedSplats?.maxSplats,\n });\n }\n }\n\n if (extSplats) {\n const initExtSplats = {\n // ...(initExt ?? {}),\n ...decoded,\n };\n extSplats.initialize(initExtSplats as ExtSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(extSplats);\n // }\n } else {\n const initSplats = {\n // ...(init ?? {}),\n ...decoded,\n };\n if (packedSplats) {\n packedSplats.initialize(initSplats as PackedSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(packedSplats);\n // }\n } else {\n // if (!calledOnLoad) {\n onLoad?.(new PackedSplats(initSplats as PackedSplatsOptions));\n // }\n }\n }\n })\n .catch((error) => {\n this.manager.itemError(resolvedURL ?? \"\");\n onError?.(error);\n })\n .finally(() => {\n this.manager.itemEnd(resolvedURL ?? \"\");\n });\n }\n\n async loadInternalAsync({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onProgress?: (event: ProgressEvent) => void;\n lod?: boolean;\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n return new Promise((resolve, reject) => {\n this.loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad: resolve,\n onProgress,\n onError: reject,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n });\n });\n }\n}\n\nasync function fetchWithProgress(\n request: Request,\n onProgress?: (event: ProgressEvent) => void,\n) {\n const response = await fetch(request);\n if (!response.ok) {\n throw new Error(\n `${response.status} \"${response.statusText}\" fetching URL: ${request.url}`,\n );\n }\n if (!response.body) {\n throw new Error(`Response body is null for URL: ${request.url}`);\n }\n\n const reader = response.body.getReader();\n let loaded = 0;\n const chunks: Uint8Array[] = [];\n try {\n const contentLength = Number.parseInt(\n response.headers.get(\"Content-Length\") || \"0\",\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n loaded += value.length;\n\n if (onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n }\n } catch (err) {\n try {\n const reason = err instanceof Error ? err.message : \"Unknown error\";\n await reader.cancel(reason);\n } catch {}\n throw err;\n }\n\n // Combine chunks into a single buffer\n const bytes = new Uint8Array(loaded);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.length;\n }\n return bytes.buffer;\n}\n\nexport function getSplatFileType(\n fileBytes: Uint8Array,\n): SplatFileType | undefined {\n const view = new DataView(fileBytes.buffer);\n const magic = view.getUint32(0, true);\n if ((magic & 0x00ffffff) === 0x00796c70) {\n return SplatFileType.PLY;\n }\n if ((magic & 0x00ffffff) === 0x00088b1f) {\n // Gzipped file, unpack beginning to check magic number\n const header = decompressPartialGzip(fileBytes, 4);\n const gView = new DataView(header.buffer);\n if (gView.getUint32(0, true) === 0x5053474e) {\n return SplatFileType.SPZ;\n }\n // Unknown Gzipped file type\n return undefined;\n }\n if (magic === 0x04034b50) {\n // PKZip file\n if (tryPcSogsZip(fileBytes)) {\n return SplatFileType.PCSOGSZIP;\n }\n // Unknown PKZip file type\n return undefined;\n }\n if (magic === 0x30444152) {\n return SplatFileType.RAD;\n }\n // Unknown file type\n return undefined;\n}\n\n// Returns the lowercased file extension from a path or URL\nexport function getFileExtension(pathOrUrl: string): string {\n const noTrailing = pathOrUrl.split(/[?#]/, 1)[0];\n const lastSlash = Math.max(\n noTrailing.lastIndexOf(\"/\"),\n noTrailing.lastIndexOf(\"\\\\\"),\n );\n const filename = noTrailing.slice(lastSlash + 1);\n const lastDot = filename.lastIndexOf(\".\");\n if (lastDot <= 0 || lastDot === filename.length - 1) {\n return \"\"; // No extension\n }\n return filename.slice(lastDot + 1).toLowerCase();\n}\n\nexport function getSplatFileTypeFromPath(\n pathOrUrl: string,\n): SplatFileType | undefined {\n const extension = getFileExtension(pathOrUrl);\n if (extension === \"ply\") {\n return SplatFileType.PLY;\n }\n if (extension === \"spz\") {\n return SplatFileType.SPZ;\n }\n if (extension === \"splat\") {\n return SplatFileType.SPLAT;\n }\n if (extension === \"ksplat\") {\n return SplatFileType.KSPLAT;\n }\n if (extension === \"sog\") {\n return SplatFileType.PCSOGSZIP;\n }\n if (extension === \"rad\") {\n return SplatFileType.RAD;\n }\n return undefined;\n}\n\nexport type PcSogsJson = {\n means: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n quats: { shape: number[]; dtype: string; encoding?: string; files: string[] };\n sh0: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n shN?: {\n shape: number[];\n dtype: string;\n mins: number;\n maxs: number;\n quantization: number;\n files: string[];\n };\n};\n\nexport type PcSogsV2Json = {\n version: 2;\n count: number;\n antialias?: boolean;\n means: {\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n codebook: number[];\n files: string[];\n };\n quats: { files: string[] };\n sh0: {\n codebook: number[];\n files: string[];\n };\n shN?: {\n count: number;\n bands: number;\n codebook: number[];\n files: string[];\n };\n};\n\nexport function isPcSogs(input: ArrayBuffer | Uint8Array | string): boolean {\n // Returns true if the input seems to be a valid PC SOGS file\n return tryPcSogs(input) !== undefined;\n}\n\nexport function tryPcSogs(\n input: ArrayBuffer | Uint8Array | string,\n): PcSogsJson | PcSogsV2Json | undefined {\n // Try to parse input as SOGS JSON and see if it's valid\n try {\n let text: string;\n if (typeof input === \"string\") {\n text = input;\n } else {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n if (fileBytes.length > 65536) {\n // Should be only a few KB, definitely not a SOGS JSON file\n return undefined;\n }\n text = new TextDecoder().decode(fileBytes);\n }\n\n const json = JSON.parse(text);\n if (!json || typeof json !== \"object\" || Array.isArray(json)) {\n return undefined;\n }\n const isVersion2 = json.version === 2;\n\n for (const key of [\"means\", \"scales\", \"quats\", \"sh0\"]) {\n if (\n !json[key] ||\n typeof json[key] !== \"object\" ||\n Array.isArray(json[key])\n ) {\n return undefined;\n }\n if (isVersion2) {\n // Expect files\n if (!json[key].files) {\n return undefined;\n }\n\n // Scales and sh0 should have codebooks\n if ((key === \"scales\" || key === \"sh0\") && !json[key].codebook) {\n return undefined;\n }\n // Means should have mins and maxs defined\n if (key === \"means\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n } else {\n // Expect shape and files\n if (!json[key].shape || !json[key].files) {\n return undefined;\n }\n // Besides 'quats' all other properties have mins and maxs\n if (key !== \"quats\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n }\n }\n // This is probably a PC SOGS file\n return json as PcSogsJson | PcSogsV2Json;\n } catch {\n return undefined;\n }\n}\n\nexport function tryPcSogsZip(\n input: ArrayBuffer | Uint8Array,\n): { name: string; json: PcSogsJson | PcSogsV2Json } | undefined {\n try {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let metaFilename: string | null = null;\n\n const unzipped = unzipSync(fileBytes, {\n filter: ({ name }) => {\n const filename = name.split(/[\\\\/]/).pop() as string;\n if (filename === \"meta.json\") {\n metaFilename = name;\n return true;\n }\n return false;\n },\n });\n if (!metaFilename) {\n return undefined;\n }\n\n // Check for PC SOGS V1 and V2 (aka SOG)\n const json = tryPcSogs(unzipped[metaFilename]);\n if (!json) {\n return undefined;\n }\n return { name: metaFilename, json };\n } catch {\n return undefined;\n }\n}\n\nexport async function unpackSplats({\n input,\n extraFiles,\n fileType,\n pathOrUrl,\n splatEncoding,\n}: {\n input: Uint8Array | ArrayBuffer;\n extraFiles?: Record;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n splatEncoding?: SplatEncoding;\n}): Promise<{\n packedArray: Uint32Array;\n numSplats: number;\n extra?: Record;\n}> {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let splatFileType = fileType;\n if (!fileType) {\n splatFileType = getSplatFileType(fileBytes);\n if (!splatFileType && pathOrUrl) {\n splatFileType = getSplatFileTypeFromPath(pathOrUrl);\n }\n }\n\n switch (splatFileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes });\n await ply.parseHeader();\n const numSplats = ply.numSplats;\n const maxSplats = getTextureSize(numSplats).maxSplats;\n const args = {\n fileBytes,\n packedArray: new Uint32Array(maxSplats * 4),\n splatEncoding,\n };\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"unpackPly\",\n args,\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.SPZ: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodeSpz\",\n {\n fileBytes,\n splatEncoding,\n },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.SPLAT: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats } = (await worker.call(\n \"decodeAntiSplat\",\n {\n fileBytes,\n splatEncoding,\n },\n )) as { packedArray: Uint32Array; numSplats: number };\n return { packedArray, numSplats };\n });\n }\n case SplatFileType.KSPLAT: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodeKsplat\",\n { fileBytes, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.PCSOGS: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodePcSogs\",\n { fileBytes, extraFiles, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.PCSOGSZIP: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodePcSogsZip\",\n { fileBytes, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n default: {\n throw new Error(`Unknown splat file type: ${splatFileType}`);\n }\n }\n}\n\nexport class SplatData {\n numSplats: number;\n maxSplats: number;\n centers: Float32Array;\n scales: Float32Array;\n quaternions: Float32Array;\n opacities: Float32Array;\n colors: Float32Array;\n sh1?: Float32Array;\n sh2?: Float32Array;\n sh3?: Float32Array;\n\n constructor({ maxSplats = 1 }: { maxSplats?: number } = {}) {\n this.numSplats = 0;\n this.maxSplats = getTextureSize(maxSplats).maxSplats;\n this.centers = new Float32Array(this.maxSplats * 3);\n this.scales = new Float32Array(this.maxSplats * 3);\n this.quaternions = new Float32Array(this.maxSplats * 4);\n this.opacities = new Float32Array(this.maxSplats);\n this.colors = new Float32Array(this.maxSplats * 3);\n }\n\n pushSplat(): number {\n const index = this.numSplats;\n this.ensureIndex(index);\n this.numSplats += 1;\n return index;\n }\n\n unpushSplat(index: number) {\n if (index === this.numSplats - 1) {\n this.numSplats -= 1;\n } else {\n throw new Error(\"Cannot unpush splat from non-last position\");\n }\n }\n\n ensureCapacity(numSplats: number) {\n if (numSplats > this.maxSplats) {\n const targetSplats = Math.max(numSplats, this.maxSplats * 2);\n const newCenters = new Float32Array(targetSplats * 3);\n const newScales = new Float32Array(targetSplats * 3);\n const newQuaternions = new Float32Array(targetSplats * 4);\n const newOpacities = new Float32Array(targetSplats);\n const newColors = new Float32Array(targetSplats * 3);\n newCenters.set(this.centers);\n newScales.set(this.scales);\n newQuaternions.set(this.quaternions);\n newOpacities.set(this.opacities);\n newColors.set(this.colors);\n this.centers = newCenters;\n this.scales = newScales;\n this.quaternions = newQuaternions;\n this.opacities = newOpacities;\n this.colors = newColors;\n\n if (this.sh1) {\n const newSh1 = new Float32Array(targetSplats * 9);\n newSh1.set(this.sh1);\n this.sh1 = newSh1;\n }\n if (this.sh2) {\n const newSh2 = new Float32Array(targetSplats * 15);\n newSh2.set(this.sh2);\n this.sh2 = newSh2;\n }\n if (this.sh3) {\n const newSh3 = new Float32Array(targetSplats * 21);\n newSh3.set(this.sh3);\n this.sh3 = newSh3;\n }\n\n this.maxSplats = targetSplats;\n }\n }\n\n ensureIndex(index: number) {\n this.ensureCapacity(index + 1);\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n this.centers[index * 3] = x;\n this.centers[index * 3 + 1] = y;\n this.centers[index * 3 + 2] = z;\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n this.scales[index * 3] = scaleX;\n this.scales[index * 3 + 1] = scaleY;\n this.scales[index * 3 + 2] = scaleZ;\n }\n\n setQuaternion(index: number, x: number, y: number, z: number, w: number) {\n this.quaternions[index * 4] = x;\n this.quaternions[index * 4 + 1] = y;\n this.quaternions[index * 4 + 2] = z;\n this.quaternions[index * 4 + 3] = w;\n }\n\n setOpacity(index: number, opacity: number) {\n this.opacities[index] = opacity;\n }\n\n setColor(index: number, r: number, g: number, b: number) {\n this.colors[index * 3] = r;\n this.colors[index * 3 + 1] = g;\n this.colors[index * 3 + 2] = b;\n }\n\n setSh1(index: number, sh1: Float32Array) {\n if (!this.sh1) {\n this.sh1 = new Float32Array(this.maxSplats * 9);\n }\n for (let j = 0; j < 9; ++j) {\n this.sh1[index * 9 + j] = sh1[j];\n }\n }\n\n setSh2(index: number, sh2: Float32Array) {\n if (!this.sh2) {\n this.sh2 = new Float32Array(this.maxSplats * 15);\n }\n for (let j = 0; j < 15; ++j) {\n this.sh2[index * 15 + j] = sh2[j];\n }\n }\n\n setSh3(index: number, sh3: Float32Array) {\n if (!this.sh3) {\n this.sh3 = new Float32Array(this.maxSplats * 21);\n }\n for (let j = 0; j < 21; ++j) {\n this.sh3[index * 21 + j] = sh3[j];\n }\n }\n}\n\nexport async function transcodeSpz(\n input: TranscodeSpzInput,\n): Promise<{ input: TranscodeSpzInput; fileBytes: Uint8Array }> {\n return await withWorker(async (worker) => {\n const result = (await worker.call(\"transcodeSpz\", input)) as {\n input: TranscodeSpzInput;\n fileBytes: Uint8Array;\n };\n return result;\n });\n}\n\nexport type FileInput = {\n fileBytes: Uint8Array;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n transform?: { translate?: number[]; quaternion?: number[]; scale?: number };\n};\n\nexport type TranscodeSpzInput = {\n inputs: FileInput[];\n maxSh?: number;\n clipXyz?: { min: number[]; max: number[] };\n fractionalBits?: number;\n opacityThreshold?: number;\n};\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport type { RgbaArray } from \"./RgbaArray\";\nimport type { GsplatGenerator } from \"./SplatGenerator\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n DynoProgram,\n DynoProgramTemplate,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n add,\n dynoBlock,\n normalize,\n outputPackedSplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport {\n type Gsplat,\n TPackedSplats,\n combineGsplat,\n definePackedSplats,\n readPackedSplat,\n splatTexCoord,\n splitGsplat,\n} from \"./dyno/splats\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, setPackedSplat, unpackSplat } from \"./utils\";\n\n// Initialize a PackedSplats collection from source data via\n// url, fileBytes, or packedArray. Creates an empty array if none are set,\n// and splat data can be constructed using pushSplat()/setSplat(). The maximum\n// splat size allocation will grow automatically, starting from maxSplats.\nexport type PackedSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided packed data array, where each 4 consecutive uint32 values\n // encode one \"packed\" Gsplat. (default: undefined)\n packedArray?: Uint32Array;\n // Override number of splats in packed array to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the PackedSplats\n lodSplats?: PackedSplats;\n};\n\n// A PackedSplats is a collection of Gaussian splats, packed into a format that\n// takes exactly 16 bytes per Gsplat to maximize memory and cache efficiency.\n// The center xyz coordinates are encoded as float16 (3 x 2 bytes), scale xyz\n// as 3 x uint8 that encode a log scale from e^-12 to e^9, rgba as 4 x uint8,\n// and quaternion encoded via axis+angle using 2 x uint8 for octahedral encoding\n// of the axis direction and a uint8 to encode rotation amount from 0..Pi.\n\nexport class PackedSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n packedArray: Uint32Array | null = null;\n extra: Record;\n maxSh = 3;\n splatEncoding?: SplatEncoding;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: PackedSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n // Either target or source will be non-null, depending on whether the PackedSplats\n // is being used as a data source or generated to.\n target: THREE.WebGLArrayRenderTarget | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source packedArray is updated to have it upload to GPU\n needsUpdate = true;\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoRgbMinMaxLnScaleMinMax: DynoUniform<\"vec4\", \"rgbMinMaxLnScaleMinMax\">;\n dynoNumSh: DynoInt<\"numSh\">;\n dynoShMax: DynoVec3;\n\n constructor(options: PackedSplatsOptions = {}) {\n this.extra = {};\n this.dyno = new DynoPackedSplats({ packedSplats: this });\n this.dynoRgbMinMaxLnScaleMinMax = new DynoVec4({\n key: \"rgbMinMaxLnScaleMinMax\",\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n update: (value) => {\n value.set(\n this.splatEncoding?.rgbMin ?? 0.0,\n this.splatEncoding?.rgbMax ?? 1.0,\n this.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n return value;\n },\n });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n this.dynoShMax = new DynoVec3({\n key: \"shMax\",\n value: new THREE.Vector3(),\n update: (value) => {\n value.set(\n this.splatEncoding?.sh1Max ?? 1.0,\n this.splatEncoding?.sh2Max ?? 1.0,\n this.splatEncoding?.sh3Max ?? 1.0,\n );\n return value;\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: PackedSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.splatEncoding = options.splatEncoding;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: PackedSplatsOptions) {\n this.extra = options.extra ?? {};\n this.splatEncoding = options.splatEncoding ?? this.splatEncoding;\n this.lodSplats = options.lodSplats;\n\n if (options.packedArray) {\n this.packedArray = options.packedArray;\n this.numSplats = options.numSplats ?? this.packedArray.length / 4;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats = Math.floor(this.packedArray.length / 4);\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n }\n }\n\n async asyncInitialize(options: PackedSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n packedSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target.texture.source.data = null;\n this.target = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source.source.data = null;\n this.source = null;\n }\n\n this.packedArray = null;\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"PackedSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3 ? 2 : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readPackedSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3Texture } = this.ensureShTextures();\n let { rgb } = evaluatePackedSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax: this.dynoShMax,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 2,\n );\n if (sh1.length < maxSplats * 2) {\n const newSh1 = new Uint32Array(maxSplats * 2);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n\n const texture = new THREE.DataArrayTexture(sh1, width, height, depth);\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = new THREE.DataArrayTexture(sh2, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3Texture = this.extra.sh3Texture as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3Texture) {\n let sh3 = this.extra.sh3 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3.length / 4,\n );\n if (sh3.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3);\n this.extra.sh3 = newSh3;\n sh3 = newSh3;\n }\n\n const texture = new THREE.DataArrayTexture(sh3, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh3Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3Texture = sh3Texture;\n }\n\n return { sh1Texture, sh2Texture, sh3Texture };\n }\n\n // Ensures that this.packedArray can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): Uint32Array {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.packedArray ? 0 : this.packedArray.length / 4;\n\n if (!this.packedArray || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(this.maxSplats * 4);\n if (this.packedArray) {\n // Copy over existing data\n newArray.set(this.packedArray);\n }\n this.packedArray = newArray;\n }\n return this.packedArray;\n }\n\n // Ensure the extra array for the given level is large enough to hold numSplats\n ensureSplatsSh(level: number, numSplats: number): Uint32Array {\n let wordsPerSplat: number;\n let key: string;\n if (level === 0) {\n return this.ensureSplats(numSplats);\n }\n if (level === 1) {\n // 3 x 3 uint7 = 63 bits = 2 uint32\n wordsPerSplat = 2;\n key = \"sh1\";\n } else if (level === 2) {\n // 5 x 3 uint8 = 120 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh2\";\n } else if (level === 3) {\n // 7 x 3 uint6 = 126 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh3\";\n } else {\n throw new Error(`Invalid level: ${level}`);\n }\n\n // Figure out our current and desired maxSplats\n let maxSplats: number = !this.extra[key]\n ? 0\n : (this.extra[key] as Uint32Array).length / wordsPerSplat;\n const targetSize =\n numSplats <= maxSplats ? maxSplats : Math.max(numSplats, 2 * maxSplats);\n\n if (!this.extra[key] || targetSize > maxSplats) {\n // Reallocate the array\n maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(maxSplats * wordsPerSplat);\n if (this.extra[key]) {\n // Copy over existing data\n newArray.set(this.extra[key] as Uint32Array);\n }\n this.extra[key] = newArray;\n }\n return this.extra[key] as Uint32Array;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (!this.packedArray || index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return unpackSplat(this.packedArray, index, this.splatEncoding);\n }\n\n // Set all PackedSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(index + 1);\n setPackedSplat(\n packedSplats,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(this.numSplats + 1);\n setPackedSplat(\n packedSplats,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.packedArray || !this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = unpackSplat(this.packedArray, i, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Ensures our PackedSplats.target render target has enough space to generate\n // maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate(maxSplats: number): boolean {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n if (this.target) {\n this.target.dispose();\n }\n\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAIntegerFormat;\n this.target.texture.type = THREE.UnsignedIntType;\n this.target.texture.internalFormat = \"RGBA32UI\";\n this.target.scissorTest = true;\n return true;\n }\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Returns a THREE.DataArrayTexture representing the PackedSplats content as\n // a Uint32x4 data array texture (2048 x 2048 x depth in size)\n getTexture(): THREE.DataArrayTexture {\n if (this.target) {\n // Return the render target's texture\n return this.target.texture;\n }\n if (this.source || this.packedArray) {\n // Update source texture if needed and return\n const source = this.maybeUpdateSource();\n return source;\n }\n\n return PackedSplats.getEmptyArray;\n }\n\n // Check if source texture needs to be created/updated\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.packedArray) {\n throw new Error(\"No packed splats\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.source = new THREE.DataArrayTexture(\n this.packedArray as Uint32Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAIntegerFormat;\n this.source.type = THREE.UnsignedIntType;\n this.source.internalFormat = \"RGBA32UI\";\n this.source.needsUpdate = true;\n } else if (this.packedArray.buffer !== this.source.image.data.buffer) {\n // The source texture is the right size, update the data\n this.source.image.data = new Uint8Array(this.packedArray.buffer);\n }\n // Indicate to Three.js that the source texture needs to be uploaded to the GPU\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n static getEmptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(generator: GsplatGenerator): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = PackedSplats.generatorProgram.get(generator);\n if (!program) {\n // A Gsplat needs to be turned into a packed uvec4 for the dyno graph\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n generator.inputs.index = index;\n const gsplat = generator.outputs.gsplat;\n const output = outputPackedSplat(\n gsplat,\n this.dynoRgbMinMaxLnScaleMinMax,\n );\n roots.push(output);\n return undefined;\n },\n );\n if (!PackedSplats.programTemplate) {\n PackedSplats.programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { output: \"target\" },\n template: PackedSplats.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n PackedSplats.generatorProgram.set(generator, program);\n }\n\n // Prepare and update our material we'll use to render the Gsplats\n const material = program.prepareMaterial();\n PackedSplats.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Executes a dyno program specified by generator which is any DynoBlock that\n // maps { index: \"int\" } to { gsplat: Gsplat }. This is called in\n // SparkRenderer.updateInternal() to re-generate Gsplats in the scene for\n // SplatGenerator instances whose version is newer than what was generated\n // for it last time.\n generate({\n generator,\n base,\n count,\n renderer,\n }: {\n generator: GsplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }): { nextBase: number } {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureSplats\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(generator);\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n PackedSplats.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const packedArray = (this.packedArray as Uint32Array).slice();\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodPackedSplats\" : \"tinyLodPackedSplats\",\n {\n numSplats: this.numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding: this.splatEncoding ?? DEFAULT_SPLAT_ENCODING,\n },\n )) as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n };\n });\n\n const lodSplats = new PackedSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new PackedSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for GsplatGenerator programs\n static generatorProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\n// You can use a PackedSplats as a dyno block using the function\n// dyno.readPackedSplats(packedSplats.dyno, dynoIndex) where\n// dynoIndex is of type DynoVal<\"int\">. If you need to be able to change\n// the input PackedSplats dynamically, however, you should create a\n// DynoPackedSplats, whose property packedSplats you can change to any\n// PackedSplats and that will be used in the dyno shader program.\n\nexport const dynoPackedSplats = (packedSplats?: PackedSplats) =>\n new DynoPackedSplats({ packedSplats });\n\nexport class DynoPackedSplats extends DynoUniform<\n typeof TPackedSplats,\n \"packedSplats\",\n {\n textureArray: THREE.DataArrayTexture;\n numSplats: number;\n rgbMinMaxLnScaleMinMax: THREE.Vector4;\n lodOpacity: boolean;\n }\n> {\n packedSplats?: PackedSplats;\n\n constructor({ packedSplats }: { packedSplats?: PackedSplats } = {}) {\n super({\n key: \"packedSplats\",\n type: TPackedSplats,\n globals: () => [definePackedSplats],\n value: {\n textureArray: PackedSplats.getEmptyArray,\n numSplats: 0,\n rgbMinMaxLnScaleMinMax: new THREE.Vector4(\n 0,\n 1,\n LN_SCALE_MIN,\n LN_SCALE_MAX,\n ),\n lodOpacity: false,\n },\n update: (value) => {\n value.textureArray =\n this.packedSplats?.getTexture() ?? PackedSplats.getEmptyArray;\n value.numSplats = this.packedSplats?.numSplats ?? 0;\n value.rgbMinMaxLnScaleMinMax.set(\n this.packedSplats?.splatEncoding?.rgbMin ?? 0,\n this.packedSplats?.splatEncoding?.rgbMax ?? 1,\n this.packedSplats?.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.packedSplats?.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n value.lodOpacity =\n this.packedSplats?.splatEncoding?.lodOpacity ?? false;\n return value;\n },\n });\n this.packedSplats = packedSplats;\n }\n}\n\nexport const defineEvalPackedSH1 = unindent(`\n vec3 evaluatePackedSH1(uvec2 packedData, vec3 viewDir, float sh1Max) {\n // Extract sint7 values packed into 2 x uint32\n vec3 sh1_0 = vec3(ivec3(\n int(packedData.x << 25u) >> 25,\n int(packedData.x << 18u) >> 25,\n int(packedData.x << 11u) >> 25\n ));\n vec3 sh1_1 = vec3(ivec3(\n int(packedData.x << 4u) >> 25,\n int((packedData.x >> 3u) | (packedData.y << 29u)) >> 25,\n int(packedData.y << 22u) >> 25\n ));\n vec3 sh1_2 = vec3(ivec3(\n int(packedData.y << 15u) >> 25,\n int(packedData.y << 8u) >> 25,\n int(packedData.y << 1u) >> 25\n ));\n\n vec3 rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n return rgb * (sh1Max / 63.0);\n }\n`);\n\nexport const defineEvalPackedSH2 = unindent(`\n vec3 evaluatePackedSH2(uvec4 packedData, vec3 viewDir, float sh2Max) {\n // Extract sint8 values packed into 4 x uint32\n vec3 sh2_0 = vec3(ivec3(\n int(packedData.x << 24u) >> 24,\n int(packedData.x << 16u) >> 24,\n int(packedData.x << 8u) >> 24\n ));\n vec3 sh2_1 = vec3(ivec3(\n int(packedData.x) >> 24,\n int(packedData.y << 24u) >> 24,\n int(packedData.y << 16u) >> 24\n ));\n vec3 sh2_2 = vec3(ivec3(\n int(packedData.y << 8u) >> 24,\n int(packedData.y) >> 24,\n int(packedData.z << 24u) >> 24\n ));\n vec3 sh2_3 = vec3(ivec3(\n int(packedData.z << 16u) >> 24,\n int(packedData.z << 8u) >> 24,\n int(packedData.z) >> 24\n ));\n vec3 sh2_4 = vec3(ivec3(\n int(packedData.w << 24u) >> 24,\n int(packedData.w << 16u) >> 24,\n int(packedData.w << 8u) >> 24\n ));\n\n vec3 rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n return rgb * (sh2Max / 127.0);\n }\n`);\n\nexport const defineEvalPackedSH3 = unindent(`\n vec3 evaluatePackedSH3(uvec4 packedData, vec3 viewDir, float sh3Max) {\n // Extract sint6 values packed into 4 x uint32\n vec3 sh3_0 = vec3(ivec3(\n int(packedData.x << 26u) >> 26,\n int(packedData.x << 20u) >> 26,\n int(packedData.x << 14u) >> 26\n ));\n vec3 sh3_1 = vec3(ivec3(\n int(packedData.x << 8u) >> 26,\n int(packedData.x << 2u) >> 26,\n int((packedData.x >> 4u) | (packedData.y << 28u)) >> 26\n ));\n vec3 sh3_2 = vec3(ivec3(\n int(packedData.y << 22u) >> 26,\n int(packedData.y << 16u) >> 26,\n int(packedData.y << 10u) >> 26\n ));\n vec3 sh3_3 = vec3(ivec3(\n int(packedData.y << 4u) >> 26,\n int((packedData.y >> 2u) | (packedData.z << 30u)) >> 26,\n int(packedData.z << 24u) >> 26\n ));\n vec3 sh3_4 = vec3(ivec3(\n int(packedData.z << 18u) >> 26,\n int(packedData.z << 12u) >> 26,\n int(packedData.z << 6u) >> 26\n ));\n vec3 sh3_5 = vec3(ivec3(\n int(packedData.z) >> 26,\n int(packedData.w << 26u) >> 26,\n int(packedData.w << 20u) >> 26\n ));\n vec3 sh3_6 = vec3(ivec3(\n int(packedData.w << 14u) >> 26,\n int(packedData.w << 8u) >> 26,\n int(packedData.w << 2u) >> 26\n ));\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n vec3 rgb = sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n return rgb * (sh3Max / 31.0);\n }\n`);\n\nexport function evaluatePackedSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n shMax: DynoVal<\"vec3\">;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3Texture: \"usampler2DArray\",\n shMax: \"vec3\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n },\n globals: () => [\n defineEvalPackedSH1,\n defineEvalPackedSH2,\n defineEvalPackedSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0).rg, ${inputs.viewDir}, ${inputs.shMax}.x);\n rgb += sh1Rgb;\n `),\n );\n if (inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 2) {\n vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.y);\n rgb += sh2Rgb;\n `),\n );\n if (inputs.sh3Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${inputs.sh3Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.z);\n rgb += sh3Rgb;\n }\n `),\n );\n }\n lines.push(\"}\");\n }\n lines.push(\"}\");\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n","import * as THREE from \"three\";\n\nimport type { OldSparkRenderer } from \"./OldSparkRenderer\";\nimport type { OldSplatAccumulator } from \"./OldSplatAccumulator\";\nimport { OldSplatGeometry } from \"./OldSplatGeometry\";\nimport { withWorker } from \"./OldSplatWorker\";\nimport { DynoPackedSplats } from \"./PackedSplats\";\nimport { Readback } from \"./Readback\";\nimport {\n type DynoBlock,\n DynoBool,\n DynoFloat,\n type DynoVal,\n DynoVec3,\n Gsplat,\n add,\n combine,\n defineGsplat,\n dyno,\n dynoBlock,\n dynoConst,\n floatBitsToUint,\n mul,\n packHalf2x16,\n readPackedSplat,\n uintToRgba8,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { FreeList, withinCoorientDist } from \"./utils\";\n\nexport type OldSparkViewpointOptions = {\n /**\n * Controls whether to auto-update its sort order whenever the SparkRenderer\n * updates the Gsplats. If you expect to render/display from this viewpoint\n * most frames, set this to true.\n * @default false\n */\n autoUpdate?: boolean;\n /**\n * Set a THREE.Camera for this viewpoint to follow.\n * @default undefined\n */\n camera?: THREE.Camera;\n /**\n * Set an explicit view-to-world transformation matrix for this viewpoint (equivalent\n * to camera.matrixWorld), overrides any camera setting.\n * @default undefined\n */\n viewToWorld?: THREE.Matrix4;\n /**\n * Configure viewpoint with an off-screen render target.\n * @default undefined\n */\n target?: {\n /**\n * Width of the render target in pixels.\n */\n width: number;\n /**\n * Height of the render target in pixels.\n */\n height: number;\n /**\n * If you want to be able to render a scene that depends on this target's\n * output (for example, a recursive viewport), set this to true to enable\n * double buffering.\n * @default false\n */\n doubleBuffer?: boolean;\n /**\n * Super-sampling factor for the render target. Values 1-4 are supported.\n * Note that re-sampling back down to .width x .height is done on the CPU\n * with simple averaging only when calling readTarget().\n * @default 1\n */\n superXY?: number;\n };\n /**\n * Callback function that is called when the render target texture is updated.\n * Receives the texture as a parameter. Use this to update a viewport with\n * the latest viewpoint render each frame.\n * @default undefined\n */\n onTextureUpdated?: (texture: THREE.Texture) => void;\n /**\n * Whether to sort splats radially (geometric distance) from the viewpoint (true)\n * or by Z-depth (false). Most scenes are trained with the Z-depth sort metric\n * and will render more accurately at certain viewpoints. However, radial sorting\n * is more stable under viewpoint rotations.\n * @default true\n */\n sortRadial?: boolean;\n /**\n * Distance threshold for re-sorting splats. If the viewpoint moves more than\n * this distance, splats will be re-sorted.\n * @default 0.01 units\n */\n sortDistance?: number;\n /**\n * View direction dot product threshold for re-sorting splats. For\n * sortRadial: true we use 0.99 while sortRadial: false uses 0.999 because it is\n * more sensitive to view direction.\n * @default 0.99 if sortRadial else 0.999\n */\n sortCoorient?: boolean;\n /**\n * Constant added to Z-depth to bias values into the positive range for\n * sortRadial: false, but also used for culling Gsplats \"well behind\"\n * the viewpoint origin\n * @default 1.0\n */\n depthBias?: number;\n /**\n * Set this to true if rendering a 360 to disable \"behind the viewpoint\"\n * culling during sorting. This is set automatically when rendering 360 envMaps\n * using the SparkRenderer.renderEnvMap() utility function.\n * @default false\n */\n sort360?: boolean;\n /*\n * Set this to true to sort with float32 precision with two-pass sort.\n * @default true\n */\n sort32?: boolean;\n /*\n * Set this to true to enable sort-free stochastic splat rendering.\n * @default false\n */\n stochastic?: boolean;\n};\n\n// A SparkViewpoint is created from and tied to a SparkRenderer, and represents\n// an independent viewpoint of all the scene Gsplats and their sort order. Making\n// these viewpoints explicit allows us to have multiple, simultaneous viewpoint\n// renders, for example for camera preview panes or overhead map views.\n//\n// When creating a SparkRenderer it automatically creates a default viewpoint\n// .defaultView that is used in the normal render loop when drawing to the canvas,\n// and is automatically updated whenever the camera moves. Additional viewpoints\n// can be created and configured separately.\n\nexport class OldSparkViewpoint {\n spark: OldSparkRenderer;\n autoUpdate: boolean;\n camera?: THREE.Camera;\n viewToWorld: THREE.Matrix4;\n lastTime: number | null = null;\n\n target?: THREE.WebGLRenderTarget;\n private back?: THREE.WebGLRenderTarget;\n onTextureUpdated?: (texture: THREE.Texture) => void;\n encodeLinear = false;\n superXY = 1;\n private superPixels?: Uint8Array;\n private pixels?: Uint8Array;\n\n sortRadial: boolean;\n sortDistance?: number;\n sortCoorient?: boolean;\n depthBias?: number;\n sort360?: boolean;\n sort32?: boolean;\n stochastic: boolean;\n\n display: {\n accumulator: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n geometry: OldSplatGeometry;\n } | null = null;\n\n private sorting: { viewToWorld: THREE.Matrix4 } | null = null;\n private pending: {\n accumulator?: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n displayed: boolean;\n } | null = null;\n private sortingCheck = false;\n\n private readback16: Uint16Array = new Uint16Array(0);\n private readback32: Uint32Array = new Uint32Array(0);\n private orderingFreelist: FreeList;\n\n constructor(options: OldSparkViewpointOptions & { spark: OldSparkRenderer }) {\n this.spark = options.spark;\n this.camera = options.camera;\n this.viewToWorld = options.viewToWorld ?? new THREE.Matrix4();\n\n if (options.target) {\n const { width, height, doubleBuffer } = options.target;\n const superXY = Math.max(1, Math.min(4, options.target.superXY ?? 1));\n this.superXY = superXY;\n if (width * superXY > 8192 || height * superXY > 8192) {\n throw new Error(\"Target size too large\");\n }\n\n this.target = new THREE.WebGLRenderTarget(\n width * superXY,\n height * superXY,\n {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n },\n );\n if (doubleBuffer) {\n this.back = new THREE.WebGLRenderTarget(\n width * superXY,\n height * superXY,\n {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n },\n );\n }\n this.encodeLinear = true;\n }\n this.onTextureUpdated = options.onTextureUpdated;\n\n this.sortRadial = options.sortRadial ?? true;\n this.sortDistance = options.sortDistance;\n this.sortCoorient = options.sortCoorient;\n this.depthBias = options.depthBias;\n this.sort360 = options.sort360;\n this.sort32 = options.sort32;\n this.stochastic = options.stochastic ?? false;\n\n this.orderingFreelist = new FreeList({\n allocate: (maxSplats) =>\n new Uint32Array(maxSplats) as Uint32Array,\n valid: (ordering, maxSplats) => ordering.length === maxSplats,\n });\n\n this.autoUpdate = false;\n this.setAutoUpdate(options.autoUpdate ?? false);\n }\n\n // Call this when you are done with the SparkViewpoint and want to\n // free up its resources (GPU targets, pixel buffers, etc.)\n dispose() {\n this.setAutoUpdate(false);\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n if (this.back) {\n this.back.dispose();\n this.back = undefined;\n }\n if (this.display) {\n this.spark.releaseAccumulator(this.display.accumulator);\n this.display.geometry.dispose();\n this.display = null;\n }\n if (this.pending?.accumulator) {\n this.spark.releaseAccumulator(this.pending.accumulator);\n this.pending = null;\n }\n }\n\n // Use this function to change whether this viewpoint will auto-update\n // its sort order whenever the attached SparkRenderer updates the Gsplats.\n // Turn this on or off depending on whether you expect to do renders from\n // this viewpoint most frames.\n setAutoUpdate(autoUpdate: boolean) {\n if (!this.autoUpdate && autoUpdate) {\n this.spark.autoViewpoints.push(this);\n } else if (this.autoUpdate && !autoUpdate) {\n this.spark.autoViewpoints = this.spark.autoViewpoints.filter(\n (v) => v !== this,\n );\n }\n this.autoUpdate = autoUpdate;\n }\n\n // See below async prepareRenderPixels() for explanation of parameters.\n // Awaiting this method updates the Gsplats in the scene and performs a sort of the\n // Gsplats from this viewpoint, preparing it for a subsequent this.renderTarget()\n // call in the same tick.\n async prepare({\n scene,\n camera,\n viewToWorld,\n update,\n forceOrigin,\n }: {\n scene: THREE.Scene;\n camera?: THREE.Camera;\n viewToWorld?: THREE.Matrix4;\n update?: boolean;\n forceOrigin?: boolean;\n }) {\n if (viewToWorld) {\n this.viewToWorld = viewToWorld;\n } else {\n this.camera = camera ?? this.camera;\n if (this.camera) {\n this.camera.updateMatrixWorld();\n this.viewToWorld = this.camera.matrixWorld.clone();\n }\n }\n while (update ?? true) {\n // Force an update, possibly with origin centered at this camera\n // to yield the best quality output.\n const originToWorld = forceOrigin\n ? this.viewToWorld\n : this.spark.matrixWorld;\n const updated = this.spark.updateInternal({ scene, originToWorld });\n if (updated) {\n break;\n }\n // A bit of a hack, but try again. We shouldn't be starved for long.\n await new Promise((resolve) => setTimeout(resolve, 10));\n }\n\n const accumulator = this.spark.active;\n // Hold reference to accumulator while sorting\n accumulator.refCount += 1;\n await this.sortUpdate({ accumulator, viewToWorld: this.viewToWorld });\n // Release accumulator reference\n this.spark.releaseAccumulator(accumulator);\n }\n\n // Render out the viewpoint to the view target RGBA buffer.\n // Swaps buffers if doubleBuffer: true was set.\n // Calls onTextureUpdated(texture) with the resulting texture.\n renderTarget({\n scene,\n camera,\n }: { scene: THREE.Scene; camera?: THREE.Camera }) {\n const target = this.back ?? this.target;\n if (!target) {\n throw new Error(\"Must initialize SparkViewpoint with target\");\n }\n\n camera = camera ?? this.camera;\n if (!camera) {\n throw new Error(\"Must provide camera\");\n }\n if (camera instanceof THREE.PerspectiveCamera) {\n const newCam = new THREE.PerspectiveCamera().copy(camera, false);\n newCam.aspect = target.width / target.height;\n newCam.updateProjectionMatrix();\n camera = newCam;\n }\n this.viewToWorld = camera.matrixWorld.clone();\n\n const previousTarget = this.spark.renderer.getRenderTarget();\n try {\n this.spark.renderer.setRenderTarget(target);\n this.spark.prepareViewpoint(this);\n\n this.spark.renderer.render(scene, camera);\n } finally {\n this.spark.prepareViewpoint(this.spark.defaultView);\n this.spark.renderer.setRenderTarget(previousTarget);\n }\n\n if (target !== this.target) {\n // Swap back buffer and target\n [this.target, this.back] = [this.back, this.target];\n }\n this.onTextureUpdated?.(target.texture);\n }\n\n // Read back the previously rendered target image as a Uint8Array of packed\n // RGBA values (in that order). If superXY was set greater than 1 then\n // downsampling is performed in the target pixel array with simple averaging\n // to derive the returned pixel values. Subsequent calls to this.readTarget()\n // will reuse the same buffers to minimize memory allocations.\n async readTarget(): Promise {\n if (!this.target) {\n throw new Error(\"Must initialize SparkViewpoint with target\");\n }\n const { width, height } = this.target;\n const byteSize = width * height * 4;\n if (!this.superPixels || this.superPixels.length < byteSize) {\n this.superPixels = new Uint8Array(byteSize);\n }\n await this.spark.renderer.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n width,\n height,\n this.superPixels,\n );\n\n const { superXY } = this;\n if (superXY === 1) {\n return this.superPixels;\n }\n\n const subWidth = width / superXY;\n const subHeight = height / superXY;\n const subSize = subWidth * subHeight * 4;\n if (!this.pixels || this.pixels.length < subSize) {\n this.pixels = new Uint8Array(subSize);\n }\n\n const { superPixels, pixels } = this;\n const super2 = superXY * superXY;\n for (let y = 0; y < subHeight; y++) {\n const row = y * subWidth;\n for (let x = 0; x < subWidth; x++) {\n const superCol = x * superXY;\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n for (let sy = 0; sy < superXY; sy++) {\n const superRow = (y * superXY + sy) * this.target.width;\n for (let sx = 0; sx < superXY; sx++) {\n const superIndex = (superRow + superCol + sx) * 4;\n r += superPixels[superIndex];\n g += superPixels[superIndex + 1];\n b += superPixels[superIndex + 2];\n a += superPixels[superIndex + 3];\n }\n }\n const pixelIndex = (row + x) * 4;\n pixels[pixelIndex] = r / super2;\n pixels[pixelIndex + 1] = g / super2;\n pixels[pixelIndex + 2] = b / super2;\n pixels[pixelIndex + 3] = a / super2;\n }\n }\n return pixels;\n }\n\n // Render out a viewpoint as a Uint8Array of RGBA values for the provided scene\n // and any camera/viewToWorld viewpoint overrides. By default update is true,\n // which triggers its SparkRenderer to check and potentially update the Gsplats.\n // Setting update to false disables this and sorts the Gsplats as they are.\n // Setting forceOrigin (default: false) to true forces the view update to\n // recalculate the splats with this view origin, potentially altering any\n // view-dependent effects. If you expect view-dependent effects to play a role\n // in the rendering quality, enable this.\n //\n // Underneath, prepareRenderPixels() simply calls await this.prepare(...),\n // this.renderTarget(...), and finally returns the result this.readTarget(),\n // a Promise to a Uint8Array with RGBA values for all the pixels (potentially\n // downsampled if the superXY parameter was used). These steps can also be called\n // manually, for example if you need to alter the scene before and after\n // this.renderTarget(...) to hide UI elements from being rendered.\n async prepareRenderPixels({\n scene,\n camera,\n viewToWorld,\n update,\n forceOrigin,\n }: {\n scene: THREE.Scene;\n camera?: THREE.Camera;\n viewToWorld?: THREE.Matrix4;\n update?: boolean;\n forceOrigin?: boolean;\n }) {\n await this.prepare({ scene, camera, viewToWorld, update, forceOrigin });\n this.renderTarget({ scene, camera });\n return this.readTarget();\n }\n\n // This is called automatically by SparkRenderer, there is no need to call it!\n // The method cannot be private because then SparkRenderer would\n // not be able to call it.\n autoPoll({ accumulator }: { accumulator?: OldSplatAccumulator }) {\n if (this.camera) {\n this.camera.updateMatrixWorld();\n this.viewToWorld = this.camera.matrixWorld.clone();\n }\n\n let needsSort = false;\n let displayed = false;\n\n if (!this.display) {\n // Need to do first sort\n needsSort = true;\n } else if (accumulator) {\n needsSort = true;\n const { mappingVersion } = this.display.accumulator;\n if (accumulator.mappingVersion === mappingVersion) {\n // Splat mapping has not changed, so reuse the existing sorted\n // geometry to show updates faster. We will still fire off\n // a re-sort if necessary. First release old accumulator.\n accumulator.refCount += 1;\n this.spark.releaseAccumulator(this.display.accumulator);\n this.display.accumulator = accumulator;\n this.display.viewToWorld.copy(this.viewToWorld);\n displayed = true;\n\n if (this.spark.viewpoint === this) {\n this.spark.prepareViewpoint(this);\n }\n }\n }\n\n const latestView = this.sorting?.viewToWorld ?? this.display?.viewToWorld;\n if (\n latestView &&\n !withinCoorientDist({\n matrix1: this.viewToWorld,\n matrix2: latestView,\n // By default update sort each 1 cm\n maxDistance: this.sortDistance ?? 0.01,\n // By default for radial sort, update for intermittent movement so that\n // we bring back splats culled by being behind the camera.\n // For depth sort, small rotations can change sort order a lot, so\n // update sort for even small rotations.\n minCoorient: (this.sortCoorient ?? this.sortRadial) ? 0.99 : 0.999,\n })\n ) {\n needsSort = true;\n }\n\n if (!needsSort) {\n // Stop here, no sort necessary\n return;\n }\n\n if (accumulator) {\n // Hold a reference to the accumulator for sorting\n accumulator.refCount += 1;\n }\n\n if (this.pending?.accumulator) {\n this.spark.releaseAccumulator(this.pending.accumulator);\n }\n this.pending = { accumulator, viewToWorld: this.viewToWorld, displayed };\n\n // Don't await this, just trigger the sort if necessary\n this.driveSort();\n }\n\n private async driveSort() {\n while (true) {\n if (this.sorting || !this.pending) {\n return; // Sort already in process or nothing to sort\n }\n\n const { viewToWorld, displayed } = this.pending;\n let accumulator = this.pending.accumulator;\n if (!accumulator) {\n // Hold a reference to the accumulator while sorting\n accumulator = this.display?.accumulator ?? this.spark.active;\n accumulator.refCount += 1;\n }\n this.pending = null;\n if (!accumulator) {\n throw new Error(\"No accumulator to sort\");\n }\n\n this.sorting = { viewToWorld };\n await this.sortUpdate({ accumulator, viewToWorld, displayed });\n this.sorting = null;\n\n // Release the reference to the accumulator\n this.spark.releaseAccumulator(accumulator);\n\n // Continue in loop with any queued sort\n }\n }\n\n private async sortUpdate({\n accumulator,\n viewToWorld,\n displayed = false,\n }: {\n accumulator?: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n displayed?: boolean;\n }) {\n if (this.sortingCheck) {\n throw new Error(\"Only one sort at a time\");\n }\n this.sortingCheck = true;\n\n accumulator = accumulator ?? this.spark.active;\n const { numSplats, maxSplats } = accumulator.splats;\n let activeSplats = 0;\n let ordering = this.orderingFreelist.alloc(maxSplats);\n\n if (this.stochastic) {\n activeSplats = numSplats;\n // Render all splats in order since the Z-buffer\n // will handle ordering.\n for (let i = 0; i < numSplats; ++i) {\n ordering[i] = i;\n }\n } else if (numSplats > 0) {\n const {\n reader,\n doubleSortReader,\n sort32Reader,\n dynoSortRadial,\n dynoOrigin,\n dynoDirection,\n dynoDepthBias,\n dynoSort360,\n dynoSplats,\n } = OldSparkViewpoint.makeSorter();\n const sort32 = this.sort32 ?? false;\n let readback: Uint16Array | Uint32Array;\n if (sort32) {\n this.readback32 = reader.ensureBuffer(maxSplats, this.readback32);\n readback = this.readback32;\n } else {\n const halfMaxSplats = Math.ceil(maxSplats / 2);\n this.readback16 = reader.ensureBuffer(halfMaxSplats, this.readback16);\n readback = this.readback16;\n }\n\n const worldToOrigin = accumulator.toWorld.clone().invert();\n const viewToOrigin = viewToWorld.clone().premultiply(worldToOrigin);\n\n dynoSortRadial.value = this.sort360 ? true : this.sortRadial;\n dynoOrigin.value.set(0, 0, 0).applyMatrix4(viewToOrigin);\n dynoDirection.value\n .set(0, 0, -1)\n .applyMatrix4(viewToOrigin)\n .sub(dynoOrigin.value)\n .normalize();\n dynoDepthBias.value = this.depthBias ?? 1.0;\n dynoSort360.value = this.sort360 ?? false;\n dynoSplats.packedSplats = accumulator.splats;\n\n const sortReader = sort32 ? sort32Reader : doubleSortReader;\n const count = sort32 ? numSplats : Math.ceil(numSplats / 2);\n await reader.renderReadback({\n renderer: this.spark.renderer,\n reader: sortReader,\n count,\n readback,\n });\n\n const result = (await withWorker(async (worker) => {\n const rpcName = sort32 ? \"sort32Splats\" : \"sortDoubleSplats\";\n return worker.call(rpcName, {\n maxSplats,\n numSplats,\n readback,\n ordering,\n });\n })) as {\n readback: Uint16Array | Uint32Array;\n ordering: Uint32Array;\n activeSplats: number;\n };\n if (sort32) {\n this.readback32 = result.readback as Uint32Array;\n } else {\n this.readback16 = result.readback as Uint16Array;\n }\n ordering = result.ordering;\n activeSplats = result.activeSplats;\n }\n\n this.updateDisplay({\n accumulator,\n viewToWorld,\n ordering,\n activeSplats,\n displayed,\n });\n this.sortingCheck = false;\n }\n\n private updateDisplay({\n accumulator,\n viewToWorld,\n ordering,\n activeSplats,\n displayed = false,\n }: {\n accumulator: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n ordering: Uint32Array;\n activeSplats: number;\n displayed?: boolean;\n }) {\n if (!this.display) {\n // Hold a reference to the accumulator while part of display\n accumulator.refCount += 1;\n this.display = {\n accumulator,\n viewToWorld,\n geometry: new OldSplatGeometry(ordering, activeSplats),\n };\n } else {\n if (!displayed && accumulator !== this.display.accumulator) {\n // Hold a reference to the new accumulator being displayed\n accumulator.refCount += 1;\n // Release the reference to the previously displayed accumulator\n this.spark.releaseAccumulator(this.display.accumulator);\n this.display.accumulator = accumulator;\n }\n\n this.display.viewToWorld = viewToWorld;\n\n const oldOrdering = this.display.geometry.ordering;\n if (oldOrdering.length === ordering.length) {\n this.display.geometry.update(ordering, activeSplats);\n } else {\n this.display.geometry.dispose();\n // console.log(\"*** alloc SplatGeometry\", ordering.length);\n this.display.geometry = new OldSplatGeometry(ordering, activeSplats);\n }\n this.orderingFreelist.free(oldOrdering);\n }\n if (this.spark.viewpoint === this) {\n this.spark.prepareViewpoint(this);\n }\n }\n\n // If you need an empty THREE.Texture to use to initialize a uniform that is\n // updated via onTextureUpdated(texture), this static texture can be handy.\n static EMPTY_TEXTURE = new THREE.Texture();\n\n private static dynos: {\n dynoSortRadial: DynoBool;\n dynoOrigin: DynoVec3;\n dynoDirection: DynoVec3;\n dynoDepthBias: DynoFloat;\n dynoSort360: DynoBool;\n dynoSplats: DynoPackedSplats;\n reader: Readback;\n doubleSortReader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n sort32Reader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n } | null = null;\n\n private static makeSorter() {\n if (!OldSparkViewpoint.dynos) {\n const dynoSortRadial = new DynoBool({ value: true });\n const dynoOrigin = new DynoVec3({ value: new THREE.Vector3() });\n const dynoDirection = new DynoVec3({ value: new THREE.Vector3() });\n const dynoDepthBias = new DynoFloat({ value: 1.0 });\n const dynoSort360 = new DynoBool({ value: false });\n const dynoSplats = new DynoPackedSplats();\n\n const reader = new Readback();\n const doubleSortReader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"No index\");\n }\n const sortParams = {\n sortRadial: dynoSortRadial,\n sortOrigin: dynoOrigin,\n sortDirection: dynoDirection,\n sortDepthBias: dynoDepthBias,\n sort360: dynoSort360,\n };\n const index2 = mul(index, dynoConst(\"int\", 2));\n\n const gsplat0 = readPackedSplat(dynoSplats, index2);\n const metric0 = computeSortMetric({ gsplat: gsplat0, ...sortParams });\n\n const gsplat1 = readPackedSplat(\n dynoSplats,\n add(index2, dynoConst(\"int\", 1)),\n );\n const metric1 = computeSortMetric({ gsplat: gsplat1, ...sortParams });\n\n const combined = combine({\n vectorType: \"vec2\",\n x: metric0,\n y: metric1,\n });\n const rgba8 = uintToRgba8(packHalf2x16(combined));\n return { rgba8 };\n },\n );\n\n const sort32Reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"No index\");\n }\n const sortParams = {\n sortRadial: dynoSortRadial,\n sortOrigin: dynoOrigin,\n sortDirection: dynoDirection,\n sortDepthBias: dynoDepthBias,\n sort360: dynoSort360,\n };\n\n const gsplat = readPackedSplat(dynoSplats, index);\n const metric = computeSortMetric({ gsplat, ...sortParams });\n const rgba8 = uintToRgba8(floatBitsToUint(metric));\n return { rgba8 };\n },\n );\n\n OldSparkViewpoint.dynos = {\n dynoSortRadial,\n dynoOrigin,\n dynoDirection,\n dynoDepthBias,\n dynoSort360,\n dynoSplats,\n reader,\n doubleSortReader,\n sort32Reader,\n };\n }\n return OldSparkViewpoint.dynos;\n }\n}\n\nconst defineComputeSortMetric = unindent(`\n float computeSort(Gsplat gsplat, bool sortRadial, vec3 sortOrigin, vec3 sortDirection, float sortDepthBias, bool sort360) {\n if (!isGsplatActive(gsplat.flags)) {\n return INFINITY;\n }\n\n vec3 center = gsplat.center - sortOrigin;\n float biasedDepth = dot(center, sortDirection) + sortDepthBias;\n if (!sort360 && (biasedDepth <= 0.0)) {\n return INFINITY;\n }\n\n return sortRadial ? length(center) : biasedDepth;\n }\n`);\n\nfunction computeSortMetric({\n gsplat,\n sortRadial,\n sortOrigin,\n sortDirection,\n sortDepthBias,\n sort360,\n}: {\n gsplat: DynoVal;\n sortRadial: DynoVal<\"bool\">;\n sortOrigin: DynoVal<\"vec3\">;\n sortDirection: DynoVal<\"vec3\">;\n sortDepthBias: DynoVal<\"float\">;\n sort360: DynoVal<\"bool\">;\n}) {\n return dyno({\n inTypes: {\n gsplat: Gsplat,\n sortRadial: \"bool\",\n sortOrigin: \"vec3\",\n sortDirection: \"vec3\",\n sortDepthBias: \"float\",\n sort360: \"bool\",\n },\n outTypes: { metric: \"float\" },\n globals: () => [defineGsplat, defineComputeSortMetric],\n inputs: {\n gsplat,\n sortRadial,\n sortOrigin,\n sortDirection,\n sortDepthBias,\n sort360,\n },\n statements: ({ inputs, outputs }) => {\n const {\n gsplat,\n sortRadial,\n sortOrigin,\n sortDirection,\n sortDepthBias,\n sort360,\n } = inputs;\n return unindentLines(`\n ${outputs.metric} = computeSort(${gsplat}, ${sortRadial}, ${sortOrigin}, ${sortDirection}, ${sortDepthBias}, ${sort360});\n `);\n },\n }).outputs.metric;\n}\n","import * as THREE from \"three\";\n\nimport { PackedSplats } from \"./PackedSplats\";\nimport type { GeneratorMapping } from \"./SplatAccumulator\";\nimport type { SplatGenerator, SplatModifier } from \"./SplatGenerator\";\n\n// SplatAccumulator helps manage the generation of splats from multiple\n// SplatGenerators, keeping track of the splat mapping, coordinate system,\n// and reference count.\n\nexport class OldSplatAccumulator {\n splats = new PackedSplats();\n // The transform from Accumulator coordinate system to world coordinates.\n toWorld = new THREE.Matrix4();\n // An array of all Gsplat mappings that were used for generation\n mapping: GeneratorMapping[] = [];\n // Number of SparkViewpoints (or other) that reference this accumulator, used\n // to figure out when it can be recycled for use\n refCount = 0;\n\n // Incremented every time the splats are updated/generated.\n splatsVersion = -1;\n // Incremented every time the splat mapping/layout is updated.\n // Splat sort order can be reused between equivalent mapping versions.\n mappingVersion = -1;\n\n ensureGenerate(maxSplats: number) {\n if (this.splats.ensureGenerate(maxSplats)) {\n // If we had to resize our PackedSplats then clear all previous mappings\n this.mapping = [];\n }\n }\n\n // Generate all Gsplats from an array of generators\n generateSplats({\n renderer,\n modifier,\n generators,\n forceUpdate,\n originToWorld,\n }: {\n renderer: THREE.WebGLRenderer;\n modifier: SplatModifier;\n generators: GeneratorMapping[];\n forceUpdate?: boolean;\n originToWorld: THREE.Matrix4;\n }) {\n // Create a lookup from last SplatGenerator\n const mapping = this.mapping.reduce((map, record) => {\n map.set(record.node, record);\n return map;\n }, new Map());\n\n // Run generators that are different from existing mapping\n let updated = 0;\n let numSplats = 0;\n for (const { node, generator, version, base, count } of generators) {\n const current = mapping.get(node);\n if (\n forceUpdate ||\n generator !== current?.generator ||\n version !== current?.version ||\n base !== current?.base ||\n count !== current?.count\n ) {\n // Something is different from before so we should generate these Gsplats\n if (generator && count > 0) {\n const modGenerator = modifier.apply(generator);\n try {\n this.splats.generate({\n generator: modGenerator,\n base,\n count,\n renderer,\n });\n } catch (error) {\n node.generator = undefined;\n node.generatorError = error;\n }\n updated += 1;\n }\n }\n numSplats = Math.max(numSplats, base + count);\n }\n\n this.splats.numSplats = numSplats;\n this.toWorld.copy(originToWorld);\n this.mapping = generators;\n return updated !== 0;\n }\n\n // Check if this accumulator has exactly the same generator mapping as\n // the previous one. If so, we can reuse the Gsplat sort order.\n hasCorrespondence(other: OldSplatAccumulator) {\n if (this.mapping.length !== other.mapping.length) {\n return false;\n }\n return this.mapping.every(({ node, base, count }, i) => {\n const {\n node: otherNode,\n base: otherBase,\n count: otherCount,\n } = other.mapping[i];\n return node === otherNode && base === otherBase && count === otherCount;\n });\n }\n}\n","import * as THREE from \"three\";\n\nimport {\n OldSparkViewpoint,\n type OldSparkViewpointOptions,\n} from \"./OldSparkViewpoint\";\nimport { OldSplatAccumulator } from \"./OldSplatAccumulator\";\nimport { OldSplatGeometry } from \"./OldSplatGeometry\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { RgbaArray } from \"./RgbaArray\";\nimport type { GeneratorMapping } from \"./SplatAccumulator\";\nimport { SplatEdit } from \"./SplatEdit\";\nimport { SplatGenerator, SplatModifier } from \"./SplatGenerator\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n type SplatEncoding,\n} from \"./defines\";\nimport {\n DynoVec3,\n DynoVec4,\n Gsplat,\n TPackedSplats,\n dynoBlock,\n readPackedSplat,\n transformGsplat,\n} from \"./dyno\";\nimport { getShaders } from \"./shaders\";\nimport {\n averagePositions,\n averageQuaternions,\n cloneClock,\n withinCoorientDist,\n} from \"./utils\";\n\n// SparkRenderer aggregates splats from multiple generators into a single\n// accumulated collection per frame. In normal operation we only need a\n// maximum of 3 accumulators: One currently being viewed, one currently\n// being sorted, and one more for generating the next frame. Accumulators\n// must be \"released\" by each viewpoint using it, so in unusual cases\n// such as slow render-outs, we may want to allow more than 3 so the\n// pipeline can continue generating new frames, but we limit to a maximum\n// of 5 to avoid excessive memory usage.\nconst MAX_ACCUMULATORS = 5;\n\nexport type OldSparkRendererOptions = {\n /**\n * Pass in your THREE.WebGLRenderer instance so Spark can perform work\n * outside the usual render loop. Should be created with antialias: false\n * (default setting) as WebGL anti-aliasing doesn't improve Gaussian Splatting\n * rendering and significantly reduces performance.\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Whether to use premultiplied alpha when accumulating splat RGB\n * @default true\n */\n premultipliedAlpha?: boolean;\n /**\n * Pass in a THREE.Clock to synchronize time-based effects across different\n * systems. Alternatively, you can set the SparkRenderer properties time and\n * deltaTime directly. (default: new THREE.Clock)\n */\n clock?: THREE.Clock;\n /**\n * Controls whether to check and automatically update Gsplat collection after\n * each frame render.\n * @default true\n */\n autoUpdate?: boolean;\n /**\n * Controls whether to update the Gsplats before or after rendering. For WebXR\n * this must be false in order to complete rendering as soon as possible.\n * @default false\n */\n preUpdate?: boolean;\n /**\n * Distance threshold for SparkRenderer movement triggering a Gsplat update at\n * the new origin.\n * @default 1.0\n */\n originDistance?: number;\n /**\n * Maximum standard deviations from the center to render Gaussians. Values\n * Math.sqrt(5)..Math.sqrt(8) produce good results and can be tweaked for\n * performance.\n * @default Math.sqrt(8)\n */\n maxStdDev?: number;\n /**\n * Minimum pixel radius for splat rendering.\n * @default 0.0\n */\n minPixelRadius?: number;\n /**\n * Maximum pixel radius for splat rendering.\n * @default 512.0\n */\n maxPixelRadius?: number;\n /**\n * Minimum alpha value for splat rendering.\n * @default 0.5 * (1.0 / 255.0)\n */\n minAlpha?: number;\n /**\n * Enable 2D Gaussian splatting rendering ability. When this mode is enabled,\n * any scale x/y/z component that is exactly 0 (minimum quantized value) results\n * in the other two non-0 axis being interpreted as an oriented 2D Gaussian Splat,\n * rather instead of the usual projected 3DGS Z-slice. When reading PLY files,\n * scale values less than e^-30 will be interpreted as 0.\n * @default false\n */\n enable2DGS?: boolean;\n /**\n * Scalar value to add to 2D splat covariance diagonal, effectively blurring +\n * enlarging splats. In scenes trained without the Gsplat anti-aliasing tweak\n * this value was typically 0.3, but with anti-aliasing it is 0.0\n * @default 0.0\n */\n preBlurAmount?: number;\n /**\n * Scalar value to add to 2D splat covarianve diagonal, with opacity adjustment\n * to correctly account for \"blurring\" when anti-aliasing. Typically 0.3\n * (equivalent to approx 0.5 pixel radius) in scenes trained with anti-aliasing.\n */\n blurAmount?: number;\n /**\n * Depth-of-field distance to focal plane\n */\n focalDistance?: number;\n /**\n * Full-width angle of aperture opening (in radians), 0.0 to disable\n * @default 0.0\n */\n apertureAngle?: number;\n /**\n * Modulate Gaussian kernel falloff. 0 means \"no falloff, flat shading\",\n * while 1 is the normal Gaussian kernel.\n * @default 1.0\n */\n falloff?: number;\n /**\n * X/Y clipping boundary factor for Gsplat centers against view frustum.\n * 1.0 clips any centers that are exactly out of bounds, while 1.4 clips\n * centers that are 40% beyond the bounds.\n * @default 1.4\n */\n clipXY?: number;\n /**\n * Parameter to adjust projected splat scale calculation to match other renderers,\n * similar to the same parameter in the MKellogg 3DGS renderer. Higher values will\n * tend to sharpen the splats. A value 2.0 can be used to match the behavior of\n * the PlayCanvas renderer.\n * @default 1.0\n */\n focalAdjustment?: number;\n /**\n * Configures the SparkViewpointOptions for the default SparkViewpoint\n * associated with this SparkRenderer. Notable option: sortRadial (sort by\n * radial distance or Z-depth)\n */\n view?: OldSparkViewpointOptions;\n /**\n * Override the default splat encoding ranges for the PackedSplats.\n * (default: undefined)\n */\n splatEncoding?: SplatEncoding;\n};\n\nexport class OldSparkRenderer extends THREE.Mesh {\n renderer: THREE.WebGLRenderer;\n premultipliedAlpha: boolean;\n material: THREE.ShaderMaterial;\n uniforms: ReturnType;\n\n autoUpdate: boolean;\n preUpdate: boolean;\n needsUpdate: boolean;\n originDistance: number;\n maxStdDev: number;\n minPixelRadius: number;\n maxPixelRadius: number;\n minAlpha: number;\n enable2DGS: boolean;\n preBlurAmount: number;\n blurAmount: number;\n focalDistance: number;\n apertureAngle: number;\n falloff: number;\n clipXY: number;\n focalAdjustment: number;\n splatEncoding: SplatEncoding;\n\n splatTexture: null | {\n enable?: boolean;\n texture?: THREE.Data3DTexture;\n multiply?: THREE.Matrix2;\n add?: THREE.Vector2;\n near?: number;\n far?: number;\n mid?: number;\n } = null;\n\n time?: number;\n deltaTime?: number;\n clock: THREE.Clock;\n\n // Latest Gsplat collection being displayed\n active: OldSplatAccumulator;\n // Free list of accumulators for reuse\n private freeAccumulators: OldSplatAccumulator[];\n // Total number of accumulators currently allocated\n private accumulatorCount: number;\n // Default SparkViewpoint used for rendering to the canvas\n defaultView: OldSparkViewpoint;\n // List of SparkViewpoints with autoUpdate enabled\n autoViewpoints: OldSparkViewpoint[] = [];\n\n // Dynos used to transform Gsplats to the accumulator coordinate system\n private rotateToAccumulator = new DynoVec4({ value: new THREE.Quaternion() });\n private translateToAccumulator = new DynoVec3({ value: new THREE.Vector3() });\n private modifier: SplatModifier;\n\n // Last rendered frame number so we know when we're rendering a new frame\n private lastFrame = -1;\n // Last update timestamp to compute deltaTime\n private lastUpdateTime: number | null = null;\n // List of cameras used for the current viewpoint (for WebXR)\n private defaultCameras: THREE.Matrix4[] = [];\n private lastStochastic: boolean | null = null;\n\n // Should be set to the defaultView, but can be temporarily changed to another\n // viewpoint using prepareViewpoint() for rendering from a different viewpoint.\n viewpoint: OldSparkViewpoint;\n\n // Holds data needed to perform a scheduled Gsplat update.\n private pendingUpdate = {\n scene: null as THREE.Scene | null,\n originToWorld: new THREE.Matrix4(),\n timeoutId: -1,\n };\n\n // Internal SparkViewpoint used for environment map rendering.\n private envViewpoint: OldSparkViewpoint | null = null;\n\n // Data and buffers used for environment map rendering\n private static cubeRender: {\n target: THREE.WebGLCubeRenderTarget;\n camera: THREE.CubeCamera;\n near: number;\n far: number;\n } | null = null;\n private static pmrem: THREE.PMREMGenerator | null = null;\n\n static EMPTY_SPLAT_TEXTURE = new THREE.Data3DTexture();\n\n constructor(options: OldSparkRendererOptions) {\n const uniforms = OldSparkRenderer.makeUniforms();\n const shaders = getShaders();\n const premultipliedAlpha = options.premultipliedAlpha ?? true;\n const material = new THREE.ShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: shaders.oldSplatVertex,\n fragmentShader: shaders.oldSplatFragment,\n uniforms,\n premultipliedAlpha,\n transparent: true,\n depthTest: true,\n depthWrite: false,\n side: THREE.DoubleSide,\n });\n\n super(EMPTY_GEOMETRY, material);\n // Disable frustum culling because we want to always draw them all\n // and cull Gsplats individually in the shader\n this.frustumCulled = false;\n\n this.renderer = options.renderer;\n this.material = material;\n this.uniforms = uniforms;\n\n // Create a Gsplat modifier that takes the output of any SplatGenerator\n // and transforms them into the accumulator's coordinate system\n const modifier = dynoBlock(\n { gsplat: Gsplat },\n { gsplat: Gsplat },\n ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"gsplat not defined\");\n }\n gsplat = transformGsplat(gsplat, {\n rotate: this.rotateToAccumulator,\n translate: this.translateToAccumulator,\n });\n return { gsplat };\n },\n );\n this.modifier = new SplatModifier(modifier);\n\n this.premultipliedAlpha = premultipliedAlpha;\n this.autoUpdate = options.autoUpdate ?? true;\n this.preUpdate = options.preUpdate ?? false;\n this.needsUpdate = false;\n this.originDistance = options.originDistance ?? 1;\n this.maxStdDev = options.maxStdDev ?? Math.sqrt(8.0);\n this.minPixelRadius = options.minPixelRadius ?? 0.0;\n this.maxPixelRadius = options.maxPixelRadius ?? 512.0;\n this.minAlpha = options.minAlpha ?? 0.5 * (1.0 / 255.0);\n this.enable2DGS = options.enable2DGS ?? false;\n this.preBlurAmount = options.preBlurAmount ?? 0.0;\n this.blurAmount = options.blurAmount ?? 0.3;\n this.focalDistance = options.focalDistance ?? 0.0;\n this.apertureAngle = options.apertureAngle ?? 0.0;\n this.falloff = options.falloff ?? 1.0;\n this.clipXY = options.clipXY ?? 1.4;\n this.focalAdjustment = options.focalAdjustment ?? 1.0;\n this.splatEncoding = options.splatEncoding ?? { ...DEFAULT_SPLAT_ENCODING };\n\n this.active = new OldSplatAccumulator();\n this.active.refCount = 1;\n this.accumulatorCount = 1;\n this.freeAccumulators = [];\n // Start with the minimum of 2 total accumulators\n for (let count = 0; count < 1; ++count) {\n this.freeAccumulators.push(new OldSplatAccumulator());\n this.accumulatorCount += 1;\n }\n\n // Create a default SparkViewpoint that is used when we call render()\n // on the scene and has the sorted Gsplat collection from that viewpoint.\n this.defaultView = new OldSparkViewpoint({\n ...options.view,\n autoUpdate: true,\n spark: this,\n });\n this.viewpoint = this.defaultView;\n this.prepareViewpoint(this.viewpoint);\n\n this.clock = options.clock ? cloneClock(options.clock) : new THREE.Clock();\n }\n\n static makeUniforms() {\n // Create uniforms used for Gsplat vertex and fragment shaders\n const uniforms = {\n // Size of render viewport in pixels\n renderSize: { value: new THREE.Vector2() },\n // Near and far plane distances\n near: { value: 0.1 },\n far: { value: 1000.0 },\n // Total number of Gsplats in packedSplats to render\n numSplats: { value: 0 },\n // SplatAccumulator to view transformation quaternion\n renderToViewQuat: { value: new THREE.Quaternion() },\n // SplatAccumulator to view transformation translation\n renderToViewPos: { value: new THREE.Vector3() },\n // Maximum distance (in stddevs) from Gsplat center to render\n maxStdDev: { value: 1.0 },\n // Minimum pixel radius for splat rendering\n minPixelRadius: { value: 0.0 },\n // Maximum pixel radius for splat rendering\n maxPixelRadius: { value: 512.0 },\n // Minimum alpha value for splat rendering\n minAlpha: { value: 0.5 * (1.0 / 255.0) },\n // Enable stochastic splat rendering\n stochastic: { value: false },\n // Enable interpreting 0-thickness Gsplats as 2DGS\n enable2DGS: { value: false },\n // Add to projected 2D splat covariance diagonal (thickens and brightens)\n preBlurAmount: { value: 0.0 },\n // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing)\n blurAmount: { value: 0.3 },\n // Depth-of-field distance to focal plane\n focalDistance: { value: 0.0 },\n // Full-width angle of aperture opening (in radians)\n apertureAngle: { value: 0.0 },\n // Modulate Gaussian kernal falloff. 0 means \"no falloff, flat shading\",\n // 1 is normal e^-x^2 falloff.\n falloff: { value: 1.0 },\n // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds\n clipXY: { value: 1.4 },\n // Debug renderSize scale factor\n focalAdjustment: { value: 1.0 },\n // Enable splat texture rendering\n splatTexEnable: { value: false },\n // Splat texture to render\n splatTexture: { type: \"t\", value: OldSparkRenderer.EMPTY_SPLAT_TEXTURE },\n // Splat texture UV transform (multiply)\n splatTexMul: { value: new THREE.Matrix2() },\n // Splat texture UV transform (add)\n splatTexAdd: { value: new THREE.Vector2() },\n // Splat texture near plane distance\n splatTexNear: { value: 0.1 },\n // Splat texture far plane distance\n splatTexFar: { value: 1000.0 },\n // Splat texture mid plane distance, or 0.0 to disable\n splatTexMid: { value: 0.0 },\n // Gsplat collection to render\n packedSplats: { type: \"t\", value: PackedSplats.getEmptyArray },\n // Splat encoding ranges\n rgbMinMaxLnScaleMinMax: { value: new THREE.Vector4() },\n // Time in seconds for time-based effects\n time: { value: 0 },\n // Delta time in seconds since last frame\n deltaTime: { value: 0 },\n // Whether to encode Gsplat with linear RGB (for environment mapping)\n encodeLinear: { value: false },\n // Debug flag that alternates each frame\n debugFlag: { value: false },\n };\n return uniforms;\n }\n\n private canAllocAccumulator(): boolean {\n // Returns true if can allocate an accumulator immediately\n return (\n this.freeAccumulators.length > 0 ||\n this.accumulatorCount < MAX_ACCUMULATORS\n );\n }\n\n private maybeAllocAccumulator(): OldSplatAccumulator | null {\n // Allocate an accumulator immediately if possible, else return null\n let accumulator = this.freeAccumulators.pop();\n if (accumulator === undefined) {\n if (this.accumulatorCount >= MAX_ACCUMULATORS) {\n return null;\n }\n accumulator = new OldSplatAccumulator();\n this.accumulatorCount += 1;\n }\n accumulator.refCount = 1;\n return accumulator;\n }\n\n releaseAccumulator(accumulator: OldSplatAccumulator) {\n // Decrement reference count and recycle if no longer in use\n accumulator.refCount -= 1;\n if (accumulator.refCount === 0) {\n this.freeAccumulators.push(accumulator);\n }\n }\n\n newViewpoint(options: OldSparkViewpointOptions) {\n // Create a new SparkViewpoint for this SparkRenderer.\n // Note that every SparkRenderer has an initial spark.defaultView: SparkViewpoint\n // from construction, which is used for the default canvas render loop.\n // Calling this method allows you to create additional viewpoints, which can be\n // updated automatically each frame (performing Gsplat sorting every time there\n // is an update), or updated on-demand for controlled rendering for video render\n // or similar applications.\n return new OldSparkViewpoint({ ...options, spark: this });\n }\n\n onBeforeRender(\n renderer: THREE.WebGLRenderer,\n scene: THREE.Scene,\n camera: THREE.Camera,\n ) {\n // throw new Error(\"onBeforeRender disabled in SparkRenderer\");\n\n // Called by Three.js before rendering this SparkRenderer.\n // At this point we can't modify the geometry or material, all these must\n // be set in the scene already before this is called. Update the uniforms\n // to render the Gsplats from the current active viewpoint.\n const time = this.time ?? this.clock.getElapsedTime();\n const deltaTime = time - (this.viewpoint.lastTime ?? time);\n this.viewpoint.lastTime = time;\n\n const frame = renderer.info.render.frame;\n const isNewFrame = frame !== this.lastFrame;\n this.lastFrame = frame;\n\n const viewpoint = this.viewpoint;\n if (viewpoint === this.defaultView) {\n // When rendering is triggered on the default viewpoint,\n // perform automatic updates.\n if (isNewFrame) {\n if (!renderer.xr.isPresenting) {\n // Non-WebXR mode, just a single camera\n this.defaultView.viewToWorld = camera.matrixWorld.clone();\n this.defaultCameras = [this.defaultView.viewToWorld];\n } else {\n // In WebXR mode we are called multiple times, once for each eye,\n // so use their average to compute the sort center.\n const cameras = renderer.xr.getCamera().cameras;\n this.defaultCameras = cameras.map((camera) => camera.matrixWorld);\n this.defaultView.viewToWorld =\n averageOriginToWorlds(this.defaultCameras) ?? new THREE.Matrix4();\n }\n }\n\n if (this.autoUpdate) {\n this.update({ scene, viewToWorld: this.defaultView.viewToWorld });\n }\n }\n\n // Update uniforms for rendering\n\n if (isNewFrame) {\n // Keep these uniforms the same for both eyes if in WebXR\n if (this.material.premultipliedAlpha !== this.premultipliedAlpha) {\n this.material.premultipliedAlpha = this.premultipliedAlpha;\n this.material.needsUpdate = true;\n }\n this.uniforms.time.value = time;\n this.uniforms.deltaTime.value = deltaTime;\n // Alternating debug flag that can aid in visual debugging\n this.uniforms.debugFlag.value = (performance.now() / 1000.0) % 2.0 < 1.0;\n\n if (viewpoint.display && viewpoint.stochastic) {\n (this.geometry as OldSplatGeometry).instanceCount =\n this.uniforms.numSplats.value;\n }\n }\n\n if (viewpoint.target) {\n // Rendering to a texture target, so its dimensions\n this.uniforms.renderSize.value.set(\n viewpoint.target.width,\n viewpoint.target.height,\n );\n } else {\n // Rendering to the canvas or WebXR\n const renderSize = renderer.getDrawingBufferSize(\n this.uniforms.renderSize.value,\n );\n if (renderSize.x === 1 && renderSize.y === 1) {\n // WebXR mode on Apple Vision Pro returns 1x1 when presenting.\n // Use a different means to figure out the render size.\n const baseLayer = renderer.xr.getSession()?.renderState.baseLayer;\n if (baseLayer) {\n renderSize.x = baseLayer.framebufferWidth;\n renderSize.y = baseLayer.framebufferHeight;\n }\n }\n }\n\n // Update uniforms from instance properties\n const typedCamera = camera as\n | THREE.PerspectiveCamera\n | THREE.OrthographicCamera;\n this.uniforms.near.value = typedCamera.near;\n this.uniforms.far.value = typedCamera.far;\n this.uniforms.encodeLinear.value = viewpoint.encodeLinear;\n this.uniforms.maxStdDev.value = this.maxStdDev;\n this.uniforms.minPixelRadius.value = this.minPixelRadius;\n this.uniforms.maxPixelRadius.value = this.maxPixelRadius;\n this.uniforms.minAlpha.value = this.minAlpha;\n this.uniforms.stochastic.value = viewpoint.stochastic;\n this.uniforms.enable2DGS.value = this.enable2DGS;\n this.uniforms.preBlurAmount.value = this.preBlurAmount;\n this.uniforms.blurAmount.value = this.blurAmount;\n this.uniforms.focalDistance.value = this.focalDistance;\n this.uniforms.apertureAngle.value = this.apertureAngle;\n this.uniforms.falloff.value = this.falloff;\n this.uniforms.clipXY.value = this.clipXY;\n this.uniforms.focalAdjustment.value = this.focalAdjustment;\n\n if (this.lastStochastic !== !viewpoint.stochastic) {\n this.lastStochastic = !viewpoint.stochastic;\n this.material.transparent = !viewpoint.stochastic;\n this.material.depthWrite = viewpoint.stochastic;\n this.material.needsUpdate = true;\n }\n\n if (this.splatTexture) {\n const { enable, texture, multiply, add, near, far, mid } =\n this.splatTexture;\n if (enable && texture) {\n this.uniforms.splatTexEnable.value = true;\n this.uniforms.splatTexture.value = texture;\n if (multiply) {\n this.uniforms.splatTexMul.value.fromArray(multiply.elements);\n } else {\n this.uniforms.splatTexMul.value.set(\n 0.5 / this.maxStdDev,\n 0,\n 0,\n 0.5 / this.maxStdDev,\n );\n }\n this.uniforms.splatTexAdd.value.set(add?.x ?? 0.5, add?.y ?? 0.5);\n this.uniforms.splatTexNear.value = near ?? this.uniforms.near.value;\n this.uniforms.splatTexFar.value = far ?? this.uniforms.far.value;\n this.uniforms.splatTexMid.value = mid ?? 0.0;\n } else {\n this.uniforms.splatTexEnable.value = false;\n this.uniforms.splatTexture.value = OldSparkRenderer.EMPTY_SPLAT_TEXTURE;\n }\n } else {\n this.uniforms.splatTexEnable.value = false;\n this.uniforms.splatTexture.value = OldSparkRenderer.EMPTY_SPLAT_TEXTURE;\n }\n\n // Calculate the transform from the accumulator to the current camera\n const accumToWorld =\n viewpoint.display?.accumulator.toWorld ?? new THREE.Matrix4();\n const worldToCamera = camera.matrixWorld.clone().invert();\n const originToCamera = accumToWorld.clone().premultiply(worldToCamera);\n originToCamera.decompose(\n this.uniforms.renderToViewPos.value,\n this.uniforms.renderToViewQuat.value,\n new THREE.Vector3(),\n );\n }\n\n // Update the uniforms for the given viewpoint.\n // Note that the client expects to be able to call render() at any point\n // to update the canvas, so we must switch the viewpoint back to\n // defaultView when we're finished.\n prepareViewpoint(viewpoint?: OldSparkViewpoint) {\n this.viewpoint = viewpoint ?? this.viewpoint;\n\n if (this.viewpoint.display) {\n const { accumulator, geometry } = this.viewpoint.display;\n this.uniforms.numSplats.value = accumulator.splats.numSplats;\n this.uniforms.packedSplats.value = accumulator.splats.getTexture();\n this.uniforms.rgbMinMaxLnScaleMinMax.value.set(\n accumulator.splats.splatEncoding?.rgbMin ?? 0.0,\n accumulator.splats.splatEncoding?.rgbMax ?? 1.0,\n accumulator.splats.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n accumulator.splats.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n this.geometry = geometry;\n this.material.transparent = !this.viewpoint.stochastic;\n this.material.depthWrite = this.viewpoint.stochastic;\n this.material.needsUpdate = true;\n } else {\n // No Gsplats to display for this viewpoint yet\n this.uniforms.numSplats.value = 0;\n this.uniforms.packedSplats.value = PackedSplats.getEmptyArray;\n this.geometry = EMPTY_GEOMETRY;\n }\n }\n\n // If spark.autoUpdate is false then you must manually call\n // spark.update({ scene }) to have the scene Gsplats be re-generated.\n update({\n scene,\n viewToWorld,\n }: { scene: THREE.Scene; viewToWorld?: THREE.Matrix4 }) {\n // Compute the transform for the SparkRenderer to use as origin\n // for Gsplat generation and accumulation.\n const originToWorld = this.matrixWorld;\n\n // Either do the update now, or in the next \"tick\" depending on preUpdate\n if (this.preUpdate) {\n this.updateInternal({\n scene,\n originToWorld: originToWorld.clone(),\n viewToWorld,\n });\n } else {\n // Pass the update parameters to be performed on the next tick\n this.pendingUpdate.scene = scene;\n this.pendingUpdate.originToWorld.copy(originToWorld);\n\n // Schedule a timeout if there isn't one already\n if (this.pendingUpdate.timeoutId === -1) {\n this.pendingUpdate.timeoutId = setTimeout(() => {\n const { scene, originToWorld } = this.pendingUpdate;\n this.pendingUpdate.scene = null;\n this.pendingUpdate.timeoutId = -1;\n const updated = this.updateInternal({\n scene: scene as THREE.Scene,\n originToWorld,\n viewToWorld,\n });\n\n if (updated) {\n // Flush to encourage eager execution\n const gl = this.renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n }, 1);\n }\n }\n }\n\n updateInternal({\n scene,\n originToWorld,\n viewToWorld,\n }: {\n scene: THREE.Scene;\n originToWorld?: THREE.Matrix4;\n viewToWorld?: THREE.Matrix4;\n }): boolean {\n if (!this.canAllocAccumulator()) {\n // We don't have any available accumulators because of sorting\n // back pressure, so don't update this time but try again next time.\n // Signal update not attempted.\n return false;\n }\n\n // Figure out the frame of the SparkRenderer and current view\n if (!originToWorld) {\n originToWorld = this.active.toWorld;\n }\n viewToWorld = viewToWorld ?? originToWorld.clone();\n\n const time = this.time ?? this.clock.getElapsedTime();\n const deltaTime = time - (this.lastUpdateTime ?? time);\n this.lastUpdateTime = time;\n\n // Create a lookup from last active SplatGenerator to Gsplat mapping record\n const activeMapping = this.active.mapping.reduce((map, record) => {\n map.set(record.node, record);\n return map;\n }, new Map());\n\n // Traverse visible scene to find all SplatGenerators and global SplatEdits\n const { generators, visibleGenerators, globalEdits } =\n this.compileScene(scene);\n\n // Let all SplatGenerators run their frameUpdate() method\n for (const object of generators) {\n object.frameUpdate?.({\n renderer: this.renderer,\n object,\n time,\n deltaTime,\n viewToWorld,\n globalEdits,\n });\n }\n\n const visibleGenHash = new Set(visibleGenerators.map((g) => g.uuid));\n\n // Make sure we have new version numbers for any objects with either\n // generator or numSplats that have changed since the last frame.\n for (const object of generators) {\n const current = activeMapping.get(object);\n const isVisible = object.generator && visibleGenHash.has(object.uuid);\n const numSplats = isVisible ? object.numSplats : 0;\n if (\n this.needsUpdate ||\n object.generator !== current?.generator ||\n numSplats !== current?.count\n ) {\n object.updateVersion();\n }\n }\n\n // Check if the origin is within the maximum allowed distance before\n // we trigger an update.\n const originUpdate = !withinCoorientDist({\n matrix1: originToWorld,\n matrix2: this.active.toWorld,\n maxDistance: this.originDistance,\n });\n\n // Check if we need any update at all\n const needsUpdate =\n this.needsUpdate ||\n originUpdate ||\n generators.length !== activeMapping.size ||\n generators.some((g) => g.version !== activeMapping.get(g)?.version);\n this.needsUpdate = false;\n\n let accumulator: OldSplatAccumulator | null = null;\n if (needsUpdate) {\n // Need to update, so allocate an accumulator\n accumulator = this.maybeAllocAccumulator();\n if (!accumulator) {\n // This should never happen since we checked canAllocAccumulator() above\n throw new Error(\"Unreachable\");\n }\n\n // Compute whether our view frame has changed enough to warrant\n // doing a Gsplat sort. Check both distance epsilon and\n // minimum co-orientation (dot product of quaternions)\n const originChanged = !withinCoorientDist({\n matrix1: originToWorld,\n matrix2: accumulator.toWorld,\n maxDistance: 0.00001,\n minCoorient: 0.99999,\n });\n\n // Compute an ordering of the generators with the rough goal\n // of keeping unchanging generators near the front to minimize\n // the number of Gsplats that need to be regenerated.\n const sorted = visibleGenerators\n .map((g, gIndex): [number, number, SplatGenerator] => {\n const lastGen = activeMapping.get(g);\n // If no previous generator, sort by absolute version, which will\n // tend to push frequently updated generators toward the end\n return !lastGen\n ? [Number.POSITIVE_INFINITY, g.version, g]\n : // Sort by version deltas then by previous ordering in the mapping,\n // attempting to keep unchanging generators near the front\n // to improve our chances of avoiding a re-generation.\n [g.version - lastGen.version, lastGen.base, g];\n })\n .sort((a, b) => {\n // Sort by first then second element of the tuple\n if (a[0] !== b[0]) {\n return a[0] - b[0];\n }\n return a[1] - b[1];\n });\n const genOrder = sorted.map(([_version, _seq, g]) => g);\n\n // Compute sequential layout of generated splats\n const splatCounts = genOrder.map((g) => g.numSplats);\n const { maxSplats, mapping } =\n accumulator.splats.generateMapping(splatCounts);\n const newGenerators = genOrder.map((node, gIndex) => {\n const { base, count } = mapping[gIndex];\n return {\n node,\n generator: node.generator,\n version: node.version,\n base,\n count,\n };\n });\n\n // Compute worldToAccumulator origin transform (no scale)\n originToWorld\n .clone()\n .invert()\n .decompose(\n this.translateToAccumulator.value,\n this.rotateToAccumulator.value,\n new THREE.Vector3(),\n );\n\n // Generate the Gsplats according to the mapping that need updating\n accumulator.ensureGenerate(maxSplats);\n accumulator.splats.splatEncoding = { ...this.splatEncoding };\n const generated = accumulator.generateSplats({\n renderer: this.renderer,\n modifier: this.modifier,\n generators: newGenerators,\n forceUpdate: originChanged,\n originToWorld,\n });\n\n // Update splat version number\n accumulator.splatsVersion = this.active.splatsVersion + 1;\n // Increment the mapping version if the mapping isn't identical to before\n const hasCorrespondence = accumulator.hasCorrespondence(this.active);\n accumulator.mappingVersion =\n this.active.mappingVersion + (hasCorrespondence ? 0 : 1);\n\n // Release the old accumulator and make the new one active\n this.releaseAccumulator(this.active);\n this.active = accumulator;\n this.prepareViewpoint();\n }\n\n // Let the system breath before potentially triggering sorts\n setTimeout(() => {\n // Notify all auto-updating viewpoints that we updated the Gsplats\n for (const view of this.autoViewpoints) {\n view.autoPoll({ accumulator: accumulator ?? undefined });\n }\n }, 1);\n\n // Signal update was performed\n return true;\n }\n\n private compileScene(scene: THREE.Scene): {\n generators: SplatGenerator[];\n visibleGenerators: SplatGenerator[];\n globalEdits: SplatEdit[];\n } {\n // Take a snapshot of the SplatGenerators and SplatEdits in the scene\n // to be used to run an update.\n const generators: SplatGenerator[] = [];\n // Collect all SplatGenerators, even if not visible, because we want to\n // be able to call their update functions every frame.\n scene.traverse((node) => {\n if (node instanceof SplatGenerator) {\n generators.push(node);\n }\n });\n\n const visibleGenerators: SplatGenerator[] = [];\n scene.traverseVisible((node) => {\n if (node instanceof SplatGenerator) {\n visibleGenerators.push(node);\n }\n });\n\n const globalEdits = new Set();\n scene.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n let ancestor = node.parent;\n while (ancestor != null && !(ancestor instanceof SplatMesh)) {\n ancestor = ancestor.parent;\n }\n if (ancestor == null) {\n // Not part of a SplatMesh so it's a global edit\n globalEdits.add(node);\n }\n }\n });\n return {\n generators,\n visibleGenerators,\n globalEdits: Array.from(globalEdits),\n };\n }\n\n // Renders out the scene to an environment map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces,\n // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture\n // that can assigned directly to a THREE.MeshStandardMaterial.envMap property.\n async renderEnvMap({\n renderer,\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = false,\n }: {\n renderer?: THREE.WebGLRenderer;\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects?: THREE.Object3D[];\n update?: boolean;\n }): Promise {\n if (!this.envViewpoint) {\n this.envViewpoint = this.newViewpoint({ sort360: true });\n }\n if (\n !OldSparkRenderer.cubeRender ||\n OldSparkRenderer.cubeRender.target.width !== size ||\n OldSparkRenderer.cubeRender.near !== near ||\n OldSparkRenderer.cubeRender.far !== far\n ) {\n if (OldSparkRenderer.cubeRender) {\n OldSparkRenderer.cubeRender.target.dispose();\n }\n const target = new THREE.WebGLCubeRenderTarget(size, {\n format: THREE.RGBAFormat,\n generateMipmaps: true,\n minFilter: THREE.LinearMipMapLinearFilter,\n });\n const camera = new THREE.CubeCamera(near, far, target);\n OldSparkRenderer.cubeRender = { target, camera, near, far };\n }\n\n if (!OldSparkRenderer.pmrem) {\n OldSparkRenderer.pmrem = new THREE.PMREMGenerator(\n renderer ?? this.renderer,\n );\n }\n\n // Prepare the viewpoint, sorting Gsplats for this view origin.\n const viewToWorld = new THREE.Matrix4().setPosition(worldCenter);\n await this.envViewpoint?.prepare({ scene, viewToWorld, update });\n\n const { target, camera } = OldSparkRenderer.cubeRender;\n camera.position.copy(worldCenter);\n\n // Save the visibility state of objects we want to hide before render\n const objectVisibility = new Map();\n for (const object of hideObjects) {\n objectVisibility.set(object, object.visible);\n object.visible = false;\n }\n\n // Update the CubeCamera, which performs 6 cube face renders\n this.prepareViewpoint(this.envViewpoint);\n camera.update(renderer ?? this.renderer, scene);\n\n // Restore viewpoint to default and object visibility\n this.prepareViewpoint(this.defaultView);\n for (const [object, visible] of objectVisibility.entries()) {\n object.visible = visible;\n }\n\n // Pre-filter the cube map using THREE.PMREMGenerator\n return OldSparkRenderer.pmrem?.fromCubemap(target.texture).texture;\n }\n\n // Utility function to recursively set the envMap property for any\n // THREE.MeshStandardMaterial within the subtree of root.\n recurseSetEnvMap(root: THREE.Object3D, envMap: THREE.Texture) {\n root.traverse((node) => {\n if (node instanceof THREE.Mesh) {\n if (Array.isArray(node.material)) {\n for (const material of node.material) {\n if (material instanceof THREE.MeshStandardMaterial) {\n material.envMap = envMap;\n }\n }\n } else {\n if (node.material instanceof THREE.MeshStandardMaterial) {\n node.material.envMap = envMap;\n }\n }\n }\n });\n }\n\n // Utility function that helps extract the Gsplat RGBA values from a\n // SplatGenerator, including the result of any real-time RGBA SDF edits applied\n // to a SplatMesh. This effectively \"bakes\" any computed RGBA values, which can\n // now be used as a pipeline input via SplatMesh.splatRgba to inject these\n // baked values into the Gsplat data.\n getRgba({\n generator,\n rgba,\n }: { generator: SplatGenerator; rgba?: RgbaArray }): RgbaArray {\n const mapping = this.active.mapping.find(({ node }) => node === generator);\n if (!mapping) {\n throw new Error(\"Generator not found\");\n }\n\n rgba = rgba ?? new RgbaArray();\n rgba.fromPackedSplats({\n packedSplats: this.active.splats,\n base: mapping.base,\n count: mapping.count,\n renderer: this.renderer,\n });\n return rgba;\n }\n\n // Utility function that builds on getRgba({ generator }) and additionally\n // reads back the RGBA values to the CPU in a Uint8Array with packed RGBA\n // in that byte order.\n async readRgba({\n generator,\n rgba,\n }: { generator: SplatGenerator; rgba?: RgbaArray }): Promise {\n rgba = this.getRgba({ generator, rgba });\n return rgba.read();\n }\n}\n\nconst EMPTY_GEOMETRY = new OldSplatGeometry(new Uint32Array(1), 0);\n\nconst reorderSplats = dynoBlock(\n { packedSplats: TPackedSplats, index: \"int\" },\n { gsplat: Gsplat },\n ({ packedSplats, index }) => {\n if (!packedSplats || !index) {\n throw new Error(\"Invalid input\");\n }\n const gsplat = readPackedSplat(packedSplats, index);\n return { gsplat };\n },\n);\n\nfunction averageOriginToWorlds(\n originToWorlds: THREE.Matrix4[],\n): THREE.Matrix4 | null {\n if (originToWorlds.length === 0) {\n return null;\n }\n\n const position = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const scale = new THREE.Vector3();\n\n const positions: THREE.Vector3[] = [];\n const quaternions: THREE.Quaternion[] = [];\n for (const matrix of originToWorlds) {\n matrix.decompose(position, quaternion, scale);\n positions.push(position);\n quaternions.push(quaternion);\n }\n\n return new THREE.Matrix4().compose(\n averagePositions(positions),\n averageQuaternions(quaternions),\n new THREE.Vector3(1, 1, 1),\n );\n}\n","import type { SplatEncoding } from \"./defines\";\nimport { computeMaxSplats, setPackedSplat } from \"./utils\";\n\nexport function decodeAntiSplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n) {\n const numSplats = Math.floor(fileBytes.length / 32); // 32 bytes per splat\n if (numSplats * 32 !== fileBytes.length) {\n throw new Error(\"Invalid .splat file size\");\n }\n initNumSplats(numSplats);\n\n const f32 = new Float32Array(fileBytes.buffer);\n for (let i = 0; i < numSplats; ++i) {\n const i32 = i * 32;\n const i8 = i * 8;\n const x = f32[i8 + 0];\n const y = f32[i8 + 1];\n const z = f32[i8 + 2];\n const scaleX = f32[i8 + 3];\n const scaleY = f32[i8 + 4];\n const scaleZ = f32[i8 + 5];\n const r = fileBytes[i32 + 24] / 255;\n const g = fileBytes[i32 + 25] / 255;\n const b = fileBytes[i32 + 26] / 255;\n const opacity = fileBytes[i32 + 27] / 255;\n const quatW = (fileBytes[i32 + 28] - 128) / 128;\n const quatX = (fileBytes[i32 + 29] - 128) / 128;\n const quatY = (fileBytes[i32 + 30] - 128) / 128;\n const quatZ = (fileBytes[i32 + 31] - 128) / 128;\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n }\n}\n\nexport function unpackAntiSplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n} {\n let numSplats = 0;\n let maxSplats = 0;\n let packedArray = new Uint32Array(0);\n decodeAntiSplat(\n fileBytes,\n (cbNumSplats) => {\n numSplats = cbNumSplats;\n maxSplats = computeMaxSplats(numSplats);\n packedArray = new Uint32Array(maxSplats * 4);\n },\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n setPackedSplat(\n packedArray,\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n },\n );\n return { packedArray, numSplats };\n}\n","import type { SplatEncoding } from \"./defines\";\nimport {\n computeMaxSplats,\n encodeSh1Rgb,\n encodeSh2Rgb,\n encodeSh3Rgb,\n fromHalf,\n setPackedSplat,\n} from \"./utils\";\n\ntype KsplatCompression = {\n bytesPerCenter: number;\n bytesPerScale: number;\n bytesPerRotation: number;\n bytesPerColor: number;\n bytesPerSphericalHarmonicsComponent: number;\n scaleOffsetBytes: number;\n rotationOffsetBytes: number;\n colorOffsetBytes: number;\n sphericalHarmonicsOffsetBytes: number;\n scaleRange: number;\n};\n\nconst KSPLAT_COMPRESSION: Record = {\n 0: {\n bytesPerCenter: 12,\n bytesPerScale: 12,\n bytesPerRotation: 16,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 4,\n scaleOffsetBytes: 12,\n rotationOffsetBytes: 24,\n colorOffsetBytes: 40,\n sphericalHarmonicsOffsetBytes: 44,\n scaleRange: 1,\n },\n 1: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 2,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n 2: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 1,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n};\n\nconst KSPLAT_SH_DEGREE_TO_COMPONENTS: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nexport function decodeKsplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n) {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n initNumSplats(numSplats);\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n\n if (sphericalHarmonicsDegree >= 1 && sh1) {\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n if (sh2) {\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n }\n if (sh3) {\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n sectionBase += storageSizeBytes;\n }\n}\n\nexport function unpackKsplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n} {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n setPackedSplat(\n packedArray,\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n\n if (sphericalHarmonicsDegree >= 1) {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n encodeSh1Rgb(extra.sh1 as Uint32Array, i, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n encodeSh2Rgb(extra.sh2 as Uint32Array, i, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n encodeSh3Rgb(extra.sh3 as Uint32Array, i, sh3, splatEncoding);\n }\n }\n }\n sectionBase += storageSizeBytes;\n }\n return { packedArray, numSplats, extra };\n}\n","import * as THREE from \"three\";\nimport {\n SplatData,\n type TranscodeSpzInput,\n getSplatFileType,\n getSplatFileTypeFromPath,\n} from \"./SplatLoader\";\nimport { GunzipReader, fromHalf, normalize } from \"./utils\";\n\nimport { decodeAntiSplat } from \"./antisplat\";\nimport { SplatFileType } from \"./defines\";\nimport { decodeKsplat } from \"./ksplat\";\nimport { PlyReader } from \"./ply\";\n\n// SPZ file format reader\n\nexport class SpzReader {\n fileBytes: Uint8Array;\n reader: GunzipReader;\n\n version = -1;\n numSplats = 0;\n shDegree = 0;\n fractionalBits = 0;\n flags = 0;\n flagAntiAlias = false;\n flagLod = false;\n reserved = 0;\n headerParsed = false;\n parsed = false;\n\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n this.reader = new GunzipReader({\n fileBytes: this.fileBytes as Uint8Array,\n });\n }\n\n async parseHeader() {\n if (this.headerParsed) {\n throw new Error(\"SPZ file header already parsed\");\n }\n\n const header = new DataView((await this.reader.read(16)).buffer);\n if (header.getUint32(0, true) !== 0x5053474e) {\n throw new Error(\"Invalid SPZ file\");\n }\n this.version = header.getUint32(4, true);\n if (this.version < 1 || this.version > 3) {\n throw new Error(`Unsupported SPZ version: ${this.version}`);\n }\n\n this.numSplats = header.getUint32(8, true);\n this.shDegree = header.getUint8(12);\n this.fractionalBits = header.getUint8(13);\n this.flags = header.getUint8(14);\n this.flagAntiAlias = (this.flags & 0x01) !== 0;\n this.flagLod = (this.flags & 0x80) !== 0;\n this.reserved = header.getUint8(15);\n this.headerParsed = true;\n this.parsed = false;\n }\n\n async parseSplats(\n centerCallback?: (index: number, x: number, y: number, z: number) => void,\n alphaCallback?: (index: number, alpha: number) => void,\n rgbCallback?: (index: number, r: number, g: number, b: number) => void,\n scalesCallback?: (\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n ) => void,\n quatCallback?: (\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n {\n childCounts,\n childStarts,\n }: {\n childCounts?: (index: number, count: number) => void;\n childStarts?: (index: number, start: number) => void;\n } = {},\n ) {\n if (!this.headerParsed) {\n throw new Error(\"SPZ file header must be parsed first\");\n }\n if (this.parsed) {\n throw new Error(\"SPZ file already parsed\");\n }\n this.parsed = true;\n\n if (this.version === 1) {\n // float16 centers\n const centerBytes = await this.reader.read(this.numSplats * 3 * 2);\n const centerUint16 = new Uint16Array(centerBytes.buffer);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const x = fromHalf(centerUint16[i3]);\n const y = fromHalf(centerUint16[i3 + 1]);\n const z = fromHalf(centerUint16[i3 + 2]);\n centerCallback?.(i, x, y, z);\n }\n } else if (this.version === 2 || this.version === 3) {\n // 24-bit fixed-point centers\n const fixed = 1 << this.fractionalBits;\n const centerBytes = await this.reader.read(this.numSplats * 3 * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i9 = i * 9;\n const x =\n (((centerBytes[i9 + 2] << 24) |\n (centerBytes[i9 + 1] << 16) |\n (centerBytes[i9] << 8)) >>\n 8) /\n fixed;\n const y =\n (((centerBytes[i9 + 5] << 24) |\n (centerBytes[i9 + 4] << 16) |\n (centerBytes[i9 + 3] << 8)) >>\n 8) /\n fixed;\n const z =\n (((centerBytes[i9 + 8] << 24) |\n (centerBytes[i9 + 7] << 16) |\n (centerBytes[i9 + 6] << 8)) >>\n 8) /\n fixed;\n centerCallback?.(i, x, y, z);\n }\n } else {\n throw new Error(\"Unreachable\");\n }\n\n {\n const bytes = await this.reader.read(this.numSplats);\n for (let i = 0; i < this.numSplats; i++) {\n alphaCallback?.(i, bytes[i] / 255);\n }\n }\n {\n const rgbBytes = await this.reader.read(this.numSplats * 3);\n const scale = SH_C0 / 0.15;\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const r = (rgbBytes[i3] / 255 - 0.5) * scale + 0.5;\n const g = (rgbBytes[i3 + 1] / 255 - 0.5) * scale + 0.5;\n const b = (rgbBytes[i3 + 2] / 255 - 0.5) * scale + 0.5;\n rgbCallback?.(i, r, g, b);\n }\n }\n {\n const scalesBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const scaleX = Math.exp(scalesBytes[i3] / 16 - 10);\n const scaleY = Math.exp(scalesBytes[i3 + 1] / 16 - 10);\n const scaleZ = Math.exp(scalesBytes[i3 + 2] / 16 - 10);\n scalesCallback?.(i, scaleX, scaleY, scaleZ);\n }\n }\n if (this.version === 3) {\n // Version 3 uses a trick called \"smallest three\" to compress the rotation quaternions\n // achieving better precision. \"Optimizing orientation\" section at https://gafferongames.com/post/snapshot_compression/ A quaternion length must be 1: x^2+y^2+z^2+w^2 = 1\n // We can drop one component and reconstruct it with the identity above.\n // Largest component is dropped for best numerical precision.\n // Quaternion stored in 32 bits\n // 10 bits singed integer for each of the 3 components + 2 bits indicating the index of dropped component.\n // vs 8 bits for each component uncompressed (spz version < 3)\n // Max Value after extracting largest component v is another component v\n // (v,v,0,0)\n // v^2 + v^2 = 1\n // v = 1 / sqrt(2);\n const maxValue = 1 / Math.sqrt(2); // 0.7071\n const quatBytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 4;\n const quaternion = [0, 0, 0, 0];\n const values = [\n quatBytes[i3],\n quatBytes[i3 + 1],\n quatBytes[i3 + 2],\n quatBytes[i3 + 3],\n ];\n // all values are packed in 32 bits (10 per each of 3 components + 2 bits of index of larged value)\n const combinedValues =\n values[0] + (values[1] << 8) + (values[2] << 16) + (values[3] << 24);\n // each component value is 9 bits + sign (1 bit)\n const valueMask = (1 << 9) - 1;\n // extract index of the largest element. 2 top bits.\n const largestIndex = combinedValues >>> 30;\n let remainingValues = combinedValues;\n let sumSquares = 0;\n\n for (let i = 3; i >= 0; --i) {\n if (i !== largestIndex) {\n // extract current value and sign.\n const value = remainingValues & valueMask;\n const sign = (remainingValues >>> 9) & 0x1;\n // each value is represented as 10 bits. Shift to next one.\n remainingValues = remainingValues >>> 10;\n // convert to range [0,1] and then to [0, 0.7071]\n quaternion[i] = maxValue * (value / valueMask);\n // apply sign.\n quaternion[i] = sign === 0 ? quaternion[i] : -quaternion[i];\n // accumulate the sum of squares\n sumSquares += quaternion[i] * quaternion[i];\n }\n }\n\n // quartenion length must be 1 (x^2+y^2+z^2+w^2 = 1)\n // so can reconstruct largest component from the other 3.\n // w = sqrt(1 - x^2 - y^2 - z^2);\n const square = 1 - sumSquares;\n quaternion[largestIndex] = Math.sqrt(Math.max(square, 0));\n\n quatCallback?.(\n i,\n quaternion[0],\n quaternion[1],\n quaternion[2],\n quaternion[3],\n );\n }\n } else {\n const quatBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const quatX = quatBytes[i3] / 127.5 - 1;\n const quatY = quatBytes[i3 + 1] / 127.5 - 1;\n const quatZ = quatBytes[i3 + 2] / 127.5 - 1;\n const quatW = Math.sqrt(\n Math.max(0, 1 - quatX * quatX - quatY * quatY - quatZ * quatZ),\n );\n quatCallback?.(i, quatX, quatY, quatZ, quatW);\n }\n }\n\n if (shCallback && this.shDegree >= 1) {\n const sh1 = new Float32Array(3 * 3);\n const sh2 = this.shDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 = this.shDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n const shBytes = await this.reader.read(\n this.numSplats * SH_DEGREE_TO_VECS[this.shDegree] * 3,\n );\n\n let offset = 0;\n for (let i = 0; i < this.numSplats; i++) {\n for (let j = 0; j < 9; ++j) {\n sh1[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 9;\n if (sh2) {\n for (let j = 0; j < 15; ++j) {\n sh2[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 15;\n }\n if (sh3) {\n for (let j = 0; j < 21; ++j) {\n sh3[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 21;\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n if (this.flagLod) {\n let bytes = await this.reader.read(this.numSplats * 2);\n for (let i = 0; i < this.numSplats; i++) {\n const i2 = i * 2;\n const count = bytes[i2] + (bytes[i2 + 1] << 8);\n childCounts?.(i, count);\n }\n\n bytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i4 = i * 4;\n const start =\n bytes[i4] +\n (bytes[i4 + 1] << 8) +\n (bytes[i4 + 2] << 16) +\n (bytes[i4 + 3] << 24);\n childStarts?.(i, start);\n }\n }\n }\n}\n\nconst SH_DEGREE_TO_VECS: Record = { 1: 3, 2: 8, 3: 15 };\nconst SH_C0 = 0.28209479177387814;\n\nexport const SPZ_MAGIC = 0x5053474e; // NGSP = Niantic gaussian splat\nexport const SPZ_VERSION = 3;\nexport const FLAG_ANTIALIASED = 0x1;\n\nexport class SpzWriter {\n buffer: ArrayBuffer;\n view: DataView;\n numSplats: number;\n shDegree: number;\n fractionalBits: number;\n fraction: number;\n flagAntiAlias: boolean;\n clippedCount = 0;\n\n constructor({\n numSplats,\n shDegree,\n fractionalBits = 12,\n flagAntiAlias = true,\n }: {\n numSplats: number;\n shDegree: number;\n fractionalBits?: number;\n flagAntiAlias?: boolean;\n }) {\n const splatSize =\n 9 + // Position\n 1 + // Opacity\n 3 + // Scale\n 3 + // DC-rgb\n 4 + // Rotation\n (shDegree >= 1 ? 9 : 0) +\n (shDegree >= 2 ? 15 : 0) +\n (shDegree >= 3 ? 21 : 0);\n const bufferSize = 16 + numSplats * splatSize;\n this.buffer = new ArrayBuffer(bufferSize);\n this.view = new DataView(this.buffer);\n\n this.view.setUint32(0, SPZ_MAGIC, true); // NGSP\n this.view.setUint32(4, SPZ_VERSION, true);\n this.view.setUint32(8, numSplats, true);\n this.view.setUint8(12, shDegree);\n this.view.setUint8(13, fractionalBits);\n this.view.setUint8(14, flagAntiAlias ? FLAG_ANTIALIASED : 0);\n this.view.setUint8(15, 0); // Reserved\n\n this.numSplats = numSplats;\n this.shDegree = shDegree;\n this.fractionalBits = fractionalBits;\n this.fraction = 1 << fractionalBits;\n this.flagAntiAlias = flagAntiAlias;\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n // Divide by this.fraction and round to nearest integer,\n // then write as 3-bytes per x then y then z.\n const xRounded = Math.round(x * this.fraction);\n const xInt = Math.max(-0x7fffff, Math.min(0x7fffff, xRounded));\n const yRounded = Math.round(y * this.fraction);\n const yInt = Math.max(-0x7fffff, Math.min(0x7fffff, yRounded));\n const zRounded = Math.round(z * this.fraction);\n const zInt = Math.max(-0x7fffff, Math.min(0x7fffff, zRounded));\n const clipped = xRounded !== xInt || yRounded !== yInt || zRounded !== zInt;\n if (clipped) {\n this.clippedCount += 1;\n // if (this.clippedCount < 10) {\n // // Write x y z also in hex\n // console.log(`Clipped ${index}: ${x}, ${y}, ${z} (0x${x.toString(16)}, 0x${y.toString(16)}, 0x${z.toString(16)}) -> ${xRounded}, ${yRounded}, ${zRounded} (0x${xRounded.toString(16)}, 0x${yRounded.toString(16)}, 0x${zRounded.toString(16)}) -> ${xInt}, ${yInt}, ${zInt} (0x${xInt.toString(16)}, 0x${yInt.toString(16)}, 0x${zInt.toString(16)})`);\n // }\n }\n const i9 = index * 9;\n const base = 16 + i9;\n this.view.setUint8(base, xInt & 0xff);\n this.view.setUint8(base + 1, (xInt >> 8) & 0xff);\n this.view.setUint8(base + 2, (xInt >> 16) & 0xff);\n this.view.setUint8(base + 3, yInt & 0xff);\n this.view.setUint8(base + 4, (yInt >> 8) & 0xff);\n this.view.setUint8(base + 5, (yInt >> 16) & 0xff);\n this.view.setUint8(base + 6, zInt & 0xff);\n this.view.setUint8(base + 7, (zInt >> 8) & 0xff);\n this.view.setUint8(base + 8, (zInt >> 16) & 0xff);\n }\n\n setAlpha(index: number, alpha: number) {\n const base = 16 + this.numSplats * 9 + index;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round(alpha * 255))),\n );\n }\n\n static scaleRgb(r: number) {\n const v = ((r - 0.5) / (SH_C0 / 0.15) + 0.5) * 255;\n return Math.max(0, Math.min(255, Math.round(v)));\n }\n\n setRgb(index: number, r: number, g: number, b: number) {\n const base = 16 + this.numSplats * 10 + index * 3;\n this.view.setUint8(base, SpzWriter.scaleRgb(r));\n this.view.setUint8(base + 1, SpzWriter.scaleRgb(g));\n this.view.setUint8(base + 2, SpzWriter.scaleRgb(b));\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n const base = 16 + this.numSplats * 13 + index * 3;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleX) + 10) * 16))),\n );\n this.view.setUint8(\n base + 1,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleY) + 10) * 16))),\n );\n this.view.setUint8(\n base + 2,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleZ) + 10) * 16))),\n );\n }\n\n setQuat(\n index: number,\n ...q: [number, number, number, number] // x, y, z, w\n ) {\n const base = 16 + this.numSplats * 16 + index * 4;\n\n const quat = normalize(q);\n\n // Find largest component\n let iLargest = 0;\n for (let i = 1; i < 4; ++i) {\n if (Math.abs(quat[i]) > Math.abs(quat[iLargest])) {\n iLargest = i;\n }\n }\n\n // Since -quat represents the same rotation as quat, transform the quaternion so the largest element\n // is positive. This avoids having to send its sign bit.\n const negate = quat[iLargest] < 0 ? 1 : 0;\n\n // Do compression using sign bit and 9-bit precision per element.\n let comp = iLargest;\n for (let i = 0; i < 4; ++i) {\n if (i !== iLargest) {\n const negbit = (quat[i] < 0 ? 1 : 0) ^ negate;\n const mag = Math.floor(\n ((1 << 9) - 1) * (Math.abs(quat[i]) / Math.SQRT1_2) + 0.5,\n );\n comp = (comp << 10) | (negbit << 9) | mag;\n }\n }\n\n this.view.setUint8(base, comp & 0xff);\n this.view.setUint8(base + 1, (comp >> 8) & 0xff);\n this.view.setUint8(base + 2, (comp >> 16) & 0xff);\n this.view.setUint8(base + 3, (comp >>> 24) & 0xff);\n }\n\n static quantizeSh(sh: number, bits: number) {\n const value = Math.round(sh * 128) + 128;\n const bucketSize = 1 << (8 - bits);\n const quantized =\n Math.floor((value + bucketSize / 2) / bucketSize) * bucketSize;\n return Math.max(0, Math.min(255, quantized));\n }\n\n setSh(\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) {\n const shVecs = SH_DEGREE_TO_VECS[this.shDegree] || 0;\n const base1 = 16 + this.numSplats * 20 + index * shVecs * 3;\n for (let j = 0; j < 9; ++j) {\n this.view.setUint8(base1 + j, SpzWriter.quantizeSh(sh1[j], 5));\n }\n if (sh2) {\n const base2 = base1 + 9;\n for (let j = 0; j < 15; ++j) {\n this.view.setUint8(base2 + j, SpzWriter.quantizeSh(sh2[j], 4));\n }\n if (sh3) {\n const base3 = base2 + 15;\n for (let j = 0; j < 21; ++j) {\n this.view.setUint8(base3 + j, SpzWriter.quantizeSh(sh3[j], 4));\n }\n }\n }\n }\n\n async finalize(): Promise {\n const input = new Uint8Array(this.buffer);\n const stream = new ReadableStream({\n async start(controller) {\n controller.enqueue(input);\n controller.close();\n },\n });\n const compressed = stream.pipeThrough(new CompressionStream(\"gzip\"));\n const response = new Response(compressed);\n const buffer = await response.arrayBuffer();\n console.log(\n \"Compressed\",\n input.length,\n \"bytes to\",\n buffer.byteLength,\n \"bytes\",\n );\n return new Uint8Array(buffer);\n }\n}\n\nexport async function transcodeSpz(input: TranscodeSpzInput) {\n const splats = new SplatData();\n const {\n inputs,\n clipXyz,\n maxSh,\n fractionalBits = 12,\n opacityThreshold,\n } = input;\n for (const input of inputs) {\n const scale = input.transform?.scale ?? 1;\n const quaternion = new THREE.Quaternion().fromArray(\n input.transform?.quaternion ?? [0, 0, 0, 1],\n );\n const translate = new THREE.Vector3().fromArray(\n input.transform?.translate ?? [0, 0, 0],\n );\n const clip = clipXyz\n ? new THREE.Box3(\n new THREE.Vector3().fromArray(clipXyz.min),\n new THREE.Vector3().fromArray(clipXyz.max),\n )\n : undefined;\n\n function transformPos(pos: THREE.Vector3) {\n pos.multiplyScalar(scale);\n pos.applyQuaternion(quaternion);\n pos.add(translate);\n return pos;\n }\n\n function transformScales(scales: THREE.Vector3) {\n scales.multiplyScalar(scale);\n return scales;\n }\n\n function transformQuaternion(quat: THREE.Quaternion) {\n quat.premultiply(quaternion);\n return quat;\n }\n\n function withinClip(p: THREE.Vector3) {\n return !clip || clip.containsPoint(p);\n }\n\n function withinOpacity(opacity: number) {\n return opacityThreshold !== undefined\n ? opacity >= opacityThreshold\n : true;\n }\n\n let fileType = input.fileType;\n if (!fileType) {\n fileType = getSplatFileType(input.fileBytes);\n if (!fileType && input.pathOrUrl) {\n fileType = getSplatFileTypeFromPath(input.pathOrUrl);\n }\n }\n switch (fileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes: input.fileBytes });\n await ply.parseHeader();\n let lastIndex: number | null = null;\n ply.parseSplats(\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (sh1 && lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n }\n if (sh2 && lastIndex !== null) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3 && lastIndex !== null) {\n splats.setSh3(lastIndex, sh3);\n }\n },\n );\n break;\n }\n case SplatFileType.SPZ: {\n const spz = new SpzReader({ fileBytes: input.fileBytes });\n await spz.parseHeader();\n const mapping = new Int32Array(spz.numSplats);\n mapping.fill(-1);\n const centers = new Float32Array(spz.numSplats * 3);\n const center = new THREE.Vector3();\n spz.parseSplats(\n (index, x, y, z) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n centers[index * 3] = center.x;\n centers[index * 3 + 1] = center.y;\n centers[index * 3 + 2] = center.z;\n },\n (index, alpha) => {\n center.fromArray(centers, index * 3);\n if (withinClip(center) && withinOpacity(alpha)) {\n mapping[index] = splats.pushSplat();\n splats.setCenter(mapping[index], center.x, center.y, center.z);\n splats.setOpacity(mapping[index], alpha);\n }\n },\n (index, r, g, b) => {\n if (mapping[index] >= 0) {\n splats.setColor(mapping[index], r, g, b);\n }\n },\n (index, scaleX, scaleY, scaleZ) => {\n if (mapping[index] >= 0) {\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(mapping[index], scales.x, scales.y, scales.z);\n }\n },\n (index, quatX, quatY, quatZ, quatW) => {\n if (mapping[index] >= 0) {\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n mapping[index],\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n }\n },\n (index, sh1, sh2, sh3) => {\n if (mapping[index] >= 0) {\n splats.setSh1(mapping[index], sh1);\n if (sh2) {\n splats.setSh2(mapping[index], sh2);\n }\n if (sh3) {\n splats.setSh3(mapping[index], sh3);\n }\n }\n },\n );\n break;\n }\n case SplatFileType.SPLAT:\n decodeAntiSplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n const index = splats.pushSplat();\n splats.setCenter(index, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(index, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n index,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(index, opacity);\n splats.setColor(index, r, g, b);\n }\n },\n );\n break;\n case SplatFileType.KSPLAT: {\n let lastIndex: number | null = null;\n decodeKsplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n if (sh2) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3) {\n splats.setSh3(lastIndex, sh3);\n }\n }\n },\n );\n break;\n }\n default:\n throw new Error(`transcodeSpz not implemented for ${fileType}`);\n }\n }\n\n const shDegree = Math.min(\n maxSh ?? 3,\n splats.sh3 ? 3 : splats.sh2 ? 2 : splats.sh1 ? 1 : 0,\n );\n const spz = new SpzWriter({\n numSplats: splats.numSplats,\n shDegree,\n fractionalBits,\n flagAntiAlias: true,\n });\n\n for (let i = 0; i < splats.numSplats; ++i) {\n const i3 = i * 3;\n const i4 = i * 4;\n spz.setCenter(\n i,\n splats.centers[i3],\n splats.centers[i3 + 1],\n splats.centers[i3 + 2],\n );\n spz.setScale(\n i,\n splats.scales[i3],\n splats.scales[i3 + 1],\n splats.scales[i3 + 2],\n );\n spz.setQuat(\n i,\n splats.quaternions[i4],\n splats.quaternions[i4 + 1],\n splats.quaternions[i4 + 2],\n splats.quaternions[i4 + 3],\n );\n spz.setAlpha(i, splats.opacities[i]);\n spz.setRgb(\n i,\n splats.colors[i3],\n splats.colors[i3 + 1],\n splats.colors[i3 + 2],\n );\n if (splats.sh1 && shDegree >= 1) {\n spz.setSh(\n i,\n splats.sh1.slice(i * 9, (i + 1) * 9),\n shDegree >= 2 && splats.sh2\n ? splats.sh2.slice(i * 15, (i + 1) * 15)\n : undefined,\n shDegree >= 3 && splats.sh3\n ? splats.sh3.slice(i * 21, (i + 1) * 21)\n : undefined,\n );\n }\n }\n\n const spzBytes = await spz.finalize();\n return { fileBytes: spzBytes, clippedCount: spz.clippedCount };\n}\n","import * as THREE from \"three\";\n\n// SplatSkinning is an experimental class that implements dual-quaternion\n// skeletal animation for Gsplats. A skeletal animation system consists\n// of a set of bones, each with a \"rest\" pose that consists of a position\n// and orientation, and a weighting of up to 4 bones for each Gsplat.\n// By moving and rotating the bones you can animate all the Gsplats like\n// your would for a normal 3D animated mesh.\n// Note that the dual-quaternion formulation assumes that mass/volume\n// is conserved through these transformations, which helps avoid common\n// issues with linear blend skinning such as joint collapse or bulging.\n// However, it is not as good a fit for animations that involve explicit\n// deformations, such as cartoon animations.\n\nimport type { SplatMesh } from \"./SplatMesh\";\nimport {\n CovSplat,\n Dyno,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize, newArray } from \"./utils\";\n\nexport enum SplatSkinningMode {\n DUAL_QUATERNION = \"dual_quaternion\",\n LINEAR_BLEND = \"linear_blend\",\n}\n\nexport type SplatSkinningOptions = {\n // Specifies the SplatMesh that will be animated.\n mesh: SplatMesh;\n // Overrides the number of Gsplats in the mesh that will be animated.\n // (default: mesh.numSplats)\n numSplats?: number;\n // Set the number of bones used to animate the SplatMesh, with a maximum\n // of 256 (in order to compactly encode the bone index). (default: 256)\n numBones?: number;\n // Set the mode of skinning to use.\n // (default: DUAL_QUATERNION)\n mode?: SplatSkinningMode;\n};\n\nexport class SplatSkinning {\n mesh: SplatMesh;\n numSplats: number;\n mode: SplatSkinningMode;\n\n // Store the skinning weights for each Gsplat, composed of a 4-vector\n // of bone indices and weight\n skinData: Uint16Array;\n skinTexture: THREE.DataArrayTexture;\n\n numBones: number;\n boneData: Float32Array;\n boneTexture: THREE.DataTexture;\n\n boneRestQuatPosScale: {\n quat: THREE.Quaternion;\n pos: THREE.Vector3;\n scale: THREE.Vector3;\n }[];\n boneRestInvMats: THREE.Matrix4[];\n\n uniform: DynoUniform;\n\n constructor(options: SplatSkinningOptions) {\n this.mesh = options.mesh;\n this.numSplats = options.numSplats ?? this.mesh.numSplats;\n this.mode = options.mode ?? SplatSkinningMode.DUAL_QUATERNION;\n\n const { width, height, depth, maxSplats } = getTextureSize(this.numSplats);\n this.skinData = new Uint16Array(maxSplats * 4);\n this.skinTexture = new THREE.DataArrayTexture(\n this.skinData,\n width,\n height,\n depth,\n );\n this.skinTexture.format = THREE.RGBAIntegerFormat;\n this.skinTexture.type = THREE.UnsignedShortType;\n this.skinTexture.internalFormat = \"RGBA16UI\";\n this.skinTexture.needsUpdate = true;\n\n this.numBones = options.numBones ?? 256;\n this.boneData = new Float32Array(this.numBones * 16);\n this.boneTexture = new THREE.DataTexture(\n this.boneData,\n 4,\n this.numBones,\n THREE.RGBAFormat,\n THREE.FloatType,\n );\n this.boneTexture.internalFormat = \"RGBA32F\";\n this.boneTexture.needsUpdate = true;\n\n this.boneRestQuatPosScale = newArray(this.numBones, () => ({\n quat: new THREE.Quaternion(),\n pos: new THREE.Vector3(),\n scale: new THREE.Vector3(),\n }));\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats = newArray(this.numBones, () => new THREE.Matrix4());\n } else {\n this.boneRestInvMats = [];\n }\n\n this.uniform = new DynoUniform({\n key: \"skinning\",\n type: GsplatSkinning,\n globals: () => [defineGsplatSkinning],\n value: {\n numSplats: this.numSplats,\n numBones: this.numBones,\n skinTexture: this.skinTexture,\n boneTexture: this.boneTexture,\n },\n });\n }\n\n // Apply the skeletal animation to a Gsplat in a dyno program.\n modify(gsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"Linear blend skinning requires covSplats=true\");\n }\n return applyGsplatSkinning(gsplat, this.uniform);\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n return applyCovSplatDQSkinning(covsplat, this.uniform);\n }\n return applyCovSplatLBSkinning(covsplat, this.uniform);\n }\n\n // Set the \"rest\" pose for a bone with position and quaternion orientation.\n setRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(SplatSkinning.UNIT_SCALE);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex]\n .compose(pos, quat, SplatSkinning.UNIT_SCALE)\n .invert();\n }\n\n this.setBoneQuatPos(boneIndex, quat, pos);\n }\n\n getRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n }\n\n setRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(scale);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex].compose(pos, quat, scale).invert();\n }\n\n this.setBoneQuatPosScale(boneIndex, quat, pos, scale);\n }\n\n getRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n scale.copy(this.boneRestQuatPosScale[boneIndex].scale);\n }\n\n setRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setRestMat only supported for linear blend skinning\");\n }\n this.boneRestInvMats[boneIndex].copy(matrix).invert();\n this.setBoneMatrix(boneIndex, matrix);\n }\n\n getRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"getRestMat only supported for linear blend skinning\");\n }\n matrix.copy(this.boneRestInvMats[boneIndex]).invert();\n }\n\n // Set the \"current\" position and orientation of a bone.\n setBoneQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n SplatSkinning.relQuat\n .copy(this.boneRestQuatPosScale[boneIndex].quat)\n .invert();\n SplatSkinning.relPos\n .copy(pos)\n .sub(this.boneRestQuatPosScale[boneIndex].pos);\n SplatSkinning.relQuat.multiply(quat);\n SplatSkinning.dual\n .set(\n SplatSkinning.relPos.x,\n SplatSkinning.relPos.y,\n SplatSkinning.relPos.z,\n 0.0,\n )\n .multiply(SplatSkinning.relQuat);\n\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.relQuat.x;\n this.boneData[i16 + 1] = SplatSkinning.relQuat.y;\n this.boneData[i16 + 2] = SplatSkinning.relQuat.z;\n this.boneData[i16 + 3] = SplatSkinning.relQuat.w;\n this.boneData[i16 + 4] = 0.5 * SplatSkinning.dual.x;\n this.boneData[i16 + 5] = 0.5 * SplatSkinning.dual.y;\n this.boneData[i16 + 6] = 0.5 * SplatSkinning.dual.z;\n this.boneData[i16 + 7] = 0.5 * SplatSkinning.dual.w;\n } else {\n this.setBoneQuatPosScale(boneIndex, quat, pos, SplatSkinning.UNIT_SCALE);\n }\n }\n\n setBoneQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n throw new Error(\n \"setBoneQuatPosScale only supported for linear blend skinning\",\n );\n }\n\n SplatSkinning.skinMat.compose(pos, quat, scale);\n this.setBoneMatrix(boneIndex, SplatSkinning.skinMat);\n }\n\n setBoneMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setBoneMatrix only supported for linear blend skinning\");\n }\n\n SplatSkinning.skinMat.multiplyMatrices(\n this.boneRestInvMats[boneIndex],\n matrix,\n );\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.skinMat.elements[0];\n this.boneData[i16 + 1] = SplatSkinning.skinMat.elements[1];\n this.boneData[i16 + 2] = SplatSkinning.skinMat.elements[2];\n this.boneData[i16 + 3] = SplatSkinning.skinMat.elements[4];\n this.boneData[i16 + 4] = SplatSkinning.skinMat.elements[5];\n this.boneData[i16 + 5] = SplatSkinning.skinMat.elements[6];\n this.boneData[i16 + 6] = SplatSkinning.skinMat.elements[8];\n this.boneData[i16 + 7] = SplatSkinning.skinMat.elements[9];\n this.boneData[i16 + 8] = SplatSkinning.skinMat.elements[10];\n this.boneData[i16 + 9] = SplatSkinning.skinMat.elements[12];\n this.boneData[i16 + 10] = SplatSkinning.skinMat.elements[13];\n this.boneData[i16 + 11] = SplatSkinning.skinMat.elements[14];\n }\n\n // Set up to 4 bone indices and weights for a Gsplat. For fewer than 4 bones,\n // you can set the remaining weights to 0 (and index=0).\n setSplatBones(\n splatIndex: number,\n boneIndices: THREE.Vector4,\n weights: THREE.Vector4,\n ) {\n const i4 = splatIndex * 4;\n this.skinData[i4 + 0] =\n Math.min(255, Math.max(0, Math.round(weights.x * 255.0))) +\n (boneIndices.x << 8);\n this.skinData[i4 + 1] =\n Math.min(255, Math.max(0, Math.round(weights.y * 255.0))) +\n (boneIndices.y << 8);\n this.skinData[i4 + 2] =\n Math.min(255, Math.max(0, Math.round(weights.z * 255.0))) +\n (boneIndices.z << 8);\n this.skinData[i4 + 3] =\n Math.min(255, Math.max(0, Math.round(weights.w * 255.0))) +\n (boneIndices.w << 8);\n }\n\n // Call this to indicate that the bones have changed and the Gsplats need to be\n // re-generated with updated skinning.\n updateBones() {\n this.boneTexture.needsUpdate = true;\n this.mesh.needsUpdate = true;\n }\n\n private static UNIT_SCALE = new THREE.Vector3(1, 1, 1);\n private static relQuat = new THREE.Quaternion();\n private static relPos = new THREE.Vector3();\n private static dual = new THREE.Quaternion();\n private static skinMat = new THREE.Matrix4();\n}\n\n// dyno program definitions for SplatSkinning\n\nexport const GsplatSkinning = { type: \"GsplatSkinning\" } as {\n type: \"GsplatSkinning\";\n};\n\nexport const defineGsplatSkinning = unindent(`\n struct GsplatSkinning {\n int numSplats;\n int numBones;\n usampler2DArray skinTexture;\n sampler2D boneTexture;\n };\n`);\n\nexport const defineApplyGsplatSkinning = unindent(`\n void applyGsplatSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec4 quaternion\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n\n center = quatVec(quat, center) + translate;\n quaternion = quatQuat(quat, quaternion);\n }\n`);\n\nfunction applyGsplatSkinning(\n gsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { gsplat: typeof Gsplat; skinning: typeof GsplatSkinning },\n { gsplat: typeof Gsplat }\n >({\n inTypes: { gsplat: Gsplat, skinning: GsplatSkinning },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplatSkinning, defineApplyGsplatSkinning],\n inputs: { gsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n applyGsplatSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${gsplat}.index, ${gsplat}.center, ${gsplat}.quaternion\n );\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nexport const defineApplyCovSplatDQSkinning = unindent(`\n void applyCovSplatDQSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n mat3 basis = quaternionToMatrix(quat);\n\n center = quatVec(quat, center) + translate;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nexport const defineApplyCovSplatLBSkinning = unindent(`\n void applyCovSplatLBSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n mat3 basis = mat3(0.0);\n vec3 offset = vec3(0.0);\n\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n if (boneIndex < numBones) {\n vec4 v0 = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n vec4 v1 = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n vec4 v2 = texelFetch(boneTexture, ivec2(2, boneIndex), 0);\n basis += weights[i] * mat3(v0.x, v0.y, v0.z, v0.w, v1.x, v1.y, v1.z, v1.w, v2.x);\n offset += weights[i] * vec3(v2.y, v2.z, v2.w);\n }\n }\n }\n\n center = basis * center + offset;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nfunction applyCovSplatDQSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatDQSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatDQSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nfunction applyCovSplatLBSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatLBSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatLBSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n","import * as THREE from \"three\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport function constructGrid({\n // PackedSplats object to add splats to\n splats,\n // min and max box extents of the grid\n extents,\n // step size along each grid axis\n stepSize = 1,\n // spherical radius of each Gsplat\n pointRadius = 0.01,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n pointShadowScale = 2.0,\n // Gsplat opacity\n opacity = 1.0,\n // Gsplat color (THREE.Color) or function to set color for position:\n // ((THREE.Color, THREE.Vector3) => void) (default: RGB-modulated grid)\n color,\n}: {\n splats: PackedSplats;\n extents: THREE.Box3;\n stepSize?: number;\n pointRadius?: number;\n pointShadowScale?: number;\n opacity?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const EPSILON = 1.0e-6;\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n if (color == null) {\n color = (color, point) =>\n color.set(\n 0.55 + 0.45 * Math.cos(point.x * 1),\n 0.55 + 0.45 * Math.cos(point.y * 1),\n 0.55 + 0.45 * Math.cos(point.z * 1),\n );\n }\n const pointColor = new THREE.Color();\n for (let z = extents.min.z; z < extents.max.z + EPSILON; z += stepSize) {\n for (let y = extents.min.y; y < extents.max.y + EPSILON; y += stepSize) {\n for (let x = extents.min.x; x < extents.max.x + EPSILON; x += stepSize) {\n center.set(x, y, z);\n for (let layer = 0; layer < 2; ++layer) {\n scales.setScalar(pointRadius * (layer ? 1 : pointShadowScale));\n if (!layer) {\n pointColor.setScalar(0.0);\n } else if (typeof color === \"function\") {\n color(pointColor, center);\n } else {\n pointColor.copy(color);\n }\n splats.pushSplat(center, scales, quaternion, opacity, pointColor);\n }\n }\n }\n }\n}\n\nexport function constructAxes({\n // PackedSplats object to add splats to\n splats,\n // scale (Gsplat scale along axis)\n scale = 0.25,\n // radius of the axes (Gsplat scale orthogonal to axis)\n axisRadius = 0.0075,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n axisShadowScale = 2.0,\n // origins of the axes (default single axis at origin)\n origins = [new THREE.Vector3()],\n}: {\n splats: PackedSplats;\n scale?: number;\n axisRadius?: number;\n axisShadowScale?: number;\n origins?: THREE.Vector3[];\n}) {\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const color = new THREE.Color();\n const opacity = 1.0;\n for (const origin of origins) {\n for (let axis = 0; axis < 3; ++axis) {\n center.set(\n origin.x + (axis === 0 ? scale : 0),\n origin.y + (axis === 1 ? scale : 0),\n origin.z + (axis === 2 ? scale : 0),\n );\n for (let layer = 0; layer < 2; ++layer) {\n scales.set(\n (axis === 0 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 1 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 2 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n );\n color.setRGB(\n layer === 0 ? 0.0 : axis === 0 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 1 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 2 ? 1.0 : 0.0,\n );\n splats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n }\n}\n\nexport function constructSpherePoints({\n // PackedSplats object to add splats to\n splats,\n // center of the sphere (default: origin)\n origin = new THREE.Vector3(),\n // radius of the sphere\n radius = 1.0,\n // maximum depth of recursion for subdividing the sphere\n // Warning: Gsplat count grows exponentially with depth\n maxDepth = 3,\n // filter function to apply to each point, for example to select\n // points in a certain direction or other function ((THREE.Vector3) => boolean)\n // (default: null)\n filter = null,\n // radius of each oriented Gsplat\n pointRadius = 0.02,\n // flatness of each oriented Gsplat\n pointThickness = 0.001,\n // color of each Gsplat (THREE.Color) or function to set color for point:\n // ((THREE.Color, THREE.Vector3) => void) (default: white)\n color = new THREE.Color(1, 1, 1),\n}: {\n splats: PackedSplats;\n origin?: THREE.Vector3;\n radius?: number;\n maxDepth?: number;\n filter?: ((point: THREE.Vector3) => boolean) | null;\n pointRadius?: number;\n pointThickness?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const pointsHash: { [key: string]: THREE.Vector3 } = {};\n\n function addPoint(p: THREE.Vector3) {\n if (filter && !filter(p)) {\n return;\n }\n const key = `${p.x},${p.y},${p.z}`;\n if (!pointsHash[key]) {\n pointsHash[key] = p;\n }\n }\n\n function recurse(\n depth: number,\n p0: THREE.Vector3,\n p1: THREE.Vector3,\n p2: THREE.Vector3,\n ) {\n addPoint(p0);\n addPoint(p1);\n addPoint(p2);\n if (depth >= maxDepth) {\n return;\n }\n const p01 = new THREE.Vector3().addVectors(p0, p1).normalize();\n const p12 = new THREE.Vector3().addVectors(p1, p2).normalize();\n const p20 = new THREE.Vector3().addVectors(p2, p0).normalize();\n recurse(depth + 1, p0, p01, p20);\n recurse(depth + 1, p01, p1, p12);\n recurse(depth + 1, p20, p12, p2);\n recurse(depth + 1, p01, p12, p20);\n }\n\n for (const x of [-1, 1]) {\n for (const y of [-1, 1]) {\n for (const z of [-1, 1]) {\n const p0 = new THREE.Vector3(x, 0, 0);\n const p1 = new THREE.Vector3(0, y, 0);\n const p2 = new THREE.Vector3(0, 0, z);\n recurse(0, p0, p1, p2);\n }\n }\n }\n\n const points = Object.values(pointsHash);\n const scales = new THREE.Vector3(pointRadius, pointRadius, pointThickness);\n const quaternion = new THREE.Quaternion();\n const pointColor = typeof color === \"function\" ? new THREE.Color() : color;\n for (const point of points) {\n quaternion.setFromUnitVectors(new THREE.Vector3(0, 0, -1), point);\n if (typeof color === \"function\") {\n color(pointColor, point);\n }\n point.multiplyScalar(radius);\n point.add(origin);\n splats.pushSplat(point, scales, quaternion, 1.0, pointColor);\n }\n}\n\nexport function textSplats({\n // text string to display\n text,\n // browser font to render text with (default: \"Arial\")\n font,\n // font size in pixels/Gsplats (default: 32)\n fontSize,\n // SplatMesh.recolor tint assuming white Gsplats (default: white)\n color,\n // Individual Gsplat color (default: white)\n rgb,\n // Gsplat radius (default: 0.8 covers 1-unit spacing well)\n dotRadius,\n // text alignment: \"left\", \"center\", \"right\", \"start\", \"end\" (default: \"start\")\n textAlign,\n // line spacing multiplier, lines delimited by \"\\n\" (default: 1.0)\n lineHeight,\n // Coordinate scale in object-space (default: 1.0)\n objectScale,\n}: {\n text: string;\n font?: string;\n fontSize?: number;\n color?: THREE.Color;\n rgb?: THREE.Color;\n dotRadius?: number;\n textAlign?: \"left\" | \"center\" | \"right\" | \"start\" | \"end\";\n lineHeight?: number;\n objectScale?: number;\n}) {\n font = font ?? \"Arial\";\n fontSize = fontSize ?? 32;\n color = color ?? new THREE.Color(1, 1, 1);\n dotRadius = dotRadius ?? 0.8;\n textAlign = textAlign ?? \"start\";\n lineHeight = lineHeight ?? 1;\n objectScale = objectScale ?? 1;\n const lines = text.split(\"\\n\");\n\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Failed to create canvas context\");\n }\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n const metrics = ctx.measureText(\"\");\n const fontHeight =\n metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent;\n\n let minLeft = Number.POSITIVE_INFINITY;\n let maxRight = Number.NEGATIVE_INFINITY;\n let minTop = Number.POSITIVE_INFINITY;\n let maxBottom = Number.NEGATIVE_INFINITY;\n for (let line = 0; line < lines.length; ++line) {\n const metrics = ctx.measureText(lines[line]);\n const y = fontHeight * lineHeight * line;\n minLeft = Math.min(minLeft, -metrics.actualBoundingBoxLeft);\n maxRight = Math.max(maxRight, metrics.actualBoundingBoxRight);\n minTop = Math.min(minTop, y - metrics.actualBoundingBoxAscent);\n maxBottom = Math.max(maxBottom, y + metrics.actualBoundingBoxDescent);\n }\n const originLeft = Math.floor(minLeft);\n const originTop = Math.floor(minTop);\n const width = Math.ceil(maxRight) - originLeft;\n const height = Math.ceil(maxBottom) - originTop;\n canvas.width = width;\n canvas.height = height;\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n ctx.textBaseline = \"alphabetic\";\n ctx.fillStyle = \"#FFFFFF\";\n for (let i = 0; i < lines.length; ++i) {\n const y = fontHeight * lineHeight * i - originTop;\n ctx.fillText(lines[i], -originLeft, y);\n }\n\n const imageData = ctx.getImageData(0, 0, width, height);\n const rgba = new Uint8Array(imageData.data.buffer);\n const splats = new PackedSplats();\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius * objectScale);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n rgb = rgb ?? new THREE.Color(1, 1, 1);\n\n let offset = 0;\n for (let y = 0; y < height; ++y) {\n for (let x = 0; x < width; ++x) {\n const a = rgba[offset + 3];\n if (a > 0) {\n const opacity = a / 255;\n center.set(x - 0.5 * (width - 1), 0.5 * (height - 1) - y, 0);\n center.multiplyScalar(objectScale);\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n offset += 4;\n }\n }\n\n const mesh = new SplatMesh({ packedSplats: splats });\n mesh.recolor = color;\n return mesh;\n}\n\nexport function imageSplats({\n // URL of the image to convert to splats (example: `url: \"./image.png\"`)\n url,\n // Radius of each Gsplat, default covers 1-unit spacing well (default: 0.8)\n dotRadius,\n // Subsampling factor for the image. Higher values reduce resolution,\n // for example 2 will halve the width and height by averaging (default: 1)\n subXY,\n // Optional callback function to modify each Gsplat before it's added.\n // Return null to skip adding the Gsplat, or a number to set the opacity\n // and add the Gsplat with parameter values in the objects center, rgba etc. were\n // passed into the forEachSplat callback. Ending the callback in `return opacity;`\n // will retain the original opacity.\n // ((width: number, height: number, index: number, center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, opacity: number, color: THREE.Color) => number | null)\n forEachSplat,\n}: {\n url: string;\n dotRadius?: number;\n subXY?: number;\n forEachSplat?: (\n width: number,\n height: number,\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => number | null;\n}): SplatMesh {\n dotRadius = dotRadius ?? 0.8;\n subXY = Math.max(1, Math.floor(subXY ?? 1));\n\n return new SplatMesh({\n constructSplats: async (splats) => {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.onerror = reject;\n img.onload = () => {\n const { width, height } = img;\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n reject(new Error(\"Failed to create canvas context\"));\n return;\n }\n ctx.imageSmoothingEnabled = true;\n ctx.imageSmoothingQuality = \"high\";\n const destWidth = Math.round(width / subXY);\n const destHeight = Math.round(height / subXY);\n ctx.drawImage(img, 0, 0, destWidth, destHeight);\n try {\n const imageData = ctx.getImageData(0, 0, destWidth, destHeight);\n const rgba = new Uint8Array(imageData.data.buffer);\n\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const rgb = new THREE.Color();\n\n let index = 0;\n for (let y = 0; y < destHeight; ++y) {\n for (let x = 0; x < destWidth; ++x) {\n const offset = index * 4;\n const a = rgba[offset + 3];\n if (a > 0) {\n let opacity = a / 255;\n rgb.set(\n rgba[offset + 0] / 255,\n rgba[offset + 1] / 255,\n rgba[offset + 2] / 255,\n );\n center.set(\n x - 0.5 * (destWidth - 1),\n 0.5 * (destHeight - 1) - y,\n 0,\n );\n scales.setScalar(dotRadius);\n quaternion.set(0, 0, 0, 1);\n let push = true;\n if (forEachSplat) {\n const maybeOpacity = forEachSplat(\n destWidth,\n destHeight,\n index,\n center,\n scales,\n quaternion,\n opacity,\n rgb,\n );\n opacity = maybeOpacity ?? opacity;\n push = maybeOpacity !== null;\n }\n if (push) {\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n }\n index += 1;\n }\n }\n resolve();\n } catch (error) {\n reject(error);\n }\n };\n img.src = url;\n });\n },\n });\n}\n","import * as THREE from \"three\";\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n type DynoVal,\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n div,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n floatBitsToInt,\n hashVec3,\n imod,\n mul,\n split,\n sub,\n vec3,\n} from \"../dyno\";\n\nexport function staticBox({\n box,\n cells,\n dotScale,\n color,\n opacity,\n}: {\n box: THREE.Box3;\n cells: THREE.Vector3;\n dotScale: number;\n color?: THREE.Color;\n opacity?: number;\n}) {\n cells.x = Math.max(1, Math.round(cells.x));\n cells.y = Math.max(1, Math.round(cells.y));\n cells.z = Math.max(1, Math.round(cells.z));\n opacity = opacity ?? 1;\n const numSplats = cells.x * cells.y * cells.z;\n const dynoX = dynoConst(\"int\", cells.x);\n const dynoY = dynoConst(\"int\", cells.y);\n const dynoZ = dynoConst(\"int\", cells.z);\n\n const dynoTime = dynoFloat(0);\n const generator = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n const cellX = imod(index, dynoX);\n const index2 = div(index, dynoX);\n const cellY = imod(index2, dynoY);\n const cellZ = div(index2, dynoY);\n const cell = combine({\n vectorType: \"ivec3\",\n x: cellX,\n y: cellY,\n z: cellZ,\n });\n\n const intTime = floatBitsToInt(dynoTime);\n const inputs = combine({ vectorType: \"ivec2\", x: index, y: intTime });\n const random = hashVec3(inputs);\n const min = dynoConst(\"vec3\", box.min);\n const max = dynoConst(\"vec3\", box.max);\n const size = sub(max, min);\n const coord = div(add(vec3(cell), random), dynoConst(\"vec3\", cells));\n let r: DynoVal<\"float\">;\n let g: DynoVal<\"float\">;\n let b: DynoVal<\"float\">;\n if (color) {\n r = dynoConst(\"float\", color.r);\n g = dynoConst(\"float\", color.g);\n b = dynoConst(\"float\", color.b);\n } else {\n ({ r, g, b } = split(coord).outputs);\n }\n const rgba = combine({\n vectorType: \"vec4\",\n r,\n g,\n b,\n a: dynoConst(\"float\", opacity),\n });\n const center = add(min, mul(size, coord));\n const scales = vec3(dynoConst(\"float\", dotScale));\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgba,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ time }) => {\n dynoTime.value = time;\n const _updated = transformer.update(generator);\n generator.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return generator;\n}\n","import * as THREE from \"three\";\n\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n fract,\n hashVec4,\n max,\n mix,\n mod,\n mul,\n sin,\n split,\n sub,\n vec3,\n} from \"../dyno\";\nimport { dynoVec3 } from \"../dyno\";\n\n// snowBox produces Gsplat trajectories that move in a deterministic fashion over time,\n// with high similarity between adjacent frames. See examples/atmospheric/main.js\n// for an example that creates a snowBox.\n\n// A snowBox instance has a collection of properties that can be tuned to achieve\n// different particle effects. The below DEFAULT_SNOW and DEFAULT_RAIN are example\n// parameter sets that look a lot like snow and rain, and can be used as a starting\n// point for further tweaking: `const mySnow = { ...DEFAULT_SNOW, density: 500 };`\n\nexport const DEFAULT_SNOW = {\n box: new THREE.Box3(\n new THREE.Vector3(-1, -1, -1),\n new THREE.Vector3(1, 1, 1),\n ),\n density: 100,\n fallDirection: new THREE.Vector3(-1, -3, 1).normalize(),\n fallVelocity: 0.02,\n wanderScale: 0.04,\n wanderVariance: 2,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.5, 0.5, 1),\n minScale: 0.001,\n maxScale: 0.005,\n anisoScale: new THREE.Vector3(1, 1, 1),\n};\n\nexport const DEFAULT_RAIN = {\n box: new THREE.Box3(\n new THREE.Vector3(-2, -1, -2),\n new THREE.Vector3(2, 5, 2),\n ),\n density: 10,\n fallDirection: new THREE.Vector3(0, -1, 0),\n fallVelocity: 2,\n wanderScale: 0.1,\n wanderVariance: 1,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.25, 0.25, 0.5),\n minScale: 0.005,\n maxScale: 0.01,\n anisoScale: new THREE.Vector3(0.1, 1, 0.1),\n};\n\n// Calling snowBox creates a new snowBox instance and returns an object with\n// the snowBox itself as well `as` a collection of controls that can be used to\n// adjust the snowBox's properties over time:\n//\n// - snow: the SplatGenerator snowBox instance\n// - min: the vec3 uniform of the snowBox minimum position\n// - max: the vec3 uniform of the snowBox maximum position\n// - minY: the float uniform of the snowBox minimum y-coordinate\n// - color1: the vec3 uniform of the snowBox first color\n// - color2: the vec3 uniform of the snowBox second color\n// - opacity: the float uniform of the snowBox opacity\n// - fallVelocity: the float uniform of the snowBox fall velocity\n// - wanderVariance: the float uniform of the snowBox wander variance\n// - wanderScale: the float uniform of the snowBox wander scale\n// - fallDirection: the vec3 uniform of the snowBox fall direction\n// - minScale: the float uniform of the snowBox minimum scale\n// - maxScale: the float uniform of the snowBox maximum scale\n// - anisoScale: the vec3 uniform of the snowBox anisotropic scale\n\nexport function snowBox({\n // min and max box extents of the snowBox\n box,\n // minimum y-coordinate to clamp particle position, which can be used to\n // fake hitting a ground plane and lingering there for a bit\n minY,\n // number of Gsplats to generate (default: calculated from box and density)\n numSplats,\n // density of Gsplats per unit volume (default: 100)\n density,\n // The xyz anisotropic scale of the Gsplat, which can be used for example\n // to elongate rain particles (default: (1, 1, 1))\n anisoScale,\n // Minimum Gsplat particle scale (default: 0.001)\n minScale,\n // Maximum Gsplat particle scale (default: 0.005)\n maxScale,\n // The average direction of fall (default: (0, -1, 0))\n fallDirection,\n // The average speed of the fall (multiplied with fallDirection) (default: 0.02)\n fallVelocity,\n // The world scale of wandering overlay motion (default: 0.01)\n wanderScale,\n // Controls how uniformly the particles wander in sync, more variance mean\n // more randomness in the motion (default: 2)\n wanderVariance,\n // Color 1 of the two colors interpolated between (default: (1, 1, 1))\n color1,\n // Color 2 of the two colors interpolated between (default: (0.5, 0.5, 1))\n color2,\n // The base opacity of the Gsplats (default: 1)\n opacity,\n // Optional callback function to call each frame.\n onFrame,\n}: {\n box?: THREE.Box3;\n minY?: number;\n numSplats?: number;\n density?: number;\n anisoScale?: THREE.Vector3;\n minScale?: number;\n maxScale?: number;\n fallDirection?: THREE.Vector3;\n fallVelocity?: number;\n wanderScale?: number;\n wanderVariance?: number;\n color1?: THREE.Color;\n color2?: THREE.Color;\n opacity?: number;\n onFrame?: ({\n object,\n time,\n deltaTime,\n }: { object: SplatGenerator; time: number; deltaTime: number }) => void;\n}) {\n box =\n box ??\n new THREE.Box3(new THREE.Vector3(-1, -1, -1), new THREE.Vector3(1, 1, 1));\n const volume =\n (box.max.x - box.min.x) * (box.max.y - box.min.y) * (box.max.z - box.min.z);\n density = density ?? 100;\n numSplats =\n numSplats ?? Math.max(1, Math.min(1000000, Math.round(volume * density)));\n\n const dynoMinScale = dynoFloat(minScale ?? 0.001);\n const dynoMaxScale = dynoFloat(maxScale ?? 0.005);\n const dynoAnisoScale = dynoVec3(\n (anisoScale?.clone() ?? new THREE.Vector3(1, 1, 1)).normalize(),\n );\n const dynoFallDirection = dynoVec3(\n (fallDirection ?? new THREE.Vector3(0, -1, 0)).normalize(),\n );\n const dynoFallVelocity = dynoFloat(fallVelocity ?? 0.02);\n const dynoWanderScale = dynoFloat(wanderScale ?? 0.01);\n const dynoWanderVariance = dynoFloat(wanderVariance ?? 2);\n const dynoColor1 = dynoVec3(color1 ?? new THREE.Color(1, 1, 1));\n const dynoColor2 = dynoVec3(color2 ?? new THREE.Color(0.5, 0.5, 1));\n const dynoOpacity = dynoFloat(opacity ?? 1);\n\n const dynoTime = dynoFloat(0);\n const globalOffset = dynoVec3(new THREE.Vector3(0, 0, 0));\n const dynoMin = dynoVec3(box.min);\n const dynoMax = dynoVec3(box.max);\n const dynoMinY = dynoFloat(minY ?? Number.NEGATIVE_INFINITY);\n const minMax = sub(dynoMax, dynoMin);\n const snow = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index not defined\");\n }\n const random = hashVec4(index);\n const randomW = split(random).outputs.w;\n let position = vec3(random);\n\n let size = fract(mul(randomW, dynoConst(\"float\", 100)));\n size = sin(mul(dynoLiteral(\"float\", \"PI\"), size));\n size = add(dynoMinScale, mul(size, sub(dynoMaxScale, dynoMinScale)));\n const scales = mul(size, dynoAnisoScale);\n\n const intensity = fract(mul(randomW, dynoConst(\"float\", 10)));\n const hue = fract(randomW);\n const color = mix(dynoColor1, dynoColor2, hue);\n const rgb = mul(color, intensity);\n\n const random2 = hashVec4(\n combine({\n vectorType: \"ivec2\",\n x: index,\n y: dynoConst(\"int\", 0x1ab5),\n }),\n );\n let perturb = vec3(random2);\n let timeOffset = mul(split(random2).outputs.w, dynoWanderVariance);\n timeOffset = add(dynoTime, timeOffset);\n\n position = add(position, globalOffset);\n const modulo = mod(\n position,\n dynoConst(\"vec3\", new THREE.Vector3(1, 1, 1)),\n );\n position = add(dynoMin, mul(minMax, modulo));\n\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n\n perturb = sin(add(vec3(timeOffset), perturb));\n perturb = mul(perturb, dynoWanderScale);\n let center = add(position, perturb);\n\n let centerY = split(center).outputs.y;\n centerY = max(dynoMinY, centerY);\n center = combine({ vector: center, y: centerY });\n\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgb,\n opacity: dynoOpacity,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ object, time, deltaTime }) => {\n dynoTime.value = time;\n const _updated = transformer.update(snow);\n\n const fallDelta = dynoFallDirection.value\n .clone()\n .multiplyScalar(dynoFallVelocity.value * deltaTime);\n globalOffset.value.add(fallDelta);\n\n // Enable/disable splats based on opacity\n object.visible = dynoOpacity.value > 0;\n\n onFrame?.({ object, time, deltaTime });\n snow.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return {\n snow,\n min: dynoMin,\n max: dynoMax,\n minY: dynoMinY,\n color1: dynoColor1,\n color2: dynoColor2,\n opacity: dynoOpacity,\n fallVelocity: dynoFallVelocity,\n wanderVariance: dynoWanderVariance,\n wanderScale: dynoWanderScale,\n fallDirection: dynoFallDirection,\n minScale: dynoMinScale,\n maxScale: dynoMaxScale,\n anisoScale: dynoAnisoScale,\n };\n}\n\nexport type SNOW_RESULT_TYPE = ReturnType;\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n Gsplat,\n add,\n combineGsplat,\n dot,\n dynoBlock,\n dynoConst,\n greaterThanEqual,\n gsplatNormal,\n mul,\n neg,\n select,\n splitGsplat,\n} from \"../dyno\";\n\nexport function makeNormalColorModifier(splatToView: SplatTransformer) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let normal = gsplatNormal(gsplat);\n\n const viewGsplat = splatToView.applyGsplat(gsplat);\n const viewCenter = splitGsplat(viewGsplat).outputs.center;\n const viewNormal = gsplatNormal(viewGsplat);\n const splatDot = dot(viewCenter, viewNormal);\n\n const sameDir = greaterThanEqual(splatDot, dynoConst(\"float\", 0));\n normal = select(sameDir, neg(normal), normal);\n const rgb = add(\n mul(normal, dynoConst(\"float\", 0.5)),\n dynoConst(\"float\", 0.5),\n );\n\n gsplat = combineGsplat({ gsplat, rgb });\n return { gsplat };\n });\n}\n\nexport function setWorldNormalColor(splats: SplatMesh) {\n splats.enableWorldToView = true;\n splats.worldModifier = makeNormalColorModifier(splats.context.worldToView);\n splats.updateGenerator();\n}\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n type DynoVal,\n Gsplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n neg,\n normalizedDepth,\n select,\n split,\n splitGsplat,\n sub,\n} from \"../dyno\";\n\nexport function makeDepthColorModifier(\n splatToView: SplatTransformer,\n minDepth: DynoVal<\"float\">,\n maxDepth: DynoVal<\"float\">,\n reverse: DynoVal<\"bool\">,\n) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let { center } = splitGsplat(gsplat).outputs;\n center = splatToView.apply(center);\n const { z } = split(center).outputs;\n let depth = normalizedDepth(neg(z), minDepth, maxDepth);\n depth = select(reverse, sub(dynoConst(\"float\", 1), depth), depth);\n\n gsplat = combineGsplat({ gsplat, r: depth, g: depth, b: depth });\n return { gsplat };\n });\n}\n\nexport function setDepthColor(\n splats: SplatMesh,\n minDepth: number,\n maxDepth: number,\n reverse?: boolean,\n) {\n splats.enableWorldToView = true;\n const dynoMinDepth = dynoConst(\"float\", minDepth);\n const dynoMaxDepth = dynoConst(\"float\", maxDepth);\n const dynoReverse = dynoConst(\"bool\", reverse ?? false);\n splats.worldModifier = makeDepthColorModifier(\n splats.context.worldToView,\n dynoMinDepth,\n dynoMaxDepth,\n dynoReverse,\n );\n splats.updateGenerator();\n return {\n minDepth: dynoMinDepth,\n maxDepth: dynoMaxDepth,\n reverse: dynoReverse,\n };\n}\n","import * as THREE from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport interface SparkXrOptions {\n renderer: THREE.WebGLRenderer;\n // Element to attach enter/exit click handler to\n element?: HTMLElement;\n // ID of element to attach enter/exit click handler to\n elementId?: string;\n // Create a button to enter/exit XR\n // Optionally provide button text or HTML\n // Default is true - create a button\n button?: boolean | SparkXrButton;\n // Blur out element when mouse leaves it\n // Default is 0.5 - 50% opacity\n onMouseLeaveOpacity?: number;\n // Default is \"vrar\" - Try VR then AR\n mode?: \"vr\" | \"ar\" | \"arvr\" | \"vrar\";\n // fixedFoveation: XrManager.setFoveation(...)\n fixedFoveation?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRWebGLLayer/XRWebGLLayer#framebufferscalefactor\n // Default is 0.5 - 50% resolution for better frame rate\n frameBufferScaleFactor?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpace#reference_space_types\n // Defaults is \"local\" - origin is the user's position when starting XR session\n referenceSpaceType?: \"local\" | \"local-floor\" | \"unbounded\" | \"viewer\";\n // Enable hand tracking\n // Default is false\n enableHands?: boolean;\n // Allow WebXR entry on mobile phones that expose navigator.xr\n // Defaults to false - blocks phones to avoid unusable split-screen modes\n allowMobileXr?: boolean;\n // Session init options\n // Default is empty - no additional options\n sessionInit?: XRSessionInit;\n // Callback function called when SparkXr is ready\n // Default is undefined - no callback\n onReady?: (supported: boolean) => void | Promise;\n // Callback function called when entering XR\n // Default is undefined - no callback\n onEnterXr?: () => void | Promise;\n // Callback function called when exiting XR\n // Default is undefined - no callback\n onExitXr?: () => void | Promise;\n // ztroller movement and rotation options\n controllers?: SparkXrControllers;\n}\n\nexport interface SparkXrButton {\n enterXrHtml?: string;\n exitXrHtml?: string;\n enterVrHtml?: string;\n exitVrHtml?: string;\n enterArHtml?: string;\n exitArHtml?: string;\n enterXrText?: string;\n exitXrText?: string;\n enterVrText?: string;\n exitVrText?: string;\n enterArText?: string;\n exitArText?: string;\n style?: CSSStyleDeclaration;\n enterStyle?: CSSStyleDeclaration;\n exitStyle?: CSSStyleDeclaration;\n zIndex?: number;\n}\n\nexport type XrGamepads = {\n left?: Gamepad;\n right?: Gamepad;\n leftIsHand?: boolean;\n rightIsHand?: boolean;\n};\n\nexport interface SparkXrControllers {\n moveSpeed?: number;\n rotateSpeed?: number;\n rollSpeed?: number;\n fastMultiplier?: number;\n slowMultiplier?: number;\n moveHeading?: boolean;\n moveDirection?: boolean;\n getMove?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getRotate?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getFast?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n getSlow?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n}\n\nexport const DEFAULT_CONTROLLER_MOVE_SPEED = 1.0;\nexport const DEFAULT_CONTROLLER_ROTATE_SPEED = 4.0;\nexport const DEFAULT_CONTROLLER_ROLL_SPEED = 2.0;\nexport const DEFAULT_CONTROLLER_FAST_MULTIPLIER = 5;\nexport const DEFAULT_CONTROLLER_SLOW_MULTIPLIER = 1 / 5;\nexport const DEFAULT_CONTROLLER_MOVE_HEADING = false;\n\nexport const DEFAULT_CONTROLLER_GETMOVE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.leftIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(\n gamepads.left?.axes[2] ?? 0,\n (gamepads.left?.buttons[0].value ?? 0) -\n (gamepads.left?.buttons[1].value ?? 0),\n gamepads.left?.axes[3] ?? 0,\n );\nexport const DEFAULT_CONTROLLER_GETROTATE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(gamepads.right?.axes[2] ?? 0, 0, 0);\nexport const DEFAULT_CONTROLLER_GETFAST = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[0]?.pressed ?? false);\nexport const DEFAULT_CONTROLLER_GETSLOW = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[1]?.pressed ?? false);\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.015,\n t1: 0.012,\n t2: 0.0105,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nconst XR_HEADSET_HINTS =\n /Quest|OculusBrowser|VisionOS|XRBrowser|Pico|Lynx|MagicLeap/i;\n\nfunction isLikelyMobilePhone() {\n const ua = navigator.userAgent ?? \"\";\n if (XR_HEADSET_HINTS.test(ua)) {\n return false;\n }\n\n const androidMobile = /Android/i.test(ua) || /Mobile/i.test(ua);\n if (androidMobile) {\n return true;\n }\n\n const uaData = (\n navigator as Navigator & {\n userAgentData?: { mobile?: boolean };\n }\n ).userAgentData;\n if (uaData && typeof uaData.mobile === \"boolean\") {\n return uaData.mobile;\n }\n\n return false;\n}\n\nexport type Joint = {\n position: THREE.Vector3;\n quaternion: THREE.Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\n\nexport class SparkXr {\n renderer: THREE.WebGLRenderer;\n xr?: XRSystem;\n element?: HTMLElement;\n button?: SparkXrButton;\n mode: XRSessionMode | \"initializing\" | \"not_supported\";\n sessionInit?: XRSessionInit;\n session?: XRSession;\n onEnterXr?: () => void;\n onExitXr?: () => void;\n\n controllers?: SparkXrControllers;\n lastControllersUpdate = 0;\n\n enableHands: boolean;\n hands: XrHand[] = [];\n\n constructor(options: SparkXrOptions) {\n this.renderer = options.renderer;\n this.xr = navigator.xr;\n this.mode = \"initializing\";\n this.onEnterXr = options.onEnterXr;\n this.onExitXr = options.onExitXr;\n this.enableHands = options.enableHands ?? false;\n this.controllers = options.controllers;\n\n Promise.resolve()\n .then(() => {\n if (!this.xr) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (!options.allowMobileXr && isLikelyMobilePhone()) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (this.enableHands) {\n this.hands = [new XrHand(Hand.left), new XrHand(Hand.right)];\n }\n\n let element: HTMLElement | undefined = undefined;\n let button: SparkXrButton | undefined = undefined;\n if (options.element) {\n element = options.element;\n } else if (options.elementId) {\n element = document.getElementById(options.elementId) ?? undefined;\n } else {\n element = SparkXr.createButton();\n button =\n options.button == null || typeof options.button === \"boolean\"\n ? {}\n : options.button;\n }\n\n if (!element) {\n throw new Error(\"No element or button provided\");\n }\n\n element.style.display = \"none\";\n element.classList.add(\"hidden\");\n this.button = button;\n this.element = element;\n\n const opacity = options.onMouseLeaveOpacity?.toString();\n if (opacity !== undefined) {\n element.addEventListener(\"mouseleave\", () => {\n element.style.opacity = opacity;\n });\n element.addEventListener(\"mouseenter\", () => {\n element.style.opacity = \"\";\n });\n }\n\n return this.initializeXr(options);\n })\n .then(() => {\n return options.onReady?.(this.mode !== \"not_supported\");\n })\n .catch((error) => {\n alert(`Error initializing SparkXr: ${error}`);\n });\n }\n\n private async initializeXr(options: SparkXrOptions) {\n if (!this.xr || !this.element) {\n return;\n }\n const element = this.element;\n\n const modes = {\n vr: [\"immersive-vr\"],\n ar: [\"immersive-ar\"],\n arvr: [\"immersive-ar\", \"immersive-vr\"],\n vrar: [\"immersive-vr\", \"immersive-ar\"],\n }[options.mode ?? \"vrar\"] as XRSessionMode[] | undefined;\n if (!modes) {\n throw new Error(`Invalid mode: ${options.mode}`);\n }\n\n let supported = null;\n for (const mode of modes) {\n if (await this.xr.isSessionSupported(mode)) {\n supported = mode;\n break;\n }\n }\n\n if (!supported) {\n this.mode = \"not_supported\";\n return;\n }\n this.mode = supported;\n\n const referenceSpaceType = options.referenceSpaceType ?? \"local\";\n\n this.renderer.xr.enabled = true;\n this.renderer.xr.setReferenceSpaceType(referenceSpaceType);\n\n if (options.fixedFoveation !== undefined) {\n this.renderer.xr.setFoveation(options.fixedFoveation);\n }\n const frameBufferScaleFactor = options.frameBufferScaleFactor ?? 0.5;\n this.renderer.xr.setFramebufferScaleFactor(frameBufferScaleFactor);\n\n const optionalFeatures = options.sessionInit?.optionalFeatures ?? [];\n if (options.enableHands) {\n optionalFeatures.push(\"hand-tracking\");\n }\n\n const requiredFeatures = options.sessionInit?.requiredFeatures ?? [];\n requiredFeatures.push(referenceSpaceType);\n\n this.sessionInit = {\n ...options.sessionInit,\n optionalFeatures,\n requiredFeatures,\n };\n // console.log(\"* this.sessionInit\", this.sessionInit);\n\n element.addEventListener(\"click\", () => {\n this.toggleXr();\n });\n\n this.updateElement();\n }\n\n async toggleXr() {\n if (!this.xr || !this.sessionInit) {\n // console.log(\"* !this.xr || !this.sessionInit\");\n return;\n }\n\n if (!this.session) {\n try {\n const mode = this.mode as XRSessionMode;\n const session = await this.xr.requestSession(mode, this.sessionInit);\n this.session = session;\n // console.log(\"* this.session\", this.session);\n\n const onSessionEnded = () => {\n session?.removeEventListener(\"end\", onSessionEnded);\n session?.removeEventListener(\"visibilitychange\", visibilityChanged);\n this.session = undefined;\n\n this.updateElement();\n this.onExitXr?.();\n };\n\n let lastVisibilityState = session.visibilityState;\n const visibilityChanged = () => {\n if (\n session?.visibilityState === \"visible-blurred\" &&\n lastVisibilityState === \"visible\"\n ) {\n session?.end();\n }\n lastVisibilityState = session?.visibilityState;\n };\n\n this.session?.addEventListener(\"end\", onSessionEnded);\n this.session?.addEventListener(\"visibilitychange\", visibilityChanged);\n\n await this.renderer.xr.setSession(this.session);\n // console.log(\"* setSession\");\n\n return this.onEnterXr?.();\n } catch (error) {\n console.error(\"Error requesting XR session\", error);\n return;\n }\n } else {\n this.session.end();\n // console.log(\"* end session\");\n }\n }\n\n private updateElement() {\n const mode = this.mode as XRSessionMode;\n const element = this.element;\n if (element) {\n element.style.display = \"\";\n element.classList.remove(\"hidden\");\n\n const button = typeof this.button === \"boolean\" ? {} : this.button;\n if (button) {\n if (!this.session) {\n const enterHtml =\n (mode === \"immersive-vr\"\n ? button.enterVrHtml\n : button.enterArHtml) ?? button.enterXrHtml;\n const enterText =\n (mode === \"immersive-vr\"\n ? button.enterVrText\n : button.enterArText) ?? button.enterXrText;\n if (enterHtml) {\n element.innerHTML = enterHtml;\n } else if (enterText) {\n element.textContent = enterText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"ENTER VR\" : \"ENTER AR\";\n }\n } else {\n const exitHtml =\n (mode === \"immersive-vr\" ? button.exitVrHtml : button.exitArHtml) ??\n button.exitXrHtml;\n const exitText =\n (mode === \"immersive-vr\" ? button.exitVrText : button.exitArText) ??\n button.exitXrText;\n if (exitHtml) {\n element.innerHTML = exitHtml;\n } else if (exitText) {\n element.textContent = exitText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"EXIT VR\" : \"EXIT AR\";\n }\n }\n\n element.style.display = \"\";\n }\n }\n }\n\n private static createButton() {\n const button = document.createElement(\"button\");\n Object.assign(button.style, {\n position: \"absolute\",\n bottom: \"20px\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n padding: \"40px 40px\",\n border: \"2px solid #fff\",\n borderRadius: \"16px\",\n background: \"rgba(0,0,0,0.1)\",\n color: \"#fff\",\n font: \"bold 28px sans-serif\",\n textAlign: \"center\",\n userSelect: \"none\",\n zIndex: \"999\",\n });\n document.body.appendChild(button);\n return button;\n }\n\n xrSupported() {\n return !!this.xr;\n }\n\n static JointEnum = JointEnum;\n static JOINT_IDS = JOINT_IDS;\n static NUM_JOINTS = NUM_JOINTS;\n static JOINT_INDEX = JOINT_INDEX;\n static JOINT_RADIUS = JOINT_RADIUS;\n static JOINT_SEGMENTS = JOINT_SEGMENTS;\n static JOINT_SEGMENT_STEPS = JOINT_SEGMENT_STEPS;\n static JOINT_TIPS = JOINT_TIPS;\n static FINGER_TIPS = FINGER_TIPS;\n static Hand = Hand;\n static HANDS = HANDS;\n\n left() {\n return this.hands[0];\n }\n\n right() {\n return this.hands[1];\n }\n\n updateControllers(camera: THREE.Camera) {\n const cameraFrame = camera.parent as THREE.Group;\n\n const now = performance.now();\n const deltaTime = (now - (this.lastControllersUpdate || now)) / 1000;\n this.lastControllersUpdate = now;\n\n const xrGamepads: XrGamepads = {};\n for (const source of this.renderer.xr.getSession()?.inputSources ?? []) {\n const gamepad = source.gamepad;\n if (\n gamepad &&\n (source.handedness === \"left\" || source.handedness === \"right\")\n ) {\n xrGamepads[source.handedness] = gamepad;\n if (source.handedness === \"left\") {\n xrGamepads.leftIsHand = !!source.hand;\n } else if (source.handedness === \"right\") {\n xrGamepads.rightIsHand = !!source.hand;\n }\n }\n }\n\n const rotate = (\n this.controllers?.getRotate ?? DEFAULT_CONTROLLER_GETROTATE\n )(xrGamepads, this);\n rotate.multiply(\n new THREE.Vector3(\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rollSpeed ?? DEFAULT_CONTROLLER_ROLL_SPEED,\n ),\n );\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler(-rotate.y, -rotate.x, rotate.z, \"YXZ\");\n const quat = new THREE.Quaternion().setFromEuler(eulers);\n\n const pivot = camera.getWorldPosition(new THREE.Vector3());\n cameraFrame.parent?.worldToLocal(pivot);\n\n cameraFrame.position.sub(pivot);\n cameraFrame.position.applyQuaternion(quat);\n cameraFrame.position.add(pivot);\n cameraFrame.quaternion.premultiply(quat);\n }\n\n const move = (this.controllers?.getMove ?? DEFAULT_CONTROLLER_GETMOVE)(\n xrGamepads,\n this,\n );\n\n let moveSpeed =\n this.controllers?.moveSpeed ?? DEFAULT_CONTROLLER_MOVE_SPEED;\n if (\n (this.controllers?.getFast ?? DEFAULT_CONTROLLER_GETFAST)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_FAST_MULTIPLIER;\n }\n if (\n (this.controllers?.getSlow ?? DEFAULT_CONTROLLER_GETSLOW)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_SLOW_MULTIPLIER;\n }\n\n if (this.controllers?.moveHeading) {\n move.applyQuaternion(camera.quaternion);\n } else if (this.controllers?.moveDirection) {\n SCRATCH_EULER.setFromQuaternion(camera.quaternion, \"YXZ\");\n SCRATCH_EULER.x = 0;\n SCRATCH_EULER.z = 0;\n SCRATCH_QUAT_A.setFromEuler(SCRATCH_EULER);\n move.applyQuaternion(SCRATCH_QUAT_A);\n }\n move.applyQuaternion(cameraFrame.quaternion);\n\n move.multiplyScalar(deltaTime * moveSpeed);\n cameraFrame.position.add(move);\n }\n\n updateHands({ xrFrame }: { xrFrame: XRFrame }) {\n const xrSession = this.renderer.xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = this.renderer.xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n for (const hand of this.hands) {\n if (hand) {\n hand.lastJoints = hand.joints;\n hand.joints = undefined;\n }\n }\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n const hand = inputSource.handedness as Hand;\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n if (!xrHand) {\n continue;\n }\n\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n\n if (!xrHand.joints) {\n xrHand.joints = {};\n }\n xrHand.joints[jointId] = {\n position: new THREE.Vector3(position.x, position.y, position.z),\n quaternion: new THREE.Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: JOINT_RADIUS[jointId],\n };\n }\n }\n }\n }\n }\n\n makeJointSplats(hand: Hand): JointSplats {\n const mesh = new JointSplats(hand);\n mesh.onFrame = () => {\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n const joints = xrHand?.joints;\n mesh.updateJoints(joints);\n };\n return mesh;\n }\n\n snapshotHands(time: number) {\n const hands = [\n this.hands[0]?.snapshotJoints(),\n this.hands[1]?.snapshotJoints(),\n ];\n return { time, hands };\n }\n}\n\ntype JointSnapshot = { pos: number[]; quat: number[]; radius: number };\ntype HandSnapshot = { [key in JointId]?: JointSnapshot };\ntype HandsSnapshot = {\n time: number;\n hands: (HandSnapshot | undefined)[];\n};\n\nconst round4 = (value: number) => Math.round(value * 10000) / 10000;\nconst SCRATCH_EULER = new THREE.Euler(0, 0, 0, \"YXZ\");\nconst SCRATCH_QUAT_A = new THREE.Quaternion();\nconst SCRATCH_QUAT_B = new THREE.Quaternion();\n\nexport function lerpHandsSnapshots(\n snapshots: HandsSnapshot[],\n time: number,\n): HandsSnapshot | null {\n if (!snapshots.length) {\n return null;\n }\n\n const first = snapshots[0];\n const last = snapshots[snapshots.length - 1];\n\n if (time < first.time || time > last.time) {\n return null;\n }\n\n const floorIndex = findSnapshotFloorIndex(snapshots, time);\n if (floorIndex === -1) {\n return null;\n }\n\n const from = snapshots[floorIndex];\n const to = snapshots[floorIndex + 1];\n if (!to) {\n return cloneSnapshot(from, time);\n }\n\n const span = to.time - from.time;\n const factor = span > 0 ? (time - from.time) / span : 0;\n\n return interpolateSnapshots(from, to, factor, time);\n}\n\nfunction interpolateSnapshots(\n from: HandsSnapshot,\n to: HandsSnapshot,\n factor: number,\n time: number,\n): HandsSnapshot {\n const maxHands = Math.max(from.hands.length, to.hands.length);\n const hands = Array.from({ length: maxHands }, (_, handIndex) =>\n lerpHandSnapshot(from.hands[handIndex], to.hands[handIndex], factor),\n );\n return { time, hands };\n}\n\nfunction cloneSnapshot(snapshot: HandsSnapshot, time: number): HandsSnapshot {\n return {\n time,\n hands: snapshot.hands.map((hand) => cloneHandSnapshot(hand)),\n };\n}\n\nexport class XrHand {\n hand: Hand;\n joints?: HandJoints;\n lastJoints?: HandJoints;\n\n constructor(hand: Hand) {\n this.hand = hand;\n }\n\n static newFromSnapshot(hand: Hand, snapshot: HandSnapshot) {\n const h = new XrHand(hand);\n h.joints = {};\n for (const jointId of JOINT_IDS) {\n const joint = snapshot[jointId];\n if (!joint) {\n continue;\n }\n h.joints[jointId] = {\n position: new THREE.Vector3(joint.pos[0], joint.pos[1], joint.pos[2]),\n quaternion: new THREE.Quaternion(\n joint.quat[0],\n joint.quat[1],\n joint.quat[2],\n joint.quat[3],\n ),\n radius: joint.radius,\n };\n }\n return h;\n }\n\n valid() {\n return !!this.joints;\n }\n\n snapshotJoints() {\n if (!this.joints) {\n return undefined;\n }\n\n const snapshot: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (!joint) {\n continue;\n }\n snapshot[jointId] = {\n pos: joint.position.toArray().map(round4),\n quat: joint.quaternion.toArray().map(round4),\n radius: round4(joint.radius),\n };\n }\n return snapshot;\n }\n\n toFlatArray() {\n if (!this.joints) {\n return undefined;\n }\n const array = new Float32Array(1 + 25 * 7);\n array[0] = this.hand === Hand.left ? 0 : 1;\n let index = 1;\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (joint) {\n array[index] = joint.position.x;\n array[index + 1] = joint.position.y;\n array[index + 2] = joint.position.z;\n array[index + 3] = joint.quaternion.x;\n array[index + 4] = joint.quaternion.y;\n array[index + 5] = joint.quaternion.z;\n array[index + 6] = joint.quaternion.w;\n }\n index += 7;\n }\n return array;\n }\n}\n\nfunction findSnapshotFloorIndex(snapshots: HandsSnapshot[], time: number) {\n let low = 0;\n let high = snapshots.length - 1;\n while (low <= high) {\n const mid = (low + high) >> 1;\n if (snapshots[mid].time <= time) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n return high;\n}\n\nfunction lerpHandSnapshot(\n fromHand?: HandSnapshot,\n toHand?: HandSnapshot,\n factor = 0,\n) {\n if (!fromHand || !toHand) {\n return undefined;\n }\n const hand: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = lerpJointSnapshot(fromHand[jointId], toHand[jointId], factor);\n if (joint) {\n hand[jointId] = joint;\n }\n }\n return hand;\n}\n\nfunction lerpJointSnapshot(\n fromJoint?: JointSnapshot,\n toJoint?: JointSnapshot,\n factor = 0,\n) {\n if (!fromJoint || !toJoint) {\n return undefined;\n }\n const pos = fromJoint.pos.map(\n (value, index) => value + (toJoint.pos[index] - value) * factor,\n );\n const quat = SCRATCH_QUAT_A.fromArray(fromJoint.quat)\n .slerp(SCRATCH_QUAT_B.fromArray(toJoint.quat), factor)\n .toArray();\n const radius =\n fromJoint.radius + (toJoint.radius - fromJoint.radius) * factor;\n\n return { pos, quat, radius };\n}\n\nfunction cloneHandSnapshot(hand?: HandSnapshot) {\n if (!hand) {\n return undefined;\n }\n const clone: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = hand[jointId];\n if (joint) {\n clone[jointId] = cloneJointSnapshot(joint);\n }\n }\n return clone;\n}\n\nfunction cloneJointSnapshot(joint: JointSnapshot): JointSnapshot {\n return {\n pos: [...joint.pos],\n quat: [...joint.quat],\n radius: joint.radius,\n };\n}\n\nexport class JointSplats extends SplatMesh {\n hand: Hand;\n\n constructor(hand: Hand) {\n super({});\n this.hand = hand;\n }\n\n private scratchCenter = new THREE.Vector3();\n private scratchQuat = new THREE.Quaternion(0, 0, 0, 1);\n private scratchScales = new THREE.Vector3().setScalar(0.01);\n private scratchColor = new THREE.Color(1, 1, 1);\n\n updateJoints(joints?: HandJoints) {\n this.visible = false;\n\n if (!joints || !this.packedSplats) {\n return;\n }\n\n this.visible = true;\n let splatIndex = 0;\n\n for (const jointId of JOINT_IDS) {\n const joint = joints[jointId];\n if (!joint) {\n continue;\n }\n this.scratchCenter.copy(joint.position);\n this.scratchQuat.copy(joint.quaternion);\n this.scratchScales.set(\n joint.radius,\n 0.75 * joint.radius,\n 1.5 * joint.radius,\n );\n // this.scratchColor.set((joint.radius * 123) % 1, (joint.radius * 345) % 1, (joint.radius * 234) % 1);\n const opacity = 0.75;\n\n this.packedSplats.setSplat(\n splatIndex,\n this.scratchCenter,\n this.scratchScales,\n this.scratchQuat,\n opacity,\n this.scratchColor,\n );\n splatIndex += 1;\n }\n\n this.packedSplats.numSplats = splatIndex;\n this.packedSplats.needsUpdate = true;\n this.numSplats = splatIndex;\n this.updateVersion();\n }\n}\n","import {\n Color,\n Matrix4,\n type Object3D,\n Quaternion,\n Vector3,\n type WebXRManager,\n} from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\n// Experimental WebXR hand tracking and movement\n\nconst DEFAULT_MOVE_INERTIA = 0.5;\nconst DEFAULT_ROTATE_INERTIA = 0.5;\nconst TOUCH_BIAS = 0.0;\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.02,\n t1: 0.014,\n t2: 0.0115,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nexport type Joint = {\n position: Vector3;\n quaternion: Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\nexport type HandsJoints = { [key in Hand]?: HandJoints };\n\nexport class XrHands {\n hands: HandsJoints = {};\n last: HandsJoints = {};\n\n values: Record = {};\n tests: Record = {};\n lastTests: Record = {};\n\n updated = false;\n\n update({ xr, xrFrame }: { xr: WebXRManager; xrFrame: XRFrame }) {\n const xrSession = xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n this.last = this.hands;\n this.lastTests = this.tests;\n\n this.hands = {};\n this.values = {};\n this.tests = {};\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n\n const hand = inputSource.handedness as Hand;\n this.hands[hand] = {};\n\n // Iterate over JointId\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n this.hands[hand][jointId] = {\n position: new Vector3(position.x, position.y, position.z),\n quaternion: new Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: jointPose.radius || 0.001,\n };\n }\n }\n }\n }\n\n for (const hand of HANDS) {\n for (const { key, value } of [\n { key: `${hand}AllTips`, value: this.allTipsTouching(hand) },\n {\n key: `${hand}IndexThumb`,\n value: this.touching(hand, \"i4\", hand, \"t3\"),\n },\n {\n key: `${hand}MiddleThumb`,\n value: this.touching(hand, \"m4\", hand, \"t3\"),\n },\n {\n key: `${hand}RingThumb`,\n value: this.touching(hand, \"r4\", hand, \"t3\"),\n },\n {\n key: `${hand}PinkyThumb`,\n value: this.touching(hand, \"p4\", hand, \"t3\"),\n },\n { key: `${hand}TriTips`, value: this.triTipsTouching(hand) },\n ]) {\n this.values[key] = value;\n this.tests[key] =\n value === 1.0\n ? true\n : value === 0.0\n ? false\n : (this.lastTests[key] ?? false);\n }\n }\n }\n\n makeGhostMesh(): SplatMesh {\n const center = new Vector3();\n const scales = new Vector3(0.01, 0.01, 0.01);\n const quaternion = new Quaternion(0, 0, 0, 1);\n const color = new Color(1, 1, 1);\n const CYCLE = Math.PI * 3;\n const WHITE = new Color(1, 1, 1);\n let opacity = 1.0;\n\n const mesh = new SplatMesh({\n onFrame: () => {\n if (!mesh.packedSplats) {\n return;\n }\n let splatIndex = 0;\n for (const handedness of HANDS) {\n const xrHand = this.hands[handedness];\n for (const [index, segment] of JOINT_SEGMENTS.entries()) {\n for (let i = 1; i < segment.length; ++i) {\n const segmentSplats = JOINT_SEGMENT_STEPS[index][i - 1] * 2;\n const lastSegment = i + 1 === segment.length;\n const jointA = xrHand?.[segment[i - 1]];\n const jointB = xrHand?.[segment[i]];\n\n for (let j = 0; j < segmentSplats; ++j) {\n const t = (j + 0.5) / segmentSplats;\n opacity = 0.0;\n if (jointA && jointB) {\n center.copy(jointA.position).lerp(jointB.position, t);\n quaternion\n .copy(jointA.quaternion)\n .slerp(jointB.quaternion, t);\n const radiusA = JOINT_RADIUS[segment[i - 1]];\n const radiusB = JOINT_RADIUS[segment[i]];\n let radius = (1 - t) * radiusA + t * radiusB;\n if (lastSegment && t > 0.8) {\n // Round out finger tips\n radius *= Math.sqrt(1 - ((t - 0.8) / 0.2) ** 2);\n }\n scales.set(0.65 * radius, 0.5 * radius, 0.003);\n color.set(\n 0.55 + 0.45 * Math.sin(center.x * CYCLE),\n 0.55 + 0.45 * Math.sin(center.y * CYCLE),\n 0.55 + 0.45 * Math.sin(center.z * CYCLE),\n );\n if (handedness === \"right\") {\n color.set(1 - color.r, 1 - color.g, 1 - color.b);\n }\n opacity = 0.75;\n }\n mesh.packedSplats.setSplat(\n splatIndex,\n center,\n scales,\n quaternion,\n opacity,\n color,\n );\n splatIndex += 1;\n }\n }\n }\n }\n mesh.packedSplats.numSplats = splatIndex;\n mesh.packedSplats.needsUpdate = true;\n mesh.numSplats = splatIndex;\n mesh.updateVersion();\n },\n });\n return mesh;\n }\n\n distance(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const hA = last ? this.last[handA] : this.hands[handA];\n const hB = last ? this.last[handB] : this.hands[handB];\n const jA = hA?.[jointA];\n const jB = hB?.[jointB];\n if (!jA || !jB) {\n return Number.POSITIVE_INFINITY;\n }\n return jA.position.distanceTo(jB.position);\n }\n\n separation(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.distance(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return d - JOINT_RADIUS[jointA] - JOINT_RADIUS[jointB];\n }\n\n touching(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.separation(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return 1 - Math.max(0, Math.min(1, d / 0.01 - TOUCH_BIAS));\n }\n\n allTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"r4\", last),\n this.touching(hand, \"r4\", hand, \"p4\", last),\n // this.touching(hand, \"p4\", hand, \"t3\", last),\n );\n }\n\n triTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"t3\", last),\n );\n }\n}\n\nexport class HandMovement {\n xrHands: XrHands;\n control: Object3D;\n moveInertia: number;\n rotateInertia: number;\n\n lastGrip: { [key in Hand]?: Vector3 } = {};\n lastPivot: Vector3 = new Vector3();\n rotateVelocity = 0;\n velocity: Vector3 = new Vector3();\n\n constructor({\n xrHands,\n control,\n moveInertia,\n rotateInertia,\n }: {\n xrHands: XrHands;\n control: Object3D;\n moveInertia?: number;\n rotateInertia?: number;\n }) {\n this.xrHands = xrHands;\n this.control = control;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n }\n\n update(deltaTime: number) {\n const grip: { [key in Hand]?: Vector3 } = {};\n for (const handedness of HANDS) {\n const hand = this.xrHands.hands[handedness];\n if (hand && this.xrHands.tests[`${handedness}MiddleThumb`]) {\n grip[handedness] = new Vector3()\n .add(hand.t3?.position ?? new Vector3())\n .add(hand.i4?.position ?? new Vector3())\n .add(hand.m4?.position ?? new Vector3())\n .add(hand.r4?.position ?? new Vector3())\n .add(hand.p4?.position ?? new Vector3())\n .multiplyScalar(1 / 5);\n }\n }\n\n if (grip.left && grip.right && this.lastGrip.left && this.lastGrip.right) {\n const mid = grip.left.clone().add(grip.right).multiplyScalar(0.5);\n const lastMid = this.lastGrip.left\n .clone()\n .add(this.lastGrip.right)\n .multiplyScalar(0.5);\n this.lastPivot = mid;\n\n const delta = mid.clone().applyMatrix4(this.control.matrix);\n delta.sub(lastMid.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n\n const angle = Math.atan2(grip.left.z - mid.z, grip.left.x - mid.x);\n const lastAngle = Math.atan2(\n this.lastGrip.left.z - lastMid.z,\n this.lastGrip.left.x - lastMid.x,\n );\n // Find closest rotation over circle between angle and lastAngle\n let closestAngle = angle - lastAngle;\n if (closestAngle > Math.PI) {\n closestAngle -= Math.PI * 2;\n } else if (closestAngle < -Math.PI) {\n closestAngle += Math.PI * 2;\n }\n const rotateVelocity = closestAngle / deltaTime;\n\n const blend = Math.exp(-20 * deltaTime);\n this.rotateVelocity =\n this.rotateVelocity * blend + rotateVelocity * (1 - blend);\n } else {\n this.rotateVelocity *= Math.exp(-deltaTime / this.rotateInertia);\n\n if (grip.left && this.lastGrip.left) {\n const delta = grip.left.clone().applyMatrix4(this.control.matrix);\n delta.sub(this.lastGrip.left.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else if (grip.right && this.lastGrip.right) {\n const delta = grip.right.clone().applyMatrix4(this.control.matrix);\n delta.sub(\n this.lastGrip.right.clone().applyMatrix4(this.control.matrix),\n );\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else {\n this.velocity.multiplyScalar(Math.exp(-deltaTime / this.moveInertia));\n }\n }\n\n const negPivot = this.lastPivot.clone().negate();\n const rotate = new Matrix4()\n .makeTranslation(negPivot)\n .premultiply(new Matrix4().makeRotationY(this.rotateVelocity * deltaTime))\n .premultiply(new Matrix4().makeTranslation(this.lastPivot));\n this.control.matrix.multiply(rotate);\n this.control.matrix.decompose(\n this.control.position,\n this.control.quaternion,\n this.control.scale,\n );\n this.control.updateMatrixWorld(true);\n\n this.control.position.sub(this.velocity.clone().multiplyScalar(deltaTime));\n this.lastGrip = grip;\n }\n}\n","import * as THREE from \"three\";\nimport { isAndroid, isIos } from \"./utils\";\n\n// Spark controls for keyboard + mouse, game pad, or mobile multi-touch\n\nconst DEFAULT_MOVEMENT_SPEED = 1.0;\nconst DEFAULT_ROLL_SPEED = 2.0;\nconst DEFAULT_ROTATE_SPEED = 0.002;\nconst DEFAULT_SLIDE_SPEED = 0.006;\nconst DEFAULT_SCROLL_SPEED = 0.0015;\nconst DEFAULT_ROLL_SPRING = 0.0;\nconst DEFAULT_ROTATE_INERTIA = 0.15;\nconst DEFAULT_MOVE_INERTIA = 0.15;\nconst DEFAULT_STICK_THRESHOLD = 0.1;\nconst DEFAULT_FPS_ROTATE_SPEED = 2.0;\n// const DEFAULT_POINTER_ROLL_SCALE = 1.0;\nconst DEFAULT_POINTER_ROLL_SCALE = 0.0;\nconst DEFAULT_PRESS_MOVE_DELAY_MS = 500;\nconst DEFAULT_PRESS_MOVE_ACCEL_MS = 500;\n\n// Time limit for double-finger press (pinch etc)\nconst DUAL_PRESS_MS = 200;\n// Time limit for double-click/double-tap\nconst DOUBLE_PRESS_LIMIT_MS = 400;\n// Distance limit for double-click.\nconst DOUBLE_PRESS_DISTANCE = 25;\n\nconst MOVEMENT_THRESHOLD = 1.0e-4;\n\n// Standard WASD movement keys with R+F for up/down\nconst WASD_KEYCODE_MOVE = {\n KeyW: new THREE.Vector3(0, 0, -1),\n KeyS: new THREE.Vector3(0, 0, 1),\n KeyA: new THREE.Vector3(-1, 0, 0),\n KeyD: new THREE.Vector3(1, 0, 0),\n KeyE: new THREE.Vector3(0, 1, 0),\n KeyQ: new THREE.Vector3(0, -1, 0),\n};\n\n// Arrow key movement with PageUp/PageDown\nconst ARROW_KEYCODE_MOVE = {\n ArrowUp: new THREE.Vector3(0, 0, -1),\n ArrowDown: new THREE.Vector3(0, 0, 1),\n ArrowLeft: new THREE.Vector3(-1, 0, 0),\n ArrowRight: new THREE.Vector3(1, 0, 0),\n PageUp: new THREE.Vector3(0, 1, 0),\n PageDown: new THREE.Vector3(0, -1, 0),\n};\n\n// Rolling with Q/E\nconst QE_KEYCODE_ROTATE = {\n KeyQ: new THREE.Vector3(0, 0, 1),\n KeyE: new THREE.Vector3(0, 0, -1),\n};\n\n// Home/End/Insert/Delete for rotation\nconst ARROW_KEYCODE_ROTATE = {\n Home: new THREE.Vector3(0, -1, 0),\n End: new THREE.Vector3(0, 1, 0),\n Insert: new THREE.Vector3(-1, 0, 0),\n Delete: new THREE.Vector3(1, 0, 0),\n};\n\n// SparkControls provides simple, intuitive controls for navigating 3D space that\n// use the keyboard + mouse, game pad, or mobile multi-touch. Internally it\n// instantiates and updates a `FpsMovement` and `PointerControls` instance.\n\nexport class SparkControls {\n fpsMovement: FpsMovement;\n pointerControls: PointerControls;\n lastTime = 0;\n\n constructor({ canvas }: { canvas: HTMLCanvasElement }) {\n this.fpsMovement = new FpsMovement({});\n this.pointerControls = new PointerControls({ canvas });\n }\n\n update(control: THREE.Object3D, camera?: THREE.Camera) {\n const time = performance.now();\n const deltaTime = (time - (this.lastTime || time)) / 1000;\n this.lastTime = time;\n\n let updated = this.fpsMovement.update(deltaTime, control);\n if (this.pointerControls.update(deltaTime, control, camera)) {\n updated = true;\n }\n return updated;\n }\n}\n\n// FpsMovement implements controls that will be familiar to anyone who plays\n// First Person Shooters using keyboard + mouse or a gamepad. Creating a FpsMovement\n// instance provides many parameters for configuring the controls.\n//\n// When gamepads are connected, FpsMovement will always use gamepad index 0\n// for twin-stick movement and rotation.\n//\n// If xr is passed in, the WebXR controllers can be used as a split gamepad\n// to control movement and rotation. (tested on Quest 3)\n\nexport class FpsMovement {\n moveSpeed: number;\n rollSpeed: number;\n stickThreshold: number;\n rotateSpeed: number;\n keycodeMoveMapping: { [key: string]: THREE.Vector3 };\n keycodeRotateMapping: { [key: string]: THREE.Vector3 };\n gamepadMapping: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n capsMultiplier: number;\n shiftMultiplier: number;\n ctrlMultiplier: number;\n xr?: THREE.WebXRManager;\n // Enable/disable controls updates\n enable = true;\n extraMove = new THREE.Vector3();\n\n // Currently active event.key values\n keydown: { [key: string]: boolean };\n // Currently active event.code values\n keycode: { [key: string]: boolean };\n\n constructor({\n moveSpeed,\n rollSpeed,\n stickThreshold,\n rotateSpeed,\n keycodeMoveMapping,\n keycodeRotateMapping,\n gamepadMapping,\n capsMultiplier,\n shiftMultiplier,\n ctrlMultiplier,\n xr,\n }: {\n // Base movement speed (default DEFAULT_MOVEMENT_SPEED)\n moveSpeed?: number;\n // Base roll speed (default DEFAULT_ROLL_SPEED)\n rollSpeed?: number;\n // Stick threshold (default DEFAULT_STICK_THRESHOLD)\n stickThreshold?: number;\n // Speed of rotation when using gamepad or keys (default DEFAULT_FPS_ROTATE_SPEED)\n rotateSpeed?: number;\n // Maps keyboard keys to movement directions\n // (default {...WASD_KEYCODE_MOVE, ...ARROW_KEYCODE_MOVE})\n keycodeMoveMapping?: { [key: string]: THREE.Vector3 };\n // Maps keyboard keys to rotation directions\n // (default { ...ARROW_KEYCODE_ROTATE})\n keycodeRotateMapping?: { [key: string]: THREE.Vector3 };\n // Maps gamepad buttons to control actions\n // (default {4: \"rollLeft\", 5: \"rollRight\", 6: \"ctrl\", 7: \"shift\"})\n gamepadMapping?: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n // Speed multiplier when Caps Lock is active (default: 10)\n capsMultiplier?: number;\n // Speed multiplier when Shift is active (default: 5)\n shiftMultiplier?: number;\n // Speed multiplier when Ctrl is active (default: 1/5)\n ctrlMultiplier?: number;\n // Optional WebXR manager for XR controller stick support\n xr?: THREE.WebXRManager;\n } = {}) {\n this.moveSpeed = moveSpeed ?? DEFAULT_MOVEMENT_SPEED;\n this.rollSpeed = rollSpeed ?? DEFAULT_ROLL_SPEED;\n this.stickThreshold = stickThreshold ?? DEFAULT_STICK_THRESHOLD;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_FPS_ROTATE_SPEED;\n this.keycodeMoveMapping = keycodeMoveMapping ?? {\n ...WASD_KEYCODE_MOVE,\n ...ARROW_KEYCODE_MOVE,\n };\n this.keycodeRotateMapping = keycodeRotateMapping ?? {\n // ...QE_KEYCODE_ROTATE,\n ...ARROW_KEYCODE_ROTATE,\n };\n this.gamepadMapping = gamepadMapping ?? {\n 4: \"rollLeft\",\n 5: \"rollRight\",\n 6: \"ctrl\",\n 7: \"shift\",\n };\n this.capsMultiplier = capsMultiplier ?? 10.0;\n this.shiftMultiplier = shiftMultiplier ?? 5.0;\n this.ctrlMultiplier = ctrlMultiplier ?? 1.0 / 5.0;\n\n this.xr = xr;\n\n this.keydown = {};\n this.keycode = {};\n\n document.addEventListener(\"keydown\", (event) => {\n this.keydown[event.key] = true;\n this.keycode[event.code] = true;\n });\n document.addEventListener(\"keyup\", (event) => {\n this.keydown[event.key] = false;\n this.keycode[event.code] = false;\n });\n window.addEventListener(\"blur\", () => {\n this.keydown = {};\n this.keycode = {};\n });\n }\n\n // Call this method in your render loop with `control` set to the object to control\n // (`THREE.Camera` or a `THREE.Object3D` that contains it), with `deltaTime`\n // in seconds since the last update.\n update(deltaTime: number, control: THREE.Object3D) {\n if (!this.enable) {\n return false;\n }\n\n // Update gamepad / XR controllers\n\n const sticks = [new THREE.Vector2(), new THREE.Vector2()];\n const gamepad = navigator.getGamepads()[0];\n if (gamepad) {\n sticks[0].set(gamepad.axes[0], gamepad.axes[1]);\n sticks[1].set(gamepad.axes[2], gamepad.axes[3]);\n }\n const gamepadButtons =\n gamepad?.buttons.map((button) => button.pressed) || [];\n\n const xrSources = Array.from(this.xr?.getSession()?.inputSources ?? []);\n for (const source of xrSources) {\n const gamepad = source.gamepad;\n if (gamepad) {\n switch (source.handedness) {\n case \"none\": {\n sticks[0].x += gamepad.axes[0];\n sticks[0].y += gamepad.axes[1];\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n case \"left\": {\n sticks[0].x += gamepad.axes[2];\n sticks[0].y += gamepad.axes[3];\n break;\n }\n case \"right\": {\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n }\n }\n }\n\n for (const stick of sticks) {\n stick.x = Math.abs(stick.x) >= this.stickThreshold ? stick.x : 0;\n stick.y = Math.abs(stick.y) >= this.stickThreshold ? stick.y : 0;\n }\n\n // Rotation\n\n const rotate = new THREE.Vector3(\n sticks[1].x,\n sticks[1].y,\n 0,\n ).multiplyScalar(this.rotateSpeed);\n\n for (const [keycode, rot] of Object.entries(this.keycodeRotateMapping)) {\n if (this.keycode[keycode]) {\n rotate.add(rot);\n }\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"rollLeft\":\n rotate.z += 1;\n break;\n case \"rollRight\":\n rotate.z -= 1;\n break;\n }\n }\n }\n\n rotate.multiply(\n new THREE.Vector3(this.rotateSpeed, this.rotateSpeed, this.rollSpeed),\n );\n\n let updated = rotate.length() > MOVEMENT_THRESHOLD;\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z = Math.max(-Math.PI, Math.min(Math.PI, eulers.z + rotate.z));\n control.quaternion.setFromEuler(eulers);\n }\n\n // Movement\n\n const moveVector = new THREE.Vector3(sticks[0].x, 0, sticks[0].y);\n moveVector.add(this.extraMove);\n\n for (const [keycode, move] of Object.entries(this.keycodeMoveMapping)) {\n if (this.keycode[keycode]) {\n moveVector.add(move);\n }\n }\n\n let speedMultiplier = 1.0;\n if (this.keydown.CapsLock) {\n speedMultiplier *= this.capsMultiplier;\n }\n if (this.keycode.ShiftLeft || this.keycode.ShiftRight) {\n speedMultiplier *= this.shiftMultiplier;\n }\n if (this.keycode.ControlLeft || this.keycode.ControlRight) {\n speedMultiplier *= this.ctrlMultiplier;\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"shift\":\n speedMultiplier *= this.shiftMultiplier;\n break;\n case \"ctrl\":\n speedMultiplier *= this.ctrlMultiplier;\n break;\n }\n }\n }\n\n if (moveVector.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Apply movement in view direction\n moveVector.applyQuaternion(control.quaternion);\n control.position.add(\n moveVector.multiplyScalar(this.moveSpeed * speedMultiplier * deltaTime),\n );\n\n return updated;\n }\n}\n\ntype PointerState = {\n initial: THREE.Vector2;\n last: THREE.Vector2;\n position: THREE.Vector2;\n pointerId: number;\n button?: number;\n timeStamp: DOMHighResTimeStamp;\n};\n\n// `PointerControls` implements pointer/mouse/touch controls on the canvas,\n// for both desktop and mobile web applications.\n\nexport class PointerControls {\n canvas: HTMLCanvasElement;\n rotateSpeed: number;\n slideSpeed: number;\n scrollSpeed: number;\n swapRotateSlide: boolean;\n reverseRotate: boolean;\n reverseSlide: boolean;\n reverseSwipe: boolean;\n reverseScroll: boolean;\n moveInertia: number;\n rotateInertia: number;\n pointerRollScale: number;\n // Enable/disable controls updates\n enable = true;\n\n doublePress: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n // Time limit for double press (default DOUBLE_PRESS_LIMIT_MS)\n doublePressLimitMs: number;\n // Distance limit for double press (default DOUBLE_PRESS_DISTANCE)\n doublePressDistance: number;\n\n // Time delay in ms for press move to start\n pressMoveDelayMs: number;\n // Time in ms for press move to accelerate\n pressMoveAccelMs: number;\n // Speed of movement on press (default: 0)\n pressMoveSpeed: number;\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed: number;\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed: number;\n // Whether to move toward the screen center or finger when pressing to move\n pressMoveCenter: boolean;\n pressHeld?: boolean;\n doublePressed?: number;\n triplePressed: boolean;\n // Last pointer up event (default: null)\n lastUp: { position: THREE.Vector2; timeStamp: number } | null;\n lastLastUp: { position: THREE.Vector2; timeStamp: number } | null;\n\n // Pointer state for currently active rotating pointer\n rotating: PointerState | null;\n // Pointer state for currently active sliding pointer\n sliding: PointerState | null;\n // Pointer state for last pointer that downed\n lastDown: PointerState | null;\n // Whether we pressed two pointers at the same time\n dualPress: boolean;\n // Cumulative scroll movement\n scroll: THREE.Vector3;\n\n // Current rotation velocity\n rotateVelocity: THREE.Vector3;\n // Current movement velocity\n moveVelocity: THREE.Vector3;\n\n constructor({\n // The HTML canvas element to attach pointer events to\n canvas,\n // Speed of rotation (default DEFAULT_ROTATE_SPEED)\n rotateSpeed,\n // Speed of sliding when dragging with right/middle mouse button or two fingers\n // (default DEFAULT_SLIDE_SPEED)\n slideSpeed,\n // Speed of movement when using mouse scroll wheel (default DEFAULT_SCROLL_SPEED)\n scrollSpeed,\n // Swap the direction of rotation and sliding (default: false)\n swapRotateSlide,\n // Reverse the direction of rotation (default: false)\n reverseRotate,\n // Reverse the direction of sliding (default: false)\n reverseSlide,\n // Reverse the direction of swipe gestures (default: false)\n reverseSwipe,\n // Reverse the direction of scroll wheel movement (default: false)\n reverseScroll,\n // Inertia factor for movement (default: DEFAULT_MOVE_INERTIA)\n moveInertia,\n // Inertia factor for rotation (default: DEFAULT_ROTATE_INERTIA)\n rotateInertia,\n // Pointer rolling scale factor (default: DEFAULT_POINTER_ROLL_SCALE)\n pointerRollScale,\n // Callback for double press events (default: () => {})\n doublePress,\n // Time delay in ms for press move to start (default: DEFAULT_PRESS_MOVE_DELAY_MS)\n pressMoveDelayMs,\n // Time in ms for press move to accelerate (default: DEFAULT_PRESS_MOVE_ACCEL_MS)\n pressMoveAccelMs,\n // Speed of movement on press (default: 0)\n pressMoveSpeed,\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed,\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed,\n // Whether to move toward the screen center or finger when pressing to move (default: true)\n pressMoveCenter,\n }: {\n canvas: HTMLCanvasElement;\n rotateSpeed?: number;\n slideSpeed?: number;\n scrollSpeed?: number;\n swapRotateSlide?: boolean;\n reverseRotate?: boolean;\n reverseSlide?: boolean;\n reverseSwipe?: boolean;\n reverseScroll?: boolean;\n moveInertia?: number;\n rotateInertia?: number;\n pointerRollScale?: number;\n doublePress?: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n pressMoveDelayMs?: number;\n pressMoveAccelMs?: number;\n pressMoveSpeed?: number;\n doublePressMoveSpeed?: number;\n triplePressMoveSpeed?: number;\n pressMoveCenter?: boolean;\n }) {\n this.canvas = canvas;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_ROTATE_SPEED;\n this.slideSpeed = slideSpeed ?? DEFAULT_SLIDE_SPEED;\n this.scrollSpeed = scrollSpeed ?? DEFAULT_SCROLL_SPEED;\n this.swapRotateSlide = swapRotateSlide ?? false;\n this.reverseRotate = reverseRotate ?? (isAndroid() || isIos());\n this.reverseSlide = reverseSlide ?? false;\n this.reverseSwipe = reverseSwipe ?? false;\n this.reverseScroll = reverseScroll ?? false;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n this.pointerRollScale = pointerRollScale ?? DEFAULT_POINTER_ROLL_SCALE;\n\n this.doublePress = doublePress ?? (() => {});\n this.doublePressLimitMs = DOUBLE_PRESS_LIMIT_MS;\n this.doublePressDistance = DOUBLE_PRESS_DISTANCE;\n\n this.pressMoveDelayMs = pressMoveDelayMs ?? DEFAULT_PRESS_MOVE_DELAY_MS;\n this.pressMoveAccelMs = pressMoveAccelMs ?? DEFAULT_PRESS_MOVE_ACCEL_MS;\n this.pressMoveSpeed = pressMoveSpeed ?? 0;\n this.doublePressMoveSpeed =\n doublePressMoveSpeed ?? this.pressMoveSpeed * 5.0;\n this.triplePressMoveSpeed =\n triplePressMoveSpeed ?? this.doublePressMoveSpeed * 5.0;\n this.pressMoveCenter = pressMoveCenter ?? true;\n this.doublePressed = undefined;\n this.triplePressed = false;\n this.lastUp = null;\n this.lastLastUp = null;\n\n this.rotating = null;\n this.sliding = null;\n this.lastDown = null;\n this.dualPress = false;\n this.scroll = new THREE.Vector3();\n\n this.rotateVelocity = new THREE.Vector3();\n this.moveVelocity = new THREE.Vector3();\n\n canvas.addEventListener(\"pointerdown\", (event: PointerEvent) => {\n const position = this.getPointerPosition(event);\n const initial = position.clone();\n const last = position.clone();\n\n // Determine if we're starting a rotation pointer action\n const isRotate =\n (!this.swapRotateSlide &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 0)) ||\n (this.swapRotateSlide &&\n this.sliding &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 1));\n // const isRotate =\n // !this.rotating && (event.pointerType !== \"mouse\" || event.button === 0);\n const { pointerId } = event;\n const timeStamp = performance.now();\n\n if (isRotate) {\n this.rotating = { initial, last, position, pointerId, timeStamp };\n this.lastDown = this.rotating;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n this.dualPress = false;\n } else if (!this.sliding) {\n // If it's not a rotation action and we're not yet sliding, the next\n // pointer activates a sliding action\n const button = event.pointerType === \"mouse\" ? event.button : undefined;\n this.sliding = {\n initial,\n last,\n position,\n pointerId,\n button,\n timeStamp,\n };\n this.lastDown = this.sliding;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n // Check if we pressed both pointers at roughly the same time\n this.dualPress =\n this.rotating != null &&\n timeStamp - this.rotating.timeStamp < DUAL_PRESS_MS;\n }\n\n if (this.lastUp) {\n const distance = this.lastUp.position.distanceTo(position);\n const intervalMs = timeStamp - this.lastUp.timeStamp;\n if (\n distance < this.doublePressDistance &&\n intervalMs < this.doublePressLimitMs\n ) {\n this.doublePressed = performance.now();\n this.triplePressed = false;\n\n if (this.lastLastUp) {\n const lastDistance = this.lastLastUp.position.distanceTo(\n this.lastUp.position,\n );\n const lastIntervalMs =\n this.lastUp.timeStamp - this.lastLastUp.timeStamp;\n if (\n lastDistance < this.doublePressDistance &&\n lastIntervalMs < this.doublePressLimitMs\n ) {\n this.triplePressed = true;\n }\n }\n }\n }\n });\n\n const pointerUp = (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.sliding) {\n canvas.releasePointerCapture(this.sliding.pointerId);\n this.sliding = null;\n }\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.rotating) {\n canvas.releasePointerCapture(this.rotating.pointerId);\n this.rotating = null;\n }\n }\n\n this.doublePressed = undefined;\n this.triplePressed = false;\n\n const position = this.getPointerPosition(event);\n const lastUp = this.lastUp;\n this.lastLastUp = this.lastUp;\n const timeStamp = performance.now();\n this.lastUp = { position, timeStamp };\n\n if (lastUp) {\n const distance = lastUp.position.distanceTo(position);\n if (distance < this.doublePressDistance) {\n const intervalMs = timeStamp - lastUp.timeStamp;\n if (intervalMs < this.doublePressLimitMs) {\n // We pressed and release twice within the time and distance limits\n // this.lastUp = null;\n this.doublePress({ position, intervalMs });\n }\n }\n }\n };\n\n document.addEventListener(\"pointerup\", pointerUp);\n document.addEventListener(\"pointercancel\", pointerUp);\n\n document.addEventListener(\"pointermove\", (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating.position = this.getPointerPosition(event);\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding.position = this.getPointerPosition(event);\n }\n });\n\n canvas.addEventListener(\"contextmenu\", (event: MouseEvent) => {\n // Prevent context menu appearing on right click\n event.preventDefault();\n });\n\n canvas.addEventListener(\"wheel\", (event: WheelEvent) => {\n this.scroll.add(\n new THREE.Vector3(event.deltaX, event.deltaY, event.deltaZ),\n );\n event.preventDefault();\n });\n }\n\n getPointerPosition(event: PointerEvent): THREE.Vector2 {\n const rect = this.canvas.getBoundingClientRect();\n return new THREE.Vector2(\n event.clientX - rect.left,\n event.clientY - rect.top,\n );\n }\n\n update(deltaTime: number, control: THREE.Object3D, camera?: THREE.Camera) {\n if (!this.enable) {\n return false;\n }\n\n const now = performance.now();\n let updated = false;\n\n if (this.dualPress && this.rotating && this.sliding) {\n // We pressed both pointers at the same time, either pinching or sliding\n const motion = [\n this.rotating.position.clone().sub(this.rotating.last),\n this.sliding.position.clone().sub(this.sliding.last),\n ];\n const coincidence = motion[0].dot(motion[1]);\n\n if (coincidence >= 0.2) {\n // Similar directions so slide the camera on the XY plane\n const totalMotion = motion[0].clone().add(motion[1]);\n const slide = new THREE.Vector3(totalMotion.x, -totalMotion.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSwipe ? 1 : -1));\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else if (coincidence <= -0.2) {\n // Opposite directions so either pinch or roll motion\n const deltaDir = this.sliding.last.clone().sub(this.rotating.last);\n const deltaDist = deltaDir.length();\n deltaDir.multiplyScalar(1 / deltaDist).normalize();\n\n const orthoDir = new THREE.Vector2(-deltaDir.y, deltaDir.x);\n const motionDir = [motion[0].dot(deltaDir), motion[1].dot(deltaDir)];\n const motionOrtho = [motion[0].dot(orthoDir), motion[1].dot(orthoDir)];\n\n // Pinching motion\n const midpoint = this.rotating.last\n .clone()\n .add(this.sliding.last)\n .multiplyScalar(0.5);\n let midpointDir = new THREE.Vector3();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcMidpoint = new THREE.Vector2(\n (midpoint.x / this.canvas.clientWidth) * 2 - 1,\n -(midpoint.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcMidpoint, theCamera);\n midpointDir = raycaster.ray.direction;\n }\n const pinchOut = motionDir[1] - motionDir[0];\n const slide = midpointDir.multiplyScalar(pinchOut * this.slideSpeed);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Rolling motion\n // Calculate angle of orthogonal motion change over distance deltaDist/2\n // motionOrtho[0] and 1 are already in float distance\n const angles = [\n Math.atan(motionOrtho[0] / (-0.5 * deltaDist)),\n Math.atan(motionOrtho[1] / (0.5 * deltaDist)),\n ];\n const rotate = 0.5 * (angles[0] + angles[1]) * this.pointerRollScale;\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.z = Math.max(\n -Math.PI,\n Math.min(Math.PI, eulers.z + 0.5 * rotate),\n );\n control.quaternion.setFromEuler(eulers);\n\n if (Math.abs(rotate) > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n this.rotating.last.copy(this.rotating.position);\n this.sliding.last.copy(this.sliding.position);\n } else {\n // Didn't press both pointers at the same time, so we're in rotating\n // or FPS mode\n const rotate = new THREE.Vector3();\n if (this.rotating && !this.dualPress) {\n const delta = this.rotating.position.clone().sub(this.rotating.last);\n this.rotating.last.copy(this.rotating.position);\n rotate.set(delta.x, delta.y, 0);\n rotate.multiplyScalar(this.rotateSpeed * (this.reverseRotate ? -1 : 1));\n // Update rotation velocity from last delta\n this.rotateVelocity = rotate.clone().multiplyScalar(1 / deltaTime);\n\n if (rotate.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n // Continue to rotate with inertia\n this.rotateVelocity.multiplyScalar(\n Math.exp(-deltaTime / this.rotateInertia),\n );\n rotate.addScaledVector(this.rotateVelocity, deltaTime);\n\n if (this.rotateVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n // Apply rotation in Euler angles space\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z *= Math.exp(-DEFAULT_ROLL_SPRING * deltaTime);\n control.quaternion.setFromEuler(eulers);\n\n if (this.sliding && !this.dualPress) {\n const delta = this.sliding.position.clone().sub(this.sliding.last);\n this.sliding.last.copy(this.sliding.position);\n\n // Slide on plane depending on center/right mouse button\n const slide =\n this.sliding.button !== 2\n ? new THREE.Vector3(delta.x, 0, delta.y)\n : new THREE.Vector3(delta.x, -delta.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSlide ? -1 : 1));\n\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n // Update movement velocity from last delta\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n const target = new THREE.Vector3();\n if (this.sliding || this.rotating) {\n const point = this.lastDown?.last ?? new THREE.Vector2();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcPoint = this.pressMoveCenter\n ? new THREE.Vector2(0, 0)\n : new THREE.Vector2(\n (point.x / this.canvas.clientWidth) * 2 - 1,\n -(point.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcPoint, theCamera);\n target.copy(raycaster.ray.direction).normalize();\n }\n\n if (!this.doublePressed) {\n let intensity = 0;\n if (this.lastDown) {\n intensity =\n (now -\n (this.lastDown?.timeStamp ?? now) -\n this.pressMoveDelayMs) /\n this.pressMoveAccelMs;\n\n if (\n this.lastDown.position.distanceTo(this.lastDown.initial) <\n this.doublePressDistance\n ) {\n if (this.pressHeld === undefined) {\n if (intensity > 0) {\n this.pressHeld = true;\n }\n }\n } else if (this.pressHeld === undefined) {\n this.pressHeld = false;\n }\n }\n\n if (this.pressHeld) {\n target.multiplyScalar(\n this.pressMoveSpeed * Math.max(0, Math.min(1, intensity)),\n );\n } else {\n target.set(0, 0, 0);\n }\n } else {\n this.pressHeld = false;\n let intensity =\n (performance.now() - this.doublePressed) / this.pressMoveAccelMs;\n intensity = Math.max(0, Math.min(1, intensity));\n target.multiplyScalar(\n (this.triplePressed\n ? this.triplePressMoveSpeed\n : this.doublePressMoveSpeed) * intensity,\n );\n }\n } else {\n this.pressHeld = undefined;\n }\n // Continue to move with inertia\n const s = Math.exp(-deltaTime / this.moveInertia);\n this.moveVelocity.lerpVectors(target, this.moveVelocity, s);\n control.position.addScaledVector(this.moveVelocity, deltaTime);\n\n if (this.moveVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n }\n\n const scroll = this.scroll.multiplyScalar(this.scrollSpeed);\n scroll.set(scroll.x, scroll.z, scroll.y);\n if (this.reverseScroll) {\n scroll.multiplyScalar(-1);\n }\n scroll.applyQuaternion(control.quaternion);\n control.position.add(scroll);\n\n if (scroll.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n this.scroll.set(0, 0, 0);\n\n return updated;\n }\n}\n","import * as THREE from \"three\";\nimport { SparkRenderer, type SparkRendererOptions } from \"./SparkRenderer\";\n\n/**\n * Fragment shader for portal disk clipping.\n * - diskRadius > 0: render \"behind portal\" only through the disk\n * - diskRadius < 0: render \"in front of portal\" everywhere except behind disk\n */\nexport const DISK_PORTAL_FRAGMENT_SHADER = `\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform mat4 projectionMatrix;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nuniform vec3 diskCenter;\nuniform vec3 diskNormal;\nuniform float diskRadius;\nuniform bool diskTwoSided;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\nvoid main() {\n if (diskRadius != 0.0) {\n // Portal rendering:\n // - diskRadius > 0: render \"behind portal\" only through the disk (discard outside or in-front-of plane).\n // - diskRadius < 0: render \"in front of portal\" everywhere, but discard fragments behind the plane when looking through the disk.\n\n // View ray direction from NDC (view space is -Z forward).\n vec3 viewDir = normalize(vec3(\n vNdc.x / projectionMatrix[0][0],\n vNdc.y / projectionMatrix[1][1],\n -1.0\n ));\n\n // Reconstruct view-space *axial* depth (-viewPos.z) from NDC Z.\n float ndcZ = vNdc.z;\n float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near));\n // Convert axial depth to ray-parameter t (viewPos = t * viewDir).\n float rayT = depth / max(1e-6, -viewDir.z);\n\n float radius = abs(diskRadius);\n float radius2 = radius * radius;\n bool renderBehind = (diskRadius > 0.0);\n\n vec3 diskN = normalize(diskNormal);\n\n // Ray-plane intersection for plane (diskCenter, diskN), with ray origin at (0,0,0).\n float denom = dot(viewDir, diskN);\n bool allowPortal = diskTwoSided ? (abs(denom) > 1e-6) : (denom < -1e-6);\n\n bool hitsDisk = false;\n float t = 0.0;\n if (allowPortal) {\n t = dot(diskCenter, diskN) / denom;\n if (t > 0.0) {\n vec3 q = t * viewDir - diskCenter;\n hitsDisk = (dot(q, q) <= radius2);\n }\n }\n\n // Small bias to avoid flicker at the plane.\n float eps = 1e-4 * max(1.0, abs(t));\n\n if (renderBehind) {\n // Behind-pass: only render through the portal disk, and only behind the plane along the ray.\n if (!hitsDisk) discard;\n if (rayT <= t + eps) discard;\n } else {\n // Front-pass: render everything, except when the ray goes through the disk, discard what's behind the plane.\n if (hitsDisk && (rayT >= t - eps)) discard;\n }\n }\n\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n rgba.a = min(1.0, a) * exp(exponent);\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n}\n`;\n\n/**\n * Callback function called when a portal is crossed.\n * @param pair The portal pair that was crossed\n * @param fromEntry True if crossing from entry to exit, false if crossing from exit to entry\n */\nexport type PortalCrossCallback = (\n pair: PortalPair,\n fromEntry: boolean,\n) => void | Promise;\n\n/**\n * A pair of connected portals. Walking through one teleports you to the other.\n */\nexport interface PortalPair {\n /** First portal endpoint */\n entryPortal: THREE.Object3D;\n /** Second portal endpoint */\n exitPortal: THREE.Object3D;\n /** Radius of this portal pair's disks */\n radius: number;\n /** Optional callback function called when this portal is crossed */\n onCross?: PortalCrossCallback;\n /** Scratch matrix for tracking portal position before frame updates */\n _entryBefore: THREE.Matrix4;\n /** Scratch matrix for tracking portal position before frame updates */\n _exitBefore: THREE.Matrix4;\n}\n\nexport interface SparkPortalsOptions {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n /** Options passed to both SparkRenderer instances */\n sparkOptions?: Partial;\n /** Default portal disk radius for new pairs (default: 1.0) */\n defaultPortalRadius?: number;\n /** Epsilon for portal crossing detection (default: 1e-6) */\n portalCrossEps?: number;\n}\n\n/**\n * SparkPortals\n *\n * Portal implementation to connect two non-contiguous areas of a scene.\n * Supports multiple portal pairs - each pair connects two locations.\n *\n * The rough approach is to use two SparkRenderers: one for the \"front\"/portal\n * view (portalRenderer), and one for the \"behind portal\" pass (behindRenderer).\n *\n * Example:\n * ```typescript\n * const portals = new SparkPortals({ renderer, scene, camera, localFrame });\n *\n * // Add a portal pair\n * const pair = portals.addPortalPair();\n * pair.entryPortal.position.set(0, 0, -1);\n * pair.exitPortal.position.set(-3, 0, -4.5);\n *\n * // Add another pair\n * const pair2 = portals.addPortalPair({ radius: 0.5 });\n * pair2.entryPortal.position.set(5, 0, 0);\n * pair2.exitPortal.position.set(10, 0, 0);\n *\n * // In animation loop:\n * portals.animateLoopHook();\n * ```\n */\nexport class SparkPortals {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n\n /** Primary renderer with portal shader (added to scene) */\n portalRenderer: SparkRenderer;\n /** Secondary renderer for behind-portal pass (not in scene) */\n behindRenderer: SparkRenderer;\n /** Secondary camera for behind-portal view */\n camera2: THREE.PerspectiveCamera;\n\n /** All portal pairs */\n portalPairs: PortalPair[] = [];\n /** Default radius for new portal pairs */\n defaultPortalRadius: number;\n /** Epsilon for portal crossing detection */\n portalCrossEps: number;\n\n /** Used to detect crossing between frames */\n private lastCameraWorld = new THREE.Vector3().setScalar(Number.NaN);\n /** Whether portal LoD prefetch is currently enabled */\n private prefetchActive = false;\n\n // Preallocated objects for scratch work to avoid per frame allocations\n private scratch = {\n quat: new THREE.Quaternion(),\n scale: new THREE.Vector3(),\n center0: new THREE.Vector3(),\n center1: new THREE.Vector3(),\n normal0: new THREE.Vector3(),\n normal1: new THREE.Vector3(),\n centerT: new THREE.Vector3(),\n normalT: new THREE.Vector3(),\n prevCameraWorld: new THREE.Vector3(),\n currCameraWorld: new THREE.Vector3(),\n hit: new THREE.Vector3(),\n offset: new THREE.Vector3(),\n camWorld: new THREE.Matrix4(),\n newCamWorld: new THREE.Matrix4(),\n invCamLocal: new THREE.Matrix4(),\n newLocalFrame: new THREE.Matrix4(),\n cameraWorldPos: new THREE.Vector3(),\n viewDir: new THREE.Vector3(),\n portalCenter: new THREE.Vector3(),\n toPortal: new THREE.Vector3(),\n };\n\n constructor(options: SparkPortalsOptions) {\n this.renderer = options.renderer;\n this.scene = options.scene;\n this.camera = options.camera;\n this.localFrame = options.localFrame;\n this.defaultPortalRadius = options.defaultPortalRadius ?? 1.0;\n this.portalCrossEps = options.portalCrossEps ?? 1e-6;\n\n const sparkOpts = options.sparkOptions ?? {};\n\n // Primary renderer with portal shader\n this.portalRenderer = new SparkRenderer({\n renderer: this.renderer,\n extraUniforms: {\n diskCenter: { value: new THREE.Vector3() },\n diskNormal: { value: new THREE.Vector3() },\n diskRadius: { value: 0 },\n diskTwoSided: { value: false },\n },\n fragmentShader: DISK_PORTAL_FRAGMENT_SHADER,\n ...sparkOpts,\n });\n this.scene.add(this.portalRenderer);\n\n // Secondary renderer for behind-portal pass\n // enableDriveLod: false prevents this renderer from driving LOD updates,\n // avoiding race conditions with portalRenderer's pager operations\n this.behindRenderer = new SparkRenderer({\n renderer: this.renderer,\n enableDriveLod: false,\n ...sparkOpts,\n });\n\n // Secondary camera for behind-portal view\n this.camera2 = this.camera.clone();\n this.scene.add(this.camera2);\n }\n\n /**\n * Add a new portal pair to the system.\n * @param options Optional configuration for this pair\n * @returns The created PortalPair - position the entryPortal and exitPortal as needed\n */\n addPortalPair(options?: {\n radius?: number;\n onCross?: PortalCrossCallback;\n }): PortalPair {\n const pair: PortalPair = {\n entryPortal: new THREE.Object3D(),\n exitPortal: new THREE.Object3D(),\n radius: options?.radius ?? this.defaultPortalRadius,\n onCross: options?.onCross,\n _entryBefore: new THREE.Matrix4(),\n _exitBefore: new THREE.Matrix4(),\n };\n\n this.scene.add(pair.entryPortal);\n this.scene.add(pair.exitPortal);\n this.portalPairs.push(pair);\n\n return pair;\n }\n\n /**\n * Remove a portal pair from the system.\n */\n removePortalPair(pair: PortalPair): void {\n const index = this.portalPairs.indexOf(pair);\n if (index !== -1) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n this.portalPairs.splice(index, 1);\n }\n }\n\n /**\n * Get transform from entry portal to exit portal.\n */\n getEntryToExitTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.entryPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.exitPortal.matrixWorld);\n }\n\n /**\n * Get transform from exit portal to entry portal.\n */\n getExitToEntryTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.exitPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.entryPortal.matrixWorld);\n }\n\n /** Set portal disk uniforms for shader clipping */\n private setPortalDiskUniforms(\n camera: THREE.Camera,\n portal: THREE.Object3D,\n radius: number,\n twoSided: boolean,\n ): void {\n camera.updateMatrixWorld(true);\n portal.updateMatrixWorld(true);\n\n const inverseCamera = camera.matrixWorld.clone().invert();\n const portalInCamera = portal.matrixWorld\n .clone()\n .premultiply(inverseCamera);\n const portalQuat = new THREE.Quaternion();\n\n // Extend the base uniform type with our portal-specific uniforms so TS is happy.\n const uniforms = this.portalRenderer\n .uniforms as typeof this.portalRenderer.uniforms & {\n diskCenter: { value: THREE.Vector3 };\n diskNormal: { value: THREE.Vector3 };\n diskRadius: { value: number };\n diskTwoSided: { value: boolean };\n };\n\n portalInCamera.decompose(\n uniforms.diskCenter.value,\n portalQuat,\n new THREE.Vector3(),\n );\n\n uniforms.diskNormal.value.set(0, 0, 1).applyQuaternion(portalQuat);\n uniforms.diskRadius.value = radius;\n uniforms.diskTwoSided.value = twoSided;\n }\n\n /** Extract portal plane from matrix */\n private getPortalPlane(\n matrix: THREE.Matrix4,\n outCenter: THREE.Vector3,\n outNormal: THREE.Vector3,\n ): void {\n matrix.decompose(outCenter, this.scratch.quat, this.scratch.scale);\n outNormal.set(0, 0, 1).applyQuaternion(this.scratch.quat).normalize();\n }\n\n /**\n * Detect if the user path crosses over a portal. If so, return the parametric position (0,1)\n * along the segment where the crossing occurs. If not, return null.\n */\n private getSegmentDiskCrossing(\n prevCam: THREE.Vector3,\n currCam: THREE.Vector3,\n beforeMatrix: THREE.Matrix4,\n afterMatrix: THREE.Matrix4,\n radius: number,\n ): number | null {\n this.getPortalPlane(\n beforeMatrix,\n this.scratch.center0,\n this.scratch.normal0,\n );\n this.getPortalPlane(\n afterMatrix,\n this.scratch.center1,\n this.scratch.normal1,\n );\n\n const startPlaneDist = this.scratch.offset\n .copy(prevCam)\n .sub(this.scratch.center0)\n .dot(this.scratch.normal0);\n const endPlaneDist = this.scratch.offset\n .copy(currCam)\n .sub(this.scratch.center1)\n .dot(this.scratch.normal1);\n\n if (\n (startPlaneDist > this.portalCrossEps &&\n endPlaneDist > this.portalCrossEps) ||\n (startPlaneDist < -this.portalCrossEps &&\n endPlaneDist < -this.portalCrossEps)\n ) {\n return null;\n }\n\n const denom = startPlaneDist - endPlaneDist;\n if (Math.abs(denom) < this.portalCrossEps) return null;\n\n const t = startPlaneDist / denom;\n if (t < 0 || t > 1) return null;\n\n this.scratch.hit.lerpVectors(prevCam, currCam, t);\n this.scratch.centerT\n .copy(this.scratch.center0)\n .lerp(this.scratch.center1, t);\n this.scratch.normalT\n .copy(this.scratch.normal0)\n .lerp(this.scratch.normal1, t)\n .normalize();\n\n this.scratch.offset.copy(this.scratch.hit).sub(this.scratch.centerT);\n this.scratch.offset.addScaledVector(\n this.scratch.normalT,\n -this.scratch.offset.dot(this.scratch.normalT),\n );\n\n if (this.scratch.offset.lengthSq() > radius * radius) return null;\n return t;\n }\n\n /** Teleport camera through portal */\n private teleport(transform: THREE.Matrix4): void {\n this.scratch.camWorld.copy(this.camera.matrixWorld);\n this.scratch.newCamWorld.copy(this.scratch.camWorld).premultiply(transform);\n this.scratch.invCamLocal.copy(this.camera.matrix).invert();\n this.scratch.newLocalFrame\n .copy(this.scratch.newCamWorld)\n .multiply(this.scratch.invCamLocal);\n\n this.scratch.newLocalFrame.decompose(\n this.localFrame.position,\n this.localFrame.quaternion,\n this.localFrame.scale,\n );\n this.localFrame.updateMatrixWorld(true);\n this.camera.updateMatrixWorld(true);\n }\n\n /**\n * Check for portal crossing and teleport if needed.\n * Checks all portal pairs and takes the earliest crossing.\n * Call this after updating controls but before render().\n */\n updateTeleportation(): void {\n if (this.portalPairs.length === 0) return;\n\n this.camera.getWorldPosition(this.scratch.currCameraWorld);\n if (!Number.isFinite(this.lastCameraWorld.x)) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n this.scratch.prevCameraWorld.copy(this.lastCameraWorld);\n\n // Store portal matrices before any updates and find earliest crossing\n let earliestT: number | null = null;\n let crossedPair: PortalPair | null = null;\n let crossedEntry = true; // true = crossed entry portal, false = crossed exit portal\n\n for (const pair of this.portalPairs) {\n pair.entryPortal.updateMatrixWorld(true);\n pair.exitPortal.updateMatrixWorld(true);\n pair._entryBefore.copy(pair.entryPortal.matrixWorld);\n pair._exitBefore.copy(pair.exitPortal.matrixWorld);\n\n // Check entry portal crossing\n const entryT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._entryBefore,\n pair.entryPortal.matrixWorld,\n pair.radius,\n );\n\n if (entryT !== null && (earliestT === null || entryT < earliestT)) {\n earliestT = entryT;\n crossedPair = pair;\n crossedEntry = true;\n }\n\n // Check exit portal crossing\n const exitT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._exitBefore,\n pair.exitPortal.matrixWorld,\n pair.radius,\n );\n\n if (exitT !== null && (earliestT === null || exitT < earliestT)) {\n earliestT = exitT;\n crossedPair = pair;\n crossedEntry = false;\n }\n }\n\n // No portal crossed\n if (crossedPair === null) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n // Teleport through the crossed portal\n if (crossedEntry) {\n this.teleport(this.getEntryToExitTransform(crossedPair));\n } else {\n this.teleport(this.getExitToEntryTransform(crossedPair));\n }\n\n this.camera.getWorldPosition(this.lastCameraWorld);\n\n // Call the portal's onCross callback if provided\n if (crossedPair.onCross) {\n // Call async callback but don't await (updateTeleportation is synchronous)\n // Errors will be logged but won't block teleportation\n Promise.resolve(crossedPair.onCross(crossedPair, crossedEntry)).catch(\n (error) => {\n console.error(\"Error in portal onCross callback:\", error);\n },\n );\n }\n }\n\n /**\n * Find the most relevant portal for rendering (closest to camera view direction).\n * Returns the portal pair and which portal (entry or exit) is primary.\n */\n private findPrimaryPortal(): {\n pair: PortalPair;\n primaryIsEntry: boolean;\n primaryPortal: THREE.Object3D;\n otherPortal: THREE.Object3D;\n } | null {\n if (this.portalPairs.length === 0) return null;\n\n this.camera.getWorldPosition(this.scratch.cameraWorldPos);\n this.camera.getWorldDirection(this.scratch.viewDir);\n\n let bestScore = Number.NEGATIVE_INFINITY;\n let bestPair: PortalPair | null = null;\n let bestIsEntry = true;\n\n for (const pair of this.portalPairs) {\n // Score entry portal\n pair.entryPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const entryDist = this.scratch.toPortal.length();\n const entryScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / entryDist;\n\n if (entryScore > bestScore) {\n bestScore = entryScore;\n bestPair = pair;\n bestIsEntry = true;\n }\n\n // Score exit portal\n pair.exitPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const exitDist = this.scratch.toPortal.length();\n const exitScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / exitDist;\n\n if (exitScore > bestScore) {\n bestScore = exitScore;\n bestPair = pair;\n bestIsEntry = false;\n }\n }\n\n if (!bestPair) return null;\n\n return {\n pair: bestPair,\n primaryIsEntry: bestIsEntry,\n primaryPortal: bestIsEntry ? bestPair.entryPortal : bestPair.exitPortal,\n otherPortal: bestIsEntry ? bestPair.exitPortal : bestPair.entryPortal,\n };\n }\n\n /**\n * Render the scene with portals using two-pass rendering.\n * Renders the most relevant portal pair (closest to camera view).\n * Call this instead of renderer.render() in your animation loop.\n */\n render(): void {\n const primary = this.findPrimaryPortal();\n\n // No portals - just render normally\n if (!primary) {\n if (this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras();\n this.prefetchActive = false;\n }\n this.renderer.autoClear = true;\n this.renderer.render(this.scene, this.camera);\n return;\n }\n\n if (!this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras([this.camera2]);\n this.prefetchActive = true;\n }\n\n const { pair, primaryIsEntry, primaryPortal, otherPortal } = primary;\n\n // Compute camera2 position (transformed through portal)\n const camera2Matrix = primaryIsEntry\n ? this.camera.matrixWorld\n .clone()\n .premultiply(this.getEntryToExitTransform(pair))\n : this.camera.matrixWorld\n .clone()\n .premultiply(this.getExitToEntryTransform(pair));\n camera2Matrix.decompose(\n this.camera2.position,\n this.camera2.quaternion,\n this.camera2.scale,\n );\n this.camera2.updateMatrixWorld(true);\n\n // Share lodInstances from portalRenderer to behindRenderer BEFORE Pass 1.\n // This uses previous frame's lodInstances (computed with main camera),\n // ensuring both passes use consistent splat selections to avoid flickering.\n this.shareLodInstances();\n\n // Pass 1: Behind portal view (uses shared lodInstances)\n this.setPortalDiskUniforms(this.camera2, otherPortal, pair.radius, true);\n this.renderer.autoClear = true;\n this.behindRenderer.render(this.scene, this.camera2);\n\n // Pass 2: Main view (updates portalRenderer's lodInstances for next frame)\n this.setPortalDiskUniforms(this.camera, primaryPortal, -pair.radius, true);\n this.renderer.autoClear = false;\n this.portalRenderer.render(this.scene, this.camera);\n }\n\n /**\n * Share lodInstances from portalRenderer to behindRenderer.\n * Uses previous frame's values to ensure both passes render consistent splats.\n */\n private shareLodInstances(): void {\n // Clear and copy lodInstances from portalRenderer to behindRenderer\n this.behindRenderer.lodInstances.clear();\n for (const [mesh, data] of this.portalRenderer.lodInstances) {\n this.behindRenderer.lodInstances.set(mesh, data);\n }\n }\n\n /**\n * Convenience hook for animation loop.\n * Calls updateTeleportation() then render().\n */\n animateLoopHook(): void {\n this.updateTeleportation();\n this.render();\n }\n\n /** Update camera2 aspect ratio on window resize */\n updateAspect(aspect: number): void {\n this.camera2.aspect = aspect;\n this.camera2.updateProjectionMatrix();\n }\n\n /** Dispose of resources */\n dispose(): void {\n this.scene.remove(this.portalRenderer);\n this.scene.remove(this.camera2);\n\n for (const pair of this.portalPairs) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n }\n this.portalPairs = [];\n\n this.portalRenderer.dispose();\n this.behindRenderer.dispose();\n }\n}\n"],"names":["QUAD_VERTICES","QUAD_INDICES","max","l","add","Inflate","Gunzip","_a","SplatFileType","dyno","inputs","_b","outputs","step","normalize","floatBitsToUint","uintBitsToFloat","bits","sign","exp","distance","b2","offset","BundledWorker","worker","maxWorkers","packedSplats","index","base","count","extSplats","covSplats","gsplat","flags","center","scales","quaternion","rgba","rgb","opacity","x","y","z","r","g","b","scale","rotate","translate","recolor","covsplat","rgbMinMaxLnScaleMinMax","viewCenter","viewDir","sortRadial","value","min","a","t","edge","edge0","edge1","cond","f","select","vector","w","swizzle","position","dir","texture","degrees","radians","sin","cos","tan","ptr","splatDefines","oldSplatVertex","oldSplatFragment","splatVertex","splatFragment","computeVec4Template","computeUvec4Vec4Template","computeUvec4x2Vec4Template","computeUvec4Template","newArray","SplatEditSdfType","SplatEditRgbaBlendMode","uniform","sdfArray","numEdits","rgbaDisplaceEdits","textureSize","shaders","dot","now","instances","result","traverseStart","keyIndices","target","cubeCamera","dyno.DynoInt","dyno.DynoUsampler2D","dyno.DynoVec4","dyno.DynoBool","dyno.DynoVec3","lodSplats","dyno.DynoUsampler2DArray","dyno.dynoBlock","dyno.Dyno","dyno.unindentLines","dyno.Gsplat","dyno.defineGsplat","dyno.splitGsplat","dyno.normalize","dyno.sub","dyno.add","dyno.combineGsplat","array","init_wasm","edits","_","min_x","min_y","min_z","max_x","max_y","max_z","min_scale_x","min_scale_y","min_scale_z","max_scale_x","max_scale_y","max_scale_z","packed_position","packed_rotation","packed_scale","packed_color","SH_C0","length","numSplats","sortOrigin","sortDirection","sortDepthBias","sort360","generators","camera","scene","originToWorld","i32","section","i","input","transformPos","spz","SplatSkinningMode","skinning","color","metrics","JointEnum","JOINT_IDS","NUM_JOINTS","JOINT_INDEX","JOINT_RADIUS","JOINT_SEGMENTS","JOINT_SEGMENT_STEPS","JOINT_TIPS","FINGER_TIPS","Hand","HANDS","DEFAULT_MOVE_INERTIA","DEFAULT_ROTATE_INERTIA","gamepad"],"mappings":"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","x_google_ignoreList":[1]} \ No newline at end of file +{"version":3,"file":"spark.module.js","sources":["../src/defines.ts","../src/dyno/types.ts","../src/dyno/value.ts","../src/dyno/base.ts","../src/dyno/splats.ts","../src/dyno/output.ts","../src/dyno/uniforms.ts","../node_modules/fflate/esm/browser.js","../src/utils.ts","../src/dyno/program.ts","../src/dyno/mathTypes.ts","../src/dyno/math.ts","../src/dyno/logic.ts","../src/dyno/convert.ts","../src/dyno/vecmat.ts","../src/dyno/util.ts","../src/dyno/transform.ts","../src/dyno/control.ts","../src/dyno/texture.ts","../src/dyno/trig.ts","../src/shaders/computeUvec4.glsl","../src/shaders/computeUvec4_Vec4.glsl","../src/shaders/computeUvec4x2_Vec4.glsl","../src/shaders/computeVec4.glsl","../src/shaders/splatDefines.glsl","../src/shaders/splatFragment.glsl","../src/shaders/splatVertex.glsl","../src/shaders.ts","../src/Readback.ts","../src/SplatEdit.ts","../src/SplatGenerator.ts","../rust/spark-rs/pkg/spark_rs.js","../virtual:decode-64","../src/wasm.ts","../src/SplatWorker.ts","../src/PackedSplats.ts","../src/SplatLoader.ts","../src/ExtSplats.ts","../src/RgbaArray.ts","../src/SplatPager.ts","../src/SplatMesh.ts","../src/SplatAccumulator.ts","../src/SplatGeometry.ts","../src/SparkRenderer.ts","../src/ply.ts","../src/antisplat.ts","../src/ksplat.ts","../src/spz.ts","../src/SplatSkinning.ts","../src/splatConstructors.ts","../src/generators/static.ts","../src/generators/snow.ts","../src/modifiers/normalColor.ts","../src/modifiers/depthColor.ts","../src/SparkXr.ts","../src/hands.ts","../src/controls.ts","../src/SparkPortals.ts"],"sourcesContent":["// LN_SCALE_MIN..LN_SCALE_MAX define the internal scale range of for Gsplats,\n// covering approx 0.0001..8000 in range with discrete steps 7% apart.\n// The value \"0\" is reserved for truly flat scales, indicating a 2DGS.\n// If these values are changed, the corresponding values in splatDefines.glsl\n// must also be updated to match.\n\nexport const LN_SCALE_MIN = -12.0;\nexport const LN_SCALE_MAX = 9.0;\nexport const SCALE_MIN = Math.exp(LN_SCALE_MIN);\nexport const SCALE_MAX = Math.exp(LN_SCALE_MAX);\n\nexport const LN_SCALE_ZERO = -30.0;\nexport const SCALE_ZERO = Math.exp(LN_SCALE_ZERO);\n\n// Gsplats are stored in textures that are 2^11 x 2^11 x up to 2^11\n// Most WebGL2 implementations support 2D textures up to 2^12 x 2^12 (max 16M Gsplats)\n// 2D array textures and 3D textures up to 2^11 x 2^11 x 2^11 (max 8G Gsplats),\n// so we use 2D array textures for our representation for higher limits.\n\nexport const SPLAT_TEX_WIDTH_BITS = 11;\nexport const SPLAT_TEX_HEIGHT_BITS = 11;\nexport const SPLAT_TEX_DEPTH_BITS = 11;\nexport const SPLAT_TEX_LAYER_BITS =\n SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nexport const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS; // 2048\nexport const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS; // 2048\nexport const SPLAT_TEX_DEPTH = 1 << SPLAT_TEX_DEPTH_BITS; // 2048\nexport const SPLAT_TEX_MIN_HEIGHT = 1;\n\nexport const SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1;\nexport const SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1;\nexport const SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1;\n\n// Enable/disable Gsplat sorting via Rust WASM code. In testing the sorting\n// time between pure JS and WASM are minimal and don't make a big difference.\n\nexport const WASM_SPLAT_SORT = true;\n\n// Enable/disable compiling a dedicated parse function per element type\n// in the plyReader.\n\nexport const USE_COMPILED_PARSER_FUNCTION = true;\n\nexport enum SplatFileType {\n PLY = \"ply\",\n SPZ = \"spz\",\n SPLAT = \"splat\",\n KSPLAT = \"ksplat\",\n PCSOGS = \"pcsogs\",\n PCSOGSZIP = \"pcsogszip\",\n RAD = \"rad\",\n}\n\nexport type SplatEncoding = {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n sh1Max?: number;\n sh2Max?: number;\n sh3Max?: number;\n lodOpacity?: boolean;\n};\n\nexport const DEFAULT_SPLAT_ENCODING: SplatEncoding = {\n rgbMin: 0,\n rgbMax: 1,\n lnScaleMin: LN_SCALE_MIN,\n lnScaleMax: LN_SCALE_MAX,\n sh1Max: 1,\n sh2Max: 1,\n sh3Max: 1,\n lodOpacity: false,\n};\n\nexport type RadMeta = {\n version: number;\n type: string;\n count: number;\n maxSh?: number;\n lodTree?: boolean;\n chunkSize?: number;\n chunks: {\n offset: number;\n bytes: number;\n base?: number;\n count?: number;\n filename?: string;\n }[];\n splatEncoding?: SplatEncoding;\n};\n\nexport type PackedExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type PackedResult = {\n numSplats: number;\n packedArray: Uint32Array;\n extra: PackedExtra;\n splatEncoding: SplatEncoding;\n};\n\nexport type ExtExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3a?: Uint32Array;\n sh3b?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type ExtResult = {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: ExtExtra;\n};\n","import type * as THREE from \"three\";\n\nexport type BoolTypes = \"bool\" | \"bvec2\" | \"bvec3\" | \"bvec4\";\nexport type IntTypes = \"int\" | \"ivec2\" | \"ivec3\" | \"ivec4\";\nexport type UintTypes = \"uint\" | \"uvec2\" | \"uvec3\" | \"uvec4\";\nexport type AllIntTypes = IntTypes | UintTypes;\nexport type FloatTypes = \"float\" | \"vec2\" | \"vec3\" | \"vec4\";\nexport type ScalarTypes = \"uint\" | \"int\" | \"float\";\nexport type Vector2Types = \"vec2\" | \"ivec2\" | \"uvec2\";\nexport type Vector3Types = \"vec3\" | \"ivec3\" | \"uvec3\";\nexport type Vector4Types = \"vec4\" | \"ivec4\" | \"uvec4\";\nexport type VectorTypes = Vector2Types | Vector3Types | Vector4Types;\nexport type MatFloatTypes =\n | \"mat2\"\n | \"mat2x2\"\n | \"mat2x3\"\n | \"mat2x4\"\n | \"mat3\"\n | \"mat3x2\"\n | \"mat3x3\"\n | \"mat3x4\"\n | \"mat4\"\n | \"mat4x2\"\n | \"mat4x3\"\n | \"mat4x4\";\nexport type SquareMatTypes =\n | \"mat2\"\n | \"mat3\"\n | \"mat4\"\n | \"mat2x2\"\n | \"mat3x3\"\n | \"mat4x4\";\nexport type AllFloatTypes = FloatTypes | MatFloatTypes;\nexport type SignedTypes = IntTypes | FloatTypes;\nexport type AllSignedTypes = SignedTypes | MatFloatTypes;\nexport type ValueTypes = FloatTypes | IntTypes | UintTypes;\nexport type AllValueTypes = AllFloatTypes | IntTypes | UintTypes;\nexport type SimpleTypes = BoolTypes | AllValueTypes;\n\nexport type VectorElementType = A extends FloatTypes\n ? \"float\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nexport type SameSizeVec = T extends ScalarTypes\n ? \"float\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"vec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"vec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"vec4\"\n : never;\n\nexport type SameSizeUvec = T extends ScalarTypes\n ? \"uint\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"uvec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"uvec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"uvec4\"\n : never;\n\nexport type SameSizeIvec = T extends ScalarTypes\n ? \"int\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"ivec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"ivec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"ivec4\"\n : never;\n\nexport type SamplerTypes =\n | \"sampler2D\"\n | \"sampler2DArray\"\n | \"sampler3D\"\n | \"samplerCube\";\nexport type UsamplerTypes =\n | \"usampler2D\"\n | \"usampler2DArray\"\n | \"usampler3D\"\n | \"usamplerCube\";\nexport type IsamplerTypes =\n | \"isampler2D\"\n | \"isampler2DArray\"\n | \"isampler3D\"\n | \"isamplerCube\";\nexport type NormalSamplerTypes = SamplerTypes | UsamplerTypes | IsamplerTypes;\nexport type SamplerShadowTypes =\n | \"sampler2DShadow\"\n | \"sampler2DArrayShadow\"\n | \"samplerCubeShadow\";\nexport type AllSamplerTypes = NormalSamplerTypes | SamplerShadowTypes;\nexport type Sampler2DTypes =\n | \"sampler2D\"\n | \"usampler2D\"\n | \"isampler2D\"\n | \"sampler2DShadow\";\nexport type Sampler2DArrayTypes =\n | \"sampler2DArray\"\n | \"usampler2DArray\"\n | \"isampler2DArray\"\n | \"sampler2DArrayShadow\";\nexport type Sampler3DTypes = \"sampler3D\" | \"usampler3D\" | \"isampler3D\";\nexport type SamplerCubeTypes =\n | \"samplerCube\"\n | \"usamplerCube\"\n | \"isamplerCube\"\n | \"samplerCubeShadow\";\n\nexport function isBoolType(type: DynoType): boolean {\n return (\n type === \"bool\" || type === \"bvec2\" || type === \"bvec3\" || type === \"bvec4\"\n );\n}\n\nexport function isScalarType(type: DynoType): boolean {\n return type === \"int\" || type === \"uint\" || type === \"float\";\n}\n\nexport function isIntType(type: DynoType): boolean {\n return (\n type === \"int\" || type === \"ivec2\" || type === \"ivec3\" || type === \"ivec4\"\n );\n}\n\nexport function isUintType(type: DynoType): boolean {\n return (\n type === \"uint\" || type === \"uvec2\" || type === \"uvec3\" || type === \"uvec4\"\n );\n}\n\nexport function isFloatType(type: DynoType): boolean {\n return (\n type === \"float\" || type === \"vec2\" || type === \"vec3\" || type === \"vec4\"\n );\n}\n\nexport function isMatFloatType(type: DynoType): boolean {\n return (\n type === \"mat2\" ||\n type === \"mat2x2\" ||\n type === \"mat2x3\" ||\n type === \"mat2x4\" ||\n type === \"mat3\" ||\n type === \"mat3x2\" ||\n type === \"mat3x3\" ||\n type === \"mat3x4\" ||\n type === \"mat4\" ||\n type === \"mat4x2\" ||\n type === \"mat4x3\" ||\n type === \"mat4x4\"\n );\n}\n\nexport function isAllFloatType(type: DynoType): boolean {\n return isFloatType(type) || isMatFloatType(type);\n}\n\nexport function isVector2Type(type: DynoType): boolean {\n return type === \"vec2\" || type === \"ivec2\" || type === \"uvec2\";\n}\n\nexport function isVector3Type(type: DynoType): boolean {\n return type === \"vec3\" || type === \"ivec3\" || type === \"uvec3\";\n}\n\nexport function isVector4Type(type: DynoType): boolean {\n return type === \"vec4\" || type === \"ivec4\" || type === \"uvec4\";\n}\n\nexport function isVectorType(type: DynoType): boolean {\n return isVector2Type(type) || isVector3Type(type) || isVector4Type(type);\n}\n\nexport function isMat2(type: DynoType): boolean {\n return type === \"mat2\" || type === \"mat2x2\";\n}\nexport function isMat3(type: DynoType): boolean {\n return type === \"mat3\" || type === \"mat3x3\";\n}\nexport function isMat4(type: DynoType): boolean {\n return type === \"mat4\" || type === \"mat4x4\";\n}\n\nexport function vectorElementType(\n type: A,\n): VectorElementType {\n switch (type) {\n case \"vec2\":\n return \"float\" as VectorElementType;\n case \"vec3\":\n return \"float\" as VectorElementType;\n case \"vec4\":\n return \"float\" as VectorElementType;\n case \"ivec2\":\n return \"int\" as VectorElementType;\n case \"ivec3\":\n return \"int\" as VectorElementType;\n case \"ivec4\":\n return \"int\" as VectorElementType;\n case \"uvec2\":\n return \"uint\" as VectorElementType;\n case \"uvec3\":\n return \"uint\" as VectorElementType;\n case \"uvec4\":\n return \"uint\" as VectorElementType;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function vectorDim(type: A): number {\n switch (type) {\n case \"vec2\":\n case \"ivec2\":\n case \"uvec2\":\n return 2;\n case \"vec3\":\n case \"ivec3\":\n case \"uvec3\":\n return 3;\n case \"vec4\":\n case \"ivec4\":\n case \"uvec4\":\n return 4;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function sameSizeVec(type: T): SameSizeVec {\n if (isScalarType(type)) {\n return \"float\" as SameSizeVec;\n }\n if (isVector2Type(type)) {\n return \"vec2\" as SameSizeVec;\n }\n if (isVector3Type(type)) {\n return \"vec3\" as SameSizeVec;\n }\n if (isVector4Type(type)) {\n return \"vec4\" as SameSizeVec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeUvec(type: T): SameSizeUvec {\n if (isScalarType(type)) {\n return \"uint\" as SameSizeUvec;\n }\n if (isVector2Type(type)) {\n return \"uvec2\" as SameSizeUvec;\n }\n if (isVector3Type(type)) {\n return \"uvec3\" as SameSizeUvec;\n }\n if (isVector4Type(type)) {\n return \"uvec4\" as SameSizeUvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeIvec(type: T): SameSizeIvec {\n if (isScalarType(type)) {\n return \"int\" as SameSizeIvec;\n }\n if (isVector2Type(type)) {\n return \"ivec2\" as SameSizeIvec;\n }\n if (isVector3Type(type)) {\n return \"ivec3\" as SameSizeIvec;\n }\n if (isVector4Type(type)) {\n return \"ivec4\" as SameSizeIvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport type BaseType = SimpleTypes | AllSamplerTypes;\nexport type UserType = { type: string };\nexport type DynoType = BaseType | UserType;\n\nexport type DynoJsType = T extends \"bool\"\n ? boolean\n : T extends \"uint\"\n ? number\n : T extends \"int\"\n ? number\n : T extends \"float\"\n ? number\n : T extends \"bvec2\"\n ? [boolean, boolean]\n : T extends \"uvec2\"\n ? THREE.Vector2 | [number, number] | Uint32Array\n : T extends \"ivec2\"\n ? THREE.Vector2 | [number, number] | Int32Array\n : T extends \"vec2\"\n ? THREE.Vector2 | [number, number] | Float32Array\n : T extends \"bvec3\"\n ? [boolean, boolean, boolean]\n : T extends \"uvec3\"\n ? THREE.Vector3 | [number, number, number] | Uint32Array\n : T extends \"ivec3\"\n ? THREE.Vector3 | [number, number, number] | Int32Array\n : T extends \"vec3\"\n ?\n | THREE.Vector3\n | THREE.Color\n | [number, number, number]\n | Float32Array\n : T extends \"bvec4\"\n ? [boolean, boolean, boolean, boolean]\n : T extends \"uvec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Uint32Array\n : T extends \"ivec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Int32Array\n : T extends \"vec4\"\n ?\n | THREE.Vector4\n | THREE.Quaternion\n | [number, number, number, number]\n | Float32Array\n : T extends \"mat2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x3\"\n ? Float32Array\n : T extends \"mat2x4\"\n ? Float32Array\n : T extends \"mat3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x2\"\n ? Float32Array\n : T extends \"mat3x3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x4\"\n ? Float32Array\n : T extends \"mat4\"\n ? THREE.Matrix4 | Float32Array\n : T extends \"mat4x2\"\n ? Float32Array\n : T extends \"mat4x3\"\n ? Float32Array\n : T extends \"mat4x4\"\n ?\n | THREE.Matrix4\n | Float32Array\n : T extends \"usampler2D\"\n ? THREE.Texture\n : T extends \"isampler2D\"\n ? THREE.Texture\n : T extends \"sampler2D\"\n ? THREE.Texture\n : T extends \"sampler2DShadow\"\n ? THREE.Texture\n : T extends \"usampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"isampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArrayShadow\"\n ? THREE.Texture\n : T extends \"usampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"isampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"sampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"usamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"isamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCubeShadow\"\n ? THREE.Texture\n : unknown;\n\nexport function typeLiteral(type: DynoType): string {\n if (typeof type === \"string\") {\n return type;\n }\n if (typeof type === \"object\" && type.type) {\n return type.type;\n }\n throw new Error(`Invalid DynoType: ${String(type)}`);\n}\n\nexport function numberAsInt(value: number): string {\n return Math.trunc(value).toString();\n}\n\nexport function numberAsUint(value: number): string {\n const v = Math.max(0, Math.trunc(value));\n return `${v.toString()}u`;\n}\n\nexport function numberAsFloat(value: number): string {\n return value === Number.POSITIVE_INFINITY\n ? \"INFINITY\"\n : value === Number.NEGATIVE_INFINITY\n ? \"-INFINITY\"\n : Number.isInteger(value)\n ? value.toFixed(1)\n : value.toString();\n}\n","import * as THREE from \"three\";\n\nimport type { Dyno, IOTypes } from \"./base\";\nimport {\n type DynoJsType,\n type DynoType,\n type SimpleTypes,\n isAllFloatType,\n isBoolType,\n isIntType,\n isUintType,\n numberAsFloat,\n numberAsInt,\n numberAsUint,\n} from \"./types\";\n\nexport type DynoVal = DynoValue | HasDynoOut;\n\nexport function valType(val: DynoVal): T {\n if (val instanceof DynoValue) {\n return val.type;\n }\n const value = val.dynoOut();\n return value.type;\n}\n\nexport interface HasDynoOut {\n dynoOut(): DynoValue;\n}\n\nexport class DynoValue {\n type: T;\n // This field prevents TypeScript structural matching on objects with a \"type\" field\n private __isDynoValue = true;\n\n constructor(type: T) {\n this.type = type;\n }\n}\n\nexport class DynoOutput<\n T extends DynoType,\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends DynoValue {\n dyno: Dyno;\n key: string;\n\n constructor(dyno: Dyno, key: string) {\n super(dyno.outTypes[key] as T);\n this.dyno = dyno;\n this.key = key;\n }\n}\n\nexport class DynoLiteral extends DynoValue {\n literal: string;\n\n constructor(type: T, literal: string) {\n super(type);\n this.literal = literal;\n }\n\n getLiteral(): string {\n return this.literal;\n }\n}\n\nexport function dynoLiteral(\n type: T,\n literal: string,\n): DynoLiteral {\n return new DynoLiteral(type, literal);\n}\n\nexport class DynoConst extends DynoLiteral {\n value: DynoJsType;\n\n constructor(type: T, value: DynoJsType) {\n super(type, \"\");\n this.value = value;\n }\n\n getLiteral(): string {\n const { type, value } = this;\n switch (type) {\n case \"bool\":\n return value ? \"true\" : \"false\";\n case \"uint\":\n return numberAsUint(value as number);\n case \"int\":\n return numberAsInt(value as number);\n case \"float\":\n return numberAsFloat(value as number);\n case \"bvec2\": {\n const v = value as [boolean, boolean];\n return `bvec2(${v[0]}, ${v[1]})`;\n }\n case \"uvec2\": {\n if (value instanceof THREE.Vector2) {\n return `uvec2(${numberAsUint(value.x)}, ${numberAsUint(value.y)})`;\n }\n const v = value as [number, number] | Uint32Array;\n return `uvec2(${numberAsUint(v[0])}, ${numberAsUint(v[1])})`;\n }\n case \"ivec2\": {\n if (value instanceof THREE.Vector2) {\n return `ivec2(${numberAsInt(value.x)}, ${numberAsInt(value.y)})`;\n }\n const v = value as [number, number] | Int32Array;\n return `ivec2(${numberAsInt(v[0])}, ${numberAsInt(v[1])})`;\n }\n case \"vec2\": {\n if (value instanceof THREE.Vector2) {\n return `vec2(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)})`;\n }\n const v = value as [number, number] | Float32Array;\n return `vec2(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])})`;\n }\n case \"bvec3\": {\n const v = value as [boolean, boolean, boolean];\n return `bvec3(${v[0]}, ${v[1]}, ${v[2]})`;\n }\n case \"uvec3\": {\n if (value instanceof THREE.Vector3) {\n return `uvec3(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)})`;\n }\n const v = value as [number, number, number] | Uint32Array;\n return `uvec3(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])})`;\n }\n case \"ivec3\": {\n if (value instanceof THREE.Vector3) {\n return `ivec3(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)})`;\n }\n const v = value as [number, number, number] | Int32Array;\n return `ivec3(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])})`;\n }\n case \"vec3\": {\n if (value instanceof THREE.Vector3) {\n return `vec3(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)})`;\n }\n const v = value as [number, number, number] | Float32Array;\n return `vec3(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])})`;\n }\n case \"bvec4\": {\n const v = value as [boolean, boolean, boolean, boolean];\n return `bvec4(${v[0]}, ${v[1]}, ${v[2]}, ${v[3]})`;\n }\n case \"uvec4\": {\n if (value instanceof THREE.Vector4) {\n return `uvec4(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)}, ${numberAsUint(value.w)})`;\n }\n const v = value as [number, number, number, number] | Uint32Array;\n return `uvec4(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])}, ${numberAsUint(v[3])})`;\n }\n case \"ivec4\": {\n if (value instanceof THREE.Vector4) {\n return `ivec4(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)}, ${numberAsInt(value.w)})`;\n }\n const v = value as [number, number, number, number] | Int32Array;\n return `ivec4(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])}, ${numberAsInt(v[3])})`;\n }\n case \"vec4\": {\n if (value instanceof THREE.Vector4) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n if (value instanceof THREE.Quaternion) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n const v = value as [number, number, number, number] | Float32Array;\n return `vec4(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])}, ${numberAsFloat(v[3])})`;\n }\n case \"mat2\":\n case \"mat2x2\": {\n const m = value as DynoJsType<\"mat2\">;\n const e =\n m instanceof THREE.Matrix2 ? m.elements : (value as Float32Array);\n const arg = new Array(4).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x3\": {\n const e = value as DynoJsType<\"mat2x3\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x4\": {\n const e = value as DynoJsType<\"mat2x4\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3\":\n case \"mat3x3\": {\n const m = value as DynoJsType<\"mat3\">;\n const e =\n m instanceof THREE.Matrix3 ? m.elements : (value as Float32Array);\n const arg = new Array(9).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x2\": {\n const e = value as DynoJsType<\"mat3x2\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x4\": {\n const e = value as DynoJsType<\"mat3x4\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4\":\n case \"mat4x4\": {\n const m = value as DynoJsType<\"mat4\">;\n const e =\n m instanceof THREE.Matrix4 ? m.elements : (value as Float32Array);\n const arg = new Array(16).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x2\": {\n const e = value as DynoJsType<\"mat4x2\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x3\": {\n const e = value as DynoJsType<\"mat4x3\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n default:\n throw new Error(`Type not implemented: ${String(type)}`);\n }\n }\n}\n\nexport function dynoConst(\n type: T,\n value: DynoJsType,\n): DynoConst {\n return new DynoConst(type, value);\n}\n\nexport function literalZero(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(false)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(0.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(0)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(1u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalNegOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(-1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(-1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0xFFFFFFFFu)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n","import type { IUniform } from \"three\";\nimport type { DynoType } from \"./types\";\nimport {\n DynoLiteral,\n DynoOutput,\n type DynoVal,\n DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nconst DEFAULT_INDENT = \" \";\n\nexport class Compilation {\n globals: Set = new Set();\n statements: string[] = [];\n uniforms: Record = {};\n declares: Set = new Set();\n updaters: (() => void)[] = [];\n sequence = 0;\n indent: string = DEFAULT_INDENT;\n\n constructor({ indent }: { indent?: string } = {}) {\n this.indent = indent ?? DEFAULT_INDENT;\n }\n\n nextSequence() {\n return this.sequence++;\n }\n}\n\nexport type IOTypes = Record;\ntype GenerateContext = {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n};\n\nexport class Dyno {\n inTypes: InTypes;\n outTypes: OutTypes;\n\n inputs: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n }) {\n this.inTypes = inTypes ?? ({} as InTypes);\n this.outTypes = outTypes ?? ({} as OutTypes);\n this.inputs = inputs ?? {};\n this.update = update;\n\n this.globals = globals;\n this.statements = statements;\n this.generate =\n generate ??\n (({ inputs, outputs, compile }) => {\n return {\n globals: this.globals?.({ inputs, outputs, compile }),\n statements: this.statements?.({ inputs, outputs, compile }),\n };\n });\n }\n\n get outputs(): { [K in keyof OutTypes]: DynoVal } {\n const outputs = {} as { [K in keyof OutTypes]: DynoVal };\n for (const key in this.outTypes) {\n outputs[key] = new DynoOutput(this, key);\n }\n return outputs;\n }\n\n apply(inputs: { [K in keyof InTypes]?: DynoVal }): {\n [K in keyof OutTypes]: DynoVal;\n } {\n Object.assign(this.inputs, inputs);\n return this.outputs;\n }\n\n compile({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }): string[] {\n const result = [\n `// ${this.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`,\n ];\n\n const declares: (keyof OutTypes)[] = [];\n for (const key in outputs) {\n const name = outputs[key];\n if (name && !compile.declares.has(name)) {\n compile.declares.add(name);\n declares.push(key);\n }\n }\n\n const { globals, statements, uniforms } = this.generate({\n inputs,\n outputs,\n compile,\n });\n for (const global of globals ?? []) {\n compile.globals.add(global);\n }\n for (const key in uniforms) {\n compile.uniforms[key] = uniforms[key];\n }\n if (this.update) {\n compile.updaters.push(this.update);\n }\n\n for (const key of declares) {\n const name = outputs[key];\n if (name) {\n if (!compile.uniforms[name]) {\n result.push(`${dynoDeclare(name, this.outTypes[key])};`);\n }\n }\n }\n\n if (statements?.length) {\n result.push(\"{\");\n result.push(...statements.map((line) => compile.indent + line));\n result.push(\"}\");\n }\n return result;\n }\n}\n\nexport type DynoBlockType = (\n inputs: { [K in keyof InTypes]?: DynoVal },\n outputs: { [K in keyof OutTypes]?: DynoVal },\n { roots }: { roots: Dyno[] },\n) => { [K in keyof OutTypes]?: DynoVal } | undefined;\n\nexport class DynoBlock<\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends Dyno {\n construct: DynoBlockType;\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n construct,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n construct: DynoBlockType;\n }) {\n super({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n generate: (args) => this.generateBlock(args),\n });\n this.construct = construct;\n }\n\n generateBlock({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }) {\n const blockInputs: { [K in keyof InTypes]?: DynoVal } = {};\n const blockOutputs: { [K in keyof OutTypes]?: DynoVal } = {};\n\n for (const key in inputs) {\n if (inputs[key] != null) {\n blockInputs[key] = new DynoLiteral(this.inTypes[key], inputs[key]);\n }\n }\n for (const key in outputs) {\n if (outputs[key] != null) {\n blockOutputs[key] = new DynoValue(this.outTypes[key]);\n }\n }\n\n const options: { roots: Dyno[] } = { roots: [] };\n const returned = this.construct(blockInputs, blockOutputs, options);\n\n for (const global of this.globals?.({ inputs, outputs, compile }) ?? []) {\n compile.globals.add(global);\n }\n\n const ordering: Dyno[] = [];\n const nodeOuts = new Map<\n Dyno,\n { sequence: number; outNames: Map; newOuts: Set }\n >();\n\n function visit(\n node: Dyno,\n outKey?: string,\n outName?: string,\n ) {\n let outs = nodeOuts.get(node);\n if (!outs) {\n // First time visiting this node\n outs = {\n sequence: compile.nextSequence(),\n outNames: new Map(),\n newOuts: new Set(),\n };\n nodeOuts.set(node, outs);\n\n for (const key in node.inputs) {\n let input = node.inputs[key];\n while (input) {\n if (input instanceof DynoValue) {\n if (input instanceof DynoOutput) {\n visit(input.dyno, input.key);\n }\n break;\n }\n // Must be as HasDynoOut\n if (typeof input.dynoOut !== \"function\") {\n throw new Error(\n `dynoOut is not a function for ${input.constructor.name}`,\n );\n }\n input = input.dynoOut();\n }\n }\n ordering.push(node);\n }\n if (outKey) {\n if (!outName) {\n outs.newOuts.add(outKey);\n }\n outs.outNames.set(outKey, outName ?? `${outKey}_${outs.sequence}`);\n }\n }\n\n for (const root of options.roots) {\n visit(root);\n }\n\n for (const key in blockOutputs) {\n let value = returned?.[key] ?? blockOutputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoOutput) {\n visit(value.dyno, value.key, outputs[key]);\n }\n break;\n }\n // Must be as HasDynoOut\n value = value.dynoOut();\n }\n blockOutputs[key] = value;\n }\n\n const steps = [];\n\n for (const dyno of ordering) {\n // compile.statements.push(`// ${dyno.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`);\n\n const inputs: Record = {};\n const outputs: Record = {};\n\n for (const key in dyno.inputs) {\n let value = dyno.inputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoLiteral) {\n inputs[key] = value.getLiteral();\n } else if (value instanceof DynoOutput) {\n const source = nodeOuts.get(value.dyno)?.outNames.get(value.key);\n if (!source) {\n throw new Error(\n `Source not found for ${value.dyno.constructor.name}.${value.key}`,\n );\n }\n inputs[key] = source;\n }\n break;\n }\n // Must be as HasDynOut\n value = value.dynoOut();\n }\n }\n\n const outs = nodeOuts.get(dyno) ?? { outNames: new Map() };\n for (const [key, name] of outs.outNames.entries()) {\n outputs[key] = name;\n }\n\n const newSteps = dyno.compile({ inputs, outputs, compile });\n steps.push(newSteps);\n }\n\n const literalOutputs = [];\n for (const key in outputs) {\n if (blockOutputs[key] instanceof DynoLiteral) {\n literalOutputs.push(\n `${outputs[key]} = ${blockOutputs[key].getLiteral()};`,\n );\n }\n }\n if (literalOutputs.length > 0) {\n steps.push(literalOutputs);\n }\n\n const statements = steps.flatMap((step, index) => {\n // Add a blank line between steps\n return index === 0 ? step : [\"\", ...step];\n });\n return { statements };\n }\n}\n\nexport function dynoBlock<\n InTypes extends Record,\n OutTypes extends Record,\n>(\n inTypes: InTypes,\n outTypes: OutTypes,\n construct: DynoBlockType,\n { update, globals }: { update?: () => void; globals?: () => string[] } = {},\n) {\n return new DynoBlock({ inTypes, outTypes, construct, update, globals });\n}\n\nexport function dyno<\n InTypes extends Record,\n OutTypes extends Record,\n>({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n}: {\n inTypes: InTypes;\n outTypes: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n}) {\n return new Dyno({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n });\n}\n\nexport function dynoDeclare(name: string, type: DynoType, count?: number) {\n const typeStr = typeof type === \"string\" ? type : type.type;\n if (!typeStr) {\n throw new Error(`Invalid DynoType: ${String(type)}`);\n }\n return `${typeStr} ${name}${count != null ? `[${count}]` : \"\"}`;\n}\n\nexport function unindentLines(s: string): string[] {\n let seenNonEmpty = false;\n const lines = s\n .split(\"\\n\")\n .map((line) => {\n const trimmedLine = line.trimEnd();\n if (seenNonEmpty) {\n return trimmedLine;\n }\n if (trimmedLine.length > 0) {\n seenNonEmpty = true;\n return trimmedLine;\n }\n return null;\n })\n .filter((line) => line != null);\n while (lines.length > 0 && lines[lines.length - 1].length === 0) {\n lines.pop();\n }\n if (lines.length === 0) {\n return [];\n }\n\n const indent = lines[0].match(/^\\s*/)?.[0];\n if (!indent) {\n return lines; // No indent, return as is\n }\n // Remove indent from the beginning of each line\n const regex = new RegExp(`^${indent}`);\n return lines.map((line) => line.replace(regex, \"\"));\n}\n\nexport function unindent(s: string): string {\n return unindentLines(s).join(\"\\n\");\n}\n\nexport class UnaryOp<\n A extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n outKey,\n outTypeFunc,\n }: { a: DynoVal; outKey: OutKey; outTypeFunc: (aType: A) => OutType }) {\n const inTypes = { a: valType(a) };\n const outType = outTypeFunc(valType(a));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class BinaryOp<\n A extends DynoType,\n B extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b) };\n const outType = outTypeFunc(valType(a), valType(b));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class TrinaryOp<\n A extends DynoType,\n B extends DynoType,\n C extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B; c: C }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n c,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n c: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B, cType: C) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b), c: valType(c) };\n const outType = outTypeFunc(valType(a), valType(b), valType(c));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b, c } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n","import { Dyno, UnaryOp, unindent, unindentLines } from \"./base\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const Gsplat = { type: \"Gsplat\" } as { type: \"Gsplat\" };\nexport const CovSplat = { type: \"CovSplat\" } as { type: \"CovSplat\" };\nexport const TPackedSplats = { type: \"PackedSplats\" } as {\n type: \"PackedSplats\";\n};\nexport const TExtSplats = { type: \"ExtSplats\" } as {\n type: \"ExtSplats\";\n};\nexport const TCovSplats = { type: \"CovSplats\" } as {\n type: \"CovSplats\";\n};\n\nexport const numPackedSplats = (\n packedSplats: DynoVal,\n): DynoVal<\"int\"> => new NumPackedSplats({ packedSplats });\nexport const readPackedSplat = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadPackedSplat({ packedSplats, index });\nexport const readPackedSplatRange = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n base: DynoVal<\"int\">,\n count: DynoVal<\"int\">,\n): DynoVal =>\n new ReadPackedSplatRange({ packedSplats, index, base, count });\n\nexport const numExtSplats = (\n extSplats: DynoVal,\n): DynoVal<\"int\"> => new NumExtSplats({ extSplats });\nexport const readExtSplat = (\n extSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadExtSplat({ extSplats, index });\n\nexport const numCovSplats = (\n covsplats: DynoVal,\n): DynoVal<\"int\"> => new NumCovSplats({ covsplats });\nexport const readCovSplat = (\n covSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadCovSplat({ covSplats, index });\n\nexport const gsplatToCovSplat = (\n gsplat: DynoVal,\n): DynoVal => new GsplatToCovSplat({ gsplat });\n\nexport const splitGsplat = (gsplat: DynoVal) =>\n new SplitGsplat({ gsplat });\nexport const combineGsplat = ({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineGsplat({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\nexport const gsplatNormal = (gsplat: DynoVal): DynoVal<\"vec3\"> =>\n new GsplatNormal({ gsplat });\n\nexport const transformGsplat = (\n gsplat: DynoVal,\n {\n scale,\n rotate,\n translate,\n recolor,\n }: {\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n },\n): DynoVal => {\n return new TransformGsplat({ gsplat, scale, rotate, translate, recolor });\n};\n\nexport const splatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new SplatTexCoord({ index });\n\nexport const pagedSplatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new PagedSplatTexCoord({ index });\n\nexport const defineGsplat = unindent(`\n struct Gsplat {\n vec3 center;\n uint flags;\n vec3 scales;\n int index;\n vec4 quaternion;\n vec4 rgba;\n };\n const uint GSPLAT_FLAG_ACTIVE = 1u << 0u;\n\n bool isGsplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const defineCovSplat = unindent(`\n struct CovSplat {\n vec3 center;\n uint flags;\n vec4 rgba;\n vec3 xxyyzz;\n int index;\n vec3 xyxzyz;\n };\n\n bool isCovSplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const definePackedSplats = unindent(`\n struct PackedSplats {\n usampler2DArray textureArray;\n int numSplats;\n vec4 rgbMinMaxLnScaleMinMax;\n bool lodOpacity;\n };\n`);\n\nexport class NumPackedSplats extends UnaryOp<\n typeof TPackedSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({\n packedSplats,\n }: { packedSplats: DynoVal }) {\n super({ a: packedSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadPackedArray = unindent(`\n bool readPackedArray(usampler2DArray texture, int numSplats, vec4 rgbMinMaxLnScaleMinMax, int index, out Gsplat gsplat) {\n if ((index >= 0) && (index < numSplats)) {\n uvec4 packedData = texelFetch(texture, splatTexCoord(index), 0);\n unpackSplatEncoding(packedData, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba, rgbMinMaxLnScaleMinMax);\n return true;\n } else {\n return false;\n }\n }\n`);\n\nexport class ReadPackedSplat\n extends Dyno<\n { packedSplats: typeof TPackedSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n }: { packedSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { packedSplats: TPackedSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index } = inputs;\n let statements: string[];\n if (packedSplats && index) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class ReadPackedSplatRange\n extends Dyno<\n {\n packedSplats: typeof TPackedSplats;\n index: \"int\";\n base: \"int\";\n count: \"int\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n base,\n count,\n }: {\n packedSplats?: DynoVal;\n index?: DynoVal<\"int\">;\n base?: DynoVal<\"int\">;\n count?: DynoVal<\"int\">;\n }) {\n super({\n inTypes: {\n packedSplats: TPackedSplats,\n index: \"int\",\n base: \"int\",\n count: \"int\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index, base, count },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index, base, count } = inputs;\n let statements: string[];\n if (packedSplats && index && base && count) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineExtSplats = unindent(`\n struct ExtSplats {\n usampler2DArray textureArray1;\n usampler2DArray textureArray2;\n int numSplats;\n };\n`);\n\nexport class NumExtSplats extends UnaryOp<\n typeof TExtSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ extSplats }: { extSplats: DynoVal }) {\n super({ a: extSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadExtArrays = unindent(`\n void readExtArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out Gsplat gsplat) {\n gsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExt(packed1, packed2, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba);\n gsplat.flags = all(equal(gsplat.scales, vec3(0.0, 0.0, 0.0))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadExtSplat\n extends Dyno<\n { extSplats: typeof TExtSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n extSplats,\n index,\n }: { extSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { extSplats: TExtSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { extSplats, index },\n globals: () => [defineGsplat, defineExtSplats, defineReadExtArrays],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [`${gsplat}.flags = 0u;`];\n }\n const { extSplats, index } = inputs;\n let statements: string[];\n if (extSplats && index) {\n return unindentLines(`\n readExtArrays(${extSplats}.textureArray1, ${extSplats}.textureArray2, ${extSplats}.numSplats, ${index}, ${gsplat});\n `);\n }\n return [`${gsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class NumCovSplats extends UnaryOp<\n typeof TCovSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ covsplats }: { covsplats: DynoVal }) {\n super({ a: covsplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadCovArrays = unindent(`\n void readCovArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out CovSplat covsplat) {\n covsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExtCov(packed1, packed2, covsplat.center, covsplat.rgba, covsplat.xxyyzz, covsplat.xyxzyz);\n covsplat.flags = (all(equal(covsplat.xxyyzz, vec3(0.0))) && all(equal(covsplat.xyxzyz, vec3(0.0)))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadCovSplat\n extends Dyno<\n { covSplats: typeof TCovSplats; index: \"int\" },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covSplats,\n index,\n }: { covSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { covSplats: TCovSplats, index: \"int\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covSplats, index },\n globals: () => [defineGsplat, defineCovSplat, defineReadCovArrays],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = outputs;\n if (!covsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n const { covSplats, index } = inputs;\n let statements: string[];\n if (covSplats && index) {\n return unindentLines(`\n readCovArrays(${covSplats}.textureArray, ${covSplats}.numSplats, ${index}, ${covsplat});\n `);\n }\n return [`${covsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class GsplatToCovSplat extends Dyno<\n { gsplat: typeof Gsplat },\n { covsplat: typeof CovSplat }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: { covsplat: CovSplat },\n inputs: { gsplat },\n globals: () => [defineGsplat, defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const { covsplat } = outputs;\n if (!gsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n\n return unindentLines(`\n ${covsplat}.flags = 0u;\n if (isGsplatActive(${gsplat}.flags)) {\n ${covsplat}.flags = ${gsplat}.flags;\n ${covsplat}.index = ${gsplat}.index;\n ${covsplat}.rgba = ${gsplat}.rgba;\n ${covsplat}.center = ${gsplat}.center;\n mat3 m = scaleQuaternionToMatrix(${gsplat}.scales, ${gsplat}.quaternion);\n m = m * transpose(m);\n ${covsplat}.xxyyzz = vec3(m[0][0], m[1][1], m[2][2]);\n ${covsplat}.xyxzyz = vec3(m[0][1], m[0][2], m[1][2]);\n }\n `);\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplitGsplat extends Dyno<\n { gsplat: typeof Gsplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags ? null : `${flags} = ${gsplat ? `${gsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isGsplatActive(${gsplat ? `${gsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${gsplat ? `${gsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !scales\n ? null\n : `${scales} = ${gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !quaternion\n ? null\n : `${quaternion} = ${gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${gsplat ? `${gsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${gsplat ? `${gsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${gsplat ? `${gsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${gsplat ? `${gsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${gsplat ? `${gsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${gsplat ? `${gsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${gsplat ? `${gsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${gsplat ? `${gsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat: outGsplat } = outputs;\n if (!outGsplat) {\n return [];\n }\n const {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outGsplat}.flags = ${flags ?? (gsplat ? `${gsplat}.flags` : \"0u\")};`,\n `${outGsplat}.index = ${index ?? (gsplat ? `${gsplat}.index` : \"0\")};`,\n `${outGsplat}.center = ${center ?? (gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.scales = ${scales ?? (gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.quaternion = ${quaternion ?? (gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\")};`,\n `${outGsplat}.rgba = ${rgba ?? (gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outGsplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outGsplat}.rgba.a = ${opacity};`,\n !x ? null : `${outGsplat}.center.x = ${x};`,\n !y ? null : `${outGsplat}.center.y = ${y};`,\n !z ? null : `${outGsplat}.center.z = ${z};`,\n !r ? null : `${outGsplat}.rgba.r = ${r};`,\n !g ? null : `${outGsplat}.rgba.g = ${g};`,\n !b ? null : `${outGsplat}.rgba.b = ${b};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineGsplatNormal = unindent(`\n vec3 gsplatNormal(vec3 scales, vec4 quaternion) {\n float minScale = min(scales.x, min(scales.y, scales.z));\n vec3 normal;\n if (scales.z == minScale) {\n normal = vec3(0.0, 0.0, 1.0);\n } else if (scales.y == minScale) {\n normal = vec3(0.0, 1.0, 0.0);\n } else {\n normal = vec3(1.0, 0.0, 0.0);\n }\n return quatVec(quaternion, normal);\n }\n`);\n\nexport class GsplatNormal extends UnaryOp {\n constructor({ gsplat }: { gsplat: DynoVal }) {\n super({ a: gsplat, outKey: \"normal\", outTypeFunc: () => \"vec3\" });\n this.globals = () => [defineGsplat, defineGsplatNormal];\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normal} = gsplatNormal(${inputs.a}.scales, ${inputs.a}.quaternion);`,\n ];\n }\n}\n\nexport class TransformGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n scale: \"float\";\n rotate: \"vec4\";\n translate: \"vec3\";\n recolor: \"vec4\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n scale,\n rotate,\n translate,\n recolor,\n }: {\n gsplat?: DynoVal;\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n scale: \"float\",\n rotate: \"vec4\",\n translate: \"vec3\",\n recolor: \"vec4\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, scale, rotate, translate, recolor },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs, compile }) => {\n const { gsplat } = outputs;\n if (!gsplat || !inputs.gsplat) {\n return [];\n }\n const { scale, rotate, translate, recolor } = inputs;\n const indent = compile.indent;\n const statements = [\n `${gsplat} = ${inputs.gsplat};`,\n `if (isGsplatActive(${gsplat}.flags)) {`,\n\n scale ? `${indent}${gsplat}.center *= ${scale};` : null,\n rotate\n ? `${indent}${gsplat}.center = quatVec(${rotate}, ${gsplat}.center);`\n : null,\n translate ? `${indent}${gsplat}.center += ${translate};` : null,\n\n scale ? `${indent}${gsplat}.scales *= ${scale};` : null,\n\n rotate\n ? `${indent}${gsplat}.quaternion = quatQuat(${rotate}, ${gsplat}.quaternion);`\n : null,\n recolor ? `${indent}${gsplat}.rgba *= ${recolor};` : null,\n \"}\",\n ].filter(Boolean) as string[];\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const splitCovSplat = (covsplat: DynoVal) =>\n new SplitCovSplat({ covsplat });\nexport const combineCovSplat = ({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineCovSplat({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\n\nexport class SplitCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ covsplat }: { covsplat?: DynoVal }) {\n super({\n inTypes: { covsplat: CovSplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags\n ? null\n : `${flags} = ${covsplat ? `${covsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isCovSplatActive(${covsplat ? `${covsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${covsplat ? `${covsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${covsplat ? `${covsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${covsplat ? `${covsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${covsplat ? `${covsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${covsplat ? `${covsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${covsplat ? `${covsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${covsplat ? `${covsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${covsplat ? `${covsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${covsplat ? `${covsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineCovSplat\n extends Dyno<\n {\n covsplat: typeof CovSplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { covsplat: CovSplat },\n inputs: {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat: outCovSplat } = outputs;\n if (!outCovSplat) {\n return [];\n }\n const {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outCovSplat}.flags = ${flags ?? (covsplat ? `${covsplat}.flags` : \"0u\")};`,\n `${outCovSplat}.index = ${index ?? (covsplat ? `${covsplat}.index` : \"0\")};`,\n `${outCovSplat}.center = ${center ?? (covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outCovSplat}.rgba = ${rgba ?? (covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outCovSplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outCovSplat}.rgba.a = ${opacity};`,\n !x ? null : `${outCovSplat}.center.x = ${x};`,\n !y ? null : `${outCovSplat}.center.y = ${y};`,\n !z ? null : `${outCovSplat}.center.z = ${z};`,\n !r ? null : `${outCovSplat}.rgba.r = ${r};`,\n !g ? null : `${outCovSplat}.rgba.g = ${g};`,\n !b ? null : `${outCovSplat}.rgba.b = ${b};`,\n `${outCovSplat}.xxyyzz = ${covsplat ? `${covsplat}.xxyyzz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n `${outCovSplat}.xyxzyz = ${covsplat ? `${covsplat}.xyxzyz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = splatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n\nexport class PagedSplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = pagedSplatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n","import * as THREE from \"three\";\nimport { Dyno, unindentLines } from \"./base\";\nimport { CovSplat, Gsplat, defineCovSplat, defineGsplat } from \"./splats\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const outputPackedSplat = (\n gsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputPackedSplat({ gsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputCovSplat = (\n covsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputCovSplat({ covsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputExtendedSplat = (gsplat: DynoVal) =>\n new OutputExtendedSplat({ gsplat });\n\nexport const outputExtCovSplat = (covsplat: DynoVal) =>\n new OutputExtCovSplat({ covsplat });\n\nexport const outputSplatDepth = (\n gsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputSplatDepth({ gsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputCovSplatDepth = (\n covsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputCovSplatDepth({ covsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputRgba8 = (rgba8: DynoVal<\"vec4\">) =>\n new OutputRgba8({ rgba8 });\n\nexport class OutputPackedSplat extends Dyno<\n { gsplat: typeof Gsplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n gsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n gsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { gsplat: Gsplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { gsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (gsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n target = packSplatEncoding(${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u, 0u, 0u, 0u);\n }\n `);\n }\n return [\"target = uvec4(0u, 0u, 0u, 0u);\"];\n },\n });\n }\n}\n\nexport class OutputCovSplat extends Dyno<\n { covsplat: typeof CovSplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n covsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n covsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { covsplat: CovSplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { covsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (covsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n target = packSplatCovEncoding(${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtendedSplat extends Dyno<\n { gsplat: typeof Gsplat },\n Record\n> {\n constructor({\n gsplat,\n }: {\n gsplat?: DynoVal;\n }) {\n super({\n inTypes: { gsplat: Gsplat },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat } = inputs;\n if (gsplat) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n packSplatExt(target, target2, ${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n Record\n> {\n constructor({\n covsplat,\n }: {\n covsplat?: DynoVal;\n }) {\n super({\n inTypes: { covsplat: CovSplat },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat } = inputs;\n if (covsplat) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n packSplatExtCov(target, target2, ${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nclass OutputSplatDepth extends Dyno<\n {\n gsplat: typeof Gsplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n gsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n gsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { gsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (gsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isGsplatActive(${gsplat}.flags)) {\n vec3 center = ${gsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nclass OutputCovSplatDepth extends Dyno<\n {\n covsplat: typeof CovSplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n covsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n covsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { covsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (covsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isCovSplatActive(${covsplat}.flags)) {\n vec3 center = ${covsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nexport class OutputRgba8\n extends Dyno<{ rgba8: \"vec4\" }, { rgba8: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ rgba8 }: { rgba8?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { rgba8: \"vec4\" },\n inputs: { rgba8 },\n statements: ({ inputs, outputs }) => [\n `target = ${inputs.rgba8 ?? \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"rgba8\");\n }\n}\n","import type { IUniform } from \"three\";\nimport { Dyno, dynoDeclare } from \"./base\";\nimport type { DynoJsType, DynoType } from \"./types\";\nimport { DynoOutput, type DynoValue, type HasDynoOut } from \"./value\";\n\nexport const uniform = >(\n key: string,\n type: DynoType,\n value: V,\n) => new DynoUniform({ key, type, value });\nexport const dynoBool = (value = false, key?: string) =>\n new DynoBool({ key, value });\nexport const dynoUint = (value = 0, key?: string) =>\n new DynoUint({ key, value });\nexport const dynoInt = (value = 0, key?: string) => new DynoInt({ key, value });\nexport const dynoFloat = (value = 0.0, key?: string) =>\n new DynoFloat({ key, value });\n\nexport const dynoBvec2 = >(\n value: V,\n key?: string,\n) => new DynoBvec2({ key, value });\nexport const dynoUvec2 = >(\n value: V,\n key?: string,\n) => new DynoUvec2({ key, value });\nexport const dynoIvec2 = >(\n value: V,\n key?: string,\n) => new DynoIvec2({ key, value });\nexport const dynoVec2 = >(\n value: V,\n key?: string,\n) => new DynoVec2({ key, value });\n\nexport const dynoBvec3 = >(\n value: V,\n key?: string,\n) => new DynoBvec3({ key, value });\nexport const dynoUvec3 = >(\n value: V,\n key?: string,\n) => new DynoUvec3({ key, value });\nexport const dynoIvec3 = >(\n value: V,\n key?: string,\n) => new DynoIvec3({ key, value });\nexport const dynoVec3 = >(\n value: V,\n key?: string,\n) => new DynoVec3({ key, value });\n\nexport const dynoBvec4 = >(\n value: V,\n key?: string,\n) => new DynoBvec4({ key, value });\nexport const dynoUvec4 = >(\n value: V,\n key?: string,\n) => new DynoUvec4({ key, value });\nexport const dynoIvec4 = >(\n value: V,\n key?: string,\n) => new DynoIvec4({ key, value });\nexport const dynoVec4 = >(\n value: V,\n key?: string,\n) => new DynoVec4({ key, value });\n\nexport const dynoMat2 = >(\n value: V,\n key?: string,\n) => new DynoMat2({ key, value });\nexport const dynoMat2x2 = >(\n value: V,\n key?: string,\n) => new DynoMat2x2({ key, value });\nexport const dynoMat2x3 = >(\n value: V,\n key?: string,\n) => new DynoMat2x3({ key, value });\nexport const dynoMat2x4 = >(\n value: V,\n key?: string,\n) => new DynoMat2x4({ key, value });\n\nexport const dynoMat3 = >(\n value: V,\n key?: string,\n) => new DynoMat3({ key, value });\nexport const dynoMat3x2 = >(\n value: V,\n key?: string,\n) => new DynoMat3x2({ key, value });\nexport const dynoMat3x3 = >(\n value: V,\n key?: string,\n) => new DynoMat3x3({ key, value });\nexport const dynoMat3x4 = >(\n value: V,\n key?: string,\n) => new DynoMat3x4({ key, value });\n\nexport const dynoMat4 = >(\n value: V,\n key?: string,\n) => new DynoMat4({ key, value });\nexport const dynoMat4x2 = >(\n value: V,\n key?: string,\n) => new DynoMat4x2({ key, value });\nexport const dynoMat4x3 = >(\n value: V,\n key?: string,\n) => new DynoMat4x3({ key, value });\nexport const dynoMat4x4 = >(\n value: V,\n key?: string,\n) => new DynoMat4x4({ key, value });\n\nexport const dynoUsampler2D = >(\n value: V,\n key?: string,\n) => new DynoUsampler2D({ key, value });\nexport const dynoIsampler2D = >(\n value: V,\n key?: string,\n) => new DynoIsampler2D({ key, value });\nexport const dynoSampler2D = >(\n value: V,\n key?: string,\n) => new DynoSampler2D({ key, value });\n\nexport const dynoUsampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoUsampler2DArray({ key, value });\nexport const dynoIsampler2DArray = >(\n key: string,\n value: V,\n) => new DynoIsampler2DArray({ key, value });\nexport const dynoSampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoSampler2DArray({ key, value });\n\nexport const dynoUsampler3D = >(\n value: V,\n key?: string,\n) => new DynoUsampler3D({ key, value });\nexport const dynoIsampler3D = >(\n value: V,\n key?: string,\n) => new DynoIsampler3D({ key, value });\nexport const dynoSampler3D = >(\n value: V,\n key?: string,\n) => new DynoSampler3D({ key, value });\n\nexport const dynoUsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoUsamplerCube({ key, value });\nexport const dynoIsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoIsamplerCube({ key, value });\nexport const dynoSamplerCube = >(\n value: V,\n key?: string,\n) => new DynoSamplerCube({ key, value });\n\nexport const dynoSampler2DShadow = >(\n value: V,\n key?: string,\n) => new DynoSampler2DShadow({ key, value });\nexport const dynoSampler2DArrayShadow = <\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSampler2DArrayShadow({ key, value });\nexport const dynoSamplerCubeShadow = <\n V extends DynoJsType<\"samplerCubeShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSamplerCubeShadow({ key, value });\n\nexport class DynoUniform<\n T extends DynoType,\n K extends string = \"value\",\n V extends DynoJsType = DynoJsType,\n >\n extends Dyno, { [key in K]: T }>\n implements HasDynoOut\n{\n public type: T;\n public count?: number;\n public outKey: K;\n public value: V;\n public uniform: { value: V; type?: string };\n\n constructor({\n key,\n type,\n count,\n value,\n update,\n globals,\n }: {\n key?: K;\n type: T;\n count?: number;\n value: V;\n update?: (value: V) => V | undefined;\n globals?: ({\n inputs,\n outputs,\n }: { inputs: unknown; outputs: { [key in K]?: string } }) => string[];\n }) {\n key = (key ?? \"value\") as K;\n super({\n outTypes: { [key]: type } as { [key in K]: T },\n update: () => {\n if (update) {\n const value = update(this.value);\n if (value !== undefined) {\n this.value = value;\n }\n }\n this.uniform.value = this.value;\n },\n generate: ({ inputs, outputs }) => {\n const allGlobals = globals?.({ inputs, outputs }) ?? [];\n const uniforms: Record = {};\n const name = outputs[key];\n if (name) {\n allGlobals.push(`uniform ${dynoDeclare(name, type, count)};`);\n uniforms[name] = this.uniform;\n }\n return { globals: allGlobals, uniforms };\n },\n });\n this.type = type;\n this.count = count;\n this.value = value;\n this.uniform = { value };\n this.outKey = key;\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class DynoBool extends DynoUniform<\n \"bool\",\n K,\n boolean\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: boolean;\n update?: (value: boolean) => boolean | undefined;\n }) {\n super({ key, type: \"bool\", value, update });\n }\n}\n\nexport class DynoUint extends DynoUniform<\"uint\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"uint\", value, update });\n }\n}\n\nexport class DynoInt extends DynoUniform<\"int\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"int\", value, update });\n }\n}\n\nexport class DynoFloat extends DynoUniform<\n \"float\",\n K,\n number\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"float\", value, update });\n }\n}\n\nexport class DynoBvec2<\n K extends string,\n V extends DynoJsType<\"bvec2\">,\n> extends DynoUniform<\"bvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec2\", value, update });\n }\n}\n\nexport class DynoUvec2<\n K extends string,\n V extends DynoJsType<\"uvec2\">,\n> extends DynoUniform<\"uvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec2\", value, update });\n }\n}\n\nexport class DynoIvec2<\n K extends string,\n V extends DynoJsType<\"ivec2\">,\n> extends DynoUniform<\"ivec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec2\", value, update });\n }\n}\n\nexport class DynoVec2<\n K extends string,\n V extends DynoJsType<\"vec2\">,\n> extends DynoUniform<\"vec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec2\", value, update });\n }\n}\n\nexport class DynoBvec3<\n K extends string,\n V extends DynoJsType<\"bvec3\">,\n> extends DynoUniform<\"bvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec3\", value, update });\n }\n}\n\nexport class DynoUvec3<\n V extends DynoJsType<\"uvec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"uvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec3\", value, update });\n }\n}\n\nexport class DynoIvec3<\n V extends DynoJsType<\"ivec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"ivec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec3\", value, update });\n }\n}\n\nexport class DynoVec3<\n V extends DynoJsType<\"vec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec3\", value, update });\n }\n}\n\nexport class DynoBvec4<\n K extends string,\n V extends DynoJsType<\"bvec4\">,\n> extends DynoUniform<\"bvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec4\", value, update });\n }\n}\n\nexport class DynoUvec4<\n K extends string,\n V extends DynoJsType<\"uvec4\">,\n> extends DynoUniform<\"uvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec4\", value, update });\n }\n}\n\nexport class DynoIvec4<\n K extends string,\n V extends DynoJsType<\"ivec4\">,\n> extends DynoUniform<\"ivec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec4\", value, update });\n }\n}\n\nexport class DynoVec4<\n V extends DynoJsType<\"vec4\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec4\", value, update });\n }\n}\n\nexport class DynoMat2<\n K extends string,\n V extends DynoJsType<\"mat2\">,\n> extends DynoUniform<\"mat2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2\", value, update });\n }\n}\n\nexport class DynoMat2x2<\n K extends string,\n V extends DynoJsType<\"mat2x2\">,\n> extends DynoUniform<\"mat2x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x2\", value, update });\n }\n}\n\nexport class DynoMat2x3<\n K extends string,\n V extends DynoJsType<\"mat2x3\">,\n> extends DynoUniform<\"mat2x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x3\", value, update });\n }\n}\n\nexport class DynoMat2x4<\n K extends string,\n V extends DynoJsType<\"mat2x4\">,\n> extends DynoUniform<\"mat2x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x4\", value, update });\n }\n}\n\nexport class DynoMat3<\n K extends string,\n V extends DynoJsType<\"mat3\">,\n> extends DynoUniform<\"mat3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3\", value, update });\n }\n}\n\nexport class DynoMat3x2<\n K extends string,\n V extends DynoJsType<\"mat3x2\">,\n> extends DynoUniform<\"mat3x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x2\", value, update });\n }\n}\n\nexport class DynoMat3x3<\n K extends string,\n V extends DynoJsType<\"mat3x3\">,\n> extends DynoUniform<\"mat3x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x3\", value, update });\n }\n}\n\nexport class DynoMat3x4<\n K extends string,\n V extends DynoJsType<\"mat3x4\">,\n> extends DynoUniform<\"mat3x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x4\", value, update });\n }\n}\n\nexport class DynoMat4<\n K extends string,\n V extends DynoJsType<\"mat4\">,\n> extends DynoUniform<\"mat4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4\", value, update });\n }\n}\n\nexport class DynoMat4x2<\n K extends string,\n V extends DynoJsType<\"mat4x2\">,\n> extends DynoUniform<\"mat4x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x2\", value, update });\n }\n}\n\nexport class DynoMat4x3<\n K extends string,\n V extends DynoJsType<\"mat4x3\">,\n> extends DynoUniform<\"mat4x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x3\", value, update });\n }\n}\n\nexport class DynoMat4x4<\n K extends string,\n V extends DynoJsType<\"mat4x4\">,\n> extends DynoUniform<\"mat4x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x4\", value, update });\n }\n}\n\nexport class DynoUsampler2D<\n K extends string,\n V extends DynoJsType<\"usampler2D\">,\n> extends DynoUniform<\"usampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2D\", value, update });\n }\n}\n\nexport class DynoIsampler2D<\n K extends string,\n V extends DynoJsType<\"isampler2D\">,\n> extends DynoUniform<\"isampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2D\", value, update });\n }\n}\n\nexport class DynoSampler2D<\n K extends string,\n V extends DynoJsType<\"sampler2D\">,\n> extends DynoUniform<\"sampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2D\", value, update });\n }\n}\n\nexport class DynoUsampler2DArray<\n K extends string,\n V extends DynoJsType<\"usampler2DArray\">,\n> extends DynoUniform<\"usampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2DArray\", value, update });\n }\n}\n\nexport class DynoIsampler2DArray<\n K extends string,\n V extends DynoJsType<\"isampler2DArray\">,\n> extends DynoUniform<\"isampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2DArray\", value, update });\n }\n}\n\nexport class DynoSampler2DArray<\n K extends string,\n V extends DynoJsType<\"sampler2DArray\">,\n> extends DynoUniform<\"sampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArray\", value, update });\n }\n}\n\nexport class DynoUsampler3D<\n K extends string,\n V extends DynoJsType<\"usampler3D\">,\n> extends DynoUniform<\"usampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler3D\", value, update });\n }\n}\n\nexport class DynoIsampler3D<\n K extends string,\n V extends DynoJsType<\"isampler3D\">,\n> extends DynoUniform<\"isampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler3D\", value, update });\n }\n}\n\nexport class DynoSampler3D<\n K extends string,\n V extends DynoJsType<\"sampler3D\">,\n> extends DynoUniform<\"sampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler3D\", value, update });\n }\n}\n\nexport class DynoUsamplerCube<\n K extends string,\n V extends DynoJsType<\"usamplerCube\">,\n> extends DynoUniform<\"usamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usamplerCube\", value, update });\n }\n}\n\nexport class DynoIsamplerCube<\n K extends string,\n V extends DynoJsType<\"isamplerCube\">,\n> extends DynoUniform<\"isamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isamplerCube\", value, update });\n }\n}\n\nexport class DynoSamplerCube<\n K extends string,\n V extends DynoJsType<\"samplerCube\">,\n> extends DynoUniform<\"samplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCube\", value, update });\n }\n}\n\nexport class DynoSampler2DShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DShadow\">,\n> extends DynoUniform<\"sampler2DShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DShadow\", value, update });\n }\n}\n\nexport class DynoSampler2DArrayShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n> extends DynoUniform<\"sampler2DArrayShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArrayShadow\", value, update });\n }\n}\n\nexport class DynoSamplerCubeShadow<\n K extends string,\n V extends DynoJsType<\"samplerCubeShadow\">,\n> extends DynoUniform<\"samplerCubeShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCubeShadow\", value, update });\n }\n}\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","import { Gunzip } from \"fflate\";\nimport * as THREE from \"three\";\n\n// Miscellaneous utility functions for Spark\n\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SCALE_ZERO,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_MIN_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines.js\";\nimport { unindent } from \"./dyno/base.js\";\n\nexport const threeRevision = Number.parseInt(THREE.REVISION);\nexport const threeMrtArray = threeRevision >= 179;\n\nconst f32buffer = new Float32Array(1);\nconst u32buffer = new Uint32Array(f32buffer.buffer);\nconst supportsFloat16Array = \"Float16Array\" in globalThis;\nconst f16buffer = supportsFloat16Array\n ? new globalThis[\"Float16Array\" as keyof typeof globalThis](1)\n : null;\nconst u16buffer = new Uint16Array(f16buffer?.buffer);\n\n// Returns a normalized array of numbers\nexport function normalize(vec: number[]) {\n const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0));\n return vec.map((v) => v / norm);\n}\n\n// Reinterpret the bits of a float32 as a uint32\nexport function floatBitsToUint(f: number): number {\n f32buffer[0] = f;\n return u32buffer[0];\n}\n\n// Reinterpret the bits of a uint32 as a float32\nexport function uintBitsToFloat(u: number): number {\n u32buffer[0] = u;\n return f32buffer[0];\n}\n\nexport const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS;\nexport const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS;\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfNative(f: number): number {\n f16buffer[0] = f;\n return u16buffer[0];\n}\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfJS(f: number): number {\n // Store the value into the shared Float32 array.\n f32buffer[0] = f;\n const bits = u32buffer[0];\n\n // Extract sign (1 bit), exponent (8 bits), and fraction (23 bits)\n const sign = (bits >> 31) & 0x1;\n const exp = (bits >> 23) & 0xff;\n const frac = bits & 0x7fffff;\n const halfSign = sign << 15;\n\n // Handle special cases: NaN and Infinity\n if (exp === 0xff) {\n // NaN: set all exponent bits to 1 and some nonzero fraction bits.\n if (frac !== 0) {\n return halfSign | 0x7fff;\n }\n // Infinity\n return halfSign | 0x7c00;\n }\n\n // Adjust the exponent from float32 bias (127) to float16 bias (15)\n const newExp = exp - 127 + 15;\n\n // Handle overflow: too large to represent in half precision.\n if (newExp >= 0x1f) {\n return halfSign | 0x7c00; // Infinity\n }\n if (newExp <= 0) {\n // Handle subnormals and underflow.\n if (newExp < -10) {\n // Too small: underflows to zero.\n return halfSign;\n }\n // Convert to subnormal: add the implicit leading 1 to the fraction,\n // then shift to align with the half-precision's 10 fraction bits.\n const subFrac = (frac | 0x800000) >> (1 - newExp + 13);\n return halfSign | subFrac;\n }\n\n // Normalized half-precision number: shift fraction to fit into 10 bits.\n const halfFrac = frac >> 13;\n return halfSign | (newExp << 10) | halfFrac;\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfNative(u: number): number {\n u16buffer[0] = u;\n return f16buffer[0];\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfJS(h: number): number {\n // Extract the sign (1 bit), exponent (5 bits), and fraction (10 bits)\n const sign = (h >> 15) & 0x1;\n const exp = (h >> 10) & 0x1f;\n const frac = h & 0x3ff;\n\n let f32bits: number;\n\n if (exp === 0) {\n if (frac === 0) {\n // Zero (positive or negative)\n f32bits = sign << 31;\n } else {\n // Subnormal half-precision number.\n // Normalize the subnormal number:\n let mant = frac;\n let e = -14; // For half, the exponent for subnormals is fixed at -14.\n // Shift left until the implicit leading 1 is in place.\n while ((mant & 0x400) === 0) {\n // 0x400 === 1 << 10\n mant <<= 1;\n e--;\n }\n // Remove the leading 1 (which is now implicit)\n mant &= 0x3ff;\n // Convert the half exponent (e) to the 32-bit float exponent:\n const newExp = e + 127; // 32-bit float bias is 127.\n const newFrac = mant << 13; // Align to 23-bit fraction (23 - 10 = 13)\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n } else if (exp === 0x1f) {\n // Handle special cases for Infinity and NaN.\n if (frac === 0) {\n // Infinity\n f32bits = (sign << 31) | 0x7f800000;\n } else {\n // NaN (we choose a quiet NaN)\n f32bits = (sign << 31) | 0x7fc00000;\n }\n } else {\n // Normalized half-precision number.\n // Adjust exponent from half (bias 15) to float32 (bias 127)\n const newExp = exp - 15 + 127;\n const newFrac = frac << 13;\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n\n // Write the 32-bit bit pattern to the shared buffer,\n // then read it as a float32 to return a JavaScript number.\n u32buffer[0] = f32bits;\n return f32buffer[0];\n}\n\n// Convert a number 0..1 to a 0..255 uint\nexport function floatToUint8(v: number): number {\n // Converts from 0..1 float to 0..255 uint8\n return Math.max(0, Math.min(255, Math.round(v * 255)));\n}\n\n// Convert a number -1..1 to a -127..127 int\nexport function floatToSint8(v: number): number {\n // Converts from -1..1 float to -127..127 int8\n return Math.max(-127, Math.min(127, Math.round(v * 127)));\n}\n\n// Convert a 0..255 uint to a 0..1 float\nexport function Uint8ToFloat(v: number): number {\n // Converts from 0..255 uint8 to 0..1 float\n return v / 255;\n}\n\n// Convert a -127..127 int to a -1..1 float\nexport function Sint8ToFloat(v: number): number {\n // Converts from -127..127 int8 to -1..1 float\n return v / 127;\n}\n\n// A simple utility class for caching a fixed number of items\nexport class DataCache {\n // Maximum number of items to cache\n maxItems: number;\n\n // Function to fetch data for a key\n asyncFetch: (key: string) => Promise;\n\n // Function to dispose of data when it is no longer needed\n dispose?: (data: unknown) => void;\n\n // Array of cached items\n items: { key: string; data: unknown }[];\n\n // In-progress fetch promises\n pending: Map>;\n\n // Create a DataCache with a given function that fetches data not in the cache.\n constructor({\n asyncFetch,\n dispose,\n maxItems = 5,\n }: {\n asyncFetch: (key: string) => Promise;\n dispose?: (data: unknown) => void;\n maxItems?: number;\n }) {\n this.asyncFetch = asyncFetch;\n this.dispose = dispose;\n this.maxItems = maxItems;\n this.items = [];\n this.pending = new Map();\n }\n\n has(key: string): boolean {\n return this.items.some((item) => item.key === key);\n }\n\n getImmediate(key: string): unknown | undefined {\n const index = this.items.findIndex((item) => item.key === key);\n if (index >= 0) {\n // Data exists in our cache, move it to the end of the array\n const item = this.items.splice(index, 1)[0];\n this.items.push(item);\n // Return the cached data\n return item.data;\n }\n return undefined;\n }\n\n // Fetch data for the key, returning cached data if available.\n async getFetch(key: string): Promise {\n const immediate = this.getImmediate(key);\n if (immediate !== undefined) {\n return immediate;\n }\n\n let pending = this.pending.get(key);\n if (pending) {\n return pending;\n }\n\n pending = this.asyncFetch(key).then((data) => {\n this.pending.delete(key);\n\n // Add the data to the cache\n this.items.push({ key, data });\n // If the cache is too large, remove the oldest accessed item\n while (this.items.length > this.maxItems) {\n const removed = this.items.shift();\n if (removed && this.dispose) {\n this.dispose(removed.data);\n }\n }\n // Return the fetched data\n return data;\n });\n this.pending.set(key, pending);\n return pending;\n }\n}\n\n// Like Array.map but for objects\nexport function mapObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n const entries = Object.entries(obj).map(([key, value]) => [\n key,\n fn(value, key),\n ]);\n // Returns a new object with the mapped values\n return Object.fromEntries(entries);\n}\n\n// Like Array.map().filter() but for objects.\n// The callback fn() should return undefined to filter out the key.\nexport function mapFilterObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n // If no return (or return undefined), the key is not included in the result\n const entries = Object.entries(obj)\n .map(([key, value]) => [key, fn(value, key)])\n .filter(([_, value]) => value !== undefined);\n // Returns a new object with the filtered values\n return Object.fromEntries(entries);\n}\n\n// Recursively finds all ArrayBuffers in an object and returns them as an array\n// to use as transferable objects to send between workers.\nexport function getTransferable(ctx: unknown): Transferable[] {\n const buffers: Transferable[] = [];\n const seen = new Set();\n\n function traverse(obj: unknown) {\n if (obj && typeof obj === \"object\" && !seen.has(obj)) {\n seen.add(obj);\n\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n // Handles TypedArrays and DataView\n buffers.push(obj.buffer as ArrayBuffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n\n traverse(ctx);\n return buffers;\n}\n\n// Create an array of the given size and initialize element with initFunction()\nexport function newArray(\n n: number,\n initFunction: (index: number) => T,\n): T[] {\n // Creates a new array and calls a constructor function for each element with index\n return new Array(n).fill(null).map((_, i) => initFunction(i));\n}\n\n// A free list that has a pool of items of type T, with callbacks\n// for constructing, disposing, and checking if an item is valid for the given args.\nexport class FreeList {\n items: T[];\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n\n constructor({\n // Allocate a new item with the given args\n allocate,\n // Dispose of an item (optional, if GC is enough)\n dispose,\n // Check if an existing item in the list is valid for the given args,\n // allowing you to store heterogeneous items in the list.\n valid,\n }: {\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n }) {\n this.items = [];\n this.allocate = allocate;\n this.dispose = dispose;\n this.valid = valid;\n }\n\n // Allocate a new item from the free list, first checking if a existing item\n // on the freelist is valid for the given args.\n alloc(args: Args): T {\n while (true) {\n const item = this.items.pop();\n if (!item) {\n // No items in the free list, allocate a new one\n break;\n }\n if (this.valid(item, args)) {\n // Found a valid item, return it\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): found valid item. Reusing...`);\n return item;\n }\n // Item isn't valid for our args, dispose of it and try again\n if (this.dispose) {\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): disposing invalid item.`);\n this.dispose(item);\n }\n }\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): allocating new item`);\n return this.allocate(args);\n }\n\n free(item: T) {\n // Return item to the free list\n this.items.push(item);\n }\n\n disposeAll() {\n // Disposes of all items in the free list\n let item: T | undefined;\n item = this.items.pop();\n while (item) {\n if (this.dispose) {\n this.dispose(item);\n }\n item = this.items.pop();\n }\n }\n}\n\nexport function encodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) {\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n extA[i4] = floatBitsToUint(x);\n extA[i4 + 1] = floatBitsToUint(y);\n extA[i4 + 2] = floatBitsToUint(z);\n extA[i4 + 3] = toHalf(opacity);\n extB[i4] = toHalf(r) | (toHalf(g) << 16);\n extB[i4 + 1] = toHalf(b) | (toHalf(Math.log(scaleX)) << 16);\n extB[i4 + 2] = toHalf(Math.log(scaleY)) | (toHalf(Math.log(scaleZ)) << 16);\n extB[i4 + 3] = encodeQuatOctXy1010R12(quatX, quatY, quatZ, quatW);\n}\n\nexport function decodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n result.center.x = uintBitsToFloat(extA[i4]);\n result.center.y = uintBitsToFloat(extA[i4 + 1]);\n result.center.z = uintBitsToFloat(extA[i4 + 2]);\n result.opacity = fromHalf(extA[i4 + 3] & 0xffff);\n result.color.r = fromHalf(extB[i4] & 0xffff);\n result.color.g = fromHalf(extB[i4] >>> 16);\n result.color.b = fromHalf(extB[i4 + 1] & 0xffff);\n result.scales.x = Math.exp(fromHalf(extB[i4 + 1] >>> 16));\n result.scales.y = Math.exp(fromHalf(extB[i4 + 2] & 0xffff));\n result.scales.z = Math.exp(fromHalf(extB[i4 + 2] >>> 16));\n decodeQuatOctXy1010R12(extB[i4 + 3], result.quaternion);\n return result;\n}\n\n// Encode a PackedSplat as 4 consecutive Uint32 elements in the packedSplats array.\n// The center coordinates x,y,z are encoded as float16, the scales x,y,z as a\n// logarithmic uint8, rotation as three uint8s representing rotation axis and angle,\n// and RGBA as 4xuint8.\nexport function setPackedSplat(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * opacity : opacity);\n\n // Alternate internal encodings commented out below.\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n // Encode the splat as 4 consecutive Uint32 elements\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] =\n uScaleX | (uScaleY << 8) | (uScaleZ << 16) | (uQuatZ << 24);\n}\n\n// Encode the center coordinates x,y,z in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatCenter(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n) {\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n const i4 = index * 4;\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (packedSplats[i4 + 2] & 0xffff0000);\n}\n\n// Encode the scales x,y,z in the packedSplats Uint32Array, leaving all other fields as is.\nexport function setPackedSplatScales(\n packedSplats: Uint32Array,\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n encoding?: {\n lnScaleMin?: number;\n lnScaleMax?: number;\n },\n) {\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const i4 = index * 4;\n packedSplats[i4 + 3] =\n uScaleX |\n (uScaleY << 8) |\n (uScaleZ << 16) |\n (packedSplats[i4 + 3] & 0xff000000);\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempQuaternion = new THREE.Quaternion();\n\n// Encode the rotation quatX, quatY, quatZ, quatW in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatQuat(\n packedSplats: Uint32Array,\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n) {\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n const i4 = index * 4;\n packedSplats[i4 + 2] =\n (packedSplats[i4 + 2] & 0x0000ffff) | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] = (packedSplats[i4 + 3] & 0x00ffffff) | (uQuatZ << 24);\n}\n\n// Encode the RGBA color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgba(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n a: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * a : a);\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n}\n\n// Encode the RGB color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgb(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n\n const i4 = index * 4;\n packedSplats[i4] =\n uR | (uG << 8) | (uB << 16) | (packedSplats[i4] & 0xff000000);\n}\n\n// Encode the opacity in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatOpacity(\n packedSplats: Uint32Array,\n index: number,\n opacity: number,\n) {\n const uA = floatToUint8(opacity);\n\n const i4 = index * 4;\n packedSplats[i4] = (packedSplats[i4] & 0x00ffffff) | (uA << 24);\n}\n\nconst packedCenter = new THREE.Vector3();\nconst packedScales = new THREE.Vector3();\nconst packedQuaternion = new THREE.Quaternion();\nconst packedColor = new THREE.Color();\nconst packedFields = {\n center: packedCenter,\n scales: packedScales,\n quaternion: packedQuaternion,\n color: packedColor,\n opacity: 0.0,\n};\n\n// Unpack all components of a PackedSplat from the packedSplats Uint32Array into\n// THREE.js vector objects. The returned objects will be reused each call.\nexport function unpackSplat(\n packedSplats: Uint32Array,\n index: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n\n const i4 = index * 4;\n const word0 = packedSplats[i4];\n const word1 = packedSplats[i4 + 1];\n const word2 = packedSplats[i4 + 2];\n const word3 = packedSplats[i4 + 3];\n\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n result.color.set(\n rgbMin + ((word0 & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 8) & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 16) & 0xff) / 255) * rgbRange,\n );\n result.opacity = ((word0 >>> 24) & 0xff) / 255;\n if (encoding?.lodOpacity) {\n result.opacity = 2.0 * result.opacity;\n }\n result.center.set(\n fromHalf(word1 & 0xffff),\n fromHalf((word1 >>> 16) & 0xffff),\n fromHalf(word2 & 0xffff),\n );\n\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n const uScalesX = word3 & 0xff;\n result.scales.x =\n uScalesX === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesX - 1) * lnScaleScale);\n const uScalesY = (word3 >>> 8) & 0xff;\n result.scales.y =\n uScalesY === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesY - 1) * lnScaleScale);\n const uScalesZ = (word3 >>> 16) & 0xff;\n result.scales.z =\n uScalesZ === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesZ - 1) * lnScaleScale);\n\n const uQuat = ((word2 >>> 16) & 0xffff) | ((word3 >>> 8) & 0xff0000);\n decodeQuatOctXy88R8(uQuat, result.quaternion);\n // decodeQuatXyz888(uQuat, result.quaternion);\n // decodeQuatEulerXyz888(uQuat, result.quaternion);\n\n return result;\n}\n\n// Compute a texture array size that is large enough to fit numSplats. The most\n// common 2D texture size in WebGL2 is 4096x4096 which only allows for 16M splats,\n// so Spark stores Gsplat data in a 2D texture array, which most platforms support\n// up to 2048x2048x2048 = 8G splats. Allocations that fit within a single 2D texture\n// array layer will be rounded up to fill an entire texture row. Once a texture\n// array layer is filled, the allocation will be rounded up to fill an entire layer.\n// This is done so the entire set of splats can be covered by min/max coords across\n// each dimension.\nexport function getTextureSize(numSplats: number): {\n width: number;\n height: number;\n depth: number;\n maxSplats: number;\n} {\n // Compute a texture array size that is large enough to fit numSplats.\n // The width is always 2048, the height sized to fit the splats but no larger than 2048.\n // The depth is the number of layers needed to fit the splats.\n // maxSplats is computed as the new total available splats that can be stored.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n const maxSplats = width * height * depth;\n return { width, height, depth, maxSplats };\n}\n\nexport function computeMaxSplats(numSplats: number): number {\n // Compute the size of a Gsplat array texture (2048x2048xD) that can fit\n // numSplats splats, and return the total number of splats that can be stored\n // in such a texture.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n return width * height * depth;\n}\n\n// Heuristic function to determine if we are running on a mobile device.\nexport function isMobile(): boolean {\n if (navigator.platform.toLowerCase().startsWith(\"win\")) {\n return false;\n }\n if (navigator.maxTouchPoints > 0) {\n // Touch-enabled device, assume it's mobile\n return true;\n }\n return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test(\n navigator.userAgent,\n );\n}\n\n// Heuristic function to determine if we are running on an Android device.\n// (does not include Oculus Quest)\nexport function isAndroid(): boolean {\n return (\n /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent)\n );\n}\n\n// Heuristic function to determine if we are running on an Oculus Quest device.\nexport function isOculus(): boolean {\n return !!navigator.xr && /Oculus/.test(navigator.userAgent);\n}\n\nexport function isQuest2() {\n return isOculus() && /Quest 2/.test(navigator.userAgent);\n}\n\nexport function isIos(): boolean {\n return /iPhone|iPad/.test(navigator.userAgent);\n}\n\nexport function isVisionPro(): boolean {\n return (\n !!navigator.xr &&\n isIos() &&\n /Safari/.test(navigator.userAgent) &&\n isMobile()\n );\n}\n\n// Take an array of RGBA8 encoded pixels and flip them vertically in-place.\n// This is useful for converting between top-left and bottom-left coordinate systems\n// in standard 2D images vs WebGL2.\nexport function flipPixels(\n pixels: Uint8Array,\n width: number,\n height: number,\n): Uint8Array {\n // Flips pixels vertically in-place, returns original array.\n const tempLine = new Uint8Array(width * 4);\n\n // Only need to process half the height since we're swapping\n for (let y = 0; y < height / 2; y++) {\n const topOffset = y * width * 4;\n const bottomOffset = (height - 1 - y) * width * 4;\n\n // Save top line to temp buffer\n tempLine.set(pixels.subarray(topOffset, topOffset + width * 4));\n // Move bottom line to top\n pixels.set(\n pixels.subarray(bottomOffset, bottomOffset + width * 4),\n topOffset,\n );\n // Move saved top line to bottom\n pixels.set(tempLine, bottomOffset);\n }\n return pixels;\n}\n\n// Utility to take an array of RGBA8 encoded pixels and convert them to a\n// PNG-encoded image data URL that can be downloaded to the client.\nexport function pixelsToPngUrl(\n pixels: Uint8Array,\n width: number,\n height: number,\n): string {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Can't get 2d context\");\n }\n const imageData = ctx.createImageData(width, height);\n imageData.data.set(pixels);\n ctx.putImageData(imageData, 0, 0);\n return canvas.toDataURL(\"image/png\");\n}\n\n// Utility to filter out an undefined values from an object.\nexport function omitUndefined(obj: T): Partial {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => value !== undefined),\n ) as Partial;\n}\n\n// \"Identity\" vertex shader that just passes through the position.\nexport const IDENT_VERTEX_SHADER = unindent(`\n precision highp float;\n\n in vec3 position;\n\n void main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n }\n`);\n\n// Returns the average position of an array of THREE.Vector3.\nexport function averagePositions(positions: THREE.Vector3[]): THREE.Vector3 {\n const sum = new THREE.Vector3();\n for (const position of positions) {\n sum.add(position);\n }\n return sum.divideScalar(positions.length);\n}\n\n// Returns an \"average\" of an array of THREE.Quaternion objects.\n// Note that this is not a spherical lerp between quaternions but\n// rather an arithmetic mean that is normalized to unit length.\nexport function averageQuaternions(\n quaternions: THREE.Quaternion[],\n): THREE.Quaternion {\n if (quaternions.length === 0) {\n return new THREE.Quaternion();\n }\n const sum = quaternions[0].clone();\n for (let i = 1; i < quaternions.length; i++) {\n if (quaternions[i].dot(quaternions[0]) < 0.0) {\n sum.x -= quaternions[i].x;\n sum.y -= quaternions[i].y;\n sum.z -= quaternions[i].z;\n sum.w -= quaternions[i].w;\n } else {\n sum.x += quaternions[i].x;\n sum.y += quaternions[i].y;\n sum.z += quaternions[i].z;\n sum.w += quaternions[i].w;\n }\n }\n return sum.normalize();\n}\n\n// Compare two coordinates given by matrix1 and matrix2, returning the distance\n// between their origins and the \"coincidence\" of their orientations, defined\n// as the dot product of their \"-z\" axes.\nexport function coinciDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n const direction1 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix1)\n .sub(origin1)\n .normalize();\n const direction2 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix2)\n .sub(origin2)\n .normalize();\n\n const distance = origin1.distanceTo(origin2);\n const coincidence = direction1.dot(direction2);\n return { distance, coincidence };\n}\n\n// Utility function that returns whether two coordinate system origins\n// given by matrix1 and matrix2 are within a certain maxDistance of each other.\nexport function withinDist({\n matrix1,\n matrix2,\n maxDistance,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n}): boolean {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n return origin1.distanceTo(origin2) <= maxDistance;\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined by a maxDistance and a minCoincidence.\nexport function withinCoinciDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoincidence,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoincidence?: number;\n}): boolean {\n const { distance, coincidence } = coinciDist(matrix1, matrix2);\n return (\n distance <= maxDistance &&\n (minCoincidence == null || coincidence >= minCoincidence)\n );\n}\n\n// Compare two coordinate systems given by matrix1 and matrix2, returning the\n// distance between their origins and the \"coorientation\" of their orientations,\n// define as the dot product of their quaternion transforms (flipping their\n// orientation to be on the same hemisphere if necessary).\nexport function coorientDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const [origin1, rotate1] = [new THREE.Vector3(), new THREE.Quaternion()];\n const [origin2, rotate2] = [new THREE.Vector3(), new THREE.Quaternion()];\n matrix1.decompose(origin1, rotate1, new THREE.Vector3());\n matrix2.decompose(origin2, rotate2, new THREE.Vector3());\n\n const distance = origin1.distanceTo(origin2);\n const coorient = Math.abs(rotate1.dot(rotate2));\n return { distance, coorient };\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined a maxDistance and a minCoorient.\nexport function withinCoorientDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoorient,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoorient?: number;\n}): boolean {\n const { distance, coorient } = coorientDist(matrix1, matrix2);\n return (\n distance <= maxDistance && (minCoorient == null || coorient >= minCoorient)\n );\n}\n\n// Like Math.sign but with a custom epsilon value.\nexport function epsilonSign(value: number, epsilon = 0.001): number {\n if (Math.abs(value) < epsilon) {\n return 0;\n }\n return Math.sign(value);\n}\n\n// Encode a THREE.Quaternion into a 24-bit integer, converting the xyz coordinates\n// to signed 8-bit integers (w can be derived from xyz), and flipping the sign\n// of the quaternion if necessary to make this possible (q == -q for quaternions).\nexport function encodeQuatXyz888(q: THREE.Quaternion): number {\n const negQuat = q.w < 0.0;\n const iQuatX = floatToSint8(negQuat ? -q.x : q.x);\n const iQuatY = floatToSint8(negQuat ? -q.y : q.y);\n const iQuatZ = floatToSint8(negQuat ? -q.z : q.z);\n const uQuatX = iQuatX & 0xff;\n const uQuatY = iQuatY & 0xff;\n const uQuatZ = iQuatZ & 0xff;\n return uQuatX | (uQuatY << 8) | (uQuatZ << 16);\n}\n\n// Decode a 24-bit integer of the quaternion's xyz coordinates into a THREE.Quaternion.\nexport function decodeQuatXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n const iQuatX = (encoded << 24) >> 24;\n const iQuatY = (encoded << 16) >> 24;\n const iQuatZ = (encoded << 8) >> 24;\n out.set(iQuatX / 127.0, iQuatY / 127.0, iQuatZ / 127.0, 0.0);\n const dotSelf = out.x * out.x + out.y * out.y + out.z * out.z;\n out.w = Math.sqrt(Math.max(0.0, 1.0 - dotSelf));\n return out;\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempNormalizedQuaternion = new THREE.Quaternion();\nconst tempAxis = new THREE.Vector3();\n\n/**\n * Encodes a THREE.Quaternion into a 24‐bit integer.\n *\n * Bit layout (LSB → MSB):\n * - Bits 0–7: quantized U (8 bits)\n * - Bits 8–15: quantized V (8 bits)\n * - Bits 16–23: quantized angle θ (8 bits) from [0,π]\n *\n * This version uses folded octahedral mapping (all inline).\n */\nexport function encodeQuatOctXy88R8(q: THREE.Quaternion): number {\n // Force the minimal representation (q.w >= 0)\n const qnorm = tempNormalizedQuaternion.copy(q).normalize();\n if (qnorm.w < 0) {\n qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w);\n }\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnorm.w);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(\n qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z,\n );\n const axis =\n xyz_norm < 1e-6\n ? tempAxis.set(1, 0, 0)\n : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm);\n // const foldAxis = (axis.z < 0);\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z);\n let p_x = axis.x / sum;\n let p_y = axis.y / sum;\n // Fold the lower hemisphere.\n if (axis.z < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 7 bits (0..127)\n const quantU = Math.round(u_f * 255);\n const quantV = Math.round(v_f * 255);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 10 bits (0..1023) ---\n const angleInt = Math.round(theta * (255 / Math.PI));\n\n // Pack into 24 bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16) | (quantV << 8) | quantU;\n}\n\n/**\n * Decodes a 24‐bit encoded quaternion (packed in a number) back to a THREE.Quaternion.\n *\n * Assumes the same bit layout as in encodeQuatOctXy88R8.\n */\nexport function decodeQuatOctXy88R8(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 8‐bit quantU and quantV, and 8‐bit angleInt.\n const quantU = encoded & 0xff; // bits 0–7\n const quantV = (encoded >>> 8) & 0xff; // bits 8–15\n const angleInt = (encoded >>> 16) & 0xff; // bits 16–23\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 255;\n const v_f = quantV / 255;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axis = tempAxis.set(f_x, f_y, f_z).normalize();\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 255) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axis.x * s, axis.y * s, axis.z * s, w);\n return out;\n}\n\n/**\n * Encodes a THREE.Quaternion into a 24‑bit unsigned integer\n * by converting it to Euler angles (roll, pitch, yaw).\n * The Euler angles are assumed to be in radians in the range [-π, π].\n * Each angle is normalized to [0,1] and quantized to 8 bits.\n * Bit layout (LSB→MSB):\n * - Bits 0–7: roll (quantized)\n * - Bits 8–15: pitch (quantized)\n * - Bits 16–23: yaw (quantized)\n */\nexport function encodeQuatEulerXyz888(q: THREE.Quaternion): number {\n // Normalize quaternion to ensure a proper rotation.\n const qNorm = q.clone().normalize();\n\n // Tait–Bryan angles (roll, pitch, yaw)\n const sinr_cosp = 2.0 * (qNorm.w * qNorm.x + qNorm.y * qNorm.z);\n const cosr_cosp = 1.0 - 2.0 * (qNorm.x * qNorm.x + qNorm.y * qNorm.y);\n const roll = Math.atan2(sinr_cosp, cosr_cosp);\n\n const sinp = 2.0 * (qNorm.w * qNorm.y - qNorm.z * qNorm.x);\n const pitch =\n Math.abs(sinp) >= 1.0 ? Math.sign(sinp) * (Math.PI / 2) : Math.asin(sinp);\n\n const siny_cosp = 2.0 * (qNorm.w * qNorm.z + qNorm.x * qNorm.y);\n const cosy_cosp = 1.0 - 2.0 * (qNorm.y * qNorm.y + qNorm.z * qNorm.z);\n const yaw = Math.atan2(siny_cosp, cosy_cosp);\n\n // Map each angle from [-π, π] to [0, 1]\n const normRoll = (roll + Math.PI) / (2 * Math.PI);\n const normPitch = (pitch + Math.PI) / (2 * Math.PI);\n const normYaw = (yaw + Math.PI) / (2 * Math.PI);\n\n // Quantize to 8 bits (0 to 255)\n const rollQ = Math.round(normRoll * 255);\n const pitchQ = Math.round(normPitch * 255);\n const yawQ = Math.round(normYaw * 255);\n\n // Pack into a 24-bit unsigned integer:\n // Bits 0–7: rollQ, Bits 8–15: pitchQ, Bits 16–23: yawQ.\n return (yawQ << 16) | (pitchQ << 8) | rollQ;\n}\n\n/**\n * Decodes a 24‑bit unsigned integer into a THREE.Quaternion\n * by unpacking three 8‑bit values (roll, pitch, yaw) in the range [0,255]\n * and then converting them back to Euler angles in [-π, π] and to a quaternion.\n */\nexport function decodeQuatEulerXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Unpack 8‑bit values.\n const rollQ = encoded & 0xff;\n const pitchQ = (encoded >>> 8) & 0xff;\n const yawQ = (encoded >>> 16) & 0xff;\n\n // Convert quantized values back to normalized [0,1] values.\n const normRoll = rollQ / 255;\n const normPitch = pitchQ / 255;\n const normYaw = yawQ / 255;\n\n // Map from [0,1] to [-π, π]\n const roll = normRoll * (2 * Math.PI) - Math.PI;\n const pitch = normPitch * (2 * Math.PI) - Math.PI;\n const yaw = normYaw * (2 * Math.PI) - Math.PI;\n\n // Convert Euler angles to quaternion (Tait–Bryan: roll, pitch, yaw).\n const cr = Math.cos(roll * 0.5);\n const sr = Math.sin(roll * 0.5);\n const cp = Math.cos(pitch * 0.5);\n const sp = Math.sin(pitch * 0.5);\n const cy = Math.cos(yaw * 0.5);\n const sy = Math.sin(yaw * 0.5);\n\n out.w = cr * cp * cy + sr * sp * sy;\n out.x = sr * cp * cy - cr * sp * sy;\n out.y = cr * sp * cy + sr * cp * sy;\n out.z = cr * cp * sy - sr * sp * cy;\n out.normalize();\n return out;\n}\n\nexport function encodeQuatOctXy1010R12(\n qx: number,\n qy: number,\n qz: number,\n qw: number,\n): number {\n const qlen = Math.sqrt(qx * qx + qy * qy + qz * qz + qw * qw);\n // Force the minimal representation (q.w >= 0)\n const qnx = (qw < 0 ? -qx : qx) / qlen;\n const qny = (qw < 0 ? -qy : qy) / qlen;\n const qnz = (qw < 0 ? -qz : qz) / qlen;\n const qnw = (qw < 0 ? -qw : qw) / qlen;\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnw);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(qnx * qnx + qny * qny + qnz * qnz);\n const axisX = xyz_norm < 1e-6 ? 1 : qnx / xyz_norm;\n const axisY = xyz_norm < 1e-6 ? 0 : qny / xyz_norm;\n const axisZ = xyz_norm < 1e-6 ? 0 : qnz / xyz_norm;\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axisX) + Math.abs(axisY) + Math.abs(axisZ);\n let p_x = axisX / sum;\n let p_y = axisY / sum;\n // Fold the lower hemisphere.\n if (axisZ < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 10 bits (0..1023)\n const quantU = Math.round(u_f * 1023);\n const quantV = Math.round(v_f * 1023);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 12 bits (0..4095) ---\n const angleInt = Math.round(theta * (4095 / Math.PI));\n\n // Pack into 32 bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20) | (quantV << 10) | quantU;\n}\n\nexport function decodeQuatOctXy1010R12(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 10‐bit quantU and quantV, and 12‐bit angleInt.\n const quantU = encoded & 0x3ff; // bits 0–9\n const quantV = (encoded >>> 10) & 0x3ff; // bits 10–19\n const angleInt = (encoded >>> 20) & 0xfff; // bits 20–31\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 1023;\n const v_f = quantV / 1023;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axisLen = Math.sqrt(f_x * f_x + f_y * f_y + f_z * f_z);\n const axisX = axisLen < 1e-6 ? 0 : f_x / axisLen;\n const axisY = axisLen < 1e-6 ? 0 : f_y / axisLen;\n const axisZ = axisLen < 1e-6 ? 0 : f_z / axisLen;\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 4095) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axisX * s, axisY * s, axisZ * s, w);\n return out;\n}\n\n// Pack four signed 8-bit values into a single uint32.\nfunction packSint8Bytes(\n b0: number,\n b1: number,\n b2: number,\n b3: number,\n): number {\n const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127)));\n const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127)));\n const clampedB2 = Math.round(Math.max(-127, Math.min(127, b2 * 127)));\n const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127)));\n return (\n (clampedB0 & 0xff) |\n ((clampedB1 & 0xff) << 8) |\n ((clampedB2 & 0xff) << 16) |\n ((clampedB3 & 0xff) << 24)\n );\n}\n\n// Encode an array of 9 signed RGB SH1 coefficients (clamped to [-1,1]) into\n// a pair of uint32 values, where each coefficient is stored as a sint7\nexport function encodeSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n encoding?: {\n sh1Max?: number;\n },\n) {\n const sh1Max = encoding?.sh1Max ?? 1;\n const sh1Scale = 63 / sh1Max;\n\n // Pack sint7 values into 2 x uint32\n const base = index * 2;\n for (let i = 0; i < 9; ++i) {\n const s = sh1Rgb[i] * sh1Scale;\n const value = Math.round(Math.max(-63, Math.min(63, s))) & 0x7f;\n const bitStart = i * 7;\n const bitEnd = bitStart + 7;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh1Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh1Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\n// Encode an array of 15 signed RGB SH2 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint8.\nexport function encodeSh2Rgb(\n sh2Array: Uint32Array,\n index: number,\n sh2Rgb: Float32Array,\n encoding?: {\n sh2Max?: number;\n },\n) {\n const sh2Max = encoding?.sh2Max ?? 1;\n const sh2Scale = 1 / sh2Max;\n\n // Pack sint8 values into 4 x uint32\n sh2Array[index * 4 + 0] = packSint8Bytes(\n sh2Rgb[0] * sh2Scale,\n sh2Rgb[1] * sh2Scale,\n sh2Rgb[2] * sh2Scale,\n sh2Rgb[3] * sh2Scale,\n );\n sh2Array[index * 4 + 1] = packSint8Bytes(\n sh2Rgb[4] * sh2Scale,\n sh2Rgb[5] * sh2Scale,\n sh2Rgb[6] * sh2Scale,\n sh2Rgb[7] * sh2Scale,\n );\n sh2Array[index * 4 + 2] = packSint8Bytes(\n sh2Rgb[8] * sh2Scale,\n sh2Rgb[9] * sh2Scale,\n sh2Rgb[10] * sh2Scale,\n sh2Rgb[11] * sh2Scale,\n );\n sh2Array[index * 4 + 3] = packSint8Bytes(\n sh2Rgb[12] * sh2Scale,\n sh2Rgb[13] * sh2Scale,\n sh2Rgb[14] * sh2Scale,\n 0,\n );\n}\n\n// Encode an array of 21 signed RGB SH3 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint6.\nexport function encodeSh3Rgb(\n sh3Array: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n encoding?: {\n sh3Max?: number;\n },\n) {\n const sh3Max = encoding?.sh3Max ?? 1;\n const sh3Scale = 31 / sh3Max;\n\n // Pack sint6 values into 4 x uint32\n const base = index * 4;\n for (let i = 0; i < 21; ++i) {\n const s = sh3Rgb[i] * sh3Scale;\n const value = Math.round(Math.max(-31, Math.min(31, s))) & 0x3f;\n const bitStart = i * 6;\n const bitEnd = bitStart + 6;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh3Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh3Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\nexport function encodeExtRgb(r: number, g: number, b: number): number {\n const ar = Math.abs(r);\n const ag = Math.abs(g);\n const ab = Math.abs(b);\n const maxAbs = Math.max(ar, ag, ab);\n const base = Math.floor(Math.log2(maxAbs));\n const biasedBase = Math.max(0, Math.min(31, base + 15));\n const divisor = 2 ** (biasedBase - 15) / 255;\n const uR = Math.round(Math.max(0, Math.min(255, ar / divisor)));\n const uG = Math.round(Math.max(0, Math.min(255, ag / divisor)));\n const uB = Math.round(Math.max(0, Math.min(255, ab / divisor)));\n const expSigns =\n (biasedBase << 3) |\n ((r < 0 ? 0x1 : 0) | (g < 0 ? 0x2 : 0) | (b < 0 ? 0x4 : 0));\n return uR | (uG << 8) | (uB << 16) | (expSigns << 24);\n}\n\nexport function decodeExtRgb(encoded: number): THREE.Color {\n const color = packedFields.color;\n const biasedBase = (encoded >>> 27) & 0x1f;\n const divisor = 2 ** (biasedBase - 15) / 255;\n const r = (encoded & 0xff) * divisor;\n const g = ((encoded >>> 8) & 0xff) * divisor;\n const b = ((encoded >>> 16) & 0xff) * divisor;\n color.r = encoded & 0x1000000 ? -r : r;\n color.g = encoded & 0x2000000 ? -g : g;\n color.b = encoded & 0x4000000 ? -b : b;\n return color;\n}\n\nexport function encodeExtSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n}\n\nexport function encodeExtSh12Rgb(\n sh1Array: Uint32Array,\n sh2Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n sh2Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n sh1Array[i4 + 3] = encodeExtRgb(sh2Rgb[0], sh2Rgb[1], sh2Rgb[2]);\n for (let k = 1; k < 5; ++k) {\n const k5 = k * 5;\n sh2Array[i4 + (k - 1)] = encodeExtRgb(\n sh2Rgb[k5],\n sh2Rgb[k5 + 1],\n sh2Rgb[k5 + 2],\n );\n }\n}\n\nexport function encodeExt3Rgb(\n sh3ArrayA: Uint32Array,\n sh3ArrayB: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 4; ++k) {\n const k3 = k * 3;\n sh3ArrayA[i4 + k] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n for (let k = 4; k < 7; ++k) {\n const k3 = k * 3;\n sh3ArrayB[i4 + (k - 4)] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n}\n\n// Partially decompress a gzip-encoded Uint8Array, returning a Uint8Array of\n// the specified numBytes from the start of the file.\nexport function decompressPartialGzip(\n fileBytes: Uint8Array,\n numBytes: number,\n): Uint8Array {\n const chunks: Uint8Array[] = [];\n let totalBytes = 0;\n let result: Uint8Array | null = null;\n\n const gunzip = new Gunzip((data, final) => {\n chunks.push(data);\n totalBytes += data.length;\n if (final || totalBytes >= numBytes) {\n const allBytes = new Uint8Array(totalBytes);\n let offset = 0;\n for (const chunk of chunks) {\n allBytes.set(chunk, offset);\n offset += chunk.length;\n }\n result = allBytes.slice(0, numBytes);\n }\n });\n\n const CHUNK_SIZE = 1024;\n let offset = 0;\n while (result == null && offset < fileBytes.length) {\n const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE);\n gunzip.push(chunk, false);\n offset += CHUNK_SIZE;\n }\n\n if (result == null) {\n gunzip.push(new Uint8Array(), true);\n if (result == null) {\n throw new Error(\"Failed to decompress partial gzip\");\n }\n }\n return result;\n}\n\nexport class GunzipReader {\n fileBytes: Uint8Array;\n chunkBytes: number;\n\n chunks: Uint8Array[];\n totalBytes: number;\n reader: ReadableStreamDefaultReader;\n\n constructor({\n fileBytes,\n chunkBytes = 64 * 1024,\n }: { fileBytes: Uint8Array; chunkBytes?: number }) {\n this.fileBytes = fileBytes;\n this.chunkBytes = chunkBytes;\n this.chunks = [];\n this.totalBytes = 0;\n\n const ds = new DecompressionStream(\"gzip\");\n const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds);\n this.reader = decompressionStream.getReader();\n }\n\n async read(numBytes: number): Promise {\n while (this.totalBytes < numBytes) {\n const { value: chunk, done: readerDone } = await this.reader.read();\n if (readerDone) {\n break;\n }\n\n this.chunks.push(chunk);\n this.totalBytes += chunk.length;\n }\n\n if (this.totalBytes < numBytes) {\n throw new Error(\n `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}`,\n );\n }\n\n const allBytes = new Uint8Array(this.totalBytes);\n let outOffset = 0;\n for (const chunk of this.chunks) {\n allBytes.set(chunk, outOffset);\n outOffset += chunk.length;\n }\n\n const result = allBytes.subarray(0, numBytes);\n this.chunks = [allBytes.subarray(numBytes)];\n this.totalBytes -= numBytes;\n return result;\n }\n}\n\nexport function uploadU32DataTextureRows(\n renderer: THREE.WebGLRenderer,\n texture: THREE.Texture,\n width: number,\n rows: number,\n data: Uint32Array,\n) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n\n const props = renderer.properties.get(texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props?.__webglTexture;\n if (!glTexture) {\n throw new Error(\"texture not found\");\n }\n // Note: instead of saving and restoring the pixelStorei parameters\n // renderer.state.pixelStorei can be used with Three.js >= r184\n const currentFlipY = gl.getParameter(gl.UNPACK_FLIP_Y_WEBGL);\n const currentPremultiply = gl.getParameter(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL);\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n width,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n data,\n );\n renderer.state.unbindTexture();\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, currentFlipY);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, currentPremultiply);\n}\n","import * as THREE from \"three\";\n\nimport { IDENT_VERTEX_SHADER } from \"../utils\";\nimport { Compilation, type Dyno, type IOTypes } from \"./base\";\n\nexport class DynoProgram {\n graph: Dyno;\n template: DynoProgramTemplate;\n inputs: Record;\n outputs: Record;\n shader: string;\n uniforms: Record;\n updaters: (() => void)[];\n\n constructor({\n graph,\n inputs,\n outputs,\n template,\n consoleLog,\n }: {\n graph: Dyno;\n inputs?: Record;\n outputs?: Record;\n template: DynoProgramTemplate;\n consoleLog?: boolean;\n }) {\n this.graph = graph;\n this.template = template;\n this.inputs = inputs ?? {};\n this.outputs = outputs ?? {};\n\n const compile = new Compilation({ indent: this.template.indent });\n for (const key in this.outputs) {\n if (this.outputs[key]) {\n compile.declares.add(this.outputs[key]);\n }\n }\n const statements = graph.compile({\n inputs: this.inputs,\n outputs: this.outputs,\n compile,\n });\n\n this.shader = template.generate({ globals: compile.globals, statements });\n this.uniforms = compile.uniforms;\n this.updaters = compile.updaters;\n if (consoleLog) {\n console.log(\"*** COMPILED SHADER\", this.shader);\n console.log(\"*** UNIFORMS\", this.uniforms);\n }\n }\n\n prepareMaterial(): THREE.RawShaderMaterial {\n return getMaterial(this);\n }\n\n update() {\n for (const updater of this.updaters) {\n updater();\n }\n }\n}\n\nexport class DynoProgramTemplate {\n before: string;\n between: string;\n after: string;\n indent: string;\n\n constructor(template: string) {\n const globals = template.match(/^([ \\t]*)\\{\\{\\s*GLOBALS\\s*\\}\\}/m);\n const statements = template.match(/^([ \\t]*)\\{\\{\\s*STATEMENTS\\s*\\}\\}/m);\n if (!globals || !statements) {\n throw new Error(\n \"Template must contain {{ GLOBALS }} and {{ STATEMENTS }}\",\n );\n }\n\n this.before = template.substring(0, globals.index);\n this.between = template.substring(\n (globals.index as number) + globals[0].length,\n statements.index,\n );\n this.after = template.substring(\n (statements.index as number) + statements[0].length,\n );\n this.indent = statements[1];\n }\n\n generate({\n globals,\n statements,\n }: { globals: Set; statements: string[] }): string {\n return (\n this.before +\n Array.from(globals).join(\"\\n\\n\") +\n this.between +\n statements.map((s) => this.indent + s).join(\"\\n\") +\n this.after\n );\n }\n}\n\nconst programMaterial = new WeakMap();\n\nfunction getMaterial(program: DynoProgram): THREE.RawShaderMaterial {\n let material = programMaterial.get(program);\n if (material) {\n return material;\n }\n\n material = new THREE.RawShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: IDENT_VERTEX_SHADER,\n fragmentShader: program.shader,\n uniforms: program.uniforms,\n });\n programMaterial.set(program, material);\n return material;\n}\n","import {\n type AllFloatTypes,\n type AllIntTypes,\n type AllSignedTypes,\n type AllValueTypes,\n type BaseType,\n type BoolTypes,\n type FloatTypes,\n type IntTypes,\n type SignedTypes,\n type UintTypes,\n type ValueTypes,\n isAllFloatType,\n isFloatType,\n isIntType,\n isMat2,\n isMat3,\n isMat4,\n isUintType,\n} from \"./types\";\n\nexport type AddOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : never);\n\nexport type SubOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type MulOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : A extends IntTypes\n ? B extends A\n ? A\n : never\n : B extends IntTypes\n ? A extends B\n ? A\n : never\n : A extends UintTypes\n ? B extends A\n ? A\n : never\n : B extends UintTypes\n ? A extends B\n ? A\n : never\n : // Vector * Matrix/Vector\n A extends \"vec2\"\n ? B extends \"vec2\" | \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : B extends \"mat3x2\"\n ? \"vec3\"\n : B extends \"mat4x2\"\n ? \"vec4\"\n : never\n : A extends \"vec3\"\n ? B extends \"mat2x3\"\n ? \"vec2\"\n : B extends \"vec3\" | \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : B extends \"mat4x3\"\n ? \"vec4\"\n : never\n : A extends \"vec4\"\n ? B extends \"mat2x4\"\n ? \"vec2\"\n : B extends \"mat3x4\"\n ? \"vec3\"\n : B extends \"vec4\" | \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Vector\n B extends \"vec2\"\n ? A extends \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : A extends \"mat2x3\"\n ? \"vec3\"\n : A extends \"mat2x4\"\n ? \"vec4\"\n : never\n : B extends \"vec3\"\n ? A extends \"mat3x2\"\n ? \"vec2\"\n : A extends \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : A extends \"mat3x4\"\n ? \"vec4\"\n : never\n : B extends \"vec4\"\n ? A extends \"mat4x2\"\n ? \"vec2\"\n : A extends \"mat4x3\"\n ? \"vec3\"\n : A extends \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n A extends \"mat2\" | \"mat2x2\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2\"\n : B extends \"mat3x2\"\n ? \"mat3x2\"\n : B extends \"mat4x2\"\n ? \"mat4x2\"\n : never\n : A extends \"mat2x3\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x3\"\n : B extends \"mat3x2\"\n ? \"mat3\"\n : B extends \"mat4x2\"\n ? \"mat4x3\"\n : never\n : A extends \"mat2x4\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x4\"\n : B extends \"mat3x2\"\n ? \"mat3x4\"\n : B extends \"mat4x2\"\n ? \"mat4\"\n : never\n : A extends \"mat3x2\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x2\"\n : B extends \"mat4x3\"\n ? \"mat4x2\"\n : never\n : A extends \"mat3\" | \"mat3x3\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x3\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3\"\n : B extends \"mat4x3\"\n ? \"mat4x3\"\n : never\n : A extends \"mat3x4\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x4\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x4\"\n : B extends \"mat4x3\"\n ? \"mat4\"\n : never\n : A extends \"mat4x2\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2\"\n : B extends \"mat3x4\"\n ? \"mat3x2\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x2\"\n : never\n : A extends \"mat4x3\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x3\"\n : B extends \"mat3x4\"\n ? \"mat3\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x3\"\n : never\n : A extends \"mat4\" | \"mat4x4\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x4\"\n : B extends \"mat3x4\"\n ? \"mat3x4\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4\"\n : never\n : never);\n\nexport type DivOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type IModOutput<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\n\nexport type ModOutput = BaseType &\n (A extends B ? A : B extends \"float\" ? A : never);\n\nexport type PowOutput = BaseType &\n (A extends B ? A : never);\n\nexport type MinOutput = BaseType &\n (A extends B\n ? A\n : B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MaxOutput = MinOutput<\n A,\n B\n>;\nexport type ClampOutput = BaseType &\n (B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MixOutput<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> = BaseType &\n (T extends A\n ? A\n : T extends \"float\"\n ? A\n : T extends \"bool\"\n ? A extends \"float\"\n ? A\n : never\n : T extends \"bvec2\"\n ? A extends \"vec2\"\n ? A\n : never\n : T extends \"bvec3\"\n ? A extends \"vec3\"\n ? A\n : never\n : T extends \"bvec4\"\n ? A extends \"vec4\"\n ? A\n : never\n : never);\nexport type StepOutput = BaseType &\n (A extends B ? B : A extends \"float\" ? B : never);\nexport type SmoothstepOutput<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n> = BaseType &\n (A extends B ? (A extends C ? C : A extends \"float\" ? C : never) : never);\n\nexport type IsNanOutput = BaseType &\n (A extends \"float\"\n ? \"bool\"\n : A extends \"vec2\"\n ? \"bvec2\"\n : A extends \"vec3\"\n ? \"bvec3\"\n : A extends \"vec4\"\n ? \"bvec4\"\n : never);\nexport type IsInfOutput = IsNanOutput;\n\n// // Run-time type helper functions\n\nexport function addOutputType(\n a: A,\n b: B,\n operation = \"add\",\n): AddOutput {\n const error = () => {\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n };\n // @ts-ignore\n if (a === b) return a as AddOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as AddOutput;\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return a as AddOutput;\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return b as AddOutput;\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return a as AddOutput;\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return b as AddOutput;\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return a as AddOutput;\n error();\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function subOutputType(\n a: A,\n b: B,\n): SubOutput {\n return addOutputType(a, b, \"sub\");\n}\n\nexport function mulOutputType(\n a: A,\n b: B,\n): MulOutput {\n const error = () => {\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n };\n const result = (value: unknown) => value as MulOutput;\n if (a === \"int\") {\n if (isIntType(b)) return result(b);\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return result(a);\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return result(b);\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return result(a);\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return result(b);\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return result(a);\n error();\n }\n if (isIntType(a) || isUintType(a) || isIntType(b) || isUintType(b)) {\n // @ts-ignore\n if (a === b) return result(a);\n error();\n }\n // Vector * Matrix/Vector\n if (a === \"vec2\") {\n if (b === \"vec2\" || isMat2(b)) return result(\"vec2\");\n if (b === \"mat3x2\") return result(\"vec3\");\n if (b === \"mat4x2\") return result(\"vec4\");\n error();\n }\n if (a === \"vec3\") {\n if (b === \"mat2x3\") return result(\"vec2\");\n if (b === \"vec3\" || isMat3(b)) return result(\"vec3\");\n if (b === \"mat4x3\") return result(\"vec4\");\n error();\n }\n if (a === \"vec4\") {\n if (b === \"mat2x4\") return result(\"vec2\");\n if (b === \"mat3x4\") return result(\"vec3\");\n if (b === \"vec4\" || isMat4(b)) return result(\"vec4\");\n error();\n }\n // Matrix * Vector\n if (b === \"vec2\") {\n if (isMat2(a)) return result(\"vec2\");\n if (a === \"mat2x3\") return result(\"vec3\");\n if (a === \"mat2x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec3\") {\n if (a === \"mat3x2\") return result(\"vec2\");\n if (isMat3(a)) return result(\"vec3\");\n if (a === \"mat3x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec4\") {\n if (a === \"mat4x2\") return result(\"vec2\");\n if (a === \"mat4x3\") return result(\"vec3\");\n if (isMat4(a)) return result(\"vec4\");\n error();\n }\n // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n if (isMat2(a)) {\n if (isMat2(b)) return result(\"mat2\");\n if (b === \"mat3x2\") return result(\"mat3x2\");\n if (b === \"mat4x2\") return result(\"mat4x2\");\n error();\n }\n if (a === \"mat2x3\") {\n if (isMat2(b)) return result(\"mat2x3\");\n if (b === \"mat3x2\") return result(\"mat3\");\n if (b === \"mat4x2\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat2x4\") {\n if (isMat2(b)) return result(\"mat2x4\");\n if (b === \"mat3x2\") return result(\"mat3x4\");\n if (b === \"mat4x2\") return result(\"mat4\");\n error();\n }\n if (a === \"mat3x2\") {\n if (b === \"mat2x3\") return result(\"mat2\");\n if (isMat3(b)) return result(\"mat3x2\");\n if (b === \"mat4x3\") return result(\"mat4x2\");\n error();\n }\n if (isMat3(a)) {\n if (b === \"mat2x3\") return result(\"mat2x3\");\n if (isMat3(b)) return result(\"mat3\");\n if (b === \"mat4x3\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat3x4\") {\n if (b === \"mat2x3\") return result(\"mat2x4\");\n if (isMat3(b)) return result(\"mat3x4\");\n if (b === \"mat4x3\") return result(\"mat4\");\n error();\n }\n if (a === \"mat4x2\") {\n if (b === \"mat2x4\") return result(\"mat2\");\n if (b === \"mat3x4\") return result(\"mat3x2\");\n if (isMat4(b)) return result(\"mat4x2\");\n error();\n }\n if (a === \"mat4x3\") {\n if (b === \"mat2x4\") return result(\"mat2x3\");\n if (b === \"mat3x4\") return result(\"mat3\");\n if (isMat4(b)) return result(\"mat4x3\");\n error();\n }\n if (isMat4(a)) {\n if (b === \"mat2x4\") return result(\"mat2x4\");\n if (b === \"mat3x4\") return result(\"mat3x4\");\n if (isMat4(b)) return result(\"mat4\");\n error();\n }\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n}\n\nexport function divOutputType(\n a: A,\n b: B,\n): DivOutput {\n return addOutputType(a, b, \"div\");\n}\n\nexport function imodOutputType(\n a: A,\n b: B,\n): IModOutput {\n // @ts-ignore\n if (a === b) return a as IModOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as IModOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as IModOutput;\n } else if (a === \"uint\") {\n if (isUintType(b)) return b as IModOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as IModOutput;\n }\n throw new Error(`Invalid imod types: ${a}, ${b}`);\n}\n\nexport function modOutputType(\n a: A,\n b: B,\n): ModOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return a as ModOutput;\n throw new Error(`Invalid mod types: ${a}, ${b}`);\n}\n\nexport function modfOutputType(a: A): A {\n return a;\n}\n\nexport function negOutputType(a: A): A {\n return a;\n}\n\nexport function absOutputType(a: A): A {\n return a;\n}\n\nexport function signOutputType(a: A): A {\n return a;\n}\n\nexport function floorOutputType(a: A): A {\n return a;\n}\n\nexport function ceilOutputType(a: A): A {\n return a;\n}\n\nexport function truncOutputType(a: A): A {\n return a;\n}\n\nexport function roundOutputType(a: A): A {\n return a;\n}\n\nexport function fractOutputType(a: A): A {\n return a;\n}\n\nexport function powOutputType(a: A): A {\n return a;\n}\n\nexport function expOutputType(a: A): A {\n return a;\n}\n\nexport function exp2OutputType(a: A): A {\n return a;\n}\n\nexport function logOutputType(a: A): A {\n return a;\n}\n\nexport function log2OutputType(a: A): A {\n return a;\n}\n\nexport function sqrOutputType(a: A): A {\n return a;\n}\n\nexport function sqrtOutputType(a: A): A {\n return a;\n}\n\nexport function inversesqrtOutputType(a: A): A {\n return a;\n}\n\nexport function minOutputType(\n a: A,\n b: B,\n operation = \"min\",\n): MinOutput {\n // @ts-ignore\n if (a === b) return a as MinOutput;\n if (b === \"float\") {\n if (isFloatType(a)) return a as MinOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as MinOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as MinOutput;\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function maxOutputType(\n a: A,\n b: B,\n): MaxOutput {\n return minOutputType(a, b, \"max\");\n}\n\nexport function clampOutputType(\n a: A,\n b: B,\n _c: B,\n): ClampOutput {\n if (b === \"float\") {\n if (isFloatType(a)) return a as ClampOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as ClampOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as ClampOutput;\n }\n throw new Error(`Invalid clamp types: ${a}, ${b}`);\n}\n\nexport function mixOutputType<\n A extends FloatTypes,\n C extends FloatTypes | BoolTypes,\n>(a: A, b: A, c: C): MixOutput {\n // @ts-ignore\n if (c === a) return a as MixOutput;\n if (c === \"float\") return a as MixOutput;\n if (c === \"bool\" && a === \"float\") return a as MixOutput;\n if (c === \"bvec2\" && a === \"vec2\") return a as MixOutput;\n if (c === \"bvec3\" && a === \"vec3\") return a as MixOutput;\n if (c === \"bvec4\" && a === \"vec4\") return a as MixOutput;\n throw new Error(`Invalid mix types: ${a}, ${b}, ${c}`);\n}\n\nexport function stepOutputType(\n a: A,\n b: B,\n): StepOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return b as StepOutput;\n throw new Error(`Invalid step types: ${a}, ${b}`);\n}\n\nexport function smoothstepOutputType<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n>(a: A, b: B, c: C): SmoothstepOutput {\n // @ts-ignore\n if (a === b) {\n if (a === c || a === \"float\") return c as SmoothstepOutput;\n }\n throw new Error(`Invalid smoothstep types: ${a}, ${b}, ${c}`);\n}\n\nexport function isNanOutputType(\n a: A,\n operation = \"isNan\",\n): IsNanOutput {\n if (a === \"float\") return \"bool\" as IsNanOutput;\n if (a === \"vec2\") return \"bvec2\" as IsNanOutput;\n if (a === \"vec3\") return \"bvec3\" as IsNanOutput;\n if (a === \"vec4\") return \"bvec4\" as IsNanOutput;\n throw new Error(`Invalid ${operation} types: ${a}`);\n}\n\nexport function isInfOutputType(a: A): IsInfOutput {\n return isNanOutputType(a, \"isInf\");\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AddOutput,\n type ClampOutput,\n type DivOutput,\n type IModOutput,\n type IsInfOutput,\n type IsNanOutput,\n type MaxOutput,\n type MinOutput,\n type MixOutput,\n type ModOutput,\n type MulOutput,\n type SmoothstepOutput,\n type StepOutput,\n type SubOutput,\n absOutputType,\n addOutputType,\n ceilOutputType,\n clampOutputType,\n divOutputType,\n exp2OutputType,\n expOutputType,\n floorOutputType,\n fractOutputType,\n imodOutputType,\n inversesqrtOutputType,\n isInfOutputType,\n isNanOutputType,\n log2OutputType,\n logOutputType,\n maxOutputType,\n minOutputType,\n mixOutputType,\n modOutputType,\n modfOutputType,\n mulOutputType,\n negOutputType,\n powOutputType,\n roundOutputType,\n signOutputType,\n smoothstepOutputType,\n sqrOutputType,\n sqrtOutputType,\n stepOutputType,\n subOutputType,\n truncOutputType,\n} from \"./mathTypes\";\nimport type {\n AllIntTypes,\n AllSignedTypes,\n AllValueTypes,\n BoolTypes,\n FloatTypes,\n SignedTypes,\n ValueTypes,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const add = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Add({ a, b });\nexport const sub = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Sub({ a, b });\nexport const mul = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mul({ a, b });\nexport const div = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Div({ a, b });\nexport const imod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new IMod({ a, b });\nexport const mod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mod({ a, b });\nexport const modf = (a: DynoVal) =>\n new Modf({ a }).outputs;\n\nexport const neg = (a: DynoVal): DynoVal =>\n new Neg({ a });\nexport const abs = (a: DynoVal): DynoVal =>\n new Abs({ a });\nexport const sign = (a: DynoVal): DynoVal =>\n new Sign({ a });\nexport const floor = (a: DynoVal): DynoVal =>\n new Floor({ a });\nexport const ceil = (a: DynoVal): DynoVal =>\n new Ceil({ a });\nexport const trunc = (a: DynoVal): DynoVal =>\n new Trunc({ a });\nexport const round = (a: DynoVal): DynoVal =>\n new Round({ a });\nexport const fract = (a: DynoVal): DynoVal =>\n new Fract({ a });\n\nexport const pow = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Pow({ a, b });\nexport const exp = (a: DynoVal): DynoVal =>\n new Exp({ a });\nexport const exp2 = (a: DynoVal): DynoVal =>\n new Exp2({ a });\nexport const log = (a: DynoVal): DynoVal =>\n new Log({ a });\nexport const log2 = (a: DynoVal): DynoVal =>\n new Log2({ a });\nexport const sqr = (a: DynoVal): DynoVal =>\n new Sqr({ a });\nexport const sqrt = (a: DynoVal): DynoVal =>\n new Sqrt({ a });\nexport const inversesqrt = (a: DynoVal): DynoVal =>\n new InverseSqrt({ a });\n\nexport const min = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Min({ a, b });\nexport const max = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Max({ a, b });\nexport const clamp = (\n a: DynoVal,\n min: DynoVal,\n max: DynoVal,\n): DynoVal> => new Clamp({ a, min, max });\nexport const mix = (\n a: DynoVal,\n b: DynoVal,\n t: DynoVal,\n): DynoVal> => new Mix({ a, b, t });\nexport const step = (\n edge: DynoVal,\n x: DynoVal,\n): DynoVal> => new Step({ edge, x });\nexport const smoothstep = (\n edge0: DynoVal,\n edge1: DynoVal,\n x: DynoVal,\n): DynoVal> =>\n new Smoothstep({ edge0, edge1, x });\n\nexport const isNan = (\n a: DynoVal,\n): DynoVal> => new IsNan({ a });\nexport const isInf = (\n a: DynoVal,\n): DynoVal> => new IsInf({ a });\n\nexport class Add<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"sum\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"sum\", outTypeFunc: addOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sum} = ${inputs.a} + ${inputs.b};`];\n };\n }\n}\n\nexport class Sub<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"difference\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"difference\", outTypeFunc: subOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.difference} = ${inputs.a} - ${inputs.b};`];\n };\n }\n}\n\nexport class Mul<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"product\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: mulOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.product} = ${inputs.a} * ${inputs.b};`];\n };\n }\n}\n\nexport class Div<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"quotient\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"quotient\", outTypeFunc: divOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.quotient} = ${inputs.a} / ${inputs.b};`];\n };\n }\n}\n\nexport class IMod<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> extends BinaryOp, \"remainder\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: imodOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = ${inputs.a} % ${inputs.b};`];\n };\n }\n}\n\nexport class Mod extends BinaryOp<\n A,\n B,\n ModOutput,\n \"remainder\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: modOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = mod(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Modf extends Dyno<\n { a: A },\n { fract: A; integer: A }\n> {\n constructor({ a }: { a: DynoVal }) {\n const inTypes = { a: valType(a) };\n const outType = modfOutputType(inTypes.a);\n const outTypes = {\n fract: outType,\n integer: outType,\n };\n super({ inTypes, outTypes, inputs: { a } });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = modf(${inputs.a}, ${outputs.integer});`];\n };\n }\n}\n\nexport class Neg extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"neg\", outTypeFunc: negOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.neg} = -${inputs.a};`];\n };\n }\n}\n\nexport class Abs extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"abs\", outTypeFunc: absOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.abs} = abs(${inputs.a});`];\n };\n }\n}\n\nexport class Sign extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sign\", outTypeFunc: signOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sign} = sign(${inputs.a});`];\n };\n }\n}\n\nexport class Floor extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"floor\", outTypeFunc: floorOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.floor} = floor(${inputs.a});`];\n };\n }\n}\n\nexport class Ceil extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"ceil\", outTypeFunc: ceilOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.ceil} = ceil(${inputs.a});`];\n };\n }\n}\n\nexport class Trunc extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"trunc\", outTypeFunc: truncOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.trunc} = trunc(${inputs.a});`];\n };\n }\n}\n\nexport class Round extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"round\", outTypeFunc: roundOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.round} = round(${inputs.a});`];\n };\n }\n}\n\nexport class Fract extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"fract\", outTypeFunc: fractOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = fract(${inputs.a});`];\n };\n }\n}\n\nexport class Pow extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"power\", outTypeFunc: powOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.power} = pow(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Exp extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp\", outTypeFunc: expOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp} = exp(${inputs.a});`];\n };\n }\n}\n\nexport class Exp2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp2\", outTypeFunc: exp2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp2} = exp2(${inputs.a});`];\n };\n }\n}\n\nexport class Log extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log\", outTypeFunc: logOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log} = log(${inputs.a});`];\n };\n }\n}\n\nexport class Log2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log2\", outTypeFunc: log2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log2} = log2(${inputs.a});`];\n };\n }\n}\n\nexport class Sqr extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqr\", outTypeFunc: sqrOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqr} = ${inputs.a} * ${inputs.a};`];\n };\n }\n}\n\nexport class Sqrt extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqrt\", outTypeFunc: sqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqrt} = sqrt(${inputs.a});`];\n };\n }\n}\n\nexport class InverseSqrt extends UnaryOp<\n A,\n A,\n \"inversesqrt\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inversesqrt\", outTypeFunc: inversesqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.inversesqrt} = inversesqrt(${inputs.a});`];\n };\n }\n}\n\nexport class Min extends BinaryOp<\n A,\n B,\n MinOutput,\n \"min\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"min\", outTypeFunc: minOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.min} = min(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Max extends BinaryOp<\n A,\n B,\n MaxOutput,\n \"max\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"max\", outTypeFunc: maxOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.max} = max(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Clamp<\n A extends ValueTypes,\n MinMax extends ValueTypes,\n> extends TrinaryOp, \"clamp\"> {\n constructor({\n a,\n min,\n max,\n }: { a: DynoVal; min: DynoVal; max: DynoVal }) {\n super({\n a,\n b: min,\n c: max,\n outKey: \"clamp\",\n outTypeFunc: clampOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a, b: min, c: max } = inputs;\n return [`${outputs.clamp} = clamp(${a}, ${min}, ${max});`];\n };\n }\n}\n\nexport class Mix<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> extends TrinaryOp, \"mix\"> {\n constructor({ a, b, t }: { a: DynoVal; b: DynoVal; t: DynoVal }) {\n super({ a, b, c: t, outKey: \"mix\", outTypeFunc: mixOutputType });\n this.statements = ({ inputs, outputs }) => {\n const { a, b, c: t } = inputs;\n return [`${outputs.mix} = mix(${a}, ${b}, ${t});`];\n };\n }\n}\n\nexport class Step<\n Edge extends FloatTypes,\n X extends FloatTypes,\n> extends BinaryOp, \"step\"> {\n constructor({ edge, x }: { edge: DynoVal; x: DynoVal }) {\n super({\n a: edge,\n b: x,\n outKey: \"step\",\n outTypeFunc: stepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge, b: x } = inputs;\n return [`${outputs.step} = step(${edge}, ${x});`];\n };\n }\n}\n\nexport class Smoothstep<\n X extends FloatTypes,\n Edge extends X | \"float\",\n> extends TrinaryOp<\n Edge,\n Edge,\n X,\n SmoothstepOutput,\n \"smoothstep\"\n> {\n constructor({\n edge0,\n edge1,\n x,\n }: { edge0: DynoVal; edge1: DynoVal; x: DynoVal }) {\n super({\n a: edge0,\n b: edge1,\n c: x,\n outKey: \"smoothstep\",\n outTypeFunc: smoothstepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge0, b: edge1, c: x } = inputs;\n return [`${outputs.smoothstep} = smoothstep(${edge0}, ${edge1}, ${x});`];\n };\n }\n}\n\nexport class IsNan extends UnaryOp<\n A,\n IsNanOutput,\n \"isNan\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isNan\", outTypeFunc: isNanOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isNan} = isNan(${inputs.a});`];\n };\n }\n}\n\nexport class IsInf extends UnaryOp<\n A,\n IsInfOutput,\n \"isInf\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isInf\", outTypeFunc: isInfOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isInf} = isInf(${inputs.a});`];\n };\n }\n}\n","import { BinaryOp, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AllIntTypes,\n type BoolTypes,\n type IntTypes,\n type ScalarTypes,\n type SimpleTypes,\n type UintTypes,\n type ValueTypes,\n isBoolType,\n isIntType,\n isScalarType,\n isUintType,\n isVector2Type,\n isVector3Type,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const and = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new And({ a, b });\nexport const or = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Or({ a, b });\nexport const xor = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Xor({ a, b });\nexport const not = (\n a: DynoVal,\n): DynoVal => new Not({ a });\n\nexport const shr = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shr({ a, b });\n\nexport const shl = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shl({ a, b });\n\nexport const lessThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThan({ a, b });\nexport const lessThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThanEqual({ a, b });\nexport const greaterThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThan({ a, b });\nexport const greaterThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThanEqual({ a, b });\nexport const equal = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Equal({ a, b });\nexport const notEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new NotEqual({ a, b });\n\nexport const any = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new Any({ a });\nexport const all = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new All({ a });\nexport const select = (\n cond: DynoVal<\"bool\">,\n t: DynoVal,\n f: DynoVal,\n): DynoVal => new Select({ cond, t, f });\n\nexport const compXor = (\n a: DynoVal,\n): DynoVal> => new CompXor({ a });\n\nexport class And extends BinaryOp<\n T,\n T,\n T,\n \"and\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"and\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.and === \"bool\") {\n return [`${outputs.and} = ${inputs.a} && ${inputs.b};`];\n }\n return [`${outputs.and} = ${inputs.a} & ${inputs.b};`];\n };\n }\n}\n\nexport class Or extends BinaryOp<\n T,\n T,\n T,\n \"or\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"or\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.or === \"bool\") {\n return [`${outputs.or} = ${inputs.a} || ${inputs.b};`];\n }\n return [`${outputs.or} = ${inputs.a} | ${inputs.b};`];\n };\n }\n}\n\nexport class Xor extends BinaryOp<\n T,\n T,\n T,\n \"xor\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"xor\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.xor === \"bool\") {\n return [`${outputs.xor} = ${inputs.a} ^^ ${inputs.b};`];\n }\n return [`${outputs.xor} = ${inputs.a} ^ ${inputs.b};`];\n };\n }\n}\n\nexport class Not extends UnaryOp<\n T,\n T,\n \"not\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => aType, outKey: \"not\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.not === \"bool\") {\n return [`${outputs.not} = !${inputs.a};`];\n }\n return [`${outputs.not} = not(${inputs.a});`];\n };\n }\n}\n\nexport class LessThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) => compareOutputType(aType, \"lessThan\"),\n outKey: \"lessThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThan === \"bool\") {\n return [`${outputs.lessThan} = ${inputs.a} < ${inputs.b};`];\n }\n return [`${outputs.lessThan} = lessThan(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class LessThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"lessThanEqual\"),\n outKey: \"lessThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThanEqual === \"bool\") {\n return [`${outputs.lessThanEqual} = ${inputs.a} <= ${inputs.b};`];\n }\n return [\n `${outputs.lessThanEqual} = lessThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThan\"),\n outKey: \"greaterThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThan === \"bool\") {\n return [`${outputs.greaterThan} = ${inputs.a} > ${inputs.b};`];\n }\n return [\n `${outputs.greaterThan} = greaterThan(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThanEqual\"),\n outKey: \"greaterThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThanEqual === \"bool\") {\n return [`${outputs.greaterThanEqual} = ${inputs.a} >= ${inputs.b};`];\n }\n return [\n `${outputs.greaterThanEqual} = greaterThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class Equal extends BinaryOp<\n T,\n T,\n EqualOutput,\n \"equal\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: equalOutputType, outKey: \"equal\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.equal === \"bool\") {\n return [`${outputs.equal} = ${inputs.a} == ${inputs.b};`];\n }\n return [`${outputs.equal} = equal(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class NotEqual extends BinaryOp<\n T,\n T,\n NotEqualOutput,\n \"notEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: notEqualOutputType, outKey: \"notEqual\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.notEqual === \"bool\") {\n return [`${outputs.notEqual} = ${inputs.a} != ${inputs.b};`];\n }\n return [`${outputs.notEqual} = notEqual(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Any extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"any\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.any} = any(${inputs.a});`];\n };\n }\n}\n\nexport class All extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"all\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.all} = all(${inputs.a});`];\n };\n }\n}\n\nexport class Select extends TrinaryOp<\n \"bool\",\n T,\n T,\n T,\n \"select\"\n> {\n constructor({\n cond,\n t,\n f,\n }: { cond: DynoVal<\"bool\">; t: DynoVal; f: DynoVal }) {\n super({\n a: cond,\n b: t,\n c: f,\n outKey: \"select\",\n outTypeFunc: (aType: \"bool\", bType: T, cType: T) => bType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: cond, b: t, c: f } = inputs;\n return [`${outputs.select} = (${cond}) ? (${t}) : (${f});`];\n };\n }\n}\n\ntype CompareOutput = T extends ScalarTypes\n ? \"bool\"\n : T extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : T extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : T extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction compareOutputType(\n type: T,\n operator: string,\n): CompareOutput {\n if (isScalarType(type)) {\n return \"bool\" as CompareOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as CompareOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as CompareOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as CompareOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype EqualOutput = A extends ScalarTypes\n ? \"bool\"\n : A extends BoolTypes\n ? A\n : A extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : A extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : A extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction equalOutputType(\n type: A,\n operator = \"equal\",\n): EqualOutput {\n if (isScalarType(type)) {\n return \"bool\" as EqualOutput;\n }\n if (isBoolType(type)) {\n return type as EqualOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as EqualOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as EqualOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as EqualOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype NotEqualOutput = EqualOutput;\n\nfunction notEqualOutputType(\n type: A,\n): NotEqualOutput {\n return equalOutputType(type, \"notEqual\");\n}\n\ntype CompXorOutput = A extends BoolTypes\n ? \"bool\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nfunction compXorOutputType(\n type: A,\n): CompXorOutput {\n if (isBoolType(type)) {\n return \"bool\" as CompXorOutput;\n }\n if (isIntType(type)) {\n return \"int\" as CompXorOutput;\n }\n if (isUintType(type)) {\n return \"uint\" as CompXorOutput;\n }\n throw new Error(`Invalid compXor type: ${type}`);\n}\n\nexport class CompXor extends UnaryOp<\n T,\n CompXorOutput,\n \"compXor\"\n> {\n constructor({ a }: { a: DynoVal }) {\n const outType = compXorOutputType(valType(a));\n super({ a, outTypeFunc: (aType: T) => outType, outKey: \"compXor\" });\n this.statements = ({ inputs, outputs }) => {\n if (isScalarType(this.outTypes.compXor)) {\n return [`${outputs.compXor} = ${inputs.a};`];\n }\n const components = isVector2Type(outType)\n ? [\"x\", \"y\"]\n : isVector3Type(outType)\n ? [\"x\", \"y\", \"z\"]\n : [\"x\", \"y\", \"z\", \"w\"];\n const operands = components.map((c) => `${inputs.a}.${c}`);\n const operator = isBoolType(outType) ? \"^^\" : \"^\";\n return [`${outputs.compXor} = ${operands.join(` ${operator} `)};`];\n };\n }\n}\n\nexport class Shr extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shr\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shr} = ${inputs.a} >> ${inputs.b};`];\n };\n }\n}\n\nexport class Shl extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shl\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shl} = ${inputs.a} << ${inputs.b};`];\n };\n }\n}\n","import { UnaryOp } from \"./base\";\nimport { type SimpleTypes, typeLiteral } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const bool = (\n value: DynoVal,\n): DynoVal<\"bool\"> => new Bool({ value });\nexport const int = (\n value: DynoVal,\n): DynoVal<\"int\"> => new Int({ value });\nexport const uint = (\n value: DynoVal,\n): DynoVal<\"uint\"> => new Uint({ value });\nexport const float = (\n value: DynoVal,\n): DynoVal<\"float\"> => new Float({ value });\n\nexport const bvec2 = (\n value: DynoVal,\n): DynoVal<\"bvec2\"> => new BVec2({ value });\nexport const bvec3 = (\n value: DynoVal,\n): DynoVal<\"bvec3\"> => new BVec3({ value });\nexport const bvec4 = (\n value: DynoVal,\n): DynoVal<\"bvec4\"> => new BVec4({ value });\n\nexport const ivec2 = (\n value: DynoVal,\n): DynoVal<\"ivec2\"> => new IVec2({ value });\nexport const ivec3 = (\n value: DynoVal,\n): DynoVal<\"ivec3\"> => new IVec3({ value });\nexport const ivec4 = (\n value: DynoVal,\n): DynoVal<\"ivec4\"> => new IVec4({ value });\n\nexport const uvec2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => new UVec2({ value });\nexport const uvec3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => new UVec3({ value });\nexport const uvec4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => new UVec4({ value });\n\nexport const vec2 = <\n T extends \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec2\"> => new Vec2({ value });\nexport const vec3 = <\n T extends \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec3\"> => new Vec3({ value });\nexport const vec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => new Vec4({ value });\n\nexport const mat2 = (\n value: DynoVal,\n): DynoVal<\"mat2\"> => new Mat2({ value });\nexport const mat3 = (\n value: DynoVal,\n): DynoVal<\"mat3\"> => new Mat3({ value });\nexport const mat4 = (\n value: DynoVal,\n): DynoVal<\"mat4\"> => new Mat4({ value });\n\nexport const floatBitsToInt = (value: DynoVal<\"float\">): DynoVal<\"int\"> =>\n new FloatBitsToInt({ value });\nexport const floatBitsToUint = (value: DynoVal<\"float\">): DynoVal<\"uint\"> =>\n new FloatBitsToUint({ value });\nexport const intBitsToFloat = (value: DynoVal<\"int\">): DynoVal<\"float\"> =>\n new IntBitsToFloat({ value });\nexport const uintBitsToFloat = (value: DynoVal<\"uint\">): DynoVal<\"float\"> =>\n new UintBitsToFloat({ value });\n\nexport const packSnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackSnorm2x16({ value });\nexport const unpackSnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackSnorm2x16({ value });\nexport const packUnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackUnorm2x16({ value });\nexport const unpackUnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackUnorm2x16({ value });\n\nexport const packHalf2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackHalf2x16({ value });\nexport const unpackHalf2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackHalf2x16({ value });\n\nexport const uintToRgba8 = (value: DynoVal<\"uint\">): DynoVal<\"vec4\"> =>\n new UintToRgba8({ value });\n\nexport class SimpleCast<\n Allowed extends SimpleTypes,\n OutType extends SimpleTypes,\n OutKey extends string,\n> extends UnaryOp {\n constructor({\n value,\n outType,\n outKey,\n }: { value: DynoVal; outType: OutType; outKey: OutKey }) {\n super({ a: value, outTypeFunc: () => outType, outKey });\n this.statements = ({ inputs, outputs }) => [\n `${outputs[outKey]} = ${typeLiteral(outType)}(${inputs.a});`,\n ];\n }\n}\n\nexport class Bool extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"bool\",\n \"bool\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"bool\", outKey: \"bool\" });\n }\n}\n\nexport class Int extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"int\",\n \"int\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"int\", outKey: \"int\" });\n }\n}\n\nexport class Uint extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"uint\",\n \"uint\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"uint\", outKey: \"uint\" });\n }\n}\n\nexport class Float extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"float\",\n \"float\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"float\", outKey: \"float\" });\n }\n}\n\nexport class BVec2 extends SimpleCast<\n \"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"bvec2\",\n \"bvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"bvec2\", outKey: \"bvec2\" });\n }\n}\n\nexport class BVec3 extends SimpleCast<\n \"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"bvec3\",\n \"bvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"bvec3\", outKey: \"bvec3\" });\n }\n}\n\nexport class BVec4 extends SimpleCast<\n \"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"bvec4\",\n \"bvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"bvec4\", outKey: \"bvec4\" });\n }\n}\n\nexport class IVec2 extends SimpleCast<\n \"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"ivec2\",\n \"ivec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"ivec2\", outKey: \"ivec2\" });\n }\n}\n\nexport class IVec3 extends SimpleCast<\n \"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"ivec3\",\n \"ivec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"ivec3\", outKey: \"ivec3\" });\n }\n}\n\nexport class IVec4 extends SimpleCast<\n \"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"ivec4\",\n \"ivec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"ivec4\", outKey: \"ivec4\" });\n }\n}\n\nexport class UVec2 extends SimpleCast<\n \"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\",\n \"uvec2\",\n \"uvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"uvec2\", outKey: \"uvec2\" });\n }\n}\n\nexport class UVec3 extends SimpleCast<\n \"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\",\n \"uvec3\",\n \"uvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"uvec3\", outKey: \"uvec3\" });\n }\n}\n\nexport class UVec4 extends SimpleCast<\n \"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\",\n \"uvec4\",\n \"uvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"uvec4\", outKey: \"uvec4\" });\n }\n}\n\nexport class Vec2 extends SimpleCast<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n \"vec2\",\n \"vec2\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec2\", outKey: \"vec2\" });\n }\n}\n\nexport class Vec3 extends SimpleCast<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\",\n \"vec3\",\n \"vec3\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec3\", outKey: \"vec3\" });\n }\n}\n\nexport class Vec4 extends SimpleCast<\n \"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"vec4\",\n \"vec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"vec4\", outKey: \"vec4\" });\n }\n}\n\nexport class Mat2 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat2\",\n \"mat2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat2\", outKey: \"mat2\" });\n }\n}\n\nexport class Mat3 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat3\",\n \"mat3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat3\", outKey: \"mat3\" });\n }\n}\n\nexport class Mat4 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat4\",\n \"mat4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat4\", outKey: \"mat4\" });\n }\n}\n\nexport class FloatBitsToInt extends UnaryOp<\"float\", \"int\", \"int\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"int\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.int} = floatBitsToInt(${inputs.a});`];\n };\n }\n}\n\nexport class FloatBitsToUint extends UnaryOp<\"float\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = floatBitsToUint(${inputs.a});`];\n };\n }\n}\n\nexport class IntBitsToFloat extends UnaryOp<\"int\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"int\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = intBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class UintBitsToFloat extends UnaryOp<\"uint\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = uintBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class PackSnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackSnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackUnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackUnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackHalf2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackHalf2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UintToRgba8 extends UnaryOp<\"uint\", \"vec4\", \"rgba8\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"rgba8\", outTypeFunc: () => \"vec4\" });\n this.statements = ({ inputs, outputs }) => {\n return [\n `uvec4 uRgba = uvec4(${inputs.a} & 0xffu, (${inputs.a} >> 8u) & 0xffu, (${inputs.a} >> 16u) & 0xffu, (${inputs.a} >> 24u) & 0xffu);`,\n `${outputs.rgba8} = vec4(uRgba) / 255.0;`,\n ];\n };\n }\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type FloatTypes,\n type IntTypes,\n type MatFloatTypes,\n type SquareMatTypes,\n type UintTypes,\n type VectorElementType,\n type VectorTypes,\n isFloatType,\n isIntType,\n isUintType,\n vectorDim,\n vectorElementType,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n literalZero,\n valType,\n} from \"./value\";\n\nexport const length = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Length({ a });\nexport const distance = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Distance({ a, b });\nexport const dot = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Dot({ a, b });\nexport const cross = (\n a: DynoVal<\"vec3\">,\n b: DynoVal<\"vec3\">,\n): DynoVal<\"vec3\"> => new Cross({ a, b });\nexport const normalize = (\n a: DynoVal,\n): DynoVal => new Normalize({ a });\nexport const faceforward = (\n a: DynoVal,\n b: DynoVal,\n c: DynoVal,\n): DynoVal => new FaceForward({ a, b, c });\nexport const reflectVec = (\n incident: DynoVal,\n normal: DynoVal,\n): DynoVal => new ReflectVec({ incident, normal });\nexport const refractVec = (\n incident: DynoVal,\n normal: DynoVal,\n eta: DynoVal<\"float\">,\n): DynoVal => new RefractVec({ incident, normal, eta });\nexport const split = (vector: DynoVal): Split =>\n new Split({ vector });\nexport const combine = >({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n}: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n}): DynoVal => new Combine({ vector, vectorType, x, y, z, w, r, g, b, a });\nexport const projectH = (\n a: DynoVal,\n): DynoVal> => new ProjectH({ a });\nexport const extendVec = (\n a: DynoVal,\n b: DynoVal<\"float\">,\n): DynoVal> => new ExtendVec({ a, b });\nexport const swizzle = (\n a: DynoVal,\n select: S,\n): DynoVal>> =>\n new Swizzle({ vector: a, select });\nexport const compMult = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new CompMult({ a, b });\nexport const outer = <\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Outer({ a, b });\nexport const transpose = (\n a: DynoVal,\n): DynoVal> => new Transpose({ a });\nexport const determinant = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Determinant({ a });\nexport const inverse = (a: DynoVal): DynoVal =>\n new Inverse({ a });\n\nexport class Length extends UnaryOp<\n A,\n \"float\",\n \"length\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => \"float\", outKey: \"length\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.length} = length(${inputs.a});`,\n ];\n }\n}\n\nexport class Distance extends BinaryOp<\n A,\n A,\n \"float\",\n \"distance\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"distance\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.distance} = distance(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Dot extends BinaryOp<\n A,\n A,\n \"float\",\n \"dot\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"dot\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.dot} = dot(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Cross extends BinaryOp<\"vec3\", \"vec3\", \"vec3\", \"cross\"> {\n constructor({ a, b }: { a: DynoVal<\"vec3\">; b: DynoVal<\"vec3\"> }) {\n super({ a, b, outKey: \"cross\", outTypeFunc: (aType, bType) => \"vec3\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cross} = cross(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Normalize extends UnaryOp<\n A,\n A,\n \"normalize\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => aType, outKey: \"normalize\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normalize} = normalize(${inputs.a});`,\n ];\n }\n}\n\ntype ProjectHOutput = A extends \"vec3\"\n ? \"vec2\"\n : A extends \"vec4\"\n ? \"vec3\"\n : never;\n\nfunction projectHOutputType(\n type: A,\n): ProjectHOutput {\n if (type === \"vec3\") {\n return \"vec2\" as ProjectHOutput;\n }\n if (type === \"vec4\") {\n return \"vec3\" as ProjectHOutput;\n }\n throw new Error(\"Invalid type\");\n}\n\nexport class ProjectH extends UnaryOp<\n A,\n ProjectHOutput,\n \"projected\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({\n a,\n outTypeFunc: (aType) => projectHOutputType(aType),\n outKey: \"projected\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.inTypes.a === \"vec3\") {\n return [`${outputs.projected} = ${inputs.a}.xy / ${inputs.a}.z;`];\n }\n if (this.inTypes.a === \"vec4\") {\n return [`${outputs.projected} = ${inputs.a}.xyz / ${inputs.a}.w;`];\n }\n throw new Error(\"Invalid type\");\n };\n }\n}\n\ntype ExtendVecOutput = A extends \"float\"\n ? \"vec2\"\n : A extends \"vec2\"\n ? \"vec3\"\n : A extends \"vec3\"\n ? \"vec4\"\n : never;\n\nfunction extendVecOutputType(\n type: A,\n): ExtendVecOutput {\n if (type === \"float\") return \"vec2\" as ExtendVecOutput;\n if (type === \"vec2\") return \"vec3\" as ExtendVecOutput;\n if (type === \"vec3\") return \"vec4\" as ExtendVecOutput;\n throw new Error(\"Invalid type\");\n}\n\nexport class ExtendVec extends BinaryOp<\n A,\n \"float\",\n ExtendVecOutput,\n \"extend\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal<\"float\"> }) {\n const type = valType(a);\n const outType = extendVecOutputType(type);\n super({ a, b, outKey: \"extend\", outTypeFunc: () => outType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.extend} = ${outType}(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class FaceForward extends TrinaryOp<\n A,\n A,\n A,\n A,\n \"forward\"\n> {\n constructor({ a, b, c }: { a: DynoVal; b: DynoVal; c: DynoVal }) {\n super({\n a,\n b,\n c,\n outKey: \"forward\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.forward} = faceforward(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class ReflectVec extends BinaryOp<\n A,\n A,\n A,\n \"reflection\"\n> {\n constructor({\n incident,\n normal,\n }: { incident: DynoVal; normal: DynoVal }) {\n super({\n a: incident,\n b: normal,\n outKey: \"reflection\",\n outTypeFunc: (aType, bType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.reflection} = reflect(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class RefractVec extends TrinaryOp<\n A,\n A,\n \"float\",\n A,\n \"refraction\"\n> {\n constructor({\n incident,\n normal,\n eta,\n }: { incident: DynoVal; normal: DynoVal; eta: DynoVal<\"float\"> }) {\n super({\n a: incident,\n b: normal,\n c: eta,\n outKey: \"refraction\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.refraction} = refract(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class CompMult extends BinaryOp<\n A,\n A,\n A,\n \"product\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: (aType, bType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.product} = matrixCompMult(${a}, ${b});`,\n ];\n }\n}\n\ntype OuterOutput<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> = A extends \"vec2\"\n ? B extends \"vec2\"\n ? \"mat2\"\n : B extends \"vec3\"\n ? \"mat3x2\"\n : B extends \"vec4\"\n ? \"mat4x2\"\n : never\n : A extends \"vec3\"\n ? B extends \"vec2\"\n ? \"mat2x3\"\n : B extends \"vec3\"\n ? \"mat3\"\n : B extends \"vec4\"\n ? \"mat4x3\"\n : never\n : A extends \"vec4\"\n ? B extends \"vec2\"\n ? \"mat2x4\"\n : B extends \"vec3\"\n ? \"mat3x4\"\n : B extends \"vec4\"\n ? \"mat4\"\n : never\n : never;\n\nfunction outerOutputType<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(aType: A, bType: B): OuterOutput {\n if (aType === \"vec2\") {\n if (bType === \"vec2\") return \"mat2\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x2\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x2\" as OuterOutput;\n }\n if (aType === \"vec3\") {\n if (bType === \"vec2\") return \"mat2x3\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x3\" as OuterOutput;\n }\n if (aType === \"vec4\") {\n if (bType === \"vec2\") return \"mat2x4\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x4\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4\" as OuterOutput;\n }\n throw new Error(`Invalid outer type: ${aType}, ${bType}`);\n}\n\nexport class Outer<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> extends BinaryOp, \"outer\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"outer\", outTypeFunc: outerOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.outer} = outerProduct(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\ntype TransposeOutput = A extends SquareMatTypes\n ? A\n : A extends \"mat2x3\"\n ? \"mat3x2\"\n : A extends \"mat2x4\"\n ? \"mat4x2\"\n : A extends \"mat3x2\"\n ? \"mat2x3\"\n : A extends \"mat3x4\"\n ? \"mat4x3\"\n : A extends \"mat4x2\"\n ? \"mat2x4\"\n : A extends \"mat4x3\"\n ? \"mat3x4\"\n : never;\n\nfunction transposeOutputType(\n type: A,\n): TransposeOutput {\n if (type === \"mat2\") return \"mat2\" as TransposeOutput;\n if (type === \"mat3\") return \"mat3\" as TransposeOutput;\n if (type === \"mat4\") return \"mat4\" as TransposeOutput;\n if (type === \"mat2x2\") return \"mat2x2\" as TransposeOutput;\n if (type === \"mat2x3\") return \"mat3x2\" as TransposeOutput;\n if (type === \"mat2x4\") return \"mat4x2\" as TransposeOutput;\n if (type === \"mat3x2\") return \"mat2x3\" as TransposeOutput;\n if (type === \"mat3x3\") return \"mat3x3\" as TransposeOutput;\n if (type === \"mat3x4\") return \"mat4x3\" as TransposeOutput;\n if (type === \"mat4x2\") return \"mat2x4\" as TransposeOutput;\n if (type === \"mat4x3\") return \"mat3x4\" as TransposeOutput;\n if (type === \"mat4x4\") return \"mat4x4\" as TransposeOutput;\n throw new Error(`Invalid transpose type: ${type}`);\n}\n\nexport class Transpose extends UnaryOp<\n A,\n TransposeOutput,\n \"transpose\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"transpose\", outTypeFunc: transposeOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.transpose} = transpose(${inputs.a});`,\n ];\n }\n}\n\nexport class Determinant extends UnaryOp<\n A,\n \"float\",\n \"det\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"det\", outTypeFunc: (aType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.det} = determinant(${inputs.a});`,\n ];\n }\n}\n\nexport class Inverse extends UnaryOp<\n A,\n A,\n \"inverse\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inverse\", outTypeFunc: (aType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.inverse} = inverse(${a});`,\n ];\n }\n}\n\ntype SplitOutTypes = A extends \"vec2\"\n ? { x: \"float\"; y: \"float\"; r: \"float\"; g: \"float\" }\n : A extends \"vec3\"\n ? { x: \"float\"; y: \"float\"; z: \"float\"; r: \"float\"; g: \"float\"; b: \"float\" }\n : A extends \"vec4\"\n ? {\n x: \"float\";\n y: \"float\";\n z: \"float\";\n w: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n a: \"float\";\n }\n : A extends \"ivec2\"\n ? { x: \"int\"; y: \"int\"; r: \"int\"; g: \"int\" }\n : A extends \"ivec3\"\n ? { x: \"int\"; y: \"int\"; z: \"int\"; r: \"int\"; g: \"int\"; b: \"int\" }\n : A extends \"ivec4\"\n ? {\n x: \"int\";\n y: \"int\";\n z: \"int\";\n w: \"int\";\n r: \"int\";\n g: \"int\";\n b: \"int\";\n a: \"int\";\n }\n : A extends \"uvec2\"\n ? { x: \"uint\"; y: \"uint\"; r: \"uint\"; g: \"uint\" }\n : A extends \"uvec3\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n }\n : A extends \"uvec4\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n w: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n a: \"uint\";\n }\n : never;\n\nfunction splitOutTypes(type: A): SplitOutTypes {\n const result = (value: unknown) => value as SplitOutTypes;\n switch (type) {\n case \"vec2\":\n return result({ x: \"float\", y: \"float\", r: \"float\", g: \"float\" });\n case \"vec3\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n });\n case \"vec4\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n w: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n a: \"float\",\n });\n case \"ivec2\":\n return result({ x: \"int\", y: \"int\", r: \"int\", g: \"int\" });\n case \"ivec3\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n });\n case \"ivec4\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n w: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n a: \"int\",\n });\n case \"uvec2\":\n return result({ x: \"uint\", y: \"uint\", r: \"uint\", g: \"uint\" });\n case \"uvec3\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n });\n case \"uvec4\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n w: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n a: \"uint\",\n });\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport class Split extends Dyno<\n { vector: V },\n SplitOutTypes\n> {\n constructor({ vector }: { vector: DynoVal }) {\n const type = valType(vector);\n const inTypes = { vector: type };\n const outTypes = splitOutTypes(inTypes.vector);\n super({ inTypes, outTypes, inputs: { vector } });\n this.statements = ({ inputs, outputs }) => {\n const { x, y, z, w, r, g, b, a } = outputs as unknown as Record<\n string,\n string\n >;\n const { vector } = inputs;\n return [\n x ? `${x} = ${vector}.x;` : null,\n y ? `${y} = ${vector}.y;` : null,\n z ? `${z} = ${vector}.z;` : null,\n w ? `${w} = ${vector}.w;` : null,\n r ? `${r} = ${vector}.r;` : null,\n g ? `${g} = ${vector}.g;` : null,\n b ? `${b} = ${vector}.b;` : null,\n a ? `${a} = ${vector}.a;` : null,\n ].filter(Boolean) as string[];\n };\n }\n}\n\nexport class Combine>\n extends Dyno & { vector: V }, { vector: V }>\n implements HasDynoOut\n{\n constructor({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n }: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n }) {\n if (!vector && !vectorType) {\n throw new Error(\"Either vector or vectorType must be provided\");\n }\n const vType = vectorType ?? valType(vector as DynoVal);\n const elType = vectorElementType(vType);\n const dim = vectorDim(vType);\n\n const inTypes = {\n vector: vType,\n x: elType,\n y: elType,\n r: elType,\n g: elType,\n } as unknown as SplitOutTypes & { vector: V };\n const inputs = { vector, x, y, r, g };\n if (dim >= 3) {\n Object.assign(inTypes, { z: elType, b: elType });\n Object.assign(inputs, { z, b });\n }\n if (dim >= 4) {\n Object.assign(inTypes, { w: elType, a: elType });\n Object.assign(inputs, { w, a });\n }\n // @ts-ignore\n super({ inTypes, outTypes: { vector: vType }, inputs });\n this.statements = ({ inputs, outputs }) => {\n const { vector } = outputs;\n const {\n vector: input,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n } = inputs as Record;\n const statements = [\n `${vector}.x = ${x ?? r ?? (input ? `${input}.x` : literalZero(elType))};`,\n `${vector}.y = ${y ?? g ?? (input ? `${input}.y` : literalZero(elType))};`,\n ];\n if (dim >= 3)\n statements.push(\n `${vector}.z = ${z ?? b ?? (input ? `${input}.z` : literalZero(elType))};`,\n );\n if (dim >= 4)\n statements.push(\n `${vector}.w = ${w ?? a ?? (input ? `${input}.w` : literalZero(elType))};`,\n );\n return statements;\n };\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput & { vector: V }, { vector: V }>(\n this,\n \"vector\",\n );\n }\n}\n\ntype SwizzleOutput<\n A extends VectorTypes,\n Len extends number,\n> = A extends FloatTypes\n ? Len extends 1\n ? \"float\"\n : Len extends 2\n ? \"vec2\"\n : Len extends 3\n ? \"vec3\"\n : Len extends 4\n ? \"vec4\"\n : never\n : A extends IntTypes\n ? Len extends 1\n ? \"int\"\n : Len extends 2\n ? \"ivec2\"\n : Len extends 3\n ? \"ivec3\"\n : Len extends 4\n ? \"ivec4\"\n : never\n : A extends UintTypes\n ? Len extends 1\n ? \"uint\"\n : Len extends 2\n ? \"uvec2\"\n : Len extends 3\n ? \"uvec3\"\n : Len extends 4\n ? \"uvec4\"\n : never\n : never;\n\ntype SwizzleSelectLen = S extends Swizzle1Select\n ? 1\n : S extends Swizzle2Select\n ? 2\n : S extends Swizzle3Select\n ? 3\n : S extends Swizzle4Select\n ? 4\n : never;\n\nfunction swizzleOutputType(\n type: A,\n swizzle: S,\n): SwizzleOutput> {\n let result = null;\n if (isFloatType(type)) {\n result =\n swizzle.length === 1\n ? \"float\"\n : swizzle.length === 2\n ? \"vec2\"\n : swizzle.length === 3\n ? \"vec3\"\n : swizzle.length === 4\n ? \"vec4\"\n : null;\n } else if (isIntType(type)) {\n result =\n swizzle.length === 1\n ? \"int\"\n : swizzle.length === 2\n ? \"ivec2\"\n : swizzle.length === 3\n ? \"ivec3\"\n : swizzle.length === 4\n ? \"ivec4\"\n : null;\n } else if (isUintType(type)) {\n result =\n swizzle.length === 1\n ? \"uint\"\n : swizzle.length === 2\n ? \"uvec2\"\n : swizzle.length === 3\n ? \"uvec3\"\n : swizzle.length === 4\n ? \"uvec4\"\n : null;\n }\n if (result == null) {\n throw new Error(`Invalid swizzle: ${swizzle}`);\n }\n return result as SwizzleOutput>;\n}\n\ntype Swizzle1Select = `${\"x\" | \"y\" | \"z\" | \"w\"}|${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle2Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle3Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle4Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype SwizzleSelect =\n | Swizzle1Select\n | Swizzle2Select\n | Swizzle3Select\n | Swizzle4Select;\n\nexport class Swizzle<\n A extends VectorTypes,\n S extends SwizzleSelect,\n> extends UnaryOp>, \"swizzle\"> {\n constructor({ vector, select }: { vector: DynoVal; select: S }) {\n super({\n a: vector,\n outKey: \"swizzle\",\n outTypeFunc: (aType) => swizzleOutputType(aType, select),\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.swizzle} = ${inputs.a}.${select};`,\n ];\n }\n}\n","import { Dyno, DynoBlock, unindent } from \"./base\";\nimport { float, vec2, vec3, vec4 } from \"./convert\";\nimport { mul } from \"./math\";\nimport { type ValueTypes, isIntType, isUintType, sameSizeUvec } from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n dynoConst,\n valType,\n} from \"./value\";\nimport { combine } from \"./vecmat\";\n\nexport const remapIndex = (\n index: DynoVal<\"int\">,\n from: DynoVal<\"int\">,\n to: DynoVal<\"int\">,\n): DynoVal<\"int\"> => {\n return new DynoRemapIndex({ index, from, to });\n};\nexport const pcgMix = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new PcgMix({ value });\n};\nexport const pcgNext = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgNext({ state });\n};\nexport const pcgHash = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgHash({ state });\n};\nexport const hash = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new Hash({ value });\n};\nexport const hash2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => {\n return new Hash2({ value });\n};\nexport const hash3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => {\n return new Hash3({ value });\n};\nexport const hash4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => {\n return new Hash4({ value });\n};\nexport const hashFloat = (\n value: DynoVal,\n): DynoVal<\"float\"> => {\n return new HashFloat({ value });\n};\nexport const hashVec2 = (\n value: DynoVal,\n): DynoVal<\"vec2\"> => {\n return new HashVec2({ value });\n};\nexport const hashVec3 = (\n value: DynoVal,\n): DynoVal<\"vec3\"> => {\n return new HashVec3({ value });\n};\nexport const hashVec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => {\n return new HashVec4({ value });\n};\nexport const normalizedDepth = (\n z: DynoVal<\"float\">,\n zNear: DynoVal<\"float\">,\n zFar: DynoVal<\"float\">,\n): DynoVal<\"float\"> => {\n return new NormalizedDepth({ z, zNear, zFar }).outputs.depth;\n};\n\nexport const debugColorHue = (index: DynoVal<\"int\">): DynoVal<\"vec3\"> => {\n return new DebugColorHue({ index });\n};\n\nexport class DynoRemapIndex\n extends Dyno<{ from: \"int\"; to: \"int\"; index: \"int\" }, { index: \"int\" }>\n implements HasDynoOut<\"int\">\n{\n constructor({\n from,\n to,\n index,\n }: { from: DynoVal<\"int\">; to: DynoVal<\"int\">; index: DynoVal<\"int\"> }) {\n super({\n inTypes: { from: \"int\", to: \"int\", index: \"int\" },\n outTypes: { index: \"int\" },\n inputs: { from, to, index },\n statements: ({ inputs, outputs }) => {\n return [\n `${outputs.index} = ${inputs.index} - ${inputs.from} + ${inputs.to};`,\n ];\n },\n });\n }\n\n dynoOut(): DynoValue<\"int\"> {\n return new DynoOutput(this, \"index\");\n }\n}\n\nexport class PcgNext\n extends Dyno<{ state: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal }) {\n const type = valType(state);\n super({\n inTypes: { state: type },\n outTypes: { state: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_next(uint state) {\n return state * 747796405u + 2891336453u;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUint =\n type === \"uint\"\n ? `${inputs.state}`\n : type === \"int\"\n ? `uint(${inputs.state})`\n : `floatBitsToUint(${inputs.state})`;\n return [`${outputs.state} = pcg_next(${toUint});`];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class PcgHash\n extends Dyno<{ state: \"uint\" }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal<\"uint\"> }) {\n super({\n inTypes: { state: \"uint\" },\n outTypes: { hash: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_hash(uint state) {\n uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u;\n return (hash >> 22u) ^ hash;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => [\n `${outputs.hash} = pcg_hash(${inputs.state});`,\n ],\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class PcgMix\n extends Dyno<{ value: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n const type = valType(value);\n const tempType = sameSizeUvec(type);\n super({\n inTypes: { value: type },\n outTypes: { state: \"uint\" },\n inputs: { value },\n globals: () => [\n unindent(`\n uint pcg_mix(uint value) {\n return value;\n }\n uint pcg_mix(uvec2 value) {\n return value.x + 0x9e3779b9u * value.y;\n }\n uint pcg_mix(uvec3 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z;\n }\n uint pcg_mix(uvec4 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z + 0xc2b2ae35u * value.w;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUvec = isUintType(type)\n ? `${inputs.value}`\n : isIntType(type)\n ? `${tempType}(${inputs.value})`\n : `floatBitsToUint(${inputs.value})`;\n return [\n `${tempType} bits = ${toUvec};`,\n `${outputs.state} = pcg_mix(bits);`,\n ];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class Hash\n extends DynoBlock<{ value: T }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uint\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n return new PcgHash({ state }).outputs;\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash2\n extends DynoBlock<{ value: T }, { hash: \"uvec2\" }>\n implements HasDynoOut<\"uvec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec2\", x, y }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash3\n extends DynoBlock<{ value: T }, { hash: \"uvec3\" }>\n implements HasDynoOut<\"uvec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec3\", x, y, z }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash4\n extends DynoBlock<{ value: T }, { hash: \"uvec4\" }>\n implements HasDynoOut<\"uvec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const w = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec4\", x, y, z, w }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashFloat\n extends DynoBlock<{ value: T }, { hash: \"float\" }>\n implements HasDynoOut<\"float\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"float\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const word = hash(value);\n return { hash: mul(float(word), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec2\n extends DynoBlock<{ value: T }, { hash: \"vec2\" }>\n implements HasDynoOut<\"vec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash2(value);\n return { hash: mul(vec2(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec3\n extends DynoBlock<{ value: T }, { hash: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash3(value);\n return { hash: mul(vec3(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec4\n extends DynoBlock<{ value: T }, { hash: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash4(value);\n return { hash: mul(vec4(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class NormalizedDepth\n extends Dyno<\n { z: \"float\"; zNear: \"float\"; zFar: \"float\" },\n { depth: \"float\" }\n >\n implements HasDynoOut<\"float\">\n{\n constructor({\n z,\n zNear,\n zFar,\n }: { z: DynoVal<\"float\">; zNear: DynoVal<\"float\">; zFar: DynoVal<\"float\"> }) {\n super({\n inTypes: { z: \"float\", zNear: \"float\", zFar: \"float\" },\n outTypes: { depth: \"float\" },\n inputs: { z, zNear, zFar },\n statements: ({ inputs, outputs }) => [\n `float clamped = clamp(${inputs.z}, ${inputs.zNear}, ${inputs.zFar});`,\n `${outputs.depth} = (log2(clamped + 1.0) - log2(${inputs.zNear} + 1.0)) / (log2(${inputs.zFar} + 1.0) - log2(${inputs.zNear} + 1.0));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"depth\");\n }\n}\n\nexport class DebugColorHue\n extends Dyno<{ index: \"int\" }, { color: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ index }: { index: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { color: \"vec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => [\n `${outputs.color} = debugColorHue(uint(${inputs.index}));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"color\");\n }\n}\n","import { Dyno } from \"./base\";\nimport type { DynoVal } from \"./value\";\n\nexport const transformPos = (\n position: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n translate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformPosition({ position, scale, scales, rotate, translate })\n .outputs.position;\n};\nexport const transformDir = (\n dir: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformDir({ dir, scale, scales, rotate }).outputs.dir;\n};\nexport const transformQuat = (\n quaternion: DynoVal<\"vec4\">,\n { rotate }: { rotate?: DynoVal<\"vec4\"> },\n): DynoVal<\"vec4\"> => {\n return new TransformQuaternion({ quaternion, rotate }).outputs.quaternion;\n};\n\nexport class TransformPosition extends Dyno<\n {\n position: \"vec3\";\n scale: \"float\";\n scales: \"vec3\";\n rotate: \"vec4\";\n translate: \"vec3\";\n },\n { position: \"vec3\" }\n> {\n constructor({\n position,\n scale,\n scales,\n rotate,\n translate,\n }: {\n position?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n }) {\n super({\n inTypes: {\n position: \"vec3\",\n scale: \"float\",\n scales: \"vec3\",\n rotate: \"vec4\",\n translate: \"vec3\",\n },\n outTypes: { position: \"vec3\" },\n inputs: { position, scale, scales, rotate, translate },\n statements: ({ inputs, outputs }) => {\n const { position } = outputs;\n if (!position) {\n return [];\n }\n const { scale, scales, rotate, translate } = inputs;\n return [\n `${position} = ${inputs.position ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${position} *= ${scale};`,\n !scales ? null : `${position} *= ${scales};`,\n !rotate ? null : `${position} = quatVec(${rotate}, ${position});`,\n !translate ? null : `${position} += ${translate};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformDir extends Dyno<\n { dir: \"vec3\"; scale: \"float\"; scales: \"vec3\"; rotate: \"vec4\" },\n { dir: \"vec3\" }\n> {\n constructor({\n dir,\n scale,\n scales,\n rotate,\n }: {\n dir?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { dir: \"vec3\", scale: \"float\", scales: \"vec3\", rotate: \"vec4\" },\n outTypes: { dir: \"vec3\" },\n inputs: { dir, scale, scales, rotate },\n statements: ({ inputs, outputs }) => {\n const { dir } = outputs;\n if (!dir) {\n return [];\n }\n const { scale, scales, rotate } = inputs;\n return [\n `${dir} = ${inputs.dir ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${dir} *= ${scale};`,\n !scales ? null : `${dir} *= ${scales};`,\n !rotate ? null : `${dir} = quatVec(${rotate}, ${dir});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformQuaternion extends Dyno<\n { quaternion: \"vec4\"; rotate: \"vec4\" },\n { quaternion: \"vec4\" }\n> {\n constructor({\n quaternion,\n rotate,\n }: { quaternion?: DynoVal<\"vec4\">; rotate?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { quaternion: \"vec4\", rotate: \"vec4\" },\n outTypes: { quaternion: \"vec4\" },\n inputs: { quaternion, rotate },\n statements: ({ inputs, outputs }) => {\n const { quaternion } = outputs;\n if (!quaternion) {\n return [];\n }\n return [\n `${quaternion} = ${inputs.quaternion ?? \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rotate\n ? null\n : `${quaternion} = quatQuat(${inputs.rotate}, ${quaternion});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n","// TODO:\n// if, switch, for, comment,\n// arrayIndex, arrayLength,\n\nexport const dynoIf = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoSwitch = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoFor = () => {\n throw new Error(\"Not implemented\");\n};\nexport const comment = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayIndex = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayLength = () => {\n throw new Error(\"Not implemented\");\n};\n","import { Dyno } from \"./base\";\nimport type {\n AllSamplerTypes,\n IsamplerTypes,\n NormalSamplerTypes,\n Sampler2DArrayTypes,\n Sampler2DTypes,\n Sampler3DTypes,\n SamplerCubeTypes,\n SamplerShadowTypes,\n SamplerTypes,\n UsamplerTypes,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nexport const textureSize = (\n texture: DynoVal,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TextureSize({ texture, lod });\nexport const texture = (\n texture: DynoVal,\n coord: DynoVal>,\n bias?: DynoVal<\"float\">,\n): DynoVal> => new Texture({ texture, coord, bias });\nexport const texelFetch = (\n texture: DynoVal,\n coord: DynoVal>,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TexelFetch({ texture, coord, lod });\n\nexport class TextureSize\n extends Dyno<{ texture: T; lod: \"int\" }, { size: TextureSizeType }>\n implements HasDynoOut>\n{\n constructor({ texture, lod }: { texture: DynoVal; lod?: DynoVal<\"int\"> }) {\n const textureType = valType(texture);\n super({\n inTypes: { texture: textureType, lod: \"int\" },\n outTypes: { size: textureSizeType(textureType) },\n inputs: { texture, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.size} = textureSize(${inputs.texture}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"size\");\n }\n}\n\nexport class Texture\n extends Dyno<\n { texture: T; coord: TextureCoordType; bias: \"float\" },\n { sample: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n bias,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n bias?: DynoVal<\"float\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureCoordType(textureType),\n bias: \"float\",\n },\n outTypes: { sample: textureReturnType(textureType) },\n inputs: { texture, coord, bias },\n statements: ({ inputs, outputs }) => [\n `${outputs.sample} = texture(${inputs.texture}, ${inputs.coord}${inputs.bias ? `, ${inputs.bias}` : \"\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"sample\");\n }\n}\n\nexport class TexelFetch\n extends Dyno<\n { texture: T; coord: TextureSizeType; lod: \"int\" },\n { texel: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n lod,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n lod?: DynoVal<\"int\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureSizeType(textureType),\n lod: \"int\",\n },\n outTypes: { texel: textureReturnType(textureType) },\n inputs: { texture, coord, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.texel} = texelFetch(${inputs.texture}, ${inputs.coord}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"texel\");\n }\n}\n\ntype TextureSizeType = T extends\n | Sampler2DTypes\n | SamplerCubeTypes\n ? \"ivec2\"\n : T extends Sampler3DTypes | Sampler2DArrayTypes\n ? \"ivec3\"\n : never;\n\nfunction textureSizeType(\n textureType: T,\n): TextureSizeType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DShadow\":\n case \"samplerCubeShadow\":\n return \"ivec2\" as TextureSizeType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DArrayShadow\":\n return \"ivec3\" as TextureSizeType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureCoordType = T extends Sampler2DTypes\n ? \"vec2\"\n : T extends\n | Sampler3DTypes\n | Sampler2DArrayTypes\n | SamplerCubeTypes\n | Sampler2DArrayTypes\n ? \"vec3\"\n : T extends \"samperCubeShadow\" | \"sampler2DArrayShadow\"\n ? \"vec4\"\n : never;\n\nfunction textureCoordType(\n textureType: T,\n): TextureCoordType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n return \"vec2\" as TextureCoordType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DShadow\":\n return \"vec3\" as TextureCoordType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"vec4\" as TextureCoordType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureReturnType = T extends SamplerTypes\n ? \"vec4\"\n : T extends UsamplerTypes\n ? \"uvec4\"\n : T extends IsamplerTypes\n ? \"ivec4\"\n : T extends SamplerShadowTypes\n ? \"float\"\n : never;\n\nfunction textureReturnType(\n textureType: T,\n): TextureReturnType {\n switch (textureType) {\n case \"sampler2D\":\n case \"sampler2DArray\":\n case \"sampler3D\":\n case \"samplerCube\":\n case \"sampler2DShadow\":\n return \"vec4\" as TextureReturnType;\n case \"usampler2D\":\n case \"usampler2DArray\":\n case \"usampler3D\":\n case \"usamplerCube\":\n return \"uvec4\" as TextureReturnType;\n case \"isampler2D\":\n case \"isampler2DArray\":\n case \"isampler3D\":\n case \"isamplerCube\":\n return \"ivec4\" as TextureReturnType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"float\" as TextureReturnType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n","import { BinaryOp, UnaryOp } from \"./base\";\nimport type { FloatTypes } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const radians = (\n degrees: DynoVal,\n): DynoVal => new Radians({ degrees });\nexport const degrees = (\n radians: DynoVal,\n): DynoVal => new Degrees({ radians });\n\nexport const sin = (radians: DynoVal): DynoVal =>\n new Sin({ radians });\nexport const cos = (radians: DynoVal): DynoVal =>\n new Cos({ radians });\nexport const tan = (radians: DynoVal): DynoVal =>\n new Tan({ radians });\n\nexport const asin = (sin: DynoVal): DynoVal =>\n new Asin({ sin });\nexport const acos = (cos: DynoVal): DynoVal =>\n new Acos({ cos });\nexport const atan = (tan: DynoVal): DynoVal =>\n new Atan({ tan });\nexport const atan2 = (\n y: DynoVal,\n x: DynoVal,\n): DynoVal => new Atan2({ y, x });\n\nexport const sinh = (x: DynoVal): DynoVal =>\n new Sinh({ x });\nexport const cosh = (x: DynoVal): DynoVal =>\n new Cosh({ x });\nexport const tanh = (x: DynoVal): DynoVal =>\n new Tanh({ x });\n\nexport const asinh = (x: DynoVal): DynoVal =>\n new Asinh({ x });\nexport const acosh = (x: DynoVal): DynoVal =>\n new Acosh({ x });\nexport const atanh = (x: DynoVal): DynoVal =>\n new Atanh({ x });\n\nexport class Radians extends UnaryOp {\n constructor({ degrees }: { degrees: DynoVal }) {\n super({ a: degrees, outTypeFunc: (aType) => aType, outKey: \"radians\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.radians} = radians(${inputs.a});`,\n ];\n }\n}\n\nexport class Degrees extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"degrees\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.degrees} = degrees(${inputs.a});`,\n ];\n }\n}\n\nexport class Sin extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"sin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sin} = sin(${inputs.a});`,\n ];\n }\n}\n\nexport class Cos extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"cos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cos} = cos(${inputs.a});`,\n ];\n }\n}\n\nexport class Tan extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"tan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tan} = tan(${inputs.a});`,\n ];\n }\n}\n\nexport class Asin extends UnaryOp {\n constructor({ sin }: { sin: DynoVal }) {\n super({ a: sin, outTypeFunc: (aType) => aType, outKey: \"asin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asin} = asin(${inputs.a});`,\n ];\n }\n}\n\nexport class Acos extends UnaryOp {\n constructor({ cos }: { cos: DynoVal }) {\n super({ a: cos, outTypeFunc: (aType) => aType, outKey: \"acos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acos} = acos(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan extends UnaryOp {\n constructor({ tan }: { tan: DynoVal }) {\n super({ a: tan, outTypeFunc: (aType) => aType, outKey: \"atan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan} = atan(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan2 extends BinaryOp {\n constructor({ y, x }: { y: DynoVal; x: DynoVal }) {\n super({\n a: y,\n b: x,\n outTypeFunc: (aType, bType) => aType,\n outKey: \"atan2\",\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan2} = atan2(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Sinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"sinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sinh} = sinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Cosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"cosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cosh} = cosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Tanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"tanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tanh} = tanh(${inputs.a});`,\n ];\n }\n}\n\nexport class Asinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"asinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asinh} = asinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Acosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"acosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acosh} = acosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Atanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"atanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atanh} = atanh(${inputs.a});`,\n ];\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout uvec4 target;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n target = uvec4(0u, 0u, 0u, 0u);\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out vec4 target3;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial target to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize depthTarget to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out uvec4 target2;\nlayout(location = 2) out vec4 target3;\n// layout(location = 0) out vec4 target3;\n// layout(location = 1) out uvec4 target;\n// layout(location = 2) out uvec4 target2;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial targets to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n target2 = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize target3 to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout vec4 target;\n\n{{ GLOBALS }}\n\nvoid computeReadback(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n if ((index >= 0) && (index < targetCount)) {\n computeReadback(index);\n } else {\n target = vec4(0.0, 0.0, 0.0, 0.0);\n }\n}\n","const float LN_SCALE_MIN = -12.0;\nconst float LN_SCALE_MAX = 9.0;\n\nconst uint SPLAT_TEX_WIDTH_BITS = 11u;\nconst uint SPLAT_TEX_HEIGHT_BITS = 11u;\nconst uint SPLAT_TEX_DEPTH_BITS = 11u;\nconst uint SPLAT_TEX_LAYER_BITS = SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nconst uint SPLAT_TEX_WIDTH = 1u << SPLAT_TEX_WIDTH_BITS;\nconst uint SPLAT_TEX_HEIGHT = 1u << SPLAT_TEX_HEIGHT_BITS;\nconst uint SPLAT_TEX_DEPTH = 1u << SPLAT_TEX_DEPTH_BITS;\n\nconst uint SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1u;\nconst uint SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1u;\nconst uint SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1u;\n\nconst uint F16_INF = 0x7c00u;\nconst float PI = 3.1415926535897932384626433832795;\n\nconst float INFINITY = 1.0 / 0.0;\nconst float NEG_INFINITY = -INFINITY;\n\nfloat sqr(float x) {\n return x * x;\n}\n\nfloat pow4(float x) {\n float x2 = x * x;\n return x2 * x2;\n}\n\nfloat pow8(float x) {\n float x4 = pow4(x);\n return x4 * x4;\n}\n\nvec3 srgbToLinear(vec3 rgb) {\n return pow(rgb, vec3(2.2));\n}\n\nvec3 linearToSrgb(vec3 rgb) {\n return pow(rgb, vec3(1.0 / 2.2));\n}\n\n// Encode a quaternion (vec4) into a 24‐bit uint with folded octahedral mapping.\nuint encodeQuatOctXy88R8(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float theta = 2.0 * acos(q.w);\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 8 bits (0 to 255)\n uint quantU = uint(clamp(round(u_f * 255.0), 0.0, 255.0));\n uint quantV = uint(clamp(round(v_f * 255.0), 0.0, 255.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 8 bits (0 to 255)\n uint angleInt = uint(clamp(round((theta / 3.14159265359) * 255.0), 0.0, 255.0));\n \n // Pack bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16u) | (quantV << 8u) | quantU;\n}\n\n// Decode a 24‐bit encoded uint into a quaternion (vec4) using the folded octahedral inverse.\nvec4 decodeQuatOctXy88R8(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0xFFu); // bits 0–7\n uint quantV = (encoded >> 8u) & uint(0xFFu); // bits 8–15\n uint angleInt = encoded >> 16u; // bits 16–23\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 255.0;\n float v_f = float(quantV) / 255.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 255.0) * 3.14159265359;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\nuint encodeQuatOctXy1010R12(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float halfTheta = acos(q.w);\n float theta = 2.0 * halfTheta;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 10 bits (0 to 1023)\n uint quantU = uint(clamp(round(u_f * 1023.0), 0.0, 1023.0));\n uint quantV = uint(clamp(round(v_f * 1023.0), 0.0, 1023.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 12 bits (0 to 4095)\n uint angleInt = uint(clamp(round((theta / PI) * 4095.0), 0.0, 4095.0));\n \n // Pack bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20u) | (quantV << 10u) | quantU;\n}\n\nvec4 decodeQuatOctXy1010R12(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0x3FFu); // bits 0–9\n uint quantV = (encoded >> 10u) & uint(0x3FFu); // bits 10–19\n uint angleInt = encoded >> 20u; // bits 20–31\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 1023.0;\n float v_f = float(quantV) / 1023.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 4095.0) * PI;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplatEncoding(\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n uint uQuat = encodeQuatOctXy88R8(quaternion);\n // uint uQuat = encodeQuatXyz888(quaternion);\n // uint uQuat = encodeQuatEulerXyz888(quaternion);\n uvec3 uQuat3 = uvec3(uQuat & 0xffu, (uQuat >> 8u) & 0xffu, (uQuat >> 16u) & 0xffu);\n\n // Encode scales in three uint8s, where 0=>0.0 and 1..=255 stores log scale\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n uvec3 uScales = uvec3(\n (scales.x == 0.0) ? 0u : uint(round(clamp((log(scales.x) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.y == 0.0) ? 0u : uint(round(clamp((log(scales.y) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.z == 0.0) ? 0u : uint(round(clamp((log(scales.z) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u\n );\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) | (uQuat3.x << 16u) | (uQuat3.y << 24u);\n uint word3 = uScales.x | (uScales.y << 8u) | (uScales.z << 16u) | (uQuat3.z << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplat(vec3 center, vec3 scales, vec4 quaternion, vec4 rgba) {\n return packSplatEncoding(center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nvoid unpackSplatEncoding(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec4(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu)\n ).xyz;\n\n uvec3 uScales = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n scales = vec3(\n (uScales.x == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.x - 1u) * lnScaleScale),\n (uScales.y == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.y - 1u) * lnScaleScale),\n (uScales.z == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.z - 1u) * lnScaleScale)\n );\n\n\n uint uQuat = ((word2 >> 16u) & 0xFFFFu) | ((word3 >> 8u) & 0xFF0000u);\n quaternion = decodeQuatOctXy88R8(uQuat);\n // quaternion = decodeQuatXyz888(uQuat);\n // quaternion = decodeQuatEulerXyz888(uQuat);\n}\n\n// Unpack a Gsplat from a uvec4\nvoid unpackSplat(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nuvec4 packSplatCovEncoding(\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 255.0 / (2.0 * (lnScaleMax - lnScaleMin));\n uvec3 uXxyyzz = uvec3(round(clamp((log(xxyyzz) - 2.0 * lnScaleMin) * diagScale, 0.0, 255.0)));\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n ivec3 iXyxzyzCor = ivec3(round(xyxzyzCor * 127.0));\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) |\n ((uint(iXyxzyzCor.y) & 0xffu) << 16u) |\n ((uint(iXyxzyzCor.z) & 0xffu) << 24u);\n uint word3 =\n uXxyyzz.x | (uXxyyzz.y << 8u) | (uXxyyzz.z << 16u) |\n ((uint(iXyxzyzCor.x) & 0xffu) << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\nvoid unpackSplatCovEncoding(uvec4 packedData, out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec3(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu).x\n );\n\n uvec3 uXxyyzz = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n ivec3 iXyxzyzCor = ivec3(int(word3) >> 24, int(word2 << 8u) >> 24, int(word2) >> 24);\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 2.0 * (lnScaleMax - lnScaleMin) / 255.0;\n xxyyzz = exp(2.0 * lnScaleMin + vec3(uXxyyzz) * diagScale);\n\n vec3 xyxzyzCor = vec3(iXyxzyzCor) / 127.0;\n xyxzyz = xyxzyzCor * vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExtCov(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, rgba.b));\n packedData2.x = packHalf2x16(rgba.rg);\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n xyxzyzCor = sign(xyxzyzCor) * clamp(log(abs(xyxzyzCor)), -100.0, -0.0000001);\n xxyyzz = log(xxyyzz);\n\n packedData2.y = packHalf2x16(vec2(xxyyzz.x, xxyyzz.y));\n packedData2.z = packHalf2x16(vec2(xxyyzz.z, xyxzyzCor.x));\n packedData2.w = packHalf2x16(vec2(xyxzyzCor.y, xyxzyzCor.z));\n}\n\nvoid unpackSplatExtCov(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n\n vec2 ab = unpackHalf2x16(packedData.w);\n vec2 rg = unpackHalf2x16(packedData2.x);\n rgba = vec4(rg, ab.y, ab.x);\n\n vec2 xxyy = unpackHalf2x16(packedData2.y);\n vec2 zzxy = unpackHalf2x16(packedData2.z);\n vec2 xzyz = unpackHalf2x16(packedData2.w);\n xxyyzz = exp(vec3(xxyy.x, xxyy.y, zzxy.x));\n xyxzyz = vec3(zzxy.y, xzyz.x, xzyz.y);\n xyxzyz = -sign(xyxzyz) * exp(-abs(xyxzyz));\n xyxzyz *= vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExt(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, 0.0));\n\n packedData2.x = packHalf2x16(rgba.rg);\n packedData2.y = packHalf2x16(vec2(rgba.b, log(scales.x)));\n packedData2.z = packHalf2x16(log(scales.yz));\n packedData2.w = encodeQuatOctXy1010R12(quaternion);\n}\n\nvec4 unpackSplatExtCenterAlpha(uvec4 packedData) {\n return vec4(\n uintBitsToFloat(packedData.x),\n uintBitsToFloat(packedData.y),\n uintBitsToFloat(packedData.z),\n unpackHalf2x16(packedData.w).x\n );\n}\n\nfloat unpackSplatExtAlpha(uvec4 packedData) {\n return unpackHalf2x16(packedData.w).x;\n}\n\nvoid unpackSplatExt(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n rgba.a = unpackHalf2x16(packedData.w).x;\n\n rgba.rg = unpackHalf2x16(packedData2.x);\n vec2 split = unpackHalf2x16(packedData2.y);\n rgba.b = split.x;\n scales.x = exp(split.y);\n scales.yz = exp(unpackHalf2x16(packedData2.z));\n quaternion = decodeQuatOctXy1010R12(packedData2.w);\n}\n\nuint encodeExtRgb(vec3 rgb) {\n vec3 absRgb = abs(rgb);\n float maxAbs = max(absRgb.r, max(absRgb.g, absRgb.b));\n\n int base = clamp(int(floor(log2(maxAbs))) + 15, 0, 31);\n float divisor = exp2(float(base - 15)) / 255.0;\n\n uvec3 uRgb = uvec3(round(clamp(absRgb / divisor, 0.0, 255.0)));\n uint expSigns = (uint(base) << 3u) | ((rgb.r < 0.0 ? 0x1u : 0u) | (rgb.g < 0.0 ? 0x2u : 0u) | (rgb.b < 0.0 ? 0x4u : 0u));\n return uRgb.r | (uRgb.g << 8u) | (uRgb.b << 16u) | (expSigns << 24u);\n}\n\nvec3 decodeExtRgb(uint encoded) {\n uint biasedBase = (encoded >> 27u) & 0x1fu;\n float divisor = exp2(float(int(biasedBase) - 15)) / 255.0;\n\n vec3 rgb = vec3(uvec3(encoded & 0xffu, (encoded >> 8u) & 0xffu, (encoded >> 16u) & 0xffu));\n rgb *= divisor;\n\n return vec3(\n ((encoded & 0x1000000u) != 0u) ? -rgb.r : rgb.r,\n ((encoded & 0x2000000u) != 0u) ? -rgb.g : rgb.g,\n ((encoded & 0x4000000u) != 0u) ? -rgb.b : rgb.b\n );\n}\n\n// Rotate vector v by quaternion q\nvec3 quatVec(vec4 q, vec3 v) {\n // Rotate vector v by quaternion q\n vec3 t = 2.0 * cross(q.xyz, v);\n return v + q.w * t + cross(q.xyz, t);\n}\n\n// Apply quaternion q1 after quaternion q2\nvec4 quatQuat(vec4 q1, vec4 q2) {\n return vec4(\n q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,\n q1.w * q2.y - q1.x * q2.z + q1.y * q2.w + q1.z * q2.x,\n q1.w * q2.z + q1.x * q2.y - q1.y * q2.x + q1.z * q2.w,\n q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z\n );\n}\n\nmat3 quaternionToMatrix(vec4 q) {\n return mat3(\n (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n (2.0 * (q.x * q.y + q.w * q.z)),\n (2.0 * (q.x * q.z - q.w * q.y)),\n (2.0 * (q.x * q.y - q.w * q.z)),\n (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n (2.0 * (q.y * q.z + q.w * q.x)),\n (2.0 * (q.x * q.z + q.w * q.y)),\n (2.0 * (q.y * q.z - q.w * q.x)),\n (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\nmat3 scaleQuaternionToMatrix(vec3 s, vec4 q) {\n // Compute the matrix of scaling by s then rotating by q\n return mat3(\n s.x * (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n s.x * (2.0 * (q.x * q.y + q.w * q.z)),\n s.x * (2.0 * (q.x * q.z - q.w * q.y)),\n s.y * (2.0 * (q.x * q.y - q.w * q.z)),\n s.y * (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n s.y * (2.0 * (q.y * q.z + q.w * q.x)),\n s.z * (2.0 * (q.x * q.z + q.w * q.y)),\n s.z * (2.0 * (q.y * q.z - q.w * q.x)),\n s.z * (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\n// Spherical lerp between two quaternions\nvec4 slerp(vec4 q1, vec4 q2, float t) {\n // Compute the cosine of the angle between the two vectors\n float cosHalfTheta = dot(q1, q2);\n\n // If q1=q2 or q1=-q2 then theta = 0 and we can return q1\n if (abs(cosHalfTheta) >= 0.999) {\n return q1;\n }\n \n // If q1 and q2 are more than 180 degrees apart, \n // we need to negate one to get the shortest path\n if (cosHalfTheta < 0.0) {\n q2 = -q2;\n cosHalfTheta = -cosHalfTheta;\n }\n\n // Calculate temporary values\n float halfTheta = acos(cosHalfTheta);\n float sinHalfTheta = sqrt(1.0 - cosHalfTheta * cosHalfTheta);\n\n // Calculate the interpolation factors\n float ratioA = sin((1.0 - t) * halfTheta) / sinHalfTheta;\n float ratioB = sin(t * halfTheta) / sinHalfTheta;\n\n // Calculate the interpolated quaternion\n return q1 * ratioA + q2 * ratioB;\n}\n\nivec3 splatTexCoord(int index) {\n uint x = uint(index) & SPLAT_TEX_WIDTH_MASK;\n uint y = (uint(index) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK;\n uint z = uint(index) >> SPLAT_TEX_LAYER_BITS;\n return ivec3(x, y, z);\n}\n\nivec3 pagedSplatTexCoord(int index) {\n return ivec3(index & 255, (index >> 8) & 255, index >> 16);\n}\n\nvec4 uintToVec4(uint u32) {\n uvec4 bytes = uvec4(\n u32 & 0xFFu,\n (u32 >> 8u) & 0xFFu,\n (u32 >> 16u) & 0xFFu,\n (u32 >> 24u) & 0xFFu\n );\n return vec4(bytes) / 255.0;\n}\n\nvec4 floatToVec4(float f) {\n uint u32 = floatBitsToUint(f);\n return uintToVec4(u32);\n}\n\nvec3 debugColorHue(uint i) {\n // Golden ratio conjugate; spreads hues evenly\n float hue = fract(float(i) * 0.61803398875);\n // HSV to RGB with fixed S/V\n vec3 rgb = clamp(abs(mod(hue*6.0 + vec3(0.0,4.0,2.0), 6.0) - 3.0) - 1.0, 0.0, 1.0);\n return mix(vec3(1.0), rgb, 0.85); // saturation ~0.85, value ~1.0\n}\n","\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\n#include \n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n if (false) {\n // if (debugFlag) {\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n float min1a = min(1.0, a);\n rgba.a = mix(min1a, min1a * exp(exponent), falloff);\n } else {\n // New falloff function, more or less equivalent\n if (rgba.a <= 1.0) {\n rgba.a = mix(rgba.a, rgba.a * exp(-0.5 * z2), falloff);\n } else {\n float a = exp((rgba.a*rgba.a - 1.0) / 2.718281828459045);\n float alpha = 1.0 - pow(1.0 - exp(-0.5 * z2), a);\n rgba.a = mix(1.0, alpha, falloff);\n }\n }\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n\n #include \n}\n","\nprecision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\nflat out float adjustedStdDev;\n\n// uniform uint numSplats;\nuniform vec2 renderSize;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform mat3 renderToViewBasis;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform bool enableExtSplats;\nuniform bool enableCovSplats;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool enable2DGS;\nuniform bool lodInflate;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2D ordering;\nuniform usampler2DArray extSplats;\nuniform usampler2DArray extSplats2;\n\n// Required by logdepthbuf_pars_vertex (normally defined in three.js #include )\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == -1.0;\n}\n\n#include \n\nvoid main() {\n // Default to outside the frustum so it's discarded if we return early\n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n ivec2 orderingCoord = ivec2((gl_InstanceID >> 2) & 4095, gl_InstanceID >> 14);\n uint splatIndex = texelFetch(ordering, orderingCoord, 0)[gl_InstanceID & 3];\n if (splatIndex == 0xffffffffu) {\n // Special value reserved for \"no splat\"\n return;\n }\n\n ivec3 texCoord = splatTexCoord(int(splatIndex));\n vec3 center, scales, xxyyzz, xyxzyz;\n vec4 quaternion, rgba;\n mat3 cov3D;\n bvec3 zeroScales = bvec3(false);\n\n if (enableExtSplats) {\n uvec4 ext1 = texelFetch(extSplats, texCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if ((alpha == 0.0) || (alpha < minAlpha)) {\n return;\n }\n uvec4 ext2 = texelFetch(extSplats2, texCoord, 0);\n\n if (!enableCovSplats) {\n unpackSplatExt(ext1, ext2, center, scales, quaternion, rgba);\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatExtCov(ext1, ext2, center, rgba, xxyyzz, xyxzyz);\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n } else {\n uvec4 packedData = texelFetch(extSplats, texCoord, 0);\n if (!enableCovSplats) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatCovEncoding(packedData, center, rgba, xxyyzz, xyxzyz, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n\n rgba.a *= 2.0;\n if ((rgba.a == 0.0) || (rgba.a < minAlpha)) {\n return;\n }\n }\n\n adjustedStdDev = maxStdDev;\n if (rgba.a > 1.0) {\n // Stretch 1..2 to 1..5\n rgba.a = min(rgba.a * 4.0 - 3.0, 5.0);\n\n if (lodInflate) {\n // Adjust size to componsate for loss of opacity\n float opacity = exp((rgba.a * rgba.a - 1.0) / 2.718281828459045);\n float rescale = pow(opacity, 1.0 / 3.0);\n scales *= rescale;\n rgba.a = 1.0;\n }\n\n // Expand the maximum std dev to approximately cover the larger range\n adjustedStdDev = maxStdDev + 0.7 * (rgba.a - 1.0);\n }\n\n // Compute the view space center of the splat\n vec3 viewCenter = (!enableCovSplats ? quatVec(renderToViewQuat, center) : (renderToViewBasis * center)) + renderToViewPos;\n\n // Discard splats behind the camera\n if (viewCenter.z >= 0.0) {\n return;\n }\n\n // Compute the clip space center of the splat\n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n // Discard splats outside near/far planes\n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n // Discard splats more than clipXY times outside the XY frustum\n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n vRgba = rgba;\n vSplatUv = position.xy * adjustedStdDev;\n\n // Record the splat index for entropy\n vSplatIndex = splatIndex;\n\n if (!enableCovSplats) {\n // Compute view space quaternion of splat\n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n\n #include \n return;\n }\n\n // Compute the 3D covariance matrix of the splat\n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n cov3D = RS * transpose(RS);\n } else {\n cov3D = mat3(\n xxyyzz.x, xyxzyz.x, xyxzyz.y,\n xyxzyz.x, xxyyzz.y, xyxzyz.z,\n xyxzyz.y, xyxzyz.z, xxyyzz.z\n );\n cov3D = renderToViewBasis * cov3D * transpose(renderToViewBasis);\n }\n\n // Compute the Jacobian of the splat's projection at its center\n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if (isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n // Compute the 2D covariance by projecting the 3D covariance\n // and picking out the XY plane components.\n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n // Optionally pre-blur the splat to match non-antialias optimized splats\n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n // Do convolution with a 0.5-pixel Gaussian for anti-aliasing: sqrt(0.3) ~= 0.5\n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n // Compute anti-aliasing intensity scaling factor\n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n vRgba.a = rgba.a;\n\n // Compute the eigenvalue and eigenvectors of the 2D covariance matrix\n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = (abs(b) > 0.001) ? normalize(vec2(b, eigen1 - a))\n : ((a >= d) ? vec2(1.0, 0.0) : vec2(0.0, 1.0));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n // Compute the NDC coordinates for the ellipsoid's diagonal axes.\n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n\n // Compute NDC center of the splat\n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n\n #include \n}\n","import * as THREE from \"three\";\n\nimport computeUvec4Template from \"./shaders/computeUvec4.glsl\";\nimport computeUvec4Vec4Template from \"./shaders/computeUvec4_Vec4.glsl\";\nimport computeUvec4x2Vec4Template from \"./shaders/computeUvec4x2_Vec4.glsl\";\nimport computeVec4Template from \"./shaders/computeVec4.glsl\";\nimport splatDefines from \"./shaders/splatDefines.glsl\";\nimport splatFragment from \"./shaders/splatFragment.glsl\";\nimport splatVertex from \"./shaders/splatVertex.glsl\";\n\nlet shaders: Record | null = null;\n\nexport function getShaders(): Record {\n if (!shaders) {\n // @ts-ignore\n THREE.ShaderChunk.splatDefines = splatDefines;\n shaders = {\n splatVertex,\n splatFragment,\n computeVec4Template,\n computeUvec4Vec4Template,\n computeUvec4x2Vec4Template,\n computeUvec4Template,\n };\n }\n return shaders;\n}\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { type Dyno, OutputRgba8, dynoBlock } from \"./dyno\";\nimport { DynoProgram, DynoProgramTemplate } from \"./dyno/program\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize } from \"./utils\";\n\n// Readback can be used to run a Dyno program that maps an index to a 32-bit\n// RGBA8 value, which is the only allowed, portable readback format for WebGL2.\n// Using data packing and conversion you can read back any 32-bit value, which\n// Spark uses to read back 2 float16 Gsplat distance values per index.\n\nexport type Rgba8Readback = Dyno<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n\n// Readback can be performed with various typed buffers, making it convenient\n// to encode readback data in a variety of formats.\n\nexport type ReadbackBuffer =\n | ArrayBuffer\n | Uint8Array\n | Uint8ClampedArray\n | Int8Array\n | Uint16Array\n | Int16Array\n | Uint32Array\n | Int32Array\n | Float32Array;\n\nexport class Readback {\n renderer?: THREE.WebGLRenderer;\n target?: THREE.WebGLArrayRenderTarget;\n capacity: number;\n count: number;\n\n constructor({ renderer }: { renderer?: THREE.WebGLRenderer } = {}) {\n this.renderer = renderer;\n this.capacity = 0;\n this.count = 0;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n }\n\n // Ensure we have a buffer large enough for the readback of count indices.\n // Pass in previous bufer of the desired type.\n static ensureBuffer(count: number, buffer: B): B {\n // Readback is performed in a 2D array of pixels, so round up with SPLAT_TEX_WIDTH\n const roundedCount =\n Math.ceil(Math.max(1, count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const bytes = roundedCount * 4;\n if (buffer.byteLength >= bytes) {\n return buffer;\n }\n\n // Need a larger buffer, create a new one of the same type\n const newBuffer = new ArrayBuffer(bytes);\n if (buffer instanceof ArrayBuffer) {\n return newBuffer as B;\n }\n\n const ctor = buffer.constructor as { new (arrayBuffer: ArrayBuffer): B };\n return new ctor(newBuffer) as B;\n }\n\n ensureBuffer(count: number, buffer: B): B {\n return Readback.ensureBuffer(count, buffer);\n }\n\n // Ensure our render target is large enough for the readback of capacity indices.\n ensureCapacity(capacity: number) {\n const { width, height, depth, maxSplats } = getTextureSize(capacity);\n if (!this.target || maxSplats > this.capacity) {\n this.dispose();\n this.capacity = maxSplats;\n\n // The only portable readback format for WebGL2 is RGBA8\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAFormat;\n this.target.texture.type = THREE.UnsignedByteType;\n this.target.texture.internalFormat = \"RGBA8\";\n this.target.scissorTest = true;\n }\n }\n\n // Get a program and THREE.RawShaderMaterial for a given Rgba8Readback,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(reader: Rgba8Readback): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = Readback.readbackProgram.get(reader);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n reader.inputs.index = index;\n const rgba8 = new OutputRgba8({ rgba8: reader.outputs.rgba8 });\n return { rgba8 };\n },\n );\n if (!Readback.programTemplate) {\n Readback.programTemplate = new DynoProgramTemplate(\n getShaders().computeVec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { rgba8: \"target\" },\n template: Readback.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n Readback.readbackProgram.set(reader, program);\n }\n\n const material = program.prepareMaterial();\n Readback.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private process({\n count,\n material,\n }: { count: number; material: THREE.RawShaderMaterial }) {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n // Run the program in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of indices.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = 0;\n material.uniforms.targetCount.value = count;\n let baseIndex = 0;\n\n // Keep generating layers until completed count items\n while (baseIndex < count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((count - layerBase) / SPLAT_TEX_WIDTH),\n );\n material.uniforms.targetLayer.value = layer;\n\n // Render the desired portion of the layer\n this.target.scissor.set(0, 0, SPLAT_TEX_WIDTH, layerYEnd);\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n Readback.fullScreenQuad.render(renderer);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.count = count;\n }\n\n private async read({\n readback,\n }: { readback: B }): Promise {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(this.count / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(\n readback instanceof ArrayBuffer ? readback : readback.buffer,\n );\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < this.count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((this.count - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n renderer.setRenderTarget(this.target, layer);\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n const promise = renderer?.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n );\n promises.push(promise);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n // const gl = renderer.getContext() as WebGL2RenderingContext;\n // gl.flush();\n return Promise.all(promises).then(() => readback);\n }\n\n // Perform render operation to run the Rgba8Readback program\n // but don't perform the readback yet.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer?: THREE.WebGLRenderer }) {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n this.process({ count, material });\n this.resetRenderState(this.renderer, renderState);\n }\n\n // Perform a readback of the render target, returning a buffer of the\n // given type.\n async readback({\n readback,\n }: { readback: B }): Promise {\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n const renderState = this.saveRenderState(this.renderer);\n const promise = this.read({ readback });\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n // Perform a render and readback operation for the given Rgba8Readback,\n // and readback buffer (call ensureBuffer first).\n async renderReadback({\n reader,\n count,\n renderer,\n readback,\n }: {\n reader: Rgba8Readback;\n count: number;\n renderer?: THREE.WebGLRenderer;\n readback: B;\n }): Promise {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n\n // Generate output\n this.process({ count, material });\n\n // Initiate readback\n const promise = this.read({ readback });\n\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n getTexture(): THREE.DataArrayTexture | undefined {\n return this.target?.texture;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for Rgba8Readback programs\n static readbackProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n}\n","import * as THREE from \"three\";\n\nimport {\n CovSplat,\n Dyno,\n DynoInt,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { newArray } from \"./utils\";\n\n// Spark provides the ability to apply \"edits\" to Gsplats as part of the standard\n// SplatMesh pipeline. These edits take the form of a sequence of operations,\n// applied one at a time to the set of Gsplats in its packedSplats. Each operation\n// evaluates a 7-dimensional field (RGBA and XYZ displacement) at each point in\n// space that derives from N=1 or more Signed Distance Field shapes (such as spheres,\n// boxes, planes, etc.), blended together and across inside-outisde boundaries.\n\n// The result is a an RGBA,XYZ value for each point in space, which combined with\n// SplatEditRgbaBlendMode.MULTIPLY/SET_RGB/ADD_RGBA can be used to create special\n// effects, for example simulating simple lighting or applying deformations in space,\n// whose parameters can be updated each frame to create animated effects.\n\n// RGBA-XYZ values are computed by blending together values from all SDF shapes using\n// the exponential \"softmax\" function, which is commutative (so blending order within\n// a SplatEdit operation doesn't matter). The parameter SplatEdit.sdfSmooth controls\n// the blending scale between SDF shapes, while SplatEdit.softEdge controls the scale\n// of soft inside-outside shape edit blending. Their default values start at 0.0 and\n// should be increased to soften the effect.\n\n// Note that XYZ displacement values are blended in the same way as RGBA, with a\n// resulting displacement field that can be quite complex but \"softly\" blending\n// between shapes. These RGBA-XYZ edits, along with time-based and overlapping\n// fields can create many interesting animations and special effects, such as\n// rippling leaves in the wind, an angry fire, or a looping water effects. Simply\n// update the SplatEdit and SplatEditSdf objects and the operations will be applied\n// immediately to the Gsplats in the scene.\n\nexport enum SplatEditSdfType {\n // ALL: Affects all points in space\n ALL = \"all\",\n // PLANE: Infinite plane (position, rotation)\n PLANE = \"plane\",\n // SPHERE: Sphere (position, radius)\n SPHERE = \"sphere\",\n // BOX: Rounded box (position, rotation, sizes, radius)\n BOX = \"box\",\n // ELLIPSOID: Ellipsoid (position, rotation, sizes)\n ELLIPSOID = \"ellipsoid\",\n // CYLINDER: Cylinder (position, rotation, radius, size_y)\n CYLINDER = \"cylinder\",\n // CAPSULE: Capsule (position, rotation, radius, size_y)\n CAPSULE = \"capsule\",\n // INFINITE_CONE: Infinite cone (position, rotation, radius=angle)\n INFINITE_CONE = \"infinite_cone\",\n}\n\nfunction sdfTypeToNumber(type: SplatEditSdfType) {\n switch (type) {\n case SplatEditSdfType.ALL:\n return 0;\n case SplatEditSdfType.PLANE:\n return 1;\n case SplatEditSdfType.SPHERE:\n return 2;\n case SplatEditSdfType.BOX:\n return 3;\n case SplatEditSdfType.ELLIPSOID:\n return 4;\n case SplatEditSdfType.CYLINDER:\n return 5;\n case SplatEditSdfType.CAPSULE:\n return 6;\n case SplatEditSdfType.INFINITE_CONE:\n return 7;\n default:\n throw new Error(`Unknown SDF type: ${type}`);\n }\n}\n\nexport enum SplatEditRgbaBlendMode {\n // The RGBA of the splat is multiplied component-wise by the SDF’s\n // RGBA value at that point in space.\n MULTIPLY = \"multiply\",\n // Ignore the Alpha value in the SDF, but set the splat’s RGB to\n // equal the SDF’s RGB value at that point.\n SET_RGB = \"set_rgb\",\n // Add the SDF’s RGBA value at that point to the RGBA value of\n // the Gsplat. This can produce hyper-saturated results, but is useful\n // to easily “light up” areas.\n ADD_RGBA = \"add_rgba\",\n}\n\nfunction rgbaBlendModeToNumber(mode: SplatEditRgbaBlendMode) {\n switch (mode) {\n case SplatEditRgbaBlendMode.MULTIPLY:\n return 0;\n case SplatEditRgbaBlendMode.SET_RGB:\n return 1;\n case SplatEditRgbaBlendMode.ADD_RGBA:\n return 2;\n default:\n throw new Error(`Unknown blend mode: ${mode}`);\n }\n}\n\nexport type SplatEditSdfOptions = {\n // The SDF shape type: ALL, PLANE, SPHERE, BOX, ELLIPSOID, CYLINDER, CAPSULE,\n // or INFINITE_CONE. (default: SplatEditSdfType.SPHERE)\n type?: SplatEditSdfType;\n // Invert the SDF evaluation, swapping inside and outside regions. (default: false)\n invert?: boolean;\n // Opacity / \"alpha\" value used differently by blending modes (default: 1.0)\n opacity?: number;\n // RGB color applied within the shape. (default: new THREE.Color(1.0, 1.0, 1.0))\n color?: THREE.Color;\n // XYZ displacement applied to splat positions inside the shape.\n // (default: new THREE.Vector3(0.0, 0.0, 0.0))\n displace?: THREE.Vector3;\n // Shape-specific size parameter: sphere radius, box corner rounding,\n // cylinder/capsule radius, or for the infinite cone the angle factor\n // (opening half-angle = π/4 × radius).\n radius?: number;\n};\n\nexport class SplatEditSdf extends THREE.Object3D {\n type: SplatEditSdfType;\n invert: boolean;\n opacity: number;\n color: THREE.Color;\n displace: THREE.Vector3;\n radius: number;\n\n constructor(options: SplatEditSdfOptions = {}) {\n super();\n const { type, invert, opacity, color, displace, radius } = options;\n this.type = type ?? SplatEditSdfType.SPHERE;\n this.invert = invert ?? false;\n this.opacity = opacity ?? 1.0;\n this.color = color ?? new THREE.Color(1.0, 1.0, 1.0);\n this.displace = displace ?? new THREE.Vector3(0.0, 0.0, 0.0);\n this.radius = radius ?? 0.0;\n }\n}\n\nexport type SplatEditOptions = {\n // Name of this edit operation. If you omit it, a default \"Edit 1\", \"Edit 2\", ...\n // is assigned.\n name?: string;\n // How the SDF’s RGBA modifies each splat’s RGBA: multiply, overwrite RGB,\n // or add RGBA. (default: MULTIPLY)\n rgbaBlendMode?: SplatEditRgbaBlendMode;\n // Smoothing (in world‐space units) for blending between multiple SDF shapes\n // at their boundaries. (default: 0.0)\n sdfSmooth?: number;\n // Soft‐edge falloff radius (in world‐space units) around each SDF shape’s surface.\n // (default: 0.0)\n softEdge?: number;\n // Invert the SDF evaluation (inside/outside swap). (default: false)\n invert?: boolean;\n // Explicit array of SplatEditSdf objects to include. If null, any child\n // SplatEditSdf instances are used.\n sdfs?: SplatEditSdf[];\n};\n\nexport class SplatEdit extends THREE.Object3D {\n // ordering used to apply SplatEdit operations to Gsplats. This is implicitly\n // increased with each new SplatEdit. Reassigning ordering can be used to\n // reorder the operations.\n ordering: number;\n rgbaBlendMode: SplatEditRgbaBlendMode;\n sdfSmooth: number;\n softEdge: number;\n invert: boolean;\n\n // Optional list of explicit SDFs to including in this edit. If it is null, then\n // any SplatEditSdf children in the scene graph will be added automatically.\n sdfs: SplatEditSdf[] | null;\n\n // The next ordering number to use for a new SplatEdit, auto-incremented\n static nextOrdering = 1;\n\n constructor(options: SplatEditOptions = {}) {\n const {\n name,\n rgbaBlendMode = SplatEditRgbaBlendMode.MULTIPLY,\n sdfSmooth = 0.0,\n softEdge = 0.0,\n invert = false,\n sdfs = null,\n } = options;\n\n super();\n this.rgbaBlendMode = rgbaBlendMode;\n this.sdfSmooth = sdfSmooth;\n this.softEdge = softEdge;\n this.invert = invert;\n this.sdfs = sdfs;\n // Assign and auto-increment unique ordering number for this edit\n this.ordering = SplatEdit.nextOrdering++;\n // Automatically assign a default name if not provided\n this.name = name ?? `Edit ${this.ordering}`;\n }\n\n addSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n this.sdfs = [];\n }\n if (!this.sdfs.includes(sdf)) {\n this.sdfs.push(sdf);\n }\n }\n\n removeSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n return;\n }\n this.sdfs = this.sdfs.filter((s) => s !== sdf);\n }\n}\n\n// Dyno implementation of RGBA-XYZ SDF editing.\n// The SDFs are encoded in a texture while the edits are encoded\n// as a uniform uvec4 array.\n\nexport class SplatEdits {\n // Maximum number of SDFs allocated\n maxSdfs: number;\n // Number of SDFs currently in use\n numSdfs: number;\n // Encoded SDF data\n sdfData: Uint32Array;\n // Float interpretation of SDF data\n sdfFloatData: Float32Array;\n // Texture with encoded SDF data\n sdfTexture: THREE.DataTexture;\n // An SdfArray dyno uniform\n dynoSdfArray: DynoUniform;\n\n // Maximum number of edits allocated\n maxEdits: number;\n // Number of edits currently in use\n numEdits: number;\n // Encoded edit data\n editData: Uint32Array;\n // Float interpretation of edit data\n editFloatData: Float32Array;\n // A dyno uniform for the number of edits\n dynoNumEdits: DynoUniform<\"int\", \"numEdits\">;\n // A dyno uniform for the encoded edits, one uvec4 per edit\n dynoEdits: DynoUniform<\"uvec4\", \"edits\">;\n\n constructor({ maxSdfs, maxEdits }: { maxSdfs?: number; maxEdits?: number }) {\n // Allocate at least 16 SDFs for efficiency\n this.maxSdfs = Math.max(16, maxSdfs ?? 0);\n this.numSdfs = 0;\n\n // Allocate space: 8 x (u)vec4 values per SDF, Uint32 and Float32 arrays\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n this.dynoSdfArray = new DynoUniform({\n key: \"sdfArray\",\n type: SdfArray,\n globals: () => [defineSdfArray],\n value: {\n numSdfs: 0,\n sdfTexture: this.sdfTexture,\n },\n update: (uniform) => {\n uniform.numSdfs = this.numSdfs;\n uniform.sdfTexture = this.sdfTexture;\n return uniform;\n },\n });\n\n // Allocate at least 16 edits slots for efficiency\n this.maxEdits = Math.max(16, maxEdits ?? 0);\n this.numEdits = 0;\n // Allocate space: 1 uvec4 per edit\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoNumEdits = new DynoInt({ value: 0 });\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n }\n\n private newSdfTexture(data: Uint32Array, maxSdfs: number) {\n const texture = new THREE.DataTexture(\n data,\n 8,\n maxSdfs,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n }\n\n private newEdits(data: Uint32Array, maxEdits: number) {\n return new DynoUniform({\n key: \"edits\",\n type: \"uvec4\",\n count: maxEdits,\n globals: () => [defineEdit],\n value: data,\n });\n }\n\n // Ensure our SDF texture and edits uniform array have enough capacity.\n // Reallocate if not.\n private ensureCapacity({\n maxSdfs,\n maxEdits,\n }: { maxSdfs: number; maxEdits: number }): boolean {\n let dynoUpdated = false;\n if (maxSdfs > this.sdfTexture.image.height) {\n this.sdfTexture.dispose();\n // At least double the size to avoid frequent reallocations\n this.maxSdfs = Math.max(this.maxSdfs * 2, maxSdfs);\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n }\n if (maxEdits > (this.dynoEdits.count ?? 0)) {\n // At least double the size to avoid frequent reallocations\n this.maxEdits = Math.max(this.maxEdits * 2, maxEdits);\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n dynoUpdated = true;\n }\n return dynoUpdated;\n }\n\n private updateEditData(offset: number, value: number): boolean {\n // Update an edit uint32 value and return true if it changed\n const updated = this.editData[offset] !== value;\n this.editData[offset] = value;\n return updated;\n }\n\n private updateEditFloatData(offset: number, value: number): boolean {\n // Update an edit float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.editFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.editFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeEdit(\n editIndex: number,\n {\n sdfFirst,\n sdfCount,\n invert,\n rgbaBlendMode,\n softEdge,\n sdfSmooth,\n }: {\n sdfFirst: number;\n sdfCount: number;\n invert: boolean;\n rgbaBlendMode: number;\n softEdge: number;\n sdfSmooth: number;\n },\n ): boolean {\n const base = editIndex * 4;\n let updated = false;\n // Encode the edit fields into the editData array and check if any changed\n updated =\n this.updateEditData(base + 0, rgbaBlendMode | (invert ? 1 << 8 : 0)) ||\n updated;\n updated =\n this.updateEditData(base + 1, sdfFirst | (sdfCount << 16)) || updated;\n updated = this.updateEditFloatData(base + 2, softEdge) || updated;\n updated = this.updateEditFloatData(base + 3, sdfSmooth) || updated;\n return updated;\n }\n\n private updateSdfData(offset: number, value: number): boolean {\n // Update an SDF uint32 value and return true if it changed\n const updated = this.sdfData[offset] !== value;\n this.sdfData[offset] = value;\n return updated;\n }\n\n private updateSdfFloatData(offset: number, value: number): boolean {\n // Update an SDF float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.sdfFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.sdfFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeSdf(\n sdfIndex: number,\n {\n sdfType,\n invert,\n center,\n quaternion,\n scale,\n sizes,\n }: {\n sdfType: number;\n invert?: boolean;\n center?: THREE.Vector3;\n quaternion?: THREE.Quaternion;\n scale?: THREE.Vector3;\n sizes?: THREE.Vector4;\n },\n values: THREE.Vector4[],\n ): boolean {\n // Encode the SDF fields into the sdfData array and check if any changed\n const base = sdfIndex * (8 * 4);\n const flags = sdfType | (invert ? 1 << 8 : 0);\n let updated = false;\n\n updated = this.updateSdfFloatData(base + 0, center?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 1, center?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 2, center?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 3, flags) || updated;\n\n updated = this.updateSdfFloatData(base + 4, quaternion?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 5, quaternion?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 6, quaternion?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 7, quaternion?.w ?? 0) || updated;\n\n updated = this.updateSdfFloatData(base + 8, scale?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 9, scale?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 10, scale?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 11, 0) || updated;\n\n updated = this.updateSdfFloatData(base + 12, sizes?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 13, sizes?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 14, sizes?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 15, sizes?.w ?? 0) || updated;\n\n const nValues = Math.min(4, values.length);\n for (let i = 0; i < nValues; ++i) {\n const vBase = base + 16 + i * 4;\n updated = this.updateSdfFloatData(vBase + 0, values[i].x) || updated;\n updated = this.updateSdfFloatData(vBase + 1, values[i].y) || updated;\n updated = this.updateSdfFloatData(vBase + 2, values[i].z) || updated;\n updated = this.updateSdfFloatData(vBase + 3, values[i].w) || updated;\n }\n return updated;\n }\n\n // Update the SDFs and edits from an array of SplatEdits and their\n // associated SplatEditSdfs, updating it for the dyno shader program.\n update(edits: { edit: SplatEdit; sdfs: SplatEditSdf[] }[]): {\n updated: boolean;\n dynoUpdated: boolean;\n } {\n const sdfCount = edits.reduce((total, { sdfs }) => total + sdfs.length, 0);\n const dynoUpdated = this.ensureCapacity({\n maxEdits: edits.length,\n maxSdfs: sdfCount,\n });\n\n const values = [new THREE.Vector4(), new THREE.Vector4()];\n const center = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const scale = new THREE.Vector3();\n const sizes = new THREE.Vector4();\n\n let sdfIndex = 0;\n let updated = dynoUpdated;\n\n if (edits.length !== this.dynoNumEdits.value) {\n this.dynoNumEdits.value = edits.length;\n this.numEdits = edits.length;\n updated = true;\n }\n\n for (const [editIndex, { edit, sdfs }] of edits.entries()) {\n updated =\n this.encodeEdit(editIndex, {\n sdfFirst: sdfIndex,\n sdfCount: sdfs.length,\n invert: edit.invert,\n rgbaBlendMode: rgbaBlendModeToNumber(edit.rgbaBlendMode),\n softEdge: edit.softEdge,\n sdfSmooth: edit.sdfSmooth,\n }) || updated;\n\n let sdfUpdated = false;\n for (const sdf of sdfs) {\n sizes.set(sdf.scale.x, sdf.scale.y, sdf.scale.z, sdf.radius);\n // Temporarily set the SDF scale to 1.0 to get the world-to-SDF\n // transform without scaling. The SDF treats the scale separately.\n sdf.scale.setScalar(1.0);\n sdf.updateMatrixWorld();\n const worldToSdf = sdf.matrixWorld.clone().invert();\n worldToSdf.decompose(center, quaternion, scale);\n\n sdf.scale.set(sizes.x, sizes.y, sizes.z);\n sdf.updateMatrixWorld();\n\n values[0].set(sdf.color.r, sdf.color.g, sdf.color.b, sdf.opacity);\n values[1].set(sdf.displace.x, sdf.displace.y, sdf.displace.z, 1.0);\n\n sdfUpdated =\n this.encodeSdf(\n sdfIndex,\n {\n sdfType: sdfTypeToNumber(sdf.type),\n invert: sdf.invert,\n center,\n quaternion,\n scale,\n sizes,\n },\n values,\n ) || sdfUpdated;\n\n sdfIndex += 1;\n }\n this.numSdfs = sdfIndex;\n if (sdfUpdated) {\n this.sdfTexture.needsUpdate = true;\n }\n updated ||= sdfUpdated;\n }\n return { updated, dynoUpdated };\n }\n\n // Modify a Gsplat in a dyno shader program using the current edits and SDFs.\n modify(gsplat: DynoVal): DynoVal {\n return applyGsplatRgbaDisplaceEdits(\n gsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n return applyCovSplatRgbaDisplaceEdits(\n covsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n}\n\n// Dyno types and components:\n\n// An SdfArray contains a collection of SDFs encoded in a texture.\n// Each SDF has a type and geometric parameters, but also encodes\n// 4 x vec4 values, which can all be blended across multiple SDFs.\n// The SplatEdit system uses 7 of these 16 values to encode RGBA-XYZ edits,\n// but more can be added, and these SDFs can be used for entirely different\n// purposes as well.\n\nexport const SdfArray = { type: \"SdfArray\" } as { type: \"SdfArray\" };\n\nexport const defineSdfArray = unindent(`\n struct SdfArray {\n int numSdfs;\n usampler2D sdfTexture;\n };\n\n void unpackSdfArray(\n usampler2D sdfTexture, int sdfIndex, out uint flags,\n out vec3 center, out vec4 quaternion, out vec3 scale, out vec4 sizes,\n int numValues, out vec4 values[4]\n ) {\n uvec4 temp = texelFetch(sdfTexture, ivec2(0, sdfIndex), 0);\n flags = temp.w;\n center = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(1, sdfIndex), 0);\n quaternion = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n temp = texelFetch(sdfTexture, ivec2(2, sdfIndex), 0);\n scale = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(3, sdfIndex), 0);\n sizes = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n for (int i = 0; i < numValues; ++i) {\n temp = texelFetch(sdfTexture, ivec2(4 + i, sdfIndex), 0);\n values[i] = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n }\n }\n\n const uint SDF_FLAG_TYPE = 0xFFu;\n const uint SDF_FLAG_INVERT = 1u << 8u;\n\n const uint SDF_TYPE_ALL = 0u;\n const uint SDF_TYPE_PLANE = 1u;\n const uint SDF_TYPE_SPHERE = 2u;\n const uint SDF_TYPE_BOX = 3u;\n const uint SDF_TYPE_ELLIPSOID = 4u;\n const uint SDF_TYPE_CYLINDER = 5u;\n const uint SDF_TYPE_CAPSULE = 6u;\n const uint SDF_TYPE_INFINITE_CONE = 7u;\n\n float evaluateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 outValues[4]\n ) {\n float distanceAccum = (smoothK == 0.0) ? 1.0 / 0.0 : 0.0;\n float maxExp = -1.0 / 0.0;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = vec4(0.0);\n }\n\n uint flags;\n vec3 center, scale;\n vec4 quaternion, sizes;\n vec4 values[4];\n\n int sdfLast = min(sdfFirst + sdfCount, numSdfs);\n for (int index = sdfFirst; index < sdfLast; ++index) {\n unpackSdfArray(sdfTexture, index, flags, center, quaternion, scale, sizes, numValues, values);\n uint sdfType = flags & SDF_FLAG_TYPE;\n vec3 sdfPos = quatVec(quaternion, pos * scale) + center;\n\n float distance;\n switch (sdfType) {\n case SDF_TYPE_ALL:\n distance = -1.0 / 0.0;\n break;\n case SDF_TYPE_PLANE: {\n distance = sdfPos.z;\n break;\n }\n case SDF_TYPE_SPHERE: {\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_BOX: {\n vec3 q = abs(sdfPos) - sizes.xyz + sizes.w;\n distance = length(max(q, 0.0)) + min(max(q.x, max(q.y, q.z)), 0.0) - sizes.w;\n break;\n }\n case SDF_TYPE_ELLIPSOID: {\n vec3 sizes = sizes.xyz;\n float k0 = length(sdfPos / sizes);\n float k1 = length(sdfPos / dot(sizes, sizes));\n distance = k0 * (k0 - 1.0) / k1;\n break;\n }\n case SDF_TYPE_CYLINDER: {\n vec2 d = abs(vec2(length(sdfPos.xz), sdfPos.y)) - sizes.wy;\n distance = min(max(d.x, d.y), 0.0) + length(max(d, 0.0));\n break;\n }\n case SDF_TYPE_CAPSULE: {\n sdfPos.y -= clamp(sdfPos.y, -0.5 * sizes.y, 0.5 * sizes.y);\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_INFINITE_CONE: {\n float angle = 0.25 * PI * sizes.w;\n vec2 c = vec2(sin(angle), cos(angle));\n vec2 q = vec2(length(sdfPos.xy), -sdfPos.z);\n float d = length(q - c * max(dot(q, c), 0.0));\n distance = d * (((q.x * c.y - q.y * c.x) < 0.0) ? -1.0 : 1.0);\n break;\n }\n }\n\n if ((flags & SDF_FLAG_INVERT) != 0u) {\n distance = -distance;\n }\n\n if (smoothK == 0.0) {\n if (distance < distanceAccum) {\n distanceAccum = distance;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = values[i];\n }\n }\n } else {\n float scaledDistance = -distance / smoothK;\n if (scaledDistance > maxExp) {\n float scale = exp(maxExp - scaledDistance);\n distanceAccum *= scale;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] *= scale;\n }\n maxExp = scaledDistance;\n }\n\n float weight = exp(scaledDistance - maxExp);\n distanceAccum += weight;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] += weight * values[i];\n }\n }\n }\n\n if (smoothK == 0.0) {\n return distanceAccum;\n } else {\n // Very distant SDFs may result in 0 accumulation\n if (distanceAccum == 0.0) {\n return 1.0 / 0.0;\n }\n for (int i = 0; i < numValues; ++i) {\n outValues[i] /= distanceAccum;\n }\n return (-log(distanceAccum) - maxExp) * smoothK;\n }\n }\n\n float modulateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 values[4],\n float softEdge, bool invert\n ) {\n float distance = evaluateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, numValues, values);\n if (invert) {\n distance = -distance;\n }\n\n return (softEdge == 0.0) ? ((distance < 0.0) ? 1.0 : 0.0)\n : clamp(-distance / softEdge + 0.5, 0.0, 1.0);\n }\n`);\n\nexport const defineEdit = unindent(`\n const uint EDIT_FLAG_BLEND = 0xFFu;\n const uint EDIT_BLEND_MULTIPLY = 0u;\n const uint EDIT_BLEND_SET_RGB = 1u;\n const uint EDIT_BLEND_ADD_RGBA = 2u;\n const uint EDIT_FLAG_INVERT = 0x100u;\n\n void decodeEdit(\n uvec4 packedEdit, out int sdfFirst, out int sdfCount,\n out bool invert, out uint rgbaBlendMode, out float softEdge, out float sdfSmooth\n ) {\n rgbaBlendMode = packedEdit.x & EDIT_FLAG_BLEND;\n invert = (packedEdit.x & EDIT_FLAG_INVERT) != 0u;\n\n sdfFirst = int(packedEdit.y & 0xFFFFu);\n sdfCount = int(packedEdit.y >> 16u);\n\n softEdge = uintBitsToFloat(packedEdit.z);\n sdfSmooth = uintBitsToFloat(packedEdit.w);\n }\n\n void applyRgbaDisplaceEdit(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, inout vec3 pos,\n float smoothK, float softEdge, bool invert, uint rgbaBlendMode, inout vec4 rgba\n ) {\n vec4 values[4];\n float modulate = modulateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, 2, values, softEdge, invert);\n // On Android, moving values[0] is necessary to work around a compiler bug.\n vec4 sdfRgba = values[0];\n vec4 sdfDisplaceScale = values[1];\n\n vec4 target;\n switch (rgbaBlendMode) {\n case EDIT_BLEND_MULTIPLY:\n target = rgba * sdfRgba;\n break;\n case EDIT_BLEND_SET_RGB:\n target = vec4(sdfRgba.rgb, rgba.a * sdfRgba.a);\n break;\n case EDIT_BLEND_ADD_RGBA:\n target = rgba + sdfRgba;\n break;\n default:\n // Debug output if blend mode not set\n target = vec4(fract(pos), 1.0);\n }\n rgba = mix(rgba, target, modulate);\n pos += sdfDisplaceScale.xyz * modulate;\n }\n\n void applyPackedRgbaDisplaceEdit(uvec4 packedEdit, usampler2D sdfTexture, int numSdfs, inout vec3 pos, inout vec4 rgba) {\n int sdfFirst, sdfCount;\n bool invert;\n uint rgbaBlendMode;\n float softEdge, sdfSmooth;\n decodeEdit(packedEdit, sdfFirst, sdfCount, invert, rgbaBlendMode, softEdge, sdfSmooth);\n applyRgbaDisplaceEdit(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, sdfSmooth, softEdge, invert, rgbaBlendMode, rgba);\n }\n`);\n\nfunction applyGsplatRgbaDisplaceEdits(\n gsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n gsplat: typeof Gsplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { gsplat: typeof Gsplat }\n >({\n inTypes: {\n gsplat: Gsplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { gsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${gsplat}.center, ${gsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nfunction applyCovSplatRgbaDisplaceEdits(\n covsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n covsplat: typeof CovSplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { covsplat: typeof CovSplat }\n >({\n inTypes: {\n covsplat: CovSplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { covsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${covsplat}.center, ${covsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nconst tempFloat32 = new Float32Array(1);\n","import * as THREE from \"three\";\nimport type { SplatEdit } from \"./SplatEdit\";\nimport {\n CovSplat,\n Dyno,\n DynoFloat,\n DynoMat3,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n Gsplat,\n add,\n dynoBlock,\n mul,\n transformDir,\n transformGsplat,\n transformPos,\n unindentLines,\n} from \"./dyno\";\n\n// A GsplatGenerator is a dyno program that maps an index to a Gsplat's properties\n\nexport type GsplatGenerator = Dyno<{ index: \"int\" }, { gsplat: typeof Gsplat }>;\n\nexport type CovSplatGenerator = Dyno<\n { index: \"int\" },\n { covsplat: typeof CovSplat }\n>;\n\n// A GsplatModifier is a dyno program that inputs a Gsplat, modifies, and outputs it\n\nexport type GsplatModifier = Dyno<\n { gsplat: typeof Gsplat },\n { gsplat: typeof Gsplat }\n>;\n\nexport type CovSplatModifier = Dyno<\n { covsplat: typeof CovSplat },\n { covsplat: typeof CovSplat }\n>;\n\n// A SplatModifier is a utility class to apply a GsplatModifier to\n// a GsplatGenerator pipeline, caching the combined result for efficiency.\n\nexport class SplatModifier {\n modifier: GsplatModifier;\n cache: Map;\n\n constructor(modifier: GsplatModifier) {\n this.modifier = modifier;\n this.cache = new Map();\n }\n\n apply(generator: GsplatGenerator): GsplatGenerator {\n let modified = this.cache.get(generator);\n if (!modified) {\n modified = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n const { gsplat } = generator.apply({ index });\n return this.modifier.apply({ gsplat });\n },\n );\n this.cache.set(generator, modified);\n }\n return modified;\n }\n}\n\n// A SplatTransformer is a utility class to apply a transform to a Gsplat\n// via a scale, rotation, and translation. Scale is a single float because\n// anisotropic scaling of Gsplats is not supported.\n\nexport class SplatTransformer {\n scale: DynoFloat;\n rotate: DynoVec4;\n translate: DynoVec3;\n\n // Create the dyno uniforms that parameterize the transform, setting them\n // to initial values that are different from any valid transform.\n constructor() {\n this.scale = new DynoFloat({ value: Number.NEGATIVE_INFINITY });\n this.rotate = new DynoVec4({\n value: new THREE.Quaternion(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n this.translate = new DynoVec3({\n value: new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformPos(position, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformDir(dir, {\n rotate: this.rotate,\n });\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyGsplat(gsplat: DynoVal): DynoVal {\n return transformGsplat(gsplat, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const scale = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const position = new THREE.Vector3();\n transform.decompose(position, quaternion, scale);\n const newScale = (scale.x + scale.y + scale.z) / 3;\n\n let updated = false;\n if (newScale !== this.scale.value) {\n this.scale.value = newScale;\n updated = true;\n }\n if (!position.equals(this.translate.value)) {\n this.translate.value.copy(position);\n updated = true;\n }\n if (!quaternion.equals(this.rotate.value)) {\n this.rotate.value.copy(quaternion);\n updated = true;\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\nexport class CovSplatTransformer {\n basis: DynoMat3<\"basis\", THREE.Matrix3>;\n offset: DynoVec3;\n\n constructor() {\n this.basis = new DynoMat3({ value: new THREE.Matrix3() });\n this.offset = new DynoVec3({ value: new THREE.Vector3() });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n const rebased = mul(this.basis, position);\n return add(rebased, this.offset);\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return mul(this.basis, dir);\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyCovSplat(covsplat: DynoVal): DynoVal {\n return new Dyno({\n inTypes: { covsplat: CovSplat, basis: \"mat3\", offset: \"vec3\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covsplat, basis: this.basis, offset: this.offset },\n statements: ({ inputs, outputs }) => {\n const { covsplat, basis, offset } = inputs;\n if (!covsplat || !basis || !offset) {\n return [`${outputs.covsplat}.flags = 0u;`];\n }\n return unindentLines(`\n ${outputs.covsplat}.flags = 0u;\n if (isCovSplatActive(${covsplat}.flags)) {\n ${outputs.covsplat}.flags = ${covsplat}.flags;\n ${outputs.covsplat}.index = ${covsplat}.index;\n ${outputs.covsplat}.rgba = ${covsplat}.rgba;\n\n ${outputs.covsplat}.center = ${basis} * ${covsplat}.center + ${offset};\n \n mat3 cov = mat3(\n ${covsplat}.xxyyzz.x, ${covsplat}.xyxzyz.x, ${covsplat}.xyxzyz.y,\n ${covsplat}.xyxzyz.x, ${covsplat}.xxyyzz.y, ${covsplat}.xyxzyz.z,\n ${covsplat}.xyxzyz.y, ${covsplat}.xyxzyz.z, ${covsplat}.xxyyzz.z\n );\n cov = ${basis} * cov * transpose(${basis});\n ${outputs.covsplat}.xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n ${outputs.covsplat}.xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n `);\n },\n }).outputs.covsplat;\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const basis = new THREE.Matrix3().setFromMatrix4(transform);\n const offset = new THREE.Vector3().setFromMatrixColumn(transform, 3);\n\n const updated =\n !basis.equals(this.basis.value) || !offset.equals(this.offset.value);\n if (updated) {\n this.basis.value.copy(basis);\n this.offset.value.copy(offset);\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\n// SplatGenerator is an Object3D that can be placed anywhere in the scene\n// to generate Gsplats into the world for SparkRenderer. All Gsplats from\n// SplatGenerators across the scene will be accumulated into a single\n// SplatAccumulator, which are sorted and rendered together.\n//\n// Each SplatGenerator has two main properties:\n// - numSplats: the number of Gsplats to generate\n// - generator: a GsplatGenerator dyno program that maps a splat index\n// to a Gsplat's properties\n// Each of these properties can be changed at anytime, however changing\n// numSplats means we no longer have a correspondence between Gsplats\n// in successive frames, meaning we can't reuse the previous Gsplat sort\n// order. Similarly, changing the generator requires re-generating the\n// shader program, which will trigger a GPU shader compilation the first\n// time (possibly a perceptible \"hickup\" in the framerate) but is cached\n// subsequence times if the generator is the same as one that was used previously.\n//\n// A SplatGenerator also has a custom frameUpdate function that is called\n// on each execution, allowing you to update uniforms or other parameters that\n// affect the generation. If the Gsplats are changed, you must call\n// updateVersion() (alternatively, set needsUpdate to true) to trigger a\n// re-generation of the Gsplats for this SplatGenerator.\n\nexport interface FrameUpdateContext {\n renderer: THREE.WebGLRenderer;\n object: SplatGenerator;\n time: number;\n deltaTime: number;\n viewToWorld: THREE.Matrix4;\n camera?: THREE.Camera;\n renderSize?: THREE.Vector2;\n globalEdits: SplatEdit[];\n lodIndices?: { numSplats: number; texture: THREE.DataTexture };\n}\n\nexport class SplatGenerator extends THREE.Object3D {\n numSplats: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n generatorError?: unknown;\n covGeneratorError?: unknown;\n frameUpdate?: (context: FrameUpdateContext) => void;\n version: number;\n mappingVersion: number;\n\n constructor({\n numSplats,\n generator,\n covGenerator,\n construct,\n update,\n }: {\n numSplats?: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n construct?: (object: SplatGenerator) => {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n numSplats?: number;\n frameUpdate?: (context: FrameUpdateContext) => void;\n };\n update?: (context: FrameUpdateContext) => void;\n }) {\n super();\n\n this.numSplats = numSplats ?? 0;\n this.generator = generator;\n this.covGenerator = covGenerator;\n this.frameUpdate = update;\n this.version = 0;\n this.mappingVersion = 0;\n\n if (construct) {\n const constructed = construct(this);\n // If we returned something, update our properties\n Object.assign(this, constructed);\n }\n }\n\n updateVersion() {\n this.version += 1;\n }\n\n updateMappingVersion() {\n this.mappingVersion += 1;\n this.version += 1;\n }\n\n set needsUpdate(value: boolean) {\n if (value) {\n this.updateVersion();\n }\n }\n}\n","/* @ts-self-types=\"./spark_rs.d.ts\" */\n\nexport class ChunkDecoder {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ChunkDecoder.prototype);\n obj.__wbg_ptr = ptr;\n ChunkDecoderFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ChunkDecoderFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_chunkdecoder_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n finish() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.chunkdecoder_finish(ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n */\n push(bytes) {\n const ret = wasm.chunkdecoder_push(this.__wbg_ptr, bytes);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n}\nif (Symbol.dispose) ChunkDecoder.prototype[Symbol.dispose] = ChunkDecoder.prototype.free;\n\nexport class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n\nexport class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function bhatt_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, rgba) {\n const ret = wasm.bhatt_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function bhatt_lod_packedsplats(num_splats, packed, extra, lod_base, rgba, encoding) {\n const ret = wasm.bhatt_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {any}\n */\nexport function decode_rad_header(bytes) {\n const ret = wasm.decode_rad_header(bytes);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @returns {ChunkDecoder}\n */\nexport function decode_to_csplatarray(file_type, path_name, encoding) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_csplatarray(ptr0, len0, ptr1, len1, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_extsplats(file_type, path_name, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_extsplats(ptr0, len0, ptr1, len1, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_gsplatarray(file_type, path_name) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_gsplatarray(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Uint32Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_packedsplats(file_type, path_name, encoding, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_packedsplats(ptr0, len0, ptr1, len1, encoding, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n */\nexport function dispose_lod_tree(lod_id) {\n wasm.dispose_lod_tree(lod_id);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null} [extra]\n * @returns {GsplatArray}\n */\nexport function extsplats_to_gsplatarray(num_splats, ext1, ext2, extra) {\n const ret = wasm.extsplats_to_gsplatarray(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n * @param {number} level\n * @returns {object}\n */\nexport function get_lod_tree_level(lod_id, level) {\n const ret = wasm.get_lod_tree_level(lod_id, level);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer() {\n const ret = wasm.get_raycast_buffer();\n return ret;\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer2() {\n const ret = wasm.get_raycast_buffer2();\n return ret;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} lod_tree\n * @returns {object}\n */\nexport function init_lod_tree(num_splats, lod_tree) {\n const ret = wasm.init_lod_tree(num_splats, lod_tree);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} capacity\n * @returns {object}\n */\nexport function new_lod_tree(capacity) {\n const ret = wasm.new_lod_tree(capacity);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} orig_lod_id\n * @returns {object}\n */\nexport function new_shared_lod_tree(orig_lod_id) {\n const ret = wasm.new_shared_lod_tree(orig_lod_id);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {CsplatArray}\n */\nexport function packedsplats_to_csplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_csplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return CsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {GsplatArray}\n */\nexport function packedsplats_to_gsplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_gsplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @returns {Float32Array}\n */\nexport function raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count) {\n const ret = wasm.raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} num_splats\n * @param {Uint32Array} packed_splats\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @returns {boolean}\n */\nexport function simd_enabled() {\n const ret = wasm.simd_enabled();\n return ret !== 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint16Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function tiny_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, merge_filter, rgba) {\n const ret = wasm.tiny_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function tiny_lod_packedsplats(num_splats, packed, extra, lod_base, merge_filter, rgba, encoding) {\n const ret = wasm.tiny_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} page_bases\n * @param {Uint32Array} chunk_bases\n * @param {Uint32Array} counts\n * @param {Array} lod_trees\n * @returns {object}\n */\nexport function update_lod_trees(lod_ids, page_bases, chunk_bases, counts, lod_trees) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(page_bases, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_bases, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(counts, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.update_lod_trees(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, lod_trees);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\nexport function wasm_start() {\n wasm.wasm_start();\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments); },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_fd4646b401926788: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_26bffbe236bf73f9: function(arg0) {\n const ret = new Float32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) {\n arg0.set(getArrayF32FromWasm0(arg1, arg2));\n },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(F32)) -> NamedExternref(\"Float32Array\")`.\n const ret = getArrayF32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000003: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U32)) -> NamedExternref(\"Uint32Array\")`.\n const ret = getArrayU32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000004: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000005: function(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./spark_rs_bg.js\": import0,\n };\n}\n\nconst ChunkDecoderFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\nconst CsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\nconst GsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayF32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\nfunction getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint16ArrayMemory0 = null;\nfunction getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayF32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getFloat32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","function b64ToUint6(nChr) {\n return nChr > 64 && nChr < 91\n ? nChr - 65\n : nChr > 96 && nChr < 123\n ? nChr - 71\n : nChr > 47 && nChr < 58\n ? nChr + 4\n : nChr === 43\n ? 62\n : nChr === 47\n ? 63\n : 0\n}\n\nfunction base64ToUint8(sBase64, nBlocksSize) {\n const sB64Enc = sBase64.replace(/[^A-Za-z0-9+/]/g, \"\")\n const nInLen = sB64Enc.length\n const nOutLen = nBlocksSize\n ? Math.ceil(((nInLen * 3 + 1) >> 2) / nBlocksSize) * nBlocksSize\n : (nInLen * 3 + 1) >> 2\n const taBytes = new Uint8Array(nOutLen)\n\n let nMod3\n let nMod4\n let nUint24 = 0\n let nOutIdx = 0\n for (let nInIdx = 0; nInIdx < nInLen; nInIdx++) {\n nMod4 = nInIdx & 3\n nUint24 |= b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << (6 * (3 - nMod4))\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\n nMod3 = 0\n while (nMod3 < 3 && nOutIdx < nOutLen) {\n taBytes[nOutIdx] = (nUint24 >>> ((16 >>> nMod3) & 24)) & 255\n nMod3++\n nOutIdx++\n }\n nUint24 = 0\n }\n }\n\n return taBytes\n}\nfunction toUint8(b64) {\n if (typeof Uint8Array.fromBase64 === \"function\") return Uint8Array.fromBase64(b64)\n let bin = atob(b64)\n let len = bin.length\n let bytes = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n bytes[i] = bin.charCodeAt(i)\n }\n return bytes\n}\n\nconst decode64 = typeof atob === \"function\" ? toUint8 : base64ToUint8\n\nexport default decode64\n","import init_wasm from \"spark-rs\";\nimport WASM from \"spark-rs/spark_rs_bg.wasm?arraybuffer&base64\";\n\nexport const WASM_MODULE = WebAssembly.compile(WASM);\n\n// Flag indicating if the spark-rs project has been initialized\nlet initialized = false;\n\n/**\n * Promise for module instantiation, ensuring calls to\n * imports from the spark-rs project can be used.\n */\nexport const initialization = init_wasm({ module_or_path: WASM_MODULE }).then(\n (_) => {\n initialized = true;\n },\n);\n\n/**\n * Indicates if the wasm module instantiation has completed or not.\n */\nexport function isInitialized() {\n return initialized;\n}\n","import { getTransferable } from \"./utils\";\nimport { WASM_MODULE } from \"./wasm\";\nimport BundledWorker from \"./worker?worker&inline\";\n\ntype PromiseRecord = {\n resolve: (value: unknown) => void;\n reject: (reason?: unknown) => void;\n onStatus?: (data: unknown) => void;\n};\n\nexport class SplatWorker {\n worker: Worker;\n queue: (() => void)[] | null = null;\n messages: Record = {};\n static currentId = 0;\n\n constructor() {\n this.worker = new BundledWorker();\n this.worker.onmessage = (event) => this.onMessage(event);\n WASM_MODULE.then((module) => {\n this.worker.postMessage({ name: \"init-wasm\", module });\n });\n }\n\n onMessage(event: MessageEvent) {\n const { id, result, error, status } = event.data;\n const promise = this.messages[id];\n if (promise) {\n if (error !== undefined) {\n delete this.messages[id];\n promise.reject(error);\n } else if (status !== undefined) {\n promise.onStatus?.(status);\n } else {\n delete this.messages[id];\n promise.resolve(result);\n }\n }\n }\n\n tryExclusive(callback: (worker: SplatWorker) => Promise) {\n return this.queue == null ? this.exclusive(callback) : null;\n }\n\n async exclusive(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const queue = this.queue;\n if (queue != null) {\n await new Promise((resolve) => {\n queue.push(() => resolve(undefined));\n });\n } else {\n this.queue = [];\n }\n\n try {\n return await callback(this);\n } finally {\n if (this.queue != null) {\n if (this.queue.length === 0) {\n this.queue = null;\n } else {\n const waiter = this.queue.shift() as () => void;\n waiter();\n }\n }\n }\n }\n\n async call(\n name: string,\n args: unknown,\n options: { onStatus?: (data: unknown) => void } = {},\n ): Promise {\n const id = ++SplatWorker.currentId;\n const promise = new Promise((resolve, reject) => {\n this.messages[id] = { resolve, reject, onStatus: options.onStatus };\n });\n this.worker.postMessage(\n { id, name, args },\n { transfer: getTransferable(args) },\n );\n return await promise;\n }\n\n dispose() {\n this.worker.terminate();\n\n const messages = Object.values(this.messages);\n this.messages = {};\n for (const message of messages) {\n message.reject(new Error(\"Worker terminate\"));\n }\n }\n}\n\nexport class NewSplatWorkerPool {\n maxWorkers;\n numWorkers = 0;\n freelist: SplatWorker[] = [];\n queue: ((worker: SplatWorker) => void)[] = [];\n\n constructor(maxWorkers = 4) {\n this.maxWorkers = maxWorkers;\n }\n\n async withWorker(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const worker = await this.allocWorker();\n try {\n return await callback(worker);\n } finally {\n this.freeWorker(worker);\n }\n }\n\n async allocWorker(): Promise {\n const worker = this.freelist.pop();\n if (worker) {\n return worker;\n }\n\n if (this.numWorkers < this.maxWorkers) {\n const worker = new SplatWorker();\n this.numWorkers += 1;\n return worker;\n }\n\n return new Promise((resolve) => {\n this.queue.push(resolve);\n });\n }\n\n freeWorker(worker: SplatWorker) {\n if (this.numWorkers > this.maxWorkers) {\n // Worker no longer needed\n this.numWorkers -= 1;\n return;\n }\n\n const waiter = this.queue.shift();\n if (waiter) {\n waiter(worker);\n return;\n }\n\n this.freelist.push(worker);\n }\n}\n\nexport const workerPool = new NewSplatWorkerPool();\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport type { RgbaArray } from \"./RgbaArray\";\nimport type { GsplatGenerator } from \"./SplatGenerator\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n DynoProgram,\n DynoProgramTemplate,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n add,\n dynoBlock,\n normalize,\n outputPackedSplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport {\n type Gsplat,\n TPackedSplats,\n combineGsplat,\n definePackedSplats,\n readPackedSplat,\n splatTexCoord,\n splitGsplat,\n} from \"./dyno/splats\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, setPackedSplat, unpackSplat } from \"./utils\";\n\n// Initialize a PackedSplats collection from source data via\n// url, fileBytes, or packedArray. Creates an empty array if none are set,\n// and splat data can be constructed using pushSplat()/setSplat(). The maximum\n// splat size allocation will grow automatically, starting from maxSplats.\nexport type PackedSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided packed data array, where each 4 consecutive uint32 values\n // encode one \"packed\" Gsplat. (default: undefined)\n packedArray?: Uint32Array;\n // Override number of splats in packed array to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the PackedSplats\n lodSplats?: PackedSplats;\n};\n\n// A PackedSplats is a collection of Gaussian splats, packed into a format that\n// takes exactly 16 bytes per Gsplat to maximize memory and cache efficiency.\n// The center xyz coordinates are encoded as float16 (3 x 2 bytes), scale xyz\n// as 3 x uint8 that encode a log scale from e^-12 to e^9, rgba as 4 x uint8,\n// and quaternion encoded via axis+angle using 2 x uint8 for octahedral encoding\n// of the axis direction and a uint8 to encode rotation amount from 0..Pi.\n\nexport class PackedSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n packedArray: Uint32Array | null = null;\n extra: Record;\n maxSh = 3;\n splatEncoding?: SplatEncoding;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: PackedSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n // Either target or source will be non-null, depending on whether the PackedSplats\n // is being used as a data source or generated to.\n target: THREE.WebGLArrayRenderTarget | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source packedArray is updated to have it upload to GPU\n needsUpdate = true;\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoRgbMinMaxLnScaleMinMax: DynoUniform<\"vec4\", \"rgbMinMaxLnScaleMinMax\">;\n dynoNumSh: DynoInt<\"numSh\">;\n dynoShMax: DynoVec3;\n\n constructor(options: PackedSplatsOptions = {}) {\n this.extra = {};\n this.dyno = new DynoPackedSplats({ packedSplats: this });\n this.dynoRgbMinMaxLnScaleMinMax = new DynoVec4({\n key: \"rgbMinMaxLnScaleMinMax\",\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n update: (value) => {\n value.set(\n this.splatEncoding?.rgbMin ?? 0.0,\n this.splatEncoding?.rgbMax ?? 1.0,\n this.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n return value;\n },\n });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n this.dynoShMax = new DynoVec3({\n key: \"shMax\",\n value: new THREE.Vector3(),\n update: (value) => {\n value.set(\n this.splatEncoding?.sh1Max ?? 1.0,\n this.splatEncoding?.sh2Max ?? 1.0,\n this.splatEncoding?.sh3Max ?? 1.0,\n );\n return value;\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: PackedSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.splatEncoding = options.splatEncoding;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: PackedSplatsOptions) {\n this.extra = options.extra ?? {};\n this.splatEncoding = options.splatEncoding ?? this.splatEncoding;\n this.lodSplats = options.lodSplats;\n\n if (options.packedArray) {\n this.packedArray = options.packedArray;\n this.numSplats = options.numSplats ?? this.packedArray.length / 4;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats = Math.floor(this.packedArray.length / 4);\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n }\n }\n\n async asyncInitialize(options: PackedSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n packedSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target.texture.source.data = null;\n this.target = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source.source.data = null;\n this.source = null;\n }\n\n this.packedArray = null;\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"PackedSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3 ? 2 : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readPackedSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3Texture } = this.ensureShTextures();\n let { rgb } = evaluatePackedSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax: this.dynoShMax,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 2,\n );\n if (sh1.length < maxSplats * 2) {\n const newSh1 = new Uint32Array(maxSplats * 2);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n\n const texture = new THREE.DataArrayTexture(sh1, width, height, depth);\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = new THREE.DataArrayTexture(sh2, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3Texture = this.extra.sh3Texture as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3Texture) {\n let sh3 = this.extra.sh3 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3.length / 4,\n );\n if (sh3.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3);\n this.extra.sh3 = newSh3;\n sh3 = newSh3;\n }\n\n const texture = new THREE.DataArrayTexture(sh3, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh3Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3Texture = sh3Texture;\n }\n\n return { sh1Texture, sh2Texture, sh3Texture };\n }\n\n // Ensures that this.packedArray can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): Uint32Array {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.packedArray ? 0 : this.packedArray.length / 4;\n\n if (!this.packedArray || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(this.maxSplats * 4);\n if (this.packedArray) {\n // Copy over existing data\n newArray.set(this.packedArray);\n }\n this.packedArray = newArray;\n }\n return this.packedArray;\n }\n\n // Ensure the extra array for the given level is large enough to hold numSplats\n ensureSplatsSh(level: number, numSplats: number): Uint32Array {\n let wordsPerSplat: number;\n let key: string;\n if (level === 0) {\n return this.ensureSplats(numSplats);\n }\n if (level === 1) {\n // 3 x 3 uint7 = 63 bits = 2 uint32\n wordsPerSplat = 2;\n key = \"sh1\";\n } else if (level === 2) {\n // 5 x 3 uint8 = 120 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh2\";\n } else if (level === 3) {\n // 7 x 3 uint6 = 126 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh3\";\n } else {\n throw new Error(`Invalid level: ${level}`);\n }\n\n // Figure out our current and desired maxSplats\n let maxSplats: number = !this.extra[key]\n ? 0\n : (this.extra[key] as Uint32Array).length / wordsPerSplat;\n const targetSize =\n numSplats <= maxSplats ? maxSplats : Math.max(numSplats, 2 * maxSplats);\n\n if (!this.extra[key] || targetSize > maxSplats) {\n // Reallocate the array\n maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(maxSplats * wordsPerSplat);\n if (this.extra[key]) {\n // Copy over existing data\n newArray.set(this.extra[key] as Uint32Array);\n }\n this.extra[key] = newArray;\n }\n return this.extra[key] as Uint32Array;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (!this.packedArray || index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return unpackSplat(this.packedArray, index, this.splatEncoding);\n }\n\n // Set all PackedSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(index + 1);\n setPackedSplat(\n packedSplats,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(this.numSplats + 1);\n setPackedSplat(\n packedSplats,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.packedArray || !this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = unpackSplat(this.packedArray, i, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Ensures our PackedSplats.target render target has enough space to generate\n // maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate(maxSplats: number): boolean {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n if (this.target) {\n this.target.dispose();\n }\n\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAIntegerFormat;\n this.target.texture.type = THREE.UnsignedIntType;\n this.target.texture.internalFormat = \"RGBA32UI\";\n this.target.scissorTest = true;\n return true;\n }\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Returns a THREE.DataArrayTexture representing the PackedSplats content as\n // a Uint32x4 data array texture (2048 x 2048 x depth in size)\n getTexture(): THREE.DataArrayTexture {\n if (this.target) {\n // Return the render target's texture\n return this.target.texture;\n }\n if (this.source || this.packedArray) {\n // Update source texture if needed and return\n const source = this.maybeUpdateSource();\n return source;\n }\n\n return PackedSplats.getEmptyArray;\n }\n\n // Check if source texture needs to be created/updated\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.packedArray) {\n throw new Error(\"No packed splats\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.source = new THREE.DataArrayTexture(\n this.packedArray as Uint32Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAIntegerFormat;\n this.source.type = THREE.UnsignedIntType;\n this.source.internalFormat = \"RGBA32UI\";\n this.source.needsUpdate = true;\n } else if (this.packedArray.buffer !== this.source.image.data.buffer) {\n // The source texture is the right size, update the data\n this.source.image.data = new Uint8Array(this.packedArray.buffer);\n }\n // Indicate to Three.js that the source texture needs to be uploaded to the GPU\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n static getEmptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(generator: GsplatGenerator): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = PackedSplats.generatorProgram.get(generator);\n if (!program) {\n // A Gsplat needs to be turned into a packed uvec4 for the dyno graph\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n generator.inputs.index = index;\n const gsplat = generator.outputs.gsplat;\n const output = outputPackedSplat(\n gsplat,\n this.dynoRgbMinMaxLnScaleMinMax,\n );\n roots.push(output);\n return undefined;\n },\n );\n if (!PackedSplats.programTemplate) {\n PackedSplats.programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { output: \"target\" },\n template: PackedSplats.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n PackedSplats.generatorProgram.set(generator, program);\n }\n\n // Prepare and update our material we'll use to render the Gsplats\n const material = program.prepareMaterial();\n PackedSplats.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Executes a dyno program specified by generator which is any DynoBlock that\n // maps { index: \"int\" } to { gsplat: Gsplat }. This is called in\n // SparkRenderer.updateInternal() to re-generate Gsplats in the scene for\n // SplatGenerator instances whose version is newer than what was generated\n // for it last time.\n generate({\n generator,\n base,\n count,\n renderer,\n }: {\n generator: GsplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }): { nextBase: number } {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureSplats\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(generator);\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n PackedSplats.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const packedArray = (this.packedArray as Uint32Array).slice();\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodPackedSplats\" : \"tinyLodPackedSplats\",\n {\n numSplats: this.numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding: this.splatEncoding ?? DEFAULT_SPLAT_ENCODING,\n },\n )) as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n };\n });\n\n const lodSplats = new PackedSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new PackedSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for GsplatGenerator programs\n static generatorProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\n// You can use a PackedSplats as a dyno block using the function\n// dyno.readPackedSplats(packedSplats.dyno, dynoIndex) where\n// dynoIndex is of type DynoVal<\"int\">. If you need to be able to change\n// the input PackedSplats dynamically, however, you should create a\n// DynoPackedSplats, whose property packedSplats you can change to any\n// PackedSplats and that will be used in the dyno shader program.\n\nexport const dynoPackedSplats = (packedSplats?: PackedSplats) =>\n new DynoPackedSplats({ packedSplats });\n\nexport class DynoPackedSplats extends DynoUniform<\n typeof TPackedSplats,\n \"packedSplats\",\n {\n textureArray: THREE.DataArrayTexture;\n numSplats: number;\n rgbMinMaxLnScaleMinMax: THREE.Vector4;\n lodOpacity: boolean;\n }\n> {\n packedSplats?: PackedSplats;\n\n constructor({ packedSplats }: { packedSplats?: PackedSplats } = {}) {\n super({\n key: \"packedSplats\",\n type: TPackedSplats,\n globals: () => [definePackedSplats],\n value: {\n textureArray: PackedSplats.getEmptyArray,\n numSplats: 0,\n rgbMinMaxLnScaleMinMax: new THREE.Vector4(\n 0,\n 1,\n LN_SCALE_MIN,\n LN_SCALE_MAX,\n ),\n lodOpacity: false,\n },\n update: (value) => {\n value.textureArray =\n this.packedSplats?.getTexture() ?? PackedSplats.getEmptyArray;\n value.numSplats = this.packedSplats?.numSplats ?? 0;\n value.rgbMinMaxLnScaleMinMax.set(\n this.packedSplats?.splatEncoding?.rgbMin ?? 0,\n this.packedSplats?.splatEncoding?.rgbMax ?? 1,\n this.packedSplats?.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.packedSplats?.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n value.lodOpacity =\n this.packedSplats?.splatEncoding?.lodOpacity ?? false;\n return value;\n },\n });\n this.packedSplats = packedSplats;\n }\n}\n\nexport const defineEvalPackedSH1 = unindent(`\n vec3 evaluatePackedSH1(uvec2 packedData, vec3 viewDir, float sh1Max) {\n // Extract sint7 values packed into 2 x uint32\n vec3 sh1_0 = vec3(ivec3(\n int(packedData.x << 25u) >> 25,\n int(packedData.x << 18u) >> 25,\n int(packedData.x << 11u) >> 25\n ));\n vec3 sh1_1 = vec3(ivec3(\n int(packedData.x << 4u) >> 25,\n int((packedData.x >> 3u) | (packedData.y << 29u)) >> 25,\n int(packedData.y << 22u) >> 25\n ));\n vec3 sh1_2 = vec3(ivec3(\n int(packedData.y << 15u) >> 25,\n int(packedData.y << 8u) >> 25,\n int(packedData.y << 1u) >> 25\n ));\n\n vec3 rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n return rgb * (sh1Max / 63.0);\n }\n`);\n\nexport const defineEvalPackedSH2 = unindent(`\n vec3 evaluatePackedSH2(uvec4 packedData, vec3 viewDir, float sh2Max) {\n // Extract sint8 values packed into 4 x uint32\n vec3 sh2_0 = vec3(ivec3(\n int(packedData.x << 24u) >> 24,\n int(packedData.x << 16u) >> 24,\n int(packedData.x << 8u) >> 24\n ));\n vec3 sh2_1 = vec3(ivec3(\n int(packedData.x) >> 24,\n int(packedData.y << 24u) >> 24,\n int(packedData.y << 16u) >> 24\n ));\n vec3 sh2_2 = vec3(ivec3(\n int(packedData.y << 8u) >> 24,\n int(packedData.y) >> 24,\n int(packedData.z << 24u) >> 24\n ));\n vec3 sh2_3 = vec3(ivec3(\n int(packedData.z << 16u) >> 24,\n int(packedData.z << 8u) >> 24,\n int(packedData.z) >> 24\n ));\n vec3 sh2_4 = vec3(ivec3(\n int(packedData.w << 24u) >> 24,\n int(packedData.w << 16u) >> 24,\n int(packedData.w << 8u) >> 24\n ));\n\n vec3 rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n return rgb * (sh2Max / 127.0);\n }\n`);\n\nexport const defineEvalPackedSH3 = unindent(`\n vec3 evaluatePackedSH3(uvec4 packedData, vec3 viewDir, float sh3Max) {\n // Extract sint6 values packed into 4 x uint32\n vec3 sh3_0 = vec3(ivec3(\n int(packedData.x << 26u) >> 26,\n int(packedData.x << 20u) >> 26,\n int(packedData.x << 14u) >> 26\n ));\n vec3 sh3_1 = vec3(ivec3(\n int(packedData.x << 8u) >> 26,\n int(packedData.x << 2u) >> 26,\n int((packedData.x >> 4u) | (packedData.y << 28u)) >> 26\n ));\n vec3 sh3_2 = vec3(ivec3(\n int(packedData.y << 22u) >> 26,\n int(packedData.y << 16u) >> 26,\n int(packedData.y << 10u) >> 26\n ));\n vec3 sh3_3 = vec3(ivec3(\n int(packedData.y << 4u) >> 26,\n int((packedData.y >> 2u) | (packedData.z << 30u)) >> 26,\n int(packedData.z << 24u) >> 26\n ));\n vec3 sh3_4 = vec3(ivec3(\n int(packedData.z << 18u) >> 26,\n int(packedData.z << 12u) >> 26,\n int(packedData.z << 6u) >> 26\n ));\n vec3 sh3_5 = vec3(ivec3(\n int(packedData.z) >> 26,\n int(packedData.w << 26u) >> 26,\n int(packedData.w << 20u) >> 26\n ));\n vec3 sh3_6 = vec3(ivec3(\n int(packedData.w << 14u) >> 26,\n int(packedData.w << 8u) >> 26,\n int(packedData.w << 2u) >> 26\n ));\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n vec3 rgb = sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n return rgb * (sh3Max / 31.0);\n }\n`);\n\nexport function evaluatePackedSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n shMax: DynoVal<\"vec3\">;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3Texture: \"usampler2DArray\",\n shMax: \"vec3\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n },\n globals: () => [\n defineEvalPackedSH1,\n defineEvalPackedSH2,\n defineEvalPackedSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0).rg, ${inputs.viewDir}, ${inputs.shMax}.x);\n rgb += sh1Rgb;\n `),\n );\n if (inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 2) {\n vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.y);\n rgb += sh2Rgb;\n `),\n );\n if (inputs.sh3Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${inputs.sh3Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.z);\n rgb += sh3Rgb;\n }\n `),\n );\n }\n lines.push(\"}\");\n }\n lines.push(\"}\");\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n","import { unzipSync } from \"fflate\";\nimport { FileLoader, Loader, type LoadingManager } from \"three\";\nimport { ExtSplats, type ExtSplatsOptions } from \"./ExtSplats\";\nimport { PackedSplats, type PackedSplatsOptions } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { type SplatEncoding, SplatFileType } from \"./defines\";\nimport { PlyReader } from \"./ply\";\nimport { decompressPartialGzip, getTextureSize } from \"./utils\";\n\n// SplatLoader implements the THREE.Loader interface and supports loading a variety\n// of different Gsplat file formats. Formats .PLY and .SPZ can be auto-detected\n// from the file contents, while .SPLAT and .KSPLAT require either having the\n// appropriate file extension as part of the path, or it can be explicitly set\n// in the loader using the fileType property.\n\nexport class SplatLoader extends Loader {\n fileLoader: FileLoader;\n\n constructor(manager?: LoadingManager) {\n super(manager);\n this.fileLoader = new FileLoader(manager);\n }\n\n load(\n url: string,\n onLoad?: (decoded: PackedSplats | ExtSplats) => void,\n onProgress?: (event: ProgressEvent) => void,\n onError?: (error: unknown) => void,\n ) {\n return this.loadInternal({\n url,\n onLoad,\n onProgress,\n onError,\n });\n }\n\n async loadAsync(\n url: string,\n onProgress?: (event: ProgressEvent) => void,\n ): Promise {\n return new Promise((resolve, reject) => {\n this.load(\n url,\n (decoded) => {\n resolve(decoded);\n },\n onProgress,\n reject,\n );\n });\n }\n\n parse(packedSplats: PackedSplats): SplatMesh {\n return new SplatMesh({ packedSplats });\n }\n\n loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad,\n onProgress,\n onError,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onLoad?: (decoded: PackedSplats | ExtSplats) => void;\n onProgress?: (event: ProgressEvent) => void;\n onError?: (error: unknown) => void;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n if (fileBytes instanceof ArrayBuffer) {\n fileBytes = new Uint8Array(fileBytes);\n }\n const resolvedURL = fileBytes\n ? undefined\n : this.manager.resolveURL((this.path ?? \"\") + (url ?? \"\"));\n\n let readStream = stream?.getReader();\n\n this.manager.itemStart(resolvedURL ?? \"\");\n // let calledOnLoad = false;\n\n workerPool\n .withWorker(async (worker) => {\n // If LoD is set and not falsey\n const splatsLod = packedSplats?.lod ?? extSplats?.lod;\n if (splatsLod) {\n lod = splatsLod;\n }\n const splatsNonLod = packedSplats?.nonLod ?? extSplats?.nonLod;\n if (splatsNonLod !== undefined) {\n nonLod = splatsNonLod;\n }\n\n // let init: {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // } | null = null;\n // let initExt: {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // } | null = null;\n\n const onStatus = async (data: unknown) => {\n const { loaded, total } = data as { loaded: number; total: number };\n if (loaded !== undefined && onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n\n if ((data as { nextChunk?: boolean }).nextChunk) {\n let chunk: Uint8Array;\n if (!readStream) {\n chunk = new Uint8Array(0);\n } else {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n readStream = undefined;\n chunk = new Uint8Array(0);\n } else {\n chunk = value;\n }\n }\n worker.call(\"nextChunk\", { chunk });\n }\n\n // if ((data as { orig?: unknown }).orig) {\n // if (extSplats) {\n // initExt = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // };\n // extSplats.initialize({\n // numSplats: initExt?.numSplats,\n // extArrays: [initExt?.ext0, initExt?.ext1],\n // extra: initExt?.extra,\n // });\n // calledOnLoad = true;\n // onLoad?.(extSplats);\n // } else if (packedSplats) {\n // init = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // };\n // packedSplats.initialize({\n // numSplats: init?.numSplats,\n // packedArray: init?.packedArray,\n // extra: init?.extra,\n // splatEncoding: init?.splatEncoding,\n // });\n // calledOnLoad = true;\n // onLoad?.(packedSplats);\n // } else {\n // console.warn(\"No splats to initialize\");\n // }\n // }\n };\n\n const basedUrl = resolvedURL\n ? new URL(resolvedURL, window.location.href).toString()\n : undefined;\n const decoded = (await worker.call(\n extSplats ? \"loadExtSplats\" : \"loadPackedSplats\",\n {\n url: basedUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n fileBytes: fileBytes?.slice(),\n fileType,\n pathName: resolvedURL || fileName,\n chunked: stream !== undefined,\n chunkedLength: streamLength,\n encoding: packedSplats?.splatEncoding,\n lod,\n lodBase,\n nonLod,\n lodAbove,\n },\n { onStatus },\n )) as {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n lodSplats?:\n | {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n }\n | PackedSplats\n | ExtSplats;\n };\n\n if (decoded.lodSplats) {\n if (extSplats) {\n decoded.lodSplats = new ExtSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n }),\n });\n } else {\n decoded.lodSplats = new PackedSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n }),\n maxSplats: packedSplats?.maxSplats,\n });\n }\n }\n\n if (extSplats) {\n const initExtSplats = {\n // ...(initExt ?? {}),\n ...decoded,\n };\n extSplats.initialize(initExtSplats as ExtSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(extSplats);\n // }\n } else {\n const initSplats = {\n // ...(init ?? {}),\n ...decoded,\n };\n if (packedSplats) {\n packedSplats.initialize(initSplats as PackedSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(packedSplats);\n // }\n } else {\n // if (!calledOnLoad) {\n onLoad?.(new PackedSplats(initSplats as PackedSplatsOptions));\n // }\n }\n }\n })\n .catch((error) => {\n this.manager.itemError(resolvedURL ?? \"\");\n onError?.(error);\n })\n .finally(() => {\n this.manager.itemEnd(resolvedURL ?? \"\");\n });\n }\n\n async loadInternalAsync({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onProgress?: (event: ProgressEvent) => void;\n lod?: boolean;\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n return new Promise((resolve, reject) => {\n this.loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad: resolve,\n onProgress,\n onError: reject,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n });\n });\n }\n}\n\nasync function fetchWithProgress(\n request: Request,\n onProgress?: (event: ProgressEvent) => void,\n) {\n const response = await fetch(request);\n if (!response.ok) {\n throw new Error(\n `${response.status} \"${response.statusText}\" fetching URL: ${request.url}`,\n );\n }\n if (!response.body) {\n throw new Error(`Response body is null for URL: ${request.url}`);\n }\n\n const reader = response.body.getReader();\n let loaded = 0;\n const chunks: Uint8Array[] = [];\n try {\n const contentLength = Number.parseInt(\n response.headers.get(\"Content-Length\") || \"0\",\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n loaded += value.length;\n\n if (onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n }\n } catch (err) {\n try {\n const reason = err instanceof Error ? err.message : \"Unknown error\";\n await reader.cancel(reason);\n } catch {}\n throw err;\n }\n\n // Combine chunks into a single buffer\n const bytes = new Uint8Array(loaded);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.length;\n }\n return bytes.buffer;\n}\n\nexport function getSplatFileType(\n fileBytes: Uint8Array,\n): SplatFileType | undefined {\n const view = new DataView(fileBytes.buffer);\n const magic = view.getUint32(0, true);\n if ((magic & 0x00ffffff) === 0x00796c70) {\n return SplatFileType.PLY;\n }\n if ((magic & 0x00ffffff) === 0x00088b1f) {\n // Gzipped file, unpack beginning to check magic number\n const header = decompressPartialGzip(fileBytes, 4);\n const gView = new DataView(header.buffer);\n if (gView.getUint32(0, true) === 0x5053474e) {\n return SplatFileType.SPZ;\n }\n // Unknown Gzipped file type\n return undefined;\n }\n if (magic === 0x04034b50) {\n // PKZip file\n if (tryPcSogsZip(fileBytes)) {\n return SplatFileType.PCSOGSZIP;\n }\n // Unknown PKZip file type\n return undefined;\n }\n if (magic === 0x30444152) {\n return SplatFileType.RAD;\n }\n // Unknown file type\n return undefined;\n}\n\n// Returns the lowercased file extension from a path or URL\nexport function getFileExtension(pathOrUrl: string): string {\n const noTrailing = pathOrUrl.split(/[?#]/, 1)[0];\n const lastSlash = Math.max(\n noTrailing.lastIndexOf(\"/\"),\n noTrailing.lastIndexOf(\"\\\\\"),\n );\n const filename = noTrailing.slice(lastSlash + 1);\n const lastDot = filename.lastIndexOf(\".\");\n if (lastDot <= 0 || lastDot === filename.length - 1) {\n return \"\"; // No extension\n }\n return filename.slice(lastDot + 1).toLowerCase();\n}\n\nexport function getSplatFileTypeFromPath(\n pathOrUrl: string,\n): SplatFileType | undefined {\n const extension = getFileExtension(pathOrUrl);\n if (extension === \"ply\") {\n return SplatFileType.PLY;\n }\n if (extension === \"spz\") {\n return SplatFileType.SPZ;\n }\n if (extension === \"splat\") {\n return SplatFileType.SPLAT;\n }\n if (extension === \"ksplat\") {\n return SplatFileType.KSPLAT;\n }\n if (extension === \"sog\") {\n return SplatFileType.PCSOGSZIP;\n }\n if (extension === \"rad\") {\n return SplatFileType.RAD;\n }\n return undefined;\n}\n\nexport type PcSogsJson = {\n means: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n quats: { shape: number[]; dtype: string; encoding?: string; files: string[] };\n sh0: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n shN?: {\n shape: number[];\n dtype: string;\n mins: number;\n maxs: number;\n quantization: number;\n files: string[];\n };\n};\n\nexport type PcSogsV2Json = {\n version: 2;\n count: number;\n antialias?: boolean;\n means: {\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n codebook: number[];\n files: string[];\n };\n quats: { files: string[] };\n sh0: {\n codebook: number[];\n files: string[];\n };\n shN?: {\n count: number;\n bands: number;\n codebook: number[];\n files: string[];\n };\n};\n\nexport function isPcSogs(input: ArrayBuffer | Uint8Array | string): boolean {\n // Returns true if the input seems to be a valid PC SOGS file\n return tryPcSogs(input) !== undefined;\n}\n\nexport function tryPcSogs(\n input: ArrayBuffer | Uint8Array | string,\n): PcSogsJson | PcSogsV2Json | undefined {\n // Try to parse input as SOGS JSON and see if it's valid\n try {\n let text: string;\n if (typeof input === \"string\") {\n text = input;\n } else {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n if (fileBytes.length > 65536) {\n // Should be only a few KB, definitely not a SOGS JSON file\n return undefined;\n }\n text = new TextDecoder().decode(fileBytes);\n }\n\n const json = JSON.parse(text);\n if (!json || typeof json !== \"object\" || Array.isArray(json)) {\n return undefined;\n }\n const isVersion2 = json.version === 2;\n\n for (const key of [\"means\", \"scales\", \"quats\", \"sh0\"]) {\n if (\n !json[key] ||\n typeof json[key] !== \"object\" ||\n Array.isArray(json[key])\n ) {\n return undefined;\n }\n if (isVersion2) {\n // Expect files\n if (!json[key].files) {\n return undefined;\n }\n\n // Scales and sh0 should have codebooks\n if ((key === \"scales\" || key === \"sh0\") && !json[key].codebook) {\n return undefined;\n }\n // Means should have mins and maxs defined\n if (key === \"means\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n } else {\n // Expect shape and files\n if (!json[key].shape || !json[key].files) {\n return undefined;\n }\n // Besides 'quats' all other properties have mins and maxs\n if (key !== \"quats\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n }\n }\n // This is probably a PC SOGS file\n return json as PcSogsJson | PcSogsV2Json;\n } catch {\n return undefined;\n }\n}\n\nexport function tryPcSogsZip(\n input: ArrayBuffer | Uint8Array,\n): { name: string; json: PcSogsJson | PcSogsV2Json } | undefined {\n try {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let metaFilename: string | null = null;\n\n const unzipped = unzipSync(fileBytes, {\n filter: ({ name }) => {\n const filename = name.split(/[\\\\/]/).pop() as string;\n if (filename === \"meta.json\") {\n metaFilename = name;\n return true;\n }\n return false;\n },\n });\n if (!metaFilename) {\n return undefined;\n }\n\n // Check for PC SOGS V1 and V2 (aka SOG)\n const json = tryPcSogs(unzipped[metaFilename]);\n if (!json) {\n return undefined;\n }\n return { name: metaFilename, json };\n } catch {\n return undefined;\n }\n}\n\nexport class SplatData {\n numSplats: number;\n maxSplats: number;\n centers: Float32Array;\n scales: Float32Array;\n quaternions: Float32Array;\n opacities: Float32Array;\n colors: Float32Array;\n sh1?: Float32Array;\n sh2?: Float32Array;\n sh3?: Float32Array;\n\n constructor({ maxSplats = 1 }: { maxSplats?: number } = {}) {\n this.numSplats = 0;\n this.maxSplats = getTextureSize(maxSplats).maxSplats;\n this.centers = new Float32Array(this.maxSplats * 3);\n this.scales = new Float32Array(this.maxSplats * 3);\n this.quaternions = new Float32Array(this.maxSplats * 4);\n this.opacities = new Float32Array(this.maxSplats);\n this.colors = new Float32Array(this.maxSplats * 3);\n }\n\n pushSplat(): number {\n const index = this.numSplats;\n this.ensureIndex(index);\n this.numSplats += 1;\n return index;\n }\n\n unpushSplat(index: number) {\n if (index === this.numSplats - 1) {\n this.numSplats -= 1;\n } else {\n throw new Error(\"Cannot unpush splat from non-last position\");\n }\n }\n\n ensureCapacity(numSplats: number) {\n if (numSplats > this.maxSplats) {\n const targetSplats = Math.max(numSplats, this.maxSplats * 2);\n const newCenters = new Float32Array(targetSplats * 3);\n const newScales = new Float32Array(targetSplats * 3);\n const newQuaternions = new Float32Array(targetSplats * 4);\n const newOpacities = new Float32Array(targetSplats);\n const newColors = new Float32Array(targetSplats * 3);\n newCenters.set(this.centers);\n newScales.set(this.scales);\n newQuaternions.set(this.quaternions);\n newOpacities.set(this.opacities);\n newColors.set(this.colors);\n this.centers = newCenters;\n this.scales = newScales;\n this.quaternions = newQuaternions;\n this.opacities = newOpacities;\n this.colors = newColors;\n\n if (this.sh1) {\n const newSh1 = new Float32Array(targetSplats * 9);\n newSh1.set(this.sh1);\n this.sh1 = newSh1;\n }\n if (this.sh2) {\n const newSh2 = new Float32Array(targetSplats * 15);\n newSh2.set(this.sh2);\n this.sh2 = newSh2;\n }\n if (this.sh3) {\n const newSh3 = new Float32Array(targetSplats * 21);\n newSh3.set(this.sh3);\n this.sh3 = newSh3;\n }\n\n this.maxSplats = targetSplats;\n }\n }\n\n ensureIndex(index: number) {\n this.ensureCapacity(index + 1);\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n this.centers[index * 3] = x;\n this.centers[index * 3 + 1] = y;\n this.centers[index * 3 + 2] = z;\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n this.scales[index * 3] = scaleX;\n this.scales[index * 3 + 1] = scaleY;\n this.scales[index * 3 + 2] = scaleZ;\n }\n\n setQuaternion(index: number, x: number, y: number, z: number, w: number) {\n this.quaternions[index * 4] = x;\n this.quaternions[index * 4 + 1] = y;\n this.quaternions[index * 4 + 2] = z;\n this.quaternions[index * 4 + 3] = w;\n }\n\n setOpacity(index: number, opacity: number) {\n this.opacities[index] = opacity;\n }\n\n setColor(index: number, r: number, g: number, b: number) {\n this.colors[index * 3] = r;\n this.colors[index * 3 + 1] = g;\n this.colors[index * 3 + 2] = b;\n }\n\n setSh1(index: number, sh1: Float32Array) {\n if (!this.sh1) {\n this.sh1 = new Float32Array(this.maxSplats * 9);\n }\n for (let j = 0; j < 9; ++j) {\n this.sh1[index * 9 + j] = sh1[j];\n }\n }\n\n setSh2(index: number, sh2: Float32Array) {\n if (!this.sh2) {\n this.sh2 = new Float32Array(this.maxSplats * 15);\n }\n for (let j = 0; j < 15; ++j) {\n this.sh2[index * 15 + j] = sh2[j];\n }\n }\n\n setSh3(index: number, sh3: Float32Array) {\n if (!this.sh3) {\n this.sh3 = new Float32Array(this.maxSplats * 21);\n }\n for (let j = 0; j < 21; ++j) {\n this.sh3[index * 21 + j] = sh3[j];\n }\n }\n}\n\nexport type FileInput = {\n fileBytes: Uint8Array;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n transform?: { translate?: number[]; quaternion?: number[]; scale?: number };\n};\n\nexport type TranscodeSpzInput = {\n inputs: FileInput[];\n maxSh?: number;\n clipXyz?: { min: number[]; max: number[] };\n fractionalBits?: number;\n opacityThreshold?: number;\n};\n","import * as THREE from \"three\";\nimport type { RgbaArray } from \"./RgbaArray\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { SPLAT_TEX_WIDTH, type SplatFileType } from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n type Gsplat,\n TExtSplats,\n add,\n combineGsplat,\n defineExtSplats,\n normalize,\n readExtSplat,\n splatTexCoord,\n splitGsplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { decodeExtSplat, encodeExtSplat, getTextureSize } from \"./utils\";\n\nexport type ExtSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided pair of uint32 arrays, where blocks of 4 uint32s in each,\n // encode an \"extended packed\" Gsplat. (default: undefined)\n extArrays?: [Uint32Array, Uint32Array];\n // Override number of splats in packed arrays to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: ExtSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the ExtSplats\n lodSplats?: ExtSplats;\n};\n\nexport class ExtSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record = {};\n maxSh = 3;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: ExtSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n textures: [THREE.DataArrayTexture, THREE.DataArrayTexture];\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoNumSh: DynoInt<\"numSh\">;\n\n constructor(options: ExtSplatsOptions = {}) {\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n this.textures = [ExtSplats.emptyTexture, ExtSplats.emptyTexture];\n\n this.extra = {};\n this.dyno = new DynoExtSplats({ extSplats: this });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: ExtSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: ExtSplatsOptions) {\n this.extra = options.extra ?? {};\n this.lodSplats = options.lodSplats;\n\n if (options.extArrays) {\n this.extArrays = options.extArrays;\n this.maxSplats = Math.floor(\n Math.min(this.extArrays[0].length / 4, this.extArrays[1].length / 4),\n );\n this.numSplats = options.numSplats ?? this.maxSplats;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n this.updateTextures();\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n }\n }\n\n async asyncInitialize(options: ExtSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n extSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n this.textures[0].dispose();\n this.textures[0].source.data = null;\n this.textures[0] = ExtSplats.emptyTexture;\n }\n if (this.textures[1] !== ExtSplats.emptyTexture) {\n this.textures[1].dispose();\n this.textures[1].source.data = null;\n this.textures[1] = ExtSplats.emptyTexture;\n }\n\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"ExtSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1\n ? 0\n : !this.extra.sh2\n ? 1\n : !this.extra.sh3a || !this.extra.sh3b\n ? 2\n : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readExtSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB } =\n this.ensureShTextures();\n let { rgb } = evaluateExtSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 4,\n );\n if (sh1.length < maxSplats * 4) {\n const newSh1 = new Uint32Array(maxSplats * 4);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n const texture = newUint32ArrayTexture(\n sh1,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = newUint32ArrayTexture(\n sh2,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3a || !this.extra.sh3b) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3TextureA = this.extra.sh3TextureA as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureA) {\n let sh3a = this.extra.sh3a as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3a.length / 4,\n );\n if (sh3a.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3a);\n this.extra.sh3a = newSh3;\n sh3a = newSh3;\n }\n\n const texture = newUint32ArrayTexture(\n sh3a,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureA = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3TextureA = sh3TextureA;\n }\n\n let sh3TextureB = this.extra.sh3TextureB as\n | DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureB) {\n let sh3b = this.extra.sh3b as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3b.length / 4,\n );\n if (sh3b.length < maxSplats * 4) {\n const newSh3b = new Uint32Array(maxSplats * 4);\n newSh3b.set(sh3b);\n this.extra.sh3b = newSh3b;\n sh3b = newSh3b;\n }\n\n const texture = newUint32ArrayTexture(\n sh3b,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureB = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3b\",\n });\n this.extra.sh3TextureB = sh3TextureB;\n }\n\n return { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB };\n }\n\n // Ensures that this.extArrays can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): [Uint32Array, Uint32Array] {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.extArrays[0] ? 0 : this.extArrays[0].length / 4;\n\n if (!this.extArrays[0] || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray0 = new Uint32Array(this.maxSplats * 4);\n const newArray1 = new Uint32Array(this.maxSplats * 4);\n if (this.extArrays[0]) {\n // Copy over existing data\n newArray0.set(this.extArrays[0]);\n newArray1.set(this.extArrays[1]);\n }\n this.extArrays[0] = newArray0;\n this.extArrays[1] = newArray1;\n }\n return this.extArrays;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return decodeExtSplat(this.extArrays, index);\n }\n\n // Set all ExtSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(index + 1);\n encodeExtSplat(\n extArrays,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(this.numSplats + 1);\n encodeExtSplat(\n extArrays,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = decodeExtSplat(this.extArrays, i);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Check if source texture needs to be created/updated\n private updateTextures() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n const { width, height, depth } = this.textures[0].image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.textures[0].dispose();\n this.textures[0] = ExtSplats.emptyTexture;\n this.textures[1].dispose();\n this.textures[1] = ExtSplats.emptyTexture;\n }\n }\n if (this.textures[0] === ExtSplats.emptyTexture) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.textures[0] = newUint32ArrayTexture(\n this.extArrays[0],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n this.textures[1] = newUint32ArrayTexture(\n this.extArrays[1],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n } else if (\n this.extArrays[0].buffer !== this.textures[0].image.data.buffer\n ) {\n this.textures[0].image.data = new Uint8Array(this.extArrays[0].buffer);\n this.textures[1].image.data = new Uint8Array(this.extArrays[1].buffer);\n // Indicate to Three.js that the source textures needs to be uploaded to the GPU\n this.textures[0].needsUpdate = true;\n this.textures[1].needsUpdate = true;\n }\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new ExtSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static emptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTexture = newUint32ArrayTexture(\n null,\n 1,\n 1,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const extArrays = [this.extArrays[0].slice(), this.extArrays[1].slice()];\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodExtSplats\" : \"tinyLodExtSplats\",\n {\n numSplats: this.numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n },\n )) as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n };\n });\n\n const lodSplats = new ExtSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\nexport const dynoExtSplats = (extSplats?: ExtSplats) =>\n new DynoExtSplats({ extSplats });\n\nexport class DynoExtSplats extends DynoUniform<\n typeof TExtSplats,\n \"extSplats\",\n {\n textureArray1: THREE.DataArrayTexture;\n textureArray2: THREE.DataArrayTexture;\n numSplats: number;\n }\n> {\n extSplats?: ExtSplats;\n\n constructor({ extSplats }: { extSplats?: ExtSplats } = {}) {\n super({\n key: \"extSplats\",\n type: TExtSplats,\n globals: () => [defineExtSplats],\n value: {\n textureArray1: ExtSplats.emptyTexture,\n textureArray2: ExtSplats.emptyTexture,\n numSplats: 0,\n },\n update: (value) => {\n value.textureArray1 =\n this.extSplats?.textures[0] ?? ExtSplats.emptyTexture;\n value.textureArray2 =\n this.extSplats?.textures[1] ?? ExtSplats.emptyTexture;\n value.numSplats = this.extSplats?.numSplats ?? 0;\n return value;\n },\n });\n this.extSplats = extSplats;\n }\n}\n\nexport const defineEvaluateExtSH1 = unindent(`\n vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packedData.x);\n vec3 sh1_1 = decodeExtRgb(packedData.y);\n vec3 sh1_2 = decodeExtRgb(packedData.z);\n\n return sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n }\n`);\n\nexport const defineEvaluateExtSH12 = unindent(`\n vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packed1.x);\n vec3 sh1_1 = decodeExtRgb(packed1.y);\n vec3 sh1_2 = decodeExtRgb(packed1.z);\n\n vec3 sh2_0 = decodeExtRgb(packed1.w);\n vec3 sh2_1 = decodeExtRgb(packed2.x);\n vec3 sh2_2 = decodeExtRgb(packed2.y);\n vec3 sh2_3 = decodeExtRgb(packed2.z);\n vec3 sh2_4 = decodeExtRgb(packed2.w);\n\n vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n\n vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n\n return sh1Rgb + sh2Rgb;\n }\n`);\n\nexport const defineEvaluateExtSH3 = unindent(`\n vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) {\n vec3 sh3_0 = decodeExtRgb(packedA.x);\n vec3 sh3_1 = decodeExtRgb(packedA.y);\n vec3 sh3_2 = decodeExtRgb(packedA.z);\n vec3 sh3_3 = decodeExtRgb(packedA.w);\n vec3 sh3_4 = decodeExtRgb(packedB.x);\n vec3 sh3_5 = decodeExtRgb(packedB.y);\n vec3 sh3_6 = decodeExtRgb(packedB.z);\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n }\n`);\n\nexport function evaluateExtSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3TextureA: \"usampler2DArray\",\n sh3TextureB: \"usampler2DArray\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n },\n globals: () => [\n defineEvaluateExtSH1,\n defineEvaluateExtSH12,\n defineEvaluateExtSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n if (!inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n } else {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} == 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n } else if (${inputs.numSh} >= 2) {\n rgb = evaluateExtSH12(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n `),\n );\n\n if (inputs.sh3TextureA && inputs.sh3TextureB) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n rgb += evaluateExtSH3(texelFetch(${inputs.sh3TextureA}, ${inputs.coord}, 0), texelFetch(${inputs.sh3TextureB}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n }\n\n lines.push(\"}\");\n }\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n\nfunction newUint32ArrayTexture(\n data: Uint32Array | null,\n width: number,\n height: number,\n depth: number,\n format: THREE.AnyPixelFormat,\n type: THREE.TextureDataType,\n internalFormat: THREE.PixelFormatGPU,\n): THREE.DataArrayTexture {\n const texture = new THREE.DataArrayTexture(\n data as Uint32Array,\n width,\n height,\n depth,\n );\n texture.format = format;\n texture.type = type;\n texture.internalFormat = internalFormat;\n texture.needsUpdate = true;\n return texture;\n}\n","import * as THREE from \"three\";\n\nimport { DynoPackedSplats, type PackedSplats } from \"./PackedSplats\";\nimport { Readback, type Rgba8Readback } from \"./Readback\";\nimport { SPLAT_TEX_WIDTH } from \"./defines\";\nimport {\n Dyno,\n type DynoBlock,\n DynoInt,\n DynoUniform,\n type DynoVal,\n add,\n dynoBlock,\n readPackedSplatRange,\n splitGsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize } from \"./utils\";\n\n// An RgbaArray is a collection of ordered RGBA8 values, which can be used as a dyno\n// data source, for example for recoloring Gsplats via SplatMesh.splatRgba.\n// It can be instantiated from a Uint8Array of RGBA8 values, or it can be\n// generated using a Rgba8Readback dyno program.\n\nexport type RgbaArrayOptions = {\n // Reserve space for at least this many RGBA values.\n capacity?: number;\n // Use the provided array of RGBA8 values as the source.\n array?: Uint8Array;\n // The number of actual RGBA8 values in the array.\n count?: number;\n};\n\nexport class RgbaArray {\n capacity = 0;\n count = 0;\n array: Uint8Array | null = null;\n\n readback: Readback | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source array is updated to have it upload to GPU\n needsUpdate = true;\n\n // Use this as a TRgbaArray in a dyno graph\n dyno: DynoUniform;\n\n constructor(options: RgbaArrayOptions = {}) {\n this.dyno = new DynoUniform({\n key: \"rgbaArray\",\n type: TRgbaArray,\n globals: () => [defineRgbaArray],\n value: {\n texture: RgbaArray.getEmpty(),\n count: 0,\n },\n update: (value) => {\n value.texture = this.getTexture();\n value.count = this.count;\n return value;\n },\n });\n\n if (options.array) {\n // Initialize with given array\n this.array = options.array;\n const splatCount = Math.floor(this.array.length / 4);\n this.capacity = Math.ceil(splatCount / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (this.capacity > splatCount) {\n this.array = new Uint8Array(this.capacity * 4);\n this.array.set(options.array);\n }\n this.count = Math.min(\n splatCount,\n options.count ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.capacity = options.capacity ?? 0;\n this.count = 0;\n }\n }\n\n // Free up resources\n dispose() {\n if (this.readback) {\n this.readback.dispose();\n this.readback = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source = null;\n }\n }\n\n // Ensure that our array is large enough to hold capacity RGBA8 values.\n ensureCapacity(capacity: number): Uint8Array {\n if (!this.array || capacity > (this.array?.length ?? 0) / 4) {\n this.capacity = getTextureSize(capacity).maxSplats;\n const newArray = new Uint8Array(this.capacity * 4);\n if (this.array) {\n // Copy over existing data\n newArray.set(this.array);\n }\n this.array = newArray;\n }\n return this.array;\n }\n\n // Get the THREE.DataArrayTexture from either the readback or the source.\n getTexture(): THREE.DataArrayTexture {\n let texture = this.readback?.getTexture();\n if (this.source || this.array) {\n texture = this.maybeUpdateSource();\n }\n return texture ?? RgbaArray.getEmpty();\n }\n\n // Create or get a THREE.DataArrayTexture from the data array.\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.array) {\n throw new Error(\"No array\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.capacity !== width * height * depth) {\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n const { width, height, depth } = getTextureSize(this.capacity);\n this.source = new THREE.DataArrayTexture(\n this.array as Uint8Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAFormat;\n this.source.type = THREE.UnsignedByteType;\n this.source.internalFormat = \"RGBA8\";\n this.source.needsUpdate = true;\n } else if (this.array.buffer !== this.source.image.data.buffer) {\n this.source.image.data = new Uint8Array(this.array.buffer);\n }\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n // Generate the RGBA8 values from a Rgba8Readback dyno program.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer: THREE.WebGLRenderer }) {\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n this.readback.render({ reader, count, renderer });\n this.capacity = this.readback.capacity;\n this.count = this.readback.count;\n }\n\n // Extract the RGBA8 values from a PackedSplats collection.\n fromPackedSplats({\n packedSplats,\n base,\n count,\n renderer,\n }: {\n packedSplats: PackedSplats;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n const { dynoSplats, dynoBase, dynoCount, reader } = RgbaArray.makeDynos();\n dynoSplats.packedSplats = packedSplats;\n dynoBase.value = base;\n dynoCount.value = count;\n this.render({ reader, count, renderer });\n return this;\n }\n\n // Read back the RGBA8 values from the readback buffer.\n async read(): Promise {\n if (!this.readback) {\n throw new Error(\"No readback\");\n }\n if (!this.array || this.array.length < this.count * 4) {\n this.array = new Uint8Array(this.capacity * 4);\n }\n const result = await this.readback.readback({ readback: this.array });\n return result.subarray(0, this.count * 4);\n }\n\n async getArray(): Promise {\n if (this.readback) {\n return await this.read();\n }\n if (this.array) {\n return this.array;\n }\n throw new Error(\"No array\");\n }\n\n private static emptySource: THREE.DataArrayTexture | null = null;\n\n // Can be used where you need an uninitialized THREE.DataArrayTexture like\n // a uniform you will update with the result of this.getTexture() later.\n static getEmpty(): THREE.DataArrayTexture {\n if (!RgbaArray.emptySource) {\n const emptyArray = new Uint8Array(1 * 4);\n RgbaArray.emptySource = new THREE.DataArrayTexture(emptyArray, 1, 1, 1);\n RgbaArray.emptySource.format = THREE.RGBAFormat;\n RgbaArray.emptySource.type = THREE.UnsignedByteType;\n RgbaArray.emptySource.internalFormat = \"RGBA8\";\n RgbaArray.emptySource.needsUpdate = true;\n }\n return RgbaArray.emptySource;\n }\n\n private static dynos: {\n dynoSplats: DynoPackedSplats;\n dynoBase: DynoInt;\n dynoCount: DynoInt;\n reader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n } | null = null;\n\n // Create a dyno program that can extract RGBA8 values from a PackedSplats\n private static makeDynos() {\n if (!RgbaArray.dynos) {\n const dynoSplats = new DynoPackedSplats();\n const dynoBase = new DynoInt({ value: 0 });\n const dynoCount = new DynoInt({ value: 0 });\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n index = add(index, dynoBase);\n const gsplat = readPackedSplatRange(\n dynoSplats,\n index,\n dynoBase,\n dynoCount,\n );\n return { rgba8: splitGsplat(gsplat).outputs.rgba };\n },\n );\n RgbaArray.dynos = { dynoSplats, dynoBase, dynoCount, reader };\n }\n return RgbaArray.dynos;\n }\n}\n\n// Dyno types and definitions\n\nexport const TRgbaArray = { type: \"RgbaArray\" } as { type: \"RgbaArray\" };\n\nexport const defineRgbaArray = unindent(`\n struct RgbaArray {\n sampler2DArray texture;\n int count;\n };\n`);\n\nexport function readRgbaArray(\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal<\"vec4\"> {\n const dyno = new Dyno<\n { rgba: typeof TRgbaArray; index: \"int\" },\n { rgba: \"vec4\" }\n >({\n inTypes: { rgba: TRgbaArray, index: \"int\" },\n outTypes: { rgba: \"vec4\" },\n inputs: { rgba, index },\n globals: () => [defineRgbaArray],\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n if ((${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.rgba} = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n } else {\n ${outputs.rgba} = vec4(0.0, 0.0, 0.0, 0.0);\n }\n `),\n });\n return dyno.outputs.rgba;\n}\n","import * as THREE from \"three\";\n\nimport { decode_rad_header } from \"spark-rs\";\nimport { LN_SCALE_MAX, LN_SCALE_MIN, dyno } from \".\";\nimport { evaluateExtSH } from \"./ExtSplats\";\nimport { evaluatePackedSH } from \"./PackedSplats\";\nimport { getSplatFileType, getSplatFileTypeFromPath } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n type ExtResult,\n type PackedResult,\n type RadMeta,\n type SplatEncoding,\n SplatFileType,\n} from \"./defines\";\nimport { type DynoUsampler2DArray, pagedSplatTexCoord } from \"./dyno\";\nimport {\n decodeExtSplat,\n getTextureSize,\n unpackSplat,\n uploadU32DataTextureRows,\n} from \"./utils\";\nimport * as wasm from \"./wasm\";\n\nexport interface PagedSplatsOptions {\n pager?: SplatPager;\n rootUrl?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n maxSh?: number;\n}\n\nconst PAGE_WIDTH = 256;\nconst PAGE_HEIGHT = 256;\nconst PAGE_SPLATS = PAGE_WIDTH * PAGE_HEIGHT; // 65536\n\nexport class PagedSplats implements SplatSource {\n pager?: SplatPager;\n rootUrl: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n\n numSh: number;\n maxSh: number;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array | [Uint32Array, Uint32Array];\n\n numSplats: number;\n splatEncoding?: SplatEncoding;\n radMetaPromise?: Promise<{ meta: RadMeta; chunksStart: number }>;\n\n dynoNumSplats: dyno.DynoInt<\"numSplats\">;\n dynoIndices: dyno.DynoUsampler2D<\"indices\", THREE.DataTexture>;\n rgbMinMaxLnScaleMinMax: dyno.DynoVec4<\n THREE.Vector4,\n \"rgbMinMaxLnScaleMinMax\"\n >;\n lodOpacity: dyno.DynoBool<\"lodOpacity\">;\n dynoNumSh: dyno.DynoInt<\"numSh\">;\n shMax: dyno.DynoVec3;\n\n constructor(options: PagedSplatsOptions) {\n this.pager = options.pager;\n this.rootUrl = options.rootUrl ?? \"\";\n this.requestHeader = options.requestHeader;\n this.withCredentials = options.withCredentials;\n this.numSh = 0;\n this.maxSh = options.pager?.maxSh ?? 3;\n\n this.numSplats = 0;\n\n this.dynoNumSplats = new dyno.DynoInt({ value: 0 });\n this.dynoIndices = new dyno.DynoUsampler2D({\n value: SplatPager.emptyIndicesTexture,\n });\n\n this.rgbMinMaxLnScaleMinMax = new dyno.DynoVec4({\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n });\n this.lodOpacity = new dyno.DynoBool({\n value: false,\n });\n\n this.dynoNumSh = new dyno.DynoInt({ value: 0 });\n this.shMax = new dyno.DynoVec3({ value: new THREE.Vector3() });\n\n this.fileBytes = options.fileBytes;\n this.fileType = options.fileType;\n if (!this.fileType && this.fileBytes) {\n this.fileType = getSplatFileType(this.fileBytes);\n }\n if (!this.fileType && this.rootUrl) {\n this.fileType = getSplatFileTypeFromPath(this.rootUrl);\n }\n if (!this.fileType) {\n throw new Error(\"Unable to determine file type\");\n }\n if (this.fileType === SplatFileType.RAD) {\n this.radMetaPromise = this.getRadMeta();\n }\n }\n\n dispose() {\n if (this.dynoIndices.value !== SplatPager.emptyIndicesTexture) {\n this.dynoIndices.value.dispose();\n this.dynoIndices.value = SplatPager.emptyIndicesTexture;\n }\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n getRadMeta(): Promise<{ meta: RadMeta; chunksStart: number }> {\n if (this.radMetaPromise) {\n return this.radMetaPromise;\n }\n\n this.radMetaPromise = (async () => {\n await wasm.initialization;\n\n if (this.fileBytes) {\n // Shouldn't be more than 1 MB, so don't send more data than that.\n const metaStart = decode_rad_header(this.fileBytes.slice(0, 1048576));\n if (metaStart) {\n return metaStart;\n }\n throw new Error(\"Failed to decode RAD header\");\n }\n if (!this.rootUrl) {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n // We don't know how big the header will be. Most likely 64KB will be enough,\n // but try larger blocks in backoff if it wasn't enough.\n for (const tryBytes of [65536, 256 * 1024, 1024 * 1024]) {\n const bytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset: 0,\n bytes: tryBytes,\n });\n const metaStart = decode_rad_header(bytes);\n if (metaStart) {\n return metaStart;\n }\n }\n throw new Error(\"Failed to decode RAD header\");\n })().then((metaStart) => {\n // console.log(\"RAD meta: \", metaStart.meta);\n return metaStart;\n });\n\n this.radMetaPromise.catch((error) => {\n console.error(error);\n // Allow it to be tried again\n // this.radMetaPromise = undefined;\n });\n\n return this.radMetaPromise;\n }\n\n chunkUrl(chunk: number): string {\n return this.rootUrl.replace(/-lod-0\\./, `-lod-${chunk}.`);\n }\n\n async fetchDecodeChunk(chunk: number) {\n let decodeBytes = undefined;\n\n if (this.fileType === SplatFileType.RAD) {\n const { meta, chunksStart } = await this.getRadMeta();\n if (chunk < 0 || chunk >= meta.chunks.length) {\n throw new Error(\n `Chunk index out of range: ${chunk} (max: ${meta.chunks.length - 1})`,\n );\n }\n let { offset, bytes, filename } = meta.chunks[chunk];\n\n if (filename) {\n if (this.fileBytes) {\n throw new Error(\"Chunked RAD file not supported with fileBytes\");\n }\n const resolvedRoot = new URL(\n this.rootUrl,\n window.location.href,\n ).toString();\n const chunkUrl = new URL(filename, resolvedRoot).toString();\n decodeBytes = await fetchRange({\n url: chunkUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n });\n } else {\n offset += chunksStart;\n // console.log(`Fetching chunk ${chunk} at offset ${offset} with bytes ${bytes}`);\n if (this.fileBytes) {\n if (offset < 0 || offset + bytes > this.fileBytes.length) {\n throw new Error(\n `Invalid chunk offset or bytes: ${offset} + ${bytes} > ${this.fileBytes.length}`,\n );\n }\n decodeBytes = this.fileBytes.slice(offset, offset + bytes);\n } else if (this.rootUrl) {\n decodeBytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset,\n bytes,\n });\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n }\n } else if (this.fileBytes) {\n // Fall through\n } else if (this.rootUrl) {\n const url = this.chunkUrl(chunk);\n const request = new Request(url, {\n headers: this.requestHeader\n ? new Headers(this.requestHeader)\n : undefined,\n credentials: this.withCredentials ? \"include\" : \"same-origin\",\n });\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n decodeBytes = new Uint8Array(await response.arrayBuffer());\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n return await workerPool.withWorker(async (worker) => {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n if (!this.pager.extSplats) {\n const result = (await worker.call(\"loadPackedSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: this.sh3Codes?.slice(),\n })) as { lodSplats: PackedResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = lodSplats.splatEncoding;\n\n this.numSh = lodSplats.extra.sh3\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n\n this.rgbMinMaxLnScaleMinMax.value.set(\n this.splatEncoding.rgbMin ?? 0.0,\n this.splatEncoding.rgbMax ?? 1.0,\n this.splatEncoding.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding.lnScaleMax ?? LN_SCALE_MAX,\n );\n\n this.lodOpacity.value = this.splatEncoding.lodOpacity ?? false;\n\n this.shMax.value.set(\n this.splatEncoding.sh1Max ?? 1.0,\n this.splatEncoding.sh2Max ?? 1.0,\n this.splatEncoding.sh3Max ?? 1.0,\n );\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n }\n\n const sh3Codes = this.sh3Codes as [Uint32Array, Uint32Array] | undefined;\n const result = (await worker.call(\"loadExtSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: sh3Codes\n ? [sh3Codes[0].slice(), sh3Codes[1].slice()]\n : undefined,\n })) as { lodSplats: ExtResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = DEFAULT_SPLAT_ENCODING;\n this.numSh =\n lodSplats.extra.sh3a && lodSplats.extra.sh3b\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n });\n }\n\n update(numSplats: number, indices: Uint32Array) {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const renderer = this.pager.renderer;\n this.numSplats = numSplats;\n this.dynoNumSplats.value = this.numSplats;\n const rows = Math.ceil(numSplats / 16384);\n\n let indicesTexture =\n this.dynoIndices.value === SplatPager.emptyIndicesTexture\n ? undefined\n : this.dynoIndices.value;\n if (indicesTexture && rows > indicesTexture.image.height) {\n indicesTexture.dispose();\n indicesTexture = undefined;\n }\n\n if (!indicesTexture) {\n indicesTexture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n indicesTexture.internalFormat = \"RGBA32UI\";\n indicesTexture.needsUpdate = true;\n renderer.initTexture(indicesTexture);\n this.dynoIndices.value = indicesTexture;\n } else {\n const textureIndices = indicesTexture.image.data as Uint32Array;\n textureIndices.set(indices.subarray(0, numSplats));\n\n uploadU32DataTextureRows(\n renderer,\n indicesTexture,\n 4096,\n rows,\n textureIndices,\n );\n }\n }\n\n prepareFetchSplat() {}\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n if (!this.pager) {\n return false;\n }\n return Math.min(this.numSh, this.pager.maxSh) > 0;\n }\n\n getNumSh(): number {\n return this.numSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: {\n index: dyno.DynoVal<\"int\">;\n viewOrigin?: dyno.DynoVal<\"vec3\">;\n }): dyno.DynoVal {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const splatIndex = this.pager.readIndex.apply({\n index,\n numSplats: this.dynoNumSplats,\n indices: this.dynoIndices,\n }).index;\n\n if (!this.pager.extSplats) {\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(\n this.numSh,\n this.maxSh,\n this.pager.maxSh,\n );\n return this.pager.readSplatDir.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n viewOrigin,\n numSh: this.dynoNumSh,\n shMax: this.shMax,\n }).gsplat;\n }\n return this.pager.readSplat.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n }).gsplat;\n }\n\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(this.numSh, this.maxSh, this.pager.maxSh);\n return this.pager.readSplatExtDir.apply({\n index: splatIndex,\n viewOrigin,\n numSh: this.dynoNumSh,\n }).gsplat;\n }\n return this.pager.readSplatExt.apply({ index: splatIndex }).gsplat;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.pager || !this.numSplats) {\n return;\n }\n const extSplats = this.pager.extSplats;\n const indices = this.dynoIndices.value.image.data as Uint32Array;\n const packedSplatArray = this.pager.packedTexture.value.image\n .data as Uint32Array;\n const extPackedSplatArray = this.pager.extTexture.value.image\n .data as Uint32Array;\n const extArrays: [Uint32Array, Uint32Array] = [\n packedSplatArray,\n extPackedSplatArray,\n ];\n\n for (let i = 0; i < this.numSplats; ++i) {\n const splatIndex = indices[i];\n const unpacked = extSplats\n ? decodeExtSplat(extArrays, splatIndex)\n : unpackSplat(packedSplatArray, splatIndex, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n}\n\nexport interface SplatPagerOptions {\n /**\n * THREE.WebGLRenderer instance to upload texture data\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Whether to use extended Gsplat encoding for paged splats.\n * @default false\n */\n extSplats?: boolean;\n /**\n * Maximum size of splat page pool\n * @default 65536 * 256 = 16777216\n */\n maxSplats?: number;\n /**\n * Maximum number of spherical harmonics to keep\n * @default 3\n */\n maxSh?: number;\n /**\n * Automatically drive page fetching, or poll via drive()\n * @default true\n */\n autoDrive?: boolean;\n /**\n * Number of parallel chunk fetchers\n * @default 3\n */\n numFetchers?: number;\n}\n\ninterface PageUpload {\n page: number;\n numSplats: number;\n packedArray: Uint32Array;\n extArray?: Uint32Array;\n shArrays: Array;\n}\n\nexport class SplatPager {\n readonly renderer: THREE.WebGLRenderer;\n\n readonly extSplats: boolean;\n readonly maxPages: number;\n readonly maxSplats: number;\n readonly pageSplats: number;\n\n readonly maxSh: number;\n curSh: number;\n\n autoDrive: boolean;\n numFetchers: number;\n fetchPause = 0;\n\n splatsChunkToPage: Map<\n PagedSplats,\n ({ page: number; lru: number } | undefined)[]\n > = new Map();\n pageToSplatsChunk: (\n | { splats: PagedSplats; chunk: number; time: number }\n | undefined\n )[] = [];\n pageFreelist: number[];\n pageLru: Set<{ page: number; lru: number }>;\n freeablePages: number[];\n newUploads: PageUpload[];\n readyUploads: PageUpload[];\n lodTreeUpdates: {\n splats: PagedSplats;\n page: number;\n chunk: number;\n numSplats: number;\n lodTree?: Uint32Array;\n }[];\n\n fetchers: { splats: PagedSplats; chunk: number; promise: Promise }[];\n fetched: {\n splats: PagedSplats;\n chunk: number;\n data: PackedResult | ExtResult;\n }[];\n fetchPriority: { splats: PagedSplats; chunk: number }[];\n\n packedTexture: dyno.DynoUsampler2DArray<\n \"packedTexture\",\n THREE.DataArrayTexture\n >;\n extTexture: dyno.DynoUsampler2DArray<\"extTexture\", THREE.DataArrayTexture>;\n readonly shTextures: [\n dyno.DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>,\n dyno.DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>,\n dyno.DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>,\n dyno.DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>,\n ];\n\n readIndex: dyno.DynoBlock<\n { index: \"int\"; numSplats: \"int\"; indices: \"usampler2D\" },\n { index: \"int\" }\n >;\n readSplat: dyno.DynoBlock<\n { index: \"int\"; rgbMinMaxLnScaleMinMax: \"vec4\"; lodOpacity: \"bool\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExt: dyno.DynoBlock<\n { index: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatDir: dyno.DynoBlock<\n {\n index: \"int\";\n rgbMinMaxLnScaleMinMax: \"vec4\";\n lodOpacity: \"bool\";\n viewOrigin: \"vec3\";\n numSh: \"int\";\n shMax: \"vec3\";\n },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExtDir: dyno.DynoBlock<\n { index: \"int\"; viewOrigin: \"vec3\"; numSh: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n\n constructor(options: SplatPagerOptions) {\n this.renderer = options.renderer;\n this.extSplats = options.extSplats ?? false;\n\n this.pageSplats = PAGE_SPLATS;\n this.maxSplats = options.maxSplats ?? 16777216;\n this.maxPages = Math.ceil(this.maxSplats / PAGE_SPLATS);\n this.maxSplats = this.maxPages * PAGE_SPLATS;\n\n this.maxSh = options.maxSh ?? 3;\n this.curSh = 0;\n\n this.autoDrive = options.autoDrive ?? true;\n this.numFetchers = options.numFetchers ?? 3;\n\n this.splatsChunkToPage = new Map();\n this.pageToSplatsChunk = new Array(this.maxPages);\n this.pageFreelist = Array.from({ length: this.maxPages }, (_, i) => i);\n this.pageLru = new Set();\n this.freeablePages = [];\n this.newUploads = [];\n this.readyUploads = [];\n this.lodTreeUpdates = [];\n\n this.fetchers = [];\n this.fetched = [];\n this.fetchPriority = [];\n\n this.packedTexture = new dyno.DynoUsampler2DArray({\n value: this.newUint32ArrayTexture(4),\n });\n this.extTexture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? this.newUint32ArrayTexture(4)\n : SplatPager.emptyExtTexture,\n });\n\n const emptyShTextures = this.extSplats\n ? SplatPager.emptyExtShTextures\n : SplatPager.emptyShTextures;\n this.shTextures = emptyShTextures.map(\n (texture) =>\n new dyno.DynoUsampler2DArray({\n value: texture,\n }),\n ) as typeof this.shTextures;\n\n this.readIndex = dyno.dynoBlock(\n { index: \"int\", numSplats: \"int\", indices: \"usampler2D\" },\n { index: \"int\" },\n ({ index, numSplats, indices }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n numSplats: \"int\",\n indices: \"usampler2D\",\n },\n outTypes: { index: \"int\" },\n inputs: {\n index,\n numSplats,\n indices,\n },\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n if (${inputs.index} >= ${inputs.numSplats}) {\n return;\n }\n\n ivec2 indexCoord = ivec2((${inputs.index} >> 2) & 4095, ${inputs.index} >> 14);\n uint index = texelFetch(${inputs.indices}, indexCoord, 0)[${inputs.index} & 3];\n ${outputs.index} = int(index);\n `),\n }).outputs;\n },\n );\n\n this.readSplat = dyno.dynoBlock(\n { index: \"int\", rgbMinMaxLnScaleMinMax: \"vec4\", lodOpacity: \"bool\" },\n { gsplat: dyno.Gsplat },\n ({ index, rgbMinMaxLnScaleMinMax, lodOpacity }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n packedTexture: \"usampler2DArray\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n packedTexture: this.packedTexture,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = pagedSplatTexCoord(index);\n uvec4 packedData = texelFetch(${inputs.packedTexture}, splatCoord, 0);\n\n unpackSplatEncoding(packedData, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba, ${inputs.rgbMinMaxLnScaleMinMax});\n if ((${outputs.gsplat}.rgba.a == 0.0) || all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n \n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n if (${inputs.lodOpacity}) {\n ${outputs.gsplat}.rgba.a *= 2.0;\n }\n `),\n }).outputs;\n },\n );\n\n this.readSplatDir = dyno.dynoBlock(\n {\n index: \"int\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n shMax: \"vec3\",\n },\n { gsplat: dyno.Gsplat },\n ({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n viewOrigin,\n numSh,\n shMax,\n }) => {\n if (\n !index ||\n !rgbMinMaxLnScaleMinMax ||\n !lodOpacity ||\n !viewOrigin ||\n !numSh ||\n !shMax\n ) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplat.apply({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluatePackedSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.shTextures[0],\n sh2Texture: this.shTextures[1],\n sh3Texture: this.shTextures[2],\n shMax,\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n\n this.readSplatExt = dyno.dynoBlock(\n { index: \"int\" },\n { gsplat: dyno.Gsplat },\n ({ index }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n extTexture1: \"usampler2DArray\",\n extTexture2: \"usampler2DArray\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n extTexture1: this.packedTexture,\n extTexture2: this.extTexture,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16);\n uvec4 ext1 = texelFetch(${inputs.extTexture1}, splatCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if (alpha == 0.0) {\n return;\n }\n\n uvec4 ext2 = texelFetch(${inputs.extTexture2}, splatCoord, 0);\n unpackSplatExt(ext1, ext2, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba);\n if (all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n\n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n `),\n }).outputs;\n },\n );\n\n this.readSplatExtDir = dyno.dynoBlock(\n {\n index: \"int\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n },\n { gsplat: dyno.Gsplat },\n ({ index, viewOrigin, numSh }) => {\n if (!index || !viewOrigin || !numSh) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplatExt.apply({ index }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluateExtSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.shTextures[0],\n sh2Texture: this.shTextures[1],\n sh3TextureA: this.shTextures[2],\n sh3TextureB: this.shTextures[3],\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n }\n\n dispose() {\n this.autoDrive = false;\n this.numFetchers = 0;\n\n this.packedTexture.value.dispose();\n this.packedTexture.value.source.data = null;\n if (this.extTexture.value !== SplatPager.emptyExtTexture) {\n this.extTexture.value.dispose();\n this.extTexture.value.source.data = null;\n }\n\n const emptyShTextures = this.extSplats\n ? SplatPager.emptyExtShTextures\n : SplatPager.emptyShTextures;\n for (let i = 0; i < emptyShTextures.length; i++) {\n const texture = this.shTextures[i].value;\n if (texture !== emptyShTextures[i]) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n\n private ensureShTextures(numSh: number) {\n this.curSh = Math.max(this.curSh, numSh);\n\n const emptyShTextures = this.extSplats\n ? SplatPager.emptyExtShTextures\n : SplatPager.emptyShTextures;\n for (let i = 0; i < this.curSh; i++) {\n if (this.shTextures[i].value === emptyShTextures[i]) {\n const elementsPerSplat =\n this.shTextures[i].value === SplatPager.emptyUint32x2 ? 2 : 4;\n this.shTextures[i].value = this.newUint32ArrayTexture(elementsPerSplat);\n }\n }\n }\n\n private allocatePage(): number | undefined {\n return this.pageFreelist.shift();\n }\n\n getSplatsChunk(splats: PagedSplats, chunk: number) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n return undefined;\n }\n return chunks[chunk];\n }\n\n private insertSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n now: number,\n ) {\n if (!this.splatsChunkToPage.has(splats)) {\n this.splatsChunkToPage.set(splats, []);\n }\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n if (chunk >= chunks.length) {\n chunks.length = chunk + 1;\n }\n const pageLru = { page, lru: now };\n chunks[chunk] = pageLru;\n this.pageLru.add(pageLru);\n\n this.pageToSplatsChunk[page] = { splats, chunk, time: performance.now() };\n return this.pageToSplatsChunk[page];\n }\n\n private removeSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n ) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n\n const pageLru = chunks[chunk];\n if (!pageLru) {\n throw new Error(\n `pageLru not found for splats: ${splats}, chunk: ${chunk}, page: ${page}`,\n );\n }\n this.pageLru.delete(pageLru);\n\n chunks[chunk] = undefined;\n\n while (chunks.length > 0 && chunks[chunks.length - 1] === undefined) {\n chunks.pop();\n }\n if (chunks.length === 0) {\n this.splatsChunkToPage.delete(splats);\n }\n\n this.pageToSplatsChunk[page] = undefined;\n while (\n this.pageToSplatsChunk.length > 0 &&\n this.pageToSplatsChunk[this.pageToSplatsChunk.length - 1] === undefined\n ) {\n this.pageToSplatsChunk.pop();\n }\n }\n\n removeSplats(splats: PagedSplats) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n return;\n }\n\n const freedPages = new Set();\n\n while (chunks.length > 0) {\n const chunk = chunks.pop();\n if (chunk) {\n const { page } = chunk;\n this.pageToSplatsChunk[page] = undefined;\n freedPages.add(page);\n this.pageFreelist.push(page);\n this.pageLru.delete(chunk);\n }\n }\n this.splatsChunkToPage.delete(splats);\n this.freeablePages = this.freeablePages.filter(\n (page) => !freedPages.has(page),\n );\n }\n\n private uploadPage(\n page: number,\n packedArray: Uint32Array,\n shArrays: Array,\n extArray?: Uint32Array,\n ) {\n const pageBase = page * PAGE_SPLATS;\n\n uploadTextureLayer(this.packedTexture, page, pageBase * 4, packedArray);\n\n if (extArray) {\n uploadTextureLayer(this.extTexture, page, pageBase * 4, extArray);\n }\n\n // In case of extSplats there can be 4 shArrays for 3 sh degrees\n const numSh = Math.min(shArrays.length, 3);\n this.ensureShTextures(numSh);\n\n for (let i = 0; i < shArrays.length; i++) {\n const array = shArrays[i];\n const elementsPerSplat =\n this.shTextures[i].value.format === THREE.RGIntegerFormat ? 2 : 4;\n uploadTextureLayer(\n this.shTextures[i],\n page,\n pageBase * elementsPerSplat,\n array,\n );\n }\n }\n\n private newUint32ArrayTexture(\n elementsPerSplat: 2 | 4,\n ): THREE.DataArrayTexture {\n const data = new Uint32Array(\n this.maxPages * PAGE_WIDTH * PAGE_HEIGHT * elementsPerSplat,\n );\n const texture = new THREE.DataArrayTexture(\n data,\n PAGE_WIDTH,\n PAGE_HEIGHT,\n this.maxPages,\n );\n texture.format =\n elementsPerSplat === 2 ? THREE.RGIntegerFormat : THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = elementsPerSplat === 2 ? \"RG32UI\" : \"RGBA32UI\";\n texture.needsUpdate = true;\n // Avoid initial upload of empty/null data\n texture.source.dataReady = false;\n this.renderer.initTexture(texture);\n return texture;\n }\n\n driveFetchers() {\n const needed = [];\n const overflow = [];\n let numPages = 0;\n\n for (const { splats, chunk } of this.fetchPriority) {\n const pageLru = this.getSplatsChunk(splats, chunk);\n if (pageLru) {\n if (numPages >= this.maxPages) {\n overflow.push(pageLru);\n } else {\n needed.push(pageLru);\n }\n numPages += 1;\n continue;\n }\n\n if (\n this.fetched.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n ) ||\n this.fetchers.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n )\n ) {\n numPages += 1;\n continue;\n }\n\n if (numPages < this.maxPages && this.fetchers.length < this.numFetchers) {\n numPages += 1;\n const promise = splats\n .fetchDecodeChunk(chunk)\n .then(\n async (data) => {\n // Place data in ready queue and remove self from active fetchers list\n this.fetched.push({ splats, chunk, data });\n if (this.fetchPause > 0) {\n await new Promise((resolve) =>\n setTimeout(resolve, this.fetchPause),\n );\n }\n },\n async (error) => {\n console.warn(error);\n const backoff = 250 + 500 * Math.random();\n await new Promise((resolve) => setTimeout(resolve, backoff));\n },\n )\n .finally(() => {\n this.fetchers = this.fetchers.filter(\n ({ splats: s, chunk: c }) => splats !== s || chunk !== c,\n );\n this.processFetched();\n });\n // Add self to active fetchers list\n this.fetchers.push({ splats, chunk, promise });\n\n promise.then((data) => {\n if (this.autoDrive) {\n this.driveFetchers();\n }\n });\n }\n }\n\n // Update LRU ordering in reverse priority order\n const now = performance.now();\n\n for (const pageLru of overflow.reverse()) {\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n\n // Create set of pages not needed\n const extraPages = new Set(this.pageLru);\n for (const pageLru of needed.reverse()) {\n extraPages.delete(pageLru);\n\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n this.freeablePages = Array.from(extraPages).map(({ page }) => page);\n }\n\n private allocateFreeable(): number | undefined {\n const page = this.freeablePages.shift();\n if (page === undefined) {\n // No freeable pages available\n return undefined;\n }\n\n const splatsChunk = this.pageToSplatsChunk[page];\n if (!splatsChunk) {\n throw new Error(`splatsChunk not found for page: ${page}`);\n }\n\n const { splats, chunk } = splatsChunk;\n this.removeSplatsChunkPage(splats, chunk, page);\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats: PAGE_SPLATS,\n });\n return page;\n }\n\n private processFetched() {\n const now = performance.now();\n while (true) {\n const fetched = this.fetched.shift();\n if (!fetched) {\n break;\n }\n const { splats, chunk, data } = fetched;\n\n let page = this.allocatePage();\n if (page === undefined) {\n page = this.allocateFreeable();\n if (page === undefined) {\n // No pages available, stop for now\n return;\n }\n }\n\n this.insertSplatsChunkPage(splats, chunk, page, now);\n const { numSplats, extra } = data;\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats,\n lodTree: extra.lodTree as Uint32Array,\n });\n\n if (isExtResult(data, this.extSplats)) {\n const extArrays = data.extArrays;\n const packedArray = extArrays[0];\n const extArray = extArrays[1];\n const shArrays = [\n data.extra.sh1 as Uint32Array,\n data.extra.sh2 as Uint32Array,\n data.extra.sh3a as Uint32Array,\n data.extra.sh3b as Uint32Array,\n ];\n shArrays.length = shArrays.findIndex((sh) => !sh);\n this.newUploads.push({\n page,\n numSplats,\n packedArray,\n extArray,\n shArrays,\n });\n } else {\n const packedArray = data.packedArray;\n const shArrays = [\n data.extra.sh1 as Uint32Array,\n data.extra.sh2 as Uint32Array,\n data.extra.sh3 as Uint32Array,\n ];\n shArrays.length = shArrays.findIndex((sh) => !sh);\n this.newUploads.push({\n page,\n numSplats,\n packedArray,\n shArrays,\n });\n }\n }\n }\n\n processUploads() {\n while (true) {\n const upload = this.readyUploads.shift();\n if (!upload) {\n break;\n }\n const { page, numSplats, packedArray, extArray, shArrays } = upload;\n this.uploadPage(page, packedArray, shArrays, extArray);\n }\n }\n\n consumeLodTreeUpdates() {\n const updates = this.lodTreeUpdates;\n this.lodTreeUpdates = [];\n\n this.readyUploads.push(...this.newUploads);\n this.newUploads = [];\n return updates;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyIndicesTexture = (() => {\n const emptyArray = new Uint32Array(4096 * 4);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyPackedTexture = this.emptyUint32x4;\n static emptyExtTexture = this.emptyUint32x4;\n static emptyShTextures = [\n this.emptyUint32x2,\n this.emptyUint32x4,\n this.emptyUint32x4,\n ] as const;\n static emptyExtShTextures = [\n this.emptyUint32x4,\n this.emptyUint32x4,\n this.emptyUint32x4, // SH3A\n this.emptyUint32x4, // SH3B\n ] as const;\n}\n\n// Convenience function to distinguish ExtResult and PackedResult\nfunction isExtResult(\n data: ExtResult | PackedResult,\n extSplats: boolean,\n): data is ExtResult {\n return extSplats;\n}\n\nfunction uploadTextureLayer(\n texture: DynoUsampler2DArray,\n layer: number,\n dstOffset: number,\n data: Uint32Array,\n) {\n const array = texture.value.image.data;\n array.subarray(dstOffset, dstOffset + data.length).set(data);\n\n texture.value.addLayerUpdate(layer);\n texture.value.needsUpdate = true;\n texture.value.source.dataReady = true;\n}\n\nasync function fetchRange({\n url,\n requestHeader,\n withCredentials,\n offset,\n bytes,\n}: {\n url: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n offset?: number;\n bytes?: number;\n}): Promise {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n if (offset !== undefined && bytes !== undefined) {\n request.headers.set(\"Range\", `bytes=${offset}-${offset + bytes - 1}`);\n }\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n return new Uint8Array(await response.arrayBuffer());\n}\n","import * as THREE from \"three\";\n\nimport {\n get_raycast_buffer,\n get_raycast_buffer2,\n raycast_ext_buffers,\n raycast_packed_buffer,\n} from \"spark-rs\";\nimport { ExtSplats } from \"./ExtSplats\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { type RgbaArray, TRgbaArray } from \"./RgbaArray\";\nimport { SplatEdit, SplatEditSdf, SplatEdits } from \"./SplatEdit\";\nimport {\n type CovSplatModifier,\n CovSplatTransformer,\n type FrameUpdateContext,\n type GsplatModifier,\n SplatGenerator,\n SplatTransformer,\n} from \"./SplatGenerator\";\nimport { PagedSplats, SplatPager } from \"./SplatPager\";\nimport type { SplatSkinning } from \"./SplatSkinning\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n CovSplat,\n Dyno,\n DynoBool,\n DynoFloat,\n DynoInt,\n DynoUsampler2D,\n type DynoVal,\n DynoVec4,\n Gsplat,\n combineCovSplat,\n combineGsplat,\n defineGsplat,\n dyno,\n dynoBlock,\n gsplatToCovSplat,\n mul,\n splitCovSplat,\n splitGsplat,\n unindentLines,\n} from \"./dyno\";\nimport * as wasm from \"./wasm\";\n\nexport type SplatMeshOptions = {\n // URL to fetch a Gaussian splat file from(supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Use an existing PackedSplats object as the source instead of loading from\n // a file. Can be used to share a collection of Gsplats among multiple SplatMeshes\n // (default: undefined creates a new empty PackedSplats or decoded from a\n // data source above)\n packedSplats?: PackedSplats;\n // Use an existing SplatSource object as the source instead of loading from file.\n splats?: SplatSource;\n // Reserve space for at least this many splats when constructing the mesh\n // initially. (default: determined by file)\n maxSplats?: number;\n // Callback function to programmatically create splats at initialization\n // in provided PackedSplats. (default: undefined)\n constructSplats?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Callback function that is called when mesh initialization is complete.\n // (default: undefined)\n onLoad?: (mesh: SplatMesh) => Promise | void;\n // Controls whether SplatEdits have any effect on this mesh. (default: true)\n editable?: boolean;\n // Controls whether SplatMesh participates in Three.js raycasting (default: true)\n raycastable?: boolean;\n // Minimum opacity for raycasting splats. (default: 0.2)\n minRaycastOpacity?: number;\n // Callback function that is called every frame to update the mesh.\n // Call mesh.updateVersion() if splats need to be regenerated due to some change.\n // Calling updateVersion() is not necessary for object transformations, recoloring,\n // or opacity adjustments as these are auto-detected. (default: undefined)\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n // Gsplat modifier to apply in object-space before any transformations.\n // A GsplatModifier is a dyno shader-graph block that transforms an input\n // gsplat: DynoVal to an output gsplat: DynoVal with gsplat.center\n // coordinate in object-space. (default: undefined)\n objectModifier?: GsplatModifier;\n objectModifiers?: GsplatModifier[];\n // Gsplat modifier to apply in world-space after transformations.\n // (default: undefined)\n worldModifier?: GsplatModifier;\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Set to true to load/use \"extended splat\" encoding with float32 x/y/z\n extSplats?: boolean | ExtSplats;\n // Set to true to output covariance splats for anisotropic scaling\n covSplats?: boolean;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Only create LoD if the input splat acount is above this (default: undefined=0)\n lodAbove?: number;\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Force enable/disable LoD (default: enabled iff packedSplats.lodSplats is not null)\n enableLod?: boolean;\n // LoD scale to apply @default 1.0\n lodScale?: number;\n // Foveation scale to apply behind viewer\n // (default: 1.0)\n behindFoveate?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction\n // with perfection foveation=1.0\n // (default: 0.0)\n coneFov0?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction. 0.0=disable\n // (default: 0.0)\n coneFov?: number;\n // Foveation scale to apply at the edge of the cone\n // (default: 1.0)\n coneFoveate?: number;\n paged?: boolean | PagedSplats | SplatPager;\n};\n\nexport type SplatMeshContext = {\n transform: SplatTransformer;\n viewToWorld: SplatTransformer;\n worldToView: SplatTransformer;\n viewToObject: SplatTransformer;\n covTransform: CovSplatTransformer;\n covViewToWorld: CovSplatTransformer;\n covWorldToView: CovSplatTransformer;\n covViewToObject: CovSplatTransformer;\n recolor: DynoVec4;\n time: DynoFloat;\n deltaTime: DynoFloat;\n numSplats: DynoInt;\n splats: SplatSource;\n enableLod: DynoBool;\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>;\n};\n\nexport interface SplatSource {\n prepareFetchSplat(): void;\n dispose(): void;\n\n getNumSplats(): number;\n hasRgbDir(): boolean;\n getNumSh(): number;\n setMaxSh(maxSh: number): void;\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n >;\n\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ): void;\n}\n\nexport class EmptySplatSource implements SplatSource {\n fetchDyno = new Dyno({\n inTypes: {},\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplat],\n statements: ({ outputs }) =>\n unindentLines(`\n ${outputs.gsplat}.flags = 0u;\n return;\n `),\n }).outputs.gsplat;\n\n prepareFetchSplat() {}\n dispose() {}\n\n getNumSplats() {\n return 0;\n }\n hasRgbDir() {\n return false;\n }\n getNumSh() {\n return 0;\n }\n setMaxSh(maxSh: number) {}\n\n fetchSplat({ index }: { index: DynoVal<\"int\"> }): DynoVal {\n return this.fetchDyno;\n }\n\n forEachSplat() {}\n}\n\nexport class SplatMesh extends SplatGenerator {\n // A Promise you can await to ensure fetching, parsing,\n // and initialization has completed\n initialized: Promise;\n // A boolean indicating whether initialization is complete\n isInitialized = false;\n\n // If you modify packedSplats you should set\n // splatMesh.packedSplats.needsUpdate = true to signal to Three.js that it\n // should re-upload the data to the underlying texture. Use this sparingly with\n // objects with smaller Gsplat counts as it requires a CPU-GPU data transfer for\n // each frame. Thousands to tens of thousands of Gsplats is fine. (See hands.ts\n // for an example of rendering \"Gsplat hands\" in WebXR using this technique.)\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n covSplats: boolean;\n splats?: SplatSource;\n lastSplats?: SplatSource;\n paged?: PagedSplats;\n\n // A THREE.Color that can be used to tint all splats in the mesh.\n // (default: new THREE.Color(1, 1, 1))\n recolor: THREE.Color = new THREE.Color(1, 1, 1);\n // Global opacity multiplier for all splats in the mesh. (default: 1)\n opacity = 1;\n\n // A SplatMeshContext consisting of useful scene and object dyno uniforms that can\n // be used to in the Gsplat processing pipeline, for example via objectModifier and\n // worldModifier. (created on construction)\n context: SplatMeshContext;\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n generatorDirty = true;\n\n objectModifiers?: GsplatModifier[];\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Set to true to have the viewToObject property in context be updated each frame.\n // If the mesh has extra.sh1 (first order spherical harmonics directional lighting)\n // this property will always be updated. (default: false)\n enableViewToObject = false;\n // Set to true to have context.viewToWorld updated each frame. (default: false)\n enableViewToWorld = false;\n // Set to true to have context.worldToView updated each frame. (default: false)\n enableWorldToView = false;\n\n // Optional SplatSkinning instance for animating splats with dual-quaternion\n // skeletal animation. (default: null)\n skinning: SplatSkinning | null = null;\n\n // Optional list of SplatEdits to apply to the mesh. If null, any SplatEdit\n // children in the scene graph will be added automatically. (default: null)\n edits: SplatEdit[] | null = null;\n editable: boolean;\n raycastable: boolean;\n minRaycastOpacity: number;\n raycastIndices?: { numSplats: number; indices: Uint32Array };\n // Compiled SplatEdits for applying SDF edits to splat RGBA + centers\n rgbaDisplaceEdits: SplatEdits | null = null;\n // Optional RgbaArray to overwrite splat RGBA values with custom values.\n // Useful for \"baking\" RGB and opacity edits into the SplatMesh. (default: null)\n splatRgba: RgbaArray | null = null;\n\n // Maximum Spherical Harmonics level to use. Call updateGenerator()\n // after changing. (default: 3)\n maxSh = 3;\n\n enableLod?: boolean;\n lodScale: number;\n behindFoveate?: number;\n coneFov0?: number;\n coneFov?: number;\n coneFoveate?: number;\n\n showLodPage?: number;\n showLodPageDyno = new DynoInt({ value: 0 });\n\n constructor(options: SplatMeshOptions = {}) {\n super({\n update: (context) => this.update(context),\n });\n\n if (options.splats) {\n this.splats = options.splats;\n this.numSplats = options.splats.getNumSplats();\n } else if (options.paged) {\n if (options.extSplats) {\n console.warn(\n \"To set extSplats with the paged option, set SparkRenderer.pagedExtSplats\",\n );\n }\n const rootUrl = options.url ?? \"\";\n if (options.paged === true) {\n this.paged = new PagedSplats({ rootUrl });\n } else if (options.paged instanceof PagedSplats) {\n this.paged = options.paged;\n } else if (options.paged instanceof SplatPager) {\n this.paged = new PagedSplats({ rootUrl, pager: options.paged });\n } else {\n throw new Error(\"Invalid paged option\");\n }\n this.splats = this.paged;\n } else if (options.extSplats) {\n this.extSplats =\n options.extSplats instanceof ExtSplats\n ? options.extSplats\n : new ExtSplats();\n options.extSplats = this.extSplats;\n this.numSplats = this.extSplats.numSplats;\n this.splats = this.extSplats;\n } else if (options.packedSplats) {\n this.packedSplats = options.packedSplats;\n this.packedSplats.splatEncoding = options.splatEncoding ?? {\n ...DEFAULT_SPLAT_ENCODING,\n };\n this.splats = this.packedSplats;\n } else {\n this.packedSplats = new PackedSplats();\n }\n\n this.editable = options.editable ?? true;\n this.raycastable = options.raycastable ?? true;\n this.minRaycastOpacity = options.minRaycastOpacity ?? 0.2;\n this.onFrame = options.onFrame;\n\n this.context = {\n transform: new SplatTransformer(),\n viewToWorld: new SplatTransformer(),\n worldToView: new SplatTransformer(),\n viewToObject: new SplatTransformer(),\n covTransform: new CovSplatTransformer(),\n covViewToWorld: new CovSplatTransformer(),\n covWorldToView: new CovSplatTransformer(),\n covViewToObject: new CovSplatTransformer(),\n recolor: new DynoVec4({\n value: new THREE.Vector4().setScalar(Number.NEGATIVE_INFINITY),\n }),\n time: new DynoFloat({ value: 0 }),\n deltaTime: new DynoFloat({ value: 0 }),\n numSplats: new DynoInt({ value: 0 }),\n splats: new EmptySplatSource(),\n enableLod: new DynoBool({ value: false }),\n lodIndices: new DynoUsampler2D({\n value: emptyLodIndices,\n key: \"lodIndices\",\n }),\n };\n\n this.covSplats = options.covSplats ?? false;\n if (this.covSplats && !this.extSplats) {\n throw new Error(\"CovSplats requires ExtSplats\");\n }\n\n this.objectModifiers = options.objectModifier\n ? [options.objectModifier]\n : undefined;\n this.worldModifiers = options.worldModifier\n ? [options.worldModifier]\n : undefined;\n\n if (options.objectModifiers) {\n this.objectModifiers = options.objectModifiers;\n }\n if (options.worldModifiers) {\n this.worldModifiers = options.worldModifiers;\n }\n\n this.enableLod = options.enableLod;\n this.lodScale = options.lodScale ?? 1.0;\n this.behindFoveate = options.behindFoveate;\n this.coneFov0 = options.coneFov0;\n this.coneFov = options.coneFov;\n this.coneFoveate = options.coneFoveate;\n\n this.updateGenerator();\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.constructSplats ||\n (options.packedSplats && !options.packedSplats.isInitialized) ||\n (this.extSplats && !this.extSplats.isInitialized)\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(async () => {\n this.updateGenerator();\n\n this.isInitialized = true;\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n return this;\n });\n } else {\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n // If onLoad returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n this.initialized = maybePromise.then(() => this);\n }\n }\n }\n\n // this.add(createRendererDetectionMesh());\n }\n\n async asyncInitialize(options: SplatMeshOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n } = options;\n if (this.packedSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const packedSplatsOptions = {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct: constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n };\n this.packedSplats.reinitialize(packedSplatsOptions);\n }\n await this.packedSplats.initialized;\n this.splats = this.packedSplats;\n } else if (this.extSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const construct = constructSplats as\n | ((splats: ExtSplats) => Promise)\n | undefined;\n this.extSplats.reinitialize({\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n });\n await this.extSplats.initialized;\n this.splats = this.extSplats;\n }\n }\n\n if (this.splats) {\n this.numSplats = this.splats.getNumSplats();\n this.updateGenerator();\n }\n }\n\n static dynoTime = new DynoFloat({ value: 0 });\n\n // Creates a new Gsplat with the provided parameters (all values in \"float\" space,\n // i.e. 0-1 for opacity and color) and adds it to the end of the packedSplats,\n // increasing numSplats by 1. If necessary, reallocates the buffer with an exponential\n // doubling strategy to fit the new data, so it's fairly efficient to just\n // pushSplat(...) each Gsplat you want to create in a loop.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n if (this.packedSplats) {\n this.packedSplats.pushSplat(center, scales, quaternion, opacity, color);\n } else if (this.extSplats) {\n this.extSplats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n\n // This method iterates over all Gsplats in this instance's packedSplats,\n // invoking the provided callback with index: number in 0..=(this.numSplats-1) and\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number (0..1), and color: THREE.Color (rgb values in 0..1).\n // Note that the objects passed in as center etc. are the same for every callback\n // invocation: these objects are reused for efficiency. Changing these values has\n // no effect as they are decoded/unpacked copies of the underlying data. To update\n // the packedSplats, call .packedSplats.setSplat(index, center, scales,\n // quaternion, opacity, color).\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n this.splats?.forEachSplat(callback);\n }\n\n // Call this when you are finished with the SplatMesh and want to free\n // any buffers it holds (via packedSplats).\n dispose() {\n if (\n this.splats &&\n this.splats !== this.packedSplats &&\n this.splats !== this.extSplats\n ) {\n this.splats.dispose();\n this.splats = undefined;\n }\n if (this.packedSplats) {\n this.packedSplats.dispose();\n this.packedSplats = undefined;\n }\n if (this.extSplats) {\n this.extSplats.dispose();\n this.extSplats = undefined;\n }\n }\n\n // Returns axis-aligned bounding box of the SplatMesh. If centers_only is true,\n // only the centers of the splats are used to compute the bounding box.\n // IMPORTANT: This should only be called after the SplatMesh is initialized.\n getBoundingBox(centers_only = true) {\n if (!this.initialized) {\n throw new Error(\n \"Cannot get bounding box before SplatMesh is initialized\",\n );\n }\n const minVec = new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n );\n const maxVec = new THREE.Vector3(\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n );\n const corners = new THREE.Vector3();\n const signs = [-1, 1];\n\n function callback(\n _index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n _opacity: number,\n _color: THREE.Color,\n ) {\n if (centers_only) {\n minVec.min(center);\n maxVec.max(center);\n } else {\n // Get the 8 corners of the AABB in local space\n for (const x of signs) {\n for (const y of signs) {\n for (const z of signs) {\n corners.set(x * scales.x, y * scales.y, z * scales.z);\n // Transform corner by rotation and position\n corners.applyQuaternion(quaternion);\n corners.add(center);\n minVec.min(corners);\n maxVec.max(corners);\n }\n }\n }\n }\n }\n\n this.splats?.forEachSplat(callback);\n const box = new THREE.Box3(minVec, maxVec);\n return box;\n }\n\n set objectModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.objectModifiers = [modifier];\n } else {\n this.objectModifiers = undefined;\n }\n }\n\n set worldModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.worldModifiers = [modifier];\n } else {\n this.worldModifiers = undefined;\n }\n }\n\n private constructGenerator(context: SplatMeshContext) {\n if (this.covSplats) {\n return this.constructCovGenerator(context);\n }\n\n const { transform, viewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.setMaxSh(this.maxSh);\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: viewToObject.translate,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n gsplat = this.skinning.modify(gsplat);\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // Transform from object to world-space\n gsplat = transform.applyGsplat(gsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitGsplat(gsplat).outputs.rgba);\n gsplat = combineGsplat({ gsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n gsplat = this.rgbaDisplaceEdits.modify(gsplat);\n }\n\n if (this.worldModifiers) {\n // Inject world-space Gsplat modifier dyno\n for (const modifier of this.worldModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { gsplat };\n },\n );\n this.generator = generator;\n this.covGenerator = undefined;\n }\n\n constructCovGenerator(context: SplatMeshContext) {\n // console.log(\"CovSplatMesh.constructCovGenerator\");\n const { covTransform, covViewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { covsplat: CovSplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: covViewToObject.offset,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n let covsplat = gsplatToCovSplat(gsplat);\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n covsplat = this.skinning.modifyCov(covsplat);\n }\n\n if (this.covObjectModifiers) {\n // Inject object-space CovSplat modifier dyno\n for (const modifier of this.covObjectModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // Transform from object to world-space\n covsplat = covTransform.applyCovSplat(covsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitCovSplat(covsplat).outputs.rgba);\n covsplat = combineCovSplat({ covsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n covsplat = this.rgbaDisplaceEdits.modifyCov(covsplat);\n }\n\n if (this.covWorldModifiers) {\n // Inject world-space CovSplat modifier dyno\n for (const modifier of this.covWorldModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { covsplat };\n },\n );\n this.generator = undefined;\n this.covGenerator = generator;\n }\n\n // Call this whenever something changes in the Gsplat processing pipeline,\n // for example changing maxSh or updating objectModifier or worldModifier.\n // Compiled generators are cached for efficiency and re-use when the same\n // pipeline structure emerges after successive changes.\n updateGenerator() {\n this.generatorDirty = true;\n }\n\n // This is called automatically by SparkRenderer and you should not have to\n // call it. It updates parameters for the generated pipeline and calls\n // updateGenerator() if the pipeline needs to change.\n update({\n renderer,\n time,\n deltaTime,\n viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices,\n }: FrameUpdateContext) {\n this.context.time.value = time;\n this.context.deltaTime.value = deltaTime;\n SplatMesh.dynoTime.value = time;\n this.showLodPageDyno.value = this.showLodPage ?? -1;\n\n const splats = this.splats ?? this.packedSplats ?? this.extSplats;\n if (splats) {\n this.context.splats = splats;\n }\n this.numSplats = this.context.splats.getNumSplats();\n\n let updated = false;\n\n const lodSplats = this.packedSplats?.lodSplats ?? this.extSplats?.lodSplats;\n this.context.enableLod.value = lodSplats != null && lodIndices != null;\n if (this.enableLod === false) {\n this.context.enableLod.value = false;\n }\n this.context.lodIndices.value = lodIndices?.texture ?? emptyLodIndices;\n\n if (this.context.enableLod.value && lodSplats) {\n this.context.splats = lodSplats;\n this.numSplats = lodIndices?.numSplats ?? 0;\n }\n\n this.context.numSplats.value = this.numSplats;\n\n if (this.context.splats !== this.lastSplats) {\n this.lastSplats = this.context.splats;\n this.generatorDirty = true;\n }\n\n if (!this.covSplats) {\n if (this.context.transform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.viewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.worldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const objectToWorld = new THREE.Matrix4().compose(\n this.context.transform.translate.value,\n this.context.transform.rotate.value,\n new THREE.Vector3().setScalar(this.context.transform.scale.value),\n );\n const worldToObject = objectToWorld.invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.viewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n } else {\n if (this.context.covTransform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.covViewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.covWorldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const worldToObject = this.matrixWorld.clone().invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.covViewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n }\n\n const newRecolor = new THREE.Vector4(\n this.recolor.r,\n this.recolor.g,\n this.recolor.b,\n this.opacity,\n );\n if (!newRecolor.equals(this.context.recolor.value)) {\n this.context.recolor.value.copy(newRecolor);\n updated = true;\n }\n\n const edits = this.editable ? (this.edits ?? []).concat(globalEdits) : [];\n if (this.editable && !this.edits) {\n // If we haven't set any explicit edits, add any child SplatEdits\n this.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n edits.push(node);\n }\n });\n }\n\n edits.sort((a, b) => a.ordering - b.ordering);\n const editsSdfs = edits.map((edit) => {\n if (edit.sdfs != null) {\n return { edit, sdfs: edit.sdfs };\n }\n const sdfs: SplatEditSdf[] = [];\n edit.traverseVisible((node) => {\n if (node instanceof SplatEditSdf) {\n sdfs.push(node);\n }\n });\n return { edit, sdfs };\n });\n\n if (editsSdfs.length > 0 && !this.rgbaDisplaceEdits) {\n const edits = editsSdfs.length;\n const sdfs = editsSdfs.reduce(\n (total, edit) => total + edit.sdfs.length,\n 0,\n );\n this.rgbaDisplaceEdits = new SplatEdits({\n maxEdits: edits,\n maxSdfs: sdfs,\n });\n this.generatorDirty = true;\n }\n if (this.rgbaDisplaceEdits) {\n const editResult = this.rgbaDisplaceEdits.update(editsSdfs);\n updated ||= editResult.updated;\n if (editResult.dynoUpdated) {\n this.generatorDirty = true;\n }\n }\n\n if (this.generatorDirty) {\n this.constructGenerator(this.context);\n this.generatorDirty = false;\n updated = true;\n }\n\n if (updated) {\n this.updateVersion();\n }\n\n this.onFrame?.({ mesh: this, time, deltaTime });\n }\n\n // This method conforms to the standard THREE.Raycaster API, performing object-ray\n // intersections using this method to populate the provided intersects[] array\n // with each intersection point.\n raycast(\n raycaster: THREE.Raycaster,\n intersects: {\n distance: number;\n point: THREE.Vector3;\n object: THREE.Object3D;\n }[],\n ) {\n if (\n !wasm.isInitialized() ||\n !this.raycastable ||\n (!this.packedSplats && !this.extSplats && !this.paged)\n ) {\n return;\n }\n const paged = this.paged != null;\n const ext = paged\n ? (this.paged?.pager?.extSplats ?? false)\n : this.extSplats != null;\n\n const { near, far, ray } = raycaster;\n const worldToMesh = this.matrixWorld.clone().invert();\n const worldToMeshRot = new THREE.Matrix3().setFromMatrix4(worldToMesh);\n const origin = ray.origin.clone().applyMatrix4(worldToMesh);\n const direction = ray.direction.clone().applyMatrix3(worldToMeshRot);\n\n const buffer = get_raycast_buffer();\n const bufferSize = buffer.length / 4;\n let intersections = 0;\n\n const numSplats =\n this.raycastIndices?.numSplats ??\n (paged ? this.paged?.numSplats : this.context.numSplats.value) ??\n 0;\n const indices =\n this.raycastIndices?.indices ??\n (paged\n ? (this.paged?.dynoIndices.value.image.data as Uint32Array)\n : this.context.enableLod.value\n ? (this.context.lodIndices.value.image.data as Uint32Array)\n : null) ??\n null;\n\n if (!ext) {\n const packed = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.packedSplats?.lodSplats?.packedArray\n : this.packedSplats?.packedArray;\n if (!packed) {\n return;\n }\n const splatEncoding = paged\n ? this.paged?.splatEncoding\n : this.packedSplats?.splatEncoding;\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(packed.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = packed[index4];\n buffer[i4 + 1] = packed[index4 + 1];\n buffer[i4 + 2] = packed[index4 + 2];\n buffer[i4 + 3] = packed[index4 + 3];\n }\n }\n\n const newIntersections = raycast_packed_buffer(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n splatEncoding?.lodOpacity ?? false,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n } else {\n const buffer2 = get_raycast_buffer2();\n const ext1 = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[0]\n : this.extSplats?.extArrays[0];\n const ext2 = paged\n ? (this.paged?.pager?.extTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[1]\n : this.extSplats?.extArrays[1];\n if (!ext1 || !ext2) {\n return;\n }\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(ext1.subarray(base * 4, (base + count) * 4));\n buffer2.set(ext2.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = ext1[index4];\n buffer[i4 + 1] = ext1[index4 + 1];\n buffer[i4 + 2] = ext1[index4 + 2];\n buffer[i4 + 3] = ext1[index4 + 3];\n buffer2[i4] = ext2[index4];\n buffer2[i4 + 1] = ext2[index4 + 1];\n buffer2[i4 + 2] = ext2[index4 + 2];\n buffer2[i4 + 3] = ext2[index4 + 3];\n }\n }\n\n const newIntersections = raycast_ext_buffers(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n }\n\n for (const distance of SplatMesh.raycastBuffer.subarray(0, intersections)) {\n const point = ray.direction\n .clone()\n .multiplyScalar(distance)\n .add(ray.origin);\n intersects.push({\n distance,\n point,\n object: this,\n });\n }\n }\n\n static raycastBuffer = new Float32Array(1024);\n\n private appendRaycastBuffer(count: number, additional: Float32Array) {\n const total = count + additional.length;\n let capacity = SplatMesh.raycastBuffer.length;\n\n if (total > capacity) {\n while (capacity < total) {\n capacity *= 2;\n }\n const newBuffer = new Float32Array(capacity);\n newBuffer.set(SplatMesh.raycastBuffer.subarray(0, count));\n SplatMesh.raycastBuffer = newBuffer;\n }\n\n SplatMesh.raycastBuffer.set(additional, count);\n return count + additional.length;\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n if (this.packedSplats) {\n await this.packedSplats.createLodSplats({ quality, rgbaArray });\n } else if (this.extSplats) {\n await this.extSplats.createLodSplats({ quality, rgbaArray });\n }\n }\n}\n\nexport function maybeLookupIndex(\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>,\n index: DynoVal<\"int\">,\n numSplats: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n showLodPage: DynoVal<\"int\">,\n) {\n return dyno({\n inTypes: {\n lodIndices: \"usampler2D\",\n index: \"int\",\n numSplats: \"int\",\n enableLod: \"bool\",\n showLodPage: \"int\",\n },\n outTypes: {\n index: \"int\",\n },\n inputs: {\n lodIndices,\n index,\n numSplats,\n enableLod,\n showLodPage,\n },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n int index = ${inputs.index};\n if (${inputs.showLodPage} < 0) {\n if (index >= ${inputs.numSplats}) {\n return;\n }\n if (${inputs.enableLod}) {\n ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14);\n uint splatIndex = texelFetch(${inputs.lodIndices}, lodIndexCoord, 0)[index & 3];\n ${outputs.index} = int(splatIndex);\n } else {\n ${outputs.index} = index;\n }\n } else {\n int start = ${inputs.showLodPage} << 16;\n if (index >= 65536) {\n return;\n }\n ${outputs.index} = start + index;\n }\n `),\n }).outputs.index;\n}\n\nexport function maybeInjectSplatRgba(\n gsplat: DynoVal,\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n): DynoVal {\n return dyno({\n inTypes: {\n gsplat: Gsplat,\n rgba: TRgbaArray,\n index: \"int\",\n enableLod: \"bool\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, rgba, index, enableLod },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n ${outputs.gsplat} = ${inputs.gsplat};\n if (!${inputs.enableLod} && (${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.gsplat}.rgba = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n }\n `),\n }).outputs.gsplat;\n}\n\nexport const emptyLodIndices = (() => {\n const texture = new THREE.DataTexture(\n new Uint32Array(16384),\n 4096,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n})();\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\nimport { Readback } from \"./Readback\";\nimport { SplatEdit } from \"./SplatEdit\";\nimport {\n type CovSplatGenerator,\n type GsplatGenerator,\n SplatGenerator,\n} from \"./SplatGenerator\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines\";\nimport {\n type CovSplat,\n Dyno,\n DynoBool,\n DynoProgram,\n DynoProgramTemplate,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n combineCovSplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n gsplatToCovSplat,\n mul,\n outputCovSplat,\n outputCovSplatDepth,\n outputExtCovSplat,\n outputExtendedSplat,\n outputPackedSplat,\n outputSplatDepth,\n splitCovSplat,\n splitGsplat,\n sub,\n unindentLines,\n} from \"./dyno\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, threeMrtArray } from \"./utils\";\n\n// A GeneratorMapping describes a Gsplat range that was generated, including\n// which generator and its version number.\nexport type GeneratorMapping = {\n node: SplatGenerator;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n version: number;\n mappingVersion?: number;\n base: number;\n count: number;\n};\n\nexport class SplatAccumulator {\n time = 0;\n deltaTime = 0;\n viewToWorld = new THREE.Matrix4();\n viewOrigin = new THREE.Vector3();\n viewDirection = new THREE.Vector3();\n static viewCenterUniform = new DynoVec3({ value: new THREE.Vector3() });\n static viewDirUniform = new DynoVec3({ value: new THREE.Vector3() });\n static sortRadialUniform = new DynoBool({ value: true });\n maxSplats = 0;\n numSplats = 0;\n target: THREE.WebGLArrayRenderTarget | null = null;\n mapping: GeneratorMapping[] = [];\n version = -1;\n mappingVersion = -1;\n extSplats: boolean;\n covSplats: boolean;\n readback: Readback | null = null;\n readbackSplats: DynoUsampler2DArray<\"extSplats\", THREE.DataArrayTexture>[] =\n [];\n\n constructor({\n extSplats,\n covSplats,\n }: { extSplats?: boolean; covSplats?: boolean } = {}) {\n if (!threeMrtArray) {\n throw new Error(\"Spark requires THREE.js r179 or above\");\n }\n this.extSplats = extSplats ?? true;\n this.covSplats = covSplats ?? false;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = null;\n }\n }\n\n // Returns a THREE.DataArrayTexture representing the NewSplatAccumulator\n // content as 2 x Uint32x4 data array textures (2048 x 2048 x 2048 in size)\n getTextures(): THREE.DataArrayTexture[] {\n if (this.target) {\n return this.target.textures;\n }\n return SplatAccumulator.emptyTextures;\n }\n\n static emptyTexture = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTextures = (() => {\n return [SplatAccumulator.emptyTexture, SplatAccumulator.emptyTexture];\n })();\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Ensures our NewSplatAccumulator.target render target has enough space\n // to generate maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate({ maxSplats }: { maxSplats: number }) {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n this.dispose();\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n format: THREE.RGBAIntegerFormat,\n type: THREE.UnsignedIntType,\n });\n this.target.scissorTest = true;\n\n if (this.extSplats) {\n const target2 = this.target.texture.clone();\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target2, target3];\n } else {\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target3];\n }\n\n return true;\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n activeCubeFace: renderer.getActiveCubeFace(),\n activeMipmapLevel: renderer.getActiveMipmapLevel(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n activeCubeFace: number;\n activeMipmapLevel: number;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(\n state.target,\n state.activeCubeFace,\n state.activeMipmapLevel,\n );\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(\n generator?: GsplatGenerator,\n covGenerator?: CovSplatGenerator,\n ) {\n const theGenerator = generator ?? covGenerator;\n if (!theGenerator) {\n throw new Error(\"Either generator or covGenerator must be provided\");\n }\n\n let program = SplatAccumulator.generatorProgram.get(theGenerator);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n if (generator) {\n generator.inputs.index = index;\n }\n if (covGenerator) {\n covGenerator.inputs.index = index;\n }\n\n if (this.extSplats) {\n if (!this.covSplats) {\n if (generator) {\n const output = outputExtendedSplat(generator.outputs.gsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n if (covGenerator) {\n const output = outputExtCovSplat(covGenerator.outputs.covsplat);\n roots.push(output);\n } else if (generator) {\n const covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n const output = outputExtCovSplat(covsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n }\n } else {\n if (!this.covSplats) {\n if (generator) {\n const centerSubView = sub(\n splitGsplat(generator.outputs.gsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n // Use expanded LoD opacity encoding\n const halfAlpha = mul(\n splitGsplat(generator.outputs.gsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n const gsplat = combineGsplat({\n gsplat: generator.outputs.gsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputPackedSplat(\n gsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n let covsplat: DynoVal;\n if (covGenerator) {\n covsplat = covGenerator.outputs.covsplat;\n } else if (generator) {\n covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n const centerSubView = sub(\n splitCovSplat(covsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n const halfAlpha = mul(\n splitCovSplat(covsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n covsplat = combineCovSplat({\n covsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputCovSplat(\n covsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n }\n if (!generator) {\n throw new Error(\"Generator must be provided\");\n }\n }\n if (generator) {\n const outputDepth = outputSplatDepth(\n generator.outputs.gsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n if (covGenerator) {\n const outputDepth = outputCovSplatDepth(\n covGenerator.outputs.covsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n return undefined;\n },\n );\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: {},\n template: this.extSplats\n ? SplatAccumulator.programExtTemplate\n : SplatAccumulator.programTemplate,\n // consoleLog: true,\n });\n\n SplatAccumulator.generatorProgram.set(theGenerator, program);\n }\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n\n const material = program.prepareMaterial();\n SplatAccumulator.fullScreenQuad.material = material;\n return { program, material };\n }\n\n static programExtTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4x2Vec4Template,\n );\n static programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Vec4Template,\n );\n static generatorProgram = new WeakMap<\n GsplatGenerator | CovSplatGenerator,\n DynoProgram\n >();\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n generate({\n generator,\n covGenerator,\n base,\n count,\n renderer,\n }: {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureGenerate\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(\n generator,\n covGenerator,\n );\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n SplatAccumulator.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial,\n renderSize,\n previous,\n lodInstances,\n }: {\n renderer: THREE.WebGLRenderer;\n scene: THREE.Scene;\n time: number;\n camera: THREE.Camera;\n sortRadial: boolean;\n renderSize: THREE.Vector2;\n previous: SplatAccumulator;\n lodInstances?: Map<\n SplatMesh,\n { numSplats: number; texture: THREE.DataTexture }\n >;\n }) {\n this.viewToWorld.copy(camera.matrixWorld);\n camera.getWorldPosition(this.viewOrigin);\n camera.getWorldDirection(this.viewDirection);\n SplatAccumulator.viewCenterUniform.value.copy(this.viewOrigin);\n SplatAccumulator.viewDirUniform.value.copy(this.viewDirection);\n SplatAccumulator.sortRadialUniform.value = sortRadial;\n\n this.time = time;\n this.deltaTime = time - previous.time;\n\n const allGenerators: SplatGenerator[] = [];\n scene.traverse((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n allGenerators.push(node);\n }\n }\n });\n\n const globalEditsSet = new Set();\n scene.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n let ancestor = node.parent;\n while (ancestor != null && !(ancestor instanceof SplatMesh)) {\n ancestor = ancestor.parent;\n }\n if (ancestor == null) {\n // Not part of a SplatMesh so it's a global edit\n globalEditsSet.add(node);\n }\n }\n });\n const globalEdits = Array.from(globalEditsSet);\n\n for (const object of allGenerators) {\n try {\n object.frameUpdate?.({\n renderer,\n object,\n time: this.time,\n deltaTime: this.deltaTime,\n viewToWorld: this.viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices:\n lodInstances && object instanceof SplatMesh\n ? lodInstances.get(object)\n : undefined,\n });\n } catch (error) {\n console.error(\"frameUpdate error\", error);\n object.generator = undefined;\n object.covGenerator = undefined;\n object.generatorError = error;\n }\n }\n\n const visibleGenerators: SplatGenerator[] = [];\n scene.traverseVisible((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n visibleGenerators.push(node);\n }\n }\n });\n\n const splatCounts = visibleGenerators.map(\n (generator) => generator.numSplats,\n );\n const { maxSplats, mapping: baseCounts } =\n this.generateMapping(splatCounts);\n\n const previousMappings = previous.mapping.reduce((mappings, mapping) => {\n mappings.set(mapping.node, mapping);\n return mappings;\n }, new Map());\n\n this.mapping = [];\n this.numSplats = 0;\n\n baseCounts.forEach(({ base, count }, index) => {\n const node = visibleGenerators[index];\n const previousNode = previousMappings.get(node);\n if (previousNode && previousNode.count !== node.numSplats) {\n node.updateMappingVersion();\n }\n\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n const { version, mappingVersion } = node;\n this.mapping.push({\n node,\n generator,\n covGenerator,\n version,\n mappingVersion,\n base,\n count,\n });\n this.numSplats = Math.max(this.numSplats, base + count);\n }\n });\n const { splatsUpdated, mappingUpdated } = previous.checkVersions(\n this.mapping,\n );\n this.version = previous.version + (splatsUpdated ? 1 : 0);\n this.mappingVersion = previous.mappingVersion + (mappingUpdated ? 1 : 0);\n\n return {\n sameMapping: !mappingUpdated,\n version: this.version,\n mappingVersion: this.mappingVersion,\n visibleGenerators,\n generate: () => {\n this.ensureGenerate({ maxSplats });\n\n for (const { node, base, count } of this.mapping) {\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n this.generate({ generator, covGenerator, base, count, renderer });\n }\n }\n },\n readback: async () => {\n const textures = this.getTextures();\n if (this.readbackSplats.length === 0) {\n this.readbackSplats = [\n new DynoUsampler2DArray({ value: textures[0], key: \"extSplats\" }),\n new DynoUsampler2DArray({ value: textures[1], key: \"extSplats\" }),\n ];\n }\n this.readbackSplats[0].value = textures[0];\n this.readbackSplats[1].value = textures[1];\n\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n const readback = this.readback;\n const words = this.extSplats ? 8 : 4;\n const array = readback.ensureBuffer(\n this.numSplats * words,\n new Uint32Array(0),\n );\n\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n const rgba8 = new Dyno({\n inTypes: {\n index: \"int\",\n extSplats1: \"usampler2DArray\",\n extSplats2: \"usampler2DArray\",\n },\n outTypes: { rgba8: \"vec4\" },\n inputs: {\n index,\n extSplats1: this.readbackSplats[0],\n extSplats2: this.readbackSplats[1],\n },\n statements: ({ inputs, outputs }) => {\n if (this.extSplats) {\n return unindentLines(`\n int indexDiv8 = ${inputs.index} >> 3;\n ivec3 coord = splatTexCoord(indexDiv8);\n uvec4 packedData;\n if ((${inputs.index} & 4) == 0) {\n packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n } else {\n packedData = texelFetch(${inputs.extSplats2}, coord, 0);\n }\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n }\n return unindentLines(`\n int indexDiv4 = ${inputs.index} >> 2;\n ivec3 coord = splatTexCoord(indexDiv4);\n uvec4 packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n },\n }).outputs.rgba8;\n return { rgba8 };\n },\n );\n\n return await readback.renderReadback({\n reader,\n count: this.numSplats * words,\n renderer,\n readback: array,\n });\n },\n };\n }\n\n // Check if this accumulator has exactly the same generator mapping as\n // the previous one. If so, we can reuse the Gsplat sort order.\n checkVersions(otherMapping: GeneratorMapping[]) {\n if (this.mapping.length !== otherMapping.length) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const mappingUpdated = this.mapping.some((item, i) => {\n const other = otherMapping[i];\n return (\n item.node !== other.node ||\n item.base !== other.base ||\n item.count !== other.count ||\n item.mappingVersion !== other.mappingVersion\n );\n });\n if (mappingUpdated) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const splatsUpdated = this.mapping.some((item, i) => {\n return item.version !== otherMapping[i].version;\n });\n return { splatsUpdated, mappingUpdated };\n }\n}\n","import * as THREE from \"three\";\n\n// SplatGeometry is an internal class used by SparkRenderer to render a collection\n// of Gsplats in a single draw call by extending THREE.InstancedBufferGeometry.\n// Each Gsplat is drawn as two triangles, with the order of the Gsplats determined\n// by a texture lookup via gl_InstanceID.\n\nexport class SplatGeometry extends THREE.InstancedBufferGeometry {\n constructor() {\n super();\n this.setAttribute(\"position\", new THREE.BufferAttribute(QUAD_VERTICES, 3));\n this.setIndex(new THREE.BufferAttribute(QUAD_INDICES, 1));\n }\n}\n\n// Each instance draws to triangles covering a quad over coords (-1,-1,0)..(1,1,0)\nconst QUAD_VERTICES = new Float32Array([\n -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0,\n]);\n\nconst QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]);\n","import * as THREE from \"three\";\nimport {\n ExtSplats,\n PackedSplats,\n PagedSplats,\n Readback,\n type SplatGenerator,\n SplatMesh,\n SplatPager,\n} from \".\";\nimport { SplatAccumulator } from \"./SplatAccumulator\";\nimport { SplatGeometry } from \"./SplatGeometry\";\nimport { SplatWorker } from \"./SplatWorker\";\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { getShaders } from \"./shaders\";\nimport {\n isAndroid,\n isIos,\n isMobile,\n isOculus,\n isVisionPro,\n uploadU32DataTextureRows,\n} from \"./utils\";\n\nexport interface SparkRendererOptions {\n /**\n * Pass in your THREE.WebGLRenderer instance so Spark can perform work\n * outside the usual render loop. Should be created with antialias: false\n * (default setting) as WebGL anti-aliasing doesn't improve Gaussian Splatting\n * rendering and significantly reduces performance.\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Callback function to be called when SparkRenderer needs to re-render,\n * for example when splat sort order or LoD updates complete.\n */\n onDirty?: () => void;\n /**\n * Whether to use premultiplied alpha when accumulating splat RGB\n * @default true\n */\n premultipliedAlpha?: boolean;\n /**\n * Pass in a THREE.Timer to synchronize time-based effects across different\n * systems. Alternatively, you can set the property time directly.\n * (default: new THREE.Timer)\n */\n timer?: THREE.Timer;\n /**\n * Controls whether to check and automatically update Gsplat collection\n * each frame render.\n * @default true\n */\n autoUpdate?: boolean;\n /**\n * Controls whether to update the Gsplats before or after rendering. For WebXR\n * this is set to false in order to complete rendering as soon as possible.\n * @default true (if not WebXR)\n */\n preUpdate?: boolean;\n /**\n * Maximum standard deviations from the center to render Gaussians. Values\n * Math.sqrt(4)..Math.sqrt(9) produce acceptable results and can be tweaked for\n * performance.\n * @default Math.sqrt(8)\n */\n maxStdDev?: number;\n /*\n **\n * Minimum pixel radius for splat rendering.\n * @default 0.0\n */\n minPixelRadius?: number;\n /**\n * Maximum pixel radius for splat rendering.\n * @default 512.0\n */\n maxPixelRadius?: number;\n /**\n * Whether to use extended Gsplat encoding for intermediary accumulator splats.\n * @default false\n */\n accumExtSplats?: boolean;\n /**\n * Whether to use covariance Gsplat encoding for intermediary splats.\n * @default false\n */\n covSplats?: boolean;\n /**\n * Minimum alpha value for splat rendering.\n * @default 0.5 * (1.0 / 255.0)\n */\n minAlpha?: number;\n /**\n * Enable 2D Gaussian splatting rendering ability. When this mode is enabled,\n * any scale x/y/z component that is exactly 0 (minimum quantized value) results\n * in the other two non-0 axis being interpreted as an oriented 2D Gaussian Splat,\n * rather instead of the usual projected 3DGS Z-slice. When reading PLY files,\n * scale values less than e^-30 will be interpreted as 0.\n * @default false\n */\n enable2DGS?: boolean;\n /**\n * Enable alternative ray-splat max response evaluation, used by 3DGUT (unscented transform),\n * 3DGRT, and HTGS.\n * @default false\n */\n // enableRayEval?: boolean;\n /**\n * Scalar value to add to 2D splat covariance diagonal, effectively blurring +\n * enlarging splats. In scenes trained without the Gsplat anti-aliasing tweak\n * this value was typically 0.3, but with anti-aliasing it is 0.0\n * @default 0.0\n */\n preBlurAmount?: number;\n /**\n * Scalar value to add to 2D splat covarianve diagonal, with opacity adjustment\n * to correctly account for \"blurring\" when anti-aliasing. Typically 0.3\n * (equivalent to approx 0.5 pixel radius) in scenes trained with anti-aliasing.\n */\n blurAmount?: number;\n /**\n * Depth-of-field distance to focal plane\n */\n focalDistance?: number;\n /**\n * Full-width angle of aperture opening (in radians), 0.0 to disable\n * @default 0.0\n */\n apertureAngle?: number;\n /**\n * Modulate Gaussian kernel falloff. 0 means \"no falloff, flat shading\",\n * while 1 is the normal Gaussian kernel.\n * @default 1.0\n */\n falloff?: number;\n /**\n * X/Y clipping boundary factor for Gsplat centers against view frustum.\n * 1.0 clips any centers that are exactly out of bounds, while 1.4 clips\n * centers that are 40% beyond the bounds.\n * @default 1.4\n */\n clipXY?: number;\n /**\n * Parameter to adjust projected splat scale calculation to match other renderers,\n * similar to the same parameter in the MKellogg 3DGS renderer. Higher values will\n * tend to sharpen the splats. A value 2.0 can be used to match the behavior of\n * the PlayCanvas renderer.\n * @default 1.0\n */\n focalAdjustment?: number;\n /**\n * Whether to sort splats radially (geometric distance) from the viewpoint (true)\n * or by Z-depth (false). Most scenes are trained with the Z-depth `sort `metric\n * and will render more accurately at certain viewpoints. However, radial sorting\n * is more stable under viewpoint rotations.\n * @default true\n */\n sortRadial?: boolean;\n /**\n * Minimum interval between sort calls in milliseconds.\n * @default 0\n */\n minSortIntervalMs?: number;\n /*\n * Flag to control whether LoD is enabled. @default true\n */\n enableLod?: boolean;\n /**\n * Whether to drive LOD updates (compute lodInstances, update pager, etc.).\n * Set to false to use LOD instances from another renderer without driving updates.\n * Only has effect if enableLod is true.\n * @default true (if enableLod is true)\n */\n enableDriveLod?: boolean;\n /**\n * Whether to enable page fetching for LoD.\n * @default true\n */\n enableLodFetching?: boolean;\n /**\n * Set the target # splats for LoD. If this isn't set then default base LoD splat\n * counts will apply: 500K-750K for WebXR, 1-1.5M for mobile, and 2.5M for desktop.\n * @default 500K-2500K depending on platform\n */\n lodSplatCount?: number;\n /**\n * Scale factor for target # splats for LoD. 2.0 means 2x the base LoD splat count.\n * This is the easiest LoD parameter to adjust and will scale detail appropriately\n * for the platform.\n * @default 1.0\n */\n lodSplatScale?: number;\n /**\n * Determines the minimum screen pixel size of LoD splats. The default 1.0 means\n * the splat LoD tree will pick splats that are no smaller than 1 pixel in size.\n * Setting this to a higher value as high as 5.0 will often be indistinguishable\n * but will avoid wasting rendering capacity on tiny splats.\n * @default 1.0\n */\n lodRenderScale?: number;\n /**\n * Inflate LoD splats to ensure opacity stays <= 1.0, producing a softer appearance.\n * @default false\n */\n lodInflate?: boolean;\n lodTraverseMode?: \"dynamic\" | \"standard\";\n /**\n * Whether to use extended Gsplat encoding for paged splats, useful for eliminating\n * quantization artifacts from splat scenes with large internal position coordinates.\n * @default false\n */\n pagedExtSplats?: boolean;\n /**\n * Allocation size of paged splats. This must be a multiple of the page size (65536).\n * @default 16777216 (256 * 65536) for desktop, 6291456 for iOS, 8,388,608 for other mobile\n */\n maxPagedSplats?: number;\n /**\n * Number of parallel chunk fetchers for LoD. These are run within a shared pool\n * of 4 background WebWorker threads, so setting it above 4 will not have any\n * effect. Setting it 3 leaves one spare worker for other loading/decoding tasks.\n * @default 3\n */\n numLodFetchers?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with no foveation applied (full resolution, foveate=1.0). Set to 0 to disable.\n * @default 90.0\n */\n coneFov0?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with reduced resolution specified by `coneFoveate`. Foveation will be applied\n * smoothly from 1.0 down to `coneFoveate` as you move outward from\n * `coneFov0` to `coneFov`. Set to 0 to disable.\n * @default 120.0\n */\n coneFov?: number;\n /**\n * Foveation scale to apply to LoD splats at the edge of coneFov. Foveation will\n * be applied smoothly from `coneFoveate` down to `behindFoveate` as you move\n * outward from `coneFov` to 180 degrees (behind the viewer).\n * @default 0.4\n */\n coneFoveate?: number;\n /**\n * Foveation scale to apply to LoD splats behind the viewer. Setting this to 0.1\n * for example will result in splats 10x larger than inside the viewing frustum.\n * @default 0.2\n */\n behindFoveate?: number;\n /**\n * How many LoD splats to generate for raycasting\n * @default 10000-25000 iff default canvas target is used\n */\n lodRaycast?: number;\n lodRaycastIntervalMs?: number;\n /**\n * Configures an offline render target for the SparkRenderer (as opposed to\n * rendering to the canvas). This is useful for rendering environment maps,\n * additional viewpoints, or video frame rendering.\n * @default undefined\n */\n target?: {\n /**\n * Width of the render target in pixels.\n */\n width: number;\n /**\n * Height of the render target in pixels.\n */\n height: number;\n /**\n * If you want to be able to render a scene that depends on this target's\n * output (for example, a recursive viewport), set this to true to enable\n * double buffering.\n * @default false\n */\n doubleBuffer?: boolean;\n /**\n * Super-sampling factor for the render target. Values 1-4 are supported.\n * Note that re-sampling back down to .width x .height is done on the CPU\n * with simple averaging only when calling readTarget().\n * @default 1\n */\n superXY?: number;\n } & THREE.RenderTargetOptions;\n /**\n * Extra uniform values to pass to the shader.\n * @default undefined = no extra uniforms\n */\n extraUniforms?: Record;\n /**\n * Replace the default `splatVertex.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatVertex.glsl` shader\n */\n vertexShader?: string;\n /**\n * Replace the default `splatFragment.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatFragment.glsl` shader\n */\n fragmentShader?: string;\n /**\n * Set the splat shader material to be transparent which determines if the\n * splats are rendered during the first opaque THREE.js render pass or the\n * second transparent render pass.\n * @default undefined = true\n */\n transparent?: boolean;\n /**\n * Set the splat shader material to enable depth testing which determines if the\n * splats respect the Z depth buffer and blend with other opaque objects in the scene.\n * @default undefined = true\n */\n depthTest?: boolean;\n /**\n * Set the splat shader material to enable depth writing which determines if the\n * splats write to the Z depth buffer. Note that enabling this may produce\n * undesirable results because most of the Gsplat is transparent.\n * @default undefined = false\n */\n depthWrite?: boolean;\n}\n\nexport class SparkRenderer extends THREE.Mesh {\n readonly renderer: THREE.WebGLRenderer;\n readonly material: THREE.ShaderMaterial;\n readonly uniforms: ReturnType;\n\n autoUpdate: boolean;\n preUpdate: boolean;\n static sparkOverride?: SparkRenderer;\n\n renderSize = new THREE.Vector2();\n maxStdDev: number;\n minPixelRadius: number;\n maxPixelRadius: number;\n accumExtSplats: boolean;\n covSplats: boolean;\n minAlpha: number;\n enable2DGS: boolean;\n // enableRayEval: boolean;\n preBlurAmount: number;\n blurAmount: number;\n focalDistance: number;\n apertureAngle: number;\n falloff: number;\n clipXY: number;\n focalAdjustment: number;\n\n sortRadial: boolean;\n minSortIntervalMs: number;\n\n timer: THREE.Timer;\n time?: number;\n lastFrame = -1;\n updateTimeoutId = -1;\n onDirty?: () => void;\n dirty: boolean;\n\n orderingTexture: THREE.DataTexture | null = null;\n maxSplats = 0;\n activeSplats = 0;\n\n display: SplatAccumulator;\n current: SplatAccumulator;\n accumulators: SplatAccumulator[] = [];\n\n sorting = false;\n sortDirty = false;\n lastSortTime = 0;\n sortWorker: SplatWorker | null = null;\n sortTimeoutId = -1;\n sortedCenter = new THREE.Vector3().setScalar(Number.NEGATIVE_INFINITY);\n sortedDir = new THREE.Vector3().setScalar(0);\n readback32 = new Uint32Array(0);\n\n enableLod: boolean;\n enableDriveLod: boolean;\n enableLodFetching: boolean;\n lodSplatCount?: number;\n lodSplatScale: number;\n lodRenderScale: number;\n lodInflate: boolean;\n lodTraverseMode: \"dynamic\" | \"standard\";\n pagedExtSplats: boolean;\n maxPagedSplats: number;\n numLodFetchers: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n\n lodRaycast?: number;\n lodRaycastIntervalMs: number;\n lastLodRaycastTime = 0;\n\n lodWorker: SplatWorker | null = null;\n lodMeshes: { mesh: SplatMesh; version: number }[] = [];\n lodDirty = false;\n lodIds: Map<\n PackedSplats | ExtSplats | PagedSplats,\n { lodId: number; lastTouched: number; rootPage?: number }\n > = new Map();\n lodIdToSplats: Map =\n new Map();\n lodInitQueue: (PackedSplats | ExtSplats | PagedSplats)[] = [];\n lastLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n currentLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n lodPosOverride?: THREE.Vector3;\n lodQuatOverride?: THREE.Quaternion;\n lodInstances: Map<\n SplatMesh,\n {\n lodId: number;\n numSplats: number;\n indices: Uint32Array;\n texture: THREE.DataTexture;\n }\n > = new Map();\n lodUpdates: {\n lodId: number;\n pageBase: number;\n chunkBase: number;\n count: number;\n lodTreeData?: Uint32Array;\n }[] = [];\n lastTraverseTime = 0;\n lastPixelLimit?: number;\n\n pager?: SplatPager;\n pagerId = 0;\n // prefetchCameras: THREE.Camera[] = [];\n // prefetchLodScale = 1.0;\n // prefetchMeshesCache: SplatMesh[] = [];\n // prefetchMeshesCacheScene?: THREE.Scene;\n\n target?: THREE.WebGLRenderTarget;\n backTarget?: THREE.WebGLRenderTarget;\n superPixels?: Uint8Array;\n targetPixels?: Uint8Array;\n superXY = 1;\n\n flushAfterGenerate = false;\n flushAfterRead = false;\n readPause = 1;\n sortPause = 0;\n sortDelay = 0;\n\n constructor(options: SparkRendererOptions) {\n if (!options) {\n throw new Error(\"SparkRenderer options are required\");\n }\n if (!options.renderer) {\n throw new Error(\"renderer is required in SparkRenderer options\");\n }\n\n const uniforms = SparkRenderer.makeUniforms();\n Object.assign(uniforms, options.extraUniforms ?? {});\n\n const shaders = getShaders();\n const premultipliedAlpha = options.premultipliedAlpha ?? true;\n const geometry = new SplatGeometry();\n const material = new THREE.ShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: options.vertexShader ?? shaders.splatVertex,\n fragmentShader: options.fragmentShader ?? shaders.splatFragment,\n uniforms,\n premultipliedAlpha,\n transparent: options.transparent ?? true,\n depthTest: options.depthTest ?? true,\n depthWrite: options.depthWrite ?? false,\n side: THREE.DoubleSide,\n allowOverride: false,\n });\n\n super(geometry, material);\n this.material = material;\n this.uniforms = uniforms;\n // Disable frustum culling because we want to always draw them all\n // and cull Gsplats individually in the shader\n this.frustumCulled = false;\n\n // By default SparkRenderer will only render for layer 0\n // this.layers.enableAll();\n\n // sparkRendererInstance = this;\n this.renderer = options.renderer;\n this.onDirty = options.onDirty;\n this.dirty = true;\n this.autoUpdate = options.autoUpdate ?? true;\n this.preUpdate = options.preUpdate ?? true;\n\n this.maxStdDev = options.maxStdDev ?? Math.sqrt(8.0);\n this.minPixelRadius = options.minPixelRadius ?? 0.0; //1.6;\n this.maxPixelRadius = options.maxPixelRadius ?? 512.0;\n this.accumExtSplats = options.accumExtSplats ?? false;\n this.covSplats = options.covSplats ?? false;\n this.minAlpha = options.minAlpha ?? 0.5 * (1.0 / 255.0);\n this.enable2DGS = options.enable2DGS ?? false;\n // this.enableRayEval = options.enableRayEval ?? false;\n this.preBlurAmount = options.preBlurAmount ?? 0.0;\n this.blurAmount = options.blurAmount ?? 0.3;\n this.focalDistance = options.focalDistance ?? 0.0;\n this.apertureAngle = options.apertureAngle ?? 0.0;\n this.falloff = options.falloff ?? 1.0;\n this.clipXY = options.clipXY ?? 1.4;\n this.focalAdjustment = options.focalAdjustment ?? 1.0;\n\n this.sortRadial = options.sortRadial ?? true;\n this.minSortIntervalMs = options.minSortIntervalMs ?? 0;\n\n this.enableLod = options.enableLod ?? true;\n // enableDriveLod defaults to true if enableLod is true, false otherwise\n this.enableDriveLod = options.enableDriveLod ?? this.enableLod;\n this.enableLodFetching = options.enableLodFetching ?? true;\n this.lodSplatCount = options.lodSplatCount;\n this.lodSplatScale = options.lodSplatScale ?? 1.0;\n this.lodRenderScale = options.lodRenderScale ?? 1.0;\n this.lodInflate = options.lodInflate ?? false;\n this.lodTraverseMode = options.lodTraverseMode ?? \"standard\";\n this.pagedExtSplats = options.pagedExtSplats ?? false;\n const defaultPages = isMobile() ? (isIos() ? 96 : 128) : 256;\n this.maxPagedSplats = options.maxPagedSplats ?? defaultPages * 65536;\n this.numLodFetchers = options.numLodFetchers ?? 3;\n this.behindFoveate = options.behindFoveate ?? 0.2;\n this.coneFov0 = options.coneFov0 ?? 90.0;\n this.coneFov = options.coneFov ?? 120.0;\n this.coneFoveate = options.coneFoveate ?? 0.4;\n\n this.lodRaycast =\n options.lodRaycast === undefined\n ? isMobile()\n ? 10000\n : 25000\n : options.lodRaycast;\n this.lodRaycastIntervalMs = options.lodRaycastIntervalMs ?? 500;\n\n this.timer = options.timer ?? new THREE.Timer();\n\n const accumulatorOptions = {\n extSplats: this.accumExtSplats,\n covSplats: this.covSplats,\n };\n this.display = new SplatAccumulator(accumulatorOptions);\n this.current = this.display;\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n\n // Check if the provoking vertex convention should be changed\n const provokingVertexExt = this.renderer\n .getContext()\n .getExtension(\"WEBGL_provoking_vertex\");\n if (provokingVertexExt) {\n provokingVertexExt.provokingVertexWEBGL(\n provokingVertexExt.FIRST_VERTEX_CONVENTION_WEBGL,\n );\n }\n\n if (options.target) {\n const {\n width,\n height,\n doubleBuffer,\n superXY: origSuperXY,\n ...origTargetOptions\n } = options.target;\n const superXY = Math.max(1, Math.min(4, origSuperXY ?? 1));\n if (width * superXY > 8192 || height * superXY > 8192) {\n throw new Error(\"Target size too large\");\n }\n this.superXY = superXY;\n\n const superWidth = width * superXY;\n const superHeight = height * superXY;\n const targetOptions: THREE.RenderTargetOptions = {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n ...origTargetOptions,\n };\n\n this.target = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n if (doubleBuffer) {\n this.backTarget = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n }\n }\n }\n\n static makeUniforms() {\n const uniforms = {\n // // number of active splats to render\n // numSplats: { value: 0 },\n // Size of render viewport in pixels\n renderSize: { value: new THREE.Vector2() },\n // Near and far plane distances\n near: { value: 0.1 },\n far: { value: 1000.0 },\n // SplatAccumulator to view transformation quaternion\n renderToViewQuat: { value: new THREE.Quaternion() },\n // SplatAccumulator to view transformation translation\n renderToViewPos: { value: new THREE.Vector3() },\n renderToViewBasis: { value: new THREE.Matrix3() },\n renderToViewOffset: { value: new THREE.Vector3() },\n // Maximum distance (in stddevs) from Gsplat center to render\n maxStdDev: { value: 1.0 },\n // Minimum pixel radius for splat rendering\n minPixelRadius: { value: 0.0 },\n // Maximum pixel radius for splat rendering\n maxPixelRadius: { value: 512.0 },\n // Minimum alpha value for splat rendering\n minAlpha: { value: 0.5 * (1.0 / 255.0) },\n // Enable interpreting 0-thickness Gsplats as 2DGS\n enable2DGS: { value: false },\n // Enable ray-splat max response evaluation\n // enableRayEval: { value: false },\n // Inflate LoD splats so that opacity <= 1.0\n lodInflate: { value: false },\n // Add to projected 2D splat covariance diagonal (thickens and brightens)\n preBlurAmount: { value: 0.0 },\n // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing)\n blurAmount: { value: 0.3 },\n // Depth-of-field distance to focal plane\n focalDistance: { value: 0.0 },\n // Full-width angle of aperture opening (in radians)\n apertureAngle: { value: 0.0 },\n // Modulate Gaussian kernal falloff. 0 means \"no falloff, flat shading\",\n // 1 is normal e^-x^2 falloff.\n falloff: { value: 1.0 },\n // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds\n clipXY: { value: 1.4 },\n // Debug renderSize scale factor\n focalAdjustment: { value: 1.0 },\n // Whether to encode Gsplat with linear RGB (for environment mapping)\n encodeLinear: { value: false },\n // Back-to-front sort ordering of splat indices\n ordering: { type: \"t\", value: SparkRenderer.emptyOrdering },\n enableExtSplats: { value: false },\n enableCovSplats: { value: false },\n // Gsplat collection to render\n extSplats: { type: \"t\", value: SplatAccumulator.emptyTexture },\n extSplats2: { type: \"t\", value: SplatAccumulator.emptyTexture },\n // Time in seconds for time-based effects\n time: { value: 0 },\n // Delta time in seconds since last frame\n deltaTime: { value: 0 },\n // Debug flag that alternates each frame\n debugFlag: { value: false },\n };\n return uniforms;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n if (this.backTarget) {\n this.backTarget.dispose();\n this.backTarget = undefined;\n }\n if (this.orderingTexture) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n\n const accumulators = new Set();\n accumulators.add(this.display);\n accumulators.add(this.current);\n for (const accumulator of this.accumulators) {\n accumulators.add(accumulator);\n }\n for (const accumulator of accumulators) {\n accumulator.dispose();\n }\n\n const instances = this.lodInstances.values();\n this.lodInstances.clear();\n for (const instance of instances) {\n instance.texture.dispose();\n }\n\n if (this.sortWorker) {\n this.sortWorker.dispose();\n this.sortWorker = null;\n }\n if (this.lodWorker) {\n this.lodWorker.dispose();\n this.lodWorker = null;\n }\n if (this.pager) {\n this.pager.dispose();\n this.pager = undefined;\n }\n }\n\n setDirty() {\n if (!this.dirty) {\n this.dirty = true;\n this.onDirty?.();\n }\n }\n\n onBeforeRender(\n renderer: THREE.WebGLRenderer,\n scene: THREE.Scene,\n camera: THREE.Camera,\n ) {\n const spark = SparkRenderer.sparkOverride ?? this;\n\n const frame = renderer.info.render.frame;\n const isNewFrame = frame !== spark.lastFrame;\n spark.lastFrame = frame;\n\n // Determine render target\n const currentRenderTarget = renderer.getRenderTarget();\n const isXRRenderTarget = checkIsXRRenderTarget(currentRenderTarget);\n if (currentRenderTarget) {\n spark.renderSize.set(\n currentRenderTarget.width,\n currentRenderTarget.height,\n );\n\n // WebXR mode on Apple Vision Pro returns 1x1 when presenting.\n // Use a different means to figure out the render size.\n if (\n isXRRenderTarget &&\n spark.renderSize.x === 1 &&\n spark.renderSize.y === 1\n ) {\n const baseLayer = renderer.xr.getSession()?.renderState.baseLayer;\n if (baseLayer) {\n spark.renderSize.x = baseLayer.framebufferWidth;\n spark.renderSize.y = baseLayer.framebufferHeight;\n }\n }\n } else {\n renderer.getDrawingBufferSize(spark.renderSize);\n }\n this.uniforms.renderSize.value.copy(spark.renderSize);\n\n const typedCamera = camera as\n | THREE.PerspectiveCamera\n | THREE.OrthographicCamera;\n\n this.uniforms.near.value = typedCamera.near;\n this.uniforms.far.value = typedCamera.far;\n\n const geometry = this.geometry as SplatGeometry;\n geometry.instanceCount = spark.activeSplats;\n\n const accumToWorld = new THREE.Matrix4();\n if (!this.display.extSplats) {\n accumToWorld.makeTranslation(spark.display.viewOrigin);\n }\n const cameraToWorld = camera.matrixWorld.clone();\n const worldToCamera = cameraToWorld.invert();\n const accumToCamera = worldToCamera.multiply(accumToWorld);\n accumToCamera.decompose(\n this.uniforms.renderToViewPos.value,\n this.uniforms.renderToViewQuat.value,\n new THREE.Vector3(),\n );\n this.uniforms.renderToViewBasis.value.setFromMatrix4(accumToCamera);\n\n this.uniforms.maxStdDev.value = spark.maxStdDev;\n this.uniforms.minPixelRadius.value = spark.minPixelRadius;\n this.uniforms.maxPixelRadius.value = spark.maxPixelRadius;\n this.uniforms.minAlpha.value = spark.minAlpha;\n this.uniforms.enable2DGS.value = spark.enable2DGS;\n // this.uniforms.enableRayEval.value = spark.enableRayEval;\n this.uniforms.lodInflate.value = spark.lodInflate;\n this.uniforms.preBlurAmount.value = spark.preBlurAmount;\n this.uniforms.blurAmount.value = spark.blurAmount;\n this.uniforms.focalDistance.value = spark.focalDistance;\n this.uniforms.apertureAngle.value = spark.apertureAngle;\n this.uniforms.falloff.value = spark.falloff;\n this.uniforms.clipXY.value = spark.clipXY;\n this.uniforms.focalAdjustment.value = spark.focalAdjustment;\n\n const outputColorSpace =\n currentRenderTarget === null\n ? renderer.outputColorSpace\n : isXRRenderTarget\n ? currentRenderTarget.texture.colorSpace\n : THREE.ColorManagement.workingColorSpace;\n this.uniforms.encodeLinear.value =\n outputColorSpace !== THREE.SRGBColorSpace;\n\n this.uniforms.ordering.value =\n spark.orderingTexture ?? SparkRenderer.emptyOrdering;\n this.uniforms.enableExtSplats.value = this.display.extSplats;\n this.uniforms.enableCovSplats.value = this.display.covSplats;\n if (this.display.extSplats) {\n const extSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = extSplats[0];\n this.uniforms.extSplats2.value = extSplats[1];\n } else {\n const packedSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = packedSplats[0];\n this.uniforms.extSplats2.value = packedSplats[0];\n }\n\n this.uniforms.time.value = spark.display.time;\n this.uniforms.deltaTime.value = spark.display.deltaTime;\n // Alternating debug flag that can aid in visual debugging\n this.uniforms.debugFlag.value = (performance.now() / 1000.0) % 2.0 < 1.0;\n\n if (spark.autoUpdate && isNewFrame) {\n const preUpdate = spark.preUpdate && !renderer.xr.isPresenting;\n const useCamera = renderer.xr.isPresenting\n ? renderer.xr.getCamera()\n : camera;\n if (preUpdate) {\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n } else {\n if (spark.updateTimeoutId === -1) {\n spark.updateTimeoutId = setTimeout(() => {\n spark.updateTimeoutId = -1;\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n }, 1);\n }\n }\n }\n\n spark.dirty = false;\n }\n\n clearSplats() {\n this.activeSplats = 0;\n this.display.numSplats = 0;\n this.setDirty();\n }\n\n async update({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }) {\n await this.updateInternal({ scene, camera, autoUpdate: false });\n }\n\n // /**\n // * Provide additional cameras to prefetch paged splat chunks without\n // * affecting main LOD selection.\n // */\n // setPrefetchCameras(cameras?: THREE.Camera[], lodScaleMultiplier = 1.0) {\n // const next = cameras?.filter(Boolean) ?? [];\n // const sameCameras =\n // this.prefetchCameras.length === next.length &&\n // this.prefetchCameras.every((camera, index) => camera === next[index]);\n // if (sameCameras && this.prefetchLodScale === lodScaleMultiplier) {\n // return;\n // }\n // this.prefetchCameras = next;\n // this.prefetchLodScale = lodScaleMultiplier;\n // this.invalidatePrefetchCache();\n // }\n\n // /**\n // * Invalidate the prefetch meshes cache. Call this when SplatMeshes are\n // * added or removed from the scene.\n // */\n // invalidatePrefetchCache() {\n // this.prefetchMeshesCacheScene = undefined;\n // }\n\n private async updateInternal({\n scene,\n camera,\n autoUpdate,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n autoUpdate: boolean;\n }) {\n const renderer = this.renderer;\n this.timer.update();\n const time = this.time ?? this.timer.getElapsed();\n\n const center = camera.getWorldPosition(new THREE.Vector3());\n const dir = camera.getWorldDirection(new THREE.Vector3());\n\n const viewChanged =\n center.distanceTo(this.sortedCenter) > 0.001 ||\n dir.dot(this.sortedDir) < 0.999;\n\n const next = this.accumulators.pop();\n if (!next) {\n // Should never happen\n throw new Error(\"No next accumulator\");\n }\n if (next === this.current) {\n // Should never happen\n throw new Error(\n \"Next accumulator is the same as the current accumulator\",\n );\n }\n const { version, mappingVersion, visibleGenerators, generate } =\n next.prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial: this.sortRadial ?? true,\n renderSize: this.renderSize,\n previous: this.current,\n lodInstances: this.enableLod ? this.lodInstances : undefined,\n });\n\n let doUpdate = true;\n const needsUpdate = viewChanged || version !== this.current.version;\n const mappingUpdated = mappingVersion !== this.display.mappingVersion;\n\n if (autoUpdate && !needsUpdate) {\n // Triggered by auto-update but no change\n doUpdate = false;\n }\n\n if (mappingUpdated && this.sorting) {\n // We need to be able to sort the splats because the mapping has changed.\n // Try again next time around.\n doUpdate = false;\n }\n\n if (!doUpdate) {\n // Restore unused accumulator to the free list\n this.accumulators.push(next);\n } else {\n generate();\n\n if (this.flushAfterGenerate) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n if (this.display.mappingVersion === next.mappingVersion) {\n // Same splat mapping so let's display it immediately and\n // reuse the sort order\n this.accumulators.push(this.display);\n this.display = next;\n } else {\n if (this.display !== this.current) {\n // The previous current is not being displayed, so replace it\n this.accumulators.push(this.current);\n }\n }\n\n this.current = next;\n this.sortDirty = true;\n this.setDirty();\n }\n\n if (this.enableDriveLod) {\n this.driveLod({ visibleGenerators, camera, scene });\n }\n await this.driveSort();\n }\n\n private async driveSort() {\n if (this.sorting || !this.sortDirty) {\n return;\n }\n\n if (this.sortTimeoutId !== -1) {\n clearTimeout(this.sortTimeoutId);\n this.sortTimeoutId = -1;\n }\n\n const now = performance.now();\n const nextSortTime = this.lastSortTime\n ? this.lastSortTime + this.minSortIntervalMs\n : now;\n if (now < nextSortTime) {\n this.sortTimeoutId = setTimeout(() => {\n this.sortTimeoutId = -1;\n this.driveSort();\n }, nextSortTime - now);\n return;\n }\n\n this.sorting = true;\n this.sortDirty = false;\n this.lastSortTime = now;\n\n if (this.readPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.readPause));\n }\n\n const current = this.current;\n\n this.sortedCenter.copy(current.viewOrigin);\n this.sortedDir.copy(current.viewDirection);\n\n const { numSplats, maxSplats } = current;\n const rows = Math.max(1, Math.ceil(maxSplats / 16384));\n const orderingMaxSplats = rows * 16384;\n this.maxSplats = Math.max(this.maxSplats, orderingMaxSplats);\n\n const ordering = new Uint32Array(this.maxSplats);\n const readback = Readback.ensureBuffer(maxSplats, this.readback32);\n this.readback32 = readback;\n\n await this.readbackDepth({\n current,\n renderer: this.renderer,\n numSplats,\n readback,\n });\n\n if (this.sortPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortPause));\n }\n\n if (!this.sortWorker) {\n this.sortWorker = new SplatWorker();\n }\n const result = (await this.sortWorker.call(\"sortSplats32\", {\n numSplats,\n readback,\n ordering,\n })) as {\n readback: Uint32Array;\n ordering: Uint32Array;\n activeSplats: number;\n };\n\n if (this.sortDelay > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortDelay));\n }\n\n this.readback32 = result.readback;\n\n this.activeSplats = result.activeSplats;\n\n if (this.orderingTexture) {\n if (rows > this.orderingTexture.image.height) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n }\n\n if (!this.orderingTexture) {\n // console.log(`Allocating orderingTexture: ${4096}x${rows}`);\n const orderingTexture = new THREE.DataTexture(\n result.ordering,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n orderingTexture.internalFormat = \"RGBA32UI\";\n orderingTexture.needsUpdate = true;\n this.orderingTexture = orderingTexture;\n } else {\n const renderer = this.renderer;\n if (!renderer.properties.has(this.orderingTexture)) {\n this.orderingTexture.needsUpdate = true;\n } else {\n uploadU32DataTextureRows(\n renderer,\n this.orderingTexture,\n 4096,\n rows,\n result.ordering,\n );\n }\n }\n\n // console.log(`Sorted (${this.minSortIntervalMs}) ${numSplats} splats in ${(performance.now() - now).toFixed(0)} ms`);\n\n if (this.current.mappingVersion === current.mappingVersion) {\n if (this.current.mappingVersion !== this.display.mappingVersion) {\n this.accumulators.push(this.display);\n this.display = this.current;\n }\n }\n this.sorting = false;\n this.setDirty();\n\n this.driveSort();\n }\n\n private ensureLodWorker() {\n if (!this.lodWorker) {\n this.lodWorker = new SplatWorker();\n }\n return this.lodWorker;\n }\n\n defaultSplatTarget() {\n return isOculus()\n ? 500000\n : isVisionPro()\n ? 750000\n : isAndroid()\n ? 1000000\n : isIos()\n ? 1500000\n : 2500000;\n }\n\n private driveLod({\n visibleGenerators,\n camera,\n scene,\n }: {\n visibleGenerators: SplatGenerator[];\n camera: THREE.Camera;\n scene: THREE.Scene;\n }) {\n const defaultSplatCount = this.defaultSplatTarget();\n const splatCount = this.lodSplatCount ?? defaultSplatCount;\n const maxSplats = splatCount * this.lodSplatScale;\n\n let pixelScaleLimit = 0.0;\n if (camera instanceof THREE.PerspectiveCamera) {\n const tanYfov = Math.tan((0.5 * camera.fov * Math.PI) / 180);\n pixelScaleLimit = (2.0 * tanYfov) / this.renderSize.y;\n } else if (camera instanceof THREE.OrthographicCamera) {\n // Effective visible size after zoom\n const viewHeight = (camera.top - camera.bottom) / camera.zoom;\n const viewWidth = (camera.right - camera.left) / camera.zoom;\n // World/view units per pixel (constant with depth for ortho)\n const pxY = viewHeight / Math.max(1, this.renderSize.y);\n const pxX = viewWidth / Math.max(1, this.renderSize.x);\n pixelScaleLimit = Math.min(pxX, pxY);\n }\n\n pixelScaleLimit *= this.lodRenderScale;\n\n const viewPos = new THREE.Vector3();\n const viewQuat = new THREE.Quaternion();\n this.current.viewToWorld.decompose(viewPos, viewQuat, new THREE.Vector3());\n\n if (this.lodPosOverride) {\n viewPos.copy(this.lodPosOverride);\n }\n if (this.lodQuatOverride) {\n viewQuat.copy(this.lodQuatOverride).normalize();\n }\n\n if (this.lastLod) {\n if (\n this.lastLod.pixelScaleLimit !== pixelScaleLimit ||\n this.lastLod.maxSplats !== maxSplats\n ) {\n this.lodDirty = true;\n }\n\n const distance = viewPos.distanceTo(this.lastLod.pos);\n const distanceRamp = Math.max(0.0, 1.0 - distance / 1.0);\n const dot = viewQuat.dot(this.lastLod.quat);\n const quatRamp = Math.max(0.0, 1.0 - (1.0 - dot) / 0.01);\n const similarity = distanceRamp * quatRamp;\n if (similarity < 0.999) {\n this.lodDirty = true;\n }\n }\n\n const lodMeshes = !this.enableLod\n ? []\n : (visibleGenerators.filter((generator) => {\n return (\n generator instanceof SplatMesh &&\n (generator.packedSplats?.lodSplats ||\n generator.extSplats?.lodSplats ||\n generator.paged) &&\n generator.enableLod !== false\n );\n }) as SplatMesh[]);\n const hasPaged = lodMeshes.some((mesh) => mesh.paged);\n\n if (this.lodMeshes.length !== lodMeshes.length) {\n this.lodDirty = true;\n } else {\n if (\n lodMeshes.some(\n (m, i) =>\n m !== this.lodMeshes[i].mesh ||\n m.version > this.lodMeshes[i].version,\n )\n ) {\n this.lodDirty = true;\n }\n }\n\n this.lodMeshes = lodMeshes.map((mesh) => ({\n mesh,\n version: mesh.version + 1,\n }));\n\n // if (!this.lodDirty && lodMeshes.length === 0 && this.lodIds.size === 0) {\n // return;\n // }\n\n this.lodInitQueue = [];\n const now = performance.now();\n\n for (const mesh of lodMeshes) {\n const splats =\n mesh.packedSplats?.lodSplats ?? mesh.extSplats?.lodSplats ?? mesh.paged;\n if (splats) {\n const record = this.lodIds.get(splats);\n if (record) {\n record.lastTouched = now;\n } else {\n this.lodInitQueue.push(splats);\n }\n }\n }\n\n this.ensureLodWorker().tryExclusive(async (worker) => {\n if (hasPaged && !this.pager) {\n this.pager = new SplatPager({\n renderer: this.renderer,\n extSplats: this.pagedExtSplats,\n maxSplats: this.maxPagedSplats,\n numFetchers: this.numLodFetchers,\n });\n\n const { lodId } = (await worker.call(\"newLodTree\", {\n capacity: this.pager.maxSplats,\n })) as { lodId: number };\n this.pagerId = lodId;\n }\n\n // Assign pager to any new meshes that don't have one yet\n // (must run every frame, not just when pager is first created)\n if (this.pager) {\n for (const { mesh } of this.lodMeshes) {\n if (mesh.paged && !mesh.paged.pager) {\n mesh.paged.pager = this.pager;\n }\n }\n }\n\n if (this.lodInitQueue.length > 0) {\n const lodInitQueue = this.lodInitQueue;\n this.lodInitQueue = [];\n while (lodInitQueue.length > 0) {\n const splats = lodInitQueue.shift();\n if (splats) {\n await this.initLodTree(worker, splats);\n this.lodDirty = true;\n }\n }\n }\n\n if (this.pager) {\n const updates = this.pager.consumeLodTreeUpdates();\n\n for (const { splats, page, chunk, numSplats, lodTree } of updates) {\n const record = this.lodIds.get(splats);\n if (record) {\n if (lodTree && chunk === 0) {\n record.rootPage = page;\n }\n this.lodUpdates.push({\n lodId: record.lodId,\n pageBase: page * this.pager.pageSplats,\n chunkBase: chunk * this.pager.pageSplats,\n count: numSplats,\n lodTreeData: lodTree,\n });\n }\n }\n }\n\n if (this.lodUpdates.length > 0) {\n const lodUpdates = this.lodUpdates;\n this.lodUpdates = [];\n await worker.call(\"updateLodTrees\", { ranges: lodUpdates });\n this.lodDirty = true;\n }\n\n if (this.lodDirty) {\n const now = performance.now();\n const deltaPred = new THREE.Vector3();\n if (this.lastLod) {\n const deltaTime = Math.max(1, now - this.lastLod.timestamp);\n deltaPred\n .copy(viewPos)\n .sub(this.lastLod.pos)\n .multiplyScalar(this.lastTraverseTime / deltaTime);\n }\n this.lastLod = {\n pos: viewPos,\n quat: viewQuat,\n pixelScaleLimit,\n maxSplats,\n timestamp: now,\n };\n this.lodDirty = false;\n\n await this.updateLodInstances(\n worker,\n deltaPred,\n lodMeshes,\n maxSplats,\n viewPos,\n viewQuat,\n pixelScaleLimit,\n );\n this.currentLod = this.lastLod;\n this.setDirty();\n }\n\n await this.cleanupLodTrees(worker);\n });\n }\n\n private async initLodTree(\n worker: SplatWorker,\n splats: PackedSplats | ExtSplats | PagedSplats,\n ) {\n if (splats instanceof PackedSplats || splats instanceof ExtSplats) {\n const { lodId } = (await worker.call(\"initLodTree\", {\n numSplats: splats.numSplats ?? 0,\n lodTree: (splats.extra.lodTree as Uint32Array).slice(),\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** initLodTree\", lodId, splats.extra.lodTree, splats);\n } else {\n const { lodId } = (await worker.call(\"newSharedLodTree\", {\n lodId: this.pagerId,\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** newSharedLodTree\", lodId, this.pagerId, splats);\n }\n }\n\n private pageSizeWarning = false;\n\n private async updateLodInstances(\n worker: SplatWorker,\n deltaPred: THREE.Vector3,\n lodMeshes: SplatMesh[],\n maxSplats: number,\n viewPos: THREE.Vector3,\n viewQuat: THREE.Quaternion,\n pixelScaleLimit: number,\n ) {\n // Commented out because it makes LoDing less stable\n // viewPos.add(deltaPred);\n\n const uuidToMesh: Map = new Map();\n const cameraToWorld = new THREE.Matrix4().compose(\n viewPos,\n viewQuat,\n new THREE.Vector3().setScalar(1),\n );\n\n const instances = lodMeshes.reduce(\n (instances, mesh) => {\n uuidToMesh.set(mesh.uuid, mesh);\n const viewToObject = mesh.matrixWorld\n .clone()\n .invert()\n .multiply(cameraToWorld);\n\n const splats =\n mesh.packedSplats?.lodSplats ??\n mesh.extSplats?.lodSplats ??\n mesh.paged;\n if (!splats) {\n return instances;\n }\n const record = this.lodIds.get(splats);\n if (!record) {\n return instances;\n }\n\n if (this.pager && mesh.paged && record.rootPage === undefined) {\n return instances;\n }\n\n instances[mesh.uuid] = {\n instanceId: mesh.uuid,\n lodId: record.lodId,\n rootPage: record.rootPage,\n viewToObjectCols: viewToObject.elements,\n lodScale: mesh.lodScale,\n behindFoveate: mesh.behindFoveate ?? this.behindFoveate,\n coneFov0: mesh.coneFov0 ?? this.coneFov0,\n coneFov: mesh.coneFov ?? this.coneFov,\n coneFoveate: mesh.coneFoveate ?? this.coneFoveate,\n };\n return instances;\n },\n {} as Record<\n string,\n {\n instanceId: string;\n lodId: number;\n rootPage?: number;\n viewToObjectCols: number[];\n lodScale: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n }\n >,\n );\n\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit: this.lastPixelLimit,\n instances,\n traverseMode: this.lodTraverseMode,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n chunks: [number, number][];\n pixelLimit?: number;\n };\n this.lastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices, chunks, pixelLimit } = result;\n this.lastPixelLimit = pixelLimit;\n const totalLodSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n // console.log(\n // `traverseLodTrees in ${this.lastTraverseTime} ms, pixelLimit=${pixelLimit}, totalLodSplats=${totalLodSplats}`,\n // );\n\n this.updateLodIndices(uuidToMesh, keyIndices);\n // console.log(\"chunks.length =\", chunks.length);\n\n if (this.pager) {\n this.pager.processUploads();\n\n const pagedMeshes = lodMeshes\n .map((mesh) => {\n if (!mesh.paged || !this.pager) {\n return null;\n }\n const meshPosition = mesh.getWorldPosition(new THREE.Vector3());\n return {\n splats: mesh.paged,\n distance: meshPosition.distanceTo(viewPos),\n };\n })\n .filter((result) => result !== null);\n\n if (!this.pageSizeWarning && pagedMeshes.length > this.pager.maxPages) {\n this.pageSizeWarning = true;\n console.warn(\n `# paged SplatMeshes exceeds maxPages: ${pagedMeshes.length} > ${this.pager.maxPages}`,\n );\n }\n\n // Fetch root chunk of each paged splats in priority of distance to camera\n pagedMeshes.sort((a, b) => a.distance - b.distance);\n this.pager.fetchPriority = pagedMeshes.map(({ splats }) => ({\n splats,\n chunk: 0,\n }));\n\n for (const [lodId, chunk] of chunks) {\n const splats = this.lodIdToSplats.get(lodId);\n if (splats instanceof PagedSplats) {\n if (chunk !== 0) {\n this.pager.fetchPriority.push({ splats, chunk });\n }\n }\n }\n\n this.pager.autoDrive = this.enableLodFetching;\n if (this.enableLodFetching) {\n this.pager.driveFetchers();\n }\n }\n\n if (\n this.lodRaycast &&\n performance.now() - this.lastLodRaycastTime >= this.lodRaycastIntervalMs\n ) {\n this.lastLodRaycastTime = performance.now();\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats: Math.min(this.lodRaycast, Math.round(totalLodSplats * 0.1)),\n pixelScaleLimit,\n instances,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n };\n const raycastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices } = result;\n const totalRaycastSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n mesh.raycastIndices = countIndices;\n // console.log(\"Set raycast indices\", uuid, countIndices.numSplats, countIndices.indices.length);\n }\n // console.log(`raycast traverse in ${raycastTraverseTime} ms, totalRaycastSplats=${totalRaycastSplats}`);\n }\n }\n\n private async cleanupLodTrees(worker: SplatWorker) {\n const DISPOSE_TIMEOUT_MS = 3000;\n const now = performance.now();\n\n let oldest = null;\n for (const [splats, record] of this.lodIds.entries()) {\n if (oldest == null || record.lastTouched < oldest.lastTouched) {\n oldest = {\n splats,\n lastTouched: record.lastTouched,\n lodId: record.lodId,\n };\n }\n }\n if (!oldest || oldest.lastTouched > now - DISPOSE_TIMEOUT_MS) {\n return;\n }\n\n this.lodIds.delete(oldest.splats);\n this.lodIdToSplats.delete(oldest.lodId);\n\n for (const [mesh, instance] of this.lodInstances.entries()) {\n if (instance.lodId === oldest.lodId) {\n instance.texture.dispose();\n this.lodInstances.delete(mesh);\n }\n }\n\n if (oldest.splats instanceof PagedSplats) {\n this.pager?.removeSplats(oldest.splats);\n }\n\n await worker.call(\"disposeLodTree\", { lodId: oldest.lodId });\n // console.log(\"disposed lodTree\", oldest.lodId);\n }\n\n private updateLodIndices(\n uuidToMesh: Map,\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >,\n ) {\n // console.log(\"updateLodIndices\", keyIndices);\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const { lodId, numSplats, indices } = countIndices;\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n\n if (mesh.paged) {\n mesh.paged.update(numSplats, indices);\n // console.log(\"*** paged.update\", lodId, numSplats, indices.slice(0, 5).join(\",\"));\n } else {\n let instance = this.lodInstances.get(mesh);\n if (instance) {\n if (indices.length > instance.indices.length) {\n instance.texture.dispose();\n instance = undefined;\n }\n }\n\n const rows = Math.ceil(indices.length / 16384);\n if (!instance) {\n const capacity = rows * 16384;\n if (indices.length !== capacity) {\n throw new Error(\"Indices length != capacity\");\n }\n const texture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n instance = { lodId, numSplats, indices, texture };\n this.lodInstances.set(mesh, instance);\n } else {\n instance.numSplats = numSplats;\n // instance.indices.set(indices.subarray(0, numSplats));\n\n const renderer = this.renderer;\n const gl = renderer.getContext() as WebGL2RenderingContext;\n if (renderer.properties.has(instance.texture)) {\n const props = renderer.properties.get(instance.texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"lodIndices texture not found\");\n }\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n indices,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n }\n mesh.updateMappingVersion();\n }\n }\n\n private async readbackDepth({\n current,\n renderer,\n numSplats,\n readback,\n }: {\n current: SplatAccumulator;\n renderer: THREE.WebGLRenderer;\n numSplats: number;\n readback: Uint32Array;\n }) {\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!current.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(readback.buffer);\n const renderState = this.saveRenderState(renderer);\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < numSplats) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((numSplats - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n renderer.setRenderTarget(current.target, layer);\n\n const promise = renderer.readRenderTargetPixelsAsync(\n current.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n undefined,\n current.extSplats ? 2 : 1,\n );\n promises.push(promise);\n\n if (this.flushAfterRead) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.resetRenderState(renderer, renderState);\n return Promise.all(promises).then(() => readback);\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private static emptyOrdering = (() => {\n const numIndices = 4 * 4096 * 1;\n const emptyArray = new Uint32Array(numIndices);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n render(scene: THREE.Scene, camera: THREE.Camera) {\n try {\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n }\n\n renderTarget({\n scene,\n camera,\n }: { scene: THREE.Scene; camera: THREE.Camera }): THREE.WebGLRenderTarget {\n const target = this.backTarget ?? this.target;\n if (!target) {\n throw new Error(\"No target\");\n }\n\n const previousTarget = this.renderer.getRenderTarget();\n try {\n this.renderer.setRenderTarget(target);\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n this.renderer.setRenderTarget(previousTarget);\n }\n\n if (target !== this.target) {\n // Swap back buffer and target\n [this.target, this.backTarget] = [this.backTarget, this.target];\n }\n return target;\n }\n\n // Read back the previously rendered target image as a Uint8Array of packed\n // RGBA values (in that order). Subsequent calls to this.readTarget()\n // will reuse the same buffers to minimize memory allocations.\n async readTarget(): Promise {\n if (!this.target) {\n throw new Error(\"Must initialize with target\");\n }\n const { width, height } = this.target;\n const byteSize = width * height * 4;\n if (!this.superPixels || this.superPixels.length < byteSize) {\n this.superPixels = new Uint8Array(byteSize);\n // console.log(`Allocated superPixels: ${width}x${height} = ${pixelCount} bytes`);\n }\n const superPixels = this.superPixels;\n\n await this.renderer.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n width,\n height,\n superPixels,\n );\n\n const { superXY } = this;\n if (superXY === 1) {\n return superPixels;\n }\n\n const subWidth = width / superXY;\n const subHeight = height / superXY;\n const subSize = subWidth * subHeight * 4;\n if (!this.targetPixels || this.targetPixels.length < subSize) {\n this.targetPixels = new Uint8Array(subSize);\n // console.log(`Allocated targetPixels: ${subWidth}x${subHeight} = ${subSize} bytes`);\n }\n const targetPixels = this.targetPixels;\n\n const super2 = superXY * superXY;\n for (let y = 0; y < subHeight; y++) {\n const row = y * subWidth;\n for (let x = 0; x < subWidth; x++) {\n const superCol = x * superXY;\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n for (let sy = 0; sy < superXY; sy++) {\n const superRow = (y * superXY + sy) * width;\n for (let sx = 0; sx < superXY; sx++) {\n const superIndex = (superRow + superCol + sx) * 4;\n r += superPixels[superIndex];\n g += superPixels[superIndex + 1];\n b += superPixels[superIndex + 2];\n a += superPixels[superIndex + 3];\n }\n }\n const pixelIndex = (row + x) * 4;\n targetPixels[pixelIndex] = r / super2;\n targetPixels[pixelIndex + 1] = g / super2;\n targetPixels[pixelIndex + 2] = b / super2;\n targetPixels[pixelIndex + 3] = a / super2;\n }\n }\n return targetPixels;\n }\n\n async renderReadTarget({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }): Promise {\n this.renderTarget({ scene, camera });\n return this.readTarget();\n }\n\n // Data and buffers used for environment map rendering\n private static cubeRender: {\n target: THREE.WebGLCubeRenderTarget;\n cubeCamera: THREE.CubeCamera;\n near: number;\n far: number;\n } | null = null;\n private static pmrem: THREE.PMREMGenerator | null = null;\n\n // Renders out the scene to a cube map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces.\n async renderCubeMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n filter = false,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n filter: boolean;\n }): Promise {\n if (\n !SparkRenderer.cubeRender ||\n SparkRenderer.cubeRender.target.width !== size ||\n SparkRenderer.cubeRender.near !== near ||\n SparkRenderer.cubeRender.far !== far\n ) {\n if (SparkRenderer.cubeRender) {\n SparkRenderer.cubeRender.target.dispose();\n }\n const target = new THREE.WebGLCubeRenderTarget(size, {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n generateMipmaps: filter,\n minFilter: filter ? THREE.LinearMipMapLinearFilter : THREE.LinearFilter,\n magFilter: THREE.LinearFilter,\n colorSpace: filter ? THREE.LinearSRGBColorSpace : THREE.SRGBColorSpace,\n });\n const cubeCamera = new THREE.CubeCamera(near, far, target);\n SparkRenderer.cubeRender = { target, cubeCamera, near, far };\n }\n\n const { target, cubeCamera } = SparkRenderer.cubeRender;\n cubeCamera.position.copy(worldCenter);\n\n // Save the visibility state of objects we want to hide before render\n const objectVisibility = new Map();\n for (const object of hideObjects) {\n objectVisibility.set(object, object.visible);\n object.visible = false;\n }\n\n if (update) {\n const tempCamera = new THREE.Camera();\n tempCamera.position.copy(worldCenter);\n await this.update({ scene, camera: tempCamera });\n }\n\n try {\n SparkRenderer.sparkOverride = this;\n // Update the CubeCamera, which performs 6 cube face renders\n cubeCamera.update(this.renderer, scene);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n\n // Restore viewpoint to default and object visibility\n for (const [object, visible] of objectVisibility.entries()) {\n object.visible = visible;\n }\n\n return target.texture;\n }\n\n async readCubeTargets(): Promise {\n if (!SparkRenderer.cubeRender) {\n throw new Error(\"No cube render\");\n }\n\n const textures = SparkRenderer.cubeRender.target.texture;\n const promises = [];\n const buffers = [];\n\n for (let i = 0; i < textures.images.length; ++i) {\n const { width, height } = textures.images[i];\n const byteSize = width * height * 4;\n const readback = new Uint8Array(byteSize);\n buffers.push(readback);\n const promise = this.renderer.readRenderTargetPixelsAsync(\n SparkRenderer.cubeRender.target,\n 0,\n 0,\n width,\n height,\n readback,\n i,\n );\n promises.push(promise);\n }\n\n await Promise.all(promises);\n return buffers;\n }\n\n // Renders out the scene to an environment map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces,\n // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture\n // that can assigned directly to a THREE.MeshStandardMaterial.envMap property.\n async renderEnvMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n }): Promise {\n const cubeTexture = await this.renderCubeMap({\n scene,\n worldCenter,\n size,\n near,\n far,\n hideObjects,\n update,\n filter: true,\n });\n // Pre-filter the cube map using THREE.PMREMGenerator if requested\n if (!SparkRenderer.pmrem) {\n SparkRenderer.pmrem = new THREE.PMREMGenerator(this.renderer);\n }\n\n return SparkRenderer.pmrem?.fromCubemap(cubeTexture).texture;\n }\n\n // Utility function to recursively set the envMap property for any\n // THREE.MeshStandardMaterial within the subtree of root.\n recurseSetEnvMap(root: THREE.Object3D, envMap: THREE.Texture) {\n root.traverse((node) => {\n if (node instanceof THREE.Mesh) {\n if (Array.isArray(node.material)) {\n for (const material of node.material) {\n if (material instanceof THREE.MeshStandardMaterial) {\n material.envMap = envMap;\n }\n }\n } else {\n if (node.material instanceof THREE.MeshStandardMaterial) {\n node.material.envMap = envMap;\n }\n }\n }\n });\n }\n\n async getLodTreeLevel(\n splats: SplatMesh,\n level: number,\n pageColoring = false,\n ) {\n const instance = this.lodInstances.get(splats);\n if (!instance) {\n return null;\n }\n\n const result = await this.ensureLodWorker().exclusive(async (worker) => {\n return (await worker.call(\"getLodTreeLevel\", {\n lodId: instance.lodId,\n level,\n })) as { indices: Uint32Array };\n });\n\n if (splats.packedSplats?.lodSplats) {\n const newSplats = splats.packedSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ packedSplats: newSplats });\n }\n if (splats.extSplats?.lodSplats) {\n const newSplats = splats.extSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ extSplats: newSplats });\n }\n throw new Error(\n \"Only LoD-enabled PackedSplats and ExtSplats are supported\",\n );\n }\n\n get premultipliedAlpha(): boolean {\n return this.material.premultipliedAlpha;\n }\n\n set premultipliedAlpha(value: boolean) {\n if (this.material.premultipliedAlpha !== value) {\n this.material.premultipliedAlpha = value;\n this.material.needsUpdate = true;\n }\n }\n}\n\nfunction checkIsXRRenderTarget(renderTarget: THREE.RenderTarget | null) {\n return (renderTarget as unknown as Record)?.isXRRenderTarget;\n}\n","// PLY file format reader\n\nimport { USE_COMPILED_PARSER_FUNCTION } from \"./defines\";\n\nconst PLY_PROPERTY_TYPES = [\n \"char\",\n \"uchar\",\n \"short\",\n \"ushort\",\n \"int\",\n \"uint\",\n \"float\",\n \"double\",\n] as const;\nexport type PlyPropertyType = (typeof PLY_PROPERTY_TYPES)[number];\n\nexport type PlyElement = {\n name: string;\n count: number;\n properties: Record;\n};\n\nexport type PlyProperty = {\n isList: boolean;\n type: PlyPropertyType;\n countType?: PlyPropertyType;\n};\n\n// Callback for parseSplats base Gsplat data\nexport type SplatCallback = (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) => void;\n\n// Callback for parseSplats SH coefficients\nexport type SplatShCallback = (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n) => void;\n\n// A PlyReader is used to parse PLY files for Gsplat data.\n// It takes a Uint8Array/ArrayBuffer as input fileBytes, parses the text header,\n// and provides a method parseData to iterate over the entire binary data\n// efficiently, or parseSplats to iterate over Gsplat data.\n\nexport class PlyReader {\n fileBytes: Uint8Array;\n header = \"\";\n littleEndian = true;\n elements: Record = {};\n comments: string[] = [];\n data: DataView | null = null;\n static defaultPointScale = 0.001;\n\n numSplats = 0;\n\n // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n }\n\n // Identify and parse the PLY text header (assumed to be <64KB in size).\n // this.elements will contain all the elements in the file, typically\n // \"vertex\" contains the Gsplat data.\n async parseHeader() {\n const bufferStream = new ReadableStream({\n start: (\n controller: ReadableStreamController>,\n ) => {\n // Assume the header is less than 64KB\n controller.enqueue(this.fileBytes.slice(0, 65536));\n controller.close();\n },\n });\n const decoder = bufferStream\n .pipeThrough(new TextDecoderStream())\n .getReader();\n\n // Find the end of the text section of the PLY file\n this.header = \"\";\n const headerTerminator = \"end_header\\n\";\n while (true) {\n const { value, done } = await decoder.read();\n if (done) {\n throw new Error(\"Failed to read header\");\n }\n\n this.header += value as string;\n const endHeader = this.header.indexOf(headerTerminator);\n if (endHeader >= 0) {\n this.header = this.header.slice(0, endHeader + headerTerminator.length);\n break;\n }\n }\n // Partition the file into header and binary data\n const headerLen = new TextEncoder().encode(this.header).length;\n this.data = new DataView(this.fileBytes.buffer, headerLen);\n\n this.elements = {};\n let curElement: PlyElement | null = null;\n this.comments = [];\n\n this.header\n .trim()\n .split(\"\\n\")\n .forEach((line: string, lineIndex: number) => {\n const trimmedLine = line.trim();\n if (lineIndex === 0) {\n if (trimmedLine !== \"ply\") {\n throw new Error(\"Invalid PLY header\");\n }\n return;\n }\n if (trimmedLine.length === 0) {\n return; // Skip empty lines\n }\n\n const fields = trimmedLine.split(\" \");\n switch (fields[0]) {\n case \"format\":\n if (fields[1] === \"binary_little_endian\") {\n this.littleEndian = true;\n } else if (fields[1] === \"binary_big_endian\") {\n this.littleEndian = false;\n } else {\n // ascii formats not supported\n throw new Error(`Unsupported PLY format: ${fields[1]}`);\n }\n if (fields[2] !== \"1.0\") {\n throw new Error(`Unsupported PLY version: ${fields[2]}`);\n }\n break;\n case \"end_header\":\n break;\n case \"comment\":\n this.comments.push(trimmedLine.slice(\"comment \".length));\n break;\n case \"element\": {\n const name = fields[1];\n curElement = {\n name,\n count: Number.parseInt(fields[2]),\n properties: {},\n };\n this.elements[name] = curElement;\n break;\n }\n case \"property\":\n if (curElement == null) {\n throw new Error(\"Property must be inside an element\");\n }\n if (fields[1] === \"list\") {\n curElement.properties[fields[4]] = {\n isList: true,\n type: fields[3] as PlyPropertyType,\n countType: fields[2] as PlyPropertyType,\n };\n } else {\n curElement.properties[fields[2]] = {\n isList: false,\n type: fields[1] as PlyPropertyType,\n };\n }\n break;\n default:\n // console.warn(`Skipping unsupported PLY keyword: ${fields[0]}`);\n }\n });\n\n if (this.elements.vertex) {\n this.numSplats = this.elements.vertex.count;\n }\n }\n\n parseData(\n elementCallback: (\n element: PlyElement,\n ) =>\n | null\n | ((index: number, item: Record) => void),\n ) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No data to parse\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const item = createEmptyItem(properties);\n // Construct a parse function\n const parseFn = createParseFn(properties, this.littleEndian);\n\n // Parse all the items in the element\n const callback = elementCallback(element) ?? (() => {});\n for (let index = 0; index < count; index++) {\n offset = parseFn(data, offset, item);\n callback(index, item);\n }\n }\n }\n\n // Parse all the Gsplat data in the PLY file in go, invoking the given\n // callbacks for each Gsplat.\n parseSplats(splatCallback: SplatCallback, shCallback?: SplatShCallback) {\n if (this.elements.vertex == null) {\n throw new Error(\"No vertex element found\");\n }\n\n let isSuperSplat = false;\n const ssChunks: SSChunk[] = [];\n\n let numSh = 0;\n let sh1Props: number[] = [];\n let sh2Props: number[] = [];\n let sh3Props: number[] = [];\n let sh1: Float32Array | undefined = undefined;\n let sh2: Float32Array | undefined = undefined;\n let sh3: Float32Array | undefined = undefined;\n\n function prepareSh() {\n // Prepare SH coefficient names and arrays for numSh total SH levels\n const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh];\n sh1Props = new Array(3)\n .fill(null)\n .flatMap((_, k) => [0, 1, 2].map((_, d) => k + (d * num_f_rest) / 3));\n sh2Props = new Array(5)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 3 + k + (d * num_f_rest) / 3),\n );\n sh3Props = new Array(7)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 8 + k + (d * num_f_rest) / 3),\n );\n sh1 = numSh >= 1 ? new Float32Array(3 * 3) : undefined;\n sh2 = numSh >= 2 ? new Float32Array(5 * 3) : undefined;\n sh3 = numSh >= 3 ? new Float32Array(7 * 3) : undefined;\n }\n\n function ssShCallback(\n index: number,\n item: Record,\n ) {\n // Decode SH for SuperSplat compressed data\n if (!sh1) {\n throw new Error(\"Missing sh1\");\n }\n const sh = item.f_rest as number[];\n\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = (sh[sh1Props[i]] * 8) / 255 - 4;\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = (sh[sh2Props[i]] * 8) / 255 - 4;\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = (sh[sh3Props[i]] * 8) / 255 - 4;\n }\n }\n shCallback?.(index, sh1, sh2, sh3);\n }\n\n function initSuperSplat(element: PlyElement) {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n } = element.properties;\n if (\n !min_x ||\n !min_y ||\n !min_z ||\n !max_x ||\n !max_y ||\n !max_z ||\n !min_scale_x ||\n !min_scale_y ||\n !min_scale_z ||\n !max_scale_x ||\n !max_scale_y ||\n !max_scale_z\n ) {\n throw new Error(\"Missing PLY chunk properties\");\n }\n\n // SuperSplat chunks are used to quantize splat data, so we need to store them\n isSuperSplat = true;\n return (index: number, item: Record) => {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = item as Record;\n ssChunks.push({\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n });\n };\n }\n\n function decodeSuperSplat(element: PlyElement) {\n // Decode SuperSplat compressed data in vertex and sh elements\n if (shCallback && element.name === \"sh\") {\n numSh = getNumSh(element.properties);\n prepareSh();\n return ssShCallback;\n }\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n element.properties;\n if (\n !packed_position ||\n !packed_rotation ||\n !packed_scale ||\n !packed_color\n ) {\n throw new Error(\n \"Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color\",\n );\n }\n\n const SQRT2 = Math.sqrt(2);\n\n return (index: number, item: Record) => {\n // SuperSplat data are quantized within chunks with 256 Gsplats each\n const chunk = ssChunks[index >>> 8];\n if (chunk == null) {\n throw new Error(\"Missing PLY chunk\");\n }\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = chunk;\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n item as Record;\n\n const x =\n (((packed_position >>> 21) & 2047) / 2047) * (max_x - min_x) + min_x;\n const y =\n (((packed_position >>> 11) & 1023) / 1023) * (max_y - min_y) + min_y;\n const z = ((packed_position & 2047) / 2047) * (max_z - min_z) + min_z;\n\n const r0 = (((packed_rotation >>> 20) & 1023) / 1023 - 0.5) * SQRT2;\n const r1 = (((packed_rotation >>> 10) & 1023) / 1023 - 0.5) * SQRT2;\n const r2 = ((packed_rotation & 1023) / 1023 - 0.5) * SQRT2;\n const rr = Math.sqrt(Math.max(0, 1.0 - r0 * r0 - r1 * r1 - r2 * r2));\n\n const rOrder = packed_rotation >>> 30;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n\n const scaleX = Math.exp(\n (((packed_scale >>> 21) & 2047) / 2047) *\n (max_scale_x - min_scale_x) +\n min_scale_x,\n );\n const scaleY = Math.exp(\n (((packed_scale >>> 11) & 1023) / 1023) *\n (max_scale_y - min_scale_y) +\n min_scale_y,\n );\n const scaleZ = Math.exp(\n ((packed_scale & 2047) / 2047) * (max_scale_z - min_scale_z) +\n min_scale_z,\n );\n\n const r =\n (((packed_color >>> 24) & 255) / 255) *\n ((max_r ?? 1) - (min_r ?? 0)) +\n (min_r ?? 0);\n const g =\n (((packed_color >>> 16) & 255) / 255) *\n ((max_g ?? 1) - (min_g ?? 0)) +\n (min_g ?? 0);\n const b =\n (((packed_color >>> 8) & 255) / 255) * ((max_b ?? 1) - (min_b ?? 0)) +\n (min_b ?? 0);\n const opacity = (packed_color & 255) / 255;\n\n splatCallback(\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n };\n }\n\n const elementCallback = (element: PlyElement) => {\n if (element.name === \"chunk\") {\n // \"chunk\" could conceivably be used for other formats, and we would\n // ideally check for the comment: Generated by SuperSplat 2.*\n // but gsplat also outputs this format without such a comment.\n // In order to support both, let's assume a \"chunk\" element should\n // be interpreted as this format.\n return initSuperSplat(element);\n }\n if (isSuperSplat) {\n return decodeSuperSplat(element);\n }\n\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const {\n x,\n y,\n z,\n scale_0,\n scale_1,\n scale_2,\n rot_0,\n rot_1,\n rot_2,\n rot_3,\n opacity,\n f_dc_0,\n f_dc_1,\n f_dc_2,\n red,\n green,\n blue,\n alpha,\n } = element.properties;\n\n if (!x || !y || !z) {\n throw new Error(\"Missing PLY properties: x, y, z\");\n }\n // Pure point cloud PLY files have no scales or rotations\n const hasScales = scale_0 && scale_1 && scale_2;\n const hasRots = rot_0 && rot_1 && rot_2 && rot_3;\n // Quantization scale factor for argb values\n const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1;\n const redDiv = red != null ? FIELD_SCALE[red.type] : 1;\n const greenDiv = green != null ? FIELD_SCALE[green.type] : 1;\n const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1;\n\n numSh = getNumSh(element.properties);\n prepareSh();\n\n return (index: number, item: Record) => {\n const scaleX = hasScales\n ? Math.exp(item.scale_0 as number)\n : PlyReader.defaultPointScale;\n const scaleY = hasScales\n ? Math.exp(item.scale_1 as number)\n : PlyReader.defaultPointScale;\n const scaleZ = hasScales\n ? Math.exp(item.scale_2 as number)\n : PlyReader.defaultPointScale;\n\n const quatX = hasRots ? (item.rot_1 as number) : 0;\n const quatY = hasRots ? (item.rot_2 as number) : 0;\n const quatZ = hasRots ? (item.rot_3 as number) : 0;\n const quatW = hasRots ? (item.rot_0 as number) : 1;\n\n const op =\n opacity != null\n ? 1.0 / (1.0 + Math.exp(-item.opacity as number))\n : alpha != null\n ? (item.alpha as number) / alphaDiv\n : 1.0;\n const r =\n f_dc_0 != null\n ? (item.f_dc_0 as number) * SH_C0 + 0.5\n : red != null\n ? (item.red as number) / redDiv\n : 1.0;\n const g =\n f_dc_1 != null\n ? (item.f_dc_1 as number) * SH_C0 + 0.5\n : green != null\n ? (item.green as number) / greenDiv\n : 1.0;\n const b =\n f_dc_2 != null\n ? (item.f_dc_2 as number) * SH_C0 + 0.5\n : blue != null\n ? (item.blue as number) / blueDiv\n : 1.0;\n\n splatCallback(\n index,\n item.x as number,\n item.y as number,\n item.z as number,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n op,\n r,\n g,\n b,\n );\n\n if (shCallback && sh1) {\n const sh = item.f_rest as number[];\n if (sh1) {\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = sh[sh1Props[i]];\n }\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = sh[sh2Props[i]];\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = sh[sh3Props[i]];\n }\n }\n shCallback(index, sh1, sh2, sh3);\n }\n };\n };\n\n this.parseData(elementCallback);\n }\n\n // Inject RGBA values into original PLY file, which can be used to modify\n // the color/opacity of the Gsplats and write out the modified PLY file.\n injectRgba(rgba: Uint8Array) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No parsed data\");\n }\n if (rgba.length !== this.numSplats * 4) {\n throw new Error(\"Invalid RGBA array length\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const parsers = [];\n\n let rgbaOffset = 0;\n const isVertex = elementName === \"vertex\";\n if (isVertex) {\n for (const name of [\"opacity\", \"f_dc_0\", \"f_dc_1\", \"f_dc_2\"]) {\n if (!properties[name] || properties[name].type !== \"float\") {\n throw new Error(`Can't injectRgba due to property: ${name}`);\n }\n }\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!property.isList) {\n if (isVertex) {\n if (\n propertyName === \"f_dc_0\" ||\n propertyName === \"f_dc_1\" ||\n propertyName === \"f_dc_2\"\n ) {\n const component = Number.parseInt(\n propertyName.slice(\"f_dc_\".length),\n );\n parsers.push(() => {\n // Inject DC coefficients\n const value =\n (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0;\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n } else if (propertyName === \"opacity\") {\n parsers.push(() => {\n // Inject opacity sigmoid, clamped to [-100, 100]\n const value = Math.max(\n -100,\n Math.min(\n 100,\n -Math.log(1.0 / (rgba[rgbaOffset + 3] / 255) - 1.0),\n ),\n );\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n }\n }\n parsers.push(() => {\n offset += FIELD_BYTES[property.type];\n });\n } else {\n parsers.push(() => {\n const length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n this.littleEndian,\n );\n offset += FIELD_BYTES[property.countType as PlyPropertyType];\n offset += length * FIELD_BYTES[property.type];\n });\n }\n }\n\n for (let index = 0; index < count; index++) {\n // Go through all the data and field parsers to compute offset\n for (const parser of parsers) {\n parser();\n }\n if (isVertex) {\n rgbaOffset += 4;\n }\n }\n }\n }\n}\n\nexport const SH_C0 = 0.28209479177387814;\n\ntype FieldParser = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n) => number;\ntype FieldSetter = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n) => void;\n\nconst PARSE_FIELD: Record = {\n char: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt8(offset);\n },\n uchar: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint8(offset);\n },\n short: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt16(offset, littleEndian);\n },\n ushort: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint16(offset, littleEndian);\n },\n int: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt32(offset, littleEndian);\n },\n uint: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint32(offset, littleEndian);\n },\n float: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat32(offset, littleEndian);\n },\n double: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat64(offset, littleEndian);\n },\n};\n\nconst SET_FIELD: Record = {\n char: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt8(offset, value);\n },\n uchar: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint8(offset, value);\n },\n short: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt16(offset, value, littleEndian);\n },\n ushort: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint16(offset, value, littleEndian);\n },\n int: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt32(offset, value, littleEndian);\n },\n uint: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint32(offset, value, littleEndian);\n },\n float: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat32(offset, value, littleEndian);\n },\n double: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat64(offset, value, littleEndian);\n },\n};\n\nconst FIELD_BYTES: Record = {\n char: 1,\n uchar: 1,\n short: 2,\n ushort: 2,\n int: 4,\n uint: 4,\n float: 4,\n double: 8,\n};\n\nconst FIELD_SCALE: Record = {\n char: 127,\n uchar: 255,\n short: 32767,\n ushort: 65535,\n int: 2147483647,\n uint: 4294967295,\n float: 1,\n double: 1,\n};\n\nconst NUM_F_REST_TO_NUM_SH: Record = {\n 0: 0,\n 9: 1,\n 24: 2,\n 45: 3,\n};\nconst NUM_SH_TO_NUM_F_REST: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nconst F_REST_REGEX = /^f_rest_([0-9]{1,2})$/;\n\nfunction createEmptyItem(\n properties: Record,\n): Record {\n const item: Record = {};\n for (const [propertyName, property] of Object.entries(properties)) {\n // Treat f_rest properties as a single array for performance\n if (F_REST_REGEX.test(propertyName)) {\n item.f_rest = new Array(getNumSh(properties));\n } else {\n item[propertyName] = property.isList ? [] : 0;\n }\n }\n return item;\n}\n\nfunction createParseFn(\n properties: Record,\n littleEndian: boolean,\n) {\n if (USE_COMPILED_PARSER_FUNCTION && safeToCompile(properties)) {\n return createCompiledParserFn(properties, littleEndian);\n }\n return createDynamicParserFn(properties, littleEndian);\n}\n\n// Detect if unsafe eval is allowed in the current execution context\nconst UNSAFE_EVAL_ALLOWED = (() => {\n try {\n new Function(\"return 42;\");\n } catch (e) {\n return false;\n }\n return true;\n})();\nconst PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/;\n\nfunction safeToCompile(properties: Record) {\n if (!UNSAFE_EVAL_ALLOWED) {\n return false;\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!PROPERTY_NAME_REGEX.test(propertyName)) {\n return false;\n }\n\n if (\n property.isList &&\n !PLY_PROPERTY_TYPES.includes(property.countType as PlyPropertyType)\n ) {\n return false;\n }\n\n if (!PLY_PROPERTY_TYPES.includes(property.type)) {\n return false;\n }\n }\n return true;\n}\n\nfunction createCompiledParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct the parser function source.\n const parserSrc: string[] = [\"let list;\"];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parserSrc.push(/*js*/ `\n item.f_rest[${fRestIndex}] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else if (!property.isList) {\n parserSrc.push(/*js*/ `\n item['${propertyName}'] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else {\n // Property is a list, so parse the count first\n parserSrc.push(/*js*/ `\n list = item['${propertyName}'];\n list.length = PARSE_FIELD['${property.countType}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.countType as PlyPropertyType]};\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n }\n `);\n }\n }\n parserSrc.push(\"return offset;\");\n\n const fn = new Function(\n \"data\",\n \"offset\",\n \"item\",\n \"PARSE_FIELD\",\n parserSrc.join(\"\\n\"),\n );\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => fn(data, offset, item, PARSE_FIELD);\n}\n\nfunction createDynamicParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct an array of parser function to parse each property in an item\n const parsers: Array<\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => number\n > = [];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n (item.f_rest as number[])[fRestIndex] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else if (!property.isList) {\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n item[propertyName] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else {\n // Property is a list, so parse the count first\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n const list = item[propertyName] as number[];\n list.length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n littleEndian,\n );\n let currentOffset =\n offset + FIELD_BYTES[property.countType as PlyPropertyType];\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD[property.type](\n data,\n currentOffset,\n littleEndian,\n );\n currentOffset += FIELD_BYTES[property.type];\n }\n return currentOffset;\n },\n );\n }\n }\n\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n let currentOffset = offset;\n for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) {\n currentOffset = parsers[parserIndex](data, currentOffset, item);\n }\n return currentOffset;\n };\n}\n\nfunction getNumSh(properties: Record) {\n let num_f_rest = 0;\n while (properties[`f_rest_${num_f_rest}`]) {\n num_f_rest += 1;\n }\n const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest];\n if (numSh == null) {\n throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`);\n }\n return numSh;\n}\n\ntype SSChunk = {\n min_x: number;\n min_y: number;\n min_z: number;\n max_x: number;\n max_y: number;\n max_z: number;\n min_scale_x: number;\n min_scale_y: number;\n min_scale_z: number;\n max_scale_x: number;\n max_scale_y: number;\n max_scale_z: number;\n min_r?: number;\n min_g?: number;\n min_b?: number;\n max_r?: number;\n max_g?: number;\n max_b?: number;\n};\n","import type { SplatEncoding } from \"./defines\";\nimport { computeMaxSplats, setPackedSplat } from \"./utils\";\n\nexport function decodeAntiSplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n) {\n const numSplats = Math.floor(fileBytes.length / 32); // 32 bytes per splat\n if (numSplats * 32 !== fileBytes.length) {\n throw new Error(\"Invalid .splat file size\");\n }\n initNumSplats(numSplats);\n\n const f32 = new Float32Array(fileBytes.buffer);\n for (let i = 0; i < numSplats; ++i) {\n const i32 = i * 32;\n const i8 = i * 8;\n const x = f32[i8 + 0];\n const y = f32[i8 + 1];\n const z = f32[i8 + 2];\n const scaleX = f32[i8 + 3];\n const scaleY = f32[i8 + 4];\n const scaleZ = f32[i8 + 5];\n const r = fileBytes[i32 + 24] / 255;\n const g = fileBytes[i32 + 25] / 255;\n const b = fileBytes[i32 + 26] / 255;\n const opacity = fileBytes[i32 + 27] / 255;\n const quatW = (fileBytes[i32 + 28] - 128) / 128;\n const quatX = (fileBytes[i32 + 29] - 128) / 128;\n const quatY = (fileBytes[i32 + 30] - 128) / 128;\n const quatZ = (fileBytes[i32 + 31] - 128) / 128;\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n }\n}\n\nexport function unpackAntiSplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n} {\n let numSplats = 0;\n let maxSplats = 0;\n let packedArray = new Uint32Array(0);\n decodeAntiSplat(\n fileBytes,\n (cbNumSplats) => {\n numSplats = cbNumSplats;\n maxSplats = computeMaxSplats(numSplats);\n packedArray = new Uint32Array(maxSplats * 4);\n },\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n setPackedSplat(\n packedArray,\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n },\n );\n return { packedArray, numSplats };\n}\n","import type { SplatEncoding } from \"./defines\";\nimport {\n computeMaxSplats,\n encodeSh1Rgb,\n encodeSh2Rgb,\n encodeSh3Rgb,\n fromHalf,\n setPackedSplat,\n} from \"./utils\";\n\ntype KsplatCompression = {\n bytesPerCenter: number;\n bytesPerScale: number;\n bytesPerRotation: number;\n bytesPerColor: number;\n bytesPerSphericalHarmonicsComponent: number;\n scaleOffsetBytes: number;\n rotationOffsetBytes: number;\n colorOffsetBytes: number;\n sphericalHarmonicsOffsetBytes: number;\n scaleRange: number;\n};\n\nconst KSPLAT_COMPRESSION: Record = {\n 0: {\n bytesPerCenter: 12,\n bytesPerScale: 12,\n bytesPerRotation: 16,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 4,\n scaleOffsetBytes: 12,\n rotationOffsetBytes: 24,\n colorOffsetBytes: 40,\n sphericalHarmonicsOffsetBytes: 44,\n scaleRange: 1,\n },\n 1: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 2,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n 2: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 1,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n};\n\nconst KSPLAT_SH_DEGREE_TO_COMPONENTS: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nexport function decodeKsplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n) {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n initNumSplats(numSplats);\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n\n if (sphericalHarmonicsDegree >= 1 && sh1) {\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n if (sh2) {\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n }\n if (sh3) {\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n sectionBase += storageSizeBytes;\n }\n}\n\nexport function unpackKsplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n} {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n setPackedSplat(\n packedArray,\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n\n if (sphericalHarmonicsDegree >= 1) {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n encodeSh1Rgb(extra.sh1 as Uint32Array, i, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n encodeSh2Rgb(extra.sh2 as Uint32Array, i, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n encodeSh3Rgb(extra.sh3 as Uint32Array, i, sh3, splatEncoding);\n }\n }\n }\n sectionBase += storageSizeBytes;\n }\n return { packedArray, numSplats, extra };\n}\n","import * as THREE from \"three\";\nimport {\n SplatData,\n type TranscodeSpzInput,\n getSplatFileType,\n getSplatFileTypeFromPath,\n} from \"./SplatLoader\";\nimport { GunzipReader, fromHalf, normalize } from \"./utils\";\n\nimport { decodeAntiSplat } from \"./antisplat\";\nimport { SplatFileType } from \"./defines\";\nimport { decodeKsplat } from \"./ksplat\";\nimport { PlyReader } from \"./ply\";\n\n// SPZ file format reader\n\nexport class SpzReader {\n fileBytes: Uint8Array;\n reader: GunzipReader;\n\n version = -1;\n numSplats = 0;\n shDegree = 0;\n fractionalBits = 0;\n flags = 0;\n flagAntiAlias = false;\n flagLod = false;\n reserved = 0;\n headerParsed = false;\n parsed = false;\n\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n this.reader = new GunzipReader({\n fileBytes: this.fileBytes as Uint8Array,\n });\n }\n\n async parseHeader() {\n if (this.headerParsed) {\n throw new Error(\"SPZ file header already parsed\");\n }\n\n const header = new DataView((await this.reader.read(16)).buffer);\n if (header.getUint32(0, true) !== 0x5053474e) {\n throw new Error(\"Invalid SPZ file\");\n }\n this.version = header.getUint32(4, true);\n if (this.version < 1 || this.version > 3) {\n throw new Error(`Unsupported SPZ version: ${this.version}`);\n }\n\n this.numSplats = header.getUint32(8, true);\n this.shDegree = header.getUint8(12);\n this.fractionalBits = header.getUint8(13);\n this.flags = header.getUint8(14);\n this.flagAntiAlias = (this.flags & 0x01) !== 0;\n this.flagLod = (this.flags & 0x80) !== 0;\n this.reserved = header.getUint8(15);\n this.headerParsed = true;\n this.parsed = false;\n }\n\n async parseSplats(\n centerCallback?: (index: number, x: number, y: number, z: number) => void,\n alphaCallback?: (index: number, alpha: number) => void,\n rgbCallback?: (index: number, r: number, g: number, b: number) => void,\n scalesCallback?: (\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n ) => void,\n quatCallback?: (\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n {\n childCounts,\n childStarts,\n }: {\n childCounts?: (index: number, count: number) => void;\n childStarts?: (index: number, start: number) => void;\n } = {},\n ) {\n if (!this.headerParsed) {\n throw new Error(\"SPZ file header must be parsed first\");\n }\n if (this.parsed) {\n throw new Error(\"SPZ file already parsed\");\n }\n this.parsed = true;\n\n if (this.version === 1) {\n // float16 centers\n const centerBytes = await this.reader.read(this.numSplats * 3 * 2);\n const centerUint16 = new Uint16Array(centerBytes.buffer);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const x = fromHalf(centerUint16[i3]);\n const y = fromHalf(centerUint16[i3 + 1]);\n const z = fromHalf(centerUint16[i3 + 2]);\n centerCallback?.(i, x, y, z);\n }\n } else if (this.version === 2 || this.version === 3) {\n // 24-bit fixed-point centers\n const fixed = 1 << this.fractionalBits;\n const centerBytes = await this.reader.read(this.numSplats * 3 * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i9 = i * 9;\n const x =\n (((centerBytes[i9 + 2] << 24) |\n (centerBytes[i9 + 1] << 16) |\n (centerBytes[i9] << 8)) >>\n 8) /\n fixed;\n const y =\n (((centerBytes[i9 + 5] << 24) |\n (centerBytes[i9 + 4] << 16) |\n (centerBytes[i9 + 3] << 8)) >>\n 8) /\n fixed;\n const z =\n (((centerBytes[i9 + 8] << 24) |\n (centerBytes[i9 + 7] << 16) |\n (centerBytes[i9 + 6] << 8)) >>\n 8) /\n fixed;\n centerCallback?.(i, x, y, z);\n }\n } else {\n throw new Error(\"Unreachable\");\n }\n\n {\n const bytes = await this.reader.read(this.numSplats);\n for (let i = 0; i < this.numSplats; i++) {\n alphaCallback?.(i, bytes[i] / 255);\n }\n }\n {\n const rgbBytes = await this.reader.read(this.numSplats * 3);\n const scale = SH_C0 / 0.15;\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const r = (rgbBytes[i3] / 255 - 0.5) * scale + 0.5;\n const g = (rgbBytes[i3 + 1] / 255 - 0.5) * scale + 0.5;\n const b = (rgbBytes[i3 + 2] / 255 - 0.5) * scale + 0.5;\n rgbCallback?.(i, r, g, b);\n }\n }\n {\n const scalesBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const scaleX = Math.exp(scalesBytes[i3] / 16 - 10);\n const scaleY = Math.exp(scalesBytes[i3 + 1] / 16 - 10);\n const scaleZ = Math.exp(scalesBytes[i3 + 2] / 16 - 10);\n scalesCallback?.(i, scaleX, scaleY, scaleZ);\n }\n }\n if (this.version === 3) {\n // Version 3 uses a trick called \"smallest three\" to compress the rotation quaternions\n // achieving better precision. \"Optimizing orientation\" section at https://gafferongames.com/post/snapshot_compression/ A quaternion length must be 1: x^2+y^2+z^2+w^2 = 1\n // We can drop one component and reconstruct it with the identity above.\n // Largest component is dropped for best numerical precision.\n // Quaternion stored in 32 bits\n // 10 bits singed integer for each of the 3 components + 2 bits indicating the index of dropped component.\n // vs 8 bits for each component uncompressed (spz version < 3)\n // Max Value after extracting largest component v is another component v\n // (v,v,0,0)\n // v^2 + v^2 = 1\n // v = 1 / sqrt(2);\n const maxValue = 1 / Math.sqrt(2); // 0.7071\n const quatBytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 4;\n const quaternion = [0, 0, 0, 0];\n const values = [\n quatBytes[i3],\n quatBytes[i3 + 1],\n quatBytes[i3 + 2],\n quatBytes[i3 + 3],\n ];\n // all values are packed in 32 bits (10 per each of 3 components + 2 bits of index of larged value)\n const combinedValues =\n values[0] + (values[1] << 8) + (values[2] << 16) + (values[3] << 24);\n // each component value is 9 bits + sign (1 bit)\n const valueMask = (1 << 9) - 1;\n // extract index of the largest element. 2 top bits.\n const largestIndex = combinedValues >>> 30;\n let remainingValues = combinedValues;\n let sumSquares = 0;\n\n for (let i = 3; i >= 0; --i) {\n if (i !== largestIndex) {\n // extract current value and sign.\n const value = remainingValues & valueMask;\n const sign = (remainingValues >>> 9) & 0x1;\n // each value is represented as 10 bits. Shift to next one.\n remainingValues = remainingValues >>> 10;\n // convert to range [0,1] and then to [0, 0.7071]\n quaternion[i] = maxValue * (value / valueMask);\n // apply sign.\n quaternion[i] = sign === 0 ? quaternion[i] : -quaternion[i];\n // accumulate the sum of squares\n sumSquares += quaternion[i] * quaternion[i];\n }\n }\n\n // quartenion length must be 1 (x^2+y^2+z^2+w^2 = 1)\n // so can reconstruct largest component from the other 3.\n // w = sqrt(1 - x^2 - y^2 - z^2);\n const square = 1 - sumSquares;\n quaternion[largestIndex] = Math.sqrt(Math.max(square, 0));\n\n quatCallback?.(\n i,\n quaternion[0],\n quaternion[1],\n quaternion[2],\n quaternion[3],\n );\n }\n } else {\n const quatBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const quatX = quatBytes[i3] / 127.5 - 1;\n const quatY = quatBytes[i3 + 1] / 127.5 - 1;\n const quatZ = quatBytes[i3 + 2] / 127.5 - 1;\n const quatW = Math.sqrt(\n Math.max(0, 1 - quatX * quatX - quatY * quatY - quatZ * quatZ),\n );\n quatCallback?.(i, quatX, quatY, quatZ, quatW);\n }\n }\n\n if (shCallback && this.shDegree >= 1) {\n const sh1 = new Float32Array(3 * 3);\n const sh2 = this.shDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 = this.shDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n const shBytes = await this.reader.read(\n this.numSplats * SH_DEGREE_TO_VECS[this.shDegree] * 3,\n );\n\n let offset = 0;\n for (let i = 0; i < this.numSplats; i++) {\n for (let j = 0; j < 9; ++j) {\n sh1[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 9;\n if (sh2) {\n for (let j = 0; j < 15; ++j) {\n sh2[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 15;\n }\n if (sh3) {\n for (let j = 0; j < 21; ++j) {\n sh3[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 21;\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n if (this.flagLod) {\n let bytes = await this.reader.read(this.numSplats * 2);\n for (let i = 0; i < this.numSplats; i++) {\n const i2 = i * 2;\n const count = bytes[i2] + (bytes[i2 + 1] << 8);\n childCounts?.(i, count);\n }\n\n bytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i4 = i * 4;\n const start =\n bytes[i4] +\n (bytes[i4 + 1] << 8) +\n (bytes[i4 + 2] << 16) +\n (bytes[i4 + 3] << 24);\n childStarts?.(i, start);\n }\n }\n }\n}\n\nconst SH_DEGREE_TO_VECS: Record = { 1: 3, 2: 8, 3: 15 };\nconst SH_C0 = 0.28209479177387814;\n\nexport const SPZ_MAGIC = 0x5053474e; // NGSP = Niantic gaussian splat\nexport const SPZ_VERSION = 3;\nexport const FLAG_ANTIALIASED = 0x1;\n\nexport class SpzWriter {\n buffer: ArrayBuffer;\n view: DataView;\n numSplats: number;\n shDegree: number;\n fractionalBits: number;\n fraction: number;\n flagAntiAlias: boolean;\n clippedCount = 0;\n\n constructor({\n numSplats,\n shDegree,\n fractionalBits = 12,\n flagAntiAlias = true,\n }: {\n numSplats: number;\n shDegree: number;\n fractionalBits?: number;\n flagAntiAlias?: boolean;\n }) {\n const splatSize =\n 9 + // Position\n 1 + // Opacity\n 3 + // Scale\n 3 + // DC-rgb\n 4 + // Rotation\n (shDegree >= 1 ? 9 : 0) +\n (shDegree >= 2 ? 15 : 0) +\n (shDegree >= 3 ? 21 : 0);\n const bufferSize = 16 + numSplats * splatSize;\n this.buffer = new ArrayBuffer(bufferSize);\n this.view = new DataView(this.buffer);\n\n this.view.setUint32(0, SPZ_MAGIC, true); // NGSP\n this.view.setUint32(4, SPZ_VERSION, true);\n this.view.setUint32(8, numSplats, true);\n this.view.setUint8(12, shDegree);\n this.view.setUint8(13, fractionalBits);\n this.view.setUint8(14, flagAntiAlias ? FLAG_ANTIALIASED : 0);\n this.view.setUint8(15, 0); // Reserved\n\n this.numSplats = numSplats;\n this.shDegree = shDegree;\n this.fractionalBits = fractionalBits;\n this.fraction = 1 << fractionalBits;\n this.flagAntiAlias = flagAntiAlias;\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n // Divide by this.fraction and round to nearest integer,\n // then write as 3-bytes per x then y then z.\n const xRounded = Math.round(x * this.fraction);\n const xInt = Math.max(-0x7fffff, Math.min(0x7fffff, xRounded));\n const yRounded = Math.round(y * this.fraction);\n const yInt = Math.max(-0x7fffff, Math.min(0x7fffff, yRounded));\n const zRounded = Math.round(z * this.fraction);\n const zInt = Math.max(-0x7fffff, Math.min(0x7fffff, zRounded));\n const clipped = xRounded !== xInt || yRounded !== yInt || zRounded !== zInt;\n if (clipped) {\n this.clippedCount += 1;\n // if (this.clippedCount < 10) {\n // // Write x y z also in hex\n // console.log(`Clipped ${index}: ${x}, ${y}, ${z} (0x${x.toString(16)}, 0x${y.toString(16)}, 0x${z.toString(16)}) -> ${xRounded}, ${yRounded}, ${zRounded} (0x${xRounded.toString(16)}, 0x${yRounded.toString(16)}, 0x${zRounded.toString(16)}) -> ${xInt}, ${yInt}, ${zInt} (0x${xInt.toString(16)}, 0x${yInt.toString(16)}, 0x${zInt.toString(16)})`);\n // }\n }\n const i9 = index * 9;\n const base = 16 + i9;\n this.view.setUint8(base, xInt & 0xff);\n this.view.setUint8(base + 1, (xInt >> 8) & 0xff);\n this.view.setUint8(base + 2, (xInt >> 16) & 0xff);\n this.view.setUint8(base + 3, yInt & 0xff);\n this.view.setUint8(base + 4, (yInt >> 8) & 0xff);\n this.view.setUint8(base + 5, (yInt >> 16) & 0xff);\n this.view.setUint8(base + 6, zInt & 0xff);\n this.view.setUint8(base + 7, (zInt >> 8) & 0xff);\n this.view.setUint8(base + 8, (zInt >> 16) & 0xff);\n }\n\n setAlpha(index: number, alpha: number) {\n const base = 16 + this.numSplats * 9 + index;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round(alpha * 255))),\n );\n }\n\n static scaleRgb(r: number) {\n const v = ((r - 0.5) / (SH_C0 / 0.15) + 0.5) * 255;\n return Math.max(0, Math.min(255, Math.round(v)));\n }\n\n setRgb(index: number, r: number, g: number, b: number) {\n const base = 16 + this.numSplats * 10 + index * 3;\n this.view.setUint8(base, SpzWriter.scaleRgb(r));\n this.view.setUint8(base + 1, SpzWriter.scaleRgb(g));\n this.view.setUint8(base + 2, SpzWriter.scaleRgb(b));\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n const base = 16 + this.numSplats * 13 + index * 3;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleX) + 10) * 16))),\n );\n this.view.setUint8(\n base + 1,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleY) + 10) * 16))),\n );\n this.view.setUint8(\n base + 2,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleZ) + 10) * 16))),\n );\n }\n\n setQuat(\n index: number,\n ...q: [number, number, number, number] // x, y, z, w\n ) {\n const base = 16 + this.numSplats * 16 + index * 4;\n\n const quat = normalize(q);\n\n // Find largest component\n let iLargest = 0;\n for (let i = 1; i < 4; ++i) {\n if (Math.abs(quat[i]) > Math.abs(quat[iLargest])) {\n iLargest = i;\n }\n }\n\n // Since -quat represents the same rotation as quat, transform the quaternion so the largest element\n // is positive. This avoids having to send its sign bit.\n const negate = quat[iLargest] < 0 ? 1 : 0;\n\n // Do compression using sign bit and 9-bit precision per element.\n let comp = iLargest;\n for (let i = 0; i < 4; ++i) {\n if (i !== iLargest) {\n const negbit = (quat[i] < 0 ? 1 : 0) ^ negate;\n const mag = Math.floor(\n ((1 << 9) - 1) * (Math.abs(quat[i]) / Math.SQRT1_2) + 0.5,\n );\n comp = (comp << 10) | (negbit << 9) | mag;\n }\n }\n\n this.view.setUint8(base, comp & 0xff);\n this.view.setUint8(base + 1, (comp >> 8) & 0xff);\n this.view.setUint8(base + 2, (comp >> 16) & 0xff);\n this.view.setUint8(base + 3, (comp >>> 24) & 0xff);\n }\n\n static quantizeSh(sh: number, bits: number) {\n const value = Math.round(sh * 128) + 128;\n const bucketSize = 1 << (8 - bits);\n const quantized =\n Math.floor((value + bucketSize / 2) / bucketSize) * bucketSize;\n return Math.max(0, Math.min(255, quantized));\n }\n\n setSh(\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) {\n const shVecs = SH_DEGREE_TO_VECS[this.shDegree] || 0;\n const base1 = 16 + this.numSplats * 20 + index * shVecs * 3;\n for (let j = 0; j < 9; ++j) {\n this.view.setUint8(base1 + j, SpzWriter.quantizeSh(sh1[j], 5));\n }\n if (sh2) {\n const base2 = base1 + 9;\n for (let j = 0; j < 15; ++j) {\n this.view.setUint8(base2 + j, SpzWriter.quantizeSh(sh2[j], 4));\n }\n if (sh3) {\n const base3 = base2 + 15;\n for (let j = 0; j < 21; ++j) {\n this.view.setUint8(base3 + j, SpzWriter.quantizeSh(sh3[j], 4));\n }\n }\n }\n }\n\n async finalize(): Promise {\n const input = new Uint8Array(this.buffer);\n const stream = new ReadableStream({\n async start(controller) {\n controller.enqueue(input);\n controller.close();\n },\n });\n const compressed = stream.pipeThrough(new CompressionStream(\"gzip\"));\n const response = new Response(compressed);\n const buffer = await response.arrayBuffer();\n console.log(\n \"Compressed\",\n input.length,\n \"bytes to\",\n buffer.byteLength,\n \"bytes\",\n );\n return new Uint8Array(buffer);\n }\n}\n\nexport async function transcodeSpz(input: TranscodeSpzInput) {\n const splats = new SplatData();\n const {\n inputs,\n clipXyz,\n maxSh,\n fractionalBits = 12,\n opacityThreshold,\n } = input;\n for (const input of inputs) {\n const scale = input.transform?.scale ?? 1;\n const quaternion = new THREE.Quaternion().fromArray(\n input.transform?.quaternion ?? [0, 0, 0, 1],\n );\n const translate = new THREE.Vector3().fromArray(\n input.transform?.translate ?? [0, 0, 0],\n );\n const clip = clipXyz\n ? new THREE.Box3(\n new THREE.Vector3().fromArray(clipXyz.min),\n new THREE.Vector3().fromArray(clipXyz.max),\n )\n : undefined;\n\n function transformPos(pos: THREE.Vector3) {\n pos.multiplyScalar(scale);\n pos.applyQuaternion(quaternion);\n pos.add(translate);\n return pos;\n }\n\n function transformScales(scales: THREE.Vector3) {\n scales.multiplyScalar(scale);\n return scales;\n }\n\n function transformQuaternion(quat: THREE.Quaternion) {\n quat.premultiply(quaternion);\n return quat;\n }\n\n function withinClip(p: THREE.Vector3) {\n return !clip || clip.containsPoint(p);\n }\n\n function withinOpacity(opacity: number) {\n return opacityThreshold !== undefined\n ? opacity >= opacityThreshold\n : true;\n }\n\n let fileType = input.fileType;\n if (!fileType) {\n fileType = getSplatFileType(input.fileBytes);\n if (!fileType && input.pathOrUrl) {\n fileType = getSplatFileTypeFromPath(input.pathOrUrl);\n }\n }\n switch (fileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes: input.fileBytes });\n await ply.parseHeader();\n let lastIndex: number | null = null;\n ply.parseSplats(\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (sh1 && lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n }\n if (sh2 && lastIndex !== null) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3 && lastIndex !== null) {\n splats.setSh3(lastIndex, sh3);\n }\n },\n );\n break;\n }\n case SplatFileType.SPZ: {\n const spz = new SpzReader({ fileBytes: input.fileBytes });\n await spz.parseHeader();\n const mapping = new Int32Array(spz.numSplats);\n mapping.fill(-1);\n const centers = new Float32Array(spz.numSplats * 3);\n const center = new THREE.Vector3();\n spz.parseSplats(\n (index, x, y, z) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n centers[index * 3] = center.x;\n centers[index * 3 + 1] = center.y;\n centers[index * 3 + 2] = center.z;\n },\n (index, alpha) => {\n center.fromArray(centers, index * 3);\n if (withinClip(center) && withinOpacity(alpha)) {\n mapping[index] = splats.pushSplat();\n splats.setCenter(mapping[index], center.x, center.y, center.z);\n splats.setOpacity(mapping[index], alpha);\n }\n },\n (index, r, g, b) => {\n if (mapping[index] >= 0) {\n splats.setColor(mapping[index], r, g, b);\n }\n },\n (index, scaleX, scaleY, scaleZ) => {\n if (mapping[index] >= 0) {\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(mapping[index], scales.x, scales.y, scales.z);\n }\n },\n (index, quatX, quatY, quatZ, quatW) => {\n if (mapping[index] >= 0) {\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n mapping[index],\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n }\n },\n (index, sh1, sh2, sh3) => {\n if (mapping[index] >= 0) {\n splats.setSh1(mapping[index], sh1);\n if (sh2) {\n splats.setSh2(mapping[index], sh2);\n }\n if (sh3) {\n splats.setSh3(mapping[index], sh3);\n }\n }\n },\n );\n break;\n }\n case SplatFileType.SPLAT:\n decodeAntiSplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n const index = splats.pushSplat();\n splats.setCenter(index, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(index, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n index,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(index, opacity);\n splats.setColor(index, r, g, b);\n }\n },\n );\n break;\n case SplatFileType.KSPLAT: {\n let lastIndex: number | null = null;\n decodeKsplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n if (sh2) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3) {\n splats.setSh3(lastIndex, sh3);\n }\n }\n },\n );\n break;\n }\n default:\n throw new Error(`transcodeSpz not implemented for ${fileType}`);\n }\n }\n\n const shDegree = Math.min(\n maxSh ?? 3,\n splats.sh3 ? 3 : splats.sh2 ? 2 : splats.sh1 ? 1 : 0,\n );\n const spz = new SpzWriter({\n numSplats: splats.numSplats,\n shDegree,\n fractionalBits,\n flagAntiAlias: true,\n });\n\n for (let i = 0; i < splats.numSplats; ++i) {\n const i3 = i * 3;\n const i4 = i * 4;\n spz.setCenter(\n i,\n splats.centers[i3],\n splats.centers[i3 + 1],\n splats.centers[i3 + 2],\n );\n spz.setScale(\n i,\n splats.scales[i3],\n splats.scales[i3 + 1],\n splats.scales[i3 + 2],\n );\n spz.setQuat(\n i,\n splats.quaternions[i4],\n splats.quaternions[i4 + 1],\n splats.quaternions[i4 + 2],\n splats.quaternions[i4 + 3],\n );\n spz.setAlpha(i, splats.opacities[i]);\n spz.setRgb(\n i,\n splats.colors[i3],\n splats.colors[i3 + 1],\n splats.colors[i3 + 2],\n );\n if (splats.sh1 && shDegree >= 1) {\n spz.setSh(\n i,\n splats.sh1.slice(i * 9, (i + 1) * 9),\n shDegree >= 2 && splats.sh2\n ? splats.sh2.slice(i * 15, (i + 1) * 15)\n : undefined,\n shDegree >= 3 && splats.sh3\n ? splats.sh3.slice(i * 21, (i + 1) * 21)\n : undefined,\n );\n }\n }\n\n const spzBytes = await spz.finalize();\n return { fileBytes: spzBytes, clippedCount: spz.clippedCount };\n}\n","import * as THREE from \"three\";\n\n// SplatSkinning is an experimental class that implements dual-quaternion\n// skeletal animation for Gsplats. A skeletal animation system consists\n// of a set of bones, each with a \"rest\" pose that consists of a position\n// and orientation, and a weighting of up to 4 bones for each Gsplat.\n// By moving and rotating the bones you can animate all the Gsplats like\n// your would for a normal 3D animated mesh.\n// Note that the dual-quaternion formulation assumes that mass/volume\n// is conserved through these transformations, which helps avoid common\n// issues with linear blend skinning such as joint collapse or bulging.\n// However, it is not as good a fit for animations that involve explicit\n// deformations, such as cartoon animations.\n\nimport type { SplatMesh } from \"./SplatMesh\";\nimport {\n CovSplat,\n Dyno,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize, newArray } from \"./utils\";\n\nexport enum SplatSkinningMode {\n DUAL_QUATERNION = \"dual_quaternion\",\n LINEAR_BLEND = \"linear_blend\",\n}\n\nexport type SplatSkinningOptions = {\n // Specifies the SplatMesh that will be animated.\n mesh: SplatMesh;\n // Overrides the number of Gsplats in the mesh that will be animated.\n // (default: mesh.numSplats)\n numSplats?: number;\n // Set the number of bones used to animate the SplatMesh, with a maximum\n // of 256 (in order to compactly encode the bone index). (default: 256)\n numBones?: number;\n // Set the mode of skinning to use.\n // (default: DUAL_QUATERNION)\n mode?: SplatSkinningMode;\n};\n\nexport class SplatSkinning {\n mesh: SplatMesh;\n numSplats: number;\n mode: SplatSkinningMode;\n\n // Store the skinning weights for each Gsplat, composed of a 4-vector\n // of bone indices and weight\n skinData: Uint16Array;\n skinTexture: THREE.DataArrayTexture;\n\n numBones: number;\n boneData: Float32Array;\n boneTexture: THREE.DataTexture;\n\n boneRestQuatPosScale: {\n quat: THREE.Quaternion;\n pos: THREE.Vector3;\n scale: THREE.Vector3;\n }[];\n boneRestInvMats: THREE.Matrix4[];\n\n uniform: DynoUniform;\n\n constructor(options: SplatSkinningOptions) {\n this.mesh = options.mesh;\n this.numSplats = options.numSplats ?? this.mesh.numSplats;\n this.mode = options.mode ?? SplatSkinningMode.DUAL_QUATERNION;\n\n const { width, height, depth, maxSplats } = getTextureSize(this.numSplats);\n this.skinData = new Uint16Array(maxSplats * 4);\n this.skinTexture = new THREE.DataArrayTexture(\n this.skinData,\n width,\n height,\n depth,\n );\n this.skinTexture.format = THREE.RGBAIntegerFormat;\n this.skinTexture.type = THREE.UnsignedShortType;\n this.skinTexture.internalFormat = \"RGBA16UI\";\n this.skinTexture.needsUpdate = true;\n\n this.numBones = options.numBones ?? 256;\n this.boneData = new Float32Array(this.numBones * 16);\n this.boneTexture = new THREE.DataTexture(\n this.boneData,\n 4,\n this.numBones,\n THREE.RGBAFormat,\n THREE.FloatType,\n );\n this.boneTexture.internalFormat = \"RGBA32F\";\n this.boneTexture.needsUpdate = true;\n\n this.boneRestQuatPosScale = newArray(this.numBones, () => ({\n quat: new THREE.Quaternion(),\n pos: new THREE.Vector3(),\n scale: new THREE.Vector3(),\n }));\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats = newArray(this.numBones, () => new THREE.Matrix4());\n } else {\n this.boneRestInvMats = [];\n }\n\n this.uniform = new DynoUniform({\n key: \"skinning\",\n type: GsplatSkinning,\n globals: () => [defineGsplatSkinning],\n value: {\n numSplats: this.numSplats,\n numBones: this.numBones,\n skinTexture: this.skinTexture,\n boneTexture: this.boneTexture,\n },\n });\n }\n\n // Apply the skeletal animation to a Gsplat in a dyno program.\n modify(gsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"Linear blend skinning requires covSplats=true\");\n }\n return applyGsplatSkinning(gsplat, this.uniform);\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n return applyCovSplatDQSkinning(covsplat, this.uniform);\n }\n return applyCovSplatLBSkinning(covsplat, this.uniform);\n }\n\n // Set the \"rest\" pose for a bone with position and quaternion orientation.\n setRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(SplatSkinning.UNIT_SCALE);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex]\n .compose(pos, quat, SplatSkinning.UNIT_SCALE)\n .invert();\n }\n\n this.setBoneQuatPos(boneIndex, quat, pos);\n }\n\n getRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n }\n\n setRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(scale);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex].compose(pos, quat, scale).invert();\n }\n\n this.setBoneQuatPosScale(boneIndex, quat, pos, scale);\n }\n\n getRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n scale.copy(this.boneRestQuatPosScale[boneIndex].scale);\n }\n\n setRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setRestMat only supported for linear blend skinning\");\n }\n this.boneRestInvMats[boneIndex].copy(matrix).invert();\n this.setBoneMatrix(boneIndex, matrix);\n }\n\n getRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"getRestMat only supported for linear blend skinning\");\n }\n matrix.copy(this.boneRestInvMats[boneIndex]).invert();\n }\n\n // Set the \"current\" position and orientation of a bone.\n setBoneQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n SplatSkinning.relQuat\n .copy(this.boneRestQuatPosScale[boneIndex].quat)\n .invert();\n SplatSkinning.relPos\n .copy(pos)\n .sub(this.boneRestQuatPosScale[boneIndex].pos);\n SplatSkinning.relQuat.multiply(quat);\n SplatSkinning.dual\n .set(\n SplatSkinning.relPos.x,\n SplatSkinning.relPos.y,\n SplatSkinning.relPos.z,\n 0.0,\n )\n .multiply(SplatSkinning.relQuat);\n\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.relQuat.x;\n this.boneData[i16 + 1] = SplatSkinning.relQuat.y;\n this.boneData[i16 + 2] = SplatSkinning.relQuat.z;\n this.boneData[i16 + 3] = SplatSkinning.relQuat.w;\n this.boneData[i16 + 4] = 0.5 * SplatSkinning.dual.x;\n this.boneData[i16 + 5] = 0.5 * SplatSkinning.dual.y;\n this.boneData[i16 + 6] = 0.5 * SplatSkinning.dual.z;\n this.boneData[i16 + 7] = 0.5 * SplatSkinning.dual.w;\n } else {\n this.setBoneQuatPosScale(boneIndex, quat, pos, SplatSkinning.UNIT_SCALE);\n }\n }\n\n setBoneQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n throw new Error(\n \"setBoneQuatPosScale only supported for linear blend skinning\",\n );\n }\n\n SplatSkinning.skinMat.compose(pos, quat, scale);\n this.setBoneMatrix(boneIndex, SplatSkinning.skinMat);\n }\n\n setBoneMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setBoneMatrix only supported for linear blend skinning\");\n }\n\n SplatSkinning.skinMat.multiplyMatrices(\n this.boneRestInvMats[boneIndex],\n matrix,\n );\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.skinMat.elements[0];\n this.boneData[i16 + 1] = SplatSkinning.skinMat.elements[1];\n this.boneData[i16 + 2] = SplatSkinning.skinMat.elements[2];\n this.boneData[i16 + 3] = SplatSkinning.skinMat.elements[4];\n this.boneData[i16 + 4] = SplatSkinning.skinMat.elements[5];\n this.boneData[i16 + 5] = SplatSkinning.skinMat.elements[6];\n this.boneData[i16 + 6] = SplatSkinning.skinMat.elements[8];\n this.boneData[i16 + 7] = SplatSkinning.skinMat.elements[9];\n this.boneData[i16 + 8] = SplatSkinning.skinMat.elements[10];\n this.boneData[i16 + 9] = SplatSkinning.skinMat.elements[12];\n this.boneData[i16 + 10] = SplatSkinning.skinMat.elements[13];\n this.boneData[i16 + 11] = SplatSkinning.skinMat.elements[14];\n }\n\n // Set up to 4 bone indices and weights for a Gsplat. For fewer than 4 bones,\n // you can set the remaining weights to 0 (and index=0).\n setSplatBones(\n splatIndex: number,\n boneIndices: THREE.Vector4,\n weights: THREE.Vector4,\n ) {\n const i4 = splatIndex * 4;\n this.skinData[i4 + 0] =\n Math.min(255, Math.max(0, Math.round(weights.x * 255.0))) +\n (boneIndices.x << 8);\n this.skinData[i4 + 1] =\n Math.min(255, Math.max(0, Math.round(weights.y * 255.0))) +\n (boneIndices.y << 8);\n this.skinData[i4 + 2] =\n Math.min(255, Math.max(0, Math.round(weights.z * 255.0))) +\n (boneIndices.z << 8);\n this.skinData[i4 + 3] =\n Math.min(255, Math.max(0, Math.round(weights.w * 255.0))) +\n (boneIndices.w << 8);\n }\n\n // Call this to indicate that the bones have changed and the Gsplats need to be\n // re-generated with updated skinning.\n updateBones() {\n this.boneTexture.needsUpdate = true;\n this.mesh.needsUpdate = true;\n }\n\n private static UNIT_SCALE = new THREE.Vector3(1, 1, 1);\n private static relQuat = new THREE.Quaternion();\n private static relPos = new THREE.Vector3();\n private static dual = new THREE.Quaternion();\n private static skinMat = new THREE.Matrix4();\n}\n\n// dyno program definitions for SplatSkinning\n\nexport const GsplatSkinning = { type: \"GsplatSkinning\" } as {\n type: \"GsplatSkinning\";\n};\n\nexport const defineGsplatSkinning = unindent(`\n struct GsplatSkinning {\n int numSplats;\n int numBones;\n usampler2DArray skinTexture;\n sampler2D boneTexture;\n };\n`);\n\nexport const defineApplyGsplatSkinning = unindent(`\n void applyGsplatSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec4 quaternion\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n\n center = quatVec(quat, center) + translate;\n quaternion = quatQuat(quat, quaternion);\n }\n`);\n\nfunction applyGsplatSkinning(\n gsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { gsplat: typeof Gsplat; skinning: typeof GsplatSkinning },\n { gsplat: typeof Gsplat }\n >({\n inTypes: { gsplat: Gsplat, skinning: GsplatSkinning },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplatSkinning, defineApplyGsplatSkinning],\n inputs: { gsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n applyGsplatSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${gsplat}.index, ${gsplat}.center, ${gsplat}.quaternion\n );\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nexport const defineApplyCovSplatDQSkinning = unindent(`\n void applyCovSplatDQSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n mat3 basis = quaternionToMatrix(quat);\n\n center = quatVec(quat, center) + translate;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nexport const defineApplyCovSplatLBSkinning = unindent(`\n void applyCovSplatLBSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n mat3 basis = mat3(0.0);\n vec3 offset = vec3(0.0);\n\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n if (boneIndex < numBones) {\n vec4 v0 = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n vec4 v1 = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n vec4 v2 = texelFetch(boneTexture, ivec2(2, boneIndex), 0);\n basis += weights[i] * mat3(v0.x, v0.y, v0.z, v0.w, v1.x, v1.y, v1.z, v1.w, v2.x);\n offset += weights[i] * vec3(v2.y, v2.z, v2.w);\n }\n }\n }\n\n center = basis * center + offset;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nfunction applyCovSplatDQSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatDQSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatDQSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nfunction applyCovSplatLBSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatLBSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatLBSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n","import * as THREE from \"three\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport function constructGrid({\n // PackedSplats object to add splats to\n splats,\n // min and max box extents of the grid\n extents,\n // step size along each grid axis\n stepSize = 1,\n // spherical radius of each Gsplat\n pointRadius = 0.01,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n pointShadowScale = 2.0,\n // Gsplat opacity\n opacity = 1.0,\n // Gsplat color (THREE.Color) or function to set color for position:\n // ((THREE.Color, THREE.Vector3) => void) (default: RGB-modulated grid)\n color,\n}: {\n splats: PackedSplats;\n extents: THREE.Box3;\n stepSize?: number;\n pointRadius?: number;\n pointShadowScale?: number;\n opacity?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const EPSILON = 1.0e-6;\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n if (color == null) {\n color = (color, point) =>\n color.set(\n 0.55 + 0.45 * Math.cos(point.x * 1),\n 0.55 + 0.45 * Math.cos(point.y * 1),\n 0.55 + 0.45 * Math.cos(point.z * 1),\n );\n }\n const pointColor = new THREE.Color();\n for (let z = extents.min.z; z < extents.max.z + EPSILON; z += stepSize) {\n for (let y = extents.min.y; y < extents.max.y + EPSILON; y += stepSize) {\n for (let x = extents.min.x; x < extents.max.x + EPSILON; x += stepSize) {\n center.set(x, y, z);\n for (let layer = 0; layer < 2; ++layer) {\n scales.setScalar(pointRadius * (layer ? 1 : pointShadowScale));\n if (!layer) {\n pointColor.setScalar(0.0);\n } else if (typeof color === \"function\") {\n color(pointColor, center);\n } else {\n pointColor.copy(color);\n }\n splats.pushSplat(center, scales, quaternion, opacity, pointColor);\n }\n }\n }\n }\n}\n\nexport function constructAxes({\n // PackedSplats object to add splats to\n splats,\n // scale (Gsplat scale along axis)\n scale = 0.25,\n // radius of the axes (Gsplat scale orthogonal to axis)\n axisRadius = 0.0075,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n axisShadowScale = 2.0,\n // origins of the axes (default single axis at origin)\n origins = [new THREE.Vector3()],\n}: {\n splats: PackedSplats;\n scale?: number;\n axisRadius?: number;\n axisShadowScale?: number;\n origins?: THREE.Vector3[];\n}) {\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const color = new THREE.Color();\n const opacity = 1.0;\n for (const origin of origins) {\n for (let axis = 0; axis < 3; ++axis) {\n center.set(\n origin.x + (axis === 0 ? scale : 0),\n origin.y + (axis === 1 ? scale : 0),\n origin.z + (axis === 2 ? scale : 0),\n );\n for (let layer = 0; layer < 2; ++layer) {\n scales.set(\n (axis === 0 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 1 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 2 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n );\n color.setRGB(\n layer === 0 ? 0.0 : axis === 0 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 1 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 2 ? 1.0 : 0.0,\n );\n splats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n }\n}\n\nexport function constructSpherePoints({\n // PackedSplats object to add splats to\n splats,\n // center of the sphere (default: origin)\n origin = new THREE.Vector3(),\n // radius of the sphere\n radius = 1.0,\n // maximum depth of recursion for subdividing the sphere\n // Warning: Gsplat count grows exponentially with depth\n maxDepth = 3,\n // filter function to apply to each point, for example to select\n // points in a certain direction or other function ((THREE.Vector3) => boolean)\n // (default: null)\n filter = null,\n // radius of each oriented Gsplat\n pointRadius = 0.02,\n // flatness of each oriented Gsplat\n pointThickness = 0.001,\n // color of each Gsplat (THREE.Color) or function to set color for point:\n // ((THREE.Color, THREE.Vector3) => void) (default: white)\n color = new THREE.Color(1, 1, 1),\n}: {\n splats: PackedSplats;\n origin?: THREE.Vector3;\n radius?: number;\n maxDepth?: number;\n filter?: ((point: THREE.Vector3) => boolean) | null;\n pointRadius?: number;\n pointThickness?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const pointsHash: { [key: string]: THREE.Vector3 } = {};\n\n function addPoint(p: THREE.Vector3) {\n if (filter && !filter(p)) {\n return;\n }\n const key = `${p.x},${p.y},${p.z}`;\n if (!pointsHash[key]) {\n pointsHash[key] = p;\n }\n }\n\n function recurse(\n depth: number,\n p0: THREE.Vector3,\n p1: THREE.Vector3,\n p2: THREE.Vector3,\n ) {\n addPoint(p0);\n addPoint(p1);\n addPoint(p2);\n if (depth >= maxDepth) {\n return;\n }\n const p01 = new THREE.Vector3().addVectors(p0, p1).normalize();\n const p12 = new THREE.Vector3().addVectors(p1, p2).normalize();\n const p20 = new THREE.Vector3().addVectors(p2, p0).normalize();\n recurse(depth + 1, p0, p01, p20);\n recurse(depth + 1, p01, p1, p12);\n recurse(depth + 1, p20, p12, p2);\n recurse(depth + 1, p01, p12, p20);\n }\n\n for (const x of [-1, 1]) {\n for (const y of [-1, 1]) {\n for (const z of [-1, 1]) {\n const p0 = new THREE.Vector3(x, 0, 0);\n const p1 = new THREE.Vector3(0, y, 0);\n const p2 = new THREE.Vector3(0, 0, z);\n recurse(0, p0, p1, p2);\n }\n }\n }\n\n const points = Object.values(pointsHash);\n const scales = new THREE.Vector3(pointRadius, pointRadius, pointThickness);\n const quaternion = new THREE.Quaternion();\n const pointColor = typeof color === \"function\" ? new THREE.Color() : color;\n for (const point of points) {\n quaternion.setFromUnitVectors(new THREE.Vector3(0, 0, -1), point);\n if (typeof color === \"function\") {\n color(pointColor, point);\n }\n point.multiplyScalar(radius);\n point.add(origin);\n splats.pushSplat(point, scales, quaternion, 1.0, pointColor);\n }\n}\n\nexport function textSplats({\n // text string to display\n text,\n // browser font to render text with (default: \"Arial\")\n font,\n // font size in pixels/Gsplats (default: 32)\n fontSize,\n // SplatMesh.recolor tint assuming white Gsplats (default: white)\n color,\n // Individual Gsplat color (default: white)\n rgb,\n // Gsplat radius (default: 0.8 covers 1-unit spacing well)\n dotRadius,\n // text alignment: \"left\", \"center\", \"right\", \"start\", \"end\" (default: \"start\")\n textAlign,\n // line spacing multiplier, lines delimited by \"\\n\" (default: 1.0)\n lineHeight,\n // Coordinate scale in object-space (default: 1.0)\n objectScale,\n}: {\n text: string;\n font?: string;\n fontSize?: number;\n color?: THREE.Color;\n rgb?: THREE.Color;\n dotRadius?: number;\n textAlign?: \"left\" | \"center\" | \"right\" | \"start\" | \"end\";\n lineHeight?: number;\n objectScale?: number;\n}) {\n font = font ?? \"Arial\";\n fontSize = fontSize ?? 32;\n color = color ?? new THREE.Color(1, 1, 1);\n dotRadius = dotRadius ?? 0.8;\n textAlign = textAlign ?? \"start\";\n lineHeight = lineHeight ?? 1;\n objectScale = objectScale ?? 1;\n const lines = text.split(\"\\n\");\n\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Failed to create canvas context\");\n }\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n const metrics = ctx.measureText(\"\");\n const fontHeight =\n metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent;\n\n let minLeft = Number.POSITIVE_INFINITY;\n let maxRight = Number.NEGATIVE_INFINITY;\n let minTop = Number.POSITIVE_INFINITY;\n let maxBottom = Number.NEGATIVE_INFINITY;\n for (let line = 0; line < lines.length; ++line) {\n const metrics = ctx.measureText(lines[line]);\n const y = fontHeight * lineHeight * line;\n minLeft = Math.min(minLeft, -metrics.actualBoundingBoxLeft);\n maxRight = Math.max(maxRight, metrics.actualBoundingBoxRight);\n minTop = Math.min(minTop, y - metrics.actualBoundingBoxAscent);\n maxBottom = Math.max(maxBottom, y + metrics.actualBoundingBoxDescent);\n }\n const originLeft = Math.floor(minLeft);\n const originTop = Math.floor(minTop);\n const width = Math.ceil(maxRight) - originLeft;\n const height = Math.ceil(maxBottom) - originTop;\n canvas.width = width;\n canvas.height = height;\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n ctx.textBaseline = \"alphabetic\";\n ctx.fillStyle = \"#FFFFFF\";\n for (let i = 0; i < lines.length; ++i) {\n const y = fontHeight * lineHeight * i - originTop;\n ctx.fillText(lines[i], -originLeft, y);\n }\n\n const imageData = ctx.getImageData(0, 0, width, height);\n const rgba = new Uint8Array(imageData.data.buffer);\n const splats = new PackedSplats();\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius * objectScale);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n rgb = rgb ?? new THREE.Color(1, 1, 1);\n\n let offset = 0;\n for (let y = 0; y < height; ++y) {\n for (let x = 0; x < width; ++x) {\n const a = rgba[offset + 3];\n if (a > 0) {\n const opacity = a / 255;\n center.set(x - 0.5 * (width - 1), 0.5 * (height - 1) - y, 0);\n center.multiplyScalar(objectScale);\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n offset += 4;\n }\n }\n\n const mesh = new SplatMesh({ packedSplats: splats });\n mesh.recolor = color;\n return mesh;\n}\n\nexport function imageSplats({\n // URL of the image to convert to splats (example: `url: \"./image.png\"`)\n url,\n // Radius of each Gsplat, default covers 1-unit spacing well (default: 0.8)\n dotRadius,\n // Subsampling factor for the image. Higher values reduce resolution,\n // for example 2 will halve the width and height by averaging (default: 1)\n subXY,\n // Optional callback function to modify each Gsplat before it's added.\n // Return null to skip adding the Gsplat, or a number to set the opacity\n // and add the Gsplat with parameter values in the objects center, rgba etc. were\n // passed into the forEachSplat callback. Ending the callback in `return opacity;`\n // will retain the original opacity.\n // ((width: number, height: number, index: number, center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, opacity: number, color: THREE.Color) => number | null)\n forEachSplat,\n}: {\n url: string;\n dotRadius?: number;\n subXY?: number;\n forEachSplat?: (\n width: number,\n height: number,\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => number | null;\n}): SplatMesh {\n dotRadius = dotRadius ?? 0.8;\n subXY = Math.max(1, Math.floor(subXY ?? 1));\n\n return new SplatMesh({\n constructSplats: async (splats) => {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.onerror = reject;\n img.onload = () => {\n const { width, height } = img;\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n reject(new Error(\"Failed to create canvas context\"));\n return;\n }\n ctx.imageSmoothingEnabled = true;\n ctx.imageSmoothingQuality = \"high\";\n const destWidth = Math.round(width / subXY);\n const destHeight = Math.round(height / subXY);\n ctx.drawImage(img, 0, 0, destWidth, destHeight);\n try {\n const imageData = ctx.getImageData(0, 0, destWidth, destHeight);\n const rgba = new Uint8Array(imageData.data.buffer);\n\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const rgb = new THREE.Color();\n\n let index = 0;\n for (let y = 0; y < destHeight; ++y) {\n for (let x = 0; x < destWidth; ++x) {\n const offset = index * 4;\n const a = rgba[offset + 3];\n if (a > 0) {\n let opacity = a / 255;\n rgb.set(\n rgba[offset + 0] / 255,\n rgba[offset + 1] / 255,\n rgba[offset + 2] / 255,\n );\n center.set(\n x - 0.5 * (destWidth - 1),\n 0.5 * (destHeight - 1) - y,\n 0,\n );\n scales.setScalar(dotRadius);\n quaternion.set(0, 0, 0, 1);\n let push = true;\n if (forEachSplat) {\n const maybeOpacity = forEachSplat(\n destWidth,\n destHeight,\n index,\n center,\n scales,\n quaternion,\n opacity,\n rgb,\n );\n opacity = maybeOpacity ?? opacity;\n push = maybeOpacity !== null;\n }\n if (push) {\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n }\n index += 1;\n }\n }\n resolve();\n } catch (error) {\n reject(error);\n }\n };\n img.src = url;\n });\n },\n });\n}\n","import * as THREE from \"three\";\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n type DynoVal,\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n div,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n floatBitsToInt,\n hashVec3,\n imod,\n mul,\n split,\n sub,\n vec3,\n} from \"../dyno\";\n\nexport function staticBox({\n box,\n cells,\n dotScale,\n color,\n opacity,\n}: {\n box: THREE.Box3;\n cells: THREE.Vector3;\n dotScale: number;\n color?: THREE.Color;\n opacity?: number;\n}) {\n cells.x = Math.max(1, Math.round(cells.x));\n cells.y = Math.max(1, Math.round(cells.y));\n cells.z = Math.max(1, Math.round(cells.z));\n opacity = opacity ?? 1;\n const numSplats = cells.x * cells.y * cells.z;\n const dynoX = dynoConst(\"int\", cells.x);\n const dynoY = dynoConst(\"int\", cells.y);\n const dynoZ = dynoConst(\"int\", cells.z);\n\n const dynoTime = dynoFloat(0);\n const generator = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n const cellX = imod(index, dynoX);\n const index2 = div(index, dynoX);\n const cellY = imod(index2, dynoY);\n const cellZ = div(index2, dynoY);\n const cell = combine({\n vectorType: \"ivec3\",\n x: cellX,\n y: cellY,\n z: cellZ,\n });\n\n const intTime = floatBitsToInt(dynoTime);\n const inputs = combine({ vectorType: \"ivec2\", x: index, y: intTime });\n const random = hashVec3(inputs);\n const min = dynoConst(\"vec3\", box.min);\n const max = dynoConst(\"vec3\", box.max);\n const size = sub(max, min);\n const coord = div(add(vec3(cell), random), dynoConst(\"vec3\", cells));\n let r: DynoVal<\"float\">;\n let g: DynoVal<\"float\">;\n let b: DynoVal<\"float\">;\n if (color) {\n r = dynoConst(\"float\", color.r);\n g = dynoConst(\"float\", color.g);\n b = dynoConst(\"float\", color.b);\n } else {\n ({ r, g, b } = split(coord).outputs);\n }\n const rgba = combine({\n vectorType: \"vec4\",\n r,\n g,\n b,\n a: dynoConst(\"float\", opacity),\n });\n const center = add(min, mul(size, coord));\n const scales = vec3(dynoConst(\"float\", dotScale));\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgba,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ time }) => {\n dynoTime.value = time;\n const _updated = transformer.update(generator);\n generator.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return generator;\n}\n","import * as THREE from \"three\";\n\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n fract,\n hashVec4,\n max,\n mix,\n mod,\n mul,\n sin,\n split,\n sub,\n vec3,\n} from \"../dyno\";\nimport { dynoVec3 } from \"../dyno\";\n\n// snowBox produces Gsplat trajectories that move in a deterministic fashion over time,\n// with high similarity between adjacent frames. See examples/atmospheric/main.js\n// for an example that creates a snowBox.\n\n// A snowBox instance has a collection of properties that can be tuned to achieve\n// different particle effects. The below DEFAULT_SNOW and DEFAULT_RAIN are example\n// parameter sets that look a lot like snow and rain, and can be used as a starting\n// point for further tweaking: `const mySnow = { ...DEFAULT_SNOW, density: 500 };`\n\nexport const DEFAULT_SNOW = {\n box: new THREE.Box3(\n new THREE.Vector3(-1, -1, -1),\n new THREE.Vector3(1, 1, 1),\n ),\n density: 100,\n fallDirection: new THREE.Vector3(-1, -3, 1).normalize(),\n fallVelocity: 0.02,\n wanderScale: 0.04,\n wanderVariance: 2,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.5, 0.5, 1),\n minScale: 0.001,\n maxScale: 0.005,\n anisoScale: new THREE.Vector3(1, 1, 1),\n};\n\nexport const DEFAULT_RAIN = {\n box: new THREE.Box3(\n new THREE.Vector3(-2, -1, -2),\n new THREE.Vector3(2, 5, 2),\n ),\n density: 10,\n fallDirection: new THREE.Vector3(0, -1, 0),\n fallVelocity: 2,\n wanderScale: 0.1,\n wanderVariance: 1,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.25, 0.25, 0.5),\n minScale: 0.005,\n maxScale: 0.01,\n anisoScale: new THREE.Vector3(0.1, 1, 0.1),\n};\n\n// Calling snowBox creates a new snowBox instance and returns an object with\n// the snowBox itself as well `as` a collection of controls that can be used to\n// adjust the snowBox's properties over time:\n//\n// - snow: the SplatGenerator snowBox instance\n// - min: the vec3 uniform of the snowBox minimum position\n// - max: the vec3 uniform of the snowBox maximum position\n// - minY: the float uniform of the snowBox minimum y-coordinate\n// - color1: the vec3 uniform of the snowBox first color\n// - color2: the vec3 uniform of the snowBox second color\n// - opacity: the float uniform of the snowBox opacity\n// - fallVelocity: the float uniform of the snowBox fall velocity\n// - wanderVariance: the float uniform of the snowBox wander variance\n// - wanderScale: the float uniform of the snowBox wander scale\n// - fallDirection: the vec3 uniform of the snowBox fall direction\n// - minScale: the float uniform of the snowBox minimum scale\n// - maxScale: the float uniform of the snowBox maximum scale\n// - anisoScale: the vec3 uniform of the snowBox anisotropic scale\n\nexport function snowBox({\n // min and max box extents of the snowBox\n box,\n // minimum y-coordinate to clamp particle position, which can be used to\n // fake hitting a ground plane and lingering there for a bit\n minY,\n // number of Gsplats to generate (default: calculated from box and density)\n numSplats,\n // density of Gsplats per unit volume (default: 100)\n density,\n // The xyz anisotropic scale of the Gsplat, which can be used for example\n // to elongate rain particles (default: (1, 1, 1))\n anisoScale,\n // Minimum Gsplat particle scale (default: 0.001)\n minScale,\n // Maximum Gsplat particle scale (default: 0.005)\n maxScale,\n // The average direction of fall (default: (0, -1, 0))\n fallDirection,\n // The average speed of the fall (multiplied with fallDirection) (default: 0.02)\n fallVelocity,\n // The world scale of wandering overlay motion (default: 0.01)\n wanderScale,\n // Controls how uniformly the particles wander in sync, more variance mean\n // more randomness in the motion (default: 2)\n wanderVariance,\n // Color 1 of the two colors interpolated between (default: (1, 1, 1))\n color1,\n // Color 2 of the two colors interpolated between (default: (0.5, 0.5, 1))\n color2,\n // The base opacity of the Gsplats (default: 1)\n opacity,\n // Optional callback function to call each frame.\n onFrame,\n}: {\n box?: THREE.Box3;\n minY?: number;\n numSplats?: number;\n density?: number;\n anisoScale?: THREE.Vector3;\n minScale?: number;\n maxScale?: number;\n fallDirection?: THREE.Vector3;\n fallVelocity?: number;\n wanderScale?: number;\n wanderVariance?: number;\n color1?: THREE.Color;\n color2?: THREE.Color;\n opacity?: number;\n onFrame?: ({\n object,\n time,\n deltaTime,\n }: { object: SplatGenerator; time: number; deltaTime: number }) => void;\n}) {\n box =\n box ??\n new THREE.Box3(new THREE.Vector3(-1, -1, -1), new THREE.Vector3(1, 1, 1));\n const volume =\n (box.max.x - box.min.x) * (box.max.y - box.min.y) * (box.max.z - box.min.z);\n density = density ?? 100;\n numSplats =\n numSplats ?? Math.max(1, Math.min(1000000, Math.round(volume * density)));\n\n const dynoMinScale = dynoFloat(minScale ?? 0.001);\n const dynoMaxScale = dynoFloat(maxScale ?? 0.005);\n const dynoAnisoScale = dynoVec3(\n (anisoScale?.clone() ?? new THREE.Vector3(1, 1, 1)).normalize(),\n );\n const dynoFallDirection = dynoVec3(\n (fallDirection ?? new THREE.Vector3(0, -1, 0)).normalize(),\n );\n const dynoFallVelocity = dynoFloat(fallVelocity ?? 0.02);\n const dynoWanderScale = dynoFloat(wanderScale ?? 0.01);\n const dynoWanderVariance = dynoFloat(wanderVariance ?? 2);\n const dynoColor1 = dynoVec3(color1 ?? new THREE.Color(1, 1, 1));\n const dynoColor2 = dynoVec3(color2 ?? new THREE.Color(0.5, 0.5, 1));\n const dynoOpacity = dynoFloat(opacity ?? 1);\n\n const dynoTime = dynoFloat(0);\n const globalOffset = dynoVec3(new THREE.Vector3(0, 0, 0));\n const dynoMin = dynoVec3(box.min);\n const dynoMax = dynoVec3(box.max);\n const dynoMinY = dynoFloat(minY ?? Number.NEGATIVE_INFINITY);\n const minMax = sub(dynoMax, dynoMin);\n const snow = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index not defined\");\n }\n const random = hashVec4(index);\n const randomW = split(random).outputs.w;\n let position = vec3(random);\n\n let size = fract(mul(randomW, dynoConst(\"float\", 100)));\n size = sin(mul(dynoLiteral(\"float\", \"PI\"), size));\n size = add(dynoMinScale, mul(size, sub(dynoMaxScale, dynoMinScale)));\n const scales = mul(size, dynoAnisoScale);\n\n const intensity = fract(mul(randomW, dynoConst(\"float\", 10)));\n const hue = fract(randomW);\n const color = mix(dynoColor1, dynoColor2, hue);\n const rgb = mul(color, intensity);\n\n const random2 = hashVec4(\n combine({\n vectorType: \"ivec2\",\n x: index,\n y: dynoConst(\"int\", 0x1ab5),\n }),\n );\n let perturb = vec3(random2);\n let timeOffset = mul(split(random2).outputs.w, dynoWanderVariance);\n timeOffset = add(dynoTime, timeOffset);\n\n position = add(position, globalOffset);\n const modulo = mod(\n position,\n dynoConst(\"vec3\", new THREE.Vector3(1, 1, 1)),\n );\n position = add(dynoMin, mul(minMax, modulo));\n\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n\n perturb = sin(add(vec3(timeOffset), perturb));\n perturb = mul(perturb, dynoWanderScale);\n let center = add(position, perturb);\n\n let centerY = split(center).outputs.y;\n centerY = max(dynoMinY, centerY);\n center = combine({ vector: center, y: centerY });\n\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgb,\n opacity: dynoOpacity,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ object, time, deltaTime }) => {\n dynoTime.value = time;\n const _updated = transformer.update(snow);\n\n const fallDelta = dynoFallDirection.value\n .clone()\n .multiplyScalar(dynoFallVelocity.value * deltaTime);\n globalOffset.value.add(fallDelta);\n\n // Enable/disable splats based on opacity\n object.visible = dynoOpacity.value > 0;\n\n onFrame?.({ object, time, deltaTime });\n snow.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return {\n snow,\n min: dynoMin,\n max: dynoMax,\n minY: dynoMinY,\n color1: dynoColor1,\n color2: dynoColor2,\n opacity: dynoOpacity,\n fallVelocity: dynoFallVelocity,\n wanderVariance: dynoWanderVariance,\n wanderScale: dynoWanderScale,\n fallDirection: dynoFallDirection,\n minScale: dynoMinScale,\n maxScale: dynoMaxScale,\n anisoScale: dynoAnisoScale,\n };\n}\n\nexport type SNOW_RESULT_TYPE = ReturnType;\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n Gsplat,\n add,\n combineGsplat,\n dot,\n dynoBlock,\n dynoConst,\n greaterThanEqual,\n gsplatNormal,\n mul,\n neg,\n select,\n splitGsplat,\n} from \"../dyno\";\n\nexport function makeNormalColorModifier(splatToView: SplatTransformer) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let normal = gsplatNormal(gsplat);\n\n const viewGsplat = splatToView.applyGsplat(gsplat);\n const viewCenter = splitGsplat(viewGsplat).outputs.center;\n const viewNormal = gsplatNormal(viewGsplat);\n const splatDot = dot(viewCenter, viewNormal);\n\n const sameDir = greaterThanEqual(splatDot, dynoConst(\"float\", 0));\n normal = select(sameDir, neg(normal), normal);\n const rgb = add(\n mul(normal, dynoConst(\"float\", 0.5)),\n dynoConst(\"float\", 0.5),\n );\n\n gsplat = combineGsplat({ gsplat, rgb });\n return { gsplat };\n });\n}\n\nexport function setWorldNormalColor(splats: SplatMesh) {\n splats.enableWorldToView = true;\n splats.worldModifier = makeNormalColorModifier(splats.context.worldToView);\n splats.updateGenerator();\n}\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n type DynoVal,\n Gsplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n neg,\n normalizedDepth,\n select,\n split,\n splitGsplat,\n sub,\n} from \"../dyno\";\n\nexport function makeDepthColorModifier(\n splatToView: SplatTransformer,\n minDepth: DynoVal<\"float\">,\n maxDepth: DynoVal<\"float\">,\n reverse: DynoVal<\"bool\">,\n) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let { center } = splitGsplat(gsplat).outputs;\n center = splatToView.apply(center);\n const { z } = split(center).outputs;\n let depth = normalizedDepth(neg(z), minDepth, maxDepth);\n depth = select(reverse, sub(dynoConst(\"float\", 1), depth), depth);\n\n gsplat = combineGsplat({ gsplat, r: depth, g: depth, b: depth });\n return { gsplat };\n });\n}\n\nexport function setDepthColor(\n splats: SplatMesh,\n minDepth: number,\n maxDepth: number,\n reverse?: boolean,\n) {\n splats.enableWorldToView = true;\n const dynoMinDepth = dynoConst(\"float\", minDepth);\n const dynoMaxDepth = dynoConst(\"float\", maxDepth);\n const dynoReverse = dynoConst(\"bool\", reverse ?? false);\n splats.worldModifier = makeDepthColorModifier(\n splats.context.worldToView,\n dynoMinDepth,\n dynoMaxDepth,\n dynoReverse,\n );\n splats.updateGenerator();\n return {\n minDepth: dynoMinDepth,\n maxDepth: dynoMaxDepth,\n reverse: dynoReverse,\n };\n}\n","import * as THREE from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport interface SparkXrOptions {\n renderer: THREE.WebGLRenderer;\n // Element to attach enter/exit click handler to\n element?: HTMLElement;\n // ID of element to attach enter/exit click handler to\n elementId?: string;\n // Create a button to enter/exit XR\n // Optionally provide button text or HTML\n // Default is true - create a button\n button?: boolean | SparkXrButton;\n // Blur out element when mouse leaves it\n // Default is 0.5 - 50% opacity\n onMouseLeaveOpacity?: number;\n // Default is \"vrar\" - Try VR then AR\n mode?: \"vr\" | \"ar\" | \"arvr\" | \"vrar\";\n // fixedFoveation: XrManager.setFoveation(...)\n fixedFoveation?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRWebGLLayer/XRWebGLLayer#framebufferscalefactor\n // Default is 0.5 - 50% resolution for better frame rate\n frameBufferScaleFactor?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpace#reference_space_types\n // Defaults is \"local\" - origin is the user's position when starting XR session\n referenceSpaceType?: \"local\" | \"local-floor\" | \"unbounded\" | \"viewer\";\n // Enable hand tracking\n // Default is false\n enableHands?: boolean;\n // Allow WebXR entry on mobile phones that expose navigator.xr\n // Defaults to false - blocks phones to avoid unusable split-screen modes\n allowMobileXr?: boolean;\n // Session init options\n // Default is empty - no additional options\n sessionInit?: XRSessionInit;\n // Callback function called when SparkXr is ready\n // Default is undefined - no callback\n onReady?: (supported: boolean) => void | Promise;\n // Callback function called when entering XR\n // Default is undefined - no callback\n onEnterXr?: () => void | Promise;\n // Callback function called when exiting XR\n // Default is undefined - no callback\n onExitXr?: () => void | Promise;\n // ztroller movement and rotation options\n controllers?: SparkXrControllers;\n}\n\nexport interface SparkXrButton {\n enterXrHtml?: string;\n exitXrHtml?: string;\n enterVrHtml?: string;\n exitVrHtml?: string;\n enterArHtml?: string;\n exitArHtml?: string;\n enterXrText?: string;\n exitXrText?: string;\n enterVrText?: string;\n exitVrText?: string;\n enterArText?: string;\n exitArText?: string;\n style?: CSSStyleDeclaration;\n enterStyle?: CSSStyleDeclaration;\n exitStyle?: CSSStyleDeclaration;\n zIndex?: number;\n}\n\nexport type XrGamepads = {\n left?: Gamepad;\n right?: Gamepad;\n leftIsHand?: boolean;\n rightIsHand?: boolean;\n};\n\nexport interface SparkXrControllers {\n moveSpeed?: number;\n rotateSpeed?: number;\n rollSpeed?: number;\n fastMultiplier?: number;\n slowMultiplier?: number;\n moveHeading?: boolean;\n moveDirection?: boolean;\n getMove?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getRotate?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getFast?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n getSlow?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n}\n\nexport const DEFAULT_CONTROLLER_MOVE_SPEED = 1.0;\nexport const DEFAULT_CONTROLLER_ROTATE_SPEED = 4.0;\nexport const DEFAULT_CONTROLLER_ROLL_SPEED = 2.0;\nexport const DEFAULT_CONTROLLER_FAST_MULTIPLIER = 5;\nexport const DEFAULT_CONTROLLER_SLOW_MULTIPLIER = 1 / 5;\nexport const DEFAULT_CONTROLLER_MOVE_HEADING = false;\n\nexport const DEFAULT_CONTROLLER_GETMOVE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.leftIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(\n gamepads.left?.axes[2] ?? 0,\n (gamepads.left?.buttons[0].value ?? 0) -\n (gamepads.left?.buttons[1].value ?? 0),\n gamepads.left?.axes[3] ?? 0,\n );\nexport const DEFAULT_CONTROLLER_GETROTATE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(gamepads.right?.axes[2] ?? 0, 0, 0);\nexport const DEFAULT_CONTROLLER_GETFAST = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[0]?.pressed ?? false);\nexport const DEFAULT_CONTROLLER_GETSLOW = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[1]?.pressed ?? false);\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.015,\n t1: 0.012,\n t2: 0.0105,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nconst XR_HEADSET_HINTS =\n /Quest|OculusBrowser|VisionOS|XRBrowser|Pico|Lynx|MagicLeap/i;\n\nfunction isLikelyMobilePhone() {\n const ua = navigator.userAgent ?? \"\";\n if (XR_HEADSET_HINTS.test(ua)) {\n return false;\n }\n\n const androidMobile = /Android/i.test(ua) || /Mobile/i.test(ua);\n if (androidMobile) {\n return true;\n }\n\n const uaData = (\n navigator as Navigator & {\n userAgentData?: { mobile?: boolean };\n }\n ).userAgentData;\n if (uaData && typeof uaData.mobile === \"boolean\") {\n return uaData.mobile;\n }\n\n return false;\n}\n\nexport type Joint = {\n position: THREE.Vector3;\n quaternion: THREE.Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\n\nexport class SparkXr {\n renderer: THREE.WebGLRenderer;\n xr?: XRSystem;\n element?: HTMLElement;\n button?: SparkXrButton;\n mode: XRSessionMode | \"initializing\" | \"not_supported\";\n sessionInit?: XRSessionInit;\n session?: XRSession;\n onEnterXr?: () => void;\n onExitXr?: () => void;\n\n controllers?: SparkXrControllers;\n lastControllersUpdate = 0;\n\n enableHands: boolean;\n hands: XrHand[] = [];\n\n constructor(options: SparkXrOptions) {\n this.renderer = options.renderer;\n this.xr = navigator.xr;\n this.mode = \"initializing\";\n this.onEnterXr = options.onEnterXr;\n this.onExitXr = options.onExitXr;\n this.enableHands = options.enableHands ?? false;\n this.controllers = options.controllers;\n\n Promise.resolve()\n .then(() => {\n if (!this.xr) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (!options.allowMobileXr && isLikelyMobilePhone()) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (this.enableHands) {\n this.hands = [new XrHand(Hand.left), new XrHand(Hand.right)];\n }\n\n let element: HTMLElement | undefined = undefined;\n let button: SparkXrButton | undefined = undefined;\n if (options.element) {\n element = options.element;\n } else if (options.elementId) {\n element = document.getElementById(options.elementId) ?? undefined;\n } else {\n element = SparkXr.createButton();\n button =\n options.button == null || typeof options.button === \"boolean\"\n ? {}\n : options.button;\n }\n\n if (!element) {\n throw new Error(\"No element or button provided\");\n }\n\n element.style.display = \"none\";\n element.classList.add(\"hidden\");\n this.button = button;\n this.element = element;\n\n const opacity = options.onMouseLeaveOpacity?.toString();\n if (opacity !== undefined) {\n element.addEventListener(\"mouseleave\", () => {\n element.style.opacity = opacity;\n });\n element.addEventListener(\"mouseenter\", () => {\n element.style.opacity = \"\";\n });\n }\n\n return this.initializeXr(options);\n })\n .then(() => {\n return options.onReady?.(this.mode !== \"not_supported\");\n })\n .catch((error) => {\n alert(`Error initializing SparkXr: ${error}`);\n });\n }\n\n private async initializeXr(options: SparkXrOptions) {\n if (!this.xr || !this.element) {\n return;\n }\n const element = this.element;\n\n const modes = {\n vr: [\"immersive-vr\"],\n ar: [\"immersive-ar\"],\n arvr: [\"immersive-ar\", \"immersive-vr\"],\n vrar: [\"immersive-vr\", \"immersive-ar\"],\n }[options.mode ?? \"vrar\"] as XRSessionMode[] | undefined;\n if (!modes) {\n throw new Error(`Invalid mode: ${options.mode}`);\n }\n\n let supported = null;\n for (const mode of modes) {\n if (await this.xr.isSessionSupported(mode)) {\n supported = mode;\n break;\n }\n }\n\n if (!supported) {\n this.mode = \"not_supported\";\n return;\n }\n this.mode = supported;\n\n const referenceSpaceType = options.referenceSpaceType ?? \"local\";\n\n this.renderer.xr.enabled = true;\n this.renderer.xr.setReferenceSpaceType(referenceSpaceType);\n\n if (options.fixedFoveation !== undefined) {\n this.renderer.xr.setFoveation(options.fixedFoveation);\n }\n const frameBufferScaleFactor = options.frameBufferScaleFactor ?? 0.5;\n this.renderer.xr.setFramebufferScaleFactor(frameBufferScaleFactor);\n\n const optionalFeatures = options.sessionInit?.optionalFeatures ?? [];\n if (options.enableHands) {\n optionalFeatures.push(\"hand-tracking\");\n }\n\n const requiredFeatures = options.sessionInit?.requiredFeatures ?? [];\n requiredFeatures.push(referenceSpaceType);\n\n this.sessionInit = {\n ...options.sessionInit,\n optionalFeatures,\n requiredFeatures,\n };\n // console.log(\"* this.sessionInit\", this.sessionInit);\n\n element.addEventListener(\"click\", () => {\n this.toggleXr();\n });\n\n this.updateElement();\n }\n\n async toggleXr() {\n if (!this.xr || !this.sessionInit) {\n // console.log(\"* !this.xr || !this.sessionInit\");\n return;\n }\n\n if (!this.session) {\n try {\n const mode = this.mode as XRSessionMode;\n const session = await this.xr.requestSession(mode, this.sessionInit);\n this.session = session;\n // console.log(\"* this.session\", this.session);\n\n const onSessionEnded = () => {\n session?.removeEventListener(\"end\", onSessionEnded);\n session?.removeEventListener(\"visibilitychange\", visibilityChanged);\n this.session = undefined;\n\n this.updateElement();\n this.onExitXr?.();\n };\n\n let lastVisibilityState = session.visibilityState;\n const visibilityChanged = () => {\n if (\n session?.visibilityState === \"visible-blurred\" &&\n lastVisibilityState === \"visible\"\n ) {\n session?.end();\n }\n lastVisibilityState = session?.visibilityState;\n };\n\n this.session?.addEventListener(\"end\", onSessionEnded);\n this.session?.addEventListener(\"visibilitychange\", visibilityChanged);\n\n await this.renderer.xr.setSession(this.session);\n // console.log(\"* setSession\");\n\n return this.onEnterXr?.();\n } catch (error) {\n console.error(\"Error requesting XR session\", error);\n return;\n }\n } else {\n this.session.end();\n // console.log(\"* end session\");\n }\n }\n\n private updateElement() {\n const mode = this.mode as XRSessionMode;\n const element = this.element;\n if (element) {\n element.style.display = \"\";\n element.classList.remove(\"hidden\");\n\n const button = typeof this.button === \"boolean\" ? {} : this.button;\n if (button) {\n if (!this.session) {\n const enterHtml =\n (mode === \"immersive-vr\"\n ? button.enterVrHtml\n : button.enterArHtml) ?? button.enterXrHtml;\n const enterText =\n (mode === \"immersive-vr\"\n ? button.enterVrText\n : button.enterArText) ?? button.enterXrText;\n if (enterHtml) {\n element.innerHTML = enterHtml;\n } else if (enterText) {\n element.textContent = enterText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"ENTER VR\" : \"ENTER AR\";\n }\n } else {\n const exitHtml =\n (mode === \"immersive-vr\" ? button.exitVrHtml : button.exitArHtml) ??\n button.exitXrHtml;\n const exitText =\n (mode === \"immersive-vr\" ? button.exitVrText : button.exitArText) ??\n button.exitXrText;\n if (exitHtml) {\n element.innerHTML = exitHtml;\n } else if (exitText) {\n element.textContent = exitText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"EXIT VR\" : \"EXIT AR\";\n }\n }\n\n element.style.display = \"\";\n }\n }\n }\n\n private static createButton() {\n const button = document.createElement(\"button\");\n Object.assign(button.style, {\n position: \"absolute\",\n bottom: \"20px\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n padding: \"40px 40px\",\n border: \"2px solid #fff\",\n borderRadius: \"16px\",\n background: \"rgba(0,0,0,0.1)\",\n color: \"#fff\",\n font: \"bold 28px sans-serif\",\n textAlign: \"center\",\n userSelect: \"none\",\n zIndex: \"999\",\n });\n document.body.appendChild(button);\n return button;\n }\n\n xrSupported() {\n return !!this.xr;\n }\n\n static JointEnum = JointEnum;\n static JOINT_IDS = JOINT_IDS;\n static NUM_JOINTS = NUM_JOINTS;\n static JOINT_INDEX = JOINT_INDEX;\n static JOINT_RADIUS = JOINT_RADIUS;\n static JOINT_SEGMENTS = JOINT_SEGMENTS;\n static JOINT_SEGMENT_STEPS = JOINT_SEGMENT_STEPS;\n static JOINT_TIPS = JOINT_TIPS;\n static FINGER_TIPS = FINGER_TIPS;\n static Hand = Hand;\n static HANDS = HANDS;\n\n left() {\n return this.hands[0];\n }\n\n right() {\n return this.hands[1];\n }\n\n updateControllers(camera: THREE.Camera) {\n const cameraFrame = camera.parent as THREE.Group;\n\n const now = performance.now();\n const deltaTime = (now - (this.lastControllersUpdate || now)) / 1000;\n this.lastControllersUpdate = now;\n\n const xrGamepads: XrGamepads = {};\n for (const source of this.renderer.xr.getSession()?.inputSources ?? []) {\n const gamepad = source.gamepad;\n if (\n gamepad &&\n (source.handedness === \"left\" || source.handedness === \"right\")\n ) {\n xrGamepads[source.handedness] = gamepad;\n if (source.handedness === \"left\") {\n xrGamepads.leftIsHand = !!source.hand;\n } else if (source.handedness === \"right\") {\n xrGamepads.rightIsHand = !!source.hand;\n }\n }\n }\n\n const rotate = (\n this.controllers?.getRotate ?? DEFAULT_CONTROLLER_GETROTATE\n )(xrGamepads, this);\n rotate.multiply(\n new THREE.Vector3(\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rollSpeed ?? DEFAULT_CONTROLLER_ROLL_SPEED,\n ),\n );\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler(-rotate.y, -rotate.x, rotate.z, \"YXZ\");\n const quat = new THREE.Quaternion().setFromEuler(eulers);\n\n const pivot = camera.getWorldPosition(new THREE.Vector3());\n cameraFrame.parent?.worldToLocal(pivot);\n\n cameraFrame.position.sub(pivot);\n cameraFrame.position.applyQuaternion(quat);\n cameraFrame.position.add(pivot);\n cameraFrame.quaternion.premultiply(quat);\n }\n\n const move = (this.controllers?.getMove ?? DEFAULT_CONTROLLER_GETMOVE)(\n xrGamepads,\n this,\n );\n\n let moveSpeed =\n this.controllers?.moveSpeed ?? DEFAULT_CONTROLLER_MOVE_SPEED;\n if (\n (this.controllers?.getFast ?? DEFAULT_CONTROLLER_GETFAST)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_FAST_MULTIPLIER;\n }\n if (\n (this.controllers?.getSlow ?? DEFAULT_CONTROLLER_GETSLOW)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_SLOW_MULTIPLIER;\n }\n\n if (this.controllers?.moveHeading) {\n move.applyQuaternion(camera.quaternion);\n } else if (this.controllers?.moveDirection) {\n SCRATCH_EULER.setFromQuaternion(camera.quaternion, \"YXZ\");\n SCRATCH_EULER.x = 0;\n SCRATCH_EULER.z = 0;\n SCRATCH_QUAT_A.setFromEuler(SCRATCH_EULER);\n move.applyQuaternion(SCRATCH_QUAT_A);\n }\n move.applyQuaternion(cameraFrame.quaternion);\n\n move.multiplyScalar(deltaTime * moveSpeed);\n cameraFrame.position.add(move);\n }\n\n updateHands({ xrFrame }: { xrFrame: XRFrame }) {\n const xrSession = this.renderer.xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = this.renderer.xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n for (const hand of this.hands) {\n if (hand) {\n hand.lastJoints = hand.joints;\n hand.joints = undefined;\n }\n }\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n const hand = inputSource.handedness as Hand;\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n if (!xrHand) {\n continue;\n }\n\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n\n if (!xrHand.joints) {\n xrHand.joints = {};\n }\n xrHand.joints[jointId] = {\n position: new THREE.Vector3(position.x, position.y, position.z),\n quaternion: new THREE.Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: JOINT_RADIUS[jointId],\n };\n }\n }\n }\n }\n }\n\n makeJointSplats(hand: Hand): JointSplats {\n const mesh = new JointSplats(hand);\n mesh.onFrame = () => {\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n const joints = xrHand?.joints;\n mesh.updateJoints(joints);\n };\n return mesh;\n }\n\n snapshotHands(time: number) {\n const hands = [\n this.hands[0]?.snapshotJoints(),\n this.hands[1]?.snapshotJoints(),\n ];\n return { time, hands };\n }\n}\n\ntype JointSnapshot = { pos: number[]; quat: number[]; radius: number };\ntype HandSnapshot = { [key in JointId]?: JointSnapshot };\ntype HandsSnapshot = {\n time: number;\n hands: (HandSnapshot | undefined)[];\n};\n\nconst round4 = (value: number) => Math.round(value * 10000) / 10000;\nconst SCRATCH_EULER = new THREE.Euler(0, 0, 0, \"YXZ\");\nconst SCRATCH_QUAT_A = new THREE.Quaternion();\nconst SCRATCH_QUAT_B = new THREE.Quaternion();\n\nexport function lerpHandsSnapshots(\n snapshots: HandsSnapshot[],\n time: number,\n): HandsSnapshot | null {\n if (!snapshots.length) {\n return null;\n }\n\n const first = snapshots[0];\n const last = snapshots[snapshots.length - 1];\n\n if (time < first.time || time > last.time) {\n return null;\n }\n\n const floorIndex = findSnapshotFloorIndex(snapshots, time);\n if (floorIndex === -1) {\n return null;\n }\n\n const from = snapshots[floorIndex];\n const to = snapshots[floorIndex + 1];\n if (!to) {\n return cloneSnapshot(from, time);\n }\n\n const span = to.time - from.time;\n const factor = span > 0 ? (time - from.time) / span : 0;\n\n return interpolateSnapshots(from, to, factor, time);\n}\n\nfunction interpolateSnapshots(\n from: HandsSnapshot,\n to: HandsSnapshot,\n factor: number,\n time: number,\n): HandsSnapshot {\n const maxHands = Math.max(from.hands.length, to.hands.length);\n const hands = Array.from({ length: maxHands }, (_, handIndex) =>\n lerpHandSnapshot(from.hands[handIndex], to.hands[handIndex], factor),\n );\n return { time, hands };\n}\n\nfunction cloneSnapshot(snapshot: HandsSnapshot, time: number): HandsSnapshot {\n return {\n time,\n hands: snapshot.hands.map((hand) => cloneHandSnapshot(hand)),\n };\n}\n\nexport class XrHand {\n hand: Hand;\n joints?: HandJoints;\n lastJoints?: HandJoints;\n\n constructor(hand: Hand) {\n this.hand = hand;\n }\n\n static newFromSnapshot(hand: Hand, snapshot: HandSnapshot) {\n const h = new XrHand(hand);\n h.joints = {};\n for (const jointId of JOINT_IDS) {\n const joint = snapshot[jointId];\n if (!joint) {\n continue;\n }\n h.joints[jointId] = {\n position: new THREE.Vector3(joint.pos[0], joint.pos[1], joint.pos[2]),\n quaternion: new THREE.Quaternion(\n joint.quat[0],\n joint.quat[1],\n joint.quat[2],\n joint.quat[3],\n ),\n radius: joint.radius,\n };\n }\n return h;\n }\n\n valid() {\n return !!this.joints;\n }\n\n snapshotJoints() {\n if (!this.joints) {\n return undefined;\n }\n\n const snapshot: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (!joint) {\n continue;\n }\n snapshot[jointId] = {\n pos: joint.position.toArray().map(round4),\n quat: joint.quaternion.toArray().map(round4),\n radius: round4(joint.radius),\n };\n }\n return snapshot;\n }\n\n toFlatArray() {\n if (!this.joints) {\n return undefined;\n }\n const array = new Float32Array(1 + 25 * 7);\n array[0] = this.hand === Hand.left ? 0 : 1;\n let index = 1;\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (joint) {\n array[index] = joint.position.x;\n array[index + 1] = joint.position.y;\n array[index + 2] = joint.position.z;\n array[index + 3] = joint.quaternion.x;\n array[index + 4] = joint.quaternion.y;\n array[index + 5] = joint.quaternion.z;\n array[index + 6] = joint.quaternion.w;\n }\n index += 7;\n }\n return array;\n }\n}\n\nfunction findSnapshotFloorIndex(snapshots: HandsSnapshot[], time: number) {\n let low = 0;\n let high = snapshots.length - 1;\n while (low <= high) {\n const mid = (low + high) >> 1;\n if (snapshots[mid].time <= time) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n return high;\n}\n\nfunction lerpHandSnapshot(\n fromHand?: HandSnapshot,\n toHand?: HandSnapshot,\n factor = 0,\n) {\n if (!fromHand || !toHand) {\n return undefined;\n }\n const hand: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = lerpJointSnapshot(fromHand[jointId], toHand[jointId], factor);\n if (joint) {\n hand[jointId] = joint;\n }\n }\n return hand;\n}\n\nfunction lerpJointSnapshot(\n fromJoint?: JointSnapshot,\n toJoint?: JointSnapshot,\n factor = 0,\n) {\n if (!fromJoint || !toJoint) {\n return undefined;\n }\n const pos = fromJoint.pos.map(\n (value, index) => value + (toJoint.pos[index] - value) * factor,\n );\n const quat = SCRATCH_QUAT_A.fromArray(fromJoint.quat)\n .slerp(SCRATCH_QUAT_B.fromArray(toJoint.quat), factor)\n .toArray();\n const radius =\n fromJoint.radius + (toJoint.radius - fromJoint.radius) * factor;\n\n return { pos, quat, radius };\n}\n\nfunction cloneHandSnapshot(hand?: HandSnapshot) {\n if (!hand) {\n return undefined;\n }\n const clone: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = hand[jointId];\n if (joint) {\n clone[jointId] = cloneJointSnapshot(joint);\n }\n }\n return clone;\n}\n\nfunction cloneJointSnapshot(joint: JointSnapshot): JointSnapshot {\n return {\n pos: [...joint.pos],\n quat: [...joint.quat],\n radius: joint.radius,\n };\n}\n\nexport class JointSplats extends SplatMesh {\n hand: Hand;\n\n constructor(hand: Hand) {\n super({});\n this.hand = hand;\n }\n\n private scratchCenter = new THREE.Vector3();\n private scratchQuat = new THREE.Quaternion(0, 0, 0, 1);\n private scratchScales = new THREE.Vector3().setScalar(0.01);\n private scratchColor = new THREE.Color(1, 1, 1);\n\n updateJoints(joints?: HandJoints) {\n this.visible = false;\n\n if (!joints || !this.packedSplats) {\n return;\n }\n\n this.visible = true;\n let splatIndex = 0;\n\n for (const jointId of JOINT_IDS) {\n const joint = joints[jointId];\n if (!joint) {\n continue;\n }\n this.scratchCenter.copy(joint.position);\n this.scratchQuat.copy(joint.quaternion);\n this.scratchScales.set(\n joint.radius,\n 0.75 * joint.radius,\n 1.5 * joint.radius,\n );\n // this.scratchColor.set((joint.radius * 123) % 1, (joint.radius * 345) % 1, (joint.radius * 234) % 1);\n const opacity = 0.75;\n\n this.packedSplats.setSplat(\n splatIndex,\n this.scratchCenter,\n this.scratchScales,\n this.scratchQuat,\n opacity,\n this.scratchColor,\n );\n splatIndex += 1;\n }\n\n this.packedSplats.numSplats = splatIndex;\n this.packedSplats.needsUpdate = true;\n this.numSplats = splatIndex;\n this.updateVersion();\n }\n}\n","import {\n Color,\n Matrix4,\n type Object3D,\n Quaternion,\n Vector3,\n type WebXRManager,\n} from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\n// Experimental WebXR hand tracking and movement\n\nconst DEFAULT_MOVE_INERTIA = 0.5;\nconst DEFAULT_ROTATE_INERTIA = 0.5;\nconst TOUCH_BIAS = 0.0;\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.02,\n t1: 0.014,\n t2: 0.0115,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nexport type Joint = {\n position: Vector3;\n quaternion: Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\nexport type HandsJoints = { [key in Hand]?: HandJoints };\n\nexport class XrHands {\n hands: HandsJoints = {};\n last: HandsJoints = {};\n\n values: Record = {};\n tests: Record = {};\n lastTests: Record = {};\n\n updated = false;\n\n update({ xr, xrFrame }: { xr: WebXRManager; xrFrame: XRFrame }) {\n const xrSession = xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n this.last = this.hands;\n this.lastTests = this.tests;\n\n this.hands = {};\n this.values = {};\n this.tests = {};\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n\n const hand = inputSource.handedness as Hand;\n this.hands[hand] = {};\n\n // Iterate over JointId\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n this.hands[hand][jointId] = {\n position: new Vector3(position.x, position.y, position.z),\n quaternion: new Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: jointPose.radius || 0.001,\n };\n }\n }\n }\n }\n\n for (const hand of HANDS) {\n for (const { key, value } of [\n { key: `${hand}AllTips`, value: this.allTipsTouching(hand) },\n {\n key: `${hand}IndexThumb`,\n value: this.touching(hand, \"i4\", hand, \"t3\"),\n },\n {\n key: `${hand}MiddleThumb`,\n value: this.touching(hand, \"m4\", hand, \"t3\"),\n },\n {\n key: `${hand}RingThumb`,\n value: this.touching(hand, \"r4\", hand, \"t3\"),\n },\n {\n key: `${hand}PinkyThumb`,\n value: this.touching(hand, \"p4\", hand, \"t3\"),\n },\n { key: `${hand}TriTips`, value: this.triTipsTouching(hand) },\n ]) {\n this.values[key] = value;\n this.tests[key] =\n value === 1.0\n ? true\n : value === 0.0\n ? false\n : (this.lastTests[key] ?? false);\n }\n }\n }\n\n makeGhostMesh(): SplatMesh {\n const center = new Vector3();\n const scales = new Vector3(0.01, 0.01, 0.01);\n const quaternion = new Quaternion(0, 0, 0, 1);\n const color = new Color(1, 1, 1);\n const CYCLE = Math.PI * 3;\n const WHITE = new Color(1, 1, 1);\n let opacity = 1.0;\n\n const mesh = new SplatMesh({\n onFrame: () => {\n if (!mesh.packedSplats) {\n return;\n }\n let splatIndex = 0;\n for (const handedness of HANDS) {\n const xrHand = this.hands[handedness];\n for (const [index, segment] of JOINT_SEGMENTS.entries()) {\n for (let i = 1; i < segment.length; ++i) {\n const segmentSplats = JOINT_SEGMENT_STEPS[index][i - 1] * 2;\n const lastSegment = i + 1 === segment.length;\n const jointA = xrHand?.[segment[i - 1]];\n const jointB = xrHand?.[segment[i]];\n\n for (let j = 0; j < segmentSplats; ++j) {\n const t = (j + 0.5) / segmentSplats;\n opacity = 0.0;\n if (jointA && jointB) {\n center.copy(jointA.position).lerp(jointB.position, t);\n quaternion\n .copy(jointA.quaternion)\n .slerp(jointB.quaternion, t);\n const radiusA = JOINT_RADIUS[segment[i - 1]];\n const radiusB = JOINT_RADIUS[segment[i]];\n let radius = (1 - t) * radiusA + t * radiusB;\n if (lastSegment && t > 0.8) {\n // Round out finger tips\n radius *= Math.sqrt(1 - ((t - 0.8) / 0.2) ** 2);\n }\n scales.set(0.65 * radius, 0.5 * radius, 0.003);\n color.set(\n 0.55 + 0.45 * Math.sin(center.x * CYCLE),\n 0.55 + 0.45 * Math.sin(center.y * CYCLE),\n 0.55 + 0.45 * Math.sin(center.z * CYCLE),\n );\n if (handedness === \"right\") {\n color.set(1 - color.r, 1 - color.g, 1 - color.b);\n }\n opacity = 0.75;\n }\n mesh.packedSplats.setSplat(\n splatIndex,\n center,\n scales,\n quaternion,\n opacity,\n color,\n );\n splatIndex += 1;\n }\n }\n }\n }\n mesh.packedSplats.numSplats = splatIndex;\n mesh.packedSplats.needsUpdate = true;\n mesh.numSplats = splatIndex;\n mesh.updateVersion();\n },\n });\n return mesh;\n }\n\n distance(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const hA = last ? this.last[handA] : this.hands[handA];\n const hB = last ? this.last[handB] : this.hands[handB];\n const jA = hA?.[jointA];\n const jB = hB?.[jointB];\n if (!jA || !jB) {\n return Number.POSITIVE_INFINITY;\n }\n return jA.position.distanceTo(jB.position);\n }\n\n separation(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.distance(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return d - JOINT_RADIUS[jointA] - JOINT_RADIUS[jointB];\n }\n\n touching(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.separation(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return 1 - Math.max(0, Math.min(1, d / 0.01 - TOUCH_BIAS));\n }\n\n allTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"r4\", last),\n this.touching(hand, \"r4\", hand, \"p4\", last),\n // this.touching(hand, \"p4\", hand, \"t3\", last),\n );\n }\n\n triTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"t3\", last),\n );\n }\n}\n\nexport class HandMovement {\n xrHands: XrHands;\n control: Object3D;\n moveInertia: number;\n rotateInertia: number;\n\n lastGrip: { [key in Hand]?: Vector3 } = {};\n lastPivot: Vector3 = new Vector3();\n rotateVelocity = 0;\n velocity: Vector3 = new Vector3();\n\n constructor({\n xrHands,\n control,\n moveInertia,\n rotateInertia,\n }: {\n xrHands: XrHands;\n control: Object3D;\n moveInertia?: number;\n rotateInertia?: number;\n }) {\n this.xrHands = xrHands;\n this.control = control;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n }\n\n update(deltaTime: number) {\n const grip: { [key in Hand]?: Vector3 } = {};\n for (const handedness of HANDS) {\n const hand = this.xrHands.hands[handedness];\n if (hand && this.xrHands.tests[`${handedness}MiddleThumb`]) {\n grip[handedness] = new Vector3()\n .add(hand.t3?.position ?? new Vector3())\n .add(hand.i4?.position ?? new Vector3())\n .add(hand.m4?.position ?? new Vector3())\n .add(hand.r4?.position ?? new Vector3())\n .add(hand.p4?.position ?? new Vector3())\n .multiplyScalar(1 / 5);\n }\n }\n\n if (grip.left && grip.right && this.lastGrip.left && this.lastGrip.right) {\n const mid = grip.left.clone().add(grip.right).multiplyScalar(0.5);\n const lastMid = this.lastGrip.left\n .clone()\n .add(this.lastGrip.right)\n .multiplyScalar(0.5);\n this.lastPivot = mid;\n\n const delta = mid.clone().applyMatrix4(this.control.matrix);\n delta.sub(lastMid.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n\n const angle = Math.atan2(grip.left.z - mid.z, grip.left.x - mid.x);\n const lastAngle = Math.atan2(\n this.lastGrip.left.z - lastMid.z,\n this.lastGrip.left.x - lastMid.x,\n );\n // Find closest rotation over circle between angle and lastAngle\n let closestAngle = angle - lastAngle;\n if (closestAngle > Math.PI) {\n closestAngle -= Math.PI * 2;\n } else if (closestAngle < -Math.PI) {\n closestAngle += Math.PI * 2;\n }\n const rotateVelocity = closestAngle / deltaTime;\n\n const blend = Math.exp(-20 * deltaTime);\n this.rotateVelocity =\n this.rotateVelocity * blend + rotateVelocity * (1 - blend);\n } else {\n this.rotateVelocity *= Math.exp(-deltaTime / this.rotateInertia);\n\n if (grip.left && this.lastGrip.left) {\n const delta = grip.left.clone().applyMatrix4(this.control.matrix);\n delta.sub(this.lastGrip.left.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else if (grip.right && this.lastGrip.right) {\n const delta = grip.right.clone().applyMatrix4(this.control.matrix);\n delta.sub(\n this.lastGrip.right.clone().applyMatrix4(this.control.matrix),\n );\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else {\n this.velocity.multiplyScalar(Math.exp(-deltaTime / this.moveInertia));\n }\n }\n\n const negPivot = this.lastPivot.clone().negate();\n const rotate = new Matrix4()\n .makeTranslation(negPivot)\n .premultiply(new Matrix4().makeRotationY(this.rotateVelocity * deltaTime))\n .premultiply(new Matrix4().makeTranslation(this.lastPivot));\n this.control.matrix.multiply(rotate);\n this.control.matrix.decompose(\n this.control.position,\n this.control.quaternion,\n this.control.scale,\n );\n this.control.updateMatrixWorld(true);\n\n this.control.position.sub(this.velocity.clone().multiplyScalar(deltaTime));\n this.lastGrip = grip;\n }\n}\n","import * as THREE from \"three\";\nimport { isAndroid, isIos } from \"./utils\";\n\n// Spark controls for keyboard + mouse, game pad, or mobile multi-touch\n\nconst DEFAULT_MOVEMENT_SPEED = 1.0;\nconst DEFAULT_ROLL_SPEED = 2.0;\nconst DEFAULT_ROTATE_SPEED = 0.002;\nconst DEFAULT_SLIDE_SPEED = 0.006;\nconst DEFAULT_SCROLL_SPEED = 0.0015;\nconst DEFAULT_ROLL_SPRING = 0.0;\nconst DEFAULT_ROTATE_INERTIA = 0.15;\nconst DEFAULT_MOVE_INERTIA = 0.15;\nconst DEFAULT_STICK_THRESHOLD = 0.1;\nconst DEFAULT_FPS_ROTATE_SPEED = 2.0;\n// const DEFAULT_POINTER_ROLL_SCALE = 1.0;\nconst DEFAULT_POINTER_ROLL_SCALE = 0.0;\nconst DEFAULT_PRESS_MOVE_DELAY_MS = 500;\nconst DEFAULT_PRESS_MOVE_ACCEL_MS = 500;\n\n// Time limit for double-finger press (pinch etc)\nconst DUAL_PRESS_MS = 200;\n// Time limit for double-click/double-tap\nconst DOUBLE_PRESS_LIMIT_MS = 400;\n// Distance limit for double-click.\nconst DOUBLE_PRESS_DISTANCE = 25;\n\nconst MOVEMENT_THRESHOLD = 1.0e-4;\n\n// Standard WASD movement keys with R+F for up/down\nconst WASD_KEYCODE_MOVE = {\n KeyW: new THREE.Vector3(0, 0, -1),\n KeyS: new THREE.Vector3(0, 0, 1),\n KeyA: new THREE.Vector3(-1, 0, 0),\n KeyD: new THREE.Vector3(1, 0, 0),\n KeyE: new THREE.Vector3(0, 1, 0),\n KeyQ: new THREE.Vector3(0, -1, 0),\n};\n\n// Arrow key movement with PageUp/PageDown\nconst ARROW_KEYCODE_MOVE = {\n ArrowUp: new THREE.Vector3(0, 0, -1),\n ArrowDown: new THREE.Vector3(0, 0, 1),\n ArrowLeft: new THREE.Vector3(-1, 0, 0),\n ArrowRight: new THREE.Vector3(1, 0, 0),\n PageUp: new THREE.Vector3(0, 1, 0),\n PageDown: new THREE.Vector3(0, -1, 0),\n};\n\n// Rolling with Q/E\nconst QE_KEYCODE_ROTATE = {\n KeyQ: new THREE.Vector3(0, 0, 1),\n KeyE: new THREE.Vector3(0, 0, -1),\n};\n\n// Home/End/Insert/Delete for rotation\nconst ARROW_KEYCODE_ROTATE = {\n Home: new THREE.Vector3(0, -1, 0),\n End: new THREE.Vector3(0, 1, 0),\n Insert: new THREE.Vector3(-1, 0, 0),\n Delete: new THREE.Vector3(1, 0, 0),\n};\n\n// SparkControls provides simple, intuitive controls for navigating 3D space that\n// use the keyboard + mouse, game pad, or mobile multi-touch. Internally it\n// instantiates and updates a `FpsMovement` and `PointerControls` instance.\n\nexport class SparkControls {\n fpsMovement: FpsMovement;\n pointerControls: PointerControls;\n lastTime = 0;\n\n constructor({ canvas }: { canvas: HTMLCanvasElement }) {\n this.fpsMovement = new FpsMovement({});\n this.pointerControls = new PointerControls({ canvas });\n }\n\n update(control: THREE.Object3D, camera?: THREE.Camera) {\n const time = performance.now();\n const deltaTime = (time - (this.lastTime || time)) / 1000;\n this.lastTime = time;\n\n let updated = this.fpsMovement.update(deltaTime, control);\n if (this.pointerControls.update(deltaTime, control, camera)) {\n updated = true;\n }\n return updated;\n }\n}\n\n// FpsMovement implements controls that will be familiar to anyone who plays\n// First Person Shooters using keyboard + mouse or a gamepad. Creating a FpsMovement\n// instance provides many parameters for configuring the controls.\n//\n// When gamepads are connected, FpsMovement will always use gamepad index 0\n// for twin-stick movement and rotation.\n//\n// If xr is passed in, the WebXR controllers can be used as a split gamepad\n// to control movement and rotation. (tested on Quest 3)\n\nexport class FpsMovement {\n moveSpeed: number;\n rollSpeed: number;\n stickThreshold: number;\n rotateSpeed: number;\n keycodeMoveMapping: { [key: string]: THREE.Vector3 };\n keycodeRotateMapping: { [key: string]: THREE.Vector3 };\n gamepadMapping: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n capsMultiplier: number;\n shiftMultiplier: number;\n ctrlMultiplier: number;\n xr?: THREE.WebXRManager;\n // Enable/disable controls updates\n enable = true;\n extraMove = new THREE.Vector3();\n\n // Currently active event.key values\n keydown: { [key: string]: boolean };\n // Currently active event.code values\n keycode: { [key: string]: boolean };\n\n constructor({\n moveSpeed,\n rollSpeed,\n stickThreshold,\n rotateSpeed,\n keycodeMoveMapping,\n keycodeRotateMapping,\n gamepadMapping,\n capsMultiplier,\n shiftMultiplier,\n ctrlMultiplier,\n xr,\n }: {\n // Base movement speed (default DEFAULT_MOVEMENT_SPEED)\n moveSpeed?: number;\n // Base roll speed (default DEFAULT_ROLL_SPEED)\n rollSpeed?: number;\n // Stick threshold (default DEFAULT_STICK_THRESHOLD)\n stickThreshold?: number;\n // Speed of rotation when using gamepad or keys (default DEFAULT_FPS_ROTATE_SPEED)\n rotateSpeed?: number;\n // Maps keyboard keys to movement directions\n // (default {...WASD_KEYCODE_MOVE, ...ARROW_KEYCODE_MOVE})\n keycodeMoveMapping?: { [key: string]: THREE.Vector3 };\n // Maps keyboard keys to rotation directions\n // (default { ...ARROW_KEYCODE_ROTATE})\n keycodeRotateMapping?: { [key: string]: THREE.Vector3 };\n // Maps gamepad buttons to control actions\n // (default {4: \"rollLeft\", 5: \"rollRight\", 6: \"ctrl\", 7: \"shift\"})\n gamepadMapping?: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n // Speed multiplier when Caps Lock is active (default: 10)\n capsMultiplier?: number;\n // Speed multiplier when Shift is active (default: 5)\n shiftMultiplier?: number;\n // Speed multiplier when Ctrl is active (default: 1/5)\n ctrlMultiplier?: number;\n // Optional WebXR manager for XR controller stick support\n xr?: THREE.WebXRManager;\n } = {}) {\n this.moveSpeed = moveSpeed ?? DEFAULT_MOVEMENT_SPEED;\n this.rollSpeed = rollSpeed ?? DEFAULT_ROLL_SPEED;\n this.stickThreshold = stickThreshold ?? DEFAULT_STICK_THRESHOLD;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_FPS_ROTATE_SPEED;\n this.keycodeMoveMapping = keycodeMoveMapping ?? {\n ...WASD_KEYCODE_MOVE,\n ...ARROW_KEYCODE_MOVE,\n };\n this.keycodeRotateMapping = keycodeRotateMapping ?? {\n // ...QE_KEYCODE_ROTATE,\n ...ARROW_KEYCODE_ROTATE,\n };\n this.gamepadMapping = gamepadMapping ?? {\n 4: \"rollLeft\",\n 5: \"rollRight\",\n 6: \"ctrl\",\n 7: \"shift\",\n };\n this.capsMultiplier = capsMultiplier ?? 10.0;\n this.shiftMultiplier = shiftMultiplier ?? 5.0;\n this.ctrlMultiplier = ctrlMultiplier ?? 1.0 / 5.0;\n\n this.xr = xr;\n\n this.keydown = {};\n this.keycode = {};\n\n document.addEventListener(\"keydown\", (event) => {\n this.keydown[event.key] = true;\n this.keycode[event.code] = true;\n });\n document.addEventListener(\"keyup\", (event) => {\n this.keydown[event.key] = false;\n this.keycode[event.code] = false;\n });\n window.addEventListener(\"blur\", () => {\n this.keydown = {};\n this.keycode = {};\n });\n }\n\n // Call this method in your render loop with `control` set to the object to control\n // (`THREE.Camera` or a `THREE.Object3D` that contains it), with `deltaTime`\n // in seconds since the last update.\n update(deltaTime: number, control: THREE.Object3D) {\n if (!this.enable) {\n return false;\n }\n\n // Update gamepad / XR controllers\n\n const sticks = [new THREE.Vector2(), new THREE.Vector2()];\n const gamepad = navigator.getGamepads()[0];\n if (gamepad) {\n sticks[0].set(gamepad.axes[0], gamepad.axes[1]);\n sticks[1].set(gamepad.axes[2], gamepad.axes[3]);\n }\n const gamepadButtons =\n gamepad?.buttons.map((button) => button.pressed) || [];\n\n const xrSources = Array.from(this.xr?.getSession()?.inputSources ?? []);\n for (const source of xrSources) {\n const gamepad = source.gamepad;\n if (gamepad) {\n switch (source.handedness) {\n case \"none\": {\n sticks[0].x += gamepad.axes[0];\n sticks[0].y += gamepad.axes[1];\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n case \"left\": {\n sticks[0].x += gamepad.axes[2];\n sticks[0].y += gamepad.axes[3];\n break;\n }\n case \"right\": {\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n }\n }\n }\n\n for (const stick of sticks) {\n stick.x = Math.abs(stick.x) >= this.stickThreshold ? stick.x : 0;\n stick.y = Math.abs(stick.y) >= this.stickThreshold ? stick.y : 0;\n }\n\n // Rotation\n\n const rotate = new THREE.Vector3(\n sticks[1].x,\n sticks[1].y,\n 0,\n ).multiplyScalar(this.rotateSpeed);\n\n for (const [keycode, rot] of Object.entries(this.keycodeRotateMapping)) {\n if (this.keycode[keycode]) {\n rotate.add(rot);\n }\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"rollLeft\":\n rotate.z += 1;\n break;\n case \"rollRight\":\n rotate.z -= 1;\n break;\n }\n }\n }\n\n rotate.multiply(\n new THREE.Vector3(this.rotateSpeed, this.rotateSpeed, this.rollSpeed),\n );\n\n let updated = rotate.length() > MOVEMENT_THRESHOLD;\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z = Math.max(-Math.PI, Math.min(Math.PI, eulers.z + rotate.z));\n control.quaternion.setFromEuler(eulers);\n }\n\n // Movement\n\n const moveVector = new THREE.Vector3(sticks[0].x, 0, sticks[0].y);\n moveVector.add(this.extraMove);\n\n for (const [keycode, move] of Object.entries(this.keycodeMoveMapping)) {\n if (this.keycode[keycode]) {\n moveVector.add(move);\n }\n }\n\n let speedMultiplier = 1.0;\n if (this.keydown.CapsLock) {\n speedMultiplier *= this.capsMultiplier;\n }\n if (this.keycode.ShiftLeft || this.keycode.ShiftRight) {\n speedMultiplier *= this.shiftMultiplier;\n }\n if (this.keycode.ControlLeft || this.keycode.ControlRight) {\n speedMultiplier *= this.ctrlMultiplier;\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"shift\":\n speedMultiplier *= this.shiftMultiplier;\n break;\n case \"ctrl\":\n speedMultiplier *= this.ctrlMultiplier;\n break;\n }\n }\n }\n\n if (moveVector.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Apply movement in view direction\n moveVector.applyQuaternion(control.quaternion);\n control.position.add(\n moveVector.multiplyScalar(this.moveSpeed * speedMultiplier * deltaTime),\n );\n\n return updated;\n }\n}\n\ntype PointerState = {\n initial: THREE.Vector2;\n last: THREE.Vector2;\n position: THREE.Vector2;\n pointerId: number;\n button?: number;\n timeStamp: DOMHighResTimeStamp;\n};\n\n// `PointerControls` implements pointer/mouse/touch controls on the canvas,\n// for both desktop and mobile web applications.\n\nexport class PointerControls {\n canvas: HTMLCanvasElement;\n rotateSpeed: number;\n slideSpeed: number;\n scrollSpeed: number;\n swapRotateSlide: boolean;\n reverseRotate: boolean;\n reverseSlide: boolean;\n reverseSwipe: boolean;\n reverseScroll: boolean;\n moveInertia: number;\n rotateInertia: number;\n pointerRollScale: number;\n // Enable/disable controls updates\n enable = true;\n\n doublePress: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n // Time limit for double press (default DOUBLE_PRESS_LIMIT_MS)\n doublePressLimitMs: number;\n // Distance limit for double press (default DOUBLE_PRESS_DISTANCE)\n doublePressDistance: number;\n\n // Time delay in ms for press move to start\n pressMoveDelayMs: number;\n // Time in ms for press move to accelerate\n pressMoveAccelMs: number;\n // Speed of movement on press (default: 0)\n pressMoveSpeed: number;\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed: number;\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed: number;\n // Whether to move toward the screen center or finger when pressing to move\n pressMoveCenter: boolean;\n pressHeld?: boolean;\n doublePressed?: number;\n triplePressed: boolean;\n // Last pointer up event (default: null)\n lastUp: { position: THREE.Vector2; timeStamp: number } | null;\n lastLastUp: { position: THREE.Vector2; timeStamp: number } | null;\n\n // Pointer state for currently active rotating pointer\n rotating: PointerState | null;\n // Pointer state for currently active sliding pointer\n sliding: PointerState | null;\n // Pointer state for last pointer that downed\n lastDown: PointerState | null;\n // Whether we pressed two pointers at the same time\n dualPress: boolean;\n // Cumulative scroll movement\n scroll: THREE.Vector3;\n\n // Current rotation velocity\n rotateVelocity: THREE.Vector3;\n // Current movement velocity\n moveVelocity: THREE.Vector3;\n\n constructor({\n // The HTML canvas element to attach pointer events to\n canvas,\n // Speed of rotation (default DEFAULT_ROTATE_SPEED)\n rotateSpeed,\n // Speed of sliding when dragging with right/middle mouse button or two fingers\n // (default DEFAULT_SLIDE_SPEED)\n slideSpeed,\n // Speed of movement when using mouse scroll wheel (default DEFAULT_SCROLL_SPEED)\n scrollSpeed,\n // Swap the direction of rotation and sliding (default: false)\n swapRotateSlide,\n // Reverse the direction of rotation (default: false)\n reverseRotate,\n // Reverse the direction of sliding (default: false)\n reverseSlide,\n // Reverse the direction of swipe gestures (default: false)\n reverseSwipe,\n // Reverse the direction of scroll wheel movement (default: false)\n reverseScroll,\n // Inertia factor for movement (default: DEFAULT_MOVE_INERTIA)\n moveInertia,\n // Inertia factor for rotation (default: DEFAULT_ROTATE_INERTIA)\n rotateInertia,\n // Pointer rolling scale factor (default: DEFAULT_POINTER_ROLL_SCALE)\n pointerRollScale,\n // Callback for double press events (default: () => {})\n doublePress,\n // Time delay in ms for press move to start (default: DEFAULT_PRESS_MOVE_DELAY_MS)\n pressMoveDelayMs,\n // Time in ms for press move to accelerate (default: DEFAULT_PRESS_MOVE_ACCEL_MS)\n pressMoveAccelMs,\n // Speed of movement on press (default: 0)\n pressMoveSpeed,\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed,\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed,\n // Whether to move toward the screen center or finger when pressing to move (default: true)\n pressMoveCenter,\n }: {\n canvas: HTMLCanvasElement;\n rotateSpeed?: number;\n slideSpeed?: number;\n scrollSpeed?: number;\n swapRotateSlide?: boolean;\n reverseRotate?: boolean;\n reverseSlide?: boolean;\n reverseSwipe?: boolean;\n reverseScroll?: boolean;\n moveInertia?: number;\n rotateInertia?: number;\n pointerRollScale?: number;\n doublePress?: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n pressMoveDelayMs?: number;\n pressMoveAccelMs?: number;\n pressMoveSpeed?: number;\n doublePressMoveSpeed?: number;\n triplePressMoveSpeed?: number;\n pressMoveCenter?: boolean;\n }) {\n this.canvas = canvas;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_ROTATE_SPEED;\n this.slideSpeed = slideSpeed ?? DEFAULT_SLIDE_SPEED;\n this.scrollSpeed = scrollSpeed ?? DEFAULT_SCROLL_SPEED;\n this.swapRotateSlide = swapRotateSlide ?? false;\n this.reverseRotate = reverseRotate ?? (isAndroid() || isIos());\n this.reverseSlide = reverseSlide ?? false;\n this.reverseSwipe = reverseSwipe ?? false;\n this.reverseScroll = reverseScroll ?? false;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n this.pointerRollScale = pointerRollScale ?? DEFAULT_POINTER_ROLL_SCALE;\n\n this.doublePress = doublePress ?? (() => {});\n this.doublePressLimitMs = DOUBLE_PRESS_LIMIT_MS;\n this.doublePressDistance = DOUBLE_PRESS_DISTANCE;\n\n this.pressMoveDelayMs = pressMoveDelayMs ?? DEFAULT_PRESS_MOVE_DELAY_MS;\n this.pressMoveAccelMs = pressMoveAccelMs ?? DEFAULT_PRESS_MOVE_ACCEL_MS;\n this.pressMoveSpeed = pressMoveSpeed ?? 0;\n this.doublePressMoveSpeed =\n doublePressMoveSpeed ?? this.pressMoveSpeed * 5.0;\n this.triplePressMoveSpeed =\n triplePressMoveSpeed ?? this.doublePressMoveSpeed * 5.0;\n this.pressMoveCenter = pressMoveCenter ?? true;\n this.doublePressed = undefined;\n this.triplePressed = false;\n this.lastUp = null;\n this.lastLastUp = null;\n\n this.rotating = null;\n this.sliding = null;\n this.lastDown = null;\n this.dualPress = false;\n this.scroll = new THREE.Vector3();\n\n this.rotateVelocity = new THREE.Vector3();\n this.moveVelocity = new THREE.Vector3();\n\n canvas.addEventListener(\"pointerdown\", (event: PointerEvent) => {\n const position = this.getPointerPosition(event);\n const initial = position.clone();\n const last = position.clone();\n\n // Determine if we're starting a rotation pointer action\n const isRotate =\n (!this.swapRotateSlide &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 0)) ||\n (this.swapRotateSlide &&\n this.sliding &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 1));\n // const isRotate =\n // !this.rotating && (event.pointerType !== \"mouse\" || event.button === 0);\n const { pointerId } = event;\n const timeStamp = performance.now();\n\n if (isRotate) {\n this.rotating = { initial, last, position, pointerId, timeStamp };\n this.lastDown = this.rotating;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n this.dualPress = false;\n } else if (!this.sliding) {\n // If it's not a rotation action and we're not yet sliding, the next\n // pointer activates a sliding action\n const button = event.pointerType === \"mouse\" ? event.button : undefined;\n this.sliding = {\n initial,\n last,\n position,\n pointerId,\n button,\n timeStamp,\n };\n this.lastDown = this.sliding;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n // Check if we pressed both pointers at roughly the same time\n this.dualPress =\n this.rotating != null &&\n timeStamp - this.rotating.timeStamp < DUAL_PRESS_MS;\n }\n\n if (this.lastUp) {\n const distance = this.lastUp.position.distanceTo(position);\n const intervalMs = timeStamp - this.lastUp.timeStamp;\n if (\n distance < this.doublePressDistance &&\n intervalMs < this.doublePressLimitMs\n ) {\n this.doublePressed = performance.now();\n this.triplePressed = false;\n\n if (this.lastLastUp) {\n const lastDistance = this.lastLastUp.position.distanceTo(\n this.lastUp.position,\n );\n const lastIntervalMs =\n this.lastUp.timeStamp - this.lastLastUp.timeStamp;\n if (\n lastDistance < this.doublePressDistance &&\n lastIntervalMs < this.doublePressLimitMs\n ) {\n this.triplePressed = true;\n }\n }\n }\n }\n });\n\n const pointerUp = (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.sliding) {\n canvas.releasePointerCapture(this.sliding.pointerId);\n this.sliding = null;\n }\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.rotating) {\n canvas.releasePointerCapture(this.rotating.pointerId);\n this.rotating = null;\n }\n }\n\n this.doublePressed = undefined;\n this.triplePressed = false;\n\n const position = this.getPointerPosition(event);\n const lastUp = this.lastUp;\n this.lastLastUp = this.lastUp;\n const timeStamp = performance.now();\n this.lastUp = { position, timeStamp };\n\n if (lastUp) {\n const distance = lastUp.position.distanceTo(position);\n if (distance < this.doublePressDistance) {\n const intervalMs = timeStamp - lastUp.timeStamp;\n if (intervalMs < this.doublePressLimitMs) {\n // We pressed and release twice within the time and distance limits\n // this.lastUp = null;\n this.doublePress({ position, intervalMs });\n }\n }\n }\n };\n\n document.addEventListener(\"pointerup\", pointerUp);\n document.addEventListener(\"pointercancel\", pointerUp);\n\n document.addEventListener(\"pointermove\", (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating.position = this.getPointerPosition(event);\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding.position = this.getPointerPosition(event);\n }\n });\n\n canvas.addEventListener(\"contextmenu\", (event: MouseEvent) => {\n // Prevent context menu appearing on right click\n event.preventDefault();\n });\n\n canvas.addEventListener(\"wheel\", (event: WheelEvent) => {\n this.scroll.add(\n new THREE.Vector3(event.deltaX, event.deltaY, event.deltaZ),\n );\n event.preventDefault();\n });\n }\n\n getPointerPosition(event: PointerEvent): THREE.Vector2 {\n const rect = this.canvas.getBoundingClientRect();\n return new THREE.Vector2(\n event.clientX - rect.left,\n event.clientY - rect.top,\n );\n }\n\n update(deltaTime: number, control: THREE.Object3D, camera?: THREE.Camera) {\n if (!this.enable) {\n return false;\n }\n\n const now = performance.now();\n let updated = false;\n\n if (this.dualPress && this.rotating && this.sliding) {\n // We pressed both pointers at the same time, either pinching or sliding\n const motion = [\n this.rotating.position.clone().sub(this.rotating.last),\n this.sliding.position.clone().sub(this.sliding.last),\n ];\n const coincidence = motion[0].dot(motion[1]);\n\n if (coincidence >= 0.2) {\n // Similar directions so slide the camera on the XY plane\n const totalMotion = motion[0].clone().add(motion[1]);\n const slide = new THREE.Vector3(totalMotion.x, -totalMotion.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSwipe ? 1 : -1));\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else if (coincidence <= -0.2) {\n // Opposite directions so either pinch or roll motion\n const deltaDir = this.sliding.last.clone().sub(this.rotating.last);\n const deltaDist = deltaDir.length();\n deltaDir.multiplyScalar(1 / deltaDist).normalize();\n\n const orthoDir = new THREE.Vector2(-deltaDir.y, deltaDir.x);\n const motionDir = [motion[0].dot(deltaDir), motion[1].dot(deltaDir)];\n const motionOrtho = [motion[0].dot(orthoDir), motion[1].dot(orthoDir)];\n\n // Pinching motion\n const midpoint = this.rotating.last\n .clone()\n .add(this.sliding.last)\n .multiplyScalar(0.5);\n let midpointDir = new THREE.Vector3();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcMidpoint = new THREE.Vector2(\n (midpoint.x / this.canvas.clientWidth) * 2 - 1,\n -(midpoint.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcMidpoint, theCamera);\n midpointDir = raycaster.ray.direction;\n }\n const pinchOut = motionDir[1] - motionDir[0];\n const slide = midpointDir.multiplyScalar(pinchOut * this.slideSpeed);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Rolling motion\n // Calculate angle of orthogonal motion change over distance deltaDist/2\n // motionOrtho[0] and 1 are already in float distance\n const angles = [\n Math.atan(motionOrtho[0] / (-0.5 * deltaDist)),\n Math.atan(motionOrtho[1] / (0.5 * deltaDist)),\n ];\n const rotate = 0.5 * (angles[0] + angles[1]) * this.pointerRollScale;\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.z = Math.max(\n -Math.PI,\n Math.min(Math.PI, eulers.z + 0.5 * rotate),\n );\n control.quaternion.setFromEuler(eulers);\n\n if (Math.abs(rotate) > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n this.rotating.last.copy(this.rotating.position);\n this.sliding.last.copy(this.sliding.position);\n } else {\n // Didn't press both pointers at the same time, so we're in rotating\n // or FPS mode\n const rotate = new THREE.Vector3();\n if (this.rotating && !this.dualPress) {\n const delta = this.rotating.position.clone().sub(this.rotating.last);\n this.rotating.last.copy(this.rotating.position);\n rotate.set(delta.x, delta.y, 0);\n rotate.multiplyScalar(this.rotateSpeed * (this.reverseRotate ? -1 : 1));\n // Update rotation velocity from last delta\n this.rotateVelocity = rotate.clone().multiplyScalar(1 / deltaTime);\n\n if (rotate.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n // Continue to rotate with inertia\n this.rotateVelocity.multiplyScalar(\n Math.exp(-deltaTime / this.rotateInertia),\n );\n rotate.addScaledVector(this.rotateVelocity, deltaTime);\n\n if (this.rotateVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n // Apply rotation in Euler angles space\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z *= Math.exp(-DEFAULT_ROLL_SPRING * deltaTime);\n control.quaternion.setFromEuler(eulers);\n\n if (this.sliding && !this.dualPress) {\n const delta = this.sliding.position.clone().sub(this.sliding.last);\n this.sliding.last.copy(this.sliding.position);\n\n // Slide on plane depending on center/right mouse button\n const slide =\n this.sliding.button !== 2\n ? new THREE.Vector3(delta.x, 0, delta.y)\n : new THREE.Vector3(delta.x, -delta.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSlide ? -1 : 1));\n\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n // Update movement velocity from last delta\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n const target = new THREE.Vector3();\n if (this.sliding || this.rotating) {\n const point = this.lastDown?.last ?? new THREE.Vector2();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcPoint = this.pressMoveCenter\n ? new THREE.Vector2(0, 0)\n : new THREE.Vector2(\n (point.x / this.canvas.clientWidth) * 2 - 1,\n -(point.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcPoint, theCamera);\n target.copy(raycaster.ray.direction).normalize();\n }\n\n if (!this.doublePressed) {\n let intensity = 0;\n if (this.lastDown) {\n intensity =\n (now -\n (this.lastDown?.timeStamp ?? now) -\n this.pressMoveDelayMs) /\n this.pressMoveAccelMs;\n\n if (\n this.lastDown.position.distanceTo(this.lastDown.initial) <\n this.doublePressDistance\n ) {\n if (this.pressHeld === undefined) {\n if (intensity > 0) {\n this.pressHeld = true;\n }\n }\n } else if (this.pressHeld === undefined) {\n this.pressHeld = false;\n }\n }\n\n if (this.pressHeld) {\n target.multiplyScalar(\n this.pressMoveSpeed * Math.max(0, Math.min(1, intensity)),\n );\n } else {\n target.set(0, 0, 0);\n }\n } else {\n this.pressHeld = false;\n let intensity =\n (performance.now() - this.doublePressed) / this.pressMoveAccelMs;\n intensity = Math.max(0, Math.min(1, intensity));\n target.multiplyScalar(\n (this.triplePressed\n ? this.triplePressMoveSpeed\n : this.doublePressMoveSpeed) * intensity,\n );\n }\n } else {\n this.pressHeld = undefined;\n }\n // Continue to move with inertia\n const s = Math.exp(-deltaTime / this.moveInertia);\n this.moveVelocity.lerpVectors(target, this.moveVelocity, s);\n control.position.addScaledVector(this.moveVelocity, deltaTime);\n\n if (this.moveVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n }\n\n const scroll = this.scroll.multiplyScalar(this.scrollSpeed);\n scroll.set(scroll.x, scroll.z, scroll.y);\n if (this.reverseScroll) {\n scroll.multiplyScalar(-1);\n }\n scroll.applyQuaternion(control.quaternion);\n control.position.add(scroll);\n\n if (scroll.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n this.scroll.set(0, 0, 0);\n\n return updated;\n }\n}\n","import * as THREE from \"three\";\nimport { SparkRenderer, type SparkRendererOptions } from \"./SparkRenderer\";\n\n/**\n * Fragment shader for portal disk clipping.\n * - diskRadius > 0: render \"behind portal\" only through the disk\n * - diskRadius < 0: render \"in front of portal\" everywhere except behind disk\n */\nexport const DISK_PORTAL_FRAGMENT_SHADER = `\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform mat4 projectionMatrix;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nuniform vec3 diskCenter;\nuniform vec3 diskNormal;\nuniform float diskRadius;\nuniform bool diskTwoSided;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\nvoid main() {\n if (diskRadius != 0.0) {\n // Portal rendering:\n // - diskRadius > 0: render \"behind portal\" only through the disk (discard outside or in-front-of plane).\n // - diskRadius < 0: render \"in front of portal\" everywhere, but discard fragments behind the plane when looking through the disk.\n\n // View ray direction from NDC (view space is -Z forward).\n vec3 viewDir = normalize(vec3(\n vNdc.x / projectionMatrix[0][0],\n vNdc.y / projectionMatrix[1][1],\n -1.0\n ));\n\n // Reconstruct view-space *axial* depth (-viewPos.z) from NDC Z.\n float ndcZ = vNdc.z;\n float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near));\n // Convert axial depth to ray-parameter t (viewPos = t * viewDir).\n float rayT = depth / max(1e-6, -viewDir.z);\n\n float radius = abs(diskRadius);\n float radius2 = radius * radius;\n bool renderBehind = (diskRadius > 0.0);\n\n vec3 diskN = normalize(diskNormal);\n\n // Ray-plane intersection for plane (diskCenter, diskN), with ray origin at (0,0,0).\n float denom = dot(viewDir, diskN);\n bool allowPortal = diskTwoSided ? (abs(denom) > 1e-6) : (denom < -1e-6);\n\n bool hitsDisk = false;\n float t = 0.0;\n if (allowPortal) {\n t = dot(diskCenter, diskN) / denom;\n if (t > 0.0) {\n vec3 q = t * viewDir - diskCenter;\n hitsDisk = (dot(q, q) <= radius2);\n }\n }\n\n // Small bias to avoid flicker at the plane.\n float eps = 1e-4 * max(1.0, abs(t));\n\n if (renderBehind) {\n // Behind-pass: only render through the portal disk, and only behind the plane along the ray.\n if (!hitsDisk) discard;\n if (rayT <= t + eps) discard;\n } else {\n // Front-pass: render everything, except when the ray goes through the disk, discard what's behind the plane.\n if (hitsDisk && (rayT >= t - eps)) discard;\n }\n }\n\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n rgba.a = min(1.0, a) * exp(exponent);\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n}\n`;\n\n/**\n * Callback function called when a portal is crossed.\n * @param pair The portal pair that was crossed\n * @param fromEntry True if crossing from entry to exit, false if crossing from exit to entry\n */\nexport type PortalCrossCallback = (\n pair: PortalPair,\n fromEntry: boolean,\n) => void | Promise;\n\n/**\n * A pair of connected portals. Walking through one teleports you to the other.\n */\nexport interface PortalPair {\n /** First portal endpoint */\n entryPortal: THREE.Object3D;\n /** Second portal endpoint */\n exitPortal: THREE.Object3D;\n /** Radius of this portal pair's disks */\n radius: number;\n /** Optional callback function called when this portal is crossed */\n onCross?: PortalCrossCallback;\n /** Scratch matrix for tracking portal position before frame updates */\n _entryBefore: THREE.Matrix4;\n /** Scratch matrix for tracking portal position before frame updates */\n _exitBefore: THREE.Matrix4;\n}\n\nexport interface SparkPortalsOptions {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n /** Options passed to both SparkRenderer instances */\n sparkOptions?: Partial;\n /** Default portal disk radius for new pairs (default: 1.0) */\n defaultPortalRadius?: number;\n /** Epsilon for portal crossing detection (default: 1e-6) */\n portalCrossEps?: number;\n}\n\n/**\n * SparkPortals\n *\n * Portal implementation to connect two non-contiguous areas of a scene.\n * Supports multiple portal pairs - each pair connects two locations.\n *\n * The rough approach is to use two SparkRenderers: one for the \"front\"/portal\n * view (portalRenderer), and one for the \"behind portal\" pass (behindRenderer).\n *\n * Example:\n * ```typescript\n * const portals = new SparkPortals({ renderer, scene, camera, localFrame });\n *\n * // Add a portal pair\n * const pair = portals.addPortalPair();\n * pair.entryPortal.position.set(0, 0, -1);\n * pair.exitPortal.position.set(-3, 0, -4.5);\n *\n * // Add another pair\n * const pair2 = portals.addPortalPair({ radius: 0.5 });\n * pair2.entryPortal.position.set(5, 0, 0);\n * pair2.exitPortal.position.set(10, 0, 0);\n *\n * // In animation loop:\n * portals.animateLoopHook();\n * ```\n */\nexport class SparkPortals {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n\n /** Primary renderer with portal shader (added to scene) */\n portalRenderer: SparkRenderer;\n /** Secondary renderer for behind-portal pass (not in scene) */\n behindRenderer: SparkRenderer;\n /** Secondary camera for behind-portal view */\n camera2: THREE.PerspectiveCamera;\n\n /** All portal pairs */\n portalPairs: PortalPair[] = [];\n /** Default radius for new portal pairs */\n defaultPortalRadius: number;\n /** Epsilon for portal crossing detection */\n portalCrossEps: number;\n\n /** Used to detect crossing between frames */\n private lastCameraWorld = new THREE.Vector3().setScalar(Number.NaN);\n /** Whether portal LoD prefetch is currently enabled */\n private prefetchActive = false;\n\n // Preallocated objects for scratch work to avoid per frame allocations\n private scratch = {\n quat: new THREE.Quaternion(),\n scale: new THREE.Vector3(),\n center0: new THREE.Vector3(),\n center1: new THREE.Vector3(),\n normal0: new THREE.Vector3(),\n normal1: new THREE.Vector3(),\n centerT: new THREE.Vector3(),\n normalT: new THREE.Vector3(),\n prevCameraWorld: new THREE.Vector3(),\n currCameraWorld: new THREE.Vector3(),\n hit: new THREE.Vector3(),\n offset: new THREE.Vector3(),\n camWorld: new THREE.Matrix4(),\n newCamWorld: new THREE.Matrix4(),\n invCamLocal: new THREE.Matrix4(),\n newLocalFrame: new THREE.Matrix4(),\n cameraWorldPos: new THREE.Vector3(),\n viewDir: new THREE.Vector3(),\n portalCenter: new THREE.Vector3(),\n toPortal: new THREE.Vector3(),\n };\n\n constructor(options: SparkPortalsOptions) {\n this.renderer = options.renderer;\n this.scene = options.scene;\n this.camera = options.camera;\n this.localFrame = options.localFrame;\n this.defaultPortalRadius = options.defaultPortalRadius ?? 1.0;\n this.portalCrossEps = options.portalCrossEps ?? 1e-6;\n\n const sparkOpts = options.sparkOptions ?? {};\n\n // Primary renderer with portal shader\n this.portalRenderer = new SparkRenderer({\n renderer: this.renderer,\n extraUniforms: {\n diskCenter: { value: new THREE.Vector3() },\n diskNormal: { value: new THREE.Vector3() },\n diskRadius: { value: 0 },\n diskTwoSided: { value: false },\n },\n fragmentShader: DISK_PORTAL_FRAGMENT_SHADER,\n ...sparkOpts,\n });\n this.scene.add(this.portalRenderer);\n\n // Secondary renderer for behind-portal pass\n // enableDriveLod: false prevents this renderer from driving LOD updates,\n // avoiding race conditions with portalRenderer's pager operations\n this.behindRenderer = new SparkRenderer({\n renderer: this.renderer,\n enableDriveLod: false,\n ...sparkOpts,\n });\n\n // Secondary camera for behind-portal view\n this.camera2 = this.camera.clone();\n this.scene.add(this.camera2);\n }\n\n /**\n * Add a new portal pair to the system.\n * @param options Optional configuration for this pair\n * @returns The created PortalPair - position the entryPortal and exitPortal as needed\n */\n addPortalPair(options?: {\n radius?: number;\n onCross?: PortalCrossCallback;\n }): PortalPair {\n const pair: PortalPair = {\n entryPortal: new THREE.Object3D(),\n exitPortal: new THREE.Object3D(),\n radius: options?.radius ?? this.defaultPortalRadius,\n onCross: options?.onCross,\n _entryBefore: new THREE.Matrix4(),\n _exitBefore: new THREE.Matrix4(),\n };\n\n this.scene.add(pair.entryPortal);\n this.scene.add(pair.exitPortal);\n this.portalPairs.push(pair);\n\n return pair;\n }\n\n /**\n * Remove a portal pair from the system.\n */\n removePortalPair(pair: PortalPair): void {\n const index = this.portalPairs.indexOf(pair);\n if (index !== -1) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n this.portalPairs.splice(index, 1);\n }\n }\n\n /**\n * Get transform from entry portal to exit portal.\n */\n getEntryToExitTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.entryPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.exitPortal.matrixWorld);\n }\n\n /**\n * Get transform from exit portal to entry portal.\n */\n getExitToEntryTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.exitPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.entryPortal.matrixWorld);\n }\n\n /** Set portal disk uniforms for shader clipping */\n private setPortalDiskUniforms(\n camera: THREE.Camera,\n portal: THREE.Object3D,\n radius: number,\n twoSided: boolean,\n ): void {\n camera.updateMatrixWorld(true);\n portal.updateMatrixWorld(true);\n\n const inverseCamera = camera.matrixWorld.clone().invert();\n const portalInCamera = portal.matrixWorld\n .clone()\n .premultiply(inverseCamera);\n const portalQuat = new THREE.Quaternion();\n\n // Extend the base uniform type with our portal-specific uniforms so TS is happy.\n const uniforms = this.portalRenderer\n .uniforms as typeof this.portalRenderer.uniforms & {\n diskCenter: { value: THREE.Vector3 };\n diskNormal: { value: THREE.Vector3 };\n diskRadius: { value: number };\n diskTwoSided: { value: boolean };\n };\n\n portalInCamera.decompose(\n uniforms.diskCenter.value,\n portalQuat,\n new THREE.Vector3(),\n );\n\n uniforms.diskNormal.value.set(0, 0, 1).applyQuaternion(portalQuat);\n uniforms.diskRadius.value = radius;\n uniforms.diskTwoSided.value = twoSided;\n }\n\n /** Extract portal plane from matrix */\n private getPortalPlane(\n matrix: THREE.Matrix4,\n outCenter: THREE.Vector3,\n outNormal: THREE.Vector3,\n ): void {\n matrix.decompose(outCenter, this.scratch.quat, this.scratch.scale);\n outNormal.set(0, 0, 1).applyQuaternion(this.scratch.quat).normalize();\n }\n\n /**\n * Detect if the user path crosses over a portal. If so, return the parametric position (0,1)\n * along the segment where the crossing occurs. If not, return null.\n */\n private getSegmentDiskCrossing(\n prevCam: THREE.Vector3,\n currCam: THREE.Vector3,\n beforeMatrix: THREE.Matrix4,\n afterMatrix: THREE.Matrix4,\n radius: number,\n ): number | null {\n this.getPortalPlane(\n beforeMatrix,\n this.scratch.center0,\n this.scratch.normal0,\n );\n this.getPortalPlane(\n afterMatrix,\n this.scratch.center1,\n this.scratch.normal1,\n );\n\n const startPlaneDist = this.scratch.offset\n .copy(prevCam)\n .sub(this.scratch.center0)\n .dot(this.scratch.normal0);\n const endPlaneDist = this.scratch.offset\n .copy(currCam)\n .sub(this.scratch.center1)\n .dot(this.scratch.normal1);\n\n if (\n (startPlaneDist > this.portalCrossEps &&\n endPlaneDist > this.portalCrossEps) ||\n (startPlaneDist < -this.portalCrossEps &&\n endPlaneDist < -this.portalCrossEps)\n ) {\n return null;\n }\n\n const denom = startPlaneDist - endPlaneDist;\n if (Math.abs(denom) < this.portalCrossEps) return null;\n\n const t = startPlaneDist / denom;\n if (t < 0 || t > 1) return null;\n\n this.scratch.hit.lerpVectors(prevCam, currCam, t);\n this.scratch.centerT\n .copy(this.scratch.center0)\n .lerp(this.scratch.center1, t);\n this.scratch.normalT\n .copy(this.scratch.normal0)\n .lerp(this.scratch.normal1, t)\n .normalize();\n\n this.scratch.offset.copy(this.scratch.hit).sub(this.scratch.centerT);\n this.scratch.offset.addScaledVector(\n this.scratch.normalT,\n -this.scratch.offset.dot(this.scratch.normalT),\n );\n\n if (this.scratch.offset.lengthSq() > radius * radius) return null;\n return t;\n }\n\n /** Teleport camera through portal */\n private teleport(transform: THREE.Matrix4): void {\n this.scratch.camWorld.copy(this.camera.matrixWorld);\n this.scratch.newCamWorld.copy(this.scratch.camWorld).premultiply(transform);\n this.scratch.invCamLocal.copy(this.camera.matrix).invert();\n this.scratch.newLocalFrame\n .copy(this.scratch.newCamWorld)\n .multiply(this.scratch.invCamLocal);\n\n this.scratch.newLocalFrame.decompose(\n this.localFrame.position,\n this.localFrame.quaternion,\n this.localFrame.scale,\n );\n this.localFrame.updateMatrixWorld(true);\n this.camera.updateMatrixWorld(true);\n }\n\n /**\n * Check for portal crossing and teleport if needed.\n * Checks all portal pairs and takes the earliest crossing.\n * Call this after updating controls but before render().\n */\n updateTeleportation(): void {\n if (this.portalPairs.length === 0) return;\n\n this.camera.getWorldPosition(this.scratch.currCameraWorld);\n if (!Number.isFinite(this.lastCameraWorld.x)) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n this.scratch.prevCameraWorld.copy(this.lastCameraWorld);\n\n // Store portal matrices before any updates and find earliest crossing\n let earliestT: number | null = null;\n let crossedPair: PortalPair | null = null;\n let crossedEntry = true; // true = crossed entry portal, false = crossed exit portal\n\n for (const pair of this.portalPairs) {\n pair.entryPortal.updateMatrixWorld(true);\n pair.exitPortal.updateMatrixWorld(true);\n pair._entryBefore.copy(pair.entryPortal.matrixWorld);\n pair._exitBefore.copy(pair.exitPortal.matrixWorld);\n\n // Check entry portal crossing\n const entryT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._entryBefore,\n pair.entryPortal.matrixWorld,\n pair.radius,\n );\n\n if (entryT !== null && (earliestT === null || entryT < earliestT)) {\n earliestT = entryT;\n crossedPair = pair;\n crossedEntry = true;\n }\n\n // Check exit portal crossing\n const exitT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._exitBefore,\n pair.exitPortal.matrixWorld,\n pair.radius,\n );\n\n if (exitT !== null && (earliestT === null || exitT < earliestT)) {\n earliestT = exitT;\n crossedPair = pair;\n crossedEntry = false;\n }\n }\n\n // No portal crossed\n if (crossedPair === null) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n // Teleport through the crossed portal\n if (crossedEntry) {\n this.teleport(this.getEntryToExitTransform(crossedPair));\n } else {\n this.teleport(this.getExitToEntryTransform(crossedPair));\n }\n\n this.camera.getWorldPosition(this.lastCameraWorld);\n\n // Call the portal's onCross callback if provided\n if (crossedPair.onCross) {\n // Call async callback but don't await (updateTeleportation is synchronous)\n // Errors will be logged but won't block teleportation\n Promise.resolve(crossedPair.onCross(crossedPair, crossedEntry)).catch(\n (error) => {\n console.error(\"Error in portal onCross callback:\", error);\n },\n );\n }\n }\n\n /**\n * Find the most relevant portal for rendering (closest to camera view direction).\n * Returns the portal pair and which portal (entry or exit) is primary.\n */\n private findPrimaryPortal(): {\n pair: PortalPair;\n primaryIsEntry: boolean;\n primaryPortal: THREE.Object3D;\n otherPortal: THREE.Object3D;\n } | null {\n if (this.portalPairs.length === 0) return null;\n\n this.camera.getWorldPosition(this.scratch.cameraWorldPos);\n this.camera.getWorldDirection(this.scratch.viewDir);\n\n let bestScore = Number.NEGATIVE_INFINITY;\n let bestPair: PortalPair | null = null;\n let bestIsEntry = true;\n\n for (const pair of this.portalPairs) {\n // Score entry portal\n pair.entryPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const entryDist = this.scratch.toPortal.length();\n const entryScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / entryDist;\n\n if (entryScore > bestScore) {\n bestScore = entryScore;\n bestPair = pair;\n bestIsEntry = true;\n }\n\n // Score exit portal\n pair.exitPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const exitDist = this.scratch.toPortal.length();\n const exitScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / exitDist;\n\n if (exitScore > bestScore) {\n bestScore = exitScore;\n bestPair = pair;\n bestIsEntry = false;\n }\n }\n\n if (!bestPair) return null;\n\n return {\n pair: bestPair,\n primaryIsEntry: bestIsEntry,\n primaryPortal: bestIsEntry ? bestPair.entryPortal : bestPair.exitPortal,\n otherPortal: bestIsEntry ? bestPair.exitPortal : bestPair.entryPortal,\n };\n }\n\n /**\n * Render the scene with portals using two-pass rendering.\n * Renders the most relevant portal pair (closest to camera view).\n * Call this instead of renderer.render() in your animation loop.\n */\n render(): void {\n const primary = this.findPrimaryPortal();\n\n // No portals - just render normally\n if (!primary) {\n if (this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras();\n this.prefetchActive = false;\n }\n this.renderer.autoClear = true;\n this.renderer.render(this.scene, this.camera);\n return;\n }\n\n if (!this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras([this.camera2]);\n this.prefetchActive = true;\n }\n\n const { pair, primaryIsEntry, primaryPortal, otherPortal } = primary;\n\n // Compute camera2 position (transformed through portal)\n const camera2Matrix = primaryIsEntry\n ? this.camera.matrixWorld\n .clone()\n .premultiply(this.getEntryToExitTransform(pair))\n : this.camera.matrixWorld\n .clone()\n .premultiply(this.getExitToEntryTransform(pair));\n camera2Matrix.decompose(\n this.camera2.position,\n this.camera2.quaternion,\n this.camera2.scale,\n );\n this.camera2.updateMatrixWorld(true);\n\n // Share lodInstances from portalRenderer to behindRenderer BEFORE Pass 1.\n // This uses previous frame's lodInstances (computed with main camera),\n // ensuring both passes use consistent splat selections to avoid flickering.\n this.shareLodInstances();\n\n // Pass 1: Behind portal view (uses shared lodInstances)\n this.setPortalDiskUniforms(this.camera2, otherPortal, pair.radius, true);\n this.renderer.autoClear = true;\n this.behindRenderer.render(this.scene, this.camera2);\n\n // Pass 2: Main view (updates portalRenderer's lodInstances for next frame)\n this.setPortalDiskUniforms(this.camera, primaryPortal, -pair.radius, true);\n this.renderer.autoClear = false;\n this.portalRenderer.render(this.scene, this.camera);\n }\n\n /**\n * Share lodInstances from portalRenderer to behindRenderer.\n * Uses previous frame's values to ensure both passes render consistent splats.\n */\n private shareLodInstances(): void {\n // Clear and copy lodInstances from portalRenderer to behindRenderer\n this.behindRenderer.lodInstances.clear();\n for (const [mesh, data] of this.portalRenderer.lodInstances) {\n this.behindRenderer.lodInstances.set(mesh, data);\n }\n }\n\n /**\n * Convenience hook for animation loop.\n * Calls updateTeleportation() then render().\n */\n animateLoopHook(): void {\n this.updateTeleportation();\n this.render();\n }\n\n /** Update camera2 aspect ratio on window resize */\n updateAspect(aspect: number): void {\n this.camera2.aspect = aspect;\n this.camera2.updateProjectionMatrix();\n }\n\n /** Dispose of resources */\n dispose(): void {\n this.scene.remove(this.portalRenderer);\n this.scene.remove(this.camera2);\n\n for (const pair of this.portalPairs) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n }\n this.portalPairs = [];\n\n this.portalRenderer.dispose();\n this.behindRenderer.dispose();\n }\n}\n"],"names":["SplatFileType","dyno","inputs","_a","_b","outputs","step","packedSplats","index","base","count","extSplats","covSplats","gsplat","flags","center","scales","quaternion","rgba","rgb","opacity","x","y","z","r","g","b","scale","rotate","translate","recolor","covsplat","rgbMinMaxLnScaleMinMax","viewCenter","viewDir","sortRadial","value","max","l","add","Inflate","Gunzip","normalize","floatBitsToUint","uintBitsToFloat","bits","sign","exp","distance","b2","offset","texture","min","a","t","edge","edge0","edge1","cond","f","select","vector","w","swizzle","position","dir","degrees","radians","sin","cos","tan","splatDefines","splatVertex","splatFragment","computeVec4Template","computeUvec4Vec4Template","computeUvec4x2Vec4Template","computeUvec4Template","SplatEditSdfType","SplatEditRgbaBlendMode","uniform","sdfArray","numEdits","rgbaDisplaceEdits","length","ptr","init_wasm","BundledWorker","worker","newArray","textureSize","dyno.DynoInt","dyno.DynoUsampler2D","dyno.DynoVec4","dyno.DynoBool","dyno.DynoVec3","wasm.initialization","result","lodSplats","dyno.DynoUsampler2DArray","dyno.dynoBlock","dyno.Dyno","dyno.unindentLines","dyno.Gsplat","dyno.defineGsplat","dyno.splitGsplat","dyno.normalize","dyno.sub","dyno.add","dyno.combineGsplat","edits","wasm.isInitialized","shaders","dot","now","instances","traverseStart","keyIndices","target","cubeCamera","_","min_x","min_y","min_z","max_x","max_y","max_z","min_scale_x","min_scale_y","min_scale_z","max_scale_x","max_scale_y","max_scale_z","packed_position","packed_rotation","packed_scale","packed_color","SH_C0","i32","section","i","input","transformPos","spz","SplatSkinningMode","skinning","color","metrics","JointEnum","JOINT_IDS","NUM_JOINTS","JOINT_INDEX","JOINT_RADIUS","JOINT_SEGMENTS","JOINT_SEGMENT_STEPS","JOINT_TIPS","FINGER_TIPS","Hand","HANDS","DEFAULT_MOVE_INERTIA","DEFAULT_ROTATE_INERTIA","gamepad"],"mappings":"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","x_google_ignoreList":[7]} \ No newline at end of file diff --git a/dist/spark.module.min.js b/dist/spark.module.min.js index 0aea37f5..42e53514 100644 --- a/dist/spark.module.min.js +++ b/dist/spark.module.min.js @@ -1,483 +1,84 @@ -import * as G from "three"; -import { Loader as go, FileLoader as Qo, Quaternion as tB, Vector3 as gI, Color as HB, Matrix4 as kQ } from "three"; -import { FullScreenQuad as VQ } from "three/addons/postprocessing/Pass.js"; -class LQ extends G.InstancedBufferGeometry { - constructor(A, I) { - super(), this.ordering = A, this.setAttribute("position", new G.BufferAttribute(Bo, 3)), this.setIndex(new G.BufferAttribute(Co, 1)), this._maxInstanceCount = A.length, this.instanceCount = I, this.attribute = new G.InstancedBufferAttribute(A, 1, !1, 1), this.attribute.setUsage(G.DynamicDrawUsage), this.setAttribute("splatIndex", this.attribute); - } - update(A, I) { - this.ordering = A, this.attribute.array = A, this.instanceCount = I, this.attribute.addUpdateRange(0, I), this.attribute.needsUpdate = !0; - } -} -const Bo = new Float32Array([ - -1, - -1, - 0, - 1, - -1, - 0, - 1, - 1, - 0, - -1, - 1, - 0 -]), Co = new Uint16Array([0, 1, 2, 0, 2, 3]), jB = '(function(){"use strict";class gI{static __wrap(A){A=A>>>0;const I=Object.create(gI.prototype);return I.__wbg_ptr=A,Ug.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,Ug.unregister(this),A}free(){const A=this.__destroy_into_raw();L.__wbg_csplatarray_free(A,0)}bhatt_lod(A){L.csplatarray_bhatt_lod(this.__wbg_ptr,A)}has_lod(){return L.csplatarray_has_lod(this.__wbg_ptr)!==0}inject_rgba8(A){L.csplatarray_inject_rgba8(this.__wbg_ptr,A)}len(){return L.csplatarray_len(this.__wbg_ptr)>>>0}tiny_lod(A,I){L.csplatarray_tiny_lod(this.__wbg_ptr,A,I)}to_extsplats(){const A=L.csplatarray_to_extsplats(this.__wbg_ptr);if(A[2])throw QA(A[1]);return QA(A[0])}to_extsplats_lod(){const A=L.csplatarray_to_extsplats_lod(this.__wbg_ptr);if(A[2])throw QA(A[1]);return QA(A[0])}to_packedsplats(){const A=L.csplatarray_to_packedsplats(this.__wbg_ptr);if(A[2])throw QA(A[1]);return QA(A[0])}to_packedsplats_lod(){const A=L.csplatarray_to_packedsplats_lod(this.__wbg_ptr);if(A[2])throw QA(A[1]);return QA(A[0])}get maxShDegree(){return L.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr)>>>0}get numSplats(){return L.__wbg_get_csplatarray_numSplats(this.__wbg_ptr)>>>0}set maxShDegree(A){L.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr,A)}set numSplats(A){L.__wbg_set_csplatarray_numSplats(this.__wbg_ptr,A)}}Symbol.dispose&&(gI.prototype[Symbol.dispose]=gI.prototype.free);class QI{static __wrap(A){A=A>>>0;const I=Object.create(QI.prototype);return I.__wbg_ptr=A,cg.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,cg.unregister(this),A}free(){const A=this.__destroy_into_raw();L.__wbg_gsplatarray_free(A,0)}get maxShDegree(){return L.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr)>>>0}get numSplats(){return L.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr)>>>0}bhatt_lod(A){L.gsplatarray_bhatt_lod(this.__wbg_ptr,A)}has_lod(){return L.gsplatarray_has_lod(this.__wbg_ptr)!==0}inject_rgba8(A){L.gsplatarray_inject_rgba8(this.__wbg_ptr,A)}len(){return L.gsplatarray_len(this.__wbg_ptr)>>>0}tiny_lod(A,I){L.gsplatarray_tiny_lod(this.__wbg_ptr,A,I)}to_extsplats(){const A=L.gsplatarray_to_extsplats(this.__wbg_ptr);if(A[2])throw QA(A[1]);return QA(A[0])}to_extsplats_lod(){const A=L.gsplatarray_to_extsplats_lod(this.__wbg_ptr);if(A[2])throw QA(A[1]);return QA(A[0])}to_packedsplats(A){const I=L.gsplatarray_to_packedsplats(this.__wbg_ptr,A);if(I[2])throw QA(I[1]);return QA(I[0])}to_packedsplats_lod(A){const I=L.gsplatarray_to_packedsplats_lod(this.__wbg_ptr,A);if(I[2])throw QA(I[1]);return QA(I[0])}set maxShDegree(A){L.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr,A)}set numSplats(A){L.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr,A)}}Symbol.dispose&&(QI.prototype[Symbol.dispose]=QI.prototype.free);function UQ(Q,A,I){return L.sort32_splats(Q,A,I)>>>0}function cQ(Q,A,I){return L.sort_splats(Q,A,I)>>>0}function HQ(){return{__proto__:null,"./spark_worker_rs_bg.js":{__proto__:null,__wbg_Error_2e59b1b37a9a34c3:function(A,I){return Error(sI(A,I))},__wbg___wbindgen_boolean_get_a86c216575a75c30:function(A){const I=A,g=typeof I=="boolean"?I:void 0;return NI(g)?16777215:g?1:0},__wbg___wbindgen_debug_string_dd5d2d07ce9e6c57:function(A,I){const g=OI(I),B=ZI(g,L.__wbindgen_malloc,L.__wbindgen_realloc),C=wI;dA().setInt32(A+4,C,!0),dA().setInt32(A+0,B,!0)},__wbg___wbindgen_in_4bd7a57e54337366:function(A,I){return A in I},__wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef:function(A){return!A},__wbg___wbindgen_is_object_40c5a80572e8f9d3:function(A){const I=A;return typeof I=="object"&&I!==null},__wbg___wbindgen_is_undefined_c0cca72b82b86f4d:function(A){return A===void 0},__wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944:function(A,I){return A==I},__wbg___wbindgen_number_get_7579aab02a8a620c:function(A,I){const g=I,B=typeof g=="number"?g:void 0;dA().setFloat64(A+8,NI(B)?0:B,!0),dA().setInt32(A+0,!NI(B),!0)},__wbg___wbindgen_string_get_914df97fcfa788f2:function(A,I){const g=I,B=typeof g=="string"?g:void 0;var C=NI(B)?0:ZI(B,L.__wbindgen_malloc,L.__wbindgen_realloc),E=wI;dA().setInt32(A+4,E,!0),dA().setInt32(A+0,C,!0)},__wbg___wbindgen_throw_81fc77679af83bc6:function(A,I){throw new Error(sI(A,I))},__wbg_csplatarray_new:function(A){return gI.__wrap(A)},__wbg_error_a6fa202b58aa1cd3:function(A,I){let g,B;try{g=A,B=I,console.error(sI(A,I))}finally{L.__wbindgen_free(g,B,1)}},__wbg_get_4848e350b40afc16:function(A,I){return A[I>>>0]},__wbg_get_f96702c6245e4ef9:function(){return Lg(function(A,I){return Reflect.get(A,I)},arguments)},__wbg_get_unchecked_7d7babe32e9e6a54:function(A,I){return A[I>>>0]},__wbg_get_with_ref_key_6412cf3094599694:function(A,I){return A[I]},__wbg_gsplatarray_new:function(A){return QI.__wrap(A)},__wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a:function(A){let I;try{I=A instanceof ArrayBuffer}catch{I=!1}return I},__wbg_instanceof_Uint8Array_4b8da683deb25d72:function(A){let I;try{I=A instanceof Uint8Array}catch{I=!1}return I},__wbg_length_0c32cb8543c8e4c8:function(A){return A.length},__wbg_length_1e701798fdcaa3b4:function(A){return A.length},__wbg_length_6e821edde497a532:function(A){return A.length},__wbg_length_a4ca9e78359b5f1f:function(A){return A.length},__wbg_new_227d7c05414eb861:function(){return new Error},__wbg_new_4f9fafbb3909af72:function(){return new Object},__wbg_new_a560378ea1240b14:function(A){return new Uint8Array(A)},__wbg_new_f3c9df4f38f3f798:function(){return new Array},__wbg_new_with_length_41a22191b9bdfd66:function(A){return new Uint32Array(A>>>0)},__wbg_prototypesetcall_3e05eb9545565046:function(A,I,g){Uint8Array.prototype.set.call(YQ(A,I),g)},__wbg_prototypesetcall_64c287a27cc24d27:function(A,I,g){Uint16Array.prototype.set.call(aQ(A,I),g)},__wbg_prototypesetcall_e42275e601e14eeb:function(A,I,g){Uint32Array.prototype.set.call(Hg(A,I),g)},__wbg_push_6bdbc990be5ac37b:function(A,I){return A.push(I)},__wbg_set_448126769bf7c181:function(A,I,g){A.set(Hg(I,g))},__wbg_set_6be42768c690e380:function(A,I,g){A[I]=g},__wbg_set_81b4174352e6a095:function(A,I,g){A.set(I,g>>>0)},__wbg_set_8ee2d34facb8466e:function(){return Lg(function(A,I,g){return Reflect.set(A,I,g)},arguments)},__wbg_set_index_338a66e40fc45dee:function(A,I,g){A[I>>>0]=g>>>0},__wbg_stack_3b0d974bbf31e44f:function(A,I){const g=I.stack,B=ZI(g,L.__wbindgen_malloc,L.__wbindgen_realloc),C=wI;dA().setInt32(A+4,C,!0),dA().setInt32(A+0,B,!0)},__wbg_subarray_0f98d3fb634508ad:function(A,I,g){return A.subarray(I>>>0,g>>>0)},__wbg_subarray_517cd0f1811ab872:function(A,I,g){return A.subarray(I>>>0,g>>>0)},__wbg_subarray_d51e89458b3fdbf6:function(A,I,g){return A.subarray(I>>>0,g>>>0)},__wbindgen_cast_0000000000000001:function(A){return A},__wbindgen_cast_0000000000000002:function(A,I){return sI(A,I)},__wbindgen_init_externref_table:function(){const A=L.__wbindgen_externrefs,I=A.grow(4);A.set(0,void 0),A.set(I+0,void 0),A.set(I+1,null),A.set(I+2,!0),A.set(I+3,!1)}}}}typeof FinalizationRegistry>"u"||new FinalizationRegistry(Q=>L.__wbg_chunkdecoder_free(Q>>>0,1));const Ug=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(Q=>L.__wbg_csplatarray_free(Q>>>0,1)),cg=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(Q=>L.__wbg_gsplatarray_free(Q>>>0,1));function LQ(Q){const A=L.__externref_table_alloc();return L.__wbindgen_externrefs.set(A,Q),A}function OI(Q){const A=typeof Q;if(A=="number"||A=="boolean"||Q==null)return`${Q}`;if(A=="string")return`"${Q}"`;if(A=="symbol"){const B=Q.description;return B==null?"Symbol":`Symbol(${B})`}if(A=="function"){const B=Q.name;return typeof B=="string"&&B.length>0?`Function(${B})`:"Function"}if(Array.isArray(Q)){const B=Q.length;let C="[";B>0&&(C+=OI(Q[0]));for(let E=1;E1)g=I[1];else return toString.call(Q);if(g=="Object")try{return"Object("+JSON.stringify(Q)+")"}catch{return"Object"}return Q instanceof Error?`${Q.name}: ${Q.message}\n${Q.stack}`:g}function aQ(Q,A){return Q=Q>>>0,KQ().subarray(Q/2,Q/2+A)}function Hg(Q,A){return Q=Q>>>0,tQ().subarray(Q/4,Q/4+A)}function YQ(Q,A){return Q=Q>>>0,DI().subarray(Q/1,Q/1+A)}let OA=null;function dA(){return(OA===null||OA.buffer.detached===!0||OA.buffer.detached===void 0&&OA.buffer!==L.memory.buffer)&&(OA=new DataView(L.memory.buffer)),OA}function sI(Q,A){return Q=Q>>>0,dQ(Q,A)}let BI=null;function KQ(){return(BI===null||BI.byteLength===0)&&(BI=new Uint16Array(L.memory.buffer)),BI}let CI=null;function tQ(){return(CI===null||CI.byteLength===0)&&(CI=new Uint32Array(L.memory.buffer)),CI}let EI=null;function DI(){return(EI===null||EI.byteLength===0)&&(EI=new Uint8Array(L.memory.buffer)),EI}function Lg(Q,A){try{return Q.apply(this,A)}catch(I){const g=LQ(I);L.__wbindgen_exn_store(g)}}function NI(Q){return Q==null}function ZI(Q,A,I){if(I===void 0){const D=iI.encode(Q),i=A(D.length,1)>>>0;return DI().subarray(i,i+D.length).set(D),wI=D.length,i}let g=Q.length,B=A(g,1)>>>0;const C=DI();let E=0;for(;E127)break;C[B+E]=D}if(E!==g){E!==0&&(Q=Q.slice(E)),B=I(B,g,g=E+Q.length*3,1)>>>0;const D=DI().subarray(B+E,B+g),i=iI.encodeInto(Q,D);E+=i.written,B=I(B,g,E,1)>>>0}return wI=E,B}function QA(Q){const A=L.__wbindgen_externrefs.get(Q);return L.__externref_table_dealloc(Q),A}let JI=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});JI.decode();const qQ=2146435072;let TI=0;function dQ(Q,A){return TI+=A,TI>=qQ&&(JI=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),JI.decode(),TI=A),JI.decode(DI().subarray(Q,Q+A))}const iI=new TextEncoder;"encodeInto"in iI||(iI.encodeInto=function(Q,A){const I=iI.encode(Q);return A.set(I),{read:Q.length,written:I.length}});let wI=0,L;function xQ(Q,A){return L=Q.exports,OA=null,BI=null,CI=null,EI=null,L.__wbindgen_start(),L}async function rQ(Q,A){if(typeof Response=="function"&&Q instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(Q,A)}catch(B){if(Q.ok&&I(Q.type)&&Q.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n",B);else throw B}const g=await Q.arrayBuffer();return await WebAssembly.instantiate(g,A)}else{const g=await WebAssembly.instantiate(Q,A);return g instanceof WebAssembly.Instance?{instance:g,module:Q}:g}function I(g){switch(g){case"basic":case"cors":case"default":return!0}return!1}}async function nQ(Q){if(L!==void 0)return L;Q!==void 0&&(Object.getPrototypeOf(Q)===Object.prototype?{module_or_path:Q}=Q:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),Q===void 0&&(Q=new URL("data:application/wasm;base64,AGFzbQEAAAAB6wZpYAN/f38Bf2ACf38AYAJ/fwF/YAF/AGABfwF/YAN/f38AYAR/f39/AGAFf39/f38AYAADf39/YAZ/f39/f38AYAd/f39/f39/AGAEf39/fwF/YAFvAX9gCH9/f39/f39/AGABfwN/f39gBX9/f39/AX9gAX0BfWAAAGACf28AYAF/AX5gA399fwBgBn9/f39/fwF/YAZ/f39/f30AYAABf2ACf30AYAV/f39+fwBgA29/fwFvYAN/f28AYAF/AW9gAAFvYAJvbwF/YAl/f39/f39/f38AYAF+AX9gAn9vA39/f2ACfX0BfWADb39/AGACb28Bb2ACb38Bb2ACf38Bb2AEf39/fQF/YAx/f39/f39/f39/f38AYAl/f39/f39/f38Bf2AFf39/fX8AYAd/f39/f39/AX9gBX9/f399AGAEf31/fwF/YBN/f39/f39/f39/f39/f39/f39/AX9gE39/f39/f39/f39/f39/f39/f38AYAN+fn8BfmAHf39/f399fQBgA39+fgBgBX9/fn9/AGAFf398f38AYAV/f31/fwBgBH9vf28Df39/YAN/b28Bf2AAAn9/YANvb28Bf2ADb29vAGADb29/AGABbwFvYAF8AW9gCn9/f39/f39/f38Bf2ALf39/f39/f39/f38Bf2AKf39/f39/f39/fwBgBn9/fX9/fwBgAn9/AX1gBH9/f34AYAN/f38BfmACf34AYAN/fX8Bf2AFf39/fn4AYAZ/fn9/f38AYAZ/f39/fX0AYAF/AX1gBH5+f38BfmAFf39/f38BfWAJf39/f39/fn5+AGAEf39/fwF9YAJ+fwBgA39/ewBgAn9+AX9gAn1/AX1gA319fQF9YAR/fn5/AGAGf39/fn9/AGAGf39/fH9/AGAGf39/fX9/AGATf318f39/f39/f39/f39/f39/fwN/f39gCX9/f39/f39/bwN/f39gCH9/f39vf39/A39/f2AHf29/fX9/bwN/f39gB39vb399f38Df39/YAd/f39/f39/A39/f2AGf29vf31/A39/f2AGf29/fX9vA39/f2AFf39/f28Df39/YAR/b29/A39/f2AEf39/fwN/f39gAn9/A39/f2ACf28Cf39gBH9+f38AYAR/fX9/AGAEf3x/fwBgAXwBfwKdFS0XLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfZDUxZTg5NDU4YjNmZGJmNgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF8xZTcwMTc5OGZkY2FhM2I0AAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzQ0ODEyNjc2OWJmN2MxODEAIxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsX2U0MjI3NWU2MDFlMTRlZWIAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyZfX3diZ19uZXdfd2l0aF9sZW5ndGhfNDFhMjIxOTFiOWJkZmQ2NgAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX25ld180ZjlmYWZiYjM5MDlhZjcyAB0XLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzhlZTJkMzRmYWNiODQ2NmUAORcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfZjNjOWRmNGYzOGYzZjc5OAAdFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzG19fd2JnX3B1c2hfNmJkYmM5OTBiZTVhYzM3YgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX2dldF9mOTY3MDJjNjI0NWU0ZWY5ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMqX193YmdfX193YmluZGdlbl9pc19mYWxzeV9jNmRkZmFlMWJiNTZkNWVmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzZiZTQyNzY4YzY5MGUzODAAOhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19nZXRfNDg0OGUzNTBiNDBhZmMxNgAlFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2dzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2NzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHF9fd2JnX0Vycm9yXzJlNTliMWIzN2E5YTM0YzMAJhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcytfX3diZ19fX3diaW5kZ2VuX2lzX29iamVjdF80MGM1YTgwNTcyZThmOWQzAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMnX193YmdfZ2V0X3dpdGhfcmVmX2tleV82NDEyY2YzMDk0NTk5Njk0ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMuX193YmdfX193YmluZGdlbl9pc191bmRlZmluZWRfYzBjY2E3MmI4MmI4NmY0ZAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJF9fd2JnX19fd2JpbmRnZW5faW5fNGJkN2E1N2U1NDMzNzM2NgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fbnVtYmVyX2dldF83NTc5YWFiMDJhOGE2MjBjABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMtX193YmdfX193YmluZGdlbl9ib29sZWFuX2dldF9hODZjMjE2NTc1YTc1YzMwAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzgxYjQxNzQzNTJlNmEwOTUAOxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx1fX3diZ19sZW5ndGhfMGMzMmNiODU0M2M4ZTRjOAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzH19fd2JnX3N1YmFycmF5XzBmOThkM2ZiNjM0NTA4YWQAGhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsXzNlMDVlYjk1NDU1NjUwNDYAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diZ19zZXRfaW5kZXhfMzM4YTY2ZTQwZmM0NWRlZQAjFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF9hNGNhOWU3ODM1OWI1ZjFmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfNTE3Y2QwZjE4MTFhYjg3MgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfNjRjMjg3YTI3Y2MyNGQyNwAbFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF82ZTgyMWVkZGU0OTdhNTMyAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMkX193YmdfZ2V0X3VuY2hlY2tlZF83ZDdiYWJlMzJlOWU2YTU0ACUXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193YmdfbmV3XzIyN2Q3YzA1NDE0ZWI4NjEAHRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxxfX3diZ19zdGFja18zYjBkOTc0YmJmMzFlNDRmABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMcX193YmdfZXJyb3JfYTZmYTIwMmI1OGFhMWNkMwABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzMF9fd2JnX19fd2JpbmRnZW5fanN2YWxfbG9vc2VfZXFfM2E3MmFlNzY0ZDQ2ZDk0NAAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fc3RyaW5nX2dldF85MTRkZjk3ZmNmYTc4OGYyABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMsX193YmdfaW5zdGFuY2VvZl9VaW50OEFycmF5XzRiOGRhNjgzZGViMjVkNzIADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcy1fX3diZ19pbnN0YW5jZW9mX0FycmF5QnVmZmVyX2ZmN2MxMzM3YTVlM2IzM2EADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfYTU2MDM3OGVhMTI0MGIxNAA8Fy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfODFmYzc3Njc5YWY4M2JjNgABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLl9fd2JnX19fd2JpbmRnZW5fZGVidWdfc3RyaW5nX2RkNWQyZDA3Y2U5ZTZjNTcAEhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx9fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlABEXLi9zcGFya193b3JrZXJfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDEAPRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMgAmA5cKlQoYGBQUAQoKAQkBCgoFCgkKBAQnBAQNJw0BAQYEBAoEBAUNBgQEBAQJCREFBgEJAQQEBAQJCQYBAgcoCQIJASgGBQ0BKQQGAQA+BQE/DQcGAgIGAgYGAQEGBgUEBAQEBgECBgUGBgYCBwkCBgEFBgEBAwMEBA8DBAEHAQcGAAYDBA0BAgEEAQEVAQYBBAIEBQYDBUABDwcDAgEBBwICBSoCCQEFBwQEBgQCBwUfAioGAQcFBgEHBhYGAQcrCQENAAEBAAIFAQIFAQUKLCsGBQcDBgYBDQEFAwEDBAUCBQMCAwMBAQFBAgYBLAcJARADEEIHBwUGAQMHBwECAgQWCQkBAQJDBw0DCUQAAQEBAQELBC0DAwMEAQIBAgECAwMCRQUGBEYBAQEBBwACCRkCBQIBAQcABQQJAQYBRwYGSAMDBQUDAQUDBgUFAwMtBgUKBQYBAwkABQUHAQIDAwMDLi4FCQkvLwkHBwIBAQAGBQEDAwMDAQMAAQIBAQYCAQZJAgsFAQAFAQYJCQQEBAQCBAEVAQICFQABAQUGAwUVBw0ABQUHAgEAAAIFBQAACQUWHwICCgICAQcHAgMHCgUFAwMBARkCBwUwAgUFBQMwBAABAQQBMQMDCgkFAwMEChBKAQUFBQUWBgEDBksHBQEDAwIBBAIBAQUCBgcBAgICAQEDAgQBAkwDTQEHBwcHAQIKBwlOAwNPAgUBAgcHBQsGAgQEBAEDAQIJBgYHAQMPARcHEAIEUAoCBAMGBAQBDwUfAgkDBAsZFAoCAgIQAwcxBAcCAzIAAQcWAQMCAgYBBAECDwEGCwEFAhcGAQICAgICAgYCEAEHAgcDBwUEBAICBAEBAQEBAQIBAgQEAQECAAICAgIBAgMBBwMCAxAEAQMFAgEBAwMAAgMCAQkBAQEFAgIHAwEDAwcCAAcDAwICAgECBwMpBQICAgICAQIFBQEBAQICAgICAlEBAgICAgICAgEDAgkCAQEHAwEDAwEBAQEBCQkCAwIBAQIBAQMBAQEFAQUCAgFSAQICUwMDAQEBBgADAwEDAgELCwUCAgEBBAMBCwMDAgEBAgMDAwEBAQICAAMyAAAHAgUDAwUCAxkFAxQUBwcJAwYFBQUFAwMDAwMDAwYYGAMFAgMABgMEBAQEAgUBBAQECQQDBwQFAwMDAwMCAgICBVQFBAEDEwEDAQEFBARVCVZXAQECBQcCBhAAAAAAAAAAAAAAAAAEAgIAAAAAIAQgAAQgBAQEAgACAgIAWAUTBQEAAAABAgABAgIGBQIBBAICAlkPWgcCBgIHAQFbXF0DEQMDXl8RC2ACNmFiNgEJAgIhIWMhAAICAgICAg4ODg4ODg4ODgQEBAQCAmQBAQEBAgICAgICAgICFQICAgICAgICAQICAQICDwczNTQCAQECAgIGCwIAAQIANzcDAgIiIgACBQMCAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAwECBQEBAQEBAQEBBAIAAgICAgIJAgICAgEBAQECAwEBAQICAgIEaAMDAgcCCQEXBRcSEgIBAgEBAQEBAQEBAgIBAgEBAQEBAQEDBAEDBQEFBQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAwMBAQEBAQEBAQEBEQERAgICAQIBAgECAgICAQEBAQEBAQEEAwEBAQEBAQEBAQMDCgEEAgEiBAQEBAQEEQQXBQQLAnAB4QThBG8AgAgFAwEAEwYPAn8BQYCAwAALfwFBgAgLB7AMPgZtZW1vcnkCABdfX3diZ19jaHVua2RlY29kZXJfZnJlZQCSBBZfX3diZ19jc3BsYXRhcnJheV9mcmVlALYFIV9fd2JnX2dldF9jc3BsYXRhcnJheV9tYXhTaERlZ3JlZQClCB9fX3diZ19nZXRfY3NwbGF0YXJyYXlfbnVtU3BsYXRzAKYIIV9fd2JnX2dldF9nc3BsYXRhcnJheV9tYXhTaERlZ3JlZQCnCB9fX3diZ19nZXRfZ3NwbGF0YXJyYXlfbnVtU3BsYXRzAKgIFl9fd2JnX2dzcGxhdGFycmF5X2ZyZWUAtwUhX193Ymdfc2V0X2NzcGxhdGFycmF5X21heFNoRGVncmVlAKwIH19fd2JnX3NldF9jc3BsYXRhcnJheV9udW1TcGxhdHMArQghX193Ymdfc2V0X2dzcGxhdGFycmF5X21heFNoRGVncmVlAK4IH19fd2JnX3NldF9nc3BsYXRhcnJheV9udW1TcGxhdHMArwgTYmhhdHRfbG9kX2V4dHNwbGF0cwCDCBZiaGF0dF9sb2RfcGFja2Vkc3BsYXRzAIQIE2NodW5rZGVjb2Rlcl9maW5pc2gAoggRY2h1bmtkZWNvZGVyX3B1c2gAqwgVY3NwbGF0YXJyYXlfYmhhdHRfbG9kAP4GE2NzcGxhdGFycmF5X2hhc19sb2QAxgcYY3NwbGF0YXJyYXlfaW5qZWN0X3JnYmE4AMIJD2NzcGxhdGFycmF5X2xlbgDVBxRjc3BsYXRhcnJheV90aW55X2xvZADrBhhjc3BsYXRhcnJheV90b19leHRzcGxhdHMAnAgcY3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzX2xvZACeCBtjc3BsYXRhcnJheV90b19wYWNrZWRzcGxhdHMAnQgfY3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzX2xvZACfCBVkZWNvZGVfdG9fY3NwbGF0YXJyYXkAhwgTZGVjb2RlX3RvX2V4dHNwbGF0cwD+BxVkZWNvZGVfdG9fZ3NwbGF0YXJyYXkAiwgWZGVjb2RlX3RvX3BhY2tlZHNwbGF0cwD0BxBkaXNwb3NlX2xvZF90cmVlAIwCGGV4dHNwbGF0c190b19nc3BsYXRhcnJheQCKCBJnZXRfbG9kX3RyZWVfbGV2ZWwAkwgVZ3NwbGF0YXJyYXlfYmhhdHRfbG9kAP8GGGdzcGxhdGFycmF5X2luamVjdF9yZ2JhOADDCQ9nc3BsYXRhcnJheV9sZW4A1QcUZ3NwbGF0YXJyYXlfdGlueV9sb2QA7AYYZ3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzAKAIHGdzcGxhdGFycmF5X3RvX2V4dHNwbGF0c19sb2QAoQgbZ3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzAJEIH2dzcGxhdGFycmF5X3RvX3BhY2tlZHNwbGF0c19sb2QAkggNaW5pdF9sb2RfdHJlZQCUCAxuZXdfbG9kX3RyZWUApAgTbmV3X3NoYXJlZF9sb2RfdHJlZQCjCBtwYWNrZWRzcGxhdHNfdG9fY3NwbGF0YXJyYXkAjAgbcGFja2Vkc3BsYXRzX3RvX2dzcGxhdGFycmF5AIkIDHNpbWRfZW5hYmxlZADACg1zb3J0MzJfc3BsYXRzANoIC3NvcnRfc3BsYXRzANsIEnRpbnlfbG9kX2V4dHNwbGF0cwD9BxV0aW55X2xvZF9wYWNrZWRzcGxhdHMA/AcSdHJhdmVyc2VfbG9kX3RyZWVzANwHEHVwZGF0ZV9sb2RfdHJlZXMA8gcKd2FzbV9zdGFydACFCBNnc3BsYXRhcnJheV9oYXNfbG9kAMYHEV9fd2JpbmRnZW5fbWFsbG9jANoHEl9fd2JpbmRnZW5fcmVhbGxvYwCGCA9fX3diaW5kZ2VuX2ZyZWUAlgcUX193YmluZGdlbl9leG5fc3RvcmUA2gkXX19leHRlcm5yZWZfdGFibGVfYWxsb2MA2gQVX193YmluZGdlbl9leHRlcm5yZWZzAQEZX19leHRlcm5yZWZfdGFibGVfZGVhbGxvYwCbBxBfX3diaW5kZ2VuX3N0YXJ0AL4KCbgJAQBBAQvgBIsFxAnpCPMD7QiNASwrvAnECboJ0gjoB5sF9QSnAqIE8gHVCMQBggeeBOwHrASyCvwC5wP2AagG0AeJBssF5gaWCMMI3gLRCZsIswa0AsQIhQXGCYkG3APTA8AG0AmSCpMKugW4BZsKkwGPBtkG3Qj0BMcH2AjDApoKuAiZCsYJ1gLEBLIGpwOABu0GyAjcBdUFyQjJCMkIrgevB7YHygiwB9MIuAevB8sIsQfMCK8HlAfICLkIkQfZCPEG1AjuBukHlwrhBpwKugixCLsI/ATSCaMG7wfzBNMFqAXSCc8J5APKAo0GwgGDA9sExQTVBH20CecI/QjyCIMJiAnwCIwJhgn0CP8I9wiLCYUJhAmCCfoIjQnxCIcJgAn1CIEJ/gjqCIUE/QnRA4oHkQHKBogIgATmCdYDiQeQAYEE+gnXA4cHhQGGBOwJ0gOIB5IB5gj2CIkJgwfGCc8JswqUCsUJwQqDB9cHkgWBCpIJnAnaBs4FrgKzB6cKsge6BdIGsQXwBfEF/AWGCsQJoArjBN0EhQPCCKoKwgjGCc8Jnwq5CcQJ/QXtB4kK7QexBK4G6wSNB4UKjQeDCv4FkQmMCo8J8Qe1CuAHjQrFCeAHwQqQCYcK6gaECoIKoQrJBagKigqOCYsK3AiICqUHlAnMCdAGswikB78K9wSZCcsJ0QbBCJgHmgnICdcGsgipB5kHlgnHCZkGtQinB4wGlwnJCZgGvwiVCcoJvga0CJcHmwnNCZsG2AfLBoYHmAnOCZoG9gfNBe4HxQa4CZEK6wHaBYAK5wX7CPgI8wjvCIoJ+QjuCPwItQb/Cb0HuAOHA+oJxAe1BfkG8wnMB4kB8AlI8QlSnAPoCcEH0we8BvUJuge2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gICAeEYNBCADKQJMIR0gAygCVCEMIANBgICAgHg2AlQgDEGAgICAeEYNBCADKQJYISAgAygCPCERIANBgICAgHg2AjwgEUGAgICAeEYNBCADKQJAISIgAygCMCEPIANBgICAgHg2AjAgD0GAgICAeEYNBCADKQI0ISMgAigCzAEiBSACKALAASIGRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIUIAZBACAGIBRNG2tBDGxqIgYgGTcCBCAGIAQ2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIBo3AgQgBCAHNgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAcNwIEIAQgCTYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgHjcCBCAEIAs2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIB03AgQgBCAINgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAgNwIEIAQgDDYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgIjcCBCAEIBE2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEg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SxsNDyAEEKICCyADQQA2AlggA0KAgICAwAA3AlAgA0EANgKMASADQoCAgIDAADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCINIAJBBXQiCWoiBSgCACIGIAAoAggiBEkEQCAAKAIEIgsgBkEkbGoiBv1dAgggBioCECIB/SACIAH9IAMgA/0JAkwiLv3nAf1oIi39HwL8BCEaIC39HwH8BCEbIC39HwD8BCEcIAcgAkEBaiIITQRAIAIhCgwDCyAHQQFrIQogFUEBcQRAIAchCAwDCyAJIA1qQSBqIQYDQCAGKAIAIgkgBE8NAiALIAlBJGxqIgn9XQIIIAkqAhAiAf0gAiAB/SADIC795wH9aCIt/R8A/AQgHFIgLf0fAfwEIBtSckUgLf0fAvwEIBpRcUUEQCAIQQFrIQoMBAsgBkEgaiEGIAcgCEEBaiIIRw0ACyAHIQgMAgsgBiAEQdTAxwAQjAcACyAJIARB1MDHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayILrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiI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ADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCIWIAJBBXQiCWoiBigCACIFIAAoAggiBEkEQCAAKAIEIgogBUEYbGr9AAIAICz9DQABAgMEBQYHCAkKCwgJCgsgA/0JAkwiLf3nAf1oIiz9HwL8BCEaICz9HwH8BCEbICz9HwD8BCEcIAcgAkEBaiIITQRAIAIhCwwDCyAHQQFrIQsgDkEBcQRAIAchCAwDCyAJIBZqQSBqIQUDQCAFKAIAIgkgBE8NAiAKIAlBGGxq/QACACAs/Q0AAQIDBAUGBwgJCgsICQoLIC395wH9aCIs/R8A/AQgHFIgLP0fAfwEIBtSckUgLP0fAvwEIBpRcUUEQCAIQQFrIQsMBAsgBUEgaiEFIAcgCEEBaiIIRw0ACyAHIQgMAgsgBSAEQdy7xwAQjAcACyAJIARB3LvHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayIMrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhCADKQPwASIbQn+FfiIc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IANrIhUNAQwCCwtBqJDIACkDACJ6Qv8Bg0IEUQ0AIHpCIIinIhIgeqciA0H/AXFBBEYNARogekIQiKchFSB6QgiIpyEIQQAhCwwCCyAELwHIDCAELQDKDEEQdHILIRJBASEJIAEgEkEBdkEHcToAKyABIBJBAXEiA0U6ACggASASQQR2QQFxOgApAkACQAJAAkACQAJAAkAgAw0AIARBADoA2hggBEEAOwHYGCABKALoAyELQQMhFSAEQdgYaiEIAkADQAJAIHlQBEBCACF5DAELIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQAgAyAIaiEIIBUgA2siFQ0BDAILC0EAIQtBqJDIACkDACJ6pyIDQf8BcUEERg0AIHpCIIinIRIgekIQiKchFSB6QgiIpyEIDAgLIAECfwJAAkACQAJ/AkACQCAELwHYGCAELQDaGEEQdHIiB0Gdg6gBRgRAIARBADsByAwgASgC6AMhC0ECIRUgBEHIDGohCANAIHlQBEBCACF5DAMLIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQIgAyAIaiEIIBUgA2siFQ0ACwwCCyAHQQh2IQJBESELDA4LQaiQyAApAwAiekL/AYNCBFENACB6QhCIpyEVIHqnIgNB/wFxQQRHDQIgFQwBCyAELwHIDAshESAEQQA7AcgMIAEoAugDIQtBAiEVIARByAxqIQgDQCB5UA0CIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4g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ADcD0EggA0EANgLYSCADQQA6AMJIIANB4MgAaiIBIANBsMUAahCcBCADLQDgSEEoRwRAIAUgARD8AyADKAIYIgFBBkcNBAsgA0EQNgLYSCADQdDRAGoiASADQbDFAGpBsAP8CgAAIANBGGogARCcBCADLQAYIgZBKEcEQCADQarVAGogAy0AGzoAACADIAMvABk7AahVIAMoAhwhBSADKQIgIRQgARCdAQwZCwJAAkAgAygCHCIBLQC+AiICQQN0KQOwkkkgATUCtAIgATEAvwJ+IhR+IhVC8P////8AVg0AIBVCB3xCA4inQQFqrUGAASABKAK4AiIBIAFBgAFPG61+IhVCIIinDQAgFaciAUH/AXEiBEEARyABQYB+cUGAAmoiBiABSXENACAGIAEgBBsiBkGBgAhJDQELQYCACCEGC0EBIQVB/////wchBAJAIAJBA3QpA+iSSSAUfiIUQvD/////AFYNACAUQgd8QgOIp0EBaiIBQf////8DSw0AIAFBAnQiAkFAcUFAayEIIAFBD3EiAUEAIAIgCEsbDQBBgIAIIAggAiABGyIBIAFBgIAITRshBAsgBgRAIAYQcSIFRQ0WCyADQRhqIANB0NEAakGoA/wKAAAgA0H1A2pCADcAACADQbQEakEANgIAIANBAToA3QQgA0EANgLUBCADQQA2AsgDIANCADcDwAMgA0IANwPwAyADQYCAgIB4NgKgBCADQgE3A5gEIANCADcDkAQgAyAFNgKMBCADIAY2AogEIANCfzcDgAQgA/0MAAAAAAAAAAAAAAAAAAAAAP0LAqQEIAMgBDYCuAQgAyADKAL4VDYC2AQgA0ECNgLcAyADQQA6ANwEIANBADYC0AQgA0KAgICAEDcDyAQgA0EANgLABAJAIAMoAiBBAkcEQEEnIQYgAy0A3gJBA3QpA6CTSSADNQLUAiIUIAMxAN8Cfn5C8f////8AVA0BDBkLQayYxwAQ3QkACyADKALYAiEFIANBEGogA0EYaiIBEIoFIAMtABBBA3QpA9iTSSADMQARIBR+fiIUQvD/////AFYNFyAFrSAUQgd8QgOIfiIVQiCIpyAVp0EASHINFyADQZDVAGogARCMASADLQCQVSIGQShHBEAgA0Gq1QBqIAMtAJNVOgAAIAMgAy8AkVU7AahVIAMoApRVIQUgAykCmFUhFAwY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nNPBABCMBwALIAMgCEGs08EAEIwHAAsgCCAHQbzTwQAQjAcACyAIIAdBzNPBABCMBwALIAggB0Hc08EAEIwHAAsgBiABQezSwQAQjAcACyAHIAFB3NLBABCMBwALIAQgAUHM0sEAEIwHAAsgACAAKAKYAiALIAAoAuwBIAAoAvABEKAFAkACQAJAIAAoAuQBIgEgCyAQbCICTwRAIABBADYC5AEgASACayEDIAVFDQEgASACRg0DIANFDQIgACgC4AEiASABIAJqIAP8CgAADAILDBALIAEgAkYNAQsgACADNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0FIABBADYCmAIgAEEFOgCcAgwFCyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0HC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAgD2UQwAAIMGSEIkEOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQngIgACgC5AEiAiAFSQ0WIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkGc0cEAEIwHAAsgASACQazRwQAQjAcACyACIARBvNHBABCMBwALIAIgBEHM0cEAEIwHAAsgAiAEQdzRwQAQjAcACyACIARB7NHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0EIABBADYCmAIgAEEEOgCcAgwECyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0GC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQpAIgACgC5AEiAiAFSQ0VIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkG80MEAEIwHAAsgASACQczQwQAQjAcACyACIARB3NDBABCMBwALIAIgBEHs0MEAEIwHAAsgAiAEQfzQwQAQjAcACyACIARBjNHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0DIABBADYCmAIgAEEDOgCcAgwDCyAAKALkASICIAAoApACIAAoApgCayILSQRAIAIiC0GAgARJDQULQYCABCAL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QCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAgD2UQwAAIMGSEIkEOAIAIAFBAmoiAiAAKALcASIFTw0GIAIgACgC6AEiBU8NByAAKALkASADakEIaiAAKALYASABakECai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgA0EMaiEDIAYgAUEDaiIBRw0ACyAAKALoASEBCyAAIAAoApACIAQgACgC5AEgARDJAyAAKALcASICIAZJDRUgAEEANgLcASACIAZrIQEgCUUNBiACIAZGDQggAUUNByAAKALYASICIAIgBmogAfwKAAAMBwsgASACQZzRwQAQjAcACyABIAJBrNHBABCMBwALIAIgBUG80cEAEIwHAAsgAiAFQczRwQAQjAcACyACIAVB3NHBABCMBwALIAIgBUHs0cEAEIwHAAsgAiAGRg0BCyAAIAE2AtwBCyAAIAAoApACIARqIgI2ApACIAIgACgCiAJHDQUgAEEANgKQAiAAQQQ6AJQCDAULIAAoAtwBIgFBA24iAiAAKAKIAiAAKAKQAmsiCUkEQCACIQkgAUGAgAxJDQQLQYCABCAJIAlBgIAETxsiBEEDbCIGIAAoAugBIgFLBEAgBiABayICIAAoAuABIAFrSwRAIBIgASACQQRBBBCkBSAAKALoASEBCyAAKALkASIFIAFBAnRqIQMgAkECTwR/IAJBAnRBBGsiBwRAIANBACAH/AsACyABIAJqIgJBAWshASAFIAJBAnRqQQRrBSADC0EANgIAIAAgAUEBaiIBNgLoAQsCQAJAAkACQAJAAkACQAJAAkAgCQRAQQAhA0EAIQEDQCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAFBAmoiAiAAKALc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IAEgDCAIazoAogcgASAnICiINwPQBgwPCyAMQf8BcUERSQ0OIAEgD0ENdkEPcUEEajYCyAYgASAPQQh2QR9xIglBAWo2AsQGIAEgD0EDdkEfcSIIQYECajYCwAZBBCAIQR1LDQMaIAlBHU0NAUEFDAMLIAEgDEEDazoAogcgASAnQgOINwPQBiAnQvgHg1ANAyABLQClB0UEQCABQQE6AKUHIAEoAvgGIQpBACIIRQRAIApB7J3EAEGAEPwKAAALIAhFBEAgCkGAEGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAIGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAMGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAQGtB7J3EAEGAEPwKAAALIAhFBEAgCkGA0ABqQeydxABBgBD8CgAACyAIRQRAIApBgOAAakHsncQAQYAQ/AoAAAsgCEUEQCAKQYDwAGpB7J3EAEGAEPwKAAALIAEoAvwGIQpBAEUEQCAKQeycxABBgAH8CgAACyAIRQRAIApBgAFqQeycxABBgAH8CgAACyAIRQRAIApBgAJqQeycxABBgAH8CgAACyAIRQRAIApBgANqQeycxABBgAH8CgAACyAIRQRAIApBgARqQeycxABBgAH8CgAACyAIRQRAIApBgAVqQeycxABBgAH8CgAACyAIRQRAIApBgAZqQeycxABBgAH8CgAACyAIRQRAIApBgAdqQeycxABBgAH8CgAACyAIRQRAIApBgAhqQeycxABBgAH8CgAACyAIRQRAIApBgAlqQeycxABBgAH8CgAACyAIRQRAIApBgApqQeycxABBgAH8CgAACyAIRQRAIApBgAtqQeycxABBgAH8CgAACyAIRQRAIApBgAxqQeycxABBgAH8CgAACyAIRQRAIApBgA1qQeycxABBgAH8CgAACyAIRQRAIApBgA5qQeycxABBgAH8CgAACyAIRQRAIApBgA9qQeycxABBgAH8CgAACyABQYCA/AM2AoAHIAFBBzoAhAcLIAFBBDoAowcMDQsgAUEAOgClByABQQI6AKMHIAEgDEERazoAogcgASAnQhGINwPQBgwMC0ECCzoAAUEBDBQLIAEgDEEKayIJOgCiByABICdCCogiJzcD0AYgCA0HIAlB/wFxQQpJDQADQCAnQv8Hg0ICUg0BIAEgCUEKayIPOgCi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QbyNyAAQ6wcAC545Azd/A30BfiMAQYABayIBJAACQAJAAkAgACgCaCICQf8fTQRAIAFBADYCQCABQQE2AjQgAUHwssEANgIwIAFCBDcCOCABQTBqEJIHIQMMAQsgASAAKAJkIgMtAAAiBDoABiABIAMtAAEiBjoAByAEQQEgBhsEQCABQQI2AjQgAUHAssEANgIwIAFCAjcCPCABQoCAgIDwBCI7IAFBB2qthDcDECABIDsgAUEGaq2ENwMIIAEgAUEIajYCOCABQTBqEJIHIQMMAQsgA0EEaigAACEqIAMoABAhDSABIAMvABQiBDYCHCAEQQNPBEAgAUEBNgI0IAFBmLLBADYCMCABQgE3AjwgASABQRxqrUKAgICAEIQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyABIANBJGooAAAiBkGAgID+eyAGQf////8HcRs2AiAgASADKAAoIgZBgICA/gMgBkH/////B3EbNgIkIARBKGxBrKrBAGohECACQYAga0EKdkEBaiEUQQAhBEEAIQIgKkEKdEGAIGoiKyEhAkADQAJAIAQgKkcEQCAUIARBAWoiBEcNASABQQA2AkAgAUEBNgI0IAFB1LHBADYCMCABQgQ3AjggAUEwahCSByEDDAQLIAFBADoAOCABIAI2AjQgASANNgIwIAAgAUEwahDpASAqRQ0CQYAgISFBASEuAkADQCAhIgRBgAhqIiEgACgCaCIDSwRAIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgACgCZCIGIARqIgIoABgiEUUEQCAQKAIkIRELIAMgBEEkckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEockkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEqckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAIoAAQhB0EAIQQgECgCCCAQKAIAIBAoAgRqaiACLwAoIiJBA00EfyAiQQJ0KAKkq0EFIAQLIBAoAhBsakEEaiI1rSAHrX4iO0IgiFBFBEAgAUEANgJAIAFBATYCNCABQdCrwQA2AjAgAUIENwI4IAFBMGoQkgchAwwGCwJAAkACQAJ/AkAgAyArIgQgAigAJCIwQQJ0IgkgAigADCINIAIvABRsamoiFCA7pyIIaiIrTwRAIAIqABAhOCACKAAIIS8gAigAACEHIAIoACAhHCANDQFBAAwCCyABQQA2AkAgAUEBNgI0IAFBmLHBADYCMCABQgQ3AjggAUEwahCSByEDDAoLIAQgCWoiAiANQQxsaiADSw0BIA1BA2whHiACIAZqCyEjIBQgK00EQAJAIAdBA2wiDUH/////A0sNACAHQQxsIgJB/f///wdPDQACQAJAAkACQAJAAn8gAkUEQEEEIRZBBCEXQQAMAQsgAhBxIhZFDQEgFkEEay0AAEEDcUUgAkVyRQRAIBZBACAC/AsACyACEHEiF0UNASAXQQRrLQAAQQNxRSACRXJFBEAgF0EAIAL8CwALIA0LISQgB0ECdCIOQf////8DSw0EIAdBBHQiA0H9////B08NBEEEIRhBACElQQAhJkEEIRUgAwRAIAMQcSIVRQ0BIBVBBGstAABBA3FFIANFckUEQCAVQQAgA/wLAAsgDiEmCyACBEAgAhBxIhhFDQEgGEEEay0AAEEDcUUgAkVyRQRAIBhBACAC/AsACyANISULIAdB/////wNLIA5B/f///wdPcg0DQQQhD0EAIR1BACEnQQQhGiAOBEAgDhBxIhpFDQEgGkEEay0AAEEDcUUgDkVyRQRAIBpBACAO/AsACyAHIScLAkACfwJAAkAgIkUEQEEAIRJBACEfQQQhCgwBCyAHQQlsIhJB/////wNLDQYgB0EkbCICQf3///8HTw0GQQQhCkEAIR8gAgRAIAIQcSIPRQ0FIA9BBGstAABBA3FFIAJFckUEQCAPQQAgAvwLAAsgEiEfCyAiQQFHDQELQQAhCUEAIShBBCEZQQAhG0EAIS1BAAwBCyAHQQ9sIglB/////wNLDQMgB0E8bCICQf3///8HTw0DQQQhGUEAISggAgRAIAIQcSIKRQ0DIApBBGstAABBA3FFIAJFckUEQCAKQQAgAvwLAAsgCSEdCyAiQQNJBEBBASEtQQAhG0EADAELIAdBFWwiG0H/////A0sNASAHQdQAbCICQf3///8HTw0BAn8gAkUEQEEADAELIAIQcSIZRQ0DIBlBBGstAABBA3FFIAJFckUEQCAZQQAgAvwLAAsgGwshKEEBIS1BAQshMSABKAIcBH0gOEMAAAA/lCARs5UFQwAAAAALITogB0UNCiAEIAZqITYgBiAUaiEMQQEhA0EAISAgGSERQQAhBCAcIgYgL2wiNyETA0AgAyEUIAEgBCA1bCIDNgIoAkAgBCA3TwRAIDBFBEAgBiECDAILIDAgBiAcayICQQAgAiAGTRsiAk0EQCAGIQIMAgsgNiACQQJ0aigCACATaiICIARLBEAgBiECDAILIAIhEyAGQQFqIgIhBgwBCyAvBEAgBCAvbiECDAELQfitwQAQgQgACwJAAkACQAJAAn0CQAJAIAEoAhxFBEAgA0F7TSADQQRqIAhNcQ0BIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBAsgA0F9TSADQQJqIAhNcQ0BIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMAwsgAyAMaioAAAwBCyA6IAMgDGovAACzIBAoAiSzk5RDAAAAACE4AkAgI0UNACACQQNsIgMgHk8NACAjIANBAnRqKgIAITgLIDiSCyE4An0CQAJAAkAgDSAEQQNsIgNLBEAgFiADQQJ0IjJqIDg4AgAgASgCKCEFIAEoAhwNASAFQQRqIgtBe00gBUEIaiAITXENAiABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAULIAMgDUGIrsEAEIwHAAsgBUECaiILQX1NIAVBBGogCE1xDQEgAUEANgJAIAFBATYCNCABQcjbwQA2AjAgAUIENwI4IAFBMGoQkgchAwwDCyALIAxqKgAADAELIDogCyAMai8AALMgECgCJLOTlEMAAAAAITgCQCAjRQ0AIAJBA2xBAWoiBSAeTw0AICMgBUECdGoqAgAhOAsgOJILITgCfQJAAkACQCANIANBAWoiBUsEQCAWIAVBAnQiM2ogODgCACABKAIoIQUgASgCHA0BIAVBCGoiAkF7TSAFQQxqIAhNcQ0CIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBQsgBSANQZiuwQAQjAcACyAFQQRqIgtBfU0gBUEGaiAITXENASABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAMLIAIgDGoqAAAMAQsgOiALIAxqLwAAsyAQKAIks5OUQwAAAAAhOAJAICNFDQAgAkEDbEECaiICIB5PDQAgIyACQQJ0aioCACE4CyA4kgshOAJAIA0gA0ECaiICSwRAIBYgAkECdCI0aiA4OAIAIAFBMGoiBSAMIAggASgCKCAQKAIUaiICIAEoAhwQuwQgASgCNCEDIAEoAjANAiAXIDJqIAM2AgAgBSAMIAhBAkEEIAEoAhwiAxsgAmogAxC7BCABKAI0IQMgASgCMA0CIBcgM2ogAzYCACAFIAwgCCACQQRBCCABKAIcIgIbaiACELsEIAEoAjQhAyABKAIwDQIgFyA0aiADNgIAIAUgDCAIIAEoAiggECgCGGoiCyABKAIcELsEIAEoAjQhAyABKAIwDQIgBSAMIAhBAkEEIAEoAhwiAhsgC2ogAhC7BCABKAI0IQIgASgCMEUNASACIQMMAgsgAiANQaiuwQAQjAcACyABQTBqIAwgCEEEQQggASgCHCIFGyALaiAFELsEIAEoAjQhBSABKAIwBEAgBSEDDAELIAFBMGogDCAIIAtBBkEMIAEoAhwiCxtqIAsQuwQgASgCNCELIAEoAjAEQCALIQMMAQsCQAJAAkACQAJAAkACQAJAAkACQCAOIARBAnQiKUsEQCAVIClBAnRqIAI2AgAgKUEBciICIA5PDQEgFSACQQJ0aiAFNgIAIClBAnIiAiAOTw0CIBUgAkECdGogCzYCACApQQNyIgIgDk8NAyAVIAJBAnRqIAM2AgAgASgCKCAQKAIcaiICIAhPDQQgGCAyaiACIAxqLQAAs0MAAH9DlTgCACACQQFqIgMgCE8NBSAYIDNqIAMgDGotAACzQwAAf0OVOAIAIAJBAmoiAyAITw0GIBggNGogAyAMai0AALNDAAB/Q5U4AgAgAkEDaiICIAhPDQcgBCAHTw0IIBogKWogAiAMai0AALNDAAB/Q5U4AgAgIkUNDiABIBAoAiA2AiwgASAINgJEIAEgDDYCQCABIBA2AjggASABQSRqNgJMIAEgAUEgajYCSCABIAFBHGo2AjwgASABQSxqNgI0IAEgAUEoajYCMCABQQhqIgUgAUEwaiILQQAQzQMgASgCDCEDIAEoAggNCyAEQQlsIgIgEk8NDSAPIAJBAnRqIAM2AgAgBSALQQMQzQMgASgCDCEDIAEoAggNCyASIAJBAWoiBU0EQCAFIQIMDgsgDyAFQQJ0aiADNgIAIAFBCGogAUEwakEGEM0DIAEoAgwhAyABKAIIDQsgEiACQQJqIgVNBEAgBSECDA4LIA8gBUECdGogAzYCACABQQhqIAFBMGpBARDNAyABKAIMIQMgASgCCA0LIBIgAkEDaiIFTQRAIAUhAgwOCyAPIAVBAnRqIAM2AgAgAUEIaiABQTBqQQQQzQMgASgCDCEDIAEoAggNCyASIAJBBGoiBU0EQCAFIQIMDgsgDyAFQQJ0aiADNgIAIAFBCGogAUEwakEHEM0DIAEoAgwhAyABKAIIDQsgEiACQQVqIgVNBEAgBSECDA4LIA8gBUECdGogAzYCACABQQhqIAFBMGpBAhDNAyABKAIMIQMgASgCCA0LIBIgAkEGaiIFTQRAIAUhAgwOCyAPIAVBAnRqIAM2AgAgAUEIaiABQTBqQQUQzQMgASgCDCEDIAEoAggNCyASIAJBB2oiBU0EQCAFIQIMDgsgDyAFQQJ0aiADNgIAIAFBCGogAUEwakEIEM0DIAEoAgwhAyABKAIIDQsgAkEIaiICIBJPDQ0gDyACQQJ0aiADNgIAIC0NCQwKCyApIA5BuK7BABCMBwALIAIgDkHIrsEAEIwHAAsgAiAOQdiuwQAQjAcACyACIA5B6K7BABCMBwALIAIgCEH4rsEAEIwHAAsgAyAIQYivwQAQjAcACyADIAhBmK/BABCMBwALIAIgCEGor8EAEIwHAAsgBCAHQbivwQAQjAcACyABQQhqIgIgAUEwaiIFQQkQzQMgASgCDCEDIAEoAggNASAEQQ9sIgQgCU8NAiAKIARBAnRqIAM2AgAgAiAFQQ4QzQMgASgCDCEDIAEoAggNASAJIARBAWoiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakETEM0DIAEoAgwhAyABKAIIDQEgCSAEQQJqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBChDNAyABKAIMIQMgASgCCA0BIAkgBEEDaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQQ8QzQMgASgCDCEDIAEoAggNASAJIARBBGoiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakEUEM0DIAEoAgwhAyABKAIIDQEgCSAEQQVqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBCxDNAyABKAIMIQMgASgCCA0BIAkgBEEGaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQRAQzQMgASgCDCEDIAEoAggNASAJIARBB2oiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakEVEM0DIAEoAgwhAyABKAIIDQEgCSAEQQhqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBDBDNAyABKAIMIQMgASgCCA0BIAkgBEEJaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQREQzQMgASgCDCEDIAEoAggNASAJIARBCmoiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakEWEM0DIAEoAgwhAyABKAIIDQEgCSAEQQtqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBDRDNAyABKAIMIQMgASgCCA0BIAkgBEEMaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQRIQzQMgASgCDCEDIAEoAggNASAJIARBDWoiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakEXEM0DIAEoAgwhAyABKAIIDQEgBEEOaiIEIAlPDQIgCiAEQQJ0aiADNgIACyAxRQ0DQQAhBCAgIQIDQCABQQhqIAFBMGogBEHIr8EAaigCABDNAyABKAIMIQMgASgCCA0BIAIgG0kEQCAEIBFqIAM2AgAgAkEBaiECIARBBGoiBEHUAEYNBQwBCwsgAiAbQZywwQAQjAcACwJAICgEQCAZQQRrKAIAIgBBeHEiBCAoQQJ0IgJBBEEIIABBA3EiABtqSQ0XIABBACAEIAJBJ2pLGw0YIBkQogILIB0EQCAKQQRrKAIAIgBBeHEiBCAdQQJ0IgJBBEEIIABBA3EiABtqSQ0XIABBACAEIAJBJ2pLGw0YIAoQogILIB8EQCAPQQRrKAIAIgBBeHEiBCAfQQJ0IgJBBEEIIABBA3EiABtqSQ0XIABBACAEIAJBJ2pLGw0YIA8QogILICcEQCAaQQRrKAIAIgBBeHEiBCAnQQJ0IgJBBEEIIABBA3EiABtqSQ0XIABBACAEIAJBJ2pLGw0YIBoQogILICUEQCAYQQRrKAIAIgBBeHEiBCAlQQJ0IgJBBEEIIABBA3EiABtqSQ0XIABBACAEIAJBJ2pLGw0YIBgQogILICYEQCAVQQRrKAIAIgBBeHEiBCAmQQJ0IgJBBEEIIABBA3EiABtySQ0XIABBACAEIAJBJ2pLGw0YIBUQogILICRFDRUgF0EEaygCACIAQXhxIgQgJEECdCICQQRBCCAAQQNxIgAbakkNFiAAQQAgBCACQSdqSxsNFyAXEKICICRFDRUgFkEEaygCACIAQXhxIgRBBEEIIABBA3EiABsgAmpJDRYgAEEAIAQgAkEnaksbDQAgFhCiAgwVCwwWCyAEIAlBrLDBABCMBwALIAIgEkG8sMEAEIwHAAsgEUHUAGohESAgQRVqISAgFCAHIBRLIgJqIQMgFCEEIAINAAsgByECICwhBAwJC0GorMEAEP8HCwALQZiswQAQ/wcAC0GIrMEAEP8HAAtB+KvBABD/BwALQeirwQAQ/wcAC0HYq8EAEP8HAAsgFCArIANBzLDBABDqBwALIAFBADYCQCABQQE2AjQgAUH4sMEANgIwIAFCBDcCOCABQTBqEJIHIQMMBwsCQAJAAkACQAJAAkACQAJAAkACQANAIAQgLGsiBkEDbCIgIA1NBEBBgIAEIAIgAkGAgARPGyIDQQNsIhQgDSAgayIRSw0CIAYgB0sNAyADIAcgBmsiEUsNBCAOIAZBAnQiEUkNBSADQQJ0IgUgDiARayIcSw0GQQAhHkEEIQtBBCEIQQAhHCAiBEAgEiAGQQlsIhNJDQggA0EJbCIcIBIgE2siCEsNCSAPIBNBAnRqIQgLAn8CQAJAIC0EQCAJIAZBD2wiE0kNASADQQ9sIh4gCSATayILSw0PIAogE0ECdGohCwsgMQ0BQQAhBkEEDAILIBMgCSAJQeiswQAQ6gcACyAbIAZBFWwiE0kNCiADQRVsIgYgGyATayIMSw0LIBkgE0ECdGoLIRMgAUIENwJ4IAFCAjcCcCABIAY2AmwgASATNgJoIAEgHjYCZCABIAs2AmAgASAcNgJcIAEgCDYCWCABIAU2AlQgASAVIBFBAnRqNgJQIAEgFDYCTCABIBcgIEECdCIGajYCSCABIBQ2AkQgASAGIBhqNgJAIAEgAzYCPCABIBEgGmo2AjggASAUNgI0IAEgBiAWajYCMCAAIAQgAyABQTBqEJMCIAMgBGohBCACIANrIgINAQwMCwsgICANIA1B6K3BABDqBwALQQAgFCARQditwQAQ6gcACyAGIAcgB0HIrcEAEOoHAAtBACADIBFBuK3BABDqBwALIBEgDiAOQaitwQAQ6gcAC0EAIAUgHEGYrcEAEOoHAAsgEyASIBJBiK3BABDqBwALQQAgHCAIQfiswQAQ6gcACyATIBsgG0HIrMEAEOoHAAtBACAGIAxBuKzBABDqBwALQQAgHiALQdiswQAQ6gcACwJAICgEQCAZQQRrKAIAIgRBeHEiAiAoQQJ0IgNBBEEIIARBA3EiBBtqSQ0BIARBACACIANBJ2pLGw0JIBkQogILIB0EQCAKQQRrKAIAIgRBeHEiAiAdQQJ0IgNBBEEIIARBA3EiBBtqSQ0IIARBACACIANBJ2pLGw0JIAoQogILIB8EQCAPQQRrKAIAIgRBeHEiAiAfQQJ0IgNBBEEIIARBA3EiBBtqSQ0IIARBACACIANBJ2pLGw0JIA8QogILICcEQCAaQQRrKAIAIgRBeHEiAiAnQQJ0IgNBBEEIIARBA3EiBBtqSQ0IIARBACACIANBJ2pLGw0JIBoQogILICUEQCAYQQRrKAIAIgRBeHEiAiAlQQJ0IgNBBEEIIARBA3EiBBtqSQ0IIARBACACIANBJ2pLGw0JIBgQogILICYEQCAVQQRrKAIAIgRBeHEiAiAmQQJ0IgNBBEEIIARBA3EiBBtySQ0IIARBACACIANBJ2pLGw0JIBUQogILAkAgJEUNACAXQQRrKAIAIgJBeHEiAyAkQQJ0IgRBBEEIIAJBA3EiBhtqSQ0IIAZBACAEQSdqIgIgA0kbDQkgFxCiAiAkRQ0AIBZBBGsoAgAiA0F4cSIGIARBBEEIIANBA3EiBBtqSQ0IIARBACACIAZJGw0DIBYQogILIAcgLGohLCAuICogLksiBGohLiAEDQEMBQsLDAULDAULIAIgA0GoIGovAAAiB0shCUEAIQYgAiAHIAkbIQIgISADQYQgaigAACAQKAIIIBAoAgAgECgCBGpqIAdBA00EfyAHQQJ0KAKkq0EFIAYLIBAoAhBsakEEamwgIWogA0GMIGooAAAgA0GUIGovAABsaiADQaQgaigAAEECdGoiIU0gA0GACGohAw0ACyABQQA2AkAgAUEBNgI0IAFB9LHBADYCMCABQgQ3AjggAUEwahCSByEDDAELQQAhAwsgAUGAAWokACADDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALnjkDN38DfQF+IwBBgAFrIgEkAAJAAkACQCAAKAJIIgJB/x9NBEAgAUEANgJAIAFBATYCNCABQfCywQA2AjAgAUIENwI4IAFBMGoQkgchAwwBCyABIAAoAkQiAy0AACIEOgAGIAEgAy0AASIGOgAHIARBASAGGwRAIAFBAjYCNCABQcCywQA2AjAgAUICNwI8IAFCgICAgPAEIjsgAUEHaq2ENwMQIAEgOyABQQZqrYQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyADQQRqKAAAISogAygAECENIAEgAy8AFCIENgIcIARBA08EQCABQQE2AjQgAUGYssEANgIwIAFCATcCPCABIAFBHGqtQoCAgIAQhDcDCCABIAFBCGo2AjggAUEwahCSByEDDAELIAEgA0EkaigAACIGQYCAgP57IAZB/////wdxGzYCICABIAMoACgiBkGAgID+AyAGQf////8HcRs2AiQgBEEobEGsqsEAaiEQIAJBgCBrQQp2QQFqIRRBACEEQQAhAiAqQQp0QYAgaiIrISECQANAAkAgBCAqRwRAIBQgBEEBaiIERw0BIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBAsgAUEAOgA4IAEgAjYCNCABIA02AjAgACABQTBqEIQCICpFDQJBgCAhIUEBIS4CQANAICEiBEGACGoiISAAKAJIIgNLBEAgAUEANgJAIAFBATYCNCABQdSxwQA2AjAgAUIENwI4IAFBMGoQkgchAwwGCyAAKAJEIgYgBGoiAigAGCIRRQRAIBAoAiQhEQsgAyAEQSRySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQShySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQSpySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIw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AtwCNwM4IAEoAtgCIgJFBEAgAUE4ahCPByECDAMLIAFBLGogAygCADYCACABIAEpAzg3AiQgASABKQPoAiIpNwMwIAEgAjYCIAJAAkAgKacoAkAiEARAIAFB/ABqIQQgAUHwAGohDCABQewCaiEiIAFB4AJqIQ0DQCABQQA6ALgCIAFBADYCsAIgAUHYAmogAUEgaiAdIAFBsAJqEKgBIAFB0ABqIgIgDUEIaigCADYCACABIA0pAwA3A0gCQAJAAkACQAJAAkACQAJAAkAgASkD2AIiKUIDUgRAIAQgIkG0AfwKAAAgDEEIaiACKAIANgIAIAwgASkDSDcDACABICk3A2gCQCABKAJwIAFB6ABqIClCAlEbIgIoAiwiB0EATgRAIAIoAighAgJAIAdFBEBBASELDAELIAcQcSILRQ0ICyAHBEAgCyACIAf8CgAACyABQegAahD8ASAHQQlJDQhB/NXBACAHIAtqQQlrQQkQ2wcNCSAHIQICQANAIAFBCGpBLyALIAIQqQNBASEdQQAhIiABKAIIQQFxRQRADAILAkAgByABKAIMIgJLBEAgAiALai0AAEEvRg0BCyACIAdNDQEMAgsLIAEgAjYCqAQgASALNgKkBCABIAFBpARqrUKAgICAIIQ3A7ACIAFCATcC5AIgAUECNgLcAiABQazWwQA2AtgCIAEgAUGwAmo2AuACIAFB6ABqIAFB2AJqEOwDIAEoAmgiAkGAgICAeEYNACABKQJsIilCIIinIQUgKachHSACISILIAFB2AJqIAFBIGogCyAHEMkEIAFB4ABqIAFB6AJqKAIANgIAIAEgASkD4AI3A1gCQCABKQPYAiIpQgNRBEAgAUHYAGoQjwchAgwBCyABQfwAaiABQewCakG0AfwKAAAgAUH4AGogAUHgAGooAgA2AgAgASApNwNoIAEgASkDWDcDcCABQQA2ArgCIAFCgICAgBA3ArACIAFB2AJqIAFB6ABqIAFBsAJqEJkBIAEoAtgCQQFGBEAgASkC3AIQzwchAiABKAKwAiIABEAgASgCtAIgAEEBEKIHCyABQegAahD8AQwBCyABKAKwAiEnIAEoArQCISggASgCuAIhAiABQegAahD8ASABQQA2ArgCIAEgAjYCtAIgASAoNgKwAiABQdgCaiABQbACahBGIAEoAtwCIQICQCABKALY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AEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALozADJ38EfQF+IwBBwAxrIgMkAAJAAkACQAJAAkACQAJAIAAoAtwEIgFBgYCAgHhGBEACQCAAKALwBCIKQQRJDQACQCAAKALsBCIELwAAIAQtAAJBEHRyQfDY5QNGBEAgCkELSQ0CIApBCmshAkEAIQECQANAIAEgBGpB+MPBAEELENsHRQ0BIAIgAUEBaiIBRw0ACyAKQf//A00NAyADQQA2AugHIANBATYC3AcgA0Hww8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMCQsgASAKSw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIOQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCkEBcUUEQCADKAKwASEIIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAOIAggBCACEJoBIAMoAtgHIQUgAygCtAwiDUGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiEHIAMoAsQKIQsgA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQkgA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIAk2AtwHIAMgCDYC2AcgAEH0BGogDhClBAwDCyADQZgGaiICIANBCGpBwAH8CgAAIANB2AdqIAIQaiADKALcByECIAMoAtgHIgVBgICAgHhGBEAgAkUNBAwKCyADQbADaiADQeAHakHkAvwKAAAgAygCxAohCyADKALICiEHIANBADoA4AcgAyAHNgLcByADIAs2AtgHIABB9ARqIANB2AdqEKUEQYCAgIB4IQ0MAgsgA0EIahCgAyAFIgINCAwCCyADQQA2AugHIANBATYC3AcgA0Goo8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMBwsgACgC8AQiBCABQQtqIghJDQIgAEEANgLwBCAEIAhHBEAgBCAIayIEBEAgACgC7AQiASABIAhqIAT8CgAA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2OUDRgRAIApBC0kNAiAKQQprIQJBACEBAkADQCABIARqQfjDwQBBCxDbB0UNASACIAFBAWoiAUcNAAsgCkH//wNNDQMgA0EANgLoByADQQE2AtwHIANB8MPBADYC2AcgA0IENwLgByADQdgHahCSByECDAkLIAEgCksNCiADQdgHaiAEIAEQ+wIgAykC3AchLCADKALYB0EBRgRAICwQzQchAgwJCyADQdgHaiAspyAsQiCIpxBNIAMoAtgHIQIgAygChAkiBEGAgICAeEYEQCACRQ0DDAkLIANBCGpBBHIgA0HYB2oiDkEEckGoAfwKAAAgA0HAAWogA0GQCWopAwAiLDcDACADIAMpA4gJNwO4ASADIAQ2ArQBIAMgAjYCCAJAICynIgpBAXFFBEAgAygCsAEhCCADKAKcASEEIANBmAZqIgIgA0H4AGoQwwMgDiAIIAQgAhCaASADKALYByEFIAMoArQMIg1BgICAgHhGDQEgAygC3AchAiADQbADaiADQeAHakHkAvwKAAAgAygCyAohByADKALECiELIANBoAJqIANBzApqQZAB/AoAACADKALcCyEJIANByAFqIANB4AtqQdQA/AoAACADKQO4DCEsIANBADoA4AcgAyAJNgLcByADIAg2AtgHIABB9ARqIA4Q4QMMAwsgA0GYBmoiAiADQQhqQcAB/AoAACADQdgHaiACEGogAygC3AchAiADKALYByIFQYCAgIB4RgRAIAJFDQQMCgsgA0GwA2ogA0HgB2pB5AL8CgAAIAMoAsQKIQsgAygCyAohByADQQA6AOAHIAMgBzYC3AcgAyALNgLYByAAQfQEaiADQdgHahDhA0GAgICAeCENDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoAvAEIgQgAUELaiIISQ0CIABBADYC8AQgBCAIRwRAIAQgCGsiBARAIAAoAuwEIgEgASAIaiAE/AoAAAsgACAENgLwBAsCQAJAAkAgACgC3ARBgICAgHhrDgIBAgALIAAQvgIMAQsgABC9AQsgACACNgIEIAAgBTYCACAAQQhqIANBsANqQeQC/AoAACAAIAc2AvACIAAgCzYC7AIgAEH0AmogA0GgAmpBkAH8CgAAIAAg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Sw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIJQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCEEBcUUEQCADKAKwASEHIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAJIAcgBCACEJoBIAMoAtgHIQUgAygCtAwiCkGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiELIAMoAsQKIQ4gA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQ0gA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIA02AtwHIAMgBzYC2AcgACAJEIQCDAMLIANBmAZqIgIgA0EIakHAAfwKAAAgA0HYB2ogAhBqIAMoAtwHIQIgAygC2AciBUGAgICAeEYEQCACRQ0EDAoLIANBsANqIANB4AdqQeQC/AoAACADKALECiEOIAMoAsgKIQsgA0EAOgDgByADIAs2AtwHIAMgDjYC2AcgACADQdgHahCEAkGAgICAeCEKDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoArAFIgQgAUELaiIHSQ0CIABBADYCsAUgBCAHRwRAIAQgB2siBARAIAAoAqwFIgEgASAHaiAE/AoAAAsgACAENgKwBQsgAEFAayEBAkACQAJAIAAoApwFQYCAgIB4aw4CAQIACyABEL4CDAELIAEQvQELIAAgAjYCRCAAIAU2AkAgAEHIAGogA0GwA2pB5AL8CgAAIAAgCzYCsAMgACAONgKsAyAAQbQDaiADQaACakGQAfwKAAAgACANNgLEBCAAQcgEaiADQcgBakHUAPwKAAAgACAsNwOgBSAAIAo2ApwFIAhBAXENACADQQhqEKADC0EAIQIgACgCnAUiAUGBgICAeEYNBQsgAEFAayESIAFBgICAgHhHDQEgACgCqAMiAiAAKAJITwRAIAAoArAFIQFB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DyADRQ0GIA8gDygCACgCABEDACADLQAQITggAygCDCE5IAJBgOHHAEELELkFIQMgBEEANgKoAyAEQQE2ApwDIARBqOHHADYCmAMgBEIENwKgAyAEQZgDahCVByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhOiADKAIMITtBCCEeQQghHyACQbDhxwBBBRC5BSICBEAgAigCDCE8IAItABAhHwsgBEEQakG14ccAQQUQuQUiAgRAIAIoAgwhPSACLQAQIR4LQQghGkEIISAgBEEQakG64ccAQQUQuQUiAgRAIAIoAgwhPiACLQAQISALIARBEGpBv+HHAEEFELkFIgIEQCACKAIMIT8gAi0AECEaC0EIISFBCCEiIARBEGpBxOHHAEEFELkFIgIEQCACKAIMIUAgAi0AECEiCyAEQRBqQcnhxwBBBRC5BSICBEAgAigCDCFBIAItABAhIQsgBEHIAGoiAkHO4ccAQQ8QuQUhAyAEQQA2AqgDIARBATYCnAMgBEGA4scANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgA0UNBSASIBIoAgAoAgARAwAgAy0AECFCIAMoAgwhQyACQYjixwBBDxC5BSEDIARBADYCqAMgBEEBNgKcAyAEQbjixwA2ApgDIARCBDcCoAMgBEGYA2oQlQchEiADRQ0FIBIgEigCACgCABEDACADLQAQIUQgAygCDCFFIAJBwOLHAEEMELkFIQMgBEEANgKoAyAEQQE2ApwDIARB7OLHADYCmAMgBEIENwKgAyAEQZgDahCVByESIANFDQUgEiASKAIAKAIAEQMAIAMtABAhRiADKAIMIUcgAkH04scAQQwQuQUhAiAEQQA2AqgDIARBATYCnAMgBEGg48cANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgAkUNBSASIBIoAgAoAgARAwAgAUE4aiEcIAItABAhSCACKAIMIUkgASgCYEGAgICAeEYNByABKAJYICNHDQggBEHUAWqtQoCAgIAQhCFKQQAhEgNAAkAgBCASNgLUASAEQQE2ApwDIARBiNDHADYCmAMgBEIBNwKkAyAEIEo3A9gBIAQgBEHYAWo2AqADIARB0ANqIARBmANqELEGIBwgBCgC1AMiAyAEKALYAxC5BSAEKALQAyECRQ0AIAIEQCADIAJBARCiBwsgBCgC1AFB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DUEBaiINNgJsDAALAAsgASACQe8BakH4v8EAEO4BIQQMBwsgAkEQaiAGIAMgBCADIAMgBEsbEPkBIAIoAhQhAyACKAIQIQVBFBBxIgRFDQMLIAQgBTYCDCAEQRg2AgAgBCADNgIQDAMLIAUgCBDrBSEEDAILIAJBCGogBSADIAQgAyADIARLGxD5ASACKAIMIQMgAigCCCEEQRQQcSIBRQ0AIAEgBDYCDCABQRg2AgAgACABNgIEIABBgICAgHg2AgAgASADNgIQDAULAAtBgICAgHghAyACKAJkIgVFDQAgAigCaCIGQQRrKAIAIgdBeHEiCSAFQShsIgVBBEEIIAdBA3EiBxtqSQ0EIAdBACAJIAVBJ2pLGw0FIAYQogILIAEgAS0AGEEBajoAGCACIAEQugMiBTYCvAEgAiANNgK4ASACIAQ2ArQBIAIgAzYCsAEgA0GAgICAeEcEQCAFRQ0CIAMEQCAEQQRrKAIAIgZBeHEiByADQShsIgNBBEEIIAZBA3EiBhtqSQ0HIAZBACAHIANBJ2pLGw0IIAQQogILIAUhBAwBCyAFRQ0AIAJBvAFqELEECyAEIAEQ6wUhASAAQYCAgIB4NgIAIAAgATYCBAwBCyAAIA02AgggACAENgIEIAAgAzYCAAsgAkHwAWokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvfFwIafwJ8IwBBsARrIgMkACADQgA3A5gBIANCADcDkAEgA0IANwOIASADQgA3A4ABIANCADcDeCADQgA3A3AgA0IANwNoIANCADcDYCADQgA3A1ggA0IANwNQIANCADcDSCADQgA3A0AgA0IANwM4IANCADcDMCADQgA3AyggA0IANwMgIANCADcDGCADQgA3AxAgA0IANwMIIANCADcDACADQgA3A7gCIANCADcDsAIgA0IANwOoAiADQgA3A6ACIANCADcDmAIgA0IANwOQAiADQgA3A4gCIANCADcDgAIgA0IANwP4ASADQgA3A/ABIANCADcD6AEgA0IANwPgASADQgA3A9gBIANCADcD0AEgA0IANwPIASADQgA3A8ABIANCADcDuAEgA0IANwOwASADQgA3A6gBIANCADcDoAEgA0IANwPYAyAD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AgBB3o7IAEEBIAEoAgQoAgwRAAAhAwwLCyABKAIAQZjMxABBESABKAIEKAIMEQAAIQMMCgtBASEDIAIgAEEBajYCDCABKAIAIgBBqczEAEERIAEoAgQiBSgCDCIEEQAADQkCQCABLQAKQYABcUUEQCAAQbuzxQBBASAEEQAADQsgAkEMaiABEMQERQ0BDAsLIABB24HCAEECIAQRAAANCiACQQE6ABMgAiAFNgIYIAIgADYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqEMQEDQogAigCIEHZgcIAQQIgAigCJCgCDBEAAA0KCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCQtBASEDIAEoAgAiBEG6zMQAQRkgASgCBCIGKAIMIgURAAANCCAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQogACABEKcERQ0BDAoLIARB24HCAEECIAURAAANCSACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQkgAigCIEHZgcIAQQIgAigCJCgCDBEAAA0JCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCAtBASEDIAEoAgAiBEHTzMQAQRogASgCBCIGKAIMIgURAAANByAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQkgACABEKcERQ0BDAkLIARB24HCAEECIAURAAANCCACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQggAigCIEHZgcIAQQIgAigCJCgCDBEAAA0ICyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBwtBASEDIAEoAgAiBEHtzMQAQRsgASgCBCIGKAIMIgURAAANBiAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEKcERQ0BDAgLIARB24HCAEECIAURAAANByACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQcgAigCIEHZgcIAQQIgAigCJCgCDBEAAA0HCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBgsgASgCAEGIzcQAQRYgASgCBCgCDBEAACEDDAULQQEhAyABKAIAIgRBns3EAEESIAEoAgQiBigCDCIFEQAADQQCQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQYgACgCCCAAKAIMIAEQtQJFDQEMBgsgBEHbgcIAQQIgBREAAA0FIAJBAToADCACIAY2AhggAiAENgIUIAJB4IHCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUaiIENgIgIAAoAgggACgCDCACQSBqELUCDQUgBEHZgcIAQQIQrwMNBQsgASgCAEHejsgAQQEgASgCBCgCDBEAACEDDAQLQQEhAyABKAIAIgRBsM3EAEEQIAEoAgQiBigCDCIFEQAADQMCQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQUgACgCCCAAKAIMIAEQtQJFDQEMBQsgBEHbgcIAQQIgBREAAA0EIAJBAToADCACIAY2AhggAiAENgIUIAJB4IHCADYCJCACIAEpAgg3AiggAiACQQxqNgIcIAIgAkEUaiIENgIgIAAoAgggACgCDCACQSBqELUCDQQgBEHZgcIAQQIQrwMNBAsgASgCAEHejsgAQQEgASgCBCgCDBEAACEDDAMLIAEoAgBBwM3EAEETIAEoAgQoAgwRAAAhAwwCCyABKAIAQdPNxABBECABKAIEKAIMEQAAIQMMAQsgASgCAEHjzcQAQQwgASgCBCgCDBEAACEDCyACQTBqJAAgAwveGQMmfwp7BX4jAEEgayIIJAAgAC8BJCIEQQ9qIgtB8P8DcSEFIAtB8P8HcSEMIAAoAiAhCSAAKAIcIRIgACgCFCEGIAAoAhAhEyAAKAIIIQcgACgCBCEUAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMEQCAMQf//A3EiDEUNASAJIAVBAXYiCnAhACAGIApwIQMgBEUNAiAHIAVuIgcgAiAEQQJ0IhduIgIgAiAHSxsiJkUNEiAJIABrIRggBiADayEZIAQgDEsNESAEQQFxIScgCq0hNiAXQQhrQQN2IgAgBEEBdiICIAAgAkkbIgAgBCACa0H//wNxIhAgACAQSRsiIUF/cyAhQQFqIgBBA3EiAkEEIAIbIgJqISIgBEH+/wNxIhogACACayIdQQF0IihrISMgF0H4/w9xIhUgHUEDdCIpayEkIAEhDCAUIRFBACEHQQAhCQNAAn4gCUUgNEKAgICAEFRyRQRAIDSnIQQgNEKAgICAcINCgICAgBB9DAELIAogGUsNFCAZIAprIRkgNiE0IBMiCSAKIgRqIRNCgICAgBALITcCfiAHRSA1QoCAgIAQVHJFBEAgNachACA1QoCAgIBwg0KAgICAEH0MAQsgCiAYSw0UIBggCmshGCA2ITUgEiIHIAoiAGohEkKAgICAEAshOCAEIBBJDQQgACAQSQ0FIBQgBSAbbGohHCABIBcgG2xqIR4gNEL/////D4MgNUL/////D4MhNSAJIBBqISUgByELIAkhDQJAAkAgFUUNACAVIQYgHiEAIBohBCAcIQ4gIUEETwRAIA4gKGohDiAHIB1qIQsgCSAdaiENIAAgKWohACAJIQMgByEPICIhAiAMIQQgESEGA0AgBEEYaiAP/VwAAP2JAf2pASIv/QwlZgAAJWYAACVmAAAlZgAA/bUBQQj9rQH9DGbI//9myP//Zsj//2bI///9rgEiMCAG/V0AACItICv9DQACBAYAAAAAAAAAAAAAAAD9iQH9qQH9DIVKAACFSgAAhUoAAIVKAAAiMf21AUEI/a0BIi79rgFBBv2sAf0MAAAAAAAAAAAAAAAAAAAAACIr/bgB/Qz/AAAA/wAAAP8AAAD/AAAAIiz9tgEiKv0bAzoAACAEQRBqICr9GwI6AAAgBEEIaiAq/RsBOgAAIAQgKv0bADoAACAEQRpqIC4gA/1cAAD9iQH9qQEiMv0MGoEAABqBAAAagQAAGoEAAP21AUEI/a0B/Qzruv//67r//+u6///ruv///a4BIjP9rgFBBv2sASAr/bgBICz9tgEiKv0bAzoAACAEQRJqICr9GwI6AAAgBEEKaiAq/RsBOgAAIARBAmogKv0bADoAACAEQRxqIC0gK/0NAQMFBwAAAAAAAAAAAAAAAP2JAf2pASAx/bUBQQj9rQEiLSAw/a4BQQb9rAEgK/24ASAs/bYBIir9GwM6AAAgBEEUaiAq/RsCOgAAIARBDGogKv0bAToAACAEQQRqICr9GwA6AAAgBEEZaiAuIC/9DAg0AAAINAAACDQAAAg0AAD9tQFBCP2tASAy/QwTGQAAExkAABMZAAATGQAA/bUBQQj9rQH9rgEiLv2xAf0MBCIAAAQiAAAEIgAABCIAACIv/a4BQQb9rAEgK/24ASAs/bYBIir9GwM6AAAgBEERaiAq/RsCOgAAIARBCWogKv0bAToAACAEQQFqICr9GwA6AAAgBEEdaiAtIC79sQEgL/2uAUEG/awBICv9uAEgLP22ASIq/RsDOgAAIARBFWogKv0bAjoAACAEQQ1qICr9GwE6AAAgBEEFaiAq/RsAOgAAIARBHmogLSAz/a4BQQb9rAEgK/24ASAs/bYBIiv9GwM6AAAgBEEWaiAr/RsCOgAAIARBDmogK/0bAToAACAEQQZqICv9GwA6AAAgA0EEaiEDIA9BBGohDyAEQSBqIQQgBkEIaiEGIAJBBGoiAg0ACyAkIQYgIyEECwNAIARFDQEgDSAlRg0CIABBAmpB/wEgDi0AAEGFlQFsQQh2IgIgDS0AACIPQZqCAmxBCHZBlYoBayIDakEGdSIfQQAgH0EAShsiHyAfQf8BThs6AAAgAEH/ASALLQAAIh9BpcwBbEEIdkGa7wBrIiAgAmpBBnUiFkEAIBZBAEobIhYgFkH/AU4bOgAAIABBBmpB/wEgAyAOQQFqLQAAQYWVAWxBCHYiA2pBBnUiFkEAIBZBAEobIhYgFkH/AU4bOgAAIABBBGpB/wEgAyAgakEGdSIgQQAgIEEAShsiICAgQf8BThs6AAAgAEEBakH/ASACIB9BiOgAbEEIdiAPQZMybEEIdmoiAmtBhMQAakEGdSIPQQAgD0EAShsiDyAPQf8BThs6AAAgAEEFakH/ASADIAJrQYTEAGpBBnUiAkEAIAJBAEobIgIgAkH/AU4bOgAAIABBCGohACAOQQJqIQ4gC0EBaiELIA1BAWohDSAEQQJrIQQgBkEIayIGDQALCyAnRSALIAcgEGpGciANICVGcg0AIBUgHmoiAEH/ASAaIBxqLQAAQYWVAWxBCHYiAiANLQAAIgNBmoICbEEIdmpBlYoBa0EGdSIEQQAgBEEAShsiBCAEQf8BThs6AAIgAEH/ASACIAstAAAiBEGlzAFsQQh2akGa7wBrQQZ1IgZBACAGQQBKGyIGIAZB/wFOGzoAACAAQf8BIAIgA0GTMmxBCHYgBEGI6ABsQQh2amtBhMQAakEGdSIAQQAgAEEAShsiACAAQf8BThs6AAELIDeEITQgNSA4hCE1IAwgF2ohDCAFIBFqIREgG0EBaiIbICZJDQALDBILIAQgB0sNBCAEIARBAXZrIgMgBksNBSADIAlLDQYgAiAEQQJ0IgpJDQcgAC8BJiEVIAEgCiAUIAQgEyADIBIgAxBuIARFDQggAiAKayICIARBA3QiDXAhDyAFIBVsIgAgBUkgACAHS3INCSAMQf//A3EiDEUNCiAFQQF2IQcgASAKaiEaIAAgBWsiACAAIAVBAXQiEXAiHmshACAFIBRqIRwCQCACIA9rIiIgDUkNACAEIAxLBEAgBSAJSyAFIAZLciAAIBFJcg0BQQAgBCAFQejpxAAQ6gcACyADIAdLBEAgBSAJSyAFIAZLciAAIBFJcg0BQQAgAyAHQdjpxAAQ6gcACyAAIBFJIAUgBktyIAUgCUtyIQIgBSAHayIMIANJBEAgAg0BQQAgAyAMQcjpxAAQ6gcACyACDQAgGiAKIBwgBCATIAMgByATaiIjIAMgEiADIAcgEmoiJCADEGYgCiAaaiAKIAUgHGogBCAjIAMgEyADICQgAyASIAMQZiAiIA1rIgwgDUkNACAHQQFrIRAgBiAHayEXIAUgE2ohGCAEQQR0IRkgBEEMbCEbIAUgEmohHSALQfD/A3FBBHYiAkEGdCEhIAJBMGwhJUEAIQsgACECA0AgAiARayICIBFJIAYgC2pBAWsgEElyIAsgF2ogBUkgCSALakEBayAQSXJyDQEgCSALIAdrIgtqIAVJDQEgASAbaiAKIBQgJWogBCAOICNqIiYgAyAOIBhqIicgAyAOICRqIiggAyAOIB1qIikgAxBmIAEgGWogCiAUICFqIAQgJyADICYgAyApIAMgKCADEGYgESAUaiEUIAEgDWohASAHIA5qIQ4gDCANayIMIA1PDQALCyAPRQ0RIAYgFUEBcSAVQQF2akEBayAHbCIBSQ0LIAEgCUsNDCAEIB5LDQ0gAyAGIAFrIgJLDQ4gAyAJIAFrIgJLDQ8gGiAiaiAPIAAgHGogBCABIBNqIAMgASASaiADEG4MEQsgCEEANgIYIAhBATYCDCAIQbyhxwA2AgggCEIENwIQIAhBCGpByOrEABCNCAALIAhBADYCGCAIQQE2AgwgCEG8occANgIIIAhCBDcCECAIQQhqQdjqxAAQjQgAC0EAIBAgBEH46sQAEOoHAAtBACAQIABB6OrEABDqBwALQQAgBCAHQbjqxAAQ6gcAC0EAIAMgBkGo6sQAEOoHAAtBACADIAlBmOrEABDqBwALQQAgCiACQYjqxAAQ6gcACyAIQQA2AhggCEEBNgIMIAhBvKHHADYCCCAIQgQ3AhAgCEEIakHY6MQAEI0IAAsgBSAAIAdB+OnEABDqBwALIAhBADYCGCAIQQE2AgwgCEG8occANgIIIAhCBDcCECAIQQhqQejoxAAQjQgACyABIAYgBkG46cQAEOoHAAsgASAJIAlBqOnEABDqBwALQQAgBCAeQZjpxAAQ6gcAC0EAIAMgAkGI6cQAEOoHAAtBACADIAJB+OjEABDqBwALIAogGUsgCiAYS3INAEEAIAQgBUGI68QAEOoHAAsgCEEgaiQAC50YBCB/AX0BewF+IwBBsMAAayIHJAACQAJAAkAgAiADQf8BcUECdCIFKAKAhUlwRQRAQQEhCCACIAUoApCFSW5BAnQiDARAAkAgDEEATgRAIAdBADYCtCAgB0EwakEBIAwgB0GwIGoQhQcgBygCMEEBRw0BIAcoAjghCCAHKAI0IQQLIAcgCDYCtCAgByAENgKwIEHgvsQAQTYgB0GwIGpB0L7EAEGYv8QAEOAGAAsgBygCNCEICyAHQQA2AiwgByAINgIoIAcgDDYCJAJAAkAgA0H/AXFBAWsOAwMBAQALIAJBA24iBUECdCIOBEAgDCAOSQRAIAdBJGpBACAOEO8FIAcoAighCCAHKAIsIQQLIAQgCGohAyAOQQFrIgIEQCADQQAgAvwLAAsgAiADakEAOgAAIAQgDmohBAsgByAENgIsIARBAnYiAiAFIAIgBUkbIgJFDQNBACEFIAJBAUcEQCACQQFxIAJB/v///wNxIQIgCCEGIAEhBANAIAZBA2pB/wE6AAAgBiAELwAAOwAAIAZBAmogBEECai0AADoAACAGQQdqQf8BOgAAIAZBBmogBEEFai0AADoAACAGQQRqIARBA2ovAAA7AAAgBkEIaiEGIARBBmohBCACIAVBAmoiBUcNAAtFDQQLIAggBUECdGoiAkH/AToAAyACIAEgBUEDbGoiAS0AAjoAAiACIAEvAAA7AAAMAwsgB0EQaiAHQSxqKAIANgIAIAcgBykCJDcDCCAHQbAgahDuAiAHKAKwIEUEQCAHQSRqQQEQ0QkLAkAgAiADQf8BcUECdCgCoIVJbkECdCIRIAcoAhAiBk0EQCAHKAIMIRIMAQsgESAGayIFIAcoAgggBmtLBEAgB0EIaiAGIAUQ7wUgBygCECEGCyAHKAIMIhIgBmohBCAFQQJPBH8gBUEBayIFBEAgBEEAIAX8CwALIBIgBSAGaiIGagUgBAtBADoAACAGQQFqIRELIAcgETYCEAJ/An8CQAJAAkACQCADQf8BcUEBaw4DAQIDAAsgB0EwakEAQYAg/AsAIAdBsCBqQQBBgCD8CwAgAkEDbiENQQEhHkEDDAQLIAdBMGpBAEGAIPwLACAHQbAgakEAQYAg/AsAIAJBAnYMAgsgB0EwakEAQYAg/AsAIAdBsCBqQQBBgCD8CwBBASEeIAIhDUEDDAILIAdBMGpBAEGAIPwLACAHQbAgakEAQYAg/AsAIAJBAXYLIQ1BBAshFgJAAkACQCANBEAgDUEIdiANQf8BcUEAR2oiBEEBayIFQQAgBCAFTxshBiABIRcgASEYIAEhDCABIQ5BgAIhGgNAIAYhHyAWIA0gGiANIBpJGyITIBRBCHRrIghsIhVB//8DcUEDbiEGIBYgEyAgamxB//8DcUEDbiEEAkACQAJAAkAgDSAPQYACaiIFIAUgDUsbIhAgD2siGyAWbCILQYEISQRAIBNBAnQhHCAWIBMgIWoiHWwhCQJAAkACQAJAAkACQAJAIANB/wFxQQFrDgMBBQIACyAQQQNsIgQgD0EDbCIFTyACIARPcQ0CIAUgBCACQfi8xAAQ6gcACyAQQQJ0IgQgD0ECdCIFTyACIARPcQ0CIAUgBCACQYi9xAAQ6gcACyAQQQF0IgUgD0EBdCIKTyACIAVPcQ0DIAogBSACQdi9xAAQ6gcACyALIAQgBWsiBSAFIAtLG0UNByAJICIgE0EDbCIEaiIFIAUgCUsbIQpBACEGIBUgFEGAemwgBGoiBSAFIBVLGyIJQQRPBEAgCkF8cSEIIAlBfHEhBiAHQTBqIQQgFyEFA0AgBCAF/VwAAP2JAf2pAf37Af0MgYCAO4GAgDuBgIA7gYCAO/3mAf0LAgAgBUEEaiEFIARBEGohBCAIQQRrIggNAAsgBiAJRg0ICyAHQTBqIAZBAnRqIQQDQCAEIAYgF2otAACzQ4GAgDuUOAIAIARBBGohBCAKIAZBAWoiBkcNAAsMBwsgCyAEIAVrIgUgBSALSxtFDQYgCSAZIBxqIgUgBSAJSxshCkEAIQYgFSAcIBRBCnRrIgUgBSAVSxsiCUEETwRAIApBfHEhCCAJQXxxIQYgB0EwaiEEIBghBQNAIAQgBf1cAAD9iQH9qQH9+wH9DIGAgDuBgIA7gYCAO4GAgDv95gH9CwIAIAVBBGohBSAEQRBqIQQgCEEEayIIDQALIAYgCUYNBwsgB0EwaiAGQQJ0aiEEA0AgBCAGIBhqLQAAs0OBgIA7lDgCACAEQQRqIQQgCiAGQQFqIgZHDQALDAYLIA8gEEsNAiALQf//A3FBA24iBSAbIAUgG0kbRQ0FIAQgHSAEIB1JGyEKQQAhBCAGIAggBiAISRsiCUEETwRAIApB/P8BcSEIIAlB/P8BcSEEIAdBMGohBiAMIQUDQCAGIAX9XAAA/YkB/akB/fsB/QyBgIA7gYCAO4GAgDuBgIA7/eYBIiUgJf0NCAkKCwwNDg8MDQ4PDA0OD/0LAiAgBiAlICX9DQQFBgcEBQYHCAkKCwgJCgv9CwIQIAYgJSAl/Q0AAQIDAAECAwABAgMEBQYH/QsCACAFQQRqIQUgBkEwaiEGIAhBBGsiCA0ACyAEIAlGDQYLIAdBMGogBEEMbGohBgNAIAZBCGogBCAMai0AALNDgYCAO5QiJDgCACAGQQRqICQ4AgAgBiAkOAIAIAZBDGohBiAKIARBAWoiBEcNAAsMBQsgC0ECdiIEIAUgCmtBAXYiBSAEIAVJG0UNBEEAIQUgFUECdiIGIBNBAXQiCCAUQQl0a0EBdiIEIAQgBksbIgZBAUYNAyAJQQJ2IgQgCCAjakEBdiIFIAQgBUkbQf7///8DcSEJIAZBAXEhCEEAIQUgB0EwaiEGIA4hBANAIAYgBP1cAAD9iQH9qQH9+wH9DIGAgDuBgIA7gYCAO4GAgDv95gEiJSAl/Q0ICQoLCAkKCwgJCgsMDQ4P/QsCECAGICUgJf0NAAECAwABAgMAAQIDBAUGB/0LAgAgBEEEaiEEIAZBIGohBiAJIAVBAmoiBUcNAAsMAgtBACALQYAIQei9xAAQ6gcACyAPIBAgAkGYvcQAEOoHAAsgCEUNAQsgB0EwaiAFQQR0aiIEIAEgCmogBUEBdGoiBS0AALNDgYCAO5QiJDgCCCAEICQ4AgQgBCAkOAIAIAQgBS0AAbNDgYCAO5Q4AgwLAn8gHkUEQCAbQQJ0IgQgC0sNBSAHQTBqDAELIAtB//8DcUEDbiEFAkAgC0EDSQ0AQYACIAUgBUGAAk8bIQlBASEFIAdBsCBqIQYgB0EwaiEEA0AgBiAEKgIAOAIAIAZBDGpBgICA/AM2AgAgBkEEaiAEQQRqKQIANwIAIAUgHUYNASAEQQxqIQQgBkEQaiEGIAUgCUkgBUEBaiEFDQALCyAbQQJ0IgRBgQhPDQMgB0GwIGoLIQYgEEECdCIIIBFLIAggD0ECdCIFSXINBCAIIAVrIgUgBCAEIAVLGwRAQQAgHGshBSASIQQDQCAEQf8BIAYqAgBDAAB/Q5QQuQciJPwBQQAgJEMAAAAAYBsgJEMAAH9DXhs6AAAgBEEBakH/ASAGQQRqKgIAQwAAf0OUELkHIiT8AUEAICRDAAAAAGAbICRDAAB/Q14bOgAAIARBAmohBCAGQQhqIQYgGSAFQQJqIgVHDQALCyASQYAIaiESIBdBgAZqIRcgIkGABmshIiAYQYAIaiEYIBlBgAhrIRkgDEGAAmohDCAgQYACayEgICNBgARrISMgIUGAAmshISAOQYAEaiEOIBRBAWohFCAfQQFrIQYgGiIPQYACaiEaIB8NAAsLIAAgBykDCDcCACAAQQhqIAdBEGooAgA2AgAMBgtBACAEQYAIQai9xAAQ6gcAC0EAIAQgC0HIvcQAEOoHAAsgBSAIIBFBuL3EABDqBwALQfi9xABBxQBBwL7EABDrBwALIAcCfwJAIAIgDEsEQCAHQSRqQQAgAhDvBSAHKAIoIQggBygCLCEGDAELQQAgAkUNARoLIAIEQCAGIAhqIAEgAvwKAAALIAIgBmoLNgIsCyAHQSBqIAdBLGooAgAiATYCACAHIAcpAiQiJjcDGCAAQQhqIAE2AgAgACAmNwIACyAHQbDAAGokAAuOHgINfwF+IwBBsAFrIgIkACABKAIMIQcCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIUIgQgASgCECIGSQRAIAFBDGohBQNAAkACQCAEIAdqLQAAIgNBCWsOJQEBCwsBCwsLCwsLCwsLCwsLCwsLCwsLAQsICwsLCwsLCwsLCwcACyADQdsAaw4hCAoKCgoKCgoKCgoFCgoKCgoKCgMKCgoKCgQKCgoKCgoJCgsgASAEQQFqIgQ2AhQgBCAGRw0ACyAGIQQLIAJBCGogByAGIARBAWoiASAGIAEgBkkbEPkBIAIoAgwhAyACKAIIIQVBFBBxIgFFDRsgASAFNgIMIAFBBTYCACAAIAE2AgQgAEGVgICAeDYCACABIAM2AhAMGgsgASAEQQFqIgU2AhQCQCAFIAZPDQAgASAEQQJqIgM2AhQgBSAHai0AAEH1AEcNGCADIAUgBiAFIAZLGyIFRg0AIAEgBEEDaiIJNgIUIAMgB2otAABB7ABHBEAgCSEDDBkLIAUgCUYNACABIARBBGoiAzYCFCAHIAlqLQAAQewARw0YIABCkoCAgAg3AwAMGgsgAkEQaiAHIAYgBRD5ASACKAIUIQEgAigCECEDQRQQcSIERQ0aIARBBTYCAAwYCyABIARBAWoiBTYCFAJAIAUgBk8NACABIARBAmoiAzYCFCAFIAdqLQAAQfIARw0VIAMgBSAGIAUgBksbIgVGDQAgASAEQQNqIgk2AhQgAyAHai0AAEH1AEcEQCAJIQMMFgsgBSAJRg0AIAEgBEEEaiIDNgIUIAcgCWotAABB5QBHDRUgAEKAgICAGDcDAAwZCyACQSBqIAcgBiAFEPkBIAIoAiQhASACKAIgIQNBFBBxIgRFDRkgBEEFNgIADBULIAEgBEEBaiIFNgIUAkAgBSAGTw0AIAEgBEECaiIDNgIUIAUgB2otAABB4QBHDRIgAyAFIAYgBSAGSxsiBUYNACABIARBA2oiCTYCFCADIAdqLQAAQewARwRAIAkhAwwTCyAFIAlGDQAgASAEQQRqIgg2AhQgByAJai0AAEHzAEcEQCAIIQMMEwsgBSAIRg0AIAEgBEEFaiIDNgIUIAcgCGotAABB5QBHDRIgAEKAgICACDcDAAwYCyACQTBqIAcgBiAFEPkBIAIoAjQhASACKAIwIQNBFBBxIgRFDRggBEEFNgIADBILIAEgBEEBajYCFCACQeAAaiABQQAQxwMgAikDYCIPQgNRDQ8gACACKQNoNwMIIABBADYCBCAAIA+nQQJ0KALM60E2AgAMFgsgAUEANgIIIAEgBEEBajYCFCACQeAAaiAFIAEQggIgAigCZCEFIAIoAmAiA0ECRg0NIAIoAmghASADQQFxRQ0EIAFBAEgNAwJAIAFFBEBBASEDDAELIAEQcSIDRQ0XCyABBEAgAyAFIAH8CgAACyAAIAE2AgwgACADNgIIIAAgATYCBCAAQYyAgIB4NgIADBULIAEgAS0AGEEBayIFOgAYIARBAWohAyAFQf8BcUUNCyABIAM2AhQgAkEBOgCUASACIAE2ApABIAJCgICAgIABNwKgAUEAIQRBCCEDQQghBgJAA0ACQCACIAQ2AqgBIAJB4ABqIAJBkAFqEJ8DAkACQCACLQBgQQFGBEAgAigCZCEFDAELIAItAGFBAUcNAiACQeAAaiACKAKQARCCASACKAJkIQUgAigCYCIMQZWAgIB4Rw0BCyACKAKkASEGIAQEQCAGIQMDQCADEP4CIANBEGohAyAEQQFrIgQNAAsLQZWAgIB4IQRBASEJIAIoAqABIgNFDQMgBkEEaygCACIIQXhxIgcgA0EEdCIDQQRBCCAIQQNxIggbckkNCCAIQQAgByADQSdqSxsNCSAGEKICDAMLIAIpA2ghDyACKAKgASAERgRAIwBBIGsiBiQAAkACQCACQaABaiIIKAIAIgdB////P0sNAEEEIAdBAXQiDSANQQRNGyINQQR0Ig5B+P///wdLDQAgBiAHBH8gBiAHQQR0NgIcIAYgCCgCBDYCFEEIBUEACzYCGCAGQQhqQQggDiAGQRRqEIUHIAYoAghBAUcNASAGKAIQIQogBigCDCELCyALIApBxKLBABCTCQALIAYoAgwhByAIIA02AgAgCCAHNgIEIAZBIGokACACKAKkASEGCyADIAZqIgggDzcCACAIQQRrIAU2AgAgCEEIayAMNgIAIANBEGohAyAEQQFqIQQMAQsLQZSAgIB4IQQgAikCpAEhDyACKAKgASEFCyABIAEtABhBAWo6ABggAiABELoDIgM2AnAgAiAPNwNoIAIgBTYCZCACIAQ2AmACQAJAIAlFBEAgAw0BIA9CIIinIQMgD6chCQwMC0GVgICAeCEEIANFDQEgAkHwAGoQsQQMAQsgAkHgAGoQ/gJBlYCAgHghBCADIQULDAkLIAEgAS0AGEEBayIFOgAYIARBAWohAyAFQf8BcUUNByABIAM2AhQgAkEBOgCAASACIAE2AnwgAkEANgKMASACQoCAgICAATcChAFBCCEFA0AgAkHgAGogAkH8AGoQ0QICQAJAIAItAGBBAUYEQCACKAJkIQYMAQsgAi0AYUUEQCAJrSEPIAIoAoQBIQQMCgsgAigCfCIIQQA2AgggCCAIKAIUQQFqNgIUIAJB4ABqIAhBDGogCBCCAiACKAJkIQYgAigCYCIDQQJGDQAgAigCaCEEAn8gA0EBcQRAIARBAEgNCgJAIARFBEBBASEDDAELIAQQcSIDRQ0aCyAEBEAgAyAGIAT8CgAACyAEIQZBjICAgHgMAQsgBCEDQY2AgIB4CyELIAIgBDYCrAEgAiADNgKoASACIAY2AqQBIAIgCzYCoAEgCCgCDCEHAkACQAJAIAgoAhQiBCAIKAIQIgNJBEADQAJAIAQgB2otAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEAwsgCCAEQQFqIgQ2AhQgAyAERw0ACyADIQQLIAJB2ABqIAcgAyAEQQFqIgUgAyADIAVLGxD5ASACKAJcIQMgAigCWCEFQRQQcSIGRQ0aIAYgBTYCDCAGQQM2AgAgBiADNgIQDAILIAJB0ABqIAcgAyAEQQFqIgUgAyADIAVLGxD5ASACKAJUIQMgAigCUCEFQRQQcSIGRQ0ZIAYgBTYCDCAGQQY2AgAgBiADNgIQDAELIAggBEEBajYCFCACQeAAaiAIEIIBIAIoAmBBlYCAgHhHDQIgAigCZCEGCyACQaABahD+AgsgAigCiAEhAyAJBEAgAyEEA0AgBBD+AiAEQRBqEP4CIARBIGohBCAJQQFrIgkNAAsLQZWAgIB4IQQgAigChAEiBUUEQCAGIQUMCQsgAyAFQQV0QQgQogcgBiEFDAgLIAIgAv0AA2D9CwOQASACKQOoASEPIAIoAoQBIAlGBEBBACEIQQAhByMAQSBrIgMkAAJAAkAgAkGEAWoiBSgCACIEQf///x9LDQBBBCAEQQF0IgogCkEETRsiCkEFdCIMQfj///8HSw0AIAMgBAR/IAMgBEEFdDYCHCADIAUoAgQ2AhRBCAVBAAs2AhggA0EIakEIIAwgA0EUahCFByADKAIIQQFHDQEgAygCECEHIAMoAgwhCAsgCCAHQbSiwQAQkwkACyADKAIMIQQgBSAKNgIAIAUgBDYCBCADQSBqJAAgAigCiAEhBQsgBSAJQQV0aiIDIA83AgggAyAGNgIEIAMgCzYCACADIAL9AAOQAf0LAhAgAiAJQQFqIgk2AowBDAALAAsgA0Ewa0H/AXFBCk8EQCACIAcgBiAEQQFqIgMgBiADIAZJGxD5ASACKAIEIQMgAigCACEEQRQQcSIFRQ0UIAUgBDYCDCAFQQo2AgAgBSADNgIQDAkLIAJB4ABqIAFBARDHAyACKQNgIg9CA1EEQCAAIAIoAmg2AgQgAEGVgICAeDYCAAwTCyAAIAIpA2g3AwggAEEANgIEIAAgD6dBAnQoAszrQTYCAAwSC0HYmsgAEP8HAAsgACABNgIIIAAgBTYCBCAAQY2AgIB4NgIADBALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HYmsgAEP8HAAsgASABLQAYQQFqOgAYIAIgARDiBCIDNgJwIAIgBTYCZCACIAQ2AmAgAiAPNwNoAkACQCAEQZWAgIB4RwRAIAMNASAPQiCIpyEDIA+nIQkMBAsgAw0BQZWAgIB4IQQgD6chCQwDCyACQeAAahD+AkGVgICAeCEEIAMhBSAPpyEJDAILIAJB8ABqELEEQZWAgIB4IQQgD6chCQwBCyACQcgAaiAHIAYgAyAGIAMgBkkbEPkBIAIoAkwhAyACKAJIIQVBFBBxIgFFDQwgASAFNgIMIAFBGDYCACAAIAE2AgQgAEGVgICAeDYCACABIAM2AhAMCwsgBEGVgICAeEYNACAAIAM2AgwgACAJNgIIIAAgBTYCBCAAIAQ2AgAMCgsgBSABEOsFIQEgAEGVgICAeDYCACAAIAE2AgQMCQsgAkFAayAHIAYgAyAGIAMgBkkbEPkBIAIoAkQhAyACKAJAIQVBFBBxIgFFDQkgASAFNgIMIAFBGDYCACAAIAE2AgQgAEGVgICAeDYCACABIAM2AhAMCAsgAEGVgICAeDYCACAAIAU2AgQMBwsgACACKAJoNgIEIABBlYCAgHg2AgAMBgsgAkE4aiAHIAYgAxD5ASACKAI8IQEgAigCOCEDQRQQcSIERQ0GIARBCTYCAAsgBCADNgIMIAAgBDYCBCAAQZWAgIB4NgIAIAQgATYCEAwECyACQShqIAcgBiADEPkBIAIoAiwhASACKAIoIQNBFBBxIgRFDQQgBEEJNgIACyAEIAM2AgwgACAENgIEIABBlYCAgHg2AgAgBCABNgIQDAILIAJBGGogByAGIAMQ+QEgAigCHCEBIAIoAhghA0EUEHEiBEUNAiAEQQk2AgALIAQgAzYCDCAAIAQ2AgQgAEGVgICAeDYCACAEIAE2AhALIAJBsAFqJAAPCwAL2xoDE38GfQF+IwBBsAFrIgIkAAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAhQiAyABKAIQIgRJBEAgASgCDCEGAn4CQANAIAMgBmotAAAiBUEJayIHQRdLQQEgB3RBk4CABHFFcg0BIAEgA0EBaiIDNgIUIAMgBEcNAAsgBCEDQgAMAQtCgAILIAWtQhCGhEKAgrgDUQ0BCwJAIAJBKGogASgCDCIHIAQgAyAESQR/A0AgAyAHai0AACIIQQlrIgVBF0tBASAFdEGTgIAEcUVyDQIgASADQQFqIgM2AhQgAyAERw0ACyAEBSADC0EBaiIBIAQgASAESRsQ+QEgAigCLCEBIAIoAighBEEUEHEiAw0CDBALAkAgCEHbAEcEQCAIQfsARg0BIAEgAkGvAWpBmMHBABDuASEFDA4LIAEgAS0AGEEBayIFOgAYIANBAWohAyAFQf8BcUUNCyABIAM2AhQgAiABNgKkASACQQE6AKgBIAJB5ABqIAJBpAFqEJ8DIAItAGRBAUYEQCACKAJoIQRBAiEDDAoLAkACQAJAAkACQAJAAkACQAJAAkACQCACLQBlQQFGBEAgAkHkAGogAigCpAEQ0gIgAigCZCIFQQJGBEAgAigCaCEEQQIhAwwWCyACKAJoIQ8gAkHkAGogAkGkAWoQnwMgAi0AZEEBRgRAIAIoAmghBEECIQMMFgsgAi0AZUEBRw0CIAJB5ABqIAIoAqQBENICIAIoAmQiB0ECRw0BIAIoAmghBEECIQMMFQtBAEGMg8EAQYD9wAAQ2wYhBEECIQMMFAsgAioCaCEVIAJB5ABqIAJBpAFqEJ8DIAItAGRBAUYEQCACKAJoIQRBAiEDDBQLIAItAGVBAUcNAiACQeQAaiACKAKkARDSAiACKAJkIghBAkcNASACKAJoIQRBAiEDDBMLQQFBjIPBAEGA/cAAENsGIQRBAiEDDBILIAIqAmghFiACQeQAaiACQaQBahCfAyACLQBkQQFGBEAgAigCaCEEQQIhAwwSCyACLQBlQQFHDQIgAkHkAGogAigCpAEQ0gIgAigCZCIQQQJHDQEgAigCaCEEQQIhAwwRC0ECQYyDwQBBgP3AABDbBiEEQQIhAwwQCyACKgJoIRcgAkHkAGogAkGkAWoQnwMgAi0AZEEBRgRAIAIoAmghBEECIQMMEAsgAi0AZUEBRw0CIAJB5ABqIAIoAqQBENICIAIoAmQiEUECRw0BIAIoAmghBEECIQMMDwtBA0GMg8EAQYD9wAAQ2wYhBEECIQMMDgsgAioCaCEYIAJB5ABqIAJBpAFqEJ8DIAItAGRBAUYEQCACKAJoIQRBAiEDDA4LIAItAGVBAUcNASACQeQAaiACKAKkARDSAkECIQMgAigCZCISQQJGBEAgAigCaCEEDA4LIAIoAmghCiACQeQAaiACQaQBahDHBiACKAJoIQQgAigCZCILQQJrDgICDQMLQQRBjIPBAEGA/cAAENsGIQRBAiEDDAwLQQVBjIPBAEGA/cAAENsGIQRBAiEDDAsLQQZBjIPBAEGA/cAAENsGIQQMCgsgAkHkAGohCSMAQRBrIgYkACAGQQhqIAJBpAFqIgwQnwMCQCAGLQAIQQFGBEAgCSAGKAIMNgIEIAlBAToAAAwBCyAGLQAJRQRAIAlBgAY7AQAMAQsgBkEIaiAMKAIAEIECIAYtAAhBAUYEQCAJIAYoAgw2AgQgCUEBOgAADAELIAkgBi0ACToAASAJQQA6AAALIAZBEGokACACLQBkDQggAi0AZSITQQNHBEAgBCEUIA8hBCAFIQMMCgtBB0GMg8EAQYD9wAAQ2wYhBAwJCyABIAEtABhBAWsiBToAGCADQQFqIQMgBUH/AXFFDQYgASADNgIUIAJBAToAqAEgAiABNgKkAUEDIQZBAiEJQQIhDEECIQ1BAiELQQIhBUECIQ5BAiEKAn8CQANAAkAgAkHkAGoiBCACQaQBahDRAiACLQBkQQFGDQAgAi0AZUEBRw0GIAIoAqQBIgNBADYCCCADIAMoAhRBAWo2AhQgBCADQQxqIAMQggIgAigCaCEEIAIoAmRBAkYNAgJAAkACQAJAAkACQAJAAkACQAJAAkACQCACKAJsQQZrDgUAAwMDAQMLIARB4OrAAEEGENsHRQ0DIARB5urAAEEGENsHDQEgDkECRg0EQebqwABBBhCfByEEQQIMDgsgBEHs6sAAQQoQ2wdFDQQgBEH26sAAQQoQ2wdFDQUgBEGS68AAQQoQ2wcNASAGQQNGDQlBkuvAAEEKEJ8HIQRBAgwNCyAEQYDrwABBBhDbB0UNBSAEQYbrwABBBhDbB0UNBiAEQYzrwABBBhDbB0UNBwsgAxCgASIERQ0JDAoLIApBAkcEQEHg6sAAQQYQnwchBEECDAsLIAJB5ABqIAMQsAVBAiEDIAIoAmgiDyEEIAIoAmQiCkECRw0IDBALIAJB5ABqIAMQsAVBAiEDIAIoAmgiBL4hFyACKAJkIg5BAkcNBwwPCyAFQQJHBEBB7OrAAEEKEJ8HIQRBAgwJCyACQeQAaiADELAFQQIhAyACKAJoIgS+IRUgAigCZCIFQQJHDQYMDgsgC0ECRwRAQfbqwABBChCfByEEQQIMCAsgAkHkAGogAxCwBUECIQMgAigCaCIEviEWIAIoAmQiC0ECRw0FDA0LIA1BAkcEQEGA68AAQQYQnwchBEECDAcLIAJB5ABqIAMQsAVBAiEDIAIoAmgiBL4hGCACKAJkIg1BAkcNBAwMCyAMQQJHBEBBhuvAAEEGEJ8HIQRBAgwGCyACQeQAaiADELAFQQIhAyACKAJoIgS+IRkgAigCZCIMQQJHDQMMCwsgCUECRwRAQYzrwABBBhCfByEEQQIMBQsgAkHkAGogAxCwBUECIQMgAigCaCIEviEaIAIoAmQiCUECRw0CDAoLIAJB5ABqIAMQrAUgAi0AZSEGIAItAGRBAUcNAQsLIAIoAmghBAtBAgshAwwFCyABIANBAWoiBTYCFAJAIAQgBU0NACABIANBAmoiCDYCFCAFIAZqLQAAQfUARw0DIAggBSAEIAQgBUkbIgVGDQAgASADQQNqIgc2AhQgBiAIai0AAEHsAEcEQCAHIQgMBAsgBSAHRg0AIAEgA0EEaiIINgIUIAYgB2otAABB7ABHDQMgAEECNgIADA4LIAJBCGogBiAEIAUQ+QEgAigCDCEBIAIoAgghBEEUEHEiA0UNDiADQQU2AgAMAwsgAyAENgIMIANBBTYCACADIAE2AhAMCwsgCkEAIApBAkcbIQMgCUEAIAlBAkcbIRMgDEEAIAxBAkcbIRIgDUEAIA1BAkcbIQcgC0EAIAtBAkcbIQggBUEAIAVBAkcbIRAgDkEAIA5BAkcbIRFBAiAGIAZBA0YbIRQgDyEEDAILIAJBEGogBiAEIAgQ+QEgAigCFCEBIAIoAhAhBEEUEHEiA0UNCyADQQk2AgALIAMgBDYCDCAAIAM2AgQgAEEDNgIAIAMgATYCEAwJCyABIAEtABhBAWo6ABggAiABEOIEIgU2AqABIAIgFDoAnAEgAiAaOAKYASACIBM2ApQBIAIgGTgCkAEgAiASNgKMASACIBg4AogBIAIgBzYChAEgAiAWOAKAASACIAg2AnwgAiAVOAJ4IAIgEDYCdCACIBc4AnAgAiARNgJsIAIgBDYCaCACIAM2AmRBAiEHIANBAkcEQCAFDQQgAkHgAGogAkHsAGoiBUEwaigCADYCACACQdAAaiAFQSBq/QACAP0LAwAgAkFAayAFQRBq/QACAP0LAwAgAiAF/QACAP0LAzAgAyEHIAQhBQwECyAFRQRAIAQhBQwECyACQaABahCxBCAEIQUMAwsgAkEgaiAHIAQgAyAEIAMgBEkbEPkBIAIoAiAhBCACKAIkDAQLIAIoAmghBAsgASABLQAYQQFqOgAYIAIgARC6AyIFNgKgASACIBM6AJwBIAIgFDYCmAEgAiALNgKUASACIAo2ApABIAIgEjYCjAEgAiAYOAKIASACIBE2AoQBIAIgFzgCgAEgAiAQNgJ8IAIgFjgCeCACIAg2AnQgAiAVOAJwIAIgBzYCbCACIAQ2AmggAiADNgJkQQIhBwJAIANBAkcEQCAFDQIgAkHgAGogAkHsAGoiBUEwaigCADYCACACQdAAaiAFQSBq/QACAP0LAwAgAkFAayAFQRBq/QACAP0LAwAgAiAF/QACAP0LAzAgAyEHDAELIAVFDQAgAkGgAWoQsQQLIAQhBQsgB0ECRg0CIAAgAv0AAzD9CwIIIABBOGogAkHgAGooAgA2AgAgAEEoaiACQdAAav0AAwD9CwIAIABBGGogAkFAa/0AAwD9CwIAIAAgBTYCBCAAIAc2AgAMBAsgAkEYaiAHIAQgAyAEIAMgBEkbEPkBIAIoAhghBCACKAIcCyEBQRQQcSIDRQ0DIAMgBDYCDCADQRg2AgAgAyABNgIQDAELIAUgARDrBSEDCyAAQQM2AgAgACADNgIECyACQbABaiQADwsAC88XAyR/A30BeyMAQcACayIEJAACeyADLQAcIgVBAkYEQEMAAIA/IShBACEFQwAAgD8hKUMAAIA/ISr9DAAAAAAAAIA/AABAwQAAEEEMAQsgBEHiAWogA0Efai0AADoAACAEIAMvAB07AeABIAMqAhghKCADKgIUISkgAyoCECEqIAP9AAIACyErIARBABC2CTYCsAEgBEEANgKsASAEQgA3AqQBIARBADYCXCAEQoCAgIDAADcCVCAEQgQ3AkwgBEIANwJEIARCgICAgMAANwI8IARBADYCLCAEQQA2AiQgBEEANgIcIARBADYCFCAEQQA2AgwgBEEANgIEIARBADYCNCAEQYCAgIB4NgJsIARBgICAgHg2AnggBCAr/QsChAEgBCAqOAKUASAEICk4ApgBIAQgKDgCnAEgBCAFOgCgASAEQbwBakEAOgAAIARBowFqIARB4gFqLQAAOgAAIARBADYCaCAEQoCAgIDAADcCYCAEQgA3ArQBIAQgBC8B4AE7AKEBIAEoAjwhEyAEIAI6AOgBIAQgEzYC5AEgBCABKAIIIgg2AuABIARBBGogBEHgAWoQpQQgAgRAIARBAToAoAELAkACQAJAAkBBgIAwEHEiEEUNACAQQQRrIh0tAABBA3EEQCAQQQBBgIAw/AsAC0GAgBAQcSIJRQ0AIAlBBGsiHi0AAEEDcQRAIAlBAEGAgBD8CwALQYCAMBBxIhFFDQAgEUEEayIfLQAAQQNxBEAgEUEAQYCAMPwLAAtBgIAwEHEiEkUNACASQQRrIiAtAABBA3EEQCASQQBBgIAw/AsAC0GAgMAAEHEiC0UNACALQQRrIiEtAABBA3EEQCALQQBBgIDAAPwLAAtBgIAIEHEiDEUNACAMQQRrIiItAABBA3EEQCAMQQBBgIAI/AsAC0GAgBAQcSINRQ0AIA1BBGsiIygCACIFQQNxIgMEQCANQQBBgIAQ/AsACyAIBEAgDEECIAIbISQgDUEEIAIbISVBgIAEQQAgAhshGyABKAIQISYgASgCFCEcIAEoAgQhJwNAQYCABCAIIA5rIgMgA0GAgARPGyEUIAggDkcEQCAnIA5BJGxqIQMgJiAOQRhsaiEGQQAhFSAJIRZBACEFIA0hFyALIRggDCEZA0AgCCAOIBVqIhpNBEAgGiAIQdTAxwAQjAcACyADQRBqKgIAISggA0EMaioCACEpIANBCGoqAgAhKiAEQcABaiADEKQDIARB0AFqIAMQmgMgBEHgAWogAykCABDLAiAE/QAE4AEhKyAFIBBqIgogKjgCACAFIBFqIgcgBCoCwAE4AgAgBSASaiIPIAQqAtABOAIAIApBBGogKTgCACAHQQRqIAQqAsQBOAIAIA9BBGogBCoC1AE4AgAgCkEIaiAoOAIAIAdBCGogBCoCyAE4AgAgD0EIaiAEKgLYATgCACAYICv9CwIAIBYCfyADQRRqLwEAIgdB//8BcUUEQCAHQRB0DAELIAdB/wdxIQogB0GAgAJxIQ8gB0GA+AFxIgdBgPgBRgRAIA9BEHQhByAHQYCAgPwHciAKRQ0BGiAHIApBDXRyQYCAgP4HcgwBCyAPQRB0IQ8gB0ENdEGAgID8AHEgCkENdHJBgICAwANqIA9yIAcNABogD0GAgIDYA3IgCmdBEGsiB0EXdGsgCiAHQf//A3FBCGp0Qf///wNxcgs2AgAgAgRAAn8CQCAaIBxJBEACfyAGQRRqKAIAIgpBBEsEQCAGQQRqKAIAIQogBkEIaigCAAwBCyAGQQRqCyEHIAoNAUEAIQpBAAwCCyAaIBxBxMDHABCMBwwHCyAHKAIACyEHIBkgCjsBACAXIAc2AgALIANBJGohAyAGQRhqIQYgFkEEaiEWIAVBDGohBSAXQQRqIRcgGEEQaiEYIBlBAmohGSAVQQFqIhUgFEkNAAsLIAQgGzYCrAIgBCAlNgKoAiAEIBs2AqQCIAQgJDYCoAIgBEEANgKcAiAEQoCAgIDAADcClAIgBEKAgICAwAA3AowCIARCgICQgMAANwKEAiAEIAs2AoACIARBgIAMNgL8ASAEIBI2AvgBIARBgIAMNgL0ASAEIBE2AvABIARBgIAENgLsASAEIAk2AugBIARBgIAMNgLkASAEIBA2AuABIARBBGogDiAUIARB4AFqEJcBIA4gFGoiDiAISQ0ACyAjKAIAIgVBA3EhAwsCQAJAIAVBeHFBhIAQQYiAECADG08EQCADQQAgBUGogBBPGw0GIA0QogIgIigCACICQXhxQYSACEGIgAggAkEDcSIDG0kNBSADQQAgAkGogAhPGw0GIAwQogIgISgCACICQXhxQYSAwABBiIDAACACQQNxIgMbSQ0FIANBACACQaiAwABPGw0GIAsQogIgICgCACICQXhxQYSAMEGIgDAgAkEDcSIDG0kNBSADQQAgAkGogDBPGw0GIBIQogIgHygCACICQXhxQYSAMEGIgDAgAkEDcSIDG0kNBSADQQAgAkGogDBPGw0GIBEQogIgHigCACICQXhxQYSAEEGIgBAgAkEDcSIDG0kNBSADQQAgAkGogBBPGw0GIAkQogIgHSgCACICQXhxQYSAMEGIgDAgAkEDcSIDG0kNBSADQQAgAkGogDBPGw0GIBAQogIgE0UNBEGAgJABEHEiAkUNAyACQQRrIgsoAgAiBUEDcSIDBEAgAkEAQYCAkAH8CwALIAhFDQIgASgCICEMIAEoAhwhDUEAIQYDQEGAgAQgCCAGayIDIANBgIAETxshCSAGIAhHBEBBACEFIAIhAwNAIARB4AFqIA0gDCAFIAZqELwBIAMgBP0ABOAB/QsCACADQRBqIAT9AATwAf0LAgAgA0EgaiAEKgKAAjgCACADQSRqIQMgBUEBaiIFIAlJDQALCyAEQQRqIAYgCSACQYCAJBDOAyAIIAYgCWoiBksNAAsMAQsMBAsgCygCACIFQQNxIQMLAkAgBUF4cUGEgJABQYiAkAEgAxtPBEAgA0EAIAVBqICQAU8bDQUgAhCiAiATQQFGDQNBgIDwARBxIgJFDQIgAkEEayILKAIAIgVBA3EiAwRAIAJBAEGAgPAB/AsACyAIBEAgASgCLCEMIAEoAighDUEAIQYDQEGAgAQgCCAGayIDIANBgIAETxshCSAGIAhHBEBBACEFIAIhAwNAIARB4AFqIA0gDCAFIAZqEIsBIAMgBP0ABOAB/QsCACADQRBqIAT9AATwAf0LAgAgA0EgaiAE/QAEgAL9CwIAIANBMGogBCoCkAI4AgAgA0E0aiAEKQKUAjcCACADQTxqIQMgBUEBaiIFIAlJDQALCyAEQQRqIAYgCSACQYCAPBDiAyAGIAlqIgYgCEkNAAsgCygCACIFQQNxIQMLIAVBeHFBhIDwAUGIgPABIAMbSQ0EIANBACAFQaiA8AFPGw0FIAIQogIgE0ECTQ0DQYCA0AIQcSICRQ0CIAJBBGsiCSgCACIFQQNxIgMEQCACQQBBgIDQAvwLAAsgCARAIAEoAjghCyABKAI0IQxBACEGA0BBgIAEIAggBmsiASABQYCABE8bIQEgBiAIRwRAQQAhBSACIQMDQCAEQeABaiAMIAsgBSAGahBsIAMgBP0ABOAB/QsCACADQRBqIAT9AATwAf0LAgAgA0EgaiAE/QAEgAL9CwIAIANBMGogBP0ABJAC/QsCACADQUBrIAT9AASgAv0LAgAgA0HQAGogBCoCsAI4AgAgA0HUAGohAyAFQQFqIgUgAUkNAAsLIARBBGogBiABIAJBgIDUABDjAyABIAZqIgYgCEkNAAsgCSgCACIFQQNxIQMLIAVBeHFBhIDQAkGIgNACIAMbSQ0EIANBACAFQaiA0AJPGw0BIAIQogIMAwsMAwsMAwsACwJAIARBBGoiAhCjASIBBEAgAEECNgIAIAAgATYCBCACEMACDAELIAAgBEEEakG8AfwKAAALIARBwAJqJAAPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvlFQMRfwF+AW8jAEHgBmsiASQAIAFBoAFqIgcgAiADKAIMEQEAAkACQAJAAkACQAJAIAEpA6ABQsvTs7K7k+HLQoUgASkDqAFC7b+ClN2syJ2df4WEUARAIAFBMGogAkHwAPwKAAAgASgClAEiA0UNASAHIAMgASgCmAEiEigCDCIIEQEAAkACQAJAAkACQCABKQOgAUKf0/elq5SA065/hSABKQOoAUKQkPj2grmEnmyFhFBFBEAgByADIAgRAQAgASkDoAFChq+1jMLkqv4xhSABKQOoAUKbq7TXwZS/hYZ/hYRQDQEgByADIAgRAQAgASkDoAFCx5uZ88LP+aS8f4UgASkDqAFC7sKNnfXyzrRehYRQDQIgByADIAgRAQAgASkDoAFC/pXph6aw4PvMAIUgASkDqAFC1cSH6oL5y8Z7hYRQDQMgByADIAgRAQAgASkDoAFC07aF9P3V/p5VhSABKQOoAUKw3b+ylJ6K/Q2FhFANBCAHIAMgCBEBACABKQOgAUKR3taAjqSFsp9/hSABKQOoAUKAxNGW34qexvsAhYRQIhMNBSABQQA2ArABIAFBATYCpAEgAUHU4MEANgKgASABQgQ3AqgBIAdB3ODBABCNCAALIAFBoAFqIANBuAX8CgAAIAFBEGogA0Ecav0AAgD9CwMAIAFBIGogA0Esav0AAgD9CwMAIAEgA/0AAgz9CwMAIAMoAjwhByADKAIIIQggAykDACEVIAEoAsgGIgQEQCABKALMBiIFQQRrKAIAIgZBeHEiCUEEQQggBkEDcSIGGyAEakkNDCAGQQAgCSAEQSdqSxsNCyAFEKICCyABQeABaiEEAkACQAJAIAEoArwGQYCAgIB4aw4CAQIACyAEEL4CDAELIAQQvQELIANBBGsoAgAiBEF4cUG8BUHABSAEQQNxIgUbSQ0LIAVFDQggBEHgBU8NCgwICyABQRBqIANBHGr9AAIA/QsDACABQSBqIANBLGr9AAIA/QsDACABIAP9AAIM/QsDACADKAKAASEJIAMoAnwhDSADKAJ0IQ4gAygCcCELIAMoAmghEiADKAJkIQQgAygCXCETIAMoAlghBSADKAJQIQwgAygCTCEGIAMoAjwhByADKAIIIQggAykCACEVIAMoAkAiCgRAIAMoAkQiD0EEaygCACIQQXhxIhFBBEEIIBBBA3EiEBsgCmpJDQsgEEEAIBEgCkEnaksbDQogDxCiAgsgBgRAIAxBBGsoAgAiCkF4cSIPQQRBCCAKQQNxIgobIAZqSQ0LIApBACAPIAZBJ2pLGw0KIAwQogILIAUEQCATQQRrKAIAIgZBeHEiDEEEQQggBkEDcSIGGyAFakkNCyAGQQAgDCAFQSdqSxsNCiATEKICCwJAIARBgICAgHhGDQAgBARAIBJBBGsoAgAiBUF4cSIGIARBAnQiBEEEQQggBUEDcSIFG2pJDQwgBUEAIAYgBEEnaksbDQsgEhCiAgsgCwRAIA5BBGsoAgAiBEF4cSIFIAtBAXQiBkEEQQggBEEDcSIEG2pJDQwgBEEAIAUgBkEnaksbDQsgDhCiAgsgDUUNACAJQQRrKAIAIgRBeHEiBSANQQJ0IgZBBEEIIARBA3EiBBtqSQ0LIARBACAFIAZBJ2pLGw0KIAkQogILIANBBGsoAgAiBEF4cUGs0wBBsNMAIARBA3EiBRtJDQogBUUgBEHQ0wBJcg0HDAkLIAFBEGogA0Ecav0AAgD9CwMAIAFBIGogA0Esav0AAgD9CwMAIAEgA/0AAgz9CwMAIAMoAjwhByADKAIIIQggAykCACEVIAMoAkAiBARAIAMoAkQiBUEEaygCACIGQXhxIglBBEEIIAZBA3EiBhsgBGpJDQogBkEAIAkgBEEnaksbDQkgBRCiAgsgA0EEaygCACIEQXhxIgVB0ABB1AAgBEEDcSIEG0kNCSAERSAFQfQASXINBgwICyABQRBqIANBHGr9AAIA/QsDACABQSBqIANBLGr9AAIA/QsDACABIAP9AAIM/QsDACADKAI8IQcgAygCCCEIIAMpAgAhFSADKAJAIgQEQCADKAJEIgVBBGsoAgAiBkF4cSIJQQRBCCAGQQNxIgYbIARqSQ0JIAZBACAJIARBJ2pLGw0IIAUQogILIANBBGsoAgAiBEF4cSIFQdAAQdQAIARBA3EiBBtJDQggBEUgBUH0AElyDQUMBwsgAUEQaiADQRxq/QACAP0LAwAgAUEgaiADQSxq/QACAP0LAwAgASAD/QACDP0LAwAgAygCPCEHIAMoAgghCCADKQIAIRUgAygCQCIEBEAgAygCRCAEQQEQogcLIANBBGsoAgAiBEF4cSIFQdAAQdQAIARBA3EiBBtJDQcgBEUgBUH0AElyDQQMBgsgAUEQaiADQZQCav0AAgD9CwMAIAFBIGogA0GkAmr9AAIA/QsDACABIAP9AAKEAv0LAwAgAygCgAIhCCADKQL4ASEVIAMoAugBIQwgAygC5AEhBiADKAKIASEKIAMoAnQhDyADKAJwIQkgAygCbCEFIAMoAmghDSADKAJkIQ4gAygCACEEIAMoArQCIQcgAygC2AIiCwRAIAMoAtwCIAtBARCiBwsCQCAEQQJGDQAgBQRAIA1BJGohBANAIARBBGsoAgAiC0GAgICAeHJBgICAgHhHBEAgBCgCACIQQQRrKAIAIhFBeHEiFEEEQQggEUEDcSIRGyALakkNCiARQQAgFCALQSdqSxsNCSAQEKICCyAEQTBqIQQgBUEBayIFDQALCyAOBEAgDSAOQTBsQQgQogcLIAlBgICAgHhyQYCAgIB4Rg0AIA8gCUEBEKIHCyADIBIgExshAyAGRSAKQQJGckUEQCAMIAZBKGxBCBCiBwsgA0EEaygCACIEQXhxQYQDQYgDIARBA3EiBRtJDQIgBUUgBEGoA0lyDQMMBQsgASADNgKkASABIAI2AqABQdjmyABBKyABQaABakHo7sAAQejvwAAQ4AYAC0Gw4MEAEN0JAAtBzIzIAEEuQfyMyAAQ6wcMAQsgAxCiAiABKAI8IgNBgICAgHhyQYCAgIB4RwRAIAEoAkAiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgA2pJDQMgBUEAIAYgA0EnaksbDQIgBBCiAgsgASgCSEGAgICAeEcEQCABQcgAahD1AgsgASgCMCIDBEAgASgCNCIEQQRrKAIAIgVBeHEiBkEEQQggBUEDcSIFGyADakkNAyAFQQAgBiADQSdqSxsNAiAEEKICCwJAIAEoAogBIgNBgICAgHhyQYCAgIB4RwRAIAEoAowBIgRBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIANqSQ0EIAVBACAGIANBJ2pLGw0BIAQQogILQdQAEHEiA0UNASADIAg2AhQgAyAVNwIMIANBADYCCCADQoGAgIAQNwIAIAMgAf0AAwD9CwIYIAMgBzYCUCADIAg2AkwgAyAHNgJIIANBKGogAUEQav0AAwD9CwIAIANBOGogAUEgav0AAwD9CwIAIANBCGoQDSEWENoEIgcgFiYBIAJBBGsoAgAiA0F4cUH0AEH4ACADQQNxIggbSQ0DIAhBACADQZgBTxsNAiACEKICIAAgBzYCBCAAQQA2AgAgAUHgBmokAA8LDAELAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwAL5hYCDH8IfUMAAIA/IRACfwJAIAAoAgQiAyACQQhqKAIAIgVJBEAgACgCACEGIAJBBGooAgAiCSADQSRsaiICEIoEIQ8gAi8BFCIDQf//AXFFBEAgA0EQdAwDCyADQf8HcSECIANBgIACcSEEIANBgPgBcSIDQYD4AUYEQCAEQRB0IQMgA0GAgID8B3IgAkUNAxogAyACQQ10ckGAgID+B3IMAwsgBEEQdCEEIANFDQEgA0ENdEGAgID8AHEgAkENdHJBgICAwANqIARyDAILIAMgBUHUwMcAEIwHAAsgBEGAgIDYA3IgAmdBEGsiA0EXdGsgAiADQf//A3FBCGp0Qf///wNxcgu+IhFDAACAP14EQCAREMYFQ1T4LUCUQwAAgD+SkSEQC0MAAIA/IRECfwJAIAUgBksEQCAJIAZBJGxqIgIQigQhEyACLwEUIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQIgA0GAgAJxIQYgA0GA+AFxIgNBgPgBRgRAIAZBEHQhAyADQYCAgPwHciACRQ0DGiADIAJBDXRyQYCAgP4HcgwDCyAGQRB0IQYgA0UNASADQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBnIMAgsgBiAFQdTAxwAQjAcACyAGQYCAgNgDciACZ0EQayIDQRd0ayACIANB//8DcUEIanRB////A3FyC74iEkMAAIA/XgRAIBIQxgVDVPgtQJRDAACAP5KRIRELQwAAgD8hFAJAAkACfwJAIAUgACgCDCICSwRAIAAoAgghBiAJIAJBJGxqIgIQigQhEiACLwEUIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQIgA0GAgAJxIQQgA0GA+AFxIgNBgPgBRgRAIARBEHQhAyADQYCAgPwHciACRQ0DGiADIAJBDXRyQYCAgP4HcgwDCyAEQRB0IQQgA0UNASADQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBHIMAgsMAgsgBEGAgIDYA3IgAmdBEGsiA0EXdGsgAiADQf//A3FBCGp0Qf///wNxcgu+IhVDAACAP14EQCAVEMYFQ1T4LUCUQwAAgD+SkSEUCwJ/AkAgBSAGSwRAIAkgBkEkbGoiAhCKBCEVIAIvARQiA0H//wFxRQRAIANBEHQMAwsgA0H/B3EhAiADQYCAAnEhBiADQYD4AXEiA0GA+AFGBEAgBkEQdCEDIANBgICA/AdyIAJFDQMaIAMgAkENdHJBgICA/gdyDAMLIAZBEHQhBiADRQ0BIANBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAGcgwCCyAGIAVB1MDHABCMBwALIAZBgICA2ANyIAJnQRBrIgNBF3RrIAIgA0H//wNxQQhqdEH///8DcXILIQJDAACAPyEWAn8CQCAFIABBDEEIIBIgEpIgFJQiEiASWyASIBUgFZIgAr4iFEMAAIA/XgR9IBQQxgVDVPgtQJRDAACAP5KRBSAWC5RgRXEiBxtqIgYoAgAiAksEQCAAIA8gD5IgEJQiDyAPWyAPIBMgE5IgEZRgRXEiCkECdGoiDCgCACEEIAkgAkEkbGoiAhCKBCETIAIvARQiA0H//wFxRQRAIANBEHQMAwsgA0H/B3EhAiADQYCAAnEhCCADQYD4AXEiA0GA+AFGBEAgCEEQdCEDIANBgICA/AdyIAJFDQMaIAMgAkENdHJBgICA/gdyDAMLIAhBEHQhCCADRQ0BIANBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAIcgwCCwwCCyAIQYCAgNgDciACZ0EQayIDQRd0ayACIANB//8DcUEIanRB////A3FyC0MAAIA/IQ++IhBDAACAP14EQCAQEMYFQ1T4LUCUQwAAgD+SkSEPC0MAAIA/IRACfwJAIAQgBUkEQEEIQQwgBxshCCAJIARBJGxqIgIQigQhEiACLwEUIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQIgA0GAgAJxIQQgA0GA+AFxIgNBgPgBRgRAIARBEHQhAyADQYCAgPwHciACRQ0DGiADIAJBDXRyQYCAgP4HcgwDCyAEQRB0IQQgA0UNASADQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBHIMAgsMAwsgBEGAgIDYA3IgAmdBEGsiA0EXdGsgAiADQf//A3FBCGp0Qf///wNxcgu+IhFDAACAP14EQCAREMYFQ1T4LUCUQwAAgD+SkSEQC0MAAIA/IRECfwJAIAUgACAIaiIIKAIAIgJLBEAgACAKRUECdGoiAygCACEEIAkgAkEkbGoiABCKBCEUIAAvARQiAkH//wFxRQRAIAJBEHQMAwsgAkH/B3EhACACQYCAAnEhByACQYD4AXEiAkGA+AFGBEAgB0EQdCECIAJBgICA/AdyIABFDQMaIAIgAEENdHJBgICA/gdyDAMLIAdBEHQhByACRQ0BIAJBDXRBgICA/ABxIABBDXRyQYCAgMADaiAHcgwCCwwCCyAHQYCAgNgDciAAZ0EQayICQRd0ayAAIAJB//8DcUEIanRB////A3FyC74iFUMAAIA/XgRAIBUQxgVDVPgtQJRDAACAP5KRIRELAn8CQCAEIAVJBEAgEyATkiAPlCIPIBIgEpIgEJRgRSEHIA8gD1shCiAJIARBJGxqIgAQigQhECAALwEUIgJB//8BcUUEQCACQRB0DAMLIAJB/wdxIQAgAkGAgAJxIQQgAkGA+AFxIgJBgPgBRgRAIARBEHQhAiACQYCAgPwHciAARQ0DGiACIABBDXRyQYCAgP4HcgwDCyAEQRB0IQQgAkUNASACQQ10QYCAgPwAcSAAQQ10ckGAgIDAA2ogBHIMAgsMAwsgBEGAgIDYA3IgAGdBEGsiAkEXdGsgACACQf//A3FBCGp0Qf///wNxcgshAEMAAIA/IQ8CfwJAIAUgCCADIAYgByAKcSIHGyAUIBSSIBGUIhEgEVsgESAQIBCSIAC+IhNDAACAP14EfSATEMYFQ1T4LUCUQwAAgD+SkQUgDwuUYEVxIgobIg0oAgAiAEsEQCAMIAYgAyAKGyAHGyIOKAIAIQQgCSAAQSRsaiIAEIoEIRAgAC8BFCICQf//AXFFBEAgAkEQdAwDCyACQf8HcSEAIAJBgIACcSELIAJBgPgBcSICQYD4AUYEQCALQRB0IQIgAkGAgID8B3IgAEUNAxogAiAAQQ10ckGAgID+B3IMAwsgC0EQdCELIAJFDQEgAkENdEGAgID8AHEgAEENdHJBgICAwANqIAtyDAILIAAgBUHUwMcAEIwHAAsgC0GAgIDYA3IgAGdBEGsiAkEXdGsgACACQf//A3FBCGp0Qf///wNxcgtDAACAPyERviIPQwAAgD9eBEAgDxDGBUNU+C1AlEMAAIA/kpEhEQtDAACAPyEPAn8CQCAEIAVJBEAgCSAEQSRsaiIAEIoEIRMgAC8BFCICQf//AXFFBEAgAkEQdAwDCyACQf8HcSEAIAJBgIACcSEFIAJBgPgBcSICQYD4AUYEQCAFQRB0IQIgAkGAgID8B3IgAEUNAxogAiAAQQ10ckGAgID+B3IMAwsgBUEQdCEFIAJFDQEgAkENdEGAgID8AHEgAEENdHJBgICAwANqIAVyDAILDAMLIAVBgICA2ANyIABnQRBrIgJBF3RrIAAgAkH//wNxQQhqdEH///8DcXILviISQwAAgD9eBEAgEhDGBUNU+C1AlEMAAIA/kpEhDwsgASAGIAwgBxsoAgA2AgAgASANIA4gECAQkiARlCIQIBBbIBAgEyATkiAPlGBFcSIAGygCADYCBCABIA4gDSAAGygCADYCCCABIAMgCCAKGygCADYCDA8LIAIgBUHUwMcAEIwHAAsgBCAFQdTAxwAQjAcAC/YWAh1/BX0jAEGQAWsiASQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKALEASICQR9xRQRAIAFBADoASCABQQA2AkQgASACQQV2Ihg2AkAgACABQUBrEKUEIAFBADYCDCABQoCAgIDAADcCBCABQQA2AhggAUKAgICAwAA3AhAgAUEANgIkIAFCgICAgMAANwIcIAFBADYCMCABQoCAgIDAADcCKCABQQA2AjwgAUKAgICAwAA3AjQgAkUEQEEEIQMgABCjASEPQQQhBUEEIQZBBCESDCQLQQAhAkEEIRIDQCALQYCABCAYIBRrIgcgB0GAgARPGyIHQQNsIg5JBEAgDiALayICIAEoAgQgC2tLBEAgAUEEaiALIAJBBEEEEKQFIAEoAgghEiABKAIMIQsLIBIgC0ECdGohBSACQQJPBH8gAkECdEEEayIGBEAgBUEAIAb8CwALIAIgC2oiAkEBayELIBIgAkECdGpBBGsFIAULQQA2AgAgASALQQFqIgs2AgwgASgCGCECCyACIAdJBEAgByACayIGIAEoAhAgAmtLBEAgAUEQaiACIAZBBEEEEKQFIAEoAhghAgsgASgCFCIDIAJBAnRqIQUgBkECTwR/IAZBAnRBBGsiBARAIAVBACAE/AsACyACIAZqIgVBAWshAiADIAVBAnRqQQRrBSAFC0EANgIAIAEgAkEBaiICNgIYCyABKAIkIgwgDkkEQCAOIAxrIgYgASgCHCAMa0sEQCABQRxqIAwgBkEEQQQQpAUgASgCJCEMCyABKAIgIgMgDEECdGohBSAGQQJPBH8gBkECdEEEayIEBEAgBUEAIAT8CwALIAYgDGoiBUEBayEMIAMgBUECdGpBBGsFIAULQQA2AgAgASAMQQFqIgw2AiQLIAEoAjAiDSAOSQRAIA4gDWsiBiABKAIoIA1rSwRAIAFBKGogDSAGQQRBBBCkBSABKAIwIQ0LIAEoAiwiAyANQQJ0aiEFIAZBAk8EfyAGQQJ0QQRrIgQEQCAFQQAgBPwLAAsgBiANaiIFQQFrIQ0gAyAFQQJ0akEEawUgBQtBADYCACABIA1BAWoiDTYCMAsgB0ECdCIXIAEoAjwiCEsEQCAXIAhrIgYgASgCNCAIa0sEQCABQTRqIAggBkEEQQQQpAUgASgCPCEICyABKAI4IgMgCEECdGohBSAGQQJPBH8gBkECdEEEayIEBEAgBUEAIAT8CwALIAYgCGoiBUEBayEIIAMgBUECdGpBBGsFIAULQQA2AgAgASAIQQFqIgg2AjwLIAEoAgghEiAUIBhHBEAgFEEFdCEDIAAoAsQBIQQgACgCwAEhGUEAIRYgASgCOCEVIAEoAhQhGiABKAIgIRsgASgCLCEcIAIhBSAHIQZBACERQQAhDwNAIANBA2ogBE8NGiADQQdqIARPDRsgA0ELaiAETw0cIANBD2ogBE8NHSADQRNqIARPDR4gA0EXaiAETw0fIAsgEU0NBCADIBlqIglBBGoqAAAhHiAJQQhqKgAAIR8gCUEMaioAACEgIAlBEGoqAAAhISAJQRRqKgAAISIgEiAWaiIQIAkqAAA4AgAgEUEBaiIKIAtPDQUgEEEEaiAeOAIAIBFBAmoiEyALTw0GIBBBCGogHzgCACANIBFNDQcgFiAcaiIQICA4AgAgCiANTw0IIBBBBGogITgCACANIBNNDQkgEEEIaiAiOAIAIANBGGoiECAETw0KIAwgEU0NCyAWIBtqIhAgCUEYai0AALNDAAB/Q5U4AgAgA0EZaiIdIARPDQwgCiAMTw0NIBBBBGogCUEZai0AALNDAAB/Q5U4AgAgA0EaaiIKIARPDQ4gDCATTQ0PIBBBCGogCUEaai0AALNDAAB/Q5U4AgAgA0EbaiIKIARPDRAgBUUNESAPIBpqIAlBG2otAACzQwAAf0OVOAIAIANBHGoiCiAETw0SIANBHWoiCiAETw0TIANBHmoiCiAETw0UIANBH2oiCiAETw0VIAggD00NFiAJQRxqLQAAIQogCUEeai0AACETIAlBH2otAAAhECAVIAlBHWotAACzQwAAAMOSQwAAADyUOAIAIA9BAWoiCSAITw0XIBVBBGogE7NDAAAAw5JDAAAAPJQ4AgAgD0ECaiIJIAhPDRggFUEIaiAQs0MAAADDkkMAAAA8lDgCACAPQQNqIgkgCE8NGSAVQQxqIAqzQwAAAMOSQwAAADyUOAIAIAVBAWshBSAVQRBqIRUgA0EgaiEDIBZBDGohFiARQQNqIREgD0EEaiEPIAZBAWsiBg0ACwsgCyAOSQ0eIAIgB0kNHyAMIA5JDSAgDSAOSQ0hIAggF0kNIiABKAIUIQYgASgCICEFIAEoAiwhAyABQgQ3AogBIAFCAjcCgAEgAUIENwJ4IAFCBDcCcCABQgQ3AmggASAXNgJkIAEgASgCOCIENgJgIAEgDjYCXCABIAM2AlggASAONgJUIAEgBTYCUCABIAc2AkwgASAGNgJIIAEgDjYCRCABIBI2AkAgACAUIAcgAUFAaxCXASAYIAcgFGoiFEsNAAsMIgsgAUEANgJQIAFBATYCRCABQYTawAA2AkAgAUIENwJIIAFBQGsQkgchDwwjCyARIAtBjNfAABCMBwALIAogC0Gc18AAEIwHAAsgEyALQazXwAAQjAcACyARIA1BvNfAABCMBwALIAogDUHM18AAEIwHAAsgEyANQdzXwAAQjAcACyAQIARB7NfAABCMBwALIBEgDEH818AAEIwHAAsgHSAEQYzYwAAQjAcACyAKIAxBnNjAABCMBwALIAogBEGs2MAAEIwHAAsgEyAMQbzYwAAQjAcACyAKIARBzNjAABCMBwALIAIgAkHc2MAAEIwHAAsgCiAEQezYwAAQjAcACyAKIARB/NjAABCMBwALIAogBEGM2cAAEIwHAAsgCiAEQZzZwAAQjAcACyAPIAhBrNnAABCMBwALIAkgCEG82cAAEIwHAAsgCSAIQczZwAAQjAcACyAJIAhB3NnAABCMBwALIAMgA0EEciAEQfDlwQAQ6gcACyADQQRqIANBCHIgBEHw5cEAEOoHAAsgA0EIaiADQQxyIARB8OXBABDqBwALIANBDGogA0EQciAEQfDlwQAQ6gcACyADQRBqIANBFHIgBEHw5cEAEOoHAAsgA0EUaiADQRhyIARB8OXBABDqBwALQQAgDiALQfzWwAAQ6gcAC0EAIAcgAkHs1sAAEOoHAAtBACAOIAxB3NbAABDqBwALQQAgDiANQczWwAAQ6gcAC0EAIBcgCEG81sAAEOoHAAsgASgCNCECIAAQowEhDyACRQ0AIARBBGsoAgAiAEF4cSIHIAJBAnQiAkEEQQggAEEDcSIAG2pJDQIgAEEAIAcgAkEnaksbDQMgBBCiAgsgASgCKCIABEAgA0EEaygCACICQXhxIgcgAEECdCIAQQRBCCACQQNxIgIbakkNAiACQQAgByAAQSdqSxsNAyADEKICCyABKAIcIgAEQCAFQQRrKAIAIgJBeHEiByAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0CIAJBACAHIABBJ2pLGw0DIAUQogILIAEoAhAiAARAIAZBBGsoAgAiAkF4cSIHIABBAnQiAEEEQQggAkEDcSICG2pJDQIgAkEAIAcgAEEnaksbDQMgBhCiAgsgASgCBCIARQ0AIBJBBGsoAgAiAkF4cSIHIABBAnQiAEEEQQggAkEDcSICG2pJDQEgAkEAIAcgAEEnaksbDQIgEhCiAgsgAUGQAWokACAPDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL9RYCHX8FfSMAQZABayIBJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAswBIgJBH3FFBEAgAUEAOgBIIAFBADYCRCABIAJBBXYiGDYCQCAAIAFBQGsQ4QMgAUEANgIMIAFCgICAgMAANwIEIAFBADYCGCABQoCAgIDAADcCECABQQA2AiQgAUKAgICAwAA3AhwgAUEANgIwIAFCgICAgMAANwIoIAFBADYCPCABQoCAgIDAADcCNCACRQRAQQQhAyAAENQBIQ9BBCEFQQQhBkEEIRIMJAtBACECQQQhEgNAIAtBgIAEIBggFGsiByAHQYCABE8bIgdBA2wiDkkEQCAOIAtrIgIgASgCBCALa0sEQCABQQRqIAsgAkEEQQQQpAUgASgCCCESIAEoAgwhCwsgEiALQQJ0aiEFIAJBAk8EfyACQQJ0QQRrIgYEQCAFQQAgBvwLAAsgAiALaiICQQFrIQsgEiACQQJ0akEEawUgBQtBADYCACABIAtBAWoiCzYCDCABKAIYIQILIAIgB0kEQCAHIAJrIgYgASgCECACa0sEQCABQRBqIAIgBkEEQQQQpAUgASgCGCECCyABKAIUIgMgAkECdGohBSAGQQJPBH8gBkECdEEEayIEBEAgBUEAIAT8CwALIAIgBmoiBUEBayECIAMgBUECdGpBBGsFIAULQQA2AgAgASACQQFqIgI2AhgLIAEoAiQiDCAOSQRAIA4gDGsiBiABKAIcIAxrSwRAIAFBHGogDCAGQQRBBBCkBSABKAIkIQwLIAEoAiAiAyAMQQJ0aiEFIAZBAk8EfyAGQQJ0QQRrIgQEQCAFQQAgBPwLAAsgBiAMaiIFQQFrIQwgAyAFQQJ0akEEawUgBQtBADYCACABIAxBAWoiDDYCJAsgASgCMCINIA5JBEAgDiANayIGIAEoAiggDWtLBEAgAUEoaiANIAZBBEEEEKQFIAEoAjAhDQsgASgCLCIDIA1BAnRqIQUgBkECTwR/IAZBAnRBBGsiBARAIAVBACAE/AsACyAGIA1qIgVBAWshDSADIAVBAnRqQQRrBSAFC0EANgIAIAEgDUEBaiINNgIwCyAHQQJ0IhcgASgCPCIISwRAIBcgCGsiBiABKAI0IAhrSwRAIAFBNGogCCAGQQRBBBCkBSABKAI8IQgLIAEoAjgiAyAIQQJ0aiEFIAZBAk8EfyAGQQJ0QQRrIgQEQCAFQQAgBPwLAAsgBiAIaiIFQQFrIQggAyAFQQJ0akEEawUgBQtBADYCACABIAhBAWoiCDYCPAsgASgCCCESIBQgGEcEQCAUQQV0IQMgACgCzAEhBCAAKALIASEZQQAhFiABKAI4IRUgASgCFCEaIAEoAiAhGyABKAIsIRwgAiEFIAchBkEAIRFBACEPA0AgA0EDaiAETw0aIANBB2ogBE8NGyADQQtqIARPDRwgA0EPaiAETw0dIANBE2ogBE8NHiADQRdqIARPDR8gCyARTQ0EIAMgGWoiCUEEaioAACEeIAlBCGoqAAAhHyAJQQxqKgAAISAgCUEQaioAACEhIAlBFGoqAAAhIiASIBZqIhAgCSoAADgCACARQQFqIgogC08NBSAQQQRqIB44AgAgEUECaiITIAtPDQYgEEEIaiAfOAIAIA0gEU0NByAWIBxqIhAgIDgCACAKIA1PDQggEEEEaiAhOAIAIA0gE00NCSAQQQhqICI4AgAgA0EYaiIQIARPDQogDCARTQ0LIBYgG2oiECAJQRhqLQAAs0MAAH9DlTgCACADQRlqIh0gBE8NDCAKIAxPDQ0gEEEEaiAJQRlqLQAAs0MAAH9DlTgCACADQRpqIgogBE8NDiAMIBNNDQ8gEEEIaiAJQRpqLQAAs0MAAH9DlTgCACADQRtqIgogBE8NECAFRQ0RIA8gGmogCUEbai0AALNDAAB/Q5U4AgAgA0EcaiIKIARPDRIgA0EdaiIKIARPDRMgA0EeaiIKIARPDRQgA0EfaiIKIARPDRUgCCAPTQ0WIAlBHGotAAAhCiAJQR5qLQAAIRMgCUEfai0AACEQIBUgCUEdai0AALNDAAAAw5JDAAAAPJQ4AgAgD0EBaiIJIAhPDRcgFUEEaiATs0MAAADDkkMAAAA8lDgCACAPQQJqIgkgCE8NGCAVQQhqIBCzQwAAAMOSQwAAADyUOAIAIA9BA2oiCSAITw0ZIBVBDGogCrNDAAAAw5JDAAAAPJQ4AgAgBUEBayEFIBVBEGohFSADQSBqIQMgFkEMaiEWIBFBA2ohESAPQQRqIQ8gBkEBayIGDQALCyALIA5JDR4gAiAHSQ0fIAwgDkkNICANIA5JDSEgCCAXSQ0iIAEoAhQhBiABKAIgIQUgASgCLCEDIAFCBDcCiAEgAUICNwKAASABQgQ3AnggAUIENwJwIAFCBDcCaCABIBc2AmQgASABKAI4IgQ2AmAgASAONgJcIAEgAzYCWCABIA42AlQgASAFNgJQIAEgBzYCTCABIAY2AkggASAONgJEIAEgEjYCQCAAIBQgByABQUBrEH4gGCAHIBRqIhRLDQALDCILIAFBADYCUCABQQE2AkQgAUGE2sAANgJAIAFCBDcCSCABQUBrEJIHIQ8MIwsgESALQYzXwAAQjAcACyAKIAtBnNfAABCMBwALIBMgC0Gs18AAEIwHAAsgESANQbzXwAAQjAcACyAKIA1BzNfAABCMBwALIBMgDUHc18AAEIwHAAsgECAEQezXwAAQjAcACyARIAxB/NfAABCMBwALIB0gBEGM2MAAEIwHAAsgCiAMQZzYwAAQjAcACyAKIARBrNjAABCMBwALIBMgDEG82MAAEIwHAAsgCiAEQczYwAAQjAcACyACIAJB3NjAABCMBwALIAogBEHs2MAAEIwHAAsgCiAEQfzYwAAQjAcACyAKIARBjNnAABCMBwALIAogBEGc2cAAEIwHAAsgDyAIQazZwAAQjAcACyAJIAhBvNnAABCMBwALIAkgCEHM2cAAEIwHAAsgCSAIQdzZwAAQjAcACyADIANBBHIgBEHw5cEAEOoHAAsgA0EEaiADQQhyIARB8OXBABDqBwALIANBCGogA0EMciAEQfDlwQAQ6gcACyADQQxqIANBEHIgBEHw5cEAEOoHAAsgA0EQaiADQRRyIARB8OXBABDqBwALIANBFGogA0EYciAEQfDlwQAQ6gcAC0EAIA4gC0H81sAAEOoHAAtBACAHIAJB7NbAABDqBwALQQAgDiAMQdzWwAAQ6gcAC0EAIA4gDUHM1sAAEOoHAAtBACAXIAhBvNbAABDqBwALIAEoAjQhAiAAENQBIQ8gAkUNACAEQQRrKAIAIgBBeHEiByACQQJ0IgJBBEEIIABBA3EiABtqSQ0CIABBACAHIAJBJ2pLGw0DIAQQogILIAEoAigiAARAIANBBGsoAgAiAkF4cSIHIABBAnQiAEEEQQggAkEDcSICG2pJDQIgAkEAIAcgAEEnaksbDQMgAxCiAgsgASgCHCIABEAgBUEEaygCACICQXhxIgcgAEECdCIAQQRBCCACQQNxIgIbakkNAiACQQAgByAAQSdqSxsNAyAFEKICCyABKAIQIgAEQCAGQQRrKAIAIgJBeHEiByAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0CIAJBACAHIABBJ2pLGw0DIAYQogILIAEoAgQiAEUNACASQQRrKAIAIgJBeHEiByAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0BIAJBACAHIABBJ2pLGw0CIBIQogILIAFBkAFqJAAgDw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC+0WAh1/BX0jAEGQAWsiASQAAkACQAJAIAAoAmgiAkEfcQRAIAFBADYCUCABQQE2AkQgAUGE2sAANgJAIAFCBDcCSCABQUBrEJIHIQMMAQsgAUEAOgBIIAFBADYCRCABIAJBBXYiGDYCQCAAIAFBQGsQ6QEgAUEANgIMIAFCgICAgMAANwIEIAFBADYCGCABQoCAgIDAADcCECABQQA2AiQgAUKAgICAwAA3AhwgAUEANgIwIAFCgICAgMAANwIoIAFBADYCPCABQoCAgIDAADcCNAJAAkAgAkUEQEEEIQNBBCEFQQQhBkEEIREMAQtBACECQQQhEQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQANAIAtBgIAEIBggFGsiByAHQYCABE8bIgdBA2wiDkkEQCAOIAtrIgIgASgCBCALa0sEQCABQQRqIAsgAkEEQQQQpAUgASgCCCERIAEoAgwhCwsgESALQQJ0aiEFIAJBAk8EfyACQQJ0QQRrIgYEQCAFQQAgBvwLAAsgAiALaiICQQFrIQsgESACQQJ0akEEawUgBQtBADYCACABIAtBAWoiCzYCDCABKAIYIQILIAIgB0kEQCAHIAJrIgYgASgCECACa0sEQCABQRBqIAIgBkEEQQQQpAUgASgCGCECCyABKAIUIgMgAkECdGohBSAGQQJPBH8gBkECdEEEayIEBEAgBUEAIAT8CwALIAIgBmoiBUEBayECIAMgBUECdGpBBGsFIAULQQA2AgAgASACQQFqIgI2AhgLIAEoAiQiDCAOSQRAIA4gDGsiBiABKAIcIAxrSwRAIAFBHGogDCAGQQRBBBCkBSABKAIkIQwLIAEoAiAiAyAMQQJ0aiEFIAZBAk8EfyAGQQJ0QQRrIgQEQCAFQQAgBPwLAAsgBiAMaiIFQQFrIQwgAyAFQQJ0akEEawUgBQtBADYCACABIAxBAWoiDDYCJAsgASgCMCINIA5JBEAgDiANayIGIAEoAiggDWtLBEAgAUEoaiANIAZBBEEEEKQFIAEoAjAhDQsgASgCLCIDIA1BAnRqIQUgBkECTwR/IAZBAnRBBGsiBARAIAVBACAE/AsACyAGIA1qIgVBAWshDSADIAVBAnRqQQRrBSAFC0EANgIAIAEgDUEBaiINNgIwCyAHQQJ0IhcgASgCPCIISwRAIBcgCGsiBiABKAI0IAhrSwRAIAFBNGogCCAGQQRBBBCkBSABKAI8IQgLIAEoAjgiAyAIQQJ0aiEFIAZBAk8EfyAGQQJ0QQRrIgQEQCAFQQAgBPwLAAsgBiAIaiIFQQFrIQggAyAFQQJ0akEEawUgBQtBADYCACABIAhBAWoiCDYCPAsgASgCCCERAkAgFCAYRwRAIBRBBXQhAyAAKAJoIQQgACgCZCEZQQAhFiABKAI4IRUgASgCFCEaIAEoAiAhGyABKAIsIRwgAiEFIAchBkEAIRBBACESA0AgA0EDaiAETw0ZIANBB2ogBE8NGiADQQtqIARPDRsgA0EPaiAETw0cIANBE2ogBE8NHSADQRdqIARPDR4gCyAQTQ0CIAMgGWoiCUEEaioAACEeIAlBCGoqAAAhHyAJQQxqKgAAISAgCUEQaioAACEhIAlBFGoqAAAhIiARIBZqIg8gCSoAADgCACAQQQFqIgogC08NBCAPQQRqIB44AgAgEEECaiITIAtPDQUgD0EIaiAfOAIAIA0gEE0NBiAWIBxqIg8gIDgCACAKIA1PDQcgD0EEaiAhOAIAIA0gE00NCCAPQQhqICI4AgAgA0EYaiIPIARPDQkgDCAQTQ0KIBYgG2oiDyAJQRhqLQAAs0MAAH9DlTgCACADQRlqIh0gBE8NCyAKIAxPDQwgD0EEaiAJQRlqLQAAs0MAAH9DlTgCACADQRpqIgogBE8NDSAMIBNNDQ4gD0EIaiAJQRpqLQAAs0MAAH9DlTgCACADQRtqIgogBE8NDyAFRQ0QIBIgGmogCUEbai0AALNDAAB/Q5U4AgAgA0EcaiIKIARPDREgA0EdaiIKIARPDRIgA0EeaiIKIARPDRMgA0EfaiIKIARPDRQgCCASTQ0VIAlBHGotAAAhCiAJQR5qLQAAIRMgCUEfai0AACEPIBUgCUEdai0AALNDAAAAw5JDAAAAPJQ4AgAgEkEBaiIJIAhPDRYgFUEEaiATs0MAAADDkkMAAAA8lDgCACASQQJqIgkgCE8NFyAVQQhqIA+zQwAAAMOSQwAAADyUOAIAIBJBA2oiCSAITw0YIBVBDGogCrNDAAAAw5JDAAAAPJQ4AgAgBUEBayEFIBVBEGohFSADQSBqIQMgFkEMaiEWIBBBA2ohECASQQRqIRIgBkEBayIGDQALCyALIA5JDR0gAiAHSQ0eIAwgDkkNHyANIA5JDSAgCCAXSQ0hIAEoAhQhBiABKAIgIQUgASgCLCEDIAFCBDcCiAEgAUICNwKAASABQgQ3AnggAUIENwJwIAFCBDcCaCABIBc2AmQgASABKAI4IgQ2AmAgASAONgJcIAEgAzYCWCABIA42AlQgASAFNgJQIAEgBzYCTCABIAY2AkggASAONgJEIAEgETYCQCAAIBQgByABQUBrEJMCIAcgFGoiFCAYTw0iDAELCyAQIAtBjNfAABCMBwALIAogC0Gc18AAEIwHAAsgEyALQazXwAAQjAcACyAQIA1BvNfAABCMBwALIAogDUHM18AAEIwHAAsgEyANQdzXwAAQjAcACyAPIARB7NfAABCMBwALIBAgDEH818AAEIwHAAsgHSAEQYzYwAAQjAcACyAKIAxBnNjAABCMBwALIAogBEGs2MAAEIwHAAsgEyAMQbzYwAAQjAcACyAKIARBzNjAABCMBwALIAIgAkHc2MAAEIwHAAsgCiAEQezYwAAQjAcACyAKIARB/NjAABCMBwALIAogBEGM2cAAEIwHAAsgCiAEQZzZwAAQjAcACyASIAhBrNnAABCMBwALIAkgCEG82cAAEIwHAAsgCSAIQczZwAAQjAcACyAJIAhB3NnAABCMBwALIAMgA0EEciAEQfDlwQAQ6gcACyADQQRqIANBCHIgBEHw5cEAEOoHAAsgA0EIaiADQQxyIARB8OXBABDqBwALIANBDGogA0EQciAEQfDlwQAQ6gcACyADQRBqIANBFHIgBEHw5cEAEOoHAAsgA0EUaiADQRhyIARB8OXBABDqBwALQQAgDiALQfzWwAAQ6gcAC0EAIAcgAkHs1sAAEOoHAAtBACAOIAxB3NbAABDqBwALQQAgDiANQczWwAAQ6gcAC0EAIBcgCEG81sAAEOoHAAsgASgCNCIARQ0AIARBBGsoAgAiAkF4cSIHIABBAnQiAEEEQQggAkEDcSICG2pJDQMgAkEAIAcgAEEnaksbDQQgBBCiAgsgASgCKCIABEAgA0EEaygCACICQXhxIgcgAEECdCIAQQRBCCACQQNxIgIbakkNAyACQQAgByAAQSdqSxsNBCADEKICCyABKAIcIgAEQCAFQQRrKAIAIgJBeHEiByAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0DIAJBACAHIABBJ2pLGw0EIAUQogILIAEoAhAiAARAIAZBBGsoAgAiAkF4cSIHIABBAnQiAEEEQQggAkEDcSICG2pJDQMgAkEAIAcgAEEnaksbDQQgBhCiAgsgASgCBCIABEAgEUEEaygCACICQXhxIgcgAEECdCIAQQRBCCACQQNxIgIbakkNAyACQQAgByAAQSdqSxsNASAREKICC0EAIQMMAQsMAgsgAUGQAWokACADDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL7RYCHX8FfSMAQZABayIBJAACQAJAAkAgACgCSCICQR9xBEAgAUEANgJQIAFBATYCRCABQYTawAA2AkAgAUIENwJIIAFBQGsQkgchAwwBCyABQQA6AEggAUEANgJEIAEgAkEFdiIYNgJAIAAgAUFAaxCEAiABQQA2AgwgAUKAgICAwAA3AgQgAUEANgIYIAFCgICAgMAANwIQIAFBADYCJCABQoCAgIDAADcCHCABQQA2AjAgAUKAgICAwAA3AiggAUEANgI8IAFCgICAgMAANwI0AkACQCACRQRAQQQhA0EEIQVBBCEGQQQhEQwBC0EAIQJBBCERAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAA0AgC0GAgAQgGCAUayIHIAdBgIAETxsiB0EDbCIOSQRAIA4gC2siAiABKAIEIAtrSwRAIAFBBGogCyACQQRBBBCkBSABKAIIIREgASgCDCELCyARIAtBAnRqIQUgAkECTwR/IAJBAnRBBGsiBgRAIAVBACAG/AsACyACIAtqIgJBAWshCyARIAJBAnRqQQRrBSAFC0EANgIAIAEgC0EBaiILNgIMIAEoAhghAgsgAiAHSQRAIAcgAmsiBiABKAIQIAJrSwRAIAFBEGogAiAGQQRBBBCkBSABKAIYIQILIAEoAhQiAyACQQJ0aiEFIAZBAk8EfyAGQQJ0QQRrIgQEQCAFQQAgBPwLAAsgAiAGaiIFQQFrIQIgAyAFQQJ0akEEawUgBQtBADYCACABIAJBAWoiAjYCGAsgASgCJCIMIA5JBEAgDiAMayIGIAEoAhwgDGtLBEAgAUEcaiAMIAZBBEEEEKQFIAEoAiQhDAsgASgCICIDIAxBAnRqIQUgBkECTwR/IAZBAnRBBGsiBARAIAVBACAE/AsACyAGIAxqIgVBAWshDCADIAVBAnRqQQRrBSAFC0EANgIAIAEgDEEBaiIMNgIkCyABKAIwIg0gDkkEQCAOIA1rIgYgASgCKCANa0sEQCABQShqIA0gBkEEQQQQpAUgASgCMCENCyABKAIsIgMgDUECdGohBSAGQQJPBH8gBkECdEEEayIEBEAgBUEAIAT8CwALIAYgDWoiBUEBayENIAMgBUECdGpBBGsFIAULQQA2AgAgASANQQFqIg02AjALIAdBAnQiFyABKAI8IghLBEAgFyAIayIGIAEoAjQgCGtLBEAgAUE0aiAIIAZBBEEEEKQFIAEoAjwhCAsgASgCOCIDIAhBAnRqIQUgBkECTwR/IAZBAnRBBGsiBARAIAVBACAE/AsACyAGIAhqIgVBAWshCCADIAVBAnRqQQRrBSAFC0EANgIAIAEgCEEBaiIINgI8CyABKAIIIRECQCAUIBhHBEAgFEEFdCEDIAAoAkghBCAAKAJEIRlBACEWIAEoAjghFSABKAIUIRogASgCICEbIAEoAiwhHCACIQUgByEGQQAhEEEAIRIDQCADQQNqIARPDRkgA0EHaiAETw0aIANBC2ogBE8NGyADQQ9qIARPDRwgA0ETaiAETw0dIANBF2ogBE8NHiALIBBNDQIgAyAZaiIJQQRqKgAAIR4gCUEIaioAACEfIAlBDGoqAAAhICAJQRBqKgAAISEgCUEUaioAACEiIBEgFmoiDyAJKgAAOAIAIBBBAWoiCiALTw0EIA9BBGogHjgCACAQQQJqIhMgC08NBSAPQQhqIB84AgAgDSAQTQ0GIBYgHGoiDyAgOAIAIAogDU8NByAPQQRqICE4AgAgDSATTQ0IIA9BCGogIjgCACADQRhqIg8gBE8NCSAMIBBNDQogFiAbaiIPIAlBGGotAACzQwAAf0OVOAIAIANBGWoiHSAETw0LIAogDE8NDCAPQQRqIAlBGWotAACzQwAAf0OVOAIAIANBGmoiCiAETw0NIAwgE00NDiAPQQhqIAlBGmotAACzQwAAf0OVOAIAIANBG2oiCiAETw0PIAVFDRAgEiAaaiAJQRtqLQAAs0MAAH9DlTgCACADQRxqIgogBE8NESADQR1qIgogBE8NEiADQR5qIgogBE8NEyADQR9qIgogBE8NFCAIIBJNDRUgCUEcai0AACEKIAlBHmotAAAhEyAJQR9qLQAAIQ8gFSAJQR1qLQAAs0MAAADDkkMAAAA8lDgCACASQQFqIgkgCE8NFiAVQQRqIBOzQwAAAMOSQwAAADyUOAIAIBJBAmoiCSAITw0XIBVBCGogD7NDAAAAw5JDAAAAPJQ4AgAgEkEDaiIJIAhPDRggFUEMaiAKs0MAAADDkkMAAAA8lDgCACAFQQFrIQUgFUEQaiEVIANBIGohAyAWQQxqIRYgEEEDaiEQIBJBBGohEiAGQQFrIgYNAAsLIAsgDkkNHSACIAdJDR4gDCAOSQ0fIA0gDkkNICAIIBdJDSEgASgCFCEGIAEoAiAhBSABKAIsIQMgAUIENwKIASABQgI3AoABIAFCBDcCeCABQgQ3AnAgAUIENwJoIAEgFzYCZCABIAEoAjgiBDYCYCABIA42AlwgASADNgJYIAEgDjYCVCABIAU2AlAgASAHNgJMIAEgBjYCSCABIA42AkQgASARNgJAIAAgFCAHIAFBQGsQ4gEgByAUaiIUIBhPDSIMAQsLIBAgC0GM18AAEIwHAAsgCiALQZzXwAAQjAcACyATIAtBrNfAABCMBwALIBAgDUG818AAEIwHAAsgCiANQczXwAAQjAcACyATIA1B3NfAABCMBwALIA8gBEHs18AAEIwHAAsgECAMQfzXwAAQjAcACyAdIARBjNjAABCMBwALIAogDEGc2MAAEIwHAAsgCiAEQazYwAAQjAcACyATIAxBvNjAABCMBwALIAogBEHM2MAAEIwHAAsgAiACQdzYwAAQjAcACyAKIARB7NjAABCMBwALIAogBEH82MAAEIwHAAsgCiAEQYzZwAAQjAcACyAKIARBnNnAABCMBwALIBIgCEGs2cAAEIwHAAsgCSAIQbzZwAAQjAcACyAJIAhBzNnAABCMBwALIAkgCEHc2cAAEIwHAAsgAyADQQRyIARB8OXBABDqBwALIANBBGogA0EIciAEQfDlwQAQ6gcACyADQQhqIANBDHIgBEHw5cEAEOoHAAsgA0EMaiADQRByIARB8OXBABDqBwALIANBEGogA0EUciAEQfDlwQAQ6gcACyADQRRqIANBGHIgBEHw5cEAEOoHAAtBACAOIAtB/NbAABDqBwALQQAgByACQezWwAAQ6gcAC0EAIA4gDEHc1sAAEOoHAAtBACAOIA1BzNbAABDqBwALQQAgFyAIQbzWwAAQ6gcACyABKAI0IgBFDQAgBEEEaygCACICQXhxIgcgAEECdCIAQQRBCCACQQNxIgIbakkNAyACQQAgByAAQSdqSxsNBCAEEKICCyABKAIoIgAEQCADQQRrKAIAIgJBeHEiByAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0DIAJBACAHIABBJ2pLGw0EIAMQogILIAEoAhwiAARAIAVBBGsoAgAiAkF4cSIHIABBAnQiAEEEQQggAkEDcSICG2pJDQMgAkEAIAcgAEEnaksbDQQgBRCiAgsgASgCECIABEAgBkEEaygCACICQXhxIgcgAEECdCIAQQRBCCACQQNxIgIbakkNAyACQQAgByAAQSdqSxsNBCAGEKICCyABKAIEIgAEQCARQQRrKAIAIgJBeHEiByAAQQJ0IgBBBEEIIAJBA3EiAhtqSQ0DIAJBACAHIABBJ2pLGw0BIBEQogILQQAhAwwBCwwCCyABQZABaiQAIAMPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAu1FgEOfwJ/AkAgAiADSwRAIAEgA0EebGoiAy8BACICQf//AXFFBEAgAkEQdAwDCyACQf8HcSEBIAJBgIACcSEFIAJBgPgBcSICQYD4AUYEQCAFQRB0IQIgAkGAgID8B3IgAUUNAxogAiABQQ10ckGAgID+B3IMAwsgBUEQdCEFIAJFDQEgAkENdEGAgID8AHEgAUENdHJBgICAwANqIAVyDAILIAMgAkGEwccAEIwHAAsgBUGAgIDYA3IgAWdBEGsiAkEXdGsgASACQf//A3FBCGp0Qf///wNxcgshAQJ/IAMvAQIiBUH//wFxRQRAIAVBEHQMAQsgBUH/B3EhAiAFQYCAAnEhBiAFQYD4AXEiBUGA+AFGBEAgBkEQdCEFIAVBgICA/AdyIAJFDQEaIAUgAkENdHJBgICA/gdyDAELIAZBEHQhBiAFQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogBnIgBQ0AGiAGQYCAgNgDciACZ0EQayIFQRd0ayACIAVB//8DcUEIanRB////A3FyCyEFAn8gAy8BBCIGQf//AXFFBEAgBkEQdAwBCyAGQf8HcSECIAZBgIACcSEHIAZBgPgBcSIGQYD4AUYEQCAHQRB0IQYgBkGAgID8B3IgAkUNARogBiACQQ10ckGAgID+B3IMAQsgB0EQdCEHIAZBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAHciAGDQAaIAdBgICA2ANyIAJnQRBrIgZBF3RrIAIgBkH//wNxQQhqdEH///8DcXILIQYCfyADLwEGIgdB//8BcUUEQCAHQRB0DAELIAdB/wdxIQIgB0GAgAJxIQggB0GA+AFxIgdBgPgBRgRAIAhBEHQhByAHQYCAgPwHciACRQ0BGiAHIAJBDXRyQYCAgP4HcgwBCyAIQRB0IQggB0ENdEGAgID8AHEgAkENdHJBgICAwANqIAhyIAcNABogCEGAgIDYA3IgAmdBEGsiB0EXdGsgAiAHQf//A3FBCGp0Qf///wNxcgshBwJ/IAMvAQgiCEH//wFxRQRAIAhBEHQMAQsgCEH/B3EhAiAIQYCAAnEhCSAIQYD4AXEiCEGA+AFGBEAgCUEQdCEIIAhBgICA/AdyIAJFDQEaIAggAkENdHJBgICA/gdyDAELIAlBEHQhCSAIQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogCXIgCA0AGiAJQYCAgNgDciACZ0EQayIIQRd0ayACIAhB//8DcUEIanRB////A3FyCyEIAn8gAy8BCiIJQf//AXFFBEAgCUEQdAwBCyAJQf8HcSECIAlBgIACcSEKIAlBgPgBcSIJQYD4AUYEQCAKQRB0IQkgCUGAgID8B3IgAkUNARogCSACQQ10ckGAgID+B3IMAQsgCkEQdCEKIAlBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAKciAJDQAaIApBgICA2ANyIAJnQRBrIglBF3RrIAIgCUH//wNxQQhqdEH///8DcXILIQkCfyADLwEMIgpB//8BcUUEQCAKQRB0DAELIApB/wdxIQIgCkGAgAJxIQsgCkGA+AFxIgpBgPgBRgRAIAtBEHQhCiAKQYCAgPwHciACRQ0BGiAKIAJBDXRyQYCAgP4HcgwBCyALQRB0IQsgCkENdEGAgID8AHEgAkENdHJBgICAwANqIAtyIAoNABogC0GAgIDYA3IgAmdBEGsiCkEXdGsgAiAKQf//A3FBCGp0Qf///wNxcgshCgJ/IAMvAQ4iC0H//wFxRQRAIAtBEHQMAQsgC0H/B3EhAiALQYCAAnEhDCALQYD4AXEiC0GA+AFGBEAgDEEQdCELIAtBgICA/AdyIAJFDQEaIAsgAkENdHJBgICA/gdyDAELIAxBEHQhDCALQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogDHIgCw0AGiAMQYCAgNgDciACZ0EQayILQRd0ayACIAtB//8DcUEIanRB////A3FyCyELAn8gAy8BECIMQf//AXFFBEAgDEEQdAwBCyAMQf8HcSECIAxBgIACcSENIAxBgPgBcSIMQYD4AUYEQCANQRB0IQwgDEGAgID8B3IgAkUNARogDCACQQ10ckGAgID+B3IMAQsgDUEQdCENIAxBDXRBgICA/ABxIAJBDXRyQYCAgMADaiANciAMDQAaIA1BgICA2ANyIAJnQRBrIgxBF3RrIAIgDEH//wNxQQhqdEH///8DcXILIQwCfyADLwESIg1B//8BcUUEQCANQRB0DAELIA1B/wdxIQIgDUGAgAJxIQ4gDUGA+AFxIg1BgPgBRgRAIA5BEHQhDSANQYCAgPwHciACRQ0BGiANIAJBDXRyQYCAgP4HcgwBCyAOQRB0IQ4gDUENdEGAgID8AHEgAkENdHJBgICAwANqIA5yIA0NABogDkGAgIDYA3IgAmdBEGsiDUEXdGsgAiANQf//A3FBCGp0Qf///wNxcgshDQJ/IAMvARQiDkH//wFxRQRAIA5BEHQMAQsgDkH/B3EhAiAOQYCAAnEhDyAOQYD4AXEiDkGA+AFGBEAgD0EQdCEOIA5BgICA/AdyIAJFDQEaIA4gAkENdHJBgICA/gdyDAELIA9BEHQhDyAOQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogD3IgDg0AGiAPQYCAgNgDciACZ0EQayIOQRd0ayACIA5B//8DcUEIanRB////A3FyCyEOAn8gAy8BFiIPQf//AXFFBEAgD0EQdAwBCyAPQf8HcSECIA9BgIACcSEQIA9BgPgBcSIPQYD4AUYEQCAQQRB0IQ8gD0GAgID8B3IgAkUNARogDyACQQ10ckGAgID+B3IMAQsgEEEQdCEQIA9BDXRBgICA/ABxIAJBDXRyQYCAgMADaiAQciAPDQAaIBBBgICA2ANyIAJnQRBrIg9BF3RrIAIgD0H//wNxQQhqdEH///8DcXILIQ8CfyADLwEYIhBB//8BcUUEQCAQQRB0DAELIBBB/wdxIQIgEEGAgAJxIQQgEEGA+AFxIhBBgPgBRgRAIARBEHQhECAQQYCAgPwHciACRQ0BGiAQIAJBDXRyQYCAgP4HcgwBCyAEQRB0IQQgEEENdEGAgID8AHEgAkENdHJBgICAwANqIARyIBANABogBEGAgIDYA3IgAmdBEGsiEEEXdGsgAiAQQf//A3FBCGp0Qf///wNxcgshEAJ/IAMvARoiBEH//wFxRQRAIARBEHQMAQsgBEH/B3EhAiAEQYCAAnEhESAEQYD4AXEiBEGA+AFGBEAgEUEQdCEEIARBgICA/AdyIAJFDQEaIAQgAkENdHJBgICA/gdyDAELIBFBEHQhESAEQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogEXIgBA0AGiARQYCAgNgDciACZ0EQayIEQRd0ayACIARB//8DcUEIanRB////A3FyCyECIAACfyADLwEcIgRB//8BcUUEQCAEQRB0DAELIARB/wdxIQMgBEGAgAJxIREgBEGA+AFxIgRBgPgBRgRAIBFBEHQhBCAEQYCAgPwHciADRQ0BGiAEIANBDXRyQYCAgP4HcgwBCyARQRB0IREgBEENdEGAgID8AHEgA0ENdHJBgICAwANqIBFyIAQNABogEUGAgIDYA3IgA2dBEGsiBEEXdGsgAyAEQf//A3FBCGp0Qf///wNxcgs2AjggACACNgI0IAAgEDYCMCAAIA82AiwgACAONgIoIAAgDTYCJCAAIAw2AiAgACALNgIcIAAgCjYCGCAAIAk2AhQgACAINgIQIAAgBzYCDCAAIAY2AgggACAFNgIEIAAgATYCAAv3FQIRfwJ+IwBBIGsiCiQAAkACQAJAA0ACfyABKAKcAyICIAEpA6ADIhMgAq0iFCATIBRUG6ciBEYEQEEBIQVBJSEGQQAhB0EAIQJBACEJQQAhCyADQYB+cUEkcgwBCyAKQQhqIAEgASgCmAMgBGogAiAEa0EAENYBIAopAhAiE0IoiKchByATQiCIpyECIBNCGIinIQkgE0IQiKchCyATQgiIpyEGIAotABshDCAKLQAaIQ4gCi0AGSEIIAotABghDSAKKAIMIQQgE6chBSAEIAooAggNABogASABKQOgAyAErXw3A6ADIANBgH5xQShyCyIDQf8BcUEoRwRAIANBCHYhAQwCCwJAAkACQAJAIAVB/wFxQQFrDgIAAQQLIA1B/wFxIgRByQBGDQEgBEHmAEcgCEHkAEdyIA5B/wFxQcEARyAMQf8BcUHUAEdycg0DDAILIAZB/wFxQckARyALQf8BcUHFAEdyIAlB/wFxQc4ARyACQf8BcUHEAEdycg0CQQMhAwwDCyAIQcQARyAOQf8BcUHBAEdyIAxB/wFxQdQAR3INAQsLAn8CQCABKAIIQQJHBEBBASEHIAFBCGoiA0G4AkGgAiABLQC5AkECRiIFG2ooAgAhBCADQbQCQZwCIAUbaigCACEDIAEtAMQCIg9BAUYEQCAEQQN2IARBB3FBAEdqIQUgA0UgBEVyRQRAIANBA3YgA0EHcUEAR2ohAkEBIQ1BASEIQQEhDEEBDAQLQQEhDSAERSADQQRNcg0CIANBBGsiAkEAIAIgA00bIgJBA3YgAkEHcUEAR2ohAkECIQdBASEIQQIhDEEBDAMLIARFBEBBACENQQAhBUEAIQhBAgwDC0EAIQ0gBCEFQQEhCEEADAILQayYxwAQ3QkACyADRSAEQQVJckUEQEEDIQcgBEEEayICQQAgAiAETRsiAkEDdiACQQdxQQBHaiEFIANBAnYgA0EDcUEAR2ohAkEBIQhBAyEMQQEMAQsgBEUgA0ECTXJFBEAgA0ECayICQQAgAiADTRsiAkECdiACQQNxQQBHaiECIARBAnYgBEEDcUEAR2ohBUEEIQdBASEIQQQhDEEBDAELAkAgBEEDSQ0AIAMgA0EBdmsiAkUNACAEQQJrIgVBACAEIAVPGyIFQQJ2IAVBA3FBAEdqIQVBBSEHQQEhCEEFIQxBAQwBCwJAIAQgBEEBdmsiBUUNACADQQFrIgJBACACIANNGyICIAJBAXZrIgJFDQBBBiEHQQEhCEEGIQxBAQwBC0EAIQhBByEHIARBAWsiAkEAIAIgBE0bIgIgAkEBdmsiBUUgA0VyRQRAIAMhAkEBIQhBByEMQQEMAQsgAyECQQILIQ4gAS0AxgIiCUECdCIQKAKQlEkgA2whCwJAAkACQCABLQDHAiIGQQhrDgkCAAAAAAAAAAEACyAGQQhNBEAgC0EIIAZuIhFuIhIgCyARIBJsR2ohCwwCCwwECyALQQF0IQsLIAFBADoA5AMgASAENgLcAyABIAM2AtgDIAEgDDoA1AMgASACNgLQAyABIAM2AswDIAFBADYCyAMgASAONgLEAyABIAc6AMADIAEgBDYCvAMgASADNgK4AyABIAI2ArQDIAEgBTYCsAMgASAINgKsAyABIA02AqgDIAEgC0EBaiIFNgLgAwJAIBAoAoCVSSAGQQdqQQN2bEEBayICQQdLQa8BIAJ2QQFxRXJFBEAgAUKBhIyggMCBgAggAkEDdK2IPADFBCAPRQRAIAStIAWtfiETDAILIAlBAnQiAigCyJRJIANBA3YgA0EHcUEAR2psIQsCQAJAAkAgBkEIayIFDgkCAAAAAAAAAAEACyAGQQhNBEAgC0EIIAZuIgduIg4gCyAHIA5sR2ohCwwCCwwGCyALQQF0IQsLIAIoApyVSSADQQRrIgJBACACIANNGyICQQN2IAJBB3FBAEdqbCECAkACQAJAAkACQAJAIAUOCQABAQEBAQEBAgELIAlBAnQoAriVSSADQQJ2IANBA3FBAEdqbCEHIAJBAWohDQwECyAGQQlPDQggCUECdCgCuJVJIANBAnYgA0EDcUEAR2psIQcgAkEIIAZuIgVuIg4gAiAFIA5sR2pBAWohDSAGQQhrDgkDAgICAgICAgECCyAJQQJ0KAK4lUkgA0ECdiADQQNxQQBHamwhByACQQF0QQFyIQ0LIAdBAXQhBwwBCyAHQQggBm4iAm4iBSAHIAIgBWxHaiEHCyAJQQJ0IgUoAtSVSSADQQJrIgJBACACIANNGyICQQJ2IAJBA3FBAEdqbCECAkACQAJAAkACQAJAIAZBCGsOCQABAQEBAQEBAgELIAUoAvCVSSADIANBAXZrbCEFIARBAnYgBEEDcUEAR2ohDiACQQFqIQwMBAsgBkEJTw0IIAlBAnQoAvCVSSADIANBAXZrbCEFIARBAnYgBEEDcUEAR2ohDiACQQggBm4iDG4iCCACIAggDGxHakEBaiEMIAZBCGsOCQMCAgICAgICAQILIAUoAvCVSSADIANBAXZrbCEFIARBAnYgBEEDcUEAR2ohDiACQQF0QQFyIQwLIAVBAXQhBQwBCyAFQQggBm4iAm4iCCAFIAIgCGxHaiEFCyAJQQJ0IgIoAoyWSSADQQFrIghBACADIAhPGyIIIAhBAXZrbCEJAkACQAJAIAZBCGsiCA4JAgAAAAAAAAABAAsgBkEITQRAIAlBCCAGbiIPbiIQIAkgDyAQbEdqIQkMAgsMBgsgCUEBdCEJCyACKALklEkgA2whAgJAAkACQCAIDgkCAAAAAAAAAAEACyAGQQhNBEAgAkEIIAZuIgZuIgggAiAGIAhsR2ohAgwCCwwGCyACQQF0IQILIARBBGsiBkEAIAQgBk8bIgZBA3YgBkEHcUEAR2qtIAdBAWqtfiAEQQN2IARBB3FBAEdqrSANrSALQQFqrXx+fCAOrSAMrX58IARBAmsiB0EAIAQgB08bIgdBAnYgB0EDcUEAR2qtIAVBAWqtfnwgBCAEQQF2a60gCUEBaq1+fCAEQQFrIgVBACAEIAVPGyIEIARBAXZrrSACQQFqrX58IRMMAQsgCkEANgIYIApBATYCDCAKQbiPxQA2AgggCkIENwIQIApBCGpBwI/FABCNCAALIAFBADYC+AMCQAJAIAEoAogEIgJBgoCAgHhIIAJFckUEQCABKAKMBCIDQQRrKAIAIgRBeHEiBUEEQQggBEEDcSIEGyACakkNASAEQQAgBSACQSdqSxsNAiADEKICIAEoAtgDIQMLIAFBADYCnAQgAUIANwKUBCABQYCAgIB4NgKIBCABIBM3A+gDIAogARCKBSAKLQAAQQJ0KAKslEkgA2whAwJAAkACQCAKLQABIgJBCGsOCQIAAAAAAAAAAQALIAJBCE0EQCADQQggAm4iAm4iBCADIAIgBGxHaiEDDAILDAYLIANBAXQhAwsgAyABKAKIAyICSwRAIABBJzoAAAwECyAAQSg6AAAgASACIANrNgKIAwwDC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgACAHOwAJIAAgATsAASAAIAw6AA8gACAOOgAOIAAgCDoADSAAIA06AAwgACACOgAIIAAgCToAByAAIAs6AAYgACAGOgAFIAAgBToABCAAIAM6AAAgAEELaiAHQRB2OgAAIABBA2ogAUEQdjoAAAsgCkEgaiQADwtB0I/FABCBCAALyBUCB38HfiMAQeACayICJAACfwJAAn8CQAJAAkACQCAALQAAQQNrDgUBAAAAAgALIAAgARDKAgwFCyAAKQMIIglC/////////weDIQogCUL///////////8Ag0L/////////9/8AWARAIAlCNIinIQAgCUIAUw0CIAJBsAJqDAMLQeydxgBB753GACAJQgBZIgAbQfOdxgAgClAiAxshBEEDQQQgABtBAyADGyEADAMLIAEoAgBB8ZLGAEEEIAEoAgQoAgwRAAAMAwsgAkEtOgCwAkEBIQggAkGxAmoLIQYCfwJAAkACQAJAAkACQAJAAkAgAEH/D3EiAEUgClBxRQRAIABBAkkgCkIAUnIhBCAKQoCAgICAgIAIhCAKIAAbIglCAoYhCiAJQgGDIQ8CQAJAAkAgAEG1CGtBzHcgABsiAEEASARAIAJBkAJqQYC8xQAgACAAQYWiU2xBFHYgAEF/R2siAGoiB0EEdCIDaykDACIJIApCAoQiCxDdBiACQYACakGIvMUAIANrKQMAIg0gCxDdBiACQfABaiACKQOYAiILIAIpA4ACfCIMIAIpA4gCIAsgDFatfCAAIAdBsdm1H2xBE3ZrQfwAakH/AHFBwABzIgMQoQcgAkGwAWogCSAKIARBf3OsfCILEN0GIAJBoAFqIA0gCxDdBiACQZABaiACKQO4ASILIAIpA6ABfCIMIAIpA6gBIAsgDFatfCADEKEHIAJB4AFqIAkgChDdBiACQdABaiANIAoQ3QYgAkHAAWogAikD6AEiCSACKQPQAXwiDSACKQPYASAJIA1WrXwgAxChByACKQPAASELIAIpA5ABIQkgAikD8AEhDCAAQQJJDQFBACEDIABBP0kNAgwFCyACQYABaiAAQcHoBGxBEnYgAEEDS2siB0EEdCIDKQPg5EUiCSAKQgKEIg0Q3QYgAkHwAGogA0Ho5MUAaikDACILIA0Q3QYgAkHgAGogAikDiAEiDCACKQNwfCIOIAIpA3ggDCAOVq18IAcgAGsgB0HPpsoAbEETdmpB/QBqQf8AcUHAAHMiABChByACQSBqIAkgCiAEQX9zrHwiDBDdBiACQRBqIAsgDBDdBiACIAIpAygiDCACKQMQfCIOIAIpAxggDCAOVq18IAAQoQcgAkHQAGogCSAKEN0GIAJBQGsgCyAKEN0GIAJBMGogAikDWCIJIAIpA0B8IgsgAikDSCAJIAtWrXwgABChByACKQMw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ACABIAA2ArADQdjmyABBKyABQbADakHY6MAAQbDwwAAQ4AYAC0G4u8kAQQA2AgBBtLvJAEEAOgAAIARBhAhPBEAgBBCbBwsgA0GECE8EQCADEJsHCyACQQRrKAIAIgNBeHEiBEHwAUH0ASADQQNxIgMbSQ0CIANBACAEQZQCTxsNACACEKICIAAgBjYCBCAAQQA2AgAgAUHgCWokAA8LC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAvFFwICfwF+IwBBQGoiAiQAIAEoAgQhAyABKAIAIQECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCACIALQAAQQFrDiMBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhsjHB0eHyAhIgALIAIgAEEEajYCBCACIABBCGo2AiAgAiAAQQxqNgIkIAIgAkEkaq1CgICAgLAMhDcDGCACQoCAgIDADCIEIAJBIGqthDcDECACIAQgAkEEaq2ENwMIIAJCAzcCNCACQQQ2AiwgAkHsncUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwrCyABQYyexQBBFiADKAIMEQAADCoLIAFBop7FAEElIAMoAgwRAAAMKQsgAUHHnsUAQR4gAygCDBEAAAwoCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGIn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwnCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkG8n8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwmCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkHsn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwlCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGcoMUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwkCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMI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CyAJQRhqIgIgCUGcA2pBwAH8CgAAQfQBEHEiAUUNAiABIAY2AgAgAUEEaiACQcAB/AoAACABIAs6APABIAEgBDYC7AEgASAHNgLoASABQYCAgIB4NgLcASABIBU3AtQBIAEgCDYC0AEgAUEANgLMASABQoCAgIAQNwLEASAAQbDuwAA2AgwgAEEBNgIIIABBmO7AADYCBCAAIAE2AgAgA0GAgICAeHJBgICAgHhGDQMgBUEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgA2pJDQQgAEEAIAEgA0EnaksbDQUgBRCiAgwDC0GgnsYAQTcgCUHfBGpBtJPBAEHYnsYAEOAGAAtB2JrIABD/BwsACyAJQeAEaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL/Q0BBX8jAEEwayICJAACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOBQECAwQFAAtBASEDIAEoAgAiBEHUpccAQQggASgCBCIGKAIMIgURAAANBiAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEIQGRQ0BDAgLIARB24HCAEECIAURAAANByACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIQGDQcgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0HCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBgtBASEDIAEoAgAiBEHcpccAQQggASgCBCIGKAIMIgURAAANBSAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQcgACABEIUGRQ0BDAcLIARB24HCAEECIAURAAANBiACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIUGDQYgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0GCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBQtBASEDIAEoAgAiBEHkpccAQQkgASgCBCIGKAIMIgURAAANBCAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQYgACABEIYGRQ0B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BwsgA0IANwGCASADQdzkATsBgAEMBgsgA0IANwGCASADQdzcATsBgAEMBQsgA0IANwGCASADQdy4ATsBgAEMBAsgA0IANwGCASADQdzEADsBgAEMAwsgA0IANwGCASADQdzOADsBgAEMAgsgAyAENgKAASAAIAMpAoABNwIAIABBCGogA0GIAWovAQA7AQAgBSAJKAIAIAgoAhARAgBFDQMMBQtBACEADAULQQAhAUECCyEEIAAgAykCgAE3AgAgAEEIaiADQYgBai8BADsBACABIAQgASAESxsiAkH/AXEhBCAIKAIQIQoDQCAFIAAgAWotAAAgChECAA0DIAQgAUEBaiIBRw0ACyADIAI6AGALIAYgB0cNAAtBACEADAELQQEhAAsgA0GQAWokACAAC+MJAQZ/IAFBA2wiBCAAKAKQBCICSwRAIAQgAmsiBSAAKAKIBCACa0sEQCAAQYgEaiACIAVBBEEEEKQFIAAoApAEIQILIAAoAowEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKQBAsgACgCnAQiAiABSQRAIAEgAmsiBSAAKAKUBCACa0sEQCAAQZQEaiACIAVBBEEEEKQFIAAoApwEIQILIAAoApgEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKcBAsgACgCqAQiAiAESQRAIAQgAmsiBSAAKAKgBCACa0sEQCAAQaAEaiACIAVBBEEEEKQFIAAoAqgEIQILIAAoAqQEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKoBAsgACgCtAQiAiAESQRAIAQgAmsiBCAAKAKsBCACa0sEQCAAQawEaiACIARBBEEEEKQFIAAoArQEIQILIAAoArAEIgUgAkECdGohAyAEQQJPBH8gBEECdEEEayIGBEAgA0EAIAb8CwALIAIgBGoiA0EBayECIAUgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgK0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AXI6AABBACEDDAQLIAIoAggiAyACKAIARgRAIAJB+JPGABCnBgsgAiADQQFqNgIIIAIoAgQgA2ogBjoAAEEAIQMMAwsgBiADIANByKXGABDqBwALIARBFDYCFCABIARBFGoQiwchAwwBCyAIIAMgA0HIpcYAEOoHAAsgBEEgaiQAIANFDQ4MDQsgAigCACADRgRAIAJB+JLGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQSI6AAAMCwsgAigCACADRgRAIAJBiJPGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQdwAOgAADAoLIAIoAgAgA0YEQCACQZiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEvOgAADAkLIAIoAgAgA0YEQCACQaiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEIOgAADAgLIAIoAgAgA0YEQCACQbiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEMOgAADAcLIAIoAgAgA0YEQCACQciTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEKOgAADAYLIAIoAgAgA0YEQCACQdiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakENOgAADAULIAIoAgAgA0YEQCACQeiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEJOgAADAQLIAMgBCAGQcicxgAQ6gcACyAHKAIMIQMMAwsgB0EENgIUIAAgASAHQRRqEPIGDAYLIAQgBkGYnMYAEIwHAAsMAQsLIABBAjYCACAAIAM2AgQMAgsgACADNgIIIAAgATYCBCAAQQA2AgAMAQsgACADNgIIIAAgATYCBCAAQQE2AgALIAdBIGokAAvFBwEEfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOBQECAw0EAAsgAC0ABEEDRw0MIAAoAggiAygCACEAIANBBGooAgAiASgCACICBEAgACACEQMACyABKAIEIgEEQCAAQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyABakkNDyACQQAgBCABQSdqSxsNDiAAEKICCyADQQRrKAIAIgBBeHEiAUEQQRQgAEEDcSIAG0kNDiAARSABQTRJcg0LDA0LAkAgAC0ABEEBaw4C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gICAgIAEhDcDECADQgE3AiQgA0EBNgIcIANBoPjHADYCGCADIANBEGo2AiAgA0EEaiADQRhqEOwDQYCAgIB4IQYgAygCCCEFIAMoAgQhBCADNQIMIQpBACEHQRELIQAgAyAKNwMgIAMgBTYCHCADIAg6ABkgAyAAOgAYIANBGGogASACENAFIQACQAJAAkACQAJAIAlFBEAgByAERXINBgwBCyAGBEAgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBmpJDQIgAUEAIAIgBkEnaksbDQMgBRCiAgsgBEUgB3INBQsgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBGpJDQIgAUEAIAIgBEEnaksbDQMgBRCiAgwEC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIANBMGokACAAC+YFAQN/IwBBIGsiAyQAIAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAQ4oAgEBAQEBAQEBAwUBAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQgBAQEBBwALIAFB3ABGDQULIAJBAXFFIAFB/wVNcg0HIAEQ5QRFDQcgA0EOakEAOgAAIANBADsBDCADIAFBFHYtANy2RToADyADIAFBBHZBD3EtANy2RToAEyADIAFBCHZBD3EtANy2RToAEiADIAFBDHZBD3EtANy2RToAESADIAFBEHZBD3EtANy2RToAECABQQFyZ0ECdiICIANBDGoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgAkECayICakHcADoAACADQRRqIgQgAUEPcS0A3LZFOgAAIAAgAykBDDcAACADQf0AOgAVDAgLIABCADcBAiAAQdzgADsBAAwKCyAAQgA3AQIgAEHc6AE7AQAMCQsgAEIANwECIABB3OQBOwEADAgLIABCADcBAiAAQdzcATsBAAwHCyAAQgA3AQIgAEHcuAE7AQAMBgsgAkGAAnFFDQEgAEIANwECIABB3M4AOwEADAULIAJB////B3FBgIAETw0DCyABEOECDQEgA0EYakEAOgAAIANBADsBFiADIAFBFHYtANy2RToAGSADIAFBBHZBD3EtANy2RToAHSADIAFBCHZBD3EtANy2RToA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IAMgAUEDdGoiAiAFNgIEIAIgCjgCACABDQBBACECDAELIAogClsEQANAIAMgAUEBayIGQQF2IgJBA3RqIgcqAgAiCyALWyAKIAtfRXFBfyAKIAtgGyIEQQBMIAUgB0EEaigCAE0gBBsEQCABIQIMAwsgAyABQQN0aiAHKQIANwIAIAIhASAGQQFLDQAMAgsACwNAAkAgAyABQQFrIgRBAXYiAkEDdGoiBioCACILIAtbIAogC19FcQ0AIAUgBkEEaigCAEsNACABIQIMAgsgAyABQQN0aiAGKQIANwIAIAIhASAEQQJPDQALCyADIAJBA3RqIgEgBTYCBCABIAo4AgALIAAgCTYCCCAAIA04AgQgAEEBNgIAC4kGAQV/IwBBIGsiAiQAQQEhBAJAAkACQAJAAkACQEEBIAAoAgAiA0H/////B2ogA0GAgICAeE0bQQFrDgQBAgMEAAsgASgCACIDQcSjxwBBAiABKAIEIgYoAgwiBREAAA0EIABBBGohAAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAURAAANBiAAIAEQrgINBiABKAIAIQMgASgCBCgCDCEFDAELIANB24HCAEECIAURAAANBSACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqEK4CDQUgAigCEEHZgcIAQQIgAigCFCgCDBEAAA0FCyADQd6OyABBASAFEQAAIQQMBAsgASgCACIDQcajxwBBDiABKAIEIgYoAgwiBREAAA0DAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0FIAAoAgQgACgCCCABELUCRQ0BDAULIANB24HCAEECIAURAAANBCACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACgCBCAAKAIIIAJBEGoQtQINBCACQdmBwgBBAhCvAw0ECyADQd6OyABBASAFEQAAIQQMAwsgASgCACIDQdSjxwBBEiABKAIEIgYoAgwiBREAAA0CAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0EIAAoAgQgACgCCCABELUCRQ0BDAQLIANB24HCAEECIAURAAANAyACQQE6AA8gAiAGNgIEIAIg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AkACQAJAAkACQAJAQRUgASgCACIDQYCAgIB4cyADQQBOG0EBaw4IAQIDBAUGBwgACyABIAJBH2pB6OfAABCVCCEBIABBAToAACAAIAE2AgQMCAsgAEEAOgAAIAAgAS0ABDoAAQwHCyABLwEEIgFB/wFNBEAgACABOgABIABBADoAAAwHCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwGCyABKAIEIgFB/wFNBEAgACABOgABIABBADoAAAwGCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwFCyABKQMIIgRC/wFYBEAgACAEPAABIABBADoAAAwFCyACQQE6AAggAiAENwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAEsAAQiAUEASARAIAJBAjoACCACIAGsNwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAAgAToAASAAQQA6AAAMAwsgAS8BBCIBQYACTwRAIAJBAjoACCACIAGtwzcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwDCyAAIAE6AAEgAEEAOgAADAILIAEoAgQiAUGAAk8EQCACQQI6AAggAiABrDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwCCyAAIAE6AAEgAEEAOgAADAELIAACfyABKQMIIgRCgAJaBEAgAkECOgAIIAIgBDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEQQEMAQsgACAEPAABQQALOgAACyACQSBqJAALxgQCBn8DfgJAIAEoAgBBAUYEQCABKQMQIgpQBEAMAgsgASgCGCIGKAIAIAYpAwgiCyAGKAIEIgWtIgwgCyAMVBunaiEHAkAgBUL/////DyALIAtC/////w9aG6drIgRBACAEIAVNGyIFIAogA60iDCAKIAxUG6ciBCAEIAVLGyIEQQFGBEAgAiAHLQAAOgAADAELIARFDQAgAiAHIAT8CgAACyABIAogBK0iCn03AxAgBiAKIAt8NwMIIARFBEBBACEEDAILQQEgBGshCCADQQFrIQYgASgCJCEJIAEoAiAhByABKAIoIQMDQAJAIAIgAi0AACADQQNy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KCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahDUASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2AjggAUEBNgIsIAFBqKPBADYCKCABQgQ3AjAgAUEoahCSByEDCyABQdAAaiQAIAML0wQCB38BfiMAQdAAayIBJAACQCAAEFwiAw0AIAAoAtwEIgJBgYCAgHhGIgRFBEACQAJAIAJBgICAgHhGBEBBACAAIAQbIQUgACgCCCIGQQZ0IQMgACgCBCIHQTxqIQICQANAIAIhBCADRQ0BIANBQGohAyACQUBrIQIgBC0AAEEBRw0ACyAEQTxrIgIoAjggAigCICIERw0DIAQgACgC7AJHDQMLIAZBBnQhAyAHQTxqIQIDQCACIQQgA0UNAiADQUBqIQMgAkFAayECIAQtAABBAkcNAAsgBEE8ayICKAI4IAIoAiBGDQEgAUECNgIsIAFBiKPBADYCKCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahCjASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2Ajgg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rgQCBX8EfiMAQSBrIgIkAEEEIQMgASgCBCIErSEIIAECfgJAIARC/////w8gASkDCCIHIAdC/////w9aG6drIgZBACAEIAZPG0EETwRAIAEoAgAgByAIIAcgCFQbp2ooAAAhBQwBC0GokMgAKQMAIglCCIghCiAJpyEDIAggCUL/AYNCBFINARoLIAdCBHwLIgk3AwgCQCADQf8BcUEERwRAIABBEmogAkEWai8BADsBACACIAOtQv8BgyAKQgiGhDcCDCACQQRqIAJBDWotAAAiAToAACAAIAIpAQ43AQogAiACKAAJIgM2AgAgAEEJaiABOgAAIAAgAzYABSAAQQA6AAQgAEEBNgIADAELIAJBCGpBAXIgBRCYBCACQRxqIAJBDWotAAA6AAAgAiACKAAJIgM2AgAgAiADNgIYAkACQCAEIAkgCCAIIAlWG6ciA2tBBE8EQCABKAIAIANqKAAAIQRBBCEDQgAhBwwBC0EAIQRBqJDIACkDACIKQgiIIQcgCqchAyAKQv8Bg0IEUg0BCyAJQgR8IQgLIAEgCDcDCCADQf8BcUEERwRAIAAgAzoACCAAQQA6AAQgAEEBNgIAIAAgB6ciATsACSAAIAdCGIg+AgwgAEELaiABQRB2OgAADAELIAAgAigCGDYAECAAQQA2AgAgACAErTcDCCAAQRRqIAJBHGotAAA6AAAgAEF/IAQgBEEBcWoiACAAIARJG603AxgLIAJBIGokAAvdBAIHfwF+IwBBEGsiAyQAAkAgAC8BDCICRQRAIAAoAgAgACgCBCABEKEDIQEMAQsgAyAB/QACAP0LAwACQAJ/IAApAggiCaciB0GAgIAIcUUEQCADKAIEDAELIAAoAgAgAygCACADKAIEIgEgACgCBCgCDBEAAA0BIAAgB0GAgID/eXFBsICAgAJyIgc2AgggA0IBNwMAIAIgAUH//wNxayIBQQAgASACTRshAkEACyEIAkAgAygCDCIFRQRADAELIAMoAgghAQNAAn8CQAJAAkACQCABLwEAQQFrDgIBAgALIAFBBGooAgAMAwsgAUECai8BACIEDQFBAQwCCyABQQhqKAIADAELIARB9v8XaiAEQZz/H2pxIARBmPg3aiAEQfCxH2pxc0ERdkEBagsgAUEMaiEBIAZqIQYgBUEBayIFDQALCwJAIAYgCGoiASACQf//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IAEoAiAiAiABKAIcIgFGDQELIAEgB2ohCCACIAFrIQMLIAAgAzYCBCAAIAg2AgAgBkEQaiQAC70DAgZ/AX4jAEHQAGsiAiQAIAJBIGogACAAKAIAKAIEEQEAIAIgAkEwaq1CgICAgLABhDcDKCACIAIpAyA3AjAgASgCACEFIAEoAgQhBiACQgE3AkRBASEDIAJBATYCPCACQaD4xwA2AjggAiACQShqNgJAAkAgBSAGIAJBOGoQwQMNACABLQAKQYABcUUEQEEAIQMMAQsgAkEYaiAAIAAoAgAoAgQRAQAgAkEQaiACKAIYIAIoAhwoAhgRAQAgAigCECIERQRAQQAhAwwBCyACQQhqIAQgAigCFCIHKAIYEQEAIAIoAgwhACACKAIIIQEgAiAHNgIsIAIgBDYCKCACQQE2AjwgAkGA8cEANgI4IAJCATcCRCACIAJBKGqtQoCAgICwAYQiCDcDMCACIAJBMGo2AkAgBSAGIAJBOGoQngkNAANAIAFFBEBBACEDDAILIAIgASAAKAIYEQEAIAIoAgQgAigCACACIAA2AiwgAiABNgIoIAJBATYCPCACQYDxwQA2AjggAkIBNwJEIAIgCDcDMCACIAJBMGo2AkAhASEAIAUgBiACQThqEJ4JRQ0ACwsgAkHQAGokACADC5QDACAAIARqIQACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQf8BcUEBaw4HBwABAgMEBQYLIABBfU0gAEECaiIBIANNcQ0HIAAgASADQbTZxwAQ6gcACyAAQX1NIABBAmoiASADTXENByAAIAEgA0HE2ccAEOoHAAsgAEF7TSAAQQRqIgEgA01xDQcgACABIANB1NnHABDqBwALIABBe00gAEEEaiIBIANNcQ0HIAAgASADQeTZxwAQ6gcACyAAQXtNIABBBGoiASADTXENByAAIAEgA0H02ccAEOoHAAsgAEF3TSAAQQhqIgEgA01xDQcgACABIANBhNrHABDqBwALIAAgA0kNCCAAIANBlNnHABCMBwALIAAgA0kNBiAAIANBpNnHABCMBwALIAAgAmouAACyDwsgACACai8AALMPCyAAIAJqKAAAsg8LIAAgAmooAACzDwsgACACaioAAA8LIAAgAmorAAC2DwsgACACai0AALNDAAB/Q5UPCyAAIAJqLAAA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AAs2AgAgBUEgaiQAC4QDAgJ/AXsCQAJAIARBBE8EQCACIARBBGtBA24iBSACIAVJGyIFQQNNDQEgAiAFQQFqIgIgAkEDcSICQQQgAhtrIgZrIQIgASAGaiAEIAZBfWxqIQQgAyAGQQNsaiEHA0AgAyAAIAH9XAAA/YkB/akBIgj9GwBBAnRqKAAANgAAIANBA2ogACAI/RsBQQJ0aigAADYAACADQQZqIAAgCP0bAkECdGooAAA2AAAgA0EJaiAAIAj9GwNBAnRqKAAANgAAIAFBBGohASADQQxqIQMgBkEEayIGDQALIQEgByEDDAELIAQNAQ8LA0AgAkUEQEEAQQBBpJrFABCMBwALIAMgACABLQAAQQJ0aigAADYAACADQQNqIQMgAkEBayECIAFBAWohASAEQQNrIgRBA0sNAAsLAkAgAgRAIARBA0cNASADIAAgAS0AAEECdGoiAC8AADsAACADQQJqIABBAmotAAA6AAAPC0EAQQBBhJrFABCMBwALQQBBAyAEQZSaxQAQ6gcAC4EDAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB/wFxQQFrDgcHAAECAwQFBgsgA0F9TSADQQJqIgAgAk1xDQcgAyAAIAJBtNjHABDqBwALIANBfU0gA0ECaiIAIAJNcQ0HIAMgACACQcTYxwAQ6gcACyADQXtNIANBBGoiACACTXENByADIAAgAkHU2McAEOoHAAsgA0F7TSADQQRqIgAgAk1xDQcgAyAAIAJB5NjHABDqBwALIANBe00gA0EEaiIAIAJNcQ0HIAMgACACQfTYxwAQ6gcACyADQXdNIANBCGoiACACTXENByADIAAgAkGE2ccAEOoHAAsgAiADTQ0HIAEgA2osAACyDwsgAiADSw0HIAMgAkGk2McAEIwHAAsgASADai4AALIPCyABIANqLwAAsw8LIAEgA2ooAACyDwsgASADaigAALMPCyABIANqKgAADwsgASADaisAALYPCyADIAJBlNjHABCMBwALIAEgA2otAACzC58DAgF+CH8CQAJAAkACQAJAIAAoAgQiBEUNACAAKAIMIggEQCAAKAIAIgJBCGohAyACKQMAQn+FQoCBgoSIkKDAgH+DIQEDQCABUARAA0AgAkGABGshAiADKQMAIANBCGohA0KAgYKEiJCgwIB/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jOrHABCMBwALQezpxwAQ/wcLAAucAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH/AXFBAWsOBwUAAQICAgMECyADQX1NIANBAmoiACACTXENBSADIAAgAkG02scAEOoHAAsgA0F9TSADQQJqIgAgAk1xDQUgAyAAIAJBxNrHABDqBwALIANBe00gA0EEaiIAIAJNcQ0FIAMgACACQdTaxwAQ6gcACyADQXdNIANBCGoiACACTXENBSADIAAgAkHk2scAEOoHAAsgAiADTQ0FIAEgA2osAAAPCyACIANLDQUgAyACQaTaxwAQjAcACyABIANqLgAADwsgASADai8AAA8LIAEgA2ooAAAPCyABIANqKwAA/AMPCyADIAJBlNrHABCMBwALIAEgA2otAAALzQIBBH8jAEEgayIEJAAgASgCDCEFAkAgAAJ/AkACQAJAIAEoAhQiAiABKAIQIgNJBEADQAJAIAIgBWotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgASACQQFqIgI2AhQgAiADRw0ACyADIQILIARBEGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAhQhASAEKAIQIQNBFBBxIgJFDQQgAkEDNgIADAELIARBCGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAgwhASAEKAIIIQNBFBBxIgJFDQMgAkEGNgIACyACIAM2AgwgAiABNgIQQQEMAQsgASACQQFqNgIUIARBGGogARCVAyAEKAIcIQIgBCgCGAs2AgAgACACNgIEIARBIGokAA8LAAu2AgEBfyMAQUBqIgMkACADIAI2AhAgAyABNgIMIAACfwJAAkACQAJAAkACQAJAIAJBA2sOBwAFAQIFBQMFCyABQZDQxwBBAxDbB0UEQCAAQQA6AAFBAAwHCyABQaD3xwBBAxDbBw0DIABBAToAAUEADAYLIAFBo/fHAEEFENsHDQMgAEECOgABQQAMBQsgAUGo98cAQQYQ2wcNAiAAQQM6AAFBAAwECyABQa73xwBBCRDbBw0BIABBBDoAAUEADAMLIAFBt/fHAEEDENsHRQ0BCyADQQE2AiQgA0HQ98cANgIgIANCATcCLCADIANBDGqtQoCAgIAghDcDOCADIANBOGo2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AEGUgICAeEYEQAJAIAACfyADKAIMIgQEQCACIAMoAggQqAMgAigCACIBQYCAgIB4Rw0CIAIoAgQMAQtBACACQQ9qQYTiwAAQ2wYLNgIEIABBgICAgHg2AgAMBAsgAigCBCEDIARBAUYNAiACQQE2AgAgBEEBa0H/////AHFBAWogAkHolcEAENsGIQQgAEGAgICAeDYCACAAIAQ2AgQgAUUNAyADIAFBARCiBwwDCyADIAJBD2pBhOLAABCVCCEBIABBgICAgHg2AgAgACABNgIEDAILQcvawABBLEH42sAAEKsHAAsgACACKAIINgIIIAAgAzYCBCAAIAE2AgALIAJBEGokAAupAgEFfyMAQSBrIgIkAEEBIQMCQCAAKAIAIgQoAgBBAUYEQCABKAIAIgBBw5jIAEEEIAEoAgQiBigCDCIFEQAADQEgBEEIaiEEAkAgAS0ACkGAAXFFBEAgAEG7s8UAQQEgBREAAA0DIAQgARDEBQ0DIAEoAgAhACABKAIEKAIMIQUMAQsgAEHbgcIAQQIgBREAAA0CIAJBAToADyACIAY2AgQgAiAANgIAIAJB4IHCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECAEIAJBEGoQxAUNAiACKAIQQdmBwgBBAiACKAIUKAIMEQAADQILIABB3o7IAEEBIAURAAAhAwwBCyABKAIAQb+YyABBBCABKAIEKAIMEQAAIQMLIAJBIGokACADC5ECAQN/IwBBQGoiASQAAkAgABA9IgINACAALQClU0UEQCABQQA2AjggAUEBNgIsIAFB5KPBADYCKCABQgQ3AjAgAUEoahCSByECDAELIAAoAmRBgICAgHhHBEBBACECIAAtAJgBIgNBCUYNASADQQVGBEAgACgCkAFFDQILIAFBAjYCLCABQZykwQA2AiggAUICNwI0IAEgAEGQAWqtQoCAgIAQhDcDICABIABBmAFqrUKAgICAsASENwMYIAEgAUEYajYCMCABQQxqIgAgAUEoahCxBiAAEI4HIQIMAQsgAUEANgI4IAFBATYCLCABQcCkwQA2AiggAUIENwIwIAFBKGoQkgchAgsgAUFAayQAIAILkgIBA38jAEFAaiIBJAACQCAAED4iAg0AIAAtAMVTRQRAIAFBADYCOCABQQE2AiwgAUHko8EANgIoIAFCBDcC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BEAgACgCtAIgA2ogASAC/AoAAAsgACACIANqNgK4AiAAELgBC1gBAX8gACgC2AIgACgC4AIiA2sgAkkEQCAAQdgCaiADIAJBAUEBEKQFIAAoAuACIQMLIAIEQCAAKALcAiADaiABIAL8CgAACyAAIAIgA2o2AuACIAAQsQELWAEBfyAAKAL4AiAAKAKAAyIDayACSQRAIABB+AJqIAMgAkEBQQEQpAUgACgCgAMhAwsgAgRAIAAoAvwCIANqIAEgAvwKAAALIAAgAiADajYCgAMgABCfAQtXAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEASAAEEELVwEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAEgABBAC1IBAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaCAAED4LUQEBfyAAKAJAIAAoAkgiA2sgAkkEQCAAQUBrIAMgAkEBQQEQpAUgACgCSCEDCyACBEAgACgCRCADaiABIAL8CgAACyAAIAIgA2o2AkggABA9C1ABA38CQAJAIAAEQCAAQQhrIgEgASgCACICQQFqIgM2AgAgA0UNASAAKAIAQf////8HTw0CIAAoAhggASACNgIAQQBHDwsQjgoLAAsQkAoAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcDAxAAgAEEBakHQwMQAIABBAmpB4MDEACACQQxqQfDAxAAQ7gUgAkEQaiQAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcioxwAgAEEBakHYqMcAIABBAmpB6KjHACACQQxqQfioxwAQ7gUgAkEQaiQAC08BAX8gACgCQCAAKAJIIgNrIAJJBEAgAEFAayADIAJBAUEBEKQFIAAoAkghAwsgAgRAIAAoAkQgA2ogASAC/AoAAAsgACACIANqNgJIQQALVQEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAFBAAtVAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEAUEAC1ABAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaEEAC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBqJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFB4J7BADYCACABIAIpAgg3AgQgASAANgIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBxJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC00AIwBBEGsiACQAIAEgAmwiAQR/IAFBwf///wdPBEBB2ObIAEErIABBD2pBtIPJAEHUg8kAEOAGAAtBwAAgARDBBAVBAAsgAEEQaiQAC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFBtLTHADYCACABIAIpAgg3AgQgASAAOgAcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFB7LTHADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1cBAn8jAEEgayIBJAACQCAAEJ8BIgINAEEAIQIgAC0AnAMNACABQQA2AhggAUEBNgIMIAFBxKPBADYCCCABQgQ3AhAgAUEIahCSByECCyABQSBqJAAgAgtXAQJ/IwBBIGsiASQAAkAgABCxASICDQBBACECIAAtAPwCDQAgAUEANgIYIAFBATYCDCABQcSjwQA2AgggAUIENwIQIAFBCGoQ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QeAAaiQADAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAmKAIAICYoAgQgJigCCCAmQRBqJAALTQEBfwJ/AkAgAigCBEUNACACKAIIIgNFDQAgAigCACADQQEgARC7AgwBCyABEHELIQIgACABNgIIIAAgAkEBIAIbNgIEIAAgAkU2AgALSwIBfwJ+IwBBEGsiASQAIAEgADUCiAEgADUChAF+QgRCAyAALQCTARsQ3QYgASkDCCECIAEpAwAhAyABQRBqJABCfyADIAJCAFIbC08AAkACQCACKAIQQQFGBEAgASgChAEgAigCFEsNAQsgAigCGEEBRw0BIAEoAogBIAIoAhxNDQELIABCAjcDCCAAQQM2AgAPCyAAQQY2AgALUAEBfyMAQRBrIgIkACACQQhqIAEgASgCACgCBBEBACACIAIoAgggAigCDCgCGBEBACACKAIEIQEgACACKAIANgIAIAAgATYCBCACQRBqJAALSAEBfyAAKAIAIAAoAggiA2sgAkkEQCAAIAMgAhD3BSAAKAIIIQMLIAIEQCAAKAIEIANqIAEgAvwKAAALIAAgAiADajYCCEEAC0gBAX8gACgCACAAKAIIIgNrIAJJBEAgACADIAIQ+AUgACgCCCEDCyACBEAgACgCBCADaiABIAL8CgAACyAAIAIgA2o2AghBAAtIAQF/IAAoAgAgACgCCCIDayACSQRAIAAgAyACEO8FIAAoAgghAwsgAgRAIAAoAgQgA2ogASAC/AoAAAsgACACIANqNgIIQQALRQEBfwJAIAFBAE4EfyABRQRAQQEhAkEAIQEMAgsgARBxIgINAUEBBSACCyABQcDowQAQkwkACyAAIAI2AgQgACABNgIAC08BAn8gACgCBCECIAAoAgAhAwJAIAAoAggiAC0AAEUNACADQbyLwwBBBCACKAIMEQAARQ0AQQEPCyAAIAFBCkY6AAAgAyABIAIoAhARAgALSgECfyAAIAAoAgQiAyACazYCBCAAIAAoAgAgAiADS3IiBDYCAEEBIQMgBAR/IAMFIAAoAggiACgCACABIAIgACgCBCgCDBEAAAsLSAEBfwJAIAFB4QBrIgFB/wFxQRlLBEBBACEBDAELIAFBAnRB/AdxIgIoAtSQSSEBIAIoAuyPSSECCyAAIAI2AgQgACABNgIAC0kCAn8BfSABKAIIIgNBgICAAXEhAiAAKgIAIQQgA0GAgICAAXFFBEAgASAEIAJBAEdBABD3Ag8LIAEgBCACQQBHIAEvAQ4QvQILRwECfyAALQANIgJBgAFNBEAgASgCACAAIAAtAAwiA2ogAiADayABKAIEKAIMEQAADwsgASgCACAAKAIAIAEoAgQoAhARAgALyQIAAkAgACACTQRAIAAgAU0gASACS3INASMAQTBrIgIkACACIAE2AgQgAiAANgIAIAJBAjYCDCACQfydwgA2AgggAkICNwIUIAIgAkEEaq1CgICAgBCENwMoIAIgAq1CgICAgBCENwMgIAIgAkEgajYCECACQQhqIAMQjQgACyMAQTBrIgEkACABIAI2AgQgASAANgIAIAFBAjYCDCABQaidwgA2AgggAUICNwIUIAEgAUEEaq1CgICAgBCENwMoIAEgAa1CgICAgBCENwMgIAEgAUEgajYCECABQQhqIAMQjQgACyMAQTBrIgAkACAAIAI2AgQgACABNgIAIABBAjYCDCAAQcidwgA2AgggAEICNwIUIAAgAEEEaq1CgICAgBCENwMoIAAgAK1CgICAgBCENwMgIAAgAEEgajYCECAAQQhqIAMQjQgAC0IBAX8jAEEgayIDJAAgA0EANgIQIANBATYCBCADQgQ3AgggAyABNgIcIAMgADYCGCADIANBGGo2AgAgAyACEI0IAAuJDQMHfwV+AXwgASgCCCIDQYCAgAFxIQIgACsDACEOIANBgICAgAFxRQRAIAJBAEchA0EAIQIjAEGAAWsiACQAIA69IQkCf0EDIA6ZRAAAAAAAAPB/YQ0AGkECIAlCgICAgICAgPj/AIMiCkKAgICAgICA+P8AUQ0AGiAJQv////////8HgyINQoCAgICAgIAIhCAJQgGGQv7///////8PgyAJQjSIp0H/D3EiAhsiC0IBgyEMIApQBEBBBCANUA0BGiACQbMIayECQgEhCiAMUAwBC0KAgICAgICAICALQgGGIAtCgICAgICAgAhRIgUbIQtCAkIBIAUbIQpBy3dBzHcgBRsgAmohAiAMUAshBSAAIAI7AXggACAKNwNwIABCATcDaCAAIAs3A2AgACAFOgB6An8CQAJAAkACQCAFQf8BcSICQQFNBEBB6rPFAEEBIAlCAFMiAhshBUHqs8UAQciBwgAg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AnQiACgCwKFJIAAoAqShSSABKAIEKAIMEQAAC+0DAQp/IwBBEGsiAyQAIwBBoANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIEIAQoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAUEIaiAAQQRqQQAQdgJ/IAEoAggiCUECRgRAIAEoAgwhAiABQQA2ApgDIAFCgICAgBA3ApADIAFBnJPBADYC0AEgAUKggICADjcC1AEgASABQZADajYCzAEgAiABQcwBahCvBA0FIAEoApADIQUgASgClAMiCCABKAKYAxDsCCEHIAUEQCAIQQRrKAIAIgZBeHEiCkEEQQggBkEDcSIGGyAFakkNByAGQQAgCiAFQSdqSxsNCCAIEKICCyACIAIoAgAoAgARAwBBAAwBCyABQcwBaiICIAFBCGpBxAH8CgAAIAIQ0QELIQIgACAAKAIAQQFrNgIAIAQgBCgCAEEBayIANgIAIABFBEAgBBDkBgsgAyAHNgIEIAMgAjYCACADIAlBAkY2AgggAUGgA2okAAwGCxCOCgsACxCQCgALQaCexgBBNyABQZ8DakG0k8EAQdiexgAQ4AYAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgAygCACADKAIEIAMoAgggA0EQaiQAC5oFAQp/IwBBEGsiAyQAIwBBsANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIFIAUoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAC0AXCICQQJHBEAgAUEgaiAAQdgAaigCADYCACABQRhqIABB0ABqKQIANwMAIAFBBmogAEHfAGotAAA6AAAgASAA/QACQP0LAwggASAALwBdOwEECyABQfgBaiABQSBqKAIANgIAIAFB8AFqIAFBGGopAwA3AwAgAUH/AWogAUEGai0AADoAACABIAH9AAMI/QsD4AEgASACOgD8ASABIAEvAQQ7AP0BIAFBJGogAEEEakEAIAFB4AFqIgQQcgJ/IAEoAiQiCUECRgRAIAEoAighAiABQQA2AqgDIAFCgICAgBA3AqADIAFBnJPBADYC5AEgAUKggICADjcC6AEgASABQaADajYC4AEgAiAEEK8EDQUgASgCoAMhBCAB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CxCQCgALLAAgASgCACAAKAIALQAAaEECdCIAKAL0h0kgACgC4IdJIAEoAgQoAgwRAAALLAAgASgCACAAKAIALQAAaEECdCIAKAKEjkkgACgC8I1JIAEoAgQoAgwRAAALLgAgAEEcakEAIAEpAgBC2v2W/+no6PrBAIUgASkCCELW+4aRyMDiv/4AhYRQGwssACAAQRxqQQAgASkCAELtwsSbx9P/rT+FIAEpAghC/J7N1v6Dwrh+hYRQGwsuACAAQRxqQQAgASkCAELtuq22zYXU9eMAhSABKQIIQviCmb2V7sbFuX+FhFAbCywAIABBHGpBACABKQIAQvep0+7yobOVe4UgASkCCEKWuaPa9sSH1CeFhFAbCysAIAEoAgAgACgCAC0AAEECdCIAKALohkkgACgCqIZJIAEoAgQoAgwRAAALKQAgASgCACAALQAAaEECdCIAKAKciEkgACgCiIhJIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAqiJSSAAKALoiEkgASgCBCgCDBEAAAslACAARQRAQa35xABBMhCPCgALIAAgAiADIAQgBSABKAIQEQ8ACysAIAEoAgAgACgCAC0AAEECdCIAKALUjUkgACgCuI1JIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAtiOSSAAKAKYjkkgASgCBCgCDBEAAAsrACABKAIAIAAoAgAtAABBAnQiACgC0JFJIAAoAryRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQp6ptofpq8f75ACFIAEpAghChJXY5rmb/qdphYRQGwsrACABKAIAIAAoAgAtAABBAnQiACgC+JFJIAAoAuSRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQvXXvMnIzNazOoUgASkCCEL+28ub8+W5xvUAhYRQGwsuACAAQSBqQQAgASkCAELhypSvjYKC2fIAhSABKQIIQqbKhrK+ypOwu3+FhFAbCy0AIABBHGpBACABKQIAQpLXooDhkqzi9QCFIAEpAghClJ2A4Jq0sLALhYRQGwslACAAQYiWwQA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAK87EEgACgClOxBIAEoAgQoAgwRAAALKAAgASgCACAALQAAQQJ0IgAoAtDtQSAAKAKc7UEgASgCBCgCDBEAAAshACAAQcDOxAA2AgQgACABQQRqQQAgAS0AAEEkRhs2AgALKAAgASgCACAALQAAQQJ0IgAoAsyISSAAKAKwiEkgASgCBCgCDBEAAAsoACABKAIAIAAtAABBAnQiACgCsIpJIAAoAuiJSSABKAIEKAIMEQAACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQsACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWUACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWcACygAIAEoAgAgAC0AAEECdCIAKALwmEkgACgCqJhJIAEoAgQoAgwRAAALIgAgASgCKEECRwRAIAAgASkC3AI3AwAPC0GsmMcAEN0JAAslACAAQailxwA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAKEo0kgACgC3KFJIAEoAgQoAgwRAAALJwAgACgCAC0AAEUEQCABQfKzxQBBBRCXAw8LIAFB97PFAEEEEJcDCyQAIAAtAABFBEAgAUHys8UAQQUQlwMPCyABQfezxQBBBBCXAwshACAARQRAQa35xABBMhCPCgALIAAgAiADIAEoAhARBQALIQAgAEUEQEGt+cQAQTIQjwoACyAAIAIgAyABKAIQEQAACyEAIAEoAgAgAC0AAEECdCgCiOxBQQEgASgCBCgCDBEAAAsiACABIAAtAABBAnQiACgCiIZJIAAoAuiFSSACKAIMEQAACx4AIABBwM7EADYCBCAAQQAgAUEEaiABLQAAGzYCAAscACABIAAoAgAiAEEEaigCACAAQQhqKAIAEJcDCx8AIABFBEBBrfnEAEEyEI8KAAsgACACIAEoAhARAgALthQBEn8Q2gQiCyABJgECfyAAIQ0Q2gQiEiACJgEgCyETIwBBQGoiByQAIAsQuAohAEHUtMkAKAIARQRAAkBBkLXJACgCACELQYy1yQAoAgAhBEGMtckAQoCAgIDAADcCAEGEtckAKAIAIQhBhLXJAEIE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ACgCACEHIA1BACADEOEIIgAQuAohCSAEIAM2AhggBCAJNgIMIAMgCUcNASAAIAcgAxDgCSAAQYQISQ0CIAAQmwcMAgtBACADIABB3OvAABDqBwALDAELIAhBhAhPBEAgCBCbBwtBrLTJAEGstMkAKAIAQQFqNgIAIA1BhAhPBEAgDRCbBwsgDkGECE8EQCAOEJsHCyAEQUBrJAAgAwwBCyAEQQA2AihBACAEQQxqIARBGGogBEEoakHg+cQAEPUHAAsLHAAgAEEEahDqAiAAKAIkIgAgACgCACgCABEDAAscACAAKAIAIgAoAgAgASAAQQRqKAIAKAIQEQIACxwAIAAoAgAiACgCACABIABBBGooAgAoAgwRAgALFAAgACAAIAEgACABXRsgASABXBsLFAAgASABIAAgACABXRsgACAAXBsLGwEBbyAAJQEgASACEAAhAxDaBCIAIAMmASAACxsBAW8gACUBIAElARAJIQIQ2gQiACACJgEgAAscAQFvIAAlASABJQEgARCbByACJQEgAhCbBxALCx8AQYi7yQAtAABFBEBBiLvJAEEBOgAACyAAQQE2AgALHQAgASAALQAAQQJ0IgAoAqSESSAAKAKQhEkQlwMLHAAgASgCACAAKAIAIAAoAgQgASgCBCgCDBEAAAsZACABIAAoAgAiACgCACAAQQRqKAIAEJcDCxkBAW8gACUBIAEQDCECENoEIgAgAiYBIAALFwAgACgCACABIAAoAgRBDGooAgARAgALFQAgACgCACIAQYQITwRAIAAQmwcLCxcBAW8gACABEA8hAhDaBCIAIAImASAACxcBAW8gACABECwhAhDaBCIAIAImASAACxYAIAEgACgCACIAKAIAIAAoAgQQlwMLGQAgASgCAEGQl8cAQRMgASgCBCgCDBEAAAsZACABKAIAQdmXxwBBFyABKAIEKAIMEQAACxkAIAEoAgBB6ZLGAEEIIAEoAgQoAgwRAAALGQAgASgCAEGjl8cAQRAgASgCBCgCDBEAAAsZACABKAIAQaTlwABBFCABKAIEKAIMEQAACxkAIAEoAgBB5ZLGAEEEIAEoAgQoAgwRAAALGQAgASgCAEGilscAQQwgASgCBCgCDBEAAAsZACABKAIAQYWQxgBBAyABKAIEKAIMEQAACxkAIAEoAgBB8JfHAEEUIAEoAgQoAgwR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AgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOQGCwwDCxCOCgsACxCQCgALC4gBAQN/ENoEIgMgASYBAkACQAJAIAAEQCAAQQhrIgIgAigCAEEBaiIENgIAIARFDQEgACgCAA0CIABBfzYCACAAQQhqKAIAIABBDGooAgAgAxCtAyAAIAAoAgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOMGCwwDCxCOCgsACxCQCgALCxEAIAEgACgCACAAKAIEEJcDCxMAIABBKDYCBCAAQZifxwA2AgALEQAgASAAKAIEIAAoAggQlwMLEwAgAEHomsEANgIEIAAgATYCAAsTACAAQaSbwQA2AgQgACABNgIACxMAIABB4JvBADYCBCAAIAE2AgALEwAgAEGMnMEANgIEIAAgATYCAAsTACAAQcicwQA2AgQgACABNgIACxMAIABBhJ3BADYCBCAAIAE2AgALEwAgAEHAncEANgIEIAAgATYCAAsTACAAQfydwQA2AgQgACABNgIACxEAIAAoAgQgACgCCCABELUCCxEAIAEoAgAgASgCBCAAEMEDCxwAIABBmLvP7AM2AgggAELQ5+byk+vFmz83AgALEQAgACgCACAAKAIEIAEQtQILEwAgAEHMs8cANgIEIAAgATYCAAsTACAAQdyxxwA2AgQgACABNgIACxMAIABBiLTHADYCBCAAIAE2AgALEwAgAEHUsscANgIEIAAgATYCAAsTACAAQZiyxwA2AgQgACABNgIACxMAIABBkLPHADYCBCAAIAE2AgALEwAgAEG8jMgANgIEIAAgATYCAAsWAEG4u8kAIAA2AgBBtLvJAEEBOgAACxEBAX8Q2gQiASAAJQEmASABCw4AIAAlASABJQFBABAWCw8AQayewgBBKyAAEOsHAAtpAQF/IwBBMGsiAyQAIAMgADYCBCADIAE2AgAgA0EDNgIMIANB+JvCADYCCCADQgI3AhQgAyADQQRqrUKAgICAEIQ3AyggAyADrUKAgICAEIQ3AyAgAyADQSBqNgIQIANBCGogAhCNCAALEgAgACABLQDoBC0A+J1JOgAACwwAIAAlASABIAIQAgsMACAAIAEgAiUBEAMLDQAgACUBIAElARAIGgsMACAAIAEgAiUBEBkLEQAgAEGohsEA/QACAP0LAgALEQAgAEG4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IAEgAEGAgIB8IApBAWp1IAdxvpMiAJK8BSAJC0GAgH5xviICQwByMT+UIgUgAkOMvr81lCABIAIgAJOTQxhyMT+UkiICkiIAIAAgACAAIACUIgEgASABIAEgAUNMuzEzlEMO6t21kpRDVbOKOJKUQ2ELNruSlEOrqio+kpSTIgGUIAFDAAAAwJKVIAIgACAFk5MiASAAIAGUkpOTQwAAgD+SIgC8IAhBF3RqIglBgICABE4EQCAJvgwBCyAAIAgQsAYLlCECCyACDAMLIAVDYEKiDZRDYEKiDZQMAgsgBUNgQqINlENgQqINlAwBCyAFQ8rySXGUQ8rySXGUCwsIACAAJQEQAQsIACAAJQEQCgsIACAAJQEQFQsIACAAJQEQFwsIACAAJQEQGwsIACAALQDoBAsHABAqEIUICwQAQQALBABBAQsCAAsLtK4JiAEAQYCAwAAL8WFpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdAAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvc3B6LnJzAGxpYnJhcnkvY29yZS9zcmMvc3RyL2xvc3N5LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9wbHkucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL2xlZ2FjeS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL2l0ZXIvYWRhcHRlcnMvc3RlcF9ieS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvdHdvd2F5LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvaW5mbGF0ZS93aW5kb3cucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy95dXYucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZmx0MmRlYy9zdHJhdGVneS9ncmlzdS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc2hhcmVkL3NtYWxsc29ydC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL3F1aWNrc29ydC5ycwBzcGFyay13b3JrZXItcnMvc3JjL3NvcnQucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvYm94ZWQvY29udmVydC5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9mbXQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9mbXQucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZGl5X2Zsb2F0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy90c3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2tzcGxhdC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvYW50aXNwbGF0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9nc3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2NzcGxhdC5ycwBzcGFyay13b3JrZXItcnMvc3JjL2V4dF9zcGxhdHMucnMAc3Bhcmstd29ya2VyLXJzL3NyYy9wYWNrZWRfc3BsYXRzLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvZmRlZmxhdGUtMC4zLjcvc3JjL2RlY29tcHJlc3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzcy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2NvcmUtMS4wLjIyOC9zcmMvZGUvaW1wbHMucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL3NvZ3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlL2luZnRyZWVzLnJzAGxpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9tdXRleC9ub190aHJlYWRzLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9vbmNlL25vX3RocmVhZHMucnMAbGlicmFyeS9hbGxvYy9zcmMvc3RyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaXRlci90cmFpdHMvaXRlcmF0b3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9lcnJvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZXJyb3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2xvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9nZW5lcmljL3BhY2tlZHBhaXIucnMAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9tZW1jaHIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb29wX2ZpbHRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2luZmxhdGUvd3JpdGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaXRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2luZGV4bWFwLTIuMTMuMC9zcmMvaW5uZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9vdXRwdXRfYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci91bmZpbHRlcmluZ19idWZmZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9pbWFnZXMvYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci9yZWFkX2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy92cDhfYXJpdGhtZXRpY19kZWNvZGVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvY29kZWNzL3dlYnAvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL3JlYWQvbWFnaWNfZmluZGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvY21wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9leHRyYV9maWVsZHMvZXh0ZW5kZWRfdGltZXN0YW1wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvbWV0YWRhdGEvY2ljcC5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vc3RkaW8ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2NvbW1vbi5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL29wcy9mdW5jdGlvbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL3N0cmF0ZWd5L2RyYWdvbi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ZkZWZsYXRlLTAuMy43L3NyYy9odWZmbWFuLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvaHVmZm1hbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9iaWdudW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzc190cmFuc2Zvcm0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3RyYW5zZm9ybS5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vYnVmZmVyZWQvbGluZXdyaXRlcnNoaW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3N0cmVhbS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvdGhyZWFkL2xvY2FsLnJzAGxpYnJhcnkvc3RkL3NyYy9zeW5jL2xhenlfbG9jay5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3luYy9yZWVudHJhbnRfbG9jay5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvc3luYy9vbmNlX2xvY2sucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2RlY3MvcG5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwBsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaW8vYm9ycm93ZWRfYnVmLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTcvc3JjL2V4dGVybnJlZi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvdHJhbnNmb3JtL3BhbGV0dGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvYWxsb2NhdGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9jb3JlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvaW8vaW1hZ2VfcmVhZGVyX3R5cGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9zdGFibGUucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3ByaW50YWJsZS5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvY2h1bmtfdHJlZS5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xvZF90cmVlLnJzAHNwYXJrLWxpYi9zcmMvc3BsYXRfZW5jb2RlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtMS4wLjIyOC9zcmMvcHJpdmF0ZS9kZS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZGUucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL3N5bmMvcG9pc29uL29uY2UucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvc2xpY2UucnMAbGlicmFyeS9zdGQvc3JjL2JhY2t0cmFjZS5ycwAvcnVzdC9kZXBzL2hhc2hicm93bi0wLjE1LjUvc3JjL3Jhdy9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9oYXNoYnJvd24tMC4xNi4xL3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvcGFja2VkcGFpci9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL21vZC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy9iaW5hcnlfaGVhcC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL2lvL21vZC5ycwBsaWJyYXJ5L3N0ZC9zcmMvLi4vLi4vYmFja3RyYWNlL3NyYy9zeW1ib2xpemUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWluaXpfb3hpZGUtMC44Ljkvc3JjL2luZmxhdGUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAbGlicmFyeS9zdGQvc3JjL3RocmVhZC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvdmVjL21vZC5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL21vZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvdGlueV9sb2QucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2JoYXR0X2xvZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2NyYzMyL2JyYWlkLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3ZlYy9zcGVjX2Zyb21faXRlcl9uZXN0ZWQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9leHRlbmRlZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvcmFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfanNvbi0xLjAuMTQ1L3NyYy9yZWFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9yZWFkLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjEwL3NyYy9kbG1hbGxvYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvc3BlYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvemxpYi5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NvbnNvbGVfZXJyb3JfcGFuaWNfaG9vay0wLjEuNy9zcmMvbGliLnJzAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI2L3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZS13YXNtLWJpbmRnZW4tMC42LjUvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2pzLXN5cy0wLjMuOTQvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NtYWxsdmVjLTEuMTUuMS9zcmMvbGliLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvdGV4dF9tZXRhZGF0YS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3VuaWNvZGUvdW5pY29kZV9kYXRhLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvdnA4LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvYWRhbTcucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL2NwNDM3LnJzAHNwYXJrLWxpYi9zcmMvc3ltbWF0My5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvY3JjMzIucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL3YwLnJzAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGludmFsaWQgd2luZG93IHNpemUAcmVwZWF0ZWQgY2FsbCB3aXRoIGJhZCBzdGF0ZQBpbnZhbGlkIGJsb2NrIHR5cGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABJSSoA7AUQACQAAABEAwAADQAAAOwFEAAkAAAARQMAAA0AAADsBRAAJAAAAEYDAAANAAAA7AUQACQAAABDAwAA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dWN0IFJhZE1ldGEgd2l0aCAxMSBlbGVtZW50cwAAAFY+EAAfAAAAAAAAAAgAAAAEAAAAqgAAAGZpbGVzbWluc21heHNzaGFwZXN0cnVjdCBNZWFucyB3aXRoIDQgZWxlbWVudHMAAKI+EAAcAAAAZW5jb2RpbmdzdHJ1Y3QgUXVhdHMgd2l0aCAyIGVsZW1lbnRz0D4QABwAAABzdHJ1Y3QgU2gwVjEgd2l0aCAzIGVsZW1lbnRz9D4QABwAAABjb2RlYm9va3N0cnVjdCBTaDBWMiB3aXRoIDIgZWxlbWVudHMgPxAAHAAAAHN0cnVjdCBTaE5WMSB3aXRoIDQgZWxlbWVudHNEPxAAHAAAAGJhbmRzc3RydWN0IFNoTlYyIHdpdGggMyBlbGVtZW50cwAAAG0/EAAcAAAAc3RydWN0IE1lYW5zVjEgd2l0aCA0IGVsZW1lbnRzAACUPxAAHgAAAG1lYW5zc2NhbGVzcXVhdHNzaDBzaE5zdHJ1Y3QgUGNTb2dzVjEgd2l0aCA1IGVsZW1lbnRzAAAA0j8QAB8AAABzdHJ1Y3QgUGNTb2dzVjIgd2l0aCA3IGVsZW1lbnRzAPw/EAAfAAAAc3RydWN0IFNjYWxlc1YxIHdpdGggMyBlbGVtZW50cwAkQBAAHwAAAHN0cnVjdCBTY2FsZXNWMiB3aXRoIDIgZWxlbWVudHMATEAQAB8AAABiYXNlcGF5bG9hZEJ5dGVzcHJvcGVydGllc3N0cnVjdCBSYWRDaHVua01ldGEgd2l0aCA4IGVsZW1lbnRzAAAAjkAQACMAAABnc3BsYXQAALxAEAAGAAAAb2Zmc2V0ZmlsZW5hbWVzdHJ1Y3QgUmFkQ2h1bmtSYW5nZSB3aXRoIDUgZWxlbWVudHMAANpAEAAkAAAAY29tcHJlc3Npb25taW5tYXhzdHJ1Y3QgUmFkQ2h1bmtQcm9wZXJ0eSB3aXRoIDcgZWxlbWVudHMZQRAAJwAAAGEgc2VxdWVuY2UAANsGEABmAAAAjQQAABwAAABzdHJ1Y3QgU2V0U3BsYXRFbmNvZGluZyB3aXRoIDggZWxlbWVudHMAZEEQACcAAABjZW50ZXJhbHBoYXJnYm9yaWVudGF0aW9uY2hpbGRfY291bnRjaGlsZF9zdGFydHNoMV9jb2Rlc2gyX2NvZGVzaDNfY29kZXNoX2xhYmVsAJRBEAAGAAAAmkEQAAUAAACfQRAAAwAAAME/EAAGAAAAokEQAAsAAAD4MxAAAwAAAPszEAADAAAADDYQAAMAAACtQRAACwAAALhBEAALAAAAw0EQAAgAAADLQRAACAAAANNBEAAIAAAA20EQAAgAAABmMTZmMzJfbGVieXRlc2YxNl9sZWJ5dGVzcjhyOF9kZWx0YXM4czhfZGVsdGFsbl8wcjhsbl9mMTZvY3Q4OHI4AogRAAMAAABUQhAAAwAAAFdCEAALAAAAYkIQAAsAAABtQhAAAgAAAG9CEAAIAAAAd0IQAAIAAAB5QhAACAAAAIFCEAAGAAAAh0IQAAYAAACNQhAABwAAAAdZEQADAAAABYgRAAMAQYSGwQALBQEAAACrAEGUhsEAC50NAQAAAKwAAABnegAAHEMQAAIAAACGV40hJKv8MZsV7Rqk/AqGIZHXkOAZBnMEwoE6QC5Aw02j52ZMofSR0h1OTNnv/LcqkTKWy/Ri3BOYR0yo5sJKZQUUCIJCw8J7T1YBdnE/LlNbgd6v+j3VsO5PRvEo+g1lOjkDtdomfifhYlnYlyaf521Pxr7v5E2F7c0GCuf+P/3rIsETwTMoA+inBzqud1sRrxXgIBVknwBi1PJVeIx7Aisj8rJUn2yy7loDmsKEpY45WsRC9+oSngcEldKewYpCm/q8AgqVZ7gNAZD9VtBrMivi9KBl2ERiQe5Ii0cFQ/5K+mCCgfdMVeJBLcgvjfuPC2mlqkI9RC+bfJ3D8Sr9x01mLnzmSbxuYaNTlztp3pcpSPbzROrxa62j6ZmoBdH97HYrR635JQTfXlV6a8Ovn+m9tKIApq4QCN4uyBE87DPEa42psDZg7WP62RG4/bUIrvZnfsvyWSH/wjd06x+Py+lMtpuEl8Ltn4DSZSE7nX4v+OWiItk2yi53ifdj62Zde1sqPTuH9PUU2hK7pnF7Y1zUyuJJAK68UxeBqShYoeSyUAtPu+nwuxBgZKitiEsgHhagE5RBXb1l1/jQzzzaT25jZSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAADoRBAAKgAAAL8aEABTAAAAnAAAADIAAABzFBAATwAAAC8CAAAmAAAATw8QAGYAAACkAAAAKgAAAE8PEABmAAAABAEAACUAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAABcRRAAsAAAALEAAACyAAAAsAAAALMAAABBRVMgZW5jcnlwdGVkIGZpbGVzIGNhbm5vdCBiZSBkZWNyeXB0ZWQgd2l0aG91dCB0aGUgYWVzLWNyeXB0byBmZWF0dXJlLlZhcmlhYmxlLWxlbmd0aCBmaWVsZCBleHRlbmRzIGJleW9uZCBmaWxlIGJvdW5kYXJ5QUVTIGVuY3J5cHRpb24gd2l0aG91dCBBRVMgZXh0cmEgZGF0YSBmaWVsZEFyY2hpdmUgaGVhZGVyIGlzIHRvbyBsYXJnZQDOIRAAWQAAAOYCAAAZAAAAziEQAFkAAADqAgAAEwAAAE92ZXJzaXplZCBjZW50cmFsIGRpcmVjdG9yeVN1cHBvcnQgZm9yIG11bHRpLWRpc2sgZmlsZXMgaXMgbm90IGltcGxlbWVudGVkemlwOjp0eXBlczo6WmlwQ2VudHJhbEVudHJ5QmxvY2sAAFBLAQJJbnZhbGlkIENlbnRyYWwgRGlyZWN0b3J5IGhlYWRlcnppcDo6c3BlYzo6WmlwMzJDREVCbG9ja1BLBQZJbnZhbGlkIGRpZ2l0YWwgc2lnbmF0dXJlIGhlYWRlcgAAAIAkRxAAIAAAAHppcDo6c3BlYzo6WmlwNjRDREVMb2NhdG9yQmxvY2tJbnZhbGlkIHppcDY0IGxvY2F0b3IgZGlnaXRhbCBzaWduYXR1cmUgaGVhZGVyAAAAAAAAgG9HEAAuAAAAemlwOjpzcGVjOjpaaXA2NENERUJsb2NrUEsGBkludmFsaWQgRU9DRDY0OiBpbmNvbnNpc3RlbnQgbGVuZ3RoSW52YWxpZCBFT0NENjQ6IGluY29uc2lzdGVuY3kgd2l0aCBMb2NhdG9yIGRhdGFJbnZhbGlkIEVPQ0Q2NDogaW5jb25zaXN0ZW50IG51bWJlciBvZiBmaWxlc0NvdWxkIG5vdCBmaW5kIEVPQ0Q2NE11bHRpLWRpc2sgWklQIGZpbGVzIGFyZSBub3Qgc3VwcG9ydGVkSW52YWxpZCBFT0NENjQgTG9jYXRvciBDRCBvZmZzZXRObyBDREZIIGZvdW5kSW52YWxpZCBDREZIIG9mZnNldCBpbiBFT0NESW52YWxpZCBFT0NEIGNvbW1lbnQgbGVuZ3RoQ291bGQg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AIgCAACvAQAAsAEAALEBAACKAgAAsgEAAIsCAACzAQAAtAEAALUBAAC2AQAAtwEAAJICAAC4AQAAuQEAALwBAAC9AQAAxAEAAMYBAADFAQAAxgEAAMcBAADJAQAAyAEAAMkBAADKAQAAzAEAAMsBAADMAQAAzQEAAM4BAADPAQAA0AEAANEBAADSAQAA0wEAANQBAADVAQAA1gEAANcBAADYAQAA2QEAANoBAADbAQAA3AEAAN4BAADfAQAA4AEAAOEBAADiAQAA4wEAAOQBAADlAQAA5gEAAOcBAADoAQAA6QEAAOoBAADrAQAA7AEAAO0BAADuAQAA7wEAAPEBAADzAQAA8gEAAPMBAAD0AQAA9QEAAPYBAACVAQAA9wEAAL8BAAD4AQAA+QEAAPoBAAD7AQAA/AEAAP0BAAD+AQAA/wEAAAACAAABAgAAAgIAAAMCAAAEAgAABQIAAAYCAAAHAgAACAIAAAkCAAAKAgAACwIAAAwCAAANAgAADgIAAA8CAAAQAgAAEQIAABICAAATAgAAFAIAABUCAAAWAgAAFwIAABgCAAAZAgAAGgIAABsCAAAcAgAAHQIAAB4CAAAfAgAAIAIAAJ4BAAAiAgAAIwIAACQCAAAlAgAAJgIAACcCAAAoAgAAKQIAACoCAAArAgAALAIAAC0CAAAuAgAALwIAADACAAAxAgAAMgIAADMCAAA6AgAAZSwAADsCAAA8AgAAPQIAAJoBAAA+AgAAZiwAAEECAABCAgAAQwIAAIABAABEAgAAiQIAAEUCAACMAgAARgIAAEcCAABIAgAASQIAAEoCAABLAgAATAIAAE0CAABOAgAATwIAAHADAABxAwAAcgMAAHMDAAB2AwAAdwMAAH8DAADzAwAAhgMAAKwDAACIAwAArQMAAIkDAACuAwAAigMAAK8DAACMAwAAzAMAAI4DAADNAwAAjwMAAM4DAACRAwAAsQMAAJIDAACyAwAAkwMAALMDAACUAwAAtAMAAJUDAAC1AwAAlgMAALYDAACXAwAAtwMAAJgDAAC4AwAAmQMAALkDAACaAwAAugMAAJsDAAC7AwAAnAMAALwDAACdAwAAvQMAAJ4DAAC+AwAAnwMAAL8DAACgAwAAwAMAAKEDAADBAwAAowMAAMMDAACkAwAAxAMAAKUDAADFAwAApgMAAMYDAACnAwAAxwMAAKgDAADIAwAAqQMAAMkDAACqAwAAygMAAKsDAADLAwAAzwMAANcDAADYAwAA2QMAANoDAADbAwAA3AMAAN0DAADeAwAA3wMAAOADAADhAwAA4gMAAOMDAADkAwAA5QMAAOYDAADnAwAA6AMAAOkDAADqAwAA6wMAAOwDAADtAwAA7gMAAO8DAAD0AwAAuAMAAPcDAAD4AwAA+QMAAPIDAAD6AwAA+wMAAP0DAAB7AwAA/gMAAHwDAAD/AwAAfQMAAAAEAABQBAAAAQQAAFEEAAACBAAAUgQAAAMEAABTBAAABAQAAFQEAAAFBAAAVQQAAAYEAABWBAAABwQAAFcEAAAIBAAAWAQAAAkEAABZBAAACgQAAFoEAAALBAAAWwQAAAwEAABcBAAADQQAAF0EAAAOBAAAXgQAAA8EAABfBAAAEAQAADAEAAARBAAAMQQAABIEAAAyBAAAEwQAADMEAAAUBAAANAQAABUEAAA1BAAAFgQAADYEAAAXBAAANwQAABgEAAA4BAAAGQQAADkEAAAaBAAAOgQAABsEAAA7BAAAHAQAADwEAAAdBAAAPQQAAB4EAAA+BAAAHwQAAD8EAAAgBAAAQAQAACEEAABBBAAAIgQAAEIEAAAjBAAAQwQAACQEAABEBAAAJQQAAEUEAAAmBAAARgQAACcEAABHBAAAKAQAAEgEAAApBAAASQQAACoEAABKBAAAKwQAAEsEAAAsBAAATAQAAC0EAABNBAAALgQAAE4EAAAvBAAATwQAAGAEAABhBAAAYgQAAGMEAABkBAAAZQQAAGYEAABnBAAAaAQAAGkEAABqBAAAawQAAGwEAABtBAAAbgQAAG8EAABwBAAAcQQAAHIEAABzBAAAdAQAAHUEAAB2BAAAdwQAAHgEAAB5BAAAegQAAHsEAAB8BAAAfQQAAH4EAAB/BAAAgAQAAIEEAACKBAAAiwQAAIwEAACNBAAAjgQAAI8EAACQBAAAkQQAAJIEAACTBAAAlAQAAJUEAACWBAAAlwQAAJgEAACZBAAAmgQAAJsEAACcBAAAnQQAAJ4EAACfBAAAoAQAAKEEAACiBAAAowQAAKQEAAClBAAApgQAAKcEAACoBAAAqQQAAKoEAACrBAAArAQAAK0EAACuBAAArwQAALAEAACxBAAAsgQAALMEAAC0BAAAtQQAALYEAAC3BAAAuAQAALkEAAC6BAAAuwQAALwEAAC9BAAAvgQAAL8EAADABAAAzwQAAMEEAADCBAAAwwQAAMQEAADFBAAAxgQAAMcEAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAADOBAAA0AQAANEEAADSBAAA0wQAANQEAADVBAAA1gQAANcEAADYBAAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAA4gQAAOMEAADkBAAA5QQAAOYEAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAO8EAADwBAAA8QQAAPIEAADzBAAA9AQAAPUEAAD2BAAA9wQAAPgEAAD5BAAA+gQAAPsEAAD8BAAA/QQAAP4EAAD/BAAAAAUAAAEFAAACBQAAAwUAAAQFAAAFBQAABgUAAAcFAAAIBQAACQUAAAoFAAALBQAADAUAAA0FAAAOBQAADwUAABAFAAARBQAAEgUAABMFAAAUBQAAFQUAABYFAAAXBQAAGAUAABkFAAAaBQAAGwUAABwFAAAdBQAAHgUAAB8FAAAgBQAAIQUAACIFAAAjBQAAJAUAACUFAAAmBQAAJwUAACgFAAApBQAAKgUAACsFAAAsBQAALQUAAC4FAAAvBQAAMQUAAGEFAAAyBQAAYgUAADMFAABjBQAANAUAAGQFAAA1BQAAZQUAADYFAABmBQAANwUAAGcFAAA4BQAAaAUAADkFAABpBQAAOgUAAGoFAAA7BQAAawUAADwFAABsBQAAPQUAAG0FAAA+BQAAbgUAAD8FAABvBQAAQAUAAHAFAABBBQAAcQUAAEIFAAByBQAAQwUAAHMFAABEBQAAdAUAAEUFAAB1BQAARgUAAHYFAABHBQAAdwUAAEgFAAB4BQAASQUAAHkFAABKBQAAegUAAEsFAAB7BQAATAUAAHwFAABNBQAAfQUAAE4FAAB+BQAATwUAAH8FAABQBQAAgAUAAFEFAACBBQAAUgUAAIIFAABTBQAAgwUAAFQFAACEBQAAVQUAAIUFAABWBQAAhgUAAKAQAAAALQAAoRAAAAEtAACiEAAAAi0AAKMQAAADLQAApBAAAAQtAAClEAAABS0AAKYQAAAGLQAApxAAAActAACoEAAACC0AAKkQAAAJLQAAqhAAAAotAACrEAAACy0AAKwQAAAMLQAArRAAAA0tAACuEAAADi0AAK8QAAAPLQAAsBAAABAtAACxEAAAES0AALIQAAASLQAAsxAAABMtAAC0EAAAFC0AALUQAAAVLQAAthAAABYtAAC3EAAAFy0AALgQAAAYLQAAuRAAABktAAC6EAAAGi0AALsQAAAbLQAAvBAAABwtAAC9EAAAHS0AAL4QAAAeLQAAvxAAAB8tAADAEAAAIC0AAMEQAAAhLQAAwhAAACItAADDEAAAIy0AAMQQAAAkLQAAxRAAACUtAADHEAAAJy0AAM0QAAAtLQAAoBMAAHCrAAChEwAAcasAAKITAAByqwAAoxMAAHOrAACkEwAAdKsAAKUTAAB1qwAAphMAAHarAACnEwAAd6sAAKgTAAB4qwAAqRMAAHmrAACqEwAAeqsAAKsTAAB7qwAArBMAAHyrAACtEwAAfasAAK4TAAB+qwAArxMAAH+rAACwEwAAgKsAALETAACBqwAAshMAAIKrAACzEwAAg6sAALQTAACEqwAAtRMAAIWrAAC2EwAAhqsAALcTAACHqwAAuBMAAIirAAC5EwAAiasAALoTAACKqwAAuxMAAIurAAC8EwAAjKsAAL0TAACNqwAAvhMAAI6rAAC/EwAAj6sAAMATAACQqwAAwRMAAJGrAADCEwAAkqsAAMMTAACTqwAAxBMAAJSrAADFEwAAlasAAMYTAACWqwAAxxMAAJerAADIEwAAmKsAAMkTAACZqwAAyhMAAJqrAADLEwAAm6sAAMwTAACcqwAAzRMAAJ2rAADOEwAAnqsAAM8TAACfqwAA0BMAAKCrAADREwAAoasAANITAACiqwAA0xMAAKOrAADUEwAApKsAANUTAAClqwAA1hMAAKarAADXEwAAp6sAANgTAACoqwAA2RMAAKmrAADaEwAAqqsAANsTAACrqwAA3BMAAKyrAADdEwAArasAAN4TAACuqwAA3xMAAK+rAADgEwAAsKsAAOETAACxqwAA4hMAALKrAADjEwAAs6sAAOQTAAC0qwAA5RMAALWrAADmEwAAtqsAAOcTAAC3qwAA6BMAALirAADpEwAAuasAAOoTAAC6qwAA6xMAALurAADsEwAAvKsAAO0TAAC9qwAA7hMAAL6rAADvEwAAv6sAAPATAAD4EwAA8RMAAPkTAADyEwAA+hMAAPMTAAD7EwAA9BMAAPwTAAD1EwAA/RMAAIkcAACKHAAAkBwAANAQAACRHAAA0RAAAJIcAADSEAAAkxwAANMQAACUHAAA1BAAAJUcAADVEAAAlhwAANYQAACXHAAA1xAAAJgcAADYEAAAmRwAANkQAACaHAAA2hAAAJscAADbEAAAnBwAANwQAACdHAAA3RAAAJ4cAADeEAAAnxwAAN8QAACgHAAA4BAAAKEcAADhEAAAohwAAOIQAACjHAAA4xAAAKQcAADkEAAApRwAAOUQAACmHAAA5hAAAKccAADnEAAAqBwAAOgQAACpHAAA6RAAAKocAADqEAAAqxwAAOsQAACsHAAA7BAAAK0cAADtEAAArhwAAO4QAACvHAAA7xAAALAcAADwEAAAsRwAAPEQAACyHAAA8hAAALMcAADzEAAAtBwAAPQQAAC1HAAA9RAAALYcAAD2EAAAtxwAAPcQAAC4HAAA+BAAALkcAAD5EAAAuhwAAPoQAAC9HAAA/RAAAL4cAAD+EAAAvxwAAP8QAAAAHgAAAR4AAAIeAAADHgAABB4AAAUeAAAGHgAABx4AAAgeAAAJHgAACh4AAAseAAAMHgAADR4AAA4eAAAPHgAAEB4AABEeAAASHgAAEx4AABQeAAAVHgAAFh4AABceAAAYHgAAGR4AABoeAAAbHgAAHB4AAB0eAAAeHgAAHx4AACAeAAAhHgAAIh4AACMeAAAkHgAAJR4AACYeAAAnHgAAKB4AACkeAAAqHgAAKx4AACweAAAtHgAALh4AAC8eAAAwHgAAMR4AADIeAAAzHgAANB4AADUeAAA2HgAANx4AADgeAAA5HgAAOh4AADseAAA8HgAAPR4AAD4eAAA/HgAAQB4AAEEeAABCHgAAQx4AAEQeAABFHgAARh4AAEceAABIHgAASR4AAEoeAABLHgAATB4AAE0eAABOHgAATx4AAFAeAABRHgAAUh4AAFMeAABUHgAAVR4AAFYeAABXHgAAWB4AAFkeAABaHgAAWx4AAFweAABdHgAAXh4AAF8eAABgHgAAYR4AAGIeAABjHgAAZB4AAGUeAABmHgAAZx4AAGgeAABpHgAAah4AAGseAABsHgAAbR4AAG4eAABvHgAAcB4AAHEeAAByHgAAcx4AAHQeAAB1HgAAdh4AAHceAAB4HgAAeR4AAHoeAAB7HgAAfB4AAH0eAAB+HgAAfx4AAIAeAACBHgAAgh4AAIMeAACEHgAAhR4AAIYeAACHHgAAiB4AAIkeAACKHgAAix4AAIweAACNHgAAjh4AAI8eAACQHgAAkR4AAJIeAACTHgAAlB4AAJUeAACeHgAA3wAAAKAeAAChHgAAoh4AAKMeAACkHgAApR4AAKYeAACnHgAAqB4AAKkeAACqHgAAqx4AAKweAACtHgAArh4AAK8eAACwHgAAsR4AALIeAACzHgAAtB4AALUeAAC2HgAAtx4AALgeAAC5HgAAuh4AALseAAC8HgAAvR4AAL4eAAC/HgAAwB4AAMEeAADCHgAAwx4AAMQeAADFHgAAxh4AAMceAADIHgAAyR4AAMoeAADLHgAAzB4AAM0eAADOHgAAzx4AANAeAADRHgAA0h4AANMeAADUHgAA1R4AANYeAADXHgAA2B4AANkeAADaHgAA2x4AANweAADdHgAA3h4AAN8eAADgHgAA4R4AAOIeAADjHgAA5B4AAOUeAADmHgAA5x4AAOgeAADpHgAA6h4AAOseAADsHgAA7R4AAO4eAADvHgAA8B4AAPEeAADyHgAA8x4AAPQeAAD1HgAA9h4AAPceAAD4HgAA+R4AAPoeAAD7HgAA/B4AAP0eAAD+HgAA/x4AAAgfAAAAHwAACR8AAAEfAAAKHwAAAh8AAAsfAAADHwAADB8AAAQfAAANHwAABR8AAA4fAAAGHwAADx8AAAcfAAAYHwAAEB8AABkfAAARHwAAGh8AABIfAAAbHwAAEx8AABwfAAAUHwAAHR8AABUfAAAoHwAAIB8AACkfAAAhHwAAKh8AACIfAAArHwAAIx8AACwfAAAkHwAALR8AACUfAAAuHwAAJh8AAC8fAAAnHwAAOB8AADAfAAA5HwAAMR8AADofAAAyHwAAOx8AADMfAAA8HwAANB8AAD0fAAA1HwAAPh8AADYfAAA/HwAANx8AAEgfAABAHwAASR8AAEEfAABKHwAAQh8AAEsfAABDHwAATB8AAEQfAABNHwAARR8AAFkfAABRHwAAWx8AAFMfAABdHwAAVR8AAF8fAABXHwAAaB8AAGAfAABpHwAAYR8AAGofAABiHwAAax8AAGMfAABsHwAAZB8AAG0fAABlHwAAbh8AAGYfAABvHwAAZx8AAIgfAACAHwAAiR8AAIEfAACKHwAAgh8AAIsfAACDHwAAjB8AAIQfAACNHwAAhR8AAI4fAACGHwAAjx8AAIcfAACYHwAAkB8AAJkfAACRHwAAmh8AAJIfAACbHwAAkx8AAJwfAACUHwAAnR8AAJUfAACeHwAAlh8AAJ8fAACXHwAAqB8AAKAfAACpHwAAoR8AAKofAACiHwAAqx8AAKMfAACsHwAApB8AAK0fAAClHwAArh8AAKYfAACvHwAApx8AALgfAACwHwAAuR8AALEfAAC6HwAAcB8AALsfAABxHwAAvB8AALMfAADIHwAAch8AAMkfAABzHwAAyh8AAHQfAADLHwAAdR8AAMwfAADDHwAA2B8AANAfAADZHwAA0R8AANofAAB2HwAA2x8AAHcfAADoHwAA4B8AAOkfAADhHwAA6h8AAHofAADrHwAAex8AAOwfAADlHwAA+B8AAHgfAAD5HwAAeR8AAPofAAB8HwAA+x8AAH0fAAD8HwAA8x8AACYhAADJAwAAKiEAAGsAAAArIQAA5QAAADIhAABOIQAAYCEAAHAhAABhIQAAcSEAAGIhAAByIQAAYyEAAHMhAABkIQAAdCEAAGUhAAB1IQAAZiEAAHYhAABnIQAAdyEAAGghAAB4IQAAaSEAAHkhAABqIQAAeiEAAGshAAB7IQAAbCEAAHwhAABtIQAAfSEAAG4hAAB+IQAAbyEAAH8hAACDIQAAhCEAALYkAADQJAAAtyQAANEkAAC4JAAA0iQAALkkAADTJAAAuiQAANQkAAC7JAAA1SQAALwkAADWJAAAvSQAANckAAC+JAAA2CQAAL8kAADZJAAAwCQAANokAADBJAAA2yQAAMIkAADcJAAAwyQAAN0kAADEJAAA3iQAAMUkAADfJAAAxiQAAOAkAADHJAAA4SQAAMgkAADiJAAAySQAAOMkAADKJAAA5CQAAMskAADlJAAAzCQAAOYkAADNJAAA5yQAAM4kAADoJAAAzyQAAOkkAAAALAAAMCwAAAEsAAAxLAAAAiwAADIsAAADLAAAMywAAAQsAAA0LAAABSwAADUsAAAGLAAANiwAAAcsAAA3LAAACCwAADgsAAAJLAAAOSwAAAosAAA6LAAACywAADssAAAMLAAAPCwAAA0sAAA9LAAADiwAAD4sAAAPLAAAPywAABAsAABALAAAESwAAEEsAAASLAAAQiwAABMsAABDLAAAFCwAAEQsAAAVLAAARSwAABYsAABGLAAAFywAAEcsAAAYLAAASCwAABksAABJLAAAGiwAAEosAAAbLAAASywAABwsAABMLAAAHSwAAE0sAAAeLAAATiwAAB8sAABPLAAAICwAAFAsAAAhLAAAUSwAACIsAABSLAAAIywAAFMsAAAkLAAAVCwAACUsAABVLAAAJiwAAFYsAAAnLAAAVywAACgsAABYLAAAKSwAAFksAAAqLAAAWiwAACssAABbLAAALCwAAFwsAAAtLAAAXSwAAC4sAABeLAAALywAAF8sAABgLAAAYSwAAGIsAABrAgAAYywAAH0dAABkLAAAfQIAAGcsAABoLAAAaSwAAGosAABrLAAAbCwAAG0sAABRAgAAbiwAAHECAABvLAAAUAIAAHAsAABSAgAAciwAAHMsAAB1LAAAdiwAAH4sAAA/AgAAfywAAEACAACALAAAgSwAAIIsAACDLAAAhCwAAIUsAACGLAAAhywAAIgsAACJLAAAiiwAAIssAACMLAAAjSwAAI4sAACPLAAAkCwAAJEsAACSLAAAkywAAJQsAACVLAAAliwAAJcsAACYLAAAmSwAAJosAACbLAAAnCwAAJ0sAACeLAAAnywAAKAsAAChLAAAoiwAAKMsAACkLAAApSwAAKYsAACnLAAAqCwAAKksAACqLAAAqywAAKwsAACtLAAAriwAAK8sAACwLAAAsSwAALIsAACzLAAAtCwAALUsAAC2LAAAtywAALgsAAC5LAAAuiwAALssAAC8LAAAvSwAAL4sAAC/LAAAwCwAAMEsAADCLAAAwywAAMQsAADFLAAAxiwAAMcsAADILAAAySwAAMosAADLLAAAzCwAAM0sAADOLAAAzywAANAsAADRLAAA0iwAANMsAADULAAA1SwAANYsAADXLAAA2CwAANksAADaLAAA2ywAANwsAADdLAAA3iwAAN8sAADgLAAA4SwAAOIsAADjLAAA6ywAAOwsAADtLAAA7iwAAPIsAADzLAAAQKYAAEGmAABCpgAAQ6YAAESmAABFpgAARqYAAEemAABIpgAASaYAAEqmAABLpgAATKYAAE2mAABOpgAAT6YAAFCmAABRpgAAUqYAAFOmAABUpgAAVaYAAFamAABXpgAAWKYAAFmmAABapgAAW6YAAFymAABdpgAAXqYAAF+mAABgpgAAYaYAAGKmAABjpgAAZKYAAGWmAABmpgAAZ6YAAGimAABppgAAaqYAAGumAABspgAAbaYAAICmAACBpgAAgqYAAIOmAACEpgAAhaYAAIamAACHpgAAiKYAAImmAACKpgAAi6YAAIymAACNpgAAjqYAAI+mAACQpgAAkaYAAJKmAACTpgAAlKYAAJWmAACWpgAAl6YAAJimAACZpgAAmqYAAJumAAAipwAAI6cAACSnAAAlpwAAJqcAACenAAAopwAAKacAACqnAAArpwAALKcAAC2nAAAupwAAL6cAADKnAAAzpwAANKcAADWnAAA2pwAAN6cAADinAAA5pwAAOqcAADunAAA8pwAAPacAAD6nAAA/pwAAQKcAAEGnAABCpwAAQ6cAAESnAABFpwAARqcAAEenAABIpwAASacAAEqnAABLpwAATKcAAE2nAABOpwAAT6cAAFCnAABRpwAAUqcAAFOnAABUpwAAVacAAFanAABXpwAAWKcAAFmnAABapwAAW6cAAFynAABdpwAAXqcAAF+nAABgpwAAYacAAGKnAABjpwAAZKcAAGWnAABmpwAAZ6cAAGinAABppwAAaqcAAGunAABspwAAbacAAG6nAABvpwAAeacAAHqnAAB7pwAAfKcAAH2nAAB5HQAAfqcAAH+nAACApwAAgacAAIKnAACDpwAAhKcAAIWnAACGpwAAh6cAAIunAACMpwAAjacAAGUCAACQpwAAkacAAJKnAACTpwAAlqcAAJenAACYpwAAmacAAJqnAACbpwAAnKcAAJ2nAACepwAAn6cAAKCnAAChpwAAoqcAAKOnAACkpwAApacAAKanAACnpwAAqKcAAKmnAACqpwAAZgIAAKunAABcAgAArKcAAGECAACtpwAAbAIAAK6nAABqAgAAsKcAAJ4CAACxpwAAhwIAALKnAACdAgAAs6cAAFOrAAC0pwAAtacAALanAAC3pwAAuKcAALmnAAC6pwAAu6cAALynAAC9pwAAvqcAAL+nAADApwAAwacAAMKnAADDpwAAxKcAAJSnAADFpwAAggIAAManAACOHQAAx6cAAMinAADJpwAAyqcAAMunAABkAgAAzKcAAM2nAADQpwAA0acAANanAADXpwAA2KcAANmnAADapwAA26cAANynAACbAQAA9acAAPanAAAh/wAAQf8AACL/AABC/wAAI/8AAEP/AAAk/wAARP8AACX/AABF/wAAJv8AAEb/AAAn/wAAR/8AACj/AABI/wAAKf8AAEn/AAAq/wAASv8AACv/AABL/wAALP8AAEz/AAAt/wAATf8AAC7/AABO/wAAL/8AAE//AAAw/wAAUP8AADH/AABR/wAAMv8AAFL/AAAz/wAAU/8AADT/AABU/wAANf8AAFX/AAA2/wAAVv8AADf/AABX/wAAOP8AAFj/AAA5/wAAWf8AADr/AABa/wAAAAQBACgEAQABBAEAKQQBAAIEAQAqBAEAAwQBACsEAQAEBAEALAQBAAUEAQAtBAEABgQBAC4EAQAHBAEALwQBAAgEAQAwBAEACQQBADEEAQAKBAEAMgQBAAsEAQAzBAEADAQBADQEAQANBAEANQQBAA4EAQA2BAEADwQBADcEAQAQBAEAOAQBABEEAQA5BAEAEgQBADoEAQATBAEAOwQBABQEAQA8BAEAFQQBAD0EAQAWBAEAPgQBABcEAQA/BAEAGAQBAEAEAQAZBAEAQQQBABoEAQBCBAEAGwQBAEMEAQAcBAEARAQBAB0EAQBFBAEAHgQBAEYEAQAfBAEARwQBACAEAQBIBAEAIQQBAEkEAQAiBAEASgQBACMEAQBLBAEAJAQBAEwEAQAlBAEATQQBACYEAQBOBAEAJwQBAE8EAQCwBAEA2AQBALEEAQDZBAEAsgQBANoEAQCzBAEA2wQBALQEAQDcBAEAtQQBAN0EAQC2BAEA3gQBALcEAQDfBAEAuAQBAOAEAQC5BAEA4QQBALoEAQDiBAEAuwQBAOMEAQC8BAEA5AQBAL0EAQDlBAEAvgQBAOYEAQC/BAEA5wQBAMAEAQDoBAEAwQQBAOkEAQDCBAEA6gQBAMMEAQDrBAEAxAQBAOwEAQDFBAEA7QQBAMYEAQDuBAEAxwQBAO8EAQDIBAEA8AQBAMkEAQDxBAEAygQBAPIEAQDLBAEA8wQBAMwEAQD0BAEAzQQBAPUEAQDOBAEA9gQBAM8EAQD3BAEA0AQBAPgEAQDRBAEA+QQBANIEAQD6BAEA0wQBAPsEAQBwBQEAlwUBAHEFAQCYBQEAcgUBAJkFAQBzBQEAmgUBAHQFAQCbBQEAdQUBAJwFAQB2BQEAnQUBAHcFAQCeBQEAeAUBAJ8FAQB5BQEAoAUBAHoFAQChBQEAfAUBAKMFAQB9BQEApAUBAH4FAQClBQEAfwUBAKYFAQCABQEApwUBAIEFAQCoBQEAggUBAKkFAQCDBQEAqgUBAIQFAQCrBQEAhQUBAKwFAQCGBQEArQUBAIcFAQCuBQEAiAUBAK8FAQCJBQEAsAUBAIoFAQCxBQEAjAUBALMFAQCNBQEAtAUBAI4FAQC1BQEAjwUBALYFAQCQBQEAtwUBAJEFAQC4BQEAkgUBALkFAQCUBQEAuwUBAJUFAQC8BQEAgAwBAMAMAQCBDAEAwQwBAIIMAQDCDAEAgwwBAMMMAQCEDAEAxAwBAIUMAQDFDAEAhgwBAMYMAQCHDAEAxwwBAIgMAQDIDAEAiQwBAMkMAQCKDAEAygwBAIsMAQDLDAEAjAwBAMwMAQCNDAEAzQwBAI4MAQDODAEAjwwBAM8MAQCQDAEA0AwBAJEMAQDRDAEAkgwBANIMAQCTDAEA0wwBAJQMAQDUDAEAlQwBANUMAQCWDAEA1gwBAJcMAQDXDAEAmAwBANgMAQCZDAEA2QwBAJoMAQDaDAEAmwwBANsMAQCcDAEA3AwBAJ0MAQDdDAEAngwBAN4MAQCfDAEA3wwBAKAMAQDgDAEAoQwBAOEMAQCiDAEA4gwBAKMMAQDjDAEApAwBAOQMAQClDAEA5QwBAKYMAQDmDAEApwwBAOcMAQCoDAEA6AwBAKkMAQDpDAEAqgwBAOoMAQCrDAEA6wwBAKwMAQDsDAEArQwBAO0MAQCuDAEA7gwBAK8MAQDvDAEAsAwBAPAMAQCxDAEA8QwBALIMAQDyDAEAUA0BAHANAQBRDQEAcQ0BAFINAQByDQEAUw0BAHMNAQBUDQEAdA0BAFUNAQB1DQEAVg0BAHYNAQBXDQEAdw0BAFgNAQB4DQEAWQ0BAHkNAQBaDQEAeg0BAFsNAQB7DQEAXA0BAHwNAQBdDQEAfQ0BAF4NAQB+DQEAXw0BAH8NAQBgDQEAgA0BAGENAQCBDQEAYg0BAIINAQBjDQEAgw0BAGQNAQCEDQEAZQ0BAIUNAQCgGAEAwBgBAKEYAQDBGAEAohgBAMIYAQCjGAEAwxgBAKQYAQDEGAEApRgBAMUYAQCmGAEAxhgBAKcYAQDHGAEAqBgBAMgYAQCpGAEAyRgBAKoYAQDKGAEAqxgBAMsYAQCsGAEAzBgBAK0YAQDNGAEArhgBAM4YAQCvGAEAzxgBALAYAQDQGAEAsRgBANEYAQCyGAEA0hgBALMYAQDTGAEAtBgBANQYAQC1GAEA1RgB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AACBHgAAgR8AAIEgAACBIQAAgSIAAIEjAACBJAAAgSUAAIEmAACBJwAAgSgAAIEpAACBKgAAgSsAAIEsAACBLQAAgS4AAIEvAACBMAAAgTEAAIEyAACBMwAAgTQAAIE1AACBNgAAgTcAAIE4AACBOQAAgToAAIE7AACBPAAAgT0AAIE+AACBPwAAgUAAAIFBAACBQgAAgUMAAIFEAACBRQAAgUYAAIFHAACBSAAAgUkAAIFKAACBSwAAgUwAAIFNAACBTgAAgU8AAIFQAACBUQAAgVIAAIFTAACBVAAAgVUAAIFWAACBVwAAgVgAAIFZAACBWgAAgVsAAIFcAACBXQAAgV4AAIFfAACBYAAAgWEAAIFiAACBYwAAgWQAAIFlAACBZgAAgWcAAIFoAACBaQAAgWoAAIFrAACBbAAAgW0AAIFuAACBbwAAgXAAAIFxAACBcgAAgXMAAIF0AACBdQAAgXYAAIF3AACBeAAAgXkAAIF6AACBewAAgXwAAIF9AACBfgAAgX8AAIGAAACBgQAAgYIAAIGDAACBhAAAgYUAAIGGAACBhwAAgYgAAIGJAACBigAAgYsAAIGMAACBjQAAgY4AAIGPAACBkAAAgZEAAIGSAACBkwAAgZQAAIGVAACBlgAAgZcAAIGYAACBmQAAgZoAAIGbAACBnAAAgZ0AAIGeAACBnwAAgaAAAIGhAACBogAAgaMAAIGkAACBpQAAgaYAAIGnAACBqAAAgakAAIGqAACBqwAAgawAAIGtAACBrgAAga8AAIGwAACBsQAAgbIAAIGzAACBtAAAgbUAAIG2AACBtwAAgbgAAIG5AACBugAAgbsAAIG8AACBvQAAgb4AAIG/AACBwAAAgcEAAIHCAACBwwAAgcQAAIHFAACBxgAAgccAAIHIAACByQAAgcoAAIHLAACBzAAAgc0AAIHOAACBzwAAgdAAAIHRAACB0gAAgdMAAIHUAACB1QAAgdYAAIHXAACB2AAAgdkAAIHaAACB2wAAgdwAAIHdAACB3gAAgd8AAIHgAACB4QAAgeIAAIHjAACB5AAAgeUAAIHmAACB5wAAgegAAIHpAACB6gAAgesAAIHsAACB7QAAge4AAIHvAACB8AAAgfEAAIHyAACB8wAAgfQAAIH1AACB9gAAgfcAAIH4AACB+QAAgfoAAIH7AACB/AAAgf0AAIH+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ZXRyaWMgaW50ZXJwcmV0YXRpb24gb2YgYSBDSUNQIGNvbG9yIHNwYWNlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGBUIxEATAAAAOiSEQABAAAAVGhlIGZpbGUgZXh0ZW5zaW9uICB3YXMgbm90IHJlY29nbml6ZWQgYXMgYW4gaW1hZ2UgZm9ybWF0AAAAsCMRABMAAADDIxEAJgAAAFRoZSBpbWFnZSBmb3JtYXQgY291bGQgbm90IGJlIGRldGVybWluZWRUaGUgaW1hZ2UgZm9ybWF0IAAAACQkEQARAAAAMCMRABEAAABUaGUgZGVjb2RlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmb3JtYXQgZmVhdHVyZSBIJBEAMAAAAFRoZSBkZWNvZGVyIGZvciAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZm9ybWF0IGZlYXR1cmVzIAAAgCQRABAAAACQJBEAJgAAAEVycgAAAAAABAAAAAQAAACtAQAARm9ybWF0RXJyb3JSaWZmU2lnbmF0dXJlSW52YWxpZFdlYnBTaWduYXR1cmVJbnZhbGlkQ2h1bmtNaXNzaW5nQ2h1bmtIZWFkZXJJbnZhbGlkUmVzZXJ2ZWRCaXRTZXRJbnZhbGlkQWxwaGFQcmVwcm9jZXNzaW5nSW52YWxpZENvbXByZXNzaW9uTWV0aG9kQWxwaGFDaHVua1NpemVNaXNtYXRjaEltYWdlVG9vTGFyZ2VGcmFtZU91dHNpZGVJbWFnZUxvc3NsZXNzU2lnbmF0dXJlSW52YWxpZFZlcnNpb25OdW1iZXJJbnZhbGlkSW52YWxpZENvbG9yQ2FjaGVCaXRzSHVmZm1hbkVycm9yQml0U3RyZWFtRXJyb3JUcmFuc2Zvcm1FcnJvclZwOE1hZ2ljSW52YWxpZE5vdEVub3VnaEluaXREYXRhQ29sb3JTcGFjZUludmFsaWRMdW1hUHJlZGljdGlvbk1vZGVJbnZhbGlkSW50cmFQcmVkaWN0aW9uTW9kZUludmFsaWRDaHJvbWFQcmVkaWN0aW9uTW9kZUludmFsaWRJbmNvbnNpc3RlbnRJbWFnZVNpemVzVW5zdXBwb3J0ZWRGZWF0dXJlSW52YWxpZFBhcmFtZXRlck1lbW9yeUxpbWl0RXhjZWVkZWRJbnZhbGlkQ2h1bmtTaXplTm9Nb3JlRnJhbWVzSW52YWxpZERpbWVuc2lvbnMAAAAABAAAAAQAAACuAQAAVHJ5UmVzZXJ2ZUVycm9yTGltaXRzRXhjZWVkZWQAAAC7AAAACAAAAAQAAAAWAAAAuwAAAAgAAAAEAAAAvAAAABYAAAAwJxEAvQAAAL4AAACyAAAAvwAAALMAAABVbnJlcHJlc2VudGFibGVJbnZhbGlkS2V5d29yZFNpemVNaXNzaW5nTnVsbFNlcGFyYXRvckluZmxhdGlvbkVycm9yT3V0T2ZEZWNvbXByZXNzaW9uU3BhY2VJbnZhbGlkQ29tcHJlc3Npb25GbGFnTWlzc2luZ0NvbXByZXNzaW9uRmxhZwAAAAAAAAQAAAAEAAAAwAAAAAAAAAAEAAAABAAAAGMAAABDcmNNaXNtYXRjaGNyY192YWxjcmNfc3VtSW52YWxpZFNpZ25hdHVyZU1pc3NpbmdGY3RsTWlzc2luZ0ltYWdlRGF0YUNodW5rQmVmb3JlSWhkckFmdGVySWRhdEJlZm9yZVBsdGVBZnRlclBsdGVPdXRzaWRlUGx0ZUlkYXREdXBsaWNhdGVDaHVua0FwbmdPcmRlcnByZXNlbnRTaG9ydFBhbGV0dGVsZW4AAAAAAAEAAAABAAAArwEAAEludmFsaWRTYml0Q2h1bmtTaXplY29sb3JfdHlwZQAAAAAAAAEAAAABAAAAsAEAAEludmFsaWRTYml0c2FtcGxlX2RlcHRoc2JpdFBhbGV0dGVSZXF1aXJlZAAAAAAAAAQAAAAEAAAAsQEAAEludmFsaWRDb2xvckJpdERlcHRoYml0X2RlcHRoQ29sb3JXaXRoQmFkVHJuc0ludmFsaWRCaXREZXB0aEludmFsaWRDb2xvclR5cGVJbnZhbGlkRGlzcG9zZU9wSW52YWxpZEJsZW5kT3BJbnZhbGlkVW5pdEludmFsaWRTcmdiUmVuZGVyaW5nSW50ZW50VW5rbm93bkNvbXByZXNzaW9uTWV0aG9kVW5rbm93bkZpbHRlck1ldGhvZFVua25vd25JbnRlcmxhY2VNZXRob2RCYWRTdWJGcmFtZUJvdW5kcwAAAAAAAAAEAAAABAAAALIBAABDb3JydXB0RmxhdGVTdHJlYW1lcnJOb01vcmVJbWFnZURhdGFCYWRUZXh0RW5jb2RpbmdGZGF0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AB4AAAB2JRAAXwAAAAsJAAAXAAAAdiUQAF8AAAAPCQAAJgAAAHYlEABfAAAAEgkAACIAAAB2JRAAXwAAAAwJAAAdAAAAdiUQAF8AAACBCAAABQAAAHYlEABfAAAAhAgAACYAAAB2JRAAXwAAAIgIAAArAAAAdiUQAF8AAACICAAAIAAAAHYlEABfAAAAJQgAAEUAAAB2JRAAXwAAADgIAAAxAAAAdiUQAF8AAAAiCAAAHgAAAHYlEABfAAAAHAgAAEEAAAAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADwAPgBAAEIARABGAEgASgBMAE4AUABSAFQAVgBYAFoAXABeAGAAYgBkAGYAaABqAGwAbgBwAHIAdAB3AHoAfQCAAIMAhgCJAIwAjwCSAJUAmACbAJ4AoQCkAKcAqgCtALEAtQC5AL0AwQDFAMkAzQDRANUA2QDdAOEA5QDqAO8A9QD5AP4AAwEIAQ0BEgEXARwBBAAFAAYABwAIAAkACgAKAAsADAANAA4ADwAQABEAEQASABMAFAAUABUAFQAWABYAFwAXABgAGQAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACUAJgAnACgAKQAqACsALAAtAC4ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWwBdAF8AYABiAGQAZQBmAGgAagBsAG4AcAByAHQAdgB6AHwAfgCAAIIAhACGAIgAigCMAI8AkQCUAJcAmgCdAHYlEABfAAAAaAgAADAAAAB2JRAAXwAAAFwIAAA7AAAAawIQAF8AAABgAAAANQAAAGsCEABfAAAAYwAAAEEAAABrAhAAXwAAAJUAAAAZAAAAawIQAF8AAACUAAAAGQAAAGsCEABfAAAAkwAAABkAAABrAhAAXwAAAJAAAAAkAAAAawIQAF8AAACPAAAAJAAAAGsCEABfAAAAeAAAABUAAABrAhAAXwAAAHcAAAAVAAAAawIQAF8AAAB2AAAAFQAA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UDggY2hyb21hIHByZWRpY3Rpb24gbW9kZTog+DsRACQAAABJbmNvbnNpc3RlbnQgaW1hZ2Ugc2l6ZXNVbnN1cHBvcnRlZCBmZWF0dXJlOiAAAAA8PBEAFQAAAEludmFsaWQgcGFyYW1ldGVyOiAAXDwRABMAAABNZW1vcnkgbGltaXQgZXhjZWVkZWRJbnZhbGlkIGNodW5rIHNpemVObyBtb3JlIGZyYW1lc2Nsb3N1cmUgaW52b2tlZCByZWN1cnNpdmVseSBvciBhZnRlciBiZWluZyBkcm9wcGVkAC0kEABcAAAAhTUAAAEAAAA3NDMyMTAvLi1n8kJD5SwrKikoJyYlJCMiITggHx4dHP+UpJWIoJut3d6GeujK1+DQ3My7t7OxqLLI4sOauK5+eL+dwqq9oqGWwY6Jq7C5p7pwr8C8nIyPe4WAk4qSct+X+dju7P3j2ub3h7Tx6fb054v18/vrycTw1pi2zbV/G9TT0tXkxamfg6xpUGJgYVHPkXRzkIKZeWuEbW58b1Jsdo1xgXd9pXVcalNIY11BT6bto8e+4dHLxtnbzur4nu//////////////////////////////////////////////////////////////////////////////////////mwEQAGcAAADZAQAAHQAAAJsBEABnAAAA2gEAABkAAACbARAAZwAAADECAAAbAAAAmwEQAGcAAAAyAgAAHQAAABYMEAByAAAAKgAAABMAAADYHRAAaAAAANMAAAAcAAAAHBgQAGkAAABrBgAAGgAAABwYEABpAAAAawYAADYAAAAcGBAAaQAAAF4GAAAoAAAAFgwQAHIAAAAgAAAACQAAABwYEABpAAAAcwcAAD4AQaj9xAAL2RoBAQEBAgICAgMDAwMEBAQEBQUFBQAAAAADAAQABQAGAAcACAAJAAoACwANAA8AEQATABcAGwAfACMAKwAzADsAQwBTAGMAcwCDAKMAwwDjAAIBAAIAAgACHBgQAGkAAADZBwAATQAAABwYEABpAAAAPAYAAC0AAAAcGBAAaQAAADwGAAAZAAAAHBgQAGkAAACEBgAAIAAAAAEBAQAEAAEAAgADAAQABQAHAAkADQARABkAIQAxAEEAYQCBAMEAAQGBAQECAQMBBAEGAQgBDAEQARgBIAEwAUABYAAAHBgQAGkAAAARAgAAKAAAAAAAAIAAQADAACAAoABgAOAAEACQAFAA0AAwALAAcADwAAgAiABIAMgAKACoAGgA6AAYAJgAWADYADgAuAB4APgABACEAEQAxAAkAKQAZADkABQAlABUANQANAC0AHQA9AAMAIwATADMACwArABsAOwAHACcAFwA3AA8ALwAfAD8AAIAggBCAMIAIgCiAGIA4gASAJIAUgDSADIAsgByAPIACgCKAEoAygAqAKoAagDqABoAmgBaANoAOgC6AHoA+gAGAIYARgDGACYApgBmAOYAFgCWAFYA1gA2ALYAdgD2AA4AjgBOAM4ALgCuAG4A7gAeAJ4AXgDeAD4AvgB+AP4AAQCBAEEAwQAhAKEAYQDhABEAkQBRANEAMQCxAHEA8QAJAIkASQDJACkAqQBpAOkAGQCZAFkA2QA5ALkAeQD5AAUAhQBFAMUAJQClAGUA5QAVAJUAVQDVADUAtQB1APUADQCNAE0AzQAtAK0AbQDtAB0AnQBdAN0APQC9AH0A/QADAIMAQwDDACMAowBjAOMAEwCTAFMA0wAzALMAcwDzAAsAiwBLAMsAKwCrAGsA6wAbAJsAWwDbADsAuwB7APsABwCHAEcAxwAnAKcAZwDnABcAlwBXANcANwC3AHcA9wAPAI8ATwDPAC8ArwBvAO8AHwCfAF8A3wA/AL8AfwD/gACAgIBAgMCAIICggGCA4IAQgJCAUIDQgDCAsIBwgPCACICIgEiAyIAogKiAaIDogBiAmIBYgNiAOIC4gHiA+IAEgISARIDEgCSApIBkgOSAFICUgFSA1IA0gLSAdID0gAyAjIBMgMyALICsgGyA7IAcgJyAXIDcgDyAvIB8gPyAAoCCgEKAwoAigKKAYoDigBKAkoBSgNKAMoCygHKA8oAKgIqASoDKgCqAqoBqgOqAGoCagFqA2oA6gLqAeoD6gAaAhoBGgMaAJoCmgGaA5oAWgJaAVoDWgDaAtoB2gPaADoCOgE6AzoAugK6AboDugB6AnoBegN6APoC+gH6A/oABgIGAQYDBgCGAoYBhgOGAEYCRgFGA0YAxgLGAcYDxgAmAiYBJgMmAKYCpgGmA6YAZgJmAWYDZgDmAuYB5gPmABYCFgEWAxYAlgKWAZYDlgBWAlYBVgNWANYC1gHWA9YANgI2ATYDNgC2ArYBtgO2AHYCdgF2A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AAQAAAABAAAAxQEAAHR5cGUAAAAAAQAAAAEAAADGAQAAY3JpdGljYWxwcml2YXRlcmVzZXJ2ZWRzYWZlY29weU9uZVR3b0ZvdXJFaWdodFNpeHRlZW5HcmF5c2NhbGVSZ2JJbmRleGVkR3JheXNjYWxlQWxwaGFSZ2JhAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAHdyb25nIGRhdGEgc2l6ZSwgZXhwZWN0ZWQgIGdvdCAAOE4RABoAAABSThEABQAAAEVuZCBvZiBpbWFnZSBoYXMgYmVlbiByZWFjaGVkQSBmYXRhbCBkZWNvZGluZyBlcnJvciBoYXMgYmVlbiBlbmNvdW50ZWQgZWFybGllckNSQyBlcnJvcjogZXhwZWN0ZWQgMHggaGF2ZSAweCB3aGlsZSBkZWNvZGluZyAgY2h1bmsuALZOEQAWAAAAzE4RAAgAAADUThEAEAAAAOROEQAHAAAASW52YWxpZCBQTkcgc2lnbmF0dXJlLmZjVEwgY2h1bmsgbWlzc2luZyBiZWZvcmUgZmRBVCBjaHVuay5JREFUIG9yIGZkQVQgY2h1bmsgaXMgbWlzc2luZy4gY2h1bmsgYXBwZWFyZWQgYmVmb3JlIElIRFIgY2h1bmsAAAEAAAAAAAAAZU8RACEAAABDaHVuayAgaXMgaW52YWxpZCBhZnRlciBJREFUIGNodW5rLgCYTxEABgAAAJ5PEQAdAAAAIGlzIGludmFsaWQgYmVmb3JlIFBMVEUgY2h1bmsuAACYTxEABgAAAMxPEQAeAAAAIGlzIGludmFsaWQgYWZ0ZXIgUExURSBjaHVuay4AAACYTxEABgAAAPxPEQAdAAAAIG11c3QgYXBwZWFyIGJldHdlZW4gUExURSBhbmQgSURBVCBjaHVua3MuAACYTxEABgAAACxQEQAqAAAAIG11c3QgYXBwZWFyIGF0IG1vc3Qgb25jZS4AAJhPEQAGAAAAaFARABoAAABTZXF1ZW5jZSBpcyBub3QgaW4gb3JkZXIsIGV4cGVjdGVkICMgZ290ICMAAJRQEQAkAAAAuFARAAYAAADsXBEAAQAAAE5vdCBlbm91Z2ggcGFsZXR0ZSBlbnRyaWVzLCBleHBlY3QgANhQEQAjAAAAUk4RAAUAAADsXBEAAQAAAFRoZSBzaXplIG9mIHRoZSBzQklUIGNodW5rIHNob3VsZCBiZSAgYnl0ZShzKSwgYnV0ICBieXRlKHMpIHdlcmUgcHJvdmlkZWQgZm9yIHRoZSAgY29sb3IgdHlwZS4AABRREQAlAAAAOVERAA4AAABHUREAHwAAAGZREQAMAAAASW52YWxpZCBzQklUIHZhbHVlIC4gSXQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIHRoZSBzYW1wbGUgZGVwdGggAAAAlFERABMAAACnUREAPgAAAOxcEQABAAAATWlzc2luZyBwYWxldHRlIG9mIGluZGV4ZWQgaW1hZ2UuSW52YWxpZCBjb2xvci9kZXB0aCBjb21iaW5hdGlvbiBpbiBoZWFkZXI6IC8AAAAhUhEAKwAAAExSEQABAAAAVHJhbnNwYXJlbmN5IGNodW5rIGZvdW5kIGZvciBjb2xvciB0eXBlIGBSEQAoAAAA7FwRAAEAAABJbnZhbGlkIGltYWdlIGRpbWVuc2lvbnNJbnZhbGlkIGJpdCBkZXB0aCAAALBSEQASAAAA7FwRAAEAAABJbnZhbGlkIGNvbG9yIHR5cGUgANRSEQATAAAA7FwRAAEAAABJbnZhbGlkIGRpc3Bvc2Ugb3AgAPhSEQATAAAA7FwRAAEAAABJbnZhbGlkIGJsZW5kIG9wIAAAABxTEQARAAAA7FwRAAEAAABJbnZhbGlkIHBoeXNpY2FsIHBpeGVsIHNpemUgdW5pdCAAAABAUxEAIQAAAOxcEQABAAAASW52YWxpZCBzUkdCIHJlbmRlcmluZyBpbnRlbnQgAAB0UxEAHgAAAOxcEQABAAAAVW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QgAKRTEQAbAAAA7FwRAAEAAABVbmtub3duIGZpbHRlciBtZXRob2QgAADQUxEAFgAAAOxcEQABAAAAVW5rbm93biBpbnRlcmxhY2UgbWV0aG9kIAAAAPhTEQAZAAAA7FwRAAEAAABTdWIgZnJhbWUgaXMgb3V0LW9mLWJvdW5kcy5Db3JydXB0IGRlZmxhdGUgc3RyZWFtLiBJREFUIG9yIGZEQVQgY2h1bmsgZG9lcyBub3QgaGF2ZSBlbm91Z2ggZGF0YSBmb3IgaW1hZ2UuVW5yZXByZXNlbnRhYmxlIGRhdGEgaW4gdEVYdCBjaHVuay4AAACOVBEAIwAAAEtleXdvcmQgZW1wdHkgb3IgbG9uZ2VyIHRoYW4gNzkgYnl0ZXMuAAC8VBEAJgAAAE5vIG51bGwgc2VwYXJhdG9yIGluIHRFWHQgY2h1bmsu7FQRACAAAABJbnZhbGlkIGNvbXByZXNzZWQgdGV4dCBkYXRhLgAAABRVEQAdAAAAT3V0IG9mIGRlY29tcHJlc3Npb24gc3BhY2UuIFRyeSB3aXRoIGEgbGFyZ2VyIGxpbWl0LjxVEQA0AAAAVXNpbmcgYW4gdW5yZWNvZ25pemVkIGJ5dGUgYXMgY29tcHJlc3Npb24gbWV0aG9kLgAAAHhVEQAxAAAAVXNpbmcgYSBmbGFnIHRoYXQgaXMgbm90IDAgb3IgMjU1IGFzIGEgY29tcHJlc3Npb24gZmxhZyBmb3IgaVRYdCBjaHVuay4AtFURAEcAAABObyBjb21wcmVzc2lvbiBmbGFnIGluIHRoZSBpVFh0IGNodW5rLgAABFYRACYAAABmZEFUIGNodW5rIHNob3J0ZXIgdGhhbiA0IGJ5dGVzVW5leHBlY3RlZCByZXN0YXJ0IG9mICBjaHVuayBzZXF1ZW5jZVNWEQAWAAAAaVYRAA8AAABDaHVuayBsZW5ndGggd3Jvbmc6IIhWEQAUAAAAVW5yZWNvZ25pemVkIGNyaXRpY2FsIGNodW5rOiAAAACkVhEAHQAAAEJhZCBnYW1tYSB2YWx1ZS5saW1pdHMgYXJlIGV4Y2VlZGVkQmFkWmxpYkhlYWRlckluc3VmZmljaWVudElucHV0SW52YWxpZEJsb2NrVHlwZUludmFsaWRVbmNvbXByZXNzZWRCbG9ja0xlbmd0aEludmFsaWRIbGl0SW52YWxpZEhkaXN0SW52YWxpZENvZGVMZW5ndGhSZXBlYXRCYWRDb2RlTGVuZ3RoSHVmZm1hblRyZWVCYWRMaXRlcmFsTGVuZ3RoSHVmZm1hblRyZWVCYWREaXN0YW5jZUh1ZmZtYW5UcmVlSW52YWxpZExpdGVyYWxMZW5ndGhDb2RlSW52YWxpZERpc3RhbmNlQ29kZUlucHV0U3RhcnRzV2l0aFJ1bkRpc3RhbmNlVG9vRmFyQmFja1dyb25nQ2hlY2tzdW1FeHRyYUlucHV0MAAAAAEnEAAqAAAAHgEA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dgMAABkAAABrIRAAYgAAAHcDAAAZAAAAayEQAGIAAAB4AwAAGQAAAGshEABiAAAAeQMAABkAAABrIRAAYgAAANQDAAARAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAABAAIAAwAEAAUABgAHAAgACQD//////////////////woACwAMAA0ADgAPAP////////////////////////////////////////////////////////////////////8KAAsADAANAA4ADwD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AABAAIAAwAEAAUABgAHAAgACQAP//////////////////oACwAMAA0ADgAPAA/////////////////////////////////////////////////////////////////////6AAsADAANAA4ADwAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2shEABiAAAAswEAABoAAABrIRAAYgAAAAACAAATAAAAayEQAGIAAAAFAgAAMwAAAGshEABiAAAACQIAAD4AAABrIRAAYgAAAA8CAAA6AAAAayEQAGIAAACrAQAAPQAAAGshEABiAAAApgEAAEUAAAAgYXQgbGluZSAAAABCCRAAYwAAAPcBAAAhAAAAQgkQAGMAAAD7AQAADAAAACBjb2x1bW4gQgkQAGMAAAACAgAAIQAAAEIJEABjAAAACwIAACoAAABCCRAAYwAAAA8CAAAsAAAAQgkQAGMAAAAUAgAACQAAAGluZi1pbmZOYU4AALQAAAAMAAAABAAAAIkBAACKAQAA0gEAQZiexgAL5Q0BAAAAuAAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkAwhUQAEsAAAAFCwAADgAAAPYQEABPAAAAPAYAABQAAAD2EBAATwAAADwGAAAhAAAA9hAQAE8AAAAwBgAAFAAAAPYQEABPAAAAMAYAACEAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAACojxEAsAAAALEAAACyAAAAsAAAALMAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmlzX2NoYXJfYm91bmRhcnkobmV3X2xlbilFcnJvcigsIGxpbmU6ICwgY29sdW1uOiAUkBEABgAAABqQEQAIAAAAIpARAAoAAABeBxIAAQAAAGludmFsaWQgdmFsdWU6IABMkBEADwAAABqTEQALAAAARU9GIHdoaWxlIHBhcnNpbmcgYSBsaXN0RU9GIHdoaWxlIHBhcnNpbmcgYW4gb2JqZWN0RU9GIHdoaWxlIHBhcnNpbmcgYSBzdHJpbmdFT0Ygd2hpbGUgcGFyc2lu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AAB2JRAAXwAAAL4FAAA1AAAAdiUQAF8AAAC+BQAAJQAAAHYlEABfAAAAvAUAADoAAABWUDggaW50ZXItcHJlZGljdGlvboQBkQACA5wBgIGjAoKDgAN2JRAAXwAAADUFAAAvAAAAgAHnAIECeAGCAzACBAZZA4MFcwSFhnEFhAd4BocImAeIiXAIgAGYAIECswGCA0ACBAZ+A4MFqgSFhnYFhAcuBocIRgeIiV8IgAGvAIECRQGCA48CBAZQA4MFVQSFhlIFhAdIBocImweIiWcIgAE4AIECOgGCAwoCBAarA4MF2gSFhr0FhAcRBocIDQeIiZgIgAGQAIECRwGCAwoCBAYmA4MFqwSFhtUFhAeQBocIIgeIiRoIgAFyAIECGgGCAxECBAajA4MFLASFhsMFhAcVBocICgeIia0IgAF5AIECGAGCA1ACBAbDA4MFGgSFhj4FhAcsBocIQAeIiVUIgAGqAIECLgGCAzcCBAYTA4MFiASFhqAFhAchBocIzgeIiUcIgAE/AIECFAGCAwgCBAZyA4MFcgSFhtAFhAcMBocICQeIieIIgAFRAIECKAGCAwsCBAZgA4MFtgSFhlQFhAcdBocIEAeIiSQIgAGGAIECtwGCA1kCBAaJA4MFYgSFhmUFhAdqBocIpQeIiZQIgAFIAIECuwGCA2QCBAaCA4MFnQSFhm8FhAcgBocISweIiVAIgAFCAIECZgGCA6cCBAZjA4MFSgSFhj4FhAcoBocI6geIiYAIgAEpAIECNQGCAwkCBAayA4MF8QSFho0FhAcaBocICAeIiWsIgAFoAIECTwGCAwwCBAYbA4MF2QSFhv8FhAdXBocIEQeIiQcIgAFKAIECKwGCAxoCBAaSA4MFSQSFhqYFhAcxBocIFweIiZ0IgAFBAIECJgGCA2kCBAagA4MFMwSFhjQFhAcfBocIcweIiYAIgAFXAIECRAGCA0cCBAYsA4MFcgSFhjMFhAcPBocIugeIiRcIgAEvAIECKQGCAw4CBAZuA4MFtgSFhrcFhAcVBocIEQeIicIIgAFCAIECLQGCAxkCBAZmA4MFxQSFhr0FhAcXBocIEgeIiRYIgAFYAIECWAGCA5MCBAaWA4MFKgSFhi4FhActBocIxAeIic0IgAErAIECYQGCA7cCBAZ1A4MFVQSFhiYFhAcjBocIsweIiT0IgAEnAIECNQGCA8gCBAZXA4MFGgSFhhUFhAcrBocI6AeIiasIgAE4AIECIgGCAzMCBAZoA4MFcgSFhmYFhAcdBocIXQeIiU0IgAFrAIECNgGCAyACBAYaA4MFMwSFhgEFhAdRBocIKweIiR8IgAEnAIECHAGCA1UCBAarA4MFOgSFhqUFhAdaBocIYgeIiUAIgAEiAIECFgGCA3QCBAbOA4MFFwSFhiIFhAcrBocIpgeIiUkIgAFEAIECGQGCA2oCBAYWA4MFQASFhqsFhAckBocI4QeIiXIIgAEiAIECEwGCAxUCBAZmA4MFhASFhrwFhAcQBocITAeIiXwIgAE+AIECEgGCA04CBAZfA4MFVQSFhjkFhAcyBocIMAeIiTMIgAHBAIECZQGCAyMCBAafA4MF1wSFhm8FhAdZBocILgeIiW8IgAE8AIEClAGCAx8CBAasA4MF2wSFhuQFhAcVBocIEgeIiW8IgAFwAIECcQGCA00CBAZVA4MFswSFhv8FhAcmBocIeAeIiXIIgAEoAIECKgGCAwECBAbEA4MF9QSFhtEFhAcKBocIGQeIiW0IgAFkAIECUAGCAwgCBAYrA4MFmgSFhgEFhAczBocIGgeIiUcIgAFYAIECKwGCAx0CBAaMA4MFpgSFhtUFhAclBocIKweIiZoIgAE9AIECPwGCAx4CBAabA4MFQwSFhi0FhAdEBocIAQeIidEIgAGOAIECTgGCA04CBAYQA4MF/wSFhoAFhAciBocIxQeIiasIgAEpAIECKAGCAwUCBAZmA4MF0wSFhrcFhAcEBocIAQeIid0IgAEzAIECMgGCAxECBAaoA4MF0QSFhsAFhAcXBocIGQeIiVIIgAF9AIECYgGCAyoCBAZYA4MFaASFhlUFhAd1BocIrweIiVIIgAFfAIECVAGCAzUCBAZZA4MFgASFhmQFhAdxBocIZQeIiS0IgAFLAIECTwGCA3sCBAYvA4MFMwSFhoAFhAdRBocIqweIiQEIgAE5AIECEQGCAwUCBAZHA4MFZgSFhjkFhAc1BocIKQeIiTEIgAFzAIECFQGCAwICBAYKA4MFZgSFhv8FhAemBocIFweIiQYIgAEmAIECIQGCAw0CBAZ5A4MFOQSFhkkFhAcaBocIAQeIiVUIgAEpAIECCgGCA0MCBAaKA4MFTQSFhm4FhAdaBocILweIiXIIgAFlAIECHQGCAxACBAYKA4MFVQSFhoAFhAdlBocIxAeIiRoIgAE5AIECEgGCAwoCBAZmA4MFZgSFhtUFhAciBocIFAeIiSsIgAF1AIECFAGCAw8CBAYkA4MFowSFhoAFhAdEBocIAQeIiRoIgAGKAIECHwGCAyQCBAarA4MFGwSFhqYFhAcmBocILAeIieUIgAFDAIECVwGCAzoCBAapA4MFUgSFhnMFhAcaBocIOweIibMIgAE/AIECOwGCA1oCBAa0A4MFOwSFhqYFhAddBocISQeIiZoIgAEoAIECKAGCAxUCBAZ0A4MFjwSFhtEFhAciBocIJweIia8IgAE5AIECLgGCAxYCBAYYA4MFgASFhgEFhAc2BocIEQeIiSUIgAEvAIECDwGCAxACBAa3A4MFIgSFht8FhAcxBocILQeIibcIgAEuAIECEQGCAyECBAa3A4MFBgSFhmIFhAcPBocIIAeIibcIgAFBAIECIAGCA0kCBAZzA4MFHASFhoAFhAcXBocIgAeIic0IgAEoAIECAwGCAwkCBAZzA4MFMwSFhsAFhAcSBocIBgeIid8IgAFXAIECJQGCAwkCBAZzA4MFOwSFhk0FhAdABocIFQeIiS8IgAFoAIECNwGCAywCBAbaA4MFCQSFhjYFhAc1BocIggeIieIIgAFAAIECWgGCA0YCBAbNA4MFKASFhikFhAcXBocIGgeIiTkIgAE2AIECOQGCA3ACBAa4A4MFBQSFhikFhAcmBocIpgeIidUIgAEeAIECIgGCAxoCBAaFA4MFmASFhnQFhAcKBocIIAeIiYYIgAFLAIECIAGCAwwCBAYzA4MFwASFhv8FhAegBocIKweIiTMIgAEnAIECEwGCAzUCBAbdA4MFGgSFhnIFhAcgBocISQeIif8IgAEfAIECCQGCA0ECBAbqA4MFAgSFhg8FhAcBBocIdgeIiUkIgAFYAIECHwGCAyMCBAZDA4MFZgSFhlUFhAc3BocIugeIiVUIgAE4AIECFQGCAxcCBAZvA4MFOwSFhs0FhActBocIJQeIicAIgAE3AIECJgGCA0YCBAZ8A4MFSQSFhmYFhAcBBocIIgeIiWIIgAFmAIECPQGCA0cCBAYlA4MFIgSFhjUFhAcfBocI8weIicAIgAFFAIECPAGCA0cCBAYmA4MFSQSFhncFhAccBocI3geIiSUIgAFEAIECLQGCA4ACBAYiA4MFAQSFhi8FhAcLBocI9QeIiasIgAE+AIECEQGCAxMCBAZGA4MFkgSFhlUFhAc3BocIPgeIiUYIgAFLAIECDwGCAwkCBAYJA4MFQASFhv8FhAe4BocIdweIiRAIgAElAIECKwGCAyUCBAaaA4MFZASFhqMFhAdVBocIoAeIiQEIgAE/AIECCQGCA1wCBAaIA4MFHASFhkAFhAcgBocIyQeIiVUIgAFWAIECBgGCAxwCBAYFA4MFQASFhv8FhAcZBocI+AeIiQEIgAE4AIECCAGCAxECBAaEA4MFiQSFhv8FhAc3BocIdAeIiYAIgAE6AIECDwGCAxQCBAZSA4MFhwSFhjkFhAcaBocIeQeIiSgIgAGkAIECMgGCAx8CBAaJA4MFmgSFhoUFhAcZBocIIweIidoIgAEzAIECZwGCAywCBAaDA4MFgwSFhnsFhAcfBocIBgeIiZ4IgAFWAIECKAGCA0ACBAaHA4MFlASFhuAFhActBocItweIiYAIgAEWAIECGgGCAxECBAaDA4MF8ASFhpoFhAcOBocIAQeIidEIgAFTAIECDAGCAw0CBAY2A4MFwASFhv8FhAdEBocILweIiRwIgAEtAIECEAGCAxUCBAZbA4MFQASFht4FhAcHBocIAQeIicUIgAE4AIECFQGCAycCBAabA4MFPASFhooFhAcXBocIZgeIidUIgAFVAIECGgGCA1UCBAZVA4MFgASFhoAFhAcgBocIkgeIiasIgAESAIECCwGCAwcCBAY/A4MFkASFhqsFhAcEBocIBAeIifYIgAEjAIECGwGCAwoCBAaSA4MFrgSFhqsFhAcMBocIGgeIiYAIgAG+AIECUAGCAyMCBAZjA4MFtASFhlAFhAd+BocINgeIiS0IgAFVAIECfgGCAy8CBAZXA4MFsASFhjMFhAcpBocIFAeIiSAIgAFlAIECSwGCA4ACBAaLA4MFdgSFhpIFhAd0BocIgAeIiVUIgAE4AIECKQGCAw8CBAawA4MF7ASFhlUFhAclBocICQeIiT4IgAGSAIECJAGCAxMCBAYeA4MFqwSFhv8FhAdhBocIGweIiRQIgAFHAIECHgGCAxECBAZ3A4MFdgSFhv8FhAcRBocIEgeIiYoIgAFlAIECJgGCAzwCBAaKA4MFNwSFhkYFhAcrBocIGgeIiY4IgAGKAIECLQGCAz0CBAY+A4MF2wSFhgEFhAdRBocIvAeIiUAIgAEgAIECKQGCAxQCBAZ1A4MFlwSFho4FhAcUBocIFQeIiaMIgAFwAIECEwGCAwwCBAY9A4MFwwSFhoAFhAcwBocIBAeIiRgIdiUQAF8AAAA/BQAAJQAAAIABjgCBAnIBgoO3AnYlEABfAAAAUQUAABEAAAB2JRAAXwAAAFIFAAARAAAAdiUQAF8AAABTBQAAEQAAAP///////////////////////////////////////////7D2////////////3/H8///////////5/f3////////////0/P//////////6v7+///////////9///////////////2/v//////////7/3+///////////+//7////////////4/v//////////+//+///////////////////////////9/v//////////+/7+///////////+//7////////////+/f/+////////+v/+//7////////+/////////////////////////////////////////////////////////9n/////////////4fzx/f///v/////q+vH6/f/9/v/////+////////////3/7+///////////u/f7+///////////4/v//////////+f7////////////////////////////9////////////9/7////////////////////////////9/v///////////P/////////////////////////////+/v///////////f/////////////////////////////+/f//////////+v/////////////+/////////////////////////////////////////////////////////7r7+v//////////6vv0/v/////////7+/P9/v/+///////9/v//////////7P3+///////////7/f3+/v/////////+/v///////////v7+///////////////////////////+/////////////v7////////////+/////////////////////////////v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////j/////////////+v78/v/////////4/vn9///////////9/f//////////9v39///////////8/vv+/v/////////+/P//////////+P79///////////9//7+///////////7/v//////////9fv+///////////9/f7////////////7/f///////////P3+/////////////v/////////////8////////////+f/+//////////////7//////////////f//////////+v///////////////////////////////////////////v///////////////////////////3YlEABfAAAAVwcAABcAAACLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAKIAYED/gIEBv8DggXkBIOE2wUHCIAGhYaABwkKgAiHiIAJiYqACosBvQCAAoEBgQPyAgQG/wOCBeMEg4TVBQcI/waFhtsHCQqACIeIgAmJioAKiwFqAIACfgGBA+MCBAb8A4IF1gSDhNEFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJiAYED+AIEBv8DggXsBIOE4gUHCP8GhYb/BwkKgAiHiIAJiYqACosBtQCAAoUBgQPuAgQG/gOCBd0Eg4TqBQcI/waFhpoHCQqACIeIgAmJioAKiwFOAIAChgGBA8oCBAb3A4IFxgSDhLQFBwj/BoWG2wcJCoAIh4iACYmKgAqLAQEAgAK5AYED+QIEBv8DggXzBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBuACAApYBgQP3AgQG/wOCBewEg4TgBQcIgAaFhoAHCQqACIeIgAmJioAKiwFNAIACbgGBA9gCBAb/A4IF7ASDhOYFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAJlAYED+wIEBv8DggXxBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBqgCAAosBgQPxAgQG/AOCBewEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwElAIACdAGBA8QCBAbzA4IF5ASDhP8FBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgALMAYED/gIEBv8DggX1BIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBzwCAAqABgQP6AgQG/wOCBe4Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwFmAIACZwGBA+cCBAb/A4IF0wSDhKsFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKYAYED/AIEBv8DggXwBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBsQCAAocBgQPzAgQG/wOCBeoEg4ThBQcIgAaFhoAHCQqACIeIgAmJioAKiwFQAIACgQGBA9MCBAb/A4IFwgSDhOAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9gCAAgEBgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwH/AIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcYAgAIjAYED7QIEBt8DggXBBIOEuwUHCKIGhYagBwkKkQiHiJsJiYo+CosBgwCAAi0BgQPGAgQG3QOCBawEg4SwBQcI3AaFhp0HCQr8CIeI3QmJigEKiwFEAIACLwGBA5ICBAbQA4IFlQSDhKcFBwjdBoWGogcJCv8Ih4jfCYmKgAqLAQEAgAKVAYED8QIEBv8DggXdBIOE4AUHCP8GhYb/BwkKgAiHiIAJiYqACosBuACAAo0BgQPqAgQG/QOCBd4Eg4TcBQcI/waFhscHCQqACIeIgAmJioAKiwFRAIACYwGBA7UCBAbyA4IFsASDhL4FBwj5BoWGygcJCv8Ih4j/CYmKgAqLAQEAgAKBAYED6AIEBv0DggXWBIOExQUHCPIGhYbEBwkK/wiHiP8JiYqACosBYwCAAnkBgQPSAgQG+gOCBckEg4TGBQcI/waFhsoHCQqACIeIgAmJioAKiwEXAIACWwGBA6MCBAbyA4IFqgSDhLsFBwj3BoWG0gcJCv8Ih4j/CYmKgAqLAQEAgALIAYED9gIEBv8DggXqBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBbQCAArIBgQPxAgQG/wOCBecEg4T1BQcI/waFhv8HCQqACIeIgAmJioAKiwEsAIACggGBA8kCBAb9A4IFzQSDhMAFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAKEAYED7wIEBvsDggXbBIOE0QUHCP8GhYalBwkKgAiHiIAJiYqACosBXgCAAogBgQPhAgQG+wOCBdoEg4S+BQcI/waFhv8HCQqACIeIgAmJioAKiwEWAIACZAGBA64CBAb1A4IFugSDhKEFBwj/BoWGxwcJCoAIh4iACYmKgAqLAQEAgAK2AYED+QIEBv8DggXoBIOE6wUHCIAGhYaABwkKgAiHiIAJiYqACosBfACAAo8BgQPxAgQG/wOCBeMEg4TqBQcIgAaFhoAHCQqACIeIgAmJioAKiwEjAIACTQGBA7UCBAb7A4IFwQSDhNMFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAKdAYED9wIEBv8DggXsBIOE5wUHCP8GhYb/BwkKgAiHiIAJiYqACosBeQCAAo0BgQPrAgQG/wOCBeEEg4TjBQcI/waFhv8HCQqACIeIgAmJioAKiwEtAIACYwGBA7wCBAb7A4IFwwSDhNkFBwj/BoWG4AcJCoAIh4iACYmKgAqLAQEAgAIBAYED+wIEBv8DggXVBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBywCAAgEBgQP4AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGJAIACAQGBA7ECBAb/A4IF4ASDhP8FBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAIJAYED+AIEBvsDggXPBIOE0AUHCP8GhYbABwkKgAiHiIAJiYqACosBrwCAAg0BgQPgAgQG8wOCBcEEg4S5BQcI+QaFhsYHCQr/CIeI/wmJioAKiwFJAIACEQGBA6sCBAbdA4IFoQSDhLMFBwjsBoWGpwcJCv8Ih4jqCYmKgAqLAQEAgAJfAYED9wIEBv0DggXUBIOEtwUHCP8GhYb/BwkKgAiHiIAJiYqACosB7wCAAloBgQP0AgQG+gOCBdMEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwGbAIACTQGBA8MCBAb4A4IFvASDhMMFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAIYAYED7wIEBvsDggXaBIOE2wUHCP8GhYbNBwkKgAiHiIAJiYqACosByQCAAjMBgQPbAgQG/wOCBcQEg4S6BQcIgAaFhoAHCQqACIeIgAmJioAKiwFFAIACLgGBA74CBAbvA4IFyQSDhNoFBwj/BoWG5AcJCoAIh4iACYmKgAqLAQEAgAK/AYED+wIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB3wCAAqUBgQP5AgQG/wOCBdUEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGNAIACfAGBA/gCBAb/A4IF/wSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIQAYED+AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBvgCAAiQBgQPmAgQG/wOCBewEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGVAIACAQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgALiAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9wCAAsABgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwHwAIACgAGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKGAYED/AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB1QCAAj4BgQP6AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwE3AIACXQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcoAgAIYAYED1QIEBusDggW6BIOEvwUHCNwGhYagBwkK8AiHiK8JiYr/CosBfgCAAiYBgQO2AgQG6AOCBakEg4S4BQcI5AaFhq4HCQr/CIeIuwmJioAKiwE9AIACLgGBA4oCBAbbA4IFlwSDhLIFBwjwBoWGqgcJCv8Ih4jYCYmKgAqLAQEAgAJwAYED5gIEBvoDggXHBIOEvwUHCPcGhYafBwkK/wiHiP8JiYqACosBpgCAAm0BgQPkAgQG/AOCBdMEg4TXBQcI/waFhq4HCQqACIeIgAmJioAKiwEnAIACTQGBA6ICBAboA4IFrASDhLQFBwj1BoWGsgcJCv8Ih4j/CYmKgAqLAQEAgAI0AYED3AIEBvYDggXGBIOExwUHCPkGhYbcBwkK/wiHiP8JiYqACosBfACAAkoBgQO/AgQG8wOCBbcEg4TBBQcI+gaFht0HCQr/CIeI/wmJioAKiwEYAIACRwGBA4ICBAbbA4IFmgSDhKoFBwjzBoWGtgcJCv8Ih4j/CYmKgAqLAQEAgAK2AYED4QIEBvkDggXbBIOE8AUHCP8GhYbgBwkKgAiHiIAJiYqACosBlQCAApYBgQPiAgQG/AOCBdgEg4TNBQcI/waFhqsHCQqACIeIgAmJioAKiwEcAIACbAGBA6oCBAbyA4IFtwSDhMIFBwj+BoWG3wcJCv8Ih4j/CYmKgAqLAQEAgAJRAYED5gIEBvwDggXMBIOEywUHCP8GhYbABwkKgAiHiIAJiYqACosBewCAAmYBgQPRAgQG9wOCBbwEg4TEBQcI/waFhukHCQqACIeIgAmJioAKiwEUAIACXwGBA5kCBAbzA4IFpASDhK0FBwj/BoWGywcJCoAIh4iACYmKgAqLAQEAgALeAYED+AIEBv8DggXYBIOE1QUHCIAGhYaABwkKgAiHiIAJiYqACosBqACAAq8BgQP2AgQG/AOCBesEg4TNBQcI/waFhv8HCQqACIeIgAmJioAKiwEvAIACdAGBA9cCBAb/A4IF0wSDhNQFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJ5AYED7AIEBv0DggXUBIOE1gUHCP8GhYb/BwkKgAiHiIAJiYqACosBjQCAAlQBgQPVAgQG/AOCBckEg4TKBQcI/waFhtsHCQqACIeIgAmJioAKiwEqAIACUAGBA6ACBAbwA4IFogSDhLkFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9ACAAgEBgQP/AgQG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AAAA8gEAAAAAAAABAAAAAQAAAPMBAAAAAAAABAAAAAQAAACqAQAAQ2ljcHByaW1hcmllc3RyYW5zZmVybWF0cml4ZnVsbF9yYW5nZURpbWVuc2lvbkVycm9ySW5zdWZmaWNpZW50TWVtb3J5AAAAAAAAACAAAAAIAAAA9AEAAAAAAAAEAAAABAAAAPUBAABsaW1pdHNzdXBwb3J0ZWQA9gEAAAwAAAAEAAAA9wEAAFBhcmFtZXRlckVycm9yQ2FwYWNpdHlPdmVyZmxvdwAAAAAAAAQAAAAEAAAA+AEAAEFsbG9jRXJybGF5b3V0Q3NwbGF0KGNlbnRlcjogAAAATtURAA8AAABv0xEACwAAAHrTEQAHAAAAgdMRAAoAAACL0xEADgAAAF4HEgABAAAARXhhY3ROYW1lUGF0aEV4dGVuc2lvblVua25vd25pbnZhbGlkIHNlZWsgdG8gYSBuZWdhdGl2ZSBvciBvdmVyZmxvd2luZyBwb3NpdGlvbgCt1REAMgAAABQAAACmJhAAWgAAAD0AAAAkAAAARW1wdHlJbnZhbGlkRGlnaXRQb3NPdmVyZmxvd05lZ092ZXJmbG93WmVybwAAAAAABAAAAAQAAAD5AQAAVW5zdXBwb3J0ZWRFcnJvclBuZ0pwZWdHaWZXZWJQUG5tVGlmZlRnYURkc0JtcEljb0hkck9wZW5FeHJGYXJiZmVsZEF2aWZRb2lQY3gAAAAAAAAABAAAAAQAAAD6AQAAUGFyc2VJbnRFcnJvckE4TDFMYTFSZ2IxUmdiYTFMMkxhMlJnYjJSZ2JhMkw0TGE0UmdiNFJnYmE0UmdiNXgxTDhMYThSZ2I4UmdiYThMMTZMYTE2UmdiMTZSZ2JhMTZCZ3I4QmdyYThSZ2IzMkZSZ2JhMzJGQ215azhDbXlrMTZMaW1pdFN1cHBvcnREaW1lbnNpb25NaXNtYXRjaEZhaWxlZEFscmVhZHkAAAAAAAAEAAAABAAAAPsBAABSZ2JDaWNwUmVxdWlyZWRHZW5lcmljTm9Nb3JlRGF0YQAAAAAEAAAAAQAAAPwBAABDaWNwTWlzbWF0Y2hleHBlY3RlZGZvdW5kAAAAAAAAAAgAAAAEAAAAxwAAAAAAAAAIAAAABAAAAHAAAADHAAAAoNcRALAAAADIAAAAsgAAALAAAACzAAAA/QEAACgAAAAI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ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9ybWlkID4gbGVu/wASAAkAAABzdGRvdXRmYWlsZWQgcHJpbnRpbmcgdG8gAAAAFgESABMAAABd/BEAAgAAANoQEAAbAAAAjQQAAAkAAABvcGVyYXRpb24gc3VjY2Vzc2Z1bG9uZS10aW1lIGluaXRpYWxpemF0aW9uIG1heSBub3QgYmUgcGVyZm9ybWVkIHJlY3Vyc2l2ZWx5YAESADgAAABjYW5ub3QgcmVjdXJzaXZlbHkgYWNxdWlyZSBtdXRleKABEgAgAAAA6AcQACwAAAATAAAACQAAAGxvY2sgY291bnQgb3ZlcmZsb3cgaW4gcmVlbnRyYW50IG11dGV4AADlFBAAJgAAACMBAAAtAAAA7xoQACMAAADXAAAAFAAAAO8aEAAjAAAA1wAAADEAAABMYXp5TG9jayBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAAwAhIALgAAAMMUEAAhAAAAlwEAAAUAAABmYWlsZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIHRocmVhZCBJRDogYml0c3BhY2UgZXhoYXVzdGVkAHgCEgA3AAAAph4QAB0AAADUBAAADQAAADoKAACFAQAADAAAAAQAAABIAgAASQIAAEoCAAAAAAAACAAAAAQAAABLAgAATAIAAE0CAABOAgAATwIAABAAAAAEAAAAUAIAAFECAABSAgAAUwIAAGNhbm5vdCBtb2RpZnkgdGhlIHBhbmljIGhvb2sgZnJvbSBhIHBhbmlja2luZyB0aHJlYWQcAxIANAAAAA4WEAAcAAAAkAAAAAkAAAAAAAAABAAAAAQAAABUAgAAV291bGRCbG9jayAob3MgZXJyb3IgAAAAAQAAAAAAAACCAxIACwAAAF4HEgABAAAA2hAQABsAAABcAwAAFAAAAE5vdEZvdW5kUGVybWlzc2lvbkRlbmllZENvbm5lY3Rpb25SZWZ1c2VkQ29ubmVjdGlvblJlc2V0SG9zdFVucmVhY2hhYmxlTmV0d29ya1VucmVhY2hhYmxlQ29ubmVjdGlvbkFib3J0ZWROb3RDb25uZWN0ZWRBZGRySW5Vc2VBZGRyTm90QXZhaWxhYmxlTmV0d29ya0Rvd25Ccm9rZW5QaXBlQWxyZWFkeUV4aXN0c05vdEFEaXJlY3RvcnlJc0FEaXJlY3RvcnlEaXJlY3RvcnlOb3RFbXB0eVJlYWRPbmx5RmlsZXN5c3RlbUZpbGVzeXN0ZW1Mb29wU3RhbGVOZXR3b3JrRmlsZUhhbmRsZUludmFsaWRJbnB1dEludmFsaWREYXRhVGltZWRPdXRXcml0ZVplcm9TdG9yYWdlRnVsbE5vdFNlZWthYmxlUXVvdGFFeGNlZWRlZEZpbGVUb29MYXJnZVJlc291cmNlQnVzeUV4ZWN1dGFibGVGaWxlQnVzeURlYWRsb2NrQ3Jvc3Nlc0RldmljZXNUb29NYW55TGlua3NJbnZhbGlkRmlsZW5hbWVBcmd1bWVudExpc3RUb29Mb25nSW50ZXJydXB0ZWRVbnN1cHBvcnRlZFVuZXhwZWN0ZWRFb2ZPdXRPZk1lbW9yeUluUHJvZ3Jlc3NPdGhlclVuY2F0ZWdvcml6ZWR1bnN1cHBvcnRlZCBiYWNrdHJhY2VkaXNhYmxlZCBiYWNrdHJhY2UAXhsQABwAAACKAQAAHQAAAFUCAAAQAAAABAAAAFYCAABXAgAAcGFuaWNrZWQgYXQgAQAAAAAAAABQ/BEAAQAAAFD8EQABAAAAAAAAAAgAAAAEAAAAWAIAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAACgiEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAAAoIhAAKgAAALcEAAANAAAA4BMQAC0AAAAWAQAAKQAAAIUBAAAMAAAABAAAAFkCAABudWxsIHBvaW50ZXIgcGFzc2VkIHRvIHJ1c3RyZWN1cnNpdmUgdXNlIG9mIGFuIG9iamVjdCBkZXRlY3RlZCB3aGljaCB3b3VsZCBsZWFkIHRvIHVuc2FmZSBhbGlhc2luZyBpbiBydXN0SnNWYWx1ZSgpAFYHEgAIAAAAXgcSAAEAAAB/FhAAaQAAAHwAAAARAAAAfxYQAGkAAACJAAAAEQAAAFpJUDY0IGZvb3RlciBpbmRpY2F0ZXMgbW9yZSBmaWxlcyBvbiB0aGlzIGRpc2sgdGhhbiBpbiB0aGUgd2hvbGUgYXJjaGl2ZUludmFsaWQgY2VudHJhbCBkaXJlY3Rvcnkgc2l6ZSBvciBvZmZzZXRmYWlsZWQgdG8gZmlsbCB3aG9sZSBidWZmZXIAAAgSABsAAAAlAAAAAgAAABwIEgBDUkMzMiBjaGVja3N1bSBmYWlsZWQgb24gVW5pY29kZSBleHRyYSBmaWVsZFVuaWNvZGUgZXh0cmEgZmllbGQgaXMgdG9vIHNtYWxsRXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkIGlzIGVtcHR5AAAA/g8QAHQAAABKAAAAJAAAAGZsYWdzIGFuZCBsZW4gZG9uJ3QgbWF0Y2ggaW4gZXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgYXR0cmlidXRlIHNpemVOVEZTIGV4dHJhIGZpZWxkIGhhcyBhbiB1bnN1cHBvcnRlZCBhdHRyaWJ1dGUgdGFnTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAAQGAAA6AAAARXh0cmEgZmllbGQgY29udGVudCBleGNlZWRzIGRlY2xhcmVkIGxlbmd0aADOIRAAWQAAAAYGAAA7AAAAWklQNjQgZXh0cmEgZmllbGQgdHJ1bmNhdGVkWklQNjQgZXh0cmEtZGF0YSBmaWVsZCBpcyB0aGUgd3JvbmcgbGVuZ3RoAAAAziEQAFkAAABeBgAAEgAAAEFFUyBleHRyYSBmaWVsZCB0cnVuY2F0ZWRJbnZhbGlkIEFFUyBlbmNyeXB0aW9uIHN0cmVuZ3RoSW52YWxpZCBBRVMgdmVuZG9yIHZlcnNpb25JbnZhbGlkIEFFUyB2ZW5kb3JBRVMgZXh0cmEgZGF0YSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAIgGAAAfAAAARXh0cmEgZmllbGQgY29udGVudCB0cnVuY2F0ZWRFeHRyYSBmaWVsZCBoZWFkZXIgdHJ1bmNhdGVkSW52YWxpZCBjaGVja3N1bQBBkJbIAAvjBAEAAAC0AQAAKCkAAMQeEABQAAAAKgIAABEAAABpL28gZXJyb3I6IAAsCxIACwAAAGludmFsaWQgWmlwIGFyY2hpdmU6IAAAAEALEgAVAAAAdW5zdXBwb3J0ZWQgWmlwIGFyY2hpdmU6IAAAAGALEgAZAAAAc3BlY2lmaWVkIGZpbGUgbm90IGZvdW5kIGluIGFyY2hpdmVwcm92aWRlZCBwYXNzd29yZCBpcyBpbmNvcnJlY3QAAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAFV0ZjhFcnJvcnZhbGlkX3VwX3RvZXJyb3JfbGVuAAAAWgIAAAwAAAAEAAAAWwIAAAAAAAAEAAAABAAAAFwCAABGcm9tVXRmOEVycm9yYnl0ZXNlcnJvck5vbmVTb21lACYcEABvAAAAwwAAAAkAAAAmHBAAbwAAALwAAAAqAAAAJhwQAG8AAAC5AAAAKgAAAJsBEABnAAAAdAEAACkAAACbARAAZwAAAHkBAAAcAAAAmwEQAGcAAAB5AQAALQAAAJsBEABnAAAAgAEAADAAAACbARAAZwAAAEsBAAApAAAAmwEQAGcAAABRAQAAHAAAAJsBEABnAAAAUQEAAC0AAACbARAAZwAAAFkBAAAkAAAAmwEQAGcAAABZAQAAMQAAAAUKEABvAAAAOgAAABsAAAAFChAAbwAAADsAAAAbAAAAVHJ5RnJvbUludEVycm9yAF0CAAAUAAAABAAAAF4CAAAyJhAAWgAAAB8AAAAsAAAAExsQAEoAAAC9AQAAHQAAAP//////////aA0SAEGAm8gAC7FotQsQAGAAAABzAAAAFgAAALULEABgAAAALgAAACMAAAC1CxAAYAAAAEMBAAAWAAAAtQsQAGAAAABPAQAAOAAAALULEABgAAAA6AEAABYAAAC1CxAAYAAAACYAAAAPAAAATw8QAGYAAAAdAAAAEQAAAE8PEABmAAAARgAAABEAAABJbnZhbGlkIFVURi04YXNzZXJ0aW9uIGZhaWxlZDogbWluIDw9IG1heAAAALYPEABHAAAARAQAAAkAAABkZXN0IGlzIG91dCBvZiBib3VuZHMAAAA8DhIAFQAAAAAAAAAEAAAABAAAAEMAAAAAAAAABAAAAAQAAABfAgAAT2tTdHJlYW1FbmROZWVkRGljdEVyck5vU3RyZWFtRXJyb3JEYXRhRXJyb3JNZW1FcnJvckJ1ZkVycm9yVmVyc2lvbkVycm9yTGF5b3V0RXJyb3IAAAAAAEY7Z2WMds7Kyk2pr1nr7U4f0Ior1Z0jhJOmROGy1tud9O28+D6gFVd4m3Iy6z02060GUbZnS/gZIXCffCWrxuBjkKGFqd0IKu/mb098QCuuOntMy/A25WS2DYIBl30dfdFGehgbC9O3XTC00s6W8DOIrZdWQuA++QTbWZwLUPwaTWubf4cmMtDBHVW1UrsRVBSAdjHezd+emPa4+7mGJ4f/vUDiNfDpTXPLjijgbcrJplatrGwbBAMqIGNmLvs6+mjAXZ+ijfQw5LaTVXcQ17QxK7DR+2YZfr1dfhucLeFn2haGAhBbL61WYEjIxcYMKYP9a0xJsMLjD4ulhhag+DVQm59QmtY2/9ztUZpPSxV7CXByHsM927GFBrzUpHYjqOJNRM0oAO1ibjuKB/2dzua7pqmDcesALDfQZ0kzCz7VdTBZsL998B/5Rpd6auDTmyzbtP7mlh1RoK16NIHd5UjH5oItDasrgkuQTOfYNggGng1vY1RAxswSe6GpHfAEL1vLY0qRhsrl172tgEQb6WECII4EyG0nq45WQM6vJt+y6R241yNQEXhla3Yd9s0y/LD2VZl6u/w2PICbUzhbws9+YKWqtC0MBfIWa2BhsC+BJ4tI5O3G4Uur/YYuio0ZUsy2fjcG+9eYQMCw/dNm9ByVXZN5XxA61hkrXbMsQPFranuWDqA2P6HmDVjEdascJTOQe0D53dLvv+a1ip6WKvbYrU2TEuDkPFTbg1nHfce4gUag3UsLCXINMG4XCes3i0/QUO6FnflBw6aeJFAA2sUWO72g3HYUD5pNc2q7PewW/QaLczdLItxxcEW54tYBWKTtZj1uoM+SKJuo9ycQDXFhK2oUq2bDu+1dpN5+++A/OMCHWvKNLvW0tkmQlcbW7NP9sYkZsBgmX4t/Q8wtO6KKFlzHQFv1aAZgkg0Cu8uRRICs9I7NBVvI9mI+W1Am3x1rQbrXJugVkR2PcLBtEAz2VndpPBvexnoguaPphv1Cr72aJ2XwM4gjy1TtOuAJXnzbbju2lseU8K2g8WML5BAlMIN1730q2qlGTb+INtLDzg21pgRAHAlCe3ts0d0/jZfmWOhdq/FHG5CWIh9Lz75ZcKjbkz0BdNUGZhFGoCLwAJtFlcrW7DqM7YtfrZ0UI+umc0Yh69rpZ9C9jPR2+W2yTZ4IeAA3pz47UMIxsPVEd4uSIb3GO477/VzraFsYCi5gf2/kLdbAohaxpYNmLtnFXUm8DxDgE0krh3bajcOXnLak8lb7DV0QwGo4FBszpFIgVMGYbf1u3laaC03w3uoLy7mPwYYQIIe9d0Wmzeg54PaPXCq7JvNsgEGW/yYFd7kdYhJzUMu9NWus2AAAAABYgOLX8Qa0dKmGVqPiDWjpuo2KPhML3J1Liz5KhR2hCd2dQ950GxV9LJv3qmcQyeA/kCs3lhZ9lM6Wn0MKO0ITUrugxPs99mejvRSw6DYq+rC2yC0ZMJ6OQbB8WY8m4xrXpgHNfiBXbiagtbltK4vzNatpJJwtP4fErd1QFHaEJkz2ZvHlcDBSvfDShfZ77M+u+w4YB31Yu1/9umyRayUvyevH+GBtkVs47XOMc2ZNxivmrxGCYPmy2uAbZR5NxjVGzSTi70tyQbfLkJb8QK7cpMBMCw1GGqhVxvh/m1BnPMPQhetqVtNIMtYxn3ldD9Uh3e0CiFu7odDbWXYo7AhNcGzqmtnqvDmBal7uyuFgpJJhgnM759TQY2c2B63xqUT1cUuTXPcdMAR3/+dP/MGtF3wjer76ddnmepcOItdKXnpXqInT0f4qi1Ec/cDaIreYWsBgMdyWw2lcdBSnyutX/0oJgFbMXyMOTL30RceDvh1HYWm0wTfK7EHVHTyajGtkGm68zZw4H5Uc2sjel+SChhcGVS+RUPZ3EbIhuYctYuEHz7VIgZkWEAF7wVuKRYsDCqdcqozx//IMEyg2oc54biEsr8enegyfJ5jb1KymkYwsREYlqhLlfSrwMrO8b3HrPI2mQrrbBRo6OdJRsQeYCTHlT6C3s+z4N1E7UNgRmghY802h3qXu+V5HObLVeXPqVZukQ9PNBxtTL9DVxbCTjUVSRCTDBOd8Q+YwN8jYem9IOq3GzmwOnk6O2VrjU4kCY7Feq+Xn/fNlBSq47jtg4G7Zt0nojxQRaG3D3/7ygId+EFcu+Eb0dnikIz3zmmllc3i+zPUuHZR1zMpErpW8HC53a7WoIcjtKMMfpqP9Vf4jH4JXpUkhDyWr9sGzNLWZM9ZiMLWAwWg1YhYjvlxcez6+i9K46CiKOAr/TpXXrxYVNXi/k2Pb5xOBDKyYv0b0GF2RXZ4LMgUe6eXLiHamkwiUcTqOwtJiDiAFKYUeT3EF/JjYg6o7gANI7Hg0GdcgtPsAiTKto9GyT3SaOXE+wrmT6Ws/xUozvyed/Sm43qWpWgkMLwyqVK/ufR8k0DdHpDLg7iJkQ7aihpRyD1vEKo+5E4MJ77DbiQ1nkAIzLciC0fphBIdZOYRljvcS+s2vkhgaBhROuV6UrG4VH5IkTZ9w8+QZJlC8mcSHbEKd8TTCfyadRCmFxcTLUo5P9RjWzxfPf0lBbCfJo7vpXzz4sd/eLxhZiIxA2WpbC1JUEVPStsb6VOBlotQCsmZ53+I++T01l39rls//iUGEdLcL3PRV3HVyA38t8uGo42R+67vknDwSYsqfSuIoSAFpFgJZ6fTV8G+idqjvQKEAAAAA4bZS74Nr1AVi3YbqBteoC+dh+uSFvHwOZAou4QyuURftGAP4j8WFEm5z1/0Kefkc68+r84kSLRlopH/2GFyjLvnq8cGbN3creoElxB6LCyX/PVnKneDfIHxWjc8U8vI59USg1peZJjx2L3TTEiVaMvOTCN2RTo43cPjc2DC4Rl3RDhSys9OSWFJlwLc2b+5W19m8ubUEOlNUsmi8PBYXSt2gRaW/fcNPXsuRoDrBv0Hbd+2uuaprRFgcOaso5OVzyVK3nKuPMXZKOWOZLjNNeM+FH5etWJl9TO7LkiRKtGTF/OaLpyFgYUaXMo4inRxvwytOgKH2yGpAQJqFYHCNuoHG31XjG1m/Aq0LUGanJbGHEXde5czxtAR6o1ts3tytjWiOQu+1CKgOA1pHagl0pou/JknpYqCjCNTyTHgsLpSZmnx7+0f6kRrxqH5++4afn03UcP2QUpocJgB1dIJ/g5U0LWz36auGFl/5aXJV14iT44Vn8T4DjRCIUWJQyMvnsX6ZCNOjH+IyFU0NVh9j7LepMQPVdLfpNMLlBlxmmvC90Mgf3w1O9T67HBpasTL7uwdgFNna5v44bLQRSJRoyakiOibL/7zMKknuI05DwMKv9ZItzSgUxyyeRihEOjnepYxrMcdR7dsm5780Qu2R1aNbwzrBhkXQIDAXP4Hma65gUDlBAo2/q+M77USHMcOlZoeRSgRaF6Dl7EVPjUg6uWz+aFYOI+6875W8U4ufkrJqKcBdCPRGt+lCFFiZusiAeAyabxrRHIX7Z05qn21gi37bMmQcBrSO/bDmYZUUmZd0ost4Fn9NkvfJH32TwzGccnVjcxCo5ZnxHrd2sV4t81DofxwyNfn204OrGbeJhfhWP9cXNOJR/dVUAxK98HzkXEYuCz6bqOHfLfoOuyfU71qRhgA4TADq2fpSBakCjt1ItNwyKmla2MvfCDev1SbWTmN0OSy+8tPNCKA8pazfykQajSUmxwvPx3FZIKN7d8FCzSUuIBCjxMGm8SvhluYUACC0+2L9MhGDS2D+50FOHwb3HPBkKpoahZzI9e04twMMjuXsblNjBo/lMenr7x8ICllN52iEyw2JMpni+cpFOhh8F9V6oZE/mxfD0P8d7TEeq7/efHY5NJ3Aa9v1ZBQtFNJGwnYPwCiXuZLH87O8JhIF7slw2GgjkW46zNEuoEkwmPKmUkV0TLPzJqPX+QhCNk9arVSS3Ee1JI6o3YDxXjw2o7Fe6yVbv113tNtXWVU64Qu6WDyNULmK37/JcgNnKMRRiEoZ12Krr4WNz6WrbC4T+YNMzn9prXgthsXcUnAkagCfRreGdacB1JrDC/p7Ir2olEBgLn6h1nyRAAAAAEPLpofHkDzUhFuaU88nCHOM7K70CLc0p0t8kiCeTxDm3YS2YVnfLDIaFIq1UWgYlRKjvhKW+CRB1TOCxn2ZURc+UveQugltw/nCy0Syvllk8XX/43UuZbA25cM349ZB8aAd53YkRn0lZ43boizxSYJvOu8F62F1Vqiq09H6MqMuufkFqT2in/p+aTl9NRWrXXbeDdryhZeJsU4xDmR9s8gnthVPo+2PHOAmKZurWru76JEdPGzKh28vASHoh6vyOcRgVL5AO87tA/BoakiM+koLR1zNjxzGnszXYBkZ5OLfWi9EWN503gudv3iM1sPqrJUITCsRU9Z4Uphw//RlRl23ruDaM/V6iXA+3A47Qk4ueInoqfzScvq/GdR9aipWuynh8Dytumpv7nHM6KUNXsjmxvhPYp1iHCFWxJuJ/BdKyjexzU5sK54Np40ZRtsfOQUQub6BSyPtwoCFahezB6xUeKEr0CM7eJPonf/YlA/fm1+pWB8EMwtcz5WMDlflc02cQ/TJx9mnigx/IMFw7QCCu0uHBuDR1EUrd1OQGPWV09NTEleIyUEUQ2/GXz/95hz0W2GYr8Ey22RntXPOtGQwBRLjtF6IsPeVLje86bwX/yIakHt5gMM4siZE7YGkgq5KAgUqEZhWado+0SKmrPFhbQp25TaQJab9NqLoy4y6qwAqPS9bsG5skBbpJ+yEyWQnIk7gfLgdo7cemnaEnFw1TzrbsRSgiPLfBg+5o5Qv+mgyqH4zqPs9+A58lVLdrdaZeypSwuF5EQlH/lp11d4ZvnNZneXpCt4uT40LHc1LSNZrzMyN8Z+PRlcYxDrFOIfxY78DqvnsQGFfaxL5L5RRMokT1WkTQJaitcfd3ifnnhWBYBpOGzNZhb20jLY/cs99mfVLJgOmCO2lIUORNwEAWpGGhAEL1cfKrVJvYH6DLKvYBKjwQlfrO+TQoEd28OOM0Hdn10okJBzso/EvbmWy5MjiNr9SsXV09DY+CGYWfcPAkfmYWsK6U/xFHK7K519lbGDbPvYzmPVQtNOJwpSQQmQTFBn+QFfSWMeC4doBwSp8hkVx5tUGukBSTcbScg4NdPWKVu6myZ1IIWE3m/Ai/D13pqenJOVsAaOuEJOD7ds1BGmAr1cqSwnQ/3iLFryzLZE46LfCeyMRRTBfg2VzlCXi98+/sbQEGTbmnGnJpVfPTiEMVR1ix/OaKbthumpwxz3uK11ureD76XjTeS87GN+ov0NF+/yI43y39HFc9D/X23BkTYgzr+sPmwU43tjOnllclQQKH16ijVQiMK0X6ZYqk7IMedB5qv4FSig4RoGOv8LaFOyBEbJrym0gS4mmhswN/RyfTja6GAcgEABkAAAAdAAAACcAAAAHIBAAZAAAAGsAAAAzAAAAAAAAAJYwB3csYQ7uulEJmRnEbQeP9GpwNaVj6aOVZJ4yiNsOpLjceR7p1eCI2dKXK0y2Cb18sX4HLbjnkR2/kGQQtx3yILBqSHG5895BvoR91Noa6+TdbVG11PTHhdODVphsE8Coa2R6+WL97Mllik9cARTZbAZjYz0P+vUNCI3IIG47XhBpTORBYNVycWei0eQDPEfUBEv9hQ3Sa7UKpfqotTVsmLJC1sm720D5vKzjbNgydVzfRc8N1txZPdGrrDDZJjoA3lGAUdfIFmHQv7X0tCEjxLNWmZW6zw+lvbieuAIoCIgFX7LZDMYk6Quxh3xvLxFMaFirHWHBPS1mtpBB3HYGcdsBvCDSmCoQ1e+JhbFxH7W2BqXkv58z1LjooskHeDT5AA+OqAmWGJgO4bsNan8tPW0Il2xkkQFcY+b0UWtrYmFsHNgwZYVOAGLy7ZUGbHulARvB9AiCV8QP9cbZsGVQ6bcS6ri+i3yIufzfHd1iSS3aFfN804xlTNT7WGGyTc5RtTp0ALyj4jC71EGl30rXldg9bcTRpPv01tNq6WlD/NluNEaIZ63QuGDacy0EROUdAzNfTAqqyXwN3TxxBVCqQQInEBALvoYgDMkltWhXs4VvIAnUZrmf5GHODvneXpjJ2SkimNCwtKjXxxc9s1mBDbQuO1y9t61susAgg7jttrO/mgzitgOa0rF0OUfV6q930p0VJtsEgxbccxILY+OEO2SUPmptDahaanoLzw7knf8JkyeuAAqxngd9RJMP8NKjCIdo8gEe/sIGaV1XYvfLZ2WAcTZsGecGa252G9T+4CvTiVp62hDMSt1nb9+5+fnvvo5DvrcX1Y6wYOij1tZ+k9GhxMLYOFLy30/xZ7vRZ1e8pt0GtT9LNrJI2isN2EwbCq/2SgM2YHoEQcPvYN9V32eo745uMXm+aUaMs2HLGoNmvKDSbyU24mhSlXcMzANHC7u5FgIiLyYFVb47usUoC72yklq0KwRqs1yn/9fCMc/QtYue2Swdrt5bsMJkmybyY+yco2p1CpNtAqkGCZw/Ng7rhWcHchNXAAWCSr+VFHq44q4rsXs4G7YMm47Skg2+1eW379x8Id/bC9TS04ZC4tTx+LPdaG6D2h/NFr6BWya59uF3sG93R7cY5loIiHBqD//KOwZmXAsBEf+eZY9prmL40/9rYUXPbBZ44gqg7tIN11SDBE7CswM5YSZnp/cWYNBNR2lJ23duPkpq0a7cWtbZZgvfQPA72DdTrrypxZ673n/Pskfp/7UwHPK9vYrCusowk7NTpqO0JAU20LqTBtfNKVfeVL9n2SMuemazuEphxAIbaF2UK28qN74LtKGODMMb3wVaje8CLQAAAABlZ7y4i8gJqu6vtRJXl2KPMvDeN9xfayW5ONed7yi0xYpPCH1k4L1vAYcB17i/1krd2GryM3ff4FYQY1ifVxlQ+jCl6BSfEPpx+KxCyMB7362nx2dDCHJ1Jm/OzXB/rZUVGBEt+7ekP57QGIcn6M8aQo9zoqwgxrDJR3oIPq8yoFvIjhi1ZzsK0ACHsmk4UC8MX+yX4vBZhYeX5T3Rh4ZltOA63VpPj88/KDN3hhDk6uN3WFIN2O1AaL9R+KH4K/DEn5dIKjAiWk9XnuL2b0l/kwj1x32nQNUYwPxtTtCfNSu3I43FGJafoH8qJxlH/bp8IEECko/0EPfoSKg9WBSbWD+oI7aQHTHT96GJas92FA+oyqzhB3++hGDDBtJwoF63FxzmWbip9DzfFUyF58LR4IB+aQ4vy3trSHfDog8Ny8dosXMpxwRhTKC42fWYb0SQ/9P8flBm7hs32lZNJ7kOKEAFtsbvsKSjiAwcGrDbgX/XZzmReNIr9B9ukwP3JjtmkJqDiD8vke1YkylUYES0MQf4DN+oTR66z/Gm7N+S/om4LkZnF5tUAnAn7LtI8HHeL0zJMID521XnRWOcoD9r+ceD0xdoNsFyD4p5yzdd5K5Q4VxA/1ROJZjo9nOIi64W7zcW+ECCBJ0nPrwkH+khQXhVma/X4IvKsFwzO7ZZ7V7R5VWwflBH1Rns/2whO2IJRofa5+kyyIKOjnDUnu0osflRkF9W5II6MVg6gwmPp+ZuMx8IwYYNbaY6taThQL3BhvwFLylJF0pO9a/zdiIylhGeini+K5gd2ZcgS8n0eC6uSMDAAf3SpWZBahxelvd5OSpPl5afXfLxI+UFGWtNYH7X9Y7RYufrtt5fUo4JwjfptXrZRgBovCG80Oox34iPVmMwYfnWIgSeapq9pr0H2MEBvzZutK1TCQgVmk5yHf8pzqURhnu3dOHHD83ZEJKovqwqRhEZOCN2pYB1ZsbYEAF6YP6uz3KbyXPKIvGkV0eWGO+pOa39zF4RRQbuTXZjifHOjSZE3OhB+GRReS/5NB6TQdqxJlO/1prr6cb5s4yhRQtiDvAZB2lMob5RmzzbNieENZmSllD+Li6ZuVQm/N7onhJxXYx3FuE0zi42qatJihFF5j8DIIGDu3aR4OMT9lxb/VnpSZg+VfEhBoJsRGE+1KrOi8bPqTd+OEF/1l0mw26ziXZ81u7KxG/WHVkKsaHh5B4U84F5qEvXacsTsg53q1yhwrk5xn4BgP6pnOWZFSQLNqA2blEcjqcWZobCcdo+LN5vLEm505TwgQQJlea4sXtJDaMeLrEbSD7SQy1ZbvvD9tvpppFnUR+psMx6zgx0lGG5ZvEGBd4AAAAAN2rCAW7UhANZvkYC3KgJB+vCywayfI0EhRZPBbhREw6PO9EP1oWXDeHvVQxk+RoJU5PYCAotngo9R1wLcKMmHEfJ5B0ed6IfKR1gHqwLLxubYe0awt+rGPW1aRnI8jUS/5j3E6YmsRGRTHMQFFo8FSMw/hR6jrgWTeR6F+BGTTjXLI85jpLJO7n4Czo87kQ/C4SGPlI6wDxlUAI9WBdeNm99nDc2w9o1AakYNIS/VzGz1ZUw6mvTMt0BETOQ5Wskp4+pJf4x7yfJWy0mTE1iI3snoCIimeYgFfMkISi0eCof3rorRmD8KXEKPij0HHEtw3azLJrI9S6tojcvwI2acPfnWHGuWR5zmTPcchwlk3crT1F2cvEXdEWb1XV43Il+T7ZLfxYIDX0hYs98pHSAeZMeQnjKoAR6/crGe7AuvGyHRH5t3vo4b+mQ+m5shrVrW+x3agJSMWg1OPNpCH+vYj8VbWNmqythUcHpYNTXpmXjvWRkugMiZo1p4Gcgy9dIF6EVSU4fU0t5dZFK/GPeT8sJHE6St1pMpd2YTZiaxEav8AZH9k5ARcEkgkREMs1Bc1gPQCrmSUIdjItDUGjxVGcCM1U+vHVXCda3VozA+FO7qjpS4hR8UNV+vlHoOeJa31MgW4btZlmxh6RYNJHrXQP7KVxaRW9ebS+tX4AbNeG3cffg7s+x4tmlc+Ncszzma9n+5zJnuOUFDXrkOEom7w8g5O5WnqLsYfRg7eTiL+jTiO3pijar671caerwuBP9x9LR/J5sl/6pBlX/LBAa+ht62PtCxJ75da5c+EjpAPN/g8LyJj2E8BFXRvGUQQn0oyvL9fqVjffN/0/2YF142Vc3utgOifzaOeM+27z1cd6Ln7Pf0iH13eVLN9zYDGvX72ap1rbY79SBsi3VBKRi0DPOoNFqcObTXRok0hD+XsUnlJzEfiraxklAGMfMVlfC+zyVw6KC08GV6BHAqK9Ny5/Fj8rGe8nI8RELyXQHRMxDbYbNGtPAzy25As5Alq+Rd/xtkC5CK5IZKOmTnD6mlqtUZJfy6iKVxYDglPjHvJ/PrX6elhM4nKF5+p0kb7WYEwV3mUq7MZt90fOaMDWJjQdfS4xe4Q2OaYvPj+ydgIrb90KLgkkEibUjxoiIZJqDvw5YguawHoDR2tyBVMyThGOmUYU6GBeHDXLVhqDQ4qmXuiCozgRmqvlupKt8eOuuSxIprxKsb60lxq2sGIHxpy/rM6Z2VXWkQT+3pcQp+KDzQzqhqv18o52XvqLQc8S15xkGtL6nQLaJzYK3DNvNsjuxD7NiD0mxVWWLsGgi17tfSBW6BvZTuDGckbm0it68g+AcvdpeWr/tNJi+AAAAAEExGxmCYjYyw1MtKwTFbGRF9Hd9hqdaVseWQU8IitnISbvC0Yro7/rL2fTjDE+1rE1+rrWOLYOezxyYh1ESwkoQI9lT03D0eJJB72FV164uFOa1N9e1mByWhIMFWZgbghipAJvb+i2wmss2qV1dd+YcbGz/3z9B1J4OWs2iJISV4xWfjCBGsqdhd6m+puHo8efQ8+gkg97DZbLF2qquXV3rn0ZEKMxrb2n9cHauazE571oqICwJBwttOBwS8zZG37IHXcZxVHDtMGVr9PfzKru2wjGidZEciTSgB5D7vJ8Xuo2EDnneqSU477I8/3nzc75I6Gp9G8VBPCreWAVPefBEfmLphy1PwsYcVNsBihWUQLsOjYPoI6bC2Ti/DcWgOEz0uyGPp5YKzpaNEwkAzFxIMddFi2L6bspT4XdUXbu6FWygo9Y/jYiXDpaRUJjX3hGpzMfS+uHsk8v69VzXYnId5nlr3rVUQJ+ET1lYEg4WGSMVD9pwOCSbQSM9p2v9ZeZa5nwlCctXZDjQTqOukQHin4oYIcynM2D9vCqv4SSt7tA/tC2DEp9ssgmGqyRIyeoVU9ApRn77aHdl4vZ5Py+3SCQ2dBsJHTUqEgTyvFNLs41IUnDeZXkx735g/vPm57/C/f58kdDVPaDLzPo2ioO7B5GaeFS8sTllp6hLmIM7CqmYIsn6tQmIy64QT13vXw5s9EbNP9ltjA7CdEMSWvMCI0HqwXBswYBBd9hH1zaXBuYtjsW1AKWEhBu8GopBcVu7WmiY6HdD2dlsWh5PLRVffjYMnC0bJ90cAD4SAJi5UzGDoJBirovRU7WSFsX03Vf078SUp8Lv1ZbZ9um8B66ojRy3a94xnCrvKoXteWvKrEhw028bXfguKkbh4TbeZqAHxX9jVOhUImXzTeXzsgKkwqkbZ5GEMCagnym4rsXk+Z/e/TrM89Z7/ejPvGupgP1aspk+CZ+yfziEq7AkHCzxFQc1MkYqHnN3MQe04XBI9dBrUTaDRnp3sl1jTtf6yw/m4dLMtcz5jYTX4EoSlq8LI422yHCgnYlBu4RGXSMDB2w4GsQ/FTGFDg4oQphPZwOpVH7A+nlVgctiTB/FOIFe9COYnacOs9yWFaobAFTlWjFP/JliYtfYU3nOF0/hSVZ++lCVLdd71BzMYhOKjS1Su5Y0kei7H9DZoAbs835ercJlR26RSGwvoFN16DYSOqkHCSNqVCQIK2U/EeR5p5alSLyPZhuRpCcqir3gvMvyoY3Q62Le/cAj7+bZveG8FPzQpw0/g4omfrKRP7kk0HD4FctpO0bmQnp3/Vu1a2Xc9Fp+xTcJU+52OEj3sa4JuPCfEqEzzD+Kcv0kkwAAAACWMAd3LGEO7rpRCZkZxG0Hj/RqcDWlY+mjlWSeMojbDqS43Hke6dXgiNnSlytMtgm9fLF+By2455Edv5BkELcd8iCwakhxufPeQb6EfdTaGuvk3W1RtdT0x4XTg1aYbBPAqGtkevli/ezJZYpPXAEU2WwGY2M9D/r1DQiNyCBuO14QaUzkQWDVcnFnotHkAzxH1ARL/YUN0mu1CqX6qLU1bJiyQtbJu9tA+bys42zYMnVc30XPDdbcWT3Rq6ww2SY6AN5RgFHXyBZh0L+19LQhI8SzVpmVus8Ppb24nrgCKAiIBV+y2QzGJOkLsYd8by8RTGhYqx1hwT0tZraQQdx2BnHbAbwg0pgqENXviYWxcR+1tgal5L+fM9S46KLJB3g0+QAPjqgJlhiYDuG7DWp/LT1tCJdsZJEBXGPm9FFra2JhbBzYMGWFTgBi8u2VBmx7pQEbwfQIglfED/XG2bBlUOm3Euq4vot8iLn83x3dYkkt2hXzfNOMZUzU+1hhsk3OUbU6dAC8o+Iwu9RBpd9K15XYPW3E0aT79NbTaulpQ/zZbjRGiGet0Lhg2nMtBETlHQMzX0wKqsl8Dd08cQVQqkECJxAQC76GIAzJJbVoV7OFbyAJ1Ga5n+Rhzg753l6YydkpIpjQsLSo18cXPbNZgQ20LjtcvbetbLrAIIO47bazv5oM4rYDmtKxdDlH1eqvd9KdFSbbBIMW3HMSC2PjhDtklD5qbQ2oWmp6C88O5J3/CZMnrgAKsZ4HfUSTD/DSowiHaPIBHv7CBmldV2L3y2dlgHE2bBnnBmtudhvU/uAr04laetoQzErdZ2/fufn5776OQ763F9WOsGDoo9bWfpPRocTC2DhS8t9P8We70WdXvKbdBrU/SzaySNorDdhMGwqv9koDNmB6BEHD72DfVd9nqO+ObjF5vmlGjLNhyxqDZryg0m8lNuJoUpV3DMwDRwu7uRYCIi8mBVW+O7rFKAu9spJatCsEarNcp//XwjHP0LWLntksHa7eW7DCZJsm8mPsnKNqdQqTbQKpBgmcPzYO64VnB3ITVwAFgkq/lRR6uOKuK7F7OBu2DJuO0pINvtXlt+/cfCHf2wvU0tOGQuLU8fiz3Whug9ofzRa+gVsmufbhd7Bvd0e3GOZaCIhwag//yjsGZlwLARH/nmWPaa5i+NP/a2FFz2wWeOIKoO7SDddUgwROwrMDOWEmZ6f3FmDQTUdpSdt3bj5KatGu3FrW2WYL30DwO9g3U668qcWeu95/z7JH6f+1MBzyvb2KwrrKMJOzU6ajtCQFNtC6kwbXzSlX3lS/Z9kjLnpms7hKYcQCG2hdlCtvKje+C7ShjgzDG98FWo3vAi0AAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogdGhlIHJ1c3QgQVBJIGRvZXMgbm90IHVzZSBmaWxlcwAAAPQyEgBJAAAA9BgQAF8AAAChAAAAIgAAAGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUQERIACAcJBgoFCwQMAw0CDgEPAABZFxAAYAAAAJMAAAAJAAAAAABgB1AAAAgQAAAIcwAUCB8AEgdwAAAIMAAACMAAAAkKABAHYAAACCAAAAigAAAJAAAACIAAAAhAAAAI4AAACQYAEAdYAAAIGAAACJAAAAk7ABMHeAAACDgAAAjQAAAJEQARB2gAAAgoAAAIsAAACQgAAAiIAAAISAAACPAAAAkEABAHVAAACBQAAAjjABUIKwATB3QAAAg0AAAIyAAACQ0AEQdkAAAIJAAACKgAAAkEAAAIhAAACEQAAAjoAAAJCAAQB1wAAAgcAAAImAAACVMAFAd8AAAIPAAACNgAAAkXABIHbAAACCwAAAi4AAAJDAAACIwAAAhMAAAI+AAACQMAEAdSAAAIEgAACKMAFQgjABMHcgAACDIAAAjEAAAJCwARB2IAAAgiAAAIpAAACQIAAAiCAAAIQgAACOQAAAkHABAHWgAACBoAAAiUAAAJQwAUB3oAAAg6AAAI1AAACRMAEgdqAAAIKgAACLQAAAkKAAAIigAACEoAAAj0AAAJBQAQB1YAAAgWAAAIAABACDMAEwd2AAAINgAACMwAAAkPABEHZgAACCYAAAisAAAJBgAACIYAAAhGAAAI7AAACQkAEAdeAAAIHgAACJwAAAljABQHfgAACD4AAAjcAAAJGwASB24AAAguAAAIvAAACQ4AAAiOAAAITgAACPwAAAkAAGAHUQAACBEAAAiDABUIHwASB3EAAAgxAAAIwgAACQoAEAdhAAAIIQAACKIAAAkBAAAIgQAACEEAAAjiAAAJBgAQB1kAAAgZAAAIkgAACTsAEwd5AAAIOQAACNIAAAkRABEHaQAACCkAAAiyAAAJCQAACIkAAAhJAAAI8gAACQQAEAdVAAAIFQAACAIBEAgrABMHdQAACDUAAAjKAAAJDQARB2UAAAglAAAIqgAACQUAAAiFAAAIRQAACOoAAAkIABAHXQAACB0AAAiaAAAJUwAUB30AAAg9AAAI2gAACRcAEgdtAAAILQAACLoAAAkNAAAIjQAACE0AAAj6AAAJAwAQB1MAAAgTAAAIwwAVCCMAEwdzAAAIMwAACMYAAAkLABEHYwAACCMAAAimAAAJAwAACIMAAAhDAAAI5gAACQcAEAdbAAAIGwAACJYAAAlDABQHewAACDsAAAjWAAAJEwASB2sAAAgrAAAItgAACQsAAAiLAAAISwAACPYAAAkFABAHVwAACBcAAAgAAEAIMwATB3cAAAg3AAAIzgAACQ8AEQdnAAAIJwAACK4AAAkHAAAIhwAACEcAAAjuAAAJCQAQB18AAAgfAAAIngAACWMAFAd/AAAIPwAACN4AAAkbABIHbwAACC8AAAi+AAAJDwAACI8AAAhPAAAI/gAACQAAYAdQAAAIEAAACHMAFAgfABIHcAAACDAAAAjBAAAJCgAQB2AAAAggAAAIoQAACQAAAAiAAAAIQAAACOEAAAkGABAHWAAACBgAAAiRAAAJOwATB3gAAAg4AAAI0QAACREAEQdoAAAIKAAACLEAAAkIAAAIiAAACEgAAAjxAAAJBAAQB1QAAAgUAAAI4wAVCCsAEwd0AAAINAAACMkAAAkNABEHZAAACCQAAAipAAAJBAAACIQAAAhEAAAI6QAACQgAEAdcAAAIHAAACJkAAAlTABQHfAAACDwAAAjZAAAJFwASB2wAAAgsAAAIuQAACQwAAAiMAAAITAAACPkAAAkDABAHUgAACBIAAAijABUIIwATB3IAAAgyAAAIxQAACQsAEQdiAAAIIgAACKUAAAkCAAAIggAACEIAAAjlAAAJBwAQB1oAAAgaAAAIlQAACUMAFAd6AAAIOgAACNUAAAkTABIHagAACCoAAAi1AAAJCgAACIoAAAhKAAAI9QAACQUAEAdWAAAIFgAACAAAQAgzABMHdgAACDYAAAjNAAAJDwARB2YAAAgmAAAIrQAACQYAAAiGAAAIRgAACO0AAAkJABAHXgAACB4AAAidAAAJYwAUB34AAAg+AAAI3QAACRsAEgduAAAILgAACL0AAAkOAAAIjgAACE4AAAj9AAAJAABgB1EAAAgRAAAIgwAVCB8AEgdxAAAIMQAACMMAAAkKABAHYQAACCEAAAijAAAJAQAACIEAAAhBAAAI4wAACQYAEAdZAAAIGQAACJMAAAk7ABMHeQAACDkAAAjTAAAJEQARB2kAAAgpAAAIswAACQkAAAiJAAAISQAACPMAAAkEABAHVQAACBUAAAgCARAIKwATB3UAAAg1AAAIywAACQ0AEQdlAAAIJQAACKsAAAkFAAAIhQAA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",self.location.href));const A=HQ();(typeof Q=="string"||typeof Request=="function"&&Q instanceof Request||typeof URL=="function"&&Q instanceof URL)&&(Q=fetch(Q));const{instance:I}=await rQ(await Q,A);return xQ(I)}var ag={},PQ=function(Q,A,I,g,B){var C=new Worker(ag[A]||(ag[A]=URL.createObjectURL(new Blob([Q+\';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})\'],{type:"text/javascript"}))));return C.onmessage=function(E){var D=E.data,i=D.$e$;if(i){var o=new Error(i[0]);o.code=i[1],o.stack=i[2],B(o,null)}else B(null,D)},C.postMessage(I,g),C},v=Uint8Array,ZA=Uint16Array,Yg=Int32Array,XI=new v([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),VI=new v([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Kg=new v([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),tg=function(Q,A){for(var I=new ZA(31),g=0;g<31;++g)I[g]=A+=1<>1|(m&21845)<<1;xA=(xA&52428)>>2|(xA&13107)<<2,xA=(xA&61680)>>4|(xA&3855)<<4,MI[m]=((xA&65280)>>8|(xA&255)<<8)>>1}for(var WA=function(Q,A,I){for(var g=Q.length,B=0,C=new ZA(A);B>i]=o}else for(D=new ZA(g),B=0;B>15-Q[B]);return D},GI=new v(288),m=0;m<144;++m)GI[m]=8;for(var m=144;m<256;++m)GI[m]=9;for(var m=256;m<280;++m)GI[m]=7;for(var m=280;m<288;++m)GI[m]=8;for(var xg=new v(32),m=0;m<32;++m)xg[m]=5;var rg=WA(GI,9,1),ng=WA(xg,5,1),UI=function(Q){for(var A=Q[0],I=1;IA&&(A=Q[I]);return A},hA=function(Q,A,I){var g=A/8|0;return(Q[g]|Q[g+1]<<8)>>(A&7)&I},cI=function(Q,A){var I=A/8|0;return(Q[I]|Q[I+1]<<8|Q[I+2]<<16)>>(A&7)},jI=function(Q){return(Q+7)/8|0},rA=function(Q,A,I){return(A==null||A<0)&&(A=0),(I==null||I>Q.length)&&(I=Q.length),new v(Q.subarray(A,I))},Pg=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],_=function(Q,A,I){var g=new Error(A||Pg[Q]);if(g.code=Q,Error.captureStackTrace&&Error.captureStackTrace(g,_),!I)throw g;return g},mI=function(Q,A,I,g){var B=Q.length,C=g?g.length:0;if(!B||A.f&&!A.l)return I||new v(0);var E=!I,D=E||A.i!=2,i=A.i;E&&(I=new v(B*3));var o=function(GA){var RA=I.length;if(GA>RA){var kA=new v(Math.max(RA*2,GA));kA.set(I),I=kA}},w=A.f||0,G=A.p||0,R=A.b||0,y=A.l,k=A.d,F=A.m,s=A.n,h=B*8;do{if(!y){w=hA(Q,G,1);var J=hA(Q,G+1,3);if(G+=3,J)if(J==1)y=rg,k=ng,F=9,s=5;else if(J==2){var K=hA(Q,G,31)+257,p=hA(Q,G+10,15)+4,c=K+hA(Q,G+5,31)+1;G+=14;for(var U=new v(c),r=new v(19),a=0;a>4;if(S<16)U[a++]=S;else{var n=0,T=0;for(S==16?(T=3+hA(Q,G,3),G+=2,n=U[a-1]):S==17?(T=3+hA(Q,G,7),G+=3):S==18&&(T=11+hA(Q,G,127),G+=7);T--;)U[a++]=n}}var W=U.subarray(0,K),X=U.subarray(K);F=UI(W),s=UI(X),y=WA(W,F,1),k=WA(X,s,1)}else _(1);else{var S=jI(G)+4,N=Q[S-4]|Q[S-3]<<8,M=S+N;if(M>B){i&&_(0);break}D&&o(R+N),I.set(Q.subarray(S,M),R),A.b=R+=N,A.p=G=M*8,A.f=w;continue}if(G>h){i&&_(0);break}}D&&o(R+131072);for(var z=(1<>4;if(G+=n&15,G>h){i&&_(0);break}if(n||_(2),O<256)I[R++]=O;else if(O==256){u=G,y=null;break}else{var V=O-254;if(O>264){var a=O-257,b=XI[a];V=hA(Q,G,(1<>4;e||_(3),G+=e&15;var X=dg[d];if(d>3){var b=VI[d];X+=cI(Q,G)&(1<h){i&&_(0);break}D&&o(R+131072);var CA=R+V;if(R>>0},uI=function(Q,A){return gA(Q,A)+gA(Q,A+4)*4294967296},XQ=function(Q){(Q[0]!=31||Q[1]!=139||Q[2]!=8)&&_(6,"invalid gzip data");var A=Q[3],I=10;A&4&&(I+=(Q[10]|Q[11]<<8)+2);for(var g=(A>>3&1)+(A>>4&1);g>0;g-=!Q[I++]);return I+(A&2)},zI=function(){function Q(A,I){typeof A=="function"&&(I=A,A={}),this.ondata=I;var g=A&&A.dictionary&&A.dictionary.subarray(-32768);this.s={i:0,b:g?g.length:0},this.o=new v(32768),this.p=new v(0),g&&this.o.set(g)}return Q.prototype.e=function(A){if(this.ondata||_(5),this.d&&_(4),!this.p.length)this.p=A;else if(A.length){var I=new v(this.p.length+A.length);I.set(this.p),I.set(A,this.p.length),this.p=I}},Q.prototype.c=function(A){this.s.i=+(this.d=A||!1);var I=this.s.b,g=mI(this.p,this.s,this.o);this.ondata(rA(g,I,this.s.b),this.d),this.o=rA(g,this.s.b-32768),this.s.b=this.o.length,this.p=rA(this.p,this.s.p/8|0),this.s.p&=7},Q.prototype.push=function(A,I){this.e(A),this.c(I)},Q}();function VQ(Q,A,I){return I||(I=A,A={}),typeof I!="function"&&_(7),TQ(Q,A,[ZQ],function(g){return pg(LI(g.data[0],eg(g.data[1])))},1,I)}function LI(Q,A){return mI(Q,{i:2},A&&A.out,A&&A.dictionary)}var WQ=function(){function Q(A,I){this.v=1,this.r=0,zI.call(this,A,I)}return Q.prototype.push=function(A,I){if(zI.prototype.e.call(this,A),this.r+=A.length,this.v){var g=this.p.subarray(this.v-1),B=g.length>3?XQ(g):4;if(B>g.length){if(!I)return}else this.v>1&&this.onmember&&this.onmember(this.r-g.length);this.p=g.subarray(B),this.v=0}zI.prototype.c.call(this,I),this.s.f&&!this.s.l&&!I&&(this.v=jI(this.s.p)+9,this.s={i:0},this.o=new v(0),this.push(new v(0),I))},Q}(),vI=typeof TextDecoder<"u"&&new TextDecoder;try{vI.decode(eQ,{stream:!0})}catch{}var jQ=function(Q){for(var A="",I=0;;){var g=Q[I++],B=(g>127)+(g>223)+(g>239);if(I+B>Q.length)return{s:A,r:rA(Q,I-1)};B?B==3?(g=((g&15)<<18|(Q[I++]&63)<<12|(Q[I++]&63)<<6|Q[I++]&63)-65536,A+=String.fromCharCode(55296|g>>10,56320|g&1023)):B&1?A+=String.fromCharCode((g&31)<<6|Q[I++]&63):A+=String.fromCharCode((g&15)<<12|(Q[I++]&63)<<6|Q[I++]&63):A+=String.fromCharCode(g)}};function mQ(Q,A){if(A){for(var I="",g=0;g65558)return E(_(13,0,1),null),B;var i=MA(Q,D+8);if(i){var o=i,w=gA(Q,D+16),G=w==4294967295||o==65535;if(G){var R=gA(Q,D-12);G=gA(Q,R)==101075792,G&&(o=i=gA(Q,R+32),w=gA(Q,R+48))}for(var y=A&&A.filter,k=function(s){var h=lg(Q,w,G),J=h[0],S=h[1],N=h[2],M=h[3],K=h[4],p=h[5],c=bg(Q,p);w=K;var U=function(a,H){a?(B(),E(a,null)):(H&&(C[M]=H),--i||E(null,C))};if(!y||y({name:M,size:S,originalSize:N,compression:J}))if(!J)U(null,rA(Q,c,c+S));else if(J==8){var r=Q.subarray(c,c+S);if(N<524288||S>.8*N)try{U(null,LI(r,{out:new v(N)}))}catch(a){U(a,null)}else g.push(VQ(r,{size:N},U))}else U(_(14,"unknown compression type "+J,1),null);else U(null,null)},F=0;F65558)&&_(13);var B=MA(Q,g+8);if(!B)return{};var C=gA(Q,g+16),E=C==4294967295||B==65535;if(E){var D=gA(Q,g-12);E=gA(Q,D)==101075792,E&&(B=gA(Q,D+32),C=gA(Q,D+48))}for(var i=A&&A.filter,o=0;o=0?1:-1,S=1-h*h;if(S>Number.EPSILON){const M=Math.sqrt(S),K=Math.atan2(M,h*J);s=Math.sin(s*K)/M,D=Math.sin(D*K)/M}const N=D*J;if(i=i*s+R*N,o=o*s+y*N,w=w*s+k*N,G=G*s+F*N,s===1-D){const M=1/Math.sqrt(i*i+o*o+w*w+G*G);i*=M,o*=M,w*=M,G*=M}}A[I]=i,A[I+1]=o,A[I+2]=w,A[I+3]=G}static multiplyQuaternionsFlat(A,I,g,B,C,E){const D=g[B],i=g[B+1],o=g[B+2],w=g[B+3],G=C[E],R=C[E+1],y=C[E+2],k=C[E+3];return A[I]=D*k+w*G+i*y-o*R,A[I+1]=i*k+w*R+o*G-D*y,A[I+2]=o*k+w*y+D*R-i*G,A[I+3]=w*k-D*G-i*R-o*y,A}get x(){return this._x}set x(A){this._x=A,this._onChangeCallback()}get y(){return this._y}set y(A){this._y=A,this._onChangeCallback()}get z(){return this._z}set z(A){this._z=A,this._onChangeCallback()}get w(){return this._w}set w(A){this._w=A,this._onChangeCallback()}set(A,I,g,B){return this._x=A,this._y=I,this._z=g,this._w=B,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(A){return this._x=A.x,this._y=A.y,this._z=A.z,this._w=A.w,this._onChangeCallback(),this}setFromEuler(A,I=!0){const g=A._x,B=A._y,C=A._z,E=A._order,D=Math.cos,i=Math.sin,o=D(g/2),w=D(B/2),G=D(C/2),R=i(g/2),y=i(B/2),k=i(C/2);switch(E){case"XYZ":this._x=R*w*G+o*y*k,this._y=o*y*G-R*w*k,this._z=o*w*k+R*y*G,this._w=o*w*G-R*y*k;break;case"YXZ":this._x=R*w*G+o*y*k,this._y=o*y*G-R*w*k,this._z=o*w*k-R*y*G,this._w=o*w*G+R*y*k;break;case"ZXY":this._x=R*w*G-o*y*k,this._y=o*y*G+R*w*k,this._z=o*w*k+R*y*G,this._w=o*w*G-R*y*k;break;case"ZYX":this._x=R*w*G-o*y*k,this._y=o*y*G+R*w*k,this._z=o*w*k-R*y*G,this._w=o*w*G+R*y*k;break;case"YZX":this._x=R*w*G+o*y*k,this._y=o*y*G+R*w*k,this._z=o*w*k-R*y*G,this._w=o*w*G-R*y*k;break;case"XZY":this._x=R*w*G-o*y*k,this._y=o*y*G-R*w*k,this._z=o*w*k+R*y*G,this._w=o*w*G+R*y*k;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+E)}return I===!0&&this._onChangeCallback(),this}setFromAxisAngle(A,I){const g=I/2,B=Math.sin(g);return this._x=A.x*B,this._y=A.y*B,this._z=A.z*B,this._w=Math.cos(g),this._onChangeCallback(),this}setFromRotationMatrix(A){const I=A.elements,g=I[0],B=I[4],C=I[8],E=I[1],D=I[5],i=I[9],o=I[2],w=I[6],G=I[10],R=g+D+G;if(R>0){const y=.5/Math.sqrt(R+1);this._w=.25/y,this._x=(w-i)*y,this._y=(C-o)*y,this._z=(E-B)*y}else if(g>D&&g>G){const y=2*Math.sqrt(1+g-D-G);this._w=(w-i)/y,this._x=.25*y,this._y=(B+E)/y,this._z=(C+o)/y}else if(D>G){const y=2*Math.sqrt(1+D-g-G);this._w=(C-o)/y,this._x=(B+E)/y,this._y=.25*y,this._z=(i+w)/y}else{const y=2*Math.sqrt(1+G-g-D);this._w=(E-B)/y,this._x=(C+o)/y,this._y=(i+w)/y,this._z=.25*y}return this._onChangeCallback(),this}setFromUnitVectors(A,I){let g=A.dot(I)+1;return g<1e-8?(g=0,Math.abs(A.x)>Math.abs(A.z)?(this._x=-A.y,this._y=A.x,this._z=0,this._w=g):(this._x=0,this._y=-A.z,this._z=A.y,this._w=g)):(this._x=A.y*I.z-A.z*I.y,this._y=A.z*I.x-A.x*I.z,this._z=A.x*I.y-A.y*I.x,this._w=g),this.normalize()}angleTo(A){return 2*Math.acos(Math.abs(oA(this.dot(A),-1,1)))}rotateTowards(A,I){const g=this.angleTo(A);if(g===0)return this;const B=Math.min(1,I/g);return this.slerp(A,B),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(A){return this._x*A._x+this._y*A._y+this._z*A._z+this._w*A._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 A=this.length();return A===0?(this._x=0,this._y=0,this._z=0,this._w=1):(A=1/A,this._x=this._x*A,this._y=this._y*A,this._z=this._z*A,this._w=this._w*A),this._onChangeCallback(),this}multiply(A){return this.multiplyQuaternions(this,A)}premultiply(A){return this.multiplyQuaternions(A,this)}multiplyQuaternions(A,I){const g=A._x,B=A._y,C=A._z,E=A._w,D=I._x,i=I._y,o=I._z,w=I._w;return this._x=g*w+E*D+B*o-C*i,this._y=B*w+E*i+C*D-g*o,this._z=C*w+E*o+g*i-B*D,this._w=E*w-g*D-B*i-C*o,this._onChangeCallback(),this}slerp(A,I){if(I===0)return this;if(I===1)return this.copy(A);const g=this._x,B=this._y,C=this._z,E=this._w;let D=E*A._w+g*A._x+B*A._y+C*A._z;if(D<0?(this._w=-A._w,this._x=-A._x,this._y=-A._y,this._z=-A._z,D=-D):this.copy(A),D>=1)return this._w=E,this._x=g,this._y=B,this._z=C,this;const i=1-D*D;if(i<=Number.EPSILON){const y=1-I;return this._w=y*E+I*this._w,this._x=y*g+I*this._x,this._y=y*B+I*this._y,this._z=y*C+I*this._z,this.normalize(),this}const o=Math.sqrt(i),w=Math.atan2(o,D),G=Math.sin((1-I)*w)/o,R=Math.sin(I*w)/o;return this._w=E*G+this._w*R,this._x=g*G+this._x*R,this._y=B*G+this._y*R,this._z=C*G+this._z*R,this._onChangeCallback(),this}slerpQuaternions(A,I,g){return this.copy(A).slerp(I,g)}random(){const A=2*Math.PI*Math.random(),I=2*Math.PI*Math.random(),g=Math.random(),B=Math.sqrt(1-g),C=Math.sqrt(g);return this.set(B*Math.sin(A),B*Math.cos(A),C*Math.sin(I),C*Math.cos(I))}equals(A){return A._x===this._x&&A._y===this._y&&A._z===this._z&&A._w===this._w}fromArray(A,I=0){return this._x=A[I],this._y=A[I+1],this._z=A[I+2],this._w=A[I+3],this._onChangeCallback(),this}toArray(A=[],I=0){return A[I]=this._x,A[I+1]=this._y,A[I+2]=this._z,A[I+3]=this._w,A}fromBufferAttribute(A,I){return this._x=A.getX(I),this._y=A.getY(I),this._z=A.getZ(I),this._w=A.getW(I),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(A){return this._onChangeCallback=A,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class x{constructor(A=0,I=0,g=0){x.prototype.isVector3=!0,this.x=A,this.y=I,this.z=g}set(A,I,g){return g===void 0&&(g=this.z),this.x=A,this.y=I,this.z=g,this}setScalar(A){return this.x=A,this.y=A,this.z=A,this}setX(A){return this.x=A,this}setY(A){return this.y=A,this}setZ(A){return this.z=A,this}setComponent(A,I){switch(A){case 0:this.x=I;break;case 1:this.y=I;break;case 2:this.z=I;break;default:throw new Error("index is out of range: "+A)}return this}getComponent(A){switch(A){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+A)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(A){return this.x=A.x,this.y=A.y,this.z=A.z,this}add(A){return this.x+=A.x,this.y+=A.y,this.z+=A.z,this}addScalar(A){return this.x+=A,this.y+=A,this.z+=A,this}addVectors(A,I){return this.x=A.x+I.x,this.y=A.y+I.y,this.z=A.z+I.z,this}addScaledVector(A,I){return this.x+=A.x*I,this.y+=A.y*I,this.z+=A.z*I,this}sub(A){return this.x-=A.x,this.y-=A.y,this.z-=A.z,this}subScalar(A){return this.x-=A,this.y-=A,this.z-=A,this}subVectors(A,I){return this.x=A.x-I.x,this.y=A.y-I.y,this.z=A.z-I.z,this}multiply(A){return this.x*=A.x,this.y*=A.y,this.z*=A.z,this}multiplyScalar(A){return this.x*=A,this.y*=A,this.z*=A,this}multiplyVectors(A,I){return this.x=A.x*I.x,this.y=A.y*I.y,this.z=A.z*I.z,this}applyEuler(A){return this.applyQuaternion(Vg.setFromEuler(A))}applyAxisAngle(A,I){return this.applyQuaternion(Vg.setFromAxisAngle(A,I))}applyMatrix3(A){const I=this.x,g=this.y,B=this.z,C=A.elements;return this.x=C[0]*I+C[3]*g+C[6]*B,this.y=C[1]*I+C[4]*g+C[7]*B,this.z=C[2]*I+C[5]*g+C[8]*B,this}applyNormalMatrix(A){return this.applyMatrix3(A).normalize()}applyMatrix4(A){const I=this.x,g=this.y,B=this.z,C=A.elements,E=1/(C[3]*I+C[7]*g+C[11]*B+C[15]);return this.x=(C[0]*I+C[4]*g+C[8]*B+C[12])*E,this.y=(C[1]*I+C[5]*g+C[9]*B+C[13])*E,this.z=(C[2]*I+C[6]*g+C[10]*B+C[14])*E,this}applyQuaternion(A){const I=this.x,g=this.y,B=this.z,C=A.x,E=A.y,D=A.z,i=A.w,o=2*(E*B-D*g),w=2*(D*I-C*B),G=2*(C*g-E*I);return this.x=I+i*o+E*G-D*w,this.y=g+i*w+D*o-C*G,this.z=B+i*G+C*w-E*o,this}project(A){return this.applyMatrix4(A.matrixWorldInverse).applyMatrix4(A.projectionMatrix)}unproject(A){return this.applyMatrix4(A.projectionMatrixInverse).applyMatrix4(A.matrixWorld)}transformDirection(A){const I=this.x,g=this.y,B=this.z,C=A.elements;return this.x=C[0]*I+C[4]*g+C[8]*B,this.y=C[1]*I+C[5]*g+C[9]*B,this.z=C[2]*I+C[6]*g+C[10]*B,this.normalize()}divide(A){return this.x/=A.x,this.y/=A.y,this.z/=A.z,this}divideScalar(A){return this.multiplyScalar(1/A)}min(A){return this.x=Math.min(this.x,A.x),this.y=Math.min(this.y,A.y),this.z=Math.min(this.z,A.z),this}max(A){return this.x=Math.max(this.x,A.x),this.y=Math.max(this.y,A.y),this.z=Math.max(this.z,A.z),this}clamp(A,I){return this.x=oA(this.x,A.x,I.x),this.y=oA(this.y,A.y,I.y),this.z=oA(this.z,A.z,I.z),this}clampScalar(A,I){return this.x=oA(this.x,A,I),this.y=oA(this.y,A,I),this.z=oA(this.z,A,I),this}clampLength(A,I){const g=this.length();return this.divideScalar(g||1).multiplyScalar(oA(g,A,I))}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(A){return this.x*A.x+this.y*A.y+this.z*A.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(A){return this.normalize().multiplyScalar(A)}lerp(A,I){return this.x+=(A.x-this.x)*I,this.y+=(A.y-this.y)*I,this.z+=(A.z-this.z)*I,this}lerpVectors(A,I,g){return this.x=A.x+(I.x-A.x)*g,this.y=A.y+(I.y-A.y)*g,this.z=A.z+(I.z-A.z)*g,this}cross(A){return this.crossVectors(this,A)}crossVectors(A,I){const g=A.x,B=A.y,C=A.z,E=I.x,D=I.y,i=I.z;return this.x=B*i-C*D,this.y=C*E-g*i,this.z=g*D-B*E,this}projectOnVector(A){const I=A.lengthSq();if(I===0)return this.set(0,0,0);const g=A.dot(this)/I;return this.copy(A).multiplyScalar(g)}projectOnPlane(A){return Ag.copy(this).projectOnVector(A),this.sub(Ag)}reflect(A){return this.sub(Ag.copy(A).multiplyScalar(2*this.dot(A)))}angleTo(A){const I=Math.sqrt(this.lengthSq()*A.lengthSq());if(I===0)return Math.PI/2;const g=this.dot(A)/I;return Math.acos(oA(g,-1,1))}distanceTo(A){return Math.sqrt(this.distanceToSquared(A))}distanceToSquared(A){const I=this.x-A.x,g=this.y-A.y,B=this.z-A.z;return I*I+g*g+B*B}manhattanDistanceTo(A){return Math.abs(this.x-A.x)+Math.abs(this.y-A.y)+Math.abs(this.z-A.z)}setFromSpherical(A){return this.setFromSphericalCoords(A.radius,A.phi,A.theta)}setFromSphericalCoords(A,I,g){const B=Math.sin(I)*A;return this.x=B*Math.sin(g),this.y=Math.cos(I)*A,this.z=B*Math.cos(g),this}setFromCylindrical(A){return this.setFromCylindricalCoords(A.radius,A.theta,A.y)}setFromCylindricalCoords(A,I,g){return this.x=A*Math.sin(I),this.y=g,this.z=A*Math.cos(I),this}setFromMatrixPosition(A){const I=A.elements;return this.x=I[12],this.y=I[13],this.z=I[14],this}setFromMatrixScale(A){const I=this.setFromMatrixColumn(A,0).length(),g=this.setFromMatrixColumn(A,1).length(),B=this.setFromMatrixColumn(A,2).length();return this.x=I,this.y=g,this.z=B,this}setFromMatrixColumn(A,I){return this.fromArray(A.elements,I*4)}setFromMatrix3Column(A,I){return this.fromArray(A.elements,I*3)}setFromEuler(A){return this.x=A._x,this.y=A._y,this.z=A._z,this}setFromColor(A){return this.x=A.r,this.y=A.g,this.z=A.b,this}equals(A){return A.x===this.x&&A.y===this.y&&A.z===this.z}fromArray(A,I=0){return this.x=A[I],this.y=A[I+1],this.z=A[I+2],this}toArray(A=[],I=0){return A[I]=this.x,A[I+1]=this.y,A[I+2]=this.z,A}fromBufferAttribute(A,I){return this.x=A.getX(I),this.y=A.getY(I),this.z=A.getZ(I),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const A=Math.random()*Math.PI*2,I=Math.random()*2-1,g=Math.sqrt(1-I*I);return this.x=g*Math.cos(A),this.y=I,this.z=g*Math.sin(A),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const Ag=new x,Vg=new nA;class oI{constructor(A,I,g,B,C,E,D,i,o){oI.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],A!==void 0&&this.set(A,I,g,B,C,E,D,i,o)}set(A,I,g,B,C,E,D,i,o){const w=this.elements;return w[0]=A,w[1]=B,w[2]=D,w[3]=I,w[4]=C,w[5]=i,w[6]=g,w[7]=E,w[8]=o,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(A){const I=this.elements,g=A.elements;return I[0]=g[0],I[1]=g[1],I[2]=g[2],I[3]=g[3],I[4]=g[4],I[5]=g[5],I[6]=g[6],I[7]=g[7],I[8]=g[8],this}extractBasis(A,I,g){return A.setFromMatrix3Column(this,0),I.setFromMatrix3Column(this,1),g.setFromMatrix3Column(this,2),this}setFromMatrix4(A){const I=A.elements;return this.set(I[0],I[4],I[8],I[1],I[5],I[9],I[2],I[6],I[10]),this}multiply(A){return this.multiplyMatrices(this,A)}premultiply(A){return this.multiplyMatrices(A,this)}multiplyMatrices(A,I){const g=A.elements,B=I.elements,C=this.elements,E=g[0],D=g[3],i=g[6],o=g[1],w=g[4],G=g[7],R=g[2],y=g[5],k=g[8],F=B[0],s=B[3],h=B[6],J=B[1],S=B[4],N=B[7],M=B[2],K=B[5],p=B[8];return C[0]=E*F+D*J+i*M,C[3]=E*s+D*S+i*K,C[6]=E*h+D*N+i*p,C[1]=o*F+w*J+G*M,C[4]=o*s+w*S+G*K,C[7]=o*h+w*N+G*p,C[2]=R*F+y*J+k*M,C[5]=R*s+y*S+k*K,C[8]=R*h+y*N+k*p,this}multiplyScalar(A){const I=this.elements;return I[0]*=A,I[3]*=A,I[6]*=A,I[1]*=A,I[4]*=A,I[7]*=A,I[2]*=A,I[5]*=A,I[8]*=A,this}determinant(){const A=this.elements,I=A[0],g=A[1],B=A[2],C=A[3],E=A[4],D=A[5],i=A[6],o=A[7],w=A[8];return I*E*w-I*D*o-g*C*w+g*D*i+B*C*o-B*E*i}invert(){const A=this.elements,I=A[0],g=A[1],B=A[2],C=A[3],E=A[4],D=A[5],i=A[6],o=A[7],w=A[8],G=w*E-D*o,R=D*i-w*C,y=o*C-E*i,k=I*G+g*R+B*y;if(k===0)return this.set(0,0,0,0,0,0,0,0,0);const F=1/k;return A[0]=G*F,A[1]=(B*o-w*g)*F,A[2]=(D*g-B*E)*F,A[3]=R*F,A[4]=(w*I-B*i)*F,A[5]=(B*C-D*I)*F,A[6]=y*F,A[7]=(g*i-o*I)*F,A[8]=(E*I-g*C)*F,this}transpose(){let A;const I=this.elements;return A=I[1],I[1]=I[3],I[3]=A,A=I[2],I[2]=I[6],I[6]=A,A=I[5],I[5]=I[7],I[7]=A,this}getNormalMatrix(A){return this.setFromMatrix4(A).invert().transpose()}transposeIntoArray(A){const I=this.elements;return A[0]=I[0],A[1]=I[3],A[2]=I[6],A[3]=I[1],A[4]=I[4],A[5]=I[7],A[6]=I[2],A[7]=I[5],A[8]=I[8],this}setUvTransform(A,I,g,B,C,E,D){const i=Math.cos(C),o=Math.sin(C);return this.set(g*i,g*o,-g*(i*E+o*D)+E+A,-B*o,B*i,-B*(-o*E+i*D)+D+I,0,0,1),this}scale(A,I){return this.premultiply(Ig.makeScale(A,I)),this}rotate(A){return this.premultiply(Ig.makeRotation(-A)),this}translate(A,I){return this.premultiply(Ig.makeTranslation(A,I)),this}makeTranslation(A,I){return A.isVector2?this.set(1,0,A.x,0,1,A.y,0,0,1):this.set(1,0,A,0,1,I,0,0,1),this}makeRotation(A){const I=Math.cos(A),g=Math.sin(A);return this.set(I,-g,0,g,I,0,0,0,1),this}makeScale(A,I){return this.set(A,0,0,0,I,0,0,0,1),this}equals(A){const I=this.elements,g=A.elements;for(let B=0;B<9;B++)if(I[B]!==g[B])return!1;return!0}fromArray(A,I=0){for(let g=0;g<9;g++)this.elements[g]=A[g+I];return this}toArray(A=[],I=0){const g=this.elements;return A[I]=g[0],A[I+1]=g[1],A[I+2]=g[2],A[I+3]=g[3],A[I+4]=g[4],A[I+5]=g[5],A[I+6]=g[6],A[I+7]=g[7],A[I+8]=g[8],A}clone(){return new this.constructor().fromArray(this.elements)}}const Ig=new oI,Wg={};function jg(Q){Q in Wg||(Wg[Q]=!0,console.warn(Q))}const mg=new oI().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),ug=new oI().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function AB(){const Q={enabled:!0,workingColorSpace:Tg,spaces:{},convert:function(B,C,E){return this.enabled===!1||C===E||!C||!E||(this.spaces[C].transfer===_I&&(B.r=jA(B.r),B.g=jA(B.g),B.b=jA(B.b)),this.spaces[C].primaries!==this.spaces[E].primaries&&(B.applyMatrix3(this.spaces[C].toXYZ),B.applyMatrix3(this.spaces[E].fromXYZ)),this.spaces[E].transfer===_I&&(B.r=mA(B.r),B.g=mA(B.g),B.b=mA(B.b))),B},workingToColorSpace:function(B,C){return this.convert(B,this.workingColorSpace,C)},colorSpaceToWorking:function(B,C){return this.convert(B,C,this.workingColorSpace)},getPrimaries:function(B){return this.spaces[B].primaries},getTransfer:function(B){return B===_Q?Xg:this.spaces[B].transfer},getToneMappingMode:function(B){return this.spaces[B].outputColorSpaceConfig.toneMappingMode||"standard"},getLuminanceCoefficients:function(B,C=this.workingColorSpace){return B.fromArray(this.spaces[C].luminanceCoefficients)},define:function(B){Object.assign(this.spaces,B)},_getMatrix:function(B,C,E){return B.copy(this.spaces[C].toXYZ).multiply(this.spaces[E].fromXYZ)},_getDrawingBufferColorSpace:function(B){return this.spaces[B].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(B=this.workingColorSpace){return this.spaces[B].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(B,C){return jg("THREE.ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),Q.workingToColorSpace(B,C)},toWorkingColorSpace:function(B,C){return jg("THREE.ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),Q.colorSpaceToWorking(B,C)}},A=[.64,.33,.3,.6,.15,.06],I=[.2126,.7152,.0722],g=[.3127,.329];return Q.define({[Tg]:{primaries:A,whitePoint:g,transfer:Xg,toXYZ:mg,fromXYZ:ug,luminanceCoefficients:I,workingColorSpaceConfig:{unpackColorSpace:UA},outputColorSpaceConfig:{drawingBufferColorSpace:UA}},[UA]:{primaries:A,whitePoint:g,transfer:_I,toXYZ:mg,fromXYZ:ug,luminanceCoefficients:I,outputColorSpaceConfig:{drawingBufferColorSpace:UA}}}),Q}const cA=AB();function jA(Q){return Q<.04045?Q*.0773993808:Math.pow(Q*.9478672986+.0521327014,2.4)}function mA(Q){return Q<.0031308?Q*12.92:1.055*Math.pow(Q,.41666)-.055}class zg{constructor(A=new x(1/0,1/0,1/0),I=new x(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=A,this.max=I}set(A,I){return this.min.copy(A),this.max.copy(I),this}setFromArray(A){this.makeEmpty();for(let I=0,g=A.length;I=this.min.x&&A.x<=this.max.x&&A.y>=this.min.y&&A.y<=this.max.y&&A.z>=this.min.z&&A.z<=this.max.z}containsBox(A){return this.min.x<=A.min.x&&A.max.x<=this.max.x&&this.min.y<=A.min.y&&A.max.y<=this.max.y&&this.min.z<=A.min.z&&A.max.z<=this.max.z}getParameter(A,I){return I.set((A.x-this.min.x)/(this.max.x-this.min.x),(A.y-this.min.y)/(this.max.y-this.min.y),(A.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(A){return A.max.x>=this.min.x&&A.min.x<=this.max.x&&A.max.y>=this.min.y&&A.min.y<=this.max.y&&A.max.z>=this.min.z&&A.min.z<=this.max.z}intersectsSphere(A){return this.clampPoint(A.center,HA),HA.distanceToSquared(A.center)<=A.radius*A.radius}intersectsPlane(A){let I,g;return A.normal.x>0?(I=A.normal.x*this.min.x,g=A.normal.x*this.max.x):(I=A.normal.x*this.max.x,g=A.normal.x*this.min.x),A.normal.y>0?(I+=A.normal.y*this.min.y,g+=A.normal.y*this.max.y):(I+=A.normal.y*this.max.y,g+=A.normal.y*this.min.y),A.normal.z>0?(I+=A.normal.z*this.min.z,g+=A.normal.z*this.max.z):(I+=A.normal.z*this.max.z,g+=A.normal.z*this.min.z),I<=-A.constant&&g>=-A.constant}intersectsTriangle(A){if(this.isEmpty())return!1;this.getCenter(yI),YI.subVectors(this.max,yI),uA.subVectors(A.a,yI),zA.subVectors(A.b,yI),vA.subVectors(A.c,yI),PA.subVectors(zA,uA),fA.subVectors(vA,zA),TA.subVectors(uA,vA);let I=[0,-PA.z,PA.y,0,-fA.z,fA.y,0,-TA.z,TA.y,PA.z,0,-PA.x,fA.z,0,-fA.x,TA.z,0,-TA.x,-PA.y,PA.x,0,-fA.y,fA.x,0,-TA.y,TA.x,0];return!gg(I,uA,zA,vA,YI)||(I=[1,0,0,0,1,0,0,0,1],!gg(I,uA,zA,vA,YI))?!1:(KI.crossVectors(PA,fA),I=[KI.x,KI.y,KI.z],gg(I,uA,zA,vA,YI))}clampPoint(A,I){return I.copy(A).clamp(this.min,this.max)}distanceToPoint(A){return this.clampPoint(A,HA).distanceTo(A)}getBoundingSphere(A){return this.isEmpty()?A.makeEmpty():(this.getCenter(A.center),A.radius=this.getSize(HA).length()*.5),A}intersect(A){return this.min.max(A.min),this.max.min(A.max),this.isEmpty()&&this.makeEmpty(),this}union(A){return this.min.min(A.min),this.max.max(A.max),this}applyMatrix4(A){return this.isEmpty()?this:(tA[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(A),tA[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(A),tA[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(A),tA[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(A),tA[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(A),tA[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(A),tA[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(A),tA[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(A),this.setFromPoints(tA),this)}translate(A){return this.min.add(A),this.max.add(A),this}equals(A){return A.min.equals(this.min)&&A.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(A){return this.min.fromArray(A.min),this.max.fromArray(A.max),this}}const tA=[new x,new x,new x,new x,new x,new x,new x,new x],HA=new x,aI=new zg,uA=new x,zA=new x,vA=new x,PA=new x,fA=new x,TA=new x,yI=new x,YI=new x,KI=new x,XA=new x;function gg(Q,A,I,g,B){for(let C=0,E=Q.length-3;C<=E;C+=3){XA.fromArray(Q,C);const D=B.x*Math.abs(XA.x)+B.y*Math.abs(XA.y)+B.z*Math.abs(XA.z),i=A.dot(XA),o=I.dot(XA),w=g.dot(XA);if(Math.max(-Math.max(i,o,w),Math.min(i,o,w))>D)return!1}return!0}const vg={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},pA={h:0,s:0,l:0},tI={h:0,s:0,l:0};function Qg(Q,A,I){return I<0&&(I+=1),I>1&&(I-=1),I<1/6?Q+(A-Q)*6*I:I<1/2?A:I<2/3?Q+(A-Q)*6*(2/3-I):Q}class Bg{constructor(A,I,g){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(A,I,g)}set(A,I,g){if(I===void 0&&g===void 0){const B=A;B&&B.isColor?this.copy(B):typeof B=="number"?this.setHex(B):typeof B=="string"&&this.setStyle(B)}else this.setRGB(A,I,g);return this}setScalar(A){return this.r=A,this.g=A,this.b=A,this}setHex(A,I=UA){return A=Math.floor(A),this.r=(A>>16&255)/255,this.g=(A>>8&255)/255,this.b=(A&255)/255,cA.colorSpaceToWorking(this,I),this}setRGB(A,I,g,B=cA.workingColorSpace){return this.r=A,this.g=I,this.b=g,cA.colorSpaceToWorking(this,B),this}setHSL(A,I,g,B=cA.workingColorSpace){if(A=$Q(A,1),I=oA(I,0,1),g=oA(g,0,1),I===0)this.r=this.g=this.b=g;else{const C=g<=.5?g*(1+I):g+I-g*I,E=2*g-C;this.r=Qg(E,C,A+1/3),this.g=Qg(E,C,A),this.b=Qg(E,C,A-1/3)}return cA.colorSpaceToWorking(this,B),this}setStyle(A,I=UA){function g(C){C!==void 0&&parseFloat(C)<1&&console.warn("THREE.Color: Alpha component of "+A+" will be ignored.")}let B;if(B=/^(\\w+)\\(([^\\)]*)\\)/.exec(A)){let C;const E=B[1],D=B[2];switch(E){case"rgb":case"rgba":if(C=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(D))return g(C[4]),this.setRGB(Math.min(255,parseInt(C[1],10))/255,Math.min(255,parseInt(C[2],10))/255,Math.min(255,parseInt(C[3],10))/255,I);if(C=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(D))return g(C[4]),this.setRGB(Math.min(100,parseInt(C[1],10))/100,Math.min(100,parseInt(C[2],10))/100,Math.min(100,parseInt(C[3],10))/100,I);break;case"hsl":case"hsla":if(C=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(D))return g(C[4]),this.setHSL(parseFloat(C[1])/360,parseFloat(C[2])/100,parseFloat(C[3])/100,I);break;default:console.warn("THREE.Color: Unknown color model "+A)}}else if(B=/^\\#([A-Fa-f\\d]+)$/.exec(A)){const C=B[1],E=C.length;if(E===3)return this.setRGB(parseInt(C.charAt(0),16)/15,parseInt(C.charAt(1),16)/15,parseInt(C.charAt(2),16)/15,I);if(E===6)return this.setHex(parseInt(C,16),I);console.warn("THREE.Color: Invalid hex color "+A)}else if(A&&A.length>0)return this.setColorName(A,I);return this}setColorName(A,I=UA){const g=vg[A.toLowerCase()];return g!==void 0?this.setHex(g,I):console.warn("THREE.Color: Unknown color "+A),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(A){return this.r=A.r,this.g=A.g,this.b=A.b,this}copySRGBToLinear(A){return this.r=jA(A.r),this.g=jA(A.g),this.b=jA(A.b),this}copyLinearToSRGB(A){return this.r=mA(A.r),this.g=mA(A.g),this.b=mA(A.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(A=UA){return cA.workingToColorSpace(BA.copy(this),A),Math.round(oA(BA.r*255,0,255))*65536+Math.round(oA(BA.g*255,0,255))*256+Math.round(oA(BA.b*255,0,255))}getHexString(A=UA){return("000000"+this.getHex(A).toString(16)).slice(-6)}getHSL(A,I=cA.workingColorSpace){cA.workingToColorSpace(BA.copy(this),I);const g=BA.r,B=BA.g,C=BA.b,E=Math.max(g,B,C),D=Math.min(g,B,C);let i,o;const w=(D+E)/2;if(D===E)i=0,o=0;else{const G=E-D;switch(o=w<=.5?G/(E+D):G/(2-E-D),E){case g:i=(B-C)/G+(B(Q.PLY="ply",Q.SPZ="spz",Q.SPLAT="splat",Q.KSPLAT="ksplat",Q.PCSOGS="pcsogs",Q.PCSOGSZIP="pcsogszip",Q.RAD="rad",Q))(wA||{});function QB(Q){var C;let A=!1;const I=Q.split(`\n`).map(E=>{const D=E.trimEnd();return A?D:D.length>0?(A=!0,D):null}).filter(E=>E!=null);for(;I.length>0&&I[I.length-1].length===0;)I.pop();if(I.length===0)return[];const g=(C=I[0].match(/^\\s*/))==null?void 0:C[0];if(!g)return I;const B=new RegExp(`^${g}`);return I.map(E=>E.replace(B,""))}function BB(Q){return QB(Q).join(`\n`)}const Cg=new Float32Array(1),QQ=new Uint32Array(Cg.buffer),Eg="Float16Array"in globalThis,RI=Eg?new globalThis.Float16Array(1):null,BQ=new Uint16Array(RI==null?void 0:RI.buffer);function CB(Q){const A=Math.sqrt(Q.reduce((I,g)=>I+g*g,0));return Q.map(I=>I/A)}const $A=Eg?EB:DB,AA=Eg?iB:wB;function EB(Q){return RI[0]=Q,BQ[0]}function DB(Q){Cg[0]=Q;const A=QQ[0],I=A>>31&1,g=A>>23&255,B=A&8388607,C=I<<15;if(g===255)return B!==0?C|32767:C|31744;const E=g-127+15;if(E>=31)return C|31744;if(E<=0){if(E<-10)return C;const i=(B|8388608)>>1-E+13;return C|i}const D=B>>13;return C|E<<10|D}function iB(Q){return BQ[0]=Q,RI[0]}function wB(Q){const A=Q>>15&1,I=Q>>10&31,g=Q&1023;let B;if(I===0)if(g===0)B=A<<31;else{let C=g,E=-14;for(;(C&1024)===0;)C<<=1,E--;C&=1023;const D=E+127,i=C<<13;B=A<<31|D<<23|i}else if(I===31)g===0?B=A<<31|2139095040:B=A<<31|2143289344;else{const C=I-15+127,E=g<<13;B=A<<31|C<<23|E}return QQ[0]=B,Cg[0]}function SA(Q){return Math.max(0,Math.min(255,Math.round(Q*255)))}function GB(Q){const A=[],I=new Set;function g(B){B&&typeof B=="object"&&!I.has(B)&&(I.add(B),B instanceof ArrayBuffer?A.push(B):ArrayBuffer.isView(B)?A.push(B.buffer):Array.isArray(B)?B.forEach(g):Object.values(B).forEach(g))}return g(Q),A}function Dg(Q,A,I,g,B,C,E,D,i,o,w,G,R,y,k,F,s){const h=(s==null?void 0:s.rgbMin)??0,S=((s==null?void 0:s.rgbMax)??1)-h,N=SA((y-h)/S),M=SA((k-h)/S),K=SA((F-h)/S),p=SA(s!=null&&s.lodOpacity?.5*R:R),c=GQ(DQ.set(i,o,w,G)),U=c&255,r=c>>>8&255,a=c>>>16&255,H=(s==null?void 0:s.lnScaleMin)??_g,t=254/(((s==null?void 0:s.lnScaleMax)??$g)-H),Y=C<_A?0:Math.min(255,Math.max(1,Math.round((Math.log(C)-H)*t)+1)),n=E<_A?0:Math.min(255,Math.max(1,Math.round((Math.log(E)-H)*t)+1)),T=D<_A?0:Math.min(255,Math.max(1,Math.round((Math.log(D)-H)*t)+1)),W=$A(I),X=$A(g),z=$A(B),j=A*4;Q[j]=N|M<<8|K<<16|p<<24,Q[j+1]=W|X<<16,Q[j+2]=z|U<<16|r<<24,Q[j+3]=Y|n<<8|T<<16|a<<24}function CQ(Q,A,I,g,B){const C=$A(I),E=$A(g),D=$A(B),i=A*4;Q[i+1]=C|E<<16,Q[i+2]=D|Q[i+2]&4294901760}function EQ(Q,A,I,g,B,C){const E=(C==null?void 0:C.lnScaleMin)??_g,i=254/(((C==null?void 0:C.lnScaleMax)??$g)-E),o=I<_A?0:Math.min(255,Math.max(1,Math.round((Math.log(I)-E)*i)+1)),w=g<_A?0:Math.min(255,Math.max(1,Math.round((Math.log(g)-E)*i)+1)),G=B<_A?0:Math.min(255,Math.max(1,Math.round((Math.log(B)-E)*i)+1)),R=A*4;Q[R+3]=o|w<<8|G<<16|Q[R+3]&4278190080}const DQ=new nA;function iQ(Q,A,I,g,B,C){const E=GQ(DQ.set(I,g,B,C)),D=E&255,i=E>>>8&255,o=E>>>16&255,w=A*4;Q[w+2]=Q[w+2]&65535|D<<16|i<<24,Q[w+3]=Q[w+3]&16777215|o<<24}function oB(Q,A,I,g,B,C,E){const D=(E==null?void 0:E.rgbMin)??0,o=((E==null?void 0:E.rgbMax)??1)-D,w=SA((I-D)/o),G=SA((g-D)/o),R=SA((B-D)/o),y=SA(E!=null&&E.lodOpacity?.5*C:C),k=A*4;Q[k]=w|G<<8|R<<16|y<<24}function yB(Q,A,I,g,B,C){const E=(C==null?void 0:C.rgbMin)??0,i=((C==null?void 0:C.rgbMax)??1)-E,o=SA((I-E)/i),w=SA((g-E)/i),G=SA((B-E)/i),R=A*4;Q[R]=o|w<<8|G<<16|Q[R]&4278190080}function RB(Q,A,I){const g=SA(I),B=A*4;Q[B]=Q[B]&16777215|g<<24}new x,new x,new Bg;function kB(Q){const A=AQ,I=Math.max(gQ,Math.min(IQ,Math.ceil(Q/A))),g=Math.ceil(Q/(A*I)),B=A*I*g;return{width:A,height:I,depth:g,maxSplats:B}}function qI(Q){const A=AQ,I=Math.max(gQ,Math.min(IQ,Math.ceil(Q/A))),g=Math.ceil(Q/(A*I));return A*I*g}BB(`\n precision highp float;\n\n in vec3 position;\n\n void main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n }\n`);const FB=new nA,wQ=new x;function GQ(Q){const A=FB.copy(Q).normalize();A.w<0&&A.set(-A.x,-A.y,-A.z,-A.w);const I=2*Math.acos(A.w),g=Math.sqrt(A.x*A.x+A.y*A.y+A.z*A.z),B=g<1e-6?wQ.set(1,0,0):wQ.set(A.x,A.y,A.z).divideScalar(g),C=Math.abs(B.x)+Math.abs(B.y)+Math.abs(B.z);let E=B.x/C,D=B.y/C;if(B.z<0){const y=E;E=(1-Math.abs(D))*(E>=0?1:-1),D=(1-Math.abs(y))*(D>=0?1:-1)}const i=E*.5+.5,o=D*.5+.5,w=Math.round(i*255),G=Math.round(o*255);return Math.round(I*(255/Math.PI))<<16|G<<8|w}function dI(Q,A,I,g){const B=Math.round(Math.max(-127,Math.min(127,Q*127))),C=Math.round(Math.max(-127,Math.min(127,A*127))),E=Math.round(Math.max(-127,Math.min(127,I*127))),D=Math.round(Math.max(-127,Math.min(127,g*127)));return B&255|(C&255)<<8|(E&255)<<16|(D&255)<<24}function xI(Q,A,I,g){const C=63/((g==null?void 0:g.sh1Max)??1),E=A*2;for(let D=0;D<9;++D){const i=I[D]*C,o=Math.round(Math.max(-63,Math.min(63,i)))&127,w=D*7,G=w+7,R=Math.floor(w/32),y=w-R*32,k=o<R*32+32){const F=o>>>32-y&4294967295;Q[E+R+1]|=F}}}function rI(Q,A,I,g){const C=1/((g==null?void 0:g.sh2Max)??1);Q[A*4+0]=dI(I[0]*C,I[1]*C,I[2]*C,I[3]*C),Q[A*4+1]=dI(I[4]*C,I[5]*C,I[6]*C,I[7]*C),Q[A*4+2]=dI(I[8]*C,I[9]*C,I[10]*C,I[11]*C),Q[A*4+3]=dI(I[12]*C,I[13]*C,I[14]*C,0)}function nI(Q,A,I,g){const C=31/((g==null?void 0:g.sh3Max)??1),E=A*4;for(let D=0;D<21;++D){const i=I[D]*C,o=Math.round(Math.max(-31,Math.min(31,i)))&63,w=D*6,G=w+6,R=Math.floor(w/32),y=w-R*32,k=o<R*32+32){const F=o>>>32-y&4294967295;Q[E+R+1]|=F}}}function hB(Q,A){const I=[];let g=0,B=null;const C=new WQ((i,o)=>{if(I.push(i),g+=i.length,o||g>=A){const w=new Uint8Array(g);let G=0;for(const R of I)w.set(R,G),G+=R.length;B=w.slice(0,A)}}),E=1024;let D=0;for(;B==null&&D{I=C,g=qI(I),B=new Uint32Array(g*4)},(C,E,D,i,o,w,G,R,y,k,F,s,h,J,S)=>{Dg(B,C,E,D,i,o,w,G,R,y,k,F,s,h,J,S,A)}),{packedArray:B,numSplats:I}}const PI={0:{bytesPerCenter:12,bytesPerScale:12,bytesPerRotation:16,bytesPerColor:4,bytesPerSphericalHarmonicsComponent:4,scaleOffsetBytes:12,rotationOffsetBytes:24,colorOffsetBytes:40,sphericalHarmonicsOffsetBytes:44,scaleRange:1},1:{bytesPerCenter:6,bytesPerScale:6,bytesPerRotation:8,bytesPerColor:4,bytesPerSphericalHarmonicsComponent:2,scaleOffsetBytes:6,rotationOffsetBytes:12,colorOffsetBytes:20,sphericalHarmonicsOffsetBytes:24,scaleRange:32767},2:{bytesPerCenter:6,bytesPerScale:6,bytesPerRotation:8,bytesPerColor:4,bytesPerSphericalHarmonicsComponent:1,scaleOffsetBytes:6,rotationOffsetBytes:12,colorOffsetBytes:20,sphericalHarmonicsOffsetBytes:24,scaleRange:32767}},yQ={0:0,1:9,2:24,3:45};function NB(Q,A,I,g){var F;let E=0;const D=new DataView(Q.buffer,E,4096);E+=4096;const i=D.getUint8(0),o=D.getUint8(1);if(i!==0||o<1)throw new Error(`Unsupported .ksplat version: ${i}.${o}`);const w=D.getUint32(4,!0);D.getUint32(16,!0);const G=D.getUint16(20,!0);if(G<0||G>2)throw new Error(`Invalid .ksplat compression level: ${G}`);const R=D.getFloat32(36,!0)||-1.5,y=D.getFloat32(40,!0)||1.5;let k=4096+w*1024;for(let s=0;s=1?new Float32Array(3*3):void 0,kA=Y>=2?new Float32Array(5*3):void 0,qA=Y>=3?new Float32Array(7*3):void 0,FA=p/2/U,sA=k+q,NA=k+t,P=new DataView(Q.buffer,NA,d),DA=new Float32Array(Q.buffer,sA,K*3),$=new Uint32Array(Q.buffer,k,H);let Z=r,bA=a;for(let iA=0;iA=bA+KA&&(Z+=1,bA+=KA),JA=Z}const IA=G===0?P.getFloat32(f+0,!0):(P.getUint16(f+0,!0)-U)*FA+DA[3*JA+0],l=G===0?P.getFloat32(f+4,!0):(P.getUint16(f+2,!0)-U)*FA+DA[3*JA+1],aA=G===0?P.getFloat32(f+8,!0):(P.getUint16(f+4,!0)-U)*FA+DA[3*JA+2],FI=G===0?P.getFloat32(f+u+0,!0):AA(P.getUint16(f+u+0,!0)),hI=G===0?P.getFloat32(f+u+4,!0):AA(P.getUint16(f+u+2,!0)),Rg=G===0?P.getFloat32(f+u+8,!0):AA(P.getUint16(f+u+4,!0)),kg=G===0?P.getFloat32(f+O+0,!0):AA(P.getUint16(f+O+0,!0)),Fg=G===0?P.getFloat32(f+O+4,!0):AA(P.getUint16(f+O+2,!0)),hg=G===0?P.getFloat32(f+O+8,!0):AA(P.getUint16(f+O+4,!0)),Sg=G===0?P.getFloat32(f+O+12,!0):AA(P.getUint16(f+O+6,!0)),sg=P.getUint8(f+V+0)/255,Ng=P.getUint8(f+V+1)/255,Jg=P.getUint8(f+V+2)/255,Mg=P.getUint8(f+V+3)/255;if(I(iA,IA,l,aA,FI,hI,Rg,Fg,hg,Sg,kg,Mg,sg,Ng,Jg),Y>=1&&RA){for(const[KA,VA]of EA.entries())RA[KA]=h(f,VA);if(kA)for(const[KA,VA]of yA.entries())kA[KA]=h(f,VA);if(qA)for(const[KA,VA]of GA.entries())qA[KA]=h(f,VA);g==null||g(iA,RA,kA,qA)}}k+=CA}}function JB(Q,A){var J;let B=0;const C=new DataView(Q.buffer,B,4096);B+=4096;const E=C.getUint8(0),D=C.getUint8(1);if(E!==0||D<1)throw new Error(`Unsupported .ksplat version: ${E}.${D}`);const i=C.getUint32(4,!0),o=C.getUint32(16,!0),w=C.getUint16(20,!0);if(w<0||w>2)throw new Error(`Invalid .ksplat compression level: ${w}`);const G=C.getFloat32(36,!0)||-1.5,R=C.getFloat32(40,!0)||1.5,y=o,k=qI(y),F=new Uint32Array(k*4),s={};let h=4096+i*1024;for(let S=0;S=1?new Float32Array(3*3):void 0,sA=W>=2?new Float32Array(5*3):void 0,NA=W>=3?new Float32Array(7*3):void 0,P=r/2/H,DA=h+n,$=h+T,Z=new DataView(Q.buffer,$,yA),bA=new Float32Array(Q.buffer,DA,U*3),iA=new Uint32Array(Q.buffer,h,Y);let f=q,JA=t;for(let IA=0;IA=JA+lA&&(f+=1,JA+=lA),aA=f}const FI=w===0?Z.getFloat32(l+0,!0):(Z.getUint16(l+0,!0)-H)*P+bA[3*aA+0],hI=w===0?Z.getFloat32(l+4,!0):(Z.getUint16(l+2,!0)-H)*P+bA[3*aA+1],Rg=w===0?Z.getFloat32(l+8,!0):(Z.getUint16(l+4,!0)-H)*P+bA[3*aA+2],kg=w===0?Z.getFloat32(l+b+0,!0):AA(Z.getUint16(l+b+0,!0)),Fg=w===0?Z.getFloat32(l+b+4,!0):AA(Z.getUint16(l+b+2,!0)),hg=w===0?Z.getFloat32(l+b+8,!0):AA(Z.getUint16(l+b+4,!0)),Sg=w===0?Z.getFloat32(l+e+0,!0):AA(Z.getUint16(l+e+0,!0)),sg=w===0?Z.getFloat32(l+e+4,!0):AA(Z.getUint16(l+e+2,!0)),Ng=w===0?Z.getFloat32(l+e+8,!0):AA(Z.getUint16(l+e+4,!0)),Jg=w===0?Z.getFloat32(l+e+12,!0):AA(Z.getUint16(l+e+6,!0)),Mg=Z.getUint8(l+d+0)/255,KA=Z.getUint8(l+d+1)/255,VA=Z.getUint8(l+d+2)/255,XB=Z.getUint8(l+d+3)/255;if(Dg(F,IA,FI,hI,Rg,kg,Fg,hg,sg,Ng,Jg,Sg,XB,Mg,KA,VA,A),W>=1){if(FA){s.sh1||(s.sh1=new Uint32Array(y*2));for(const[lA,SI]of RA.entries())FA[lA]=N(l,SI);xI(s.sh1,IA,FA,A)}if(sA){s.sh2||(s.sh2=new Uint32Array(y*4));for(const[lA,SI]of kA.entries())sA[lA]=N(l,SI);rI(s.sh2,IA,sA,A)}if(NA){s.sh3||(s.sh3=new Uint32Array(y*4));for(const[lA,SI]of qA.entries())NA[lA]=N(l,SI);nI(s.sh3,IA,NA,A)}}}h+=GA}return{packedArray:F,numSplats:y,extra:s}}const RQ=["char","uchar","short","ushort","int","uint","float","double"],II=class II{constructor({fileBytes:A}){this.header="",this.littleEndian=!0,this.elements={},this.comments=[],this.data=null,this.numSplats=0,this.fileBytes=A instanceof ArrayBuffer?new Uint8Array(A):A}async parseHeader(){const I=new ReadableStream({start:E=>{E.enqueue(this.fileBytes.slice(0,65536)),E.close()}}).pipeThrough(new TextDecoderStream).getReader();this.header="";const g=`end_header\n`;for(;;){const{value:E,done:D}=await I.read();if(D)throw new Error("Failed to read header");this.header+=E;const i=this.header.indexOf(g);if(i>=0){this.header=this.header.slice(0,i+g.length);break}}const B=new TextEncoder().encode(this.header).length;this.data=new DataView(this.fileBytes.buffer,B),this.elements={};let C=null;this.comments=[],this.header.trim().split(`\n`).forEach((E,D)=>{const i=E.trim();if(D===0){if(i!=="ply")throw new Error("Invalid PLY header");return}if(i.length===0)return;const o=i.split(" ");switch(o[0]){case"format":if(o[1]==="binary_little_endian")this.littleEndian=!0;else if(o[1]==="binary_big_endian")this.littleEndian=!1;else throw new Error(`Unsupported PLY format: ${o[1]}`);if(o[2]!=="1.0")throw new Error(`Unsupported PLY version: ${o[2]}`);break;case"end_header":break;case"comment":this.comments.push(i.slice(8));break;case"element":{const w=o[1];C={name:w,count:Number.parseInt(o[2]),properties:{}},this.elements[w]=C;break}case"property":if(C==null)throw new Error("Property must be inside an element");o[1]==="list"?C.properties[o[4]]={isList:!0,type:o[3],countType:o[2]}:C.properties[o[2]]={isList:!1,type:o[1]};break}}),this.elements.vertex&&(this.numSplats=this.elements.vertex.count)}parseData(A){let I=0;const g=this.data;if(g==null)throw new Error("No data to parse");for(const B in this.elements){const C=this.elements[B],{count:E,properties:D}=C,i=cB(D),o=HB(D,this.littleEndian),w=A(C)??(()=>{});for(let G=0;G[0,1,2].map((N,M)=>S+M*h/3)),D=new Array(5).fill(null).flatMap((J,S)=>[0,1,2].map((N,M)=>3+S+M*h/3)),i=new Array(7).fill(null).flatMap((J,S)=>[0,1,2].map((N,M)=>8+S+M*h/3)),o=C>=1?new Float32Array(3*3):void 0,w=C>=2?new Float32Array(5*3):void 0,G=C>=3?new Float32Array(7*3):void 0}function y(h,J){if(!o)throw new Error("Missing sh1");const S=J.f_rest;for(let N=0;N{const{min_x:n,min_y:T,min_z:W,max_x:X,max_y:z,max_z:j,min_scale_x:u,min_scale_y:O,min_scale_z:V,max_scale_x:b,max_scale_y:e,max_scale_z:d,min_r:CA,min_g:EA,min_b:yA,max_r:GA,max_g:RA,max_b:kA}=Y;B.push({min_x:n,min_y:T,min_z:W,max_x:X,max_y:z,max_z:j,min_scale_x:u,min_scale_y:O,min_scale_z:V,max_scale_x:b,max_scale_y:e,max_scale_z:d,min_r:CA,min_g:EA,min_b:yA,max_r:GA,max_g:RA,max_b:kA})}}function F(h){if(I&&h.name==="sh")return C=wg(h.properties),R(),y;if(h.name!=="vertex")return null;const{packed_position:J,packed_rotation:S,packed_scale:N,packed_color:M}=h.properties;if(!J||!S||!N||!M)throw new Error("Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color");const K=Math.sqrt(2);return(p,c)=>{const U=B[p>>>8];if(U==null)throw new Error("Missing PLY chunk");const{min_x:r,min_y:a,min_z:H,max_x:q,max_y:t,max_z:Y,min_scale_x:n,min_scale_y:T,min_scale_z:W,max_scale_x:X,max_scale_y:z,max_scale_z:j,min_r:u,min_g:O,min_b:V,max_r:b,max_g:e,max_b:d}=U,{packed_position:CA,packed_rotation:EA,packed_scale:yA,packed_color:GA}=c,RA=(CA>>>21&2047)/2047*(q-r)+r,kA=(CA>>>11&1023)/1023*(t-a)+a,qA=(CA&2047)/2047*(Y-H)+H,FA=((EA>>>20&1023)/1023-.5)*K,sA=((EA>>>10&1023)/1023-.5)*K,NA=((EA&1023)/1023-.5)*K,P=Math.sqrt(Math.max(0,1-FA*FA-sA*sA-NA*NA)),DA=EA>>>30,$=DA===0?FA:DA===1?P:sA,Z=DA<=1?sA:DA===2?P:NA,bA=DA<=2?NA:P,iA=DA===0?P:FA,f=Math.exp((yA>>>21&2047)/2047*(X-n)+n),JA=Math.exp((yA>>>11&1023)/1023*(z-T)+T),IA=Math.exp((yA&2047)/2047*(j-W)+W),l=(GA>>>24&255)/255*((b??1)-(u??0))+(u??0),aA=(GA>>>16&255)/255*((e??1)-(O??0))+(O??0),FI=(GA>>>8&255)/255*((d??1)-(V??0))+(V??0),hI=(GA&255)/255;A(p,RA,kA,qA,f,JA,IA,$,Z,bA,iA,hI,l,aA,FI)}}const s=h=>{if(h.name==="chunk")return k(h);if(g)return F(h);if(h.name!=="vertex")return null;const{x:J,y:S,z:N,scale_0:M,scale_1:K,scale_2:p,rot_0:c,rot_1:U,rot_2:r,rot_3:a,opacity:H,f_dc_0:q,f_dc_1:t,f_dc_2:Y,red:n,green:T,blue:W,alpha:X}=h.properties;if(!J||!S||!N)throw new Error("Missing PLY properties: x, y, z");const z=M&&K&&p,j=c&&U&&r&&a,u=X!=null?eI[X.type]:1,O=n!=null?eI[n.type]:1,V=T!=null?eI[T.type]:1,b=W!=null?eI[W.type]:1;return C=wg(h.properties),R(),(e,d)=>{const CA=z?Math.exp(d.scale_0):II.defaultPointScale,EA=z?Math.exp(d.scale_1):II.defaultPointScale,yA=z?Math.exp(d.scale_2):II.defaultPointScale,GA=j?d.rot_1:0,RA=j?d.rot_2:0,kA=j?d.rot_3:0,qA=j?d.rot_0:1,FA=H!=null?1/(1+Math.exp(-d.opacity)):X!=null?d.alpha/u:1,sA=q!=null?d.f_dc_0*pI+.5:n!=null?d.red/O:1,NA=t!=null?d.f_dc_1*pI+.5:T!=null?d.green/V:1,P=Y!=null?d.f_dc_2*pI+.5:W!=null?d.blue/b:1;if(A(e,d.x,d.y,d.z,CA,EA,yA,GA,RA,kA,qA,FA,sA,NA,P),I&&o){const DA=d.f_rest;if(o)for(let $=0;${const y=AI[R.countType](g,I,this.littleEndian);I+=LA[R.countType],I+=y*LA[R.type]});else{if(w)if(G==="f_dc_0"||G==="f_dc_1"||G==="f_dc_2"){const y=Number.parseInt(G.slice(5));i.push(()=>{const k=(A[o+y]/255-.5)/pI;kQ[R.type](g,I,this.littleEndian,k)})}else G==="opacity"&&i.push(()=>{const y=Math.max(-100,Math.min(100,-Math.log(1/(A[o+3]/255)-1)));kQ[R.type](g,I,this.littleEndian,y)});i.push(()=>{I+=LA[R.type]})}for(let G=0;GQ.getInt8(A),uchar:(Q,A,I)=>Q.getUint8(A),short:(Q,A,I)=>Q.getInt16(A,I),ushort:(Q,A,I)=>Q.getUint16(A,I),int:(Q,A,I)=>Q.getInt32(A,I),uint:(Q,A,I)=>Q.getUint32(A,I),float:(Q,A,I)=>Q.getFloat32(A,I),double:(Q,A,I)=>Q.getFloat64(A,I)},kQ={char:(Q,A,I,g)=>{Q.setInt8(A,g)},uchar:(Q,A,I,g)=>{Q.setUint8(A,g)},short:(Q,A,I,g)=>{Q.setInt16(A,g,I)},ushort:(Q,A,I,g)=>{Q.setUint16(A,g,I)},int:(Q,A,I,g)=>{Q.setInt32(A,g,I)},uint:(Q,A,I,g)=>{Q.setUint32(A,g,I)},float:(Q,A,I,g)=>{Q.setFloat32(A,g,I)},double:(Q,A,I,g)=>{Q.setFloat64(A,g,I)}},LA={char:1,uchar:1,short:2,ushort:2,int:4,uint:4,float:4,double:8},eI={char:127,uchar:255,short:32767,ushort:65535,int:2147483647,uint:4294967295,float:1,double:1},MB={0:0,9:1,24:2,45:3},UB={0:0,1:9,2:24,3:45},ig=/^f_rest_([0-9]{1,2})$/;function cB(Q){const A={};for(const[I,g]of Object.entries(Q))ig.test(I)?A.f_rest=new Array(wg(Q)):A[I]=g.isList?[]:0;return A}function HB(Q,A){return YB(Q)?KB(Q,A):tB(Q,A)}const LB=(()=>{try{new Function("return 42;")}catch{return!1}return!0})(),aB=/^[a-zA-Z0-9_]+$/;function YB(Q){if(!LB)return!1;for(const[A,I]of Object.entries(Q))if(!aB.test(A)||I.isList&&!RQ.includes(I.countType)||!RQ.includes(I.type))return!1;return!0}function KB(Q,A){const I=["let list;"];for(const[B,C]of Object.entries(Q)){const E=B.match(ig);if(E){const D=+E[1];I.push(`\n item.f_rest[${D}] = PARSE_FIELD[\'${C.type}\'](data, offset, ${A});\n offset += ${LA[C.type]};\n `)}else C.isList?I.push(`\n list = item[\'${B}\'];\n list.length = PARSE_FIELD[\'${C.countType}\'](data, offset, ${A});\n offset += ${LA[C.countType]};\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD[\'${C.type}\'](data, offset, ${A});\n offset += ${LA[C.type]};\n }\n `):I.push(`\n item[\'${B}\'] = PARSE_FIELD[\'${C.type}\'](data, offset, ${A});\n offset += ${LA[C.type]};\n `)}I.push("return offset;");const g=new Function("data","offset","item","PARSE_FIELD",I.join(`\n`));return(B,C,E)=>g(B,C,E,AI)}function tB(Q,A){const I=[];for(const[g,B]of Object.entries(Q)){const C=g.match(ig);if(C){const E=+C[1];I.push((D,i,o)=>(o.f_rest[E]=AI[B.type](D,i,A),i+LA[B.type]))}else B.isList?I.push((E,D,i)=>{const o=i[g];o.length=AI[B.countType](E,D,A);let w=D+LA[B.countType];for(let G=0;G(i[g]=AI[B.type](E,D,A),D+LA[B.type]))}return(g,B,C)=>{let E=B;for(let D=0;D3)throw new Error(`Unsupported SPZ version: ${this.version}`);this.numSplats=A.getUint32(8,!0),this.shDegree=A.getUint8(12),this.fractionalBits=A.getUint8(13),this.flags=A.getUint8(14),this.flagAntiAlias=(this.flags&1)!==0,this.flagLod=(this.flags&128)!==0,this.reserved=A.getUint8(15),this.headerParsed=!0,this.parsed=!1}async parseSplats(A,I,g,B,C,E,{childCounts:D,childStarts:i}={}){if(!this.headerParsed)throw new Error("SPZ file header must be parsed first");if(this.parsed)throw new Error("SPZ file already parsed");if(this.parsed=!0,this.version===1){const o=await this.reader.read(this.numSplats*3*2),w=new Uint16Array(o.buffer);for(let G=0;G>8)/o,k=((w[R+5]<<24|w[R+4]<<16|w[R+3]<<8)>>8)/o,F=((w[R+8]<<24|w[R+7]<<16|w[R+6]<<8)>>8)/o;A==null||A(G,y,k,F)}}else throw new Error("Unreachable");{const o=await this.reader.read(this.numSplats);for(let w=0;w>>30;let J=F,S=0;for(let M=3;M>=0;--M)if(M!==h){const K=J&s,p=J>>>9&1;J=J>>>10,y[M]=o*(K/s),y[M]=p===0?y[M]:-y[M],S+=y[M]*y[M]}const N=1-S;y[h]=Math.sqrt(Math.max(N,0)),C==null||C(G,y[0],y[1],y[2],y[3])}}else{const o=await this.reader.read(this.numSplats*3);for(let w=0;w=1){const o=new Float32Array(9),w=this.shDegree>=2?new Float32Array(5*3):void 0,G=this.shDegree>=3?new Float32Array(7*3):void 0,R=await this.reader.read(this.numSplats*hQ[this.shDegree]*3);let y=0;for(let k=0;k=1?9:0)+(I>=2?15:0)+(I>=3?21:0),E=16+A*C;this.buffer=new ArrayBuffer(E),this.view=new DataView(this.buffer),this.view.setUint32(0,qB,!0),this.view.setUint32(4,dB,!0),this.view.setUint32(8,A,!0),this.view.setUint8(12,I),this.view.setUint8(13,g),this.view.setUint8(14,B?xB:0),this.view.setUint8(15,0),this.numSplats=A,this.shDegree=I,this.fractionalBits=g,this.fraction=1<>8&255),this.view.setUint8(y+2,E>>16&255),this.view.setUint8(y+3,i&255),this.view.setUint8(y+4,i>>8&255),this.view.setUint8(y+5,i>>16&255),this.view.setUint8(y+6,w&255),this.view.setUint8(y+7,w>>8&255),this.view.setUint8(y+8,w>>16&255)}setAlpha(A,I){const g=16+this.numSplats*9+A;this.view.setUint8(g,Math.max(0,Math.min(255,Math.round(I*255))))}static scaleRgb(A){const I=((A-.5)/(SQ/.15)+.5)*255;return Math.max(0,Math.min(255,Math.round(I)))}setRgb(A,I,g,B){const C=16+this.numSplats*10+A*3;this.view.setUint8(C,eA.scaleRgb(I)),this.view.setUint8(C+1,eA.scaleRgb(g)),this.view.setUint8(C+2,eA.scaleRgb(B))}setScale(A,I,g,B){const C=16+this.numSplats*13+A*3;this.view.setUint8(C,Math.max(0,Math.min(255,Math.round((Math.log(I)+10)*16)))),this.view.setUint8(C+1,Math.max(0,Math.min(255,Math.round((Math.log(g)+10)*16)))),this.view.setUint8(C+2,Math.max(0,Math.min(255,Math.round((Math.log(B)+10)*16))))}setQuat(A,...I){const g=16+this.numSplats*16+A*4,B=CB(I);let C=0;for(let i=1;i<4;++i)Math.abs(B[i])>Math.abs(B[C])&&(C=i);const E=B[C]<0?1:0;let D=C;for(let i=0;i<4;++i)if(i!==C){const o=(B[i]<0?1:0)^E,w=Math.floor(511*(Math.abs(B[i])/Math.SQRT1_2)+.5);D=D<<10|o<<9|w}this.view.setUint8(g,D&255),this.view.setUint8(g+1,D>>8&255),this.view.setUint8(g+2,D>>16&255),this.view.setUint8(g+3,D>>>24&255)}static quantizeSh(A,I){const g=Math.round(A*128)+128,B=1<<8-I,C=Math.floor((g+B/2)/B)*B;return Math.max(0,Math.min(255,C))}setSh(A,I,g,B){const C=hQ[this.shDegree]||0,E=16+this.numSplats*20+A*C*3;for(let D=0;D<9;++D)this.view.setUint8(E+D,eA.quantizeSh(I[D],5));if(g){const D=E+9;for(let i=0;i<15;++i)this.view.setUint8(D+i,eA.quantizeSh(g[i],4));if(B){const i=D+15;for(let o=0;o<21;++o)this.view.setUint8(i+o,eA.quantizeSh(B[o],4))}}}async finalize(){const A=new Uint8Array(this.buffer),g=new ReadableStream({async start(E){E.enqueue(A),E.close()}}).pipeThrough(new CompressionStream("gzip")),C=await new Response(g).arrayBuffer();return console.log("Compressed",A.length,"bytes to",C.byteLength,"bytes"),new Uint8Array(C)}}async function rB(Q){var w,G,R;const A=new eB,{inputs:I,clipXyz:g,maxSh:B,fractionalBits:C=12,opacityThreshold:E}=Q;for(const y of I){let k=function(c){return c.multiplyScalar(S),c.applyQuaternion(N),c.add(M),c},F=function(c){return c.multiplyScalar(S),c},s=function(c){return c.premultiply(N),c},h=function(c){return!K||K.containsPoint(c)},J=function(c){return E!==void 0?c>=E:!0};const S=((w=y.transform)==null?void 0:w.scale)??1,N=new nA().fromArray(((G=y.transform)==null?void 0:G.quaternion)??[0,0,0,1]),M=new x().fromArray(((R=y.transform)==null?void 0:R.translate)??[0,0,0]),K=g?new zg(new x().fromArray(g.min),new x().fromArray(g.max)):void 0;let p=y.fileType;switch(p||(p=nB(y.fileBytes),!p&&y.pathOrUrl&&(p=fB(y.pathOrUrl))),p){case wA.PLY:{const c=new fI({fileBytes:y.fileBytes});await c.parseHeader();let U=null;c.parseSplats((r,a,H,q,t,Y,n,T,W,X,z,j,u,O,V)=>{const b=k(new x(a,H,q));if(h(b)&&J(j)){U=A.pushSplat(),A.setCenter(U,b.x,b.y,b.z);const e=F(new x(t,Y,n));A.setScale(U,e.x,e.y,e.z);const d=s(new nA(T,W,X,z));A.setQuaternion(U,d.x,d.y,d.z,d.w),A.setOpacity(U,j),A.setColor(U,u,O,V)}else U=null},(r,a,H,q)=>{a&&U!==null&&A.setSh1(U,a),H&&U!==null&&A.setSh2(U,H),q&&U!==null&&A.setSh3(U,q)});break}case wA.SPZ:{const c=new FQ({fileBytes:y.fileBytes});await c.parseHeader();const U=new Int32Array(c.numSplats);U.fill(-1);const r=new Float32Array(c.numSplats*3),a=new x;c.parseSplats((H,q,t,Y)=>{const n=k(new x(q,t,Y));r[H*3]=n.x,r[H*3+1]=n.y,r[H*3+2]=n.z},(H,q)=>{a.fromArray(r,H*3),h(a)&&J(q)&&(U[H]=A.pushSplat(),A.setCenter(U[H],a.x,a.y,a.z),A.setOpacity(U[H],q))},(H,q,t,Y)=>{U[H]>=0&&A.setColor(U[H],q,t,Y)},(H,q,t,Y)=>{if(U[H]>=0){const n=F(new x(q,t,Y));A.setScale(U[H],n.x,n.y,n.z)}},(H,q,t,Y,n)=>{if(U[H]>=0){const T=s(new nA(q,t,Y,n));A.setQuaternion(U[H],T.x,T.y,T.z,T.w)}},(H,q,t,Y)=>{U[H]>=0&&(A.setSh1(U[H],q),t&&A.setSh2(U[H],t),Y&&A.setSh3(U[H],Y))});break}case wA.SPLAT:oQ(y.fileBytes,c=>{},(c,U,r,a,H,q,t,Y,n,T,W,X,z,j,u)=>{const O=k(new x(U,r,a));if(h(O)&&J(X)){const V=A.pushSplat();A.setCenter(V,O.x,O.y,O.z);const b=F(new x(H,q,t));A.setScale(V,b.x,b.y,b.z);const e=s(new nA(Y,n,T,W));A.setQuaternion(V,e.x,e.y,e.z,e.w),A.setOpacity(V,X),A.setColor(V,z,j,u)}});break;case wA.KSPLAT:{let c=null;NB(y.fileBytes,U=>{},(U,r,a,H,q,t,Y,n,T,W,X,z,j,u,O)=>{const V=k(new x(r,a,H));if(h(V)&&J(z)){c=A.pushSplat(),A.setCenter(c,V.x,V.y,V.z);const b=F(new x(q,t,Y));A.setScale(c,b.x,b.y,b.z);const e=s(new nA(n,T,W,X));A.setQuaternion(c,e.x,e.y,e.z,e.w),A.setOpacity(c,z),A.setColor(c,j,u,O)}else c=null},(U,r,a,H)=>{c!==null&&(A.setSh1(c,r),a&&A.setSh2(c,a),H&&A.setSh3(c,H))});break}default:throw new Error(`transcodeSpz not implemented for ${p}`)}}const D=Math.min(B??3,A.sh3?3:A.sh2?2:A.sh1?1:0),i=new eA({numSplats:A.numSplats,shDegree:D,fractionalBits:C,flagAntiAlias:!0});for(let y=0;y=1&&i.setSh(y,A.sh1.slice(y*9,(y+1)*9),D>=2&&A.sh2?A.sh2.slice(y*15,(y+1)*15):void 0,D>=3&&A.sh3?A.sh3.slice(y*21,(y+1)*21):void 0)}return{fileBytes:await i.finalize(),clippedCount:i.clippedCount}}function nB(Q){const I=new DataView(Q.buffer).getUint32(0,!0);if((I&16777215)===7957616)return wA.PLY;if((I&16777215)===559903){const g=hB(Q,4);return new DataView(g.buffer).getUint32(0,!0)===1347635022?wA.SPZ:void 0}if(I===67324752)return sQ(Q)?wA.PCSOGSZIP:void 0;if(I===809779538)return wA.RAD}function PB(Q){const A=Q.split(/[?#]/,1)[0],I=Math.max(A.lastIndexOf("/"),A.lastIndexOf("\\\\")),g=A.slice(I+1),B=g.lastIndexOf(".");return B<=0||B===g.length-1?"":g.slice(B+1).toLowerCase()}function fB(Q){const A=PB(Q);if(A==="ply")return wA.PLY;if(A==="spz")return wA.SPZ;if(A==="splat")return wA.SPLAT;if(A==="ksplat")return wA.KSPLAT;if(A==="sog")return wA.PCSOGSZIP;if(A==="rad")return wA.RAD}function pB(Q){try{let A;if(typeof Q=="string")A=Q;else{const B=Q instanceof ArrayBuffer?new Uint8Array(Q):Q;if(B.length>65536)return;A=new TextDecoder().decode(B)}const I=JSON.parse(A);if(!I||typeof I!="object"||Array.isArray(I))return;const g=I.version===2;for(const B of["means","scales","quats","sh0"]){if(!I[B]||typeof I[B]!="object"||Array.isArray(I[B]))return;if(g){if(!I[B].files||(B==="scales"||B==="sh0")&&!I[B].codebook||B==="means"&&(!I[B].mins||!I[B].maxs))return}else if(!I[B].shape||!I[B].files||B!=="quats"&&(!I[B].mins||!I[B].maxs))return}return I}catch{return}}function sQ(Q){try{const A=Q instanceof ArrayBuffer?new Uint8Array(Q):Q;let I=null;const g=vQ(A,{filter:({name:C})=>C.split(/[\\\\/]/).pop()==="meta.json"?(I=C,!0):!1});if(!I)return;const B=pB(g[I]);return B?{name:I,json:B}:void 0}catch{return}}class eB{constructor({maxSplats:A=1}={}){this.numSplats=0,this.maxSplats=kB(A).maxSplats,this.centers=new Float32Array(this.maxSplats*3),this.scales=new Float32Array(this.maxSplats*3),this.quaternions=new Float32Array(this.maxSplats*4),this.opacities=new Float32Array(this.maxSplats),this.colors=new Float32Array(this.maxSplats*3)}pushSplat(){const A=this.numSplats;return this.ensureIndex(A),this.numSplats+=1,A}unpushSplat(A){if(A===this.numSplats-1)this.numSplats-=1;else throw new Error("Cannot unpush splat from non-last position")}ensureCapacity(A){if(A>this.maxSplats){const I=Math.max(A,this.maxSplats*2),g=new Float32Array(I*3),B=new Float32Array(I*3),C=new Float32Array(I*4),E=new Float32Array(I),D=new Float32Array(I*3);if(g.set(this.centers),B.set(this.scales),C.set(this.quaternions),E.set(this.opacities),D.set(this.colors),this.centers=g,this.scales=B,this.quaternions=C,this.opacities=E,this.colors=D,this.sh1){const i=new Float32Array(I*9);i.set(this.sh1),this.sh1=i}if(this.sh2){const i=new Float32Array(I*15);i.set(this.sh2),this.sh2=i}if(this.sh3){const i=new Float32Array(I*21);i.set(this.sh3),this.sh3=i}this.maxSplats=I}}ensureIndex(A){this.ensureCapacity(A+1)}setCenter(A,I,g,B){this.centers[A*3]=I,this.centers[A*3+1]=g,this.centers[A*3+2]=B}setScale(A,I,g,B){this.scales[A*3]=I,this.scales[A*3+1]=g,this.scales[A*3+2]=B}setQuaternion(A,I,g,B,C){this.quaternions[A*4]=I,this.quaternions[A*4+1]=g,this.quaternions[A*4+2]=B,this.quaternions[A*4+3]=C}setOpacity(A,I){this.opacities[A]=I}setColor(A,I,g,B){this.colors[A*3]=I,this.colors[A*3+1]=g,this.colors[A*3+2]=B}setSh1(A,I){this.sh1||(this.sh1=new Float32Array(this.maxSplats*9));for(let g=0;g<9;++g)this.sh1[A*9+g]=I[g]}setSh2(A,I){this.sh2||(this.sh2=new Float32Array(this.maxSplats*15));for(let g=0;g<15;++g)this.sh2[A*15+g]=I[g]}setSh3(A,I){this.sh3||(this.sh3=new Float32Array(this.maxSplats*21));for(let g=0;g<21;++g)this.sh3[A*21+g]=I[g]}}async function NQ(Q,A,I){const g="version"in Q;if(!g&&Q.quats.encoding!=="quaternion_packed")throw new Error("Unsupported quaternion encoding");const B=g?Q.count:Q.means.shape[0],C=qI(B),E=new Uint32Array(C*4),D={},i=Promise.all([kI(A[Q.means.files[0]]),kI(A[Q.means.files[1]])]).then(y=>{for(let k=0;k{let k,F,s;g?k=F=s=Q.scales.codebook.map(h=>Math.exp(h)):(k=new Array(256).fill(0).map((h,J)=>Q.scales.mins[0]+(Q.scales.maxs[0]-Q.scales.mins[0])*(J/255)).map(h=>Math.exp(h)),F=new Array(256).fill(0).map((h,J)=>Q.scales.mins[1]+(Q.scales.maxs[1]-Q.scales.mins[1])*(J/255)).map(h=>Math.exp(h)),s=new Array(256).fill(0).map((h,J)=>Q.scales.mins[2]+(Q.scales.maxs[2]-Q.scales.mins[2])*(J/255)).map(h=>Math.exp(h)));for(let h=0;h{const k=Math.sqrt(2),F=new Array(256).fill(0).map((s,h)=>(h/255-.5)*k);for(let s=0;s{const k=.28209479177387814;let F,s,h,J;g?(F=s=h=Q.sh0.codebook.map(S=>k*S+.5),J=new Array(256).fill(0).map((S,N)=>N/255)):(F=new Array(256).fill(0).map((S,N)=>Q.sh0.mins[0]+(Q.sh0.maxs[0]-Q.sh0.mins[0])*(N/255)).map(S=>k*S+.5),s=new Array(256).fill(0).map((S,N)=>Q.sh0.mins[1]+(Q.sh0.maxs[1]-Q.sh0.mins[1])*(N/255)).map(S=>k*S+.5),h=new Array(256).fill(0).map((S,N)=>Q.sh0.mins[2]+(Q.sh0.maxs[2]-Q.sh0.mins[2])*(N/255)).map(S=>k*S+.5),J=new Array(256).fill(0).map((S,N)=>Q.sh0.mins[3]+(Q.sh0.maxs[3]-Q.sh0.mins[3])*(N/255)).map(S=>1/(1+Math.exp(-S))));for(let S=0;S=3:Q.shN.shape[1]>=45,k=g?Q.shN.bands>=2:Q.shN.shape[1]>=24,F=g?Q.shN.bands>=1:Q.shN.shape[1]>=9;F&&(D.sh1=new Uint32Array(B*2)),k&&(D.sh2=new Uint32Array(B*4)),y&&(D.sh3=new Uint32Array(B*4));const s=new Float32Array(9),h=new Float32Array(15),J=new Float32Array(21),S=Q.shN,N=Promise.all([Gg(A[Q.shN.files[0]]),Gg(A[Q.shN.files[1]])]).then(([M,K])=>{const p="codebook"in S?S.codebook:new Array(256).fill(0).map((c,U)=>S.mins+(S.maxs-S.mins)*(U/255));for(let c=0;c>>6)*M.width+a;for(let t=0;t<3;++t){if(F)for(let Y=0;Y<3;++Y)s[Y*3+t]=p[M.rgba[(q+Y)*4+t]];if(k)for(let Y=0;Y<5;++Y)h[Y*3+t]=p[M.rgba[(q+3+Y)*4+t]];if(y)for(let Y=0;Y<7;++Y)J[Y*3+t]=p[M.rgba[(q+8+Y)*4+t]]}F&&xI(D.sh1,c,s,I),k&&rI(D.sh2,c,h,I),y&&nI(D.sh3,c,J,I)}});R.push(N)}return await Promise.all(R),{packedArray:E,numSplats:B,extra:D}}let bI=null;async function Gg(Q){if(!bI&&(bI=new OffscreenCanvas(1,1).getContext("webgl2"),!bI))throw new Error("Failed to create WebGL2 context");const A=new Blob([Q]),I=await createImageBitmap(A,{premultiplyAlpha:"none"}),g=bI,B=g.createTexture();g.bindTexture(g.TEXTURE_2D,B),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!0),g.texImage2D(g.TEXTURE_2D,0,g.RGBA,g.RGBA,g.UNSIGNED_BYTE,I),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MAG_FILTER,g.NEAREST),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MIN_FILTER,g.NEAREST);const C=g.createFramebuffer();g.bindFramebuffer(g.FRAMEBUFFER,C),g.framebufferTexture2D(g.FRAMEBUFFER,g.COLOR_ATTACHMENT0,g.TEXTURE_2D,B,0);const E=new Uint8Array(I.width*I.height*4);return g.readPixels(0,0,I.width,I.height,g.RGBA,g.UNSIGNED_BYTE,E),g.deleteTexture(B),g.deleteFramebuffer(C),{rgba:E,width:I.width,height:I.height}}async function kI(Q){const{rgba:A}=await Gg(Q);return A}async function bB(Q,A){var R;const I=sQ(Q);if(!I)throw new Error("Invalid PC SOGS zip file");const{name:g,json:B}=I,C=g.lastIndexOf("/"),E=g.lastIndexOf("\\\\"),D=g.slice(0,Math.max(C,E)+1),i=new Map,o=[...B.means.files,...B.scales.files,...B.quats.files,...B.sh0.files,...((R=B.shN)==null?void 0:R.files)??[]];for(const y of o)i.set(D+y,y);const w=await new Promise((y,k)=>{zQ(Q,{filter:({name:F})=>i.has(F)},(F,s)=>{F?k(F):y(s)})}),G={};for(const[y,k]of i.entries())G[k]=w[y];return await NQ(B,G,A)}async function JQ(Q){const{name:A,args:I,id:g}=Q.data;let B,C;try{switch(A){case"unpackPly":{const{packedArray:E,fileBytes:D,splatEncoding:i}=I,o=await lB({packedArray:E,fileBytes:D,splatEncoding:i});B={id:g,numSplats:o.numSplats,packedArray:o.packedArray,extra:o.extra};break}case"decodeSpz":{const{fileBytes:E,splatEncoding:D}=I,i=await OB(E,D);B={id:g,numSplats:i.numSplats,packedArray:i.packedArray,extra:i.extra};break}case"decodeAntiSplat":{const{fileBytes:E,splatEncoding:D}=I,i=sB(E,D);B={id:g,numSplats:i.numSplats,packedArray:i.packedArray};break}case"decodeKsplat":{const{fileBytes:E,splatEncoding:D}=I,i=JB(E,D);B={id:g,numSplats:i.numSplats,packedArray:i.packedArray,extra:i.extra};break}case"decodePcSogs":{const{fileBytes:E,extraFiles:D,splatEncoding:i}=I,o=JSON.parse(new TextDecoder().decode(E)),w=await NQ(o,D,i);B={id:g,numSplats:w.numSplats,packedArray:w.packedArray,extra:w.extra};break}case"decodePcSogsZip":{const{fileBytes:E,splatEncoding:D}=I,i=await bB(E,D);B={id:g,numSplats:i.numSplats,packedArray:i.packedArray,extra:i.extra};break}case"sortSplats":{const{totalSplats:E,readback:D,ordering:i}=I;B={id:g,readback:D,...ZB({totalSplats:E,readback:D,ordering:i})};break}case"sortDoubleSplats":{const{numSplats:E,readback:D,ordering:i}=I;B={id:g,readback:D,ordering:i,activeSplats:cQ(E,D,i)};break}case"sort32Splats":{const{numSplats:E,readback:D,ordering:i}=I;B={id:g,readback:D,ordering:i,activeSplats:UQ(E,D,i)};break}case"transcodeSpz":{const E=I,D=await rB(E);B={id:g,fileBytes:D,input:E};break}default:throw new Error(`Unknown name: ${A}`)}}catch(E){C=E,console.error(C)}self.postMessage({id:g,result:B,error:C},{transfer:GB(B)})}async function lB({packedArray:Q,fileBytes:A,splatEncoding:I}){const g=new fI({fileBytes:A});await g.parseHeader();const B=g.numSplats,C={};return g.parseSplats((E,D,i,o,w,G,R,y,k,F,s,h,J,S,N)=>{Dg(Q,E,D,i,o,w,G,R,y,k,F,s,h,J,S,N,I)},(E,D,i,o)=>{D&&(C.sh1||(C.sh1=new Uint32Array(B*2)),xI(C.sh1,E,D,I)),i&&(C.sh2||(C.sh2=new Uint32Array(B*4)),rI(C.sh2,E,i,I)),o&&(C.sh3||(C.sh3=new Uint32Array(B*4)),nI(C.sh3,E,o,I))}),{packedArray:Q,numSplats:B,extra:C}}async function OB(Q,A){const I=new FQ({fileBytes:Q});await I.parseHeader();const g=I.numSplats,B=qI(g),C=new Uint32Array(B*4),E={};let D={};if(I.flagLod){const i=new Uint16Array(g),o=new Uint32Array(g);E.childCounts=i,E.childStarts=o,D={childCounts:(w,G)=>{i[w]=G},childStarts:(w,G)=>{o[w]=G}}}return await I.parseSplats((i,o,w,G)=>{CQ(C,i,o,w,G)},(i,o)=>{RB(C,i,o)},(i,o,w,G)=>{yB(C,i,o,w,G,A)},(i,o,w,G)=>{EQ(C,i,o,w,G,A)},(i,o,w,G,R)=>{iQ(C,i,o,w,G,R)},(i,o,w,G)=>{o&&(E.sh1||(E.sh1=new Uint32Array(g*2)),xI(E.sh1,i,o,A)),w&&(E.sh2||(E.sh2=new Uint32Array(g*4)),rI(E.sh2,i,w,A)),G&&(E.sh3||(E.sh3=new Uint32Array(g*4)),nI(E.sh3,i,G,A))},D),{packedArray:C,numSplats:g,extra:E}}const og=31744,lI=og+1;let YA=null;function ZB({totalSplats:Q,readback:A,ordering:I}){YA||(YA=new Uint32Array(lI)),YA.fill(0);const g=A.map(i=>new Uint32Array(i.buffer)),B=g[0].length,C=Math.ceil(Q/B);let E=0;for(let i=0;i { - (self.URL || self.webkitURL).revokeObjectURL(A); - }), I; - } catch { - return new Worker( - "data:text/javascript;charset=utf-8," + encodeURIComponent(jB), - { - name: Q == null ? void 0 : Q.name - } - ); - } finally { - A && (self.URL || self.webkitURL).revokeObjectURL(A); - } -} -var KA = Uint8Array, VI = Uint16Array, Do = Int32Array, vB = new KA([ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 3, - 4, - 4, - 4, - 4, - 5, - 5, - 5, - 5, - 0, - /* unused */ - 0, - 0, - /* impossible */ - 0 -]), zB = new KA([ - 0, - 0, - 0, - 0, - 1, - 1, - 2, - 2, - 3, - 3, - 4, - 4, - 5, - 5, - 6, - 6, - 7, - 7, - 8, - 8, - 9, - 9, - 10, - 10, - 11, - 11, - 12, - 12, - 13, - 13, - /* unused */ - 0, - 0 -]), io = new KA([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), _B = function(Q, A) { - for (var I = new VI(31), g = 0; g < 31; ++g) - I[g] = A += 1 << Q[g - 1]; - for (var B = new Do(I[30]), g = 1; g < 30; ++g) - for (var C = I[g]; C < I[g + 1]; ++C) - B[C] = C - I[g] << 5 | g; - return { b: I, r: B }; -}, $B = _B(vB, 2), AC = $B.b, wo = $B.r; -AC[28] = 258, wo[258] = 28; -var oo = _B(zB, 0), so = oo.b, YQ = new VI(32768); -for (var yA = 0; yA < 32768; ++yA) { - var NI = (yA & 43690) >> 1 | (yA & 21845) << 1; - NI = (NI & 52428) >> 2 | (NI & 13107) << 2, NI = (NI & 61680) >> 4 | (NI & 3855) << 4, YQ[yA] = ((NI & 65280) >> 8 | (NI & 255) << 8) >> 1; -} -var sg = function(Q, A, I) { - for (var g = Q.length, B = 0, C = new VI(A); B < g; ++B) - Q[B] && ++C[Q[B] - 1]; - var E = new VI(A); - for (B = 1; B < A; ++B) - E[B] = E[B - 1] + C[B - 1] << 1; - var D; - if (I) { - D = new VI(1 << A); - var i = 15 - A; - for (B = 0; B < g; ++B) - if (Q[B]) - for (var w = B << 4 | Q[B], s = A - Q[B], o = E[Q[B] - 1]++ << s, y = o | (1 << s) - 1; o <= y; ++o) - D[YQ[o] >> i] = w; - } else - for (D = new VI(g), B = 0; B < g; ++B) - Q[B] && (D[B] = YQ[E[Q[B] - 1]++] >> 15 - Q[B]); - return D; -}, Ng = new KA(288); -for (var yA = 0; yA < 144; ++yA) - Ng[yA] = 8; -for (var yA = 144; yA < 256; ++yA) - Ng[yA] = 9; -for (var yA = 256; yA < 280; ++yA) - Ng[yA] = 7; -for (var yA = 280; yA < 288; ++yA) - Ng[yA] = 8; -var IC = new KA(32); -for (var yA = 0; yA < 32; ++yA) - IC[yA] = 5; -var Go = /* @__PURE__ */ sg(Ng, 9, 1), yo = /* @__PURE__ */ sg(IC, 5, 1), FQ = function(Q) { - for (var A = Q[0], I = 1; I < Q.length; ++I) - Q[I] > A && (A = Q[I]); - return A; -}, II = function(Q, A, I) { - var g = A / 8 | 0; - return (Q[g] | Q[g + 1] << 8) >> (A & 7) & I; -}, aQ = function(Q, A) { - var I = A / 8 | 0; - return (Q[I] | Q[I + 1] << 8 | Q[I + 2] << 16) >> (A & 7); -}, gC = function(Q) { - return (Q + 7) / 8 | 0; -}, vI = function(Q, A, I) { - return (A == null || A < 0) && (A = 0), (I == null || I > Q.length) && (I = Q.length), new KA(Q.subarray(A, I)); -}, ho = [ - "unexpected EOF", - "invalid block type", - "invalid length/literal", - "invalid distance", - "stream finished", - "no stream handler", - , - "no callback", - "invalid UTF-8 data", - "extra field too long", - "date not in range 1980-2099", - "filename too long", - "stream finishing", - "invalid zip data" - // determined by unknown compression method -], PA = function(Q, A, I) { - var g = new Error(A || ho[Q]); - if (g.code = Q, Error.captureStackTrace && Error.captureStackTrace(g, PA), !I) - throw g; - return g; -}, QC = function(Q, A, I, g) { - var B = Q.length, C = g ? g.length : 0; - if (!B || A.f && !A.l) - return I || new KA(0); - var E = !I, D = E || A.i != 2, i = A.i; - E && (I = new KA(B * 3)); - var w = function(SA) { - var wA = I.length; - if (SA > wA) { - var GA = new KA(Math.max(wA * 2, SA)); - GA.set(I), I = GA; - } - }, s = A.f || 0, o = A.p || 0, y = A.b || 0, h = A.l, k = A.d, R = A.m, F = A.n, a = B * 8; - do { - if (!h) { - s = II(Q, o, 1); - var S = II(Q, o + 1, 3); - if (o += 3, S) - if (S == 1) - h = Go, k = yo, R = 9, F = 5; - else if (S == 2) { - var U = II(Q, o, 31) + 257, J = II(Q, o + 10, 15) + 4, t = U + II(Q, o + 5, 31) + 1; - o += 14; - for (var H = new KA(t), K = new KA(19), Y = 0; Y < J; ++Y) - K[io[Y]] = II(Q, o + Y * 3, 7); - o += J * 3; - for (var L = FQ(K), q = (1 << L) - 1, n = sg(K, L, 1), Y = 0; Y < t; ) { - var r = n[II(Q, o, q)]; - o += r & 15; - var M = r >> 4; - if (M < 16) - H[Y++] = M; - else { - var p = 0, m = 0; - for (M == 16 ? (m = 3 + II(Q, o, 3), o += 2, p = H[Y - 1]) : M == 17 ? (m = 3 + II(Q, o, 7), o += 3) : M == 18 && (m = 11 + II(Q, o, 127), o += 7); m--; ) - H[Y++] = p; - } - } - var IA = H.subarray(0, U), X = H.subarray(U); - R = FQ(IA), F = FQ(X), h = sg(IA, R, 1), k = sg(X, F, 1); - } else - PA(1); - else { - var M = gC(o) + 4, c = Q[M - 4] | Q[M - 3] << 8, N = M + c; - if (N > B) { - i && PA(0); - break; - } - D && w(y + c), I.set(Q.subarray(M, N), y), A.b = y += c, A.p = o = N * 8, A.f = s; - continue; - } - if (o > a) { - i && PA(0); - break; - } - } - D && w(y + 131072); - for (var EA = (1 << R) - 1, j = (1 << F) - 1, gA = o; ; gA = o) { - var p = h[aQ(Q, o) & EA], W = p >> 4; - if (o += p & 15, o > a) { - i && PA(0); - break; - } - if (p || PA(2), W < 256) - I[y++] = W; - else if (W == 256) { - gA = o, h = null; - break; - } else { - var u = W - 254; - if (W > 264) { - var Y = W - 257, b = vB[Y]; - u = II(Q, o, (1 << b) - 1) + AC[Y], o += b; - } - var T = k[aQ(Q, o) & j], f = T >> 4; - T || PA(3), o += T & 15; - var X = so[f]; - if (f > 3) { - var b = zB[f]; - X += aQ(Q, o) & (1 << b) - 1, o += b; - } - if (o > a) { - i && PA(0); - break; - } - D && w(y + 131072); - var FA = y + u; - if (y < X) { - var sA = C - X, aA = Math.min(X, FA); - for (sA + y < 0 && PA(3); y < aA; ++y) - I[y] = g[sA + y]; - } - for (; y < FA; ++y) - I[y] = I[y - X]; - } - } - A.l = h, A.p = gA, A.b = y, A.f = s, h && (s = 1, A.m = R, A.d = k, A.n = F); - } while (!s); - return y != I.length && E ? vI(I, 0, y) : I.subarray(0, y); -}, Ro = /* @__PURE__ */ new KA(0), sI = function(Q, A) { - return Q[A] | Q[A + 1] << 8; -}, QI = function(Q, A) { - return (Q[A] | Q[A + 1] << 8 | Q[A + 2] << 16 | Q[A + 3] << 24) >>> 0; -}, SQ = function(Q, A) { - return QI(Q, A) + QI(Q, A + 4) * 4294967296; -}, ko = function(Q) { - (Q[0] != 31 || Q[1] != 139 || Q[2] != 8) && PA(6, "invalid gzip data"); - var A = Q[3], I = 10; - A & 4 && (I += (Q[10] | Q[11] << 8) + 2); - for (var g = (A >> 3 & 1) + (A >> 4 & 1); g > 0; g -= !Q[I++]) - ; - return I + (A & 2); -}, NQ = /* @__PURE__ */ function() { - function Q(A, I) { - typeof A == "function" && (I = A, A = {}), this.ondata = I; - var g = A && A.dictionary && A.dictionary.subarray(-32768); - this.s = { i: 0, b: g ? g.length : 0 }, this.o = new KA(32768), this.p = new KA(0), g && this.o.set(g); - } - return Q.prototype.e = function(A) { - if (this.ondata || PA(5), this.d && PA(4), !this.p.length) - this.p = A; - else if (A.length) { - var I = new KA(this.p.length + A.length); - I.set(this.p), I.set(A, this.p.length), this.p = I; - } - }, Q.prototype.c = function(A) { - this.s.i = +(this.d = A || !1); - var I = this.s.b, g = QC(this.p, this.s, this.o); - this.ondata(vI(g, I, this.s.b), this.d), this.o = vI(g, this.s.b - 32768), this.s.b = this.o.length, this.p = vI(this.p, this.s.p / 8 | 0), this.s.p &= 7; - }, Q.prototype.push = function(A, I) { - this.e(A), this.c(I); - }, Q; -}(); -function Fo(Q, A) { - return QC(Q, { i: 2 }, A && A.out, A && A.dictionary); -} -var ao = /* @__PURE__ */ function() { - function Q(A, I) { - this.v = 1, this.r = 0, NQ.call(this, A, I); - } - return Q.prototype.push = function(A, I) { - if (NQ.prototype.e.call(this, A), this.r += A.length, this.v) { - var g = this.p.subarray(this.v - 1), B = g.length > 3 ? ko(g) : 4; - if (B > g.length) { - if (!I) - return; - } else this.v > 1 && this.onmember && this.onmember(this.r - g.length); - this.p = g.subarray(B), this.v = 0; - } - NQ.prototype.c.call(this, I), this.s.f && !this.s.l && !I && (this.v = gC(this.s.p) + 9, this.s = { i: 0 }, this.o = new KA(0), this.push(new KA(0), I)); - }, Q; -}(), KQ = typeof TextDecoder < "u" && /* @__PURE__ */ new TextDecoder(), So = 0; -try { - KQ.decode(Ro, { stream: !0 }), So = 1; -} catch { -} -var No = function(Q) { - for (var A = "", I = 0; ; ) { - var g = Q[I++], B = (g > 127) + (g > 223) + (g > 239); - if (I + B > Q.length) - return { s: A, r: vI(Q, I - 1) }; - B ? B == 3 ? (g = ((g & 15) << 18 | (Q[I++] & 63) << 12 | (Q[I++] & 63) << 6 | Q[I++] & 63) - 65536, A += String.fromCharCode(55296 | g >> 10, 56320 | g & 1023)) : B & 1 ? A += String.fromCharCode((g & 31) << 6 | Q[I++] & 63) : A += String.fromCharCode((g & 15) << 12 | (Q[I++] & 63) << 6 | Q[I++] & 63) : A += String.fromCharCode(g); - } -}; -function co(Q, A) { - if (A) { - for (var I = "", g = 0; g < Q.length; g += 16384) - I += String.fromCharCode.apply(null, Q.subarray(g, g + 16384)); - return I; - } else { - if (KQ) - return KQ.decode(Q); - var B = No(Q), C = B.s, I = B.r; - return I.length && PA(8), C; - } -} -var Mo = function(Q, A) { - return A + 30 + sI(Q, A + 26) + sI(Q, A + 28); -}, Jo = function(Q, A, I) { - var g = sI(Q, A + 28), B = co(Q.subarray(A + 46, A + 46 + g), !(sI(Q, A + 8) & 2048)), C = A + 46 + g, E = QI(Q, A + 20), D = I && E == 4294967295 ? Uo(Q, C) : [E, QI(Q, A + 24), QI(Q, A + 42)], i = D[0], w = D[1], s = D[2]; - return [sI(Q, A + 10), i, w, B, C + sI(Q, A + 30) + sI(Q, A + 32), s]; -}, Uo = function(Q, A) { - for (; sI(Q, A) != 1; A += 4 + sI(Q, A + 2)) - ; - return [SQ(Q, A + 12), SQ(Q, A + 4), SQ(Q, A + 20)]; -}; -function to(Q, A) { - for (var I = {}, g = Q.length - 22; QI(Q, g) != 101010256; --g) - (!g || Q.length - g > 65558) && PA(13); - var B = sI(Q, g + 8); - if (!B) - return {}; - var C = QI(Q, g + 16), E = C == 4294967295 || B == 65535; - if (E) { - var D = QI(Q, g - 12); - E = QI(Q, D) == 101075792, E && (B = QI(Q, D + 32), C = QI(Q, D + 48)); - } - for (var i = A && A.filter, w = 0; w < B; ++w) { - var s = Jo(Q, C, E), o = s[0], y = s[1], h = s[2], k = s[3], R = s[4], F = s[5], a = Mo(Q, F); - C = R, (!i || i({ - name: k, - size: y, - originalSize: h, - compression: o - })) && (o ? o == 8 ? I[k] = Fo(Q.subarray(a, a + y), { out: new KA(h) }) : PA(14, "unknown compression type " + o) : I[k] = vI(Q, a, a + y)); - } - return I; -} -const pA = -12, fA = 9, Ho = Math.exp(pA), Lo = Math.exp(fA), BC = -30, xI = Math.exp(BC), XQ = 11, WQ = 11, CC = 11, Yo = XQ + WQ, P = 1 << XQ, XA = 1 << WQ, EC = 1 << CC, jQ = 1, Ko = P - 1, eo = XA - 1, ro = EC - 1, no = !0, qo = !0; -var hA = /* @__PURE__ */ ((Q) => (Q.PLY = "ply", Q.SPZ = "spz", Q.SPLAT = "splat", Q.KSPLAT = "ksplat", Q.PCSOGS = "pcsogs", Q.PCSOGSZIP = "pcsogszip", Q.RAD = "rad", Q))(hA || {}); -const cg = { +import * as a from "three"; +import { Loader as Wo, FileLoader as vo, Quaternion as SB, Vector3 as AI, Color as RB, Matrix4 as tQ } from "three"; +import { FullScreenQuad as OQ } from "three/addons/postprocessing/Pass.js"; +const pA = -12, uA = 9, Xo = Math.exp(pA), jo = Math.exp(uA), TB = -30, qI = Math.exp(TB), WQ = 11, vQ = 11, mB = 11, zo = WQ + vQ, P = 1 << WQ, ZA = 1 << vQ, VB = 1 << mB, XQ = 1, _o = P - 1, $o = ZA - 1, Aw = VB - 1, Iw = !0, gw = !0; +var UA = /* @__PURE__ */ ((Q) => (Q.PLY = "ply", Q.SPZ = "spz", Q.SPLAT = "splat", Q.KSPLAT = "ksplat", Q.PCSOGS = "pcsogs", Q.PCSOGSZIP = "pcsogszip", Q.RAD = "rad", Q))(UA || {}); +const AQ = { rgbMin: 0, rgbMax: 1, lnScaleMin: pA, - lnScaleMax: fA, + lnScaleMax: uA, sh1Max: 1, sh2Max: 1, sh3Max: 1, lodOpacity: !1 -}, Kk = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ +}, ey = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, - DEFAULT_SPLAT_ENCODING: cg, - LN_SCALE_MAX: fA, + DEFAULT_SPLAT_ENCODING: AQ, + LN_SCALE_MAX: uA, LN_SCALE_MIN: pA, - LN_SCALE_ZERO: BC, - SCALE_MAX: Lo, - SCALE_MIN: Ho, - SCALE_ZERO: xI, - SPLAT_TEX_DEPTH: EC, - SPLAT_TEX_DEPTH_BITS: CC, - SPLAT_TEX_DEPTH_MASK: ro, - SPLAT_TEX_HEIGHT: XA, - SPLAT_TEX_HEIGHT_BITS: WQ, - SPLAT_TEX_HEIGHT_MASK: eo, - SPLAT_TEX_LAYER_BITS: Yo, - SPLAT_TEX_MIN_HEIGHT: jQ, + LN_SCALE_ZERO: TB, + SCALE_MAX: jo, + SCALE_MIN: Xo, + SCALE_ZERO: qI, + SPLAT_TEX_DEPTH: VB, + SPLAT_TEX_DEPTH_BITS: mB, + SPLAT_TEX_DEPTH_MASK: Aw, + SPLAT_TEX_HEIGHT: ZA, + SPLAT_TEX_HEIGHT_BITS: vQ, + SPLAT_TEX_HEIGHT_MASK: $o, + SPLAT_TEX_LAYER_BITS: zo, + SPLAT_TEX_MIN_HEIGHT: XQ, SPLAT_TEX_WIDTH: P, - SPLAT_TEX_WIDTH_BITS: XQ, - SPLAT_TEX_WIDTH_MASK: Ko, - SplatFileType: hA, - USE_COMPILED_PARSER_FUNCTION: qo, - WASM_SPLAT_SORT: no + SPLAT_TEX_WIDTH_BITS: WQ, + SPLAT_TEX_WIDTH_MASK: _o, + SplatFileType: UA, + USE_COMPILED_PARSER_FUNCTION: gw, + WASM_SPLAT_SORT: Iw }, Symbol.toStringTag, { value: "Module" })); -function uI(Q) { +function fI(Q) { return Q === "bool" || Q === "bvec2" || Q === "bvec3" || Q === "bvec4"; } -function TI(Q) { +function pI(Q) { return Q === "int" || Q === "uint" || Q === "float"; } -function xA(Q) { +function dA(Q) { return Q === "int" || Q === "ivec2" || Q === "ivec3" || Q === "ivec4"; } -function lA(Q) { +function qA(Q) { return Q === "uint" || Q === "uvec2" || Q === "uvec3" || Q === "uvec4"; } -function Mg(Q) { +function Rg(Q) { return Q === "float" || Q === "vec2" || Q === "vec3" || Q === "vec4"; } -function DC(Q) { +function ZB(Q) { return Q === "mat2" || Q === "mat2x2" || Q === "mat2x3" || Q === "mat2x4" || Q === "mat3" || Q === "mat3x2" || Q === "mat3x3" || Q === "mat3x4" || Q === "mat4" || Q === "mat4x2" || Q === "mat4x3" || Q === "mat4x4"; } -function HI(Q) { - return Mg(Q) || DC(Q); +function JI(Q) { + return Rg(Q) || ZB(Q); } -function gg(Q) { +function XI(Q) { return Q === "vec2" || Q === "ivec2" || Q === "uvec2"; } -function Qg(Q) { +function jI(Q) { return Q === "vec3" || Q === "ivec3" || Q === "uvec3"; } -function Jg(Q) { +function Mg(Q) { return Q === "vec4" || Q === "ivec4" || Q === "uvec4"; } -function xo(Q) { - return gg(Q) || Qg(Q) || Jg(Q); +function Qw(Q) { + return XI(Q) || jI(Q) || Mg(Q); } -function KI(Q) { +function nI(Q) { return Q === "mat2" || Q === "mat2x2"; } -function eI(Q) { +function YI(Q) { return Q === "mat3" || Q === "mat3x3"; } function rI(Q) { return Q === "mat4" || Q === "mat4x4"; } -function iC(Q) { +function OB(Q) { switch (Q) { case "vec2": return "float"; @@ -501,7 +102,7 @@ function iC(Q) { throw new Error(`Invalid vector type: ${Q}`); } } -function wC(Q) { +function WB(Q) { switch (Q) { case "vec2": case "ivec2": @@ -519,69 +120,69 @@ function wC(Q) { throw new Error(`Invalid vector type: ${Q}`); } } -function lo(Q) { - if (TI(Q)) +function Bw(Q) { + if (pI(Q)) return "float"; - if (gg(Q)) + if (XI(Q)) return "vec2"; - if (Qg(Q)) + if (jI(Q)) return "vec3"; - if (Jg(Q)) + if (Mg(Q)) return "vec4"; throw new Error(`Invalid vector type: ${Q}`); } -function oC(Q) { - if (TI(Q)) +function vB(Q) { + if (pI(Q)) return "uint"; - if (gg(Q)) + if (XI(Q)) return "uvec2"; - if (Qg(Q)) + if (jI(Q)) return "uvec3"; - if (Jg(Q)) + if (Mg(Q)) return "uvec4"; throw new Error(`Invalid vector type: ${Q}`); } -function po(Q) { - if (TI(Q)) +function Cw(Q) { + if (pI(Q)) return "int"; - if (gg(Q)) + if (XI(Q)) return "ivec2"; - if (Qg(Q)) + if (jI(Q)) return "ivec3"; - if (Jg(Q)) + if (Mg(Q)) return "ivec4"; throw new Error(`Invalid vector type: ${Q}`); } -function sC(Q) { +function XB(Q) { if (typeof Q == "string") return Q; if (typeof Q == "object" && Q.type) return Q.type; throw new Error(`Invalid DynoType: ${String(Q)}`); } -function MA(Q) { +function NA(Q) { return Math.trunc(Q).toString(); } -function JA(Q) { +function SA(Q) { return `${Math.max(0, Math.trunc(Q)).toString()}u`; } -function AA(Q) { +function $(Q) { return Q === Number.POSITIVE_INFINITY ? "INFINITY" : Q === Number.NEGATIVE_INFINITY ? "-INFINITY" : Number.isInteger(Q) ? Q.toFixed(1) : Q.toString(); } -function CA(Q) { - return Q instanceof UI ? Q.type : Q.dynoOut().type; +function BA(Q) { + return Q instanceof MI ? Q.type : Q.dynoOut().type; } -class UI { +class MI { constructor(A) { this.__isDynoValue = !0, this.type = A; } } -class V extends UI { +class Z extends MI { constructor(A, I) { super(A.outTypes[I]), this.dyno = A, this.key = I; } } -class zI extends UI { +class ZI extends MI { constructor(A, I) { super(A), this.literal = I; } @@ -589,10 +190,10 @@ class zI extends UI { return this.literal; } } -function ug(Q, A) { - return new zI(Q, A); +function Tg(Q, A) { + return new ZI(Q, A); } -class GC extends zI { +class jB extends ZI { constructor(A, I) { super(A, ""), this.value = I; } @@ -602,116 +203,116 @@ class GC extends zI { case "bool": return I ? "true" : "false"; case "uint": - return JA(I); + return SA(I); case "int": - return MA(I); + return NA(I); case "float": - return AA(I); + return $(I); case "bvec2": { const g = I; return `bvec2(${g[0]}, ${g[1]})`; } case "uvec2": { - if (I instanceof G.Vector2) - return `uvec2(${JA(I.x)}, ${JA(I.y)})`; + if (I instanceof a.Vector2) + return `uvec2(${SA(I.x)}, ${SA(I.y)})`; const g = I; - return `uvec2(${JA(g[0])}, ${JA(g[1])})`; + return `uvec2(${SA(g[0])}, ${SA(g[1])})`; } case "ivec2": { - if (I instanceof G.Vector2) - return `ivec2(${MA(I.x)}, ${MA(I.y)})`; + if (I instanceof a.Vector2) + return `ivec2(${NA(I.x)}, ${NA(I.y)})`; const g = I; - return `ivec2(${MA(g[0])}, ${MA(g[1])})`; + return `ivec2(${NA(g[0])}, ${NA(g[1])})`; } case "vec2": { - if (I instanceof G.Vector2) - return `vec2(${AA(I.x)}, ${AA(I.y)})`; + if (I instanceof a.Vector2) + return `vec2(${$(I.x)}, ${$(I.y)})`; const g = I; - return `vec2(${AA(g[0])}, ${AA(g[1])})`; + return `vec2(${$(g[0])}, ${$(g[1])})`; } case "bvec3": { const g = I; return `bvec3(${g[0]}, ${g[1]}, ${g[2]})`; } case "uvec3": { - if (I instanceof G.Vector3) - return `uvec3(${JA(I.x)}, ${JA(I.y)}, ${JA(I.z)})`; + if (I instanceof a.Vector3) + return `uvec3(${SA(I.x)}, ${SA(I.y)}, ${SA(I.z)})`; const g = I; - return `uvec3(${JA(g[0])}, ${JA(g[1])}, ${JA(g[2])})`; + return `uvec3(${SA(g[0])}, ${SA(g[1])}, ${SA(g[2])})`; } case "ivec3": { - if (I instanceof G.Vector3) - return `ivec3(${MA(I.x)}, ${MA(I.y)}, ${MA(I.z)})`; + if (I instanceof a.Vector3) + return `ivec3(${NA(I.x)}, ${NA(I.y)}, ${NA(I.z)})`; const g = I; - return `ivec3(${MA(g[0])}, ${MA(g[1])}, ${MA(g[2])})`; + return `ivec3(${NA(g[0])}, ${NA(g[1])}, ${NA(g[2])})`; } case "vec3": { - if (I instanceof G.Vector3) - return `vec3(${AA(I.x)}, ${AA(I.y)}, ${AA(I.z)})`; + if (I instanceof a.Vector3) + return `vec3(${$(I.x)}, ${$(I.y)}, ${$(I.z)})`; const g = I; - return `vec3(${AA(g[0])}, ${AA(g[1])}, ${AA(g[2])})`; + return `vec3(${$(g[0])}, ${$(g[1])}, ${$(g[2])})`; } case "bvec4": { const g = I; return `bvec4(${g[0]}, ${g[1]}, ${g[2]}, ${g[3]})`; } case "uvec4": { - if (I instanceof G.Vector4) - return `uvec4(${JA(I.x)}, ${JA(I.y)}, ${JA(I.z)}, ${JA(I.w)})`; + if (I instanceof a.Vector4) + return `uvec4(${SA(I.x)}, ${SA(I.y)}, ${SA(I.z)}, ${SA(I.w)})`; const g = I; - return `uvec4(${JA(g[0])}, ${JA(g[1])}, ${JA(g[2])}, ${JA(g[3])})`; + return `uvec4(${SA(g[0])}, ${SA(g[1])}, ${SA(g[2])}, ${SA(g[3])})`; } case "ivec4": { - if (I instanceof G.Vector4) - return `ivec4(${MA(I.x)}, ${MA(I.y)}, ${MA(I.z)}, ${MA(I.w)})`; + if (I instanceof a.Vector4) + return `ivec4(${NA(I.x)}, ${NA(I.y)}, ${NA(I.z)}, ${NA(I.w)})`; const g = I; - return `ivec4(${MA(g[0])}, ${MA(g[1])}, ${MA(g[2])}, ${MA(g[3])})`; + return `ivec4(${NA(g[0])}, ${NA(g[1])}, ${NA(g[2])}, ${NA(g[3])})`; } case "vec4": { - if (I instanceof G.Vector4) - return `vec4(${AA(I.x)}, ${AA(I.y)}, ${AA(I.z)}, ${AA(I.w)})`; - if (I instanceof G.Quaternion) - return `vec4(${AA(I.x)}, ${AA(I.y)}, ${AA(I.z)}, ${AA(I.w)})`; + if (I instanceof a.Vector4) + return `vec4(${$(I.x)}, ${$(I.y)}, ${$(I.z)}, ${$(I.w)})`; + if (I instanceof a.Quaternion) + return `vec4(${$(I.x)}, ${$(I.y)}, ${$(I.z)}, ${$(I.w)})`; const g = I; - return `vec4(${AA(g[0])}, ${AA(g[1])}, ${AA(g[2])}, ${AA(g[3])})`; + return `vec4(${$(g[0])}, ${$(g[1])}, ${$(g[2])}, ${$(g[3])})`; } case "mat2": case "mat2x2": { - const g = I, B = g instanceof G.Matrix2 ? g.elements : I, C = new Array(4).fill(0).map((E, D) => AA(B[D])); + const g = I, B = g instanceof a.Matrix2 ? g.elements : I, C = new Array(4).fill(0).map((E, i) => $(B[i])); return `${A}(${C.join(", ")})`; } case "mat2x3": { - const g = I, B = new Array(6).fill(0).map((C, E) => AA(g[E])); + const g = I, B = new Array(6).fill(0).map((C, E) => $(g[E])); return `${A}(${B.join(", ")})`; } case "mat2x4": { - const g = I, B = new Array(8).fill(0).map((C, E) => AA(g[E])); + const g = I, B = new Array(8).fill(0).map((C, E) => $(g[E])); return `${A}(${B.join(", ")})`; } case "mat3": case "mat3x3": { - const g = I, B = g instanceof G.Matrix3 ? g.elements : I, C = new Array(9).fill(0).map((E, D) => AA(B[D])); + const g = I, B = g instanceof a.Matrix3 ? g.elements : I, C = new Array(9).fill(0).map((E, i) => $(B[i])); return `${A}(${C.join(", ")})`; } case "mat3x2": { - const g = I, B = new Array(6).fill(0).map((C, E) => AA(g[E])); + const g = I, B = new Array(6).fill(0).map((C, E) => $(g[E])); return `${A}(${B.join(", ")})`; } case "mat3x4": { - const g = I, B = new Array(12).fill(0).map((C, E) => AA(g[E])); + const g = I, B = new Array(12).fill(0).map((C, E) => $(g[E])); return `${A}(${B.join(", ")})`; } case "mat4": case "mat4x4": { - const g = I, B = g instanceof G.Matrix4 ? g.elements : I, C = new Array(16).fill(0).map((E, D) => AA(B[D])); + const g = I, B = g instanceof a.Matrix4 ? g.elements : I, C = new Array(16).fill(0).map((E, i) => $(B[i])); return `${A}(${C.join(", ")})`; } case "mat4x2": { - const g = I, B = new Array(8).fill(0).map((C, E) => AA(g[E])); + const g = I, B = new Array(8).fill(0).map((C, E) => $(g[E])); return `${A}(${B.join(", ")})`; } case "mat4x3": { - const g = I, B = new Array(12).fill(0).map((C, E) => AA(g[E])); + const g = I, B = new Array(12).fill(0).map((C, E) => $(g[E])); return `${A}(${B.join(", ")})`; } default: @@ -719,55 +320,55 @@ class GC extends zI { } } } -function v(Q, A) { - return new GC(Q, A); +function AA(Q, A) { + return new jB(Q, A); } -function Dg(Q) { +function gg(Q) { const A = String(Q); - if (uI(Q)) + if (fI(Q)) return `${A}(false)`; - if (HI(Q)) + if (JI(Q)) return `${A}(0.0)`; - if (xA(Q)) + if (dA(Q)) return `${A}(0)`; - if (lA(Q)) + if (qA(Q)) return `${A}(0u)`; throw new Error(`Type not implemented: ${A}`); } -function fo(Q) { +function Ew(Q) { const A = String(Q); - if (uI(Q)) + if (fI(Q)) return `${A}(true)`; - if (HI(Q)) + if (JI(Q)) return `${A}(1.0)`; - if (xA(Q)) + if (dA(Q)) return `${A}(1)`; - if (lA(Q)) + if (qA(Q)) return `${A}(1u)`; throw new Error(`Type not implemented: ${A}`); } -function bo(Q) { +function iw(Q) { const A = String(Q); - if (uI(Q)) + if (fI(Q)) return `${A}(true)`; - if (HI(Q)) + if (JI(Q)) return `${A}(-1.0)`; - if (xA(Q)) + if (dA(Q)) return `${A}(-1)`; - if (lA(Q)) + if (qA(Q)) return `${A}(0xFFFFFFFFu)`; throw new Error(`Type not implemented: ${A}`); } -const YB = " "; -class yC { +const MB = " "; +class zB { constructor({ indent: A } = {}) { - this.globals = /* @__PURE__ */ new Set(), this.statements = [], this.uniforms = {}, this.declares = /* @__PURE__ */ new Set(), this.updaters = [], this.sequence = 0, this.indent = YB, this.indent = A ?? YB; + this.globals = /* @__PURE__ */ new Set(), this.statements = [], this.uniforms = {}, this.declares = /* @__PURE__ */ new Set(), this.updaters = [], this.sequence = 0, this.indent = MB, this.indent = A ?? MB; } nextSequence() { return this.sequence++; } } -class d { +class q { constructor({ inTypes: A, outTypes: I, @@ -775,20 +376,20 @@ class d { update: B, globals: C, statements: E, - generate: D + generate: i }) { - this.inTypes = A ?? {}, this.outTypes = I ?? {}, this.inputs = g ?? {}, this.update = B, this.globals = C, this.statements = E, this.generate = D ?? (({ inputs: i, outputs: w, compile: s }) => { - var o, y; + this.inTypes = A ?? {}, this.outTypes = I ?? {}, this.inputs = g ?? {}, this.update = B, this.globals = C, this.statements = E, this.generate = i ?? (({ inputs: o, outputs: D, compile: s }) => { + var w, G; return { - globals: (o = this.globals) == null ? void 0 : o.call(this, { inputs: i, outputs: w, compile: s }), - statements: (y = this.statements) == null ? void 0 : y.call(this, { inputs: i, outputs: w, compile: s }) + globals: (w = this.globals) == null ? void 0 : w.call(this, { inputs: o, outputs: D, compile: s }), + statements: (G = this.statements) == null ? void 0 : G.call(this, { inputs: o, outputs: D, compile: s }) }; }); } get outputs() { const A = {}; for (const I in this.outTypes) - A[I] = new V(this, I); + A[I] = new Z(this, I); return A; } apply(A) { @@ -802,28 +403,28 @@ class d { const B = [ `// ${this.constructor.name}(${Object.values(A).join(", ")}) => (${Object.values(I).join(", ")})` ], C = []; - for (const w in I) { - const s = I[w]; - s && !g.declares.has(s) && (g.declares.add(s), C.push(w)); + for (const D in I) { + const s = I[D]; + s && !g.declares.has(s) && (g.declares.add(s), C.push(D)); } - const { globals: E, statements: D, uniforms: i } = this.generate({ + const { globals: E, statements: i, uniforms: o } = this.generate({ inputs: A, outputs: I, compile: g }); - for (const w of E ?? []) - g.globals.add(w); - for (const w in i) - g.uniforms[w] = i[w]; + for (const D of E ?? []) + g.globals.add(D); + for (const D in o) + g.uniforms[D] = o[D]; this.update && g.updaters.push(this.update); - for (const w of C) { - const s = I[w]; - s && (g.uniforms[s] || B.push(`${vQ(s, this.outTypes[w])};`)); + for (const D of C) { + const s = I[D]; + s && (g.uniforms[s] || B.push(`${zQ(s, this.outTypes[D])};`)); } - return D != null && D.length && (B.push("{"), B.push(...D.map((w) => g.indent + w)), B.push("}")), B; + return i != null && i.length && (B.push("{"), B.push(...i.map((D) => g.indent + D)), B.push("}")), B; } } -class hI extends d { +class sI extends q { constructor({ inTypes: A, outTypes: I, @@ -838,7 +439,7 @@ class hI extends d { inputs: g, update: B, globals: C, - generate: (D) => this.generateBlock(D) + generate: (i) => this.generateBlock(i) }), this.construct = E; } generateBlock({ @@ -846,29 +447,29 @@ class hI extends d { outputs: I, compile: g }) { - var k, R; + var c, t; const B = {}, C = {}; - for (const F in A) - A[F] != null && (B[F] = new zI(this.inTypes[F], A[F])); - for (const F in I) - I[F] != null && (C[F] = new UI(this.outTypes[F])); - const E = { roots: [] }, D = this.construct(B, C, E); - for (const F of ((k = this.globals) == null ? void 0 : k.call(this, { inputs: A, outputs: I, compile: g })) ?? []) - g.globals.add(F); - const i = [], w = /* @__PURE__ */ new Map(); - function s(F, a, S) { - let M = w.get(F); - if (!M) { - M = { + for (const y in A) + A[y] != null && (B[y] = new ZI(this.inTypes[y], A[y])); + for (const y in I) + I[y] != null && (C[y] = new MI(this.outTypes[y])); + const E = { roots: [] }, i = this.construct(B, C, E); + for (const y of ((c = this.globals) == null ? void 0 : c.call(this, { inputs: A, outputs: I, compile: g })) ?? []) + g.globals.add(y); + const o = [], D = /* @__PURE__ */ new Map(); + function s(y, k, F) { + let R = D.get(y); + if (!R) { + R = { sequence: g.nextSequence(), outNames: /* @__PURE__ */ new Map(), newOuts: /* @__PURE__ */ new Set() - }, w.set(F, M); - for (const c in F.inputs) { - let N = F.inputs[c]; + }, D.set(y, R); + for (const S in y.inputs) { + let N = y.inputs[S]; for (; N; ) { - if (N instanceof UI) { - N instanceof V && s(N.dyno, N.key); + if (N instanceof MI) { + N instanceof Z && s(N.dyno, N.key); break; } if (typeof N.dynoOut != "function") @@ -878,63 +479,63 @@ class hI extends d { N = N.dynoOut(); } } - i.push(F); + o.push(y); } - a && (S || M.newOuts.add(a), M.outNames.set(a, S ?? `${a}_${M.sequence}`)); + k && (F || R.newOuts.add(k), R.outNames.set(k, F ?? `${k}_${R.sequence}`)); } - for (const F of E.roots) - s(F); - for (const F in C) { - let a = (D == null ? void 0 : D[F]) ?? C[F]; - for (; a; ) { - if (a instanceof UI) { - a instanceof V && s(a.dyno, a.key, I[F]); + for (const y of E.roots) + s(y); + for (const y in C) { + let k = (i == null ? void 0 : i[y]) ?? C[y]; + for (; k; ) { + if (k instanceof MI) { + k instanceof Z && s(k.dyno, k.key, I[y]); break; } - a = a.dynoOut(); + k = k.dynoOut(); } - C[F] = a; + C[y] = k; } - const o = []; - for (const F of i) { - const a = {}, S = {}; - for (const N in F.inputs) { - let U = F.inputs[N]; - for (; U; ) { - if (U instanceof UI) { - if (U instanceof zI) - a[N] = U.getLiteral(); - else if (U instanceof V) { - const J = (R = w.get(U.dyno)) == null ? void 0 : R.outNames.get(U.key); - if (!J) + const w = []; + for (const y of o) { + const k = {}, F = {}; + for (const N in y.inputs) { + let M = y.inputs[N]; + for (; M; ) { + if (M instanceof MI) { + if (M instanceof ZI) + k[N] = M.getLiteral(); + else if (M instanceof Z) { + const U = (t = D.get(M.dyno)) == null ? void 0 : t.outNames.get(M.key); + if (!U) throw new Error( - `Source not found for ${U.dyno.constructor.name}.${U.key}` + `Source not found for ${M.dyno.constructor.name}.${M.key}` ); - a[N] = J; + k[N] = U; } break; } - U = U.dynoOut(); + M = M.dynoOut(); } } - const M = w.get(F) ?? { outNames: /* @__PURE__ */ new Map() }; - for (const [N, U] of M.outNames.entries()) - S[N] = U; - const c = F.compile({ inputs: a, outputs: S, compile: g }); - o.push(c); + const R = D.get(y) ?? { outNames: /* @__PURE__ */ new Map() }; + for (const [N, M] of R.outNames.entries()) + F[N] = M; + const S = y.compile({ inputs: k, outputs: F, compile: g }); + w.push(S); } - const y = []; - for (const F in I) - C[F] instanceof zI && y.push( - `${I[F]} = ${C[F].getLiteral()};` + const G = []; + for (const y in I) + C[y] instanceof ZI && G.push( + `${I[y]} = ${C[y].getLiteral()};` ); - return y.length > 0 && o.push(y), { statements: o.flatMap((F, a) => a === 0 ? F : ["", ...F]) }; + return G.length > 0 && w.push(G), { statements: w.flatMap((y, k) => k === 0 ? y : ["", ...y]) }; } } -function cA(Q, A, I, { update: g, globals: B } = {}) { - return new hI({ inTypes: Q, outTypes: A, construct: I, update: g, globals: B }); +function LA(Q, A, I, { update: g, globals: B } = {}) { + return new sI({ inTypes: Q, outTypes: A, construct: I, update: g, globals: B }); } -function gQ({ +function jQ({ inTypes: Q, outTypes: A, inputs: I, @@ -943,7 +544,7 @@ function gQ({ statements: C, generate: E }) { - return new d({ + return new q({ inTypes: Q, outTypes: A, inputs: I, @@ -953,7 +554,7 @@ function gQ({ generate: E }); } -function vQ(Q, A, I) { +function zQ(Q, A, I) { const g = typeof A == "string" ? A : A.type; if (!g) throw new Error(`Invalid DynoType: ${String(A)}`); @@ -964,8 +565,8 @@ function z(Q) { let A = !1; const I = Q.split(` `).map((E) => { - const D = E.trimEnd(); - return A ? D : D.length > 0 ? (A = !0, D) : null; + const i = E.trimEnd(); + return A ? i : i.length > 0 ? (A = !0, i) : null; }).filter((E) => E != null); for (; I.length > 0 && I[I.length - 1].length === 0; ) I.pop(); @@ -977,38 +578,38 @@ function z(Q) { const B = new RegExp(`^${g}`); return I.map((E) => E.replace(B, "")); } -function oA(Q) { +function GA(Q) { return z(Q).join(` `); } -class e extends d { +class r extends q { constructor({ a: A, outKey: I, outTypeFunc: g }) { - const B = { a: CA(A) }, C = g(CA(A)), E = { [I]: C }; + const B = { a: BA(A) }, C = g(BA(A)), E = { [I]: C }; super({ inTypes: B, outTypes: E, inputs: { a: A } }), this.outKey = I; } dynoOut() { - return new V(this, this.outKey); + return new Z(this, this.outKey); } } -class DA extends d { +class iA extends q { constructor({ a: A, b: I, outKey: g, outTypeFunc: B }) { - const C = { a: CA(A), b: CA(I) }, E = B(CA(A), CA(I)), D = { [g]: E }; - super({ inTypes: C, outTypes: D, inputs: { a: A, b: I } }), this.outKey = g; + const C = { a: BA(A), b: BA(I) }, E = B(BA(A), BA(I)), i = { [g]: E }; + super({ inTypes: C, outTypes: i, inputs: { a: A, b: I } }), this.outKey = g; } dynoOut() { - return new V(this, this.outKey); + return new Z(this, this.outKey); } } -class OI extends d { +class uI extends q { constructor({ a: A, b: I, @@ -1016,1144 +617,566 @@ class OI extends d { outKey: B, outTypeFunc: C }) { - const E = { a: CA(A), b: CA(I), c: CA(g) }, D = C(CA(A), CA(I), CA(g)), i = { [B]: D }; - super({ inTypes: E, outTypes: i, inputs: { a: A, b: I, c: g } }), this.outKey = B; + const E = { a: BA(A), b: BA(I), c: BA(g) }, i = C(BA(A), BA(I), BA(g)), o = { [B]: i }; + super({ inTypes: E, outTypes: o, inputs: { a: A, b: I, c: g } }), this.outKey = B; } dynoOut() { - return new V(this, this.outKey); - } -} -const hC = Number.parseInt(G.REVISION), RC = hC >= 179, Ug = new Float32Array(1), QQ = new Uint32Array(Ug.buffer), zQ = "Float16Array" in globalThis, Gg = zQ ? new globalThis.Float16Array(1) : null, kC = new Uint16Array(Gg == null ? void 0 : Gg.buffer); -function FC(Q) { - const A = Math.sqrt(Q.reduce((I, g) => I + g * g, 0)); - return Q.map((I) => I / A); -} -function qg(Q) { - return Ug[0] = Q, QQ[0]; -} -function xg(Q) { - return QQ[0] = Q, Ug[0]; -} -const VA = zQ ? Po : uo, NA = zQ ? To : Oo; -function Po(Q) { - return Gg[0] = Q, kC[0]; -} -function uo(Q) { - Ug[0] = Q; - const A = QQ[0], I = A >> 31 & 1, g = A >> 23 & 255, B = A & 8388607, C = I << 15; - if (g === 255) - return B !== 0 ? C | 32767 : C | 31744; - const E = g - 127 + 15; - if (E >= 31) - return C | 31744; - if (E <= 0) { - if (E < -10) - return C; - const i = (B | 8388608) >> 1 - E + 13; - return C | i; + return new Z(this, this.outKey); } - const D = B >> 13; - return C | E << 10 | D; } -function To(Q) { - return kC[0] = Q, Gg[0]; -} -function Oo(Q) { - const A = Q >> 15 & 1, I = Q >> 10 & 31, g = Q & 1023; - let B; - if (I === 0) - if (g === 0) - B = A << 31; - else { - let C = g, E = -14; - for (; (C & 1024) === 0; ) - C <<= 1, E--; - C &= 1023; - const D = E + 127, i = C << 13; - B = A << 31 | D << 23 | i; - } - else if (I === 31) - g === 0 ? B = A << 31 | 2139095040 : B = A << 31 | 2143289344; - else { - const C = I - 15 + 127, E = g << 13; - B = A << 31 | C << 23 | E; +const j = { type: "Gsplat" }, nA = { type: "CovSplat" }, IQ = { type: "PackedSplats" }, _Q = { type: "ExtSplats" }, _B = { type: "CovSplats" }, Dw = (Q) => new QC({ packedSplats: Q }), $B = (Q, A) => new CC({ packedSplats: Q, index: A }), AC = (Q, A, I, g) => new EC({ packedSplats: Q, index: A, base: I, count: g }), ow = (Q) => new iC({ extSplats: Q }), IC = (Q, A) => new DC({ extSplats: Q, index: A }), ww = (Q) => new oC({ covsplats: Q }), sw = (Q, A) => new wC({ covSplats: Q, index: A }), mg = (Q) => new sC({ gsplat: Q }), fA = (Q) => new aC({ gsplat: Q }), QI = ({ + gsplat: Q, + flags: A, + index: I, + center: g, + scales: B, + quaternion: C, + rgba: E, + rgb: i, + opacity: o, + x: D, + y: s, + z: w, + r: G, + g: h, + b: c +}) => new GC({ + gsplat: Q, + flags: A, + index: I, + center: g, + scales: B, + quaternion: C, + rgba: E, + rgb: i, + opacity: o, + x: D, + y: s, + z: w, + r: G, + g: h, + b: c +}), LQ = (Q) => new tC({ gsplat: Q }), gC = (Q, { + scale: A, + rotate: I, + translate: g, + recolor: B +}) => new yC({ gsplat: Q, scale: A, rotate: I, translate: g, recolor: B }), $Q = (Q) => new FC({ index: Q }), HQ = (Q) => new NC({ index: Q }), YA = GA(` + struct Gsplat { + vec3 center; + uint flags; + vec3 scales; + int index; + vec4 quaternion; + vec4 rgba; + }; + const uint GSPLAT_FLAG_ACTIVE = 1u << 0u; + + bool isGsplatActive(uint flags) { + return (flags & GSPLAT_FLAG_ACTIVE) != 0u; } - return QQ[0] = B, Ug[0]; -} -function jA(Q) { - return Math.max(0, Math.min(255, Math.round(Q * 255))); -} -function lg(Q) { - return Math.max(-127, Math.min(127, Math.round(Q * 127))); -} -function mo(Q) { - return Q / 255; -} -function Zo(Q) { - return Q / 127; -} -class Vo { - // Create a DataCache with a given function that fetches data not in the cache. +`), LI = GA(` + struct CovSplat { + vec3 center; + uint flags; + vec4 rgba; + vec3 xxyyzz; + int index; + vec3 xyxzyz; + }; + + bool isCovSplatActive(uint flags) { + return (flags & GSPLAT_FLAG_ACTIVE) != 0u; + } +`), gQ = GA(` + struct PackedSplats { + usampler2DArray textureArray; + int numSplats; + vec4 rgbMinMaxLnScaleMinMax; + bool lodOpacity; + }; +`); +class QC extends r { constructor({ - asyncFetch: A, - dispose: I, - maxItems: g = 5 + packedSplats: A }) { - this.asyncFetch = A, this.dispose = I, this.maxItems = g, this.items = [], this.pending = /* @__PURE__ */ new Map(); - } - has(A) { - return this.items.some((I) => I.key === A); + super({ a: A, outKey: "numSplats", outTypeFunc: () => "int" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.numSplats} = ${I.a}.numSplats;` + ]; } - getImmediate(A) { - const I = this.items.findIndex((g) => g.key === A); - if (I >= 0) { - const g = this.items.splice(I, 1)[0]; - return this.items.push(g), g.data; +} +const BC = GA(` + bool readPackedArray(usampler2DArray texture, int numSplats, vec4 rgbMinMaxLnScaleMinMax, int index, out Gsplat gsplat) { + if ((index >= 0) && (index < numSplats)) { + uvec4 packedData = texelFetch(texture, splatTexCoord(index), 0); + unpackSplatEncoding(packedData, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba, rgbMinMaxLnScaleMinMax); + return true; + } else { + return false; } } - // Fetch data for the key, returning cached data if available. - async getFetch(A) { - const I = this.getImmediate(A); - if (I !== void 0) - return I; - let g = this.pending.get(A); - return g || (g = this.asyncFetch(A).then((B) => { - for (this.pending.delete(A), this.items.push({ key: A, data: B }); this.items.length > this.maxItems; ) { - const C = this.items.shift(); - C && this.dispose && this.dispose(C.data); +`); +class CC extends q { + constructor({ + packedSplats: A, + index: I + }) { + super({ + inTypes: { packedSplats: IQ, index: "int" }, + outTypes: { gsplat: j }, + inputs: { packedSplats: A, index: I }, + globals: () => [YA, gQ, BC], + statements: ({ inputs: g, outputs: B }) => { + const { gsplat: C } = B; + if (!C) + return []; + const { packedSplats: E, index: i } = g; + let o; + return E && i ? o = z(` + ${C}.flags = 0u; + if (readPackedArray(${E}.textureArray, ${E}.numSplats, ${E}.rgbMinMaxLnScaleMinMax, ${i}, ${C})) { + if (${E}.lodOpacity) { + ${C}.rgba.a = 2.0 * ${C}.rgba.a; + } + bool zeroSize = all(equal(${C}.scales, vec3(0.0, 0.0, 0.0))); + ${C}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE; + } + `) : o = [`${C}.flags = 0u;`], o.push(`${C}.index = ${i ?? "0"};`), o; } - return B; - }), this.pending.set(A, g), g); + }); } -} -function Xo(Q, A) { - const I = Object.entries(Q).map(([g, B]) => [ - g, - A(B, g) - ]); - return Object.fromEntries(I); -} -function Wo(Q, A) { - const I = Object.entries(Q).map(([g, B]) => [g, A(B, g)]).filter(([g, B]) => B !== void 0); - return Object.fromEntries(I); -} -function _Q(Q) { - const A = [], I = /* @__PURE__ */ new Set(); - function g(B) { - B && typeof B == "object" && !I.has(B) && (I.add(B), B instanceof ArrayBuffer ? A.push(B) : ArrayBuffer.isView(B) ? A.push(B.buffer) : Array.isArray(B) ? B.forEach(g) : Object.values(B).forEach(g)); + dynoOut() { + return new Z(this, "gsplat"); } - return g(Q), A; } -function eQ(Q, A) { - return new Array(Q).fill(null).map((I, g) => A(g)); -} -class aC { +class EC extends q { constructor({ - // Allocate a new item with the given args - allocate: A, - // Dispose of an item (optional, if GC is enough) - dispose: I, - // Check if an existing item in the list is valid for the given args, - // allowing you to store heterogeneous items in the list. - valid: g + packedSplats: A, + index: I, + base: g, + count: B }) { - this.items = [], this.allocate = A, this.dispose = I, this.valid = g; + super({ + inTypes: { + packedSplats: IQ, + index: "int", + base: "int", + count: "int" + }, + outTypes: { gsplat: j }, + inputs: { packedSplats: A, index: I, base: g, count: B }, + globals: () => [YA, gQ, BC], + statements: ({ inputs: C, outputs: E }) => { + const { gsplat: i } = E; + if (!i) + return []; + const { packedSplats: o, index: D, base: s, count: w } = C; + let G; + return o && D && s && w ? G = z(` + ${i}.flags = 0u; + if (readPackedArray(${o}.textureArray, ${o}.numSplats, ${o}.rgbMinMaxLnScaleMinMax, ${D}, ${i})) { + if (${o}.lodOpacity) { + ${i}.rgba.a = 2.0 * ${i}.rgba.a; + } + bool zeroSize = all(equal(${i}.scales, vec3(0.0, 0.0, 0.0))); + ${i}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE; + } + `) : G = [`${i}.flags = 0u;`], G.push(`${i}.index = ${D ?? "0"};`), G; + } + }); } - // Allocate a new item from the free list, first checking if a existing item - // on the freelist is valid for the given args. - alloc(A) { - for (; ; ) { - const I = this.items.pop(); - if (!I) - break; - if (this.valid(I, A)) - return I; - this.dispose && this.dispose(I); + dynoOut() { + return new Z(this, "gsplat"); + } +} +const AB = GA(` + struct ExtSplats { + usampler2DArray textureArray1; + usampler2DArray textureArray2; + int numSplats; + }; +`); +class iC extends r { + constructor({ extSplats: A }) { + super({ a: A, outKey: "numSplats", outTypeFunc: () => "int" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.numSplats} = ${I.a}.numSplats;` + ]; + } +} +const aw = GA(` + void readExtArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out Gsplat gsplat) { + gsplat.flags = 0u; + if ((index >= 0) && (index < numSplats)) { + ivec3 coord = splatTexCoord(index); + uvec4 packed1 = texelFetch(texture1, coord, 0); + uvec4 packed2 = texelFetch(texture2, coord, 0); + unpackSplatExt(packed1, packed2, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba); + gsplat.flags = all(equal(gsplat.scales, vec3(0.0, 0.0, 0.0))) ? 0u : GSPLAT_FLAG_ACTIVE; + gsplat.index = index; } - return this.allocate(A); } - free(A) { - this.items.push(A); +`); +class DC extends q { + constructor({ + extSplats: A, + index: I + }) { + super({ + inTypes: { extSplats: _Q, index: "int" }, + outTypes: { gsplat: j }, + inputs: { extSplats: A, index: I }, + globals: () => [YA, AB, aw], + statements: ({ inputs: g, outputs: B }) => { + const { gsplat: C } = B; + if (!C) + return [`${C}.flags = 0u;`]; + const { extSplats: E, index: i } = g; + return E && i ? z(` + readExtArrays(${E}.textureArray1, ${E}.textureArray2, ${E}.numSplats, ${i}, ${C}); + `) : [`${C}.flags = 0u;`]; + } + }); } - disposeAll() { - let A; - for (A = this.items.pop(); A; ) - this.dispose && this.dispose(A), A = this.items.pop(); + dynoOut() { + return new Z(this, "gsplat"); } } -function rQ(Q, A, I, g, B, C, E, D, i, w, s, o, y, h, k, R) { - const F = A * 4, [a, S] = Q; - a[F] = qg(I), a[F + 1] = qg(g), a[F + 2] = qg(B), a[F + 3] = VA(y), S[F] = VA(h) | VA(k) << 16, S[F + 1] = VA(R) | VA(Math.log(C)) << 16, S[F + 2] = VA(Math.log(E)) | VA(Math.log(D)) << 16, S[F + 3] = LC(i, w, s, o); -} -function Tg(Q, A) { - const I = $Q, g = A * 4, [B, C] = Q; - return I.center.x = xg(B[g]), I.center.y = xg(B[g + 1]), I.center.z = xg(B[g + 2]), I.opacity = NA(B[g + 3] & 65535), I.color.r = NA(C[g] & 65535), I.color.g = NA(C[g] >>> 16), I.color.b = NA(C[g + 1] & 65535), I.scales.x = Math.exp(NA(C[g + 1] >>> 16)), I.scales.y = Math.exp(NA(C[g + 2] & 65535)), I.scales.z = Math.exp(NA(C[g + 2] >>> 16)), YC(C[g + 3], I.quaternion), I; -} -function nQ(Q, A, I, g, B, C, E, D, i, w, s, o, y, h, k, R, F) { - const a = (F == null ? void 0 : F.rgbMin) ?? 0, M = ((F == null ? void 0 : F.rgbMax) ?? 1) - a, c = jA((h - a) / M), N = jA((k - a) / M), U = jA((R - a) / M), J = jA(F != null && F.lodOpacity ? 0.5 * y : y), t = QB( - SC.set(i, w, s, o) - ), H = t & 255, K = t >>> 8 & 255, Y = t >>> 16 & 255, L = (F == null ? void 0 : F.lnScaleMin) ?? pA, n = 254 / (((F == null ? void 0 : F.lnScaleMax) ?? fA) - L), r = C < xI ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(C) - L) * n) + 1 - ) - ), p = E < xI ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(E) - L) * n) + 1 - ) - ), m = D < xI ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(D) - L) * n) + 1 - ) - ), IA = VA(I), X = VA(g), EA = VA(B), j = A * 4; - Q[j] = c | N << 8 | U << 16 | J << 24, Q[j + 1] = IA | X << 16, Q[j + 2] = EA | H << 16 | K << 24, Q[j + 3] = r | p << 8 | m << 16 | Y << 24; +class oC extends r { + constructor({ covsplats: A }) { + super({ a: A, outKey: "numSplats", outTypeFunc: () => "int" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.numSplats} = ${I.a}.numSplats;` + ]; + } } -function jo(Q, A, I, g, B) { - const C = VA(I), E = VA(g), D = VA(B), i = A * 4; - Q[i + 1] = C | E << 16, Q[i + 2] = D | Q[i + 2] & 4294901760; -} -function vo(Q, A, I, g, B, C) { - const E = (C == null ? void 0 : C.lnScaleMin) ?? pA, i = 254 / (((C == null ? void 0 : C.lnScaleMax) ?? fA) - E), w = I < xI ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(I) - E) * i) + 1 - ) - ), s = g < xI ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(g) - E) * i) + 1 - ) - ), o = B < xI ? 0 : Math.min( - 255, - Math.max( - 1, - Math.round((Math.log(B) - E) * i) + 1 - ) - ), y = A * 4; - Q[y + 3] = w | s << 8 | o << 16 | Q[y + 3] & 4278190080; -} -const SC = new G.Quaternion(); -function zo(Q, A, I, g, B, C) { - const E = QB( - SC.set(I, g, B, C) - ), D = E & 255, i = E >>> 8 & 255, w = E >>> 16 & 255, s = A * 4; - Q[s + 2] = Q[s + 2] & 65535 | D << 16 | i << 24, Q[s + 3] = Q[s + 3] & 16777215 | w << 24; -} -function _o(Q, A, I, g, B, C, E) { - const D = (E == null ? void 0 : E.rgbMin) ?? 0, w = ((E == null ? void 0 : E.rgbMax) ?? 1) - D, s = jA((I - D) / w), o = jA((g - D) / w), y = jA((B - D) / w), h = jA(E != null && E.lodOpacity ? 0.5 * C : C), k = A * 4; - Q[k] = s | o << 8 | y << 16 | h << 24; -} -function $o(Q, A, I, g, B, C) { - const E = (C == null ? void 0 : C.rgbMin) ?? 0, i = ((C == null ? void 0 : C.rgbMax) ?? 1) - E, w = jA((I - E) / i), s = jA((g - E) / i), o = jA((B - E) / i), y = A * 4; - Q[y] = w | s << 8 | o << 16 | Q[y] & 4278190080; -} -function As(Q, A, I) { - const g = jA(I), B = A * 4; - Q[B] = Q[B] & 16777215 | g << 24; -} -const Is = new G.Vector3(), gs = new G.Vector3(), Qs = new G.Quaternion(), Bs = new G.Color(), $Q = { - center: Is, - scales: gs, - quaternion: Qs, - color: Bs, - opacity: 0 -}; -function Og(Q, A, I) { - const g = $Q, B = A * 4, C = Q[B], E = Q[B + 1], D = Q[B + 2], i = Q[B + 3], w = (I == null ? void 0 : I.rgbMin) ?? 0, o = ((I == null ? void 0 : I.rgbMax) ?? 1) - w; - g.color.set( - w + (C & 255) / 255 * o, - w + (C >>> 8 & 255) / 255 * o, - w + (C >>> 16 & 255) / 255 * o - ), g.opacity = (C >>> 24 & 255) / 255, I != null && I.lodOpacity && (g.opacity = 2 * g.opacity), g.center.set( - NA(E & 65535), - NA(E >>> 16 & 65535), - NA(D & 65535) - ); - const y = (I == null ? void 0 : I.lnScaleMin) ?? pA, k = (((I == null ? void 0 : I.lnScaleMax) ?? fA) - y) / 254, R = i & 255; - g.scales.x = R === 0 ? 0 : Math.exp(y + (R - 1) * k); - const F = i >>> 8 & 255; - g.scales.y = F === 0 ? 0 : Math.exp(y + (F - 1) * k); - const a = i >>> 16 & 255; - g.scales.z = a === 0 ? 0 : Math.exp(y + (a - 1) * k); - const S = D >>> 16 & 65535 | i >>> 8 & 16711680; - return HC(S, g.quaternion), g; -} -function BA(Q) { - const A = P, I = Math.max( - jQ, - Math.min(XA, Math.ceil(Q / A)) - ), g = Math.ceil(Q / (A * I)), B = A * I * g; - return { width: A, height: I, depth: g, maxSplats: B }; -} -function Cs(Q) { - const A = P, I = Math.max( - jQ, - Math.min(XA, Math.ceil(Q / A)) - ), g = Math.ceil(Q / (A * I)); - return A * I * g; -} -function mg() { - return navigator.platform.toLowerCase().startsWith("win") ? !1 : navigator.maxTouchPoints > 0 ? !0 : /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test( - navigator.userAgent - ); -} -function AB() { - return /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent); -} -function IB() { - return !!navigator.xr && /Oculus/.test(navigator.userAgent); -} -function Es() { - return IB() && /Quest 2/.test(navigator.userAgent); -} -function Rg() { - return /iPhone|iPad/.test(navigator.userAgent); -} -function NC() { - return !!navigator.xr && Rg() && /Safari/.test(navigator.userAgent) && mg(); -} -function Ds(Q, A, I) { - const g = new Uint8Array(A * 4); - for (let B = 0; B < I / 2; B++) { - const C = B * A * 4, E = (I - 1 - B) * A * 4; - g.set(Q.subarray(C, C + A * 4)), Q.set( - Q.subarray(E, E + A * 4), - C - ), Q.set(g, E); - } - return Q; -} -function is(Q, A, I) { - const g = document.createElement("canvas"); - g.width = A, g.height = I; - const B = g.getContext("2d"); - if (!B) - throw new Error("Can't get 2d context"); - const C = B.createImageData(A, I); - return C.data.set(Q), B.putImageData(C, 0, 0), g.toDataURL("image/png"); -} -function gB(Q) { - const A = new G.Clock(Q.autoStart); - return A.startTime = Q.startTime, A.oldTime = Q.oldTime, A.elapsedTime = Q.elapsedTime, A.running = Q.running, A; -} -function ws(Q) { - return Object.fromEntries( - Object.entries(Q).filter(([A, I]) => I !== void 0) - ); -} -const cC = oA(` - precision highp float; - - in vec3 position; - - void main() { - gl_Position = vec4(position.xy, 0.0, 1.0); +const Gw = GA(` + void readCovArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out CovSplat covsplat) { + covsplat.flags = 0u; + if ((index >= 0) && (index < numSplats)) { + ivec3 coord = splatTexCoord(index); + uvec4 packed1 = texelFetch(texture1, coord, 0); + uvec4 packed2 = texelFetch(texture2, coord, 0); + unpackSplatExtCov(packed1, packed2, covsplat.center, covsplat.rgba, covsplat.xxyyzz, covsplat.xyxzyz); + covsplat.flags = (all(equal(covsplat.xxyyzz, vec3(0.0))) && all(equal(covsplat.xyxzyz, vec3(0.0)))) ? 0u : GSPLAT_FLAG_ACTIVE; + gsplat.index = index; + } } `); -function MC(Q) { - const A = new G.Vector3(); - for (const I of Q) - A.add(I); - return A.divideScalar(Q.length); -} -function JC(Q) { - if (Q.length === 0) - return new G.Quaternion(); - const A = Q[0].clone(); - for (let I = 1; I < Q.length; I++) - Q[I].dot(Q[0]) < 0 ? (A.x -= Q[I].x, A.y -= Q[I].y, A.z -= Q[I].z, A.w -= Q[I].w) : (A.x += Q[I].x, A.y += Q[I].y, A.z += Q[I].z, A.w += Q[I].w); - return A.normalize(); -} -function UC(Q, A) { - const I = new G.Vector3(0, 0, 0).applyMatrix4(Q), g = new G.Vector3(0, 0, 0).applyMatrix4(A), B = new G.Vector3(0, 0, -1).applyMatrix4(Q).sub(I).normalize(), C = new G.Vector3(0, 0, -1).applyMatrix4(A).sub(g).normalize(), E = I.distanceTo(g), D = B.dot(C); - return { distance: E, coincidence: D }; -} -function os({ - matrix1: Q, - matrix2: A, - maxDistance: I -}) { - const g = new G.Vector3(0, 0, 0).applyMatrix4(Q), B = new G.Vector3(0, 0, 0).applyMatrix4(A); - return g.distanceTo(B) <= I; -} -function ss({ - matrix1: Q, - matrix2: A, - maxDistance: I, - minCoincidence: g -}) { - const { distance: B, coincidence: C } = UC(Q, A); - return B <= I && (g == null || C >= g); -} -function tC(Q, A) { - const [I, g] = [new G.Vector3(), new G.Quaternion()], [B, C] = [new G.Vector3(), new G.Quaternion()]; - Q.decompose(I, g, new G.Vector3()), A.decompose(B, C, new G.Vector3()); - const E = I.distanceTo(B), D = Math.abs(g.dot(C)); - return { distance: E, coorient: D }; -} -function Zg({ - matrix1: Q, - matrix2: A, - maxDistance: I, - minCoorient: g -}) { - const { distance: B, coorient: C } = tC(Q, A); - return B <= I && (g == null || C >= g); -} -function Gs(Q, A = 1e-3) { - return Math.abs(Q) < A ? 0 : Math.sign(Q); -} -function ys(Q) { - const A = Q.w < 0, I = lg(A ? -Q.x : Q.x), g = lg(A ? -Q.y : Q.y), B = lg(A ? -Q.z : Q.z), C = I & 255, E = g & 255, D = B & 255; - return C | E << 8 | D << 16; -} -function hs(Q, A) { - const I = Q << 24 >> 24, g = Q << 16 >> 24, B = Q << 8 >> 24; - A.set(I / 127, g / 127, B / 127, 0); - const C = A.x * A.x + A.y * A.y + A.z * A.z; - return A.w = Math.sqrt(Math.max(0, 1 - C)), A; -} -const Rs = new G.Quaternion(), dQ = new G.Vector3(); -function QB(Q) { - const A = Rs.copy(Q).normalize(); - A.w < 0 && A.set(-A.x, -A.y, -A.z, -A.w); - const I = 2 * Math.acos(A.w), g = Math.sqrt( - A.x * A.x + A.y * A.y + A.z * A.z - ), B = g < 1e-6 ? dQ.set(1, 0, 0) : dQ.set(A.x, A.y, A.z).divideScalar(g), C = Math.abs(B.x) + Math.abs(B.y) + Math.abs(B.z); - let E = B.x / C, D = B.y / C; - if (B.z < 0) { - const h = E; - E = (1 - Math.abs(D)) * (E >= 0 ? 1 : -1), D = (1 - Math.abs(h)) * (D >= 0 ? 1 : -1); - } - const i = E * 0.5 + 0.5, w = D * 0.5 + 0.5, s = Math.round(i * 255), o = Math.round(w * 255); - return Math.round(I * (255 / Math.PI)) << 16 | o << 8 | s; -} -function HC(Q, A) { - const I = Q & 255, g = Q >>> 8 & 255, B = Q >>> 16 & 255, C = I / 255, E = g / 255; - let D = (C - 0.5) * 2, i = (E - 0.5) * 2; - const w = 1 - (Math.abs(D) + Math.abs(i)), s = Math.max(-w, 0); - D += D >= 0 ? -s : s, i += i >= 0 ? -s : s; - const o = dQ.set(D, i, w).normalize(), h = B / 255 * Math.PI * 0.5, k = Math.sin(h), R = Math.cos(h); - return A.set(o.x * k, o.y * k, o.z * k, R), A; -} -function ks(Q) { - const A = Q.clone().normalize(), I = 2 * (A.w * A.x + A.y * A.z), g = 1 - 2 * (A.x * A.x + A.y * A.y), B = Math.atan2(I, g), C = 2 * (A.w * A.y - A.z * A.x), E = Math.abs(C) >= 1 ? Math.sign(C) * (Math.PI / 2) : Math.asin(C), D = 2 * (A.w * A.z + A.x * A.y), i = 1 - 2 * (A.y * A.y + A.z * A.z), w = Math.atan2(D, i), s = (B + Math.PI) / (2 * Math.PI), o = (E + Math.PI) / (2 * Math.PI), y = (w + Math.PI) / (2 * Math.PI), h = Math.round(s * 255), k = Math.round(o * 255); - return Math.round(y * 255) << 16 | k << 8 | h; -} -function Fs(Q, A) { - const I = Q & 255, g = Q >>> 8 & 255, B = Q >>> 16 & 255, C = I / 255, E = g / 255, D = B / 255, i = C * (2 * Math.PI) - Math.PI, w = E * (2 * Math.PI) - Math.PI, s = D * (2 * Math.PI) - Math.PI, o = Math.cos(i * 0.5), y = Math.sin(i * 0.5), h = Math.cos(w * 0.5), k = Math.sin(w * 0.5), R = Math.cos(s * 0.5), F = Math.sin(s * 0.5); - return A.w = o * h * R + y * k * F, A.x = y * h * R - o * k * F, A.y = o * k * R + y * h * F, A.z = o * h * F - y * k * R, A.normalize(), A; -} -function LC(Q, A, I, g) { - const B = Math.sqrt(Q * Q + A * A + I * I + g * g), C = (g < 0 ? -Q : Q) / B, E = (g < 0 ? -A : A) / B, D = (g < 0 ? -I : I) / B, i = (g < 0 ? -g : g) / B, w = 2 * Math.acos(i), s = Math.sqrt(C * C + E * E + D * D), o = s < 1e-6 ? 1 : C / s, y = s < 1e-6 ? 0 : E / s, h = s < 1e-6 ? 0 : D / s, k = Math.abs(o) + Math.abs(y) + Math.abs(h); - let R = o / k, F = y / k; - if (h < 0) { - const U = R; - R = (1 - Math.abs(F)) * (R >= 0 ? 1 : -1), F = (1 - Math.abs(U)) * (F >= 0 ? 1 : -1); +class wC extends q { + constructor({ + covSplats: A, + index: I + }) { + super({ + inTypes: { covSplats: _B, index: "int" }, + outTypes: { covsplat: nA }, + inputs: { covSplats: A, index: I }, + globals: () => [YA, LI, Gw], + statements: ({ inputs: g, outputs: B }) => { + const { covsplat: C } = B; + if (!C) + return [`${C}.flags = 0u;`]; + const { covSplats: E, index: i } = g; + return E && i ? z(` + readCovArrays(${E}.textureArray, ${E}.numSplats, ${i}, ${C}); + `) : [`${C}.flags = 0u;`]; + } + }); } - const a = R * 0.5 + 0.5, S = F * 0.5 + 0.5, M = Math.round(a * 1023), c = Math.round(S * 1023); - return Math.round(w * (4095 / Math.PI)) << 20 | c << 10 | M; -} -function YC(Q, A) { - const I = Q & 1023, g = Q >>> 10 & 1023, B = Q >>> 20 & 4095, C = I / 1023, E = g / 1023; - let D = (C - 0.5) * 2, i = (E - 0.5) * 2; - const w = 1 - (Math.abs(D) + Math.abs(i)), s = Math.max(-w, 0); - D += D >= 0 ? -s : s, i += i >= 0 ? -s : s; - const o = Math.sqrt(D * D + i * i + w * w), y = o < 1e-6 ? 0 : D / o, h = o < 1e-6 ? 0 : i / o, k = o < 1e-6 ? 0 : w / o, F = B / 4095 * Math.PI * 0.5, a = Math.sin(F), S = Math.cos(F); - return A.set(y * a, h * a, k * a, S), A; -} -function Lg(Q, A, I, g) { - const B = Math.round(Math.max(-127, Math.min(127, Q * 127))), C = Math.round(Math.max(-127, Math.min(127, A * 127))), E = Math.round(Math.max(-127, Math.min(127, I * 127))), D = Math.round(Math.max(-127, Math.min(127, g * 127))); - return B & 255 | (C & 255) << 8 | (E & 255) << 16 | (D & 255) << 24; -} -function as(Q, A, I, g) { - const C = 63 / ((g == null ? void 0 : g.sh1Max) ?? 1), E = A * 2; - for (let D = 0; D < 9; ++D) { - const i = I[D] * C, w = Math.round(Math.max(-63, Math.min(63, i))) & 127, s = D * 7, o = s + 7, y = Math.floor(s / 32), h = s - y * 32, k = w << h & 4294967295; - if (Q[E + y] |= k, o > y * 32 + 32) { - const R = w >>> 32 - h & 4294967295; - Q[E + y + 1] |= R; - } + dynoOut() { + return new Z(this, "covsplat"); } } -function Ss(Q, A, I, g) { - const C = 1 / ((g == null ? void 0 : g.sh2Max) ?? 1); - Q[A * 4 + 0] = Lg( - I[0] * C, - I[1] * C, - I[2] * C, - I[3] * C - ), Q[A * 4 + 1] = Lg( - I[4] * C, - I[5] * C, - I[6] * C, - I[7] * C - ), Q[A * 4 + 2] = Lg( - I[8] * C, - I[9] * C, - I[10] * C, - I[11] * C - ), Q[A * 4 + 3] = Lg( - I[12] * C, - I[13] * C, - I[14] * C, - 0 - ); -} -function Ns(Q, A, I, g) { - const C = 31 / ((g == null ? void 0 : g.sh3Max) ?? 1), E = A * 4; - for (let D = 0; D < 21; ++D) { - const i = I[D] * C, w = Math.round(Math.max(-31, Math.min(31, i))) & 63, s = D * 6, o = s + 6, y = Math.floor(s / 32), h = s - y * 32, k = w << h & 4294967295; - if (Q[E + y] |= k, o > y * 32 + 32) { - const R = w >>> 32 - h & 4294967295; - Q[E + y + 1] |= R; - } +class sC extends q { + constructor({ gsplat: A }) { + super({ + inTypes: { gsplat: j }, + outTypes: { covsplat: nA }, + inputs: { gsplat: A }, + globals: () => [YA, LI], + statements: ({ inputs: I, outputs: g }) => { + const { gsplat: B } = I, { covsplat: C } = g; + return B ? z(` + ${C}.flags = 0u; + if (isGsplatActive(${B}.flags)) { + ${C}.flags = ${B}.flags; + ${C}.index = ${B}.index; + ${C}.rgba = ${B}.rgba; + ${C}.center = ${B}.center; + mat3 m = scaleQuaternionToMatrix(${B}.scales, ${B}.quaternion); + m = m * transpose(m); + ${C}.xxyyzz = vec3(m[0][0], m[1][1], m[2][2]); + ${C}.xyxzyz = vec3(m[0][1], m[0][2], m[1][2]); + } + `) : [`${C}.flags = 0u;`]; + } + }); } -} -function lI(Q, A, I) { - const g = Math.abs(Q), B = Math.abs(A), C = Math.abs(I), E = Math.max(g, B, C), D = Math.floor(Math.log2(E)), i = Math.max(0, Math.min(31, D + 15)), w = 2 ** (i - 15) / 255, s = Math.round(Math.max(0, Math.min(255, g / w))), o = Math.round(Math.max(0, Math.min(255, B / w))), y = Math.round(Math.max(0, Math.min(255, C / w))), h = i << 3 | ((Q < 0 ? 1 : 0) | (A < 0 ? 2 : 0) | (I < 0 ? 4 : 0)); - return s | o << 8 | y << 16 | h << 24; -} -function cs(Q) { - const A = $Q.color, g = 2 ** ((Q >>> 27 & 31) - 15) / 255, B = (Q & 255) * g, C = (Q >>> 8 & 255) * g, E = (Q >>> 16 & 255) * g; - return A.r = Q & 16777216 ? -B : B, A.g = Q & 33554432 ? -C : C, A.b = Q & 67108864 ? -E : E, A; -} -function Ms(Q, A, I) { - const g = A * 4; - for (let B = 0; B < 3; ++B) { - const C = B * 3; - Q[g + B] = lI(I[C], I[C + 1], I[C + 2]); + dynoOut() { + return new Z(this, "covsplat"); } } -function Js(Q, A, I, g, B) { - const C = I * 4; - for (let E = 0; E < 3; ++E) { - const D = E * 3; - Q[C + E] = lI(g[D], g[D + 1], g[D + 2]); - } - Q[C + 3] = lI(B[0], B[1], B[2]); - for (let E = 1; E < 5; ++E) { - const D = E * 5; - A[C + (E - 1)] = lI( - B[D], - B[D + 1], - B[D + 2] - ); +class aC extends q { + constructor({ gsplat: A }) { + super({ + inTypes: { gsplat: j }, + outTypes: { + flags: "uint", + active: "bool", + index: "int", + center: "vec3", + scales: "vec3", + quaternion: "vec4", + rgba: "vec4", + rgb: "vec3", + opacity: "float", + x: "float", + y: "float", + z: "float", + r: "float", + g: "float", + b: "float" + }, + inputs: { gsplat: A }, + globals: () => [YA], + statements: ({ inputs: I, outputs: g }) => { + const { gsplat: B } = I, { + flags: C, + active: E, + index: i, + center: o, + scales: D, + quaternion: s, + rgba: w, + rgb: G, + opacity: h, + x: c, + y: t, + z: y, + r: k, + g: F, + b: R + } = g; + return [ + C ? `${C} = ${B ? `${B}.flags` : "0u"};` : null, + E ? `${E} = isGsplatActive(${B ? `${B}.flags` : "0u"});` : null, + i ? `${i} = ${B ? `${B}.index` : "0"};` : null, + o ? `${o} = ${B ? `${B}.center` : "vec3(0.0, 0.0, 0.0)"};` : null, + D ? `${D} = ${B ? `${B}.scales` : "vec3(0.0, 0.0, 0.0)"};` : null, + s ? `${s} = ${B ? `${B}.quaternion` : "vec4(0.0, 0.0, 0.0, 1.0)"};` : null, + w ? `${w} = ${B ? `${B}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)"};` : null, + G ? `${G} = ${B ? `${B}.rgba.rgb` : "vec3(0.0, 0.0, 0.0)"};` : null, + h ? `${h} = ${B ? `${B}.rgba.a` : "0.0"};` : null, + c ? `${c} = ${B ? `${B}.center.x` : "0.0"};` : null, + t ? `${t} = ${B ? `${B}.center.y` : "0.0"};` : null, + y ? `${y} = ${B ? `${B}.center.z` : "0.0"};` : null, + k ? `${k} = ${B ? `${B}.rgba.r` : "0.0"};` : null, + F ? `${F} = ${B ? `${B}.rgba.g` : "0.0"};` : null, + R ? `${R} = ${B ? `${B}.rgba.b` : "0.0"};` : null + ].filter(Boolean); + } + }); } } -function Us(Q, A, I, g) { - const B = I * 4; - for (let C = 0; C < 4; ++C) { - const E = C * 3; - Q[B + C] = lI( - g[E], - g[E + 1], - g[E + 2] - ); - } - for (let C = 4; C < 7; ++C) { - const E = C * 3; - A[B + (C - 4)] = lI( - g[E], - g[E + 1], - g[E + 2] - ); - } -} -function KC(Q, A) { - const I = []; - let g = 0, B = null; - const C = new ao((i, w) => { - if (I.push(i), g += i.length, w || g >= A) { - const s = new Uint8Array(g); - let o = 0; - for (const y of I) - s.set(y, o), o += y.length; - B = s.slice(0, A); - } - }), E = 1024; - let D = 0; - for (; B == null && D < Q.length; ) { - const i = Q.slice(D, D + E); - C.push(i, !1), D += E; - } - if (B == null && (C.push(new Uint8Array(), !0), B == null)) - throw new Error("Failed to decompress partial gzip"); - return B; -} -class eC { +class GC extends q { constructor({ - fileBytes: A, - chunkBytes: I = 64 * 1024 + gsplat: A, + flags: I, + index: g, + center: B, + scales: C, + quaternion: E, + rgba: i, + rgb: o, + opacity: D, + x: s, + y: w, + z: G, + r: h, + g: c, + b: t }) { - this.fileBytes = A, this.chunkBytes = I, this.chunks = [], this.totalBytes = 0; - const g = new DecompressionStream("gzip"), B = new Blob([A]).stream().pipeThrough(g); - this.reader = B.getReader(); - } - async read(A) { - for (; this.totalBytes < A; ) { - const { value: C, done: E } = await this.reader.read(); - if (E) - break; - this.chunks.push(C), this.totalBytes += C.length; - } - if (this.totalBytes < A) - throw new Error( - `Unexpected EOF: needed ${A}, got ${this.totalBytes}` - ); - const I = new Uint8Array(this.totalBytes); - let g = 0; - for (const C of this.chunks) - I.set(C, g), g += C.length; - const B = I.subarray(0, A); - return this.chunks = [I.subarray(A)], this.totalBytes -= A, B; - } -} -const ek = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ - __proto__: null, - DataCache: Vo, - FreeList: aC, - GunzipReader: eC, - IDENT_VERTEX_SHADER: cC, - Sint8ToFloat: Zo, - Uint8ToFloat: mo, - averagePositions: MC, - averageQuaternions: JC, - cloneClock: gB, - coinciDist: UC, - computeMaxSplats: Cs, - coorientDist: tC, - decodeExtRgb: cs, - decodeExtSplat: Tg, - decodeQuatEulerXyz888: Fs, - decodeQuatOctXy1010R12: YC, - decodeQuatOctXy88R8: HC, - decodeQuatXyz888: hs, - decompressPartialGzip: KC, - encodeExt3Rgb: Us, - encodeExtRgb: lI, - encodeExtSh12Rgb: Js, - encodeExtSh1Rgb: Ms, - encodeExtSplat: rQ, - encodeQuatEulerXyz888: ks, - encodeQuatOctXy1010R12: LC, - encodeQuatOctXy88R8: QB, - encodeQuatXyz888: ys, - encodeSh1Rgb: as, - encodeSh2Rgb: Ss, - encodeSh3Rgb: Ns, - epsilonSign: Gs, - flipPixels: Ds, - floatBitsToUint: qg, - floatToSint8: lg, - floatToUint8: jA, - fromHalf: NA, - getTextureSize: BA, - getTransferable: _Q, - isAndroid: AB, - isIos: Rg, - isMobile: mg, - isOculus: IB, - isQuest2: Es, - isVisionPro: NC, - mapFilterObject: Wo, - mapObject: Xo, - newArray: eQ, - normalize: FC, - omitUndefined: ws, - pixelsToPngUrl: is, - setPackedSplat: nQ, - setPackedSplatCenter: jo, - setPackedSplatOpacity: As, - setPackedSplatQuat: zo, - setPackedSplatRgb: $o, - setPackedSplatRgba: _o, - setPackedSplatScales: vo, - threeMrtArray: RC, - threeRevision: hC, - toHalf: VA, - uintBitsToFloat: xg, - unpackSplat: Og, - withinCoinciDist: ss, - withinCoorientDist: Zg, - withinDist: os -}, Symbol.toStringTag, { value: "Module" })); -class ts { - constructor() { - this.messages = {}, this.messageIdNext = 0, this.worker = new Eo(), this.worker.onmessage = (A) => this.onMessage(A); - } - makeMessageId() { - return ++this.messageIdNext; - } - makeMessagePromiseId() { - const A = this.makeMessageId(), I = new Promise((g, B) => { - this.messages[A] = { resolve: g, reject: B }; + super({ + inTypes: { + gsplat: j, + flags: "uint", + index: "int", + center: "vec3", + scales: "vec3", + quaternion: "vec4", + rgba: "vec4", + rgb: "vec3", + opacity: "float", + x: "float", + y: "float", + z: "float", + r: "float", + g: "float", + b: "float" + }, + outTypes: { gsplat: j }, + inputs: { + gsplat: A, + flags: I, + index: g, + center: B, + scales: C, + quaternion: E, + rgba: i, + rgb: o, + opacity: D, + x: s, + y: w, + z: G, + r: h, + g: c, + b: t + }, + globals: () => [YA], + statements: ({ inputs: y, outputs: k }) => { + const { gsplat: F } = k; + if (!F) + return []; + const { + gsplat: R, + flags: S, + index: N, + center: M, + scales: U, + quaternion: e, + rgba: J, + rgb: n, + opacity: H, + x: L, + y: l, + z: d, + r: K, + g: f, + b: V + } = y; + return [ + `${F}.flags = ${S ?? (R ? `${R}.flags` : "0u")};`, + `${F}.index = ${N ?? (R ? `${R}.index` : "0")};`, + `${F}.center = ${M ?? (R ? `${R}.center` : "vec3(0.0, 0.0, 0.0)")};`, + `${F}.scales = ${U ?? (R ? `${R}.scales` : "vec3(0.0, 0.0, 0.0)")};`, + `${F}.quaternion = ${e ?? (R ? `${R}.quaternion` : "vec4(0.0, 0.0, 0.0, 1.0)")};`, + `${F}.rgba = ${J ?? (R ? `${R}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)")};`, + n ? `${F}.rgba.rgb = ${n};` : null, + H ? `${F}.rgba.a = ${H};` : null, + L ? `${F}.center.x = ${L};` : null, + l ? `${F}.center.y = ${l};` : null, + d ? `${F}.center.z = ${d};` : null, + K ? `${F}.rgba.r = ${K};` : null, + f ? `${F}.rgba.g = ${f};` : null, + V ? `${F}.rgba.b = ${V};` : null + ].filter(Boolean); + } }); - return { id: A, promise: I }; - } - onMessage(A) { - const { id: I, result: g, error: B } = A.data, C = this.messages[I]; - C && (delete this.messages[I], B ? C.reject(B) : C.resolve(g)); - } - // Invoke an RPC on the worker with the given name and arguments. - // The normal usage of a worker is to run one activity at a time, - // but this function allows for concurrent calls, tagging each request - // with a unique message Id and awaiting a response to that same Id. - // The method will automatically transfer any ArrayBuffers in the - // arguments to the worker. If you'd like to transfer a copy of a - // buffer then you must clone it before passing to this function. - async call(A, I) { - const { id: g, promise: B } = this.makeMessagePromiseId(); - return this.worker.postMessage( - { name: A, args: I, id: g }, - { transfer: _Q(I) } - ), B; } -} -let rC = 4, Vg = 0; -const nC = [], dC = []; -async function Hs() { - const Q = nC.shift(); - if (Q) - return Q; - if (Vg < rC) { - const A = new ts(); - return Vg += 1, A; + dynoOut() { + return new Z(this, "gsplat"); } - return new Promise((A) => { - dC.push(A); - }); } -function Ls(Q) { - if (Vg > rC) { - Vg -= 1; - return; - } - const A = dC.shift(); - if (A) { - A(Q); - return; +const hC = GA(` + vec3 gsplatNormal(vec3 scales, vec4 quaternion) { + float minScale = min(scales.x, min(scales.y, scales.z)); + vec3 normal; + if (scales.z == minScale) { + normal = vec3(0.0, 0.0, 1.0); + } else if (scales.y == minScale) { + normal = vec3(0.0, 1.0, 0.0); + } else { + normal = vec3(1.0, 0.0, 0.0); + } + return quatVec(quaternion, normal); } - nC.push(Q); -} -async function nI(Q) { - const A = await Hs(); - try { - return await Q(A); - } finally { - Ls(A); +`); +class tC extends r { + constructor({ gsplat: A }) { + super({ a: A, outKey: "normal", outTypeFunc: () => "vec3" }), this.globals = () => [YA, hC], this.statements = ({ inputs: I, outputs: g }) => [ + `${g.normal} = gsplatNormal(${I.a}.scales, ${I.a}.quaternion);` + ]; } } -const qC = '(function(){"use strict";class a{static __wrap(A){A=A>>>0;const g=Object.create(a.prototype);return g.__wbg_ptr=A,IA.register(g,g.__wbg_ptr,g),g}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,IA.unregister(this),A}free(){const A=this.__destroy_into_raw();C.__wbg_chunkdecoder_free(A,0)}finish(){const A=this.__destroy_into_raw(),g=C.chunkdecoder_finish(A);if(g[2])throw w(g[1]);return w(g[0])}push(A){const g=C.chunkdecoder_push(this.__wbg_ptr,A);if(g[1])throw w(g[0])}}Symbol.dispose&&(a.prototype[Symbol.dispose]=a.prototype.free);class Z{static __wrap(A){A=A>>>0;const g=Object.create(Z.prototype);return g.__wbg_ptr=A,gA.register(g,g.__wbg_ptr,g),g}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,gA.unregister(this),A}free(){const A=this.__destroy_into_raw();C.__wbg_csplatarray_free(A,0)}bhatt_lod(A){C.csplatarray_bhatt_lod(this.__wbg_ptr,A)}has_lod(){return C.csplatarray_has_lod(this.__wbg_ptr)!==0}inject_rgba8(A){C.csplatarray_inject_rgba8(this.__wbg_ptr,A)}len(){return C.csplatarray_len(this.__wbg_ptr)>>>0}tiny_lod(A,g){C.csplatarray_tiny_lod(this.__wbg_ptr,A,g)}to_extsplats(){const A=C.csplatarray_to_extsplats(this.__wbg_ptr);if(A[2])throw w(A[1]);return w(A[0])}to_extsplats_lod(){const A=C.csplatarray_to_extsplats_lod(this.__wbg_ptr);if(A[2])throw w(A[1]);return w(A[0])}to_packedsplats(){const A=C.csplatarray_to_packedsplats(this.__wbg_ptr);if(A[2])throw w(A[1]);return w(A[0])}to_packedsplats_lod(){const A=C.csplatarray_to_packedsplats_lod(this.__wbg_ptr);if(A[2])throw w(A[1]);return w(A[0])}get maxShDegree(){return C.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr)>>>0}get numSplats(){return C.__wbg_get_csplatarray_numSplats(this.__wbg_ptr)>>>0}set maxShDegree(A){C.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr,A)}set numSplats(A){C.__wbg_set_csplatarray_numSplats(this.__wbg_ptr,A)}}Symbol.dispose&&(Z.prototype[Symbol.dispose]=Z.prototype.free);class T{static __wrap(A){A=A>>>0;const g=Object.create(T.prototype);return g.__wbg_ptr=A,QA.register(g,g.__wbg_ptr,g),g}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,QA.unregister(this),A}free(){const A=this.__destroy_into_raw();C.__wbg_gsplatarray_free(A,0)}get maxShDegree(){return C.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr)>>>0}get numSplats(){return C.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr)>>>0}bhatt_lod(A){C.gsplatarray_bhatt_lod(this.__wbg_ptr,A)}has_lod(){return C.gsplatarray_has_lod(this.__wbg_ptr)!==0}inject_rgba8(A){C.gsplatarray_inject_rgba8(this.__wbg_ptr,A)}len(){return C.gsplatarray_len(this.__wbg_ptr)>>>0}tiny_lod(A,g){C.gsplatarray_tiny_lod(this.__wbg_ptr,A,g)}to_extsplats(){const A=C.gsplatarray_to_extsplats(this.__wbg_ptr);if(A[2])throw w(A[1]);return w(A[0])}to_extsplats_lod(){const A=C.gsplatarray_to_extsplats_lod(this.__wbg_ptr);if(A[2])throw w(A[1]);return w(A[0])}to_packedsplats(A){const g=C.gsplatarray_to_packedsplats(this.__wbg_ptr,A);if(g[2])throw w(g[1]);return w(g[0])}to_packedsplats_lod(A){const g=C.gsplatarray_to_packedsplats_lod(this.__wbg_ptr,A);if(g[2])throw w(g[1]);return w(g[0])}set maxShDegree(A){C.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr,A)}set numSplats(A){C.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr,A)}}Symbol.dispose&&(T.prototype[Symbol.dispose]=T.prototype.free);function wA(I,A,g,Q,B,D){const E=C.bhatt_lod_extsplats(I,A,g,R(Q)?0:M(Q),B,R(D)?0:M(D));if(E[2])throw w(E[1]);return w(E[0])}function GA(I,A,g,Q,B,D){const E=C.bhatt_lod_packedsplats(I,A,R(g)?0:M(g),Q,R(B)?0:M(B),D);if(E[2])throw w(E[1]);return w(E[0])}function oA(I,A,g){var Q=R(I)?0:U(I,C.__wbindgen_malloc,C.__wbindgen_realloc),B=k,D=R(A)?0:U(A,C.__wbindgen_malloc,C.__wbindgen_realloc),E=k;const i=C.decode_to_csplatarray(Q,B,D,E,g);if(i[2])throw w(i[1]);return a.__wrap(i[0])}function yA(I,A,g,Q,B){var D=R(I)?0:U(I,C.__wbindgen_malloc,C.__wbindgen_realloc),E=k,i=R(A)?0:U(A,C.__wbindgen_malloc,C.__wbindgen_realloc),y=k;const o=C.decode_to_extsplats(D,E,i,y,R(g)?0:M(g),R(Q)?0:M(Q),R(B)?0:M(B));if(o[2])throw w(o[1]);return a.__wrap(o[0])}function RA(I,A){var g=R(I)?0:U(I,C.__wbindgen_malloc,C.__wbindgen_realloc),Q=k,B=R(A)?0:U(A,C.__wbindgen_malloc,C.__wbindgen_realloc),D=k;const E=C.decode_to_gsplatarray(g,Q,B,D);if(E[2])throw w(E[1]);return a.__wrap(E[0])}function kA(I,A,g,Q,B,D){var E=R(I)?0:U(I,C.__wbindgen_malloc,C.__wbindgen_realloc),i=k,y=R(A)?0:U(A,C.__wbindgen_malloc,C.__wbindgen_realloc),o=k;const G=C.decode_to_packedsplats(E,i,y,o,g,R(Q)?0:M(Q),R(B)?0:M(B),R(D)?0:M(D));if(G[2])throw w(G[1]);return a.__wrap(G[0])}function FA(I){C.dispose_lod_tree(I)}function NA(I,A){const g=C.get_lod_tree_level(I,A);if(g[2])throw w(g[1]);return w(g[0])}function SA(I,A){const g=C.init_lod_tree(I,A);if(g[2])throw w(g[1]);return w(g[0])}function JA(I){const A=C.new_lod_tree(I);if(A[2])throw w(A[1]);return w(A[0])}function MA(I){const A=C.new_shared_lod_tree(I);if(A[2])throw w(A[1]);return w(A[0])}function hA(I,A,g){return C.sort32_splats(I,A,g)>>>0}function sA(I,A,g){return C.sort_splats(I,A,g)>>>0}function UA(I,A,g,Q,B,D,E){const i=C.tiny_lod_extsplats(I,A,g,R(Q)?0:M(Q),B,D,R(E)?0:M(E));if(i[2])throw w(i[1]);return w(i[0])}function HA(I,A,g,Q,B,D,E){const i=C.tiny_lod_packedsplats(I,A,R(g)?0:M(g),Q,B,R(D)?0:M(D),E);if(i[2])throw w(i[1]);return w(i[0])}function LA(I,A,g,Q,B,D,E,i,y,o,G){const S=O(Q,C.__wbindgen_malloc),J=k,h=O(B,C.__wbindgen_malloc),L=k,c=r(D,C.__wbindgen_malloc),H=k,s=r(E,C.__wbindgen_malloc),F=k,N=r(i,C.__wbindgen_malloc),d=k,x=r(y,C.__wbindgen_malloc),m=k,e=r(o,C.__wbindgen_malloc),K=k,Y=r(G,C.__wbindgen_malloc),f=k,p=C.traverse_lod_trees(I,A,R(g)?4294967297:Math.fround(g),S,J,h,L,c,H,s,F,N,d,x,m,e,K,Y,f);if(p[2])throw w(p[1]);return w(p[0])}function cA(I,A,g,Q,B){const D=O(I,C.__wbindgen_malloc),E=k,i=O(A,C.__wbindgen_malloc),y=k,o=O(g,C.__wbindgen_malloc),G=k,S=O(Q,C.__wbindgen_malloc),J=k,h=C.update_lod_trees(D,E,i,y,o,G,S,J,B);if(h[2])throw w(h[1]);return w(h[0])}function YA(){return{__proto__:null,"./spark_worker_rs_bg.js":{__proto__:null,__wbg_Error_2e59b1b37a9a34c3:function(A,g){return Error(z(A,g))},__wbg___wbindgen_boolean_get_a86c216575a75c30:function(A){const g=A,Q=typeof g=="boolean"?g:void 0;return R(Q)?16777215:Q?1:0},__wbg___wbindgen_debug_string_dd5d2d07ce9e6c57:function(A,g){const Q=_(g),B=U(Q,C.__wbindgen_malloc,C.__wbindgen_realloc),D=k;q().setInt32(A+4,D,!0),q().setInt32(A+0,B,!0)},__wbg___wbindgen_in_4bd7a57e54337366:function(A,g){return A in g},__wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef:function(A){return!A},__wbg___wbindgen_is_object_40c5a80572e8f9d3:function(A){const g=A;return typeof g=="object"&&g!==null},__wbg___wbindgen_is_undefined_c0cca72b82b86f4d:function(A){return A===void 0},__wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944:function(A,g){return A==g},__wbg___wbindgen_number_get_7579aab02a8a620c:function(A,g){const Q=g,B=typeof Q=="number"?Q:void 0;q().setFloat64(A+8,R(B)?0:B,!0),q().setInt32(A+0,!R(B),!0)},__wbg___wbindgen_string_get_914df97fcfa788f2:function(A,g){const Q=g,B=typeof Q=="string"?Q:void 0;var D=R(B)?0:U(B,C.__wbindgen_malloc,C.__wbindgen_realloc),E=k;q().setInt32(A+4,E,!0),q().setInt32(A+0,D,!0)},__wbg___wbindgen_throw_81fc77679af83bc6:function(A,g){throw new Error(z(A,g))},__wbg_csplatarray_new:function(A){return Z.__wrap(A)},__wbg_error_a6fa202b58aa1cd3:function(A,g){let Q,B;try{Q=A,B=g,console.error(z(A,g))}finally{C.__wbindgen_free(Q,B,1)}},__wbg_get_4848e350b40afc16:function(A,g){return A[g>>>0]},__wbg_get_f96702c6245e4ef9:function(){return EA(function(A,g){return Reflect.get(A,g)},arguments)},__wbg_get_unchecked_7d7babe32e9e6a54:function(A,g){return A[g>>>0]},__wbg_get_with_ref_key_6412cf3094599694:function(A,g){return A[g]},__wbg_gsplatarray_new:function(A){return T.__wrap(A)},__wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a:function(A){let g;try{g=A instanceof ArrayBuffer}catch{g=!1}return g},__wbg_instanceof_Uint8Array_4b8da683deb25d72:function(A){let g;try{g=A instanceof Uint8Array}catch{g=!1}return g},__wbg_length_0c32cb8543c8e4c8:function(A){return A.length},__wbg_length_1e701798fdcaa3b4:function(A){return A.length},__wbg_length_6e821edde497a532:function(A){return A.length},__wbg_length_a4ca9e78359b5f1f:function(A){return A.length},__wbg_new_227d7c05414eb861:function(){return new Error},__wbg_new_4f9fafbb3909af72:function(){return new Object},__wbg_new_a560378ea1240b14:function(A){return new Uint8Array(A)},__wbg_new_f3c9df4f38f3f798:function(){return new Array},__wbg_new_with_length_41a22191b9bdfd66:function(A){return new Uint32Array(A>>>0)},__wbg_prototypesetcall_3e05eb9545565046:function(A,g,Q){Uint8Array.prototype.set.call(aA(A,g),Q)},__wbg_prototypesetcall_64c287a27cc24d27:function(A,g,Q){Uint16Array.prototype.set.call(KA(A,g),Q)},__wbg_prototypesetcall_e42275e601e14eeb:function(A,g,Q){Uint32Array.prototype.set.call(BA(A,g),Q)},__wbg_push_6bdbc990be5ac37b:function(A,g){return A.push(g)},__wbg_set_448126769bf7c181:function(A,g,Q){A.set(BA(g,Q))},__wbg_set_6be42768c690e380:function(A,g,Q){A[g]=Q},__wbg_set_81b4174352e6a095:function(A,g,Q){A.set(g,Q>>>0)},__wbg_set_8ee2d34facb8466e:function(){return EA(function(A,g,Q){return Reflect.set(A,g,Q)},arguments)},__wbg_set_index_338a66e40fc45dee:function(A,g,Q){A[g>>>0]=Q>>>0},__wbg_stack_3b0d974bbf31e44f:function(A,g){const Q=g.stack,B=U(Q,C.__wbindgen_malloc,C.__wbindgen_realloc),D=k;q().setInt32(A+4,D,!0),q().setInt32(A+0,B,!0)},__wbg_subarray_0f98d3fb634508ad:function(A,g,Q){return A.subarray(g>>>0,Q>>>0)},__wbg_subarray_517cd0f1811ab872:function(A,g,Q){return A.subarray(g>>>0,Q>>>0)},__wbg_subarray_d51e89458b3fdbf6:function(A,g,Q){return A.subarray(g>>>0,Q>>>0)},__wbindgen_cast_0000000000000001:function(A){return A},__wbindgen_cast_0000000000000002:function(A,g){return z(A,g)},__wbindgen_init_externref_table:function(){const A=C.__wbindgen_externrefs,g=A.grow(4);A.set(0,void 0),A.set(g+0,void 0),A.set(g+1,null),A.set(g+2,!0),A.set(g+3,!1)}}}}const IA=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(I=>C.__wbg_chunkdecoder_free(I>>>0,1)),gA=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(I=>C.__wbg_csplatarray_free(I>>>0,1)),QA=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(I=>C.__wbg_gsplatarray_free(I>>>0,1));function M(I){const A=C.__externref_table_alloc();return C.__wbindgen_externrefs.set(A,I),A}function _(I){const A=typeof I;if(A=="number"||A=="boolean"||I==null)return`${I}`;if(A=="string")return`"${I}"`;if(A=="symbol"){const B=I.description;return B==null?"Symbol":`Symbol(${B})`}if(A=="function"){const B=I.name;return typeof B=="string"&&B.length>0?`Function(${B})`:"Function"}if(Array.isArray(I)){const B=I.length;let D="[";B>0&&(D+=_(I[0]));for(let E=1;E1)Q=g[1];else return toString.call(I);if(Q=="Object")try{return"Object("+JSON.stringify(I)+")"}catch{return"Object"}return I instanceof Error?`${I.name}: ${I.message}\n${I.stack}`:Q}function KA(I,A){return I=I>>>0,dA().subarray(I/2,I/2+A)}function BA(I,A){return I=I>>>0,CA().subarray(I/4,I/4+A)}function aA(I,A){return I=I>>>0,l().subarray(I/1,I/1+A)}let t=null;function q(){return(t===null||t.buffer.detached===!0||t.buffer.detached===void 0&&t.buffer!==C.memory.buffer)&&(t=new DataView(C.memory.buffer)),t}let n=null;function qA(){return(n===null||n.byteLength===0)&&(n=new Float32Array(C.memory.buffer)),n}function z(I,A){return I=I>>>0,tA(I,A)}let X=null;function dA(){return(X===null||X.byteLength===0)&&(X=new Uint16Array(C.memory.buffer)),X}let V=null;function CA(){return(V===null||V.byteLength===0)&&(V=new Uint32Array(C.memory.buffer)),V}let W=null;function l(){return(W===null||W.byteLength===0)&&(W=new Uint8Array(C.memory.buffer)),W}function EA(I,A){try{return I.apply(this,A)}catch(g){const Q=M(g);C.__wbindgen_exn_store(Q)}}function R(I){return I==null}function O(I,A){const g=A(I.length*4,4)>>>0;return CA().set(I,g/4),k=I.length,g}function r(I,A){const g=A(I.length*4,4)>>>0;return qA().set(I,g/4),k=I.length,g}function U(I,A,g){if(g===void 0){const i=j.encode(I),y=A(i.length,1)>>>0;return l().subarray(y,y+i.length).set(i),k=i.length,y}let Q=I.length,B=A(Q,1)>>>0;const D=l();let E=0;for(;E127)break;D[B+E]=i}if(E!==Q){E!==0&&(I=I.slice(E)),B=g(B,Q,Q=E+I.length*3,1)>>>0;const i=l().subarray(B+E,B+Q),y=j.encodeInto(I,i);E+=y.written,B=g(B,Q,E,1)>>>0}return k=E,B}function w(I){const A=C.__wbindgen_externrefs.get(I);return C.__externref_table_dealloc(I),A}let v=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});v.decode();const xA=2146435072;let $=0;function tA(I,A){return $+=A,$>=xA&&(v=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),v.decode(),$=A),v.decode(l().subarray(I,I+A))}const j=new TextEncoder;"encodeInto"in j||(j.encodeInto=function(I,A){const g=j.encode(I);return A.set(g),{read:I.length,written:g.length}});let k=0,C;function PA(I,A){return C=I.exports,t=null,n=null,X=null,V=null,W=null,C.__wbindgen_start(),C}async function bA(I,A){if(typeof Response=="function"&&I instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(I,A)}catch(B){if(I.ok&&g(I.type)&&I.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n",B);else throw B}const Q=await I.arrayBuffer();return await WebAssembly.instantiate(Q,A)}else{const Q=await WebAssembly.instantiate(I,A);return Q instanceof WebAssembly.Instance?{instance:Q,module:I}:Q}function g(Q){switch(Q){case"basic":case"cors":case"default":return!0}return!1}}async function fA(I){if(C!==void 0)return C;I!==void 0&&(Object.getPrototypeOf(I)===Object.prototype?{module_or_path:I}=I:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),I===void 0&&(I=new URL("data:application/wasm;base64,AGFzbQEAAAAB6wZpYAN/f38Bf2ACf38AYAJ/fwF/YAF/AGABfwF/YAN/f38AYAR/f39/AGAFf39/f38AYAADf39/YAZ/f39/f38AYAd/f39/f39/AGAEf39/fwF/YAFvAX9gCH9/f39/f39/AGABfwN/f39gBX9/f39/AX9gAX0BfWAAAGACf28AYAF/AX5gA399fwBgBn9/f39/fwF/YAZ/f39/f30AYAABf2ACf30AYAV/f39+fwBgA29/fwFvYAN/f28AYAF/AW9gAAFvYAJvbwF/YAl/f39/f39/f38AYAF+AX9gAn9vA39/f2ACfX0BfWADb39/AGACb28Bb2ACb38Bb2ACf38Bb2AEf39/fQF/YAx/f39/f39/f39/f38AYAl/f39/f39/f38Bf2AFf39/fX8AYAd/f39/f39/AX9gBX9/f399AGAEf31/fwF/YBN/f39/f39/f39/f39/f39/f39/AX9gE39/f39/f39/f39/f39/f39/f38AYAN+fn8BfmAHf39/f399fQBgA39+fgBgBX9/fn9/AGAFf398f38AYAV/f31/fwBgBH9vf28Df39/YAN/b28Bf2AAAn9/YANvb28Bf2ADb29vAGADb29/AGABbwFvYAF8AW9gCn9/f39/f39/f38Bf2ALf39/f39/f39/f38Bf2AKf39/f39/f39/fwBgBn9/fX9/fwBgAn9/AX1gBH9/f34AYAN/f38BfmACf34AYAN/fX8Bf2AFf39/fn4AYAZ/fn9/f38AYAZ/f39/fX0AYAF/AX1gBH5+f38BfmAFf39/f38BfWAJf39/f39/fn5+AGAEf39/fwF9YAJ+fwBgA39/ewBgAn9+AX9gAn1/AX1gA319fQF9YAR/fn5/AGAGf39/fn9/AGAGf39/fH9/AGAGf39/fX9/AGATf318f39/f39/f39/f39/f39/fwN/f39gCX9/f39/f39/bwN/f39gCH9/f39vf39/A39/f2AHf29/fX9/bwN/f39gB39vb399f38Df39/YAd/f39/f39/A39/f2AGf29vf31/A39/f2AGf29/fX9vA39/f2AFf39/f28Df39/YAR/b29/A39/f2AEf39/fwN/f39gAn9/A39/f2ACf28Cf39gBH9+f38AYAR/fX9/AGAEf3x/fwBgAXwBfwKdFS0XLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfZDUxZTg5NDU4YjNmZGJmNgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF8xZTcwMTc5OGZkY2FhM2I0AAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzQ0ODEyNjc2OWJmN2MxODEAIxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsX2U0MjI3NWU2MDFlMTRlZWIAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyZfX3diZ19uZXdfd2l0aF9sZW5ndGhfNDFhMjIxOTFiOWJkZmQ2NgAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX25ld180ZjlmYWZiYjM5MDlhZjcyAB0XLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzhlZTJkMzRmYWNiODQ2NmUAORcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfZjNjOWRmNGYzOGYzZjc5OAAdFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzG19fd2JnX3B1c2hfNmJkYmM5OTBiZTVhYzM3YgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzGl9fd2JnX2dldF9mOTY3MDJjNjI0NWU0ZWY5ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMqX193YmdfX193YmluZGdlbl9pc19mYWxzeV9jNmRkZmFlMWJiNTZkNWVmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzZiZTQyNzY4YzY5MGUzODAAOhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19nZXRfNDg0OGUzNTBiNDBhZmMxNgAlFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2dzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzFV9fd2JnX2NzcGxhdGFycmF5X25ldwAcFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHF9fd2JnX0Vycm9yXzJlNTliMWIzN2E5YTM0YzMAJhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcytfX3diZ19fX3diaW5kZ2VuX2lzX29iamVjdF80MGM1YTgwNTcyZThmOWQzAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMnX193YmdfZ2V0X3dpdGhfcmVmX2tleV82NDEyY2YzMDk0NTk5Njk0ACQXLi9zcGFya193b3JrZXJfcnNfYmcuanMuX193YmdfX193YmluZGdlbl9pc191bmRlZmluZWRfYzBjY2E3MmI4MmI4NmY0ZAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJF9fd2JnX19fd2JpbmRnZW5faW5fNGJkN2E1N2U1NDMzNzM2NgAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fbnVtYmVyX2dldF83NTc5YWFiMDJhOGE2MjBjABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMtX193YmdfX193YmluZGdlbl9ib29sZWFuX2dldF9hODZjMjE2NTc1YTc1YzMwAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193Ymdfc2V0XzgxYjQxNzQzNTJlNmEwOTUAOxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx1fX3diZ19sZW5ndGhfMGMzMmNiODU0M2M4ZTRjOAAMFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzH19fd2JnX3N1YmFycmF5XzBmOThkM2ZiNjM0NTA4YWQAGhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsXzNlMDVlYjk1NDU1NjUwNDYAGxcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diZ19zZXRfaW5kZXhfMzM4YTY2ZTQwZmM0NWRlZQAjFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF9hNGNhOWU3ODM1OWI1ZjFmAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMfX193Ymdfc3ViYXJyYXlfNTE3Y2QwZjE4MTFhYjg3MgAaFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfNjRjMjg3YTI3Y2MyNGQyNwAbFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF82ZTgyMWVkZGU0OTdhNTMyAAwXLi9zcGFya193b3JrZXJfcnNfYmcuanMkX193YmdfZ2V0X3VuY2hlY2tlZF83ZDdiYWJlMzJlOWU2YTU0ACUXLi9zcGFya193b3JrZXJfcnNfYmcuanMaX193YmdfbmV3XzIyN2Q3YzA1NDE0ZWI4NjEAHRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxxfX3diZ19zdGFja18zYjBkOTc0YmJmMzFlNDRmABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMcX193YmdfZXJyb3JfYTZmYTIwMmI1OGFhMWNkMwABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzMF9fd2JnX19fd2JpbmRnZW5fanN2YWxfbG9vc2VfZXFfM2E3MmFlNzY0ZDQ2ZDk0NAAeFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fc3RyaW5nX2dldF85MTRkZjk3ZmNmYTc4OGYyABIXLi9zcGFya193b3JrZXJfcnNfYmcuanMsX193YmdfaW5zdGFuY2VvZl9VaW50OEFycmF5XzRiOGRhNjgzZGViMjVkNzIADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcy1fX3diZ19pbnN0YW5jZW9mX0FycmF5QnVmZmVyX2ZmN2MxMzM3YTVlM2IzM2EADBcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcxpfX3diZ19uZXdfYTU2MDM3OGVhMTI0MGIxNAA8Fy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfODFmYzc3Njc5YWY4M2JjNgABFy4vc3Bhcmtfd29ya2VyX3JzX2JnLmpzLl9fd2JnX19fd2JpbmRnZW5fZGVidWdfc3RyaW5nX2RkNWQyZDA3Y2U5ZTZjNTcAEhcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcx9fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlABEXLi9zcGFya193b3JrZXJfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDEAPRcuL3NwYXJrX3dvcmtlcl9yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMgAmA5cKlQoYGBQUAQoKAQkBCgoFCgkKBAQnBAQNJw0BAQYEBAoEBAUNBgQEBAQJCREFBgEJAQQEBAQJCQYBAgcoCQIJASgGBQ0BKQQGAQA+BQE/DQcGAgIGAgYGAQEGBgUEBAQEBgECBgUGBgYCBwkCBgEFBgEBAwMEBA8DBAEHAQcGAAYDBA0BAgEEAQEVAQYBBAIEBQYDBUABDwcDAgEBBwICBSoCCQEFBwQEBgQCBwUfAioGAQcFBgEHBhYGAQcrCQENAAEBAAIFAQIFAQUKLCsGBQcDBgYBDQEFAwEDBAUCBQMCAwMBAQFBAgYBLAcJARADEEIHBwUGAQMHBwECAgQWCQkBAQJDBw0DCUQAAQEBAQELBC0DAwMEAQIBAgECAwMCRQUGBEYBAQEBBwACCRkCBQIBAQcABQQJAQYBRwYGSAMDBQUDAQUDBgUFAwMtBgUKBQYBAwkABQUHAQIDAwMDLi4FCQkvLwkHBwIBAQAGBQEDAwMDAQMAAQIBAQYCAQZJAgsFAQAFAQYJCQQEBAQCBAEVAQICFQABAQUGAwUVBw0ABQUHAgEAAAIFBQAACQUWHwICCgICAQcHAgMHCgUFAwMBARkCBwUwAgUFBQMwBAABAQQBMQMDCgkFAwMEChBKAQUFBQUWBgEDBksHBQEDAwIBBAIBAQUCBgcBAgICAQEDAgQBAkwDTQEHBwcHAQIKBwlOAwNPAgUBAgcHBQsGAgQEBAEDAQIJBgYHAQMPARcHEAIEUAoCBAMGBAQBDwUfAgkDBAsZFAoCAgIQAwcxBAcCAzIAAQcWAQMCAgYBBAECDwEGCwEFAhcGAQICAgICAgYCEAEHAgcDBwUEBAICBAEBAQEBAQIBAgQEAQECAAICAgIBAgMBBwMCAxAEAQMFAgEBAwMAAgMCAQkBAQEFAgIHAwEDAwcCAAcDAwICAgECBwMpBQICAgICAQIFBQEBAQICAgICAlEBAgICAgICAgEDAgkCAQEHAwEDAwEBAQEBCQkCAwIBAQIBAQMBAQEFAQUCAgFSAQICUwMDAQEBBgADAwEDAgELCwUCAgEBBAMBCwMDAgEBAgMDAwEBAQICAAMyAAAHAgUDAwUCAxkFAxQUBwcJAwYFBQUFAwMDAwMDAwYYGAMFAgMABgMEBAQEAgUBBAQECQQDBwQFAwMDAwMCAgICBVQFBAEDEwEDAQEFBARVCVZXAQECBQcCBhAAAAAAAAAAAAAAAAAEAgIAAAAAIAQgAAQgBAQEAgACAgIAWAUTBQEAAAABAgABAgIGBQIBBAICAlkPWgcCBgIHAQFbXF0DEQMDXl8RC2ACNmFiNgEJAgIhIWMhAAICAgICAg4ODg4ODg4ODgQEBAQCAmQBAQEBAgICAgICAgICFQICAgICAgICAQICAQICDwczNTQCAQECAgIGCwIAAQIANzcDAgIiIgACBQMCAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAwECBQEBAQEBAQEBBAIAAgICAgIJAgICAgEBAQECAwEBAQICAgIEaAMDAgcCCQEXBRcSEgIBAgEBAQEBAQEBAgIBAgEBAQEBAQEDBAEDBQEFBQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAwMBAQEBAQEBAQEBEQERAgICAQIBAgECAgICAQEBAQEBAQEEAwEBAQEBAQEBAQMDCgEEAgEiBAQEBAQEEQQXBQQLAnAB4QThBG8AgAgFAwEAEwYPAn8BQYCAwAALfwFBgAgLB7AMPgZtZW1vcnkCABdfX3diZ19jaHVua2RlY29kZXJfZnJlZQCSBBZfX3diZ19jc3BsYXRhcnJheV9mcmVlALYFIV9fd2JnX2dldF9jc3BsYXRhcnJheV9tYXhTaERlZ3JlZQClCB9fX3diZ19nZXRfY3NwbGF0YXJyYXlfbnVtU3BsYXRzAKYIIV9fd2JnX2dldF9nc3BsYXRhcnJheV9tYXhTaERlZ3JlZQCnCB9fX3diZ19nZXRfZ3NwbGF0YXJyYXlfbnVtU3BsYXRzAKgIFl9fd2JnX2dzcGxhdGFycmF5X2ZyZWUAtwUhX193Ymdfc2V0X2NzcGxhdGFycmF5X21heFNoRGVncmVlAKwIH19fd2JnX3NldF9jc3BsYXRhcnJheV9udW1TcGxhdHMArQghX193Ymdfc2V0X2dzcGxhdGFycmF5X21heFNoRGVncmVlAK4IH19fd2JnX3NldF9nc3BsYXRhcnJheV9udW1TcGxhdHMArwgTYmhhdHRfbG9kX2V4dHNwbGF0cwCDCBZiaGF0dF9sb2RfcGFja2Vkc3BsYXRzAIQIE2NodW5rZGVjb2Rlcl9maW5pc2gAoggRY2h1bmtkZWNvZGVyX3B1c2gAqwgVY3NwbGF0YXJyYXlfYmhhdHRfbG9kAP4GE2NzcGxhdGFycmF5X2hhc19sb2QAxgcYY3NwbGF0YXJyYXlfaW5qZWN0X3JnYmE4AMIJD2NzcGxhdGFycmF5X2xlbgDVBxRjc3BsYXRhcnJheV90aW55X2xvZADrBhhjc3BsYXRhcnJheV90b19leHRzcGxhdHMAnAgcY3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzX2xvZACeCBtjc3BsYXRhcnJheV90b19wYWNrZWRzcGxhdHMAnQgfY3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzX2xvZACfCBVkZWNvZGVfdG9fY3NwbGF0YXJyYXkAhwgTZGVjb2RlX3RvX2V4dHNwbGF0cwD+BxVkZWNvZGVfdG9fZ3NwbGF0YXJyYXkAiwgWZGVjb2RlX3RvX3BhY2tlZHNwbGF0cwD0BxBkaXNwb3NlX2xvZF90cmVlAIwCGGV4dHNwbGF0c190b19nc3BsYXRhcnJheQCKCBJnZXRfbG9kX3RyZWVfbGV2ZWwAkwgVZ3NwbGF0YXJyYXlfYmhhdHRfbG9kAP8GGGdzcGxhdGFycmF5X2luamVjdF9yZ2JhOADDCQ9nc3BsYXRhcnJheV9sZW4A1QcUZ3NwbGF0YXJyYXlfdGlueV9sb2QA7AYYZ3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzAKAIHGdzcGxhdGFycmF5X3RvX2V4dHNwbGF0c19sb2QAoQgbZ3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzAJEIH2dzcGxhdGFycmF5X3RvX3BhY2tlZHNwbGF0c19sb2QAkggNaW5pdF9sb2RfdHJlZQCUCAxuZXdfbG9kX3RyZWUApAgTbmV3X3NoYXJlZF9sb2RfdHJlZQCjCBtwYWNrZWRzcGxhdHNfdG9fY3NwbGF0YXJyYXkAjAgbcGFja2Vkc3BsYXRzX3RvX2dzcGxhdGFycmF5AIkIDHNpbWRfZW5hYmxlZADACg1zb3J0MzJfc3BsYXRzANoIC3NvcnRfc3BsYXRzANsIEnRpbnlfbG9kX2V4dHNwbGF0cwD9BxV0aW55X2xvZF9wYWNrZWRzcGxhdHMA/AcSdHJhdmVyc2VfbG9kX3RyZWVzANwHEHVwZGF0ZV9sb2RfdHJlZXMA8gcKd2FzbV9zdGFydACFCBNnc3BsYXRhcnJheV9oYXNfbG9kAMYHEV9fd2JpbmRnZW5fbWFsbG9jANoHEl9fd2JpbmRnZW5fcmVhbGxvYwCGCA9fX3diaW5kZ2VuX2ZyZWUAlgcUX193YmluZGdlbl9leG5fc3RvcmUA2gkXX19leHRlcm5yZWZfdGFibGVfYWxsb2MA2gQVX193YmluZGdlbl9leHRlcm5yZWZzAQEZX19leHRlcm5yZWZfdGFibGVfZGVhbGxvYwCbBxBfX3diaW5kZ2VuX3N0YXJ0AL4KCbgJAQBBAQvgBIsFxAnpCPMD7QiNASwrvAnECboJ0gjoB5sF9QSnAqIE8gHVCMQBggeeBOwHrASyCvwC5wP2AagG0AeJBssF5gaWCMMI3gLRCZsIswa0AsQIhQXGCYkG3APTA8AG0AmSCpMKugW4BZsKkwGPBtkG3Qj0BMcH2AjDApoKuAiZCsYJ1gLEBLIGpwOABu0GyAjcBdUFyQjJCMkIrgevB7YHygiwB9MIuAevB8sIsQfMCK8HlAfICLkIkQfZCPEG1AjuBukHlwrhBpwKugixCLsI/ATSCaMG7wfzBNMFqAXSCc8J5APKAo0GwgGDA9sExQTVBH20CecI/QjyCIMJiAnwCIwJhgn0CP8I9wiLCYUJhAmCCfoIjQnxCIcJgAn1CIEJ/gjqCIUE/QnRA4oHkQHKBogIgATmCdYDiQeQAYEE+gnXA4cHhQGGBOwJ0gOIB5IB5gj2CIkJgwfGCc8JswqUCsUJwQqDB9cHkgWBCpIJnAnaBs4FrgKzB6cKsge6BdIGsQXwBfEF/AWGCsQJoArjBN0EhQPCCKoKwgjGCc8Jnwq5CcQJ/QXtB4kK7QexBK4G6wSNB4UKjQeDCv4FkQmMCo8J8Qe1CuAHjQrFCeAHwQqQCYcK6gaECoIKoQrJBagKigqOCYsK3AiICqUHlAnMCdAGswikB78K9wSZCcsJ0QbBCJgHmgnICdcGsgipB5kHlgnHCZkGtQinB4wGlwnJCZgGvwiVCcoJvga0CJcHmwnNCZsG2AfLBoYHmAnOCZoG9gfNBe4HxQa4CZEK6wHaBYAK5wX7CPgI8wjvCIoJ+QjuCPwItQb/Cb0HuAOHA+oJxAe1BfkG8wnMB4kB8AlI8QlSnAPoCcEH0we8BvUJuge2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gICAeEYNBCADKQJMIR0gAygCVCEMIANBgICAgHg2AlQgDEGAgICAeEYNBCADKQJYISAgAygCPCERIANBgICAgHg2AjwgEUGAgICAeEYNBCADKQJAISIgAygCMCEPIANBgICAgHg2AjAgD0GAgICAeEYNBCADKQI0ISMgAigCzAEiBSACKALAASIGRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIUIAZBACAGIBRNG2tBDGxqIgYgGTcCBCAGIAQ2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIBo3AgQgBCAHNgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAcNwIEIAQgCTYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgHjcCBCAEIAs2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEgAigCyAEgBWoiBCAGQQAgBCAGTxtrQQxsaiIEIB03AgQgBCAINgIAIAIgBUEBaiIFNgLMASACKALAASIGIAVGBEAgAkHAAWpBoMLBABCkBiACKALAASEGIAIoAswBIQULIAIoAsQBIAIoAsgBIAVqIgQgBkEAIAQgBk8ba0EMbGoiBCAgNwIEIAQgDDYCACACIAVBAWoiBTYCzAEgAigCwAEiBiAFRgRAIAJBwAFqQaDCwQAQpAYgAigCwAEhBiACKALMASEFCyACKALEASACKALIASAFaiIEIAZBACAEIAZPG2tBDGxqIgQgIjcCBCAEIBE2AgAgAiAFQQFqIgU2AswBIAIoAsABIgYgBUYEQCACQcABakGgwsEAEKQGIAIoAsABIQYgAigCzAEhBQsgAigCxAEg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SxsNDyAEEKICCyADQQA2AlggA0KAgICAwAA3AlAgA0EANgKMASADQoCAgIDAADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCINIAJBBXQiCWoiBSgCACIGIAAoAggiBEkEQCAAKAIEIgsgBkEkbGoiBv1dAgggBioCECIB/SACIAH9IAMgA/0JAkwiLv3nAf1oIi39HwL8BCEaIC39HwH8BCEbIC39HwD8BCEcIAcgAkEBaiIITQRAIAIhCgwDCyAHQQFrIQogFUEBcQRAIAchCAwDCyAJIA1qQSBqIQYDQCAGKAIAIgkgBE8NAiALIAlBJGxqIgn9XQIIIAkqAhAiAf0gAiAB/SADIC795wH9aCIt/R8A/AQgHFIgLf0fAfwEIBtSckUgLf0fAvwEIBpRcUUEQCAIQQFrIQoMBAsgBkEgaiEGIAcgCEEBaiIIRw0ACyAHIQgMAgsgBiAEQdTAxwAQjAcACyAJIARB1MDHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayILrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiI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ADcChAEgA0EANgJcIANBADYCgAEgB0UEQEL///////////8AIR1CgICAgICAgICAfyEfQoCAgICAgICAgH8hHkKAgICAgICAgIB/ISBC////////////ACEhQv///////////wAhIgwEC0KAgICAgICAgIB/ISBC////////////ACEiQQAhAkL///////////8AISFC////////////ACEdQoCAgICAgICAgH8hHkKAgICAgICAgIB/IR8DQAJAAkAgAygCOCIWIAJBBXQiCWoiBigCACIFIAAoAggiBEkEQCAAKAIEIgogBUEYbGr9AAIAICz9DQABAgMEBQYHCAkKCwgJCgsgA/0JAkwiLf3nAf1oIiz9HwL8BCEaICz9HwH8BCEbICz9HwD8BCEcIAcgAkEBaiIITQRAIAIhCwwDCyAHQQFrIQsgDkEBcQRAIAchCAwDCyAJIBZqQSBqIQUDQCAFKAIAIgkgBE8NAiAKIAlBGGxq/QACACAs/Q0AAQIDBAUGBwgJCgsICQoLIC395wH9aCIs/R8A/AQgHFIgLP0fAfwEIBtSckUgLP0fAvwEIBpRcUUEQCAIQQFrIQsMBAsgBUEgaiEFIAcgCEEBaiIIRw0ACyAHIQgMAgsgBSAEQdy7xwAQjAcACyAJIARB3LvHABCMBwALIB8gGiAaIB9TGyEfIB4gGyAbIB5TGyEeICAgHCAcICBTGyEgIB0gGiAaIB1VGyEdICEgGyAbICFVGyEhICIgHCAcICJVGyEiIAMgAygCgAFBAWo2AoABIAMpA/gBIhogCCACayIMrYUiG0I4hiAbQoD+A4NCKIaEIBtCgID8B4NCGIYgG0KAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhELSgaqbq/qC16d/fiIaQjiGIBpCgP4Dg0IohoQgGkKAgPwHg0IYhiAaQoCAgPgPg0IIhoSEIBpCCIhCgICA+A+DIBpCGIhCgID8B4OEIBpCKIhCgP4DgyAaQjiIhISEIBtC2KLR78Kp5b8tfoUiGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhCADKQPwASIbQn+FfiIc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IANrIhUNAQwCCwtBqJDIACkDACJ6Qv8Bg0IEUQ0AIHpCIIinIhIgeqciA0H/AXFBBEYNARogekIQiKchFSB6QgiIpyEIQQAhCwwCCyAELwHIDCAELQDKDEEQdHILIRJBASEJIAEgEkEBdkEHcToAKyABIBJBAXEiA0U6ACggASASQQR2QQFxOgApAkACQAJAAkACQAJAAkAgAw0AIARBADoA2hggBEEAOwHYGCABKALoAyELQQMhFSAEQdgYaiEIAkADQAJAIHlQBEBCACF5DAELIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQAgAyAIaiEIIBUgA2siFQ0BDAILC0EAIQtBqJDIACkDACJ6pyIDQf8BcUEERg0AIHpCIIinIRIgekIQiKchFSB6QgiIpyEIDAgLIAECfwJAAkACQAJ/AkACQCAELwHYGCAELQDaGEEQdHIiB0Gdg6gBRgRAIARBADsByAwgASgC6AMhC0ECIRUgBEHIDGohCANAIHlQBEBCACF5DAMLIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4gAyAOSRsiA0EBRgRAIAggEC0AADoAAAwBCyADRQ0AIAggECAD/AoAAAsgASB5IAOtInt9Ink3A+ADIAsgeiB7fDcDCCACIAdGDQIgAyAIaiEIIBUgA2siFQ0ACwwCCyAHQQh2IQJBESELDA4LQaiQyAApAwAiekL/AYNCBFENACB6QhCIpyEVIHqnIgNB/wFxQQRHDQIgFQwBCyAELwHIDAshESAEQQA7AcgMIAEoAugDIQtBAiEVIARByAxqIQgDQCB5UA0CIAspAwgieiALKAIEIgetInsgeiB7VBunIgIgCygCAGohEAJAIAdC/////w8geiB6Qv////8PWhunayIDQQAgAyAHTRsiAyB5IBWtInsgeSB7VBunIg4g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ADcD0EggA0EANgLYSCADQQA6AMJIIANB4MgAaiIBIANBsMUAahCcBCADLQDgSEEoRwRAIAUgARD8AyADKAIYIgFBBkcNBAsgA0EQNgLYSCADQdDRAGoiASADQbDFAGpBsAP8CgAAIANBGGogARCcBCADLQAYIgZBKEcEQCADQarVAGogAy0AGzoAACADIAMvABk7AahVIAMoAhwhBSADKQIgIRQgARCdAQwZCwJAAkAgAygCHCIBLQC+AiICQQN0KQOwkkkgATUCtAIgATEAvwJ+IhR+IhVC8P////8AVg0AIBVCB3xCA4inQQFqrUGAASABKAK4AiIBIAFBgAFPG61+IhVCIIinDQAgFaciAUH/AXEiBEEARyABQYB+cUGAAmoiBiABSXENACAGIAEgBBsiBkGBgAhJDQELQYCACCEGC0EBIQVB/////wchBAJAIAJBA3QpA+iSSSAUfiIUQvD/////AFYNACAUQgd8QgOIp0EBaiIBQf////8DSw0AIAFBAnQiAkFAcUFAayEIIAFBD3EiAUEAIAIgCEsbDQBBgIAIIAggAiABGyIBIAFBgIAITRshBAsgBgRAIAYQcSIFRQ0WCyADQRhqIANB0NEAakGoA/wKAAAgA0H1A2pCADcAACADQbQEakEANgIAIANBAToA3QQgA0EANgLUBCADQQA2AsgDIANCADcDwAMgA0IANwPwAyADQYCAgIB4NgKgBCADQgE3A5gEIANCADcDkAQgAyAFNgKMBCADIAY2AogEIANCfzcDgAQgA/0MAAAAAAAAAAAAAAAAAAAAAP0LAqQEIAMgBDYCuAQgAyADKAL4VDYC2AQgA0ECNgLcAyADQQA6ANwEIANBADYC0AQgA0KAgICAEDcDyAQgA0EANgLABAJAIAMoAiBBAkcEQEEnIQYgAy0A3gJBA3QpA6CTSSADNQLUAiIUIAMxAN8Cfn5C8f////8AVA0BDBkLQayYxwAQ3QkACyADKALYAiEFIANBEGogA0EYaiIBEIoFIAMtABBBA3QpA9iTSSADMQARIBR+fiIUQvD/////AFYNFyAFrSAUQgd8QgOIfiIVQiCIpyAVp0EASHINFyADQZDVAGogARCMASADLQCQVSIGQShHBEAgA0Gq1QBqIAMtAJNVOgAAIAMgAy8AkVU7AahVIAMoApRVIQUgAykCmFUhFAwY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nNPBABCMBwALIAMgCEGs08EAEIwHAAsgCCAHQbzTwQAQjAcACyAIIAdBzNPBABCMBwALIAggB0Hc08EAEIwHAAsgBiABQezSwQAQjAcACyAHIAFB3NLBABCMBwALIAQgAUHM0sEAEIwHAAsgACAAKAKYAiALIAAoAuwBIAAoAvABEKAFAkACQAJAIAAoAuQBIgEgCyAQbCICTwRAIABBADYC5AEgASACayEDIAVFDQEgASACRg0DIANFDQIgACgC4AEiASABIAJqIAP8CgAADAILDBALIAEgAkYNAQsgACADNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0FIABBADYCmAIgAEEFOgCcAgwFCyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0HC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAgD2UQwAAIMGSEIkEOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQngIgACgC5AEiAiAFSQ0WIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkGc0cEAEIwHAAsgASACQazRwQAQjAcACyACIARBvNHBABCMBwALIAIgBEHM0cEAEIwHAAsgAiAEQdzRwQAQjAcACyACIARB7NHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0EIABBADYCmAIgAEEEOgCcAgwECyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIghJBEAgAiEIIAFBgIAMSQ0GC0GAgAQgCCAIQYCABE8bIgtBA2wiBSAAKALwASIBSwRAIAUgAWsiAiAAKALoASABa0sEQCASIAEgAkEEQQQQpAUgACgC8AEhAQsgACgC7AEiBCABQQJ0aiEDIAJBAk8EfyACQQJ0QQRrIgcEQCADQQAgB/wLAAsgASACaiICQQFrIQEgBCACQQJ0akEEawUgAwtBADYCACAAIAFBAWoiATYC8AELAkACQAJAAkACQAJAAkACQAJAIAgEQEEAIQNBACEBA0AgASAAKALkASICTw0CIAEgACgC8AEiAk8NAyAAKALsASADaiAAKALgASABai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUEBaiICIAAoAuQBIgRPDQQgAiAAKALwASIETw0FIAAoAuwBIANqQQRqIAAoAuABIAFqQQFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQJqIgIgACgC5AEiBE8NBiACIAAoAvABIgRPDQcgACgC7AEgA2pBCGogACgC4AEgAWpBAmotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIANBDGohAyAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiALIAAoAuwBIAEQpAIgACgC5AEiAiAFSQ0VIABBADYC5AEgAiAFayEBIAhFDQYgAiAFRg0IIAFFDQcgACgC4AEiAiACIAVqIAH8CgAADAcLIAEgAkG80MEAEIwHAAsgASACQczQwQAQjAcACyACIARB3NDBABCMBwALIAIgBEHs0MEAEIwHAAsgAiAEQfzQwQAQjAcACyACIARBjNHBABCMBwALIAIgBUYNAQsgACABNgLkAQsgACAAKAKYAiALaiICNgKYAiACIAAoApACRw0DIABBADYCmAIgAEEDOgCcAgwDCyAAKALkASICIAAoApACIAAoApgCayILSQRAIAIiC0GAgARJDQULQYCABCAL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QCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAIA9lEMAACDBkhCJBDgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAgD2UQwAAIMGSEIkEOAIAIAFBAmoiAiAAKALcASIFTw0GIAIgACgC6AEiBU8NByAAKALkASADakEIaiAAKALYASABakECai0AALNDAACAPZRDAAAgwZIQiQQ4AgAgA0EMaiEDIAYgAUEDaiIBRw0ACyAAKALoASEBCyAAIAAoApACIAQgACgC5AEgARDJAyAAKALcASICIAZJDRUgAEEANgLcASACIAZrIQEgCUUNBiACIAZGDQggAUUNByAAKALYASICIAIgBmogAfwKAAAMBwsgASACQZzRwQAQjAcACyABIAJBrNHBABCMBwALIAIgBUG80cEAEIwHAAsgAiAFQczRwQAQjAcACyACIAVB3NHBABCMBwALIAIgBUHs0cEAEIwHAAsgAiAGRg0BCyAAIAE2AtwBCyAAIAAoApACIARqIgI2ApACIAIgACgCiAJHDQUgAEEANgKQAiAAQQQ6AJQCDAULIAAoAtwBIgFBA24iAiAAKAKIAiAAKAKQAmsiCUkEQCACIQkgAUGAgAxJDQQLQYCABCAJIAlBgIAETxsiBEEDbCIGIAAoAugBIgFLBEAgBiABayICIAAoAuABIAFrSwRAIBIgASACQQRBBBCkBSAAKALoASEBCyAAKALkASIFIAFBAnRqIQMgAkECTwR/IAJBAnRBBGsiBwRAIANBACAH/AsACyABIAJqIgJBAWshASAFIAJBAnRqQQRrBSADC0EANgIAIAAgAUEBaiIBNgLoAQsCQAJAAkACQAJAAkACQAJAAkAgCQRAQQAhA0EAIQEDQCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIANqIAAoAtgBIAFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQFqIgIgACgC3AEiBU8NBCACIAAoAugBIgVPDQUgACgC5AEgA2pBBGogACgC2AEgAWpBAWotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAFBAmoiAiAAKALc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IAEgDCAIazoAogcgASAnICiINwPQBgwPCyAMQf8BcUERSQ0OIAEgD0ENdkEPcUEEajYCyAYgASAPQQh2QR9xIglBAWo2AsQGIAEgD0EDdkEfcSIIQYECajYCwAZBBCAIQR1LDQMaIAlBHU0NAUEFDAMLIAEgDEEDazoAogcgASAnQgOINwPQBiAnQvgHg1ANAyABLQClB0UEQCABQQE6AKUHIAEoAvgGIQpBACIIRQRAIApB7J3EAEGAEPwKAAALIAhFBEAgCkGAEGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAIGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAMGpB7J3EAEGAEPwKAAALIAhFBEAgCkGAQGtB7J3EAEGAEPwKAAALIAhFBEAgCkGA0ABqQeydxABBgBD8CgAACyAIRQRAIApBgOAAakHsncQAQYAQ/AoAAAsgCEUEQCAKQYDwAGpB7J3EAEGAEPwKAAALIAEoAvwGIQpBAEUEQCAKQeycxABBgAH8CgAACyAIRQRAIApBgAFqQeycxABBgAH8CgAACyAIRQRAIApBgAJqQeycxABBgAH8CgAACyAIRQRAIApBgANqQeycxABBgAH8CgAACyAIRQRAIApBgARqQeycxABBgAH8CgAACyAIRQRAIApBgAVqQeycxABBgAH8CgAACyAIRQRAIApBgAZqQeycxABBgAH8CgAACyAIRQRAIApBgAdqQeycxABBgAH8CgAACyAIRQRAIApBgAhqQeycxABBgAH8CgAACyAIRQRAIApBgAlqQeycxABBgAH8CgAACyAIRQRAIApBgApqQeycxABBgAH8CgAACyAIRQRAIApBgAtqQeycxABBgAH8CgAACyAIRQRAIApBgAxqQeycxABBgAH8CgAACyAIRQRAIApBgA1qQeycxABBgAH8CgAACyAIRQRAIApBgA5qQeycxABBgAH8CgAACyAIRQRAIApBgA9qQeycxABBgAH8CgAACyABQYCA/AM2AoAHIAFBBzoAhAcLIAFBBDoAowcMDQsgAUEAOgClByABQQI6AKMHIAEgDEERazoAogcgASAnQhGINwPQBgwMC0ECCzoAAUEBDBQLIAEgDEEKayIJOgCiByABICdCCogiJzcD0AYgCA0HIAlB/wFxQQpJDQADQCAnQv8Hg0ICUg0BIAEgCUEKayIPOgCi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QbyNyAAQ6wcAC545Azd/A30BfiMAQYABayIBJAACQAJAAkAgACgCaCICQf8fTQRAIAFBADYCQCABQQE2AjQgAUHwssEANgIwIAFCBDcCOCABQTBqEJIHIQMMAQsgASAAKAJkIgMtAAAiBDoABiABIAMtAAEiBjoAByAEQQEgBhsEQCABQQI2AjQgAUHAssEANgIwIAFCAjcCPCABQoCAgIDwBCI7IAFBB2qthDcDECABIDsgAUEGaq2ENwMIIAEgAUEIajYCOCABQTBqEJIHIQMMAQsgA0EEaigAACEqIAMoABAhDSABIAMvABQiBDYCHCAEQQNPBEAgAUEBNgI0IAFBmLLBADYCMCABQgE3AjwgASABQRxqrUKAgICAEIQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyABIANBJGooAAAiBkGAgID+eyAGQf////8HcRs2AiAgASADKAAoIgZBgICA/gMgBkH/////B3EbNgIkIARBKGxBrKrBAGohECACQYAga0EKdkEBaiEUQQAhBEEAIQIgKkEKdEGAIGoiKyEhAkADQAJAIAQgKkcEQCAUIARBAWoiBEcNASABQQA2AkAgAUEBNgI0IAFB1LHBADYCMCABQgQ3AjggAUEwahCSByEDDAQLIAFBADoAOCABIAI2AjQgASANNgIwIAAgAUEwahDpASAqRQ0CQYAgISFBASEuAkADQCAhIgRBgAhqIiEgACgCaCIDSwRAIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgACgCZCIGIARqIgIoABgiEUUEQCAQKAIkIRELIAMgBEEkckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEockkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAMgBEEqckkEQCABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLIAIoAAQhB0EAIQQgECgCCCAQKAIAIBAoAgRqaiACLwAoIiJBA00EfyAiQQJ0KAKkq0EFIAQLIBAoAhBsakEEaiI1rSAHrX4iO0IgiFBFBEAgAUEANgJAIAFBATYCNCABQdCrwQA2AjAgAUIE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IGooAAAgA0GUIGovAABsaiADQaQgaigAAEECdGoiIU0gA0GACGohAw0ACyABQQA2AkAgAUEBNgI0IAFB9LHBADYCMCABQgQ3AjggAUEwahCSByEDDAELQQAhAwsgAUGAAWokACADDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALnjkDN38DfQF+IwBBgAFrIgEkAAJAAkACQCAAKAJIIgJB/x9NBEAgAUEANgJAIAFBATYCNCABQfCywQA2AjAgAUIENwI4IAFBMGoQkgchAwwBCyABIAAoAkQiAy0AACIEOgAGIAEgAy0AASIGOgAHIARBASAGGwRAIAFBAjYCNCABQcCywQA2AjAgAUICNwI8IAFCgICAgPAEIjsgAUEHaq2ENwMQIAEgOyABQQZqrYQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyADQQRqKAAAISogAygAECENIAEgAy8AFCIENgIcIARBA08EQCABQQE2AjQgAUGYssEANgIwIAFCATcCPCABIAFBHGqtQoCAgIAQhDcDCCABIAFBCGo2AjggAUEwahCSByEDDAELIAEgA0EkaigAACIGQYCAgP57IAZB/////wdxGzYCICABIAMoACgiBkGAgID+AyAGQf////8HcRs2AiQgBEEobEGsqsEAaiEQIAJBgCBrQQp2QQFqIRRBACEEQQAhAiAqQQp0QYAgaiIrISECQANAAkAgBCAqRwRAIBQgBEEBaiIERw0BIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBAsgAUEAOgA4IAEgAjYCNCABIA02AjAgACABQTBqEIQCICpFDQJBgCAhIUEBIS4CQANAICEiBEGACGoiISAAKAJIIgNLBEAgAUEANgJAIAFBATYCNCABQdSxwQA2AjAgAUIENwI4IAFBMGoQkgchAwwGCyAAKAJEIgYgBGoiAigAGCIRRQRAIBAoAiQhEQsgAyAEQSRySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQShySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAyAEQSpySQRAIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsgAigABCEHQQAhBCAQKAIIIBAoAgAgECgCBGpqIAIvACgiIkEDTQR/ICJBAnQoAqSrQQUgBAsgECgCEGxqQQRqIjWtIAetfiI7QiCIUEUEQCABQQA2AkAgAUEBNgI0IAFB0KvBADYCMCABQgQ3AjggAUEwahCSByEDDAYLAkACQAJAAn8CQCADICsiBCACKAAkIjBBAnQiCSACKAAMIg0gAi8AFGxqaiIUIDunIghqIitPBEAgAioAECE4IAIoAAghLyACKAAAIQcgAigAICEcIA0NAUEADAILIAFBADYCQCABQQE2AjQgAUGYscEANgIwIAFCBDcCOCABQTBqEJIHIQMMCgsgBCAJaiICIA1BDGxqIANLDQEgDUEDbCEeIAIgBmoLISMgFCArTQRAAkAgB0EDbCINQf////8DSw0AIAdBDGwiAkH9////B08NAAJAAkACQAJAAkACfyACRQRAQQQhFkEEIRdBAAwBCyACEHEiFkUNASAWQQRrLQAAQQNxRSACRXJFBEAgFkEAIAL8CwALIAIQcSIXRQ0BIBdBBGstAABBA3FFIAJFckUEQCAXQQAgAvwLAAsgDQshJCAHQQJ0Ig5B/////wNLDQQgB0EEdCIDQf3///8HTw0EQQQhGEEAISVBACEmQQQhFSADBEAgAxBxIhVFDQEgFUEEay0AAEEDcUUgA0VyRQRAIBVBACAD/AsACyAOISYLIAIEQCACEHEiGEUNASAYQQRrLQAAQQNxRSACRXJFBEAgGEEAIAL8CwALIA0hJQsgB0H/////A0sgDkH9////B09yDQNBBCEPQQAhHUEAISdBBCEaIA4EQCAOEHEiGkUNASAaQQRrLQAAQQNxRSAORXJFBEAgGkEAIA78CwALIAchJwsCQAJ/AkACQCAiRQRAQQAhEkEAIR9BBCEKDAELIAdBCWwiEkH/////A0sNBiAHQSRsIgJB/f///wdPDQZBBCEKQQAhHyACBEAgAhBxIg9FDQUgD0EEay0AAEEDcUUgAkVyRQRAIA9BACAC/AsACyASIR8LICJBAUcNAQtBACEJQQAhKEEEIRlBACEbQQAhLUEADAELIAdBD2wiCUH/////A0sNAyAHQTxsIgJB/f///wdPDQNBBCEZQQAhKCACBEAgAhBxIgpFDQMgCkEEay0AAEEDcUUgAkVyRQRAIApBACAC/AsACyAJIR0LICJBA0kEQEEBIS1BACEbQQAMAQsgB0EVbCIbQf////8DSw0BIAdB1ABsIgJB/f///wdPDQECfyACRQRAQQAMAQsgAhBxIhlFDQMgGUEEay0AAEEDcUUgAkVyRQRAIBlBACAC/AsACyAbCyEoQQEhLUEBCyExIAEoAhwEfSA4QwAAAD+UIBGzlQVDAAAAAAshOiAHRQ0KIAQgBmohNiAGIBRqIQxBASEDQQAhICAZIRFBACEEIBwiBiAvbCI3IRMDQCADIRQgASAEIDVsIgM2AigCQCAEIDdPBEAgMEUEQCAGIQIMAgsgMCAGIBxrIgJBACACIAZNGyICTQRAIAYhAgwCCyA2IAJBAnRqKAIAIBNqIgIgBEsEQCAGIQIMAgsgAiETIAZBAWoiAiEGDAELIC8EQCAEIC9uIQIMAQtB+K3BABCBCAALAkACQAJAAkACfQJAAkAgASgCHEUEQCADQXtNIANBBGogCE1xDQEgAUEANgJAIAFBATYCNCABQcjbwQA2AjAgAUIENwI4IAFBMGoQkgchAwwECyADQX1NIANBAmogCE1xDQEgAUEANgJAIAFBATYCNCABQcjbwQA2AjAgAUIENwI4IAFBMGoQkgchAwwDCyADIAxqKgAADAELIDogAyAMai8AALMgECgCJLOTlEMAAAAAITgCQCAjRQ0AIAJBA2wiAyAeTw0AICMgA0ECdGoqAgAhOAsgOJILITgCfQJAAkACQCANIARBA2wiA0sEQCAWIANBAnQiMmogODgCACABKAIoIQUgASgCHA0BIAVBBGoiC0F7TSAFQQhqIAhNcQ0CIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBQsgAyANQYiuwQAQjAcACyAFQQJqIgtBfU0gBUEEaiAITXENASABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAMLIAsgDGoqAAAMAQsgOiALIAxqLwAAsyAQKAIks5OUQwAAAAAhOAJAICNFDQAgAkEDbEEBaiIFIB5PDQAgIyAFQQJ0aioCACE4CyA4kgshOAJ9AkACQAJAIA0gA0EBaiIFSwRAIBYgBUECdCIzaiA4OAIAIAEoAighBSABKAIcDQEgBUEIaiICQXtNIAVBDGogCE1xDQIgAUEANgJAIAFBATYCNCABQcjbwQA2AjAgAUIENwI4IAFBMGoQkgchAwwFCyAFIA1BmK7BABCMBwALIAVBBGoiC0F9TSAFQQZqIAhNcQ0BIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMAwsgAiAMaioAAAwBCyA6IAsgDGovAACzIBAoAiSzk5RDAAAAACE4AkAgI0UNACACQQNsQQJqIgIgHk8NACAjIAJBAnRqKgIAITgLIDiSCyE4AkAgDSADQQJqIgJLBEAgFiACQQJ0IjRqIDg4AgAgAUEwaiIFIAwgCCABKAIoIBAoAhRqIgIgASgCHBC7BCABKAI0IQMgASgCMA0CIBcgMmogAzYCACAFIAwgCEECQQQgASgCHCIDGyACaiADELsEIAEoAjQhAyABKAIwDQIgFyAzaiADNgIAIAUgDCAIIAJBBEEIIAEoAhwiAhtqIAIQuwQgASgCNCEDIAEoAjANAiAXIDRqIAM2AgAgBSAMIAggASgCKCAQKAIYaiILIAEoAhwQuwQgASgCNCEDIAEoAjANAiAFIAwgCEECQQQgASgCHCICGyALaiACELsEIAEoAjQhAiABKAIwRQ0BIAIhAwwCCyACIA1BqK7BABCMBwALIAFBMGogDCAIQQRBCCABKAIcIgUbIAtqIAUQuwQgASgCNCEFIAEoAjAEQCAFIQMMAQsgAUEwaiAMIAggC0EGQQwgASgCHCILG2ogCxC7BCABKAI0IQsgASgCMARAIAshAwwBCwJAAkACQAJAAkACQAJAAkACQAJAIA4gBEECdCIpSwRAIBUgKUECdGogAjYCACApQQFyIgIgDk8NASAVIAJBAnRqIAU2AgAgKUECciICIA5PDQIgFSACQQJ0aiALNgIAIClBA3IiAiAOTw0DIBUgAkECdGogAzYCACABKAIoIBAoAhxqIgIgCE8NBCAYIDJqIAIgDGotAACzQwAAf0OVOAIAIAJBAWoiAyAITw0FIBggM2ogAyAMai0AALNDAAB/Q5U4AgAgAkECaiIDIAhPDQYgGCA0aiADIAxqLQAAs0MAAH9DlTgCACACQQNqIgIgCE8NByAEIAdPDQggGiApaiACIAxqLQAAs0MAAH9DlTgCACAiRQ0OIAEgECgCIDYCLCABIAg2AkQgASAMNgJAIAEgEDYCOCABIAFBJGo2AkwgASABQSBqNgJIIAEgAUEcajYCPCABIAFBLGo2AjQgASABQShqNgIwIAFBCGoiBSABQTBqIgtBABDNAyABKAIMIQMgASgCCA0LIARBCWwiAiASTw0NIA8gAkECdGogAzYCACAFIAtBAxDNAyABKAIMIQMgASgCCA0LIBIgAkEBaiIFTQRAIAUhAgwOCyAPIAVBAnRqIAM2AgAgAUEIaiABQTBqQQYQzQMgASgCDCEDIAEoAggNCyASIAJBAmoiBU0EQCAFIQIMDgsgDyAFQQJ0aiADNgIAIAFBCGogAUEwakEBEM0DIAEoAgwhAyABKAIIDQsgEiACQQNqIgVNBEAgBSECDA4LIA8gBUECdGogAzYCACABQQhqIAFBMGpBBBDNAyABKAIMIQMgASgCCA0LIBIgAkEEaiIFTQRAIAUhAgwOCyAPIAVBAnRqIAM2AgAgAUEIaiABQTBqQQcQzQMgASgCDCEDIAEoAggNCyASIAJBBWoiBU0EQCAFIQIMDgsgDyAFQQJ0aiADNgIAIAFBCGogAUEwakECEM0DIAEoAgwhAyABKAIIDQsgEiACQQZqIgVNBEAgBSECDA4LIA8gBUECdGogAzYCACABQQhqIAFBMGpBBRDNAyABKAIMIQMgASgCCA0LIBIgAkEHaiIFTQRAIAUhAgwOCyAPIAVBAnRqIAM2AgAgAUEIaiABQTBqQQgQzQMgASgCDCEDIAEoAggNCyACQQhqIgIgEk8NDSAPIAJBAnRqIAM2AgAgLQ0JDAoLICkgDkG4rsEAEIwHAAsgAiAOQciuwQAQjAcACyACIA5B2K7BABCMBwALIAIgDkHorsEAEIwHAAsgAiAIQfiuwQAQjAcACyADIAhBiK/BABCMBwALIAMgCEGYr8EAEIwHAAsgAiAIQaivwQAQjAcACyAEIAdBuK/BABCMBwALIAFBCGoiAiABQTBqIgVBCRDNAyABKAIMIQMgASgCCA0BIARBD2wiBCAJTw0CIAogBEECdGogAzYCACACIAVBDhDNAyABKAIMIQMgASgCCA0BIAkgBEEBaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQRMQzQMgASgCDCEDIAEoAggNASAJIARBAmoiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakEKEM0DIAEoAgwhAyABKAIIDQEgCSAEQQNqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBDxDNAyABKAIMIQMgASgCCA0BIAkgBEEEaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQRQQzQMgASgCDCEDIAEoAggNASAJIARBBWoiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakELEM0DIAEoAgwhAyABKAIIDQEgCSAEQQZqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBEBDNAyABKAIMIQMgASgCCA0BIAkgBEEHaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQRUQzQMgASgCDCEDIAEoAggNASAJIARBCGoiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakEMEM0DIAEoAgwhAyABKAIIDQEgCSAEQQlqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBERDNAyABKAIMIQMgASgCCA0BIAkgBEEKaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQRYQzQMgASgCDCEDIAEoAggNASAJIARBC2oiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakENEM0DIAEoAgwhAyABKAIIDQEgCSAEQQxqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBEhDNAyABKAIMIQMgASgCCA0BIAkgBEENaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQRcQzQMgASgCDCEDIAEoAggNASAEQQ5qIgQgCU8NAiAKIARBAnRqIAM2AgALIDFFDQNBACEEICAhAgNAIAFBCGogAUEwaiAEQcivwQBqKAIAEM0DIAEoAgwhAyABKAIIDQEgAiAbSQRAIAQgEWogAzYCACACQQFqIQIgBEEEaiIEQdQARg0FDAELCyACIBtBnLDBABCMBwALAkAgKARAIBlBBGsoAgAiAEF4cSIEIChBAnQiAkEEQQggAEEDcSIAG2pJDRcgAEEAIAQgAkEnaksbDRggGRCiAgsgHQRAIApBBGsoAgAiAEF4cSIEIB1BAnQiAkEEQQggAEEDcSIAG2pJDRcgAEEAIAQgAkEnaksbDRggChCiAgsgHwRAIA9BBGsoAgAiAEF4cSIEIB9BAnQiAkEEQQggAEEDcSIAG2pJDRcgAEEAIAQgAkEnaksbDRggDxCiAgsgJwRAIBpBBGsoAgAiAEF4cSIEICdBAnQiAkEEQQggAEEDcSIAG2pJDRcgAEEAIAQgAkEnaksbDRggGhCiAgsgJQRAIBhBBGsoAgAiAEF4cSIEICVBAnQiAkEEQQggAEEDcSIAG2pJDRcgAEEAIAQgAkEnaksbDRggGBCiAgsgJgRAIBVBBGsoAgAiAEF4cSIEICZBAnQiAkEEQQggAEEDcSIAG3JJDRcgAEEAIAQgAkEnaksbDRggFRCiAgsgJEUNFSAXQQRrKAIAIgBBeHEiBCAkQQJ0IgJBBEEIIABBA3EiABtqSQ0WIABBACAEIAJBJ2pLGw0XIBcQogIgJEUNFSAWQQRrKAIAIgBBeHEiBEEEQQggAEEDcSIAGyACakkNFiAAQQAgBCACQSdqSxsNACAWEKICDBULDBYLIAQgCUGssMEAEIwHAAsgAiASQbywwQAQjAcACyARQdQAaiERICBBFWohICAUIAcgFEsiAmohAyAUIQQgAg0ACyAHIQIgLCEEDAkLQaiswQAQ/wcLAAtBmKzBABD/BwALQYiswQAQ/wcAC0H4q8EAEP8HAAtB6KvBABD/BwALQdirwQAQ/wcACyAUICsgA0HMsMEAEOoHAAsgAUEANgJAIAFBATYCNCABQfiwwQA2AjAgAUIENwI4IAFBMGoQkgchAwwHCwJAAkACQAJAAkACQAJAAkACQAJAA0AgBCAsayIGQQNsIiAgDU0EQEGAgAQgAiACQYCABE8bIgNBA2wiFCANICBrIhFLDQIgBiAHSw0DIAMgByAGayIRSw0EIA4gBkECdCIRSQ0FIANBAnQiBSAOIBFrIhxLDQZBACEeQQQhC0EEIQhBACEcICIEQCASIAZBCWwiE0kNCCADQQlsIhwgEiATayIISw0JIA8gE0ECdGohCAsCfwJAAkAgLQRAIAkgBkEPbCITSQ0BIANBD2wiHiAJIBNrIgtLDQ8gCiATQQJ0aiELCyAxDQFBACEGQQQMAgsgEyAJIAlB6KzBABDqBwALIBsgBkEVbCITSQ0KIANBFWwiBiAbIBNrIgxLDQsgGSATQQJ0agshEyABQgQ3AnggAUICNwJwIAEgBjYCbCABIBM2AmggASAeNgJkIAEgCzYCYCABIBw2AlwgASAINgJYIAEgBTYCVCABIBUgEUECdGo2AlAgASAUNgJMIAEgFyAgQQJ0IgZqNgJIIAEgFDYCRCABIAYgGGo2AkAgASADNgI8IAEgESAaajYCOCABIBQ2AjQgASAGIBZqNgIwIAAgBCADIAFBMGoQ4gEgAyAEaiEEIAIgA2siAg0BDAwLCyAgIA0gDUHorcEAEOoHAAtBACAUIBFB2K3BABDqBwALIAYgByAHQcitwQAQ6gcAC0EAIAMgEUG4rcEAEOoHAAsgESAOIA5BqK3BABDqBwALQQAgBSAcQZitwQAQ6gcACyATIBIgEkGIrcEAEOoHAAtBACAcIAhB+KzBABDqBwALIBMgGyAbQciswQAQ6gcAC0EAIAYgDEG4rMEAEOoHAAtBACAeIAtB2KzBABDqBwALAkAgKARAIBlBBGsoAgAiBEF4cSICIChBAnQiA0EEQQggBEEDcSIEG2pJDQEgBEEAIAIgA0EnaksbDQkgGRCiAgsgHQRAIApBBGsoAgAiBEF4cSICIB1BAnQiA0EEQQggBEEDcSIEG2pJDQggBEEAIAIgA0EnaksbDQkgChCiAgsgHwRAIA9BBGsoAgAiBEF4cSICIB9BAnQiA0EEQQggBEEDcSIEG2pJDQggBEEAIAIgA0EnaksbDQkgDxCiAgsgJwRAIBpBBGsoAgAiBEF4cSICICdBAnQiA0EEQQggBEEDcSIEG2pJDQggBEEAIAIgA0EnaksbDQkgGhCiAgsgJQRAIBhBBGsoAgAiBEF4cSICICVBAnQiA0EEQQggBEEDcSIEG2pJDQggBEEAIAIgA0EnaksbDQkgGBCiAgsgJgRAIBVBBGsoAgAiBEF4cSICICZBAnQiA0EEQQggBEEDcSIEG3JJDQggBEEAIAIgA0EnaksbDQkgFRCiAgsCQCAkRQ0AIBdBBGsoAgAiAkF4cSIDICRBAnQiBEEEQQggAkEDcSIGG2pJDQggBkEAIARBJ2oiAiADSRsNCSAXEKICICRFDQAgFkEEaygCACIDQXhxIgYgBEEEQQggA0EDcSIEG2pJDQggBEEAIAIgBkkbDQMgFhCiAgsgByAsaiEsIC4gKiAuSyIEaiEuIAQNAQwFCwsMBQsMBQsgAiADQaggai8AACIHSyEJQQAhBiACIAcgCRshAiAhIANBhCBqKAAAIBAoAgggECgCACAQKAIEamogB0EDTQR/IAdBAnQoAqSrQQUgBgsgECgCEGxqQQRqbCAhaiADQYwgaigAACADQZQgai8AAGxqIANBpCBqKAAAQQJ0aiIhTSADQYAIaiEDDQALIAFBADYCQCABQQE2AjQgAUH0scEANgIwIAFCBDcCOCABQTBqEJIHIQMMAQtBACEDCyABQYABaiQAIAMPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAu+PAMWfwF+AXsjAEEgayITJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIARB//8DcSIHBEACQAJAAkACQCAHQRBNBEAgBEH/AXEiCEEDSQ0BIAhBBUkNB0GAEBBxIhBFDQhBACEEA0BCACEdIAggBEEPcSIHSwRAIAdBAnQiCkEEaiIMIAZLDQQgBSAKajUAACEdCyAJIBBqIAggBEEEdkEPcSIHSwR+IAdBAnQiCkEEaiIMIAZLDQQgBSAKajUAAEIghgVCAAsgHYQ3AAAgBEEBaiEEIAlBCGoiCUGAEEcNAAsgAkH//wNxIgkiBEUgA0H//wNxRXINGCACIARBAXZrIgZB//8DcSILEHEiAkUNCCALQQFrIgRBACAEIAtNGyIRQQN0IRkgCUECdCEOIAJBBGsoAgAiF0EDcSIcRSALRXJFBEAgAkEAIAv8CwALIAtBAnQhDyAAQQFqIRQgA0H//wNxIRIgDiAZTw0SIAEgDyASQQFrIgVsIgpJDRQgDyABIAprIgRLDRNBASALIAtBAU0bIQ1BACEIIAZB//8DcUEQSw0ZDCQLIAZBAEgNAwJAIAZBfHEiAgRAIAIQcSIERQ0JIAZBAnYhCCAGQQRrIgNBfHFBBGoiAgRAIAQgBSAC/AoAAAsgEyADQQJ2QQFqIgc2AgwgEyAENgIIIBMgCDYCBCADQfwHSQ0BDCMLIBNBADYCDCATQoCAgIAQNwIEQQEhBEEAIQcLIAchCUGAAiAHayINIAggB2tLBEBBACEFIwBBIGsiCCQAAkACQCAHIA1qIgIgE0EEaiIJKAIAIgRBAXQiBiACIAZLGyICQf////8DSw0AQQQgAiACQQRNGyIDQQJ0IgJBAEgNACAIIAQEfyAIIARBAnQ2AhwgCCAJKAIENgIUQQEFQQALNgIYIAhBCGpBASACIAhBFGoQhQcgCCgCCEEBRw0BIAgoAhAhBiAIKAIMIQULIAUgBkGclsgAEJMJAAsgCCgCDCECIAkgAzYCACAJIAI2AgQgCEEgaiQAIBMoAgwhCSATKAIIIQQLIAQgCUECdGohAyAHQf8BRwR/IA1BAnRBBGsiAgRAIANBACAC/AsACyAJIA1qIgJBAWshCSAEIAJBAnRqQQRrBSADC0EANgAAIBMgCUEBaiICNgIMIAJBgAJHDQUgEygCCCEEDCELQYDAABBxIhBFDQYgBEH/AXEhFkEAIQcDQEEAIRcgFiAHQQFxIgRLBEAgBEECdCIIQQRqIgogBksNAyAFIAhqKAAAIRcLQQAhDUEAIRggFiAHQQF2QQFxIgRLBEAgBEECdCIIQQRqIgogBksNAyAFIAhqKAAAIRgLIBYgB0ECdkEBcSIESwRAIARBAnQiCEEEaiIKIAZLDQMgBSAIaigAACENC0EAIRRBACEaIBYgB0EDdkEBcSIESwRAIARBAnQiCEEEaiIKIAZLDQMgBSAIaigAACEaCyAWIAdBBHZBAXEiBEsEQCAEQQJ0IghBBGoiCiAGSw0DIAUgCGooAAAhFAtBACEbQQAhCSAWIAdBBXZBAXEiBEsEQCAEQQJ0IghBBGoiCiAGSw0DIAUgCGooAAAhCQsgFiAHQQZ2QQFxIgRLBEAgBEECdCIIQQRqIgogBksNAyAFIAhqKAAAIRsLQQAhCiAWIAdBB3ZBAXEiBEsEQCAEQQJ0IghBBGoiCiAGSw0DIAUgCGooAAAhCgsgDCAQaiIEIBc2AAAgBEEcaiAKNgAAIARBGGogGzYAACAEQRRqIAk2AAAgBEEQaiAUNgAAIARBDGogGjYAACAEQQhqIA02AAAgBEEEaiAYNgAAIAdBAWohByAMQSBqIgxBgMAARw0ACyACQf//A3EiBEUgA0H//wNxRXINHiAEQQN2IAJBB3FBAEdqIgsQcSIGRQ0GIAtBAWsiAkEAIAIgC00bIg1BBXQhFSAEQQJ0IQ4gBkEEaygCACIWQQNxIhlFIAtFckUEQCAGQQAgC/wLAAsgC0ECdCEPIABBAWohCSADQf//A3EhESAOIBVJBEAgASAPIBFBAWsiA2wiBUkNGyAPIAEgBWsiB0sNKUEBIAsgC0EBTRshDUEAIQggC0EQTQ0gIAUgCWohByAGIQQgDSANQQ9xIgJBECACG2siCCEJA0AgBCAH/QAAACAH/QAAEP0NAAQIDBAUGBwAAAAAAAAAACAH/QAAICAH/QAAMP0NAAAAAAAAAAAABAgMEBQYHP0NAAECAwQFBgcYGRobHB0eH/0LAAAgB0FAayEHIARBEGohBCAJQRBrIgkNAAsMIAsgDiAVayESIAYgC2pBAWshHCALQQJJDRggEkEgSw0ZIA1B/v8AcSEXIA1BAXEhGEEAIQdBACAEQQJ0ayEaQQAgC0ECdGshGyALIAtBD3EiAkEQIAIbayEDIAAgBCARQQFrIgRsQQJ0aiECIAQgC2xBAnQgAGpBAWohDSALQRFJIRRBASEEA0AgASAHQX9zIBFqIgogD2wiBUkNGyAPIAEgBWsiB0sNKSAEIQlBACEFIA0hByAGIQQgAyEIIBRFBEADQCAEIAf9AAAAIAf9AAAQ/Q0ABAgMEBQYHAAAAAAAAAAAIAf9AAAgIAf9AAAw/Q0AAAAAAAAAAAAECAwQFBgc/Q0AAQIDBAUGBxgZGhscHR4f/QsAACAHQUBrIQcgBEEQaiEEIAhBEGsiCA0ACyADIQULIAsgBWshCCAFIAZqIQcgDSAFQQJ0aiEEA0AgByAELQAAOgAAIARBBGohBCAHQQFqIQcgCEEBayIIDQALIAEgCiAObCIMSQ0oIA4gASAMayIESw0qQQAhBCALQQJHBEAgAiEHA0AgByAQIAQgBmoiCC0AAEEFdGoiBf0AAAD9CwAAIAdBEGogBUEQav0AAAD9CwAAIAdBIGogECAIQQFqLQAAQQV0aiIF/QAAAP0LAAAgB0EwaiAFQRBq/QAAAP0LAAAgB0FAayEHIBcgBEECaiIERw0ACwsgACAMaiEHIBgEQCAHIARBBXRqIgUgECAEIAZqLQAAQQV0aiIE/QAAAP0LAAAgBUEQaiAEQRBq/QAAAP0LAAALIBIEQCAHIBVqIBAgHC0AAEEFdGogEvwKAAALIAIgGmohAiANIBtqIQ0gCSAJIBFJIgVqIQQgCSEHIAUNAAsMHQsgCiAMIAZB6OHEABDqBwALIAggCiAGQejhxAAQ6gcAC0Hg/8YAEP8HDAMLQcjgxABBIEHo4MQAEOsHAAtB2ObIAEErIBNBH2pBmNvEAEH44MQAEOAGAAtBgCAQcSIQRQ0AIARB/wFxIQlBACEHAkADQEEAIQwgCSAHQQNxIgRLBEAgBEECdCIIQQRqIg0gBksNAiAFIAhqKAAAIQwLQQAhGEEAIRcgCSAHQQJ2QQNxIgRLBEAgBEECdCIIQQRqIg0gBksNAiAFIAhqKAAAIRcLIAkgB0EEdkEDcSIESwRAIARBAnQiCEEEaiINIAZLDQIgBSAIaigAACEYC0EAIQ0gCSAHQQZ2QQNxIgRLBEAgBEECdCIIQQRqIg0gBksNAiAFIAhqKAAAIQ0LIAogEGoiBCAMNgAAIARBDGogDTYAACAEQQhqIBg2AAAgBEEEaiAXNgAAIAdBAWohByAKQRBqIgpBgCBHDQALIAJB//8DcSIERSADQf//A3FFcg0IIARBAnYgAkEDcUEAR2oiCxBxIgZFDQEgC0EBayICQQAgAiALTRsiDUEEdCEVIARBAnQhDiAGQQRrKAIAIhZBA3EiGUUgC0VyRQRAIAZBACAL/AsACyALQQJ0IQ8gAEEBaiEJIANB//8DcSERIA4gFUkEQCABIA8gEUEBayIDbCIMSQ0FIA8gASAMayIHSw0kQQEgCyALQQFNGyEFQQAhCCALQRBNDQogCSAMaiEHIAYhBCAFIAVBD3EiAkEQIAIbayIIIQkDQCAEIAf9AAAAIAf9AAAQ/Q0ABAgMEBQYHAAAAAAAAAAAIAf9AAAgIAf9AAAw/Q0AAAAAAAAAAAAECAwQFBgc/Q0AAQIDBAUGBxgZGhscHR4f/QsAACAHQUBrIQcgBEEQaiEEIAlBEGsiCQ0ACwwKCyAOIBVrIRIgBiALakEBayEcIAtBAkkNAiASQRBLDQMgDUH+/wFxIRcgDUEBcSEYQQAhB0EAIARBAnRrIRpBACALQQJ0ayEbIAsgC0EPcSICQRAgAhtrIQMgACAEIBFBAWsiBGxBAnRqIQIgBCALbEECdCAAakEBaiENIAtBEUkhFEEBIQQDQCABIAdBf3MgEWoiCSAPbCIMSQ0FIA8gASAMayIHSw0kIAQhBUEAIQogDSEHIAYhBCADIQggFEUEQANAIAQgB/0AAAAgB/0AABD9DQAECAwQFBgcAAAAAAAAAAAgB/0AACAgB/0AADD9DQAAAAAAAAAAAAQIDBAUGBz9DQABAgMEBQYHGBkaGxwdHh/9CwAAIAdBQGshByAEQRBqIQQgCEEQayIIDQALIAMhCgsgCyAKayEIIAYgCmohByANIApBAnRqIQQDQCAHIAQtAAA6AAAgBEEEaiEEIAdBAWohByAIQQFrIggNAAsgASAJIA5sIgpJDQsgDiABIAprIgRLDSVBACEEIAtBAkcEQCACIQcDQCAHIBAgBCAGaiIJLQAAQQR0av0AAAD9CwAAIAdBEGogECAJQQFqLQAAQQR0av0AAAD9CwAAIAdBIGohByAXIARBAmoiBEcNAAsLIAAgCmohByAYBEAgByAEQQR0aiAQIAQgBmotAABBBHRq/QAAAP0LAAALIBIEQCAHIBVqIBAgHC0AAEEEdGogEvwKAAALIAIgGmohAiANIBtqIQ0gBSAFIBFJIglqIQQgBSEHIAkNAAsMBwsgCCANIAZB6OHEABDqBwALAAsgEkEQTQRAIAAgFWohAiABIBFBAWsiACALbEECdCIMayEHIAEgACAEbEECdCIKayEEQQEhCANAIAEgDEkNAyAHIA9JDSIgBiAJIAxqLQAAOgAAIAEgCkkNCSAEIA5JDSMgEgRAIAIgCmogECAcLQAAQQR0aiAS/AoAAAsgByAPaiEHIAwgD2shDCAEIA5qIQQgCiAOayEKIAggEUkgCEEBaiEIDQALDAULIAEgDyARQQFrIgBsIgxJDQEgDyABIAxrIgdLDSAgBiAJIAxqLQAAOgAAIAEgACAObCIKSQ0HIA4gASAKayIETQ0DDCELIAEgDyARQQFrIgNsIgxJDQAgDyABIAxrIgdLDR9BACEFIAtBEE0NASAJIAxqIQcgBiEEIAsgC0EPcSICQRAgAhtrIgUhCANAIAQgB/0AAAAgB/0AABD9DQAECAwQFBgcAAAAAAAAAAAgB/0AACAgB/0AADD9DQAAAAAAAAAAAAQIDBAUGBz9DQABAgMEBQYHGBkaGxwdHh/9CwAAIAdBQGshByAEQRBqIQQgCEEQayIIDQALDAELIAwgASABQdjhxAAQ6gcACyALIAVrIQggBSAGaiEHIAwgBUECdGogAGpBAWohBANAIAcgBC0AADoAACAEQQRqIQQgB0EBaiEHIAhBAWsiCA0ACyABIAMgDmwiCkkNBCAOIAEgCmsiBEsNHiAAIApqIQBBASANIA1BAU0bIgFBAXFBACEEIA1BAk8EQCABQf7/AXEhAiAAIQcDQCAHIBAgBCAGaiIBLQAAQQR0av0AAAD9CwAAIAdBEGogECABQQFqLQAAQQR0av0AAAD9CwAAIAdBIGohByACIARBAmoiBEcNAAsLRQ0AIAAgBEEEdGogECAEIAZqLQAAQQR0av0AAAD9CwAAC0EAIBJBEEGY4cQAEOoHAAsgFkF4cSIAQQRBCCAZGyALakkNFyAZQQAgACALQSdqSxsNGCAGEKICCyAQQQRrKAIAIgFBeHFBhCBBiCAgAUEDcSIAG0kNFiAAQQAgAUGoIE8bDRcgEBCiAgwTCyAFIAhrIQkgBiAIaiEHIAwgCEECdGogAGpBAWohBANAIAcgBC0AADoAACAEQQRqIQQgB0EBaiEHIAlBAWsiCQ0ACyABIAMgDmwiCkkNACAOIAEgCmsiBEsNGgwXCyAKIAEgAUG44cQAEOoHAAsgDiAZayEVIAIgC2pBAWshFgJAIAZB//8DcSIHQQJPBEAgFUEISw0BIBFB/v8DcSEFQQAhBEEAIAlBAnRrIRhBACALQQJ0ayEaIAsgC0EPcSIDQRAgAxtrIQMgACASQQFrIgYgCWxBAnRqIRQgBiALbEECdCAAakEBaiENIAdBEUkhG0EBIQkDQCABIARBf3MgEmoiByAPbCIKSQ0EIA8gASAKayIESw0DIAkhBkEAIQogDSEEIAIhCSADIQggG0UEQANAIAkgBP0AAAAgBP0AABD9DQAECAwQFBgcAAAAAAAAAAAgBP0AACAgBP0AADD9DQAAAAAAAAAAAAQIDBAUGBz9DQABAgMEBQYHGBkaGxwdHh/9CwAAIARBQGshBCAJQRBqIQkgCEEQayIIDQALIAMhCgsgCyAKayEIIAIgCmohBCANIApBAnRqIQkDQCAEIAktAAA6AAAgCUEEaiEJIARBAWohBCAIQQFrIggNAAsgASAHIA5sIgxJDRkgDiABIAxrIglLDRVBACEEAkAgEUECTwRAIBQhBCACIQkgBSEIA0AgBCAQIAkvAAD9EP2JAf2pASIe/RsBQQN0aiAQIB79GwBBA3Rq/V0AAP1XAAAB/QsAACAEQRBqIQQgCUECaiEJIAhBAmsiCA0ACyAFIgQgEUYNAQsgFCAEQQN0aiEJA0AgCSAQIAIgBGotAABBA3RqKQAANwAAIAlBCGohCSAEQQFqIgQgEUkNAAsLIBUEQCAAIAxqIBlqIBAgFi0AAEEDdGogFfwKAAALIBQgGGohFCANIBpqIQ0gBiAGIBJJIgdqIQkgBiEEIAcNAAsMBgsgFUEITQRAIAAgGWohAyABIBJBAWsiACALbEECdCIKayEEIAEgACAJbEECdCIMayEJQQEhCANAIAEgCkkNBCAEIA9JDQMgAiAKIBRqLQAAOgAAIAEgDEkNGSAJIA5JDRUgFQRAIAMgDGogECAWLQAAQQN0aiAV/AoAAAsgBCAPaiEEIAogD2shCiAJIA5qIQkgDCAOayEMIAggEkkgCEEBaiEIDQALDAYLIAEgDyASQQFrIgBsIgpJDQIgDyABIAprIgRLDQEgAiAKIBRqLQAAOgAAIAEgACAObCIMSQ0XIA4gASAMayIJTQ0EDBMLIAEgDyASQQFrIgVsIgpJDQEgDyABIAprIgRLDQBBACEMIAZB//8DcUEQTQ0CIAogFGohBCACIQkgCyALQQ9xIgNBECADG2siDCEIA0AgCSAE/QAAACAE/QAAEP0NAAQIDBAUGBwAAAAAAAAAACAE/QAAICAE/QAAMP0NAAAAAAAAAAAABAgMEBQYHP0NAAECAwQFBgcYGRobHB0eH/0LAAAgBEFAayEEIAlBEGohCSAIQRBrIggNAAsMAgtBACAPIARByOHEABDqBwALIAogASABQdjhxAAQ6gcACyALIAxrIQggAiAMaiEEIAogDEECdGogAGpBAWohCQNAIAQgCS0AADoAACAJQQRqIQkgBEEBaiEEIAhBAWsiCA0ACyABIAUgDmwiDEkNEyAOIAEgDGsiCUsND0EBIBEgEUEBTRshAUEAIQogEUECTwRAIAAgDGohBCACIQkgAUH+/wNxIgohCANAIAQgECAJLwAA/RD9iQH9qQEiHv0bAUEDdGogECAe/RsAQQN0av1dAAD9VwAAAf0LAAAgBEEQaiEEIAlBAmohCSAIQQJrIggNAAsgCiARRg0BCyACIApqIQQgCiABayEIIAAgDCAKQQN0amohCQNAIAkgECAELQAAQQN0aikAADcAACAJQQhqIQkgBEEBaiEEIAhBAWoiCA0ACwtBACAVQQhBmOHEABDqBwALIBdBeHEiAEEEQQggHBsgC2pJDQ4gHEEAIAAgC0EnaksbDQ8gAhCiAgsgEEEEaygCACIBQXhxQYQQQYgQIAFBA3EiABtJDQ0gAEEAIAFBqBBPGw0OIBAQogIMCgsgCiAUaiEHIA1BD3EiA0EQIAMbIgMgDWshCSANIANrIQggAiEEA0AgBCAH/QAAACAH/QAAEP0NAAQIDBAUGBwAAAAAAAAAACAH/QAAICAH/QAAMP0NAAAAAAAAAAAABAgMEBQYHP0NAAECAwQFBgcYGRobHB0eH/0LAAAgB0FAayEHIARBEGohBCAJQRBqIgkNAAsMCgsgEkEgTQRAIAAgFWohAiABIBFBAWsiACALbEECdCIFayEHIAEgACAEbEECdCIMayEEQQEhCANAIAEgBUkNAyAHIA9JDREgBiAFIAlqLQAAOgAAIAEgDEkNECAEIA5JDRIgEgRAIAIgDGogECAcLQAAQQV0aiAS/AoAAAsgByAPaiEHIAUgD2shBSAEIA5qIQQgDCAOayEMIAggEUkgCEEBaiEIDQALDAULIAEgDyARQQFrIgBsIgVJDQEgDyABIAVrIgdLDQ8gBiAFIAlqLQAAOgAAIAEgACAObCIMSQ0OIA4gASAMayIETQ0DDBALIAEgDyARQQFrIgNsIgVJDQAgDyABIAVrIgdLDQ5BACEKIAtBEE0NASAFIAlqIQcgBiEEIAsgC0EPcSICQRAgAhtrIgohCANAIAQgB/0AAAAgB/0AABD9DQAECAwQFBgcAAAAAAAAAAAgB/0AACAgB/0AADD9DQAAAAAAAAAAAAQIDBAUGBz9DQABAgMEBQYHGBkaGxwdHh/9CwAAIAdBQGshByAEQRBqIQQgCEEQayIIDQALDAELIAUgASABQdjhxAAQ6gcACyALIAprIQggBiAKaiEHIAUgCkECdGogAGpBAWohBANAIAcgBC0AADoAACAEQQRqIQQgB0EBaiEHIAhBAWsiCA0ACyABIAMgDmwiDEkNCyAOIAEgDGsiBEsNDSAAIAxqIQBBASANIA1BAU0bIgFBAXFBACEEIA1BAk8EQCABQf7/AHEhAyAAIQcDQCAHIBAgBCAGaiICLQAAQQV0aiIB/QAAAP0LAAAgB0EQaiABQRBq/QAAAP0LAAAgB0EgaiAQIAJBAWotAABBBXRqIgH9AAAA/QsAACAHQTBqIAFBEGr9AAAA/QsAACAHQUBrIQcgAyAEQQJqIgRHDQALC0UNACAAIARBBXRqIgEgECAEIAZqLQAAQQV0aiIA/QAAAP0LAAAgAUEQaiAAQRBq/QAAAP0LAAALQQAgEkEgQZjhxAAQ6gcACyAWQXhxIgBBBEEIIBkbIAtqSQ0GIBlBACAAIAtBJ2pLGw0HIAYQogILIBBBBGsoAgAiAUF4cUGEwABBiMAAIAFBA3EiABtJDQUgAEEAIAFBqMAATxsNBiAQEKICDAILIA0gCGshCSAGIAhqIQcgBSAIQQJ0aiAAakEBaiEEA0AgByAELQAAOgAAIARBBGohBCAHQQFqIQcgCUEBayIJDQALIAEgAyAObCIMSQ0HIA4gASAMayIESw0JDAYLAkAgAUF8cSIIRQ0AIAFBBGsiAUEMcUEMRwRAIAggAUECdkEBakEDcSIHQQJ0ayEIA0AgACAEIABBAWotAABBAnRqKAAANgAAIABBBGohACAHQQFrIgcNAAsgAUEMSQ0BC0EAIQkDQCAAIAlqIgEgBCABQQFqLQAAQQJ0aigAADYAACABQQRqIAQgAUEFai0AAEECdGooAAA2AAAgAUEIaiAEIAFBCWotAABBAnRqKAAANgAAIAFBDGogBCABQQ1qLQAAQQJ0aigAADYAACAIIAlBEGoiCUcNAAsLIBMoAgQiAUUNACAEQQRrKAIAIgBBeHEiAiABQQJ0IgFBBEEIIABBA3EiABtqSQ0DIABBACACIAFBJ2pLGw0EIAQQogILIBNBIGokAA8LIAggDWshCSACIAhqIQcgCiAIQQJ0aiAAakEBaiEEA0AgByAELQAAOgAAIARBBGohBCAHQQFqIQcgCUEBaiIJDQALIAEgBSAObCIMSQ0EIA4gASAMayIJSw0ADAMLQQAgDiAJQajhxAAQ6gcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgE0EANgIUIBNBATYCCCATQYiCyAA2AgQgE0IENwIMIBNBBGpBiOHEABCNCAALIAwgASABQbjhxAAQ6gcAC0EAIA8gB0HI4cQAEOoHAAtBACAOIARBqOHEABDqBwALgjgDN38DfQF+IwBBgAFrIgEkAAJAAkACQCAAKALMASICQf8fTQRAIAFBADYCQCABQQE2AjQgAUHwssEANgIwIAFCBDcCOCABQTBqEJIHIQMMAQsgASAAKALIASIDLQAAIgQ6AAYgASADLQABIgY6AAcgBEEBIAYbBEAgAUECNgI0IAFBwLLBADYCMCABQgI3AjwgAUKAgICA8AQiOyABQQdqrYQ3AxAgASA7IAFBBmqthDcDCCABIAFBCGo2AjggAUEwahCSByEDDAELIANBBGooAAAhKiADKAAQIQ0gASADLwAUIgQ2AhwgBEEDTwRAIAFBATYCNCABQZiywQA2AjAgAUIBNwI8IAEgAUEcaq1CgICAgBCENwMIIAEgAUEIajYCOCABQTBqEJIHIQMMAQsgASADQSRqKAAAIgZBgICA/nsgBkH/////B3EbNgIgIAEgAygAKCIGQYCAgP4DIAZB/////wdxGzYCJCAEQShsQayqwQBqIRAgAkGAIGtBCnZBAWohFEEAIQQgKkEKdEGAIGoiKyECAkACQAJAA0AgBCAqRg0BIBQgBEEBaiIERg0CIB4gA0GoIGovAAAiBkshCCAeIAYgCBshHiACIANBhCBqKAAAIBAoAgggECgCACAQKAIEamogBkEDTQR/IAZBAnQoAqSrQQUgCQsgECgCEGxqQQRqbCACaiADQYwgaigAACADQZQgai8AAGxqIANBpCBqKAAAQQJ0aiICTSADQYAIaiEDDQALIAFBADYCQCABQQE2AjQgAUH0scEANgIwIAFCBDcCOCABQTBqEJIHIQMMAwsgAUEAOgA4IAEgHjYCNCABIA02AjAgACABQTBqEOEDICpFDQFBgCAhHkEBIS4CQANAIB4iBEGACGoiHiAAKALMASIDSwRAIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMBQsgACgCyAEiBiAEaiICKAAYIhFFBEAgECgCJCERCyACKAAEIQlBACEEIBAoAgggECgCACAQKAIEamogAi8AKCIiQQNNBH8gIkECdCgCpKtBBSAECyAQKAIQbGpBBGoiNa0gCa1+IjtCIIhQRQRAIAFBADYCQCABQQE2AjQgAUHQq8EANgIwIAFCBDcCOCABQTBqEJIHIQMMBQsCQAJAAkACfwJAIAMgKyIEIAIoACQiMEECdCIIIAIoAAwiDSACLwAUbGpqIhQgO6ciB2oiK08EQCACKgAQITggAigACCEvIAIoAAAhCSACKAAgIRwgDQ0BQQAMAgsgAUEANgJAIAFBATYCNCABQZixwQA2AjAgAUIENwI4IAFBMGoQkgchAwwJCyAEIAhqIgIgDUEMbGogA0sNASANQQNsIR8gAiAGagshIyAUICtNBEACQCAJQQNsIg1B/////wNLDQAgCUEMbCICQf3///8HTw0AAkACQAJAAkACQAJ/IAJFBEBBBCEWQQQhF0EADAELIAIQcSIWRQ0BIBZBBGstAABBA3FFIAJFckUEQCAWQQAgAvwLAAsgAhBxIhdFDQEgF0EEay0AAEEDcUUgAkVyRQRAIBdBACAC/AsACyANCyEkIAlBAnQiDkH/////A0sNBCAJQQR0IgNB/f///wdPDQRBBCEYQQAhJUEAISZBBCEVIAMEQCADEHEiFUUNASAVQQRrLQAAQQNxRSADRXJFBEAgFUEAIAP8CwALIA4hJgsgAgRAIAIQcSIYRQ0BIBhBBGstAABBA3FFIAJFckUEQCAYQQAgAvwLAAsgDSElCyAJQf////8DSyAOQf3///8HT3INA0EEIQ9BACEgQQAhJ0EEIRogDgRAIA4QcSIaRQ0BIBpBBGstAABBA3FFIA5FckUEQCAaQQAgDvwLAAsgCSEnCwJAAn8CQAJAICJFBEBBACESQQAhHUEEIQoMAQsgCUEJbCISQf////8DSw0GIAlBJGwiAkH9////B08NBkEEIQpBACEdIAIEQCACEHEiD0UNBSAPQQRrLQAAQQNxRSACRXJFBEAgD0EAIAL8CwALIBIhIAsgIkEBRw0BC0EAIQhBACEoQQQhGUEAIRtBACEtQQAMAQsgCUEPbCIIQf////8DSw0DIAlBPGwiAkH9////B08NA0EEIRlBACEoIAIEQCACEHEiCkUNAyAKQQRrLQAAQQNxRSACRXJFBEAgCkEAIAL8CwALIAghHQsgIkEDSQRAQQEhLUEAIRtBAAwBCyAJQRVsIhtB/////wNLDQEgCUHUAGwiAkH9////B08NAQJ/IAJFBEBBAAwBCyACEHEiGUUNAyAZQQRrLQAAQQNxRSACRXJFBEAgGUEAIAL8CwALIBsLIShBASEtQQELITEgASgCHAR9IDhDAAAAP5QgEbOVBUMAAAAACyE6IAlFDQogBCAGaiE2IAYgFGohDEEBIQNBACEhIBkhEUEAIQQgHCIGIC9sIjchEwNAIAMhFCABIAQgNWwiAzYCKAJAIAQgN08EQCAwRQRAIAYhAgwCCyAwIAYgHGsiAkEAIAIgBk0bIgJNBEAgBiECDAILIDYgAkECdGooAgAgE2oiAiAESwRAIAYhAgwCCyACIRMgBkEBaiICIQYMAQsgLwRAIAQgL24hAgwBC0H4rcEAEIEIAAsCQAJAAkACQAJ9AkACQCABKAIcRQRAIANBe00gA0EEaiAHTXENASABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAQLIANBfU0gA0ECaiAHTXENASABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAMLIAMgDGoqAAAMAQsgOiADIAxqLwAAsyAQKAIks5OUQwAAAAAhOAJAICNFDQAgAkEDbCIDIB9PDQAgIyADQQJ0aioCACE4CyA4kgshOAJ9AkACQAJAIA0gBEEDbCIDSwRAIBYgA0ECdCIyaiA4OAIAIAEoAighBSABKAIcDQEgBUEEaiILQXtNIAVBCGogB01xDQIgAUEANgJAIAFBATYCNCABQcjbwQA2AjAgAUIENwI4IAFBMGoQkgchAwwFCyADIA1BiK7BABCMBwALIAVBAmoiC0F9TSAFQQRqIAdNcQ0BIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMAwsgCyAMaioAAAwBCyA6IAsgDGovAACzIBAoAiSzk5RDAAAAACE4AkAgI0UNACACQQNsQQFqIgUgH08NACAjIAVBAnRqKgIAITgLIDiSCyE4An0CQAJAAkAgDSADQQFqIgVLBEAgFiAFQQJ0IjNqIDg4AgAgASgCKCEFIAEoAhwNASAFQQhqIgJBe00gBUEMaiAHTXENAiABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAULIAUgDUGYrsEAEIwHAAsgBUEEaiILQX1NIAVBBmogB01xDQEgAUEANgJAIAFBATYCNCABQcjbwQA2AjAgAUIENwI4IAFBMGoQkgchAwwDCyACIAxqKgAADAELIDogCyAMai8AALMgECgCJLOTlEMAAAAAITgCQCAjRQ0AIAJBA2xBAmoiAiAfTw0AICMgAkECdGoqAgAhOAsgOJILITgCQCANIANBAmoiAksEQCAWIAJBAnQiNGogODgCACABQTBqIgUgDCAHIAEoAiggECgCFGoiAiABKAIcELsEIAEoAjQhAyABKAIwDQIgFyAyaiADNgIAIAUgDCAHQQJBBCABKAIcIgMbIAJqIAMQuwQgASgCNCEDIAEoAjANAiAXIDNqIAM2AgAgBSAMIAcgAkEEQQggASgCHCICG2ogAhC7BCABKAI0IQMgASgCMA0CIBcgNGogAzYCACAFIAwgByABKAIoIBAoAhhqIgsgASgCHBC7BCABKAI0IQMgASgCMA0CIAUgDCAHQQJBBCABKAIcIgIbIAtqIAIQuwQgASgCNCECIAEoAjBFDQEgAiEDDAILIAIgDUGorsEAEIwHAAsgAUEwaiAMIAdBBEEIIAEoAhwiBRsgC2ogBRC7BCABKAI0IQUgASgCMARAIAUhAwwBCyABQTBqIAwgByALQQZBDCABKAIcIgsbaiALELsEIAEoAjQhCyABKAIwBEAgCyEDDAELAkACQAJAAkACQAJAAkACQAJAAkAgDiAEQQJ0IilLBEAgFSApQQJ0aiACNgIAIClBAXIiAiAOTw0BIBUgAkECdGogBTYCACApQQJyIgIgDk8NAiAVIAJBAnRqIAs2AgAgKUEDciICIA5PDQMgFSACQQJ0aiADNgIAIAEoAiggECgCHGoiAiAHTw0EIBggMmogAiAMai0AALNDAAB/Q5U4AgAgAkEBaiIDIAdPDQUgGCAzaiADIAxqLQAAs0MAAH9DlTgCACACQQJqIgMgB08NBiAYIDRqIAMgDGotAACzQwAAf0OVOAIAIAJBA2oiAiAHTw0HIAQgCU8NCCAaIClqIAIgDGotAACzQwAAf0OVOAIAICJFDQ4gASAQKAIgNgIsIAEgBzYCRCABIAw2AkAgASAQNgI4IAEgAUEkajYCTCABIAFBIGo2AkggASABQRxqNgI8IAEgAUEsajYCNCABIAFBKGo2AjAgAUEIaiIFIAFBMGoiC0EAEM0DIAEoAgwhAyABKAIIDQsgBEEJbCICIBJPDQ0gDyACQQJ0aiADNgIAIAUgC0EDEM0DIAEoAgwhAyABKAIIDQsgEiACQQFqIgVNBEAgBSECDA4LIA8gBUECdGogAzYCACABQQhqIAFBMGpBBhDNAyABKAIMIQMgASgCCA0LIBIgAkECaiIFTQRAIAUhAgwOCyAPIAVBAnRqIAM2AgAgAUEIaiABQTBqQQEQzQMgASgCDCEDIAEoAggNCyASIAJBA2oiBU0EQCAFIQIMDgsgDyAFQQJ0aiADNgIAIAFBCGogAUEwakEEEM0DIAEoAgwhAyABKAIIDQsgEiACQQRqIgVNBEAgBSECDA4LIA8gBUECdGogAzYCACABQQhqIAFBMGpBBxDNAyABKAIMIQMgASgCCA0LIBIgAkEFaiIFTQRAIAUhAgwOCyAPIAVBAnRqIAM2AgAgAUEIaiABQTBqQQIQzQMgASgCDCEDIAEoAggNCyASIAJBBmoiBU0EQCAFIQIMDgsgDyAFQQJ0aiADNgIAIAFBCGogAUEwakEFEM0DIAEoAgwhAyABKAIIDQsgEiACQQdqIgVNBEAgBSECDA4LIA8gBUECdGogAzYCACABQQhqIAFBMGpBCBDNAyABKAIMIQMgASgCCA0LIAJBCGoiAiASTw0NIA8gAkECdGogAzYCACAtDQkMCgsgKSAOQbiuwQAQjAcACyACIA5ByK7BABCMBwALIAIgDkHYrsEAEIwHAAsgAiAOQeiuwQAQjAcACyACIAdB+K7BABCMBwALIAMgB0GIr8EAEIwHAAsgAyAHQZivwQAQjAcACyACIAdBqK/BABCMBwALIAQgCUG4r8EAEIwHAAsgAUEIaiICIAFBMGoiBUEJEM0DIAEoAgwhAyABKAIIDQEgBEEPbCIEIAhPDQIgCiAEQQJ0aiADNgIAIAIgBUEOEM0DIAEoAgwhAyABKAIIDQEgCCAEQQFqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBExDNAyABKAIMIQMgASgCCA0BIAggBEECaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQQoQzQMgASgCDCEDIAEoAggNASAIIARBA2oiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakEPEM0DIAEoAgwhAyABKAIIDQEgCCAEQQRqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBFBDNAyABKAIMIQMgASgCCA0BIAggBEEFaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQQsQzQMgASgCDCEDIAEoAggNASAIIARBBmoiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakEQEM0DIAEoAgwhAyABKAIIDQEgCCAEQQdqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBFRDNAyABKAIMIQMgASgCCA0BIAggBEEIaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQQwQzQMgASgCDCEDIAEoAggNASAIIARBCWoiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakEREM0DIAEoAgwhAyABKAIIDQEgCCAEQQpqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBFhDNAyABKAIMIQMgASgCCA0BIAggBEELaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQQ0QzQMgASgCDCEDIAEoAggNASAIIARBDGoiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakESEM0DIAEoAgwhAyABKAIIDQEgCCAEQQ1qIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBFxDNAyABKAIMIQMgASgCCA0BIARBDmoiBCAITw0CIAogBEECdGogAzYCAAsgMUUNA0EAIQQgISECA0AgAUEIaiABQTBqIARByK/BAGooAgAQzQMgASgCDCEDIAEoAggNASACIBtJBEAgBCARaiADNgIAIAJBAWohAiAEQQRqIgRB1ABGDQUMAQsLIAIgG0GcsMEAEIwHAAsCQCAoBEAgGUEEaygCACIAQXhxIgQgKEECdCICQQRBCCAAQQNxIgAbakkNFiAAQQAgBCACQSdqSxsNFyAZEKICCyAdBEAgCkEEaygCACIAQXhxIgQgHUECdCICQQRBCCAAQQNxIgAbakkNFiAAQQAgBCACQSdqSxsNFyAKEKICCyAgBEAgD0EEaygCACIAQXhxIgQgIEECdCICQQRBCCAAQQNxIgAbakkNFiAAQQAgBCACQSdqSxsNFyAPEKICCyAnBEAgGkEEaygCACIAQXhxIgQgJ0ECdCICQQRBCCAAQQNxIgAbakkNFiAAQQAgBCACQSdqSxsNFyAaEKICCyAlBEAgGEEEaygCACIAQXhxIgQgJUECdCICQQRBCCAAQQNxIgAbakkNFiAAQQAgBCACQSdqSxsNFyAYEKICCyAmBEAgFUEEaygCACIAQXhxIgQgJkECdCICQQRBCCAAQQNxIgAbckkNFiAAQQAgBCACQSdqSxsNFyAVEKICCyAkRQ0UIBdBBGsoAgAiAEF4cSIEICRBAnQiAkEEQQggAEEDcSIAG2pJDRUgAEEAIAQgAkEnaksbDRYgFxCiAiAkRQ0UIBZBBGsoAgAiAEF4cSIEQQRBCCAAQQNxIgAbIAJqSQ0VIABBACAEIAJBJ2pLGw0AIBYQogIMFAsMFQsgBCAIQaywwQAQjAcACyACIBJBvLDBABCMBwALIBFB1ABqIREgIUEVaiEhIBQgCSAUSyICaiEDIBQhBCACDQALIAkhAyAsIQQMCQtBqKzBABD/BwsAC0GYrMEAEP8HAAtBiKzBABD/BwALQfirwQAQ/wcAC0Hoq8EAEP8HAAtB2KvBABD/BwALIBQgKyADQcywwQAQ6gcACyABQQA2AkAgAUEBNgI0IAFB+LDBADYCMCABQgQ3AjggAUEwahCSByEDDAYLAkACQAJAAkACQAJAAkACQAJAAkADQCAEICxrIgJBA2wiISANTQRAQYCABCADIANBgIAETxsiBkEDbCIUIA0gIWsiEUsNAiACIAlLDQMgBiAJIAJrIhFLDQQgDiACQQJ0IhFJDQUgBkECdCIFIA4gEWsiHEsNBkEAIR9BBCELQQQhB0EAIRwgIgRAIBIgAkEJbCITSQ0IIAZBCWwiHCASIBNrIgdLDQkgDyATQQJ0aiEHCwJ/AkACQCAtBEAgCCACQQ9sIhNJDQEgBkEPbCIfIAggE2siC0sNDyAKIBNBAnRqIQsLIDENAUEAIQJBBAwCCyATIAggCEHorMEAEOoHAAsgGyACQRVsIhNJDQogBkEVbCICIBsgE2siDEsNCyAZIBNBAnRqCyETIAFCBDcCeCABQgI3AnAgASACNgJsIAEgEzYCaCABIB82AmQgASALNgJgIAEgHDYCXCABIAc2AlggASAFNgJUIAEgFSARQQJ0ajYCUCABIBQ2AkwgASAXICFBAnQiAmo2AkggASAUNgJEIAEgAiAYajYCQCABIAY2AjwgASARIBpqNgI4IAEgFDYCNCABIAIgFmo2AjAgACAEIAYgAUEwahB+IAQgBmohBCADIAZrIgMNAQwMCwsgISANIA1B6K3BABDqBwALQQAgFCARQditwQAQ6gcACyACIAkgCUHIrcEAEOoHAAtBACAGIBFBuK3BABDqBwALIBEgDiAOQaitwQAQ6gcAC0EAIAUgHEGYrcEAEOoHAAsgEyASIBJBiK3BABDqBwALQQAgHCAHQfiswQAQ6gcACyATIBsgG0HIrMEAEOoHAAtBACACIAxBuKzBABDqBwALQQAgHyALQdiswQAQ6gcACwJAICgEQCAZQQRrKAIAIgRBeHEiAiAoQQJ0IgNBBEEIIARBA3EiBBtqSQ0BIARBACACIANBJ2pLGw0IIBkQogILIB0EQCAKQQRrKAIAIgRBeHEiAiAdQQJ0IgNBBEEIIARBA3EiBBtqSQ0HIARBACACIANBJ2pLGw0IIAoQogILICAEQCAPQQRrKAIAIgRBeHEiAiAgQQJ0IgNBBEEIIARBA3EiBBtqSQ0HIARBACACIANBJ2pLGw0IIA8QogILICcEQCAaQQRrKAIAIgRBeHEiAiAnQQJ0IgNBBEEIIARBA3EiBBtqSQ0HIARBACACIANBJ2pLGw0IIBoQogILICUEQCAYQQRrKAIAIgRBeHEiAiAlQQJ0IgNBBEEIIARBA3EiBBtqSQ0HIARBACACIANBJ2pLGw0IIBgQogILICYEQCAVQQRrKAIAIgRBeHEiAiAmQQJ0IgNBBEEIIARBA3EiBBtySQ0HIARBACACIANBJ2pLGw0IIBUQogILAkAgJEUNACAXQQRrKAIAIgJBeHEiAyAkQQJ0IgRBBEEIIAJBA3EiBhtqSQ0HIAZBACAEQSdqIgIgA0kbDQggFxCiAiAkRQ0AIBZBBGsoAgAiA0F4cSIGIARBBEEIIANBA3EiBBtqSQ0HIARBACACIAZJGw0DIBYQogILIAkgLGohLCAuICogLksiBGohLiAEDQEMBAsLDAQLDAQLIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMAQsgABDUASIDDQBBACEDCyABQYABaiQAIAMPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuDOAM3fwN9AX4jAEGAAWsiASQAAkACQAJAIAAoAsQBIgJB/x9NBEAgAUEANgJAIAFBATYCNCABQfCywQA2AjAgAUIENwI4IAFBMGoQkgchAwwBCyABIAAoAsABIgMtAAAiBDoABiABIAMtAAEiBjoAByAEQQEgBhsEQCABQQI2AjQgAUHAssEANgIwIAFCAjcCPCABQoCAgIDwBCI7IAFBB2qthDcDECABIDsgAUEGaq2ENwMIIAEgAUEIajYCOCABQTBqEJIHIQMMAQsgA0EEaigAACEqIAMoABAhDSABIAMvABQiBDYCHCAEQQNPBEAgAUEBNgI0IAFBmLLBADYCMCABQgE3AjwgASABQRxqrUKAgICAEIQ3AwggASABQQhqNgI4IAFBMGoQkgchAwwBCyABIANBJGooAAAiBkGAgID+eyAGQf////8HcRs2AiAgASADKAAoIgZBgICA/gMgBkH/////B3EbNgIkIARBKGxBrKrBAGohECACQYAga0EKdkEBaiEUQQAhBCAqQQp0QYAgaiIrIQICQAJAAkADQCAEICpGDQEgFCAEQQFqIgRGDQIgHiADQaggai8AACIGSyEIIB4gBiAIGyEeIAIgA0GEIGooAAAgECgCCCAQKAIAIBAoAgRqaiAGQQNNBH8gBkECdCgCpKtBBSAJCyAQKAIQbGpBBGpsIAJqIANBjCBqKAAAIANBlCBqLwAAbGogA0GkIGooAABBAnRqIgJNIANBgAhqIQMNAAsgAUEANgJAIAFBATYCNCABQfSxwQA2AjAgAUIENwI4IAFBMGoQkgchAwwDCyABQQA6ADggASAeNgI0IAEgDTYCMCAAIAFBMGoQpQQgKkUNAUGAICEeQQEhLgJAA0AgHiIEQYAIaiIeIAAoAsQBIgNLBEAgAUEANgJAIAFBATYCNCABQdSxwQA2AjAgAUIENwI4IAFBMGoQkgchAwwFCyAAKALAASIGIARqIgIoABgiEUUEQCAQKAIkIRELIAIoAAQhCUEAIQQgECgCCCAQKAIAIBAoAgRqaiACLwAoIiJBA00EfyAiQQJ0KAKkq0EFIAQLIBAoAhBsakEEaiI1rSAJrX4iO0IgiFBFBEAgAUEANgJAIAFBATYCNCABQdCrwQA2AjAgAUIENwI4IAFBMGoQkgchAwwFCwJAAkACQAJ/AkAgAyArIgQgAigAJCIwQQJ0IgggAigADCINIAIvABRsamoiFCA7pyIHaiIrTwRAIAIqABAhOCACKAAIIS8gAigAACEJIAIoACAhHCANDQFBAAwCCyABQQA2AkAgAUEBNgI0IAFBmLHBADYCMCABQgQ3AjggAUEwahCSByEDDAkLIAQgCGoiAiANQQxsaiADSw0BIA1BA2whHyACIAZqCyEjIBQgK00EQAJAIAlBA2wiDUH/////A0sNACAJQQxsIgJB/f///wdPDQACQAJAAkACQAJAAn8gAkUEQEEEIRZBBCEXQQAMAQsgAhBxIhZFDQEgFkEEay0AAEEDcUUgAkVyRQRAIBZBACAC/AsACyACEHEiF0UNASAXQQRrLQAAQQNxRSACRXJFBEAgF0EAIAL8CwALIA0LISQgCUECdCIOQf////8DSw0EIAlBBHQiA0H9////B08NBEEEIRhBACElQQAhJkEEIRUgAwRAIAMQcSIVRQ0BIBVBBGstAABBA3FFIANFckUEQCAVQQAgA/wLAAsgDiEmCyACBEAgAhBxIhhFDQEgGEEEay0AAEEDcUUgAkVyRQRAIBhBACAC/AsACyANISULIAlB/////wNLIA5B/f///wdPcg0DQQQhD0EAISBBACEnQQQhGiAOBEAgDhBxIhpFDQEgGkEEay0AAEEDcUUgDkVyRQRAIBpBACAO/AsACyAJIScLAkACfwJAAkAgIkUEQEEAIRJBACEdQQQhCgwBCyAJQQlsIhJB/////wNLDQYgCUEkbCICQf3///8HTw0GQQQhCkEAIR0gAgRAIAIQcSIPRQ0FIA9BBGstAABBA3FFIAJFckUEQCAPQQAgAvwLAAsgEiEgCyAiQQFHDQELQQAhCEEAIShBBCEZQQAhG0EAIS1BAAwBCyAJQQ9sIghB/////wNLDQMgCUE8bCICQf3///8HTw0DQQQhGUEAISggAgRAIAIQcSIKRQ0DIApBBGstAABBA3FFIAJFckUEQCAKQQAgAvwLAAsgCCEdCyAiQQNJBEBBASEtQQAhG0EADAELIAlBFWwiG0H/////A0sNASAJQdQAbCICQf3///8HTw0BAn8gAkUEQEEADAELIAIQcSIZRQ0DIBlBBGstAABBA3FFIAJFckUEQCAZQQAgAvwLAAsgGwshKEEBIS1BAQshMSABKAIcBH0gOEMAAAA/lCARs5UFQwAAAAALITogCUUNCiAEIAZqITYgBiAUaiEMQQEhA0EAISEgGSERQQAhBCAcIgYgL2wiNyETA0AgAyEUIAEgBCA1bCIDNgIoAkAgBCA3TwRAIDBFBEAgBiECDAILIDAgBiAcayICQQAgAiAGTRsiAk0EQCAGIQIMAgsgNiACQQJ0aigCACATaiICIARLBEAgBiECDAILIAIhEyAGQQFqIgIhBgwBCyAvBEAgBCAvbiECDAELQfitwQAQgQgACwJAAkACQAJAAn0CQAJAIAEoAhxFBEAgA0F7TSADQQRqIAdNcQ0BIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBAsgA0F9TSADQQJqIAdNcQ0BIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMAwsgAyAMaioAAAwBCyA6IAMgDGovAACzIBAoAiSzk5RDAAAAACE4AkAgI0UNACACQQNsIgMgH08NACAjIANBAnRqKgIAITgLIDiSCyE4An0CQAJAAkAgDSAEQQNsIgNLBEAgFiADQQJ0IjJqIDg4AgAgASgCKCEFIAEoAhwNASAFQQRqIgtBe00gBUEIaiAHTXENAiABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAULIAMgDUGIrsEAEIwHAAsgBUECaiILQX1NIAVBBGogB01xDQEgAUEANgJAIAFBATYCNCABQcjbwQA2AjAgAUIENwI4IAFBMGoQkgchAwwDCyALIAxqKgAADAELIDogCyAMai8AALMgECgCJLOTlEMAAAAAITgCQCAjRQ0AIAJBA2xBAWoiBSAfTw0AICMgBUECdGoqAgAhOAsgOJILITgCfQJAAkACQCANIANBAWoiBUsEQCAWIAVBAnQiM2ogODgCACABKAIoIQUgASgCHA0BIAVBCGoiAkF7TSAFQQxqIAdNcQ0CIAFBADYCQCABQQE2AjQgAUHI28EANgIwIAFCBDcCOCABQTBqEJIHIQMMBQsgBSANQZiuwQAQjAcACyAFQQRqIgtBfU0gBUEGaiAHTXENASABQQA2AkAgAUEBNgI0IAFByNvBADYCMCABQgQ3AjggAUEwahCSByEDDAMLIAIgDGoqAAAMAQsgOiALIAxqLwAAsyAQKAIks5OUQwAAAAAhOAJAICNFDQAgAkEDbEECaiICIB9PDQAgIyACQQJ0aioCACE4CyA4kgshOAJAIA0gA0ECaiICSwRAIBYgAkECdCI0aiA4OAIAIAFBMGoiBSAMIAcgASgCKCAQKAIUaiICIAEoAhwQuwQgASgCNCEDIAEoAjANAiAXIDJqIAM2AgAgBSAMIAdBAkEEIAEoAhwiAxsgAmogAxC7BCABKAI0IQMgASgCMA0CIBcgM2ogAzYCACAFIAwgByACQQRBCCABKAIcIgIbaiACELsEIAEoAjQhAyABKAIwDQIgFyA0aiADNgIAIAUgDCAHIAEoAiggECgCGGoiCyABKAIcELsEIAEoAjQhAyABKAIwDQIgBSAMIAdBAkEEIAEoAhwiAhsgC2ogAhC7BCABKAI0IQIgASgCMEUNASACIQMMAgsgAiANQaiuwQAQjAcACyABQTBqIAwgB0EEQQggASgCHCIFGyALaiAFELsEIAEoAjQhBSABKAIwBEAgBSEDDAELIAFBMGogDCAHIAtBBkEMIAEoAhwiCxtqIAsQuwQgASgCNCELIAEoAjAEQCALIQMMAQsCQAJAAkACQAJAAkACQAJAAkACQCAOIARBAnQiKUsEQCAVIClBAnRqIAI2AgAgKUEBciICIA5PDQEgFSACQQJ0aiAFNgIAIClBAnIiAiAOTw0CIBUgAkECdGogCzYCACApQQNyIgIgDk8NAyAVIAJBAnRqIAM2AgAgASgCKCAQKAIcaiICIAdPDQQgGCAyaiACIAxqLQAAs0MAAH9DlTgCACACQQFqIgMgB08NBSAYIDNqIAMgDGotAACzQwAAf0OVOAIAIAJBAmoiAyAHTw0GIBggNGogAyAMai0AALNDAAB/Q5U4AgAgAkEDaiICIAdPDQcgBCAJTw0IIBogKWogAiAMai0AALNDAAB/Q5U4AgAgIkUNDiABIBAoAiA2AiwgASAHNgJEIAEgDDYCQCABIBA2AjggASABQSRqNgJMIAEgAUEgajYCSCABIAFBHGo2AjwgASABQSxqNgI0IAEgAUEoajYCMCABQQhqIgUgAUEwaiILQQAQzQMgASgCDCEDIAEoAggNCyAEQQlsIgIgEk8NDSAPIAJBAnRqIAM2AgAgBSALQQMQzQMgASgCDCEDIAEoAggNCyASIAJBAWoiBU0EQCAFIQIMDgsgDyAFQQJ0aiADNgIAIAFBCGogAUEwakEGEM0DIAEoAgwhAyABKAIIDQsgEiACQQJqIgVNBEAgBSECDA4LIA8gBUECdGogAzYCACABQQhqIAFBMGpBARDNAyABKAIMIQMgASgCCA0LIBIgAkEDaiIFTQRAIAUhAgwOCyAPIAVBAnRqIAM2AgAgAUEIaiABQTBqQQQQzQMgASgCDCEDIAEoAggNCyASIAJBBGoiBU0EQCAFIQIMDgsgDyAFQQJ0aiADNgIAIAFBCGogAUEwakEHEM0DIAEoAgwhAyABKAIIDQsgEiACQQVqIgVNBEAgBSECDA4LIA8gBUECdGogAzYCACABQQhqIAFBMGpBAhDNAyABKAIMIQMgASgCCA0LIBIgAkEGaiIFTQRAIAUhAgwOCyAPIAVBAnRqIAM2AgAgAUEIaiABQTBqQQUQzQMgASgCDCEDIAEoAggNCyASIAJBB2oiBU0EQCAFIQIMDgsgDyAFQQJ0aiADNgIAIAFBCGogAUEwakEIEM0DIAEoAgwhAyABKAIIDQsgAkEIaiICIBJPDQ0gDyACQQJ0aiADNgIAIC0NCQwKCyApIA5BuK7BABCMBwALIAIgDkHIrsEAEIwHAAsgAiAOQdiuwQAQjAcACyACIA5B6K7BABCMBwALIAIgB0H4rsEAEIwHAAsgAyAHQYivwQAQjAcACyADIAdBmK/BABCMBwALIAIgB0Gor8EAEIwHAAsgBCAJQbivwQAQjAcACyABQQhqIgIgAUEwaiIFQQkQzQMgASgCDCEDIAEoAggNASAEQQ9sIgQgCE8NAiAKIARBAnRqIAM2AgAgAiAFQQ4QzQMgASgCDCEDIAEoAggNASAIIARBAWoiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakETEM0DIAEoAgwhAyABKAIIDQEgCCAEQQJqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBChDNAyABKAIMIQMgASgCCA0BIAggBEEDaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQQ8QzQMgASgCDCEDIAEoAggNASAIIARBBGoiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakEUEM0DIAEoAgwhAyABKAIIDQEgCCAEQQVqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBCxDNAyABKAIMIQMgASgCCA0BIAggBEEGaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQRAQzQMgASgCDCEDIAEoAggNASAIIARBB2oiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakEVEM0DIAEoAgwhAyABKAIIDQEgCCAEQQhqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBDBDNAyABKAIMIQMgASgCCA0BIAggBEEJaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQREQzQMgASgCDCEDIAEoAggNASAIIARBCmoiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakEWEM0DIAEoAgwhAyABKAIIDQEgCCAEQQtqIgJNBEAgAiEEDAMLIAogAkECdGogAzYCACABQQhqIAFBMGpBDRDNAyABKAIMIQMgASgCCA0BIAggBEEMaiICTQRAIAIhBAwDCyAKIAJBAnRqIAM2AgAgAUEIaiABQTBqQRIQzQMgASgCDCEDIAEoAggNASAIIARBDWoiAk0EQCACIQQMAwsgCiACQQJ0aiADNgIAIAFBCGogAUEwakEXEM0DIAEoAgwhAyABKAIIDQEgBEEOaiIEIAhPDQIgCiAEQQJ0aiADNgIACyAxRQ0DQQAhBCAhIQIDQCABQQhqIAFBMGogBEHIr8EAaigCABDNAyABKAIMIQMgASgCCA0BIAIgG0kEQCAEIBFqIAM2AgAgAkEBaiECIARBBGoiBEHUAEYNBQwBCwsgAiAbQZywwQAQjAcACwJAICgEQCAZQQRrKAIAIgBBeHEiBCAoQQJ0IgJBBEEIIABBA3EiABtqSQ0WIABBACAEIAJBJ2pLGw0XIBkQogILIB0EQCAKQQRrKAIAIgBBeHEiBCAdQQJ0IgJBBEEIIABBA3EiABtqSQ0WIABBACAEIAJBJ2pLGw0XIAoQogILICAEQCAPQQRrKAIAIgBBeHEiBCAgQQJ0IgJBBEEIIABBA3EiABtqSQ0WIABBACAEIAJBJ2pLGw0XIA8QogILICcEQCAaQQRrKAIAIgBBeHEiBCAnQQJ0IgJBBEEIIABBA3EiABtqSQ0WIABBACAEIAJBJ2pLGw0XIBoQogILICUEQCAYQQRrKAIAIgBBeHEiBCAlQQJ0IgJBBEEIIABBA3EiABtqSQ0WIABBACAEIAJBJ2pLGw0XIBgQogILICYEQCAVQQRrKAIAIgBBeHEiBCAmQQJ0IgJBBEEIIABBA3EiABtySQ0WIABBACAEIAJBJ2pLGw0XIBUQogILICRFDRQgF0EEaygCACIAQXhxIgQgJEECdCICQQRBCCAAQQNxIgAbakkNFSAAQQAgBCACQSdqSxsNFiAXEKICICRFDRQgFkEEaygCACIAQXhxIgRBBEEIIABBA3EiABsgAmpJDRUgAEEAIAQgAkEnaksbDQAgFhCiAgwUCwwVCyAEIAhBrLDBABCMBwALIAIgEkG8sMEAEIwHAAsgEUHUAGohESAhQRVqISEgFCAJIBRLIgJqIQMgFCEEIAINAAsgCSEDICwhBAwJC0GorMEAEP8HCwALQZiswQAQ/wcAC0GIrMEAEP8HAAtB+KvBABD/BwALQeirwQAQ/wcAC0HYq8EAEP8HAAsgFCArIANBzLDBABDqBwALIAFBADYCQCABQQE2AjQgAUH4sMEANgIwIAFCBDcCOCABQTBqEJIHIQMMBgsCQAJAAkACQAJAAkACQAJAAkACQANAIAQgLGsiAkEDbCIhIA1NBEBBgIAEIAMgA0GAgARPGyIGQQNsIhQgDSAhayIRSw0CIAIgCUsNAyAGIAkgAmsiEUsNBCAOIAJBAnQiEUkNBSAGQQJ0IgUgDiARayIcSw0GQQAhH0EEIQtBBCEHQQAhHCAiBEAgEiACQQlsIhNJDQggBkEJbCIcIBIgE2siB0sNCSAPIBNBAnRqIQcLAn8CQAJAIC0EQCAIIAJBD2wiE0kNASAGQQ9sIh8gCCATayILSw0PIAogE0ECdGohCwsgMQ0BQQAhAkEEDAILIBMgCCAIQeiswQAQ6gcACyAbIAJBFWwiE0kNCiAGQRVsIgIgGyATayIMSw0LIBkgE0ECdGoLIRMgAUIENwJ4IAFCAjcCcCABIAI2AmwgASATNgJoIAEgHzYCZCABIAs2AmAgASAcNgJcIAEgBzYCWCABIAU2AlQgASAVIBFBAnRqNgJQIAEgFDYCTCABIBcgIUECdCICajYCSCABIBQ2AkQgASACIBhqNgJAIAEgBjYCPCABIBEgGmo2AjggASAUNgI0IAEgAiAWajYCMCAAIAQgBiABQTBqEJcBIAQgBmohBCADIAZrIgMNAQwMCwsgISANIA1B6K3BABDqBwALQQAgFCARQditwQAQ6gcACyACIAkgCUHIrcEAEOoHAAtBACAGIBFBuK3BABDqBwALIBEgDiAOQaitwQAQ6gcAC0EAIAUgHEGYrcEAEOoHAAsgEyASIBJBiK3BABDqBwALQQAgHCAHQfiswQAQ6gcACyATIBsgG0HIrMEAEOoHAAtBACACIAxBuKzBABDqBwALQQAgHyALQdiswQAQ6gcACwJAICgEQCAZQQRrKAIAIgRBeHEiAiAoQQJ0IgNBBEEIIARBA3EiBBtqSQ0BIARBACACIANBJ2pLGw0IIBkQogILIB0EQCAKQQRrKAIAIgRBeHEiAiAdQQJ0IgNBBEEIIARBA3EiBBtqSQ0HIARBACACIANBJ2pLGw0IIAoQogILICAEQCAPQQRrKAIAIgRBeHEiAiAgQQJ0IgNBBEEIIARBA3EiBBtqSQ0HIARBACACIANBJ2pLGw0IIA8QogILICcEQCAaQQRrKAIAIgRBeHEiAiAnQQJ0IgNBBEEIIARBA3EiBBtqSQ0HIARBACACIANBJ2pLGw0IIBoQogILICUEQCAYQQRrKAIAIgRBeHEiAiAlQQJ0IgNBBEEIIARBA3EiBBtqSQ0HIARBACACIANBJ2pLGw0IIBgQogILICYEQCAVQQRrKAIAIgRBeHEiAiAmQQJ0IgNBBEEIIARBA3EiBBtySQ0HIARBACACIANBJ2pLGw0IIBUQogILAkAgJEUNACAXQQRrKAIAIgJBeHEiAyAkQQJ0IgRBBEEIIAJBA3EiBhtqSQ0HIAZBACAEQSdqIgIgA0kbDQggFxCiAiAkRQ0AIBZBBGsoAgAiA0F4cSIGIARBBEEIIANBA3EiBBtqSQ0HIARBACACIAZJGw0DIBYQogILIAkgLGohLCAuICogLksiBGohLiAEDQEMBAsLDAQLDAQLIAFBADYCQCABQQE2AjQgAUHUscEANgIwIAFCBDcCOCABQTBqEJIHIQMMAQsgABCjASIDDQBBACEDCyABQYABaiQAIAMPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAu3OwMafwV+AnsjAEGAA2siAyQAIANBADYCFCADQoCAgIDAADcCDCADQYCAgIB4NgIYIANBADYCYCADQQA7AVwgAyACNgJYIANBADYCVCADQQE6AFAgA0EKNgJMIAMgAjYCSCADQQA2AkQgAyACNgJAIAMgATYCPCADQQo2AjggA0EkaiEQIANBHGoiEkEYaiETAkACQAJAAkACQAJ/AkACQANAAkAgAygCPCECIANB4AJqIANBOGoQ/QICQAJ/IAMoAuACQQFGBEAgAygCVCEEIAMgAygC6AIiATYCVCACIARqIQcgASAEawwBCyADLQBdDQIgA0EBOgBdAkAgAy0AXEEBRgRAIAMoAlghASADKAJUIQIMAQsgAygCWCIBIAMoAlQiAkYNAwsgAygCPCACaiEHIAEgAmsLIgVFDQAgByAFQQFrIgJqLQAAQQpHDQAgBUECayIBIAIgAgR/IAdBACABIAdqLQAAQQ1GGwVBAAsiARshBSABIAcgARshBwsgB0UNACADIAMoAmAiCkEBajYCYCAFIAdqIQRBACEBIAchAgJAAkAgBUUEQEEAIQgMAQsDQCABIggCfyACIgEsAAAiBkEATgRAIAZB/wFxIQUgAUEBagwBCyABLQABQT9xIQIgBkEfcSEFIAZBX00EQCAFQQZ0IAJyIQUgAUECagwBCyABLQACQT9xIAJBBnRyIQIgBkFwSQRAIAIgBUEMdHIhBSABQQNqDAELIAVBEnRBgIDwAHEgAS0AA0E/cSACQQZ0cnIhBSABQQRqCyICIAFraiEBAkAgBUEgRiAFQQlrQQVJcg0AIAVBgAFJDQICQAJAAkACQCAFQQh2IgZBFmsOGwEGBgYGBgYGBgYCBgYGBgYGBgYGBgYGBgYGAwALIAYNBSAFQf8BcS0AxKFHQQFxRQ0FDAMLIAVBgC1HDQQMAgsgBUH/AXEtAMShR0ECcUUNAwwBCyAFQYDgAEcNAgsgAiAERw0AC0EAIQhBACEBDAELIAIgBEYNAANAAkAgBCIGQQFrIgQsAAAiBUEASARAIAVBP3ECfyAGQQJrIgQtAAAiCcAiBUFATgRAIAlBH3EMAQsgBUE/cQJ/IAZBA2siBC0AACIJwCIFQUBOBEAgCUEPcQwBCyAFQT9xIAZBBGsiBC0AAEEHcUEGdHILQQZ0cgtBBnRyIQULAkAgBUEgRiAFQQlrQQVJcg0AIAVBgAFJDQECQAJAAkACQCAFQQh2IglBFmsOGwAFBQUFBQUFBQUBBQUFBQUFBQUFBQUFBQUFAgMLIAVBgC1GDQMMBAsgBUH/AXEtAMShR0ECcQ0CDAMLIAVBgOAARw0CDAELIAkNASAFQf8BcS0AxKFHQQFxRQ0BCyACIARHDQEMAgsLIAEgAmsgBmohAQsgAyABIAhrIgw2AmwgAyAHIAhqIhQ2AmgCQAJAIApFBEAgDEEDRgRAIBRBkNDHAEEDENsHRQ0CCyADQQA2AvACIANBATYC5AIgA0Go0McANgLgAiADQgQ3AugCIANB4AJqEJUHIQEgAEGAgICAeDYCrAEgACABNgIADAgLIAwNAQsgAy0AXUUNAgwBCyABIAdqIQlBACENQQAhAkEAIQogFCIEIQFBACEGQQAhBwNAIAYhCAJ/AkAgB0EBcUUEQEEBIQcgASAJRkUEQANAIAIiBQJ/IAEiAiwAACIGQQBOBEAgBkH/AXEhBCABQQFqDAELIAItAAFBP3EhASAGQR9xIQQgBkFfTQRAIARBBnQgAXIhBCACQQJqDAELIAItAAJBP3EgAUEGdHIhASAGQXBJBEAgASAEQQx0ciEEIAJBA2oMAQsgBEESdEGAgPAAcSACLQADQT9xIAFBBnRyciEEIAJBBGoLIgEgAmtqIQIgBEEJayIGQRdNQQBBASAGdEGfgIAEcRsNAwJAIARBgAFJDQACQAJAAkACQCAEQQh2IgZBFmsOGwAEBAQEBAQEBAQBBAQEBAQEBAQEBAQEBAQEAgMLIARBgC1GDQcMAwsgBEH/AXEtAMShR0ECcQ0GDAILIARBgOAARg0FDAELIAYNACAEQf8BcS0AxKFHQQFxDQQLIAEgCUcNAAsgCSEEC0EBIQ0gCSEBIAwhBSAIDAILQQBBAEGw0McAEIwHAAsgASEEIAIhCkEAIQcgAgshBiAFIAhGDQALQSAQcSIRRQ0CIBEgBSAIazYCBCARIAggFGo2AgBBASEOIANBATYC6AIgAyARNgLkAiADQQQ2AuACA0AgCiEBIA0hBwNAIAEhBgJ/AkAgB0EBcUUEQEEBIQcgBCAJRwRAA0AgAiIFAn8gBCICLAAAIghBAE4EQCAIQf8BcSEBIAJBAWoMAQsgAi0AAUE/cSEBIAhBH3EhBCAIQV9NBEAgBEEGdCABciEBIAJBAmoMAQsgAi0AAkE/cSABQQZ0ciEBIAhBcEkEQCABIARBDHRyIQEgAkEDagwBCyAEQRJ0QYCA8ABxIAItAANBP3EgAUEGdHJyIQEgAkEEagsiBCACa2ohAiABQQlrIghBF01BAEEBIAh0QZ+AgARxGw0DAkAgAUGAAUkNAAJAAkACQAJAIAFBCHYiCEEWaw4bAAQEBAQEBAQEBAEEBAQEBAQEBAQEBAQEBAQCAwsgAUGALUYNBwwDCyABQf8BcS0AxKFHQQJxDQYMAgsgAUGA4ABGDQUMAQsgCA0AIAFB/wFxLQDEoUdBAXENBAsgBCAJRw0ACwtBASENIAwhBSAGDAILIAMoAuACIQgCQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQCADKALkAiILKAIEQQZrDgUAAQIKAwoLIAsoAgBBqajHAEEGENsHIA5BA0dyDQkCQCALKAIMQRRHDQAgCygCCEHA0McAQRQQ2wcNACALKAIUQQNGBEBBASEVIAsoAhBB1NDHAEEDENsHRQ0NCyADQQE2AuQCIANB8NDHADYC4AIgA0IBNwLsAiADIAtBEGqtQoCAgIAghDcD0AIgAyADQdACajYC6AIgA0H8AGoiASADQeACahCxBiABEJAHDAsLIANBATYC5AIgA0GQ0ccANgLgAiADQgE3AuwCIAMgC0EIaq1CgICAgCCENwPQAiADIANB0AJqNgLoAiADQfAAaiIBIANB4AJqELEGIAEQkAcMCgsgCygCACIBQfeVxwBBBxDbB0UNCiABQZjRxwBBBxDbByAOQQNHcg0IIAMoAhghAiADQYCAgIB4NgIYIAJBgICAgHhHBEAgAygCFCIBIAMoAgxGBEAgA0EMakGg0ccAEIMGCyADKAIQIAFBBXRqIgQgAjYCACAEIBIpAgA3AgQgBEEMaiASQQhq/QACAP0LAgAgBEEcaiATKAIANgIAIAMgAUEBajYCFAsgCygCECECIAsoAgwhDCALKAIIIQZBACEEAkACQAJAIAsoAhQiAQ4CCQABC0EBIQQgAi0AAEEraw4DCAEIAQsgAi0AAEErRgRAIAFBAWshBCACQQFqIQIgAUEKSQ0BDAcLIAEiBEEJTw0GC0EAIQEDQCACLQAAQTBrIgVBCUsEQEEBENEHDAsLIAJBAWohAiAFIAFBCmxqIQEgBEEBayIEDQALDAcLIAsoAgApAABC8OS9g9fMnLr5AFINByAOQQFGDQIgCygCDCIBQQRHDQEgCygCCCgAAEHs0s2jB0cNASADQQA2AvACIANBATYC5AIgA0Hg0ccANgLgAiADQgQ3AugCIANB4AJqEJUHDAgLIAsoAgBBrNLHAEEKENsHDQYgCEUNDQJAIAtBBGsoAgAiAUF4cSIEIAhBA3QiAkEEQQggAUEDcSIBG2pPBEAgAUEAIAQgAkEnaksbDQEgCxCiAgwPCwwWCwwWCyAOQQNHDQAgAygCGEGAgICAeEcNASADQQA2AvACIANBATYC5AIgA0GE0scANgLgAiADQgQ3AugCIANB4AJqEJUHDAYLIANBATYC5AIgA0Gk0scANgLgAiADQgE3AuwCIAMgA0HoAGqtQoCAgIAghDcD0AIgAyADQdACajYC6AIgA0GIAWoiASADQeACahCxBiABEJAHDAULIAMgCygCCCICNgLAAiADIAE2AsQCAn8CQAJAAkACQAJAAkACQAJAAkAgAUEDaw4EAwABAgcLIAIoAABB49CFkwdHDQNBACEEQQEMCAsgAkHU5ccAQQUQ2wdFBEBBASEEQQEMCAsgAkHZ5ccAQQUQ2wcNA0ECIQRBAgwHCyACQd7lxwBBBhDbBw0DQQMhBEECDAYLIAJB5OXHAEEDENsHDQNBBCEEQQQMBQsgAigAAEH10rmjB0cNAkEFIQRBBAwECyACQeflxwBBBRDbBw0BQQYhBEEEDAMLIAJB7OXHAEEGENsHRQ0BCyADIANBwAJqrUKAgICAIIQ3A8gCIANCATcC7AIgA0EBNgLkAiADQZTmxwA2AuACIAMgA0HIAmo2AugCIANB0AJqIgEgA0HgAmoQ7AMgARCQBwwGC0EHIQRBCAshASADIAEgAygCNCIFajYCNCALKAIUIgdBAE4EQCALKAIQIQECQCAHRQRAQQEhDAwBCyAHEHEiDEUNDgsgBwRAIAwgASAH/AoAAAsgAygCLCIGIAMoAiRGBEAjAEEgayIPJAACQCAQKAIAIglBs+bMGUsEf0EABUEEIAlBAXQiASABQQRNGyICQRRsIQEgDyAJBH8gDyAJQRRsNgIcIA8gECgCBDYCFEEEBUEACzYCGCAPQQhqQQQgASAPQRRqEIUHIA8oAghBAUcNASAPKAIQIRAgDygCDAsgEEHA5ccAEJMJAAsgDygCDCEBIBAgAjYCACAQIAE2AgQgD0EgaiQACyADKAIoIAZBFGxqIgEgBDoAECABIAU2AgwgASAHNgIIIAEgDDYCBCABIAc2AgAgAyAGQQFqNgIsDAYLQdiayAAQ/wcAC0EAIQEgBCEFA0AgBUUNAiACLQAAQTBrIglBCUsEQEEBENEHDAULQQIhBCABrUIKfiIdQiCIpw0BIAJBAWohAiAFQQFrIQUgCSAdp2oiASAJTw0ACwsgBBDRBwwCCyAMQQBOBEACQCAMRQRAQQEhAgwBCyAMEHEiAkUNCwsgDARAIAIgBiAM/AoAAAsgA0EANgI0IAMgATYCMCADQQA2AiwgA0KAgICAwAA3AiQgAyAMNgIgIAMgAjYCHCADIAw2AhgMAwtB2JrIABD/BwALIANBATYC5AIgA0Gw08cANgLgAiADQgE3AuwCIAMgA0HoAGqtQoCAgIAghDcD0AIgAyADQdACajYC6AIgA0GUAWoiASADQeACahCxBiABEJAHCyEBIABBgICAgHg2AqwBIAAgATYCACAIRQ0KIAsgCEEDdEEEEKIHDAoLAkAgCARAIAtBBGsoAgAiAUF4cSIEIAhBA3QiAkEEQQggAUEDcSIBG2pJDQ4gAUEAIAQgAkEnaksbDQEgCxCiAgsgAy0AXUUNBgwFCwwNCyACIQpBACEHIAILIQEgBSAGRg0ACyADKALgAiAORgRAIANB4AJqIA5BAUEEQQgQpAUgAygC5AIhEQsgESAOQQN0aiIBIAUgBms2AgQgASAGIBRqNgIAIAMgDkEBaiIONgLoAgwACwALCyADKAIYIQIgA0GAgICAeDYCGCACQYCAgIB4RwRAIAMoAhQiASADKAIMRgRAIANBDGpBuNLHABCDBgsgAygCECABQQV0aiIEIAI2AgAgBCASKQIANwIEIARBDGogEkEIav0AAgD9CwIAIARBHGogEkEYaigCADYCACADIAFBAWo2AhQLIBVBAXFFBEAgA0EANgJIIANBATYCPCADQeDSxwA2AjggA0IENwJAIANBOGoQlQchASAAQYCAgIB4NgKsASAAIAE2AgAMBQsCfwJAIAMoAhQiFkGTyaQSSQRAIAMoAhAhBCADKAIMIRoCQCAWRQRAQQAhFkEIIQlBACEIDAELIBZBOGwQcSIJRQ0EIAQgFkEFdGohFCADQThqrSEgQQAhCCAEIQIDQCADQdgCaiIPIAJBCGooAgA2AgAgAyACKQIANwPQAiACKAIUIQcgAigCECEBIAIoAgwhGyACKAIYIRIgAigCHCEMIAMCfkHAu8kALQAABEBB0LvJACkDACEeQci7yQApAwAMAQsgA0EAOgA4QQEQcSIKRQ0GIApBBGsoAgAiBkF4cSIFQQVBCSAGQQNxIg0bSQ0MIA1BACAFQSlPGw0NIAoQogJBwLvJAEEBOgAAQdC7yQAgCq0iHjcDACAgCyIdNwNIQci7yQAgHUIBfDcDACADIB43A1AgA0HwmsgA/QADAP0LAzgCQCAHRQ0AIAEgB0EUbGohECADQThqIAcgA0HIAGoiBxC7ASABIQUDQCAFLQAQIRwgBSgCDCELIAUoAgAhFSADKQNIIAMpA1AgBSgCBCIRIAUoAggiGBCVBCEdIAMoAkBFBEAgA0E4akEBIAcQuwELIAVBFGohBSADKAI8IhcgHadxIQ0gHUIZiCIhQv8Ag0KBgoSIkKDAgAF+IR5BACEOIAMoAjghCkEAIQYDQAJ/AkACQAJAIAogDWopAAAiHyAehSIdQn+FIB1CgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiHVBFBEADQCAKIB16p0EDdiANaiAXcUFsbGoiGUEMaygCACAYRgRAIBEgGUEQaygCACAYENsHRQ0DCyAdQgF9IB2DIh1QRQ0ACwsgH0KAgYKEiJCgwIB/gyEdIA5FBEAgHVANAyAdeqdBA3YgDWogF3EhEwtBASAdIB9CAYaDUA0DGiAKIBNqLAAAIg1BAE4EQCAKIAopAwBCgIGChIiQoMCAf4N6p0EDdiITai0AACENCyAKIBNqICGnQf8AcSIGOgAAIAogE0EIayAXcWpBCGogBjoAACAKIBNBbGxqIgpBFGsgFTYCACAKQRBrIBE2AgAgCkEMayAYNgIAIApBCGsgCzYCACAKQQRrIBw6AAAgAyADKAJEQQFqNgJEIAMgAygCQCANQQFxazYCQAwBCyAZQQRrIBw6AAAgGUEIayALNgIAIBVFDQAgEUEEaygCACIGQXhxIg1BBEEIIAZBA3EiChsgFWpJDREgCkEAIA0gFUEnaksbDRIgERCiAgsgBSAQRw0DDAQLQQALIQ4gBkEIaiIGIA1qIBdxIQ0MAAsACwALIBsEQCABQQRrKAIAIgVBeHEiCiAbQRRsIgZBBEEIIAVBA3EiBRtqSQ0MIAVBACAKIAZBJ2pLGw0NIAEQogILIANB8AJqIANByABq/QADACIi/QsDACADIAP9AAM4IiP9CwPgAiAJIAhBOGxqIgFBEGogIv0LAwAgASAj/QsDACABIAw2AiQgASASNgIgIAEgAykD0AI3AiggAUEwaiAPKAIANgIAIAhBAWohCCACQSBqIgIgFEcNAAsLAkAgGgRAIARBBGsoAgAiAUF4cSIFIBpBBXQiAkEEQQggAUEDcSIBG3JJDQsgAUEAIAUgAkEnaksbDQEgBBCiAgsgCUE4QQAgCBsiEGohBiAJIAhBOGwiBWohD0GAgICAeCESIAhFDQIgBiEEIAkhAQNAAkAgAUEwaigCAEEGRgRAIAFBLGooAgAiAkHo0scAQQYQ2wdFDQELIAQiASAPRiICDQQgAUEAQTggAhtqIQQgAQ0BDAQLC0EGIRJBBhBxIgRFDQQgBCACKAAANgAAIARBBGogAkEEai8AADsAACABKAIgIREgASgCJCEVIANBOGogARDDAyADQegCaiADQcQAav0AAgD9CwMAIANB+AJqIANB1ABqKAIANgIAIAMgAykCPDcD4AIgBK1CgICAgOAAhCEfIAMoAjghE0EADAMLDAoLQciVxwAQ/wcAC0EBCyADQQA2AkggA0EBNgI8IANBhNPHADYCOCADQgQ3AkAgA0E4ahCVByECBEAgAEGAgICAeDYCrAEgACACNgIAIAgEQCAJIQIDQCACQShqKAIAIgUEQCACQSxqKAIAIgRBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIAVqSQ0KIABBACABIAVBJ2pLGw0LIAQQogILIAIQvwQgAkE4aiECIAhBAWsiCA0ACwsgFkUNBiAJQQRrKAIAIgBBeHEiAiAWQThsIgFBBEEIIABBA3EiABtqSQ0HIABBACACIAFBJ2pLGw0IIAkQogIMBgsgA0G4AWogA0H4AmooAgA2AgAgA0GwAWogA0HwAmopAwA3AwAgAyAD/QAD4AL9CwOgASACIAIoAgAoAgARAwAgCEUNASAGIQQgCSEBAkADQAJAIAFBMGooAgBBBUYEQCABQSxqKAIAIgJBjNPHAEEFENsHRQ0BC0GAgICAeCEHIAQiASAPRiICDQIgAUEAQTggAhtqIQQgAQ0BDAILC0EFIQdBBRBxIgRFDQEgBCACKAAANgAAIARBBGogAkEEai0AADoAACABKAIgIQwgASgCJCEUIANBgAJqIAEQwwMgBK1CgICAgNAAhCEdCyAGIQQgCSEBA0ACQCAEIQICQAJAIAFBMGooAgBBAkYEQCABQSxqKAIAIgQvAABB89ABRg0BC0GAgICAeCEOIAIgD0YiAUUNAQwCC0ECIQ5BAhBxIgJFDQMgAiAELwAAOwAAIAEoAiQhDSABKAIgIQogA0GgAmogARDDAyACrUKAgICAIIQhHgwBCyACQQBBOCABG2ohBCACIgENAQsLIANB0AFqIANBkAJq/QADAP0LAwAgA0HwAWogA0GwAmr9AAMA/QsDACADIAP9AAOAAv0LA8ABIAMgA/0AA6AC/QsD4AEgECAFayEEIAkhAQNAIAYhAgJAIAFBMGooAgBBBUcNACABQSxqKAIAQYzTxwBBBRDbBw0AQQEMBAsgAkE4aiEGIAIhASAEQThqIgRBOEcNAAtBAAwCCwALIANB0AFqIANBkAJq/QADAP0LAwAgA0HwAWogA0GwAmr9AAMA/QsDACADIAP9AAOAAv0LA8ABIAMgA/0AA6AC/QsD4AFBgICAgHghDkGAgICAeCEHQQALIQEgACAD/QADwAH9CwMAIAAgHTcCLCAAIAc2AiggACAUNgIkIAAgDDYCICAAIAP9AAPgAf0LAzggACAKNgJYIAAgDTYCXCAAIA42AmAgACAeNwJkIAAgEzYCcCAAQRBqIANB0AFq/QADAP0LAwAgAEHIAGogA0HwAWr9AAMA/QsDACAAIAg2ArQBIAAgCTYCsAEgACAWNgKsASAAIBE2AqgBIAAgHzcCnAEgACASNgKYASAAIBU2ApQBIAAgETYCkAEgACABOgC4ASAAQYwBaiADQbgBaigCADYCACAAQYQBaiADQbABaikDADcCACAAIAP9AAOgAf0LAnQMAgsgAygCGCIAQYCAgIB4Rg0AIAAEQCADKAIcIABBARCiBwsgAygCKCEAIAMoAiwiAQRAIAAhAgNAIAIoAgAiCQRAIAJBBGooAgAiBkEEaygCACIEQXhxIgVBBEEIIARBA3EiBBsgCWpJDQUgBEEAIAUgCUEnaksbDQYgBhCiAgsgAkEUaiECIAFBAWsiAQ0ACwsgAygCJCIBRQ0AIAAgAUEUbEEEEKIHCyADKAIQIQcgAygCFCIJBEBBACEMA0AgByAMQQV0aiIQKAIAIgQEQCAQKAIEIgJBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIARqSQ0EIABBACABIARBJ2pLGw0FIAIQogILIBAoAhAhACAQKAIUIgEEQCAAIQIDQCACKAIAIgoEQCACQQRqKAIAIgZBBGsoAgAiBEF4cSIFQQRBCCAEQQNxIgQbIApqSQ0GIARBACAFIApBJ2pLGw0HIAYQogILIAJBFGohAiABQQFrIgENAAsLIBAoAgwiAgRAIABBBGsoAgAiAUF4cSIEIAJBFGwiAkEEQQggAUEDcSIBG2pJDQQgAUEAIAQgAkEnaksbDQUgABCiAgsgDEEBaiIMIAlHDQALCyADKAIMIgFFDQAgB0EEaygCACIAQXhxIgIgAUEFdCIBQQRBCCAAQQNxIgAbckkNASAAQQAgAiABQSdqSxsNAiAHEKICCyADQYADaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALgDoCHn8EeyMAQSBrIg4kAAJAAkACQCADQf//A3EiAyIQQQEgBXRqQQFrIAV2IhpB//8DTQRAIAJBA0sEQCABIAEtAANBAWs6AAMgAiAQQQJ0IgxPBEAgA0ECSQ0EQQQhDSACIAxBBWsiAyACIANJG0EBaiIDQQRNDQMgAyADQQNxIgNBBCADG2siCUEEaiENIAEhAwNAIANBBGoiCCAD/VwAACAI/VwAAP1u/VoAAAAgCCEDIAlBBGsiCQ0ACwwDC0Go2cQAQS9B6NnEABDrBwALQQMgAkHo2MQAEIwHAAtB2ObIAEErIA5BH2pB2NjEAEGo+8YAEOAGAAsgDUEEayEDQQAgEEECdGshCANAIAIgA0YNAiABIANqIhNBBGoiCiATLQAAIAotAABqOgAAIAggA0EBaiIDakF8Rw0ACwsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAEQf//A3EiIEECSQ0AIAVBH3EhGyAgQQFrIQUgASAMaiEKQQAhAwNAIAMgDGoiBCACTw08IAIgA00NQCADIApqIgggASADaiITLQAAIAgtAABqOgAAIARBAWogAk8NOyADQQFqIAJPDT8gCEEBaiIYIBNBAWotAAAgGC0AAGo6AAAgBEECaiACTw06IANBAmogAk8NPiAIQQJqIhggE0ECai0AACAYLQAAajoAACAEQQNqIAJPDTkgA0EDaiACTw09IAhBA2oiAyATQQNqLQAAIAMtAABqOgAAIAQhAyAFQQFrIgUNAAsgGkUNACABQQRrIRwgDEEEayEVIAxBBGohFCABQQFqIRYgAUEDayEkIAEgEEECdCIDayEXQQAgA2shESABIAxrIgNBBWohISABQQQgDGsiGWohIiADQQFqIR0gA0EDayEeIAFBfCAMayISaiEfIBAhBUEBIQMDQCADIBBsISMgA0EBaiADIBt2IBpsISVBACETA0AgEyIDICVqQQJ0QQFyIgggB08NAyADQQFqIhMgG3QiBCAQIAQgEEkbIg0gI2pBAnQhBEEBIAMgG3QiAyADQQFNGyIPICNqQQJ0IQMCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBiAIai0AAA4ODQwLCgkIBwYFBAMCAQAOCyACIARJDUEgAyAESw1CIANBBGshCiADRQ1DIAMgAyAMayINQQRrIglJDUQgBCADayIIIAMgCWtLDUUgAyAMSQ1GIAggDEsNRyADIARGDQ0gASAKaigAACIDQRB2/REgA0EYdv0cASAm/Q0AAAAEAAAAAAAAAAAAAAAAIAP9FwAgA0EIdv0XASEmIAhBAnYhBCABIAUgD2pBAnRqIQMDQCADIAP9XAAAIAMgEmoiCEEEav1cAAAiJyAm/U4gJyAm/VFBAf1t/W79iQEiKCAI/VwAAP2JAf2RASIn/RgAQQJt/RAgJ/0YAUECbf0aASAn/RgCQQJt/RoCICf9GANBAm39GgMgKP2OAf0MAAAAAAAAAAAAAAAAAAAAAP2YAf0M/wD/AP8A/wD/AP8A/wD/AP2WASAn/Q0AAgQGAAAAAAAAAAAAAAAA/W4iJv0WA0EYdCAm/RYCQRB0ciAm/RYBQQh0ciAm/RYAcjYAACADQQRqIQMgBEEBayIEDQALDA0LIAIgBEkNOyADIARLDTwgA0EEayEIIANFDT0gAyADIAxrIglBBGsiCkkNPiADIAxJDT8gECADIAprQQJ2IgogBCADa0ECdiIDIAMgCksbIgMgAyAQSxsiBEUNDCABIAhqKAAAIgNBEHb9ESADQRh2/RwBICb9DQAAAAQAAAAAAAAAAAAAAAAgA/0XACADQQh2/RcBISYgASAFIA9qQQJ0aiEDA0AgAyAD/VwAACADIBJqIghBBGr9XAAA/YkBICb9iQH9jgEgCP1cAAD9iQH9kQH9DAAAAAAAAAAAAAAAAAAAAAD9mAH9DP8A/wD/AP8A/wD/AP8A/wD9lgEgJv0NAAIEBgAAAAAAAAAAAAAAAP1uIib9FgNBGHQgJv0WAkEQdHIgJv0WAUEIdHIgJv0WAHI2AAAgA0EEaiEDIARBAWsiBA0ACwwMCyACIARJDTIgAyAESw0zIAMgDGshCCADIAxJDTQgA0EEayEKIANFDTUgCEEEayIJIANPDTYgCEEDayINIANPDTcgCEECayILIANPDTggCEEBayIIIANPDTkgECAEIANrQQJ2IgMgAyAQSxsiBEUNCyABIApq/VwAACEmIAEgCWotAAD9DyABIA1qLQAA/RcBIAEgC2ovAAD9EP0NAAEQEQAAAAAAAAAAAAAAACEnIAEgBSAPakECdGohAwNAIAMgJiADIBFq/VwAACIoICggJ/15ICggJ/13/XH9iQEiKSApICb9DQQFBgcAAQABAAEAAQABAAH9jgEiKSApICb9DQIDAAEAAQABAAEAAQABAAH9jgH9GQBB/wdxICYgJ/15ICYgJ/13/XH9iQEiKf0ZASAp/RkAaiAm/YkBICf9iQH9kQEiJ/0ZAiAn/RgCQQ91IghzIAhraiAn/RgDQQ91IgggJ/0ZA3MgCGtqQf//A3FJ/Q9BB/1rQQf9bP1SIAP9XAAA/W4iJv0WAUEIdCAm/RYAciAm/RYDQRh0ICb9FgJBEHRycjYAACADQQRqIQMgKCEnIARBAWsiBA0ACwwLCyACIARJDSsgAyAESw0sIANBBGshCCADRQ0tIAMgAyAMayIKQQRrIglJDS4gAyAMSQ0vIAMgCkEEaiIKSQ0wIAMgCmtBAnYiCiAQIAMgCWtBAnYiCSAEIANrQQJ2IgMgAyAJSxsiAyADIBBLGyIDIAMgCksbIglFDQogASAIaigAACIDQRB2/REgA0EYdv0cASAm/Q0AAAAEAAAAAAAAAAAAAAAAIAP9FwAgA0EIdv0XASEmIAEgBSAPakECdGohAwNAIAMgA/1cAAAgAyASaiIEQQhq/VwAACInIARBBGr9XAAAIij9TiAnICj9UUEB/W39biInIAT9XAAAIiggJv1OICggJv1RQQH9bf1uIij9TiAnICj9UUEB/W39bv1uIib9FgNBGHQgJv0WAkEQdHIgJv0WAUEIdHIgJv0WAHI2AAAgA0EEaiEDIAlBAWsiCQ0ACwwKCyACIARJDScgAyAETw0JAkAgD0ECdEF/cyANQQJ0aiIEIBUgAiADIAxrQQRqIgggAiAISxtqIANrIgogDCACIAMgEWoiCCACIAhLG2ogA2siCCAIIApLGyIKIAQgCkkbQQFqIgpBEUkNACABIANqIgkgHSAEIBUgAiADIBlqIgsgAiALSxtqIANrIgsgCCAIIAtLGyIIIAQgCEkbIANqIghqSSAIIBZqIgsgAyAXaktxIAkgCCAhakkgAyAiaiALSXFyDQAgCkEPcSIIQRAgCBsiCyAEIBUgAiAZIAUgD2pBAnQiCGoiCSACIAlLG2ogCGsiCSAEIAlJGyIEIAwgAiAIIBFqIgkgAiAJSxtqIAhrIgkgBCAJSRtBf3NqIQkgASAIaiEEIAMgCiALa2ohAwNAIAQgBP0AAAAgBCARaiIIQQRq/QAAACImIAj9AAAAIif9TiAmICf9UUEB/W39bv1u/QsAACAEQRBqIQQgCUEQaiIJDQALCyADIBFqIQQgAyAFIA1qQQJ0ayEJA0AgAiAETQ0pIARBBGoiCCACTw0qIAEgA2oiCCAILQAAIAEgBGoiCEEEai0AACAILQAAakEBdmo6AAAgBEEBaiEEIANBAWohAyAJQQFqIgkNAAsMCQsgAiAESQ0jIAMgBE8NCAJAIA9BAnRBf3MgDUECdGoiBCAUIAIgAyAMa0EEayIIIAIgCEsbaiADayIKIAwgAiADIBFqIgggAiAISxtqIANrIgggCCAKSxsiCiAEIApJG0EBaiIKQRFJDQAgASADaiIJIB4gBCAUIAIgAyASaiILIAIgC0sbaiADayILIAggCCALSxsiCCAEIAhJGyADaiIIakkgCCAWaiILIAMgH2pLcSAJIAggHWpJIAMgF2ogC0lxcg0AIApBD3EiCEEQIAgbIgsgBCAUIAIgEiAFIA9qQQJ0IghqIgkgAiAJSxtqIAhrIgkgBCAJSRsiBCAMIAIgCCARaiIJIAIgCUsbaiAIayIJIAQgCUkbQX9zaiEJIAEgCGohBCADIAogC2tqIQMDQCAEIAT9AAAAIAQgEmoiCEEEav0AAAAiJiAI/QAAACIn/U4gJiAn/VFBAf1t/W79bv0LAAAgBEEQaiEEIAlBEGoiCQ0ACwsgAyASaiEEIAMgBSANakECdGshCQNAIAIgBE0NJSAEQQRqIgggAk8NJiABIANqIgggCC0AACABIARqIghBBGotAAAgCC0AAGpBAXZqOgAAIARBAWohBCADQQFqIQMgCUEBaiIJDQALDAgLIAIgBEkNHSADIARLDR4gA0EEayEIIANFDR8gAyAMayENIAMgDEkNICAEIANrIgQgDEsNISABIAhqKAAAIghBEHb9ESAIQRh2/RwBICb9DQAAAAQAAAAAAAAAAAAAAAAgCP0XACAIQQh2/RcBISYgBEFAcSIKBEAgASADaiEJIAEgDWohDSAKIQgDQEEAIQMDQCADIAlqIgsgAyANav1cAAAiJyAm/U4gC/1cAAD9biAnICb9UUEB/W39biIm/RYDQRh0ICb9FgJBEHRyICb9FgFBCHRyICb9FgByNgAAIANBBGoiA0HAAEcNAAsgDUFAayENIAlBQGshCSAIQUBqIggNAAsLIARBAnZBD3EiA0UNByADQQJ0IQQgASAKIAUgD2pBAnRqaiEDA0AgAyADIBFq/VwAACInICb9TiAD/VwAAP1uICcgJv1RQQH9bf1uIib9FgNBGHQgJv0WAkEQdHIgJv0WAUEIdHIgJv0WAHI2AAAgA0EEaiEDIARBBGsiBA0ACwwHCyACIARJDRkgAyAETw0GAkAgD0ECdEF/cyANQQJ0aiIEIBQgAiADIAxrQQRrIgggAiAISxtqIANrIgogAiADQQRrIgggAiAISxsgA2tBBGoiCCAIIApLGyIKIAQgCkkbQQFqIgpBDUkNACABIANqIgkgJCAEIBQgAiADIBJqIgsgAiALSxtqIANrIgsgCCAIIAtLGyIIIAQgCEkbIANqIghqSSAIIBZqIgsgAyAcaktxIAkgCCAeakkgAyAfaiALSXFyDQAgCkEDcSIIQQQgCBsiCyAEIBQgAiASIAUgD2pBAnQiCGoiCSACIAlLG2ogCGsiCSAEIAlJGyIEIAIgCEEEayIJIAIgCUsbIAhrQQRqIgkgBCAJSRtBf3NqIQkgCCAcaiEEIAMgCiALa2ohAwNAIAQgEWohCCAE/VwAACEmIARBBGoiBCAE/VwAACAmIAj9XAAAIif9TiAnICb9UUEB/W39bv1u/VoAAAAgCUEEaiIJDQALCyADQQRrIQQgAyASaiEJIAMgBSANakECdGshAwNAIAIgBE0NGyACIAlNDRwgASAEaiIIQQRqIgogCi0AACABIAlqLQAAIAgtAABqQQF2ajoAACAEQQFqIQQgCUEBaiEJIANBAWoiAw0ACwwGCyACIARJDRMgAyAESw0UIANBBGshCCADRQ0VIAMgAyAMayIJQQRqIgpJDRYgAyAMSQ0XIBAgAyAKa0ECdiIKIAQgA2tBAnYiAyADIApLGyIDIAMgEEsbIgRFDQUgASAIaigAACIDQRB2/REgA0EYdv0cASAm/Q0AAAAEAAAAAAAAAAAAAAAAIAP9FwAgA0EIdv0XASEmIAEgBSAPakECdGohAwNAIAMgAyARaiIIQQRq/VwAACInICb9TiAnICb9UUEB/W39biInIAj9XAAAIij9TiAD/VwAAP1uICcgKP1RQQH9bf1uIib9FgNBGHQgJv0WAkEQdHIgJv0WAUEIdHIgJv0WAHI2AAAgA0EEaiEDIARBAWsiBA0ACwwFCyACIARJDRAgAyAETw0EAkAgD0ECdEF/cyANQQJ0aiIEIBQgAiADIAxrQQRrIgggAiAISxtqIANrIgggBCAISRtBAWoiCEERSQ0AIAEgA2ogHiAEIBQgAiADIBJqIgogAiAKSxtqIANrIgogBCAKSRsgA2oiCmpJIAMgH2ogCiAWaklxDQAgCEEPcSIKQRAgChsiCyAEIBQgAiASIAUgD2pBAnQiCmoiCSACIAlLG2ogCmsiCSAEIAlJG0F/c2ohCSABIApqIQQgAyAIIAtraiEDA0AgBCAEIBJq/QAAACAE/QAAAP1u/QsAACAEQRBqIQQgCUEQaiIJDQALCyAFIA1qQQJ0IQQDQCADIBFqQQRrIgggAk8NEiABIANqIgggAyAXakEEay0AACAILQAAajoAACAEIANBAWoiA0cNAAsMBAsgAiAESQ0NIAMgBE8NAwJAIA9BAnRBf3MgDUECdGoiBCAVIAIgAyAMa0EEaiIIIAIgCEsbaiADayIIIAQgCEkbQQFqIghBEUkNACABIANqICEgBCAVIAIgAyAZaiIKIAIgCksbaiADayIKIAQgCkkbIANqIgpqSSADICJqIAogFmpJcQ0AIAhBD3EiCkEQIAobIgsgBCAVIAIgGSAFIA9qQQJ0IgpqIgkgAiAJSxtqIAprIgkgBCAJSRtBf3NqIQkgASAKaiEEIAMgCCALa2ohAwNAIAQgBCAZav0AAAAgBP0AAAD9bv0LAAAgBEEQaiEEIAlBEGoiCQ0ACwsgBSANakECdCEEA0AgAyARakEEaiIIIAJPDQ8gASADaiIIIAMgF2pBBGotAAAgCC0AAGo6AAAgBCADQQFqIgNHDQALDAMLIAIgBEkNCiADIARPDQICQCAPQQJ0QX9zIA1BAnRqIgQgDCACIAMgEWoiCCACIAhLG2ogA2siCCAEIAhJGyIKQQFqIghBEUkNACABIANqIB0gAyAKaiIKakkgAyAXaiAKIBZqSXENACAIQQ9xIgpBECAKGyILIAQgDCACIBEgBSAPakECdCIKaiIJIAIgCUsbaiAKayIJIAQgCUkbQX9zaiEJIAEgCmohBCADIAggC2tqIQMDQCAEIAQgEWr9AAAAIAT9AAAA/W79CwAAIARBEGohBCAJQRBqIgkNAAsLIAUgDWpBAnQhBANAIAMgEWoiCCACTw0MIAEgA2oiCCADIBdqLQAAIAgtAABqOgAAIAQgA0EBaiIDRw0ACwwCCyACIARJDQcgAyAETw0BIA9BAnRBf3MgDUECdGoiBCACIANBBGsiCCACIAhLGyADa0EEaiIIIAQgCEkbQQFqIgpBBU8EQCAKQQNxIghBBCAIGyILIAQgAiAFIA9qQQJ0IglBBGsiCCACIAhLGyAJa0EEaiIIIAQgCEkbQX9zaiEIIAkgHGohBCADIAogC2tqIQMDQCAEQQRqIgogBP1cAAAgCv1cAAD9bv1aAAAAIAohBCAIQQRqIggNAAsLIAUgDWpBAnQhCANAIANBBGsiBCACTw0JIAEgA2oiBCAEQQRrLQAAIAQtAABqOgAAIAggA0EBaiIDRw0ACwwBCyACIARJDQUgA0EDciIJIARPDQAgBCADQQdqIgggBCAISxsgA2tBBGsiA0HAAE8EQCAJIANBAnZBAWoiAyADQQ9xIgNBECADGyIDa0ECdGohCSADIAUgDWpBAnQiCCAFIA9qQQJ0IgNBB2oiCiAIIApLGyADa0EEa0ECdkF/c2ohDSABIANqIQMDQCADQT9qIANBA2oiCP0AAAAgA0ETaiIK/QAAAP0NAAQIDBAUGBwAAAAAAAAAACADQSNqIg/9AAAAIANBM2oiC/0AAAD9DQAAAAAAAAAAAAQIDBAUGBz9DQABAgMEBQYHGBkaGxwdHh/9DP/////////////////////9biIm/VgAAA8gA0E7aiAm/VgAAA4gA0E3aiAm/VgAAA0gCyAm/VgAAAwgA0EvaiAm/VgAAAsgA0EraiAm/VgAAAogA0EnaiAm/VgAAAkgDyAm/VgAAAggA0EfaiAm/VgAAAcgA0EbaiAm/VgAAAYgA0EXaiAm/VgAAAUgCiAm/VgAAAQgA0EPaiAm/VgAAAMgA0ELaiAm/VgAAAIgA0EHaiAm/VgAAAEgCCAm/VgAAAAgA0FAayEDIA1BEGoiDQ0ACwsDQCABIAlqIgMgAy0AAEEBazoAACAJQQRqIgkgBEkNAAsLIBMgGkcNAAsgBSAQaiEFIgMgIEcNAAsLIABBHToAACAOQSBqJAAPCyAIIAdB+NjEABCMBwALQajZxABBL0HY2cQAEOsHAAtBqNnEAEEvQejZxAAQ6wcACyAEIAJB+NnEABCMBwALQajZxABBL0GI2sQAEOsHAAsgCCACQZjaxAAQjAcAC0Go2cQAQS9BqNrEABDrBwALIAggAkG42sQAEIwHAAtBqNnEAEEvQcjaxAAQ6wcACyAIIAJB2NrEABCMBwALQQAgBCACQbjbxAAQ6gcACyAOQQA2AhQgDkEBNgIIIA5BiILIADYCBCAOQgQ3AgwgDkEEakHo2sQAEI0IAAsgCEEAQQBBqNvEABDqBwALIAogAyADQYjbxAAQ6gcACyAJIAMgA0H42sQAEOoHAAtBqNnEAEEvQcjbxAAQ6wcACyAEIAJB2NvEABCMBwALIAkgAkHo28QAEIwHAAtBACAEIAJBuNzEABDqBwALIA5BADYCFCAOQQE2AgggDkGIgsgANgIEIA5CBDcCDCAOQQRqQfjbxAAQjQgACyAIQQBBAEGo3MQAEOoHAAsgDSADIANBmNzEABDqBwALQQAgBCAMQYjcxAAQ6gcAC0Go2cQAQS9ByNzEABDrBwALIAQgAkHY3MQAEIwHAAsgCCACQejcxAAQjAcAC0Go2cQAQS9B+NzEABDrBwALIAQgAkGI3cQAEIwHAAsgCCACQZjdxAAQjAcAC0EAIAQgAkH43cQAEOoHAAsgDkEANgIUIA5BATYCCCAOQYiCyAA2AgQgDkIENwIMIA5BBGpBqN3EABCNCAALIAhBAEEAQejdxAAQ6gcACyAJIAMgA0HY3cQAEOoHAAsgCiADIANByN3EABDqBwALIAogAyADQbjdxAAQ6gcAC0EAIAQgAkH43sQAEOoHAAsgDkEANgIUIA5BATYCCCAOQYiCyAA2AgQgDkIENwIMIA5BBGpBiN7EABCNCAALIAggAyADQejexAAQ6gcACyAKQQBBmN7EABCMBwALIAkgA0Go3sQAEIwHAAsgDSADQbjexAAQjAcACyALIANByN7EABCMBwALIAggA0HY3sQAEIwHAAtBACAEIAJByN/EABDqBwALIA5BADYCFCAOQQE2AgggDkGIgsgANgIEIA5CBDcCDCAOQQRqQYjfxAAQjQgACyAIQQBBAEG438QAEOoHAAsgCiADIANBqN/EABDqBwALIAkgAyADQZjfxAAQ6gcAC0EAIAQgAkG44MQAEOoHAAsgDkEANgIUIA5BATYCCCAOQYiCyAA2AgQgDkIENwIMIA5BBGpB2N/EABCNCAALIApBAEEAQajgxAAQ6gcACyAJIAMgA0GY4MQAEOoHAAtBACAIIAxBBGpBiODEABDqBwALIA0gAyADQfjfxAAQ6gcAC0EAIAggDEHo38QAEOoHAAsgBEEDaiEEDAILIARBAmohBAwBCyAEQQFqIQQLIAQgAkGI2cQAEIwHAAsgA0EDaiEDDAILIANBAmohAwwBCyADQQFqIQMLIAMgAkGY2cQAEIwHAAsgAyACQfjZxAAQjAcAC+BZAyd/EH4HeyMAQfAIayIEJAAgBEEQaiABQaAB/AoAACAEQgA3A6gCIAQgBCgCmAEiC60gBCgClAEiCK1+Ii5CBEIDIAQtAKMBIgcbEN0GIAQgA60iKzcDsAIgBEIANwPoAiAEQn8gBCkDACAEKQMIQgBSGyIsNwPwAgJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkAgKyAsUQRAQQkhBSAuQiCIpw0NIC6nIg6tQgRCAyAHG34iK0IgiKcgAyArp0dyDQ0gBC0AVUEBRwRAAkAgBEHoAGoiDUHM+MYAEKgEIgVFBEAgDUHk+MYAEKgEIQdBAyEFIARBAzoAsAMgB0UNECAEQbADaiIFEKsEIAQgBEHYAGoiCDYCiAIgBykDECErIAQgBykDCCIuNwNgIAQgKyAufSIrNwOAAiAEICs3A/gBIAUgBEH4AWoQrAIgBEHoAmogBRA0IAQpAvQCIS4gBCgC8AIhCSAEKALsAiEFIAQoAugCIgdBgICAgHhHDQEgBUEIdiEGDA8LIARBBDoAsAMgBSkDECEuIAUpAwghKyAEQQA6AJAEIAQgBEHYAGo2AogEIARCADcD8AMgBCArNwNgIARCADcDoAQgBEKAgICAEDcDmAQgBEEEOgDgAyAEQQQ6ANADIARBBDoAwAMgBCAuICt9Iis3A4AEIAQgKzcD+AMgB0UEQCAOQQJ0IgZBAEgNBAJAIAYEQCAGEHEiB0UNFCAHQQRrLQAAQQNxRSAGRXJFBEAgB0EAIAb8CwALIARB6AJqIARBsANqIAQoApQBIAQoApgBIAcgBhDNASAELQDoAiIFQR1GDQEgBCkC8AIhLiAEKALsAiEJIAQvAOkCIAQtAOsCIAcgBkEBEKIHQRB0ciEGDBALQQEhByAEQegCaiAEQbADaiAIIAtBAUEAEM0BIAQtAOgCIgVBHUcNDQsCQCADQQNuIgMgDkH/////A3EiBSADIAVJGyIDRQ0AQQAhCCADQQFHBEAgA0EBcSADQf7///8DcSELIAIhAyAHIQUDQCADIAUvAAA7AAAgA0ECaiAFQQJqLQAAOgAAIANBA2ogBUEEai8AADsAACADQQVqIAVBBmotAAA6AAAgA0EGaiEDIAVBCGohBSALIAhBAmoiCEcNAAtFDQELIAIgCEEDbGoiAiAHIAhBAnRqIgMvAAA7AAAgAkECaiADQQJqLQAAOgAACyAGRQ0KIAcgBkEBEKIHDAoLIARB6AJqIARBsANqIAggCyACIAMQzQEgBC0A6AIiBUEdRg0JIAQvAOkCIAQtAOsCQRB0cgwMCyAEQdQCaiAEQZQDaigCADYCACAEQcwCaiAEQYwDaikCACIrNwIAIAQgBP0AAvwC/QsCvAIgBCAJNgKwAiAEIAU2AqwCIAQgBzYCqAIgBCgClAEhCSAEIC43ArQCQRchCyAJICunIg9B//8DcSIGRw0HIAQvAc4CIhAgBCgCmAFHDQcgBC0ApAEhCSAELQCjAUUEQCAEQagCaiACIAMgCUEBcRCOAQwHCyAEQagCaiACIAMgCUEBcRCAASANQen4xgAQqAQhCUEDIQsgBEEDOgCwAyAJRQ0HIARBsANqIgsQqwQgCSkDECErIAQgCSkDCCItNwNgIAQgCDYCwAMgBCArIC19Iis3A7gDIAQgKzcDsAMgBEHoAmogCyAEKAKUASAEKAKYARBHIAQoAvQCIQ4gBCgC8AIhCSAEKALsAiELIAQoAugCRQRAAkACQCAQRSAPQf//A3FFckUEQCAELQD5AiEHIAZBAnQhD0EDIQ0DQCAJIBxqIREgDSEIQQAhBQNAIAUgCiAGIAcgAiADELwDIRogBSAcaiIVIA5PDQMgAyAITQ0EIAIgCGogBSARai0AACAaajoAACAIQQRqIQggBiAFQQFqIgVHDQALIA0gD2ohDSAGIBxqIRwgCkEBaiIKIBBHDQALCyALRQ0JIAkgC0EBEKIHDAkLIBUgDkHw+MYAEIwHAAsgCCADQYD5xgAQjAcACyAOrSAEMQD4AkIghoQgBDEA+QJCKIaEIAQzAfoCQjCGhCErIAtBCHYhBgwHCyAEQTRqQQA2AgAgBEHQAWogAUEgav0AAwD9CwMAIARBwAFqIAFBEGr9AAMA/QsDACAEQYCAgIB4NgIYIARCADcDECAE/QwAAAAAAAAAAAAAAAAAAAAA/QsCJCAEQQE6ADggBCAB/QADAP0LA7ABIARB6ABqQZD5xgAQqAQiBUUNAiAEIAUpAwgiLEIIfSIuNwMQIAQoApwBRQRAIARBHDoA4AEMBQsgBCAuNwNgQQQhBSAEKAJcIgetISsgBAJ+AkAgB0L/////DyAuIC5C/////w9aG6drIgZBACAGIAdNG0EETwRAIAQoAlggLiArICsgLlYbp2ooAAAhCQwBC0GokMgAKQMAIi5CCIghLSAupyEFICsgLkL/AYNCBFINARoLICxCBH0LIiw3A2ACQCAFQf8BcUEERgRAIARBsANqQQFyIAkQmAQgBC0AswMhCSAELwCxAyEGIAQCfgJAIAcgLCArICsgLFYbpyIFa0EETwRAIAQoAlggBWo1AAAhLkEEIQVCACEtDAELQaiQyAApAwAiMEIIiCEtIDCnIQVCACEuICsgMEL/AYNCBFINARoLICxCBHwLIiw3A2AgBUH/AXFBBEYNAQsgBEEANgLgASAEIC1CGIg+AugBIAQgBUH/AXEgLadBCHRyNgLkAQwFCyAGIAlBEHRyQf8BcUEGRiAuQh9WcUUEQCAEQcGctbIENgDhASAEQQQ6AOABDAULIAQCfgJAIAcgLCArICsgLFYbpyIFa0EDTwRAIAQoAlggBWoiBS0AAUEIdCEJIAUtAAJBEHQhBiAFLQAAIQpBBCEFQgAhLQwBC0GokMgAKQMAIjBCCIghLSAwpyEFQQAhCUEAIQZBACELICsgMEL/AYNCBFINARoLIAkhCyAGIRwgLEIDfAsiLDcDYCAFQf8BcUEERwRAIAQgBa1C/wGDIC1CCIaEIis3A7ADIARBADoA4AEgBCArPgLkASAEIAQpArQDNwPoAQwFCwJ/AkAgByAsICsgKyAsVhunIgVrQQNPBEAgBCgCWCAFaiIFLQABQQh0IQggBS0AAkEQdCEJIAUtAAAhDUEEIQVCACEtDAELQaiQyAApAwAiMEIIiCEtIDCnIQVBACEIQQAhCUEAIQZBACAwQv8Bg0IEUg0BGgsgLEIDfCErIAghBiAJCyEJIAQgKzcDYCAFQf8BcUEERwRAIAQgBa1C/wGDIC1CCIaEIis3A7ADIARBADoA4AEgBCArPgLkASAEIAQpArQDNwPoAQwFCyAEQbADaiAEQdgAaiIFEL4FIAQtALADIgdBHUcEQCAEIAQtALMDOgDjASAEIAQvALEDOwDhASAEIAQpArgDNwPoASAEIAQoArQDNgLkASAEIAc6AOABDAULIAQoArQDIQcgBEGwA2ogBRC+BSAELQCwAyIIQR1HBEAgBCAELQCzAzoA4wEgBCAELwCxAzsA4QEgBCAEKQK4AzcD6AEgBCAEKAK0AzYC5AEgBCAIOgDgAQwFCwJAIAdBAWoiFUGAgAFNBEAgBCgCtANBAWoiGkGBgAFJDQELIARBCToA4AEMBQsCQCAEKAKUASAVIAogC3IgHHJBAXQiH2pJDQAgBCgCmAEgGiAGIA1yIAlyQQF0IiBqSQ0AIARBsANqIAUQvgUgBC0AsAMiCUEdRwRAIAQgBC0AswM6AOMBIAQgBC8AsQM7AOEBIAQgBCkCuAM3A+gBIAQgBCgCtAM2AuQBIAQgCToA4AEMBgsgBCgCtAMhKCAEQbADaiAFEKkGIAQtALADQQRGBEAgBC0AsQMhHAwFCyAEKQOwAyIrQgiIpyEcICunIglB/wFxQQRGDQQgBCAcOgDlASAEIAk6AOQBIARBADoA4AEgBCArQjCIPQHqASAEICtCEIg+AeYBDAULIARBCjoA4AEMBAsgBEEANgKwAyAEQagCaiAEQegCaiAEQbADakHYpsYAEPcHAAtB1PjGABD/BwALQZj5xgAQ3QkMDAsgBCgATSEOIAQtAEwhEiAELQA4IRcgBEGwA2ogBRC9AyAEKAKwA0EBRgRAIAQgBP0AArQD/QsE4AEMAQsgBCAELQDEAzoA5AggBCAEKALAAyIJNgLgCAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgLiAEKQPIAyItQhh8WgRAIAQpA7gDIStB0pKZsgQhCyAJQf8BcUEBaw4LAQoLAgMEDAUGBwgJC0HSkpmyBCEDAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAlB/wFxQQFrDgsAAQIDBAUGBwgJCgsLQdeKiYIFIQMMCgtB1qDhgQIhAwwJC0HWoOHhBCEDDAgLQdag4cEFIQMMBwtBwZyl6gQhAwwGC0HBnLWyBCEDDAULQcGYwcIEIQMMBAtByYaNggUhAwwDC0HFsKWyBCEDDAILQdiawYICIQMMAQsgBCgA4QghAwsgBCADNgDhASAEQQQ6AOABDA4LQdeKiYIFIQsMBwtB1qDhwQUhCwwGC0HBnKXqBCELDAULQcGctbIEIQsMBAtByYaNggUhCwwDC0HFsKWyBCELDAILQdiawYICIQsMAQsgBCgA4QghCwsgBCALNgDhASAEQQQ6AOABDAULIAQgKzcDoAMgBCArNwOYAyAEIAU2AqgDIARBsANqIgUgBEGYA2oQrAIgBEHoAmogBRA0IAQgBP0AAuwC/QsDkAIgBCgC6AIiBUGAgICAeEYNAyAEQdQCaiAEQZQDaigCADYCACAEQcwCaiAEQYwDaikCACIrNwIAIAQgBP0AAvwC/QsCvAIgBCAE/QADkAL9CwKsAiAEIAU2AqgCAkAgFSArp0H//wNxRw0AIBogBC8BzgJHDQAgBEHYAmogFSAabEEDbEHk9sYAEKAHIARBqAJqIgUgBCgC3AIiCyAEKALgAiINIAQtAKQBEI4BIAQoAtgCIScgBRD9BEEAIQoMAwsgBEEXOgDgASAEQagCahD9BAwECyAEQQA6AJAEIAQgBTYCiAQgBCArNwOABCAEICs3A/gDIARCADcD8AMgBEIANwOgBCAEQoCAgIAQNwOYBCAEQQQ6AOADIARBBDoA0AMgBEEEOgDAAyAEQQQ6ALADIARBqAJqIBUgGmxBAnRB9PbGABCgByAEQegCaiAEQbADaiAVIBogBCgCrAIiCyAEKAKwAiINEM0BIAQtAOgCIgVBHUcEQCAEIAQpAOkCNwDhASAEIARB8AJqKQAANwDoASAEIAU6AOABIAQoAqgCIgIEQCALIAJBARCiBwsgBEGwA2oQ/AYMBAsgBCgCqAIhJyAEQbADahD8BkEBIQoMAQsgLiAtQiB8WgRAIAQpA2AhLCAEICs3A5gCIAQgKzcDkAIgBCAFNgKgAiAEQbADaiAEQZACaiAVIBoQRyAEKAKwA0EBRgRAIAQgBP0AArQD/QsE4AEMBAsgBCAsIC18NwNgIAQtAMEDIRYgBCgCvAMhESAEKAK4AyEPIAQoArQDIQggBEGwA2ogBRC9AwJAIAQoArADQQFGBEAgBCAE/QACtAP9CwTgAQwBCyAEIAQtAMQDOgDsCCAEIAQoAsADIgk2AugIAkAgLiArIAQpA7gDIi18QiB8WgRAIAQgLTcDoAMgBCAtNwOYAyAEIAU2AqgDIARBsANqIgUgBEGYA2oQrAIgBEHoAmogBRA0IAQgBP0AAuwC/QsD2AIgBCgC6AIiBUGAgICAeEcNASAEIAT9AAPYAv0LBOABDAILQdKSmbIEIQMCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCUH/AXFBAWsOCwABAgMEBQYHCAkKCwtB14qJggUhAwwKC0HWoOGBAiEDDAkLQdag4eEEIQMMCAtB1qDhwQUhAwwHC0HBnKXqBCEDDAYLQcGctbIEIQMMBQtBwZjBwgQhAwwEC0HJho2CBSEDDAMLQcWwpbIEIQMMAgtB2JrBggIhAwwBCyAEKADpCCEDCyAEIAM2AOEBIARBBDoA4AEMAQsgBEHUAmogBEGUA2ooAgA2AgAgBEHMAmogBEGMA2opAgA3AgAgBCAE/QAC/AL9CwK8AiAEIAT9AAPYAv0LAqwCIAQgBTYCqAIgBEGYA2ogFSAabEECdEGE98YAEKAHIARBqAJqIAQoApwDIgsgBCgCoAMiDSAELQCkARCAAQJAIAQvAc4CIgxFDQAgBC8BzAIiEEUNACAQQQJ0IRNBACEGQQMhCUEAIQoDQCAGIA9qIRQgCSEHQQAhBQJAAkADQCAFIAogECAWIAsgDRC8AyEYIAUgBmoiGSARTw0BIAcgDUkEQCAHIAtqIAUgFGotAAAgGGo6AAAgB0EEaiEHIBAgBUEBaiIFRg0DDAELCyAHIA1BlPjGABCMBwALIBkgEUGE+MYAEIwHAAsgCSATaiEJIAYgEGohBiAKQQFqIgogDEcNAAsLIAQoApgDIScgBEGoAmoQ/QQgCARAIA8gCEEBEKIHC0EBIQoMAgsgCEUNAyAPIAhBARCiBwwDCyAEQcGYwcIENgDhASAEQQQ6AOABDAILAkACQAJAIAQoAhhBgICAgHhGBEAgBEGQAmogBCgClAEgBCgCmAFsQQJ0QZT3xgAQoAcCQCAELQBMQQFHDQAgBCgCmAIiBUF8cSIHRQ0AIAQoApQCIQkCQCAFQQRrIgZBLEkEQCAJIQUMAQsgCSAEQdEAak8gBEHNAGogCSAFQXxxak9yRQRAIAkhBQwBCyAJIAZBAnZBAWoiEEH8////B3EiCEECdCIGaiEFIAcgBmshByAIIQYDQCAJIAT9AABN/QwAAAAAAAAAAAAAAAAAAAAA/Q0AAQIDAAECAwABAgMAAQID/QsAACAJQRBqIQkgBkEEayIGDQALIAggEEYNAQsDQCAFIAQoAE02AAAgBUEEaiEFIAdBBGsiBw0ACwsgBCgCGCIFQYCAgIB4ckGAgICAeEcEQCAEKAIcIAVBARCiBwsgBEEYaiIFIAQpApACNwIAIAVBCGogBEGYAmooAgA2AgAgBCgCGEGAgICAeEYNAQsgBCgCHCEJIAQoAiAhDCAEKAKYASEdIBJBACAXGyEGIA4hCCAKIRcgHEECcUUhISAEKAIoIQUgBCgCLCEiIAQoAjAhGCAEKAI0IRlBACEOQQAhFAJAAkACQAJAAkACQAJAIB8gIHIgFSAEKAKUASITR3JFBEAgGiAdRyIHICFyBEAgBkEBcUUNByAHDQIgCg0FIAwgDEEDcGsiBkEDSQ0HIAZBA2siB0EDbiIFQQdxQQdHDQMgCSEFDAQLIBdFBEAgDEECdiIFIA1BA24iBiAFIAZJGyIFRQ0IQQAhBiAFQQFHBEAgBUEBcSAFQf7///8DcSENIAkhCCALIQUDQCAIIAUvAAA7AAAgCEEDakH/AToAACAIQQdqQf8BOgAAIAhBAmogBUECai0AADoAACAIQQRqIAVBA2ovAAA7AAAgCEEGaiAFQQVqLQAAOgAAIAhBCGohCCAFQQZqIQUgDSAGQQJqIgZHDQALRQ0JCyAJIAZBAnRqIgVB/wE6AAMgBSALIAZBA2xqIgkvAAA7AAAgBUECaiAJQQJqLQAAOgAADAgLIAwgDUcNBSANRQ0HIAkgCyAN/AoAAAwHCyAGQQFxRQ0FCyAiRSAFRXIhBgJAAkACQAJAIBdFBEAgBg0JIAxBAmoiIyAYIBMgGWxqQQNsIgdrIREgBUEBaiEkIBNBA2whFCATQX1sISUgDK1CAXwhLSAFQQFrrSErIAhBEHYhDyAMIAciEmsiJiEWQQEhEANAIA4gGWogE2wgGGohHiARQQIgFiAWQQJPG2utQgOAITBBASEFQQAhBgJAICMgDiAlbCIKaiAHQQIgCiAmaiIKIApBAk8bamsiG0EDbq0iMyAtIAcgDiAUbGoiCq0iMSAtIDFWGyAxIAogDE2tIix8fSIxQgOAICx8IjQgMyA0VBsiMyArICsgM1YbIjNCCFQNACAbQQNurSI0IDFCA4AgLHwiMSAxIDRWGyIxICsgKyAxVhunQQNsIApBf3NLDQAgMCAtIBKtIjEgLSAxVhsgLCAxfH1CA4AgLHwiLCAsIDBWGyIsICsgKyAsVhunIDOnQQFqIgVBA3EiBkEEIAYbIgZrQQFqIQogBSAGayIGQQFqIQUgHv0RIT39DAAAAAABAAAAAgAAAAMAAAAhOwNAIAkgPSA7/a4B/QwDAAAAAwAAAAMAAAADAAAA/bUBIjz9GwBqIhsgCDsAACAbQQJqIA86AAAgCSA8/RsBaiIbQQJqIA86AAAgGyAIOwAAIAkgPP0bAmoiG0ECaiAPOgAAIBsgCDsAACAJIDz9GwNqIhtBAmogDzoAACAbIAg7AAAgO/0MBAAAAAQAAAAEAAAABAAAAP2uASE7IApBBGsiCg0ACwsDQCAMIAYgHmpBA2wiBkkNAyAMIAZrIgpBA0kNBCAGIAlqIgYgCDsAACAGQQJqIA86AAAgBSEGICQgBUEBaiIFRw0ACyASIBRqIRIgFiAUayEWIBEgFGshESAOQQFqIQ4gECAQICJJIgVqIRAgBQ0ACwwJCyAGDQggDEEDaiIjIBggEyAZbGpBAnQiD2shHiAFQQFqISRBACATQQJ0IhJrISUgDK1CAXwhKyAJIA9qIREgBUEBa60hLSAI/REhOyAMIA9rIiYhFiAPIRBBASEOA0AgFCAZaiATbCEbQQEhBUEAIQYCQCArIA8gEiAUbGoiB619IixCACArICxaG0IDfEICiCIsICMgFCAlbCIKaiAPQQMgCiAmaiIKIApBA08bcmtBAnatIjAgLCAwVBsiLCAtICwgLVQbIixCCFQNACAHQX9zICynIgdBAnRJDQAgB0EBaiIFQQNxIgZBBCAGGyIGICsgEK19IixCACArICxaG0IDfEICiCIsIB5BAyAWIBZBA08ba61CAogiMCAsIDBUGyIsIC0gLCAtVBunQX9zaiEHIAUgBmsiBkEBaiEFIBEhCgNAIAogO/0LAAAgCkEQaiEKIAdBBGoiBw0ACwsgGCAbaiEHA0AgDCAGIAdqQQJ0IgZJDQQgDCAGayIKQQRJDQUgBiAJaiAINgAAIAUhBiAkIAVBAWoiBUcNAAsgESASaiERIBYgEmshFiAeIBJrIR4gECASaiEQIBRBAWohFCAOIA4gIkkiBWohDiAFDQALDAgLIAYgDCAMQcjvxAAQ6gcAC0EAQQMgCkG478QAEOoHAAsgBiAMIAxB6O/EABDqBwALQQBBBCAKQdjvxAAQ6gcACyAGIAVBAWpBB3EiCkEDbGshBiAIQRB2IQ4gCSEFA0AgBSAIOwAAIAVBAmogDjoAACAFQQNqIQUgCkEBayIKDQALCyAHQRVJDQIgCEEQdiEHA0AgBSAIOwAAIAVBF2ogBzoAACAFQRVqIAg7AAAgBUEUaiAHOgAAIAVBEmogCDsAACAFQRFqIAc6AAAgBUEPaiAIOwAAIAVBDmogBzoAACAFQQxqIAg7AAAgBUELaiAHOgAAIAVBCWogCDsAACAFQQhqIAc6AAAgBUEGaiAIOwAAIAVBBWogBzoAACAFQQNqIAg7AAAgBUECaiAHOgAAIAVBGGohBSAGQRhrIgZBA08NAAsMAgsgDEEESQ0BIAxBfHEhCgJAIAxBBGsiBUEMSQRAIAkhBQwBCyAKIAVBAnZBAWoiEEH8////B3EiDkECdCIFayEKIAUgCWohBSAI/REhOyAOIQcgCSEGA0AgBiA7/QsAACAGQRBqIQYgB0EEayIHDQALIA4gEEYNAgsDQCAFIAg2AAAgBUEEaiEFIApBBGsiCg0ACwwBCyAMIA1BqO/EABDeCQALIB0gIGsiBUEAIAUgHU0bIgUgGiAFIBpJGyERIBMgH2siBUEAIAUgE00bIgUgFSAFIBVJGyEPAkACQAJAAkACQAJAAkACQAJAIBdFBEAgEUUNCiATQQJ0IRggD0H+/wFxIRlBASEFIA9BAXEhHSAPQQJ0IRcgD0EDbCEWIBVBA2whFCAJIB8gEyAgbGpBAnRqIRBBACEHIAshDgwBCyAhRQRAIBFFDQogE0ECdCEOIA9BAnQhCCAVQQJ0IRAgDCAfIBMgIGxqQQJ0IgVrIQZBACEKIA0hBwNAIAUgDEsNBiAGIAhJDQUgCiANSw0EIAcgCEkNAyAIBEAgBSAJaiAKIAtqIAj8CgAACyAHIBBrIQcgCiAQaiEKIAYgDmshBiAFIA5qIQUgEUEBayIRDQALDAoLIBFFIA9Fcg0JIAxBA2oiIyAfIBMgIGxqQQJ0IhdrIRIgD0EBaiEkIA2tQgF8ITAgDK1CAXwhLUIAIBWtQgKGIjN9ITggCSAXaiEWIA9BAWutISxBACEZQQAgE0ECdCIYa60hOUEAIBVBAnQiImutITogCyEPIAwgF2siJSEdIA0hECANQQNqIiYhFEIDITRCACExIBchDkIAIStBASEeA0AgGSAgaiATbCEhQQEhBUEAIQgCQCAtIBggK6dsIBdqrX0iL0IAIC0gL1obQgN8QgKIIjIgKyA4fiArIDN+Ii8gMCAvIDBWG3xCA3xCAogiLyAvIDJWGyI1ICYgKyA6fqciBmpBAyAGIA1qIgYgBkEDTxtrQQJ2rSIyIDIgNVYbIjYgIyArIDl+pyIGaiAXQQMgBiAlaiIGIAZBA08bcmtBAnatIjUgNSA2VhsiNiAsICwgNlYbIjZCBFQNACAtIBcgGCAZbGoiBq19IjdCACAtIDdaG0IDfEICiCI3IC8gLyA3VhsiLyAyIC8gMlQbIi8gNSAvIDVUGyIvICwgLCAvVhunQQJ0IAZBf3NLDQAgNqdBAWoiBUEDcSIGQQQgBhsiBiAtIA6tfSIvQgAgLSAvWhtCA3xCAogiLyAxIDAgMCAxVBsgNHxCAogiMiAvIDJUGyIvIBRBAyAQIBBBA08ba61CAogiMiAvIDJUGyIvIBJBAyAdIB1BA08ba61CAogiMiAvIDJUGyIvICwgLCAvVhunQX9zaiEHIAUgBmsiCEEBaiEFIBYhCiAPIQYDQCAK/QAAACI9QRj9rQEgBv0AAAAiPkEY/a0BIj/9DP8AAAD/AAAA/wAAAP8AAAD9Uf21Af0MgAAAAIAAAACAAAAAgAAAAP2uASI7QQj9rQEgO/2uAUEI/a0BIkEgP/2uASE8ID79DP///wD///8A////AP///wD9PCJA/RsAQQFxBEBBgICACCA8/RsAbv0RITsLIED9GwFBAXEEQCA7QYCAgAggPP0bAW79HAEhOwsgQP0bAkEBcQRAIDtBgICACCA8/RsCbv0cAiE7CyBA/RsDQQFxBEAgO0GAgIAIIDz9GwNu/RwDITsLIAogOyBBID39DP8AAAD/AAAA/wAAAP8AAAD9Tv21ASA+/Qz/AAAA/wAAAP8AAAD/AAAA/U4gP/21Af2uAf21AUEY/a0BIDxBGP2rAf1QIDsgQSA9QQj9rQH9DP8AAAD/AAAA/wAAAP8AAAD9Tv21ASA+QQj9rQH9DP8AAAD/AAAA/wAAAP8AAAD9TiA//bUB/a4B/bUBQRD9rQH9DAD/AAAA/wAAAP8AAAD/AAD9Tv1QIDsgQSA9QRD9rQH9DP8AAAD/AAAA/wAAAP8AAAD9Tv21ASA+QRD9rQH9DP8AAAD/AAAA/wAAAP8AAAD9TiA//bUB/a4B/bUBQQj9rQH9DAAA/wAAAP8AAAD/AAAA/wD9Tv1QID0gQP1S/QsAACAKQRBqIQogBkEQaiEGIAdBBGoiBw0ACwsgFSAZbCEbIB8gIWohKQNAIA0gCCAbakECdCIHSQ0KIA0gB2siBkEESQ0JIAwgCCApakECdCIGSQ0IIAwgBmsiCEEESQ0HIAYgCWoiCCgAACEGIAggByALaigAACIHQYCAgAhPBH9BgICACCAHQRh2IghB/wFzIAZBGHZsQYABaiIKQQh2IApqQQh2IgogCGoiKm4iISAKIAZB/wFxbCAHQf8BcSAIbGpsQRh2ICpBGHRyICEgCiAGQQh2Qf8BcWwgB0EIdkH/AXEgCGxqbEEQdkGA/gNxciAhIAogBkEQdkH/AXFsIAdBEHZB/wFxIAhsamxBCHZBgID8B3FyBSAGCzYAACAFIQggJCAFQQFqIgVHDQALIBYgGGohFiAPICJqIQ8gHSAYayEdIBIgGGshEiAQICJrIRAgFCAiayEUIDQgM30hNCAxIDN8ITEgDiAYaiEOICtCAXwhKyAZQQFqIRkgHiARIB5LIgVqIR4gBQ0ACwwJCwNAIAchBiAFIQcCQAJAAkACQAJAAkAgBiAUbCISIA1NBEAgFiANIBJrIgVLDQEgDCAGICBqIBNsIB9qQQJ0IgZJDQIgFyAMIAZrIgVLDQNBACEKAkAgDw4CBwYACyAQIQggDiEFA0AgCCAFLwAAOwAAIAhBA2pB/wE6AAAgCEEHakH/AToAACAIQQJqIAVBAmotAAA6AAAgCEEEaiAFQQNqLwAAOwAAIAhBBmogBUEFai0AADoAACAIQQhqIQggBUEGaiEFIBkgCkECaiIKRw0ACwwECyASIA0gDUGo8MQAEOoHAAtBACAWIAVBmPDEABDqBwALIAYgDCAMQYjwxAAQ6gcAC0EAIBcgBUH478QAEOoHAAsgHUUNAQsgBiAJaiAKQQJ0aiIFQf8BOgADIAUgCyASaiAKQQNsaiIGLwAAOwAAIAVBAmogBkECai0AADoAAAsgECAYaiEQIA4gFGohDiAHIAcgEUkiBmohBSAGDQALDAgLQQAgCCAHQbjwxAAQ6gcACyAKIA0gDUHI8MQAEOoHAAtBACAIIAZB2PDEABDqBwALIAUgDCAMQejwxAAQ6gcAC0EAQQQgCEGI8cQAEOoHAAsgBiAMIAxBmPHEABDqBwALQQBBBCAGQfjwxAAQ6gcACyAHIA0gDUGo8cQAEOoHAAsgBCAcQQFxOgA4IAQgIDYCNCAEIB82AjAgBCAaNgIsIAQgFTYCKCAEIAQoAiRBAWo2AiQgBCAuIAQpAxB8Qgh8NwMQIAQtAKMBRQRAIARBAzYCuAIgBCADQQNwIgU2AqwCIAQgAyAFayIDNgK0AiAEIAI2ArACIAQgAiADajYCqAICQAJAIAQoAhhBgICAgHhHBEAgBEEENgL4AiAEIAQoAhwiAjYC6AIgBCAEKAIgIgNBA3E2AvQCIAQgA0F8cSIDNgLsAiAEIAIgA2o2AvACIARBsANqIQIgBEHoAmohAwJAAkAgBEGoAmoiBSgCECIJBEAgAygCECIGRQ0BIAJBADYCKCACIAX9AAIA/QsCACACIAP9AAIA/QsCFCACQRBqIAVBEGooAgA2AgAgAkEkaiADQRBqKAIANgIAIAIgAygCBCAGbiICIAUoAgwgCW4iAyACIANJGzYCLAwCC0HIpsYAEIEIAAtBgM7HABCBCAALIAQoAtwDIgYgBCgC2AMiA00NBiAEKAK4AyIHRQ0GIAQoAtQDIglBA0kNAiAEKALAAyICQQNHDQEgBCgCxAMhBSADQQFqIQIgBiADa0EBcQRAIAcgA0EDbGoiCCAFIAMgCWxqIgMvAAA7AAAgCEECaiADQQJqLQAAOgAAIAIhAwsgAiAGRg0GIAlBAXQhAiADIAlsIQ0gBiADayEIIAkgA0EBamwhCSAHIANBA2xqIQMDQCADIAUgDWoiBi8AADsAACADQQJqIAZBAmotAAA6AAAgA0EDaiAFIAlqIgYvAAA7AAAgA0EFaiAGQQJqLQAAOgAAIANBBmohAyACIAVqIQUgCEECayIIDQALDAYLQbT3xgAQ3QkACyACQQNB1PfGABDeCQALQQBBAyAJQcT3xgAQ6gcACyAEKAIYQYCAgIB4RwRAIAMgBCgCICIFRw0CIANFDQMgAiAEKAIcIAP8CgAADAMLQeT3xgAQ3QkAC0Gk98YAEN0JAAsgAyAFQfT3xgAQ3gkACyAEQR06AOABIAQgKDYC5AEgJ0UNASALICdBARCiBwwBCyAEIAT9AAOQAv0LBOABCwJAIAQoAhgiAkGAgICAeHJBgICAgHhHBEAgBCgCHCIDQQRrKAIAIgVBeHEiCUEEQQggBUEDcSIFGyACakkNDSAFQQAgCSACQSdqSxsNASADEKICCyAEQTBqIARB0AFq/QADAP0LAwAgBEEgaiAEQcABav0AAwD9CwMAIAQgBP0AA7AB/QsDECAELQDgASIFQR1GDQQgBC8A4QEgBC0A4wFBEHRyIQYgBCkD6AEhLiAEKALkASEJDAkLDAwLIARBqAJqEP0EDAILIAcEQCAFIAdBARCiBwsgLqciAgRAIC5CIIinIAJBARCiBwsgBCgCwAIiAgRAIAQoAsQCIAJBARCiBwsgCyEFICshLgwFCyAEQbADahD3AyAEKAKYBCICRQ0AIAQoApwEIgNBBGsoAgAiBUF4cSIJQQRBCCAFQQNxIgUbIAJqSQ0IIAVBACAJIAJBJ2pLGw0JIAMQogJBBiEDDAYLQQYhAwwFCyAELwDpAiAELQDrAkEQdHILIQYgBCkC8AIhLiAEKALsAiEJCyAEQbADahD3AyAEKAKYBCICRQ0BAkAgBCgCnAQiA0EEaygCACIHQXhxIgtBBEEIIAdBA3EiBxsgAmpPBEAgB0EAIAsgAkEnaksbDQEgAxCiAgwDCwwFCwwFC0EGIQMgBUH/AXFBHUcNAAwBCyAEIC43ArQDIAQgCTYCsAMgBUH/AXFFBEAgACAEKQOwAzcCBEEFIQMMAQtBEBBxIgJFDQEgAiAEKQOwAzcCBCAAQey7xAA2AhggACACNgIUIABBgAY7AQQgAiAFQf8BcSAGQQh0cjYCACACQQxqIARBuANqKAIANgIAQQAhAwsgACADNgIAIAQoAhgiAEGAgICAeHJBgICAgHhHBEAgBCgCHCICQQRrKAIAIgNBeHEiBUEEQQggA0EDcSIDGyAAakkNAiADQQAgBSAAQSdqSxsNAyACEKICCwJAIAQoAmwiAEUNACAAQRhsIgIgAGpBIWoiAEUNACAEKAJoIAJrIgJBHGsoAgAiA0F4cSIFQQRBCCADQQNxIgMbIABqSQ0CIANBACAFIABBJ2pLGw0DIAJBGGsQogILIAFBBGsoAgAiAEF4cUGkAUGoASAAQQNxIgIbSQ0BIAJBACAAQcgBTxsNAiABEKICIARB8AhqJAAPCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC5c1Aih/An4jAEGQBWsiASQAAkACQCAAKALEASIDQQRPBEAgACgCwAEiAigAAEHQlo0gRw0BIAFCADcDGCABIAM2AhQgASACNgIQIAFB2AJqIAFBEGoQMSABQUBrIgMgAUHkAmooAgA2AgAgASABKQLcAjcDOCABKALYAiICRQRAIAFBOGoQjwchAgwDCyABQSxqIAMoAgA2AgAgASABKQM4NwIkIAEgASkD6AIiKTcDMCABIAI2AiACQAJAICmnKAJAIhAEQCABQfwAaiEEIAFB8ABqIQwgAUHsAmohIiABQeACaiENA0AgAUEAOgC4AiABQQA2ArACIAFB2AJqIAFBIGogHSABQbACahCoASABQdAAaiICIA1BCGooAgA2AgAgASANKQMANwNIAkACQAJAAkACQAJAAkACQAJAIAEpA9gCIilCA1IEQCAEICJBtAH8CgAAIAxBCGogAigCADYCACAMIAEpA0g3AwAgASApNwNoAkAgASgCcCABQegAaiApQgJRGyICKAIsIgdBAE4EQCACKAIoIQICQCAHRQRAQQEhCwwBCyAHEHEiC0UNCAsgBwRAIAsgAiAH/AoAAAsgAUHoAGoQ/AEgB0EJSQ0IQfzVwQAgByALakEJa0EJENsHDQkgByECAkADQCABQQhqQS8gCyACEKkDQQEhHUEAISIgASgCCEEBcUUEQAwCCwJAIAcgASgCDCICSwRAIAIgC2otAABBL0YNAQsgAiAHTQ0BDAILCyABIAI2AqgEIAEgCzYCpAQgASABQaQEaq1CgICAgCCENwOwAiABQgE3AuQCIAFBAjYC3AIgAUGs1sEANgLYAiABIAFBsAJqNgLgAiABQegAaiABQdgCahDsAyABKAJoIgJBgICAgHhGDQAgASkCbCIpQiCIpyEFICmnIR0gAiEiCyABQdgCaiABQSBqIAsgBxDJBCABQeAAaiABQegCaigCADYCACABIAEpA+ACNwNYAkAgASkD2AIiKUIDUQRAIAFB2ABqEI8HIQIMAQsgAUH8AGogAUHsAmpBtAH8CgAAIAFB+ABqIAFB4ABqKAIANgIAIAEgKTcDaCABIAEpA1g3A3AgAUEANgK4AiABQoCAgIAQNwKwAiABQdgCaiABQegAaiABQbACahCZASABKALYAkEBRgRAIAEpAtwCEM8HIQIgASgCsAIiAARAIAEoArQCIABBARCiBwsgAUHoAGoQ/AEMAQsgASgCsAIhJyABKAK0AiEoIAEoArgCIQIgAUHoAGoQ/AEgAUEANgK4AiABIAI2ArQCIAEgKDYCsAIgAUHYAmogAUGwAmoQRiABKALcAiECAkAgASgC2AIiBEGBgICAeEYEQCACEKMHIQIMAQsgAUHwAGogAUHgAmpBwAH8CgAAIAEgAjYCbCABIAQ2AmggAUHsAGohAyABAn5BwLvJAC0AAARAQdC7yQApAwAhKUHIu8kAKQMADAELIAFB2AJqEL8GQcC7yQBBAToAAEHQu8kAIAEpA+ACIik3AwAgASkD2AILIio3A8ACQci7yQAgKkIBfDcDACABICk3A8gCIAFB8JrIAP0AAwD9CwOwAgJAIAFB6ABqIB0gBSABQSBqIAFBsAJqIgUQ2AQiAgRAIAUQ5QMgBEGAgICAeEcNASADEIUCDAILIAEgAUGwAmo2AtQCIARBgICAgHhHBEAgAUHYAmogAUHoAGpByAH8CgAAIAEoAsADIiVBgICAgHhGDQUgASgCyANBEUcNBSABKAKIAyERIAEoAsQDQbLYwQBBERDbBw0FIAEoAvgDIgZBgICAgHhGDQggASgCnAQiAkEtTwRAQQMhCAwJCyACQRdLBEBBAiEIDAkLIAJBCEshCAwICyABQdgCaiADQbQB/AoAACABKAKIBCEJIAEoAtwDIhJBgICAgHhGDQZBAyEIIAEtAIAEIgJBA08NBkECIAJBAEcgAkECRhshCAwGCyABQegAahDIAgsgJ0UNACAoICdBARCiBwsgIgRAIB0gIkEBEKIHCyALIAdBARCiBwwOC0HYmsgAEP8HDAYLIAFBADYCtARBASEFIAFBATYCqAQgAUGw2sEANgKkBCABQgQ3AqwEIAFBpARqEJIHIQIMAwsgAUHIAGoQjwchAgwLCyABQQA6AKwEIAEgCDYCqAQgASAJNgKkBCAAIAFBpARqIgIQpQQgAiABQbACaiABKALoAiIeIAEoAuwCEKMEIAEoAqgEIQNBASEGAkAgASgCpAQiBEGAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBA5IAEoAqgEIRMgASgCpAQiFEGAgICAeEYEQEEoEHEiAkUNBSACIBM2AiQgAkEPNgIgIAJBw9jBADYCHCACQQM2AgQgAkHsn8EANgIAIARFDQEgAyAEQQEQogcMAQsgASgCrAQhDCAEBEAgAyAEQQEQogcLIAFBpARqIAFBsAJqIAEoAvQCIAEoAvgCEKMEIAEoAqgEIQMCQCABKAKkBCIEQYCAgIB4RgRAIAMhAgwBCyABQaQEaiADIAEoAqwEEDkgASgCqAQhFSABKAKkBCIWQYCAgIB4RgRAQSgQcSICRQ0GIAIgFTYCJCACQQ82AiAgAkHS2MEANgIcIAJBAzYCBCACQeyfwQA2AgAgBEUNASADIARBARCiBwwBCyABKAKsBCENIAQEQCADIARBARCiBwsgAUGkBGogAUGwAmogASgCmAMgASgCnAMQowQgASgCqAQhAwJAIAEoAqQEIgRBgICAgHhGBEAgAyECDAELIAFBpARqIAMgASgCrAQQOSABKAKoBCEXIAEoAqQEIhhBgICAgHhGBEBBKBBxIgJFDQcgAiAXNgIkIAJBDTYCICACQeHYwQA2AhwgAkEDNgIEIAJB7J/BADYCACAERQ0BIAMgBEEBEKIHDAELIAEoAqwEIRAgBARAIAMgBEEBEKIHCyABQaQEaiABQbACaiABKAKwAyABKAK0AxCjBCABKAKoBCEDAkAgASgCpAQiCkGAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBA5IAEoAqgEIRkgASgCpAQiGkGAgICAeEYEQEEoEHEiAkUNCCACIBk2AiQgAkEMNgIgIAJB7tjBADYCHCACQQM2AgQgAkHsn8EANgIAIApFDQEgAyAKQQEQogcMAQsgASgCrAQhBCAKBEAgAyAKQQEQogcLIAFBpARqIAFBsAJqIAEoAsgDIAEoAswDEKMEIAEoAqgEIQMCQCABKAKkBCIKQYCAgIB4RgRAIAMhAgwBCyABQaQEaiADIAEoAqwEEDkgASgCqAQhGyABKAKkBCIcQYCAgIB4RgRAQSgQcSICRQ0JIAIgGzYCJCACQQo2AiAgAkH62MEANgIcIAJBAzYCBCACQeyfwQA2AgAgCkUNASADIApBARCiBwwBCyABKAKsBCECIAoEQCADIApBARCiBwsgAUG8BGogCUEDbCIDQbjawQAQ5QYgAUHIBGogA0HI2sEAEOUGIAFB1ARqIAlBAnRB2NrBABDlBiABQeAEaiADQejawQAQ5QYgAUHsBGogCUH42sEAEOUGAkACQAJAAkACQCAIRQRAIAFBADYCgAUgAUKAgICAwAA3AvgEDAELIAFB+ARqIAlBCWxBiNvBABDlBiAIQQFHDQELIAFBADYCjAUgAUKAgICAwAA3AoQFDAELIAFBhAVqIAlBD2xBmNvBABDlBiAIQQJLDQELIAFBADYCrAQgAUKAgICAwAA3AqQEDAELIAFBpARqIAlBFWxBqNvBABDlBgsgAUH8AmogAUGIA2ogEyAMIBUgDSABKALABCIjIAEoAsQEIgwQygMgASgCpAMgASgCqAMgFyAQIAEoAswEIiQgASgC0AQiDRD/AiAZIAQgASgC2AQiJSABKALcBCIQEJgDIAEoAtQDIAEoAtgDIBsgAiABKALkBCImIAEoAugEIgQgASgC8AQiBSABKAL0BCIDELECIAEoAqwEIQ4gASgCqAQhHyABKAKMBSEGIAEoAogFISAgASgCgAUhCiABKAL8BCEhAkACQCASQYCAgIB4RgRAIAEoAqQEIQ8MAQsgAUHcA2ogAUHUAmogCSAhIAogICAGIB8gDhBwIQIgASgCpAQhDyACDQELIAAgCSAIICMgDCAkIA0gJSAQICYgBCAFIAMgISAKICAgBiAfIA4QigMhAiAPBEAgHyAPQQJ0QQQQogcLIAEoAoQFIgAEQCAgIABBAnRBBBCiBwsgASgC+AQiAARAICEgAEECdEEEEKIHCyABKALsBCIABEAgBSAAQQJ0QQQQogcLIAEoAuAEIgAEQCAmIABBAnRBBBCiBwsgASgC1AQiAARAICUgAEECdEEEEKIHCyABKALIBCIABEAgJCAAQQJ0QQQQogcLIAEoArwEIgAEQCAjIABBAnRBBBCiBwsgHARAIBsgHEEBEKIHCyAaBEAgGSAaQQEQogcLIBgEQCAXIBhBARCiBwsgFgRAIBUgFkEBEKIHCyAUBEAgEyAUQQEQogcLIAFB2AJqEOUFIAFBlANqEN8FIAFBrANqEOAFIAFBxANqEN8FDAgLIA8EQCAfIA9BAnRBBBCiBwsgASgChAUiAARAICAgAEECdEEEEKIHCyABKAL4BCIABEAgISAAQQJ0QQQQogcLIAEoAuwEIgAEQCAFIABBAnRBBBCiBwsgASgC4AQiAARAICYgAEECdEEEEKIHCyABKALUBCIABEAgJSAAQQJ0QQQQogcLIAEoAsgEIgAEQCAkIABBAnRBBBCiBwsgASgCvAQiAARAICMgAEECdEEEEKIHC0EAIQYgHEUNACAbIBxBARCiBwsgGkUNACAZIBpBARCiBwsgGEUNACAXIBhBARCiBwsgFkUNACAVIBZBARCiBwsgFEUNACATIBRBARCiBwsgASgC5AIiAARAIB4gAEEBEKIHCyABKALwAiIABEAgASgC9AIgAEEBEKIHCyABKAKUAyIABEAgASgCmAMgAEEBEKIHCyABKAKgAyIABEAgASgCpAMgAEECdEEEEKIHCyABKAKsAyIABEAgASgCsAMgAEEBEKIHCyABKAK4AyIAQYCAgIB4ckGAgICAeEcEQCABKAK8AyAAQQEQogcLIAEoAsQDIgAEQCABKALIAyAAQQEQogcLIAEoAtADIgAEQCABKALUAyAAQQJ0QQQQogcLIAZFIBJBgICAgHhGcg0CIBIEQCABKALgAyASQQEQogcLIAEoAugDIgAEQCABKALsAyAAQQEQogcLIAEoAvQDIgBFDQIgASgC+AMgAEECdEEEEKIHDAILIAFBADoArAQgASAINgKoBCABIBE2AqQEIAAgAUGkBGoiAhClBCACIAFBsAJqIAEoAtwCIAEoAuACEKMEIAEoAqgEIQNBASEFIAEoAqQEIgRBgICAgHhGBEAgAyECDAELIAFBpARqIAMgASgCrAQQOSABKAKoBCEJIAEoAqQEIg9BgICAgHhGBEBBKBBxIgJFDQMgAiAJNgIkIAJBDzYCICACQcPYwQA2AhwgAkEDNgIEIAJB7J/BADYCACAERQ0BIAMgBEEBEKIHDAELIAEoAqwEIQwgBARAIAMgBEEBEKIHCyABQaQEaiABQbACaiABKALoAiABKALsAhCjBCABKAKoBCEDAkAgASgCpAQiBEGAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBA5IAEoAqgEIRIgASgCpAQiE0GAgICAeEYEQEEoEHEiAkUNBCACIBI2AiQgAkEPNgIgIAJB0tjBADYCHCACQQM2AgQgAkHsn8EANgIAIARFDQEgAyAEQQEQogcMAQsgASgCrAQhDSAEBEAgAyAEQQEQogcLIAFBpARqIAFBsAJqIAEoApQDIgogASgCmAMQowQgASgCqAQhAwJAIAEoAqQEIgRBgICAgHhGBEAgAyECDAELIAFBpARqIAMgASgCrAQQOSABKAKoBCEUIAEoAqQEIhVBgICAgHhGBEBBKBBxIgJFDQUgAiAUNgIkIAJBDTYCICACQeHYwQA2AhwgAkEDNgIEIAJB7J/BADYCACAERQ0BIAMgBEEBEKIHDAELIAEoAqwEIRAgBARAIAMgBEEBEKIHCyABQaQEaiABQbACaiABKAK4AyABKAK8AxCjBCABKAKoBCEDAkAgASgCpAQiHkGAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBA5IAEoAqgEIRYgASgCpAQiF0GAgICAeEYEQEEoEHEiAkUNBiACIBY2AiQgAkEMNgIgIAJB7tjBADYCHCACQQM2AgQgAkHsn8EANgIAIB5FDQEgAyAeQQEQogcMAQsgASgCrAQhBCAeBEAgAyAeQQEQogcLIAFBpARqIAFBsAJqIAEoAtADIh4gASgC1AMQowQgASgCqAQhAwJAIAEoAqQEIg5BgICAgHhGBEAgAyECDAELIAFBpARqIAMgASgCrAQQOSABKAKoBCEYIAEoAqQEIhlBgICAgHhGBEBBKBBxIgJFDQcgAiAYNgIkIAJBCjYCICACQfrYwQA2AhwgAkEDNgIEIAJB7J/BADYCACAORQ0BIAMgDkEBEKIHDAELIAEoAqwEIQIgDgRAIAMgDkEBEKIHCyABQbwEaiARQQNsIgNBhNnBABDlBiABQcgEaiADQZTZwQAQ5QYgAUHUBGogEUECdEGk2cEAEOUGIAFB4ARqIANBtNnBABDlBiABQewEaiARQcTZwQAQ5QYCQAJAAkACQAJAIAhFBEAgAUEANgKABSABQoCAgIDAADcC+AQMAQsgAUH4BGogEUEJbEHU2cEAEOUGIAhBAUcNAQsgAUEANgKMBSABQoCAgIDAADcChAUMAQsgAUGEBWogEUEPbEHk2cEAEOUGIAhBA0YNAQsgAUEANgKsBCABQoCAgIDAADcCpAQMAQsgAUGkBGogEUEVbEH02cEAEOUGCyABQfACaiABQfwCaiAJIAwgEiANIAEoAsAEIh8gASgCxAQiDBDKAyABQZwDaiABQagDaiAUIBAgASgCzAQiICABKALQBCINELMCIBYgBCABKALYBCIhIAEoAtwEIhAQmAMgAUHYA2ogAUHoA2ogGCACIAEoAuQEIiMgASgC6AQiBCABKALwBCIkIAEoAvQEIgMQgAIgASgCrAQhJiABKAKoBCEaIAEoAowFIQUgASgCiAUhGyABKAKABSEOIAEoAvwEIRwCQAJAIAZBgICAgHhGBEAgASgCpAQhBgwBCyABQfgDaiABQdQCaiARIAggHCAOIBsgBSAaICYQdSECIAEoAqQEIQYgAg0BCyAAIBEgCCAfIAwgICANICEgECAjIAQgJCADIBwgDiAbIAUgGiAmEIoDIQIgBgRAIBogBkECdEEEEKIHCyABKAKEBSIABEAgGyAAQQJ0QQQQogcLIAEoAvgEIgAEQCAcIABBAnRBBBCiBwsgASgC7AQiAARAICQgAEECdEEEEKIHCyABKALgBCIABEAgIyAAQQJ0QQQQogcLIAEoAtQEIgAEQCAhIABBAnRBBBCiBwsgASgCyAQiAARAICAgAEECdEEEEKIHCyABKAK8BCIABEAgHyAAQQJ0QQQQogcLIBkEQCAYIBlBARCiBwsgFwRAIBYgF0EBEKIHCyAVBEAgFCAVQQEQogcLIBMEQCASIBNBARCiBwsgDwRAIAkgD0EBEKIHCyABQdgCahDmBSABKAKQAyIABEAgCiAAQQEQogcLIAFBtANqEOAFIAEoAswDIgBFDQYgHiAAQQEQogcMBgsgBgRAIBogBkECdEEEEKIHCyABKAKEBSIABEAgGyAAQQJ0QQQQogcLIAEoAvgEIgAEQCAcIABBAnRBBBCiBwsgASgC7AQiAARAICQgAEECdEEEEKIHCyABKALgBCIABEAgIyAAQQJ0QQQQogcLIAEoAtQEIgAEQCAhIABBAnRBBBCiBwsgASgCyAQiAARAICAgAEECdEEEEKIHCyABKAK8BCIABEAgHyAAQQJ0QQQQogcLQQAhBSAZRQ0AIBggGUEBEKIHCyAXRQ0AIBYgF0EBEKIHCyAVRQ0AIBQgFUEBEKIHCyATRQ0AIBIgE0EBEKIHCyAPRQ0AIAkgD0EBEKIHCyABKALYAiIABEAgASgC3AIgAEEBEKIHCyABKALkAiIABEAgASgC6AIgAEEBEKIHCyABKAKQAyIABEAgASgClAMgAEEBEKIHCyABKAK0AyIABEAgASgCuAMgAEEBEKIHCyAlQYCAgIB4ckGAgICAeEcEQCABKALEAyAlQQEQogcLIAEoAswDIgAEQCABKALQAyAAQQEQogcLIAVBAXMgASgC+AMiAEGAgICAeEZyDQAgAARAIAEoAvwDIABBARCiBwsgASgChAQiAEUNACABKAKIBCAAQQEQogcLIAFBsAJqEOUDICcEQCAoICdBARCiBwsgIgRAIB0gIkEBEKIHCyALIAdBARCiByABKAIwIgAgACgCACIAQQFrNgIAIABBAUcNCyABKAIwEPECDAsLAAsgB0UNAgJAIAtBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAdqTwRAIAJFDQMgAyAHQSdqSw0BDAMLQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyALQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyAHakkNBSACRSADIAdBJ2pNcg0AQYyNyABBLkG8jcgAEOsHAAsgCxCiAgsgECAdQQFqIh1HDQALCyABQQA2AugCIAFBATYC3AIgAUGk1sEANgLYAiABQgQ3AuACIAFB2AJqEJIHIQILIAEoAjAiACAAKAIAIgBBAWs2AgAgAEEBRw0DIAEoAjAQ8QIMAwtBzIzIAEEuQfyMyAAQ6wcACyABQQA2AugCIAFBATYC3AIgAUGopcEANgLYAiABQgQ3AuACIAFB2AJqEJIHIQIMAQsgAUEANgLoAiABQQE2AtwCIAFBjKXBADYC2AIgAUIENwLgAiABQdgCahCSByECCyABQZAFaiQAIAILlzUCKH8CfiMAQZAFayIBJAACQAJAIAAoAswBIgNBBE8EQCAAKALIASICKAAAQdCWjSBHDQEgAUIANwMYIAEgAzYCFCABIAI2AhAgAUHYAmogAUEQahAxIAFBQGsiAyABQeQCaigCADYCACABIAEpAtwCNwM4IAEoAtgCIgJFBEAgAUE4ahCPByECDAMLIAFBLGogAygCADYCACABIAEpAzg3AiQgASABKQPoAiIpNwMwIAEgAjYCIAJAAkAgKacoAkAiEARAIAFB/ABqIQQgAUHwAGohDCABQewCaiEiIAFB4AJqIQ0DQCABQQA6ALgCIAFBADYCsAIgAUHYAmogAUEgaiAdIAFBsAJqEKgBIAFB0ABqIgIgDUEIaigCADYCACABIA0pAwA3A0gCQAJAAkACQAJAAkACQAJAAkAgASkD2AIiKUIDUgRAIAQgIkG0AfwKAAAgDEEIaiACKAIANgIAIAwgASkDSDcDACABICk3A2gCQCABKAJwIAFB6ABqIClCAlEbIgIoAiwiB0EATgRAIAIoAighAgJAIAdFBEBBASELDAELIAcQcSILRQ0ICyAHBEAgCyACIAf8CgAACyABQegAahD8ASAHQQlJDQhB/NXBACAHIAtqQQlrQQkQ2wcNCSAHIQICQANAIAFBCGpBLyALIAIQqQNBASEdQQAhIiABKAIIQQFxRQRADAILAkAgByABKAIMIgJLBEAgAiALai0AAEEvRg0BCyACIAdNDQEMAgsLIAEgAjYCqAQgASALNgKkBCABIAFBpARqrUKAgICAIIQ3A7ACIAFCATcC5AIgAUECNgLcAiABQazWwQA2AtgCIAEgAUGwAmo2AuACIAFB6ABqIAFB2AJqEOwDIAEoAmgiAkGAgICAeEYNACABKQJsIilCIIinIQUgKachHSACISILIAFB2AJqIAFBIGogCyAHEMkEIAFB4ABqIAFB6AJqKAIANgIAIAEgASkD4AI3A1gCQCABKQPYAiIpQgNRBEAgAUHYAGoQjwchAgwBCyABQfwAaiABQewCakG0AfwKAAAgAUH4AGogAUHgAGooAgA2AgAgASApNwNoIAEgASkDWDcDcCABQQA2ArgCIAFCgICAgBA3ArACIAFB2AJqIAFB6ABqIAFBsAJqEJkBIAEoAtgCQQFGBEAgASkC3AIQzwchAiABKAKwAiIABEAgASgCtAIgAEEBEKIHCyABQegAahD8AQwBCyABKAKwAiEnIAEoArQCISggASgCuAIhAiABQegAahD8ASABQQA2ArgCIAEgAjYCtAIgASAoNgKwAiABQdgCaiABQbACahBGIAEoAtwCIQICQCABKALY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AEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALozADJ38EfQF+IwBBwAxrIgMkAAJAAkACQAJAAkACQAJAIAAoAtwEIgFBgYCAgHhGBEACQCAAKALwBCIKQQRJDQACQCAAKALsBCIELwAAIAQtAAJBEHRyQfDY5QNGBEAgCkELSQ0CIApBCmshAkEAIQECQANAIAEgBGpB+MPBAEELENsHRQ0BIAIgAUEBaiIBRw0ACyAKQf//A00NAyADQQA2AugHIANBATYC3AcgA0Hww8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMCQsgASAKSw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIOQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCkEBcUUEQCADKAKwASEIIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAOIAggBCACEJoBIAMoAtgHIQUgAygCtAwiDUGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiEHIAMoAsQKIQsgA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQkgA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIAk2AtwHIAMgCDYC2AcgAEH0BGogDhClBAwDCyADQZgGaiICIANBCGpBwAH8CgAAIANB2AdqIAIQaiADKALcByECIAMoAtgHIgVBgICAgHhGBEAgAkUNBAwKCyADQbADaiADQeAHakHkAvwKAAAgAygCxAohCyADKALICiEHIANBADoA4AcgAyAHNgLcByADIAs2AtgHIABB9ARqIANB2AdqEKUEQYCAgIB4IQ0MAgsgA0EIahCgAyAFIgINCAwCCyADQQA2AugHIANBATYC3AcgA0Goo8EANgLYByADQgQ3AuAHIANB2AdqEJIHIQIMBwsgACgC8AQiBCABQQtqIghJDQIgAEEANgLwBCAEIAhHBEAgBCAIayIEBEAgACgC7AQiASABIAhqIAT8CgAA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2OUDRgRAIApBC0kNAiAKQQprIQJBACEBAkADQCABIARqQfjDwQBBCxDbB0UNASACIAFBAWoiAUcNAAsgCkH//wNNDQMgA0EANgLoByADQQE2AtwHIANB8MPBADYC2AcgA0IENwLgByADQdgHahCSByECDAkLIAEgCksNCiADQdgHaiAEIAEQ+wIgAykC3AchLCADKALYB0EBRgRAICwQzQchAgwJCyADQdgHaiAspyAsQiCIpxBNIAMoAtgHIQIgAygChAkiBEGAgICAeEYEQCACRQ0DDAkLIANBCGpBBHIgA0HYB2oiDkEEckGoAfwKAAAgA0HAAWogA0GQCWopAwAiLDcDACADIAMpA4gJNwO4ASADIAQ2ArQBIAMgAjYCCAJAICynIgpBAXFFBEAgAygCsAEhCCADKAKcASEEIANBmAZqIgIgA0H4AGoQwwMgDiAIIAQgAhCaASADKALYByEFIAMoArQMIg1BgICAgHhGDQEgAygC3AchAiADQbADaiADQeAHakHkAvwKAAAgAygCyAohByADKALECiELIANBoAJqIANBzApqQZAB/AoAACADKALcCyEJIANByAFqIANB4AtqQdQA/AoAACADKQO4DCEsIANBADoA4AcgAyAJNgLcByADIAg2AtgHIABB9ARqIA4Q4QMMAwsgA0GYBmoiAiADQQhqQcAB/AoAACADQdgHaiACEGogAygC3AchAiADKALYByIFQYCAgIB4RgRAIAJFDQQMCgsgA0GwA2ogA0HgB2pB5AL8CgAAIAMoAsQKIQsgAygCyAohByADQQA6AOAHIAMgBzYC3AcgAyALNgLYByAAQfQEaiADQdgHahDhA0GAgICAeCENDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoAvAEIgQgAUELaiIISQ0CIABBADYC8AQgBCAIRwRAIAQgCGsiBARAIAAoAuwEIgEgASAIaiAE/AoAAAsgACAENgLwBAsCQAJAAkAgACgC3ARBgICAgHhrDgIBAgALIAAQvgIMAQsgABC9AQsgACACNgIEIAAgBTYCACAAQQhqIANBsANqQeQC/AoAACAAIAc2AvACIAAgCzYC7AIgAEH0AmogA0GgAmpBkAH8CgAAIAAg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Sw0KIANB2AdqIAQgARD7AiADKQLcByEsIAMoAtgHQQFGBEAgLBDNByECDAkLIANB2AdqICynICxCIIinEE0gAygC2AchAiADKAKECSIEQYCAgIB4RgRAIAJFDQMMCQsgA0EIakEEciADQdgHaiIJQQRyQagB/AoAACADQcABaiADQZAJaikDACIsNwMAIAMgAykDiAk3A7gBIAMgBDYCtAEgAyACNgIIAkAgLKciCEEBcUUEQCADKAKwASEHIAMoApwBIQQgA0GYBmoiAiADQfgAahDDAyAJIAcgBCACEJoBIAMoAtgHIQUgAygCtAwiCkGAgICAeEYNASADKALcByECIANBsANqIANB4AdqQeQC/AoAACADKALICiELIAMoAsQKIQ4gA0GgAmogA0HMCmpBkAH8CgAAIAMoAtwLIQ0gA0HIAWogA0HgC2pB1AD8CgAAIAMpA7gMISwgA0EAOgDgByADIA02AtwHIAMgBzYC2AcgACAJEIQCDAMLIANBmAZqIgIgA0EIakHAAfwKAAAgA0HYB2ogAhBqIAMoAtwHIQIgAygC2AciBUGAgICAeEYEQCACRQ0EDAoLIANBsANqIANB4AdqQeQC/AoAACADKALECiEOIAMoAsgKIQsgA0EAOgDgByADIAs2AtwHIAMgDjYC2AcgACADQdgHahCEAkGAgICAeCEKDAILIANBCGoQoAMgBSICDQgMAgsgA0EANgLoByADQQE2AtwHIANBqKPBADYC2AcgA0IENwLgByADQdgHahCSByECDAcLIAAoArAFIgQgAUELaiIHSQ0CIABBADYCsAUgBCAHRwRAIAQgB2siBARAIAAoAqwFIgEgASAHaiAE/AoAAAsgACAENgKwBQsgAEFAayEBAkACQAJAIAAoApwFQYCAgIB4aw4CAQIACyABEL4CDAELIAEQvQELIAAgAjYCRCAAIAU2AkAgAEHIAGogA0GwA2pB5AL8CgAAIAAgCzYCsAMgACAONgKsAyAAQbQDaiADQaACakGQAfwKAAAgACANNgLEBCAAQcgEaiADQcgBakHUAPwKAAAgACAsNwOgBSAAIAo2ApwFIAhBAXENACADQQhqEKADC0EAIQIgACgCnAUiAUGBgICAeEYNBQsgAEFAayESIAFBgICAgHhHDQEgACgCqAMiAiAAKAJITwRAIAAoArAFIQFB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DyADRQ0GIA8gDygCACgCABEDACADLQAQITggAygCDCE5IAJBgOHHAEELELkFIQMgBEEANgKoAyAEQQE2ApwDIARBqOHHADYCmAMgBEIENwKgAyAEQZgDahCVByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhOiADKAIMITtBCCEeQQghHyACQbDhxwBBBRC5BSICBEAgAigCDCE8IAItABAhHwsgBEEQakG14ccAQQUQuQUiAgRAIAIoAgwhPSACLQAQIR4LQQghGkEIISAgBEEQakG64ccAQQUQuQUiAgRAIAIoAgwhPiACLQAQISALIARBEGpBv+HHAEEFELkFIgIEQCACKAIMIT8gAi0AECEaC0EIISFBCCEiIARBEGpBxOHHAEEFELkFIgIEQCACKAIMIUAgAi0AECEiCyAEQRBqQcnhxwBBBRC5BSICBEAgAigCDCFBIAItABAhIQsgBEHIAGoiAkHO4ccAQQ8QuQUhAyAEQQA2AqgDIARBATYCnAMgBEGA4scANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgA0UNBSASIBIoAgAoAgARAwAgAy0AECFCIAMoAgwhQyACQYjixwBBDxC5BSEDIARBADYCqAMgBEEBNgKcAyAEQbjixwA2ApgDIARCBDcCoAMgBEGYA2oQlQchEiADRQ0FIBIgEigCACgCABEDACADLQAQIUQgAygCDCFFIAJBwOLHAEEMELkFIQMgBEEANgKoAyAEQQE2ApwDIARB7OLHADYCmAMgBEIENwKgAyAEQZgDahCVByESIANFDQUgEiASKAIAKAIAEQMAIAMtABAhRiADKAIMIUcgAkH04scAQQwQuQUhAiAEQQA2AqgDIARBATYCnAMgBEGg48cANgKYAyAEQgQ3AqADIARBmANqEJUHIRIgAkUNBSASIBIoAgAoAgARAwAgAUE4aiEcIAItABAhSCACKAIMIUkgASgCYEGAgICAeEYNByABKAJYICNHDQggBEHUAWqtQoCAgIAQhCFKQQAhEgNAAkAgBCASNgLUASAEQQE2ApwDIARBiNDHADYCmAMgBEIBNwKkAyAEIEo3A9gBIAQgBEHYAWo2AqADIARB0ANqIARBmANqELEGIBwgBCgC1AMiAyAEKALYAxC5BSAEKALQAyECRQ0AIAIEQCADIAJBARCiBwsgBCgC1AFB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DUEBaiINNgJsDAALAAsgASACQe8BakH4v8EAEO4BIQQMBwsgAkEQaiAGIAMgBCADIAMgBEsbEPkBIAIoAhQhAyACKAIQIQVBFBBxIgRFDQMLIAQgBTYCDCAEQRg2AgAgBCADNgIQDAMLIAUgCBDrBSEEDAILIAJBCGogBSADIAQgAyADIARLGxD5ASACKAIMIQMgAigCCCEEQRQQcSIBRQ0AIAEgBDYCDCABQRg2AgAgACABNgIEIABBgICAgHg2AgAgASADNgIQDAULAAtBgICAgHghAyACKAJkIgVFDQAgAigCaCIGQQRrKAIAIgdBeHEiCSAFQShsIgVBBEEIIAdBA3EiBxtqSQ0EIAdBACAJIAVBJ2pLGw0FIAYQogILIAEgAS0AGEEBajoAGCACIAEQugMiBTYCvAEgAiANNgK4ASACIAQ2ArQBIAIgAzYCsAEgA0GAgICAeEcEQCAFRQ0CIAMEQCAEQQRrKAIAIgZBeHEiByADQShsIgNBBEEIIAZBA3EiBhtqSQ0HIAZBACAHIANBJ2pLGw0IIAQQogILIAUhBAwBCyAFRQ0AIAJBvAFqELEECyAEIAEQ6wUhASAAQYCAgIB4NgIAIAAgATYCBAwBCyAAIA02AgggACAENgIEIAAgAzYCAAsgAkHwAWokAA8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvfFwIafwJ8IwBBsARrIgMkACADQgA3A5gBIANCADcDkAEgA0IANwOIASADQgA3A4ABIANCADcDeCADQgA3A3AgA0IANwNoIANCADcDYCADQgA3A1ggA0IANwNQIANCADcDSCADQgA3A0AgA0IANwM4IANCADcDMCADQgA3AyggA0IANwMgIANCADcDGCADQgA3AxAgA0IANwMIIANCADcDACADQgA3A7gCIANCADcDsAIgA0IANwOoAiADQgA3A6ACIANCADcDmAIgA0IANwOQAiADQgA3A4gCIANCADcDgAIgA0IANwP4ASADQgA3A/ABIANCADcD6AEgA0IANwPgASADQgA3A9gBIANCADcD0AEgA0IANwPIASADQgA3A8ABIANCADcDuAEgA0IANwOwASADQgA3A6gBIANCADcDoAEgA0IANwPYAyAD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AgBB3o7IAEEBIAEoAgQoAgwRAAAhAwwLCyABKAIAQZjMxABBESABKAIEKAIMEQAAIQMMCgtBASEDIAIgAEEBajYCDCABKAIAIgBBqczEAEERIAEoAgQiBSgCDCIEEQAADQkCQCABLQAKQYABcUUEQCAAQbuzxQBBASAEEQAADQsgAkEMaiABEMQERQ0BDAsLIABB24HCAEECIAQRAAANCiACQQE6ABMgAiAFNgIYIAIgADYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqEMQEDQogAigCIEHZgcIAQQIgAigCJCgCDBEAAA0KCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCQtBASEDIAEoAgAiBEG6zMQAQRkgASgCBCIGKAIMIgURAAANCCAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQogACABEKcERQ0BDAoLIARB24HCAEECIAURAAANCSACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQkgAigCIEHZgcIAQQIgAigCJCgCDBEAAA0JCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMCAtBASEDIAEoAgAiBEHTzMQAQRogASgCBCIGKAIMIgURAAANByAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQkgACABEKcERQ0BDAkLIARB24HCAEECIAURAAANCCACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqEKcEDQggAigCIEHZgcIAQQIgAigCJCgCDBEAAA0ICyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBwtBASEDIAEoAgAiBEHtzMQAQRsgASgCBCIGKAIMIgURAAANBiAAQQFqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEKcERQ0BDAgLIARB24HCAEECIAURAAANByACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeCBwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCAC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LQAAQQNrDgUBAAAAAgALIAAgARDKAgwFCyAAKQMIIglC/////////weDIQogCUL///////////8Ag0L/////////9/8AWARAIAlCNIinIQAgCUIAUw0CIAJBsAJqDAMLQeydxgBB753GACAJQgBZIgAbQfOdxgAgClAiAxshBEEDQQQgABtBAyADGyEADAMLIAEoAgBB8ZLGAEEEIAEoAgQoAgwRAAAMAwsgAkEtOgCwAkEBIQggAkGxAmoLIQYCfwJAAkACQAJAAkACQAJAAkAgAEH/D3EiAEUgClBxRQRAIABBAkkgCkIAUnIhBCAKQoCAgICAgIAIhCAKIAAbIglCAoYhCiAJQgGDIQ8CQAJAAkAgAEG1CGtBzHcgABsiAEEASARAIAJBkAJqQYC8xQAgACAAQYWiU2xBFHYgAEF/R2siAGoiB0EEdCIDaykDACIJIApCAoQiCxDdBiACQYACakGIvMUAIANrKQMAIg0gCxDdBiACQfABaiACKQOYAiILIAIpA4ACfCIMIAIpA4gCIAsgDFatfCAAIAdBsdm1H2xBE3ZrQfwAakH/AHFBwABzIgMQoQcgAkGwAWogCSAKIARBf3OsfCILEN0GIAJBoAFqIA0gCxDdBiACQZABaiACKQO4ASILIAIpA6ABfCIMIAIpA6gBIAsgDFatfCADEKEHIAJB4AFqIAkgChDdBiACQdABaiANIAoQ3QYgAkHAAWogAikD6AEiCSACKQPQAXwiDSACKQPYASAJIA1WrXwgAxChByACKQPAASELIAIpA5ABIQkgAikD8AEhDCAAQQJJDQFBACEDIABBP0kNAgwFCyACQYABaiAAQcHoBGxBEnYgAEEDS2siB0EEdCIDKQPg5EUiCSAKQgKEIg0Q3QYgAkHwAGogA0Ho5MUAaikDACILIA0Q3QYgAkHgAGogAikDiAEiDCACKQNwfCIOIAIpA3ggDCAOVq18IAcgAGsgB0HPpsoAbEETdmpB/QBqQf8AcUHAAHMiABChByACQSBqIAkgCiAEQX9zrHwiDBDdBiACQRBqIAsgDBDdBiACIAIpAygiDCACKQMQfCIOIAIpAxggDCAOVq18IAAQoQcgAkHQAGogCSAKEN0GIAJBQGsgCyAKEN0GIAJBMGogAikDWCIJIAIpA0B8IgsgAikDSCAJIAtWrXwgABChByACKQMw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ACABIAA2ArADQdjmyABBKyABQbADakHY6MAAQbDwwAAQ4AYAC0G4u8kAQQA2AgBBtLvJAEEAOgAAIARBhAhPBEAgBBCbBwsgA0GECE8EQCADEJsHCyACQQRrKAIAIgNBeHEiBEHwAUH0ASADQQNxIgMbSQ0CIANBACAEQZQCTxsNACACEKICIAAgBjYCBCAAQQA2AgAgAUHgCWokAA8LC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAvFFwICfwF+IwBBQGoiAiQAIAEoAgQhAyABKAIAIQECfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCACIALQAAQQFrDiMBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhsjHB0eHyAhIgALIAIgAEEEajYCBCACIABBCGo2AiAgAiAAQQxqNgIkIAIgAkEkaq1CgICAgLAMhDcDGCACQoCAgIDADCIEIAJBIGqthDcDECACIAQgAkEEaq2ENwMIIAJCAzcCNCACQQQ2AiwgAkHsncUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwrCyABQYyexQBBFiADKAIMEQAADCoLIAFBop7FAEElIAMoAgwRAAAMKQsgAUHHnsUAQR4gAygCDBEAAAwoCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGIn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwnCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkG8n8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwmCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkHsn8UANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwlCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMIIAJCATcCNCACQQI2AiwgAkGcoMUANgIoIAIgAkEIajYCMCABIAMgAkEoahDBAwwkCyACIABBAWo2AiQgAiACQSRqrUKAgICAsAyENwMI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CyAJQRhqIgIgCUGcA2pBwAH8CgAAQfQBEHEiAUUNAiABIAY2AgAgAUEEaiACQcAB/AoAACABIAs6APABIAEgBDYC7AEgASAHNgLoASABQYCAgIB4NgLcASABIBU3AtQBIAEgCDYC0AEgAUEANgLMASABQoCAgIAQNwLEASAAQbDuwAA2AgwgAEEBNgIIIABBmO7AADYCBCAAIAE2AgAgA0GAgICAeHJBgICAgHhGDQMgBUEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgA2pJDQQgAEEAIAEgA0EnaksbDQUgBRCiAgwDC0GgnsYAQTcgCUHfBGpBtJPBAEHYnsYAEOAGAAtB2JrIABD/BwsACyAJQeAEaiQADwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL/Q0BBX8jAEEwayICJAACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOBQECAwQFAAtBASEDIAEoAgAiBEHUpccAQQggASgCBCIGKAIMIgURAAANBiAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQggACABEIQGRQ0BDAgLIARB24HCAEECIAURAAANByACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIQGDQcgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0HCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBgtBASEDIAEoAgAiBEHcpccAQQggASgCBCIGKAIMIgURAAANBSAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQcgACABEIUGRQ0BDAcLIARB24HCAEECIAURAAANBiACQQE6ACggAiAGNgIMIAIgBDYCCCACQeCBwgA2AhggAiABKQIINwIcIAIgAkEoajYCECACIAJBCGo2AhQgACACQRRqEIUGDQYgAigCFEHZgcIAQQIgAigCGCgCDBEAAA0GCyABKAIAQd6OyABBASABKAIEKAIMEQAAIQMMBQtBASEDIAEoAgAiBEHkpccAQQkgASgCBCIGKAIMIgURAAANBCAAQQRqIQACQCABLQAKQYABcUUEQCAEQbuzxQBBASAFEQAADQYgACABEIYGRQ0B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BwsgA0IANwGCASADQdzkATsBgAEMBgsgA0IANwGCASADQdzcATsBgAEMBQsgA0IANwGCASADQdy4ATsBgAEMBAsgA0IANwGCASADQdzEADsBgAEMAwsgA0IANwGCASADQdzOADsBgAEMAgsgAyAENgKAASAAIAMpAoABNwIAIABBCGogA0GIAWovAQA7AQAgBSAJKAIAIAgoAhARAgBFDQMMBQtBACEADAULQQAhAUECCyEEIAAgAykCgAE3AgAgAEEIaiADQYgBai8BADsBACABIAQgASAESxsiAkH/AXEhBCAIKAIQIQoDQCAFIAAgAWotAAAgChECAA0DIAQgAUEBaiIBRw0ACyADIAI6AGALIAYgB0cNAAtBACEADAELQQEhAAsgA0GQAWokACAAC+MJAQZ/IAFBA2wiBCAAKAKQBCICSwRAIAQgAmsiBSAAKAKIBCACa0sEQCAAQYgEaiACIAVBBEEEEKQFIAAoApAEIQILIAAoAowEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKQBAsgACgCnAQiAiABSQRAIAEgAmsiBSAAKAKUBCACa0sEQCAAQZQEaiACIAVBBEEEEKQFIAAoApwEIQILIAAoApgEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKcBAsgACgCqAQiAiAESQRAIAQgAmsiBSAAKAKgBCACa0sEQCAAQaAEaiACIAVBBEEEEKQFIAAoAqgEIQILIAAoAqQEIgYgAkECdGohAyAFQQJPBH8gBUECdEEEayIHBEAgA0EAIAf8CwALIAIgBWoiA0EBayECIAYgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgKoBAsgACgCtAQiAiAESQRAIAQgAmsiBCAAKAKsBCACa0sEQCAAQawEaiACIARBBEEEEKQFIAAoArQEIQILIAAoArAEIgUgAkECdGohAyAEQQJPBH8gBEECdEEEayIGBEAgA0EAIAb8CwALIAIgBGoiA0EBayECIAUgA0ECdGpBBGsFIAMLQQA2AgAgACACQQFqNgK0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AXI6AABBACEDDAQLIAIoAggiAyACKAIARgRAIAJB+JPGABCnBgsgAiADQQFqNgIIIAIoAgQgA2ogBjoAAEEAIQMMAwsgBiADIANByKXGABDqBwALIARBFDYCFCABIARBFGoQiwchAwwBCyAIIAMgA0HIpcYAEOoHAAsgBEEgaiQAIANFDQ4MDQsgAigCACADRgRAIAJB+JLGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQSI6AAAMCwsgAigCACADRgRAIAJBiJPGABCnBiACKAIEIQULIAIgA0EBajYCCCADIAVqQdwAOgAADAoLIAIoAgAgA0YEQCACQZiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEvOgAADAkLIAIoAgAgA0YEQCACQaiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEIOgAADAgLIAIoAgAgA0YEQCACQbiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEMOgAADAcLIAIoAgAgA0YEQCACQciTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEKOgAADAYLIAIoAgAgA0YEQCACQdiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakENOgAADAULIAIoAgAgA0YEQCACQeiTxgAQpwYgAigCBCEFCyACIANBAWo2AgggAyAFakEJOgAADAQLIAMgBCAGQcicxgAQ6gcACyAHKAIMIQMMAwsgB0EENgIUIAAgASAHQRRqEPIGDAYLIAQgBkGYnMYAEIwHAAsMAQsLIABBAjYCACAAIAM2AgQMAgsgACADNgIIIAAgATYCBCAAQQA2AgAMAQsgACADNgIIIAAgATYCBCAAQQE2AgALIAdBIGokAAvFBwEEfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOBQECAw0EAAsgAC0ABEEDRw0MIAAoAggiAygCACEAIANBBGooAgAiASgCACICBEAgACACEQMACyABKAIEIgEEQCAAQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyABakkNDyACQQAgBCABQSdqSxsNDiAAEKICCyADQQRrKAIAIgBBeHEiAUEQQRQgAEEDcSIAG0kNDiAARSABQTRJcg0LDA0LAkAgAC0ABEEBaw4C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gICAgIAEhDcDECADQgE3AiQgA0EBNgIcIANBoPjHADYCGCADIANBEGo2AiAgA0EEaiADQRhqEOwDQYCAgIB4IQYgAygCCCEFIAMoAgQhBCADNQIMIQpBACEHQRELIQAgAyAKNwMgIAMgBTYCHCADIAg6ABkgAyAAOgAYIANBGGogASACENAFIQACQAJAAkACQAJAIAlFBEAgByAERXINBgwBCyAGBEAgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBmpJDQIgAUEAIAIgBkEnaksbDQMgBRCiAgsgBEUgB3INBQsgBUEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgBGpJDQIgAUEAIAIgBEEnaksbDQMgBRCiAgwEC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIANBMGokACAAC+YFAQN/IwBBIGsiAyQAIAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAQ4oAgEBAQEBAQEBAwUBAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQgBAQEBBwALIAFB3ABGDQULIAJBAXFFIAFB/wVNcg0HIAEQ5QRFDQcgA0EOakEAOgAAIANBADsBDCADIAFBFHYtANy2RToADyADIAFBBHZBD3EtANy2RToAEyADIAFBCHZBD3EtANy2RToAEiADIAFBDHZBD3EtANy2RToAESADIAFBEHZBD3EtANy2RToAECABQQFyZ0ECdiICIANBDGoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgAkECayICakHcADoAACADQRRqIgQgAUEPcS0A3LZFOgAAIAAgAykBDDcAACADQf0AOgAVDAgLIABCADcBAiAAQdzgADsBAAwKCyAAQgA3AQIgAEHc6AE7AQAMCQsgAEIANwECIABB3OQBOwEADAgLIABCADcBAiAAQdzcATsBAAwHCyAAQgA3AQIgAEHcuAE7AQAMBgsgAkGAAnFFDQEgAEIANwECIABB3M4AOwEADAULIAJB////B3FBgIAETw0DCyABEOECDQEgA0EYakEAOgAAIANBADsBFiADIAFBFHYtANy2RToAGSADIAFBBHZBD3EtANy2RToAHSADIAFBCHZBD3EtANy2RToA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IAMgAUEDdGoiAiAFNgIEIAIgCjgCACABDQBBACECDAELIAogClsEQANAIAMgAUEBayIGQQF2IgJBA3RqIgcqAgAiCyALWyAKIAtfRXFBfyAKIAtgGyIEQQBMIAUgB0EEaigCAE0gBBsEQCABIQIMAwsgAyABQQN0aiAHKQIANwIAIAIhASAGQQFLDQAMAgsACwNAAkAgAyABQQFrIgRBAXYiAkEDdGoiBioCACILIAtbIAogC19FcQ0AIAUgBkEEaigCAEsNACABIQIMAgsgAyABQQN0aiAGKQIANwIAIAIhASAEQQJPDQALCyADIAJBA3RqIgEgBTYCBCABIAo4AgALIAAgCTYCCCAAIA04AgQgAEEBNgIAC4kGAQV/IwBBIGsiAiQAQQEhBAJAAkACQAJAAkACQEEBIAAoAgAiA0H/////B2ogA0GAgICAeE0bQQFrDgQBAgMEAAsgASgCACIDQcSjxwBBAiABKAIEIgYoAgwiBREAAA0EIABBBGohAAJAIAEtAApBgAFxRQRAIANBu7PFAEEBIAURAAANBiAAIAEQrgINBiABKAIAIQMgASgCBCgCDCEFDAELIANB24HCAEECIAURAAANBSACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqEK4CDQUgAigCEEHZgcIAQQIgAigCFCgCDBEAAA0FCyADQd6OyABBASAFEQAAIQQMBAsgASgCACIDQcajxwBBDiABKAIEIgYoAgwiBREAAA0DAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0FIAAoAgQgACgCCCABELUCRQ0BDAULIANB24HCAEECIAURAAANBCACQQE6AA8gAiAGNgIEIAIgAzYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACgCBCAAKAIIIAJBEGoQtQINBCACQdmBwgBBAhCvAw0ECyADQd6OyABBASAFEQAAIQQMAwsgASgCACIDQdSjxwBBEiABKAIEIgYoAgwiBREAAA0CAkAgAS0ACkGAAXFFBEAgA0G7s8UAQQEgBREAAA0EIAAoAgQgACgCCCABELUCRQ0BDAQLIANB24HCAEECIAURAAANAyACQQE6AA8gAiAGNgIEIAIg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AkACQAJAAkACQAJAQRUgASgCACIDQYCAgIB4cyADQQBOG0EBaw4IAQIDBAUGBwgACyABIAJBH2pB6OfAABCVCCEBIABBAToAACAAIAE2AgQMCAsgAEEAOgAAIAAgAS0ABDoAAQwHCyABLwEEIgFB/wFNBEAgACABOgABIABBADoAAAwHCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwGCyABKAIEIgFB/wFNBEAgACABOgABIABBADoAAAwGCyACQQE6AAggAiABrTcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwFCyABKQMIIgRC/wFYBEAgACAEPAABIABBADoAAAwFCyACQQE6AAggAiAENwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAEsAAQiAUEASARAIAJBAjoACCACIAGsNwMQIAAgAkEIaiACQR9qQejnwAAQ3gY2AgQgAEEBOgAADAQLIAAgAToAASAAQQA6AAAMAwsgAS8BBCIBQYACTwRAIAJBAjoACCACIAGtwzcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwDCyAAIAE6AAEgAEEAOgAADAILIAEoAgQiAUGAAk8EQCACQQI6AAggAiABrDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEIABBAToAAAwCCyAAIAE6AAEgAEEAOgAADAELIAACfyABKQMIIgRCgAJaBEAgAkECOgAIIAIgBDcDECAAIAJBCGogAkEfakHo58AAEN4GNgIEQQEMAQsgACAEPAABQQALOgAACyACQSBqJAALxgQCBn8DfgJAIAEoAgBBAUYEQCABKQMQIgpQBEAMAgsgASgCGCIGKAIAIAYpAwgiCyAGKAIEIgWtIgwgCyAMVBunaiEHAkAgBUL/////DyALIAtC/////w9aG6drIgRBACAEIAVNGyIFIAogA60iDCAKIAxUG6ciBCAEIAVLGyIEQQFGBEAgAiAHLQAAOgAADAELIARFDQAgAiAHIAT8CgAACyABIAogBK0iCn03AxAgBiAKIAt8NwMIIARFBEBBACEEDAILQQEgBGshCCADQQFrIQYgASgCJCEJIAEoAiAhByABKAIoIQMDQAJAIAIgAi0AACADQQNy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KCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahDUASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2AjggAUEBNgIsIAFBqKPBADYCKCABQgQ3AjAgAUEoahCSByEDCyABQdAAaiQAIAML0wQCB38BfiMAQdAAayIBJAACQCAAEFwiAw0AIAAoAtwEIgJBgYCAgHhGIgRFBEACQAJAIAJBgICAgHhGBEBBACAAIAQbIQUgACgCCCIGQQZ0IQMgACgCBCIHQTxqIQICQANAIAIhBCADRQ0BIANBQGohAyACQUBrIQIgBC0AAEEBRw0ACyAEQTxrIgIoAjggAigCICIERw0DIAQgACgC7AJHDQMLIAZBBnQhAyAHQTxqIQIDQCACIQQgA0UNAiADQUBqIQMgAkFAayECIAQtAABBAkcNAAsgBEE8ayICKAI4IAIoAiBGDQEgAUECNgIsIAFBiKPBADYCKCABQgI3AjQgAUKAgICAECIIIAJBOGqthDcDSCABIAggAkEgaq2ENwNAIAEgAUFAazYCMCABQRxqIgAgAUEoahCxBiAAEI4HIQMMBAsgACgCgAQgACgC+ANGDQAgAUECNgIsIAFB5KLBADYCKCABQgI3AjQgAUKAgICAECIIIABBgARqrYQ3A0ggASAIIABB+ANqrYQ3A0AgASABQUBrNgIwIAFBBGoiACABQShqELEGIAAQjgchAwwDCyAAQfQEahCjASEDDAILIAFBAjYCLCABQeSiwQA2AiggAUICNwI0IAFCgICAgBAiCCACQThqrYQ3A0ggASAIIAVB7AJqrYQ3A0AgASABQUBrNgIwIAFBEGoiACABQShqELEGIAAQjgchAwwBCyABQQA2Ajgg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rgQCBX8EfiMAQSBrIgIkAEEEIQMgASgCBCIErSEIIAECfgJAIARC/////w8gASkDCCIHIAdC/////w9aG6drIgZBACAEIAZPG0EETwRAIAEoAgAgByAIIAcgCFQbp2ooAAAhBQwBC0GokMgAKQMAIglCCIghCiAJpyEDIAggCUL/AYNCBFINARoLIAdCBHwLIgk3AwgCQCADQf8BcUEERwRAIABBEmogAkEWai8BADsBACACIAOtQv8BgyAKQgiGhDcCDCACQQRqIAJBDWotAAAiAToAACAAIAIpAQ43AQogAiACKAAJIgM2AgAgAEEJaiABOgAAIAAgAzYABSAAQQA6AAQgAEEBNgIADAELIAJBCGpBAXIgBRCYBCACQRxqIAJBDWotAAA6AAAgAiACKAAJIgM2AgAgAiADNgIYAkACQCAEIAkgCCAIIAlWG6ciA2tBBE8EQCABKAIAIANqKAAAIQRBBCEDQgAhBwwBC0EAIQRBqJDIACkDACIKQgiIIQcgCqchAyAKQv8Bg0IEUg0BCyAJQgR8IQgLIAEgCDcDCCADQf8BcUEERwRAIAAgAzoACCAAQQA6AAQgAEEBNgIAIAAgB6ciATsACSAAIAdCGIg+AgwgAEELaiABQRB2OgAADAELIAAgAigCGDYAECAAQQA2AgAgACAErTcDCCAAQRRqIAJBHGotAAA6AAAgAEF/IAQgBEEBcWoiACAAIARJG603AxgLIAJBIGokAAvdBAIHfwF+IwBBEGsiAyQAAkAgAC8BDCICRQRAIAAoAgAgACgCBCABEKEDIQEMAQsgAyAB/QACAP0LAwACQAJ/IAApAggiCaciB0GAgIAIcUUEQCADKAIEDAELIAAoAgAgAygCACADKAIEIgEgACgCBCgCDBEAAA0BIAAgB0GAgID/eXFBsICAgAJyIgc2AgggA0IBNwMAIAIgAUH//wNxayIBQQAgASACTRshAkEACyEIAkAgAygCDCIFRQRADAELIAMoAgghAQNAAn8CQAJAAkACQCABLwEAQQFrDgIBAgALIAFBBGooAgAMAwsgAUECai8BACIEDQFBAQwCCyABQQhqKAIADAELIARB9v8XaiAEQZz/H2pxIARBmPg3aiAEQfCxH2pxc0ERdkEBagsgAUEMaiEBIAZqIQYgBUEBayIFDQALCwJAIAYgCGoiASACQf//A3FJBEAgAiABayEFQQAhAUEAIQICQAJAAkAgB0EddkEDcUEBaw4DAAEAAgsgBSECDAELIAVB/v8DcUEBdiECCyAHQf///wBxIQggACgCBCEGIAAoAgAhBANAIAFB//8DcSACQf//A3FPDQIgAUEBaiEBIAQgCCAGKAIQEQIARQ0ACwwCCyAAKAIAIAAoAgQgAxChAyEBIAAgCTcCCAwCCyAEIAYgAxChAw0AIAUgAmtB//8DcSEFQQAhAgNAIAUgAkH//wNxTQRAQQAhASAAIAk3AggMAwtBASEBIAJBAWohAiAEIAggBigCEBECAEUNAAsgACAJNwIIDAELQQEhAQsgA0EQaiQAIAELogQBB38jAEHQAGsiAiQAIAAgAToAbCAAKAIYIQMgAEGAgICAeDYCGAJAAkAgA0GAgICAeEcEQCACQRxqIABBJGr9AAIA/QsCACACQSxqIABBNGr9AAIA/QsCACACQTxqIABBxABq/QACAP0LAgAgAkHMAGogAEHUAGooAgA2AgAgAiADNgIQIAIgACkCHDcCFCACQQhqIAEgAkEQahDgAgJAIAIoAggiASAAKAIEIAAoAgggAigCDCIDKAIQEQAAIggEQCADKAIAIgAEQCABIAARAwALIAMoAgQiAEUNASABQQRrKAIAIgNBeHEiBUEEQQggA0EDcSIDGyAAakkNAyADQQAgBSAAQSdqSxsNBCABEKICDAELIABBADYCCCAAKAJYIgVBgICAgHhyQYCAgIB4RwRAIAAoAlwiBkEEaygCACIEQXhxIgdBBEEIIARBA3EiBBsgBWpJDQMgBEEAIAcgBUEnaksbDQQgBhCiAgsgAEGAgICAeDYCWAJAIAAoAmQiBUUNACAAKAJoIgYoAgAiBARAIAUgBBEDAAsgBigCBCIGRQ0AIAVBBGsoAgAiBEF4cSIHQQRBCCAEQQNxIgQbIAZqSQ0DIARBACAHIAZBJ2pLGw0EIAUQogILIAAgAzYCaCAAIAE2AmQLIAJB0ABqJAAgCA8LQezgwQAQ3QkAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuGBAEHfwJAAkACQAJAAkACQAJAIAMgBCAFayIGSwRAIAMgBE0NASAEIAVBAXQiCmsiCCADTw0CIAQgBWoiByADTw0DAkAgAiAGai0AACILIAIgBGotAAAiDGsiBiAGQR91IgZzIAZrQQF0Qf4DcSACIAhqLQAAIgYgAiAHai0AACIIayIHIAdBH3UiB3MgB2tBAXZqIAFB/wFxSw0AIAQgBUECdGsiASADTw0FIAQgBUEDbCIHayIFIANPDQYgAEH/AXEiACABIAJqLQAAIAIgBWotAAAiAWsiBSAFQR91IgVzIAVrSQ0AIAAgASAGayIBIAFBH3UiAXMgAWtB/wFxSQ0AIAYgC2siASABQR91IgFzIAFrQf8BcSAASw0AIAQgB2oiASADTw0HIAQgCmoiBCADTw0IIAAiAyABIAJqLQAAIAIgBGotAAAiAWsiAiACQR91IgJzIAJrSQ0AIAMgASAIayIBIAFBH3UiAXMgAWtB/wFxSQ0AIAggDGsiACAAQR91IgBzIABrQf8BcSADTSEJCyAJDwsgBiADQYjXxAAQjAcACyAEIANBmNfEABCMBwALIAggA0Go18QAEIwHAAsgByADQbjXxAAQjAcACyABIANByNbEABCMBwALIAUgA0HY1sQAEIwHAAsgASADQejWxAAQjAcACyAEIANB+NbEABCMBwALuAQBCH8jAEEQayIDJAAgAyABNgIEIAMgADYCACADQqCAgIAONwIIAn8CQAJAAkAgAigCECIJBEAgAigCFCIADQEMAgsgAigCDCIARQ0BIAIoAggiASAAQQN0IgBqIQQgAEEIa0EDdkEBaiEGIAIoAgAhAANAAkAgAEEEaigCACIFRQ0AIAMoAgAgACgCACAFIAMoAgQoAgwRAABFDQBBAQwFC0EBIAEoAgAgAyABQQRqKAIAEQIADQQaIABBCGohACAEIAFBCGoiAUcNAAsMAgsgAEEYbCEKIABBAWtB/////wFxQQFqIQYgAigCCCEEIAIoAgAhAANAAkAgAEEEaigCACIBRQ0AIAMoAgAgACgCACABIAMoAgQoAgwRAABFDQBBAQwEC0EAIQdBACEIAkACQAJAIAUgCWoiAUEIai8BAEEBaw4CAQIACyABQQpqLwEAIQgMAQsgBCABQQxqKAIAQQN0ai8BBCEICwJAAkACQCABLwEAQQFrDgIBAgALIAFBAmovAQAhBwwBCyAEIAFBBGooAgBBA3RqLwEEIQcLIAMgBzsBDiADIAg7AQwgAyABQRRqKAIANgIIQQEgBCABQRBqKAIAQQN0aiIBKAIAIAMgASgCBBECAA0DGiAAQQhqIQAgBUEYaiIFIApHDQALDAELCwJAIAYgAigCBE8NACADKAIAIAIoAgAgBkEDdGoiACgCACAAKAIEIAMoAgQoAgwRAABFDQBBAQwBC0EACyADQRBqJAALpQQCBX8EfSABKAIAIgIgASgCBEYEf0EABSABIAJBBGo2AgACfwJAIAIoAgAiAiABKAIIIgEoAggiA0kEQCABKAIEIAJBGGxqIgJBEWovAAAgAkETai0AACIDQRB0ciIEQQh2IQVDAAAQQSABKgJIIAEtAFhBAkYiBhshCEMAAEDBIAEqAkQgBhshByAEQf8BcQRAIAcgCCAHk0MAAH5DlSAEQQFrQf8BcbOUkhCJBCEJCyAFQf8BcQRAIAcgCCAHk0MAAH5DlSAFQQFrQf8BcbOUkhCJBCEKCyADBH0gByAIIAeTQwAAfkOVIANBAWtB/wFxs5SSEIkEBUMAAAAACyEHIAJBDGovAQAiAkH//wFxRQRAIAJBEHQMAwsgAkH/B3EhASACQYCAAnEhAyACQYD4AXEiAkGA+AFGBEAgA0EQdCICQYCAgPwHciABRQ0DGiACIAFBDXRyQYCAgP4HcgwDCyADQRB0IQMgAkUNASACQQ10QYCAgPwAcSABQQ10ckGAgIDAA2ogA3IMAgsgAiADQdy7xwAQjAcACyABIAFnQRBrIgFB//8DcUEIanRB////A3EgA0GAgIDYA3IgAUEXdGtyCyEBIAkgCpRDj8LNPxC3CiEIIAkgB5RDj8LNPxC3CiEJIAogB5RDj8LNPxC3CiAIIAmSkkMAAEBAlUPmQB8/ELcKQ9sPSUGUIAG+lCEHQQELIQEgACAHOAIEIAAgATYCAAu8BAMBfg5/AXsjAEEgayIEJAAgAf0AAxAhEQJAAkACfyABKAIEIgpFBEBB6JrIACELQQAhCkEADAELAkACQAJAIApBAWqtQhR+IgJCIIinDQAgAqdBB2pBeHEiBSAKQQlqIghqIgMgBUkgA0H4////B0tyDQAgAw0BQQghAwwCCyAEQQA2AhggBEEBNgIMIARBxLXEADYCCCAEQgQ3AhAgBEEIakGYtcQAEI0IDAQLIAMQcSIDRQ0DCyADIAVqIQsgASgCACEJIAgEQCALIAkgCPwKAAALIAEoAgwiDQRAIAtBFGshECAJQQhqIQMgCSkDAEJ/hUKAgYKEiJCgwIB/gyECIA0hCCAJIQUDQCACUARAA0AgBUGgAWshBSADKQMAIANBCGohA0KAgYKEiJCgwIB/gyICQoCBgoSIkKDAgH9RDQALIAJCgIGChIiQoMCAf4UhAgsgCSAFIAJ6p0EDdkFsbGoiDGtBbG0hBiAMQQxrKAIAIgdBAEgNAyAMQRBrKAIAIQ4CQCAHRQRAQQEhDwwBCyAHEHEiD0UNBQsgBwRAIA8gDiAH/AoAAAsgAkIBfSACgyECIAxBCGsoAgAhDiAQIAZBFGxqIgYgDEEEay0AADoAECAGIA42AgwgBiAHNgIIIAYgDzYCBCAGIAc2AgAgCEEBayIIDQALCyABKAIICyEDIAAgDTYCDCAAIAM2AgggACAKNgIEIAAgCzYCACAAIBH9CwMQIARBIGokAA8LQaTvwQAQ/wcACwALvgQBBn8jAEEwayIDJAAgAyACNgIIIAMgATYCBCADQSBqIANBBGoQ7QMCQAJAAkAgAygCICIGBEAgAygCJCEBIAMoAixFBEAgACABNgIIIAAgBjYCBCAAQYCAgIB4NgIADAQLIAJBAEgNAQJAIAJFBEBBASEEDAELIAIQcSIERQ0DCyADQQA2AhQgAyAENgIQIAMgAjYCDCABIAJLBEAgA0EMakEAIAEQ9wUgAygCECEEIAMoAhQhBSADKAIMIQILIAEEQCAEIAVqIAYgAfwKAAALIAMgASAFaiIBNgIUIAIgAWtBAk0EQCADQQxqIAFBAxD3BSADKAIQIQQgAygCFCEBCyABIARqIgJBxPnHAC8AACIFOwAAIAJBAmpBxvnHAC0AACIGOgAAIAMgAUEDaiICNgIUIAMgAykCBDcCGANAAkAgA0EgaiADQRhqEO0DIAMoAiAiB0UNACADKAIsIAMoAiQiASADKAIMIAJrSwRAIANBDGogAiABEPcFIAMoAhAhBCADKAIUIQILIAEEQCACIARqIAcgAfwKAAALIAMgASACaiICNgIURQ0BIAMoAgwgAmtBAk0EQCADQQxqIAJBAxD3BSADKAIQIQQgAygCFCECCyACIARqIgEgBTsAACABQQJqIAY6AAAgAyACQQNqIgI2AhQMAQsLIAAgAykCDDcCACAAQQhqIANBFGooAgA2AgAMAwsgAEEANgIIIABCgICAgBg3AgAMAgtBlO7BABD/BwsACyADQTBqJAAL2QQDBX8BewZ9IwBBEGsiBSQAAkACQAJAAkAgA0ECdCIGQf////8DSw0AIANBBHQiB0H9////B08NAAJAIAdFBEBBBCEIQQAhBgwBCyAHEHEiCEUNAgsgBUEANgIMIAUgCDYCCCAFIAY2AgQCQCADBEBBACEGQQAhBwNAIAIgBk0NBSAGQQFqIgQgAk8NBiAGQQJqIgQgAk8NAkMAAIA/IAEgBmoiBC0AALP9EyAEQQFqLQAAs/0gAf0MAAB/QwAAf0MAAH9DAAB/Q/3nASIJIAn95AH9DAAAgL8AAIC/AACAvwAAgL/95AEiCf0fACIKi5MgCf0fASINi5MiC4xDAAAAABDgCCEMIARBAmotAACzQwAAf0OVQwAAAD+UQ9sPSUCUIg4QmQIiDyALIAsgC5QgCiAMIAyMIgogCf0MAAAAAAAAAAAAAAAAAAAAAP1G/U0iCf0bAEEBcRuSIgsgC5QgDSAMIAogCf3HAf0bAkEBcRuSIgwgDJSSkpEiCpWUIQ0gBSgCBCAOEJsCIQ4gB2tBA00EQCAFQQRqIAdBBEEEQQQQpAUgBSgCCCEIIAUoAgwhBwsgCCAHQQJ0aiIEIA44AgwgBCANOAIIIAQgDyAMIAqVlDgCBCAEIA8gCyAKlZQ4AgAgBSAHQQRqIgc2AgwgBkEDaiEGIANBAWsiAw0ACwsgACAFKQIENwIAIABBCGogBUEMaigCADYCACAFQRBqJAAPCyAEIAJBvOvHABCMBwALQYzrxwAQ/wcLAAsgBiACQZzrxwAQjAcACyAEIAJBrOvHABCMBwALuAMBBH8gABCdAQJAAkAgACgC8AMiAgRAIAAoAvQDIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILIAAoAogEIgJBgoCAgHhIIAJFckUEQCAAKAKMBCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAKAL8AyICBEAgACgCgAQiA0EEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAQgAkEnaksbDQIgAxCiAgsCQCAAKAKoBCICRQ0AIAAoAqwEIgMoAgAiAQRAIAIgAREDAAsgAygCBCIDRQ0AIAJBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIANqSQ0BIAFBACAEIANBJ2pLGw0CIAIQogILIAAoArAEIgIEQCAAKAK0BCIAQQRrKAIAIgNBeHEiAUEEQQggA0EDcSIDGyACakkNASADQQAgASACQSdqSxsNAiAAEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC4kJAg9/AX4jAEEwayIHJAACQAJAAkACQAJAIAEoAhQiBSABKAIQIghJBEAgASAFQQFqIgQ2AhQgASgCDCIGIAVqLQAAIgNBMEcNAiAEIAhJBEAgBCAGai0AAEEwa0H/AXFBCkkNAgsgACABIAJCABCvAgwFCyAHQRhqIAEoAgwgCCAFEPkBIAcoAhwhAiAHKAIYIQFBFBBxIgNFDQIgAyABNgIMIANBBTYCACAAIAM2AgggAEIDNwMAIAMgAjYCEAwECyAHQQhqIAYgCCAFQQJqIgEgCCABIAhJGxD5ASAHKAIMIQIgBygCCCEBQRQQcSIDRQ0BIAMgATYCDCADQQ02AgAgACADNgIIIABCAzcDACADIAI2AhAMAwsgA0Exa0H/AXFBCU8EQCAHQRBqIAYgCCAEEPkBIAcoAhQhAiAHKAIQIQFBFBBxIgNFDQEgAyABNgIMIANBDTYCACAAIAM2AgggAEIDNwMAIAMgAjYCEAwDCyADQTBrrUL/AYMhEiAEIAhPDQEDQCAEIAZqLQAAQTBrIgVB/wFxIgNBCk8NAiADQQVLIBJCmbPmzJmz5swZUnIgEkKZs+bMmbPmzBlacUUEQCABIARBAWoiBDYCFCASQgp+IAWtQv8Bg3whEiAEIAhHDQEMAwsLIAdBIGohCUEAIQYjAEEQayILJAACQAJAAkACQAJAIAEiBSgCECIKIAEoAhQiA00NACAKIANrIQEgBSgCDCEMIAMhBANAIAQgDGotAAAiCEEwa0H/AXFBCk8EQCAIQS5GDQMgCEHFAEcgCEHlAEdxDQIgCSAFIAIgEiAGEO4DDAQLIAUgBEEBaiIENgIUIAZBAWoiBiABRw0ACyABIQYLIAkgBSACIBIgBhDwBAwBCyAFIARBAWoiBDYCFAJAIAQgCk8NACAGIAxqIQ4gBCAKayEPIAMgCmsgBmpBAWohEEEAIQQCQANAIAMgBmohDSADIA5qQQFqLQAAIhFBMGsiCEH/AXEiAUEKTwRAIARFBEAgDUEBaiEEDAQLIAQgBmohASARQSByQeUARwRAIAkgBSACIBIgARDwBAwFCyAJIAUgAiASIAEQ7gMMBAsgAUEFSyASQpmz5syZs+bMGVJyIBJCmLPmzJmz5swZVnENASAFIA1BAmo2AhQgA0EBaiEDIBJCCn4gCK1C/wGDfCESIBAgBEEBayIERw0ACyAJIAUgAiASIAYgD2oQ8AQMAgsgCSAFIAIgEiAEIAZqEOgGDAELIAtBCGogDCAKIARBAWoiASAKIAEgCkkbEPkBIAsoAgwhAiALKAIIIQFBFBBxIQMgBCAKSQRAIANFDQIgAyABNgIMIANBDTYCACAJIAM2AgQgCUEBNgIAIAMgAjYCEAwBCyADRQ0BIAMgATYCDCADQQU2AgAgCSADNgIEIAlBATYCACADIAI2AhALIAtBEGokAAwBCwALIAcoAiBBAUYEQCAAIAcoAiQ2AgggAEIDNwMADAMLIAAgBysDKDkDCCAAQgA3AwAMAgsACyAAIAEgAiASEK8CCyAHQTBqJAALwwQCBn8BfgJ/IAFFBEAgACgCCCEGQS0hCyAFQQFqDAELQStBgIDEACAAKAIIIgZBgICAAXEiARshCyABQRV2IAVqCyEHAkAgBkGAgIAEcUUEQEEAIQIMAQsCf0EAIANFDQAaIAIsAABBv39KIgEgA0EBRg0AGiABIAIsAAFBv39KagsgB2ohBwsCQCAALwEMIgkgB0sEQAJAAkAgBkGAgIAIcUUEQCAJIAdrIQlBACEBQQAhBwJAAkACQCAGQR12QQNxQQFrDgMAAQACCyAJIQcMAQsgCUH+/wNxQQF2IQcLIAZB////AHEhCiAAKAIEIQggACgCACEAA0AgAUH//wNxIAdB//8DcU8NAkEBIQYgAUEBaiEBIAAgCiAIKAIQEQIARQ0ACwwECyAAIAApAggiDKdBgICA/3lxQbCAgIACcjYCCEEBIQYgACgCACIIIAAoAgQiCiALIAIgAxDzBw0DQQAhASAJIAdrQf//A3EhAgNAIAFB//8DcSACTw0CIAFBAWohASAIQTAgCigCEBECAEUNAAsMAwtBASEGIAAgCCALIAIgAxDzBw0CIAAgBCAFIAgoAgwRAAANAiAJIAdrQf//A3EhAkEAIQEDQCACIAFB//8DcU0EQEEADwsgAUEBaiEBIAAgCiAIKAIQEQIARQ0ACwwCCyAIIAQgBSAKKAIMEQAADQEgACAMNwIIQQAPC0EBIQYgACgCACIBIAAoAgQiACALIAIgAxDzBw0AIAEgBCAFIAAoAgwRAAAhBgsgBgu7BAIGfwV9IAAgASACEMwDAkACQAJAIAIEQCAAKAJgQQxqIQEgACoCjAEgACoCiAEiDpMhDyAAKAJkIQlBASEGA0AgB0EDaiAJTw0CIAZBAWsiBSAETwRAIAUhBgwFCyAEIAVrIgVBACAEIAVPGyIFQQFGDQQgBUECRg0DIANBCGoqAgAhCyADQQRqKgIAIQxBACEFQQAhCCADKgIAIg1DAAAAAF9FBEBB/wFDAACAP0MAAAAAIA0QxgUgDpMgD5UiDSANQwAAAABdGyINIA1DAACAP14bQwAAfkOUELkHIg38AUEAIA1DAAAAAGAbIA1DAAB/Q14bQQFqQf8BcSEICyAMQwAAAABfRQRAQf8BQwAAgD9DAAAAACAMEMYFIA6TIA+VIgwgDEMAAAAAXRsiDCAMQwAAgD9eG0MAAH5DlBC5ByIM/AFBACAMQwAAAABgGyAMQwAAf0NeG0EBakH/AXFBCHQhBQsgASALQwAAAABfBH8gCgVB/wFDAACAP0MAAAAAIAsQxgUgDpMgD5UiCyALQwAAAABdGyILIAtDAACAP14bQwAAfkOUELkHIgv8AUEAIAtDAAAAAGAbIAtDAAB/Q14bQQFqQf8BcUEQdAsgBSAIcnIgAS0AA0EYdHI2AgAgAUEQaiEBIAdBBGohByAGQQNqIQYgA0EMaiEDIAJBAWsiAg0ACwsgAEEBOgC4AQ8LIAcgB0EEaiAJQdThwAAQ6gcACyAGQQFqIQYLIAYgBEHk4cAAEIwHAAvOBAMFfwN7B30CQAJAAkACQAJAAkACQAJAAkAgB0EDTwRAIAdBA24hCSABKgIAIAAqAgAiEZMhEiAB/V0CBCAA/V0CBCIO/eUBIQ9BACEBQQAhAANAIAEgA08NAyABIAVPDQQgAUEBaiIIIANPDQUgBSAITQ0GIAFBAmoiCCADTw0HIAUgCE0NCCABIARqIggtAAAhCyABIAJqIgotAAAhDCAOIA8gCkEBai0AACAIQQFqLQAAQQh0crNDAP9/R5X9EyAKQQJqLQAAIAhBAmotAABBCHRys0MA/39Hlf0gAf3mAf3kASIN/R8AIhOLEIkEIRQgDf0fASIVixCJBCEWIAAgB08NCSAGQwAAwH9DAACAPyARIAtBCHQgDHKzQwD/f0eVIBKUkiIQmCAQIBBcGyAQixCJBEMAAIC/kpQ4AgAgAEEBaiIIIAdPDQogBkEEakMAAMB/QwAAgD8gE5ggDSAN/UIiDf0bAEEBcRsgFEMAAIC/kpQ4AgAgAEECaiIIIAdPDQIgBkEIakMAAMB/QwAAgD8gFZggDf3HAf0bAkEBcRsgFkMAAIC/kpQ4AgAgAUEEaiEBIAZBDGohBiAAQQNqIQAgCUEBayIJDQALCw8LIAggB0HE7scAEIwHAAsgASADQcTtxwAQjAcACyABIAVB1O3HABCMBwALIAggA0Hk7ccAEIwHAAsgCCAFQfTtxwAQjAcACyAIIANBhO7HABCMBwALIAggBUGU7scAEIwHAAsgACAHQaTuxwAQjAcACyAIIAdBtO7HABCMBwALiAQBBX8jAEEgayIEJABBovnHACEFQQkhAwJAAkAgAigCAEEBcQ0AIARBEGogAigCBCACKAIIEPsCQaL5xwAgBCgCFCAEKAIQIgIbIQUgAg0AIAQoAhgiAw0AIAFBAUEAEJcDIQIMAQsgBCADNgIMIAQgBTYCCCABKAIEIQUgASgCACEDA0ACQCAEQRBqIARBCGoQ7QMgBCgCECIGRQ0AIAQoAhQhByAEKAIcRQRAIAEgBiAHEJcDIQIMAwtBASECIAMgBiAHIAUoAgwRAAANAiADQf3/AyAFKAIQEQIARQ0BDAILC0EAIQILAkACQAJAAkAgACgCACIBQYCAgIB4RwRAIAFFDQIgACgCBCIFQQRrKAIAIgBBeHEiA0EEQQggAEEDcSIAGyABakkNBCAARSADIAFBJ2pNcg0BDAMLIAAtAARBA0cNASAAKAIIIgUoAgAhACAFQQRqKAIAIgEoAgAiAwRAIAAgAxEDAAsgASgCBCIBBEAgAEEEaygCACIDQXhxIgZBBEEIIANBA3EiAxsgAWpJDQQgA0EAIAYgAUEnaksbDQMgABCiAgsgBUEEaygCACIAQXhxIgFBEEEUIABBA3EiABtJDQMgAEUNACABQTRPDQILIAUQogILIARBIGokACACDwtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALgwQBCX8jAEEgayIFJAACQAJAAkACQCABIAAoArABIgNGIAAoArQBIgQgAkZxDQACQCAALQC4AUUEQCAAKAJkIQQMAQsgACgCrAEgA0ECdCADIARqQQJ0EOEIIQMgBEECdCIGIAAoAmQiBEsNAiAAKAJgIQcgBSADELgKIgg2AgAgBSAGNgIEIAYgCEcNBCADIAcgBhDgCSAAQQA6ALgBIANBhAhJDQAgAxCbBwsgAkECdCIGIQMgBCAGSQRAIAYgBCIDayIHIAAoAlwgA2tLBEAgAEHcAGogAyAHQQRBBBCkBSAAKAJkIQMLIAAoAmAiCSADQQJ0IgpqIQggB0ECTwRAIAYgBEF/c2pBAnQiCwRAIAhBACAL/AsACyACQQR0IARBAnRrIAlqIApqQQRrIQggAyAHakEBayEDCyAIQQA2AgAgA0EBaiEDCyAAIAM2AmQgACgCrAEgAUECdCABIAJqQQJ0EOEIIQQgAyAGSQ0CIAAoAmAgBSAEELgKIgc2AgAgBSAGNgIEIAYgB0cNAyAGIAQQ4QkgAEEAOgC4ASAAIAI2ArQBIAAgATYCsAEgBEGECEkNACAEEJsHCyAFQSBqJAAPC0EAIAYgBEH868AAEOoHAAtBACAGIANBkOzAABDqBwALIAVBADYCCEEAIAUgBUEEaiAFQQhqQeD5xAAQ9QcAC8gEAgJ/AX0jAEEgayIDJAAgASgCBCgCACABKAIAKAIAaiABKAIIKAIQIAJsaiECIAACfwJAAkACQAJAAkAgASgCDCgCAA4CAAECCwJAIAJBe0sNACABKAIUIAJBBGpJDQAgACABKAIQIAJqKgAAOAIEDAQLIANBADYCGCADQQE2AgwgA0HI28EANgIIIANCBDcCECAAIANBCGoQkgc2AgRBAQwECwJAIAJBfU0EQCABKAIUIAJBAmpPDQELIANBADYCGCADQQE2AgwgA0HI28EANgIIIANCBDcCECAAIANBCGoQkgc2AgRBAQwECyABKAIQIAJqIgEtAAFBCHQiAiABLQAAciIBQf//AXFFBEAgACABQRB0NgIEDAMLIAFB/wdxIQEgAkGAgAJxIQQgAkGA+AFxIgJBgPgBRgRAIARBEHQhAiABRQRAIAAgAkGAgID8B3I2AgQMBAsgACABQQ10IAJyQYCAgP4HcjYCBAwDCyAEQRB0IQQgAkUNASAAIAJBDXRBgICA/ABxIAFBDXRyQYCAgMADaiAEcjYCBAwCCyABKAIUIAJNBEAgA0EANgIYIANBATYCDCADQZCzwQA2AgggA0IENwIQIAAgA0EIahCSBzYCBEEBDAMLIAAgASgCGCoCACIFIAEoAhAgAmotAACzQwAAf0OVIAEoAhwqAgAgBZOUkjgCBAwBCyAAIARBgICA2ANyIAFnQRBrIgJBF3RrIAEgAkH//wNxQQhqdEH///8DcXI2AgQLQQALNgIAIANBIGokAAuKBAEIfyMAQSBrIgckAAJAAkACQAJAIAAtALgBRQRAIAAoAmQhBQwBCyAAKAKsASAAKAKwASIFQQJ0IAUgACgCtAEiBWpBAnQQ4QghBiAFQQJ0IgggACgCZCIFSw0BIAAoAmAhCSAHIAYQuAoiCjYCACAHIAg2AgQgCCAKRw0DIAYgCSAIEOAJIAZBhAhJDQAgBhCbBwsgAEIANwKwASAAQbgBakEAOgAAIAUgAkECdCIISQRAIAUhBiAIIAVrIgkgACgCXCAFa0sEQCAAQdwAaiAFIAlBBEEEEKQFIAAoAmQhBgsgACgCYCILIAZBAnQiDGohCiAJQQJPBEAgCCAFQX9zakECdCIIBEAgCkEAIAj8CwALIAJBBHQgBUECdGsgC2ogDGpBBGshCiAGIAlqQQFrIQYLIApBADYCACAGQQFqIQgLIAAgCDYCZAJAIAAoAgBBAUcNACACQQF0IgUgCEsNAiAAKAJgIgYgBSADIAQgAiAAKgKQARCpAiAAKAIEIAFBAXQgASACakEBdBDhCCIAELgKIQEgByAFNgIEIAcgATYCACABIAVHDQMgACAGIAUQ4AkgAEGECEkNACAAEJsHCyAHQSBqJAAPC0EAIAggBUH868AAEOoHAAtBACAFIAhBxODAABDqBwALIAdBADYCCEEAIAcgB0EEaiAHQQhqQeD5xAAQ9QcAC/8UAxN/A34Be0HgtskAKAIARQRAAkBB4LbJACgCAEHgtskAQgE3AgBB7LbJACgCACECQei2yQAoAgAhBEHotskAQfCayAApAwA3AgBB9LbJACgCACEFQfC2yQBB+JrIACkDADcCAEUgAkVyDQAgBQRAIARBCGohDSAEKQMAQn+FQoCBgoSIkKDAgH+DIRUgBCEDA0AgFVAEQANAIANB4ABrIQMgDSkDACANQQhqIQ1CgIGChIiQoMCAf4MiFUKAgYKEiJCgwIB/UQ0ACyAVQoCBgoSIkKDAgH+FIRULIAMgFXqnQQN2QXRsakEEaygCACIHQYQITwRAIAcQmwcLIBVCAX0gFYMhFSAFQQFrIgUNAAsLIAIgAkEMbEETakF4cSIFakEJaiIDRQ0AAkAgBCAFayIEQQRrKAIAIgJBeHEiBUEEQQggAkEDcSICGyADak8EQCACQQAgBSADQSdqSxsNASAEEKICDAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACwtB5LbJACgCAEUEQEHktskAQX82AgBB7LbJACgCACIDIABxIQQgAEEZdiITrUKBgoSIkKDAgAF+IRdB6LbJACgCACECAkACQANAIAIgBGopAAAiFiAXhSIVQn+FIBVCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiFVBFBEADQCAAIAIgFXqnQQN2IARqIANxQXRsaiIFQQxrKAIARgRAIAVBCGsoAgAgAUYNBAsgFUIBfSAVgyIVUEUNAAsLIBYgFkIBhoNCgIGChIiQoMCAf4NQBEAgBCAGQQhqIgZqIANxIQQMAQsLQfC2yQAoAgBFBEACQEEAIQIjAEEgayIJJAACQAJAAkBB9LbJACgCACINQQFqIgQEQAJAQey2yQAoAgAiCiAKQQFqIg5BA3YiA0EHbCAKQQhJGyIPQQF2IARJBEACQAJAAn8gD0EBaiIDIAQgAyAESxsiBEEPTwRAIARB/////wFLDQlBfyAEQQN0QQduQQFrZ3ZBAWoMAQtBBCAEQQhxQQhqIARBBEkbCyIErUIMfiIVQiCIpw0AIBWnIgNBeEsNACADQQdqQXhxIgMgBEEIaiIGaiICIANJIAJB+P///wdLcg0AIAIQcSICRQ0BIAIgA2ohBSAGBEAgBUH/ASAG/AsACyAEQQFrIgsgBEEDdkEHbCALQQhJGyEMQei2yQAoAgAhBiANBEAgBUEMayEPIAVBCGohECAGQQxrIREgBikDAEJ/hUKAgYKEiJCgwIB/gyEVIAYhA0EAIQQgDSECA0AgFVAEQANAIARBCGohBCADQQhqIgMpAwBCgIGChIiQoMCAf4MiFUKAgYKEiJCgwIB/UQ0ACyAVQoCBgoSIkKDAgH+FIRULIAUgBiAVeqdBA3YgBGoiEkF0bGoiB0EMaygCACIIIAdBCGsoAgAgCBsiFCALcSIHaikAAEKAgYKEiJCgwIB/gyIWUARAQQghCANAIAcgCGohByAIQQhqIQggBSAHIAtxIgdqKQAAQoCBgoSIkKDAgH+DIhZQDQALCyAVQgF9IBWDIRUgBSAWeqdBA3YgB2ogC3EiB2osAABBAE4EQCAFKQMAQoCBgoSIkKDAgH+DeqdBA3YhBwsgBSAHaiAUQRl2Igg6AAAgECAHQQhrIAtxaiAIOgAAIA8gB0F0bGoiB0EIaiARIBJBdGxqIghBCGooAAA2AAAgByAIKQAANwAAIAJBAWsiAg0ACwtB7LbJACALNgIAQei2yQAgBTYCAEHwtskAIAwgDWs2AgAgCkUNAyAKIA5BDGxBB2pBeHEiA2pBCWoiBEUNAyAGIANrIgNBBGsoAgAiBkF4cSICQQRBCCAGQQNxIgYbIARqSQ0FIAZBACACIARBJ2pLGw0GIAMQogIMAwsgCUEANgIYIAlBATYCDCAJQcS1xAA2AgggCUIENwIQIAlBCGpBmLXEABCNCAsACyAOBEBB6LbJACgCACEFAkACQCADIA5BB3FBAEdqIgdBAkkEQCAHIQMMAQsgB0EBcSEDIAdB/v///wNxIghBA3QhAiAIIQYgBSEEA0AgBCAE/QADACIY/U1BB/3NAf0MAQEBAQEBAQEBAQEBAQEBAf1OIBj9DH9/f39/f39/f39/f39/f3/9UP3OAf0LAwAgBEEQaiEEIAZBAmsiBg0ACyAHIAhGDQELIAIgBWohBANAIAQgBCkDACIVQn+FQgeIQoGChIiQoMCAAYMgFUL//v379+/fv/8AhHw3AwAgBEEIaiEEIANBAWsiAw0ACwsgBUEIaiELAkAgDkEITwRAIAUgDmogBSkAADcAAAwBCyAORQ0AIAsgBSAO/AoAAAtBASEGQQAhBANAIAQhAyAGIQQCQCADIAVqIhAtAABBgAFHDQAgBSADQXRsaiICQQRrIREgAkEIayEGIAJBDGshBwNAIAcoAgAiAiAGKAIAIAIbIhIgCnEiDCECIAUgDGopAABCgIGChIiQoMCAf4MiFVAEQEEIIQgDQCACIAhqIQIgCEEIaiEIIAUgAiAKcSICaikAAEKAgYKEiJCgwIB/gyIVUA0ACwsgBSAVeqdBA3YgAmogCnEiAmosAABBAE4EQCAFKQMAQoCBgoSIkKDAgH+DeqdBA3YhAgsgAiAMayADIAxrcyAKcUEITwRAIAIgBWoiCC0AACAIIBJBGXYiCDoAACALIAJBCGsgCnFqIAg6AAAgBSACQXRsaiIIQQxrIQJB/wFGBEAgEEH/AToAACALIANBCGsgCnFqQf8BOgAAIAJBCGogB0EIaigAADYAACACIAcpAAA3AAAMAwsgBygAACEMIAcgAigAADYAACACIAw2AAAgBigAACECIAYgCEEIayIMKAAANgAAIAwgAjYAACARKAAAIQIgESAIQQRrIggoAAA2AAAgCCACNgAADAELCyAQIBJBGXYiBjoAACALIANBCGsgCnFqIAY6AAALIAQgBCAOSSIDaiEGIAMNAAsLQfC2yQAgDyANazYCAAsgCUEgaiQADAQLDAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAJQQA2AhggCUEBNgIMIAlBxLXEADYCCCAJQgQ3AhAgCUEIakGYtcQAEI0IAAsLIAAgARDsCCEEQei2yQAoAgAiAkHstskAKAIAIgUgAHEiA2opAABCgIGChIiQoMCAf4MiFVAEQEEIIQYDQCADIAZqIQMgBkEIaiEGIAIgAyAFcSIDaikAAEKAgYKEiJCgwIB/gyIVUA0ACwsgAiAVeqdBA3YgA2ogBXEiA2osAAAiBkEATgRAIAIgAikDAEKAgYKEiJCgwIB/g3qnQQN2IgNqLQAAIQYLIAIgA2ogEzoAACACIANBCGsgBXFqQQhqIBM6AABB8LbJAEHwtskAKAIAIAZBAXFrNgIAQfS2yQBB9LbJACgCAEEBajYCACACIANBdGxqIgNBBGsgBDYCACADQQhrIAE2AgAgA0EMayAANgIADAELIAVBBGsoAgAhBAsgBBDbCUHktskAQeS2yQAoAgBBAWo2AgAPC0G4psYAELAKAAu/BAMGfwF8AX0jAEEQayICJAACQAJAIAEoAgBBlICAgHhGBEBBBCEDAkAgASgCDCIEBEAgASgCCCEBQYCAECAEIARBgIAQTxsiA0ECdBBxIgVFDQQgBEEEdCEGIAJBADYCCCACIAU2AgQgAiADNgIAQQAhA0EAIQQCQANAAn0CQAJAAkACQAJAAkACQAJAAkACQAJAQRUgASgCACIHQYCAgIB4cyAHQQBOG0EBaw4KCgABAgMEBQYHCAkLIAFBBGovAQCzDAoLIAFBBGooAgCzDAkLIAFBCGopAwC1DAgLIAFBBGosAACyDAcLIAFBBGouAQCyDAYLIAFBBGooAgCyDAULIAFBCGopAwC0DAQLIAFBBGoqAgAMAwsgAUEIaisDACIItkMAAIA/QwAAgL8gCL1CAFkbmAwCCyABIAJBD2pB2OfAABCVCCEDIAIoAgAiAQRAIAIoAgQgAUECdEEEEKIHCwwDCyABQQRqLQAAswshCSABQRBqIQEgAigCACAERgRAIAJB1ILBABD6BSACKAIEIQULIAMgBWogCTgCACACIARBAWoiBDYCCCADQQRqIQMgBkEQayIGDQALIAIoAgQhAyACKAIAIgFBgICAgHhHDQILIAAgBDYCCCAAIAM2AgQgAEGAgICAeDYCAAwDC0EAIQFBACEECyAAIAQ2AgggACADNgIEIAAgATYCAAwBCyABIAJBD2pB+L/BABCVCCEBIABBgICAgHg2AgAgACABNgIECyACQRBqJAAPCwAL7AQBA38jAEEgayIDJAACQAJAAkAgAC0A8AFBBkcEQCAAKALoASIFRQ0BIAUgASACIAAoAuwBKAIQEQAAIQIMAwsgACgCxAEgACgCzAEiBGsgAkkEQCAAQcQBaiAEIAJBAUEBEKQFIAAoAswBIQQLIAAoAsgBIQUgAgRAIAQgBWogASAC/AoAAAsgACACIARqIgE2AswBQQAhAiABQQRJDQICQAJAAkACQCAFLwAAIAUtAAJBEHRyIgRBn5YiRwRAIARB8NjlA0YEQCAAQQAQ3wMhAgwICyAEIAUtAANBGHRyIgFB0JaNIEYNASABQdKCkYIDRyABQdKCkZoER3ENBCAAQQUQ3wMhAgwHCyAAKALcAUGAgICAeEYNASAAKALkASEBDAILIAAoAtABQYCAgIB4Rg0CIAAoAtQBIAAoAtgBEHxB/wFxQQRHDQIgAEEEEN8DIQIMBQsgA0EIaiAFIAEQ7QIgAygCDCEFIAMoAggiBEGBgICAeEYEQCAFIQIMBQsgACADKAIQIgE2AuQBIAAgBTYC4AEgACAENgLcASAEQYCAgIB4Rg0ECyABQQRJDQAgACgC4AEoAABBzo7NggVHDQAgAEEBEN8DIQIMAwsgACgC0AFBgICAgHhGDQEgACgC1AEgACgC2AEQfEH/AXEiAUEGRwRAIAAgARDfAyECDAMLIANBADYCGCADQQE2AgwgA0GUqsEANgIIIANCBDcCECADQQhqEJIHIQIMAgtB8KnBABDdCQALIANBADYCGCADQQE2AgwgA0GUqsEANgIIIANCBDcCECADQQhqEJIHIQILIANBIGokACACC+wEAQN/IwBBIGsiAyQAAkACQAJAIAAtAOgBQQZHBEAgACgC4AEiBUUNASAFIAEgAiAAKALkASgCEBEAACECDAMLIAAoArwBIAAoAsQBIgRrIAJJBEAgAEG8AWogBCACQQFBARCkBSAAKALEASEECyAAKALAASEFIAIEQCAEIAVqIAEgAvwKAAALIAAgAiAEaiIBNgLEAUEAIQIgAUEESQ0CAkACQAJAAkAgBS8AACAFLQACQRB0ciIEQZ+WIkcEQCAEQfDY5QNGBEAgAEEAEN0DIQIMCAsgBCAFLQADQRh0ciIBQdCWjSBGDQEgAUHSgpGCA0cgAUHSgpGaBEdxDQQgAEEFEN0DIQIMBwsgACgC1AFBgICAgHhGDQEgACgC3AEhAQwCCyAAKALIAUGAgICAeEYNAiAAKALMASAAKALQARB8Qf8BcUEERw0CIABBBBDdAyECDAULIANBCGogBSABEO0CIAMoAgwhBSADKAIIIgRBgYCAgHhGBEAgBSECDAULIAAgAygCECIBNgLcASAAIAU2AtgBIAAgBDYC1AEgBEGAgICAeEYNBAsgAUEESQ0AIAAoAtgBKAAAQc6OzYIFRw0AIABBARDdAyECDAMLIAAoAsgBQYCAgIB4Rg0BIAAoAswBIAAoAtABEHxB/wFxIgFBBkcEQCAAIAEQ3QMhAgwDCyADQQA2AhggA0EBNgIMIANBlKrBADYCCCADQgQ3AhAgA0EIahCSByECDAILQfCpwQAQ3QkACyADQQA2AhggA0EBNgIMIANBlKrBADYCCCADQgQ3AhAgA0EIahCSByECCyADQSBqJAAgAgv8AwEEfyMAQRBrIgQkAAJAAkACQCABKAIIIgJBgICAEHFFBEAgAkGAgIAgcQ0BIAAgARCLBUUNAkEBIQIMAwsgACgCACECQQkhAwNAIAMgBGpBBmogAkEPcS0A3LZFOgAAIANBAWshAyACQRBJIAJBBHYhAkUNAAtBASECIAFBAUGEtMUAQQIgAyAEakEHakEJIANrEMgDRQ0BDAILIAAoAgAhAkEJIQMDQCADIARqQQZqIAJBD3EtAMmBQjoAACADQQFrIQMgAkEPSyACQQR2IQINAAtBASECIAFBAUGEtMUAQQIgAyAEakEHakEJIANrEMgDDQELIAEoAgBBsIrDAEECIAEoAgQoAgwRAAAEQEEBIQIMAQsgAEEEaiEAAkAgASgCCCICQYCAgBBxRQRAIAJBgICAIHENASAAIAEQiwUhAgwCCyAAKAIAIQJBCSEDA0AgAyAEakEGaiACQQ9xLQDctkU6AAAgA0EBayEDIAJBD0sgAkEEdiECDQALIAFBAUGEtMUAQQIgAyAEakEHakEJIANrEMgDIQIMAQsgACgCACECQQkhAwNAIAMgBGpBBmogAkEPcS0AyYFCOgAAIANBAWshAyACQQ9LIAJBBHYhAg0ACyABQQFBhLTFAEECIAMgBGpBB2pBCSADaxDIAyECCyAEQRBqJAAgAgvyBAICfwF7IwBBgNIAayIDJAACQAJAAkACQAJAAkACQAJAIAFB/wFxQQFrDgUAAgMEBQELQYCACBBxIgRFDQUgBEEEay0AAEEDcQRAIARBAEGAgAj8CwALIANBQGtBAEHA0QD8CwBBrNQAEHEiAUUNBSABIAJBxAH8CgAAIAFBgICAgHg2AugBIAFCATcC4AEgAUKAgAg3AtgBIAEgBDYC1AEgAUKAgICAgICAATcCzAEgAUKAgICAEDcCxAEgAUHsAWogA0EMakH00QD8CgAAIAFB4NMAakEAQcEA/AsAIAFBADsBqFQgAUEANgKkVEG438EAIQIMBgtBuAYQcSIBRQ0EIAFBADYC8AQgAUKAgICAEDcD6AQgAUGBgICAeDYC3AQgAUH0BGogAkHEAfwKAABBoN/BACECDAULQdABEHEiAUUNAyABIAJBxAH8CgAAIAFBADYCzAEgAUKAgICAEDcCxAFB0N/BACECDAQLQdABEHEiAUUNAiABIAJBxAH8CgAAIAFBADYCzAEgAUKAgICAEDcCxAFB6N/BACECDAMLQdABEHEiAUUNASABIAJBxAH8CgAAIAFBADYCzAEgAUKAgICAEDcCxAFBgODBACECDAILQYgEEHEiAUUNACABQQI2AgAgAf0MAAAAAAAAAAAAAAAAAAAAAP0LA3AgAUIANwOYAiABQQI2ApABIAFCATcCtAIgAUGAAWogBf0LAwAgAUGgAmogBf0LAwAgAUGwAmpBADYCACABQbwCaiACQcQB/AoAACABQQA6AIAEQZjgwQAhAgwBCwALIAAgAjYCBCAAIAE2AgAgA0GA0gBqJAAL8gQCAn8BeyMAQYDSAGsiAyQAAkACQAJAAkACQAJAAkACQCABQf8BcUEBaw4FAAIDBAUBC0GAgAgQcSIERQ0FIARBBGstAABBA3EEQCAEQQBBgIAI/AsACyADQUBrQQBBwNEA/AsAQaTUABBxIgFFDQUgASACQbwB/AoAACABQYCAgIB4NgLgASABQgE3AtgBIAFCgIAINwLQASABIAQ2AswBIAFCgICAgICAgAE3AsQBIAFCgICAgBA3ArwBIAFB5AFqIANBDGpB9NEA/AoAACABQdjTAGpBAEHBAPwLACABQQA7AaBUIAFBADYCnFRBmN3BACECDAYLQbAGEHEiAUUNBCABQQA2AvAEIAFCgICAgBA3A+gEIAFBgYCAgHg2AtwEIAFB9ARqIAJBvAH8CgAAQYDdwQAhAgwFC0HIARBxIgFFDQMgASACQbwB/AoAACABQQA2AsQBIAFCgICAgBA3ArwBQbDdwQAhAgwEC0HIARBxIgFFDQIgASACQbwB/AoAACABQQA2AsQBIAFCgICAgBA3ArwBQcjdwQAhAgwDC0HIARBxIgFFDQEgASACQbwB/AoAACABQQA2AsQBIAFCgICAgBA3ArwBQeDdwQAhAgwCC0GABBBxIgFFDQAgAUECNgIAIAH9DAAAAAAAAAAAAAAAAAAAAAD9CwNwIAFCADcDmAIgAUECNgKQASABQgE3ArQCIAFBgAFqIAX9CwMAIAFBoAJqIAX9CwMAIAFBsAJqQQA2AgAgAUG8AmogAkG8AfwKAAAgAUEAOgD4A0H43cEAIQIMAQsACyAAIAI2AgQgACABNgIAIANBgNIAaiQAC9kEAQN/IwBBIGsiAyQAAkACQAJAIAAtAIwBQQZHBEAgACgChAEiBUUNASAFIAEgAiAAKAKIASgCEBEAACECDAMLIAAoAgAgACgCCCIEayACSQRAIAAgBCACQQFBARCkBSAAKAIIIQQLIAAoAgQhBSACBEAgBCAFaiABIAL8CgAACyAAIAIgBGoiATYCCEEAIQIgAUEESQ0CAkACQAJAAkAgBS8AACAFLQACQRB0ciIEQZ+WIkcEQCAEQfDY5QNGBEAgAEEAEOADIQIMCAsgBCAFLQADQRh0ciIBQdCWjSBGDQEgAUHSgpGCA0cgAUHSgpGaBEdxDQQgAEEFEOADIQIMBwsgACgCeEGAgICAeEYNASAAKAKAASEBDAILIAAoAgxBgICAgHhGDQIgACgCECAAKAIUEHxB/wFxQQRHDQIgAEEEEOADIQIMBQsgA0EIaiAFIAEQ7QIgAygCDCEFIAMoAggiBEGBgICAeEYEQCAFIQIMBQsgACADKAIQIgE2AoABIAAgBTYCfCAAIAQ2AnggBEGAgICAeEYNBAsgAUEESQ0AIAAoAnwoAABBzo7NggVHDQAgAEEBEOADIQIMAwsgACgCDEGAgICAeEYNASAAKAIQIAAoAhQQfEH/AXEiAUEGRwRAIAAgARDgAyECDAMLIANBADYCGCADQQE2AgwgA0GUqsEANgIIIANCBDcCECADQQhqEJIHIQIMAgtB8KnBABDdCQALIANBADYCGCADQQE2AgwgA0GUqsEANgIIIANCBDcCECADQQhqEJIHIQILIANBIGokACACC9QEAQN/IwBBIGsiAyQAAkACQAJAIAAtAGxBBkcEQCAAKAJkIgVFDQEgBSABIAIgACgCaCgCEBEAACECDAMLIAAoAgAgACgCCCIEayACSQRAIAAgBCACQQFBARCkBSAAKAIIIQQLIAAoAgQhBSACBEAgBCAFaiABIAL8CgAACyAAIAIgBGoiATYCCEEAIQIgAUEESQ0CAkACQAJAAkAgBS8AACAFLQACQRB0ciIEQZ+WIkcEQCAEQfDY5QNGBEAgAEEAEL8DIQIMCAsgBCAFLQADQRh0ciIBQdCWjSBGDQEgAUHSgpGCA0cgAUHSgpGaBEdxDQQgAEEFEL8DIQIMBwsgACgCWEGAgICAeEYNASAAKAJgIQEMAgsgACgCDEGAgICAeEYNAiAAKAIQIAAoAhQQfEH/AXFBBEcNAiAAQQQQvwMhAgwFCyADQQhqIAUgARDtAiADKAIMIQUgAygCCCIEQYGAgIB4RgRAIAUhAgwFCyAAIAMoAhAiATYCYCAAIAU2AlwgACAENgJYIARBgICAgHhGDQQLIAFBBEkNACAAKAJcKAAAQc6OzYIFRw0AIABBARC/AyECDAMLIAAoAgxBgICAgHhGDQEgACgCECAAKAIUEHxB/wFxIgFBBkcEQCAAIAEQvwMhAgwDCyADQQA2AhggA0EBNgIMIANBlKrBADYCCCADQgQ3AhAgA0EIahCSByECDAILQfCpwQAQ3QkACyADQQA2AhggA0EBNgIMIANBlKrBADYCCCADQgQ3AhAgA0EIahCSByECCyADQSBqJAAgAgv8AwMFfwF7AX4CQAJAAkACQCAFLQC/AiIGQQhLQQEgBnRBlgJxRXJFBEBBCCAGbkECdK0gAq1+IgxCIIhQIAynIARJcQ0BIAEgAmohCCAEQXxxIQUgBkEIRgRAIAJFDQUgBEECdiIEIAJBAWsiAiACIARLGyICQQNNDQQgASACQQFqIgIgAkEDcSICQQQgAhtrIgJqIAMgAkECdCIGaiEHIAUgBmshBQNAIAMgACAB/VwAAP2JAf2pASIL/RsDQQJ0aiAAIAv9GwJBAnRqIAAgC/0bAUECdGogACAL/RsAQQJ0av1cAAD9VgAAAf1WAAAC/VYAAAP9CwAAIAFBBGohASADQRBqIQMgAkEEayICDQALIQEgByEDDAQLIAVFDQRBfyAGdEF/cyEKQQggBmshB0EAIARBfHFrIQJBfyEFA0AgBUEASARAIAEgCEYNBCABLQAAIQkgByEFIAFBAWohAQsgAyAAIAkgBXYgCnFBAnRqKAAANgAAIAUgBmshBSADQQRqIQMgAkEEaiICDQALDAQLQbCXxQBBNEHkl8UAEOsHAAtBhJbFAEHlAEHslsUAEOsHAAtB/JbFAEEiQaCXxQAQqwcACwNAIAVFDQEgAyAAIAEtAABBAnRqKAAANgAAIANBBGohAyAFQQRrIQUgAUEBaiIBIAhHDQALCwvjBAICfwF7IwBBgNIAayIDJAACQAJAAkACQAJAAkACQAJAIAFB/wFxQQFrDgUAAgMEBQELQYCACBBxIgRFDQUgBEEEay0AAEEDcQRAIARBAEGAgAj8CwALIANBQGtBAEHA0QD8CwBByNMAEHEiAUUNBSABIAJB4AD8CgAAIAFBgICAgHg2AoQBIAFCATcCfCABQoCACDcCdCABIAQ2AnAgAUKAgICAgICAATcCaCABQoCAgIAQNwJgIAFBiAFqIANBDGpB9NEA/AoAACABQfzSAGpBAEHBAPwLACABQQA7AcRTIAFBADYCwFNBiNzBACECDAYLQdgFEHEiAUUNBCABIAJB4AD8CgAAIAFBADYC0AUgAUKAgICAEDcDyAUgAUGBgICAeDYCvAVB8NvBACECDAULQewAEHEiAUUNAyABIAJB4AD8CgAAIAFBADYCaCABQoCAgIAQNwJgQaDcwQAhAgwEC0HsABBxIgFFDQIgASACQeAA/AoAACABQQA2AmggAUKAgICAEDcCYEG43MEAIQIMAwtB7AAQcSIBRQ0BIAEgAkHgAPwKAAAgAUEANgJoIAFCgICAgBA3AmBB0NzBACECDAILQaADEHEiAUUNACABQQI2AogBIAFBAjYCACABQfgBaiACQeAA/AoAACABQegCav0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgASAF/QsD2AIgAUIANwOAAyABQfgCakKAgICAEDcDACABQYgDaiAF/QsDACABQZUDakIANwAAQejcwQAhAgwBCwALIAAgAjYCBCAAIAE2AgAgA0GA0gBqJAALqAQCCn8BfSMAQRBrIggkAAJAAkACQAJAAkACQCAEBEBDAAD4QSAFlSEQA0AgCUEVbCIGQRVqIgcgA0sgCUGLhsPhAEtyDQQgCUECdCEHIAlBAWohCSAI/QwAAAAAAAAAAAAAAAAAAAAA/QsDAEEAIQtBBiEKIAIhBkEAIQwDQCAIIApBBmsiDkEDdkH8////AXFqIg1B/wBDAAD4QUMAAPjBIBAgBioCAJQiBSAFQwAA+MFdGyIFIAVDAAD4QV4bELkHIgX8AEGAfyAFQwAAAMNgGyAFQwAA/kJeG0EAIAUgBVsbQT9xIg8gDkEecXQgDSgCAHI2AgAgDkHgAXFBIGogCkkEQCAMQRBPDQUgDSANKAIEIA8gC0EecXZyNgIECyAGQQRqIQYgCkEGaiEKIAtBBmshCyAMQQFqIgxBFUcNAAsgASAHTQ0FIAgoAgwhCiAIKAIIIQsgCCgCBCEMIAAgB0ECdGogCCgCADYCACAHQQFyIgYgAU8NBiAAIAZBAnRqIAw2AgAgB0ECciIGIAFPDQcgACAGQQJ0aiALNgIAIAdBA3IiBiABTw0CIAAgBkECdGogCjYCACACQdQAaiECIAQgCUcNAAsLIAhBEGokAA8LIAYgAUHAz8cAEIwHAAtBBEEEQeDPxwAQjAcACyAGIAcgA0HQz8cAEOoHAAsgByABQZDPxwAQjAcACyAGIAFBoM/HABCMBwALIAYgAUGwz8cAEIwHAAv9AwEGfwJAAkACQAJAAkACQAJAIARFIAJFcg0AIAAoAjxFDQAgACgCICINIAFrIgpBACAKIA1NGyEOIAAoAhwgAUESbGohCgNAIAkgDkYNAiALQQlqIgwgBEsgCUGbjsfjAUtyDQMgCiADEMYCIANBJGohAyAKQRJqIQogDCELIAIgCUEBaiIJRw0ACwsCQCAGRSACRXINACAAKAI8QQJJDQBBACEEIAAoAiwiCyABayIDQQAgAyALTRshDCAAKAIoIAFBHmxqIQNBACEJA0AgCSAMRg0EIARBD2oiCiAGSyAJQZCixIgBS3INBSADIAUQwgIgBUE8aiEFIANBHmohAyAKIQQgAiAJQQFqIglHDQALCwJAIAhFIAJFcg0AIAAoAjxBA0kNAEEAIQogACgCOCIEIAFrIgNBACADIARNGyEFIAAoAjQgAUEqbGohA0EAIQkDQCAFIAlGDQYgCkEVaiIAIAhLIAlBi4bD4QBLcg0HIAMgBxC2AiAHQdQAaiEHIANBKmohAyAAIQogAiAJQQFqIglHDQALCw8LIAEgCWogDUHExscAEIwHAAsgCyAMIARB1MbHABDqBwALIAEgCWogC0HkxscAEIwHAAsgBCAKIAZB9MbHABDqBwALIAEgCWogBEGEx8cAEIwHAAsgCiAAIAhBlMfHABDqBwALxQQCBX8BfiMAQTBrIgIkAAJAAkAgACgCACIDQQJHBEBBASEEAkACfwJAIANBAXEEQCACIABBBGo2AgAgASgCCCACIAE2AgwgAkKAgICAgMjQBzcCBCACrUKAgICAoA+EIQdBgICABHENASACIAc3AxAgAkIBNwIkIAJBATYCHCACQaD4xwA2AhggAiACQRBqNgIgIAJBBGpBoLrFACACQRhqEMEDDAILIAEoAgAiAyAAKAIQIAAoAhQgASgCBCgCDCIBEQAADQUMBAsgAiAHNwMQIAJBATYCLCACQaz5xwA2AiggAkEBNgIkIAJBATYCHCACQaD4xwA2AhggAiACQRBqNgIgIAJBBGpBoLrFACACQRhqEMEDCyIDQQAgAigCBCIFG0UEQCADDQQgBUUNAUGgt8UAQTcgAkEYakGQt8UAQdi3xQAQ4AYACyABKAIAQfy2xQBBFCABKAIEKAIMEQAADQMLIAEoAgAhAyABKAIEKAIMIQEMAQsCQAJAAkAgACgCJCIERQ0AIAAoAiAhAANAIAJBGGogACAEEPsCAkAgAigCGEEBRgRAIAItACEhAyACLQAgIQUgAigCHCEGIAFBxPnHAEEDEJcDRQ0BDAULIAEgAigCHCACKAIgEJcDDQQMAgsgBUEBcUUNASAEIAMgBmoiA0kNAiAAIANqIQAgBCADayIEDQALC0EAIQQMAwsgAyAEIARByPnHABDqBwALQQEhBAwBCyADIAAoAhggACgCHCABEQAAIQQLIAJBMGokACAEC+MDAQd/IwBB0AFrIgUkACAAIAE6AOgBIAAoAgAhAiAAQQI2AgACQAJAIAJBAkcEQCAFIAI2AhQgBUEYaiAAQQRqQbgB/AoAACAFQQhqIAEgBUEUahDVAwJAIAUoAggiASAAKALAASAAKALEASAFKAIMIgIoAhARAAAiCARAIAIoAgAiAARAIAEgABEDAAsgAigCBCIARQ0BIAFBBGsoAgAiAkF4cSIEQQRBCCACQQNxIgIbIABqSQ0DIAJBACAEIABBJ2pLGw0EIAEQogIMAQsgAEEANgLEASAAKALUASIEQYCAgIB4ckGAgICAeEcEQCAAKALYASIGQQRrKAIAIgNBeHEiB0EEQQggA0EDcSIDGyAEakkNAyADQQAgByAEQSdqSxsNBCAGEKICCyAAQYCAgIB4NgLUAQJAIAAoAuABIgRFDQAgACgC5AEiBigCACIDBEAgBCADEQMACyAGKAIEIgZFDQAgBEEEaygCACIDQXhxIgdBBEEIIANBA3EiAxsgBmpJDQMgA0EAIAcgBkEnaksbDQQgBBCiAgsgACACNgLkASAAIAE2AuABCyAFQdABaiQAIAgPC0Hs4MEAEN0JAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwAL+wMCD38BfiADIAEoAhgiCiAFayIJSwRAQQAgASgCDCIIayEQIAQgCGohESAIIAUgBSAISRsiEiAIayETIAEoAiAhDSABKAIQIQ8gASkDACEWA0ACQAJAIBYgAiAJajEAAIhCAYNQBEAgASAJNgIYIAUhByAJIQogBg0CDAELIAggDSAIIAggDUsbIAYbIgdBAWsgBUkhDAJAAkACQAJAA0AgB0UEQCAQIAUgDSAGGyIHIAggByAISxtqIQ4gCCAJaiEHIBMhCyARIQwDQCAORQRAIAEgCTYCGCAGRQRAIAEgBTYCIAsgACAKNgIIIAAgCTYCBCAAQQE2AgAPCyALRQ0DIAMgB00NBCAOQQFrIQ4gC0EBayELIAIgB2ohFCAMLQAAIAxBAWohDCAHQQFqIQcgFC0AAEYNAAsgCiAPayEKIA8hByAGRQ0GDAcLIAdBAWshByAMRQ0EIAcgCWoiCyADTw0DIAQgB2otAAAgAiALai0AAEYNAAsgByAKaiAIayEKIAUhByAGRQ0EDAULIBIgBUHonsYAEIwHAAsgAyAIIAlqIgAgACADSRsgA0H4nsYAEIwHAAsgCyADQZifxgAQjAcACyAHIAVBiJ/GABCMBwALIAEgBzYCICAHIQ0LIAogBWsiCSADSQ0ACwsgAUEANgIYIABBADYCAAvgAwEHfyMAQdABayIFJAAgACABOgDwASAAKAIAIQIgAEECNgIAAkACQCACQQJHBEAgBSACNgIMIAVBEGogAEEEakHAAfwKAAAgBSABIAVBDGoQ1AMCQCAFKAIAIgEgACgCyAEgACgCzAEgBSgCBCICKAIQEQAAIggEQCACKAIAIgAEQCABIAARAwALIAIoAgQiAEUNASABQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyAAakkNAyACQQAgBCAAQSdqSxsNBCABEKICDAELIABBADYCzAEgACgC3AEiBEGAgICAeHJBgICAgHhHBEAgACgC4AEiBkEEaygCACIDQXhxIgdBBEEIIANBA3EiAxsgBGpJDQMgA0EAIAcgBEEnaksbDQQgBhCiAgsgAEGAgICAeDYC3AECQCAAKALoASIERQ0AIAAoAuwBIgYoAgAiAwRAIAQgAxEDAAsgBigCBCIGRQ0AIARBBGsoAgAiA0F4cSIHQQRBCCADQQNxIgMbIAZqSQ0DIANBACAHIAZBJ2pLGw0EIAQQogILIAAgAjYC7AEgACABNgLoAQsgBUHQAWokACAIDwtB7ODBABDdCQALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC+UDAQd/IwBB8ABrIgUkACAAIAE6AIwBIAAoAhghAiAAQYCAgIB4NgIYAkACQCACQYCAgIB4RwRAIAUgAjYCECAFQRRqIABBHGpB3AD8CgAAIAVBCGogASAFQRBqENkDAkAgBSgCCCIBIAAoAgQgACgCCCAFKAIMIgIoAhARAAAiCARAIAIoAgAiAARAIAEgABEDAAsgAigCBCIARQ0BIAFBBGsoAgAiAkF4cSIEQQRBCCACQQNxIgIbIABqSQ0DIAJBACAEIABBJ2pLGw0EIAEQogIMAQsgAEEANgIIIAAoAngiBEGAgICAeHJBgICAgHhHBEAgACgCfCIGQQRrKAIAIgNBeHEiB0EEQQggA0EDcSIDGyAEakkNAyADQQAgByAEQSdqSxsNBCAGEKICCyAAQYCAgIB4NgJ4AkAgACgChAEiBEUNACAAKAKIASIGKAIAIgMEQCAEIAMRAwALIAYoAgQiBkUNACAEQQRrKAIAIgNBeHEiB0EEQQggA0EDcSIDGyAGakkNAyADQQAgByAGQSdqSxsNBCAEEKICCyAAIAI2AogBIAAgATYChAELIAVB8ABqJAAgCA8LQezgwQAQ3QkAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuRBAEGfyAAIAEoAgAiBDYCqAEgACABKAIEIgc2AqwBIABBASAEQRZ2IARB////AXFBAEdqIgIgAkEBTRtBgBAgBEELdiAEQf8PcUEAR2oiAiACQYAQTxtBASAEG2wiAkELdDYCpAEgAkENdCIFELYJIQIgACgCsAEiA0GECE8EQCADEJsHCyAAIAI2ArABIAUQtgkhAiAAKAK0ASIDQYQITwRAIAMQmwcLIAAgAjYCtAEgBwR/IAUQtgkhA0EBBUEACyECAkAgACgCAEUNACAAKAIEIgZBhAhJDQAgBhCbBwsgACADNgIEIAAgAjYCACAHQQJJBH9BAAUgBRC2CSEDQQELIQICQCAAKAIIRQ0AIAAoAgwiBkGECEkNACAGEJsHCyAAIAM2AgwgACACNgIIIAdBA0kEf0EABSAFELYJIQNBAQshAgJAIAAoAhBFDQAgACgCFCIGQYQISQ0AIAYQmwcLIAAgAzYCFCAAIAI2AhAgB0EDSQR/QQAFIAUQtgkhBUEBCyECAkAgACgCGEUNACAAKAIcIgNBhAhJDQAgAxCbBwsgACAFNgIcIAAgAjYCGEEBIQICQCABLQAIQQFHBEBBACECDAELIARBAnQQtgkhBAsCQCAAKAI8RQ0AIAAoAkAiAUGECEkNACABEJsHCyAAQgA3ArgBIAAgBDYCQCAAIAI2AjwgAEHAAWpBADoAAAvsAwEIfyMAQSBrIgckAAJAAkACQCAALQC4AUUEQCAAKAJkIQUMAQsgACgCrAEgACgCsAEiBUECdCAFIAAoArQBIgVqQQJ0EOEIIQggBUECdCIGIAAoAmQiBUsNASAAKAJgIQkgByAIELgKIgo2AgAgByAGNgIEIAYgCkcNAiAIIAkgBhDgCSAIQYQISQ0AIAgQmwcLIABCADcCsAEgAEG4AWpBADoAACAFIAJBAnQiBkkEQCAFIQggBiAFayIJIAAoAlwgBWtLBEAgAEHcAGogBSAJQQRBBBCkBSAAKAJkIQgLIAAoAmAiCyAIQQJ0IgxqIQogCUECTwRAIAYgBUF/c2pBAnQiBgRAIApBACAG/AsACyACQQR0IAVBAnRrIAtqIAxqQQRrIQogCCAJakEBayEICyAKQQA2AgAgCEEBaiEGCyAAIAY2AmQCQCAAKAIIQQFHDQAgACgCYCIFIAYgAyAEIAIgACoClAEQ4wEgACgCDCABQQJ0IAEgAmpBAnQQ4QgiABC4CiEBIAcgBjYCBCAHIAE2AgAgASAGRw0CIAAgBSAGEOAJIABBhAhJDQAgABCbBwsgB0EgaiQADwtBACAGIAVB/OvAABDqBwALIAdBADYCCEEAIAcgB0EEaiAHQQhqQeD5xAAQ9QcAC+wDAQh/IwBBIGsiByQAAkACQAJAIAAtALgBRQRAIAAoAmQhBQwBCyAAKAKsASAAKAKwASIFQQJ0IAUgACgCtAEiBWpBAnQQ4QghCCAFQQJ0IgYgACgCZCIFSw0BIAAoAmAhCSAHIAgQuAoiCjYCACAHIAY2AgQgBiAKRw0CIAggCSAGEOAJIAhBhAhJDQAgCBCbBwsgAEIANwKwASAAQbgBakEAOgAAIAUgAkECdCIGSQRAIAUhCCAGIAVrIgkgACgCXCAFa0sEQCAAQdwAaiAFIAlBBEEEEKQFIAAoAmQhCAsgACgCYCILIAhBAnQiDGohCiAJQQJPBEAgBiAFQX9zakECdCIGBEAgCkEAIAb8CwALIAJBBHQgBUECdGsgC2ogDGpBBGshCiAIIAlqQQFrIQgLIApBADYCACAIQQFqIQYLIAAgBjYCZAJAIAAoAhBBAUcNACAAKAJgIgUgBiADIAQgAiAAKgKYARDaAyAAKAIUIAFBAnQgASACakECdBDhCCIAELgKIQEgByAGNgIEIAcgATYCACABIAZHDQIgACAFIAYQ4AkgAEGECEkNACAAEJsHCyAHQSBqJAAPC0EAIAYgBUH868AAEOoHAAsgB0EANgIIQQAgByAHQQRqIAdBCGpB4PnEABD1BwALvQUAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAEEBaw4YAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYAAsgASgCACAAKAIEIAAoAgggASgCBCgCDBEAAA8LIABBBGogARCeBA8LIAEoAgBB7KDGAEEYIAEoAgQoAgwRAAAPCyABKAIAQYShxgBBGyABKAIEKAIMEQAADwsgASgCAEGfocYAQRogASgCBCgCDBEAAA8LIAEoAgBBuaHGAEEZIAEoAgQoAgwRAAAPCyABKAIAQdKhxgBBDCABKAIEKAIMEQAADwsgASgCAEHeocYAQRMgASgCBCgCDBEAAA8LIAEoAgBB8aHGAEETIAEoAgQoAgwRAAAPCyABKAIAQYSixgBBDiABKAIEKAIMEQAADwsgASgCAEGSosYAQQ4gASgCBCgCDBEAAA8LIAEoAgBBoKLGAEEMIAEoAgQoAgwRAAAPCyABKAIAQayixgBBDiABKAIEKAIMEQAADwsgASgCAEG6osYAQQ4gASgCBCgCDBEAAA8LIAEoAgBByKLGAEETIAEoAgQoAgwRAAAPCyABKAIAQduixgBBGiABKAIEKAIMEQAADwsgASgCAEH1osYAQT4gASgCBCgCDBEAAA8LIAEoAgBBs6PGAEEUIAEoAgQoAgwRAAAPCyABKAIAQcejxgBBNCABKAIEKAIMEQAADwsgASgCAEH7o8YAQSwgASgCBCgCDBEAAA8LIAEoAgBBp6TGAEEkIAEoAgQoAgwRAAAPCyABKAIAQcukxgBBDiABKAIEKAIMEQAADwsgASgCAEHZpMYAQRMgASgCBCgCDBEAAA8LIAEoAgBB7KTGAEEcIAEoAgQoAgwRAAAPCyABKAIAQYilxgBBGCABKAIEKAIMEQAAC7gDAgl/AX4CQAJAAkAgACgCBCIHRQ0AIAAoAgwiCARAIAAoAgAiAUEIaiEDIAEpAwBCf4VCgIGChIiQoMCAf4MhCgNAIApQBEADQCABQcABayEBIAMpAwAgA0EIaiEDQoCBgoSIkKDAgH+DIgpCgIGChIiQoMCAf1ENAAsgCkKAgYKEiJCgwIB/hSEKCyABIAp6p0EDdkFobGoiAkEYaygCACIEBEAgAkEUaygCACIFQQRrKAIAIgZBeHEiCUEEQQggBkEDcSIGGyAEakkNBCAGQQAgCSAEQSdqSxsNBSAFEKICCyACQQxrKAIAIgQEQCACQQhrKAIAIgJBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIARqSQ0EIAVBACAGIARBJ2pLGw0FIAIQogILIApCAX0gCoMhCiAIQQFrIggNAAsLIAdBGGwiASAHakEhaiIDRQ0AIAAoAgAgAWsiAEEcaygCACIBQXhxIgJBBEEIIAFBA3EiARsgA2pJDQEgAUEAIAIgA0EnaksbDQIgAEEYaxCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvjAwELfyMAQRBrIgYkAAJAAkAgAyAEbCIHQf////8DSw0AIAdBAnQiCUH9////B08NAAJAIAlFBEBBBCELQQAhBwwBCyAJEHEiC0UNAgsgBkEANgIMIAYgCzYCCCAGIAc2AgQCQCAEBEAgBEEBdCEPA0AgDEECdCEOIA1BAXQhByANQQFqIQ0gAyEJA0AgB0EBaiACTw0DAn8gASAHai8AACIFQf//AXEEQCAFQf8HcSEIIAVBgIACcSEKIAVBgPgBcSIFQYD4AUcEQCAKQRB0IQogBUENdEGAgID8AHEgCEENdHJBgICAwANqIApyIAUNAhogCkGAgIDYA3IgCGdBEGsiBUEXdGsgCCAFQf//A3FBCGp0Qf///wNxcgwCCyAKQRB0IQUgBSAIQQ10ckGAgID+B3IgCA0BGiAFQYCAgPwHcgwBCyAFQRB0CyEIIAYoAgQgDEYEQCAGQQRqQazmxwAQ+gUgBigCCCELCyALIA5qIAg2AgAgBiAMQQFqIgw2AgwgDkEEaiEOIAcgD2ohByAJQQFrIgkNAAsgBCANRw0ACwsgACAGKQIENwIAIABBCGogBkEMaigCADYCACAGQRBqJAAPCyAHIAdBAmogAkG85scAEOoHAAtBnObHABD/BwsAC8wDAQV7QQAhBQJAIARFDQAgAS0AACECAkAgBEEPTQRAIAMhAQNAIAEtAAAgAkYNAiABQQFqIQEgBEEBayIEDQALDAILIAL9DyIHIAP9AAAA/SP9ZCIBBEAgAyABaGohAQwBCyADIARqIQYgA0FwcUEQaiEBAkACQAJAIARBwABJDQAgASAGQUBqIgRLDQAgAyADQQ9xa0FAayEBA0AgByABQSBr/QAEAP0jIgggByABQTBrIgL9AAQA/SMiCf1QIAcgAUEQa/0ABAD9IyIK/VAgByAB/QAEAP0jIgv9UP1kDQIgAUEQaiABQUBrIQEgBE0NAAsgAUEwayEBCyABIAZBEGsiBEsNAQNAIAcgAf0AAAD9I/1kIgJFBEAgBCABQRBqIgFPDQEMAwsLIAEgAmhqIQEMAgsCQCAJ/WQiAUUEQCAI/WQiAQ0BIAr9ZCIBRQRAIAv9ZGggAkEwamohAQwECyABaCACQSBqaiEBDAMLIAIgAWhqIQEMAgsgAWggAkEQamohAQwBCyABIAZPDQEgByAGQRBrIgH9AAAA/SP9ZCICBEAgASACaGohAQwBCwwBCyABIANrIQFBASEFCyAAIAE2AgQgACAFNgIAC5gEAQd/IwBBEGsiCCQAIAFBBGohBAJAAkACQAJAAn8gASgCJCIDQQlJBEBBCCEGIAQhByABQSRqDAELIAEoAgghByADIQYgBAsoAgAiCSACTQRAAkACQAJAAkACQCACQQlPBEBBgYCAgHghBSACIAZGDQpBACEFIAJB/////wNLIAJBAnQiBEH8////B0tyDQogA0EJSQ0CIAZBAnQhAyAGQf////8DTQ0BIAMhBAwKC0GBgICAeCEFIANBCUkNCSABQQA2AgAgCUECdCICBEAgBCAHIAL8CgAACyABIAk2AiQgBkECdCIBQf3///8HSSAGQf////8DTXENBCAIIAE2AgwgCEEANgIIQdjmyABBKyAIQQhqQcikwQBBxMzHABDgBgALIANB/f///wdJDQEgAyEEDAgLIAQQcSIDDQFBBCEFDAcLQQQhBSAHIANBBCAEELsCIgNFDQYMBQsgCUECdCIFRQ0EIAMgByAF/AoAAAwECyAHQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyABakkNASACQQAgBCABQSdqSxsNAiAHEKICDAQLQfTMxwBBIEGUzccAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAEgAjYCJCABIAM2AgggASAJNgIEIAFBATYCAEGBgICAeCEFCyAAIAQ2AgQgACAFNgIAIAhBEGokAAuYBAEHfyMAQRBrIggkAEEEIQQgAUEEaiEFAkACQAJAAkACfyABKAIUIgNBBUkEQCAFIQYgAUEUagwBCyABKAIIIQYgAyEEIAULKAIAIgkgAk0EQAJAAkACQAJAAkAgAkEFTwRAQYGAgIB4IQcgAiAERg0KQQAhByACQf////8DSyACQQJ0IgVB/P///wdLcg0KIANBBUkNAiAEQQJ0IQMgBEH/////A00NASADIQUMCgtBgYCAgHghByADQQVJDQkgAUEANgIAIAlBAnQiAgRAIAUgBiAC/AoAAAsgASAJNgIUIARBAnQiAUH9////B0kgBEH/////A01xDQQgCCABNgIMIAhBADYCCEHY5sgAQSsgCEEIakHIpMEAQcTMxwAQ4AYACyADQf3///8HSQ0BIAMhBQwICyAFEHEiBA0BQQQhBwwHC0EEIQcgBiADQQQgBRC7AiIERQ0GDAULIAlBAnQiA0UNBCAEIAYgA/wKAAAMBAsgBkEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAWpJDQEgAkEAIAMgAUEnaksbDQIgBhCiAgwEC0H0zMcAQSBBlM3HABDrBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyABIAI2AhQgASAENgIIIAEgCTYCBCABQQE2AgBBgYCAgHghBwsgACAFNgIEIAAgBzYCACAIQRBqJAALmgMBBH8CQAJAIAAoAiwiAQRAIAAoAigiA0EEaygCACICQXhxIgRBBEEIIAJBA3EiAhsgAWpJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsgACgCNCIBBEAgACgCMCIDQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyABakkNASACQQAgBCABQSdqSxsNAiADEKICCwJAIAAoAowBIgFFDQAgASABKAIAIgFBAWs2AgAgAUEBRw0AIAAoAowBEN0FCwJAIAAoApABIgFFDQAgASABKAIAIgFBAWs2AgAgAUEBRw0AIAAoApABEN0FCyAAKAI8IgEEQCAAKAI4IgNBBGsoAgAiAkF4cSIEQQRBCCACQQNxIgIbIAFqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILIAAoAngiAQRAIAAoAnwiAEEEaygCACIDQXhxIgIgAUEFdCIBQQRBCCADQQNxIgMbckkNASADQQAgAiABQSdqSxsNAiAAEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC50DAQp/IAAoAgAhAwJAAkACQCAAKAIMIgJFDQAgACgCBCEFIAMgACgCCCIBIANBACABIANPG2siASACaiACIAMgAWsiB0sbIgQgAUcEQCAEIAFrIQQgBSABQQxsaiEBA0AgASgCACIGBEAgAUEEaigCACIJQQRrKAIAIghBeHEiCiAGQQJ0IgZBBEEIIAhBA3EiCBtqSQ0EIAhBACAKIAZBJ2pLGw0FIAkQogILIAFBDGohASAEQQFrIgQNAAsLIAIgB00NACACIAdrIgFBACABIAJNGyEBA0AgBSgCACICBEAgBUEEaigCACIHQQRrKAIAIgRBeHEiBiACQQJ0IgJBBEEIIARBA3EiBBtqSQ0DIARBACAGIAJBJ2pLGw0EIAcQogILIAVBDGohBSABQQFrIgENAAsLIAMEQCAAKAIEIgBBBGsoAgAiAUF4cSICIANBDGwiA0EEQQggAUEDcSIBG2pJDQEgAUEAIAIgA0EnaksbDQIgABCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuTBAMHfwF7AX4jAEEwayIEJAAgASgCACEIAkACQAJAAkACQAJAAkACQCABKAIEIgcEQAJAIAdBBE8EQCAIQRxqIQMgB0F8cSIFIQIDQCADIANBCGsgA0EQayADQRhr/VwCAP1WAgAB/VYCAAL9VgIAAyAJ/a4BIQkgA0EgaiEDIAJBBGsiAg0ACyAJIAkgCf0NCAkKCwwNDg8AAQIDAAECA/2uASIJIAkgCf0NBAUGBwABAgMAAQIDAAECA/2uAf0bACECIAUgB0YNAQsgByAFayEGIAVBA3QgCGpBBGohAwNAIAMoAgAgAmohAiADQQhqIQMgBkEBayIGDQALCyABKAIMIgMNAUEAIQMMBAsgASgCDCIDRQ0BDAILIAJBD0sNASADIQYgCCgCBA0BC0EBIQVBACECDAILIAJBACACQQBKG0EBdCECCyACQQBIDQECQCACRQRAQQEhBUEAIQIMAQsgAhBxIgVFDQMLIAMhBgsgBEEANgIQIAQgBTYCDCAEIAI2AgggASkCECEKIAEoAgghASAEIAo3AiQgBCAGNgIgIAQgATYCHCAEIAc2AhggBCAINgIUIARBCGpBjO/BACAEQRRqEMEDDQIgACAEKQIINwIAIABBCGogBEEQaigCADYCACAEQTBqJAAPC0GU7sEAEP8HCwALQZj6xwBB1gAgBEEvakGk7sEAQbTuwQAQ4AYAC/IDAQh/IAEoAgQiBQRAIAEoAgAhBANAAkAgA0EBaiECAn8gAiADIARqLQAAIgjAIglBAE4NABoCQAJAAkACQAJAAkACQAJAAkACQAJAIAgtAPSWQkECaw4DAAECDAtBm9HAACACIARqIAIgBU8bLAAAQUBODQsgA0ECagwKC0Gb0cAAIAIgBGogAiAFTxssAAAhByAIQeABayIGRQ0BIAZBDUYNAgwDC0Gb0cAAIAIgBGogAiAFTxssAAAhBiAIQfABaw4FBAMDAwUDCyAHQWBxQaB/Rw0IDAYLIAdBn39KDQcMBQsgCUEfakH/AXFBDE8EQCAJQX5xQW5HIAdBQE5yDQcMBQsgB0FATg0GDAQLIAlBD2pB/wFxQQJLIAZBQE5yDQUMAgsgBkHwAGpB/wFxQTBPDQQMAQsgBkGPf0oNAwtBm9HAACAEIANBAmoiAmogAiAFTxssAABBv39KDQJBm9HAACAEIANBA2oiAmogAiAFTxssAABBv39KDQIgA0EEagwBC0Gb0cAAIAQgA0ECaiICaiACIAVPGywAAEFATg0BIANBA2oLIgMiAiAFSQ0BCwsgACADNgIEIAAgBDYCACABIAUgAms2AgQgASACIARqNgIAIAAgAiADazYCDCAAIAMgBGo2AggPCyAAQQA2AgAL+AMBB38jAEEQayIHJABBASEJIAEgASgCFCIFQQFqIgY2AhQCQCAGIAEoAhAiCE8NAAJAAkAgASgCDCAGai0AAEEraw4DAQIAAgtBACEJCyABIAVBAmoiBjYCFAsCQAJAAkACfwJAAkAgBiAISQRAIAEgBkEBaiIFNgIUIAEoAgwiCiAGai0AAEEwa0H/AXEiBkEKTw0BAkAgBSAITw0AA0AgBSAKai0AAEEwa0H/AXEiC0EKTw0BIAEgBUEBaiIFNgIUIAZBzJmz5gBHIAtBB0tyIAZBy5mz5gBKcQ0GIAZBCmwgC2ohBiAFIAhHDQALCyAJDQIgBCAGayIFQR91QYCAgIB4cyAFIAZBAEogBCAFSnMbDAMLIAdBCGogASgCDCAIIAYQ+QEgBygCDCECIAcoAgghBEEUEHEiAUUNBCABIAQ2AgwgAUEFNgIAIAAgATYCBCAAQQE2AgAgASACNgIQDAULIAcgCiAIIAUQ+QEgBygCBCECIAcoAgAhBEEUEHEiAUUNAyABIAQ2AgwgAUENNgIAIAAgATYCBCAAQQE2AgAgASACNgIQDAQLIAQgBmoiBUEfdUGAgICAeHMgBSAGQQBIIAQgBUpzGwshBSAAIAEgAiADIAUQ8AQMAgsgACABIAIgA1AgCRDsBQwBCwALIAdBEGokAAvyAwEGfyMAQRBrIgIkACACQQA2AgQCfyABQYABTwRAIAFBP3FBgH9yIQMgAUEGdiEEIAFBgBBJBEAgAiADOgAFIAIgBEHAAXI6AARBAgwCCyABQQx2IQYgBEE/cUGAf3IhBCABQf//A00EQCACIAM6AAYgAiAEOgAFIAIgBkHgAXI6AARBAwwCCyACIAM6AAcgAiAEOgAGIAIgBkE/cUGAf3I6AAUgAiABQRJ2QXByOgAEQQQMAQsgAiABOgAEQQELIQEgAkEIaiAAKAIIKAIAIAJBBGogARCRBAJAAkACQAJAIAItAAgiBkEERwRAIAAoAgQhASAALQAAIgNBBE0gA0EDR3FFBEAgASgCACEDIAFBBGooAgAiBCgCACIFBEAgAyAFEQMACyAEKAIEIgQEQCADQQRrKAIAIgVBeHEiB0EEQQggBUEDcSIFGyAEakkNAyAFQQAgByAEQSdqSxsNBCADEKICCyABQQRrKAIAIgNBeHEiBEEQQRQgA0EDcSIDG0kNBCADQQAgBEE0TxsNBSABEKICCyAAIAIpAwg3AgALIAJBEGokACAGQQRHDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC+sDAgd9CX8gACABIAIQzAMgAkEEdCEOIARBAnQiAUFwcSEPIAFBDGpBcHEhECABQQhqQXBxIRFBAiAEIARBAk0bQQJ0QQRqQXBxIRIgACgCYCETIAAoAmQhDUEAIQFBACEAAkACQAJAAkACQANAIAFBBGoiAiANSw0CQwAAgD8gACATaiIMQQhqKAIAIhRBEHZB/wFxs0MAAH9DlSIGIAaSQwAAgL+SIgWLkyAUQRh2s0MAAH9DlSIGIAaSQwAAgL+SIgqLkyIGjEMAAAAAEOAIIQcgDEEPai0AALNDAAB/Q5VDAAAAP5RD2w9JQJQiCBCZAiEJIAgQmwIhCCAAIBBGDQMgACADaiIMIAkgBSAHjCILIAcgBUMAAAAAYBuSIgUgBiAGlCAFIAWUIAogCyAHIApDAAAAAGAbkiIHIAeUkpKRIgWVlDgCACAAIBFGDQQgDEEEaiAJIAcgBZWUOAIAIAAgEkYNBSAMQQhqIAkgBiAFlZQ4AgAgACAPRg0BIAxBDGogCDgCACACIQEgDiAAQRBqIgBHDQALDwsgAUEDaiAEQczVwAAQjAcACyABIAIgDUHc1cAAEOoHAAsgASAEQZzVwAAQjAcACyABQQFqIARBrNXAABCMBwALIAFBAmogBEG81cAAEIwHAAufBQEPfyMAQRBrIgQkAAJAAkACQAJAIAIEQCACQQJ0IgkQcSIIBEAgCEEEayIQLQAAQQNxRSAJRXJFBEAgCEEAIAn8CwALIAkhBgNAIAEoAgAiAyACTw0FIAggA0ECdGogBTYCACABQQRqIQEgBUEBaiEFIAZBBGsiBg0AC0EAIQYgBEEANgIMIARCgICAgMAANwIEQQQhA0EAIQUCQANAIAUgCCAFQQJ0aiILKAIAIgFHBEAgBkEDdCEMA0AgBCgCBCAGRgRAIwBBIGsiAyQAAkACQCAEQQRqIgcoAgAiCkH/////AEsNAEEEIApBAXQiDSANQQRNGyINQQN0IhFB/P///wdLDQAgAyAKBH8gAyAKQQN0NgIcIAMgBygCBDYCFEEEBUEACzYCGCADQQhqQQQgESADQRRqEIUHIAMoAghBAUcNASADKAIQIQ8gAygCDCEOCyAOIA9B4PbHABCTCQALIAMoAgwhCiAHIA02AgAgByAKNgIEIANBIGokACAEKAIIIQMLIAMgDGoiByAFNgIAIAdBBGogATYCACAEIAZBAWoiBjYCDCABIAJPDQMgCygCACEHIAsgCCABQQJ0aiIBKAIANgIAIAEgBzYCACAMQQhqIQwgCygCACIBIAVHDQALCyAFQQFqIgUgAkcNAAsgACAEKQIENwIAIABBCGogBEEMaigCADYCACAQKAIAIgBBeHEiAUEEQQggAEEDcSIAGyAJakkNAyAAQQAgASAJQSdqSxsNBCAIEKICDAYLIAEgAkHw9scAEIwHCwALIABCgICAgMAANwIAIABBCGpBADYCAAwDC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgAyACQdD2xwAQjAcACyAEQRBqJAAL5QMCBH8EfiMAQdAAayIDJAAgA/0MAAAAAAAAAAAAAAAAAAAAAP0LAzggAyABNwMwIAMgAULzytHLp4zZsvQAhTcDICADIAFC7d6R85bM3LfkAIU3AxggAyAANwMoIAMgAELh5JXz1uzZvOwAhTcDECADIABC9crNg9es27fzAIU3AwggAyACLQAAIgU2AkwgA0EIaiIEIANBzABqIgZBBBCCAyAFQQtGBEAgA0EENgJMIAQgBkEEEIIDIAQgAkEBakEEEIIDCyADKQMIIQEgAykDGCEAIAM1AkAhCSADKQM4IQcgAykDICADKQMQIQogA0HQAGokACAHIAlCOIaEIgmFIgdCEIkgByAKfCIHhSIIQhWJIAggACABfCIBQiCJfCIIhSIKQhCJIAogByAAQg2JIAGFIgB8IgFCIIlC/wGFfCIHhSIKQhWJIAogASAAQhGJhSIAIAggCYV8IgFCIIl8IgmFIghCEIkgCCABIABCDYmFIgAgB3wiAUIgiXwiB4UiCEIViSAIIAEgAEIRiYUiACAJfCIBQiCJfCIJhSIIQhCJIAggAEINiSABhSIAIAd8IgFCIIl8IgeFQhWJIABCEYkgAYUiAEINiSAAIAl8hSIAQhGJhSAAIAd8IgBCIImFIACFC/oDAgd/AX4jAEEwayICJAACQAJAAkACQAJAAkAgACgCBCIDDgMBAwIAC0EBIQQgASgCACIFQeCQxgBBByABKAIEIgYoAgwiBxEAAA0EIAIgACgCACIANgIUIAIgAkEUaq1CgICAgNAAhCIJNwMAIAJCATcCJCACQQI2AhwgAkGwkMYANgIYIAIgAjYCICAFIAYgAkEYahDBAw0DQQAhBCADQQN0IgFBCGsiA0UNBCAAIAFqIQggA0EDdiEDIABBCGoiAEEIQQAgAUEIRxtqIQEDQCACIAA2AhQgBUHnkMYAQQIgBxEAAA0EIAIgCTcDACACQgE3AiQgAkECNgIcIAJBsJDGADYCGCACIAI2AiAgBSAGIAJBGGoQwQMNBCABQQhBACABIgAgCEcbaiEBIANBAWsiAw0ACwwEC0GQkMYAQQ5BoJDGABDrBwALIAJCgICAgCAiCSAAKAIAIgCthDcDACACIAkgAEEIaq2ENwMIIAEoAgAgASgCBCACQgI3AiQgAkEDNgIcIAJByJDGADYCGCACIAI2AiAgAkEYahDBAyEEDAILIAIgADUCAEKAgICAIIQ3AwAgASgCACABKAIEIAJCATcCJCACQQI2AhwgAkGwkMYANgIYIAIgAjYCICACQRhqEMEDIQQMAQtBASEECyACQTBqJAAgBAuVBAEHfyMAQRBrIgkkAEEgIQQgASgChAEiAyEGIAFBBGoiBSEHIANBIU8EQCABKAIEIQYgASgCCCEHIAMhBAsCQAJAAkACQCACIAZPBEACQAJAAkACQAJAIAJBIU8EQEGBgICAeCEIIAIgBEYNCkEAIQggAkH/////A0sgAkECdCIFQfz///8HS3INCiADQSFJDQIgBEECdCEDIARB/////wNNDQEgAyEFDAoLQYGAgIB4IQggA0EhSQ0JIAFBADYCACAGQQJ0IgIEQCAFIAcgAvwKAAALIAEgBjYChAEgBEECdCIDQf3///8HSSAEQf////8DTXENBCAJIAM2AgwgCUEANgIIQdjmyABBKyAJQQhqQbTMxwBBxMzHABDgBgALIANB/f///wdJDQEgAyEFDAgLIAUQcSIEDQFBBCEIDAcLQQQhCCAHIANBBCAFELsCIgRFDQYMBQsgBkECdCIDRQ0EIAQgByAD/AoAAAwECyAHQQRrKAIAIgFBeHEiAkEEQQggAUEDcSIBGyADakkNASABQQAgAiADQSdqSxsNAiAHEKICDAQLQfTMxwBBIEGUzccAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAEgAjYChAEgASAENgIIIAEgBjYCBCABQQE2AgBBgYCAgHghCAsgACAFNgIEIAAgCDYCACAJQRBqJAALkgQBB38jAEEQayIJJABBBCEEIAEoAhQiAyEGIAFBBGoiBSEHIANBBU8EQCABKAIEIQYgASgCCCEHIAMhBAsCQAJAAkACQCACIAZPBEACQAJAAkACQAJAIAJBBU8EQEGBgICAeCEIIAIgBEYNCkEAIQggAkH/////A0sgAkECdCIFQfz///8HS3INCiADQQVJDQIgBEECdCEDIARB/////wNNDQEgAyEFDAoLQYGAgIB4IQggA0EFSQ0JIAFBADYCACAGQQJ0IgIEQCAFIAcgAvwKAAALIAEgBjYCFCAEQQJ0IgNB/f///wdJIARB/////wNNcQ0EIAkgAzYCDCAJQQA2AghB2ObIAEErIAlBCGpBtMzHAEHEzMcAEOAGAAsgA0H9////B0kNASADIQUMCAsgBRBxIgQNAUEEIQgMBwtBBCEIIAcgA0EEIAUQuwIiBEUNBgwFCyAGQQJ0IgNFDQQgBCAHIAP8CgAADAQLIAdBBGsoAgAiAUF4cSICQQRBCCABQQNxIgEbIANqSQ0BIAFBACACIANBJ2pLGw0CIAcQogIMBAtB9MzHAEEgQZTNxwAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgASACNgIUIAEgBDYCCCABIAY2AgQgAUEBNgIAQYGAgIB4IQgLIAAgBTYCBCAAIAg2AgAgCUEQaiQAC5IEAQd/IwBBEGsiCSQAQQghBCABKAIkIgMhBiABQQRqIgUhByADQQlPBEAgASgCBCEGIAEoAgghByADIQQLAkACQAJAAkAgAiAGTwRAAkACQAJAAkACQCACQQlPBEBBgYCAgHghCCACIARGDQpBACEIIAJB/////wNLIAJBAnQiBUH8////B0tyDQogA0EJSQ0CIARBAnQhAyAEQf////8DTQ0BIAMhBQwKC0GBgICAeCEIIANBCUkNCSABQQA2AgAgBkECdCICBEAgBSAHIAL8CgAACyABIAY2AiQgBEECdCIDQf3///8HSSAEQf////8DTXENBCAJIAM2AgwgCUEANgIIQdjmyABBKyAJQQhqQbTMxwBBxMzHABDgBgALIANB/f///wdJDQEgAyEFDAgLIAUQcSIEDQFBBCEIDAcLQQQhCCAHIANBBCAFELsCIgRFDQYMBQsgBkECdCIDRQ0EIAQgByAD/AoAAAwECyAHQQRrKAIAIgFBeHEiAkEEQQggAUEDcSIBGyADakkNASABQQAgAiADQSdqSxsNAiAHEKICDAQLQfTMxwBBIEGUzccAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAEgAjYCJCABIAQ2AgggASAGNgIEIAFBATYCAEGBgICAeCEICyAAIAU2AgQgACAINgIAIAlBEGokAAuPAwEEfwJAAkACQCAALQAAIgFBBEYgAUECRnINACAAKAIEIgFFDQAgACgCCCIDQQRrKAIAIgJBeHEiBEEEQQggAkEDcSICGyABakkNASACQQAgBCABQSdqSxsNAiADEKICCwJAIAAtABAiAUEERiABQQJGcg0AIAAoAhQiAUUNACAAKAIYIgNBBGsoAgAiAkF4cSIEQQRBCCACQQNxIgIbIAFqSQ0BIAJBACAEIAFBJ2pLGw0CIAMQogILAkAgAC0AICIBQQRGIAFBAkZyDQAgACgCJCIBRQ0AIAAoAigiA0EEaygCACICQXhxIgRBBEEIIAJBA3EiAhsgAWpJDQEgAkEAIAQgAUEnaksbDQIgAxCiAgsCQCAALQAwIgFBBEYgAUECRnINACAAKAI0IgFFDQAgACgCOCIAQQRrKAIAIgNBeHEiAkEEQQggA0EDcSIDGyABakkNASADQQAgAiABQSdqSxsNAiAAEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC98DAgR/BH4jAEHQAGsiAyQAIAP9DAAAAAAAAAAAAAAAAAAAAAD9CwM4IAMgATcDMCADIAFC88rRy6eM2bL0AIU3AyAgAyABQu3ekfOWzNy35ACFNwMYIAMgADcDKCADIABC4eSV89bs2bzsAIU3AxAgAyAAQvXKzYPXrNu38wCFNwMIIAMgAi0AACIFNgJMIANBCGoiBCADQcwAaiIGEIsEIAVBC0YEQCADQQQ2AkwgBCAGEIsEIAQgAkEBahCLBAsgAykDCCEBIAMpAxghACADNQJAIQkgAykDOCEHIAMpAyAgAykDECEKIANB0ABqJAAgByAJQjiGhCIJhSIHQhCJIAcgCnwiB4UiCEIViSAIIAAgAXwiAUIgiXwiCIUiCkIQiSAKIAcgAEINiSABhSIAfCIBQiCJQv8BhXwiB4UiCkIViSAKIAEgAEIRiYUiACAIIAmFfCIBQiCJfCIJhSIIQhCJIAggASAAQg2JhSIAIAd8IgFCIIl8IgeFIghCFYkgCCABIABCEYmFIgAgCXwiAUIgiXwiCYUiCEIQiSAIIABCDYkgAYUiACAHfCIBQiCJfCIHhUIViSAAQhGJIAGFIgBCDYkgACAJfIUiAEIRiYUgACAHfCIAQiCJhSAAhQuOBAEFfyMAQSBrIgMkAAJAAkACQCAAKAIAIgFFDQADQAJAIAAoAggiAiAAKAIETw0AIAEgAmotAABBxQBHDQAgACACQQFqNgIIDAILAkAgBEUNACAAKAIQIgFFDQAgAUHwyccAQQMQlwMNAwsgABCJBUH/AXEiAUECRg0CA0ACQAJAAkACQAJAIAAoAgAiBUUNACAAKAIIIgIgACgCBE8NACACIAVqLQAAQfAARw0AIAAgAkEBajYCCCABQQFxDQEgACgCECIBRQ0CIAFBprPFAEEBEJcDDQgMAgsgAUEBcUUNAiAAKAIQIgJFDQJBASEBIAJBq7PFAEEBEJcDRQ0CDAgLIAAoAhAiAUUNACABQeeQxgBBAhCXAw0GCyAAKAIADQEgACgCECICRQ0AQQEhASACQZOzxQBBARCXAw0GCyAEQQFqIQQgACgCACIBDQIMAwsgAyAAEO8CIAMoAgBFBEAgAy0ABCEEIAAoAhAiAgRAQQEhASACQfqyxQBB6rLFACAEQQFxIgIbQRlBECACGxCXAw0GCyAAIAQ6AARBACEBIABBADYCAAwFCyADIAP9AAIA/QsDEAJAIAAoAhAiAUUNACADQRBqIAEQiwINBCAAKAIQIgFFDQAgAUGBtMUAQQMQlwMNBAtBASEBIAAQhgJFDQALCwwBC0EAIQEMAQtBASEBCyADQSBqJAAgAQvTAwEEfwJAAkACQAJAAkAgAkEHTQRAIAINAQwFCyABQQNqQXxxIgQgAUYNASAEIAFrIQUgASAEayEGQQEhAyABIQQDQCAELQAAQS5GDQUgBEEBaiEEIAZBAWoiBg0ACyAFIAJBCGsiA0sNAwwCC0EBIQMgAS0AAEEuRg0DIAJBAUYEQEEAIQMMBAsgAS0AAUEuRg0DIAJBAkYEQEEAIQMMBAsgAS0AAkEuRg0DIAJBA0YEQEEAIQMMBAsgAS0AA0EuRg0DIAJBBEYEQEEAIQMMBAsgAS0ABEEuRg0DIAJBBUYEQEEAIQMMBAsgAS0ABUEuRg0DQQAhAyACQQZGDQMgAS0ABkEuRiEDDAMLIAJBCGshAwsDQEGAgoQIIAEgBWoiBCgCACIGQa7cuPECc2sgBnJBgIKECCAEQQRqKAIAIgRBrty48QJzayAEcnFBgIGChHhxQYCBgoR4Rw0BIAVBCGoiBSADTQ0ACwsgAiAFRgRAQQAhAwwBCyABIAVqIQQgBUF/cyACaiEGA0AgBC0AAEEuRiIDDQEgBEEBaiEEIAYiBUEBayEGIAUNAAsLIAAgAyAALQAEcjoABCAAKAIAIgAoAgAgASACIAAoAgQoAgwRAAAL/wMBBn8jAEHQA2siAiQAIAEtAFgiA0ECRwRAIAJBIGogAUHUAGooAgA2AgAgAkEYaiABQcwAaikCADcDACACQQZqIAFB2wBqLQAAOgAAIAIgAf0AAjz9CwMIIAIgAS8AWTsBBAsgAkH4AWogAkEgaigCADYCACACQfABaiACQRhqKQMANwMAIAJB/wFqIAJBBmotAAA6AAAgAiAC/QADCP0LA+ABIAIgAzoA/AEgAiACLwEEOwD9ASACQSRqIAFBASACQeABaiIBEHICQAJAAkACfyACKAIkQQJGBEAgAigCKCEDIAJBADYCyAMgAkKAgICAEDcCwAMgAkGck8EANgLkASACQqCAgIAONwLoASACIAJBwANqNgLgASADIAEQrwQNAiACKALAAyEEIAIoAsQDIgYgAigCyAMQ7AghASAEBEAgBkEEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgBGpJDQQgBUEAIAcgBEEnaksbDQUgBhCiAgsgAyADKAIAKAIAEQMAQQEMAQsgAkGEAmoiASACQSRqQbwB/AoAACABENIBIQFBAAshAyAAIAE2AgQgACADNgIAIAJB0ANqJAAPC0GgnsYAQTcgAkHPA2pBtJPBAEHYnsYAEOAGAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALogQBBH8jAEEwayICJAACQAJAAkACQAJAAkACQAJAAkACQAJAQQEgAS0AACIDQSRrIANBI00bQf8BcUEBaw4DAwECAAsgAEEFNgIAIAAgASkCBDcCBAwJCyACIAH9AAIA/QsDACACQQA2AhggAkKAgICAEDcCECACQey1xAA2AiAgAkKggICADjcCJCACIAJBEGo2AhwgAiACQRxqEOEEDQIgACACKQIQNwIEIABBDGogAkEYaigCADYCACAAQQI2AgAgAEEANgIQIAItAABBJEcNCCACLQAEQQNHDQggAigCCCIAKAIAIQEgAEEEaigCACIDKAIAIgQEQCABIAQRAwALIAMoAgQiAwRAIAFBBGsoAgAiBEF4cSIFQQRBCCAEQQNxIgQbIANqSQ0EIARBACAFIANBJ2pLGw0FIAEQogILIABBBGsoAgAiAUF4cSIDQRBBFCABQQNxIgEbSQ0FIAFBACADQTRPGw0GIAAQogIMCAsgAEEDNgIAIABCAzcDCAwHC0EQEHEiA0UNBSAAQbC7xAA2AhggACADNgIUIABBADsBBCAAQQA2AgAgAyAB/QACAP0LAgAMBgtBoJ7GAEE3IAJBL2pBhLbEAEHYnsYAEOAGAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACwALIAJBMGokAAu9BAEFfyMAQSBrIgEkAAJAAkACQAJAAkADQCAAEM8FIAAoAggiAiAAKAIEIgNGDQEgAiADTw0CIAAoAgAiBSACai0AACIEQdwARwRAIARBIkcEQCABQRA2AhQgACABQRRqEIsHIQAMBwsgACACQQFqNgIIQQAhAAwGCyAAIAJBAWoiBDYCCAJAAkACfyADIARLBEAgACACQQJqIgI2AgggBCAFai0AAAwBCyABQQQ2AhQgAUEMaiAAIAFBFGoQ8wYgAS0ADA0GIAQhAiABLQANC0Eiaw5UAgAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAIAAAACAAAAAAAAAAIAAAACAAIBAAsgAUEMNgIUIAAgAUEUahCLByEADAYLIAIgA0sNBAJAIAMgAmtBA00EQCAAIAM2AgggAUEENgIUIAFBDGogACABQRRqEPQGDAELIAAgAkEEajYCCCACIAVqIgItAAFBAXQvAYiURiACLQAAQQF0LwGImEZyIAItAAJBAXQvAYiYRnIgAi0AA0EBdC8BiJRGcsFBAE4EQCABQQA7AQwMAQsgAUEMNgIUIAFBDGogACABQRRqEPQGCyABLwEMQQFHDQALIAEoAhAhAAwECyABQQQ2AhQgACABQRRqEIsHIQAMAwsgAiADQbilxgAQjAcACyABKAIQIQAMAQsgAiADIANByKXGABDqBwALIAFBIGokACAAC+EDAwJ/BX4BeyAAKQM4IQcgACkDKCIEIQYCQAJAAkACQAJAAkAgBCAAKQMIIgVSDQAgACkDMCIGIAApAxAiBVINACAHIQYgByAAKQMYIgVRDQELIAUgBlgNACAAQTBqIQJBAiEDA0AgAkEoaikDACEGIAJBGGopAwAiCCEFAkAgBCAIUg0AIAJBIGopAwAiBSACKQMAIgRSDQAgByEEIAYiBSAHUQ0DCyAEIAVYDQIgAkEgaiECIAYhByAIIQQgASADQQFqIgNHDQALDAILIABBMGohAkECIQMDQAJAIAJBKGopAwAhBiACQRhqKQMAIgghBQJAAkAgBCAIUg0AIAJBIGopAwAiBSACKQMAIgRSDQAgByEEIAYiBSAHUQ0BCyAEIAVWDQELIAJBIGohAiAGIQcgCCEEIAEgA0EBaiIDRw0BDAULCyABIANGDQMMAgsgASADRw0BCyABQQF2IQMgAUEFdCAAakEgayECA0AgAP0AAwAhCSAAIAL9AAMA/QsDACACIAn9CwMAIABBEGoiAf0AAwAhCSABIAJBEGoiAf0AAwD9CwMAIAEgCf0LAwAgAkEgayECIABBIGohACADQQFrIgMNAAsMAQsgACABQQAgAUEBcmdBAXRBPnMQqgELC9YDAQt/IwBBEGsiCCQAAkACQAJAAkAgAyAEbCIHQf////8DSw0AIAdBAnQiCkH9////B08NAAJAIApFBEBBBCELQQAhBwwBCyAKEHEiC0UNAgsgCEEANgIMIAggCzYCCCAIIAc2AgQgAxBxIgxFDQEgDEEEayIQKAIAIglBA3EiB0UgA0VyRQRAIAxBACAD/AsACwJAIAQEQCAGIAWTIQZBACEHA0AgDUECdCEOIAdBAWogAyEPIAwhCQNAIAIgB00NAyAJIAEgB2otAAAgCS0AAGoiEToAACAIKAIEIA1GBEAgCEEEakGs6ccAEPoFIAgoAgghCwsgCyAOaiAFIAYgEUH/AXGzQwAAf0OVlJI4AgAgCCANQQFqIg02AgwgCUEBaiEJIA5BBGohDiAEIAdqIQcgD0EBayIPDQALIgcgBEcNAAsgECgCACIJQQNxIQcLIAAgCCkCBDcCACAAQQhqIAhBDGooAgA2AgAgCUF4cSIAQQRBCCAHGyADakkNAyAHQQAgACADQSdqSxsNBCAMEKICIAhBEGokAA8LIAcgAkGc6ccAEIwHAAtBjOnHABD/BwsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuOAwEEfwJAAkAgACgCDCICQYCAgIB4ckGAgICAeEcEQCAAKAIQIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILIAAoAhhBgICAgHhHBEAgAEEYahD2AgsgACgCACICBEAgACgCBCIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAKAJ4IgJBgICAgHhyQYCAgIB4RwRAIAAoAnwiA0EEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAQgAkEnaksbDQIgAxCiAgsCQCAAKAKEASICRQ0AIAAoAogBIgAoAgAiAwRAIAIgAxEDAAsgACgCBCIARQ0AIAJBBGsoAgAiA0F4cSIBQQRBCCADQQNxIgMbIABqSQ0BIANBACABIABBJ2pLGw0CIAIQogILDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALjAMBBH8CQAJAIAAoAgwiAkGAgICAeHJBgICAgHhHBEAgACgCECIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAKAIYQYCAgIB4RwRAIABBGGoQ9QILIAAoAgAiAgRAIAAoAgQiA0EEaygCACIBQXhxIgRBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAQgAkEnaksbDQIgAxCiAgsgACgCWCICQYCAgIB4ckGAgICAeEcEQCAAKAJcIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILAkAgACgCZCICRQ0AIAAoAmgiACgCACIDBEAgAiADEQMACyAAKAIEIgBFDQAgAkEEaygCACIDQXhxIgFBBEEIIANBA3EiAxsgAGpJDQEgA0EAIAEgAEEnaksbDQIgAhCiAgsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvJAwINfwF+An8gAyAFQQFrIg0gASgCFCIIaiIHSwRAIAUgASgCECIOayEPIAEoAhwhCyABKAIIIQogASkDACEUA0ACQCABAn8CQCAUIAIgB2oxAACIQgGDUARAIAEgBSAIaiIINgIUIAYNAwwBCyAKIAsgCiAKIAtJGyAGGyIJIAUgBSAJSRshDCACIAhqIRAgCSEHAkACQAJAA0AgByAMRgRAQQAgCyAGGyEMIAohBwNAIAcgDE0EQCABIAUgCGoiAjYCFCAGRQRAIAFBADYCHAsgACACNgIIIAAgCDYCBEEBDAwLIAdBAWsiByAFTw0FIAcgCGoiCSADTw0DIAQgB2otAAAgAiAJai0AAEYNAAsgASAIIA5qIgg2AhQgDyAGRQ0GGgwHCyAHIAhqIhEgA08NAiAHIBBqIRIgBCAHaiAHQQFqIQctAAAgEi0AAEYNAAsgESAKa0EBaiEIIAZFDQMMBQsgCSADQfiexwAQjAcACyADIAggCWoiACAAIANJGyADQYifxwAQjAcACyAHIAVB6J7HABCMBwALQQALIgc2AhwgByELCyAIIA1qIgcgA0kNAAsLIAEgAzYCFEEACyEHIAAgBzYCAAvtAwIFfwF7QQJBAyACQQhGGyEJAkACQCAFBEAgAUEBayADbiEGIAMhByACIQoDQCAGRQ0CIAZBAWshBiAIIAAgB2otAABqIQggAyAHaiEHIApBAWsiCg0ACyAJQQFqIQkLIARFDQECeyAA/VwAAf2JAf2pASAA/VwABf2JAf2pAf2uASILIAJBHHEiBkEIRg0AGiALIAD9XAAJ/YkB/akB/a4BIgsgBkEMRg0AGiALIAD9XAAN/YkB/akB/a4BCyILIAsgC/0NCAkKCwwNDg8AAQIDAAECA/2uASILIAsgC/0NBAUGBwABAgMAAQIDAAECA/2uAf0bACEHIAIgBkcEQCACIAZrIQogACAGakEBaiEGA0AgByAGLQAAaiEHIAZBAWohBiAKQQFrIgoNAAsLIAlBAWohCSAHIAhqIQgMAQsgByABQdjixAAQjAcAC0EBIAlBAWt0IAhqIAl2IgcgB0GAfyAFGyAEGyEEIANBAWohCCABQQFrIgUgA2shBiAFIANuIQVBACEHAkACQANAIAUgB0YNAiACIAZNBEAgAgRAIAAgCGogBCAC/AsACyAGIANrIQYgAyAIaiEIIAIgB0EBaiIHRg0CDAELC0EAIAIgBkG44sQAEOoHAAsPCyAIIAEgAUHI4sQAEOoHAAvdAwIEfgZ/IAEpAxAgASkDGCACEPIDIQUgASgCBCIJIAWncSEHIAVCGYhC/wCDQoGChIiQoMCAAX4hBiABKAIAIQoCQAJAIAItAAAiC0ELRwRAA0AgByAKaikAACIEIAaFIgNCf4UgA0KBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIDUEUEQANAIAogA3qnQQN2IAdqIAlxQWhsaiIMQRhrLQAAIAtGDQQgA0IBfSADgyIDUEUNAAsLIAQgBEIBhoNCgIGChIiQoMCAf4NCAFINAyAHIAhBCGoiCGogCXEhBwwACwALIAIoAAEhCwNAIAcgCmopAAAiBCAGhSIDQn+FIANCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiA1BFBEADQCAKIAN6p0EDdiAHaiAJcUFobGoiDEEYay0AAEELRgRAIAxBF2soAAAgC0YNBAsgA0IBfSADgyIDUEUNAAsLIAQgBEIBhoNCgIGChIiQoMCAf4NQRQ0CIAcgCEEIaiIIaiAJcSEHDAALAAsgAEEMOgAMIAAgATYCBCAAIAw2AgAPCyABKAIIRQRAIAEgAUEQahDAAQsgACABNgIIIAAgBTcDACAAIAIoAAA2AAwgAEEQaiACQQRqLQAAOgAAC40DAQR/AkACQCAAKALQASICQYCAgIB4ckGAgICAeEcEQCAAKALUASIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAKAIAQQJHBEAgABCKAgsgACgCxAEiAgRAIAAoAsgBIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILIAAoAtwBIgJBgICAgHhyQYCAgIB4RwRAIAAoAuABIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILAkAgACgC6AEiAkUNACAAKALsASIAKAIAIgMEQCACIAMRAwALIAAoAgQiAEUNACACQQRrKAIAIgNBeHEiAUEEQQggA0EDcSIDGyAAakkNASADQQAgASAAQSdqSxsNAiACEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC40DAQR/AkACQCAAKALIASICQYCAgIB4ckGAgICAeEcEQCAAKALMASIDQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyACakkNASABQQAgBCACQSdqSxsNAiADEKICCyAAKAIAQQJHBEAgABDAAgsgACgCvAEiAgRAIAAoAsABIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILIAAoAtQBIgJBgICAgHhyQYCAgIB4RwRAIAAoAtgBIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIAJqSQ0BIAFBACAEIAJBJ2pLGw0CIAMQogILAkAgACgC4AEiAkUNACAAKALkASIAKAIAIgMEQCACIAMRAwALIAAoAgQiAEUNACACQQRrKAIAIgNBeHEiAUEEQQggA0EDcSIDGyAAakkNASADQQAgASAAQSdqSxsNAiACEKICCw8LQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC9wDAQd/IwBBIGsiAyQAIAAoAgwhBAJAAkACQCAAKAIUIgEgACgCECICSQRAA0AgASAEai0AACIFQQlrIgdBF0tBASAHdEGTgIAEcUVyDQIgACABQQFqIgE2AhQgASACRw0ACyACIQELIAMgBCACIAFBAWoiACACIAAgAkkbEPkBIAMoAgQhACADKAIAIQJBFBBxIgFFDQIgASACNgIMIAFBBTYCACABIAA2AhAMAQsgBUHuAEYEQCAAIAFBAWoiBjYCFAJAIAIgBk0NACAAIAFBAmoiBTYCFAJAIAQgBmotAABB9QBHDQAgBSAGIAIgAiAGSRsiBkYNASAAIAFBA2oiBzYCFCAEIAVqLQAAQewARwRAIAchBQwBCyAGIAdGDQEgACABQQRqIgU2AhRBACEBIAQgB2otAABB7ABGDQMLIANBEGogBCACIAUQ+QEgAygCFCEAIAMoAhAhAkEUEHEiAUUNAyABIAI2AgwgAUEJNgIAIAEgADYCEAwCCyADQQhqIAQgAiAGEPkBIAMoAgwhACADKAIIIQJBFBBxIgFFDQIgASACNgIMIAFBBTYCACABIAA2AhAMAQsgACADQR9qQcjAwQAQ7gEgABDrBSEBCyADQSBqJAAgAQ8LAAvGAwINfwF+IAMgBUEBayINIAEoAhQiCGoiB0sEQCAFIAEoAhAiDmshDyABKAIcIQsgASgCCCEKIAEpAwAhFANAAkAgAQJ/AkAgFCACIAdqMQAAiEIBg1AEQCABIAUgCGoiCDYCFCAGDQMMAQsgCiALIAogCiALSRsgBhsiCSAFIAUgCUkbIQwgAiAIaiEQIAkhBwJAAkACQANAIAcgDEYEQEEAIAsgBhshDCAKIQcDQCAHIAxNBEAgASAFIAhqIgI2AhQgBkUEQCABQQA2AhwLIAAgAjYCCCAAIAg2AgQgAEEBNgIADwsgB0EBayIHIAVPDQUgByAIaiIJIANPDQMgBCAHai0AACACIAlqLQAARg0ACyABIAggDmoiCDYCFCAPIAZFDQYaDAcLIAcgCGoiESADTw0CIAcgEGohEiAEIAdqIAdBAWohBy0AACASLQAARg0ACyARIAprQQFqIQggBkUNAwwFCyAJIANB+J7HABCMBwALIAMgCCAJaiIAIAAgA0kbIANBiJ/HABCMBwALIAcgBUHonscAEIwHAAtBAAsiBzYCHCAHIQsLIAggDWoiByADSQ0ACwsgASADNgIUIABBADYCAAvzAwIEfwJ9IwBBEGshAiAAvCIDQR92IQQCQAJ9IAACfwJAAkACQAJAIANB/////wdxIgFB0Ni6lQRPBEAgAUGAgID8B0sEQCAADwsgA0EASCIDRSABQZfkxZUES3ENAiADRQ0BIAJDAACAgCAAlTgCCCACKgIIGiABQbTjv5YETQ0BDAcLIAFBmOTF9QNNBEAgAUGAgIDIA00NA0EAIQEgAAwGCyABQZKrlPwDTQ0DCyAAQzuquD+UIARBAnQqAuSwSZL8AAwDCyAAQwAAAH+UDwsgAiAAQwAAAH+SOAIMIAIqAgwaIABDAACAP5IPCyAERSAEawsiAbIiBUMAcjG/lJIiACAFQ46+vzWUIgaTCyEFIAAgBSAFIAUgBZQiACAAQxVSNbuUQ4+qKj6SlJMiAJRDAAAAQCAAk5UgBpOSQwAAgD+SIQUgAUUNAAJAAkACQCABQf8ATARAIAFBgn9ODQMgBUMAAIAMlCEFIAFBm35NDQEgAUHmAGohAQwDCyAFQwAAAH+UIQUgAUH+AUsNASABQf8AayEBDAILIAVDAACADJQhBUG2fSABIAFBtn1NG0HMAWohAQwBCyAFQwAAAH+UIQVB/QIgASABQf0CTxtB/gFrIQELIAUgAUEXdEGAgID8A2pBgICA/AdxvpQhBQsgBQuiAwEFfyAALwEcIQECf0EAIAAvAR4iAkH//wFxIgNBgPgBSw0AGkEAIAFB//8BcSIEQYD4AUsNABogAsFBAE4EQCABIAJJIAHBQQBODQEaIAIgBHJBAEcMAQsgAcFBAEggASACS3ELIQQgAiABIAQbIAEgA0GB+AFJGyEBAkAgAC8BICIAQf//AXEiAkGA+AFLDQAgAUH//wFxIgNBgPgBSw0AIADBQQBOBEAgAcFBAE4EQCAAIAFB//8DcUshBQwCCyAAIANyQQBHIQUMAQsgAcFBAEggACABQf//A3FJcSEFCwJ/IAAgASAFGyABIAJBgfgBSRsiAUH//wFxRQRAIAFBEHQMAQsgAUH/B3EhACABQYCAAnEhAiABQYD4AXEiAUGA+AFGBEAgAkEQdCIBQYCAgPwHciAARQ0BGiABIABBDXRyQYCAgP4HcgwBCyACQRB0IgIgAUENdEGAgID8AHEgAEENdHJBgICAwANqciABDQAaIAJBgICA2ANyIABnQRBrIgFBF3RrIAAgAUH//wNxQQhqdEH///8DcXILvhCJBAugAwIGfwZ+QQQhAyAAIAAoAjhBBGo2AjhBBCECAn4CQCAAKAI8IgRFDQBBCCAEayIFQQQgBUEESSIHGyEGAn4gBwRAQQAhAkIADAELIAE1AAALIQggBiACQQFySwRAIAEgAmozAAAgAkEDdK2GIAiEIQggAkECciECCyAAIAApAzAgAiAGSQR+IAEgAmoxAAAgAkEDdK2GIAiEBSAICyAEQQN0QThxrYaEIgg3AzAgBUEFTwRAIAAgBEEEajYCPA8LIAAgACkDGCAIhSIJIAApAwh8IgsgACkDECIKQg2JIAogACkDAHwiCoUiDHwiDSAMQhGJhTcDECAAIA1CIIk3AwggACALIAlCEImFIglCFYkgCSAKQiCJfCIJhTcDGCAAIAggCYU3AwAgBEEEayECIARBCEYNAEEAIQNCAAwBC0EAIQUgATUAAAshCCACIANBAXJLBEAgASAFaiADajMAACADQQN0rYYgCIQhCCADQQJyIQMLIAAgAiADSwR+IAEgAyAFamoxAAAgA0EDdK2GIAiEBSAICzcDMCAAIAI2AjwL3wMCBX8BfiMAQTBrIgQkAAJAAkACQAJAAkACQAJAIAEgAigCLBETACIIQv////8PVg0AIAinIgNBAEgNACADQQF2IQcCQCADQf7///8HcSIGRQRAQQIhAwwBCyAGEHEiA0UNAiADQQRrLQAAQQNxRSAGRXJFBEAgA0EAIAb8CwALIAchBQsgBEEIaiABIAMgBiACKAI0EQYAIAQoAghBBkcEQCAAIAT9AAMI/QsDACAAQSBqIARBKGopAwA3AwAgAEEQaiAEQRhq/QADAP0LAwAgBUUNByADQQRrKAIAIgBBeHEiASAFQQF0IgJBBEEIIABBA3EiABtqSQ0DIABBACABIAJBJ2pLGw0EIAMQogIMBwsgACAHNgIMIAAgAzYCCCAAIAU2AgQgAEEGNgIADAYLIABCAzcDCCAAQQM2AgAgAigCACIABEAgASAAEQMACyACKAIEIgBFDQUgAUEEaygCACICQXhxIgVBBEEIIAJBA3EiAhsgAGpJDQMgAkEAIAUgAEEnaksbDQQgARCiAgwFCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgBEEwaiQAC98DAgV/AX4jAEEwayIEJAACQAJAAkACQAJAAkACQCABIAIoAiwREwAiCEL/////D1YNACAIpyIDQQBIDQAgA0ECdiEHAkAgA0H8////B3EiBkUEQEEEIQMMAQsgBhBxIgNFDQIgA0EEay0AAEEDcUUgBkVyRQRAIANBACAG/AsACyAHIQULIARBCGogASADIAYgAigCNBEGACAEKAIIQQZHBEAgACAE/QADCP0LAwAgAEEgaiAEQShqKQMANwMAIABBEGogBEEYav0AAwD9CwMAIAVFDQcgA0EEaygCACIAQXhxIgEgBUECdCICQQRBCCAAQQNxIgAbakkNAyAAQQAgASACQSdqSxsNBCADEKICDAcLIAAgBzYCDCAAIAM2AgggACAFNgIEIABBBjYCAAwGCyAAQgM3AwggAEEDNgIAIAIoAgAiAARAIAEgABEDAAsgAigCBCIARQ0FIAFBBGsoAgAiAkF4cSIFQQRBCCACQQNxIgIbIABqSQ0DIAJBACAFIABBJ2pLGw0EIAEQogIMBQsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIARBMGokAAveAwEKfyMAQSBrIgMkACADQQA2AhAgA0KAgICAwAA3AgggA0EANgIcIANCgICAgMAANwIUIAEoAgghByABKAIAIQgCQAJAAkAgASgCBCIGIAEoAgwiCkcEQCACKAIIIQsgAigCBCEJIAIoAgAhDEEEIQIDQCAGQQRqKAIAIgEgCUEIaigCACIFTw0CAkAgCUEEaigCACABQSRsaiAMLQAAQQJ0QQxxaioCCCALKgIAXUUEQCADKAIUIARGBEAgA0EUakHEk8EAEIsGIAMoAhghAgsgAiAEQQJ0aiABNgIAIAMgBEEBaiIENgIcDAELIAMoAhAiBSADKAIIRgRAIANBCGpB1JPBABCLBgsgAygCDCAFQQJ0aiABNgIAIAMgBUEBajYCEAsgBkEIaiIGIApHDQALCyAHBEAgCEEEaygCACIBQXhxIgIgB0EDdCIEQQRBCCABQQNxIgEbakkNAiABQQAgAiAEQSdqSxsNAyAIEKICCyAAIAMpAgg3AgAgACADKQIUNwIMIABBCGogA0EQaigCADYCACAAQRRqIANBHGooAgA2AgAgA0EgaiQADwsgASAFQdTAxwAQjAcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAv7AwIGfwF7IwBBMGsiBCQAIARBGGr9DAAAAAAAAAAAAAAAAAAAAAD9CwMAIAQgCf0LAwgCQAJAAkACQAJAAkADQAJAIARBKGogASAEQQhqQSAQ5AICQAJAIAQtACgiA0EERwRAAkAgA0EBaw4DAgADCgsgBCgCLC0ACEEjRg0EDAkLIAQoAiwiA0EhTw0CIAIoAgAgAigCCCIBayADSQRAIAIgASADQQFBARCkBSACKAIIIQELIAMEQCACKAIEIAFqIARBCGogA/wKAAALIAAgAzYCBCACIAEgA2o2AgggAEEEOgAADAkLIAQtAClBI0YNAgwHCyAEKAIsIgMtAAhBI0cNBiADKAIAIQUgA0EEaigCACIGKAIAIgcEQCAFIAcRAwALIAYoAgQiBgRAIAVBBGsoAgAiB0F4cSIIQQRBCCAHQQNxIgcbIAZqSQ0DIAdBACAIIAZBJ2pLGw0EIAUQogILIANBBGsoAgAiBUF4cSIGQRBBFCAFQQNxIgUbSQ0EIAVBACAGQTRPGw0FIAMQogIMAQsLQQAgA0EgQfybxwAQ6gcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAAgBCkDKDcCAAsgBEEwaiQAC8kDAQt/IwBBEGsiByQAAkACQAJAAkAgAyAEbCIGQf////8DSw0AIAZBAnQiCUH9////B08NAAJAIAlFBEBBBCEKQQAhBgwBCyAJEHEiCkUNAgsgB0EANgIMIAcgCjYCCCAHIAY2AgQgAxBxIgtFDQEgC0EEayIPKAIAIghBA3EiBkUgA0VyRQRAIAtBACAD/AsACwJAIAQEQEEAIQYDQCAMQQJ0IQ0gBkEBaiADIQ4gCyEIA0AgAiAGTQ0DIAggASAGai0AACAILQAAaiIQOgAAIAcoAgQgDEYEQCAHQQRqQdzpxwAQ+gUgBygCCCEKCyAKIA1qIAUgEMCyQwAA/kKVlDgCACAHIAxBAWoiDDYCDCAIQQFqIQggDUEEaiENIAQgBmohBiAOQQFrIg4NAAsiBiAERw0ACyAPKAIAIghBA3EhBgsgACAHKQIENwIAIABBCGogB0EMaigCADYCACAIQXhxIgBBBEEIIAYbIANqSQ0DIAZBACAAIANBJ2pLGw0EIAsQogIgB0EQaiQADwsgBiACQczpxwAQjAcAC0G86ccAEP8HCwALQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcAC94DAQN/IwBBIGsiBSQAIAEoAhBFBEAgAUF/NgIQIAVBCiACIAMQqQMCQAJAIAUoAgBBAXEEQCADIAUoAgRBAWoiBE8NASAFQQA2AhggBUEBNgIMIAVBiILIADYCCCAFQgQ3AhAgBUEIakHMjcgAEI0IAAsCQCABKAIcIgRFBEBBACEEDAELIAEoAhggBGpBAWstAABBCkcNAEEAIQQgAUEANgIcIAFBADoAIAsgASgCFCAEayADTQRAIAAgAUEUaiACIAMQ/QYMAgsgAwRAIAEoAhggBGogAiAD/AoAAAsgAEEEOgAAIAEgAyAEajYCHAwBCwJAIAEoAhwiBkUNAAJAAkAgASgCFCAGayAETQRAIAVBCGogAUEUaiACIAQQ/QYgBS0ACEEERg0BIAAgBSkDCDcCAAwECyAEBEAgASgCGCAGaiACIAT8CgAACyABIAQgBmoiBjYCHAwBCyABKAIcIQYLIAZFDQAgAUEANgIcIAFBADoAIAsgAiAEaiEGIAMgBGsiAiABKAIUTwRAIAAgAUEUaiAGIAIQ/QYMAQsgAgRAIAEoAhggBiAC/AoAAAsgAEEEOgAAIAEgAjYCHAsgASABKAIQQQFqNgIQIAVBIGokAA8LQaiHyAAQsAoAC5cDAQV/AkACQAJAAkACQCABRQRAIABFDQEgAEEIayIBKAIAQQFHDQIgACgCECEGIAAoAgwhBSAAKAIIIQQgACgCBCECIAFBADYCAAJAIAFBf0YNACAAQQRrIgMgAygCAEEBayIDNgIAIAMNACAAQQxrKAIAIgBBeHEiA0EgQSQgAEEDcSIAG0kNBSAAQQAgA0HEAE8bDQYgARCiAgsgBCgCACIABEAgAiAAEQMACyAEKAIEIgAEQCACQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyAAakkNBSABQQAgBCAAQSdqSxsNBiACEKICCyAGKAIAIgAEQCAFIAARAwALIAYoAgQiAEUNAyAFQQRrKAIAIgFBeHEiAkEEQQggAUEDcSIBGyAAakkNBCABQQAgAiAAQSdqSxsNBSAFEKICDAMLIABFDQAgAEEIayIAIAAoAgBBAWsiATYCACABDQIgABDXBA8LEI4KAAtBjNrAAEE/EI8KAAsPC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAvnBAIHfwJ9Qay2yQAoAgAiAkGktskAKAIARgRAIwBBIGsiASQAAkBBpLbJACgCACIEQdWq1SpNBH9BBCAEQQF0IgMgA0EETRsiA0EMbCEGIAEgBAR/IAEgBEEMbDYCHCABQai2yQAoAgA2AhRBBAVBAAs2AhggAUEIakEEIAYgAUEUahCFByABKAIIQQFHDQEgASgCECEDIAEoAgwFQQALIANByJXBABCTCQALQai2yQAgASgCDDYCAEGktskAIAM2AgAgAUEgaiQAC0GotskAKAIAIgEgAkEMbGoiAyAAKQIANwIAIANBCGoiBCAAQQhqKAIANgIAQay2yQAgAkEBajYCACAEKAIAIQYgAygCBCEEIAMqAgAhCAJAIAJFDQAgCCAIWwRAIAIhBQNAAkAgASAFIgBBAWsiA0EBdiIFQQxsaiICKgIAIgkgCVsgCCAJX0VxQX8gCCAJYBsiBwRAIAdBAEoNASAAIQUMBAsgAigCBCIHIARHBEAgBCAHSw0BIAAhBQwECyAGIAIoAghLDQAgACEFDAMLIAEgAEEMbGoiACACKQIANwIAIABBCGogAkEIaigCADYCACADQQFLDQALDAELIAIhBQNAAkAgASAFIgBBAWsiA0EBdiIFQQxsaiICKgIAIgkgCVsgCCAJX0VxDQAgAigCBCIHIARHBEAgBCAHSw0BIAAhBQwDCyAGIAIoAghLDQAgACEFDAILIAEgAEEMbGoiACACKQIANwIAIABBCGogAkEIaigCADYCACADQQJPDQALCyABIAVBDGxqIgAgBjYCCCAAIAQ2AgQgACAIOAIAC5UDAQV/AkAgAy0AAyIGIAMtAAQiCGsiBSAFQR91IgVzIAVrQQF0IAMtAAIiBSADLQAFIgdrIgQgBEEfdSIEcyAEa0EBdmogAkH/AXFLDQAgAy0AACADLQABIgJrIgQgBEEfdSIEcyAEayABQf8BcSIESw0AIAIgBWsiAiACQR91IgJzIAJrQf8BcSAESw0AIAQgBSAGayICIAJBH3UiAnMgAmsiAkH/AXFJDQAgBCIFIAMtAAcgAy0ABiIGayIEIARBH3UiBHMgBGtJDQAgBSAGIAdrIgYgBkEfdSIGcyAGa0H/AXFJDQAgByAIayIBIAFBH3UiAXMgAWsiAUH/AXEgBUsNACAAQf8BcSACQf8BcUkEQEEBIAMQ4gUaDwsgAEH/AXEiACABQf8BcSIBSSADEOIFIQIgACABSQ0AIANB/wEgAy0ABSACQQFqQQF1IgBrIgFBACABQQBKGyIBIAFB/wFOGzoABSADQf8AQYB/IAAgAy0AAmpBgAFrIgAgAEGAf0wbIgAgAEH/AE4bQYABczoAAgsLxwMCAn8EfiMAQdAAayIEJAAgBP0MAAAAAAAAAAAAAAAAAAAAAP0LAzggBCABNwMwIAQgAULzytHLp4zZsvQAhTcDICAEIAFC7d6R85bM3LfkAIU3AxggBCAANwMoIAQgAELh5JXz1uzZvOwAhTcDECAEIABC9crNg9es27fzAIU3AwggBEEIaiIFIAIgAxCCAyAEQf8BOgBPIAUgBEHPAGpBARCCAyAEKQMIIQEgBCkDGCEAIARBQGs1AgAhCCAEKQM4IQYgBCkDICAEKQMQIQkgBEHQAGokACAGIAhCOIaEIgiFIgZCEIkgBiAJfCIGhSIHQhWJIAcgACABfCIBQiCJfCIHhSIJQhCJIAkgBiAAQg2JIAGFIgB8IgFCIIlC/wGFfCIGhSIJQhWJIAkgASAAQhGJhSIAIAcgCIV8IgFCIIl8IgiFIgdCEIkgByABIABCDYmFIgAgBnwiAUIgiXwiBoUiB0IViSAHIAEgAEIRiYUiACAIfCIBQiCJfCIIhSIHQhCJIAcgAEINiSABhSIAIAZ8IgFCIIl8IgaFQhWJIABCEYkgAYUiAEINiSAAIAh8hSIAQhGJhSAAIAZ8IgBCIImFIACFC9wDAgN9BH8gACABIAIQzAMCQAJAAkAgAgRAIAAqAoQBIAAqAoABIgaTIQcgACgCYCEBIAAoAmQhC0EBIQgDQCAKQQNqIAtPDQIgCEEBayIJIARPBEAgCSEIDAULIAQgCWsiCUEAIAQgCU8bIglBAUYNBCAJQQJGDQNDAAB/Q0MAAAAAIAMqAgAgBpMgB5VDAAB/Q5QiBSAFQwAAAABdGyIFIAVDAAB/Q14bELkHIQUgASABLQADQRh0Qf8BIAX8AUEAIAVDAAAAAGAbIAVDAAB/Q14bckH/AUMAAH9DQwAAAAAgA0EEaioCACAGkyAHlUMAAH9DlCIFIAVDAAAAAF0bIgUgBUMAAH9DXhsQuQciBfwBQQAgBUMAAAAAYBsgBUMAAH9DXhtBCHRyQf8BQwAAf0NDAAAAACADQQhqKgIAIAaTIAeVQwAAf0OUIgUgBUMAAAAAXRsiBSAFQwAAf0NeGxC5ByIF/AFBACAFQwAAAABgGyAFQwAAf0NeG0EQdHI2AgAgAUEQaiEBIApBBGohCiAIQQNqIQggA0EMaiEDIAJBAWsiAg0ACwsgAEEBOgC4AQ8LIAogCkEEaiALQaTgwAAQ6gcACyAIQQFqIQgLIAggBEG04MAAEIwHAAvVAwEKfyMAQSBrIgMkACADQQA2AhAgA0KAgICAwAA3AgggA0EANgIcIANCgICAgMAANwIUIAEoAgghByABKAIAIQgCQAJAAkAgASgCBCIGIAEoAgwiCkcEQCACKAIIIQsgAigCBCEJIAIoAgAhDEEEIQIDQCAGQQRqKAIAIgEgCSgCCCIFTw0CAkAgCSgCBCABQRhsaiAMLQAAQQJ0aioCACALKgIAXUUEQCADKAIUIARGBEAgA0EUakHEk8EAEIsGIAMoAhghAgsgAiAEQQJ0aiABNgIAIAMgBEEBaiIENgIcDAELIAMoAhAiBSADKAIIRgRAIANBCGpB1JPBABCLBgsgAygCDCAFQQJ0aiABNgIAIAMgBUEBajYCEAsgBkEIaiIGIApHDQALCyAHBEAgCEEEaygCACIBQXhxIgIgB0EDdCIEQQRBCCABQQNxIgEbakkNAiABQQAgAiAEQSdqSxsNAyAIEKICCyAAIAMpAgg3AgAgACADKQIUNwIMIABBCGogA0EQaigCADYCACAAQRRqIANBHGooAgA2AgAgA0EgaiQADwsgASAFQdy7xwAQjAcAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAv5AwEEfyABQRh2IQIgAUEQdiEDQQghBSABQQh2IQQCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQf8BcUHBAGsOGAIPDw8EDw8PAw8PDw8PDw8PBg8PDwEABQ8LIAJB0ABHIARB/wFxQcUAR3IgA0H/AXFBwgBHcg0OIABBAToAAA8LIARB/wFxQdAARyADQf8BcUE4R3INDSACQcwAaw4NBw0NDQ0NDQ0NDQ0NCAYLIARB/wFxQcwAaw4DCQwIDAsgAkHQAEcgBEH/AXFBwwBHcg0LIANB/wFxQcMARg0DDAsLIAJBxgBHIARB/wFxQdgAR3IgA0H/AXFByQBHcg0KIABBCToAAA8LIAJBIEcgBEH/AXFBzQBHciADQf8BcUHQAEdyDQkgAEEKOgAADwsgBEH/AXFByQBHIAJBxgBHciADQf8BcUHGAEdyDQhBACEFCyAAIAU6AAAPCyACQSBHDQYgAEECOgAADwsgAEEDOgAADwsgAEEEOgAADwsgA0H/AXFByQBrDgUBAwMDAgMLIAJByABHIANB/wFxQdAAR3INAiAAQQc6AAAPCyACQc0ARw0BIABBBToAAA8LIAJBxgBHDQAgAEEGOgAADwsgACACOgAEIAAgAzoAAyAAIAQ6AAIgACABOgABIABBCzoAAAuYBQEDfyMAQeApayICJAAgAkEPakEAQdAp/AsAQcAAQYDyAhDBBCIDBEAgA0E/akFAcSIBQgA3AjAgAUHAgAI2AgwgAUEAOgAEIAFBgAg2AgAgAUIANwMQIAH9DAAAAAAAAAAAAAAAAAAAAAD9CwMYIAFBADYCKCABQQE2AkggAUEAOgBAIAFCgYCAgBA3AjggAf0MAAAAAAAAAAAAAAAAAAAAAP0LAkwgAUEAOgCgASABQQA2ApwBIAFBIDYCbCAB/QwAAAAAAAAAAAAAAAAAAAAA/QsEcCABIAFBgPEAajYCCCABQdwAav0MAAAAAAAAAAAAAAAAAAAAAP0LAgAgAUGAAWpCADcDACABQZEBakIANwAAIAFCADcCjAEgAUGhAWogAkEMakHTKfwKAAAgAUH0KmpBAEHYxQD8CwAgAUGA8gI2AshwIAEgAzYCxHAgAUHUAGpBADYCACABQQA2AhQgAUL/////HzcDeCABQYCIPDYCACABQQA6AKABIAFBADYCnAEgAUKAgAI3A5ABIAFBADoAQCABQQE2AjggAUIANwMwIAFB5ABqQX82AgAgAEHUAGpBADYCACAAQgA3AkwgAEE4akEANgIAIABBMGpCADcDACAAQSBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAAQRBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAA/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAAQQA2AkggAEEdNgJEIABBHjYCQCAAIAE2AjwgAkHgKWokAA8LIAJBfDYCCCACQQA2AgwjAEEQayIAJAAgAEHw5cgANgIMIAAgAkEIajYCCEEAIABBCGpB7JzIACAAQQxqQeycyAAgAkEMakGY58gAEPIEAAuvAwEIfwJAAkACQCAAKAIIIgQgACgCFCICTQRAIAAgBDYCFCACIARGDQEgAiAEayEFIAAoAhAgBEEYbGohAQNAIAFBFGooAgAiAEEFTwRAIAFBCGooAgAiA0EEaygCACICQXhxIgcgAEECdCIAQQRBCCACQQNxIgIbakkNBCACQQAgByAAQSdqSxsNBSADEKICCyABQRhqIQEgBUEBayIFDQALDAELIAIhAyAEIAJrIgYgACgCDCACa0sEQCAAQQxqIAIgBkEEQRgQpAUgACgCFCEDCyAAKAIQIQggBkEDcSIFBEAgAyAFaiAEIAJrIAVrIQYgCCADQRhsaiEBA0AgAUEANgIAIAFBFGpBADYCACABQRhqIQEgBUEBayIFDQALIQMLIAIgBGtBfE0EQCAIIANBGGxqIQEDQCABQQA2AgAgAUHcAGpBADYCACABQcQAakIANwIAIAFBLGpCADcCACABQRRqQgA3AgAgAUHgAGohASADQQRqIQMgBkEEayIGDQALCyAAIAM2AhQLDwtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALkwQCBn8BfiMAQTBrIgIkACACQQhqrUKAgICAoAyEIQggASgCBCEEIAEoAgAhBUEAIQEDQCACAn8CQAJAAkACQAJAAkACQAJAAkACQCAAIAFqLQAAIgMOKAAHBwcHBwcHBwEDBwcCBwcHBwcHBwcHBwcHBwcHBwcHBwcEBwcHBwUGCyACQgA3AQogAkHc4AA7AQgMCAsgAkIANwEKIAJB3OgBOwEIDAcLIAJCADcBCiACQdzkATsBCAwGCyACQgA3AQogAkHc3AE7AQgMBQsgAkIANwEKIAJB3MQAOwEIDAQLIAJCADcBCiACQdzOADsBCAwDCyADQdwARg0BCyADEOECRQRAIAJBIGoiBiADQQ9xLQDctkU6AAAgAkGw4MCBAzYAGyACIANBBHYtANy2RToAHyADQQFyZ0ECdiIDIAJBGGoiB2pB+wA6AAAgByADQQJrIgNqQdzqATsAACACQRpqQQA6AAAgAkH9ADoAISACQRBqIAYvAQA7AQAgAkEAOwEYIAIgAikBGDcDCEEKDAMLIAIgAzYCCEGAASEDQYEBDAILIAJCADcBCiACQdy4ATsBCAtBACEDQQILOgAVIAIgAzoAFCACIAg3AwAgAkIBNwIkIAJBATYCHCACQaD4xwA2AhggAiACNgIgIAUgBCACQRhqEMEDIgNFBEAgAUEBaiIBQQRHDQELCyACQTBqJAAgAwu0AwICfgt/IwBBIGsiBCQAIAFBCGohDQJAAkADQCANKAIAQQJHDQECfyABKAKcAyIFIAEpA6ADIgMgBa0iAiACIANWG6ciBkYEQEEBIQhBJSEJQQAhCkEAIQtBACEMQQAhBSAHQYB+cUEkcgwBCyAEQQxqIAEgASgCmAMgBmogBSAGa0EAENYBIAQpAhQiAkIoiKchCiACQiCIpyELIAJCGIinIQwgAkIQiKchBSACQgiIpyEJIAQoAhwhDiAEKAIQIQYgAqchCCAGIAQoAgwNABogASABKQOgAyAGrXw3A6ADIAdBgH5xQShyCyIHQf8BcUEoRwRAIAAgCjsACSAAIA42AgwgACALOgAIIAAgDDoAByAAIAU6AAYgACAJOgAFIAAgCDoABCAAIAc6AAAgAEELaiAKQRB2OgAAIABBA2ogB0EYdjoAACAAIAdBCHY7AAEMAwsgCEH/AXFBAkcgCUH/AXFByQBHciAFQf8BcUHFAEcgDEH/AXFBzgBHcnIgC0H/AXFBxABHcg0AC0Gk+MYAQShBnJjHABDrBwALIABBKDoAACAAIA02AgQLIARBIGokAAvuAwEJfQJ9IAAqAgwiA0MAAAAAXUUEQCAAKgIEIQUgACoCACEGIAAqAggMAQsgA4whAyAAKgIEjCEFIAAqAgCMIQYgACoCCIwLIQhDAACAPyEEQwAAgD8gAyADQwAAgD9eGxD2BCICIAKSIglDAAAAP5QQmQIiAotDvTeGNV1FBEAgBSAClSEHIAYgApUhBCAIIAKVIQELIAcgB4sgBIuSIAGLkiIDlSECIAQgA5UhAwJAIAFDAAAAAF1FBEAgAiEBDAELQwAAgD8gA4uTIgEgAYwgAkMAAAAAYBshAUMAAIA/IAKLkyICIAKMIANDAAAAAGAbIQMLQf8BQwAAf0NDAAAAACAJQ9sPSUCVQwAAf0OUIgIgAkMAAAAAXRsiAiACQwAAf0NeGxC5ByIC/AFBACACQwAAAABgGyACQwAAf0NeG0EQdEH/AUMAAH9DQwAAAAAgAUMAAIA/kkMAAAA/lEMAAH9DlCIBIAFDAAAAAF0bIgEgAUMAAH9DXhsQuQciAfwBQQAgAUMAAAAAYBsgAUMAAH9DXhtBCHRyQf8BQwAAf0NDAAAAACADQwAAgD+SQwAAAD+UQwAAf0OUIgEgAUMAAAAAXRsiASABQwAAf0NeGxC5ByIB/AFBACABQwAAAABgGyABQwAAf0NeG3IL4wMBBH8jAEFAaiICJAACQAJAAkACQAJAAkACQAJAIAAtAABBAWsOAwECAwALIAIgACgCBDYCBEEUEHEiAEUNBCAAQRBqQdyCyAAoAAA2AAAgAEHMgsgA/QAAAP0LAAAgAkEUNgIQIAIgADYCDCACQRQ2AgggAiACQQRqrUKAgICA8AGENwMgIAIgAkEIaq1CgICAgJAIhDcDGCABKAIAIAEoAgQgAkICNwI0IAJBAzYCLCACQZCHyAA2AiggAiACQRhqNgIwIAJBKGoQwQMhACACKAIIIgFFDQMgAigCDCIEQQRrKAIAIgNBeHEiBUEEQQggA0EDcSIDGyABakkNBSADQQAgBSABQSdqSxsNBiAEEKICDAMLIAIgAC0AAUECdCIAKAKspEk2AhwgAiAAKALUpUk2AhggAiACQRhqrUKAgICAoAGENwMIIAEoAgAgASgCBCACQgE3AjQgAkEBNgIsIAJBoPjHADYCKCACIAJBCGo2AjAgAkEoahDBAyEADAILIAEgACgCBCIAKAIAIAAoAgQQlwMhAAwBCyAAKAIEIgAoAgAgASAAKAIEKAIQEQIAIQALIAJBQGskACAADwsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAuxAwIHfwF+IwBBIGsiAyQAAkAgAAJ/AkAgASgCFCICIAEoAhAiBUkEQCABKAIMIQcCfgJAA0AgAiAHai0AACIGQQlrIghBF0tBASAIdEGTgIAEcUVyDQEgASACQQFqIgI2AhQgAiAFRw0ACyAFIQJCAAwBC0KAAgsgBq1CEIaEQoCCuANRDQELIANBGGogARCVAyADKAIYIAAgAygCHDYCBEEBagwBCyABIAJBAWoiBDYCFAJAAkAgBCAFTw0AIAEgAkECaiIGNgIUAkAgBCAHai0AAEH1AEcNACAGIAQgBSAEIAVLGyIERg0BIAEgAkEDaiIINgIUIAYgB2otAABB7ABHBEAgCCEGDAELIAQgCEYNASABIAJBBGoiBjYCFEEAIAcgCGotAABB7ABGDQMaCyADQRBqIAcgBSAGEPkBIAMoAhQhBCADKAIQIQFBFBBxIgJFDQMgAkEJNgIADAELIANBCGogByAFIAQQ+QEgAygCDCEEIAMoAgghAUEUEHEiAkUNAiACQQU2AgALIAIgATYCDCAAIAI2AgQgAiAENgIQQQILNgIAIANBIGokAA8LAAv3AwEGfyMAQRBrIgIkAAJAAkACQAJAAkAgASgCAEGUgICAeEYEQCABKAIMIgNFDQEgAiABKAIIIgQQqAMgAigCACIBQYCAgIB4RgRAIAIoAgQhAwwFCyACKAIEIQUCQCADQQFHBEAgAigCCCEHIAIgBEEQahCoAyACKAIAIgRBgICAgHhHDQEgAigCBCEDIAFFDQYgBUEEaygCACIEQXhxIgZBBEEIIARBA3EiBBsgAWpJDQQgBEEAIAYgAUEnaksbDQUgBRCiAgwGC0EBIAJBD2pBlOLAABDbBiEDIAFFDQUgBSABQQEQogcMBQsgAigCBCEGIANBAkcEQCACQQI2AgAgA0H+////AGpB/////wBxQQJqIAJB6JXBABDbBiEDIABBgICAgHg2AgAgACADNgIEIAEEQCAFIAFBARCiBwsgBEUNBiAGIARBARCiBwwGCyAAIAIoAgg2AhQgACAGNgIQIAAgBDYCDCAAIAc2AgggACAFNgIEIAAgATYCAAwFCyABIAJBD2pBlOLAABCVCCEBIABBgICAgHg2AgAgACABNgIEDAQLQQAgAkEPakGU4sAAENsGIQMMAgtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAAgAzYCBCAAQYCAgIB4NgIACyACQRBqJAALxQMCBH8BfiMAQTBrIgUkAAJAAkACQAJAAkACQAJAIAEgAigCLBETACIHQv////8PVg0AIAenIgNBAEgNAAJAIAdQIgYEQEEBIQQMAQsgAxBxIgRFDQIgBEEEay0AAEEDcUUgA0VyDQAgBEEAIAP8CwALIAVBCGogASAEIAMgAigCNBEGACAFKAIIQQZHBEAgACAF/QADCP0LAwAgAEEgaiAFQShqKQMANwMAIABBEGogBUEYav0AAwD9CwMAIAYNByAEQQRrKAIAIgBBeHEiAUEEQQggAEEDcSIAGyADakkNAyAAQQAgASADQSdqSxsNBCAEEKICDAcLIAAgAzYCDCAAIAQ2AgggACADNgIEIABBBjYCAAwGCyAAQgM3AwggAEEDNgIAIAIoAgAiAARAIAEgABEDAAsgAigCBCIARQ0FIAFBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIABqSQ0DIAJBACADIABBJ2pLGw0EIAEQogIMBQsAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALIAVBMGokAAvfAwIFfwF+IwBBIGsiAiQAIAAoAgghBCAAKAIEIQVBASEDIAEoAgBB6LLFAEEBIAEoAgQoAgwRAAAhAAJAIARFBEAgACEDDAELAkAgAA0AIAEtAApBgAFxBEAgASgCACIAQdz4xwBBASABKAIEIgYoAgwRAAANASACQQE6AA8gAiAGNgIEIAIgADYCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBSACQRBqELoFDQEgAigCEEHZgcIAQQIgAigCFCgCDBEAACEDDAELIAUgARC6BSEDCyAEQQFGDQAgBUEEaiEAIARBAnRBBGshBANAAn9BASADQQFxDQAaAkAgAS0ACkGAAXEEQCABKQIAIQcgAkEBOgAPIAIgBzcCACACQeCBwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqELoFRQ0BQQEMAgtBASABKAIAQeeQxgBBAiABKAIEKAIMEQAADQEaIAAgARC6BQwBCyACKAIQQdmBwgBBAiACKAIUKAIMEQAACyEDIABBBGohACAEQQRrIgQNAAsLQQEhACADRQRAIAEoAgBB6bLFAEEBIAEoAgQoAgwRAAAhAAsgAkEgaiQAIAALzAMCBX8DfiMAQTBrIgQkACAEIAM2AgwgBCACNgIIAkACQAJAAkAgASgCDEUNACABKQMQIAEpAxggAiADEJUEIQkgASgCBCIHIAmncSEFIAlCGYhC/wCDQoGChIiQoMCAAX4hCyABKAIAIQEDQAJAIAEgBWopAAAiCiALhSIJQn+FIAlCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiCVBFBEADQCABIAl6p0EDdiAFaiAHcUFobGoiBkEQaygCACADRgRAIAIgBkEUaygCACADENsHRQ0DCyAJQgF9IAmDIglQRQ0ACwsgCiAKQgGGg0KAgYKEiJCgwIB/g1BFDQIgBSAIQQhqIghqIAdxIQUMAQsLIAZBBGsoAgAiAUEASA0CIAZBCGsoAgAhAgJAIAFFBEBBASEDDAELIAEQcSIDRQ0ECyABBEAgAyACIAH8CgAACyAAIAE2AgggACADNgIEIAAgATYCAAwBCyAEQQI2AhQgBEHo1sEANgIQIARCATcCHCAEIARBCGqtQoCAgIAghDcDKCAEIARBKGo2AhggBEEQahCSByEBIABBgICAgHg2AgAgACABNgIECyAEQTBqJAAPC0HYmsgAEP8HCwAL1QMCBH0FfwJAAkAgAgRAIAAoAggiCyABayIJQQAgCSALTRshDUMAAIA/IAAqAkAgAC0AWEECRiIJG0MAAAAAIAAqAjwgCRsiB5MhCCAAKAIEIAFBGGxqQQ5qIQpBACEJQQAhAANAIAAgDUYNAyAJQQNqIgwgBEsgAEHUqtWqBUtyDQJDAAB/Q0MAAAAAIANBBGoqAgAgB5MgCJVDAAB/Q5QiBSAFQwAAAABdGyIFIAVDAAB/Q14bELkHIQUgCkH/AUMAAH9DQwAAAAAgA0EIaioCACAHkyAIlUMAAH9DlCIGIAZDAAAAAF0bIgYgBkMAAH9DXhsQuQciBvwBQQAgBkMAAAAAYBsgBkMAAH9DXhtBEHRB/wEgBfwBQQAgBUMAAAAAYBsgBUMAAH9DXhtBCHRyQf8BQwAAf0NDAAAAACADKgIAIAeTIAiVQwAAf0OUIgUgBUMAAAAAXRsiBSAFQwAAf0NeGxC5ByIF/AFBACAFQwAAAABgGyAFQwAAf0NeG3IiCTsBACAKQQJqIAlBEHY6AAAgA0EMaiEDIApBGGohCiAMIQkgAiAAQQFqIgBHDQALCw8LIAkgDCAEQeTDxwAQ6gcACyAAIAFqIAtB7LvHABCMBwALuQMBB38gACABKAIAIgQ2AqQBIAAgASgCBCIFNgKoASAAQQEgBEEWdiAEQf///wFxQQBHaiICIAJBAU0bQYAQIARBC3YgBEH/D3FBAEdqIgIgAkGAEE8bQQEgBBtsIgJBC3QiBjYCoAEgAkENdCIHELYJIQIgACgCrAEiCEGECE8EQCAIEJsHCyAAIAI2AqwBIAUEQCAGQQF0ELYJIQJBASEDCwJAIAAoAgBFDQAgACgCBCIGQYQISQ0AIAYQmwcLIAAgAjYCBCAAIAM2AgAgBUECSQR/QQAFIAcQtgkhAkEBCyEDAkAgACgCCEUNACAAKAIMIgZBhAhJDQAgBhCbBwsgACACNgIMIAAgAzYCCCAFQQNJBH9BAAUgBxC2CSEDQQELIQICQCAAKAIQRQ0AIAAoAhQiBUGECEkNACAFEJsHCyAAIAM2AhQgACACNgIQQQEhAgJAIAEtAAgiAUEBRwRAQQAhAgwBCyAEQQJ0ELYJIQQLAkAgACgCMEUNACAAKAI0IgNBhAhJDQAgAxCbBwsgAEIANwKwASAAIAE6AJwBIAAgBDYCNCAAIAI2AjAgAEG4AWpBADoAAAvjAwIEfwF+IwBBIGsiAiQAIAAoAgghBCAAKAIEIQUgASgCAEHossUAQQEgASgCBCgCDBEAACEDAkAgBEUEQCADIQAMAQsCf0EBIAMNABogAS0ACkGAAXEEQEEBIAEoAgAiA0Hc+McAQQEgASgCBCIAKAIMEQAADQEaIAJBAToADyACIAA2AgQgAiADNgIAIAJB4IHCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCEEEBIAUgAkEQahDKBA0BGiACKAIQQdmBwgBBAiACKAIUKAIMEQAADAELIAUgARDKBAshACAEQQFGDQAgBUEBaiEDIARBAWshBANAIABBAXEhBQJ/QQEgBQ0AGgJAIAEtAApBgAFxBEAgASkCACEGIAJBAToADyACIAY3AgAgAkHggcIANgIUIAIgASkCCDcCGCACIAJBD2o2AgggAiACNgIQIAMgAkEQahDKBEUNAUEBDAILQQEgASgCAEHnkMYAQQIgASgCBCgCDBEAAA0BGiADIAEQygQMAQsgAigCEEHZgcIAQQIgAigCFCgCDBEAAAshACADQQFqIQMgBEEBayIEDQALC0EBIQMgAEUEQCABKAIAQemyxQBBASABKAIEKAIMEQAAIQMLIAJBIGokACADC4sDAQR/IwBBEGsiAyQAAn8CQCABKAIIIgJBgICAEHFFBEAgAkGAgIAgcQ0BQQMhAiAALAAAIgQgBMBBB3UiAHMgAGsiAEH/AXEiBUEKTwRAQQEhAiADIABBAXQiACAAQThqIAVB5ABJG0H+AXEvALi6RTsADCAFQeMASyEAC0EAIAQgAEH/AXEiABtFBEAgAkEBayICIANBC2pqIABBAXQtALm6RToAAAsgASAEQQBOQQFBACADQQtqIAJqQQMgAmsQyAMMAgsgAC0AACECQQMhAANAIAAgA2pBB2ogAkEPcUHctsUAai0AADoAACACQf8BcSIEQQR2IQIgAEEBayEAIARBD0sNAAsgAUEBQYS0xQBBAiAAIANqQQhqQQMgAGsQyAMMAQsgAC0AACECQQMhAANAIAAgA2pBDGogAkEPcUHJgcIAai0AADoAACACQf8BcSIEQQR2IQIgAEEBayEAIARBD0sNAAsgAUEBQYS0xQBBAiAAIANqQQ1qQQMgAGsQyAMLIANBEGokAAuuAwIDfgR/IAAoAgxFBEBBAA8LIAApAxAgACkDGCABEPIDIQIgACgCBCIGIAKncSEFIAJCGYhC/wCDQoGChIiQoMCAAX4hBCAAKAIAIQcCQAJAIAEtAAAiCEELRwRAQQAhAQNAIAUgB2opAAAiAyAEhSICQn+FIAJCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiAlBFBEADQCAIIAcgAnqnQQN2IAVqIAZxQWhsaiIAQRhrLQAARg0FIAJCAX0gAoMiAlBFDQALCyADIANCAYaDQoCBgoSIkKDAgH+DQgBSDQIgBSABQQhqIgFqIAZxIQUMAAsACyABKAABIQhBACEBA0AgBSAHaikAACIDIASFIgJCf4UgAkKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyICUEUEQANAIAcgAnqnQQN2IAVqIAZxQWhsaiIAQRhrLQAAQQtGBEAgCCAAQRdrKAAARg0FCyACQgF9IAKDIgJQRQ0ACwsgAyADQgGGg0KAgYKEiJCgwIB/g1BFDQEgBSABQQhqIgFqIAZxIQUMAAsAC0EAIQALIABBGGtBACAAGwvPAwIDfwF+IwBBIGsiAiQAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiBEGAgICAeHMgBEEAThtBAWsOCAECAwQFBgcIAAtBASEDIAEgAkEfakGY58AAEJUIIQEMCQsgAS0ABCEBDAgLIAEvAQQhAQwHCyABKAIEIQEMBgsgASkDCCIFQv////8PWARAIAWnIQEMBQtBASEDIAJBAToACCACIAU3AxAgAkEIaiACQR9qQZjnwAAQ3gYhAQwFCyABLAAEIgFBAEgEQCACQQI6AAggAiABrDcDECACQQhqIAJBH2pBmOfAABDeBiEBQQEhAwwFCyABQf8BcSEBDAMLIAEuAQQiAUEASARAIAJBAjoACCACIAGsNwMQIAJBCGogAkEfakGY58AAEN4GIQFBASEDDAQLIAFB//8DcSEBDAILIAEoAgQiAUEATg0BIAJBAjoACCACIAGsNwMQIAJBCGogAkEfakGY58AAEN4GIQFBASEDDAILIAEpAwgiBUKAgICAEFoEQCACQQI6AAggAiAFNwMQIAJBCGogAkEfakGY58AAEN4GIQFBASEDDAILIAWnIQELCyAAIAE2AgQgACADNgIAIAJBIGokAAvPAwIDfwF+IwBBIGsiAiQAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAEoAgAiBEGAgICAeHMgBEEAThtBAWsOCAECAwQFBgcIAAtBASEDIAEgAkEfakGo58AAEJUIIQEMCQsgAS0ABCEBDAgLIAEvAQQhAQwHCyABKAIEIQEMBgsgASkDCCIFQv////8PWARAIAWnIQEMBQtBASEDIAJBAToACCACIAU3AxAgAkEIaiACQR9qQajnwAAQ3gYhAQwFCyABLAAEIgFBAEgEQCACQQI6AAggAiABrDcDECACQQhqIAJBH2pBqOfAABDeBiEBQQEhAwwFCyABQf8BcSEBDAMLIAEuAQQiAUEASARAIAJBAjoACCACIAGsNwMQIAJBCGogAkEfakGo58AAEN4GIQFBASEDDAQLIAFB//8DcSEBDAILIAEoAgQiAUEATg0BIAJBAjoACCACIAGsNwMQIAJBCGogAkEfakGo58AAEN4GIQFBASEDDAILIAEpAwgiBUKAgICAEFoEQCACQQI6AAggAiAFNwMQIAJBCGogAkEfakGo58AAEN4GIQFBASEDDAILIAWnIQELCyAAIAE2AgQgACADNgIAIAJBIGokAAv6AgEEfwJAAkACQAJAAkACQAJAIAAtAAAOGgAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAECBAsgAC0ABEEDRw0DIAAoAggiACgCACECIABBBGooAgAiASgCACIDBEAgAiADEQMACyABKAIEIgEEQCACQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyABakkNBiADQQAgBCABQSdqSxsNBSACEKICCyAAQQRrKAIAIgJBeHEiAUEQQRQgAkEDcSICG0kNBSACRSABQTRJcg0CDAQLIAAoAgQiAkUNAiAAKAIIIgBBBGsoAgAiAUF4cSIDQQRBCCABQQNxIgEbIAJqSQ0EIAFFIAMgAkEnak1yDQEMAwsgACgCBCICRQ0BIAAoAggiAEEEaygCACIBQXhxIgNBBEEIIAFBA3EiARsgAmpJDQMgAUUgAyACQSdqTXINAAwCCyAAEKICCw8LQYyNyABBLkG8jcgAEOsHAAtBzIzIAEEuQfyMyAAQ6wcAC6gDAwV/AXsBfiMAQZABayICJAAgASgCBCEFIAEoAgAgAiAAKAIAIgT9AAIIIgcgB/0NAAECAwQFBgcICQoLCAkKC/0LBAAgAgJ/IAf9GQYiAUH//wFxRQRAIAFBEHQMAQsgAUH/B3EhACABQYCAAnEhAyABQYD4AXEiAUGA+AFGBEAgA0EQdCEBIAFBgICA/AdyIABFDQEaIAEgAEENdHJBgICA/gdyDAELIANBEHQhAyABQQ10QYCAgPwAcSAAQQ10ckGAgIDAA2ogA3IgAQ0AGiAAIABnQRBrIgBB//8DcUEIanRB////A3EgA0GAgIDYA3IgAEEXdGtyCzYCHCACQSBqIgAgBBCkAyACQTBqIgEgBBCaAyACQUBrIgMgBCkCABDLAiACIAOtQoCAgIDAAoQ3A3AgAkKAgICAoAIiCCABrYQ3A2ggAiAIIACthDcDYCACIAJBHGqtQoCAgIDQAoQ3A1ggAiAIIAKthDcDUCACQgU3AoQBIAJBBjYCfCACQZynxwA2AnggAiACQdAAajYCgAEgBSACQfgAahDBAyACQZABaiQAC8oDAQN/AkAgACgCACIDRQRAIAAoAhAiAEUNASAAQZOzxQBBARCXAw8LAkACfwJAAkAgACgCCCIBIAAoAgRPBEAgACgCECICRQ0BIAJB6rLFAEEQEJcDRQ0BQQEPC0EBIQIgACABQQFqNgIIAkACQAJAAkAgASADai0AAEHOAGsOBQIDAAABAAsgACgCECIBRQ0DIAFB6rLFAEEQEJcDRQ0DDAYLIABBABDVAQ0FIAAoAhAiAQRAIAFB/7TFAEEDEJcDDQYLIABBABDVAUUNBgwFCyAAKAIQIgBFDQUgAEGFtcUAQQUQlwNFDQUMBAsgACAAKAIMQQFqIgE2AgwgAUH0A0sNASAAEK0EDQMDQCAAKAIAIgMEQAJAIAAoAggiASAAKAIETw0AIAEgA2otAABBxQBHDQAgACABQQFqNgIIIAAgACgCDEEBazYCDAwHCyAAKAIQIgEEQCABQYK1xQBBAxCXAw0GCyAAEK0ERQ0BDAULCyAAKAIQIgFFDQAgAUHqssUAQRAQlwMNAwsgAEEAOgAEQQAMAQsgACgCECIBBEAgAUH6ssUAQRkQlwMNAgsgAEEBOgAEQQALIQIgACACNgIACyACDwtBAAuPAwENfyMAQRBrIgYkAAJAIAEtACUNACABKAIEIQcCQCABKAIQIgQgASgCCCIMSw0AIAQgASgCDCICSQ0AIAFBFGoiDSABLQAYIgVqQQFrLQAAIQkgBUEFSSEOA0ACQCACIAdqIQoCQCAEIAJrIgtBB00EQCACIARGDQJBACEDA0AgAyAKai0AACAJRg0CIAsgA0EBaiIDRw0ACwwCCyAGQQhqIAkgCiALEIcFIAYoAghBAXFFDQEgBigCDCEDCyABIAIgA2pBAWoiAjYCDAJAIAIgBUkgAiAMS3INACAOBEAgByACIAVrIgNqIA0gBRDbBw0BIAEoAhwhBCABIAI2AhwgBCAHaiEIIAMgBGshAwwFC0EAIAVBBEHkuMcAEOoHAAsgAiAETQ0BDAILCyABIAQ2AgwLIAFBAToAJQJAIAEtACRBAUYEQCABKAIgIQIgASgCHCEBDAELIAEoAiAiAiABKAIcIgFGDQELIAEgB2ohCCACIAFrIQMLIAAgAzYCBCAAIAg2AgAgBkEQaiQAC70DAgZ/AX4jAEHQAGsiAiQAIAJBIGogACAAKAIAKAIEEQEAIAIgAkEwaq1CgICAgLABhDcDKCACIAIpAyA3AjAgASgCACEFIAEoAgQhBiACQgE3AkRBASEDIAJBATYCPCACQaD4xwA2AjggAiACQShqNgJAAkAgBSAGIAJBOGoQwQMNACABLQAKQYABcUUEQEEAIQMMAQsgAkEYaiAAIAAoAgAoAgQRAQAgAkEQaiACKAIYIAIoAhwoAhgRAQAgAigCECIERQRAQQAhAwwBCyACQQhqIAQgAigCFCIHKAIYEQEAIAIoAgwhACACKAIIIQEgAiAHNgIsIAIgBDYCKCACQQE2AjwgAkGA8cEANgI4IAJCATcCRCACIAJBKGqtQoCAgICwAYQiCDcDMCACIAJBMGo2AkAgBSAGIAJBOGoQngkNAANAIAFFBEBBACEDDAILIAIgASAAKAIYEQEAIAIoAgQgAigCACACIAA2AiwgAiABNgIoIAJBATYCPCACQYDxwQA2AjggAkIBNwJEIAIgCDcDMCACIAJBMGo2AkAhASEAIAUgBiACQThqEJ4JRQ0ACwsgAkHQAGokACADC5QDACAAIARqIQACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQf8BcUEBaw4HBwABAgMEBQYLIABBfU0gAEECaiIBIANNcQ0HIAAgASADQbTZxwAQ6gcACyAAQX1NIABBAmoiASADTXENByAAIAEgA0HE2ccAEOoHAAsgAEF7TSAAQQRqIgEgA01xDQcgACABIANB1NnHABDqBwALIABBe00gAEEEaiIBIANNcQ0HIAAgASADQeTZxwAQ6gcACyAAQXtNIABBBGoiASADTXENByAAIAEgA0H02ccAEOoHAAsgAEF3TSAAQQhqIgEgA01xDQcgACABIANBhNrHABDqBwALIAAgA0kNCCAAIANBlNnHABCMBwALIAAgA0kNBiAAIANBpNnHABCMBwALIAAgAmouAACyDwsgACACai8AALMPCyAAIAJqKAAAsg8LIAAgAmooAACzDwsgACACaioAAA8LIAAgAmorAAC2DwsgACACai0AALNDAAB/Q5UPCyAAIAJqLAAA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AAs2AgAgBUEgaiQAC4QDAgJ/AXsCQAJAIARBBE8EQCACIARBBGtBA24iBSACIAVJGyIFQQNNDQEgAiAFQQFqIgIgAkEDcSICQQQgAhtrIgZrIQIgASAGaiAEIAZBfWxqIQQgAyAGQQNsaiEHA0AgAyAAIAH9XAAA/YkB/akBIgj9GwBBAnRqKAAANgAAIANBA2ogACAI/RsBQQJ0aigAADYAACADQQZqIAAgCP0bAkECdGooAAA2AAAgA0EJaiAAIAj9GwNBAnRqKAAANgAAIAFBBGohASADQQxqIQMgBkEEayIGDQALIQEgByEDDAELIAQNAQ8LA0AgAkUEQEEAQQBBpJrFABCMBwALIAMgACABLQAAQQJ0aigAADYAACADQQNqIQMgAkEBayECIAFBAWohASAEQQNrIgRBA0sNAAsLAkAgAgRAIARBA0cNASADIAAgAS0AAEECdGoiAC8AADsAACADQQJqIABBAmotAAA6AAAPC0EAQQBBhJrFABCMBwALQQBBAyAEQZSaxQAQ6gcAC4EDAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB/wFxQQFrDgcHAAECAwQFBgsgA0F9TSADQQJqIgAgAk1xDQcgAyAAIAJBtNjHABDqBwALIANBfU0gA0ECaiIAIAJNcQ0HIAMgACACQcTYxwAQ6gcACyADQXtNIANBBGoiACACTXENByADIAAgAkHU2McAEOoHAAsgA0F7TSADQQRqIgAgAk1xDQcgAyAAIAJB5NjHABDqBwALIANBe00gA0EEaiIAIAJNcQ0HIAMgACACQfTYxwAQ6gcACyADQXdNIANBCGoiACACTXENByADIAAgAkGE2ccAEOoHAAsgAiADTQ0HIAEgA2osAACyDwsgAiADSw0HIAMgAkGk2McAEIwHAAsgASADai4AALIPCyABIANqLwAAsw8LIAEgA2ooAACyDwsgASADaigAALMPCyABIANqKgAADwsgASADaisAALYPCyADIAJBlNjHABCMBwALIAEgA2otAACzC58DAgF+CH8CQAJAAkACQAJAIAAoAgQiBEUNACAAKAIMIggEQCAAKAIAIgJBCGohAyACKQMAQn+FQoCBgoSIkKDAgH+DIQEDQCABUARAA0AgAkGABGshAiADKQMAIANBCGohA0KAgYKEiJCgwIB/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jOrHABCMBwALQezpxwAQ/wcLAAucAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH/AXFBAWsOBwUAAQICAgMECyADQX1NIANBAmoiACACTXENBSADIAAgAkG02scAEOoHAAsgA0F9TSADQQJqIgAgAk1xDQUgAyAAIAJBxNrHABDqBwALIANBe00gA0EEaiIAIAJNcQ0FIAMgACACQdTaxwAQ6gcACyADQXdNIANBCGoiACACTXENBSADIAAgAkHk2scAEOoHAAsgAiADTQ0FIAEgA2osAAAPCyACIANLDQUgAyACQaTaxwAQjAcACyABIANqLgAADwsgASADai8AAA8LIAEgA2ooAAAPCyABIANqKwAA/AMPCyADIAJBlNrHABCMBwALIAEgA2otAAALzQIBBH8jAEEgayIEJAAgASgCDCEFAkAgAAJ/AkACQAJAIAEoAhQiAiABKAIQIgNJBEADQAJAIAIgBWotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgASACQQFqIgI2AhQgAiADRw0ACyADIQILIARBEGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAhQhASAEKAIQIQNBFBBxIgJFDQQgAkEDNgIADAELIARBCGogBSADIAJBAWoiASADIAEgA0kbEPkBIAQoAgwhASAEKAIIIQNBFBBxIgJFDQMgAkEGNgIACyACIAM2AgwgAiABNgIQQQEMAQsgASACQQFqNgIUIARBGGogARCVAyAEKAIcIQIgBCgCGAs2AgAgACACNgIEIARBIGokAA8LAAu2AgEBfyMAQUBqIgMkACADIAI2AhAgAyABNgIMIAACfwJAAkACQAJAAkACQAJAIAJBA2sOBwAFAQIFBQMFCyABQZDQxwBBAxDbB0UEQCAAQQA6AAFBAAwHCyABQaD3xwBBAxDbBw0DIABBAToAAUEADAYLIAFBo/fHAEEFENsHDQMgAEECOgABQQAMBQsgAUGo98cAQQYQ2wcNAiAAQQM6AAFBAAwECyABQa73xwBBCRDbBw0BIABBBDoAAUEADAMLIAFBt/fHAEEDENsHRQ0BCyADQQE2AiQgA0HQ98cANgIgIANCATcCLCADIANBDGqtQoCAgIAghDcDOCADIANBOGo2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AEGUgICAeEYEQAJAIAACfyADKAIMIgQEQCACIAMoAggQqAMgAigCACIBQYCAgIB4Rw0CIAIoAgQMAQtBACACQQ9qQYTiwAAQ2wYLNgIEIABBgICAgHg2AgAMBAsgAigCBCEDIARBAUYNAiACQQE2AgAgBEEBa0H/////AHFBAWogAkHolcEAENsGIQQgAEGAgICAeDYCACAAIAQ2AgQgAUUNAyADIAFBARCiBwwDCyADIAJBD2pBhOLAABCVCCEBIABBgICAgHg2AgAgACABNgIEDAILQcvawABBLEH42sAAEKsHAAsgACACKAIINgIIIAAgAzYCBCAAIAE2AgALIAJBEGokAAupAgEFfyMAQSBrIgIkAEEBIQMCQCAAKAIAIgQoAgBBAUYEQCABKAIAIgBBw5jIAEEEIAEoAgQiBigCDCIFEQAADQEgBEEIaiEEAkAgAS0ACkGAAXFFBEAgAEG7s8UAQQEgBREAAA0DIAQgARDEBQ0DIAEoAgAhACABKAIEKAIMIQUMAQsgAEHbgcIAQQIgBREAAA0CIAJBAToADyACIAY2AgQgAiAANgIAIAJB4IHCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCECAEIAJBEGoQxAUNAiACKAIQQdmBwgBBAiACKAIUKAIMEQAADQILIABB3o7IAEEBIAURAAAhAwwBCyABKAIAQb+YyABBBCABKAIEKAIMEQAAIQMLIAJBIGokACADC5ECAQN/IwBBQGoiASQAAkAgABA9IgINACAALQClU0UEQCABQQA2AjggAUEBNgIsIAFB5KPBADYCKCABQgQ3AjAgAUEoahCSByECDAELIAAoAmRBgICAgHhHBEBBACECIAAtAJgBIgNBCUYNASADQQVGBEAgACgCkAFFDQILIAFBAjYCLCABQZykwQA2AiggAUICNwI0IAEgAEGQAWqtQoCAgIAQhDcDICABIABBmAFqrUKAgICAsASENwMYIAEgAUEYajYCMCABQQxqIgAgAUEoahCxBiAAEI4HIQIMAQsgAUEANgI4IAFBATYCLCABQcCkwQA2AiggAUIENwIwIAFBKGoQkgchAgsgAUFAayQAIAILkgIBA38jAEFAaiIBJAACQCAAED4iAg0AIAAtAMVTRQRAIAFBADYCOCABQQE2AiwgAUHko8EANgIoIAFCBDcC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BEAgACgCtAIgA2ogASAC/AoAAAsgACACIANqNgK4AiAAELgBC1gBAX8gACgC2AIgACgC4AIiA2sgAkkEQCAAQdgCaiADIAJBAUEBEKQFIAAoAuACIQMLIAIEQCAAKALcAiADaiABIAL8CgAACyAAIAIgA2o2AuACIAAQsQELWAEBfyAAKAL4AiAAKAKAAyIDayACSQRAIABB+AJqIAMgAkEBQQEQpAUgACgCgAMhAwsgAgRAIAAoAvwCIANqIAEgAvwKAAALIAAgAiADajYCgAMgABCfAQtXAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEASAAEEELVwEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAEgABBAC1IBAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaCAAED4LUQEBfyAAKAJAIAAoAkgiA2sgAkkEQCAAQUBrIAMgAkEBQQEQpAUgACgCSCEDCyACBEAgACgCRCADaiABIAL8CgAACyAAIAIgA2o2AkggABA9C1ABA38CQAJAIAAEQCAAQQhrIgEgASgCACICQQFqIgM2AgAgA0UNASAAKAIAQf////8HTw0CIAAoAhggASACNgIAQQBHDwsQjgoLAAsQkAoAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcDAxAAgAEEBakHQwMQAIABBAmpB4MDEACACQQxqQfDAxAAQ7gUgAkEQaiQAC00BAX8jAEEQayICJAAgAiAAKAIAIgA2AgwgASAAQQNqQcioxwAgAEEBakHYqMcAIABBAmpB6KjHACACQQxqQfioxwAQ7gUgAkEQaiQAC08BAX8gACgCQCAAKAJIIgNrIAJJBEAgAEFAayADIAJBAUEBEKQFIAAoAkghAwsgAgRAIAAoAkQgA2ogASAC/AoAAAsgACACIANqNgJIQQALVQEBfyAAKALEASAAKALMASIDayACSQRAIABBxAFqIAMgAkEBQQEQpAUgACgCzAEhAwsgAgRAIAAoAsgBIANqIAEgAvwKAAALIAAgAiADajYCzAFBAAtVAQF/IAAoArwBIAAoAsQBIgNrIAJJBEAgAEG8AWogAyACQQFBARCkBSAAKALEASEDCyACBEAgACgCwAEgA2ogASAC/AoAAAsgACACIANqNgLEAUEAC1ABAX8gACgCYCAAKAJoIgNrIAJJBEAgAEHgAGogAyACQQFBARCkBSAAKAJoIQMLIAIEQCAAKAJkIANqIAEgAvwKAAALIAAgAiADajYCaEEAC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBqJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFB4J7BADYCACABIAIpAgg3AgQgASAANgIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFBxJ7BADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC00AIwBBEGsiACQAIAEgAmwiAQR/IAFBwf///wdPBEBB2ObIAEErIABBD2pBtIPJAEHUg8kAEOAGAAtBwAAgARDBBAVBAAsgAEEQaiQAC1YBAn8jAEEgayICJAAgAkEIahDkCEEgEHEiAUUEQAALIAFBtLTHADYCACABIAIpAgg3AgQgASAAOgAcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1YBAn8jAEEgayICJAAgAkEIahDkCEEkEHEiAUUEQAALIAFB7LTHADYCACABIAIpAgg3AgQgASAANwIcIAFBDGogAkEQav0AAgD9CwIAIAJBIGokACABC1cBAn8jAEEgayIBJAACQCAAEJ8BIgINAEEAIQIgAC0AnAMNACABQQA2AhggAUEBNgIMIAFBxKPBADYCCCABQgQ3AhAgAUEIahCSByECCyABQSBqJAAgAgtXAQJ/IwBBIGsiASQAAkAgABCxASICDQBBACECIAAtAPwCDQAgAUEANgIYIAFBATYCDCABQcSjwQA2AgggAUIENwIQIAFBCGoQ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QeAAaiQADAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACyAmKAIAICYoAgQgJigCCCAmQRBqJAALTQEBfwJ/AkAgAigCBEUNACACKAIIIgNFDQAgAigCACADQQEgARC7AgwBCyABEHELIQIgACABNgIIIAAgAkEBIAIbNgIEIAAgAkU2AgALSwIBfwJ+IwBBEGsiASQAIAEgADUCiAEgADUChAF+QgRCAyAALQCTARsQ3QYgASkDCCECIAEpAwAhAyABQRBqJABCfyADIAJCAFIbC08AAkACQCACKAIQQQFGBEAgASgChAEgAigCFEsNAQsgAigCGEEBRw0BIAEoAogBIAIoAhxNDQELIABCAjcDCCAAQQM2AgAPCyAAQQY2AgALUAEBfyMAQRBrIgIkACACQQhqIAEgASgCACgCBBEBACACIAIoAgggAigCDCgCGBEBACACKAIEIQEgACACKAIANgIAIAAgATYCBCACQRBqJAALSAEBfyAAKAIAIAAoAggiA2sgAkkEQCAAIAMgAhD3BSAAKAIIIQMLIAIEQCAAKAIEIANqIAEgAvwKAAALIAAgAiADajYCCEEAC0gBAX8gACgCACAAKAIIIgNrIAJJBEAgACADIAIQ+AUgACgCCCEDCyACBEAgACgCBCADaiABIAL8CgAACyAAIAIgA2o2AghBAAtIAQF/IAAoAgAgACgCCCIDayACSQRAIAAgAyACEO8FIAAoAgghAwsgAgRAIAAoAgQgA2ogASAC/AoAAAsgACACIANqNgIIQQALRQEBfwJAIAFBAE4EfyABRQRAQQEhAkEAIQEMAgsgARBxIgINAUEBBSACCyABQcDowQAQkwkACyAAIAI2AgQgACABNgIAC08BAn8gACgCBCECIAAoAgAhAwJAIAAoAggiAC0AAEUNACADQbyLwwBBBCACKAIMEQAARQ0AQQEPCyAAIAFBCkY6AAAgAyABIAIoAhARAgALSgECfyAAIAAoAgQiAyACazYCBCAAIAAoAgAgAiADS3IiBDYCAEEBIQMgBAR/IAMFIAAoAggiACgCACABIAIgACgCBCgCDBEAAAsLSAEBfwJAIAFB4QBrIgFB/wFxQRlLBEBBACEBDAELIAFBAnRB/AdxIgIoAtSQSSEBIAIoAuyPSSECCyAAIAI2AgQgACABNgIAC0kCAn8BfSABKAIIIgNBgICAAXEhAiAAKgIAIQQgA0GAgICAAXFFBEAgASAEIAJBAEdBABD3Ag8LIAEgBCACQQBHIAEvAQ4QvQILRwECfyAALQANIgJBgAFNBEAgASgCACAAIAAtAAwiA2ogAiADayABKAIEKAIMEQAADwsgASgCACAAKAIAIAEoAgQoAhARAgALyQIAAkAgACACTQRAIAAgAU0gASACS3INASMAQTBrIgIkACACIAE2AgQgAiAANgIAIAJBAjYCDCACQfydwgA2AgggAkICNwIUIAIgAkEEaq1CgICAgBCENwMoIAIgAq1CgICAgBCENwMgIAIgAkEgajYCECACQQhqIAMQjQgACyMAQTBrIgEkACABIAI2AgQgASAANgIAIAFBAjYCDCABQaidwgA2AgggAUICNwIUIAEgAUEEaq1CgICAgBCENwMoIAEgAa1CgICAgBCENwMgIAEgAUEgajYCECABQQhqIAMQjQgACyMAQTBrIgAkACAAIAI2AgQgACABNgIAIABBAjYCDCAAQcidwgA2AgggAEICNwIUIAAgAEEEaq1CgICAgBCENwMoIAAgAK1CgICAgBCENwMgIAAgAEEgajYCECAAQQhqIAMQjQgAC0IBAX8jAEEgayIDJAAgA0EANgIQIANBATYCBCADQgQ3AgggAyABNgIcIAMgADYCGCADIANBGGo2AgAgAyACEI0IAAuJDQMHfwV+AXwgASgCCCIDQYCAgAFxIQIgACsDACEOIANBgICAgAFxRQRAIAJBAEchA0EAIQIjAEGAAWsiACQAIA69IQkCf0EDIA6ZRAAAAAAAAPB/YQ0AGkECIAlCgICAgICAgPj/AIMiCkKAgICAgICA+P8AUQ0AGiAJQv////////8HgyINQoCAgICAgIAIhCAJQgGGQv7///////8PgyAJQjSIp0H/D3EiAhsiC0IBgyEMIApQBEBBBCANUA0BGiACQbMIayECQgEhCiAMUAwBC0KAgICAgICAICALQgGGIAtCgICAgICAgAhRIgUbIQtCAkIBIAUbIQpBy3dBzHcgBRsgAmohAiAMUAshBSAAIAI7AXggACAKNwNwIABCATcDaCAAIAs3A2AgACAFOgB6An8CQAJAAkACQCAFQf8BcSICQQFNBEBB6rPFAEEBIAlCAFMiAhshBUHqs8UAQciBwgAg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AnQiACgCwKFJIAAoAqShSSABKAIEKAIMEQAAC+0DAQp/IwBBEGsiAyQAIwBBoANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIEIAQoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAUEIaiAAQQRqQQAQdgJ/IAEoAggiCUECRgRAIAEoAgwhAiABQQA2ApgDIAFCgICAgBA3ApADIAFBnJPBADYC0AEgAUKggICADjcC1AEgASABQZADajYCzAEgAiABQcwBahCvBA0FIAEoApADIQUgASgClAMiCCABKAKYAxDsCCEHIAUEQCAIQQRrKAIAIgZBeHEiCkEEQQggBkEDcSIGGyAFakkNByAGQQAgCiAFQSdqSxsNCCAIEKICCyACIAIoAgAoAgARAwBBAAwBCyABQcwBaiICIAFBCGpBxAH8CgAAIAIQ0QELIQIgACAAKAIAQQFrNgIAIAQgBCgCAEEBayIANgIAIABFBEAgBBDkBgsgAyAHNgIEIAMgAjYCACADIAlBAkY2AgggAUGgA2okAAwGCxCOCgsACxCQCgALQaCexgBBNyABQZ8DakG0k8EAQdiexgAQ4AYAC0HMjMgAQS5B/IzIABDrBwALQYyNyABBLkG8jcgAEOsHAAsgAygCACADKAIEIAMoAgggA0EQaiQAC5oFAQp/IwBBEGsiAyQAIwBBsANrIgEkAAJAAkACQAJAAkACQCAABEAgAEEIayIFIAUoAgBBAWoiAjYCACACRQ0BIAAoAgAiAkH/////B08NAiAAIAJBAWo2AgAgAC0AXCICQQJHBEAgAUEgaiAAQdgAaigCADYCACABQRhqIABB0ABqKQIANwMAIAFBBmogAEHfAGotAAA6AAAgASAA/QACQP0LAwggASAALwBdOwEECyABQfgBaiABQSBqKAIANgIAIAFB8AFqIAFBGGopAwA3AwAgAUH/AWogAUEGai0AADoAACABIAH9AAMI/QsD4AEgASACOgD8ASABIAEvAQQ7AP0BIAFBJGogAEEEakEAIAFB4AFqIgQQcgJ/IAEoAiQiCUECRgRAIAEoAighAiABQQA2AqgDIAFCgICAgBA3AqADIAFBnJPBADYC5AEgAUKggICADjcC6AEgASABQaADajYC4AEgAiAEEK8EDQUgASgCoAMhBCAB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CxCQCgALLAAgASgCACAAKAIALQAAaEECdCIAKAL0h0kgACgC4IdJIAEoAgQoAgwRAAALLAAgASgCACAAKAIALQAAaEECdCIAKAKEjkkgACgC8I1JIAEoAgQoAgwRAAALLgAgAEEcakEAIAEpAgBC2v2W/+no6PrBAIUgASkCCELW+4aRyMDiv/4AhYRQGwssACAAQRxqQQAgASkCAELtwsSbx9P/rT+FIAEpAghC/J7N1v6Dwrh+hYRQGwsuACAAQRxqQQAgASkCAELtuq22zYXU9eMAhSABKQIIQviCmb2V7sbFuX+FhFAbCywAIABBHGpBACABKQIAQvep0+7yobOVe4UgASkCCEKWuaPa9sSH1CeFhFAbCysAIAEoAgAgACgCAC0AAEECdCIAKALohkkgACgCqIZJIAEoAgQoAgwRAAALKQAgASgCACAALQAAaEECdCIAKAKciEkgACgCiIhJIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAqiJSSAAKALoiEkgASgCBCgCDBEAAAslACAARQRAQa35xABBMhCPCgALIAAgAiADIAQgBSABKAIQEQ8ACysAIAEoAgAgACgCAC0AAEECdCIAKALUjUkgACgCuI1JIAEoAgQoAgwRAAALKwAgASgCACAAKAIALQAAQQJ0IgAoAtiOSSAAKAKYjkkgASgCBCgCDBEAAAsrACABKAIAIAAoAgAtAABBAnQiACgC0JFJIAAoAryRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQp6ptofpq8f75ACFIAEpAghChJXY5rmb/qdphYRQGwsrACABKAIAIAAoAgAtAABBAnQiACgC+JFJIAAoAuSRSSABKAIEKAIMEQAACy0AIABBHGpBACABKQIAQvXXvMnIzNazOoUgASkCCEL+28ub8+W5xvUAhYRQGwsuACAAQSBqQQAgASkCAELhypSvjYKC2fIAhSABKQIIQqbKhrK+ypOwu3+FhFAbCy0AIABBHGpBACABKQIAQpLXooDhkqzi9QCFIAEpAghClJ2A4Jq0sLALhYRQGwslACAAQYiWwQA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAK87EEgACgClOxBIAEoAgQoAgwRAAALKAAgASgCACAALQAAQQJ0IgAoAtDtQSAAKAKc7UEgASgCBCgCDBEAAAshACAAQcDOxAA2AgQgACABQQRqQQAgAS0AAEEkRhs2AgALKAAgASgCACAALQAAQQJ0IgAoAsyISSAAKAKwiEkgASgCBCgCDBEAAAsoACABKAIAIAAtAABBAnQiACgCsIpJIAAoAuiJSSABKAIEKAIMEQAACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQsACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEQYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWUACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWYACyMAIABFBEBBrfnEAEEyEI8KAAsgACACIAMgBCABKAIQEWcACygAIAEoAgAgAC0AAEECdCIAKALwmEkgACgCqJhJIAEoAgQoAgwRAAALIgAgASgCKEECRwRAIAAgASkC3AI3AwAPC0GsmMcAEN0JAAslACAAQailxwA2AgQgACABQQRqQQAgASgCAEGBgICAeEYbNgIACygAIAEoAgAgAC0AAEECdCIAKAKEo0kgACgC3KFJIAEoAgQoAgwRAAALJwAgACgCAC0AAEUEQCABQfKzxQBBBRCXAw8LIAFB97PFAEEEEJcDCyQAIAAtAABFBEAgAUHys8UAQQUQlwMPCyABQfezxQBBBBCXAwshACAARQRAQa35xABBMhCPCgALIAAgAiADIAEoAhARBQALIQAgAEUEQEGt+cQAQTIQjwoACyAAIAIgAyABKAIQEQAACyEAIAEoAgAgAC0AAEECdCgCiOxBQQEgASgCBCgCDBEAAAsiACABIAAtAABBAnQiACgCiIZJIAAoAuiFSSACKAIMEQAACx4AIABBwM7EADYCBCAAQQAgAUEEaiABLQAAGzYCAAscACABIAAoAgAiAEEEaigCACAAQQhqKAIAEJcDCx8AIABFBEBBrfnEAEEyEI8KAAsgACACIAEoAhARAgALthQBEn8Q2gQiCyABJgECfyAAIQ0Q2gQiEiACJgEgCyETIwBBQGoiByQAIAsQuAohAEHUtMkAKAIARQRAAkBBkLXJACgCACELQYy1yQAoAgAhBEGMtckAQoCAgIDAADcCAEGEtckAKAIAIQhBhLXJAEIENwIAQYC1yQAoAgAhA0H8tMkAQgA3AgBB+LTJACgCACEGQfS0yQAoAgAhDkH0tMkAQoCAgIDAADcCAEHstMkAKAIAIQVB7LTJAEIENwIAQei0yQAoAgAhDEHktMkAQgA3AgBB4LTJACgCACEKQdy0yQAoAgAhEEHctMkAQoCAgIDAADcCAEHUtMkAKAIAQdS0yQBCATcCAEGUtckAQQA2AgBFDQACQAJAIBAEQCAKQQRrKAIAIglBeHEiDyAQQQJ0IhBBBEEIIAlBA3EiCRtqSQ0BIAlBACAPIBBBJ2pLGw0CIAoQogILIAwEQCAFQQRrKAIAIgpBeHEiECAMQQJ0IgxBBEEIIApBA3EiChtqSQ0BIApBACAQIAxBJ2pLGw0CIAUQogILIA4EQCAGQQRrKAIAIgVBeHEiDCAOQQJ0Ig5BBEEIIAVBA3EiBRtqSQ0BIAVBACAMIA5BJ2pLGw0CIAYQogILIAMEQCAIQQRrKAIAIgZBeHEiDiADQQJ0IgNBBEEIIAZBA3EiBhtqSQ0BIAZBACAOIANBJ2pLGw0CIAgQogILIARFDQIgC0EEaygCACIIQXhxIgMgBEECdCIEQQRBCCAIQQNxIggbakkNACAIQQAgAyAEQSdqSxsNASALEKICDAILQcyMyABBLkH8jMgAEOsHAAtBjI3IAEEuQbyNyAAQ6wcACwsCQAJAQdi0yQAoAgBFBEBB2LTJAEF/NgIAIAAQyQIgE0EAIA0Q4QghEEHktMkAKAIAIgsgDU8EQEHgtMkAKAIAIQsgByAQELgKIgQ2AgwgByANNgIYIAQgDUYEQCALIA0gEBDhCSAAEMkCQeS0yQAoAgAiACANTwRAQeC0yQAoAgAhC0H4tMkAKAIAIQQCQEH8tMkAKAIAIgpFDQAgCkECdCIARQ0AIARBACAA/AsAC0GEtckAKAIAIQ4CQEGItckAKAIAIgxFDQAgDEECdCIARQ0AIA5BACAA/AsACyANQQJ0IQggDQRAIAghAyALIQADQAJAIAAoAgAiBkGAgID8B08NACAKIAZBf3MiBUH//wNxIgZLBEAgBCAGQQJ0aiIGIAYoAgBBAWo2AgAgDCAFQRB2IgZLBEAgDiAGQQJ0aiIGIAYoAgBBAWo2AgAMAgsgBiAMQYDywAAQjAcACyAGIApB8PHAABCMBwALIABBBGohACADQQRrIgMNAAsLAkAgCkUEQEEAIQMMAQsgCkEBa0H/////A3EiAEEBaiIDQQdxIQUCQCAAQQdJBEBBACEDIAQhAAwBCyADQfj///8HcSEGQQAhAyAEIQADQCAAKAIAIQkgACADNgIAIABBBGoiDygCACERIA8gAyAJaiIDNgIAIABBCGoiCSgCACEPIAkgAyARaiIDNgIAIABBDGoiCSgCACERIAkgAyAPaiIDNgIAIABBEGoiCSgCACEPIAkgAyARaiIDNgIAIABBFGoiCSgCACERIAkgAyAPaiIDNgIAIABBGGoiCSgCACEPIAkgAyARaiIDNgIAIABBHGoiCSgCACERIAkgAyAPaiIDNgIAIAMgEWohAyAAQSBqIQAgBkEIayIGDQALCyAFRQ0AA0AgACgCACEGIAAgAzYCACAAQQRqIQAgAyAGaiEDIAVBAWsiBQ0ACwsgByADNgIAIA0EQCAIIAtqIQ8gC0EEaiEGIAhBBGtBAnZBAWohEUGQtckAKAIAIRRBlLXJACgCACEJQQAhBSALIQgDQCAGIQACQCAIKAIAIghBgICA/AdPDQACQCAKIAhBf3NB//8DcSIISwRAIAQgCEECdGoiCCgCACIGIAlPDQEgFCAGQQJ0aiAFNgIAIAggCCgCAEEBajYCAAwCCyAIIApB0PHAABCMBwALIAYgCUHg8cAAEIwHAAsgAEEEQQAgACAPRxtqIQYgACEIIBEgBUEBaiIFRw0ACwsCQCAMRQ0AIAxBAWtB/////wNxIgRBAWoiCEEHcSEGQQAhBSAOIQAgBEEHTwRAIAhB+P///wdxIQgDQCAAKAIAIQQgACAFNgIAIABBBGoiCigCACEJIAogBCAFaiIENgIAIABBCGoiBSgCACEKIAUgBCAJaiIENgIAIABBDGoiBSgCACEJIAUgBCAKaiIENgIAIABBEGoiBSgCACEKIAUgBCAJaiIENgIAIABBFGoiBSgCACEJIAUgBCAKaiIENgIAIABBGGoiBSgCACEKIAUgBCAJaiIENgIAIABBHGoiBSgCACEJIAUgBCAKaiIENgIAIAQgCWohBSAAQSBqIQAgCEEIayIIDQALCyAGRQ0AA0AgACgCACAAIAU2AgAgAEEEaiEAIAVqIQUgBkEBayIGDQALCyADRQ0EQZS1yQAoAgAiBEUNBEGQtckAKAIAIQAgA0EBayEGIARBAnRBBGshBEHstMkAKAIAIQ9B8LTJACgCACEFA0ACQAJAIA0gACgCACIISwRAIAsgCEECdGooAgBBf3NBEHYiCiAMTw0BIA4gCkECdGoiCigCACIJIAVJDQIgCSAFQcDxwAAQjAcACyAIIA1BoPHAABCMBwALIAogDEGw8cAAEIwHAAsgDyAJQQJ0aiAINgIAIAogCigCAEEBajYCACAGRQ0FIAZBAWshBiAAQQRqIQAgBCAEQQRrIQQNAAsMBAtBACANIABBkPLAABDqBwALDAMLQQAgDSALQYjuwAAQ6gcAC0GsisEAELAKAAsCQCAMQYCABE8EQCAOKAL8/w8gA0YNASAHIA5B/P8Paq1CgICAgBCENwMgIAcgB61CgICAgBCENwMYIAdCAjcCNCAHQQI2AiwgB0Hw8MAANgIoIAcgB0EYaiIANgIwIAdBDGoiCyAHQShqIgQQ7AMgBygCECEDIAcoAgwiCEGAgICAeEYNASAHIAcoAhQ2AhQgByADNgIQIAcgCDYCDCAHQQE2AiwgB0Gg+McANgIoIAdCATcCNCAHIAutQoCAgICwBYQ3AwAgByAHNgIwIAAgBBCxBiAHKAIcIAcoAiAQjwoAC0H//wMgDEGQ8cAAEIwHAAsCQCADRQ0AAkBB8LTJACgCACIAIANPBEBB7LTJACgCACEEIBJBACADEOEIIgAQuAohCyAHIAM2AhggByALNgIMIAMgC0cNASAAIAQgAxDgCSAAQYQISQ0CIAAQmwcMAgtBACADIABB+O3AABDqBwALDAELIBBBhAhPBEAgEBCbBwtB2LTJAEHYtMkAKAIAQQFqNgIAIBJBhAhPBEAgEhCbBwsgE0GECE8EQCATEJsHCyAHQUBrJAAgAwwBCyAHQQA2AihBACAHQQxqIAdBGGogB0EoakHg+cQAEPUHAAsLjxEBDX8Q2gQiAyABJgECfyAAIQkQ2gQiDSACJgEgAyEOIwBBQGoiBCQAIAMQvAohB0GotMkAKAIARQRAAkBBzLTJACgCACEAQci0yQAoAgAhA0HItMkAQoCAgIDAADcCAEHAtMkAKAIAIQZBwLTJAEIENwIAQby0yQAoAgAhCEG4tMkAQgA3AgBBtLTJACgCACEFQbC0yQAoAgAhCkGwtMkAQoCAgIAgNwIAQai0yQAoAgBBqLTJAEIBNwIAQdC0yQBBADYCAEUNAAJAAkAgCgRAIAVBBGsoAgAiC0F4cSIMIApBAXQiCkEEQQggC0EDcSILG2pJDQEgC0EAIAwgCkEnaksbDQIgBRCiAgsgCARAIAZBBGsoAgAiBUF4cSIKIAhBAnQiCEEEQQggBUEDcSIFG2pJDQEgBUEAIAogCEEnaksbDQIgBhCiAgsgA0UNAiAAQQRrKAIAIgZBeHEiCCADQQJ0IgNBBEEIIAZBA3EiBhtqSQ0AIAZBACAIIANBJ2pLGw0BIAAQogIMAgtBzIzIAEEuQfyMyAAQ6wcAC0GMjcgAQS5BvI3IABDrBwALCwJAAkACQEGstMkAKAIARQRAQay0yQBBfzYCAEG4tMkAKAIAIgMgB0kEQCAHIANrIgBBsLTJACgCACADa0sEQEGwtMkAIAMgAEECQQIQpAVBuLTJACgCACEDC0G0tMkAKAIAIgggA0EBdGohBiAAQQJPBH8gAEEBdEECayIFBEAgBkEAIAX8CwALIAAgA2oiAEEBayEDIAggAEEBdGpBAmsFIAYLQQA7AQBBuLTJACADQQFqNgIAC0HEtMkAKAIAIgMgB0kEQCAHIAMiAGsiBkG8tMkAKAIAIABrSwRAQby0yQAgACAGQQRBBBCkBUHEtMkAKAIAIQALQcC0yQAoAgAiBSAAQQJ0aiEIIAZBAk8EfyAHIANBf3NqQQJ0IgMEQCAIQQAgA/wLAAsgACAGaiIDQQFrIQAgBSADQQJ0akEEawUgCAtBADYCAEHEtMkAIABBAWo2AgALQdC0yQAoAgAiA0GA+AFNBEBBgfgBIAMiAGsiB0HItMkAKAIAIABrSwRAQci0yQAgACAHQQRBBBCkBUHQtMkAKAIAIQALQcy0yQAoAgAiBiAAQQJ0aiEHIANBgPgBRwR/QYDgByADQQJ0ayIIBEAgB0EAIAj8CwALIAYgACADa0ECdGpBgOAHagUgBwtBADYCAAsgDiUBQQAgCRAcIQEQ2gQiCCABJgEgCUG4tMkAKAIAIgBLDQFBACEGQbS0yQAoAgAhByAEIAgQvAoiADYCDCAEIAk2AhggACAJRw0DIAcgCSAIJQEQHUHQtMkAQQA2AgBByLTJACgCAEGA+AFNBEBByLTJAEEAQYH4AUEEQQQQpAVB0LTJACgCACEGC0HMtMkAKAIAIgogBkECdGoiAEEAQYDgB/wLAEHQtMkAIAZBgfgBaiIPNgIAIABBgOAHakEANgIAIAcgCUEBdCILaiEMAkAgCUUNACAHQQJqIQACfyALQQJrIgNBAnEEQCAAIQMgBwwBCyAHLwEAIgVB//cBTQRAIAogBUECdGoiBSAFKAIAQQFqNgIACyADRQ0BIABBAkEAIAtBAkcbaiEDIAALIQUDQCAFLwEAIgBBgPgBSQRAIAogAEECdGoiACAAKAIAQQFqNgIACyADQQJBACADIAxHG2ohBSADLwEAIgBB//cBTQRAIAogAEECdGoiACAAKAIAQQFqNgIACyAFQQBBAiAFIAxGIgAbaiEDIABFDQALCyAKIA9BAnRqQQhrIgUoAgAhAyAFQQA2AgAgBkEDcUEBRwRAIAZBAWtBA3EhAANAIAVBBGsiBSgCACEGIAUgAzYCACAEIAMgBmoiAzYCACAAQQFrIgANAAsLIAVBEGshBQNAIAVBDGoiACgCACEGIAAgAzYCACAEIAMgBmoiADYCACAFQQhqIgMoAgAhBiADIAA2AgAgBCAAIAZqIgA2AgAgBUEEaiIDKAIAIQYgAyAANgIAIAQgACAGaiIANgIAIAUoAgAhAyAFIAA2AgAgBCAAIANqIgM2AgAgBSAKRyAFQRBrIQUNAAsgCUUNAiAHQQJqIQYgC0ECa0EBdkEBaiELQcC0yQAoAgAhD0HEtMkAKAIAIQlBACEAA0AgBy8BACIHQYD4AUkEQCAJIAogB0ECdGoiBygCACIFTQRAIAUgCUGA8cAAEIwHAAsgDyAFQQJ0aiAANgIAIAcgBygCAEEBajYCAAsgBkECQQAgBiIHIAxHG2ohBiALIABBAWoiAEcNAAsMAgtBrIrBABCwCgALQQAgCSAAQezrwAAQ6gcACwJAIAooAgAgA0YNACAEIAqtQoCAgIAQhDcDICAEIAStQoCAgIAQhDcDGCAEQgI3AjQgBEECNgIsIARB8PDAADYCKCAEIARBGGoiADYCMCAEQQxqIgkgBEEoaiIHEOwDIAQoAhAhAyAEKAIMIgZBgICAgHhGDQAgBCAEKAIUNgIUIAQgAzYCECAEIAY2AgwgBEEBNgIsIARBoPjHADYCKCAEQgE3AjQgBCAJrUKAgICAsAWENwMAIAQgBDYCMCAAIAcQsQYgBCgCHCAEKAIgEI8KAAsCQCADRQ0AAkBBxLTJACgCACIAIANPBEBBwLTJACgCACEHIA1BACADEOEIIgAQuAohCSAEIAM2AhggBCAJNgIMIAMgCUcNASAAIAcgAxDgCSAAQYQISQ0CIAAQmwcMAgtBACADIABB3OvAABDqBwALDAELIAhBhAhPBEAgCBCbBwtBrLTJAEGstMkAKAIAQQFqNgIAIA1BhAhPBEAgDRCbBwsgDkGECE8EQCAOEJsHCyAEQUBrJAAgAwwBCyAEQQA2AihBACAEQQxqIARBGGogBEEoakHg+cQAEPUHAAsLHAAgAEEEahDqAiAAKAIkIgAgACgCACgCABEDAAscACAAKAIAIgAoAgAgASAAQQRqKAIAKAIQEQIACxwAIAAoAgAiACgCACABIABBBGooAgAoAgwRAgALFAAgACAAIAEgACABXRsgASABXBsLFAAgASABIAAgACABXRsgACAAXBsLGwEBbyAAJQEgASACEAAhAxDaBCIAIAMmASAACxsBAW8gACUBIAElARAJIQIQ2gQiACACJgEgAAscAQFvIAAlASABJQEgARCbByACJQEgAhCbBxALCx8AQYi7yQAtAABFBEBBiLvJAEEBOgAACyAAQQE2AgALHQAgASAALQAAQQJ0IgAoAqSESSAAKAKQhEkQlwMLHAAgASgCACAAKAIAIAAoAgQgASgCBCgCDBEAAAsZACABIAAoAgAiACgCACAAQQRqKAIAEJcDCxkBAW8gACUBIAEQDCECENoEIgAgAiYBIAALFwAgACgCACABIAAoAgRBDGooAgARAgALFQAgACgCACIAQYQITwRAIAAQmwcLCxcBAW8gACABEA8hAhDaBCIAIAImASAACxcBAW8gACABECwhAhDaBCIAIAImASAACxYAIAEgACgCACIAKAIAIAAoAgQQlwMLGQAgASgCAEGQl8cAQRMgASgCBCgCDBEAAAsZACABKAIAQdmXxwBBFyABKAIEKAIMEQAACxkAIAEoAgBB6ZLGAEEIIAEoAgQoAgwRAAALGQAgASgCAEGjl8cAQRAgASgCBCgCDBEAAAsZACABKAIAQaTlwABBFCABKAIEKAIMEQAACxkAIAEoAgBB5ZLGAEEEIAEoAgQoAgwRAAALGQAgASgCAEGilscAQQwgASgCBCgCDBEAAAsZACABKAIAQYWQxgBBAyABKAIEKAIMEQAACxkAIAEoAgBB8JfHAEEUIAEoAgQoAgwR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AgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOQGCwwDCxCOCgsACxCQCgALC4gBAQN/ENoEIgMgASYBAkACQAJAIAAEQCAAQQhrIgIgAigCAEEBaiIENgIAIARFDQEgACgCAA0CIABBfzYCACAAQQhqKAIAIABBDGooAgAgAxCtAyAAIAAoAgBBAWo2AgAgAiACKAIAQQFrIgA2AgAgAEUEQCACEOMGCwwDCxCOCgsACxCQCgALCxEAIAEgACgCACAAKAIEEJcDCxMAIABBKDYCBCAAQZifxwA2AgALEQAgASAAKAIEIAAoAggQlwMLEwAgAEHomsEANgIEIAAgATYCAAsTACAAQaSbwQA2AgQgACABNgIACxMAIABB4JvBADYCBCAAIAE2AgALEwAgAEGMnMEANgIEIAAgATYCAAsTACAAQcicwQA2AgQgACABNgIACxMAIABBhJ3BADYCBCAAIAE2AgALEwAgAEHAncEANgIEIAAgATYCAAsTACAAQfydwQA2AgQgACABNgIACxEAIAAoAgQgACgCCCABELUCCxEAIAEoAgAgASgCBCAAEMEDCxwAIABBmLvP7AM2AgggAELQ5+byk+vFmz83AgALEQAgACgCACAAKAIEIAEQtQILEwAgAEHMs8cANgIEIAAgATYCAAsTACAAQdyxxwA2AgQgACABNgIACxMAIABBiLTHADYCBCAAIAE2AgALEwAgAEHUsscANgIEIAAgATYCAAsTACAAQZiyxwA2AgQgACABNgIACxMAIABBkLPHADYCBCAAIAE2AgALEwAgAEG8jMgANgIEIAAgATYCAAsWAEG4u8kAIAA2AgBBtLvJAEEBOgAACxEBAX8Q2gQiASAAJQEmASABCw4AIAAlASABJQFBABAWCw8AQayewgBBKyAAEOsHAAtpAQF/IwBBMGsiAyQAIAMgADYCBCADIAE2AgAgA0EDNgIMIANB+JvCADYCCCADQgI3AhQgAyADQQRqrUKAgICAEIQ3AyggAyADrUKAgICAEIQ3AyAgAyADQSBqNgIQIANBCGogAhCNCAALEgAgACABLQDoBC0A+J1JOgAACwwAIAAlASABIAIQAgsMACAAIAEgAiUBEAMLDQAgACUBIAElARAIGgsMACAAIAEgAiUBEBkLEQAgAEGohsEA/QACAP0LAgALEQAgAEG4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IAEgAEGAgIB8IApBAWp1IAdxvpMiAJK8BSAJC0GAgH5xviICQwByMT+UIgUgAkOMvr81lCABIAIgAJOTQxhyMT+UkiICkiIAIAAgACAAIACUIgEgASABIAEgAUNMuzEzlEMO6t21kpRDVbOKOJKUQ2ELNruSlEOrqio+kpSTIgGUIAFDAAAAwJKVIAIgACAFk5MiASAAIAGUkpOTQwAAgD+SIgC8IAhBF3RqIglBgICABE4EQCAJvgwBCyAAIAgQsAYLlCECCyACDAMLIAVDYEKiDZRDYEKiDZQMAgsgBUNgQqINlENgQqINlAwBCyAFQ8rySXGUQ8rySXGUCwsIACAAJQEQAQsIACAAJQEQCgsIACAAJQEQFQsIACAAJQEQFwsIACAAJQEQGwsIACAALQDoBAsHABAqEIUICwQAQQALBABBAQsCAAsLtK4JiAEAQYCAwAAL8WFpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdAAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvc3B6LnJzAGxpYnJhcnkvY29yZS9zcmMvc3RyL2xvc3N5LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9wbHkucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL2xlZ2FjeS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL2l0ZXIvYWRhcHRlcnMvc3RlcF9ieS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvdHdvd2F5LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvaW5mbGF0ZS93aW5kb3cucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy95dXYucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZmx0MmRlYy9zdHJhdGVneS9ncmlzdS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc2hhcmVkL3NtYWxsc29ydC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL3F1aWNrc29ydC5ycwBzcGFyay13b3JrZXItcnMvc3JjL3NvcnQucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvYm94ZWQvY29udmVydC5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9mbXQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9mbXQucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZGl5X2Zsb2F0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy90c3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2tzcGxhdC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvYW50aXNwbGF0LnJzAC9Vc2Vycy9kbWFyY29zL0RldmVsb3BtZW50L3NwYXJrL3J1c3Qvc3BhcmstbGliL3NyYy9nc3BsYXQucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2NzcGxhdC5ycwBzcGFyay13b3JrZXItcnMvc3JjL2V4dF9zcGxhdHMucnMAc3Bhcmstd29ya2VyLXJzL3NyYy9wYWNrZWRfc3BsYXRzLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvZmRlZmxhdGUtMC4zLjcvc3JjL2RlY29tcHJlc3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzcy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2NvcmUtMS4wLjIyOC9zcmMvZGUvaW1wbHMucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL3NvZ3MucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlL2luZnRyZWVzLnJzAGxpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9tdXRleC9ub190aHJlYWRzLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9vbmNlL25vX3RocmVhZHMucnMAbGlicmFyeS9hbGxvYy9zcmMvc3RyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaXRlci90cmFpdHMvaXRlcmF0b3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9lcnJvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZXJyb3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2xvci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9nZW5lcmljL3BhY2tlZHBhaXIucnMAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9tZW1jaHIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb29wX2ZpbHRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2luZmxhdGUvd3JpdGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvc2xpY2UvaXRlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2luZGV4bWFwLTIuMTMuMC9zcmMvaW5uZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9vdXRwdXRfYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci91bmZpbHRlcmluZ19idWZmZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9pbWFnZXMvYnVmZmVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci9yZWFkX2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy92cDhfYXJpdGhtZXRpY19kZWNvZGVyLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvY29kZWNzL3dlYnAvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvZGVjb2Rlci5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2RlY29kZXIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL3JlYWQvbWFnaWNfZmluZGVyLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvY21wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9leHRyYV9maWVsZHMvZXh0ZW5kZWRfdGltZXN0YW1wLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvbWV0YWRhdGEvY2ljcC5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vc3RkaW8ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2NvbW1vbi5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2NvcmUvc3JjL29wcy9mdW5jdGlvbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL3N0cmF0ZWd5L2RyYWdvbi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ZkZWZsYXRlLTAuMy43L3NyYy9odWZmbWFuLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvaHVmZm1hbi5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9iaWdudW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzc190cmFuc2Zvcm0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3RyYW5zZm9ybS5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vYnVmZmVyZWQvbGluZXdyaXRlcnNoaW0ucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3N0cmVhbS5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvdGhyZWFkL2xvY2FsLnJzAGxpYnJhcnkvc3RkL3NyYy9zeW5jL2xhenlfbG9jay5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3luYy9yZWVudHJhbnRfbG9jay5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvc3luYy9vbmNlX2xvY2sucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9jb2RlY3MvcG5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3N0cmluZy5ycwBsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvaW8vYm9ycm93ZWRfYnVmLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTcvc3JjL2V4dGVybnJlZi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvdHJhbnNmb3JtL3BhbGV0dGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvYWxsb2NhdGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9jb3JlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvaW8vaW1hZ2VfcmVhZGVyX3R5cGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9zdGFibGUucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3ByaW50YWJsZS5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvY2h1bmtfdHJlZS5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xvZF90cmVlLnJzAHNwYXJrLWxpYi9zcmMvc3BsYXRfZW5jb2RlLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtMS4wLjIyOC9zcmMvcHJpdmF0ZS9kZS5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlX2pzb24tMS4wLjE0NS9zcmMvZGUucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL3N5bmMvcG9pc29uL29uY2UucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvc2xpY2UucnMAbGlicmFyeS9zdGQvc3JjL2JhY2t0cmFjZS5ycwAvcnVzdC9kZXBzL2hhc2hicm93bi0wLjE1LjUvc3JjL3Jhdy9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9oYXNoYnJvd24tMC4xNi4xL3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvcGFja2VkcGFpci9tb2QucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL21vZC5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy9iaW5hcnlfaGVhcC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL2lvL21vZC5ycwBsaWJyYXJ5L3N0ZC9zcmMvLi4vLi4vYmFja3RyYWNlL3NyYy9zeW1ib2xpemUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWluaXpfb3hpZGUtMC44Ljkvc3JjL2luZmxhdGUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAbGlicmFyeS9zdGQvc3JjL3RocmVhZC9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvdmVjL21vZC5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL21vZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvdGlueV9sb2QucnMAL1VzZXJzL2RtYXJjb3MvRGV2ZWxvcG1lbnQvc3BhcmsvcnVzdC9zcGFyay1saWIvc3JjL2JoYXR0X2xvZC5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2NyYzMyL2JyYWlkLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3ZlYy9zcGVjX2Zyb21faXRlcl9uZXN0ZWQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9leHRlbmRlZC5ycwAvVXNlcnMvZG1hcmNvcy9EZXZlbG9wbWVudC9zcGFyay9ydXN0L3NwYXJrLWxpYi9zcmMvcmFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfanNvbi0xLjAuMTQ1L3NyYy9yZWFkLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9yZWFkLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjEwL3NyYy9kbG1hbGxvYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvc3BlYy5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvemxpYi5ycwBzcGFyay13b3JrZXItcnMvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NvbnNvbGVfZXJyb3JfcGFuaWNfaG9vay0wLjEuNy9zcmMvbGliLnJzAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI2L3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZS13YXNtLWJpbmRnZW4tMC42LjUvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2pzLXN5cy0wLjMuOTQvc3JjL2xpYi5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NtYWxsdmVjLTEuMTUuMS9zcmMvbGliLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvdGV4dF9tZXRhZGF0YS5ycwBsaWJyYXJ5L2NvcmUvc3JjL3VuaWNvZGUvdW5pY29kZV9kYXRhLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvdnA4LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvYWRhbTcucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96aXAtNy4yLjAvc3JjL2NwNDM3LnJzAHNwYXJrLWxpYi9zcmMvc3ltbWF0My5ycwAvVXNlcnMvZG1hcmNvcy8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvY3JjMzIucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL3YwLnJzAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGludmFsaWQgd2luZG93IHNpemUAcmVwZWF0ZWQgY2FsbCB3aXRoIGJhZCBzdGF0ZQBpbnZhbGlkIGJsb2NrIHR5cGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABJSSoA7AUQACQAAABEAwAADQAAAOwFEAAkAAAARQMAAA0AAADsBRAAJAAAAEYDAAANAAAA7AUQACQAAABDAwAA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dWN0IFJhZE1ldGEgd2l0aCAxMSBlbGVtZW50cwAAAFY+EAAfAAAAAAAAAAgAAAAEAAAAqgAAAGZpbGVzbWluc21heHNzaGFwZXN0cnVjdCBNZWFucyB3aXRoIDQgZWxlbWVudHMAAKI+EAAcAAAAZW5jb2RpbmdzdHJ1Y3QgUXVhdHMgd2l0aCAyIGVsZW1lbnRz0D4QABwAAABzdHJ1Y3QgU2gwVjEgd2l0aCAzIGVsZW1lbnRz9D4QABwAAABjb2RlYm9va3N0cnVjdCBTaDBWMiB3aXRoIDIgZWxlbWVudHMgPxAAHAAAAHN0cnVjdCBTaE5WMSB3aXRoIDQgZWxlbWVudHNEPxAAHAAAAGJhbmRzc3RydWN0IFNoTlYyIHdpdGggMyBlbGVtZW50cwAAAG0/EAAcAAAAc3RydWN0IE1lYW5zVjEgd2l0aCA0IGVsZW1lbnRzAACUPxAAHgAAAG1lYW5zc2NhbGVzcXVhdHNzaDBzaE5zdHJ1Y3QgUGNTb2dzVjEgd2l0aCA1IGVsZW1lbnRzAAAA0j8QAB8AAABzdHJ1Y3QgUGNTb2dzVjIgd2l0aCA3IGVsZW1lbnRzAPw/EAAfAAAAc3RydWN0IFNjYWxlc1YxIHdpdGggMyBlbGVtZW50cwAkQBAAHwAAAHN0cnVjdCBTY2FsZXNWMiB3aXRoIDIgZWxlbWVudHMATEAQAB8AAABiYXNlcGF5bG9hZEJ5dGVzcHJvcGVydGllc3N0cnVjdCBSYWRDaHVua01ldGEgd2l0aCA4IGVsZW1lbnRzAAAAjkAQACMAAABnc3BsYXQAALxAEAAGAAAAb2Zmc2V0ZmlsZW5hbWVzdHJ1Y3QgUmFkQ2h1bmtSYW5nZSB3aXRoIDUgZWxlbWVudHMAANpAEAAkAAAAY29tcHJlc3Npb25taW5tYXhzdHJ1Y3QgUmFkQ2h1bmtQcm9wZXJ0eSB3aXRoIDcgZWxlbWVudHMZQRAAJwAAAGEgc2VxdWVuY2UAANsGEABmAAAAjQQAABwAAABzdHJ1Y3QgU2V0U3BsYXRFbmNvZGluZyB3aXRoIDggZWxlbWVudHMAZEEQACcAAABjZW50ZXJhbHBoYXJnYm9yaWVudGF0aW9uY2hpbGRfY291bnRjaGlsZF9zdGFydHNoMV9jb2Rlc2gyX2NvZGVzaDNfY29kZXNoX2xhYmVsAJRBEAAGAAAAmkEQAAUAAACfQRAAAwAAAME/EAAGAAAAokEQAAsAAAD4MxAAAwAAAPszEAADAAAADDYQAAMAAACtQRAACwAAALhBEAALAAAAw0EQAAgAAADLQRAACAAAANNBEAAIAAAA20EQAAgAAABmMTZmMzJfbGVieXRlc2YxNl9sZWJ5dGVzcjhyOF9kZWx0YXM4czhfZGVsdGFsbl8wcjhsbl9mMTZvY3Q4OHI4AogRAAMAAABUQhAAAwAAAFdCEAALAAAAYkIQAAsAAABtQhAAAgAAAG9CEAAIAAAAd0IQAAIAAAB5QhAACAAAAIFCEAAGAAAAh0IQAAYAAACNQhAABwAAAAdZEQADAAAABYgRAAMAQYSGwQALBQEAAACrAEGUhsEAC50NAQAAAKwAAABnegAAHEMQAAIAAACGV40hJKv8MZsV7Rqk/AqGIZHXkOAZBnMEwoE6QC5Aw02j52ZMofSR0h1OTNnv/LcqkTKWy/Ri3BOYR0yo5sJKZQUUCIJCw8J7T1YBdnE/LlNbgd6v+j3VsO5PRvEo+g1lOjkDtdomfifhYlnYlyaf521Pxr7v5E2F7c0GCuf+P/3rIsETwTMoA+inBzqud1sRrxXgIBVknwBi1PJVeIx7Aisj8rJUn2yy7loDmsKEpY45WsRC9+oSngcEldKewYpCm/q8AgqVZ7gNAZD9VtBrMivi9KBl2ERiQe5Ii0cFQ/5K+mCCgfdMVeJBLcgvjfuPC2mlqkI9RC+bfJ3D8Sr9x01mLnzmSbxuYaNTlztp3pcpSPbzROrxa62j6ZmoBdH97HYrR635JQTfXlV6a8Ovn+m9tKIApq4QCN4uyBE87DPEa42psDZg7WP62RG4/bUIrvZnfsvyWSH/wjd06x+Py+lMtpuEl8Ltn4DSZSE7nX4v+OWiItk2yi53ifdj62Zde1sqPTuH9PUU2hK7pnF7Y1zUyuJJAK68UxeBqShYoeSyUAtPu+nwuxBgZKitiEsgHhagE5RBXb1l1/jQzzzaT25jZSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAADoRBAAKgAAAL8aEABTAAAAnAAAADIAAABzFBAATwAAAC8CAAAmAAAATw8QAGYAAACkAAAAKgAAAE8PEABmAAAABAEAACUAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAABcRRAAsAAAALEAAACyAAAAsAAAALMAAABBRVMgZW5jcnlwdGVkIGZpbGVzIGNhbm5vdCBiZSBkZWNyeXB0ZWQgd2l0aG91dCB0aGUgYWVzLWNyeXB0byBmZWF0dXJlLlZhcmlhYmxlLWxlbmd0aCBmaWVsZCBleHRlbmRzIGJleW9uZCBmaWxlIGJvdW5kYXJ5QUVTIGVuY3J5cHRpb24gd2l0aG91dCBBRVMgZXh0cmEgZGF0YSBmaWVsZEFyY2hpdmUgaGVhZGVyIGlzIHRvbyBsYXJnZQDOIRAAWQAAAOYCAAAZAAAAziEQAFkAAADqAgAAEwAAAE92ZXJzaXplZCBjZW50cmFsIGRpcmVjdG9yeVN1cHBvcnQgZm9yIG11bHRpLWRpc2sgZmlsZXMgaXMgbm90IGltcGxlbWVudGVkemlwOjp0eXBlczo6WmlwQ2VudHJhbEVudHJ5QmxvY2sAAFBLAQJJbnZhbGlkIENlbnRyYWwgRGlyZWN0b3J5IGhlYWRlcnppcDo6c3BlYzo6WmlwMzJDREVCbG9ja1BLBQZJbnZhbGlkIGRpZ2l0YWwgc2lnbmF0dXJlIGhlYWRlcgAAAIAkRxAAIAAAAHppcDo6c3BlYzo6WmlwNjRDREVMb2NhdG9yQmxvY2tJbnZhbGlkIHppcDY0IGxvY2F0b3IgZGlnaXRhbCBzaWduYXR1cmUgaGVhZGVyAAAAAAAAgG9HEAAuAAAAemlwOjpzcGVjOjpaaXA2NENERUJsb2NrUEsGBkludmFsaWQgRU9DRDY0OiBpbmNvbnNpc3RlbnQgbGVuZ3RoSW52YWxpZCBFT0NENjQ6IGluY29uc2lzdGVuY3kgd2l0aCBMb2NhdG9yIGRhdGFJbnZhbGlkIEVPQ0Q2NDogaW5jb25zaXN0ZW50IG51bWJlciBvZiBmaWxlc0NvdWxkIG5vdCBmaW5kIEVPQ0Q2NE11bHRpLWRpc2sgWklQIGZpbGVzIGFyZSBub3Qgc3VwcG9ydGVkSW52YWxpZCBFT0NENjQgTG9jYXRvciBDRCBvZmZzZXRObyBDREZIIGZvdW5kSW52YWxpZCBDREZIIG9mZnNldCBpbiBFT0NESW52YWxpZCBFT0NEIGNvbW1lbnQgbGVuZ3RoQ291bGQg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AIgCAACvAQAAsAEAALEBAACKAgAAsgEAAIsCAACzAQAAtAEAALUBAAC2AQAAtwEAAJICAAC4AQAAuQEAALwBAAC9AQAAxAEAAMYBAADFAQAAxgEAAMcBAADJAQAAyAEAAMkBAADKAQAAzAEAAMsBAADMAQAAzQEAAM4BAADPAQAA0AEAANEBAADSAQAA0wEAANQBAADVAQAA1gEAANcBAADYAQAA2QEAANoBAADbAQAA3AEAAN4BAADfAQAA4AEAAOEBAADiAQAA4wEAAOQBAADlAQAA5gEAAOcBAADoAQAA6QEAAOoBAADrAQAA7AEAAO0BAADuAQAA7wEAAPEBAADzAQAA8gEAAPMBAAD0AQAA9QEAAPYBAACVAQAA9wEAAL8BAAD4AQAA+QEAAPoBAAD7AQAA/AEAAP0BAAD+AQAA/wEAAAACAAABAgAAAgIAAAMCAAAEAgAABQIAAAYCAAAHAgAACAIAAAkCAAAKAgAACwIAAAwCAAANAgAADgIAAA8CAAAQAgAAEQIAABICAAATAgAAFAIAABUCAAAWAgAAFwIAABgCAAAZAgAAGgIAABsCAAAcAgAAHQIAAB4CAAAfAgAAIAIAAJ4BAAAiAgAAIwIAACQCAAAlAgAAJgIAACcCAAAoAgAAKQIAACoCAAArAgAALAIAAC0CAAAuAgAALwIAADACAAAxAgAAMgIAADMCAAA6AgAAZSwAADsCAAA8AgAAPQIAAJoBAAA+AgAAZiwAAEECAABCAgAAQwIAAIABAABEAgAAiQIAAEUCAACMAgAARgIAAEcCAABIAgAASQIAAEoCAABLAgAATAIAAE0CAABOAgAATwIAAHADAABxAwAAcgMAAHMDAAB2AwAAdwMAAH8DAADzAwAAhgMAAKwDAACIAwAArQMAAIkDAACuAwAAigMAAK8DAACMAwAAzAMAAI4DAADNAwAAjwMAAM4DAACRAwAAsQMAAJIDAACyAwAAkwMAALMDAACUAwAAtAMAAJUDAAC1AwAAlgMAALYDAACXAwAAtwMAAJgDAAC4AwAAmQMAALkDAACaAwAAugMAAJsDAAC7AwAAnAMAALwDAACdAwAAvQMAAJ4DAAC+AwAAnwMAAL8DAACgAwAAwAMAAKEDAADBAwAAowMAAMMDAACkAwAAxAMAAKUDAADFAwAApgMAAMYDAACnAwAAxwMAAKgDAADIAwAAqQMAAMkDAACqAwAAygMAAKsDAADLAwAAzwMAANcDAADYAwAA2QMAANoDAADbAwAA3AMAAN0DAADeAwAA3wMAAOADAADhAwAA4gMAAOMDAADkAwAA5QMAAOYDAADnAwAA6AMAAOkDAADqAwAA6wMAAOwDAADtAwAA7gMAAO8DAAD0AwAAuAMAAPcDAAD4AwAA+QMAAPIDAAD6AwAA+wMAAP0DAAB7AwAA/gMAAHwDAAD/AwAAfQMAAAAEAABQBAAAAQQAAFEEAAACBAAAUgQAAAMEAABTBAAABAQAAFQEAAAFBAAAVQQAAAYEAABWBAAABwQAAFcEAAAIBAAAWAQAAAkEAABZBAAACgQAAFoEAAALBAAAWwQAAAwEAABcBAAADQQAAF0EAAAOBAAAXgQAAA8EAABfBAAAEAQAADAEAAARBAAAMQQAABIEAAAyBAAAEwQAADMEAAAUBAAANAQAABUEAAA1BAAAFgQAADYEAAAXBAAANwQAABgEAAA4BAAAGQQAADkEAAAaBAAAOgQAABsEAAA7BAAAHAQAADwEAAAdBAAAPQQAAB4EAAA+BAAAHwQAAD8EAAAgBAAAQAQAACEEAABBBAAAIgQAAEIEAAAjBAAAQwQAACQEAABEBAAAJQQAAEUEAAAmBAAARgQAACcEAABHBAAAKAQAAEgEAAApBAAASQQAACoEAABKBAAAKwQAAEsEAAAsBAAATAQAAC0EAABNBAAALgQAAE4EAAAvBAAATwQAAGAEAABhBAAAYgQAAGMEAABkBAAAZQQAAGYEAABnBAAAaAQAAGkEAABqBAAAawQAAGwEAABtBAAAbgQAAG8EAABwBAAAcQQAAHIEAABzBAAAdAQAAHUEAAB2BAAAdwQAAHgEAAB5BAAAegQAAHsEAAB8BAAAfQQAAH4EAAB/BAAAgAQAAIEEAACKBAAAiwQAAIwEAACNBAAAjgQAAI8EAACQBAAAkQQAAJIEAACTBAAAlAQAAJUEAACWBAAAlwQAAJgEAACZBAAAmgQAAJsEAACcBAAAnQQAAJ4EAACfBAAAoAQAAKEEAACiBAAAowQAAKQEAAClBAAApgQAAKcEAACoBAAAqQQAAKoEAACrBAAArAQAAK0EAACuBAAArwQAALAEAACxBAAAsgQAALMEAAC0BAAAtQQAALYEAAC3BAAAuAQAALkEAAC6BAAAuwQAALwEAAC9BAAAvgQAAL8EAADABAAAzwQAAMEEAADCBAAAwwQAAMQEAADFBAAAxgQAAMcEAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAADOBAAA0AQAANEEAADSBAAA0wQAANQEAADVBAAA1gQAANcEAADYBAAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAA4gQAAOMEAADkBAAA5QQAAOYEAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAO8EAADwBAAA8QQAAPIEAADzBAAA9AQAAPUEAAD2BAAA9wQAAPgEAAD5BAAA+gQAAPsEAAD8BAAA/QQAAP4EAAD/BAAAAAUAAAEFAAACBQAAAwUAAAQFAAAFBQAABgUAAAcFAAAIBQAACQUAAAoFAAALBQAADAUAAA0FAAAOBQAADwUAABAFAAARBQAAEgUAABMFAAAUBQAAFQUAABYFAAAXBQAAGAUAABkFAAAaBQAAGwUAABwFAAAdBQAAHgUAAB8FAAAgBQAAIQUAACIFAAAjBQAAJAUAACUFAAAmBQAAJwUAACgFAAApBQAAKgUAACsFAAAsBQAALQUAAC4FAAAvBQAAMQUAAGEFAAAyBQAAYgUAADMFAABjBQAANAUAAGQFAAA1BQAAZQUAADYFAABmBQAANwUAAGcFAAA4BQAAaAUAADkFAABpBQAAOgUAAGoFAAA7BQAAawUAADwFAABsBQAAPQUAAG0FAAA+BQAAbgUAAD8FAABvBQAAQAUAAHAFAABBBQAAcQUAAEIFAAByBQAAQwUAAHMFAABEBQAAdAUAAEUFAAB1BQAARgUAAHYFAABHBQAAdwUAAEgFAAB4BQAASQUAAHkFAABKBQAAegUAAEsFAAB7BQAATAUAAHwFAABNBQAAfQUAAE4FAAB+BQAATwUAAH8FAABQBQAAgAUAAFEFAACBBQAAUgUAAIIFAABTBQAAgwUAAFQFAACEBQAAVQUAAIUFAABWBQAAhgUAAKAQAAAALQAAoRAAAAEtAACiEAAAAi0AAKMQAAADLQAApBAAAAQtAAClEAAABS0AAKYQAAAGLQAApxAAAActAACoEAAACC0AAKkQAAAJLQAAqhAAAAotAACrEAAACy0AAKwQAAAMLQAArRAAAA0tAACuEAAADi0AAK8QAAAPLQAAsBAAABAtAACxEAAAES0AALIQAAASLQAAsxAAABMtAAC0EAAAFC0AALUQAAAVLQAAthAAABYtAAC3EAAAFy0AALgQAAAYLQAAuRAAABktAAC6EAAAGi0AALsQAAAbLQAAvBAAABwtAAC9EAAAHS0AAL4QAAAeLQAAvxAAAB8tAADAEAAAIC0AAMEQAAAhLQAAwhAAACItAADDEAAAIy0AAMQQAAAkLQAAxRAAACUtAADHEAAAJy0AAM0QAAAtLQAAoBMAAHCrAAChEwAAcasAAKITAAByqwAAoxMAAHOrAACkEwAAdKsAAKUTAAB1qwAAphMAAHarAACnEwAAd6sAAKgTAAB4qwAAqRMAAHmrAACqEwAAeqsAAKsTAAB7qwAArBMAAHyrAACtEwAAfasAAK4TAAB+qwAArxMAAH+rAACwEwAAgKsAALETAACBqwAAshMAAIKrAACzEwAAg6sAALQTAACEqwAAtRMAAIWrAAC2EwAAhqsAALcTAACHqwAAuBMAAIirAAC5EwAAiasAALoTAACKqwAAuxMAAIurAAC8EwAAjKsAAL0TAACNqwAAvhMAAI6rAAC/EwAAj6sAAMATAACQqwAAwRMAAJGrAADCEwAAkqsAAMMTAACTqwAAxBMAAJSrAADFEwAAlasAAMYTAACWqwAAxxMAAJerAADIEwAAmKsAAMkTAACZqwAAyhMAAJqrAADLEwAAm6sAAMwTAACcqwAAzRMAAJ2rAADOEwAAnqsAAM8TAACfqwAA0BMAAKCrAADREwAAoasAANITAACiqwAA0xMAAKOrAADUEwAApKsAANUTAAClqwAA1hMAAKarAADXEwAAp6sAANgTAACoqwAA2RMAAKmrAADaEwAAqqsAANsTAACrqwAA3BMAAKyrAADdEwAArasAAN4TAACuqwAA3xMAAK+rAADgEwAAsKsAAOETAACxqwAA4hMAALKrAADjEwAAs6sAAOQTAAC0qwAA5RMAALWrAADmEwAAtqsAAOcTAAC3qwAA6BMAALirAADpEwAAuasAAOoTAAC6qwAA6xMAALurAADsEwAAvKsAAO0TAAC9qwAA7hMAAL6rAADvEwAAv6sAAPATAAD4EwAA8RMAAPkTAADyEwAA+hMAAPMTAAD7EwAA9BMAAPwTAAD1EwAA/RMAAIkcAACKHAAAkBwAANAQAACRHAAA0RAAAJIcAADSEAAAkxwAANMQAACUHAAA1BAAAJUcAADVEAAAlhwAANYQAACXHAAA1xAAAJgcAADYEAAAmRwAANkQAACaHAAA2hAAAJscAADbEAAAnBwAANwQAACdHAAA3RAAAJ4cAADeEAAAnxwAAN8QAACgHAAA4BAAAKEcAADhEAAAohwAAOIQAACjHAAA4xAAAKQcAADkEAAApRwAAOUQAACmHAAA5hAAAKccAADnEAAAqBwAAOgQAACpHAAA6RAAAKocAADqEAAAqxwAAOsQAACsHAAA7BAAAK0cAADtEAAArhwAAO4QAACvHAAA7xAAALAcAADwEAAAsRwAAPEQAACyHAAA8hAAALMcAADzEAAAtBwAAPQQAAC1HAAA9RAAALYcAAD2EAAAtxwAAPcQAAC4HAAA+BAAALkcAAD5EAAAuhwAAPoQAAC9HAAA/RAAAL4cAAD+EAAAvxwAAP8QAAAAHgAAAR4AAAIeAAADHgAABB4AAAUeAAAGHgAABx4AAAgeAAAJHgAACh4AAAseAAAMHgAADR4AAA4eAAAPHgAAEB4AABEeAAASHgAAEx4AABQeAAAVHgAAFh4AABceAAAYHgAAGR4AABoeAAAbHgAAHB4AAB0eAAAeHgAAHx4AACAeAAAhHgAAIh4AACMeAAAkHgAAJR4AACYeAAAnHgAAKB4AACkeAAAqHgAAKx4AACweAAAtHgAALh4AAC8eAAAwHgAAMR4AADIeAAAzHgAANB4AADUeAAA2HgAANx4AADgeAAA5HgAAOh4AADseAAA8HgAAPR4AAD4eAAA/HgAAQB4AAEEeAABCHgAAQx4AAEQeAABFHgAARh4AAEceAABIHgAASR4AAEoeAABLHgAATB4AAE0eAABOHgAATx4AAFAeAABRHgAAUh4AAFMeAABUHgAAVR4AAFYeAABXHgAAWB4AAFkeAABaHgAAWx4AAFweAABdHgAAXh4AAF8eAABgHgAAYR4AAGIeAABjHgAAZB4AAGUeAABmHgAAZx4AAGgeAABpHgAAah4AAGseAABsHgAAbR4AAG4eAABvHgAAcB4AAHEeAAByHgAAcx4AAHQeAAB1HgAAdh4AAHceAAB4HgAAeR4AAHoeAAB7HgAAfB4AAH0eAAB+HgAAfx4AAIAeAACBHgAAgh4AAIMeAACEHgAAhR4AAIYeAACHHgAAiB4AAIkeAACKHgAAix4AAIweAACNHgAAjh4AAI8eAACQHgAAkR4AAJIeAACTHgAAlB4AAJUeAACeHgAA3wAAAKAeAAChHgAAoh4AAKMeAACkHgAApR4AAKYeAACnHgAAqB4AAKkeAACqHgAAqx4AAKweAACtHgAArh4AAK8eAACwHgAAsR4AALIeAACzHgAAtB4AALUeAAC2HgAAtx4AALgeAAC5HgAAuh4AALseAAC8HgAAvR4AAL4eAAC/HgAAwB4AAMEeAADCHgAAwx4AAMQeAADFHgAAxh4AAMceAADIHgAAyR4AAMoeAADLHgAAzB4AAM0eAADOHgAAzx4AANAeAADRHgAA0h4AANMeAADUHgAA1R4AANYeAADXHgAA2B4AANkeAADaHgAA2x4AANweAADdHgAA3h4AAN8eAADgHgAA4R4AAOIeAADjHgAA5B4AAOUeAADmHgAA5x4AAOgeAADpHgAA6h4AAOseAADsHgAA7R4AAO4eAADvHgAA8B4AAPEeAADyHgAA8x4AAPQeAAD1HgAA9h4AAPceAAD4HgAA+R4AAPoeAAD7HgAA/B4AAP0eAAD+HgAA/x4AAAgfAAAAHwAACR8AAAEfAAAKHwAAAh8AAAsfAAADHwAADB8AAAQfAAANHwAABR8AAA4fAAAGHwAADx8AAAcfAAAYHwAAEB8AABkfAAARHwAAGh8AABIfAAAbHwAAEx8AABwfAAAUHwAAHR8AABUfAAAoHwAAIB8AACkfAAAhHwAAKh8AACIfAAArHwAAIx8AACwfAAAkHwAALR8AACUfAAAuHwAAJh8AAC8fAAAnHwAAOB8AADAfAAA5HwAAMR8AADofAAAyHwAAOx8AADMfAAA8HwAANB8AAD0fAAA1HwAAPh8AADYfAAA/HwAANx8AAEgfAABAHwAASR8AAEEfAABKHwAAQh8AAEsfAABDHwAATB8AAEQfAABNHwAARR8AAFkfAABRHwAAWx8AAFMfAABdHwAAVR8AAF8fAABXHwAAaB8AAGAfAABpHwAAYR8AAGofAABiHwAAax8AAGMfAABsHwAAZB8AAG0fAABlHwAAbh8AAGYfAABvHwAAZx8AAIgfAACAHwAAiR8AAIEfAACKHwAAgh8AAIsfAACDHwAAjB8AAIQfAACNHwAAhR8AAI4fAACGHwAAjx8AAIcfAACYHwAAkB8AAJkfAACRHwAAmh8AAJIfAACbHwAAkx8AAJwfAACUHwAAnR8AAJUfAACeHwAAlh8AAJ8fAACXHwAAqB8AAKAfAACpHwAAoR8AAKofAACiHwAAqx8AAKMfAACsHwAApB8AAK0fAAClHwAArh8AAKYfAACvHwAApx8AALgfAACwHwAAuR8AALEfAAC6HwAAcB8AALsfAABxHwAAvB8AALMfAADIHwAAch8AAMkfAABzHwAAyh8AAHQfAADLHwAAdR8AAMwfAADDHwAA2B8AANAfAADZHwAA0R8AANofAAB2HwAA2x8AAHcfAADoHwAA4B8AAOkfAADhHwAA6h8AAHofAADrHwAAex8AAOwfAADlHwAA+B8AAHgfAAD5HwAAeR8AAPofAAB8HwAA+x8AAH0fAAD8HwAA8x8AACYhAADJAwAAKiEAAGsAAAArIQAA5QAAADIhAABOIQAAYCEAAHAhAABhIQAAcSEAAGIhAAByIQAAYyEAAHMhAABkIQAAdCEAAGUhAAB1IQAAZiEAAHYhAABnIQAAdyEAAGghAAB4IQAAaSEAAHkhAABqIQAAeiEAAGshAAB7IQAAbCEAAHwhAABtIQAAfSEAAG4hAAB+IQAAbyEAAH8hAACDIQAAhCEAALYkAADQJAAAtyQAANEkAAC4JAAA0iQAALkkAADTJAAAuiQAANQkAAC7JAAA1SQAALwkAADWJAAAvSQAANckAAC+JAAA2CQAAL8kAADZJAAAwCQAANokAADBJAAA2yQAAMIkAADcJAAAwyQAAN0kAADEJAAA3iQAAMUkAADfJAAAxiQAAOAkAADHJAAA4SQAAMgkAADiJAAAySQAAOMkAADKJAAA5CQAAMskAADlJAAAzCQAAOYkAADNJAAA5yQAAM4kAADoJAAAzyQAAOkkAAAALAAAMCwAAAEsAAAxLAAAAiwAADIsAAADLAAAMywAAAQsAAA0LAAABSwAADUsAAAGLAAANiwAAAcsAAA3LAAACCwAADgsAAAJLAAAOSwAAAosAAA6LAAACywAADssAAAMLAAAPCwAAA0sAAA9LAAADiwAAD4sAAAPLAAAPywAABAsAABALAAAESwAAEEsAAASLAAAQiwAABMsAABDLAAAFCwAAEQsAAAVLAAARSwAABYsAABGLAAAFywAAEcsAAAYLAAASCwAABksAABJLAAAGiwAAEosAAAbLAAASywAABwsAABMLAAAHSwAAE0sAAAeLAAATiwAAB8sAABPLAAAICwAAFAsAAAhLAAAUSwAACIsAABSLAAAIywAAFMsAAAkLAAAVCwAACUsAABVLAAAJiwAAFYsAAAnLAAAVywAACgsAABYLAAAKSwAAFksAAAqLAAAWiwAACssAABbLAAALCwAAFwsAAAtLAAAXSwAAC4sAABeLAAALywAAF8sAABgLAAAYSwAAGIsAABrAgAAYywAAH0dAABkLAAAfQIAAGcsAABoLAAAaSwAAGosAABrLAAAbCwAAG0sAABRAgAAbiwAAHECAABvLAAAUAIAAHAsAABSAgAAciwAAHMsAAB1LAAAdiwAAH4sAAA/AgAAfywAAEACAACALAAAgSwAAIIsAACDLAAAhCwAAIUsAACGLAAAhywAAIgsAACJLAAAiiwAAIssAACMLAAAjSwAAI4sAACPLAAAkCwAAJEsAACSLAAAkywAAJQsAACVLAAAliwAAJcsAACYLAAAmSwAAJosAACbLAAAnCwAAJ0sAACeLAAAnywAAKAsAAChLAAAoiwAAKMsAACkLAAApSwAAKYsAACnLAAAqCwAAKksAACqLAAAqywAAKwsAACtLAAAriwAAK8sAACwLAAAsSwAALIsAACzLAAAtCwAALUsAAC2LAAAtywAALgsAAC5LAAAuiwAALssAAC8LAAAvSwAAL4sAAC/LAAAwCwAAMEsAADCLAAAwywAAMQsAADFLAAAxiwAAMcsAADILAAAySwAAMosAADLLAAAzCwAAM0sAADOLAAAzywAANAsAADRLAAA0iwAANMsAADULAAA1SwAANYsAADXLAAA2CwAANksAADaLAAA2ywAANwsAADdLAAA3iwAAN8sAADgLAAA4SwAAOIsAADjLAAA6ywAAOwsAADtLAAA7iwAAPIsAADzLAAAQKYAAEGmAABCpgAAQ6YAAESmAABFpgAARqYAAEemAABIpgAASaYAAEqmAABLpgAATKYAAE2mAABOpgAAT6YAAFCmAABRpgAAUqYAAFOmAABUpgAAVaYAAFamAABXpgAAWKYAAFmmAABapgAAW6YAAFymAABdpgAAXqYAAF+mAABgpgAAYaYAAGKmAABjpgAAZKYAAGWmAABmpgAAZ6YAAGimAABppgAAaqYAAGumAABspgAAbaYAAICmAACBpgAAgqYAAIOmAACEpgAAhaYAAIamAACHpgAAiKYAAImmAACKpgAAi6YAAIymAACNpgAAjqYAAI+mAACQpgAAkaYAAJKmAACTpgAAlKYAAJWmAACWpgAAl6YAAJimAACZpgAAmqYAAJumAAAipwAAI6cAACSnAAAlpwAAJqcAACenAAAopwAAKacAACqnAAArpwAALKcAAC2nAAAupwAAL6cAADKnAAAzpwAANKcAADWnAAA2pwAAN6cAADinAAA5pwAAOqcAADunAAA8pwAAPacAAD6nAAA/pwAAQKcAAEGnAABCpwAAQ6cAAESnAABFpwAARqcAAEenAABIpwAASacAAEqnAABLpwAATKcAAE2nAABOpwAAT6cAAFCnAABRpwAAUqcAAFOnAABUpwAAVacAAFanAABXpwAAWKcAAFmnAABapwAAW6cAAFynAABdpwAAXqcAAF+nAABgpwAAYacAAGKnAABjpwAAZKcAAGWnAABmpwAAZ6cAAGinAABppwAAaqcAAGunAABspwAAbacAAG6nAABvpwAAeacAAHqnAAB7pwAAfKcAAH2nAAB5HQAAfqcAAH+nAACApwAAgacAAIKnAACDpwAAhKcAAIWnAACGpwAAh6cAAIunAACMpwAAjacAAGUCAACQpwAAkacAAJKnAACTpwAAlqcAAJenAACYpwAAmacAAJqnAACbpwAAnKcAAJ2nAACepwAAn6cAAKCnAAChpwAAoqcAAKOnAACkpwAApacAAKanAACnpwAAqKcAAKmnAACqpwAAZgIAAKunAABcAgAArKcAAGECAACtpwAAbAIAAK6nAABqAgAAsKcAAJ4CAACxpwAAhwIAALKnAACdAgAAs6cAAFOrAAC0pwAAtacAALanAAC3pwAAuKcAALmnAAC6pwAAu6cAALynAAC9pwAAvqcAAL+nAADApwAAwacAAMKnAADDpwAAxKcAAJSnAADFpwAAggIAAManAACOHQAAx6cAAMinAADJpwAAyqcAAMunAABkAgAAzKcAAM2nAADQpwAA0acAANanAADXpwAA2KcAANmnAADapwAA26cAANynAACbAQAA9acAAPanAAAh/wAAQf8AACL/AABC/wAAI/8AAEP/AAAk/wAARP8AACX/AABF/wAAJv8AAEb/AAAn/wAAR/8AACj/AABI/wAAKf8AAEn/AAAq/wAASv8AACv/AABL/wAALP8AAEz/AAAt/wAATf8AAC7/AABO/wAAL/8AAE//AAAw/wAAUP8AADH/AABR/wAAMv8AAFL/AAAz/wAAU/8AADT/AABU/wAANf8AAFX/AAA2/wAAVv8AADf/AABX/wAAOP8AAFj/AAA5/wAAWf8AADr/AABa/wAAAAQBACgEAQABBAEAKQQBAAIEAQAqBAEAAwQBACsEAQAEBAEALAQBAAUEAQAtBAEABgQBAC4EAQAHBAEALwQBAAgEAQAwBAEACQQBADEEAQAKBAEAMgQBAAsEAQAzBAEADAQBADQEAQANBAEANQQBAA4EAQA2BAEADwQBADcEAQAQBAEAOAQBABEEAQA5BAEAEgQBADoEAQATBAEAOwQBABQEAQA8BAEAFQQBAD0EAQAWBAEAPgQBABcEAQA/BAEAGAQBAEAEAQAZBAEAQQQBABoEAQBCBAEAGwQBAEMEAQAcBAEARAQBAB0EAQBFBAEAHgQBAEYEAQAfBAEARwQBACAEAQBIBAEAIQQBAEkEAQAiBAEASgQBACMEAQBLBAEAJAQBAEwEAQAlBAEATQQBACYEAQBOBAEAJwQBAE8EAQCwBAEA2AQBALEEAQDZBAEAsgQBANoEAQCzBAEA2wQBALQEAQDcBAEAtQQBAN0EAQC2BAEA3gQBALcEAQDfBAEAuAQBAOAEAQC5BAEA4QQBALoEAQDiBAEAuwQBAOMEAQC8BAEA5AQBAL0EAQDlBAEAvgQBAOYEAQC/BAEA5wQBAMAEAQDoBAEAwQQBAOkEAQDCBAEA6gQBAMMEAQDrBAEAxAQBAOwEAQDFBAEA7QQBAMYEAQDuBAEAxwQBAO8EAQDIBAEA8AQBAMkEAQDxBAEAygQBAPIEAQDLBAEA8wQBAMwEAQD0BAEAzQQBAPUEAQDOBAEA9gQBAM8EAQD3BAEA0AQBAPgEAQDRBAEA+QQBANIEAQD6BAEA0wQBAPsEAQBwBQEAlwUBAHEFAQCYBQEAcgUBAJkFAQBzBQEAmgUBAHQFAQCbBQEAdQUBAJwFAQB2BQEAnQUBAHcFAQCeBQEAeAUBAJ8FAQB5BQEAoAUBAHoFAQChBQEAfAUBAKMFAQB9BQEApAUBAH4FAQClBQEAfwUBAKYFAQCABQEApwUBAIEFAQCoBQEAggUBAKkFAQCDBQEAqgUBAIQFAQCrBQEAhQUBAKwFAQCGBQEArQUBAIcFAQCuBQEAiAUBAK8FAQCJBQEAsAUBAIoFAQCxBQEAjAUBALMFAQCNBQEAtAUBAI4FAQC1BQEAjwUBALYFAQCQBQEAtwUBAJEFAQC4BQEAkgUBALkFAQCUBQEAuwUBAJUFAQC8BQEAgAwBAMAMAQCBDAEAwQwBAIIMAQDCDAEAgwwBAMMMAQCEDAEAxAwBAIUMAQDFDAEAhgwBAMYMAQCHDAEAxwwBAIgMAQDIDAEAiQwBAMkMAQCKDAEAygwBAIsMAQDLDAEAjAwBAMwMAQCNDAEAzQwBAI4MAQDODAEAjwwBAM8MAQCQDAEA0AwBAJEMAQDRDAEAkgwBANIMAQCTDAEA0wwBAJQMAQDUDAEAlQwBANUMAQCWDAEA1gwBAJcMAQDXDAEAmAwBANgMAQCZDAEA2QwBAJoMAQDaDAEAmwwBANsMAQCcDAEA3AwBAJ0MAQDdDAEAngwBAN4MAQCfDAEA3wwBAKAMAQDgDAEAoQwBAOEMAQCiDAEA4gwBAKMMAQDjDAEApAwBAOQMAQClDAEA5QwBAKYMAQDmDAEApwwBAOcMAQCoDAEA6AwBAKkMAQDpDAEAqgwBAOoMAQCrDAEA6wwBAKwMAQDsDAEArQwBAO0MAQCuDAEA7gwBAK8MAQDvDAEAsAwBAPAMAQCxDAEA8QwBALIMAQDyDAEAUA0BAHANAQBRDQEAcQ0BAFINAQByDQEAUw0BAHMNAQBUDQEAdA0BAFUNAQB1DQEAVg0BAHYNAQBXDQEAdw0BAFgNAQB4DQEAWQ0BAHkNAQBaDQEAeg0BAFsNAQB7DQEAXA0BAHwNAQBdDQEAfQ0BAF4NAQB+DQEAXw0BAH8NAQBgDQEAgA0BAGENAQCBDQEAYg0BAIINAQBjDQEAgw0BAGQNAQCEDQEAZQ0BAIUNAQCgGAEAwBgBAKEYAQDBGAEAohgBAMIYAQCjGAEAwxgBAKQYAQDEGAEApRgBAMUYAQCmGAEAxhgBAKcYAQDHGAEAqBgBAMgYAQCpGAEAyRgBAKoYAQDKGAEAqxgBAMsYAQCsGAEAzBgBAK0YAQDNGAEArhgBAM4YAQCvGAEAzxgBALAYAQDQGAEAsRgBANEYAQCyGAEA0hgBALMYAQDTGAEAtBgBANQYAQC1GAEA1RgB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AACBHgAAgR8AAIEgAACBIQAAgSIAAIEjAACBJAAAgSUAAIEmAACBJwAAgSgAAIEpAACBKgAAgSsAAIEsAACBLQAAgS4AAIEvAACBMAAAgTEAAIEyAACBMwAAgTQAAIE1AACBNgAAgTcAAIE4AACBOQAAgToAAIE7AACBPAAAgT0AAIE+AACBPwAAgUAAAIFBAACBQgAAgUMAAIFEAACBRQAAgUYAAIFHAACBSAAAgUkAAIFKAACBSwAAgUwAAIFNAACBTgAAgU8AAIFQAACBUQAAgVIAAIFTAACBVAAAgVUAAIFWAACBVwAAgVgAAIFZAACBWgAAgVsAAIFcAACBXQAAgV4AAIFfAACBYAAAgWEAAIFiAACBYwAAgWQAAIFlAACBZgAAgWcAAIFoAACBaQAAgWoAAIFrAACBbAAAgW0AAIFuAACBbwAAgXAAAIFxAACBcgAAgXMAAIF0AACBdQAAgXYAAIF3AACBeAAAgXkAAIF6AACBewAAgXwAAIF9AACBfgAAgX8AAIGAAACBgQAAgYIAAIGDAACBhAAAgYUAAIGGAACBhwAAgYgAAIGJAACBigAAgYsAAIGMAACBjQAAgY4AAIGPAACBkAAAgZEAAIGSAACBkwAAgZQAAIGVAACBlgAAgZcAAIGYAACBmQAAgZoAAIGbAACBnAAAgZ0AAIGeAACBnwAAgaAAAIGhAACBogAAgaMAAIGkAACBpQAAgaYAAIGnAACBqAAAgakAAIGqAACBqwAAgawAAIGtAACBrgAAga8AAIGwAACBsQAAgbIAAIGzAACBtAAAgbUAAIG2AACBtwAAgbgAAIG5AACBugAAgbsAAIG8AACBvQAAgb4AAIG/AACBwAAAgcEAAIHCAACBwwAAgcQAAIHFAACBxgAAgccAAIHIAACByQAAgcoAAIHLAACBzAAAgc0AAIHOAACBzwAAgdAAAIHRAACB0gAAgdMAAIHUAACB1QAAgdYAAIHXAACB2AAAgdkAAIHaAACB2wAAgdwAAIHdAACB3gAAgd8AAIHgAACB4QAAgeIAAIHjAACB5AAAgeUAAIHmAACB5wAAgegAAIHpAACB6gAAgesAAIHsAACB7QAAge4AAIHvAACB8AAAgfEAAIHyAACB8wAAgfQAAIH1AACB9gAAgfcAAIH4AACB+QAAgfoAAIH7AACB/AAAgf0AAIH+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ZXRyaWMgaW50ZXJwcmV0YXRpb24gb2YgYSBDSUNQIGNvbG9yIHNwYWNlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGBUIxEATAAAAOiSEQABAAAAVGhlIGZpbGUgZXh0ZW5zaW9uICB3YXMgbm90IHJlY29nbml6ZWQgYXMgYW4gaW1hZ2UgZm9ybWF0AAAAsCMRABMAAADDIxEAJgAAAFRoZSBpbWFnZSBmb3JtYXQgY291bGQgbm90IGJlIGRldGVybWluZWRUaGUgaW1hZ2UgZm9ybWF0IAAAACQkEQARAAAAMCMRABEAAABUaGUgZGVjb2RlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmb3JtYXQgZmVhdHVyZSBIJBEAMAAAAFRoZSBkZWNvZGVyIGZvciAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZm9ybWF0IGZlYXR1cmVzIAAAgCQRABAAAACQJBEAJgAAAEVycgAAAAAABAAAAAQAAACtAQAARm9ybWF0RXJyb3JSaWZmU2lnbmF0dXJlSW52YWxpZFdlYnBTaWduYXR1cmVJbnZhbGlkQ2h1bmtNaXNzaW5nQ2h1bmtIZWFkZXJJbnZhbGlkUmVzZXJ2ZWRCaXRTZXRJbnZhbGlkQWxwaGFQcmVwcm9jZXNzaW5nSW52YWxpZENvbXByZXNzaW9uTWV0aG9kQWxwaGFDaHVua1NpemVNaXNtYXRjaEltYWdlVG9vTGFyZ2VGcmFtZU91dHNpZGVJbWFnZUxvc3NsZXNzU2lnbmF0dXJlSW52YWxpZFZlcnNpb25OdW1iZXJJbnZhbGlkSW52YWxpZENvbG9yQ2FjaGVCaXRzSHVmZm1hbkVycm9yQml0U3RyZWFtRXJyb3JUcmFuc2Zvcm1FcnJvclZwOE1hZ2ljSW52YWxpZE5vdEVub3VnaEluaXREYXRhQ29sb3JTcGFjZUludmFsaWRMdW1hUHJlZGljdGlvbk1vZGVJbnZhbGlkSW50cmFQcmVkaWN0aW9uTW9kZUludmFsaWRDaHJvbWFQcmVkaWN0aW9uTW9kZUludmFsaWRJbmNvbnNpc3RlbnRJbWFnZVNpemVzVW5zdXBwb3J0ZWRGZWF0dXJlSW52YWxpZFBhcmFtZXRlck1lbW9yeUxpbWl0RXhjZWVkZWRJbnZhbGlkQ2h1bmtTaXplTm9Nb3JlRnJhbWVzSW52YWxpZERpbWVuc2lvbnMAAAAABAAAAAQAAACuAQAAVHJ5UmVzZXJ2ZUVycm9yTGltaXRzRXhjZWVkZWQAAAC7AAAACAAAAAQAAAAWAAAAuwAAAAgAAAAEAAAAvAAAABYAAAAwJxEAvQAAAL4AAACyAAAAvwAAALMAAABVbnJlcHJlc2VudGFibGVJbnZhbGlkS2V5d29yZFNpemVNaXNzaW5nTnVsbFNlcGFyYXRvckluZmxhdGlvbkVycm9yT3V0T2ZEZWNvbXByZXNzaW9uU3BhY2VJbnZhbGlkQ29tcHJlc3Npb25GbGFnTWlzc2luZ0NvbXByZXNzaW9uRmxhZwAAAAAAAAQAAAAEAAAAwAAAAAAAAAAEAAAABAAAAGMAAABDcmNNaXNtYXRjaGNyY192YWxjcmNfc3VtSW52YWxpZFNpZ25hdHVyZU1pc3NpbmdGY3RsTWlzc2luZ0ltYWdlRGF0YUNodW5rQmVmb3JlSWhkckFmdGVySWRhdEJlZm9yZVBsdGVBZnRlclBsdGVPdXRzaWRlUGx0ZUlkYXREdXBsaWNhdGVDaHVua0FwbmdPcmRlcnByZXNlbnRTaG9ydFBhbGV0dGVsZW4AAAAAAAEAAAABAAAArwEAAEludmFsaWRTYml0Q2h1bmtTaXplY29sb3JfdHlwZQAAAAAAAAEAAAABAAAAsAEAAEludmFsaWRTYml0c2FtcGxlX2RlcHRoc2JpdFBhbGV0dGVSZXF1aXJlZAAAAAAAAAQAAAAEAAAAsQEAAEludmFsaWRDb2xvckJpdERlcHRoYml0X2RlcHRoQ29sb3JXaXRoQmFkVHJuc0ludmFsaWRCaXREZXB0aEludmFsaWRDb2xvclR5cGVJbnZhbGlkRGlzcG9zZU9wSW52YWxpZEJsZW5kT3BJbnZhbGlkVW5pdEludmFsaWRTcmdiUmVuZGVyaW5nSW50ZW50VW5rbm93bkNvbXByZXNzaW9uTWV0aG9kVW5rbm93bkZpbHRlck1ldGhvZFVua25vd25JbnRlcmxhY2VNZXRob2RCYWRTdWJGcmFtZUJvdW5kcwAAAAAAAAAEAAAABAAAALIBAABDb3JydXB0RmxhdGVTdHJlYW1lcnJOb01vcmVJbWFnZURhdGFCYWRUZXh0RW5jb2RpbmdGZGF0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AB4AAAB2JRAAXwAAAAsJAAAXAAAAdiUQAF8AAAAPCQAAJgAAAHYlEABfAAAAEgkAACIAAAB2JRAAXwAAAAwJAAAdAAAAdiUQAF8AAACBCAAABQAAAHYlEABfAAAAhAgAACYAAAB2JRAAXwAAAIgIAAArAAAAdiUQAF8AAACICAAAIAAAAHYlEABfAAAAJQgAAEUAAAB2JRAAXwAAADgIAAAxAAAAdiUQAF8AAAAiCAAAHgAAAHYlEABfAAAAHAgAAEEAAAAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADwAPgBAAEIARABGAEgASgBMAE4AUABSAFQAVgBYAFoAXABeAGAAYgBkAGYAaABqAGwAbgBwAHIAdAB3AHoAfQCAAIMAhgCJAIwAjwCSAJUAmACbAJ4AoQCkAKcAqgCtALEAtQC5AL0AwQDFAMkAzQDRANUA2QDdAOEA5QDqAO8A9QD5AP4AAwEIAQ0BEgEXARwBBAAFAAYABwAIAAkACgAKAAsADAANAA4ADwAQABEAEQASABMAFAAUABUAFQAWABYAFwAXABgAGQAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACUAJgAnACgAKQAqACsALAAtAC4ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWwBdAF8AYABiAGQAZQBmAGgAagBsAG4AcAByAHQAdgB6AHwAfgCAAIIAhACGAIgAigCMAI8AkQCUAJcAmgCdAHYlEABfAAAAaAgAADAAAAB2JRAAXwAAAFwIAAA7AAAAawIQAF8AAABgAAAANQAAAGsCEABfAAAAYwAAAEEAAABrAhAAXwAAAJUAAAAZAAAAawIQAF8AAACUAAAAGQAAAGsCEABfAAAAkwAAABkAAABrAhAAXwAAAJAAAAAkAAAAawIQAF8AAACPAAAAJAAAAGsCEABfAAAAeAAAABUAAABrAhAAXwAAAHcAAAAVAAAAawIQAF8AAAB2AAAAFQAA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UDggY2hyb21hIHByZWRpY3Rpb24gbW9kZTog+DsRACQAAABJbmNvbnNpc3RlbnQgaW1hZ2Ugc2l6ZXNVbnN1cHBvcnRlZCBmZWF0dXJlOiAAAAA8PBEAFQAAAEludmFsaWQgcGFyYW1ldGVyOiAAXDwRABMAAABNZW1vcnkgbGltaXQgZXhjZWVkZWRJbnZhbGlkIGNodW5rIHNpemVObyBtb3JlIGZyYW1lc2Nsb3N1cmUgaW52b2tlZCByZWN1cnNpdmVseSBvciBhZnRlciBiZWluZyBkcm9wcGVkAC0kEABcAAAAhTUAAAEAAAA3NDMyMTAvLi1n8kJD5SwrKikoJyYlJCMiITggHx4dHP+UpJWIoJut3d6GeujK1+DQ3My7t7OxqLLI4sOauK5+eL+dwqq9oqGWwY6Jq7C5p7pwr8C8nIyPe4WAk4qSct+X+dju7P3j2ub3h7Tx6fb054v18/vrycTw1pi2zbV/G9TT0tXkxamfg6xpUGJgYVHPkXRzkIKZeWuEbW58b1Jsdo1xgXd9pXVcalNIY11BT6bto8e+4dHLxtnbzur4nu//////////////////////////////////////////////////////////////////////////////////////mwEQAGcAAADZAQAAHQAAAJsBEABnAAAA2gEAABkAAACbARAAZwAAADECAAAbAAAAmwEQAGcAAAAyAgAAHQAAABYMEAByAAAAKgAAABMAAADYHRAAaAAAANMAAAAcAAAAHBgQAGkAAABrBgAAGgAAABwYEABpAAAAawYAADYAAAAcGBAAaQAAAF4GAAAoAAAAFgwQAHIAAAAgAAAACQAAABwYEABpAAAAcwcAAD4AQaj9xAAL2RoBAQEBAgICAgMDAwMEBAQEBQUFBQAAAAADAAQABQAGAAcACAAJAAoACwANAA8AEQATABcAGwAfACMAKwAzADsAQwBTAGMAcwCDAKMAwwDjAAIBAAIAAgACHBgQAGkAAADZBwAATQAAABwYEABpAAAAPAYAAC0AAAAcGBAAaQAAADwGAAAZAAAAHBgQAGkAAACEBgAAIAAAAAEBAQAEAAEAAgADAAQABQAHAAkADQARABkAIQAxAEEAYQCBAMEAAQGBAQECAQMBBAEGAQgBDAEQARgBIAEwAUABYAAAHBgQAGkAAAARAgAAKAAAAAAAAIAAQADAACAAoABgAOAAEACQAFAA0AAwALAAcADwAAgAiABIAMgAKACoAGgA6AAYAJgAWADYADgAuAB4APgABACEAEQAxAAkAKQAZADkABQAlABUANQANAC0AHQA9AAMAIwATADMACwArABsAOwAHACcAFwA3AA8ALwAfAD8AAIAggBCAMIAIgCiAGIA4gASAJIAUgDSADIAsgByAPIACgCKAEoAygAqAKoAagDqABoAmgBaANoAOgC6AHoA+gAGAIYARgDGACYApgBmAOYAFgCWAFYA1gA2ALYAdgD2AA4AjgBOAM4ALgCuAG4A7gAeAJ4AXgDeAD4AvgB+AP4AAQCBAEEAwQAhAKEAYQDhABEAkQBRANEAMQCxAHEA8QAJAIkASQDJACkAqQBpAOkAGQCZAFkA2QA5ALkAeQD5AAUAhQBFAMUAJQClAGUA5QAVAJUAVQDVADUAtQB1APUADQCNAE0AzQAtAK0AbQDtAB0AnQBdAN0APQC9AH0A/QADAIMAQwDDACMAowBjAOMAEwCTAFMA0wAzALMAcwDzAAsAiwBLAMsAKwCrAGsA6wAbAJsAWwDbADsAuwB7APsABwCHAEcAxwAnAKcAZwDnABcAlwBXANcANwC3AHcA9wAPAI8ATwDPAC8ArwBvAO8AHwCfAF8A3wA/AL8AfwD/gACAgIBAgMCAIICggGCA4IAQgJCAUIDQgDCAsIBwgPCACICIgEiAyIAogKiAaIDogBiAmIBYgNiAOIC4gHiA+IAEgISARIDEgCSApIBkgOSAFICUgFSA1IA0gLSAdID0gAyAjIBMgMyALICsgGyA7IAcgJyAXIDcgDyAvIB8gPyAAoCCgEKAwoAigKKAYoDigBKAkoBSgNKAMoCygHKA8oAKgIqASoDKgCqAqoBqgOqAGoCagFqA2oA6gLqAeoD6gAaAhoBGgMaAJoCmgGaA5oAWgJaAVoDWgDaAtoB2gPaADoCOgE6AzoAugK6AboDugB6AnoBegN6APoC+gH6A/oABgIGAQYDBgCGAoYBhgOGAEYCRgFGA0YAxgLGAcYDxgAmAiYBJgMmAKYCpgGmA6YAZgJmAWYDZgDmAuYB5gPmABYCFgEWAxYAlgKWAZYDlgBWAlYBVgNWANYC1gHWA9YANgI2ATYDNgC2ArYBtgO2AHYCdgF2A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AAQAAAABAAAAxQEAAHR5cGUAAAAAAQAAAAEAAADGAQAAY3JpdGljYWxwcml2YXRlcmVzZXJ2ZWRzYWZlY29weU9uZVR3b0ZvdXJFaWdodFNpeHRlZW5HcmF5c2NhbGVSZ2JJbmRleGVkR3JheXNjYWxlQWxwaGFSZ2JhAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAHdyb25nIGRhdGEgc2l6ZSwgZXhwZWN0ZWQgIGdvdCAAOE4RABoAAABSThEABQAAAEVuZCBvZiBpbWFnZSBoYXMgYmVlbiByZWFjaGVkQSBmYXRhbCBkZWNvZGluZyBlcnJvciBoYXMgYmVlbiBlbmNvdW50ZWQgZWFybGllckNSQyBlcnJvcjogZXhwZWN0ZWQgMHggaGF2ZSAweCB3aGlsZSBkZWNvZGluZyAgY2h1bmsuALZOEQAWAAAAzE4RAAgAAADUThEAEAAAAOROEQAHAAAASW52YWxpZCBQTkcgc2lnbmF0dXJlLmZjVEwgY2h1bmsgbWlzc2luZyBiZWZvcmUgZmRBVCBjaHVuay5JREFUIG9yIGZkQVQgY2h1bmsgaXMgbWlzc2luZy4gY2h1bmsgYXBwZWFyZWQgYmVmb3JlIElIRFIgY2h1bmsAAAEAAAAAAAAAZU8RACEAAABDaHVuayAgaXMgaW52YWxpZCBhZnRlciBJREFUIGNodW5rLgCYTxEABgAAAJ5PEQAdAAAAIGlzIGludmFsaWQgYmVmb3JlIFBMVEUgY2h1bmsuAACYTxEABgAAAMxPEQAeAAAAIGlzIGludmFsaWQgYWZ0ZXIgUExURSBjaHVuay4AAACYTxEABgAAAPxPEQAdAAAAIG11c3QgYXBwZWFyIGJldHdlZW4gUExURSBhbmQgSURBVCBjaHVua3MuAACYTxEABgAAACxQEQAqAAAAIG11c3QgYXBwZWFyIGF0IG1vc3Qgb25jZS4AAJhPEQAGAAAAaFARABoAAABTZXF1ZW5jZSBpcyBub3QgaW4gb3JkZXIsIGV4cGVjdGVkICMgZ290ICMAAJRQEQAkAAAAuFARAAYAAADsXBEAAQAAAE5vdCBlbm91Z2ggcGFsZXR0ZSBlbnRyaWVzLCBleHBlY3QgANhQEQAjAAAAUk4RAAUAAADsXBEAAQAAAFRoZSBzaXplIG9mIHRoZSBzQklUIGNodW5rIHNob3VsZCBiZSAgYnl0ZShzKSwgYnV0ICBieXRlKHMpIHdlcmUgcHJvdmlkZWQgZm9yIHRoZSAgY29sb3IgdHlwZS4AABRREQAlAAAAOVERAA4AAABHUREAHwAAAGZREQAMAAAASW52YWxpZCBzQklUIHZhbHVlIC4gSXQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIHRoZSBzYW1wbGUgZGVwdGggAAAAlFERABMAAACnUREAPgAAAOxcEQABAAAATWlzc2luZyBwYWxldHRlIG9mIGluZGV4ZWQgaW1hZ2UuSW52YWxpZCBjb2xvci9kZXB0aCBjb21iaW5hdGlvbiBpbiBoZWFkZXI6IC8AAAAhUhEAKwAAAExSEQABAAAAVHJhbnNwYXJlbmN5IGNodW5rIGZvdW5kIGZvciBjb2xvciB0eXBlIGBSEQAoAAAA7FwRAAEAAABJbnZhbGlkIGltYWdlIGRpbWVuc2lvbnNJbnZhbGlkIGJpdCBkZXB0aCAAALBSEQASAAAA7FwRAAEAAABJbnZhbGlkIGNvbG9yIHR5cGUgANRSEQATAAAA7FwRAAEAAABJbnZhbGlkIGRpc3Bvc2Ugb3AgAPhSEQATAAAA7FwRAAEAAABJbnZhbGlkIGJsZW5kIG9wIAAAABxTEQARAAAA7FwRAAEAAABJbnZhbGlkIHBoeXNpY2FsIHBpeGVsIHNpemUgdW5pdCAAAABAUxEAIQAAAOxcEQABAAAASW52YWxpZCBzUkdCIHJlbmRlcmluZyBpbnRlbnQgAAB0UxEAHgAAAOxcEQABAAAAVW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QgAKRTEQAbAAAA7FwRAAEAAABVbmtub3duIGZpbHRlciBtZXRob2QgAADQUxEAFgAAAOxcEQABAAAAVW5rbm93biBpbnRlcmxhY2UgbWV0aG9kIAAAAPhTEQAZAAAA7FwRAAEAAABTdWIgZnJhbWUgaXMgb3V0LW9mLWJvdW5kcy5Db3JydXB0IGRlZmxhdGUgc3RyZWFtLiBJREFUIG9yIGZEQVQgY2h1bmsgZG9lcyBub3QgaGF2ZSBlbm91Z2ggZGF0YSBmb3IgaW1hZ2UuVW5yZXByZXNlbnRhYmxlIGRhdGEgaW4gdEVYdCBjaHVuay4AAACOVBEAIwAAAEtleXdvcmQgZW1wdHkgb3IgbG9uZ2VyIHRoYW4gNzkgYnl0ZXMuAAC8VBEAJgAAAE5vIG51bGwgc2VwYXJhdG9yIGluIHRFWHQgY2h1bmsu7FQRACAAAABJbnZhbGlkIGNvbXByZXNzZWQgdGV4dCBkYXRhLgAAABRVEQAdAAAAT3V0IG9mIGRlY29tcHJlc3Npb24gc3BhY2UuIFRyeSB3aXRoIGEgbGFyZ2VyIGxpbWl0LjxVEQA0AAAAVXNpbmcgYW4gdW5yZWNvZ25pemVkIGJ5dGUgYXMgY29tcHJlc3Npb24gbWV0aG9kLgAAAHhVEQAxAAAAVXNpbmcgYSBmbGFnIHRoYXQgaXMgbm90IDAgb3IgMjU1IGFzIGEgY29tcHJlc3Npb24gZmxhZyBmb3IgaVRYdCBjaHVuay4AtFURAEcAAABObyBjb21wcmVzc2lvbiBmbGFnIGluIHRoZSBpVFh0IGNodW5rLgAABFYRACYAAABmZEFUIGNodW5rIHNob3J0ZXIgdGhhbiA0IGJ5dGVzVW5leHBlY3RlZCByZXN0YXJ0IG9mICBjaHVuayBzZXF1ZW5jZVNWEQAWAAAAaVYRAA8AAABDaHVuayBsZW5ndGggd3Jvbmc6IIhWEQAUAAAAVW5yZWNvZ25pemVkIGNyaXRpY2FsIGNodW5rOiAAAACkVhEAHQAAAEJhZCBnYW1tYSB2YWx1ZS5saW1pdHMgYXJlIGV4Y2VlZGVkQmFkWmxpYkhlYWRlckluc3VmZmljaWVudElucHV0SW52YWxpZEJsb2NrVHlwZUludmFsaWRVbmNvbXByZXNzZWRCbG9ja0xlbmd0aEludmFsaWRIbGl0SW52YWxpZEhkaXN0SW52YWxpZENvZGVMZW5ndGhSZXBlYXRCYWRDb2RlTGVuZ3RoSHVmZm1hblRyZWVCYWRMaXRlcmFsTGVuZ3RoSHVmZm1hblRyZWVCYWREaXN0YW5jZUh1ZmZtYW5UcmVlSW52YWxpZExpdGVyYWxMZW5ndGhDb2RlSW52YWxpZERpc3RhbmNlQ29kZUlucHV0U3RhcnRzV2l0aFJ1bkRpc3RhbmNlVG9vRmFyQmFja1dyb25nQ2hlY2tzdW1FeHRyYUlucHV0MAAAAAEnEAAqAAAAHgEA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dgMAABkAAABrIRAAYgAAAHcDAAAZAAAAayEQAGIAAAB4AwAAGQAAAGshEABiAAAAeQMAABkAAABrIRAAYgAAANQDAAARAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAABAAIAAwAEAAUABgAHAAgACQD//////////////////woACwAMAA0ADgAPAP////////////////////////////////////////////////////////////////////8KAAsADAANAA4ADwD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AABAAIAAwAEAAUABgAHAAgACQAP//////////////////oACwAMAA0ADgAPAA/////////////////////////////////////////////////////////////////////6AAsADAANAA4ADwAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2shEABiAAAAswEAABoAAABrIRAAYgAAAAACAAATAAAAayEQAGIAAAAFAgAAMwAAAGshEABiAAAACQIAAD4AAABrIRAAYgAAAA8CAAA6AAAAayEQAGIAAACrAQAAPQAAAGshEABiAAAApgEAAEUAAAAgYXQgbGluZSAAAABCCRAAYwAAAPcBAAAhAAAAQgkQAGMAAAD7AQAADAAAACBjb2x1bW4gQgkQAGMAAAACAgAAIQAAAEIJEABjAAAACwIAACoAAABCCRAAYwAAAA8CAAAsAAAAQgkQAGMAAAAUAgAACQAAAGluZi1pbmZOYU4AALQAAAAMAAAABAAAAIkBAACKAQAA0gEAQZiexgAL5Q0BAAAAuAAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkAwhUQAEsAAAAFCwAADgAAAPYQEABPAAAAPAYAABQAAAD2EBAATwAAADwGAAAhAAAA9hAQAE8AAAAwBgAAFAAAAPYQEABPAAAAMAYAACEAAACtAAAADAAAAAQAAACuAAAArQAAAAwAAAAEAAAArwAAAK4AAACojxEAsAAAALEAAACyAAAAsAAAALMAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmlzX2NoYXJfYm91bmRhcnkobmV3X2xlbilFcnJvcigsIGxpbmU6ICwgY29sdW1uOiAUkBEABgAAABqQEQAIAAAAIpARAAoAAABeBxIAAQAAAGludmFsaWQgdmFsdWU6IABMkBEADwAAABqTEQALAAAARU9GIHdoaWxlIHBhcnNpbmcgYSBsaXN0RU9GIHdoaWxlIHBhcnNpbmcgYW4gb2JqZWN0RU9GIHdoaWxlIHBhcnNpbmcgYSBzdHJpbmdFT0Ygd2hpbGUgcGFyc2luZyBhIHZhbHVlZXhwZWN0ZWQgYDpgZXhwZWN0ZWQgYCxgIG9yIGBdYGV4cGVjdGVkIGAsYCBvciBgfWBleHBlY3RlZCBpZGVudGV4cGVjdGVkIHZhbHVlZXhwZWN0ZWQgYCJgaW52YWxpZCBlc2NhcGVpbnZhbGlkIG51bWJlcm51bWJlciBvdXQgb2YgcmFuZ2VpbnZhbGlkIHVuaWNvZGUgY29kZSBwb2ludGNvbnRyb2wgY2hhcmFjdGVyIChcdTAwMDAtXHUwMDFGKSBmb3VuZCB3aGlsZSBwYXJzaW5nIGEgc3RyaW5na2V5IG11c3QgYmUgYSBzdHJpbmdpbnZhbGlkIHZhbHVlOiBleHBlY3RlZCBrZXkgdG8gYmUgYSBudW1iZXIgaW4gcXVvdGVzZmxvYXQga2V5IG11c3QgYmUgZmluaXRlIChnb3QgTmFOIG9yICsvLWluZilsb25lIGxlYWRpbmcgc3Vycm9nYXRlIGluIGhleCBlc2NhcGV0cmFpbGluZyBjb21tYXRyYWlsaW5nIGNoYXJhY3RlcnN1bmV4cGVjdGVkIGVuZCBvZiBoZXggZXNjYXBlcmVjdXJzaW9uIGxpbWl0IGV4Y2VlZGVkAQAAAAAAAAB4jhEACQAAAKSOEQAIAAAAayEQAGIAAABcAgAAEwAAAGshEABiAAAAbgIAABkAAABmbG9hdGluZyBwb2ludCBgYAAAANiSEQAQAAAA6JIRAAEAAAD2EBAATwAAAL0EAAAkAAAAaW52YWxpZCB0eXBlOiAsIGV4cGVjdGVkIAAAAAyTEQAOAAAAGpMRAAsAAADFIxAAZwAAADUAAAAOAAAAZgsQAE4AAAAjCAAAEQAAAD8OEABsAAAAOQAAAAkAAAB2JRAAXwAAAKUGAABLAAAAdiUQAF8AAACrBgAASwAAAHYlEABfAAAAqwYAADEAAAB2JRAAXwAAAKUGAAAxAAAAdiUQAF8AAACZBgAASQAAAHYlEABfAAAAmQYAADEAAAB2JRAAXwAAANYGAABLAAAAdiUQAF8AAADdBgAASwAAAHYlEABfAAAA3QYAADEAAAB2JRAAXwAAANYGAAAxAAAAdiUQAF8AAADJBgAATQAAAHYlEABfAAAAyQYAADUAAAB2JRAAXwAAALsGAABNAAAAdiUQAF8AAAC7BgAANQAAAHYlEABfAAAAjQYAAEkAAAB2JRAAXwAAAI0GAAAxAAAAdiUQAF8AAADFBwAAKgAAAHYlEABfAAAAogcAABUAAAB2JRAAXwAAAKwHAAAhAAAAdiUQAF8AAAC6BwAAIgAAAHYlEABfAAAAsQcAACEAAAB2JRAAXwAAAAcEAAAdAAAAdiUQAF8AAAAaBAAAGgAAAHYlEABfAAAAHAQAAAkAAAB2JRAAXwAAABsEAAAxAAAAdiUQAF8AAAATBAAAEQAAAHYlEABfAAAAEgQAAC0AAAC7AAAACAAAAAQAAAC8AAAAUmVhZGluZyBmcm9tICZbdThdIGNhbid0IGZhaWwgYW5kIHRoZSBjaHVuayBpcyBjb21wbGV0ZQB2JRAAXwAAAA0EAAAWAAAAYXNzZXJ0aW9uIGZhaWxlZDogY29tcGxleGl0eSA8PSAyAAAAdiUQAF8AAADTBQAACQAAAHYlEABfAAAA1wUAABwAAAAAAQIDBgQFBgYGBgYGBgYHdiUQAF8AAADhBQAAGQAAAHVua25vd24gdG9rZW46IADUlREADwAAAHYlEABfAAAAAwYAABYAAACfAEGIrMYACwKlkQBBlKzGAAsDrZSMAEGgrMYAC/VOsJuMhwAAAAAAAAAAtJ2NhoIAAAAAAAAA/v7z5sSxmYyFgoEABQcLEyNDAAEECAUCAwYJDA0KBwsODwAAdiUQAF8AAAAVBgAADQAAAHYlEABfAAAAsQQAABEAAAB2JRAAXwAAALMEAAARAAAAdiUQAF8AAAC1BAAAEQAAAE5vbi1rZXlmcmFtZSBmcmFtZXMAdiUQAF8AAADFBAAAJQAAAHYlEABfAAAAcwUAABsAAAB2JRAAXwAAAHUFAAAxAAAAdiUQAF8AAAB5BQAANwAAAHYlEABfAAAAgQUAAFYAAAB2JRAAXwAAAIEFAAAvAAAAdiUQAF8AAAB5BQAAKwAAAHYlEABfAAAAKAYAACYAAAB2JRAAXwAAACoGAAAXAAAAdiUQAF8AAAAvBgAAFQAAAAUAAAAHAAAAdiUQAF8AAABXBgAAIAAAAHYlEABfAAAAXgYAAC4AAAB2JRAAXwAAAF4GAAAmAAAAdiUQAF8AAABqBgAAHQAAAHYlEABfAAAAQQYAACoAAAB2JRAAXwAAAEIGAAAbAAAAdiUQAF8AAABNBgAAGQAAAHYlEABfAAAAvAUAAEoAAAB2JRAAXwAAAL4FAAA1AAAAdiUQAF8AAAC+BQAAJQAAAHYlEABfAAAAvAUAADoAAABWUDggaW50ZXItcHJlZGljdGlvboQBkQACA5wBgIGjAoKDgAN2JRAAXwAAADUFAAAvAAAAgAHnAIECeAGCAzACBAZZA4MFcwSFhnEFhAd4BocImAeIiXAIgAGYAIECswGCA0ACBAZ+A4MFqgSFhnYFhAcuBocIRgeIiV8IgAGvAIECRQGCA48CBAZQA4MFVQSFhlIFhAdIBocImweIiWcIgAE4AIECOgGCAwoCBAarA4MF2gSFhr0FhAcRBocIDQeIiZgIgAGQAIECRwGCAwoCBAYmA4MFqwSFhtUFhAeQBocIIgeIiRoIgAFyAIECGgGCAxECBAajA4MFLASFhsMFhAcVBocICgeIia0IgAF5AIECGAGCA1ACBAbDA4MFGgSFhj4FhAcsBocIQAeIiVUIgAGqAIECLgGCAzcCBAYTA4MFiASFhqAFhAchBocIzgeIiUcIgAE/AIECFAGCAwgCBAZyA4MFcgSFhtAFhAcMBocICQeIieIIgAFRAIECKAGCAwsCBAZgA4MFtgSFhlQFhAcdBocIEAeIiSQIgAGGAIECtwGCA1kCBAaJA4MFYgSFhmUFhAdqBocIpQeIiZQIgAFIAIECuwGCA2QCBAaCA4MFnQSFhm8FhAcgBocISweIiVAIgAFCAIECZgGCA6cCBAZjA4MFSgSFhj4FhAcoBocI6geIiYAIgAEpAIECNQGCAwkCBAayA4MF8QSFho0FhAcaBocICAeIiWsIgAFoAIECTwGCAwwCBAYbA4MF2QSFhv8FhAdXBocIEQeIiQcIgAFKAIECKwGCAxoCBAaSA4MFSQSFhqYFhAcxBocIFweIiZ0IgAFBAIECJgGCA2kCBAagA4MFMwSFhjQFhAcfBocIcweIiYAIgAFXAIECRAGCA0cCBAYsA4MFcgSFhjMFhAcPBocIugeIiRcIgAEvAIECKQGCAw4CBAZuA4MFtgSFhrcFhAcVBocIEQeIicIIgAFCAIECLQGCAxkCBAZmA4MFxQSFhr0FhAcXBocIEgeIiRYIgAFYAIECWAGCA5MCBAaWA4MFKgSFhi4FhActBocIxAeIic0IgAErAIECYQGCA7cCBAZ1A4MFVQSFhiYFhAcjBocIsweIiT0IgAEnAIECNQGCA8gCBAZXA4MFGgSFhhUFhAcrBocI6AeIiasIgAE4AIECIgGCAzMCBAZoA4MFcgSFhmYFhAcdBocIXQeIiU0IgAFrAIECNgGCAyACBAYaA4MFMwSFhgEFhAdRBocIKweIiR8IgAEnAIECHAGCA1UCBAarA4MFOgSFhqUFhAdaBocIYgeIiUAIgAEiAIECFgGCA3QCBAbOA4MFFwSFhiIFhAcrBocIpgeIiUkIgAFEAIECGQGCA2oCBAYWA4MFQASFhqsFhAckBocI4QeIiXIIgAEiAIECEwGCAxUCBAZmA4MFhASFhrwFhAcQBocITAeIiXwIgAE+AIECEgGCA04CBAZfA4MFVQSFhjkFhAcyBocIMAeIiTMIgAHBAIECZQGCAyMCBAafA4MF1wSFhm8FhAdZBocILgeIiW8IgAE8AIEClAGCAx8CBAasA4MF2wSFhuQFhAcVBocIEgeIiW8IgAFwAIECcQGCA00CBAZVA4MFswSFhv8FhAcmBocIeAeIiXIIgAEoAIECKgGCAwECBAbEA4MF9QSFhtEFhAcKBocIGQeIiW0IgAFkAIECUAGCAwgCBAYrA4MFmgSFhgEFhAczBocIGgeIiUcIgAFYAIECKwGCAx0CBAaMA4MFpgSFhtUFhAclBocIKweIiZoIgAE9AIECPwGCAx4CBAabA4MFQwSFhi0FhAdEBocIAQeIidEIgAGOAIECTgGCA04CBAYQA4MF/wSFhoAFhAciBocIxQeIiasIgAEpAIECKAGCAwUCBAZmA4MF0wSFhrcFhAcEBocIAQeIid0IgAEzAIECMgGCAxECBAaoA4MF0QSFhsAFhAcXBocIGQeIiVIIgAF9AIECYgGCAyoCBAZYA4MFaASFhlUFhAd1BocIrweIiVIIgAFfAIECVAGCAzUCBAZZA4MFgASFhmQFhAdxBocIZQeIiS0IgAFLAIECTwGCA3sCBAYvA4MFMwSFhoAFhAdRBocIqweIiQEIgAE5AIECEQGCAwUCBAZHA4MFZgSFhjkFhAc1BocIKQeIiTEIgAFzAIECFQGCAwICBAYKA4MFZgSFhv8FhAemBocIFweIiQYIgAEmAIECIQGCAw0CBAZ5A4MFOQSFhkkFhAcaBocIAQeIiVUIgAEpAIECCgGCA0MCBAaKA4MFTQSFhm4FhAdaBocILweIiXIIgAFlAIECHQGCAxACBAYKA4MFVQSFhoAFhAdlBocIxAeIiRoIgAE5AIECEgGCAwoCBAZmA4MFZgSFhtUFhAciBocIFAeIiSsIgAF1AIECFAGCAw8CBAYkA4MFowSFhoAFhAdEBocIAQeIiRoIgAGKAIECHwGCAyQCBAarA4MFGwSFhqYFhAcmBocILAeIieUIgAFDAIECVwGCAzoCBAapA4MFUgSFhnMFhAcaBocIOweIibMIgAE/AIECOwGCA1oCBAa0A4MFOwSFhqYFhAddBocISQeIiZoIgAEoAIECKAGCAxUCBAZ0A4MFjwSFhtEFhAciBocIJweIia8IgAE5AIECLgGCAxYCBAYYA4MFgASFhgEFhAc2BocIEQeIiSUIgAEvAIECDwGCAxACBAa3A4MFIgSFht8FhAcxBocILQeIibcIgAEuAIECEQGCAyECBAa3A4MFBgSFhmIFhAcPBocIIAeIibcIgAFBAIECIAGCA0kCBAZzA4MFHASFhoAFhAcXBocIgAeIic0IgAEoAIECAwGCAwkCBAZzA4MFMwSFhsAFhAcSBocIBgeIid8IgAFXAIECJQGCAwkCBAZzA4MFOwSFhk0FhAdABocIFQeIiS8IgAFoAIECNwGCAywCBAbaA4MFCQSFhjYFhAc1BocIggeIieIIgAFAAIECWgGCA0YCBAbNA4MFKASFhikFhAcXBocIGgeIiTkIgAE2AIECOQGCA3ACBAa4A4MFBQSFhikFhAcmBocIpgeIidUIgAEeAIECIgGCAxoCBAaFA4MFmASFhnQFhAcKBocIIAeIiYYIgAFLAIECIAGCAwwCBAYzA4MFwASFhv8FhAegBocIKweIiTMIgAEnAIECEwGCAzUCBAbdA4MFGgSFhnIFhAcgBocISQeIif8IgAEfAIECCQGCA0ECBAbqA4MFAgSFhg8FhAcBBocIdgeIiUkIgAFYAIECHwGCAyMCBAZDA4MFZgSFhlUFhAc3BocIugeIiVUIgAE4AIECFQGCAxcCBAZvA4MFOwSFhs0FhActBocIJQeIicAIgAE3AIECJgGCA0YCBAZ8A4MFSQSFhmYFhAcBBocIIgeIiWIIgAFmAIECPQGCA0cCBAYlA4MFIgSFhjUFhAcfBocI8weIicAIgAFFAIECPAGCA0cCBAYmA4MFSQSFhncFhAccBocI3geIiSUIgAFEAIECLQGCA4ACBAYiA4MFAQSFhi8FhAcLBocI9QeIiasIgAE+AIECEQGCAxMCBAZGA4MFkgSFhlUFhAc3BocIPgeIiUYIgAFLAIECDwGCAwkCBAYJA4MFQASFhv8FhAe4BocIdweIiRAIgAElAIECKwGCAyUCBAaaA4MFZASFhqMFhAdVBocIoAeIiQEIgAE/AIECCQGCA1wCBAaIA4MFHASFhkAFhAcgBocIyQeIiVUIgAFWAIECBgGCAxwCBAYFA4MFQASFhv8FhAcZBocI+AeIiQEIgAE4AIECCAGCAxECBAaEA4MFiQSFhv8FhAc3BocIdAeIiYAIgAE6AIECDwGCAxQCBAZSA4MFhwSFhjkFhAcaBocIeQeIiSgIgAGkAIECMgGCAx8CBAaJA4MFmgSFhoUFhAcZBocIIweIidoIgAEzAIECZwGCAywCBAaDA4MFgwSFhnsFhAcfBocIBgeIiZ4IgAFWAIECKAGCA0ACBAaHA4MFlASFhuAFhActBocItweIiYAIgAEWAIECGgGCAxECBAaDA4MF8ASFhpoFhAcOBocIAQeIidEIgAFTAIECDAGCAw0CBAY2A4MFwASFhv8FhAdEBocILweIiRwIgAEtAIECEAGCAxUCBAZbA4MFQASFht4FhAcHBocIAQeIicUIgAE4AIECFQGCAycCBAabA4MFPASFhooFhAcXBocIZgeIidUIgAFVAIECGgGCA1UCBAZVA4MFgASFhoAFhAcgBocIkgeIiasIgAESAIECCwGCAwcCBAY/A4MFkASFhqsFhAcEBocIBAeIifYIgAEjAIECGwGCAwoCBAaSA4MFrgSFhqsFhAcMBocIGgeIiYAIgAG+AIECUAGCAyMCBAZjA4MFtASFhlAFhAd+BocINgeIiS0IgAFVAIECfgGCAy8CBAZXA4MFsASFhjMFhAcpBocIFAeIiSAIgAFlAIECSwGCA4ACBAaLA4MFdgSFhpIFhAd0BocIgAeIiVUIgAE4AIECKQGCAw8CBAawA4MF7ASFhlUFhAclBocICQeIiT4IgAGSAIECJAGCAxMCBAYeA4MFqwSFhv8FhAdhBocIGweIiRQIgAFHAIECHgGCAxECBAZ3A4MFdgSFhv8FhAcRBocIEgeIiYoIgAFlAIECJgGCAzwCBAaKA4MFNwSFhkYFhAcrBocIGgeIiY4IgAGKAIECLQGCAz0CBAY+A4MF2wSFhgEFhAdRBocIvAeIiUAIgAEgAIECKQGCAxQCBAZ1A4MFlwSFho4FhAcUBocIFQeIiaMIgAFwAIECEwGCAwwCBAY9A4MFwwSFhoAFhAcwBocIBAeIiRgIdiUQAF8AAAA/BQAAJQAAAIABjgCBAnIBgoO3AnYlEABfAAAAUQUAABEAAAB2JRAAXwAAAFIFAAARAAAAdiUQAF8AAABTBQAAEQAAAP///////////////////////////////////////////7D2////////////3/H8///////////5/f3////////////0/P//////////6v7+///////////9///////////////2/v//////////7/3+///////////+//7////////////4/v//////////+//+///////////////////////////9/v//////////+/7+///////////+//7////////////+/f/+////////+v/+//7////////+/////////////////////////////////////////////////////////9n/////////////4fzx/f///v/////q+vH6/f/9/v/////+////////////3/7+///////////u/f7+///////////4/v//////////+f7////////////////////////////9////////////9/7////////////////////////////9/v///////////P/////////////////////////////+/v///////////f/////////////////////////////+/f//////////+v/////////////+/////////////////////////////////////////////////////////7r7+v//////////6vv0/v/////////7+/P9/v/+///////9/v//////////7P3+///////////7/f3+/v/////////+/v///////////v7+///////////////////////////+/////////////v7////////////+/////////////////////////////v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////j/////////////+v78/v/////////4/vn9///////////9/f//////////9v39///////////8/vv+/v/////////+/P//////////+P79///////////9//7+///////////7/v//////////9fv+///////////9/f7////////////7/f///////////P3+/////////////v/////////////8////////////+f/+//////////////7//////////////f//////////+v///////////////////////////////////////////v///////////////////////////3YlEABfAAAAVwcAABcAAACLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAKIAYED/gIEBv8DggXkBIOE2wUHCIAGhYaABwkKgAiHiIAJiYqACosBvQCAAoEBgQPyAgQG/wOCBeMEg4TVBQcI/waFhtsHCQqACIeIgAmJioAKiwFqAIACfgGBA+MCBAb8A4IF1gSDhNEFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJiAYED+AIEBv8DggXsBIOE4gUHCP8GhYb/BwkKgAiHiIAJiYqACosBtQCAAoUBgQPuAgQG/gOCBd0Eg4TqBQcI/waFhpoHCQqACIeIgAmJioAKiwFOAIAChgGBA8oCBAb3A4IFxgSDhLQFBwj/BoWG2wcJCoAIh4iACYmKgAqLAQEAgAK5AYED+QIEBv8DggXzBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBuACAApYBgQP3AgQG/wOCBewEg4TgBQcIgAaFhoAHCQqACIeIgAmJioAKiwFNAIACbgGBA9gCBAb/A4IF7ASDhOYFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAJlAYED+wIEBv8DggXxBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBqgCAAosBgQPxAgQG/AOCBewEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwElAIACdAGBA8QCBAbzA4IF5ASDhP8FBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgALMAYED/gIEBv8DggX1BIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBzwCAAqABgQP6AgQG/wOCBe4Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwFmAIACZwGBA+cCBAb/A4IF0wSDhKsFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKYAYED/AIEBv8DggXwBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBsQCAAocBgQPzAgQG/wOCBeoEg4ThBQcIgAaFhoAHCQqACIeIgAmJioAKiwFQAIACgQGBA9MCBAb/A4IFwgSDhOAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9gCAAgEBgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwH/AIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcYAgAIjAYED7QIEBt8DggXBBIOEuwUHCKIGhYagBwkKkQiHiJsJiYo+CosBgwCAAi0BgQPGAgQG3QOCBawEg4SwBQcI3AaFhp0HCQr8CIeI3QmJigEKiwFEAIACLwGBA5ICBAbQA4IFlQSDhKcFBwjdBoWGogcJCv8Ih4jfCYmKgAqLAQEAgAKVAYED8QIEBv8DggXdBIOE4AUHCP8GhYb/BwkKgAiHiIAJiYqACosBuACAAo0BgQPqAgQG/QOCBd4Eg4TcBQcI/waFhscHCQqACIeIgAmJioAKiwFRAIACYwGBA7UCBAbyA4IFsASDhL4FBwj5BoWGygcJCv8Ih4j/CYmKgAqLAQEAgAKBAYED6AIEBv0DggXWBIOExQUHCPIGhYbEBwkK/wiHiP8JiYqACosBYwCAAnkBgQPSAgQG+gOCBckEg4TGBQcI/waFhsoHCQqACIeIgAmJioAKiwEXAIACWwGBA6MCBAbyA4IFqgSDhLsFBwj3BoWG0gcJCv8Ih4j/CYmKgAqLAQEAgALIAYED9gIEBv8DggXqBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBbQCAArIBgQPxAgQG/wOCBecEg4T1BQcI/waFhv8HCQqACIeIgAmJioAKiwEsAIACggGBA8kCBAb9A4IFzQSDhMAFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAKEAYED7wIEBvsDggXbBIOE0QUHCP8GhYalBwkKgAiHiIAJiYqACosBXgCAAogBgQPhAgQG+wOCBdoEg4S+BQcI/waFhv8HCQqACIeIgAmJioAKiwEWAIACZAGBA64CBAb1A4IFugSDhKEFBwj/BoWGxwcJCoAIh4iACYmKgAqLAQEAgAK2AYED+QIEBv8DggXoBIOE6wUHCIAGhYaABwkKgAiHiIAJiYqACosBfACAAo8BgQPxAgQG/wOCBeMEg4TqBQcIgAaFhoAHCQqACIeIgAmJioAKiwEjAIACTQGBA7UCBAb7A4IFwQSDhNMFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAKdAYED9wIEBv8DggXsBIOE5wUHCP8GhYb/BwkKgAiHiIAJiYqACosBeQCAAo0BgQPrAgQG/wOCBeEEg4TjBQcI/waFhv8HCQqACIeIgAmJioAKiwEtAIACYwGBA7wCBAb7A4IFwwSDhNkFBwj/BoWG4AcJCoAIh4iACYmKgAqLAQEAgAIBAYED+wIEBv8DggXVBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosBywCAAgEBgQP4AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGJAIACAQGBA7ECBAb/A4IF4ASDhP8FBwiABoWGgAcJCoAIh4iACYmKgAqLAf0AgAIJAYED+AIEBvsDggXPBIOE0AUHCP8GhYbABwkKgAiHiIAJiYqACosBrwCAAg0BgQPgAgQG8wOCBcEEg4S5BQcI+QaFhsYHCQr/CIeI/wmJioAKiwFJAIACEQGBA6sCBAbdA4IFoQSDhLMFBwjsBoWGpwcJCv8Ih4jqCYmKgAqLAQEAgAJfAYED9wIEBv0DggXUBIOEtwUHCP8GhYb/BwkKgAiHiIAJiYqACosB7wCAAloBgQP0AgQG+gOCBdMEg4TRBQcI/waFhv8HCQqACIeIgAmJioAKiwGbAIACTQGBA8MCBAb4A4IFvASDhMMFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAIYAYED7wIEBvsDggXaBIOE2wUHCP8GhYbNBwkKgAiHiIAJiYqACosByQCAAjMBgQPbAgQG/wOCBcQEg4S6BQcIgAaFhoAHCQqACIeIgAmJioAKiwFFAIACLgGBA74CBAbvA4IFyQSDhNoFBwj/BoWG5AcJCoAIh4iACYmKgAqLAQEAgAK/AYED+wIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB3wCAAqUBgQP5AgQG/wOCBdUEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGNAIACfAGBA/gCBAb/A4IF/wSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAIQAYED+AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBvgCAAiQBgQPmAgQG/wOCBewEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGVAIACAQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgALiAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9wCAAsABgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwHwAIACgAGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAQEAgAKGAYED/AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB1QCAAj4BgQP6AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwE3AIACXQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAcoAgAIYAYED1QIEBusDggW6BIOEvwUHCNwGhYagBwkK8AiHiK8JiYr/CosBfgCAAiYBgQO2AgQG6AOCBakEg4S4BQcI5AaFhq4HCQr/CIeIuwmJioAKiwE9AIACLgGBA4oCBAbbA4IFlwSDhLIFBwjwBoWGqgcJCv8Ih4jYCYmKgAqLAQEAgAJwAYED5gIEBvoDggXHBIOEvwUHCPcGhYafBwkK/wiHiP8JiYqACosBpgCAAm0BgQPkAgQG/AOCBdMEg4TXBQcI/waFhq4HCQqACIeIgAmJioAKiwEnAIACTQGBA6ICBAboA4IFrASDhLQFBwj1BoWGsgcJCv8Ih4j/CYmKgAqLAQEAgAI0AYED3AIEBvYDggXGBIOExwUHCPkGhYbcBwkK/wiHiP8JiYqACosBfACAAkoBgQO/AgQG8wOCBbcEg4TBBQcI+gaFht0HCQr/CIeI/wmJioAKiwEYAIACRwGBA4ICBAbbA4IFmgSDhKoFBwjzBoWGtgcJCv8Ih4j/CYmKgAqLAQEAgAK2AYED4QIEBvkDggXbBIOE8AUHCP8GhYbgBwkKgAiHiIAJiYqACosBlQCAApYBgQPiAgQG/AOCBdgEg4TNBQcI/waFhqsHCQqACIeIgAmJioAKiwEcAIACbAGBA6oCBAbyA4IFtwSDhMIFBwj+BoWG3wcJCv8Ih4j/CYmKgAqLAQEAgAJRAYED5gIEBvwDggXMBIOEywUHCP8GhYbABwkKgAiHiIAJiYqACosBewCAAmYBgQPRAgQG9wOCBbwEg4TEBQcI/waFhukHCQqACIeIgAmJioAKiwEUAIACXwGBA5kCBAbzA4IFpASDhK0FBwj/BoWGywcJCoAIh4iACYmKgAqLAQEAgALeAYED+AIEBv8DggXYBIOE1QUHCIAGhYaABwkKgAiHiIAJiYqACosBqACAAq8BgQP2AgQG/AOCBesEg4TNBQcI/waFhv8HCQqACIeIgAmJioAKiwEvAIACdAGBA9cCBAb/A4IF0wSDhNQFBwj/BoWG/wcJCoAIh4iACYmKgAqLAQEAgAJ5AYED7AIEBv0DggXUBIOE1gUHCP8GhYb/BwkKgAiHiIAJiYqACosBjQCAAlQBgQPVAgQG/AOCBckEg4TKBQcI/waFhtsHCQqACIeIgAmJioAKiwEqAIACUAGBA6ACBAbwA4IFogSDhLkFBwj/BoWGzQcJCoAIh4iACYmKgAqLAQEAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB9ACAAgEBgQP/AgQG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AAAA8gEAAAAAAAABAAAAAQAAAPMBAAAAAAAABAAAAAQAAACqAQAAQ2ljcHByaW1hcmllc3RyYW5zZmVybWF0cml4ZnVsbF9yYW5nZURpbWVuc2lvbkVycm9ySW5zdWZmaWNpZW50TWVtb3J5AAAAAAAAACAAAAAIAAAA9AEAAAAAAAAEAAAABAAAAPUBAABsaW1pdHNzdXBwb3J0ZWQA9gEAAAwAAAAEAAAA9wEAAFBhcmFtZXRlckVycm9yQ2FwYWNpdHlPdmVyZmxvdwAAAAAAAAQAAAAEAAAA+AEAAEFsbG9jRXJybGF5b3V0Q3NwbGF0KGNlbnRlcjogAAAATtURAA8AAABv0xEACwAAAHrTEQAHAAAAgdMRAAoAAACL0xEADgAAAF4HEgABAAAARXhhY3ROYW1lUGF0aEV4dGVuc2lvblVua25vd25pbnZhbGlkIHNlZWsgdG8gYSBuZWdhdGl2ZSBvciBvdmVyZmxvd2luZyBwb3NpdGlvbgCt1REAMgAAABQAAACmJhAAWgAAAD0AAAAkAAAARW1wdHlJbnZhbGlkRGlnaXRQb3NPdmVyZmxvd05lZ092ZXJmbG93WmVybwAAAAAABAAAAAQAAAD5AQAAVW5zdXBwb3J0ZWRFcnJvclBuZ0pwZWdHaWZXZWJQUG5tVGlmZlRnYURkc0JtcEljb0hkck9wZW5FeHJGYXJiZmVsZEF2aWZRb2lQY3gAAAAAAAAABAAAAAQAAAD6AQAAUGFyc2VJbnRFcnJvckE4TDFMYTFSZ2IxUmdiYTFMMkxhMlJnYjJSZ2JhMkw0TGE0UmdiNFJnYmE0UmdiNXgxTDhMYThSZ2I4UmdiYThMMTZMYTE2UmdiMTZSZ2JhMTZCZ3I4QmdyYThSZ2IzMkZSZ2JhMzJGQ215azhDbXlrMTZMaW1pdFN1cHBvcnREaW1lbnNpb25NaXNtYXRjaEZhaWxlZEFscmVhZHkAAAAAAAAEAAAABAAAAPsBAABSZ2JDaWNwUmVxdWlyZWRHZW5lcmljTm9Nb3JlRGF0YQAAAAAEAAAAAQAAAPwBAABDaWNwTWlzbWF0Y2hleHBlY3RlZGZvdW5kAAAAAAAAAAgAAAAEAAAAxwAAAAAAAAAIAAAABAAAAHAAAADHAAAAoNcRALAAAADIAAAAsgAAALAAAACzAAAA/QEAACgAAAAIAAAA/gEAAP0BAAAoAAAACAAAAP8BAAD+AQAA3NcRAAACAAABAgAAAgIAAAMCAAAEAgAAAAAAAAEAAAABAAAABQIAAAAAAAABAAAAAQAAAAYCAAAFAgAAGNgRAAcCAAAIAgAACQIAAAcCAAAKAgAAlQEAAAwAAAAEAAAACwIAAJUBAAAMAAAABAAAANAAAAALAgAAVNgRALAAAADRAAAAsgAAALAAAACzAAAADAIAABgAAAAEAAAADQIAAAwCAAAYAAAABAAAAA4CAAANAgAAkNgRAA8CAAAQAgAAsgAAAA8CAACzAAAAEQIAACgAAAAEAAAA4wAAABECAAAoAAAABAAAAOQAAADjAAAAzNgRAOUAAADtAAAA5wAAAOgAAADpAAAA8AAAACQAAAAEAAAA4wAAAPAAAAAkAAAABAAAAOQAAADjAAAACNkRAOUAAADxAAAA5wAAAOgAAADpAAAAEgIAAEgAAAAIAAAAEwIAABICAABIAAAACAAAABQCAAATAgAARNkRABUCAAAWAgAAFwIAABgCAAAZAgAAGgIAADQAAAAEAAAA4wAAABoCAAA0AAAABAAAAOQAAADjAAAAgNkRAOUAAAAbAgAA5wAAAOgAAADpAAAAHAIAACAAAAAEAAAA4wAAABwCAAAgAAAABAAAAOQAAADjAAAAvNkRAOUAAAAdAgAA5wAAAOgAAADpAAAA7gAAACQAAAAEAAAA4wAAAO4AAAAkAAAABAAAAOQAAADjAAAA+NkRAOUAAADvAAAA5wAAAOgAAADpAAAAHgIAAB8CAAAgAgAAIQIAACICAAAIAQAA/QAAACMCAAAkAgAAJQIAACYCAAAnAgAAKAIAAP0AAAD+AAAAKQIAACoCAAArAgAAAgEAAPwAAAD9AAAA9wAAACwCAAAtAgAALgIAABcBAAD8AAAA/QAAAC8CAAAwAgAAMQIAADICAAATAQAADgEAAP0AAAAzAgAANAIAADUCAAA2AgAANwIAADgCAAD9AAAAAAAAAAQAAAAEAAAAOQIAAGNvbnRleHQAOgIAAAwAAAAEAAAAywAAAHNvdXJjZQAAOgIAAAwAAAAEAAAAygAAADoCAAAMAAAABAAAAMsAAADKAAAADNsRADsCAADNAAAAsgAAADwCAACzAAAAY29ycnVwdCBkZWZsYXRlIHN0cmVhbUZhaWxlZENhbm5vdE1ha2VQcm9ncmVzc0JhZFBhcmFtQWRsZXIzMk1pc21hdGNoRmFpbGVkRG9uZU5lZWRzTW9yZUlucHV0SGFzTW9yZU91dHB1dENvbG9yQ29sb3JMYXlvdXRDb2xvcnNwYWNlQ2ljcEZvcm1hdEdlbmVyaWNGZWF0dXJlAAAAAAQAAAAEAAAAKAEAACkBAAA9AgAAU1JnYlVuc3BlY2lmaWVkUmdiTVJnYkJCdDYwMVJnYjI0MG1HZW5lcmljRmlsbVJnYjIwMjBYeXpTbXB0ZVJwNDMxU21wdGVScDQzMkluZHVzdHJ5MjIAAPYQEABPAAAAaQQAACQAAAD2EBAATwAAAM4BAAA3AAAAYXNzZXJ0aW9uIGZhaWxlZDogc2NhbGVzLnguaXNfZmluaXRlKCkgJiYgc2NhbGVzLnkuaXNfZmluaXRlKCkgJiYgc2NhbGVzLnouaXNfZmluaXRlKCkAALIFEAAXAAAA8AAAAAkAAACyBRAAFwAAAPcAAAAVAAAAsgUQABcAAAD4AAAAFwAAALIFEAAXAAAABQEAABYAAACyBRAAFwAAABIBAAAWAAAAsgUQABcAAAAfAQAAFgAAALIFEAAXAAAAGAEAACUAAACyBRAAFwAAABkBAAAkAAAAsgUQABcAAAALAQAAJQAAALIFEAAXAAAADAEAACQAAACyBRAAFwAAAP0AAAAlAAAAsgUQABcAAAD+AAAAJAAAALIFEAAXAAAA4gAAACEAAACyBRAAFwAAANgAAAAhAAAAsgUQABcAAAAqAQAAFgAAALIFEAAXAAAAJgEAABYAAACyBRAAFwAAAC4BAAAXAAAAsgUQABcAAAC6AAAAKAAAALIFEAAXAAAAvgAAAC8AAACyBRAAFwAAADYBAAARAAAAsgUQABcAAAA6AQAAEQAAALIFEAAXAAAAPgEAABEAAACyBRAAFwAAAH4BAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogdG90YWxfY292Lnh4KCkuaXNfZmluaXRlKCkgJiYgdG90YWxfY292Lnl5KCkuaXNfZmluaXRlKCkgJiYKICAgIHRvdGFsX2Nvdi56eigpLmlzX2Zpbml0ZSgpdAUQABcAAABjAQAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IHRvdGFsX2Nvdi54eSgpLmlzX2Zpbml0ZSgpICYmIHRvdGFsX2Nvdi54eigpLmlzX2Zpbml0ZSgpICYmCiAgICB0b3RhbF9jb3YueXooKS5pc19maW5pdGUoKXQFEAAXAAAAZAEAAAkAAAB0BRAAFwAAAGgBAAAJAAAAdAUQABcAAACXAQAAFQAAAHQFEAAXAAAAmAEAABcAAAB0BRAAFwAAAKQBAAAWAAAAdAUQABcAAACxAQAAFgAAAHQFEAAXAAAAvgEAABYAAAB0BRAAFwAAALcBAAAlAAAAdAUQABcAAAC4AQAAJAAAAHQFEAAXAAAAqgEAACUAAAB0BRAAFwAAAKsBAAAkAAAAdAUQABcAAACdAQAAJQAAAHQFEAAXAAAAngEAACQAAAB0BRAAFwAAAEsBAAAlAAAAdAUQABcAAABMAQAAIQAAAHQFEAAXAAAAQgEAACEAAAB0BRAAFwAAAMkBAAAWAAAAdAUQABcAAADFAQAAFgAAAHQFEAAXAAAAzQEAABcAAAB0BRAAFwAAABQBAAAVAAAAdAUQABcAAAAYAQAAGQAAAHQFEAAXAAAA1gEAABEAAAB0BRAAFwAAANoBAAARAAAAdAUQABcAAADeAQAAEQAAAHQFEAAXAAAAGgIAAAkAAABJZGVudGl0eUJ0NzA5VXNGQ0NCdDQ3MEJHU21wdGUxNzBtU21wdGUyNDBtWUNnQ29CdDIwMjBOb25Db25zdGFudEJ0MjAyMENvbnN0YW50U21wdGUyMDg1Q2hyb21hdGljaXR5RGVyaXZlZE5vbkNvbnN0YW50Q2hyb21hdGljaXR5RGVyaXZlZENvbnN0YW50QnQyMTAwSXB0UHFDMllDZ0NvUmVZQ2dDb1JvTmFycm93UmFuZ2VGdWxsUmFuZ2WyBRAAFwAAABUCAABIAAAAsgUQABcAAAAbAgAAMAAAALIFEAAXAAAAcQIAADEAAACyBRAAFwAAAHMCAAAxAAAAsgUQABcAAAB9AgAAIwAAALIFEAAXAAAAfwIAAB4AAACyBRAAFwAAAIECAAAqAAAAsgUQABcAAAAiAgAAQgAAALIFEAAXAAAATwIAAC4AAACyBRAAFwAAAE8CAAAdAAAAsgUQABcAAABcAgAALgAAALIFEAAXAAAAXAIAAB0AAACyBRAAFwAAAGkCAAAuAAAAsgUQABcAAABpAgAAHQAAALIFEAAXAAAAOAIAAEkAAACyBRAAFwAAAAQCAAAfAAAAsgUQABcAAAAGAgAAPAAAALIFEAAXAAAABwIAAD4AAACyBRAAFwAAAAUCAAA3AAAAsgUQABcAAAADAgAAPQAAALIFEAAXAAAAMQIAAEcAAAB0BRAAFwAAABwDAABIAAAAdAUQABcAAAAiAwAAMAAAAHQFEAAXAAAAbQMAADEAAAB0BRAAFwAAAG8DAAAxAAAAdAUQABcAAAB5AwAAIwAAAHQFEAAXAAAAewMAAB4AAAB0BRAAFwAAAH0DAAAqAAAAdAUQABcAAAApAwAAQgAAAHQFEAAXAAAAVAMAABkAAAB0BRAAFwAAAFQDAAA3AAAAdAUQABcAAABdAwAAGQAAAHQFEAAXAAAAXQMAADcAAAB0BRAAFwAAAGYDAAAZAAAAdAUQABcAAABmAwAANwAAAHQFEAAXAAAAQAMAAEkAAABjZW50ZXIgYXJyYXkgdG9vIHNtYWxsOiAgPCAAtOMRABgAAADM4xEAAwAAAHQFEAAXAAAAAAMAAAkAAABvcGFjaXR5IGFycmF5IHRvbyBzbWFsbDogAAAA8OMRABkAAADM4xEAAwAAAHQFEAAXAAAAAQMAAAkAAAByZ2IgYXJyYXkgdG9vIHNtYWxsOiAAAAAs5BEAFQAAAMzjEQADAAAAdAUQABcAAAACAwAACQAAAHNjYWxlIGFycmF5IHRvbyBzbWFsbDogAGTkEQAXAAAAzOMRAAMAAAB0BRAAFwAAAAMDAAAJAAAAcXVhdCBhcnJheSB0b28gc21hbGw6IAAAnOQRABYAAADM4xEAAwAAAHQFEAAXAAAABAMAAAkAAABiYXNlICsgY291bnQgb3V0IG9mIGJvdW5kczogICsgID4gAADU5BEAHAAAAPDkEQADAAAA8+QRAAMAAAB0BRAAFwAAAAUDAAAJAAAAdAUQABcAAAALAwAAHwAAAHQFEAAXAAAADgMAAD4AAAB0BRAAFwAAAA0DAAA8AAAAdAUQABcAAAAMAwAANwAAAHQFEAAXAAAACgMAAD0AAAB0BRAAFwAAADkDAABHAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogaW52YWxpZCBPbmNlIHN0YXRlgOURADwAAAAVCBAAWwAAADUAAAASAAAAQnQ0NzBNTGluZWFyTG9nMTAwTG9nU3FydEllYzYxOTY2XzJfNEJ0MTM2MUJ0MjAyMF8xMGJpdEJ0MjAyMF8xMmJpdFNtcHRlMjA4NFNtcHRlNDI4QnQyMTAwSGxnAAAAAAAAAAgAAAAEAAAAPgIAAIokEABeAAAAVgEAAC4AAACKJBAAXgAAAEUBAAA2AAAAiiQQAF4AAADSBAAADgAAAGFzc2VydGlvbiBmYWlsZWQ6IG5ld19jYXAgPj0gbGVuiiQQAF4AAACdBAAADQAAAF4VEABjAAAA8gAAAAkAAABeFRAAYwAAAP8AAAASAAAAWE1MOmNvbS5hZG9iZS54bXBSYXcgcHJvZmlsZSB0eXBlIGlwdGNSYXcgcHJvZmlsZSB0eXBlIDhiaW0AZgsQAE4AAACDBwAAEQAAANwZEAAdAAAATwEAAAkAAADcGRAAHQAAAFABAAAJAAAA3BkQAB0AAABOAQAALwAAANwZEAAdAAAAbwEAAAkAAADcGRAAHQAAAHABAAAJAAAA3BkQAB0AAABxAQAACQAAANwZEAAdAAAAcgEAAAkAAADcGRAAHQAAAG4BAAAvAAAA3BkQAB0AAACMAQAACQAAANwZEAAdAAAAjQEAAAkAAADcGRAAHQAAAI4BAAAJAAAA3BkQAB0AAACPAQAACQAAANwZEAAdAAAAiwEAAC8AAADcGRAAHQAAAJ4BAAANAAAA3BkQAB0AAADYAQAAFQAAAGZfcmVzdF8AAOgRAAcAAABwbHlJbnZhbGlkIFBMWSBoZWFkZXIAAAAT6BEAEgAAAP0AEAAUAAAAdgEAABUAAABiaW5hcnlfbGl0dGxlX2VuZGlhbjEuMFVuc3VwcG9ydGVkIFBMWSB2ZXJzaW9uOiBX6BEAGQAAAFVuc3VwcG9ydGVkIFBMWSBmb3JtYXQ6IHjoEQAYAAAAZWxlbWVudAD9ABAAFAAAAIUBAAAeAAAAcHJvcGVydHlQTFkgbGlzdCBwcm9wZXJ0aWVzIGFyZSBub3Qgc3VwcG9ydGVkAAAAuOgRACUAAABQcm9wZXJ0eSBvdXRzaWRlIG9mIGVsZW1lbnQA6OgRABsAAABJbnZhbGlkIHByb3BlcnR5IGxpbmU6IAAM6REAFwAAAGVuZF9oZWFkZXIAAP0AEAAUAAAAngEAABIAAABNaXNzaW5nIFBMWSBmb3JtYXQgbGluZQBI6REAFwAAAHZlcnRleE1pc3NpbmcgdmVydGV4IGVsZW1lbnRu6REAFgAAAGNodW5rVW5zdXBwb3J0ZWQgUExZIGhlYWRlciBsaW5lOiAAAJHpEQAdAAAAeE1pc3NpbmcgeCBwcm9wZXJ0eQC56REAEgAAAHlNaXNzaW5nIHkgcHJvcGVydHkA1ekRABIAAAB6TWlzc2luZyB6IHByb3BlcnR5APHpEQASAAAAc2NhbGVfME1pc3Npbmcgc2NhbGVfMCBwcm9wZXJ0eQAT6hEAGAAAAHNjYWxlXzFNaXNzaW5nIHNjYWxlXzEgcHJvcGVydHkAO+oRABgAAABzY2FsZV8yTWlzc2luZyBzY2FsZV8yIHByb3BlcnR5AGPqEQAYAAAAcm90XzFNaXNzaW5nIHJvdF8wIHByb3BlcnR5AInqEQAWAAAAcm90XzJNaXNzaW5nIHJvdF8xIHByb3BlcnR5AK3qEQAWAAAAcm90XzNNaXNzaW5nIHJvdF8yIHByb3BlcnR5ANHqEQAWAAAAcm90XzBNaXNzaW5nIHJvdF8zIHByb3BlcnR5APXqEQAWAAAAb3BhY2l0eU1pc3Npbmcgb3BhY2l0eSBwcm9wZXJ0eQAb6xEAGAAAAGZfZGNfME1pc3NpbmcgZl9kY18wIHByb3BlcnR5AAAAQusRABcAAABmX2RjXzFNaXNzaW5nIGZfZGNfMSBwcm9wZXJ0eQAAAGrrEQAXAAAAZl9kY18yTWlzc2luZyBmX2RjXzIgcHJvcGVydHkAAACS6xEAFwAAAEludmFsaWQgbnVtYmVyIG9mIGZfcmVzdCBwcm9wZXJ0aWVzOiAAAAC06xEAJQAAAP0AEAAUAAAAggMAACgAAAD9ABAAFAAAAHADAAAoAAAA/QAQABQAAAB5AwAAKAAAAP0AEAAUAAAA/QMAACYAAAD9ABAAFAAAAP4DAAAnAAAA/QAQABQAAAAABAAAKgAAAP0AEAAUAAAABAQAACoAAAD9ABAAFAAAAAgEAAAqAAAA/QAQABQAAAAMBAAAKgAAAP0AEAAUAAAA9gMAACoAAAD9ABAAFAAAAPoDAAAqAAAA/QAQABQAAADeAwAAJgAAAP0AEAAUAAAA3wMAACcAAAD9ABAAFAAAAOEDAAAqAAAA/QAQABQAAADlAwAAKgAAAP0AEAAUAAAA6QMAACoAAAD9ABAAFAAAAO0DAAAqAAAA/QAQABQAAADXAwAAKQAAAP0AEAAUAAAA2wMAACkAAAD9ABAAFAAAACYEAAAmAAAA/QAQABQAAAAlBAAAJwAAAP0AEAAUAAAAIgQAACoAAAD9ABAAFAAAAB4EAAAqAAAA/QAQABQAAAAVBAAAKgAAAP0AEAAUAAAAKAQAACoAAAD9ABAAFAAAALcCAAAZAAAA/QAQABQAAADkAgAAHAAAAP0AEAAUAAAA5QIAABwAAAD9ABAAFAAAAOYCAAAcAAAA/QAQABQAAADnAgAAGwAAAP0AEAAUAAAA6AIAABsAAAD9ABAAFAAAAOkCAAAbAAAA/QAQABQAAADqAgAAGQAAAP0AEAAUAAAA6wIAABkAAAD9ABAAFAAAAOwCAAAZAAAA/QAQABQAAADtAgAAHQAAAP0AEAAUAAAA7gIAABoAAAD9ABAAFAAAAO8CAAAaAAAA/QAQABQAAADwAgAAGgAAAP0AEAAUAAAA8QIAABoAAABNaXNzaW5nIFBMWSBjaHVuayBmb3Igc3BsYXQgZO4RABwAAABNaXNzaW5nIGNodW5rIGVsZW1lbnQgZm9yIFN1cGVyU3BsYXQgUExZiO4RACgAAABtaW5feE1pc3NpbmcgbWluX3ggcHJvcGVydHkAve4RABYAAABtaW5feU1pc3NpbmcgbWluX3kgcHJvcGVydHkA4e4RABYAAABtaW5fek1pc3NpbmcgbWluX3ogcHJvcGVydHkABe8RABYAAABtYXhfeE1pc3NpbmcgbWF4X3ggcHJvcGVydHkAKe8RABYAAABtYXhfeU1pc3NpbmcgbWF4X3kgcHJvcGVydHkATe8RABYAAABtYXhfek1pc3NpbmcgbWF4X3ogcHJvcGVydHkAce8RABYAAABtaW5fc2NhbGVfeE1pc3NpbmcgbWluX3NjYWxlX3ggcHJvcGVydHkAm+8RABwAAABtaW5fc2NhbGVfeU1pc3NpbmcgbWluX3NjYWxlX3kgcHJvcGVydHkAy+8RABwAAABtaW5fc2NhbGVfek1pc3NpbmcgbWluX3NjYWxlX3ogcHJvcGVydHkA++8RABwAAABtYXhfc2NhbGVfeE1pc3NpbmcgbWF4X3NjYWxlX3ggcHJvcGVydHkAK/ARABwAAABtYXhfc2NhbGVfeU1pc3NpbmcgbWF4X3NjYWxlX3kgcHJvcGVydHkAW/ARABwAAABtYXhfc2NhbGVfek1pc3NpbmcgbWF4X3NjYWxlX3ogcHJvcGVydHkAi/ARABwAAABtaW5fcm1pbl9nbWluX2JtYXhfcm1heF9nbWF4X2JwYWNrZWRfcG9zaXRpb25NaXNzaW5nIHBhY2tlZF9wb3NpdGlvbiBwcm9wZXJ0eQAAAN3wEQAgAAAAcGFja2VkX3JvdGF0aW9uTWlzc2luZyBwYWNrZWRfcm90YXRpb24gcHJvcGVydHkAF/ERACAAAABwYWNrZWRfc2NhbGVNaXNzaW5nIHBhY2tlZF9zY2FsZSBwcm9wZXJ0eQAAAEzxEQAdAAAAcGFja2VkX2NvbG9yTWlzc2luZyBwYWNrZWRfY29sb3IgcHJvcGVydHkAAACA8REAHQAAAP0AEAAUAAAAPgIAADAAAAD9ABAAFAAAAEICAAAfAAAAU0ggZWxlbWVudCBjb3VudCAoKSBtdXN0IG1hdGNoIHZlcnRleCBjb3VudCAoAAAAyPERABIAAADa8REAGwAAAF4HEgABAAAATm90IGVub3VnaCBjaHVuayByZWNvcmRzOiBoYXZlICwgbmVlZCBhdCBsZWFzdCAAEPIRAB8AAAAv8hEAEAAAAP0AEAAUAAAAFgMAAD0AAAD9ABAAFAAAABYDAAAhAAAA/QAQABQAAAAQAwAAPQAAAP0AEAAUAAAAEAMAACEAAAD9ABAAFAAAAAoDAAA9AAAA/QAQABQAAAAKAwAAIQAAAP0AEAAUAAAABAMAAB8AAAD9ABAAFAAAAD8BAAAZAAAAY2hhcnVjaGFyc2hvcnR1c2hvcnRpbnRmbG9hdGRvdWJsZVVuc3VwcG9ydGVkIFBMWSBwcm9wZXJ0eSB0eXBlOiAAAADy8hEAHwAAAFYhEAAUAAAA4QMAABYAAABWIRAAFAAAAOUDAAAUAAAAViEQABQAAADlAwAAMAAAAFYhEAAUAAAAyQMAABYAAABWIRAAFAAAAM0DAAAUAAAAViEQABQAAADNAwAAMAAAAFYhEAAUAAAA6gQAABYAAABWIRAAFAAAAO4EAAAtAAAAViEQABQAAADuBAAAOgAAAFYhEAAUAAAA7gQAABQAAABWIRAAFAAAAA8FAAAWAAAAViEQABQAAAATBQAALQAAAFYhEAAUAAAAEwUAADoAAABWIRAAFAAAABMFAABLAAAAViEQABQAAAATBQAAXAAAAFYhEAAUAAAAEwUAABQAAABWIRAAFAAAAKgEAAAWAAAAViEQABQAAACsBAAAJwAAAFYhEAAUAAAArAQAABQAAABWIRAAFAAAAMAEAAAWAAAAViEQABQAAADEBAAALQAAAFYhEAAUAAAAxAQAADoAAABWIRAAFAAAAMQEAAAUAAAAViEQABQAAABvBAAAFgAAAFYhEAAUAAAAdAQAAC4AAABWIRAAFAAAAHYEAAAUAAAAViEQABQAAACNBAAAFgAAAFYhEAAUAAAAkgQAAC4AAABWIRAAFAAAAJQEAAAUAAAAViEQABQAAAD2BAAAFgAAAFYhEAAUAAAA+gQAAC0AAABWIRAAFAAAAPoEAAA6AAAAViEQABQAAAD6BAAAFAAAAFYhEAAUAAAAFQQAABYAAABWIRAAFAAAABoEAAAUAAAAViEQABQAAAAaBAAAPwAAAFYhEAAUAAAA+wMAABYAAABWIRAAFAAAAAAEAAAUAAAAViEQABQAAAAABAAAPwAAAFYhEAAUAAAA1QQAABYAAABWIRAAFAAAANgEAAA5AAAAViEQABQAAADYBAAARgAAAFYhEAAUAAAA2AQAAFcAAABWIRAAFAAAACcFAAAWAAAAViEQABQAAAArBQAALQAAAFYhEAAUAAAAKwUAADoAAABWIRAAFAAAACsFAABLAAAAViEQABQAAAArBQAAXAAAAFYhEAAUAAAAKwUAABQAAABWIRAAFAAAADsEAAAWAAAAViEQABQAAAA/BAAAGgAAAFYhEAAUAAAAPwQAABQAAABWIRAAFAAAAFQEAAAWAAAAViEQABQAAABYBAAAGwAAAFYhEAAUAAAAWAQAABQAAABJbnZhbGlkIFNIIGRlZ3JlZTogAIz2EQATAAAASW52YWxpZCBnemlwIGhlYWRlcgCo9hEAEwAAAGgHEAAVAAAATwEAABwAAABoBxAAFQAAAE8BAAA1AAAAaAcQABUAAABQAQAAHAAAAGgHEAAVAAAAUAEAADkAAABoBxAAFQAAAFEBAAAcAAAAaAcQABUAAABRAQAAOQAAAGgHEAAVAAAAWQEAAAkAAABoBxAAFQAAAFoBAAAJAAAAaAcQABUAAABbAQAACQAAAGgHEAAVAAAAiAEAACEAAABoBxAAFQAAAIkBAAAhAAAAaAcQABUAAACKAQAAIQAAAGgHEAAVAAAAjAEAAB8AAABoBxAAFQAAAJIBAAAJAAAAaAcQABUAAACTAQAACQAAAGgHEAAVAAAAlAEAAAkAAABoBxAAFQAAAJUBAAAJAAAAAQAAAAAAAAABAAAAAAAAAE1pc3NpbmcgZmlsZSAgaW4gU09HUyB6aXAAAADk9xEADQAAAPH3EQAMAAAAaAcQABUAAAC4AQAAIgAAAGgHEAAVAAAAuAEAAAkAAABoBxAAFQAAALkBAAAmAAAAaAcQABUAAAC5AQAACQAAAGgHEAAVAAAAugEAACYAAABoBxAAFQAAALoBAAAJAAAAaAcQABUAAAC7AQAAJQAAAGgHEAAVAAAAoQEAACoAAABoBxAAFQAAAKEBAAAhAAAAaAcQABUAAAChAQAACQAAAGgHEAAVAAAAogEAAC4AAABoBxAAFQAAAKIBAAAlAAAAaAcQABUAAACiAQAACQAAAGgHEAAVAAAAowEAAC4AAABoBxAAFQAAAKMBAAAlAAAAaAcQABUAAACjAQAACQAAAGgHEAAVAAAApAEAACsAAABoBxAAFQAAAPwBAAAgAAAAaAcQABUAAAD8AQAAOwAAAGgHEAAVAAAADgIAAEQAAABoBxAAFQAAAA4CAAAVAAAAaAcQABUAAAAJAgAARAAAAGgHEAAVAAAACQIAABUAAABoBxAAFQAAAAQCAABDAAAAaAcQABUAAAAEAgAAFQAAAGgHEAAVAAAA0QEAACAAAABoBxAAFQAAANEBAAA7AAAAaAcQABUAAADjAQAARAAAAGgHEAAVAAAA4wEAADUAAABoBxAAFQAAAOMBAAAVAAAAaAcQABUAAADeAQAARAAAAGgHEAAVAAAA3gEAADUAAABoBxAAFQAAAN4BAAAVAAAAaAcQABUAAADZAQAAQwAAAGgHEAAVAAAA2QEAADQAAABoBxAAFQAAANkBAAAVAAAAaAcQABUAAAB7AQAAJAAAAGgHEAAVAAAAewEAAAkAAABoBxAAFQAAAHwBAAAoAAAAaAcQABUAAAB8AQAACQAAAGgHEAAVAAAAfQEAACgAAABoBxAAFQAAAH0BAAAJAAAAaAcQABUAAABmAQAAKAAAAGgHEAAVAAAAZgEAAB8AAABoBxAAFQAAAGYBAAAJAAAAaAcQABUAAABnAQAALAAAAGgHEAAVAAAAZwEAACMAAABoBxAAFQAAAGcBAAAJAAAAaAcQABUAAABoAQAALAAAAGgHEAAVAAAAaAEAACMAAABoBxAAFQAAAGgBAAAJAAAAtwQQABcAAACgAAAADgAAALcEEAAXAAAAkAAAABQAAAC3BBAAFwAAAJcAAAATAAAAtwQQABcAAACYAAAAGQAAAERlY29tcHJlc3Npb24gZmFpbGVkOiAAAID7EQAWAAAAc3B6c3BsYXRrc3BsYXRwY3NvZ3N6aXByYWRJbnZhbGlkIGZpbGUgdHlwZTogAAAAuvsRABMAAABzb2d6aXAAAI0mEAAYAAAA9gAAABwAAACNJhAAGAAAAPYAAAAqAAAAbV3L1ixQ62N4QaZXcRuLufUrL4lkWmc6/u1yMy/njHUBAAAAAAAAAAIAAAAAAAAAAQAAAAEAAAAAAAAAIAAA6CAgICAgICAgICAgICBhdCA6AAAAUPwRAAEAAAAKOiAAAQAAAAAAAABd/BEAAgAAAAIAQfr4xwALAQQAQYT5xwALMSAAAOggLSAAAQAAAAAAAACI/BEAAwAAACAgICAgIDx1bmtub3duPgACAAAAAAAAAAIAQcD5xwALxRwgAIDg77+9AKMdEAA0AAAAZwEAADAAAABvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3Jt2PwRACgAAAAkAAAAAAAAAAIAAAAA/REAYSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHdoZW4gdGhlIHVuZGVybHlpbmcgc3RyZWFtIGRpZCBub3QAABj9EQBWAAAAiR0QABkAAACIAgAAEQAAAD8CAAAMAAAABAAAAEACAABBAgAAQgIAAE9zAAAAAAAABAAAAAQAAABDAgAAY29kZQAAAAABAAAAAQAAAEQCAABraW5khQEAAAwAAAAEAAAARQIAAG1lc3NhZ2VLaW5kRXJyb3IAAAAACAAAAAQAAABGAgAAAAAAAAQAAAAEAAAARwIAAEN1c3RvbWVudGl0eSBub3QgZm91bmRwZXJtaXNzaW9uIGRlbmllZGNvbm5lY3Rpb24gcmVmdXNlZGNvbm5lY3Rpb24gcmVzZXRob3N0IHVucmVhY2hhYmxlbmV0d29yayB1bnJlYWNoYWJsZWNvbm5lY3Rpb24gYWJvcnRlZG5vdCBjb25uZWN0ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9ybWlkID4gbGVu/wASAAkAAABzdGRvdXRmYWlsZWQgcHJpbnRpbmcgdG8gAAAAFgESABMAAABd/BEAAgAAANoQEAAbAAAAjQQAAAkAAABvcGVyYXRpb24gc3VjY2Vzc2Z1bG9uZS10aW1lIGluaXRpYWxpemF0aW9uIG1heSBub3QgYmUgcGVyZm9ybWVkIHJlY3Vyc2l2ZWx5YAESADgAAABjYW5ub3QgcmVjdXJzaXZlbHkgYWNxdWlyZSBtdXRleKABEgAgAAAA6AcQACwAAAATAAAACQAAAGxvY2sgY291bnQgb3ZlcmZsb3cgaW4gcmVlbnRyYW50IG11dGV4AADlFBAAJgAAACMBAAAtAAAA7xoQACMAAADXAAAAFAAAAO8aEAAjAAAA1wAAADEAAABMYXp5TG9jayBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAAwAhIALgAAAMMUEAAhAAAAlwEAAAUAAABmYWlsZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIHRocmVhZCBJRDogYml0c3BhY2UgZXhoYXVzdGVkAHgCEgA3AAAAph4QAB0AAADUBAAADQAAADoKAACFAQAADAAAAAQAAABIAgAASQIAAEoCAAAAAAAACAAAAAQAAABLAgAATAIAAE0CAABOAgAATwIAABAAAAAEAAAAUAIAAFECAABSAgAAUwIAAGNhbm5vdCBtb2RpZnkgdGhlIHBhbmljIGhvb2sgZnJvbSBhIHBhbmlja2luZyB0aHJlYWQcAxIANAAAAA4WEAAcAAAAkAAAAAkAAAAAAAAABAAAAAQAAABUAgAAV291bGRCbG9jayAob3MgZXJyb3IgAAAAAQAAAAAAAACCAxIACwAAAF4HEgABAAAA2hAQABsAAABcAwAAFAAAAE5vdEZvdW5kUGVybWlzc2lvbkRlbmllZENvbm5lY3Rpb25SZWZ1c2VkQ29ubmVjdGlvblJlc2V0SG9zdFVucmVhY2hhYmxlTmV0d29ya1VucmVhY2hhYmxlQ29ubmVjdGlvbkFib3J0ZWROb3RDb25uZWN0ZWRBZGRySW5Vc2VBZGRyTm90QXZhaWxhYmxlTmV0d29ya0Rvd25Ccm9rZW5QaXBlQWxyZWFkeUV4aXN0c05vdEFEaXJlY3RvcnlJc0FEaXJlY3RvcnlEaXJlY3RvcnlOb3RFbXB0eVJlYWRPbmx5RmlsZXN5c3RlbUZpbGVzeXN0ZW1Mb29wU3RhbGVOZXR3b3JrRmlsZUhhbmRsZUludmFsaWRJbnB1dEludmFsaWREYXRhVGltZWRPdXRXcml0ZVplcm9TdG9yYWdlRnVsbE5vdFNlZWthYmxlUXVvdGFFeGNlZWRlZEZpbGVUb29MYXJnZVJlc291cmNlQnVzeUV4ZWN1dGFibGVGaWxlQnVzeURlYWRsb2NrQ3Jvc3Nlc0RldmljZXNUb29NYW55TGlua3NJbnZhbGlkRmlsZW5hbWVBcmd1bWVudExpc3RUb29Mb25nSW50ZXJydXB0ZWRVbnN1cHBvcnRlZFVuZXhwZWN0ZWRFb2ZPdXRPZk1lbW9yeUluUHJvZ3Jlc3NPdGhlclVuY2F0ZWdvcml6ZWR1bnN1cHBvcnRlZCBiYWNrdHJhY2VkaXNhYmxlZCBiYWNrdHJhY2UAXhsQABwAAACKAQAAHQAAAFUCAAAQAAAABAAAAFYCAABXAgAAcGFuaWNrZWQgYXQgAQAAAAAAAABQ/BEAAQAAAFD8EQABAAAAAAAAAAgAAAAEAAAAWAIAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAACgiEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAAAoIhAAKgAAALcEAAANAAAA4BMQAC0AAAAWAQAAKQAAAIUBAAAMAAAABAAAAFkCAABudWxsIHBvaW50ZXIgcGFzc2VkIHRvIHJ1c3RyZWN1cnNpdmUgdXNlIG9mIGFuIG9iamVjdCBkZXRlY3RlZCB3aGljaCB3b3VsZCBsZWFkIHRvIHVuc2FmZSBhbGlhc2luZyBpbiBydXN0SnNWYWx1ZSgpAFYHEgAIAAAAXgcSAAEAAAB/FhAAaQAAAHwAAAARAAAAfxYQAGkAAACJAAAAEQAAAFpJUDY0IGZvb3RlciBpbmRpY2F0ZXMgbW9yZSBmaWxlcyBvbiB0aGlzIGRpc2sgdGhhbiBpbiB0aGUgd2hvbGUgYXJjaGl2ZUludmFsaWQgY2VudHJhbCBkaXJlY3Rvcnkgc2l6ZSBvciBvZmZzZXRmYWlsZWQgdG8gZmlsbCB3aG9sZSBidWZmZXIAAAgSABsAAAAlAAAAAgAAABwIEgBDUkMzMiBjaGVja3N1bSBmYWlsZWQgb24gVW5pY29kZSBleHRyYSBmaWVsZFVuaWNvZGUgZXh0cmEgZmllbGQgaXMgdG9vIHNtYWxsRXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkIGlzIGVtcHR5AAAA/g8QAHQAAABKAAAAJAAAAGZsYWdzIGFuZCBsZW4gZG9uJ3QgbWF0Y2ggaW4gZXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgYXR0cmlidXRlIHNpemVOVEZTIGV4dHJhIGZpZWxkIGhhcyBhbiB1bnN1cHBvcnRlZCBhdHRyaWJ1dGUgdGFnTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAAQGAAA6AAAARXh0cmEgZmllbGQgY29udGVudCBleGNlZWRzIGRlY2xhcmVkIGxlbmd0aADOIRAAWQAAAAYGAAA7AAAAWklQNjQgZXh0cmEgZmllbGQgdHJ1bmNhdGVkWklQNjQgZXh0cmEtZGF0YSBmaWVsZCBpcyB0aGUgd3JvbmcgbGVuZ3RoAAAAziEQAFkAAABeBgAAEgAAAEFFUyBleHRyYSBmaWVsZCB0cnVuY2F0ZWRJbnZhbGlkIEFFUyBlbmNyeXB0aW9uIHN0cmVuZ3RoSW52YWxpZCBBRVMgdmVuZG9yIHZlcnNpb25JbnZhbGlkIEFFUyB2ZW5kb3JBRVMgZXh0cmEgZGF0YSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoAADOIRAAWQAAAIgGAAAfAAAARXh0cmEgZmllbGQgY29udGVudCB0cnVuY2F0ZWRFeHRyYSBmaWVsZCBoZWFkZXIgdHJ1bmNhdGVkSW52YWxpZCBjaGVja3N1bQBBkJbIAAvjBAEAAAC0AQAAKCkAAMQeEABQAAAAKgIAABEAAABpL28gZXJyb3I6IAAsCxIACwAAAGludmFsaWQgWmlwIGFyY2hpdmU6IAAAAEALEgAVAAAAdW5zdXBwb3J0ZWQgWmlwIGFyY2hpdmU6IAAAAGALEgAZAAAAc3BlY2lmaWVkIGZpbGUgbm90IGZvdW5kIGluIGFyY2hpdmVwcm92aWRlZCBwYXNzd29yZCBpcyBpbmNvcnJlY3QAAAAAAAAABAAAAAQAAADAAAAAAAAAAAQAAAAEAAAAwgAAAFV0ZjhFcnJvcnZhbGlkX3VwX3RvZXJyb3JfbGVuAAAAWgIAAAwAAAAEAAAAWwIAAAAAAAAEAAAABAAAAFwCAABGcm9tVXRmOEVycm9yYnl0ZXNlcnJvck5vbmVTb21lACYcEABvAAAAwwAAAAkAAAAmHBAAbwAAALwAAAAqAAAAJhwQAG8AAAC5AAAAKgAAAJsBEABnAAAAdAEAACkAAACbARAAZwAAAHkBAAAcAAAAmwEQAGcAAAB5AQAALQAA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AGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWUQERIACAcJBgoFCwQMAw0CDgEPAABZFxAAYAAAAJMAAAAJAAAAAABgB1AAAAgQAAAIcwAUCB8AEgdwAAAIMAAACMAAAAkKABAHYAAACCAAAAigAAAJAAAACIAAAAhAAAAI4AAACQYAEAdYAAAIGAAACJAAAAk7ABMHeAAACDgAAAjQAAAJEQARB2gAAAgoAAAIsAAACQgAAAiIAAAISAAACPAAAAkEABAHVAAACBQAAAjjABUIKwATB3QAAAg0AAAIyAAACQ0AEQdkAAAIJAAACKgAAAkEAAAIhAAACEQAAAjoAAAJCAAQB1wAAAgcAAAImAAACVMAFAd8AAAIPAAACNgAAAkXABIHbAAACCwAAAi4AAAJDAAACIwAAAhMAAAI+AAACQMAEAdSAAAIEgAACKMAFQgjABMHcgAACDIAAAjEAAAJCwARB2IAAAgiAAAIpAAACQIAAAiCAAAIQgAACOQAAAkHABAHWgAACBoAAAiUAAAJQwAUB3oAAAg6AAAI1AAACRMAEgdqAAAIKgAACLQAAAkKAAAIigAACEoAAAj0AAAJBQAQB1YAAAgWAAAIAABACDMAEwd2AAAINgAACMwAAAkPABEHZgAACCYAAAisAAAJBgAACIYAAAhGAAAI7AAACQkAEAdeAAAIHgAACJwAAAljABQHfgAACD4AAAjcAAAJGwASB24AAAguAAAIvAAACQ4AAAiOAAAITgAACPwAAAkAAGAHUQAACBEAAAiDABUIHwASB3EAAAgxAAAIwgAACQoAEAdhAAAIIQAACKIAAAkBAAAIgQAACEEAAAjiAAAJBgAQB1kAAAgZAAAIkgAACTsAEwd5AAAIOQAACNIAAAkRABEHaQAACCkAAAiyAAAJCQAACIkAAAhJAAAI8gAACQQAEAdVAAAIFQAACAIBEAgrABMHdQAACDUAAAjKAAAJDQARB2UAAAglAAAIqgAACQUAAAiFAAAIRQAACOoAAAkIABAHXQAACB0AAAiaAAAJUwAUB30AAAg9AAAI2gAACRcAEgdtAAAILQAACLoAAAkNAAAIjQAACE0AAAj6AAAJAwAQB1MAAAgTAAAIwwAVCCMAEwdzAAAIMwAACMYAAAkLABEHYwAACCMAAAimAAAJAwAACIMAAAhDAAAI5gAACQcAEAdbAAAIGwAACJYAAAlDABQHewAACDsAAAjWAAAJEwASB2sAAAgrAAAItgAACQsAAAiLAAAISwAACPYAAAkFABAHVwAACBcAAAgAAEAIMwATB3cAAAg3AAAIzgAACQ8AEQdnAAAIJwAACK4AAAkHAAAIhwAACEcAAAjuAAAJCQAQB18AAAgfAAAIngAACWMAFAd/AAAIPwAACN4AAAkbABIHbwAACC8AAAi+AAAJDwAACI8AAAhPAAAI/gAACQAAYAdQAAAIEAAACHMAFAgfABIHcAAACDAAAAjBAAAJCgAQB2AAAAggAAAIoQAACQAAAAiAAAAIQAAACOEAAAkGABAHWAAACBgAAAiRAAAJOwATB3gAAAg4AAAI0QAACREAEQdoAAAIKAAACLEAAAkIAAAIiAAACEgAAAjxAAAJBAAQB1QAAAgUAAAI4wAVCCsAEwd0AAAINAAACMkAAAkNABEHZAAACCQAAAipAAAJBAAACIQAAAhEAAAI6QAACQgAEAdcAAAIHAAACJkAAAlTABQHfAAACDwAAAjZAAAJFwASB2wAAAgsAAAIuQAACQwAAAiMAAAITAAACPkAAAkDABAHUgAACBIAAAijABUIIwATB3IAAAgyAAAIxQAACQsAEQdiAAAIIgAACKUAAAkCAAAIggAACEIAAAjlAAAJBwAQB1oAAAgaAAAIlQAACUMAFAd6AAAIOgAACNUAAAkTABIHagAACCoAAAi1AAAJCgAACIoAAAhKAAAI9QAACQUAEAdWAAAIFgAACAAAQAgzABMHdgAACDYAAAjNAAAJDwARB2YAAAgmAAAIrQAACQYAAAiGAAAIRgAACO0AAAkJABAHXgAACB4AAAidAAAJYwAUB34AAAg+AAAI3QAACRsAEgduAAAILgAACL0AAAkOAAAIjgAACE4AAAj9AAAJAABgB1EAAAgRAAAIgwAVCB8AEgdxAAAIMQAACMMAAAkKABAHYQAACCEAAAijAAAJAQAACIEAAAhBAAAI4wAACQYAEAdZAAAIGQAACJMAAAk7ABMHeQAACDkAAAjTAAAJEQARB2kAAAgpAAAIswAACQkAAAiJAAAISQAACPMAAAkEABAHVQAACBUAAAgCARAIKwATB3UAAAg1AAAIywAACQ0AEQdlAAAIJQAACKsAAAkFAAAIhQAA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",self.location.href));const A=YA();(typeof I=="string"||typeof Request=="function"&&I instanceof Request||typeof URL=="function"&&I instanceof URL)&&(I=fetch(I));const{instance:g}=await bA(await I,A);return PA(g)}const pA={sortSplats16:OA,sortSplats32:rA,loadPackedSplats:ZA,loadExtSplats:TA,tinyLodPackedSplats:nA,qualityLodPackedSplats:XA,tinyLodExtSplats:VA,qualityLodExtSplats:WA,newLodTree:lA,newSharedLodTree:jA,initLodTree:mA,disposeLodTree:eA,updateLodTrees:zA,traverseLodTrees:vA,getLodTreeLevel:uA,nextChunk:_A};async function DA(I){const{id:A,name:g,args:Q}=I.data;try{const B=pA[g];if(!B)throw new Error(`Unknown worker RPC: ${g}`);const E=await B(Q,{sendStatus:i=>{self.postMessage({id:A,status:i},{transfer:AA(i)})}});self.postMessage({id:A,result:E},{transfer:AA(E)})}catch(B){console.warn(`Worker error: ${B}`),self.postMessage({id:A,error:B},{transfer:AA(B)})}}function OA({numSplats:I,readback:A,ordering:g}){return{activeSplats:sA(I,A,g),readback:A,ordering:g}}function rA({numSplats:I,readback:A,ordering:g}){return{activeSplats:hA(I,A,g),readback:A,ordering:g}}async function u({decoder:I,fileBytes:A,url:g,requestHeader:Q,withCredentials:B,chunked:D,chunkedLength:E,sendStatus:i}){if(A)for(let G=0;G{iA=h});i({nextChunk:!0});const J=await S;if(J.length===0)break;I.push(J),o+=J.length,i({progress:{loaded:o,total:G}})}G===0&&i({progress:{loaded:o,total:o}})}else throw new Error("No url or fileBytes provided");return I.finish()}function P(I){return{numSplats:I.numSplats,packedArray:I.packed,extra:{sh1:I.sh1,sh2:I.sh2,sh3:I.sh3,sh1Codes:I.sh1Codes,sh2Codes:I.sh2Codes,sh3Codes:I.sh3Codes,lodTree:I.lodTree},splatEncoding:I.splatEncoding}}async function ZA({url:I,requestHeader:A,withCredentials:g,fileBytes:Q,fileType:B,pathName:D,chunked:E,chunkedLength:i,encoding:y,lod:o,lodBase:G,lodAbove:S,nonLod:J,sh1Codes:h,sh2Codes:L,sh3Codes:c},{sendStatus:H}){if(!o){const Y=kA(B,D??I,y,h,L,c),f=await u({decoder:Y,fileBytes:Q,url:I,requestHeader:A,withCredentials:g,chunked:E,chunkedLength:i,sendStatus:H}),p=P(f);return p.splatEncoding.lodOpacity?{lodSplats:p}:p}const s=oA(B,D??I,y),F=await u({decoder:s,fileBytes:Q,url:I,requestHeader:A,withCredentials:g,chunked:E,chunkedLength:i,sendStatus:H});if(F.has_lod())return{lodSplats:P(F.to_packedsplats_lod())};if(S!==void 0&&F.len() ${F.len()} (${e} ms)`);const K=F.to_packedsplats_lod();return N.lodSplats=P(K),N}function b(I){return{numSplats:I.numSplats,extArrays:[I.ext0,I.ext1],extra:{sh1:I.sh1,sh2:I.sh2,sh3a:I.sh3a,sh3b:I.sh3b,sh1Codes:I.sh1Codes,sh2Codes:I.sh2Codes,sh3Codes:I.sh3Codes,lodTree:I.lodTree}}}async function TA({url:I,requestHeader:A,withCredentials:g,fileBytes:Q,fileType:B,pathName:D,chunked:E,chunkedLength:i,lod:y,lodBase:o,lodAbove:G,nonLod:S,sh1Codes:J,sh2Codes:h,sh3Codes:L},{sendStatus:c}){if(!y){const K=yA(B,D??I,J,h,L),Y=await u({decoder:K,fileBytes:Q,url:I,requestHeader:A,withCredentials:g,chunked:E,chunkedLength:i,sendStatus:c}),f=b(Y);return f.extra.lodTree?{lodSplats:f}:f}const H=RA(B,D??I),s=await u({decoder:H,fileBytes:Q,url:I,requestHeader:A,withCredentials:g,chunked:E,chunkedLength:i,sendStatus:c});if(s.has_lod())return{lodSplats:b(s.to_extsplats_lod())};if(G!==void 0&&s.len() ${s.len()} (${m} ms)`);const e=s.to_extsplats_lod();return F.lodSplats=b(e),F}async function nA({numSplats:I,packedArray:A,extra:g,lodBase:Q,rgba:B,encoding:D}){const E=Math.max(1.1,Math.min(2,Q??1.5)),i=performance.now(),o=HA(I,A,g,E,!1,B,D),G=performance.now()-i,S=P(o);return console.log(`Tiny LoD: ${I} -> ${S.numSplats} (${G} ms)`),S}async function XA({numSplats:I,packedArray:A,extra:g,lodBase:Q,rgba:B,encoding:D}){const E=Math.max(1.1,Math.min(2,Q??1.75)),i=performance.now(),y=GA(I,A,g,E,B,D),o=performance.now()-i,G=P(y);return console.log(`Bhatt LoD: ${I} -> ${G.numSplats} (${o} ms)`),G}async function VA({numSplats:I,extArrays:A,extra:g,lodBase:Q,rgba:B,encoding:D}){const E=Math.max(1.1,Math.min(2,Q??1.5)),i=performance.now(),o=UA(I,A[0],A[1],g,E,!1,B),G=performance.now()-i,S=b(o);return console.log(`Tiny LoD: ${I} -> ${S.numSplats} (${G} ms)`),S}async function WA({numSplats:I,extArrays:A,extra:g,lodBase:Q,rgba:B,encoding:D}){const E=Math.max(1.1,Math.min(2,Q??1.75)),i=performance.now(),y=wA(I,A[0],A[1],g,E,B),o=performance.now()-i,G=b(y);return console.log(`Bhatt LoD: ${I} -> ${G.numSplats} (${o} ms)`),G}function lA({capacity:I}){const{lodId:A}=JA(I);return{lodId:A}}function jA({lodId:I}){const{lodId:A}=MA(I);return{lodId:A}}function mA({numSplats:I,lodTree:A}){const{lodId:g,chunkToPage:Q}=SA(I,A);return{lodId:g,chunkToPage:Q}}function eA({lodId:I}){FA(I)}function zA({ranges:I}){const A=new Uint32Array(I.map(({lodId:E})=>E)),g=new Uint32Array(I.map(({pageBase:E})=>E)),Q=new Uint32Array(I.map(({chunkBase:E})=>E)),B=new Uint32Array(I.map(({count:E})=>E)),D=I.map(({lodTreeData:E})=>E);cA(A,g,Q,B,D)}function vA({maxSplats:I,pixelScaleLimit:A,lastPixelLimit:g,instances:Q}){const B=Object.entries(Q),D=new Uint32Array(B.map(([F,N])=>N.lodId)),E=new Uint32Array(B.map(([F,N])=>N.rootPage??4294967295)),i=new Float32Array(B.flatMap(([F,N])=>{if(N.viewToObjectCols.length!==16)throw new Error("Incorrect array size for viewToObjectCols");return N.viewToObjectCols})),y=new Float32Array(B.map(([F,N])=>N.lodScale)),o=new Float32Array(B.map(([F,N])=>N.behindFoveate)),G=new Float32Array(B.map(([F,N])=>N.coneFov0)),S=new Float32Array(B.map(([F,N])=>N.coneFov)),J=new Float32Array(B.map(([F,N])=>N.coneFoveate)),h=LA(I,A,g,D,E,i,y,o,J,G,S),{instanceIndices:L,chunks:c,pixelLimit:H}=h;return{keyIndices:B.reduce((F,[N,d],x)=>(F[N]=L[x],F),{}),chunks:c,pixelLimit:H}}function uA({lodId:I,level:A}){return NA(I,A)}let iA=I=>{};async function _A({chunk:I}){iA(I)}function AA(I){const A=[],g=new Set;function Q(B){B&&typeof B=="object"&&!g.has(B)&&(g.add(B),B instanceof ArrayBuffer?A.push(B):ArrayBuffer.isView(B)?A.push(B.buffer):Array.isArray(B)?B.forEach(Q):Object.values(B).forEach(Q))}return Q(I),A}async function $A(){const I=[],A=g=>{I.push(g)};self.addEventListener("message",A),await fA(),self.removeEventListener("message",A),self.addEventListener("message",DA);for(const g of I)DA(g);I.length=0}$A().catch(console.error)})();\n//# sourceMappingURL=worker-C9LcsNvD.js.map\n', KB = typeof self < "u" && self.Blob && new Blob([qC], { type: "text/javascript;charset=utf-8" }); -function Ys(Q) { - let A; - try { - if (A = KB && (self.URL || self.webkitURL).createObjectURL(KB), !A) throw ""; - const I = new Worker(A, { - name: Q == null ? void 0 : Q.name - }); - return I.addEventListener("error", () => { - (self.URL || self.webkitURL).revokeObjectURL(A); - }), I; - } catch { - return new Worker( - "data:text/javascript;charset=utf-8," + encodeURIComponent(qC), - { - name: Q == null ? void 0 : Q.name +class yC extends q { + constructor({ + gsplat: A, + scale: I, + rotate: g, + translate: B, + recolor: C + }) { + super({ + inTypes: { + gsplat: j, + scale: "float", + rotate: "vec4", + translate: "vec3", + recolor: "vec4" + }, + outTypes: { gsplat: j }, + inputs: { gsplat: A, scale: I, rotate: g, translate: B, recolor: C }, + globals: () => [YA], + statements: ({ inputs: E, outputs: i, compile: o }) => { + const { gsplat: D } = i; + if (!D || !E.gsplat) + return []; + const { scale: s, rotate: w, translate: G, recolor: h } = E, c = o.indent; + return [ + `${D} = ${E.gsplat};`, + `if (isGsplatActive(${D}.flags)) {`, + s ? `${c}${D}.center *= ${s};` : null, + w ? `${c}${D}.center = quatVec(${w}, ${D}.center);` : null, + G ? `${c}${D}.center += ${G};` : null, + s ? `${c}${D}.scales *= ${s};` : null, + w ? `${c}${D}.quaternion = quatQuat(${w}, ${D}.quaternion);` : null, + h ? `${c}${D}.rgba *= ${h};` : null, + "}" + ].filter(Boolean); } - ); - } finally { - A && (self.URL || self.webkitURL).revokeObjectURL(A); - } -} -const AQ = class AQ { - constructor() { - this.queue = null, this.messages = {}, this.worker = new Ys(), this.worker.onmessage = (A) => this.onMessage(A); - } - onMessage(A) { - var D; - const { id: I, result: g, error: B, status: C } = A.data, E = this.messages[I]; - E && (B !== void 0 ? (delete this.messages[I], E.reject(B)) : C !== void 0 ? (D = E.onStatus) == null || D.call(E, C) : (delete this.messages[I], E.resolve(g))); - } - tryExclusive(A) { - return this.queue == null ? this.exclusive(A) : null; - } - async exclusive(A) { - const I = this.queue; - I != null ? await new Promise((g) => { - I.push(() => g(void 0)); - }) : this.queue = []; - try { - return await A(this); - } finally { - this.queue != null && (this.queue.length === 0 ? this.queue = null : this.queue.shift()()); - } - } - async call(A, I, g = {}) { - const B = ++AQ.currentId, C = new Promise((E, D) => { - this.messages[B] = { resolve: E, reject: D, onStatus: g.onStatus }; - }); - return this.worker.postMessage( - { id: B, name: A, args: I }, - { transfer: _Q(I) } - ), await C; - } - dispose() { - this.worker.terminate(); - const A = Object.values(this.messages); - this.messages = {}; - for (const I of A) - I.reject(new Error("Worker terminate")); - } -}; -AQ.currentId = 0; -let kg = AQ; -class Ks { - constructor(A = 4) { - this.numWorkers = 0, this.freelist = [], this.queue = [], this.maxWorkers = A; - } - async withWorker(A) { - const I = await this.allocWorker(); - try { - return await A(I); - } finally { - this.freeWorker(I); - } - } - async allocWorker() { - const A = this.freelist.pop(); - if (A) - return A; - if (this.numWorkers < this.maxWorkers) { - const I = new kg(); - return this.numWorkers += 1, I; - } - return new Promise((I) => { - this.queue.push(I); }); } - freeWorker(A) { - if (this.numWorkers > this.maxWorkers) { - this.numWorkers -= 1; - return; - } - const I = this.queue.shift(); - if (I) { - I(A); - return; - } - this.freelist.push(A); + dynoOut() { + return new Z(this, "gsplat"); } } -const BQ = new Ks(), Z = { type: "Gsplat" }, eA = { type: "CovSplat" }, tg = { type: "PackedSplats" }, BB = { type: "ExtSplats" }, xC = { type: "CovSplats" }, es = (Q) => new fC({ packedSplats: Q }), _I = (Q, A) => new PC({ packedSplats: Q, index: A }), lC = (Q, A, I, g) => new uC({ packedSplats: Q, index: A, base: I, count: g }), rs = (Q) => new TC({ extSplats: Q }), pC = (Q, A) => new OC({ extSplats: Q, index: A }), ns = (Q) => new mC({ covsplats: Q }), ds = (Q, A) => new ZC({ covSplats: Q, index: A }), Xg = (Q) => new VC({ gsplat: Q }), uA = (Q) => new XC({ gsplat: Q }), CI = ({ - gsplat: Q, +const Vg = (Q) => new cC({ covsplat: Q }), IB = ({ + covsplat: Q, flags: A, index: I, center: g, - scales: B, - quaternion: C, - rgba: E, - rgb: D, - opacity: i, - x: w, - y: s, - z: o, - r: y, - g: h, - b: k -}) => new WC({ - gsplat: Q, + rgba: B, + rgb: C, + opacity: E, + x: i, + y: o, + z: D, + r: s, + g: w, + b: G +}) => new kC({ + covsplat: Q, flags: A, index: I, center: g, - scales: B, - quaternion: C, - rgba: E, - rgb: D, - opacity: i, - x: w, - y: s, - z: o, - r: y, - g: h, - b: k -}), qQ = (Q) => new vC({ gsplat: Q }), CB = (Q, { - scale: A, - rotate: I, - translate: g, - recolor: B -}) => new zC({ gsplat: Q, scale: A, rotate: I, translate: g, recolor: B }), EB = (Q) => new AE({ index: Q }), xQ = (Q) => new IE({ index: Q }), HA = oA(` - struct Gsplat { - vec3 center; - uint flags; - vec3 scales; - int index; - vec4 quaternion; - vec4 rgba; - }; - const uint GSPLAT_FLAG_ACTIVE = 1u << 0u; - - bool isGsplatActive(uint flags) { - return (flags & GSPLAT_FLAG_ACTIVE) != 0u; - } -`), LI = oA(` - struct CovSplat { - vec3 center; - uint flags; - vec4 rgba; - vec3 xxyyzz; - int index; - vec3 xyxzyz; - }; - - bool isCovSplatActive(uint flags) { - return (flags & GSPLAT_FLAG_ACTIVE) != 0u; - } -`), CQ = oA(` - struct PackedSplats { - usampler2DArray textureArray; - int numSplats; - vec4 rgbMinMaxLnScaleMinMax; - bool lodOpacity; - }; -`); -class fC extends e { - constructor({ - packedSplats: A - }) { - super({ a: A, outKey: "numSplats", outTypeFunc: () => "int" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.numSplats} = ${I.a}.numSplats;` - ]; - } -} -const bC = oA(` - bool readPackedArray(usampler2DArray texture, int numSplats, vec4 rgbMinMaxLnScaleMinMax, int index, out Gsplat gsplat) { - if ((index >= 0) && (index < numSplats)) { - uvec4 packedData = texelFetch(texture, splatTexCoord(index), 0); - unpackSplatEncoding(packedData, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba, rgbMinMaxLnScaleMinMax); - return true; - } else { - return false; - } - } -`); -class PC extends d { - constructor({ - packedSplats: A, - index: I - }) { - super({ - inTypes: { packedSplats: tg, index: "int" }, - outTypes: { gsplat: Z }, - inputs: { packedSplats: A, index: I }, - globals: () => [HA, CQ, bC], - statements: ({ inputs: g, outputs: B }) => { - const { gsplat: C } = B; - if (!C) - return []; - const { packedSplats: E, index: D } = g; - let i; - return E && D ? i = z(` - ${C}.flags = 0u; - if (readPackedArray(${E}.textureArray, ${E}.numSplats, ${E}.rgbMinMaxLnScaleMinMax, ${D}, ${C})) { - if (${E}.lodOpacity) { - ${C}.rgba.a = 2.0 * ${C}.rgba.a; - } - bool zeroSize = all(equal(${C}.scales, vec3(0.0, 0.0, 0.0))); - ${C}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE; - } - `) : i = [`${C}.flags = 0u;`], i.push(`${C}.index = ${D ?? "0"};`), i; - } - }); - } - dynoOut() { - return new V(this, "gsplat"); - } -} -class uC extends d { - constructor({ - packedSplats: A, - index: I, - base: g, - count: B - }) { - super({ - inTypes: { - packedSplats: tg, - index: "int", - base: "int", - count: "int" - }, - outTypes: { gsplat: Z }, - inputs: { packedSplats: A, index: I, base: g, count: B }, - globals: () => [HA, CQ, bC], - statements: ({ inputs: C, outputs: E }) => { - const { gsplat: D } = E; - if (!D) - return []; - const { packedSplats: i, index: w, base: s, count: o } = C; - let y; - return i && w && s && o ? y = z(` - ${D}.flags = 0u; - if (readPackedArray(${i}.textureArray, ${i}.numSplats, ${i}.rgbMinMaxLnScaleMinMax, ${w}, ${D})) { - if (${i}.lodOpacity) { - ${D}.rgba.a = 2.0 * ${D}.rgba.a; - } - bool zeroSize = all(equal(${D}.scales, vec3(0.0, 0.0, 0.0))); - ${D}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE; - } - `) : y = [`${D}.flags = 0u;`], y.push(`${D}.index = ${w ?? "0"};`), y; - } - }); - } - dynoOut() { - return new V(this, "gsplat"); - } -} -const DB = oA(` - struct ExtSplats { - usampler2DArray textureArray1; - usampler2DArray textureArray2; - int numSplats; - }; -`); -class TC extends e { - constructor({ extSplats: A }) { - super({ a: A, outKey: "numSplats", outTypeFunc: () => "int" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.numSplats} = ${I.a}.numSplats;` - ]; - } -} -const qs = oA(` - void readExtArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out Gsplat gsplat) { - gsplat.flags = 0u; - if ((index >= 0) && (index < numSplats)) { - ivec3 coord = splatTexCoord(index); - uvec4 packed1 = texelFetch(texture1, coord, 0); - uvec4 packed2 = texelFetch(texture2, coord, 0); - unpackSplatExt(packed1, packed2, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba); - gsplat.flags = all(equal(gsplat.scales, vec3(0.0, 0.0, 0.0))) ? 0u : GSPLAT_FLAG_ACTIVE; - gsplat.index = index; - } - } -`); -class OC extends d { - constructor({ - extSplats: A, - index: I - }) { - super({ - inTypes: { extSplats: BB, index: "int" }, - outTypes: { gsplat: Z }, - inputs: { extSplats: A, index: I }, - globals: () => [HA, DB, qs], - statements: ({ inputs: g, outputs: B }) => { - const { gsplat: C } = B; - if (!C) - return [`${C}.flags = 0u;`]; - const { extSplats: E, index: D } = g; - return E && D ? z(` - readExtArrays(${E}.textureArray1, ${E}.textureArray2, ${E}.numSplats, ${D}, ${C}); - `) : [`${C}.flags = 0u;`]; - } - }); - } - dynoOut() { - return new V(this, "gsplat"); - } -} -class mC extends e { - constructor({ covsplats: A }) { - super({ a: A, outKey: "numSplats", outTypeFunc: () => "int" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.numSplats} = ${I.a}.numSplats;` - ]; - } -} -const xs = oA(` - void readCovArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out CovSplat covsplat) { - covsplat.flags = 0u; - if ((index >= 0) && (index < numSplats)) { - ivec3 coord = splatTexCoord(index); - uvec4 packed1 = texelFetch(texture1, coord, 0); - uvec4 packed2 = texelFetch(texture2, coord, 0); - unpackSplatExtCov(packed1, packed2, covsplat.center, covsplat.rgba, covsplat.xxyyzz, covsplat.xyxzyz); - covsplat.flags = (all(equal(covsplat.xxyyzz, vec3(0.0))) && all(equal(covsplat.xyxzyz, vec3(0.0)))) ? 0u : GSPLAT_FLAG_ACTIVE; - gsplat.index = index; - } - } -`); -class ZC extends d { - constructor({ - covSplats: A, - index: I - }) { - super({ - inTypes: { covSplats: xC, index: "int" }, - outTypes: { covsplat: eA }, - inputs: { covSplats: A, index: I }, - globals: () => [HA, LI, xs], - statements: ({ inputs: g, outputs: B }) => { - const { covsplat: C } = B; - if (!C) - return [`${C}.flags = 0u;`]; - const { covSplats: E, index: D } = g; - return E && D ? z(` - readCovArrays(${E}.textureArray, ${E}.numSplats, ${D}, ${C}); - `) : [`${C}.flags = 0u;`]; - } - }); - } - dynoOut() { - return new V(this, "covsplat"); - } -} -class VC extends d { - constructor({ gsplat: A }) { - super({ - inTypes: { gsplat: Z }, - outTypes: { covsplat: eA }, - inputs: { gsplat: A }, - globals: () => [HA, LI], - statements: ({ inputs: I, outputs: g }) => { - const { gsplat: B } = I, { covsplat: C } = g; - return B ? z(` - ${C}.flags = 0u; - if (isGsplatActive(${B}.flags)) { - ${C}.flags = ${B}.flags; - ${C}.index = ${B}.index; - ${C}.rgba = ${B}.rgba; - ${C}.center = ${B}.center; - mat3 m = scaleQuaternionToMatrix(${B}.scales, ${B}.quaternion); - m = m * transpose(m); - ${C}.xxyyzz = vec3(m[0][0], m[1][1], m[2][2]); - ${C}.xyxzyz = vec3(m[0][1], m[0][2], m[1][2]); - } - `) : [`${C}.flags = 0u;`]; - } - }); - } - dynoOut() { - return new V(this, "covsplat"); - } -} -class XC extends d { - constructor({ gsplat: A }) { + rgba: B, + rgb: C, + opacity: E, + x: i, + y: o, + z: D, + r: s, + g: w, + b: G +}); +class cC extends q { + constructor({ covsplat: A }) { super({ - inTypes: { gsplat: Z }, + inTypes: { covsplat: nA }, outTypes: { flags: "uint", active: "bool", index: "int", center: "vec3", - scales: "vec3", - quaternion: "vec4", rgba: "vec4", rgb: "vec3", opacity: "float", @@ -2164,73 +1187,65 @@ class XC extends d { g: "float", b: "float" }, - inputs: { gsplat: A }, - globals: () => [HA], + inputs: { covsplat: A }, + globals: () => [LI], statements: ({ inputs: I, outputs: g }) => { - const { gsplat: B } = I, { + const { covsplat: B } = I, { flags: C, active: E, - index: D, - center: i, - scales: w, - quaternion: s, - rgba: o, - rgb: y, - opacity: h, - x: k, - y: R, - z: F, - r: a, - g: S, - b: M + index: i, + center: o, + rgba: D, + rgb: s, + opacity: w, + x: G, + y: h, + z: c, + r: t, + g: y, + b: k } = g; return [ C ? `${C} = ${B ? `${B}.flags` : "0u"};` : null, - E ? `${E} = isGsplatActive(${B ? `${B}.flags` : "0u"});` : null, - D ? `${D} = ${B ? `${B}.index` : "0"};` : null, - i ? `${i} = ${B ? `${B}.center` : "vec3(0.0, 0.0, 0.0)"};` : null, - w ? `${w} = ${B ? `${B}.scales` : "vec3(0.0, 0.0, 0.0)"};` : null, - s ? `${s} = ${B ? `${B}.quaternion` : "vec4(0.0, 0.0, 0.0, 1.0)"};` : null, - o ? `${o} = ${B ? `${B}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)"};` : null, - y ? `${y} = ${B ? `${B}.rgba.rgb` : "vec3(0.0, 0.0, 0.0)"};` : null, - h ? `${h} = ${B ? `${B}.rgba.a` : "0.0"};` : null, - k ? `${k} = ${B ? `${B}.center.x` : "0.0"};` : null, - R ? `${R} = ${B ? `${B}.center.y` : "0.0"};` : null, - F ? `${F} = ${B ? `${B}.center.z` : "0.0"};` : null, - a ? `${a} = ${B ? `${B}.rgba.r` : "0.0"};` : null, - S ? `${S} = ${B ? `${B}.rgba.g` : "0.0"};` : null, - M ? `${M} = ${B ? `${B}.rgba.b` : "0.0"};` : null + E ? `${E} = isCovSplatActive(${B ? `${B}.flags` : "0u"});` : null, + i ? `${i} = ${B ? `${B}.index` : "0"};` : null, + o ? `${o} = ${B ? `${B}.center` : "vec3(0.0, 0.0, 0.0)"};` : null, + D ? `${D} = ${B ? `${B}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)"};` : null, + s ? `${s} = ${B ? `${B}.rgba.rgb` : "vec3(0.0, 0.0, 0.0)"};` : null, + w ? `${w} = ${B ? `${B}.rgba.a` : "0.0"};` : null, + G ? `${G} = ${B ? `${B}.center.x` : "0.0"};` : null, + h ? `${h} = ${B ? `${B}.center.y` : "0.0"};` : null, + c ? `${c} = ${B ? `${B}.center.z` : "0.0"};` : null, + t ? `${t} = ${B ? `${B}.rgba.r` : "0.0"};` : null, + y ? `${y} = ${B ? `${B}.rgba.g` : "0.0"};` : null, + k ? `${k} = ${B ? `${B}.rgba.b` : "0.0"};` : null ].filter(Boolean); } }); } } -class WC extends d { +class kC extends q { constructor({ - gsplat: A, + covsplat: A, flags: I, index: g, center: B, - scales: C, - quaternion: E, - rgba: D, - rgb: i, - opacity: w, - x: s, - y: o, - z: y, - r: h, - g: k, - b: R + rgba: C, + rgb: E, + opacity: i, + x: o, + y: D, + z: s, + r: w, + g: G, + b: h }) { super({ inTypes: { - gsplat: Z, + covsplat: nA, flags: "uint", index: "int", center: "vec3", - scales: "vec3", - quaternion: "vec4", rgba: "vec4", rgb: "vec3", opacity: "float", @@ -2241,309 +1256,66 @@ class WC extends d { g: "float", b: "float" }, - outTypes: { gsplat: Z }, + outTypes: { covsplat: nA }, inputs: { - gsplat: A, + covsplat: A, flags: I, index: g, center: B, - scales: C, - quaternion: E, - rgba: D, - rgb: i, - opacity: w, - x: s, - y: o, - z: y, - r: h, - g: k, - b: R + rgba: C, + rgb: E, + opacity: i, + x: o, + y: D, + z: s, + r: w, + g: G, + b: h }, - globals: () => [HA], - statements: ({ inputs: F, outputs: a }) => { - const { gsplat: S } = a; - if (!S) + globals: () => [LI], + statements: ({ inputs: c, outputs: t }) => { + const { covsplat: y } = t; + if (!y) return []; const { - gsplat: M, - flags: c, - index: N, - center: U, - scales: J, - quaternion: t, - rgba: H, - rgb: K, - opacity: Y, - x: L, - y: q, + covsplat: k, + flags: F, + index: R, + center: S, + rgba: N, + rgb: M, + opacity: U, + x: e, + y: J, z: n, - r, - g: p, - b: m - } = F; + r: H, + g: L, + b: l + } = c; return [ - `${S}.flags = ${c ?? (M ? `${M}.flags` : "0u")};`, - `${S}.index = ${N ?? (M ? `${M}.index` : "0")};`, - `${S}.center = ${U ?? (M ? `${M}.center` : "vec3(0.0, 0.0, 0.0)")};`, - `${S}.scales = ${J ?? (M ? `${M}.scales` : "vec3(0.0, 0.0, 0.0)")};`, - `${S}.quaternion = ${t ?? (M ? `${M}.quaternion` : "vec4(0.0, 0.0, 0.0, 1.0)")};`, - `${S}.rgba = ${H ?? (M ? `${M}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)")};`, - K ? `${S}.rgba.rgb = ${K};` : null, - Y ? `${S}.rgba.a = ${Y};` : null, - L ? `${S}.center.x = ${L};` : null, - q ? `${S}.center.y = ${q};` : null, - n ? `${S}.center.z = ${n};` : null, - r ? `${S}.rgba.r = ${r};` : null, - p ? `${S}.rgba.g = ${p};` : null, - m ? `${S}.rgba.b = ${m};` : null + `${y}.flags = ${F ?? (k ? `${k}.flags` : "0u")};`, + `${y}.index = ${R ?? (k ? `${k}.index` : "0")};`, + `${y}.center = ${S ?? (k ? `${k}.center` : "vec3(0.0, 0.0, 0.0)")};`, + `${y}.rgba = ${N ?? (k ? `${k}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)")};`, + M ? `${y}.rgba.rgb = ${M};` : null, + U ? `${y}.rgba.a = ${U};` : null, + e ? `${y}.center.x = ${e};` : null, + J ? `${y}.center.y = ${J};` : null, + n ? `${y}.center.z = ${n};` : null, + H ? `${y}.rgba.r = ${H};` : null, + L ? `${y}.rgba.g = ${L};` : null, + l ? `${y}.rgba.b = ${l};` : null, + `${y}.xxyyzz = ${k ? `${k}.xxyyzz` : "vec3(0.0, 0.0, 0.0)"};`, + `${y}.xyxzyz = ${k ? `${k}.xyxzyz` : "vec3(0.0, 0.0, 0.0)"};` ].filter(Boolean); } }); } dynoOut() { - return new V(this, "gsplat"); + return new Z(this, "covsplat"); } } -const jC = oA(` - vec3 gsplatNormal(vec3 scales, vec4 quaternion) { - float minScale = min(scales.x, min(scales.y, scales.z)); - vec3 normal; - if (scales.z == minScale) { - normal = vec3(0.0, 0.0, 1.0); - } else if (scales.y == minScale) { - normal = vec3(0.0, 1.0, 0.0); - } else { - normal = vec3(1.0, 0.0, 0.0); - } - return quatVec(quaternion, normal); - } -`); -class vC extends e { - constructor({ gsplat: A }) { - super({ a: A, outKey: "normal", outTypeFunc: () => "vec3" }), this.globals = () => [HA, jC], this.statements = ({ inputs: I, outputs: g }) => [ - `${g.normal} = gsplatNormal(${I.a}.scales, ${I.a}.quaternion);` - ]; - } -} -class zC extends d { - constructor({ - gsplat: A, - scale: I, - rotate: g, - translate: B, - recolor: C - }) { - super({ - inTypes: { - gsplat: Z, - scale: "float", - rotate: "vec4", - translate: "vec3", - recolor: "vec4" - }, - outTypes: { gsplat: Z }, - inputs: { gsplat: A, scale: I, rotate: g, translate: B, recolor: C }, - globals: () => [HA], - statements: ({ inputs: E, outputs: D, compile: i }) => { - const { gsplat: w } = D; - if (!w || !E.gsplat) - return []; - const { scale: s, rotate: o, translate: y, recolor: h } = E, k = i.indent; - return [ - `${w} = ${E.gsplat};`, - `if (isGsplatActive(${w}.flags)) {`, - s ? `${k}${w}.center *= ${s};` : null, - o ? `${k}${w}.center = quatVec(${o}, ${w}.center);` : null, - y ? `${k}${w}.center += ${y};` : null, - s ? `${k}${w}.scales *= ${s};` : null, - o ? `${k}${w}.quaternion = quatQuat(${o}, ${w}.quaternion);` : null, - h ? `${k}${w}.rgba *= ${h};` : null, - "}" - ].filter(Boolean); - } - }); - } - dynoOut() { - return new V(this, "gsplat"); - } -} -const Wg = (Q) => new _C({ covsplat: Q }), iB = ({ - covsplat: Q, - flags: A, - index: I, - center: g, - rgba: B, - rgb: C, - opacity: E, - x: D, - y: i, - z: w, - r: s, - g: o, - b: y -}) => new $C({ - covsplat: Q, - flags: A, - index: I, - center: g, - rgba: B, - rgb: C, - opacity: E, - x: D, - y: i, - z: w, - r: s, - g: o, - b: y -}); -class _C extends d { - constructor({ covsplat: A }) { - super({ - inTypes: { covsplat: eA }, - outTypes: { - flags: "uint", - active: "bool", - index: "int", - center: "vec3", - rgba: "vec4", - rgb: "vec3", - opacity: "float", - x: "float", - y: "float", - z: "float", - r: "float", - g: "float", - b: "float" - }, - inputs: { covsplat: A }, - globals: () => [LI], - statements: ({ inputs: I, outputs: g }) => { - const { covsplat: B } = I, { - flags: C, - active: E, - index: D, - center: i, - rgba: w, - rgb: s, - opacity: o, - x: y, - y: h, - z: k, - r: R, - g: F, - b: a - } = g; - return [ - C ? `${C} = ${B ? `${B}.flags` : "0u"};` : null, - E ? `${E} = isCovSplatActive(${B ? `${B}.flags` : "0u"});` : null, - D ? `${D} = ${B ? `${B}.index` : "0"};` : null, - i ? `${i} = ${B ? `${B}.center` : "vec3(0.0, 0.0, 0.0)"};` : null, - w ? `${w} = ${B ? `${B}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)"};` : null, - s ? `${s} = ${B ? `${B}.rgba.rgb` : "vec3(0.0, 0.0, 0.0)"};` : null, - o ? `${o} = ${B ? `${B}.rgba.a` : "0.0"};` : null, - y ? `${y} = ${B ? `${B}.center.x` : "0.0"};` : null, - h ? `${h} = ${B ? `${B}.center.y` : "0.0"};` : null, - k ? `${k} = ${B ? `${B}.center.z` : "0.0"};` : null, - R ? `${R} = ${B ? `${B}.rgba.r` : "0.0"};` : null, - F ? `${F} = ${B ? `${B}.rgba.g` : "0.0"};` : null, - a ? `${a} = ${B ? `${B}.rgba.b` : "0.0"};` : null - ].filter(Boolean); - } - }); - } -} -class $C extends d { - constructor({ - covsplat: A, - flags: I, - index: g, - center: B, - rgba: C, - rgb: E, - opacity: D, - x: i, - y: w, - z: s, - r: o, - g: y, - b: h - }) { - super({ - inTypes: { - covsplat: eA, - flags: "uint", - index: "int", - center: "vec3", - rgba: "vec4", - rgb: "vec3", - opacity: "float", - x: "float", - y: "float", - z: "float", - r: "float", - g: "float", - b: "float" - }, - outTypes: { covsplat: eA }, - inputs: { - covsplat: A, - flags: I, - index: g, - center: B, - rgba: C, - rgb: E, - opacity: D, - x: i, - y: w, - z: s, - r: o, - g: y, - b: h - }, - globals: () => [LI], - statements: ({ inputs: k, outputs: R }) => { - const { covsplat: F } = R; - if (!F) - return []; - const { - covsplat: a, - flags: S, - index: M, - center: c, - rgba: N, - rgb: U, - opacity: J, - x: t, - y: H, - z: K, - r: Y, - g: L, - b: q - } = k; - return [ - `${F}.flags = ${S ?? (a ? `${a}.flags` : "0u")};`, - `${F}.index = ${M ?? (a ? `${a}.index` : "0")};`, - `${F}.center = ${c ?? (a ? `${a}.center` : "vec3(0.0, 0.0, 0.0)")};`, - `${F}.rgba = ${N ?? (a ? `${a}.rgba` : "vec4(0.0, 0.0, 0.0, 0.0)")};`, - U ? `${F}.rgba.rgb = ${U};` : null, - J ? `${F}.rgba.a = ${J};` : null, - t ? `${F}.center.x = ${t};` : null, - H ? `${F}.center.y = ${H};` : null, - K ? `${F}.center.z = ${K};` : null, - Y ? `${F}.rgba.r = ${Y};` : null, - L ? `${F}.rgba.g = ${L};` : null, - q ? `${F}.rgba.b = ${q};` : null, - `${F}.xxyyzz = ${a ? `${a}.xxyyzz` : "vec3(0.0, 0.0, 0.0)"};`, - `${F}.xyxzyz = ${a ? `${a}.xyxzyz` : "vec3(0.0, 0.0, 0.0)"};` - ].filter(Boolean); - } - }); - } - dynoOut() { - return new V(this, "covsplat"); - } -} -class AE extends d { +class FC extends q { constructor({ index: A }) { super({ inTypes: { index: "int" }, @@ -2556,10 +1328,10 @@ class AE extends d { }); } dynoOut() { - return new V(this, "coord"); + return new Z(this, "coord"); } } -class IE extends d { +class NC extends q { constructor({ index: A }) { super({ inTypes: { index: "int" }, @@ -2572,19 +1344,19 @@ class IE extends d { }); } dynoOut() { - return new V(this, "coord"); + return new Z(this, "coord"); } } -const wB = (Q, A) => new EE({ gsplat: Q, rgbMinMaxLnScaleMinMax: A }), gE = (Q, A) => new DE({ covsplat: Q, rgbMinMaxLnScaleMinMax: A }), QE = (Q) => new iE({ gsplat: Q }), lQ = (Q) => new wE({ covsplat: Q }), BE = (Q, A, I, g) => new ps({ gsplat: Q, viewCenter: A, viewDir: I, sortRadial: g }), CE = (Q, A, I, g) => new fs({ covsplat: Q, viewCenter: A, viewDir: I, sortRadial: g }), ls = (Q) => new oB({ rgba8: Q }); -class EE extends d { +const gB = (Q, A) => new JC({ gsplat: Q, rgbMinMaxLnScaleMinMax: A }), SC = (Q, A) => new UC({ covsplat: Q, rgbMinMaxLnScaleMinMax: A }), RC = (Q) => new LC({ gsplat: Q }), nQ = (Q) => new HC({ covsplat: Q }), MC = (Q, A, I, g) => new tw({ gsplat: Q, viewCenter: A, viewDir: I, sortRadial: g }), eC = (Q, A, I, g) => new yw({ covsplat: Q, viewCenter: A, viewDir: I, sortRadial: g }), hw = (Q) => new QB({ rgba8: Q }); +class JC extends q { constructor({ gsplat: A, rgbMinMaxLnScaleMinMax: I }) { super({ - inTypes: { gsplat: Z, rgbMinMaxLnScaleMinMax: "vec4" }, + inTypes: { gsplat: j, rgbMinMaxLnScaleMinMax: "vec4" }, inputs: { gsplat: A, rgbMinMaxLnScaleMinMax: I }, - globals: () => [HA], + globals: () => [YA], statements: ({ inputs: g, outputs: B }) => { const { gsplat: C, rgbMinMaxLnScaleMinMax: E } = g; return C && E ? z(` @@ -2598,13 +1370,13 @@ class EE extends d { }); } } -class DE extends d { +class UC extends q { constructor({ covsplat: A, rgbMinMaxLnScaleMinMax: I }) { super({ - inTypes: { covsplat: eA, rgbMinMaxLnScaleMinMax: "vec4" }, + inTypes: { covsplat: nA, rgbMinMaxLnScaleMinMax: "vec4" }, inputs: { covsplat: A, rgbMinMaxLnScaleMinMax: I }, globals: () => [LI], statements: ({ inputs: g }) => { @@ -2620,14 +1392,14 @@ class DE extends d { }); } } -class iE extends d { +class LC extends q { constructor({ gsplat: A }) { super({ - inTypes: { gsplat: Z }, + inTypes: { gsplat: j }, inputs: { gsplat: A }, - globals: () => [HA], + globals: () => [YA], statements: ({ inputs: I }) => { const { gsplat: g } = I; return g ? z(` @@ -2642,12 +1414,12 @@ class iE extends d { }); } } -class wE extends d { +class HC extends q { constructor({ covsplat: A }) { super({ - inTypes: { covsplat: eA }, + inTypes: { covsplat: nA }, inputs: { covsplat: A }, globals: () => [LI], statements: ({ inputs: I }) => { @@ -2664,7 +1436,7 @@ class wE extends d { }); } } -class ps extends d { +class tw extends q { constructor({ gsplat: A, viewCenter: I, @@ -2673,24 +1445,24 @@ class ps extends d { }) { super({ inTypes: { - gsplat: Z, + gsplat: j, viewCenter: "vec3", viewDir: "vec3", sortRadial: "bool" }, inputs: { gsplat: A, viewCenter: I, viewDir: g, sortRadial: B }, - globals: () => [HA], + globals: () => [YA], statements: ({ inputs: C }) => { - const { gsplat: E, viewCenter: D, viewDir: i, sortRadial: w } = C; - return E && D && i && w ? z(` + const { gsplat: E, viewCenter: i, viewDir: o, sortRadial: D } = C; + return E && i && o && D ? z(` float metric = 1.0 / 0.0; if (isGsplatActive(${E}.flags)) { - vec3 center = ${E}.center - ${D}; - if (${w}) { + vec3 center = ${E}.center - ${i}; + if (${D}) { metric = length(center); } else { float bias = 100.0; // reduce popping - metric = dot(center, ${i}) + bias; + metric = dot(center, ${o}) + bias; } } target3 = floatToVec4(metric); @@ -2699,7 +1471,7 @@ class ps extends d { }); } } -class fs extends d { +class yw extends q { constructor({ covsplat: A, viewCenter: I, @@ -2708,7 +1480,7 @@ class fs extends d { }) { super({ inTypes: { - covsplat: eA, + covsplat: nA, viewCenter: "vec3", viewDir: "vec3", sortRadial: "bool" @@ -2716,16 +1488,16 @@ class fs extends d { inputs: { covsplat: A, viewCenter: I, viewDir: g, sortRadial: B }, globals: () => [LI], statements: ({ inputs: C }) => { - const { covsplat: E, viewCenter: D, viewDir: i, sortRadial: w } = C; - return E && D && i && w ? z(` + const { covsplat: E, viewCenter: i, viewDir: o, sortRadial: D } = C; + return E && i && o && D ? z(` float metric = 1.0 / 0.0; if (isCovSplatActive(${E}.flags)) { - vec3 center = ${E}.center - ${D}; - if (${w}) { + vec3 center = ${E}.center - ${i}; + if (${D}) { metric = length(center); } else { float bias = 100.0; // reduce popping - metric = dot(center, ${i}) + bias; + metric = dot(center, ${o}) + bias; } } target3 = floatToVec4(metric); @@ -2734,7 +1506,7 @@ class fs extends d { }); } } -class oB extends d { +class QB extends q { constructor({ rgba8: A }) { super({ inTypes: { rgba8: "vec4" }, @@ -2745,11 +1517,11 @@ class oB extends d { }); } dynoOut() { - return new V(this, "rgba8"); + return new Z(this, "rgba8"); } } -const bs = (Q, A, I) => new x({ key: Q, type: A, value: I }), Ps = (Q = !1, A) => new bI({ key: A, value: Q }), us = (Q = 0, A) => new oE({ key: A, value: Q }), Ts = (Q = 0, A) => new EI({ key: A, value: Q }), wI = (Q = 0, A) => new pI({ key: A, value: Q }), Os = (Q, A) => new sE({ key: A, value: Q }), ms = (Q, A) => new GE({ key: A, value: Q }), Zs = (Q, A) => new yE({ key: A, value: Q }), Vs = (Q, A) => new hE({ key: A, value: Q }), Xs = (Q, A) => new RE({ key: A, value: Q }), Ws = (Q, A) => new kE({ key: A, value: Q }), js = (Q, A) => new FE({ key: A, value: Q }), cI = (Q, A) => new DI({ key: A, value: Q }), vs = (Q, A) => new aE({ key: A, value: Q }), zs = (Q, A) => new SE({ key: A, value: Q }), _s = (Q, A) => new NE({ key: A, value: Q }), $s = (Q, A) => new mI({ key: A, value: Q }), AG = (Q, A) => new cE({ key: A, value: Q }), IG = (Q, A) => new ME({ key: A, value: Q }), gG = (Q, A) => new JE({ key: A, value: Q }), QG = (Q, A) => new UE({ key: A, value: Q }), BG = (Q, A) => new sB({ key: A, value: Q }), CG = (Q, A) => new tE({ key: A, value: Q }), EG = (Q, A) => new HE({ key: A, value: Q }), DG = (Q, A) => new LE({ key: A, value: Q }), iG = (Q, A) => new YE({ key: A, value: Q }), wG = (Q, A) => new KE({ key: A, value: Q }), oG = (Q, A) => new eE({ key: A, value: Q }), sG = (Q, A) => new rE({ key: A, value: Q }), GG = (Q, A) => new EQ({ key: A, value: Q }), yG = (Q, A) => new nE({ key: A, value: Q }), hG = (Q, A) => new dE({ key: A, value: Q }), RG = (Q, A) => new dA({ key: A, value: Q }), kG = (Q, A) => new qE({ key: Q, value: A }), FG = (Q, A) => new xE({ key: A, value: Q }), aG = (Q, A) => new lE({ key: A, value: Q }), SG = (Q, A) => new pE({ key: A, value: Q }), NG = (Q, A) => new fE({ key: A, value: Q }), cG = (Q, A) => new bE({ key: A, value: Q }), MG = (Q, A) => new PE({ key: A, value: Q }), JG = (Q, A) => new uE({ key: A, value: Q }), UG = (Q, A) => new TE({ key: A, value: Q }), tG = (Q, A) => new OE({ key: A, value: Q }), HG = (Q, A) => new mE({ key: A, value: Q }); -class x extends d { +const cw = (Q, A, I) => new x({ key: Q, type: A, value: I }), kw = (Q = !1, A) => new eg({ key: A, value: Q }), Fw = (Q = 0, A) => new nC({ key: A, value: Q }), Nw = (Q = 0, A) => new BI({ key: A, value: Q }), EI = (Q = 0, A) => new OI({ key: A, value: Q }), Sw = (Q, A) => new YC({ key: A, value: Q }), Rw = (Q, A) => new rC({ key: A, value: Q }), Mw = (Q, A) => new KC({ key: A, value: Q }), ew = (Q, A) => new dC({ key: A, value: Q }), Jw = (Q, A) => new qC({ key: A, value: Q }), Uw = (Q, A) => new lC({ key: A, value: Q }), Lw = (Q, A) => new xC({ key: A, value: Q }), SI = (Q, A) => new UI({ key: A, value: Q }), Hw = (Q, A) => new fC({ key: A, value: Q }), nw = (Q, A) => new pC({ key: A, value: Q }), Yw = (Q, A) => new uC({ key: A, value: Q }), rw = (Q, A) => new zI({ key: A, value: Q }), Kw = (Q, A) => new PC({ key: A, value: Q }), dw = (Q, A) => new bC({ key: A, value: Q }), qw = (Q, A) => new TC({ key: A, value: Q }), lw = (Q, A) => new mC({ key: A, value: Q }), xw = (Q, A) => new BB({ key: A, value: Q }), fw = (Q, A) => new VC({ key: A, value: Q }), pw = (Q, A) => new ZC({ key: A, value: Q }), uw = (Q, A) => new OC({ key: A, value: Q }), Pw = (Q, A) => new WC({ key: A, value: Q }), bw = (Q, A) => new vC({ key: A, value: Q }), Tw = (Q, A) => new XC({ key: A, value: Q }), mw = (Q, A) => new jC({ key: A, value: Q }), Vw = (Q, A) => new QQ({ key: A, value: Q }), Zw = (Q, A) => new zC({ key: A, value: Q }), Ow = (Q, A) => new _C({ key: A, value: Q }), Ww = (Q, A) => new OA({ key: A, value: Q }), vw = (Q, A) => new $C({ key: Q, value: A }), Xw = (Q, A) => new AE({ key: A, value: Q }), jw = (Q, A) => new IE({ key: A, value: Q }), zw = (Q, A) => new gE({ key: A, value: Q }), _w = (Q, A) => new QE({ key: A, value: Q }), $w = (Q, A) => new BE({ key: A, value: Q }), As = (Q, A) => new CE({ key: A, value: Q }), Is = (Q, A) => new EE({ key: A, value: Q }), gs = (Q, A) => new iE({ key: A, value: Q }), Qs = (Q, A) => new DE({ key: A, value: Q }), Bs = (Q, A) => new oE({ key: A, value: Q }); +class x extends q { constructor({ key: A, type: I, @@ -2762,22 +1534,22 @@ class x extends d { outTypes: { [A]: I }, update: () => { if (C) { - const D = C(this.value); - D !== void 0 && (this.value = D); + const i = C(this.value); + i !== void 0 && (this.value = i); } this.uniform.value = this.value; }, - generate: ({ inputs: D, outputs: i }) => { - const w = (E == null ? void 0 : E({ inputs: D, outputs: i })) ?? [], s = {}, o = i[A]; - return o && (w.push(`uniform ${vQ(o, I, g)};`), s[o] = this.uniform), { globals: w, uniforms: s }; + generate: ({ inputs: i, outputs: o }) => { + const D = (E == null ? void 0 : E({ inputs: i, outputs: o })) ?? [], s = {}, w = o[A]; + return w && (D.push(`uniform ${zQ(w, I, g)};`), s[w] = this.uniform), { globals: D, uniforms: s }; } }), this.type = I, this.count = g, this.value = B, this.uniform = { value: B }, this.outKey = A; } dynoOut() { - return new V(this, this.outKey); + return new Z(this, this.outKey); } } -class bI extends x { +class eg extends x { constructor({ key: A, value: I, @@ -2786,7 +1558,7 @@ class bI extends x { super({ key: A, type: "bool", value: I, update: g }); } } -class oE extends x { +class nC extends x { constructor({ key: A, value: I, @@ -2795,7 +1567,7 @@ class oE extends x { super({ key: A, type: "uint", value: I, update: g }); } } -class EI extends x { +class BI extends x { constructor({ key: A, value: I, @@ -2804,7 +1576,7 @@ class EI extends x { super({ key: A, type: "int", value: I, update: g }); } } -class pI extends x { +class OI extends x { constructor({ key: A, value: I, @@ -2813,7 +1585,7 @@ class pI extends x { super({ key: A, type: "float", value: I, update: g }); } } -class sE extends x { +class YC extends x { constructor({ key: A, value: I, @@ -2822,7 +1594,7 @@ class sE extends x { super({ key: A, type: "bvec2", value: I, update: g }); } } -class GE extends x { +class rC extends x { constructor({ key: A, value: I, @@ -2831,7 +1603,7 @@ class GE extends x { super({ key: A, type: "uvec2", value: I, update: g }); } } -class yE extends x { +class KC extends x { constructor({ key: A, value: I, @@ -2840,7 +1612,7 @@ class yE extends x { super({ key: A, type: "ivec2", value: I, update: g }); } } -class hE extends x { +class dC extends x { constructor({ key: A, value: I, @@ -2849,7 +1621,7 @@ class hE extends x { super({ key: A, type: "vec2", value: I, update: g }); } } -class RE extends x { +class qC extends x { constructor({ key: A, value: I, @@ -2858,7 +1630,7 @@ class RE extends x { super({ key: A, type: "bvec3", value: I, update: g }); } } -class kE extends x { +class lC extends x { constructor({ key: A, value: I, @@ -2867,7 +1639,7 @@ class kE extends x { super({ key: A, type: "uvec3", value: I, update: g }); } } -class FE extends x { +class xC extends x { constructor({ key: A, value: I, @@ -2876,7 +1648,7 @@ class FE extends x { super({ key: A, type: "ivec3", value: I, update: g }); } } -class DI extends x { +class UI extends x { constructor({ key: A, value: I, @@ -2885,7 +1657,7 @@ class DI extends x { super({ key: A, type: "vec3", value: I, update: g }); } } -class aE extends x { +class fC extends x { constructor({ key: A, value: I, @@ -2894,7 +1666,7 @@ class aE extends x { super({ key: A, type: "bvec4", value: I, update: g }); } } -class SE extends x { +class pC extends x { constructor({ key: A, value: I, @@ -2903,7 +1675,7 @@ class SE extends x { super({ key: A, type: "uvec4", value: I, update: g }); } } -class NE extends x { +class uC extends x { constructor({ key: A, value: I, @@ -2912,7 +1684,7 @@ class NE extends x { super({ key: A, type: "ivec4", value: I, update: g }); } } -class mI extends x { +class zI extends x { constructor({ key: A, value: I, @@ -2921,7 +1693,7 @@ class mI extends x { super({ key: A, type: "vec4", value: I, update: g }); } } -class cE extends x { +class PC extends x { constructor({ key: A, value: I, @@ -2930,7 +1702,7 @@ class cE extends x { super({ key: A, type: "mat2", value: I, update: g }); } } -class ME extends x { +class bC extends x { constructor({ key: A, value: I, @@ -2939,7 +1711,7 @@ class ME extends x { super({ key: A, type: "mat2x2", value: I, update: g }); } } -class JE extends x { +class TC extends x { constructor({ key: A, value: I, @@ -2948,7 +1720,7 @@ class JE extends x { super({ key: A, type: "mat2x3", value: I, update: g }); } } -class UE extends x { +class mC extends x { constructor({ key: A, value: I, @@ -2957,7 +1729,7 @@ class UE extends x { super({ key: A, type: "mat2x4", value: I, update: g }); } } -class sB extends x { +class BB extends x { constructor({ key: A, value: I, @@ -2966,7 +1738,7 @@ class sB extends x { super({ key: A, type: "mat3", value: I, update: g }); } } -class tE extends x { +class VC extends x { constructor({ key: A, value: I, @@ -2975,7 +1747,7 @@ class tE extends x { super({ key: A, type: "mat3x2", value: I, update: g }); } } -class HE extends x { +class ZC extends x { constructor({ key: A, value: I, @@ -2984,7 +1756,7 @@ class HE extends x { super({ key: A, type: "mat3x3", value: I, update: g }); } } -class LE extends x { +class OC extends x { constructor({ key: A, value: I, @@ -2993,7 +1765,7 @@ class LE extends x { super({ key: A, type: "mat3x4", value: I, update: g }); } } -class YE extends x { +class WC extends x { constructor({ key: A, value: I, @@ -3002,7 +1774,7 @@ class YE extends x { super({ key: A, type: "mat4", value: I, update: g }); } } -class KE extends x { +class vC extends x { constructor({ key: A, value: I, @@ -3011,7 +1783,7 @@ class KE extends x { super({ key: A, type: "mat4x2", value: I, update: g }); } } -class eE extends x { +class XC extends x { constructor({ key: A, value: I, @@ -3020,7 +1792,7 @@ class eE extends x { super({ key: A, type: "mat4x3", value: I, update: g }); } } -class rE extends x { +class jC extends x { constructor({ key: A, value: I, @@ -3029,7 +1801,7 @@ class rE extends x { super({ key: A, type: "mat4x4", value: I, update: g }); } } -class EQ extends x { +class QQ extends x { constructor({ key: A, value: I, @@ -3038,7 +1810,7 @@ class EQ extends x { super({ key: A, type: "usampler2D", value: I, update: g }); } } -class nE extends x { +class zC extends x { constructor({ key: A, value: I, @@ -3047,7 +1819,7 @@ class nE extends x { super({ key: A, type: "isampler2D", value: I, update: g }); } } -class dE extends x { +class _C extends x { constructor({ key: A, value: I, @@ -3056,7 +1828,7 @@ class dE extends x { super({ key: A, type: "sampler2D", value: I, update: g }); } } -class dA extends x { +class OA extends x { constructor({ key: A, value: I, @@ -3065,7 +1837,7 @@ class dA extends x { super({ key: A, type: "usampler2DArray", value: I, update: g }); } } -class qE extends x { +class $C extends x { constructor({ key: A, value: I, @@ -3074,7 +1846,7 @@ class qE extends x { super({ key: A, type: "isampler2DArray", value: I, update: g }); } } -class xE extends x { +class AE extends x { constructor({ key: A, value: I, @@ -3083,7 +1855,7 @@ class xE extends x { super({ key: A, type: "sampler2DArray", value: I, update: g }); } } -class lE extends x { +class IE extends x { constructor({ key: A, value: I, @@ -3092,7 +1864,7 @@ class lE extends x { super({ key: A, type: "usampler3D", value: I, update: g }); } } -class pE extends x { +class gE extends x { constructor({ key: A, value: I, @@ -3101,7 +1873,7 @@ class pE extends x { super({ key: A, type: "isampler3D", value: I, update: g }); } } -class fE extends x { +class QE extends x { constructor({ key: A, value: I, @@ -3110,7 +1882,7 @@ class fE extends x { super({ key: A, type: "sampler3D", value: I, update: g }); } } -class bE extends x { +class BE extends x { constructor({ key: A, value: I, @@ -3119,7 +1891,7 @@ class bE extends x { super({ key: A, type: "usamplerCube", value: I, update: g }); } } -class PE extends x { +class CE extends x { constructor({ key: A, value: I, @@ -3128,7 +1900,7 @@ class PE extends x { super({ key: A, type: "isamplerCube", value: I, update: g }); } } -class uE extends x { +class EE extends x { constructor({ key: A, value: I, @@ -3137,7 +1909,7 @@ class uE extends x { super({ key: A, type: "samplerCube", value: I, update: g }); } } -class TE extends x { +class iE extends x { constructor({ key: A, value: I, @@ -3146,7 +1918,7 @@ class TE extends x { super({ key: A, type: "sampler2DShadow", value: I, update: g }); } } -class OE extends x { +class DE extends x { constructor({ key: A, value: I, @@ -3155,7 +1927,7 @@ class OE extends x { super({ key: A, type: "sampler2DArrayShadow", value: I, update: g }); } } -class mE extends x { +class oE extends x { constructor({ key: A, value: I, @@ -3164,3119 +1936,3393 @@ class mE extends x { super({ key: A, type: "samplerCubeShadow", value: I, update: g }); } } -class DQ { - constructor({ - graph: A, - inputs: I, - outputs: g, - template: B, - consoleLog: C - }) { - this.graph = A, this.template = B, this.inputs = I ?? {}, this.outputs = g ?? {}; - const E = new yC({ indent: this.template.indent }); - for (const i in this.outputs) - this.outputs[i] && E.declares.add(this.outputs[i]); - const D = A.compile({ - inputs: this.inputs, - outputs: this.outputs, - compile: E - }); - this.shader = B.generate({ globals: E.globals, statements: D }), this.uniforms = E.uniforms, this.updaters = E.updaters, C && (console.log("*** COMPILED SHADER", this.shader), console.log("*** UNIFORMS", this.uniforms)); - } - prepareMaterial() { - return LG(this); - } - update() { - for (const A of this.updaters) - A(); - } -} -class Fg { - constructor(A) { - const I = A.match(/^([ \t]*)\{\{\s*GLOBALS\s*\}\}/m), g = A.match(/^([ \t]*)\{\{\s*STATEMENTS\s*\}\}/m); - if (!I || !g) - throw new Error( - "Template must contain {{ GLOBALS }} and {{ STATEMENTS }}" - ); - this.before = A.substring(0, I.index), this.between = A.substring( - I.index + I[0].length, - g.index - ), this.after = A.substring( - g.index + g[0].length - ), this.indent = g[1]; - } - generate({ - globals: A, - statements: I - }) { - return this.before + Array.from(A).join(` - -`) + this.between + I.map((g) => this.indent + g).join(` -`) + this.after; - } -} -const eB = /* @__PURE__ */ new WeakMap(); -function LG(Q) { - let A = eB.get(Q); - return A || (A = new G.RawShaderMaterial({ - glslVersion: G.GLSL3, - vertexShader: cC, - fragmentShader: Q.shader, - uniforms: Q.uniforms - }), eB.set(Q, A), A); -} -function GB(Q, A, I = "add") { - const g = () => { - throw new Error(`Invalid ${I} types: ${Q}, ${A}`); - }; - if (Q === A) return Q; - if (Q === "int") { - if (xA(A)) return A; - g(); - } - if (A === "int") { - if (xA(Q)) return Q; - g(); - } - if (Q === "uint") { - if (lA(A)) return A; - g(); - } - if (A === "uint") { - if (lA(Q)) return Q; - g(); - } - if (Q === "float") { - if (HI(A)) return A; - g(); - } - if (A === "float") { - if (HI(Q)) return Q; - g(); - } - throw new Error(`Invalid ${I} types: ${Q}, ${A}`); -} -function YG(Q, A) { - return GB(Q, A, "sub"); -} -function KG(Q, A) { - const I = () => { - throw new Error(`Invalid mul types: ${Q}, ${A}`); - }, g = (B) => B; - if (Q === "int") { - if (xA(A)) return g(A); - I(); - } - if (A === "int") { - if (xA(Q)) return g(Q); - I(); - } - if (Q === "uint") { - if (lA(A)) return g(A); - I(); - } - if (A === "uint") { - if (lA(Q)) return g(Q); - I(); - } - if (Q === "float") { - if (HI(A)) return g(A); - I(); - } - if (A === "float") { - if (HI(Q)) return g(Q); - I(); - } - if (xA(Q) || lA(Q) || xA(A) || lA(A)) { - if (Q === A) return g(Q); - I(); - } - if (Q === "vec2") { - if (A === "vec2" || KI(A)) return g("vec2"); - if (A === "mat3x2") return g("vec3"); - if (A === "mat4x2") return g("vec4"); - I(); +var HA = Uint8Array, bI = Uint16Array, Cs = Int32Array, wE = new HA([ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 4, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 0, + /* unused */ + 0, + 0, + /* impossible */ + 0 +]), sE = new HA([ + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 4, + 4, + 5, + 5, + 6, + 6, + 7, + 7, + 8, + 8, + 9, + 9, + 10, + 10, + 11, + 11, + 12, + 12, + 13, + 13, + /* unused */ + 0, + 0 +]), Es = new HA([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), aE = function(Q, A) { + for (var I = new bI(31), g = 0; g < 31; ++g) + I[g] = A += 1 << Q[g - 1]; + for (var B = new Cs(I[30]), g = 1; g < 30; ++g) + for (var C = I[g]; C < I[g + 1]; ++C) + B[C] = C - I[g] << 5 | g; + return { b: I, r: B }; +}, GE = aE(wE, 2), hE = GE.b, is = GE.r; +hE[28] = 258, is[258] = 28; +var Ds = aE(sE, 0), os = Ds.b, YQ = new bI(32768); +for (var hA = 0; hA < 32768; ++hA) { + var FI = (hA & 43690) >> 1 | (hA & 21845) << 1; + FI = (FI & 52428) >> 2 | (FI & 13107) << 2, FI = (FI & 61680) >> 4 | (FI & 3855) << 4, YQ[hA] = ((FI & 65280) >> 8 | (FI & 255) << 8) >> 1; +} +var ig = function(Q, A, I) { + for (var g = Q.length, B = 0, C = new bI(A); B < g; ++B) + Q[B] && ++C[Q[B] - 1]; + var E = new bI(A); + for (B = 1; B < A; ++B) + E[B] = E[B - 1] + C[B - 1] << 1; + var i; + if (I) { + i = new bI(1 << A); + var o = 15 - A; + for (B = 0; B < g; ++B) + if (Q[B]) + for (var D = B << 4 | Q[B], s = A - Q[B], w = E[Q[B] - 1]++ << s, G = w | (1 << s) - 1; w <= G; ++w) + i[YQ[w] >> o] = D; + } else + for (i = new bI(g), B = 0; B < g; ++B) + Q[B] && (i[B] = YQ[E[Q[B] - 1]++] >> 15 - Q[B]); + return i; +}, Jg = new HA(288); +for (var hA = 0; hA < 144; ++hA) + Jg[hA] = 8; +for (var hA = 144; hA < 256; ++hA) + Jg[hA] = 9; +for (var hA = 256; hA < 280; ++hA) + Jg[hA] = 7; +for (var hA = 280; hA < 288; ++hA) + Jg[hA] = 8; +var tE = new HA(32); +for (var hA = 0; hA < 32; ++hA) + tE[hA] = 5; +var ws = /* @__PURE__ */ ig(Jg, 9, 1), ss = /* @__PURE__ */ ig(tE, 5, 1), yQ = function(Q) { + for (var A = Q[0], I = 1; I < Q.length; ++I) + Q[I] > A && (A = Q[I]); + return A; +}, $A = function(Q, A, I) { + var g = A / 8 | 0; + return (Q[g] | Q[g + 1] << 8) >> (A & 7) & I; +}, cQ = function(Q, A) { + var I = A / 8 | 0; + return (Q[I] | Q[I + 1] << 8 | Q[I + 2] << 16) >> (A & 7); +}, yE = function(Q) { + return (Q + 7) / 8 | 0; +}, WI = function(Q, A, I) { + return (A == null || A < 0) && (A = 0), (I == null || I > Q.length) && (I = Q.length), new HA(Q.subarray(A, I)); +}, as = [ + "unexpected EOF", + "invalid block type", + "invalid length/literal", + "invalid distance", + "stream finished", + "no stream handler", + , + "no callback", + "invalid UTF-8 data", + "extra field too long", + "date not in range 1980-2099", + "filename too long", + "stream finishing", + "invalid zip data" + // determined by unknown compression method +], xA = function(Q, A, I) { + var g = new Error(A || as[Q]); + if (g.code = Q, Error.captureStackTrace && Error.captureStackTrace(g, xA), !I) + throw g; + return g; +}, cE = function(Q, A, I, g) { + var B = Q.length, C = g ? g.length : 0; + if (!B || A.f && !A.l) + return I || new HA(0); + var E = !I, i = E || A.i != 2, o = A.i; + E && (I = new HA(B * 3)); + var D = function(cA) { + var oA = I.length; + if (cA > oA) { + var aA = new HA(Math.max(oA * 2, cA)); + aA.set(I), I = aA; + } + }, s = A.f || 0, w = A.p || 0, G = A.b || 0, h = A.l, c = A.d, t = A.m, y = A.n, k = B * 8; + do { + if (!h) { + s = $A(Q, w, 1); + var F = $A(Q, w + 1, 3); + if (w += 3, F) + if (F == 1) + h = ws, c = ss, t = 9, y = 5; + else if (F == 2) { + var M = $A(Q, w, 31) + 257, U = $A(Q, w + 10, 15) + 4, e = M + $A(Q, w + 5, 31) + 1; + w += 14; + for (var J = new HA(e), n = new HA(19), H = 0; H < U; ++H) + n[Es[H]] = $A(Q, w + H * 3, 7); + w += U * 3; + for (var L = yQ(n), l = (1 << L) - 1, d = ig(n, L, 1), H = 0; H < e; ) { + var K = d[$A(Q, w, l)]; + w += K & 15; + var R = K >> 4; + if (R < 16) + J[H++] = R; + else { + var f = 0, V = 0; + for (R == 16 ? (V = 3 + $A(Q, w, 3), w += 2, f = J[H - 1]) : R == 17 ? (V = 3 + $A(Q, w, 7), w += 3) : R == 18 && (V = 11 + $A(Q, w, 127), w += 7); V--; ) + J[H++] = f; + } + } + var IA = J.subarray(0, M), O = J.subarray(M); + t = yQ(IA), y = yQ(O), h = ig(IA, t, 1), c = ig(O, y, 1); + } else + xA(1); + else { + var R = yE(w) + 4, S = Q[R - 4] | Q[R - 3] << 8, N = R + S; + if (N > B) { + o && xA(0); + break; + } + i && D(G + S), I.set(Q.subarray(R, N), G), A.b = G += S, A.p = w = N * 8, A.f = s; + continue; + } + if (w > k) { + o && xA(0); + break; + } + } + i && D(G + 131072); + for (var CA = (1 << t) - 1, v = (1 << y) - 1, gA = w; ; gA = w) { + var f = h[cQ(Q, w) & CA], W = f >> 4; + if (w += f & 15, w > k) { + o && xA(0); + break; + } + if (f || xA(2), W < 256) + I[G++] = W; + else if (W == 256) { + gA = w, h = null; + break; + } else { + var b = W - 254; + if (W > 264) { + var H = W - 257, u = wE[H]; + b = $A(Q, w, (1 << u) - 1) + hE[H], w += u; + } + var T = c[cQ(Q, w) & v], p = T >> 4; + T || xA(3), w += T & 15; + var O = os[p]; + if (p > 3) { + var u = sE[p]; + O += cQ(Q, w) & (1 << u) - 1, w += u; + } + if (w > k) { + o && xA(0); + break; + } + i && D(G + 131072); + var tA = G + b; + if (G < O) { + var sA = C - O, yA = Math.min(O, tA); + for (sA + G < 0 && xA(3); G < yA; ++G) + I[G] = g[sA + G]; + } + for (; G < tA; ++G) + I[G] = I[G - O]; + } + } + A.l = h, A.p = gA, A.b = G, A.f = s, h && (s = 1, A.m = t, A.d = c, A.n = y); + } while (!s); + return G != I.length && E ? WI(I, 0, G) : I.subarray(0, G); +}, Gs = /* @__PURE__ */ new HA(0), oI = function(Q, A) { + return Q[A] | Q[A + 1] << 8; +}, II = function(Q, A) { + return (Q[A] | Q[A + 1] << 8 | Q[A + 2] << 16 | Q[A + 3] << 24) >>> 0; +}, kQ = function(Q, A) { + return II(Q, A) + II(Q, A + 4) * 4294967296; +}, hs = function(Q) { + (Q[0] != 31 || Q[1] != 139 || Q[2] != 8) && xA(6, "invalid gzip data"); + var A = Q[3], I = 10; + A & 4 && (I += (Q[10] | Q[11] << 8) + 2); + for (var g = (A >> 3 & 1) + (A >> 4 & 1); g > 0; g -= !Q[I++]) + ; + return I + (A & 2); +}, FQ = /* @__PURE__ */ function() { + function Q(A, I) { + typeof A == "function" && (I = A, A = {}), this.ondata = I; + var g = A && A.dictionary && A.dictionary.subarray(-32768); + this.s = { i: 0, b: g ? g.length : 0 }, this.o = new HA(32768), this.p = new HA(0), g && this.o.set(g); } - if (Q === "vec3") { - if (A === "mat2x3") return g("vec2"); - if (A === "vec3" || eI(A)) return g("vec3"); - if (A === "mat4x3") return g("vec4"); - I(); + return Q.prototype.e = function(A) { + if (this.ondata || xA(5), this.d && xA(4), !this.p.length) + this.p = A; + else if (A.length) { + var I = new HA(this.p.length + A.length); + I.set(this.p), I.set(A, this.p.length), this.p = I; + } + }, Q.prototype.c = function(A) { + this.s.i = +(this.d = A || !1); + var I = this.s.b, g = cE(this.p, this.s, this.o); + this.ondata(WI(g, I, this.s.b), this.d), this.o = WI(g, this.s.b - 32768), this.s.b = this.o.length, this.p = WI(this.p, this.s.p / 8 | 0), this.s.p &= 7; + }, Q.prototype.push = function(A, I) { + this.e(A), this.c(I); + }, Q; +}(); +function ts(Q, A) { + return cE(Q, { i: 2 }, A && A.out, A && A.dictionary); +} +var ys = /* @__PURE__ */ function() { + function Q(A, I) { + this.v = 1, this.r = 0, FQ.call(this, A, I); } - if (Q === "vec4") { - if (A === "mat2x4") return g("vec2"); - if (A === "mat3x4") return g("vec3"); - if (A === "vec4" || rI(A)) return g("vec4"); - I(); + return Q.prototype.push = function(A, I) { + if (FQ.prototype.e.call(this, A), this.r += A.length, this.v) { + var g = this.p.subarray(this.v - 1), B = g.length > 3 ? hs(g) : 4; + if (B > g.length) { + if (!I) + return; + } else this.v > 1 && this.onmember && this.onmember(this.r - g.length); + this.p = g.subarray(B), this.v = 0; + } + FQ.prototype.c.call(this, I), this.s.f && !this.s.l && !I && (this.v = yE(this.s.p) + 9, this.s = { i: 0 }, this.o = new HA(0), this.push(new HA(0), I)); + }, Q; +}(), rQ = typeof TextDecoder < "u" && /* @__PURE__ */ new TextDecoder(), cs = 0; +try { + rQ.decode(Gs, { stream: !0 }), cs = 1; +} catch { +} +var ks = function(Q) { + for (var A = "", I = 0; ; ) { + var g = Q[I++], B = (g > 127) + (g > 223) + (g > 239); + if (I + B > Q.length) + return { s: A, r: WI(Q, I - 1) }; + B ? B == 3 ? (g = ((g & 15) << 18 | (Q[I++] & 63) << 12 | (Q[I++] & 63) << 6 | Q[I++] & 63) - 65536, A += String.fromCharCode(55296 | g >> 10, 56320 | g & 1023)) : B & 1 ? A += String.fromCharCode((g & 31) << 6 | Q[I++] & 63) : A += String.fromCharCode((g & 15) << 12 | (Q[I++] & 63) << 6 | Q[I++] & 63) : A += String.fromCharCode(g); } - if (A === "vec2") { - if (KI(Q)) return g("vec2"); - if (Q === "mat2x3") return g("vec3"); - if (Q === "mat2x4") return g("vec4"); - I(); +}; +function Fs(Q, A) { + if (A) { + for (var I = "", g = 0; g < Q.length; g += 16384) + I += String.fromCharCode.apply(null, Q.subarray(g, g + 16384)); + return I; + } else { + if (rQ) + return rQ.decode(Q); + var B = ks(Q), C = B.s, I = B.r; + return I.length && xA(8), C; + } +} +var Ns = function(Q, A) { + return A + 30 + oI(Q, A + 26) + oI(Q, A + 28); +}, Ss = function(Q, A, I) { + var g = oI(Q, A + 28), B = Fs(Q.subarray(A + 46, A + 46 + g), !(oI(Q, A + 8) & 2048)), C = A + 46 + g, E = II(Q, A + 20), i = I && E == 4294967295 ? Rs(Q, C) : [E, II(Q, A + 24), II(Q, A + 42)], o = i[0], D = i[1], s = i[2]; + return [oI(Q, A + 10), o, D, B, C + oI(Q, A + 30) + oI(Q, A + 32), s]; +}, Rs = function(Q, A) { + for (; oI(Q, A) != 1; A += 4 + oI(Q, A + 2)) + ; + return [kQ(Q, A + 12), kQ(Q, A + 4), kQ(Q, A + 20)]; +}; +function Ms(Q, A) { + for (var I = {}, g = Q.length - 22; II(Q, g) != 101010256; --g) + (!g || Q.length - g > 65558) && xA(13); + var B = oI(Q, g + 8); + if (!B) + return {}; + var C = II(Q, g + 16), E = C == 4294967295 || B == 65535; + if (E) { + var i = II(Q, g - 12); + E = II(Q, i) == 101075792, E && (B = II(Q, i + 32), C = II(Q, i + 48)); + } + for (var o = A && A.filter, D = 0; D < B; ++D) { + var s = Ss(Q, C, E), w = s[0], G = s[1], h = s[2], c = s[3], t = s[4], y = s[5], k = Ns(Q, y); + C = t, (!o || o({ + name: c, + size: G, + originalSize: h, + compression: w + })) && (w ? w == 8 ? I[c] = ts(Q.subarray(k, k + G), { out: new HA(h) }) : xA(14, "unknown compression type " + w) : I[c] = WI(Q, k, k + G)); } - if (A === "vec3") { - if (Q === "mat3x2") return g("vec2"); - if (eI(Q)) return g("vec3"); - if (Q === "mat3x4") return g("vec4"); - I(); + return I; +} +const kE = Number.parseInt(a.REVISION), FE = kE >= 179, Ug = new Float32Array(1), BQ = new Uint32Array(Ug.buffer), CB = "Float16Array" in globalThis, Dg = CB ? new globalThis.Float16Array(1) : null, NE = new Uint16Array(Dg == null ? void 0 : Dg.buffer); +function SE(Q) { + const A = Math.sqrt(Q.reduce((I, g) => I + g * g, 0)); + return Q.map((I) => I / A); +} +function xg(Q) { + return Ug[0] = Q, BQ[0]; +} +function fg(Q) { + return BQ[0] = Q, Ug[0]; +} +const VA = CB ? es : Js, FA = CB ? Us : Ls; +function es(Q) { + return Dg[0] = Q, NE[0]; +} +function Js(Q) { + Ug[0] = Q; + const A = BQ[0], I = A >> 31 & 1, g = A >> 23 & 255, B = A & 8388607, C = I << 15; + if (g === 255) + return B !== 0 ? C | 32767 : C | 31744; + const E = g - 127 + 15; + if (E >= 31) + return C | 31744; + if (E <= 0) { + if (E < -10) + return C; + const o = (B | 8388608) >> 1 - E + 13; + return C | o; } - if (A === "vec4") { - if (Q === "mat4x2") return g("vec2"); - if (Q === "mat4x3") return g("vec3"); - if (rI(Q)) return g("vec4"); - I(); + const i = B >> 13; + return C | E << 10 | i; +} +function Us(Q) { + return NE[0] = Q, Dg[0]; +} +function Ls(Q) { + const A = Q >> 15 & 1, I = Q >> 10 & 31, g = Q & 1023; + let B; + if (I === 0) + if (g === 0) + B = A << 31; + else { + let C = g, E = -14; + for (; (C & 1024) === 0; ) + C <<= 1, E--; + C &= 1023; + const i = E + 127, o = C << 13; + B = A << 31 | i << 23 | o; + } + else if (I === 31) + g === 0 ? B = A << 31 | 2139095040 : B = A << 31 | 2143289344; + else { + const C = I - 15 + 127, E = g << 13; + B = A << 31 | C << 23 | E; } - if (KI(Q)) { - if (KI(A)) return g("mat2"); - if (A === "mat3x2") return g("mat3x2"); - if (A === "mat4x2") return g("mat4x2"); - I(); + return BQ[0] = B, Ug[0]; +} +function vA(Q) { + return Math.max(0, Math.min(255, Math.round(Q * 255))); +} +function pg(Q) { + return Math.max(-127, Math.min(127, Math.round(Q * 127))); +} +function Hs(Q) { + return Q / 255; +} +function ns(Q) { + return Q / 127; +} +class Ys { + // Create a DataCache with a given function that fetches data not in the cache. + constructor({ + asyncFetch: A, + dispose: I, + maxItems: g = 5 + }) { + this.asyncFetch = A, this.dispose = I, this.maxItems = g, this.items = [], this.pending = /* @__PURE__ */ new Map(); } - if (Q === "mat2x3") { - if (KI(A)) return g("mat2x3"); - if (A === "mat3x2") return g("mat3"); - if (A === "mat4x2") return g("mat4x3"); - I(); + has(A) { + return this.items.some((I) => I.key === A); } - if (Q === "mat2x4") { - if (KI(A)) return g("mat2x4"); - if (A === "mat3x2") return g("mat3x4"); - if (A === "mat4x2") return g("mat4"); - I(); + getImmediate(A) { + const I = this.items.findIndex((g) => g.key === A); + if (I >= 0) { + const g = this.items.splice(I, 1)[0]; + return this.items.push(g), g.data; + } } - if (Q === "mat3x2") { - if (A === "mat2x3") return g("mat2"); - if (eI(A)) return g("mat3x2"); - if (A === "mat4x3") return g("mat4x2"); - I(); + // Fetch data for the key, returning cached data if available. + async getFetch(A) { + const I = this.getImmediate(A); + if (I !== void 0) + return I; + let g = this.pending.get(A); + return g || (g = this.asyncFetch(A).then((B) => { + for (this.pending.delete(A), this.items.push({ key: A, data: B }); this.items.length > this.maxItems; ) { + const C = this.items.shift(); + C && this.dispose && this.dispose(C.data); + } + return B; + }), this.pending.set(A, g), g); } - if (eI(Q)) { - if (A === "mat2x3") return g("mat2x3"); - if (eI(A)) return g("mat3"); - if (A === "mat4x3") return g("mat4x3"); - I(); +} +function rs(Q, A) { + const I = Object.entries(Q).map(([g, B]) => [ + g, + A(B, g) + ]); + return Object.fromEntries(I); +} +function Ks(Q, A) { + const I = Object.entries(Q).map(([g, B]) => [g, A(B, g)]).filter(([g, B]) => B !== void 0); + return Object.fromEntries(I); +} +function RE(Q) { + const A = [], I = /* @__PURE__ */ new Set(); + function g(B) { + B && typeof B == "object" && !I.has(B) && (I.add(B), B instanceof ArrayBuffer ? A.push(B) : ArrayBuffer.isView(B) ? A.push(B.buffer) : Array.isArray(B) ? B.forEach(g) : Object.values(B).forEach(g)); } - if (Q === "mat3x4") { - if (A === "mat2x3") return g("mat2x4"); - if (eI(A)) return g("mat3x4"); - if (A === "mat4x3") return g("mat4"); - I(); + return g(Q), A; +} +function KQ(Q, A) { + return new Array(Q).fill(null).map((I, g) => A(g)); +} +class ds { + constructor({ + // Allocate a new item with the given args + allocate: A, + // Dispose of an item (optional, if GC is enough) + dispose: I, + // Check if an existing item in the list is valid for the given args, + // allowing you to store heterogeneous items in the list. + valid: g + }) { + this.items = [], this.allocate = A, this.dispose = I, this.valid = g; } - if (Q === "mat4x2") { - if (A === "mat2x4") return g("mat2"); - if (A === "mat3x4") return g("mat3x2"); - if (rI(A)) return g("mat4x2"); - I(); + // Allocate a new item from the free list, first checking if a existing item + // on the freelist is valid for the given args. + alloc(A) { + for (; ; ) { + const I = this.items.pop(); + if (!I) + break; + if (this.valid(I, A)) + return I; + this.dispose && this.dispose(I); + } + return this.allocate(A); } - if (Q === "mat4x3") { - if (A === "mat2x4") return g("mat2x3"); - if (A === "mat3x4") return g("mat3"); - if (rI(A)) return g("mat4x3"); - I(); + free(A) { + this.items.push(A); } - if (rI(Q)) { - if (A === "mat2x4") return g("mat2x4"); - if (A === "mat3x4") return g("mat3x4"); - if (rI(A)) return g("mat4"); - I(); + disposeAll() { + let A; + for (A = this.items.pop(); A; ) + this.dispose && this.dispose(A), A = this.items.pop(); } - throw new Error(`Invalid mul types: ${Q}, ${A}`); -} -function eG(Q, A) { - return GB(Q, A, "div"); } -function rG(Q, A) { - if (Q === A) return Q; - if (Q === "int") { - if (xA(A)) return A; - } else if (A === "int") { - if (xA(Q)) return Q; - } else if (Q === "uint") { - if (lA(A)) return A; - } else if (A === "uint" && lA(Q)) - return Q; - throw new Error(`Invalid imod types: ${Q}, ${A}`); +function dQ(Q, A, I, g, B, C, E, i, o, D, s, w, G, h, c, t) { + const y = A * 4, [k, F] = Q; + k[y] = xg(I), k[y + 1] = xg(g), k[y + 2] = xg(B), k[y + 3] = VA(G), F[y] = VA(h) | VA(c) << 16, F[y + 1] = VA(t) | VA(Math.log(C)) << 16, F[y + 2] = VA(Math.log(E)) | VA(Math.log(i)) << 16, F[y + 3] = nE(o, D, s, w); } -function nG(Q, A) { - if (Q === A || A === "float") return Q; - throw new Error(`Invalid mod types: ${Q}, ${A}`); +function Zg(Q, A) { + const I = EB, g = A * 4, [B, C] = Q; + return I.center.x = fg(B[g]), I.center.y = fg(B[g + 1]), I.center.z = fg(B[g + 2]), I.opacity = FA(B[g + 3] & 65535), I.color.r = FA(C[g] & 65535), I.color.g = FA(C[g] >>> 16), I.color.b = FA(C[g + 1] & 65535), I.scales.x = Math.exp(FA(C[g + 1] >>> 16)), I.scales.y = Math.exp(FA(C[g + 2] & 65535)), I.scales.z = Math.exp(FA(C[g + 2] >>> 16)), YE(C[g + 3], I.quaternion), I; } -function dG(Q) { - return Q; +function qQ(Q, A, I, g, B, C, E, i, o, D, s, w, G, h, c, t, y) { + const k = (y == null ? void 0 : y.rgbMin) ?? 0, R = ((y == null ? void 0 : y.rgbMax) ?? 1) - k, S = vA((h - k) / R), N = vA((c - k) / R), M = vA((t - k) / R), U = vA(y != null && y.lodOpacity ? 0.5 * G : G), e = oB( + ME.set(o, D, s, w) + ), J = e & 255, n = e >>> 8 & 255, H = e >>> 16 & 255, L = (y == null ? void 0 : y.lnScaleMin) ?? pA, d = 254 / (((y == null ? void 0 : y.lnScaleMax) ?? uA) - L), K = C < qI ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(C) - L) * d) + 1 + ) + ), f = E < qI ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(E) - L) * d) + 1 + ) + ), V = i < qI ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(i) - L) * d) + 1 + ) + ), IA = VA(I), O = VA(g), CA = VA(B), v = A * 4; + Q[v] = S | N << 8 | M << 16 | U << 24, Q[v + 1] = IA | O << 16, Q[v + 2] = CA | J << 16 | n << 24, Q[v + 3] = K | f << 8 | V << 16 | H << 24; } -function qG(Q) { - return Q; +function qs(Q, A, I, g, B) { + const C = VA(I), E = VA(g), i = VA(B), o = A * 4; + Q[o + 1] = C | E << 16, Q[o + 2] = i | Q[o + 2] & 4294901760; } -function xG(Q) { - return Q; +function ls(Q, A, I, g, B, C) { + const E = (C == null ? void 0 : C.lnScaleMin) ?? pA, o = 254 / (((C == null ? void 0 : C.lnScaleMax) ?? uA) - E), D = I < qI ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(I) - E) * o) + 1 + ) + ), s = g < qI ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(g) - E) * o) + 1 + ) + ), w = B < qI ? 0 : Math.min( + 255, + Math.max( + 1, + Math.round((Math.log(B) - E) * o) + 1 + ) + ), G = A * 4; + Q[G + 3] = D | s << 8 | w << 16 | Q[G + 3] & 4278190080; +} +const ME = new a.Quaternion(); +function xs(Q, A, I, g, B, C) { + const E = oB( + ME.set(I, g, B, C) + ), i = E & 255, o = E >>> 8 & 255, D = E >>> 16 & 255, s = A * 4; + Q[s + 2] = Q[s + 2] & 65535 | i << 16 | o << 24, Q[s + 3] = Q[s + 3] & 16777215 | D << 24; +} +function fs(Q, A, I, g, B, C, E) { + const i = (E == null ? void 0 : E.rgbMin) ?? 0, D = ((E == null ? void 0 : E.rgbMax) ?? 1) - i, s = vA((I - i) / D), w = vA((g - i) / D), G = vA((B - i) / D), h = vA(E != null && E.lodOpacity ? 0.5 * C : C), c = A * 4; + Q[c] = s | w << 8 | G << 16 | h << 24; +} +function ps(Q, A, I, g, B, C) { + const E = (C == null ? void 0 : C.rgbMin) ?? 0, o = ((C == null ? void 0 : C.rgbMax) ?? 1) - E, D = vA((I - E) / o), s = vA((g - E) / o), w = vA((B - E) / o), G = A * 4; + Q[G] = D | s << 8 | w << 16 | Q[G] & 4278190080; +} +function us(Q, A, I) { + const g = vA(I), B = A * 4; + Q[B] = Q[B] & 16777215 | g << 24; } -function lG(Q) { - return Q; +const Ps = new a.Vector3(), bs = new a.Vector3(), Ts = new a.Quaternion(), ms = new a.Color(), EB = { + center: Ps, + scales: bs, + quaternion: Ts, + color: ms, + opacity: 0 +}; +function Og(Q, A, I) { + const g = EB, B = A * 4, C = Q[B], E = Q[B + 1], i = Q[B + 2], o = Q[B + 3], D = (I == null ? void 0 : I.rgbMin) ?? 0, w = ((I == null ? void 0 : I.rgbMax) ?? 1) - D; + g.color.set( + D + (C & 255) / 255 * w, + D + (C >>> 8 & 255) / 255 * w, + D + (C >>> 16 & 255) / 255 * w + ), g.opacity = (C >>> 24 & 255) / 255, I != null && I.lodOpacity && (g.opacity = 2 * g.opacity), g.center.set( + FA(E & 65535), + FA(E >>> 16 & 65535), + FA(i & 65535) + ); + const G = (I == null ? void 0 : I.lnScaleMin) ?? pA, c = (((I == null ? void 0 : I.lnScaleMax) ?? uA) - G) / 254, t = o & 255; + g.scales.x = t === 0 ? 0 : Math.exp(G + (t - 1) * c); + const y = o >>> 8 & 255; + g.scales.y = y === 0 ? 0 : Math.exp(G + (y - 1) * c); + const k = o >>> 16 & 255; + g.scales.z = k === 0 ? 0 : Math.exp(G + (k - 1) * c); + const F = i >>> 16 & 65535 | o >>> 8 & 16711680; + return HE(F, g.quaternion), g; +} +function EA(Q) { + const A = P, I = Math.max( + XQ, + Math.min(ZA, Math.ceil(Q / A)) + ), g = Math.ceil(Q / (A * I)), B = A * I * g; + return { width: A, height: I, depth: g, maxSplats: B }; } -function pG(Q) { - return Q; +function Vs(Q) { + const A = P, I = Math.max( + XQ, + Math.min(ZA, Math.ceil(Q / A)) + ), g = Math.ceil(Q / (A * I)); + return A * I * g; } -function fG(Q) { - return Q; +function Wg() { + return navigator.platform.toLowerCase().startsWith("win") ? !1 : navigator.maxTouchPoints > 0 ? !0 : /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test( + navigator.userAgent + ); } -function bG(Q) { - return Q; +function iB() { + return /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent); } -function PG(Q) { - return Q; +function DB() { + return !!navigator.xr && /Oculus/.test(navigator.userAgent); } -function uG(Q) { - return Q; +function Zs() { + return DB() && /Quest 2/.test(navigator.userAgent); } -function TG(Q) { - return Q; +function Gg() { + return /iPhone|iPad/.test(navigator.userAgent); } -function OG(Q) { - return Q; +function eE() { + return !!navigator.xr && Gg() && /Safari/.test(navigator.userAgent) && Wg(); } -function mG(Q) { +function Os(Q, A, I) { + const g = new Uint8Array(A * 4); + for (let B = 0; B < I / 2; B++) { + const C = B * A * 4, E = (I - 1 - B) * A * 4; + g.set(Q.subarray(C, C + A * 4)), Q.set( + Q.subarray(E, E + A * 4), + C + ), Q.set(g, E); + } return Q; } -function ZG(Q) { - return Q; +function Ws(Q, A, I) { + const g = document.createElement("canvas"); + g.width = A, g.height = I; + const B = g.getContext("2d"); + if (!B) + throw new Error("Can't get 2d context"); + const C = B.createImageData(A, I); + return C.data.set(Q), B.putImageData(C, 0, 0), g.toDataURL("image/png"); } -function VG(Q) { - return Q; +function vs(Q) { + return Object.fromEntries( + Object.entries(Q).filter(([A, I]) => I !== void 0) + ); } -function XG(Q) { - return Q; +const JE = GA(` + precision highp float; + + in vec3 position; + + void main() { + gl_Position = vec4(position.xy, 0.0, 1.0); + } +`); +function Xs(Q) { + const A = new a.Vector3(); + for (const I of Q) + A.add(I); + return A.divideScalar(Q.length); } -function WG(Q) { - return Q; +function js(Q) { + if (Q.length === 0) + return new a.Quaternion(); + const A = Q[0].clone(); + for (let I = 1; I < Q.length; I++) + Q[I].dot(Q[0]) < 0 ? (A.x -= Q[I].x, A.y -= Q[I].y, A.z -= Q[I].z, A.w -= Q[I].w) : (A.x += Q[I].x, A.y += Q[I].y, A.z += Q[I].z, A.w += Q[I].w); + return A.normalize(); } -function ZE(Q, A, I = "min") { - if (Q === A) return Q; - if (A === "float") { - if (Mg(Q)) return Q; - } else if (A === "int") { - if (xA(Q)) return Q; - } else if (A === "uint" && lA(Q)) - return Q; - throw new Error(`Invalid ${I} types: ${Q}, ${A}`); +function UE(Q, A) { + const I = new a.Vector3(0, 0, 0).applyMatrix4(Q), g = new a.Vector3(0, 0, 0).applyMatrix4(A), B = new a.Vector3(0, 0, -1).applyMatrix4(Q).sub(I).normalize(), C = new a.Vector3(0, 0, -1).applyMatrix4(A).sub(g).normalize(), E = I.distanceTo(g), i = B.dot(C); + return { distance: E, coincidence: i }; } -function jG(Q, A) { - return ZE(Q, A, "max"); +function zs({ + matrix1: Q, + matrix2: A, + maxDistance: I +}) { + const g = new a.Vector3(0, 0, 0).applyMatrix4(Q), B = new a.Vector3(0, 0, 0).applyMatrix4(A); + return g.distanceTo(B) <= I; } -function vG(Q, A, I) { - if (A === "float") { - if (Mg(Q)) return Q; - } else if (A === "int") { - if (xA(Q)) return Q; - } else if (A === "uint" && lA(Q)) - return Q; - throw new Error(`Invalid clamp types: ${Q}, ${A}`); +function _s({ + matrix1: Q, + matrix2: A, + maxDistance: I, + minCoincidence: g +}) { + const { distance: B, coincidence: C } = UE(Q, A); + return B <= I && (g == null || C >= g); } -function zG(Q, A, I) { - if (I === Q || I === "float" || I === "bool" && Q === "float" || I === "bvec2" && Q === "vec2" || I === "bvec3" && Q === "vec3" || I === "bvec4" && Q === "vec4") return Q; - throw new Error(`Invalid mix types: ${Q}, ${A}, ${I}`); +function LE(Q, A) { + const [I, g] = [new a.Vector3(), new a.Quaternion()], [B, C] = [new a.Vector3(), new a.Quaternion()]; + Q.decompose(I, g, new a.Vector3()), A.decompose(B, C, new a.Vector3()); + const E = I.distanceTo(B), i = Math.abs(g.dot(C)); + return { distance: E, coorient: i }; } -function _G(Q, A) { - if (Q === A || A === "float") return A; - throw new Error(`Invalid step types: ${Q}, ${A}`); +function $s({ + matrix1: Q, + matrix2: A, + maxDistance: I, + minCoorient: g +}) { + const { distance: B, coorient: C } = LE(Q, A); + return B <= I && (g == null || C >= g); } -function $G(Q, A, I) { - if (Q === A && (Q === I || Q === "float")) - return I; - throw new Error(`Invalid smoothstep types: ${Q}, ${A}, ${I}`); +function A0(Q, A = 1e-3) { + return Math.abs(Q) < A ? 0 : Math.sign(Q); } -function VE(Q, A = "isNan") { - if (Q === "float") return "bool"; - if (Q === "vec2") return "bvec2"; - if (Q === "vec3") return "bvec3"; - if (Q === "vec4") return "bvec4"; - throw new Error(`Invalid ${A} types: ${Q}`); +function I0(Q) { + const A = Q.w < 0, I = pg(A ? -Q.x : Q.x), g = pg(A ? -Q.y : Q.y), B = pg(A ? -Q.z : Q.z), C = I & 255, E = g & 255, i = B & 255; + return C | E << 8 | i << 16; } -function A0(Q) { - return VE(Q, "isInf"); +function g0(Q, A) { + const I = Q << 24 >> 24, g = Q << 16 >> 24, B = Q << 8 >> 24; + A.set(I / 127, g / 127, B / 127, 0); + const C = A.x * A.x + A.y * A.y + A.z * A.z; + return A.w = Math.sqrt(Math.max(0, 1 - C)), A; } -const qA = (Q, A) => new vE({ a: Q, b: A }), iI = (Q, A) => new zE({ a: Q, b: A }), kA = (Q, A) => new _E({ a: Q, b: A }), pg = (Q, A) => new $E({ a: Q, b: A }), pQ = (Q, A) => new AD({ a: Q, b: A }), XE = (Q, A) => new ID({ a: Q, b: A }), I0 = (Q) => new gD({ a: Q }).outputs, yB = (Q) => new QD({ a: Q }), g0 = (Q) => new BD({ a: Q }), Q0 = (Q) => new CD({ a: Q }), B0 = (Q) => new ED({ a: Q }), C0 = (Q) => new DD({ a: Q }), E0 = (Q) => new iD({ a: Q }), D0 = (Q) => new wD({ a: Q }), fg = (Q) => new oD({ a: Q }), i0 = (Q, A) => new sD({ a: Q, b: A }), w0 = (Q) => new GD({ a: Q }), o0 = (Q) => new yD({ a: Q }), s0 = (Q) => new hD({ a: Q }), G0 = (Q) => new RD({ a: Q }), y0 = (Q) => new kD({ a: Q }), h0 = (Q) => new FD({ a: Q }), R0 = (Q) => new aD({ a: Q }), k0 = (Q, A) => new SD({ a: Q, b: A }), WE = (Q, A) => new ND({ a: Q, b: A }), F0 = (Q, A, I) => new cD({ a: Q, min: A, max: I }), jE = (Q, A, I) => new MD({ a: Q, b: A, t: I }), a0 = (Q, A) => new JD({ edge: Q, x: A }), S0 = (Q, A, I) => new UD({ edge0: Q, edge1: A, x: I }), N0 = (Q) => new tD({ a: Q }), c0 = (Q) => new HD({ a: Q }); -class vE extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outKey: "sum", outTypeFunc: GB }), this.statements = ({ inputs: g, outputs: B }) => [`${B.sum} = ${g.a} + ${g.b};`]; +const Q0 = new a.Quaternion(), lQ = new a.Vector3(); +function oB(Q) { + const A = Q0.copy(Q).normalize(); + A.w < 0 && A.set(-A.x, -A.y, -A.z, -A.w); + const I = 2 * Math.acos(A.w), g = Math.sqrt( + A.x * A.x + A.y * A.y + A.z * A.z + ), B = g < 1e-6 ? lQ.set(1, 0, 0) : lQ.set(A.x, A.y, A.z).divideScalar(g), C = Math.abs(B.x) + Math.abs(B.y) + Math.abs(B.z); + let E = B.x / C, i = B.y / C; + if (B.z < 0) { + const h = E; + E = (1 - Math.abs(i)) * (E >= 0 ? 1 : -1), i = (1 - Math.abs(h)) * (i >= 0 ? 1 : -1); } + const o = E * 0.5 + 0.5, D = i * 0.5 + 0.5, s = Math.round(o * 255), w = Math.round(D * 255); + return Math.round(I * (255 / Math.PI)) << 16 | w << 8 | s; } -class zE extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outKey: "difference", outTypeFunc: YG }), this.statements = ({ inputs: g, outputs: B }) => [`${B.difference} = ${g.a} - ${g.b};`]; +function HE(Q, A) { + const I = Q & 255, g = Q >>> 8 & 255, B = Q >>> 16 & 255, C = I / 255, E = g / 255; + let i = (C - 0.5) * 2, o = (E - 0.5) * 2; + const D = 1 - (Math.abs(i) + Math.abs(o)), s = Math.max(-D, 0); + i += i >= 0 ? -s : s, o += o >= 0 ? -s : s; + const w = lQ.set(i, o, D).normalize(), h = B / 255 * Math.PI * 0.5, c = Math.sin(h), t = Math.cos(h); + return A.set(w.x * c, w.y * c, w.z * c, t), A; +} +function B0(Q) { + const A = Q.clone().normalize(), I = 2 * (A.w * A.x + A.y * A.z), g = 1 - 2 * (A.x * A.x + A.y * A.y), B = Math.atan2(I, g), C = 2 * (A.w * A.y - A.z * A.x), E = Math.abs(C) >= 1 ? Math.sign(C) * (Math.PI / 2) : Math.asin(C), i = 2 * (A.w * A.z + A.x * A.y), o = 1 - 2 * (A.y * A.y + A.z * A.z), D = Math.atan2(i, o), s = (B + Math.PI) / (2 * Math.PI), w = (E + Math.PI) / (2 * Math.PI), G = (D + Math.PI) / (2 * Math.PI), h = Math.round(s * 255), c = Math.round(w * 255); + return Math.round(G * 255) << 16 | c << 8 | h; +} +function C0(Q, A) { + const I = Q & 255, g = Q >>> 8 & 255, B = Q >>> 16 & 255, C = I / 255, E = g / 255, i = B / 255, o = C * (2 * Math.PI) - Math.PI, D = E * (2 * Math.PI) - Math.PI, s = i * (2 * Math.PI) - Math.PI, w = Math.cos(o * 0.5), G = Math.sin(o * 0.5), h = Math.cos(D * 0.5), c = Math.sin(D * 0.5), t = Math.cos(s * 0.5), y = Math.sin(s * 0.5); + return A.w = w * h * t + G * c * y, A.x = G * h * t - w * c * y, A.y = w * c * t + G * h * y, A.z = w * h * y - G * c * t, A.normalize(), A; +} +function nE(Q, A, I, g) { + const B = Math.sqrt(Q * Q + A * A + I * I + g * g), C = (g < 0 ? -Q : Q) / B, E = (g < 0 ? -A : A) / B, i = (g < 0 ? -I : I) / B, o = (g < 0 ? -g : g) / B, D = 2 * Math.acos(o), s = Math.sqrt(C * C + E * E + i * i), w = s < 1e-6 ? 1 : C / s, G = s < 1e-6 ? 0 : E / s, h = s < 1e-6 ? 0 : i / s, c = Math.abs(w) + Math.abs(G) + Math.abs(h); + let t = w / c, y = G / c; + if (h < 0) { + const M = t; + t = (1 - Math.abs(y)) * (t >= 0 ? 1 : -1), y = (1 - Math.abs(M)) * (y >= 0 ? 1 : -1); } + const k = t * 0.5 + 0.5, F = y * 0.5 + 0.5, R = Math.round(k * 1023), S = Math.round(F * 1023); + return Math.round(D * (4095 / Math.PI)) << 20 | S << 10 | R; } -class _E extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outKey: "product", outTypeFunc: KG }), this.statements = ({ inputs: g, outputs: B }) => [`${B.product} = ${g.a} * ${g.b};`]; - } +function YE(Q, A) { + const I = Q & 1023, g = Q >>> 10 & 1023, B = Q >>> 20 & 4095, C = I / 1023, E = g / 1023; + let i = (C - 0.5) * 2, o = (E - 0.5) * 2; + const D = 1 - (Math.abs(i) + Math.abs(o)), s = Math.max(-D, 0); + i += i >= 0 ? -s : s, o += o >= 0 ? -s : s; + const w = Math.sqrt(i * i + o * o + D * D), G = w < 1e-6 ? 0 : i / w, h = w < 1e-6 ? 0 : o / w, c = w < 1e-6 ? 0 : D / w, y = B / 4095 * Math.PI * 0.5, k = Math.sin(y), F = Math.cos(y); + return A.set(G * k, h * k, c * k, F), A; } -class $E extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outKey: "quotient", outTypeFunc: eG }), this.statements = ({ inputs: g, outputs: B }) => [`${B.quotient} = ${g.a} / ${g.b};`]; - } +function Hg(Q, A, I, g) { + const B = Math.round(Math.max(-127, Math.min(127, Q * 127))), C = Math.round(Math.max(-127, Math.min(127, A * 127))), E = Math.round(Math.max(-127, Math.min(127, I * 127))), i = Math.round(Math.max(-127, Math.min(127, g * 127))); + return B & 255 | (C & 255) << 8 | (E & 255) << 16 | (i & 255) << 24; } -class AD extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outKey: "remainder", outTypeFunc: rG }), this.statements = ({ inputs: g, outputs: B }) => [`${B.remainder} = ${g.a} % ${g.b};`]; +function E0(Q, A, I, g) { + const C = 63 / ((g == null ? void 0 : g.sh1Max) ?? 1), E = A * 2; + for (let i = 0; i < 9; ++i) { + const o = I[i] * C, D = Math.round(Math.max(-63, Math.min(63, o))) & 127, s = i * 7, w = s + 7, G = Math.floor(s / 32), h = s - G * 32, c = D << h & 4294967295; + if (Q[E + G] |= c, w > G * 32 + 32) { + const t = D >>> 32 - h & 4294967295; + Q[E + G + 1] |= t; + } } } -class ID extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outKey: "remainder", outTypeFunc: nG }), this.statements = ({ inputs: g, outputs: B }) => [`${B.remainder} = mod(${g.a}, ${g.b});`]; - } +function i0(Q, A, I, g) { + const C = 1 / ((g == null ? void 0 : g.sh2Max) ?? 1); + Q[A * 4 + 0] = Hg( + I[0] * C, + I[1] * C, + I[2] * C, + I[3] * C + ), Q[A * 4 + 1] = Hg( + I[4] * C, + I[5] * C, + I[6] * C, + I[7] * C + ), Q[A * 4 + 2] = Hg( + I[8] * C, + I[9] * C, + I[10] * C, + I[11] * C + ), Q[A * 4 + 3] = Hg( + I[12] * C, + I[13] * C, + I[14] * C, + 0 + ); } -class gD extends d { - constructor({ a: A }) { - const I = { a: CA(A) }, g = I.a, B = { - fract: g, - integer: g - }; - super({ inTypes: I, outTypes: B, inputs: { a: A } }), this.statements = ({ inputs: C, outputs: E }) => [`${E.fract} = modf(${C.a}, ${E.integer});`]; +function D0(Q, A, I, g) { + const C = 31 / ((g == null ? void 0 : g.sh3Max) ?? 1), E = A * 4; + for (let i = 0; i < 21; ++i) { + const o = I[i] * C, D = Math.round(Math.max(-31, Math.min(31, o))) & 63, s = i * 6, w = s + 6, G = Math.floor(s / 32), h = s - G * 32, c = D << h & 4294967295; + if (Q[E + G] |= c, w > G * 32 + 32) { + const t = D >>> 32 - h & 4294967295; + Q[E + G + 1] |= t; + } } } -class QD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "neg", outTypeFunc: dG }), this.statements = ({ inputs: I, outputs: g }) => [`${g.neg} = -${I.a};`]; - } +function lI(Q, A, I) { + const g = Math.abs(Q), B = Math.abs(A), C = Math.abs(I), E = Math.max(g, B, C), i = Math.floor(Math.log2(E)), o = Math.max(0, Math.min(31, i + 15)), D = 2 ** (o - 15) / 255, s = Math.round(Math.max(0, Math.min(255, g / D))), w = Math.round(Math.max(0, Math.min(255, B / D))), G = Math.round(Math.max(0, Math.min(255, C / D))), h = o << 3 | ((Q < 0 ? 1 : 0) | (A < 0 ? 2 : 0) | (I < 0 ? 4 : 0)); + return s | w << 8 | G << 16 | h << 24; } -class BD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "abs", outTypeFunc: qG }), this.statements = ({ inputs: I, outputs: g }) => [`${g.abs} = abs(${I.a});`]; - } +function o0(Q) { + const A = EB.color, g = 2 ** ((Q >>> 27 & 31) - 15) / 255, B = (Q & 255) * g, C = (Q >>> 8 & 255) * g, E = (Q >>> 16 & 255) * g; + return A.r = Q & 16777216 ? -B : B, A.g = Q & 33554432 ? -C : C, A.b = Q & 67108864 ? -E : E, A; } -class CD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "sign", outTypeFunc: xG }), this.statements = ({ inputs: I, outputs: g }) => [`${g.sign} = sign(${I.a});`]; +function w0(Q, A, I) { + const g = A * 4; + for (let B = 0; B < 3; ++B) { + const C = B * 3; + Q[g + B] = lI(I[C], I[C + 1], I[C + 2]); } } -class ED extends e { - constructor({ a: A }) { - super({ a: A, outKey: "floor", outTypeFunc: lG }), this.statements = ({ inputs: I, outputs: g }) => [`${g.floor} = floor(${I.a});`]; +function s0(Q, A, I, g, B) { + const C = I * 4; + for (let E = 0; E < 3; ++E) { + const i = E * 3; + Q[C + E] = lI(g[i], g[i + 1], g[i + 2]); } -} -class DD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "ceil", outTypeFunc: pG }), this.statements = ({ inputs: I, outputs: g }) => [`${g.ceil} = ceil(${I.a});`]; + Q[C + 3] = lI(B[0], B[1], B[2]); + for (let E = 1; E < 5; ++E) { + const i = E * 5; + A[C + (E - 1)] = lI( + B[i], + B[i + 1], + B[i + 2] + ); } } -class iD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "trunc", outTypeFunc: fG }), this.statements = ({ inputs: I, outputs: g }) => [`${g.trunc} = trunc(${I.a});`]; +function a0(Q, A, I, g) { + const B = I * 4; + for (let C = 0; C < 4; ++C) { + const E = C * 3; + Q[B + C] = lI( + g[E], + g[E + 1], + g[E + 2] + ); } -} -class wD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "round", outTypeFunc: bG }), this.statements = ({ inputs: I, outputs: g }) => [`${g.round} = round(${I.a});`]; + for (let C = 4; C < 7; ++C) { + const E = C * 3; + A[B + (C - 4)] = lI( + g[E], + g[E + 1], + g[E + 2] + ); } } -class oD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "fract", outTypeFunc: PG }), this.statements = ({ inputs: I, outputs: g }) => [`${g.fract} = fract(${I.a});`]; +function rE(Q, A) { + const I = []; + let g = 0, B = null; + const C = new ys((o, D) => { + if (I.push(o), g += o.length, D || g >= A) { + const s = new Uint8Array(g); + let w = 0; + for (const G of I) + s.set(G, w), w += G.length; + B = s.slice(0, A); + } + }), E = 1024; + let i = 0; + for (; B == null && i < Q.length; ) { + const o = Q.slice(i, i + E); + C.push(o, !1), i += E; } + if (B == null && (C.push(new Uint8Array(), !0), B == null)) + throw new Error("Failed to decompress partial gzip"); + return B; } -class sD extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outKey: "power", outTypeFunc: uG }), this.statements = ({ inputs: g, outputs: B }) => [`${B.power} = pow(${g.a}, ${g.b});`]; +class KE { + constructor({ + fileBytes: A, + chunkBytes: I = 64 * 1024 + }) { + this.fileBytes = A, this.chunkBytes = I, this.chunks = [], this.totalBytes = 0; + const g = new DecompressionStream("gzip"), B = new Blob([A]).stream().pipeThrough(g); + this.reader = B.getReader(); } -} -class GD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "exp", outTypeFunc: TG }), this.statements = ({ inputs: I, outputs: g }) => [`${g.exp} = exp(${I.a});`]; + async read(A) { + for (; this.totalBytes < A; ) { + const { value: C, done: E } = await this.reader.read(); + if (E) + break; + this.chunks.push(C), this.totalBytes += C.length; + } + if (this.totalBytes < A) + throw new Error( + `Unexpected EOF: needed ${A}, got ${this.totalBytes}` + ); + const I = new Uint8Array(this.totalBytes); + let g = 0; + for (const C of this.chunks) + I.set(C, g), g += C.length; + const B = I.subarray(0, A); + return this.chunks = [I.subarray(A)], this.totalBytes -= A, B; } } -class yD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "exp2", outTypeFunc: OG }), this.statements = ({ inputs: I, outputs: g }) => [`${g.exp2} = exp2(${I.a});`]; - } +function wB(Q, A, I, g, B) { + const C = Q.getContext(), E = Q.properties.get(A), i = E == null ? void 0 : E.__webglTexture; + if (!i) + throw new Error("texture not found"); + const o = C.getParameter(C.UNPACK_FLIP_Y_WEBGL), D = C.getParameter(C.UNPACK_PREMULTIPLY_ALPHA_WEBGL); + Q.state.activeTexture(C.TEXTURE0), Q.state.bindTexture(C.TEXTURE_2D, i), C.bindBuffer(C.PIXEL_UNPACK_BUFFER, null), C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL, !1), C.pixelStorei(C.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1), C.texSubImage2D( + C.TEXTURE_2D, + 0, + 0, + 0, + I, + g, + C.RGBA_INTEGER, + C.UNSIGNED_INT, + B + ), Q.state.unbindTexture(), C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL, o), C.pixelStorei(C.UNPACK_PREMULTIPLY_ALPHA_WEBGL, D); } -class hD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "log", outTypeFunc: mG }), this.statements = ({ inputs: I, outputs: g }) => [`${g.log} = log(${I.a});`]; +const Jy = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + DataCache: Ys, + FreeList: ds, + GunzipReader: KE, + IDENT_VERTEX_SHADER: JE, + Sint8ToFloat: ns, + Uint8ToFloat: Hs, + averagePositions: Xs, + averageQuaternions: js, + coinciDist: UE, + computeMaxSplats: Vs, + coorientDist: LE, + decodeExtRgb: o0, + decodeExtSplat: Zg, + decodeQuatEulerXyz888: C0, + decodeQuatOctXy1010R12: YE, + decodeQuatOctXy88R8: HE, + decodeQuatXyz888: g0, + decompressPartialGzip: rE, + encodeExt3Rgb: a0, + encodeExtRgb: lI, + encodeExtSh12Rgb: s0, + encodeExtSh1Rgb: w0, + encodeExtSplat: dQ, + encodeQuatEulerXyz888: B0, + encodeQuatOctXy1010R12: nE, + encodeQuatOctXy88R8: oB, + encodeQuatXyz888: I0, + encodeSh1Rgb: E0, + encodeSh2Rgb: i0, + encodeSh3Rgb: D0, + epsilonSign: A0, + flipPixels: Os, + floatBitsToUint: xg, + floatToSint8: pg, + floatToUint8: vA, + fromHalf: FA, + getTextureSize: EA, + getTransferable: RE, + isAndroid: iB, + isIos: Gg, + isMobile: Wg, + isOculus: DB, + isQuest2: Zs, + isVisionPro: eE, + mapFilterObject: Ks, + mapObject: rs, + newArray: KQ, + normalize: SE, + omitUndefined: vs, + pixelsToPngUrl: Ws, + setPackedSplat: qQ, + setPackedSplatCenter: qs, + setPackedSplatOpacity: us, + setPackedSplatQuat: xs, + setPackedSplatRgb: ps, + setPackedSplatRgba: fs, + setPackedSplatScales: ls, + threeMrtArray: FE, + threeRevision: kE, + toHalf: VA, + uintBitsToFloat: fg, + unpackSplat: Og, + uploadU32DataTextureRows: wB, + withinCoinciDist: _s, + withinCoorientDist: $s, + withinDist: zs +}, Symbol.toStringTag, { value: "Module" })); +class CQ { + constructor({ + graph: A, + inputs: I, + outputs: g, + template: B, + consoleLog: C + }) { + this.graph = A, this.template = B, this.inputs = I ?? {}, this.outputs = g ?? {}; + const E = new zB({ indent: this.template.indent }); + for (const o in this.outputs) + this.outputs[o] && E.declares.add(this.outputs[o]); + const i = A.compile({ + inputs: this.inputs, + outputs: this.outputs, + compile: E + }); + this.shader = B.generate({ globals: E.globals, statements: i }), this.uniforms = E.uniforms, this.updaters = E.updaters, C && (console.log("*** COMPILED SHADER", this.shader), console.log("*** UNIFORMS", this.uniforms)); } -} -class RD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "log2", outTypeFunc: ZG }), this.statements = ({ inputs: I, outputs: g }) => [`${g.log2} = log2(${I.a});`]; + prepareMaterial() { + return G0(this); } -} -class kD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "sqr", outTypeFunc: VG }), this.statements = ({ inputs: I, outputs: g }) => [`${g.sqr} = ${I.a} * ${I.a};`]; + update() { + for (const A of this.updaters) + A(); } } -class FD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "sqrt", outTypeFunc: XG }), this.statements = ({ inputs: I, outputs: g }) => [`${g.sqrt} = sqrt(${I.a});`]; +class hg { + constructor(A) { + const I = A.match(/^([ \t]*)\{\{\s*GLOBALS\s*\}\}/m), g = A.match(/^([ \t]*)\{\{\s*STATEMENTS\s*\}\}/m); + if (!I || !g) + throw new Error( + "Template must contain {{ GLOBALS }} and {{ STATEMENTS }}" + ); + this.before = A.substring(0, I.index), this.between = A.substring( + I.index + I[0].length, + g.index + ), this.after = A.substring( + g.index + g[0].length + ), this.indent = g[1]; } -} -class aD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "inversesqrt", outTypeFunc: WG }), this.statements = ({ inputs: I, outputs: g }) => [`${g.inversesqrt} = inversesqrt(${I.a});`]; + generate({ + globals: A, + statements: I + }) { + return this.before + Array.from(A).join(` + +`) + this.between + I.map((g) => this.indent + g).join(` +`) + this.after; } } -class SD extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outKey: "min", outTypeFunc: ZE }), this.statements = ({ inputs: g, outputs: B }) => [`${B.min} = min(${g.a}, ${g.b});`]; - } +const eB = /* @__PURE__ */ new WeakMap(); +function G0(Q) { + let A = eB.get(Q); + return A || (A = new a.RawShaderMaterial({ + glslVersion: a.GLSL3, + vertexShader: JE, + fragmentShader: Q.shader, + uniforms: Q.uniforms + }), eB.set(Q, A), A); } -class ND extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outKey: "max", outTypeFunc: jG }), this.statements = ({ inputs: g, outputs: B }) => [`${B.max} = max(${g.a}, ${g.b});`]; +function sB(Q, A, I = "add") { + const g = () => { + throw new Error(`Invalid ${I} types: ${Q}, ${A}`); + }; + if (Q === A) return Q; + if (Q === "int") { + if (dA(A)) return A; + g(); } -} -class cD extends OI { - constructor({ - a: A, - min: I, - max: g - }) { - super({ - a: A, - b: I, - c: g, - outKey: "clamp", - outTypeFunc: vG - }), this.statements = ({ inputs: B, outputs: C }) => { - const { a: E, b: D, c: i } = B; - return [`${C.clamp} = clamp(${E}, ${D}, ${i});`]; - }; + if (A === "int") { + if (dA(Q)) return Q; + g(); } -} -class MD extends OI { - constructor({ a: A, b: I, t: g }) { - super({ a: A, b: I, c: g, outKey: "mix", outTypeFunc: zG }), this.statements = ({ inputs: B, outputs: C }) => { - const { a: E, b: D, c: i } = B; - return [`${C.mix} = mix(${E}, ${D}, ${i});`]; - }; + if (Q === "uint") { + if (qA(A)) return A; + g(); } -} -class JD extends DA { - constructor({ edge: A, x: I }) { - super({ - a: A, - b: I, - outKey: "step", - outTypeFunc: _G - }), this.statements = ({ inputs: g, outputs: B }) => { - const { a: C, b: E } = g; - return [`${B.step} = step(${C}, ${E});`]; - }; + if (A === "uint") { + if (qA(Q)) return Q; + g(); } -} -class UD extends OI { - constructor({ - edge0: A, - edge1: I, - x: g - }) { - super({ - a: A, - b: I, - c: g, - outKey: "smoothstep", - outTypeFunc: $G - }), this.statements = ({ inputs: B, outputs: C }) => { - const { a: E, b: D, c: i } = B; - return [`${C.smoothstep} = smoothstep(${E}, ${D}, ${i});`]; - }; + if (Q === "float") { + if (JI(A)) return A; + g(); } -} -class tD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "isNan", outTypeFunc: VE }), this.statements = ({ inputs: I, outputs: g }) => [`${g.isNan} = isNan(${I.a});`]; + if (A === "float") { + if (JI(Q)) return Q; + g(); } + throw new Error(`Invalid ${I} types: ${Q}, ${A}`); } -class HD extends e { - constructor({ a: A }) { - super({ a: A, outKey: "isInf", outTypeFunc: A0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.isInf} = isInf(${I.a});`]; - } +function h0(Q, A) { + return sB(Q, A, "sub"); } -const M0 = (Q, A) => new YD({ a: Q, b: A }), J0 = (Q, A) => new KD({ a: Q, b: A }), U0 = (Q, A) => new eD({ a: Q, b: A }), t0 = (Q) => new rD({ a: Q }), H0 = (Q, A) => new OD({ a: Q, b: A }), L0 = (Q, A) => new mD({ a: Q, b: A }), Y0 = (Q, A) => new nD({ a: Q, b: A }), K0 = (Q, A) => new dD({ a: Q, b: A }), e0 = (Q, A) => new qD({ a: Q, b: A }), LD = (Q, A) => new xD({ a: Q, b: A }), r0 = (Q, A) => new lD({ a: Q, b: A }), n0 = (Q, A) => new pD({ a: Q, b: A }), d0 = (Q) => new fD({ a: Q }), q0 = (Q) => new bD({ a: Q }), hB = (Q, A, I) => new PD({ cond: Q, t: A, f: I }), x0 = (Q) => new TD({ a: Q }); -class YD extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outTypeFunc: (g, B) => g, outKey: "and" }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.and === "bool" ? [`${B.and} = ${g.a} && ${g.b};`] : [`${B.and} = ${g.a} & ${g.b};`]; +function t0(Q, A) { + const I = () => { + throw new Error(`Invalid mul types: ${Q}, ${A}`); + }, g = (B) => B; + if (Q === "int") { + if (dA(A)) return g(A); + I(); } -} -class KD extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outTypeFunc: (g, B) => g, outKey: "or" }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.or === "bool" ? [`${B.or} = ${g.a} || ${g.b};`] : [`${B.or} = ${g.a} | ${g.b};`]; + if (A === "int") { + if (dA(Q)) return g(Q); + I(); } -} -class eD extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outTypeFunc: (g, B) => g, outKey: "xor" }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.xor === "bool" ? [`${B.xor} = ${g.a} ^^ ${g.b};`] : [`${B.xor} = ${g.a} ^ ${g.b};`]; + if (Q === "uint") { + if (qA(A)) return g(A); + I(); } -} -class rD extends e { - constructor({ a: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "not" }), this.statements = ({ inputs: I, outputs: g }) => this.outTypes.not === "bool" ? [`${g.not} = !${I.a};`] : [`${g.not} = not(${I.a});`]; + if (A === "uint") { + if (qA(Q)) return g(Q); + I(); } -} -class nD extends DA { - constructor({ a: A, b: I }) { - super({ - a: A, - b: I, - outTypeFunc: (g, B) => iQ(g, "lessThan"), - outKey: "lessThan" - }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.lessThan === "bool" ? [`${B.lessThan} = ${g.a} < ${g.b};`] : [`${B.lessThan} = lessThan(${g.a}, ${g.b});`]; + if (Q === "float") { + if (JI(A)) return g(A); + I(); } -} -class dD extends DA { - constructor({ a: A, b: I }) { - super({ - a: A, - b: I, - outTypeFunc: (g, B) => iQ(g, "lessThanEqual"), - outKey: "lessThanEqual" - }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.lessThanEqual === "bool" ? [`${B.lessThanEqual} = ${g.a} <= ${g.b};`] : [ - `${B.lessThanEqual} = lessThanEqual(${g.a}, ${g.b});` - ]; + if (A === "float") { + if (JI(Q)) return g(Q); + I(); } -} -class qD extends DA { - constructor({ a: A, b: I }) { - super({ - a: A, - b: I, - outTypeFunc: (g, B) => iQ(g, "greaterThan"), - outKey: "greaterThan" - }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.greaterThan === "bool" ? [`${B.greaterThan} = ${g.a} > ${g.b};`] : [ - `${B.greaterThan} = greaterThan(${g.a}, ${g.b});` - ]; + if (dA(Q) || qA(Q) || dA(A) || qA(A)) { + if (Q === A) return g(Q); + I(); } -} -class xD extends DA { - constructor({ a: A, b: I }) { - super({ - a: A, - b: I, - outTypeFunc: (g, B) => iQ(g, "greaterThanEqual"), - outKey: "greaterThanEqual" - }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.greaterThanEqual === "bool" ? [`${B.greaterThanEqual} = ${g.a} >= ${g.b};`] : [ - `${B.greaterThanEqual} = greaterThanEqual(${g.a}, ${g.b});` - ]; + if (Q === "vec2") { + if (A === "vec2" || nI(A)) return g("vec2"); + if (A === "mat3x2") return g("vec3"); + if (A === "mat4x2") return g("vec4"); + I(); } -} -class lD extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outTypeFunc: uD, outKey: "equal" }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.equal === "bool" ? [`${B.equal} = ${g.a} == ${g.b};`] : [`${B.equal} = equal(${g.a}, ${g.b});`]; + if (Q === "vec3") { + if (A === "mat2x3") return g("vec2"); + if (A === "vec3" || YI(A)) return g("vec3"); + if (A === "mat4x3") return g("vec4"); + I(); } -} -class pD extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outTypeFunc: l0, outKey: "notEqual" }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.notEqual === "bool" ? [`${B.notEqual} = ${g.a} != ${g.b};`] : [`${B.notEqual} = notEqual(${g.a}, ${g.b});`]; + if (Q === "vec4") { + if (A === "mat2x4") return g("vec2"); + if (A === "mat3x4") return g("vec3"); + if (A === "vec4" || rI(A)) return g("vec4"); + I(); } -} -class fD extends e { - constructor({ a: A }) { - super({ a: A, outTypeFunc: (I) => "bool", outKey: "any" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.any} = any(${I.a});`]; + if (A === "vec2") { + if (nI(Q)) return g("vec2"); + if (Q === "mat2x3") return g("vec3"); + if (Q === "mat2x4") return g("vec4"); + I(); } -} -class bD extends e { - constructor({ a: A }) { - super({ a: A, outTypeFunc: (I) => "bool", outKey: "all" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.all} = all(${I.a});`]; + if (A === "vec3") { + if (Q === "mat3x2") return g("vec2"); + if (YI(Q)) return g("vec3"); + if (Q === "mat3x4") return g("vec4"); + I(); } -} -class PD extends OI { - constructor({ - cond: A, - t: I, - f: g - }) { - super({ - a: A, - b: I, - c: g, - outKey: "select", - outTypeFunc: (B, C, E) => C - }), this.statements = ({ inputs: B, outputs: C }) => { - const { a: E, b: D, c: i } = B; - return [`${C.select} = (${E}) ? (${D}) : (${i});`]; - }; + if (A === "vec4") { + if (Q === "mat4x2") return g("vec2"); + if (Q === "mat4x3") return g("vec3"); + if (rI(Q)) return g("vec4"); + I(); } -} -function iQ(Q, A) { - if (TI(Q)) - return "bool"; - if (Q === "ivec2" || Q === "uvec2" || Q === "vec2") - return "bvec2"; - if (Q === "ivec3" || Q === "uvec3" || Q === "vec3") - return "bvec3"; - if (Q === "ivec4" || Q === "uvec4" || Q === "vec4") - return "bvec4"; - throw new Error(`Invalid ${A} type: ${Q}`); -} -function uD(Q, A = "equal") { - if (TI(Q)) - return "bool"; - if (uI(Q)) - return Q; - if (Q === "ivec2" || Q === "uvec2" || Q === "vec2") - return "bvec2"; - if (Q === "ivec3" || Q === "uvec3" || Q === "vec3") - return "bvec3"; - if (Q === "ivec4" || Q === "uvec4" || Q === "vec4") - return "bvec4"; - throw new Error(`Invalid ${A} type: ${Q}`); -} -function l0(Q) { - return uD(Q, "notEqual"); -} -function p0(Q) { - if (uI(Q)) - return "bool"; - if (xA(Q)) - return "int"; - if (lA(Q)) - return "uint"; - throw new Error(`Invalid compXor type: ${Q}`); -} -class TD extends e { - constructor({ a: A }) { - const I = p0(CA(A)); - super({ a: A, outTypeFunc: (g) => I, outKey: "compXor" }), this.statements = ({ inputs: g, outputs: B }) => { - if (TI(this.outTypes.compXor)) - return [`${B.compXor} = ${g.a};`]; - const E = (gg(I) ? ["x", "y"] : Qg(I) ? ["x", "y", "z"] : ["x", "y", "z", "w"]).map((i) => `${g.a}.${i}`), D = uI(I) ? "^^" : "^"; - return [`${B.compXor} = ${E.join(` ${D} `)};`]; - }; + if (nI(Q)) { + if (nI(A)) return g("mat2"); + if (A === "mat3x2") return g("mat3x2"); + if (A === "mat4x2") return g("mat4x2"); + I(); } -} -class OD extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outTypeFunc: (g, B) => g, outKey: "shr" }), this.statements = ({ inputs: g, outputs: B }) => [`${B.shr} = ${g.a} >> ${g.b};`]; + if (Q === "mat2x3") { + if (nI(A)) return g("mat2x3"); + if (A === "mat3x2") return g("mat3"); + if (A === "mat4x2") return g("mat4x3"); + I(); } -} -class mD extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outTypeFunc: (g, B) => g, outKey: "shl" }), this.statements = ({ inputs: g, outputs: B }) => [`${B.shl} = ${g.a} << ${g.b};`]; + if (Q === "mat2x4") { + if (nI(A)) return g("mat2x4"); + if (A === "mat3x2") return g("mat3x4"); + if (A === "mat4x2") return g("mat4"); + I(); } -} -const f0 = (Q) => new zD({ value: Q }), b0 = (Q) => new _D({ value: Q }), P0 = (Q) => new $D({ value: Q }), ZD = (Q) => new Ai({ value: Q }), u0 = (Q) => new Ii({ value: Q }), T0 = (Q) => new gi({ value: Q }), O0 = (Q) => new Qi({ value: Q }), m0 = (Q) => new Bi({ value: Q }), Z0 = (Q) => new Ci({ value: Q }), V0 = (Q) => new Ei({ value: Q }), X0 = (Q) => new Di({ value: Q }), W0 = (Q) => new ii({ value: Q }), j0 = (Q) => new wi({ value: Q }), VD = (Q) => new oi({ value: Q }), fI = (Q) => new si({ value: Q }), XD = (Q) => new Gi({ value: Q }), v0 = (Q) => new yi({ value: Q }), z0 = (Q) => new hi({ value: Q }), _0 = (Q) => new Ri({ value: Q }), WD = (Q) => new ki({ value: Q }), jD = (Q) => new Fi({ value: Q }), $0 = (Q) => new ai({ value: Q }), Ay = (Q) => new Si({ value: Q }), Iy = (Q) => new Ni({ value: Q }), gy = (Q) => new ci({ value: Q }), Qy = (Q) => new Mi({ value: Q }), By = (Q) => new Ji({ value: Q }), vD = (Q) => new Ui({ value: Q }), Cy = (Q) => new ti({ value: Q }), fQ = (Q) => new Hi({ value: Q }); -class tA extends e { - constructor({ - value: A, - outType: I, - outKey: g - }) { - super({ a: A, outTypeFunc: () => I, outKey: g }), this.statements = ({ inputs: B, outputs: C }) => [ - `${C[g]} = ${sC(I)}(${B.a});` - ]; + if (Q === "mat3x2") { + if (A === "mat2x3") return g("mat2"); + if (YI(A)) return g("mat3x2"); + if (A === "mat4x3") return g("mat4x2"); + I(); } -} -class zD extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "bool", outKey: "bool" }); + if (YI(Q)) { + if (A === "mat2x3") return g("mat2x3"); + if (YI(A)) return g("mat3"); + if (A === "mat4x3") return g("mat4x3"); + I(); } -} -class _D extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "int", outKey: "int" }); + if (Q === "mat3x4") { + if (A === "mat2x3") return g("mat2x4"); + if (YI(A)) return g("mat3x4"); + if (A === "mat4x3") return g("mat4"); + I(); } -} -class $D extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "uint", outKey: "uint" }); + if (Q === "mat4x2") { + if (A === "mat2x4") return g("mat2"); + if (A === "mat3x4") return g("mat3x2"); + if (rI(A)) return g("mat4x2"); + I(); } -} -class Ai extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "float", outKey: "float" }); + if (Q === "mat4x3") { + if (A === "mat2x4") return g("mat2x3"); + if (A === "mat3x4") return g("mat3"); + if (rI(A)) return g("mat4x3"); + I(); } -} -class Ii extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "bvec2", outKey: "bvec2" }); + if (rI(Q)) { + if (A === "mat2x4") return g("mat2x4"); + if (A === "mat3x4") return g("mat3x4"); + if (rI(A)) return g("mat4"); + I(); } + throw new Error(`Invalid mul types: ${Q}, ${A}`); } -class gi extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "bvec3", outKey: "bvec3" }); - } +function y0(Q, A) { + return sB(Q, A, "div"); } -class Qi extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "bvec4", outKey: "bvec4" }); - } +function c0(Q, A) { + if (Q === A) return Q; + if (Q === "int") { + if (dA(A)) return A; + } else if (A === "int") { + if (dA(Q)) return Q; + } else if (Q === "uint") { + if (qA(A)) return A; + } else if (A === "uint" && qA(Q)) + return Q; + throw new Error(`Invalid imod types: ${Q}, ${A}`); } -class Bi extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "ivec2", outKey: "ivec2" }); - } +function k0(Q, A) { + if (Q === A || A === "float") return Q; + throw new Error(`Invalid mod types: ${Q}, ${A}`); } -class Ci extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "ivec3", outKey: "ivec3" }); - } +function F0(Q) { + return Q; } -class Ei extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "ivec4", outKey: "ivec4" }); - } +function N0(Q) { + return Q; } -class Di extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "uvec2", outKey: "uvec2" }); - } +function S0(Q) { + return Q; } -class ii extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "uvec3", outKey: "uvec3" }); - } +function R0(Q) { + return Q; } -class wi extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "uvec4", outKey: "uvec4" }); - } +function M0(Q) { + return Q; } -class oi extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "vec2", outKey: "vec2" }); - } +function e0(Q) { + return Q; } -class si extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "vec3", outKey: "vec3" }); - } +function J0(Q) { + return Q; } -class Gi extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "vec4", outKey: "vec4" }); - } +function U0(Q) { + return Q; } -class yi extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "mat2", outKey: "mat2" }); - } +function L0(Q) { + return Q; } -class hi extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "mat3", outKey: "mat3" }); - } +function H0(Q) { + return Q; } -class Ri extends tA { - constructor({ - value: A - }) { - super({ value: A, outType: "mat4", outKey: "mat4" }); - } +function n0(Q) { + return Q; } -class ki extends e { - constructor({ value: A }) { - super({ a: A, outKey: "int", outTypeFunc: () => "int" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.int} = floatBitsToInt(${I.a});`]; - } +function Y0(Q) { + return Q; } -class Fi extends e { - constructor({ value: A }) { - super({ a: A, outKey: "uint", outTypeFunc: () => "uint" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.uint} = floatBitsToUint(${I.a});`]; - } +function r0(Q) { + return Q; } -class ai extends e { - constructor({ value: A }) { - super({ a: A, outKey: "float", outTypeFunc: () => "float" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.float} = intBitsToFloat(${I.a});`]; - } +function K0(Q) { + return Q; } -class Si extends e { - constructor({ value: A }) { - super({ a: A, outKey: "float", outTypeFunc: () => "float" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.float} = uintBitsToFloat(${I.a});`]; - } +function d0(Q) { + return Q; } -class Ni extends e { - constructor({ value: A }) { - super({ a: A, outKey: "uint", outTypeFunc: () => "uint" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.uint} = packSnorm2x16(${I.a});`]; - } +function q0(Q) { + return Q; } -class ci extends e { - constructor({ value: A }) { - super({ a: A, outKey: "vec2", outTypeFunc: () => "vec2" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.vec2} = unpackSnorm2x16(${I.a});`]; - } +function dE(Q, A, I = "min") { + if (Q === A) return Q; + if (A === "float") { + if (Rg(Q)) return Q; + } else if (A === "int") { + if (dA(Q)) return Q; + } else if (A === "uint" && qA(Q)) + return Q; + throw new Error(`Invalid ${I} types: ${Q}, ${A}`); } -class Mi extends e { - constructor({ value: A }) { - super({ a: A, outKey: "uint", outTypeFunc: () => "uint" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.uint} = packUnorm2x16(${I.a});`]; - } +function l0(Q, A) { + return dE(Q, A, "max"); } -class Ji extends e { - constructor({ value: A }) { - super({ a: A, outKey: "vec2", outTypeFunc: () => "vec2" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.vec2} = unpackUnorm2x16(${I.a});`]; - } +function x0(Q, A, I) { + if (A === "float") { + if (Rg(Q)) return Q; + } else if (A === "int") { + if (dA(Q)) return Q; + } else if (A === "uint" && qA(Q)) + return Q; + throw new Error(`Invalid clamp types: ${Q}, ${A}`); } -class Ui extends e { - constructor({ value: A }) { - super({ a: A, outKey: "uint", outTypeFunc: () => "uint" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.uint} = packHalf2x16(${I.a});`]; +function f0(Q, A, I) { + if (I === Q || I === "float" || I === "bool" && Q === "float" || I === "bvec2" && Q === "vec2" || I === "bvec3" && Q === "vec3" || I === "bvec4" && Q === "vec4") return Q; + throw new Error(`Invalid mix types: ${Q}, ${A}, ${I}`); +} +function p0(Q, A) { + if (Q === A || A === "float") return A; + throw new Error(`Invalid step types: ${Q}, ${A}`); +} +function u0(Q, A, I) { + if (Q === A && (Q === I || Q === "float")) + return I; + throw new Error(`Invalid smoothstep types: ${Q}, ${A}, ${I}`); +} +function qE(Q, A = "isNan") { + if (Q === "float") return "bool"; + if (Q === "vec2") return "bvec2"; + if (Q === "vec3") return "bvec3"; + if (Q === "vec4") return "bvec4"; + throw new Error(`Invalid ${A} types: ${Q}`); +} +function P0(Q) { + return qE(Q, "isInf"); +} +const lA = (Q, A) => new pE({ a: Q, b: A }), CI = (Q, A) => new uE({ a: Q, b: A }), kA = (Q, A) => new PE({ a: Q, b: A }), ug = (Q, A) => new bE({ a: Q, b: A }), xQ = (Q, A) => new TE({ a: Q, b: A }), lE = (Q, A) => new mE({ a: Q, b: A }), b0 = (Q) => new VE({ a: Q }).outputs, aB = (Q) => new ZE({ a: Q }), T0 = (Q) => new OE({ a: Q }), m0 = (Q) => new WE({ a: Q }), V0 = (Q) => new vE({ a: Q }), Z0 = (Q) => new XE({ a: Q }), O0 = (Q) => new jE({ a: Q }), W0 = (Q) => new zE({ a: Q }), Pg = (Q) => new _E({ a: Q }), v0 = (Q, A) => new $E({ a: Q, b: A }), X0 = (Q) => new Ai({ a: Q }), j0 = (Q) => new Ii({ a: Q }), z0 = (Q) => new gi({ a: Q }), _0 = (Q) => new Qi({ a: Q }), $0 = (Q) => new Bi({ a: Q }), Aa = (Q) => new Ci({ a: Q }), Ia = (Q) => new Ei({ a: Q }), ga = (Q, A) => new ii({ a: Q, b: A }), xE = (Q, A) => new Di({ a: Q, b: A }), Qa = (Q, A, I) => new oi({ a: Q, min: A, max: I }), fE = (Q, A, I) => new wi({ a: Q, b: A, t: I }), Ba = (Q, A) => new si({ edge: Q, x: A }), Ca = (Q, A, I) => new ai({ edge0: Q, edge1: A, x: I }), Ea = (Q) => new Gi({ a: Q }), ia = (Q) => new hi({ a: Q }); +class pE extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outKey: "sum", outTypeFunc: sB }), this.statements = ({ inputs: g, outputs: B }) => [`${B.sum} = ${g.a} + ${g.b};`]; } } -class ti extends e { - constructor({ value: A }) { - super({ a: A, outKey: "vec2", outTypeFunc: () => "vec2" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.vec2} = unpackHalf2x16(${I.a});`]; +class uE extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outKey: "difference", outTypeFunc: h0 }), this.statements = ({ inputs: g, outputs: B }) => [`${B.difference} = ${g.a} - ${g.b};`]; } } -class Hi extends e { - constructor({ value: A }) { - super({ a: A, outKey: "rgba8", outTypeFunc: () => "vec4" }), this.statements = ({ inputs: I, outputs: g }) => [ - `uvec4 uRgba = uvec4(${I.a} & 0xffu, (${I.a} >> 8u) & 0xffu, (${I.a} >> 16u) & 0xffu, (${I.a} >> 24u) & 0xffu);`, - `${g.rgba8} = vec4(uRgba) / 255.0;` - ]; +class PE extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outKey: "product", outTypeFunc: t0 }), this.statements = ({ inputs: g, outputs: B }) => [`${B.product} = ${g.a} * ${g.b};`]; } } -const Ey = (Q) => new Yi({ a: Q }), Dy = (Q, A) => new Ki({ a: Q, b: A }), Li = (Q, A) => new ei({ a: Q, b: A }), iy = (Q, A) => new ri({ a: Q, b: A }), ag = (Q) => new ni({ a: Q }), wy = (Q, A, I) => new xi({ a: Q, b: A, c: I }), oy = (Q, A) => new li({ incident: Q, normal: A }), sy = (Q, A, I) => new pi({ incident: Q, normal: A, eta: I }), $I = (Q) => new Oi({ vector: Q }), yI = ({ - vector: Q, - vectorType: A, - x: I, - y: g, - z: B, - w: C, - r: E, - g: D, - b: i, - a: w -}) => new mi({ vector: Q, vectorType: A, x: I, y: g, z: B, w: C, r: E, g: D, b: i, a: w }), Gy = (Q) => new di({ a: Q }), yy = (Q, A) => new qi({ a: Q, b: A }), hy = (Q, A) => new Zi({ vector: Q, select: A }), Ry = (Q, A) => new fi({ a: Q, b: A }), ky = (Q, A) => new bi({ a: Q, b: A }), Fy = (Q) => new Pi({ a: Q }), ay = (Q) => new ui({ a: Q }), Sy = (Q) => new Ti({ a: Q }); -class Yi extends e { - constructor({ a: A }) { - super({ a: A, outTypeFunc: (I) => "float", outKey: "length" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.length} = length(${I.a});` - ]; +class bE extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outKey: "quotient", outTypeFunc: y0 }), this.statements = ({ inputs: g, outputs: B }) => [`${B.quotient} = ${g.a} / ${g.b};`]; } } -class Ki extends DA { +class TE extends iA { constructor({ a: A, b: I }) { - super({ a: A, b: I, outKey: "distance", outTypeFunc: (g, B) => "float" }), this.statements = ({ inputs: g, outputs: B }) => [ - `${B.distance} = distance(${g.a}, ${g.b});` - ]; + super({ a: A, b: I, outKey: "remainder", outTypeFunc: c0 }), this.statements = ({ inputs: g, outputs: B }) => [`${B.remainder} = ${g.a} % ${g.b};`]; } } -class ei extends DA { +class mE extends iA { constructor({ a: A, b: I }) { - super({ a: A, b: I, outKey: "dot", outTypeFunc: (g, B) => "float" }), this.statements = ({ inputs: g, outputs: B }) => [ - `${B.dot} = dot(${g.a}, ${g.b});` - ]; + super({ a: A, b: I, outKey: "remainder", outTypeFunc: k0 }), this.statements = ({ inputs: g, outputs: B }) => [`${B.remainder} = mod(${g.a}, ${g.b});`]; + } +} +class VE extends q { + constructor({ a: A }) { + const I = { a: BA(A) }, g = I.a, B = { + fract: g, + integer: g + }; + super({ inTypes: I, outTypes: B, inputs: { a: A } }), this.statements = ({ inputs: C, outputs: E }) => [`${E.fract} = modf(${C.a}, ${E.integer});`]; } } -class ri extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outKey: "cross", outTypeFunc: (g, B) => "vec3" }), this.statements = ({ inputs: g, outputs: B }) => [ - `${B.cross} = cross(${g.a}, ${g.b});` - ]; +class ZE extends r { + constructor({ a: A }) { + super({ a: A, outKey: "neg", outTypeFunc: F0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.neg} = -${I.a};`]; } } -class ni extends e { +class OE extends r { constructor({ a: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "normalize" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.normalize} = normalize(${I.a});` - ]; + super({ a: A, outKey: "abs", outTypeFunc: N0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.abs} = abs(${I.a});`]; } } -function Ny(Q) { - if (Q === "vec3") - return "vec2"; - if (Q === "vec4") - return "vec3"; - throw new Error("Invalid type"); -} -class di extends e { +class WE extends r { constructor({ a: A }) { - super({ - a: A, - outTypeFunc: (I) => Ny(I), - outKey: "projected" - }), this.statements = ({ inputs: I, outputs: g }) => { - if (this.inTypes.a === "vec3") - return [`${g.projected} = ${I.a}.xy / ${I.a}.z;`]; - if (this.inTypes.a === "vec4") - return [`${g.projected} = ${I.a}.xyz / ${I.a}.w;`]; - throw new Error("Invalid type"); - }; + super({ a: A, outKey: "sign", outTypeFunc: S0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.sign} = sign(${I.a});`]; } } -function cy(Q) { - if (Q === "float") return "vec2"; - if (Q === "vec2") return "vec3"; - if (Q === "vec3") return "vec4"; - throw new Error("Invalid type"); +class vE extends r { + constructor({ a: A }) { + super({ a: A, outKey: "floor", outTypeFunc: R0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.floor} = floor(${I.a});`]; + } } -class qi extends DA { - constructor({ a: A, b: I }) { - const g = CA(A), B = cy(g); - super({ a: A, b: I, outKey: "extend", outTypeFunc: () => B }), this.statements = ({ inputs: C, outputs: E }) => [ - `${E.extend} = ${B}(${C.a}, ${C.b});` - ]; +class XE extends r { + constructor({ a: A }) { + super({ a: A, outKey: "ceil", outTypeFunc: M0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.ceil} = ceil(${I.a});`]; } } -class xi extends OI { - constructor({ a: A, b: I, c: g }) { - super({ - a: A, - b: I, - c: g, - outKey: "forward", - outTypeFunc: (B, C, E) => B - }), this.statements = ({ inputs: B, outputs: C }) => [ - `${C.forward} = faceforward(${B.a}, ${B.b}, ${B.c});` - ]; +class jE extends r { + constructor({ a: A }) { + super({ a: A, outKey: "trunc", outTypeFunc: e0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.trunc} = trunc(${I.a});`]; } } -class li extends DA { - constructor({ - incident: A, - normal: I - }) { - super({ - a: A, - b: I, - outKey: "reflection", - outTypeFunc: (g, B) => g - }), this.statements = ({ inputs: g, outputs: B }) => [ - `${B.reflection} = reflect(${g.a}, ${g.b});` - ]; +class zE extends r { + constructor({ a: A }) { + super({ a: A, outKey: "round", outTypeFunc: J0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.round} = round(${I.a});`]; } } -class pi extends OI { - constructor({ - incident: A, - normal: I, - eta: g - }) { - super({ - a: A, - b: I, - c: g, - outKey: "refraction", - outTypeFunc: (B, C, E) => B - }), this.statements = ({ inputs: B, outputs: C }) => [ - `${C.refraction} = refract(${B.a}, ${B.b}, ${B.c});` - ]; +class _E extends r { + constructor({ a: A }) { + super({ a: A, outKey: "fract", outTypeFunc: U0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.fract} = fract(${I.a});`]; } } -class fi extends DA { +class $E extends iA { constructor({ a: A, b: I }) { - super({ a: A, b: I, outKey: "product", outTypeFunc: (g, B) => g }), this.statements = ({ inputs: g, outputs: B }) => [ - `${B.product} = matrixCompMult(${A}, ${I});` - ]; + super({ a: A, b: I, outKey: "power", outTypeFunc: L0 }), this.statements = ({ inputs: g, outputs: B }) => [`${B.power} = pow(${g.a}, ${g.b});`]; } } -function My(Q, A) { - if (Q === "vec2") { - if (A === "vec2") return "mat2"; - if (A === "vec3") return "mat3x2"; - if (A === "vec4") return "mat4x2"; - } - if (Q === "vec3") { - if (A === "vec2") return "mat2x3"; - if (A === "vec3") return "mat3"; - if (A === "vec4") return "mat4x3"; +class Ai extends r { + constructor({ a: A }) { + super({ a: A, outKey: "exp", outTypeFunc: H0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.exp} = exp(${I.a});`]; } - if (Q === "vec4") { - if (A === "vec2") return "mat2x4"; - if (A === "vec3") return "mat3x4"; - if (A === "vec4") return "mat4"; +} +class Ii extends r { + constructor({ a: A }) { + super({ a: A, outKey: "exp2", outTypeFunc: n0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.exp2} = exp2(${I.a});`]; } - throw new Error(`Invalid outer type: ${Q}, ${A}`); } -class bi extends DA { - constructor({ a: A, b: I }) { - super({ a: A, b: I, outKey: "outer", outTypeFunc: My }), this.statements = ({ inputs: g, outputs: B }) => [ - `${B.outer} = outerProduct(${g.a}, ${g.b});` - ]; +class gi extends r { + constructor({ a: A }) { + super({ a: A, outKey: "log", outTypeFunc: Y0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.log} = log(${I.a});`]; } } -function Jy(Q) { - if (Q === "mat2") return "mat2"; - if (Q === "mat3") return "mat3"; - if (Q === "mat4") return "mat4"; - if (Q === "mat2x2") return "mat2x2"; - if (Q === "mat2x3") return "mat3x2"; - if (Q === "mat2x4") return "mat4x2"; - if (Q === "mat3x2") return "mat2x3"; - if (Q === "mat3x3") return "mat3x3"; - if (Q === "mat3x4") return "mat4x3"; - if (Q === "mat4x2") return "mat2x4"; - if (Q === "mat4x3") return "mat3x4"; - if (Q === "mat4x4") return "mat4x4"; - throw new Error(`Invalid transpose type: ${Q}`); +class Qi extends r { + constructor({ a: A }) { + super({ a: A, outKey: "log2", outTypeFunc: r0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.log2} = log2(${I.a});`]; + } } -class Pi extends e { +class Bi extends r { constructor({ a: A }) { - super({ a: A, outKey: "transpose", outTypeFunc: Jy }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.transpose} = transpose(${I.a});` - ]; + super({ a: A, outKey: "sqr", outTypeFunc: K0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.sqr} = ${I.a} * ${I.a};`]; } } -class ui extends e { +class Ci extends r { constructor({ a: A }) { - super({ a: A, outKey: "det", outTypeFunc: (I) => "float" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.det} = determinant(${I.a});` - ]; + super({ a: A, outKey: "sqrt", outTypeFunc: d0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.sqrt} = sqrt(${I.a});`]; } } -class Ti extends e { +class Ei extends r { constructor({ a: A }) { - super({ a: A, outKey: "inverse", outTypeFunc: (I) => I }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.inverse} = inverse(${A});` - ]; + super({ a: A, outKey: "inversesqrt", outTypeFunc: q0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.inversesqrt} = inversesqrt(${I.a});`]; } } -function Uy(Q) { - const A = (I) => I; - switch (Q) { - case "vec2": - return A({ x: "float", y: "float", r: "float", g: "float" }); - case "vec3": - return A({ - x: "float", - y: "float", - z: "float", - r: "float", - g: "float", - b: "float" - }); - case "vec4": - return A({ - x: "float", - y: "float", - z: "float", - w: "float", - r: "float", - g: "float", - b: "float", - a: "float" - }); - case "ivec2": - return A({ x: "int", y: "int", r: "int", g: "int" }); - case "ivec3": - return A({ - x: "int", - y: "int", - z: "int", - r: "int", - g: "int", - b: "int" - }); - case "ivec4": - return A({ - x: "int", - y: "int", - z: "int", - w: "int", - r: "int", - g: "int", - b: "int", - a: "int" - }); - case "uvec2": - return A({ x: "uint", y: "uint", r: "uint", g: "uint" }); - case "uvec3": - return A({ - x: "uint", - y: "uint", - z: "uint", - r: "uint", - g: "uint", - b: "uint" - }); - case "uvec4": - return A({ - x: "uint", - y: "uint", - z: "uint", - w: "uint", - r: "uint", - g: "uint", - b: "uint", - a: "uint" - }); - default: - throw new Error(`Invalid vector type: ${Q}`); +class ii extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outKey: "min", outTypeFunc: dE }), this.statements = ({ inputs: g, outputs: B }) => [`${B.min} = min(${g.a}, ${g.b});`]; } } -class Oi extends d { - constructor({ vector: A }) { - const g = { vector: CA(A) }, B = Uy(g.vector); - super({ inTypes: g, outTypes: B, inputs: { vector: A } }), this.statements = ({ inputs: C, outputs: E }) => { - const { x: D, y: i, z: w, w: s, r: o, g: y, b: h, a: k } = E, { vector: R } = C; - return [ - D ? `${D} = ${R}.x;` : null, - i ? `${i} = ${R}.y;` : null, - w ? `${w} = ${R}.z;` : null, - s ? `${s} = ${R}.w;` : null, - o ? `${o} = ${R}.r;` : null, - y ? `${y} = ${R}.g;` : null, - h ? `${h} = ${R}.b;` : null, - k ? `${k} = ${R}.a;` : null - ].filter(Boolean); +class Di extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outKey: "max", outTypeFunc: l0 }), this.statements = ({ inputs: g, outputs: B }) => [`${B.max} = max(${g.a}, ${g.b});`]; + } +} +class oi extends uI { + constructor({ + a: A, + min: I, + max: g + }) { + super({ + a: A, + b: I, + c: g, + outKey: "clamp", + outTypeFunc: x0 + }), this.statements = ({ inputs: B, outputs: C }) => { + const { a: E, b: i, c: o } = B; + return [`${C.clamp} = clamp(${E}, ${i}, ${o});`]; + }; + } +} +class wi extends uI { + constructor({ a: A, b: I, t: g }) { + super({ a: A, b: I, c: g, outKey: "mix", outTypeFunc: f0 }), this.statements = ({ inputs: B, outputs: C }) => { + const { a: E, b: i, c: o } = B; + return [`${C.mix} = mix(${E}, ${i}, ${o});`]; + }; + } +} +class si extends iA { + constructor({ edge: A, x: I }) { + super({ + a: A, + b: I, + outKey: "step", + outTypeFunc: p0 + }), this.statements = ({ inputs: g, outputs: B }) => { + const { a: C, b: E } = g; + return [`${B.step} = step(${C}, ${E});`]; }; } } -class mi extends d { +class ai extends uI { constructor({ - vector: A, - vectorType: I, - x: g, - y: B, - z: C, - w: E, - r: D, - g: i, - b: w, - a: s + edge0: A, + edge1: I, + x: g }) { - if (!A && !I) - throw new Error("Either vector or vectorType must be provided"); - const o = I ?? CA(A), y = iC(o), h = wC(o), k = { - vector: o, - x: y, - y, - r: y, - g: y - }, R = { vector: A, x: g, y: B, r: D, g: i }; - h >= 3 && (Object.assign(k, { z: y, b: y }), Object.assign(R, { z: C, b: w })), h >= 4 && (Object.assign(k, { w: y, a: y }), Object.assign(R, { w: E, a: s })), super({ inTypes: k, outTypes: { vector: o }, inputs: R }), this.statements = ({ inputs: F, outputs: a }) => { - const { vector: S } = a, { - vector: M, - x: c, - y: N, - z: U, - w: J, - r: t, - g: H, - b: K, - a: Y - } = F, L = [ - `${S}.x = ${c ?? t ?? (M ? `${M}.x` : Dg(y))};`, - `${S}.y = ${N ?? H ?? (M ? `${M}.y` : Dg(y))};` - ]; - return h >= 3 && L.push( - `${S}.z = ${U ?? K ?? (M ? `${M}.z` : Dg(y))};` - ), h >= 4 && L.push( - `${S}.w = ${J ?? Y ?? (M ? `${M}.w` : Dg(y))};` - ), L; + super({ + a: A, + b: I, + c: g, + outKey: "smoothstep", + outTypeFunc: u0 + }), this.statements = ({ inputs: B, outputs: C }) => { + const { a: E, b: i, c: o } = B; + return [`${C.smoothstep} = smoothstep(${E}, ${i}, ${o});`]; }; } - dynoOut() { - return new V( - this, - "vector" - ); +} +class Gi extends r { + constructor({ a: A }) { + super({ a: A, outKey: "isNan", outTypeFunc: qE }), this.statements = ({ inputs: I, outputs: g }) => [`${g.isNan} = isNan(${I.a});`]; + } +} +class hi extends r { + constructor({ a: A }) { + super({ a: A, outKey: "isInf", outTypeFunc: P0 }), this.statements = ({ inputs: I, outputs: g }) => [`${g.isInf} = isInf(${I.a});`]; } } -function ty(Q, A) { - let I = null; - if (Mg(Q) ? I = A.length === 1 ? "float" : A.length === 2 ? "vec2" : A.length === 3 ? "vec3" : A.length === 4 ? "vec4" : null : xA(Q) ? I = A.length === 1 ? "int" : A.length === 2 ? "ivec2" : A.length === 3 ? "ivec3" : A.length === 4 ? "ivec4" : null : lA(Q) && (I = A.length === 1 ? "uint" : A.length === 2 ? "uvec2" : A.length === 3 ? "uvec3" : A.length === 4 ? "uvec4" : null), I == null) - throw new Error(`Invalid swizzle: ${A}`); - return I; +const Da = (Q, A) => new yi({ a: Q, b: A }), oa = (Q, A) => new ci({ a: Q, b: A }), wa = (Q, A) => new ki({ a: Q, b: A }), sa = (Q) => new Fi({ a: Q }), aa = (Q, A) => new ri({ a: Q, b: A }), Ga = (Q, A) => new Ki({ a: Q, b: A }), ha = (Q, A) => new Ni({ a: Q, b: A }), ta = (Q, A) => new Si({ a: Q, b: A }), ya = (Q, A) => new Ri({ a: Q, b: A }), ti = (Q, A) => new Mi({ a: Q, b: A }), ca = (Q, A) => new ei({ a: Q, b: A }), ka = (Q, A) => new Ji({ a: Q, b: A }), Fa = (Q) => new Ui({ a: Q }), Na = (Q) => new Li({ a: Q }), GB = (Q, A, I) => new Hi({ cond: Q, t: A, f: I }), Sa = (Q) => new Yi({ a: Q }); +class yi extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outTypeFunc: (g, B) => g, outKey: "and" }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.and === "bool" ? [`${B.and} = ${g.a} && ${g.b};`] : [`${B.and} = ${g.a} & ${g.b};`]; + } } -class Zi extends e { - constructor({ vector: A, select: I }) { - super({ - a: A, - outKey: "swizzle", - outTypeFunc: (g) => ty(g, I) - }), this.statements = ({ inputs: g, outputs: B }) => [ - `${B.swizzle} = ${g.a}.${I};` - ]; +class ci extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outTypeFunc: (g, B) => g, outKey: "or" }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.or === "bool" ? [`${B.or} = ${g.a} || ${g.b};`] : [`${B.or} = ${g.a} | ${g.b};`]; } } -const Hy = (Q, A, I) => new _i({ index: Q, from: A, to: I }), Ly = (Q) => new Bg({ value: Q }), Yy = (Q) => new zA({ state: Q }), Ky = (Q) => new _A({ state: Q }), Vi = (Q) => new $i({ value: Q }), Xi = (Q) => new Aw({ value: Q }), Wi = (Q) => new Iw({ value: Q }), ji = (Q) => new gw({ value: Q }), ey = (Q) => new Qw({ value: Q }), ry = (Q) => new Bw({ value: Q }), vi = (Q) => new Cw({ value: Q }), bQ = (Q) => new Ew({ value: Q }), zi = (Q, A, I) => new Dw({ z: Q, zNear: A, zFar: I }).outputs.depth, ny = (Q) => new iw({ index: Q }); -class _i extends d { - constructor({ - from: A, - to: I, - index: g - }) { - super({ - inTypes: { from: "int", to: "int", index: "int" }, - outTypes: { index: "int" }, - inputs: { from: A, to: I, index: g }, - statements: ({ inputs: B, outputs: C }) => [ - `${C.index} = ${B.index} - ${B.from} + ${B.to};` - ] - }); +class ki extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outTypeFunc: (g, B) => g, outKey: "xor" }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.xor === "bool" ? [`${B.xor} = ${g.a} ^^ ${g.b};`] : [`${B.xor} = ${g.a} ^ ${g.b};`]; } - dynoOut() { - return new V(this, "index"); +} +class Fi extends r { + constructor({ a: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "not" }), this.statements = ({ inputs: I, outputs: g }) => this.outTypes.not === "bool" ? [`${g.not} = !${I.a};`] : [`${g.not} = not(${I.a});`]; } } -class zA extends d { - constructor({ state: A }) { - const I = CA(A); +class Ni extends iA { + constructor({ a: A, b: I }) { super({ - inTypes: { state: I }, - outTypes: { state: "uint" }, - inputs: { state: A }, - globals: () => [ - oA(` - uint pcg_next(uint state) { - return state * 747796405u + 2891336453u; - } - `) - ], - statements: ({ inputs: g, outputs: B }) => { - const C = I === "uint" ? `${g.state}` : I === "int" ? `uint(${g.state})` : `floatBitsToUint(${g.state})`; - return [`${B.state} = pcg_next(${C});`]; - } - }); - } - dynoOut() { - return new V(this, "state"); + a: A, + b: I, + outTypeFunc: (g, B) => EQ(g, "lessThan"), + outKey: "lessThan" + }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.lessThan === "bool" ? [`${B.lessThan} = ${g.a} < ${g.b};`] : [`${B.lessThan} = lessThan(${g.a}, ${g.b});`]; } } -class _A extends d { - constructor({ state: A }) { +class Si extends iA { + constructor({ a: A, b: I }) { super({ - inTypes: { state: "uint" }, - outTypes: { hash: "uint" }, - inputs: { state: A }, - globals: () => [ - oA(` - uint pcg_hash(uint state) { - uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u; - return (hash >> 22u) ^ hash; - } - `) - ], - statements: ({ inputs: I, outputs: g }) => [ - `${g.hash} = pcg_hash(${I.state});` - ] - }); - } - dynoOut() { - return new V(this, "hash"); + a: A, + b: I, + outTypeFunc: (g, B) => EQ(g, "lessThanEqual"), + outKey: "lessThanEqual" + }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.lessThanEqual === "bool" ? [`${B.lessThanEqual} = ${g.a} <= ${g.b};`] : [ + `${B.lessThanEqual} = lessThanEqual(${g.a}, ${g.b});` + ]; } } -class Bg extends d { - constructor({ value: A }) { - const I = CA(A), g = oC(I); +class Ri extends iA { + constructor({ a: A, b: I }) { super({ - inTypes: { value: I }, - outTypes: { state: "uint" }, - inputs: { value: A }, - globals: () => [ - oA(` - uint pcg_mix(uint value) { - return value; - } - uint pcg_mix(uvec2 value) { - return value.x + 0x9e3779b9u * value.y; - } - uint pcg_mix(uvec3 value) { - return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z; - } - uint pcg_mix(uvec4 value) { - return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z + 0xc2b2ae35u * value.w; - } - `) - ], - statements: ({ inputs: B, outputs: C }) => { - const E = lA(I) ? `${B.value}` : xA(I) ? `${g}(${B.value})` : `floatBitsToUint(${B.value})`; - return [ - `${g} bits = ${E};`, - `${C.state} = pcg_mix(bits);` - ]; - } - }); - } - dynoOut() { - return new V(this, "state"); + a: A, + b: I, + outTypeFunc: (g, B) => EQ(g, "greaterThan"), + outKey: "greaterThan" + }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.greaterThan === "bool" ? [`${B.greaterThan} = ${g.a} > ${g.b};`] : [ + `${B.greaterThan} = greaterThan(${g.a}, ${g.b});` + ]; } } -class $i extends hI { - constructor({ value: A }) { +class Mi extends iA { + constructor({ a: A, b: I }) { super({ - inTypes: { value: CA(A) }, - outTypes: { hash: "uint" }, - inputs: { value: A }, - construct: ({ value: I }) => { - if (!I) - throw new Error("value is required"); - let g = new Bg({ value: I }).outputs.state; - return g = new zA({ state: g }).outputs.state, new _A({ state: g }).outputs; - } - }); + a: A, + b: I, + outTypeFunc: (g, B) => EQ(g, "greaterThanEqual"), + outKey: "greaterThanEqual" + }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.greaterThanEqual === "bool" ? [`${B.greaterThanEqual} = ${g.a} >= ${g.b};`] : [ + `${B.greaterThanEqual} = greaterThanEqual(${g.a}, ${g.b});` + ]; } - dynoOut() { - return new V(this, "hash"); +} +class ei extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outTypeFunc: ni, outKey: "equal" }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.equal === "bool" ? [`${B.equal} = ${g.a} == ${g.b};`] : [`${B.equal} = equal(${g.a}, ${g.b});`]; } } -class Aw extends hI { - constructor({ value: A }) { - super({ - inTypes: { value: CA(A) }, - outTypes: { hash: "uvec2" }, - inputs: { value: A }, - construct: ({ value: I }) => { - if (!I) - throw new Error("value is required"); - let g = new Bg({ value: I }).outputs.state; - g = new zA({ state: g }).outputs.state; - const B = new _A({ state: g }).outputs.hash; - g = new zA({ state: g }).outputs.state; - const C = new _A({ state: g }).outputs.hash; - return { hash: yI({ vectorType: "uvec2", x: B, y: C }) }; - } - }); +class Ji extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outTypeFunc: Ra, outKey: "notEqual" }), this.statements = ({ inputs: g, outputs: B }) => this.outTypes.notEqual === "bool" ? [`${B.notEqual} = ${g.a} != ${g.b};`] : [`${B.notEqual} = notEqual(${g.a}, ${g.b});`]; } - dynoOut() { - return new V(this, "hash"); +} +class Ui extends r { + constructor({ a: A }) { + super({ a: A, outTypeFunc: (I) => "bool", outKey: "any" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.any} = any(${I.a});`]; } } -class Iw extends hI { - constructor({ value: A }) { +class Li extends r { + constructor({ a: A }) { + super({ a: A, outTypeFunc: (I) => "bool", outKey: "all" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.all} = all(${I.a});`]; + } +} +class Hi extends uI { + constructor({ + cond: A, + t: I, + f: g + }) { super({ - inTypes: { value: CA(A) }, - outTypes: { hash: "uvec3" }, - inputs: { value: A }, - construct: ({ value: I }) => { - if (!I) - throw new Error("value is required"); - let g = new Bg({ value: I }).outputs.state; - g = new zA({ state: g }).outputs.state; - const B = new _A({ state: g }).outputs.hash; - g = new zA({ state: g }).outputs.state; - const C = new _A({ state: g }).outputs.hash; - g = new zA({ state: g }).outputs.state; - const E = new _A({ state: g }).outputs.hash; - return { hash: yI({ vectorType: "uvec3", x: B, y: C, z: E }) }; - } - }); + a: A, + b: I, + c: g, + outKey: "select", + outTypeFunc: (B, C, E) => C + }), this.statements = ({ inputs: B, outputs: C }) => { + const { a: E, b: i, c: o } = B; + return [`${C.select} = (${E}) ? (${i}) : (${o});`]; + }; } - dynoOut() { - return new V(this, "hash"); +} +function EQ(Q, A) { + if (pI(Q)) + return "bool"; + if (Q === "ivec2" || Q === "uvec2" || Q === "vec2") + return "bvec2"; + if (Q === "ivec3" || Q === "uvec3" || Q === "vec3") + return "bvec3"; + if (Q === "ivec4" || Q === "uvec4" || Q === "vec4") + return "bvec4"; + throw new Error(`Invalid ${A} type: ${Q}`); +} +function ni(Q, A = "equal") { + if (pI(Q)) + return "bool"; + if (fI(Q)) + return Q; + if (Q === "ivec2" || Q === "uvec2" || Q === "vec2") + return "bvec2"; + if (Q === "ivec3" || Q === "uvec3" || Q === "vec3") + return "bvec3"; + if (Q === "ivec4" || Q === "uvec4" || Q === "vec4") + return "bvec4"; + throw new Error(`Invalid ${A} type: ${Q}`); +} +function Ra(Q) { + return ni(Q, "notEqual"); +} +function Ma(Q) { + if (fI(Q)) + return "bool"; + if (dA(Q)) + return "int"; + if (qA(Q)) + return "uint"; + throw new Error(`Invalid compXor type: ${Q}`); +} +class Yi extends r { + constructor({ a: A }) { + const I = Ma(BA(A)); + super({ a: A, outTypeFunc: (g) => I, outKey: "compXor" }), this.statements = ({ inputs: g, outputs: B }) => { + if (pI(this.outTypes.compXor)) + return [`${B.compXor} = ${g.a};`]; + const E = (XI(I) ? ["x", "y"] : jI(I) ? ["x", "y", "z"] : ["x", "y", "z", "w"]).map((o) => `${g.a}.${o}`), i = fI(I) ? "^^" : "^"; + return [`${B.compXor} = ${E.join(` ${i} `)};`]; + }; } } -class gw extends hI { - constructor({ value: A }) { - super({ - inTypes: { value: CA(A) }, - outTypes: { hash: "uvec4" }, - inputs: { value: A }, - construct: ({ value: I }) => { - if (!I) - throw new Error("value is required"); - let g = new Bg({ value: I }).outputs.state; - g = new zA({ state: g }).outputs.state; - const B = new _A({ state: g }).outputs.hash; - g = new zA({ state: g }).outputs.state; - const C = new _A({ state: g }).outputs.hash; - g = new zA({ state: g }).outputs.state; - const E = new _A({ state: g }).outputs.hash; - g = new zA({ state: g }).outputs.state; - const D = new _A({ state: g }).outputs.hash; - return { hash: yI({ vectorType: "uvec4", x: B, y: C, z: E, w: D }) }; - } - }); +class ri extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outTypeFunc: (g, B) => g, outKey: "shr" }), this.statements = ({ inputs: g, outputs: B }) => [`${B.shr} = ${g.a} >> ${g.b};`]; } - dynoOut() { - return new V(this, "hash"); +} +class Ki extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outTypeFunc: (g, B) => g, outKey: "shl" }), this.statements = ({ inputs: g, outputs: B }) => [`${B.shl} = ${g.a} << ${g.b};`]; } } -class Qw extends hI { - constructor({ value: A }) { - super({ - inTypes: { value: CA(A) }, - outTypes: { hash: "float" }, - inputs: { value: A }, - construct: ({ value: I }) => { - if (!I) - throw new Error("value is required"); - const g = Vi(I); - return { hash: kA(ZD(g), v("float", 1 / 2 ** 32)) }; - } - }); +const ea = (Q) => new fi({ value: Q }), Ja = (Q) => new pi({ value: Q }), Ua = (Q) => new ui({ value: Q }), di = (Q) => new Pi({ value: Q }), La = (Q) => new bi({ value: Q }), Ha = (Q) => new Ti({ value: Q }), na = (Q) => new mi({ value: Q }), Ya = (Q) => new Vi({ value: Q }), ra = (Q) => new Zi({ value: Q }), Ka = (Q) => new Oi({ value: Q }), da = (Q) => new Wi({ value: Q }), qa = (Q) => new vi({ value: Q }), la = (Q) => new Xi({ value: Q }), qi = (Q) => new ji({ value: Q }), xI = (Q) => new zi({ value: Q }), li = (Q) => new _i({ value: Q }), xa = (Q) => new $i({ value: Q }), fa = (Q) => new AD({ value: Q }), pa = (Q) => new ID({ value: Q }), xi = (Q) => new gD({ value: Q }), ua = (Q) => new QD({ value: Q }), Pa = (Q) => new BD({ value: Q }), ba = (Q) => new CD({ value: Q }), Ta = (Q) => new ED({ value: Q }), ma = (Q) => new iD({ value: Q }), Va = (Q) => new DD({ value: Q }), Za = (Q) => new oD({ value: Q }), Oa = (Q) => new wD({ value: Q }), Wa = (Q) => new sD({ value: Q }), va = (Q) => new aD({ value: Q }); +class RA extends r { + constructor({ + value: A, + outType: I, + outKey: g + }) { + super({ a: A, outTypeFunc: () => I, outKey: g }), this.statements = ({ inputs: B, outputs: C }) => [ + `${C[g]} = ${XB(I)}(${B.a});` + ]; } - dynoOut() { - return new V(this, "hash"); +} +class fi extends RA { + constructor({ + value: A + }) { + super({ value: A, outType: "bool", outKey: "bool" }); } } -class Bw extends hI { - constructor({ value: A }) { - super({ - inTypes: { value: CA(A) }, - outTypes: { hash: "vec2" }, - inputs: { value: A }, - construct: ({ value: I }) => { - if (!I) - throw new Error("value is required"); - const g = Xi(I); - return { hash: kA(VD(g), v("float", 1 / 2 ** 32)) }; - } - }); +class pi extends RA { + constructor({ + value: A + }) { + super({ value: A, outType: "int", outKey: "int" }); } - dynoOut() { - return new V(this, "hash"); +} +class ui extends RA { + constructor({ + value: A + }) { + super({ value: A, outType: "uint", outKey: "uint" }); } } -class Cw extends hI { - constructor({ value: A }) { - super({ - inTypes: { value: CA(A) }, - outTypes: { hash: "vec3" }, - inputs: { value: A }, - construct: ({ value: I }) => { - if (!I) - throw new Error("value is required"); - const g = Wi(I); - return { hash: kA(fI(g), v("float", 1 / 2 ** 32)) }; - } - }); +class Pi extends RA { + constructor({ + value: A + }) { + super({ value: A, outType: "float", outKey: "float" }); } - dynoOut() { - return new V(this, "hash"); +} +class bi extends RA { + constructor({ + value: A + }) { + super({ value: A, outType: "bvec2", outKey: "bvec2" }); } } -class Ew extends hI { - constructor({ value: A }) { - super({ - inTypes: { value: CA(A) }, - outTypes: { hash: "vec4" }, - inputs: { value: A }, - construct: ({ value: I }) => { - if (!I) - throw new Error("value is required"); - const g = ji(I); - return { hash: kA(XD(g), v("float", 1 / 2 ** 32)) }; - } - }); +class Ti extends RA { + constructor({ + value: A + }) { + super({ value: A, outType: "bvec3", outKey: "bvec3" }); } - dynoOut() { - return new V(this, "hash"); +} +class mi extends RA { + constructor({ + value: A + }) { + super({ value: A, outType: "bvec4", outKey: "bvec4" }); } } -class Dw extends d { +class Vi extends RA { constructor({ - z: A, - zNear: I, - zFar: g + value: A }) { - super({ - inTypes: { z: "float", zNear: "float", zFar: "float" }, - outTypes: { depth: "float" }, - inputs: { z: A, zNear: I, zFar: g }, - statements: ({ inputs: B, outputs: C }) => [ - `float clamped = clamp(${B.z}, ${B.zNear}, ${B.zFar});`, - `${C.depth} = (log2(clamped + 1.0) - log2(${B.zNear} + 1.0)) / (log2(${B.zFar} + 1.0) - log2(${B.zNear} + 1.0));` - ] - }); + super({ value: A, outType: "ivec2", outKey: "ivec2" }); } - dynoOut() { - return new V(this, "depth"); +} +class Zi extends RA { + constructor({ + value: A + }) { + super({ value: A, outType: "ivec3", outKey: "ivec3" }); } } -class iw extends d { - constructor({ index: A }) { - super({ - inTypes: { index: "int" }, - outTypes: { color: "vec3" }, - inputs: { index: A }, - statements: ({ inputs: I, outputs: g }) => [ - `${g.color} = debugColorHue(uint(${I.index}));` - ] - }); +class Oi extends RA { + constructor({ + value: A + }) { + super({ value: A, outType: "ivec4", outKey: "ivec4" }); } - dynoOut() { - return new V(this, "color"); +} +class Wi extends RA { + constructor({ + value: A + }) { + super({ value: A, outType: "uvec2", outKey: "uvec2" }); } } -const ww = (Q, { - scale: A, - scales: I, - rotate: g, - translate: B -}) => new sw({ position: Q, scale: A, scales: I, rotate: g, translate: B }).outputs.position, ow = (Q, { - scale: A, - scales: I, - rotate: g -}) => new Gw({ dir: Q, scale: A, scales: I, rotate: g }).outputs.dir, dy = (Q, { rotate: A }) => new yw({ quaternion: Q, rotate: A }).outputs.quaternion; -class sw extends d { +class vi extends RA { constructor({ - position: A, - scale: I, - scales: g, - rotate: B, - translate: C + value: A }) { - super({ - inTypes: { - position: "vec3", - scale: "float", - scales: "vec3", - rotate: "vec4", - translate: "vec3" - }, - outTypes: { position: "vec3" }, - inputs: { position: A, scale: I, scales: g, rotate: B, translate: C }, - statements: ({ inputs: E, outputs: D }) => { - const { position: i } = D; - if (!i) - return []; - const { scale: w, scales: s, rotate: o, translate: y } = E; - return [ - `${i} = ${E.position ?? "vec3(0.0, 0.0, 0.0)"};`, - w ? `${i} *= ${w};` : null, - s ? `${i} *= ${s};` : null, - o ? `${i} = quatVec(${o}, ${i});` : null, - y ? `${i} += ${y};` : null - ].filter(Boolean); - } - }); + super({ value: A, outType: "uvec3", outKey: "uvec3" }); } } -class Gw extends d { +class Xi extends RA { constructor({ - dir: A, - scale: I, - scales: g, - rotate: B + value: A }) { - super({ - inTypes: { dir: "vec3", scale: "float", scales: "vec3", rotate: "vec4" }, - outTypes: { dir: "vec3" }, - inputs: { dir: A, scale: I, scales: g, rotate: B }, - statements: ({ inputs: C, outputs: E }) => { - const { dir: D } = E; - if (!D) - return []; - const { scale: i, scales: w, rotate: s } = C; - return [ - `${D} = ${C.dir ?? "vec3(0.0, 0.0, 0.0)"};`, - i ? `${D} *= ${i};` : null, - w ? `${D} *= ${w};` : null, - s ? `${D} = quatVec(${s}, ${D});` : null - ].filter(Boolean); - } - }); + super({ value: A, outType: "uvec4", outKey: "uvec4" }); } } -class yw extends d { +class ji extends RA { constructor({ - quaternion: A, - rotate: I + value: A }) { - super({ - inTypes: { quaternion: "vec4", rotate: "vec4" }, - outTypes: { quaternion: "vec4" }, - inputs: { quaternion: A, rotate: I }, - statements: ({ inputs: g, outputs: B }) => { - const { quaternion: C } = B; - return C ? [ - `${C} = ${g.quaternion ?? "vec4(0.0, 0.0, 0.0, 1.0)"};`, - I ? `${C} = quatQuat(${g.rotate}, ${C});` : null - ].filter(Boolean) : []; - } - }); + super({ value: A, outType: "vec2", outKey: "vec2" }); } } -const qy = () => { - throw new Error("Not implemented"); -}, xy = () => { - throw new Error("Not implemented"); -}, ly = () => { - throw new Error("Not implemented"); -}, py = () => { - throw new Error("Not implemented"); -}, fy = () => { - throw new Error("Not implemented"); -}, by = () => { - throw new Error("Not implemented"); -}, Py = (Q, A) => new hw({ texture: Q, lod: A }), uy = (Q, A, I) => new Rw({ texture: Q, coord: A, bias: I }), Ty = (Q, A, I) => new kw({ texture: Q, coord: A, lod: I }); -class hw extends d { - constructor({ texture: A, lod: I }) { - const g = CA(A); - super({ - inTypes: { texture: g, lod: "int" }, - outTypes: { size: Fw(g) }, - inputs: { texture: A, lod: I }, - statements: ({ inputs: B, outputs: C }) => [ - `${C.size} = textureSize(${B.texture}, ${B.lod ?? "0"});` - ] - }); +class zi extends RA { + constructor({ + value: A + }) { + super({ value: A, outType: "vec3", outKey: "vec3" }); } - dynoOut() { - return new V(this, "size"); +} +class _i extends RA { + constructor({ + value: A + }) { + super({ value: A, outType: "vec4", outKey: "vec4" }); } } -class Rw extends d { +class $i extends RA { constructor({ - texture: A, - coord: I, - bias: g + value: A }) { - const B = CA(A); - super({ - inTypes: { - texture: B, - coord: Oy(B), - bias: "float" - }, - outTypes: { sample: aw(B) }, - inputs: { texture: A, coord: I, bias: g }, - statements: ({ inputs: C, outputs: E }) => [ - `${E.sample} = texture(${C.texture}, ${C.coord}${C.bias ? `, ${C.bias}` : ""});` - ] - }); + super({ value: A, outType: "mat2", outKey: "mat2" }); } - dynoOut() { - return new V(this, "sample"); +} +class AD extends RA { + constructor({ + value: A + }) { + super({ value: A, outType: "mat3", outKey: "mat3" }); } } -class kw extends d { +class ID extends RA { constructor({ - texture: A, - coord: I, - lod: g + value: A }) { - const B = CA(A); - super({ - inTypes: { - texture: B, - coord: Fw(B), - lod: "int" - }, - outTypes: { texel: aw(B) }, - inputs: { texture: A, coord: I, lod: g }, - statements: ({ inputs: C, outputs: E }) => [ - `${E.texel} = texelFetch(${C.texture}, ${C.coord}, ${C.lod ?? "0"});` - ] - }); + super({ value: A, outType: "mat4", outKey: "mat4" }); } - dynoOut() { - return new V(this, "texel"); +} +class gD extends r { + constructor({ value: A }) { + super({ a: A, outKey: "int", outTypeFunc: () => "int" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.int} = floatBitsToInt(${I.a});`]; } } -function Fw(Q) { - switch (Q) { - case "sampler2D": - case "usampler2D": - case "isampler2D": - case "samplerCube": - case "usamplerCube": - case "isamplerCube": - case "sampler2DShadow": - case "samplerCubeShadow": - return "ivec2"; - case "sampler3D": - case "usampler3D": - case "isampler3D": - case "sampler2DArray": - case "usampler2DArray": - case "isampler2DArray": - case "sampler2DArrayShadow": - return "ivec3"; - default: - throw new Error(`Invalid texture type: ${Q}`); +class QD extends r { + constructor({ value: A }) { + super({ a: A, outKey: "uint", outTypeFunc: () => "uint" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.uint} = floatBitsToUint(${I.a});`]; } } -function Oy(Q) { - switch (Q) { - case "sampler2D": - case "usampler2D": - case "isampler2D": - return "vec2"; - case "sampler3D": - case "usampler3D": - case "isampler3D": - case "samplerCube": - case "usamplerCube": - case "isamplerCube": - case "sampler2DArray": - case "usampler2DArray": - case "isampler2DArray": - case "sampler2DShadow": - return "vec3"; - case "samplerCubeShadow": - case "sampler2DArrayShadow": - return "vec4"; - default: - throw new Error(`Invalid texture type: ${Q}`); +class BD extends r { + constructor({ value: A }) { + super({ a: A, outKey: "float", outTypeFunc: () => "float" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.float} = intBitsToFloat(${I.a});`]; + } +} +class CD extends r { + constructor({ value: A }) { + super({ a: A, outKey: "float", outTypeFunc: () => "float" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.float} = uintBitsToFloat(${I.a});`]; } } -function aw(Q) { - switch (Q) { - case "sampler2D": - case "sampler2DArray": - case "sampler3D": - case "samplerCube": - case "sampler2DShadow": - return "vec4"; - case "usampler2D": - case "usampler2DArray": - case "usampler3D": - case "usamplerCube": - return "uvec4"; - case "isampler2D": - case "isampler2DArray": - case "isampler3D": - case "isamplerCube": - return "ivec4"; - case "samplerCubeShadow": - case "sampler2DArrayShadow": - return "float"; - default: - throw new Error(`Invalid texture type: ${Q}`); +class ED extends r { + constructor({ value: A }) { + super({ a: A, outKey: "uint", outTypeFunc: () => "uint" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.uint} = packSnorm2x16(${I.a});`]; } } -const my = (Q) => new Sw({ degrees: Q }), Zy = (Q) => new Nw({ radians: Q }), PQ = (Q) => new cw({ radians: Q }), Vy = (Q) => new Mw({ radians: Q }), Xy = (Q) => new Jw({ radians: Q }), Wy = (Q) => new Uw({ sin: Q }), jy = (Q) => new tw({ cos: Q }), vy = (Q) => new Hw({ tan: Q }), zy = (Q, A) => new Lw({ y: Q, x: A }), _y = (Q) => new Yw({ x: Q }), $y = (Q) => new Kw({ x: Q }), Ah = (Q) => new ew({ x: Q }), Ih = (Q) => new rw({ x: Q }), gh = (Q) => new nw({ x: Q }), Qh = (Q) => new dw({ x: Q }); -class Sw extends e { - constructor({ degrees: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "radians" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.radians} = radians(${I.a});` - ]; +class iD extends r { + constructor({ value: A }) { + super({ a: A, outKey: "vec2", outTypeFunc: () => "vec2" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.vec2} = unpackSnorm2x16(${I.a});`]; } } -class Nw extends e { - constructor({ radians: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "degrees" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.degrees} = degrees(${I.a});` - ]; +class DD extends r { + constructor({ value: A }) { + super({ a: A, outKey: "uint", outTypeFunc: () => "uint" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.uint} = packUnorm2x16(${I.a});`]; } } -class cw extends e { - constructor({ radians: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "sin" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.sin} = sin(${I.a});` +class oD extends r { + constructor({ value: A }) { + super({ a: A, outKey: "vec2", outTypeFunc: () => "vec2" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.vec2} = unpackUnorm2x16(${I.a});`]; + } +} +class wD extends r { + constructor({ value: A }) { + super({ a: A, outKey: "uint", outTypeFunc: () => "uint" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.uint} = packHalf2x16(${I.a});`]; + } +} +class sD extends r { + constructor({ value: A }) { + super({ a: A, outKey: "vec2", outTypeFunc: () => "vec2" }), this.statements = ({ inputs: I, outputs: g }) => [`${g.vec2} = unpackHalf2x16(${I.a});`]; + } +} +class aD extends r { + constructor({ value: A }) { + super({ a: A, outKey: "rgba8", outTypeFunc: () => "vec4" }), this.statements = ({ inputs: I, outputs: g }) => [ + `uvec4 uRgba = uvec4(${I.a} & 0xffu, (${I.a} >> 8u) & 0xffu, (${I.a} >> 16u) & 0xffu, (${I.a} >> 24u) & 0xffu);`, + `${g.rgba8} = vec4(uRgba) / 255.0;` ]; } } -class Mw extends e { - constructor({ radians: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "cos" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.cos} = cos(${I.a});` +const Xa = (Q) => new hD({ a: Q }), ja = (Q, A) => new tD({ a: Q, b: A }), GD = (Q, A) => new yD({ a: Q, b: A }), za = (Q, A) => new cD({ a: Q, b: A }), tg = (Q) => new kD({ a: Q }), _a = (Q, A, I) => new SD({ a: Q, b: A, c: I }), $a = (Q, A) => new RD({ incident: Q, normal: A }), AG = (Q, A, I) => new MD({ incident: Q, normal: A, eta: I }), vI = (Q) => new nD({ vector: Q }), GI = ({ + vector: Q, + vectorType: A, + x: I, + y: g, + z: B, + w: C, + r: E, + g: i, + b: o, + a: D +}) => new YD({ vector: Q, vectorType: A, x: I, y: g, z: B, w: C, r: E, g: i, b: o, a: D }), IG = (Q) => new FD({ a: Q }), gG = (Q, A) => new ND({ a: Q, b: A }), QG = (Q, A) => new rD({ vector: Q, select: A }), BG = (Q, A) => new eD({ a: Q, b: A }), CG = (Q, A) => new JD({ a: Q, b: A }), EG = (Q) => new UD({ a: Q }), iG = (Q) => new LD({ a: Q }), DG = (Q) => new HD({ a: Q }); +class hD extends r { + constructor({ a: A }) { + super({ a: A, outTypeFunc: (I) => "float", outKey: "length" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.length} = length(${I.a});` ]; } } -class Jw extends e { - constructor({ radians: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "tan" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.tan} = tan(${I.a});` +class tD extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outKey: "distance", outTypeFunc: (g, B) => "float" }), this.statements = ({ inputs: g, outputs: B }) => [ + `${B.distance} = distance(${g.a}, ${g.b});` ]; } } -class Uw extends e { - constructor({ sin: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "asin" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.asin} = asin(${I.a});` +class yD extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outKey: "dot", outTypeFunc: (g, B) => "float" }), this.statements = ({ inputs: g, outputs: B }) => [ + `${B.dot} = dot(${g.a}, ${g.b});` ]; } } -class tw extends e { - constructor({ cos: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "acos" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.acos} = acos(${I.a});` +class cD extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outKey: "cross", outTypeFunc: (g, B) => "vec3" }), this.statements = ({ inputs: g, outputs: B }) => [ + `${B.cross} = cross(${g.a}, ${g.b});` ]; } } -class Hw extends e { - constructor({ tan: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "atan" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.atan} = atan(${I.a});` +class kD extends r { + constructor({ a: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "normalize" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.normalize} = normalize(${I.a});` ]; } } -class Lw extends DA { - constructor({ y: A, x: I }) { +function oG(Q) { + if (Q === "vec3") + return "vec2"; + if (Q === "vec4") + return "vec3"; + throw new Error("Invalid type"); +} +class FD extends r { + constructor({ a: A }) { super({ a: A, - b: I, - outTypeFunc: (g, B) => g, - outKey: "atan2" - }), this.statements = ({ inputs: g, outputs: B }) => [ - `${B.atan2} = atan2(${g.a}, ${g.b});` - ]; + outTypeFunc: (I) => oG(I), + outKey: "projected" + }), this.statements = ({ inputs: I, outputs: g }) => { + if (this.inTypes.a === "vec3") + return [`${g.projected} = ${I.a}.xy / ${I.a}.z;`]; + if (this.inTypes.a === "vec4") + return [`${g.projected} = ${I.a}.xyz / ${I.a}.w;`]; + throw new Error("Invalid type"); + }; } } -class Yw extends e { - constructor({ x: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "sinh" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.sinh} = sinh(${I.a});` - ]; - } +function wG(Q) { + if (Q === "float") return "vec2"; + if (Q === "vec2") return "vec3"; + if (Q === "vec3") return "vec4"; + throw new Error("Invalid type"); } -class Kw extends e { - constructor({ x: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "cosh" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.cosh} = cosh(${I.a});` +class ND extends iA { + constructor({ a: A, b: I }) { + const g = BA(A), B = wG(g); + super({ a: A, b: I, outKey: "extend", outTypeFunc: () => B }), this.statements = ({ inputs: C, outputs: E }) => [ + `${E.extend} = ${B}(${C.a}, ${C.b});` ]; } } -class ew extends e { - constructor({ x: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "tanh" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.tanh} = tanh(${I.a});` +class SD extends uI { + constructor({ a: A, b: I, c: g }) { + super({ + a: A, + b: I, + c: g, + outKey: "forward", + outTypeFunc: (B, C, E) => B + }), this.statements = ({ inputs: B, outputs: C }) => [ + `${C.forward} = faceforward(${B.a}, ${B.b}, ${B.c});` ]; } } -class rw extends e { - constructor({ x: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "asinh" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.asinh} = asinh(${I.a});` +class RD extends iA { + constructor({ + incident: A, + normal: I + }) { + super({ + a: A, + b: I, + outKey: "reflection", + outTypeFunc: (g, B) => g + }), this.statements = ({ inputs: g, outputs: B }) => [ + `${B.reflection} = reflect(${g.a}, ${g.b});` ]; } } -class nw extends e { - constructor({ x: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "acosh" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.acosh} = acosh(${I.a});` +class MD extends uI { + constructor({ + incident: A, + normal: I, + eta: g + }) { + super({ + a: A, + b: I, + c: g, + outKey: "refraction", + outTypeFunc: (B, C, E) => B + }), this.statements = ({ inputs: B, outputs: C }) => [ + `${C.refraction} = refract(${B.a}, ${B.b}, ${B.c});` ]; } } -class dw extends e { - constructor({ x: A }) { - super({ a: A, outTypeFunc: (I) => I, outKey: "atanh" }), this.statements = ({ inputs: I, outputs: g }) => [ - `${g.atanh} = atanh(${I.a});` +class eD extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outKey: "product", outTypeFunc: (g, B) => g }), this.statements = ({ inputs: g, outputs: B }) => [ + `${B.product} = matrixCompMult(${A}, ${I});` ]; } } -const rk = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ - __proto__: null, - Abs: BD, - Acos: tw, - Acosh: nw, - Add: vE, - All: bD, - And: YD, - Any: fD, - Asin: Uw, - Asinh: rw, - Atan: Hw, - Atan2: Lw, - Atanh: dw, - BVec2: Ii, - BVec3: gi, - BVec4: Qi, - BinaryOp: DA, - Bool: zD, - Ceil: DD, - Clamp: cD, - Combine: mi, - CombineCovSplat: $C, - CombineGsplat: WC, - CompMult: fi, - CompXor: TD, - Compilation: yC, - Cos: Mw, - Cosh: Kw, - CovSplat: eA, - Cross: ri, - DebugColorHue: iw, - Degrees: Nw, - Determinant: ui, - Distance: Ki, - Div: $E, - Dot: ei, - Dyno: d, - DynoBlock: hI, - DynoBool: bI, - DynoBvec2: sE, - DynoBvec3: RE, - DynoBvec4: aE, - DynoConst: GC, - DynoFloat: pI, - DynoInt: EI, - DynoIsampler2D: nE, - DynoIsampler2DArray: qE, - DynoIsampler3D: pE, - DynoIsamplerCube: PE, - DynoIvec2: yE, - DynoIvec3: FE, - DynoIvec4: NE, - DynoLiteral: zI, - DynoMat2: cE, - DynoMat2x2: ME, - DynoMat2x3: JE, - DynoMat2x4: UE, - DynoMat3: sB, - DynoMat3x2: tE, - DynoMat3x3: HE, - DynoMat3x4: LE, - DynoMat4: YE, - DynoMat4x2: KE, - DynoMat4x3: eE, - DynoMat4x4: rE, - DynoOutput: V, - DynoProgram: DQ, - DynoProgramTemplate: Fg, - DynoRemapIndex: _i, - DynoSampler2D: dE, - DynoSampler2DArray: xE, - DynoSampler2DArrayShadow: OE, - DynoSampler2DShadow: TE, - DynoSampler3D: fE, - DynoSamplerCube: uE, - DynoSamplerCubeShadow: mE, - DynoUint: oE, - DynoUniform: x, - DynoUsampler2D: EQ, - DynoUsampler2DArray: dA, - DynoUsampler3D: lE, - DynoUsamplerCube: bE, - DynoUvec2: GE, - DynoUvec3: kE, - DynoUvec4: SE, - DynoValue: UI, - DynoVec2: hE, - DynoVec3: DI, - DynoVec4: mI, - Equal: lD, - Exp: GD, - Exp2: yD, - ExtendVec: qi, - FaceForward: xi, - Float: Ai, - FloatBitsToInt: ki, - FloatBitsToUint: Fi, - Floor: ED, - Fract: oD, - GreaterThan: qD, - GreaterThanEqual: xD, - Gsplat: Z, - GsplatNormal: vC, - GsplatToCovSplat: VC, - Hash: $i, - Hash2: Aw, - Hash3: Iw, - Hash4: gw, - HashFloat: Qw, - HashVec2: Bw, - HashVec3: Cw, - HashVec4: Ew, - IMod: AD, - IVec2: Bi, - IVec3: Ci, - IVec4: Ei, - Int: _D, - IntBitsToFloat: ai, - Inverse: Ti, - InverseSqrt: aD, - IsInf: HD, - IsNan: tD, - Length: Yi, - LessThan: nD, - LessThanEqual: dD, - Log: hD, - Log2: RD, - Mat2: yi, - Mat3: hi, - Mat4: Ri, - Max: ND, - Min: SD, - Mix: MD, - Mod: ID, - Modf: gD, - Mul: _E, - Neg: QD, - Normalize: ni, - NormalizedDepth: Dw, - Not: rD, - NotEqual: pD, - NumCovSplats: mC, - NumExtSplats: TC, - NumPackedSplats: fC, - Or: KD, - Outer: bi, - OutputCovSplat: DE, - OutputExtCovSplat: wE, - OutputExtendedSplat: iE, - OutputPackedSplat: EE, - OutputRgba8: oB, - PackHalf2x16: Ui, - PackSnorm2x16: Ni, - PackUnorm2x16: Mi, - PagedSplatTexCoord: IE, - PcgHash: _A, - PcgMix: Bg, - PcgNext: zA, - Pow: sD, - ProjectH: di, - Radians: Sw, - ReadCovSplat: ZC, - ReadExtSplat: OC, - ReadPackedSplat: PC, - ReadPackedSplatRange: uC, - ReflectVec: li, - RefractVec: pi, - Round: wD, - Select: PD, - Shl: mD, - Shr: OD, - Sign: CD, - SimpleCast: tA, - Sin: cw, - Sinh: Yw, - Smoothstep: UD, - SplatTexCoord: AE, - Split: Oi, - SplitCovSplat: _C, - SplitGsplat: XC, - Sqr: kD, - Sqrt: FD, - Step: JD, - Sub: zE, - Swizzle: Zi, - TCovSplats: xC, - TExtSplats: BB, - TPackedSplats: tg, - Tan: Jw, - Tanh: ew, - TexelFetch: kw, - Texture: Rw, - TextureSize: hw, - TransformDir: Gw, - TransformGsplat: zC, - TransformPosition: sw, - TransformQuaternion: yw, - Transpose: Pi, - TrinaryOp: OI, - Trunc: iD, - UVec2: Di, - UVec3: ii, - UVec4: wi, - Uint: $D, - UintBitsToFloat: Si, - UintToRgba8: Hi, - UnaryOp: e, - UnpackHalf2x16: ti, - UnpackSnorm2x16: ci, - UnpackUnorm2x16: Ji, - Vec2: oi, - Vec3: si, - Vec4: Gi, - Xor: eD, - abs: g0, - acos: jy, - acosh: gh, - add: qA, - all: q0, - and: M0, - any: d0, - arrayIndex: fy, - arrayLength: by, - asin: Wy, - asinh: Ih, - atan: vy, - atan2: zy, - atanh: Qh, - bool: f0, - bvec2: u0, - bvec3: T0, - bvec4: O0, - ceil: C0, - clamp: F0, - combine: yI, - combineCovSplat: iB, - combineGsplat: CI, - comment: py, - compMult: Ry, - compXor: x0, - cos: Vy, - cosh: $y, - cross: iy, - debugColorHue: ny, - defineCovSplat: LI, - defineExtSplats: DB, - defineGsplat: HA, - defineGsplatNormal: jC, - definePackedSplats: CQ, - degrees: Zy, - determinant: ay, - distance: Dy, - div: pg, - dot: Li, - dyno: gQ, - dynoBlock: cA, - dynoBool: Ps, - dynoBvec2: Os, - dynoBvec3: Xs, - dynoBvec4: vs, - dynoConst: v, - dynoDeclare: vQ, - dynoFloat: wI, - dynoFor: ly, - dynoIf: qy, - dynoInt: Ts, - dynoIsampler2D: yG, - dynoIsampler2DArray: kG, - dynoIsampler3D: SG, - dynoIsamplerCube: MG, - dynoIvec2: Zs, - dynoIvec3: js, - dynoIvec4: _s, - dynoLiteral: ug, - dynoMat2: AG, - dynoMat2x2: IG, - dynoMat2x3: gG, - dynoMat2x4: QG, - dynoMat3: BG, - dynoMat3x2: CG, - dynoMat3x3: EG, - dynoMat3x4: DG, - dynoMat4: iG, - dynoMat4x2: wG, - dynoMat4x3: oG, - dynoMat4x4: sG, - dynoSampler2D: hG, - dynoSampler2DArray: FG, - dynoSampler2DArrayShadow: tG, - dynoSampler2DShadow: UG, - dynoSampler3D: NG, - dynoSamplerCube: JG, - dynoSamplerCubeShadow: HG, - dynoSwitch: xy, - dynoUint: us, - dynoUsampler2D: GG, - dynoUsampler2DArray: RG, - dynoUsampler3D: aG, - dynoUsamplerCube: cG, - dynoUvec2: ms, - dynoUvec3: Ws, - dynoUvec4: zs, - dynoVec2: Vs, - dynoVec3: cI, - dynoVec4: $s, - equal: r0, - exp: w0, - exp2: o0, - extendVec: yy, - faceforward: wy, - float: ZD, - floatBitsToInt: WD, - floatBitsToUint: jD, - floor: B0, - fract: fg, - greaterThan: e0, - greaterThanEqual: LD, - gsplatNormal: qQ, - gsplatToCovSplat: Xg, - hash: Vi, - hash2: Xi, - hash3: Wi, - hash4: ji, - hashFloat: ey, - hashVec2: ry, - hashVec3: vi, - hashVec4: bQ, - imod: pQ, - int: b0, - intBitsToFloat: $0, - inverse: Sy, - inversesqrt: R0, - isAllFloatType: HI, - isBoolType: uI, - isFloatType: Mg, - isInf: c0, - isIntType: xA, - isMat2: KI, - isMat3: eI, - isMat4: rI, - isMatFloatType: DC, - isNan: N0, - isScalarType: TI, - isUintType: lA, - isVector2Type: gg, - isVector3Type: Qg, - isVector4Type: Jg, - isVectorType: xo, - ivec2: m0, - ivec3: Z0, - ivec4: V0, - length: Ey, - lessThan: Y0, - lessThanEqual: K0, - literalNegOne: bo, - literalOne: fo, - literalZero: Dg, - log: s0, - log2: G0, - mat2: v0, - mat3: z0, - mat4: _0, - max: WE, - min: k0, - mix: jE, - mod: XE, - modf: I0, - mul: kA, - neg: yB, - normalize: ag, - normalizedDepth: zi, - not: t0, - notEqual: n0, - numCovSplats: ns, - numExtSplats: rs, - numPackedSplats: es, - numberAsFloat: AA, - numberAsInt: MA, - numberAsUint: JA, - or: J0, - outer: ky, - outputCovSplat: gE, - outputCovSplatDepth: CE, - outputExtCovSplat: lQ, - outputExtendedSplat: QE, - outputPackedSplat: wB, - outputRgba8: ls, - outputSplatDepth: BE, - packHalf2x16: vD, - packSnorm2x16: Iy, - packUnorm2x16: Qy, - pagedSplatTexCoord: xQ, - pcgHash: Ky, - pcgMix: Ly, - pcgNext: Yy, - pow: i0, - projectH: Gy, - radians: my, - readCovSplat: ds, - readExtSplat: pC, - readPackedSplat: _I, - readPackedSplatRange: lC, - reflectVec: oy, - refractVec: sy, - remapIndex: Hy, - round: D0, - sameSizeIvec: po, - sameSizeUvec: oC, - sameSizeVec: lo, - select: hB, - shl: L0, - shr: H0, - sign: Q0, - sin: PQ, - sinh: _y, - smoothstep: S0, - splatTexCoord: EB, - split: $I, - splitCovSplat: Wg, - splitGsplat: uA, - sqr: y0, - sqrt: h0, - step: a0, - sub: iI, - swizzle: hy, - tan: Xy, - tanh: Ah, - texelFetch: Ty, - texture: uy, - textureSize: Py, - transformDir: ow, - transformGsplat: CB, - transformPos: ww, - transformQuat: dy, - transpose: Fy, - trunc: E0, - typeLiteral: sC, - uint: P0, - uintBitsToFloat: Ay, - uintToRgba8: fQ, - uniform: bs, - unindent: oA, - unindentLines: z, - unpackHalf2x16: Cy, - unpackSnorm2x16: gy, - unpackUnorm2x16: By, - uvec2: X0, - uvec3: W0, - uvec4: j0, - valType: CA, - vec2: VD, - vec3: fI, - vec4: XD, - vectorDim: wC, - vectorElementType: iC, - xor: U0 -}, Symbol.toStringTag, { value: "Module" })), rA = class rA { - constructor(A = {}) { - this.maxSplats = 0, this.numSplats = 0, this.extra = {}, this.maxSh = 3, this.isInitialized = !1, this.extArrays = [new Uint32Array(0), new Uint32Array(0)], this.textures = [rA.emptyTexture, rA.emptyTexture], this.extra = {}, this.dyno = new Bh({ extSplats: this }), this.dynoNumSh = new EI({ - key: "numSh", - value: 0, - update: () => Math.min(this.getNumSh(), this.maxSh) - }), this.initialized = Promise.resolve(this), this.reinitialize(A); - } - reinitialize(A) { - this.isInitialized = !1, this.extra = {}, this.maxSplats = A.maxSplats ?? 0, this.lod = A.lod, this.nonLod = A.nonLod, A.url || A.fileBytes || A.stream || A.construct ? this.initialized = this.asyncInitialize(A).then(() => (this.isInitialized = !0, this)) : (this.initialize(A), this.isInitialized = !0, this.initialized = Promise.resolve(this)); - } - initialize(A) { - this.extra = A.extra ?? {}, this.lodSplats = A.lodSplats, A.extArrays ? (this.extArrays = A.extArrays, this.maxSplats = Math.floor( - Math.min(this.extArrays[0].length / 4, this.extArrays[1].length / 4) - ), this.numSplats = A.numSplats ?? this.maxSplats, this.maxSplats = Math.floor(this.maxSplats / P) * P, this.numSplats = Math.min( - this.maxSplats, - A.numSplats ?? Number.POSITIVE_INFINITY - ), this.updateTextures()) : (this.maxSplats = A.maxSplats ?? 0, this.numSplats = 0, this.extArrays = [new Uint32Array(0), new Uint32Array(0)]); - } - async asyncInitialize(A) { - const { - url: I, - fileBytes: g, - fileType: B, - fileName: C, - stream: E, - streamLength: D, - construct: i, - lod: w, - nonLod: s, - lodAbove: o - } = A; - this.lod = w, this.nonLod = s; - const y = new fw(); - if ((g || I || E) && await y.loadInternalAsync({ - extSplats: this, - url: I, - fileBytes: g, - fileType: B, - fileName: C, - stream: E, - streamLength: D, - onProgress: A.onProgress, - lodAbove: o - }), i) { - const h = i(this); - h instanceof Promise && await h; - } +function sG(Q, A) { + if (Q === "vec2") { + if (A === "vec2") return "mat2"; + if (A === "vec3") return "mat3x2"; + if (A === "vec4") return "mat4x2"; } - // Call this when you are finished with the PackedSplats and want to free - // any buffers it holds. - dispose() { - this.textures[0] !== rA.emptyTexture && (this.textures[0].dispose(), this.textures[0].source.data = null, this.textures[0] = rA.emptyTexture), this.textures[1] !== rA.emptyTexture && (this.textures[1].dispose(), this.textures[1].source.data = null, this.textures[1] = rA.emptyTexture), this.extArrays = [new Uint32Array(0), new Uint32Array(0)]; - for (const A in this.extra) { - const I = this.extra[A]; - if (I instanceof x) { - const g = I.value; - g != null && g.isTexture && (g.dispose(), g.source.data = null); - } - } - this.extra = {}, this.disposeLodSplats(); + if (Q === "vec3") { + if (A === "vec2") return "mat2x3"; + if (A === "vec3") return "mat3"; + if (A === "vec4") return "mat4x3"; } - prepareFetchSplat() { + if (Q === "vec4") { + if (A === "vec2") return "mat2x4"; + if (A === "vec3") return "mat3x4"; + if (A === "vec4") return "mat4"; } - getNumSplats() { - return this.numSplats; + throw new Error(`Invalid outer type: ${Q}, ${A}`); +} +class JD extends iA { + constructor({ a: A, b: I }) { + super({ a: A, b: I, outKey: "outer", outTypeFunc: sG }), this.statements = ({ inputs: g, outputs: B }) => [ + `${B.outer} = outerProduct(${g.a}, ${g.b});` + ]; } - hasRgbDir() { - return Math.min(this.getNumSh(), this.maxSh) > 0; +} +function aG(Q) { + if (Q === "mat2") return "mat2"; + if (Q === "mat3") return "mat3"; + if (Q === "mat4") return "mat4"; + if (Q === "mat2x2") return "mat2x2"; + if (Q === "mat2x3") return "mat3x2"; + if (Q === "mat2x4") return "mat4x2"; + if (Q === "mat3x2") return "mat2x3"; + if (Q === "mat3x3") return "mat3x3"; + if (Q === "mat3x4") return "mat4x3"; + if (Q === "mat4x2") return "mat2x4"; + if (Q === "mat4x3") return "mat3x4"; + if (Q === "mat4x4") return "mat4x4"; + throw new Error(`Invalid transpose type: ${Q}`); +} +class UD extends r { + constructor({ a: A }) { + super({ a: A, outKey: "transpose", outTypeFunc: aG }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.transpose} = transpose(${I.a});` + ]; } - getNumSh() { - return this.extra.sh1 ? this.extra.sh2 ? !this.extra.sh3a || !this.extra.sh3b ? 2 : 3 : 1 : 0; +} +class LD extends r { + constructor({ a: A }) { + super({ a: A, outKey: "det", outTypeFunc: (I) => "float" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.det} = determinant(${I.a});` + ]; } - setMaxSh(A) { - this.maxSh = A; +} +class HD extends r { + constructor({ a: A }) { + super({ a: A, outKey: "inverse", outTypeFunc: (I) => I }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.inverse} = inverse(${A});` + ]; } - fetchSplat({ - index: A, - viewOrigin: I - }) { - let g = pC(this.dyno, A); - if (this.hasRgbDir() && I) { - const B = uA(g).outputs.center, C = ag(iI(B, I)), { sh1Texture: E, sh2Texture: D, sh3TextureA: i, sh3TextureB: w } = this.ensureShTextures(); - let { rgb: s } = qw({ - coord: EB(A), - viewDir: C, - numSh: this.dynoNumSh, - sh1Texture: E, - sh2Texture: D, - sh3TextureA: i, - sh3TextureB: w +} +function GG(Q) { + const A = (I) => I; + switch (Q) { + case "vec2": + return A({ x: "float", y: "float", r: "float", g: "float" }); + case "vec3": + return A({ + x: "float", + y: "float", + z: "float", + r: "float", + g: "float", + b: "float" }); - s = qA(s, uA(g).outputs.rgb), g = CI({ gsplat: g, rgb: s }); - } - return g; + case "vec4": + return A({ + x: "float", + y: "float", + z: "float", + w: "float", + r: "float", + g: "float", + b: "float", + a: "float" + }); + case "ivec2": + return A({ x: "int", y: "int", r: "int", g: "int" }); + case "ivec3": + return A({ + x: "int", + y: "int", + z: "int", + r: "int", + g: "int", + b: "int" + }); + case "ivec4": + return A({ + x: "int", + y: "int", + z: "int", + w: "int", + r: "int", + g: "int", + b: "int", + a: "int" + }); + case "uvec2": + return A({ x: "uint", y: "uint", r: "uint", g: "uint" }); + case "uvec3": + return A({ + x: "uint", + y: "uint", + z: "uint", + r: "uint", + g: "uint", + b: "uint" + }); + case "uvec4": + return A({ + x: "uint", + y: "uint", + z: "uint", + w: "uint", + r: "uint", + g: "uint", + b: "uint", + a: "uint" + }); + default: + throw new Error(`Invalid vector type: ${Q}`); } - ensureShTextures() { - if (!this.extra.sh1) - return {}; - let A = this.extra.sh1Texture; - if (!A) { - let C = this.extra.sh1; - const { width: E, height: D, depth: i, maxSplats: w } = BA( - C.length / 4 - ); - if (C.length < w * 4) { - const o = new Uint32Array(w * 4); - o.set(C), this.extra.sh1 = o, C = o; - } - const s = YI( - C, - E, - D, - i, - G.RGBAIntegerFormat, - G.UnsignedIntType, - "RGBA32UI" - ); - A = new dA({ - value: s, - key: "sh1" - }), this.extra.sh1Texture = A; - } - if (!this.extra.sh2) - return { sh1Texture: A }; - let I = this.extra.sh2Texture; - if (!I) { - let C = this.extra.sh2; - const { width: E, height: D, depth: i, maxSplats: w } = BA( - C.length / 4 - ); - if (C.length < w * 4) { - const o = new Uint32Array(w * 4); - o.set(C), this.extra.sh2 = o, C = o; - } - const s = YI( - C, - E, - D, - i, - G.RGBAIntegerFormat, - G.UnsignedIntType, - "RGBA32UI" - ); - I = new dA({ - value: s, - key: "sh2" - }), this.extra.sh2Texture = I; - } - if (!this.extra.sh3a || !this.extra.sh3b) - return { sh1Texture: A, sh2Texture: I }; - let g = this.extra.sh3TextureA; - if (!g) { - let C = this.extra.sh3a; - const { width: E, height: D, depth: i, maxSplats: w } = BA( - C.length / 4 - ); - if (C.length < w * 4) { - const o = new Uint32Array(w * 4); - o.set(C), this.extra.sh3a = o, C = o; - } - const s = YI( - C, - E, - D, - i, - G.RGBAIntegerFormat, - G.UnsignedIntType, - "RGBA32UI" - ); - g = new dA({ - value: s, - key: "sh3" - }), this.extra.sh3TextureA = g; - } - let B = this.extra.sh3TextureB; - if (!B) { - let C = this.extra.sh3b; - const { width: E, height: D, depth: i, maxSplats: w } = BA( - C.length / 4 - ); - if (C.length < w * 4) { - const o = new Uint32Array(w * 4); - o.set(C), this.extra.sh3b = o, C = o; - } - const s = YI( - C, - E, - D, - i, - G.RGBAIntegerFormat, - G.UnsignedIntType, - "RGBA32UI" - ); - B = new dA({ - value: s, - key: "sh3b" - }), this.extra.sh3TextureB = B; - } - return { sh1Texture: A, sh2Texture: I, sh3TextureA: g, sh3TextureB: B }; +} +class nD extends q { + constructor({ vector: A }) { + const g = { vector: BA(A) }, B = GG(g.vector); + super({ inTypes: g, outTypes: B, inputs: { vector: A } }), this.statements = ({ inputs: C, outputs: E }) => { + const { x: i, y: o, z: D, w: s, r: w, g: G, b: h, a: c } = E, { vector: t } = C; + return [ + i ? `${i} = ${t}.x;` : null, + o ? `${o} = ${t}.y;` : null, + D ? `${D} = ${t}.z;` : null, + s ? `${s} = ${t}.w;` : null, + w ? `${w} = ${t}.r;` : null, + G ? `${G} = ${t}.g;` : null, + h ? `${h} = ${t}.b;` : null, + c ? `${c} = ${t}.a;` : null + ].filter(Boolean); + }; } - // Ensures that this.extArrays can fit numSplats Gsplats. If it's too small, - // resize exponentially and copy over the original data. - // - // Typically you don't need to call this, because calling this.setSplat(index, ...) - // and this.pushSplat(...) will automatically call ensureSplats() so we have - // enough splats. - ensureSplats(A) { - const I = A <= this.maxSplats ? this.maxSplats : ( - // Grow exponentially to avoid frequent reallocations - Math.max(A, 2 * this.maxSplats) - ), g = this.extArrays[0] ? this.extArrays[0].length / 4 : 0; - if (!this.extArrays[0] || I > g) { - this.maxSplats = BA(I).maxSplats; - const B = new Uint32Array(this.maxSplats * 4), C = new Uint32Array(this.maxSplats * 4); - this.extArrays[0] && (B.set(this.extArrays[0]), C.set(this.extArrays[1])), this.extArrays[0] = B, this.extArrays[1] = C; - } - return this.extArrays; +} +class YD extends q { + constructor({ + vector: A, + vectorType: I, + x: g, + y: B, + z: C, + w: E, + r: i, + g: o, + b: D, + a: s + }) { + if (!A && !I) + throw new Error("Either vector or vectorType must be provided"); + const w = I ?? BA(A), G = OB(w), h = WB(w), c = { + vector: w, + x: G, + y: G, + r: G, + g: G + }, t = { vector: A, x: g, y: B, r: i, g: o }; + h >= 3 && (Object.assign(c, { z: G, b: G }), Object.assign(t, { z: C, b: D })), h >= 4 && (Object.assign(c, { w: G, a: G }), Object.assign(t, { w: E, a: s })), super({ inTypes: c, outTypes: { vector: w }, inputs: t }), this.statements = ({ inputs: y, outputs: k }) => { + const { vector: F } = k, { + vector: R, + x: S, + y: N, + z: M, + w: U, + r: e, + g: J, + b: n, + a: H + } = y, L = [ + `${F}.x = ${S ?? e ?? (R ? `${R}.x` : gg(G))};`, + `${F}.y = ${N ?? J ?? (R ? `${R}.y` : gg(G))};` + ]; + return h >= 3 && L.push( + `${F}.z = ${M ?? n ?? (R ? `${R}.z` : gg(G))};` + ), h >= 4 && L.push( + `${F}.w = ${U ?? H ?? (R ? `${R}.w` : gg(G))};` + ), L; + }; } - // Unpack the 16-byte Gsplat data at index into the Three.js components - // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, - // opacity: number 0..1, color: THREE.Color 0..1. - getSplat(A) { - if (A >= this.numSplats) - throw new Error("Invalid index"); - return Tg(this.extArrays, A); + dynoOut() { + return new Z( + this, + "vector" + ); } - // Set all ExtSplat components at index with the provided Gsplat attributes - // (can be the same objects returned by getSplat). Ensures there is capacity - // for at least index+1 Gsplats. - setSplat(A, I, g, B, C, E) { - const D = this.ensureSplats(A + 1); - rQ( - D, - A, - I.x, - I.y, - I.z, - g.x, - g.y, - g.z, - B.x, - B.y, - B.z, - B.w, - C, - E.r, - E.g, - E.b - ), this.numSplats = Math.max(this.numSplats, A + 1); +} +function hG(Q, A) { + let I = null; + if (Rg(Q) ? I = A.length === 1 ? "float" : A.length === 2 ? "vec2" : A.length === 3 ? "vec3" : A.length === 4 ? "vec4" : null : dA(Q) ? I = A.length === 1 ? "int" : A.length === 2 ? "ivec2" : A.length === 3 ? "ivec3" : A.length === 4 ? "ivec4" : null : qA(Q) && (I = A.length === 1 ? "uint" : A.length === 2 ? "uvec2" : A.length === 3 ? "uvec3" : A.length === 4 ? "uvec4" : null), I == null) + throw new Error(`Invalid swizzle: ${A}`); + return I; +} +class rD extends r { + constructor({ vector: A, select: I }) { + super({ + a: A, + outKey: "swizzle", + outTypeFunc: (g) => hG(g, I) + }), this.statements = ({ inputs: g, outputs: B }) => [ + `${B.swizzle} = ${g.a}.${I};` + ]; } - // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on - // construction where you just want to iterate and create a collection of Gsplats. - pushSplat(A, I, g, B, C) { - const E = this.ensureSplats(this.numSplats + 1); - rQ( - E, - this.numSplats, - A.x, - A.y, - A.z, - I.x, - I.y, - I.z, - g.x, - g.y, - g.z, - g.w, - B, - C.r, - C.g, - C.b - ), ++this.numSplats; +} +const tG = (Q, A, I) => new pD({ index: Q, from: A, to: I }), yG = (Q) => new _I({ value: Q }), cG = (Q) => new XA({ state: Q }), kG = (Q) => new jA({ state: Q }), KD = (Q) => new uD({ value: Q }), dD = (Q) => new PD({ value: Q }), qD = (Q) => new bD({ value: Q }), lD = (Q) => new TD({ value: Q }), FG = (Q) => new mD({ value: Q }), NG = (Q) => new VD({ value: Q }), xD = (Q) => new ZD({ value: Q }), fQ = (Q) => new OD({ value: Q }), fD = (Q, A, I) => new WD({ z: Q, zNear: A, zFar: I }).outputs.depth, SG = (Q) => new vD({ index: Q }); +class pD extends q { + constructor({ + from: A, + to: I, + index: g + }) { + super({ + inTypes: { from: "int", to: "int", index: "int" }, + outTypes: { index: "int" }, + inputs: { from: A, to: I, index: g }, + statements: ({ inputs: B, outputs: C }) => [ + `${C.index} = ${B.index} - ${B.from} + ${B.to};` + ] + }); } - // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat - // and invoke the callback function with the Gsplat attributes. - forEachSplat(A) { - if (this.numSplats) - for (let I = 0; I < this.numSplats; ++I) { - const g = Tg(this.extArrays, I); - A( - I, - g.center, - g.scales, - g.quaternion, - g.opacity, - g.color - ); + dynoOut() { + return new Z(this, "index"); + } +} +class XA extends q { + constructor({ state: A }) { + const I = BA(A); + super({ + inTypes: { state: I }, + outTypes: { state: "uint" }, + inputs: { state: A }, + globals: () => [ + GA(` + uint pcg_next(uint state) { + return state * 747796405u + 2891336453u; + } + `) + ], + statements: ({ inputs: g, outputs: B }) => { + const C = I === "uint" ? `${g.state}` : I === "int" ? `uint(${g.state})` : `floatBitsToUint(${g.state})`; + return [`${B.state} = pcg_next(${C});`]; } + }); } - // Check if source texture needs to be created/updated - updateTextures() { - if (this.textures[0] !== rA.emptyTexture) { - const { width: A, height: I, depth: g } = this.textures[0].image; - this.maxSplats !== A * I * g && (this.textures[0].dispose(), this.textures[0] = rA.emptyTexture, this.textures[1].dispose(), this.textures[1] = rA.emptyTexture); - } - if (this.textures[0] === rA.emptyTexture) { - const { width: A, height: I, depth: g } = BA(this.maxSplats); - this.textures[0] = YI( - this.extArrays[0], - A, - I, - g, - G.RGBAIntegerFormat, - G.UnsignedIntType, - "RGBA32UI" - ), this.textures[1] = YI( - this.extArrays[1], - A, - I, - g, - G.RGBAIntegerFormat, - G.UnsignedIntType, - "RGBA32UI" - ); - } else this.extArrays[0].buffer !== this.textures[0].image.data.buffer && (this.textures[0].image.data = new Uint8Array(this.extArrays[0].buffer), this.textures[1].image.data = new Uint8Array(this.extArrays[1].buffer), this.textures[0].needsUpdate = !0, this.textures[1].needsUpdate = !0); + dynoOut() { + return new Z(this, "state"); } - extractSplats(A, I) { - const g = BA(A.length).maxSplats, B = new rA({ maxSplats: g }); - for (let C = 0; C < A.length; C++) { - const E = this.getSplat(A[C]); - if (I) { - let D = (A[C] >>> 16) * 0.61803398875; - D = D - Math.floor(D); - const i = Math.max(0, Math.min(1, Math.abs(D * 6 - 3) - 1)), w = Math.max(0, Math.min(1, Math.abs(D * 6 + 1) - 1)), s = Math.max(0, Math.min(1, Math.abs(D * 6 - 1) - 1)); - E.color.r *= i, E.color.g *= w, E.color.b *= s; - } - B.pushSplat( - E.center, - E.scales, - E.quaternion, - E.opacity, - E.color - ); - } - return B; +} +class jA extends q { + constructor({ state: A }) { + super({ + inTypes: { state: "uint" }, + outTypes: { hash: "uint" }, + inputs: { state: A }, + globals: () => [ + GA(` + uint pcg_hash(uint state) { + uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u; + return (hash >> 22u) ^ hash; + } + `) + ], + statements: ({ inputs: I, outputs: g }) => [ + `${g.hash} = pcg_hash(${I.state});` + ] + }); } - disposeLodSplats() { - this.lodSplats && (this.lodSplats.dispose(), this.lodSplats = void 0); + dynoOut() { + return new Z(this, "hash"); } - async createLodSplats({ - rgbaArray: A, - quality: I - } = {}) { - const g = typeof this.lod == "number" ? Math.max(1.1, Math.min(2, this.lod)) : I ? 1.75 : 1.5, B = [this.extArrays[0].slice(), this.extArrays[1].slice()], C = A ? (await A.getArray()).slice() : void 0, E = { - sh1: this.extra.sh1 ? this.extra.sh1.slice() : void 0, - sh2: this.extra.sh2 ? this.extra.sh2.slice() : void 0, - sh3: this.extra.sh3 ? this.extra.sh3.slice() : void 0 - }, D = await BQ.withWorker(async (w) => await w.call( - I ? "qualityLodExtSplats" : "tinyLodExtSplats", - { - numSplats: this.numSplats, - extArrays: B, - extra: E, - lodBase: g, - rgba: C +} +class _I extends q { + constructor({ value: A }) { + const I = BA(A), g = vB(I); + super({ + inTypes: { value: I }, + outTypes: { state: "uint" }, + inputs: { value: A }, + globals: () => [ + GA(` + uint pcg_mix(uint value) { + return value; + } + uint pcg_mix(uvec2 value) { + return value.x + 0x9e3779b9u * value.y; + } + uint pcg_mix(uvec3 value) { + return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z; + } + uint pcg_mix(uvec4 value) { + return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z + 0xc2b2ae35u * value.w; + } + `) + ], + statements: ({ inputs: B, outputs: C }) => { + const E = qA(I) ? `${B.value}` : dA(I) ? `${g}(${B.value})` : `floatBitsToUint(${B.value})`; + return [ + `${g} bits = ${E};`, + `${C.state} = pcg_mix(bits);` + ]; } - )), i = new rA(D); - this.lodSplats && this.lodSplats.dispose(), this.lodSplats = i, this.nonLod = !0, this.lod = I ? "quality" : !0; + }); } -}; -rA.emptyArray = (() => { - const { width: A, height: I, depth: g, maxSplats: B } = BA(1), C = new Uint32Array(B * 4), E = new G.DataArrayTexture( - C, - A, - I, - g - ); - return E.format = G.RGBAIntegerFormat, E.type = G.UnsignedIntType, E.internalFormat = "RGBA32UI", E.needsUpdate = !0, E; -})(), rA.emptyTexture = YI( - null, - 1, - 1, - 1, - G.RGBAIntegerFormat, - G.UnsignedIntType, - "RGBA32UI" -), rA.emptyUint32x4 = (() => { - const { width: A, height: I, depth: g, maxSplats: B } = BA(1), C = new Uint32Array(B * 4), E = new G.DataArrayTexture( - C, - A, - I, - g - ); - return E.format = G.RGBAIntegerFormat, E.type = G.UnsignedIntType, E.internalFormat = "RGBA32UI", E.needsUpdate = !0, E; -})(); -let GI = rA; -class Bh extends x { - constructor({ extSplats: A } = {}) { + dynoOut() { + return new Z(this, "state"); + } +} +class uD extends sI { + constructor({ value: A }) { super({ - key: "extSplats", - type: BB, - globals: () => [DB], - value: { - textureArray1: GI.emptyTexture, - textureArray2: GI.emptyTexture, - numSplats: 0 - }, - update: (I) => { - var g, B, C; - return I.textureArray1 = ((g = this.extSplats) == null ? void 0 : g.textures[0]) ?? GI.emptyTexture, I.textureArray2 = ((B = this.extSplats) == null ? void 0 : B.textures[1]) ?? GI.emptyTexture, I.numSplats = ((C = this.extSplats) == null ? void 0 : C.numSplats) ?? 0, I; + inTypes: { value: BA(A) }, + outTypes: { hash: "uint" }, + inputs: { value: A }, + construct: ({ value: I }) => { + if (!I) + throw new Error("value is required"); + let g = new _I({ value: I }).outputs.state; + return g = new XA({ state: g }).outputs.state, new jA({ state: g }).outputs; } - }), this.extSplats = A; + }); + } + dynoOut() { + return new Z(this, "hash"); } } -const Ch = oA(` - vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) { - vec3 sh1_0 = decodeExtRgb(packedData.x); - vec3 sh1_1 = decodeExtRgb(packedData.y); - vec3 sh1_2 = decodeExtRgb(packedData.z); - - return sh1_0 * (-0.4886025 * viewDir.y) - + sh1_1 * (0.4886025 * viewDir.z) - + sh1_2 * (-0.4886025 * viewDir.x); +class PD extends sI { + constructor({ value: A }) { + super({ + inTypes: { value: BA(A) }, + outTypes: { hash: "uvec2" }, + inputs: { value: A }, + construct: ({ value: I }) => { + if (!I) + throw new Error("value is required"); + let g = new _I({ value: I }).outputs.state; + g = new XA({ state: g }).outputs.state; + const B = new jA({ state: g }).outputs.hash; + g = new XA({ state: g }).outputs.state; + const C = new jA({ state: g }).outputs.hash; + return { hash: GI({ vectorType: "uvec2", x: B, y: C }) }; + } + }); } -`), Eh = oA(` - vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) { - vec3 sh1_0 = decodeExtRgb(packed1.x); - vec3 sh1_1 = decodeExtRgb(packed1.y); - vec3 sh1_2 = decodeExtRgb(packed1.z); - - vec3 sh2_0 = decodeExtRgb(packed1.w); - vec3 sh2_1 = decodeExtRgb(packed2.x); - vec3 sh2_2 = decodeExtRgb(packed2.y); - vec3 sh2_3 = decodeExtRgb(packed2.z); - vec3 sh2_4 = decodeExtRgb(packed2.w); - - vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y) - + sh1_1 * (0.4886025 * viewDir.z) - + sh1_2 * (-0.4886025 * viewDir.x); - - vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y) - + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z) - + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y)) - + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z) - + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y)); - - return sh1Rgb + sh2Rgb; + dynoOut() { + return new Z(this, "hash"); + } +} +class bD extends sI { + constructor({ value: A }) { + super({ + inTypes: { value: BA(A) }, + outTypes: { hash: "uvec3" }, + inputs: { value: A }, + construct: ({ value: I }) => { + if (!I) + throw new Error("value is required"); + let g = new _I({ value: I }).outputs.state; + g = new XA({ state: g }).outputs.state; + const B = new jA({ state: g }).outputs.hash; + g = new XA({ state: g }).outputs.state; + const C = new jA({ state: g }).outputs.hash; + g = new XA({ state: g }).outputs.state; + const E = new jA({ state: g }).outputs.hash; + return { hash: GI({ vectorType: "uvec3", x: B, y: C, z: E }) }; + } + }); } -`), Dh = oA(` - vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) { - vec3 sh3_0 = decodeExtRgb(packedA.x); - vec3 sh3_1 = decodeExtRgb(packedA.y); - vec3 sh3_2 = decodeExtRgb(packedA.z); - vec3 sh3_3 = decodeExtRgb(packedA.w); - vec3 sh3_4 = decodeExtRgb(packedB.x); - vec3 sh3_5 = decodeExtRgb(packedB.y); - vec3 sh3_6 = decodeExtRgb(packedB.z); - - float xx = viewDir.x * viewDir.x; - float yy = viewDir.y * viewDir.y; - float zz = viewDir.z * viewDir.z; - float xy = viewDir.x * viewDir.y; - float yz = viewDir.y * viewDir.z; - float zx = viewDir.z * viewDir.x; - - return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy)) - + sh3_1 * (2.8906114 * xy * viewDir.z) + - + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy)) - + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) - + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy)) - + sh3_5 * (1.4453057 * viewDir.z * (xx - yy)) - + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy)); + dynoOut() { + return new Z(this, "hash"); } -`); -function qw({ - coord: Q, - viewDir: A, - numSh: I, - sh1Texture: g, - sh2Texture: B, - sh3TextureA: C, - sh3TextureB: E -}) { - return new d({ - inTypes: { - coord: "ivec3", - viewDir: "vec3", - numSh: "int", - sh1Texture: "usampler2DArray", - sh2Texture: "usampler2DArray", - sh3TextureA: "usampler2DArray", - sh3TextureB: "usampler2DArray" - }, - outTypes: { rgb: "vec3" }, - inputs: { - coord: Q, - viewDir: A, - numSh: I, - sh1Texture: g, - sh2Texture: B, - sh3TextureA: C, - sh3TextureB: E - }, - globals: () => [ - Ch, - Eh, - Dh - ], - statements: ({ inputs: D, outputs: i }) => { - const w = ["vec3 rgb = vec3(0.0);"]; - return D.sh1Texture && (D.sh2Texture ? (w.push( - ...z(` - if (${D.numSh} == 1) { - rgb = evaluateExtSH1(texelFetch(${D.sh1Texture}, ${D.coord}, 0), ${D.viewDir}); - } else if (${D.numSh} >= 2) { - rgb = evaluateExtSH12(texelFetch(${D.sh1Texture}, ${D.coord}, 0), texelFetch(${D.sh2Texture}, ${D.coord}, 0), ${D.viewDir}); - `) - ), D.sh3TextureA && D.sh3TextureB && w.push( - ...z(` - if (${D.numSh} >= 3) { - rgb += evaluateExtSH3(texelFetch(${D.sh3TextureA}, ${D.coord}, 0), texelFetch(${D.sh3TextureB}, ${D.coord}, 0), ${D.viewDir}); - } - `) - ), w.push("}")) : w.push( - ...z(` - if (${D.numSh} >= 1) { - rgb = evaluateExtSH1(texelFetch(${D.sh1Texture}, ${D.coord}, 0), ${D.viewDir}); - } - `) - )), w.push(`${i.rgb} = rgb;`), w; - } - }).outputs; } -function YI(Q, A, I, g, B, C, E) { - const D = new G.DataArrayTexture( - Q, - A, - I, - g - ); - return D.format = B, D.type = C, D.internalFormat = E, D.needsUpdate = !0, D; +class TD extends sI { + constructor({ value: A }) { + super({ + inTypes: { value: BA(A) }, + outTypes: { hash: "uvec4" }, + inputs: { value: A }, + construct: ({ value: I }) => { + if (!I) + throw new Error("value is required"); + let g = new _I({ value: I }).outputs.state; + g = new XA({ state: g }).outputs.state; + const B = new jA({ state: g }).outputs.hash; + g = new XA({ state: g }).outputs.state; + const C = new jA({ state: g }).outputs.hash; + g = new XA({ state: g }).outputs.state; + const E = new jA({ state: g }).outputs.hash; + g = new XA({ state: g }).outputs.state; + const i = new jA({ state: g }).outputs.hash; + return { hash: GI({ vectorType: "uvec4", x: B, y: C, z: E, w: i }) }; + } + }); + } + dynoOut() { + return new Z(this, "hash"); + } } -function rB(Q) { - const A = RA.decode_rad_header(Q); - if (A[2]) - throw xB(A[1]); - return xB(A[0]); +class mD extends sI { + constructor({ value: A }) { + super({ + inTypes: { value: BA(A) }, + outTypes: { hash: "float" }, + inputs: { value: A }, + construct: ({ value: I }) => { + if (!I) + throw new Error("value is required"); + const g = KD(I); + return { hash: kA(di(g), AA("float", 1 / 2 ** 32)) }; + } + }); + } + dynoOut() { + return new Z(this, "hash"); + } +} +class VD extends sI { + constructor({ value: A }) { + super({ + inTypes: { value: BA(A) }, + outTypes: { hash: "vec2" }, + inputs: { value: A }, + construct: ({ value: I }) => { + if (!I) + throw new Error("value is required"); + const g = dD(I); + return { hash: kA(qi(g), AA("float", 1 / 2 ** 32)) }; + } + }); + } + dynoOut() { + return new Z(this, "hash"); + } } -function ih() { - return RA.get_raycast_buffer(); +class ZD extends sI { + constructor({ value: A }) { + super({ + inTypes: { value: BA(A) }, + outTypes: { hash: "vec3" }, + inputs: { value: A }, + construct: ({ value: I }) => { + if (!I) + throw new Error("value is required"); + const g = qD(I); + return { hash: kA(xI(g), AA("float", 1 / 2 ** 32)) }; + } + }); + } + dynoOut() { + return new Z(this, "hash"); + } } -function wh() { - return RA.get_raycast_buffer2(); +class OD extends sI { + constructor({ value: A }) { + super({ + inTypes: { value: BA(A) }, + outTypes: { hash: "vec4" }, + inputs: { value: A }, + construct: ({ value: I }) => { + if (!I) + throw new Error("value is required"); + const g = lD(I); + return { hash: kA(li(g), AA("float", 1 / 2 ** 32)) }; + } + }); + } + dynoOut() { + return new Z(this, "hash"); + } } -function oh(Q, A, I, g, B, C, E, D, i, w) { - return RA.raycast_ext_buffers(Q, A, I, g, B, C, E, D, i, w); +class WD extends q { + constructor({ + z: A, + zNear: I, + zFar: g + }) { + super({ + inTypes: { z: "float", zNear: "float", zFar: "float" }, + outTypes: { depth: "float" }, + inputs: { z: A, zNear: I, zFar: g }, + statements: ({ inputs: B, outputs: C }) => [ + `float clamped = clamp(${B.z}, ${B.zNear}, ${B.zFar});`, + `${C.depth} = (log2(clamped + 1.0) - log2(${B.zNear} + 1.0)) / (log2(${B.zFar} + 1.0) - log2(${B.zNear} + 1.0));` + ] + }); + } + dynoOut() { + return new Z(this, "depth"); + } } -function sh(Q, A, I, g, B, C, E, D, i, w, s, o, y) { - return RA.raycast_packed_buffer(Q, A, I, g, B, C, E, D, i, w, s, o, y); +class vD extends q { + constructor({ index: A }) { + super({ + inTypes: { index: "int" }, + outTypes: { color: "vec3" }, + inputs: { index: A }, + statements: ({ inputs: I, outputs: g }) => [ + `${g.color} = debugColorHue(uint(${I.index}));` + ] + }); + } + dynoOut() { + return new Z(this, "color"); + } } -function Gh() { - return { - __proto__: null, - "./spark_rs_bg.js": { - __proto__: null, - __wbg_Error_2e59b1b37a9a34c3: function(A, I) { - return Error(Yg(A, I)); - }, - __wbg___wbindgen_throw_81fc77679af83bc6: function(A, I) { - throw new Error(Yg(A, I)); - }, - __wbg_error_a6fa202b58aa1cd3: function(A, I) { - let g, B; - try { - g = A, B = I, console.error(Yg(A, I)); - } finally { - RA.__wbindgen_free(g, B, 1); - } - }, - __wbg_length_0c32cb8543c8e4c8: function(A) { - return A.length; - }, - __wbg_length_1e701798fdcaa3b4: function(A) { - return A.length; - }, - __wbg_length_fd4646b401926788: function(A) { - return A.length; - }, - __wbg_new_227d7c05414eb861: function() { - return new Error(); - }, - __wbg_new_4f9fafbb3909af72: function() { - return new Object(); - }, - __wbg_new_f3c9df4f38f3f798: function() { - return new Array(); - }, - __wbg_new_with_length_26bffbe236bf73f9: function(A) { - return new Float32Array(A >>> 0); - }, - __wbg_prototypesetcall_3e05eb9545565046: function(A, I, g) { - Uint8Array.prototype.set.call(hh(A, I), g); - }, - __wbg_prototypesetcall_e42275e601e14eeb: function(A, I, g) { - Uint32Array.prototype.set.call(dB(A, I), g); - }, - __wbg_set_6be42768c690e380: function(A, I, g) { - A[I] = g; - }, - __wbg_set_6c60b2e8ad0e9383: function(A, I, g) { - A[I >>> 0] = g; - }, - __wbg_set_8ee2d34facb8466e: function() { - return Fh(function(A, I, g) { - return Reflect.set(A, I, g); - }, arguments); - }, - __wbg_set_a98c8da6557e63de: function(A, I, g) { - A.set(nB(I, g)); - }, - __wbg_stack_3b0d974bbf31e44f: function(A, I) { - const g = I.stack, B = ah(g, RA.__wbindgen_malloc, RA.__wbindgen_realloc), C = uQ; - qB().setInt32(A + 4, C, !0), qB().setInt32(A + 0, B, !0); - }, - __wbg_subarray_d51e89458b3fdbf6: function(A, I, g) { - return A.subarray(I >>> 0, g >>> 0); - }, - __wbindgen_cast_0000000000000001: function(A) { - return A; - }, - __wbindgen_cast_0000000000000002: function(A, I) { - return nB(A, I); - }, - __wbindgen_cast_0000000000000003: function(A, I) { - return dB(A, I); - }, - __wbindgen_cast_0000000000000004: function(A, I) { - return Yg(A, I); - }, - __wbindgen_cast_0000000000000005: function(A) { - return BigInt.asUintN(64, A); +const XD = (Q, { + scale: A, + scales: I, + rotate: g, + translate: B +}) => new zD({ position: Q, scale: A, scales: I, rotate: g, translate: B }).outputs.position, jD = (Q, { + scale: A, + scales: I, + rotate: g +}) => new _D({ dir: Q, scale: A, scales: I, rotate: g }).outputs.dir, RG = (Q, { rotate: A }) => new $D({ quaternion: Q, rotate: A }).outputs.quaternion; +class zD extends q { + constructor({ + position: A, + scale: I, + scales: g, + rotate: B, + translate: C + }) { + super({ + inTypes: { + position: "vec3", + scale: "float", + scales: "vec3", + rotate: "vec4", + translate: "vec3" }, - __wbindgen_init_externref_table: function() { - const A = RA.__wbindgen_externrefs, I = A.grow(4); - A.set(0, void 0), A.set(I + 0, void 0), A.set(I + 1, null), A.set(I + 2, !0), A.set(I + 3, !1); + outTypes: { position: "vec3" }, + inputs: { position: A, scale: I, scales: g, rotate: B, translate: C }, + statements: ({ inputs: E, outputs: i }) => { + const { position: o } = i; + if (!o) + return []; + const { scale: D, scales: s, rotate: w, translate: G } = E; + return [ + `${o} = ${E.position ?? "vec3(0.0, 0.0, 0.0)"};`, + D ? `${o} *= ${D};` : null, + s ? `${o} *= ${s};` : null, + w ? `${o} = quatVec(${w}, ${o});` : null, + G ? `${o} += ${G};` : null + ].filter(Boolean); } - } - }; + }); + } } -function yh(Q) { - const A = RA.__externref_table_alloc(); - return RA.__wbindgen_externrefs.set(A, Q), A; +class _D extends q { + constructor({ + dir: A, + scale: I, + scales: g, + rotate: B + }) { + super({ + inTypes: { dir: "vec3", scale: "float", scales: "vec3", rotate: "vec4" }, + outTypes: { dir: "vec3" }, + inputs: { dir: A, scale: I, scales: g, rotate: B }, + statements: ({ inputs: C, outputs: E }) => { + const { dir: i } = E; + if (!i) + return []; + const { scale: o, scales: D, rotate: s } = C; + return [ + `${i} = ${C.dir ?? "vec3(0.0, 0.0, 0.0)"};`, + o ? `${i} *= ${o};` : null, + D ? `${i} *= ${D};` : null, + s ? `${i} = quatVec(${s}, ${i});` : null + ].filter(Boolean); + } + }); + } } -function nB(Q, A) { - return Q = Q >>> 0, Rh().subarray(Q / 4, Q / 4 + A); +class $D extends q { + constructor({ + quaternion: A, + rotate: I + }) { + super({ + inTypes: { quaternion: "vec4", rotate: "vec4" }, + outTypes: { quaternion: "vec4" }, + inputs: { quaternion: A, rotate: I }, + statements: ({ inputs: g, outputs: B }) => { + const { quaternion: C } = B; + return C ? [ + `${C} = ${g.quaternion ?? "vec4(0.0, 0.0, 0.0, 1.0)"};`, + I ? `${C} = quatQuat(${g.rotate}, ${C});` : null + ].filter(Boolean) : []; + } + }); + } } -function dB(Q, A) { - return Q = Q >>> 0, kh().subarray(Q / 4, Q / 4 + A); +const MG = () => { + throw new Error("Not implemented"); +}, eG = () => { + throw new Error("Not implemented"); +}, JG = () => { + throw new Error("Not implemented"); +}, UG = () => { + throw new Error("Not implemented"); +}, LG = () => { + throw new Error("Not implemented"); +}, HG = () => { + throw new Error("Not implemented"); +}, nG = (Q, A) => new Ao({ texture: Q, lod: A }), YG = (Q, A, I) => new Io({ texture: Q, coord: A, bias: I }), rG = (Q, A, I) => new go({ texture: Q, coord: A, lod: I }); +class Ao extends q { + constructor({ texture: A, lod: I }) { + const g = BA(A); + super({ + inTypes: { texture: g, lod: "int" }, + outTypes: { size: Qo(g) }, + inputs: { texture: A, lod: I }, + statements: ({ inputs: B, outputs: C }) => [ + `${C.size} = textureSize(${B.texture}, ${B.lod ?? "0"});` + ] + }); + } + dynoOut() { + return new Z(this, "size"); + } } -function hh(Q, A) { - return Q = Q >>> 0, yg().subarray(Q / 1, Q / 1 + A); +class Io extends q { + constructor({ + texture: A, + coord: I, + bias: g + }) { + const B = BA(A); + super({ + inTypes: { + texture: B, + coord: KG(B), + bias: "float" + }, + outTypes: { sample: Bo(B) }, + inputs: { texture: A, coord: I, bias: g }, + statements: ({ inputs: C, outputs: E }) => [ + `${E.sample} = texture(${C.texture}, ${C.coord}${C.bias ? `, ${C.bias}` : ""});` + ] + }); + } + dynoOut() { + return new Z(this, "sample"); + } } -let dI = null; -function qB() { - return (dI === null || dI.buffer.detached === !0 || dI.buffer.detached === void 0 && dI.buffer !== RA.memory.buffer) && (dI = new DataView(RA.memory.buffer)), dI; +class go extends q { + constructor({ + texture: A, + coord: I, + lod: g + }) { + const B = BA(A); + super({ + inTypes: { + texture: B, + coord: Qo(B), + lod: "int" + }, + outTypes: { texel: Bo(B) }, + inputs: { texture: A, coord: I, lod: g }, + statements: ({ inputs: C, outputs: E }) => [ + `${E.texel} = texelFetch(${C.texture}, ${C.coord}, ${C.lod ?? "0"});` + ] + }); + } + dynoOut() { + return new Z(this, "texel"); + } } -let ig = null; -function Rh() { - return (ig === null || ig.byteLength === 0) && (ig = new Float32Array(RA.memory.buffer)), ig; +function Qo(Q) { + switch (Q) { + case "sampler2D": + case "usampler2D": + case "isampler2D": + case "samplerCube": + case "usamplerCube": + case "isamplerCube": + case "sampler2DShadow": + case "samplerCubeShadow": + return "ivec2"; + case "sampler3D": + case "usampler3D": + case "isampler3D": + case "sampler2DArray": + case "usampler2DArray": + case "isampler2DArray": + case "sampler2DArrayShadow": + return "ivec3"; + default: + throw new Error(`Invalid texture type: ${Q}`); + } } -function Yg(Q, A) { - return Q = Q >>> 0, Nh(Q, A); +function KG(Q) { + switch (Q) { + case "sampler2D": + case "usampler2D": + case "isampler2D": + return "vec2"; + case "sampler3D": + case "usampler3D": + case "isampler3D": + case "samplerCube": + case "usamplerCube": + case "isamplerCube": + case "sampler2DArray": + case "usampler2DArray": + case "isampler2DArray": + case "sampler2DShadow": + return "vec3"; + case "samplerCubeShadow": + case "sampler2DArrayShadow": + return "vec4"; + default: + throw new Error(`Invalid texture type: ${Q}`); + } } -let wg = null; -function kh() { - return (wg === null || wg.byteLength === 0) && (wg = new Uint32Array(RA.memory.buffer)), wg; +function Bo(Q) { + switch (Q) { + case "sampler2D": + case "sampler2DArray": + case "sampler3D": + case "samplerCube": + case "sampler2DShadow": + return "vec4"; + case "usampler2D": + case "usampler2DArray": + case "usampler3D": + case "usamplerCube": + return "uvec4"; + case "isampler2D": + case "isampler2DArray": + case "isampler3D": + case "isamplerCube": + return "ivec4"; + case "samplerCubeShadow": + case "sampler2DArrayShadow": + return "float"; + default: + throw new Error(`Invalid texture type: ${Q}`); + } } -let og = null; -function yg() { - return (og === null || og.byteLength === 0) && (og = new Uint8Array(RA.memory.buffer)), og; +const dG = (Q) => new Co({ degrees: Q }), qG = (Q) => new Eo({ radians: Q }), pQ = (Q) => new io({ radians: Q }), lG = (Q) => new Do({ radians: Q }), xG = (Q) => new oo({ radians: Q }), fG = (Q) => new wo({ sin: Q }), pG = (Q) => new so({ cos: Q }), uG = (Q) => new ao({ tan: Q }), PG = (Q, A) => new Go({ y: Q, x: A }), bG = (Q) => new ho({ x: Q }), TG = (Q) => new to({ x: Q }), mG = (Q) => new yo({ x: Q }), VG = (Q) => new co({ x: Q }), ZG = (Q) => new ko({ x: Q }), OG = (Q) => new Fo({ x: Q }); +class Co extends r { + constructor({ degrees: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "radians" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.radians} = radians(${I.a});` + ]; + } } -function Fh(Q, A) { - try { - return Q.apply(this, A); - } catch (I) { - const g = yh(I); - RA.__wbindgen_exn_store(g); +class Eo extends r { + constructor({ radians: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "degrees" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.degrees} = degrees(${I.a});` + ]; } } -function ah(Q, A, I) { - if (I === void 0) { - const D = hg.encode(Q), i = A(D.length, 1) >>> 0; - return yg().subarray(i, i + D.length).set(D), uQ = D.length, i; +class io extends r { + constructor({ radians: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "sin" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.sin} = sin(${I.a});` + ]; } - let g = Q.length, B = A(g, 1) >>> 0; - const C = yg(); - let E = 0; - for (; E < g; E++) { - const D = Q.charCodeAt(E); - if (D > 127) break; - C[B + E] = D; +} +class Do extends r { + constructor({ radians: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "cos" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.cos} = cos(${I.a});` + ]; } - if (E !== g) { - E !== 0 && (Q = Q.slice(E)), B = I(B, g, g = E + Q.length * 3, 1) >>> 0; - const D = yg().subarray(B + E, B + g), i = hg.encodeInto(Q, D); - E += i.written, B = I(B, g, E, 1) >>> 0; +} +class oo extends r { + constructor({ radians: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "tan" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.tan} = tan(${I.a});` + ]; } - return uQ = E, B; } -function xB(Q) { - const A = RA.__wbindgen_externrefs.get(Q); - return RA.__externref_table_dealloc(Q), A; +class wo extends r { + constructor({ sin: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "asin" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.asin} = asin(${I.a});` + ]; + } } -let bg = new TextDecoder("utf-8", { ignoreBOM: !0, fatal: !0 }); -bg.decode(); -const Sh = 2146435072; -let cQ = 0; -function Nh(Q, A) { - return cQ += A, cQ >= Sh && (bg = new TextDecoder("utf-8", { ignoreBOM: !0, fatal: !0 }), bg.decode(), cQ = A), bg.decode(yg().subarray(Q, Q + A)); +class so extends r { + constructor({ cos: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "acos" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.acos} = acos(${I.a});` + ]; + } } -const hg = new TextEncoder(); -"encodeInto" in hg || (hg.encodeInto = function(Q, A) { - const I = hg.encode(Q); - return A.set(I), { - read: Q.length, - written: I.length - }; -}); -let uQ = 0, RA; -function ch(Q, A) { - return RA = Q.exports, dI = null, ig = null, wg = null, og = null, RA.__wbindgen_start(), RA; +class ao extends r { + constructor({ tan: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "atan" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.atan} = atan(${I.a});` + ]; + } } -async function Mh(Q, A) { - if (typeof Response == "function" && Q instanceof Response) { - if (typeof WebAssembly.instantiateStreaming == "function") - try { - return await WebAssembly.instantiateStreaming(Q, A); - } catch (B) { - if (Q.ok && I(Q.type) && Q.headers.get("Content-Type") !== "application/wasm") - console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", B); - else - throw B; - } - const g = await Q.arrayBuffer(); - return await WebAssembly.instantiate(g, A); - } else { - const g = await WebAssembly.instantiate(Q, A); - return g instanceof WebAssembly.Instance ? { instance: g, module: Q } : g; +class Go extends iA { + constructor({ y: A, x: I }) { + super({ + a: A, + b: I, + outTypeFunc: (g, B) => g, + outKey: "atan2" + }), this.statements = ({ inputs: g, outputs: B }) => [ + `${B.atan2} = atan2(${g.a}, ${g.b});` + ]; + } +} +class ho extends r { + constructor({ x: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "sinh" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.sinh} = sinh(${I.a});` + ]; + } +} +class to extends r { + constructor({ x: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "cosh" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.cosh} = cosh(${I.a});` + ]; } - function I(g) { - switch (g) { - case "basic": - case "cors": - case "default": - return !0; - } - return !1; +} +class yo extends r { + constructor({ x: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "tanh" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.tanh} = tanh(${I.a});` + ]; } } -async function xw(Q) { - if (RA !== void 0) return RA; - Q !== void 0 && (Object.getPrototypeOf(Q) === Object.prototype ? { module_or_path: Q } = Q : console.warn("using deprecated parameters for the initialization function; pass a single object instead")), Q === void 0 && (Q = new URL("data:application/wasm;base64,AGFzbQEAAAABlwM3YAN/f38Bf2ACf38Bf2ACf38AYAN/f38AYAF/AGABfwF/YAV/f39/fwBgBH9/f38AYAABb2AAAGACf38Bb2AEf39/fwF/YAZ/f39/f38AYAFvAX9gAX0BfWAFf39/fn8AYAABf2AFf39/f38Bf2ADf39vAGAGf39/f39/AX9gB39/f39/f38AYAV/f35/fwBgBX9/fH9/AGAFf399f38AYAADf39/YANvb28AYANvf28AYANvb28Bf2ADb39/AW9gAX8Bb2ADb39/AGACf28AYAF8AW9gAX4Bb2AKf39/f3t9fX19fwBgB39/f39/f38Bf2AIf397fX1/f38AYAJ+fwBgA39/fgBgAn9+AX9gA39+fgBgBH9+fn8AYAZ/f39+f38AYAZ/f398f38AYAZ/f399f38AYAZ/f39/f30AYA59fX19fX19fX1/b319fwFvYA19fX19fX19fX1/fX1/AW9gAW8Df39/YAp9fX19fX19fX1/AW9gBH9+f38AYAR/fX9/AGAEf3x/fwBgAn19AX1gAXwBfwK7CRgQLi9zcGFya19yc19iZy5qcxpfX3diZ19uZXdfZjNjOWRmNGYzOGYzZjc5OAAIEC4vc3BhcmtfcnNfYmcuanMaX193YmdfbmV3XzRmOWZhZmJiMzkwOWFmNzIACBAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX3NldF82YmU0Mjc2OGM2OTBlMzgwABkQLi9zcGFya19yc19iZy5qcxpfX3diZ19zZXRfNmM2MGIyZThhZDBlOTM4MwAaEC4vc3BhcmtfcnNfYmcuanMdX193YmdfbGVuZ3RoXzBjMzJjYjg1NDNjOGU0YzgADRAuL3NwYXJrX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfM2UwNWViOTU0NTU2NTA0NgASEC4vc3BhcmtfcnNfYmcuanMaX193Ymdfc2V0XzhlZTJkMzRmYWNiODQ2NmUAGxAuL3NwYXJrX3JzX2JnLmpzH19fd2JnX3N1YmFycmF5X2Q1MWU4OTQ1OGIzZmRiZjYAHBAuL3NwYXJrX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF8xZTcwMTc5OGZkY2FhM2I0AA0QLi9zcGFya19yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsX2U0MjI3NWU2MDFlMTRlZWIAEhAuL3NwYXJrX3JzX2JnLmpzJl9fd2JnX25ld193aXRoX2xlbmd0aF8yNmJmZmJlMjM2YmY3M2Y5AB0QLi9zcGFya19yc19iZy5qcx1fX3diZ19sZW5ndGhfZmQ0NjQ2YjQwMTkyNjc4OAANEC4vc3BhcmtfcnNfYmcuanMaX193Ymdfc2V0X2E5OGM4ZGE2NTU3ZTYzZGUAHhAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX25ld18yMjdkN2MwNTQxNGViODYxAAgQLi9zcGFya19yc19iZy5qcxxfX3diZ19zdGFja18zYjBkOTc0YmJmMzFlNDRmAB8QLi9zcGFya19yc19iZy5qcxxfX3diZ19lcnJvcl9hNmZhMjAyYjU4YWExY2QzAAIQLi9zcGFya19yc19iZy5qcxxfX3diZ19FcnJvcl8yZTU5YjFiMzdhOWEzNGMzAAoQLi9zcGFya19yc19iZy5qcydfX3diZ19fX3diaW5kZ2VuX3Rocm93XzgxZmM3NzY3OWFmODNiYzYAAhAuL3NwYXJrX3JzX2JnLmpzH19fd2JpbmRnZW5faW5pdF9leHRlcm5yZWZfdGFibGUACRAuL3NwYXJrX3JzX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAxACAQLi9zcGFya19yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMgAKEC4vc3BhcmtfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDMAChAuL3NwYXJrX3JzX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDA0AAoQLi9zcGFya19yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwNQAhA54CnAIFAAECAQIFAQEGBQAiIwcCAwUBAg4OBAECBQMACwUBBQICAAIFAgQkAgMDAgACAAUCABMBAQkBFAACDwEFBRQOAg8ABQIEJQEDAQICBRAFBQEEBQEPAQEMAgEBBwUBAgEBASYBAQICAgICAQIFBAIBDAYBAgMDJwECBAYCAgMBAQICAQUCASgGAAABBAMDAwMEBgYHAwQABwEDAgADDAQEAQEG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NgIEDAELIAAPCyAAQQhqC98XAhp/AnwjAEGwBGsiAyQAIANCADcDmAEgA0IANwOQASADQgA3A4gBIANCADcDgAEgA0IANwN4IANCADcDcCADQgA3A2ggA0IANwNgIANCADcDWCADQgA3A1AgA0IANwNIIANCADcDQCADQgA3AzggA0IANwMwIANCADcDKCADQgA3AyAgA0IANwMYIANCADcDECADQgA3AwggA0IANwMAIANCADcDuAIgA0IANwOwAiADQgA3A6gCIANCADcDoAIgA0IANwOYAiADQgA3A5ACIANCADcDiAIgA0IANwOAAiADQgA3A/gBIANCADcD8AEgA0IANwPoASADQgA3A+ABIANCADcD2AEgA0IANwPQASADQgA3A8gBIANCADcDwAEgA0IANwO4ASADQgA3A7ABIANCADcDqAEgA0IANwOgASADQgA3A9gDIANCADcD0AMgA0IANwPIAyADQgA3A8ADIANCADcDuAMgA0IANwOwAyADQgA3A6gDIANCADcDoAMgA0IANwOYAyADQgA3A5ADIANCADcDiAMgA0IANwOAAyADQgA3A/gCIANCADcD8AIgA0IANwPoAiADQgA3A+ACIANCADcD2AIgA0IANwPQAiADQgA3A8gCIANCADcDwAIgA0HgA2pBAEHQAPwLAEHQ38EAKAIAIgkhBiACQQNrQRhtIgVBACAFQQBKGyILIQUgC0ECdEHg38EAaiEHA0AgAyAEQQN0aiAFQQBIBHxEAAAAAAAAAAAFIAcoAgC3CzkDACAEIAZJIgoEQCAHQQRqIQcgBUEBaiEFIAQgCmoiBCAGTQ0BCwtBACEFA0BBACEEIANBwAJqIAVBA3RqIB0gACAEQQN0aisDACADIAUgBGtBA3RqKwMAoqA5AwAgBSAJSSIGBEAgBSAGaiIFIAlNDQELC0QAAAAAAADwf0QAAAAAAADgfyACIAtBaGxqIgpBGGsiAkH+D0siEBtEAAAAAAAAAABEAAAAAAAAYAMgAkG5cEkiERtEAAAAAAAA8D8gAkGCeEgiEhsgAkH/B0oiExtB/RcgAiACQf0XTxtB/g9rIApBlwhrIBAbIhVB8GggAiACQfBoTRtBkg9qIApBsQdqIBEbIhYgAiASGyATG0H/B2qtQjSGv6IhHiADQdwDaiIOIAlBAnRqIQ9BLyAKa0Ef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ADYCyAIgAiACQagCajYC0AIgAkHIAmoQSQwQCyABKAIAQdyWwQBBCiABKAIEKAIMEQAADA8LIAEoAgBB5pbBAEEMIAEoAgQoAgwRAAAMDgsgASgCAEHylsEAQQ4gASgCBCgCDBEAAAwNCyABKAIAQYCXwQBBCCABKAIEKAIMEQAADAwLIAEoAgBBiJfBAEEDIAEoAgQoAgwRAAAMCwsgASgCAEGLl8EAQQQgASgCBCgCDBEAAAwKCyABKAIAQY+XwQBBDCABKAIEKAIMEQAADAkLIAEoAgBBm5fBAEEPIAEoAgQoAgwRAAAMCAsgASgCAEGql8EAQQ0gASgCBCgCDBEAAAwHCyABKAIAQbeXwQBBDiABKAIEKAIMEQAADAYLIAEoAgAgACgCBCAAKAIIIAEoAgQoAgwRAAAMBQsgACkDCCIJQv////////8HgyEKIAlC////////////AINC//////////f/AFgEQCAJQjSIpyEAIAlCAFMNAiACQagCagwDC0HUosEAQdeiwQAgCUIAWSIAG0HbosEAIApQIgQbIQNBA0EEIAAbQQMgBBshAAwDCyABKAIAQdqXwQBBBCABKAIEKAIMEQAADAMLIAJBLToAqAJBASEIIAJBqQJqCyEGAn8CQAJAAkACQAJAAkACQAJAIABB/w9xIgBFIApQcUUEQCAAQQJJIApCAFJyIQMgCkKAgICAgICACIQgCiAAGyIJQgKGIQogCUIBgyEPAkACQAJAIABBtQhrQcx3IAAbIgBBAEgEQCACQZACakHQwcAAIAAgAEGFolNsQRR2IABBf0drIgBqIgdBBHQiBGspAwAiCSAKQgKEIgsQngEgAkGAAmpB2MHAACAEaykDACINIAsQngEgAkHwAWogAikDmAIiCyACKQOAAnwiDCACKQOIAiALIAxWrXwgACAHQbHZtR9sQRN2a0H8AGpB/wBxQcAAcyIEELsBIAJBsAFqIAkgCiADQX9zrHwiCxCeASACQaABaiANIAsQngEgAkGQAWogAikDuAEiCyACKQOgAXwiDCACKQOoASALIAxWrXwgBBC7ASACQeABaiAJIAoQngEgAkHQAWogDSAKEJ4BIAJBwAFqIAIpA+gBIgkgAikD0AF8Ig0gAikD2AEgCSANVq18IAQQuwEgAikDwAEhCyACKQOQASEJIAIpA/ABIQwg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QYABcjoAAEEAIQMMBAsgAigCCCIDIAIoAgBGBEAgAkHgmMEAEJQBCyACIANBAWo2AgggAigCBCADaiAGOgAAQQAhAwwDCyAGIAMgA0GcqsEAEM8BAAsgBEEUNgIUIAEgBEEUahCwASEDDAELIAggAyADQZyqwQAQzwEACyAEQSBqJAAgA0UNDgwNCyACKAIAIANGBEAgAkHgl8EAEJQBIAIoAgQhBQsgAiADQQFqNgIIIAMgBWpBIjoAAAwLCyACKAIAIANGBEAgAkHwl8EAEJQBIAIoAgQhBQsgAiADQQFqNgIIIAMgBWpB3AA6AAAMCgsgAigCACADRgRAIAJBgJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQS86AAAMCQsgAigCACADRgRAIAJBkJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQg6AAAMCAsgAigCACADRgRAIAJBoJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQw6AAAMBwsgAigCACADRgRAIAJBsJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQo6AAAMBgsgAigCACADRgRAIAJBwJjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQ06AAAMBQsgAigCACADRgRAIAJB0JjBABCUASACKAIEIQULIAIgA0EBajYCCCADIAVqQQk6AAAMBAsgAyAEIAZBsKHBABDPAQALIAcoAgwhAwwDCyAHQQQ2AhQgACABIAdBFGoQpAEMBgsgBCAGQYChwQAQsQEACwwBCwsgAEECNgIAIAAgAzYCBAwCCyAAIAM2AgggACABNgIEIABBADYCAAwBCyAAIAM2AgggACABNgIEIABBATYCAAsgB0EgaiQAC68QAwd/An4BeyMAQSBrIgUkAAJAAkAgACgCACICRQRAIAAoAhAiAEUNASAAQbu3wABBARBEIQIMAgsCQAJAAkACQAJAAkACQCAAKAIIIgQgACgCBCIGTwRAIAAoAhAiAkUNASACQZK3wABBEBBERQ0BDAcLIAAgBEEBaiIBNgIIIAVBCGogAiAEai0AACIDEM0BIAUoAggiBwRAIAAoAhAiAEUNCCAAIAcgBSgCDBBEIQIMCQsgACAAKAIMQQFqIgc2AgwgB0H1A08EQCAAKAIQIgIEQCACQaK3wABBGRBEDQgLIABBAToABAwGCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIANBwQBrDhcCBg8FDwQPDw8PDw8PDwEBAAACAw8PBw8LIAAoAhAiBARAQQEhAiAEQdS3wABBARBEDRUgACgCACICRQ0JIAAoAgQhBiAAKAIIIQELIAEgBk8NCCABIAJqLQAAQcwARw0IIAAgAUEBajYCCCAFQRBqIAAQYyAFLQAQRQ0HIAUtABEhASAAKAIQIgMEQEEBIQIgA0Git8AAQZK3wAAgAUEBcSIDG0EZQRAgAxsQRA0VCyAAIAE6AAQMEQsgACgCECIBBEBBASECIAFB2rfAAEEBEEQNFAsgA0HQAEcNCCAAKAIQIgJFDQkgAkHbt8AAQQYQRA0RDAkLIAAoAhAiAQRAQQEhAiABQZC3wABBARBEDRMLQQEhAiAAECkNEiADQcEARgRAIAAoAhAiAQRAIAFB4bfAAEECEEQNFAsgAEEBECANEwsgACgCECIBRQ0OIAFBkbfAAEEBEEQNEgwOCyAAKAIQIgEEQEEBIQIgAUHjt8AAQQEQRA0SCyAFIAAQmQFBASECIAUoAgBBAXENESAFKAIEQQFGBEAgACgCECIBRQ0OIAFB5LfAAEEBEEQNEgsgACgCECIBRQ0NIAFB/9fBAEEBEEQNEQwNC0EAIQIjAEEQayIBJAACQAJAAkACQCAAKAIARQRAIAAoAhAiAw0BDAQLIAEgAEHHABCVASABLQAAQQFGBEAgAS0AASEDIAAoAhAiBARAQQEhAiAEQaK3wABBkrfAACADQQFxIgQbQRlBECAEGxBEDQULIAAgAzoABEEAIQIgAEEANgIADAQLIAAoAhAiAgRAIAEpAwgiCVANAyACQaG5wABBBBBEDQIDQCAIIAlRBEAgACgCECIDRQ0FQQEhAiADQaW5wABBAhBERQ0FDAYLAkAgCFANACAAKAIQIgJFDQAgAkH3lcEAQQIQRA0EC0EBIQIgACAAKAIUQQFqNgIUIAhCAXwhCCAAQgEQjgFFDQALDAQLIAAQNyECDAMLIANBu7fAAEEBEEQhAgwCC0EBIQIMAQsgABA3IQIgACAAKAIUIAmnazYCFAsgAUEQaiQAIAINDgwMCyAAKAIQIgIEQCACQeW3wABBBBBEDQ4LQQEhAkEAIQEjAEEQayIDJAACQAJAAkACQCAAKAIARQRAIAAoAhAiBA0BDAQLIAMgAEHHABCVASADLQAAQQFGBEAgAy0AASEEIAAoAhAiBgRAQQEhASAGQaK3wABBkrfAACAEQQFxIgYbQRlBECAGGxBEDQULIAAgBDoABEEAIQEgAEEANgIADAQLIAAoAhAiAQRAIAMpAwgiCVANAyABQaG5wABBBBBEDQIDQCAIIAlRBEAgACgCECIERQ0FQQEhASAEQaW5wABBAhBERQ0FDAYLAkAgCFANACAAKAIQIgFFDQAgAUH3lcEAQQIQRA0EC0EBIQEgACAAKAIUQQFqNgIUIAhCAXwhCCAAQgEQjgFFDQALDAQLIAAQVCEBDAMLIARBu7fAAEEBEEQhAQwCC0EBIQEMAQsgABBUIQEgACAAKAIUIAmnazYCFAsgA0EQaiQAIAENDyAAKAIAIgNFDQYgACgCCCIBIAAoAgRPDQYgASADai0AAEHMAEcNBiAAIAFBAWo2AgggBUEQaiAAEGMgBS0AEEUNCCAFLQARIQEgACgCECIDBEAgA0Git8AAQZK3wAAgAUEBcSIDG0EZQRAgAxsQRA0QCyAAIAE6AAQMDAsjAEEgayICJAACQAJAIAAoAgBFBEAgACgCECIBRQ0BIAFBu7fAAEEBEEQhAQwCCyACIAAQmAEgAigCAEUEQCAAKAIQIgMEQEEBIQEgA0Git8AAQZK3wAAgAi0ABEEBcSIDG0EZQRAgAxsQRA0DCyAAIAL9AAIA/QsCAAwBCyAAKAIQRQ0AIAD9AAIAIQogACAC/QACAP0LAgAgAiAK/QsDECAAECkhASAAIAL9AAMQ/QsCAAwBC0EAIQELIAJBIGokACABDQwMCgtBASECIAAQKQ0NIAAoAhAiAQRAIAFB7LfAAEEEEEQNDgsgABBbDQ0MCQsgBSkDGCIIUA0AIAAgCBCOAQ0KIAAoAhAiAUUNAEEBIQIgAUHVt8AAQQEQRA0MCyADQdIARg0GIAAoAhAiAkUNBiACQda3wABBBBBEDQkMBgsgACgCECICRQ0AIAJB1rfAAEEEEEQNCAsgABApDQcMBQsgACgCECIBRQ0AIAFBkrfAAEEQEEQNCAtBACECIABBADoABCAAQQA2AgAMBwsgBSkDGCIIUA0CIAAoAhAiAgRAIAJB6bfAAEEDEEQNBQsgACAIEI4BDQQMAgsgACAENgIIIABBABAfDQMMAQsgABApDQILQQAhAiAAKAIARQ0DIAAgACgCDEEBazYCDAwDC0EAIQIgAEEANgIADAILQQEhAgwBC0EAIQILIAVBIGokACACC6MIAhN/An4jAEGQBGsiByQAIAdBDGpBAEGABPwLAAJAIAAoAgwiEUUEQCABKAIAIAAoAgAgACgCBCABKAIEKAIMEQAAIQAMAQsgACgCACEOIAAoAggiDy0AACEKAkACQCAAKAIEIhBFDQAgDiAQaiELIAdBDGohAiAOIQADQAJ/IAAsAAAiBkEATgRAIAZB/wFxIQQgAEEBagwBCyAALQABQT9xIQUgBkEfcSEEIAZBX00EQCAEQQZ0IAVyIQQgAEECagwBCyAALQACQT9xIAVBBnRyIQUgBkFwSQRAIAUgBEEMdHIhBCAAQQNqDAELIARBEnRBgIDwAHEgAC0AA0E/cSAFQQZ0cnIiBEGAgMQARg0CIABBBGoLIQAgA0GAAUYNAiACIAQ2AgAgAkEEaiECIANBAWohAyAAIAtHDQALCyAPIBFqIRIgA0ECdCIAQQRqIQwgACAHakEIaiELQbwFIRNByAAhFCAPIQRBgAEhDQNAIARBAWohBEEAIQJBJCEAQQEhCUEBIQZBACEFA0ACQCACQQFxBEAgBCASRg0EIAQtAAAhAiAEQQFqIQQMAQsgCiECIAlBAXFFDQMLIAJB4QBrIglB/wFxQRpPBEAgAkEwa0H/AXFBCUsNAyACQRZrIQkLIAatIhYgCUH/AXEiBq1+IhVCIIinDQIgFaciAiAFaiIFIAJJDQIgBkEaQQEgACAUayICQQAgACACTxsiAiACQQFNGyICIAJBGk8bIgJPBEAgAEEkaiEAIBZBJCACa61+IhWnIQZBACEJQQEhAiAVQiCIUA0BDAMLCyAFIAhqIgYgBUkNASAGIANBAWoiAm4iCiANaiINIApJIA1BgLADc0GAgMQAa0GAkLx/SXIgA0H/AEtyDQEgCyEAAkAgBiACIApsayIIIANPBEAgCEGAAUkNASAIQYABQcC2wAAQsQEACwNAIABBBGogACgCADYCACAAQQRrIQAgA0EBayIDIAhLDQALCyAHQQxqIAhBAnRqIA02AgAgBCASRwRAIAQtAAAhCkEAIQMCQCAFIBNuIgAgAm4gAGoiAEHIA0kEQCAAIQUMAQsDQCADQSRqIQMgAEHX/ABLIABBI24iBSEADQALCyAIQQFqIQggAyAFQSRsQfz/A3EgBUEmakH//wNxbmohFCALQQRqIQsgDEEEaiEMQQIhEyACIQMMAQsLIAdBDGohAwNAIAcgAygCADYCjAQgB0GMBGogARB7IgANAiADQQRqIQMgDEEEayIMDQALDAELQQEhACABKAIAIgJB7LzAAEEJIAEoAgQoAgwiAREAAA0AIBAEQCACIA4gECABEQAADQEgAkGSuMAAQQEgAREAAA0BCyACIA8gESABEQAADQAgAkHNt8AAQQEgAREAACEACyAHQZAEaiQAIAAL/gcCE38BfgJAAkACQAJAIAEoAgBBAUYEQCABKAIcIgUgASgCNCIERwRAIAEoAjAhCyAEIQMgBSABKAI8IghBAWsiEGoiAiAETw0CIAEoAjghDSAFIAtqIREgBSAIaiEGIAEoAhgiAyAFaiEOIAggA2shEiAFIAEoAhAiDGtBAWohEyABKQMIIRUgASgCJCIPQX9GIQkgDyEHIAUhAwNAIAMgBUcNAwJAAkAgFSACIAtqMQAAiKdBAXFFBEAgASAGNgIcIAYhAyAJDQJBACECDAELIAwgByAMIAcgDEsbIAkbIgogCCAIIApJGyEUIAohAwJAAkACQANAIAMiAiAURgRAQQAgByAJGyEKIAwhAgNAIAIgCk0EQCABIAY2AhwgD0F/RwRAIAFBADYCJAsgACAGNgIIIAAgBTYCBCAAQQA2AgAPCyACQQFrIgIgCE8NBSACIAVqIgMgBE8NAyACIA1qLQAAIAMgC2otAABGDQALIAEgDjYCHCASIQIgDiEDIAlFDQUMBgsgAiAFaiAETw0CIAJBAWohAyACIA1qLQAAIAIgEWotAABGDQALIAIgE2ohAyAJDQRBACECDAMLIAMgBEGUu8AAELEBAAsgBCAFIApqIgAgACAESRsgBEGku8AAELEBAAsgAiAIQYS7wAAQsQEACyABIAI2AiQgAiEHCyADIBBqIgIgBEkNAAsgBCEDDAMLIABBAjYCAA8LAkAgAS0ADkUEQCABIAEtAAwiBUEBczoADCABKAI0IQIgASgCMCEEIAEoAgQiA0UNAQJAIAIgA00EQCACIANHDQEMAwsgAyAEaiwAAEG/f0oNAgsgBCACIAMgAkHkv8AAEJACAAsgAEECNgIADwsCQAJAIAIgA0cEQAJ/IAMgBGoiBCwAACICQQBOBEAgAkH/AXEMAQsgBC0AAUE/cSEGIAJBH3EhByAHQQZ0IAZyIAJBX00NABogBC0AAkE/cSAGQQZ0ciEGIAYgB0EMdHIgAkFwSQ0AGiAHQRJ0QYCA8ABxIAQtAANBP3EgBkEGdHJyCyEEQQEhAiAFQQFxRQ0BDAILIAVBAXENASAAQQI2AgAgAUEBOgAODwsCQCAEQYABSQ0AQQIhAiAEQYAQSQ0AQQNBBCAEQYCABEkbIQILIAAgAzYCBCAAQQE2AgAgACACIANqIgA2AgggASAANgIEDwsgACADNgIIIAAgAzYCBCAAQQA2AgAPCyADRQ0BCyADIQIDQAJAIAIgBE8EQCACIARGDQQMAQsgAiALaiwAAEG/f0wNACACIQQMAwsgAkEBaiICDQALC0EAIQQLIAAgBDYCCCAAIAU2AgQgAEEBNgIAIAEgAyAEIAMgBEsbNgIcC7QKAgN8A38jAEEQayIFJAAgALshAQJAIAC8IgZB/////wdxIgRB25+k+gNPBEAgBEHSp+2DBE8EQCAEQdbjiIcETwRAAkACQAJAAkAgBEH////7B00EQCAFQgA3AwgCQCAEQdqfpO4ETQRAIAEgAUSDyMltMF/kP6JEAAAAAAAAOEOgRAAAAAAAADjDoCICRAAAAFD7Ifm/oqAgAkRjYhphtBBRvqKgIQEgAvwCIQQMAQsgBSAEIARBF3ZBlgFrIgRBF3Rrvrs5AwAgBSAFQQhqIAQQGSEEIAZBAE4EQCAFKwMIIQEMAQtBACAEayEEIAUrAwiaIQELIARBA3FBAWsOAwMEAQILIAAgAJMhAAwHCyABIAGiIgFEgV4M/f//37+iRAAAAAAAAPA/oCABIAGiIgJEQjoF4VNVpT+ioCABIAKiIAFEaVDu4EKT+T6iRCceD+iHwFa/oKKgtowhAAwGCyABIAEgAaIiAqIiAyACIAKioiACRKdGO4yHzcY+okR058ri+QAqv6CiIAEgAyACRLL7bokQEYE/okR3rMtUVVXFv6CioKC2IQAMBQsgASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLYhAAwECyABIAGiIgIgAZqiIgMgAiACoqIgAkSnRjuMh83GPqJEdOfK4vkAKr+goiADIAJEsvtuiRARgT+iRHesy1RVVcW/oKIgAaGgtiEADAMLIARB4Nu/hQRPBEBEGC1EVPshGcBEGC1EVPshGUAgBkEAThsgAaAiAiACIAKiIgGiIgMgASABoqIgAUSnRjuMh83GPqJEdOfK4vkAKr+goiACIAMgAUSy+26JEBGBP6JEd6zLVFVVxb+goqCgtiEADAMLIAZBAE4EQCABRNIhM3982RLAoCIBIAGiIgFEgV4M/f//37+iRAAAAAAAAPA/oCABIAGiIgJEQjoF4VNVpT+ioCABIAKiIAFEaVDu4EKT+T6iRCceD+iHwFa/oKKgtowhAAwDCyABRNIhM3982RJAoCIBIAGiIgFEgV4M/f//37+iRAAAAAAAAPA/oCABIAGiIgJEQjoF4VNVpT+ioCABIAKiIAFEaVDu4EKT+T6iRCceD+iHwFa/oKKgtiEADAILIARB5JfbgARPBEBEGC1EVPshCcBEGC1EVPshCUAgBkEAThsgAaAiAiACoiIBIAKaoiIDIAEgAaKiIAFEp0Y7jIfNxj6iRHTnyuL5ACq/oKIgAyABRLL7bokQEYE/okR3rMtUVVXFv6CiIAKhoLYhAAwCCyAGQQBOBEAgAUQYLURU+yH5v6AiASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLYhAAwCCyABRBgtRFT7Ifk/oCIBIAGiIgFEgV4M/f//37+iRAAAAAAAAPA/oCABIAGiIgJEQjoF4VNVpT+ioCABIAKiIAFEaVDu4EKT+T6iRCceD+iHwFa/oKKgtowhAAwBCyAEQYCAgMwDTwRAIAEgAaIiAiABoiIDIAIgAqKiIAJEp0Y7jIfNxj6iRHTnyuL5ACq/oKIgAyACRLL7bokQEYE/okR3rMtUVVXFv6CiIAGgoLYhAAwBCyAFIABDAACAA5QgAEMAAIB7kiAEQYCAgARJGzgCCCAFKgIIGgsgBUEQaiQAIAALjAoCA3wDfyMAQRBrIgUkACAAuyEBAn0CQAJAIAC8IgZB/////wdxIgRB25+k+gNPBEAgBEHSp+2DBE8EQCAEQdbjiIcETwRAAkACQAJAAkAgBEH////7B00EQCAFQgA3AwgCQCAEQdqfpO4ETQRAIAEgAUSDyMltMF/kP6JEAAAAAAAAOEOgRAAAAAAAADjDoCICRAAAAFD7Ifm/oqAgAkRjYhphtBBRvqKgIQEgAvwCIQQMAQsgBSAEIARBF3ZBlgFrIgRBF3Rrvrs5AwAgBSAFQQhqIAQQGSEEIAZBAE4EQCAFKwMIIQEMAQtBACAEayEEIAUrAwiaIQELIARBA3FBAWsOAwMEAQILIAAgAJMMCQsgASABIAGiIgKiIgMgAiACoqIgAkSnRjuMh83GPqJEdOfK4vkAKr+goiABIAMgAkSy+26JEBGBP6JEd6zLVFVVxb+goqCgtgwICyABIAGiIgFEgV4M/f//37+iRAAAAAAAAPA/oCABIAGiIgJEQjoF4VNVpT+ioCABIAKiIAFEaVDu4EKT+T6iRCceD+iHwFa/oKKgtgwHCyABIAGiIgIgAZqiIgMgAiACoqIgAkSnRjuMh83GPqJEdOfK4vkAKr+goiADIAJEsvtuiRARgT+iRHesy1RVVcW/oKIgAaGgtgwGCyABIAGiIgFEgV4M/f//37+iRAAAAAAAAPA/oCABIAGiIgJEQjoF4VNVpT+ioCABIAKiIAFEaVDu4EKT+T6iRCceD+iHwFa/oKKgtowMBQsgBEHf27+FBEsNAiAGQQBOBEAgAUTSITN/fNkSwKAiAiACIAKiIgGiIgMgASABoqIgAUSnRjuMh83GPqJEdOfK4vkAKr+goiACIAMgAUSy+26JEBGBP6JEd6zLVFVVxb+goqCgtgwFC0TSITN/fNkSwCABoSICIAIgAqIiAaIiAyABIAGioiABRKdGO4yHzcY+okR058ri+QAqv6CiIAIgAyABRLL7bokQEYE/okR3rMtUVVXFv6CioKC2DAQLIARB45fbgARLDQIgBkEATgRARBgtRFT7Ifk/IAGhIgIgAiACoiIBoiIDIAEgAaKiIAFEp0Y7jIfNxj6iRHTnyuL5ACq/oKIgAiADIAFEsvtuiRARgT+iRHesy1RVVcW/oKKgoLYMBAsgAUQYLURU+yH5P6AiAiACIAKiIgGiIgMgASABoqIgAUSnRjuMh83GPqJEdOfK4vkAKr+goiACIAMgAUSy+26JEBGBP6JEd6zLVFVVxb+goqCgtgwDCyAEQYCAgMwDTwRAIAEgAaIiAUSBXgz9///fv6JEAAAAAAAA8D+gIAEgAaIiAkRCOgXhU1WlP6KgIAEgAqIgAURpUO7gQpP5PqJEJx4P6IfAVr+goqC2DAMLIAUgAEMAAIB7kjgCCCAFKgIIGkMAAIA/DAILRBgtRFT7IRnARBgtRFT7IRlAIAZBAE4bIAGgIgEgAaIiAUSBXgz9///fv6JEAAAAAAAA8D+gIAEgAaIiAkRCOgXhU1WlP6KgIAEgAqIgAURpUO7gQpP5PqJEJx4P6IfAVr+goqC2DAELRBgtRFT7IQnARBgtRFT7IQlAIAZBAE4bIAGgIgEgAaIiAUSBXgz9///fv6JEAAAAAAAA8D+gIAEgAaIiAkRCOgXhU1WlP6KgIAEgAqIgAURpUO7gQpP5PqJEJx4P6IfAVr+goqC2jAsgBUEQaiQAC8QIAQV/IABBCGsiASAAQQRrKAIAIgNBeHEiAGohAgJAAkAgA0EBcQ0AIANBAnFFDQEgASgCACIDIABqIQAgASADayIBQZzmwQAoAgBGBEAgAigCBEEDcUEDRw0BQZTmwQAgADYCACACIAIoAgRBfnE2AgQgASAAQQFyNgIEIAIgADYCAA8LIAEgAxBiCwJAAkACQAJAAkACQAJAIAIoAgQiA0ECcUUEQCACQaDmwQAoAgBGDQIgAkGc5sEAKAIARg0DIAIgA0F4cSICEGIgASAAIAJqIgBBAXI2AgQgACABaiAANgIAIAFBnObBACgCAEcNAUGU5sEAIAA2AgAPCyACIANBfnE2AgQgASAAQQFyNgIEIAAgAWogADYCAAsgAEGAAkkNAkEfIQIgAUIANwIQIABB////B00EQCAAQSYgAEEIdmciAmt2QQFxIAJBAXRrQT5qIQILIAEgAjYCHCACQQJ0QfTiwQBqIQNBASACdCIEQZDmwQAoAgBxDQMgAyABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIQZDmwQBBkObBACgCACAEcjYCAAwEC0Gg5sEAIAE2AgBBmObBAEGY5sEAKAIAIABqIgA2AgAgASAAQQFyNgIEQZzmwQAoAgAgAUYEQEGU5sEAQQA2AgBBnObBAEEANgIACyAAQazmwQAoAgAiAk0NBUGg5sEAKAIAIgBFDQVBmObBACgCACIDQSlJDQRB9OPBACEBA0AgACABKAIAIgVPBEAgACAFIAEoAgRqSQ0GCyABKAIIIQEMAAsAC0Gc5sEAIAE2AgBBlObBAEGU5sEAKAIAIABqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAA8LAn9BjObBACgCACICQQEgAEEDdnQiA3FFBEBBjObBACACIANyNgIAIABB+AFxQYTkwQBqIgAMAQsgAEH4AXEiAkGE5MEAaiEAIAJBjOTBAGooAgALIQIgACABNgIIIAIgATYCDCABIAA2AgwgASACNgIIDwsCQAJAIAAgAygCACIDKAIEQXhxRgRAIAMhAgwBCyAAQRkgAkEBdmtBACACQR9HG3QhBANAIAMgBEEddkEEcWoiBSgCECICRQ0CIARBAXQhBCACIQMgAigCBEF4cSAARw0ACwsgAigCCCIAIAE2AgwgAiABNgIIIAFBADYCGCABIAI2AgwgASAANgIIDAELIAVBEGogATYCACABIAM2AhggASABNgIMIAEgATYCCAtBACEBQbTmwQBBtObBACgCAEEBayIANgIAIAANAUH848EAKAIAIgAEQANAIAFBAWohASAAKAIIIgANAAsLQbTmwQBB/x8gASABQf8fTRs2AgAPC0H848EAKAIAIgEEQANAIARBAWohBCABKAIIIgENAAsLQbTmwQBB/x8gBCAEQf8fTRs2AgAgAiADTw0AQazmwQBBfzYCAAsL2AkBBH8jAEFAaiICJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgBBAWsOGAECAwQFBgcICQoLDA0ODxAREhMUFRYXGAALIAEoAgAgACgCBCAAKAIIIAEoAgQoAgwRAAAhAQwYCwJAAkACQAJAIAAtAARBAWsOAwECAwALIAIgACgCCDYCBEEUEBgiAEUNGyAAQRBqQc3UwQAoAAA2AAAgAEG91MEA/QAAAP0LAAAgAkEUNgIQIAIgADYCDCACQRQ2AgggAiACQQRqrUKAgICAgAeENwMgIAIgAkEIaq1CgICAgJAHhDcDGCABKAIAIAEoAgQgAkICNwI0IAJBAzYCLCACQYDYwQA2AiggAiACQRhqNgIwIAJBKGoQSSEBIAIoAggiAEUNGiACKAIMIgRBBGsoAgAiA0F4cSIFQQRBCCADQQNxIgMbIABqSQ0cIANBACAFIABBJ2pLGw0dIAQQLgwaCyACIAAtAAVBAnQiACgC+NxB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/AoAAAsgACACIANqNgIIQQALUAEBfyMAQRBrIgIkACACQQhqIAEgASgCACgCBBECACACIAIoAgggAigCDCgCGBECACACKAIEIQEgACACKAIANgIAIAAgATYCBCACQRBqJAALTwECfyAAKAIEIQIgACgCACEDAkAgACgCCCIALQAARQ0AIANBurPAAEEEIAIoAgwRAABFDQBBAQ8LIAAgAUEKRjoAACADIAEgAigCEBEBAAtKAQJ/IAAgACgCBCIDIAJrNgIEIAAgACgCACACIANLciIENgIAQQEhAyAEBH8gAwUgACgCCCIAKAIAIAEgAiAAKAIEKAIMEQAACwtIAQF/AkAgAUHhAGsiAUH/AXFBGUsEQEEAIQEMAQsgAUECdEH8B3EiAigCwNtBIQEgAigC2NpBIQILIAAgAjYCBCAAIAE2AgALQgEBfyMAQSBrIgMkACADQQA2AhAgA0EBNgIEIANCBDcCCCADIAE2AhwgAyAANgIYIAMgA0EYajYCACADIAIQ2QEAC8kCAAJAIAAgAk0EQCAAIAFNIAEgAktyDQEjAEEwayICJAAgAiABNgIEIAIgADYCACACQQI2AgwgAkG0pMAANgIIIAJCAjcCFCACIAJBBGqtQoCAgIAQhDcDKCACIAKtQoCAgIAQhDcDICACIAJBIGo2AhAgAkEIaiADENkBAAsjAEEwayIBJAAgASACNgIEIAEgADYCACABQQI2AgwgAUHgo8AANgIIIAFCAjcCFCABIAFBBGqtQoCAgIAQhDcDKCABIAGtQoCAgIAQhDcDICABIAFBIGo2AhAgAUEIaiADENkBAAsjAEEwayIAJAAgACACNgIEIAAgATYCACAAQQI2AgwgAEGApMAANgIIIABCAjcCFCAAIABBBGqtQoCAgIAQhDcDKCAAIACtQoCAgIAQhDcDICAAIABBIGo2AhAgAEEIaiADENkBAAs3AAJ/IARBAXEEQCAFuxCOAgwBC0GBCEGACCABLQAAGwshBCACIANBBhBLIAQQ6gEgAEEANgIACzgBAX8jAEEQayICJAAgAkEIaiAAIAAoAgAoAgQRAgAgAigCCCABIAIoAgwoAhARAQAgAkEQaiQACzgAAkAgAkGAgMQARg0AIAAgAiABKAIQEQEARQ0AQQEPCyADRQRAQQAPCyAAIAMgBCABKAIMEQAACzwBAn8gASgCBCECIAEoAgAhA0EIEBgiAUUEQAALIAEgAjYCBCABIAM2AgAgAEGI2cEANgIEIAAgATYCAAs5AQF/IwBBEGsiAyQAIAMgATYCDCADIAA2AgggA0EIakHEscAAIANBDGpBxLHAACACQai0wAAQbwALNwEBfyMAQSBrIgEkACABQQA2AhggAUEBNgIMIAFBxJXAADYCCCABQgQ3AhAgAUEIaiAAENkBAAuUBQIHfwF7EGUiEiAKJgECfyMAQdAAayIOJAAgDkKAgICAwAA3AgQgDkEANgIMIA4gDUEARzoALCAOQYCAgPwDNgIoIA5CgICA/IOAgMA/NwIgIA4gDDgCHCAOIAs4AhggDkKAgICAgICAwD83AhBBrOLBACgCAEUEQBBNCwJAAkACQAJAQbDiwQAoAgBFBEBBsOLBAEF/NgIAAn8gCUUEQEEAIQ1BBAwBC0G84sEAKAIAIRFBuOLBACgCACETIAP9EyAE/SABIRVBACENA0AgEiUBIA1BAnQgDUGAgAQgCSANayIPIA9BgIAETxsiD2oiDUECdBAHIQoQZSIQIAomASAPQQJ0Ig8gEUsNAyAOIBAlARAIIhQ2AjAgDiAPNgI0IA8gFEcNBiATIA8gECUBEAkgDiACOAJAIA4gATgCPCAOIAA4AjggEyAPIA5BBGogDkE4aiAVIAUgBiAHIAggDkEQahAkIBBBhAhPBEAgEBC3AQsgCSANSw0AC0Gw4sEAKAIAQQFqIQ8gDigCDCENIA4oAggLIQlBsOLBACAPNgIAIA0QCiEKEGUiDyAKJgEgDyUBEAshECAOIA02AjQgDiAQNgIwIA0gEEcNBCAPJQEgCSANEAwgDigCBCINBEAgCUEEaygCACIQQXhxIhEgDUECdCINQQRBCCAQQQNxIhAbakkNAyAQQQAgESANQSdqSxsNBCAJEC4LIBJBhAhPBEAgEhC3AQsgDkHQAGokACAPDAULQfCSwAAQqwIAC0EAIA8gEUH4k8AAEM8BAAtBqNnBAEEuQdjZwQAQzgEAC0Ho2cEAQS5BmNrBABDOAQALIA5BADYCOCAOQTBqIA5BNGogDkE4ahDUAQALIgklASAJELcBC8ECAQR/IwBBEGsiASQAQdjiwQAtAABBA0cEQCABQQE6AA8gAUEPaiECIwBBIGsiACQAAkACQAJAAkACQAJAAkACQAJAQdjiwQAtAABBAWsOAwQDAQALQdjiwQBBAjoAACACLQAAIAJBADoAAEUNBEHE5sEAKAIAQf////8HcQRAQbzmwQAoAgANBgtByObBACgCAA0BQdjiwQBBAzoAAEHM5sEAQQE2AgALIABBIGokAAwGCwALIABBADYCGCAAQQE2AgwgAEGM1cEANgIIDAMLIABBADYCGCAAQQE2AgwgAEGsgMAANgIIDAILQeCSwAAQngIACyAAQQA2AhggAEEBNgIMIABBvNfBADYCCCAAQgQ3AhAgAEEIakHE18EAENkBAAsgAEIENwIQIABBCGpBqJPAABDZAQALCyABQRBqJAALLQACQCADaUEBRyABQYCAgIB4IANrS3JFBEAgACABIAMgAhA0IgANAQsACyAAC/wBAgJ/AX4jAEEQayICJAAgAkEBOwEMIAIgATYCCCACIAA2AgQjAEEQayIBJAAgAkEEaiIAKQIAIQQgASAANgIMIAEgBDcCBCMAQRBrIgAkACABQQRqIgEoAgAiAigCDCEDAkACQAJAAkAgAigCBA4CAAECCyADDQFBASECQQAhAwwCCyADDQAgAigCACICKAIEIQMgAigCACECDAELIABBgICAgHg2AgAgACABNgIMIABB7NbBACABKAIEIAEoAggiAC0ACCAALQAJEJIBAAsgACADNgIEIAAgAjYCACAAQdDWwQAgASgCBCABKAIIIgAtAAggAC0ACRCSAQALqQICAX8BbwJ/IwBBMGsiDSQAQaziwQAoAgBFBEAQTQsCQEGw4sEAKAIARQRAQbDiwQBBfzYCAEHU4sEAQQA2AgAgDSAMQQBHOgAgIA1BgICA/AM2AhwgDUKAgID8g4CAwD83AhQgDSALOAIQIA0gCjgCDCANQoCAgICAgIDAPzcCBCAJQQJ0IglBvOLBACgCACIMSw0BQbjiwQAoAgAgDSACOAIsIA0gATgCKCANIAA4AiQgCUHM4sEAIA1BJGogA/0TIAT9IAEgBSAGIAcgCCANQQRqECRB0OLBACgCAEHU4sEAKAIAEO8BQbDiwQBBsOLBACgCAEEBajYCACANQTBqJAAMAgtB8JLAABCrAgALQQAgCSAMQeiTwAAQzwEACyIJJQEgCRC3AQvUVQMefwR+AXwjAEEQayIaJAAQZSIbIAAmASMAQYAIayIBJAACQAJAAkACQAJA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CyABQZ+4wABBBBBECx4AIABFBEAQrwIACyAAIAIgAyAEIAUgASgCEBERAAscACAARQRAEK8CAAsgACACIAMgBCABKAIQEQsACxwAIABFBEAQrwIACyAAIAIgAyAEIAEoAhARBwALHAAgAEUEQBCvAgALIAAgAiADIAQgASgCEBEyAAscACAARQRAEK8CAAsgACACIAMgBCABKAIQETMACxwAIABFBEAQrwIACyAAIAIgAyAEIAEoAhARNAALGgAgAEUEQBCvAgALIAAgAiADIAEoAhARAwALGgAgAEUEQBCvAgALIAAgAiADIAEoAhARAAALFAAgASABIAAgACABXRsgACAAXBsLHAEBbyAAJQEgASUBIAEQtwEgAiUBIAIQtwEQAgsYACAARQRAEK8CAAsgACACIAEoAhARAQALHAAgASgCACAAKAIAIAAoAgQgASgCBCgCDBEAAAsfAEG55sEALQAARQRAQbnmwQBBAToAAAsgAEEBNgIACxcAIAAoAgAgASAAKAIEQQxqKAIAEQEACxYBAW8gACABEBQhAhBlIgAgAiYBIAALFgEBbyAAIAEQFSECEGUiACACJgEgAAsWAQFvIAAgARAWIQIQZSIAIAImASAACxkAIAEoAgBBkKTBAEEFIAEoAgQoAgwRAAALDgAgAARAAAsgARDVAQALEwAgASgCBBogAEHclcAAIAEQSQsQACACKAIEGiAAIAEgAhBJCxMAIAEoAgQaIABB8JfAACABEEkLEwAgASgCBBogAEH0lcAAIAEQSQsTACABKAIEGiAAQZSYwAAgARBJCxMAIAEoAgQaIABB4J7AACABEEkLEwAgASgCBBogAEHMv8AAIAEQSQsZACABKAIAQbG9wABBEiABKAIEKAIMEQAACxUAIAEgACgCACIAKAIAIAAoAgQQRAsTACABKAIEGiAAQeCiwQAgARBJCxYAIABBgMjBADYCBCAAIAFBHGo2AgALFgAgAEHEx8EANgIEIAAgAUEcajYCAAsQACAAQQRqED4gAEEcahBdCxkAIAEoAgBB0pfBAEEIIAEoAgQoAgwRAAALGQAgASgCAEGTlcEAQQMgASgCBCgCDBEAAAsZACABKAIAQcjDwQBBFyABKAIEKAIMEQAACxkAIAEoAgBB1MLBAEEUIAEoAgQoAgwRAAALGQAgASgCAEGsw8EAQQog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EGsiASQAIAFB3ZLAADYCDCABIABBB2o2AgggAUEIakHU18EAIAFBDGpB1NfBACAAQQhqQbzVwQAQbwALIwBBIGsiACQAIABBADYCGCAAQQE2AgwgAEGc1sEANgIIIABCBDcCECAAQQhqQaTWwQAQ2QEAC0Hc1cEAEJ4CAAsgAEEANgIYIABBATYCDCAAQYzVwQA2AgggAEIENwIQIABBCGpBzNXBABDZAQALQbjmwQBBADoAACAEQQM6AAALIABBIGokACAJKAIMIQMgAigCUEGAgIAEcSIEDQELIAMgCSgCECIASQ0CIAMgAGshAyAJKAIIIABBDGxqDAELIAkoAggLIQ8gAkGAgICAeDYCWCACQcjOwQApAwAiHzcCXCACIARBF3YiADoAZCACIAA6AHggAkEANgJ0IAJB0NjBADYCcCACIAJByABqNgJoIAIgAkHYAGo2AmwgA0UEQCAfpyEDIB9CIIinDAgLIA8gA0EMbGohGCACQZgBaiEVIAJBlwFqIRkDQAJAIA8oAggiAEUEQCACQQA2AogBIAIgAkHoAGo2AoQBIAJBAzYCkAEgAkECNgLQASACQYQBaiACQZABaiACQdABakEAIAJBACACECUgAigChAEiASABKAIMQQFqNgIMRQ0BDA4LIA8oAgQiCSAAQSxsaiEaA0AgAkEANgKAASACIAJB6ABqNgJ8AkACQAJAAkAgCSgCIEGAgICAeEcEQCACQZABaiIAIAkoAiQiGyAJKAIoIhwQQUECIRcgAigCkAENAyAAIAIoApQBIgggAigCmAEiAUHMusAAQQYQIQJAAkAgAigCkAEEQCACKALMASEAIAIoAsgBIQQgAigCxAEhBiACKALAASEDIAIoArQBQX9GDQEgAkGEAWogFSADIAYgBCAAQQAQVgwCCwNAIAJB0AFqIAJBkAFqECsgAigC0AEiAEEBRg0ACwJAAkAgAEEBaw4CGQEACyACIAIpAtQBNwKIASACQQE2AoQBDAILIAJBADYChAEMAQsgAkGEAWogFSADIAYgBCAAQQEQVgsgAigChAFBAUcNAiACKAKIASIAQQZqIgRFDQECQCABIARNBEAgASAERw0BDAMLIAQgCGosAABBv39KDQILIAggASAEIAFB1LrAABCQAgALIAJBAzYCkAEMAwsgASAIaiEHIAQgCGohAwNAAkAg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IAMMBgsCQCACKAJYIgBBgICAgHhHBEAgAEUNAiACKAJcIgNBBGsoAgAiAUF4cSIEQQRBCCABQQNxIgEbIABqSQ0FIAFFIAQgAEEnak1yDQEMBgsgAi0AXEEDRw0BIAIoAmAiAygCACEAIANBBGooAgAiASgCACIEBEAgACAEEQQACyABKAIEIgEEQCAAQQRrKAIAIgRBeHEiBkEEQQggBEEDcSIEGyABakkNBSAEQQAgBiABQSdqSxsNBiAAEC4LIANBBGsoAgAiAEF4cSIBQRBBFCAAQQNxIgAbSQ0EIABFDQAgAUE0Tw0FCyADEC4LQYijwQBBNyACQd8BakGMlsAAQcCjwQAQnwEACwALQdC4wABBPSACQd8BakHAuMAAQei5wAAQnwEAC0Go2cEAQS5B2NnBABDOAQALQejZwQBBLkGY2sEAEM4BAAsLCAAgACUBEAQLDABB9LPAAEEyEBEACwcAEBIQ1wELBABBAQsEAEEACwIACwub3wE+AEGAgMAAC5UTT25jZSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAAAAABAAKgAAAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI2L3NyYy9sZWdhY3kucnMAc3BhcmstcnMvc3JjL3JheWNhc3QucnMAbGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYW55aG93LTEuMC45OC9zcmMvZm10LnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9pbXBscy5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3lzL3N5bmMvbXV0ZXgvbm9fdGhyZWFkcy5ycwAvcnVzdGMvZjgyOTdlMzUxYTQwYzE0MzlhNDY3YmJiYjY4NzkwODgwNDdmNTBiMy9saWJyYXJ5L3N0ZC9zcmMvc3lzL3N5bmMvb25jZS9ub190aHJlYWRzLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvYW55aG93LTEuMC45OC9zcmMvZXJyb3IucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL2Vycm9yLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvY29yZS9zcmMvc3RyL3BhdHRlcm4ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9jb3JlL3NyYy9vcHMvZnVuY3Rpb24ucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3luYy9sYXp5X2xvY2sucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAGxpYnJhcnkvc3RkL3NyYy9wYW5pY2tpbmcucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjExNy9zcmMvZXh0ZXJucmVmLnJzAGxpYnJhcnkvY29yZS9zcmMvdW5pY29kZS9wcmludGFibGUucnMAc3BhcmstbGliL3NyYy9zcGxhdF9lbmNvZGUucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL2RlLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvc3RkL3NyYy9zeW5jL3BvaXNvbi9vbmNlLnJzAC9ydXN0Yy9mODI5N2UzNTFhNDBjMTQzOWE0NjdiYmJiNjg3OTA4ODA0N2Y1MGIzL2xpYnJhcnkvYWxsb2Mvc3JjL3NsaWNlLnJzAGxpYnJhcnkvc3RkL3NyYy9iYWNrdHJhY2UucnMAL3J1c3QvZGVwcy9oYXNoYnJvd24tMC4xNS41L3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvZm10L21vZC5ycwBsaWJyYXJ5L3N0ZC9zcmMvLi4vLi4vYmFja3RyYWNlL3NyYy9zeW1ib2xpemUvbW9kLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAL3J1c3RjL2Y4Mjk3ZTM1MWE0MGMxNDM5YTQ2N2JiYmI2ODc5MDg4MDQ3ZjUwYjMvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAc3BhcmstbGliL3NyYy9yYWQucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL3JlYWQucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuMTAvc3JjL2RsbWFsbG9jLnJzAHNwYXJrLXJzL3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9jb25zb2xlX2Vycm9yX3BhbmljX2hvb2stMC4xLjcvc3JjL2xpYi5ycwAvcnVzdC9kZXBzL3J1c3RjLWRlbWFuZ2xlLTAuMS4yNi9zcmMvbGliLnJzAC9Vc2Vycy9kbWFyY29zLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtd2FzbS1iaW5kZ2VuLTAuNi41L3NyYy9saWIucnMAL1VzZXJzL2RtYXJjb3MvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9qcy1zeXMtMC4zLjk0L3NyYy9saWIucnMAL3J1c3QvZGVwcy9ydXN0Yy1kZW1hbmdsZS0wLjEuMjYvc3JjL3YwLnJzAAAALwUQAFMAAACcAAAAMgAAAEUDEABPAAAALwIAACYAAAA+AAAADAAAAAQAAAA/AAAAQAAAAEEAQaCTwAALlQEBAAAAQgAAANQHEABtAAAAlQAAAA4AAABtZXRhY2h1bmtzU3RhcnQAwAcQABMAAABPAAAAIgAAAMAHEAATAAAATgAAACAAAADABxAAEwAAADoAAAAgAAAAwAcQABMAAABvAAAAKAAAAGMAEAAXAAAALAAAABsAAABjABAAFwAAABYAAAAbAAAA5wMQABsAAADoAQAAFwBBwJTAAAvJAQEAAABDAAAAYSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHdoZW4gdGhlIHVuZGVybHlpbmcgc3RyZWFtIGRpZCBub3QAAHsAEAAYAAAAigIAAA4AAABjYXBhY2l0eSBvdmVyZmxvdwAAALAKEAARAAAA/AYQACAAAAAqAgAAEQAAAEQAAAAMAAAABAAAAEUAAABGAAAARwAAAD4AAAAMAAAABAAAAD8AAABAAAAASABBlJbAAAs1AQAAAEIAAABhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmlzX2NoYXJfYm91bmRhcnkobikAAAIAQdKWwAALAQUAQdyWwAALzQEgAACoICAgICAgIAoKQ2F1c2VkIGJ5OgCUZhAAAQAAAAoKc3RhY2sgYmFja3RyYWNlOlN0YWNrIGJhY2t0cmFjZToKAI4LEAARAAAAlAAQAFwAAAA2AAAAHwAAAJQAEABcAAAAPAAAABsAAABiYWNrdHJhY2UgY2FwdHVyZSBmYWlsZWThARAAXgAAAGcEAAAOAAAAAAAAABAAAAAEAAAASQAAAEoAAABLAAAACgpTdGFjazoKCgAAPgAAAAwAAAAEAAAAPwAAAEAAAABMAEG0mMAAC8cHAQAAAEIAAAAAcAAHAC0BAQECAQIBAUgLMBUQAWUHAgYCAgEEIwEeG1sLOgkJARgEAQkBAwEFKwM7CSoYASA3AQEBBAgEAQMHCgIdAToBAQECBAgBCQEKAhoBAgI5AQQCBAICAwMBHgIDAQsCOQEEBQECBAEUAhYGAQE6AQECAQQIAQcDCgIeATsBAQEMAQkBKAEDATcBAQMFAwEEBwILAh0BOgECAgEBAwMBBAcCCwIcAjkCAQECBAgBCQEKAh0BSAEEAQIDAQEIAVEBAgcMCGIBAgkLB0kCGwEBAQEBNw4BBQECBQsBJAkBZgQBBgECAgIZAgQDEAQNAQICBgEPAQADAAQcAx0CHgJAAgEHCAECCwkBLQMBAXUCIgF2AwQCCQEGA9sCAgE6AQEHAQEBAQIIBgoCATAfMQQwCgQDJgkMAiAEAgY4AQECAwEBBTgIAgKYAwENAQcEAQYBAwLGQAABwyEAA40BYCAABmkCAAQBCiACUAIAAQMBBAEZAgUBlwIaEg0BJggZCwEBLAMwAQIEAgICASQBQwYCAgICDAEIAS8BMwEBAwICBQIBASoCCAHuAQIBBAEAAQAQEBAAAgAB4gGVBQADAQIFBCgDBAGlAgAEQQUAAk8ERgsxBHsBNg8pAQICCgMxBAICBwE9AyQFAQg+AQwCNAkBAQgEAgFfAwIEBgECAZ0BAwgVAjkCAQEBAQwBCQEOBwMFQwECBgEBAgEBAwQDAQEOAlUIAgMBARcBUQECBgEBAgEBAgEC6wECBAYCAQIbAlUIAgEBAmoBAQECCGUBAQECBAEFAAkBAvUBCgQEAZAEAgIEASAKKAYCBAgBCQYCAy4NAQIABwEGAQFSFgIHAQIBAnoGAwEBAgEHAQFIAgMBAQEAAgsCNAUFAxcBAAEGDwAMAwMABTsHAAE/BFEBCwIAAgAuAhcABQMGCAgCBx4ElAMANwQyCAEOARYFAQ8ABwERAgcBAgEFZAGgBwABPQQABP4CAAdtBwBggPAAABYGEAAbAAAArwoAACYAAAAWBhAAGwAAALgKAAAaAAAAMDEyMzQ1Njc4OUFCQ0RFRiwKAAAAAAAADAAAAAQAAABNAAAATgAAAE8AAAAgewoBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBvaDAAAszAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwMDAwMDAwMDAwMDAwMDAwQEBAQEAEH7oMAAC8IXWy4uLl1iZWdpbiA8PSBlbmQgKCA8PSApIHdoZW4gc2xpY2luZyBgAACAEBAADgAAAI4QEAAEAAAAkhAQABAAAAD7VRAAAQAAAGJ5dGUgaW5kZXggIGlzIG5vdCBhIGNoYXIgYm91bmRhcnk7IGl0IGlzIGluc2lkZSAgKGJ5dGVzICkgb2YgYADEEBAACwAAAM8QEAAmAAAA9RAQAAgAAAD9EBAABgAAAPtVEAABAAAAIGlzIG91dCBvZiBib3VuZHMgb2YgYAAAxBAQAAsAAAAsERAAFgAAAPtVEAABAAAA1AIQAB8AAABnBgAAFQAAANQCEAAfAAAAlQYAABUAAADUAhAAHwAAAJYGAAAVAAAA1AIQAB8AAAB0BQAAKAAAANQCEAAfAAAAdAUAABIAAAByYW5nZSBzdGFydCBpbmRleCAgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggrBEQABIAAAC+ERAAIgAAAHJhbmdlIGVuZCBpbmRleCDwERAAEAAAAL4REAAiAAAAc2xpY2UgaW5kZXggc3RhcnRzIGF0ICBidXQgZW5kcyBhdCAAEBIQABYAAAAmEhAADQAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWUAAAMAAIMEIACRBWAAXROgABIXIB8MIGAf7ywgKyowoCtvpmAsAqjgLB774C0A/iA2nv9gNv0B4TYBCiE3JA3hN6sOYTkvGOE5MBzhSvMe4U5ANKFSHmHhU/BqYVRPb+FUnbxhVQDPYVZl0aFWANohVwDgoViu4iFa7OThW9DoYVwgAO5c8AF/XQAGAQEDAQQCBQcHAggICQIKBQsCDgQQARECEgUTHBQBFQIXAhkNHAUdCB8BJAFqBGsCrwOxArwCzwLRAtQM1QnWAtcC2gHgBeEC5wToAu4g8AT4AvoE+wEMJzs+Tk+Pnp6fe4uTlqKyuoaxBgcJNj0+VvPQ0QQUGDY3Vld/qq6vvTXgEoeJjp4EDQ4REikxNDpFRklKTk9kZYqMjY+2wcPExsvWXLa3GxwHCAoLFBc2OTqoqdjZCTeQkagHCjs+ZmmPkhFvX7/u71pi9Pz/U1Samy4vJyhVnaCho6SnqK26vMQGCwwVHTo/RVGmp8zNoAcZGiIlPj/n7O//xcYEICMlJigzODpISkxQU1VWWFpcXmBjZWZrc3h9f4qkqq+wwNCur25v3d6TXiJ7BQMELQNmAwEvLoCCHQMxDxwEJAkeBSsFRAQOKoCqBiQEJAQoCDQLTgM0DIE3CRYKCBg7RTkDYwgJMBYFIQMbBQFAOARLBS8ECgcJB0AgJwQMCTYDOgUaBwQMB1BJNzMNMwcuCAoGJgMdCAKA0FIQAzcsCCoWGiYcFBcJTgQkCUQNGQcKBkgIJwl1C0I+KgY7BQoGUQYBBRADBQtZCAIdYh5ICAqApl4iRQsKBg0TOgYKBhQcLAQXgLk8ZFMMSAkKRkUbSAhTDUkHCoC2Ig4KBkYKHQNHSTcDDggKBjkHCoE2GQc7Ax1VAQ8yDYObZnULgMSKTGMNhDAQFgqPmwWCR5q5OobGgjkHKgRcBiYKRgooBROBsDqAxltlSwQ5BxFABQsCDpf4CITWKQqi54EzDwEdBg4ECIGMiQRrBQ0DCQcQj2CA+gaBtExHCXQ8gPYKcwhwFUZ6FAwUDFcJGYCHgUcDhUIPFYRQHwYGgNUrBT4hAXAtAxoEAoFAHxE6BQGB0CqA1isEAYHggPcpTAQKBAKDEURMPYDCPAYBBFUFGzQCgQ4sBGQMVgqArjgdDSwECQcCDgaAmoPYBBEDDQN3BF8GDAQBDwwEOAgKBigILAQCPoFUDB0DCgU4BxwGCQeA+oQGAAEDBQUGBgIHBggHCREKHAsZDBoNEA4MDwQQAxISEwkWARcEGAEZAxoHGwEcAh8WIAMrAy0LLgEwBDECMgGnBKkCqgSrCPoC+wX9Av4D/wmteHmLjaIwV1iLjJAc3Q4PS0z7/C4vP1xdX+KEjY6RkqmxurvFxsnK3uTl/wAEERIpMTQ3Ojs9SUpdhI6SqbG0urvGys7P5OUABA0OERIpMTQ6O0VGSUpeZGWEkZudyc7PDREpOjtFSVdbXF5fZGWNkam0urvFyd/k5fANEUVJZGWAhLK8vr/V1/Dxg4WLpKa+v8XHz9rbSJi9zcbOz0lOT1dZXl+Jjo+xtre/wcbH1xEWF1tc9vf+/4Btcd7fDh9ubxwdX31+rq9Nu7wWFx4fRkdOT1haXF5+f7XF1NXc8PH1cnOPdHWWJi4vp6+3v8fP19+aAECXmDCPH87P0tTO/05PWlsHCA8QJy/u725vNz0/QkWQkVNndcjJ0NHY2ef+/wAgXyKC3wSCRAgbBAYRgawOgKsFHwiBHAMZCAEELwQ0BAcDAQcGBxEKUA8SB1UHAwQcCgkDCAMHAwIDAwMMBAUDCwYBDhUFTgcbB1cHAgYXDFAEQwMtAwEEEQYPDDoEHSVfIG0EaiWAyAWCsAMaBoL9A1kHFgkYCRQMFAxqBgoGGgZZBysFRgosBAwEAQMxCywEGgYLA4CsBgoGLzGA9Ag8Aw8DPgU4CCsFgv8RGAgvES0DIQ8hD4CMBIKaFgsViJQFLwU7BwIOGAmAviJ0DIDWGoEQBYDhCfKeAzcJgVwUgLgIgN0VOwMKBjgIRggMBnQLHgNaBFkJgIMYHAoWCUwEgIoGq6QMFwQxoQSB2iYHDAUFgKYQgfUHASAqBkwEgI0EgL4DGwMPDQAAAIoEEAAlAAAAGgAAADYAAACKBBAAJQAAAAoAAAArAAAAAAAAAAQAAAAEAAAAUAAAAGluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgIGJ1dCB0aGUgaW5kZXggaXMgAADUGBAAIAAAAPQYEAASAAAAPT1hc3NlcnRpb24gYGxlZnQgIHJpZ2h0YCBmYWlsZWQKICBsZWZ0OiAKIHJpZ2h0OiAAABoZEAAQAAAAKhkQABcAAABBGRAACQAAACByaWdodGAgZmFpbGVkOiAKICBsZWZ0OiAAAAAaGRAAEAAAAGQZEAAQAAAAdBkQAAkAAABBGRAACQAAAC4uUmVmQ2VsbCBhbHJlYWR5IGJvcnJvd2VkICAgIEhhc2ggdGFibGUgY2FwYWNpdHkgb3ZlcmZsb3cAAL4ZEAAcAAAA6wUQACoAAAAlAAAAKAAAAGNsb3N1cmUgaW52b2tlZCByZWN1cnNpdmVseSBvciBhZnRlciBiZWluZyBkcm9wcGVkAADWCBAAXAAAAIU1AAABAAAAMAAAADMJEAAqAAAAHgEAADEAAAAzCRAAKgAAADQBAABHAAAAMwkQACoAAAAxAQAAFgAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IHN0cjo6ZnJvbV91dGY4KCkgPSAgd2FzIGV4cGVjdGVkIHRvIGhhdmUgMSBjaGFyLCBidXQgIGNoYXJzIHdlcmUgZm91bmRsGhAAOQAAAKUaEAAEAAAAqRoQACIAAADLGhAAEQAAADMJEAAqAAAAXAEAABoAAABib29sY2hhcnN0cigpaThpMTZpMzJpNjRpMTI4aXNpemV1OHUxNnUxMjhmNjQhXy4uLgAAMwkQACoAAACKAAAADQAAADMJEAAqAAAAvwEAAB8AAAAzCRAAKgAAAB4CAAAeAAAAMwkQACoAAAAjAgAAIgAAADMJEAAqAAAAJAIAACUAAABbXXtpbnZhbGlkIHN5bnRheH17cmVjdXJzaW9uIGxpbWl0IHJlYWNoZWR9Pzo6Ojp7Y2xvc3VyZXNoaW0jfTwgYXMgPiYgbXV0ICpjb25zdCA7ICgsZHluICArICBpcyBDdW5zYWZlIGV4dGVybiAiMwkQACoAAADUAwAALQAAACIgLWZuKCAtPiBmYWxzZXRydWV7IHsgIH0gPSAweAAAMwkQACoAAADtBAAALQBByLjAAAvLAwEAAABRAAAAYGZtdDo6RXJyb3JgcyBzaG91bGQgYmUgaW1wb3NzaWJsZSB3aXRob3V0IGEgYGZtdDo6Rm9ybWF0dGVyYAAAADMJEAAqAAAAhwIAABEAAAAnZm9yPD4gLi49IHwgIW51bGxfX1IAAAAzCRAAKgAAADIAAAATAAAAMwkQACoAAAAvAAAAEwAAADMJEAAqAAAAKwAAABMAAAAzCRAAKgAAAEsAAAAOAAAAMwkQACoAAABaAAAAKAAAADQAEAAuAAAAZgAAABwAAABfWk4ANAAQAC4AAAA9AAAACwAAADQAEAAuAAAAOgAAAAsAAAA0ABAALgAAADYAAAALAAAALmxsdm0uAABCCBAAKwAAAGIAAAAbAAAAQggQACsAAABpAAAAEwAAAPQCEABQAAAApgAAAAUAAACkAhAATwAAAOUFAAAUAAAApAIQAE8AAADlBQAAIQAAAKQCEABPAAAA2QUAACEAAAAwMTIzNDU2Nzg5YWJjZGVmAAAAAAAAAAABAAAAUgAAAGNhbGxlZCBgUmVzdWx0Ojp1bndyYXAoKWAgb24gYW4gYEVycmAgdmFsdWV7c2l6ZSBsaW1pdCByZWFjaGVkfQBBnLzAAAuwBQEAAABTAAAAYGZtdDo6RXJyb3JgIGZyb20gYFNpemVMaW1pdGVkRm10QWRhcHRlcmAgd2FzIGRpc2NhcmRlZABCCBAAKwAAAFMBAAAeAAAAcHVueWNvZGV7RW1wdHlJbnZhbGlkRGlnaXRQb3NPdmVyZmxvd05lZ092ZXJmbG93WmVyb1BhcnNlSW50RXJyb3JraW5kU2l6ZUxpbWl0RXhoYXVzdGVkADQAEAAuAAAAbwAAACcAAAA0ABAALgAAAHAAAAAdAAAANAAQAC4AAAByAAAAIQAAADQAEAAuAAAAcwAAABoAAAA0ABAALgAAAH4AAAAdAAAANAAQAC4AAAC0AAAAJgAAADQAEAAuAAAAtQAAACEAAAA0ABAALgAAAIoAAABJAAAANAAQAC4AAACLAAAAHwAAADQAEAAuAAAAiwAAAC8AAABAAAAANAAQAC4AAACdAAAANQAAADQAEAAuAAAAggAAACwAAAA0ABAALgAAAIQAAAAlAAAALgAAADQAEAAuAAAAhwAAACUAAAAAAAAAAQAAAAEAAABUAAAANAAQAC4AAAByAAAASAAAAAAAAAAMAAAABAAAAFUAAABWAAAAVwAAAKQCEABPAAAAaQQAACQAAACkAhAATwAAAM4BAAA3AAAAMDAwMTAyMDMwNDA1MDYwNzA4MDkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwODE4MjgzODQ4NTg2ODc4ODg5OTA5MTkyOTM5NDk1OTY5Nzk4OTkAQd/BwAALARAAQe/BwAALARQAQf/BwAALARkAQY7CwAALAkAfAEGewsAACwKIEwBBrsLAAAsCahgAQb3CwAALA4CEHgBBzcLAAAsD0BITAEHdwsAACwOE1xcAQe3CwAALA2XNHQBB/MLAAAsEIF+gEgBBjMPAAAsE6HZIFwBBnMPAAAsEopQaHQBBq8PAAAsFQOWcMBIAQbvDwAALBZAexLwWAEHLw8AACwU0JvVrHABB2sPAAAsGgOA3ecMRAEHqw8AACwag2IVXNBYAQfrDwAALBshOZ23BGwBBisTAAAsGPZFg5FgRAEGZxMAACwdAjLV4Ha8VAEGpxMAACwdQ7+LW5BobAEG5xMAAC/glktVNBs/wEAAAAAAAAAAAgPZK4ccCLRUAAAAAAAAAACC0ndl5Q3gaAAAAAAAAAACUkAIoLCqLEAAAAAAAAAAAuTQDMrf0rRQAAAAAAAAAQOcBhP7kcdkZAAAAAAAAAIgwgRIfL+cnEAAAAAAAAACqfCHX5vrgMRQAAAAAAACA1NvpjKA5WT4ZAAAAAAAAoMlSJLAIiO+NHwAAAAAAAAS+sxZuBbW1uBMAAAAAAACFrWCcyUYi46YYAAAAAABA5th4A3zY6pvQHgAAAAAA6I+HK4JNx3JhQhMAAAAAAOJzabbiIHnP+RIYAAAAAIDa0ANkG2lXQ7gXHgAAAACQiGKCHrGhFirTzhIAAAAAtCr7ImYdSpz0h4IXAAAAAGH1uau/pFzD8SljHQAAAKBcOVTL9+YZGjf6XRIAAADIs0cpvrVgoODEePUWAAAAuqCZsy3jeMgY9tayHAAAQHQEQJD8jUt9z1nG7xEAAFCRBVC0e3GeXEPwt2sWAACk9QZkodoNxjNU7KUGHACAhlmE3qSoyFugtLMnhBEAIOhvJRbO0rpyyKGgMeUVACjiy66bgYdpjzrKCH5eGwBZbT9NAbH0oZlkfsUOGxFAr0iPoEHdcQrA/d120mEVENsaswiSVA4NMH2VFEe6GurI8G9F2/QoCD5u3WxstBAk++zLFhIyM4rNyRSIh+EU7TnofpyW/r/sQPwZaukZGjQkUc8hHv/3k6g9UOIxUBBBbSVDquX+9bgSTeRaPmQUksju0xSffjNnV2Cd8U19GbZ66gjaRl4AQW24BG6h3B+yjJJFSOw6oEhE88Lk5OkT3i/3VlqnSchaFbDzHV7kGNb7tOwwEVx6sRqccKV1HR9lHfGTvop57K6QYWaHaXITv2TtOG7tl6fa9Pk/6QNPGO+9KMfJ6H1REXL4j+PEYh61dnkcfrHu0kpH+zkOu/0SYtSXo91dqocdGXrI0Sm9F3vJfQxV9ZTpZJ+YOkZ0rB3tnc4nVRn9EZ9jn+SryIsSaEXCcapffNaGPMfd1rouF8LWMg6VdxuMqAs5lYxp+hw5xt8ovSqRV0mnQ933gRwSyLcXc2x1da0bkZTUdaKjFrql3Y/H0tKYYrW5SROLTByUh+q5vMODn10RFA7s1q8ReSll6Ku0ZAe1FZkRp8wbFtdzfuLW4T1JIlv/1dC/ohtmCI9NJq3GbfWYv4Xit0URgMry4G9YOMkyfy8n2yWXFSB9L9mLboZ7/1778FHv/Bo0rr1nFwU0rV8bnTaTFd4QwRmtQV0GgZg3YkQE+JoVFTJgGJL0R6F+xXpVBbYBWxofPE/b+Mwkb7tsVcMR4XgQJwsjEjcA7krqxyo0VhmXFPDNq9ZEgKnd5Hk1wavfvBm2YCsGK/CJCi9swVjLCxYQ5Di2xzVsLM06x/Euvo4bFB3HozlDh3eACTmuum1yIhnkuAwIFGmV4EvHWSkJD2sfjvMHhaxhXWyPHNi5ZemiE3LwSaYXunRHsyNOKL+jixiPbNyPnehRGaCsYfKujK4e2cPpeWIx0w/kC31X7RctE880ZBi7/ccT3U5crehd+BcDQn3eKf25WJRis9hidfYdQkkOKzo+dLecHXDHXQm6EpLb0bXITVHlAyVMObWLaBd3UkbjOqGl3kQun4eirkIdivMLzsSEJwvrfMOUJa1JEm3wjgH2ZfHNJVz0+W4Y3BaIrPKBc79tQS9zcbiKHpMc1as3MaiX5Ij950azFvPbEcqWhT2SvR3r/KEYYNzvUhZ9/ObM9izlJXzKHnjTq+cbzl0QQBo8r5eNPhMrZMtwEUJ1FNAgC5v9MA7YNT3+zBWSkhkE6c0BPb0RToPMPUAbm/uPorEgIUYWyxDSnyYIEYL6MwveaKnX2/2UxkcwShUj+QCOFcOTzVI9OrhZvJwatpvAeO1ZfMBTZiQTuPWhEKPC8NZocJuw6H/tFyZzyhRM86wMg0zC3OLf6J3vD/0ZDxjs59Fv+cnti7HC9Sk+EBMe52HGy3c86e5dM3O0TRSY5WD6t76Vi6NqNQCQIWEZ/h75+GUue25MxUIA9Gm5H1+zm7v//AzFT7spgDji0xM3oIKqPzxQtiMqNKDG2sgYREgjlU9L5KOsNEFIeBH7HisNNr0Rr27m68AoLevqXBN1kIMs1loK4CbxcvilJTQYk3Skt4vxDJhwrY92Dy9BHtzIxlL3FghfZswZqmm96BITe3gntRzK9n8/oBTE7KIX15lWceKjfPRfT8gZ9aeLHSYg1oZt5s34mzEdMPlIdxIwqIvoCGAB9wJ+JHw3GxUXPJKuIgu4wbSDnS1bBWLaHGUbrfUGE/lQcoL8WEN9CBI/YhizyFc35Q6jOy+UnIoWz3re37othZ7Siwo7uUMtHMEM68uUPBOjY5fmxFNKnBHxz+X+uQvYizw9ILboXAMW7kOffqgOzq6LTKjjIjSEG3WKI08pyUBN1y9JzpWgMhESbeyic/uQIM1720G7SH8VVoini1A6tWjAWlIS6hrfGja1SFdyRHFBuHhzS9JwyxCD4hrtjpXNUeZWUN4GTf4UJJthqPL6QOafbOSVSOA9GvcAPanXnOjv48OuXS2sZhA0QYyTDcTi69x0GrU4V4AUgVFv+BB12yYUEmHiBm2gGfGSRZsqKUmYTKt8TSREBBCt9xZCdXNbvh/W22AtVQUUmLWcklJQ8q2nyxK5eKoGGf/iQzdn5G6ZkX5X5xZVSB/fbYqCwE7l/xqvllAuNY0TVwkto3Ci3r/hWrzkeYJwGK1L+MsMS9YvmnHrXRijjB5ML3v/5+7lXQAnszrv5RcTH/tZ/6FqX3XA8F8Ja9/dF+d5MH9KRbeS8Oy3y0VX1R0wTH6PTouyWxb0Up+LVqUSPN9dMyIun/IbsSeHLqxOFwtXNcCq+UbvYp3xKDpXIh1nViG4ClyM1V0Cl1mEdjUSAawpZg1z70r1wvxvJdTCFgEXtL/QT6udsvP7yy6JcxxgjtB34hGLok94fT+9NcgR+bHEFVvWLYtj1lyPLEM6FnfeNdvxS/lt/As0s/fTyBsKqwEpd8+7xH2HANB6hF0RzRVC81TD6jVdqQCEmeW0FUCbEjAqdGWDtNMA5f8eIhsIoQtemmgf0lCEIO9fU/UQSomO9cBCpwZlpejqN6gyFZ0r8jJxE1FIvs6i5UVSfxpCW9e/Jqwy7TbBha9rk48QEjLNbzBXf6iEMWebRnizFJd+wIv8LJ/S5f1AQlhW4BkeT1jXHXyjo6+eaCn3NSwQ5mIuTSVbjIxbxsLzdEM3FJ/7eaDuca9v8nezMFIURRmHephIak6bC+9V4LxmWZYflExfbQIRQWe1NQw24Pe9E7oftwhDVRHBIkOPQ9h1rRio5+TKk6pVcesTc1RO09geyRDPXpyK1SZz7Mf0EIRHE/vUgnZD7Yrwj+f5MRVlGRg6iiNUlKit7HNheH5avh8eZDaWtFyJ7HPoPAuP+NbTEv3Du+Gzq+eQIgzOsrbMiBf9tCraoJYhNSuPgV/k/2odHrFaiCT+NAF7+bC77t9iEmVdcaqtPYLB2TedauqX+xa/tA0VGc3iMdCFRAXlfboc95AorS/ALR+i00ojr470ETW1cpg7MPmmiogd7FqycRaCYo9+Sny3UK3qJKfxHg4ckZ0Zj66tclKsEncIV9OIEfYE4DIaWQ9nV9eUyiwI6xUzBpi/YC/TQC0NOv03ymUb4AO/d5z9g0g8SET+Yp4fEdjErpUD/aRaS1rVvfuFZxUOdhp7RDxOMd6wSq16Z8EayYnwzKrl0N6Krk6srOC4EDusLIAVH4WWLVpi19cY5xRK1zfg2mYm/LjwOs0N3yAajuYizEgAmJ1z1kSgaItUEDKgK/9aAP6EEAxWyEKuaRQ+iPa+cYA9phSPa3rTGYQZTiq0Lo7gzM/ZcgZZSCDlH3CaMN1YDOAhyAekNy007xMNwXwUbw9YKroJjYU4AesYUPGb2UoT7rQoTPCmhsElH9J2AcgOzBRxmS9WKPSYdxOG1AF6Ev9ZzX+7azIxf1UYqEmCGNd+sMBfqgZ//d5qHgluUW9GT27Yeypkb17LAhOLySULGOOJzho1PQs2fsMX7jvvDd5bLIJhggyOw120HXWFtchquVvxfNHHOJq6kBLS5uJ6xaeyLdzF+cZA6TQXhqCb2bZRHzlTN7j4kCMCHVREAUgSk7MDlCJzmzpWIRJplQHa1negBDnrT0LJq6kWw/qBkMyVyEUH5uOSuxZUHLo8UdqfXZ2LxG/OOzWOtBHoi+XQB7WErrULworCsSEW4+4exUniJRqjjnItMx6qG01VMxturVfwJZln/N9SShGhKgCiyZhtbG9/gfuX55wVSTWACvz+iEdL32H6fSEEG04hkIZdn7UMjyt9vO6U4hChKTToNAfjz3J2nGsqOhsVCjRBIgLJ24MPlIMGtQhiGobAaFWhXWmyiTwSJHFFfRCn8MKqCbUDH6zLFm3NlpwU0axzFUyixCaXflzIgLzDGQNMaI1v5Tp4Hs85fdBVGhADX8Jwy55JFuZCiJxE6yAUxPbyTH4G3JufU6rDFSYpGXa0L+AdCNOCh+iUNJtvcx/J0B2sEuXDsVQR3QDBJagT/EQlV1feNN6pVRRBMS+SGDuW7iztFcJVFGtZkf26th7lHRU8tE2Ztezi13reNDITXmUaSyGh/+Kn240ZFsL+F7b+4J1pib/bkVLxn5ty/h0xn6wC4rVXKZvT9kOhB78S/sZXg1qjrfOBiPSUicluF724LSQxDJlwoqox+ut7Sh12k5y2nqdfhqUKX3xzjU4SVLhDZIaR9+dOzXZb0DDiFmmmVP3ndfWhooBUcgS9mhwB6FT+sGk5pWXQdMcituARAiLqPR3Ehw5/BFJ5q+NYFoKqZI0ktSnSnoWmV5Yc7xuR6l7YNhFaQ4MTyPbdcXURNqV2joSVMBRkGHp0Vc7SFYNOFLLlujwZfZ6Y0eqBRxsSsUyPz/TFLw5j/8IysQwRVt0fcwNyt7vRO79zf91PFazU50+ETqUqxgqvUN/Uoxrr5PCxElGn2rtmbZILZaYQJh5tXlclUdFqwAh3Tv7PFLBlCDatbqWFhfDKFOL9AxqOP8VBLGWHc1PW/kytfkIQcY82Unc+aVDoiz6gWB5TFE4zxCYVjoNk4i5OyO7lZxkiQHVwmnGk/Zq6YXpq38EfFUhJhgDHht6gFH2MoivZExqa26fAeCgWyVmcL4t2zxihgNLR8JayWztwg/stVAMfZJAjg1aeTxklJjK9nBRiE3507CPshaNfrq9+7MOZOhidkecsZ2eM95lbnuc0QEkeArsQfKDAtzpA+cIQIcjtEsPpFJvIsGVJkLfzVCk6qRczJNrB+hy/W3SlMKqziJMdoFYouRxyV7loZ15KcDV8EkhscuejTq3nQgH2XMxCGxdaB0/hTKKYoZOBM3R/E+IcmGTRDHBl/0T8MKCoL0wNEr69BRDMPj9WOz3IkjufkBYuLQcUfw7PK4pMencKxzQcPXyEbA9pYVvWb6yKZvygEUybpUdTwznyy4tXLYA7CRYfAo8ZKDTI7r5urThgiosbU2H5D5kgPVU3ZWwjfDY3Eai591O/aIwqhX5HLBsEhRUSqPUo74IvdSZeWfchReYaC4mZedWxPQnY2pc6NevPEE7r/9dKHo0LjtE9iQLmAxUi5v+N3WVwjvFFjSuD30Qa1e+/eKo/Bvm2Szj7sQtrEMrr7xaVz0e3pF4Gep7OhRS95qtcesMZ5U32hxhGQqcZNnDreSwaMK/w+VTPa4kIEENMZpi3IPzabDgqw8arChRU339+5Si7EYjG9HO4Vg0ZKtcf3h7zKRYq+PGQZqxQH3rm00rzN9pNGjuXGsBrkhMZ4Igd8MVQ4eAJPSGwBncYHxjrJGz3pBlZTIwpXMiUHhPvEpejGgewt6/3mTn9HBPYqtd8TOEInKWbdQCIPOQXjpUNnJ8ZCwOPApMAqkvdHXl9iMED8OZhmeFbQEpPqhLXnOqxBKxguv/ZctAc41QXDURl3gXX+Kh/kI8E5BsqHYhK/6pjhpvJT7rZgm5ROhIqHb+V/GcCvOMokCPK5cgWdOQuu/sBA6scM3SsPB97HMlO/VQ94eHq8Z/I64XzzBF7ojyqjFmaZe7HumZnMEAWGsvL1O/vAP/peWlAgTzQG/Be/+T1lWA/MuxByNAlYhGsNj9ec7s4zz5nUvpEr7oVVwTPNVDqBoMOAec4FlspG7ZioSFyUuQRqWCQ4+3Y+RBkuwmqDmddVtN4dFwpTzgVPSqMVNLA9CsIl5Gz82KGGmaa13SD+HgbZf46UNj9kxAAgQ1SpDZXYv69SWRO/bgUQOGQZk0E7fp9LVz9oTznGciMGmCwItS8bpxZPuWFMBD6LyF4XCsJbIoD8I1epzwU+HspljN2CwdtBGwxNtFLGfbas3vAU85IiAXHvYPFnh/aaFBNWPSALXVjnFZyO8MTEIOkYG4x4XhSfEPsTgq0GAEAQb/qwAALtjggmpmZmZmZmZmZmZmZmZmZGRWuR+F6FK5H4XoUrkfhehTeJAaBlUOLbOf7qfHSTWIQltQJaCJseHqlLEMc6+I2GqtDboYb8PlhhPBo44i1+BQiNlg4SfPHtDaN7bWg98YQaiONwA5SpodXSK+8mvLXGohP12alQbif3zmMMOKOeRUHphIfUQEt5rKU1iboCy4RpAlRy4Forta3ur3X2d98G+o6p6I07fHeX5VkeeF//RW7yIXo9vAnfxkR6i2BmZcR+A3WQL60DGXCgXZJaMIlHJNx3jOYkHDqAZsroYabhBZDwX4p4KbzIZsVVueerwMSNzUxD83XhWkrvInYl7LSHPmQWj/X3zchiZbURkb1Dhf6c0jMReZf56CrQ9LRXXISXYYNejw9ZqU0rNK2T8mDHbGe15Rjlx5RXSNCkgyhnBfBS3ndgt9+2n1Pmw4KtOMSaKxbYtGYZCqW5V4XECA5HlPw4oGn4LbuRFGyEkCzLRipJk/OUk2SWGqnjqiZwlcTQaR+sLd7UCeq2H3a9dDyHjRQZcBfyaZSuxPLrsRAwhiQpuqZTNTrDskPPPI2ms4TgAoRw61TebFBGWBQvvawH2cIdAKL3C3BZ0ezpv5eWhlSoCk1b7AkNIafwuv+S0gU2xnukPJZHZCef2iJZdY5EF8psLQdw/tMlzKnqNUj9hmyulldsTWWPaxbH7p36cQUKGLhfSdeq5dWSUz7koedEA2daMnYyavy8A56+LellRo+F7o6eqG8W1pyLi2ThEQVy0X7Lsgayq+ujouKQp0DEUUJkrGm99yySuR4qp37OBsEoUHB65J99W6DLVWxL8cVA7RnZ4l1ZMRYnFd3JyZsEdLspdjbiG1t9MYl8gs94BvbI+tGFge+isM4Hiij/UwWSbZV0hFs/m6cYEtTTzHXEQ6K77ZPE5exYGdFhRiCixylob/4cg+sJxq5ajetAdYWHk6ZYMJyVrnhYFUsJM5EEpUWws0DHlf1Nc67E23jOh2rqwELAxisKivYL3aKT2IXVok0bwLgvLtVE/PEbgy1Eomo7bHQzMeS7x641Ep67h0HuleOQArT2/JLkxBv+/EXBsjfcQDVqHz1bw/aWPwnE9YMZukzu6f6u0yyKY5gph4R14SHKfxSlcmjjlQLGoUYDqzQ0rrJqKoHg9h2b66dE+OsGh5e3NrdpdHAV7KwYh9PikhLS7BIflFBmqyOwBsZ2aHT1dVZbcvazeFWpTMWFHuB3HcRe1c84tfnq+rCERAqz2BZgl7yxjYmpqyqBLYZu6WAR2gY9WvFUetWVZ2RFJaEAAbteSoj0aci3919dBBWBzSj4Y/d0YEM0TGW/FMaRWz26Bpz5Kc0Paf0RP0PFZ5W+FPiKB1TXZdSXWqX2RBiV425A9th6y7yUJUQv/Ua6EWkx89ITrxYW9rdpmWRFSBrg2zZ03FjreLhFx8eQRHNEZ+tKIYcn0gEA/NkY5sbC9sYvlNrsOUGnTWPHekVFqIVR8sPifPqa0qRcuQgqxE3vHF4TNu4REaqG4RtAUUcX2PBxtYVxwMFVUkDvpqdFhnpzWtF3jg2N3cHaf6uFxLBQRZGomPBVlhYcg6XsfIczmer0YEcAd95E/VxEo4oF6XsVUHOFjR/YdyQwQ7YhhJuR1Y1fSQgZQLH52jkjKQdJTl49zAdgOoBbLkgHde2F4T6LPnzsJm7NCNhTRes+BI590coU05cX1Q4aBXyrFoeLizTuXULfX9DYFNEW4pIGFgj3Mf31TCZzxmpNnw7bRMm0vlyjIm0jrKPDvH5KxUfuEEuj6MHKnIopgv0x7zdGPqavqVPObvBhh7WXAaX5BP29zAJGcJenNcw8PrWJNQf+F9aBxRo5Ul5jSYv34N2GWDm4QUQIFFuxwpSv+XPXhQahYHRDIDa8QVvDpmE2UsQ9dRoghQAxE/W5OP0oPUSGit37QGqmWnZEbcc97P32xS8xYoBiBTurXSSsMVc+a8QLAneaKbtfElU6oBvlCizGiTU5FO4V8o6EFWav3YgXBWDdh1DYHk7YnOqrv9egBYRnr3I0Wb1K524ELEyyzNXG39kbUFSxLx9YA30jqJc3xXMtopn22n9yuY9w9hOfX8R34p3csUPL6vXLwWO5C7/G4DVklsEc/KIrIxqPh2/ZRZmREJJ0Cj101Y9VZhK/+oRo6ADQk1BiLlXlbvzEDKrHOnmAmjXzTlheXf8wkBb7xZUUgIgeXFh5y35yWjNFVkShlCdmY61aKV8W3Z0FVZbHdKmSuE+kSBR/RXF9t1EfBcOH6Ia/0BNp8pEN5Kx0MkSSstp92TOrgsRblhQT7QPHjs87sVQ2Is8p/F5cz+QDBjJyfE32nkJyoX0x8IyQD0T20Lpv/bCqKlvugyet2bIHuObuswrz1MhJpVwfixSoBiCSZVwiXKpGrjdJmXwdLMTnXWIGg+EdfeMLz4I54eFHxdeoHtyNpFfCiaYBuyfNxnf5BmWW/hAGdWERgXwfywUTOpHq6/GAOEQNwXRjJkjEEfdP0VMpGfO5yTVtEeP0hkGscyd1ulS2B+33cOfcqgUOCcKS0Xu23kZLH5pGcKGEFnYqRGi418pj0YwD482cRp6E7ungRyzuqVr89jYXicVL6mV7JrjKGJRiY+t4EvsEBd17+D3OA6d6A5Mr5qsExt5Klkaky3YsFNy1iXiVqkVLlVHSA++eY3cwd63gUVUEXy7C9p+lo8VlJyXjM8IuhuXL9YU/xGmd3aw39ZybS4WeYzeQ/+nUfmR87J49b2+EY6t/dL+PxzCHOy3WiJjZBzYimRCMjOwARfwXxW1tbYWRqKDm47CWQGsWebdkMQrEqMDOV8XBPbOrMKj/BrUEh2DnC1MrGlecr2bHMpIQ0IXnOOK1olUGPX94hYIB2mbEsYFq70PVI3uL2vxDNh0xR0FayL+cnbXvowiwXBGKtEXBLxOyyjFEv/WTmeNa7sNE6D5fXh0O1HLJH7YexJffB5NYf75KckNCbcxrfxBf2MYCoHLlCHU16DFJyTKNMyCE3fOeFTPub9nbwxtQyGtNx/5cS3dpZTMH1lwis9NV/kYx/S9fVHd1n9686E/Pqz6EwvuL8noLr7/w7icMv159x/WJPOgIL8xZjb6FsL9x5IZeB1cGhrMJ7he+6sBy2x1FGDkfHuuCVOTGMm8Z6LwXRCZoJTFsELrHvR0lD9q5y8a4eZ2BCcCieVcKt0yiB/zFOfrK52FzqC3sO6wKKB/whDY399hb0oBWbRKTnQzzNAarUzm5yXVzeApoj6Qj9ZzFfHWUYZRd3FN7rTL2XJ4KRHoV+nW6L7oe7BUrI+EjXUbIBMh31MyuvxZ3YkMaqT3FYBC5xhDKMhjrkpucO7pkhFmatgnOA0NBhcRShoXQx4c6yGt7CykPWsSdG57Epx+FlZOV73wHP6I21xY/EHj/hEjSiVitJSWQV9hjWA2Bcsc6dQd6Cmqq2d/5z1N+NAIF4fdFyC7IVa5Mrlk1/lzbRKllYxmK2kjwurBOvLC7HsdHd7WHom6gs67NGJbAleWFxgY30sHYjWl/Pa04gGs3hJZ82R52JyIO5Txhzc2EzEe4fWDx0ZKbfzcWgbGkUInGBorAwafblcwF6+e0aebUhOQ3tE8y30lGiUYMRymkuoeQOWnMDz+HUi3eVrjhKi7GABRhsDJMUvTxceugp1TyRPNtKPNQukRUgmmF9HIhagfpJAcPgIh23QHuN9AOp5TGVANSssBtBX3BWAZZ/vkQhSnCggJmyne+DezelL8gzUQ190MqJFCMI5ZuCq3kznvGRNLCiAOAo0+4fnu+EJhvxQPPAiAPps9ZefHWPqbGpkQ5CwNAGT4yG6lDI6Q+ZCOGuojpJnp+dOLt6NxQGHaPhW7HFDhupSpPPmC9JkaFf8QK2Gzm8S6dceO0SDDXbsxG4kaKRZqlcTSCw7naLFiwRWhe7oRiHfQ228+H4cngmcRm5JdHEC/gCzmY5g+P9DYG0l15EkzzDO9UbZGZf8MRxbUXVBuj9aPyqdeBVHMcNIRU8mz40tXGUTZ/W5OreeDHKk69oIJeUcD4ZclpYrszxa6+8Ro1GBsz4B5hOpu8D8SKvkHDoc0euWa9dMQSxozHSKUOQtskC5R4ipD2ggVXBe1qcfVvKaL2oFVz+HTELAShw/ZIi5x35CcVeUCU4HmHWwMFE+LWkzaFt4dz6ia6xeKo6mlonujrnh+saUg4iITqQWpompf0n0nl7WimjaeHlTRIIKIf9uXH6z3ThWSfhh3p4DOBmZ8eUwjxtjddJgT8QsB5ApwLY+ta6MnllRaH1rWAFCiWSQMvu+1H3gQFRkVRZrZgRQdcP7y97L52RAUd2p7FJtDF8D+W8YoLnsNEPJDku3EBfLMyiwKDn0rrxnCnA6+0DdbCm+9oXHKIowUzuM+y3P5SAiMl7Qn1RtwELCfZHjsWw7arCVUDFX5TBrAf1Bg8K8+e723qdYQYQoVM2ZAgPO/y5WXLO7ecxrVEFJwzWZSZqzvWEewZLmQ7hrbWaS4DoUjJkds87b6posVSa62k9jQgh5sIylflYU8EXWwih/0Gp79rDio/u4IlBv3WdWyKa+xl72ThpglBxAWLHt39boljqyX3J4THmymERPFWCIrCX16vy3+uMl5PRx2aq1O76D9YcxXy2ChlJcWxe69C1ka/ucJEwnnTd0SEjqx/EVbXWOm3IQO2K/76hzIjTBrr0ochbDQPhPzYiIX1NcmvPJu49Am2st1wuiBEoaMpMbqF5+01ylGiZ2nnB1rcFAF798YKkbuBKEXhrAXifPZnSWz4FRri51NeZ7zEnRS9mJv682HeEUvfCiXUh5dqF6CvyIL08Zqv8mGEkIY5LlLaMwbPA+fiP860g5oE20peUB6LGAYmNqYkYPkDB8kIZQzyFazRhPiEw42HdcYtk1DKaB4jzjctNykkUrfE4qva6hmJ39aYCFhoYKqyx+iv++564UyFU20TbSbu28ZTpmMYYnRjqo9kKT24mJZFAzh1hqhp9juytm2K0+CRxBFmyRem3InfhH2it+xAwwaBEkdGEn1hf4N+DsZW2nWFNCgShPUXZ7LpPkvFHyHqxBNARFSU8lj3zpc5rn5C6wacWfadA+hHBkvsB77+m9WFcFSSCrZgLCtJcBLLy/zERE0UQ2qjjTnFQnNErJ+608bxA1x7j5dH6ttCg8oMonZFZ2kjYtlFxm8VwgMICjUehGUOnwSPPL0LFkN4MzZufcbQ5WW2/z0w/DgPbNw4cdfFgMREhaXXTZaGsv1JoE55hEE6BzwJPxWkJDeIgs1j6Mc0OzjjB0w39mmS4KiXT/pFtojgz2xWX/h66LOTrEyVBJcOTgvtcLLaHnRfeROhFMd4y1gv1011lOUp2RQcgN2FxyL5mWxKnipduy2po7PxBL6RNdvtaomD/ETi9d9sgceYmrfvyoiUj8nQ2+sZCgGGE6If5mITttlH5zyiVAgOBNKDcwodErFb2WT6g+0M8AeO6QJh/ahalmEDyJz9sKZGJa2B2z45+6tNtm09ZE1rhNWVwzg8z9+SST1uiKDIn0fRazWTPb/ZNTpkJXoaOgwGdGJeD34/4ND7nNE7VMgJxR0oZOXxsycz/GPA/EPTR8QUgK5JaRHYX8cswXof67LGQ81x7fp0k3MFlzR7P/xohTZkNJfIQ8LPRKw2iMzW4IQwedQmWhLq2FQsyoGhStqGme5QBS6oiJOQFxVa2q8IRVTlADdlOhOC81JRLzuyecQUe0AyIfaFxJIqdPGSnYMG9q9AKBsSEbbbIfca9WRoxWvZM1MvQYFSYqf4+/dp08RsTriesgKCKhD/zjmL6ayG/Qu6Ps5ojlTaf+THvOEKBZd8uwv+7THdYf/D7L1A7oRLupH5pEh2SI//3+2ItNcHPJUBoVBgXq1Zf//keiosBb1Qzg3AQFixLcyM9uG7SYS7p/z8QFoNjpZhOuRpBULHYsZ9iebuV774Gm8dFARPBfWel6G4vp+L+eHY11AdJYSVpH91tD3l+Vx2ThizYa9HavayngNk3mEwXot6D3SyhdWFW8tcUJh0JrIioYxqAgTIiIYr05qaE2R2qo9T0B0Hui0efI+iFOk2q6IZD8AXRiHXWEo/2zc6a5YbVDMmX0TpJVoDWWuYKnkjUgaelwvH4NE7T23vrO6g3GgrmGw8hg2nYoxLDL2LjbB5r7nWfUT8GF3ghMdveSJm9eXP/buH1pOLDWpfcqDoa/f3zL4ixkVpVb3IP6hnOfyskzC+W8Uqh0S+bMxG0q5KI9wm5RZEN2VtsHstV5D9Q3lgMXtKBpK3l4BV17lNcSkHWcEi+0U1bEYAax+t8RpHX5S0Ai+ECK2Wpt5lyWhDy8wt7OnyRqBXhVJYay3TdlY8/jCH24Vm0tEB4Ejxtet4PWTNeYkESus0z6bBT1ZSTRWhiI9bhu8idzLFZ794G3DEQWCyvEVY6HjbxEY/rMkaUE3mzuOEdGb0n+1WWOGB3U1JcXFFhwO4w4zkRTp0dKQ91A3nngWCxw/j9p2unR1DcZALBj6EXjGMeWQJPftu0ijZ+BZwxwtBVu3QB0si8nTtR9NrgIXJAR8X819Vm/UDyvmcItoEgZtxphIyfB+7bIRPU4SdB2fvZ7gBqHAmFfCp/2kDpAX5spLTdKAAEd5m+zKUKXZEqJEeUgdzgDYjsWtRIEIKR6C0C1tF9gzEz/RV52a0yAYzqYkJHlG9qhlp6xKFXZNE32kOqCOPb10b6V6d4hW4h5kUJXmPjFkXYy3+8UGErUYt6aq68uNtkpwLJbRaw7EE1ekqhITFiQRGkfw6BIXoB/f6e4O3ESD2hRs81NC30wZgCG/2HydAuJDIylDaH89FDOBMnr9fWhONhxUz7kyMRC4zlCQlclASr3GuUspUegZxgunpnfUMwgx0sdvh9q5FGsJ7B7GdimgjQ7Tv9KulBDf26xko1dCAEkXuP8dfocaGeMj6rXfAc2gEmCZsTE5Fa61HIiRTM5wTXXmrSeO+hDiVZSmta3jGq+7cEkMfSob6HdDhcRX6XvyYo0HPZe7FYf5NQRqeYfJjrUKBmTfYhFxwrwGEI+ldeSId9ZsZdEbJzXKa6alt/fp05Kr8B1BFh/EobweHsZf7g8PVo2xzRFl0wJhZGOj/xazsYlIT3wcUdybTVAc6TLfKI7UBtnJFg59SXFz4yCPsiDYdgUUOxJ8Lg+ChQWbfurNWfE7Uysdyr6lAZ43r8vu10f0L9xVF6GYhDRL+VgJv6xsw4wWqxIwLjBmMzJ1MzJ1NjR1c2l6ZWV4cGxpY2l0IHBhbmljAGcGEABkAAAAJAkAABIAAAD7VRAAAQAAAPtVEAABAAAAYCBvciBgAAD7VRAAAQAAANBKEAAGAAAA+1UQAAEAAABvbmUgb2YgLCBib29sZWFuIGAAAPlKEAAJAAAA+1UQAAEAAABpbnRlZ2VyIGAAAAAUSxAACQAAAPtVEAABAAAAY2hhcmFjdGVyIGAAMEsQAAsAAAD7VRAAAQAAAHN0cmluZyAATEsQAAcAAABieXRlIGFycmF5T3B0aW9uIHZhbHVlbmV3dHlwZSBzdHJ1Y3RzZXF1ZW5jZW1hcGVudW11bml0IHZhcmlhbnRuZXd0eXBlIHZhcmlhbnR0dXBsZSB2YXJpYW50c3RydWN0IHZhcmlhbnRhIGJvb2xlYW51bml0YSBzdHJpbmdudWxsAAAyBxAAYgAAAHIDAAAZAAAAMgcQAGIAAABzAwAAGgAAADIHEABiAAAAdAMAABkAAAAyBxAAYgAAAHUDAAAZAAAAMgcQAGIAAAB2AwAAGQAAADIHEABiAAAAdwMAABkAAAAyBxAAYgAAAHgDAAAZAAAAMgcQAGIAAAB5AwAAGQAAADIHEABiAAAA1AMAABEAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAEAAgADAAQABQAGAAcACAAJAP//////////////////CgALAAwADQAOAA8A/////////////////////////////////////////////////////////////////////woACwAMAA0ADgAPAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAEAAgADAAQABQAGAAcACAAJAA//////////////////+gALAAwADQAOAA8AD/////////////////////////////////////////////////////////////////////oACwAMAA0ADgAPAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////MgcQAGIAAACzAQAAGgAAADIHEABiAAAAAAIAABMAAAAyBxAAYgAAAAUCAAAzAAAAMgcQAGIAAAAJAgAAPgAAADIHEABiAAAADwIAADoAAAAyBxAAYgAAAKsBAAA9AAAAMgcQAGIAAACmAQAARQAAACBhdCBsaW5lIAAAAEACEABjAAAA9wEAACEAAABAAhAAYwAAAPsBAAAMAAAAIGNvbHVtbiBAAhAAYwAAAAICAAAhAAAAQAIQAGMAAAALAgAAKgAAAEACEABjAAAADwIAACwAAABAAhAAYwAAABQCAAAJAAAAaW5mLWluZk5hTgAAPgAAAAwAAAAEAAAAPwAAAEAAAABYAEGAo8EAC/sHAQAAAEIAAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5ALcDEABLAAAABQsAAA4AAACkAhAATwAAADwGAAAUAAAApAIQAE8AAAA8BgAAIQAAAKQCEABPAAAAMAYAABQAAACkAhAATwAAADAGAAAhAAAARXJyb3Jhc3NlcnRpb24gZmFpbGVkOiBzZWxmLmlzX2NoYXJfYm91bmRhcnkobmV3X2xlbilFcnJvcigsIGxpbmU6ICwgY29sdW1uOiAAAABFUhAABgAAAEtSEAAIAAAAU1IQAAoAAAD/axAAAQAAAGludmFsaWQgdHlwZTogAACAUhAADgAAABtWEAALAAAAaW52YWxpZCB2YWx1ZTogAKBSEAAPAAAAG1YQAAsAAABFT0Ygd2hpbGUgcGFyc2luZyBhIGxpc3RFT0Ygd2hpbGUgcGFyc2luZyBhbiBvYmplY3RFT0Ygd2hpbGUgcGFyc2luZyBhIHN0cmluZ0VPRiB3aGlsZSBwYXJzaW5nIGEgdmFsdWVleHBlY3RlZCBgOmBleHBlY3RlZCBgLGAgb3IgYF1gZXhwZWN0ZWQgYCxgIG9yIGB9YGV4cGVjdGVkIGlkZW50ZXhwZWN0ZWQgdmFsdWVleHBlY3RlZCBgImBpbnZhbGlk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aWQgUkFEIG1hZ2ljOiAweAAAAABmEAAVAAAAAgBBqszBAAsBCABBtMzBAAt1IAAA6W1dy9YsUOtjeEGmV3Ebi7n1Ky+JZFpnOv7tcjMv54x1AQAAAAAAAAACAAAAAAAAAAEAAAABAAAAAAAAACAAAOggICAgICAgICAgICAgYXQgOgAAAIhmEAABAAAACjogAAEAAAAAAAAAlWYQAAIAAAACAEGyzcEACwEEAEG8zcEACzEgAADoIC0gAAEAAAAAAAAAwGYQAAMAAAAgICAgICA8dW5rbm93bj4AAgAAAAAAAAACAEH4zcEAC50NIACA4O+/vQAyBhAANAAAAGcBAAAwAAAAb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybRBnEAAoAAAAJAAAAAAAAAACAAAAOGcQAGVudGl0eSBub3QgZm91bmRwZXJtaXNzaW9uIGRlbmllZGNvbm5lY3Rpb24gcmVmdXNlZGNvbm5lY3Rpb24gcmVzZXRob3N0IHVucmVhY2hhYmxlbmV0d29yayB1bnJlYWNoYWJsZWNvbm5lY3Rpb24gYWJvcnRlZG5vdCBjb25uZWN0ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9yb3BlcmF0aW9uIHN1Y2Nlc3NmdWxvbmUtdGltZSBpbml0aWFsaXphdGlvbiBtYXkgbm90IGJlIHBlcmZvcm1lZCByZWN1cnNpdmVseQAAAFFqEAA4AAAAY2Fubm90IHJlY3Vyc2l2ZWx5IGFjcXVpcmUgbXV0ZXiUahAAIAAAAFgBEAAsAAAAEwAAAAkAAABfBRAAIwAAANcAAAAUAAAAXwUQACMAAADXAAAAMQAAAExhenlMb2NrIGluc3RhbmNlIGhhcyBwcmV2aW91c2x5IGJlZW4gcG9pc29uZWQAAOxqEAAuAAAAlQMQACEAAACXAQAABQAAADoKAABEAAAADAAAAAQAAACKAAAAiwAAAIwAAAAAAAAACAAAAAQAAACNAAAAjgAAAI8AAACQAAAAkQAAABAAAAAEAAAAkgAAAJMAAACUAAAAlQAAAGNhbm5vdCBtb2RpZnkgdGhlIHBhbmljIGhvb2sgZnJvbSBhIHBhbmlja2luZyB0aHJlYWSIaxAANAAAAAMEEAAcAAAAkAAAAAkAAAAAAAAABAAAAAQAAACWAAAAzAYQAFAAAAAqAgAAEQAAACAob3MgZXJyb3IgKQEAAAAAAAAA9GsQAAsAAAD/axAAAQAAAHVuc3VwcG9ydGVkIGJhY2t0cmFjZWRpc2FibGVkIGJhY2t0cmFjZQDOBRAAHAAAAIoBAAAdAAAAlwAAABAAAAAEAAAAmAAAAJkAAABwYW5pY2tlZCBhdCABAAAAAAAAAIhmEAABAAAAiGYQAAEAAAAAAAAACAAAAAQAAACaAAAAgwUQAEoAAAC9AQAAHQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAAJUHEAAqAAAAsQQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAACVBxAAKgAAALcEAAANAAAARAAAAAwAAAAEAAAAmwAAACAEEABpAAAAfAAAABEAAAAgBBAAaQAAAIkAAAARAAAAAgAAAAQAAAAEAAAAAwAAAAMAAAADAAAAAAAAAAIAAAAFAAAABQAAAAAAAAADAAAAAwAAAAQAAAAEAAAAAQBBoNvBAAtfAwAAAAMAAAACAAAAAwAAAAAAAAADAAAAAwAAAAEAAAAZGxAADBsQABAbEAA2GxAAFBsQAJNKEAAAAAAALRsQACgbEACcShAAAAAAAB4bEACWShAAJBsQADIbEAA6GxAAQYjcwQALoAYbGxAALxsQABcbEAA7GxAAAAAAACEbEACZShAAORsQAAUAAAAMAAAACwAAAAsAAAAEAAAAdR4QAHoeEACGHhAAkR4QAJweEAAFAAAADAAAAAsAAAALAAAABAAAAHUeEAB6HhAAhh4QAJEeEACcHhAAEAAAABEAAAASAAAAEAAAABAAAAATAAAAEgAAAA0AAAAOAAAAFQAAAAwAAAALAAAAFQAAABUAAAAPAAAADgAAABMAAAAmAAAAOAAAABkAAAAXAAAADAAAAAkAAAAKAAAAEAAAABcAAAAOAAAADgAAAA0AAAAUAAAACAAAABsAAAAOAAAAEAAAABYAAAAVAAAACwAAABYAAAANAAAACwAAAAsAAAATAAAAUGcQAGBnEABxZxAAg2cQAJNnEACjZxAAtmcQAMhnEADVZxAA42cQAPhnEAAEaBAAD2gQACRoEAA5aBAASGgQAFZoEABpaBAAj2gQAMdoEADgaBAA92gQAANpEAAMaRAAFmkQACZpEAA9aRAAS2kQAFlpEABmaRAAemkQAIJpEACdaRAAq2kQALtpEADRaRAA5mkQAPFpEAAHahAAFGoQAB9qEAAqahAAAAAAPwAAAL8DAAAABAAAAAQAAAAGAAAAg/miAERObgD8KRUA0VcnAN009QBi28AAPJmVAEGQQwBjUf4Au96rALdhxQA6biQA0k1CAEkG4AAJ6i4AHJLRAOsd/gApsRwA6D6nAPU1ggBEuy4AnOmEALQmcABBfl8A1pE5AFODOQCc9DkAi1+EACj5vQD4HzsA3v+XAA+YBQARL+8AClqLAG0fbQDPfjYACcsnAEZPtwCeZj8ALepfALondQDl68cAPXvxAPc5BwCSUooA+2vqAB+xXwAIXY0AMANWAHv8RgDwq2sAILzPADb0mgDjqR0AXmGRAAgb5gCFmWUAoBRfAI1AaACA2P8AJ3NNAAYGMQDKVhUAyahzAHviYABrjMAAAAAAQPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNQBBqOLBAAsBBABwCXByb2R1Y2VycwIIbGFuZ3VhZ2UBBFJ1c3QADHByb2Nlc3NlZC1ieQMFcnVzdGMdMS45MS4wIChmODI5N2UzNTEgMjAyNS0xMC0yOCkGd2FscnVzBjAuMjYuMQx3YXNtLWJpbmRnZW4HMC4yLjExNwB0D3RhcmdldF9mZWF0dXJlcwcrD211dGFibGUtZ2xvYmFscysTbm9udHJhcHBpbmctZnB0b2ludCsHc2ltZDEyOCsLYnVsay1tZW1vcnkrCHNpZ24tZXh0Kw9yZWZlcmVuY2UtdHlwZXMrCm11bHRpdmFsdWU=")); - const A = Gh(); - (typeof Q == "string" || typeof Request == "function" && Q instanceof Request || typeof URL == "function" && Q instanceof URL) && (Q = fetch(Q)); - const { instance: I, module: g } = await Mh(await Q, A); - return ch(I); +class co extends r { + constructor({ x: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "asinh" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.asinh} = asinh(${I.a});` + ]; + } +} +class ko extends r { + constructor({ x: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "acosh" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.acosh} = acosh(${I.a});` + ]; + } +} +class Fo extends r { + constructor({ x: A }) { + super({ a: A, outTypeFunc: (I) => I, outKey: "atanh" }), this.statements = ({ inputs: I, outputs: g }) => [ + `${g.atanh} = atanh(${I.a});` + ]; + } } -var Jh = `precision highp float; +const Uy = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + Abs: OE, + Acos: so, + Acosh: ko, + Add: pE, + All: Li, + And: yi, + Any: Ui, + Asin: wo, + Asinh: co, + Atan: ao, + Atan2: Go, + Atanh: Fo, + BVec2: bi, + BVec3: Ti, + BVec4: mi, + BinaryOp: iA, + Bool: fi, + Ceil: XE, + Clamp: oi, + Combine: YD, + CombineCovSplat: kC, + CombineGsplat: GC, + CompMult: eD, + CompXor: Yi, + Compilation: zB, + Cos: Do, + Cosh: to, + CovSplat: nA, + Cross: cD, + DebugColorHue: vD, + Degrees: Eo, + Determinant: LD, + Distance: tD, + Div: bE, + Dot: yD, + Dyno: q, + DynoBlock: sI, + DynoBool: eg, + DynoBvec2: YC, + DynoBvec3: qC, + DynoBvec4: fC, + DynoConst: jB, + DynoFloat: OI, + DynoInt: BI, + DynoIsampler2D: zC, + DynoIsampler2DArray: $C, + DynoIsampler3D: gE, + DynoIsamplerCube: CE, + DynoIvec2: KC, + DynoIvec3: xC, + DynoIvec4: uC, + DynoLiteral: ZI, + DynoMat2: PC, + DynoMat2x2: bC, + DynoMat2x3: TC, + DynoMat2x4: mC, + DynoMat3: BB, + DynoMat3x2: VC, + DynoMat3x3: ZC, + DynoMat3x4: OC, + DynoMat4: WC, + DynoMat4x2: vC, + DynoMat4x3: XC, + DynoMat4x4: jC, + DynoOutput: Z, + DynoProgram: CQ, + DynoProgramTemplate: hg, + DynoRemapIndex: pD, + DynoSampler2D: _C, + DynoSampler2DArray: AE, + DynoSampler2DArrayShadow: DE, + DynoSampler2DShadow: iE, + DynoSampler3D: QE, + DynoSamplerCube: EE, + DynoSamplerCubeShadow: oE, + DynoUint: nC, + DynoUniform: x, + DynoUsampler2D: QQ, + DynoUsampler2DArray: OA, + DynoUsampler3D: IE, + DynoUsamplerCube: BE, + DynoUvec2: rC, + DynoUvec3: lC, + DynoUvec4: pC, + DynoValue: MI, + DynoVec2: dC, + DynoVec3: UI, + DynoVec4: zI, + Equal: ei, + Exp: Ai, + Exp2: Ii, + ExtendVec: ND, + FaceForward: SD, + Float: Pi, + FloatBitsToInt: gD, + FloatBitsToUint: QD, + Floor: vE, + Fract: _E, + GreaterThan: Ri, + GreaterThanEqual: Mi, + Gsplat: j, + GsplatNormal: tC, + GsplatToCovSplat: sC, + Hash: uD, + Hash2: PD, + Hash3: bD, + Hash4: TD, + HashFloat: mD, + HashVec2: VD, + HashVec3: ZD, + HashVec4: OD, + IMod: TE, + IVec2: Vi, + IVec3: Zi, + IVec4: Oi, + Int: pi, + IntBitsToFloat: BD, + Inverse: HD, + InverseSqrt: Ei, + IsInf: hi, + IsNan: Gi, + Length: hD, + LessThan: Ni, + LessThanEqual: Si, + Log: gi, + Log2: Qi, + Mat2: $i, + Mat3: AD, + Mat4: ID, + Max: Di, + Min: ii, + Mix: wi, + Mod: mE, + Modf: VE, + Mul: PE, + Neg: ZE, + Normalize: kD, + NormalizedDepth: WD, + Not: Fi, + NotEqual: Ji, + NumCovSplats: oC, + NumExtSplats: iC, + NumPackedSplats: QC, + Or: ci, + Outer: JD, + OutputCovSplat: UC, + OutputExtCovSplat: HC, + OutputExtendedSplat: LC, + OutputPackedSplat: JC, + OutputRgba8: QB, + PackHalf2x16: wD, + PackSnorm2x16: ED, + PackUnorm2x16: DD, + PagedSplatTexCoord: NC, + PcgHash: jA, + PcgMix: _I, + PcgNext: XA, + Pow: $E, + ProjectH: FD, + Radians: Co, + ReadCovSplat: wC, + ReadExtSplat: DC, + ReadPackedSplat: CC, + ReadPackedSplatRange: EC, + ReflectVec: RD, + RefractVec: MD, + Round: zE, + Select: Hi, + Shl: Ki, + Shr: ri, + Sign: WE, + SimpleCast: RA, + Sin: io, + Sinh: ho, + Smoothstep: ai, + SplatTexCoord: FC, + Split: nD, + SplitCovSplat: cC, + SplitGsplat: aC, + Sqr: Bi, + Sqrt: Ci, + Step: si, + Sub: uE, + Swizzle: rD, + TCovSplats: _B, + TExtSplats: _Q, + TPackedSplats: IQ, + Tan: oo, + Tanh: yo, + TexelFetch: go, + Texture: Io, + TextureSize: Ao, + TransformDir: _D, + TransformGsplat: yC, + TransformPosition: zD, + TransformQuaternion: $D, + Transpose: UD, + TrinaryOp: uI, + Trunc: jE, + UVec2: Wi, + UVec3: vi, + UVec4: Xi, + Uint: ui, + UintBitsToFloat: CD, + UintToRgba8: aD, + UnaryOp: r, + UnpackHalf2x16: sD, + UnpackSnorm2x16: iD, + UnpackUnorm2x16: oD, + Vec2: ji, + Vec3: zi, + Vec4: _i, + Xor: ki, + abs: T0, + acos: pG, + acosh: ZG, + add: lA, + all: Na, + and: Da, + any: Fa, + arrayIndex: LG, + arrayLength: HG, + asin: fG, + asinh: VG, + atan: uG, + atan2: PG, + atanh: OG, + bool: ea, + bvec2: La, + bvec3: Ha, + bvec4: na, + ceil: Z0, + clamp: Qa, + combine: GI, + combineCovSplat: IB, + combineGsplat: QI, + comment: UG, + compMult: BG, + compXor: Sa, + cos: lG, + cosh: TG, + cross: za, + debugColorHue: SG, + defineCovSplat: LI, + defineExtSplats: AB, + defineGsplat: YA, + defineGsplatNormal: hC, + definePackedSplats: gQ, + degrees: qG, + determinant: iG, + distance: ja, + div: ug, + dot: GD, + dyno: jQ, + dynoBlock: LA, + dynoBool: kw, + dynoBvec2: Sw, + dynoBvec3: Jw, + dynoBvec4: Hw, + dynoConst: AA, + dynoDeclare: zQ, + dynoFloat: EI, + dynoFor: JG, + dynoIf: MG, + dynoInt: Nw, + dynoIsampler2D: Zw, + dynoIsampler2DArray: vw, + dynoIsampler3D: zw, + dynoIsamplerCube: As, + dynoIvec2: Mw, + dynoIvec3: Lw, + dynoIvec4: Yw, + dynoLiteral: Tg, + dynoMat2: Kw, + dynoMat2x2: dw, + dynoMat2x3: qw, + dynoMat2x4: lw, + dynoMat3: xw, + dynoMat3x2: fw, + dynoMat3x3: pw, + dynoMat3x4: uw, + dynoMat4: Pw, + dynoMat4x2: bw, + dynoMat4x3: Tw, + dynoMat4x4: mw, + dynoSampler2D: Ow, + dynoSampler2DArray: Xw, + dynoSampler2DArrayShadow: Qs, + dynoSampler2DShadow: gs, + dynoSampler3D: _w, + dynoSamplerCube: Is, + dynoSamplerCubeShadow: Bs, + dynoSwitch: eG, + dynoUint: Fw, + dynoUsampler2D: Vw, + dynoUsampler2DArray: Ww, + dynoUsampler3D: jw, + dynoUsamplerCube: $w, + dynoUvec2: Rw, + dynoUvec3: Uw, + dynoUvec4: nw, + dynoVec2: ew, + dynoVec3: SI, + dynoVec4: rw, + equal: ca, + exp: X0, + exp2: j0, + extendVec: gG, + faceforward: _a, + float: di, + floatBitsToInt: xi, + floatBitsToUint: ua, + floor: V0, + fract: Pg, + greaterThan: ya, + greaterThanEqual: ti, + gsplatNormal: LQ, + gsplatToCovSplat: mg, + hash: KD, + hash2: dD, + hash3: qD, + hash4: lD, + hashFloat: FG, + hashVec2: NG, + hashVec3: xD, + hashVec4: fQ, + imod: xQ, + int: Ja, + intBitsToFloat: Pa, + inverse: DG, + inversesqrt: Ia, + isAllFloatType: JI, + isBoolType: fI, + isFloatType: Rg, + isInf: ia, + isIntType: dA, + isMat2: nI, + isMat3: YI, + isMat4: rI, + isMatFloatType: ZB, + isNan: Ea, + isScalarType: pI, + isUintType: qA, + isVector2Type: XI, + isVector3Type: jI, + isVector4Type: Mg, + isVectorType: Qw, + ivec2: Ya, + ivec3: ra, + ivec4: Ka, + length: Xa, + lessThan: ha, + lessThanEqual: ta, + literalNegOne: iw, + literalOne: Ew, + literalZero: gg, + log: z0, + log2: _0, + mat2: xa, + mat3: fa, + mat4: pa, + max: xE, + min: ga, + mix: fE, + mod: lE, + modf: b0, + mul: kA, + neg: aB, + normalize: tg, + normalizedDepth: fD, + not: sa, + notEqual: ka, + numCovSplats: ww, + numExtSplats: ow, + numPackedSplats: Dw, + numberAsFloat: $, + numberAsInt: NA, + numberAsUint: SA, + or: oa, + outer: CG, + outputCovSplat: SC, + outputCovSplatDepth: eC, + outputExtCovSplat: nQ, + outputExtendedSplat: RC, + outputPackedSplat: gB, + outputRgba8: hw, + outputSplatDepth: MC, + packHalf2x16: Oa, + packSnorm2x16: Ta, + packUnorm2x16: Va, + pagedSplatTexCoord: HQ, + pcgHash: kG, + pcgMix: yG, + pcgNext: cG, + pow: v0, + projectH: IG, + radians: dG, + readCovSplat: sw, + readExtSplat: IC, + readPackedSplat: $B, + readPackedSplatRange: AC, + reflectVec: $a, + refractVec: AG, + remapIndex: tG, + round: W0, + sameSizeIvec: Cw, + sameSizeUvec: vB, + sameSizeVec: Bw, + select: GB, + shl: Ga, + shr: aa, + sign: m0, + sin: pQ, + sinh: bG, + smoothstep: Ca, + splatTexCoord: $Q, + split: vI, + splitCovSplat: Vg, + splitGsplat: fA, + sqr: $0, + sqrt: Aa, + step: Ba, + sub: CI, + swizzle: QG, + tan: xG, + tanh: mG, + texelFetch: rG, + texture: YG, + textureSize: nG, + transformDir: jD, + transformGsplat: gC, + transformPos: XD, + transformQuat: RG, + transpose: EG, + trunc: O0, + typeLiteral: XB, + uint: Ua, + uintBitsToFloat: ba, + uintToRgba8: va, + uniform: cw, + unindent: GA, + unindentLines: z, + unpackHalf2x16: Wa, + unpackSnorm2x16: ma, + unpackUnorm2x16: Za, + uvec2: da, + uvec3: qa, + uvec4: la, + valType: BA, + vec2: qi, + vec3: xI, + vec4: li, + vectorDim: WB, + vectorElementType: OB, + xor: wa +}, Symbol.toStringTag, { value: "Module" })); +var WG = `precision highp float; precision highp int; precision highp sampler2D; precision highp usampler2D; @@ -6310,7 +5356,7 @@ void main() { if ((index >= 0) && (index < targetCount)) { produceSplat(index); } -}`, Uh = `precision highp float; +}`, vG = `precision highp float; precision highp int; precision highp sampler2D; precision highp usampler2D; @@ -6350,7 +5396,7 @@ void main() { if ((index >= 0) && (index < targetCount)) { produceSplat(index); } -}`, th = `precision highp float; +}`, XG = `precision highp float; precision highp int; precision highp sampler2D; precision highp usampler2D; @@ -6392,352 +5438,42 @@ void main() { if ((index >= 0) && (index < targetCount)) { produceSplat(index); } -}`, Hh = `precision highp float; +}`, jG = `precision highp float; precision highp int; precision highp sampler2D; precision highp usampler2D; precision highp isampler2D; precision highp sampler2DArray; -precision highp usampler2DArray; -precision highp isampler2DArray; -precision highp sampler3D; -precision highp usampler3D; -precision highp isampler3D; - -#include - -uniform uint targetLayer; -uniform int targetBase; -uniform int targetCount; - -out vec4 target; - -{{ GLOBALS }} - -void computeReadback(int _index) { - {{ STATEMENTS }} -} - -void main() { - int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x); - int index = targetIndex - targetBase; - - if ((index >= 0) && (index < targetCount)) { - computeReadback(index); - } else { - target = vec4(0.0, 0.0, 0.0, 0.0); - } -}`, Lh = `precision highp float; -precision highp int; - -#include - -uniform float near; -uniform float far; -uniform bool encodeLinear; -uniform float time; -uniform bool debugFlag; -uniform float maxStdDev; -uniform float minAlpha; -uniform bool stochastic; -uniform bool disableFalloff; -uniform float falloff; - -uniform bool splatTexEnable; -uniform sampler3D splatTexture; -uniform mat2 splatTexMul; -uniform vec2 splatTexAdd; -uniform float splatTexNear; -uniform float splatTexFar; -uniform float splatTexMid; - -out vec4 fragColor; - -in vec4 vRgba; -in vec2 vSplatUv; -in vec3 vNdc; -flat in uint vSplatIndex; - -void main() { - vec4 rgba = vRgba; - - float z = dot(vSplatUv, vSplatUv); - if (!splatTexEnable) { - if (z > (maxStdDev * maxStdDev)) { - discard; - } - } else { - vec2 uv = splatTexMul * vSplatUv + splatTexAdd; - float ndcZ = vNdc.z; - float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near)); - float clampedFar = max(splatTexFar, splatTexNear); - float clampedDepth = clamp(depth, splatTexNear, clampedFar); - float logDepth = log2(clampedDepth + 1.0); - float logNear = log2(splatTexNear + 1.0); - float logFar = log2(clampedFar + 1.0); - - float texZ; - if (splatTexMid > 0.0) { - float clampedMid = clamp(splatTexMid, splatTexNear, clampedFar); - float logMid = log2(clampedMid + 1.0); - texZ = (clampedDepth <= clampedMid) ? - (0.5 * ((logDepth - logNear) / (logMid - logNear))) : - (0.5 * ((logDepth - logMid) / (logFar - logMid)) + 0.5); - } else { - texZ = (logDepth - logNear) / (logFar - logNear); - } - - vec4 modulate = texture(splatTexture, vec3(uv, 1.0 - texZ)); - rgba *= modulate; - } - - rgba.a *= mix(1.0, exp(-0.5 * z), falloff); - - if (rgba.a < minAlpha) { - discard; - } - if (encodeLinear) { - rgba.rgb = srgbToLinear(rgba.rgb); - } - - if (stochastic) { - const bool STEADY = false; - uint uTime = STEADY ? 0u : floatBitsToUint(time); - uvec2 coord = uvec2(gl_FragCoord.xy); - uint state = uTime + 0x9e3779b9u * coord.x + 0x85ebca6bu * coord.y + 0xc2b2ae35u * uint(vSplatIndex); - state = state * 747796405u + 2891336453u; - uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u; - hash = (hash >> 22u) ^ hash; - float rand = float(hash) / 4294967296.0; - if (rand < rgba.a) { - fragColor = vec4(rgba.rgb, 1.0); - } else { - discard; - } - } else { - #ifdef PREMULTIPLIED_ALPHA - fragColor = vec4(rgba.rgb * rgba.a, rgba.a); - #else - fragColor = rgba; - #endif - } -}`, Yh = `precision highp float; -precision highp int; -precision highp usampler2DArray; - -#include - -attribute uint splatIndex; - -out vec4 vRgba; -out vec2 vSplatUv; -out vec3 vNdc; -flat out uint vSplatIndex; - -uniform vec2 renderSize; -uniform uint numSplats; -uniform vec4 renderToViewQuat; -uniform vec3 renderToViewPos; -uniform float maxStdDev; -uniform float minPixelRadius; -uniform float maxPixelRadius; -uniform float time; -uniform float deltaTime; -uniform bool debugFlag; -uniform float minAlpha; -uniform bool stochastic; -uniform bool enable2DGS; -uniform float blurAmount; -uniform float preBlurAmount; -uniform float focalDistance; -uniform float apertureAngle; -uniform float clipXY; -uniform float focalAdjustment; - -uniform usampler2DArray packedSplats; -uniform vec4 rgbMinMaxLnScaleMinMax; - -void main() { - - gl_Position = vec4(0.0, 0.0, 2.0, 1.0); - - if (uint(gl_InstanceID) >= numSplats) { - return; - } - - ivec3 texCoord; - if (stochastic) { - texCoord = ivec3( - uint(gl_InstanceID) & SPLAT_TEX_WIDTH_MASK, - (uint(gl_InstanceID) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK, - (uint(gl_InstanceID) >> SPLAT_TEX_LAYER_BITS) - ); - } else { - if (splatIndex == 0xffffffffu) { - - return; - } - texCoord = ivec3( - splatIndex & SPLAT_TEX_WIDTH_MASK, - (splatIndex >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK, - splatIndex >> SPLAT_TEX_LAYER_BITS - ); - } - uvec4 packedData = texelFetch(packedSplats, texCoord, 0); - - vec3 center, scales; - vec4 quaternion, rgba; - unpackSplatEncoding(packedData, center, scales, quaternion, rgba, rgbMinMaxLnScaleMinMax); - - if (rgba.a < minAlpha) { - return; - } - bvec3 zeroScales = equal(scales, vec3(0.0)); - if (all(zeroScales)) { - return; - } - - - vec3 viewCenter = quatVec(renderToViewQuat, center) + renderToViewPos; - - - if (viewCenter.z >= 0.0) { - return; - } - - - vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0); - - - if (abs(clipCenter.z) >= clipCenter.w) { - return; - } - - - float clip = clipXY * clipCenter.w; - if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) { - return; - } - - - vSplatIndex = splatIndex; - - - vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion); - - if (enable2DGS && any(zeroScales)) { - vRgba = rgba; - vSplatUv = position.xy * maxStdDev; - - vec3 offset; - if (zeroScales.z) { - offset = vec3(vSplatUv.xy * scales.xy, 0.0); - } else if (zeroScales.y) { - offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z); - } else { - offset = vec3(0.0, vSplatUv.xy * scales.yz); - } - - vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset); - gl_Position = projectionMatrix * vec4(viewPos, 1.0); - vNdc = gl_Position.xyz / gl_Position.w; - return; - } - - - vec3 ndcCenter = clipCenter.xyz / clipCenter.w; - - - mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion); - mat3 cov3D = RS * transpose(RS); - - - vec2 scaledRenderSize = renderSize * focalAdjustment; - vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]); - - mat3 J; - if(isOrthographic) { - J = mat3( - focal.x, 0.0, 0.0, - 0.0, focal.y, 0.0, - 0.0, 0.0, 0.0 - ); - } else { - float invZ = 1.0 / viewCenter.z; - vec2 J1 = focal * invZ; - vec2 J2 = -(J1 * viewCenter.xy) * invZ; - J = mat3( - J1.x, 0.0, J2.x, - 0.0, J1.y, J2.y, - 0.0, 0.0, 0.0 - ); - } - - - - - - - - - mat3 cov2D = transpose(J) * cov3D * J; - float a = cov2D[0][0]; - float d = cov2D[1][1]; - float b = cov2D[0][1]; - - - a += preBlurAmount; - d += preBlurAmount; - - float fullBlurAmount = blurAmount; - if ((focalDistance > 0.0) && (apertureAngle > 0.0)) { - float focusRadius = maxPixelRadius; - if (viewCenter.z < 0.0) { - float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z); - float apertureRadius = focal.x * tan(0.5 * apertureAngle); - focusRadius = focusBlur * apertureRadius; - } - fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius)); - } +precision highp usampler2DArray; +precision highp isampler2DArray; +precision highp sampler3D; +precision highp usampler3D; +precision highp isampler3D; - - float detOrig = a * d - b * b; - a += fullBlurAmount; - d += fullBlurAmount; - float det = a * d - b * b; +#include - - float blurAdjust = sqrt(max(0.0, detOrig / det)); - rgba.a *= blurAdjust; - if (rgba.a < minAlpha) { - return; - } +uniform uint targetLayer; +uniform int targetBase; +uniform int targetCount; - - float eigenAvg = 0.5 * (a + d); - float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det)); - float eigen1 = eigenAvg + eigenDelta; - float eigen2 = eigenAvg - eigenDelta; +out vec4 target; - vec2 eigenVec1 = normalize(vec2((abs(b) < 0.001) ? 1.0 : b, eigen1 - a)); - vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x); +{{ GLOBALS }} - float scale1 = min(maxPixelRadius, maxStdDev * sqrt(eigen1)); - float scale2 = min(maxPixelRadius, maxStdDev * sqrt(eigen2)); - if (scale1 < minPixelRadius && scale2 < minPixelRadius) { - return; - } +void computeReadback(int _index) { + {{ STATEMENTS }} +} - - vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2; - vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset; - vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z); +void main() { + int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x); + int index = targetIndex - targetBase; - vRgba = rgba; - vSplatUv = position.xy * maxStdDev; - vNdc = ndc; - gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw); -}`, Kh = `const float LN_SCALE_MIN = -12.0; + if ((index >= 0) && (index < targetCount)) { + computeReadback(index); + } else { + target = vec4(0.0, 0.0, 0.0, 0.0); + } +}`, zG = `const float LN_SCALE_MIN = -12.0; const float LN_SCALE_MAX = 9.0; const uint SPLAT_TEX_WIDTH_BITS = 11u; @@ -7261,7 +5997,7 @@ vec3 debugColorHue(uint i) { vec3 rgb = clamp(abs(mod(hue*6.0 + vec3(0.0,4.0,2.0), 6.0) - 3.0) - 1.0, 0.0, 1.0); return mix(vec3(1.0), rgb, 0.85); -}`, eh = `precision highp float; +}`, _G = `precision highp float; precision highp int; #include @@ -7326,7 +6062,7 @@ void main() { #endif #include -}`, rh = `precision highp float; +}`, $G = `precision highp float; precision highp int; precision highp usampler2DArray; @@ -7594,18 +6330,16 @@ void main() { #include }`; -let MQ = null; -function Ag() { - return MQ || (G.ShaderChunk.splatDefines = Kh, MQ = { - oldSplatVertex: Yh, - oldSplatFragment: Lh, - splatVertex: rh, - splatFragment: eh, - computeVec4Template: Hh, - computeUvec4Vec4Template: Uh, - computeUvec4x2Vec4Template: th, - computeUvec4Template: Jh - }), MQ; +let NQ = null; +function yg() { + return NQ || (a.ShaderChunk.splatDefines = zG, NQ = { + splatVertex: $G, + splatFragment: _G, + computeVec4Template: jG, + computeUvec4Vec4Template: vG, + computeUvec4x2Vec4Template: XG, + computeUvec4Template: WG + }), NQ; } const WA = class WA { constructor({ renderer: A } = {}) { @@ -7631,28 +6365,28 @@ const WA = class WA { } // Ensure our render target is large enough for the readback of capacity indices. ensureCapacity(A) { - const { width: I, height: g, depth: B, maxSplats: C } = BA(A); - (!this.target || C > this.capacity) && (this.dispose(), this.capacity = C, this.target = new G.WebGLArrayRenderTarget(I, g, B, { + const { width: I, height: g, depth: B, maxSplats: C } = EA(A); + (!this.target || C > this.capacity) && (this.dispose(), this.capacity = C, this.target = new a.WebGLArrayRenderTarget(I, g, B, { depthBuffer: !1, stencilBuffer: !1, generateMipmaps: !1, - magFilter: G.NearestFilter, - minFilter: G.NearestFilter - }), this.target.texture.format = G.RGBAFormat, this.target.texture.type = G.UnsignedByteType, this.target.texture.internalFormat = "RGBA8", this.target.scissorTest = !0); + magFilter: a.NearestFilter, + minFilter: a.NearestFilter + }), this.target.texture.format = a.RGBAFormat, this.target.texture.type = a.UnsignedByteType, this.target.texture.internalFormat = "RGBA8", this.target.scissorTest = !0); } // Get a program and THREE.RawShaderMaterial for a given Rgba8Readback, // generating it if necessary and caching the result. prepareProgramMaterial(A) { let I = WA.readbackProgram.get(A); if (!I) { - const B = cA( + const B = LA( { index: "int" }, { rgba8: "vec4" }, - ({ index: C }) => (A.inputs.index = C, { rgba8: new oB({ rgba8: A.outputs.rgba8 }) }) + ({ index: C }) => (A.inputs.index = C, { rgba8: new QB({ rgba8: A.outputs.rgba8 }) }) ); - WA.programTemplate || (WA.programTemplate = new Fg( - Ag().computeVec4Template - )), I = new DQ({ + WA.programTemplate || (WA.programTemplate = new hg( + yg().computeVec4Template + )), I = new CQ({ graph: B, inputs: { index: "_index" }, outputs: { rgba8: "target" }, @@ -7685,15 +6419,15 @@ const WA = class WA { throw new Error("No renderer"); if (!this.target) throw new Error("No target"); - const B = P * XA; + const B = P * ZA; I.uniforms.targetBase.value = 0, I.uniforms.targetCount.value = A; let C = 0; for (; C < A; ) { - const E = Math.floor(C / B), D = E * B, i = Math.min( - XA, - Math.ceil((A - D) / P) + const E = Math.floor(C / B), i = E * B, o = Math.min( + ZA, + Math.ceil((A - i) / P) ); - I.uniforms.targetLayer.value = E, this.target.scissor.set(0, 0, P, i), g.setRenderTarget(this.target, E), g.xr.enabled = !1, g.autoClear = !1, WA.fullScreenQuad.render(g), C += P * i; + I.uniforms.targetLayer.value = E, this.target.scissor.set(0, 0, P, o), g.setRenderTarget(this.target, E), g.xr.enabled = !1, g.autoClear = !1, WA.fullScreenQuad.render(g), C += P * o; } this.count = A; } @@ -7712,29 +6446,29 @@ const WA = class WA { ); const B = new Uint8Array( A instanceof ArrayBuffer ? A : A.buffer - ), C = P * XA; + ), C = P * ZA; let E = 0; - const D = []; + const i = []; for (; E < this.count; ) { - const i = Math.floor(E / C), w = i * C, s = Math.min( - XA, - Math.ceil((this.count - w) / P) + const o = Math.floor(E / C), D = o * C, s = Math.min( + ZA, + Math.ceil((this.count - D) / P) ); - I.setRenderTarget(this.target, i); - const o = P * s * 4, y = B.subarray( - w * 4, - w * 4 + o + I.setRenderTarget(this.target, o); + const w = P * s * 4, G = B.subarray( + D * 4, + D * 4 + w ), h = I == null ? void 0 : I.readRenderTargetPixelsAsync( this.target, 0, 0, P, s, - y + G ); - D.push(h), E += P * s; + i.push(h), E += P * s; } - return Promise.all(D).then(() => A); + return Promise.all(i).then(() => A); } // Perform render operation to run the Rgba8Readback program // but don't perform the readback yet. @@ -7774,174 +6508,22 @@ const WA = class WA { this.ensureCapacity(I); const { program: C, material: E } = this.prepareProgramMaterial(A); C.update(); - const D = this.saveRenderState(this.renderer); + const i = this.saveRenderState(this.renderer); this.process({ count: I, material: E }); - const i = this.read({ readback: B }); - return this.resetRenderState(this.renderer, D), i; + const o = this.read({ readback: B }); + return this.resetRenderState(this.renderer, i), o; } getTexture() { var A; return (A = this.target) == null ? void 0 : A.texture; } }; -WA.programTemplate = null, WA.readbackProgram = /* @__PURE__ */ new WeakMap(), WA.fullScreenQuad = new VQ( - new G.RawShaderMaterial({ visible: !1 }) +WA.programTemplate = null, WA.readbackProgram = /* @__PURE__ */ new WeakMap(), WA.fullScreenQuad = new OQ( + new a.RawShaderMaterial({ visible: !1 }) ); -let Ig = WA; -const nA = class nA { - constructor(A = {}) { - if (this.capacity = 0, this.count = 0, this.array = null, this.readback = null, this.source = null, this.needsUpdate = !0, this.dyno = new x({ - key: "rgbaArray", - type: RB, - globals: () => [lw], - value: { - texture: nA.getEmpty(), - count: 0 - }, - update: (I) => (I.texture = this.getTexture(), I.count = this.count, I) - }), A.array) { - this.array = A.array; - const I = Math.floor(this.array.length / 4); - this.capacity = Math.ceil(I / P) * P, this.capacity > I && (this.array = new Uint8Array(this.capacity * 4), this.array.set(A.array)), this.count = Math.min( - I, - A.count ?? Number.POSITIVE_INFINITY - ); - } else - this.capacity = A.capacity ?? 0, this.count = 0; - } - // Free up resources - dispose() { - this.readback && (this.readback.dispose(), this.readback = null), this.source && (this.source.dispose(), this.source = null); - } - // Ensure that our array is large enough to hold capacity RGBA8 values. - ensureCapacity(A) { - var I; - if (!this.array || A > (((I = this.array) == null ? void 0 : I.length) ?? 0) / 4) { - this.capacity = BA(A).maxSplats; - const g = new Uint8Array(this.capacity * 4); - this.array && g.set(this.array), this.array = g; - } - return this.array; - } - // Get the THREE.DataArrayTexture from either the readback or the source. - getTexture() { - var I; - let A = (I = this.readback) == null ? void 0 : I.getTexture(); - return (this.source || this.array) && (A = this.maybeUpdateSource()), A ?? nA.getEmpty(); - } - // Create or get a THREE.DataArrayTexture from the data array. - maybeUpdateSource() { - if (!this.array) - throw new Error("No array"); - if (this.needsUpdate || !this.source) { - if (this.needsUpdate = !1, this.source) { - const { width: A, height: I, depth: g } = this.source.image; - this.capacity !== A * I * g && (this.source.dispose(), this.source = null); - } - if (this.source) - this.array.buffer !== this.source.image.data.buffer && (this.source.image.data = new Uint8Array(this.array.buffer)); - else { - const { width: A, height: I, depth: g } = BA(this.capacity); - this.source = new G.DataArrayTexture( - this.array, - A, - I, - g - ), this.source.format = G.RGBAFormat, this.source.type = G.UnsignedByteType, this.source.internalFormat = "RGBA8", this.source.needsUpdate = !0; - } - this.source.needsUpdate = !0; - } - return this.source; - } - // Generate the RGBA8 values from a Rgba8Readback dyno program. - render({ - reader: A, - count: I, - renderer: g - }) { - this.readback || (this.readback = new Ig({ renderer: g })), this.readback.render({ reader: A, count: I, renderer: g }), this.capacity = this.readback.capacity, this.count = this.readback.count; - } - // Extract the RGBA8 values from a PackedSplats collection. - fromPackedSplats({ - packedSplats: A, - base: I, - count: g, - renderer: B - }) { - const { dynoSplats: C, dynoBase: E, dynoCount: D, reader: i } = nA.makeDynos(); - return C.packedSplats = A, E.value = I, D.value = g, this.render({ reader: i, count: g, renderer: B }), this; - } - // Read back the RGBA8 values from the readback buffer. - async read() { - if (!this.readback) - throw new Error("No readback"); - return (!this.array || this.array.length < this.count * 4) && (this.array = new Uint8Array(this.capacity * 4)), (await this.readback.readback({ readback: this.array })).subarray(0, this.count * 4); - } - async getArray() { - if (this.readback) - return await this.read(); - if (this.array) - return this.array; - throw new Error("No array"); - } - // Can be used where you need an uninitialized THREE.DataArrayTexture like - // a uniform you will update with the result of this.getTexture() later. - static getEmpty() { - if (!nA.emptySource) { - const A = new Uint8Array(4); - nA.emptySource = new G.DataArrayTexture(A, 1, 1, 1), nA.emptySource.format = G.RGBAFormat, nA.emptySource.type = G.UnsignedByteType, nA.emptySource.internalFormat = "RGBA8", nA.emptySource.needsUpdate = !0; - } - return nA.emptySource; - } - // Create a dyno program that can extract RGBA8 values from a PackedSplats - static makeDynos() { - if (!nA.dynos) { - const A = new MB(), I = new EI({ value: 0 }), g = new EI({ value: 0 }), B = cA( - { index: "int" }, - { rgba8: "vec4" }, - ({ index: C }) => { - if (!C) - throw new Error("index is undefined"); - C = qA(C, I); - const E = lC( - A, - C, - I, - g - ); - return { rgba8: uA(E).outputs.rgba }; - } - ); - nA.dynos = { dynoSplats: A, dynoBase: I, dynoCount: g, reader: B }; - } - return nA.dynos; - } -}; -nA.emptySource = null, nA.dynos = null; -let TQ = nA; -const RB = { type: "RgbaArray" }, lw = oA(` - struct RgbaArray { - sampler2DArray texture; - int count; - }; -`); -function nk(Q, A) { - return new d({ - inTypes: { rgba: RB, index: "int" }, - outTypes: { rgba: "vec4" }, - inputs: { rgba: Q, index: A }, - globals: () => [lw], - statements: ({ inputs: g, outputs: B }) => z(` - if ((${g.index} >= 0) && (${g.index} < ${g.rgba}.count)) { - ${B.rgba} = texelFetch(${g.rgba}.texture, splatTexCoord(${g.index}), 0); - } else { - ${B.rgba} = vec4(0.0, 0.0, 0.0, 0.0); - } - `) - }).outputs.rgba; -} -var nh = /* @__PURE__ */ ((Q) => (Q.ALL = "all", Q.PLANE = "plane", Q.SPHERE = "sphere", Q.BOX = "box", Q.ELLIPSOID = "ellipsoid", Q.CYLINDER = "cylinder", Q.CAPSULE = "capsule", Q.INFINITE_CONE = "infinite_cone", Q))(nh || {}); -function dh(Q) { +let cg = WA; +var Ah = /* @__PURE__ */ ((Q) => (Q.ALL = "all", Q.PLANE = "plane", Q.SPHERE = "sphere", Q.BOX = "box", Q.ELLIPSOID = "ellipsoid", Q.CYLINDER = "cylinder", Q.CAPSULE = "capsule", Q.INFINITE_CONE = "infinite_cone", Q))(Ah || {}); +function Ih(Q) { switch (Q) { case "all": return 0; @@ -7963,8 +6545,8 @@ function dh(Q) { throw new Error(`Unknown SDF type: ${Q}`); } } -var qh = /* @__PURE__ */ ((Q) => (Q.MULTIPLY = "multiply", Q.SET_RGB = "set_rgb", Q.ADD_RGBA = "add_rgba", Q))(qh || {}); -function xh(Q) { +var gh = /* @__PURE__ */ ((Q) => (Q.MULTIPLY = "multiply", Q.SET_RGB = "set_rgb", Q.ADD_RGBA = "add_rgba", Q))(gh || {}); +function Qh(Q) { switch (Q) { case "multiply": return 0; @@ -7976,14 +6558,14 @@ function xh(Q) { throw new Error(`Unknown blend mode: ${Q}`); } } -class lh extends G.Object3D { +class Bh extends a.Object3D { constructor(A = {}) { super(); - const { type: I, invert: g, opacity: B, color: C, displace: E, radius: D } = A; - this.type = I ?? "sphere", this.invert = g ?? !1, this.opacity = B ?? 1, this.color = C ?? new G.Color(1, 1, 1), this.displace = E ?? new G.Vector3(0, 0, 0), this.radius = D ?? 0; + const { type: I, invert: g, opacity: B, color: C, displace: E, radius: i } = A; + this.type = I ?? "sphere", this.invert = g ?? !1, this.opacity = B ?? 1, this.color = C ?? new a.Color(1, 1, 1), this.displace = E ?? new a.Vector3(0, 0, 0), this.radius = i ?? 0; } } -const IQ = class IQ extends G.Object3D { +const _g = class _g extends a.Object3D { constructor(A = {}) { const { name: I, @@ -7991,9 +6573,9 @@ const IQ = class IQ extends G.Object3D { sdfSmooth: B = 0, softEdge: C = 0, invert: E = !1, - sdfs: D = null + sdfs: i = null } = A; - super(), this.rgbaBlendMode = g, this.sdfSmooth = B, this.softEdge = C, this.invert = E, this.sdfs = D, this.ordering = IQ.nextOrdering++, this.name = I ?? `Edit ${this.ordering}`; + super(), this.rgbaBlendMode = g, this.sdfSmooth = B, this.softEdge = C, this.invert = E, this.sdfs = i, this.ordering = _g.nextOrdering++, this.name = I ?? `Edit ${this.ordering}`; } addSdf(A) { this.sdfs == null && (this.sdfs = []), this.sdfs.includes(A) || this.sdfs.push(A); @@ -8002,28 +6584,28 @@ const IQ = class IQ extends G.Object3D { this.sdfs != null && (this.sdfs = this.sdfs.filter((I) => I !== A)); } }; -IQ.nextOrdering = 1; -let Sg = IQ; -class ph { +_g.nextOrdering = 1; +let vg = _g; +class Ch { constructor({ maxSdfs: A, maxEdits: I }) { this.maxSdfs = Math.max(16, A ?? 0), this.numSdfs = 0, this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4), this.sdfFloatData = new Float32Array(this.sdfData.buffer), this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs), this.dynoSdfArray = new x({ key: "sdfArray", - type: kB, - globals: () => [FB], + type: hB, + globals: () => [tB], value: { numSdfs: 0, sdfTexture: this.sdfTexture }, update: (g) => (g.numSdfs = this.numSdfs, g.sdfTexture = this.sdfTexture, g) - }), this.maxEdits = Math.max(16, I ?? 0), this.numEdits = 0, this.editData = new Uint32Array(this.maxEdits * 4), this.editFloatData = new Float32Array(this.editData.buffer), this.dynoNumEdits = new EI({ value: 0 }), this.dynoEdits = this.newEdits(this.editData, this.maxEdits); + }), this.maxEdits = Math.max(16, I ?? 0), this.numEdits = 0, this.editData = new Uint32Array(this.maxEdits * 4), this.editFloatData = new Float32Array(this.editData.buffer), this.dynoNumEdits = new BI({ value: 0 }), this.dynoEdits = this.newEdits(this.editData, this.maxEdits); } newSdfTexture(A, I) { - const g = new G.DataTexture( + const g = new a.DataTexture( A, 8, I, - G.RGBAIntegerFormat, - G.UnsignedIntType + a.RGBAIntegerFormat, + a.UnsignedIntType ); return g.internalFormat = "RGBA32UI", g.needsUpdate = !0, g; } @@ -8032,7 +6614,7 @@ class ph { key: "edits", type: "uvec4", count: I, - globals: () => [aB], + globals: () => [yB], value: A }); } @@ -8050,9 +6632,9 @@ class ph { return this.editData[A] = I, g; } updateEditFloatData(A, I) { - ZI[0] = I; - const g = this.editFloatData[A] !== ZI[0]; - return g && (this.editFloatData[A] = ZI[0]), g; + PI[0] = I; + const g = this.editFloatData[A] !== PI[0]; + return g && (this.editFloatData[A] = PI[0]), g; } encodeEdit(A, { sdfFirst: I, @@ -8060,20 +6642,20 @@ class ph { invert: B, rgbaBlendMode: C, softEdge: E, - sdfSmooth: D + sdfSmooth: i }) { - const i = A * 4; - let w = !1; - return w = this.updateEditData(i + 0, C | (B ? 256 : 0)) || w, w = this.updateEditData(i + 1, I | g << 16) || w, w = this.updateEditFloatData(i + 2, E) || w, w = this.updateEditFloatData(i + 3, D) || w, w; + const o = A * 4; + let D = !1; + return D = this.updateEditData(o + 0, C | (B ? 256 : 0)) || D, D = this.updateEditData(o + 1, I | g << 16) || D, D = this.updateEditFloatData(o + 2, E) || D, D = this.updateEditFloatData(o + 3, i) || D, D; } updateSdfData(A, I) { const g = this.sdfData[A] !== I; return this.sdfData[A] = I, g; } updateSdfFloatData(A, I) { - ZI[0] = I; - const g = this.sdfFloatData[A] !== ZI[0]; - return g && (this.sdfFloatData[A] = ZI[0]), g; + PI[0] = I; + const g = this.sdfFloatData[A] !== PI[0]; + return g && (this.sdfFloatData[A] = PI[0]), g; } encodeSdf(A, { sdfType: I, @@ -8081,57 +6663,57 @@ class ph { center: B, quaternion: C, scale: E, - sizes: D - }, i) { - const w = A * 32, s = I | (g ? 256 : 0); - let o = !1; - o = this.updateSdfFloatData(w + 0, (B == null ? void 0 : B.x) ?? 0) || o, o = this.updateSdfFloatData(w + 1, (B == null ? void 0 : B.y) ?? 0) || o, o = this.updateSdfFloatData(w + 2, (B == null ? void 0 : B.z) ?? 0) || o, o = this.updateSdfData(w + 3, s) || o, o = this.updateSdfFloatData(w + 4, (C == null ? void 0 : C.x) ?? 0) || o, o = this.updateSdfFloatData(w + 5, (C == null ? void 0 : C.y) ?? 0) || o, o = this.updateSdfFloatData(w + 6, (C == null ? void 0 : C.z) ?? 0) || o, o = this.updateSdfFloatData(w + 7, (C == null ? void 0 : C.w) ?? 0) || o, o = this.updateSdfFloatData(w + 8, (E == null ? void 0 : E.x) ?? 0) || o, o = this.updateSdfFloatData(w + 9, (E == null ? void 0 : E.y) ?? 0) || o, o = this.updateSdfFloatData(w + 10, (E == null ? void 0 : E.z) ?? 0) || o, o = this.updateSdfData(w + 11, 0) || o, o = this.updateSdfFloatData(w + 12, (D == null ? void 0 : D.x) ?? 0) || o, o = this.updateSdfFloatData(w + 13, (D == null ? void 0 : D.y) ?? 0) || o, o = this.updateSdfFloatData(w + 14, (D == null ? void 0 : D.z) ?? 0) || o, o = this.updateSdfFloatData(w + 15, (D == null ? void 0 : D.w) ?? 0) || o; - const y = Math.min(4, i.length); - for (let h = 0; h < y; ++h) { - const k = w + 16 + h * 4; - o = this.updateSdfFloatData(k + 0, i[h].x) || o, o = this.updateSdfFloatData(k + 1, i[h].y) || o, o = this.updateSdfFloatData(k + 2, i[h].z) || o, o = this.updateSdfFloatData(k + 3, i[h].w) || o; + sizes: i + }, o) { + const D = A * 32, s = I | (g ? 256 : 0); + let w = !1; + w = this.updateSdfFloatData(D + 0, (B == null ? void 0 : B.x) ?? 0) || w, w = this.updateSdfFloatData(D + 1, (B == null ? void 0 : B.y) ?? 0) || w, w = this.updateSdfFloatData(D + 2, (B == null ? void 0 : B.z) ?? 0) || w, w = this.updateSdfData(D + 3, s) || w, w = this.updateSdfFloatData(D + 4, (C == null ? void 0 : C.x) ?? 0) || w, w = this.updateSdfFloatData(D + 5, (C == null ? void 0 : C.y) ?? 0) || w, w = this.updateSdfFloatData(D + 6, (C == null ? void 0 : C.z) ?? 0) || w, w = this.updateSdfFloatData(D + 7, (C == null ? void 0 : C.w) ?? 0) || w, w = this.updateSdfFloatData(D + 8, (E == null ? void 0 : E.x) ?? 0) || w, w = this.updateSdfFloatData(D + 9, (E == null ? void 0 : E.y) ?? 0) || w, w = this.updateSdfFloatData(D + 10, (E == null ? void 0 : E.z) ?? 0) || w, w = this.updateSdfData(D + 11, 0) || w, w = this.updateSdfFloatData(D + 12, (i == null ? void 0 : i.x) ?? 0) || w, w = this.updateSdfFloatData(D + 13, (i == null ? void 0 : i.y) ?? 0) || w, w = this.updateSdfFloatData(D + 14, (i == null ? void 0 : i.z) ?? 0) || w, w = this.updateSdfFloatData(D + 15, (i == null ? void 0 : i.w) ?? 0) || w; + const G = Math.min(4, o.length); + for (let h = 0; h < G; ++h) { + const c = D + 16 + h * 4; + w = this.updateSdfFloatData(c + 0, o[h].x) || w, w = this.updateSdfFloatData(c + 1, o[h].y) || w, w = this.updateSdfFloatData(c + 2, o[h].z) || w, w = this.updateSdfFloatData(c + 3, o[h].w) || w; } - return o; + return w; } // Update the SDFs and edits from an array of SplatEdits and their // associated SplatEditSdfs, updating it for the dyno shader program. update(A) { - const I = A.reduce((o, { sdfs: y }) => o + y.length, 0), g = this.ensureCapacity({ + const I = A.reduce((w, { sdfs: G }) => w + G.length, 0), g = this.ensureCapacity({ maxEdits: A.length, maxSdfs: I - }), B = [new G.Vector4(), new G.Vector4()], C = new G.Vector3(), E = new G.Quaternion(), D = new G.Vector3(), i = new G.Vector4(); - let w = 0, s = g; + }), B = [new a.Vector4(), new a.Vector4()], C = new a.Vector3(), E = new a.Quaternion(), i = new a.Vector3(), o = new a.Vector4(); + let D = 0, s = g; A.length !== this.dynoNumEdits.value && (this.dynoNumEdits.value = A.length, this.numEdits = A.length, s = !0); - for (const [o, { edit: y, sdfs: h }] of A.entries()) { - s = this.encodeEdit(o, { - sdfFirst: w, + for (const [w, { edit: G, sdfs: h }] of A.entries()) { + s = this.encodeEdit(w, { + sdfFirst: D, sdfCount: h.length, - invert: y.invert, - rgbaBlendMode: xh(y.rgbaBlendMode), - softEdge: y.softEdge, - sdfSmooth: y.sdfSmooth + invert: G.invert, + rgbaBlendMode: Qh(G.rgbaBlendMode), + softEdge: G.softEdge, + sdfSmooth: G.sdfSmooth }) || s; - let k = !1; - for (const R of h) - i.set(R.scale.x, R.scale.y, R.scale.z, R.radius), R.scale.setScalar(1), R.updateMatrixWorld(), R.matrixWorld.clone().invert().decompose(C, E, D), R.scale.set(i.x, i.y, i.z), R.updateMatrixWorld(), B[0].set(R.color.r, R.color.g, R.color.b, R.opacity), B[1].set(R.displace.x, R.displace.y, R.displace.z, 1), k = this.encodeSdf( - w, + let c = !1; + for (const t of h) + o.set(t.scale.x, t.scale.y, t.scale.z, t.radius), t.scale.setScalar(1), t.updateMatrixWorld(), t.matrixWorld.clone().invert().decompose(C, E, i), t.scale.set(o.x, o.y, o.z), t.updateMatrixWorld(), B[0].set(t.color.r, t.color.g, t.color.b, t.opacity), B[1].set(t.displace.x, t.displace.y, t.displace.z, 1), c = this.encodeSdf( + D, { - sdfType: dh(R.type), - invert: R.invert, + sdfType: Ih(t.type), + invert: t.invert, center: C, quaternion: E, - scale: D, - sizes: i + scale: i, + sizes: o }, B - ) || k, w += 1; - this.numSdfs = w, k && (this.sdfTexture.needsUpdate = !0), s || (s = k); + ) || c, D += 1; + this.numSdfs = D, c && (this.sdfTexture.needsUpdate = !0), s || (s = c); } return { updated: s, dynoUpdated: g }; } // Modify a Gsplat in a dyno shader program using the current edits and SDFs. modify(A) { - return fh( + return Eh( A, this.dynoSdfArray, this.dynoNumEdits, @@ -8139,7 +6721,7 @@ class ph { ); } modifyCov(A) { - return bh( + return ih( A, this.dynoSdfArray, this.dynoNumEdits, @@ -8147,7 +6729,7 @@ class ph { ); } } -const kB = { type: "SdfArray" }, FB = oA(` +const hB = { type: "SdfArray" }, tB = GA(` struct SdfArray { int numSdfs; usampler2D sdfTexture; @@ -8312,7 +6894,7 @@ const kB = { type: "SdfArray" }, FB = oA(` return (softEdge == 0.0) ? ((distance < 0.0) ? 1.0 : 0.0) : clamp(-distance / softEdge + 0.5, 0.0, 1.0); } -`), aB = oA(` +`), yB = GA(` const uint EDIT_FLAG_BLEND = 0xFFu; const uint EDIT_BLEND_MULTIPLY = 0u; const uint EDIT_BLEND_SET_RGB = 1u; @@ -8371,25 +6953,25 @@ const kB = { type: "SdfArray" }, FB = oA(` applyRgbaDisplaceEdit(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, sdfSmooth, softEdge, invert, rgbaBlendMode, rgba); } `); -function fh(Q, A, I, g) { - return new d({ +function Eh(Q, A, I, g) { + return new q({ inTypes: { - gsplat: Z, - sdfArray: kB, + gsplat: j, + sdfArray: hB, numEdits: "int", rgbaDisplaceEdits: "uvec4" }, - outTypes: { gsplat: Z }, - globals: () => [FB, aB], + outTypes: { gsplat: j }, + globals: () => [tB, yB], inputs: { gsplat: Q, sdfArray: A, numEdits: I, rgbaDisplaceEdits: g }, statements: ({ inputs: C, outputs: E }) => { - const { sdfArray: D, numEdits: i, rgbaDisplaceEdits: w } = C, { gsplat: s } = E; + const { sdfArray: i, numEdits: o, rgbaDisplaceEdits: D } = C, { gsplat: s } = E; return z(` ${s} = ${C.gsplat}; if (isGsplatActive(${s}.flags)) { - for (int editIndex = 0; editIndex < ${i}; ++editIndex) { + for (int editIndex = 0; editIndex < ${o}; ++editIndex) { applyPackedRgbaDisplaceEdit( - ${w}[editIndex], ${D}.sdfTexture, ${D}.numSdfs, + ${D}[editIndex], ${i}.sdfTexture, ${i}.numSdfs, ${s}.center, ${s}.rgba ); } @@ -8398,25 +6980,25 @@ function fh(Q, A, I, g) { } }).outputs.gsplat; } -function bh(Q, A, I, g) { - return new d({ +function ih(Q, A, I, g) { + return new q({ inTypes: { - covsplat: eA, - sdfArray: kB, + covsplat: nA, + sdfArray: hB, numEdits: "int", rgbaDisplaceEdits: "uvec4" }, - outTypes: { covsplat: eA }, - globals: () => [FB, aB], + outTypes: { covsplat: nA }, + globals: () => [tB, yB], inputs: { covsplat: Q, sdfArray: A, numEdits: I, rgbaDisplaceEdits: g }, statements: ({ inputs: C, outputs: E }) => { - const { sdfArray: D, numEdits: i, rgbaDisplaceEdits: w } = C, { covsplat: s } = E; + const { sdfArray: i, numEdits: o, rgbaDisplaceEdits: D } = C, { covsplat: s } = E; return z(` ${s} = ${C.covsplat}; if (isCovSplatActive(${s}.flags)) { - for (int editIndex = 0; editIndex < ${i}; ++editIndex) { + for (int editIndex = 0; editIndex < ${o}; ++editIndex) { applyPackedRgbaDisplaceEdit( - ${w}[editIndex], ${D}.sdfTexture, ${D}.numSdfs, + ${D}[editIndex], ${i}.sdfTexture, ${i}.numSdfs, ${s}.center, ${s}.rgba ); } @@ -8425,16 +7007,16 @@ function bh(Q, A, I, g) { } }).outputs.covsplat; } -const ZI = new Float32Array(1); -class Ph { +const PI = new Float32Array(1); +class Ly { constructor(A) { this.modifier = A, this.cache = /* @__PURE__ */ new Map(); } apply(A) { let I = this.cache.get(A); - return I || (I = cA( + return I || (I = LA( { index: "int" }, - { gsplat: Z }, + { gsplat: j }, ({ index: g }) => { const { gsplat: B } = A.apply({ index: g }); return this.modifier.apply({ gsplat: B }); @@ -8442,19 +7024,19 @@ class Ph { ), this.cache.set(A, I)), I; } } -class XI { +class TI { // Create the dyno uniforms that parameterize the transform, setting them // to initial values that are different from any valid transform. constructor() { - this.scale = new pI({ value: Number.NEGATIVE_INFINITY }), this.rotate = new mI({ - value: new G.Quaternion( + this.scale = new OI({ value: Number.NEGATIVE_INFINITY }), this.rotate = new zI({ + value: new a.Quaternion( Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY ) - }), this.translate = new DI({ - value: new G.Vector3( + }), this.translate = new UI({ + value: new a.Vector3( Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY @@ -8463,20 +7045,20 @@ class XI { } // Apply the transform to a Vec3 position in a dyno program. apply(A) { - return ww(A, { + return XD(A, { scale: this.scale, rotate: this.rotate, translate: this.translate }); } applyDir(A) { - return ow(A, { + return jD(A, { rotate: this.rotate }); } // Apply the transform to a Gsplat in a dyno program. applyGsplat(A) { - return CB(A, { + return gC(A, { scale: this.scale, rotate: this.rotate, translate: this.translate @@ -8484,7 +7066,7 @@ class XI { } // Update the uniforms to match the given transform matrix. updateFromMatrix(A) { - const I = new G.Vector3(), g = new G.Quaternion(), B = new G.Vector3(); + const I = new a.Vector3(), g = new a.Quaternion(), B = new a.Vector3(); A.decompose(B, g, I); const C = (I.x + I.y + I.z) / 3; let E = !1; @@ -8495,23 +7077,23 @@ class XI { return A.updateMatrixWorld(), this.updateFromMatrix(A.matrixWorld); } } -class Kg { +class ng { constructor() { - this.basis = new sB({ value: new G.Matrix3() }), this.offset = new DI({ value: new G.Vector3() }); + this.basis = new BB({ value: new a.Matrix3() }), this.offset = new UI({ value: new a.Vector3() }); } // Apply the transform to a Vec3 position in a dyno program. apply(A) { const I = kA(this.basis, A); - return qA(I, this.offset); + return lA(I, this.offset); } applyDir(A) { return kA(this.basis, A); } // Apply the transform to a Gsplat in a dyno program. applyCovSplat(A) { - return new d({ - inTypes: { covsplat: eA, basis: "mat3", offset: "vec3" }, - outTypes: { covsplat: eA }, + return new q({ + inTypes: { covsplat: nA, basis: "mat3", offset: "vec3" }, + outTypes: { covsplat: nA }, inputs: { covsplat: A, basis: this.basis, offset: this.offset }, statements: ({ inputs: I, outputs: g }) => { const { covsplat: B, basis: C, offset: E } = I; @@ -8539,3484 +7121,3198 @@ class Kg { } // Update the uniforms to match the given transform matrix. updateFromMatrix(A) { - const I = new G.Matrix3().setFromMatrix4(A), g = new G.Vector3().setFromMatrixColumn(A, 3), B = !I.equals(this.basis.value) || !g.equals(this.offset.value); + const I = new a.Matrix3().setFromMatrix4(A), g = new a.Vector3().setFromMatrixColumn(A, 3), B = !I.equals(this.basis.value) || !g.equals(this.offset.value); return B && (this.basis.value.copy(I), this.offset.value.copy(g)), B; } - // Update this transform to match the object's to-world transform. - update(A) { - return A.updateMatrixWorld(), this.updateFromMatrix(A.matrixWorld); + // Update this transform to match the object's to-world transform. + update(A) { + return A.updateMatrixWorld(), this.updateFromMatrix(A.matrixWorld); + } +} +class kg extends a.Object3D { + constructor({ + numSplats: A, + generator: I, + covGenerator: g, + construct: B, + update: C + }) { + if (super(), this.numSplats = A ?? 0, this.generator = I, this.covGenerator = g, this.frameUpdate = C, this.version = 0, this.mappingVersion = 0, B) { + const E = B(this); + Object.assign(this, E); + } + } + updateVersion() { + this.version += 1; + } + updateMappingVersion() { + this.mappingVersion += 1, this.version += 1; + } + set needsUpdate(A) { + A && this.updateVersion(); + } +} +class Fg { + static __wrap(A) { + A = A >>> 0; + const I = Object.create(Fg.prototype); + return I.__wbg_ptr = A, UB.register(I, I.__wbg_ptr, I), I; + } + __destroy_into_raw() { + const A = this.__wbg_ptr; + return this.__wbg_ptr = 0, UB.unregister(this), A; + } + free() { + const A = this.__destroy_into_raw(); + Y.__wbg_csplatarray_free(A, 0); + } + /** + * @param {number} lod_base + */ + bhatt_lod(A) { + Y.csplatarray_bhatt_lod(this.__wbg_ptr, A); + } + /** + * @returns {boolean} + */ + has_lod() { + return Y.csplatarray_has_lod(this.__wbg_ptr) !== 0; + } + /** + * @param {Uint8Array} rgba + */ + inject_rgba8(A) { + Y.csplatarray_inject_rgba8(this.__wbg_ptr, A); + } + /** + * @returns {number} + */ + len() { + return Y.csplatarray_len(this.__wbg_ptr) >>> 0; + } + /** + * @param {number} lod_base + * @param {boolean} merge_filter + */ + tiny_lod(A, I) { + Y.csplatarray_tiny_lod(this.__wbg_ptr, A, I); + } + /** + * @returns {object} + */ + to_extsplats() { + const A = Y.csplatarray_to_extsplats(this.__wbg_ptr); + if (A[2]) + throw JA(A[1]); + return JA(A[0]); + } + /** + * @returns {object} + */ + to_extsplats_lod() { + const A = Y.csplatarray_to_extsplats_lod(this.__wbg_ptr); + if (A[2]) + throw JA(A[1]); + return JA(A[0]); + } + /** + * @returns {object} + */ + to_packedsplats() { + const A = Y.csplatarray_to_packedsplats(this.__wbg_ptr); + if (A[2]) + throw JA(A[1]); + return JA(A[0]); + } + /** + * @returns {object} + */ + to_packedsplats_lod() { + const A = Y.csplatarray_to_packedsplats_lod(this.__wbg_ptr); + if (A[2]) + throw JA(A[1]); + return JA(A[0]); + } + /** + * @returns {number} + */ + get maxShDegree() { + return Y.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr) >>> 0; + } + /** + * @returns {number} + */ + get numSplats() { + return Y.__wbg_get_csplatarray_numSplats(this.__wbg_ptr) >>> 0; + } + /** + * @param {number} arg0 + */ + set maxShDegree(A) { + Y.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, A); + } + /** + * @param {number} arg0 + */ + set numSplats(A) { + Y.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, A); + } +} +Symbol.dispose && (Fg.prototype[Symbol.dispose] = Fg.prototype.free); +class Ng { + static __wrap(A) { + A = A >>> 0; + const I = Object.create(Ng.prototype); + return I.__wbg_ptr = A, LB.register(I, I.__wbg_ptr, I), I; + } + __destroy_into_raw() { + const A = this.__wbg_ptr; + return this.__wbg_ptr = 0, LB.unregister(this), A; + } + free() { + const A = this.__destroy_into_raw(); + Y.__wbg_gsplatarray_free(A, 0); + } + /** + * @returns {number} + */ + get maxShDegree() { + return Y.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr) >>> 0; + } + /** + * @returns {number} + */ + get numSplats() { + return Y.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr) >>> 0; } -} -class PI extends G.Object3D { - constructor({ - numSplats: A, - generator: I, - covGenerator: g, - construct: B, - update: C - }) { - if (super(), this.numSplats = A ?? 0, this.generator = I, this.covGenerator = g, this.frameUpdate = C, this.version = 0, this.mappingVersion = 0, B) { - const E = B(this); - Object.assign(this, E); - } + /** + * @param {number} lod_base + */ + bhatt_lod(A) { + Y.gsplatarray_bhatt_lod(this.__wbg_ptr, A); } - updateVersion() { - this.version += 1; + /** + * @returns {boolean} + */ + has_lod() { + return Y.gsplatarray_has_lod(this.__wbg_ptr) !== 0; } - updateMappingVersion() { - this.mappingVersion += 1, this.version += 1; + /** + * @param {Uint8Array} rgba + */ + inject_rgba8(A) { + Y.gsplatarray_inject_rgba8(this.__wbg_ptr, A); } - set needsUpdate(A) { - A && this.updateVersion(); + /** + * @returns {number} + */ + len() { + return Y.gsplatarray_len(this.__wbg_ptr) >>> 0; } -} -const QA = class QA { - constructor({ - extSplats: A, - covSplats: I - } = {}) { - if (this.time = 0, this.deltaTime = 0, this.viewToWorld = new G.Matrix4(), this.viewOrigin = new G.Vector3(), this.viewDirection = new G.Vector3(), this.maxSplats = 0, this.numSplats = 0, this.target = null, this.mapping = [], this.version = -1, this.mappingVersion = -1, this.readback = null, this.readbackSplats = [], !RC) - throw new Error("Spark requires THREE.js r179 or above"); - this.extSplats = A ?? !0, this.covSplats = I ?? !1; + /** + * @param {number} lod_base + * @param {boolean} merge_filter + */ + tiny_lod(A, I) { + Y.gsplatarray_tiny_lod(this.__wbg_ptr, A, I); } - dispose() { - this.target && (this.target.dispose(), this.target = null); + /** + * @returns {object} + */ + to_extsplats() { + const A = Y.gsplatarray_to_extsplats(this.__wbg_ptr); + if (A[2]) + throw JA(A[1]); + return JA(A[0]); } - // Returns a THREE.DataArrayTexture representing the NewSplatAccumulator - // content as 2 x Uint32x4 data array textures (2048 x 2048 x 2048 in size) - getTextures() { - return this.target ? this.target.textures : QA.emptyTextures; + /** + * @returns {object} + */ + to_extsplats_lod() { + const A = Y.gsplatarray_to_extsplats_lod(this.__wbg_ptr); + if (A[2]) + throw JA(A[1]); + return JA(A[0]); } - // Given an array of splatCounts (.numSplats for each - // SplatGenerator/SplatMesh in the scene), compute a - // "mapping layout" in the composite array of generated outputs. - generateMapping(A) { - let I = 0; - const g = A.map((B) => { - const C = I, E = Math.ceil(B / P) * P; - return I += E, { base: C, count: B }; - }); - return { maxSplats: I, mapping: g }; + /** + * @param {any} encoding + * @returns {object} + */ + to_packedsplats(A) { + const I = Y.gsplatarray_to_packedsplats(this.__wbg_ptr, A); + if (I[2]) + throw JA(I[1]); + return JA(I[0]); } - // Ensures our NewSplatAccumulator.target render target has enough space - // to generate maxSplats total Gsplats, and reallocate if not large enough. - ensureGenerate({ maxSplats: A }) { - if (this.target && (A ?? 1) <= this.maxSplats) - return !1; - this.dispose(); - const I = BA(A ?? 1), { width: g, height: B, depth: C } = I; - if (this.maxSplats = I.maxSplats, this.target = new G.WebGLArrayRenderTarget(g, B, C, { - depthBuffer: !1, - stencilBuffer: !1, - generateMipmaps: !1, - magFilter: G.NearestFilter, - minFilter: G.NearestFilter, - format: G.RGBAIntegerFormat, - type: G.UnsignedIntType - }), this.target.scissorTest = !0, this.extSplats) { - const E = this.target.texture.clone(), D = this.target.texture.clone(); - D.format = G.RGBAFormat, D.type = G.UnsignedByteType, D.internalFormat = "RGBA8", this.target.textures = [this.target.texture, E, D]; - } else { - const E = this.target.texture.clone(); - E.format = G.RGBAFormat, E.type = G.UnsignedByteType, E.internalFormat = "RGBA8", this.target.textures = [this.target.texture, E]; - } - return !0; + /** + * @param {any} encoding + * @returns {object} + */ + to_packedsplats_lod(A) { + const I = Y.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, A); + if (I[2]) + throw JA(I[1]); + return JA(I[0]); } - saveRenderState(A) { - return { - target: A.getRenderTarget(), - xrEnabled: A.xr.enabled, - autoClear: A.autoClear - }; + /** + * @param {number} arg0 + */ + set maxShDegree(A) { + Y.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, A); } - resetRenderState(A, I) { - A.setRenderTarget(I.target), A.xr.enabled = I.xrEnabled, A.autoClear = I.autoClear; + /** + * @param {number} arg0 + */ + set numSplats(A) { + Y.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, A); } - // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator, - // generating it if necessary and caching the result. - prepareProgramMaterial(A, I) { - const g = A ?? I; - if (!g) - throw new Error("Either generator or covGenerator must be provided"); - let B = QA.generatorProgram.get(g); - if (!B) { - const E = cA( - { index: "int" }, - {}, - ({ index: D }, i, { roots: w }) => { - if (A && (A.inputs.index = D), I && (I.inputs.index = D), this.extSplats) - if (this.covSplats) - if (I) { - const s = lQ(I.outputs.covsplat); - w.push(s); - } else if (A) { - const s = Xg(A.outputs.gsplat), o = lQ(s); - w.push(o); - } else - throw new Error("Generator must be provided"); - else if (A) { - const s = QE(A.outputs.gsplat); - w.push(s); - } else - throw new Error("Generator must be provided"); - else { - if (this.covSplats) { - let s; - if (I) - s = I.outputs.covsplat; - else if (A) - s = Xg(A.outputs.gsplat); - else - throw new Error("Generator must be provided"); - const o = iI( - Wg(s).outputs.center, - QA.viewCenterUniform - ), y = kA( - Wg(s).outputs.opacity, - v("float", 0.5) - ); - s = iB({ - covsplat: s, - center: o, - opacity: y - }); - const h = gE( - s, - v("vec4", [0, 1, pA, fA]) - ); - w.push(h); - } else if (A) { - const s = iI( - uA(A.outputs.gsplat).outputs.center, - QA.viewCenterUniform - ), o = kA( - uA(A.outputs.gsplat).outputs.opacity, - v("float", 0.5) - ), y = CI({ - gsplat: A.outputs.gsplat, - center: s, - opacity: o - }), h = wB( - y, - v("vec4", [0, 1, pA, fA]) - ); - w.push(h); - } else - throw new Error("Generator must be provided"); - if (!A) - throw new Error("Generator must be provided"); - } - if (A) { - const s = BE( - A.outputs.gsplat, - QA.viewCenterUniform, - QA.viewDirUniform, - QA.sortRadialUniform - ); - w.push(s); - } - if (I) { - const s = CE( - I.outputs.covsplat, - QA.viewCenterUniform, - QA.viewDirUniform, - QA.sortRadialUniform - ); - w.push(s); - } +} +Symbol.dispose && (Ng.prototype[Symbol.dispose] = Ng.prototype.free); +function JB(Q) { + const A = Y.decode_rad_header(Q); + if (A[2]) + throw JA(A[1]); + return JA(A[0]); +} +function Dh() { + return Y.get_raycast_buffer(); +} +function oh() { + return Y.get_raycast_buffer2(); +} +function wh(Q, A, I, g, B, C, E, i, o, D) { + return Y.raycast_ext_buffers(Q, A, I, g, B, C, E, i, o, D); +} +function sh(Q, A, I, g, B, C, E, i, o, D, s, w, G) { + return Y.raycast_packed_buffer(Q, A, I, g, B, C, E, i, o, D, s, w, G); +} +function ah() { + return { + __proto__: null, + "./spark_rs_bg.js": { + __proto__: null, + __wbg_Error_2e59b1b37a9a34c3: function(A, I) { + return Error(Yg(A, I)); + }, + __wbg___wbindgen_boolean_get_a86c216575a75c30: function(A) { + const I = A, g = typeof I == "boolean" ? I : void 0; + return rg(g) ? 16777215 : g ? 1 : 0; + }, + __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(A, I) { + const g = uQ(I), B = RQ(g, Y.__wbindgen_malloc, Y.__wbindgen_realloc), C = sg; + NI().setInt32(A + 4, C, !0), NI().setInt32(A + 0, B, !0); + }, + __wbg___wbindgen_in_4bd7a57e54337366: function(A, I) { + return A in I; + }, + __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(A) { + return !A; + }, + __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(A) { + const I = A; + return typeof I == "object" && I !== null; + }, + __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(A) { + return A === void 0; + }, + __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(A, I) { + return A == I; + }, + __wbg___wbindgen_number_get_7579aab02a8a620c: function(A, I) { + const g = I, B = typeof g == "number" ? g : void 0; + NI().setFloat64(A + 8, rg(B) ? 0 : B, !0), NI().setInt32(A + 0, !rg(B), !0); + }, + __wbg___wbindgen_string_get_914df97fcfa788f2: function(A, I) { + const g = I, B = typeof g == "string" ? g : void 0; + var C = rg(B) ? 0 : RQ(B, Y.__wbindgen_malloc, Y.__wbindgen_realloc), E = sg; + NI().setInt32(A + 4, E, !0), NI().setInt32(A + 0, C, !0); + }, + __wbg___wbindgen_throw_81fc77679af83bc6: function(A, I) { + throw new Error(Yg(A, I)); + }, + __wbg_csplatarray_new: function(A) { + return Fg.__wrap(A); + }, + __wbg_error_a6fa202b58aa1cd3: function(A, I) { + let g, B; + try { + g = A, B = I, console.error(Yg(A, I)); + } finally { + Y.__wbindgen_free(g, B, 1); } - ); - B = new DQ({ - graph: E, - inputs: { index: "_index" }, - outputs: {}, - template: this.extSplats ? QA.programExtTemplate : QA.programTemplate - // consoleLog: true, - }), QA.generatorProgram.set(g, B); + }, + __wbg_get_4848e350b40afc16: function(A, I) { + return A[I >>> 0]; + }, + __wbg_get_f96702c6245e4ef9: function() { + return nB(function(A, I) { + return Reflect.get(A, I); + }, arguments); + }, + __wbg_get_unchecked_7d7babe32e9e6a54: function(A, I) { + return A[I >>> 0]; + }, + __wbg_get_with_ref_key_6412cf3094599694: function(A, I) { + return A[I]; + }, + __wbg_gsplatarray_new: function(A) { + return Ng.__wrap(A); + }, + __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(A) { + let I; + try { + I = A instanceof ArrayBuffer; + } catch { + I = !1; + } + return I; + }, + __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(A) { + let I; + try { + I = A instanceof Uint8Array; + } catch { + I = !1; + } + return I; + }, + __wbg_length_0c32cb8543c8e4c8: function(A) { + return A.length; + }, + __wbg_length_1e701798fdcaa3b4: function(A) { + return A.length; + }, + __wbg_length_6e821edde497a532: function(A) { + return A.length; + }, + __wbg_length_a4ca9e78359b5f1f: function(A) { + return A.length; + }, + __wbg_length_fd4646b401926788: function(A) { + return A.length; + }, + __wbg_new_227d7c05414eb861: function() { + return new Error(); + }, + __wbg_new_4f9fafbb3909af72: function() { + return new Object(); + }, + __wbg_new_a560378ea1240b14: function(A) { + return new Uint8Array(A); + }, + __wbg_new_f3c9df4f38f3f798: function() { + return new Array(); + }, + __wbg_new_with_length_26bffbe236bf73f9: function(A) { + return new Float32Array(A >>> 0); + }, + __wbg_new_with_length_41a22191b9bdfd66: function(A) { + return new Uint32Array(A >>> 0); + }, + __wbg_prototypesetcall_3e05eb9545565046: function(A, I, g) { + Uint8Array.prototype.set.call(th(A, I), g); + }, + __wbg_prototypesetcall_64c287a27cc24d27: function(A, I, g) { + Uint16Array.prototype.set.call(hh(A, I), g); + }, + __wbg_prototypesetcall_e42275e601e14eeb: function(A, I, g) { + Uint32Array.prototype.set.call(SQ(A, I), g); + }, + __wbg_push_6bdbc990be5ac37b: function(A, I) { + return A.push(I); + }, + __wbg_set_448126769bf7c181: function(A, I, g) { + A.set(SQ(I, g)); + }, + __wbg_set_6be42768c690e380: function(A, I, g) { + A[I] = g; + }, + __wbg_set_6c60b2e8ad0e9383: function(A, I, g) { + A[I >>> 0] = g; + }, + __wbg_set_81b4174352e6a095: function(A, I, g) { + A.set(I, g >>> 0); + }, + __wbg_set_8ee2d34facb8466e: function() { + return nB(function(A, I, g) { + return Reflect.set(A, I, g); + }, arguments); + }, + __wbg_set_a98c8da6557e63de: function(A, I, g) { + A.set(HB(I, g)); + }, + __wbg_set_index_338a66e40fc45dee: function(A, I, g) { + A[I >>> 0] = g >>> 0; + }, + __wbg_stack_3b0d974bbf31e44f: function(A, I) { + const g = I.stack, B = RQ(g, Y.__wbindgen_malloc, Y.__wbindgen_realloc), C = sg; + NI().setInt32(A + 4, C, !0), NI().setInt32(A + 0, B, !0); + }, + __wbg_subarray_0f98d3fb634508ad: function(A, I, g) { + return A.subarray(I >>> 0, g >>> 0); + }, + __wbg_subarray_517cd0f1811ab872: function(A, I, g) { + return A.subarray(I >>> 0, g >>> 0); + }, + __wbg_subarray_d51e89458b3fdbf6: function(A, I, g) { + return A.subarray(I >>> 0, g >>> 0); + }, + __wbindgen_cast_0000000000000001: function(A) { + return A; + }, + __wbindgen_cast_0000000000000002: function(A, I) { + return HB(A, I); + }, + __wbindgen_cast_0000000000000003: function(A, I) { + return SQ(A, I); + }, + __wbindgen_cast_0000000000000004: function(A, I) { + return Yg(A, I); + }, + __wbindgen_cast_0000000000000005: function(A) { + return BigInt.asUintN(64, A); + }, + __wbindgen_init_externref_table: function() { + const A = Y.__wbindgen_externrefs, I = A.grow(4); + A.set(0, void 0), A.set(I + 0, void 0), A.set(I + 1, null), A.set(I + 2, !0), A.set(I + 3, !1); + } } - Object.assign(B.uniforms, { - targetLayer: { value: 0 }, - targetBase: { value: 0 }, - targetCount: { value: 0 } - }); - const C = B.prepareMaterial(); - return QA.fullScreenQuad.material = C, { program: B, material: C }; - } - generate({ - generator: A, - covGenerator: I, - base: g, - count: B, - renderer: C - }) { - if (!this.target) - throw new Error("Target must be initialized with ensureGenerate"); - if (g + B > this.maxSplats) - throw new Error("Base + count exceeds maxSplats"); - const { program: E, material: D } = this.prepareProgramMaterial( - A, - I - ); - E.update(); - const i = this.saveRenderState(C), w = Math.ceil((g + B) / P) * P, s = P * XA; - for (D.uniforms.targetBase.value = g, D.uniforms.targetCount.value = B; g < w; ) { - const o = Math.floor(g / s); - D.uniforms.targetLayer.value = o; - const y = o * s, h = Math.floor((g - y) / P), k = Math.min( - XA, - Math.ceil((w - y) / P) - ); - this.target.scissor.set( - 0, - h, - P, - k - h - ), C.setRenderTarget(this.target, o), C.xr.enabled = !1, C.autoClear = !1, QA.fullScreenQuad.render(C), g += P * (k - h); + }; +} +typeof FinalizationRegistry > "u" || new FinalizationRegistry((Q) => Y.__wbg_chunkdecoder_free(Q >>> 0, 1)); +const UB = typeof FinalizationRegistry > "u" ? { register: () => { +}, unregister: () => { +} } : new FinalizationRegistry((Q) => Y.__wbg_csplatarray_free(Q >>> 0, 1)), LB = typeof FinalizationRegistry > "u" ? { register: () => { +}, unregister: () => { +} } : new FinalizationRegistry((Q) => Y.__wbg_gsplatarray_free(Q >>> 0, 1)); +function Gh(Q) { + const A = Y.__externref_table_alloc(); + return Y.__wbindgen_externrefs.set(A, Q), A; +} +function uQ(Q) { + const A = typeof Q; + if (A == "number" || A == "boolean" || Q == null) + return `${Q}`; + if (A == "string") + return `"${Q}"`; + if (A == "symbol") { + const B = Q.description; + return B == null ? "Symbol" : `Symbol(${B})`; + } + if (A == "function") { + const B = Q.name; + return typeof B == "string" && B.length > 0 ? `Function(${B})` : "Function"; + } + if (Array.isArray(Q)) { + const B = Q.length; + let C = "["; + B > 0 && (C += uQ(Q[0])); + for (let E = 1; E < B; E++) + C += ", " + uQ(Q[E]); + return C += "]", C; + } + const I = /\[object ([^\]]+)\]/.exec(toString.call(Q)); + let g; + if (I && I.length > 1) + g = I[1]; + else + return toString.call(Q); + if (g == "Object") + try { + return "Object(" + JSON.stringify(Q) + ")"; + } catch { + return "Object"; } - return this.resetRenderState(C, i), { nextBase: w }; + return Q instanceof Error ? `${Q.name}: ${Q.message} +${Q.stack}` : g; +} +function HB(Q, A) { + return Q = Q >>> 0, yh().subarray(Q / 4, Q / 4 + A); +} +function hh(Q, A) { + return Q = Q >>> 0, ch().subarray(Q / 2, Q / 2 + A); +} +function SQ(Q, A) { + return Q = Q >>> 0, kh().subarray(Q / 4, Q / 4 + A); +} +function th(Q, A) { + return Q = Q >>> 0, og().subarray(Q / 1, Q / 1 + A); +} +let KI = null; +function NI() { + return (KI === null || KI.buffer.detached === !0 || KI.buffer.detached === void 0 && KI.buffer !== Y.memory.buffer) && (KI = new DataView(Y.memory.buffer)), KI; +} +let Qg = null; +function yh() { + return (Qg === null || Qg.byteLength === 0) && (Qg = new Float32Array(Y.memory.buffer)), Qg; +} +function Yg(Q, A) { + return Q = Q >>> 0, Nh(Q, A); +} +let Bg = null; +function ch() { + return (Bg === null || Bg.byteLength === 0) && (Bg = new Uint16Array(Y.memory.buffer)), Bg; +} +let Cg = null; +function kh() { + return (Cg === null || Cg.byteLength === 0) && (Cg = new Uint32Array(Y.memory.buffer)), Cg; +} +let Eg = null; +function og() { + return (Eg === null || Eg.byteLength === 0) && (Eg = new Uint8Array(Y.memory.buffer)), Eg; +} +function nB(Q, A) { + try { + return Q.apply(this, A); + } catch (I) { + const g = Gh(I); + Y.__wbindgen_exn_store(g); } - prepareGenerate({ - renderer: A, - scene: I, - time: g, - camera: B, - sortRadial: C, - renderSize: E, - previous: D, - lodInstances: i - }) { - var M; - this.viewToWorld.copy(B.matrixWorld), B.getWorldPosition(this.viewOrigin), B.getWorldDirection(this.viewDirection), QA.viewCenterUniform.value.copy(this.viewOrigin), QA.viewDirUniform.value.copy(this.viewDirection), QA.sortRadialUniform.value = C, this.time = g, this.deltaTime = g - D.time; - const w = []; - I.traverse((c) => { - c instanceof PI && (!B.layers || B.layers.test(c.layers)) && w.push(c); - }); - const s = /* @__PURE__ */ new Set(); - I.traverseVisible((c) => { - if (c instanceof Sg) { - let N = c.parent; - for (; N != null && !(N instanceof vA); ) - N = N.parent; - N == null && s.add(c); - } - }); - const o = Array.from(s); - for (const c of w) +} +function rg(Q) { + return Q == null; +} +function RQ(Q, A, I) { + if (I === void 0) { + const i = wg.encode(Q), o = A(i.length, 1) >>> 0; + return og().subarray(o, o + i.length).set(i), sg = i.length, o; + } + let g = Q.length, B = A(g, 1) >>> 0; + const C = og(); + let E = 0; + for (; E < g; E++) { + const i = Q.charCodeAt(E); + if (i > 127) break; + C[B + E] = i; + } + if (E !== g) { + E !== 0 && (Q = Q.slice(E)), B = I(B, g, g = E + Q.length * 3, 1) >>> 0; + const i = og().subarray(B + E, B + g), o = wg.encodeInto(Q, i); + E += o.written, B = I(B, g, E, 1) >>> 0; + } + return sg = E, B; +} +function JA(Q) { + const A = Y.__wbindgen_externrefs.get(Q); + return Y.__externref_table_dealloc(Q), A; +} +let bg = new TextDecoder("utf-8", { ignoreBOM: !0, fatal: !0 }); +bg.decode(); +const Fh = 2146435072; +let MQ = 0; +function Nh(Q, A) { + return MQ += A, MQ >= Fh && (bg = new TextDecoder("utf-8", { ignoreBOM: !0, fatal: !0 }), bg.decode(), MQ = A), bg.decode(og().subarray(Q, Q + A)); +} +const wg = new TextEncoder(); +"encodeInto" in wg || (wg.encodeInto = function(Q, A) { + const I = wg.encode(Q); + return A.set(I), { + read: Q.length, + written: I.length + }; +}); +let sg = 0, Y; +function Sh(Q, A) { + return Y = Q.exports, KI = null, Qg = null, Bg = null, Cg = null, Eg = null, Y.__wbindgen_start(), Y; +} +async function Rh(Q, A) { + if (typeof Response == "function" && Q instanceof Response) { + if (typeof WebAssembly.instantiateStreaming == "function") try { - (M = c.frameUpdate) == null || M.call(c, { - renderer: A, - object: c, - time: this.time, - deltaTime: this.deltaTime, - viewToWorld: this.viewToWorld, - camera: B, - renderSize: E, - globalEdits: o, - lodIndices: i && c instanceof vA ? i.get(c) : void 0 - }); - } catch (N) { - console.error("frameUpdate error", N), c.generator = void 0, c.covGenerator = void 0, c.generatorError = N; - } - const y = []; - I.traverseVisible((c) => { - c instanceof PI && (!B.layers || B.layers.test(c.layers)) && y.push(c); - }); - const h = y.map( - (c) => c.numSplats - ), { maxSplats: k, mapping: R } = this.generateMapping(h), F = D.mapping.reduce((c, N) => (c.set(N.node, N), c), /* @__PURE__ */ new Map()); - this.mapping = [], this.numSplats = 0, R.forEach(({ base: c, count: N }, U) => { - const J = y[U], t = F.get(J); - t && t.count !== J.numSplats && J.updateMappingVersion(); - const { generator: H, covGenerator: K } = J; - if ((H || K) && N > 0) { - const { version: Y, mappingVersion: L } = J; - this.mapping.push({ - node: J, - generator: H, - covGenerator: K, - version: Y, - mappingVersion: L, - base: c, - count: N - }), this.numSplats = Math.max(this.numSplats, c + N); - } - }); - const { splatsUpdated: a, mappingUpdated: S } = D.checkVersions( - this.mapping - ); - return this.version = D.version + (a ? 1 : 0), this.mappingVersion = D.mappingVersion + (S ? 1 : 0), { - sameMapping: !S, - version: this.version, - mappingVersion: this.mappingVersion, - visibleGenerators: y, - generate: () => { - this.ensureGenerate({ maxSplats: k }); - for (const { node: c, base: N, count: U } of this.mapping) { - const { generator: J, covGenerator: t } = c; - (J || t) && U > 0 && this.generate({ generator: J, covGenerator: t, base: N, count: U, renderer: A }); - } - }, - readback: async () => { - const c = this.getTextures(); - this.readbackSplats.length === 0 && (this.readbackSplats = [ - new dA({ value: c[0], key: "extSplats" }), - new dA({ value: c[1], key: "extSplats" }) - ]), this.readbackSplats[0].value = c[0], this.readbackSplats[1].value = c[1], this.readback || (this.readback = new Ig({ renderer: A })); - const N = this.readback, U = this.extSplats ? 8 : 4, J = N.ensureBuffer( - this.numSplats * U, - new Uint32Array(0) - ), t = cA( - { index: "int" }, - { rgba8: "vec4" }, - ({ index: H }) => ({ rgba8: new d({ - inTypes: { - index: "int", - extSplats1: "usampler2DArray", - extSplats2: "usampler2DArray" - }, - outTypes: { rgba8: "vec4" }, - inputs: { - index: H, - extSplats1: this.readbackSplats[0], - extSplats2: this.readbackSplats[1] - }, - statements: ({ inputs: Y, outputs: L }) => this.extSplats ? z(` - int indexDiv8 = ${Y.index} >> 3; - ivec3 coord = splatTexCoord(indexDiv8); - uvec4 packedData; - if ((${Y.index} & 4) == 0) { - packedData = texelFetch(${Y.extSplats1}, coord, 0); - } else { - packedData = texelFetch(${Y.extSplats2}, coord, 0); - } - - int indexMod4 = ${Y.index} & 3; - uint data = (indexMod4 == 0) ? packedData.x - : (indexMod4 == 1) ? packedData.y - : (indexMod4 == 2) ? packedData.z - : packedData.w; - ${L.rgba8} = uintToVec4(data); - `) : z(` - int indexDiv4 = ${Y.index} >> 2; - ivec3 coord = splatTexCoord(indexDiv4); - uvec4 packedData = texelFetch(${Y.extSplats1}, coord, 0); - - int indexMod4 = ${Y.index} & 3; - uint data = (indexMod4 == 0) ? packedData.x - : (indexMod4 == 1) ? packedData.y - : (indexMod4 == 2) ? packedData.z - : packedData.w; - ${L.rgba8} = uintToVec4(data); - `) - }).outputs.rgba8 }) - ); - return await N.renderReadback({ - reader: t, - count: this.numSplats * U, - renderer: A, - readback: J - }); + return await WebAssembly.instantiateStreaming(Q, A); + } catch (B) { + if (Q.ok && I(Q.type) && Q.headers.get("Content-Type") !== "application/wasm") + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", B); + else + throw B; } - }; + const g = await Q.arrayBuffer(); + return await WebAssembly.instantiate(g, A); + } else { + const g = await WebAssembly.instantiate(Q, A); + return g instanceof WebAssembly.Instance ? { instance: g, module: Q } : g; } - // Check if this accumulator has exactly the same generator mapping as - // the previous one. If so, we can reuse the Gsplat sort order. - checkVersions(A) { - if (this.mapping.length !== A.length) - return { splatsUpdated: !0, mappingUpdated: !0 }; - const I = this.mapping.some((B, C) => { - const E = A[C]; - return B.node !== E.node || B.base !== E.base || B.count !== E.count || B.mappingVersion !== E.mappingVersion; - }); - return I ? { splatsUpdated: !0, mappingUpdated: !0 } : { splatsUpdated: this.mapping.some((B, C) => B.version !== A[C].version), mappingUpdated: I }; + function I(g) { + switch (g) { + case "basic": + case "cors": + case "default": + return !0; + } + return !1; } -}; -QA.viewCenterUniform = new DI({ value: new G.Vector3() }), QA.viewDirUniform = new DI({ value: new G.Vector3() }), QA.sortRadialUniform = new bI({ value: !0 }), QA.emptyTexture = (() => { - const { width: A, height: I, depth: g, maxSplats: B } = BA(1), C = new Uint32Array(B * 4), E = new G.DataArrayTexture( - C, - A, - I, - g - ); - return E.format = G.RGBAIntegerFormat, E.type = G.UnsignedIntType, E.internalFormat = "RGBA32UI", E.needsUpdate = !0, E; -})(), QA.emptyTextures = [QA.emptyTexture, QA.emptyTexture], QA.programExtTemplate = new Fg( - Ag().computeUvec4x2Vec4Template -), QA.programTemplate = new Fg( - Ag().computeUvec4Vec4Template -), QA.generatorProgram = /* @__PURE__ */ new WeakMap(), QA.fullScreenQuad = new VQ( - new G.RawShaderMaterial({ visible: !1 }) -); -let qI = QA; -class uh extends G.InstancedBufferGeometry { - constructor() { - super(), this.setAttribute("position", new G.BufferAttribute(Th, 3)), this.setIndex(new G.BufferAttribute(Oh, 1)); +} +async function Mh(Q) { + if (Y !== void 0) return Y; + Q !== void 0 && (Object.getPrototypeOf(Q) === Object.prototype ? { module_or_path: Q } = Q : console.warn("using deprecated parameters for the initialization function; pass a single object instead")); + const A = ah(); + (typeof Q == "string" || typeof Request == "function" && Q instanceof Request || typeof URL == "function" && Q instanceof URL) && (Q = fetch(Q)); + const { instance: I, module: g } = await Rh(await Q, A); + return Sh(I); +} +function eh(Q) { + return Q > 64 && Q < 91 ? Q - 65 : Q > 96 && Q < 123 ? Q - 71 : Q > 47 && Q < 58 ? Q + 4 : Q === 43 ? 62 : Q === 47 ? 63 : 0; +} +function Jh(Q, A) { + const I = Q.replace(/[^A-Za-z0-9+/]/g, ""), g = I.length, B = A ? Math.ceil((g * 3 + 1 >> 2) / A) * A : g * 3 + 1 >> 2, C = new Uint8Array(B); + let E, i, o = 0, D = 0; + for (let s = 0; s < g; s++) + if (i = s & 3, o |= eh(I.charCodeAt(s)) << 6 * (3 - i), i === 3 || g - s === 1) { + for (E = 0; E < 3 && D < B; ) + C[D] = o >>> (16 >>> E & 24) & 255, E++, D++; + o = 0; + } + return C; +} +function Uh(Q) { + if (typeof Uint8Array.fromBase64 == "function") return Uint8Array.fromBase64(Q); + let A = atob(Q), I = A.length, g = new Uint8Array(I); + for (let B = 0; B < I; B++) + g[B] = A.charCodeAt(B); + return g; +} +const Lh = typeof atob == "function" ? Uh : Jh, Hh = Lh("AGFzbQEAAAABzAdyYAN/f38Bf2ACf38AYAJ/fwF/YAF/AGABfwF/YAN/f38AYAR/f39/AGAFf39/f38AYAADf39/YAZ/f39/f38AYAd/f39/f39/AGAEf39/fwF/YAFvAX9gCH9/f39/f39/AGABfwN/f39gAABgBX9/f39/AX9gAX0BfWACf28AYAF/AX5gBn9/f39/fQBgAAFvYAN/fX8AYAZ/f39/f38Bf2AFf39/fn8AYAABf2ABfwFvYAJ/fwFvYAJ/fQBgAX4Bf2ADb39/AW9gA29/fwBgAm9vAX9gA39/bwBgCX9/f39/f39/fwBgB39/f39/f38Bf2ADf39/AX5gAn9vA39/f2ACfX0BfWACb28Bb2ACb38Bb2AEf39/fQF/YAx/f39/f39/f39/f38AYAl/f39/f39/f38Bf2AFf39/fX8AYAV/f39/fQBgBH9/f34AYAR/fX9/AX9gE39/f39/f39/f39/f39/f39/f38Bf2ATf39/f39/f39/f39/f39/f39/fwBgA35+fwF+YAd/f39/f319AGADf35+AGAFf399f38AYAV/f3x/fwBgBX9/fn9/AGATf318f39/f39/f39/f39/f39/fwN/f39gBH9vf28Df39/YAN/b28Bf2AAAn9/YANvb28Bf2ADb29vAGADb39vAGADb29/AGABbwFvYAF8AW9gAX4Bb2AKf39/f39/f39/fwF/YAt/f39/f39/f39/fwF/YAp/f39/f39/f39/AGAGf399f39/AGACf38BfWACf34AYAN/fX8Bf2AGf35/f39/AGAFf39/fn4AYAh/f3t9fX9/fwBgCn9/f397fX19fX8AYAZ/f39/fX0AYAV/f39/fwF9YAR+fn9/AX5gBH9/f38BfWACfn8AYAF/AX1gCX9/f39/f35+fgBgA39/ewBgAn5/AX9gAn9+AX9gAn1/AX1gA319fQF9YAR/fn5/AGAGf39/fX9/AGAGf39/fH9/AGAGf39/fn9/AGAJf39/f39/f39vA39/f2AIf39/f29/f38Df39/YAd/f39/f39/A39/f2AHf29/fX9/bwN/f39gB39vb399f38Df39/YA59fX19fX19fX1/b319fwFvYAZ/b399f28Df39/YAZ/b29/fX8Df39/YAV/f39/bwN/f39gBH9/f38Df39/YAR/b29/A39/f2ACf38Df39/YA19fX19fX19fX1/fX1/AW9gAW8Df39/YAJ/bwJ/f2AKfX19fX19fX19fwFvYAR/fX9/AGAEf3x/fwBgBH9+f38AYAF8AX8CxRU0EC4vc3BhcmtfcnNfYmcuanMaX193YmdfbmV3X2YzYzlkZjRmMzhmM2Y3OTgAFRAuL3NwYXJrX3JzX2JnLmpzJl9fd2JnX25ld193aXRoX2xlbmd0aF80MWEyMjE5MWI5YmRmZDY2ABoQLi9zcGFya19yc19iZy5qcx9fX3diZ19zdWJhcnJheV9kNTFlODk0NThiM2ZkYmY2AB4QLi9zcGFya19yc19iZy5qcx1fX3diZ19sZW5ndGhfMWU3MDE3OThmZGNhYTNiNAAMEC4vc3BhcmtfcnNfYmcuanMaX193Ymdfc2V0XzQ0ODEyNjc2OWJmN2MxODEAHxAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX25ld180ZjlmYWZiYjM5MDlhZjcyABUQLi9zcGFya19yc19iZy5qcxpfX3diZ19zZXRfOGVlMmQzNGZhY2I4NDY2ZQA8EC4vc3BhcmtfcnNfYmcuanMbX193YmdfcHVzaF82YmRiYzk5MGJlNWFjMzdiACAQLi9zcGFya19yc19iZy5qcxVfX3diZ19jc3BsYXRhcnJheV9uZXcAGhAuL3NwYXJrX3JzX2JnLmpzFV9fd2JnX2dzcGxhdGFycmF5X25ldwAaEC4vc3BhcmtfcnNfYmcuanMcX193YmdfRXJyb3JfMmU1OWIxYjM3YTlhMzRjMwAbEC4vc3BhcmtfcnNfYmcuanMrX193YmdfX193YmluZGdlbl9pc19vYmplY3RfNDBjNWE4MDU3MmU4ZjlkMwAMEC4vc3BhcmtfcnNfYmcuanMnX193YmdfZ2V0X3dpdGhfcmVmX2tleV82NDEyY2YzMDk0NTk5Njk0ACcQLi9zcGFya19yc19iZy5qcy5fX3diZ19fX3diaW5kZ2VuX2lzX3VuZGVmaW5lZF9jMGNjYTcyYjgyYjg2ZjRkAAwQLi9zcGFya19yc19iZy5qcyRfX3diZ19fX3diaW5kZ2VuX2luXzRiZDdhNTdlNTQzMzczNjYAIBAuL3NwYXJrX3JzX2JnLmpzLF9fd2JnX19fd2JpbmRnZW5fbnVtYmVyX2dldF83NTc5YWFiMDJhOGE2MjBjABIQLi9zcGFya19yc19iZy5qcy1fX3diZ19fX3diaW5kZ2VuX2Jvb2xlYW5fZ2V0X2E4NmMyMTY1NzVhNzVjMzAADBAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX3NldF82YmU0Mjc2OGM2OTBlMzgwAD0QLi9zcGFya19yc19iZy5qcxpfX3diZ19zZXRfNmM2MGIyZThhZDBlOTM4MwA+EC4vc3BhcmtfcnNfYmcuanMaX193Ymdfc2V0XzgxYjQxNzQzNTJlNmEwOTUAPxAuL3NwYXJrX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfZTQyMjc1ZTYwMWUxNGVlYgAhEC4vc3BhcmtfcnNfYmcuanMaX193YmdfZ2V0X2Y5NjcwMmM2MjQ1ZTRlZjkAJxAuL3NwYXJrX3JzX2JnLmpzKl9fd2JnX19fd2JpbmRnZW5faXNfZmFsc3lfYzZkZGZhZTFiYjU2ZDVlZgAMEC4vc3BhcmtfcnNfYmcuanMdX193YmdfbGVuZ3RoXzBjMzJjYjg1NDNjOGU0YzgADBAuL3NwYXJrX3JzX2JnLmpzH19fd2JnX3N1YmFycmF5XzBmOThkM2ZiNjM0NTA4YWQAHhAuL3NwYXJrX3JzX2JnLmpzJ19fd2JnX3Byb3RvdHlwZXNldGNhbGxfM2UwNWViOTU0NTU2NTA0NgAhEC4vc3BhcmtfcnNfYmcuanMdX193YmdfbGVuZ3RoXzZlODIxZWRkZTQ5N2E1MzIADBAuL3NwYXJrX3JzX2JnLmpzJF9fd2JnX2dldF91bmNoZWNrZWRfN2Q3YmFiZTMyZTllNmE1NAAoEC4vc3BhcmtfcnNfYmcuanMgX193Ymdfc2V0X2luZGV4XzMzOGE2NmU0MGZjNDVkZWUAHxAuL3NwYXJrX3JzX2JnLmpzHV9fd2JnX2xlbmd0aF9hNGNhOWU3ODM1OWI1ZjFmAAwQLi9zcGFya19yc19iZy5qcx9fX3diZ19zdWJhcnJheV81MTdjZDBmMTgxMWFiODcyAB4QLi9zcGFya19yc19iZy5qcydfX3diZ19wcm90b3R5cGVzZXRjYWxsXzY0YzI4N2EyN2NjMjRkMjcAIRAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX2dldF80ODQ4ZTM1MGI0MGFmYzE2ACgQLi9zcGFya19yc19iZy5qcyZfX3diZ19uZXdfd2l0aF9sZW5ndGhfMjZiZmZiZTIzNmJmNzNmOQAaEC4vc3BhcmtfcnNfYmcuanMdX193YmdfbGVuZ3RoX2ZkNDY0NmI0MDE5MjY3ODgADBAuL3NwYXJrX3JzX2JnLmpzGl9fd2JnX3NldF9hOThjOGRhNjU1N2U2M2RlAB8QLi9zcGFya19yc19iZy5qcxpfX3diZ19uZXdfMjI3ZDdjMDU0MTRlYjg2MQAVEC4vc3BhcmtfcnNfYmcuanMcX193Ymdfc3RhY2tfM2IwZDk3NGJiZjMxZTQ0ZgASEC4vc3BhcmtfcnNfYmcuanMcX193YmdfZXJyb3JfYTZmYTIwMmI1OGFhMWNkMwABEC4vc3BhcmtfcnNfYmcuanMwX193YmdfX193YmluZGdlbl9qc3ZhbF9sb29zZV9lcV8zYTcyYWU3NjRkNDZkOTQ0ACAQLi9zcGFya19yc19iZy5qcyxfX3diZ19fX3diaW5kZ2VuX3N0cmluZ19nZXRfOTE0ZGY5N2ZjZmE3ODhmMgASEC4vc3BhcmtfcnNfYmcuanMsX193YmdfaW5zdGFuY2VvZl9VaW50OEFycmF5XzRiOGRhNjgzZGViMjVkNzIADBAuL3NwYXJrX3JzX2JnLmpzLV9fd2JnX2luc3RhbmNlb2ZfQXJyYXlCdWZmZXJfZmY3YzEzMzdhNWUzYjMzYQAMEC4vc3BhcmtfcnNfYmcuanMaX193YmdfbmV3X2E1NjAzNzhlYTEyNDBiMTQAQBAuL3NwYXJrX3JzX2JnLmpzJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfODFmYzc3Njc5YWY4M2JjNgABEC4vc3BhcmtfcnNfYmcuanMuX193YmdfX193YmluZGdlbl9kZWJ1Z19zdHJpbmdfZGQ1ZDJkMDdjZTllNmM1NwASEC4vc3BhcmtfcnNfYmcuanMfX193YmluZGdlbl9pbml0X2V4dGVybnJlZl90YWJsZQAPEC4vc3BhcmtfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDEAQRAuL3NwYXJrX3JzX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAyABsQLi9zcGFya19yc19iZy5qcyBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMwAbEC4vc3BhcmtfcnNfYmcuanMgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDQAGxAuL3NwYXJrX3JzX2JnLmpzIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDA1AEID2wrZChwcFhYBAQoKCQEKCgUJBAQpCgoEDQQpDQEKAQUGBAQEBA0GBAQEBAUGBAQEBA8FCQkJBgEBCQkqBioCAQcJBgkGAgENDQYGBQErBAcBAEMBAUQGBgICAgEGAQQEBAQGAQEFBgYFBgYCAgYBCQIHBQYBAQEDBgQDBAEQAwQHAAYBBwYEAw0CBAEBAQEBFwQGAQIEBQYFA0UFARAHAwIBAQcCBQIBLAkFBwQGBAIEBgECBSIHAiwBAQcHAQYGBhQNASMECQcAAQAAAgEFAgUtBQoFBwYBAwYGAQ0BAQUDCQEBAwIFBgIFAwMCAwEBBAFGAi0GAwEHAQcHEQMRRwUHBgEDBwcBAQECFAICCQkEAgEuBw0BAwkFAQEBAQABCyQELwMBAwMCAQECA0gEBQEGAwQjBUkBAQEBBwAYBQICAUoCCQIBBwEAAQYJAUsGBgYBAwMFBQEFTAMBAwYEBAUFBTAwBAQvAwMxMQYkBQUKAQMJAAUGBQcBAgMDAwMHTQIBBQkJCQUABwMHAQEAAgYFAQMDAwMBAwYBAQECAU4GAgUGAQUBCwAJCQQBARcBAgIHFwABBQYDBQ0FFwEDAAUiAgEFAAAHBQUAABQJDwUHAgIKAgIBAgcHAgMKBQMFAQMEGAUHMgUFBQMyAQEzAAYEAwMKBREJAwMEBwoBBQUFTxQGBQIBAwYCUAUCAQMBAwFRAQQBBwUCBgIYAQJSAgIBAVMDAgEDAgJUAQsHBwcHCgEBAgcDAwkCBQEHBwULBgcEBAQDAQECCQYGAREDEAQEBwEEGRAKVSMEAwECByIHCQUEAhgDAgIFBAsWAgoCEQJWAzMLAgM0AAIBFAMHAQICBAIHAQIBAgICAgIQBgEEBgQBBgIZAgYCBREBAwIDBwUHBAQHBAEBAQEBAQIBAQEBAQIBBAQBAQACAgEBAwEDAgIDEQEDBQEBAgMDAgMCAQkBAQUHAwIBAwMHAgIABwMDAgICAQIHAQEDAgMrBQIHAgIFAgICAwUFAwEBAQICAgICVwECAgICAgIDAQkBAQQDCQEJAi4DAQEBAQEJCQICAQICAgMDBAMDAQEBAwEBAQUBBQFYAQJZAQEBAAEDBgIBCwsCAQYFAgIBAQQDAwEDAgIDAwMLAgEBAgEBAQEAAgM0AAAHBQMDBQMYAgUDFhYHBwkDBgUFBQUDAwMDAwMGHBwAAwYCAwADBAQEBAIFAQQEBAkEBwQFAwMDAwMCAgICBhMFWgUEAQMBAQMBBQQEWwlcXQEBAgUCBwICBhEAAAAAAAAAAAAAAAAEAgIAAAAAHR0EAAQdBAQEAgACAgIAODgFARMFAQAAAAECAAICAgIFAgECBBQCAgJeEF8HAgYCBwFgYWIDDwMCA2NkZQIPC2YCZzk5aAICAQICAgICCQICAgIlaSUlAAICAgICAgICAgICag4ODg4ODg4ODmsEBAQEAgJsAQEBAQABAgICFwICAgICbQECAgEQBzU2NwEBAgILBgIBADo6AwICJiYABQIDAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwMDAQIBAQEBAQEBAQEEAgACAgICAgkCAgICAQEBAQIDAQEBAgECAgICAgIEcR0DAwIHAgkBARkZBRISAgECAQEBAQEBAQEBAgIBAgEBAQEBAQEBAwQBBQUDBQIFBAUBBQUVFQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAgIDAwEBAQEBAQEBAQEBAQEBDwEPAQICAgECAgIBAQICAQEBAQMBAQEBAQEBAQEDAwoBAgQBJgQEBAQEBA8EGQUECwJwAeoE6gRvAIAIBQMBABMGDwJ/AUGAgMAAC38BQYAICwfZDUUGbWVtb3J5AgAXX193YmdfY2h1bmtkZWNvZGVyX2ZyZWUAtgQRY2h1bmtkZWNvZGVyX3B1c2gA9ggTY2h1bmtkZWNvZGVyX2ZpbmlzaADmCAxuZXdfbG9kX3RyZWUA5wgTbmV3X3NoYXJlZF9sb2RfdHJlZQDoCA1pbml0X2xvZF90cmVlANUIEGRpc3Bvc2VfbG9kX3RyZWUAmwIQdXBkYXRlX2xvZF90cmVlcwCrCBJnZXRfbG9kX3RyZWVfbGV2ZWwA1ggSdHJhdmVyc2VfbG9kX3RyZWVzAJEIGmR5bmFtaWNfdHJhdmVyc2VfbG9kX3RyZWVzAJIICndhc21fc3RhcnQAwAgMc2ltZF9lbmFibGVkAIsLC3NvcnRfc3BsYXRzAJkJDXNvcnQzMl9zcGxhdHMAmgkWZGVjb2RlX3RvX3BhY2tlZHNwbGF0cwCtCBNkZWNvZGVfdG9fZXh0c3BsYXRzALQIFl9fd2JnX2dzcGxhdGFycmF5X2ZyZWUA5wUfX193YmdfZ2V0X2dzcGxhdGFycmF5X251bVNwbGF0cwDwCB9fX3diZ19zZXRfZ3NwbGF0YXJyYXlfbnVtU3BsYXRzAPcIIV9fd2JnX2dldF9nc3BsYXRhcnJheV9tYXhTaERlZ3JlZQDxCCFfX3diZ19zZXRfZ3NwbGF0YXJyYXlfbWF4U2hEZWdyZWUA+AgPZ3NwbGF0YXJyYXlfbGVuAIoIFGdzcGxhdGFycmF5X3RpbnlfbG9kAJ8HFWdzcGxhdGFycmF5X2JoYXR0X2xvZACxBxtnc3BsYXRhcnJheV90b19wYWNrZWRzcGxhdHMA1wgfZ3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzX2xvZADYCBhnc3BsYXRhcnJheV90b19leHRzcGxhdHMA6QgcZ3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzX2xvZADqCBhnc3BsYXRhcnJheV9pbmplY3RfcmdiYTgAhQoVZGVjb2RlX3RvX2dzcGxhdGFycmF5AMQIG3BhY2tlZHNwbGF0c190b19nc3BsYXRhcnJheQDFCBZfX3diZ19jc3BsYXRhcnJheV9mcmVlAOgFH19fd2JnX2dldF9jc3BsYXRhcnJheV9udW1TcGxhdHMA8ggfX193Ymdfc2V0X2NzcGxhdGFycmF5X251bVNwbGF0cwD5CCFfX3diZ19nZXRfY3NwbGF0YXJyYXlfbWF4U2hEZWdyZWUA8wghX193Ymdfc2V0X2NzcGxhdGFycmF5X21heFNoRGVncmVlAPoID2NzcGxhdGFycmF5X2xlbgCKCBNjc3BsYXRhcnJheV9oYXNfbG9kAPsHFGNzcGxhdGFycmF5X3RpbnlfbG9kAKAHFWNzcGxhdGFycmF5X2JoYXR0X2xvZACyBxtjc3BsYXRhcnJheV90b19wYWNrZWRzcGxhdHMA6wgfY3NwbGF0YXJyYXlfdG9fcGFja2Vkc3BsYXRzX2xvZADsCBhjc3BsYXRhcnJheV90b19leHRzcGxhdHMA7QgcY3NwbGF0YXJyYXlfdG9fZXh0c3BsYXRzX2xvZADuCBhjc3BsYXRhcnJheV9pbmplY3RfcmdiYTgAhgoVZGVjb2RlX3RvX2NzcGxhdGFycmF5AMIIG3BhY2tlZHNwbGF0c190b19jc3BsYXRhcnJheQDGCBhleHRzcGxhdHNfdG9fZ3NwbGF0YXJyYXkAxwgVdGlueV9sb2RfcGFja2Vkc3BsYXRzALUIFmJoYXR0X2xvZF9wYWNrZWRzcGxhdHMAvQgSdGlueV9sb2RfZXh0c3BsYXRzALYIE2JoYXR0X2xvZF9leHRzcGxhdHMAvggSZ2V0X3JheWNhc3RfYnVmZmVyAK0KE2dldF9yYXljYXN0X2J1ZmZlcjIArgoVcmF5Y2FzdF9wYWNrZWRfYnVmZmVyAOUIE3JheWNhc3RfZXh0X2J1ZmZlcnMAhgkVcmF5Y2FzdF9wYWNrZWRfc3BsYXRzALwIEWRlY29kZV9yYWRfaGVhZGVyAO8IE2dzcGxhdGFycmF5X2hhc19sb2QA+wcRX193YmluZGdlbl9tYWxsb2MAjwgSX193YmluZGdlbl9yZWFsbG9jAMEID19fd2JpbmRnZW5fZnJlZQDIBxRfX3diaW5kZ2VuX2V4bl9zdG9yZQCfChdfX2V4dGVybnJlZl90YWJsZV9hbGxvYwCFBRVfX3diaW5kZ2VuX2V4dGVybnJlZnMBARlfX2V4dGVybnJlZl90YWJsZV9kZWFsbG9jAM0HEF9fd2JpbmRnZW5fc3RhcnQAiQsJyQkBAEEBC+kEowiHCqcJtQStCZsBMi/+CYcK/QqmA4wEgwLfBoUIoQXLCtAB/wG2B5sG/AmJCvoFige/CNoI9wKVCp4IM+MI0wbRAp0D6QfbCJMJnwiYBdAEyASICcoEpQi9AjEwmwaCBJQK5ArjCroI8AacCbYF/AeWCdgC5wrLCOgKiQqBB+sKnAHFBu8C1QTSBs0DjAbGB4sJoQeBBoUGjAnqB4sJgAnEB5gJpQeUCZUJ7QeiB40J4QeMCeIHjAniB+IHjgnjB48J5AegCOwKggehCM4IyQjPCKYFlgrUBqgI7AeHBsUFlgqTCooE8ALOAagDggXsBO0EjQaIAdwG/gqeCvgK9QmlCcUJuwmxCccJ8QnJCb0JtAm2CcAJwgmz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7AI2AgQgAyACKAL4AjYCCCADIAIoAoQDNgIMIAMgAigCkAM2AhAgAyACKAKcAzYCFCADIAIoAqgDNgIYIAMgAigCtAM2AhwgAkEINgJYIAIgAzYCVCACQQg2AlAgAiAkNwOwAiACQgE3AsQDIAJBAjYCvAMgAkGkk8EANgK4AyACIAJBsAJqNgLAAyACQbgDahCEAyACKAJQIgQEQCACKAJUIgZBBGsoAgAiA0F4cSIFIARBAnQiBEEEQQggA0EDcSIDG2pJDRUgA0EAIAUgBEEnaksbDQcgBhC0AgtB4AAQfiIKRQ0RIAogAkHYAmpB4AD8CgAAIAooAgAhDiAKQYCAgIB4NgIAIA5BgICAgHhGDQcgCkEEaiILKQIAIScgCigCDCEPIApBgICAgHg2AgwgD0GAgICAeEYNByAKKQIQISggCigCJCEHIApBgICAgHg2AiQgB0GAgICAeEYNByAKKQIoISkgCigCGCEIIApBgICAgHg2AhggCEGAgICAeEYNByAKKQIcIR8gCigCSCEGIApBgICAgHg2AkggBkGAgICAeEYNByAKKQJMIRsgCigCVCEFIApBgICAgHg2AlQgBUGAgICAeEYNByAKKQJYIRkgCigCPCEEIApBgICAgHg2AjwgBEGAgICAeEYNByAKKQJAIRogCigCMCEDIApBgICAgHg2AjAgA0GAgICAeEYNByACIAopAjQ3ApgEIAIgAzYClAQgAiAaNwKMBCACIAQ2AogEIAIgGTcCgAQgAiAFNgL8AyACIBs3AvQDIAIgBjYC8AMgAiAfNwLoAyACIAg2AuQDIAIgKTcC3AMgAiAHNgLYAyACICg3AtADIAIgDzYCzAMgAiAnNwLEAyACIA42AsADIAJCgICAgIABNwK4AyACKALMASINIAIoAsABIgRGBEAgAkHAAWpBtJPBABDaBiACKALMASENIAIoAsABIQQLIAIoAsQBIgkgAigCyAEiCCANaiIDIARBACADIARPG2tBDGxqIgMgJzcCBCADIA42AgAgAiANQQFqIgY2AswBIAQgBkYEQCACQcABakG0k8EAENoGIAIoAsQBIQkgAigCyAEhCCACKALMASEGIAIoAsABIQQLIAkgBiAIaiIDIARBACADIARPG2tBDGxqIgMgKDcCBCADIA82AgAgAiAGQQFqIgY2AswBIAQgBkYEQCACQcABakG0k8EAENoGIAIoAsQBIQkgAigCyAEhCCACKALMASEGIAIoAsABIQQLIAkgBiAIaiIDIARBACADIARPG2tBDGxqIgMgKTcCBCADIAc2AgAgAiAGQQFqNgLMASACKALkAyIFQYCAgIB4Rw0BQQQhBkEEIQQMCAsgAiBdIF795AH9DAAAAD8AAAA/AAAAPwAAAD/95gH9CwQAIAJBAEEBQQIgW/0fASI2IFv9HwIiN2AbIgMgNyBb/R8AIgFfGyADIAEgNmAbIgM6AKgBIAIgAiADQQJ0cioCADgCtAEgAiAINgJcIAIgAigCkAE2AlggAiANNgJUIAIgDTYCUCACIAA2ArQCIAIgAkG0AWo2ArgCIAIgAkGoAWo2ArACIAJBuANqIgYgAkHQAGoiBSACQbACahC7BCACKQO4AyEbIAIpAsQDIRkgAigCzAMhBCACKALAAyEDIAIgW/0LBLACIAIgAzYC4AEgAiAENgLwASACQQY2AlQgAkGAlMEANgJQIAJCBTcCXCACIB03A9gDIAIgHjcD0AMgAiAlNwPIAyACICY3A8ADIAIgHDcDuAMgAiAGNgJYIAUQhAMgAyAESQ0BIBkhGiAEIQUgGyEZIAMhBAwCCyACKQLoAyEaIAIoAswBIgYgAigCwAEiBEYEQCACQcABakG0k8EAENoGIAIoAswBIQYgAigCwAEhBAsgAigCxAEiByACKALIASIJIAZqIgMgBEEAIAMgBE8ba0EMbGoiAyAaNwIEIAMgBTYCACACIAZBAWoiBjYCzAEgAigC8AMiBUGAgICAeEYEQEEFIQRBAyEGDAcLIAIpAvQDIRogBCAGRgRAIAJBwAFqQbSTwQAQ2gYgAigCxAEhByACKALIASEJIAIoAswBIQYgAigCwAEhBAsgByAGIAlqIgMgBEEAIAMgBE8ba0EMbGoiAyAaNwIEIAMgBTYCACACIAZBAWoiBTYCzAEgAigC/AMiBkGAgICAeEYEQEEGIQRBAiEGDAcLIAIpAoAEIRogBCAFRgRAIAJBwAFqQbSTwQAQ2gYgAigCxAEhByACKALIASEJIAIoAswBIQUgAigCwAEhBAsgByAFIAlqIgMgBEEAIAMgBE8ba0EMbGoiAyAaNwIEIAMgBjYCAEEBIQYgAiAFQQFqNgLMASACKAKIBCIFQYCAgIB4RgRAQQchBAwHCyACKQKMBCEaIAIoAswBIgYgAigCwAEiBEYEQCACQcABakG0k8EAENoGIAIoAswBIQYgAigCwAEhBAsgAigCxAEiCSACKALIASIIIAZqIgMgBEEAIAMgBE8ba0EMbGoiAyAaNwIEIAMgBTYCACACIAZBAWoiBjYCzAEgAigClAQiBUGAgICAeEYNByACKQKYBCEaIAQgBkYEQCACQcABakG0k8EAENoGIAIoAsQBIQkgAigCyAEhCCACKALMASEGIAIoAsABIQQLIAkgBiAIaiIDIARBACADIARPG2tBDGxqIgMgGjcCBCADIAU2AgAgAiAGQQFqNgLMAQwHCyAbIRogAyEFCyACIAQ2AsgDIAJBAjYCvAMgAiAFNgLUAyACIBk3AsADIAIgGjcCzANBASEGAkAgGaciBUGAgICAeEYNACACKQLEAyEZIAIoAswBIgYgAigCwAEiBEYEQCACQcABakGwlMEAENoGIAIoAswBIQYgAigCwAEhBAsgAigCxAEiCSACKALIASIIIAZqIgMgBEEAIAMgBE8ba0EMbGoiAyAZNwIEIAMgBTYCACACIAZBAWoiBTYCzAFBAiEGIBqnIgdBgICAgHhGDQAgAikC0AMhGiAEIAVGBEAgAkHAAWpBsJTBABDaBiACKALEASEJIAIoAsgBIQggAigCzAEhBSACKALAASEECyAJIAUgCGoiAyAEQQAgAyAETxtrQQxsaiIDIBo3AgQgAyAHNgIAIAIgBUEBajYCzAELIAIgBjYCuAMgAkG4A2oQxwYMCQsgAyALQbTUxwAQvwcACyAFIANBtNTHABC/BwALQaCMyABBLkHQjMgAEKIIDAoLQdCUwQAQpAoACyASIARBDGxqIQQDQCAEQQRrKAIAIgUEQCAEKAIAIgdBBGsoAgAiA0F4cSIIIAVBAnQiBUEEQQggA0EDcSIDG2pJDQ0gA0EAIAggBUEnaksbDQ4gBxC0AgsgBEEMaiEEIAZBAWsiBg0ACwsgCigCACIEQYCAgIB4ckGAgICAeEcEQCALKAIAIgZBBGsoAgAiA0F4cSIFIARBAnQiBEEEQQggA0EDcSIDG2pJDQsgA0EAIAUgBEEnaksbDQwgBhC0AgsgCigCDCIEQYCAgIB4ckGAgICAeEcEQCAKKAIQIgZBBGsoAgAiA0F4cSIFIARBAnQiBEEEQQggA0EDcSIDG2pJDQsgA0EAIAUgBEEnaksbDQwgBhC0AgsgCigCGCIEQYCAgIB4ckGAgICAeEcEQCAKKAIcIgZBBGsoAgAiA0F4cSIFIARBAnQiBEEEQQggA0EDcSIDG2pJDQsgA0EAIAUgBEEnaksbDQwgBhC0AgsgCigCJCIEQYCAgIB4ckGAgICAeEcEQCAKKAIoIgZBBGsoAgAiA0F4cSIFIARBAnQiBEEEQQggA0EDcSIDG2pJDQsgA0EAIAUgBEEnaksbDQwgBhC0AgsgCigCMCIEQYCAgIB4ckGAgICAeEcEQCAKKAI0IgZBBGsoAgAiA0F4cSIFIARBAnQiBEEEQQggA0EDcSIDG2pJDQsgA0EAIAUgBEEnaksbDQwgBhC0AgsgCigCPCIEQYCAgIB4ckGAgICAeEcEQCAKKAJAIgZBBGsoAgAiA0F4cSIFIARBAnQiBEEEQQggA0EDcSIDG2pJDQsgA0EAIAUgBEEnaksbDQwgBhC0AgsgCigCSCIEQYCAgIB4ckGAgICAeEcEQCAKKAJMIgZBBGsoAgAiA0F4cSIFIARBAnQiBEEEQQggA0EDcSIDG2pJDQsgA0EAIAUgBEEnaksbDQwgBhC0AgsgCigCVCIEQYCAgIB4ckGAgICAeEcEQCAKKAJYIgZBBGsoAgAiA0F4cSIFIARBAnQiBEEEQQggA0EDcSIDG2pJDQsgA0EAIAUgBEEnaksbDQwgBhC0AgsgCkEEaygCACIEQXhxQeQAQegAIARBA3EiAxtJDQogA0EAIARBiAFPG0UEQCAKELQCDAQLDAsLQQAhBSACQQA2ArgDIAJBADYC3ANBCCEHAkACQAJ/IAkgBGsiA0EAIAMgCU0bIgNBCUkEQCAMIQsgFwwBCyACQRhqIAJBuANqQX8gA0EBa2d2QQFqEI0EIAIoAhgiA0GBgICAeEcEQCADDQpBqJ/HAEERQYDFxwAQoggACyACKALcAyIHQQlJBEAgByEFIAwhC0EIIQcgFwwBCyACKAK8AyEFIAIoAsADIQsgDAsiDiAFIAdJBH8gByAFQX9zaiIGIAkgBCAEIAlJGyINIARrIgMgAyAGSxtBAWoiA0EESwRAIAsgBUECdGohBiAE/RH9DAAAAAABAAAAAgAAAAMAAAD9rgEhWiAFIAMgA0EDcSIDQQQgAxtrIg9qIQUgDyEDA0AgBiBa/QsCACAGQRBqIQYgWv0MBAAAAAQAAAAEAAAABAAAAP2uASFaIANBBGsiAw0ACyAEIA9qIQQLIAsgBUECdGohBgNAIAQgDUYNAiAGIAQ2AgAgBkEEaiEGIARBAWohBCAHIAVBAWoiBUcNAAsgBwUgBQs2AgAgBCAJTw0BA0ACfyACKALcAyIDQQlPBEAgAigCvAMhBiACKALAAyEHIAwMAQsgAyEGIAwhB0EIIQMgFwshBSADIAZGBEAgAkG4A2oQ/QYgAigCvAMhBiACKALAAyEHIAwhBQsgByAGQQJ0aiAENgIAIAUgBSgCAEEBajYCACAEQQFqIgQgCUcNAAsMAQsgDiAFNgIACyACQfAAaiACQdgDaikCADcDACACQeAAaiACQcgDav0AAgD9CwMAIAIgAv0AArgD/QsDUCAAKAIQIAAoAhQgCCACKAJ0IgZBCU8EfyACKAJUIQYgAigCWAUgEAsgBhDrAiACKAK0AiEEIAIoArACIQMgE0EYaiAWQRhqKAIANgIAIBNBEGogFkEQaikCADcCACATIBb9AAIA/QsCACACIAM2ArgDIAIgBCACKALUAiIPIA9BCEsiAxsiCTYC5AMgAiAPQQAgAxs2AtwDIAJBACAEIAMbNgK8AyAJBEAgAigCwAMgDCADGyEHQQAhCCACKAKoAiENA0AgAiAIIgNBAWoiCDYC4AMgByADQQJ0aigCACERIAIoAqACIA1GBEAgAkGgAmpB3JLBABCsBgsgAigCpAIgDUECdGogETYCACACIA1BAWoiDTYCqAJDAACAPyE3An8CQCAAKAIIIgMgEUsEQCAAKAIEIBFBGGxqIgYtABMiBSAGLQASIgQgBi0AESIDIAMgBEkbIgMgAyAFSRsiBAR9QwAAQMEgACoCRCAALQBYQQJGIgMbIgFDAAAQQSAAKgJIIAMbIAGTQwAAfkOVIARBAWtB/wFxs5SSEKYEIgEgAZIFQwAAAAALITYgBkEMai8BACIDQf//AXFFBEAgA0EQdAwDCyADQf8HcSEFIANBgIACcSEEIANBgPgBcSIDQYD4AUYEQCAEQRB0IgNBgICA/AdyIAVFDQMaIAMgBUENdHJBgICA/gdyDAMLIARBEHQhBCADRQ0BIANBDXRBgICA/ABxIAVBDXRyQYCAgMADaiAEcgwCCyARIANBtNTHABC/BwALIAUgBWdBEGsiA0H//wNxQQhqdEH///8DcSAEQYCAgNgDciADQRd0a3ILviIBQwAAgD9eBEAgARD0BUNU+C1AlEMAAIA/kpEhNwsgAigCmAEiBCACKAKQAUYEQCACQZABakHY98AAEKsGCyACKAKUASIOIARBA3RqIgMgETYCBCADIDYgN5QiNzgCACACIARBAWo2ApgBAkAgBEUEQEEAIQMMAQsgNyA3XARAA0ACQCAOIARBAWsiBUEBdiIDQQN0aiIGKgIAIgEgAVsgASA3YEVxDQAgESAGQQRqKAIASw0AIAQhAwwDCyAOIARBA3RqIAYpAgA3AgAgAyEEIAVBAk8NAAwCCwALA0AgDiAEQQFrIgZBAXYiA0EDdGoiCyoCACIBIAFbIAEgN2BFcUF/IAEgN18bIgVBAEwgESALQQRqKAIATSAFGwRAIAQhAwwCCyAOIARBA3RqIAspAgA3AgAgAyEEIAZBAUsNAAsLIA4gA0EDdGoiAyARNgIEIAMgNzgCACAIIAlHDQALCyAPQQlPBEAgAigCwAMiBkEEaygCACIDQXhxIgUgD0ECdCIEQQRBCCADQQNxIgMbakkNBCADQQAgBSAEQSdqSxsNCyAGELQCCyACKAJ0IgRBCU8EQCACKAJYIgZBBGsoAgAiA0F4cSIFIARBAnQiBEEEQQggA0EDcSIDG2pJDQogA0EAIAUgBEEnaksbDQsgBhC0AgsgAigCmAEiDQ0ACwsgAigCkAEiBEUNACACKAKUASIGQQRrKAIAIgNBeHEiBSAEQQN0IgRBBEEIIANBA3EiAxtqSQ0HIANBACAFIARBJ2pLGw0DIAYQtAILIAIoAswBIgQNAQwECwsMBAsMBAsACyACKAKoAiEGCyACIAAoAggiAzYCUCACIAY2ArACIAMgBkcEQCACQQA2ArgDQQAgAkGwAmogAkHQAGogAkG4A2pBwJTBABCuCAALIAAgAigCpAIiBSAGEJkCIAJBwAFqEJEEAkAgAigCoAIiAwRAIAVBBGsoAgAiAEF4cSIEIANBAnQiA0EEQQggAEEDcSIAG2pJDQIgAEEAIAQgA0EnaksbDQEgBRC0AgsgAkGgBGokAA8LDAELQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC+rNAQQUfx1+DXsXfSMAQbAEayICJAAgABCqASACIAAoAggiBDYCLCACQQE2AsQDIAJBqLnBADYCwAMgAkIBNwLMAyACIAJBLGqtQoCAgIAQhCIqNwOwAiACIAJBsAJqNgLIAyACQdAAaiACQcADahDiBAJAAkACQAJAAkACQAJ/IAIoAlAiAwRAIAIoAlQiBEEEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgA2pJDQYgBUEAIAYgA0EnaksbDQcgBBC0AiAAKAIIIQQLIAIoAixFDQECQCAERQRAIABBBEEAEP4BDAELIARBAnQiCBB+IgdFDQNBACEDAkACQAJAIARBBE8EQP0MAAAAAAEAAAACAAAAAwAAACEzIARB/P//H3EiAyEGIAchBQNAIAUgM/0LAgAgBUEQaiEFIDP9DAQAAAAEAAAABAAAAAQAAAD9rgEhMyAGQQRrIgYNAAsgAyAERg0BCyAHIANBAnRqIQUDQCAFIAM2AgAgBUEEaiEFIAQgA0EBaiIDRw0ACyACIAA2AsQDIAIgAkGwAmo2AsADIAIgAkHAA2o2AlAgBEEBRg0CDAELIAIgADYCxAMgAiACQbACajYCwAMgAiACQcADajYCUAsgBEEVTwRAIAJB0ABqIQYjAEGAIGsiCyQAAkACQAJAAkACQEGAifoAIAQgBEGAifoATxsiBSAEIARBAXZrIgMgAyAFSRsiBUGBCE8EQCADQf////8DSw0CQTAgBSAFQTBNGyIJQQJ0IgNB/f///wdPDQIgAxB+IgVFDQMgByAEIAUgCSAEQcEASSAGEGQgBUEEaygCACIGQXhxIglBBEEIIAZBA3EiBhsgA2pJDQQgBkEAIAkgA0EnaksbDQUgBRC0AgwBCyAHIAQgC0GACCAEQcEASSAGEGQLIAtBgCBqJAAMBQtB6PfAABC3CAsAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAtBBCEDA0AgByADIAdqIAJBwANqEIQCIAggA0EEaiIDRw0ACwsgACAHIAQQ/gEgB0EEaygCACIEQXhxIgNBBEEIIARBA3EiBBsgCGpJDQYgBEEAIAMgCEEnaksbDQcgBxC0AgsgABDABAJAIAAoAggiBARAIARBAXRBAWsiBhB+IgVFDQRBACEDIAJBADYCOCACIAU2AjQgAiAGNgIwAkACQCAAKAIIIgQEQCAEIAZLBEAgAkEwakEAIARBAUEBENAFIAIoAjQhBSACKAI4IQMLIAMgBWohBiAEQQFHBH8gBEEBayIEBEAgBkEBIAT8CwALIAUgAyAEaiIDagUgBgtBAToAACACIANBAWo2AjggACgCCEUNASAAKAIEIgUQ0wQhQCAFLwEUIgRB//8BcSIIDQIgBEEQdAwFCyACQQA2AjgLQQBBAEHoyMcAEL8HAAsgBEH/B3EhAyAEQYCAAnEhBiAEQYD4AXEiB0GA+AFGBEAgBkEQdCIGQYCAgPwHciADRQ0DGiAGIANBDXRyQYCAgP4HcgwDCyAGQRB0IQYgB0UNASAHQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogBnIMAgtBsLnBABC3CAALIAZBgICA2ANyIANnQRBrIgZBF3RrIAMgBkH//wNxQQhqdEH///8DcXILIQMgAkH//wEgQCBAkiADviJAQwAAgD9eBH0gQBD0BUNU+C1AlEMAAIA/kpEFQwAAgD8LlEO9N4Y1EJ8JEPQFQxhyMT+VjSJA/ABBgIB+IEBDAAAAx2AbIEBDAP7/Rl4bQQAgQCBAWxs7ATwgAiAFENMEIkAgQJICfyAEQRB0IAhFDQAaIARB/wdxIQMgBEGAgAJxIQUgBEGA+AFxIgRBgPgBRgRAIAVBEHQiBEGAgID8B3IgA0UNARogBCADQQ10ckGAgID+B3IMAQsgBUEQdCIFIARBDXRBgICA/ABxIANBDXRyQYCAgMADanIgBA0AGiAFQYCAgNgDciADZ0EQayIEQRd0ayADIARB//8DcUEIanRB////A3FyC74iQEMAAIA/XgR9IEAQ9AVDVPgtQJRDAACAP5KRBUMAAIA/C5Q4AsABIAJBAjYCxAMgAkGUtsEANgLAAyACQgI3AswDIAIgAkHAAWqtQoCAgICABYQ3A1ggAiACQTxqrUKAgICAkAWENwNQIAIgAkHQAGo2AsgDIAJBsAJqIAJBwANqEOIEAkAgAigCsAIiBARAIAIoArQCIgNBBGsoAgAiBUF4cSIGQQRBCCAFQQNxIgUbIARqSQ0BIAVBACAGIARBJ2pLGw0HIAMQtAILIAIgAi8BPDsBPiACQQA2AkAgAkEANgJMIAJCgICAgMAANwJEQZzMyQAoAgAiA0UEQBDGBSEDCyADKAIAIAMoAgQoAgwRBAAhBCACQZilyAD9AAMA/QsDUCACIAStQp3BvfTR4NyZqX+FIhdCOIYgF0KA/gODQiiGhCAXQoCA/AeDQhiGIBdCgICA+A+DQgiGhIRCqefMK4RC0oGqm6v6gtenf34iFkKAwAODQiiGIBZCgIC4AoNCGIYgFkKAgICICoNCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhEKAgICAgICAgKJ/hCAXQtii0e/CqeW/LX6FIhlChoT0/4jMtPxGhSIWQtii0e/CqeW/LX4gFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhELSgaqbq/qC16d/fiIWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEhUKf5a2V8rTf0SaFIhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhIRC0oGqm6v6gtenf34iF0I4hiAXQoD+A4NCKIaEIBdCgID8B4NCGIYgF0KAgID4D4NCCIaEhCAXQgiIQoCAgPgPgyAXQhiIQoCA/AeDhCAXQiiIQoD+A4MgF0I4iISEhCAWQtii0e/CqeW/LX6FIhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhIRC3caSkbr/ttWRf34iF0I4hiAXQoD+A4NCKIaEIBdCgID8B4NCGIYgF0KAgID4D4NCCIaEhCAXQgiIQoCAgPgPgyAXQhiIQoCA/AeDhCAXQiiIQoD+A4MgF0I4iISEhCAWQu6qkaHQ67auon9+hSAWiTcDeCACIBlCue/Qy+mCgsedf4UiFkLYotHvwqnlvy1+IBZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhIRC0oGqm6v6gtenf34iFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhIVC5aaK0ufcuL/DAIUiFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhELSgaqbq/qC16d/fiIXQjiGIBdCgP4Dg0IohoQgF0KAgPwHg0IYhiAXQoCAgPgPg0IIhoSEIBdCCIhCgICA+A+DIBdCGIhCgID8B4OEIBdCKIhCgP4DgyAXQjiIhISEIBZC2KLR78Kp5b8tfoUiFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhELdxpKRuv+21ZF/fiIXQjiGIBdCgP4Dg0IohoQgF0KAgPwHg0IYhiAXQoCAgPgPg0IIhoSEIBdCCIhCgICA+A+DIBdCGIhCgID8B4OEIBdCKIhCgP4DgyAXQjiIhISEIBZC7qqRodDrtq6if36FIBaJNwNwIAIgGULlporS59y4v8MAhSIWQtii0e/CqeW/LX4gFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhELSgaqbq/qC16d/fiIWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEhUKGhPT/iMy0/EaFIhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhIRC0oGqm6v6gtenf34iF0I4hiAXQoD+A4NCKIaEIBdCgID8B4NCGIYgF0KAgID4D4NCCIaEhCAXQgiIQoCAgPgPgyAXQhiIQoCA/AeDhCAXQiiIQoD+A4MgF0I4iISEhCAWQtii0e/CqeW/LX6FIhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhIRC3caSkbr/ttWRf34iF0I4hiAXQoD+A4NCKIaEIBdCgID8B4NCGIYgF0KAgID4D4NCCIaEhCAXQgiIQoCAgPgPgyAXQhiIQoCA/AeDhCAXQiiIQoD+A4MgF0I4iISEhCAWQu6qkaHQ67auon9+hSAWiTcDaCACIBlCn+WtlfK039EmhSIWQtii0e/CqeW/LX4gFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhELSgaqbq/qC16d/fiIWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEhUK579DL6YKCx51/hSIWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEQtKBqpur+oLXp39+IhdCOIYgF0KA/gODQiiGhCAXQoCA/AeDQhiGIBdCgICA+A+DQgiGhIQgF0IIiEKAgID4D4MgF0IYiEKAgPwHg4QgF0IoiEKA/gODIBdCOIiEhIQgFkLYotHvwqnlvy1+hSIWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEQt3GkpG6/7bVkX9+IhdCOIYgF0KA/gODQiiGhCAXQoCA/AeDQhiGIBdCgICA+A+DQgiGhIQgF0IIiEKAgID4D4MgF0IYiEKAgPwHg4QgF0IoiEKA/gODIBdCOIiEhIQgFkLuqpGh0Ou2rqJ/foUgFok3A2AgAkHwAWqtIidCgICAgBCEISggAkHgAWqtQoCAgIAQhCErIAJBQGutQoCAgIAQhCEsIAJBgAFqrUKAgICAgAWEIS0gAkE+aq1CgICAgJAFhCEuIAJByANqIREgAigCLCEKIAIoAkAhBANAIAJDAACAPyACLgE+EOUGIkI4AoABIAAoAgghCwJAIAQgCk8NACAEIAprIQ0gBEEkbCIIIAAoAgRqIQUgBCAEIAsgBCALSxtrIQ5BACEDAkADQCADIARqIQdDAACAPyFAAn8CQCADIA5qBEAgBRDTBCFBIAVBFGovAQAiCUH//wFxRQRAIAlBEHQMAwsgCUH/B3EhBiAJQYCAAnEhDCAJQYD4AXEiCUGA+AFGBEAgDEEQdCIJQYCAgPwHciAGRQ0DGiAJIAZBDXRyQYCAgP4HcgwDCyAMQRB0IQwgCUUNASAJQQ10QYCAgPwAcSAGQQ10ckGAgIDAA2ogDHIMAgsgByALQejIxwAQvwcACyAMQYCAgNgDciAGZ0EQayIJQRd0ayAGIAlB//8DcUEIanRB////A3FyC74iQ0MAAIA/XgRAIEMQ9AVDVPgtQJRDAACAP5KRIUALIEEgQZIgQJQgQl4NASACIAdBAWo2AkAgBUEkaiEFIA0gA0EBaiIDag0ACyAKIQcLIAQgB08NAAJAIAcgBGsiCkH/////AU0EQCAKQQN0IgNB/f///wdJDQELQbSHxwAQtwgAC0EAIQYCQCADRQRAQQQhC0EAIQoMAQsgAxB+IgtFDQULIAQgB2shDSALIQMDQEMAAIA/IUACfwJAIAQgBmoiCSAAKAIIIgVJBEAgACgCBCAIaiIFENMEIUEgBUEUai8BACIHQf//AXFFBEAgB0EQdAwDCyAHQf8HcSEFIAdBgIACcSEMIAdBgPgBcSIHQYD4AUYEQCAMQRB0IgdBgICA/AdyIAVFDQMaIAcgBUENdHJBgICA/gdyDAMLIAxBEHQhDCAHRQ0BIAdBDXRBgICA/ABxIAVBDXRyQYCAgMADaiAMcgwCCyAJIAVB6MjHABC/BwALIAxBgICA2ANyIAVnQRBrIgdBF3RrIAUgB0H//wNxQQhqdEH///8DcXILviJCQwAAgD9eBEAgQhD0BUNU+C1AlEMAAIA/kpEhQAsgA0EEaiAJNgIAIAMgQSBBkiBAjJQ4AgAgCEEkaiEIIANBCGohAyANIAZBAWoiBmoNAAsgAiAGNgKMASACIAs2AogBIAIgCjYChAEgAkHEAGogAkGEAWoQpwIgACgCCCELCyACIAIoAkwiBzYC4AEgAiALNgLwASACQQY2ArQCIAJB2LnBADYCsAIgAkIGNwK8AiACICg3A+gDIAIgKzcD4AMgAiAqNwPYAyACICw3A9ADIAIgLTcDyAMgAiAuNwPAAyACIAJBwANqNgK4AiACQaACaiACQbACahDiBCACKAKgAiIEBEAgAigCpAIiA0EEaygCACIFQXhxIgZBBEEIIAVBA3EiBRsgBGpJDQcgBUEAIAYgBEEnaksbDQggAxC0AgsgAigCXCIEBEAgAigCUCIGQQhqIQMgBikDAEJ/hUKAgYKEiJCgwIB/gyEXIAYhBQNAIBdQBEADQCAFQYAEayEFIAMpAwAgA0EIaiEDQoCBgoSIkKDAgH+DIhZCgIGChIiQoMCAf1ENAAsgFkKAgYKEiJCgwIB/hSEXCyAFIBd6p0EDdEHAB3FrIghBBGsoAgAiC0EJTwRAIAhBIGsoAgAiCEEEaygCACIJQXhxIgogC0ECdCILQQRBCCAJQQNxIgkbakkNCSAJQQAgCiALQSdqSxsNCiAIELQCCyAXQgF9IBeDIRcgBEEBayIEDQALAkAgAigCVCIERQ0AIARBCWoiA0UNACAGQf8BIAP8CwALIAJBADYCXCACIAQgBEEBakEDdkEHbCAEQQhJGzYCWAsCQCAHRQ0AIAIoAkgiBSAHQQN0aiEKIAVBCGohBgJAA0AgBSgCBCILIAAoAggiBE8NASAGIQcgAiAAKAIEIAtBJGxqIgT9XQIIIAQqAhAiQP0gAiBA/SADIAL9CQKAAf3nAf1oIjP9HwL8BDcDoAEgAiAz/R8B/AQ3A5gBIAIgM/0fAPwENwOQASACQcADaiACQdAAaiACQZABahCWAgJAIAIoAuADIgYEQCACQbgCaiARQQhq/QADAP0LAwAgAiARKQMANwOwAiAGKAIAIgMgBigCBCIFIAIoAsADIglxIgRqKQAAQoCBgoSIkKDAgH+DIhdQBEBBCCEIA0AgBCAIaiEEIAhBCGohCCADIAQgBXEiBGopAABCgIGChIiQoMCAf4MiF1ANAAsLIAMgF3qnQQN2IARqIAVxIgRqLAAAIghBAE4EQCADIAMpAwBCgIGChIiQoMCAf4N6p0EDdiIEai0AACEICyADIARqIAlBGXYiCToAACAGIAYoAgggCEEBcWs2AgggAyAEQQhrIAVxakEIaiAJOgAAIAMgBEEGdGsiBUFAaiIEQRBqIAJBwAJqKQMANwMAIAQgAv0AA7AC/QsDACAFQQRrQQA2AgAgBUEoa0EANgIAIAYgBigCDEEBajYCDAwBCyACKALAAyEFCyAFQSRrIQMCfyAFQQRrIgYoAgAiCUEJSQRAIAkhBEEIIQkgAwwBCyADKAIAIQQgAyEGIAVBIGsoAgALIQggBCAJRgR/IAVBKGsQ/QYgBUEgaygCACEIIAMiBigCAAUgBAtBAnQgCGogCzYCACAGIAYoAgBBAWo2AgAgByAHIApHQQN0aiEGIAciBSAKRw0ACwwBCyALIARB6MjHABC/BwALIAJBADYCsAEgAkKAgICAwAA3AqgBA0AgAigCNCETIAIoAjghDAJAAkACQAJAAkADQCACQbQBaiACQcQAahCpAyACKAK0AUEBRw0CIAIoArwBIgogDE8NASAKIBNqIg8tAABFDQALIAAoAggiCCAKSwRAAkACQCAAKAIEIhIgCkEkbGoiA/1dAgggAyoCECJA/SACIED9IAMgAv0JAoAB/ecB/WgiM/0fAvwEIiRCAX0iGyAkQgF8Ih5VDQACQCAz/R8B/AQiJUIBfSIZICVCAXwiHFcEQCAz/R8A/AQiJkIBfCEdICZCAX0hHyACKQNgIhZCOIYgFkKA/gODQiiGhCAWQoCA/AeDQhiGIBZCgICA+A+DQgiGhIQgFkIIiEKAgID4D4MgFkIYiEKAgPwHg4QgFkIoiEKA/gODIBZCOIiEhIQhLyAWQn+FITBBfyELQwAAgP8hQEL///////////8AISAgAigCUCEOIAIoAlQhCSACKQNoITEgAigCXCEQQv///////////wAhIUL///////////8AISIMAQsDQCAbIB5ZDQIgGyAbIB5TrXwiGyAeVw0ACwwBCwNAAkAgHSAfUwRAIBkhFwNAIBcgHFkNAiAcIBcgFyAcU618IhdZDQALDAELAkAgEARAIBkhIwwBCyAZIRYDQCAfIRcDQCAXIB1TIgQEQCAXIAStfCIXIB1XDQELCyAWIBxZDQIgHCAWIBYgHFOtfCIWWQ0ACwwBCwNAICMiFyAXIBxTrXwhIyAfIRYCQAJAA0AgCSAWIDGFIhhC2KLR78Kp5b8tfiAYQjiGIBhCgP4Dg0IohoQgGEKAgPwHg0IYhiAYQoCAgPgPg0IIhoSEIBhCCIhCgICA+A+DIBhCGIhCgID8B4OEIBhCKIhCgP4DgyAYQjiIhISEQtKBqpur+oLXp39+IhhCOIYgGEKA/gODQiiGhCAYQoCA/AeDQhiGIBhCgICA+A+DQgiGhIQgGEIIiEKAgID4D4MgGEIYiEKAgPwHg4QgGEIoiEKA/gODIBhCOIiEhISFIBeFIhhC2KLR78Kp5b8tfiAYQjiGIBhCgP4Dg0IohoQgGEKAgPwHg0IYhiAYQoCAgPgPg0IIhoSEIBhCCIhCgICA+A+DIBhCGIhCgID8B4OEIBhCKIhCgP4DgyAYQjiIhISEQtKBqpur+oLXp39+IhhCOIYgGEKA/gODQiiGhCAYQoCA/AeDQhiGIBhCgICA+A+DQgiGhIQgGEIIiEKAgID4D4MgGEIYiEKAgPwHg4QgGEIoiEKA/gODIBhCOIiEhISFIBuFIhhCOIYgGEKA/gODQiiGhCAYQoCA/AeDQhiGIBhCgICA+A+DQgiGhIQgGEIIiEKAgID4D4MgGEIYiEKAgPwHg4QgGEIoiEKA/gODIBhCOIiEhIRC0oGqm6v6gtenf34iGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhCAYQtii0e/CqeW/LX6FIhhCOIYgGEKA/gODQiiGhCAYQoCA/AeDQhiGIBhCgICA+A+DQgiGhIQgGEIIiEKAgID4D4MgGEIYiEKAgPwHg4QgGEIoiEKA/gODIBhCOIiEhIQgMH4iGkI4hiAaQoD+A4NCKIaEIBpCgID8B4NCGIYgGkKAgID4D4NCCIaEhCAaQgiIQoCAgPgPgyAaQhiIQoCA/AeDhCAaQiiIQoD+A4MgGkI4iISEhCAYIC9+hSAYiSIYp3EhBSAYQhmIQv8Ag0KBgoSIkKDAgAF+ITIgFiAWIB1TrXwhGEEAIQYCQAJAA0ACQCAFIA5qKQAAIikgMoUiGkJ/hSAaQoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIhpQRQRAA0ACQCAWIA4gGnqnQQN2IAVqIAlxQQZ0ayIEQUBqKQMAUg0AIBcgBEE4aykDAFINACAbIARBMGspAwBRDQMLIBpCAX0gGoMiGlBFDQALCyApIClCAYaDQoCBgoSIkKDAgH+DUEUNAiAFIAZBCGoiBmogCXEhBQwBCwsCfyAEQQRrKAIAIgZBCU8EQCAEQSRrKAIAIQYgBEEgaygCAAwBCyAEQSRrCyEFIAZFDQAgBkECdCEGA0AgBSgCACIEIAxPDQICQCAEIApGDQAgBCATai0AAEEBcUUNACAEIAhPDQUgAkHAA2oiDSADEMIDIAL9AATAAyE0IA0gAykCABDdAiAC/QAEwAMhMyANIBIgBEEkbGoiBxDCAyAC/QAEwAMhNSANIAcpAgAQ3QIgNCAz/Q0ICQoLCAkKCwgJCgsAAQIDIDP9HwAiQSAz/R8CIkkgSZIiQ5QiTCAz/R8DIkUgM/0fASJCIEKSIkeUIk2S/RMgQiBDlCJPIEUgQSBBkiJElCJQk/0gAUMAAIA/IEEgRJQiUSBCIEeUIlKSk/0gAv3mASI3IDUgM/0NCAkKCwgJCgsICQoLAAECAyAC/QAEwAMiM/0fACJCIDP9HwIiSCBIkiJElCJTIDP9HwMiSiAz/R8BIkYgRpIiS5QiVJL9EyBGIESUIlUgSiBCIEKSIk6UIlaT/SABQwAAgD8gQiBOlCJOIEYgS5QiRpKT/SAC/eYBIjP9DQABAgMQERITAAECAwABAgMiNiA3IDP9DQgJCgsAAQIDAAECAwABAgMgMyAz/Q0ICQoLAAECAwABAgMAAQID/Q0AAQIDEBESEwABAgMAAQIDIjj95gEgNCAz/Q0EBQYHBAUGBwQFBgcAAQIDIEEgR5QiQSBFIEOUIkWT/RNDAACAPyBRIEkgQ5QiQ5KT/SABIE8gUJL9IAL95gEiOSA1IDP9DQQFBgcEBQYHBAUGBwABAgMgQiBLlCJCIEogRJQiSZP9E0MAAIA/IE4gSCBElCJEkpP9IAEgVSBWkv0gAv3mASI6/Q0AAQIDEBESEwABAgMAAQIDIjsgOSAz/Q0ICQoLAAECAwABAgMAAQIDIDogM/0NCAkKCwABAgMAAQIDAAECA/0NAAECAxAREhMAAQIDAAECAyI8/eYBIDQgM/0NAAECAwABAgMAAQIDAAECA0MAAIA/IFIgQ5KT/RMgQSBFkv0gASBMIE2T/SAC/eYBIj8gNSAz/Q0AAQIDAAECAwABAgMAAQIDQwAAgD8gRiBEkpP9EyBCIEmS/SABIFMgVJP9IAL95gEiNf0NAAECAxAREhMAAQIDAAECAyI9ID8gM/0NCAkKCwABAgMAAQIDAAECAyA1IDP9DQgJCgsAAQIDAAECAwABAgP9DQABAgMQERITAAECAwABAgMiPv3mAf3kAf3kASI0/R8AQwAAAD8gNP0fAUMAAAA/lBDoBiFBIDcgM/0NBAUGBxQVFhcAAQIDAAECAyI3IDj95gEgOSA6/Q0EBQYHFBUWFwABAgMAAQIDIjkgPP3mASA/IDX9DQQFBgcUFRYXAAECAwABAgMiOiA+/eYB/eQB/eQBIjP9HwBDAAAAPyAz/R8BQwAAAD+UEOgGIUMgNiA3/eYBIDsgOf3mASA9IDr95gH95AH95AEiNf0fAEMAAAA/IDcgN/3mASA5IDn95gEgOiA6/eYB/eQB/eQBIjcgNf0NAAECAwQFBgcAAQIDFBUWFyA2IDb95gEgOyA7/eYBID0gPf3mAf3kAf3kASI7/Q0UFRYXBAUGBwABAgMMDQ4PIDggOP3mASA8IDz95gEgPiA+/eYB/eQB/eQBIjb9DQABAgMEBQYHFBUWFwwNDg/9DAAAAD8AAAA/AAAAPwAAAD/95gEiOP0fAxDoBiFCIDb9HwBDAAAAPyA4/R8CEOgGIURDAAAAACFFIEEgQyBClCBBIDf9HwBDAAAAPyA4/R8BEOgGIkmUkyJKlCA7/R8AQwAAAD8gOP0fABDoBiJGIEkgRJQgQyBDlJMiS5QgQiBEIEKUIkwgQSBDlCJNk5STkiJHiyBGiyBJixCfCSBEixCfCSJIIEggSJSUQ2BCog0QnwlDX3CJMJRdRQRAIEcgNCA1IDP95gEgNyA0/eYB/eUB/eYBIDsgNyA2/eYBIDMgM/3mAf3lAf3mASA1IDYgNf3mASA0IDP95gH95QH95gH95QH95AEiM/0fACAz/R8BlJGVEPQFQwAAAD+UIAdBEGogB/1dAgj9VgIAAiADQRBqIAP9XQII/VYCAAL95QEiM/0fAiJFIEEgQpQgQyBGlJNDAACAPyBHlSJDlCJHIEeSIDP9HwEiR5SUIEUgSiBDlCJIIEiSIDP9HwAiSJSUIEcgTSBMkyBDlCJKIEqSIEiUlCBFIEUgRiBJlCBCIEKUkyBDlJSUIEggSCBLIEOUlJQgRyBHIEYgRJQgQSBBlJMgQ5SUlJKSkpKSQwAAAD6UkiFFCyACQcADaiINIAMQywMgAv0ABMADIA0gBxDLAyAC/QAEwAP95QEiMyAz/eYBIjMgM/0NCAkKCwABAgMAAQIDAAECAyAzIDMgM/0NBAUGBwABAgMAAQIDAAECA/3kAf3kAf0fAIwQpgQgRYwQpgSUIkFDAAAAACBBIEFbGyJBIEBeRQ0AIAQhCyBBIUAgFiEiIBchISAbISALIAVBBGohBSAGQQRrIgYNAAsLIBYgHVkNAyAYIhYgHVUNAwwBCwsgBCAMQfi6wQAQvwcACyAEIAhB6MjHABC/BwALIBcgHFkNASAcICNZDQALCyAbIB5TIgQEQCAbIAStfCIbIB5XDQELCyALQX9HDQELIAIqArgBIUAgAigCsAEiBCACKAKoAUYEQCACQagBakGYusEAEKsGCyACKAKsASAEQQN0aiIDIAo2AgQgAyBAOAIAIAIgBEEBajYCsAEMBwsgAiALNgLEAyACIAo2AsADIAAgAkHAA2pBAkMAAAAAEEQhDiAPQQA6AAAgAigCXEUNAyACKAJUIgUgAikDaCAmhSIWQtii0e/CqeW/LX4gFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhELSgaqbq/qC16d/fiIWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEhSAlhSIWQtii0e/CqeW/LX4gFkI4hiAWQoD+A4NCKIaEIBZCgID8B4NCGIYgFkKAgID4D4NCCIaEhCAWQgiIQoCAgPgPgyAWQhiIQoCA/AeDhCAWQiiIQoD+A4MgFkI4iISEhELSgaqbq/qC16d/fiIWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEhSAkhSIWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEQtKBqpur+oLXp39+IhdCOIYgF0KA/gODQiiGhCAXQoCA/AeDQhiGIBdCgICA+A+DQgiGhIQgF0IIiEKAgID4D4MgF0IYiEKAgPwHg4QgF0IoiEKA/gODIBdCOIiEhIQgFkLYotHvwqnlvy1+hSIWQjiGIBZCgP4Dg0IohoQgFkKAgPwHg0IYhiAWQoCAgPgPg0IIhoSEIBZCCIhCgICA+A+DIBZCGIhCgID8B4OEIBZCKIhCgP4DgyAWQjiIhISEIAIpA2AiF0J/hX4iGUI4hiAZQoD+A4NCKIaEIBlCgID8B4NCGIYgGUKAgID4D4NCCIaEhCAZQgiIQoCAgPgPgyAZQhiIQoCA/AeDhCAZQiiIQoD+A4MgGUI4iISEhCAWIBdCOIYgF0KA/gODQiiGhCAXQoCA/AeDQhiGIBdCgICA+A+DQgiGhIQgF0IIiEKAgID4D4MgF0IYiEKAgPwHg4QgF0IoiEKA/gODIBdCOIiEhIR+hSAWiSIWp3EhAyAWQhmIQv8Ag0KBgoSIkKDAgAF+IRlBACEEIAIoAlAhBgNAAkAgAyAGaikAACIWIBmFIhdCf4UgF0KBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIXUEUEQANAAkAgJiAGIBd6p0EDdiADaiAFcUEGdGsiDUFAaikDAFINACAlIA1BOGspAwBSDQAgJCANQTBrKQMAUQ0DCyAXQgF9IBeDIhdQRQ0ACwsgFiAWQgGGg0KAgYKEiJCgwIB/g1BFDQUgAyAEQQhqIgRqIAVxIQMMAQsLIA1BBGsiEigCACIDIQ8gA0EJTwRAIA1BJGsoAgAhDwsgD0UEQEEAIQgMBgsgDUEgayEQIA1BJGshCUEAIQVBACEIQQAhAwNAIBIoAgAiBiEEIAkhByAGQQlJIhRFBEAgBygCACEEIBAoAgAhBwsCQAJAIAMgBEkEQCAKIAUgB2ooAgBGBEAgCEEBaiEIDAMLIAhFBEBBACEIDAMLIAkhBCAURQRAIAQoAgAhBiAQKAIAIQQLIAMgCGsiByAGTw0BIAMgBkkEQCAEIAUgCEECdGtqIgYoAgAhByAGIAQgBWoiBCgCADYCACAEIAc2AgAMAwsgAyAGQZyHwQAQvwcACyADIARBjIfBABC/BwALIAcgBkGch8EAEL8HAAsgBUEEaiEFIANBAWoiAyAPRw0ACwwECyAKIAhB6MjHABC/BwALIAogDEGIusEAEL8HAAsgAiACLwE+QQFqOwE+IAJBxABqIAJBqAFqEKcCIAIoAkAiBCACKAIsIgpJDQQgAigCTEEBSw0EIAIgACgCCEEBazYC3AEgAkEBNgLEAyACQdS3wQA2AsADIAJCATcCzAMgAiACQdwBaq1CgICAgBCENwOgAiACIAJBoAJqNgLIAyACQbACaiACQcADahDmBiACKAKwAiIEBEAgAigCtAIgBEEBENYHCwJAAkACQCACKALcASIEIAAoAggiA0kEQCACQQE2AsQDIAJBlLvBADYCwAMgAkIBNwLMAyACIAAoAgQgBEEkbGo2AvABIAIgJ0KAgICAoAWENwOgAiACIAJBoAJqNgLIAyACQbACaiACQcADahDmBiACKAKwAiIEBEAgAigCtAIgBEEBENYHCyACQSBqIAAoAghBAXRBAWsQmwhBACEFIAJBADYC6AEgAiACKQMgNwLgASACQeABaiIEIAIoAixBARD3BiAEIAAoAghBABD3BiACKALcASIDIAIoAugBIgpPDQIgAigC5AEiCyADakEBOgAAIAJBwANqIAAgAigC3AEgBCABEKQCQQAhBgJAIApBBE8EQP0MAAAAAAAAAAAAAAAAAAAAACEzIApBfHEiBiEFIAshAwNAIDMgA/1cAAD9iQH9qQH9rgEhMyADQQRqIQMgBUEEayIFDQALIDMgMyAz/Q0ICQoLDA0ODwABAgMAAQID/a4BIjMgMyAz/Q0EBQYHAAECAwABAgMAAQID/a4B/RsAIQUgBiAKRg0BCyAGIAtqIQMgCiAGayEGA0AgBSADLQAAaiEFIANBAWohAyAGQQFrIgYNAAsLIAIoAugDIQwgAigCzAMhDSACIAU2AuwBIAIgACgCCDYC8AEgAkECNgLEAyACQci7wQA2AsADIAJCAjcCzAMgAiAoNwO4AiACIAJB7AFqrUKAgICAEIQiFjcDsAIgAiACQbACajYCyAMgAkGgAmogAkHAA2oQ5gYgAigCoAIiBARAIAIoAqQCIARBARDWBwsgAkEBNgLEAyACQey7wQA2AsADIAJCATcCzAMgAiAnQoCAgICABYQ3A6ACIAIgAigC7AGzIAIoAiyzlTgC8AEgAiACQaACajYCyAMgAkGwAmogAkHAA2oQ5gYgAigCsAIiBARAIAIoArQCIARBARDWBwsgAkEANgL4ASACQoCAgIDAADcC8AEgAigC3AEhBCACQfABakH0u8EAEKwGIAIoAvQBIAQ2AgAgAkEBNgL4ASAC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IANCgICAgMAANwKwASADQQA2ArwBIANBADYC3AEgB0UEQEL///////////8AIRtCgICAgICAgICAfyEdQoCAgICAgICAgH8hHEKAgICAgICAgIB/IR5C////////////ACEfQv///////////wAhIAwEC0KAgICAgICAgIB/IR5C////////////ACEgQQAhAkL///////////8AIR9C////////////ACEbQoCAgICAgICAgH8hHEKAgICAgICAgIB/IR0DQAJAAkAgAygCPCIVIAJBBXQiCWoiBSgCACIGIAAoAggiBEkEQCAAKAIEIg4gBkEkbGoiBv1dAgggBioCECIB/SACIAH9IAMgA/0JAoQBIiz95wH9aCIr/R8C/AQhGCAr/R8B/AQhGSAr/R8A/AQhGiAHIAJBAWoiCE0EQCACIQoMAwsgB0EBayEKIBFBAXEEQCAHIQgMAwsgCSAVakEgaiEGA0AgBigCACIJIARPDQIgDiAJQSRsaiIJ/V0CCCAJKgIQIgH9IAIgAf0gAyAs/ecB/WgiK/0fAPwEIBpSICv9HwH8BCAZUnJFICv9HwL8BCAYUXFFBEAgCEEBayEKDAQLIAZBIGohBiAHIAhBAWoiCEcNAAsgByEIDAILIAYgBEHoyMcAEL8HAAsgCSAEQejIxwAQvwcACyAdIBggGCAdUxshHSAcIBkgGSAcUxshHCAeIBogGiAeUxshHiAbIBggGCAbVRshGyAfIBkgGSAfVRshHyAgIBogGiAgVRshICADIAMoAtwBQQFqNgLcASADKQNoIhggCCACayINrYUiGUI4hiAZQoD+A4NCKIaEIBlCgID8B4NCGIYgGUKAgID4D4NCCIaEhCAYQgiIQoCAgPgPgyAYQhiIQoCA/AeDhCAYQiiIQoD+A4MgGEI4iISEhELSgaqbq/qC16d/fiIYQjiGIBhCgP4Dg0IohoQgGEKAgPwHg0IYhiAYQoCAgPgPg0IIhoSEIBhCCIhCgICA+A+DIBhCGIhCgID8B4OEIBhCKIhCgP4DgyAYQjiIhISEIBlC2KLR78Kp5b8tfoUiGEI4hiAYQoD+A4NCKIaEIBhCgID8B4NCGIYgGEKAgID4D4NCCIaEhCAYQgiIQoCAgPgPgyAYQhiIQoCA/AeDhCAYQiiIQoD+A4MgGEI4iISEhCADKQNgIhlCf4V+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CwMAIARB+Bhq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAEQegYav0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgBP0MAAAAAAAAAAAAAAAAAAAAAP0LA9gYIAJBBE8NAiAEQcgYaiABIARB2BhqIA5BASADIAhqQf8BcSAbIAJBBHRqIgMvAQQgAy8BBhDyASAELQDJGCETIAQtAMgYIghBHUYNAyAEIAQpAcoYNwO4DCAEIARB0BhqKQEANwG+DAwbC0EDIQwgAkEDSw0DDAULIAsgA0H0tcYAEL8HAAsgAkEEQYS2xgAQvwcACyABIBM6AJYFIAEoAqQEIgMgC0sEQCABKAKgBCAFaiATOgAUIARB2BhqIgMgAygCACIIIAMoAjAiB2siDCADKAIQIgogAygCICITayIRazYCMCADIAcgCGoiCCAKIBNqIgdrNgIgIAMgDCARajYCECADIAcgCGo2AgAgAyADKAIkIgggAygCFCIHaiIMIAMoAjQiCiADKAIEIhNqIhFqNgIEIAMgEyAKayIKIAcgCGsiCGs2AjQgAyAIIApqNgIUIAMgESAMazYCJCADIAMoAigiByADKAIYIgxqIgogAygCOCITIAMoAggiEWoiD2oiCDYCCCADIBEgE2siEyAMIAdrIgdrNgI4IAMgDyAKazYCKCADIAcgE2o2AhggAyADKAIsIgwgAygCHCIKaiITIAMoAjwiESADKAIMIg9qIhpqIgc2AgwgAyAKIAxrIgogDyARayIRaiIMNgIcIAMgESAKazYCPCADIBogE2siCjYCLCADIAcgAygCACITakEDaiIRIAggAygCBCIPaiIaa0EDdTYCCCADIBMgB2tBA2oiByAPIAhrIghrQQN1NgIMIAMgByAIakEDdTYCBCADIBEgGmpBA3U2AgAgAyADKAIQIgggDGtBA2oiByADKAIUIhMgAygCGCIRayIPa0EDdTYCHCADIAggDGpBA2oiCCARIBNqIgxrQQN1NgIYIAMgByAPakEDdTYCFCADIAggDGpBA3U2AhAgAyADKAIgIgggCmtBA2oiByADKAIkIgwgAygCKCITayIRa0EDdTYCLCADIAggCmpBA2oiCCAMIBNqIgxrQQN1NgIoIAMgByARakEDdTYCJCADIAggDGpBA3U2AiAgAyADKAIwIgggAygCPCIHa0EDaiIMIAMo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AU0bIghFDQMgA0EYaiAHIAxqIAj8CgAADAMLIAcgCEGk+MQAEKMKAAsgByAIQcT4xAAQvwcACyAHIAhB1PjEABCjCgALIAMgAy0AGCIIOgCUAiADIAg6AMABIAMgCDoAbCADIAMtABkiCDoAlQIgAyAIOgDBASADIAg6AG0gAyADLQAaIgg6AJYCIAMgCDoAwgEgAyAIOgBuIAMgAy0AGyIIOgCXAiADIAg6AMMBIAMgCDoAbyAKAn8gC0UEQCADQYEBOgDXAiADQYEBOgDCAiADQYEBOgCtAiADQYEBOgCYAiADQYEBOgCDAiADQYEBOgDuASADQYEBOgDZASADQYEBOgDEASADQYEBOgCvASADQYEBOgCaASADQYEBOgCFASADQYEBOgBwIANBgQE6AFsgA0GBAToARiADQYEBOgAxIANBgQE6ABxBgX9B/wAgFhsMAQsCQCARBEAgEUEBayIIRQ0BIAMgAi0AAToAHCAIQQFGDQEgAyACLQACOgAxIAhBAkYNASADIAItAAM6AEYgCEEDRg0BIAMgAi0ABDoAWyAIQQRGDQEgAyACLQAFOgBwIAhBBUYNASADIAItAAY6AIUBIAhBBkYNASADIAItAAc6AJoBIAhBB0YNASADIAItAAg6AK8BIAhBCEYNASADIAItAAk6AMQBIAhBCUYNASADIAItAAo6ANkBIAhBCkYNASADIAItAAs6AO4BIAhBC0YNASADIAItAAw6AIMCIAhBDEYNASADIAItAA06AJgCIAhBDUYNASADIAItAA46AK0CIAhBDkYNASADIAItAA86AMICIAhBD0YNASADIAItABA6ANcCDAELQQFBAEG0+MQAEKMKAAtBgX9B/wAgFhsgFkUNABogAi0AAAs6AAAgCkEBaiADQQhqQeQC/AoAACADQfACaiQAIAZBAWsOBAQFBgcICyALIAhBvLbGABC/BwALIBNBCUHMtsYAEL8HAAsgCyAIQdy2xgAQvwcACyALIAhBjLfGABC/BwALQbB9IQcDQCAEQcgMaiAHaiIDQeYCaiAELQDJDDoAACADQecCaiAELQDKDDoAACADQegCaiAELQDLDDoAACADQekCaiAELQDMDDoAACADQeoCaiAELQDNDDoAACADQesCaiAELQDODDoAACADQewCaiAELQDPDDoAACADQe0CaiAELQDQ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GCICOgCYGSAEIAQoANoYNgCZGSAEIAQvAN4YOwCdGSAEIAQtAOAYOgCfGSAEIAI6AKEZIAQgBC0A2hg6AKIZIAQgAzoAoxkgBCAELQDcGDoApBkgBCAELQDdGDoApRkgBCAELQDeGDoAphkgBCAELQDfGDoApxkgBCAELQDgGDoAqBkgBCAELQDJDDoA0gwgBCAELQDKDDoA0wwgBCAELQDLDDoA1AwgBCAELQDMDDoA1QwgBCAELQDNDDoA1gwgBCAELQDODDoA1wwgBCAELQDPDDoA2AwgBCAELQDQDDoA2QwgBCAELQDJDDoA2wwgBCAELQDKDDoA3AwgBCAELQDLDDoA3QwgBCAELQDMDDoA3gwgBCAELQDNDDoA3wwgBCAELQDODDoA4AwgBCAELQDPDDoA4QwgBCAELQDQDDoA4gwgBCAELQDJDDoA5AwgBCAELQDKDDoA5QwgBCAELQDLDDoA5gwgBCAELQDMDDoA5wwgBCAELQDNDDoA6AwgBCAELQDODDoA6QwgBCAELQDPDDoA6gwgBCAELQDQDDoA6wwgBCAELQDJDDoA7QwgBCAELQDKDDoA7gwgBCAELQDLDDoA7wwgBCAELQDMDDoA8AwgBCAELQDNDDoA8QwgBCAELQDODDoA8gwgBCAELQDPDDoA8wwgBCAELQDQDDoA9AwgBCAELQDJDDoA9gwgBCAELQDKDDoA9wwgBCAELQDLDDoA+AwgBCAELQDMDDoA+QwgBCAELQDNDDoA+gwgBCAELQDODDoA+wwgBCAELQDPDDoA/AwgBCAELQDQDDoA/QwgBCAELQDJDDoA/wwgBCAELQDKDDoAgA0gBCAELQDLDDoAgQ0gBCAELQDMDDoAgg0gBCAELQDNDDoAgw0gBCAELQDODDoAhA0gBCAELQDPDDoAhQ0gBCAELQDQDDoAhg0gBCAELQDJDDoAiA0gBCAELQDKDDoAiQ0gBCAELQDLDDoAig0gBCAELQDMDDoAiw0gBCAELQDNDDoAjA0gBCAELQDODDoAjQ0gBCAELQDPDDoAjg0gBCAELQDQDDoAjw0gBCAELQDJDDoAkQ0gBCAELQDKDDoAkg0gBCAELQDLDDoAkw0gBCAELQDMDDoAlA0gBCAELQDNDDoAlQ0gBCAELQDODDoAlg0gBCAELQDPDDoAlw0gBCAELQDQDDoAmA0M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EL8HAAsgASgCqAMgBWogA2ogAyAUaiIIKAIANgIAIAxBAkYNBSARIAEoAqwDIgZPDQEgASgCqAMgBWogA2pBBGogCEEEaigCADYCACAMQQFGDQYgASgCrAMiBiAXSwRAIAEoAqgDIAVqIANqQQhqIAhBCGooAgA2AgAgA0EQaiEDIAJBBGohAiALIA9JIAtBAWohCw0BDCALCyAKQQJ0IAJqQQFrDAELIApBAnQgAmpBAmsLIAZByNjBABC/BwALDDELDDALIAJBAmsMAgsgAkEBawwBCyACQQNrCyAJQbjYwQAQvwcACyADQQhqDAILIANBC2oMAQsgA0EOagsgBUGI2MEAEL8HAAsgA0EHagwCCyADQQpqDAELIANBDWoLIAVB+NfBABC/BwALIANBBmoMAgsgA0EJagwBCyADQQxqCyAFQejXwQAQvwcACyAEIAEoAuACIA8gChCgCSICEIMLIgM2AnAgBCAINgJYAkACQCADIAhGBEAgAiAVIAgQqQogAkGECE8EQCACEM0HCyAEIAEoAugCIA8gChCgCSICEIMLIgM2AnAgBCAINgJYIAMgCEcNIiACIAwgCBCpCiACQYQITwRAIAIQzQcLIAEoApQDIgMgCkkEQCAKIAMiAmsiBiABKAKMAyACa0sEQCAgIAIgBkEEQQQQ0AUgASgClAMhAgsgASgCkAMiCSACQQJ0IgtqIQUgBkECTwRAIAogA0F/c2pBAnQiCgRAIAVBACAK/AsACyASQQR0IANBAnRrIAlqIAtqQQRrIQUgAiAGakEBayECCyAFQQA2AgAgASACQQFqNgKUAwsgEEUNDCAVQQxqIQogFEEEdEEMciEOQQAhAkEBIQZBACEDAkACQAJAA0AgAkEDaiIFIAhPDQUgAiAPakEDaiIFIAEoAogDIglPDQYgASgChAMgDmogA2ogAyAKaigCADYCACACIBRqIgkgASgClAMiBU8NAyABKAKQAyAPaiADaiADIAxqIgsoAgA2AgAgASgClAMiBSAJQQFqSwRAIAEoApADIA9qIANqQQRqIAtBBGooAgA2AgAgASgClAMiBSAJQQJqTQ0CIAEoApADIA9qIANqQQhqIAtBCGooAgA2AgAgASgClAMiBSAJQQNqTQ0DIAEoApADIA9qIANqQQxqIAtBDGooAgA2AgAgAkEEaiECIANBEGoh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BGogAygCABB7QQQMAgsgAiAIKAIANgIAIAIgAEECdCIDaiADIAhqKAIANgIAQQEMAQsgCCACIAdBAnRqIgMgAUEEaiIEKAIAEHsgCEEQaiADQRBqIAQoAgAQeyADQQggAiABEMIBIAggAEECdCIFaiIGIANBIGoiCiAEKAIAEHsgBkEQaiADQTBqIAQoAgAQeyAKQQggAiAFaiABEMIBQQgLIgNLBEAgACADayENIANBAnQhCgNAIAIgCmoiBCAIIApqKAIANgIAIAIgBCABENUBIApBBGohCiANQQFrIg0NAAsLIAcgAGsgA0sEQCACIABBAnQiBGohBSAIIANBAnQgBGoiBGohDSACIARqIQogACADaiAHayEMA0AgCiANKAIANgIAIAUgCiABENUBIA1BBGohDSAKQQRqIQogDEEBaiIMDQALCyACIAcgCCABEMIBCyAYQSBqJAAPCyAHIApBtNTHABC/BwALIAwgDkG01McAEL8HAAuWbwMVfwd+AnsjAEGw1QBrIgMkACAD/QwAAAAAAAAAAAAAAAAAAAAA/QsD8EggAq0hGwJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkBB8KPHACkDACIcQv8Bg0IEUgRAQhAhGQNAIAIgGiAbIBogG1QbpyIEayIFQoDAACAZIBlCgMAAWhunIgYgBSAGSRsiBQRAIANBGGogASAEaiAF/AoAAAsgAiAERg0CQRBCECAYIBhCEFobpyIGayIEIAUgBCAFSSIHGyIEBEAgA0HwyABqIAZqIANBGGogBPwKAAALIAcNAyAaIAWtIh18IRogBSAKaiEKIBggBK18IRggGSAdfSIZQgBSDQALDAELQhAhGQNAIAIgGiAbIBogG1QbpyIEayIFQoDAACAZIBlCgMAAWhunIgYgBSAGSRsiBQRAIANBGGogASAEaiAF/AoAAAsgAiAERg0BQRBCECAYIBhCEFobpyIGayIEIAUgBCAFSRsiBARAIANB8MgAaiAGaiADQRhqIAT8CgAACyAYIAStfCEYIAUgCmohCiAaIAWtIhx8IRogGSAcfSIZUEUNAAsLQbzMyQAoAgAiDkEASA0CQbzMyQAgDkEBajYCACAKQRFJBEADQCAMQdzXxABqKAIAIQYgDEHY18QAaigCACEFAkAgDEHk18QAaigCACIHRQRAIAYgCksNASAFIANB8MgAaiAGEJAIDQEMBQsgBiAKSw0AIAxB4NfEAGooAgAiBCAHaiEPIANB8MgAaiEHA0AgBkUNBSAGQQFrIQZB/KvHACAEIARFIAQgD0ZyIggbIQ0gBy0AACEJIAUtAAAhCyAHQQFqIQcgBUEBaiEFQQAgBEEBaiAIGyEEIAsgCSANLQAAcUYNAAsLIAxBFGoiDEG4A0cNAAtBvMzJACAONgIAQQMhBUEEIQFBAyEJDA0LIApBEEHsq8cAEKIKAAsgHBCHCCEBIABBgICAgHg2AgAgACABNgIEDAwLQbzMyQAgDjYCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAMQejXxABqLQAAIgQOBAAFBQEFC0GAgAEQfiIERQ0LIARBAEGAgAH8CwBBgBAQfiIGRQ0LIAZBAEGAEPwLACADQSRqQQA7AQAgA0EANgIgQagHEH4iBUUNCyAFQQBB2Ab8CwAgBUEANgKUByAFQQA2AogHIAVBADoAhAcgBUEANgKAByAFIAY2AvwGIAUgBDYC+AYgBUICNwPwBiAFQgA3A+gGIAVCgICAgCA3A+AGIAVBATYC3AYgBUEdNgLYBiAFQQA6AKYHIAUgAykDGDcDmAcgBUGeB2ogAykBHjcBAEGAARB+IgRFDQsgA0HkAmpCADcCACAD/QwAAAAAAAAAAAAAAAAAAAAA/QsC1AIgA0ECNgK4RSADQQA2ArBFIANBvMUAaiADQRhqIgZB1AL8CgAAIANBgAI7AMNIIANBATsBwEggA0KAgICAgiA3A7hIIANCADcDsEggA0EAOgCoSCADQYACOwGkSCADIAU2AqBIIANBADoAnEggA0EANgKYSCADIAQ2ApRIIANBgAE2ApBIIAMgATYCyEggAyACNgLMSCADQgA3A9BIIANBADYC2EggA0EAOgDCSCADQeDIAGoiASADQbDFAGoQwwQgAy0A4EhBKEcEQCAGIAEQnQQgAygCGCIBQQZHDQQLIANBEDYC2EggA0Hg0QBqIgEgA0GwxQBqQbAD/AoAACADQRhqIAEQwwQgAy0AGCIEQShHBEAgA0He0QBqIAMtABs6AAAgAyADLwAZOwHcUSADKAIcIQYgAykCICEbIAEQpwEMDwsCQAJAIAMoAhwiAS0AvgIiAkEDdEH4pMkAaikDACABNQK0AiABMQC/An4iGH4iHEIDiCAcQgeDQgBSrXwiHEL+////D1YNACAcp0EBaq1BgAEgASgCuAIiASABQYABTxutfiIcQiCIpw0AIBynIgRB/wFxIgEEQCAEIAQgAWtBgAJqIgRLDQELIARBgYAISQ0BC0GAgAghBAtBASEGQf////8HIQUCQCACQQN0QbClyQBqKQMAIBh+IhhCA4ggGEIHg0IAUq18IhhC/v///w9WDQAgGKdBAWoiAUH/////A0sNACABQQJ0IghBPHEiAQRAIAggCCABa0FAayIISw0BC0GAgAggCCAIQYCACE0bIQULIAQEQCAEEH4iBkUNDAsgAyAFNgK4BCADQQA2ArQEIANCADcCrAQgA0EANgKQBCADIAY2AowEIAMgBDYCiAQgA0KAgICAgICAgIB/NwKcBCADQoCAgIAQNwKUBCADQn83A4AEIANBGGogA0Hg0QBqQagD/AoAACADQfUDakIANwAAIANCADcD8AMgA0EANgLIAyADQgA3A8ADIANBgAI7AdwEIANCADcD0AQgA0KAgICAEDcDyAQgA0EANgLABCADIAMoAohVNgLYBCADQQI2AtwDAkAgAygCIEECRwRAQSchBCADLQDeAkEDdEHopckAaikDACADNQLUAiIYIAMxAN8Cfn4iG0IDiCAbQgeDQgBSrXxC/////w9UDQEMDwtB5J/HABCkCgALIAMoAtgCIQYgA0EQaiADQRhqIgEQtwUgAywAEEEDdEGgpskAaikDACADMQARIBh+fiIYQgOIIBhCB4NCAFKtfCIbQv7///8PVg0NIBsgBq1+IhhCIIinIBinQQBIcg0NIANBoNUAaiABEJQBIAMtAKBVIgRBKEcEQCADQd7RAGogAy0Ao1U6AAAgAyADLwChVTsB3FEgAygCpFUhBiADKQKoVSEbDA4LIAMoAiAiBkECRg0FQQEhBCADKAJMBEAgAygCUCADLQDRAkECRmohBAsgA0He0QBqIgEgAy0AHzoAACADIAQ2AtQEIAMgAy8AHTsB3FEgAy0AHCEEIAMpAiQhGyADKAIsIQIgAygCMCEIIAMtADQhByADLQA1IQkgAy0ANiELIAMtADchCiAD/QADOCEgIAMoAhghBSADQcDNAGoiDCADQcgAakGYBPwKAAAgBUECRg0OIAMgAy8B3FE7APVIIAMgAS0A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AyAFaiELQQAgCGshDANAIAsoAAAiA0GA/oN4cSADQRB0QYCA/AdxciADQRB2IglB/wFxckG9z9bxAWwgJ3YiCCAfTw0DICQgCEECdGoiCCADQRh2OgADIAggCToAAiAIIANBCHY6AAEgCCADOgAAIAtBBGohCyAMQQRqIgwNAAsMAwsgCCAJQbiFxwAQogoACyADIAZByIXHABCjCgALIAggH0HsgccAEL8HAAsgDSAWagwBCyADIAlB//8DcUGYAkkNABogAS0AYCIIIAtB/wFxSQRAIABBDzoAAAwKCyABIAggC2s6AGAgASAzIAutiDcDQCAGIANBAnQiA0kNBSAGIANrIghBA00NBCAfIAlBmAJrQf//A3EiCE0NASADIAVqICQgCEECdGooAAA2AAAgDUECagsiDUsNAQwCCwsgCCAfQcyDxwAQvwcACyAAQR06AAAMBQtBBCAIQeyDxwAQogoACyADIAZB/IPHABCjCgALQQBBAEGk5cQAEL8HAAsACyAAIAcpALUCNwABIABBCGogB0G8AmopAAA3AAAgACAIOgAACyAdQYCAgIB4ckGAgICAeEYNACAkIB1BAnRBARDWBwsgIARAIB4gIEEBdEECENYHCyAEQQFqIQogFCEBA0AgARCdAiABQYwBaiEBIApBAWsiCg0ACyAhRQ0FIBQgIUGMAWxBBBDWBwwFCyAIIApBnIPHABC/BwALAkAgHUGAgICAeHJBgICAgHhHBEAgJEEEaygCACIBQXhxIgIgHUECdCIDQQRBCCABQQNxIgEbakkNBiABQQAgAiADQSdqSxsNASAkELQCCyAAIDQ3AgggACANNgIEIAAgCzsBAiAAIAk6AAEgACAKOgAADAQLDAULIAcgBykAtwI3AwAgByAHQbwCaikAADcABSAHLQC2AiEBIActALUCIQ4MAQtBDyEKCyAAIAE6AAIgACAOOgABIAAgCjoAACAAIAcpAwA3AAMgAEEIaiAHKQAFNwAACyAHQdACaiQADwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIAMgCUGsgccAEL8HAAuwVgMsfwR+AXsjAEHQAmsiByQAIAFBQGshEQJAAkACQAJAAkACQAJAAkAgAS0ATCIKDQAgB0G0AmogERCfAiAHLQC0AiIKQR1GBEAgAS0ATCIKDQEMAwsMAQsgASAKQQFrIgg6AEwgASABKQNAIjNCAYgiNDcDQAJAAkACQAJAAkACQAJAAkACQCAzQgGDUARAQYCAgIB4IR0MAQsgCkEETQRAIAdBtAJqIBEQnwIgBy0AtAIiCkEdRw0KIAEtAEwiCEEESQ0LIBEpAwAhNAsgASAIQQRrOgBMIAEgNEIEiDcDQCA0p0EPcSIOQQFrQQtPBEBBDSEKDAwLQQQgDnQiCBB+IgpFDQMgCkEEay0AAEEDcUUgCEVyRQRAIApBACAI/AsACyAKrUEBIA50Ih2tQiCGhCEzCyAzpyElQQEhCEECIR5BASEmIARFDQECQAJAAkAgAS0ATCIKRQRAIAdBtAJqIBEQnwIgBy0AtAIiCkEdRw0BIAEtAEwiCkUNBAsgASAKQQFrIgQ6AEwgASABKQNAIjRCAYgiNTcDQCA0QgGDUA0EIApBA00EQCAHQbQCaiAREJ8CIActALQCIgpBHUcNASABLQBMIgRBA0kNBCARKQMAITULIAEgBEEDazoATCABIDVCA4g3A0BBfyA1p0EHcUECaiIcdEF/cyIEIAJB//8DcWogHHYiJiAEIANB//8DcWogHHYiBGwiIEECdCEUICAEQCAUEH4iD0UNBiAPQQRrLQAAQQNxRSAURXJFBEAgD0EAIBT8CwALIAdBtAJqIAEgJiAEQQAgDyAUEEYgBy0AtAIiCkEdRg0DIAcpArwCITMgBygCuAIhCyAHLwG2AiENIActALUCIQkgDyAUQQEQ1gcMCwsgB0G0AmogASAmIARBAEEBIBQQRiAHLQC0AiIKQR1GDQELIAcpArwCITMgBygCuAIhCyAHLwG2AiENIActALUCIQkMCQtBACEgDAILICBBAXQQfiIeRQ0CAkACQCAUQQRrIg1FBEAgDyEKDAELIA1BAnZBAWpB/v///wdxIQsgHiEEIA8hCgNAIAQgCi8AACIJQQh0IAlBCHZyIgk7AQAgBEECaiAKQQRqLwAAIhBBCHQgEEEIdnIiEDsBACAIIAlB//8DcSIJQQFqIAggCUsbIgggEEH//wNxIglBAWogCCAJSxshCCAKQQhqIQogBEEEaiEEIAsgG0ECaiIbRw0ACyANQQRxDQELIB4gG0EBdGogCi8AACIEQQh0IARBCHZyIgQ7AQAgCCAEQf//A3EiBEEBaiAEIAhJGyEIIBtBAWohGwsgDyAUQQEQ1gcMAQtBDyEKDAYLIDNCIIinIR8gB0EANgIcIAdCgICAgMAANwIUQQEgCCAIQQFNGyEoQQEgDkEPcXQhMSAHQbgCaiEhIAdBtAJqIgRBAXIhLSAHQbIBaiEiIAdBsQFqIS4gB0G0AWohIyAEQQJyIRZBBCEUQQAhCgNAIAohBEEAIQ8gB0EAOwGUASAHQYCAgIB4NgKQASAHQQA7AXggB0GAgICAeDYCdCAHQQA7AVwgB0GAgICAeDYCWCAHQQA7AUAgB0GAgICAeDYCPCAHQQA7ASQgB0GAgICAeDYCIEEBIQoCQAJ/AkACQAJAA0AgDyEnIAohDyAnQQF0QdSHxwBqLwEAAkAgAS0ATCIKDQAgB0G0AmogERCfAgJAIActALQCIgpBHUYEQCABLQBMIgoNAkEPIQoMAQsgByAWKQEANwPIASAHIBZBBmopAQA3Ac4BIActALUCIQELICIgBykDyAE3AQAgIkEGaiAHKQHOATcBACAHIAE6ALEBIAcgCjoAsAEMBAtBACAxQQAgHUGAgICAeEcbICcbaiETIAEgCkEBayIKOgBMIAEgASkDQCI0QgGIIjM3A0ACQAJAAn8CQAJAAkACQAJAAkACQAJAIDRCAYNQRQRAIApB/wFxDQQgB0G0AmogERCfAiAHLQC0AiIKQR1HDQEgAS0ATCIKDQNBDyEKDAILQSYQfiINRQ0SIA1BBGsiCy0AAEEDcQRAIA39DAAAAAAAAAAAAAAAAAAAAAAiN/0LAAAgDUEeakIANwAAIA1BEGogN/0LAAALIAEtAEwiCkEDSw0GIAdBtAJqIBEQnwIgBy0AtAIiCkEdRw0EIAEtAEwiCkEETw0GQQ8hCgwFCyAHIBYpAQA3A9gBIAcgFkEGaikBADcB3gEgBy0AtQIhAQsgIiAHKQPYATcBACAiQQZqIAcpAd4BNwEAIAcgAToAsQEgByAKOgCwASAHQYGAgIB4NgKsAQwMCyARKQMAITMLIAEgCkEBayIKOgBMIAEgM0IBiCI0NwNAIApB/wFxRQRAIAdBtAJqIBEQnwICQAJAIActALQCIgpBHUYEQCABLQBMIgoNAkEPIQoMAQsgByAWKQEANwPoASAHIBZBBmopAQA3Ae4BIActALUCIQELICIgBykD6AE3AQAgIkEGaiAHKQHuATcBACAHIAE6ALEBIAcgCjoAsAEgB0GBgICAeDYCrAEMDAsgESkDACE0CyABIApBAWsiCjoATCABIDRCAYg3A0ACQAJAQQhBASA0p0EBcRsiCCAKQf8BcUsEQCAHQbQCaiAREJ8CIActALQCIgpBHUcEQCAHQYACaiAhQQhqKAIANgIAIAcgISkCADcD+AEgBy8BtgIhASAHLQC1AiEIDAILIAEtAEwhCgsgCkH/AXEgCE8NAUEPIQoLICMgBykD+AE3AgAgI0EIaiAHQYACaigCADYCACAHIAE7AbIBIAcgCDoAsQEgByAKOgCwASAHQYGAgIB4NgKsAQwLCyABIAogCGsiCToATCABIAEpA0AiNSAIrSI2iCI0NwNAIBNB//8DcSINIDVCfyA2hkJ/hYOnIgpNBEAMCgsgM0IBg1ANAyAJQf8BcUEHTQRAIAdBtAJqIBEQnwICQAJ/IActALQCIghBHUYEQCABLQBMIglBCE8NAkEPDAELIAdBoAJqICFBCGooAgA2AgAgByAhKQIANwOYAiAHLwG2AiESIActALUCIQEgCAshCiAjIAcpA5gCNwIAICNBCGogB0GgAmooAgA2AgAgByASOwGyASAHIAE6ALEBIAcgCjoAsAEgB0GBgICAeDYCrAEMDAsgESkDACE0CyABIAlBCGs6AEwgASA0QgiINwNAIA0gNKdB/wFxIhJLBEBBGBB+IghFDQ8gCEECOwEQIAggEjsBCiAIQQE7AQggCCAKOwECIAhBATsBAEEIEH4iCUUNDyAJIBJBgIAEcjYCBCAJIApBgIAEcjYCACAHQQE7AcQBIAdBAjYCwAEgByAJNgK8ASAHQoOAgIAgNwK0ASAHIAg2ArABIAdBAzYCrAEgCCEKQQMMBQsMCQsgB0GGAmogLUECai0AADoAACAHIC0vAAA7AYQCIAcoArgCIQEgBykCvAIhMwsgLiAHLwGEAjsAACAuQQJqIAdBhgJqLQAAOgAAIAcgCjoAsAEgByAzNwK4ASAHIAE2ArQBDAYLIAEgCkEEayIKOgBMIAEgASkDQCI0QgSIIjM3A0AgNKdBD3FBAnQhEEFwIQgDQCAKQf8BcUECTQRAIAdBtAJqIBEQnwICQAJAIActALQCIgpBHUYEQCABLQBMIgpBA08NAkEPIQoMAQsgB0GQAmogIUEIaigCADYCACAHICEpAgA3A4gCIAcvAbYCIQkgBy0AtQIhAQsgIyAHKQOIAjcCACAjQQhqIAdBkAJqKAIANgIAIAcgCTsBsgEgByABOgCxASAHIAo6ALABDAgLIBEpAwAhMwsgASAKQQNrIgo6AEwgASAzQgOIIjQ3A0AgCEHohscAaigCACIJQRJNBEAgDSAJQQF0aiAzp0EHcSIJOwEAIDQhMyAQIAhBBGoiCEYNBAwBCwsgCUETQaSHxwAQvwcACyAHIAo7AbABIAdBgICAgHg2AqwBQYCAgIB4CyETIAcpArgBITMgBygCtAEhCyAHLwGyASENIActALEBIQkMAQsgB0ETNgKgAiAHIA02ApwCIAdBEzYCmAIgB0G0AmogB0GYAmoQngEgBygCxAIhFyAHKALAAiEVIAcoArwCIQsgBygCuAIhDQJAIAcoArQCIhlBgYCAgHhGBEAgDSEKIBchDCAVIQgMAQsgBykCyAIhMwJAAkAgCkH/AXFFBEAgB0G0AmogERCfAgJAIActALQCIgpBHUYEQCABLQBMIgoNAUEPIQoMBAsMAgsgESkDACE0CyABIApBAWsiCToATCABIDRCAYgiNTcDQCATIRogNEIBg1BFBEACQAJAIApB/wFxQQNNBEAgB0G0AmogERCfAiAHLQC0AiIKQR1HDQRBDyEKIAEtAEwiCUEDSQ0FIBEpAwAhNQsgASAJQQNrIgk6AEwgASA1QgOINwNAIDWnQQF0QQ5xQQJqIhAgCUH/AXFNDQEgB0G0AmogERCfAiAHLQC0AiIKQR1GDQAMAwsgAS0ATCEJC0EPIQogCUH/AXEgEEkNAiABIAkgEGs6AEwgASABKQNAIjQgEK0iNYg3A0AgE0ECa0H//wNxIDRCfyA1hkJ/hYOnIglB//8DcUkNAiAJQQJqIRoLIBNB//8DcSIMBH8gDEEBdCIpEH4iEEUNDCAQQQRrIjItAABBA3FFIClFckUEQCAQQQAgKfwLAAsCQCAaQf//A3FFDQAgM0IgiCE0IDOnIS9BACEKQQghJAJAA0ACQCAHQbQCaiAREJ8CAkACQAJAAkACQAJ/IActALQCIghBHUcEQCAHLQC3AkEYdCAHLwC1AkEIdHIgCHIMAQsgDSEIIBlBgICAgHhGDQIgESkDACIzIDSDp0H//wNxIgggL08NAwJAIBcgCEECdGooAgAiCEGAgARPBEAgAS0ATCIYIAhBEHYiCUH/AXFPDQNBDyEJIAcvAbYCIQgMAQsgB0G0AmogDSALIDOnQQp2QT9xIAhBAWsgERDOBiAHLwG2AiEIIActALQCIglBHUYNAwsgBy0AtQJBCHQgCXIgCEEQdHILIQogBygCwAIhDCAHKAK8AiEIIAcoArgCIQsMBwsgASAYIAlrOgBMIAEgMyAJrYg3A0ALAkAgCEH//wNxIhhBEE8EQCAIQRBrIipB//8DcUEDSQ0BDAULIBAgCkH//wNxQQF0aiAIOwEAIAggJCAYGyEkIApBAWohCgwDCyABLQBMIglBgoYcICpBA3RB+P8DcXYiCEEHcUkEQCAHQbQCaiAREJ8CIActALQCIglBHUcEQCAHLQC1AkEIdCAJciEKIAcoAsACIQwgBygCvAIhCCAHKAK4AiELIAcvAbYCISwMAwsgAS0ATCEJCyAJQf8BcSAIQf8BcUkEQEEPIQoMAgsgASAJIAhrOgBMIAEgASkDQCIzIAitQgeDIjWINwNAIBNB//8DcSIIQoOAjICwASAqQQR0rULw/wODiKciKyAzQn8gNYZCf4WDpyIsaiIJIApqQf//A3FJDQMgJEEAIBhBEEYbISogCkH//wNxIgogCCAIIApJGyIwIAprIgggKyAsakEBa0H//wNxIhggCCAYSRsiCEEITwRAIAhBAWoiGEEHcSIrQQggKxsiKyAIQX9zaiEIIAkgGCArayIYayEJIAogGGogECAKQQF0aiEKICr9ECE3A0AgCiA3/QsBACAKQRBqIQogCEEIaiIIDQALIQoLIBAgCkEBdGohCANAIAogMEcEQCAIICo7AQAgCEECaiEIIApBAWohCiAJQQFrIglB//8DcQ0BDAQLCyAwIAxB4InHABC/BwALIAggL0GsgccAEL8HAAsgLEEQdCAKciEKDAMLIApB//8DcSATQf//A3FPDQMgGkEBayIaQf//A3ENAQwDCwtBDyEKCwJAIDIoAgAiCUF4cSITQQRBCCAJQQNxIgkbIClqTwRAIAlBACATIClBJ2pLGw0BIBAQtAIMBQsMGAsMGAsgEAVBAgshCEEdIQoCQAJAIBlBgICAgHhGDQAgGQRAIA1BBGsoAgAiCUF4cSILIBlBA3QiEEEEQQggCUEDcSIJG2pJDRggCUEAIAsgEEEnaksbDRkgDRC0AgsgFUUNACAXQQRrKAIAIglBeHEiDSAVQQJ0IgtBBEEIIAlBA3EiCRtqSQ0XIAlBACANIAtBJ2pLGw0BIBcQtAILIAwhCwwDCwwWCyAHLQC1AkEIdCAKciAHLwG2AkEQdHIhCiAHKALAAiEMIAcoArwCIQggBygCuAIhCwsgGUGAgICAeEYNAAJAIBkEQCANQQRrKAIAIglBeHEiECAZQQN0IhNBBEEIIAlBA3EiCRtqSQ0VIAlBACAQIBNBJ2pLGw0WIA0QtAILIBVFDQEgF0EEaygCACIJQXhxIg0gFUECdCIQQQRBCCAJQQNxIgkbakkNFCAJQQAgDSAQQSdqSxsNACAXELQCDAELDBQLIApB/wFxQR1HBEAgB0GzAWogCkEYdjoAACAHIAw2ArwBIAcgCDYCuAEgByALNgK0ASAHIAo6ALABIAdBgYCAgHg2AqwBIAcgCkEIdjsAsQEMBQsgByAMNgKwAiAHIAg2AqwCIAcgCzYCqAIgB0GsAWogB0GoAmoQngEgBy0AsAEhCiAHKQK4ASEzIAcoArQBIQsgBy8BsgEhDSAHLQCxASIJIAcoAqwBIhNBgYCAgHhGDQUaCyAHKQLAASE0AkACQCAHQSBqICdBHGxqIggoAgAiEEGAgICAeEYNACAQBEAgCCgCBCIXQQRrKAIAIhVBeHEiGiAQQQN0IhBBBEEIIBVBA3EiFRtqSQ0CIBVBACAaIBBBJ2pLGw0VIBcQtAILIAgoAgwiEEUNACAIKAIQIhdBBGsoAgAiFUF4cSIaIBBBAnQiEEEEQQggFUEDcSIVG2pJDRMgFUEAIBogEEEnaksbDRQgFxC0AgsgCCA0NwIUIAggMzcCDCAIIAs2AgggCCANOwEGIAggCToABSAIIAo6AAQgCCATNgIAIA8gD0EFSSIIaiEKIAhFDQYMAQsLDBALAkAgCygCACIBQXhxIgJBKkEuIAFBA3EiARtPBEAgAUEAIAJBzgBPGw0BIA0QtAIMAwsMEAtBoIzIAEEuQdCMyAAQoggMBQsgB0GBgICAeDYCrAFBDyEKIAdBDzoAsAELIAcpArgBITMgBygCtAEhCyAHLwGyASENIActALEBCyEJIAdBIGoQnQIgBARAIBQhAQNAIAEQnQIgAUGMAWohASAEQQFrIgQNAAsLAkAgBygCFCIBBEAgFEEEaygCACICQXhxIgMgAUGMAWwiAUEEQQggAkEDcSICG2pJDQ4gAkEAIAMgAUEnaksbDQ8gFBC0AgsgIEUNCCAeQQRrKAIAIgFBeHEiAiAgQQF0IgNBBEEIIAFBA3EiARtqSQ0NIAFBACACIANBJ2pLGw0AIB4QtAIMCAsMDQsgBygCFCAERgRAIAdBFGoQqgYgBygCGCEUCyAUIARBjAFsaiAHQSBqQYwB/AoAACAHIARBAWoiCjYCHCAKIChHDQALIAcoAhQhIQJAAkAgHEUEQEEAIQgMAQsgG0UNASAeLwEAIgggBEsNBgsCQAJAAkAgAkH//wNxIhogA0H//wNxbCIXRQ0AQX8gHHRBf3NB//8DIBwbISkgBkEBaiEVICZB//8DcSEmIAZBEGshJ0EAIA5rQR9xIRggAkEBa0H//wNxISIgFCAIQYwBbGohDkEAIQ1BACETA0ACQCACQf//A3FFBEAgB0G0AmogERCfAiAHLQC0AiIIQR1HDQggDSATSQ0BQayDxwAQuwgACwNAIAdBtAJqIBEQnwIgBy0AtAIiCEEdRw0IIA0gE0kNASANIA0gGm4iCCAabCIJayEDAkAgHEUEQEEAIQsMAQsgGyAmIAhB//8DcSAcdmwgA0H//wNxIBx2aiIISwRAIB4gCEEBdGovAQAiCyAETQ0BIAsgCkG8g8cAEL8HAAsgCCAbQaTlxAAQvwcACyAJIAMgKXIiAyAiIAMgIkkbakEBaiETIBQgC0GMAWxqIg4oAgBBgICAgHhHDQEgDigCHEGAgICAeEcNASAOKAI4QYCAgIB4Rw0BIA4oAlRBgICAgHhHDQEgDi8BBCIDQYACTw0BIA4tAFghDyAOLQA8IRIgDi0AICEQAkAgEyANayAXIBwbIhlFDQBBACEIIANBCHRBgP4DcSAPQRh0IBJBEHRyciAQciEjQQEhCSAGIA1BAnQiCyAGa0EDaiIMQQAgDEEDTRtqIAtrQQJ2IgwgFSALayIkQQAgFSAkTxtBA2pBAnYiJCAMICRJGyIMIBlBAWsiJCAMICRJGyIMQQRPBEAgDEEBaiIIQQNxIglBBCAJGyIJIAxBf3NqIQwgCCAJayIIQQFqIQkgBSALaiELICP9ESE3A0AgCyA3/QsAACALQRBqIQsgDEEEaiIMDQALCyAZQQFqIQwDQCAIIA1qQQJ0IgggBksEQCAIIAZBuIbHABCjCgALIAYgCGsiC0EDSwRAIAUgCGogIzYAACAMIAkiCEEBaiIJRw0BDAILC0EEIAtBqIbHABCiCgALAkAgHUGAgICAeEcEQCADQQh0QYD+A3EgD0EYdHIgEEEQdHIgEnJBvc/W8QFsIBh2IgggH08NASAlIAhBAnRqIgggDzoAAyAIIBI6AAIgCCADOgABIAggEDoAAAsgDSAZaiINIBdJDQEMBAsLIAggH0HsgccAEL8HAAsCQCAXAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAOKAIAQYCAgIB4RwRAIA4oAhQiCCARKQMAIjOnIgkgDi8BGHEiA00NAgJAIA4oAhAgA0ECdGooAgAiCEGAgARPBEAgAS0ATCIJIAhBEHYiA0H/AXFJBEBBDyEJIAcvAbYCIQgMAgsgASAJIANrOgBMIAEgMyADrYg3A0AMAwsgB0G0AmogDigCBCAOKAIIIAlBgPgDcUEKdiAIQQFrIBEQzgYgBy8BtgIhCCAHLQC0AiIJQR1GDQILIAAgBykCuAI3AgQgAEEMaiAHQcACaigCADYCACAHLQC1AiEBIAAgCDsBAiAAIAE6AAEgACAJOgAADBoLIA4vAQQhCAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCEH//wNxIgNBgAJPBEAgA0GYAkkNASAHQQ86ALQCIB1BgICAgHhHDQIgBygCuAIhASAAIAcpArwCNwIIIAAgATYCBCAAQQ86AAAMJgsgDigCHEGAgICAeEYNCSAOKAIwIgkgESkDACIzpyIPIA4vATRxIgNNDS4gDigCLCADQQJ0aigCACILQYCABEkNByABLQBMIgkgC0EQdiIDQf8BcUkEQEEPIQkgBy8BtgIhCwwJCyABIAkgA2s6AEwgASAzIAOtiDcDQAwKCyAIQfwDcUGAAkYEfyAIQf8Ba0H//wNxBSABLQBMIgkgCEH+AWpB/v8DcUEBdiIDQf8BcSIPSQ0LIAEgCSADazoATCABIAEpA0AiMyADrUL/AYMiNIg3A0AgM0J/IDSGQn+Fg6cgCEEBcUECciAPdGpBAWoLIRYgDigCcEGAgICAeEYNBCAOKAKEASIIIBEpAwAiM6ciCSAOLwGIAXEiA00NDyAOKAKAASADQQJ0aigCACIIQYCABEkNAiABLQBMIgkgCEEQdiIDQf8BcU8NAUEPIQkgBy8BtgIhCAwDCyAHQbQCahDUBCAfIAhBmAJrQf//A3EiCE0NCwJAIA1BAnQiAyAGTQRAIAYgA2siCUEDTQ0OIAMgBWogJSAIQQJ0aigAADYAACANQQFqIgMgE0kNASADDBsLIAMgBkGMhMcAEKMKAAsgESkDACEzIA4oAgBBgICAgHhGDQ0CQCAOKAIUIgkgDi8BGCAzp3EiCEsEQCAOKAIQIAhBAnRqKAIAIglBgIAETw0BIAMMGwsgCCAJQZyBxwAQvwcACyAJQRB2IQsMGAsgASAJIANrOgBMIAEgMyADrYg3A0AMAwsgB0G0AmogDigCdCAOKAJ4IAlBgPgDcUEKdiAIQQFrIBEQzgYgBy8BtgIhCCAHLQC0AiIJQR1GDQILIAAgBykCuAI3AgQgAEEMaiAHQcACaigCADYCACAHLQC1AiEBIAAgCDsBAiAAIAE6AAEgACAJOgAADB8LIA4vAXQhCAsgCEH//wNxQQRJDQogCEECayIDQf//A3FB/wNLDQsgAS0ATCIJIANBAXYiA0H/AXFJBEAgACAoNgIEIABBDzoAAAweCyABIAkgA0H//wFxIgNrOgBMIAEgASkDQCIzIAOtIjSINwNAIDNCfyA0hkJ/hYOnIAhBAXFBAnIgA3RqQQFqIihB+ABNDREgKEH4AGshCwwSCyAHQbQCaiAOKAIgIA4oAiQgD0GA+ANxQQp2IAtBAWsgERDOBiAHLwG2AiELIActALQCIglBHUYNAgsgACAHKQK4AjcCBCAAQQxqIAdBwAJqKAIANgIAIActALUCIQEgACALOwECIAAgAToAASAAIAk6AAAMGwsgDi0AICELCwJAAn8gDigCOEGAgICAeEcEQCAOKAJMIgkgESkDACIzpyIMIA4vAVBxIgNNDSYCQCAOKAJIIANBAnRqKAIAIg9BgIAETwRAIAEtAEwiCSAPQRB2IgNB/wFxSQRAQQ8hCSAHLwG2AiEPDAILIAEgCSADayIJOgBMIAEgMyADrYg3A0AMBAsgB0G0AmogDigCPCAOKAJAIAxBgPgDcUEKdiAPQQFrIBEQzgYgBy8BtgIiDyAHLQC0AiIJQR1GDQIaCyAAIAcpArgCNwIEIABBDGogB0HAAmooAgA2AgAgBy0AtQIhASAAIA87AQIgACABOgABIAAgCToAAAwcCyAOLQA8CyEPIAEtAEwhCQsCQCAJQf8BcUEOSw0AIAdBtAJqIBEQnwIgBy0AtAIiA0EdRg0AIAAgBykAtQI3AAEgAEEIaiAHQbwCaikAADcAACAAIAM6AAAMGgsCQCAOKAJUQYCAgIB4RwRAIA4oAmgiCSARKQMAIjOnIhIgDi8BbHEiA00NJQJAIA4oAmQgA0ECdGooAgAiDEGAgARPBEAgAS0ATCIJIAxBEHYiA0H/AXFJBEBBDyEJIAcvAbYCIQwMAgsgASAJIANrOgBMIAEgMyADrYg3A0AMAwsgB0G0AmogDigCWCAOKAJcIBJBgPgDcUEKdiAMQQFrIBEQzgYgBy8BtgIhDCAHLQC0AiIJQR1GDQILIAAgBykCuAI3AgQgAEEMaiAHQcACaigCADYCACAHLQC1AiEBIAAgDDsBAiAAIAE6AAEgACAJOgAADBsLIA4tAFghDAsgDUECdCIDIAZPDQggAyAFaiALOgAAIANBAXIiCSAGTw0JIAUgCWogCDoAACADQQJyIgkgBk8NCiAFIAlqIA86AAAgA0EDciIDIAZPDQsgAyAFaiAMOgAAIB1BgICAgHhHBEAgD0H/AXEgCEEIdEGA/gNxIAtBEHRyQYD+/wdxIAxBGHRyckG9z9bxAWwgGHYiAyAfTw0NICUgA0ECdGoiAyAMOgADIAMgDzoAAiADIAg6AAEgAyALOgAACyANQQFqDBALIAAgFjYCBCAAQQ86AAAMGAsgAyAIQayBxwAQvwcACyAIIB9BzIPHABC/BwALQQQgCUHcg8cAEKIKAAsgDi8BBCEJQQAhCwwKCyADIAhBrIHHABC/BwALIAhBAWpB//8DcSEoDAYLQcD4yABBKyAHQbQCakHsgscAQciGxwAQlQcACyADIAZB6IXHABC/BwALIAkgBkH4hccAEL8HAAsgCSAGQYiGxwAQvwcACyADIAZBmIbHABC/BwALIAMgH0HsgccAEL8HAAsgKEEBayIDQfgASQRAQQEgA0EBdCIDQd+HxwBqLAAAIBpsIANB3ofHAGosAABqIgMgA0EBTBshCwwBC0F/QfgAQdCJxwAQvwcACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBcgDWsgFkkgCyANS3JFBEAgC0EBRgRAAkAgDUECdCIDQQRrIgggBk0EQCAGIAhrIglBA0sNAUEEIAlBnITHABCiCgALIAggBkHMhMcAEKMKAAtBACEJIAUgCGooAAAhD0EBIQggFkEBayIMIBUgA2siEkEAIBIgFU0bQQNqQQJ2IgsgBiADa0ECdiISIAsgEkkbIgsgCyAMSxsiDEEETwRAIAxBAWoiCEEDcSIJQQQgCRsiCSAMQX9zaiEMIAggCWsiCUEBaiEIIAMgBWohCyAP/REhNwNAIAsgN/0LAAAgC0EQaiELIAxBBGoiDA0ACwsgEkEBaiEMIBZBAWohEgNAIAkgDWpBAnQiAyAGTQRAIAggDEYNBCADIAVqIA82AAAgCCEJIBIgCEEBaiIIRw0BDBALCyADIAZBvITHABCjCgALIA0gFmpBA2ogF0sNCCANIAtrQQJ0IglBEGohAyAJQW9LDQIgAyAGSw0DIA1BAnQiCCAnSw0EIAUgCGogBSAJav0AAAD9CwAAIBZBBE0gC0EET3ENCSALQQJ0IgxFDQUgFkECdCIDIANB/P8DcUEQIAwgDEEQTxsiA0H//wNxbiIPIANsa0H//wNxQQBHIA9qIhJBAkkNCSADIAlqIhBBEGohDyAQQW9LDQYgBiAPSQ0HICcgAyAIak8EQCASQQJrIQsgA0EBdCAMayEQIAMgBWohDyAFIAMgDGtqIQwgAyESA0AgCCAPaiAIIAxq/QAAAP0LAAAgC0UNCwJAIAggEGoiCUFvTQRAIAlBEGogBk0NASANQQJ0IBBqQRBqIQ8MCwsgDUECdCAQaiIQQRBqIQ8MCQsgC0EBayELIAMgEGohECADIA9qIQ8gAyAMaiEMIAggAyASaiISaiAnTQ0ACwsgB0EANgLEAiAHQQE2ArgCIAdB9K7IADYCtAIgB0IENwK8AiAHQbQCakHYhccAEMoIAAsgAEEPOgAADBcLQQQgBiADa0GshMcAEKIKAAsgCSADQfyExwAQpQoACyADIAZB/ITHABCiCgALIAdBADYCxAIgB0EBNgK4AiAHQfSuyAA2ArQCIAdCBDcCvAIgB0G0AmpB/ITHABDKCAALQYyFxwBBG0GohccAEKIIAAsgECAPQdiFxwAQpQoACyAPIAZB2IXHABCiCgALQQAhCQJAIBZBAnQiGUEBayIIIAYgDUECdCIDIAtBAnQiD2siDCAGIAxLGyAPaiADayISIAYgA2siDEEAIAYgDE8bIgwgDCASSxsiEiAIIBJJGyISQRBJBEBBASEIDAELQQEhCCAPQQ9NDQAgEkEBaiIIQQ9xIglBECAJGyIJIBJBf3NqIRAgCCAJayIJQQFqIQggAyAFaiELQQAgD2shEgNAIAsgCyASav0AAAD9CwAAIAtBEGohCyAQQRBqIhANAAsLIAxBAWohEiAZQQFqIQsDQCADIAlqIgkgD2siDCAGTw0CIAggEkYNAyAFIAlqIAUgDGotAAA6AAAgCCEJIAsgCEEBaiIIRw0ACwsgHUGAgICAeEcNAgwDCyAMIAZB3ITHABC/BwALIAkgBkHshMcAEL8HAAsCQCANQQJ0IgMgBk0EQCAWQQJ0IgggBiADayIJTQRAIAhFDQMgAyAFaiELQQAgCGshDwNAIAsoAAAiA0GA/oN4cSADQRB0QYCA/AdxciADQRB2IglB/wFxckG9z9bxAWwgGHYiCCAfTw0DICUgCEECdGoiCCADQRh2OgADIAggCToAAiAIIANBCHY6AAEgCCADOgAAIAtBBGohCyAPQQRqIg8NAAsMAwsgCCAJQbiFxwAQogoACyADIAZByIXHABCjCgALIAggH0HsgccAEL8HAAsgDSAWagwBCyADIAlB//8DcUGYAkkNABogAS0ATCIIIAtB/wFxSQRAIABBDzoAAAwKCyABIAggC2s6AEwgASAzIAutiDcDQCAGIANBAnQiA0kNBSAGIANrIghBA00NBCAfIAlBmAJrQf//A3EiCE0NASADIAVqICUgCEECdGooAAA2AAAgDUECagsiDUsNAQwCCwsgCCAfQcyDxwAQvwcACyAAQR06AAAMBQtBBCAIQeyDxwAQogoACyADIAZB/IPHABCjCgALQQBBAEGk5cQAEL8HAAsACyAAIAcpALUCNwABIABBCGogB0G8AmopAAA3AAAgACAIOgAACyAdQYCAgIB4ckGAgICAeEYNACAlIB1BAnRBARDWBwsgIARAIB4gIEEBdEECENYHCyAEQQFqIQogFCEBA0AgARCdAiABQYwBaiEBIApBAWsiCg0ACyAhRQ0FIBQgIUGMAWxBBBDWBwwFCyAIIApBnIPHABC/BwALAkAgHUGAgICAeHJBgICAgHhHBEAgJUEEaygCACIBQXhxIgIgHUECdCIDQQRBCCABQQNxIgEbakkNBiABQQAgAiADQSdqSxsNASAlELQCCyAAIDM3AgggACALNgIEIAAgDTsBAiAAIAk6AAEgACAKOgAADAQLDAULIAcgBykAtwI3AwAgByAHQbwCaikAADcABSAHLQC2AiEBIActALUCIQ4MAQtBDyEKCyAAIAE6AAIgACAOOgABIAAgCjoAACAAIAcpAwA3AAMgAEEIaiAHKQAFNwAACyAHQdACaiQADwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIAMgCUGsgccAEL8HAAvVWwMZfwR9AX4jAEHwAGsiCSQAAkACQAJAIAAtAKBURQRAIAlB0ABqIABBvAFqEOMEIAktAFAEQCAJKAJUIQEMAwsgCS0AUUEBRw0BIABBAToAoFQLIAAoAsQBIgJFDQAgAEGYAmohFiAJQTxqrUKAgICAEIQhHiAAQdQBaiEXIABB4AFqIRQgAEHsAWohGCAAQfgBaiEZA0ACQCAAKALQASIFIAAoApxUIgFrIgNBACADIAVNG0GAgARPBEAgASEDDAELIAEgAUGAgAJrIgNBACABIANPGyIGayEDIAEgBkYEQCAAIAM2ApxUDAELIAEgBU0EQCADBEAgACgCzAEiAiACIAZqIAP8CgAACyAAKALEASECIAAgAzYCnFQMAQsgASAFQeinwQAQogoACwJAAkACQAJAAkACQAJAAkACQCACIAxPBEAgCUHQAGogFiAAKALAASAMaiACIAxrIAAoAswBIAAoAtABIANBBhBLIAkgCS0AVCIBOgAPIAkoAlAhFSAJKAJYIhNFDQkgACgCnFQiBiATaiIDIAZJDQQgAyAAKALQASICSw0FIAAoAswBIQIgACgC1AEgACgC3AEiA2sgE0kEQCAXIAMgE0EBQQEQ0AUgACgC3AEhAwsgEwRAIAAoAtgBIANqIAIgBmogE/wKAAALIAAgAyATaiIINgLcASAAIAAoApxUIBNqNgKcVCAAKALgAUGAgICAeEcNCCAIQRBJDQcgCSAAKALYASINKAAAIgI2AhwgAkHOjs2CBUcNBiAJIA0oAAQiBTYCLCAFQQRrQX1JDQMgAEEANgLcASANLAAOIQQgDS0ADSEDIA0tAAwhByANKAAIIQYgCEEQayICBEAgAgRAIA0gDUEQaiAC/AoAAAsgACACNgLcAQsgCSAHNgI8IAdBA0sNAUGAgMAAEH4iAg0CAAsgDCACQYiowQAQowoACyAJQQE2AlQgCUGM8scANgJQIAlCATcCXCAJIB43A2ggCSAJQegAajYCWCAJQUBrIgAgCUHQAGoQ5gYgABDDByEBDAoLIAAgBDoAlgIgACADOgCVAiAAQQA6AJQCIABBADYCkAIgACAHNgKMAiAAIAY2AogCIAAgBTYChAIgAEEANgKAAiAAQoCAgIDAADcC+AEgAEICNwLwASAAQgA3AugBIAAgAjYC5AEgAEGAgBA2AuABIAkgBEGAAXFBB3Y6AFggCSAHNgJUIAkgBjYCUCAAIAlB0ABqEMwEIARBAE4NBCAAQQE6AJwBDAQLIAlBATYCVCAJQdCgwQA2AlAgCUIBNwJcIAkgCUEsaq1CgICAgBCENwNAIAkgCUFAazYCWCAJQTBqIgAgCUHQAGoQ5gYgABDBByEBDAgLIAYgA0H4p8EAEKUKAAsgAyACQfinwQAQogoACyAJQQE2AmQgCUGwgsgANgJgIAlBATYCVCAJQfCgwQA2AlAgCUEBNgJcIAkgCUEcaq1CgICAgKADhDcDQCAJIAlBQGs2AlggCUEgaiIAIAlB0ABqEOYGIAAQwQchAQwFCyAAKALgAUGAgICAeEYNAQsCQAJAAkACQAJAA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAC0AlAJBAWsOCQ0MCwoAAQYEGgILQQkhEkEGIQEgACgCjAIOBAQIBwYCCyAAQQlBByAALACWAkEAThs6AJQCDBMLIAAoAtwBQQZBCSAAKAKEAiIDQQFGGyINbiICIAAoAogCIAAoApACayIISQRAIAIiCEGAgARJDRgLQYCABCAIIAhBgIAETxsiD0EDbCIFIAAoAugBIgFLBH8gBSABIgJrIgQgACgC4AEgAWtLBEAgFCABIARBBEEEENAFIAAoAugBIQILIAAoAuQBIgMgAkECdGohBiAEQQJPBH8gBSABQX9zakECdCIBBEAgBkEAIAH8CwALIAIgBGoiAUEBayECIAMgAUECdGpBBGsFIAYLQQA2AgAgACACQQFqNgLoASAAKAKEAgUgAwtBAUcNCyAIRQ0MQQYhAUEAIQZBACEDQQAhAgNAAn8CQCABQQRrIgQgACgC3AEiBU0EQCAAKALYASABaiIFQQVrLQAAQQh0IgcgBUEGay0AAHIiBUH//wFxRQRAIAVBEHQMAwsgBUH/B3EhCyAHQYCAAnEhBCAHQYD4AXEiBUGA+AFGBEAgBEEQdCIFQYCAgPwHciALRQ0DGiALQQ10IAVyQYCAgP4HcgwDCyAEQRB0IQQgBUUNASAFQQ10QYCAgPwAcSALQQ10ckGAgIDAA2ogBHIMAgsgBCAFQfigwQAQogoACyALIAtnQRBrIgVB//8DcUEIanRB////A3EgBEGAgIDYA3IgBUEXdGtyCyEEAn8CQCAAKALoASIFIAJLBEAgACgC5AEgA2ogBDYCACABQQJrIgQgACgC3AEiBU0EQCAAKALYASABaiIFQQNrLQAAQQh0IgcgBUEEay0AAHIiBUH//wFxRQRAIAVBEHQMBAsgBUH/B3EhCyAHQYCAAnEhBCAHQYD4AXEiBUGA+AFGBEAgBEEQdCIFQYCAgPwHciALRQ0EGiALQQ10IAVyQYCAgP4HcgwECyAEQRB0IQQgBUUNAiAFQQ10QYCAgPwAcSALQQ10ckGAgIDAA2ogBHIMAwsgBCAFQZihwQAQogoACyACIAVBiKHBABC/BwALIAsgC2dBEGsiBUH//wNxQQhqdEH///8DcSAEQYCAgNgDciAFQRd0a3ILIQcCfwJAIAJBAWoiBCAAKALoASIFSQRAIAAoAuQBIANqQQRqIAc2AgAgACgC3AEiBSABTwRAIAAoAtgBIAFqIgVBAWstAABBCHQiByAFQQJrLQAAciIFQf//AXFFBEAgBUEQdAwECyAFQf8HcSELIAdBgIACcSEEIAdBgPgBcSIFQYD4AUYEQCAEQRB0IgVBgICA/AdyIAtFDQQaIAtBDXQgBXJBgICA/gdyDAQLIARBEHQhBCAFRQ0CIAVBDXRBgICA/ABxIAtBDXRyQYCAgMADaiAEcgwDCyABIAVBuKHBABCiCgALIAQgBUGoocEAEL8HAAsgCyALZ0EQayIFQf//A3FBCGp0Qf///wNxIARBgICA2ANyIAVBF3RrcgshByACQQJqIgQgACgC6AEiBUkEQCAAKALkASADakEIaiAHNgIAIAFBBmohASADQQxqIQMgAkEDaiECIAZBAWoiBiAPSQ0BDA4LCyAEIAVByKHBABC/BwALQYimwQAQuQgACyAAKALcASIBQQJ2IgIgACgCiAIgACgCkAJrIgZJBEAgAiEGIAFBgIAQSQ0WC0GAgAQgBiAGQYCABE8bIgQgACgCgAIiAUsEQCABIQIgBCABayIIIAAoAvgBIAFrSwRAIBkgASAIQQRBBBDQBSAAKAKAAiECCyAAKAL8ASIDIAJBAnRqIQUgCEECTwR/IAQgAUF/c2pBAnQiAQRAIAVBACAB/AsACyACIAhqIgFBAWshAiADIAFBAnRqQQRrBSAFC0EANgIAIAAgAkEBaiIBNgKAAgsCQAJAAkACQAJAIAYEQEEBIAQgBEEBTRshBUEAIQJBBCEBA0AgASAAKALcASIDSw0DIAIgACgCgAIiA08NAiAAKAL8ASABakEEayAAKALYASABakEEaygAADYCACABQQRqIQEgBSACQQFqIgJHDQALIAAoAoACIQELIAAgACgCkAIgBCAAKAL8ASABEN0EIAAoAtwBIgIgBEECdCIDSQ0fIABBADYC3AEgAiADayEBIAZFDQIgAiADRg0EIAFFDQMgACgC2AEiAiACIANqIAH8CgAADAMLIAIgA0HYp8EAEL8HAAsgASADQcinwQAQogoACyACIANGDQELIAAgATYC3AELIAAgACgCkAIgBGoiAjYCkAIgAiAAKAKIAkcNECAAQQA2ApACQQkhAQsgACABOgCUAgwPCyAAKALcASIBQQF2IgIgACgCiAIgACgCkAJrIgZJBEAgAiEGIAFBgIAISQ0UC0GAgAQgBiAGQYCABE8bIgQgACgC9AEiAUsEQCABIQIgBCABayIIIAAoAuwBIAFrSwRAIBggASAIQQJBAhDQBSAAKAL0ASECCyAAKALwASIDIAJBAXRqIQUgCEECTwR/IAQgAUF/c2pBAXQiAQRAIAVBACAB/AsACyACIAhqIgFBAWshAiADIAFBAXRqQQJrBSAFC0EAOwEAIAAgAkEBaiIBNgL0AQsgBgRAQQEgBCAEQQFNGyEFQQAhAkECIQECQANAIAAoAtwBIgMgAUkEQCABIANBqKfBABCiCgALIAAoAvQBIgMgAksEQCAAKALwASABakECayAAKALYASABakECay8AADsBACABQQJqIQEgBSACQQFqIgJGDQIMAQsLIAIgA0G4p8EAEL8HAAsgACgC9AEhAQsgACAAKAKQAiAEIAAoAvABIAEQ3gQCQAJAAkAgACgC3AEiAiAEQQF0IgNPBEAgAEEANgLcASACIANrIQEgBkUNASACIANGDQMgAUUNAiAAKALYASICIAIgA2ogAfwKAAAMAgsMGwsgAiADRg0BCyAAIAE2AtwBCyAAIAAoApACIARqIgI2ApACIAIgACgCiAJHDQ4gAEEANgKQAiAAQQg6AJQCDA4LQS0hEgwBC0EYIRILIAAoAtwBIBJuIgIgACgCiAIgACgCkAJrIgtJBEAgAiILQYCABEkNEQtBgIAEIAsgC0GAgARPGyIOIBJsIhAgACgC6AEiAUsEQCABIQIgECABayIFIAAoAuABIAFrSwRAIBQgASAFQQRBBBDQBSAAKALoASECCyAAKALkASIDIAJBAnRqIQYgBUECTwR/IBAgAUF/c2pBAnQiAQRAIAZBACAB/AsACyACIAVqIgFBAWshAiADIAFBAnRqQQRrBSAGC0EANgIAIAAgAkEBaiIBNgLoAQsgDkEJbCEPAkAgCwRAIA5B4ABsIQggDkEYbCEGQQEhAUEAIRFBACEFAkADQCAFIQ0gASEFIA0gEmwiASAAKALcASIDTw0DAkACQAJAAkAgDUEJbCICIAAoAugBIgNPDQAgACgC5AEgAkECdGogACgC2AEgAWotAACzQwAAAMOSQwAAADyUOAIAIAFBA2oiByAAKALcASIDTwRAIAchAQwICyACQQNqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBBmoiByAAKALcASIDTwRAIAchAQwICyACQQZqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBAWoiByAAKALcASIDTwRAIAchAQwICyACQQFqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBBGoiByAAKALcASIDTwRAIAchAQwICyACQQRqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBB2oiByAAKALcASIDTwRAIAchAQwICyACQQdqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBAmoiByAAKALcASIDTwRAIAchAQwICyACQQJqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBBWoiByAAKALcASIDTwRAIAchAQwICyACQQVqIgQgACgC6AEiA08EQCAEIQIMAQsgACgC5AEgBEECdGogACgC2AEgB2otAACzQwAAAMOSQwAAADyUOAIAIAFBCGoiBCAAKALcASIDTwRAIAQhAQwICyACQQhqIgIgACgC6AEiA08NACAAKALkASACQQJ0aiAAKALYASAEai0AALNDAAAAw5JDAAAAPJQ4AgAgACgCjAJBAUsNAQwCCyACIANBmKfBABC/BwALAkACQCABQQlqIgIgACgC3AEiCk8NACANQQ9sIA9qIgMgACgC6AEiCk8NAyAAKALkASADQQJ0aiAAKALYASACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEMaiICIAAoAtwBIgpPDQAgA0EDaiIEIAAoAugBIgpPBEAgBCEDDAQLIAAoAuQBIARBAnRqIAAoAtgBIAJqLQAAs0MAAADDkkMAAAA8lDgCACABQQ9qIgIgACgC3AEiCk8NACADQQZqIgQgACgC6AEiCk8EQCAEIQMMBAsgACgC5AEgBEECdGogACgC2AEgAmotAACzQwAAAMOSQwAAADyUOAIAIAFBEmoiAiAAKALcASIKTw0AIANBCWoiBCAAKALoASIKTwRAIAQhAwwECyAAKALkASAEQQJ0aiAAKALYASACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEVaiICIAAoAtwBIgpPDQAgA0EMaiIEIAAoAugBIgpPBEAgBCEDDAQLIAAoAuQBIARBAnRqIAAoAtgBIAJqLQAAs0MAAADDkkMAAAA8lDgCACABQQpqIgIgACgC3AEiCk8NACADQQFqIgQgACgC6AEiCk8EQCAEIQMMBAsgACgC5AEgBEECdGogACgC2AEgAmotAACzQwAAAMOSQwAAADyUOAIAIAFBDWoiAiAAKALcASIKTw0AIANBBGoiBCAAKALoASIKTwRAIAQhAwwECyAAKALkASAEQQJ0aiAAKALYASACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEQaiICIAAoAtwBIgpPDQAgA0EHaiIEIAAoAugBIgpPBEAgBCEDDAQLIAAoAuQBIARBAnRqIAAoAtgBIAJqLQAAs0MAAADDkkMAAAA8lDgCACABQRNqIgIgACgC3AEiCk8NACADQQpqIgQgACgC6AEiCk8EQCAEIQMMBAsgACgC5AEgBEECdGogACgC2AEgAmotAACzQwAAAMOSQwAAADyUOAIAIAFBFmoiAiAAKALcASIKTw0AIANBDWoiBCAAKALoASIKTwRAIAQhAwwECyAAKALkASAEQQJ0aiAAKALYASACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUELaiICIAAoAtwBIgpPDQAgA0ECaiIEIAAoAugBIgpPBEAgBCEDDAQLIAAoAuQBIARBAnRqIAAoAtgBIAJqLQAAs0MAAADDkkMAAAA8lDgCACABQQ5qIgIgACgC3AEiCk8NACADQQVqIgQgACgC6AEiCk8EQCAEIQMMBAsgACgC5AEgBEECdGogACgC2AEgAmotAACzQwAAAMOSQwAAADyUOAIAIAFBEWoiAiAAKALcASIKTw0AIANBCGoiBCAAKALoASIKTwRAIAQhAwwECyAAKALkASAEQQJ0aiAAKALYASACai0AALNDAAAAw5JDAAAAPJQ4AgAgAUEUaiICIAAoAtwBIgpPDQAgA0ELaiIEIAAoAugBIgpPBEAgBCEDDAQLIAAoAuQBIARBAnRqIAAoAtgBIAJqLQAAs0MAAADDkkMAAAA8lDgCACABQRdqIgIgACgC3AEiCk8NACADQQ5qIgMgACgC6AEiCk8NAyAAKALkASADQQJ0aiAAKALYASACai0AALNDAAAAw5JDAAAAPJQ4AgAgACgCjAJBAk0NAkEAIQogCCECDAELIAIgCkHopsEAEL8HAAsCQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAA0AgACgC3AEiAyAKIBFqIgdBGGpLBEAgBiAKaiIBIgQgACgC6AEiA08NDyAAKALkASACaiAHIAAoAtgBakEYai0AALNDAAAAw5JDAAAAPJQ4AgAgACgC3AEiAyAHQRtqTQ0HIAAoAugBIgMgAUEDak0NDiAAKALkASACakEMaiAHIAAoAtgBakEbai0AALNDAAAAw5JDAAAAPJQ4AgAgACgC3AEiAyAHQR5qTQ0GIAAoAugBIgMgAUEGak0NDSAAKALkASACakEYaiAHIAAoAtgBakEeai0AALNDAAAAw5JDAAAAPJQ4AgAgACgC3AEiAyAHQSFqTQ0FIAAoAugBIgMgAUEJak0NDCAAKALkASACakEkaiAHIAAoAtgBakEhai0AALNDAAAAw5JDAAAAPJQ4AgAgACgC3AEiAyAHQSRqTQ0EIAAoAugBIgMgAUEMak0NCyAAKALkASACakEwaiAHIAAoAtgBakEkai0AALNDAAAAw5JDAAAAPJQ4AgAgACgC3AEiAyAHQSdqTQ0DIAAoAugBIgMgAUEPak0NCiAAKALkASACakE8aiAHIAAoAtgBakEnai0AALNDAAAAw5JDAAAAPJQ4AgAgACgC3AEiAyAHQSpqTQ0CIAAoAugBIgMgAUESak0NCSAAKALkASACakHIAGogACgC2AEgEWogCmpBKmotAACzQwAAAMOSQwAAADyUOAIAIAJBBGohAiAKQQFqIgpBA0kNAQwQCwsgB0EYagwGCyAHQSpqDAULIAdBJ2oMBAsgB0EkagwDCyAHQSFqDAILIAdBHmoMAQsgB0EbagsgA0HIpsEAEL8HAAsgAUESaiEEDAULIAFBD2ohBAwECyABQQxqIQQMAwsgAUEJaiEEDAILIAFBBmohBAwBCyABQQNqIQQLIAQgA0HYpsEAEL8HAAsgESASaiERIAZBFWohBiAIQdQAaiEIIAUgBSAOSSICaiEBIAJFDQIMAQsLIAMgCkH4psEAEL8HAAsgACgC6AEhAQsCQAJAAkACQAJAAkACQCABIA9PBEAgACgC5AEhCCAAKAKQAiEFQQAhA0EEIQYCQCAAKAKMAiICQQJJBEBBBCERQQAhCgwBCyAOQRhsIgQgAUsNAiAOQQ9sIQogCCAPQQJ0aiERIAJBAkYNACAEIBBLDQMgASAQSQ0EIBAgBGshAyAIIARBAnRqIQYLIAsEQCAAIAUgDiAIIA8Q9wMLIAoEQCAAIAUgDiARIAoQiAQLIAMEQCAAIAUgDiAGIAMQiQQLIAAoAtwBIgIgEEkNBCAAQQA2AtwBIAIgEGshASALRQ0FIAIgEEYNByABRQ0GIAAoAtgBIgIgAiAQaiAB/AoAAAwGCyAPIAFBmKbBABCiCgALIAQgAUGopsEAEKIKAAsgBCAQQbimwQAQpQoACyAQIAFBuKbBABCiCgALIBAgAkHcq8cAEKIKAAsgAiAQRg0BCyAAIAE2AtwBCyAAIAAoApACIA5qIgI2ApACIAIgACgCiAJHDQwgAEEANgKQAiAAQQY6AJQCDAwLIAEgA0GIp8EAEL8HAAsgACgC3AFBBEEDIAAoAoQCIgNBA0YbIgduIgIgACgCiAIgACgCkAJrIgVJBEAgAiIFQYCABEkNEAsCQAJAAkACQAJAAkACQAJAAkACQAJAQYCABCAFIAVBgIAETxsiDkECdCIIIAAoAugBIgFLBH8gCCABIgJrIgQgACgC4AEgAWtLBEAgFCABIARBBEEEENAFIAAoAugBIQILIAAoAuQBIgMgAkECdGohBiAEQQJPBH8gCCABQX9zakECdCIBBEAgBkEAIAH8CwALIAIgBGoiAUEBayECIAMgAUECdGpBBGsFIAYLQQA2AgAgACACQQFqNgLoASAAKAKEAgUgAwtBA0cEQCAFRQ0LQQAhBEEAIQFBACEDQQAhAgNAIAEgACgC3AEiCE8NAiABQQFqIgYgCE8NAyABQQJqIgYgCE8NBEMAAIA/IAAoAtgBIAFqIgYtAACzQwAA/0KVQwAAgL+SIhwgHJQgBkEBai0AALNDAAD/QpVDAACAv5IiHSAdlJIgBkECai0AALNDAAD/QpVDAACAv5IiGyAblJKTQwAAAAAQnwkhGiACIAAoAugBIgZPDQUgACgC5AEgA2ogHDgCACACQQFqIgggACgC6AEiBk8NBiAAKALkASADakEEaiAdOAIAIAJBAmoiCCAAKALoASIGTw0HIAAoAuQBIANqQQhqIBs4AgAgAkEDaiIIIAAoAugBIgZPDQggACgC5AEgA2pBDGogGpE4AgAgAUEDaiEBIANBEGohAyACQQRqIQIgBEEBaiIEIA5JDQALDAsLIAVFDQpBACEDQQEhBkEAIQIDQAJAAkACQAJAIAAoAtwBIgEgAksEQCACQQFqIhEgAU8NASACQQJqIhIgAU8NAiACQQNqIg8gAU8NAyAAKALYASACaiIIQQJqLQAAIQQgCEEDai0AACELIAgtAAAgCEEBai0AACENIAn9DAAAAAAAAAAAAAAAAAAAAAD9CwNQIA1BCHRyIgggBEEQdCALQRh0cnIhAUMAAAAAIRsCfwJAIAtBBnYiBEEDRwRAIAkgCEH/A3GzQwCA/0OVQ/MENT+UIhqMIBogDUECcRsiGjgCXCAaIBqUIRsgAUEKdiEBIARBAkYNAQsgCSABQf8DcbNDAID/Q5VD8wQ1P5QiGowgGiABQYAEcRsiGjgCWCAbIBogGpSSIRsgAUEKdiIBIARBAUYNARoLIAkgAUH/A3GzQwCA/0OVQ/MENT+UIhqMIBogAUGABHEbIho4AlQgGyAaIBqUkiEbIAFBCnYLIQEgCUHQAGogBEECdGpDAACAPyALQcAATwR9IAkgAUH/A3GzQwCA/0OVQ/MENT+UIhqMIBogAUGABHEbIho4AlAgGyAaIBqUkgUgGwuTIhqRQwAAAAAgGkMAAAAAXhs4AgAgAiAAKALoASIBSQ0EIAIgAUHYpMEAEL8HAAsgAiABQZikwQAQvwcACyARIAFBqKTBABC/BwALIBIgAUG4pMEAEL8HAAsgDyABQcikwQAQvwcACyAAKALkASADaiAJKgJQOAIAIBEgACgC6AEiAU8NCiAAKALkASADakEEaiAJKgJUOAIAIBIgACgC6AEiAU8NCSAAKALkASADakEIaiAJKgJYOAIAIA8gACgC6AEiAU8NCCAAKALkASADakEMaiAJKgJcOAIAIANBEGohAyACQQRqIQIgBiAOSSAGQQFqIQYNAAsMCgsgASAIQZilwQAQvwcACyAGIAhBqKXBABC/BwALIAYgCEG4pcEAEL8HAAsgAiAGQcilwQAQvwcACyAIIAZB2KXBABC/BwALIAggBkHopcEAEL8HAAsgCCAGQfilwQAQvwcACyAPIAFBiKXBABC/BwALIBIgAUH4pMEAEL8HAAsgESABQeikwQAQvwcACyAAIAAoApACIA4gACgC5AEgACgC6AEQjgUCQAJAAkAgACgC3AEiAiAHIA5sIgNPBEAgAEEANgLcASACIANrIQEgBUUNASACIANGDQMgAUUNAiAAKALYASICIAIgA2ogAfwKAAAMAgsMFwsgAiADRg0BCyAAIAE2AtwBCyAAIAAoApACIA5qIgI2ApACIAIgACgCiAJHDQogAEEANgKQAiAAQQU6AJQCDAoLIAAoAtwBIgFBA24iAiAAKAKIAiAAKAKQAmsiBkkEQCACIQYgAUGAgAxJDQ8LQYCABCAGIAZBgIAETxsiBEEDbCIHIAAoAugBIgFLBEAgASECIAcgAWsiCCAAKALgASABa0sEQCAUIAEgCEEEQQQQ0AUgACgC6AEhAgsgACgC5AEiAyACQQJ0aiEFIAhBAk8EfyAHIAFBf3NqQQJ0IgEEQCAFQQAgAfwLAAsgAiAIaiIBQQFrIQIgAyABQQJ0akEEawUgBQtBADYCACAAIAJBAWoiATYC6AELAkACQAJAAkACQAJAAkACQAJAAkAgBgRAQQEgBCAEQQFNG0EDbCEFQQAhAUEIIQIDQCABIAAoAtwBIgNPDQIgASAAKALoASIDTw0DIAAoAuQBIAJqQQhrIAAoAtgBIAFqLQAAs0MAAIA9lEMAACDBkhCmBDgCACABQQFqIgggACgC3AEiA08NBCAIIAAoAugBIgNPDQUgACgC5AEgAmpBBGsgACgC2AEgAWpBAWotAACzQwAAgD2UQwAAIMGSEKYEOAIAIAFBAmoiCCAAKALcASIDTw0GIAggACgC6AEiA08NByAAKALkASACaiAAKALYASABakECai0AALNDAACAPZRDAAAgwZIQpgQ4AgAgAkEMaiECIAUgAUEDaiIBRw0ACyAAKALoASEBCyAAIAAoApACIAQgACgC5AEgARDiAyAAKALcASICIAdJDQYgAEEANgLcASACIAdrIQEgBkUNByACIAdGDQkgAUUNCCAAKALYASICIAIgB2ogAfwKAAAMCAsgASADQbijwQAQvwcACyABIANByKPBABC/BwALIAggA0HYo8EAEL8HAAsgCCADQeijwQAQvwcACyAIIANB+KPBABC/BwALIAggA0GIpMEAEL8HAAsgByACQdyrxwAQogoACyACIAdGDQELIAAgATYC3AELIAAgACgCkAIgBGoiAjYCkAIgAiAAKAKIAkcNCSAAQQA2ApACIABBBDoAlAIMCQsgACgC3AEiAUEDbiICIAAoAogCIAAoApACayIGSQRAIAIhBiABQYCADEkNDgtBgIAEIAYgBkGAgARPGyIEQQNsIgcgACgC6AEiAUsEQCABIQIgByABayIIIAAoAuABIAFrSwRAIBQgASAIQQRBBBDQBSAAKALoASECCyAAKALkASIDIAJBAnRqIQUgCEECTwR/IAcgAUF/c2pBAnQiAQRAIAVBACAB/AsACyACIAhqIgFBAWshAiADIAFBAnRqQQRrBSAFC0EANgIAIAAgAkEBaiIBNgLoAQsCQAJAAkACQAJAAkACQAJAAkACQCAGBEBBASAEIARBAU0bQQNsIQVBACEBQQghAgNAIAEgACgC3AEiA08NAiABIAAoAugBIgNPDQMgACgC5AEgAmpBCGsgACgC2AEgAWotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAFBAWoiCCAAKALcASIDTw0EIAggACgC6AEiA08NBSAAKALkASACakEEayAAKALYASABakEBai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUECaiIIIAAoAtwBIgNPDQYgCCAAKALoASIDTw0HIAAoAuQBIAJqIAAoAtgBIAFqQQJqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACACQQxqIQIgBSABQQNqIgFHDQALIAAoAugBIQELIAAgACgCkAIgBCAAKALkASABEKsEIAAoAtwBIgIgB0kNBiAAQQA2AtwBIAIgB2shASAGRQ0HIAIgB0YNCSABRQ0IIAAoAtgBIgIgAiAHaiAB/AoAAAwICyABIANB2KLBABC/BwALIAEgA0HoosEAEL8HAAsgCCADQfiiwQAQvwcACyAIIANBiKPBABC/BwALIAggA0GYo8EAEL8HAAsgCCADQaijwQAQvwcACyAHIAJB3KvHABCiCgALIAIgB0YNAQsgACABNgLcAQsgACAAKAKQAiAEaiICNgKQAiACIAAoAogCRw0IIABBADYCkAIgAEEDOgCUAgwICyAAKALcASICIAAoAogCIAAoApACayIGSQRAIAIiBkGAgARJDQ0LQYCABCAGIAZBgIAETxsiBCAAKALoASIBSwRAIAEhAiAEIAFrIgggACgC4AEgAWtLBEAgFCABIAhBBEEEENAFIAAoAugBIQILIAAoAuQBIgMgAkECdGohBSAIQQJPBH8gBCABQX9zakECdCIBBEAgBUEAIAH8CwALIAIgCGoiAUEBayECIAMgAUECdGpBBGsFIAULQQA2AgAgACACQQFqIgE2AugBCwJAAkACQAJAAkACQCAGBEBDAACAP0MAAABAIAAsAJYCQQBOGyEaQQEhA0EBIAQgBEEBTRshBUEAIQEDQCABIAAoAtwBIgJPDQIgASAAKALoASICTw0DIAAoAuQBIAFBAnRqIBogACgC2AEgAWotAACzQwAAf0OVlDgCACADIgFBAWohAyABIAVHDQALIAAoAugBIQELIAAgACgCkAIgBCAAKALkASABEK8DIAAoAtwBIgIgBEkNAiAAQQA2AtwB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ApACIAAoApgCayIGSQRAIAIhBiABQYCADEkNEwtBgIAEIAYgBkGAgARPGyIEQQNsIgcgACgC8AEiAUsEQCABIQIgByABayIIIAAoAugBIAFrSwRAIBQgASAIQQRBBBDQBSAAKALwASECCyAAKALsASIDIAJBAnRqIQUgCEECTwR/IAcgAUF/c2pBAnQiAQRAIAVBACAB/AsACyACIAhqIgFBAWshAiADIAFBAnRqQQRrBSAFC0EANgIAIAAgAkEBaiIBNgLwAQsCQAJAAkACQAJAAkACQAJAAkACQCAGBEBBASAEIARBAU0bQQNsIQVBACEBQQghAgNAIAEgACgC5AEiA08NAiABIAAoAvABIgNPDQMgACgC7AEgAmpBCGsgACgC4AEgAWotAACzQwAAgD2UQwAAIMGSEKYEOAIAIAFBAWoiCCAAKALkASIDTw0EIAggACgC8AEiA08NBSAAKALsASACakEEayAAKALgASABakEBai0AALNDAACAPZRDAAAgwZIQpgQ4AgAgAUECaiIIIAAoAuQBIgNPDQYgCCAAKALwASIDTw0HIAAoAuwBIAJqIAAoAuABIAFqQQJqLQAAs0MAAIA9lEMAACDBkhCmBDgCACACQQxqIQIgBSABQQNqIgFHDQALIAAoAvABIQELIAAgACgCmAIgBCAAKALsASABEKoCIAAoAuQBIgIgB0kNBiAAQQA2AuQBIAIgB2shASAGRQ0HIAIgB0YNCSABRQ0IIAAoAuABIgIgAiAHaiAB/AoAAAwICyABIANBuKPBABC/BwALIAEgA0HIo8EAEL8HAAsgCCADQdijwQAQvwcACyAIIANB6KPBABC/BwALIAggA0H4o8EAEL8HAAsgCCADQYikwQAQvwcACyAHIAJB3KvHABCiCgALIAIgB0YNAQsgACABNgLkAQsgACAAKAKYAiAEaiICNgKYAiACIAAoApACRw0NIABBADYCmAIgAEEEOgCcAgwNCyAAKALkASIBQQNuIgIgACgCkAIgACgCmAJrIgZJBEAgAiEGIAFBgIAMSQ0SC0GAgAQgBiAGQYCABE8bIgRBA2wiByAAKALwASIBSwRAIAEhAiAHIAFrIgggACgC6AEgAWtLBEAgFCABIAhBBEEEENAFIAAoAvABIQILIAAoAuwBIgMgAkECdGohBSAIQQJPBH8gByABQX9zakECdCIBBEAgBUEAIAH8CwALIAIgCGoiAUEBayECIAMgAUECdGpBBGsFIAULQQA2AgAgACACQQFqIgE2AvABCwJAAkACQAJAAkACQAJAAkACQAJAIAYEQEEBIAQgBEEBTRtBA2whBUEAIQFBCCECA0AgASAAKALkASIDTw0CIAEgACgC8AEiA08NAyAAKALsASACakEIayAAKALgASABai0AALNDAAB/Q5VDAAAAv5JDjLjwP5RDAAAAP5I4AgAgAUEBaiIIIAAoAuQBIgNPDQQgCCAAKALwASIDTw0FIAAoAuwBIAJqQQRrIAAoAuABIAFqQQFqLQAAs0MAAH9DlUMAAAC/kkOMuPA/lEMAAAA/kjgCACABQQJqIgggACgC5AEiA08NBiAIIAAoAvABIgNPDQcgACgC7AEgAmogACgC4AEgAWpBAmotAACzQwAAf0OVQwAAAL+SQ4y48D+UQwAAAD+SOAIAIAJBDGohAiAFIAFBA2oiAUcNAAsgACgC8AEhAQsgACAAKAKYAiAEIAAoAuwBIAEQtgIgACgC5AEiAiAHSQ0GIABBADYC5AEgAiAHayEBIAZFDQcgAiAHRg0JIAFFDQggACgC4AEiAiACIAdqIAH8CgAADAgLIAEgA0HYosEAEL8HAAsgASADQeiiwQAQvwcACyAIIANB+KLBABC/BwALIAggA0GIo8EAEL8HAAsgCCADQZijwQAQvwcACyAIIANBqKPBABC/BwALIAcgAkHcq8cAEKIKAAsgAiAHRg0BCyAAIAE2AuQBCyAAIAAoApgCIARqIgI2ApgCIAIgACgCkAJHDQwgAEEANgKYAiAAQQM6AJwCDAwLIAAoAuQBIgIgACgCkAIgACgCmAJrIgZJBEAgAiIGQYCABEkNEQtBgIAEIAYgBkGAgARPGyIEIAAoAvABIgFLBEAgASECIAQgAWsiCCAAKALoASABa0sEQCAUIAEgCEEEQQQQ0AUgACgC8AEhAgsgACgC7AEiAyACQQJ0aiEFIAhBAk8EfyAEIAFBf3NqQQJ0IgEEQCAFQQAgAfwLAAsgAiAIaiIBQQFrIQIgAyABQQJ0akEEawUgBQtBADYCACAAIAJBAWoiATYC8AELAkACQAJAAkACQAJAIAYEQEMAAIA/QwAAAEAgACwAngJBAE4bIRpBASEDQQEgBCAEQQFNGyEFQQAhAQNAIAEgACgC5AEiAk8NAiABIAAoAvABIgJPDQMgACgC7AEgAUECdGogGiAAKALgASABai0AALNDAAB/Q5WUOAIAIAMiAUEBaiEDIAEgBUcNAAsgACgC8AEhAQsgACAAKAKYAiAEIAAoAuwBIAEQsQIgACgC5AEiAiAESQ0CIABBADYC5AEgAiAEayEBIAZFDQMgAiAERg0FIAFFDQQgACgC4AEiAiACIARqIAH8CgAADAQLIAEgAkG4osEAEL8HAAsgASACQciiwQAQvwcACyAEIAJB3KvHABCiCgALIAIgBEYNAQsgACABNgLkAQsgACAAKAKYAiAEaiICNgKYAiACIAAoApACRw0LIABBADYCmAIgAEECOgCcAgwLCyAIRQ0AQQEgAC0AnQJ0syEaQQkhAUEAIQZBACEDQQAhAgNAIAFBBmsiBCAAKALkASIFSw0EIAIgACgC8AEiBU8NBiAAKALsASADaiAAKALgASABaiIFQQdrLQAAIgRBEHQgBUEJay0AAHIgBUEIay0AAEEIdHIiBUGAgIB4ciAFIATAQQBIG7IgGpU4AgAgAUEDayIEIAAoAuQBIgVLDQUgAkEBaiIEIAAoAvABIgVPDQggACgC7AEgA2pBBGogACgC4AEgAWoiBUEEay0AACIEQRB0IAVBBmstAAByIAVBBWstAABBCHRyIgVBgICAeHIgBSAEwEEASBuyIBqVOAIAIAEgACgC5AEiBUsNByACQQJqIgQgACgC8AEiBU8NAiAAKALsASADakEIaiAAKALgASABaiIFQQFrLQAAIgRBEHQgBUEDay0AAHIgBUECay0AAEEIdHIiBUGAgIB4ciAFIATAQQBIG7IgGpU4AgAgAUEJaiEBIANBDGohAyACQQNqIQIgBkEBaiIGIA9JDQALCyAAIAAoApgCIA8gACgC7AEgACgC8AEQ1QUgACgC5AEiAiANIA9sIgNJDRMgAEEANgLkASACIANrIQEgCEUNASACIANGDQggAUUNByAAKALgASICIAIgA2ogAfwKAAAMBwsgBCAFQaiiwQAQvwcACyACIANHDQUMBgsgBCAFQdihwQAQogoACyAEIAVB+KHBABCiCgALIAIgBUHoocEAEL8HAAsgASAFQZiiwQAQogoACyAEIAVBiKLBABC/BwALIAAgATYC5AELIAAgACgCmAIgD2oi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A0IBNwLsASADIAGtQoCAgIAghDcDiAIgAyADQYgCajYC6AEgA0HwAGoiASADQeABahDiBCABEMMHDAULQfykyAAQtwgAC0EAIQEgBCEFA0AgBUUNAiACLQAAQTBrIglBCUsEQEEBEIYIDAULQQIhBCABrUIKfiIeQiCIpw0BIAJBAWohAiAFQQFrIQUgCSAepyIGaiIBIAZPDQALCyAEEIYIDAILIAxBAE4EQAJAIAxFBEBBASECDAELIAwQfiICRQ0OCyAMBEAgAiALIAz8CgAACyADQQA2AjQgAyABNgIwIANBADYCLCADQoCAgIDAADcCJCADIAw2AiAgAyACNgIcIAMgDDYCGAwDC0H8pMgAELcIAAsgA0EBNgLkASADQdjexwA2AuABIANCATcC7AEgAyADQegAaq1CgICAgCCENwOIAiADIANBiAJqNgLoASADQZQBaiIBIANB4AFqEOIEIAEQwwcLIQEgAEGAgICAeDYCrAEgACABNgIAIA1FDQcgCiANQQN0QQQQ1gcMBwsCQCANBEAgCkEEaygCACIBQXhxIgQgDUEDdCICQQRBCCABQQNxIgEbakkNDiABQQAgBCACQSdqSxsNASAKELQCCyADKAJgIQ4gAygCVCEJIAMoAkQhBiADLQBdQQFxRQ0FDAYLDA0LIAEhB0EAIQwgAQshAiAIIAtGDQALAkACQCANIA9HBEAgDSECDAELIA1BAXRBASANGyICQYCAgIABTw0BQQQgAiACQQRNGyICQQN0IQUCfyANBEAgCiANQQN0QQQgBRDQAgwBCyAFEH4LIgpFDQgLIAogD0EDdGoiBSALIAhrNgIEIAUgCCASajYCACAPQQFqIQ8gAiENDAELCwtB/KHIABC3CAALIAMoAhghAiADQYCAgIB4NgIYIAJBgICAgHhHBEAgAygCFCIBIAMoAgxGBEAgA0EMakHA28cAELQGCyADKAIQIAFBBXRqIgQgAjYCACAEIBUpAgA3AgQgBEEMaiAVQQhq/QACAP0LAgAgBEEcaiAVQRhqKAIANgIAIAMgAUEBajYCFAsgHA0BIANBADYCSCADQQE2AjwgA0Ho28cANgI4IANCBDcCQCADQThqEMcHIQEgAEGAgICAeDYCrAEgACABNgIACwJAIAMoAhgiAEGAgICAeEYNACAABEAgAygCHCAAQQEQ1gcL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AygAJCIGQYCAgP57IAZB/////wdxGzYCICABIAMoACgiBkGAgID+AyAGQf////8HcRs2AiQgBEEobEGgiMEAaiEPIAJBgCBrQQp2QQFqIRFBACEGIClBCnRBgCBqIiohBAJAA0ACQCAIIClHBEAgESAIQQFqIghHDQEgAUEANgJAIAFBATYCNCABQciPwQA2AjAgAUIENwI4IAFBMGoQxQchAwwECyABQQA6ADggASAGNgI0IAEgDTYCMCAAIAFBMGoQhgQgKUUNAkGAICErQQEhLgJAA0AgKyIEQYAIaiIrIAAoAswBIgNLBEAgAUEANgJAIAFBATYCNCABQciPwQA2AjAgAUIENwI4IAFBMGoQxQchAwwGCyAAKALIASIGIARqIgJBGGooAAAiEkUEQCAPKAIkIRILIAMgBEEkciINSQRAIAFBADYCQCABQQE2AjQgAUHkrcEANgIwIAFCBDcCOCABQTBqEMUHIQMMBgsgAyAEQShyIhFJBEAgAUEANgJAIAFBATYCNCABQeStwQA2AjAgAUIENwI4IAFBMGoQxQchAwwGCyADIARBKnJJBEAgAUEANgJAIAFBATYCNCABQeStwQA2AjAgAUIENwI4IAFBMGoQxQchAwwGCyACQQRqKAAAIQRBACEIIA8oAgggDygCACAPKAIEamogBiARai8AACIiQQNNBH8gIkECdEGYicEAaigCAAUgCAsgDygCEGxqQQRqIjWtIAStfiI7QiCIUEUEQCABQQA2AkAgAUEBNgI0IAFBxInBADYCMCABQgQ3AjggAUEwahDFByEDDAYLAkAgAyAqIgQgBiANaigAACIwQQJ0IgkgAkEMaigAACINIAJBFGovAABsamoiESA7pyIHaiIqTwRAIAIoAAAhCCACQRBqKgAAITggAkEIaigAACEvIAJBIGooAAAhGyANRQRAQQAhHgwCCyADIAQgCWoiAiANQQxsak8EQCACIAZqIR4gDUEDbCEfDAILIAFBADYCQCABQQE2AjQgAUHsjsEANgIwIAFCBDcCOCABQTBqEMUHIQMMBwsgAUEANgJAIAFBATYCNCABQYyPwQA2AjAgAUIENwI4IAFBMGoQxQchAwwGCwJAAkAgESAqTQRAAkAgCEEDbCINQf////8DSw0AIAhBDGwiAkH9////B08NAAJAAkACQAJAAkACfyAC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AUGDgICAeEYEQAJAIAAoAvAEIgZBBEkNAAJAAkAgACgC7AQiBC8AACAELQACQRB0ckHw2OUDRgRAIAZBC0kNAyAGQQprIQNBACEBAkADQCABIARqQYyVwQBBCxCQCEUNASADIAFBAWoiAUcNAAsgBkH//wNNDQQgAkEANgLYByACQQE2AswHIAJBhJXBADYCyAcgAkIENwLQByACQcgHahDFByEDDAkLIAEgBksNASACQcgHaiAEIAEQnwMgAikCzAchLCACKALIBwRAICwQggghAwwJCyACQcgHaiAspyAsQiCIpxBPIAIoAsgHIQMgAigC9AgiBEGAgICAeEYEQCADRQ0EDAkLIAJBBHIgAkHIB2oiCEEEckGoAfwKAAAgAiAC/QAD+Aj9CwOwASACIAQ2AqwBIAIgAzYCAAJAAkACQCACLQC5ASIJRQRAIAJB8ABqIQUgAi0AuAENASACKAKoASEGIAIoApQBIQQgAkGIBmoiAyAFEO0DIAggBiAEIAMQowEgAigCyAchBSACKAKkDCIMQYCAgIB4Rg0DIAIoAswHIQMgAkH4BGogAkHQB2pBjAH8CgAAIAIpA+AIISwgAigC3AghDiACQagDaiACQegIakHMAfwKAAAgAigCuAohCiACKAK0CiELIAJBmAJqIAJBvApqQZAB/AoAACACKALMCyENIAJBwAFqIAJB0AtqQdQA/AoAACACKQOoDCEtIAJBADoA0AcgAiANNgLMByACIAY2AsgHIABB9ARqIAgQzAQMBgsgAkGIBmoiAyACQcAB/AoAACACQcgHaiADEHYgAigCzAchAyACKALIByIFQYCAgIB4Rw0BIANFDQYMCwsgAigCqAEhCCACKAKUASEGIAJBiAZqIgMgBRDtAyACQcgHaiIEIAggBiADEJcCIAIoAsgHIQUgAigC3AgiDkGAgICAeEYNASACKALMByEDIAJB+ARqIAJB0AdqQYwB/AoAACACKQPgCCEsIAJBADoA0AcgAkEANgLMByACIAg2AsgHIABB9ARqIAQQzARBgICAgHghDAwECyACQfgEaiACQdAHakGMAfwKAAAgAikC4AghLCACKALcCCEOIAJBqANqIAJB6AhqQcwB/AoAACACKAK0CiELIAIoArgKIQogAkEAOgDQByACIAo2AswHIAIgCzYCyAcgAEH0BGogAkHIB2oQzARBgoCAgHghDAwDCyACEMgDIAUiAw0IDAMLIAJBADYC2AcgAkEBNgLMByACQdyFwQA2AsgHIAJCBDcC0AcgAkHIB2oQxQchAwwHCyABIAZB4JTBABCiCgALIAAoAvAEIgQgAUELaiIGSQ0CIABBADYC8AQgBCAGRwRAIAQgBmsiBARAIAAoAuwEIgEgASAGaiAE/AoAAAsgACAENgLwBAsCQCAAKALcBCIBQYOAgIB4Rg0AAkACQAJAQQEgAUGAgICAeHMgAUEAThsOAgECAAsgABDJAQwCCyAAEO4DDAELIAAQ1AILIAAgAzYCBCAAIAU2AgAgAEEIaiACQfgEakGMAfwKAAAgACAsNwOYASAAIA42ApQBIABBoAFqIAJBqANqQcwB/AoAACAAIAo2AvACIAAgCzYC7AIgAEH0AmogAkGYAmpBkAH8CgAAIAAgDTYChAQgAEGIBGogAkHAAWpB1AD8CgAAIAAgLTcD4AQgACAMNgLcBCAJDQAgAhDIAwtBACEDIAAoAtwEIgFBg4CAgHhGDQQLAkAgAUGAgICAeHNBASABQQBIIgMbQQFrDgIDAgALIAFBgICAgHhGBEACQAJAAkACQAJAIAAoAlwiAQRAIAAoAvAEIQUgAEH0BGohEyAAQZQBaiEQIABBiAFqIREgACgCYCEDQQAhCANAQYCABCEKAkACQAJAIAUgCGsiCSABbiIGIAAoAlgiBCADayIBQQAgASAETRsiASABIAZLGyIBQYCABEsNACABIgoNACAFIAhJDQFBACEDIABBADYC8AQCQCAIBEAgBSAIRg0QIAlFDQEgACgC7AQiASABIAhqIAn8CgAAIAAgCTYC8AQMEAsgBSAIRg0PCyAAIAk2AvAEDA4LIAAgChDGAkF8IQ5BACEBQQMhBUF9IQxBACEDQQAhCwJAA0AgACgCKCAALQAsIAAoAuwEIAAoAvAEIAAoAlwgC2wgCGoiEhCxBCEoAkACQAJ/IAVBA2siDyAAKAJsIg1PBEAgDwwBCyAAKAJoIAFqICg4AgAgACgCMCAALQA0IAAoAuwEIAAoAvAEIBIQsQQhKCAFQQJrIgkgACgCbCINSQRAIAAoAmggAWpBBGogKDgCACAAKAI4IAAtADwgACgC7AQgACgC8AQgEhCxBCEoIAVBAWsiBiAAKAJsIg1JBEAgACgCaCABakEIaiAoOAIAQwAAgD8hKCAALQAkIgRBCEcNAwwECyAFQQFrDAELIAVBAmsLIA1BuJjBABC/BwALIAAoAiAgBCAAKALsBCAAKALwBCASELEEISgLAkACfwJAIAAoAngiBCALSwRAIAAoAnQgA2ogKDgCACAAKAJAIAAtAEQgACgC7AQgACgC8AQgEhCxBCEoIA8gACgChAEiDUkNASAFQQNrDAILIAsgBEGYmMEAEL8HAAsgACgCgAEgAWogKDgCACAAKAJIIAAtAEwgACgC7AQgACgC8AQgEhCxBCEoIAAoAoQBIg0gCUsEQCAAKAKAASABakEEaiAoOAIAIAAoAlAgAC0AVCAAKALsBCAAKALwBCASELEEISggBiAAKAKEASINSQ0CIAVBAWsMAQsgBUECawsgDUGomMEAEL8HAAsgACgCgAEgAWpBCGogKDgCACAAKAKQASIEIAVPBEAgACAPNgKQASACQe+kjNQDNgLsByACQu+kjNTzzcTBOjcC5AcgAkKAgICAMDcC3AcgAiAFNgLUByACIBE2AtAHIAIgBCAMajYC2AcgAkHIB2oiBhCmAiADQQRqIgQgACgCnAEiCUsNAiAAIAM2ApwBIAL9DAAAAAAAAAAAAAAAAAAAgD/9CwLkByACQoCAgIDAADcC3AcgAiAENgLUByACIBA2AtAHIAIgCSAOajYC2AcgDEEDayEMIAVBA2ohBSABQQxqIQEgDkEEayEOIAYQpgIgBCEDIAtBAWoiCyAKTw0EDAELCyAFIARB3KvHABCiCgALIAQgCUHcq8cAEKIKAAsgCCAFQdyrxwAQogoACyAKQQNsIg8gACgCbCIBSw0CIAogACgCeCIBSw0DIA8gACgChAEiAUsNBCAPIAAoApABIgFLDQUgCkECdCIJIAAoApwBIgFLDQYgACgCYCEFIAAoAmghBiAAKAJ0IQQgACgCgAEhAyAAKAKMASEBIAJCBDcCkAggAkICNwKICCACQgQ3AoAIIAJCBDcC+AcgAkIENwLwByACIAk2AuwHIAIgDzYC5AcgAiABNgLgByACIA82AtwHIAIgAzYC2AcgAiAKNgLUByACIAQ2AtAHIAIgDzYCzAcgAiAGNgLIByACIAAoApgBNgLoByATIAUgCiACQcgHahCoASAAIAAoAmAgCmoiAzYCYCAAKAJcIgEgCmwgCGohCCAAKALwBCEFIAENAAsLQbiXwQAQuQgACyAPIAFByJfBABCiCgALIAogAUHYl8EAEKIKAAsgDyABQeiXwQAQogoACyAPIAFB+JfBABCiCgALIAkgAUGImMEAEKIKAAtB+P/GAEEoQciYwQAQoggACyAGIARB3KvHABCiCgALAkACQAJAIAFBgoCAgHhGBEAgACgC6AIiAyAAKAIISQ0BIAAoAvAEIQFBACEDIABBADYC8AQgAQ0CDAULQfj/xgBBKEH4mcEAEKIIAAsgAEH0BGohCEEAIQsCQAJAA0ACQCAAKAIEIANBBnRqIgUoAiQiEARAIBAgACgC8AQiDSALayIDTQ0BDAQLQdiYwQAQuQgACyAFLQA8IQpBgIAEIQEgAyAQbiIGIAUoAiAiBCAFKAI4IhFrIgNBACADIARNGyIDIAMgBksbIgNBgIAETQRAIAMiAUUNAwsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIApBAWsOAwIBDQALIAAgASALIBAgACgC7AQgDRC2AwwMCyAAKAKEAUGAgICAeEcNAQwLCyAAIAEgESALIBAgACgC7AQgDRD0ASIDDREgAUEDbCIJIAAoAiAiA0sNASABIAAoAiwiA0sNAiAJIAAoAjgiA0sNAyAJIAAoAkQiA0sNBCABQQJ0IgUgACgCUCIDSw0FIAAoAhwhCiAAKAIoIQYgACgCNCEEIAAoAkAhAyACQgQ3ApAIIAJCAjcCiAggAkIENwKACCACQgQ3AvgHIAJCBDcC8AcgAiAFNgLsByACIAk2AuQHIAIgAzYC4AcgAiAJNgLcByACIAQ2AtgHIAIgATYC1AcgAiAGNgLQByACIAk2AswHIAIgCjYCyAcgAiAAKAJMNgLoByAIIBEgASACQcgHahCoAQwKCyAAIAEgCyAQIAAoAuwEIA0Q9gEgAUEJbCIJIAAoAlwiA0sNBSAAKAJYIQUgACgC8AIiBkECSQ0IIAFBD2wiCiAAKAJoIgNLDQYgACgCZCEEAn8gBkECRgRAQQAhDEEEDAELIAFBFWwiDCAAKAJ0IgNLDQggACgCcAshAyAIIBEgASAFIAkQ9wMgCCARIAEgBCAKEIgEIAxFDQkgCCARIAEgAyAMEIkEDAkLIAkgA0HomMEAEKIKAAsgASADQfiYwQAQogoACyAJIANBiJnBABCiCgALIAkgA0GYmcEAEKIKAAsgBSADQaiZwQAQogoACyAJIANBuJnBABCiCgALIAogA0HImcEAEKIKAAsgDCADQdiZwQAQogoACyAIIBEgASAFIAkQ9wMLIAAoAugCIgQgACgCCCIDTw0BIAAoAgQgBEEGdGoiBiAGKAI4IAFqIgQ2AjggACgC6AIhAyAGKAIgIARGBEAgACADQQFqIgM2AugCCyABIBBsIAtqIQsgAyAAKAIISQ0ACyAAKALwBCENDAELIAQgA0HomcEAEL8HAAsgCyANSw0BQQAhAyAAQQA2AvAEIA0gC2shASALBEAgCyANRg0EIAEEQCAAKALsBCIEIAQgC2ogAfwKAAALIAAgATYC8AQMBAsgCyANRg0DCyAAIAE2AvAEDAILIAsgDUHcq8cAEKIKAAsgA0UEQAJAAkACQAJAAkACQAJAAkAgACgC/AMiAQRAIAAoAvAEIQUgAEH0BGohGyAAQUBrIRwgACgCgAQhAwNAQYCABCEIAkACQAJAAkACQCAFIBRrIgogAW4iBiAAKAL4AyIEIANrIgFBACABIARNGyIBIAEgBksbIgFBgIAESw0AIAEiCA0AIAUgFEkNAUEAIQMgAEEANgLwBAJAIBQEQCAFIBRGDRIgCkUNASAAKALsBCIBIAEgFGogCvwKAAAgACAKNgLwBAwSCyAFIBRGDRELIAAgCjYC8AQMEAsgACAIEOkBQQEhAUEAIQlBACEKQQAhBQJAA0AgASEGIAAoAqgDIAAtAKwDIAAoAuwEIAAoAvAEIAAoAvwDIAVsIBRqIgcQsQQhKCAFQQNsIgEgACgCkAQiDk8NEiABQQJ0Ig8gACgCjARqICg4AgAgACgCsAMgAC0AtAMgACgC7AQgACgC8AQgBxCxBCEoIAFBAWoiBCAAKAKQBCIOTwRAIAQhAQwTCyAEQQJ0IhMgACgCjARqICg4AgAgACgCuAMgAC0AvAMgACgC7AQgACgC8AQgBxCxBCEoIAFBAmoiAyAAKAKQBCIOTwRAIAMhAQwTCyADQQJ0IhAgACgCjARqICg4AgAgACgC8AMgAC0A9AMgACgC7AQgACgC8AQgBxCxBCEoIAAoApwEIhEgBU0EQCAFIBFBqJbBABC/BwALIAAoApgEIAVBAnRqQwAAgD8gKIwQpgRDAACAP5KVOAIAIAAoAtgDIAAtANwDIAAoAuwEIAAoAvAEIAcQsQQhKCABIAAoAqgEIg5PDQQgACgCpAQgD2ogKEO7bpA+lEMAAAA/kjgCACAAKALgAyAALQDkAyAAKALsBCAAKALwBCAHELEEISggACgCqAQiDiAETQRAIAQhAQwFCyAAKAKkBCATaiAoQ7tukD6UQwAAAD+SOAIAIAAoAugDIAAtAOwDIAAoAuwEIAAoAvAEIAcQsQQhKCAAKAKoBCIOIANNBEAgAyEBDAULIAAoAqQEIBBqIChDu26QPpRDAAAAP5I4AgAgACgCwAMgAC0AxAMgACgC7AQgACgC8AQgBxCxBCEoAkACQAJAAkACQCABIAAoArQEIg5PDQAgACgCsAQgD2ogKBCmBDgCACAAKALIAyAALQDMAyAAKALsBCAAKALwBCAHELEEISggACgCtAQiDiAEIgFNDQAgACgCsAQgE2ogKBCmBDgCACAAKALQAyAALQDUAyAAKALsBCAAKALwBCAHELEEISggACgCtAQiDiADIgFNDQAgACgCsAQgEGogKBCmBDgCACAAKAIgIAAtACQgACgC7AQgACgC8AQgBxCxBCEoIAAoAiggAC0ALCAAKALsBCAAKALwBCAHELEEISkgACgCMCAALQA0IAAoAuwEIAAoAvAEIAcQsQQhKiAAKAI4IAAtADwgACgC7AQgACgC8AQgBxCxBCErIAVBAnQiASAAKALABCIDSQ0BDAILIAEgDkH4lsEAEL8HAAsgACgCvAQgAUECdGogKCAoICiUICkgKZSSICogKpSSICsgK5SSkSIolTgCACABQQFyIgQgACgCwAQiA08EQCAEIQEMAQsgACgCvAQgBEECdGogKSAolTgCACABQQJyIgQgACgCwAQiA08EQCAEIQEMAQsgACgCvAQgBEECdGogKiAolTgCACABQQNyIgEgACgCwAQiA08NACAAKAK8BCABQQJ0aiArICiVOAIAIAAtAOQCIgFBCEcNAQwCCyABIANB6JbBABC/BwALIAAtAKQDIRUgACgCoAMgAC0AnAMhFyAAKAKYAyAALQCUAyEZIAAoApADIAAtAIwDIQsgACgCiAMgAC0AhAMhDiAAKAKAAyAALQD8AiESIAAoAvgCIAAtAPQCIRMgACgC8AIgAC0A7AIhESAAKALoAiAAKALgAiABIAAoAuwEIAAoAvAEIAcQsQQhKCAF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qAUgBEECdGogKDgCACAbIAAoAswFIAAoAtAFIAcQsQQhKCABQQVqIgQgACgCrAUiA08EQCAEIQEMBQsgACgCqAUgBEECdGogKDgCACAZIAAoAswFIAAoAtAFIAcQsQQhKCABQQZqIgQgACgCrAUiA08EQCAEIQEMBQsgACgCqAUgBEECdGogKDgCACAXIAAoAswFIAAoAtAFIAcQsQQhKCABQQdqIgQgACgCrAUiA08EQCAEIQEMBQsgACgCqAUgBEECdGogKDgCACAVIAAoAswFIAAoAtAFIAcQsQQhKCABQQhqIgEgACgCrAUiA08NBCAAKAKoBSABQQJ0aiAoOAIACyAALQDMAiIBQQhHBEAgAC0AvAMhHSAAKAK4AyAALQC0AyEfIAAoArADIAAtAKwDISEgACgCqAMgAC0ApAMhIyAAKAKgAyAALQCcAyElIAAoApgDIAAtAJQDIScgACgCkAMgAC0AjAMhFiAAKAKIAyAALQCEAyEYIAAoAoADIAAtAPwCIRogACgC+AIgAC0A9AIhDSAAKALwAiAALQDsAiELIAAoAugCIAAtAOQCIRAgACgC4AIgAC0A3AIhEiAAKALYAiAALQDUAiEEIAAoAtACIAAoAsgCIAEgACgCzAUgACgC0AUgBxCxBCEoIAVBD2wiASAAKAK4BSIFTw0CIAAoArQFIAFBAnRqICg4AgAgBCAAKALMBSAAKALQBSAHELEEISggAUEBaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANBAnRqICg4AgAgEiAAKALMBSAAKALQBSAHELEEISggAUECaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANBAnRqICg4AgAgECAAKALMBSAAKALQBSAHELEEISggAUEDaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANBAnRqICg4AgAgCyAAKALMBSAAKALQBSAHELEEISggAUEEaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANBAnRqICg4AgAgDSAAKALMBSAAKALQBSAHELEEISggAUEFaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANBAnRqICg4AgAgGiAAKALMBSAAKALQBSAHELEEISggAUEGaiIDIAAoArgFIgVPBEAgAyEBDAMLIAAoArQFIANB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a0EJEJAIDQggCCECA0ACQCABQS8gCyACENADQQEhHUEAISIgASgCAEEBcUUEQAwBCwJAIAEoAgQiAiAITw0AIAIgC2otAABBL0cNACABIAI2AqgEIAEgCzYCpAQgAUECNgLUAiABQciowQA2AtACIAFCATcC3AIgASABQaQEaq1CgICAgCCENwOoAiABIAFBqAJqNgLYAiABQeAAaiABQdACahDiBCABKAJgIgJBgICAgHhGDQEgASkCZCIpQiCIpyEJICmnIR0gAiEiDAELIAIgCE0NAQsLIAFB0AJqIAFBGGogCyAIEPAEIAFB2ABqIAFB4AJqKAIANgIAIAEgASkD2AI3A1ACQAJAIAEpA9ACIilCA1EEQCABQdAAahDCByECDAELIAFB9ABqIAFB5AJqQbQB/AoAACABQfAAaiABQdgAaigCADYCACABICk3A2AgASABKQNQNwNoIAFBADYCsAIgAUKAgICAEDcCqAIgAUHQAmogAUHgAGogAUGoAmoQogEgASgC0AJBAUYEQCABKQLUAhCDCCECIAEoAqgCIgAEQCABKAKsAiAAQQEQ1gcLIAFB4ABqEIgCDAELIAEoAqgCIScgASgCrAIhKCABKAKwAiECIAFB4ABqEIgCIAFBADYCsAIgASACNgKsAiABICg2AqgCIAFB0AJqIAFBqAJqEE4gASgC1AIhAgJAIAEoAtACIgRBgYCAgHhGBEAgAhDXByECDAELIAFB6ABqIAFB2AJqQcAB/AoAACABIAI2AmQgASAENgJgIAFB5ABqIQMgAQJ7QYDRyQAoAgBBAUYEQEGI0ckA/QADAAwBCyABQdACahDuBkGA0ckAQgE3AwBBkNHJACABKQPYAjcDACAB/QAE0AILIir9CwO4AkGI0ckAICr9HQBCAXw3AwAgAUGYpcgA/QADAP0LA6gCAkAgAUHgAGogHSAJIAFBGGogAUGoAmoiBRD/BCICBEAgBRCLBCAEQYCAgIB4Rw0BIAMQlAIMAgsgASABQagCajYCzAIgBEGAgICAeEcEQCABQdACaiABQeAAakHIAfwKAAAgASgCuAMiJUGAgICAeEYNBCABKALAA0ERRw0EIAEoAoADIQYgASgCvANBzqrBAEEREJAIDQRBACEJIAEoAvADIgVBgICAgHhGDQggASgClAQiAkEtTwRAQQMhCQwJCyAC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h8EANgLQAiABQgQ3AtgCIAFB0AJqEMUHIQILIAFBkAVqJAAgAgubNQMofwF+AXsjAEGQBWsiASQAAkACQCAAKAJIIgNBBE8EQCAAKAJEIgIoAABB0JaNIEcNASABQgA3AxAgASADNgIMIAEgAjYCCCABQdACaiABQQhqEDggAUE4aiIDIAFB3AJqKAIANgIAIAEgASkC1AI3AzAgASgC0AIiAkUEQCABQTBqEMIHIQIMAwsgAUEkaiADKAIANgIAIAEgASkDMDcCHCABIAEpA+ACIik3AyggASACNgIYAkACQCAppygCQCIRBEAgAUH0AGohBCABQegAaiEMIAFB5AJqISIgAUHYAmohDQNAIAFBADoAsAIgAUEANgKoAiABQdACaiABQRhqIB0gAUGoAmoQsgEgAUHIAGoiAiANQQhqKAIANgIAIAEgDSkDADcDQAJAAkACQAJAAkACQAJAAkAgASkD0AIiKUIDUgRAIAQgIkG0AfwKAAAgDEEIaiACKAIANgIAIAwgASkDQDcDACABICk3A2AgASgCaCABQeAAaiApQgJRGyICKAIsIghBAEgNASACKAIoIQICQCAIRQRAQQEhCgwBCyAIEH4iCkUNAwsgCARAIAogAiAI/AoAAAsgAUHgAGoQiAIgCEEJSQ0FQZiowQAgCCAKakEJa0EJEJAIDQYgCCECA0ACQCABQS8gCiACENADQQEhHUEAISIgASgCAEEBcUUEQAwBCwJAIAEoAgQiAiAITw0AIAIgCmotAABBL0cNACABIAI2AqgEIAEgCjYCpAQgAUECNgLUAiABQciowQA2AtACIAFCATcC3AIgASABQaQEaq1CgICAgCCENwOoAiABIAFBqAJqNgLYAiABQeAAaiABQdACahDiBCABKAJgIgJBgICAgHhGDQEgASkCZCIpQiCIpyELICmnIR0gAiEiDAELIAIgCE0NAQsLIAFB0AJqIAFBGGogCiAIEPAEIAFB2ABqIAFB4AJqKAIANgIAIAEgASkD2AI3A1ACQAJAIAEpA9ACIilCA1EEQCABQdAAahDCByECDAELIAFB9ABqIAFB5AJqQbQB/AoAACABQfAAaiABQdgAaigCADYCACABICk3A2AgASABKQNQNwNoIAFBADYCsAIgAUKAgICAEDcCqAIgAUHQAmogAUHgAGogAUGoAmoQogEgASgC0AJBAUYEQCABKQLUAhCDCCECIAEoAqgCIgAEQCABKAKsAiAAQQEQ1gcLIAFB4ABqEIgCDAELIAEoAqgCIScgASgCrAIhKCABKAKwAiECIAFB4ABqEIgCIAFBADYCsAIgASACNgKsAiABICg2AqgCIAFB0AJqIAFBqAJqEE4gASgC1AIhAgJAIAEoAtACIgRBgYCAgHhGBEAgAhDXByECDAELIAFB6ABqIAFB2AJqQcAB/AoAACABIAI2AmQgASAENgJgIAFB5ABqIQMgAQJ7QYDRyQAoAgBBAUYEQEGI0ckA/QADAAwBCyABQdACahDuBkGA0ckAQgE3AwBBkNHJACABKQPYAjcDACAB/QAE0AILIir9CwO4AkGI0ckAICr9HQBCAXw3AwAgAUGYpcgA/QADAP0LA6gCAkAgAUHgAGogHSALIAFBGGogAUGoAmoiBRD/BCICBEAgBRCLBCAEQYCAgIB4Rw0BIAMQlAIMAgsgASABQagCajYCzAIgBEGAgICAeEcEQCABQdACaiABQeAAakHIAfwKAAAgASgCuAMiJUGAgICAeEYNBCABKALAA0ERRw0EIAEoAoADIQYgASgCvANBzqrBAEEREJAIDQQCf0EAIAEoAvADIgVBgICAgHhGDQAaQQMgASgClAQiAkEsSw0AGkECIAJBF0sNABogAkEISwshCyABQQA6AKwEIAEgCzYCqAQgASAGNgKkBCAAIAFBpARqIgIQkwIgAiABQagCaiABKALUAiABKALYAhDJBCABKAKoBCEDAkAgASgCpAQiBEGAgICAeEYEQEEBIQcgAyECDAELIAFBpARqIAMgASgCrAQQQCABKAKoBCEOIAEoAqQEIg9BgICAgHhGBEBBKBB+IgJFDQkgAiAONgIkIAJBDzYCICACQd+qwQA2AhwgAkEDNgIEIAJBmILBADYCACAERQRAQQEhBwwCC0EBIQcgAyAEQQEQ1gcMAQsgASgCrAQhDCAEBEAgAyAEQQEQ1gcLIAFBpARqIAFBqAJqIAEoAuACIAEoAuQCEMkEIAEoAqgEIQNBASEHAkAgASgCpAQiBEGAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBBAIAEoAqgEIRIgASgCpAQiE0GAgICAeEYEQEEoEH4iAkUNCiACIBI2AiQgAkEPNgIgIAJB7qrBADYCHCACQQM2AgQgAkGYgsEANgIAIARFDQEgAyAEQQEQ1gcMAQsgASgCrAQhDSAEBEAgAyAEQQEQ1gcLIAFBpARqIAFBqAJqIAEoAowDIgkgASgCkAMQyQQgASgCqAQhAwJAIAEoAqQEIgRBgICAgHhGBEAgAyECDAELIAFBpARqIAMgASgCrAQQQCABKAKoBCEUIAEoAqQEIhVBgICAgHhGBEBBKBB+IgJFDQsgAiAUNgIkIAJBDTYCICACQf2qwQA2AhwgAkEDNgIEIAJBmILBADYCACAERQ0BIAMgBEEBENYHDAELIAEoAqwEIREgBARAIAMgBEEBENYHCyABQaQEaiABQagCaiABKAKwAyABKAK0AxDJBCABKAKoBCEDAkAgASgCpAQiHkGAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBBAIAEoAqgEIRYgASgCpAQiF0GAgICAeEYEQEEoEH4iAkUNDCACIBY2AiQgAkEMNgIgIAJBiqvBADYCHCACQQM2AgQgAkGYgsEANgIAIB5FDQEgAyAeQQEQ1gcMAQsgASgCrAQhBCAeBEAgAyAeQQEQ1gcLIAFBpARqIAFBqAJqIAEoAsgDIh4gASgCzAMQyQQgASgCqAQhAwJAIAEoAqQEIhBBgICAgHhGBEAgAyECDAELIAFBpARqIAMgASgCrAQQQCABKAKoBCEYIAEoAqQEIhlBgICAgHhGBEBBKBB+IgJFDQ0gAiAYNgIkIAJBCjYCICACQZarwQA2AhwgAkEDNgIEIAJBmILBADYCACAQRQ0BIAMgEEEBENYHDAELIAEoAqwEIQIgEARAIAMgEEEBENYHCyABQbwEaiAGQQNsIgNBoKvBABCZByABQcgEaiADQbCrwQAQmQcgAUHUBGogBkECdEHAq8EAEJkHIAFB4ARqIANB0KvBABCZByABQewEaiAGQeCrwQAQmQcCQAJAAkACQAJAIAtFBEAgAUEANgKABSABQoCAgIDAADcC+AQMAQsgAUH4BGogBkEJbEHwq8EAEJkHIAtBAUcNAQsgAUEANgKMBSABQoCAgIDAADcChAUMAQsgAUGEBWogBkEPbEGArMEAEJkHIAtBA0YNAQsgAUEANgKsBCABQoCAgIDAADcCpAQMAQsgAUGkBGogBkEVbEGQrMEAEJkHCyABQegCaiABQfQCaiAOIAwgEiANIAEoAsAEIh8gASgCxAQiDBDqAyABQZQDaiABQaADaiAUIBEgASgCzAQiICABKALQBCINEMgCIBYgBCABKALYBCIhIAEoAtwEIhEQwAMgAUHQA2ogAUHgA2ogGCACIAEoAuQEIiMgASgC6AQiBCABKALwBCIkIAEoAvQEIgMQjAIgASgCrAQhJiABKAKoBCEaIAEoAowFIQcgASgCiAUhGyABKAKABSEQIAEoAvwEIRwCQAJAIAVBgICAgHhGBEAgASgCpAQhBQwBCyABQfADaiABQcwCaiAGIAsgHCAQIBsgByAaICYQggEhAiABKAKkBCEFIAINAQsgACAGIAsgHyAMICAgDSAhIBEgIyAEICQgAyAcIBAgGyAHIBogJhCaAyAFBEAgGiAFQQJ0QQQQ1gcLIAEoAoQFIgAEQCAbIABBAnRBBBDWBwsgASgC+AQiAARAIBwgAEECdEEEENYHCyABKALsBCIABEAgJCAAQQJ0QQQQ1gcLIAEoAuAEIgAEQCAjIABBAnRBBBDWBwsgASgC1AQiAARAICEgAEECdEEEENYHCyABKALIBCIABEAgICAAQQJ0QQQQ1gcLIAEoArwEIgAEQCAfIABBAnRBBBDWBwsgGQRAIBggGUEBENYHCyAXBEAgFiAXQQEQ1gcLIBUEQCAUIBVBARDWBwsgEwRAIBIgE0EBENYHCyAPBEAgDiAPQQEQ1gcLIAFB0AJqEJEGIAEoAogDIgAEQCAJIABBARDWBwsgAUGsA2oQigZBACECIAEoAsQDIgBFDQ8gHiAAQQEQ1gcMDwsgBQRAIBogBUECdEEEENYHCyABKAKEBSIABEAgGyAAQQJ0QQQQ1gcLIAEoAvgEIgAEQCAcIABBAnRBBBDWBwsgASgC7AQiAARAICQgAEECdEEEENYHCyABKALgBCIABEAgIyAAQQJ0QQQQ1gcLIAEoAtQEIgAEQCAhIABBAnRBBBDWBwsgASgCyAQiAARAICAgAEECdEEEENYHCyABKAK8BCIABEAgHyAAQQJ0QQQQ1gcLQQAhByAZRQ0AIBggGUEBENYHCyAXRQ0AIBYgF0EBENYHCyAVRQ0AIBQgFUEBENYHCyATRQ0AIBIgE0EBENYHCyAPRQ0AIA4gD0EBENYHCyAHRSEADAgLIAFB0AJqIANBtAH8CgAAIAEoAoAEIQYCf0EAIAEoAtQDIhJBgICAgHhGDQAaQQMgAS0A+AMiAkECSw0AGkECIAJBAEcgAkECRhsLIQ4gAUEAOgCsBCABIA42AqgEIAEgBjYCpAQgACABQaQEaiICEJMCIAIgAUGoAmogASgC4AIiHiABKALkAhDJBCABKAKoBCEDQQEhBQJAIAEoAqQEIgRBgICAgHhGBEAgAyECDAELIAFBpARqIAMgASgCrAQQQCABKAKoBCETIAEoAqQEIhRBgICAgHhGBEBBKBB+IgJFDQggAiATNgIkIAJBDzYCICACQd+qwQA2AhwgAkEDNgIEIAJBmILBADYCACAERQ0BIAMgBEEBENYHDAELIAEoAqwEIQwgBARAIAMgBEEBENYHCyABQaQEaiABQagCaiABKALsAiABKALwAhDJBCABKAKoBCEDAkAgASgCpAQiBEGAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBBAIAEoAqgEIRUgASgCpAQiFkGAgICAeEYEQEEoEH4iAkUNCSACIBU2AiQgAkEPNgIgIAJB7qrBADYCHCACQQM2AgQgAkGYgsEANgIAIARFDQEgAyAEQQEQ1gcMAQsgASgCrAQhDSAEBEAgAyAEQQEQ1gcLIAFBpARqIAFBqAJqIAEoApADIAEoApQDEMkEIAEoAqgEIQMCQCABKAKkBCIEQYCAgIB4RgRAIAMhAgwBCyABQaQEaiADIAEoAqwEEEAgASgCqAQhFyABKAKkBCIYQYCAgIB4RgRAQSgQfiICRQ0KIAIgFzYCJCACQQ02AiAgAkH9qsEANgIcIAJBAzYCBCACQZiCwQA2AgAgBEUNASADIARBARDWBwwBCyABKAKsBCERIAQEQCADIARBARDWBwsgAUGkBGogAUGoAmogASgCqAMgASgCrAMQyQQgASgCqAQhAwJAIAEoAqQEIglBgICAgHhGBEAgAyECDAELIAFBpARqIAMgASgCrAQQQCABKAKoBCEZIAEoAqQEIhpBgICAgHhGBEBBKBB+IgJFDQsgAiAZNgIkIAJBDDYCICACQYqrwQA2AhwgAkEDNgIEIAJBmILBADYCACAJRQ0BIAMgCUEBENYHDAELIAEoAqwEIQQgCQRAIAMgCUEBENYHCyABQaQEaiABQagCaiABKALAAyABKALEAxDJBCABKAKoBCEDAkAgASgCpAQiCUGAgICAeEYEQCADIQIMAQsgAUGkBGogAyABKAKsBBBAIAEoAqgEIRsgASgCpAQiHEGAgICAeEYEQEEoEH4iAkUNDCACIBs2AiQgAkEKNgIgIAJBlqvBADYCHCACQQM2AgQgAkGYgsEANgIAIAlFDQEgAyAJQQEQ1gcMAQsgASgCrAQhAiAJBEAgAyAJQQEQ1gcLIAFBvARqIAZBA2wiA0HUrMEAEJkHIAFByARqIANB5KzBABCZByABQdQEaiAGQQJ0QfSswQAQmQcgAUHgBGogA0GErcEAEJkHIAFB7ARqIAZBlK3BABCZBwJAAkACQAJAAkAgDkUEQCABQQA2AoAFIAFCgICAgMAANwL4BAwBCyABQfgEaiAGQQlsQaStwQAQmQcgDkEBRw0BCyABQQA2AowFIAFCgICAgMAANwKEBQwBCyABQYQFaiAGQQ9sQbStwQAQmQcgDkECSw0BCyABQQA2AqwEIAFCgICAgMAANwKkBAwBCyABQaQEaiAGQRVsQcStwQAQmQcLIAFB9AJqIAFBgANqIBMgDCAVIA0gASgCwAQiIyABKALEBCIMEOoDIAEoApwDIAEoAqADIBcgESABKALMBCIkIAEoAtAEIg0QowMgGSAEIAEoAtgEIiUgASgC3AQiERDAAyABKALMAyABKALQAyAbIAIgASgC5AQiJiABKALoBCIEIAEoAvAEIgcgASgC9AQiAxDFAiABKAKsBCEQIAEoAqgEIR8gASgCjAUhBSABKAKIBSEgIAEoAoAFIQkgASgC/AQhIQJAAkAgEkGAgICAeEYEQCABKAKkBCEPDAELIAFB1ANqIAFBzAJqIAYgISAJICAgBSAfIBAQfSECIAEoAqQEIQ8gAg0BCyAAIAYgDiAjIAwgJCANICUgESAmIAQgByADICEgCSAgIAUgHyAQEJoDIA8EQCAfIA9BAnRBBBDWBwsgASgChAUiAARAICAgAEECdEEEENYHCyABKAL4BCIABEAgISAAQQJ0QQQQ1gcLIAEoAuwEIgAEQCAHIABBAnRBBBDWBwsgASgC4AQiAARAICYgAEECdEEEENYHCyABKALUBCIABEAgJSAAQQJ0QQQQ1gcLIAEoAsgEIgAEQCAkIABBAnRBBBDWBwsgASgCvAQiAARAICMgAEECdEEEENYHCyAcBEAgGyAcQQEQ1gcLIBoEQCAZIBpBARDWBwsgGARAIBcgGEEBENYHCyAWBEAgFSAWQQEQ1gcLIBQEQCATIBRBARDWBwsgAUHQAmoQkAYgAUGMA2oQiQYgAUGkA2oQigYgAUG8A2oQiQZBACECDA4LIA8EQCAfIA9BAnRBBBDWBwsgASgChAUiAARAICAgAEECdEEEENYHCyABKAL4BCIABEAgISAAQQJ0QQQQ1gcLIAEoAuwEIgAEQCAHIABBAnRBBBDWBwsgASgC4AQiAARAICYgAEECdEEEENYHCyABKALUBCIABEAgJSAAQQJ0QQQQ1gcLIAEoAsgEIgAEQCAkIABBAnRBBBDWBwsgASgCvAQiAARAICMgAEECdEEEENYHC0EAIQUgHEUNACAbIBxBARDWBwsgGkUNACAZIBpBARDWBwsgGEUNACAXIBhBARDWBwsgFkUNACAVIBZBARDWBwsgFEUNACATIBRBARDWBwsgASgC3AIiAARAIB4gAEEBENYHCyABKALoAiIABEAgASgC7AIgAEEBENYHCyABKAKMAyIABEAgASgCkAMgAEEBENYHCyABKAKYAyIABEAgASgCnAMgAEECdEEEENYHCyABKAKkAyIABEAgASgCqAMgAEEBENYHCyABKAKwAyIAQYCAgIB4ckGAgICAeEcEQCABKAK0AyAAQQEQ1gcLIAEoArwDIgAEQCABKALAAyAAQQEQ1gcLIAEoAsgDIgAEQCABKALMAyAAQQJ0QQQQ1gcLIAVFIBJBgICAgHhGcg0IIBIEQCABKALYAyASQQEQ1gcLIAEoAuADIgAEQCABKALkAyAAQQEQ1gcLIAEoAuwDIgBFDQggASgC8AMgAEECdEEEENYHDAgLIAFB4ABqENwCCyAnRQ0AICggJ0EBENYHCyAiBEAgHSAiQQEQ1gcLIAogCEEBENYHDAwLQQAhACABQQA2ArQEIAFBATYCqAQgAUHMrMEANgKkBCABQgQ3AqwEIAFBpARqEMUHIQIMAwsgAUFAaxDCByECDAoLQfykyAAQtwgLAAsgASgC0AIiAwRAIAEoAtQCIANBARDWBwsgASgC3AIiAwRAIAEoAuACIANBARDWBwsgASgCiAMiAwRAIAEoAowDIANBARDWBwsgASgCrAMiAwRAIAEoArADIANBARDWBwsgJUGAgICAeHJBgICAgHhHBEAgASgCvAMgJUEBENYHCyABKALEAyIDBEAgASgCyAMgA0EBENYHCyAAIAEoAvADIgBBgICAgHhGcg0AIAAEQCABKAL0AyAAQQEQ1gcLIAEoAvwDIgBFDQAgASgCgAQgAEEBENYHCyABQagCahCLBCAnBEAgKCAnQQEQ1gcLICIEQCAdICJBARDWBwsgCiAIQQEQ1gcgASgCKCIAIAAoAgAiAEEBazYCACAAQQFHDQogASgCKBCMAwwKCyAIRQ0CAkAgCkEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgCGpPBEAgAkUNAyADIAhBJ2pLDQEMAwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIApBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAhqSQ0FIAJFIAMgCEEnak1yDQBBoIzIAEEuQdCMyAAQoggACyAKELQCCyARIB1BAWoiHUcNAAsLIAFBADYC4AIgAUEBNgLUAiABQcCowQA2AtACIAFCBDcC2AIgAUHQAmoQxQchAgsgASgCKCIAIAAoAgAiAEEBazYCACAAQQFHDQMgASgCKBCMAwwDC0Hgi8gAQS5BkIzIABCiCAALIAFBADYC4AIgAUEBNgLUAiABQdyHwQA2AtACIAFCBDcC2AIgAUHQAmoQxQchAgwBCyABQQA2AuACIAFBATYC1AIgAUHAh8EANgLQAiABQgQ3AtgCIAFB0AJqEMUHIQILIAFBkAVqJAAgAgubNQMofwF+AXsjAEGQBWsiASQAAkACQCAAKAJoIgNBBE8EQCAAKAJkIgIoAABB0JaNIEcNASABQgA3AxAgASADNgIMIAEgAjYCCCABQdACaiABQQhqEDggAUE4aiIDIAFB3AJqKAIANgIAIAEgASkC1AI3AzAgASgC0AIiAkUEQCABQTBqEMIHIQIMAwsgAUEkaiADKAIANgIAIAEgASkDMDcCHCABIAEpA+ACIik3AyggASACNgIYAkACQCAppygCQCIRBEAgAUH0AGohBCABQegAaiEMIAFB5AJqISIgAUHYAmohDQNAIAFBADoAsAIgAUEANgKoAiABQdACaiABQRhqIB0gAUGoAmoQsgEgAUHIAGoiAiANQQhqKAIANgIAIAEgDSkDADcDQAJAAkACQAJAAkACQAJAAkAgASkD0AIiKUIDUgRAIAQgIkG0AfwKAAAgDEEIaiACKAIANgIAIAwgASkDQDcDACABICk3A2AgASgCaCABQeAAaiApQgJRGyICKAIsIghBAEgNASACKAIoIQICQCAIRQRAQQEhCgwBCyAIEH4iCkUNAwsgCARAIAogAiAI/AoAAAsgAUHgAGoQiAIgCEEJSQ0FQZiowQAgCCAKakEJa0EJEJAIDQYgCCECA0ACQCABQS8gCiACENADQQEhHUEAISIgASgCAEEBcUUEQAwBCwJAIAEoAgQiAiAITw0AIAIgCmotAABBL0cNACABIAI2AqgEIAEgCjYCpAQgAUECNgLUAiABQciowQA2AtACIAFCATcC3AIgASABQaQEaq1CgICAgCCENwOoAiABIAFBqAJqNgLYAiABQeAAaiABQdACahDiBCABKAJgIgJBgICAgHhGDQEgASkCZCIpQiCIpyELICmnIR0gAiEiDAELIAIgCE0NAQsLIAFB0AJqIAFBGGogCiAIEPAEIAFB2ABqIAFB4AJqKAIANgIAIAEgASkD2AI3A1ACQAJAIAEpA9ACIilCA1EEQCABQdAAahDCByECDAELIAFB9ABqIAFB5AJqQbQB/AoAACABQfAAaiABQdgAaigCADYCACABICk3A2AgASABKQNQNwNoIAFBADYCsAIgAUKAgICAEDcCqAIgAUHQAmogAUHgAGogAUGoAmoQogEgASgC0AJBAUYEQCABKQLUAhCDCCECIAEoAqgCIgAEQCABKAKsAiAAQQEQ1gcLIAFB4ABqEIgCDAELIAEoAqgCIScgASgCrAIhKCABKAKwAiECIAFB4ABqEIgCIAFBADYCsAIgASACNgKsAiABICg2AqgCIAFB0AJqIAFBqAJqEE4gASgC1AIhAgJAIAEoAtACIgRBgYCAgHhGBEAgAhDXByECDAELIAFB6ABqIAFB2AJqQcAB/AoAACABIAI2AmQgASAENgJgIAFB5ABqIQMgAQJ7QYDRyQAoAgBBAUYEQEGI0ckA/QADAAwBCyABQdACahDuBkGA0ckAQgE3AwBBkNHJACABKQPYAjcDACAB/QAE0AILIir9CwO4AkGI0ckAICr9HQBCAXw3AwAgAUGYpcgA/QADAP0LA6gCAkAgAUHgAGogHSALIAFBGGogAUGoAmoiBRD/BCICBEAgBRCLBCAEQYCAgIB4Rw0BIAMQlAIMAgsgASABQagCajYCzAIgBEGA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AgsgASgCKCIAIAAoAgAiAEEBazYCACAAQQFHDQMgASgCKBCMAwwDC0Hgi8gAQS5BkIzIABCiCAALIAFBADYC4AIgAUEBNgLUAiABQdyHwQA2AtACIAFCBDcC2AIgAUHQAmoQxQchAgwBCyABQQA2AuACIAFBATYC1AIgAUHAh8EANgLQAiABQgQ3AtgCIAFB0AJqEMUHIQILIAFBkAVqJAAgAgueNQMofwF+AXsjAEGQBWsiASQAAkACQCAAKALMASIDQQRPBEAgACgCyAEiAigAAEHQlo0gRw0BIAFCADcDECABIAM2AgwgASACNgIIIAFB0AJqIAFBCGoQOCABQThqIgMgAUHcAmooAgA2AgAgASABKQLUAjcDMCABKALQAiICRQRAIAFBMGoQwgchAgwDCyABQSRqIAMoAgA2AgAgASABKQMwNwIcIAEgASkD4AIiKTcDKCABIAI2AhgCQAJAICmnKAJAIhEEQCABQfQAaiEEIAFB6ABqIQ0gAUHkAmohIiABQdgCaiEOA0AgAUEAOgCwAiABQQA2AqgCIAFB0AJqIAFBGGogHSABQagCahCyASABQcgAaiICIA5BCGooAgA2AgAgASAOKQMANwNAAkACQAJAAkACQAJAAn8CQAJAAkAgASkD0AIiKUIDUgRAIAQgIkG0AfwKAAAgDUEIaiACKAIANgIAIA0gASkDQDcDACABICk3A2AgASgCaCABQeAAaiApQgJRGyICKAIsIghBAEgNASACKAIoIQICQCAIRQRAQQEhCwwBCyAIEH4iC0UNBwsgCARAIAsgAiAI/AoAAAsgAUHgAGoQiAIgCEEJSQ0HQZiowQAgCCALakEJa0EJEJAIDQggCCECA0ACQCABQS8gCyACENADQQEhHUEAISIgASgCAEEBcUUEQAwBCwJAIAEoAgQiAiAITw0AIAIgC2otAABBL0cNACABIAI2AqgEIAEgCzYCpAQgAUECNgLUAiABQciowQA2AtACIAFCATcC3AIgASABQaQEaq1CgICAgCCENwOoAiABIAFBqAJqNgLYAiABQeAAaiABQdACahDiBCABKAJgIgJBgICAgHhGDQEgASkCZCIpQiCIpyEJICmnIR0gAiEiDAELIAIgCE0NAQsLIAFB0AJqIAFBGGogCyAIEPAEIAFB2ABqIAFB4AJqKAIANgIAIAEgASkD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IAItACQiBHIhACAEQQFxIANBAUdyDRQoAgAiAC0ACkGAAXFFBEAgACgCAEHxwMUAQQIgACgCBCgCDBEAACEADBULIAAoAgBBkr3FAEEBIAAoAgQoAgwRAAAhAAwUC0EBIQAgASgCACIEQf3IxABBECABKAIEIgYoAgwiBREAAA0TIANBAWohAwJAIAEtAApBgAFxRQRAIARB+brFAEEBIAURAAANFSABKAIAIAMtAABBAnQiA0HUnckAaigCACADQbidyQBqKAIAIAEoAgQoAgwRAABFDQEMFQsgBEGMocIAQQIgBREAAA0UIAIgBjYCJCACIAQ2AiAgAkEBOgAQIAMtAABBAnQiA0HAm8kAaigCACEEIANB3JvJAGooAgAhAyACIAJBEGo2AiggAkEgaiIFIAMgBBDYAw0UIAVBg6HCAEECENgDDRQLIAEoAgBBpqHIAEEBIAEoAgQoAgwRAAAhAAwTCyABKAIAQZPExABBESABKAIEKAIMEQAAIQAMEgtBASEAIAIgA0EBajYCDCABKAIAIgNBjcnEAEEPIAEoAgQiBSgCDCIEEQAADRECQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADRMgAkEMaiABENUERQ0BDBMLIANBjKHCAEECIAQRAAANEiACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDRIgAigCIEGDocIAQQIgAigCJCgCDBEAAA0SCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMEQtBASEAIAIgA0EBajYCDCABKAIAIgNBnMnEAEEQIAEoAgQiBSgCDCIEEQAADRACQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADRIgAkEMaiABENUERQ0BDBILIANBjKHCAEECIAQRAAANESACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDREgAigCIEGDocIAQQIgAigCJCgCDBEAAA0RCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMEAtBASEAIAIgA0EBajYCDCABKAIAIgNBrMnEAEEQIAEoAgQiBSgCDCIEEQAADQ8CQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADREgAkEMaiABENUERQ0BDBELIANBjKHCAEECIAQRAAANECACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDRAgAigCIEGDocIAQQIgAigCJCgCDBEAAA0QCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMDwtBASEAIAIgA0EBajYCDCABKAIAIgNBvMnEAEEOIAEoAgQiBSgCDCIEEQAADQ4CQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADRAgAkEMaiABENUERQ0BDBALIANBjKHCAEECIAQRAAANDyACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQ8gAigCIEGDocIAQQIgAigCJCgCDBEAAA0PCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMDgtBASEAIAIgA0EBajYCDCABKAIAIgNBysnEAEELIAEoAgQiBSgCDCIEEQAADQ0CQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQ8gAkEMaiABENUERQ0BDA8LIANBjKHCAEECIAQRAAANDiACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQ4gAigCIEGDocIAQQIgAigCJCgCDBEAAA0OCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMDQtBASEAIAIgA0EBajYCDCABKAIAIgNB1cnEAEEaIAEoAgQiBSgCDCIEEQAADQwCQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQ4gAkEMaiABENUERQ0BDA4LIANBjKHCAEECIAQRAAANDSACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQ0gAigCIEGDocIAQQIgAigCJCgCDBEAAA0NCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMDAtBASEAIAIgA0EBajYCDCABKAIAIgNB78nEAEEYIAEoAgQiBSgCDCIEEQAADQsCQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQ0gAkEMaiABENUERQ0BDA0LIANBjKHCAEECIAQRAAANDCACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQwgAigCIEGDocIAQQIgAigCJCgCDBEAAA0MCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMCwtBASEAIAIgA0EBajYCDCABKAIAIgNBh8rEAEETIAEoAgQiBSgCDCIEEQAADQoCQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQwgAkEMaiABENUERQ0BDAwLIANBjKHCAEECIAQRAAANCyACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQsgAigCIEGDocIAQQIgAigCJCgCDBEAAA0LCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMCgtBASEAIAIgA0EBajYCDCABKAIAIgNBmsrEAEEWIAEoAgQiBSgCDCIEEQAADQkCQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQsgAkEMaiABENUERQ0BDAsLIANBjKHCAEECIAQRAAANCiACQQE6AB8gAiAFNgIUIAIgAzYCECACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEfajYCGCACIAJBEGo2AiAgAkEMaiACQSBqENUEDQogAigCIEGDocIAQQIgAigCJCgCDBEAAA0KCyABKAIAQaahyABBASABKAIEKAIMEQAAIQAMCQsgASgCAEGwysQAQREgASgCBCgCDBEAACEADAgLIAIgA0EBajYCECABKAIAQdTKxABBEiABKAIEKAIMEQAAIQAgAkEAOgAlIAIgADoAJCACIAE2AiAgAkEgakHmysQAQQMgAkEQakHEysQAEL0FIAItACUiAyACLQAkIgRyIQAgBEEBcSADQQFHcg0HKAIAIgAtAApBgAFxRQRAIAAoAgBB8cDFAEECIAAoAgQoAgwRAAAhAAwICyAAKAIAQZK9xQBBASAAKAIEKAIMEQAAIQAMBwsgASgCAEHpysQAQQ8gASgCBCgCDBEAACEADAYLQQEhACABKAIAIgRB+MrEAEEPIAEoAgQiBigCDCIFEQAADQUgA0EBaiEDAkAgAS0ACkGAAXFFBEAgBEH5usUAQQEgBREAAA0HIAMgASgCACABKAIEEPsIRQ0BDAcLIARBjKHCAEECIAURAAANBiACIAY2AiQgAiAENgIgIAJBAToAECACIAJBEGo2AiggAyACQSBqIgNB5KDCABD7CA0GIANBg6HCAEECENgDDQYLIAEoAgBBpqHIAEEBIAEoAgQoAgwRAAAhAAwFCyABKAIAQYfLxABBGCABKAIEKAIMEQAAIQAMBAsgAiADQQFqNgIQIAEoAgBBn8vEAEEkIAEoAgQoAgwRAAAhACACQQA6ACUgAiAAOgAkIAIgATYCICACQSBqQbCVyABBBCACQRBqQajGxAAQvQUgAi0AJSIDIAItACQiBHIhACAEQQFxIANBAUdyDQMoAgAiAC0ACkGAAXFFBEAgACgCAEHxwMUAQQIgACgCBCgCDBEAACEADAQLIAAoAgBBkr3FAEEBIAAoAgQoAgwRAAAhAAwDCyACIANBAWo2AhAgASgCAEHDy8QAQRAgASgCBCgCDBEAACEAIAJBADoAJSACIAA6ACQgAiABNgIgIAJBIGpBsJXIAEEEIAJBEGpBqMbEABC9BSACLQAlIgMgAi0AJCIEciEAIARBAXEgA0EBR3INAigCACIALQAKQYABcUUEQCAAKAIAQfHAxQBBAiAAKAIEKAIMEQAAIQAMAwsgACgCAEGSvcUAQQEgACgCBCgCDBEAACEADAILIAIgA0EBajYCECABKAIAQdPLxABBGSABKAIEKAIMEQAAIQAgAkEAOgAlIAIgADoAJCACIAE2AiAgAkEgakHsy8QAQQggAkEQakGoxsQAEL0FIAItACUiAyACLQAkIgRyIQAgBEEBcSADQQFHcg0BKAIAIgAtAApBgAFxRQRAIAAoAgBB8cDFAEECIAAoAgQoAgwRAAAhAAwCCyAAKAIAQZK9xQBBASAAKAIEKAIMEQAAIQAMAQsgASgCAEH0y8QAQQ0gASgCBCgCDBEAACEACyACQTBqJAAgAEEBcQupKgQSfwR9AX4BeyMAQcABayICJAACQAJAAkACQAJAIAEoAogBQQJHBEAgASgCkAMiBSABKALsAUkEQCABQfgBaiEQIAFB2AJqIRMDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASgC6AEgBUEobGoiCCkDECABKQPoAnwiGCABKQPYAlEEQCABKAKAAyIDIAgoAhgiBUEHakF4cUkNAiADIAVJDQEgASgC/AIhAyAILQAgIhIEQCACQRBqIAMgBRCeAyACKAIQIgNBgICAgHhHBEAgAigCFCACQQA2ArABIAJBATYCpAEgAkHkm8EANgKgASACQgQ3AqgBIAJBoAFqEMUHIQwgA0UNHSADQQEQ1gcMHQsgAigCGCEMIAIoAhQiDkGAgICAeEYNHCACKAIcIQUgDCEDC0EJIQQCQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCC0AIkEBaw4NAQIDGh8dHhscHx0eBAALIAgtACEOBAQFBgcJCyAILQAhDgULCgkJDAkLIAgtACEiBg4GDg0QEA8PEAsgCC0AIQ4KEhEREREREREUExELIAgtACFBC2sOAhwdGwsgAkEQaiADIAVBAyABKAKYAxCQBQwDCyACQRBqIAMgBUEDIAEoApgDEIAEDAILIAJBEGogAyAFIAEoApgDELICDAELIAJBEGogAyAFIAEoApgDEIoCCyACKAIUIQcgASgCmAMiDQRAIAIoAhghCUEAIQUgASgCgAIiCiABKAKUAyILayIDQQAgAyAKTRshDyABKAL8ASALQRhsaiEDQQMhBiAHIQQDQCAFIA9GDTkgBUHVqtWqBUYNHyAGIAlLDSAgAyAEQQhqIAT9XQIA/VYCAAIiGf1aAggCIAMgGf1bAgAAIAZBA2ohBiAEQQxqIQQgA0EYaiEDIA0gBUEBaiIFRw0ACwsgAigCECIDRQ0xIAdBBGsoAgAiBEF4cSIGIANBAnQiA0EEQQggBEEDcSIEG2pJDTggBEEAIAYgA0EnaksbDTkgBxC0AgwxCyACQQE2AqQBIAJBjJzBADYCoAEgAkIBNwKsASACIAhBIWqtQoCAgIDgBIQ3A1AgAiACQdAAajYCqAEgAkEgaiIBIAJBoAFqEOYGIAEQwQchASAAQQE6AAAgACABNgIEDC8LIAJBATYCpAEgAkHonMEANgKgASACQgE3AqwBIAIgCEEhaq1CgICAgOAEhDcDUCACIAJB0ABqNgKoASACQSxqIgEgAkGgAWoQ5gYgARDBBwwDCyACQRBqIAMgBUEBIAEoApgDEIAEDCwLIAJBEGogAyAFQQEgASgCmAMQkAUMKwsgCCgCAEUEQCACQQA2ArABIAJBATYCpAEgAkHEnMEANgKgASACQgQ3AqgBIAJBoAFqEMUHDAELIAgoAggNKSACQQA2ArABIAJBATYCpAEgAkGonMEANgKgASACQgQ3AqgBIAJBoAFqEMUHCyEFIABBAToAACAAIAU2AgQMKgsgAkEQaiADIAVBAyABKAKYAxCABAwmCyACQRBqIAMgBUEDIAEoApgDEJAFDCULIAgoAgBFBEAgAkEANgKwASACQQE2AqQBIAJBxJzBADYCoAEgAkIENwKoASACQaABahDFBwwCCyAIKAIIRQRAIAJBADYCsAEgAkEBNgKkASACQaicwQA2AqABIAJCBDcCqAEgAkGgAWoQxQcMAgsgCCoCBCEUIAEoApgDIQQgCCoCDCEVIAZBBEYNIyACQRBqIAMgBUEDIAQgFCAVEJ4EDCQLIAJBATYCpAEgAkGMncEANgKgASACQgE3AqwBIAIgCEEhaq1CgICAgOAEhDcDUCACIAJB0ABqNgKoASACQThqIgEgAkGgAWoQ5gYgARDBBwshBSAAQQE6AAAgACAFNgIEDCULIAJBATYCpAEgAkG0ncEANgKgASACQgE3AqwBIAIgCEEhaq1CgICAgOAEhDcDUCACIAJB0ABqNgKoASACQcQAaiIBIAJBoAFqEOYGIAEQwQcMAwsgAkEQaiADIAVBAyABKAKYAxCQBQweCyACQRBqIAMgBSABKAKYAxCJAgwdCyAIKAIARQRAIAJBADYCsAEgAkEBNgKkASACQcScwQA2AqABIAJCBDcCqAEgAkGgAWoQxQcMAQsgCCgCCA0bIAJBADYCsAEgAkEBNgKkASACQaicwQA2AqABIAJCBDcCqAEgAkGgAWoQxQcLIQUgAEEBOgAAIAAgBTYCBAwgCwJAAkACQAJAIAgtACEiBEEKRwRAIAQOAgIDAQsgAkHQAGogAyAFIAEoApgDEOcDDBwLIAJBATYCpAEgAkHwncEANgKgASACQgE3AqwBIAIgCEEhaq1CgICAgOAEhDcDaCACIAJB6ABqNgKoASACQdwAaiIBIAJBoAFqEOYGIAEQwQchASAAQQE6AAAgACABNgIEDCILIAJBEGogAyAFQQMgASgCmAMQkAUMAQsgAkEQaiADIAVBAyABKAKYAxCABAsgASgCmAMiCkECdCIFQf////8DSw0OIApBBHQiA0H9////B08NDgJAIANFBEBBBCEJQQAhBQwBCyADEH4iCUUNECABKAKYAyEKCyACQQA2AqgBIAIgCTYCpAEgAiAFNgKgASAKBEBBACEDQQEhBiACKAIYIQQgAigCFCEFA0AgBkEBayIHIARPBEAgByEGDBoLIAQgB2siB0EAIAQgB08bIgdBAUYNGSAHQQJGDRhDAACAPyAFKgIAIhQgFJSTIAVBBGoqAgAiFSAVlJMgBUEIaioCACIWIBaUk0MAAAAAEJ8JkSEXIAIoAqABIANrQQNNBEAgAkGgAWogA0EEQQRBBBDQBSACKAKkASEJIAIoAqgBIQMLIAkgA0ECdGoiByAXOAIMIAcgFjgCCCAHIBU4AgQgByAUOAIAIAIgA0EEaiIDNgKoASAGQQNqIQYgBUEMaiEFIApBAWsiCg0ACwsgAkHYAGogAkGoAWooAgA2AgAgAiACKQKgATcDUCACKAIQIgNFDRggAigCFCIEQQRrKAIAIgZBeHEiByADQQJ0IgNBBEEIIAZBA3EiBhtqSQ0nIAZBACAHIANBJ2pLGw0oIAQQtAIMGAsgCC0AIUELRg0UIAJBATYCpAEgAkGcnsEANgKgASACQgE3AqwBIAIgCEEhaq1CgICAgOAEhDcDECACIAJBEGo2AqgBIAJBiAFqIgEgAkGgAWoQ5gYgARDBByEBIABBAToAACAAIAE2AgQMHgsgCC0AIUEMRg0SIAJBATYCpAEgAkHInsEANgKgASACQgE3AqwBIAIgCEEhaq1CgICAgOAEhDcDECACIAJBEGo2AqgBIAJBlAFqIgEgAkGgAWoQ5gYgARDBByEBIABBAToAACAAIAE2AgQMHQtBDyEEDAELQRUhBAsCQAJAAkACQAJAIAgtACEiBg4IAQADAwICBAQDCyACQRBqIAMgBSAEIAEoApgDEIAEDBILIAJBEGogAyAFIAQgASgCmAMQkAUMEQsgCCgCAEUEQCACQQA2ArABIAJBATYCpAEgAkHEnMEANgKgASACQgQ3AqgBIAJBoAFqEMUHIQUMDwsgCCgCCEUEQCACQQA2ArABIAJBATYCpAEgAkGonMEANgKgASACQgQ3AqgBIAJBoAFqEMUHIQUMDwsgCCoCBCEUIAEoApgDIQcgCCoCDCEVIAZBBEYNDyACQRBqIAMgBSAEIAcgFCAVEJ4EDBALIAJBATYCpAEgAkH8nsEANgKgASACQgE3AqwBIAIgCEEhaq1CgICAgOAEhDcDUCACIAJB0ABqNgKoASACQfAAaiIBIAJBoAFqEOYGIAEQwQchBQwNCyAIKAIIRQRAIAJBADYCsAEgAkEBNgKkASACQaicwQA2AqABIAJCBDcCqAEgAkGgAWoQxQchBQwNCyABKAKYAyEHIAgqAgwhFCAGQQZGDQsgAkEQaiADIAUgBCAHIBQQsgQMDgsgAkEBNgKkASACQaSfwQA2AqABIAJCATcCrAEgAiAIQSFqrUKAgICA4ASENwNQIAIgAkHQAGo2AqgBIAJB/ABqIgEgAkGgAWoQ5gYgARDBByEBIABBAToAACAAIAE2AgQMGQsgAkEQaiADIAUgASgCmAMQwQUMAQsgAkEQaiADIAUgASgCmAMQ+gQLIAIoAhAiA0UNFyACKAIUIgRBBGsoAgAiBkF4cSIHIANBAnQiA0EEQQggBkEDcSIGG2pJDR4gBkEAIAcgA0EnaksbDR8gBBC0AgwXCyACIBg3A1AgAkECNgKkASACQdCfwQA2AqABIAJCAjcCrAEgAkKAgICA8AMiGCACQdAAaq2ENwMYIAIgGCATrYQ3AxAgAiACQRBqNgKoASACQQRqIgEgAkGgAWoQ5gYgARDBByEBIABBAToAACAAIAE2AgQMGwsgBSADQbibwQAQogoACyAAQQA7AQAMGQtBf0ECQfTXxwAQpQoACyAGIAlB9NfHABCiCgALQbydwQAQtwgLAAsgAkEQaiADIAUgBCAHIBQQrAUMAgsgAEEBOgAAIAAgBTYCBAwNCyACQRBqIAMgBSAEIAcgFCAVEKQFCwJAAkACQAJAAkACQCAILQAiQQVrDggDAQIAAAQEBAALQfj/xgBBKEHQnsEAEKIIAAsgECABKAKUAyABKAKYAyACKAIUIAIoAhgQ0wEMAgsgASgC1AJBA0kNASABKAKYAyIPRQ0BQwAA/kJDAAD+QiABKgLMApUgAS0A0AJBAkYbIRUgAigCGCELIAIoAhQhByABKAKsAiABKAKUAyIRQRVsaiEGIAEoArACIQ1BACEEQQAhCQNAIA0gCSARaiIDSwRAIAlBAWohCUEAIQUgByEDA0AgBCAFaiIKIAtPDQUgBSAGakH/AEMAAP5CQwAA/sIgFSADKgIAlCIUIBRDAAD+wl0bIhQgFEMAAP5CXhsQ7gciFPwAQYB/IBRDAAAAw2AbIBRDAAD+Ql4bQQAgFCAUWxs6AAAgA0EEaiEDIAVBAWoiBUEVRw0ACyAHQdQAaiEHIARBFWohBCAGQRVqIQYgCSAPRw0BDAMLCyAJQRVsIgogC08NAiADIA1BlNnHABC/BwALIBAgASgClAMgASgCmAMgAigCFCACKAIYEKgCCyACKAIQIgNFDQ0CQCACKAIUIgRBBGsoAgAiBkF4cSIHIANBAnQiA0EEQQggBkEDcSIGG2pPBEAgBkEAIAcgA0EnaksbDQEgBBC0AgwPCwwVCwwVCyAKIAtBhNnHABC/BwALIAJBoAFqIAMgBSABKAKYAxD7BCABKAKIAiABKAKMAiABKAKUAyABKAKYAyACKAKkASIDIAIoAqgBELUDIAIoAqABIgRFDQsCQCADQQRrKAIAIgZBeHEiByAEQQJ0IgRBBEEIIAZBA3EiBhtqTwRAIAZBACAHIARBJ2pLGw0BIAMQtAIMDQsMEwsMEwsgAkGgAWogAyAFIAEoApgDEMgFIAEoAogCIAEoAowCIAEoApQDIAEoApgDIAIoAqQBIgMgAigCqAEQ2gMgAigCoAEiBEUNCgJAIANBBGsoAgAiBkF4cSIHIARBAXQiBEEEQQggBkEDcSIGG2pPBEAgBkEAIAcgBEEnaksbDQEgAxC0AgwMCwwSCwwSCyAGQQFqIQYLIAYgBEHgn8EAEL8HAAsgAigCVCEHAkACQAJAIAEoApgDIg0EQCACKAJYIQlBACEFIAEoAoACIgogASgClAMiC2siA0EAIAMgCk0bIQ8gASgC/AEgC0EYbGpBFGohA0EEIQQgByEGA0AgBSAPRg0SIAVB/////wNGDQIgBCAJSw0DIAIgBv0AAgD9CwSgASADQQJqIAJBoAFqEMQEIhFBEHY6AAAgAyAROwEAIARBBGohBCAGQRBqIQYgA0EYaiEDIA0gBUEBaiIFRw0ACwsgAigCUCIDRQ0KIAdBBGsoAgAiBEF4cSIGIANBAnQiA0EEQQggBEEDcSIEG2pJDREgBEEAIAYgA0EnaksbDQIgBxC0AgwKC0F8QQBBtNjHABClCgALIAQgCUG02McAEKIKAAsMDwsgAkEQaiADIAUgASgCmAMgCCoCBCAIKgIMEM8DCyAQIAEoApQDIAEoApgDIAIoAhQiAyACKAIYEKAGIAIoAhAiBEUNBQJAIANBBGsoAgAiBkF4cSIHIARBAnQiBEEEQQggBkEDcSIGG2pPBEAgBkEAIAcgBEEnaksbDQEgAxC0AgwHCwwNCwwNCyACQRBqIAMgBUEDIAQgFCAVEKQFCyAQIAEoApQDIAEoApgDIAIoAhQiAyACKAIYEMYEIAIoAhAiBEUNAwJAIANBBGsoAgAiBkF4cSIHIARBAnQiBEEEQQggBkEDcSIGG2pPBEAgBkEAIAcgBEEnaksbDQEgAxC0AgwFCwwLCwwLCyACQRBqIAMgBUEBIAEoApgDIAgqAgQgCCoCDBCkBQsgASgC/AEgASgCgAIgASgClAMgASgCmAMgAigCFCIDIAIoAhgQvwIgAigCECIERQ0BAkAgA0EEaygCACIGQXhxIgcgBEECdCIEQQRBCCAGQQNxIgYbak8EQCAGQQAgByAEQSdqSxsNASADELQCDAMLDAkLDAkLIBJFIA5Fcg0FIAwgDkEBENYHDAULAkACQAJAIAEoAoADIgQgCCgCGEEHakF4cSIDTwRAIAFBADYCgAMgBCADayEGIANFDQEgAyAERg0DIAZFDQIgASgC/AIiBCADIARqIAb8CgAADAILIAMgBEHcq8cAEKIKAAsgAyAERg0BCyABIAY2AoADCyAIKQMYIRggASABKAKQA0EBaiIFNgKQAyABIAEpA9gCIBhCB3xC+P///w+DfDcD2AICQCASRSAORXINAAJAIAxBBGsoAgAiA0F4cSIEQQRBCCADQQNxIgMbIA5qTwRAIANBACAEIA5BJ2pLGw0BIAwQtAIgASgCkAMhBQwCCwwICwwICyAFIAEoAuwBSQ0ACwsgAEGAAjsBAAwCC0Gom8EAEKQKAAsgAEEBOgAAIAAgDDYCBAsgAkHAAWokAA8LIAUgC2ogCkHE1McAEL8HAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALlSUCF38EfiMAQcAGayIFJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKQMAIh5QRQRAIAEpAwgiHVANASABKQMQIhxQDQIgHCAefCAeVA0DIB0gHlYNBCABLgEYIQYgBSAePgIMIAVBAUECIB5CgICAgBBUIgEbNgKsASAFQQAgHkIgiKcgARs2AhAgBUEUakEAQZgB/AsAIAVBtAFqQQBBnAH8CwAgBUEBNgKwASAFQQE2AtACIAasIB5CAX15fULCmsHoBH5CgKHNoLQCfEIgiKciAcEhEAJAIAZBAE4EQCAFQQxqIAYQnAIaDAELIAVBsAFqQQAgBmvBEJwCGgsCQCAQQQBIBEAgBUEMakEAIBBrQf//A3EQhwIMAQsgBUGwAWogAUH//wFxEIcCCyAFQZwFaiAFQbABakGkAfwKAAAgBUGUBWohDSADIQkDQCAFKAK8BiIGQSlPDQ8CQCAGRQ0AIAZBAnQhAQJ+IAZBAUYEQCAFQZwFaiABaiEBQgAMAQsgASANaiEHIAZB/////wNqIghB/////wNxQQFqQf7///8HcSEKQgAhHANAIAciAUEEaiIGIAY1AgAgHEIghoQiHkKAlOvcA4AiHD4CACABIAE1AgAgHiAcQoCU69wDfn1CIIaEIhxCgJTr3AOAIh0+AgAgHCAdQoCU69wDfn0hHCABQQhrIQcgCkECayIKDQALIAhBAXENASAcQiCGCyEcIAFBBGsiASAcIAE1AgCEQoCU69wDgD4CAAsgCUEJayIJQQlLDQALIAlBAnRB8InCAGooAgBBAXQiAUUNBSAFKAK8BiIIQSlPDQYgCAR/IAhBAnQhBiABrSEfAkACfiAIQQFGBEAgBUGcBWogBmohAUIADAELIAUgBmpBlAVqIQcgCEH/////A2oiCEH/////A3FBAWpB/v///wdxIQpCACEdA0AgByIBQQRqIgYgBjUCACAdQiCGhCIeIB+AIhw+AgAgASABNQIAIB4gHCAffn1CIIaEIh4gH4AiHD4CACAeIBwgH359IR0gAUEIayEHIApBAmsiCg0ACyAIQQFxDQEgHUIghgshHSABQQRrIgEgHSABNQIAhCAfgD4CAAsgBSgCvAYFQQALIQEgBSgCrAEiBiABIAEgBkkbIgtBKEsNBwJAIAtFBEBBACELDAELQQAhCQJAAkAgC0EBRwRAIAtBAXEgC0E+cSETIAVBnAVqIQEgBUEMaiEHA0AgASABKAIAIgogBygCAGoiFSAJQQFxaiIJNgIAIAFBBGoiCCAIKAIAIg0gB0EEaigCAGoiESAJIBVJIAogFUtyaiIINgIAIAggEUkgDSARS3IhCSAHQQhqIQcgAUEIaiEBIBMgDEECaiIMRw0AC0UNAQsgDEECdCIIIAVBnAVqaiIBIAEoAgAiByAFQQxqIAhqKAIAaiIIIAlqIgE2AgAgASAISSAHIAhLcg0BDAILIAlFDQELIAtBKEYNECAFQZwFaiALQQJ0akEBNgIAIAtBAWohCwsgBSALNgK8BiAFKALQAiIMIAsgCyAMSRsiAUEpTw0IIAFBAnQhAQJAAkADQCABRQ0BIAFBBGsiASAFQZwFamooAgAiCCABIAVBsAFqaigCACIHRg0ACyAHIAhNDQEMCwsgBUGwAWoiByABIAdqRw0KCyAQQQFqIRAMCgtBtIvCAEEcQfyNwgAQoggAC0Hgi8IAQR1BjI7CABCiCAALQZCMwgBBHEGcjsIAEKIIAAtBtI3CAEE2QYyPwgAQoggAC0HsjMIAQTdB/I7CABCiCAALQa+1wgBBG0HotMIAEKIIAAsgCEEoQei0wgAQogoACyALQShB6LTCABCiCgALIAFBKEHotMIAEKIKAAsgBkUEQEEAIQYgBUEANgKsAQwBCyAGQQFrQf////8DcSIIQQFqIgFBA3EhBwJAIAhBA0kEQCAFQQxqIQFCACEcDAELIAFB/P///wdxIQogBUEMaiEBQgAhHANAIAEgATUCAEIKfiAcfCIcPgIAIAFBBGoiCCAINQIAQgp+IBxCIIh8Ihw+AgAgAUEIaiIIIAg1AgBCCn4gHEIgiHwiHD4CACABQQxqIgggCDUCAEIKfiAcQiCIfCIdPgIAIB1CIIghHCABQRBqIQEgCkEEayIKDQALCyAHBEADQCABIAE1AgBCCn4gHHwiHT4CACABQQRqIQEgHUIgiCEcIAdBAWsiBw0ACwsgHUKAgICAEFoEQCAGQShGDQYgBUEMaiAGQQJ0aiAcPgIAIAZBAWohBgsgBSAGNgKsAQtBACEIQQEhCSAQwSIHIATBIgFIIhUNACAQIARrwSADIAcgAWsgA0kbIg1FDQBBACIBRQRAIAVB1AJqIAVBsAFqQaQB/AoAAAsgBUHUAmpBARCcAiEWIAFFBEAgBUH4A2ogBUGwAWpBpAH8CgAACyAFQfgDakECEJwCIRcgAUUEQCAFQZwFaiAFQbABakGkAfwKAAALIAVBnAVqQQMQnAIhGCAWKAKgASEZIBcoAqABIRogGCgCoAEhG0EAIQsgBSgCrAEhBiAFKALQAiEMAkACQAJAA0ACfwJAAkACQCAGQSlJBEAgBkECdCEHQQAhAQJAA0AgASAHRg0BIAVBDGogAWogAUEEaiEBKAIARQ0ACyAbIAYgBiAbSRsiBEEpTw0CIARBAnQhAQJAAkADQCABRQ0BIAFBBGsiASAFQQxqaigCACIIIAEgBUGcBWpqKAIAIgdGDQALIAcgCEsNAQwGCyAYIAVBnAVqIAFqRg0FCyAGIQRBAAwFCyADIA1JDQICQCALIA1GDQAgDSALayIBRQ0AIAIgC2pBMCAB/AsACyAAIBA7AQggACANNgIEDAoLDAsLIARBKEHotMIAEKIKAAsgDSADQeyOwgAQogoAC0EBIQlBACEIAkACQCAEQQFHBEAgBEEBcSAEQT5xIRIgBUEMaiEBIAVBnAVqIQcDQCABIAEoAgAiEyAHKAIAQX9zaiIOIAlBAXFqIgo2AgAgAUEEaiIGIAYoAgAiCSAHQQRqKAIAQX9zaiIPIA4gE0kgCiAOSXJqIgY2AgAgBiAPSSAJIA9LciEJIAdBCGohByABQQhqIQEgEiAIQQJqIghHDQALRQ0BCyAIQQJ0IgcgBUEMamoiASABKAIAIgYgByAYaigCAEF/c2oiByAJaiIBNgIAIAEgB0kgBiAHS3INAQwMCyAJRQ0LCyAFIAQ2AqwBQQgLIRQgGiAEIAQgGkkbIgZBKU8NByAGQQJ0IQECQAJAAkADQCABRQ0BIAFBBGsiASAFQQxqaigCACIIIAEgBUH4A2pqKAIAIgdGDQALIAcgCE0NASAEIQYMAgsgFyAFQfgDaiABakYNACAEIQYMAQsCQCAGRQ0AQQEhCUEAIQgCQCAGQQFHBEAgBkEBcSAGQT5xIRIgBUEMaiEBIAVB+ANqIQcDQCABIAEoAgAiEyAHKAIAQX9zaiIOIAlBAXFqIgo2AgAgAUEEaiIEIAQoAgAiCSAHQQRqKAIAQX9zaiIPIA4gE0kgCiAOSXJqIgQ2AgAgBCAPSSAJIA9LciEJIAdBCGohByABQQhqIQEgEiAIQQJqIghHDQALRQ0BCyAIQQJ0IgcgBUEMamoiASABKAIAIgQgByAXaigCAEF/c2oiByAJaiIBNgIAIAEgB0kgBCAHS3INAQwMCyAJRQ0LCyAFIAY2AqwBIBRBBHIhFAsgGSAGIAYgGUkbIgRBKU8NAiAEQQJ0IQECQAJAAkADQCABRQ0BIAFBBGsiASAFQQxqaigCACIIIAEgBUHUAmpqKAIAIgdGDQALIAcgCE0NASAGIQQMAgsgFiAFQdQCaiABakYNACAGIQQMAQsCQCAERQ0AQQEhCUEAIQgCQCAEQQFHBEAgBEEBcSAEQT5xIRIgBUEMaiEBIAVB1AJqIQcDQCABIAEoAgAiEyAHKAIAQX9zaiIOIAlBAXFqIgo2AgAgAUEEaiIGIAYoAgAiCSAHQQRqKAIAQX9zaiIPIA4gE0kgCiAOSXJqIgY2AgAgBiAPSSAJIA9LciEJIAdBCGohByABQQhqIQEgEiAIQQJqIghHDQALRQ0BCyAIQQJ0IgcgBUEMamoiASABKAIAIgYgByAWaigCAEF/c2oiByAJaiIBNgIAIAEgB0kgBiAHS3INAQwMCyAJRQ0LCyAFIAQ2AqwBIBRBAmohFAsgDCAEIAQgDEkbIgZBKU8NByAGQQJ0IQECQAJAAkADQCABRQ0BIAFBBGsiASAFQQxqaigCACIIIAEgBUGwAWpqKAIAIgdGDQALIAcgCE0NASAEIQYMAgsgBUGwAWoiByABIAdqRg0AIAQhBgwBCwJAIAZFDQBBASEJQQAhCAJAIAZBAUcEQCAGQQFxIAZBPnEhEiAFQQxqIQEgBUGwAWohBwNAIAEgASgCACITIAcoAgBBf3NqIg4gCUEBcWoiCjYCACABQQRqIgQgBCgCACIJIAdBBGooAgBBf3NqIg8gDiATSSAKIA5JcmoiBDYCACAEIA9JIAkgD0tyIQkgB0EIaiEHIAFBCGohASASIAhBAmoiCEcNAAtFDQELIAhBAnQiByAFQQxqaiIBIAEoAgAiBCAFQbABaiAHaigCAEF/c2oiByAJaiIBNgIAIAEgB0kgBCAHS3INAQwMCyAJRQ0LCyAFIAY2AqwBIBRBAWohFAsgAyALTQ0BIAIgC2ogFEEwajoAAAJAIAZFBEBBACEGDAELIAZBAWtB/////wNxIgRBAWoiAUEDcSEHAkAgBEEDSQRAIAVBDGohAUIAIRwMAQsgAUH8////B3EhCiAFQQxqIQFCACEcA0AgASABNQIAQgp+IBx8Ihw+AgAgAUEEaiIEIAQ1AgBCCn4gHEIgiHwiHD4CACABQQhqIgQgBDUCAEIKfiAcQiCIfCIcPgIAIAFBDGoiBCAENQIAQgp+IBxCIIh8Ih0+AgAgHUIgiCEcIAFBEGohASAKQQRrIgoNAAsLIAcEQANAIAEgATUCAEIKfiAcfCIdPgIAIAFBBGohASAdQiCIIRwgB0EBayIHDQALCyAdQoCAgIAQVA0AIAZBKEYNBCAFQQxqIAZBAnRqIBw+AgAgBkEBaiEGCyAFIAY2AqwBIAtBAWoiCyANRw0AC0EAIQkgDSEIDAMLIAsgA0HcjsIAEL8HAAsgBEEoQei0wgAQogoACwwECwJAAn8CQAJAAkAgDEEpSQRAAkAgDEUEQEEAIQwMAQsgDEEBa0H/////A3EiBEEBaiIBQQNxIQcCQCAEQQNJBEAgBUGwAWohAUIAIRwMAQsgAUH8////B3EhCiAFQbABaiEBQgAhHANAIAEgATUCAEIFfiAcfCIcPgIAIAFBBGoiBCAENQIAQgV+IBxCIIh8Ihw+AgAgAUEIaiIEIAQ1AgBCBX4gHEIgiHwiHD4CACABQQxqIgQgBDUCAEIFfiAcQiCIfCIdPgIAIB1CIIghHCABQRBqIQEgCkEEayIKDQALCyAHBEADQCABIAE1AgBCBX4gHHwiHT4CACABQQRqIQEgHUIgiCEcIAdBAWsiBw0ACwsgHUKAgICAEFQNACAMQShGDQogBUGwAWogDEECdGogHD4CACAMQQFqIQwLIAUgDDYC0AIgDCAGIAYgDEkbIgFBKU8NASABQQJ0IQEgBUEIaiEEAkACfwJAA0AgAUUNASABIARqKAIAIgcgAUEEayIBIAVBsAFqaigCACIGRg0ACyAGIAdJIAYgB0trDAELQX9BACAFQbABaiIEIAEgBGpHGwtB/wFxDgIAAwQLQQAgCQ0EGiADIAhBAWsiAUsEQCABIAJqLQAAQQFxDQMMBAsgASADQayOwgAQvwcACyAMQShB6LTCABCiCgALIAFBKEHotMIAEKIKAAsgAyAISQ0EIAIgCGohBCAIIQcCQAJAA0AgByIBRQ0BIAFBAWsiByACaiIGLQAAQTlGDQALIAYgBi0AAEEBajoAACABIAhNDQEgASAIQaicwgAQowoACwJAIAkEQEExIQEMAQsgAkExOgAAQTAhASAIQQFrIgZFIAZFcg0AIAJBAWpBMCAG/AsACyAQQQFqIRAgFSADIAhNcg0BIAQgAToAACAIQQFqIQgMAQsgASAIRg0AIAggAWsiBEUNACABIAJqQTAgBPwLAAsgAyAISQ0BIAgLIQEgACAQOwEIIAAgATYCBAwBCyAIIANBzI7CABCiCgALIAAgAjYCACAFQcAGaiQADwsgCCADQbyOwgAQogoACyAGQShB6LTCABCiCgALQShBKEHotMIAEL8HAAtB+LTCAEEaQei0wgAQoggAC5QlAxZ/A30BeyMAQcAFayIGJAAgBiAENgIMIAYgAzYCCCAGQewBaiAFELwBIAYoAuwBIQUCQAJAAkACQCAGLQCIAiIHQQJGBEAgAEGAgICAeDYCACAAIAU2AgQgA0UgBEGECElyRQRAIAQQzQcLIAJBhAhJDQEgAhDNBwwBCyAGQSRqIAZBgAJqKQIANwIAIAZBL2ogBkGLAmotAAA6AAAgBiAG/QAC8AH9CwIUIAYgBi8AiQI7AC0gBiAHOgAsIAYgBTYCECAGQewBaiACIAEgBkEMakEAIANBAXEbIAZBEGoQxAICQAJAAkACQCAGKALsAUECRgRAIAYoAvABIQEgBkEANgKwAyAGQoCAgIAQNwKoAyAGQcz1wAA2AvQEIAZCoICAgA43AvgEIAYgBkGoA2o2AvAEIAEgBkHwBGoQ2QQNCCAGKAKoAyECIAYoAqwDIgUgBigCsAMQrAkhByACBEAgBUEEaygCACIJQXhxIghBBEEIIAlBA3EiCRsgAmpJDQggCUEAIAggAkEnaksbDQcgBRC0AgsgAEGAgICAeDYCACAAIAc2AgQgASABKAIAKAIAEQMADAMLIAZBMGogBkHsAWoiAUG8AfwKAAAgBkHHAmogBkHPAWotAAA6AAAgBkG4AmogBkHAAWoiAykCADcCACAGQcACaiAGQcgBaiIEKAIANgIAIAYgBi8AzQE7AMUCIAZBADYCpAIgBkKAgICAEDcCnAIgBkIBNwKUAiAGQgA3AowCIAZCgICAgBA3AoQCIAZCBDcC/AEgBkIANwL0ASAGQoCAgIDAADcC7AEgBiAG/QACsAH9CwKoAiAGLQDMASECIAZBADYCyAIgBiACOgDEAiAGKALUASEVIAYoAtgBIRYgBiAGKAJgIhs6APgEIAYgFjYC9AQgBiAVNgLwBCABIAZB8ARqEPkBIAJBAkcEQCAGQcUCaiEBIAQqAgAhHCADKgIAIR0gBioCxAEhHiAG/QACsAEhHyAGLQDEAkECRwRAIAZB8gRqIAFBAmotAAA6AAAgBiABLwAAOwHwBAsgASAGLwHwBDsAACABQQJqIAZB8gRqLQAAOgAAIAYgAkEBcToAxAIgBiAcOALAAiAGIB44ArwCIAYgHTgCuAIgBiAf/QsCqAILIAZBADYCgAQgBkKAgICAwAA3AvgDIAZBADYCjAQgBkKAgICAwAA3AoQEIAZBADYCmAQgBkKAgICAwAA3ApAEIAZBADYCpAQgBkKAgICAwAA3ApwEIAZBADYCsAQgBkKAgICAwAA3AqgEIAZBADYCvAQgBkKAgICAwAA3ArQEIAZBADYCyAQgBkKAgICAwAA3AsAEIAZBADYC1AQgBkKAgICAwAA3AswEIAZBADYC4AQgBkKAgICAIDcC2AQgBkEANgLsBCAGQoCAgIDAADcC5AQgFUUEQEEEIRdBBCEYQQQhGUEEIQFBBCEQDAILQQQhEAJAA0AgFEGAgAQgFSANayIBIAFBgIAETxsiCEEDbCIKSQRAIAogFCIDayIBIAYoAvgDIANrSwRAIAZB+ANqIAMgAUEEQQQQ0AUgBigC/AMhECAGKAKABCEDCyAQIANBAnRqIQQgAUECTwR/IAogFEF/c2pBAnQiAgRAIARBACAC/AsACyABIANqIgFBAWshAyAQIAFBAnRqQQRrBSAEC0EANgIAIAYgA0EBaiIUNgKABCAGKAKMBCETCyAIIBNLBEAgCCATIgNrIgEgBigChAQgA2tLBEAgBkGEBGogAyABQQRBBBDQBSAGKAKMBCEDCyAGKAKIBCICIANBAnRqIQQgAUECTwR/IAggE0F/c2pBAnQiBQRAIARBACAF/AsACyABIANqIgFBAWshAyACIAFBAnRqQQRrBSAEC0EANgIAIAYgA0EBaiITNgKMBAsgBigCmAQiBSAKSQRAIAogBSIDayIBIAYoApAEIANrSwRAIAZBkARqIAMgAUEEQQQQ0AUgBigCmAQhAwsgBigClAQiAiADQQJ0aiEEIAFBAk8EfyAKIAVBf3NqQQJ0IgUEQCAEQQAgBfwLAAsgASADaiIBQQFrIQMgAiABQQJ0akEEawUgBAtBADYCACAGIANBAWoiBTYCmAQLIAYoAqQEIhEgCkkEQCAKIBEiA2siASAGKAKcBCADa0sEQCAGQZwEaiADIAFBBEEEENAFIAYoAqQEIQMLIAYoAqAEIgIgA0ECdGohBCABQQJPBH8gCiARQX9zakECdCIHBEAgBEEAIAf8CwALIAEgA2oiAUEBayEDIAIgAUECdGpBBGsFIAQLQQA2AgAgBiADQQFqIhE2AqQECyAIQQJ0IhIgBigCsAQiDEsEQCASIAwiA2siASAGKAKoBCADa0sEQCAGQagEaiADIAFBBEEEENAFIAYoArAEIQMLIAYoAqwEIgIgA0ECdGohBCABQQJPBH8gEiAMQX9zakECdCIHBEAgBEEAIAf8CwALIAEgA2oiAUEBayEDIAIgAUECdGpBBGsFIAQLQQA2AgAgBiADQQFqIgw2ArAECwJAAkACQAJAAkACQAJAAkACQCAKIBRNBEAgBkEwaiICIA0gCCAGKAL8AyIQIAoQ0gUgCCATSw0BIAYoAogEIQEgAiANIAgQ9ANDAAAAQEMAAIA/IAYtAMwBQQFxGyEcQQAhAyAGKAKQASEEIAYoApQBIQcDQCADQQRqIgIgB0sNAyADIBJGDQQgASADaiAcIAQtAAOzQwAAf0OVlEMAAAAAkjgCACAEQRBqIQQgAiIDIBJHDQALIAUgCkkNBCAGQTBqIgIgDSAIIAYoApQEIhkgChC0BSAKIBFLDQUgAiANIAggBigCoAQiGCAKEPEEIAwgEkkNBiACIA0gCCAGKAKsBCIXIBIQlQRBBCEJQQAhBEEAIQdBBCELQQAhAkEEIQxBACEDQQQhESAWRQ0JIAhBCWwiAyAGKAK8BCICSwRAIAMgAiIHayIMIAYoArQEIAJrSwRAIAZBtARqIAIgDEEEQQQQ0AUgBigCvAQhBwsgBigCuAQiCyAHQQJ0aiEFIAxBAk8EfyADIAJBf3NqQQJ0IgIEQCAFQQAgAvwLAAsgByAMaiICQQFrIQcgCyACQQJ0akEEawUgBQtBADYCACAGIAdBAWoiAjYCvAQLIAIgA0kNByAGQTBqIA0gCCAGKAK4BCIRIAMQhQIgFkEBRgRAQQAhB0EEIQtBACECQQQhDAwKCyAIQQ9sIgIgBigCyAQiB0sEQCACIAciBWsiCyAGKALABCAFa0sEQCAGQcAEaiAFIAtBBEEEENAFIAYoAsgEIQULIAYoAsQEIg8gBUECdGohDCALQQJPBH8gAiAHQX9zakECdCIHBEAgDEEAIAf8CwALIAUgC2oiB0EBayEFIA8gB0ECdGpBBGsFIAwLQQA2AgAgBiAFQQFqIgc2AsgECyACIAdNDQggAiAHQbi0wQAQogoACyAKIBRB2LPBABCiCgALIAggE0Hos8EAEKIKAAsgAiAHQYjJwQAQogoACyAIIAhBmMnBABC/BwALIAogBUH4s8EAEKIKAAsgCiARQYi0wQAQogoACyASIAxBmLTBABCiCgALIAMgAkGotMEAEKIKAAsgBkEwaiANIAggBigCxAQiDCACENsBIBZBAk0EQEEAIQdBBCELDAELIAhBFWwiByAGKALUBCIFSwRAIAUhCyAHIAVrIg4gBigCzAQgBWtLBEAgBkHMBGogBSAOQQRBBBDQBSAGKALUBCELCyAGKALQBCIaIAtBAnRqIQ8gDkECTwR/IAcgBUF/c2pBAnQiBQRAIA9BACAF/AsACyALIA5qIgVBAWshCyAaIAVBAnRqQQRrBSAPC0EANgIAIAYgC0EBaiIFNgLUBAsgBSAHTwRAIAZBMGogDSAIIAYoAtAEIgsgBxCwAQwBCyAHIAVByLTBABCiCgALAkACQCAbRQRAQQIhBQwBCwJAIAYoAuAEIgQgCE8EQCAGKALcBCEFDAELIAQhCSAIIARrIg4gBigC2AQgBGtLBEAgBkHYBGogBCAOQQJBAhDQBSAGKALgBCEJCyAGKALcBCIFIAlBAXRqIQ8gDkECTwR/IAggBEF/c2pBAXQiBARAIA9BACAE/AsACyAJIA5qIgRBAWshCSAFIARBAXRqQQJrBSAPC0EAOwEAIAYgCUEBaiIENgLgBAsgBCAISQ0BIAZBMGogDSAIIAUgCBC5AyAGKALsBCIEIAhJBEAgBCEJIAggBGsiDiAGKALkBCAEa0sEQCAGQeQEaiAEIA5BBEEEENAFIAYoAuwEIQkLIAYoAugEIhogCUECdGohDyAOQQJPBH8gCCAEQX9zakECdCIEBEAgD0EAIAT8CwALIAkgDmoiBEEBayEJIBogBEECdGpBBGsFIA8LQQA2AgAgBiAJQQFqIgQ2AuwECyAEIAhJDQMgBkEwaiANIAggBigC6AQiCSAIELsDIAghBAsgBiAENgK8BSAGIAk2ArgFIAYgBDYCtAUgBiAFNgKwBSAGIAc2AqwFIAYgCzYCqAUgBiACNgKkBSAGIAw2AqAFIAYgAzYCnAUgBiARNgKYBSAGIBI2ApQFIAYgFzYCkAUgBiAKNgKMBSAGIBg2AogFIAYgCjYChAUgBiAZNgKABSAGIAg2AvwEIAYgATYC+AQgBiAKNgL0BCAGIBA2AvAEIAZB7AFqIA0gCCAGQfAEahClAiAIIA1qIg0gFU8NAwwBCwsgCCAEQdi0wQAQogoACyAIIARB6LTBABCiCgALIAYoAuQEIgJFDQAgBigC6AQiA0EEaygCACIEQXhxIgUgAkECdCICQQRBCCAEQQNxIgQbakkNBSAEQQAgBSACQSdqSxsNBCADELQCCyAGKALYBCICBEAgBigC3AQiA0EEaygCACIEQXhxIgUgAkEBdCICQQRBCCAEQQNxIgQbakkNBSAEQQAgBSACQSdqSxsNBCADELQCCyAGKALMBCICBEAgBigC0AQiA0EEaygCACIEQXhxIgUgAkECdCICQQRBCCAEQQNxIgQbakkNBSAEQQAgBSACQSdqSxsNBCADELQCCyAGKALABCICBEAgBigCxAQiA0EEaygCACIEQXhxIgUgAkECdCICQQRBCCAEQQNxIgQbakkNBSAEQQAgBSACQSdqSxsNBCADELQCCyAGKAK0BCICBEAgBigCuAQiA0EEaygCACIEQXhxIgUgAkECdCICQQRBCCAEQQNxIgQbakkNBSAEQQAgBSACQSdqSxsNBCADELQCCyAGKAKoBCICBEAgF0EEaygCACIDQXhxIgQgAkECdCICQQRBCCADQQNxIgMbakkNBSADQQAgBCACQSdqSxsNBCAXELQCCyAGKAKcBCICBEAgGEEEaygCACIDQXhxIgQgAkECdCICQQRBCCADQQNxIgMbakkNBSADQQAgBCACQSdqSxsNBCAYELQCCyAGKAKQBCICBEAgGUEEaygCACIDQXhxIgQgAkECdCICQQRBCCADQQNxIgMbakkNBSADQQAgBCACQSdqSxsNBCAZELQCCyAGKAKEBCICBEAgAUEEaygCACIDQXhxIgQgAkECdCICQQRBCCADQQNxIgMbakkNBSADQQAgBCACQSdqSxsNBCABELQCCyAGKAL4AyIBBEAgEEEEaygCACICQXhxIgMgAUECdCIBQQRBCCACQQNxIgIbakkNBSACQQAgAyABQSdqSxsNBCAQELQCCyAGKALwASEBIAYoAvQBIQIgBigC7AEhAyAGQagDaiAGQfgBakHQAPwKAAAgA0GAgICAeEcNASAGQQA2AvgEIAZCgICAgBA3AvAEIAZBzPXAADYC8AEgBkKggICADjcC9AEgBiAGQfAEajYC7AEgASAGQewBahDZBA0FIAYoAvAEIQIgBigC9AQiAyAGKAL4BBCsCSEEIAIEQCADQQRrKAIAIgVBeHEiB0EEQQggBUEDcSIFGyACakkNBSAFQQAgByACQSdqSxsNBCADELQCCyAAQYCAgIB4NgIAIAAgBDYCBCABIAEoAgAoAgARAwAgBkEwahDXAiAGKAIMIQQgBigCCCEDCyADRSAEQYQISXINASAEEM0HDAELIAYoAsgCIQQgAEEMaiAGQagDakHQAPwKAAAgACAENgJkIAAgAjYCYCAAIAQ2AlwgACACNgIIIAAgATYCBCAAIAM2AgAgBkEwahDXAiAGKAIIRQ0AIAYoAgwiAEGECEkNACAAEM0HCyAGQcAFaiQADwtBoIzIAEEuQdCMyAAQoggAC0Hgi8gAQS5BkIzIABCiCAALQYybxgBBNyAGQeQEakHk9cAAQcSbxgAQlQcAC/4pAyd/FnsFfiMAQSBrIggkACAALwEkIgZBD2oiDEHw/wNxIQcgDEHw/wdxIRAgACgCICEKIAAoAhwhEyAAKAIUIQsgACgCECEVIAAoAgghCSAAKAIEIRYCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADBEAgEEH//wNxIhBFDQEgCiAHQQF2IhFwIQQgCyARcCEMIAZFDQIgCSAHbiIDIAIgBkEDbCIlbiIAIAAgA0sbIhJFDRMgCiAEayEmIAsgDGshJyAGIBBLDRIgBkEBcSEXIBGtIUMgJSAlQQZwIgNrIhtBBmtBBm4iAiAGQQF2IgQiACAAIAJLGyIAIAYgBGtB//8DcSIcIAAgHEkbIgpBf3MgCkEBaiICQQ9xIgBBECAAGyIAaiEoIAIgAGsiBUEGbCEYIAZB/v8DcSIeIAVBAXQiH2shKSAbIAVBemxqISogA0EDSSEgIAEhHSAWISFBACEQQQAhDEEAIQYDQAJ+IAxFIEFCgICAgBBUckUEQCBBpyEEIEFCgICAgHCDQoCAgIAQfQwBCyARICdLDRUgJyARayEnIEMhQSAVIgwgESIEaiEVQoCAgIAQCyFEAn4gEEUgQkKAgICAEFRyRQRAIEKnIQAgQkKAgICAcINCgICAgBB9DAELIBEgJksNFSAmIBFrISYgEyEQIEMhQiARIgAgE2ohE0KAgICAEAshRSAEIBxJDQQgACAcSQ0FIBYgBiAHbGohIiABIAYgJWxqISMgQUL/////D4MgQkL/////D4MhQiAMIBxqIQsgECENIAwhFAJAAkAgG0EGSQ0AIBshCSAjIQMgHiEEICIhDiAKQRBPBEAgDiAfaiEOIAUgDWohDSAFIAxqIRQgAyAYaiEDIB0hBCAoIQIgDCEZIBAhCSAhIQADQCAZ/QAAACE5IARB2gBqIAn9AAAAIi39iQH9qQEiNf0MJWYAACVmAAAlZgAAJWYAACI2/bUBQQj9rQH9DGbI//9myP//Zsj//2bI//8iK/2uASI6IABBBmogAEEEaiAAQQJqIAD9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akB/QyFSgAAhUoAAIVKAACFSgAAIjL9tQFBCP2tASI0/a4BQQb9rAH9DAAAAAAAAAAAAAAAAAAAAAD9uAH9DP8AAAD/AAAA/wAAAP8AAAAiLv22ASAtICz9DQQFBgcAAAAAAAAAAAAAAAD9iQH9qQEiNyA2/bUBQQj9rQEgK/2uASI7IABBDmogAEEMaiAAQQpqIABBCGr9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akBIDL9tQFBCP2tASI9/a4BQQb9rAEgLP24ASAu/bYB/YYBIC0gLP0NCAkKCwAAAAAAAAAAAAAAAP2JAf2pASI4IDb9tQFBCP2tASAr/a4BIjwgAEEWaiAAQRRqIABBEmogAEEQav0HAAD9VAAAAf1UAAAC/VQAAAP9iQH9qQEgMv21AUEI/a0BIj79rgFBBv2sASAs/bgBIC79tgEgLSAs/Q0MDQ4PAAAAAAAAAAAAAAAA/YkB/akBIi0gNv21AUEI/a0BICv9rgEiMSAAQR5qIABBHGogAEEaaiAAQRhq/QcAAP1UAAAB/VQAAAL9VAAAA/2JAf2pASAy/bUBQQj9rQEiMP2uAUEG/awBICz9uAEgLv22Af2GAf1mIiv9WAAADyAEQdQAaiAr/VgAAA4gBEHOAGogK/1YAAANIARByABqICv9WAAADCAEQcIAaiAr/VgAAAsgBEE8aiAr/VgAAAogBEE2aiAr/VgAAAkgBEEwaiAr/VgAAAggBEEqaiAr/VgAAAcgBEEkaiAr/VgAAAYgBEEeaiAr/VgAAAUgBEEYaiAr/VgAAAQgBEESaiAr/VgAAAMgBEEMaiAr/VgAAAIgBEEGaiAr/VgAAAEgBCAr/VgAAAAgBEHbAGogNCA1/QwINAAACDQAAAg0AAAINAAAIi/9tQFBCP2tASA5/YkB/akBIjX9DBMZAAATGQAAExkAABMZAAAiK/21AUEI/a0B/a4BIj/9sQH9DAQiAAAEIgAABCIAAAQiAAAiM/2uAUEG/awBICz9uAEgLv22ASA9IDcgL/21AUEI/a0BIDkgLP0NBAUGBwAAAAAAAAAAAAAAAP2JAf2pASI3ICv9tQFBCP2tAf2uASJA/bEBIDP9rgFBBv2sASAs/bgBIC79tgH9hgEgPiA4IC/9tQFBCP2tASA5ICz9DQgJCgsAAAAAAAAAAAAAAAD9iQH9qQEiOCAr/bUBQQj9rQH9rgEiNv2xASAz/a4BQQb9rAEgLP24ASAu/bYBIDAgLSAv/bUBQQj9rQEgOSAs/Q0MDQ4PAAAAAAAAAAAAAAAA/YkB/akBIi0gK/21AUEI/a0B/a4BIiv9sQEgM/2uAUEG/awBICz9uAEgLv22Af2GAf1mIi/9WAAADyAEQdUAaiAv/VgAAA4gBEHPAGogL/1YAAANIARByQBqIC/9WAAADCAEQcMAaiAv/VgAAAsgBEE9aiAv/VgAAAogBEE3aiAv/VgAAAkgBEExaiAv/VgAAAggBEEraiAv/VgAAAcgBEElaiAv/VgAAAYgBEEfaiAv/VgAAAUgBEEZaiAv/VgAAAQgBEETaiAv/VgAAAMgBEENaiAv/VgAAAIgBEEHaiAv/VgAAAEgBEEBaiAv/VgAAAAgBEHcAGogNCA1/QwagQAAGoEAABqBAAAagQAAIi/9tQFBCP2tAf0M67r//+u6///ruv//67r//yI0/a4BIjX9rgFBBv2sASAs/bgBIC79tgEgPSA3IC/9tQFBCP2tASA0/a4BIjf9rgFBBv2sASAs/bgBIC79tgH9hgEgPiA4IC/9tQFBCP2tASA0/a4BIjj9rgFBBv2sASAs/bgBIC79tgEgMCAtIC/9tQFBCP2tASA0/a4BIi39rgFBBv2sASAs/bgBIC79tgH9hgH9ZiIw/VgAAA8gBEHWAGogMP1YAAAOIARB0ABqIDD9WAAADSAEQcoAaiAw/VgAAAwgBEHEAGogMP1YAAALIARBPmogMP1YAAAKIARBOGogMP1YAAAJIARBMmogMP1YAAAIIARBLGogMP1YAAAHIARBJmogMP1YAAAGIARBIGogMP1YAAAFIARBGmogMP1YAAAEIARBFGogMP1YAAADIARBDmogMP1YAAACIARBCGogMP1YAAABIARBAmogMP1YAAAAIARB3QBqIABBB2ogAEEFaiAAQQNqIABBAWr9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akBIDL9tQFBCP2tASIwIDr9rgFBBv2sASAs/bgBIC79tgEgAEEPaiAAQQ1qIABBC2ogAEEJav0HAAD9VAAAAf1UAAAC/VQAAAP9iQH9qQEgMv21AUEI/a0BIjogO/2uAUEG/awBICz9uAEgLv22Af2GASAAQRdqIABBFWogAEETaiAAQRFq/QcAAP1UAAAB/VQAAAL9VAAAA/2JAf2pASAy/bUBQQj9rQEiOyA8/a4BQQb9rAEgLP24ASAu/bYBIABBH2ogAEEdaiAAQRtqIABBGWr9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akBIDL9tQFBCP2tASI8IDH9rgFBBv2sASAs/bgBIC79tgH9hgH9ZiIx/VgAAA8gBEHXAGogMf1YAAAOIARB0QBqIDH9WAAADSAEQcsAaiAx/VgAAAwgBEHFAGogMf1YAAALIARBP2ogMf1YAAAKIARBOWogMf1YAAAJIARBM2ogMf1YAAAIIARBLWogMf1YAAAHIARBJ2ogMf1YAAAGIARBIWogMf1YAAAFIARBG2ogMf1YAAAEIARBFWogMf1YAAADIARBD2ogMf1YAAACIARBCWogMf1YAAABIARBA2ogMf1YAAAAIARBBGogMCA//bEBIDP9rgFBBv2sASAs/bgBIC79tgEgOiBA/bEBIDP9rgFBBv2sASAs/bgBIC79tgH9hgEgOyA2/bEBIDP9rgFBBv2sASAs/bgBIC79tgEgPCAr/bEBIDP9rgFBBv2sASAs/bgBIC79tgH9hgH9ZiIr/VgAAAAgBEEKaiAr/VgAAAEgBEEQaiAr/VgAAAIgBEEWaiAr/VgAAAMgBEEcaiAr/VgAAAQgBEEiaiAr/VgAAAUgBEEoaiAr/VgAAAYgBEEuaiAr/VgAAAcgBEE0aiAr/VgAAAggBEE6aiAr/VgAAAkgBEFAayAr/VgAAAogBEHGAGogK/1YAAALIARBzABqICv9WAAADCAEQdIAaiAr/VgAAA0gBEHYAGogK/1YAAAOIARB3gBqICv9WAAADyAEQd8AaiAwIDX9rgFBBv2sASAs/bgBIC79tgEgOiA3/a4BQQb9rAEgLP24ASAu/bYB/YYBIDsgOP2uAUEG/awBICz9uAEgLv22ASA8IC39rgFBBv2sASAs/bgBIC79tgH9hgH9ZiIt/VgAAA8gBEHZAGogLf1YAAAOIARB0wBqIC39WAAADSAEQc0AaiAt/VgAAAwgBEHHAGogLf1YAAALIARBwQBqIC39WAAACiAEQTtqIC39WAAACSAEQTVqIC39WAAACCAEQS9qIC39WAAAByAEQSlqIC39WAAABiAEQSNqIC39WAAABSAEQR1qIC39WAAABCAEQRdqIC39WAAAAyAEQRFqIC39WAAAAiAEQQtqIC39WAAAASAEQQVqIC39WAAAACAEQeAAaiEEIBlBEGohGSAJQRBqIQkgAEEgaiEAIAJBEGoiAg0ACyAqIQkgKSEECwNAIARFDQEgCyAURg0CIANBAmpB/wEgDi0AAEGFlQFsQQh2Ig8gFC0AACIkQZqCAmxBCHZBlYoBayIaakEGdSIAQQAgAEEAShsiACAAQf8BThs6AAAgA0H/ASANLQAAIhlBpcwBbEEIdkGa7wBrIgIgD2pBBnUiAEEAIABBAEobIgAgAEH/AU4bOgAAIANBBWpB/wEgGiAOQQFqLQAAQYWVAWxBCHYiGmpBBnUiAEEAIABBAEobIgAgAEH/AU4bOgAAIANBA2pB/wEgAiAaakEGdSIAQQAgAEEAShsiACAAQf8BThs6AAAgA0EBakH/ASAPIBlBiOgAbEEIdiAkQZMybEEIdmoiAmtBhMQAakEGdSIAQQAgAEEAShsiACAAQf8BThs6AAAgA0EEakH/ASAaIAJrQYTEAGpBBnUiAEEAIABBAEobIgAgAEH/AU4bOgAAIANBBmohAyAOQQJqIQ4gDUEBaiENIBRBAWohFCAEQQJrIQQgCUEGayIJQQZPDQALCyAgIA0gECAcakZyIBdFIAsgFEZycg0AIBsgI2oiCUH/ASAeICJqLQAAQYWVAWxBCHYiBCAULQAAIgNBmoICbEEIdmpBlYoBa0EGdSIAQQAgAEEAShsiACAAQf8BThs6AAIgCUH/ASAEIA0tAAAiAkGlzAFsQQh2akGa7wBrQQZ1IgBBACAAQQBKGyIAIABB/wFOGzoAACAJQf8BIAQgA0GTMmxBCHYgAkGI6ABsQQh2amtBhMQAakEGdSIAQQAgAEEAShsiACAAQf8BThs6AAELIESEIUEgQiBFhCFCIB0gJWohHSAHICFqISEgBkEBaiIGIBJJDQALDBMLIAYgCUsNBCAGIAZBAXZrIgUgC0sNBSAFIApLDQYgAiAGQQNsIhJJDQcgAC8BJiEfIAEgEiAWIAYgFSAFIBMgBRB3IAZFDQggAiASayIDIAZBBmwiF3AhICAHIB9sIgAgB0kNCSAAIAlLDQogEEH//wNxIgRFDQsgB0EBdiEPIAEgEmohJCAAIAdrIgAgACAHQQF0IhhwIhtrIQIgByAWaiEaAkAgAyAgayIZIBdJDQAgBCAGSQRAIAcgCksgByALS3IgAiAYSXINASAGIAdBxPDEABCiCgALIAUgD0sEQCAHIApLIAcgC0tyIAIgGElyDQEgBSAPQdTwxAAQogoACyACIBhJIAcgC0tyIAcgCktyIQMgByAPayIAIAVJBEAgAw0BIAUgAEHk8MQAEKIKAAsgAw0AICQgEiAaIAYgFSAFIA8gFWoiHiAFIBMgBSAPIBNqIiIgBRBrIBIgJGogEiAHIBpqIAYgHiAFIBUgBSAiIAUgEyAFEGsgGSAXayIdIBdJDQAgD0EBayEjIAsgD2shKCAHIBVqISkgBkEMbCEqIAZBCWwhESAHIBNqIRQgDEHw/wNxQQR2IgBBBnQhISAAQTBsIQkgAiEAA0AgACAYayIAIBhJIAsgDWpBAWsgI0lyIA0gKGogB0kgCiANakEBayAjSXJyDQEgCiANIA9rIg1qIAdJDQEgASARaiASIAkgFmogBiAOIB5qIhAgBSAOIClqIgQgBSAOICJqIgwgBSAOIBRqIgMgBRBrIAEgKmogEiAWICFqIAYgBCAFIBAgBSADIAUgDCAFEGsgFiAYaiEWIAEgF2ohASAOIA9qIQ4gHSAXayIdIBdPDQALCyAgRQ0SIAsgH0EBcSAfQQF2akEBayAPbCIBSQ0MIAEgCksNECAGIBtLDQ0gBSALIAFrIgBLDQ4gBSAKIAFrIgBLDQ8gGSAkaiAgIAIgGmogBiABIBVqIAUgASATaiAFEHcMEgsgCEEANgIYIAhBATYCDCAIQZSpxwA2AgggCEIENwIQIAhBCGpB1PPEABDKCAALIAhBADYCGCAIQQE2AgwgCEGUqccANgIIIAhCBDcCECAIQQhqQeTzxAAQyggACyAcIARBhPTEABCiCgALIBwgAEGU9MQAEKIKAAsgBiAJQYTvxAAQogoACyAFIAtBlO/EABCiCgALIAUgCkGk78QAEKIKAAsgEiACQbTvxAAQogoACyAIQQA2AhggCEEBNgIMIAhBlKnHADYCCCAIQgQ3AhAgCEEIakHE78QAEMoIAAsgByAAQdTvxAAQpQoACyAAIAlB1O/EABCiCgALIAhBADYCGCAIQQE2AgwgCEGUqccANgIIIAhCBDcCECAIQQhqQeTvxAAQyggACyABIAtBtPDEABCjCgALIAYgG0H078QAEKIKAAsgBSAAQYTwxAAQogoACyAFIABBlPDEABCiCgALIAEgCkGk8MQAEKMKAAsgESAnSyARICZLcg0AIAYgB0H088QAEKIKAAsgCEEgaiQAC8gjAhZ/AX0jAEGQBWsiBiQAIAYgBDYCDCAGIAM2AgggBkHsAWogBRC8ASAGKALsASEFAkACQAJAAkAgBi0AiAIiB0ECRgRAIABBgICAgHg2AgAgACAFNgIEIANFIARBhAhJckUEQCAEEM0HCyACQYQISQ0BIAIQzQcMAQsgBkEkaiAGQYACaikCADcCACAGQS9qIAZBiwJqLQAAOgAAIAYgBv0AAvAB/QsCFCAGIAYvAIkCOwAtIAYgBzoALCAGIAU2AhAgBkHsAWogAiABIAZBDGpBACADQQFxGyAGQRBqEMQCAkACQAJAAkAgBigC7AFBAkYEQCAGKALwASEBIAZBADYCsAMgBkKAgICAEDcCqAMgBkHM9cAANgLcAyAGQqCAgIAONwLgAyAGIAZBqANqNgLYAyABIAZB2ANqENkEDQggBigCqAMhAiAGKAKsAyIFIAYoArADEKwJIQcgAgRAIAVBBGsoAgAiCUF4cSIIQQRBCCAJQQNxIgkbIAJqSQ0IIAlBACAIIAJBJ2pLGw0HIAUQtAILIABBgICAgHg2AgAgACAHNgIEIAEgASgCACgCABEDAAwDCyAGQTBqIAZB7AFqIgFBvAH8CgAAIAZCgICAgCA3AogEIAZCAjcCgAQgBkIANwL4AyAGQoCAgIAgNwLwAyAGQgQ3AugDIAZCADcC4AMgBkKAgICAwAA3AtgDIAZCADcCkAQgBigC1AEhFSAGKALYASEWIAYgBigCYCIbOgD0ASAGIBY2AvABIAYgFTYC7AEgBkHYA2ogARCTAiAGQQA2AqAEIAZCgICAgMAANwKYBCAGQQA2AqwEIAZCgICAgMAANwKkBCAGQQA2ArgEIAZCgICAgMAANwKwBCAGQQA2AsQEIAZCgICAgMAANwK8BCAGQQA2AtAEIAZCgICAgMAANwLIBCAGQQA2AtwEIAZCgICAgMAANwLUBCAGQQA2AugEIAZCgICAgMAANwLgBCAGQQA2AvQEIAZCgICAgMAANwLsBCAGQQA2AoAFIAZCgICAgCA3AvgEIAZBADYCjAUgBkKAgICAwAA3AoQFIBVFBEBBBCEXQQQhGEEEIRlBBCEBQQQhEAwCC0EEIRACQANAIBRBgIAEIBUgDWsiASABQYCABE8bIghBA2wiCkkEQCAKIBQiA2siASAGKAKYBCADa0sEQCAGQZgEaiADIAFBBEEEENAFIAYoApwEIRAgBigCoAQhAwsgECADQQJ0aiEEIAFBAk8EfyAKIBRBf3NqQQJ0IgIEQCAEQQAgAvwLAAsgASADaiIBQQFrIQMgECABQQJ0akEEawUgBAtBADYCACAGIANBAWoiFDYCoAQgBigCrAQhEwsgCCATSwRAIAggEyIDayIBIAYoAqQEIANrSwRAIAZBpARqIAMgAUEEQQQQ0AUgBigCrAQhAwsgBigCqAQiAiADQQJ0aiEEIAFBAk8EfyAIIBNBf3NqQQJ0IgUEQCAEQQAgBfwLAAsgASADaiIBQQFrIQMgAiABQQJ0akEEawUgBAtBADYCACAGIANBAWoiEzYCrAQLIAYoArgEIgUgCkkEQCAKIAUiA2siASAGKAKwBCADa0sEQCAGQbAEaiADIAFBBEEEENAFIAYoArgEIQMLIAYoArQEIgIgA0ECdGohBCABQQJPBH8gCiAFQX9zakECdCIFBEAgBEEAIAX8CwALIAEgA2oiAUEBayEDIAIgAUECdGpBBGsFIAQLQQA2AgAgBiADQQFqIgU2ArgECyAGKALEBCIRIApJBEAgCiARIgNrIgEgBigCvAQgA2tLBEAgBkG8BGogAyABQQRBBBDQBSAGKALEBCEDCyAGKALABCICIANBAnRqIQQgAUECTwR/IAogEUF/c2pBAnQiBwRAIARBACAH/AsACyABIANqIgFBAWshAyACIAFBAnRqQQRrBSAEC0EANgIAIAYgA0EBaiIRNgLEBAsgCEECdCISIAYoAtAEIgxLBEAgEiAMIgNrIgEgBigCyAQgA2tLBEAgBkHIBGogAyABQQRBBBDQBSAGKALQBCEDCyAGKALMBCICIANBAnRqIQQgAUECTwR/IBIgDEF/c2pBAnQiBwRAIARBACAH/AsACyABIANqIgFBAWshAyACIAFBAnRqQQRrBSAEC0EANgIAIAYgA0EBaiIMNgLQBAsCQAJAAkACQAJAAkACQAJAAkAgCiAUTQRAIAZBMGoiAiANIAggBigCnAQiECAKENIFIAggE0sNASAGKAKoBCEBIAIgDSAIEPQDQwAAAEBDAACAPyAGLQDMAUEBcRshHEEAIQMgBigCkAEhBCAGKAKUASEHA0AgA0EEaiICIAdLDQMgAyASRg0EIAEgA2ogHCAELQADs0MAAH9DlZRDAAAAAJI4AgAgBEEQaiEEIAIiAyASRw0ACyAFIApJDQQgBkEwaiICIA0gCCAGKAK0BCIZIAoQtAUgCiARSw0FIAIgDSAIIAYoAsAEIhggChDxBCAMIBJJDQYgAiANIAggBigCzAQiFyASEJUEQQQhCUEAIQRBACEHQQQhC0EAIQJBBCEMQQAhA0EEIREgFkUNCSAIQQlsIgMgBigC3AQiAksEQCADIAIiB2siDCAGKALUBCACa0sEQCAGQdQEaiACIAxBBEEEENAFIAYoAtwEIQcLIAYoAtgEIgsgB0ECdGohBSAMQQJPBH8gAyACQX9zakECdCICBEAgBUEAIAL8CwALIAcgDGoiAkEBayEHIAsgAkECdGpBBGsFIAULQQA2AgAgBiAHQQFqIgI2AtwECyACIANJDQcgBkEwaiANIAggBigC2AQiESADEIUCIBZBAUYEQEEAIQdBBCELQQAhAkEEIQwMCgsgCEEPbCICIAYoAugEIgdLBEAgAiAHIgVrIgsgBigC4AQgBWtLBEAgBkHgBGogBSALQQRBBBDQBSAGKALoBCEFCyAGKALkBCIPIAVBAnRqIQwgC0ECTwR/IAIgB0F/c2pBAnQiBwRAIAxBACAH/AsACyAFIAtqIgdBAWshBSAPIAdBAnRqQQRrBSAMC0EANgIAIAYgBUEBaiIHNgLoBAsgAiAHTQ0IIAIgB0G4tMEAEKIKAAsgCiAUQdizwQAQogoACyAIIBNB6LPBABCiCgALIAIgB0GIycEAEKIKAAsgCCAIQZjJwQAQvwcACyAKIAVB+LPBABCiCgALIAogEUGItMEAEKIKAAsgEiAMQZi0wQAQogoACyADIAJBqLTBABCiCgALIAZBMGogDSAIIAYoAuQEIgwgAhDbASAWQQJNBEBBACEHQQQhCwwBCyAIQRVsIgcgBigC9AQiBUsEQCAFIQsgByAFayIOIAYoAuwEIAVrSwRAIAZB7ARqIAUgDkEEQQQQ0AUgBigC9AQhCwsgBigC8AQiGiALQQJ0aiEPIA5BAk8EfyAHIAVBf3NqQQJ0IgUEQCAPQQAgBfwLAAsgCyAOaiIFQQFrIQsgGiAFQQJ0akEEawUgDwtBADYCACAGIAtBAWoiBTYC9AQLIAUgB08EQCAGQTBqIA0gCCAGKALwBCILIAcQsAEMAQsgByAFQci0wQAQogoACwJAAkAgG0UEQEECIQUMAQsCQCAGKAKABSIEIAhPBEAgBigC/AQhBQwBCyAEIQkgCCAEayIOIAYoAvgEIARrSwRAIAZB+ARqIAQgDkECQQIQ0AUgBigCgAUhCQsgBigC/AQiBSAJQQF0aiEPIA5BAk8EfyAIIARBf3NqQQF0IgQEQCAPQQAgBPwLAAsgCSAOaiIEQQFrIQkgBSAEQQF0akECawUgDwtBADsBACAGIAlBAWoiBDYCgAULIAQgCEkNASAGQTBqIA0gCCAFIAgQuQMgBigCjAUiBCAISQRAIAQhCSAIIARrIg4gBigChAUgBGtLBEAgBkGEBWogBCAOQQRBBBDQBSAGKAKMBSEJCyAGKAKIBSIaIAlBAnRqIQ8gDkECTwR/IAggBEF/c2pBAnQiBARAIA9BACAE/AsACyAJIA5qIgRBAWshCSAaIARBAnRqQQRrBSAPC0EANgIAIAYgCUEBaiIENgKMBQsgBCAISQ0DIAZBMGogDSAIIAYoAogFIgkgCBC7AyAIIQQLIAYgBDYCuAIgBiAJNgK0AiAGIAQ2ArACIAYgBTYCrAIgBiAHNgKoAiAGIAs2AqQCIAYgAjYCoAIgBiAMNgKcAiAGIAM2ApgCIAYgETYClAIgBiASNgKQAiAGIBc2AowCIAYgCjYCiAIgBiAYNgKEAiAGIAo2AoACIAYgGTYC/AEgBiAINgL4ASAGIAE2AvQBIAYgCjYC8AEgBiAQNgLsASAGQdgDaiANIAggBkHsAWoQ7wEgCCANaiINIBVPDQMMAQsLIAggBEHYtMEAEKIKAAsgCCAEQei0wQAQogoACyAGKAKEBSICRQ0AIAYoAogFIgNBBGsoAgAiBEF4cSIFIAJBAnQiAkEEQQggBEEDcSIEG2pJDQUgBEEAIAUgAkEnaksbDQQgAxC0AgsgBigC+AQiAgRAIAYoAvwEIgNBBGsoAgAiBEF4cSIFIAJBAXQiAkEEQQggBEEDcSIEG2pJDQUgBEEAIAUgAkEnaksbDQQgAxC0AgsgBigC7AQiAgRAIAYoAvAEIgNBBGsoAgAiBEF4cSIFIAJBAnQiAkEEQQggBEEDcSIEG2pJDQUgBEEAIAUgAkEnaksbDQQgAxC0AgsgBigC4AQiAgRAIAYoAuQEIgNBBGsoAgAiBEF4cSIFIAJBAnQiAkEEQQggBEEDcSIEG2pJDQUgBEEAIAUgAkEnaksbDQQgAxC0AgsgBigC1AQiAgRAIAYoAtgEIgNBBGsoAgAiBEF4cSIFIAJBAnQiAkEEQQggBEEDcSIEG2pJDQUgBEEAIAUgAkEnaksbDQQgAxC0AgsgBigCyAQiAgRAIBdBBGsoAgAiA0F4cSIEIAJBAnQiAkEEQQggA0EDcSIDG2pJDQUgA0EAIAQgAkEnaksbDQQgFxC0AgsgBigCvAQiAgRAIBhBBGsoAgAiA0F4cSIEIAJBAnQiAkEEQQggA0EDcSIDG2pJDQUgA0EAIAQgAkEnaksbDQQgGBC0AgsgBigCsAQiAgRAIBlBBGsoAgAiA0F4cSIEIAJBAnQiAkEEQQggA0EDcSIDG2pJDQUgA0EAIAQgAkEnaksbDQQgGRC0AgsgBigCpAQiAgRAIAFBBGsoAgAiA0F4cSIEIAJBAnQiAkEEQQggA0EDcSIDG2pJDQUgA0EAIAQgAkEnaksbDQQgARC0AgsgBigCmAQiAQRAIBBBBGsoAgAiAkF4cSIDIAFBAnQiAUEEQQggAkEDcSICG2pJDQUgAkEAIAMgAUEnaksbDQQgEBC0AgsgBkG4A2oiBCAGQeQDaiIBQRBq/QACAP0LAwAgBkHIA2oiBSABQSBq/QACAP0LAwAgBiAB/QACAP0LA6gDIAYoAtwDIQEgBigC2AMiB0GAgICAeEcNASAGQQA2AuADIAZCgICAgBA3AtgDIAZBzPXAADYC8AEgBkKggICADjcC9AEgBiAGQdgDajYC7AEgASAGQewBahDZBA0FIAYoAtgDIQIgBigC3AMiAyAGKALgAxCsCSEEIAIEQCADQQRrKAIAIgVBeHEiB0EEQQggBUEDcSIFGyACakkNBSAFQQAgByACQSdqSxsNBCADELQCCyAAQYCAgIB4NgIAIAAgBDYCBCABIAEoAgAoAgARAwAgBkEwahDXAiAGKAIMIQQgBigCCCEDCyADRSAEQYQISXINASAEEM0HDAELIAYoAuADIQIgBigClAQhAyAAIAb9AAOoA/0LAgwgAEEsaiAF/QADAP0LAgAgAEEcaiAE/QADAP0LAgAgACADNgJEIAAgAjYCQCAAIAM2AjwgACACNgIIIAAgATYCBCAAIAc2AgAgBkEwahDXAiAGKAIIRQ0AIAYoAgwiAEGECEkNACAAEM0HCyAGQZAFaiQADwtBoIzIAEEuQdCMyAAQoggAC0Hgi8gAQS5BkIzIABCiCAALQYybxgBBNyAGQYQFakHk9cAAQcSbxgAQlQcAC/cpAyZ/FnsFfiMAQSBrIggkACAALwEkIgZBD2oiDEHw/wNxIQcgDEHw/wdxIRAgACgCICEKIAAoAhwhEyAAKAIUIQsgACgCECEVIAAoAgghCSAAKAIEIRYCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADBEAgEEH//wNxIhBFDQEgCiAHQQF2IhFwIQQgCyARcCEMIAZFDQIgCSAHbiIDIAIgBkECdCIlbiIAIAAgA0sbIhdFDRMgCiAEayEmIAsgDGshBSAGIBBLDRIgBkEBcSEYIBGtIUIgJUEIa0EDdiICIAZBAXYiAyIAIAAgAksbIgAgBiADa0H//wNxIhsgACAbSRsiC0F/cyALQQFqIgJBD3EiAEEQIAAbIgBqIScgBkH+/wNxIh4gAiAAayIKQQF0Ih9rISggJUH4/w9xIhwgCkEDdCIgayEpIAEhHSAWISFBACEQQQAhDEEAIQYDQAJ+IAxFIEBCgICAgBBUckUEQCBApyEEIEBCgICAgHCDQoCAgIAQfQwBCyAFIBFJDRUgBSARayEFIEIhQCAVIgwgESIEaiEVQoCAgIAQCyFDAn4gEEUgQUKAgICAEFRyRQRAIEGnIQAgQUKAgICAcINCgICAgBB9DAELIBEgJksNFSAmIBFrISYgEyEQIEIhQSARIgAgE2ohE0KAgICAEAshRCAEIBtJDQQgACAbSQ0FIBYgBiAHbGohIiABIAYgJWxqISMgQEL/////D4MgQUL/////D4MhQSAMIBtqIQ0gECEOIAwhFAJAAkAgHEUNACAcIQkgIyEDIB4hBCAiIQ8gC0EQTwRAIA8gH2ohDyAKIA5qIQ4gCiAMaiEUIAMgIGohAyAnIQIgHSEEIAwhGSAQIQkgISEAA0AgGf0AAAAhOCAEQfgAaiAJ/QAAACIs/YkB/akBIjT9DCVmAAAlZgAAJWYAACVmAAAiNf21AUEI/a0B/QxmyP//Zsj//2bI//9myP//Iir9rgEiOSAAQQZqIABBBGogAEECaiAA/QcAAP1UAAAB/VQAAAL9VAAAA/2JAf2pAf0MhUoAAIVKAACFSgAAhUoAACIx/bUBQQj9rQEiM/2uAUEG/awB/QwAAAAAAAAAAAAAAAAAAAAA/bgB/Qz/AAAA/wAAAP8AAAD/AAAAIi39tgEgLCAr/Q0EBQYHAAAAAAAAAAAAAAAA/YkB/akBIjYgNf21AUEI/a0BICr9rgEiOiAAQQ5qIABBDGogAEEKaiAAQQhq/QcAAP1UAAAB/VQAAAL9VAAAA/2JAf2pASAx/bUBQQj9rQEiPP2uAUEG/awBICv9uAEgLf22Af2GASAsICv9DQgJCgsAAAAAAAAAAAAAAAD9iQH9qQEiNyA1/bUBQQj9rQEgKv2uASI7IABBFmogAEEUaiAAQRJqIABBEGr9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akBIDH9tQFBCP2tASI9/a4BQQb9rAEgK/24ASAt/bYBICwgK/0NDA0ODwAAAAAAAAAAAAAAAP2JAf2pASIsIDX9tQFBCP2tASAq/a4BIjAgAEEeaiAAQRxqIABBGmogAEEYav0HAAD9VAAAAf1UAAAC/VQAAAP9iQH9qQEgMf21AUEI/a0BIi/9rgFBBv2sASAr/bgBIC39tgH9hgH9ZiIq/VgAAA8gBEHwAGogKv1YAAAOIARB6ABqICr9WAAADSAEQeAAaiAq/VgAAAwgBEHYAGogKv1YAAALIARB0ABqICr9WAAACiAEQcgAaiAq/VgAAAkgBEFAayAq/VgAAAggBEE4aiAq/VgAAAcgBEEwaiAq/VgAAAYgBEEoaiAq/VgAAAUgBEEgaiAq/VgAAAQgBEEYaiAq/VgAAAMgBEEQaiAq/VgAAAIgBEEIaiAq/VgAAAEgBCAq/VgAAAAgBEH5AGogMyA0/QwINAAACDQAAAg0AAAINAAAIi79tQFBCP2tASA4/YkB/akBIjT9DBMZAAATGQAAExkAABMZAAAiKv21AUEI/a0B/a4BIj79sQH9DAQiAAAEIgAABCIAAAQiAAAiMv2uAUEG/awBICv9uAEgLf22ASA8IDYgLv21AUEI/a0BIDggK/0NBAUGBwAAAAAAAAAAAAAAAP2JAf2pASI2ICr9tQFBCP2tAf2uASI//bEBIDL9rgFBBv2sASAr/bgBIC39tgH9hgEgPSA3IC79tQFBCP2tASA4ICv9DQgJCgsAAAAAAAAAAAAAAAD9iQH9qQEiNyAq/bUBQQj9rQH9rgEiNf2xASAy/a4BQQb9rAEgK/24ASAt/bYBIC8gLCAu/bUBQQj9rQEgOCAr/Q0MDQ4PAAAAAAAAAAAAAAAA/YkB/akBIiwgKv21AUEI/a0B/a4BIir9sQEgMv2uAUEG/awBICv9uAEgLf22Af2GAf1mIi79WAAADyAEQfEAaiAu/VgAAA4gBEHpAGogLv1YAAANIARB4QBqIC79WAAADCAEQdkAaiAu/VgAAAsgBEHRAGogLv1YAAAKIARByQBqIC79WAAACSAEQcEAaiAu/VgAAAggBEE5aiAu/VgAAAcgBEExaiAu/VgAAAYgBEEpaiAu/VgAAAUgBEEhaiAu/VgAAAQgBEEZaiAu/VgAAAMgBEERaiAu/VgAAAIgBEEJaiAu/VgAAAEgBEEBaiAu/VgAAAAgBEH6AGogMyA0/QwagQAAGoEAABqBAAAagQAAIi79tQFBCP2tAf0M67r//+u6///ruv//67r//yIz/a4BIjT9rgFBBv2sASAr/bgBIC39tgEgPCA2IC79tQFBCP2tASAz/a4BIjb9rgFBBv2sASAr/bgBIC39tgH9hgEgPSA3IC79tQFBCP2tASAz/a4BIjf9rgFBBv2sASAr/bgBIC39tgEgLyAsIC79tQFBCP2tASAz/a4BIiz9rgFBBv2sASAr/bgBIC39tgH9hgH9ZiIv/VgAAA8gBEHyAGogL/1YAAAOIARB6gBqIC/9WAAADSAEQeIAaiAv/VgAAAwgBEHaAGogL/1YAAALIARB0gBqIC/9WAAACiAEQcoAaiAv/VgAAAkgBEHCAGogL/1YAAAIIARBOmogL/1YAAAHIARBMmogL/1YAAAGIARBKmogL/1YAAAFIARBImogL/1YAAAEIARBGmogL/1YAAADIARBEmogL/1YAAACIARBCmogL/1YAAABIARBAmogL/1YAAAAIARB/ABqIABBB2ogAEEFaiAAQQNqIABBAWr9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akBIDH9tQFBCP2tASIvIDn9rgFBBv2sASAr/bgBIC39tgEgAEEPaiAAQQ1qIABBC2ogAEEJav0HAAD9VAAAAf1UAAAC/VQAAAP9iQH9qQEgMf21AUEI/a0BIjkgOv2uAUEG/awBICv9uAEgLf22Af2GASAAQRdqIABBFWogAEETaiAAQRFq/QcAAP1UAAAB/VQAAAL9VAAAA/2JAf2pASAx/bUBQQj9rQEiOiA7/a4BQQb9rAEgK/24ASAt/bYBIABBH2ogAEEdaiAAQRtqIABBGWr9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akBIDH9tQFBCP2tASI7IDD9rgFBBv2sASAr/bgBIC39tgH9hgH9ZiIw/VgAAA8gBEH0AGogMP1YAAAOIARB7ABqIDD9WAAADSAEQeQAaiAw/VgAAAwgBEHcAGogMP1YAAALIARB1ABqIDD9WAAACiAEQcwAaiAw/VgAAAkgBEHEAGogMP1YAAAIIARBPGogMP1YAAAHIARBNGogMP1YAAAGIARBLGogMP1YAAAFIARBJGogMP1YAAAEIARBHGogMP1YAAADIARBFGogMP1YAAACIARBDGogMP1YAAABIARBBGogMP1YAAAAIARBBWogLyA+/bEBIDL9rgFBBv2sASAr/bgBIC39tgEgOSA//bEBIDL9rgFBBv2sASAr/bgBIC39tgH9hgEgOiA1/bEBIDL9rgFBBv2sASAr/bgBIC39tgEgOyAq/bEBIDL9rgFBBv2sASAr/bgBIC39tgH9hgH9ZiIq/VgAAAAgBEENaiAq/VgAAAEgBEEVaiAq/VgAAAIgBEEdaiAq/VgAAAMgBEElaiAq/VgAAAQgBEEtaiAq/VgAAAUgBEE1aiAq/VgAAAYgBEE9aiAq/VgAAAcgBEHFAGogKv1YAAAIIARBzQBqICr9WAAACSAEQdUAaiAq/VgAAAogBEHdAGogKv1YAAALIARB5QBqICr9WAAADCAEQe0AaiAq/VgAAA0gBEH1AGogKv1YAAAOIARB/QBqICr9WAAADyAEQf4AaiAvIDT9rgFBBv2sASAr/bgBIC39tgEgOSA2/a4BQQb9rAEgK/24ASAt/bYB/YYBIDogN/2uAUEG/awBICv9uAEgLf22ASA7ICz9rgFBBv2sASAr/bgBIC39tgH9hgH9ZiIs/VgAAA8gBEH2AGogLP1YAAAOIARB7gBqICz9WAAADSAEQeYAaiAs/VgAAAwgBEHeAGogLP1YAAALIARB1gBqICz9WAAACiAEQc4AaiAs/VgAAAkgBEHGAGogLP1YAAAIIARBPmogLP1YAAAHIARBNmogLP1YAAAGIARBLmogLP1YAAAFIARBJmogLP1YAAAEIARBHmogLP1YAAADIARBFmogLP1YAAACIARBDmogLP1YAAABIARBBmogLP1YAAAAIARBgAFqIQQgGUEQaiEZIAlBEGohCSAAQSBqIQAgAkEQaiICDQALICkhCSAoIQQLA0AgBEUNASANIBRGDQIgA0ECakH/ASAPLQAAQYWVAWxBCHYiEiAULQAAIiRBmoICbEEIdkGVigFrIhpqQQZ1IgBBACAAQQBKGyIAIABB/wFOGzoAACADQf8BIA4tAAAiGUGlzAFsQQh2QZrvAGsiAiASakEGdSIAQQAgAEEAShsiACAAQf8BThs6AAAgA0EGakH/ASAaIA9BAWotAABBhZUBbEEIdiIaakEGdSIAQQAgAEEAShsiACAAQf8BThs6AAAgA0EEakH/ASACIBpqQQZ1IgBBACAAQQBKGyIAIABB/wFOGzoAACADQQFqQf8BIBIgGUGI6ABsQQh2ICRBkzJsQQh2aiICa0GExABqQQZ1IgBBACAAQQBKGyIAIABB/wFOGzoAACADQQVqQf8BIBogAmtBhMQAakEGdSIAQQAgAEEAShsiACAAQf8BThs6AAAgA0EIaiEDIA9BAmohDyAOQQFqIQ4gFEEBaiEUIARBAmshBCAJQQhrIgkNAAsLIBhFIA4gECAbakZyIA0gFEZyDQAgHCAjaiIJQf8BIB4gImotAABBhZUBbEEIdiIEIBQtAAAiA0GaggJsQQh2akGVigFrQQZ1IgBBACAAQQBKGyIAIABB/wFOGzoAAiAJQf8BIAQgDi0AACICQaXMAWxBCHZqQZrvAGtBBnUiAEEAIABBAEobIgAgAEH/AU4bOgAAIAlB/wEgBCADQZMybEEIdiACQYjoAGxBCHZqa0GExABqQQZ1IgBBACAAQQBKGyIAIABB/wFOGzoAAQsgQ4QhQCBBIESEIUEgHSAlaiEdIAcgIWohISAGQQFqIgYgF0kNAAsMEwsgBiAJSw0EIAYgBkEBdmsiBSALSw0FIAUgCksNBiACIAZBAnQiEkkNByAALwEmIR8gASASIBYgBiAVIAUgEyAFEHggBkUNCCACIBJrIgMgBkEDdCIXcCEgIAcgH2wiACAHSQ0JIAAgCUsNCiAQQf//A3EiBEUNCyAHQQF2IQ0gASASaiEkIAAgB2siACAAIAdBAXQiGHAiHGshAiAHIBZqIRoCQCADICBrIhkgF0kNACAEIAZJBEAgByAKSyAHIAtLciACIBhJcg0BIAYgB0HE8MQAEKIKAAsgBSANSwRAIAcgCksgByALS3IgAiAYSXINASAFIA1B1PDEABCiCgALIAIgGEkgByALS3IgByAKS3IhAyAHIA1rIgAgBUkEQCADDQEgBSAAQeTwxAAQogoACyADDQAgJCASIBogBiAVIAUgDSAVaiIeIAUgEyAFIA0gE2oiIiAFEG0gEiAkaiASIAcgGmogBiAeIAUgFSAFICIgBSATIAUQbSAZIBdrIh0gF0kNACANQQFrISMgCyANayEnIAcgFWohKCAGQQR0ISkgBkEMbCERIAcgE2ohFCAMQfD/A3FBBHYiAEEGdCEhIABBMGwhCSACIQADQCAAIBhrIgAgGEkgCyAOakEBayAjSXIgDiAnaiAHSSAKIA5qQQFrICNJcnINASAKIA4gDWsiDmogB0kNASABIBFqIBIgCSAWaiAGIA8gHmoiECAFIA8gKGoiBCAFIA8gImoiDCAFIA8gFGoiAyAFEG0gASApaiASIBYgIWogBiAEIAUgECAFIAMgBSAMIAUQbSAWIBhqIRYgASAXaiEBIA0gD2ohDyAdIBdrIh0gF08NAAsLICBFDRIgCyAfQQFxIB9BAXZqQQFrIA1sIgFJDQwgASAKSw0QIAYgHEsNDSAFIAsgAWsiAEsNDiAFIAogAWsiAEsNDyAZICRqICAgAiAaaiAGIAEgFWogBSABIBNqIAUQeAwSCyAIQQA2AhggCEEBNgIMIAhBlKnHADYCCCAIQgQ3AhAgCEEIakHU88QAEMoIAAsgCEEANgIYIAhBATYCDCAIQZSpxwA2AgggCEIENwIQIAhBCGpB5PPEABDKCAALIBsgBEGE9MQAEKIKAAsgGyAAQZT0xAAQogoACyAGIAlBhO/EABCiCgALIAUgC0GU78QAEKIKAAsgBSAKQaTvxAAQogoACyASIAJBtO/EABCiCgALIAhBADYCGCAIQQE2AgwgCEGUqccANgIIIAhCBDcCECAIQQhqQcTvxAAQyggACyAHIABB1O/EABClCgALIAAgCUHU78QAEKIKAAsgCEEANgIYIAhBATYCDCAIQZSpxwA2AgggCEIENwIQIAhBCGpB5O/EABDKCAALIAEgC0G08MQAEKMKAAsgBiAcQfTvxAAQogoACyAFIABBhPDEABCiCgALIAUgAEGU8MQAEKIKAAsgASAKQaTwxAAQowoACyAFIBFJIBEgJktyDQAgBiAHQfTzxAAQogoACyAIQSBqJAALlysCHH8BfiMAQeABayICJAAgAkEgaiAAIAAoAgAoAgQRAQAgAiACKAIkIgg2AiwgAiACKAIgIgQ2AigCQAJAAkACQAJAAkACQAJAAkACfwJAAkACQCABLQAKQYABcUUEQEEBIQMgAkEBNgKUASACQfCOyAA2ApABIAJCATcCnAEgAiACQShqrUKAgICA8AKENwNoIAIgAkHoAGo2ApgBIAEoAgAgASgCBCACQZABahDkAw0HIAJBGGogAigCKCACKAIsKAIYEQEAAkACQCACKAIYIgUEQCACKAIcIQcgASgCAEH8+MEAQQwgASgCBCgCDBEAAA0KIAJBEGogBSAHKAIYEQEAIAJByABqrUKAgICA8AKEIR4gAigCEEEARyEGQQAhAwNAIAJBCGogBSAHKAIYEQEAIAIoAgwgAigCCCEEIAIgBzYCTCACIAU2AkggAkEANgKgASACQQE2ApQBIAJBgNPEADYCkAEgAkIENwKYASABKAIAIAEoAgQgAkGQAWoiBxDbCQ0CIAJBADoAdCACIAM2AmwgAiAGNgJoIAIgATYCcCACQQE2ApQBIAJB8I7IADYCkAEgAkIBNwKcASACIB43A1ggAiACQdgAajYCmAEgAkHoAGogBxDcCQ0CIANBAWohAyEHIAQiBQ0ACwsCQCAAKAIEIgVBA0cEQCAAQQRqIQAMAQsgACAAKAIAKAIYEQQAIgBFDQIgACgCACEFC0EAIQMgBUECRw0JIAJBADYCRCACQoCAgIAQNwI8IAJB4PfBADYCTCACQqCAgIAONwJQIAIgAkE8ajYCSAJAIAAoAgBBAWsOAgQABQsCQAJ/AkACQCAALQAUQQNGBEAgACgCDCEDQQAhBwwBCyACIABBBGo2ApABIAJBkAFqIQcjAEEgayIGJAACQAJAAkACQAJAAkACQCAAQRRqIggtAABBAWsOAwQBAwALIAhBAjoAACAHKAIAIAdBADYCAARAQfjMyQAtAAAhBEH4zMkAQQE6AAAgBiAEOgAHIARFDQIgBkIANwIUIAZCgYCAgMAANwIMIAZBiJjIADYCCCAGQQdqIAZBCGoQswgAC0GgmMgAEKQKAAsgBkEANgIYIAZBATYCDCAGQYygyAA2AggMAwtB+MzJAEEAOgAAIAhBAzoAAAsgBkEgaiQADAILIAZBADYCGCAGQQE2AgwgBkHMn8gANgIICyAGQgQ3AhAgBkEIakGwjcgAEMoIAAsgACgCDCEDIAIoAlBBgICABHEiBw0BCyADIAAoAhAiBEkNAiADIARrIQMgACgCCCAEQQxsagwBCyAAKAIICyEOIAJBgICAgHg2AlggAkGQjsgAKQMAIh43AlwgAiAHQRd2IgA6AGQgAiAAOgB4IAJBADYCdCACQdCOyAA2AnAgAiACQcgAajYCaCACIAJB2ABqNgJsIANFBEAgHqchAyAeQiCIpwwICyAOIANBDGxqIRkgAkGYAWohESACQZcBaiETA0ACQCAOKAIIIgRFBEAgAkEANgKIASACIAJB6ABqNgKEASACQQM2ApABIAJBAjYC0AEgAkGEAWogAkGQAWogAkHQAWpBACACQQAgAhDkAiACKAKEASIAIAAoAgxBAWo2AgxFDQEMDgsgDigCBCIAIARBLGxqIRoDQCACQQA2AoABIAIgAkHoAGo2AnwCQAJAAkACQCAAKAIgQYCAgIB4RwRAIAJBkAFqIgQgACgCJCIbIAAoAigiHBCfA0ECIRQgAigCkAENAyAEIAIoApQBIgogAigCmAEiBkGIwcUAQQYQ7AECQAJAIAIoApABBEAgAigCzAEhBSACKALIASEHIAIoAsQBIQggAigCwAEhBCACKAK0AUF/Rg0BIAJBhAFqIBEgBCAIIAcgBUEAEKQEDAILA0AgAkHQAWogAkGQAWoQqQIgAigC0AEiBEEBRg0ACwJAAkAgBEEBaw4CGQEACyACIAIpAtQBNwKIASACQQE2AoQBDAILIAJBADYChAEMAQsgAkGEAWogESAEIAggByAFQQEQpAQLIAIoAoQBQQFHDQIgAigCiAEiBEEGaiIHRQ0BAkAgBiAHTQRAIAYgB0cNAQwDCyAHIApqLAAAQb9/Sg0CCyAKIAYgByAGQZDBxQAQ/QkACyACQQM2ApABDAMLIAYgCmohCCAHIApqIQMDQAJAIAMgCEYNAAJ/IAMsAAAiC0EATgRAIAtB/wFxIQUgA0EBagwBCyADLQABQT9xIQcgC0EfcSEFIAtBX00EQCAFQQZ0IAdyIQUgA0ECagwBCyADLQACQT9xIAdBBnRyIQcgC0FwSQRAIAcgBUEMdHIhBSADQQNqDAELIAVBEnRBgIDwAHEgAy0AA0E/cSAHQQZ0cnIiBUGAgMQARg0BIANBBGoLIQMgBUHHAGtBeEsgBUE6a0F2T3INAQwCCwsgBEUNAQJAIAQgBk8EQCAEIAZGDQIMAQsgBCAKaiwAAEG/f0wNACAEIQYMAQsgCiAGQQAgBEGgwcUAEP0JAAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAGQQNPBEBB/LjFACAKQQMQkAhFDQEgCi8AAEHanAFGDQIgBkEDRg0HIAooAABB377p8gRHDQdBfCEDQQQhBSAGQQVPDQNBBCEGDAULIAZBAkcNDSAKLwAAQdqcAUcNBUF+IQNBAiEGQQIhBQwEC0EDIQVBfSEDIAZBA0YEQEEDIQYMBAsgCiwAA0G/f0oNAyAKIAZBAyAGQaC5xQAQ/QkACyAKLAACQb9/TA0BQQIhBUF+IQMMAgsgCiwABEG/f0oNASAKIAZBBCAGQYC5xQAQ/QkACyAKIAZBAiAGQZC5xQAQ/QkACyAFIApqIgggAyAGaiIEaiEPIAQhAyAIIQUCQANAIAMEQCADQQFrIQMgBSwAACAFQQFqIQVBAE4NAQwCCwsgBEUNAAJ/IAgsAAAiA0EATgRAIANB/wFxIQMgCEEBagwBCyAILQABQT9xIQcgA0EfcSEFIANBX00EQCAFQQZ0IAdyIQMgCEECagwBCyAILQACQT9xIAdBBnRyIQcgA0FwSQRAIAcgBUEMdHIhAyAIQQNqDAELIAVBEnRBgIDwAHEgCC0AA0E/cSAHQQZ0cnIhAyAIQQRqCyEJAkAgA0HFAEYEQEEAIQcMAQsgA0GAgMQARg0BQQAhBwNAIANBMGtBCUsNAkEAIQUCQANAAkAgA0EwayILQQpPBEAgBQ0BDAMLIAWtQgp+Ih5CIIinDQUgCSAPRiAepyIDIAtqIgUgA0lyDQUCfyAJLAAAIgxBAE4EQCAMQf8BcSEDIAlBAWoMAQsgCS0AAUE/cSEDIAxBH3EhCyAMQV9NBEAgC0EGdCADciEDIAlBAmoMAQsgCS0AAkE/cSADQQZ0ciEDIAxBcEkEQCADIAtBDHRyIQMgCUEDagwBCyALQRJ0QYCA8ABxIAktAANBP3EgA0EGdHJyIQMgCUEEagshCSADQYCAxABHDQEMBQsLA0AgCSAPRg0EAn8gCSwAACIMQQBOBEAgDEH/AXEhAyAJQQFqDAELIAktAAFBP3EhAyAMQR9xIQsgDEFfTQRAIAtBBnQgA3IhAyAJQQJqDAELIAktAAJBP3EgA0EGdHIhAyAMQXBJBEAgAyALQQx0ciEDIAlBA2oMAQsgC0ESdEGAgPAAcSAJLQADQT9xIANBBnRyciIDQYCAxABGDQUgCUEEagshCSAFQQFrIgUNAAsLIAdBAWohByADQcUARw0ACwsgDyAJayELDAgLIAZBAksNAQtBAiEGIAotAABB0gBGDQEMBwsgCi8AAEHfpAFGBEAgCiwAAiIDQb9/TA0EIApBAmohBEF+IQUMBQsgCi0AAEHSAEcNAQsgCiwAASIDQb9/TA0BIApBAWohBEF/IQUMAwsgBkEDRg0EQdS7xQAgCkEDEJAIDQQgCiwAAyIDQb9/SgRAIApBA2ohBEF9IQUMAwsgCiAGQQMgBkHYu8UAEP0JAAsgCiAGQQEgBkHou8UAEP0JAAsgCiAGQQIgBkH4u8UAEP0JAAsgA0HBAGtB/wFxQRlLDQEgBSAGaiEHQQAhAwNAIAMgB0cEQCADIARqIANBAWohAywAAEEATg0BDAMLCyAR/QwAAAAAAAAAAAAAAAAAAAAA/QsCACACIAc2ApQBIAIgBDYCkAECQCACQZABakEAENYBRQRAIAIoApABIgVFDQMgAigCmAEiAyACLQCUASACLwCVASATLQAAQRB0ckEIdHIiCU8NASADIAVqLQAAQcEAa0H/AXFBGk8NASACKAKcASEIIAJCADcCoAEgAiAINgKcASACIAM2ApgBIAIgCTYClAEgAiAFNgKQASACQZABakEAENYBDRYgAigCkAEiBUUNAyACKAKYASEDIAItAJQBIAIvAJUBIBMtAABBEHRyQQh0ciEJDAELDBULAkACQCADRQ0AIAMgCU8EQCADIAlGDQEMAgsgAyAFaiwAAEG/f0wNAQsgCSADayELIAMgBWohCUEAIQgMAQsgBSAJIAMgCUHovMUAEP0JAAsCfyALRQRAQQAhFSAIIRYgBCEXIAchGCAKIQ0gBiEQIAkMAQsgCS0AAEEuRw0BIAkgC2ohD0EuIQUgCSEDA0ACQAJ/AkAgBcBBAEgEQCADLQABQT9xIQwgBUEfcSESIAVB/wFxIgVB3wFLDQEgEkEGdCAMciEFIANBAmoMAgsgBUH/AXEhBSADQQFqDAELIAMtAAJBP3EgDEEGdHIhDCAFQfABSQRAIAwgEkEMdHIhBSADQQNqDAELIBJBEnRBgIDwAHEgAy0AA0E/cSAMQQZ0cnIiBUGAgMQARg0BIANBBGoLIQMCQCAFQd///wBxQcEAa0EaSSAFQTBrQQpJciAFQSFrQQ9Jcg0AAkAgBUE6aw4nAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAAsgBUH7AGtBA0sNBAsgAyAPRg0AIAMtAAAhBQwBCwsgCCEWIAQhFyAHIRggCiENIAYhECALIRUgCQshHUEBIRQLIAIgFTYCrAEgAiAdNgKoASACIBA2AqQBIAIgDTYCoAEgAiAYNgKcASACIBc2ApgBIAIgFjYClAEgAiAcNgK0ASACIBs2ArABIAIgFDYCkAELIAAoAhAiBEECRwRAIAIgACkCGDcC1AELIAIgBDYC0AEgAkH8AGogAkGQAWogAkHQAWogACgCACAAKAIEIAAoAgggACgCDBDkAiACKAJ8IgQgBCgCDEEBajYCDA0OIABBLGoiACAaRw0ACwsgGSAOQQxqIg5HDQALDAYLIAQgA0HAjsgAEKMKAAtBASEDDAgLQcz4wQBBGEHk+MEAEN4HAAsgBCABIAgoAgwRAgAhAwwGCyACQTxqQa2OyABBEhCZCA0HDAQLIAJBPGpBmI7IAEEVEJkIRQ0DDAYLIAIoAlgiAEUNAiAAQYCAgIB4Rw0BIAItAFwhAyACKAJgCyEGIANB/wFxQQNHDQEgBigCACEHIAZBBGooAgAiBCgCACIABEAgByAAEQMACyAEKAIEIggEQCAHQQRrKAIAIgBBeHEiBEEEQQggAEEDcSIAGyAIakkNCCAAQQAgBCAIQSdqSxsNCSAHELQCCyAGQQRrKAIAIgBBeHEiBEEQQRQgAEEDcSIAG0kNByAAQQAgBEE0TxsNCCAGELQCDAELIAIoAlwgAEEBENYHCyACQThqIAJBxABqKAIANgIAIAIgAikCPDcDMAJAAkAgASgCAEGI+cEAQQIgASgCBCgCDBEAAA0AAkACQCACKAI4IgBBEE8EQEGK+cEAIAIoAjRBEBCQCEUNAQsgAkEANgKgASACQQE2ApQBIAJBrPnBADYCkAEgAkIENwKYASABKAIAIAEoAgQgAkGQAWoQ2wlFDQEMAgsgAkEwaiIIKAIEIQQCQAJAAkAgCCgCCCIAQQFNBEAgAEEBRw0BQQAhACAIQQA2AgggCCgCAAR/IAQFIAhBAEEBEKkGIAgoAgghACAIKAIECyAAakHTADoAACAIIABBAWo2AggMAwsgBCwAAUG/f0oNAQtBiPjBAEEqQbT5wQAQoggACyAEQdMAOgAAIAggADYCCAsgAigCOCEACyACQTBqIQYgAigCNCENQQAhEAJAIABFDQAgACANaiEEA0ACQCAEIgBBAWsiBCwAACIHQQBIBEAgB0E/cQJ/IABBAmsiBC0AACIHwCIIQUBOBEAgB0EfcQwBCyAIQT9xAn8gAEEDayIELQAAIgfAIghBQE4EQCAHQQ9xDAELIAhBP3EgAEEEayIELQAAQQdxQQZ0cgtBBnRyC0EGdHIhBwsCQCAHQSBGIAdBCWtBBUlyDQAgB0GAAUkNAQJAAkACQAJAIAdBCHYiCEEWaw4bAAUFBQUFBQUFBQIFBQUFBQUFBQUFBQUFBQUBAwsgB0GALUYNAwwECyAHQYDgAEYNAgwDCyAHQf8BcUGcqccAai0AAEECcQ0BDAILIAgNASAHQf8BcUGcqccAai0AAEEBcUUNAQsgBCANRw0BDAILCyAAIA1rIRALAkACQCAQIgQgBigCCCIATQRAIARFIAAgBE1yRQRAIAYoAgQgBGosAABBv39MDQILIAYgBDYCCAsMAQtBlJzGAEEwQcT5wQAQoggACyACQQE2ApQBIAJB8I7IADYCkAEgAkIBNwKcASACIAatQoCAgICAA4Q3A2ggAiACQegAajYCmAEgASgCACABKAIEIAJBkAFqENsJRQ0BCyACKAIwIggEQCACKAI0IgRBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIAhqSQ0HIABBACABIAhBJ2pLGw0IIAQQtAILQQEhAwwBCyACKAIwIgAEQCACKAI0IABBARDWBwtBACEDCyACQeABaiQAIAMPCwJAIAIoAlgiBEGAgICAeEcEQCAERQ0CIAIoAlwiA0EEaygCACIAQXhxIgFBBEEIIABBA3EiABsgBGpJDQUgAEUgASAEQSdqTXINAQwGCyACLQBcQQNHDQEgAigCYCIDKAIAIQggA0EEaigCACIBKAIAIgAEQCAIIAARAwALIAEoAgQiBARAIAhBBGsoAgAiAEF4cSIBQQRBCCAAQQNxIgAbIARqSQ0FIABBACABIARBJ2pLGw0GIAgQtAILIANBBGsoAgAiAEF4cSIBQRBBFCAAQQNxIgAbSQ0EIABFDQAgAUE0Tw0FCyADELQCC0GMm8YAQTcgAkHfAWpB+PfBAEHEm8YAEJUHAAsAC0GYvMUAQT0gAkHfAWpBiLzFAEHYvMUAEJUHAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAAL+loDSX8DfgJ7IwBBkARrIgQkACABKAIAIQIgASgCKCEGIARBADYCWCAEQQE2AkwgBEGI38cANgJIIARCBDcCUCAEQcgAahDHByEDAkACQAJAAkAgBkGAgICAeEYEQCAAQYCAgIB4NgIAIAAgAzYCBCABKAKwASECIAEoArQBIhQEQCACIQADQCAAQShqKAIAIgMEQCAAQSxqKAIAIgZBBGsoAgAiB0F4cSIFQQRBCCAHQQNxIgcbIANqSQ0GIAdBACAFIANBJ2pLGw0HIAYQtAILIAAQ5gQgAEE4aiEAIBRBAWsiFA0ACwsgASgCrAEiAARAIAJBBGsoAgAiA0F4cSIGIABBOGwiAEEEQQggA0EDcSIDG2pJDQQgA0EAIAYgAEEnaksbDQUgAhC0AgsgASgCmAEiAARAIAEoApwBIgJBBGsoAgAiA0F4cSIGQQRBCCADQQNxIgMbIABqSQ0EIANBACAGIABBJ2pLGw0FIAIQtAILIAFB8ABqEOYEDAELIARBNGogAUEkaigCADYCACAEQSRqIAFBFGr9AAIA/QsCACAEQcQAaiABQTRqKAIANgIAIAQgASkCLDcCPCAEIAH9AAIE/QsCFCADIAMoAgAoAgARAwAgBCAGNgI4IAQgAjYCECAEQfAAaiABQZgBav0AAwD9CwMAIARB2ABqIAFBgAFq/QADAP0LAwAgBEHoAGoiByABQZABaikDACJLNwMAIAQgAf0AA3D9CwNIIAQgS6ciJEH/AWpBCHYiAzYChAECQAJAAkACQAJAAkACQAJAAkACQCADIAQoAjBNBEACf0EAIAQoAhxFDQAaIAQpAyAgBCkDKEGQ38cAQQUQugQhSyAEKAIUIgMgS6dxIQ8gS0IZiEL/AINCgYKEiJCgwIABfiFNA0ACQCACIA9qKQAAIkwgTYUiS0J/hSBLQoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIktQRQRAA0AgAiBLeqdBA3YgD2ogA3FBbGxqIgZBDGsoAgBBBUYEQEGQ38cAIAZBEGsoAgBBBRCQCEUNAwsgS0IBfSBLgyJLUEUNAAsLQQAgTCBMQgGGg0KAgYKEiJCgwIB/g1BFDQIaIA8gG0EIaiIbaiADcSEPDAELCyAGQRRrCyECIARBADYCqAMgBEEBNgKcAyAEQazfxwA2ApgDIARCBDcCoAMgBEGYA2oQxwchDyACRQ0GIA8gDygCACgCABEDACACLQAQISUgAigCDCEmIARBEGoiAkG038cAQQUQ6QUhAyAEQQA2AqgDIARBATYCnAMgBEHQ38cANgKYAyAEQgQ3AqADIARBmANqEMcHIQ8gA0UNBiAPIA8oAgAoAgARAwAgAy0AECEnIAMoAgwhKCACQdjfxwBBBRDpBSEDIARBADYCqAMgBEEBNgKcAyAEQfTfxwA2ApgDIARCBDcCoAMgBEGYA2oQxwchDyADRQ0GIA8gDygCACgCABEDACADLQAQISkgAygCDCEqIAJB/N/HAEEFEOkFIQMgBEEANgKoAyAEQQE2ApwDIARBmODHADYCmAMgBEIENwKgAyAEQZgDahDHByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhKyADKAIMISwgAkGg4McAQQUQ6QUhAyAEQQA2AqgDIARBATYCnAMgBEG84McANgKYAyAEQgQ3AqADIARBmANqEMcHIQ8gA0UNBiAPIA8oAgAoAgARAwAgAy0AECEtIAMoAgwhLiACQcTgxwBBBRDpBSEDIARBADYCqAMgBEEBNgKcAyAEQeDgxwA2ApgDIARCBDcCoAMgBEGYA2oQxwchDyADRQ0GIA8gDygCACgCABEDACADLQAQIS8gAygCDCEwIAJB6ODHAEELEOkFIQMgBEEANgKoAyAEQQE2ApwDIARBkOHHADYCmAMgBEIENwKgAyAEQZgDahDHByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhMSADKAIMITIgAkGY4ccAQQsQ6QUhAyAEQQA2AqgDIARBATYCnAMgBEHA4ccANgKYAyAEQgQ3AqADIARBmANqEMcHIQ8gA0UNBiAPIA8oAgAoAgARAwAgAy0AECEzIAMoAgwhNCACQcjhxwBBCxDpBSEDIARBADYCqAMgBEEBNgKcAyAEQfDhxwA2ApgDIARCBDcCoAMgBEGYA2oQxwchDyADRQ0GIA8gDygCACgCABEDACADLQAQITUgAygCDCE2IAJB+OHHAEELEOkFIQMgBEEANgKoAyAEQQE2ApwDIARBoOLHADYCmAMgBEIENwKgAyAEQZgDahDHByEPIANFDQYgDyAPKAIAKAIAEQMAIAMtABAhNyADKAIMITggAkGo4scAQQsQ6QUhAyAEQQA2AqgDIARBATYCnAMgBEHQ4scANgKYAyAEQgQ3AqADIARBmANqEMcHIQ8gA0UNBiAPIA8oAgAoAgARAwAgAy0AECE5IAMoAgwhOiACQdjixwBBCxDpBSEDIARBADYCqAMgBEEBNgKcAyAEQYDjxwA2ApgDIARCBDcCoAMgBEGYA2oQxwchDyADRQ0GIA8gDygCACgCABEDACADLQAQITsgAygCDCE8QQghH0EIIRsgAkGI48cAQQUQ6QUiAgRAIAIoAgwhPSACLQAQIRsLIARBEGpBjePHAEEFEOkFIgIEQCACKAIMIT4gAi0AECEfC0EIISBBCCEhIARBEGpBkuPHAEEFEOkFIgIEQCACKAIMIT8gAi0AECEhCyAEQRBqQZfjxwBBBRDpBSICBEAgAigCDCFAIAItABAhIAtBCCEiQQghIyAEQRBqQZzjxwBBBRDpBSICBEAgAigCDCFBIAItABAhIwsgBEEQakGh48cAQQUQ6QUiAgRAIAIoAgwhQiACLQAQISILIARByABqIgJBpuPHAEEPEOkFIQMgBEEANgKoAyAEQQE2ApwDIARB2OPHADYCmAMgBEIENwKgAyAEQZgDahDHByEUIANFDQUgFCAUKAIAKAIAEQMAIAMtABAhQyADKAIMIUQgAkHg48cAQQ8Q6QUhAyAEQQA2AqgDIARBATYCnAMgBEGQ5McANgKYAyAEQgQ3AqADIARBmANqEMcHIRQgA0UNBSAUIBQoAgAoAgARAwAgAy0AECFFIAMoAgwhRiACQZjkxwBBDBDpBSEDIARBADYCqAMgBEEBNgKcAyAEQcTkxwA2ApgDIARCBDcCoAMgBEGYA2oQxwchFCADRQ0FIBQgFCgCACgCABEDACADLQAQIUcgAygCDCFIIAJBzOTHAEEMEOkFIQIgBEEANgKoAyAEQQE2ApwDIARB+OTHADYCmAMgBEIENwKgAyAEQZgDahDHByEUIAJFDQUgFCAUKAIAKAIAEQMAIAFBOGohHkEAIRQgAi0AECFJIAIoAgwhSiABKAJgQYCAgIB4RiICDQcgASgCWCAkRw0IQQAgHiACGyEFIARB1AFqrUKAgICAEIQhS0EAIQ8DQAJAIAQgDzYC1AEgBEEBNgKcAyAEQYjlxwA2ApgDIARCATcCpAMgBCBLNwPYASAEIARB2AFqNgKgAyAEQdADaiAEQZgDahDmBiAFIAQoAtQDIgMgBCgC2AMQ6QUgBCgC0AMhAkUNACACBEAgAyACQQEQ1gcLIAQoAtQBQQFqIQ8MAQsLIAIEQCADIAJBARDWBwsgBCgC1AEiAyEPAkACQAJAAkACQAJAIAMOGQUBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQMACyADQS1GDQMLIARBATYCnAMgBEHY5ccANgKYAyAEQgE3AqQDIAQgSzcD0AMgBCAEQdADajYCoAMgBEHkAWoiAiAEQZgDahDmBiACEMMHIQIgAEGAgICAeDYCACAAIAI2AgQMDgtBASEPDAILQQIhDwwBC0EDIQ8LIARB8AFqIQlBACEHAkACQAJAAkACQCADQf////8BSw0AIANBA3QiAkH9////B08NAAJAIAJFBEBBBCEGDAELIAMhByACEH4iBkUNAgsgA0ECSQ0CIANBAWsiCkEHcSEIIAYhAiADQQJrQQdPBEAgCkF4cSEKA0AgAkEANgIAIAJBPGpBAToAACACQThqQQA2AgAgAkE0akEBOgAAIAJBMGpBADYCACACQSxqQQE6AAAgAkEoakEANgIAIAJBJGpBAToAACACQSBqQQA2AgAgAkEcakEBOgAAIAJBGGpBADYCACACQRRqQQE6AAAgAkEQakEANgIAIAJBDGpBAToAACACQQhqQQA2AgAgAkEEakEBOgAAIAJBQGshAiAKQQhrIgoNAAsLIAhFDQMDQCACQQA2AgAgAkEEakEBOgAAIAJBCGohAiAIQQFrIggNAAsMAwtBkOXHABC3CAsACyAGIQIgA0UNAQsgAkEBOgAEIAJBADYCAAsgCSADNgIIIAkgBjYCBCAJIAc2AgAgBSgCACICKQMAIUsgBSgCBCEDIAQgBSgCDDYCsAMgBCACNgKoAyAEIAIgA2pBAWo2AqQDIAQgAkEIajYCoAMgBCBLQn+FQoCBgoSIkKDAgH+DNwOYAyAEKAL0ASEIIAQoAvgBIQUCQANAAkAgBEEIaiEHQQAhAiAEQZgDaiIDKAIYIgkEfwJAIAMpAwAiS1BFBEAgAygCECECDAELIAMoAhAhAiADKAIIIQYDQCACQaABayECIAYpAwAgBkEIaiEGQoCBgoSIkKDAgH+DIktCgIGChIiQoMCAf1ENAAsgAyACNgIQIAMgBjYCCCBLQoCBgoSIkKDAgH+FIUsLIAMgCUEBazYCGCADIEtCAX0gS4M3AwAgAiBLeqdBA3ZBbGxqIgNBCGshAiADQRRrBUEACyEDIAcgAjYCBCAHIAM2AgAgBCgCCCICRQ0AIAQoAgwhCSACKAIIIgNBB0kNAUGA5ccAIAIoAgQiAkEHEJAIDQEgBEHQA2ohByACQQdqIQYCQAJAAkACQAJAAkACQAJAAkACQCADQQdrIgMOAgABAgsgB0EAOgABDAcLQQEhAiAGLQAAQStrDgMEAQQBCyAGLQAAQStGBEAgA0EBayECIAZBAWohBiADQQpJDQEMAgsgAyICQQlPDQELQQAhAwNAIAYtAABBMGsiCkEJSw0DIAZBAWohBiAKIANBCmxqIQMgAkEBayICDQALDAELQQAhAwNAIAJFDQEgBi0AAEEwayIKQQlLDQIgA61CCn4iS0IgiKcNAyAGQQFqIQYgAkEBayECIAogS6ciEGoiAyAQTw0ACyAHQQI6AAEMAwsgByADNgIEIAdBADoAAAwDCyAHQQE6AAEgB0EBOgAADAILIAdBAjoAAQsgB0EBOgAACyAELQDQAyAEKALUAyICIAQoAtQBT3INASACIAVPDQIgCSgCACEDIAggAkEDdGoiAiAJLQAEOgAEIAIgAzYCAAwBCwsgBEKAgICAMDcCqAIgBEEANgKQAiAEQQA2AvwBIAQgBCgC1AFBA242AtgBIAQgBEHYAWoiHDYCpAIgBEHcA2ohFiMAQRBrIgwkACAEQfwBaiIFKAIsIQIgBSgCCCEIIAUoAgQhCSAFKAIAIQMCQAJAIAUCfwJAAkAgBSgCKCIXBEAgBSgCMCEGIANBAXEEQCAIIAlLDQMgBUEANgIAQQAhAwsgAiAGTw0BQQEhAyAFIAJBAWoiBjYCLCAFIBcoAgA2AhAgBUEBNgIAQQMhCCAFQQM2AgggBSACNgIMQQAMAwsgA0EBcUUNACAIIAlLDQFBACEDIAVBADYCAAsgBSgCFCIHQQFGBEAgBSgCGCIGIAUoAhxJBEAgBSAGQQFqNgIYIAUoAiAgBSgCJCAGbGohEiACIQYMBAsgBUEANgIUCyAWQQA2AgggFkKAgICAwAA3AgAMAwsgAiEGIAkLIgJBAWoiCTYCBCAFKAIMIAUoAhAgAmxqIRIgBSgCFCEHC0EAIAggCWsiAiACIAhLIgsbIQogB0EBcQRAIAUoAhwiECAFKAIYayINQQAgDSAQTRshDgsCQAJAAkACQEF/IAogDmoiECAKIBBLGyAOIANBAXEbQQFqIgpBfyAKGyIKQf////8DSw0AQQQgCiAKQQRNGyIKQQJ0IhBB/f///wdPDQAgBSgCMCEZIBAQfiITRQ0BIBMgEjYCACAMQQE2AgwgDCATNgIIIAwgCjYCBCAFKAIkIRogBSgCICEdIAUoAhwhFSAFKAIYIREgBSgCECESIAUoAgwhECAXRQRAIAdBAXFFDQNBBCEOQQEhDSAIIQogCSEGIAMhBwNAAkACQAJAIAdBAXFFBEAgAyELIAchAgwBC0EAIQtBACECIAYgCkkNAQsgESAVTw0HIBEgGmwgHWohBSARQQFqIREgCyEDDAELIAYgEmwgEGohBSAGQQFqIgkhBiAHIQILIAwoAgQgDUcEfyACBSAMQQRqIA1BfyAIIAlrIgJBACACIAhNGyICIBUgEWsiB0EAIAcgFU0bIgdqIgsgAiALSxsgByADQQFxIgIbQQFqIgdBfyAHG0EEQQQQ0AUgCSAGIAIbIQYgCCAKIAIbIQogDCgCCCETIAMLIQcgDiATaiAFNgIAIAwgDUEBaiINNgIMIA5BBGohDgwACwALIAdBAXFFBEBBBCEOQQEhDSAGIQIgCCERIAMhBQNAIAVBAXFFIAkgEU9yBH8gAiAZTw0GQQEhAyAXKAIAIRJBAyEIIAIhECACQQFqIgYhAkEDIRFBASEFQQAFIAkLIgdBAWohCSAMKAIEIA1GBEAgDEEEaiANIAggCWsiAkEAIAIgCE0bQQFqQQEgA0EBcSICG0EEQQQQ0AUgCCARIAIbIREgDCgCCCETIAMhBSAGIQILIA4gE2ogByASbCAQajYCACAMIA1BAWoiDTYCDCAOQQRqIQ4MAAsAC0EEIQ5BASENIAghGCAJIQcgAyECA0ACQAJAAn8CQCACQQFxRQRAIAMhCiACIQUMAQtBACEKQQAhBSAHIBhPDQAgAgwBCyAGIBlPDQFBASEDIBcoAgAhEkEAIQdBAyEIIAYhECAGQQFqIQZBAyEYQQELIQUgByASbCAQaiELIAdBAWoiCSEHDAELIBEgFU8NBSARIBpsIB1qIQsgEUEBaiERIAohAwsgDCgCBCANRwR/IAUFIAxBBGogDUF/IAggCWsiAkEAIAIgCE0bIgIgFSARayIFQQAgBSAVTRsiBWoiCiACIApLGyAFIANBAXEiAhtBAWoiBUF/IAUbQQRBBBDQBSAJIAcgAhshByAIIBggAhshGCAMKAIIIRMgAwshAiAOIBNqIAs2AgAgDCANQQFqIg02AgwgDkEEaiEODAALAAtBtIfHABC3CAsACyADQQFxRQ0AQQAgAiALGyEDIAlBAWohBiAQIAkgEmxqIQ5BBCEJQQAhDQNAIAMgDUYNASANQQFqIgIgDCgCBEYEQCAMQQRqIAIgCCAGIA1qayIHQQAgByAITRtBAWpBBEEEENAFIAwoAgghEwsgCSATaiAONgIAIAwgDUECajYCDCAOIBJqIQ4gCUEEaiEJIAIhDQwACwALIBYgDCkCBDcCACAWQQhqIAxBDGooAgA2AgALIAxBEGokACAEQoCAgIDQADcC3AIgBEEANgLEAiAEQQA2ArACIAQgHDYC2AIgBEHoA2ohFiMAQRBrIgwkACAEQbACaiIFKAIsIQIgBSgCCCEKIAUoAgQhCCAFKAIAIQMCQAJAIAUCfwJAAkAgBSgCKCIXBEAgBSgCMCEGIANBAXEEQCAIIApJDQMgBUEANgIAQQAhAwsgAiAGTw0BQQEhAyAFIAJBAWoiBjYCLCAFIBcoAgA2AhAgBUEBNgIAQQMhCiAFQQM2AgggBSACNgIMQQAMAwsgA0EBcUUNACAIIApJDQFBACEDIAVBADYCAAsgBSgCFCIHQQFGBEAgBSgCGCIGIAUoAhxJBEAgBSAGQQFqNgIYIAUoAiAgBSgCJCAGbGpBA2ohEiACIQYMBAsgBUEANgIUCyAWQQA2AgggFkKAgICAwAA3AgAMAwsgAiEGIAgLIgJBAWoiCDYCBCAFKAIMIAUoAhAgAmxqQQNqIRIgBSgCFCEHC0EAIQ5BACAKIAhrIgIgAiAKSyIQGyEJIAdBAXEEQCAFKAIcIgsgBSgCGGsiDUEAIAsgDU8bIQ4LAkACQAJAAkBBfyAJIA5qIgsgCSALSxsgDiADQQFxG0EBaiIJQX8gCRsiCUH/////A0sNAEEEIAkgCUEETRsiCUECdCILQf3///8HTw0AIAUoAjAhGSALEH4iE0UNASATIBI2AgAgDEEBNgIMIAwgEzYCCCAMIAk2AgQgBSgCIEEDaiEaIAUoAiQhHSAFKAIcIRUgBSgCGCENIAUoAhAhEiAFKAIMIQkgF0UEQCAHQQFxRQ0DIAlBA2ohEEEEIQ5BASELIAohBiAIIREgAyEHA0ACQAJAAkAgB0EBcUUEQCADIQkgByECDAELQQAhCUEAIQIgBiARSw0BCyANIBVPDQcgGiANIB1saiEFIA1BAWohDSAJIQMMAQsgECARIBJsaiEFIBFBAWoiCCERIAchAgsgDCgCBCALRwR/IAIFIAxBBGogC0F/IAogCGsiAkEAIAIgCk0bIgIgFSANayIHQQAgByAVTRsiB2oiCSACIAlLGyAHIANBAXEiAhtBAWoiB0F/IAcbQQRBBBDQBSAIIBEgAhshESAKIAYgAhshBiAMKAIIIRMgAwshByAOIBNqIAU2AgAgDCALQQFqIgs2AgwgDkEEaiEODAALAAsgB0EBcUUEQEEEIQ5BASELIAYhAiAKIQ0gAyEFA0AgBUEBcUUgCCANT3IEfyACIBlPDQZBASEDIBcoAgAhEkEDIQogAiEJIAJBAWoiBiECQQMhDUEBIQVBAAUgCAsiB0EBaiEIIAwoAgQgC0YEQCAMQQRqIAsgCiAIayICQQAgAiAKTRtBAWpBASADQQFxIgIbQQRBBBDQBSAKIA0gAhshDSAMKAIIIRMgAyEFIAYhAgsgDiATaiAJIAcgEmxqQQNqNgIAIAwgC0EBaiILNgIMIA5BBGohDgwACwALQQQhDkEBIQsgCiEYIAghByADIQIDQAJAAkACfwJAIAJBAXFFBEAgAyEQIAIhBQwBC0EAIRBBACEFIAcgGE8NACACDAELIAYgGU8NAUEBIQMgFygCACESQQAhB0EDIQogBiIJQQFqIQZBAyEYQQELIQUgCSAHIBJsakEDaiERIAdBAWoiCCEHDAELIA0gFU8NBSAaIA0gHWxqIREgDUEBaiENIBAhAwsgDCgCBCALRwR/IAUFIAxBBGogC0F/IAogCGsiAkEAIAIgCk0bIgIgFSANayIFQQAgBSAVTRsiBWoiECACIBBLGyAFIANBAXEiAhtBAWoiBUF/IAUbQQRBBBDQBSAIIAcgAhshByAKIBggAhshGCAMKAIIIRMgAwshAiAOIBNqIBE2AgAgDCALQQFqIgs2AgwgDkEEaiEODAALAAtBtIfHABC3CAsACyADQQFxRQ0AQQAgAiAQGyEDIAhBAWohBiAJIAggEmxqQQNqIQ5BBCEIQQAhCwNAIAMgC0YNASALQQFqIgIgDCgCBEYEQCAMQQRqIAIgCiAGIAtqayIHQQAgByAKTRtBAWpBBEEEENAFIAwoAgghEwsgCCATaiAONgIAIAwgC0ECajYCDCAOIBJqIQ4gCEEEaiEIIAIhCwwACwALIBYgDCkCBDcCACAWQQhqIAxBDGooAgA2AgALIAxBEGokACAEQoCAgIDwADcCkAMgBEEANgL4AiAEQQA2AuQCIAQgHDYCjAMgBEH0A2ohFiMAQRBrIgwkACAEQeQCaiIFKAIsIQIgBSgCCCEKIAUoAgQhCCAFKAIAIQMCQAJAIAUCfwJAAkAgBSgCKCIXBEAgBSgCMCEGIANBAXEEQCAIIApJDQMgBUEANgIAQQAhAwsgAiAGTw0BQQEhAyAFIAJBAWoiBjYCLCAFIBcoAgA2AhAgBUEBNgIAQQMhCiAFQQM2AgggBSACNgIMQQAMAwsgA0EBcUUNACAIIApJDQFBACEDIAVBADYCAAsgBSgCFCIHQQFGBEAgBSgCGCIGIAUoAhxJBEAgBSAGQQFqNgIYIAUoAiAgBSgCJCAGbGpBCGohEiACIQYMBAsgBUEANgIUCyAWQQA2AgggFkKAgICAwAA3AgAMAwsgAiEGIAgLIgJBAWoiCDYCBCAFKAIMIAUoAhAgAmxqQQhqIRIgBSgCFCEHC0EAIQ5BACAKIAhrIgIgAiAKSyIQGyEJIAdBAXEEQCAFKAIcIgsgBSgCGGsiDUEAIAsgDU8bIQ4LAkACQAJAAkBBfyAJIA5qIgsgCSALSxsgDiADQQFxG0EBaiIJQX8gCRsiCUH/////A0sNAEEEIAkgCUEETRsiCUECdCILQf3///8HTw0AIAUoAjAhHCALEH4iE0UNASATIBI2AgAgDEEBNgIMIAwgEzYCCCAMIAk2AgQgBSgCIEEIaiEZIAUoAiQhGiAFKAIcIRUgBSgCGCENIAUoAhAhEiAFKAIMIQkgF0UEQCAHQQFxRQ0DIAlBCGohEEEEIQ5BASELIAohBiAIIREgAyEHA0ACQAJAAkAgB0EBcUUEQCADIQkgByECDAELQQAhCUEAIQIgBiARSw0BCyANIBVPDQcgGSANIBpsaiEFIA1BAWohDSAJIQMMAQsgECARIBJsaiEFIBFBAWoiCCERIAchAgsgDCgCBCALRwR/IAIFIAxBBGogC0F/IAogCGsiAkEAIAIgCk0bIgIgFSANayIHQQAgByAVTRsiB2oiCSACIAlLGyAHIANBAXEiAhtBAWoiB0F/IAcbQQRBBBDQBSAIIBEgAhshESAKIAYgAhshBiAMKAIIIRMgAwshByAOIBNqIAU2AgAgDCALQQFqIgs2AgwgDkEEaiEODAALAAsgB0EBcUUEQEEEIQ5BASELIAYhAiAKIQ0gAyEFA0AgBUEBcUUgCCANT3IEfyACIBxPDQZBASEDIBcoAgAhEkEDIQogAiEJIAJBAWoiBiECQQMhDUEBIQVBAAUgCAsiB0EBaiEIIAwoAgQgC0YEQCAMQQRqIAsgCiAIayICQQAgAiAKTRtBAWpBASADQQFxIgIbQQRBBBDQBSAKIA0gAhshDSAMKAIIIRMgAyEFIAYhAgsgDiATaiAJIAcgEmxqQQhqNgIAIAwgC0EBaiILNgIMIA5BBGohDgwACwALQQQhDkEBIQsgCiEYIAghByADIQIDQAJAAkACfwJAIAJBAXFFBEAgAyEQIAIhBQwBC0EAIRBBACEFIAcgGE8NACACDAELIAYgHE8NAUEBIQMgFygCACESQQAhB0EDIQogBiIJQQFqIQZBAyEYQQELIQUgCSAHIBJsakEIaiERIAdBAWoiCCEHDAELIA0gFU8NBSAZIA0gGmxqIREgDUEBaiENIBAhAwsgDCgCBCALRwR/IAUFIAxBBGogC0F/IAogCGsiAkEAIAIgCk0bIgIgFSANayIFQQAgBSAVTRsiBWoiECACIBBLGyAFIANBAXEiAhtBAWoiBUF/IAUbQQRBBBDQBSAIIAcgAhshByAKIBggAhshGCAMKAIIIRMgAwshAiAOIBNqIBE2AgAgDCALQQFqIgs2AgwgDkEEaiEODAALAAtBtIfHABC3CAsACyADQQFxRQ0AQQAgAiAQGyEDIAhBAWohBiAJIAggEmxqQQhqIQ5BBCEIQQAhCwNAIAMgC0YNASALQQFqIgIgDCgCBEYEQCAMQQRqIAIgCiAGIAtqayIHQQAgByAKTRtBAWpBBEEEENAFIAwoAgghEwsgCCATaiAONgIAIAwgC0ECajYCDCAOIBJqIQ4gCEEEaiEIIAIhCwwACwALIBYgDCkCBDcCACAWQQhqIAxBDGooAgA2AgALIAxBEGokACAEQdgDaiICIARB+AFqKAIANgIAIARBqANqIARB4ANq/QADAP0LAwAgBEG4A2ogBEHwA2r9AAMA/QsDACAEQaADaiACKQMANwMAIAQgBCkC8AE3A5gDIAQgBCgC1AE2AsgDIARBlAFqIQICQCAEQZgDaiIDKAIAIgZBgICAgHhHBEAgAygCKCEHIAMoAiQhBSADKAIcIQkgAygCGCEIIAMoAhAhCiADKAIMIRAgAygCBCELIA9FBEAgBgRAIAtBBGsoAgAiA0F4cSINIAZBA3QiBkEEQQggA0EDcSIDG2pJDRIgA0EAIA0gBkEnaksbDRMgCxC0AgsgEARAIApBBGsoAgAiA0F4cSIGIBBBAnQiEEEEQQggA0EDcSIDG2pJDRIgA0EAIAYgEEEnaksbDRMgChC0AgsgCARAIAlBBGsoAgAiA0F4cSIGIAhBAnQiCEEEQQggA0EDcSIDG2pJDRIgA0EAIAYgCEEnaksbDRMgCRC0AgsgBQRAIAdBBGsoAgAiA0F4cSIGIAVBAnQiBUEEQQggA0EDcSIDG2pJDRIgA0EAIAYgBUEnaksbDRMgBxC0AgsgAkGAgICAeDYCAAwCCyACIAc2AiggAiAFNgIkIAIgCTYCHCACIAg2AhggAiAKNgIQIAIgEDYCDCACIAs2AgQgAiAGNgIAIAIgAykCLDcCLCACIAMoAiA2AiAgAiADKAIUNgIUIAIgAygCCDYCCAwBCyACQYCAgIB4NgIADAALIAQoApQBQYCAgIB4Rg0KIAQoAsQBIgJBCWsOEAMKCgoKCgoKCgoKCgoKCgQCCyACIAVBoOXHABC/BwALIARBAjYCnAMgBEHY5scANgKYAyAEQgI3AqQDIAQgBEGEAWqtQoCAgIAQhDcD2AMgBCAEQTBqrUKAgICAEIQ3A9ADIAQgBEHQA2o2AqADIARBiAFqIgIgBEGYA2oQ4gQgAhDDByECIABBgICAgHg2AgAgACACNgIEDAkLIAJBLUYNAgwHC0EBIRQMBgtBAiEUDAULQQMhFAwECyAAQYCAgIB4NgIAIAAgFDYCBAwECyAAQYCAgIB4NgIAIAAgDzYCBAwDCyAEQYCAgIB4NgKUAQwBCyAEQQM2ApwDIARBkObHADYCmAMgBEICNwKkAyAEIAetQoCAgIAQhDcD2AMgBCABQdgAaq1CgICAgBCENwPQAyAEIARB0ANqNgKgAyAEQcgBaiICIARBmANqEOYGIAIQwwchAiAAQYCAgIB4NgIAIAAgAjYCBAwBCyAEIAEoAqwBNgKIBCAEIAEoArABIgI2AoQEIAQgAjYCgAQgBCACIAEoArQBQThsajYCjAQgBEGYA2ohBUEAIQkgBEGABGoiASgCDCIKIAEoAgQiA2siAkE4biEIAkACQAJAIAJByP///31LDQAgCEEGdCICQfn///8HTw0AAkAgAkUEQEEIIQJBACEIDAELIAIQfiICRQ0CCyABKAIIIRAgASgCACELIAMgCkcEQCACIQEDQCADQTRqKAIAIQ0gA0EsaigCACEGQQMhBwJAAkACQAJAIANBMGooAgAiEUECaw4FAgMDAAEDC0EDQQAgBkGU3McAQQUQkAgbIQcMAgtBA0EBIAZB8NvHAEEGEJAIGyEHDAELQQNBAiAGQZncxwBBAhCQCBshBwsgA0EQav0AAwAhTiADQSBqKQMAIUsgA/0AAwAhTyABQShqIANBKGooAgA2AgAgAUEgaiBLNwMAIAFBEGogTv0LAwAgASBP/QsDACABQTxqIAc6AAAgAUE4akEANgIAIAFBNGogDTYCACABQTBqIBE2AgAgAUEsaiAGNgIAIAFBQGshASAJQQFqIQkgA0E4aiIDIApHDQALCyAQBEAgC0EEaygCACIBQXhxIgMgEEE4bCIGQQRBCCABQQNxIgEbakkNByABQQAgAyAGQSdqSxsNCCALELQCCyAFIAk2AgggBSACNgIEIAUgCDYCAAwCC0GYn8cAELcICwALIABCBDcCfCAAQgA3AnQgAEKAgICAwAA3AmwgAEIENwJkIABCADcCXCAAQoCAgIDAADcCVCAAQgQ3AkwgAEIANwJEIABCgICAgMAANwI8IABCBDcCNCAAQgA3AiwgAEKAgICAwAA3AiQgAEIENwIcIABCADcCFCAAQoCAgIDAADcCDCAAQQhqIARBoANqKAIANgIAIAAgBCkCmAM3AgAgACBENgK4ASAAIEY2AsABIAAgSDYCyAEgACBKNgLQASAAID02AtgBIAAgPjYC4AEgACA/NgLoASAAIEA2AvABIAAgQTYC+AEgACBCNgKAAiAAICY2AogCIAAgKDYCkAIgACAqNgKYAiAAICw2AqACIAAgLjYCqAIgACAwNgKwAiAAIDI2ArgCIAAgNDYCwAIgACA2NgLIAiAAIDg2AtACIAAgOjYC2AIgACA8NgLgAiAAQQA2AugCIAAgJDYC7AIgACAUNgLwAiAAIDs6AOQCIAAgOToA3AIgACA3OgDUAiAAIDU6AMwCIAAgMzoAxAIgACAxOgC8AiAAIC86ALQCIAAgLToArAIgACArOgCkAiAAICk6AJwCIAAgJzoAlAIgACAlOgCMAiAAICI6AIQCIAAgIzoA/AEgACAgOgD0ASAAICE6AOwBIAAgHzoA5AEgACAbOgDcASAAIEk6ANQBIAAgRzoAzAEgACBFOgDEASAAIEM6ALwBIABBtAFqIARBxAFqKAIANgIAIABBpAFqIARBtAFq/QACAP0LAgAgAEGUAWogBEGkAWr9AAIA/QsCACAAIAT9AAKUAf0LAoQBIARByABqEK4HIARBEGoQrgcCQCAeKAIoIgBBgICAgHhHBEAgAARAIB4oAiwiAUEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAGpJDQYgAkEAIAMgAEEnaksbDQcgARC0AgsgHhDmBAsMAAsMAgsgBCgCcCIABEAgBCgCdCICQQRrKAIAIgNBeHEiBkEEQQggA0EDcSIDGyAAakkNAyADQQAgBiAAQSdqSxsNBCACELQCCyAEQcgAahDmBCAEKAI4IgAEQCAEKAI8IgJBBGsoAgAiA0F4cSIGQQRBCCADQQNxIgMbIABqSQ0DIANBACAGIABBJ2pLGw0EIAIQtAILIARBEGoQ5gQgASgCsAEhAiABKAK0ASIUBEAgAiEAA0AgAEEoaigCACIDBEAgAEEsaigCACIGQQRrKAIAIgdBeHEiBUEEQQggB0EDcSIHGyADakkNBSAHQQAgBSADQSdqSxsNBiAGELQCCyAAEOYEIABBOGohACAUQQFrIhQNAAsLIAEoAqwBIgBFDQAgAkEEaygCACIDQXhxIgYgAEE4bCIAQQRBCCADQQNxIgMbakkNAiADQQAgBiAAQSdqSxsNAyACELQCCyABKAJgIgBBgICAgHhGDQAgAARAIAEoAmQiAkEEaygCACIDQXhxIgZBBEEIIANBA3EiAxsgAGpJDQIgA0EAIAYgAEEnaksbDQMgAhC0AgsgAUE4ahDmBAsgBEGQBGokAA8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC7MpAhx7E38CQAJAAkACQAJAAkAgAUECSwRAIANFDQEgBUUNAiAHRQ0DIABB/wEgAi0AAEGFlQFsQQh2IiQgBC0AACImQZqCAmxBCHZqQZWKAWtBBnUiJUEAICVBAEobIiUgJUH/AU4bOgACIABB/wEgJCAGLQAAIidBpcwBbEEIdmpBmu8Aa0EGdSIlQQAgJUEAShsiJSAlQf8BThs6AAAgAEH/ASAkICZBkzJsQQh2ICdBiOgAbEEIdmprQYTEAGpBBnUiJEEAICRBAEobIiQgJEH/AU4bOgABIAJBAWohLiADQQFrIgNBfnEhMiAAQQNqISwgA0EBcSE2IAFBA2siASABQQZwIjNrIi9BBkkNBiADQQF2IgMiASAvQQZrIiRBBm4iJSABICVJGyIBIAdBAWsiLSIlIAEgJUkbIgEgBUEBayIlIAEgJUkbIgFBEEkNBCAsIAIgAyAkQQZuIiQgAyAkSRsiAyAtIiQgAyAkSRsiAyAlIiQgAyAkSRsiA0EBdGpBA2pJIC4gACADQQZsakEJaiIkSXENBCAEICRJICwgBCADQQJqIgNqSXEgBiAkSSAsIAMgBmpJcXINBCABQQFqIgNBD3EiJEEQICQbIiQgAUF/c2ohKCAHIAMgJGsiKWshMCAGIClqISQgBSApayExIAQgKWohJSAuIClBAXQiAWohAyAyIAFrIS0gLCApQQZsaiEBIC8gKUF6bGohKSAm/Q8hCCAn/Q8hFyAEISYgBiEnA0AgJkEBav0AAAAhGSAAQd0AaiACQQdqIAJBBWogAkEDaiACQQFq/QcAAP1UAAAB/VQAAAL9VAAAA/2JAf2pAf0MhUoAAIVKAACFSgAAhUoAACIM/bUBQQj9rQEiDSAXICdBAWr9AAAAIhf9DQ8QERITFBUWFxgZGhscHR79iQEiCf0MCQAJAAkACQAJAAkACQAJACIO/ZUBIBf9iQEiGP2OASAYIAn9jgH9DAMAAwADAAMAAwADAAMAAwAiD/2VAf2OAf0MCAAIAAgACAAIAAgACAAIACIV/Y4BQQT9jQEiCv2pASIQ/QwlZgAAJWYAACVmAAAlZgAAIhH9tQFBCP2tAf2uAf0MZsj//2bI//9myP//Zsj//yIS/a4BQQb9rAH9DAAAAAAAAAAAAAAAAAAAAAAiCf24Af0M/wAAAP8AAAD/AAAA/wAAACIL/bYBIAJBD2ogAkENaiACQQtqIAJBCWr9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akBIAz9tQFBCP2tASIaIAogCf0NCAkKCwwNDg8AAQABAAEAAf2pASITIBH9tQFBCP2tAf2uASAS/a4BQQb9rAEgCf24ASAL/bYB/YYBIAJBF2ogAkEVaiACQRNqIAJBEWr9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akBIAz9tQFBCP2tASIbIBcgCf0NBwgJCgsMDQ4AAAAAAAAAAP2JASIKIA79lQEgFyAJ/Q0ICQoLDA0ODwAAAAAAAAAA/YkBIhz9jgEgHCAK/Y4BIA/9lQH9jgEgFf2OAUEE/Y0BIgr9qQEiHSAR/bUBQQj9rQH9rgEgEv2uAUEG/awBIAn9uAEgC/22ASACQR9qIAJBHWogAkEbaiACQRlq/QcAAP1UAAAB/VQAAAL9VAAAA/2JAf2pASAM/bUBQQj9rQEiFCAKIAn9DQgJCgsMDQ4PAAEAAQABAAH9qQEiHiAR/bUBQQj9rQH9rgEgEv2uAUEG/awBIAn9uAEgC/22Af2GAf1mIgr9WAAADyAAQdcAaiAK/VgAAA4gAEHRAGogCv1YAAANIABBywBqIAr9WAAADCAAQcUAaiAK/VgAAAsgAEE/aiAK/VgAAAogAEE5aiAK/VgAAAkgAEEzaiAK/VgAAAggAEEtaiAK/VgAAAcgAEEnaiAK/VgAAAYgAEEhaiAK/VgAAAUgAEEbaiAK/VgAAAQgAEEVaiAK/VgAAAMgAEEPaiAK/VgAAAIgAEEJaiAK/VgAAAEgAEEDaiAK/VgAAAAgAEHeAGogDSAIIBn9DQ8QERITFBUWFxgZGhscHR79iQEiCCAO/ZUBIBn9iQEiH/2OASAfIAj9jgEgD/2VAf2OASAV/Y4BQQT9jQEiCP2pASIg/QwTGQAAExkAABMZAAATGQAAIgr9tQFBCP2tASAQ/QwINAAACDQAAAg0AAAINAAAIhD9tQFBCP2tAf2uAf2xAf0MBCIAAAQiAAAEIgAABCIAACIW/a4BQQb9rAEgCf24ASAL/bYBIBogCCAJ/Q0ICQoLDA0ODwABAAEAAQAB/akBIiIgCv21AUEI/a0BIBMgEP21AUEI/a0B/a4B/bEBIBb9rgFBBv2sASAJ/bgBIAv9tgH9hgEgGyAZIAn9DQcICQoLDA0OAAAAAAAAAAD9iQEiCCAO/ZUBIBkgCf0NCAkKCwwNDg8AAAAAAAAAAP2JASIh/Y4BICEgCP2OASAP/ZUB/Y4BIBX9jgFBBP2NASII/akBIiMgCv21AUEI/a0BIB0gEP21AUEI/a0B/a4B/bEBIBb9rgFBBv2sASAJ/bgBIAv9tgEgFCAIIAn9DQgJCgsMDQ4PAAEAAQABAAH9qQEiHSAK/bUBQQj9rQEgHiAQ/bUBQQj9rQH9rgH9sQEgFv2uAUEG/awBIAn9uAEgC/22Af2GAf1mIgj9WAAADyAAQdgAaiAI/VgAAA4gAEHSAGogCP1YAAANIABBzABqIAj9WAAADCAAQcYAaiAI/VgAAAsgAEFAayAI/VgAAAogAEE6aiAI/VgAAAkgAEE0aiAI/VgAAAggAEEuaiAI/VgAAAcgAEEoaiAI/VgAAAYgAEEiaiAI/VgAAAUgAEEcaiAI/VgAAAQgAEEWaiAI/VgAAAMgAEEQaiAI/VgAAAIgAEEKaiAI/VgAAAEgAEEEaiAI/VgAAAAgAEHfAGogDSAg/QwagQAAGoEAABqBAAAagQAAIg39tQFBCP2tAf2uAf0M67r//+u6///ruv//67r//yIT/a4BQQb9rAEgCf24ASAL/bYBIBogIiAN/bUBQQj9rQH9rgEgE/2uAUEG/awBIAn9uAEgC/22Af2GASAbICMgDf21AUEI/a0B/a4BIBP9rgFBBv2sASAJ/bgBIAv9tgEgFCAdIA39tQFBCP2tAf2uASAT/a4BQQb9rAEgCf24ASAL/bYB/YYB/WYiCP1YAAAPIABB2QBqIAj9WAAADiAAQdMAaiAI/VgAAA0gAEHNAGogCP1YAAAMIABBxwBqIAj9WAAACyAAQcEAaiAI/VgAAAogAEE7aiAI/VgAAAkgAEE1aiAI/VgAAAggAEEvaiAI/VgAAAcgAEEpaiAI/VgAAAYgAEEjaiAI/VgAAAUgAEEdaiAI/VgAAAQgAEEXaiAI/VgAAAMgAEERaiAI/VgAAAIgAEELaiAI/VgAAAEgAEEFaiAI/VgAAAAgAkEcaiE0IAJBGmohNSACQR5qISogJv0AAAAhGiAAQeAAaiIrIAJBCGogAkEGaiACQQRqIAJBAmr9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akBIAz9tQFBCP2tASIbIBggDv2VASAn/QAAACII/YkBIhT9jgEgFCAY/Y4BIA/9lQH9jgEgFf2OAUEE/Y0BIhT9qQEiHSAR/bUBQQj9rQH9rgEgEv2uAUEG/awBIAn9uAEgC/22ASACQRBqIAJBDmogAkEMaiACQQpq/QcAAP1UAAAB/VQAAAL9VAAAA/2JAf2pASAM/bUBQQj9rQEiGCAUIAn9DQgJCgsMDQ4PAAEAAQABAAH9qQEiHiAR/bUBQQj9rQH9rgEgEv2uAUEG/awBIAn9uAEgC/22Af2GASACQRhqIAJBFmogAkEUaiACQRJq/QcAAP1UAAAB/VQAAAL9VAAAA/2JAf2pASAM/bUBQQj9rQEiFCAcIA79lQEgCCAJ/Q0ICQoLDA0ODwAAAAAAAAAA/YkBIgj9jgEgCCAc/Y4BIA/9lQH9jgEgFf2OAUEE/Y0BIgj9qQEiHCAR/bUBQQj9rQH9rgEgEv2uAUEG/awBIAn9uAEgC/22ASACQSBqIgIgKiA0IDX9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akBIAz9tQFBCP2tASIMIAggCf0NCAkKCwwNDg8AAQABAAEAAf2pASIgIBH9tQFBCP2tAf2uASAS/a4BQQb9rAEgCf24ASAL/bYB/YYB/WYiCP1YAAAPIABB2gBqIAj9WAAADiAAQdQAaiAI/VgAAA0gAEHOAGogCP1YAAAMIABByABqIAj9WAAACyAAQcIAaiAI/VgAAAogAEE8aiAI/VgAAAkgAEE2aiAI/VgAAAggAEEwaiAI/VgAAAcgAEEqaiAI/VgAAAYgAEEkaiAI/VgAAAUgAEEeaiAI/VgAAAQgAEEYaiAI/VgAAAMgAEESaiAI/VgAAAIgAEEMaiAI/VgAAAEgAEEGaiAI/VgAAAAgAEHhAGogGyAfIA79lQEgGv2JASII/Y4BIAggH/2OASAP/ZUB/Y4BIBX9jgFBBP2NASII/akBIhEgCv21AUEI/a0BIB0gEP21AUEI/a0B/a4B/bEBIBb9rgFBBv2sASAJ/bgBIAv9tgEgGCAIIAn9DQgJCgsMDQ4PAAEAAQABAAH9qQEiEiAK/bUBQQj9rQEgHiAQ/bUBQQj9rQH9rgH9sQEgFv2uAUEG/awBIAn9uAEgC/22Af2GASAUICEgDv2VASAaIAn9DQgJCgsMDQ4PAAAAAAAAAAD9iQEiCP2OASAIICH9jgEgD/2VAf2OASAV/Y4BQQT9jQEiCP2pASIOIAr9tQFBCP2tASAcIBD9tQFBCP2tAf2uAf2xASAW/a4BQQb9rAEgCf24ASAL/bYBIAwgCCAJ/Q0ICQoLDA0ODwABAAEAAQAB/akBIg8gCv21AUEI/a0BICAgEP21AUEI/a0B/a4B/bEBIBb9rgFBBv2sASAJ/bgBIAv9tgH9hgH9ZiII/VgAAA8gAEHbAGogCP1YAAAOIABB1QBqIAj9WAAADSAAQc8AaiAI/VgAAAwgAEHJAGogCP1YAAALIABBwwBqIAj9WAAACiAAQT1qIAj9WAAACSAAQTdqIAj9WAAACCAAQTFqIAj9WAAAByAAQStqIAj9WAAABiAAQSVqIAj9WAAABSAAQR9qIAj9WAAABCAAQRlqIAj9WAAAAyAAQRNqIAj9WAAAAiAAQQ1qIAj9WAAAASAAQQdqIAj9WAAAACAAQeIAaiAbIBEgDf21AUEI/a0B/a4BIBP9rgFBBv2sASAJ/bgBIAv9tgEgGCASIA39tQFBCP2tAf2uASAT/a4BQQb9rAEgCf24ASAL/bYB/YYBIBQgDiAN/bUBQQj9rQH9rgEgE/2uAUEG/awBIAn9uAEgC/22ASAMIA8gDf21AUEI/a0B/a4BIBP9rgFBBv2sASAJ/bgBIAv9tgH9hgH9ZiII/VgAAA8gAEHcAGogCP1YAAAOIABB1gBqIAj9WAAADSAAQdAAaiAI/VgAAAwgAEHKAGogCP1YAAALIABBxABqIAj9WAAACiAAQT5qIAj9WAAACSAAQThqIAj9WAAACCAAQTJqIAj9WAAAByAAQSxqIAj9WAAABiAAQSZqIAj9WAAABSAAQSBqIAj9WAAABCAAQRpqIAj9WAAAAyAAQRRqIAj9WAAAAiAAQQ5qIAj9WAAAASAAQQhqIAj9WAAAACAmQRBqISYgJ0EQaiEnICshACAZIQggKEEQaiIoDQALIAj9Fg8hJiAX/RYPIScMBQtBAyABQbTyxAAQogoAC0EAQQBBxPLEABC/BwALQQBBAEHU8sQAEL8HAAtBAEEAQeTyxAAQvwcACyAEISUgBSExIAYhJCAHITAgLyEpICwhASAyIS0gLiEDCwNAIC1FIDFBAklyIDBBAU1yDQEgAUECakH/ASADLQAAQYWVAWxBCHYiKyAmQf8BcSICQQlsICVBAWoiAC0AACImaiACICZqQQNsakEIakEEdiI0QZqCAmxBCHZqQZWKAWtBBnUiAkEAIAJBAEobIgIgAkH/AU4bOgAAIAFB/wEgKyAnQf8BcSIoQQlsICRBAWoiAi0AACInaiAnIChqQQNsakEIakEEdiI1QaXMAWxBCHZqQZrvAGtBBnUiKEEAIChBAEobIiggKEH/AU4bOgAAIAFBBWpB/wEgA0EBai0AAEGFlQFsQQh2IiggJS0AACIlICZBCWxqICUgJmpBA2xqQQhqQQR2IiVBmoICbEEIdmpBlYoBa0EGdSIqQQAgKkEAShsiKiAqQf8BThs6AAAgAUEDakH/ASAoICQtAAAiJCAnQQlsaiAkICdqQQNsakEIakEEdiIkQaXMAWxBCHZqQZrvAGtBBnUiKkEAICpBAEobIiogKkH/AU4bOgAAIAFBAWpB/wEgKyA0QZMybEEIdiA1QYjoAGxBCHZqa0GExABqQQZ1IitBACArQQBKGyIrICtB/wFOGzoAACABQQRqQf8BICggJUGTMmxBCHYgJEGI6ABsQQh2amtBhMQAakEGdSIkQQAgJEEAShsiJCAkQf8BThs6AAAgAUEGaiEBIANBAmohAyAwQQFrITAgMUEBayExIC1BAmshLSAAISUgAiEkIClBBmsiKUEGTw0ACwsCQAJAAkACQAJAIDYEQCAEIAVqQQFrIgBFDQIgBiAHakEBayIDRQ0BIDNFDQMgAC0AACEAICwgL2oiAUH/ASAuIDJqLQAAQYWVAWxBCHYiAiADLQAAIgNBpcwBbEEIdmpBmu8Aa0EGdSIEQQAgBEEAShsiBCAEQf8BThs6AAAgM0EBRg0EIAFB/wEgAiAAQZMybEEIdiADQYjoAGxBCHZqa0GExABqQQZ1IgNBACADQQBKGyIDIANB/wFOGzoAASAzQQJNDQUgAUH/ASAAQZqCAmxBCHYgAmpBlYoBa0EGdSIAQQAgAEEAShsiACAAQf8BThs6AAILDwtBhPPEABCkCgALQfTyxAAQpAoAC0EAQQBBpPPEABC/BwALQQFBAUG088QAEL8HAAtBAkECQcTzxAAQvwcAC8EpAhx7E38CQAJAAkACQAJAAkACQCABQQJLBEAgA0UNASAFRQ0CIAdFDQMgAEH/ASACLQAAQYWVAWxBCHYiJCAELQAAIidBmoICbEEIdmpBlYoBa0EGdSIlQQAgJUEAShsiJSAlQf8BThs6AAIgAEH/ASAkIAYtAAAiKEGlzAFsQQh2akGa7wBrQQZ1IiVBACAlQQBKGyIlICVB/wFOGzoAACAAQf8BICQgJ0GTMmxBCHYgKEGI6ABsQQh2amtBhMQAakEGdSIkQQAgJEEAShsiJCAkQf8BThs6AAEgAUEDRg0EIAJBAWohLSADQQFrIgNBfnEhMSAAQQRqISsgA0EBcSE1IAFBBGsiNkF4cSIyRQ0HIANBAXYiAyIkIAFBDGtBA3YiASABICRLGyIkIAdBAWsiKSIlICQgJUkbIiQgBUEBayIlICQgJUkbIiRBEEkNBSArIAIgAyABIAEgA0sbIgEgKSIDIAEgA0kbIgEgJSIDIAEgA0kbIgFBAXRqQQNqSSAtIAAgAUEDdGpBC2oiA0lxDQUgKyAEIAFBAmoiAWpJIAMgBEtxICsgASAGakkgAyAGS3FyDQUgByAkQQFqIgEgAUEPcSIBQRAgARtrIiZrIS4gBiAmaiEkIAUgJmshLyAEICZqISUgLSAmQQF0IgFqIQMgMSABayEwICsgJkEDdCIsaiEBIDIgLGshLCAn/Q8hCCAo/Q8hFyAEIScgBiEoA0AgJ0EBav0AAAAhGSAAQfwAaiACQQdqIAJBBWogAkEDaiACQQFq/QcAAP1UAAAB/VQAAAL9VAAAA/2JAf2pAf0MhUoAAIVKAACFSgAAhUoAACIM/bUBQQj9rQEiDSAXIChBAWr9AAAAIhf9DQ8QERITFBUWFxgZGhscHR79iQEiCf0MCQAJAAkACQAJAAkACQAJACIO/ZUBIBf9iQEiGP2OASAYIAn9jgH9DAMAAwADAAMAAwADAAMAAwAiD/2VAf2OAf0MCAAIAAgACAAIAAgACAAIACIV/Y4BQQT9jQEiCv2pASIQ/QwlZgAAJWYAACVmAAAlZgAAIhH9tQFBCP2tAf2uAf0MZsj//2bI//9myP//Zsj//yIS/a4BQQb9rAH9DAAAAAAAAAAAAAAAAAAAAAAiCf24Af0M/wAAAP8AAAD/AAAA/wAAACIL/bYBIAJBD2ogAkENaiACQQtqIAJBCWr9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akBIAz9tQFBCP2tASIaIAogCf0NCAkKCwwNDg8AAQABAAEAAf2pASITIBH9tQFBCP2tAf2uASAS/a4BQQb9rAEgCf24ASAL/bYB/YYBIAJBF2ogAkEVaiACQRNqIAJBEWr9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akBIAz9tQFBCP2tASIbIBcgCf0NBwgJCgsMDQ4AAAAAAAAAAP2JASIKIA79lQEgFyAJ/Q0ICQoLDA0ODwAAAAAAAAAA/YkBIhz9jgEgHCAK/Y4BIA/9lQH9jgEgFf2OAUEE/Y0BIgr9qQEiHSAR/bUBQQj9rQH9rgEgEv2uAUEG/awBIAn9uAEgC/22ASACQR9qIAJBHWogAkEbaiACQRlq/QcAAP1UAAAB/VQAAAL9VAAAA/2JAf2pASAM/bUBQQj9rQEiFCAKIAn9DQgJCgsMDQ4PAAEAAQABAAH9qQEiHiAR/bUBQQj9rQH9rgEgEv2uAUEG/awBIAn9uAEgC/22Af2GAf1mIgr9WAAADyAAQfQAaiAK/VgAAA4gAEHsAGogCv1YAAANIABB5ABqIAr9WAAADCAAQdwAaiAK/VgAAAsgAEHUAGogCv1YAAAKIABBzABqIAr9WAAACSAAQcQAaiAK/VgAAAggAEE8aiAK/VgAAAcgAEE0aiAK/VgAAAYgAEEsaiAK/VgAAAUgAEEkaiAK/VgAAAQgAEEcaiAK/VgAAAMgAEEUaiAK/VgAAAIgAEEMaiAK/VgAAAEgAEEEaiAK/VgAAAAgAEH9AGogDSAIIBn9DQ8QERITFBUWFxgZGhscHR79iQEiCCAO/ZUBIBn9iQEiH/2OASAfIAj9jgEgD/2VAf2OASAV/Y4BQQT9jQEiCP2pASIg/QwTGQAAExkAABMZAAATGQAAIgr9tQFBCP2tASAQ/QwINAAACDQAAAg0AAAINAAAIhD9tQFBCP2tAf2uAf2xAf0MBCIAAAQiAAAEIgAABCIAACIW/a4BQQb9rAEgCf24ASAL/bYBIBogCCAJ/Q0ICQoLDA0ODwABAAEAAQAB/akBIiIgCv21AUEI/a0BIBMgEP21AUEI/a0B/a4B/bEBIBb9rgFBBv2sASAJ/bgBIAv9tgH9hgEgGyAZIAn9DQcICQoLDA0OAAAAAAAAAAD9iQEiCCAO/ZUBIBkgCf0NCAkKCwwNDg8AAAAAAAAAAP2JASIh/Y4BICEgCP2OASAP/ZUB/Y4BIBX9jgFBBP2NASII/akBIiMgCv21AUEI/a0BIB0gEP21AUEI/a0B/a4B/bEBIBb9rgFBBv2sASAJ/bgBIAv9tgEgFCAIIAn9DQgJCgsMDQ4PAAEAAQABAAH9qQEiHSAK/bUBQQj9rQEgHiAQ/bUBQQj9rQH9rgH9sQEgFv2uAUEG/awBIAn9uAEgC/22Af2GAf1mIgj9WAAADyAAQfUAaiAI/VgAAA4gAEHtAGogCP1YAAANIABB5QBqIAj9WAAADCAAQd0AaiAI/VgAAAsgAEHVAGogCP1YAAAKIABBzQBqIAj9WAAACSAAQcUAaiAI/VgAAAggAEE9aiAI/VgAAAcgAEE1aiAI/VgAAAYgAEEtaiAI/VgAAAUgAEElaiAI/VgAAAQgAEEdaiAI/VgAAAMgAEEVaiAI/VgAAAIgAEENaiAI/VgAAAEgAEEFaiAI/VgAAAAgAEH+AGogDSAg/QwagQAAGoEAABqBAAAagQAAIg39tQFBCP2tAf2uAf0M67r//+u6///ruv//67r//yIT/a4BQQb9rAEgCf24ASAL/bYBIBogIiAN/bUBQQj9rQH9rgEgE/2uAUEG/awBIAn9uAEgC/22Af2GASAbICMgDf21AUEI/a0B/a4BIBP9rgFBBv2sASAJ/bgBIAv9tgEgFCAdIA39tQFBCP2tAf2uASAT/a4BQQb9rAEgCf24ASAL/bYB/YYB/WYiCP1YAAAPIABB9gBqIAj9WAAADiAAQe4AaiAI/VgAAA0gAEHmAGogCP1YAAAMIABB3gBqIAj9WAAACyAAQdYAaiAI/VgAAAogAEHOAGogCP1YAAAJIABBxgBqIAj9WAAACCAAQT5qIAj9WAAAByAAQTZqIAj9WAAABiAAQS5qIAj9WAAABSAAQSZqIAj9WAAABCAAQR5qIAj9WAAAAyAAQRZqIAj9WAAAAiAAQQ5qIAj9WAAAASAAQQZqIAj9WAAAACACQRxqITMgAkEaaiE0IAJBHmohKiAn/QAAACEaIABBgAFqIikgAkEIaiACQQZqIAJBBGogAkECav0HAAD9VAAAAf1UAAAC/VQAAAP9iQH9qQEgDP21AUEI/a0BIhsgGCAO/ZUBICj9AAAAIgj9iQEiFP2OASAUIBj9jgEgD/2VAf2OASAV/Y4BQQT9jQEiFP2pASIdIBH9tQFBCP2tAf2uASAS/a4BQQb9rAEgCf24ASAL/bYBIAJBEGogAkEOaiACQQxqIAJBCmr9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akBIAz9tQFBCP2tASIYIBQgCf0NCAkKCwwNDg8AAQABAAEAAf2pASIeIBH9tQFBCP2tAf2uASAS/a4BQQb9rAEgCf24ASAL/bYB/YYBIAJBGGogAkEWaiACQRRqIAJBEmr9BwAA/VQAAAH9VAAAAv1UAAAD/YkB/akBIAz9tQFBCP2tASIUIBwgDv2VASAIIAn9DQgJCgsMDQ4PAAAAAAAAAAD9iQEiCP2OASAIIBz9jgEgD/2VAf2OASAV/Y4BQQT9jQEiCP2pASIcIBH9tQFBCP2tAf2uASAS/a4BQQb9rAEgCf24ASAL/bYBIAJBIGoiAiAqIDMgNP0HAAD9VAAAAf1UAAAC/VQAAAP9iQH9qQEgDP21AUEI/a0BIgwgCCAJ/Q0ICQoLDA0ODwABAAEAAQAB/akBIiAgEf21AUEI/a0B/a4BIBL9rgFBBv2sASAJ/bgBIAv9tgH9hgH9ZiII/VgAAA8gAEH4AGogCP1YAAAOIABB8ABqIAj9WAAADSAAQegAaiAI/VgAAAwgAEHgAGogCP1YAAALIABB2ABqIAj9WAAACiAAQdAAaiAI/VgAAAkgAEHIAGogCP1YAAAIIABBQGsgCP1YAAAHIABBOGogCP1YAAAGIABBMGogCP1YAAAFIABBKGogCP1YAAAEIABBIGogCP1YAAADIABBGGogCP1YAAACIABBEGogCP1YAAABIABBCGogCP1YAAAAIABBgQFqIBsgHyAO/ZUBIBr9iQEiCP2OASAIIB/9jgEgD/2VAf2OASAV/Y4BQQT9jQEiCP2pASIRIAr9tQFBCP2tASAdIBD9tQFBCP2tAf2uAf2xASAW/a4BQQb9rAEgCf24ASAL/bYBIBggCCAJ/Q0ICQoLDA0ODwABAAEAAQAB/akBIhIgCv21AUEI/a0BIB4gEP21AUEI/a0B/a4B/bEBIBb9rgFBBv2sASAJ/bgBIAv9tgH9hgEgFCAhIA79lQEgGiAJ/Q0ICQoLDA0ODwAAAAAAAAAA/YkBIgj9jgEgCCAh/Y4BIA/9lQH9jgEgFf2OAUEE/Y0BIgj9qQEiDiAK/bUBQQj9rQEgHCAQ/bUBQQj9rQH9rgH9sQEgFv2uAUEG/awBIAn9uAEgC/22ASAMIAggCf0NCAkKCwwNDg8AAQABAAEAAf2pASIPIAr9tQFBCP2tASAgIBD9tQFBCP2tAf2uAf2xASAW/a4BQQb9rAEgCf24ASAL/bYB/YYB/WYiCP1YAAAPIABB+QBqIAj9WAAADiAAQfEAaiAI/VgAAA0gAEHpAGogCP1YAAAMIABB4QBqIAj9WAAACyAAQdkAaiAI/VgAAAogAEHRAGogCP1YAAAJIABByQBqIAj9WAAACCAAQcEAaiAI/VgAAAcgAEE5aiAI/VgAAAYgAEExaiAI/VgAAAUgAEEpaiAI/VgAAAQgAEEhaiAI/VgAAAMgAEEZaiAI/VgAAAIgAEERaiAI/VgAAAEgAEEJaiAI/VgAAAAgAEGCAWogGyARIA39tQFBCP2tAf2uASAT/a4BQQb9rAEgCf24ASAL/bYBIBggEiAN/bUBQQj9rQH9rgEgE/2uAUEG/awBIAn9uAEgC/22Af2GASAUIA4gDf21AUEI/a0B/a4BIBP9rgFBBv2sASAJ/bgBIAv9tgEgDCAPIA39tQFBCP2tAf2uASAT/a4BQQb9rAEgCf24ASAL/bYB/YYB/WYiCP1YAAAPIABB+gBqIAj9WAAADiAAQfIAaiAI/VgAAA0gAEHqAGogCP1YAAAMIABB4gBqIAj9WAAACyAAQdoAaiAI/VgAAAogAEHSAGogCP1YAAAJIABBygBqIAj9WAAACCAAQcIAaiAI/VgAAAcgAEE6aiAI/VgAAAYgAEEyaiAI/VgAAAUgAEEqaiAI/VgAAAQgAEEiaiAI/VgAAAMgAEEaaiAI/VgAAAIgAEESaiAI/VgAAAEgAEEKaiAI/VgAAAAgJ0EQaiEnIChBEGohKCApIQAgGSEIICZBEGsiJg0ACyAI/RYPIScgF/0WDyEoDAYLQQMgAUG08sQAEKIKAAtBAEEAQcTyxAAQvwcAC0EAQQBB1PLEABC/BwALQQBBAEHk8sQAEL8HAAtBBEEDQZTzxAAQowoACyAEISUgBSEvIAYhJCAHIS4gMiEsICshASAxITAgLSEDCwNAIDBFIC9BAklyIC5BAU1yDQEgAUECakH/ASADLQAAQYWVAWxBCHYiKSAnQf8BcSICQQlsICVBAWoiAC0AACInaiACICdqQQNsakEIakEEdiIzQZqCAmxBCHZqQZWKAWtBBnUiAkEAIAJBAEobIgIgAkH/AU4bOgAAIAFB/wEgKSAoQf8BcSImQQlsICRBAWoiAi0AACIoaiAmIChqQQNsakEIakEEdiI0QaXMAWxBCHZqQZrvAGtBBnUiJkEAICZBAEobIiYgJkH/AU4bOgAAIAFBBmpB/wEgA0EBai0AAEGFlQFsQQh2IiYgJS0AACIlICdBCWxqICUgJ2pBA2xqQQhqQQR2IiVBmoICbEEIdmpBlYoBa0EGdSIqQQAgKkEAShsiKiAqQf8BThs6AAAgAUEEakH/ASAmICQtAAAiJCAoQQlsaiAkIChqQQNsakEIakEEdiIkQaXMAWxBCHZqQZrvAGtBBnUiKkEAICpBAEobIiogKkH/AU4bOgAAIAFBAWpB/wEgKSAzQZMybEEIdiA0QYjoAGxBCHZqa0GExABqQQZ1IilBACApQQBKGyIpIClB/wFOGzoAACABQQVqQf8BICYgJUGTMmxBCHYgJEGI6ABsQQh2amtBhMQAakEGdSIkQQAgJEEAShsiJCAkQf8BThs6AAAgAUEIaiEBIANBAmohAyAuQQFrIS4gL0EBayEvIDBBAmshMCAAISUgAiEkICxBCGsiLA0ACwsCQAJAAkACQAJAIDUEQCAEIAVqQQFrIgFFDQIgBiAHakEBayIERQ0BIDZBB3EiAEUNAyABLQAAIQEgKyAyaiICQf8BIC0gMWotAABBhZUBbEEIdiIDIAQtAAAiBEGlzAFsQQh2akGa7wBrQQZ1IgVBACAFQQBKGyIFIAVB/wFOGzoAACAAQQFGDQQgAkH/ASADIAFBkzJsQQh2IARBiOgAbEEIdmprQYTEAGpBBnUiBEEAIARBAEobIgQgBEH/AU4bOgABIABBAk0NBSACQf8BIAFBmoICbEEIdiADakGVigFrQQZ1IgBBACAAQQBKGyIAIABB/wFOGzoAAgsPC0GE88QAEKQKAAtB9PLEABCkCgALQQBBAEGk88QAEL8HAAtBAUEBQbTzxAAQvwcAC0ECQQJBxPPEABC/BwALox8BFH8CfwJAIAIgA0sEQCABIANBKmxqIgMvAQAiAkH//wFxRQRAIAJBEHQMAwsgAkH/B3EhASACQYCAAnEhBSACQYD4AXEiAkGA+AFGBEAgBUEQdCECIAJBgICA/AdyIAFFDQMaIAIgAUENdHJBgICA/gdyDAMLIAVBEHQhBSACRQ0BIAJBDXRBgICA/ABxIAFBDXRyQYCAgMADaiAFcgwCCyADIAJBmM7HABC/BwALIAVBgICA2ANyIAFnQRBrIgJBF3RrIAEgAkH//wNxQQhqdEH///8DcXILIQECfyADLwECIgVB//8BcUUEQCAFQRB0DAELIAVB/wdxIQIgBUGAgAJxIQYgBUGA+AFxIgVBgPgBRgRAIAZBEHQhBSAFQYCAgPwHciACRQ0BGiAFIAJBDXRyQYCAgP4HcgwBCyAGQRB0IQYgBUENdEGAgID8AHEgAkENdHJBgICAwANqIAZyIAUNABogBkGAgIDYA3IgAmdBEGsiBUEXdGsgAiAFQf//A3FBCGp0Qf///wNxcgshBQJ/IAMvAQQiBkH//wFxRQRAIAZBEHQMAQsgBkH/B3EhAiAGQYCAAnEhByAGQYD4AXEiBkGA+AFGBEAgB0EQdCEGIAZBgICA/AdyIAJFDQEaIAYgAkENdHJBgICA/gdyDAELIAdBEHQhByAGQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogB3IgBg0AGiAHQYCAgNgDciACZ0EQayIGQRd0ayACIAZB//8DcUEIanRB////A3FyCyEGAn8gAy8BBiIHQf//AXFFBEAgB0EQdAwBCyAHQf8HcSECIAdBgIACcSEIIAdBgPgBcSIHQYD4AUYEQCAIQRB0IQcgB0GAgID8B3IgAkUNARogByACQQ10ckGAgID+B3IMAQsgCEEQdCEIIAdBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAIciAHDQAaIAhBgICA2ANyIAJnQRBrIgdBF3RrIAIgB0H//wNxQQhqdEH///8DcXILIQcCfyADLwEIIghB//8BcUUEQCAIQRB0DAELIAhB/wdxIQIgCEGAgAJxIQkgCEGA+AFxIghBgPgBRgRAIAlBEHQhCCAIQYCAgPwHciACRQ0BGiAIIAJBDXRyQYCAgP4HcgwBCyAJQRB0IQkgCEENdEGAgID8AHEgAkENdHJBgICAwANqIAlyIAgNABogCUGAgIDYA3IgAmdBEGsiCEEXdGsgAiAIQf//A3FBCGp0Qf///wNxcgshCAJ/IAMvAQoiCUH//wFxRQRAIAlBEHQMAQsgCUH/B3EhAiAJQYCAAnEhCiAJQYD4AXEiCUGA+AFGBEAgCkEQdCEJIAlBgICA/AdyIAJFDQEaIAkgAkENdHJBgICA/gdyDAELIApBEHQhCiAJQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogCnIgCQ0AGiAKQYCAgNgDciACZ0EQayIJQRd0ayACIAlB//8DcUEIanRB////A3FyCyEJAn8gAy8BDCIKQf//AXFFBEAgCkEQdAwBCyAKQf8HcSECIApBgIACcSELIApBgPgBcSIKQYD4AUYEQCALQRB0IQogCkGAgID8B3IgAkUNARogCiACQQ10ckGAgID+B3IMAQsgC0EQdCELIApBDXRBgICA/ABxIAJBDXRyQYCAgMADaiALciAKDQAaIAtBgICA2ANyIAJnQRBrIgpBF3RrIAIgCkH//wNxQQhqdEH///8DcXILIQoCfyADLwEOIgtB//8BcUUEQCALQRB0DAELIAtB/wdxIQIgC0GAgAJxIQwgC0GA+AFxIgtBgPgBRgRAIAxBEHQhCyALQYCAgPwHciACRQ0BGiALIAJBDXRyQYCAgP4HcgwBCyAMQRB0IQwgC0ENdEGAgID8AHEgAkENdHJBgICAwANqIAxyIAsNABogDEGAgIDYA3IgAmdBEGsiC0EXdGsgAiALQf//A3FBCGp0Qf///wNxcgshCwJ/IAMvARAiDEH//wFxRQRAIAxBEHQMAQsgDEH/B3EhAiAMQYCAAnEhDSAMQYD4AXEiDEGA+AFGBEAgDUEQdCEMIAxBgICA/AdyIAJFDQEaIAwgAkENdHJBgICA/gdyDAELIA1BEHQhDSAMQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogDXIgDA0AGiANQYCAgNgDciACZ0EQayIMQRd0ayACIAxB//8DcUEIanRB////A3FyCyEMAn8gAy8BEiINQf//AXFFBEAgDUEQdAwBCyANQf8HcSECIA1BgIACcSEOIA1BgPgBcSINQYD4AUYEQCAOQRB0IQ0gDUGAgID8B3IgAkUNARogDSACQQ10ckGAgID+B3IMAQsgDkEQdCEOIA1BDXRBgICA/ABxIAJBDXRyQYCAgMADaiAOciANDQAaIA5BgICA2ANyIAJnQRBrIg1BF3RrIAIgDUH//wNxQQhqdEH///8DcXILIQ0CfyADLwEUIg5B//8BcUUEQCAOQRB0DAELIA5B/wdxIQIgDkGAgAJxIQ8gDkGA+AFxIg5BgPgBRgRAIA9BEHQhDiAOQYCAgPwHciACRQ0BGiAOIAJBDXRyQYCAgP4HcgwBCyAPQRB0IQ8gDkENdEGAgID8AHEgAkENdHJBgICAwANqIA9yIA4NABogD0GAgIDYA3IgAmdBEGsiDkEXdGsgAiAOQf//A3FBCGp0Qf///wNxcgshDgJ/IAMvARYiD0H//wFxRQRAIA9BEHQMAQsgD0H/B3EhAiAPQYCAAnEhECAPQYD4AXEiD0GA+AFGBEAgEEEQdCEPIA9BgICA/AdyIAJFDQEaIA8gAkENdHJBgICA/gdyDAELIBBBEHQhECAPQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogEHIgDw0AGiAQQYCAgNgDciACZ0EQayIPQRd0ayACIA9B//8DcUEIanRB////A3FyCyEPAn8gAy8BGCIQQf//AXFFBEAgEEEQdAwBCyAQQf8HcSECIBBBgIACcSERIBBBgPgBcSIQQYD4AUYEQCARQRB0IRAgEEGAgID8B3IgAkUNARogECACQQ10ckGAgID+B3IMAQsgEUEQdCERIBBBDXRBgICA/ABxIAJBDXRyQYCAgMADaiARciAQDQAaIBFBgICA2ANyIAJnQRBrIhBBF3RrIAIgEEH//wNxQQhqdEH///8DcXILIRACfyADLwEaIhFB//8BcUUEQCARQRB0DAELIBFB/wdxIQIgEUGAgAJxIRIgEUGA+AFxIhFBgPgBRgRAIBJBEHQhESARQYCAgPwHciACRQ0BGiARIAJBDXRyQYCAgP4HcgwBCyASQRB0IRIgEUENdEGAgID8AHEgAkENdHJBgICAwANqIBJyIBENABogEkGAgIDYA3IgAmdBEGsiEUEXdGsgAiARQf//A3FBCGp0Qf///wNxcgshEQJ/IAMvARwiEkH//wFxRQRAIBJBEHQMAQsgEkH/B3EhAiASQYCAAnEhEyASQYD4AXEiEkGA+AFGBEAgE0EQdCESIBJBgICA/AdyIAJFDQEaIBIgAkENdHJBgICA/gdyDAELIBNBEHQhEyASQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogE3IgEg0AGiATQYCAgNgDciACZ0EQayISQRd0ayACIBJB//8DcUEIanRB////A3FyCyESAn8gAy8BHiITQf//AXFFBEAgE0EQdAwBCyATQf8HcSECIBNBgIACcSEUIBNBgPgBcSITQYD4AUYEQCAUQRB0IRMgE0GAgID8B3IgAkUNARogEyACQQ10ckGAgID+B3IMAQsgFEEQdCEUIBNBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAUciATDQAaIBRBgICA2ANyIAJnQRBrIhNBF3RrIAIgE0H//wNxQQhqdEH///8DcXILIRMCfyADLwEgIhRB//8BcUUEQCAUQRB0DAELIBRB/wdxIQIgFEGAgAJxIRUgFEGA+AFxIhRBgPgBRgRAIBVBEHQhFCAUQYCAgPwHciACRQ0BGiAUIAJBDXRyQYCAgP4HcgwBCyAVQRB0IRUgFEENdEGAgID8AHEgAkENdHJBgICAwANqIBVyIBQNABogFUGAgIDYA3IgAmdBEGsiFEEXdGsgAiAUQf//A3FBCGp0Qf///wNxcgshFAJ/IAMvASIiFUH//wFxRQRAIBVBEHQMAQsgFUH/B3EhAiAVQYCAAnEhFiAVQYD4AXEiFUGA+AFGBEAgFkEQdCEVIBVBgICA/AdyIAJFDQEaIBUgAkENdHJBgICA/gdyDAELIBZBEHQhFiAVQQ10QYCAgPwAcSACQQ10ckGAgIDAA2ogFnIgFQ0AGiAWQYCAgNgDciACZ0EQayIVQRd0ayACIBVB//8DcUEIanRB////A3FyCyEVAn8gAy8BJCIWQf//AXFFBEAgFkEQdAwBCyAWQf8HcSECIBZBgIACcSEEIBZBgPgBcSIWQYD4AUYEQCAEQRB0IRYgFkGAgID8B3IgAkUNARogFiACQQ10ckGAgID+B3IMAQsgBEEQdCEEIBZBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAEciAWDQAaIARBgICA2ANyIAJnQRBrIhZBF3RrIAIgFkH//wNxQQhqdEH///8DcXILIRYCfyADLwEmIgRB//8BcUUEQCAEQRB0DAELIARB/wdxIQIgBEGAgAJxIRcgBEGA+AFxIgRBgPgBRgRAIBdBEHQhBCAEQYCAgPwHciACRQ0BGiAEIAJBDXRyQYCAgP4HcgwBCyAXQRB0IRcgBEENdEGAgID8AHEgAkENdHJBgICAwANqIBdyIAQNABogF0GAgIDYA3IgAmdBEGsiBEEXdGsgAiAEQf//A3FBCGp0Qf///wNxcgshAiAAAn8gAy8BKCIEQf//AXFFBEAgBEEQdAwBCyAEQf8HcSEDIARBgIACcSEXIARBgPgBcSIEQYD4AUYEQCAXQRB0IQQgBEGAgID8B3IgA0UNARogBCADQQ10ckGAgID+B3IMAQsgF0EQdCEXIARBDXRBgICA/ABxIANBDXRyQYCAgMADaiAXciAEDQAaIBdBgICA2ANyIANnQRBrIgRBF3RrIAMgBEH//wNxQQhqdEH///8DcXILNgJQIAAgAjYCTCAAIBY2AkggACAVNgJEIAAgFDYCQCAAIBM2AjwgACASNgI4IAAgETYCNCAAIBA2AjAgACAPNgIsIAAgDjYCKCAAIA02AiQgACAMNgIgIAAgCzYCHCAAIAo2AhggACAJNgIUIAAgCDYCECAAIAc2AgwgACAGNgIIIAAgBTYCBCAAIAE2AgALnCEDEn8DfQF+IwBBwARrIgwkAAJAAkAgAUEhSQ0AA0AgA0UEQCABIgIgAkEBdmoiBQRAIAAhAQNAAkACfyACIAVBAWsiBU0EQCAFIAJrDAELIAEgBUEMbGoiAEEIaiIDKAIAIQQgASkCACEZIAEgACkCADcCACABQQhqIgYoAgAhCCAGIAQ2AgAgAyAINgIAIAAgGTcCAEEACyIEQQF0IgNBAXIiACACIAUgAiAFSRsiB08NAANAAkAgASAEQQxsaiIGKgIAIhYgFlwgFiABIAcgA0ECaiIETQR/IAAFAn8gASAAQQxsaiIDKgIAIhcgF1wgFyABIARBDGxqIgQqAgAiGGByIgggGCAYXCAXIBhfcnFFBEAgCEUMAQsgAygCBCIIIAQoAgQiCUcEQCAIIAlJDAELIAMoAgggBCgCCEkLIABqCyIEQQxsaiIIKgIAIhdgciIAIBcgF1wgFiAXX3JxRQRAIAANAyAIKAIEIQAgBigCBCEDDAELIAYoAgQiAyAIKAIEIgBHBEAgACADSw0BDAMLIAMhACAGKAIIIAgoAghPDQILIAggFjgCACAGIBc4AgAgBiAANgIEIAggAzYCBCAGKAIIIQAgBiAIKAIINgIIIAggADYCCCAEQQF0IgNBAXIiACAHSQ0ACwsgBQ0ACwsMAwsgACABQQN2IgZB1ABsaiEEIAAgBkEwbGohBSADQQFrIQMCfyABQcAATwRAIAAgBSAEIAYQ3AQMAQsgBSoCACIWIBZcIQYgBCoCACIXIBdcIQggAAJ/IAAqAgAiGCAYXCIHIBYgGF9yIgkgBiAWIBhgcnFFBEAgCUUMAQsgACgCBCIJIAUoAgQiDkcEQCAJIA5JDAELIAAoAgggBSgCCEkLIgkCfyAHIBcgGF9yIgcgCCAXIBhgcnFFBEAgB0EBcwwBCyAAKAIEIgcgBCgCBCIORwRAIAcgDkkMAQsgACgCCCAEKAIISQtHDQAaIAQgBQJ/IAYgFiAXYHIiBiAIIBYgF19ycUUEQCAGQQFzDAELIAUoAgQiBiAEKAIEIghHBEAgBiAISQwBCyAFKAIIIAQoAghJCyAJcxsLIABrIQUCQAJ/AkAgAkUNAAJAIAIqAgAiFiAWXCAWIAAgBWoiBCoCACIXYHIiBiAXIBdcIBYgF19ycUUEQCAGRQ0CDAELIAIoAgQiBiAEKAIEIghHBEAgBiAISQ0CDAELIAIoAgggBCgCCEkNAQsgDEEIaiIJIABBCGoiDigCADYCACAMIAApAgA3AwAgBEEIaiICKAIAIQUgACAEKQIANwIAIA4gBTYCACACIAkoAgA2AgAgBCAMKQMANwIAIAAqAgAhFiAAKAIUIQ8gACgCECENIAAqAgwhF0EAIQcgAEEMaiIIIQQgAEEYaiIGIAAgAUEMbGoiEEEMayIRSQRAIAAoAgghBiAAKAIEIQQgACEFA0ACfyAWIBZcIgsgFiAFIgJBGGoiBSoCACIYYHIiCiAYIBhcIBYgGF9ycUUEQCAKRQwBCyACQRxqKAIAIgogBEcEQCAEIApJDAELIAYgAkEgaigCAEkLIRIgCCAHQQxsaiIKKQIAIRkgAkEMaiITQQhqIApBCGoiFCgCADYCACATIBk3AgAgFCAFQQhqIhMoAgA2AgAgCiAFKQIANwIAIAcgEkEBc2ohBwJ/IAsgFiACQSRqIgoqAgAiGGByIgsgGCAYXCAWIBhfcnFFBEAgC0EBcwwBCyACQShqKAIAIgsgBEcEQCAEIAtJDAELIAYgAkEsaigCAEkLIRIgCCAHQQxsaiILKQIAIRkgEyALQQhqIhMoAgA2AgAgBSAZNwIAIBMgCkEIaigCADYCACALIAopAgA3AgAgByASQQFzaiEHIAJBMGogEUkNAAsgBUEYaiEGIAVBDGohBAsgBiAQRwRAIAAoAgghCiAAKAIEIQUDQCAEIQICfyAWIBZcIBYgBiIEKgIAIhhgciIGIBggGFwgFiAYX3JxRQRAIAZFDAELIARBBGooAgAiBiAFRwRAIAUgBkkMAQsgCiAEQQhqKAIASQshCyAIIAdBDGxqIgYpAgAhGSACQQhqIAZBCGoiESgCADYCACACIBk3AgAgESAEQQhqKAIANgIAIAYgBCkCADcCACAHIAtBAXNqIQcgBEEMaiIGIBBHDQALIAZBDGshBAsCfyAWIBZcIBYgF2ByIgIgFyAXXCAWIBdfcnFFBEAgAkUMAQsgDSAAKAIEIgJHBEAgAiANSQwBCyAAKAIIIA9JCyEFIAggB0EMbGoiAikCACEZIARBCGogAkEIaiIGKAIANgIAIAQgGTcCACAGIA82AgAgAiANNgIEIAIgFzgCACAHIAVBAXNqIgQgAU8NAiAJIA4oAgA2AgAgDCAAKQIANwMAIAAgBEEMbGoiAkEIaiIFKAIAIQYgACACKQIANwIAIA4gBjYCACAFIAkoAgA2AgAgAiAMKQMANwIAIAJBDGohAEEAIQIgBEF/cyABagwBCyAMQQhqIgkgAEEIaiIOKAIANgIAIAwgACkCADcDACAAIAVqIgRBCGoiBSgCACEGIAAgBCkCADcCACAOIAY2AgAgBSAJKAIANgIAIAQgDCkDADcCACAAKgIAIRYgACgCFCEPIAAoAhAhDSAAKgIMIRdBACEHIABBDGoiCCEEIABBGGoiBiAAIAFBDGxqIhBBDGsiEkkEQCAAKAIIIQogACgCBCEGIAAhBQNAAn8gBSIEQRhqIgUqAgAiGCAYXCAWIBhfciILIBYgFlwiESAWIBhgcnFFBEAgC0UMAQsgBiAEQRxqKAIAIgtHBEAgBiALSwwBCyAEQSBqKAIAIApJCyETIAggB0EMbGoiCykCACEZIARBDGoiFEEIaiALQQhqIhUoAgA2AgAgFCAZNwIAIBUgBUEIaiIUKAIANgIAIAsgBSkCADcCACAHIBNqIQcCfyAEQSRqIgsqAgAiGCAYXCAWIBhfciITIBEgFiAYYHJxRQRAIBNFDAELIAYgBEEoaigCACIRRwRAIAYgEUsMAQsgBEEsaigCACAKSQshEyAIIAdBDGxqIhEpAgAhGSAUIBFBCGoiFCgCADYCACAFIBk3AgAgFCALQQhqKAIANgIAIBEgCykCADcCACAHIBNqIQcgBEEwaiASSQ0ACyAFQRhqIQYgBUEMaiEECyAGIBBHBEAgACgCCCELIAAoAgQhCgNAIAQhBQJ/IAYiBCoCACIYIBhcIBYgGF9yIgYgFiAWXCAWIBhgcnFFBEAgBkUMAQsgCiAEQQRqKAIAIgZHBEAgBiAKSQwBCyAEQQhqKAIAIAtJCyERIAggB0EMbGoiBikCACEZIAVBCGogBkEIaiISKAIANgIAIAUgGTcCACASIARBCGooAgA2AgAgBiAEKQIANwIAIAcgEWohByAEQQxqIgYgEEcNAAsgBkEMayEECwJ/IBcgF1wgFiAXX3IiBSAWIBZcIBYgF2BycUUEQCAFRQwBCyAAKAIEIgUgDUcEQCAFIA1LDAELIA8gACgCCEkLIAggB0EMbGoiBSkCACEZIARBCGogBUEIaiIIKAIANgIAIAQgGTcCACAIIA82AgAgBSANNgIEIAUgFzgCACAHaiIFIAFPDQEgCSAOKAIANgIAIAwgACkCADcDACAAIAVBDGxqIgRBCGoiBigCACEIIAAgBCkCADcCACAOIAg2AgAgBiAJKAIANgIAIAQgDCkDADcCACAAIAUgAiADEHogBEEMaiEAIAQhAiABIAVBf3NqCyIBQSFPDQEMAgsLAAsgAUECSQ0AIAFBAXYhDwJ/IAFBD00EQCAAIA9BDGwiA2ohAiADIAxqIQMgAUEHSwRAIAAgDBCHAyACIAMQhwNBBAwCCyAMQQhqIABBCGooAgA2AgAgDCAAKQIANwMAIANBCGogAkEIaigCADYCACADIAIpAgA3AgBBAQwBCyAAIAwgAUEMbGoiAhCHAyAAQTBqIAJBMGoQhwMgAkEIIAwQ/wMgACAPQQxsIgNqIgQgAkHgAGoiBRCHAyAEQTBqIAJBkAFqEIcDIAVBCCADIAxqEP8DQQgLIgJBAWohDiACIA9JBEAgAkEMbCEGIA4hBCACIQMDQCADIQUgBCEDIAwgBUEMbCIFaiIEIAAgBWoiCCkCADcCACAEQQhqIgUgCEEIaigCADYCAAJAAkAgBCoCACIWIBZcIgcgFiAEQQxrIgkqAgAiF2ByIgggFyAXXCAWIBdfcnFFBEAgCA0CIAQoAgQhDQwBCyAEKAIEIg0gBEEIaygCACIIRwRAIAggDUsNAQwCCyAEKAIIIARBBGsoAgBPDQELIAQgCSkCADcCACAFKAIAIRAgBSAJQQhqKAIANgIAAkAgCSAMIghGBEAgCCEEDAELAkAgB0UEQCAGIQcDQCAHIAxqIgVBDGshBAJAIAVBGGsiCioCACIXIBZcBEAgFiAXYEUNAQwECyAFQRRrKAIAIgsgDUcEQCALIA1NDQUMAQsgECAFQRBrKAIATw0DCyAJQQxrIQkgBCAKKQIANwIAIARBCGogCkEIaigCADYCACAHQQxrIgdBDEcNAAsgCCEEDAILIAYhBQNAIAUgDGoiB0EYayIKKgIAIhcgF1sgFiAXX0VxDQEgB0EMayEEAkAgB0EUaygCACILIA1HBEAgCyANTQ0EDAELIBAgB0EQaygCAE8NAgsgCUEMayEJIAQgCikCADcCACAEQQhqIApBCGooAgA2AgAgBUEMayIFQQxHDQALIAghBAwBCyAJIQQLIAQgEDYCCCAEIA02AgQgBCAWOAIACyAGQQxqIQYgAyADIA9JIgVqIQQgBQ0ACwsgASAPayILIAJLBEAgACAPQQxsIgNqIREgAkEMbCEQQQwhBiADIAxqIgghDwNAIAIhAyAOIQIgCCADQQxsIgNqIgQgAyARaiIDKQIANwIAIARBCGoiBSADQQhqKAIANgIAAkACQCAEKgIAIhYgFlwiCiAWIARBDGsiCSoCACIXYHIiAyAXIBdcIBYgF19ycUUEQCADDQIgBCgCBCEDDAELIAQoAgQiAyAEQQhrKAIAIgdHBEAgAyAHSQ0BDAILIAQoAgggBEEEaygCAE8NAQsgBCAJKQIANwIAIAUoAgAhDiAFIAlBCGooAgA2AgACQCAIIgQgCUYNACAGIQ0gDyIHIQUCQCAKRQRAA0AgByAQaiIFQQxrIQQCQCAFQRhrIgoqAgAiFyAWXARAIBYgF2BFDQEMBAsgBUEUaygCACISIANHBEAgAyASTw0FDAELIA4gBUEQaygCAE8NAwsgCUEMayEJIAQgCikCADcCACAEQQhqIApBCGooAgA2AgAgB0EMayEHIBAgDUEMaiINRw0ACyAIIQQMAgsDQCAFIBBqIgdBGGsiCioCACIXIBdbIBYgF19FcQ0BIAdBDGshBAJAIAdBFGsoAgAiEiADRwRAIAMgEk8NBAwBCyAOIAdBEGsoAgBPDQILIAlBDGshCSAEIAopAgA3AgAgBEEIaiAKQQhqKAIANgIAIAVBDGshBSAQIA1BDGoiDUcNAAsgCCEEDAELIAkhBAsgBCAONgIIIAQgAzYCBCAEIBY4AgALIAZBDGshBiAPQQxqIQ8gAiACIAtJIgNqIQ4gAw0ACwsgDCABIAAQ/wMLIAxBwARqJAAL3R4CDn8HfQJAAkACfwJAIAAoAgQiAyACKAIIIgdJBEAgACgCACEFIAIoAgQiCiADQRhsaiIELQATIgMgBC0AEiIGIAQtABEiDSAGIA1LGyIGIAMgBksbIgMEfUMAAEDBIAIqAkQgAi0AWEECRiIGGyIRQwAAEEEgAioCSCAGGyARk0MAAH5DlSADQQFrQf8BcbOUkhCmBCIRIBGSBUMAAAAACyEWIARBDGovAQAiA0H//wFxRQRAIANBEHQMAwsgA0H/B3EhBCADQYCAAnEhBiADQYD4AXEiA0GA+AFGBEAgBkEQdCIDQYCAgPwHciAERQ0DGiADIARBDXRyQYCAgP4HcgwDCyAGQRB0IQYgA0UNASADQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogBnIMAgsMAgsgBCAEZ0EQayIEQf//A3FBCGp0Qf///wNxIAZBgICA2ANyIARBF3RrcgtDAACAPyERviISQwAAgD9eBEAgEhD0BUNU+C1AlEMAAIA/kpEhEQtDAACAPyETAn8CQCAFIAdJBEAgCiAFQRhsaiIELQATIgMgBC0AEiIFIAQtABEiBiAFIAZLGyIFIAMgBUsbIgMEfUMAAEDBIAIqAkQgAi0AWEECRiIFGyISQwAAEEEgAioCSCAFGyASk0MAAH5DlSADQQFrQf8BcbOUkhCmBCISIBKSBUMAAAAACyEXIARBDGovAQAiA0H//wFxRQRAIANBEHQMAwsgA0H/B3EhBCADQYCAAnEhBSADQYD4AXEiA0GA+AFGBEAgBUEQdCIDQYCAgPwHciAERQ0DGiADIARBDXRyQYCAgP4HcgwDCyAFQRB0IQUgA0UNASADQQ10QYCAgPwAcSAEQQ10ckGAgIDAA2ogBXIMAgsgBSAHQbTUxwAQvwcACyAEIARnQRBrIgRB//8DcUEIanRB////A3EgBUGAgIDYA3IgBEEXdGtyC74iEkMAAIA/XgRAIBIQ9AVDVPgtQJRDAACAP5KRIRMLQwAAgD8hEgJ/AkAgByAAKAIMIgNLBEAgACgCCCEFIAogA0EYbGoiBC0AEyIDIAQtABIiBiAELQARIg0gBiANSxsiBiADIAZLGyIDBH1DAABAwSACKgJEIAItAFhBAkYiBhsiFEMAABBBIAIqAkggBhsgFJNDAAB+Q5UgA0EBa0H/AXGzlJIQpgQiFCAUkgVDAAAAAAshFCAEQQxqLwEAIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQQgA0GAgAJxIQYgA0GA+AFxIgNBgPgBRgRAIAZBEHQiA0GAgID8B3IgBEUNAxogAyAEQQ10ckGAgID+B3IMAwsgBkEQdCEGIANFDQEgA0ENdEGAgID8AHEgBEENdHJBgICAwANqIAZyDAILDAILIAQgBGdBEGsiBEH//wNxQQhqdEH///8DcSAGQYCAgNgDciAEQRd0a3ILviIVQwAAgD9eBEAgFRD0BUNU+C1AlEMAAIA/kpEhEgsCfwJAIAUgB0kEQCAKIAVBGGxqIgQtABMiAyAELQASIgUgBC0AESIGIAUgBksbIgUgAyAFSxsiAwR9QwAAQMEgAioCRCACLQBYQQJGIgUbIhVDAAAQQSACKgJIIAUbIBWTQwAAfkOVIANBAWtB/wFxs5SSEKYEIhUgFZIFQwAAAAALIRUgBEEMai8BACIDQf//AXFFBEAgA0EQdAwDCyADQf8HcSEEIANBgIACcSEFIANBgPgBcSIDQYD4AUYEQCAFQRB0IgNBgICA/AdyIARFDQMaIAMgBEENdHJBgICA/gdyDAMLIAVBEHQhBSADRQ0BIANBDXRBgICA/ABxIARBDXRyQYCAgMADaiAFcgwCCyAFIAdBtNTHABC/BwALIAQgBGdBEGsiBEH//wNxQQhqdEH///8DcSAFQYCAgNgDciAEQRd0a3ILIQQCfwJAIAcgAEEMQQggFCASlCISIBJbIBIgFSAEviIUQwAAgD9eBH0gFBD0BUNU+C1AlEMAAIA/kpEFQwAAgD8LlGBFcSIIG2oiBigCACIDSwRAIAAgFiARlCIRIBFbIBEgFyATlGBFcSIMQQJ0aiINKAIAIQQgCiADQRhsaiIDLQATIgUgAy0AEiIJIAMtABEiDiAJIA5LGyIJIAUgCUsbIgUEfUMAAEDBIAIqAkQgAi0AWEECRiIJGyIRQwAAEEEgAioCSCAJGyARk0MAAH5DlSAFQQFrQf8BcbOUkhCmBCIRIBGSBUMAAAAACyEWIANBDGovAQAiBUH//wFxRQRAIAVBEHQMAwsgBUH/B3EhAyAFQYCAAnEhCSAFQYD4AXEiBUGA+AFGBEAgCUEQdCIFQYCAgPwHciADRQ0DGiAFIANBDXRyQYCAgP4HcgwDCyAJQRB0IQkgBUUNASAFQQ10QYCAgPwAcSADQQ10ckGAgIDAA2ogCXIMAgsMAgsgAyADZ0EQayIDQf//A3FBCGp0Qf///wNxIAlBgICA2ANyIANBF3RrcgtDAACAPyESviIRQwAAgD9eBEAgERD0BUNU+C1AlEMAAIA/kpEhEgsCfwJAIAQgB0kEQCAKIARBGGxqIgQtABMiAyAELQASIgUgBC0AESIJIAUgCUsbIgUgAyAFSxsiAwR9QwAAQMEgAioCRCACLQBYQQJGIgUbIhFDAAAQQSACKgJIIAUbIBGTQwAAfkOVIANBAWtB/wFxs5SSEKYEIhEgEZIFQwAAAAALIRdBCEEMIAgbIQkgBEEMai8BACIDQf//AXFFBEAgA0EQdAwDCyADQf8HcSEEIANBgIACcSEFIANBgPgBcSIDQYD4AUYEQCAFQRB0IgNBgICA/AdyIARFDQMaIAMgBEENdHJBgICA/gdyDAMLIAVBEHQhBSADRQ0BIANBDXRBgICA/ABxIARBDXRyQYCAgMADaiAFcgwCCwwDCyAEIARnQRBrIgRB//8DcUEIanRB////A3EgBUGAgIDYA3IgBEEXdGtyC0MAAIA/IRG+IhNDAACAP14EQCATEPQFQ1T4LUCUQwAAgD+SkSERCwJ/AkAgByAAIAlqIgkoAgAiA0sEQCAAIAxFQQJ0aiIFKAIAIQQgCiADQRhsaiIALQATIgMgAC0AEiIIIAAtABEiDCAIIAxLGyIIIAMgCEsbIgMEfUMAAEDBIAIqAkQgAi0AWEECRiIIGyITQwAAEEEgAioCSCAIGyATk0MAAH5DlSADQQFrQf8BcbOUkhCmBCITIBOSBUMAAAAACyEUIABBDGovAQAiA0H//wFxRQRAIANBEHQMAwsgA0H/B3EhACADQYCAAnEhCCADQYD4AXEiA0GA+AFGBEAgCEEQdCIDQYCAgPwHciAARQ0DGiADIABBDXRyQYCAgP4HcgwDCyAIQRB0IQggA0UNASADQQ10QYCAgPwAcSAAQQ10ckGAgIDAA2ogCHIMAgsMAgsgACAAZ0EQayIAQf//A3FBCGp0Qf///wNxIAhBgICA2ANyIABBF3RrcgtDAACAPyETviIVQwAAgD9eBEAgFRD0BUNU+C1AlEMAAIA/kpEhEwsCfwJAIAQgB0kEQCAWIBKUIhIgFyARlGAgCiAEQRhsaiIALQATIgQgAC0AEiIIIAAtABEiDCAIIAxLGyIIIAQgCEsbIgQEfUMAAEDBIAIqAkQgAi0AWEECRiIIGyIRQwAAEEEgAioCSCAIGyARk0MAAH5DlSAEQQFrQf8BcbOUkhCmBCIRIBGSBUMAAAAACyEWRSEIIBIgElshDCAAQQxqLwEAIgRB//8BcUUEQCAEQRB0DAMLIARB/wdxIQAgBEGAgAJxIQMgBEGA+AFxIgRBgPgBRgRAIANBEHQiBEGAgID8B3IgAEUNAxogBCAAQQ10ckGAgID+B3IMAwsgA0EQdCEDIARFDQEgBEENdEGAgID8AHEgAEENdHJBgICAwANqIANyDAILDAMLIAAgAGdBEGsiAEH//wNxQQhqdEH///8DcSADQYCAgNgDciAAQRd0a3ILIQBDAACAPyESAn8CQCAHIAkgBSAGIAggDHEiCBsgFCATlCIRIBFbIBEgFiAAviITQwAAgD9eBH0gExD0BUNU+C1AlEMAAIA/kpEFQwAAgD8LlGBFcSIMGyIOKAIAIgBLBEAgDSAGIAUgDBsgCBsiDygCACEEIAogAEEYbGoiAC0AEyIDIAAtABIiCyAALQARIhAgCyAQSxsiCyADIAtLGyIDBH1DAABAwSACKgJEIAItAFhBAkYiCxsiEUMAABBBIAIqAkggCxsgEZNDAAB+Q5UgA0EBa0H/AXGzlJIQpgQiESARkgVDAAAAAAshEyAAQQxqLwEAIgNB//8BcUUEQCADQRB0DAMLIANB/wdxIQAgA0GAgAJxIQsgA0GA+AFxIgNBgPgBRgRAIAtBEHQiA0GAgID8B3IgAEUNAxogAyAAQQ10ckGAgID+B3IMAwsgC0EQdCELIANFDQEgA0ENdEGAgID8AHEgAEENdHJBgICAwANqIAtyDAILIAAgB0G01McAEL8HAAsgACAAZ0EQayIAQf//A3FBCGp0Qf///wNxIAtBgICA2ANyIABBF3Rrcgu+IhFDAACAP14EQCAREPQFQ1T4LUCUQwAAgD+SkSESCwJ/AkAgBCAHSQRAIAogBEEYbGoiAC0AEyIHIAAtABIiCiAALQARIgQgBCAKSRsiCiAHIApLGyIHBH1DAABAwSACKgJEIAItAFhBAkYiChsiEUMAABBBIAIqAkggChsgEZNDAAB+Q5UgB0EBa0H/AXGzlJIQpgQiESARkgVDAAAAAAshFiAAQQxqLwEAIgJB//8BcUUEQCACQRB0DAMLIAJB/wdxIQAgAkGAgAJxIQcgAkGA+AFxIgJBgPgBRgRAIAdBEHQiAkGAgID8B3IgAEUNAxogAiAAQQ10ckGAgID+B3IMAwsgB0EQdCEHIAJFDQEgAkENdEGAgID8AHEgAEENdHJBgICAwANqIAdyDAILDAMLIAAgAGdBEGsiAEH//wNxQQhqdEH///8DcSAHQYCAgNgDciAAQRd0a3ILQwAAgD8hEb4iF0MAAIA/XgRAIBcQ9AVDVPgtQJRDAACAP5KRIRELIAEgBiANIAgbKAIANgIAIAEgDiAPIBMgEpQiEiASWyASIBYgEZRgRXEiABsoAgA2AgQgASAPIA4gABsoAgA2AgggASAFIAkgDBsoAgA2AgwPCyADIAdBtNTHABC/BwALIAQgB0G01McAEL8HAAu5IgINfwZ+IwBB0ARrIgIkACACQdAAaiABQQhqKAIAIgM2AgAgAiABKQIAIg83AkggAkGAAToAVCACQQA2AkQgAkKAgICAEDcCPCAPpyELAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAigCTCIHIANLBEADQCADIAtqLQAAIglBCWsiAUEXS0EBIAF0QZOAgARxRXINAiAHIANBAWoiA0cNAAsgAiAHNgJQIAchAwsgAkEwaiALIAcgA0EBaiIBIAcgASAHSRsQhgIgAigCNCEBIAIoAjAhBEEUEH4iAw0BDA0LIAIgAzYCUAJAIAlB2wBHBEAgCUH7AEYNASACQTxqIAJBzwRqQfyRwQAQ+gEhBAwLCyACQf8AOgBUIAIgA0EBajYCUCACQQE6AJQEIAIgAkE8ajYCkAQgAkGYA2ogAkGQBGoQxwMgAi0AmANBAUYEQCACKAKcAyEEDAULAkACQAJAAkACQAJAAkACQAJAAkAgAi0AmQNBAUYEQCACQRBqIAIoApAEELwDIAIoAhQhASACKAIQQQFxBEAgASEEDBALIAJBmANqIAJBkARqEMcDIAItAJgDQQFGBEAgAigCnAMhBAwQCyACLQCZA0EBRw0CIAJBmANqIAIoApAEENwDIAIoApgDQQFHDQEgAigCnAMhBAwPC0EAQaDlwABBgIjIABCPByEEDA4LIAIpA6ADIQ8gAkGYA2ogAkGQBGoQxwMgAi0AmANBAUYEQCACKAKcAyEEDA4LIAItAJkDQQFHDQIgAkGYA2ogAigCkAQQ3AMgAigCmANBAUcNASACKAKcAyEEDA0LQQFBoOXAAEGAiMgAEI8HIQQMDAsgAikDoAMhECACQZgDaiACQZAEahDHAyACLQCYA0EBRgRAIAIoApwDIQQMDAsgAi0AmQNBAUcNAiACQZgDaiACKAKQBBDcAyACKAKYA0EBRw0BIAIoApwDIQQMCwtBAkGg5cAAQYCIyAAQjwchBAwKCyACKQOgAyERIAJBmANqIAJBkARqEMcDIAItAJgDQQFGBEAgAigCnAMhBAwKCyACLQCZA0EBRw0CIAJBmANqIAIoApAEELgCIAIoApgDIghBAkcNASACKAKcAyEEDAkLQQNBoOXAAEGAiMgAEI8HIQQMCAsgAigCnAMhAyACQZgDaiACQZAEahDHAyACLQCYA0EBRgRAIAIoApwDIQQMCAsgAi0AmQNBAUcNASACQZgDaiACKAKQBBCNAiACLQCYA0EBRw0CIAIoApwDIQQMBwtBBEGg5cAAQYCIyAAQjwchBAwGC0EFQaDlwABBgIjIABCPByEEDAULIAItAJkDIQ4gAkGYA2oiBCACQZAEaiIJEJUGIAIoApwDIQcgAigCmAMiC0EERg0DIAJByARqIAJB0ANqKAIANgIAIAJBuARqIAJBwANq/QACAP0LAwAgAkGoBGogAkGwA2r9AAIA/QsDACACIAL9AAKgA/0LA5gEAkACQCALQQNHBEAjAEEQayIFJAAgBUEEaiAJEMcDAkAgBS0ABEEBRgRAIAQgBSgCCDYCBCAEQYGAgIB4NgIADAELIAUtAAVFBEAgBEGAgICAeDYCAAwBCyAFQQRqIAkoAgAQgAEgBSgCBEGAgICAeEYEQCAEIAUoAgg2AgQgBEGBgICAeDYCAAwBCyAEIAUpAgQ3AgAgBEEIaiAFQQxqKAIANgIACyAFQRBqJAAgAigCnAMhBCACKAKYAyIFQYCAgIB4aw4CAgcBC0EGQaDlwABBgIjIABCPByEEDAYLIAIoAqADIQogAkHYAmogAkHIBGooAgA2AgAgAkHIAmogAkG4BGr9AAMA/QsDACACQbgCaiACQagEav0AAwD9CwMAIAIgAv0AA5gE/QsDqAIgBCEGIAMhBAwGC0EHQaDlwABBgIjIABCPByEEDAQLIAJB/wA6AFQgAiADQQFqNgJQIAJBAToAlAQgAiACQTxqNgKQBCACQaADaiEIQYCAgIB4IQVBAyEKQQMhDEECIQ1BACEJAkACQAJ/A0ACQCACQZgDaiACQZAEahDnAiACLQCYA0EBRgRAIAIoApwDIQEMAQsCQAJAIAItAJkDQQFGBEAgAigCkAQiA0EANgIIIAMgAygCFEEBajYCFCACQZgDaiADQQxqIAMQjwIgAigCnAMhASACKAKYA0ECRg0DAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACKAKgA0EEaw4KAgAQARAQBRADBBALIAFBsofIAEEFEJAIRQ0HIAFBm4jIAEEFEJAIDQ8gDUECRg0JQZuIyABBBRDRByEBDBALIAFBkIjIAEEHEJAIRQ0EIAFBoIjIAEEHEJAIDQ4gDEEDRg0JQaCIyABBBxDRByEBDA8LIAEoAABB4sLNqwZGDQQMDQsgAUHk5MAAQQwQkAgNDCASUA0FQeTkwABBDBDRByEBDA0LIAFBw4jIAEENEJAIDQsgCkEDRg0HQcOIyABBDRDRByEBDAwLIAFB8OTAAEEKEJAIDQogBUGAgICAeEYNB0Hw5MAAQQoQ0QciBCAFDQ0aQQIhCEEAIQUMEQsgCUUNCEGQiMgAQQcQ0QchAQwKCyATUEUEQEGuh8gAQQQQ0QchAQwKCyACQZgDaiADENoFIAIpA6ADIRFCASETIAIoApgDQQFHDQogAigCnAMhAQwJCyAUUEUEQEGyh8gAQQUQ0QchAQwJCyACQZgDaiADENoFIAIpA6ADIRBCASEUIAIoApgDQQFHDQkgAigCnAMhAQwICyACQZgDaiADENoFIAIpA6ADIQ9CASESIAIoApgDQQFHDQggAigCnAMhAQwHCyACQZgDaiADENsFIAIoApwDIgQhASACKAKYAyINQQJHDQcMBgsgAkGYA2ogAxDcBSACLQCZAyEMIAItAJgDQQFHDQYgAigCnAMhAQwFCyACQZgDaiADENcFIAIoApwDIQcgAigCmAMiCkEDRgRAIAchAQwFCyACQcgEaiAIQTBqKAIANgIAIAJBuARqIAhBIGr9AAIA/QsDACACQagEaiAIQRBq/QACAP0LAwAgAiAI/QACAP0LA5gEDAULIAMoAgwhBQJAAkACQAJAIAMoAhQiASADKAIQIgZJBEADQAJAIAEgBWotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgAyABQQFqIgE2AhQgASAGRw0ACyAGIQELIAJBKGogBSAGIAFBAWoiASAGIAEgBkkbEIYCIAIoAiwhAyACKAIoIQFBFBB+IgZFDRggBkEDNgIADAELIAJBIGogBSAGIAFBAWoiASAGIAEgBkkbEIYCIAIoAiQhAyACKAIgIQFBFBB+IgZFDRcgBkEGNgIACyAGIAE2AgwgBiADNgIQDAELIAMgAUEBajYCFCACQZgDaiADEIABIAIoAqADIQ4gAigCnAMhBiACKAKYAyIFQYCAgIB4Rw0FC0ECIQhBgICAgHghBSAGIQQMCQsgCUEBcUUEQEGQiMgAQQcQzwchAQwDCyATUARAQa6HyABBBBDPByEBDAMLIBRQBEBBsofIAEEFEM8HIQEMAwsgElAEQEHk5MAAQQwQzwchAQwDC0ECIQkgCkEDRwRAIAJByANqIAJByARqKAIANgIAIAJBuANqIAJBuARq/QACAP0LAwAgAkGoA2ogAkGoBGr9AAIA/QsDACACIAL9AAKYBP0LA5gDIAohCQsgBUGAgICAeEYEQEHw5MAAQQoQzwchBEECIQhBgICAgHghBQwJCyANQQAgDUECRxshCEECIAwgDEEDRhshASACQZADaiACQcgDaigCADYCACACQYADaiACQbgDav0AAwD9CwMAIAJB8AJqIAJBqANq/QADAP0LAwAgAiAC/QADmAP9CwPgAgwICyACQRhqIAMQwwVBASEJIAIoAhwiCyEBIAIoAhhBAXFFDQIMAQsgAxCrASIBRQ0BCwsgBUGAgICAeHJBgICAgHhGDQEgAQshBCAGQQRrKAIAIgNBeHEiASAFQShsIgdBBEEIIANBA3EiAxtqSQ0PIANBACABIAdBJ2pLGw0BIAYQtAJBAiEIDAMLQQIhCCABIQQMAgsMDgsgAyAENgIMIANBBTYCACADIAE2AhAMCQsgAiACLQBUQQFqOgBUIAJBPGoQigUhAyACQdADaiACQfACav0AAwD9CwMAIAJB4ANqIAJBgANq/QADAP0LAwAgAkHwA2ogAkGQA2ooAgA2AgAgAiAHNgK8AyACIAk2ArgDIAIgDzcDsAMgAiAQNwOoAyACIBE3A6ADIAIgBDYCnAMgAiAFNgL0AyACIAY2AvgDIAIgDjYC/AMgAiALNgKABCACIAM2AogEIAIgAToAhAQgAiAC/QAD4AL9CwPAAyACIAg2ApgDAkAgCEECRwRAIAMNASACQdABaiACQaADakHUAPwKAAAgAkHIAWogAkH8A2oiAUEIaigCADYCACACIAEpAgA3A8ABDAgLIANFDQQgAkGIBGoQ1wRBAiEIDAcLQQIhCAJAIAUEQCAGQQRrKAIAIgFBeHEiBCAFQShsIgdBBEEIIAFBA3EiARtqSQ0NIAFBACAEIAdBJ2pLGw0BIAYQtAILIAMhBAwHCwwMCyAHIQQLQQIhCAsgAiACLQBUQQFqOgBUIAJBPGoQ2wMhAyACQdADaiACQbgCav0AAwD9CwMAIAJB4ANqIAJByAJq/QADAP0LAwAgAkHwA2ogAkHYAmooAgA2AgAgAiAHNgK8AyACIAs2ArgDIAIgETcDsAMgAiAQNwOoAyACIA83A6ADIAIgBDYCnAMgAiAFNgL0AyACIAY2AvgDIAIgCjYC/AMgAiABNgKABCACIAM2AogEIAIgDjoAhAQgAiAC/QADqAL9CwPAAyACIAg2ApgDIAhBAkcEQCADDQIgAkHQAWogAkGgA2pB1AD8CgAAIAJByAFqIAJB/ANqIgFBCGooAgA2AgAgAiABKQIANwPAAQwECyADDQILQQIhCAwCC0ECIQgCQCAFBEAgBkEEaygCACIBQXhxIgQgBUEobCIHQQRBCCABQQNxIgEbakkNCCABQQAgBCAHQSdqSxsNASAGELQCCyADIQQMAgsMBwsgAkGIBGoQ1wRBAiEICyAIQQJGDQAgAkHoAGogAkHQAWpB1AD8CgAAIAJB4ABqIgogAkHIAWooAgA2AgAgAiACKQPAATcDWAJAIAIoAlAiAyACKAJMIgFJBEAgAigCSCEHA0AgAyAHai0AAEEJayIJQRdLQQEgCXRBk4CABHFFcg0CIAEgA0EBaiIDRw0ACyACIAE2AlALIABBCGogAkHoAGpB1AD8CgAAIAAgBjYCYCAAIAU2AlwgACAENgIEIAAgCDYCACAAQewAaiAKKAIANgIAIAAgAikDWDcCZAwDCyACIAM2AlAgAkEIaiAHIAEgA0EBaiIEIAEgASAESxsQhgIgAigCDCEEIAIoAgghB0EUEH4iAUUNAyABIAc2AgwgAUEWNgIAIAAgATYCBCAAQQI2AgAgASAENgIQIAVFDQIgBiAFQShsQQgQ1gcMAgsgBCACQTxqEJYGIQMLIAAgAzYCBCAAQQI2AgAgAEEIaiACQegAakHUAPwKAAAgAEHsAGogAkHgAGooAgA2AgAgACACKQNYNwJkCwJAIAIoAjwiAARAIAIoAkAiAUEEaygCACIEQXhxIgdBBEEIIARBA3EiBBsgAGpJDQMgBEEAIAcgAEEnaksbDQEgARC0AgsgAkHQBGokAA8LDAILAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALxhkBIH8jAEEgayIOJAAgDkEUaiABKAIAIAAoAgQiHCAAKAIIEMkEIA4oAhghDQJAAkACQAJAAkAgDigCFCIJQYCAgIB4RgRAIA0hGAwBCyAOIA0gDigCHBBAIA4oAgQhGAJAAkACQAJAIA4oAgAiGUGAgICAeEYEQCAJRQ0FIA1BBGsoAgAiAUF4cSICQQRBCCABQQNxIgEbIAlqSQ0JIAFBACACIAlBJ2pLGw0IIA0QtAIMBQsgDigCDCERIA4oAgghDwJAIAkEQCANQQRrKAIAIgpBeHEiDEEEQQggCkEDcSIKGyAJakkNASAKQQAgDCAJQSdqSxsNCSANELQCCyAOQRRqIAEoAgAgACgCECIdIAAoAhQQyQQgDigCGCENAkACQAJAIA4oAhQiCUGAgICAeEYEQCANIQEMAQsgDiANIA4oAhwQQCAOKAIEIQEgDigCACIeQYCAgIB4Rw0BIAlFDQAgDUEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgCWpJDQIgAkEAIAMgCUEnaksbDQsgDRC0AgsgGQRAIBhBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIBlqSQ0MIAJBACADIBlBJ2pLGw0LIBgQtAILIAEhGAwHCyAOKAIIIRogCQRAIA1BBGsoAgAiCkF4cSIMQQRBCCAKQQNxIgobIAlqSQ0LIApBACAMIAlBJ2pLGw0KIA0QtAILIAAoAhwhEiAAKAIYISIgAkUNBQJAIAAtACQiDQRAIAAoAiAhEEEPQQhBAyANQQFLIiMbIA1BAksiJBsiE0ECdCElIBFBAnQhJkEBIQlBACEKDAELQQAhCUEBIQMDQCAJIBpPDQYgCUEBaiAaTw0EIAlBBGohCSACIANLIANBAWohAw0ACwwGCwNAIAkhDSAKQQJ0IgkgGk8NBSAJQQFyIgogGk8NBCAmIAEgCWotAAAiDCABIApqLQAAIhRBCHRyQcD/A3FBBnYiCWwgJSAMQT9xIgpsaiEnIBggCSARbCAKIBNsakECdGohKEEAIRtBACEJAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAA0AgCSAnaiIVIA9PDRogECAJIChqIhYtAAAiCk0NIyAJICFqIgsgBE8NICADIBtqIhcgEiAKQQJ0aioCADgCACAVQQRqIA9PDRsgECAWQQRqLQAAIgpNDSMgC0EDaiAETw0eIBdBDGogEiAKQQJ0aioCADgCACAVQQhqIA9PDRwgECAWQQhqLQAAIgpNDSMgC0EGaiAETw0fIBdBGGogEiAKQQJ0aioCADgCAAJAAkAgI0UNACAVQQxqIA9PDREgECAWQQxqLQAAIgpNDSQgCSAgaiILIAZPDRsgBSAbaiIXIBIgCkECdGoqAgA4AgAgFUEQaiAPTw0SIBAgFkEQai0AACIKTQ0kIAtBA2ogBk8NGCAXQQxqIBIgCkECdGoqAgA4AgAgFUEUaiAPTw0TIBAgFkEUai0AACIKTQ0kIAtBBmogBk8NFyAXQRhqIBIgCkECdGoqAgA4AgAgFUEYaiAPTw0UIBAgFkEYai0AACIKTQ0kIAtBCWogBk8NGSAXQSRqIBIgCkECdGoqAgA4AgAgFUEcaiAPTw0VIBAgFkEcai0AACIKTQ0kIAtBDGogBk8NGiAXQTBqIBIgCkECdGoqAgA4AgAgJEUNACAVQSBqIA9PDQEgECAWQSBqLQAAIgpNDSMgCSAfaiILIAhPDRAgByAbaiIXIBIgCkECdGoqAgA4AgAgFUEkaiAPTw0DIBAgFkEkai0AACIKTQ0jIAtBA2ogCE8NDyAXQQxqIBIgCkECdGoqAgA4AgAgFUEoaiAPTw0EIBAgFkEoai0AACIKTQ0jIAtBBmogCE8NDiAXQRhqIBIgCkECdGoqAgA4AgAgFUEsaiAPTw0FIBAgFkEsai0AACIKTQ0jIAtBCWogCE8NDSAXQSRqIBIgCkECdGoqAgA4AgAgFUEwaiAPTw0GIBAgFkEwai0AACIKTQ0jIAtBDGogCE8NDCAXQTBqIBIgCkECdGoqAgA4AgAgFUE0aiAPTw0HIBAgFkE0ai0AACIKTQ0jIAtBD2ogCE8NCyAXQTxqIBIgCkECdGoqAgA4AgAgFUE4aiAPTw0IIBAgFkE4ai0AACIKTQ0jIAtBEmogCE8NCiAXQcgAaiASIApBAnRqKgIAOAIACyAbQQRqIRsgCUEBaiIJQQNPDSUMAQsLIBEgFEEIdCAMckHA/wNxQQZ2bEECdCATIAxBP3FsQQJ0aiAJakEgagwGCyARIBRBCHQgDHJBwP8DcUEGdmxBAnQgEyAMQT9xbEECdGogCWpBJGoMBQsgESAUQQh0IAxyQcD/A3FBBnZsQQJ0IBMgDEE/cWxBAnRqIAlqQShqDAQLIBEgFEEIdCAMckHA/wNxQQZ2bEECdCATIAxBP3FsQQJ0aiAJakEsagwDCyARIBRBCHQgDHJBwP8DcUEGdmxBAnQgEyAMQT9xbEECdGogCWpBMGoMAgsgESAUQQh0IAxyQcD/A3FBBnZsQQJ0IBMgDEE/cWxBAnRqIAlqQTRqDAELIBEgFEEIdCAMckHA/wNxQQZ2bEECdCATIAxBP3FsQQJ0aiAJakE4agsgD0HE+McAEL8HAAsgC0ESaiELDAULIAtBD2ohCwwECyALQQxqIQsMAwsgC0EJaiELDAILIAtBBmohCwwBCyALQQNqIQsLIAsgCEHk+McAEL8HAAsgESAUQQh0IAxyQcD/A3FBBnZsQQJ0IBMgDEE/cWxBAnRqIAlqQQxqDAQLIBEgFEEIdCAMckHA/wNxQQZ2bEECdCATIAxBP3FsQQJ0aiAJakEQagwDCyARIBRBCHQgDHJBwP8DcUEGdmxBAnQgEyAMQT9xbEECdGogCWpBFGoMAgsgESAUQQh0IAxyQcD/A3FBBnZsQQJ0IBMgDEE/cWxBAnRqIAlqQRhqDAELIBEgFEEIdCAMckHA/wNxQQZ2bEECdCATIAxBP3FsQQJ0aiAJakEcagsgD0H0+McAEL8HAAsgC0EGaiELDAMLIAtBA2ohCwwCCyALQQlqIQsMAQsgC0EMaiELCyALIAZBlPnHABC/BwALIBEgFEEIdCAMckHA/wNxQQZ2bEECdCATIAxBP3FsQQJ0aiAJagwCCyARIBRBCHQgDHJBwP8DcUEGdmxBAnQgEyAMQT9xbEECdGogCWpBBGoMAQsgESAUQQh0IAxyQcD/A3FBBnZsQQJ0IBMgDEE/cWxBAnRqIAlqQQhqCyAPQaT5xwAQvwcACyALQQNqIQsMAQsgC0EGaiELCyALIARBxPnHABC/BwALIAogEEHU+McAEL8HAAsgCiAQQYT5xwAQvwcACyAKIBBBtPnHABC/BwALIB9BFWohHyAHQdQAaiEHIAVBPGohBSAgQQ9qISAgA0EkaiEDICFBCWohISANIAIgDUsiC2ohCSANIQogCw0ACwwFCwwJCwwICyAJQQFqIQoLIAogGkG0+McAEL8HAAsgCSAaQaT4xwAQvwcACwJAICIEQCASQQRrKAIAIgJBeHEiAyAiQQJ0IgRBBEEIIAJBA3EiAhtqSQ0GIAJBACADIARBJ2pLGw0FIBIQtAILIB4EQCABQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyAeakkNBiACQQAgAyAeQSdqSxsNBSABELQCCyAZBEAgGEEEaygCACIBQXhxIgJBBEEIIAFBA3EiARsgGWpJDQYgAUEAIAIgGUEnaksbDQUgGBC0AgsgACgCACIBBEAgHEEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAWpJDQYgAkEAIAMgAUEnaksbDQUgHBC0AgsgACgCDCIARQRAQQAhGAwECyAdQQRrKAIAIgFBeHEiAkEEQQggAUEDcSIBGyAAakkNBUEAIRggAUUNAiACIABBJ2pLDQAMAgsMAwsgACgCACIBBEAgHEEEaygCACICQXhxIgNBBEEIIAJBA3EiAhsgAWpJDQQgAkEAIAMgAUEnaksbDQMgHBC0AgsgACgCDCIBBEAgACgCECICQQRrKAIAIgNBeHEiBEEEQQggA0EDcSIDGyABakkNBCADQQAgBCABQSdqSxsNAyACELQCCyAAKAIYIgFFDQEgACgCHCIdQQRrKAIAIgBBeHEiAiABQQJ0IgFBBEEIIABBA3EiABtqSQ0DIABFIAIgAUEnak1yDQAMAgsgHRC0AgsgDkEgaiQAIBgPC0GgjMgAQS5B0IzIABCiCAALQeCLyABBLkGQjMgAEKIIAAvrIwEIfwJAAkACQAJAAkACQCAAQfUBTwRAIABBzP97SwRAQQAPCyAAQQtqIgFBeHEhBUG00MkAKAIAIghFDQRBHyEHQQAgBWshAyAAQfT//wdNBEAgBUEGIAFBCHZnIgBrdkEBcSAAQQF0a0E+aiEHCyAHQQJ0QZjNyQBqKAIAIgJFBEBBACEAQQAhAQwCC0EAIQAgBUEZIAdBAXZrQQAgB0EfRxt0IQRBACEBA0ACQCACKAIEQXhxIgYgBUkNACAGIAVrIgYgA08NACACIQEgBiIDDQBBACEDIAEhAAwECyACKAIUIgYgACAGIAIgBEEddkEEcWooAhAiAkcbIAAgBhshACAEQQF0IQQgAg0ACwwBCwJAAkACQAJAAkBBsNDJACgCACICQRAgAEELakH4A3EgAEELSRsiBUEDdiIAdiIBQQNxBEAgAUF/c0EBcSAAaiIGQQN0IgFBqM7JAGoiBCABQbDOyQBqKAIAIgAoAggiA0YNASADIAQ2AgwgBCADNgIIDAILIAVBuNDJACgCAE0NCCABDQJBtNDJACgCACIARQ0IIABoQQJ0QZjNyQBqKAIAIgEoAgRBeHEgBWshAyABIQIDQAJAIAEoAhAiAA0AIAEoAhQiAA0AIAIoAhghBwJAAkAgAiACKAIMIgBGBEAgAkEUQRAgAigCFCIAG2ooAgAiAQ0BQQAhAAwCCyACKAIIIgEgADYCDCAAIAE2AggMAQsgAkEUaiACQRBqIAAbIQQDQCAEIQYgASIAQRRqIABBEGogACgCFCIBGyEEIABBFEEQIAEbaigCACIBDQALIAZBADYCAAsgB0UNBgJAIAIoAhxBAnRBmM3JAGoiASgCACACRwRAIAIgBygCEEcEQCAHIAA2AhQgAA0CDAkLIAcgADYCECAADQEMCAsgASAANgIAIABFDQYLIAAgBzYCGCACKAIQIgEEQCAAIAE2AhAgASAANgIYCyACKAIUIgFFDQYgACABNgIUIAEgADYCGAwGCyAAKAIEQXhxIAVrIgEgAyABIANJIgEbIQMgACACIAEbIQIgACEBDAALAAtBsNDJACACQX4gBndxNgIACyAAIAFBA3I2AgQgACABaiIBIAEoAgRBAXI2AgQMBwsCQEECIAB0IgRBACAEa3IgASAAdHFoIgZBA3QiAUGozskAaiIEIAFBsM7JAGooAgAiACgCCCIDRwRAIAMgBDYCDCAEIAM2AggMAQtBsNDJACACQX4gBndxNgIACyAAIAVBA3I2AgQgACAFaiIHIAEgBWsiBkEBcjYCBCAAIAFqIAY2AgBBuNDJACgCACICBEBBwNDJACgCACEBAn9BsNDJACgCACIEQQEgAkEDdnQiA3FFBEBBsNDJACADIARyNgIAIAJBeHFBqM7JAGoiAwwBCyACQXhxIgJBqM7JAGohAyACQbDOyQBqKAIACyEEIAMgATYCCCAEIAE2AgwgASADNgIMIAEgBDYCCAtBwNDJACAHNgIAQbjQyQAgBjYCAAwGC0G00MkAQbTQyQAoAgBBfiACKAIcd3E2AgALAkACQCADQRBPBEAgAiAFQQNyNgIEIAIgBWoiBiADQQFyNgIEIAMgBmogAzYCAEG40MkAKAIAIgFFDQFBwNDJACgCACEAAn9BsNDJACgCACIEQQEgAUEDdnQiB3FFBEBBsNDJACAEIAdyNgIAIAFBeHFBqM7JAGoiBAwBCyABQXhxIgFBqM7JAGohBCABQbDOyQBqKAIACyEBIAQgADYCCCABIAA2AgwgACAENgIMIAAgATYCCAwBCyACIAMgBWoiAEEDcjYCBCAAIAJqIgAgACgCBEEBcjYCBAwBC0HA0MkAIAY2AgBBuNDJACADNgIACyACQQhqIgNFDQMMBQsgACABckUEQEEAIQFBAiAHdCIAQQAgAGtyIAhxIgBFDQMgAGhBAnRBmM3JAGooAgAhAAsgAEUNAQsDQCAAIAEgACgCBEF4cSIEIAVrIgYgA0kiBxshCCAAKAIQIgJFBEAgACgCFCECCyABIAggBCAFSSIAGyEBIAMgBiADIAcbIAAbIQMgAiIADQALCyABRQ0AIAVBuNDJACgCACIATSADIAAgBWtPcQ0AIAEoAhghBwJAAkAgASABKAIMIgBGBEAgAUEUQRAgASgCFCIAG2ooAgAiAg0BQQAhAAwCCyABKAIIIgIgADYCDCAAIAI2AggMAQsgAUEUaiABQRBqIAAbIQQDQCAEIQYgAiIAQRRqIABBEGogACgCFCICGyEEIABBFEEQIAIbaigCACICDQALIAZBADYCAAsCQCAHRQ0AAkACQCABKAIcQQJ0QZjNyQBqIgIoAgAgAUcEQCABIAcoAhBHBEAgByAANgIUIAANAgwECyAHIAA2AhAgAA0BDAMLIAIgADYCACAARQ0BCyAAIAc2AhggASgCECICBEAgACACNgIQIAIgADYCGAsgASgCFCICRQ0BIAAgAjYCFCACIAA2AhgMAQtBtNDJAEG00MkAKAIAQX4gASgCHHdxNgIACwJAIANBEE8EQCABIAVBA3I2AgQgASAFaiIAIANBAXI2AgQgACADaiADNgIAIANBgAJPBEAgACADEKsFDAILAn9BsNDJACgCACICQQEgA0EDdnQiBHFFBEBBsNDJACACIARyNgIAIANB+AFxQajOyQBqIgMMAQsgA0H4AXEiAkGozskAaiEDIAJBsM7JAGooAgALIQIgAyAANgIIIAIgADYCDCAAIAM2AgwgACACNgIIDAELIAEgAyAFaiIAQQNyNgIEIAAgAWoiACAAKAIEQQFyNgIECyABQQhqIgMNAgsCQAJAAkACQCAFQbjQyQAoAgAiAUsEQCAFQbzQyQAoAgAiAE8EQCAFQa+ABGoiAUEQdkAAIgBBf0YEQEEADwtBACEDIABBEHQiAEUNB0HI0MkAIAFBgIB8cSIBQRBrIAEgAEEAIAFrRhsiAkHI0MkAKAIAaiIBNgIAQczQyQAgAUHM0MkAKAIAIgQgASAESxs2AgACQAJAQcTQyQAoAgAiAQRAQZjOyQAhAwNAIAMoAgAiBCADQQRqKAIAIgZqIABGDQIgAygCCCIDDQALDAILQdTQyQAoAgAiAUEAIAAgAU8bRQRAQdTQyQAgADYCAAtB2NDJAEH/HzYCAEGczskAIAI2AgBBmM7JACAANgIAQbTOyQBBqM7JADYCAEG8zskAQbDOyQA2AgBBsM7JAEGozskANgIAQcTOyQBBuM7JADYCAEG4zskAQbDOyQA2AgBBzM7JAEHAzskANgIAQcDOyQBBuM7JADYCAEHUzskAQcjOyQA2AgBByM7JAEHAzskANgIAQdzOyQBB0M7JADYCAEHQzskAQcjOyQA2AgBB5M7JAEHYzskANgIAQdjOyQBB0M7JADYCAEHszskAQeDOyQA2AgBB4M7JAEHYzskANgIAQaTOyQBBADYCAEH0zskAQejOyQA2AgBB6M7JAEHgzskANgIAQfDOyQBB6M7JADYCAEH8zskAQfDOyQA2AgBB+M7JAEHwzskANgIAQYTPyQBB+M7JADYCAEGAz8kAQfjOyQA2AgBBjM/JAEGAz8kANgIAQYjPyQBBgM/JADYCAEGUz8kAQYjPyQA2AgBBkM/JAEGIz8kANgIAQZzPyQBBkM/JADYCAEGYz8kAQZDPyQA2AgBBpM/JAEGYz8kANgIAQaDPyQBBmM/JADYCAEGsz8kAQaDPyQA2AgBBqM/JAEGgz8kANgIAQbTPyQBBqM/JADYCAEG8z8kAQbDPyQA2AgBBsM/JAEGoz8kANgIAQcTPyQBBuM/JADYCAEG4z8kAQbDPyQA2AgBBzM/JAEHAz8kANgIAQcDPyQBBuM/JADYCAEHUz8kAQcjPyQA2AgBByM/JAEHAz8kANgIAQdzPyQBB0M/JADYCAEHQz8kAQcjPyQA2AgBB5M/JAEHYz8kANgIAQdjPyQBB0M/JADYCAEHsz8kAQeDPyQA2AgBB4M/JAEHYz8kANgIAQfTPyQBB6M/JADYCAEHoz8kAQeDPyQA2AgBB/M/JAEHwz8kANgIAQfDPyQBB6M/JADYCAEGE0MkAQfjPyQA2AgBB+M/JAEHwz8kANgIAQYzQyQBBgNDJADYCAEGA0MkAQfjPyQA2AgBBlNDJAEGI0MkANgIAQYjQyQBBgNDJADYCAEGc0MkAQZDQyQA2AgBBkNDJAEGI0MkANgIAQaTQyQBBmNDJADYCAEGY0MkAQZDQyQA2AgBBrNDJAEGg0MkANgIAQaDQyQBBmNDJADYCAEHE0MkAIAA2AgBBqNDJAEGg0MkANgIAQbzQyQAgAkEoayIBNgIAIAAgAUEBcjYCBCAAIAFqQSg2AgRB0NDJAEGAgIABNgIADAcLIAMoAgwgASAESXINACAAIAFLDQMLQdTQyQBB1NDJACgCACIEIAAgACAESxs2AgAgACACaiEEQZjOyQAhAwJAAkADQCAEIAMoAgAiBkcEQCADKAIIIgMNAQwCCwsgAygCDEUNAQtBmM7JACEDA0ACQCABIAMoAgAiBE8EQCABIAQgA0EEaigCAGoiBkkNAQsgAygCCCEDDAELC0HE0MkAIAA2AgBBvNDJACACQShrIgQ2AgAgACAEQQFyNgIEIAAgBGpBKDYCBEHQ0MkAQYCAgAE2AgAgASAGQSBrQXhxQQhrIgQgBCABQRBqSRsiBEEbNgIEIARBCGoiA0GYzskA/QACAP0LAgBBnM7JACACNgIAQZjOyQAgADYCAEGgzskAIAM2AgBBpM7JAEEANgIAIARBHGohAANAIABBBzYCACAAQQRqIgAgBkkNAAsgASAERg0GIAQgBCgCBEF+cTYCBCABIAQgAWsiAEEBcjYCBCAEIAA2AgAgAEGAAk8EQCABIAAQqwUMBwsCf0Gw0MkAKAIAIgJBASAAQQN2dCIEcUUEQEGw0MkAIAIgBHI2AgAgAEH4AXFBqM7JAGoiAAwBCyAAQfgBcSICQajOyQBqIQAgAkGwzskAaigCAAshAyAAIAE2AgggAyABNgIMIAEgADYCDCABIAM2AggMBgsgAyAANgIAIAMgAygCBCACajYCBCAAIAVBA3I2AgQgBkEPakF4cUEIayIBIAAgBWoiBGshAyABQcTQyQAoAgBGDQMgAUHA0MkAKAIARg0EIAEoAgQiAkEDcUEBRgRAIAEgAkF4cSICEPwEIAIgA2ohAyABIAJqIgEoAgQhAgsgASACQX5xNgIEIAQgA0EBcjYCBCADIARqIAM2AgAgA0GAAk8EQCAEIAMQqwUMBwsCf0Gw0MkAKAIAIgFBASADQQN2dCICcUUEQEGw0MkAIAEgAnI2AgAgA0H4AXFBqM7JAGoiAwwBCyADQfgBcSIBQajOyQBqIQMgAUGwzskAaigCAAshASADIAQ2AgggASAENgIMIAQgAzYCDCAEIAE2AggMBgtBvNDJACAAIAVrIgE2AgBBxNDJAEHE0MkAKAIAIgAgBWoiAjYCACACIAFBAXI2AgQgACAFQQNyNgIEDAULQcDQyQAoAgAhACABIAVrIgJBD00EQEHA0MkAQQA2AgBBuNDJAEEANgIAIAAgAUEDcjYCBCAAIAFqIgEgASgCBEEBcjYCBAwFC0G40MkAIAI2AgBBwNDJACAAIAVqIgQ2AgAgBCACQQFyNgIEIAAgAWogAjYCACAAIAVBA3I2AgQMBAsgA0EEaiACIAZqNgIAQcTQyQBBxNDJACgCACIAQQ9qQXhxIgFBCGsiBDYCAEG80MkAQbzQyQAoAgAgAmoiAiAAIAFrakEIaiIBNgIAIAQgAUEBcjYCBCAAIAJqQSg2AgRB0NDJAEGAgIABNgIADAILQcTQyQAgBDYCAEG80MkAQbzQyQAoAgAgA2oiATYCACAEIAFBAXI2AgQMAgtBwNDJACAENgIAQbjQyQBBuNDJACgCACADaiIBNgIAIAQgAUEBcjYCBCABIARqIAE2AgAMAQtBACEDQbzQyQAoAgAiACAFTQ0BQbzQyQAgACAFayIBNgIAQcTQyQBBxNDJACgCACIAIAVqIgI2AgAgAiABQQFyNgIEIAAgBUEDcjYCBAsgAEEIaiEDCyADC5MgAg9/An4jAEHQAGsiCCQAIAFBmARqIRAgAUGIBGohEiABQZwEaiEPIAFB6ANqIQogAUHwA2ohDgJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAIAACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAA0ACQAJAAkACQAJAAkACQAJAIAIgASgCnAQiDCABKAKUBCIJayIGQQAgBiAMTRtNBEACQCAJIAEoAvgDIgxJBEAgASgC9AMiBiAJaiIFLQAAIgtBBUkNAUEZIQUMMQsgCSAMQcy2xQAQvwcACyABLQDFBCERQQEhDQJAAkACQEECIBIoAgAiB0GAgICAeHMgB0EAThsiCkEBaw4CAAECCyABKAKMBCIOIAlNBEAgBiAOaiENIAkgDmshCgwCCyAOIAlBjLfFABCjCgALIAEoApAEIQogASgCjAQhDQsgAkUNASACIAwgCWsiBksNAiALIBEgDSAKIAVBAWogAkEBaxBjIAdBAE4EQCAIQUBrIgcgEkEIaigCADYCACABQQA2ApAEIAggEikCADcDOCABKAL8AyIMBEAgASgCgAQiDUEEaygCACIGQXhxIgVBBEEIIAZBA3EiBhsgDGpJDQUgBkEAIAUgDEEnaksbDQYgDRC0AgsgAUH8A2oiBiAIKQM4NwIAIAZBCGogBygCADYCAAsgAUGBgICAeDYCiAQgASACIAlqIgo2ApQEIAEgCUEBajYCjAQMDQsgAS0A5AMEQEEdIQUMLwsgCikDAFANBCAKQSRBLCABKAKIBEGBgICAeEYbaigCACIGIAwgBiAMSRsiCyABKAKgBEkgASgCmAQiCSABKAL4AyIFQQF2SXINByABKAL0AyEHAkAgBSAJa0EPSyAFIAlPcUUEQCAFIAtJDQcgBSALayIGBEAgByAHIAtqIAb8CgAACyAJIAtrIQkMAQsgCSALSQ0HIAkgC2siCUUNACAHIAcgC2ogCfwKAAALIAEgCTYCmAQgASAMIAtrNgKcBCABIAEoApQEIAtrNgKUBCABKAKIBEGBgICAeEYEQCABIAEoAowEIAtrNgKMBAsgASgC+AMhBQwHC0EBQQBB3LbFABClCgALIAIgBkHctsUAEKIKAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALQcChxwBBP0GAoscAEKIIAAsgCyAFQby2xQAQpQoACyALIAlBrLbFABClCgALIAUgCUGAQGsiBkkEQCAGIAVrIgcgASgC8AMgBWtLBEAgDiAFIAdBAUEBENAFIAEoAvgDIQULIAEoAvQDIgYgBWohDCAHQQJPBH8gB0EBayIHBEAgDEEAIAf8CwALIAYgBSAHaiIFagUgDAtBADoAACABIAVBAWoiBTYC+AMgASgCmAQhCQsCQCAKKQMAIhRC/v///w9WDQBBfyAJIBSnaiIGIAYgCUkbIAVPDQAgBSAGTwRAIAEgBiIFNgL4AwwBCyAGIAVrIgcgASgC8AMgBWtLBEAgDiAFIAdBAUEBENAFIAEoAvgDIQULIAEoAvQDIgYgBWohDCAHQQJPBH8gB0EBayIHBEAgDEEAIAf8CwALIAYgBSAHaiIFagUgDAtBADoAACAQKAIAIQkgASAFQQFqIgU2AvgDCyAIIBA2AjQgCCAPNgIwIAggBTYCLCAIIAEoAvQDNgIoAn8CQAJ+IAEoApwDIgUgASkDoAMiFSAFrSIUIBQgFVYbpyIGRgRAQQEhDUEkIQVCJQwBCyAIQThqIAEgASgCmAMgBmogBSAGayAIQShqEOYBIAgpAkAhFCAIKAI8IQUgCCgCOEUEQCABIAEpA6ADIAWtfDcDoAMgFKchDQwCCyAUpyENIAVB/wFxQShGDQEgCCgCSCETIBRCCIgLIRQgCCANOgAgIAggFD4AISAIIBRCMIg8ACcgCCAUQiCIPQAlIAVBEHYhESAFQQh2DAELQSghBSANQf8BcUEGRgshCyAJIBAoAgAiB0sEQEGwoscAQStB3KLHABCiCAALIAogCikDACIVIAcgCWutIhR9NwMAIBQgFVEEQCAPIAc2AgALAkAgBUH/AXEiBkEoRwRAIAZBJEcNJyANQf8BcUEBaw4DAQMEJwsgC0EBcUUNASABKAK8BCIGRQ0GIAFBAToA5AMgASAGQQFrNgK8BAwBCwsgCC0AIQwCCyAIKAIkLQAIDAELIAgoAiQtAAgLQf8BcUElRw0hIAcgASgClAQiCWsgAkkNISAJIAEoAvgDIg5PDQIgCCgCJCEPIAgtACAhDUEZIQUgASgC9AMiDCAJai0AACILQQVJBEAgAS0AxQQhEyABKQL8AyEUIAFCgICAgBA3AvwDIAhBQGsgAUGEBGoiBSgCACIGNgIAIAVBADYCACAIIBQ3AzggCAJ/IAYgAkEBayIQTwRAIAgoAjwhESAQDAELIBAgBmsiBSAIKAI4IAZrSwRAIAhBOGogBiAFEKMGIAgoAkAhBgsgCCgCPCIRIAZqIQcgBUECTwR/IAVBAWsiBQRAIAdBACAF/AsACyARIAUgBmoiBmoFIAcLQQA6AAAgBkEBagsiBzYCQCAQIA4gCUEBaiIFayIGSw0EIAcgEEcNBSAQBEAgESAFIAxqIBD8CgAAC0EBIQYCQAJAAkAgEigCACIFQYCAgIB4c0ECIAVBAEgiBRsiCkEBaw4CAAECCyABKAKMBCIHIAlNBEAgByAMaiEGIAkgB2shCgwCCyAHIAlBjLfFABCjCgALIAEoApAEIQogASgCjAQhBgsgCyATIAYgCiARIBAQYyAFRQRAIAFB/ANqIgYgEikCADcCACAGQQhqIBJBCGooAgA2AgALIBIgCCkDODcCACABIAIgCWo2ApQEIBJBCGogCEFAaygCADYCAEEoIQULIA1BA0YEQCAPKAIAIQcgD0EEaigCACIJKAIAIgYEQCAHIAYRAwALIAkoAgQiDQRAIAcgDSAJKAIIENYHCyAPQQxBBBDWBwsgBUEoRw0iIAEoApQEIQoLIAogASgC+AMiBksNBEEBIQYCQAJAAkBBAiASKAIAIgVBgICAgHhzIAVBAE4bIgVBAWsOAgABAgsgASgCjAQiBSAKTQRAIAEoAvQDIAVqIQYgCiAFayEFDAILIAUgCkGMt8UAEKMKAAsgASgCkAQhBSABKAKMBCEGCyAIIAJBAWsiDjYCHCAIIAU2AhggBSAORw0FIAEoAqgEIgUNGiABKAIIQQJHBEAgAS0AxgIhAiABKALABCEKIAggAS0AxwIiBToAKCAKQYCABHEiC0EQdiINIAEoAtQBQYGAgIB4R3IhBwJAAkACQCAKQRBxBEACQAJAIAVBEEYEQAJAIAJBAWsOBhoTAwIaAAULQQEhBSAKQQFxRQ0gQfCyxQAMIQtBACEKIAJBAWsOBhgRGgUYHwQLQQEhBSAKQQFxRQ0eQfCyxQAMHwsgASgC4AFBgYCAgHhHDRlBDgwaCyAFQRBGDQ0CQAJAAkAgAkEBaw4GGAEZAhgfAAsgC0EAIAVBB00bDQwgByANcQ0ODB4LIAsNDQwdCyALRQ0cIAVBB00NCgwcC0EBIQ0gCkEBcSEKDBALIAVBCE8NCQwICyAFQQhJDQcMGQtB5J/HABCkCgALQeSgxwBBK0GQoccAEKIIAAsgCSAOQcy2xQAQvwcACyAQIAZB7LbFABCiCgALIAcgEEH8tsUAEKcKAAsgCiAGQZy2xQAQogoACyAIQQA2AjhBACAIQRhqIAhBHGogCEE4akGQoscAEK4IAAtBBBB+IgVFDQogBUH4AEH5ACAHGzYCAEGcs8UADBILIAdFDRALQQAhCgwFCwJAIAJBAWsOBggACQMIDgQLIAtFDQELIAcNAwtBASEFIApBAXFFDQxB8LLFAAwNC0EBIQUgCkEBcUUNC0HwssUADAwLIAcgDXENAUEBIQUgCkEBcUUNCkHwssUADAsLQfoAQfsAIAVBCEYiAhshDSACIApBAXFyDQFB/AAhDSAFQRBGDQEgCEEANgI4QQAgCEEoakGIs8UAIAhBOGpBjLPFABCyCAALQfsAQfwAIApBAXEbIQ0LQQQQfiIFRQ0AIAUgDTYCAEGcs8UADAgLAAsgC0UNBQtBDiABKALgAUGBgICAeEYNARogBUEQRw0CC0EPCzoAACAAQZAGOwABDAwLIAFBCGohAiAHRQRAIAhBEGohBSMAQYAIayIHJAAgByACEJICIAItAL8CIQJBgAgQfiEMAkACQAJ/IAJBCEYEQCAMRQ0CQZSxxQAMAQsgDEUNAUGsscUACyECIAwgB0GACPwKAAAgBSACNgIEIAUgDDYCACAHQYAIaiQADAELAAsgCCgCECEFIAgoAhQMAwsgCEEIaiEFIwBBgAhrIgckACAHIAIQkgICQEGACBB+IgIEQCACIAdBgAj8CgAAIAVBxLHFADYCBCAFIAI2AgAgB0GACGokAAwBCwALIAgoAgghBUHEscUADAILQQEhBSAKQQFxRQ0AQfCyxQAMAQtBASEFQbSzxQALIQ0CQCABKAKoBCIPRQ0AIAEoAqwEIgIoAgAiCwRAIA8gCxEDAAsgAigCBCIMRQ0AIA9BBGsoAgAiB0F4cSICQQRBCCAHQQNxIgsbIAxqSQ0CIAtBACACIAxBJ2pLGw0DIA8QtAILIAEgDTYCrAQgASAFNgKoBAsgASgCCEECRg0EIAUgBiAOIAMgBCABQQhqIAEoAqwEKAIUEQkAAkACQCABKAKoA0EBRgRAAkAgASgCrAMiAiABKAKwA08NACABKAK0AyILRQ0AIAEoArgDIQ0gAS0AwAMhEUEBIQYMAgtBByABLQDAAyIFIAVBB00bIQdBAiEDIAVBAnRBoZfFAGohCiABKAK8AyEOIAEoArgDIQ0DQCAFIAdGDQMgASAFQQFqIgUiEToAwAMgCigAACIPQf8BcSIGRQ0GIAEgDSAPQQh2Qf8BcWsiAkEAIAIgDU0bIgQgBm4iAiAEIAIgBmxHaiILNgK0AyAPQRB2Qf8BcSIMRQ0HQQAhAiABQQA2AqwDIAEgDiAPQRh2ayIEQQAgBCAOTRsiBiAMbiIEIAYgBCAMbEdqIgQ2ArADQQEhBiAKQQRqIQogBEUgC0VyDQALDAELQQIhA0EAIQYgASgCrAMiAiABKAKwA08NAQsgASACQQFqNgKsAyAGIQMLIAEgEToA1AMgASALNgLQAyABIA02AswDIAEgAjYCyAMgASADNgLEAyAAQSg6AAAMBwtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALQdCXxQAQuQgAC0Hgl8UAELkIAAtB5J/HABCkCgALIAgoAiQhASAIKAIgIQkLIAAgEzYCDCAAIAE2AgggACAJNgIEIAAgBToAACAAQQNqIBFBCHY6AAAgACALQf8BcSARQQh0cjsAAQsgCEHQAGokAAuQIwMRfwR+AX0jAEHwAWsiAiQAIAEoAgwhBQJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCFCIEIAEoAhAiA0kEQANAIAQgBWotAAAiBkEJayIHQRdLQQEgB3RBk4CABHFFcg0CIAEgBEEBaiIENgIUIAMgBEcNAAsgAyEECyACIAUgAyAEQQFqIgEgAyABIANJGxCGAiACKAIEIQMgAigCACEEQRQQfiIBRQ0BIAEgBDYCDCABQQU2AgAgACABNgIEIABBgICAgHg2AgAgASADNgIQDAYLAkACQAJAAkAgBkHbAEYEQCABIAEtABhBAWsiBjoAGCAEQQFqIQQgBkH/AXFFDQQgASAENgIUIAJBAToAYCACIAE2AlwgAkEANgJsIAJCgICAgIABNwJkIAJB2AFqIREgAkG4AWohDkEIIQ8DQCACQbABaiACQdwAahDHAyACLQCwAUEBRgRAIAIoArQBIQQMCAsCQAJAAkACQAJAAkAgAi0AsQFBAUYEQCACKAJcIggoAgwhBgJAIAgoAhQiBCAIKAIQIgNJBEADQCAEIAZqLQAAIgdBCWsiBUEXS0EBIAV0QZOAgARxRXINAiAIIARBAWoiBDYCFCADIARHDQALIAMhBAsgAkHQAGogBiADIARBAWoiBCADIAMgBEsbEIYCIAIoAlQhAyACKAJQIQVBFBB+IgRFDQ4gBCAFNgIMIARBBTYCACAEIAM2AhAMDwsCQAJAIAdB2wBHBEAgB0H7AEYNASAIIAJB7wFqQaySwQAQ+gEhBQwOCyAIIAgtABhBAWsiBToAGCAEQQFqIQQgBUH/AXFFDQsgCCAENgIUIAIgCDYC5AEgAkEBOgDoASACQbABaiACQeQBahDHAwJAAkAgAi0AsAFBAUYEQCACKAK0ASEDDAELAkACQAJAAkACQAJAAkACQAJAAkACQCACLQCxAUEBRgRAIAJBsAFqIAIoAuQBENwDIAIoArABQQFGBEAgAigCtAEhAwwNCyACKQO4ASEUIAJBsAFqIAJB5AFqEMcDIAItALABQQFGBEAgAigCtAEhAwwNCyACLQCxAUEBRw0CIAJBsAFqIAIoAuQBENwDIAIoArABQQFHDQEgAigCtAEhAwwMC0EAQeDlwABBgIjIABCPByEDDAsLIAIpA7gBIRUgAkGwAWogAkHkAWoQxwMgAi0AsAFBAUYEQCACKAK0ASEDDAsLIAItALEBQQFHDQIgAkGwAWogAigC5AEQ7QEgAi0AsAFBAUcNASACKAK0ASEDDAoLQQFB4OXAAEGAiMgAEI8HIQMMCQsgAi0AsQEhBiACQbABaiACQeQBahDHAyACLQCwAUEBRgRAIAIoArQBIQMMCQsgAi0AsQFBAUcNAiACQbABaiACKALkARDzASACLQCwAUEBRw0BIAIoArQBIQMMCAtBAkHg5cAAQYCIyAAQjwchAwwHCyACLQCxASEHIAJBsAFqIAJB5AFqEMcDIAItALABQQFGBEAgAigCtAEhAwwHCyACLQCxAUEBRw0CIAJBsAFqIAIoAuQBEP0BIAItALABQQFHDQEgAigCtAEhAwwGC0EDQeDlwABBgIjIABCPByEDDAULIAItALEBIQkgAkGwAWogAkHkAWoQxwMgAi0AsAFBAUYEQCACKAK0ASEDDAULIAItALEBQQFHDQEgAkGwAWogAigC5AEQ6AIgAigCsAEiBEECRgRAIAIoArQBIQMMBQsgAigCtAEhBSACQbABaiACQeQBahD6BiACKAK0ASEDIAIoArABIhBBAmsOAgMEAgtBBEHg5cAAQYCIyAAQjwchAwwDC0EFQeDlwABBgIjIABCPByEDDAILIAMhDCAFIQMMAgtBBkHg5cAAQYCIyAAQjwchAwtBAiEECyAIIAgtABhBAWo6ABggAiAIENsDIgU2AtgBIAIgBjoA0gEgAiAHOgDRASACIAk6ANABIAIgFTcDyAEgAiAUNwPAASACIAw2ArwBIAIgEDYCuAEgAiADNgK0ASACIAQ2ArABIARBAkcEQEECIQYgBQ0JIAJBoAFqIA5BEGr9AAMA/QsDACACIA79AAMA/QsDkAEgBCEGDAgLQQIhBiAFDQEMBwsgCCAILQAYQQFrIgU6ABggBEEBaiEEIAVB/wFxRQ0FIAggBDYCFCACQQE6AOgBIAIgCDYC5AFCACETQQ4hBkENIQdBAiEFQQIhDEECIQtCACEWA0AgAkGwAWoiAyACQeQBahDnAiACLQCwAUEBRg0DAkAgAi0AsQFBAUYEQCACKALkASIEQQA2AgggBCAEKAIUQQFqNgIUIAMgBEEMaiAEEI8CIAIoArQBIQMgAigCsAFBAkYNBgJAAkACQAJAAkACQAJAAkACQAJAAkACQCACKAK4AUEDaw4JAQ0DAg0ADQ0EDQsgAykAAELw5L2D18ycuvkAUQ0GIAMpAABC5dyN+8asmrfnAFINDCAHQf8BcUENRg0HQQIhBEG44cAAQQgQ0QchAwwSCyADQbPlwABBAxCQCEUNCCADQbblwABBAxCQCA0LIAVBAkYNCUECIQRBtuXAAEEDENEHIQMMEQsgA0Goh8gAQQYQkAhFDQIMCgsgA0H5osgAQQUQkAgNCSATUA0CQQIhBEH5osgAQQUQ0QchAwwPCyADQajlwABBCxCQCA0IIAtBAkYNBEECIQRBqOXAAEELENEHIQMMDgsgFlBFBEBBAiEEQaiHyABBBhDRByEDDA4LIAJBsAFqIAQQ2gUgAikDuAEhFUIBIRYgAigCsAFBAUcNCAwLCyACQbABaiAEENoFIAIpA7gBIRRCASETIAIoArABQQFHDQcMCgsgBkH/AXFBDkcEQEECIQRBrtvHAEEIENEHIQMMDAsgBCgCDCEKAkACQAJAIAQoAhQiAyAEKAIQIgZJBEADQAJAIAMgCmotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgBCADQQFqIgM2AhQgAyAGRw0ACyAGIQMLIAJBKGogCiAGIANBAWoiAyAGIAMgBkkbEIYCIAIoAiwhBCACKAIoIQVBFBB+IgNFDRggA0EDNgIADAELIAJBIGogCiAGIANBAWoiAyAGIAMgBkkbEIYCIAIoAiQhBCACKAIgIQVBFBB+IgNFDRcgA0EGNgIACyADIAU2AgwgAyAENgIQQQIhBAwMCyAEIANBAWo2AhQgAkGwAWogBBDtASACLQCxASEGIAItALABQQFxRQ0GDAkLIAQoAgwhCgJAAkACQCAEKAIUIgMgBCgCECIHSQRAA0ACQCADIApqLQAAQQlrDjIAAAMDAAMDAwMDAwMDAwMDAwMDAwMDAwADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBQMLIAQgA0EBaiIDNgIUIAMgB0cNAAsgByEDCyACQThqIAogByADQQFqIgMgByADIAdJGxCGAiACKAI8IQQgAigCOCEFQRQQfiIDRQ0XIANBAzYCAAwBCyACQTBqIAogByADQQFqIgMgByADIAdJGxCGAiACKAI0IQQgAigCMCEFQRQQfiIDRQ0WIANBBjYCAAsgAyAFNgIMIAMgBDYCEEECIQQMCwsgBCADQQFqNgIUIAJBsAFqIAQQ8wEgAi0AsQEhByACLQCwAUEBcUUNBQwICyAEKAIMIQsCQAJAAkAgBCgCFCIDIAQoAhAiCUkEQANAAkAgAyALai0AAEEJaw4yAAADAwADAwMDAwMDAwMDAwMDAwMDAwMAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwUDCyAEIANBAWoiAzYCFCADIAlHDQALIAkhAwsgAkHIAGogCyAJIANBAWoiAyAJIAMgCUkbEIYCIAIoAkwhBCACKAJIIQVBFBB+IgNFDRYgA0EDNgIADAELIAJBQGsgCyAJIANBAWoiAyAJIAMgCUkbEIYCIAIoAkQhBCACKAJAIQVBFBB+IgNFDRUgA0EGNgIACyADIAU2AgwgAyAENgIQQQIhBAwKCyAEIANBAWo2AhQgAkGwAWogBBD9ASACLQCxASELIAItALABQQFxRQ0EDAcLIAxBAkcEQEECIQRBs+XAAEEDENEHIQMMCQsgAkGwAWogBBDZBUECIQQgAigCtAEiEiEDIAIoArABIgxBAkcNAwwICyACQbABaiAEENkFQQIhBCACKAK0ASIDviEXIAIoArABIgVBAkcNAgwHCyAWUARAQQIhBEGoh8gAQQYQzwchAwwHCyATUARAQQIhBEH5osgAQQUQzwchAwwHCyAGQf8BcUEORgRAQQIhBEGu28cAQQgQzwchAwwHCyAHQf8BcUENRgRAQQIhBEG44cAAQQgQzwchAwwHCyAMQQAgDEECRxshBCAFQQAgBUECRxshCSALQQFxIRAgEiEDDAYLIAQQqwEiA0UNAAsMAwsgERDXBAwFCyACKAJoIQQgAigCZCEDDA4LIAIoArQBIQMLQQIhBAsgCCAILQAYQQFqOgAYIAIgCBCKBSIFNgLYASACIAY6ANIBIAIgBzoA0QEgAiAQOgDQASACIBQ3A8gBIAIgFTcDwAEgAiAXOAK8ASACIAk2ArgBIAIgAzYCtAEgAiAENgKwASAEQQJHBEBBAiEGIAUNAyACQaABaiAOQRBq/QADAP0LAwAgAiAO/QADAP0LA5ABIAQhBiADIQUMAwtBAiEGIAVFBEAgAyEFDAMLIBEQ1wQgAyEFDAILIAJBGGogBiADIAQgAyADIARLGxCGAiACKAIcIQMgAigCGCEFQRQQfiIEDQUMCAsgAyEFCyAGQQJGDQQgAkGAAWoiCyACQaABav0AAwD9CwMAIAIgAv0AA5AB/QsDcCACKAJkIA1GBEBBACEHIwBBIGsiAyQAAkACQEEEIAJB5ABqIgQoAgAiCEEBdCIKIApBBE0bIgqtQih+IhNCIIhQRQ0AIBOnIg9B+P///wdLDQAgAyAIBH8gAyAIQShsNgIcIAMgBCgCBDYCFEEIBUEACzYCGCADQQhqQQggDyADQRRqENIHIAMoAghBAUcNASADKAIQGiADKAIMIQcLIAdBxJ/HABDQCQALIAMoAgwhByAEIAo2AgAgBCAHNgIEIANBIGokACACKAJoIQ8LIA8gDUEobGoiAyAFNgIEIAMgBjYCACADIAL9AANw/QsCCCADQRhqIAv9AAMA/QsCACACIA1BAWoiDTYCbAwACwALIAEgAkHvAWpBjJHBABD6ASEEDAcLIAJBEGogBiADIAQgAyADIARLGxCGAiACKAIUIQMgAigCECEFQRQQfiIERQ0DCyAEIAU2AgwgBEEYNgIAIAQgAzYCEAwDCyAFIAgQlgYhBAwCCyACQQhqIAUgAyAEIAMgAyAESxsQhgIgAigCDCEDIAIoAgghBEEUEH4iAUUNACABIAQ2AgwgAUEYNgIAIAAgATYCBCAAQYCAgIB4NgIAIAEgAzYCEAwFCwALQYCAgIB4IQMgAigCZCIFRQ0AIAIoAmgiBkEEaygCACIHQXhxIgkgBUEobCIFQQRBCCAHQQNxIgcbakkNBCAHQQAgCSAFQSdqSxsNBSAGELQCCyABIAEtABhBAWo6ABggAiABENsDIgU2ArwBIAIgDTYCuAEgAiAENgK0ASACIAM2ArABIANBgICAgHhHBEAgBUUNAiADBEAgBEEEaygCACIGQXhxIgcgA0EobCIDQQRBCCAGQQNxIgYbakkNByAGQQAgByADQSdqSxsNCCAEELQCCyAFIQQMAQsgBUUNACACQbwBahDXBAsgBCABEJYGIQEgAEGAgICAeDYCACAAIAE2AgQMAQsgACANNgIIIAAgBDYCBCAAIAM2AgALIAJB8AFqJAAPC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAAL7hcCG38CfCMAQbAEayIDJAAgA0IANwOYASADQgA3A5ABIANCADcDiAEgA0IANwOAASADQgA3A3ggA0IANwNwIANCADcDaCADQgA3A2AgA0IANwNYIANCADcDUCADQgA3A0ggA0IANwNAIANCADcDOCADQgA3AzAgA0IANwMoIANCADcDICADQgA3AxggA0IANwMQIANCADcDCCADQgA3AwAgA0IANwO4AiADQgA3A7ACIANCADcDqAIgA0IANwOgAiADQgA3A5gCIANCADcDkAIgA0IANwOIAiADQgA3A4ACIANCADcD+AEgA0IANwPwASADQgA3A+gBIANCADcD4AEgA0IANwPYASADQgA3A9ABIANCADcDyAEgA0IANwPAASADQgA3A7gBIANCADcDsAEgA0IANwOoASADQgA3A6ABIANCADcD2AMgA0IANwPQAyADQgA3A8gDIANCADcDwAMgA0IANwO4AyADQgA3A7ADIANCADcDqAMgA0IANwOgAyADQgA3A5gDIANCADcDkAMgA0IANwOIAyADQgA3A4ADIANCADcD+AIgA0IANwPwAiADQgA3A+gCIANCADcD4AIgA0IANwPYAiADQgA3A9ACIANCADcDyAIgA0IANwPAAiADQeADakEAQdAA/AsAQYTGyQAoAgAiCiEGIAJBA2tBGG0iBUEAIAVBAEobIgshBSALQQJ0QZTGyQBqIQgDQCADIARBA3RqIAVBAEgEfEQAAAAAAAAAAAUgCCgCALcLOQMAIAQgBkkiDARAIAhBBGohCCAFQQFqIQUgBCAMaiIEIAZNDQELCyACQRhrIQZBACEFA0BBACEEIANBwAJqIAVBA3RqIB4gACAEQQN0aisDACADIAUgBGtBA3RqKwMAoqA5AwAgBSAKSSIEBEAgBCAFaiIFIApNDQELC0QAAAAAAADwf0QAAAAAAADgfyAGIAtB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AiAgAkEMaiACQSBqENUEDRIgAigCIEGDocIAQQIgAigCJCgCDBEAAA0SCyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMEQtBASEDIAIgAEEBajYCDCABKAIAIgBB3MHEAEEUIAEoAgQiBSgCDCIEEQAADRACQCABLQAKQYABcUUEQCAAQfm6xQBBASAEEQAADRIgAkEMaiABENUERQ0BDBILIABBjKHCAEECIAQRAAANESACQQE6ABMgAiAFNgIYIAIgADYCFCACQeSgwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqENUEDREgAigCIEGDocIAQQIgAigCJCgCDBEAAA0RCyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMEAtBASEDIAIgAEEBajYCDCABKAIAIgBB8MHEAEEVIAEoAgQiBSgCDCIEEQAADQ8CQCABLQAKQYABcUUEQCAAQfm6xQBBASAEEQAADREgAkEMaiABENUERQ0BDBELIABBjKHCAEECIAQRAAANECACQQE6ABMgAiAFNgIYIAIgADYCFCACQeSgwgA2AiQgAiABKQIINwIoIAIgAkETajYCHCACIAJBFGo2AiAgAkEMaiACQSBqENUEDRAgAigCIEGDocIAQQIgAigCJCgCDBEAAA0QCyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMDwsgASgCAEGFwsQAQQwgASgCBCgCDBEAACEDDA4LIAEoAgBBkcLEAEEOIAEoAgQoAgwRAAAhAwwNCyABKAIAQZ/CxABBDiABKAIEKAIMEQAAIQMMDAtBASEDIAEoAgAiBEGtwsQAQQ8gASgCBCIGKAIMIgURAAANCyAAQQFqIQACQCABLQAKQYABcUUEQCAEQfm6xQBBASAFEQAADQ0gACABENEDRQ0BDA0LIARBjKHCAEECIAURAAANDCACQQE6AAwgAiAGNgIYIAIgBDYCFCACQeSgwgA2AiQgAiABKQIINwIoIAIgAkEMajYCHCACIAJBFGo2AiAgACACQSBqENEDDQwgAigCIEGDocIAQQIgAigCJCgCDBEAAA0MCyABKAIAQaahyABBASABKAIEKAIMEQAAIQMMCwsgASgCAEG8wsQAQREgASgCBCgCDBEAACEDDAoLQQEhAyACIABBAWo2Agwg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B38HfiMAQeACayICJAACfwJAAn8CQAJAAkACQCAALQAAQQNrDgUBAAAAAgALIAAgARDwAgwFCyAAKQMIIglC/////////weDIQsgCUL///////////8Ag0L/////////9/8AWARAIAlCNIinIQAgCUIAUw0CIAJByAJqDAMLQdeaxgBB2prGACAJQgBZIgAbQd6axgAgC1AiBBshA0EDQQQgABtBAyAEGyEADAMLIAEoAgBBrKLGAEEEIAEoAgQoAgwRAAAMAwsgAkEtOgDIAkEBIQcgAkHJAmoLIQYCfwJ/AkACQAJAIABB/w9xIgBFIAtQcUUEQCAAQQJJIAtCAFJyIQMgC0KAgICAgICACIQgCyAAGyIJQgKGIQogCUIBgyEPIABBtQhrQcx3IAAbIgBBAEgEQCACQZACakHY7sUAIAAgAEGFolNsQRR2IABBf0drIgBqIgVBBHQiBGspAwAiCSAKQgKEIgwQkgcgAkGAAmpB4O7FACAEaykDACILIAwQkgcgAkHwAWogAikDmAIiDCACKQOAAnwiDSACKQOIAiAMIA1WrXwgACAFQbHZtR9sQRN2a0H8AGpB/wBxQcAAcyIEENUHIAJBsAFqIAkgCiADQX9zrHwiDBCSByACQaABaiALIAwQkgcgAkGQAWogAikDuAEiDCACKQOgAXwiDSACKQOoASAMIA1WrXwgBBDVByACQeABaiAJIAoQkgcgAkHQAWogCyAKEJIHIAJBwAFqIAIpA+gBIgkgAikD0AF8IgsgAikD2AEgCSALVq18IAQQ1QcgAikDwAEhDCACKQOQASENIAIpA/ABIQkgAEECTwRAIApCfyAArYZCf4WDUEUgAEE/T3INBAwFCyAJIA99IQlBASEIIA9QIANxDAULIAJBgAFqIABBwegEbEESdiAAQQNLayIFQQR0IgRB+MPFAGopAwAiCSAKQgKEIgsQkgcgAkHwAGogBEGAxMUAaikDACIMIAsQkgcgAkHgAGogAikDiAEiDSACKQNwfCIOIAIpA3ggDSAOVq18IAUgAGsgBUHPpsoAbEETdmpB/QBqQf8AcUHAAHMiABDVByACQSBqIAkgCiADQX9zrHwiDRCSByACQRBqIAwgDRCSByACIAIpAygiDSACKQMQfCIOIAIpAxggDSAOVq18IAAQ1QcgAkHQAGogCSAKEJIHIAJB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RQRAIANBqL/IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQcgBEUEQCADQajHyABBgAj8CgAACyADIABBDnZB/AdxaigCACEKIARFBEAgA0Goz8gAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgBSAHcyAKc3MhACACQQVGDQAgAUEUbEEBIAEgARsiBEEUbGsgC2pBFGohAiAIIARBBWxqIAFBBWxrQQVrIQEDQCACKAIAIQtBACIERQRAIANBqLfIAEGACPwKAAALIAMgACALcyIAQf8BcUECdGooAgAhCyAERQRAIANBqL/IAEGACPwKAAALIAMgAEEGdkH8B3FqKAIAIQggBEUEQCADQajHyABBgAj8CgAACyADIABBDnZB/AdxaigCACEFIARFBEAgA0Goz8gAQYAI/AoAAAsgAyAAQRZ2QfwHcWooAgAgCCALcyAFc3MhACACQQRqIQIgAUEBayIBDQALCwJAIA9FDQAgDi0AACAAc0H/AXFBAnRBqK/IAGooAgAgAEEIdnMhACAPQQFGDQAgDi0AASAAc0H/AXFBAnRBqK/IAGooAgAgAEEIdnMhACAPQQJGDQAgDi0AAiAAc0H/AXFBAnRBqK/IAGooAgAgAEEIdnMhAAsgA0GACGokACAAQX9zDwsgAiAIQazXyAAQowoAC6oTAwt/BH4CeyMAQaACayIEJAACQCABKAIQIgUoAjAgAk0EQCAAQgM3AwAgAEGEgICAeDYCCAwBCyAFKAIsIAJBuAFsaiEHAkACQCADLQAIRQRAIActAKABIQUgAygCACICRQ0BIAVBAXENAgtBACECIANBADYCAAwBC0EAIQIgBUEBcUUNACAAQSE2AhAgAEGcpccANgIMIABBg4CAgHg2AgggAEIDNwMADAELAkACQCAHLQBoQQNGBEAgBykDYCERDAELIAEoAgQiBa0hEAJAAkAgBUL/////DyAHKQNQIg8gD0L/////D1obp2siBkEAIAUgBk8bQR1NBEBB4KHIACkDACIRpyECAkAgEUL/AYNCBFEEQCABIA9CHnw3AwggAkH/AXFBBEcNAQwDCyABIBA3AwggAkH/AXFBBEYNAgsgEUIgiKchASARQgiIpyIFIQMCQAJAAkACQCACQf8BcSIGQQFrDgMBAAACCyABLQAIIQMLIANB/wFxQSVGDQELIAQgATYC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NgIAIAAgETYCBCAMIAwoAgAoAgARAwBBASEMIAtFDQYgDkEEaygCACIAQXhxIg1BBEEIIABBA3EiABsgC2pJDQggAEEAIA0gC0EnaksbDQkgDhC0AgwGCyAKLQARIQwgC0UNACAOQQRrKAIAIgFBeHEiD0EEQQggAUEDcSIBGyALakkNByABQQAgDyALQSdqSxsNCCAOELQCC0EEIQFBACELQQAQ9wkhEEEAIQ5BBCEPAkAgBEEBcUUNACAKQdABaiAFEMwGIAooAtgBIREgCigC1AEhDyAKKALQASEOIAVBhAhJDQAgBRDNBwtBACEFAkAgBkEBcUUNACAKQdABaiAHEMwGIAooAtgBIQUgCigC1AEhASAKKALQASELIAdBhAhJDQAgBxDNBwtBBCEHQQAhBkEAIQQCQCAIQQFxRQ0AIApB0AFqIAkQzAYgCigC2AEhBCAKKALUASEHIAooAtABIQYgCUGECEkNACAJEM0HCyAKIA06AOwCIAogFDgC6AIgCiAVOALkAiAKIBY4AuACIAogF/0LAtACIApBgICAgHg2AsQCIApCgICAgICAgICAfzcCtAIgCkKAgICAwAA3AqwCIAogBDYCqAIgCiAHNgKkAiAKIAY2AqACIAogBTYCnAIgCiABNgKYAiAKIAs2ApQCIAogETYCkAIgCiAPNgKMAiAKIA42AogCIApBADYCgAIgCkEANgL4ASAKQQA2AvABIApBADYC6AEgCkEANgLgASAKQQA2AtgBIApBADYC0AEgCkGIA2pBADoAAEECIQkgCkHvAmogCkEOai0AADoAACAKQQA2AvgCIAogEDYC/AIgCkIANwLwAiAKQgA3AoADIAogCi8BDDsA7QIgAigCACEEIAIoAgQhBiACKAIIIQECfyAMQQZHBEAgCiAMIApB0AFqEPgDIAooAgQhBSAKKAIADAELIApBlANqIApB1AFqQbgB/AoAAEEAIQlBAAshCEGAgICAeCEHIARBgICAgHhHBEAgAUEASA0CAkAgAUUEQEEBIQcMAQsgARB+IgdFDQQLIAEEQCAHIAYgAfwKAAALIAetIAGtQiCGhCEYIAEhBwsgCkEYaiICIApBlANqQbgB/AoAAEHsARB+IgFFDQIgASAJNgIAIAFBBGogAkG4AfwKAAAgASAMOgDoASABIAU2AuQBIAEgCDYC4AEg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AwsgB0EBcUUNAyAAQQA2AgAgAEIANwMIDAULIAAgDTcDCCAAQoGAgICQgICAgH83AwAMBAsgAEEANgIAIABCADcDCCAFQRhqEPsFDAMLIAIgDDcDCCABQQI6AAggACAMNwMQIABCATcDCCAAQQA2AgAMAgsgAUECOgAICwJAAkACQAJAAkAgASkDoAEiDCABKQMQVA0AIAFBIGohCUHgocgAKQMAIg5C/wGDIREgDkIIiCEQIAEpAxghDSACKAIAIQogDqchByACKAIEIgutIQ4DQCAMIA1aDQFCfyAMIAEoAqwBIgOtfCIPIAwgD1YbIg8gDFgNASADIA0gDyANIA9UGyAMfSIPpyIESQ0CIAEoAqgBIQYCQCABKAKwAUUEQCACAn4CQCAEIAsgDCAOIAwgDlQbpyIDa00EQCADIApqIQMgBEEBRwRAIAQEQCAGIAMgBPwKAAALQQQhAwwCCyAGIAMtAAA6AABBBCEDDAELIAchAyAOIBFCBFINARoLIA9C/////w+DIAx8CzcDCCADQf8BcSIDQQRHBEAgEEIYiKchASAQpyICIQQCQAJAAkAgA0EBaw4DAQACCwsgAS0ACCEECyAEQf8BcUElRg0FDAkLIAEtAAhBJUcNCCABKAIAIQIgAUEEaigCACIDKAIAIgcEQCACIAcRAwALIAMoAgQiBwRAIAIgByADKAIIENYHCyABQQxBBBDWBwwEC0EAIQggASgCsAFBAXFFDQELIAQgASgCtAEiCEkNBCAGIAhqIQYgBCAIayEECyAFQgE3AhggASgCmAEiAyAETQRAIAVBCGogCSAFQRhqIAYgBCABKAKUASADIAEoAogBEQoAIAUoAghBAXENBSABKAKYASEDCyABQQA2ArABQn8gASkDoAEiDSABNQKsASADQQFrIgRBACADIARPG619fCIMIAwgDVQbIgwgASkDGCINVARAIAEgDDcDoAEgDCABKQMQWg0BDAILCyABIA03AxALIABCADcDCCAAQQA2AgAMBAsgBCADQeDswAAQogoACyAIIARB/KjIABCjCgALIAUoAgwhAyABQQE2ArABIABCATcDCCACIAOtIAwgCK18fCINNwMIIAEgASgCmAEgAyAIamo2ArQBIAAgDTcDECAAQQA2AgAMAQsgACABNgIMIABBgYCAgHg2AgQgACACQQh0IANy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IAJBAToALCACIAY2AhQgAiADNgIQIAJB5KDCADYCICACIAEpAgg3AiQgAiACQSxqNgIYIAIgAkEQajYCHCAEIAJBHGoQ2wINBCACKAIcQYOhwgBBAiACKAIgKAIMEQAADQQLIANBpqHIAEEBIAURAAAhAAwDC0EBIQAgASgCACIDQbfAxwBBDiABKAIEIgcoAgwiBREAAA0CIARBAWohBgJAIAEtAApBgAFxRQRAIANB+brFAEEBIAURAAANBCACIAY2AhwgASAEQQRqQbSvxwAgBEECakHEr8cAIARBA2pB1K/HACACQRxqQeSvxwAQnQYNBCABKAIAIQMgASgCBCgCDCEFDAELIANBjKHCAEECIAURAAANAyACQQE6AA8gAiAHNgIUIAIgAzYCECACQeSgwgA2AiAgAiABKQIINwIkIAIgAkEPajYCGCACIAJBEGo2AhwgAiAGNgIsIAJBHGogBEEEakG0r8cAIARBAmpBxK/HACAEQQNqQdSvxwAgAkEsakHkr8cAEJ0GDQMgAigCHEGDocIAQQIgAigCICgCDBEAAA0DCyADQaahyABBASAFEQAAIQAMAgtBASEAIAEoAgAiA0HFwMcAQQYgASgCBCIGKAIMIgURAAANAQJAIAEtAApBgAFxRQRAIANB+brFAEEBIAURAAANAyAEIAEQsQNFDQEMAwsgA0GMocIAQQIgBREAAA0CIAJBAToALCACIAY2AhQgAiADNgIQIAJB5KDCADYCICACIAEpAgg3AiQgAiACQSxqNgIYIAIgAkEQaiIBNgIcIAQgAkEcahCxAw0CIAFBg6HCAEECENgDDQILIANBpqHIAEEBIAURAAAhAAwBC0EBIQAgASgCACIDQcvAxwBBDiABKAIEIgYoAgwiBREAAA0AAkAgAS0ACkGAAXFFBEAgA0H5usUAQQEgBREAAA0CIARBCGooAgAgBEEMaigCACABEM4CRQ0BDAILIANBjKHCAEECIAURAAANASACQQE6ACwgAiAGNgIUIAIgAzYCECACQeSgwgA2AiAgAiABKQIINwIkIAIgAkEsajYCGCAEQQhqKAIAIARBDGooAgAgAiACQRBqIgY2AhwgAkEcahDOAg0BIAZBg6HCAEECENgDDQELIANBpqHIAEEBIAURAAAhAAsgAkEwaiQAIAAL+ggDCn8CfgJ7IwBB8ABr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KAKUBCIBBEAgACgCmAQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKAKgBCIBBEAgACgCpAQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKAKsBCIBBEAgACgCsAQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKAK4BCIBBEAgACgCvAQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKALEBCIBBEAgACgCyAQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKALQBCIBBEAgACgC1AQiA0EEaygCACICQXhxIgQgAUECdCIBQQRBCCACQQNxIgIbakkNASACQQAgBCABQSdqSxsNAiADELQCCyAAKALcBCIBBEAgACgC4AQiAEEEaygCACIDQXhxIgIgAUECdCIBQQRBCCADQQNxIgMbakkNASADQQAgAiABQSdqSxsNAiAAELQCCw8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC7oGAQh/IwBBIGshCANAIAEoAgAiBEH///8DcSEDIARBgICAgHhxIQYCQCAEQYCAgPwHcSICQYCAgPwHRgRAIANBDXYgBkEQdnIgA0EAR0EJdHJBgPgBciEGDAELIAZBEHYhBiACQYCAgLgETQRAIAJBgICAxANPBEAgBEEMdiAEQf/fAHFBAEdxIAJBDXYgA0ENdmpBgIABaiAGcmohBgwCCyACQYCAgJgDSQ0BIANBgICABHIiBEEeIAJBF3YiA2t2IQIgBEEdIANrIgN2QQFxBH8gAkEDIAN0QQFrIARxQQBHagUgAgsgBnIhBgwBCyAGQYD4AXIhBgsgAUEEaigCACIDQf///wNxIQUgA0GAgICAeHEhBAJAIANBgICA/AdxIgJBgICA/AdHBEAgBEEQdiEEIAJBgICAuARNBEAgAkGAgIDEA08EQCADQQx2IANB/98A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AQEBAQEBAQMFAQEEAQEBAQEBAQEBAQEBAQEBAQEBAQEIAQEBAQcACyABQdwARg0FCyACQQFxRSABQf8FTXINByABEIAFRQ0HIANBDmpBADoAACADQQA7AQwgAyABQRR2QbS4xQBqLQAAOgAPIAMgAUEEdkEPcUG0uMUAai0AADoAEyADIAFBCHZBD3FBtLjFAGotAAA6ABIgAyABQQx2QQ9xQbS4xQBqLQAAOgARIAMgAUEQdkEPcUG0uMUAai0AADoAECABQQFyZ0ECdiICIANBDGoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgAkECayICakHcADoAACADQRRqIgQgAUEPcUG0uMUAai0AADoAACAAIAMpAQw3AAAgA0H9ADoAFQwICyAAQgA3AQIgAEHc4AA7AQAMCgsgAEIANwECIABB3OgBOwEADAkLIABCADcBAiAAQdzkATsBAAwICyAAQgA3AQIgAEHc3AE7AQAMBwsgAEIANwECIABB3LgBOwEADAYLIAJBgAJxRQ0BIABCADcBAiAAQdzOADsBAAwFCyACQf///wdxQYCABE8NAwsgARDXBg0BIANBGGpBADoAACADQQA7ARYgAyABQRR2QbS4xQBqLQAAOgAZIAMgAUEEdkEPcUG0uMUAai0AADoAHSADIAFBCHZBD3FBtLjFAGotAAA6ABwgAyABQQx2QQ9xQbS4xQBqLQAAOgAbIAMgAUEQdkEPcUG0uMUAai0AADoAGiABQQFyZ0ECdiICIANBFmoiBWoiBEH7ADoAACAEQQFrQfUAOgAAIAUgAkECayICakHcADoAACADQR5qIgQgAUEPcUG0uMUAai0AADoAACAAIAMpARY3AAAgA0H9ADoAHwsgAEEIaiAELwEAOwAAQQoMAwsgACABNgIAQYABIQJBgQEMAgsgAEIANwECIABB3MQAOwEAC0EAIQJBAgs6AA0gACACOgAMIANBIGokAAuMBQIMfwN+IwBBoAFrIggkACAIQQBBoAH8CwACQAJAIAIgACgCoAEiBU0EQCAFQSlPDQIgBUECdCEJIAVBAWohDCABIAJBAnRqIQ0CQANAIAggBkECdGohAwNAIAYhAiADIQQgASANRg0EIANBBGohAyACQQFqIQYgASgCACEHIAFBBGoiCyEBIAdFDQALIAetIRFCACEPIAkhByACIQEg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fyMAQSBrIgIkAAJAAkACQAJAAkAgAC0AAEEBaw4DAQIDAAtBASEEIAEoAgAiA0G6sccAQQUgASgCBCIGKAIMIgURAAANAwJAIAEtAApBgAFxRQRAIANB+brFAEEBIAURAAANBSADIAAtAAFBAnQiAEGwqckAaigCACAAQfCoyQBqKAIAIAURAABFDQEMBQsgA0GMocIAQQIgBREAAA0EIAIgBjYCFCACIAM2AhAgAkEBOgAAIAAtAAFBAnQiAEHwqckAaigCACEBIABBsKrJAGooAgAhACACIAI2AhggAkEQaiIGIAAgARDYAw0EIAZBg6HCAEECENgDDQQLIANBpqHIAEEBIAURAAAhBAwDC0EBIQQgASgCACIDQb+xxwBBBCABKAIEIgYoAgwiBREAAA0CAkAgAS0ACkGAAXFFBEAgA0H5usUAQQEgBREAAA0EIABBCGooAgAgAEEMaigCACABEM4CRQ0BDAQLIANBjKHCAEECIAURAAANAyACQQE6AA8gAiAGNgIEIAIgAzYCACACQeSgwgA2AhQgAiABKQIINwIYIABBCGooAgAgAEEMaigCACACIAJBD2o2AgggAiACNgIQIAJBEGoQzgINAyACQYOhwgBBAhDYAw0DCyADQaahyABBASAFEQAAIQQMAgtBASEEIAEoAgAiA0HDsccAQQ0gASgCBCIGKAIMIgURAAANASAAQQRqIQACQCABLQAKQYABcUUEQCADQfm6xQBBASAFEQAADQMgACABELoCRQ0BDAMLIANBjKHCAEECIAURAAANAiACQQE6AA8gAiAGNgIEIAIgAzYCACACQeSgwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgACACQRBqELoCDQIgAkGDocIAQQIQ2AMNAgsgA0GmocgAQQEgBREAACEEDAELIAEoAgBB0LHHAEEHIAEoAgQoAgwRAAAhBAsgAkEgaiQAIAQLmgUDB38FfgJ7IAApAzghDCAAKQMoIgkhCwJAAkACQAJAAkACQCAJIAApAwgiClINACAAKQMwIgsgACkDECIKUg0AIAwhCyAMIAApAxgiClENAQsgCiALWA0AIABBMGohAkECIQMDQCACQShqKQMAIQsgAkEYaikDACINIQoCQCAJIA1SDQAgAkEgaikDACIKIAIpAwAiCVINACAMIQkgCyIK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IARGBEAgA0EUakH09cAAEKwGIAMoAhghAgsgAiAEQQJ0aiABNgIAIAMgBEEBaiIENgIcDAELIAMoAhAiBSADKAIIRgRAIANBCGpBhPbAABCsBgsgAygCDCAFQQJ0aiABNgIAIAMgBUEBajYCEAsgBkEIaiIGIApHDQALCyAHBEAgCEEEaygCACIBQXhxIgIgB0EDdCIEQQRBCCABQQNxIgEbakkNAiABQQAgAiAEQSdqSxsNAyAIELQCCyAAIAMpAgg3AgAgACADKQIUNwIMIABBCGogA0EQaigCADYCACAAQRRqIANBHGooAgA2AgAgA0EgaiQADwsgASAFQejIxwAQvwcAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAv6AwAgACAEaiEAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUH/AXFBAWsOBwcAAQIDBAUGCyAAQQJqIQEgAEF9Sw0NIAEgA00NByABIANBnO/HABCiCgALIABBAmohASAAQX1LDQ0gASADTQ0HIAEgA0Gs78cAEKIKAAsgAEEEaiEBIABBe0sNDSABIANNDQcgASADQbzvxwAQogoACyAAQQRqIQEgAEF7Sw0NIAEgA00NByABIANBzO/HABCiCgALIABBBGohASAAQXtLDQ0gASADTQ0HIAEgA0Hc78cAEKIKAAsgAEEIaiEBIABBd0sNDSABIANNDQcgASADQezvxwAQogoACyAAIANJDQ4gACADQfzuxwAQvwcACyAAIANJDQwgACADQYzvxwAQvwcACyAAIAJqLgAAsg8LIAAgAmovAACzDwsgACACaigAALIPCyAAIAJqKAAAsw8LIAAgAmoqAAAPCyAAIAJqKwAAtg8LIAAgAUGc78cAEKUKAAsgACABQazvxwAQpQoACyAAIAFBvO/HABClCgALIAAgAUHM78cAEKUKAAsgACABQdzvxwAQpQoACyAAIAFB7O/HABClCgALIAAgAmotAACzQwAAf0OVDwsgACACaiwAALJDAAB/Q5ULyQMBC38jAEEQayIHJAACQAJAAkACQCADIARsIgZB/////wNLDQAgBkECdCIJQf3///8HTw0AAkAgCUUEQEEEIQpBACEGDAELIAkQfiIKRQ0CCyAHQQA2AgwgByAKNgIIIAcgBjYCBCADEH4iC0UNASALQQRrIg8oAgAiCEEDcSIGRSADRXJFBEAgC0EAIAP8CwALAkAgBARAQQAhBgNAIAxBAnQhDSAGQQFqIAMhDiALIQgDQCACIAZNDQMgCCABIAZqLQAAIAgtAABqIhA6AAAgBygCBCAMRgRAIAdBBGpBgP7HABC8BiAHKAIIIQoLIAogDWogBSAQwLJDAAD+QpWUOAIAIAcgDEEBaiIMNgIMIAhBAWohCCANQQRqIQ0gBCAGaiEGIA5BAWsiDg0ACyIGIARHDQALIA8oAgAiCEEDcSEGCyAAIAcpAgQ3AgAgAEEIaiAHQQxqKAIANgIAIAhBeHEiAEEEQQggBhsgA2pJDQMgBkEAIAAgA0EnaksbDQQgCxC0AiAHQRBqJAAPCyAGIAJB8P3HABC/BwALQeD9xwAQtwgLAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAAL3gMBA38jAEEgayIFJAAgASgCEEUEQCABQX82AhAgBUEKIAIgAxDQAwJAAkAgBSgCAEEBcQRAIAMgBSgCBEEBaiIETw0BIAVBADYCGCAFQQE2AgwgBUGEj8gANgIIIAVCBDcCECAFQQhqQYyPyAAQyggACwJAIAEoAhwiBEUEQEEAIQQMAQsgASgCGCAEakEBay0AAEEKRw0AQQAhBCABQQA2AhwgAUEAOgAgCyABKAIUIARrIANNBEAgACABQRRqIAIgAxCwBwwCCyADBEAgASgCGCAEaiACIAP8CgAACyAAQQQ6AAAgASADIARqNgIcDAELAkAgASgCHCIGRQ0AAkACQCABKAIUIAZrIARNBEAgBUEIaiABQRRqIAIgBBCwByAFLQAIQQRGDQEgACAFKQMINwIADAQLIAQEQCABKAIYIAZqIAIgBPwKAAALIAEgBCAGaiIGNgIcDAELIAEoAhwhBgsgBkUNACABQQA2AhwgAUEAOgAgCyACIARqIQYgAyAEayICIAEoAhRPBEAgACABQRRqIAYgAhCwBwwBCyACBEAgASgCGCAGIAL8CgAACyAAQQQ6AAAgASACNgIcCyABIAEoAhBBAWo2AhAgBUEgaiQADwtBoJbIABD8CgAL+QMCBn8BeyMAQTBrIgQkACAEQRhq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAEIAn9CwMIAkACQAJAAkACQAJAA0ACQCAEQShqIAEgBEEIakEgEPsCAkACQCAELQAoIgNBBEcEQAJAIANBAWsOAwACAwoLIAQtAClBI0YNBAwJCyAEKAIsIgNBIU8NAiACKAIAIAIoAggiAWsgA0kEQCACIAEgA0EBQQEQ0AUgAigCCCEBCyADBEAgAigCBCABaiAEQQhqIAP8CgAACyAAIAM2AgQgAiABIANqNgIIIABBBDoAAAwJCyAEKAIsLQAIQSNGDQIMBwsgBCgCLCIDLQAIQSNHDQYgAygCACEFIANBBGooAgAiBigCACIHBEAgBSAHEQMACyAGKAIEIgYEQCAFQQRrKAIAIgdBeHEiCEEEQQggB0EDcSIHGyAGakkNAyAHQQAgCCAGQSdqSxsNBCAFELQCCyADQQRrKAIAIgVBeHEiBkEQQRQgBUEDcSIFG0kNBCAFQQAgBkE0TxsNBSADELQCDAELCyADQSBBtKPHABCiCgALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAsgACAEKQMoNwIACyAEQTBqJAALswQCCH8BfiMAQTBrIgIkAAJAAkACQAJAAkACQCAAKAIEIgQOAwEEAgALQQEhAyABKAIAIgVBvJrGAEEHIAEoAgQiBigCDCIIEQAADQQgAiAAKAIAIgA2AhQgAkECNgIcIAJBjJrGADYCGCACQgE3AiQgAiACQRRqrUKAgICA0ACEIgo3AwAgAiACNgIgIAUgBiACQRhqEOQDDQQgBEH/////AXFBAUcNAkEAIQMMBAsjAEEgayIAJAAgAEEBNgIEIABB8I7IADYCACAAQgE3AgwgAELwnsKAoAE3AxggACAAQRhqNgIIIABB/JnGABDKCAALIAJBAzYCHCACQaSaxgA2AhggAkICNwIkIAIgACgCACIArUKAgICAIIQ3AwAgAiAAQQhqrUKAgICAIIQ3AwggAiACNgIgIAEoAgAgASgCBCACQRhqEOQDIQMMAgsgBEEBa0H/////AXEhByAAIARBA3RqIQkgAEEIaiIAIARBAUdBA3RqIQEDQCACIAA2AhQgBUHDmsYAQQIgCBEAAA0CIAJBAjYCHCACQYyaxgA2AhggAkIBNwIkIAIgCjcDACACIAI2AiAgBSAGIAJBGGoQ5AMNAiABIgAgCUdBA3QgAGohASAHQQFrIgcNAAtBACEDDAELIAJBAjYCHCACQYyaxgA2AhggAkIBNwIkIAIgADUCAEKAgICAIIQ3AwAgAiACNgIgIAEoAgAgASgCBCACQRhqEOQDIQMLIAJBMGokACADC5cDAQV/AkACQAJAAkACQCABRQRAIABFDQEgAEEIayIBKAIAQQFHDQIgACgCECEGIAAoAgwhBSAAKAIIIQQgACgCBCECIAFBADYCAAJAIAFBf0YNACAAQQRrIgMgAygCAEEBayIDNgIAIAMNACAAQQxrKAIAIgBBeHEiA0EgQSQgAEEDcSIAG0kNBSAAQQAgA0HEAE8bDQYgARC0AgsgBCgCACIABEAgAiAAEQMACyAEKAIEIgAEQCACQQRrKAIAIgFBeHEiBEEEQQggAUEDcSIBGyAAakkNBSABQQAgBCAAQSdqSxsNBiACELQCCyAGKAIAIgAEQCAFIAARAwALIAYoAgQiAEUNAyAFQQRrKAIAIgFBeHEiAkEEQQggAUEDcSIBGyAAakkNBCABQQAgAiAAQSdqSxsNBSAFELQCDAMLIABFDQAgAEEIayIAIAAoAgBBAWsiATYCACABDQIgABD+BA8LEN4KAAtByOHBAEE/EN8KAAsPC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAv1BAMHfwJ9AX5B1MrJACgCACICQczKyQAoAgBGBEAjAEEgayIBJAACQAJAQQRBzMrJACgCACIFQQF0IgYgBkEETRsiBq1CDH4iCkIgiFBFDQAgCqciB0H8////B0sNACABIAUEfyABIAVBDGw2AhwgAUHQyskAKAIANgIUQQQFQQALNgIYIAFBCGpBBCAHIAFBFGoQ0gcgASgCCEEBRw0BIAEoAhAaIAEoAgwhBAsgBEHY98AAENAJAAtB0MrJACABKAIMNgIAQczKyQAgBjYCACABQSBqJAALQdDKyQAoAgAiASACQQxsaiIFIAApAgA3AgAgBUEIaiIEIABBCGooAgA2AgBB1MrJACACQQFqNgIAIAQoAgAhBiAFKAIEIQQgBSoCACEIAkAgAkUNACAIIAhbBEAgAiEDA0ACQCABIAMiAEEBayIFQQF2IgNBDGxqIgIqAgAiCSAJWyAIIAlfRXFBfyAIIAlgGyIHBEAgB0EASg0BIAAhAwwECyACKAIEIgcgBEcEQCAEIAdLDQEgACEDDAQLIAYgAigCCEsNACAAIQMMAwsgASAAQQxsaiIAIAIpAgA3AgAgAEEIaiACQQhqKAIANgIAIAVBAUsNAAsMAQsgAiEDA0ACQCABIAMiAEEBayIFQQF2IgNBDGxqIgIqAgAiCSAJWyAIIAlfRXENACACKAIEIgcgBEcEQCAEIAdLDQEgACEDDAMLIAYgAigCCEsNACAAIQMMAgsgASAAQQxsaiIAIAIpAgA3AgAgAEEIaiACQQhqKAIANgIAIAVBAk8NAAsLIAEgA0EMbGoiACAGNgIIIAAgBDYCBCAAIAg4AgALlQMBBX8CQCADLQADIgYgAy0ABCIIayIFIAVBH3UiBXMgBWtBAXQgAy0AAiIFIAMtAAUiB2siBCAEQR91IgRzIARrQQF2aiACQf8BcUsNACADLQAAIAMtAAEiAmsiBCAEQR91IgRzIARrIAFB/wFxIgRLDQAgAiAFayICIAJBH3UiAnMgAmtB/wFxIARLDQAgBCAFIAZrIgIgAkEfdSICcyACayICQf8BcUkNACAEIgUgAy0AByADLQAGIgZrIgQgBEEfdSIEcyAEa0kNACAFIAYgB2siBiAGQR91IgZzIAZrQf8BcUkNACAHIAhrIgEgAUEfdSIBcyABayIBQf8BcSAFSw0AIABB/wFxIAJB/wFxSQRAQQEgAxD/BRoPCyAAQf8BcSIAIAFB/wFxIgFJIAMQ/wUhAiAAIAFJDQAgA0H/ASADLQAFIAJBAWpBAXUiAGsiASABQf8BThsiAUEAIAFBAEobOgAFIANBgH9B/wAgACADLQACakGAAWsiACAAQf8AThsiACAAQYB/TBtBgAFzOgACCwubBAIGfwF+IwBBQGoiAiQAIAJBIGqtQoCAgIDgDIQhCCABKAIEIQQgASgCACEFQQAhAQNAIAICfwJAAkACQAJAAkACQAJAAkACQAJAIAAgAWotAAAiAw4oAAcHBwcHBwcHAQMHBwIHBwcHBwcHBwcHBwcHBwcHBwcHBwQHBwcHBQYLIAJCADcBIiACQdzgADsBIAwICyACQgA3ASIgAkHc6AE7ASAMBwsgAkIANwEiIAJB3OQBOwEgDAYLIAJCADcBIiACQdzcATsBIAwFCyACQgA3ASIgAkHcxAA7ASAMBAsgAkIANwEiIAJB3M4AOwEgDAMLIANB3ABGDQELIAMQ1wZFBEAgAkE+aiIGIANBD3FBtLjFAGotAAA6AAAgAkGw4MCBAzYAOSACIANBBHZBtLjFAGotAAA6AD0gA0EBcmdBAnYiAyACQTZqIgdqQfsAOgAAIAcgA0ECayIDakHc6gE7AAAgAkE4akEAOgAAIAJB/QA6AD8gAkEoaiAGLwEAOwEAIAJBADsBNiACIAIpATY3AyBBCgwDCyACIAM2AiBBgAEhA0GBAQwCCyACQgA3ASIgAkHcuAE7ASALQQAhA0ECCzoALSACIAM6ACwgAiAINwMYIAJBATYCBCACQfCOyAA2AgAgAkIBNwIMIAIgAkEYajYCCCAFIAQgAhDkAyIDRQRAIAFBAWoiAUEERw0BCwsgAkFAayQAIAMLxwMCAn8EfiMAQdAAayIEJAAgBP0MAAAAAAAAAAAAAAAAAAAAAP0LAzggBCABNwMwIAQgAULzytHLp4zZsvQAhTcDICAEIAFC7d6R85bM3LfkAIU3AxggBCAANwMoIAQgAELh5JXz1uzZvOwAhTcDECAEIABC9crNg9es27fzAIU3AwggBEEIaiIFIAIgAxCnAyAEQf8BOgBPIAUgBEHPAGpBARCnAyAEKQMIIQEgBCkDGCEAIARBQGs1AgAhCCAEKQM4IQYgBCkDICAEKQMQIQkgBEHQAGokACAGIAhCOIaEIgiFIgZCEIkgBiAJfCIGhSIHQhWJIAcgACABfCIBQiCJfCIHhSIJQhCJIAkgBiAAQg2JIAGFIgB8IgFCIIlC/wGFfCIGhSIJQhWJIAkgASAAQhGJhSIAIAcgCIV8IgFCIIl8IgiFIgdCEIkgByABIABCDYmFIgAgBnwiAUIgiXwiBoUiB0IViSAHIAEgAEIRiYUiACAIfCIBQiCJfCIIhSIHQhCJIAcgAEINiSABhSIAIAZ8IgFCIIl8IgaFQhWJIABCEYkgAYUiAEINiSAAIAh8hSIAQhGJhSAAIAZ8IgBCIImFIACFC9UDAQp/IwBBIGsiAyQAIANBADYCECADQoCAgIDAADcCCCADQQA2AhwgA0KAgICAwAA3AhQgASgCCCEHIAEoAgAhCAJAAkACQCABKAIEIgYgASgCDCIKRwRAIAIoAgghCyACKAIEIQkgAigCACEMQQQhAgNAIAZBBGooAgAiASAJKAIIIgVPDQICQCAJKAIEIAFBGGxqIAwtAABBAnRqKgIAIAsqAgBdRQRAIAMoAhQgBEYEQCADQRRqQfT1wAAQrAYgAygCGCECCyACIARBAnRqIAE2AgAgAyAEQQFqIgQ2AhwMAQsgAygCECIFIAMoAghGBEAgA0EIakGE9sAAEKwGCyADKAIMIAVBAnRqIAE2AgAgAyAFQQFqNgIQCyAGQQhqIgYgCkcNAAsLIAcEQCAIQQRrKAIAIgFBeHEiAiAHQQN0IgRBBEEIIAFBA3EiARtqSQ0CIAFBACACIARBJ2pLGw0DIAgQtAILIAAgAykCCDcCACAAIAMpAhQ3AgwgAEEIaiADQRBqKAIANgIAIABBFGogA0EcaigCADYCACADQSBqJAAPCyABIAVBtNTHABC/BwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC7YDAQR/IwBBgAFrIgQkAAJ/AkAgASgCCCICQYCAgBBxRQRAIAJBgICAIHENAUEDIQIgACwAACIDIAPAQQd1IgBzIABrIgBB/wFxIgVBCk8EQEEBIQIgBCAAQQF0IgAgAEE4aiAFQeQASRtB/gFxIgBBr8LFAGotAAA6AAIgBCAAQa7CxQBqLQAAOgABIAVB4wBLIQALQQAgAyAAQf8BcRtFBEAgBCACQQFrIgJqIABBAXRB/gFxQa/CxQBqLQAAOgAACyABIANBAE5BAUEAIAIgBGpBAyACaxDsAwwCCyAALQAAIQJBgQEhAANAIAAgBGpBAmsgAkEPcSIDQTByIANB1wBqIANBCkkbOgAAIAJB/wFxIgNBBHYhAiAAQQFrIQAgA0EPSw0ACyABQQFB88DFAEECIAAgBGpBAWtBgQEgAGsQ7AMMAQsgAC0AACECQYEBIQADQCAAIARqQQJrIAJBD3EiA0EwciADQTdqIANBCkkbOgAAIAJB/wFxIgNBBHYhAiAAQQFrIQAgA0EPSw0ACyABQQFB88DFAEECIAAgBGpBAWtBgQEgAGsQ7AMLIARBgAFqJAAL+QMBBH8gAUEYdiECIAFBEHYhA0EIIQUgAUEIdiEEAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUH/AXFBwQBrDhgCDw8PBA8PDwMPDw8PDw8PDwYPDw8BAAUPCyACQdAARyAEQf8BcUHFAEdyIANB/wFxQcIAR3INDiAAQQE6AAAPCyAEQf8BcUHQAEcgA0H/AXFBOEdyDQ0gAkHMAGsODQcNDQ0NDQ0NDQ0NDQgGCyAEQf8BcUHMAGsOAwkMCAwLIAJB0ABHIARB/wFxQcMAR3INCyADQf8BcUHDAEYNAwwLCyACQcYARyAEQf8BcUHYAEdyIANB/wFxQckAR3INCiAAQQk6AAAPCyACQSBHIARB/wFxQc0AR3IgA0H/AXFB0ABHcg0JIABBCjoAAA8LIARB/wFxQckARyACQcYAR3IgA0H/AXFBxgBHcg0IQQAhBQsgACAFOgAADwsgAkEgRw0GIABBAjoAAA8LIABBAzoAAA8LIABBBDoAAA8LIANB/wFxQckAaw4FAQMDAwIDCyACQcgARyADQf8BcUHQAEdyDQIgAEEHOgAADwsgAkHNAEcNASAAQQU6AAAPCyACQcYARw0AIABBBjoAAA8LIAAgAjoABCAAIAM6AAMgACAEOgACIAAgAToAASAAQQs6AAALmAUBA38jAEHgKWsiAiQAIAJBD2pBAEHQKfwLAEHAAEGA8gIQ6QQiAwRAIANBP2pBQHEiAUIANwIwIAFBwIACNgIMIAFBADoABCABQYAINgIAIAFCADcDECAB/QwAAAAAAAAAAAAAAAAAAAAA/QsDGCABQQA2AiggAUEBNgJIIAFBADoAQCABQoGAgIAQNwI4IAH9DAAAAAAAAAAAAAAAAAAAAAD9CwJMIAFBIDYCbCAB/QwAAAAAAAAAAAAAAAAAAAAA/QsEcCABQgA3AowBIAEgAUGA8QBqNgIIIAFB3ABq/QwAAAAAAAAAAAAAAAAAAAAA/QsCACABQYABakIANwMAIAFBkQFqQgA3AAAgAUEAOgCgASABQQA2ApwBIAFBoQFqIAJBDGpB0yn8CgAAIAFB9CpqQQBB2MUA/AsAIAFBgPICNgLIcCABIAM2AsRwIAFB1ABqQQA2AgAgAUEANgIUIAFC/////x83A3ggAUGAiDw2AgAgAUEAOgCgASABQQA2ApwBIAFCgIACNwOQASABQQA6AEAgAUEBNgI4IAFCADcDMCABQeQAakF/NgIAIABB1ABqQQA2AgAgAEIANwJMIABBOGpBADYCACAAQTBqQgA3AwAgAEEgav0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgAEEQav0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgAP0MAAAAAAAAAAAAAAAAAAAAAP0LAwAgAEEANgJIIABBDzYCRCAAQRA2AkAgACABNgI8IAJB4ClqJAAPCyACQXw2AgggAkEANgIMIwBBEGsiACQAIABBqNfIADYCDCAAIAJBCGo2AghBACAAQQhqQYyvyAAgAEEMakGMr8gAIAJBDGpB1P/IABCeBQALugMCB38BfiMAQSBrIgMkAAJAIAACfwJAIAEoAhQiAiABKAIQIgVJBEAgASgCDCEHAn4CQANAIAIgB2otAAAiBkEJayIIQRdLQQEgCHRBk4CABHFFcg0BIAEgAkEBaiICNgIUIAIgBUcNAAsgBSECQgAMAQtCgAILIAatQhCGhEKAgrgDUQ0BCyADQRhqIAEQvAMgAygCGCEBIAAgAygCHDYCBEECQQEgAUEBcRsMAQsgASACQQFqIgQ2AhQCQAJAIAQgBU8NACABIAJBAmoiBjYCFAJAIAQgB2otAABB9QBHDQAgBiAEIAUgBCAFSxsiBEYNASABIAJBA2oiCDYCFCAGIAdqLQAAQewARwRAIAghBgwBCyAEIAhGDQEgASACQQRqIgY2AhRBACAHIAhqLQAAQewARg0DGgsgA0EQaiAHIAUgBhCGAiADKAIUIQQgAygCECEBQRQQfiICRQ0DIAJBCTYCAAwBCyADQQhqIAcgBSAEEIYCIAMoAgwhBCADKAIIIQFBFBB+IgJFDQIgAkEFNgIACyACIAE2AgwgACACNgIEIAIgBDYCEEECCzYCACADQSBqJAAPCwALrwMBCH8CQAJAAkAgACgCCCIEIAAoAhQiAk0EQCAAIAQ2AhQgAiAERg0BIAIgBGshBSAAKAIQIARBGGxqIQEDQCABQRRqKAIAIgBBBU8EQCABQQhqKAIAIgNBBGsoAgAiAkF4cSIHIABBAnQiAEEEQQggAkEDcSICG2pJDQQgAkEAIAcgAEEnaksbDQUgAxC0AgsgAUEYaiEBIAVBAWsiBQ0ACwwBCyACIQMgBCACayIGIAAoAgwgAmtLBEAgAEEMaiACIAZBBEEYENAFIAAoAhQhAwsgACgCECEIIAZBA3EiBQRAIAMgBWogBCACayAFayEGIAggA0EYbGohAQNAIAFBADYCACABQRRqQQA2AgAgAUEYaiEBIAVBAWsiBQ0ACyEDCyACIARrQXxNBEAgCCADQRhsaiEBA0AgAUEANgIAIAFB3ABqQQA2AgAgAUHEAGpCADcCACABQSxqQgA3AgAgAUEUakIANwIAIAFB4ABqIQEgA0EEaiEDIAZBBGsiBg0ACwsgACADNgIUCw8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC7oDAgd/AX4jAEEgayIDJAACQCAAAn8CQCABKAIUIgIgASgCECIFSQRAIAEoAgwhBwJ+AkADQCACIAdqLQAAIgZBCWsiCEEXS0EBIAh0QZOAgARxRXINASABIAJBAWoiAjYCFCACIAVHDQALIAUhAkIADAELQoACCyAGrUIQhoRCgIK4A1ENAQsgA0EYaiABEL0DIAMoAhghASAAIAMoAhw2AgRBAkEBIAFBAXEbDAELIAEgAkEBaiIENgIUAkACQCAEIAVPDQAgASACQQJqIgY2AhQCQCAEIAdqLQAAQfUARw0AIAYgBCAFIAQgBUsbIgRGDQEgASACQQNqIgg2AhQgBiAHai0AAEHsAEcEQCAIIQYMAQsgBCAIRg0BIAEgAkEEaiIGNgIUQQAgByAIai0AAEHsAEYNAxoLIANBEGogByAFIAYQhgIgAygCFCEEIAMoAhAhAUEUEH4iAkUNAyACQQk2AgAMAQsgA0EIaiAHIAUgBBCGAiADKAIMIQQgAygCCCEBQRQQfiICRQ0CIAJBBTYCAAsgAiABNgIMIAAgAjYCBCACIAQ2AhBBAgs2AgAgA0EgaiQADwsAC+cDAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB/wFxQQFrDgcHAAECAwQFBgsgA0ECaiEAIANBfUsNDSAAIAJNDQcgACACQZzwxwAQogoACyADQQJqIQAgA0F9Sw0NIAAgAk0NByAAIAJBrPDHABCiCgALIANBBGohACADQXtLDQ0gACACTQ0HIAAgAkG88McAEKIKAAsgA0EEaiEAIANBe0sNDSAAIAJNDQcgACACQczwxwAQogoACyADQQRqIQAgA0F7Sw0NIAAgAk0NByAAIAJB3PDHABCiCgALIANBCGohACADQXdLDQ0gACACTQ0HIAAgAkHs8McAEKIKAAsgAiADTQ0NIAEgA2osAACyDwsgAiADSw0NIAMgAkGM8McAEL8HAAsgASADai4AALIPCyABIANqLwAAsw8LIAEgA2ooAACyDwsgASADaigAALMPCyABIANqKgAADwsgASADaisAALYPCyADIABBnPDHABClCgALIAMgAEGs8McAEKUKAAsgAyAAQbzwxwAQpQoACyADIABBzPDHABClCgALIAMgAEHc8McAEKUKAAsgAyAAQezwxwAQpQoACyADIAJB/O/HABC/BwALIAEgA2otAACzC7QDAgJ+C38jAEEgayIEJAAgAUEIaiENAkACQANAIA0oAgBBAkcNAQJ/IAEoApwDIgUgASkDoAMiAyAFrSICIAIgA1YbpyIGRgRAQQEhCEElIQlBACEKQQAhC0EAIQxBACEFIAdBgH5xQSRyDAELIARBDGogASABKAKYAyAGaiAFIAZrQQAQ5gEgBCkCFCICQiiIpyEKIAJCIIinIQsgAkIYiKchDCACQhCIpyEFIAJCCIinIQkgBCgCHCEOIAQoAhAhBiACpyEIIAYgBCgCDA0AGiABIAEpA6ADIAatfDcDoAMgB0GAfnFBKHILIgdB/wFxQShHBEAgACAKOwAJIAAgDjYCDCAAIAs6AAggACAMOgAHIAAgBToABiAAIAk6AAUgACAIOgAEIAAgBzoAACAAQQtqIApBEHY6AAAgAEEDaiAHQRh2OgAAIAAgB0EIdjsAAQwDCyAIQf8BcUECRyAJQf8BcUHJAEdyIAVB/wFxQcUARyAMQf8BcUHOAEdyciALQf8BcUHEAEdyDQALQfj/xgBBKEHUn8cAEKIIAAsgAEEoOgAAIAAgDTYCBAsgBEEgaiQAC+4DAQl9An0gACoCDCIDQwAAAABdRQRAIAAqAgQhBSAAKgIAIQYgACoCCAwBCyADjCEDIAAqAgSMIQUgACoCAIwhBiAAKgIIjAshCEMAAIA/IQRDAACAPyADIANDAACAP14bEKAFIgIgApIiCUMAAAA/lBCsAiICi0O9N4Y1XUUEQCAFIAKVIQcgBiAClSEEIAggApUhAQsgByAHiyAEi5IgAYuSIgOVIQIgBCADlSEDAkAgAUMAAAAAXUUEQCACIQEMAQtDAACAPyADi5MiASABjCACQwAAAABgGyEBQwAAgD8gAouTIgIgAowgA0MAAAAAYBshAwtB/wFDAAB/Q0MAAAAAIAlD2w9JQJVDAAB/Q5QiAiACQwAAAABdGyICIAJDAAB/Q14bEO4HIgL8AUEAIAJDAAAAAGAbIAJDAAB/Q14bQRB0Qf8BQwAAf0NDAAAAACABQwAAgD+SQwAAAD+UQwAAf0OUIgEgAUMAAAAAXRsiASABQwAAf0NeGxDuByIB/AFBACABQwAAAABgGyABQwAAf0NeG0EIdHJB/wFDAAB/Q0MAAAAAIANDAACAP5JDAAAAP5RDAAB/Q5QiASABQwAAAABdGyIBIAFDAAB/Q14bEO4HIgH8AUEAIAFDAAAAAGAbIAFDAAB/Q14bcgv3AwEGfyMAQRBrIgIkAAJAAkACQAJAAkAgASgCAEGUgICAeEYEQCABKAIMIgNFDQEgAiABKAIIIgQQzgMgAigCACIBQYCAgIB4RgRAIAIoAgQhAwwFCyACKAIEIQUCQCADQQFHBEAgAigCCCEHIAIgBEEQahDOAyACKAIAIgRBgICAgHhHDQEgAigCBCEDIAFFDQYgBUEEaygCACIEQXhxIgZBBEEIIARBA3EiBBsgAWpJDQQgBEEAIAYgAUEnaksbDQUgBRC0AgwGC0EBIAJBD2pB0NzAABCPByEDIAFFDQUgBSABQQEQ1gcMBQsgAigCBCEGIANBAkcEQCACQQI2AgAgA0H+////AGpB/////wBxQQJqIAJB+PfAABCPByEDIABBgICAgHg2AgAgACADNgIEIAEEQCAFIAFBARDWBwsgBEUNBiAGIARBARDWBwwGCyAAIAIoAgg2AhQgACAGNgIQIAAgBDYCDCAAIAc2AgggACAFNgIEIAAgATYCAAwFCyABIAJBD2pB0NzAABDZCCEBIABBgICAgHg2AgAgACABNgIEDAQLQQAgAkEPakHQ3MAAEI8HIQMMAgtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIAAgAzYCBCAAQYCAgIB4NgIACyACQRBqJAAL4gMCBH0FfwJAAkACQCACBEAgACgCCCILIAFrIglBACAJIAtNGyEMQwAAgD8gACoCQCAALQBYQQJGIgkbQwAAAAAgACoCPCAJGyIHkyEIIAAoAgQgAUEYbGpBDmohCUEDIQpBACEAA0AgACAMRg0CIABB1arVqgVGDQMgBCAKSQ0EQwAAf0NDAAAAACADQQRqKgIAIAeTIAiVQwAAf0OUIgUgBUMAAAAAXRsiBSAFQwAAf0NeGxDuByEFIAlB/wFDAAB/Q0MAAAAAIANBCGoqAgAgB5MgCJVDAAB/Q5QiBiAGQwAAAABdGyIGIAZDAAB/Q14bEO4HIgb8AUEAIAZDAAAAAGAbIAZDAAB/Q14bQRB0Qf8BIAX8AUEAIAVDAAAAAGAbIAVDAAB/Q14bQQh0ckH/AUMAAH9DQwAAAAAgAyoCACAHkyAIlUMAAH9DlCIFIAVDAAAAAF0bIgUgBUMAAH9DXhsQ7gciBfwBQQAgBUMAAAAAYBsgBUMAAH9DXhtyIg07AQAgCUECaiANQRB2OgAAIApBA2ohCiADQQxqIQMgCUEYaiEJIAIgAEEBaiIARw0ACwsPCyAAIAFqIAtBxNTHABC/BwALQX9BAkGU2McAEKUKAAsgCiAEQZTYxwAQogoAC8UDAgR/AX4jAEEwayIFJAACQAJAAkACQAJAAkACQCABIAIoAiwREwAiB0L/////D1YNACAHpyIDQQBIDQACQCAHUCIGBEBBASEEDAELIAMQfiIERQ0CIARBBGstAABBA3FFIANFcg0AIARBACAD/AsACyAFQQhqIAEgBCADIAIoAjQRBgAgBSgCCEEGRwRAIAAgBf0AAwj9CwMAIABBIGogBUEoaikDADcDACAAQRBqIAVBGGr9AAMA/QsDACAGDQcgBEEEaygCACIAQXhxIgFBBEEIIABBA3EiABsgA2pJDQMgAEEAIAEgA0EnaksbDQQgBBC0AgwHCyAAIAM2AgwgACAENgIIIAAgAzYCBCAAQQY2AgAMBgsgAEIDNwMIIABBAzYCACACKAIAIgAEQCABIAARAwALIAIoAgQiAEUNBSABQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyAAakkNAyACQQAgAyAAQSdqSxsNBCABELQCDAULAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyAFQTBqJAAL3wMCBX8BfiMAQSBrIgIkACAAKAIIIQQgACgCBCEFQQEhAyABKAIAQZHAxQBBASABKAIEKAIMEQAAIQACQCAERQRAIAAhAwwBCwJAIAANACABLQAKQYABcQRAIAEoAgAiAEHQmcgAQQEgASgCBCIGKAIMEQAADQEgAkEBOgAPIAIgBjYCBCACIAA2AgAgAkHkoMIANgIUIAIgASkCCDcCGCACIAJBD2o2AgggAiACNgIQIAUgAkEQahChBQ0BIAIoAhBBg6HCAEECIAIoAhQoAgwRAAAhAwwBCyAFIAEQoQUhAwsgBEEBRg0AIAVBBGohACAEQQJ0QQRrIQQDQAJ/QQEgA0EBcQ0AGgJAIAEtAApBgAFxBEAgASkCACEHIAJBAToADyACIAc3AgAgAkHkoMIANgIUIAIgASkCCDcCGCACIAJBD2o2AgggAiACNgIQIAAgAkEQahChBUUNAUEBDAILQQEgASgCAEHDmsYAQQIgASgCBCgCDBEAAA0BGiAAIAEQoQUMAQsgAigCEEGDocIAQQIgAigCFCgCDBEAAAshAyAAQQRqIQAgBEEEayIEDQALC0EBIQAgA0UEQCABKAIAQZLAxQBBASABKAIEKAIMEQAAIQALIAJBIGokACAAC8wDAgV/A34jAEEwayIEJAAgBCADNgIMIAQgAjYCCAJAAkACQAJAIAEoAgxFDQAgASkDECABKQMYIAIgAxC6BCEJIAEoAgQiByAJp3EhBSAJQhmIQv8Ag0KBgoSIkKDAgAF+IQsgASgCACEBA0ACQCABIAVqKQAAIgogC4UiCUJ/hSAJQoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIglQRQRAA0AgASAJeqdBA3YgBWogB3FBaGxqIgZBEGsoAgAgA0YEQCACIAZBFGsoAgAgAxCQCEUNAwsgCUIBfSAJgyIJUEUNAAsLIAogCkIBhoNCgIGChIiQoMCAf4NQRQ0CIAUgCEEIaiIIaiAHcSEFDAELCyAGQQRrKAIAIgFBAEgNAiAGQQhrKAIAIQICQCABRQRAQQEhAwwBCyABEH4iA0UNBAsgAQRAIAMgAiAB/AoAAAsgACABNgIIIAAgAzYCBCAAIAE2AgAMAQsgBEECNgIUIARBhKnBADYCECAEQgE3AhwgBCAEQQhqrUKAgICAIIQ3AyggBCAEQShqNgIYIARBEGoQxQchASAAQYCAgIB4NgIAIAAgATYCBAsgBEEwaiQADwtB/KTIABC3CAsAC+8DAQR/IwBBQGoiAiQAAkACQAJAAkACQAJAAkACQCAALQAAQQFrDgMBAgMACyACIAAoAgQ2AgRBFBB+IgBFDQQgAEEQakGcn8gAKAAANgAAIABBjJ/IAP0AAAD9CwAAIAJBFDYCECACIAA2AgwgAkEUNgIIIAJBAzYCLCACQYiWyAA2AiggAkICNwI0IAIgAkEEaq1CgICAgNAEhDcDICACIAJBCGqtQoCAgICQCIQ3AxggAiACQRhqNgIwIAEoAgAgASgCBCACQShqEOQDIQAgAigCCCIBRQ0DIAIoAgwiBEEEaygCACIDQXhxIgVBBEEIIANBA3EiAxsgAWpJDQUgA0EAIAUgAUEnaksbDQYgBBC0AgwDCyAALQABIQAgAkEBNgIsIAJB8I7IADYCKCACQgE3AjQgAiACQRhqrUKAgICAoAGENwMIIAIgAEECdCIAQZS8yQBqKAIANgIcIAIgAEG8vckAaigCADYCGCACIAJBCGo2AjAgASgCACABKAIEIAJBKGoQ5AMhAAwCCyABIAAoAgQiACgCACAAKAIEEL4DIQAMAQsgACgCBCIAKAIAIAEgACgCBCgCEBECACEACyACQUBrJAAgAA8LAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALvQMBCX8jAEEQayIGJAAgASABKAIUQQFqIgU2AhQCQAJAAkAgBSABKAIQIgdPDQAgBSAHayEJIAEoAgwhCgJAA0AgBSAKai0AACILQTBrIgxB/wFxIg1BCk8EQCAIRQ0DIAQgCGohBCALQSByQeUARwRAIAAgASACIAMgBBCVBQwFCyAAIAEgAiADIAQQkwQMBAsgDUEFSyADQpmz5syZs+bMGVJyIANCmLPmzJmz5swZVnENASABIAVBAWoiBTYCFCAIQQFrIQggA0IKfiAMrUL/AYN8IQMgBSAHRw0ACyAAIAEgAiADIAQgCWoQlQUMAgsgACABIAIgAyAEIAhqEJsHDAELIAVBAWoiAiAHIAIgB0kbIQIgBSAHSQRAIAYgASgCDCAHIAIQhgIgBigCBCECIAYoAgAhBEEUEH4iAUUNAiABIAQ2AgwgAUENNgIAIAAgATYCBCAAQQE2AgAgASACNgIQDAELIAZBCGogASgCDCAHIAIQhgIgBigCDCECIAYoAgghBEEUEH4iAUUNASABIAQ2AgwgAUEFNgIAIAAgATYCBCAAQQE2AgAgASACNgIQCyAGQRBqJAAPCwALuQMBB38gACABKAIAIgQ2AqQBIAAgASgCBCIHNgKoASAAQQEgBEEWdiAEQf///wFxQQBHaiICIAJBAU0bQYAQIARBC3YgBEH/D3FBAEdqIgIgAkGAEE8bQQEgAhtsIgJBC3QiBTYCoAEgAkENdCIGEPcJIQIgACgCrAEiCEGECE8EQCAIEM0HCyAAIAI2AqwBIAcEQCAFQQF0EPcJIQJBASEDCwJAIAAoAgBFDQAgACgCBCIFQYQISQ0AIAUQzQcLIAAgAjYCBCAAIAM2AgAgB0ECSQR/QQAFIAYQ9wkhAkEBCyEDAkAgACgCCEUNACAAKAIMIgVBhAhJDQAgBRDNBwsgACACNgIMIAAgAzYCCCAHQQNJBH9BAAUgBhD3CSEGQQELIQMCQCAAKAIQRQ0AIAAoAhQiAkGECEkNACACEM0HCyAAIAY2AhQgACADNgIQQQEhAwJAIAEtAAgiAUEBRwRAQQAhAwwBCyAEQQJ0EPcJIQQLAkAgACgCMEUNACAAKAI0IgJBhAhJDQAgAhDNBwsgAEIANwKwASAAIAE6AJwBIAAgBDYCNCAAIAM2AjAgAEG4AWpBADoAAAvjAwIEfwF+IwBBIGsiAiQAIAAoAgghBCAAKAIEIQUgASgCAEGRwMUAQQEgASgCBCgCDBEAACEDAkAgBEUEQCADIQAMAQsCf0EBIAMNABogAS0ACkGAAXEEQEEBIAEoAgAiA0HQmcgAQQEgASgCBCIAKAIMEQAADQEaIAJBAToADyACIAA2AgQgAiADNgIAIAJB5KDCADYCFCACIAEpAgg3AhggAiACQQ9qNgIIIAIgAjYCEEEBIAUgAkEQahDYBA0BGiACKAIQQYOhwgBBAiACKAIUKAIMEQAADAELIAUgARDYBAshACAEQQFGDQAgBUEBaiEDIARBAWshBANAIABBAXEhBQJ/QQEgBQ0AGgJAIAEtAApBgAFxBEAgASkCACEGIAJBAToADyACIAY3AgAgAkHkoMIANgIUIAIgASkCCDcCGCACIAJBD2o2AgggAiACNgIQIAMgAkEQahDYBEUNAUEBDAILQQEgASgCAEHDmsYAQQIgASgCBCgCDBEAAA0BGiADIAEQ2AQMAQsgAigCEEGDocIAQQIgAigCFCgCDBEAAAshACADQQFqIQMgBEEBayIEDQALC0EBIQMgAEUEQCABKAIAQZLAxQBBASABKAIEKAIMEQAAIQMLIAJBIGokACADC7kDAQV/AkAgAEKAgICAEFQEQCABIQIMAQsgAUEIayICIAAgAEKAwtcvgCIAQoC+qNAPfnynIgNBkM4AbiIEQZDOAHAiBUHkAG4iBkEBdEGuwsUAai8AADsAACABQQRrIAMgBEGQzgBsayIDQf//A3FB5ABuIgRBAXRBrsLFAGovAAA7AAAgAUEGayAFIAZB5ABsa0H//wNxQQF0Qa7CxQBqLwAAOwAAIAFBAmsgAyAEQeQAbGtB//8DcUEBdEGuwsUAai8AADsAAAsCQCAApyIBQZDOAEkEQCABIQMMAQsgAkEEayECA0AgAiABQZDOAG4iA0HwsX9sIAFqIgRB5ABuIgVBAXRBrsLFAGovAAA7AAAgAkECaiAEIAVB5ABsa0EBdEGuwsUAai8AADsAACACQQRrIQIgAUH/wdcvSyADIQENAAsgAkEEaiECCwJAIANB4wBNBEAgAyEBDAELIAJBAmsiAiADIANB//8DcUHkAG4iAUHkAGxrQf//A3FBAXRBrsLFAGovAAA7AAALIAFBCU0EQCACQQFrIAFBMHI6AAAPCyACQQJrIAFBAXRBrsLFAGovAAA7AAALrgMCA34EfyAAKAIMRQRAQQAPCyAAKQMQIAApAxggARCWBCECIAAoAgQiBiACp3EhBSACQhmIQv8Ag0KBgoSIkKDAgAF+IQQgACgCACEHAkACQCABLQAAIghBC0cEQEEAIQEDQCAFIAdqKQAAIgMgBIUiAkJ/hSACQoGChIiQoMCAAX2DQoCBgoSIkKDAgH+DIgJQRQRAA0AgCCAHIAJ6p0EDdiAFaiAGcUFobGoiAEEYay0AAEYNBSACQgF9IAKDIgJQRQ0ACwsgAyADQgGGg0KAgYKEiJCgwIB/g0IAUg0CIAUgAUEIaiIBaiAGcSEFDAALAAsgASgAASEIQQAhAQNAIAUgB2opAAAiAyAEhSICQn+FIAJCgYKEiJCgwIABfYNCgIGChIiQoMCAf4MiAlBFBEADQCAHIAJ6p0EDdiAFaiAGcUFobGoiAEEYay0AAEELRgRAIAggAEEXaygAAEYNBQsgAkIBfSACgyICUEUNAAsLIAMgA0IBhoNCgIGChIiQoMCAf4NQRQ0BIAUgAUEIaiIBaiAGcSEFDAALAAtBACEACyAAQRhrQQAgABsLrgMDBX8BewF+IwBBoAFrIgIkACABKAIEIQUgASgCACACIAAoAgAiBP0AAggiByAH/Q0AAQIDBAUGBwgJCgsICQoL/QsEICACAn8gB/0ZBiIBQf//AXFFBEAgAUEQdAwBCyABQf8HcSEAIAFBgIACcSEDIAFBgPgBcSIBQYD4AUYEQCADQRB0IQEgAUGAgID8B3IgAEUNARogASAAQQ10ckGAgID+B3IMAQsgA0EQdCEDIAFBDXRBgICA/ABxIABBDXRyQYCAgMADaiADciABDQAaIAAgAGdBEGsiAEH//wNxQQhqdEH///8DcSADQYCAgNgDciAAQRd0a3ILNgI8IAJBQGsiACAEEMsDIAJB0ABqIgEgBBDCAyACQeAAaiIDIAQpAgAQ3QIgAkEGNgIMIAJBuMjHADYCCCACQgU3AhQgAiADrUKAgICAsAKENwOYASACQoCAgIDAAiIIIAGthDcDkAEgAiAIIACthDcDiAEgAiACQTxqrUKAgICA0AKENwOAASACIAggAkEgaq2ENwN4IAIgAkH4AGo2AhAgBSACQQhqEOQDIAJBoAFqJAALzwMCA38BfiMAQSBrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgRBgICAgHhzIARBAE4bQQFrDggBAgMEBQYHCAALQQEhAyABIAJBH2pB0ODAABDZCCEBDAkLIAEtAAQhAQwICyABLwEEIQEMBwsgASgCBCEBDAYLIAEpAwgiBUL/////D1gEQCAFpyEBDAULQQEhAyACQQE6AAggAiAFNwMQIAJBCGogAkEfakHQ4MAAEJMHIQEMBQsgASwABCIBQQBIBEAgAkECOgAIIAIgAaw3AxAgAkEIaiACQR9qQdDgwAAQkwchAUEBIQMMBQsgAUH/AXEhAQwDCyABLgEEIgFBAEgEQCACQQI6AAggAiABrDcDECACQQhqIAJBH2pB0ODAABCTByEBQQEhAwwECyABQf//A3EhAQwCCyABKAIEIgFBAE4NASACQQI6AAggAiABrDcDECACQQhqIAJBH2pB0ODAABCTByEBQQEhAwwCCyABKQMIIgVCgICAgBBaBEAgAkECOgAIIAIgBTcDECACQQhqIAJBH2pB0ODAABCTByEBQQEhAwwCCyAFpyEBCwsgACABNgIEIAAgAzYCACACQSBqJAALzwMCA38BfiMAQSBrIgIkAAJAAkACQAJAAkACQAJAAkACQAJAAkBBFSABKAIAIgRBgICAgHhzIARBAE4bQQFrDggBAgMEBQYHCAALQQEhAyABIAJBH2pBwODAABDZCCEBDAkLIAEtAAQhAQwICyABLwEEIQEMBwsgASgCBCEBDAYLIAEpAwgiBUL/////D1gEQCAFpyEBDAULQQEhAyACQQE6AAggAiAFNwMQIAJBCGogAkEfakHA4MAAEJMHIQEMBQsgASwABCIBQQBIBEAgAkECOgAIIAIgAaw3AxAgAkEIaiACQR9qQcDgwAAQkwchAUEBIQMMBQsgAUH/AXEhAQwDCyABLgEEIgFBAEgEQCACQQI6AAggAiABrDcDECACQQhqIAJBH2pBwODAABCTByEBQQEhAwwECyABQf//A3EhAQwCCyABKAIEIgFBAE4NASACQQI6AAggAiABrDcDECACQQhqIAJBH2pBwODAABCTByEBQQEhAwwCCyABKQMIIgVCgICAgBBaBEAgAkECOgAIIAIgBTcDECACQQhqIAJBH2pBwODAABCTByEBQQEhAwwCCyAFpyEBCwsgACABNgIEIAAgAzYCACACQSBqJAALhAMBA38gAC8BHCECAkACQCAALwEeIgFB//8BcUGA+AFLDQAgAkH//wFxIgNBgPgBSw0AIAHBQQBOBEAgAsFBAE4EQCABIAJNDQIMAwsgASADckUNAQwCCyACwUEATg0AIAEgAkkNAQsgAiEBCwJAAkAgAC8BICIAQf//AXFBgPgBSw0AIAFB//8BcSICQYD4AUsNACAAwUEATgRAIAHBQQBOBEAgACABQf//A3FNDQIMAwsgACACckUNAQwCCyABwUEATg0AIAAgAUH//wNxSQ0BCyABIQALAn8gAEEQdCAAQf//AXFFDQAaIABB/wdxIQEgAEGAgAJxIQIgAEGA+AFxIgBBgPgBRgRAIAJBEHQiAEGAgID8B3IgAUUNARogACABQQ10ckGAgID+B3IMAQsgAkEQdCICIABBDXRBgICA/ABxIAFBDXRyQYCAgMADanIgAA0AGiACQYCAgNgDciABZ0EQayIAQRd0ayABIABB//8DcUEIanRB////A3FyC74QpgQL+gIBBH8CQAJAAkACQAJAAkACQCAALQAADhoABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBAgQLIAAtAARBA0cNAyAAKAIIIgAoAgAhAiAAQQRqKAIAIgEoAgAiAwRAIAIgAxEDAAsgASgCBCIBBEAgAkEEaygCACIDQXhxIgRB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IAJrIgMEQCAEIAIgBGogA/wKAAALIAEgAzYCCAsgAEEBOgABCyAAIAU6AAAgBkEgaiQADwsgAiADQdyrxwAQogoAC88DAQV/IwBBIGsiAiQAIAAoAgAiA0EIaiEFQQEhAAJAIAMoAgBBAUYEQCABKAIAIgNB67/EAEEDIAEoAgQiBigCDCIEEQAADQECQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQMgBSABEKIGRQ0BDAMLIANBjKHCAEECIAQRAAANAiACQQE6AA8gAiAGNgIEIAIgAzYCACACQeSgwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBSACQRBqEKIGDQIgAkGDocIAQQIQ2AMNAgsgA0GmocgAQQEgBBEAACEADAELIAEoAgAiA0HolckAQQIgASgCBCIGKAIMIgQRAAANAAJAIAEtAApBgAFxRQRAIANB+brFAEEBIAQRAAANAiAFIAEQsAUNAiABKAIAIQMgASgCBCgCDCEEDAELIANBjKHCAEECIAQRAAANASACQQE6AA8gAiAGNgIEIAIgAzYCACACQeSgwgA2AhQgAiABKQIINwIYIAIgAkEPajYCCCACIAI2AhAgBSACQRBqELAFDQEgAigCEEGDocIAQQIgAigCFCgCDBEAAA0BCyADQaahyABBASAEEQAAIQALIAJBIGokACAAC4MDAQF/IwBBIGsiBSQAIAACfwJAIARFBEAgA0EEaiACSyADQXtLckUEQCAAIAEgA2oqAAA4AgQMAgsgBUEANgIYIAVBATYCDCAFQeStwQA2AgggBUIENwIQIAAgBUEIahDFBzYCBEEBDAILIANBfU0gA0ECaiACTXFFBEAgBUEANgIYIAVBATYCDCAFQeStwQA2AgggBUIENwIQIAAgBUEIahDFBzYCBEEBDAILIAACfyABIANqIgEtAAFBCHQiAiABLQAAciIBQf//AXFFBEAgAUEQdAwBCyABQf8HcSEBIAJBgIACcSEDIAJBgPgBcSICQYD4AUYEQCADQRB0IQIgAkGAgID8B3IgAUUNARogAUENdCACckGAgID+B3IMAQsgA0EQdCEDIAJBDXRBgICA/ABxIAFBDXRyQYCAgMADaiADciACDQAaIANBgICA2ANyIAFnQRBrIgJBF3RrIAEgAkH//wNxQQhqdEH///8D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5AMLIAJBMGokAAvmAQEEfyMAQSBrIgAkAEEBIQICQCABKAIAIgNB7KTIAEEPIAEoAgQiBSgCDCIEEQAADQACQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQIgAUHoocgAQQIQvgNFDQEMAgsgA0GMocIAQQIgBBEAAA0BIABBAToADyAAIAU2AgQgACADNgIAIABB5KDCADYCFCAAIAEpAgg3AhggACAAQQ9qNgIIIAAgADYCECAAQRBqQeihyABBAhC+Aw0BIABBg6HCAEECENgDDQELIANBpqHIAEEBIAQRAAAhAgsgAEEgaiQAIAILugEBA38jAEEgayIDJAACQAJ/QQAgASABIAJqIgJLDQAaQQBBCCACIAAoAgAiAUEBdCIEIAIgBEsbIgIgAkEITRsiBEEASA0AGkEAIQIgAyABBH8gAyABNgIcIAMgACgCBDYCFEEBBSACCzYCGCADQQhqQQEgBCADQRRqENIHIAMoAghBAUcNASADKAIQIQUgAygCDAtB/KHIABDQCQALIAMoAgwhASAAIAQ2AgAgACABNgIEIANBIGokAAvmAQEEfyMAQSBrIgAkAEEBIQICQCABKAIAIgNBgN7EAEERIAEoAgQiBSgCDCIEEQAADQACQCABLQAKQYABcUUEQCADQfm6xQBBASAEEQAADQIgAUHoocgAQQIQvgNFDQEMAgsgA0GMocIAQQIgBBEAAA0BIABBAToADyAAIAU2AgQgACADNgIAIABB5KDCADYCFCAAIAEpAgg3AhggACAAQQ9qNgIIIAAgADYCECAAQRBqQeihyABBAhC+Aw0BIABBg6HCAEECENgDDQELIANBpqHIAEEBIAQRAAAhAgsgAEEgaiQAIAIL6QEBA38jAEEQayICJAAgAiAAKAIAIgA2AgQgASgCAEHYrscAQQYgASgCBCgCDBEAACEDIAJBADoADSACIAM6AAwgAiABNgIIIAJBCGpB3q7HAEEEIABBBGpBuK7HABC9BUHirscAQQUgAkEEakHIrscAEL0FIQAgAi0ADSIDIAItAAwiBHIhAQJAIARBAXEgA0EBR3INACAAKAIAIgAtAApBgAFxRQRAIAAoAgBB8cDFAEECIAAoAgQoAgwRAAAhAQwBCyAAKAIAQZK9xQBBASAAKAIEKAIMEQAAIQELIAJBEGokACABQQFxC+kB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ACADIAIgAiADVhunaigAACEHDAELQeChyAApAwAiBUIIiCEEIAWnIQYgBUL/AYNCBFINAQsgA0IEfCECCyABIAI3AwggBkH/AXFBBEcEQCAAIAatQv8BgyAEQgiGhDcCAA8LIABBBDoAACAAIAc2AgQLxwEBA38jAEEQayICJAAgACgCDCEBAkACQAJAAkACQAJAAkACQCAAKAIEDgIAAQILIAENAUEBIQNBACEAQQEhAQwDCyABRQ0BCyACQQRqIAAQ4gQMAgsgACgCACIBKAIEIgBBAEgNAiABKAIAIQMgAEUEQEEBIQFBACEADAELIAAQfiIBRQ0DCyAABEAgASADIAD8CgAACyACIAA2AgwgAiABNgIIIAIgADYCBAsgAkEEahDFASACQRBqJAAPC0H8pMgAELcICwALtAEBBn8jAEEgayIBJAACQAJAIAAoAgAiA0H///8fSw0AQQQgA0EBdCIEIARBBE0bIgRBBXQiBUH4////B0sNACABIAMEfyABIANBBXQ2AhwgASAAKAIENgIUQQgFIAILNgIYIAFBCGpBCCAFIAFBFGoQ0gcgASgCCEEBRw0BIAEoAhAhBiABKAIMIQILIAJBpLbBABDQCQALIAEoAgwhAiAAIAQ2AgAgACACNgIEIAFBIGokAAvPAQACQCABBEAgACAELQAIOgAAIAFBCEsNAUEIIAFBAWtBlPnEABCiCgALQQBBAEGE+cQAEL8HAAsgACAELQAROgABIAAgBC0AGjoAAiAAIAQtACM6AAMgACAELQAsOgAEIAAgBC0ANToABSAAIAQtAD46AAYgACAELQBHOgAHIAAgBC0AUDoACAJAIAVBA3QiACADTQRAIAMgAGsiAUEHSw0BQQggAUGk+cQAEKIKAAsgACADQbT5xAAQowoACyAAIAJqIARByQBqKQAANwAAC8UBAQR/IwBBIGsiAyQAIANBGGoiAiABQSxqKQIANwMAIAMgAf0AAhz9CwMIAkACQEEYEH4iBARAIAQgA/0AAwj9CwIAIARBEGogAikDADcCACABQQRqEIMDIAFBBGsoAgAiAkF4cSIFQThBPCACQQNxIgIbSQ0BIAJBACAFQdwATxsNAiABELQCIABBkLfHADYCBCAAIAQ2AgAgA0EgaiQADwsAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgA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AgA3AgAgASAENgIQIAFBCGogAkEIaigCADYCACADQRBqJAALegEDfyMAQRBrIgMkACADQQhqIAEoAgAgASgCBCABKAIIEIYCIAMoAgwhBCADKAIIIQVBFBB+IgFFBEAACyABIAU2AgwgACABNgIEIABBAToAACABIAIpAgA3AgAgASAENgIQIAFBCGogAkEIaigCADYCACADQRBqJAALegEDfyMAQRBrIgMkACADQQhqIAEoAgAgASgCBCABKAIIEIYCIAMoAgwhBCADKAIIIQVBFBB+IgFFBEAACyABIAU2AgwgACABNgIEIABBATsBACABIAIpAgA3AgAgASAENgIQIAFBCGogAkEIaigCADYCACADQRBqJAALegEDfyMAQRBrIgMkACADQQhqIAEoAgAgASgCBCABKAIIEIYCIAMoAgwhBCADKAIIIQVBFBB+IgFFBEAACyABIAU2AgwgACABNgIEIABBADYCACABIAIpAgA3AgAgASAENgIQIAFBCGogAkEIaigCADYCACADQRBqJAALdgEDfyAAEJoCAkACQCAAKALEASICBEAgACgCyAEiAEEEaygCACIBQXhxIgNBBEEIIAFBA3EiARsgAmpJDQEgAUEAIAMgAkEnaksbDQIgABC0AgsPC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAt2AQN/IAAQ1wICQAJAIAAoArwBIgIEQCAAKALAASIAQQRrKAIAIgFBeHEiA0EEQQggAUEDcSIBGyACakkNASABQQAgAyACQSdqSxsNAiAAELQCCw8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC3QBA38gABCYAwJAAkAgACgCYCICBEAgACgCZCIAQQRrKAIAIgFBeHEiA0EEQQggAUEDcSIBGyACakkNASABQQAgAyACQSdqSxsNAiAAELQCCw8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC3QBA38gABCZAwJAAkAgACgCQCICBEAgACgCRCIAQQRrKAIAIgFBeHEiA0EEQQggAUEDcSIBGyACakkNASABQQAgAyACQSdqSxsNAiAAELQCCw8LQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC3QBBH8CQAJAIAAoAigiAgRAIAAoAiwi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JAALNAAgASgCACAAKAIALQAAaEECdCIAQYSeyQBqKAIAIABB8J3JAGooAgAgASgCBCgCDBEAAAs0ACABKAIAIAAoAgAtAABoQQJ0IgBBpKDJAGooAgAgAEGQoMkAaigCACABKAIEKAIMEQAAC/4BAgJ/AX4jAEEQayICJAAgAkEBOwEMIAIgATYCCCACIAA2AgQjAEEQayIBJAAgAkEEaiIAKQIAIQQgASAANgIMIAEgBDcCBCMAQRBrIgAkACABQQRqIgEoAgAiAigCDCEDAkACQAJAAkAgAigCBA4CAAECCyADDQFBASECQQAhAwwCCyADDQAgAigCACICKAIEIQMgAigCACECDAELIABBgICAgHg2AgAgACABNgIMIABB/wBBgAEgASgCBCABKAIIIgAtAAggAC0ACRDEBgALIAAgAzYCBCAAIAI2AgAgAEGBAUGCASABKAIEIAEoAggiAC0ACCAALQAJEMQGAAszACABKAIAIAAoAgAtAABBAnQiAEGAm8kAaigCACAAQcCayQBqKAIAIAEoAgQoAgwRAAALMwAgASgCACAAKAIALQAAQQJ0IgBB+JzJAGooAgAgAEG4nMkAaigCACABKAIEKAIMEQAACzEAIAEoAgAgAC0AAGhBAnQiAEGsnskAaigCACAAQZieyQBqKAIAIAEoAgQoAgwRAAALMwAgASgCACAAKAIALQAAQQJ0IgBB9J/JAGooAgAgAEHYn8kAaigCACABKAIEKAIMEQAACzMAIAEoAgAgACgCAC0AAEECdCIAQfigyQBqKAIAIABBuKDJAGooAgAgASgCBCgCDBEAAAsnACACIARGBEAgBARAIAMgASAE/AoAAAsPCyAEIAJBzLPFABCnCgALMwAgASgCACAAKAIALQAAQQJ0IgBBoKLJAGooAgAgAEGMoskAaigCACABKAIEKAIMEQAACzMAIAEoAgAgACgCAC0AAEECdCIAQcCkyQBqKAIAIABBrKTJAGooAgAgASgCBCgCDBEAAAsmAQF/IwBBEGsiAiQAIAEoAgQaIABBsIvIACABEOQDIAJBEGokAAszACABKAIAIAAoAgAoAgBBAnQiAEHwxckAaigCACAAQczFyQBqKAIAIAEoAgQoAgwRAAALhQkCC38BeyMAQRBrIggkABCFBSILIAEmASAAIQdBACEAIwBBQGoiAyQAQdjJyQAoAgBFBEAQYQsCQAJAAkACQAJAAkACQAJAQeDJyQAoAgBFBEBB4MnJAEF/NgIAIAdB/////wBLDQEgB0EEdCIEQf3///8HTw0BQcjKyQAoAgAhDAJAIARFBEBBBCECDAELIAchACAEEH4iAkUNAwtBGBB+IglFDQIgCUEANgIUIAkgAjYCECAJIAA2AgwgCUEANgIIIAlCgYCAgBA3AgACQCAHQRB2IAdB//8DcUEAR2oiBkUEQEEEIQRBBCEFDAELIAZBAnQiBRB+IgRFDQNBACECAkAgBkEETwRA/QwAAAAAAQAAAAIAAAADAAAAIQ0gBkH8P3EiAiEKIAQhAANAIAAgDf0LAgAgAEEQaiEAIA39DAQAAAAEAAAABAAAAAQAAAD9rgEhDSAKQQRrIgoNAAsgAiAGRg0BCyAEIAJBAnRqIQADQCAAIAI2AgAgAEEEaiEAIAYgAkEBaiICRw0ACwsgBRB+IgVFDQNBACECIAZBBE8EQP0MAAAAAAEAAAACAAAAAwAAACENIAZB/D9xIgIhCiAFIQADQCAAIA39CwIAIABBEGohACAN/QwEAAAABAAAAAQAAAAEAAAA/a4BIQ0gCkEEayIKDQALIAIgBkYNAQsgBSACQQJ0aiEAA0AgACACNgIAIABBBGohACAGIAJBAWoiAkcNAAsLIAMgBjYCOCADIAU2AjQgAyAGNgIwIAMgBjYCLCADIAQ2AiggAyAGNgIkIAMgCTYCPCADQQhqIAwgA0EkahCwAgJAIAMoAggiAEGAgICAeEYNACADKAIgIgQgBCgCAEEBayIFNgIAIAVFBEAgBBD+BQsgAARAIAMoAgwiBEEEaygCACIFQXhxIgIgAEECdCIAQQRBCCAFQQNxIgUbakkNBSAFQQAgAiAAQSdqSxsNBiAEELQCCyADKAIUIgBFDQAgAygCGCIEQQRrKAIAIgVBeHEiAiAAQQJ0IgBBBEEIIAVBA3EiBRtqSQ0GIAVBACACIABBJ2pLGw0HIAQQtAILQcjKyQBByMrJACgCAEEBajYCACAMQQAgByALEN0BEIMKIgRBmOLBAEEFEKwJIgAgDLgQ+AkiBxCECkH40MkALQAADQdB/NDJAEEANgIAQfjQyQBBADoAACAHQYQITwRAIAcQzQcLIABBhAhPBEAgABDNBwtB4MnJAEHgyckAKAIAQQFqNgIAIAtBhAhPBEAgCxDNBwsgCEIANwIEIAggBDYCACADQUBrJAAMCAtB0OzAABD8CgALQfDiwQAQtwgLAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC0H40MkAQQA6AABB/NDJACgCACEAQfzQyQBBADYCACADIAA2AiRBwPjIAEErIANBJGpB1L/BAEGA48EAEJUHAAsgCCgCACAIKAIEIAgoAgggCEEQaiQAC58RAwx/A34CfSMAQRBrIg0kACMAQSBrIgQkAEHYyckAKAIARQRAEGELAkACQAJAAkACfwJAAkBB4MnJACgCAEUEQEHgyckAQX82AgACQAJAQfTJyQAoAgBFDQBB7MnJACgCACIJQYDKyQApAwAiDiAArYUiD0I4hiAPQoD+A4NCKIaEIA9CgID8B4NCGIYgD0KAgID4D4NCCIaEhCAOQgiIQoCAgPgPgyAOQhiIQoCA/AeDhCAOQiiIQoD+A4MgDkI4iISEhELSgaqbq/qC16d/fiIOQjiGIA5CgP4Dg0IohoQgDkKAgPwHg0IYhiAOQoCAgPgPg0IIhoSEIA5CCIhCgICA+A+DIA5CGIhCgID8B4OEIA5CKIhCgP4DgyAOQjiIhISEIA9C2KLR78Kp5b8tfoUiEEI4hiAQQoD+A4NCKIaEIBBCgID8B4NCGIYgEEKAgID4D4NCCIaEhCAQQgiIQoCAgPgPgyAQQhiIQoCA/AeDhCAQQiiIQoD+A4MgEEI4iISEhEH4yckAKQMAIg5Cf4V+Ig9COIYgD0KA/gODQiiGhCAPQoCA/AeDQhiGIA9CgICA+A+DQgiGhIQgD0IIiEKAgID4D4MgD0IYiEKAgPwHg4QgD0IoiEKA/gODIA9COIiEhIQgECAOQjiGIA5CgP4Dg0IohoQgDkKAgPwHg0IYhiAOQoCAgPgPg0IIhoSEIA5CCIhCgICA+A+DIA5CGIhCgID8B4OEIA5CKIhCgP4DgyAOQjiIhISEfoUgEIkiD6dxIQMgD0IZiEL/AINCgYKEiJCgwIABfiEOQejJyQAoAgAiBkEgayECA0AgAyAGaikAACIQIA6FIg9Cf4UgD0KBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIPUEUEQANAIAAgAiAPeqdBA3YgA2ogCXEiBUEFdGsoAgBGDQQgD0IBfSAPgyIPUEUNAAsLIBAgEEIBhoNCgIGChIiQoMCAf4NQRQ0BIAMgCEEIaiIIaiAJcSEDDAALAAtB4OPBABCkCgALIAZBACAFa0EFdGpBBGsoAgAiCigCCCIAQf////8HTw0BIAogAEEBajYCCCAKKAIUBEAgCigCEEEKai8BACIAQf//AXFFBEAgAEEQdAwFCyAAQf8HcSECIABBgIACcSEFIABBgPgBcSIAQYD4AUYEQCAFQRB0IgBBgICA/AdyIAJFDQUaIAAgAkENdHJBgICA/gdyDAULIAVBEHQhBSAARQ0DIABBDXRBgICA/ABxIAJBDXRyQYCAgMADaiAFcgwEC0EAQQBB8OPBABC/BwwEC0HQ7MAAEPwKAAtByOTBABD7CgALIAIgAmdBEGsiAEH//wNxQQhqdEH///8DcSAFQYCAgNgDciAAQRd0a3ILQwAAoD8hEUMAAKA/QwAAgD8gASABQR91IgBzIABrIgJBAXEbIRIgAkECTwRAA0AgEiARIBGUIhGUIBIgAkECcRshEiACQQNLIAJBAXYhAg0ACwtBBBB+IgVFDQC+QwAAgD8gEpUgEiABQQBIG5UhESAFQQA2AgAgBEEANgIQIARCgICAgMAANwIIQQQhC0EBIQhBASEDAkADQCAEQQA2AhwgBEKAgICAwAA3AhQgBSADQQJ0aiEGIAUhAANAIAAoAgAiByAKKAIUIgFPBEAgByABQZjkwQAQvwcACwJAIBECfyAKKAIQIAdBBHRqIglBCmovAQAiAUH//wFxRQRAIAFBEHQMAQsgAUH/B3EhAyABQYCAAnEhAiABQYD4AXEiAUGA+AFGBEAgAkEQdCIBQYCAgPwHciADRQ0BGiABIANBDXRyQYCAgP4HcgwBCyACQRB0IgIgAUENdEGAgID8AHEgA0ENdHJBgICAwANqciABDQAaIAMgA2dBEGsiAUH//wNxQQhqdEH///8DcSACQYCAgNgDciABQRd0a3ILvmBFBEAgCSgCACIDIAMgCS8BDCIBak8NASAEKAIcIgJBAnQhBwNAIAQoAhQgAkYEQCAEQRRqQajkwQAQrAYLIAQoAhggB2ogAzYCACAEIAJBAWoiAjYCHCADQQFqIQMgB0EEaiEHIAFBAWsiAQ0ACwwBCyAEKAIIIAxGBEAgBEEIakG45MEAEKwGIAQoAgwhCwsgCyAMQQJ0aiAHNgIAIAQgDEEBaiIMNgIQCyAAQQRqIgAgBkcNAAsCQCAIBEAgBUEEaygCACIAQXhxIgIgCEECdCIBQQRBCCAAQQNxIgAbakkNASAAQQAgAiABQSdqSxsNBiAFELQCCyAEKAIYIQUgBCgCFCEIIAQoAhwiA0UNAgwBCwsMAgsgDBD3CSELIAQoAgwhACAEKAIIIQkgDARAIAxBAnQhB0EAIQMgACECA0AgCyUBIAMgAigCABAcIANBAWohAyACQQRqIQIgB0EEayIHDQALCyAJBEAgAEEEaygCACIBQXhxIgYgCUECdCICQQRBCCABQQNxIgEbakkNAiABQQAgBiACQSdqSxsNAyAAELQCCxCDCiIGQYDkwQBBBxCsCSIAIAsQhAoCQEH40MkALQAARQRAQfzQyQBBADYCAEH40MkAQQA6AAAgC0GECE8EQCALEM0HCyAAQYQITwRAIAAQzQcLIAgEQCAFQQRrKAIAIgBBeHEiAiAIQQJ0IgFBBEEIIABBA3EiABtqSQ0EIABBACACIAFBJ2pLGw0CIAUQtAILIAogCigCCEEBazYCCCANQgA3AgQgDSAGNgIAQeDJyQBB4MnJACgCAEEBajYCACAEQSBqJAAMBQtB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgBCAANgIUQcD4yABBKyAEQRRqQdS/wQBBiOTBABCVBwALDAILAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALIA0oAgAgDSgCBCANKAIIIA1BEGokAAvhBQELfyMAQRBrIgUkABCFBSIGIAEmASMAQbADayICJAACQAJAAkACQAJAAkAgAARAIABBCGsiByAHKAIAQQFqIgM2AgAgA0UNASAAKAIAIgRB/////wdPDQIgACAEQQFqNgIAQQIhAwJAIAYQhQsiCkUEQCACQeQBaiAGELwBIAIoAuQBIQQgAi0AgAIiA0ECRgRAQQEhAwwCCyACQSBqIAJB+AFqKQIANwMAIAJBDmogAkGDAmotAAA6AAAgAiAC/QAC6AH9CwMQIAIgAi8AgQI7AQwLIAJB8AFqIAJBGGr9AAMA/QsCACACQYMCaiACQQ5qLQAAOgAAIAIgBDYC5AEgAiACKQMQNwLoASACIAM6AIACIAIgAi8BDDsAgQIgAkEoaiAAQQRqQQAgAkHkAWoiBBCSAQJAIAIoAihBAkYEQCACKAIsIQMgAkEANgKoAyACQoCAgIAQNwKgAyACQcz1wAA2AugBIAJCoICAgA43AuwBIAIgAkGgA2o2AuQBIAMgBBDZBA0GIAIoAqADIQggAigCpAMiCyACKAKoAxCsCSEEIAgEQCALQQRrKAIAIglBeHEiDEEEQQggCUEDcSIJGyAIakkNCCAJQQAgDCAIQSdqSxsNCSALELQCCyADIAMoAgAoAgARAwBBASEDIApFDQIgBkGDCEsNAQwCCyACQeQBaiIDIAJBKGpBvAH8CgAAIAMQ3gEhBEEAIQMgCkUgBkGECElyDQELIAYQzQcLIAAgACgCAEEBazYCACAHIAcoAgBBAWsiADYCACAARQRAIAcQmAcLIAUgAzYCCCAFIARBACADGzYCBCAFQQAgBCADGzYCACACQbADaiQADAYLEN4KCwALEOAKAAtBjJvGAEE3IAJBrwNqQeT1wABBxJvGABCVBwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyAFKAIAIAUoAgQgBSgCCCAFQRBqJAAL4QUBC38jAEEQayIFJAAQhQUiBiABJgEjAEGwA2siAiQAAkACQAJAAkACQAJAIAAEQCAAQQhrIgcgBygCAEEBaiIDNgIAIANFDQEgACgCACIEQf////8HTw0CIAAgBEEBajYCAEECIQMCQCAGEIULIgpFBEAgAkHkAWogBhC8ASACKALkASEEIAItAIACIgNBAkYEQEEBIQMMAgsgAkEgaiACQfgBaikCADcDACACQQ5qIAJBgwJqLQAAOgAAIAIgAv0AAugB/QsDECACIAIvAIECOwEMCyACQfABaiACQRhq/QADAP0LAgAgAkGDAmogAkEOai0AADoAACACIAQ2AuQBIAIgAikDEDcC6AEgAiADOgCAAiACIAIvAQw7AIECIAJBKGogAEEEakEBIAJB5AFqIgQQkgECQCACKAIoQQJGBEAgAigCLCEDIAJBADYCqAMgAkKAgICAEDcCoAMgAkHM9cAANgLoASACQqCAgIAONwLsASACIAJBoANqNgLkASADIAQQ2QQNBiACKAKgAyEIIAIoAqQDIgsgAigCqAMQrAkhBCAIBEAgC0EEaygCACIJQXhxIgxBBEEIIAlBA3EiCRsgCGpJDQggCUEAIAwgCEEnaksbDQkgCxC0AgsgAyADKAIAKAIAEQMAQQEhAyAKRQ0CIAZBgwhLDQEMAgsgAkHkAWoiAyACQShqQbwB/AoAACADEN4BIQRBACEDIApFIAZBhAhJcg0BCyAGEM0HCyAAIAAoAgBBAWs2AgAgByAHKAIAQQFrIgA2AgAgAEUEQCAHEJgHCyAFIAM2AgggBSAEQQAgAxs2AgQgBUEAIAQgAxs2AgAgAkGwA2okAAwGCxDeCgsACxDgCgALQYybxgBBNyACQa8DakHk9cAAQcSbxgAQlQcAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAsgBSgCACAFKAIEIAUoAgggBUEQaiQAC8sDAQN/IwBBEGsiAyQAQQghBAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQEEVIAAoAgAiBUGAgICAeHMgBUEAThtBAWsOFQECAwQFBgcICQoLDA0ODxQUEBESEwALIAMgAC0ABDoAASADQQA6AAAMFgsgAyAAMQAENwMIDBMLIAMgADMBBDcDCAwSCyADIAA1AgQ3AwgMEQsgAyAAKQMINwMIDBALIAMgADAABDcDCAwQCyADIAAyAQQ3AwgMDwsgAyAANAIENwMIDA4LIAMgACkDCDcDCAwNCyADIAAqAgS7OQMIIANBAzoAAAwNCyADIAArAwg5AwggA0EDOgAADAwLIAMgACgCBDYCBCADQQQ6AAAMCwsgAyAAKQMINwIEIANBBToAAAwKCyADIAApAgQ3AgQgA0EFOgAADAkLIAMgACkDCDcCBCADQQY6AAAMCAsgAyAAKQIENwIEIANBBjoAAAwHCyADQQc6AAAMBgsgA0EJOgAADAULIANBCjoAAAwEC0ELIQQLIAMgBDoAAAwCCyADQQE6AAAMAQsgA0ECOgAACyADIAEgAhCUByADQRBqJAALMAAgASgCACAALQAAQQJ0IgBB6PTBAGooAgAgAEHA9MEAaigCACABKAIEKAIMEQAACzAAIAEoAgAgAC0AAEECdCIAQfz1wQBqKAIAIABByPXBAGooAgAgASgCBCgCDBEAAAswACABKAIAIAAtAABBAnQiAEG4l8kAaigCACAAQfCWyQBqKAIAIAEoAgQoAgwRAAALMAAgASgCACAALAAAQQJ0IgBBxJjJAGooAgAgAEH8l8kAaigCACABKAIEKAIMEQAACzAAIAEoAgAgACwAAEECdCIAQeSZyQBqKAIAIABBjJnJAGooAgAgASgCBCgCDBEAAAswACABKAIAIAAtAABBAnQiAEHcnskAaigCACAAQcCeyQBqKAIAIAEoAgQoAgwRAAALMAAgASgCACAALQAAQQJ0IgBBuKvJAGooAgAgAEHwqskAaigCACABKAIEKAIMEQAACzAAIAEoAgAgACwAAEECdCIAQcSsyQBqKAIAIABB/KvJAGooAgAgASgCBCgCDBEAAAswACABKAIAIAAsAABBAnQiAEHkrckAaigCACAAQYytyQBqKAIAIAEoAgQoAgwRAAALMAAgASgCACAALAAAQQJ0IgBBmLTJAGooAgAgAEH8s8kAaigCACABKAIEKAIMEQAACzAAIAEoAgAgAC0AAEECdCIAQcy1yQBqKAIAIABBpLTJAGooAgAgASgCBCgCDBEAAAupAgIBfwFvAn8jAEEwayINJABB8MvJACgCAEUEQBD+AwsCQEH0y8kAKAIARQRAQfTLyQBBfzYCAEGYzMkAQQA2AgAgDSAMQQBHOgAgIA1BgICA/AM2AhwgDUKAgID8g4CAwD83AhQgDSALOAIQIA0gCjgCDCANQoCAgICAgIDAPzcCBCAJQQJ0IglBgMzJACgCACIMSw0BQfzLyQAoAgAgDSACOAIsIA0gATgCKCANIAA4AiQgCUGQzMkAIA1BJGogA/0TIAT9IAEgBSAGIAcgCCANQQRqELADQZTMyQAoAgBBmMzJACgCABCqCUH0y8kAQfTLyQAoAgBBAWo2AgAgDUEwaiQADAILQdDswAAQ/AoACyAJIAxBqPPBABCiCgALIgklASAJEM0HC+4FAQt/IwBBEGsiByQAIwBBMGsiASQAAkACQAJAAkACQCAABEAgAEEIayIFKAIAQQFHDQEgACgCECEDIAAoAgwhCCAAKAIIIQQgACgCBCECIAVBADYCAAJAIAVBf0YNACAAQQRrIgYgBigCAEEBayIGNgIAIAYNACAAQQxrKAIAIgBBeHEiBkEgQSQgAEEDcSIAG0kNBCAAQQAgBkHEAE8bDQUgBRC0AgsCQCACIAQoAhQRBAAiAARAIAFBADYCGCABQoCAgIAQNwIQIAFBzPXAADYCICABQqCAgIAONwIkIAEgAUEQajYCHCAAIAFBHGoQ2QQNBCABKAIQIQUgASgCFCIKIAEoAhgQrAkhBiAFBEAgCkEEaygCACIJQXhxIgtBBEEIIAlBA3EiCRsgBWpJDQYgCUEAIAsgBUEnaksbDQcgChC0AgsgACAAKAIAKAIAEQMAIAQoAgAiAARAIAIgABEDAAsgBCgCBCIABEAgAkEEaygCACIEQXhxIgVBBEEIIARBA3EiBBsgAGpJDQYgBEEAIAUgAEEnaksbDQcgAhC0AgsgAygCACIABEAgCCAAEQMACyADKAIEIgAEQCAIQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyAAakkNBiACQQAgAyAAQSdqSxsNByAIELQCC0EBIQAMAQsgAUEIaiAIIAIgBCADKAIMEQYAIAEoAgwhBiABKAIIIQAgAygCBCICRQ0AIAhBBGsoAgAiA0F4cSIEQQRBCCADQQNxIgMbIAJqSQ0EIANBACAEIAJBJ2pLGw0FIAgQtAILIAcgAEEBcSIANgIIIAcgBkEAIAAbNgIEIAdBACAGIAAbNgIAIAFBMGokAAwFCxDeCgALQcjhwQBBPxDfCgALQYybxgBBNyABQS9qQeT1wABBxJvGABCVBwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyAHKAIAIAcoAgQgBygCCCAHQRBqJAALtgYBBn8jAEEQayIFJAAjAEFAaiIDJABB2MnJACgCAEUEQBBhCwJAAkACQAJAAkACQAJAAkBB4MnJACgCAEUEQEHgyckAQX82AgAgAEH/////AEsNASAAQQR0IgFB/f///wdPDQFByMrJACgCACEGAkAgAUUEQEEEIQQMAQsgACECIAEQfiIERQ0DC0EYEH4iAUUNAiABQQA2AhQgASAENgIQIAEgAjYCDCABQQA2AgggAUKBgICAEDcCAAJAIABBEHYgAEH//wNxQQBHaiIARQRAQQQhBEEEIQIMAQsgAEECdCICEH4iBEUNAyACEH4iAkUNAwsgA0EANgI4IAMgAjYCNCADIAA2AjAgA0EANgIsIAMgBDYCKCADIAA2AiQgAyABNgI8IANBCGogBiADQSRqELACAkAgAygCCCIAQYCAgIB4Rg0AIAMoAiAiAiACKAIAQQFrIgE2AgAgAUUEQCACEP4FCyAABEAgAygCDCICQQRrKAIAIgFBeHEiBCAAQQJ0IgBBBEEIIAFBA3EiARtqSQ0FIAFBACAEIABBJ2pLGw0GIAIQtAILIAMoAhQiAEUNACADKAIYIgJBBGsoAgAiAUF4cSIEIABBAnQiAEEEQQggAUEDcSIBG2pJDQYgAUEAIAQgAEEnaksbDQcgAhC0AgtByMrJAEHIyskAKAIAQQFqNgIAEIMKIgFBmOLBAEEFEKwJIgAgBrgQ+AkiAhCECkH40MkALQAADQdB/NDJAEEANgIAQfjQyQBBADoAACACQYQITwRAIAIQzQcLIABBhAhPBEAgABDNBwsgBUIANwIEIAUgATYCAEHgyckAQeDJyQAoAgBBAWo2AgAgA0FAayQADAgLQdDswAAQ/AoAC0GI4sEAELcICwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAtB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgAyAANgIkQcD4yABBKyADQSRqQdS/wQBBoOLBABCVBwALIAUoAgAgBSgCBCAFKAIIIAVBEGokAAuBDAIDfgh/IwBBEGsiCCQAIwBBQGoiBiQAQdjJyQAoAgBFBEAQYQsCQAJAAkACQAJAAkACQAJAAkACQEHgyckAKAIARQRAQeDJyQBBfzYCAEH0yckAKAIARQ0IQezJyQAoAgAiB0GAyskAKQMAIgEgAK2FIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIRC0oGqm6v6gtenf34iAUI4hiABQoD+A4NCKIaEIAFCgID8B4NCGIYgAUKAgID4D4NCCIaEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhCACQtii0e/CqeW/LX6FIgFCOIYgAUKA/gODQiiGhCABQoCA/AeDQhiGIAFCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIRB+MnJACkDACICQn+FfiIDQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISEIAEgAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhH6FIAGJIgGncSEEIAFCGYhC/wCDQoGChIiQoMCAAX4hA0HoyckAKAIAIglBIGshCgNAAkAgBCAJaikAACICIAOFIgFCf4UgAUKBgoSIkKDAgAF9g0KAgYKEiJCgwIB/gyIBUEUEQANAIAAgCiABeqdBA3YgBGogB3EiC0EFdGsoAgBGDQIgAUIBfSABgyIBUEUNAAsLIAIgAkIBhoNCgIGChIiQoMCAf4NQRQ0KIAQgBUEIaiIFaiAHcSEEDAELCyAJQQAgC2tBBXRqIgRBBGsiBygCACIAIAAoAgBBAWoiADYCACAARQ0BIARBHGsoAgAiAEH/////A0sNAiAAQQJ0IgVB/f///wdPDQIgBygCACEKAkAgBUUEQEEEIQVBACEADAELIAUQfiIFRQ0CCyAEQRBrKAIAIgRB/////wNLDQMgBEECdCIHQf3///8HTw0DAkAgB0UEQEEEIQdBACEEDAELIAcQfiIHRQ0CC0HIyskAQcjKyQAoAgAiCUEBajYCACAGQQA2AjggBiAHNgI0IAYgBDYCMCAGQQA2AiwgBiAFNgIoIAYgADYCJCAGIAo2AjwgBkEIaiAJIAZBJGoQsAICQCAGKAIIIgBBgICAgHhGDQAgBigCICIEIAQoAgBBAWsiBTYCACAFRQRAIAQQ/gULIAAEQCAGKAIMIgRBBGsoAgAiBUF4cSIHIABBAnQiAEEEQQggBUEDcSIFG2pJDQYgBUEAIAcgAEEnaksbDQcgBBC0AgsgBigCFCIARQ0AIAYoAhgiBEEEaygCACIFQXhxIgcgAEECdCIAQQRBCCAFQQNxIgUbakkNByAFQQAgByAAQSdqSxsNCCAEELQCCxCDCiIFQZjiwQBBBRCsCSIAIAm4EPgJIgQQhApB+NDJAC0AAA0JQfzQyQBBADYCAEH40MkAQQA6AAAgBEGECE8EQCAEEM0HCyAAQYQITwRAIAAQzQcLIAhCADcCBCAIIAU2AgBB4MnJAEHgyckAKAIAQQFqNgIAIAZBQGskAAwKC0HQ7MAAEPwKCwALQcDiwQAQtwgAC0HQ4sEAELcIAAtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggAC0Gw4sEAEKQKAAtB+NDJAEEAOgAAQfzQyQAoAgAhAEH80MkAQQA2AgAgBiAANgIkQcD4yABBKyAGQSRqQdS/wQBB4OLBABCVBwALIAgoAgAgCCgCBCAIKAIIIAhBEGokAAvuAwEKfyMAQRBrIgMkACMAQaADayIBJAACQAJAAkACQAJAAkAgAARAIABBCGsiBCAEKAIAQQFqIgI2AgAgAkUNASAAKAIAIgJB/////wdPDQIgACACQQFqNgIAIAFBCGogAEEEakEAEJgBAn8gASgCCCIJQQJGBEAgASgCDCECIAFBADYCmAMgAUKAgICAEDcCkAMgAUHM9cAANgLQASABQqCAgIAONwLUASABIAFBkANqNgLMASACIAFBzAFqENkEDQUgASgCkAMhBSABKAKUAyIIIAEoApgDEKwJIQcgBQRAIAhBBGsoAgAiBkF4cSIKQQRBCCAGQQNxIgYbIAVqSQ0HIAZBACAKIAVBJ2pLGw0IIAgQtAILIAIgAigCACgCABEDAEEADAELIAFBzAFqIgIgAUEIakHEAfwKAAAgAhDcAQshAiAAIAAoAgBBAWs2AgAgBCAEKAIAQQFrIgA2AgAgAEUEQCAEEJgHCyADIAc2AgQgAyACNgIAIAMgCUECRjYCCCABQaADaiQADAYLEN4KCwALEOAKAAtBjJvGAEE3IAFBnwNqQeT1wABBxJvGABCVBwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyADKAIAIAMoAgQgAygCCCADQRBqJAAL5AEBBX8jAEEQayIBJAAjAEEQayIDJAACQAJAAkAgAARAIABBCGsiBCAEKAIAQQFqIgI2AgAgAkUNASAAKAIAIgJB/////wdPDQIgACACQQFqNgIAIANBCGogAEEEahCvBSADKAIMIQIgAygCCCEFIAAgACgCAEEBazYCACAEIAQoAgBBAWsiADYCACAARQRAIAQQmAcLIAEgBUEBcSIANgIIIAEgAkEAIAAbNgIEIAFBACACIAAbNgIAIANBEGokAAwDCxDeCgsACxDgCgALIAEoAgAgASgCBCABKAIIIAFBEGokAAuaBQEKfyMAQRBrIgMkACMAQbADayIBJAACQAJAAkACQAJAAkAgAARAIABBCGsiBSAFKAIAQQFqIgI2AgAgAkUNASAAKAIAIgJB/////wdPDQIgACACQQFqNgIAIAAtAFwiAkECRwRAIAFBIGogAEHYAGooAgA2AgAgAUEYaiAAQdAAaikCADcDACABQQZqIABB3wBqLQAAOgAAIAEgAP0AAkD9CwMIIAEgAC8AXTsBBAsgAUH4AWogAUEgaigCADYCACABQfABaiABQRhqKQMANwMAIAFB/wFqIAFBBmotAAA6AAAgASAB/QADCP0LA+ABIAEgAjoA/AEgASABLwEEOwD9ASABQSRqIABBBGpBACABQeABaiIEEFYCfyABKAIkIglBAkYEQCABKAIoIQIgAUEANgKoAyABQoCAgIAQNwKgAyABQcz1wAA2AuQBIAFCoICAgA43AugBIAEgAUGgA2o2AuABIAIgBBDZBA0FIAEoAqADIQQgASgCpAMiCCABKAKoAxCsCSEHIAQEQCAIQQRrKAIAIgZBeHEiCkEEQQggBkEDcSIGGyAEakkNByAGQQAgCiAEQSdqSxsNCCAIELQCCyACIAIoAgAoAgARAwBBAAwBCyABQeABaiICIAFBJGpBvAH8CgAAIAIQ3gELIQIgACAAKAIAQQFrNgIAIAUgBSgCAEEBayIANgIAIABFBEAgBRCXBwsgAyAHNgIEIAMgAjYCACADIAlBAkY2AgggAUGwA2okAAwGCxDeCgsACxDgCgALQYybxgBBNyABQa8DakHk9cAAQcSbxgAQlQcAC0Hgi8gAQS5BkIzIABCiCAALQaCMyABBLkHQjMgAEKIIAAsgAygCACADKAIEIAMoAgggA0EQaiQAC+QBAQV/IwBBEGsiASQAIwBBEGsiAyQAAkACQAJAIAAEQCAAQQhrIgQgBCgCAEEBaiICNgIAIAJFDQEgACgCACICQf////8HTw0CIAAgAkEBajYCACADQQhqIABBBGoQnAQgAygCDCECIAMoAgghBSAAIAAoAgBBAWs2AgAgBCAEKAIAQQFrIgA2AgAgAEUEQCAEEJcHCyABIAVBAXEiADYCCCABIAJBACAAGzYCBCABQQAgAiAAGzYCACADQRBqJAAMAwsQ3goLAAsQ4AoACyABKAIAIAEoAgQgASgCCCABQRBqJAAL7QMBCn8jAEEQayIDJAAjAEGgA2siASQAAkACQAJAAkACQAJAIAAEQCAAQQhrIgQgBCgCAEEBaiICNgIAIAJFDQEgACgCACICQf////8HTw0CIAAgAkEBajYCACABQQhqIABBBGpBABBbAn8gASgCCCIJQQJGBEAgASgCDCECIAFBADYCmAMgAUKAgICAEDcCkAMgAUHM9cAANgLQASABQqCAgIAONwLUASABIAFBkANqNgLMASACIAFBzAFqENkEDQUgASgCkAMhBSABKAKUAyIIIAEoApgDEKwJIQcgBQRAIAhBBGsoAgAiBkF4cSIKQQRBCCAGQQNxIgYbIAVqSQ0HIAZBACAKIAVBJ2pLGw0IIAgQtAILIAIgAigCACgCABEDAEEADAELIAFBzAFqIgIgAUEIakHEAfwKAAAgAhDcAQshAiAAIAAoAgBBAWs2AgAgBCAEKAIAQQFrIgA2AgAgAEUEQCAEEJcHCyADIAc2AgQgAyACNgIAIAMgCUECRjYCCCABQaADaiQADAYLEN4KCwALEOAKAAtBjJvGAEE3IAFBnwNqQeT1wABBxJvGABCVBwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyADKAIAIAMoAgQgAygCCCADQRBqJAAL7QMBCn8jAEEQayIDJAAjAEGgA2siASQAAkACQAJAAkACQAJAIAAEQCAAQQhrIgQgBCgCAEEBaiICNgIAIAJFDQEgACgCACICQf////8HTw0CIAAgAkEBajYCACABQQhqIABBBGpBARBbAn8gASgCCCIJQQJGBEAgASgCDCECIAFBADYCmAMgAUKAgICAEDcCkAMgAUHM9cAANgLQASABQqCAgIAONwLUASABIAFBkANqNgLMASACIAFBzAFqENkEDQUgASgCkAMhBSABKAKUAyIIIAEoApgDEKwJIQcgBQRAIAhBBGsoAgAiBkF4cSIKQQRBCCAGQQNxIgYbIAVqSQ0HIAZBACAKIAVBJ2pLGw0IIAgQtAILIAIgAigCACgCABEDAEEADAELIAFBzAFqIgIgAUEIakHEAfwKAAAgAhDcAQshAiAAIAAoAgBBAWs2AgAgBCAEKAIAQQFrIgA2AgAgAEUEQCAEEJcHCyADIAc2AgQgAyACNgIAIAMgCUECRjYCCCABQaADaiQADAYLEN4KCwALEOAKAAtBjJvGAEE3IAFBnwNqQeT1wABBxJvGABCVBwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyADKAIAIAMoAgQgAygCCCADQRBqJAAL+FMDHX8EfgF8IwBBEGsiGiQAEIUFIgIgACYBIwBB8AdrIgEkACABQZwBaiACIh0Q4gYgASgCoAEhHAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAKkASIDQQdNBEBBgQghAgwBCyABIBwoAAAiCzYCmAICfCALQdKCkYIDRwRAIAFBATYC7AUgAUGwgsgANgLoBSABQQE2AtwFIAFBqILIADYC2AUgAUEBNgLkBSABIAFBmAJqrUKAgICAoAOENwOwBCABIAFBsARqNgLgBSABQZwCaiICIAFB2AVqEOYGQQMhBCACEMMHIQNEAAAAAAAAAAAMAQsgHCgABCINQQhqIgsgA0sEQEECIQREAAAAAAAAAAAMAQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIA1BeEkEQEEAIQMgAUEANgKoAyABIA02AqQDIAEgHEEIaiIENgKgAyABQYABOgCsAyABQQA2ApwDIAFCgICAgBA3ApQDAkACQCABQShqIAQgDSANBH8DQCADIARqLQAAIgJBCWsiC0EXS0EBIAt0QZOAgARxRXINAiANIANBAWoiA0cNAAsgASANNgKoAyANQQFqBUEBCyICIA0gAiANSRsQhgIgASgCLCELIAEoAighAkEUEH4iAw0BDB0LIAEgAzYCqAMCQCACQdsARwRAIAJB+wBGDQEgAUGUA2ogAUHvB2pBjMfHABD7ASEDDA4LIAFB/wA6AKwDIAEgA0EBajYCqAMgAUEBOgDwBiABIAFBlANqNgLsBiABQdgFaiABQewGahDHAyABLQDYBUEBRgRAIAEoAtwFIQNBAiEEDAwLAkACQAJAAkACQAJAAkACQAJAAkACQCABLQDZBUEBRgRAIAFBOGogASgC7AYQvQMgASgCPCELIAEoAjhBAXEEQCALIQNBAiEEDBgLIAFB2AVqIAFB7AZqEMcDIAEtANgFQQFGBEAgASgC3AUhA0ECIQQMGAsgAS0A2QVBAUcNAyABKALsBhD1ASIDDQEgAUHYBWogAUHsBmoQxwMgAS0A2AVBAUcNAiABKALcBSEDQQIhBAwXC0EAQYiJyAAQkAchAwtBAiEEDBULIAEtANkFQQFHDQIgAUHYBWogASgC7AYQ3QMgASgC2AVBAUcNASABKALcBSEDQQIhBAwUC0EBQYiJyAAQkAchA0ECIQQMEwsgASkD4AUhICABQdgFaiABQewGahDHAyABLQDYBUEBRgRAIAEoAtwFIQNBAiEEDBMLIAEtANkFQQFHDQIgAUHYBWogASgC7AYQuQIgASgC2AUiCkECRw0BIAEoAtwFIQNBAiEEDBILQQJBiInIABCQByEDQQIhBAwRCyABKALcBSEIIAFB2AVqIgMgAUHsBmoQxwMgAS0A2AUNDyABLQDZBUEBRw0CIAMgASgC7AYQjgIgAS0A2AVBAUcNASABKALcBSEDQQIhBAwQC0EDQYiJyAAQkAchA0ECIQQMDwsgAS0A2QUhAiABQdgFaiABQewGahDHAyABLQDYBUEBRgRAIAEoAtwFIQNBAiEEDA8LIAEtANkFQQFHDQEgAUHYBWogASgC7AYQuQJBAiEEIAEoAtgFIgZBAkYEQCABKALcBSEDDA8LIAEoAtwFIQ4gAUHYBWohDyMAQRBrIgkkACAJIAFB7AZqIgMQxwMCQCAJLQAAQQFGBEAgDyAJKAIENgIIIA9CAjcDAAwBCyAJLQABRQRAIA9CADcDAAwBCyAJIAMoAgAQ3QMgCSgCAEEBRgRAIA8gCSgCBDYCCCAPQgI3AwAMAQsgDyAJKQMINwMIIA9CATcDAAsgCUEQaiQAIAEoAuAFIQ8gASkD2AUiH0ICUg0CIA8hAwwOC0EEQYiJyAAQkAchA0ECIQQMDQtBBUGIicgAEJAHIQNBAiEEDAwLAkACQCAfp0EBcQRAIAE1AuQFIR8gAUHYBWohByMAQRBrIgkkACAJQQRqIAFB7AZqIgMQxwMCQCAJLQAEQQFGBEAgByAJKAIINgIEIAdBgYCAgHg2AgAMAQsgCS0ABUUEQCAHQYCAgIB4NgIADAELIAlBBGogAygCABCEASAJKAIEQYCAgIB4RgRAIAcgCSgCCDYCBCAHQYGAgIB4NgIADAELIAcgCSkCBDcCACAHQQhqIAlBDGooAgA2AgALIAlBEGokACABKALcBSEDIAEoAtgFIgdBgICAgHhrDgIBDgILQQZBiInIABCQByEDDA0LQQdBiInIABCQByEDDAwLIAEgASgC4AU2AvwGIAEgAzYC+AYgASAHNgL0BiABQdgFaiIJIQcjAEFAaiIRJAAgEUEEaiABQewGaiIDEMcDAkAgES0ABEEBRgRAIAcgESgCCDYCBCAHQQQ2AgAMAQsgES0ABUUEQCAHQQM2AgAMAQsgEUEEaiADKAIAEJMBIBEoAgRBA0YEQCAHIBEoAgg2AgQgB0EENgIADAELIAcgEf0AAgT9CwIAIAdBOGogEUE8aigCADYCACAHQTBqIBFBNGopAgA3AgAgB0EgaiARQSRq/QACAP0LAgAgB0EQaiARQRRq/QACAP0LAgALIBFBQGskACABKALcBSEHIAEoAtgFIhdBBEYNCCABQbAHaiABQZAGaigCADYCACABQaAHaiABQYAGav0AAgD9CwMAIAFBkAdqIAFB8AVq/QACAP0LAwAgASAB/QAC4AX9CwOABwJAAkACQAJAIBdBA0cEQCMAQRBrIhMkACATQQhqIAMQxwMCQCATLQAIQQFGBEAgCSATKAIMNgIEIAlBAzYCAAwBCyATLQAJRQRAIAlBAjYCAAwBCyATQQhqIAMoAgAQwQQgEygCCCIDQQJGBEAgCSATKAIMNgIEIAlBAzYCAAwBCyAJIBMoAgw2AgQgCSADNgIACyATQRBqJAAgASgC3AUiGyEDIAEoAtgFIhNBAmsOAgIOAQtBCEGIicgAEJAHIQMMDQsgAUHYBWohBSMAQRBrIgkkACAJQQRqIAFB7AZqIgMQxwMCQCAJLQAEQQFGBEAgBSAJKAIINgIEIAVBgoCAgHg2AgAMAQsgCS0ABUUEQCAFQYGAgIB4NgIADAELIAlBBGogAygCABD4AiAJKAIEQYGAgIB4RgRAIAUgCSgCCDYCBCAFQYKAgIB4NgIADAELIAUgCSkCBDcCACAFQQhqIAlBDGooAgA2AgALIAlBEGokACABKALcBSEDIAEoAtgFIgVB/////wdqDgICDAELQQlBiInIABCQByEDDAsLIA+tIB9CIIaEIR8gASgC4AUhECABQZgFaiABQfwGaigCADYCACABQbAFaiABQZAHav0AAwD9CwMAIAFBwAVqIAFBoAdq/QADAP0LAwAgAUHQBWogAUGwB2ooAgA2AgAgASABKQL0BjcDkAUgASAB/QADgAf9CwOgBSADIRQgCCEDIAohBAwMC0EKQYiJyAAQkAchAwwJCyABQf8AOgCsAyABIANBAWo2AqgDIAFBAToA+AYgASABQZQDajYC9AYgAUHgBWohFkGBgICAeCEXQYCAgIB4IQVBAiEYQQMhD0ECIRJBAyERQQIhGQNAIAUhByAEIQ4gBiELIAFB2AVqIgIgAUH0BmoQ5wIgAS0A2AVBAUYNAwJ/AkACQAJAAkACQAJAIAEtANkFQQFGBEAgASgC9AYiDEEANgIIIAwgDCgCFEEBajYCFCACIAxBDGogDBCPAiABKALcBSECIAEoAtgFQQJGDQwCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAuAFQQRrDgoDAAUBGgQaBhoCGgsgAkGyh8gAQQUQkAhFDQggAkGbiMgAQQUQkAgNGSAZQQJGDQlBm4jIAEEFENEHIQIMHwsgAkGQiMgAQQcQkAhFDQUgAkGgiMgAQQcQkAhFDQkgAkGg28cAQQcQkAgNGCAXQYGAgIB4Rg0RQaDbxwBBBxDRByEDIAchCCAXQYCAgIB4ckGAgICAeEYNICAUIBdBARDWBwwgCyACQbCIyABBDRCQCEUNCiACQcOIyABBDRCQCA0XIA9BA0YNDEHDiMgAQQ0Q0QchAgwdCyACKAAAQfTywasGRg0EDBYLIAJBp4jIAEEJEJAIDRUgEkECRg0HQaeIyABBCRDRByECDBsLIAJBvYjIAEEGEJAIDRQgB0GAgICAeEYNCEG9iMgAQQYQ0QchAgwaCyACQdCIyABBCxCQCA0TIBhBAkYNCUHQiMgAQQsQ0QchAgwZCyAIBEBBkIjIAEEHENEHIQIMGQsgDCgCDCEEAn8CQAJAAkAgDCgCFCICIAwoAhAiBUkEQANAAkAgAiAEai0AAEEJaw4yAAADAwADAwMDAwMDAwMDAwMDAwMDAwMAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwUDCyAMIAJBAWoiAjYCFCACIAVHDQALIAUhAgsgAUHIAGogBCAFIAJBAWoiAiAFIAIgBUkbEIYCIAEoAkwhBCABKAJIIQJBFBB+IgpFDTUgCkEDNgIADAELIAFBQGsgBCAFIAJBAWoiAiAFIAIgBUkbEIYCIAEoAkQhBCABKAJAIQJBFBB+IgpFDTQgCkEGNgIACyAKIAI2AgwgCiAENgIQQQEMAQsgDCACQQFqNgIUIAFB0ABqIAwQvQMgASgCVCEKIAEoAlALQQEhCCALIQYgDiEEIAchBUEBcUUNFCAKIQIMGAsgCQ0MIAwoAgwhBgJAAkAgDCgCFCICIAwoAhAiBUkEQANAAkAgAiAGai0AAEEJaw4yAAADAwADAwMDAwMDAwMDAwMDAwMDAwMAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIDCyAMIAJBAWoiAjYCFCACIAVHDQALIAUhAgsgAUHgAGogBiAFIAJBAWoiAiAFIAIgBUkbEIYCIAEoAmQhAyABKAJgIQRBFBB+IgJFDTIgAkEDNgIADAELIAFB2ABqIAYgBSACQQFqIgIgBSACIAVJGxCGAiABKAJcIQMgASgCWCEEQRQQfiICRQ0xIAJBBjYCAAsgAiAENgIMIAIgAzYCEAwXCyAhUEUEQEGyh8gAQQUQ0QchAgwXCyABQdgFaiAMEN8FIAEpA+AFIR9CASEhIAEoAtgFQQFHDRIMFQsgAUHYBWogDBDgBSABKALcBSEDIAEoAtgFIhlBAkcNESADIQIMFQsgEUEDRwRAQaCIyABBBxDRByECDBULIAFB2AVqIAwQ4QUgAS0A2QUhESABLQDYBUEBRw0QDBMLIAFB2AVqIAwQ4AUgASgC3AUhGyABKALYBSISQQJHDQ8gGyECDBMLIB5QRQRAQbCIyABBDRDRByECDBMLIAFB2AVqIAwQ3wUgASkD4AUhIEIBIR4gASgC2AVBAUcNDgwRCyAMKAIMIQYCQAJAAkACQCAMKAIUIgIgDCgCECIFSQRAA0ACQCACIAZqLQAAQQlrDjIAAAMDAAMDAwMDAwMDAwMDAwMDAwMDAwADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBQMLIAwgAkEBaiICNgIUIAIgBUcNAAsgBSECCyABQYABaiAGIAUgAkEBaiICIAUgAiAFSRsQhgIgASgChAEhAyABKAKAASECQRQQfiIERQ0uIARBAzYCAAwBCyABQfgAaiAGIAUgAkEBaiICIAUgAiAFSRsQhgIgASgCfCEDIAEoAnghAkEUEH4iBEUNLSAEQQY2AgALIAQgAjYCDCAEIAM2AhAMAQsgDCACQQFqNgIUIAFB2AVqIAwQhAEgASgC4AUhBiABKALcBSEEIAEoAtgFIgVBgICAgHhHDQ4LQYCAgIB4IQggBCECDBILIAwoAgwhBgJAAkAgDCgCFCICIAwoAhAiBUkEQANAAkAgAiAGai0AAEEJaw4yAAADAwADAwMDAwMDAwMDAwMDAwMDAwMAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQDCyAMIAJBAWoiAjYCFCACIAVHDQALIAUhAgsgAUHwAGogBiAFIAJBAWoiAiAFIAIgBUkbEIYCIAEoAnQhAyABKAJwIQRBFBB+IgJFDSsgAkEDNgIADAsLIAFB6ABqIAYgBSACQQFqIgIgBSACIAVJGxCGAiABKAJsIQMgASgCaCEEQRQQfiICRQ0qIAJBBjYCAAwKCyAMIAJBAWo2AhQgAUHYBWogDBCTASABKALcBSEQIAEoAtgFIg9BA0cNASAQIQIMEAsgDCgCDCEGAkACQAJAIAwoAhQiAiAMKAIQIgVJBEADQAJAIAIgBmotAABBCWsOMgAAAwMAAwMDAwMDAwMDAwMDAwMDAwMDAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFAwsgDCACQQFqIgI2AhQgAiAFRw0ACyAFIQILIAFBkAFqIAYgBSACQQFqIgIgBSACIAVJGxCGAiABKAKUASEDIAEoApABIQRBFBB+IgJFDSsgAkEDNgIADAELIAFBiAFqIAYgBSACQQFqIgIgBSACIAVJGxCGAiABKAKMASEDIAEoAogBIQRBFBB+IgJFDSogAkEGNgIACyACIAQ2AgwgAiADNgIQDBALIAwgAkEBajYCFCABQdgFaiAMEMEEIAEoAtwFIRMgASgC2AUiGEECRw0BIBMhAgwPCyABQbAHaiAWQTBqKAIANgIAIAFBoAdqIBZBIGr9AAIA/QsDACABQZAHaiAWQRBq/QACAP0LAwAgASAW/QACAP0LA4AHCyALIQYgDiEEIAchBQwJCyABQdgFaiAMEOIFIAEoAuAFIRUgASgC3AUhFCABKALYBSIXQYGAgIB4Rw0IIBQhAyAFIQgMDgsgCEEBcUUEQEGQiMgAQQcQzwchAgwMCyAJRQ0CICFQBEBBsofIAEEFEM8HIQIMDAsgHlAEQEGwiMgAQQ0QzwchAgwMC0GAgICAeCEIIAdBgICAgHhGDQNBAiECIA9BA0cEQCABQegHaiABQbAHaigCADYCACABQdgHaiABQaAHav0AAgD9CwMAIAFByAdqIAFBkAdq/QACAP0LAwAgASAB/QACgAf9CwO4ByAPIQILIBJBACASQQJHGyEGIBlBACAZQQJHGyEEQQIgESARQQNGGyEIQYCAgIB4IBcgF0GBgICAeEYbIQUgGEEAIBhBAkcbIRIMDgtBl4jIAEEEENEHIQIMCgtBASEJIAwgAkEBajYCFCAMEPUBDAQLQZeIyABBBBDPByECDAgLQb2IyABBBhDPByECDAgLIAIgBDYCDCACIAM2AhAMBgsgDBCrAQshAiALIQYgDiEEIAchBSACRQ0ACwwDCyADIAI2AgwgA0EFNgIAIAMgCzYCEAwMC0EIIAtBgILIABClCgALIAEoAtwFIQILIAchCAsgF0UgF0GCgICAeEhyRQRAIBQgF0EBENYHCyACIQMLQQIhBAJAIAhBgICAgHhGDQAgCwRAIA5BJGohAgNAIAJBBGsoAgAiBkGAgICAeHJBgICAgHhHBEAgAigCACIUQQRrKAIAIgVBeHEiCkEEQQggBUEDcSIFGyAGakkNGyAFQQAgCiAGQSdqSxsNHCAUELQCCyACQTBqIQIgC0EBayILDQALCyAIRQ0AIA5BBGsoAgAiC0F4cSICIAhBMGwiBkEEQQggC0EDcSILG3JJDRggC0EAIAIgBkEnaksbDRkgDhC0AgsLIAEgAS0ArANBAWo6AKwDIAFBlANqEIoFIQ8gAUGYBmogAUHIB2r9AAMA/QsDACABQagGaiABQdgHav0AAwD9CwMAIAFBuAZqIAFB6AdqKAIANgIAIAEgEDYChAYgASACNgKABiABICA3A/gFIAEgHzcD8AUgASATNgLsBSABIBI2AugFIAEgGzYC5AUgASAGNgLgBSABIAM2AtwFIAEgCDoA2AYgASAPNgLgBiABIAo2AtQGIAEgFTYC0AYgASAUNgLMBiABIAU2AsgGIAEgCzYCxAYgASAONgLABiABIAc2ArwGIAEgAf0AA7gH/QsDiAYgASAENgLYBQJAAkAgBEECRwRAIA8NASABQbAEaiABQeAFakHcAPwKAAAgASABQdAGav0AAwD9CwOgBAwHCyAPDQFBAiEEDAYLIAsEQCAOQSRqIQMDQCADQQRrKAIAIghBgICAgHhyQYCAgIB4RwRAIAMoAgAiBkEEaygCACICQXhxIgRBBEEIIAJBA3EiAhsgCGpJDRogAkEAIAQgCEEnaksbDRsgBhC0AgsgA0EwaiEDIAtBAWsiCw0ACwsgBwRAIA4gB0EwbEEIENYHC0ECIQQgBUGAgICAeHJBgICAgHhHBEAgFCAFQQEQ1gcLIA8hAwwFCyABQeAGahDXBEECIQQMBAsgByEDCyABQfQGahDNBQwBCyABKALcBSEDQQIhBAsgASABLQCsA0EBajoArAMgAUGUA2oQ2wMhCCABQZgGaiABQbAFav0AAwD9CwMAIAFBqAZqIAFBwAVq/QADAP0LAwAgAUG4BmogAUHQBWooAgA2AgAgAUHEBmogAUGYBWooAgA2AgAgASAHNgKEBiABIBc2AoAGIAEgHzcD+AUgASAgNwPwBSABIBs2AuwFIAEgEzYC6AUgASAONgLkBSABIAY2AuAFIAEgAzYC3AUgASAB/QADoAX9CwOIBiABIAEpA5AFNwK8BiABIAQ2AtgFIAEgCDYC4AYgASACOgDYBiABIAs2AtQGIAEgEDYC0AYgASAUNgLMBiABIAU2AsgGAkACQCAEQQJHBEAgCA0BIAFBsARqIAFB4AVqQdwA/AoAACABIAFB0AZq/QADAP0LA6AEIAEoAsQGIQsgASgCwAYhDiABKAK8BiEHDAMLIAgNAUECIQQMAgsgASgCwAYhBwJAIAEoAsQGIgsEQCAHQSRqIQMDQCADQQRrKAIAIgZBgICAgHhyQYCAgIB4RwRAIAMoAgAiBEEEaygCACICQXhxIg5BBEEIIAJBA3EiAhsgBmpJDRcgAkEAIA4gBkEnaksbDQMgBBC0AgsgA0EwaiEDIAtBAWsiCw0ACwsgASgCvAYiAgRAIAcgAkEwbEEIENYHC0ECIQQgBUGAgICAeHJBgICAgHhHBEAgFCAFQQEQ1gcLIAghAwwCCwwUCyABQeAGahDXBEECIQQLIARBAkYNACABQcADaiABQbAEakHcAPwKAAAgASAB/QADoAT9CwOwAwJAIAEoAqgDIgIgASgCpAMiCkkEQCABKAKgAyEIA0AgAiAIai0AAEEJayIGQRdLQQEgBnRBk4CABHFFcg0CIAogAkEBaiICRw0ACyABIAo2AqgDCyABQbgCaiABQcADakHcAPwKAAAgASAB/QADsAP9CwOoAiABKAKUAyICDQQMBQsgASACNgKoAyABQTBqIAggCiACQQFqIgIgCiACIApJGxCGAiABKAI0IQQgASgCMCECQRQQfiIDRQ0QIAMgAjYCDCADQRY2AgAgAyAENgIQAkAgCwRAIA5BJGohBANAIARBBGsoAgAiCkGAgICAeHJBgICAgHhHBEAgBCgCACIIQQRrKAIAIgJBeHEiBkEEQQggAkEDcSICGyAKakkNFSACQQAgBiAKQSdqSxsNAyAIELQCCyAEQTBqIQQgC0EBayILDQALCyAHBEAgDiAHQTBsQQgQ1gcLIAVBgICAgHhyQYCAgIB4Rg0DIBQgBUEBENYHDAMLDBILIAMgAUGUA2oQlgYhAwsgAUG4AmogAUHAA2pB3AD8CgAAIAEgAf0AA7AD/QsDqAILIAEoApQDIgJFDQJBAiEECyABKAKYAyIKQQRrKAIAIgZBeHEiCEEEQQggBkEDcSIGGyACakkNDSAGQQAgCCACQSdqSxsNDiAKELQCCyAEQQJHDQELQQMhBCMAQSBrIgYkACAGQQhqEKMJQSAQfiICRQRAAAsgAkGQvMcANgIAIAIgBikCCDcCBCACIAM2AhwgAkEMaiAGQRBq/QACAP0LAgAgBkEgaiQAIAIhA0QAAAAAAAAAAAwBCyABQbgBaiABQbgCakHcAPwKAAAgASAB/QADqAL9CwOoASANQQdqQXhxQQhquAshIiAEQQNGBEAgAUEANgK4BCABQoCAgIAQNwKwBCABQcz1wAA2AtwFIAFCoICAgA43AuAFIAEgAUGwBGo2AtgFIAMgAUHYBWoQ2QQNAiABKAKwBCEOIAEoArQEIgQgASgCuAQQrAkhAiAOBEAgBEEEaygCACIFQXhxIgdBBEEIIAVBA3EiBRsgDmpJDQsgBUEAIAcgDkEnaksbDQwgBBC0AgsgAyADKAIAKAIAEQMADAYLIAFBsARqIgYgAUG4AWpB3AD8CgAAIAEgAf0AA6gB/QsDuAJBgQghAiAEQQJGDQAgASADNgLcBSABIAQ2AtgFIAFB4AVqIAZB3AD8CgAAIAEgFDYCzAYgASAFNgLIBiABIAs2AsQGIAEgDjYCwAYgASAHNgK8BiABIAH9AAO4Av0LA9AGEIMKIQJB6PPBAEEEEKwJIQYgAUEANgKAByABQdgGai0AACEPIAEoAuAFIAEoAoAGIRAgASgC6AUhGxCDCiESIAEoAtQGuBD4CSEIIBJBkIjIAEEHEPIDIAgQoQlBkInIAEEGEPIDIQggEkGXiMgAQQQQ8gMgCBChCSABIAEpA/AFIh43A7gHIB5C/////////w9WDQIgHroQ+AkhCCASQbKHyABBBRDyAyAIEKEJIAQEQCADuBD4CSEDIBJBm4jIAEEFEPIDIAMQoQkLIA9BAkcEQCASQaCIyABBBxDyA0GCCEGDCCAPQQFxGxChCQsEQCABKALkBbgQ+AkhAyASQaeIyABBCRDyAyADEKEJCyABIAEpA/gFIh43A7gHAkAgHkL/////////D1gEQCAeuhD4CSEDIBJBsIjIAEENEPIDIAMQoQkgAUEgaiEJIAFBgAdqIQQgDiEDQQAhGSMAQTBrIg0kABCCCiEYAkACfwJAIAsEQCADIAtBMGxqIRMgBEECaiERA0AgA0EgaigCACADQQhqKAIAIAMoAgAQgwohFiARLQAAIQQgDSADQRBqKQMAIh43AwgCfyAERQRAIB5CgICAgICAgBBaDQQgHroQ+AkMAQsgHhD5CQshBCAWQaiHyABBBhDyAyAEEKEJIBEtAAAhBCANIANBGGopAwAiHjcDCAJ/IARFBEAgHkKAgICAgICAEFQEQCAeuhD4CQwCCyANQQI2AhQgDUH8rcYANgIQIA1CATcCHCANIA1BCGqtQoCAgIDwA4Q3AyggDSANQShqNgIYIA1BEGoQwgUMBQsgHhD5CQshBCAWQfmiyABBBRDyAyAEEKEJBEAgA0EEaigCACEEAn8gES0AAEUEQCAEuBD4CQwBCyAErRD5CQshBCAWQa6HyABBBBDyAyAEEKEJCwRAIANBDGooAgAhBAJ/IBEtAABFBEAgBLgQ+AkMAQsgBK0Q+QkLIQQgFkGyh8gAQQUQ8gMgBBChCQtBgICAgHhHBEAgA0EkaigCACADQShqKAIAEKwJIQQgFkG3h8gAQQgQ8gMgBBChCQsgGCUBIBkgFiUBIBYQzQcQEiAZQQFqIRkgA0EwaiIDIBNHDQALCyASQb2IyABBBhDyAyAYEKEJQQAhBAwCCyANQQI2AhQgDUH8rcYANgIQIA1CATcCHCANIA1BCGqtQoCAgIDwA4Q3AyggDSANQShqNgIYIA1BEGoQwgULIQMgFkGECE8EQCAWEM0HC0EBIQQgGEGECEkNACAYEM0HCyAJIAM2AgQgCSAENgIAIA1BMGokACABKAIgQQFxRQ0BIAEoAiQhCgwFCyABQQI2AsQDIAFB/K3GADYCwAMgAUIBNwLMAyABIAFBuAdqrUKAgICA8AOENwO4ASABIAFBuAFqNgLIAyABQcADahDCBSEKDAQLAkAgEEECRg0AIAFBGGohCCABQYAHaiEEIwBBEGsiCiQAAkACQAJAIAFBgAZqIhAoAgAiA0ECRwRAEIMKIRUCfyADQQFxBEAgECoCBLsQ+AkMAQtBgQhBgAggBC0AABsLIQMgFUHeicgAQQYQ8gMgAxChCQJ/IBAoAghBAUYEQCAQKgIMuxD4CQwBC0GBCEGACCAELQAAGwshAyAVQeSJyABBBhDyAyADEKEJAn8gECgCEEEBRgRAIBAqAhS7EPgJDAELQYEIQYAIIAQtAAAbCyEDIBVB6onIAEEKEPIDIAMQoQkCfyAQKAIYQQFGBEAgECoCHLsQ+AkMAQtBgQhBgAggBC0AABsLIQMgFUH0icgAQQoQ8gMgAxChCQJ/IBAoAiBBAUYEQCAQKgIkuxD4CQwBC0GBCEGACCAELQAAGwshAyAVQf6JyABBBhDyAyADEKEJIApBCGogBCAVQYSKyAAgECgCKCAQKgIsEKcIQQEhAwJ/IAooAghBAXEEQCAKKAIMDAELIAogBCAVQYqKyAAgECgCMCAQKgI0EKcIIAooAgBBAXFFDQIgCigCBAshECAVQYQISQ0DIBUQzQcMAwtBgQhBgAggBC0AABshFQwBCyAELQAAIQMgEC0AOCEEIBVBkIrIAEEKEPIDQYEIQYAIIANBAXEbQYIIQYMIIARBAXEbIARBAkYbEKEJCyASQcOIyABBDRDyAyAVEKEJQQAhAwsgCCAQNgIEIAggAzYCACAKQRBqJAAgASgCGEEBcUUNACABKAIcIQoMBAsCQCAbRQ0AIAEoAuwFuBD4CSEDIBJB0IjIAEELEPIDIAMQoQkgAUEQakEANgIAIAEoAhBBAXFFDQAgASgCFCEKDAQLAkAgBUGAgICAeEYNACABQQhqIAFBgAdqIQMCfyABQcgGaiIIKAIAQYCAgIB4RwRAIAgoAgQgCCgCCBCsCQwBC0GBCEGACCADLQAAGwshAyASQaDbxwBBBxDyAyADEKEJQQA2AgAgASgCCEEBcUUNACABKAIMIQoMBAsgAiAGIBIQhApB+NDJAC0AAARAQfjQyQBBADoAAEH80MkAKAIAIQpB/NDJAEEANgIADAQLQfzQyQBBADYCAEH40MkAQQA6AAAgEkGECE8EQCASEM0HCyAGQYQITwRAIAYQzQcLIAJB7PPBAEELEKwJIgYgIhD4CSIDEIQKQfjQyQAtAAAEQEH40MkAQQA6AABB/NDJACgCACEKQfzQyQBBADYCACADQYQITwRAIAMQzQcLDAULQfzQyQBBADYCAEH40MkAQQA6AAAgA0GECE8EQCADEM0HCyAGQYQITwRAIAYQzQcLIAsEQCAOQSRqIQMDQCADQQRrKAIAIgRBgICAgHhyQYCAgIB4RwRAIAMoAgAgBEEBENYHCyADQTBqIQMgC0EBayILDQALCyAHBEAgDiAHQTBsQQgQ1gcLIAVBgICAgHhyQYCAgIB4Rg0AIBQgBUEBENYHCyABKAKcASIHBEAgHEEEaygCACIDQXhxIgVBBEEIIANBA3EiAxsgB2pJDQkgA0EAIAUgB0EnaksbDQogHBC0AgtBACEDIB1BgwhNDQYMBQtBjJvGAEE3IAFB7wdqQeT1wABBxJvGABCVBwALIAFBAjYCxAMgAUH8rcYANgLAAyABQgE3AswDIAEgAUG4B2qtQoCAgIDwA4Q3A7gBIAEgAUG4AWo2AsgDIAFBwANqEMIFIQoLIBJBhAhPBEAgEhDNBwsLIAZBgwhLBEAgBhDNBwsgAkGECE8EQCACEM0HCyALBEAgDkEkaiEDA0AgA0EEaygCACIIQYCAgIB4ckGAgICAeEcEQCADKAIAIgZBBGsoAgAiAkF4cSIEQQRBCCACQQNxIgIbIAhqSQ0HIAJBACAEIAhBJ2pLGw0IIAYQtAILIANBMGohAyALQQFrIgsNAAsLIAcEQCAOQQRrKAIAIgJBeHEiBCAHQTBsIgNBBEEIIAJBA3EiAhtySQ0FIAJBACAEIANBJ2pLGw0GIA4QtAILIAVBgICAgHhyQYCAgIB4RwRAIBRBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAVqSQ0FIAJBACADIAVBJ2pLGw0GIBQQtAILIAohAgsgASgCnAEiBwRAIBxBBGsoAgAiA0F4cSIFQQRBCCADQQNxIgMbIAdqSQ0EIANBACAFIAdBJ2pLGw0FIBwQtAILQQEhAyAdQYQISQ0BCyAdEM0HCyAaIAM2AgggGiACQQAgAxs2AgQgGkEAIAIgAxs2AgAgAUHwB2okAAwDCwALQeCLyABBLkGQjMgAEKIIAAtBoIzIAEEuQdCMyAAQoggACyAaKAIAIBooAgQgGigCCCAaQRBqJAALJgACQCAABEAgACgCAEH/////B08NASAAKAJEDwsQ3goACxDgCgALJgACQCAABEAgACgCAEH/////B08NASAAKAJIDwsQ3goACxDgCgALJgACQCAABEAgACgCAEH/////B08NASAAKAJkDwsQ3goACxDgCgALJgACQCAABEAgACgCAEH/////B08NASAAKAJoDwsQ3goACxDgCgALLgAgASgCAEGjw8cAQZjDxwAgACgCAC0AACIAG0EJQQsgABsgASgCBCgCDBEAAAspACAAIAAtAAQgAUEuRnI6AAQgACgCACIAKAIAIAEgACgCBCgCEBECAAusCAEOfyMAQRBrIgokABCFBSIGIAEmASMAQTBrIgIkAAJAAkACQAJAAkACQAJAAkAgACIJBEAgAEEIayILIAsoAgBBAWoiADYCACAARQ0BIAkoAgANAiAJQX82AgAgCUEIaigCACENIAkoAgQhDkHAyckAKAIARQRAAkBBzMnJACgCACEHQcjJyQAoAgAhAEHIyckAQoCAgIAQNwIAQcDJyQAoAgAhBEHAyckAQgE3AgBB0MnJAEEANgIAAkACQCAERSAARXJFBEAgB0EEaygCACIEQXhxIgVBBEEIIARBA3EiBBsgAGpJDQEgBEEAIAUgAEEnaksbDQIgBxC0AgsMAgtB4IvIAEEuQZCMyAAQoggAC0GgjMgAQS5B0IzIABCiCAALC0HEyckAKAIADQNBxMnJAEF/NgIAAkBBgIDAACAGEIYLIgAgAEGAgMAATxsiBEHQyckAKAIAIgBNBEBBzMnJACgCACEFDAELIAQgAGsiA0HIyckAKAIAIABrSwRAQcjJyQAgACADQQFBARDQBUHQyckAKAIAIQALQczJyQAoAgAiBSAAaiEHIANBAk8EfyADQQFrIgMEQCAHQQAgA/wLAAsgBSAAIANqIgBqBSAHC0EAOgAAIABBAWohBAtBACEAQdDJyQAgBDYCAAJAAkACQANAIAAiByAGEIYLIg9PDQEgACAEIAYQhgsgAGsiAyADIARLGyIIaiEAIAYlASAHIAAQGCEBEIUFIgMgASYBIAMQhgshDCACIAg2Aggg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yABBFCABKAIEKAIMEQAACxkAIAEoAgBBx5rGAEECIAEoAgQoAgwRAAALGQAgASgCAEGI4MAAQRQgASgCBCgCDBEAAAsZACABKAIAQcqJyABBFCABKAIEKAIMEQAACxkAIAEoAgBBnODAAEEUIAEoAgQoAgwRAAALGQAgASgCAEHbiMgAQQ4gASgCBCgCDBEAAAsZACABKAIAQYqHyABBDCABKAIEKAIMEQAACxkAIAEoAgBByZrGAEEDIAEoAgQoAgwRAAALEgAgAEEEahCDAyAAQSRqENcECxIAIABBBGoQgwMgAEEcahCLBQsSACAAQQRqEIMDIABBHGoQ1wQLFgAgAEHY/MAANgIEIAAgAUEIajYCAAsZACABKAIAQc+VyABBBSABKAIEKAIMEQAACw4AIAAEQAALIAEQtwgACxYAIABB8PnAADYCBCAAIAFBHGo2AgALFgAgAEGs+sAANgIEIAAgAUEcajYCAAsWACAAQZj4wAA2AgQgACABQRxqNgIACxYAIABB6PrAADYCBCAAIAFBHGo2AgALFgAgAEGk+8AANgIEIAAgAUEcajYCAAsWACAAQeD7wAA2AgQgACABQRxqNgIACxYAIABBnPzAADYCBCAAIAFBHGo2AgALFgAgAEHY/MAANgIEIAAgAUEcajYCAAsTACAAIAAgACgCACIAajYCACAACxQAIAEoAgQaIABBsPbBACABEOQDCxEAIAIoAgQaIAAgASACEOQDCxQAIAEoAgQaIABBtPjBACABEOQDCxQAIAEoAgQaIABB4PfBACABEOQDCxQAIAEoAgQaIABB9PnBACABEOQDCxQAIAEoAgQaIABB5KDCACABEOQDCxQAIAEoAgQaIABB3L3EACABEOQDCxQAIAEgAiADIAQgBSAAKAIAEQcACxQAIAEoAgQaIABB5LjFACABEOQDCxkAIAEoAgBBnMLFAEESIAEoAgQoAgwRAAALFAAgASgCBBogAEH4l8YAIAEQ5AMLFAAgASgCBBogAEHkmsYAIAEQ5AMLFgAgAEHMt8cANgIEIAAgAUEcajYCAAsWACAAQYi4xwA2AgQgACABQRxqNgIACxYAIABBmLbHADYCBCAAIAFBHGo2AgALFgAgAEHUtscANgIEIAAgAUEgajYCAAsZACABKAIAQcS0xwBBDCABKAIEKAIMEQAACxIAIABB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iPnAADYCAAsTACAAQYT9wAA2AgQgACABNgIACxMAIABBwP3AADYCBCAAIAE2AgALEwAgAEH8/cAANgIEIAAgATYCAAsTACAAQbj+wAA2AgQgACABNgIACxMAIABB9P7AADYCBCAAIAE2AgALEwAgAEGw/8AANgIEIAAgATYCAAsTACAAQez/wAA2AgQgACABNgIACxMAIABBqIDBADYCBCAAIAE2AgALEQAgACgCBCAAKAIIIAEQzgILEQAgASgCACABKAIEIAAQ5AMLHAAgAEGYu8/sAzYCCCAAQtDn5vKT68WbPzcCAAsRACAAKAIAIAAoAgQgARDOAgsTACAAQYC5xwA2AgQgACABNgIACxMAIABB8LrHADYCBCAAIAE2AgALEwAgAEG8uccANgIEIAAgATYCAAsTACAAQbS6xwA2AgQgACABNgIACxMAIABBxLjHADYCBCAAIAE2AgALEwAgAEH4uccANgIEIAAgATYCAAsTACAAQay7xwA2AgQgACABNgIACxMAIABB5JnIADYCBCAAIAE2AgALFgBB/NDJACAANgIAQfjQyQBBAToAAAsRAQF/EIUFIgEgACUBJgEgAQsOACAAJQEgASUBQQAQEwtpAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0ECNgIMIANBhLfCADYCCCADQgI3AhQgAyADQQRqrUKAgICAEIQ3AyggAyADrUKAgICAEIQ3AyAgAyADQSBqNgIQIANBCGogAhDKCAALaQEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBAjYCDCADQeS2wgA2AgggA0ICNwIUIAMgA0EEaq1CgICAgBCENwMoIAMgA61CgICAgBCENwMgIAMgA0EgajYCECADQQhqIAIQyggACw8AQbWewgBBKyAAEKIIAAtpAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0ECNgIMIANBuLfCADYCCCADQgI3AhQgAyADQQRqrUKAgICAEIQ3AyggAyADrUKAgICAEIQ3AyAgAyADQSBqNgIQIANBCGogAhDKCAALDwAgACgCACgCACABEKoFC2kBAX8jAEEwayIDJAAgAyAANgIEIAMgATYCACADQQM2AgwgA0GcuMIANgIIIANCAjcCFCADIANBBGqtQoCAgIAQhDcDKCADIAOtQoCAgIAQhDcDICADIANBIGo2AhAgA0EIaiACEMoIAAsNAEEDQQIgAC0AkwEbCwwAIAAlASABIAIQBAsNACAAJQEgASUBEAcaCwwAIAAgASACJQEQFAsMACAAIAEgAiUBEBkLZAIBfwFvQfDLyQAoAgBFBEAQ/gMLQfTLyQAoAgAEQEHQ7MAAEPwKAAtB9MvJAEF/NgIAQfzLyQAoAgBBgMzJACgCABCrCSEAQfTLyQBB9MvJACgCAEEBajYCACAAJQEgABDNBwtkAgF/AW9B8MvJACgCAEUEQBD+AwtB9MvJACgCAARAQdDswAAQ/AoAC0H0y8kAQX82AgBBiMzJACgCAEGMzMkAKAIAEKsJIQBB9MvJAEH0y8kAKAIAQQFqNgIAIAAlASAAEM0HCxEAIABBgOnAAP0AAgD9CwIACxEAIABBkOnAAP0AAgD9CwIACxEAIABBoOnAAP0AAgD9CwIACxEAIABBsOnAAP0AAgD9CwIACxEAIABBwOnAAP0AAgD9CwIACxEAIABB0OnAAP0AAgD9CwIACxEAIABB4OnAAP0AAgD9CwIACxEAIABB8OnAAP0AAgD9CwIACxEAIABBgOrAAP0AAgD9CwIACxEAIABBkOrAAP0AAgD9CwIACxEAIABBoOrAAP0AAgD9CwIACxEAIABBsOrAAP0AAgD9CwIACxEAIABBwOrAAP0AAgD9CwIACxEAIABB0OrAAP0AAgD9CwIACxEAIABB4OrAAP0AAgD9CwIACxEAIABB8OrAAP0AAgD9CwIACxEAIABBgOvAAP0AAgD9CwIACxEAIABBkOvAAP0AAgD9CwIACxEAIABBoOvAAP0AAgD9CwIACxEAIABBsOvAAP0AAgD9CwIACxEAIABBwOvAAP0AAgD9CwIACxEAIABB0OvAAP0AAgD9CwIACxEAIABB4OvAAP0AAgD9CwIACxEAIABB8OvAAP0AAgD9CwIACxEAIABBgOzAAP0AAgD9CwIACxEAIABBkOzAAP0AAgD9CwIACxEAIABBoOzAAP0AAgD9CwIACxEAIABBsOzAAP0AAgD9CwIACwwAIAAoAgAgARCqBQsOACAAQeSCwQAgARDkAwsOACAAQcz1wAAgARDkAwsKACAAQQRqEIMDCwoAIABBCGoQ1wQLEQAgAEGU9sAA/QACAP0LAgALEQAgAEGk9sAA/QACAP0LAgALEQAgAEGYqMcA/QACAP0LAgALEQAgAEG09sAA/QACAP0LAgALEQAgAEHE9sAA/QACAP0LAgALEQAgAEG4p8cA/QACAP0LAgALEQAgAEHU9sAA/QACAP0LAgALEQAgAEHk9sAA/QACAP0LAgALEQAgAEGIqMcA/QACAP0LAgALEQAgAEHYqMcA/QACAP0LAgALEQAgAEHop8cA/QACAP0LAgALEQAgAEH09sAA/QACAP0LAgALEQAgAEHoqMcA/QACAP0LAgALEQAgAEH4p8cA/QACAP0LAgALDQBBtKDIAEEbEN8KAAsJACAAIAEQLAALDgBBz6DIAEHPABDfCgALDAAgACABKQIENwMACwsAIAAoAgAgARB1Cw4AIAFB/Z3CAEEgEL4DCw4AIAFBnZ7CAEEYEL4DCxEAIABBqKjHAP0AAgD9CwIACw4AIAFB6KHIAEECEL4DCwwAIAAoAgAgARC2BQsMACAAKAIAIAEQugILEQAgAEGUvsQA/QACAP0LAgALEQAgAEGkvsQA/QACAP0LAgALDAAgACgCACABEMoECwwAIAAoAgAgARCmBQsRACAAQainxwD9AAIA/QsCAAsRACAAQcioxwD9AAIA/QsCAAsRACAAQfimxwD9AAIA/QsCAAsRACAAQcinxwD9AAIA/QsCAAsKACAAQSBqEOgDCw0AIAAgASkChAE3AwALEQAgAEGYp8cA/QACAP0LAgALEQAgAEGIp8cA/QACAP0LAgALEQAgAEHYp8cA/QACAP0LAgALEQAgAEG4qMcA/QACAP0LAgALEQAgAEHgisgA/QACAP0LAgALDAAgACABKQIANwMACxEAIABB8IrIAP0AAgD9CwIACwoAIAAgASUBEA8LTQEBfyMAQTBrIgEkACABQQE2AgwgAUHwjsgANgIIIAFCATcCFCABIAFBL2qtQoCAgIDgBoQ3AyAgASABQSBqNgIQIAFBCGogABDKCAALTQEBfyMAQTBrIgEkACABQQE2AgwgAUHwjsgANgIIIAFCATcCFCABIAFBL2qtQoCAgIDQBoQ3AyAgASABQSBqNgIQIAFBCGogABDKCAALCQAgAEIBNwMACwkAIABBADYCAAsIACAAIAEQdQsKACAAQYABEPgECxIAIABChoCAgICAgICAfzcDAAvkCwIFfQZ/An1DAACAPyECAkACQAJAAkAgALwi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c3JjL3N0ci9sb3NzeS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvRG9jdW1lbnRzL05hdlZpcy9yZXBvcy9zcGFyay1jbG9jay10aW1lci9ydXN0L3NwYXJrLWxpYi9zcmMvcGx5LnJzAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI1L3NyYy9sZWdhY3kucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9pdGVyL2FkYXB0ZXJzL3N0ZXBfYnkucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWVtY2hyLTIuNy42L3NyYy9hcmNoL2FsbC90d293YXkucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pbmRleC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9pbmZsYXRlL3dpbmRvdy5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy95dXYucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZmx0MmRlYy9zdHJhdGVneS9ncmlzdS5ycwBzcGFyay1ycy9zcmMvcmF5Y2FzdC5ycwBsaWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc2hhcmVkL3NtYWxsc29ydC5ycwAvcnVzdGMvMTE1OWU3OGM0NzQ3YjAyZWY5OTZlNTUwODJiNzA0YzA5Yjk3MDU4OC9saWJyYXJ5L2NvcmUvc3JjL3NsaWNlL3NvcnQvc3RhYmxlL3F1aWNrc29ydC5ycwBzcGFyay1ycy9zcmMvc29ydC5ycwAvcnVzdGMvMTE1OWU3OGM0NzQ3YjAyZWY5OTZlNTUwODJiNzA0YzA5Yjk3MDU4OC9saWJyYXJ5L2FsbG9jL3NyYy9ib3hlZC9jb252ZXJ0LnJzAGxpYnJhcnkvYWxsb2Mvc3JjL2ZtdC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9mbXQucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vZGl5X2Zsb2F0LnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci9Eb2N1bWVudHMvTmF2VmlzL3JlcG9zL3NwYXJrLWNsb2NrLXRpbWVyL3J1c3Qvc3BhcmstbGliL3NyYy90c3BsYXQucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyL0RvY3VtZW50cy9OYXZWaXMvcmVwb3Mvc3BhcmstY2xvY2stdGltZXIvcnVzdC9zcGFyay1saWIvc3JjL2tzcGxhdC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvRG9jdW1lbnRzL05hdlZpcy9yZXBvcy9zcGFyay1jbG9jay10aW1lci9ydXN0L3NwYXJrLWxpYi9zcmMvYW50aXNwbGF0LnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci9Eb2N1bWVudHMvTmF2VmlzL3JlcG9zL3NwYXJrLWNsb2NrLXRpbWVyL3J1c3Qvc3BhcmstbGliL3NyYy9nc3BsYXQucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyL0RvY3VtZW50cy9OYXZWaXMvcmVwb3Mvc3BhcmstY2xvY2stdGltZXIvcnVzdC9zcGFyay1saWIvc3JjL2NzcGxhdC5ycwBzcGFyay1ycy9zcmMvZXh0X3NwbGF0cy5ycwBzcGFyay1ycy9zcmMvcGFja2VkX3NwbGF0cy5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9mZGVmbGF0ZS0wLjMuNy9zcmMvZGVjb21wcmVzcy5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9sb3NzbGVzcy5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9jb3JlLTEuMC4yMjgvc3JjL2RlL2ltcGxzLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci9Eb2N1bWVudHMvTmF2VmlzL3JlcG9zL3NwYXJrLWNsb2NrLXRpbWVyL3J1c3Qvc3BhcmstbGliL3NyYy9zb2dzLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2luZmxhdGUvaW5mdHJlZXMucnMAbGlicmFyeS9zdGQvc3JjL3N5cy9zeW5jL211dGV4L25vX3RocmVhZHMucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9zdGQvc3JjL3N5cy9zeW5jL29uY2Uvbm9fdGhyZWFkcy5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9zdHIucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9pdGVyL3RyYWl0cy9pdGVyYXRvci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9hbnlob3ctMS4wLjk4L3NyYy9lcnJvci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL2Vycm9yLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLTAuMjUuMTAvc3JjL2NvbG9yLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9nZW5lcmljL3BhY2tlZHBhaXIucnMAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9tZW1jaHIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2Utd2VicC0wLjIuNC9zcmMvbG9vcF9maWx0ZXIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvaW5mbGF0ZS93cml0ZXIucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pdGVyLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2luZGV4bWFwLTIuMTMuMC9zcmMvaW5uZXIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWluaXpfb3hpZGUtMC44Ljkvc3JjL2luZmxhdGUvb3V0cHV0X2J1ZmZlci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3VuZmlsdGVyaW5nX2J1ZmZlci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9pbWFnZXMvYnVmZmVyLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvcmVhZF9kZWNvZGVyLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL3ZwOF9hcml0aG1ldGljX2RlY29kZXIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvaW1hZ2UtMC4yNS4xMC9zcmMvY29kZWNzL3dlYnAvZGVjb2Rlci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvRG9jdW1lbnRzL05hdlZpcy9yZXBvcy9zcGFyay1jbG9jay10aW1lci9ydXN0L3NwYXJrLWxpYi9zcmMvZGVjb2Rlci5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy9kZWNvZGVyLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvcmVhZC9tYWdpY19maW5kZXIucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9jbXAucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9leHRyYV9maWVsZHMvZXh0ZW5kZWRfdGltZXN0YW1wLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLTAuMjUuMTAvc3JjL21ldGFkYXRhL2NpY3AucnMAbGlicmFyeS9zdGQvc3JjL2lvL3N0ZGlvLnJzAC9ydXN0Yy8xMTU5ZTc4YzQ3NDdiMDJlZjk5NmU1NTA4MmI3MDRjMDliOTcwNTg4L2xpYnJhcnkvY29yZS9zcmMvc3RyL3BhdHRlcm4ucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvY29tbW9uLnJzAC9ydXN0Yy8xMTU5ZTc4YzQ3NDdiMDJlZjk5NmU1NTA4MmI3MDRjMDliOTcwNTg4L2xpYnJhcnkvY29yZS9zcmMvb3BzL2Z1bmN0aW9uLnJzAGxpYnJhcnkvY29yZS9zcmMvbnVtL2ZsdDJkZWMvc3RyYXRlZ3kvZHJhZ29uLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ZkZWZsYXRlLTAuMy43L3NyYy9odWZmbWFuLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2h1ZmZtYW4ucnMAbGlicmFyeS9jb3JlL3NyYy9udW0vYmlnbnVtLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2xvc3NsZXNzX3RyYW5zZm9ybS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3RyYW5zZm9ybS5ycwBsaWJyYXJ5L3N0ZC9zcmMvaW8vYnVmZmVyZWQvbGluZXdyaXRlcnNoaW0ucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci9zdHJlYW0ucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwBsaWJyYXJ5L3N0ZC9zcmMvc3luYy9sYXp5X2xvY2sucnMAbGlicmFyeS9zdGQvc3JjL3N5bmMvcmVlbnRyYW50X2xvY2sucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9zdGQvc3JjL3N5bmMvb25jZV9sb2NrLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLTAuMjUuMTAvc3JjL2NvZGVjcy9wbmcucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAGxpYnJhcnkvc3RkL3NyYy9wYW5pY2tpbmcucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9jb3JlL3NyYy9pby9ib3Jyb3dlZF9idWYucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTcvc3JjL2V4dGVybnJlZi5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9wbmctMC4xOC4xL3NyYy9kZWNvZGVyL3RyYW5zZm9ybS9wYWxldHRlLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3psaWItcnMtMC42LjMvc3JjL2luZmxhdGUucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemxpYi1ycy0wLjYuMy9zcmMvYWxsb2NhdGUucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbWluaXpfb3hpZGUtMC44Ljkvc3JjL2luZmxhdGUvY29yZS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS0wLjI1LjEwL3NyYy9pby9pbWFnZV9yZWFkZXJfdHlwZS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9zdGFibGUucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3ByaW50YWJsZS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvRG9jdW1lbnRzL05hdlZpcy9yZXBvcy9zcGFyay1jbG9jay10aW1lci9ydXN0L3NwYXJrLWxpYi9zcmMvY2h1bmtfdHJlZS5ycwBzcGFyay1ycy9zcmMvbG9kX3RyZWUucnMAc3BhcmstbGliL3NyYy9zcGxhdF9lbmNvZGUucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtMS4wLjIyOC9zcmMvcHJpdmF0ZS9kZS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xNDUvc3JjL2RlLnJzAC9ydXN0Yy8xMTU5ZTc4YzQ3NDdiMDJlZjk5NmU1NTA4MmI3MDRjMDliOTcwNTg4L2xpYnJhcnkvc3RkL3NyYy9zeW5jL3BvaXNvbi9vbmNlLnJzAC9ydXN0Yy8xMTU5ZTc4YzQ3NDdiMDJlZjk5NmU1NTA4MmI3MDRjMDliOTcwNTg4L2xpYnJhcnkvYWxsb2Mvc3JjL3NsaWNlLnJzAGxpYnJhcnkvc3RkL3NyYy9iYWNrdHJhY2UucnMAL3J1c3QvZGVwcy9oYXNoYnJvd24tMC4xNS40L3NyYy9yYXcvbW9kLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2hhc2hicm93bi0wLjE2LjEvc3JjL3Jhdy9tb2QucnMAbGlicmFyeS9jb3JlL3NyYy9mbXQvbW9kLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL21lbWNoci0yLjcuNi9zcmMvYXJjaC9hbGwvcGFja2VkcGFpci9tb2QucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvZGVjb2Rlci9tb2QucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9hbGxvYy9zcmMvY29sbGVjdGlvbnMvYmluYXJ5X2hlYXAvbW9kLnJzAC9ydXN0Yy8xMTU5ZTc4YzQ3NDdiMDJlZjk5NmU1NTA4MmI3MDRjMDliOTcwNTg4L2xpYnJhcnkvc3RkL3NyYy9pby9tb2QucnMAbGlicmFyeS9zdGQvc3JjLy4uLy4uL2JhY2t0cmFjZS9zcmMvc3ltYm9saXplL21vZC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9taW5pel9veGlkZS0wLjguOS9zcmMvaW5mbGF0ZS9tb2QucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfY29yZS0xLjAuMjI4L3NyYy9kZS9tb2QucnMAbGlicmFyeS9zdGQvc3JjL3RocmVhZC9tb2QucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3RjLzExNTllNzhjNDc0N2IwMmVmOTk2ZTU1MDgyYjcwNGMwOWI5NzA1ODgvbGlicmFyeS9hbGxvYy9zcmMvdmVjL21vZC5ycwBsaWJyYXJ5L2NvcmUvc3JjL251bS9mbHQyZGVjL21vZC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvRG9jdW1lbnRzL05hdlZpcy9yZXBvcy9zcGFyay1jbG9jay10aW1lci9ydXN0L3NwYXJrLWxpYi9zcmMvdGlueV9sb2QucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyL0RvY3VtZW50cy9OYXZWaXMvcmVwb3Mvc3BhcmstY2xvY2stdGltZXIvcnVzdC9zcGFyay1saWIvc3JjL2JoYXR0X2xvZC5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi96bGliLXJzLTAuNi4zL3NyYy9jcmMzMi9icmFpZC5ycwAvcnVzdGMvMTE1OWU3OGM0NzQ3YjAyZWY5OTZlNTUwODJiNzA0YzA5Yjk3MDU4OC9saWJyYXJ5L2FsbG9jL3NyYy92ZWMvc3BlY19mcm9tX2l0ZXJfbmVzdGVkLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2ltYWdlLXdlYnAtMC4yLjQvc3JjL2V4dGVuZGVkLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci9Eb2N1bWVudHMvTmF2VmlzL3JlcG9zL3NwYXJrLWNsb2NrLXRpbWVyL3J1c3Qvc3BhcmstbGliL3NyYy9yYWQucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfanNvbi0xLjAuMTQ1L3NyYy9yZWFkLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3ppcC03LjIuMC9zcmMvcmVhZC5ycwAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi4xMC9zcmMvZGxtYWxsb2MucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9zcGVjLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL2RlY29kZXIvemxpYi5ycwBzcGFyay1ycy9zcmMvbGliLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL2NvbnNvbGVfZXJyb3JfcGFuaWNfaG9vay0wLjEuNy9zcmMvbGliLnJzAC9ydXN0L2RlcHMvcnVzdGMtZGVtYW5nbGUtMC4xLjI1L3NyYy9saWIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGUtd2FzbS1iaW5kZ2VuLTAuNi41L3NyYy9saWIucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvanMtc3lzLTAuMy45NC9zcmMvbGliLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NtYWxsdmVjLTEuMTUuMS9zcmMvbGliLnJzAC9Vc2Vycy9vbmRlcmlsa2VzZXZlci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3BuZy0wLjE4LjEvc3JjL3RleHRfbWV0YWRhdGEucnMAbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3VuaWNvZGVfZGF0YS5ycwAvVXNlcnMvb25kZXJpbGtlc2V2ZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9pbWFnZS13ZWJwLTAuMi40L3NyYy92cDgucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvcG5nLTAuMTguMS9zcmMvYWRhbTcucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9jcDQzNy5ycwBzcGFyay1saWIvc3JjL3N5bW1hdDMucnMAL1VzZXJzL29uZGVyaWxrZXNldmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvemlwLTcuMi4wL3NyYy9jcmMzMi5ycwAvcnVzdC9kZXBzL3J1c3RjLWRlbWFuZ2xlLTAuMS4yNS9zcmMvdjAucnMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwBpbnZhbGlkIGNvZGUgLS0gbWlzc2luZyBlbmQtb2YtYmxvY2sAaW5jb3JyZWN0IGhlYWRlciBjaGVjawBpbmNvcnJlY3QgbGVuZ3RoIGNoZWNrAGluY29ycmVjdCBkYXRhIGNoZWNrAGludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrAGhlYWRlciBjcmMgbWlzbWF0Y2gAaW52YWxpZCB3aW5kb3cgc2l6ZQByZXBlYXRlZCBjYWxsIHdpdGggYmFkIHN0YXRlAGludmFsaWQgYmxvY2sgdHlwZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAElJKgAAAFgEEABSAAAAUgAAABMAAAACBhAAXgAAAHIAAAAkAAAAAgYQAF4AAABzAAAAJgAAAAIGEABeAAAAdAAAAB4AAAACBhAAXgAAAHUAAAAiAAAAAgYQAF4AAAB2AAAAIAAAAAIGEABeAAAAVAAAABcAAAACBhAAXgAAAFUAAAAXAAAAAgYQAF4AAABWAAAAFwAAAAIGEABeAAAAWAAAABYAAAACBhAAXgAAAFkAAAAWAAAAAgYQAF4AAABaAAAAFgAAAAIGEABeAAAAXAAAACoAAAACBhAAXgAAAFwAAAAUAAAAAgYQAF4AAABdAAAAKgAAAAIGEABeAAAAXQAAABQAAAACBhAAXgAAAF4AAAAqAAAAAgYQAF4AAABeAAAAFAAAAAIGEABeAAAAYAAAACkAAAACBhAAXgAAAGAAAAAYAAAAAgYQAF4AAABiAAAAJgAAAAIGEABeAAAAYwAAACYAAAACBhAAXgAAAGQAAAAmAAAAAgYQAF4AAABlAAAAJgAAAAIGEABeAAAAaAAAABUAAAACBhAAXgAAAGkAAAAVAAAAAgYQAF4AAABqAAAAFQAAAAIGEABeAAAAawAAABUAAABJbnZhbGlkIC5zcGxhdCBmaWxlIHNpemXULRAAGAAAAE1hcEFjY2Vzczo6bmV4dF92YWx1ZSBjYWxsZWQgYmVmb3JlIG5leHRfa2V5gxwQAGoAAABmCgAAHwBBuNzAAAsFAQAAAIUAQcjcwAALBQEAAACGAEHY3MAACwUBAAAAhwBB6NzAAAsFAQAAAIgAQfjcwAALBQEAAACJAEGI3cAACwUBAAAAigBBmN3AAAsFAQAAAIsAQajdwAALBQEAAACMAEG43cAACwUBAAAAjQBByN3AAAsFAQAAAI4AQdjdwAALBQEAAACPAEHo3cAACwUBAAAAkABB+N3AAAsFAQAAAJEAQYjewAALBQEAAACSAEGY3sAACwUBAAAAkwBBqN7AAAsFAQAAAJQAQbjewAALBQEAAACVAEHI3sAACwUBAAAAlQBB2N7AAAsFAQAAAJUAQejewAALBQEAAACVAEH43sAACwUBAAAAlQBBiN/AAAsFAQAAAJUAQZjfwAALBQEAAACVAEGo38AACwUBAAAAlQBBuN/AAAsFAQAAAJUAQcjfwAALBQEAAACVAEHY38AAC2UBAAAAlQAAAGFuIGFycmF5IG9mIGxlbmd0aCAxYW4gYXJyYXkgb2YgbGVuZ3RoIDJhbiBhcnJheSBvZiBsZW5ndGggM2FuIGFycmF5IG9mIGxlbmd0aCA0AAAAAAAAAAABAAAAlgBByODAAAsFAQAAAJcAQdjgwAALBQEAAACYAEHo4MAACwUBAAAAmQBB+ODAAAvZBwEAAACaAAAAZmlsZXNtaW5zbWF4c3NoYXBlc3RydWN0IE1lYW5zIHdpdGggNCBlbGVtZW50cwAAkjAQABwAAABlbmNvZGluZ3N0cnVjdCBRdWF0cyB3aXRoIDIgZWxlbWVudHPAMBAAHAAAAHN0cnVjdCBTaDBWMSB3aXRoIDMgZWxlbWVudHPkMBAAHAAAAGNvZGVib29rc3RydWN0IFNoMFYyIHdpdGggMiBlbGVtZW50cxAxEAAcAAAAc3RydWN0IFNoTlYxIHdpdGggNCBlbGVtZW50czQxEAAcAAAAYmFuZHNzdHJ1Y3QgU2hOVjIgd2l0aCAzIGVsZW1lbnRzAAAAXTEQABwAAABzdHJ1Y3QgTWVhbnNWMSB3aXRoIDQgZWxlbWVudHMAAIQxEAAeAAAAbWVhbnNzY2FsZXNxdWF0c3NoMHNoTnN0cnVjdCBQY1NvZ3NWMSB3aXRoIDUgZWxlbWVudHMAAADCMRAAHwAAAHN0cnVjdCBQY1NvZ3NWMiB3aXRoIDcgZWxlbWVudHMA7DEQAB8AAABzdHJ1Y3QgU2NhbGVzVjEgd2l0aCAzIGVsZW1lbnRzABQyEAAfAAAAc3RydWN0IFNjYWxlc1YyIHdpdGggMiBlbGVtZW50cwA8MhAAHwAAAHBheWxvYWRCeXRlc3Byb3BlcnRpZXNzdHJ1Y3QgUmFkQ2h1bmtNZXRhIHdpdGggOCBlbGVtZW50cwAAAHoyEAAjAAAAY29tcHJlc3Npb25taW5tYXhzdHJ1Y3QgUmFkQ2h1bmtQcm9wZXJ0eSB3aXRoIDcgZWxlbWVudHO5MhAAJwAAAGNlbnRlcnJnYm9yaWVudGF0aW9uc2gxc2gyc2gzY2hpbGRfY291bnRjaGlsZF9zdGFydHNoMV9jb2Rlc2gyX2NvZGVzaDNfY29kZXNoX2xhYmVsAOgyEAAGAAAAdPcRAAUAAADuMhAAAwAAALExEAAGAAAA8TIQAAsAAAD8MhAAAwAAAP8yEAADAAAAAjMQAAMAAAAFMxAACwAAABAzEAALAAAAGzMQAAgAAAAjMxAACAAAACszEAAIAAAAMzMQAAgAAABmMTZmMzJfbGVieXRlc2YxNl9sZWJ5dGVzcjhyOF9kZWx0YXM4czhfZGVsdGFsbl8wcjhsbl9mMTZvY3Q4OHI4VI0RAAMAAACsMxAAAwAAAK8zEAALAAAAujMQAAsAAADFMxAAAgAAAMczEAAIAAAAzzMQAAIAAADRMxAACAAAANkzEAAGAAAA3zMQAAYAAADlMxAABwAAAH9fEQADAAAASY0RAAMAQdzowAALBQEAAACbAEHs6MAAC/UMAQAAAJwAAABnegAAdDQQAAIAAACG4Tuk1q15v/+upybThr595YOXN9POwkSs00X1lWHZSeEHj1ItQZdWrpJ0rgmN377uYAcjF0rymAWmA3B/pqnogDHXdQNeyi9xlsBGBvjDPiIu8W/o2a2ZWvzh2N1SrGZqt4uXKg/91m4zJqM0lJ9YY9ztSw5fUeOV0SMLPEoYvRdp5kRiYoCoXXm/+YTGw5K3tlPqIOj1M1+7do5QUzDVFdKTfWn+r/+ZiEjeDiWV0YCvG08x1VhQF8+YbAiSSvEiCu/pP0jyI27CQYq/tJnv0Jecri3MIAz5Qx3hhqX4juvnpYMgBgaidwAMf1WXg6qFzcKGJZAMZSnqAF5xVShL50t0sNDNwqRLZdFYgyb47GHyQwX3E0FAsM8KlCe8wzugZiRFCu3pk1CmPgwTvzERe0MozFPERTh2izUvXqGB8Q7mlq3Ronr2bAXYePmfBXbFqEpmfFihYRDRmsQZoc/oqP9h7/frx9TzjIB5QHzoTMDxkWYPuQWIztaep4y5QaCJ7LIcrO4NvdTANpIv4EPG/lca7goxObPFEuYyULSh7MEX1K9RMi0kc9zHf0o3Y8aulcXqPlPl8XPoB4TkYiF1Vh0QAFMAAACbAAAAMgAAAK0WEABPAAAALwIAACYAAABKERAAbQAAAKQAAAAqAAAAShEQAG0AAAAEAQAAJQAAAJ0AAAAMAAAABAAAAJ4AAACdAAAADAAAAAQAAACfAAAAngAAAIA2EACgAAAAoQAAAKIAAACgAAAAowAAAEFFUyBlbmNyeXB0ZWQgZmlsZXMgY2Fubm90IGJlIGRlY3J5cHRlZCB3aXRob3V0IHRoZSBhZXMtY3J5cHRvIGZlYXR1cmUuVmFyaWFibGUtbGVuZ3RoIGZpZWxkIGV4dGVuZHMgYmV5b25kIGZpbGUgYm91bmRhcnlBRVMgZW5jcnlwdGlvbiB3aXRob3V0IEFFUyBleHRyYSBkYXRhIGZpZWxkQXJjaGl2ZSBoZWFkZXIgaXMgdG9vIGxhcmdlAPckEABgAAAA5gIAABkAAAD3JBAAYAAAAOoCAAATAAAAT3ZlcnNpemVkIGNlbnRyYWwgZGlyZWN0b3J5U3VwcG9ydCBmb3IgbXVsdGktZGlzayBmaWxlcyBpcyBub3QgaW1wbGVtZW50ZWR6aXA6OnNwZWM6OlppcDY0Q0RFQmxvY2sAAFBLBgZJbnZhbGlkIGRpZ2l0YWwgc2lnbmF0dXJlIGhlYWRlcgAAAIAEOBAAIAAAAHppcDo6c3BlYzo6WmlwMzJDREVCbG9ja1BLBQZ6aXA6OnNwZWM6OlppcDY0Q0RFTG9jYXRvckJsb2NrSW52YWxpZCB6aXA2NCBsb2NhdG9yIGRpZ2l0YWwgc2lnbmF0dXJlIGhlYWRlcgAAAAAAAIBrOBAALgAAAHppcDo6dHlwZXM6OlppcENlbnRyYWxFbnRyeUJsb2NrUEsBAkludmFsaWQgQ2VudHJhbCBEaXJlY3RvcnkgaGVhZGVyAAAAgMw4EAAgAAAASW52YWxpZCBFT0NENjQ6IGluY29uc2lzdGVudCBsZW5ndGhJbnZhbGlkIEVPQ0Q2NDogaW5jb25zaXN0ZW5jeSB3aXRoIExvY2F0b3IgZGF0YUludmFsaWQgRU9DRDY0OiBpbmNvbnNpc3RlbnQgbnVtYmVyIG9mIGZpbGVzQ291bGQgbm90IGZpbmQg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AAAAtwIAABEAAAA0BxAAHQAAALgCAAAwAAAANAcQAB0AAADjAgAAJgAAADQHEAAdAAAA5wIAACAAAAA0BxAAHQAAAOcCAAATAAAANAcQAB0AAADtAgAAJgAAADQHEAAdAAAA8QIAACAAAAA0BxAAHQAAAPECAAATAAAANAcQAB0AAABDAwAAQQAAADQHEAAdAAAARAMAAA0AAAA0BxAAHQAAAEUDAAANAAAANAcQAB0AAABGAwAADQAAADQHEAAdAAAATwMAAD4AAAA0BxAAHQAAAE8DAAANAAAANAcQAB0AAABYAwAAOwAAADQHEAAdAAAAWQMAAA0AAAA0BxAAHQAAAFoDAAANAAAANAcQAB0AAABbAwAADQAAADQHEAAdAAAAZAMAAD8AAAA0BxAAHQAAAGUDAAANAAAANAcQAB0AAABmAwAADQAAADQHEAAdAAAAZwMAAA0AAAA0BxAAHQAAAHADAAA9AAAANAcQAB0AAABxAwAADQAAADQHEAAdAAAAcgMAAA0AAAA0BxAAHQAAAHMDAAANAAAANAcQAB0AAAB0AwAADQAAADQHEAAdAAAAgAMAACUAAAA0BxAAHQAAAIQDAAAlAAAANAcQAB0AAACEAwAANgAAADQHEAAdAAAAhgMAAB0AAAA0BxAAHQAAAJIDAAAlAAAANAcQAB0AAACWAwAAJQAAADQHEAAdAAAAlgMAADYAAAA0BxAAHQAAAJYDAABLAAAANAcQAB0AAACWAwAAYAAAADQHEAAdAAAAmAMAAB4AAAA0BxAAHQAAAKQDAAAlAAAANAcQAB0AAACoAwAAJQAAADQHEAAdAAAAqAMAADYAAAA0BxAAHQAAAKgDAABLAAAANAcQAB0AAACoAwAAYAAAADQHEAAdAAAAqgMAAB4AAAA0BxAAHQAAALYDAAAlAAAANAcQAB0AAAC4AwAAIQAAADQHEAAdAAAAuAMAAA0AAAA0BxAAHQAAAMQDAAAlAAAANAcQAB0AAADGAwAAIQAAADQHEAAdAAAAxgMAAA0AAABleHQwZXh0MRkHEAAaAAAATAAAAFMAAAAZBxAAGgAAAE8AAABTAAAAc2gzYRkHEAAaAAAAUgAAAFUAAABzaDNiGQcQABoAAABVAAAAVQAAABkHEAAaAAAAWAAAAF4AAAAZBxAAGgAAAFsAAABeAAAAGQcQABoAAABhAAAAWQAAABkHEAAaAAAAZAAAAFwAAAAZBxAAGgAAAEoAAABnAAAAGQcQABoAAABJAAAAZwAAABkHEAAaAAAASAAAAG0AAAAZBxAAGgAAAEcAAABoAAAAGQcQABoAAABGAAAAaAAAABkHEAAaAAAAtgAAADAAAAAZBxAAGgAAALgAAAAwAAAAGQcQABoAAACfAQAANgAAABkHEAAaAAAAoAEAADYAAAAZBxAAGgAAAKUBAAAtAAAAGQcQABoAAACmAQAALQAAABkHEAAaAAAArAEAAEMAAAAZBxAAGgAAAK8BAAAzAAAAGQcQABoAAACwAQAAMwAAABkHEAAaAAAAzgEAACcAAAAZBxAAGgAAAM8BAAAnAAAAGQcQABoAAADRAQAAFQAAABkHEAAaAAAA0AEAACgAAAAZBxAAGgAAANIBAAAoAAAAGQcQABoAAADTAQAAKAAAABkHEAAaAAAA1AEAACgAAAAZBxAAGgAAAPgBAAA3AAAAGQcQABoAAAD4AQAAWAAAABkHEAAaAAAAAQIAADgAAAAZBxAAGgAAAAECAABGAAAAGQcQABoAAAAKAgAANAAAABkHEAAaAAAACgIAAFUAAAAZBxAAGgAAABwCAAA2AAAAGQcQABoAAAAcAgAAVwAAABkHEAAaAAAAJQIAADUAAAAZBxAAGgAAACUCAABWAAAAGQcQABoAAAA6AgAALAAAABkHEAAaAAAAPwIAADYAAAAZBxAAGgAAAD8CAAA/AAAAGQcQABoAAAA/AgAATAAAABkHEAAaAAAAPwIAABUAAAAZBxAAGgAAAEsCAAAyAAAAGQcQABoAAABMAgAAMgAAABkHEAAaAAAAUQIAADgAAAAZBxAAGgAAAFECAABBAAAAGQcQABoAAABRAgAATgAAABkHEAAaAAAAUQIAABUAAAAZBxAAGgAAAFQCAABCAAAAGQcQABoAAABUAgAASwAAABkHEAAaAAAAVAIAAFgAAAAZBxAAGgAAAFQCAAAZAAAAGQcQABoAAABiAgAAMgAAABkHEAAaAAAAYwIAADIAAAAZBxAAGgAAAGwCAABCAAAAGQcQABoAAABsAgAASwAAABkHEAAaAAAAbAIAAFgAAAAZBxAAGgAAAGwCAAAZAAAAGQcQABoAAABoAgAAPAAAABkHEAAaAAAAaAIAAEUAAAAZBxAAGgAAAGgCAABSAAAAGQcQABoAAABoAgAAGQAAABkHEAAaAAAAgwIAACwAAAAZBxAAGgAAAJQCAAA2AAAAGQcQABoAAACUAgAAIwAAABkHEAAaAAAAiAIAADYAAAAZBxAAGgAAAIgCAABFAAAAGQcQABoAAACIAgAAWAAAABkHEAAaAAAAiAIAABUAAAAZBxAAGgAAAKkCAAAyAAAAGQcQABoAAACqAgAAMgAAABkHEAAaAAAAvgIAADYAAAAZBxAAGgAAAL4CAAAjAAAAGQcQABoAAADAAgAAJwAAABkHEAAaAAAArwIAADgAAAAZBxAAGgAAAK8CAABHAAAAGQcQABoAAACvAgAAWgAAABkHEAAaAAAArwIAABUAAAAZBxAAGgAAALICAABCAAAAGQcQABoAAACyAgAAUQAAABkHEAAaAAAAsgIAAGQAAAAZBxAAGgAAANkCAAAuAAAAGQcQABoAAADaAgAALgAAABkHEAAaAAAA9AIAAD8AAAAZBxAAGgAAAPQCAAAmAAAAGQcQABoAAADxAgAAOQAAABkHEAAaAAAA8QIAACYAAAAZBxAAGgAAAOMCAAA+AAAAGQcQABoAAADjAgAATQAAABkHEAAaAAAA4wIAAGAAAAAZBxAAGgAAAOMCAAAVAAAAGQcQABoAAADfAgAAOAAAABkHEAAaAAAA3wIAAEcAAAAZBxAAGgAAAN8CAABaAAAAGQcQABoAAADfAgAAFQAAABkHEAAaAAAAAgMAAC4AAAAZBxAAGgAAABIDAAAyAAAAGQcQABoAAAAnAwAAKQAAABkHEAAaAAAALgMAAEsAAAAZBxAAGgAAAC4DAAAhAAAAGQcQABoAAAArAwAARQAAABkHEAAaAAAAKwMAACEAAAAZBxAAGgAAABQDAAAhAAAAGQcQABoAAAAXAwAANgAAABkHEAAaAAAAFwMAABUAAAAZBxAAGgAAABkDAABAAAAAGQcQABoAAAAEAwAAHQAAABkHEAAaAAAACAMAADYAAAAZBxAAGgAAAAgDAAAVAAAAGQcQABoAAAA7AwAAJgAAABkHEAAaAAAAPwMAACAAAAAZBxAAGgAAAD8DAAATAAAAGQcQABoAAABFAwAAJgAAABkHEAAaAAAASQMAACAAAAAZBxAAGgAAAEkDAAATAAAAGQcQABoAAACcAwAAQAAAABkHEAAaAAAAnQMAAA0AAAAZ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AQEBAgQBBQAJAQIAAgEBBAGQBAICBAEgCigGAgQIAQkGAgMuDQECAAcBBgEBUhYCBwECAQJ6BgMBAQIBBwEBSAIDAQEBAAILAjQFBQEBARcBABEGDwAMAwMABTsHCQQAAygCAAE/EUACAQIABAEHAQIAAgEEAC4CFwADCRACBx4ElAMANwQyCAEOARYFAQ8ABwERAgcBAgEFBT4hAaAOAAE9BAAF/gIAB20IAAUAAR5ggPAAQRoGGi8BCgEEAQUXAR8BwwEEBNABJAcCHgVgASoEAgICBAEBBgEBAwEBARQBUwGLCKYBJgkpACYBAQUBAisBBABWAgYACwUrAgNAwEAAAgYCJgIGAggBAQEBAQEBHwI1AQcBAQMDAQcDBAIGBA0FAwEHdAENARANZQEEAQIKAQEDBQYBAQEBAQEEAQYEAQIEBQUEAREgAwIANADlBgQDAgwmAQEFAQAuEh6EZgMEAT4CAgEBAQgVBQEDACsBDgZQAAcMBQAaBhoAUGAkBCR0CwEPAQcBAgELAQ8BBwECAAECAwEqAQkAMw0zXRYKFgBAAEAAVQFHAQICAQICAgQBDAEBAQcBQQEEAggBBwEcAQQBBQEBAwcBAAIZARkBHwEZAR8BGQEfARkBHwEZAQgACgEUBgYAPgBEABoGGgYaAABwAAcALQEBAQIBAgEBSAswFRABZQcCBgICAQQjAR4bWws6CQkBGAQBCQEDAQUrAzsJKhgBIDcBAQEECAQBAwcKAh0BOgEBAQIECAEJAQoCGgECAjkBBAIEAgIDAwEeAgMBCwI5AQQFAQIEARQCFgYBAToBAQIBBAgBBwMKAh4BOwEBAQwBCQEoAQMBNwEBAwUDAQQHAgsCHQE6AQICAQEDAwEEBwILAhwCOQIBAQIECAEJAQoCHQFIAQQBAgMBAQgBUQECBwwIYgECCQsHSQIbAQEBAQE3DgEFAQIFCwEkCQFmBAEGAQICAhkCBAMQBA0BAgIGAQ8BAAMABBwDHQIeAkACAQcIAQILCQEtAwEBdQIiAXYDBAIJAQYD2wICAToBAQcBAQEBAggGCgIBMB8xBDAKBAMmCQwCIAQCBjgBAQIDAQEFOAgCApgDAQ0BBwQBBgEDAsZAAAHDIQADjQFgIAAGaQIABAEKIAJQAgABAwEEARkCBQGXAhoSDQEmCBkLAQEsAzABAgQCAgIBJAFD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AABQAQAAUQEAAFIBAABTAQAAVAEAAFUBAABWAQAAVwEAAFgBAABZAQAAWgEAAFsBAABcAQAAXQEAAF4BAABfAQAAYAEAAGEBAABiAQAAYwEAAGQBAABlAQAAZgEAAGcBAABoAQAAaQEAAGoBAABrAQAAbAEAAG0BAABuAQAAbwEAAHABAABxAQAAcgEAAHMBAAB0AQAAdQEAAHYBAAB3AQAAeAEAAP8AAAB5AQAAegEAAHsBAAB8AQAAfQEAAH4BAACBAQAAUwIAAIIBAACDAQAAhAEAAIUBAACGAQAAVAIAAIcBAACIAQAAiQEAAFYCAACKAQAAVwIAAIsBAACMAQAAjgEAAN0BAACPAQAAWQIAAJABAABbAgAAkQEAAJIBAACTAQAAYAIAAJQBAABjAgAAlgEAAGkCAACXAQAAaAIAAJgBAACZAQAAnAEAAG8CAACdAQAAcgIAAJ8BAAB1AgAAoAEAAKEBAACiAQAAowEAAKQBAAClAQAApgEAAIACAACnAQAAqAEAAKkBAACDAgAArAEAAK0BAACuAQAAiAIAAK8BAACwAQAAsQEAAIoCAACyAQAAiwIAALMBAAC0AQAAtQEAALYBAAC3AQAAkgIAALgBAAC5AQAAvAEAAL0BAADEAQAAxgEAAMUBAADGAQAAxwEAAMkBAADIAQAAyQEAAMoBAADMAQAAywEAAMwBAADNAQAAzgEAAM8BAADQAQAA0QEAANIBAADTAQAA1AEAANUBAADWAQAA1wEAANgBAADZAQAA2gEAANsBAADcAQAA3gEAAN8BAADgAQAA4QEAAOIBAADjAQAA5AEAAOUBAADmAQAA5wEAAOgBAADpAQAA6gEAAOsBAADsAQAA7QEAAO4BAADvAQAA8QEAAPMBAADyAQAA8wEAAPQBAAD1AQAA9gEAAJUBAAD3AQAAvwEAAPgBAAD5AQAA+gEAAPsBAAD8AQAA/QEAAP4BAAD/AQAAAAIAAAECAAACAgAAAwIAAAQCAAAFAgAABgIAAAcCAAAIAgAACQIAAAoCAAALAgAADAIAAA0CAAAOAgAADwIAABACAAARAgAAEgIAABMCAAAUAgAAFQIAABYCAAAXAgAAGAIAABkCAAAaAgAAGwIAABwCAAAdAgAAHgIAAB8CAAAgAgAAngEAACICAAAjAgAAJAIAACUCAAAmAgAAJwIAACgC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AABiBQAAMwUAAGMFAAA0BQAAZAUAADUFAABlBQAANgUAAGYFAAA3BQAAZwUAADgFAABoBQAAOQUAAGkFAAA6BQAAagUAADsFAABrBQAAPAUAAGwFAAA9BQAAbQUAAD4FAABuBQAAPwUAAG8FAABABQAAcAUAAEEFAABxBQAAQgUAAHIFAABDBQAAcwUAAEQFAAB0BQAARQUAAHUFAABGBQAAdgUAAEcFAAB3BQAASAUAAHgFAABJBQAAeQUAAEoFAAB6BQAASwUAAHsFAABMBQAAfAUAAE0FAAB9BQAATgUAAH4FAABPBQAAfwUAAFAFAACABQAAUQUAAIEFAABSBQAAggUAAFMFAACDBQAAVAUAAIQFAABVBQAAhQUAAFYFAACGBQAAoBAAAAAtAAChEAAAAS0AAKIQAAACLQAAoxAAAAMtAACkEAAABC0AAKUQAAAFLQAAphAAAAYtAACnEAAABy0AAKgQAAAILQAAqRAAAAktAACqEAAACi0AAKsQAAALLQAArBAAAAwtAACtEAAADS0AAK4QAAAOLQAArxAAAA8tAACwEAAAEC0AALEQAAARLQAAshAAABItAACzEAAAEy0AALQQAAAULQAAtRAAABUtAAC2EAAAFi0AALcQAAAXLQAAuBAAABgtAAC5EAAAGS0AALoQAAAaLQAAuxAAABstAAC8EAAAHC0AAL0QAAAdLQAAvhAAAB4tAAC/EAAAHy0AAMAQAAAgLQAAwRAAACEtAADCEAAAIi0AAMMQAAAjLQAAxBAAACQtAADFEAAAJS0AAMcQAAAnLQAAzRAAAC0tAACgEwAAcKsAAKETAABxqwAAohMAAHKrAACjEwAAc6sAAKQTAAB0qwAApRMAAHWrAACmEwAAdqsAAKcTAAB3qwAAqBMAAHirAACpEwAAeasAAKoTAAB6qwAAqxMAAHurAACsEwAAfKsAAK0TAAB9qwAArhMAAH6rAACvEwAAf6sAALATAACAqwAAsRMAAIGrAACyEwAAgqsAALMTAACDqwAAtBMAAISrAAC1EwAAhasAALYTAACGqwAAtxMAAIerAAC4EwAAiKsAALkTAACJqwAAuhMAAIqrAAC7EwAAi6sAALwTAACMqwAAvRMAAI2rAAC+EwAAjqsAAL8TAACPqwAAwBMAAJCrAADBEwAAkasAAMITAACSqwAAwxMAAJOrAADEEwAAlKsAAMUTAACVqwAAxhMAAJarAADHEwAAl6sAAMgTAACYqwAAyRMAAJmrAADKEwAAmqsAAMsTAACbqwAAzBMAAJyrAADNEwAAnasAAM4TAACeqwAAzxMAAJ+rAADQEwAAoKsAANETAAChqwAA0hMAAKKrAADTEwAAo6sAANQTAACkqwAA1RMAAKWrAADWEwAApqsAANcTAACnqwAA2BMAAKirAADZEwAAqasAANoTAACqqwAA2xMAAKurAADcEwAArKsAAN0TAACtqwAA3hMAAK6rAADfEwAAr6sAAOATAACwqwAA4RMAALGrAADiEwAAsqsAAOMTAACzqwAA5BMAALSrAADlEwAAtasAAOYTAAC2qwAA5xMAALerAADoEwAAuKsAAOkTAAC5qwAA6hMAALqrAADrEwAAu6sAAOwTAAC8qwAA7RMAAL2rAADuEwAAvqsAAO8TAAC/qwAA8BMAAPgTAADxEwAA+RMAAPITAAD6EwAA8xMAAPsTAAD0EwAA/BMAAPUTAAD9EwAAiRwAAIocAACQHAAA0BAAAJEcAADREAAAkhwAANIQAACTHAAA0xAAAJQcAADUEAAAlRwAANUQAACWHAAA1hAAAJccAADXEAAAmBwAANgQAACZHAAA2RAAAJocAADaEAAAmxwAANsQAACcHAAA3BAAAJ0cAADdEAAAnhwAAN4QAACfHAAA3xAAAKAcAADgEAAAoRwAAOEQAACiHAAA4hAAAKMcAADjEAAApBwAAOQQAAClHAAA5RAAAKYcAADmEAAApxwAAOcQAACoHAAA6BAAAKkcAADpEAAAqhwAAOoQAACrHAAA6xAAAKwcAADsEAAArRwAAO0QAACuHAAA7hAAAK8cAADvEAAAsBwAAPAQAACxHAAA8RAAALIcAADyEAAAsxwAAPMQAAC0HAAA9BAAALUcAAD1EAAAthwAAPYQAAC3HAAA9xAAALgcAAD4EAAAuRwAAPkQAAC6HAAA+hAAAL0cAAD9EAAAvhwAAP4QAAC/HAAA/xAAAAAeAAABHgAAAh4AAAMeAAAEHgAABR4AAAYeAAAHHgAACB4AAAkeAAAKHgAACx4AAAweAAANHgAADh4AAA8eAAAQHgAAER4AABIeAAATHgAAFB4AABUeAAAWHgAAFx4AABgeAAAZHgAAGh4AABseAAAcHgAAHR4AAB4eAAAfHgAAIB4AACEeAAAiHgAAIx4AACQeAAAlHgAAJh4AACceAAAoHgAAKR4AACoeAAArHgAALB4AAC0eAAAuHgAALx4AADAeAAAxHgAAMh4AADMeAAA0HgAANR4AADYeAAA3HgAAOB4AADkeAAA6HgAAOx4AADweAAA9HgAAPh4AAD8eAABAHgAAQR4AAEIeAABDHgAARB4AAEUeAABGHgAARx4AAEgeAABJHgAASh4AAEseAABMHgAATR4AAE4eAABPHgAAUB4AAFEeAABSHgAAUx4AAFQeAABVHgAAVh4AAFceAABYHgAAWR4AAFoeAABbHgAAXB4AAF0eAABeHgAAXx4AAGAeAABhHgAAYh4AAGMeAABkHgAAZR4AAGYeAABnHgAAaB4AAGkeAABqHgAAax4AAGweAABtHgAAbh4AAG8eAABwHgAAcR4AAHIeAABzHgAAdB4AAHUeAAB2HgAAdx4AAHgeAAB5HgAAeh4AAHseAAB8HgAAfR4AAH4eAAB/HgAAgB4AAIEeAACCHgAAgx4AAIQeAACFHgAAhh4AAIceAACIHgAAiR4AAIoeAACLHgAAjB4AAI0eAACOHgAAjx4AAJAeAACRHgAAkh4AAJMeAACUHgAAlR4AAJ4eAADfAAAAoB4AAKEeAACiHgAAox4AAKQeAAClHgAAph4AAKceAACoHgAAqR4AAKoeAACrHgAArB4AAK0eAACuHgAArx4AALAeAACxHgAAsh4AALMeAAC0HgAAtR4AALYeAAC3HgAAuB4AALkeAAC6HgAAux4AALweAAC9HgAAvh4AAL8eAADAHgAAwR4AAMIeAADDHgAAxB4AAMUeAADGHgAAxx4AAMgeAADJHgAAyh4AAMseAADMHgAAzR4AAM4eAADPHgAA0B4AANEeAADSHgAA0x4AANQeAADVHgAA1h4AANceAADYHgAA2R4AANoeAADbHgAA3B4AAN0eAADeHgAA3x4AAOAeAADhHgAA4h4AAOMeAADkHgAA5R4AAOYeAADnHgAA6B4AAOkeAADqHgAA6x4AAOweAADtHgAA7h4AAO8eAADwHgAA8R4AAPIeAADzHgAA9B4AAPUeAAD2HgAA9x4AAPgeAAD5HgAA+h4AAPseAAD8HgAA/R4AAP4eAAD/HgAACB8AAAAfAAAJHwAAAR8AAAofAAACHwAACx8AAAMfAAAMHwAABB8AAA0fAAAFHwAADh8AAAYfAAAPHwAABx8AABgfAAAQHwAAGR8AABEfAAAaHwAAEh8AABsfAAATHwAAHB8AABQfAAAdHwAAFR8AACgfAAAgHwAAKR8AACEfAAAqHwAAIh8AACsfAAAjHwAALB8AACQfAAAtHwAAJR8AAC4fAAAmHwAALx8AACcfAAA4HwAAMB8AADkfAAAxHwAAOh8AADIfAAA7HwAAMx8AADwfAAA0HwAAPR8AADUfAAA+HwAANh8AAD8fAAA3HwAASB8AAEAfAABJHwAAQR8AAEofAABCHwAASx8AAEMfAABMHwAARB8AAE0fAABFHwAAWR8AAFEfAABbHwAAUx8AAF0fAABVHwAAXx8AAFcfAABoHwAAYB8AAGkfAABhHwAAah8AAGIfAABrHwAAYx8AAGwfAABkHwAAbR8AAGUfAABuHwAAZh8AAG8fAABnHwAAiB8AAIAfAACJHwAAgR8AAIofAACCHwAAix8AAIMfAACMHwAAhB8AAI0fAACFHwAAjh8AAIYfAACPHwAAhx8AAJgfAACQHwAAmR8AAJEfAACaHwAAkh8AAJsfAACTHwAAnB8AAJQfAACdHwAAlR8AAJ4fAACWHwAAnx8AAJcfAACoHwAAoB8AAKkfAAChHwAAqh8AAKIfAACrHwAAox8AAKwfAACkHwAArR8AAKUfAACuHwAAph8AAK8fAACnHwAAuB8AALAfAAC5HwAAsR8AALofAABwHwAAux8AAHEfAAC8HwAAsx8AAMgfAAByHwAAyR8AAHMfAADKHwAAdB8AAMsfAAB1HwAAzB8AAMMfAADYHwAA0B8AANkfAADRHwAA2h8AAHYfAADbHwAAdx8AAOgfAADgHwAA6R8AAOEfAADqHwAAeh8AAOsfAAB7HwAA7B8AAOUfAAD4HwAAeB8AAPkfAAB5HwAA+h8AAHwfAAD7HwAAfR8AAPwfAADzHwAAJiEAAMkDAAAqIQAAawAAACshAADlAAAAMiEAAE4hAABgIQAAcCEAAGEhAABxIQAAYiEAAHIhAABjIQAAcyEAAGQhAAB0IQAAZSEAAHUhAABmIQAAdiEAAGchAAB3IQAAaCEAAHghAABpIQAAeSEAAGohAAB6IQAAayEAAHshAABsIQAAfCEAAG0hAAB9IQAAbiEAAH4hAABvIQAAfyEAAIMhAACEIQAAtiQAANAkAAC3JAAA0SQAALgkAADSJAAAuSQAANMkAAC6JAAA1CQAALskAADVJAAAvCQAANYkAAC9JAAA1yQAAL4kAADYJAAAvyQAANkkAADAJAAA2iQAAMEkAADbJAAAwiQAANwkAADDJAAA3SQAAMQkAADeJAAAxSQAAN8kAADGJAAA4CQAAMckAADhJAAAyCQAAOIkAADJJAAA4yQAAMokAADkJAAAyyQAAOUkAADMJAAA5iQAAM0kAADnJAAAziQAAOgkAADPJAAA6SQAAAAsAAAwLAAAASwAADEsAAACLAAAMiwAAAMsAAAzLAAABCwAADQsAAAFLAAANSwAAAYsAAA2LAAABywAADcsAAAILAAAOCwAAAksAAA5LAAACiwAADosAAALLAAAOywAAAwsAAA8LAAADSwAAD0sAAAOLAAAPiwAAA8sAAA/LAAAECwAAEAsAAARLAAAQSwAABIsAABCLAAAEywAAEMsAAAULAAARCwAABUsAABFLAAAFiwAAEYsAAAXLAAARywAABgsAABILAAAGSwAAEksAAAaLAAASiwAABssAABLLAAAHCwAAEwsAAAdLAAATSwAAB4sAABOLAAAHywAAE8sAAAgLAAAUCwAACEsAABRLAAAIiwAAFIsAAAjLAAAUywAACQsAABULAAAJSwAAFUsAAAmLAAAViwAACcsAABXLAAAKCwAAFgsAAApLAAAWSwAACosAABaLAAAKywAAFssAAAsLAAAXCwAAC0sAABdLAAALiwAAF4sAAAvLAAAXywAAGAsAABhLAAAYiwAAGsCAABjLAAAfR0AAGQsAAB9AgAAZywAAGgsAABpLAAAaiwAAGssAABsLAAAbSwAAFECAABuLAAAcQIAAG8sAABQAgAAcCwAAFICAAByLAAAcywAAHUsAAB2LAAAfiwAAD8CAAB/LAAAQAIAAIAsAACBLAAAgiwAAIMsAACELAAAhSwAAIYsAACHLAAAiCwAAIksAACKLAAAiywAAIwsAACNLAAAjiwAAI8sAACQLAAAkSwAAJIsAACTLAAAlCwAAJUsAACWLAAAlywAAJgsAACZLAAAmiwAAJssAACcLAAAnSwAAJ4sAACfLAAAoCwAAKEsAACiLAAAoywAAKQsAAClLAAApiwAAKcsAACoLAAAqSwAAKosAACrLAAArCwAAK0sAACuLAAArywAALAsAACxLAAAsiwAALMsAAC0LAAAtSwAALYsAAC3LAAAuCwAALksAAC6LAAAuywAALwsAAC9LAAAviwAAL8sAADALAAAwSwAAMIsAADDLAAAxCwAAMUsAADGLAAAxywAAMgsAADJLAAAyiwAAMssAADMLAAAzSwAAM4sAADPLAAA0CwAANEsAADSLAAA0ywAANQsAADVLAAA1iwAANcsAADYLAAA2SwAANosAADbLAAA3CwAAN0sAADeLAAA3ywAAOAsAADhLAAA4iwAAOMsAADrLAAA7CwAAO0sAADuLAAA8iwAAPMsAABApgAAQaYAAEKmAABDpgAARKYAAEWmAABGpgAAR6YAAEimAABJpgAASqYAAEumAABMpgAATaYAAE6mAABPpgAAUKYAAFGmAABSpgAAU6YAAFSmAABVpgAAVqYAAFemAABYpgAAWaYAAFqmAABbpgAAXKYAAF2mAABepgAAX6YAAGCmAABhpgAAYqYAAGOmAABkpgAAZaYAAGamAABnpgAAaKYAAGmmAABqpgAAa6YAAGymAABtpgAAgKYAAIGmAACCpgAAg6YAAISmAACFpgAAhqYAAIemAACIpgAAiaYAAIqmAACLpgAAjKYAAI2mAACOpgAAj6YAAJCmAACRpgAAkqYAAJOmAACUpgAAlaYAAJamAACXpgAAmKYAAJmmAACapgAAm6YAACKnAAAjpwAAJKcAACWnAAAmpwAAJ6cAACinAAAppwAAKqcAACunAAAspwAALacAAC6nAAAvpwAAMqcAADOnAAA0pwAANacAADanAAA3pwAAOKcAADmnAAA6pwAAO6cAADynAAA9pwAAPqcAAD+nAABApwAAQacAAEKnAABDpwAARKcAAEWnAABGpwAAR6cAAEinAABJpwAASqcAAEunAABMpwAATacAAE6nAABPpwAAUKcAAFGnAABSpwAAU6cAAFSnAABVpwAAVqcAAFenAABYpwAAWacAAFqnAABbpwAAXKcAAF2nAABepwAAX6cAAGCnAABhpwAAYqcAAGOnAABkpwAAZacAAGanAABnpwAAaKcAAGmnAABqpwAAa6cAAGynAABtpwAAbqcAAG+nAAB5pwAAeqcAAHunAAB8pwAAfacAAHkdAAB+pwAAf6cAAICnAACBpwAAgqcAAIOnAACEpwAAhacAAIan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AAAAgQAAAIEBAACBAgAAgQMAAIEEAACBBQAAgQYAAIEHAACBCAAAgQkAAIEKAACBCwAAgQwAAIENAACBDgAAgQ8AAIEQAACBEQAAgRIAAIETAACBFAAAgRUAAIEWAACBFwAAgRgAAIEZAACBGgAAgRsAAIEcAACBHQAAgR4AAIEfAACBIAAAgSEAAIEiAACBIwAAgSQAAIElAACBJgAAgScAAIEoAACBKQAAgSoAAIErAACBLAAAgS0AAIEuAACBLwAAgTAAAIExAACBMgAAgTMAAIE0AACBNQAAgTYAAIE3AACBOAAAgTkAAIE6AACBOwAAgTwAAIE9AACBPgAAgT8AAIFAAACBQQAAgUIAAIFDAACBRAAAgUUAAIFGAACBRwAAgUgAAIFJAACBSgAAgUsAAIFMAACBTQAAgU4AAIFPAACBUAAAgVEAAIFSAACBUwAAgVQAAIFVAACBVgAAgVcAAIFYAACBWQAAgVoAAIFbAACBXAAAgV0AAIFeAACBXwAAgWAAAIFhAACBYgAAgWMAAIFkAACBZQAAgWYAAIFnAACBaAAAgWkAAIFqAACBawAAgWwAAIFtAACBbgAAgW8AAIFwAACBcQAAgXIAAIFzAACBdAAAgXUAAIF2AACBdwAAgXgAAIF5AACBegAAgXsAAIF8AACBfQAAgX4AAIF/AACBgAAAgYEAAIGCAACBgwAAgYQAAIGFAACBhgAAgYcAAIGIAACBiQAAgYoAAIGLAACBjAAAgY0AAIGOAACBjwAAgZAAAIGRAACBkgAAgZMAAIGUAACBlQAAgZYAAIGXAACBmAAAgZkAAIGaAACBmwAAgZwAAIGdAACBngAAgZ8AAIGgAACBoQAAgaIAAIGjAACBpAAAgaUAAIGmAACBpwAAgagAAIGpAACBqgAAgasAAIGsAACBrQAAga4AAIGvAACBsAAAgbEAAIGyAACBswAAgbQAAIG1AACBtgAAgbcAAIG4AACBuQAAgboAAIG7AACBvAAAgb0AAIG+AACBvwAAgcAAAIHBAACBwgAAgcMAAIHEAACBxQAAgcYAAIHHAACByAAAgckAAIHKAACBywAAgcwAAIHNAACBzgAAgc8AAIHQAACB0QAAgdIAAIHTAACB1AAAgdUAAIHWAACB1wAAgdgAAIHZAACB2gAAgdsAAIHcAACB3QAAgd4AAIHfAACB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AGoAAAAlAAAAKAAAAEhhc2ggdGFibGUgY2FwYWNpdHkgb3ZlcmZsb3eYHhEAHAAAABIeEAAqAAAAJQAAACgAAACkFBAAagAAALYAAAAUAAAApAAAAAwAAAAEAAAAoAEAAKEBAACiAQBB/L3EAAvlGQEAAACoAAAAAAAAAAQAAAAEAAAARwAAAJP0KqYkdcJruBMj36YIMbHK3Z7guRk0Y3X0d+GGnSFzAAAAAAQAAAAEAAAAowEAAAAAAAAEAAAABAAAAKQBAAAAAAAABAAAAAQAAACkAQAAAAAAAAQAAAAEAAAAsQAAAAAAAAAEAAAABAAAALIAAAAAAAAABAAAAAQAAAClAQAAaW5uZXIAAAAAAAAABAAAAAQAAACmAQAASW1hZ2VCdWZmZXJTaXplYWN0dWFsUG9sbGVkQWZ0ZXJFbmRPZkltYWdlUG9sbGVkQWZ0ZXJGYXRhbEVycm9yRXJyAAAAAAAABAAAAAQAAACnAQAARm9ybWF0RXJyb3JSaWZmU2lnbmF0dXJlSW52YWxpZFdlYnBTaWduYXR1cmVJbnZhbGlkQ2h1bmtNaXNzaW5nQ2h1bmtIZWFkZXJJbnZhbGlkUmVzZXJ2ZWRCaXRTZXRJbnZhbGlkQWxwaGFQcmVwcm9jZXNzaW5nSW52YWxpZENvbXByZXNzaW9uTWV0aG9kQWxwaGFDaHVua1NpemVNaXNtYXRjaEltYWdlVG9vTGFyZ2VGcmFtZU91dHNpZGVJbWFnZUxvc3NsZXNzU2lnbmF0dXJlSW52YWxpZFZlcnNpb25OdW1iZXJJbnZhbGlkSW52YWxpZENvbG9yQ2FjaGVCaXRzSHVmZm1hbkVycm9yQml0U3RyZWFtRXJyb3JUcmFuc2Zvcm1FcnJvclZwOE1hZ2ljSW52YWxpZE5vdEVub3VnaEluaXREYXRhQ29sb3JTcGFjZUludmFsaWRMdW1hUHJlZGljdGlvbk1vZGVJbnZhbGlkSW50cmFQcmVkaWN0aW9uTW9kZUludmFsaWRDaHJvbWFQcmVkaWN0aW9uTW9kZUludmFsaWRJbmNvbnNpc3RlbnRJbWFnZVNpemVzVW5zdXBwb3J0ZWRGZWF0dXJlSW52YWxpZFBhcmFtZXRlck1lbW9yeUxpbWl0RXhjZWVkZWRJbnZhbGlkQ2h1bmtTaXplTm9Nb3JlRnJhbWVzSW52YWxpZERpbWVuc2lvbnMAAAAABAAAAAQAAACoAQAAVHJ5UmVzZXJ2ZUVycm9yTGltaXRzRXhjZWVkZWQAAACrAAAACAAAAAQAAAAtAAAAqwAAAAgAAAAEAAAArAAAAC0AAABUIhEArQAAAK4AAACvAAAAsAAAAKMAAABVbnJlcHJlc2VudGFibGVJbnZhbGlkS2V5d29yZFNpemVNaXNzaW5nTnVsbFNlcGFyYXRvckluZmxhdGlvbkVycm9yT3V0T2ZEZWNvbXByZXNzaW9uU3BhY2VJbnZhbGlkQ29tcHJlc3Npb25GbGFnTWlzc2luZ0NvbXByZXNzaW9uRmxhZwAAAAAAAAQAAAAEAAAAsQAAAAAAAAAEAAAABAAAAGcAAABDcmNNaXNtYXRjaGNyY192YWxjcmNfc3VtSW52YWxpZFNpZ25hdHVyZU1pc3NpbmdGY3RsTWlzc2luZ0ltYWdlRGF0YUNodW5rQmVmb3JlSWhkckFmdGVySWRhdEJlZm9yZVBsdGVBZnRlclBsdGVPdXRzaWRlUGx0ZUlkYXREdXBsaWNhdGVDaHVua0FwbmdPcmRlcnByZXNlbnRTaG9ydFBhbGV0dGVsZW4AAAAAAAEAAAABAAAAqQEAAEludmFsaWRTYml0Q2h1bmtTaXplY29sb3JfdHlwZQAAAAAAAAEAAAABAAAAqgEAAEludmFsaWRTYml0c2FtcGxlX2RlcHRoc2JpdFBhbGV0dGVSZXF1aXJlZAAAAAAAAAQAAAAEAAAAqwEAAEludmFsaWRDb2xvckJpdERlcHRoYml0X2RlcHRoQ29sb3JXaXRoQmFkVHJuc0ludmFsaWRCaXREZXB0aEludmFsaWRDb2xvclR5cGVJbnZhbGlkRGlzcG9zZU9wSW52YWxpZEJsZW5kT3BJbnZhbGlkVW5pdEludmFsaWRTcmdiUmVuZGVyaW5nSW50ZW50VW5rbm93bkNvbXByZXNzaW9uTWV0aG9kVW5rbm93bkZpbHRlck1ldGhvZFVua25vd25JbnRlcmxhY2VNZXRob2RCYWRTdWJGcmFtZUJvdW5kcwAAAAAAAAAEAAAABAAAAKwBAABDb3JydXB0RmxhdGVTdHJlYW1lcnJOb01vcmVJbWFnZURhdGFCYWRUZXh0RW5jb2RpbmdGZGF0U2hvcnRlclRoYW5Gb3VyQnl0ZXNVbmV4cGVjdGVkUmVzdGFydE9mRGF0YUNodW5rU2VxdWVuY2VDaHVua0xlbmd0aFdyb25nVW5yZWNvZ25pemVkQ3JpdGljYWxDaHVua3R5cGVfc3RyQmFkR2FtbWFWYWx1ZQAAAAAAAAAIAAAABAAAAK0BAABBbGxvY0Vycm9ybm9uX2V4aGF1c3RpdmVUaGUgZW5jb2RlciBvciBkZWNvZGVyIGZvciAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgY29sb3IgdHlwZSBgAAAALCYRABsAAABHJhEAIgAAAP/EEQABAAAAQ29udmVydGluZyB3aXRoIHRoZSB0ZXhlbCBtZW1vcnkgbGF5b3V0ICBpcyBub3Qgc3VwcG9ydGVkAAAAhCYRACgAAACsJhEAEQAAAFRoZSBjb2xvcmltZXRyaWMgaW50ZXJwcmV0YXRpb24gb2YgYSBDSUNQIGNvbG9yIHNwYWNlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGDQJhEATAAAAP/EEQABAAAAVGhlIGZpbGUgZXh0ZW5zaW9uICB3YXMgbm90IHJlY29nbml6ZWQgYXMgYW4gaW1hZ2UgZm9ybWF0AAAALCcRABMAAAA/JxEAJgAAAFRoZSBpbWFnZSBmb3JtYXQgY291bGQgbm90IGJlIGRldGVybWluZWRUaGUgaW1hZ2UgZm9ybWF0IAAAAKAnEQARAAAArCYRABEAAABUaGUgZGVjb2RlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmb3JtYXQgZmVhdHVyZSDEJxEAMAAAAFRoZSBkZWNvZGVyIGZvciAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZm9ybWF0IGZlYXR1cmVzIAAA/CcRABAAAAAMKBEAJgAAAFRoZSBJbWFnZSdzIGRpbWVuc2lvbnMgYXJlIGVpdGhlciB0b28gc21hbGwgb3IgdG9vIGxhcmdlVGhlIGVuZCB0aGUgaW1hZ2Ugc3RyZWFtIGhhcyBiZWVuIHJlYWNoZWQgZHVlIHRvIGEgcHJldmlvdXMgZXJyb3JUaGUgQ0lDUCAgY2FuIG5vdCBiZSB1c2VkIGZvciBSR0IgaW1hZ2VzAAAAvSgRAAkAAADGKBEAHwAAAFRoZSBwYXJhbWV0ZXIgaXMgbWFsZm9ybWVkOiD4KBEA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bGFnIGludmFsaWRJbnZhbGlkIGNvbXByZXNzaW9uIG1ldGhvZEFscGhhIGNodW5rIHNpemUgbWlzbWF0Y2hJbWFnZSB0b28gbGFyZ2VGcmFtZSBvdXRzaWRlIGltYWdlSW52YWxpZCBsb3NzbGVzcyBzaWduYXR1cmU6IJg+EQAcAAAASW52YWxpZCBsb3NzbGVzcyB2ZXJzaW9uIG51bWJlcjogAAAAvD4RACEAAABJbnZhbGlkIGNvbG9yIGNhY2hlIGJpdHM6IAAA6D4RABoAAABJbnZhbGlkIEh1ZmZtYW4gY29kZUNvcnJ1cHQgYml0c3RyZWFtSW52YWxpZCB0cmFuc2Zvcm1JbnZhbGlkIFZQOCBtYWdpYzogAAAAQj8RABMAAABOb3QgZW5vdWdoIFZQOCBpbml0IGRhdGFJbnZhbGlkIFZQOCBjb2xvciBzcGFjZTogAAAAeD8RABkAAABJbnZhbGlkIFZQOCBsdW1hIHByZWRpY3Rpb24gbW9kZTogAACcPxEAIgAAAEludmFsaWQgVlA4IGludHJhIHByZWRpY3Rpb24gbW9kZTogAMg/EQAjAAAASW52YWxpZCBWUDggY2hyb21hIHByZWRpY3Rpb24gbW9kZTog9D8RACQAAABJbmNvbnNpc3RlbnQgaW1hZ2Ugc2l6ZXNVbnN1cHBvcnRlZCBmZWF0dXJlOiAAAAA4QBEAFQAAAEludmFsaWQgcGFyYW1ldGVyOiAAWEARABMAAABNZW1vcnkgbGltaXQgZXhjZWVkZWRJbnZhbGlkIGNodW5rIHNpemVObyBtb3JlIGZyYW1lc2Nsb3N1cmUgaW52b2tlZCByZWN1cnNpdmVseSBvciBhZnRlciBiZWluZyBkcm9wcGVkAHInEABjAAAAhTUAAAEAAAA3NDMyMTAvLi1n8kJD5SwrKikoJyYlJCMiITggHx4dHP+UpJWIoJut3d6GeujK1+DQ3My7t7OxqLLI4sOauK5+eL+dwqq9oqGWwY6Jq7C5p7pwr8C8nIyPe4WAk4qSct+X+dju7P3j2ub3h7Tx6fb054v18/vrycTw1pi2zbV/G9TT0tXkxamfg6xpUGJgYVHPkXRzkIKZeWuEbW58b1Jsdo1xgXd9pXVcalNIY11BT6bto8e+4dHLxtnbzur4nu//////////////////////////////////////////////////////////////////////////////////////1wEQAG4AAADZAQAAHQAAANcBEABuAAAA2gEAABkAAADXARAAbgAAADECAAAbAAAA1wEQAG4AAAAyAgAAHQAAAEYCEABPAAAAYQMAADIAAAB5GhAAcAAAABECAAAoAAAAeRoQAHAAAACGAgAAHQAAAAAAAIAAQADAACAAoABgAOAAEACQAFAA0AAwALAAcADwAAgAiABIAMgAKACoAGgA6AAYAJgAWADYADgAuAB4APgABACEAEQAxAAkAKQAZADkABQAlABUANQANAC0AHQA9AAMAIwATADMACwArABsAOwAHACcAFwA3AA8ALwAfAD8AAIAggBCAMIAIgCiAGIA4gASAJIAUgDSADIAsgByAPIACgCKAEoAygAqAKoAagDqABoAmgBaANoAOgC6AHoA+gAGAIYARgDGACYApgBmAOYAFgCWAFYA1gA2ALYAdgD2AA4AjgBOAM4ALgCuAG4A7gAeAJ4AXgDeAD4AvgB+AP4AAQCBAEEAwQAhAKEAYQDhABEAkQBRANEAMQCxAHEA8QAJAIkASQDJACkAqQBpAOkAGQCZAFkA2QA5ALkAeQD5AAUAhQBFAMUAJQClAGUA5QAVAJUAVQDVADUAtQB1APUADQCNAE0AzQAtAK0AbQDtAB0AnQBdAN0APQC9AH0A/QADAIMAQwDDACMAowBjAOMAEwCTAFMA0wAzALMAcwDzAAsAiwBLAMsAKwCrAGsA6wAbAJsAWwDbADsAuwB7APsABwCHAEcAxwAnAKcAZwDnABcAlwBXANcANwC3AHcA9wAPAI8ATwDPAC8ArwBvAO8AHwCfAF8A3wA/AL8AfwD/gACAgIBAgMCAIICggGCA4IAQgJCAUIDQgDCAsIBwgPCACICIgEiAyIAogKiAaIDogBiAmIBYgNiAOIC4gHiA+IAEgISARIDEgCSApIBkgOSAFICUgFSA1IA0gLSAdID0gAyAjIBMgMyALICsgGyA7IAcgJyAXIDcgDyAvIB8gPyAAoCCgEKAwoAigKKAYoDigBKAkoBSgNKAMoCygHKA8oAKgIqASoDKgCqAqoBqgOqAGoCagFqA2oA6gLqAeoD6gAaAhoBGgMaAJoCmgGaA5oAWgJaAVoDWgDaAtoB2gPaADoCO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AAAlAAAANykQAGIAAACPAQAAFAAAADcpEABiAAAAlwEAAEIAAAA3KRAAYgAAAJgBAAAfAAAANykQAGIAAACYAQAAFAAAAENodW5rVHlwZQAAAAAAAAAEAAAAAQAAAMABAAAAAAAAAQAAAAEAAADBAQAAY3JpdGljYWxwcml2YXRlcmVzZXJ2ZWRzYWZlY29weQBWExAAYwAAAEIAAAAdAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZTogTm90IGEgcG9zc2libGUgYnl0ZSByb3VuZGVkIHBpeGVsIHdpZHRoAAAA7EwRAFEAAABWExAAYwAAAFEDAAASAAAAd3JvbmcgZGF0YSBzaXplLCBleHBlY3RlZCAgZ290IABYTREAGgAAAHJNEQAFAAAARW5kIG9mIGltYWdlIGhhcyBiZWVuIHJlYWNoZWRBIGZhdGFsIGRlY29kaW5nIGVycm9yIGhhcyBiZWVuIGVuY291bnRlZCBlYXJsaWVybGltaXRzIGFyZSBleGNlZWRlZENSQyBlcnJvcjogZXhwZWN0ZWQgMHggaGF2ZSAweCB3aGlsZSBkZWNvZGluZyAgY2h1bmsuAADpTREAFgAAAP9NEQAIAAAAB04RABAAAAAXThEABwAAAEludmFsaWQgUE5HIHNpZ25hdHVyZS5mY1RMIGNodW5rIG1pc3NpbmcgYmVmb3JlIGZkQVQgY2h1bmsuSURBVCBvciBmZEFUIGNodW5rIGlzIG1pc3NpbmcuIGNodW5rIGFwcGVhcmVkIGJlZm9yZSBJSERSIGNodW5rAAABAAAAAAAAAJlOEQAhAAAAQ2h1bmsgIGlzIGludmFsaWQgYWZ0ZXIgSURBVCBjaHVuay4AzE4RAAYAAADSThEAHQAAACBpcyBpbnZhbGlkIGJlZm9yZSBQTFRFIGNodW5rLgAAzE4RAAYAAAAATxEAHgAAACBpcyBpbnZhbGlkIGFmdGVyIFBMVEUgY2h1bmsuAAAAzE4RAAYAAAAwTxEAHQAAACBtdXN0IGFwcGVhciBiZXR3ZWVuIFBMVEUgYW5kIElEQVQgY2h1bmtzLgAAzE4RAAYAAABgTxEAKgAAACBtdXN0IGFwcGVhciBhdCBtb3N0IG9uY2UuAADMThEABgAAAJxPEQAaAAAAU2VxdWVuY2UgaXMgbm90IGluIG9yZGVyLCBleHBlY3RlZCAjIGdvdCAjAADITxEAJAAAAOxPEQAGAAAAoF0RAAEAAABOb3QgZW5vdWdoIHBhbGV0dGUgZW50cmllcywgZXhwZWN0IAAMUBEAIwAAAHJNEQAFAAAAoF0RAAEAAABUaGUgc2l6ZSBvZiB0aGUgc0JJVCBjaHVuayBzaG91bGQgYmUgIGJ5dGUocyksIGJ1dCAgYnl0ZShzKSB3ZXJlIHByb3ZpZGVkIGZvciB0aGUgIGNvbG9yIHR5cGUuAABIUBEAJQAAAG1QEQAOAAAAe1ARAB8AAACaUBEADAAAAEludmFsaWQgc0JJVCB2YWx1ZSAuIEl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8gYW5kIGxlc3MgdGhhbiB0aGUgc2FtcGxlIGRlcHRoIAAAAMhQEQATAAAA21ARAD4AAACgXREAAQAAAE1pc3NpbmcgcGFsZXR0ZSBvZiBpbmRleGVkIGltYWdlLkludmFsaWQgY29sb3IvZGVwdGggY29tYmluYXRpb24gaW4gaGVhZGVyOiAvAAAAVVERACsAAACAUREAAQAAAFRyYW5zcGFyZW5jeSBjaHVuayBmb3VuZCBmb3IgY29sb3IgdHlwZSCUUREAKAAAAKBdEQABAAAASW52YWxpZCBpbWFnZSBkaW1lbnNpb25zSW52YWxpZCBiaXQgZGVwdGggAADkUREAEgAAAKBdEQABAAAASW52YWxpZCBjb2xvciB0eXBlIAAIUhEAEwAAAKBdEQABAAAASW52YWxpZCBkaXNwb3NlIG9wIAAsUhEAEwAAAKBdEQABAAAASW52YWxpZCBibGVuZCBvcCAAAABQUhEAEQAAAKBdEQABAAAASW52YWxpZCBwaHlzaWNhbCBwaXhlbCBzaXplIHVuaXQgAAAAdFIRACEAAACgXREAAQAAAEludmFsaWQgc1JHQiByZW5kZXJpbmcgaW50ZW50IAAAqFIRAB4AAACgXREAAQAAAFVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIADYUhEAGwAAAKBdEQABAAAAVW5rbm93biBmaWx0ZXIgbWV0aG9kIAAABFMRABYAAACgXREAAQAAAFVua25vd24gaW50ZXJsYWNlIG1ldGhvZCAAAAAsUxEAGQAAAKBdEQABAAAAU3ViIGZyYW1lIGlzIG91dC1vZi1ib3VuZHMuQ29ycnVwdCBkZWZsYXRlIHN0cmVhbS4gSURBVCBvciBmREFUIGNodW5rIGRvZXMgbm90IGhhdmUgZW5vdWdoIGRhdGEgZm9yIGltYWdlLlVucmVwcmVzZW50YWJsZSBkYXRhIGluIHRFWHQgY2h1bmsuAAAAwlMRACMAAABLZXl3b3JkIGVtcHR5IG9yIGxvbmdlciB0aGFuIDc5IGJ5dGVzLgAA8FMRACYAAABObyBudWxsIHNlcGFyYXRvciBpbiB0RVh0IGNodW5rLiBUEQAgAAAASW52YWxpZCBjb21wcmVzc2VkIHRleHQgZGF0YS4AAABIVBEAHQAAAE91dCBvZiBkZWNvbXByZXNzaW9uIHNwYWNlLiBUcnkgd2l0aCBhIGxhcmdlciBsaW1pdC5wVBEANAAAAFVzaW5nIGFuIHVucmVjb2duaXplZCBieXRlIGFzIGNvbXByZXNzaW9uIG1ldGhvZC4AAACsVBEAMQAAAFVzaW5nIGEgZmxhZyB0aGF0IGlzIG5vdCAwIG9yIDI1NSBhcyBhIGNvbXByZXNzaW9uIGZsYWcgZm9yIGlUWHQgY2h1bmsuAOhUEQBHAAAATm8gY29tcHJlc3Npb24gZmxhZyBpbiB0aGUgaVRYdCBjaHVuay4AADhVEQAmAAAAZmRBVCBjaHVuayBzaG9ydGVyIHRoYW4gNCBieXRlc1VuZXhwZWN0ZWQgcmVzdGFydCBvZiAgY2h1bmsgc2VxdWVuY2WHVREAFgAAAJ1VEQAPAAAAQ2h1bmsgbGVuZ3RoIHdyb25nOiC8VREAFAAAAFVucmVjb2duaXplZCBjcml0aWNhbCBjaHVuazogAAAA2FURAB0AAABCYWQgZ2FtbWEgdmFsdWUuQRYQAGsAAAC4AgAAPAAAAEEWEABrAAAAugIAAB8AAABBFhAAawAAAM4CAAAnAAAAQRYQAGsAAADjAgAAHgAAAEEWEABrAAAAGAMAACcAAABBFhAAawAAADMDAAA3AAAAQRYQAGsAAAAnBAAAKgAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGU6IFVucmVjb2duaXplZCBjaHVuayAgc2hvdWxkIGhhdmUgYmVlbiBjYXVnaHQg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AAAAAAAIAAAABAAAANkBAADaAQAA2wEAAHVuaXRhIGJvb2xlYW5hIHN0cmluZ2J5dGUgYXJyYXlib29sZWFuIGAvjBEACQAAAP/EEQABAAAAaW50ZWdlciBgAAAASIwRAAkAAAD/xBEAAQAAAGNoYXJhY3RlciBgAGSMEQALAAAA/8QRAAEAAABzdHJpbmcgAICMEQAHAAAAdW5pdCB2YWx1ZU9wdGlvbiB2YWx1ZW5ld3R5cGUgc3RydWN0c2VxdWVuY2VtYXBlbnVtdW5pdCB2YXJpYW50bmV3dHlwZSB2YXJpYW50dHVwbGUgdmFyaWFudHN0cnVjdCB2YXJpYW50AAAA9CAQAGsAAAAkCQAAEgAAAP/EEQABAAAA/8QRAAEAAABgIG9yIGAAAP/EEQABAAAAHI0RAAYAAAD/xBEAAQAAAG9uZSBvZiAsIC4wdTh1MzJ1NjR1c2l6ZWYzMmluZi1pbmZOYU4AAACkAAAADAAAAAQAAACTAQAAlAEAANwBAEGEm8YAC80YAQAAAKgAAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5AAMYEABLAAAADwsAAA4AAAAGExAATwAAADwGAAAUAAAABhMQAE8AAAA8BgAAIQAAAAYTEABPAAAAMAYAABQAAAAGExAATwAAADAGAAAhAAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi5pc19jaGFyX2JvdW5kYXJ5KG5ld19sZW4pBhMQAE8AAAC9BAAAJAAAAEVPRiB3aGlsZSBwYXJzaW5nIGEgbGlzdEVPRiB3aGlsZSBwYXJzaW5nIGFuIG9iamVjdEVPRiB3aGlsZSBwYXJzaW5nIGEgc3RyaW5nRU9GIHdoaWxlIHBhcnNpbmcgYSB2YWx1ZWV4cGVjdGVkIGA6YGV4cGVjdGVkIGAsYCBvciBgXWBleHBlY3RlZCBgLGAgb3IgYH1gZXhwZWN0ZWQgaWRlbnRleHBlY3RlZCB2YWx1ZWV4cGVjdGVkIGAiYGludmFsaWQgZXNjYXBlaW52YWxpZCBudW1iZXJudW1iZXIgb3V0IG9mIHJhbmdlaW52YWxpZCB1bmljb2RlIGNvZGUgcG9pbnRjb250cm9sIGNoYXJhY3RlciAoXHUwMDAwLVx1MDAxRikgZm91bmQgd2hpbGUgcGFyc2luZyBhIHN0cmluZ2tleSBtdXN0IGJlIGEgc3RyaW5naW52YWxpZCB2YWx1ZTogZXhwZWN0ZWQga2V5IHRvIGJlIGEgbnVtYmVyIGluIHF1b3Rlc2Zsb2F0IGtleSBtdXN0IGJlIGZpbml0ZSAoZ290IE5hTiBvciArLy1pbmYpbG9uZSBsZWFkaW5nIHN1cnJvZ2F0ZSBpbiBoZXggZXNjYXBldHJhaWxpbmcgY29tbWF0cmFpbGluZyBjaGFyYWN0ZXJzdW5leHBlY3RlZCBlbmQgb2YgaGV4IGVzY2FwZXJlY3Vyc2lvbiBsaW1pdCBleGNlZWRlZCBhdCBsaW5lICBjb2x1bW4gAAAAAQAAAAAAAACIkBEACQAAAJGQEQAIAAAARXJyb3IoLCBsaW5lOiAsIGNvbHVtbjogtJARAAYAAAC6kBEACAAAAMKQEQAKAAAAphASAAEAAABpbnZhbGlkIHZhbHVlOiAA7JARAA8AAAAfxREACwAAAGZsb2F0aW5nIHBvaW50IGAMkREAEAAAAP/EEQABAAAAbnVsbMQKEABqAAAA9wEAACEAAADEChAAagAAAPsBAAAMAAAAxAoQAGoAAAACAgAAIQAAAMQKEABqAAAACwIAACoAAADEChAAagAAAA8CAAAsAAAAxAoQAGoAAAAUAgAACQAAAI0kEABpAAAApgEAAEUAAACNJBAAaQAAAKsBAAA9AAAAjSQQAGkAAACzAQAAGgAAAI0kEABpAAAAAAIAABMAAACNJBAAaQAAAAUCAAAzAAAAjSQQAGkAAAAJAgAAPgAAAI0kEABpAAAADwIAADoAAACNJBAAaQAAAFwCAAATAAAAjSQQAGkAAABuAgAAGQAAAI0kEABpAAAAcgMAABkAAACNJBAAaQAAAHMDAAAaAAAAjSQQAGkAAAB0AwAAGQAAAI0kEABpAAAAdQMAABkAAACNJBAAaQAAAHYDAAAZAAAAjSQQAGkAAAB3AwAAGQAAAI0kEABpAAAAeAMAABkAAACNJBAAaQAAAHkDAAAZAAAAjSQQAGkAAADUAwAAEQAAAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAQACAAMABAAFAAYABwAIAAkA//////////////////8KAAsADAANAA4ADwD/////////////////////////////////////////////////////////////////////CgALAAwADQAOAA8A////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAQACAAMABAAFAAYABwAIAAkAD//////////////////6AAsADAANAA4ADwAP////////////////////////////////////////////////////////////////////+gALAAwADQAOAA8AD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9pbnZhbGlkIHR5cGU6IAAAsJYRAA4AAAAfxREACwAAACBjYW4ndCBiZSByZXByZXNlbnRlZCBhcyBhIEphdmFTY3JpcHQgbnVtYmVyAQAAAAAAAADQlhEALAAAAAMnEABuAAAANQAAAA4AAAALDRAATgAAACMIAAARAAAADhAQAHMAAAA5AAAACQAAANAoEABmAAAApQYAAEsAAADQKBAAZgAAAKsGAABLAAAA0CgQAGYAAACrBgAAMQAAANAoEABmAAAApQYAADEAAADQKBAAZgAAAJkGAABJAAAA0CgQAGYAAACZBgAAMQAAANAoEABmAAAA1gYAAEsAAADQKBAAZgAAAN0GAABLAAAA0CgQAGYAAADdBgAAMQAAANAoEABmAAAA1gYAADEAAADQKBAAZgAAAMkGAABNAAAA0CgQAGYAAADJBgAANQAAANAoEABmAAAAuwYAAE0AAADQKBAAZgAAALsGAAA1AAAA0CgQAGYAAACNBgAASQAAANAoEABmAAAAjQYAADEAAADQKBAAZgAAAMUHAAAqAAAA0CgQAGYAAACiBwAAFQAAANAoEABmAAAArAcAACEAAADQKBAAZgAAALoHAAAiAAAA0CgQAGYAAACxBwAAIQAAANAoEABmAAAABwQAAB0AAADQKBAAZgAAABoEAAAaAAAA0CgQAGYAAAAbBAAAMQAAANAoEABmAAAAHAQAAAkAAADQKBAAZgAAABIEAAAtAAAA0CgQAGYAAAATBAAAEQAAAKsAAAAIAAAABAAAAKwAAABSZWFkaW5nIGZyb20gJlt1OF0gY2FuJ3QgZmFpbCBhbmQgdGhlIGNodW5rIGlzIGNvbXBsZXRlANAoEABmAAAADQQAABYAAABhc3NlcnRpb24gZmFpbGVkOiBjb21wbGV4aXR5IDw9IDIAAADQKBAAZgAAANMFAAAJAAAA0CgQAGYAAADXBQAAHAAAAAABAgMGBAUGBgYGBgYGBgfQKBAAZgAAAOEFAAAZAAAAdW5rbm93biB0b2tlbjogAKiZEQAPAAAA0CgQAGYAAAADBgAAFgAAAJ8AQdyzxgALAqWRAEHos8YACwOtlIwAQfSzxgAL9U6wm4yHAAAAAAAAAAC0nY2GggAAAAAAAAD+/vPmxLGZjIWCgQAFBwsTI0MAAQQIBQIDBgkMDQoHCw4PAADQKBAAZgAAABUGAAANAAAA0CgQAGYAAACxBAAAEQAAANAoEABmAAAAswQAABEAAADQKBAAZgAAALUEAAARAAAA0CgQAGYAAADFBAAAJQAAAE5vbi1rZXlmcmFtZSBmcmFtZXMA0CgQAGYAAABzBQAAGwAAANAoEABmAAAAdQUAADEAAADQKBAAZgAAAHkFAAA3AAAA0CgQAGYAAACBBQAAVgAAANAoEABmAAAAgQUAAC8AAADQKBAAZgAAAHkFAAArAAAA0CgQAGYAAAAoBgAAJgAAANAoEABmAAAAKgYAABcAAADQKBAAZgAAAC8GAAAVAAAABQAAAAcAAADQKBAAZgAAAFcGAAAgAAAA0CgQAGYAAABeBgAALgAAANAoEABmAAAAXgYAACYAAADQKBAAZgAAAGoGAAAdAAAA0CgQAGYAAABBBgAAKgAAANAoEABmAAAAQgYAABsAAADQKBAAZgAAAE0GAAAZAAAA0CgQAGYAAAC8BQAASgAAANAoEABmAAAAvgUAADUAAADQKBAAZgAAAL4FAAAlAAAA0CgQAGYAAAC8BQAAOgAAAFZQOCBpbnRlci1wcmVkaWN0aW9uhAGRAAIDnAGAgaMCgoOAA9AoEABmAAAANQUAAC8AAACAAecAgQJ4AYIDMAIEBlkDgwVzBIWGcQWEB3gGhwiYB4iJcAiAAZgAgQKzAYIDQAIEBn4DgwWqBIWGdgWEBy4GhwhGB4iJXwiAAa8AgQJFAYIDjwIEBlADgwVVBIWGUgWEB0gGhwibB4iJZwiAATgAgQI6AYIDCgIEBqsDgwXaBIWGvQWEBxEGhwgNB4iJmAiAAZAAgQJHAYIDCgIEBiYDgwWrBIWG1QWEB5AGhwgiB4iJGgiAAXIAgQIaAYIDEQIEBqMDgwUsBIWGwwWEBxUGhwgKB4iJrQiAAXkAgQIYAYIDUAIEBsMDgwUaBIWGPgWEBywGhwhAB4iJVQiAAaoAgQIuAYIDNwIEBhMDgwWIBIWGoAWEByEGhwjOB4iJRwiAAT8AgQIUAYIDCAIEBnIDgwVyBIWG0AWEBwwGhwgJB4iJ4giAAVEAgQIoAYIDCwIEBmADgwW2BIWGVAWEBx0GhwgQB4iJJAiAAYYAgQK3AYIDWQIEBokDgwViBIWGZQWEB2oGhwilB4iJlAiAAUgAgQK7AYIDZAIEBoIDgwWdBIWGbwWEByAGhwhLB4iJUAiAAUIAgQJmAYIDpwIEBmMDgwVKBIWGPgWEBygGhwjqB4iJgAiAASkAgQI1AYIDCQIEBrIDgwXxBIWGjQWEBxoGhwgIB4iJawiAAWgAgQJPAYIDDAIEBhsDgwXZBIWG/wWEB1cGhwgRB4iJBwiAAUoAgQIrAYIDGgIEBpIDgwVJBIWGpgWEBzEGhwgXB4iJnQiAAUEAgQImAYIDaQIEBqADgwUzBIWGNAWEBx8GhwhzB4iJgAiAAVcAgQJEAYIDRwIEBiwDgwVyBIWGMwWEBw8Ghwi6B4iJFwiAAS8AgQIpAYIDDgIEBm4DgwW2BIWGtwWEBxUGhwgRB4iJwgiAAUIAgQItAYIDGQIEBmYDgwXFBIWGvQWEBxcGhwgSB4iJFgiAAVgAgQJYAYIDkwIEBpYDgwUqBIWGLgWEBy0GhwjEB4iJzQiAASsAgQJhAYIDtwIEBnUDgwVVBIWGJgWEByMGhwizB4iJPQiAAScAgQI1AYIDyAIEBlcDgwUaBIWGFQWEBysGhwjoB4iJqwiAATgAgQIiAYIDMwIEBmgDgwVyBIWGZgWEBx0GhwhdB4iJTQiAAWsAgQI2AYIDIAIEBhoDgwUzBIWGAQWEB1EGhwgrB4iJHwiAAScAgQIcAYIDVQIEBqsDgwU6BIWGpQWEB1oGhwhiB4iJQAiAASIAgQIWAYIDdAIEBs4DgwUXBIWGIgWEBysGhwimB4iJSQiAAUQAgQIZAYIDagIEBhYDgwVABIWGqwWEByQGhwjhB4iJcgiAASIAgQITAYIDFQIEBmYDgwWEBIWGvAWEBxAGhwhMB4iJfAiAAT4AgQISAYIDTgIEBl8DgwVVBIWGOQWEBzIGhwgwB4iJMwiAAcEAgQJlAYIDIwIEBp8DgwXXBIWGbwWEB1kGhwguB4iJbwiAATwAgQKUAYIDHwIEBqwDgwXbBIWG5AWEBxUGhwgSB4iJbwiAAXAAgQJxAYIDTQIEBlUDgwWzBIWG/wWEByYGhwh4B4iJcgiAASgAgQIqAYIDAQIEBsQDgwX1BIWG0QWEBwoGhwgZB4iJbQiAAWQAgQJQAYIDCAIEBisDgwWaBIWGAQWEBzMGhwgaB4iJRwiAAVgAgQIrAYIDHQIEBowDgwWmBIWG1QWEByUGhwgrB4iJmgiAAT0AgQI/AYIDHgIEBpsDgwVDBIWGLQWEB0QGhwgBB4iJ0QiAAY4AgQJOAYIDTgIEBhADgwX/BIWGgAWEByIGhwjFB4iJqwiAASkAgQIoAYIDBQIEBmYDgwXTBIWGtwWEBwQGhwgBB4iJ3QiAATMAgQIyAYIDEQIEBqgDgwXRBIWGwAWEBxcGhwgZB4iJUgiAAX0AgQJiAYIDKgIEBlgDgwVoBIWGVQWEB3UGhwivB4iJUgiAAV8AgQJUAYIDNQIEBlkDgwWABIWGZAWEB3EGhwhlB4iJLQiAAUsAgQJPAYIDewIEBi8DgwUzBIWGgAWEB1EGhwirB4iJAQiAATkAgQIRAYIDBQIEBkcDgwVmBIWGOQWEBzUGhwgpB4iJMQiAAXMAgQIVAYIDAgIEBgoDgwVmBIWG/wWEB6YGhwgXB4iJBgiAASYAgQIhAYIDDQIEBnkDgwU5BIWGSQWEBxoGhwgBB4iJVQiAASkAgQIKAYIDQwIEBooDgwVNBIWGbgWEB1oGhwgvB4iJcgiAAWUAgQIdAYIDEAIEBgoDgwVVBIWGgAWEB2UGhwjEB4iJGgiAATkAgQISAYIDCgIEBmYDgwVmBIWG1QWEByIGhwgUB4iJKwiAAXUAgQIUAYIDDwIEBiQDgwWjBIWGgAWEB0QGhwgBB4iJGgiAAYoAgQIfAYIDJAIEBqsDgwUbBIWGpgWEByYGhwgsB4iJ5QiAAUMAgQJXAYIDOgIEBqkDgwVSBIWGcwWEBxoGhwg7B4iJswiAAT8AgQI7AYIDWgIEBrQDgwU7BIWGpgWEB10GhwhJB4iJmgiAASgAgQIoAYIDFQIEBnQDgwWPBIWG0QWEByIGhwgnB4iJrwiAATkAgQIuAYIDFgIEBhgDgwWABIWGAQWEBzYGhwgRB4iJJQiAAS8AgQIPAYIDEAIEBrcDgwUiBIWG3wWEBzEGhwgtB4iJtwiAAS4AgQIRAYIDIQIEBrcDgwUGBIWGYgWEBw8GhwggB4iJtwiAAUEAgQIgAYIDSQIEBnMDgwUcBIWGgAWEBxcGhwiAB4iJzQiAASgAgQIDAYIDCQIEBnMDgwUzBIWGwAWEBxIGhwgGB4iJ3wiAAVcAgQIlAYIDCQIEBnMDgwU7BIWGTQWEB0AGhwgVB4iJLwiAAWgAgQI3AYIDLAIEBtoDgwUJBIWGNgWEBzUGhwiCB4iJ4giAAUAAgQJaAYIDRgIEBs0DgwUoBIWGKQWEBxcGhwgaB4iJOQiAATYAgQI5AYIDcAIEBrgDgwUFBIWGKQWEByYGhwimB4iJ1QiAAR4AgQIiAYIDGgIEBoUDgwWYBIWGdAWEBwoGhwggB4iJhgiAAUsAgQIgAYIDDAIEBjMDgwXABIWG/wWEB6AGhwgrB4iJMwiAAScAgQITAYIDNQIEBt0DgwUaBIWGcgWEByAGhwhJB4iJ/wiAAR8AgQIJAYIDQQIEBuoDgwUCBIWGDwWEBwEGhwh2B4iJSQiAAVgAgQIfAYIDIwIEBkMDgwVmBIWGVQWEBzcGhwi6B4iJVQiAATgAgQIVAYIDFwIEBm8DgwU7BIWGzQWEBy0GhwglB4iJwAiAATcAgQImAYIDRgIEBnwDgwVJBIWGZgWEBwEGhwgiB4iJYgiAAWYAgQI9AYIDRwIEBiUDgwUiBIWGNQWEBx8GhwjzB4iJwAiAAUUAgQI8AYIDRwIEBiYDgwVJBIWGdwWEBxwGhwjeB4iJJQiAAUQAgQItAYIDgAIEBiIDgwUBBIWGLwWEBwsGhwj1B4iJqwiAAT4AgQIRAYIDEwIEBkYDgwWSBIWGVQWEBzcGhwg+B4iJRgiAAUsAgQIPAYIDCQIEBgkDgwVABIWG/wWEB7gGhwh3B4iJEAiAASUAgQIrAYIDJQIEBpoDgwVkBIWGowWEB1UGhwigB4iJAQiAAT8AgQIJAYIDXAIEBogDgwUcBIWGQAWEByAGhwjJB4iJVQiAAVYAgQIGAYIDHAIEBgUDgwVABIWG/wWEBxkGhwj4B4iJAQiAATgAgQIIAYIDEQIEBoQDgwWJBIWG/wWEBzcGhwh0B4iJgAiAAToAgQIPAYIDFAIEBlIDgwWHBIWGOQWEBxoGhwh5B4iJKAiAAaQAgQIyAYIDHwIEBokDgwWaBIWGhQWEBxkGhwgjB4iJ2giAATMAgQJnAYIDLAIEBoMDgwWDBIWGewWEBx8GhwgGB4iJngiAAVYAgQIoAYIDQAIEBocDgwWUBIWG4AWEBy0Ghwi3B4iJgAiAARYAgQIaAYIDEQIEBoMDgwXwBIWGmgWEBw4GhwgBB4iJ0QiAAVMAgQIMAYIDDQIEBjYDgwXABIWG/wWEB0QGhwgvB4iJHAiAAS0AgQIQAYIDFQIEBlsDgwVABIWG3gWEBwcGhwgBB4iJxQiAATgAgQIVAYIDJwIEBpsDgwU8BIWGigWEBxcGhwhmB4iJ1QiAAVUAgQIaAYIDVQIEBlUDgwWABIWGgAWEByAGhwiSB4iJqwiAARIAgQILAYIDBwIEBj8DgwWQBIWGqwWEBwQGhwgEB4iJ9giAASMAgQIbAYIDCgIEBpIDgwWuBIWGqwWEBwwGhwgaB4iJgAiAAb4AgQJQAYIDIwIEBmMDgwW0BIWGUAWEB34Ghwg2B4iJLQiAAVUAgQJ+AYIDLwIEBlcDgwWwBIWGMwWEBykGhwgUB4iJIAiAAWUAgQJLAYIDgAIEBosDgwV2BIWGkgWEB3QGhwiAB4iJVQiAATgAgQIpAYIDDwIEBrADgwXsBIWGVQWEByUGhwgJB4iJPgiAAZIAgQIkAYIDEwIEBh4DgwWrBIWG/wWEB2EGhwgbB4iJFAiAAUcAgQIeAYIDEQIEBncDgwV2BIWG/wWEBxEGhwgSB4iJigiAAWUAgQImAYIDPAIEBooDgwU3BIWGRgWEBysGhwgaB4iJjgiAAYoAgQItAYIDPQIEBj4DgwXbBIWGAQWEB1EGhwi8B4iJQAiAASAAgQIpAYIDFAIEBnUDgwWXBIWGjgWEBxQGhwgVB4iJowiAAXAAgQITAYIDDAIEBj0DgwXDBIWGgAWEBzAGhwgEB4iJGAjQKBAAZgAAAD8FAAAlAAAAgAGOAIECcgGCg7cC0CgQAGYAAABRBQAAEQAAANAoEABmAAAAUgUAABEAAADQKBAAZgAAAFMFAAARAAAA////////////////////////////////////////////sPb////////////f8fz///////////n9/f////////////T8///////////q/v7///////////3///////////////b+///////////v/f7///////////7//v////////////j+///////////7//7///////////////////////////3+///////////7/v7///////////7//v////////////79//7////////6//7//v////////7/////////////////////////////////////////////////////////2f/////////////h/PH9///+/////+r68fr9//3+//////7////////////f/v7//////////+79/v7///////////j+///////////5/v////////////////////////////3////////////3/v////////////////////////////3+///////////8//////////////////////////////7+///////////9//////////////////////////////79///////////6//////////////7/////////////////////////////////////////////////////////uvv6///////////q+/T+//////////v78/3+//7///////3+///////////s/f7///////////v9/f7+//////////7+///////////+/v7///////////////////////////7////////////+/v////////////7////////////////////////////+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+P/////////////6/vz+//////////j++f3///////////39///////////2/f3///////////z++/7+//////////78///////////4/v3///////////3//v7///////////v+///////////1+/7///////////39/v////////////v9///////////8/f7////////////+//////////////z////////////5//7//////////////v/////////////9///////////6///////////////////////////////////////////+////////////////////////////0CgQAGYAAABXBwAAFwAAAIsBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosB/QCAAogBgQP+AgQG/wOCBeQEg4TbBQcIgAaFhoAHCQqACIeIgAmJioAKiwG9AIACgQGBA/ICBAb/A4IF4wSDhNUFBwj/BoWG2wcJCoAIh4iACYmKgAqLAWoAgAJ+AYED4wIEBvwDggXWBIOE0QUHCP8GhYb/BwkKgAiHiIAJiYqACosBAQCAAmIBgQP4AgQG/wOCBewEg4TiBQcI/waFhv8HCQqACIeIgAmJioAKiwG1AIAChQGBA+4CBAb+A4IF3QSDhOoFBwj/BoWGmgcJCoAIh4iACYmKgAqLAU4AgAKGAYEDygIEBvcDggXGBIOEtAUHCP8GhYbbBwkKgAiHiIAJiYqACosBAQCAArkBgQP5AgQG/wOCBfMEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwG4AIAClgGBA/cCBAb/A4IF7ASDhOAFBwiABoWGgAcJCoAIh4iACYmKgAqLAU0AgAJuAYED2AIEBv8DggXsBIOE5gUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAAmUBgQP7AgQG/wOCBfEEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGqAIACiwGBA/ECBAb8A4IF7ASDhNEFBwj/BoWG/wcJCoAIh4iACYmKgAqLASUAgAJ0AYEDxAIEBvMDggXkBIOE/wUHCP8GhYb/BwkKgAiHiIAJiYqACosBAQCAAswBgQP+AgQG/wOCBfUEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwHPAIACoAGBA/oCBAb/A4IF7gSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAWYAgAJnAYED5wIEBv8DggXTBIOEqwUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAApgBgQP8AgQG/wOCBfAEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwGxAIAChwGBA/MCBAb/A4IF6gSDhOEFBwiABoWGgAcJCoAIh4iACYmKgAqLAVAAgAKBAYED0wIEBv8DggXCBIOE4AUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAAgEBgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwH2AIACAQGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAf8AgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBxgCAAiMBgQPtAgQG3wOCBcEEg4S7BQcIogaFhqAHCQqRCIeImwmJij4KiwGDAIACLQGBA8YCBAbdA4IFrASDhLAFBwjcBoWGnQcJCvwIh4jdCYmKAQqLAUQAgAIvAYEDkgIEBtADggWVBIOEpwUHCN0GhYaiBwkK/wiHiN8JiYqACosBAQCAApUBgQPxAgQG/wOCBd0Eg4TgBQcI/waFhv8HCQqACIeIgAmJioAKiwG4AIACjQGBA+oCBAb9A4IF3gSDhNwFBwj/BoWGxwcJCoAIh4iACYmKgAqLAVEAgAJjAYEDtQIEBvIDggWwBIOEvgUHCPkGhYbKBwkK/wiHiP8JiYqACosBAQCAAoEBgQPoAgQG/QOCBdYEg4TFBQcI8gaFhsQHCQr/CIeI/wmJioAKiwFjAIACeQGBA9ICBAb6A4IFyQSDhMYFBwj/BoWGygcJCoAIh4iACYmKgAqLARcAgAJbAYEDowIEBvIDggWqBIOEuwUHCPcGhYbSBwkK/wiHiP8JiYqACosBAQCAAsgBgQP2AgQG/wOCBeoEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwFtAIACsgGBA/ECBAb/A4IF5wSDhPUFBwj/BoWG/wcJCoAIh4iACYmKgAqLASwAgAKCAYEDyQIEBv0DggXNBIOEwAUHCP8GhYb/BwkKgAiHiIAJiYqACosBAQCAAoQBgQPvAgQG+wOCBdsEg4TRBQcI/waFhqUHCQqACIeIgAmJioAKiwFeAIACiAGBA+ECBAb7A4IF2gSDhL4FBwj/BoWG/wcJCoAIh4iACYmKgAqLARYAgAJkAYEDrgIEBvUDggW6BIOEoQUHCP8GhYbHBwkKgAiHiIAJiYqACosBAQCAArYBgQP5AgQG/wOCBegEg4TrBQcIgAaFhoAHCQqACIeIgAmJioAKiwF8AIACjwGBA/ECBAb/A4IF4wSDhOoFBwiABoWGgAcJCoAIh4iACYmKgAqLASMAgAJNAYEDtQIEBvsDggXBBIOE0wUHCP8GhYbNBwkKgAiHiIAJiYqACosBAQCAAp0BgQP3AgQG/wOCBewEg4TnBQcI/waFhv8HCQqACIeIgAmJioAKiwF5AIACjQGBA+sCBAb/A4IF4QSDhOMFBwj/BoWG/wcJCoAIh4iACYmKgAqLAS0AgAJjAYEDvAIEBvsDggXDBIOE2QUHCP8GhYbgBwkKgAiHiIAJiYqACosBAQCAAgEBgQP7AgQG/wOCBdUEg4T/BQcIgAaFhoAHCQqACIeIgAmJioAKiwHLAIACAQGBA/gCBAb/A4IF/wSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYkAgAIBAYEDsQIEBv8DggXgBIOE/wUHCIAGhYaABwkKgAiHiIAJiYqACosB/QCAAgkBgQP4AgQG+wOCBc8Eg4TQBQcI/waFhsAHCQqACIeIgAmJioAKiwGvAIACDQGBA+ACBAbzA4IFwQSDhLkFBwj5BoWGxgcJCv8Ih4j/CYmKgAqLAUkAgAIRAYEDqwIEBt0DggWhBIOEswUHCOwGhYanBwkK/wiHiOoJiYqACosBAQCAAl8BgQP3AgQG/QOCBdQEg4S3BQcI/waFhv8HCQqACIeIgAmJioAKiwHvAIACWgGBA/QCBAb6A4IF0wSDhNEFBwj/BoWG/wcJCoAIh4iACYmKgAqLAZsAgAJNAYEDwwIEBvgDggW8BIOEwwUHCP8GhYb/BwkKgAiHiIAJiYqACosBAQCAAhgBgQPvAgQG+wOCBdoEg4TbBQcI/waFhs0HCQqACIeIgAmJioAKiwHJAIACMwGBA9sCBAb/A4IFxASDhLoFBwiABoWGgAcJCoAIh4iACYmKgAqLAUUAgAIuAYEDvgIEBu8DggXJBIOE2gUHCP8GhYbkBwkKgAiHiIAJiYqACosBAQCAAr8BgQP7AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwHfAIACpQGBA/kCBAb/A4IF1QSDhP8FBwiABoWGgAcJCoAIh4iACYmKgAqLAY0AgAJ8AYED+AIEBv8DggX/BIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAAhABgQP4AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwG+AIACJAGBA+YCBAb/A4IF7ASDhP8FBwiABoWGgAcJCoAIh4iACYmKgAqLAZUAgAIBAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAAuIBgQP/AgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwH3AIACwAGBA/8CBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAfAAgAKAAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBAQCAAoYBgQP8AgQG/wOCBf8Eg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwHVAIACPgGBA/oCBAb/A4IF/wSDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLATcAgAJdAYED/wIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBgACAAoABgQOAAgQGgAOCBYAEg4SABQcIgAaFhoAHCQqACIeIgAmJioAKiwGAAIACgAGBA4ACBAaAA4IFgASDhIAFBwiABoWGgAcJCoAIh4iACYmKgAqLAYAAgAKAAYEDgAIEBoADggWABIOEgAUHCIAGhYaABwkKgAiHiIAJiYqACosBygCAAhgBgQPVAgQG6wOCBboEg4S/BQcI3AaFhqAHCQrwCIeIrwmJiv8KiwF+AIACJgGBA7YCBAboA4IFqQSDhLgFBwjkBoWGrgcJCv8Ih4i7CYmKgAqLAT0AgAIuAYEDigIEBtsDggWXBIOEsgUHCPAGhYaqBwkK/wiHiNgJiYqACosBAQCAAnABgQPmAgQG+gOCBccEg4S/BQcI9waFhp8HCQr/CIeI/wmJioAKiwGmAIACbQGBA+QCBAb8A4IF0wSDhNcFBwj/BoWGrgcJCoAIh4iACYmKgAqLAScAgAJNAYEDogIEBugDggWsBIOEtAUHCPUGhYayBwkK/wiHiP8JiYqACosBAQCAAjQBgQPcAgQG9gOCBcYEg4THBQcI+QaFhtwHCQr/CIeI/wmJioAKiwF8AIACSgGBA78CBAbzA4IFtwSDhMEFBwj6BoWG3QcJCv8Ih4j/CYmKgAqLARgAgAJHAYEDggIEBtsDggWaBIOEqgUHCPMGhYa2BwkK/wiHiP8JiYqACosBAQCAArYBgQPhAgQG+QOCBdsEg4TwBQcI/waFhuAHCQqACIeIgAmJioAKiwGVAIAClgGBA+ICBAb8A4IF2ASDhM0FBwj/BoWGqwcJCoAIh4iACYmKgAqLARwAgAJsAYEDqgIEBvIDggW3BIOEwgUHCP4GhYbfBwkK/wiHiP8JiYqACosBAQCAAlEBgQPmAgQG/AOCBcwEg4TLBQcI/waFhsAHCQqACIeIgAmJ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AABw1hEArQAAAK4AAACvAAAAsAAAAKMAAABEZWNvZGluZ0VuY29kaW5nUGFyYW1ldGVyTGltaXRzSW9FcnJvcgAAAAAAAAQAAAAEAAAA9QEAAExpbWl0RXJyb3IAAAAAAAAIAAAABAAAAPYBAAAAAAAABAAAAAQAAAD3AQAAbWF4X2ltYWdlX3dpZHRobWF4X2ltYWdlX2hlaWdodG1heF9hbGxvYwAAAAAEAAAABAAAALEAAAAAAAAABAAAAAQAAACyAAAATGF5b3V0c2l6ZWFsaWduAPgBAAAQAAAABAAAAPkBAAAAAAAABAAAAAQAAAD6AQAARGVjb2RpbmdFcnJvcmZvcm1hdHVuZGVybHlpbmdFbmNvZGluZ0Vycm9yAAAAAAAAAQAAAAEAAAD7AQAAAAAAAAEAAAABAAAA/AEAAAAAAAABAAAAAQAAAP0BAAAAAAAABAAAAAQAAAC9AQAAQ2ljcHByaW1hcmllc3RyYW5zZmVybWF0cml4ZnVsbF9yYW5nZURpbWVuc2lvbkVycm9ySW5zdWZmaWNpZW50TWVtb3J5AAAAAAAAACAAAAAIAAAA/gEAAAAAAAAEAAAABAAAAP8BAABsaW1pdHNzdXBwb3J0ZWQAAAIAAAwAAAAEAAAAAQIAAFBhcmFtZXRlckVycm9yQ2FwYWNpdHlPdmVyZmxvdwAAAAAAAAQAAAAEAAAAAgIAAEFsbG9jRXJybGF5b3V0RXhhY3ROYW1lUGF0aEV4dGVuc2lvblVua25vd25pbnZhbGlkIHNlZWsgdG8gYSBuZWdhdGl2ZSBvciBvdmVyZmxvd2luZyBwb3NpdGlvbgAAANfYEQAyAAAAFAAAABUqEABhAAAAPQAAACQAAABFbXB0eUludmFsaWREaWdpdFBvc092ZXJmbG93TmVnT3ZlcmZsb3daZXJvAAAAAAAEAAAABAAAAAMCAABVbnN1cHBvcnRlZEVycm9yUG5nSnBlZ0dpZldlYlBQbm1UaWZmVGdhRGRzQm1wSWNvSGRyT3BlbkV4ckZhcmJmZWxkQXZpZlFvaVBjeAAAAAAAAAAEAAAABAAAAAQCAABQYXJzZUludEVycm9yQThMMUxhMVJnYjFSZ2JhMUwyTGEyUmdiMlJnYmEyTDRMYTRSZ2I0UmdiYTRSZ2I1eDFMOExhOFJnYjhSZ2JhOEwxNkxh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b3J0ZWQgUExZIGhlYWRlciBsaW5lOiAAAAA47xEAHQAAAE1pc3NpbmcgY2h1bmsgZWxlbWVudCBmb3IgU3VwZXJTcGxhdCBQTFlg7xEAKAAAAG1pbl94TWlzc2luZyBtaW5feCBwcm9wZXJ0eQCV7xEAFgAAAG1pbl95TWlzc2luZyBtaW5feSBwcm9wZXJ0eQC57xEAFgAAAG1pbl96TWlzc2luZyBtaW5feiBwcm9wZXJ0eQDd7xEAFgAAAG1heF94TWlzc2luZyBtYXhfeCBwcm9wZXJ0eQAB8BEAFgAAAG1heF95TWlzc2luZyBtYXhfeSBwcm9wZXJ0eQAl8BEAFgAAAG1heF96TWlzc2luZyBtYXhfeiBwcm9wZXJ0eQBJ8BEAFgAAAG1pbl9zY2FsZV94TWlzc2luZyBtaW5fc2NhbGVfeCBwcm9wZXJ0eQBz8BEAHAAAAG1pbl9zY2FsZV95TWlzc2luZyBtaW5fc2NhbGVfeSBwcm9wZXJ0eQCj8BEAHAAAAG1pbl9zY2FsZV96TWlzc2luZyBtaW5fc2NhbGVfeiBwcm9wZXJ0eQDT8BEAHAAAAG1heF9zY2FsZV94TWlzc2luZyBtYXhfc2NhbGVfeCBwcm9wZXJ0eQAD8REAHAAAAG1heF9zY2FsZV95TWlzc2luZyBtYXhfc2NhbGVfeSBwcm9wZXJ0eQAz8REAHAAAAG1heF9zY2FsZV96TWlzc2luZyBtYXhfc2NhbGVfeiBwcm9wZXJ0eQBj8REAHAAAAG1pbl9ybWluX2dtaW5fYm1heF9ybWF4X2dtYXhfYnBhY2tlZF9wb3NpdGlvbk1pc3NpbmcgcGFja2VkX3Bvc2l0aW9uIHByb3BlcnR5AAAAtfERACAAAABwYWNrZWRfcm90YXRpb25NaXNzaW5nIHBhY2tlZF9yb3RhdGlvbiBwcm9wZXJ0eQDv8REAIAAAAHBhY2tlZF9zY2FsZU1pc3NpbmcgcGFja2VkX3NjYWxlIHByb3BlcnR5AAAAJPIRAB0AAABwYWNrZWRfY29sb3JNaXNzaW5nIHBhY2tlZF9jb2xvciBwcm9wZXJ0eQAAAFjyEQAdAAAAZl9yZXN0XwCA8hEABwAAADkBEAAUAAAAhgIAADAAAAA5ARAAFAAAAIoCAAAfAAAASW52YWxpZCBudW1iZXIgb2Yg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b3VudHN0cnVjdCBSYWRNZXRhc3RydWN0IFJhZE1ldGEgd2l0aCAxMSBlbGVtZW50c2kEEgAfAAAAZ3NwbGF0AACQBBIABgAAAHN0cnVjdCBSYWRDaHVua01ldGFzdHJ1Y3QgUmFkQ2h1bmtQcm9wZXJ0eXN0cnVjdCBTcGxhdEVuY29kaW5ncmdiTWlucmdiTWF4bG5TY2FsZU1pbmxuU2NhbGVNYXhzaDFNYXhzaDJNYXhzaDNNYXhsb2RPcGFjaXR5c3RydWN0IFNldFNwbGF0RW5jb2RpbmdzdHJ1Y3QgU2V0U3BsYXRFbmNvZGluZyB3aXRoIDggZWxlbWVudHMxBRIAJwAAAG1dy9YsUOtjeEGmV3Ebi7kJBmaBAfO5VKIIL0OCV3QyOiAAAAAAAAAEAAAABAAAAFECAAA6AAAAAQAAAAAAAACUBRIAAQAAAJQFEgABAAAAUgIAAAwAAAAEAAAAUwIAAFQCAABVAgAAjgEAAAwAAAAEAAAAVgIAAFcCAABYAgAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPj0gc2l6ZSArIG1pbl9vdmVyaGVhZAAAWCUQACoAAACxBAAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplIDw9IHNpemUgKyBtYXhfb3ZlcmhlYWQAAFglEAAqAAAAtwQAAA0AAABmYWlsZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIHRocmVhZCBJRDogYml0c3BhY2UgZXhoYXVzdGVkAGAGEgA3AAAAYCEQAB0AAAC8BAAADQAAAP0WEAAhAAAA0QAAABMAAAACAAAAAAAAAAIAQdSNyAALwQwgAIDgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybdgGEgAoAAAAJAAAAAAAAAACAAAAAAcSAHVuc3VwcG9ydGVkIGJhY2t0cmFjZWRpc2FibGVkIGJhY2t0cmFjZQD1HRAAHAAAAIoBAAAdAAAAWQIAABAAAAAEAAAAWgIAAFsCAABXb3VsZEJsb2NrAAABAAAAAAAAAG1pZCA+IGxlbgAAAHgHEgAJAAAAExYQAC0AAAAWAQAAKQAAAGVudGl0eSBub3QgZm91bmRwZXJtaXNzaW9uIGRlbmllZGNvbm5lY3Rpb24gcmVmdXNlZGNvbm5lY3Rpb24gcmVzZXRob3N0IHVucmVhY2hhYmxlbmV0d29yayB1bnJlYWNoYWJsZWNvbm5lY3Rpb24gYWJvcnRlZG5vdCBjb25uZWN0ZWRhZGRyZXNzIGluIHVzZWFkZHJlc3Mgbm90IGF2YWlsYWJsZW5ldHdvcmsgZG93bmJyb2tlbiBwaXBlZW50aXR5IGFscmVhZHkgZXhpc3Rzb3BlcmF0aW9uIHdvdWxkIGJsb2Nrbm90IGEgZGlyZWN0b3J5aXMgYSBkaXJlY3RvcnlkaXJlY3Rvcnkgbm90IGVtcHR5cmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3Igc3RvcmFnZSBtZWRpdW1maWxlc3lzdGVtIGxvb3Agb3IgaW5kaXJlY3Rpb24gbGltaXQgKGUuZy4gc3ltbGluayBsb29wKXN0YWxlIG5ldHdvcmsgZmlsZSBoYW5kbGVpbnZhbGlkIGlucHV0IHBhcmFtZXRlcmludmFsaWQgZGF0YXRpbWVkIG91dHdyaXRlIHplcm9ubyBzdG9yYWdlIHNwYWNlc2VlayBvbiB1bnNlZWthYmxlIGZpbGVxdW90YSBleGNlZWRlZGZpbGUgdG9vIGxhcmdlcmVzb3VyY2UgYnVzeWV4ZWN1dGFibGUgZmlsZSBidXN5ZGVhZGxvY2tjcm9zcy1kZXZpY2UgbGluayBvciByZW5hbWV0b28gbWFueSBsaW5rc2ludmFsaWQgZmlsZW5hbWVhcmd1bWVudCBsaXN0IHRvbyBsb25nb3BlcmF0aW9uIGludGVycnVwdGVkdW5zdXBwb3J0ZWR1bmV4cGVjdGVkIGVuZCBvZiBmaWxlb3V0IG9mIG1lbW9yeWluIHByb2dyZXNzb3RoZXIgZXJyb3J1bmNhdGVnb3JpemVkIGVycm9yT3MAAAAAAAQAAAAEAAAAXAIAAGNvZGUAAAAAAQAAAAEAAABdAgAAa2luZI4BAAAMAAAABAAAAF4CAABtZXNzYWdlS2luZEVycm9yAAAAAAgAAAAEAAAAXwIAAAAAAAAEAAAABAAAAGACAABDdXN0b20gKG9zIGVycm9yIAAAAAEAAAAAAAAA+goSAAsAAACmEBIAAQAAAOoSEAAbAAAAXAMAABQAAABmYWlsZWQgcHJpbnRpbmcgdG8gADALEgATAAAAgAUSAAIAAADqEhAAGwAAAI0EAAAJAAAAc3Rkb3V0YSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHdoZW4gdGhlIHVuZGVybHlpbmcgc3RyZWFtIGRpZCBub3RqCxIAVgAAADUgEAAZAAAAiAIAABEAAABwYW5pY2tlZCBhdCA6CmNhbm5vdCByZWN1cnNpdmVseSBhY3F1aXJlIG11dGV4AADmCxIAIAAAAGMJEAAsAAAAEwAAAAkAAACGHRAAIwAAAJsAAAAyAAAAhh0QACMAAADWAAAAFAAAAGxvY2sgY291bnQgb3ZlcmZsb3cgaW4gcmVlbnRyYW50IG11dGV4AAAfFxAAJgAAACQBAAAtAAAAPHVua25vd24+77+9Y2Fubm90IG1vZGlmeSB0aGUgcGFuaWMgaG9vayBmcm9tIGEgcGFuaWNraW5nIHRocmVhZIQMEgA0AAAATxgQABwAAACQAAAACQAAAAoAAACOAQAADAAAAAQAAABhAgAAAAAAAAgAAAAEAAAAYgIAAE8gEAA0AAAAZwEAADAAAAABAAAAAAAAAIAFEgACAAAAAgBBnprIAAsBBABBqJrIAAvCByAAAOggLSAAAQAAAAAAAAAsDRIAAwAAAAIAAAAAAAAAAQAAAAEAAAAAAAAAIAAA6CAgICAgICAgICAgICAgICAgICBhdCAAAJQFEgABAAAATm90Rm91bmRQZXJtaXNzaW9uRGVuaWVkQ29ubmVjdGlvblJlZnVzZWRDb25uZWN0aW9uUmVzZXRIb3N0VW5yZWFjaGFibGVOZXR3b3JrVW5yZWFjaGFibGVDb25uZWN0aW9uQWJvcnRlZE5vdENvbm5lY3RlZEFkZHJJblVzZUFkZHJOb3RBdmFpbGFibGVOZXR3b3JrRG93bkJyb2tlblBpcGVBbHJlYWR5RXhpc3RzTm90QURpcmVjdG9yeUlzQURpcmVjdG9yeURpcmVjdG9yeU5vdEVtcHR5UmVhZE9ubHlGaWxlc3lzdGVtRmlsZXN5c3RlbUxvb3BTdGFsZU5ldHdvcmtGaWxlSGFuZGxlSW52YWxpZElucHV0SW52YWxpZERhdGFUaW1lZE91dFdyaXRlWmVyb1N0b3JhZ2VGdWxsTm90U2Vla2FibGVRdW90YUV4Y2VlZGVkRmlsZVRvb0xhcmdlUmVzb3VyY2VCdXN5RXhlY3V0YWJsZUZpbGVCdXN5RGVhZGxvY2tDcm9zc2VzRGV2aWNlc1Rvb01hbnlMaW5rc0ludmFsaWRGaWxlbmFtZUFyZ3VtZW50TGlzdFRvb0xvbmdJbnRlcnJ1cHRlZFVuc3VwcG9ydGVkVW5leHBlY3RlZEVvZk91dE9mTWVtb3J5SW5Qcm9ncmVzc090aGVyVW5jYXRlZ29yaXplZG9wZXJhdGlvbiBzdWNjZXNzZnVsT25jZSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkAACgDxIAKgAAAG9uZS10aW1lIGluaXRpYWxpemF0aW9uIG1heSBub3QgYmUgcGVyZm9ybWVkIHJlY3Vyc2l2ZWx51A8SADgAAADAGBAAcAAAAHwAAAARAAAAwBgQAHAAAACJAAAAEQAAAG51bGwgcG9pbnRlciBwYXNzZWQgdG8gcnVzdHJlY3Vyc2l2ZSB1c2Ugb2YgYW4gb2JqZWN0IGRldGVjdGVkIHdoaWNoIHdvdWxkIGxlYWQgdG8gdW5zYWZlIGFsaWFzaW5nIGluIHJ1c3RKc1ZhbHVlKCkAnhASAAgAAACmEBIAAQAAAGZhaWxlZCB0byBmaWxsIHdob2xlIGJ1ZmZlcgC4EBIAGwAAACUAAAACAAAA1BASACgpAEH0ocgAC6cDAQAAAL8BAAB+IRAAUAAAAC4CAAARAAAAAAAAAAQAAAAEAAAAsQAAAAAAAAAEAAAABAAAALMAAABVdGY4RXJyb3J2YWxpZF91cF90b2Vycm9yX2xlbgAAAGMCAAAMAAAABAAAAGQCAAAAAAAABAAAAAQAAABlAgAARnJvbVV0ZjhFcnJvcmJ5dGVzZXJyb3JOb25lU29tZQDEHhAAdgAAAMMAAAAJAAAAxB4QAHYAAAC8AAAAKgAAAMQeEAB2AAAAuQAAACoAAADXARAAbgAAAHQBAAApAAAA1wEQAG4AAAB5AQAAHAAAANcBEABuAAAAeQEAAC0AAADXARAAbgAAAIABAAAwAAAA1wEQAG4AAABLAQAAKQAAANcBEABuAAAAUQEAABwAAADXARAAbgAAAFEBAAAtAAAA1wEQAG4AAABZAQAAJAAAANcBEABuAAAAWQEAADEAAACVCxAAdgAAADoAAAAbAAAAlQsQAHYAAAA7AAAAGwAAAFRyeUZyb21JbnRFcnJvcgCqHRAASgAAAL0BAAAdAAAAAAAAAP//////////kBISAEGopcgAC4VTWg0QAGcAAABzAAAAFgAAAFoNEABnAAAALgAAACMAAABaDRAAZwAAAEMBAAAWAAAAWg0QAGcAAABPAQAAOAAAAFoNEABnAAAA6AEAABYAAABaDRAAZwAAACYAAAAPAAAAZgIAABQAAAAEAAAAZwIAAJopEABhAAAAHwAAACwAAABJbnZhbGlkIGNoZWNrc3VtRXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkIGlzIGVtcHR5AAAAABIQAHsAAABKAAAAJAAAAGZsYWdzIGFuZCBsZW4gZG9uJ3QgbWF0Y2ggaW4gZXh0ZW5kZWQgdGltZXN0YW1wIGZpZWxkTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgYXR0cmlidXRlIHNpemVOVEZTIGV4dHJhIGZpZWxkIGhhcyBhbiB1bnN1cHBvcnRlZCBhdHRyaWJ1dGUgdGFnTlRGUyBleHRyYSBmaWVsZCBoYXMgYW4gdW5zdXBwb3J0ZWQgbGVuZ3RoQ1JDMzIgY2hlY2tzdW0gZmFpbGVkIG9uIFVuaWNvZGUgZXh0cmEgZmllbGRVbmljb2RlIGV4dHJhIGZpZWxkIGlzIHRvbyBzbWFsbAAAShEQAG0AAAAdAAAAEQAAAEoREABtAAAARgAAABEAAABaSVA2NCBmb290ZXIgaW5kaWNhdGVzIG1vcmUgZmlsZXMgb24gdGhpcyBkaXNrIHRoYW4gaW4gdGhlIHdob2xlIGFyY2hpdmVJbnZhbGlkIGNlbnRyYWwgZGlyZWN0b3J5IHNpemUgb3Igb2Zmc2V09yQQAGAAAAAEBgAAOgAAAPckEABgAAAABgYAADsAAABFeHRyYSBmaWVsZCBjb250ZW50IGV4Y2VlZHMgZGVjbGFyZWQgbGVuZ3RoWklQNjQgZXh0cmEgZmllbGQgdHJ1bmNhdGVkWklQNjQgZXh0cmEtZGF0YSBmaWVsZCBpcyB0aGUgd3JvbmcgbGVuZ3Ro9yQQAGAAAABeBgAAEgAAAEFFUyBleHRyYSBmaWVsZCB0cnVuY2F0ZWRJbnZhbGlkIEFFUyBlbmNyeXB0aW9uIHN0cmVuZ3RoSW52YWxpZCBBRVMgdmVu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ABAHWAAACBgAAAiQAAAJOwATB3gAAAg4AAAI0AAACREAEQdoAAAIKAAACLAAAAkIAAAIiAAACEgAAAjwAAAJBAAQB1QAAAgUAAAI4wAVCCsAEwd0AAAINAAACMgAAAkNABEHZAAACCQAAAioAAAJBAAACIQAAAhEAAAI6AAACQgAEAdcAAAIHAAACJgAAAlTABQHfAAACDwAAAjYAAAJFwASB2wAAAgsAAAIuAAACQwAAAiMAAAITAAACPgAAAkDABAHUgAACBIAAAijABUIIwATB3IAAAgyAAAIxAAACQsAEQdiAAAIIgAACKQAAAkCAAAIggAACEIAAAjkAAAJBwAQB1oAAAgaAAAIlAAACUMAFAd6AAAIOgAACNQAAAkTABIHagAACCoAAAi0AAAJCgAACIoAAAhKAAAI9AAACQUAEAdWAAAIFgAACAAAQAgzABMHdgAACDYAAAjMAAAJDwARB2YAAAgmAAAIrAAACQYAAAiGAAAIRgAACOwAAAkJABAHXgAACB4AAAicAAAJYwAUB34AAAg+AAAI3AAACRsAEgduAAAILgAACLwAAAkOAAAIjgAACE4AAAj8AAAJAABgB1EAAAgRAAAIgwAVCB8AEgdxAAAIMQAACMIAAAkKABAHYQAACCEAAAiiAAAJAQAACIEAAAhBAAAI4gAACQYAEAdZAAAIGQAACJIAAAk7ABMHeQAACDkAAAjSAAAJEQARB2kAAAgpAAAIsgAACQkAAAiJAAAISQAACPIAAAkEABAHVQAACBUAAAgCARAIKwATB3UAAAg1AAAIygAACQ0AEQdlAAAIJQAACKoAAAkFAAAIhQAACEUAAAjqAAAJCAAQB10AAAgdAAAImgAACVMAFAd9AAAIPQAACNoAAAkXABIHbQAACC0AAAi6AAAJDQAACI0AAAhNAAAI+gAACQMAEAdTAAAIEwAACMMAFQgjABMHcwAACDMAAAjGAAAJCwARB2MAAAgjAAAIpgAACQMAAAiDAAAIQwAACOYAAAkHABAHWwAACBsAAAiWAAAJQwAUB3sAAAg7AAAI1gAACRMAEgdrAAAIKwAACLYAAAkLAAAIiwAACEsAAAj2AAAJBQAQB1cAAAgXAAAIAABACDMAEwd3AAAINwAACM4AAAkPABEHZwAACCcAAAiuAAAJBwAACIcAAAhHAAAI7gAACQkAEAdfAAAIHwAACJ4AAAljABQHfwAACD8AAAjeAAAJGwASB28AAAgvAAAIvgAACQ8AAAiPAAAITwAACP4AAAkAAGAHUAAACBAAAAhzABQIHwASB3AAAAgwAAAIwQAACQoAEAdgAAAIIAAACKEAAAkAAAAIgAAACEAAAAjhAAAJBgAQB1gAAAgYAAAIkQAACTsAEwd4AAAIOAAACNEAAAkRABEHaAAACCgAAAixAAAJCAAACIgAAAhIAAAI8QAACQQAEAdUAAAIFAAACOMAFQgrABMHdAAACDQAAAjJAAAJDQARB2QAAAgkAAAIqQAACQQAAAiEAAAIRAAACOkAAAkIABAHXAAACBwAAAiZAAAJUwAUB3wAAAg8AAAI2QAACRcAEgdsAAAILAAACLkAAAkMAAAIjAAACEwAAAj5AAAJAwAQB1IAAAgSAAAIowAVCCMAEwdyAAAIMgAACMUAAAkLABEHYgAACCIAAAilAAAJAgAACIIAAAhCAAAI5QAACQcAEAdaAAAIGgAACJUAAAlDABQHegAACDoAAAjVAAAJEwASB2oAAAgqAAAItQAACQoAAAiKAAAISgAACPUAAAkFABAHVgAACBYAAAgAAEAIMwATB3YAAAg2AAAIzQAACQ8AEQdmAAAIJgAACK0AAAkGAAAIhgAACEYAAAjtAAAJCQAQB14AAAgeAAAInQAACWMAFAd+AAAIPgAACN0AAAkbABIHbgAACC4AAAi9AAAJDgAACI4AAAhOAAAI/QAACQAAYAdRAAAIEQAACIMAFQgfABIHcQAACDEAAAjDAAAJCgAQB2EAAAghAAAIowAACQEAAAiBAAAIQQAACOMAAAkGABAHWQAACBkAAAiTAAAJOwATB3kAAAg5AAAI0wAACREAEQdpAAAIKQAACLMAAAkJAAAIiQAACEkAAAjzAAAJBAAQB1UAAAgVAAAIAgEQCCsAEwd1AAAINQAACMsAAAkNABEHZQAACCUAAAirAAAJBQAACIUAAAhFAAAI6wAACQgAEAddAAAIHQAACJsAAAlTABQHfQAACD0AAAjbAAAJFwASB20AAAgtAAAIuwAACQ0AAAiNAAAITQAACPsAAAkDABAHUwAACBMAAAjDABUIIwATB3MAAAgzAAAIxwAACQsAEQdjAAAIIwAACKcAAAkDAAAIgwAACEMAAAjnAAAJBwAQB1sAAAgb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").buffer, No = WebAssembly.compile(Hh); +let So = !1; +const nh = Mh({ module_or_path: No }).then( + (Q) => { + So = !0; } +); +function Yh() { + return So; } -const Th = new Float32Array([ - -1, - -1, - 0, - 1, - -1, - 0, - 1, - 1, - 0, - -1, - 1, - 0 -]), Oh = new Uint16Array([0, 1, 2, 0, 2, 3]), iA = class iA extends G.Mesh { - constructor(A) { - if (!A) - throw new Error("SparkRenderer options are required"); - if (!A.renderer) - throw new Error("renderer is required in SparkRenderer options"); - const I = iA.makeUniforms(); - Object.assign(I, A.extraUniforms ?? {}); - const g = Ag(), B = A.premultipliedAlpha ?? !0, C = new uh(), E = new G.ShaderMaterial({ - glslVersion: G.GLSL3, - vertexShader: A.vertexShader ?? g.splatVertex, - fragmentShader: A.fragmentShader ?? g.splatFragment, - uniforms: I, - premultipliedAlpha: B, - transparent: A.transparent ?? !0, - depthTest: A.depthTest ?? !0, - depthWrite: A.depthWrite ?? !1, - side: G.DoubleSide, - allowOverride: !1 +const Ro = '(function(){"use strict";class I{static __wrap(t){t=t>>>0;const e=Object.create(I.prototype);return e.__wbg_ptr=t,nt.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,nt.unregister(this),t}free(){const t=this.__destroy_into_raw();s.__wbg_chunkdecoder_free(t,0)}finish(){const t=this.__destroy_into_raw(),e=s.chunkdecoder_finish(t);if(e[2])throw i(e[1]);return i(e[0])}push(t){const e=s.chunkdecoder_push(this.__wbg_ptr,t);if(e[1])throw i(e[0])}}Symbol.dispose&&(I.prototype[Symbol.dispose]=I.prototype.free);class z{static __wrap(t){t=t>>>0;const e=Object.create(z.prototype);return e.__wbg_ptr=t,rt.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,rt.unregister(this),t}free(){const t=this.__destroy_into_raw();s.__wbg_csplatarray_free(t,0)}bhatt_lod(t){s.csplatarray_bhatt_lod(this.__wbg_ptr,t)}has_lod(){return s.csplatarray_has_lod(this.__wbg_ptr)!==0}inject_rgba8(t){s.csplatarray_inject_rgba8(this.__wbg_ptr,t)}len(){return s.csplatarray_len(this.__wbg_ptr)>>>0}tiny_lod(t,e){s.csplatarray_tiny_lod(this.__wbg_ptr,t,e)}to_extsplats(){const t=s.csplatarray_to_extsplats(this.__wbg_ptr);if(t[2])throw i(t[1]);return i(t[0])}to_extsplats_lod(){const t=s.csplatarray_to_extsplats_lod(this.__wbg_ptr);if(t[2])throw i(t[1]);return i(t[0])}to_packedsplats(){const t=s.csplatarray_to_packedsplats(this.__wbg_ptr);if(t[2])throw i(t[1]);return i(t[0])}to_packedsplats_lod(){const t=s.csplatarray_to_packedsplats_lod(this.__wbg_ptr);if(t[2])throw i(t[1]);return i(t[0])}get maxShDegree(){return s.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr)>>>0}get numSplats(){return s.__wbg_get_csplatarray_numSplats(this.__wbg_ptr)>>>0}set maxShDegree(t){s.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr,t)}set numSplats(t){s.__wbg_set_csplatarray_numSplats(this.__wbg_ptr,t)}}Symbol.dispose&&(z.prototype[Symbol.dispose]=z.prototype.free);class P{static __wrap(t){t=t>>>0;const e=Object.create(P.prototype);return e.__wbg_ptr=t,ot.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,ot.unregister(this),t}free(){const t=this.__destroy_into_raw();s.__wbg_gsplatarray_free(t,0)}get maxShDegree(){return s.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr)>>>0}get numSplats(){return s.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr)>>>0}bhatt_lod(t){s.gsplatarray_bhatt_lod(this.__wbg_ptr,t)}has_lod(){return s.gsplatarray_has_lod(this.__wbg_ptr)!==0}inject_rgba8(t){s.gsplatarray_inject_rgba8(this.__wbg_ptr,t)}len(){return s.gsplatarray_len(this.__wbg_ptr)>>>0}tiny_lod(t,e){s.gsplatarray_tiny_lod(this.__wbg_ptr,t,e)}to_extsplats(){const t=s.gsplatarray_to_extsplats(this.__wbg_ptr);if(t[2])throw i(t[1]);return i(t[0])}to_extsplats_lod(){const t=s.gsplatarray_to_extsplats_lod(this.__wbg_ptr);if(t[2])throw i(t[1]);return i(t[0])}to_packedsplats(t){const e=s.gsplatarray_to_packedsplats(this.__wbg_ptr,t);if(e[2])throw i(e[1]);return i(e[0])}to_packedsplats_lod(t){const e=s.gsplatarray_to_packedsplats_lod(this.__wbg_ptr,t);if(e[2])throw i(e[1]);return i(e[0])}set maxShDegree(t){s.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr,t)}set numSplats(t){s.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr,t)}}Symbol.dispose&&(P.prototype[Symbol.dispose]=P.prototype.free);function ut(n,t,e,r,o,a){const _=s.bhatt_lod_extsplats(n,t,e,b(r)?0:x(r),o,b(a)?0:x(a));if(_[2])throw i(_[1]);return i(_[0])}function dt(n,t,e,r,o,a){const _=s.bhatt_lod_packedsplats(n,t,b(e)?0:x(e),r,b(o)?0:x(o),a);if(_[2])throw i(_[1]);return i(_[0])}function ft(n,t,e){var r=b(n)?0:k(n,s.__wbindgen_malloc,s.__wbindgen_realloc),o=d,a=b(t)?0:k(t,s.__wbindgen_malloc,s.__wbindgen_realloc),_=d;const c=s.decode_to_csplatarray(r,o,a,_,e);if(c[2])throw i(c[1]);return I.__wrap(c[0])}function bt(n,t,e,r,o){var a=b(n)?0:k(n,s.__wbindgen_malloc,s.__wbindgen_realloc),_=d,c=b(t)?0:k(t,s.__wbindgen_malloc,s.__wbindgen_realloc),f=d;const u=s.decode_to_extsplats(a,_,c,f,b(e)?0:x(e),b(r)?0:x(r),b(o)?0:x(o));if(u[2])throw i(u[1]);return I.__wrap(u[0])}function wt(n,t){var e=b(n)?0:k(n,s.__wbindgen_malloc,s.__wbindgen_realloc),r=d,o=b(t)?0:k(t,s.__wbindgen_malloc,s.__wbindgen_realloc),a=d;const _=s.decode_to_gsplatarray(e,r,o,a);if(_[2])throw i(_[1]);return I.__wrap(_[0])}function gt(n,t,e,r,o,a){var _=b(n)?0:k(n,s.__wbindgen_malloc,s.__wbindgen_realloc),c=d,f=b(t)?0:k(t,s.__wbindgen_malloc,s.__wbindgen_realloc),u=d;const l=s.decode_to_packedsplats(_,c,f,u,e,b(r)?0:x(r),b(o)?0:x(o),b(a)?0:x(a));if(l[2])throw i(l[1]);return I.__wrap(l[0])}function pt(n){s.dispose_lod_tree(n)}function yt(n,t,e,r,o,a,_,c,f,u,l){const g=R(r,s.__wbindgen_malloc),h=d,S=R(o,s.__wbindgen_malloc),T=d,v=F(a,s.__wbindgen_malloc),A=d,m=F(_,s.__wbindgen_malloc),p=d,L=F(c,s.__wbindgen_malloc),y=d,w=F(f,s.__wbindgen_malloc),O=d,D=F(u,s.__wbindgen_malloc),$=d,M=F(l,s.__wbindgen_malloc),U=d,E=s.dynamic_traverse_lod_trees(n,t,b(e)?4294967297:Math.fround(e),g,h,S,T,v,A,m,p,L,y,w,O,D,$,M,U);if(E[2])throw i(E[1]);return i(E[0])}function ht(n,t){const e=s.get_lod_tree_level(n,t);if(e[2])throw i(e[1]);return i(e[0])}function mt(n,t){const e=s.init_lod_tree(n,t);if(e[2])throw i(e[1]);return i(e[0])}function St(n){const t=s.new_lod_tree(n);if(t[2])throw i(t[1]);return i(t[0])}function xt(n){const t=s.new_shared_lod_tree(n);if(t[2])throw i(t[1]);return i(t[0])}function At(n,t,e){return s.sort32_splats(n,t,e)>>>0}function Ft(n,t,e){return s.sort_splats(n,t,e)>>>0}function vt(n,t,e,r,o,a,_){const c=s.tiny_lod_extsplats(n,t,e,b(r)?0:x(r),o,a,b(_)?0:x(_));if(c[2])throw i(c[1]);return i(c[0])}function Mt(n,t,e,r,o,a,_){const c=s.tiny_lod_packedsplats(n,t,b(e)?0:x(e),r,o,b(a)?0:x(a),_);if(c[2])throw i(c[1]);return i(c[0])}function kt(n,t,e,r,o,a,_,c,f,u,l){const g=R(r,s.__wbindgen_malloc),h=d,S=R(o,s.__wbindgen_malloc),T=d,v=F(a,s.__wbindgen_malloc),A=d,m=F(_,s.__wbindgen_malloc),p=d,L=F(c,s.__wbindgen_malloc),y=d,w=F(f,s.__wbindgen_malloc),O=d,D=F(u,s.__wbindgen_malloc),$=d,M=F(l,s.__wbindgen_malloc),U=d,E=s.traverse_lod_trees(n,t,b(e)?4294967297:Math.fround(e),g,h,S,T,v,A,m,p,L,y,w,O,D,$,M,U);if(E[2])throw i(E[1]);return i(E[0])}function Tt(n,t,e,r,o){const a=R(n,s.__wbindgen_malloc),_=d,c=R(t,s.__wbindgen_malloc),f=d,u=R(e,s.__wbindgen_malloc),l=d,g=R(r,s.__wbindgen_malloc),h=d,S=s.update_lod_trees(a,_,c,f,u,l,g,h,o);if(S[2])throw i(S[1]);return i(S[0])}function Lt(){return{__proto__:null,"./spark_rs_bg.js":{__proto__:null,__wbg_Error_2e59b1b37a9a34c3:function(t,e){return Error(G(t,e))},__wbg___wbindgen_boolean_get_a86c216575a75c30:function(t){const e=t,r=typeof e=="boolean"?e:void 0;return b(r)?16777215:r?1:0},__wbg___wbindgen_debug_string_dd5d2d07ce9e6c57:function(t,e){const r=Y(e),o=k(r,s.__wbindgen_malloc,s.__wbindgen_realloc),a=d;C().setInt32(t+4,a,!0),C().setInt32(t+0,o,!0)},__wbg___wbindgen_in_4bd7a57e54337366:function(t,e){return t in e},__wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef:function(t){return!t},__wbg___wbindgen_is_object_40c5a80572e8f9d3:function(t){const e=t;return typeof e=="object"&&e!==null},__wbg___wbindgen_is_undefined_c0cca72b82b86f4d:function(t){return t===void 0},__wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944:function(t,e){return t==e},__wbg___wbindgen_number_get_7579aab02a8a620c:function(t,e){const r=e,o=typeof r=="number"?r:void 0;C().setFloat64(t+8,b(o)?0:o,!0),C().setInt32(t+0,!b(o),!0)},__wbg___wbindgen_string_get_914df97fcfa788f2:function(t,e){const r=e,o=typeof r=="string"?r:void 0;var a=b(o)?0:k(o,s.__wbindgen_malloc,s.__wbindgen_realloc),_=d;C().setInt32(t+4,_,!0),C().setInt32(t+0,a,!0)},__wbg___wbindgen_throw_81fc77679af83bc6:function(t,e){throw new Error(G(t,e))},__wbg_csplatarray_new:function(t){return z.__wrap(t)},__wbg_error_a6fa202b58aa1cd3:function(t,e){let r,o;try{r=t,o=e,console.error(G(t,e))}finally{s.__wbindgen_free(r,o,1)}},__wbg_get_4848e350b40afc16:function(t,e){return t[e>>>0]},__wbg_get_f96702c6245e4ef9:function(){return ct(function(t,e){return Reflect.get(t,e)},arguments)},__wbg_get_unchecked_7d7babe32e9e6a54:function(t,e){return t[e>>>0]},__wbg_get_with_ref_key_6412cf3094599694:function(t,e){return t[e]},__wbg_gsplatarray_new:function(t){return P.__wrap(t)},__wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a:function(t){let e;try{e=t instanceof ArrayBuffer}catch{e=!1}return e},__wbg_instanceof_Uint8Array_4b8da683deb25d72:function(t){let e;try{e=t instanceof Uint8Array}catch{e=!1}return e},__wbg_length_0c32cb8543c8e4c8:function(t){return t.length},__wbg_length_1e701798fdcaa3b4:function(t){return t.length},__wbg_length_6e821edde497a532:function(t){return t.length},__wbg_length_a4ca9e78359b5f1f:function(t){return t.length},__wbg_length_fd4646b401926788:function(t){return t.length},__wbg_new_227d7c05414eb861:function(){return new Error},__wbg_new_4f9fafbb3909af72:function(){return new Object},__wbg_new_a560378ea1240b14:function(t){return new Uint8Array(t)},__wbg_new_f3c9df4f38f3f798:function(){return new Array},__wbg_new_with_length_26bffbe236bf73f9:function(t){return new Float32Array(t>>>0)},__wbg_new_with_length_41a22191b9bdfd66:function(t){return new Uint32Array(t>>>0)},__wbg_prototypesetcall_3e05eb9545565046:function(t,e,r){Uint8Array.prototype.set.call(Et(t,e),r)},__wbg_prototypesetcall_64c287a27cc24d27:function(t,e,r){Uint16Array.prototype.set.call($t(t,e),r)},__wbg_prototypesetcall_e42275e601e14eeb:function(t,e,r){Uint32Array.prototype.set.call(Q(t,e),r)},__wbg_push_6bdbc990be5ac37b:function(t,e){return t.push(e)},__wbg_set_448126769bf7c181:function(t,e,r){t.set(Q(e,r))},__wbg_set_6be42768c690e380:function(t,e,r){t[e]=r},__wbg_set_6c60b2e8ad0e9383:function(t,e,r){t[e>>>0]=r},__wbg_set_81b4174352e6a095:function(t,e,r){t.set(e,r>>>0)},__wbg_set_8ee2d34facb8466e:function(){return ct(function(t,e,r){return Reflect.set(t,e,r)},arguments)},__wbg_set_a98c8da6557e63de:function(t,e,r){t.set(st(e,r))},__wbg_set_index_338a66e40fc45dee:function(t,e,r){t[e>>>0]=r>>>0},__wbg_stack_3b0d974bbf31e44f:function(t,e){const r=e.stack,o=k(r,s.__wbindgen_malloc,s.__wbindgen_realloc),a=d;C().setInt32(t+4,a,!0),C().setInt32(t+0,o,!0)},__wbg_subarray_0f98d3fb634508ad:function(t,e,r){return t.subarray(e>>>0,r>>>0)},__wbg_subarray_517cd0f1811ab872:function(t,e,r){return t.subarray(e>>>0,r>>>0)},__wbg_subarray_d51e89458b3fdbf6:function(t,e,r){return t.subarray(e>>>0,r>>>0)},__wbindgen_cast_0000000000000001:function(t){return t},__wbindgen_cast_0000000000000002:function(t,e){return st(t,e)},__wbindgen_cast_0000000000000003:function(t,e){return Q(t,e)},__wbindgen_cast_0000000000000004:function(t,e){return G(t,e)},__wbindgen_cast_0000000000000005:function(t){return BigInt.asUintN(64,t)},__wbindgen_init_externref_table:function(){const t=s.__wbindgen_externrefs,e=t.grow(4);t.set(0,void 0),t.set(e+0,void 0),t.set(e+1,null),t.set(e+2,!0),t.set(e+3,!1)}}}}const nt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>s.__wbg_chunkdecoder_free(n>>>0,1)),rt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>s.__wbg_csplatarray_free(n>>>0,1)),ot=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>s.__wbg_gsplatarray_free(n>>>0,1));function x(n){const t=s.__externref_table_alloc();return s.__wbindgen_externrefs.set(t,n),t}function Y(n){const t=typeof n;if(t=="number"||t=="boolean"||n==null)return`${n}`;if(t=="string")return`"${n}"`;if(t=="symbol"){const o=n.description;return o==null?"Symbol":`Symbol(${o})`}if(t=="function"){const o=n.name;return typeof o=="string"&&o.length>0?`Function(${o})`:"Function"}if(Array.isArray(n)){const o=n.length;let a="[";o>0&&(a+=Y(n[0]));for(let _=1;_1)r=e[1];else return toString.call(n);if(r=="Object")try{return"Object("+JSON.stringify(n)+")"}catch{return"Object"}return n instanceof Error?`${n.name}: ${n.message}\n${n.stack}`:r}function st(n,t){return n=n>>>0,_t().subarray(n/4,n/4+t)}function $t(n,t){return n=n>>>0,Dt().subarray(n/2,n/2+t)}function Q(n,t){return n=n>>>0,at().subarray(n/4,n/4+t)}function Et(n,t){return n=n>>>0,Z().subarray(n/1,n/1+t)}let j=null;function C(){return(j===null||j.buffer.detached===!0||j.buffer.detached===void 0&&j.buffer!==s.memory.buffer)&&(j=new DataView(s.memory.buffer)),j}let B=null;function _t(){return(B===null||B.byteLength===0)&&(B=new Float32Array(s.memory.buffer)),B}function G(n,t){return n=n>>>0,It(n,t)}let q=null;function Dt(){return(q===null||q.byteLength===0)&&(q=new Uint16Array(s.memory.buffer)),q}let V=null;function at(){return(V===null||V.byteLength===0)&&(V=new Uint32Array(s.memory.buffer)),V}let K=null;function Z(){return(K===null||K.byteLength===0)&&(K=new Uint8Array(s.memory.buffer)),K}function ct(n,t){try{return n.apply(this,t)}catch(e){const r=x(e);s.__wbindgen_exn_store(r)}}function b(n){return n==null}function R(n,t){const e=t(n.length*4,4)>>>0;return at().set(n,e/4),d=n.length,e}function F(n,t){const e=t(n.length*4,4)>>>0;return _t().set(n,e/4),d=n.length,e}function k(n,t,e){if(e===void 0){const c=H.encode(n),f=t(c.length,1)>>>0;return Z().subarray(f,f+c.length).set(c),d=c.length,f}let r=n.length,o=t(r,1)>>>0;const a=Z();let _=0;for(;_127)break;a[o+_]=c}if(_!==r){_!==0&&(n=n.slice(_)),o=e(o,r,r=_+n.length*3,1)>>>0;const c=Z().subarray(o+_,o+r),f=H.encodeInto(n,c);_+=f.written,o=e(o,r,_,1)>>>0}return d=_,o}function i(n){const t=s.__wbindgen_externrefs.get(n);return s.__externref_table_dealloc(n),t}let J=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});J.decode();const Ut=2146435072;let tt=0;function It(n,t){return tt+=t,tt>=Ut&&(J=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),J.decode(),tt=t),J.decode(Z().subarray(n,n+t))}const H=new TextEncoder;"encodeInto"in H||(H.encodeInto=function(n,t){const e=H.encode(n);return t.set(e),{read:n.length,written:e.length}});let d=0,s;function Ct(n,t){return s=n.exports,j=null,B=null,q=null,V=null,K=null,s.__wbindgen_start(),s}async function Rt(n,t){if(typeof Response=="function"&&n instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(n,t)}catch(o){if(n.ok&&e(n.type)&&n.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n",o);else throw o}const r=await n.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{const r=await WebAssembly.instantiate(n,t);return r instanceof WebAssembly.Instance?{instance:r,module:n}:r}function e(r){switch(r){case"basic":case"cors":case"default":return!0}return!1}}async function Ot(n){if(s!==void 0)return s;n!==void 0&&(Object.getPrototypeOf(n)===Object.prototype?{module_or_path:n}=n:console.warn("using deprecated parameters for the initialization function; pass a single object instead"));const t=Lt();(typeof n=="string"||typeof Request=="function"&&n instanceof Request||typeof URL=="function"&&n instanceof URL)&&(n=fetch(n));const{instance:e}=await Rt(await n,t);return Ct(e)}const jt={sortSplats16:Wt,sortSplats32:Nt,loadPackedSplats:zt,loadExtSplats:Pt,tinyLodPackedSplats:Bt,qualityLodPackedSplats:qt,tinyLodExtSplats:Vt,qualityLodExtSplats:Kt,newLodTree:Zt,newSharedLodTree:Ht,initLodTree:Gt,disposeLodTree:Jt,updateLodTrees:Xt,traverseLodTrees:Yt,getLodTreeLevel:Qt,nextChunk:te};async function it(n){const{id:t,name:e,args:r}=n.data;try{const o=jt[e];if(!o)throw new Error(`Unknown worker RPC: ${e}`);const _=await o(r,{sendStatus:c=>{self.postMessage({id:t,status:c},{transfer:et(c)})}});self.postMessage({id:t,result:_},{transfer:et(_)})}catch(o){console.warn(`Worker error: ${o}`),self.postMessage({id:t,error:o},{transfer:et(o)})}}function Wt({numSplats:n,readback:t,ordering:e}){return{activeSplats:Ft(n,t,e),readback:t,ordering:e}}function Nt({numSplats:n,readback:t,ordering:e}){return{activeSplats:At(n,t,e),readback:t,ordering:e}}async function X({decoder:n,fileBytes:t,url:e,requestHeader:r,withCredentials:o,chunked:a,chunkedLength:_,sendStatus:c}){if(t)for(let l=0;l{lt=S});c({nextChunk:!0});const h=await g;if(h.length===0)break;n.push(h),u+=h.length,c({progress:{loaded:u,total:l}})}l===0&&c({progress:{loaded:u,total:u}})}else throw new Error("No url or fileBytes provided");return n.finish()}function W(n){return{numSplats:n.numSplats,packedArray:n.packed,extra:{sh1:n.sh1,sh2:n.sh2,sh3:n.sh3,sh1Codes:n.sh1Codes,sh2Codes:n.sh2Codes,sh3Codes:n.sh3Codes,lodTree:n.lodTree},splatEncoding:n.splatEncoding}}async function zt({url:n,requestHeader:t,withCredentials:e,fileBytes:r,fileType:o,pathName:a,chunked:_,chunkedLength:c,encoding:f,lod:u,lodBase:l,lodAbove:g,nonLod:h,sh1Codes:S,sh2Codes:T,sh3Codes:v},{sendStatus:A}){if(!u){const M=gt(o,a??n,f,S,T,v),U=await X({decoder:M,fileBytes:r,url:n,requestHeader:t,withCredentials:e,chunked:_,chunkedLength:c,sendStatus:A}),E=W(U);return E.splatEncoding.lodOpacity?{lodSplats:E}:E}const m=ft(o,a??n,f),p=await X({decoder:m,fileBytes:r,url:n,requestHeader:t,withCredentials:e,chunked:_,chunkedLength:c,sendStatus:A});if(p.has_lod())return{lodSplats:W(p.to_packedsplats_lod())};if(g!==void 0&&p.len() ${p.len()} (${D} ms)`);const $=p.to_packedsplats_lod();return L.lodSplats=W($),L}function N(n){return{numSplats:n.numSplats,extArrays:[n.ext0,n.ext1],extra:{sh1:n.sh1,sh2:n.sh2,sh3a:n.sh3a,sh3b:n.sh3b,sh1Codes:n.sh1Codes,sh2Codes:n.sh2Codes,sh3Codes:n.sh3Codes,lodTree:n.lodTree}}}async function Pt({url:n,requestHeader:t,withCredentials:e,fileBytes:r,fileType:o,pathName:a,chunked:_,chunkedLength:c,lod:f,lodBase:u,lodAbove:l,nonLod:g,sh1Codes:h,sh2Codes:S,sh3Codes:T},{sendStatus:v}){if(!f){const $=bt(o,a??n,h,S,T),M=await X({decoder:$,fileBytes:r,url:n,requestHeader:t,withCredentials:e,chunked:_,chunkedLength:c,sendStatus:v}),U=N(M);return U.extra.lodTree?{lodSplats:U}:U}const A=wt(o,a??n),m=await X({decoder:A,fileBytes:r,url:n,requestHeader:t,withCredentials:e,chunked:_,chunkedLength:c,sendStatus:v});if(m.has_lod())return{lodSplats:N(m.to_extsplats_lod())};if(l!==void 0&&m.len() ${m.len()} (${O} ms)`);const D=m.to_extsplats_lod();return p.lodSplats=N(D),p}async function Bt({numSplats:n,packedArray:t,extra:e,lodBase:r,rgba:o,encoding:a}){const _=Math.max(1.1,Math.min(2,r??1.5)),c=performance.now(),u=Mt(n,t,e,_,!1,o,a),l=performance.now()-c,g=W(u);return console.log(`Tiny LoD: ${n} -> ${g.numSplats} (${l} ms)`),g}async function qt({numSplats:n,packedArray:t,extra:e,lodBase:r,rgba:o,encoding:a}){const _=Math.max(1.1,Math.min(2,r??1.75)),c=performance.now(),f=dt(n,t,e,_,o,a),u=performance.now()-c,l=W(f);return console.log(`Bhatt LoD: ${n} -> ${l.numSplats} (${u} ms)`),l}async function Vt({numSplats:n,extArrays:t,extra:e,lodBase:r,rgba:o,encoding:a}){const _=Math.max(1.1,Math.min(2,r??1.5)),c=performance.now(),u=vt(n,t[0],t[1],e,_,!1,o),l=performance.now()-c,g=N(u);return console.log(`Tiny LoD: ${n} -> ${g.numSplats} (${l} ms)`),g}async function Kt({numSplats:n,extArrays:t,extra:e,lodBase:r,rgba:o,encoding:a}){const _=Math.max(1.1,Math.min(2,r??1.75)),c=performance.now(),f=ut(n,t[0],t[1],e,_,o),u=performance.now()-c,l=N(f);return console.log(`Bhatt LoD: ${n} -> ${l.numSplats} (${u} ms)`),l}function Zt({capacity:n}){const{lodId:t}=St(n);return{lodId:t}}function Ht({lodId:n}){const{lodId:t}=xt(n);return{lodId:t}}function Gt({numSplats:n,lodTree:t}){const{lodId:e,chunkToPage:r}=mt(n,t);return{lodId:e,chunkToPage:r}}function Jt({lodId:n}){pt(n)}function Xt({ranges:n}){const t=new Uint32Array(n.map(({lodId:_})=>_)),e=new Uint32Array(n.map(({pageBase:_})=>_)),r=new Uint32Array(n.map(({chunkBase:_})=>_)),o=new Uint32Array(n.map(({count:_})=>_)),a=n.map(({lodTreeData:_})=>_);Tt(t,e,r,o,a)}function Yt({maxSplats:n,pixelScaleLimit:t,lastPixelLimit:e,instances:r,traverseMode:o}){const a=Object.entries(r),_=new Uint32Array(a.map(([y,w])=>w.lodId)),c=new Uint32Array(a.map(([y,w])=>w.rootPage??4294967295)),f=new Float32Array(a.flatMap(([y,w])=>{if(w.viewToObjectCols.length!==16)throw new Error("Incorrect array size for viewToObjectCols");return w.viewToObjectCols})),u=new Float32Array(a.map(([y,w])=>w.lodScale)),l=new Float32Array(a.map(([y,w])=>w.behindFoveate)),g=new Float32Array(a.map(([y,w])=>w.coneFov0)),h=new Float32Array(a.map(([y,w])=>w.coneFov)),S=new Float32Array(a.map(([y,w])=>w.coneFoveate)),v=(o==="dynamic"?yt:kt)(n,t,e,_,c,f,u,l,S,g,h),{instanceIndices:A,chunks:m,pixelLimit:p}=v;return{keyIndices:a.reduce((y,[w,O],D)=>(y[w]=A[D],y),{}),chunks:m,pixelLimit:p}}function Qt({lodId:n,level:t}){return ht(n,t)}let lt=n=>{};async function te({chunk:n}){lt(n)}function et(n){const t=[],e=new Set;function r(o){o&&typeof o=="object"&&!e.has(o)&&(e.add(o),o instanceof ArrayBuffer?t.push(o):ArrayBuffer.isView(o)?t.push(o.buffer):Array.isArray(o)?o.forEach(r):Object.values(o).forEach(r))}return r(n),t}async function ee(){let n;const t=new Promise(o=>{n=o}),e=[],r=o=>{if(o.data.name==="init-wasm"){n(o.data.module);return}e.push(o)};self.addEventListener("message",r),await Ot({module_or_path:await t}),self.removeEventListener("message",r),self.addEventListener("message",it);for(const o of e)it(o);e.length=0}ee().catch(console.error)})();\n//# sourceMappingURL=worker-BAMFf186.js.map\n', YB = typeof self < "u" && self.Blob && new Blob([Ro], { type: "text/javascript;charset=utf-8" }); +function rh(Q) { + let A; + try { + if (A = YB && (self.URL || self.webkitURL).createObjectURL(YB), !A) throw ""; + const I = new Worker(A, { + name: Q == null ? void 0 : Q.name + }); + return I.addEventListener("error", () => { + (self.URL || self.webkitURL).revokeObjectURL(A); + }), I; + } catch { + return new Worker( + "data:text/javascript;charset=utf-8," + encodeURIComponent(Ro), + { + name: Q == null ? void 0 : Q.name + } + ); + } finally { + A && (self.URL || self.webkitURL).revokeObjectURL(A); + } +} +const $g = class $g { + constructor() { + this.queue = null, this.messages = {}, this.worker = new rh(), this.worker.onmessage = (A) => this.onMessage(A), No.then((A) => { + this.worker.postMessage({ name: "init-wasm", module: A }); }); - super(C, E), this.renderSize = new G.Vector2(), this.lastFrame = -1, this.updateTimeoutId = -1, this.orderingTexture = null, this.maxSplats = 0, this.activeSplats = 0, this.accumulators = [], this.sorting = !1, this.sortDirty = !1, this.lastSortTime = 0, this.sortWorker = null, this.sortTimeoutId = -1, this.sortedCenter = new G.Vector3().setScalar(Number.NEGATIVE_INFINITY), this.sortedDir = new G.Vector3().setScalar(0), this.readback32 = new Uint32Array(0), this.lastLodRaycastTime = 0, this.lodWorker = null, this.lodMeshes = [], this.lodDirty = !1, this.lodIds = /* @__PURE__ */ new Map(), this.lodIdToSplats = /* @__PURE__ */ new Map(), this.lodInitQueue = [], this.lodInstances = /* @__PURE__ */ new Map(), this.lodUpdates = [], this.lastTraverseTime = 0, this.pagerId = 0, this.superXY = 1, this.flushAfterGenerate = !1, this.flushAfterRead = !1, this.readPause = 1, this.sortPause = 0, this.sortDelay = 0, this.pageSizeWarning = !1, this.material = E, this.uniforms = I, this.frustumCulled = !1, this.renderer = A.renderer, this.onDirty = A.onDirty, this.dirty = !0, this.autoUpdate = A.autoUpdate ?? !0, this.preUpdate = A.preUpdate ?? !0, this.maxStdDev = A.maxStdDev ?? Math.sqrt(8), this.minPixelRadius = A.minPixelRadius ?? 0, this.maxPixelRadius = A.maxPixelRadius ?? 512, this.accumExtSplats = A.accumExtSplats ?? !1, this.covSplats = A.covSplats ?? !1, this.minAlpha = A.minAlpha ?? 0.5 * (1 / 255), this.enable2DGS = A.enable2DGS ?? !1, this.preBlurAmount = A.preBlurAmount ?? 0, this.blurAmount = A.blurAmount ?? 0.3, this.focalDistance = A.focalDistance ?? 0, this.apertureAngle = A.apertureAngle ?? 0, this.falloff = A.falloff ?? 1, this.clipXY = A.clipXY ?? 1.4, this.focalAdjustment = A.focalAdjustment ?? 1, this.encodeLinear = A.encodeLinear ?? !1, this.sortRadial = A.sortRadial ?? !0, this.minSortIntervalMs = A.minSortIntervalMs ?? 0, this.enableLod = A.enableLod ?? !0, this.enableDriveLod = A.enableDriveLod ?? this.enableLod, this.enableLodFetching = A.enableLodFetching ?? !0, this.lodSplatCount = A.lodSplatCount, this.lodSplatScale = A.lodSplatScale ?? 1, this.lodRenderScale = A.lodRenderScale ?? 1, this.lodInflate = A.lodInflate ?? !1, this.pagedExtSplats = A.pagedExtSplats ?? !1; - const D = mg() ? Rg() ? 96 : 128 : 256; - this.maxPagedSplats = A.maxPagedSplats ?? D * 65536, this.numLodFetchers = A.numLodFetchers ?? 3, this.behindFoveate = A.behindFoveate ?? 0.2, this.coneFov0 = A.coneFov0 ?? 90, this.coneFov = A.coneFov ?? 120, this.coneFoveate = A.coneFoveate ?? 0.4, this.lodRaycast = A.lodRaycast === void 0 ? mg() ? 1e4 : 25e3 : A.lodRaycast, this.lodRaycastIntervalMs = A.lodRaycastIntervalMs ?? 500, this.clock = A.clock ? gB(A.clock) : new G.Clock(); - const i = { - extSplats: this.accumExtSplats, - covSplats: this.covSplats - }; - if (this.display = new qI(i), this.current = this.display, this.accumulators.push(new qI(i)), this.accumulators.push(new qI(i)), A.target) { - const { - width: w, - height: s, - doubleBuffer: o, - superXY: y, - ...h - } = A.target, k = Math.max(1, Math.min(4, y ?? 1)); - if (w * k > 8192 || s * k > 8192) - throw new Error("Target size too large"); - this.superXY = k; - const R = w * k, F = s * k, a = { - format: G.RGBAFormat, - type: G.UnsignedByteType, - colorSpace: G.SRGBColorSpace, - ...h - }; - this.target = new G.WebGLRenderTarget( - R, - F, - a - ), o && (this.backTarget = new G.WebGLRenderTarget( - R, - F, - a - )), this.encodeLinear = A.encodeLinear ?? !0; + } + onMessage(A) { + var i; + const { id: I, result: g, error: B, status: C } = A.data, E = this.messages[I]; + E && (B !== void 0 ? (delete this.messages[I], E.reject(B)) : C !== void 0 ? (i = E.onStatus) == null || i.call(E, C) : (delete this.messages[I], E.resolve(g))); + } + tryExclusive(A) { + return this.queue == null ? this.exclusive(A) : null; + } + async exclusive(A) { + const I = this.queue; + I != null ? await new Promise((g) => { + I.push(() => g(void 0)); + }) : this.queue = []; + try { + return await A(this); + } finally { + this.queue != null && (this.queue.length === 0 ? this.queue = null : this.queue.shift()()); } } - static makeUniforms() { - return { - // // number of active splats to render - // numSplats: { value: 0 }, - // Size of render viewport in pixels - renderSize: { value: new G.Vector2() }, - // Near and far plane distances - near: { value: 0.1 }, - far: { value: 1e3 }, - // SplatAccumulator to view transformation quaternion - renderToViewQuat: { value: new G.Quaternion() }, - // SplatAccumulator to view transformation translation - renderToViewPos: { value: new G.Vector3() }, - renderToViewBasis: { value: new G.Matrix3() }, - renderToViewOffset: { value: new G.Vector3() }, - // Maximum distance (in stddevs) from Gsplat center to render - maxStdDev: { value: 1 }, - // Minimum pixel radius for splat rendering - minPixelRadius: { value: 0 }, - // Maximum pixel radius for splat rendering - maxPixelRadius: { value: 512 }, - // Minimum alpha value for splat rendering - minAlpha: { value: 0.00196078431372549 }, - // Enable interpreting 0-thickness Gsplats as 2DGS - enable2DGS: { value: !1 }, - // Enable ray-splat max response evaluation - // enableRayEval: { value: false }, - // Inflate LoD splats so that opacity <= 1.0 - lodInflate: { value: !1 }, - // Add to projected 2D splat covariance diagonal (thickens and brightens) - preBlurAmount: { value: 0 }, - // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing) - blurAmount: { value: 0.3 }, - // Depth-of-field distance to focal plane - focalDistance: { value: 0 }, - // Full-width angle of aperture opening (in radians) - apertureAngle: { value: 0 }, - // Modulate Gaussian kernal falloff. 0 means "no falloff, flat shading", - // 1 is normal e^-x^2 falloff. - falloff: { value: 1 }, - // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds - clipXY: { value: 1.4 }, - // Debug renderSize scale factor - focalAdjustment: { value: 1 }, - // Whether to encode Gsplat with linear RGB (for environment mapping) - encodeLinear: { value: !1 }, - // Back-to-front sort ordering of splat indices - ordering: { type: "t", value: iA.emptyOrdering }, - enableExtSplats: { value: !1 }, - enableCovSplats: { value: !1 }, - // Gsplat collection to render - extSplats: { type: "t", value: qI.emptyTexture }, - extSplats2: { type: "t", value: qI.emptyTexture }, - // Time in seconds for time-based effects - time: { value: 0 }, - // Delta time in seconds since last frame - deltaTime: { value: 0 }, - // Debug flag that alternates each frame - debugFlag: { value: !1 } - }; + async call(A, I, g = {}) { + const B = ++$g.currentId, C = new Promise((E, i) => { + this.messages[B] = { resolve: E, reject: i, onStatus: g.onStatus }; + }); + return this.worker.postMessage( + { id: B, name: A, args: I }, + { transfer: RE(I) } + ), await C; } dispose() { - this.target && (this.target.dispose(), this.target = void 0), this.backTarget && (this.backTarget.dispose(), this.backTarget = void 0), this.orderingTexture && (this.orderingTexture.dispose(), this.orderingTexture = null); - const A = /* @__PURE__ */ new Set(); - A.add(this.display), A.add(this.current); - for (const g of this.accumulators) - A.add(g); - for (const g of A) - g.dispose(); - const I = this.lodInstances.values(); - this.lodInstances.clear(); - for (const g of I) - g.texture.dispose(); - this.sortWorker && (this.sortWorker.dispose(), this.sortWorker = null), this.lodWorker && (this.lodWorker.dispose(), this.lodWorker = null), this.pager && (this.pager.dispose(), this.pager = void 0); + this.worker.terminate(); + const A = Object.values(this.messages); + this.messages = {}; + for (const I of A) + I.reject(new Error("Worker terminate")); } - setDirty() { - var A; - this.dirty || (this.dirty = !0, (A = this.onDirty) == null || A.call(this)); +}; +$g.currentId = 0; +let Sg = $g; +class Kh { + constructor(A = 4) { + this.numWorkers = 0, this.freelist = [], this.queue = [], this.maxWorkers = A; } - onBeforeRender(A, I, g) { - var h; - const B = iA.sparkOverride ?? this, C = A.info.render.frame, E = C !== B.lastFrame; - if (B.lastFrame = C, B.target) - B.renderSize.set(B.target.width, B.target.height); - else { - const k = A.getDrawingBufferSize(B.renderSize); - if (A.xr.isPresenting && k.x === 1 && k.y === 1) { - const R = (h = A.xr.getSession()) == null ? void 0 : h.renderState.baseLayer; - R && (k.x = R.framebufferWidth, k.y = R.framebufferHeight); - } + async withWorker(A) { + const I = await this.allocWorker(); + try { + return await A(I); + } finally { + this.freeWorker(I); } - this.uniforms.renderSize.value.copy(B.renderSize); - const D = g; - this.uniforms.near.value = D.near, this.uniforms.far.value = D.far; - const i = this.geometry; - i.instanceCount = B.activeSplats; - const w = new G.Matrix4(); - this.display.extSplats || w.makeTranslation(B.display.viewOrigin); - const y = g.matrixWorld.clone().invert().multiply(w); - if (y.decompose( - this.uniforms.renderToViewPos.value, - this.uniforms.renderToViewQuat.value, - new G.Vector3() - ), this.uniforms.renderToViewBasis.value.setFromMatrix4(y), this.uniforms.maxStdDev.value = B.maxStdDev, this.uniforms.minPixelRadius.value = B.minPixelRadius, this.uniforms.maxPixelRadius.value = B.maxPixelRadius, this.uniforms.minAlpha.value = B.minAlpha, this.uniforms.enable2DGS.value = B.enable2DGS, this.uniforms.lodInflate.value = B.lodInflate, this.uniforms.preBlurAmount.value = B.preBlurAmount, this.uniforms.blurAmount.value = B.blurAmount, this.uniforms.focalDistance.value = B.focalDistance, this.uniforms.apertureAngle.value = B.apertureAngle, this.uniforms.falloff.value = B.falloff, this.uniforms.clipXY.value = B.clipXY, this.uniforms.focalAdjustment.value = B.focalAdjustment, this.uniforms.encodeLinear.value = B.encodeLinear, this.uniforms.ordering.value = B.orderingTexture ?? iA.emptyOrdering, this.uniforms.enableExtSplats.value = this.display.extSplats, this.uniforms.enableCovSplats.value = this.display.covSplats, this.display.extSplats) { - const k = B.display.getTextures(); - this.uniforms.extSplats.value = k[0], this.uniforms.extSplats2.value = k[1]; - } else { - const k = B.display.getTextures(); - this.uniforms.extSplats.value = k[0], this.uniforms.extSplats2.value = k[0]; + } + async allocWorker() { + const A = this.freelist.pop(); + if (A) + return A; + if (this.numWorkers < this.maxWorkers) { + const I = new Sg(); + return this.numWorkers += 1, I; } - if (this.uniforms.time.value = B.display.time, this.uniforms.deltaTime.value = B.display.deltaTime, this.uniforms.debugFlag.value = performance.now() / 1e3 % 2 < 1, B.autoUpdate && E) { - const k = B.preUpdate && !A.xr.isPresenting, R = A.xr.isPresenting ? A.xr.getCamera() : g; - k ? B.updateInternal({ - scene: I, - camera: R, - autoUpdate: !0 - }) : B.updateTimeoutId === -1 && (B.updateTimeoutId = setTimeout(() => { - B.updateTimeoutId = -1, B.updateInternal({ - scene: I, - camera: R, - autoUpdate: !0 - }); - }, 1)); + return new Promise((I) => { + this.queue.push(I); + }); + } + freeWorker(A) { + if (this.numWorkers > this.maxWorkers) { + this.numWorkers -= 1; + return; } - B.dirty = !1; + const I = this.queue.shift(); + if (I) { + I(A); + return; + } + this.freelist.push(A); } - clearSplats() { - this.activeSplats = 0, this.display.numSplats = 0, this.setDirty(); +} +const iQ = new Kh(), eA = class eA { + constructor(A = {}) { + this.maxSplats = 0, this.numSplats = 0, this.packedArray = null, this.maxSh = 3, this.isInitialized = !1, this.target = null, this.source = null, this.needsUpdate = !0, this.extra = {}, this.dyno = new Mo({ packedSplats: this }), this.dynoRgbMinMaxLnScaleMinMax = new zI({ + key: "rgbMinMaxLnScaleMinMax", + value: new a.Vector4(0, 1, pA, uA), + update: (I) => { + var g, B, C, E; + return I.set( + ((g = this.splatEncoding) == null ? void 0 : g.rgbMin) ?? 0, + ((B = this.splatEncoding) == null ? void 0 : B.rgbMax) ?? 1, + ((C = this.splatEncoding) == null ? void 0 : C.lnScaleMin) ?? pA, + ((E = this.splatEncoding) == null ? void 0 : E.lnScaleMax) ?? uA + ), I; + } + }), this.dynoNumSh = new BI({ + key: "numSh", + value: 0, + update: () => Math.min(this.getNumSh(), this.maxSh) + }), this.dynoShMax = new UI({ + key: "shMax", + value: new a.Vector3(), + update: (I) => { + var g, B, C; + return I.set( + ((g = this.splatEncoding) == null ? void 0 : g.sh1Max) ?? 1, + ((B = this.splatEncoding) == null ? void 0 : B.sh2Max) ?? 1, + ((C = this.splatEncoding) == null ? void 0 : C.sh3Max) ?? 1 + ), I; + } + }), this.initialized = Promise.resolve(this), this.reinitialize(A); } - async update({ - scene: A, - camera: I - }) { - await this.updateInternal({ scene: A, camera: I, autoUpdate: !1 }); + reinitialize(A) { + this.isInitialized = !1, this.extra = {}, this.maxSplats = A.maxSplats ?? 0, this.splatEncoding = A.splatEncoding, this.lod = A.lod, this.nonLod = A.nonLod, A.url || A.fileBytes || A.stream || A.construct ? this.initialized = this.asyncInitialize(A).then(() => (this.isInitialized = !0, this)) : (this.initialize(A), this.isInitialized = !0, this.initialized = Promise.resolve(this)); } - // /** - // * Provide additional cameras to prefetch paged splat chunks without - // * affecting main LOD selection. - // */ - // setPrefetchCameras(cameras?: THREE.Camera[], lodScaleMultiplier = 1.0) { - // const next = cameras?.filter(Boolean) ?? []; - // const sameCameras = - // this.prefetchCameras.length === next.length && - // this.prefetchCameras.every((camera, index) => camera === next[index]); - // if (sameCameras && this.prefetchLodScale === lodScaleMultiplier) { - // return; - // } - // this.prefetchCameras = next; - // this.prefetchLodScale = lodScaleMultiplier; - // this.invalidatePrefetchCache(); - // } - // /** - // * Invalidate the prefetch meshes cache. Call this when SplatMeshes are - // * added or removed from the scene. - // */ - // invalidatePrefetchCache() { - // this.prefetchMeshesCacheScene = undefined; - // } - async updateInternal({ - scene: A, - camera: I, - autoUpdate: g - }) { - const B = this.renderer, C = this.time ?? this.clock.getElapsedTime(), E = I.getWorldPosition(new G.Vector3()), D = I.getWorldDirection(new G.Vector3()), i = E.distanceTo(this.sortedCenter) > 1e-3 || D.dot(this.sortedDir) < 0.999, w = this.accumulators.pop(); - if (!w) - throw new Error("No next accumulator"); - if (w === this.current) - throw new Error( - "Next accumulator is the same as the current accumulator" - ); - const { version: s, mappingVersion: o, visibleGenerators: y, generate: h } = w.prepareGenerate({ - renderer: B, - scene: A, - time: C, - camera: I, - sortRadial: this.sortRadial ?? !0, - renderSize: this.renderSize, - previous: this.current, - lodInstances: this.enableLod ? this.lodInstances : void 0 - }); - let k = !0; - const R = i || s !== this.current.version, F = o !== this.display.mappingVersion; - g && !R && (k = !1), F && this.sorting && (k = !1), k ? (h(), this.flushAfterGenerate && B.getContext().flush(), this.display.mappingVersion === w.mappingVersion ? (this.accumulators.push(this.display), this.display = w) : this.display !== this.current && this.accumulators.push(this.current), this.current = w, this.sortDirty = !0, this.setDirty()) : this.accumulators.push(w), this.enableDriveLod && this.driveLod({ visibleGenerators: y, camera: I, scene: A }), await this.driveSort(); + initialize(A) { + this.extra = A.extra ?? {}, this.splatEncoding = A.splatEncoding ?? this.splatEncoding, this.lodSplats = A.lodSplats, A.packedArray ? (this.packedArray = A.packedArray, this.numSplats = A.numSplats ?? this.packedArray.length / 4, this.maxSplats = Math.floor(this.packedArray.length / 4), this.maxSplats = Math.floor(this.maxSplats / P) * P, this.numSplats = Math.min( + this.maxSplats, + A.numSplats ?? Number.POSITIVE_INFINITY + )) : (this.maxSplats = A.maxSplats ?? 0, this.numSplats = 0); } - async driveSort() { - if (this.sorting || !this.sortDirty) - return; - this.sortTimeoutId !== -1 && (clearTimeout(this.sortTimeoutId), this.sortTimeoutId = -1); - const A = performance.now(), I = this.lastSortTime ? this.lastSortTime + this.minSortIntervalMs : A; - if (A < I) { - this.sortTimeoutId = setTimeout(() => { - this.sortTimeoutId = -1, this.driveSort(); - }, I - A); - return; + async asyncInitialize(A) { + const { + url: I, + fileBytes: g, + fileType: B, + fileName: C, + stream: E, + streamLength: i, + construct: o, + lod: D, + nonLod: s, + lodAbove: w + } = A; + this.lod = D, this.nonLod = s; + const G = new Jo(); + if ((g || I || E) && await G.loadInternalAsync({ + packedSplats: this, + url: I, + fileBytes: g, + fileType: B, + fileName: C, + stream: E, + streamLength: i, + onProgress: A.onProgress, + lodAbove: w + }), o) { + const h = o(this); + h instanceof Promise && await h; } - this.sorting = !0, this.sortDirty = !1, this.lastSortTime = A, this.readPause > 0 && await new Promise((o) => setTimeout(o, this.readPause)); - const g = this.current; - this.sortedCenter.copy(g.viewOrigin), this.sortedDir.copy(g.viewDirection); - const { numSplats: B, maxSplats: C } = g, E = Math.max(1, Math.ceil(C / 16384)), D = E * 16384; - this.maxSplats = Math.max(this.maxSplats, D); - const i = new Uint32Array(this.maxSplats), w = Ig.ensureBuffer(C, this.readback32); - this.readback32 = w, await this.readbackDepth({ - current: g, - renderer: this.renderer, - numSplats: B, - readback: w - }), this.sortPause > 0 && await new Promise((o) => setTimeout(o, this.sortPause)), this.sortWorker || (this.sortWorker = new kg()); - const s = await this.sortWorker.call("sortSplats32", { - numSplats: B, - readback: w, - ordering: i - }); - if (this.sortDelay > 0 && await new Promise((o) => setTimeout(o, this.sortDelay)), this.readback32 = s.readback, this.activeSplats = s.activeSplats, this.orderingTexture && E > this.orderingTexture.image.height && (this.orderingTexture.dispose(), this.orderingTexture = null), this.orderingTexture) { - const o = this.renderer, y = o.getContext(); - if (!o.properties.has(this.orderingTexture)) - this.orderingTexture.needsUpdate = !0; - else { - const k = o.properties.get(this.orderingTexture).__webglTexture; - if (!k) - throw new Error("ordering texture not found"); - o.state.activeTexture(y.TEXTURE0), o.state.bindTexture(y.TEXTURE_2D, k), y.bindBuffer(y.PIXEL_UNPACK_BUFFER, null), y.pixelStorei(y.UNPACK_FLIP_Y_WEBGL, !1), y.texSubImage2D( - y.TEXTURE_2D, - 0, - 0, - 0, - 4096, - E, - y.RGBA_INTEGER, - y.UNSIGNED_INT, - // data, - s.ordering - ), o.state.bindTexture(y.TEXTURE_2D, null); + } + // Call this when you are finished with the PackedSplats and want to free + // any buffers it holds. + dispose() { + this.target && (this.target.dispose(), this.target.texture.source.data = null, this.target = null), this.source && (this.source.dispose(), this.source.source.data = null, this.source = null), this.packedArray = null; + for (const A in this.extra) { + const I = this.extra[A]; + if (I instanceof x) { + const g = I.value; + g != null && g.isTexture && (g.dispose(), g.source.data = null); } - } else { - const o = new G.DataTexture( - s.ordering, - 4096, - E, - G.RGBAIntegerFormat, - G.UnsignedIntType - ); - o.internalFormat = "RGBA32UI", o.needsUpdate = !0, this.orderingTexture = o; } - this.current.mappingVersion === g.mappingVersion && this.current.mappingVersion !== this.display.mappingVersion && (this.accumulators.push(this.display), this.display = this.current), this.sorting = !1, this.setDirty(), this.driveSort(); + this.extra = {}, this.disposeLodSplats(); } - ensureLodWorker() { - return this.lodWorker || (this.lodWorker = new kg()), this.lodWorker; + prepareFetchSplat() { } - defaultSplatTarget() { - return IB() ? 5e5 : NC() ? 75e4 : AB() ? 1e6 : Rg() ? 15e5 : 25e5; + getNumSplats() { + return this.numSplats; } - driveLod({ - visibleGenerators: A, - camera: I, - scene: g + hasRgbDir() { + return Math.min(this.getNumSh(), this.maxSh) > 0; + } + getNumSh() { + return this.extra.sh1 ? this.extra.sh2 ? this.extra.sh3 ? 3 : 2 : 1 : 0; + } + setMaxSh(A) { + this.maxSh = A; + } + fetchSplat({ + index: A, + viewOrigin: I }) { - var h, k; - const B = this.defaultSplatTarget(), E = (this.lodSplatCount ?? B) * this.lodSplatScale; - let D = 0; - if (I instanceof G.PerspectiveCamera) - D = 2 * Math.tan(0.5 * I.fov * Math.PI / 180) / this.renderSize.y; - else if (I instanceof G.OrthographicCamera) { - const R = (I.top - I.bottom) / I.zoom, F = (I.right - I.left) / I.zoom, a = R / Math.max(1, this.renderSize.y), S = F / Math.max(1, this.renderSize.x); - D = Math.min(S, a); - } - D *= this.lodRenderScale; - const i = new G.Vector3(), w = new G.Quaternion(); - if (this.current.viewToWorld.decompose(i, w, new G.Vector3()), this.lodPosOverride && i.copy(this.lodPosOverride), this.lodQuatOverride && w.copy(this.lodQuatOverride).normalize(), this.lastLod) { - (this.lastLod.pixelScaleLimit !== D || this.lastLod.maxSplats !== E) && (this.lodDirty = !0); - const R = i.distanceTo(this.lastLod.pos), F = Math.max(0, 1 - R / 1), a = w.dot(this.lastLod.quat), S = Math.max(0, 1 - (1 - a) / 0.01); - F * S < 0.999 && (this.lodDirty = !0); + let g = $B(this.dyno, A); + if (this.hasRgbDir() && I) { + const B = fA(g).outputs.center, C = tg(CI(B, I)), { sh1Texture: E, sh2Texture: i, sh3Texture: o } = this.ensureShTextures(); + let { rgb: D } = eo({ + coord: $Q(A), + viewDir: C, + numSh: this.dynoNumSh, + sh1Texture: E, + sh2Texture: i, + sh3Texture: o, + shMax: this.dynoShMax + }); + D = lA(D, fA(g).outputs.rgb), g = QI({ gsplat: g, rgb: D }); } - const s = this.enableLod ? A.filter((R) => { - var F, a; - return R instanceof vA && (((F = R.packedSplats) == null ? void 0 : F.lodSplats) || ((a = R.extSplats) == null ? void 0 : a.lodSplats) || R.paged) && R.enableLod !== !1; - }) : [], o = s.some((R) => R.paged); - this.lodMeshes.length !== s.length ? this.lodDirty = !0 : s.some( - (R, F) => R !== this.lodMeshes[F].mesh || R.version > this.lodMeshes[F].version - ) && (this.lodDirty = !0), this.lodMeshes = s.map((R) => ({ - mesh: R, - version: R.version + 1 - })), this.lodInitQueue = []; - const y = performance.now(); - for (const R of s) { - const F = ((h = R.packedSplats) == null ? void 0 : h.lodSplats) ?? ((k = R.extSplats) == null ? void 0 : k.lodSplats) ?? R.paged; - if (F) { - const a = this.lodIds.get(F); - a ? a.lastTouched = y : this.lodInitQueue.push(F); + return g; + } + ensureShTextures() { + if (!this.extra.sh1) + return {}; + let A = this.extra.sh1Texture; + if (!A) { + let B = this.extra.sh1; + const { width: C, height: E, depth: i, maxSplats: o } = EA( + B.length / 2 + ); + if (B.length < o * 2) { + const s = new Uint32Array(o * 2); + s.set(B), this.extra.sh1 = s, B = s; } + const D = new a.DataArrayTexture(B, C, E, i); + D.format = a.RGIntegerFormat, D.type = a.UnsignedIntType, D.internalFormat = "RG32UI", D.needsUpdate = !0, A = new OA({ + value: D, + key: "sh1" + }), this.extra.sh1Texture = A; } - this.ensureLodWorker().tryExclusive(async (R) => { - if (o && !this.pager) { - this.pager = new tI({ - renderer: this.renderer, - extSplats: this.pagedExtSplats, - maxSplats: this.maxPagedSplats, - numFetchers: this.numLodFetchers - }); - const { lodId: F } = await R.call("newLodTree", { - capacity: this.pager.maxSplats - }); - this.pagerId = F; - } - if (this.pager) - for (const { mesh: F } of this.lodMeshes) - F.paged && !F.paged.pager && (F.paged.pager = this.pager); - if (this.lodInitQueue.length > 0) { - const F = this.lodInitQueue; - for (this.lodInitQueue = []; F.length > 0; ) { - const a = F.shift(); - a && (await this.initLodTree(R, a), this.lodDirty = !0); - } - } - if (this.pager) { - const F = this.pager.consumeLodTreeUpdates(); - for (const { splats: a, page: S, chunk: M, numSplats: c, lodTree: N } of F) { - const U = this.lodIds.get(a); - U && (N && M === 0 && (U.rootPage = S), this.lodUpdates.push({ - lodId: U.lodId, - pageBase: S * this.pager.pageSplats, - chunkBase: M * this.pager.pageSplats, - count: c, - lodTreeData: N - })); - } + if (!this.extra.sh2) + return { sh1Texture: A }; + let I = this.extra.sh2Texture; + if (!I) { + let B = this.extra.sh2; + const { width: C, height: E, depth: i, maxSplats: o } = EA( + B.length / 4 + ); + if (B.length < o * 4) { + const s = new Uint32Array(o * 4); + s.set(B), this.extra.sh2 = s, B = s; } - if (this.lodUpdates.length > 0) { - const F = this.lodUpdates; - this.lodUpdates = [], await R.call("updateLodTrees", { ranges: F }), this.lodDirty = !0; + const D = new a.DataArrayTexture(B, C, E, i); + D.format = a.RGBAIntegerFormat, D.type = a.UnsignedIntType, D.internalFormat = "RGBA32UI", D.needsUpdate = !0, I = new OA({ + value: D, + key: "sh2" + }), this.extra.sh2Texture = I; + } + if (!this.extra.sh3) + return { sh1Texture: A, sh2Texture: I }; + let g = this.extra.sh3Texture; + if (!g) { + let B = this.extra.sh3; + const { width: C, height: E, depth: i, maxSplats: o } = EA( + B.length / 4 + ); + if (B.length < o * 4) { + const s = new Uint32Array(o * 4); + s.set(B), this.extra.sh3 = s, B = s; } - if (this.lodDirty) { - const F = performance.now(), a = new G.Vector3(); - if (this.lastLod) { - const S = Math.max(1, F - this.lastLod.timestamp); - a.copy(i).sub(this.lastLod.pos).multiplyScalar(this.lastTraverseTime / S); - } - this.lastLod = { - pos: i, - quat: w, - pixelScaleLimit: D, - maxSplats: E, - timestamp: F - }, this.lodDirty = !1, await this.updateLodInstances( - R, - a, - s, - E, - i, - w, - D - ), this.currentLod = this.lastLod, this.setDirty(); + const D = new a.DataArrayTexture(B, C, E, i); + D.format = a.RGBAIntegerFormat, D.type = a.UnsignedIntType, D.internalFormat = "RGBA32UI", D.needsUpdate = !0, g = new OA({ + value: D, + key: "sh3" + }), this.extra.sh3Texture = g; + } + return { sh1Texture: A, sh2Texture: I, sh3Texture: g }; + } + // Ensures that this.packedArray can fit numSplats Gsplats. If it's too small, + // resize exponentially and copy over the original data. + // + // Typically you don't need to call this, because calling this.setSplat(index, ...) + // and this.pushSplat(...) will automatically call ensureSplats() so we have + // enough splats. + ensureSplats(A) { + const I = A <= this.maxSplats ? this.maxSplats : ( + // Grow exponentially to avoid frequent reallocations + Math.max(A, 2 * this.maxSplats) + ), g = this.packedArray ? this.packedArray.length / 4 : 0; + if (!this.packedArray || I > g) { + this.maxSplats = EA(I).maxSplats; + const B = new Uint32Array(this.maxSplats * 4); + this.packedArray && B.set(this.packedArray), this.packedArray = B; + } + return this.packedArray; + } + // Ensure the extra array for the given level is large enough to hold numSplats + ensureSplatsSh(A, I) { + let g, B; + if (A === 0) + return this.ensureSplats(I); + if (A === 1) + g = 2, B = "sh1"; + else if (A === 2) + g = 4, B = "sh2"; + else if (A === 3) + g = 4, B = "sh3"; + else + throw new Error(`Invalid level: ${A}`); + let C = this.extra[B] ? this.extra[B].length / g : 0; + const E = I <= C ? C : Math.max(I, 2 * C); + if (!this.extra[B] || E > C) { + C = EA(E).maxSplats; + const i = new Uint32Array(C * g); + this.extra[B] && i.set(this.extra[B]), this.extra[B] = i; + } + return this.extra[B]; + } + // Unpack the 16-byte Gsplat data at index into the Three.js components + // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, + // opacity: number 0..1, color: THREE.Color 0..1. + getSplat(A) { + if (!this.packedArray || A >= this.numSplats) + throw new Error("Invalid index"); + return Og(this.packedArray, A, this.splatEncoding); + } + // Set all PackedSplat components at index with the provided Gsplat attributes + // (can be the same objects returned by getSplat). Ensures there is capacity + // for at least index+1 Gsplats. + setSplat(A, I, g, B, C, E) { + const i = this.ensureSplats(A + 1); + qQ( + i, + A, + I.x, + I.y, + I.z, + g.x, + g.y, + g.z, + B.x, + B.y, + B.z, + B.w, + C, + E.r, + E.g, + E.b + ), this.numSplats = Math.max(this.numSplats, A + 1); + } + // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on + // construction where you just want to iterate and create a collection of Gsplats. + pushSplat(A, I, g, B, C) { + const E = this.ensureSplats(this.numSplats + 1); + qQ( + E, + this.numSplats, + A.x, + A.y, + A.z, + I.x, + I.y, + I.z, + g.x, + g.y, + g.z, + g.w, + B, + C.r, + C.g, + C.b + ), ++this.numSplats; + } + // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat + // and invoke the callback function with the Gsplat attributes. + forEachSplat(A) { + if (!(!this.packedArray || !this.numSplats)) + for (let I = 0; I < this.numSplats; ++I) { + const g = Og(this.packedArray, I, this.splatEncoding); + A( + I, + g.center, + g.scales, + g.quaternion, + g.opacity, + g.color + ); } - await this.cleanupLodTrees(R); + } + // Ensures our PackedSplats.target render target has enough space to generate + // maxSplats total Gsplats, and reallocate if not large enough. + ensureGenerate(A) { + if (this.target && (A ?? 1) <= this.maxSplats) + return !1; + this.target && this.target.dispose(); + const I = EA(A ?? 1), { width: g, height: B, depth: C } = I; + return this.maxSplats = I.maxSplats, this.target = new a.WebGLArrayRenderTarget(g, B, C, { + depthBuffer: !1, + stencilBuffer: !1, + generateMipmaps: !1, + magFilter: a.NearestFilter, + minFilter: a.NearestFilter + }), this.target.texture.format = a.RGBAIntegerFormat, this.target.texture.type = a.UnsignedIntType, this.target.texture.internalFormat = "RGBA32UI", this.target.scissorTest = !0, !0; + } + // Given an array of splatCounts (.numSplats for each + // SplatGenerator/SplatMesh in the scene), compute a + // "mapping layout" in the composite array of generated outputs. + generateMapping(A) { + let I = 0; + const g = A.map((B) => { + const C = I, E = Math.ceil(B / P) * P; + return I += E, { base: C, count: B }; }); + return { maxSplats: I, mapping: g }; } - async initLodTree(A, I) { - if (I instanceof $A || I instanceof GI) { - const { lodId: g } = await A.call("initLodTree", { - numSplats: I.numSplats ?? 0, - lodTree: I.extra.lodTree.slice() - }); - this.lodIds.set(I, { lodId: g, lastTouched: performance.now() }), this.lodIdToSplats.set(g, I); - } else { - const { lodId: g } = await A.call("newSharedLodTree", { - lodId: this.pagerId - }); - this.lodIds.set(I, { lodId: g, lastTouched: performance.now() }), this.lodIdToSplats.set(g, I); - } + // Returns a THREE.DataArrayTexture representing the PackedSplats content as + // a Uint32x4 data array texture (2048 x 2048 x depth in size) + getTexture() { + return this.target ? this.target.texture : this.source || this.packedArray ? this.maybeUpdateSource() : eA.getEmptyArray; } - async updateLodInstances(A, I, g, B, C, E, D) { - const i = /* @__PURE__ */ new Map(), w = new G.Matrix4().compose( - C, - E, - new G.Vector3().setScalar(1) - ), s = g.reduce( - (a, S) => { - var U, J; - i.set(S.uuid, S); - const M = S.matrixWorld.clone().invert().multiply(w), c = ((U = S.packedSplats) == null ? void 0 : U.lodSplats) ?? ((J = S.extSplats) == null ? void 0 : J.lodSplats) ?? S.paged; - if (!c) - return a; - const N = this.lodIds.get(c); - return !N || this.pager && S.paged && N.rootPage === void 0 || (a[S.uuid] = { - instanceId: S.uuid, - lodId: N.lodId, - rootPage: N.rootPage, - viewToObjectCols: M.elements, - lodScale: S.lodScale, - behindFoveate: S.behindFoveate ?? this.behindFoveate, - coneFov0: S.coneFov0 ?? this.coneFov0, - coneFov: S.coneFov ?? this.coneFov, - coneFoveate: S.coneFoveate ?? this.coneFoveate - }), a; - }, - {} - ), o = performance.now(), y = await A.call("traverseLodTrees", { - maxSplats: B, - pixelScaleLimit: D, - lastPixelLimit: this.lastPixelLimit, - instances: s - }); - this.lastTraverseTime = performance.now() - o; - const { keyIndices: h, chunks: k, pixelLimit: R } = y; - this.lastPixelLimit = R; - const F = Object.values(h).reduce( - (a, { numSplats: S }) => a + S, - 0 - ); - if (this.updateLodIndices(i, h), this.pager) { - this.pager.processUploads(); - const a = g.map((S) => { - if (!S.paged || !this.pager) - return null; - const M = S.getWorldPosition(new G.Vector3()); - return { - splats: S.paged, - distance: M.distanceTo(C) - }; - }).filter((S) => S !== null); - !this.pageSizeWarning && a.length > this.pager.maxPages && (this.pageSizeWarning = !0, console.warn( - `# paged SplatMeshes exceeds maxPages: ${a.length} > ${this.pager.maxPages}` - )), a.sort((S, M) => S.distance - M.distance), this.pager.fetchPriority = a.map(({ splats: S }) => ({ - splats: S, - chunk: 0 - })); - for (const [S, M] of k) { - const c = this.lodIdToSplats.get(S); - c instanceof Pg && M !== 0 && this.pager.fetchPriority.push({ splats: c, chunk: M }); + // Check if source texture needs to be created/updated + maybeUpdateSource() { + if (!this.packedArray) + throw new Error("No packed splats"); + if (this.needsUpdate || !this.source) { + if (this.needsUpdate = !1, this.source) { + const { width: A, height: I, depth: g } = this.source.image; + this.maxSplats !== A * I * g && (this.source.dispose(), this.source = null); } - this.pager.autoDrive = this.enableLodFetching, this.enableLodFetching && this.pager.driveFetchers(); - } - if (this.lodRaycast && performance.now() - this.lastLodRaycastTime >= this.lodRaycastIntervalMs) { - this.lastLodRaycastTime = performance.now(); - const a = performance.now(), S = await A.call("traverseLodTrees", { - maxSplats: Math.min(this.lodRaycast, Math.round(F * 0.1)), - pixelScaleLimit: D, - instances: s - }); - performance.now() - a; - const { keyIndices: M } = S; - Object.values(M).reduce( - (c, { numSplats: N }) => c + N, - 0 - ); - for (const [c, N] of Object.entries(M)) { - const U = i.get(c); - U.raycastIndices = N; + if (this.source) + this.packedArray.buffer !== this.source.image.data.buffer && (this.source.image.data = new Uint8Array(this.packedArray.buffer)); + else { + const { width: A, height: I, depth: g } = EA(this.maxSplats); + this.source = new a.DataArrayTexture( + this.packedArray, + A, + I, + g + ), this.source.format = a.RGBAIntegerFormat, this.source.type = a.UnsignedIntType, this.source.internalFormat = "RGBA32UI", this.source.needsUpdate = !0; } + this.source.needsUpdate = !0; } + return this.source; } - async cleanupLodTrees(A) { - const g = performance.now(); - let B = null; - for (const [C, E] of this.lodIds.entries()) - (B == null || E.lastTouched < B.lastTouched) && (B = { - splats: C, - lastTouched: E.lastTouched, - lodId: E.lodId - }); - if (!(!B || B.lastTouched > g - 3e3)) { - this.lodIds.delete(B.splats), this.lodIdToSplats.delete(B.lodId); - for (const [C, E] of this.lodInstances.entries()) - E.lodId === B.lodId && (E.texture.dispose(), this.lodInstances.delete(C)); - await A.call("disposeLodTree", { lodId: B.lodId }); - } - } - updateLodIndices(A, I) { - for (const [g, B] of Object.entries(I)) { - const { lodId: C, numSplats: E, indices: D } = B, i = A.get(g); - if (i.paged) - i.paged.update(E, D); - else { - let w = this.lodInstances.get(i); - w && D.length > w.indices.length && (w.texture.dispose(), w = void 0); - const s = Math.ceil(D.length / 16384); - if (w) { - w.numSplats = E; - const o = this.renderer, y = o.getContext(); - if (o.properties.has(w.texture)) { - const k = o.properties.get(w.texture).__webglTexture; - if (!k) - throw new Error("lodIndices texture not found"); - o.state.activeTexture(y.TEXTURE0), o.state.bindTexture(y.TEXTURE_2D, k), y.bindBuffer(y.PIXEL_UNPACK_BUFFER, null), y.pixelStorei(y.UNPACK_FLIP_Y_WEBGL, !1), y.texSubImage2D( - y.TEXTURE_2D, - 0, - 0, - 0, - 4096, - s, - y.RGBA_INTEGER, - y.UNSIGNED_INT, - D - ), o.state.bindTexture(y.TEXTURE_2D, null); - } - } else { - const o = s * 16384; - if (D.length !== o) - throw new Error("Indices length != capacity"); - const y = new G.DataTexture( - D, - 4096, - s, - G.RGBAIntegerFormat, - G.UnsignedIntType + // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator, + // generating it if necessary and caching the result. + prepareProgramMaterial(A) { + let I = eA.generatorProgram.get(A); + if (!I) { + const B = LA( + { index: "int" }, + {}, + ({ index: C }, E, { roots: i }) => { + A.inputs.index = C; + const o = A.outputs.gsplat, D = gB( + o, + this.dynoRgbMinMaxLnScaleMinMax ); - y.internalFormat = "RGBA32UI", y.needsUpdate = !0, w = { lodId: C, numSplats: E, indices: D, texture: y }, this.lodInstances.set(i, w); + i.push(D); } - } - i.updateMappingVersion(); - } - } - async readbackDepth({ - current: A, - renderer: I, - numSplats: g, - readback: B - }) { - if (!I) - throw new Error("No renderer"); - if (!A.target) - throw new Error("No target"); - const C = Math.ceil(g / P) * P; - if (B.byteLength < C * 4) - throw new Error( - `Readback buffer too small: ${B.byteLength} < ${C * 4}` - ); - const E = new Uint8Array(B.buffer), D = this.saveRenderState(I), i = P * XA; - let w = 0; - const s = []; - for (; w < g; ) { - const o = Math.floor(w / i), y = o * i, h = Math.min( - XA, - Math.ceil((g - y) / P) - ), k = P * h * 4, R = E.subarray( - y * 4, - y * 4 + k - ); - I.setRenderTarget(A.target, o); - const F = I.readRenderTargetPixelsAsync( - A.target, - 0, - 0, - P, - h, - R, - void 0, - A.extSplats ? 2 : 1 ); - s.push(F), this.flushAfterRead && I.getContext().flush(), w += P * h; + eA.programTemplate || (eA.programTemplate = new hg( + yg().computeUvec4Template + )), I = new CQ({ + graph: B, + inputs: { index: "_index" }, + outputs: { output: "target" }, + template: eA.programTemplate + }), Object.assign(I.uniforms, { + targetLayer: { value: 0 }, + targetBase: { value: 0 }, + targetCount: { value: 0 } + }), eA.generatorProgram.set(A, I); } - return this.resetRenderState(I, D), Promise.all(s).then(() => B); + const g = I.prepareMaterial(); + return eA.fullScreenQuad.material = g, { program: I, material: g }; } saveRenderState(A) { return { - target: A.getRenderTarget(), - xrEnabled: A.xr.enabled, - autoClear: A.autoClear - }; - } - resetRenderState(A, I) { - A.setRenderTarget(I.target), A.xr.enabled = I.xrEnabled, A.autoClear = I.autoClear; - } - render(A, I) { - try { - iA.sparkOverride = this, this.renderer.render(A, I); - } finally { - iA.sparkOverride = void 0; - } - } - renderTarget({ - scene: A, - camera: I - }) { - const g = this.backTarget ?? this.target; - if (!g) - throw new Error("No target"); - const B = this.renderer.getRenderTarget(); - try { - this.renderer.setRenderTarget(g), iA.sparkOverride = this, this.renderer.render(A, I); - } finally { - iA.sparkOverride = void 0, this.renderer.setRenderTarget(B); - } - return g !== this.target && ([this.target, this.backTarget] = [this.backTarget, this.target]), g; - } - // Read back the previously rendered target image as a Uint8Array of packed - // RGBA values (in that order). Subsequent calls to this.readTarget() - // will reuse the same buffers to minimize memory allocations. - async readTarget() { - if (!this.target) - throw new Error("Must initialize with target"); - const { width: A, height: I } = this.target, g = A * I * 4; - (!this.superPixels || this.superPixels.length < g) && (this.superPixels = new Uint8Array(g)); - const B = this.superPixels; - await this.renderer.readRenderTargetPixelsAsync( - this.target, - 0, - 0, - A, - I, - B - ); - const { superXY: C } = this; - if (C === 1) - return B; - const E = A / C, D = I / C, i = E * D * 4; - (!this.targetPixels || this.targetPixels.length < i) && (this.targetPixels = new Uint8Array(i)); - const w = this.targetPixels, s = C * C; - for (let o = 0; o < D; o++) { - const y = o * E; - for (let h = 0; h < E; h++) { - const k = h * C; - let R = 0, F = 0, a = 0, S = 0; - for (let c = 0; c < C; c++) { - const N = (o * C + c) * A; - for (let U = 0; U < C; U++) { - const J = (N + k + U) * 4; - R += B[J], F += B[J + 1], a += B[J + 2], S += B[J + 3]; - } - } - const M = (y + h) * 4; - w[M] = R / s, w[M + 1] = F / s, w[M + 2] = a / s, w[M + 3] = S / s; - } - } - return w; - } - async renderReadTarget({ - scene: A, - camera: I - }) { - return this.renderTarget({ scene: A, camera: I }), this.readTarget(); - } - // Renders out the scene to a cube map that can be used for - // Image-based lighting or similar applications. First optionally updates Gsplats, - // sorts them with respect to the provided worldCenter, renders 6 cube faces. - async renderCubeMap({ - scene: A, - worldCenter: I, - size: g = 256, - near: B = 0.1, - far: C = 1e3, - hideObjects: E = [], - update: D = !0, - filter: i = !1 - }) { - if (!iA.cubeRender || iA.cubeRender.target.width !== g || iA.cubeRender.near !== B || iA.cubeRender.far !== C) { - iA.cubeRender && iA.cubeRender.target.dispose(); - const y = new G.WebGLCubeRenderTarget(g, { - format: G.RGBAFormat, - type: G.UnsignedByteType, - generateMipmaps: i, - minFilter: i ? G.LinearMipMapLinearFilter : G.LinearFilter, - magFilter: G.LinearFilter, - colorSpace: i ? G.LinearSRGBColorSpace : G.SRGBColorSpace - }), h = new G.CubeCamera(B, C, y); - iA.cubeRender = { target: y, cubeCamera: h, near: B, far: C }; - } - const { target: w, cubeCamera: s } = iA.cubeRender; - s.position.copy(I); - const o = /* @__PURE__ */ new Map(); - for (const y of E) - o.set(y, y.visible), y.visible = !1; - if (D) { - const y = new G.Camera(); - y.position.copy(I), await this.update({ scene: A, camera: y }); - } - try { - iA.sparkOverride = this, s.update(this.renderer, A); - } finally { - iA.sparkOverride = void 0; - } - for (const [y, h] of o.entries()) - y.visible = h; - return w.texture; - } - async readCubeTargets() { - if (!iA.cubeRender) - throw new Error("No cube render"); - const A = iA.cubeRender.target.texture, I = [], g = []; - for (let B = 0; B < A.images.length; ++B) { - const { width: C, height: E } = A.images[B], D = C * E * 4, i = new Uint8Array(D); - g.push(i); - const w = this.renderer.readRenderTargetPixelsAsync( - iA.cubeRender.target, - 0, - 0, - C, - E, - i, - B - ); - I.push(w); - } - return await Promise.all(I), g; - } - // Renders out the scene to an environment map that can be used for - // Image-based lighting or similar applications. First optionally updates Gsplats, - // sorts them with respect to the provided worldCenter, renders 6 cube faces, - // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture - // that can assigned directly to a THREE.MeshStandardMaterial.envMap property. - async renderEnvMap({ - scene: A, - worldCenter: I, - size: g = 256, - near: B = 0.1, - far: C = 1e3, - hideObjects: E = [], - update: D = !0 - }) { - var w; - const i = await this.renderCubeMap({ - scene: A, - worldCenter: I, - size: g, - near: B, - far: C, - hideObjects: E, - update: D, - filter: !0 - }); - return iA.pmrem || (iA.pmrem = new G.PMREMGenerator(this.renderer)), (w = iA.pmrem) == null ? void 0 : w.fromCubemap(i).texture; - } - // Utility function to recursively set the envMap property for any - // THREE.MeshStandardMaterial within the subtree of root. - recurseSetEnvMap(A, I) { - A.traverse((g) => { - if (g instanceof G.Mesh) - if (Array.isArray(g.material)) - for (const B of g.material) - B instanceof G.MeshStandardMaterial && (B.envMap = I); - else - g.material instanceof G.MeshStandardMaterial && (g.material.envMap = I); - }); - } - async getLodTreeLevel(A, I, g = !1) { - var E, D; - const B = this.lodInstances.get(A); - if (!B) - return null; - const C = await this.ensureLodWorker().exclusive(async (i) => await i.call("getLodTreeLevel", { - lodId: B.lodId, - level: I - })); - if ((E = A.packedSplats) != null && E.lodSplats) { - const i = A.packedSplats.lodSplats.extractSplats( - C.indices, - g + target: A.getRenderTarget(), + xrEnabled: A.xr.enabled, + autoClear: A.autoClear + }; + } + resetRenderState(A, I) { + A.setRenderTarget(I.target), A.xr.enabled = I.xrEnabled, A.autoClear = I.autoClear; + } + // Executes a dyno program specified by generator which is any DynoBlock that + // maps { index: "int" } to { gsplat: Gsplat }. This is called in + // SparkRenderer.updateInternal() to re-generate Gsplats in the scene for + // SplatGenerator instances whose version is newer than what was generated + // for it last time. + generate({ + generator: A, + base: I, + count: g, + renderer: B + }) { + if (!this.target) + throw new Error("Target must be initialized with ensureSplats"); + if (I + g > this.maxSplats) + throw new Error("Base + count exceeds maxSplats"); + const { program: C, material: E } = this.prepareProgramMaterial(A); + C.update(); + const i = this.saveRenderState(B), o = Math.ceil((I + g) / P) * P, D = P * ZA; + for (E.uniforms.targetBase.value = I, E.uniforms.targetCount.value = g; I < o; ) { + const s = Math.floor(I / D); + E.uniforms.targetLayer.value = s; + const w = s * D, G = Math.floor((I - w) / P), h = Math.min( + ZA, + Math.ceil((o - w) / P) ); - return new vA({ packedSplats: i }); + this.target.scissor.set( + 0, + G, + P, + h - G + ), B.setRenderTarget(this.target, s), B.xr.enabled = !1, B.autoClear = !1, eA.fullScreenQuad.render(B), I += P * (h - G); } - if ((D = A.extSplats) != null && D.lodSplats) { - const i = A.extSplats.lodSplats.extractSplats( - C.indices, - g + return this.resetRenderState(B, i), { nextBase: o }; + } + disposeLodSplats() { + this.lodSplats && (this.lodSplats.dispose(), this.lodSplats = void 0); + } + async createLodSplats({ + rgbaArray: A, + quality: I + } = {}) { + const g = typeof this.lod == "number" ? Math.max(1.1, Math.min(2, this.lod)) : I ? 1.75 : 1.5, B = this.packedArray.slice(), C = A ? (await A.getArray()).slice() : void 0, E = { + sh1: this.extra.sh1 ? this.extra.sh1.slice() : void 0, + sh2: this.extra.sh2 ? this.extra.sh2.slice() : void 0, + sh3: this.extra.sh3 ? this.extra.sh3.slice() : void 0 + }, i = await iQ.withWorker(async (D) => await D.call( + I ? "qualityLodPackedSplats" : "tinyLodPackedSplats", + { + numSplats: this.numSplats, + packedArray: B, + extra: E, + lodBase: g, + rgba: C, + encoding: this.splatEncoding ?? AQ + } + )), o = new eA(i); + this.lodSplats && this.lodSplats.dispose(), this.lodSplats = o, this.nonLod = !0, this.lod = I ? "quality" : !0; + } + extractSplats(A, I) { + const g = EA(A.length).maxSplats, B = new eA({ maxSplats: g }); + for (let C = 0; C < A.length; C++) { + const E = this.getSplat(A[C]); + if (I) { + let i = (A[C] >>> 16) * 0.61803398875; + i = i - Math.floor(i); + const o = Math.max(0, Math.min(1, Math.abs(i * 6 - 3) - 1)), D = Math.max(0, Math.min(1, Math.abs(i * 6 + 1) - 1)), s = Math.max(0, Math.min(1, Math.abs(i * 6 - 1) - 1)); + E.color.r *= o, E.color.g *= D, E.color.b *= s; + } + B.pushSplat( + E.center, + E.scales, + E.quaternion, + E.opacity, + E.color ); - return new vA({ extSplats: i }); } - throw new Error( - "Only LoD-enabled PackedSplats and ExtSplats are supported" - ); + return B; } - get premultipliedAlpha() { - return this.material.premultipliedAlpha; +}; +eA.getEmptyArray = (() => { + const { width: A, height: I, depth: g, maxSplats: B } = EA(1), C = new Uint32Array(B * 4), E = new a.DataArrayTexture( + C, + A, + I, + g + ); + return E.format = a.RGBAIntegerFormat, E.type = a.UnsignedIntType, E.internalFormat = "RGBA32UI", E.needsUpdate = !0, E; +})(), eA.programTemplate = null, eA.generatorProgram = /* @__PURE__ */ new WeakMap(), eA.fullScreenQuad = new OQ( + new a.RawShaderMaterial({ visible: !1 }) +), eA.emptyUint32x4 = (() => { + const { width: A, height: I, depth: g, maxSplats: B } = EA(1), C = new Uint32Array(B * 4), E = new a.DataArrayTexture( + C, + A, + I, + g + ); + return E.format = a.RGBAIntegerFormat, E.type = a.UnsignedIntType, E.internalFormat = "RGBA32UI", E.needsUpdate = !0, E; +})(), eA.emptyUint32x2 = (() => { + const { width: A, height: I, depth: g, maxSplats: B } = EA(1), C = new Uint32Array(B * 2), E = new a.DataArrayTexture( + C, + A, + I, + g + ); + return E.format = a.RGIntegerFormat, E.type = a.UnsignedIntType, E.internalFormat = "RG32UI", E.needsUpdate = !0, E; +})(); +let tI = eA; +class Mo extends x { + constructor({ packedSplats: A } = {}) { + super({ + key: "packedSplats", + type: IQ, + globals: () => [gQ], + value: { + textureArray: tI.getEmptyArray, + numSplats: 0, + rgbMinMaxLnScaleMinMax: new a.Vector4( + 0, + 1, + pA, + uA + ), + lodOpacity: !1 + }, + update: (I) => { + var g, B, C, E, i, o, D, s, w, G, h, c; + return I.textureArray = ((g = this.packedSplats) == null ? void 0 : g.getTexture()) ?? tI.getEmptyArray, I.numSplats = ((B = this.packedSplats) == null ? void 0 : B.numSplats) ?? 0, I.rgbMinMaxLnScaleMinMax.set( + ((E = (C = this.packedSplats) == null ? void 0 : C.splatEncoding) == null ? void 0 : E.rgbMin) ?? 0, + ((o = (i = this.packedSplats) == null ? void 0 : i.splatEncoding) == null ? void 0 : o.rgbMax) ?? 1, + ((s = (D = this.packedSplats) == null ? void 0 : D.splatEncoding) == null ? void 0 : s.lnScaleMin) ?? pA, + ((G = (w = this.packedSplats) == null ? void 0 : w.splatEncoding) == null ? void 0 : G.lnScaleMax) ?? uA + ), I.lodOpacity = ((c = (h = this.packedSplats) == null ? void 0 : h.splatEncoding) == null ? void 0 : c.lodOpacity) ?? !1, I; + } + }), this.packedSplats = A; } - set premultipliedAlpha(A) { - this.material.premultipliedAlpha !== A && (this.material.premultipliedAlpha = A, this.material.needsUpdate = !0); +} +const dh = GA(` + vec3 evaluatePackedSH1(uvec2 packedData, vec3 viewDir, float sh1Max) { + // Extract sint7 values packed into 2 x uint32 + vec3 sh1_0 = vec3(ivec3( + int(packedData.x << 25u) >> 25, + int(packedData.x << 18u) >> 25, + int(packedData.x << 11u) >> 25 + )); + vec3 sh1_1 = vec3(ivec3( + int(packedData.x << 4u) >> 25, + int((packedData.x >> 3u) | (packedData.y << 29u)) >> 25, + int(packedData.y << 22u) >> 25 + )); + vec3 sh1_2 = vec3(ivec3( + int(packedData.y << 15u) >> 25, + int(packedData.y << 8u) >> 25, + int(packedData.y << 1u) >> 25 + )); + + vec3 rgb = sh1_0 * (-0.4886025 * viewDir.y) + + sh1_1 * (0.4886025 * viewDir.z) + + sh1_2 * (-0.4886025 * viewDir.x); + return rgb * (sh1Max / 63.0); } -}; -iA.emptyOrdering = (() => { - const I = new Uint32Array(16384), g = new G.DataTexture(I, 4096, 1); - return g.format = G.RGBAIntegerFormat, g.type = G.UnsignedIntType, g.internalFormat = "RGBA32UI", g.needsUpdate = !0, g; -})(), iA.cubeRender = null, iA.pmrem = null; -let jg = iA; -class Pg { +`), qh = GA(` + vec3 evaluatePackedSH2(uvec4 packedData, vec3 viewDir, float sh2Max) { + // Extract sint8 values packed into 4 x uint32 + vec3 sh2_0 = vec3(ivec3( + int(packedData.x << 24u) >> 24, + int(packedData.x << 16u) >> 24, + int(packedData.x << 8u) >> 24 + )); + vec3 sh2_1 = vec3(ivec3( + int(packedData.x) >> 24, + int(packedData.y << 24u) >> 24, + int(packedData.y << 16u) >> 24 + )); + vec3 sh2_2 = vec3(ivec3( + int(packedData.y << 8u) >> 24, + int(packedData.y) >> 24, + int(packedData.z << 24u) >> 24 + )); + vec3 sh2_3 = vec3(ivec3( + int(packedData.z << 16u) >> 24, + int(packedData.z << 8u) >> 24, + int(packedData.z) >> 24 + )); + vec3 sh2_4 = vec3(ivec3( + int(packedData.w << 24u) >> 24, + int(packedData.w << 16u) >> 24, + int(packedData.w << 8u) >> 24 + )); + + vec3 rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y) + + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z) + + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y)) + + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z) + + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y)); + return rgb * (sh2Max / 127.0); + } +`), lh = GA(` + vec3 evaluatePackedSH3(uvec4 packedData, vec3 viewDir, float sh3Max) { + // Extract sint6 values packed into 4 x uint32 + vec3 sh3_0 = vec3(ivec3( + int(packedData.x << 26u) >> 26, + int(packedData.x << 20u) >> 26, + int(packedData.x << 14u) >> 26 + )); + vec3 sh3_1 = vec3(ivec3( + int(packedData.x << 8u) >> 26, + int(packedData.x << 2u) >> 26, + int((packedData.x >> 4u) | (packedData.y << 28u)) >> 26 + )); + vec3 sh3_2 = vec3(ivec3( + int(packedData.y << 22u) >> 26, + int(packedData.y << 16u) >> 26, + int(packedData.y << 10u) >> 26 + )); + vec3 sh3_3 = vec3(ivec3( + int(packedData.y << 4u) >> 26, + int((packedData.y >> 2u) | (packedData.z << 30u)) >> 26, + int(packedData.z << 24u) >> 26 + )); + vec3 sh3_4 = vec3(ivec3( + int(packedData.z << 18u) >> 26, + int(packedData.z << 12u) >> 26, + int(packedData.z << 6u) >> 26 + )); + vec3 sh3_5 = vec3(ivec3( + int(packedData.z) >> 26, + int(packedData.w << 26u) >> 26, + int(packedData.w << 20u) >> 26 + )); + vec3 sh3_6 = vec3(ivec3( + int(packedData.w << 14u) >> 26, + int(packedData.w << 8u) >> 26, + int(packedData.w << 2u) >> 26 + )); + + float xx = viewDir.x * viewDir.x; + float yy = viewDir.y * viewDir.y; + float zz = viewDir.z * viewDir.z; + float xy = viewDir.x * viewDir.y; + float yz = viewDir.y * viewDir.z; + float zx = viewDir.z * viewDir.x; + + vec3 rgb = sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy)) + + sh3_1 * (2.8906114 * xy * viewDir.z) + + + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy)) + + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) + + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy)) + + sh3_5 * (1.4453057 * viewDir.z * (xx - yy)) + + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy)); + return rgb * (sh3Max / 31.0); + } +`); +function eo({ + coord: Q, + viewDir: A, + numSh: I, + sh1Texture: g, + sh2Texture: B, + sh3Texture: C, + shMax: E +}) { + return new q({ + inTypes: { + coord: "ivec3", + viewDir: "vec3", + numSh: "int", + sh1Texture: "usampler2DArray", + sh2Texture: "usampler2DArray", + sh3Texture: "usampler2DArray", + shMax: "vec3" + }, + outTypes: { rgb: "vec3" }, + inputs: { + coord: Q, + viewDir: A, + numSh: I, + sh1Texture: g, + sh2Texture: B, + sh3Texture: C, + shMax: E + }, + globals: () => [ + dh, + qh, + lh + ], + statements: ({ inputs: i, outputs: o }) => { + const D = ["vec3 rgb = vec3(0.0);"]; + return i.sh1Texture && (D.push( + ...z(` + if (${i.numSh} >= 1) { + vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${i.sh1Texture}, ${i.coord}, 0).rg, ${i.viewDir}, ${i.shMax}.x); + rgb += sh1Rgb; + `) + ), i.sh2Texture && (D.push( + ...z(` + if (${i.numSh} >= 2) { + vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${i.sh2Texture}, ${i.coord}, 0), ${i.viewDir}, ${i.shMax}.y); + rgb += sh2Rgb; + `) + ), i.sh3Texture && D.push( + ...z(` + if (${i.numSh} >= 3) { + vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${i.sh3Texture}, ${i.coord}, 0), ${i.viewDir}, ${i.shMax}.z); + rgb += sh3Rgb; + } + `) + ), D.push("}")), D.push("}")), D.push(`${o.rgb} = rgb;`), D; + } + }).outputs; +} +class Jo extends Wo { constructor(A) { - var I; - if (this.pager = A.pager, this.rootUrl = A.rootUrl ?? "", this.requestHeader = A.requestHeader, this.withCredentials = A.withCredentials, this.numSh = 0, this.maxSh = ((I = A.pager) == null ? void 0 : I.maxSh) ?? 3, this.numSplats = 0, this.dynoNumSplats = new EI({ value: 0 }), this.dynoIndices = new EQ({ - value: tI.emptyIndicesTexture - }), this.rgbMinMaxLnScaleMinMax = new mI({ - value: new G.Vector4(0, 1, pA, fA) - }), this.lodOpacity = new bI({ - value: !1 - }), this.dynoNumSh = new EI({ value: 0 }), this.shMax = new DI({ value: new G.Vector3() }), this.fileBytes = A.fileBytes, this.fileType = A.fileType, !this.fileType && this.fileBytes && (this.fileType = NB(this.fileBytes)), !this.fileType && this.rootUrl && (this.fileType = cB(this.rootUrl)), !this.fileType) - throw new Error("Unable to determine file type"); - this.fileType === hA.RAD && (this.radMetaPromise = this.getRadMeta()); - } - dispose() { - this.dynoIndices.value !== tI.emptyIndicesTexture && (this.dynoIndices.value.dispose(), this.dynoIndices.value = tI.emptyIndicesTexture); + super(A), this.fileLoader = new vo(A); } - setMaxSh(A) { - this.maxSh = A; + load(A, I, g, B) { + return this.loadInternal({ + url: A, + onLoad: I, + onProgress: g, + onError: B + }); } - getRadMeta() { - return this.radMetaPromise ? this.radMetaPromise : (this.radMetaPromise = (async () => { - if (await mh, this.fileBytes) { - const A = rB(this.fileBytes.slice(0, 1048576)); - if (A) - return A; - throw new Error("Failed to decode RAD header"); - } - if (!this.rootUrl) - throw new Error("No url or fileBytes provided"); - for (const A of [65536, 256 * 1024, 1024 * 1024]) { - const I = await JQ({ - url: this.rootUrl, - requestHeader: this.requestHeader, - withCredentials: this.withCredentials, - offset: 0, - bytes: A - }), g = rB(I); - if (g) - return g; - } - throw new Error("Failed to decode RAD header"); - })().then((A) => A), this.radMetaPromise.catch((A) => { - console.error(A); - }), this.radMetaPromise); + async loadAsync(A, I) { + return new Promise((g, B) => { + this.load( + A, + (C) => { + g(C); + }, + I, + B + ); + }); } - chunkUrl(A) { - return this.rootUrl.replace(/-lod-0\./, `-lod-${A}.`); + parse(A) { + return new zA({ packedSplats: A }); } - async fetchDecodeChunk(A) { - let I; - if (this.fileType === hA.RAD) { - const { meta: g, chunksStart: B } = await this.getRadMeta(); - if (A < 0 || A >= g.chunks.length) - throw new Error( - `Chunk index out of range: ${A} (max: ${g.chunks.length - 1})` - ); - let { offset: C, bytes: E, filename: D } = g.chunks[A]; - if (D) { - if (this.fileBytes) - throw new Error("Chunked RAD file not supported with fileBytes"); - const i = new URL( - this.rootUrl, - window.location.href - ).toString(), w = new URL(D, i).toString(); - I = await JQ({ - url: w, - requestHeader: this.requestHeader, - withCredentials: this.withCredentials - }); - } else if (C += B, this.fileBytes) { - if (C < 0 || C + E > this.fileBytes.length) - throw new Error( - `Invalid chunk offset or bytes: ${C} + ${E} > ${this.fileBytes.length}` - ); - I = this.fileBytes.slice(C, C + E); - } else if (this.rootUrl) - I = await JQ({ - url: this.rootUrl, + loadInternal({ + packedSplats: A, + extSplats: I, + url: g, + fileBytes: B, + fileType: C, + fileName: E, + stream: i, + streamLength: o, + onLoad: D, + onProgress: s, + onError: w, + lod: G, + nonLod: h, + lodAbove: c, + lodBase: t + }) { + B instanceof ArrayBuffer && (B = new Uint8Array(B)); + const y = B ? void 0 : this.manager.resolveURL((this.path ?? "") + (g ?? "")); + let k = i == null ? void 0 : i.getReader(); + this.manager.itemStart(y ?? ""), iQ.withWorker(async (F) => { + const R = (A == null ? void 0 : A.lod) ?? (I == null ? void 0 : I.lod); + R && (G = R); + const S = (A == null ? void 0 : A.nonLod) ?? (I == null ? void 0 : I.nonLod); + S !== void 0 && (h = S); + const N = async (e) => { + const { loaded: J, total: n } = e; + if (J !== void 0 && s && s( + new ProgressEvent("progress", { + lengthComputable: n !== 0, + loaded: J, + total: n + }) + ), e.nextChunk) { + let H; + if (!k) + H = new Uint8Array(0); + else { + const { done: L, value: l } = await k.read(); + L ? (k.releaseLock(), k = void 0, H = new Uint8Array(0)) : H = l; + } + F.call("nextChunk", { chunk: H }); + } + }, M = y ? new URL(y, window.location.href).toString() : void 0, U = await F.call( + I ? "loadExtSplats" : "loadPackedSplats", + { + url: M, requestHeader: this.requestHeader, withCredentials: this.withCredentials, - offset: C, - bytes: E - }); - else - throw new Error("No url or fileBytes provided"); - } else if (!this.fileBytes) if (this.rootUrl) { - const g = this.chunkUrl(A), B = new Request(g, { - headers: this.requestHeader ? new Headers(this.requestHeader) : void 0, - credentials: this.withCredentials ? "include" : "same-origin" - }), C = await fetch(B); - if (!C.ok || !C.body) - throw new Error( - `Failed to fetch "${g}": ${C.status} ${C.statusText}` - ); - I = new Uint8Array(await C.arrayBuffer()); - } else - throw new Error("No url or fileBytes provided"); - return await BQ.withWorker(async (g) => { - var D, i, w, s, o; - if (!this.pager) - throw new Error("PagedSplats.pager not set"); - if (!this.pager.extSplats) { - const h = (await g.call("loadPackedSplats", { - fileBytes: I, - pathName: this.chunkUrl(A), - sh1Codes: (D = this.sh1Codes) == null ? void 0 : D.slice(), - sh2Codes: (i = this.sh2Codes) == null ? void 0 : i.slice(), - sh3Codes: (w = this.sh3Codes) == null ? void 0 : w.slice() - })).lodSplats; - return this.splatEncoding || (this.splatEncoding = h.splatEncoding, this.numSh = h.extra.sh3 ? 3 : h.extra.sh2 ? 2 : h.extra.sh1 ? 1 : 0, this.rgbMinMaxLnScaleMinMax.value.set( - this.splatEncoding.rgbMin ?? 0, - this.splatEncoding.rgbMax ?? 1, - this.splatEncoding.lnScaleMin ?? pA, - this.splatEncoding.lnScaleMax ?? fA - ), this.lodOpacity.value = this.splatEncoding.lodOpacity ?? !1, this.shMax.value.set( - this.splatEncoding.sh1Max ?? 1, - this.splatEncoding.sh2Max ?? 1, - this.splatEncoding.sh3Max ?? 1 - )), this.sh1Codes = h.extra.sh1Codes ?? this.sh1Codes, this.sh2Codes = h.extra.sh2Codes ?? this.sh2Codes, this.sh3Codes = h.extra.sh3Codes ?? this.sh3Codes, h; + fileBytes: B == null ? void 0 : B.slice(), + fileType: C, + pathName: y || E, + chunked: i !== void 0, + chunkedLength: o, + encoding: A == null ? void 0 : A.splatEncoding, + lod: G, + lodBase: t, + nonLod: h, + lodAbove: c + }, + { onStatus: N } + ); + if (U.lodSplats && (I ? U.lodSplats = new wI({ + ...U.lodSplats + }) : U.lodSplats = new tI({ + ...U.lodSplats, + maxSplats: A == null ? void 0 : A.maxSplats + })), I) { + const e = { + // ...(initExt ?? {}), + ...U + }; + I.initialize(e), D == null || D(I); + } else { + const e = { + // ...(init ?? {}), + ...U + }; + A ? (A.initialize(e), D == null || D(A)) : D == null || D(new tI(e)); } - const B = this.sh3Codes, E = (await g.call("loadExtSplats", { - fileBytes: I, - pathName: this.chunkUrl(A), - sh1Codes: (s = this.sh1Codes) == null ? void 0 : s.slice(), - sh2Codes: (o = this.sh2Codes) == null ? void 0 : o.slice(), - sh3Codes: B ? [B[0].slice(), B[1].slice()] : void 0 - })).lodSplats; - return this.splatEncoding || (this.splatEncoding = cg, this.numSh = E.extra.sh3a && E.extra.sh3b ? 3 : E.extra.sh2 ? 2 : E.extra.sh1 ? 1 : 0), this.sh1Codes = E.extra.sh1Codes ?? this.sh1Codes, this.sh2Codes = E.extra.sh2Codes ?? this.sh2Codes, this.sh3Codes = E.extra.sh3Codes ?? this.sh3Codes, E; + }).catch((F) => { + this.manager.itemError(y ?? ""), w == null || w(F); + }).finally(() => { + this.manager.itemEnd(y ?? ""); }); } - update(A, I) { - if (!this.pager) - throw new Error("PagedSplats.pager not set"); - const g = this.pager.renderer; - this.numSplats = A, this.dynoNumSplats.value = this.numSplats; - const B = Math.ceil(A / 16384); - let C = this.dynoIndices.value === tI.emptyIndicesTexture ? void 0 : this.dynoIndices.value; - if (C && B > C.image.height && (C.dispose(), C = void 0), !C) - C = new G.DataTexture( - I, - 4096, - B, - G.RGBAIntegerFormat, - G.UnsignedIntType - ), C.internalFormat = "RGBA32UI", C.needsUpdate = !0, g.initTexture(C), this.dynoIndices.value = C; + async loadInternalAsync({ + packedSplats: A, + extSplats: I, + url: g, + fileBytes: B, + fileType: C, + fileName: E, + stream: i, + streamLength: o, + onProgress: D, + lod: s, + nonLod: w, + lodAbove: G, + lodBase: h + }) { + return new Promise((c, t) => { + this.loadInternal({ + packedSplats: A, + extSplats: I, + url: g, + fileBytes: B, + fileType: C, + fileName: E, + stream: i, + streamLength: o, + onLoad: c, + onProgress: D, + onError: t, + lod: s, + nonLod: w, + lodAbove: G, + lodBase: h + }); + }); + } +} +function Uo(Q) { + const I = new DataView(Q.buffer).getUint32(0, !0); + if ((I & 16777215) === 7957616) + return UA.PLY; + if ((I & 16777215) === 559903) { + const g = rE(Q, 4); + return new DataView(g.buffer).getUint32(0, !0) === 1347635022 ? UA.SPZ : void 0; + } + if (I === 67324752) + return fh(Q) ? UA.PCSOGSZIP : void 0; + if (I === 809779538) + return UA.RAD; +} +function xh(Q) { + const A = Q.split(/[?#]/, 1)[0], I = Math.max( + A.lastIndexOf("/"), + A.lastIndexOf("\\") + ), g = A.slice(I + 1), B = g.lastIndexOf("."); + return B <= 0 || B === g.length - 1 ? "" : g.slice(B + 1).toLowerCase(); +} +function Lo(Q) { + const A = xh(Q); + if (A === "ply") + return UA.PLY; + if (A === "spz") + return UA.SPZ; + if (A === "splat") + return UA.SPLAT; + if (A === "ksplat") + return UA.KSPLAT; + if (A === "sog") + return UA.PCSOGSZIP; + if (A === "rad") + return UA.RAD; +} +function Hy(Q) { + return Ho(Q) !== void 0; +} +function Ho(Q) { + try { + let A; + if (typeof Q == "string") + A = Q; else { - C.image.data.set(I.subarray(0, A)); - const D = g.getContext(); - g.state.activeTexture(D.TEXTURE0), g.state.bindTexture( - D.TEXTURE_2D, - pw(g, C) - ), D.bindBuffer(D.PIXEL_UNPACK_BUFFER, null), D.pixelStorei(D.UNPACK_FLIP_Y_WEBGL, !1), D.texSubImage2D( - D.TEXTURE_2D, - 0, - 0, - 0, - 4096, - B, - D.RGBA_INTEGER, - D.UNSIGNED_INT, - I - ), g.state.bindTexture(D.TEXTURE_2D, null); + const B = Q instanceof ArrayBuffer ? new Uint8Array(Q) : Q; + if (B.length > 65536) + return; + A = new TextDecoder().decode(B); + } + const I = JSON.parse(A); + if (!I || typeof I != "object" || Array.isArray(I)) + return; + const g = I.version === 2; + for (const B of ["means", "scales", "quats", "sh0"]) { + if (!I[B] || typeof I[B] != "object" || Array.isArray(I[B])) + return; + if (g) { + if (!I[B].files || (B === "scales" || B === "sh0") && !I[B].codebook || B === "means" && (!I[B].mins || !I[B].maxs)) + return; + } else if (!I[B].shape || !I[B].files || B !== "quats" && (!I[B].mins || !I[B].maxs)) + return; + } + return I; + } catch { + return; + } +} +function fh(Q) { + try { + const A = Q instanceof ArrayBuffer ? new Uint8Array(Q) : Q; + let I = null; + const g = Ms(A, { + filter: ({ name: C }) => C.split(/[\\/]/).pop() === "meta.json" ? (I = C, !0) : !1 + }); + if (!I) + return; + const B = Ho(g[I]); + return B ? { name: I, json: B } : void 0; + } catch { + return; + } +} +class ph { + constructor({ maxSplats: A = 1 } = {}) { + this.numSplats = 0, this.maxSplats = EA(A).maxSplats, this.centers = new Float32Array(this.maxSplats * 3), this.scales = new Float32Array(this.maxSplats * 3), this.quaternions = new Float32Array(this.maxSplats * 4), this.opacities = new Float32Array(this.maxSplats), this.colors = new Float32Array(this.maxSplats * 3); + } + pushSplat() { + const A = this.numSplats; + return this.ensureIndex(A), this.numSplats += 1, A; + } + unpushSplat(A) { + if (A === this.numSplats - 1) + this.numSplats -= 1; + else + throw new Error("Cannot unpush splat from non-last position"); + } + ensureCapacity(A) { + if (A > this.maxSplats) { + const I = Math.max(A, this.maxSplats * 2), g = new Float32Array(I * 3), B = new Float32Array(I * 3), C = new Float32Array(I * 4), E = new Float32Array(I), i = new Float32Array(I * 3); + if (g.set(this.centers), B.set(this.scales), C.set(this.quaternions), E.set(this.opacities), i.set(this.colors), this.centers = g, this.scales = B, this.quaternions = C, this.opacities = E, this.colors = i, this.sh1) { + const o = new Float32Array(I * 9); + o.set(this.sh1), this.sh1 = o; + } + if (this.sh2) { + const o = new Float32Array(I * 15); + o.set(this.sh2), this.sh2 = o; + } + if (this.sh3) { + const o = new Float32Array(I * 21); + o.set(this.sh3), this.sh3 = o; + } + this.maxSplats = I; } } - prepareFetchSplat() { + ensureIndex(A) { + this.ensureCapacity(A + 1); } - getNumSplats() { - return this.numSplats; + setCenter(A, I, g, B) { + this.centers[A * 3] = I, this.centers[A * 3 + 1] = g, this.centers[A * 3 + 2] = B; } - hasRgbDir() { - return this.pager ? Math.min(this.numSh, this.pager.maxSh) > 0 : !1; + setScale(A, I, g, B) { + this.scales[A * 3] = I, this.scales[A * 3 + 1] = g, this.scales[A * 3 + 2] = B; } - getNumSh() { - return this.numSh; + setQuaternion(A, I, g, B, C) { + this.quaternions[A * 4] = I, this.quaternions[A * 4 + 1] = g, this.quaternions[A * 4 + 2] = B, this.quaternions[A * 4 + 3] = C; } - fetchSplat({ - index: A, - viewOrigin: I - }) { - if (!this.pager) - throw new Error("PagedSplats.pager not set"); - const g = this.pager.readIndex.apply({ - index: A, - numSplats: this.dynoNumSplats, - indices: this.dynoIndices - }).index; - return this.pager.extSplats ? this.hasRgbDir() && I ? (this.dynoNumSh.value = Math.min(this.numSh, this.maxSh, this.pager.maxSh), this.pager.readSplatExtDir.apply({ - index: g, - viewOrigin: I, - numSh: this.dynoNumSh - }).gsplat) : this.pager.readSplatExt.apply({ index: g }).gsplat : this.hasRgbDir() && I ? (this.dynoNumSh.value = Math.min( - this.numSh, - this.maxSh, - this.pager.maxSh - ), this.pager.readSplatDir.apply({ - index: g, - rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax, - lodOpacity: this.lodOpacity, - viewOrigin: I, - numSh: this.dynoNumSh, - shMax: this.shMax - }).gsplat) : this.pager.readSplat.apply({ - index: g, - rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax, - lodOpacity: this.lodOpacity - }).gsplat; + setOpacity(A, I) { + this.opacities[A] = I; } - // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat - // and invoke the callback function with the Gsplat attributes. - forEachSplat(A) { - if (!this.pager || !this.numSplats) - return; - const I = this.pager.extSplats, g = this.dynoIndices.value.image.data, B = this.pager.packedTexture.value.image.data, C = this.pager.extTexture.value.image.data, E = [ - B, - C - ]; - for (let D = 0; D < this.numSplats; ++D) { - const i = g[D], w = I ? Tg(E, i) : Og(B, i, this.splatEncoding); - A( - D, - w.center, - w.scales, - w.quaternion, - w.opacity, - w.color - ); - } + setColor(A, I, g, B) { + this.colors[A * 3] = I, this.colors[A * 3 + 1] = g, this.colors[A * 3 + 2] = B; + } + setSh1(A, I) { + this.sh1 || (this.sh1 = new Float32Array(this.maxSplats * 9)); + for (let g = 0; g < 9; ++g) + this.sh1[A * 9 + g] = I[g]; + } + setSh2(A, I) { + this.sh2 || (this.sh2 = new Float32Array(this.maxSplats * 15)); + for (let g = 0; g < 15; ++g) + this.sh2[A * 15 + g] = I[g]; + } + setSh3(A, I) { + this.sh3 || (this.sh3 = new Float32Array(this.maxSplats * 21)); + for (let g = 0; g < 21; ++g) + this.sh3[A * 21 + g] = I[g]; } } -const l = class l { - constructor(A) { - this.fetchPause = 0, this.splatsChunkToPage = /* @__PURE__ */ new Map(), this.pageToSplatsChunk = [], this.renderer = A.renderer, this.extSplats = A.extSplats ?? !1, this.pageSplats = 65536, this.maxSplats = A.maxSplats ?? 16777216, this.maxPages = Math.ceil(this.maxSplats / this.pageSplats), this.maxSplats = this.maxPages * this.pageSplats, this.maxSh = A.maxSh ?? 3, this.curSh = 0, this.autoDrive = A.autoDrive ?? !0, this.numFetchers = A.numFetchers ?? 3, this.splatsChunkToPage = /* @__PURE__ */ new Map(), this.pageToSplatsChunk = new Array(this.maxPages), this.pageFreelist = Array.from({ length: this.maxPages }, (I, g) => g), this.pageLru = /* @__PURE__ */ new Set(), this.freeablePages = [], this.newUploads = [], this.readyUploads = [], this.lodTreeUpdates = [], this.fetchers = [], this.fetched = [], this.fetchPriority = [], this.packedTexture = new dA({ - value: this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - G.RGBAIntegerFormat, - G.UnsignedIntType, - "RGBA32UI" - ) - }), this.extTexture = new dA({ - value: this.extSplats ? this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - G.RGBAIntegerFormat, - G.UnsignedIntType, - "RGBA32UI" - ) : l.emptyExtTexture - }), this.sh1Texture = new dA({ - value: this.extSplats ? l.emptyExtSh1Texture : l.emptySh1Texture - }), this.sh2Texture = new dA({ - value: this.extSplats ? l.emptyExtSh2Texture : l.emptySh2Texture - }), this.sh3Texture = new dA({ - value: this.extSplats ? l.emptyExtSh3Texture : l.emptySh3Texture - }), this.sh3TextureB = new dA({ - value: l.emptyExtSh3BTexture - }), this.readIndex = cA( - { index: "int", numSplats: "int", indices: "usampler2D" }, - { index: "int" }, - ({ index: I, numSplats: g, indices: B }) => new d({ - inTypes: { - index: "int", - numSplats: "int", - indices: "usampler2D" - }, - outTypes: { index: "int" }, - inputs: { - index: I, - numSplats: g, - indices: B - }, - statements: ({ inputs: C, outputs: E }) => z(` - if (${C.index} >= ${C.numSplats}) { - return; - } - - ivec2 indexCoord = ivec2((${C.index} >> 2) & 4095, ${C.index} >> 14); - uint index = texelFetch(${C.indices}, indexCoord, 0)[${C.index} & 3]; - ${E.index} = int(index); - `) - }).outputs - ), this.readSplat = cA( - { index: "int", rgbMinMaxLnScaleMinMax: "vec4", lodOpacity: "bool" }, - { gsplat: Z }, - ({ index: I, rgbMinMaxLnScaleMinMax: g, lodOpacity: B }) => new d({ - inTypes: { - index: "int", - packedTexture: "usampler2DArray", - rgbMinMaxLnScaleMinMax: "vec4", - lodOpacity: "bool" - }, - outTypes: { gsplat: Z }, - inputs: { - index: I, - packedTexture: this.packedTexture, - rgbMinMaxLnScaleMinMax: g, - lodOpacity: B - }, - globals: () => [HA], - statements: ({ inputs: C, outputs: E }) => z(` - int index = ${C.index}; - ivec3 splatCoord = pagedSplatTexCoord(index); - uvec4 packedData = texelFetch(${C.packedTexture}, splatCoord, 0); - - unpackSplatEncoding(packedData, ${E.gsplat}.center, ${E.gsplat}.scales, ${E.gsplat}.quaternion, ${E.gsplat}.rgba, ${C.rgbMinMaxLnScaleMinMax}); - if ((${E.gsplat}.rgba.a == 0.0) || all(equal(${E.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { - return; - } - - ${E.gsplat}.index = index; - ${E.gsplat}.flags = GSPLAT_FLAG_ACTIVE; - if (${C.lodOpacity}) { - ${E.gsplat}.rgba.a *= 2.0; - } - `) - }).outputs - ), this.readSplatDir = cA( - { - index: "int", - rgbMinMaxLnScaleMinMax: "vec4", - lodOpacity: "bool", - viewOrigin: "vec3", - numSh: "int", - shMax: "vec3" - }, - { gsplat: Z }, - ({ - index: I, - rgbMinMaxLnScaleMinMax: g, - lodOpacity: B, - viewOrigin: C, - numSh: E, - shMax: D - }) => { - if (!I || !g || !B || !C || !E || !D) - throw new Error("index and viewOrigin are required"); - let i = this.readSplat.apply({ - index: I, - rgbMinMaxLnScaleMinMax: g, - lodOpacity: B - }).gsplat; - const w = uA(i).outputs.center, s = ag(iI(w, C)); - let o = Pw({ - coord: xQ(I), - viewDir: s, - numSh: E, - sh1Texture: this.sh1Texture, - sh2Texture: this.sh2Texture, - sh3Texture: this.sh3Texture, - shMax: D - }).rgb; - return o = qA(o, uA(i).outputs.rgb), i = CI({ gsplat: i, rgb: o }), { gsplat: i }; - } - ), this.readSplatExt = cA( - { index: "int" }, - { gsplat: Z }, - ({ index: I }) => new d({ - inTypes: { - index: "int", - extTexture1: "usampler2DArray", - extTexture2: "usampler2DArray" - }, - outTypes: { gsplat: Z }, - inputs: { - index: I, - extTexture1: this.packedTexture, - extTexture2: this.extTexture - }, - globals: () => [HA], - statements: ({ inputs: g, outputs: B }) => z(` - int index = ${g.index}; - ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16); - uvec4 ext1 = texelFetch(${g.extTexture1}, splatCoord, 0); - float alpha = unpackSplatExtAlpha(ext1); - if (alpha == 0.0) { - return; - } - - uvec4 ext2 = texelFetch(${g.extTexture2}, splatCoord, 0); - unpackSplatExt(ext1, ext2, ${B.gsplat}.center, ${B.gsplat}.scales, ${B.gsplat}.quaternion, ${B.gsplat}.rgba); - if (all(equal(${B.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { - return; - } - - ${B.gsplat}.index = index; - ${B.gsplat}.flags = GSPLAT_FLAG_ACTIVE; - `) - }).outputs - ), this.readSplatExtDir = cA( - { - index: "int", - viewOrigin: "vec3", - numSh: "int" - }, - { gsplat: Z }, - ({ index: I, viewOrigin: g, numSh: B }) => { - if (!I || !g || !B) - throw new Error("index and viewOrigin are required"); - let C = this.readSplatExt.apply({ index: I }).gsplat; - const E = uA(C).outputs.center, D = ag(iI(E, g)); - let i = qw({ - coord: xQ(I), - viewDir: D, - numSh: B, - sh1Texture: this.sh1Texture, - sh2Texture: this.sh2Texture, - sh3TextureA: this.sh3Texture, - sh3TextureB: this.sh3TextureB - }).rgb; - return i = qA(i, uA(C).outputs.rgb), C = CI({ gsplat: C, rgb: i }), { gsplat: C }; - } - ); +const rA = class rA { + constructor(A = {}) { + this.maxSplats = 0, this.numSplats = 0, this.extra = {}, this.maxSh = 3, this.isInitialized = !1, this.extArrays = [new Uint32Array(0), new Uint32Array(0)], this.textures = [rA.emptyTexture, rA.emptyTexture], this.extra = {}, this.dyno = new uh({ extSplats: this }), this.dynoNumSh = new BI({ + key: "numSh", + value: 0, + update: () => Math.min(this.getNumSh(), this.maxSh) + }), this.initialized = Promise.resolve(this), this.reinitialize(A); + } + reinitialize(A) { + this.isInitialized = !1, this.extra = {}, this.maxSplats = A.maxSplats ?? 0, this.lod = A.lod, this.nonLod = A.nonLod, A.url || A.fileBytes || A.stream || A.construct ? this.initialized = this.asyncInitialize(A).then(() => (this.isInitialized = !0, this)) : (this.initialize(A), this.isInitialized = !0, this.initialized = Promise.resolve(this)); + } + initialize(A) { + this.extra = A.extra ?? {}, this.lodSplats = A.lodSplats, A.extArrays ? (this.extArrays = A.extArrays, this.maxSplats = Math.floor( + Math.min(this.extArrays[0].length / 4, this.extArrays[1].length / 4) + ), this.numSplats = A.numSplats ?? this.maxSplats, this.maxSplats = Math.floor(this.maxSplats / P) * P, this.numSplats = Math.min( + this.maxSplats, + A.numSplats ?? Number.POSITIVE_INFINITY + ), this.updateTextures()) : (this.maxSplats = A.maxSplats ?? 0, this.numSplats = 0, this.extArrays = [new Uint32Array(0), new Uint32Array(0)]); + } + async asyncInitialize(A) { + const { + url: I, + fileBytes: g, + fileType: B, + fileName: C, + stream: E, + streamLength: i, + construct: o, + lod: D, + nonLod: s, + lodAbove: w + } = A; + this.lod = D, this.nonLod = s; + const G = new Jo(); + if ((g || I || E) && await G.loadInternalAsync({ + extSplats: this, + url: I, + fileBytes: g, + fileType: B, + fileName: C, + stream: E, + streamLength: i, + onProgress: A.onProgress, + lodAbove: w + }), o) { + const h = o(this); + h instanceof Promise && await h; + } } + // Call this when you are finished with the PackedSplats and want to free + // any buffers it holds. dispose() { - this.autoDrive = !1, this.numFetchers = 0, this.packedTexture.value.dispose(), this.packedTexture.value.source.data = null, this.extTexture.value !== l.emptyExtTexture && (this.extTexture.value.dispose(), this.extTexture.value.source.data = null), this.extSplats ? (this.sh1Texture.value !== l.emptyExtSh1Texture && (this.sh1Texture.value.dispose(), this.sh1Texture.value.source.data = null), this.sh2Texture.value !== l.emptyExtSh2Texture && (this.sh2Texture.value.dispose(), this.sh2Texture.value.source.data = null), this.sh3Texture.value !== l.emptyExtSh3Texture && (this.sh3Texture.value.dispose(), this.sh3Texture.value.source.data = null), this.sh3TextureB.value !== l.emptyExtSh3BTexture && (this.sh3TextureB.value.dispose(), this.sh3TextureB.value.source.data = null)) : (this.sh1Texture.value !== l.emptySh1Texture && (this.sh1Texture.value.dispose(), this.sh1Texture.value.source.data = null), this.sh2Texture.value !== l.emptySh2Texture && (this.sh2Texture.value.dispose(), this.sh2Texture.value.source.data = null), this.sh3Texture.value !== l.emptySh3Texture && (this.sh3Texture.value.dispose(), this.sh3Texture.value.source.data = null)); + this.textures[0] !== rA.emptyTexture && (this.textures[0].dispose(), this.textures[0].source.data = null, this.textures[0] = rA.emptyTexture), this.textures[1] !== rA.emptyTexture && (this.textures[1].dispose(), this.textures[1].source.data = null, this.textures[1] = rA.emptyTexture), this.extArrays = [new Uint32Array(0), new Uint32Array(0)]; + for (const A in this.extra) { + const I = this.extra[A]; + if (I instanceof x) { + const g = I.value; + g != null && g.isTexture && (g.dispose(), g.source.data = null); + } + } + this.extra = {}, this.disposeLodSplats(); } - ensureShTextures(A) { - this.curSh = Math.max(this.curSh, A), this.extSplats ? this.curSh >= 1 && this.sh1Texture.value === l.emptyExtSh1Texture && (this.sh1Texture.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - G.RGBAIntegerFormat, - G.UnsignedIntType, - "RGBA32UI" - )) : this.curSh >= 1 && this.sh1Texture.value === l.emptySh1Texture && (this.sh1Texture.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 2), - 256, - 256, - this.maxPages, - G.RGIntegerFormat, - G.UnsignedIntType, - "RG32UI" - )), this.curSh >= 2 && this.sh2Texture.value === (this.extSplats ? l.emptyExtSh2Texture : l.emptySh2Texture) && (this.sh2Texture.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - G.RGBAIntegerFormat, - G.UnsignedIntType, - "RGBA32UI" - )), this.extSplats ? this.curSh >= 3 && (this.sh3Texture.value === l.emptyExtSh3Texture && (this.sh3Texture.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - G.RGBAIntegerFormat, - G.UnsignedIntType, - "RGBA32UI" - )), this.sh3TextureB.value === l.emptyExtSh3BTexture && (this.sh3TextureB.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - G.RGBAIntegerFormat, - G.UnsignedIntType, - "RGBA32UI" - ))) : this.curSh >= 3 && this.sh3Texture.value === l.emptySh3Texture && (this.sh3Texture.value = this.newUint32ArrayTexture( - new Uint32Array(this.maxPages * 256 * 256 * 4), - 256, - 256, - this.maxPages, - G.RGBAIntegerFormat, - G.UnsignedIntType, - "RGBA32UI" - )); + prepareFetchSplat() { } - allocatePage() { - return this.pageFreelist.shift(); + getNumSplats() { + return this.numSplats; } - freePage(A) { - this.pageFreelist.push(A); + hasRgbDir() { + return Math.min(this.getNumSh(), this.maxSh) > 0; } - getSplatsChunk(A, I) { - const g = this.splatsChunkToPage.get(A); - if (g) - return g[I]; + getNumSh() { + return this.extra.sh1 ? this.extra.sh2 ? !this.extra.sh3a || !this.extra.sh3b ? 2 : 3 : 1 : 0; } - insertSplatsChunkPage(A, I, g, B) { - this.splatsChunkToPage.has(A) || this.splatsChunkToPage.set(A, []); - const C = this.splatsChunkToPage.get(A); - if (!C) - throw new Error("impossible"); - I >= C.length && (C.length = I + 1); - const E = { page: g, lru: B }; - return C[I] = E, this.pageLru.add(E), this.pageToSplatsChunk[g] = { splats: A, chunk: I, time: performance.now() }, this.pageToSplatsChunk[g]; + setMaxSh(A) { + this.maxSh = A; } - removeSplatsChunkPage(A, I, g) { - const B = this.splatsChunkToPage.get(A); - if (!B) - throw new Error("impossible"); - const C = B[I]; - if (!C) - throw new Error( - `pageLru not found for splats: ${A}, chunk: ${I}, page: ${g}` - ); - for (this.pageLru.delete(C), B[I] = void 0; B.length > 0 && B[B.length - 1] === void 0; ) - B.pop(); - for (B.length === 0 && this.splatsChunkToPage.delete(A), this.pageToSplatsChunk[g] = void 0; this.pageToSplatsChunk.length > 0 && this.pageToSplatsChunk[this.pageToSplatsChunk.length - 1] === void 0; ) - this.pageToSplatsChunk.pop(); + fetchSplat({ + index: A, + viewOrigin: I + }) { + let g = IC(this.dyno, A); + if (this.hasRgbDir() && I) { + const B = fA(g).outputs.center, C = tg(CI(B, I)), { sh1Texture: E, sh2Texture: i, sh3TextureA: o, sh3TextureB: D } = this.ensureShTextures(); + let { rgb: s } = no({ + coord: $Q(A), + viewDir: C, + numSh: this.dynoNumSh, + sh1Texture: E, + sh2Texture: i, + sh3TextureA: o, + sh3TextureB: D + }); + s = lA(s, fA(g).outputs.rgb), g = QI({ gsplat: g, rgb: s }); + } + return g; } - uploadPage(A, I, g, B) { - const C = A * this.pageSplats; - this.packedTexture.value.image.data.subarray(C * 4, C * 4 + I.length).set(I), this.packedTexture.value.addLayerUpdate(A), this.packedTexture.value.needsUpdate = !0, B && (this.extTexture.value.image.data.subarray(C * 4, C * 4 + B.length).set(B), this.extTexture.value.addLayerUpdate(A), this.extTexture.value.needsUpdate = !0); - const D = this.extSplats ? g.sh3a && g.sh3b ? 3 : g.sh2 ? 2 : g.sh1 ? 1 : 0 : g.sh3 ? 3 : g.sh2 ? 2 : g.sh1 ? 1 : 0; - if (this.ensureShTextures(D), this.extSplats) { - if (this.sh1Texture.value !== l.emptyExtSh1Texture && g.sh1) { - const i = g.sh1; - this.sh1Texture.value.image.data.subarray(C * 4, C * 4 + i.length).set(i), this.sh1Texture.value.addLayerUpdate(A), this.sh1Texture.value.needsUpdate = !0; + ensureShTextures() { + if (!this.extra.sh1) + return {}; + let A = this.extra.sh1Texture; + if (!A) { + let C = this.extra.sh1; + const { width: E, height: i, depth: o, maxSplats: D } = EA( + C.length / 4 + ); + if (C.length < D * 4) { + const w = new Uint32Array(D * 4); + w.set(C), this.extra.sh1 = w, C = w; } - } else if (this.sh1Texture.value !== l.emptySh1Texture && g.sh1) { - const i = g.sh1; - this.sh1Texture.value.image.data.subarray(C * 2, C * 2 + i.length).set(i), this.sh1Texture.value.addLayerUpdate(A), this.sh1Texture.value.needsUpdate = !0; + const s = HI( + C, + E, + i, + o, + a.RGBAIntegerFormat, + a.UnsignedIntType, + "RGBA32UI" + ); + A = new OA({ + value: s, + key: "sh1" + }), this.extra.sh1Texture = A; } - if (this.sh2Texture.value !== l.emptySh2Texture && g.sh2) { - const i = g.sh2; - this.sh2Texture.value.image.data.subarray(C * 4, C * 4 + i.length).set(i), this.sh2Texture.value.addLayerUpdate(A), this.sh2Texture.value.needsUpdate = !0; + if (!this.extra.sh2) + return { sh1Texture: A }; + let I = this.extra.sh2Texture; + if (!I) { + let C = this.extra.sh2; + const { width: E, height: i, depth: o, maxSplats: D } = EA( + C.length / 4 + ); + if (C.length < D * 4) { + const w = new Uint32Array(D * 4); + w.set(C), this.extra.sh2 = w, C = w; + } + const s = HI( + C, + E, + i, + o, + a.RGBAIntegerFormat, + a.UnsignedIntType, + "RGBA32UI" + ); + I = new OA({ + value: s, + key: "sh2" + }), this.extra.sh2Texture = I; } - if (this.extSplats) { - if (this.sh3Texture.value !== l.emptyExtSh3Texture && g.sh3a) { - const i = g.sh3a; - this.sh3Texture.value.image.data.subarray(C * 4, C * 4 + i.length).set(i), this.sh3Texture.value.addLayerUpdate(A), this.sh3Texture.value.needsUpdate = !0; + if (!this.extra.sh3a || !this.extra.sh3b) + return { sh1Texture: A, sh2Texture: I }; + let g = this.extra.sh3TextureA; + if (!g) { + let C = this.extra.sh3a; + const { width: E, height: i, depth: o, maxSplats: D } = EA( + C.length / 4 + ); + if (C.length < D * 4) { + const w = new Uint32Array(D * 4); + w.set(C), this.extra.sh3a = w, C = w; } - if (this.sh3TextureB.value !== l.emptyExtSh3BTexture && g.sh3b) { - const i = g.sh3b; - this.sh3TextureB.value.image.data.subarray(C * 4, C * 4 + i.length).set(i), this.sh3TextureB.value.addLayerUpdate(A), this.sh3TextureB.value.needsUpdate = !0; + const s = HI( + C, + E, + i, + o, + a.RGBAIntegerFormat, + a.UnsignedIntType, + "RGBA32UI" + ); + g = new OA({ + value: s, + key: "sh3" + }), this.extra.sh3TextureA = g; + } + let B = this.extra.sh3TextureB; + if (!B) { + let C = this.extra.sh3b; + const { width: E, height: i, depth: o, maxSplats: D } = EA( + C.length / 4 + ); + if (C.length < D * 4) { + const w = new Uint32Array(D * 4); + w.set(C), this.extra.sh3b = w, C = w; } - } else if (this.sh3Texture.value !== l.emptySh3Texture && g.sh3) { - const i = g.sh3; - this.sh3Texture.value.image.data.subarray(C * 4, C * 4 + i.length).set(i), this.sh3Texture.value.addLayerUpdate(A), this.sh3Texture.value.needsUpdate = !0; + const s = HI( + C, + E, + i, + o, + a.RGBAIntegerFormat, + a.UnsignedIntType, + "RGBA32UI" + ); + B = new OA({ + value: s, + key: "sh3b" + }), this.extra.sh3TextureB = B; } + return { sh1Texture: A, sh2Texture: I, sh3TextureA: g, sh3TextureB: B }; } - getGlTexture(A) { - return pw(this.renderer, A); + // Ensures that this.extArrays can fit numSplats Gsplats. If it's too small, + // resize exponentially and copy over the original data. + // + // Typically you don't need to call this, because calling this.setSplat(index, ...) + // and this.pushSplat(...) will automatically call ensureSplats() so we have + // enough splats. + ensureSplats(A) { + const I = A <= this.maxSplats ? this.maxSplats : ( + // Grow exponentially to avoid frequent reallocations + Math.max(A, 2 * this.maxSplats) + ), g = this.extArrays[0] ? this.extArrays[0].length / 4 : 0; + if (!this.extArrays[0] || I > g) { + this.maxSplats = EA(I).maxSplats; + const B = new Uint32Array(this.maxSplats * 4), C = new Uint32Array(this.maxSplats * 4); + this.extArrays[0] && (B.set(this.extArrays[0]), C.set(this.extArrays[1])), this.extArrays[0] = B, this.extArrays[1] = C; + } + return this.extArrays; } - newUint32ArrayTexture(A, I, g, B, C, E, D) { - const i = new G.DataArrayTexture(A, I, g, B); - return i.format = C, i.type = E, i.internalFormat = D, i.needsUpdate = !0, this.renderer.initTexture(i), i; + // Unpack the 16-byte Gsplat data at index into the Three.js components + // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, + // opacity: number 0..1, color: THREE.Color 0..1. + getSplat(A) { + if (A >= this.numSplats) + throw new Error("Invalid index"); + return Zg(this.extArrays, A); } - driveFetchers() { - const A = [], I = []; - let g = 0; - for (const { splats: E, chunk: D } of this.fetchPriority) { - const i = this.getSplatsChunk(E, D); - if (i) { - g >= this.maxPages ? I.push(i) : A.push(i), g += 1; - continue; - } - if (this.fetched.some( - ({ splats: w, chunk: s }) => E === w && D === s - ) || this.fetchers.some( - ({ splats: w, chunk: s }) => E === w && D === s - )) { - g += 1; - continue; - } - if (g < this.maxPages && this.fetchers.length < this.numFetchers) { - g += 1; - const w = E.fetchDecodeChunk(D).then( - async (s) => { - this.fetched.push({ splats: E, chunk: D, data: s }), this.fetchPause > 0 && await new Promise( - (o) => setTimeout(o, this.fetchPause) - ); - }, - async (s) => { - console.warn(s); - const o = 250 + 500 * Math.random(); - await new Promise((y) => setTimeout(y, o)); - } - ).finally(() => { - this.fetchers = this.fetchers.filter( - ({ splats: s, chunk: o }) => E !== s || D !== o - ), this.processFetched(); - }); - this.fetchers.push({ splats: E, chunk: D, promise: w }), w.then((s) => { - this.autoDrive && this.driveFetchers(); - }); - } - } - const B = performance.now(); - for (const E of I.reverse()) - E.lru = B, this.pageLru.delete(E), this.pageLru.add(E); - const C = new Set(this.pageLru); - for (const E of A.reverse()) - C.delete(E), E.lru = B, this.pageLru.delete(E), this.pageLru.add(E); - this.freeablePages = Array.from(C).map(({ page: E }) => E); + // Set all ExtSplat components at index with the provided Gsplat attributes + // (can be the same objects returned by getSplat). Ensures there is capacity + // for at least index+1 Gsplats. + setSplat(A, I, g, B, C, E) { + const i = this.ensureSplats(A + 1); + dQ( + i, + A, + I.x, + I.y, + I.z, + g.x, + g.y, + g.z, + B.x, + B.y, + B.z, + B.w, + C, + E.r, + E.g, + E.b + ), this.numSplats = Math.max(this.numSplats, A + 1); } - allocateFreeable() { - const A = this.freeablePages.shift(); - if (A === void 0) - return; - const I = this.pageToSplatsChunk[A]; - if (!I) - throw new Error(`splatsChunk not found for page: ${A}`); - const { splats: g, chunk: B } = I; - return this.removeSplatsChunkPage(g, B, A), this.lodTreeUpdates.push({ - splats: g, - page: A, - chunk: B, - numSplats: this.pageSplats - }), A; + // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on + // construction where you just want to iterate and create a collection of Gsplats. + pushSplat(A, I, g, B, C) { + const E = this.ensureSplats(this.numSplats + 1); + dQ( + E, + this.numSplats, + A.x, + A.y, + A.z, + I.x, + I.y, + I.z, + g.x, + g.y, + g.z, + g.w, + B, + C.r, + C.g, + C.b + ), ++this.numSplats; } - processFetched() { - const A = performance.now(); - for (; ; ) { - const I = this.fetched.shift(); - if (!I) - break; - const { splats: g, chunk: B, data: C } = I; - let E = this.allocatePage(); - if (E === void 0 && (E = this.allocateFreeable(), E === void 0)) - return; - this.insertSplatsChunkPage(g, B, E, A); - const { numSplats: D, extra: i } = C; - if (this.lodTreeUpdates.push({ - splats: g, - page: E, - chunk: B, - numSplats: D, - lodTree: i.lodTree - }), this.extSplats) { - const w = C.extArrays, s = w[0], o = w[1]; - this.newUploads.push({ page: E, numSplats: D, packedArray: s, extArray: o, extra: i }); - } else { - const w = C.packedArray; - this.newUploads.push({ page: E, numSplats: D, packedArray: w, extra: i }); + // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat + // and invoke the callback function with the Gsplat attributes. + forEachSplat(A) { + if (this.numSplats) + for (let I = 0; I < this.numSplats; ++I) { + const g = Zg(this.extArrays, I); + A( + I, + g.center, + g.scales, + g.quaternion, + g.opacity, + g.color + ); } + } + // Check if source texture needs to be created/updated + updateTextures() { + if (this.textures[0] !== rA.emptyTexture) { + const { width: A, height: I, depth: g } = this.textures[0].image; + this.maxSplats !== A * I * g && (this.textures[0].dispose(), this.textures[0] = rA.emptyTexture, this.textures[1].dispose(), this.textures[1] = rA.emptyTexture); } + if (this.textures[0] === rA.emptyTexture) { + const { width: A, height: I, depth: g } = EA(this.maxSplats); + this.textures[0] = HI( + this.extArrays[0], + A, + I, + g, + a.RGBAIntegerFormat, + a.UnsignedIntType, + "RGBA32UI" + ), this.textures[1] = HI( + this.extArrays[1], + A, + I, + g, + a.RGBAIntegerFormat, + a.UnsignedIntType, + "RGBA32UI" + ); + } else this.extArrays[0].buffer !== this.textures[0].image.data.buffer && (this.textures[0].image.data = new Uint8Array(this.extArrays[0].buffer), this.textures[1].image.data = new Uint8Array(this.extArrays[1].buffer), this.textures[0].needsUpdate = !0, this.textures[1].needsUpdate = !0); } - processUploads() { - for (; ; ) { - const A = this.readyUploads.shift(); - if (!A) - break; - const { page: I, numSplats: g, packedArray: B, extArray: C, extra: E } = A; - this.uploadPage(I, B, E, C); + extractSplats(A, I) { + const g = EA(A.length).maxSplats, B = new rA({ maxSplats: g }); + for (let C = 0; C < A.length; C++) { + const E = this.getSplat(A[C]); + if (I) { + let i = (A[C] >>> 16) * 0.61803398875; + i = i - Math.floor(i); + const o = Math.max(0, Math.min(1, Math.abs(i * 6 - 3) - 1)), D = Math.max(0, Math.min(1, Math.abs(i * 6 + 1) - 1)), s = Math.max(0, Math.min(1, Math.abs(i * 6 - 1) - 1)); + E.color.r *= o, E.color.g *= D, E.color.b *= s; + } + B.pushSplat( + E.center, + E.scales, + E.quaternion, + E.opacity, + E.color + ); } + return B; + } + disposeLodSplats() { + this.lodSplats && (this.lodSplats.dispose(), this.lodSplats = void 0); } - consumeLodTreeUpdates() { - const A = this.lodTreeUpdates; - return this.lodTreeUpdates = [], this.readyUploads.push(...this.newUploads), this.newUploads = [], A; + async createLodSplats({ + rgbaArray: A, + quality: I + } = {}) { + const g = typeof this.lod == "number" ? Math.max(1.1, Math.min(2, this.lod)) : I ? 1.75 : 1.5, B = [this.extArrays[0].slice(), this.extArrays[1].slice()], C = A ? (await A.getArray()).slice() : void 0, E = { + sh1: this.extra.sh1 ? this.extra.sh1.slice() : void 0, + sh2: this.extra.sh2 ? this.extra.sh2.slice() : void 0, + sh3: this.extra.sh3 ? this.extra.sh3.slice() : void 0 + }, i = await iQ.withWorker(async (D) => await D.call( + I ? "qualityLodExtSplats" : "tinyLodExtSplats", + { + numSplats: this.numSplats, + extArrays: B, + extra: E, + lodBase: g, + rgba: C + } + )), o = new rA(i); + this.lodSplats && this.lodSplats.dispose(), this.lodSplats = o, this.nonLod = !0, this.lod = I ? "quality" : !0; } }; -l.emptyUint32x4 = (() => { - const { width: A, height: I, depth: g, maxSplats: B } = BA(1), C = new Uint32Array(B * 4), E = new G.DataArrayTexture( +rA.emptyArray = (() => { + const { width: A, height: I, depth: g, maxSplats: B } = EA(1), C = new Uint32Array(B * 4), E = new a.DataArrayTexture( C, A, I, g ); - return E.format = G.RGBAIntegerFormat, E.type = G.UnsignedIntType, E.internalFormat = "RGBA32UI", E.needsUpdate = !0, E; -})(), l.emptyUint32x2 = (() => { - const { width: A, height: I, depth: g, maxSplats: B } = BA(1), C = new Uint32Array(B * 2), E = new G.DataArrayTexture( + return E.format = a.RGBAIntegerFormat, E.type = a.UnsignedIntType, E.internalFormat = "RGBA32UI", E.needsUpdate = !0, E; +})(), rA.emptyTexture = HI( + null, + 1, + 1, + 1, + a.RGBAIntegerFormat, + a.UnsignedIntType, + "RGBA32UI" +), rA.emptyUint32x4 = (() => { + const { width: A, height: I, depth: g, maxSplats: B } = EA(1), C = new Uint32Array(B * 4), E = new a.DataArrayTexture( C, A, I, g ); - return E.format = G.RGIntegerFormat, E.type = G.UnsignedIntType, E.internalFormat = "RG32UI", E.needsUpdate = !0, E; -})(), l.emptyIndicesTexture = (() => { - const A = new Uint32Array(16384), I = new G.DataTexture(A, 4096, 1); - return I.format = G.RGBAIntegerFormat, I.type = G.UnsignedIntType, I.internalFormat = "RGBA32UI", I.needsUpdate = !0, I; -})(), l.emptyPackedTexture = l.emptyUint32x4, l.emptyExtTexture = l.emptyUint32x4, l.emptySh1Texture = l.emptyUint32x2, l.emptySh2Texture = l.emptyUint32x4, l.emptySh3Texture = l.emptyUint32x4, l.emptyExtSh1Texture = l.emptyUint32x4, l.emptyExtSh2Texture = l.emptyUint32x4, l.emptyExtSh3Texture = l.emptyUint32x4, l.emptyExtSh3BTexture = l.emptyUint32x4; -let tI = l; -function pw(Q, A) { - if (!Q.properties.has(A)) - throw new Error("texture not found"); - const g = Q.properties.get(A).__webglTexture; - if (!g) - throw new Error("texture not found"); - return g; -} -const mh = xw(); -async function JQ({ - url: Q, - requestHeader: A, - withCredentials: I, - offset: g, - bytes: B -}) { - const C = new Request(Q, { - headers: A ? new Headers(A) : void 0, - credentials: I ? "include" : "same-origin" - }); - g !== void 0 && B !== void 0 && C.headers.set("Range", `bytes=${g}-${g + B - 1}`); - const E = await fetch(C); - if (!E.ok || !E.body) - throw new Error( - `Failed to fetch "${Q}": ${E.status} ${E.statusText}` - ); - return new Uint8Array(await E.arrayBuffer()); -} -class Zh { - constructor() { - this.fetchDyno = new d({ - inTypes: {}, - outTypes: { gsplat: Z }, - globals: () => [HA], - statements: ({ outputs: A }) => z(` - ${A.gsplat}.flags = 0u; - return; - `) - }).outputs.gsplat; - } - prepareFetchSplat() { - } - dispose() { - } - getNumSplats() { - return 0; - } - hasRgbDir() { - return !1; - } - getNumSh() { - return 0; - } - setMaxSh(A) { - } - fetchSplat({ index: A }) { - return this.fetchDyno; - } - forEachSplat() { + return E.format = a.RGBAIntegerFormat, E.type = a.UnsignedIntType, E.internalFormat = "RGBA32UI", E.needsUpdate = !0, E; +})(); +let wI = rA; +class uh extends x { + constructor({ extSplats: A } = {}) { + super({ + key: "extSplats", + type: _Q, + globals: () => [AB], + value: { + textureArray1: wI.emptyTexture, + textureArray2: wI.emptyTexture, + numSplats: 0 + }, + update: (I) => { + var g, B, C; + return I.textureArray1 = ((g = this.extSplats) == null ? void 0 : g.textures[0]) ?? wI.emptyTexture, I.textureArray2 = ((B = this.extSplats) == null ? void 0 : B.textures[1]) ?? wI.emptyTexture, I.numSplats = ((C = this.extSplats) == null ? void 0 : C.numSplats) ?? 0, I; + } + }), this.extSplats = A; } } -const bA = class bA extends PI { - constructor(A = {}) { - if (super({ - update: (I) => this.update(I) - }), this.isInitialized = !1, this.recolor = new G.Color(1, 1, 1), this.opacity = 1, this.generatorDirty = !0, this.enableViewToObject = !1, this.enableViewToWorld = !1, this.enableWorldToView = !1, this.skinning = null, this.edits = null, this.rgbaDisplaceEdits = null, this.splatRgba = null, this.maxSh = 3, this.showLodPageDyno = new EI({ value: 0 }), A.splats) - this.splats = A.splats, this.numSplats = A.splats.getNumSplats(); - else if (A.paged) { - A.extSplats && console.warn( - "To set extSplats with the paged option, set SparkRenderer.pagedExtSplats" - ); - const I = A.url ?? ""; - if (A.paged === !0) - this.paged = new Pg({ rootUrl: I }); - else if (A.paged instanceof Pg) - this.paged = A.paged; - else if (A.paged instanceof tI) - this.paged = new Pg({ rootUrl: I, pager: A.paged }); - else - throw new Error("Invalid paged option"); - this.splats = this.paged; - } else A.extSplats ? (this.extSplats = A.extSplats instanceof GI ? A.extSplats : new GI(), A.extSplats = this.extSplats, this.numSplats = this.extSplats.numSplats, this.splats = this.extSplats) : A.packedSplats ? (this.packedSplats = A.packedSplats, this.packedSplats.splatEncoding = A.splatEncoding ?? { - ...cg - }, this.splats = this.packedSplats) : this.packedSplats = new $A(); - if (this.editable = A.editable ?? !0, this.raycastable = A.raycastable ?? !0, this.minRaycastOpacity = A.minRaycastOpacity ?? 0.2, this.onFrame = A.onFrame, this.context = { - transform: new XI(), - viewToWorld: new XI(), - worldToView: new XI(), - viewToObject: new XI(), - covTransform: new Kg(), - covViewToWorld: new Kg(), - covWorldToView: new Kg(), - covViewToObject: new Kg(), - recolor: new mI({ - value: new G.Vector4().setScalar(Number.NEGATIVE_INFINITY) - }), - time: new pI({ value: 0 }), - deltaTime: new pI({ value: 0 }), - numSplats: new EI({ value: 0 }), - splats: new Zh(), - enableLod: new bI({ value: !1 }), - lodIndices: new EQ({ - value: fB, - key: "lodIndices" - }) - }, this.covSplats = A.covSplats ?? !1, this.covSplats && !this.extSplats) - throw new Error("CovSplats requires ExtSplats"); - if (this.objectModifiers = A.objectModifier ? [A.objectModifier] : void 0, this.worldModifiers = A.worldModifier ? [A.worldModifier] : void 0, A.objectModifiers && (this.objectModifiers = A.objectModifiers), A.worldModifiers && (this.worldModifiers = A.worldModifiers), this.enableLod = A.enableLod, this.lodScale = A.lodScale ?? 1, this.behindFoveate = A.behindFoveate, this.coneFov0 = A.coneFov0, this.coneFov = A.coneFov, this.coneFoveate = A.coneFoveate, this.updateGenerator(), A.url || A.fileBytes || A.stream || A.constructSplats || A.packedSplats && !A.packedSplats.isInitialized || this.extSplats && !this.extSplats.isInitialized) - this.initialized = this.asyncInitialize(A).then(async () => { - if (this.updateGenerator(), this.isInitialized = !0, A.onLoad) { - const I = A.onLoad(this); - I instanceof Promise && await I; - } - return this; - }); - else if (this.isInitialized = !0, this.initialized = Promise.resolve(this), A.onLoad) { - const I = A.onLoad(this); - I instanceof Promise && (this.initialized = I.then(() => this)); - } - } - async asyncInitialize(A) { - const { - url: I, - fileBytes: g, - fileType: B, - fileName: C, - stream: E, - streamLength: D, - maxSplats: i, - constructSplats: w, - onProgress: s, - splatEncoding: o, - lod: y, - nonLod: h, - lodAbove: k - } = A; - if (this.packedSplats) { - if (I || g || E || w) { - const R = { - url: I, - fileBytes: g, - fileType: B, - fileName: C, - stream: E, - streamLength: D, - maxSplats: i, - construct: w, - onProgress: s, - splatEncoding: o, - lod: y, - nonLod: h, - lodAbove: k - }; - this.packedSplats.reinitialize(R); - } - await this.packedSplats.initialized, this.splats = this.packedSplats; - } else if (this.extSplats && (I || g || E || w)) { - const R = w; - this.extSplats.reinitialize({ - url: I, - fileBytes: g, - fileType: B, - fileName: C, - stream: E, - streamLength: D, - maxSplats: i, - construct: R, - onProgress: s, - lod: y, - nonLod: h, - lodAbove: k - }), await this.extSplats.initialized, this.splats = this.extSplats; - } - this.splats && (this.numSplats = this.splats.getNumSplats(), this.updateGenerator()); +const Ph = GA(` + vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) { + vec3 sh1_0 = decodeExtRgb(packedData.x); + vec3 sh1_1 = decodeExtRgb(packedData.y); + vec3 sh1_2 = decodeExtRgb(packedData.z); + + return sh1_0 * (-0.4886025 * viewDir.y) + + sh1_1 * (0.4886025 * viewDir.z) + + sh1_2 * (-0.4886025 * viewDir.x); } - static async staticInitialize() { - await xw(), bA.isStaticInitialized = !0; +`), bh = GA(` + vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) { + vec3 sh1_0 = decodeExtRgb(packed1.x); + vec3 sh1_1 = decodeExtRgb(packed1.y); + vec3 sh1_2 = decodeExtRgb(packed1.z); + + vec3 sh2_0 = decodeExtRgb(packed1.w); + vec3 sh2_1 = decodeExtRgb(packed2.x); + vec3 sh2_2 = decodeExtRgb(packed2.y); + vec3 sh2_3 = decodeExtRgb(packed2.z); + vec3 sh2_4 = decodeExtRgb(packed2.w); + + vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y) + + sh1_1 * (0.4886025 * viewDir.z) + + sh1_2 * (-0.4886025 * viewDir.x); + + vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y) + + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z) + + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y)) + + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z) + + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y)); + + return sh1Rgb + sh2Rgb; } - // Creates a new Gsplat with the provided parameters (all values in "float" space, - // i.e. 0-1 for opacity and color) and adds it to the end of the packedSplats, - // increasing numSplats by 1. If necessary, reallocates the buffer with an exponential - // doubling strategy to fit the new data, so it's fairly efficient to just - // pushSplat(...) each Gsplat you want to create in a loop. - pushSplat(A, I, g, B, C) { - this.packedSplats ? this.packedSplats.pushSplat(A, I, g, B, C) : this.extSplats && this.extSplats.pushSplat(A, I, g, B, C); +`), Th = GA(` + vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) { + vec3 sh3_0 = decodeExtRgb(packedA.x); + vec3 sh3_1 = decodeExtRgb(packedA.y); + vec3 sh3_2 = decodeExtRgb(packedA.z); + vec3 sh3_3 = decodeExtRgb(packedA.w); + vec3 sh3_4 = decodeExtRgb(packedB.x); + vec3 sh3_5 = decodeExtRgb(packedB.y); + vec3 sh3_6 = decodeExtRgb(packedB.z); + + float xx = viewDir.x * viewDir.x; + float yy = viewDir.y * viewDir.y; + float zz = viewDir.z * viewDir.z; + float xy = viewDir.x * viewDir.y; + float yz = viewDir.y * viewDir.z; + float zx = viewDir.z * viewDir.x; + + return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy)) + + sh3_1 * (2.8906114 * xy * viewDir.z) + + + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy)) + + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) + + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy)) + + sh3_5 * (1.4453057 * viewDir.z * (xx - yy)) + + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy)); } - // This method iterates over all Gsplats in this instance's packedSplats, - // invoking the provided callback with index: number in 0..=(this.numSplats-1) and - // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, - // opacity: number (0..1), and color: THREE.Color (rgb values in 0..1). - // Note that the objects passed in as center etc. are the same for every callback - // invocation: these objects are reused for efficiency. Changing these values has - // no effect as they are decoded/unpacked copies of the underlying data. To update - // the packedSplats, call .packedSplats.setSplat(index, center, scales, - // quaternion, opacity, color). - forEachSplat(A) { - var I; - (I = this.splats) == null || I.forEachSplat(A); +`); +function no({ + coord: Q, + viewDir: A, + numSh: I, + sh1Texture: g, + sh2Texture: B, + sh3TextureA: C, + sh3TextureB: E +}) { + return new q({ + inTypes: { + coord: "ivec3", + viewDir: "vec3", + numSh: "int", + sh1Texture: "usampler2DArray", + sh2Texture: "usampler2DArray", + sh3TextureA: "usampler2DArray", + sh3TextureB: "usampler2DArray" + }, + outTypes: { rgb: "vec3" }, + inputs: { + coord: Q, + viewDir: A, + numSh: I, + sh1Texture: g, + sh2Texture: B, + sh3TextureA: C, + sh3TextureB: E + }, + globals: () => [ + Ph, + bh, + Th + ], + statements: ({ inputs: i, outputs: o }) => { + const D = ["vec3 rgb = vec3(0.0);"]; + return i.sh1Texture && (i.sh2Texture ? (D.push( + ...z(` + if (${i.numSh} == 1) { + rgb = evaluateExtSH1(texelFetch(${i.sh1Texture}, ${i.coord}, 0), ${i.viewDir}); + } else if (${i.numSh} >= 2) { + rgb = evaluateExtSH12(texelFetch(${i.sh1Texture}, ${i.coord}, 0), texelFetch(${i.sh2Texture}, ${i.coord}, 0), ${i.viewDir}); + `) + ), i.sh3TextureA && i.sh3TextureB && D.push( + ...z(` + if (${i.numSh} >= 3) { + rgb += evaluateExtSH3(texelFetch(${i.sh3TextureA}, ${i.coord}, 0), texelFetch(${i.sh3TextureB}, ${i.coord}, 0), ${i.viewDir}); + } + `) + ), D.push("}")) : D.push( + ...z(` + if (${i.numSh} >= 1) { + rgb = evaluateExtSH1(texelFetch(${i.sh1Texture}, ${i.coord}, 0), ${i.viewDir}); + } + `) + )), D.push(`${o.rgb} = rgb;`), D; + } + }).outputs; +} +function HI(Q, A, I, g, B, C, E) { + const i = new a.DataArrayTexture( + Q, + A, + I, + g + ); + return i.format = B, i.type = C, i.internalFormat = E, i.needsUpdate = !0, i; +} +const KA = class KA { + constructor(A = {}) { + if (this.capacity = 0, this.count = 0, this.array = null, this.readback = null, this.source = null, this.needsUpdate = !0, this.dyno = new x({ + key: "rgbaArray", + type: cB, + globals: () => [Yo], + value: { + texture: KA.getEmpty(), + count: 0 + }, + update: (I) => (I.texture = this.getTexture(), I.count = this.count, I) + }), A.array) { + this.array = A.array; + const I = Math.floor(this.array.length / 4); + this.capacity = Math.ceil(I / P) * P, this.capacity > I && (this.array = new Uint8Array(this.capacity * 4), this.array.set(A.array)), this.count = Math.min( + I, + A.count ?? Number.POSITIVE_INFINITY + ); + } else + this.capacity = A.capacity ?? 0, this.count = 0; } - // Call this when you are finished with the SplatMesh and want to free - // any buffers it holds (via packedSplats). + // Free up resources dispose() { - this.splats && this.splats !== this.packedSplats && this.splats !== this.extSplats && (this.splats.dispose(), this.splats = void 0), this.packedSplats && (this.packedSplats.dispose(), this.packedSplats = void 0), this.extSplats && (this.extSplats.dispose(), this.extSplats = void 0); + this.readback && (this.readback.dispose(), this.readback = null), this.source && (this.source.dispose(), this.source = null); } - // Returns axis-aligned bounding box of the SplatMesh. If centers_only is true, - // only the centers of the splats are used to compute the bounding box. - // IMPORTANT: This should only be called after the SplatMesh is initialized. - getBoundingBox(A = !0) { - var i; - if (!this.initialized) - throw new Error( - "Cannot get bounding box before SplatMesh is initialized" - ); - const I = new G.Vector3( - Number.POSITIVE_INFINITY, - Number.POSITIVE_INFINITY, - Number.POSITIVE_INFINITY - ), g = new G.Vector3( - Number.NEGATIVE_INFINITY, - Number.NEGATIVE_INFINITY, - Number.NEGATIVE_INFINITY - ), B = new G.Vector3(), C = [-1, 1]; - function E(w, s, o, y, h, k) { - if (A) - I.min(s), g.max(s); - else - for (const R of C) - for (const F of C) - for (const a of C) - B.set(R * o.x, F * o.y, a * o.z), B.applyQuaternion(y), B.add(s), I.min(B), g.max(B); + // Ensure that our array is large enough to hold capacity RGBA8 values. + ensureCapacity(A) { + var I; + if (!this.array || A > (((I = this.array) == null ? void 0 : I.length) ?? 0) / 4) { + this.capacity = EA(A).maxSplats; + const g = new Uint8Array(this.capacity * 4); + this.array && g.set(this.array), this.array = g; } - return (i = this.splats) == null || i.forEachSplat(E), new G.Box3(I, g); - } - set objectModifier(A) { - A ? this.objectModifiers = [A] : this.objectModifiers = void 0; + return this.array; } - set worldModifier(A) { - A ? this.worldModifiers = [A] : this.worldModifiers = void 0; + // Get the THREE.DataArrayTexture from either the readback or the source. + getTexture() { + var I; + let A = (I = this.readback) == null ? void 0 : I.getTexture(); + return (this.source || this.array) && (A = this.maybeUpdateSource()), A ?? KA.getEmpty(); } - constructGenerator(A) { - if (this.covSplats) - return this.constructCovGenerator(A); - const { transform: I, viewToObject: g, recolor: B } = A, C = cA( - { index: "int" }, - { gsplat: Z }, - ({ index: E }) => { - if (!E) - throw new Error("index is undefined"); - E = lB( - A.lodIndices, - E, - A.numSplats, - A.enableLod, - this.showLodPageDyno - ), A.splats.setMaxSh(this.maxSh), A.splats.prepareFetchSplat(); - let D = A.splats.fetchSplat({ - index: E, - viewOrigin: g.translate - }); - if (this.splatRgba && (D = pB( - D, - this.splatRgba.dyno, - E, - A.enableLod - )), this.skinning && (D = this.skinning.modify(D)), this.objectModifiers) - for (const w of this.objectModifiers) - D = w.apply({ gsplat: D }).gsplat; - D = I.applyGsplat(D); - const i = kA(B, uA(D).outputs.rgba); - if (D = CI({ gsplat: D, rgba: i }), this.rgbaDisplaceEdits && (D = this.rgbaDisplaceEdits.modify(D)), this.worldModifiers) - for (const w of this.worldModifiers) - D = w.apply({ gsplat: D }).gsplat; - return { gsplat: D }; + // Create or get a THREE.DataArrayTexture from the data array. + maybeUpdateSource() { + if (!this.array) + throw new Error("No array"); + if (this.needsUpdate || !this.source) { + if (this.needsUpdate = !1, this.source) { + const { width: A, height: I, depth: g } = this.source.image; + this.capacity !== A * I * g && (this.source.dispose(), this.source = null); } - ); - this.generator = C, this.covGenerator = void 0; - } - constructCovGenerator(A) { - const { covTransform: I, covViewToObject: g, recolor: B } = A, C = cA( - { index: "int" }, - { covsplat: eA }, - ({ index: E }) => { - if (!E) - throw new Error("index is undefined"); - E = lB( - A.lodIndices, - E, - A.numSplats, - A.enableLod, - this.showLodPageDyno - ), A.splats.prepareFetchSplat(); - let D = A.splats.fetchSplat({ - index: E, - viewOrigin: g.offset - }); - if (this.splatRgba && (D = pB( - D, - this.splatRgba.dyno, - E, - A.enableLod - )), this.objectModifiers) - for (const s of this.objectModifiers) - D = s.apply({ gsplat: D }).gsplat; - let i = Xg(D); - if (this.skinning && (i = this.skinning.modifyCov(i)), this.covObjectModifiers) - for (const s of this.covObjectModifiers) - i = s.apply({ covsplat: i }).covsplat; - i = I.applyCovSplat(i); - const w = kA(B, Wg(i).outputs.rgba); - if (i = iB({ covsplat: i, rgba: w }), this.rgbaDisplaceEdits && (i = this.rgbaDisplaceEdits.modifyCov(i)), this.covWorldModifiers) - for (const s of this.covWorldModifiers) - i = s.apply({ covsplat: i }).covsplat; - return { covsplat: i }; + if (this.source) + this.array.buffer !== this.source.image.data.buffer && (this.source.image.data = new Uint8Array(this.array.buffer)); + else { + const { width: A, height: I, depth: g } = EA(this.capacity); + this.source = new a.DataArrayTexture( + this.array, + A, + I, + g + ), this.source.format = a.RGBAFormat, this.source.type = a.UnsignedByteType, this.source.internalFormat = "RGBA8", this.source.needsUpdate = !0; } - ); - this.generator = void 0, this.covGenerator = C; + this.source.needsUpdate = !0; + } + return this.source; } - // Call this whenever something changes in the Gsplat processing pipeline, - // for example changing maxSh or updating objectModifier or worldModifier. - // Compiled generators are cached for efficiency and re-use when the same - // pipeline structure emerges after successive changes. - updateGenerator() { - this.generatorDirty = !0; + // Generate the RGBA8 values from a Rgba8Readback dyno program. + render({ + reader: A, + count: I, + renderer: g + }) { + this.readback || (this.readback = new cg({ renderer: g })), this.readback.render({ reader: A, count: I, renderer: g }), this.capacity = this.readback.capacity, this.count = this.readback.count; } - // This is called automatically by SparkRenderer and you should not have to - // call it. It updates parameters for the generated pipeline and calls - // updateGenerator() if the pipeline needs to change. - update({ - renderer: A, - time: I, - deltaTime: g, - viewToWorld: B, - camera: C, - renderSize: E, - globalEdits: D, - lodIndices: i + // Extract the RGBA8 values from a PackedSplats collection. + fromPackedSplats({ + packedSplats: A, + base: I, + count: g, + renderer: B }) { - var R, F, a; - this.context.time.value = I, this.context.deltaTime.value = g, bA.dynoTime.value = I, this.showLodPageDyno.value = this.showLodPage ?? -1; - const w = this.splats ?? this.packedSplats ?? this.extSplats; - w && (this.context.splats = w), this.numSplats = this.context.splats.getNumSplats(); - let s = !1; - const o = ((R = this.packedSplats) == null ? void 0 : R.lodSplats) ?? ((F = this.extSplats) == null ? void 0 : F.lodSplats); - if (this.context.enableLod.value = o != null && i != null, this.enableLod === !1 && (this.context.enableLod.value = !1), this.context.lodIndices.value = (i == null ? void 0 : i.texture) ?? fB, this.context.enableLod.value && o && (this.context.splats = o, this.numSplats = (i == null ? void 0 : i.numSplats) ?? 0), this.context.numSplats.value = this.numSplats, this.context.splats !== this.lastSplats && (this.lastSplats = this.context.splats, this.generatorDirty = !0), this.covSplats) { - this.context.covTransform.update(this) && (s = !0), this.context.covViewToWorld.updateFromMatrix(B) && this.enableViewToWorld && (s = !0); - const S = B.clone().invert(); - this.context.covWorldToView.updateFromMatrix(S) && this.enableWorldToView && (s = !0); - const c = this.matrixWorld.clone().invert().multiply(B); - this.context.covViewToObject.updateFromMatrix(c) && (this.enableViewToObject || this.context.splats.hasRgbDir()) && (s = !0); - } else { - this.context.transform.update(this) && (s = !0), this.context.viewToWorld.updateFromMatrix(B) && this.enableViewToWorld && (s = !0); - const S = B.clone().invert(); - this.context.worldToView.updateFromMatrix(S) && this.enableWorldToView && (s = !0); - const N = new G.Matrix4().compose( - this.context.transform.translate.value, - this.context.transform.rotate.value, - new G.Vector3().setScalar(this.context.transform.scale.value) - ).invert().multiply(B); - this.context.viewToObject.updateFromMatrix(N) && (this.enableViewToObject || this.context.splats.hasRgbDir()) && (s = !0); - } - const y = new G.Vector4( - this.recolor.r, - this.recolor.g, - this.recolor.b, - this.opacity - ); - y.equals(this.context.recolor.value) || (this.context.recolor.value.copy(y), s = !0); - const h = this.editable ? (this.edits ?? []).concat(D) : []; - this.editable && !this.edits && this.traverseVisible((S) => { - S instanceof Sg && h.push(S); - }), h.sort((S, M) => S.ordering - M.ordering); - const k = h.map((S) => { - if (S.sdfs != null) - return { edit: S, sdfs: S.sdfs }; - const M = []; - return S.traverseVisible((c) => { - c instanceof lh && M.push(c); - }), { edit: S, sdfs: M }; - }); - if (k.length > 0 && !this.rgbaDisplaceEdits) { - const S = k.length, M = k.reduce( - (c, N) => c + N.sdfs.length, - 0 - ); - this.rgbaDisplaceEdits = new ph({ - maxEdits: S, - maxSdfs: M - }), this.generatorDirty = !0; - } - if (this.rgbaDisplaceEdits) { - const S = this.rgbaDisplaceEdits.update(k); - s || (s = S.updated), S.dynoUpdated && (this.generatorDirty = !0); - } - this.generatorDirty && (this.constructGenerator(this.context), this.generatorDirty = !1, s = !0), s && this.updateVersion(), (a = this.onFrame) == null || a.call(this, { mesh: this, time: I, deltaTime: g }); + const { dynoSplats: C, dynoBase: E, dynoCount: i, reader: o } = KA.makeDynos(); + return C.packedSplats = A, E.value = I, i.value = g, this.render({ reader: o, count: g, renderer: B }), this; } - // This method conforms to the standard THREE.Raycaster API, performing object-ray - // intersections using this method to populate the provided intersects[] array - // with each intersection point. - raycast(A, I) { - var a, S, M, c, N, U, J, t, H, K, Y, L, q, n, r, p, m, IA, X, EA, j, gA, W; - if (!bA.isStaticInitialized || !this.raycastable || !this.packedSplats && !this.extSplats && !this.paged) - return; - const g = this.paged != null, B = g ? ((S = (a = this.paged) == null ? void 0 : a.pager) == null ? void 0 : S.extSplats) ?? !1 : this.extSplats != null, { near: C, far: E, ray: D } = A, i = this.matrixWorld.clone().invert(), w = new G.Matrix3().setFromMatrix4(i), s = D.origin.clone().applyMatrix4(i), o = D.direction.clone().applyMatrix3(w), y = ih(), h = y.length / 4; - let k = 0; - const R = ((M = this.raycastIndices) == null ? void 0 : M.numSplats) ?? (g ? (c = this.paged) == null ? void 0 : c.numSplats : this.context.numSplats.value) ?? 0, F = ((N = this.raycastIndices) == null ? void 0 : N.indices) ?? (g ? (U = this.paged) == null ? void 0 : U.dynoIndices.value.image.data : this.context.enableLod.value ? this.context.lodIndices.value.image.data : null) ?? null; - if (B) { - const u = wh(), b = g ? (r = (n = this.paged) == null ? void 0 : n.pager) == null ? void 0 : r.packedTexture.value.image.data : F ? (m = (p = this.extSplats) == null ? void 0 : p.lodSplats) == null ? void 0 : m.extArrays[0] : (IA = this.extSplats) == null ? void 0 : IA.extArrays[0], T = g ? (EA = (X = this.paged) == null ? void 0 : X.pager) == null ? void 0 : EA.extTexture.value.image.data : F ? (gA = (j = this.extSplats) == null ? void 0 : j.lodSplats) == null ? void 0 : gA.extArrays[1] : (W = this.extSplats) == null ? void 0 : W.extArrays[1]; - if (!b || !T) - return; - for (let f = 0; f < R; f += h) { - const FA = Math.min(h, R - f); - if (!F) - y.set(b.subarray(f * 4, (f + FA) * 4)), u.set(T.subarray(f * 4, (f + FA) * 4)); - else - for (let aA = 0; aA < FA; ++aA) { - const SA = F[f + aA], wA = aA * 4, GA = SA * 4; - y[wA] = b[GA], y[wA + 1] = b[GA + 1], y[wA + 2] = b[GA + 2], y[wA + 3] = b[GA + 3], u[wA] = T[GA], u[wA + 1] = T[GA + 1], u[wA + 2] = T[GA + 2], u[wA + 3] = T[GA + 3]; - } - const sA = oh( - s.x, - s.y, - s.z, - o.x, - o.y, - o.z, - this.minRaycastOpacity, - C, - E, - FA - ); - k = this.appendRaycastBuffer( - k, - sA - ); - } - } else { - const u = g ? (t = (J = this.paged) == null ? void 0 : J.pager) == null ? void 0 : t.packedTexture.value.image.data : F ? (K = (H = this.packedSplats) == null ? void 0 : H.lodSplats) == null ? void 0 : K.packedArray : (Y = this.packedSplats) == null ? void 0 : Y.packedArray; - if (!u) - return; - const b = g ? (L = this.paged) == null ? void 0 : L.splatEncoding : (q = this.packedSplats) == null ? void 0 : q.splatEncoding; - for (let T = 0; T < R; T += h) { - const f = Math.min(h, R - T); - if (!F) - y.set(u.subarray(T * 4, (T + f) * 4)); - else - for (let sA = 0; sA < f; ++sA) { - const aA = F[T + sA], SA = sA * 4, wA = aA * 4; - y[SA] = u[wA], y[SA + 1] = u[wA + 1], y[SA + 2] = u[wA + 2], y[SA + 3] = u[wA + 3]; - } - const FA = sh( - s.x, - s.y, - s.z, - o.x, - o.y, - o.z, - this.minRaycastOpacity, - C, - E, - f, - (b == null ? void 0 : b.lnScaleMin) ?? pA, - (b == null ? void 0 : b.lnScaleMax) ?? fA, - (b == null ? void 0 : b.lodOpacity) ?? !1 - ); - k = this.appendRaycastBuffer( - k, - FA - ); - } - } - for (const u of bA.raycastBuffer.subarray(0, k)) { - const b = D.direction.clone().multiplyScalar(u).add(D.origin); - I.push({ - distance: u, - point: b, - object: this - }); + // Read back the RGBA8 values from the readback buffer. + async read() { + if (!this.readback) + throw new Error("No readback"); + return (!this.array || this.array.length < this.count * 4) && (this.array = new Uint8Array(this.capacity * 4)), (await this.readback.readback({ readback: this.array })).subarray(0, this.count * 4); + } + async getArray() { + if (this.readback) + return await this.read(); + if (this.array) + return this.array; + throw new Error("No array"); + } + // Can be used where you need an uninitialized THREE.DataArrayTexture like + // a uniform you will update with the result of this.getTexture() later. + static getEmpty() { + if (!KA.emptySource) { + const A = new Uint8Array(4); + KA.emptySource = new a.DataArrayTexture(A, 1, 1, 1), KA.emptySource.format = a.RGBAFormat, KA.emptySource.type = a.UnsignedByteType, KA.emptySource.internalFormat = "RGBA8", KA.emptySource.needsUpdate = !0; } + return KA.emptySource; } - appendRaycastBuffer(A, I) { - const g = A + I.length; - let B = bA.raycastBuffer.length; - if (g > B) { - for (; B < g; ) - B *= 2; - const C = new Float32Array(B); - C.set(bA.raycastBuffer.subarray(0, A)), bA.raycastBuffer = C; + // Create a dyno program that can extract RGBA8 values from a PackedSplats + static makeDynos() { + if (!KA.dynos) { + const A = new Mo(), I = new BI({ value: 0 }), g = new BI({ value: 0 }), B = LA( + { index: "int" }, + { rgba8: "vec4" }, + ({ index: C }) => { + if (!C) + throw new Error("index is undefined"); + C = lA(C, I); + const E = AC( + A, + C, + I, + g + ); + return { rgba8: fA(E).outputs.rgba }; + } + ); + KA.dynos = { dynoSplats: A, dynoBase: I, dynoCount: g, reader: B }; } - return bA.raycastBuffer.set(I, A), A + I.length; - } - async createLodSplats({ - rgbaArray: A, - quality: I - } = {}) { - this.packedSplats ? await this.packedSplats.createLodSplats({ quality: I, rgbaArray: A }) : this.extSplats && await this.extSplats.createLodSplats({ quality: I, rgbaArray: A }); + return KA.dynos; } }; -bA.staticInitialized = bA.staticInitialize(), bA.isStaticInitialized = !1, bA.dynoTime = new pI({ value: 0 }), bA.raycastBuffer = new Float32Array(1024); -let vA = bA; -function lB(Q, A, I, g, B) { - return gQ({ - inTypes: { - lodIndices: "usampler2D", - index: "int", - numSplats: "int", - enableLod: "bool", - showLodPage: "int" - }, - outTypes: { - index: "int" - }, - inputs: { - lodIndices: Q, - index: A, - numSplats: I, - enableLod: g, - showLodPage: B - }, - statements: ({ inputs: C, outputs: E }) => z(` - int index = ${C.index}; - if (${C.showLodPage} < 0) { - if (index >= ${C.numSplats}) { - return; - } - if (${C.enableLod}) { - ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14); - uint splatIndex = texelFetch(${C.lodIndices}, lodIndexCoord, 0)[index & 3]; - ${E.index} = int(splatIndex); - } else { - ${E.index} = index; - } +KA.emptySource = null, KA.dynos = null; +let rB = KA; +const cB = { type: "RgbaArray" }, Yo = GA(` + struct RgbaArray { + sampler2DArray texture; + int count; + }; +`); +function ny(Q, A) { + return new q({ + inTypes: { rgba: cB, index: "int" }, + outTypes: { rgba: "vec4" }, + inputs: { rgba: Q, index: A }, + globals: () => [Yo], + statements: ({ inputs: g, outputs: B }) => z(` + if ((${g.index} >= 0) && (${g.index} < ${g.rgba}.count)) { + ${B.rgba} = texelFetch(${g.rgba}.texture, splatTexCoord(${g.index}), 0); } else { - int start = ${C.showLodPage} << 16; - if (index >= 65536) { - return; - } - ${E.index} = start + index; - } - `) - }).outputs.index; -} -function pB(Q, A, I, g) { - return gQ({ - inTypes: { - gsplat: Z, - rgba: RB, - index: "int", - enableLod: "bool" - }, - outTypes: { gsplat: Z }, - inputs: { gsplat: Q, rgba: A, index: I, enableLod: g }, - statements: ({ inputs: B, outputs: C }) => z(` - ${C.gsplat} = ${B.gsplat}; - if (!${B.enableLod} && (${B.index} >= 0) && (${B.index} < ${B.rgba}.count)) { - ${C.gsplat}.rgba = texelFetch(${B.rgba}.texture, splatTexCoord(${B.index}), 0); + ${B.rgba} = vec4(0.0, 0.0, 0.0, 0.0); } `) - }).outputs.gsplat; + }).outputs.rgba; } -const fB = (() => { - const Q = new G.DataTexture( - new Uint32Array(16384), - 4096, - 1, - G.RGBAIntegerFormat, - G.UnsignedIntType - ); - return Q.internalFormat = "RGBA32UI", Q.needsUpdate = !0, Q; -})(); -new G.BufferGeometry(); -new G.ShaderMaterial(); -const bB = [ - "char", - "uchar", - "short", - "ushort", - "int", - "uint", - "float", - "double" -], jI = class jI { - // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet - constructor({ fileBytes: A }) { - this.header = "", this.littleEndian = !0, this.elements = {}, this.comments = [], this.data = null, this.numSplats = 0, this.fileBytes = A instanceof ArrayBuffer ? new Uint8Array(A) : A; +const PQ = 256, bQ = 256, Ig = PQ * bQ; +class ag { + constructor(A) { + var I; + if (this.pager = A.pager, this.rootUrl = A.rootUrl ?? "", this.requestHeader = A.requestHeader, this.withCredentials = A.withCredentials, this.numSh = 0, this.maxSh = ((I = A.pager) == null ? void 0 : I.maxSh) ?? 3, this.numSplats = 0, this.dynoNumSplats = new BI({ value: 0 }), this.dynoIndices = new QQ({ + value: eI.emptyIndicesTexture + }), this.rgbMinMaxLnScaleMinMax = new zI({ + value: new a.Vector4(0, 1, pA, uA) + }), this.lodOpacity = new eg({ + value: !1 + }), this.dynoNumSh = new BI({ value: 0 }), this.shMax = new UI({ value: new a.Vector3() }), this.fileBytes = A.fileBytes, this.fileType = A.fileType, !this.fileType && this.fileBytes && (this.fileType = Uo(this.fileBytes)), !this.fileType && this.rootUrl && (this.fileType = Lo(this.rootUrl)), !this.fileType) + throw new Error("Unable to determine file type"); + this.fileType === UA.RAD && (this.radMetaPromise = this.getRadMeta()); } - // Identify and parse the PLY text header (assumed to be <64KB in size). - // this.elements will contain all the elements in the file, typically - // "vertex" contains the Gsplat data. - async parseHeader() { - const I = new ReadableStream({ - start: (E) => { - E.enqueue(this.fileBytes.slice(0, 65536)), E.close(); - } - }).pipeThrough(new TextDecoderStream()).getReader(); - this.header = ""; - const g = `end_header -`; - for (; ; ) { - const { value: E, done: D } = await I.read(); - if (D) - throw new Error("Failed to read header"); - this.header += E; - const i = this.header.indexOf(g); - if (i >= 0) { - this.header = this.header.slice(0, i + g.length); - break; - } - } - const B = new TextEncoder().encode(this.header).length; - this.data = new DataView(this.fileBytes.buffer, B), this.elements = {}; - let C = null; - this.comments = [], this.header.trim().split(` -`).forEach((E, D) => { - const i = E.trim(); - if (D === 0) { - if (i !== "ply") - throw new Error("Invalid PLY header"); - return; + dispose() { + this.dynoIndices.value !== eI.emptyIndicesTexture && (this.dynoIndices.value.dispose(), this.dynoIndices.value = eI.emptyIndicesTexture); + } + setMaxSh(A) { + this.maxSh = A; + } + getRadMeta() { + return this.radMetaPromise ? this.radMetaPromise : (this.radMetaPromise = (async () => { + if (await nh, this.fileBytes) { + const A = JB(this.fileBytes.slice(0, 1048576)); + if (A) + return A; + throw new Error("Failed to decode RAD header"); } - if (i.length === 0) - return; - const w = i.split(" "); - switch (w[0]) { - case "format": - if (w[1] === "binary_little_endian") - this.littleEndian = !0; - else if (w[1] === "binary_big_endian") - this.littleEndian = !1; - else - throw new Error(`Unsupported PLY format: ${w[1]}`); - if (w[2] !== "1.0") - throw new Error(`Unsupported PLY version: ${w[2]}`); - break; - case "end_header": - break; - case "comment": - this.comments.push(i.slice(8)); - break; - case "element": { - const s = w[1]; - C = { - name: s, - count: Number.parseInt(w[2]), - properties: {} - }, this.elements[s] = C; - break; - } - case "property": - if (C == null) - throw new Error("Property must be inside an element"); - w[1] === "list" ? C.properties[w[4]] = { - isList: !0, - type: w[3], - countType: w[2] - } : C.properties[w[2]] = { - isList: !1, - type: w[1] - }; - break; + if (!this.rootUrl) + throw new Error("No url or fileBytes provided"); + for (const A of [65536, 256 * 1024, 1024 * 1024]) { + const I = await JQ({ + url: this.rootUrl, + requestHeader: this.requestHeader, + withCredentials: this.withCredentials, + offset: 0, + bytes: A + }), g = JB(I); + if (g) + return g; } - }), this.elements.vertex && (this.numSplats = this.elements.vertex.count); + throw new Error("Failed to decode RAD header"); + })().then((A) => A), this.radMetaPromise.catch((A) => { + console.error(A); + }), this.radMetaPromise); } - parseData(A) { - let I = 0; - const g = this.data; - if (g == null) - throw new Error("No data to parse"); - for (const B in this.elements) { - const C = this.elements[B], { count: E, properties: D } = C, i = Wh(D), w = jh(D, this.littleEndian), s = A(C) ?? (() => { - }); - for (let o = 0; o < E; o++) - I = w(g, I, i), s(o, i); - } + chunkUrl(A) { + return this.rootUrl.replace(/-lod-0\./, `-lod-${A}.`); } - // Parse all the Gsplat data in the PLY file in go, invoking the given - // callbacks for each Gsplat. - parseSplats(A, I) { - if (this.elements.vertex == null) - throw new Error("No vertex element found"); - let g = !1; - const B = []; - let C = 0, E = [], D = [], i = [], w, s, o; - function y() { - const a = Xh[C]; - E = new Array(3).fill(null).flatMap((S, M) => [0, 1, 2].map((c, N) => M + N * a / 3)), D = new Array(5).fill(null).flatMap( - (S, M) => [0, 1, 2].map((c, N) => 3 + M + N * a / 3) - ), i = new Array(7).fill(null).flatMap( - (S, M) => [0, 1, 2].map((c, N) => 8 + M + N * a / 3) - ), w = C >= 1 ? new Float32Array(3 * 3) : void 0, s = C >= 2 ? new Float32Array(5 * 3) : void 0, o = C >= 3 ? new Float32Array(7 * 3) : void 0; - } - function h(a, S) { - if (!w) - throw new Error("Missing sh1"); - const M = S.f_rest; - for (let c = 0; c < E.length; c++) - w[c] = M[E[c]] * 8 / 255 - 4; - if (s) - for (let c = 0; c < D.length; c++) - s[c] = M[D[c]] * 8 / 255 - 4; - if (o) - for (let c = 0; c < i.length; c++) - o[c] = M[i[c]] * 8 / 255 - 4; - I == null || I(a, w, s, o); - } - function k(a) { - const { - min_x: S, - min_y: M, - min_z: c, - max_x: N, - max_y: U, - max_z: J, - min_scale_x: t, - min_scale_y: H, - min_scale_z: K, - max_scale_x: Y, - max_scale_y: L, - max_scale_z: q - } = a.properties; - if (!S || !M || !c || !N || !U || !J || !t || !H || !K || !Y || !L || !q) - throw new Error("Missing PLY chunk properties"); - return g = !0, (n, r) => { - const { - min_x: p, - min_y: m, - min_z: IA, - max_x: X, - max_y: EA, - max_z: j, - min_scale_x: gA, - min_scale_y: W, - min_scale_z: u, - max_scale_x: b, - max_scale_y: T, - max_scale_z: f, - min_r: FA, - min_g: sA, - min_b: aA, - max_r: SA, - max_g: wA, - max_b: GA - } = r; - B.push({ - min_x: p, - min_y: m, - min_z: IA, - max_x: X, - max_y: EA, - max_z: j, - min_scale_x: gA, - min_scale_y: W, - min_scale_z: u, - max_scale_x: b, - max_scale_y: T, - max_scale_z: f, - min_r: FA, - min_g: sA, - min_b: aA, - max_r: SA, - max_g: wA, - max_b: GA - }); - }; - } - function R(a) { - if (I && a.name === "sh") - return C = OQ(a.properties), y(), h; - if (a.name !== "vertex") - return null; - const { packed_position: S, packed_rotation: M, packed_scale: c, packed_color: N } = a.properties; - if (!S || !M || !c || !N) + async fetchDecodeChunk(A) { + let I; + if (this.fileType === UA.RAD) { + const { meta: g, chunksStart: B } = await this.getRadMeta(); + if (A < 0 || A >= g.chunks.length) throw new Error( - "Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color" + `Chunk index out of range: ${A} (max: ${g.chunks.length - 1})` ); - const U = Math.sqrt(2); - return (J, t) => { - const H = B[J >>> 8]; - if (H == null) - throw new Error("Missing PLY chunk"); - const { - min_x: K, - min_y: Y, - min_z: L, - max_x: q, - max_y: n, - max_z: r, - min_scale_x: p, - min_scale_y: m, - min_scale_z: IA, - max_scale_x: X, - max_scale_y: EA, - max_scale_z: j, - min_r: gA, - min_g: W, - min_b: u, - max_r: b, - max_g: T, - max_b: f - } = H, { packed_position: FA, packed_rotation: sA, packed_scale: aA, packed_color: SA } = t, wA = (FA >>> 21 & 2047) / 2047 * (q - K) + K, GA = (FA >>> 11 & 1023) / 1023 * (n - Y) + Y, AI = (FA & 2047) / 2047 * (r - L) + L, TA = ((sA >>> 20 & 1023) / 1023 - 0.5) * U, FI = ((sA >>> 10 & 1023) / 1023 - 0.5) * U, aI = ((sA & 1023) / 1023 - 0.5) * U, _ = Math.sqrt(Math.max(0, 1 - TA * TA - FI * FI - aI * aI)), OA = sA >>> 30, LA = OA === 0 ? TA : OA === 1 ? _ : FI, Cg = OA <= 1 ? FI : OA === 2 ? _ : aI, Hg = OA <= 2 ? aI : _, mA = OA === 0 ? _ : TA, $ = Math.exp( - (aA >>> 21 & 2047) / 2047 * (X - p) + p - ), RI = Math.exp( - (aA >>> 11 & 1023) / 1023 * (EA - m) + m - ), sQ = Math.exp( - (aA & 2047) / 2047 * (j - IA) + IA - ), GQ = (SA >>> 24 & 255) / 255 * ((b ?? 1) - (gA ?? 0)) + (gA ?? 0), yQ = (SA >>> 16 & 255) / 255 * ((T ?? 1) - (W ?? 0)) + (W ?? 0), hQ = (SA >>> 8 & 255) / 255 * ((f ?? 1) - (u ?? 0)) + (u ?? 0), RQ = (SA & 255) / 255; - A( - J, - wA, - GA, - AI, - $, - RI, - sQ, - LA, - Cg, - Hg, - mA, - RQ, - GQ, - yQ, - hQ + let { offset: C, bytes: E, filename: i } = g.chunks[A]; + if (i) { + if (this.fileBytes) + throw new Error("Chunked RAD file not supported with fileBytes"); + const o = new URL( + this.rootUrl, + window.location.href + ).toString(), D = new URL(i, o).toString(); + I = await JQ({ + url: D, + requestHeader: this.requestHeader, + withCredentials: this.withCredentials + }); + } else if (C += B, this.fileBytes) { + if (C < 0 || C + E > this.fileBytes.length) + throw new Error( + `Invalid chunk offset or bytes: ${C} + ${E} > ${this.fileBytes.length}` + ); + I = this.fileBytes.slice(C, C + E); + } else if (this.rootUrl) + I = await JQ({ + url: this.rootUrl, + requestHeader: this.requestHeader, + withCredentials: this.withCredentials, + offset: C, + bytes: E + }); + else + throw new Error("No url or fileBytes provided"); + } else if (!this.fileBytes) if (this.rootUrl) { + const g = this.chunkUrl(A), B = new Request(g, { + headers: this.requestHeader ? new Headers(this.requestHeader) : void 0, + credentials: this.withCredentials ? "include" : "same-origin" + }), C = await fetch(B); + if (!C.ok || !C.body) + throw new Error( + `Failed to fetch "${g}": ${C.status} ${C.statusText}` ); - }; - } - const F = (a) => { - if (a.name === "chunk") - return k(a); - if (g) - return R(a); - if (a.name !== "vertex") - return null; - const { - x: S, - y: M, - z: c, - scale_0: N, - scale_1: U, - scale_2: J, - rot_0: t, - rot_1: H, - rot_2: K, - rot_3: Y, - opacity: L, - f_dc_0: q, - f_dc_1: n, - f_dc_2: r, - red: p, - green: m, - blue: IA, - alpha: X - } = a.properties; - if (!S || !M || !c) - throw new Error("Missing PLY properties: x, y, z"); - const EA = N && U && J, j = t && H && K && Y, gA = X != null ? rg[X.type] : 1, W = p != null ? rg[p.type] : 1, u = m != null ? rg[m.type] : 1, b = IA != null ? rg[IA.type] : 1; - return C = OQ(a.properties), y(), (T, f) => { - const FA = EA ? Math.exp(f.scale_0) : jI.defaultPointScale, sA = EA ? Math.exp(f.scale_1) : jI.defaultPointScale, aA = EA ? Math.exp(f.scale_2) : jI.defaultPointScale, SA = j ? f.rot_1 : 0, wA = j ? f.rot_2 : 0, GA = j ? f.rot_3 : 0, AI = j ? f.rot_0 : 1, TA = L != null ? 1 / (1 + Math.exp(-f.opacity)) : X != null ? f.alpha / gA : 1, FI = q != null ? f.f_dc_0 * eg + 0.5 : p != null ? f.red / W : 1, aI = n != null ? f.f_dc_1 * eg + 0.5 : m != null ? f.green / u : 1, _ = r != null ? f.f_dc_2 * eg + 0.5 : IA != null ? f.blue / b : 1; - if (A( - T, - f.x, - f.y, - f.z, - FA, - sA, - aA, - SA, - wA, - GA, - AI, - TA, - FI, - aI, - _ - ), I && w) { - const OA = f.f_rest; - if (w) - for (let LA = 0; LA < E.length; LA++) - w[LA] = OA[E[LA]]; - if (s) - for (let LA = 0; LA < D.length; LA++) - s[LA] = OA[D[LA]]; - if (o) - for (let LA = 0; LA < i.length; LA++) - o[LA] = OA[i[LA]]; - I(T, w, s, o); - } - }; - }; - this.parseData(F); - } - // Inject RGBA values into original PLY file, which can be used to modify - // the color/opacity of the Gsplats and write out the modified PLY file. - injectRgba(A) { - let I = 0; - const g = this.data; - if (g == null) - throw new Error("No parsed data"); - if (A.length !== this.numSplats * 4) - throw new Error("Invalid RGBA array length"); - for (const B in this.elements) { - const C = this.elements[B], { count: E, properties: D } = C, i = []; - let w = 0; - const s = B === "vertex"; - if (s) { - for (const o of ["opacity", "f_dc_0", "f_dc_1", "f_dc_2"]) - if (!D[o] || D[o].type !== "float") - throw new Error(`Can't injectRgba due to property: ${o}`); - } - for (const [o, y] of Object.entries(D)) - if (y.isList) - i.push(() => { - const h = WI[y.countType]( - g, - I, - this.littleEndian - ); - I += BI[y.countType], I += h * BI[y.type]; - }); - else { - if (s) - if (o === "f_dc_0" || o === "f_dc_1" || o === "f_dc_2") { - const h = Number.parseInt( - o.slice(5) - ); - i.push(() => { - const k = (A[w + h] / 255 - 0.5) / eg; - PB[y.type]( - g, - I, - this.littleEndian, - k - ); - }); - } else o === "opacity" && i.push(() => { - const h = Math.max( - -100, - Math.min( - 100, - -Math.log(1 / (A[w + 3] / 255) - 1) - ) - ); - PB[y.type]( - g, - I, - this.littleEndian, - h - ); - }); - i.push(() => { - I += BI[y.type]; - }); - } - for (let o = 0; o < E; o++) { - for (const y of i) - y(); - s && (w += 4); + I = new Uint8Array(await C.arrayBuffer()); + } else + throw new Error("No url or fileBytes provided"); + return await iQ.withWorker(async (g) => { + var i, o, D, s, w; + if (!this.pager) + throw new Error("PagedSplats.pager not set"); + if (!this.pager.extSplats) { + const h = (await g.call("loadPackedSplats", { + fileBytes: I, + pathName: this.chunkUrl(A), + sh1Codes: (i = this.sh1Codes) == null ? void 0 : i.slice(), + sh2Codes: (o = this.sh2Codes) == null ? void 0 : o.slice(), + sh3Codes: (D = this.sh3Codes) == null ? void 0 : D.slice() + })).lodSplats; + return this.splatEncoding || (this.splatEncoding = h.splatEncoding, this.numSh = h.extra.sh3 ? 3 : h.extra.sh2 ? 2 : h.extra.sh1 ? 1 : 0, this.rgbMinMaxLnScaleMinMax.value.set( + this.splatEncoding.rgbMin ?? 0, + this.splatEncoding.rgbMax ?? 1, + this.splatEncoding.lnScaleMin ?? pA, + this.splatEncoding.lnScaleMax ?? uA + ), this.lodOpacity.value = this.splatEncoding.lodOpacity ?? !1, this.shMax.value.set( + this.splatEncoding.sh1Max ?? 1, + this.splatEncoding.sh2Max ?? 1, + this.splatEncoding.sh3Max ?? 1 + )), this.sh1Codes = h.extra.sh1Codes ?? this.sh1Codes, this.sh2Codes = h.extra.sh2Codes ?? this.sh2Codes, this.sh3Codes = h.extra.sh3Codes ?? this.sh3Codes, h; } + const B = this.sh3Codes, E = (await g.call("loadExtSplats", { + fileBytes: I, + pathName: this.chunkUrl(A), + sh1Codes: (s = this.sh1Codes) == null ? void 0 : s.slice(), + sh2Codes: (w = this.sh2Codes) == null ? void 0 : w.slice(), + sh3Codes: B ? [B[0].slice(), B[1].slice()] : void 0 + })).lodSplats; + return this.splatEncoding || (this.splatEncoding = AQ, this.numSh = E.extra.sh3a && E.extra.sh3b ? 3 : E.extra.sh2 ? 2 : E.extra.sh1 ? 1 : 0), this.sh1Codes = E.extra.sh1Codes ?? this.sh1Codes, this.sh2Codes = E.extra.sh2Codes ?? this.sh2Codes, this.sh3Codes = E.extra.sh3Codes ?? this.sh3Codes, E; + }); + } + update(A, I) { + if (!this.pager) + throw new Error("PagedSplats.pager not set"); + const g = this.pager.renderer; + this.numSplats = A, this.dynoNumSplats.value = this.numSplats; + const B = Math.ceil(A / 16384); + let C = this.dynoIndices.value === eI.emptyIndicesTexture ? void 0 : this.dynoIndices.value; + if (C && B > C.image.height && (C.dispose(), C = void 0), !C) + C = new a.DataTexture( + I, + 4096, + B, + a.RGBAIntegerFormat, + a.UnsignedIntType + ), C.internalFormat = "RGBA32UI", C.needsUpdate = !0, g.initTexture(C), this.dynoIndices.value = C; + else { + const E = C.image.data; + E.set(I.subarray(0, A)), wB( + g, + C, + 4096, + B, + E + ); } } -}; -jI.defaultPointScale = 1e-3; -let vg = jI; -const eg = 0.28209479177387814, WI = { - char: (Q, A, I) => Q.getInt8(A), - uchar: (Q, A, I) => Q.getUint8(A), - short: (Q, A, I) => Q.getInt16(A, I), - ushort: (Q, A, I) => Q.getUint16(A, I), - int: (Q, A, I) => Q.getInt32(A, I), - uint: (Q, A, I) => Q.getUint32(A, I), - float: (Q, A, I) => Q.getFloat32(A, I), - double: (Q, A, I) => Q.getFloat64(A, I) -}, PB = { - char: (Q, A, I, g) => { - Q.setInt8(A, g); - }, - uchar: (Q, A, I, g) => { - Q.setUint8(A, g); - }, - short: (Q, A, I, g) => { - Q.setInt16(A, g, I); - }, - ushort: (Q, A, I, g) => { - Q.setUint16(A, g, I); - }, - int: (Q, A, I, g) => { - Q.setInt32(A, g, I); - }, - uint: (Q, A, I, g) => { - Q.setUint32(A, g, I); - }, - float: (Q, A, I, g) => { - Q.setFloat32(A, g, I); - }, - double: (Q, A, I, g) => { - Q.setFloat64(A, g, I); + prepareFetchSplat() { } -}, BI = { - char: 1, - uchar: 1, - short: 2, - ushort: 2, - int: 4, - uint: 4, - float: 4, - double: 8 -}, rg = { - char: 127, - uchar: 255, - short: 32767, - ushort: 65535, - int: 2147483647, - uint: 4294967295, - float: 1, - double: 1 -}, Vh = { - 0: 0, - 9: 1, - 24: 2, - 45: 3 -}, Xh = { - 0: 0, - 1: 9, - 2: 24, - 3: 45 -}, SB = /^f_rest_([0-9]{1,2})$/; -function Wh(Q) { - const A = {}; - for (const [I, g] of Object.entries(Q)) - SB.test(I) ? A.f_rest = new Array(OQ(Q)) : A[I] = g.isList ? [] : 0; - return A; -} -function jh(Q, A) { - return _h(Q) ? $h(Q, A) : AR(Q, A); -} -const vh = (() => { - try { - new Function("return 42;"); - } catch { - return !1; + getNumSplats() { + return this.numSplats; } - return !0; -})(), zh = /^[a-zA-Z0-9_]+$/; -function _h(Q) { - if (!vh) - return !1; - for (const [A, I] of Object.entries(Q)) - if (!zh.test(A) || I.isList && !bB.includes(I.countType) || !bB.includes(I.type)) - return !1; - return !0; -} -function $h(Q, A) { - const I = ["let list;"]; - for (const [B, C] of Object.entries(Q)) { - const E = B.match(SB); - if (E) { - const D = +E[1]; - I.push( - /*js*/ - ` - item.f_rest[${D}] = PARSE_FIELD['${C.type}'](data, offset, ${A}); - offset += ${BI[C.type]}; - ` - ); - } else C.isList ? I.push( - /*js*/ - ` - list = item['${B}']; - list.length = PARSE_FIELD['${C.countType}'](data, offset, ${A}); - offset += ${BI[C.countType]}; - for (let i = 0; i < list.length; i++) { - list[i] = PARSE_FIELD['${C.type}'](data, offset, ${A}); - offset += ${BI[C.type]}; - } - ` - ) : I.push( - /*js*/ - ` - item['${B}'] = PARSE_FIELD['${C.type}'](data, offset, ${A}); - offset += ${BI[C.type]}; - ` - ); + hasRgbDir() { + return this.pager ? Math.min(this.numSh, this.pager.maxSh) > 0 : !1; } - I.push("return offset;"); - const g = new Function( - "data", - "offset", - "item", - "PARSE_FIELD", - I.join(` -`) - ); - return (B, C, E) => g(B, C, E, WI); -} -function AR(Q, A) { - const I = []; - for (const [g, B] of Object.entries(Q)) { - const C = g.match(SB); - if (C) { - const E = +C[1]; - I.push( - (D, i, w) => (w.f_rest[E] = WI[B.type]( - D, - i, - A - ), i + BI[B.type]) + getNumSh() { + return this.numSh; + } + fetchSplat({ + index: A, + viewOrigin: I + }) { + if (!this.pager) + throw new Error("PagedSplats.pager not set"); + const g = this.pager.readIndex.apply({ + index: A, + numSplats: this.dynoNumSplats, + indices: this.dynoIndices + }).index; + return this.pager.extSplats ? this.hasRgbDir() && I ? (this.dynoNumSh.value = Math.min(this.numSh, this.maxSh, this.pager.maxSh), this.pager.readSplatExtDir.apply({ + index: g, + viewOrigin: I, + numSh: this.dynoNumSh + }).gsplat) : this.pager.readSplatExt.apply({ index: g }).gsplat : this.hasRgbDir() && I ? (this.dynoNumSh.value = Math.min( + this.numSh, + this.maxSh, + this.pager.maxSh + ), this.pager.readSplatDir.apply({ + index: g, + rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax, + lodOpacity: this.lodOpacity, + viewOrigin: I, + numSh: this.dynoNumSh, + shMax: this.shMax + }).gsplat) : this.pager.readSplat.apply({ + index: g, + rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax, + lodOpacity: this.lodOpacity + }).gsplat; + } + // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat + // and invoke the callback function with the Gsplat attributes. + forEachSplat(A) { + if (!this.pager || !this.numSplats) + return; + const I = this.pager.extSplats, g = this.dynoIndices.value.image.data, B = this.pager.packedTexture.value.image.data, C = this.pager.extTexture.value.image.data, E = [ + B, + C + ]; + for (let i = 0; i < this.numSplats; ++i) { + const o = g[i], D = I ? Zg(E, o) : Og(B, o, this.splatEncoding); + A( + i, + D.center, + D.scales, + D.quaternion, + D.opacity, + D.color ); - } else B.isList ? I.push( - (E, D, i) => { - const w = i[g]; - w.length = WI[B.countType]( - E, - D, - A - ); - let s = D + BI[B.countType]; - for (let o = 0; o < w.length; o++) - w[o] = WI[B.type]( - E, - s, - A - ), s += BI[B.type]; - return s; - } - ) : I.push( - (E, D, i) => (i[g] = WI[B.type]( - E, - D, - A - ), D + BI[B.type]) - ); + } } - return (g, B, C) => { - let E = B; - for (let D = 0; D < I.length; D++) - E = I[D](g, E, C); - return E; - }; -} -function OQ(Q) { - let A = 0; - for (; Q[`f_rest_${A}`]; ) - A += 1; - const I = Vh[A]; - if (I == null) - throw new Error(`Unsupported number of SH coefficients: ${A}`); - return I; } -class fw extends go { +const wA = class wA { constructor(A) { - super(A), this.fileLoader = new Qo(A); - } - load(A, I, g, B) { - return this.loadInternal({ - url: A, - onLoad: I, - onProgress: g, - onError: B + this.fetchPause = 0, this.splatsChunkToPage = /* @__PURE__ */ new Map(), this.pageToSplatsChunk = [], this.renderer = A.renderer, this.extSplats = A.extSplats ?? !1, this.pageSplats = Ig, this.maxSplats = A.maxSplats ?? 16777216, this.maxPages = Math.ceil(this.maxSplats / Ig), this.maxSplats = this.maxPages * Ig, this.maxSh = A.maxSh ?? 3, this.curSh = 0, this.autoDrive = A.autoDrive ?? !0, this.numFetchers = A.numFetchers ?? 3, this.splatsChunkToPage = /* @__PURE__ */ new Map(), this.pageToSplatsChunk = new Array(this.maxPages), this.pageFreelist = Array.from({ length: this.maxPages }, (g, B) => B), this.pageLru = /* @__PURE__ */ new Set(), this.freeablePages = [], this.newUploads = [], this.readyUploads = [], this.lodTreeUpdates = [], this.fetchers = [], this.fetched = [], this.fetchPriority = [], this.packedTexture = new OA({ + value: this.newUint32ArrayTexture(4) + }), this.extTexture = new OA({ + value: this.extSplats ? this.newUint32ArrayTexture(4) : wA.emptyExtTexture }); - } - async loadAsync(A, I) { - return new Promise((g, B) => { - this.load( - A, - (C) => { - g(C); + const I = this.extSplats ? wA.emptyExtShTextures : wA.emptyShTextures; + this.shTextures = I.map( + (g) => new OA({ + value: g + }) + ), this.readIndex = LA( + { index: "int", numSplats: "int", indices: "usampler2D" }, + { index: "int" }, + ({ index: g, numSplats: B, indices: C }) => new q({ + inTypes: { + index: "int", + numSplats: "int", + indices: "usampler2D" }, - I, - B - ); - }); - } - parse(A) { - return new vA({ packedSplats: A }); - } - loadInternal({ - packedSplats: A, - extSplats: I, - url: g, - fileBytes: B, - fileType: C, - fileName: E, - stream: D, - streamLength: i, - onLoad: w, - onProgress: s, - onError: o, - lod: y, - nonLod: h, - lodAbove: k, - lodBase: R - }) { - B instanceof ArrayBuffer && (B = new Uint8Array(B)); - const F = B ? void 0 : this.manager.resolveURL((this.path ?? "") + (g ?? "")); - let a = D == null ? void 0 : D.getReader(); - this.manager.itemStart(F ?? ""), BQ.withWorker(async (S) => { - const M = (A == null ? void 0 : A.lod) ?? (I == null ? void 0 : I.lod); - M && (y = M); - const c = (A == null ? void 0 : A.nonLod) ?? (I == null ? void 0 : I.nonLod); - c !== void 0 && (h = c); - const N = async (t) => { - const { loaded: H, total: K } = t; - if (H !== void 0 && s && s( - new ProgressEvent("progress", { - lengthComputable: K !== 0, - loaded: H, - total: K - }) - ), t.nextChunk) { - let Y; - if (!a) - Y = new Uint8Array(0); - else { - const { done: L, value: q } = await a.read(); - L ? (a.releaseLock(), a = void 0, Y = new Uint8Array(0)) : Y = q; - } - S.call("nextChunk", { chunk: Y }); - } - }, U = F ? new URL(F, window.location.href).toString() : void 0, J = await S.call( - I ? "loadExtSplats" : "loadPackedSplats", - { - url: U, - requestHeader: this.requestHeader, - withCredentials: this.withCredentials, - fileBytes: B == null ? void 0 : B.slice(), - fileType: C, - pathName: F || E, - chunked: D !== void 0, - chunkedLength: i, - encoding: A == null ? void 0 : A.splatEncoding, - lod: y, - lodBase: R, - nonLod: h, - lodAbove: k + outTypes: { index: "int" }, + inputs: { + index: g, + numSplats: B, + indices: C }, - { onStatus: N } - ); - if (J.lodSplats && (I ? J.lodSplats = new GI({ - ...J.lodSplats - }) : J.lodSplats = new $A({ - ...J.lodSplats, - maxSplats: A == null ? void 0 : A.maxSplats - })), I) { - const t = { - // ...(initExt ?? {}), - ...J - }; - I.initialize(t), w == null || w(I); - } else { - const t = { - // ...(init ?? {}), - ...J - }; - A ? (A.initialize(t), w == null || w(A)) : w == null || w(new $A(t)); + statements: ({ inputs: E, outputs: i }) => z(` + if (${E.index} >= ${E.numSplats}) { + return; + } + + ivec2 indexCoord = ivec2((${E.index} >> 2) & 4095, ${E.index} >> 14); + uint index = texelFetch(${E.indices}, indexCoord, 0)[${E.index} & 3]; + ${i.index} = int(index); + `) + }).outputs + ), this.readSplat = LA( + { index: "int", rgbMinMaxLnScaleMinMax: "vec4", lodOpacity: "bool" }, + { gsplat: j }, + ({ index: g, rgbMinMaxLnScaleMinMax: B, lodOpacity: C }) => new q({ + inTypes: { + index: "int", + packedTexture: "usampler2DArray", + rgbMinMaxLnScaleMinMax: "vec4", + lodOpacity: "bool" + }, + outTypes: { gsplat: j }, + inputs: { + index: g, + packedTexture: this.packedTexture, + rgbMinMaxLnScaleMinMax: B, + lodOpacity: C + }, + globals: () => [YA], + statements: ({ inputs: E, outputs: i }) => z(` + int index = ${E.index}; + ivec3 splatCoord = pagedSplatTexCoord(index); + uvec4 packedData = texelFetch(${E.packedTexture}, splatCoord, 0); + + unpackSplatEncoding(packedData, ${i.gsplat}.center, ${i.gsplat}.scales, ${i.gsplat}.quaternion, ${i.gsplat}.rgba, ${E.rgbMinMaxLnScaleMinMax}); + if ((${i.gsplat}.rgba.a == 0.0) || all(equal(${i.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { + return; + } + + ${i.gsplat}.index = index; + ${i.gsplat}.flags = GSPLAT_FLAG_ACTIVE; + if (${E.lodOpacity}) { + ${i.gsplat}.rgba.a *= 2.0; + } + `) + }).outputs + ), this.readSplatDir = LA( + { + index: "int", + rgbMinMaxLnScaleMinMax: "vec4", + lodOpacity: "bool", + viewOrigin: "vec3", + numSh: "int", + shMax: "vec3" + }, + { gsplat: j }, + ({ + index: g, + rgbMinMaxLnScaleMinMax: B, + lodOpacity: C, + viewOrigin: E, + numSh: i, + shMax: o + }) => { + if (!g || !B || !C || !E || !i || !o) + throw new Error("index and viewOrigin are required"); + let D = this.readSplat.apply({ + index: g, + rgbMinMaxLnScaleMinMax: B, + lodOpacity: C + }).gsplat; + const s = fA(D).outputs.center, w = tg(CI(s, E)); + let G = eo({ + coord: HQ(g), + viewDir: w, + numSh: i, + sh1Texture: this.shTextures[0], + sh2Texture: this.shTextures[1], + sh3Texture: this.shTextures[2], + shMax: o + }).rgb; + return G = lA(G, fA(D).outputs.rgb), D = QI({ gsplat: D, rgb: G }), { gsplat: D }; } - }).catch((S) => { - this.manager.itemError(F ?? ""), o == null || o(S); - }).finally(() => { - this.manager.itemEnd(F ?? ""); - }); + ), this.readSplatExt = LA( + { index: "int" }, + { gsplat: j }, + ({ index: g }) => new q({ + inTypes: { + index: "int", + extTexture1: "usampler2DArray", + extTexture2: "usampler2DArray" + }, + outTypes: { gsplat: j }, + inputs: { + index: g, + extTexture1: this.packedTexture, + extTexture2: this.extTexture + }, + globals: () => [YA], + statements: ({ inputs: B, outputs: C }) => z(` + int index = ${B.index}; + ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16); + uvec4 ext1 = texelFetch(${B.extTexture1}, splatCoord, 0); + float alpha = unpackSplatExtAlpha(ext1); + if (alpha == 0.0) { + return; + } + + uvec4 ext2 = texelFetch(${B.extTexture2}, splatCoord, 0); + unpackSplatExt(ext1, ext2, ${C.gsplat}.center, ${C.gsplat}.scales, ${C.gsplat}.quaternion, ${C.gsplat}.rgba); + if (all(equal(${C.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) { + return; + } + + ${C.gsplat}.index = index; + ${C.gsplat}.flags = GSPLAT_FLAG_ACTIVE; + `) + }).outputs + ), this.readSplatExtDir = LA( + { + index: "int", + viewOrigin: "vec3", + numSh: "int" + }, + { gsplat: j }, + ({ index: g, viewOrigin: B, numSh: C }) => { + if (!g || !B || !C) + throw new Error("index and viewOrigin are required"); + let E = this.readSplatExt.apply({ index: g }).gsplat; + const i = fA(E).outputs.center, o = tg(CI(i, B)); + let D = no({ + coord: HQ(g), + viewDir: o, + numSh: C, + sh1Texture: this.shTextures[0], + sh2Texture: this.shTextures[1], + sh3TextureA: this.shTextures[2], + sh3TextureB: this.shTextures[3] + }).rgb; + return D = lA(D, fA(E).outputs.rgb), E = QI({ gsplat: E, rgb: D }), { gsplat: E }; + } + ); } - async loadInternalAsync({ - packedSplats: A, - extSplats: I, - url: g, - fileBytes: B, - fileType: C, - fileName: E, - stream: D, - streamLength: i, - onProgress: w, - lod: s, - nonLod: o, - lodAbove: y, - lodBase: h - }) { - return new Promise((k, R) => { - this.loadInternal({ - packedSplats: A, - extSplats: I, - url: g, - fileBytes: B, - fileType: C, - fileName: E, - stream: D, - streamLength: i, - onLoad: k, - onProgress: w, - onError: R, - lod: s, - nonLod: o, - lodAbove: y, - lodBase: h - }); - }); + dispose() { + this.autoDrive = !1, this.numFetchers = 0, this.packedTexture.value.dispose(), this.packedTexture.value.source.data = null, this.extTexture.value !== wA.emptyExtTexture && (this.extTexture.value.dispose(), this.extTexture.value.source.data = null); + const A = this.extSplats ? wA.emptyExtShTextures : wA.emptyShTextures; + for (let I = 0; I < A.length; I++) { + const g = this.shTextures[I].value; + g !== A[I] && (g.dispose(), g.source.data = null); + } } -} -function NB(Q) { - const I = new DataView(Q.buffer).getUint32(0, !0); - if ((I & 16777215) === 7957616) - return hA.PLY; - if ((I & 16777215) === 559903) { - const g = KC(Q, 4); - return new DataView(g.buffer).getUint32(0, !0) === 1347635022 ? hA.SPZ : void 0; + ensureShTextures(A) { + this.curSh = Math.max(this.curSh, A); + const I = this.extSplats ? wA.emptyExtShTextures : wA.emptyShTextures; + for (let g = 0; g < this.curSh; g++) + if (this.shTextures[g].value === I[g]) { + const B = this.shTextures[g].value === wA.emptyUint32x2 ? 2 : 4; + this.shTextures[g].value = this.newUint32ArrayTexture(B); + } } - if (I === 67324752) - return gR(Q) ? hA.PCSOGSZIP : void 0; - if (I === 809779538) - return hA.RAD; -} -function IR(Q) { - const A = Q.split(/[?#]/, 1)[0], I = Math.max( - A.lastIndexOf("/"), - A.lastIndexOf("\\") - ), g = A.slice(I + 1), B = g.lastIndexOf("."); - return B <= 0 || B === g.length - 1 ? "" : g.slice(B + 1).toLowerCase(); -} -function cB(Q) { - const A = IR(Q); - if (A === "ply") - return hA.PLY; - if (A === "spz") - return hA.SPZ; - if (A === "splat") - return hA.SPLAT; - if (A === "ksplat") - return hA.KSPLAT; - if (A === "sog") - return hA.PCSOGSZIP; - if (A === "rad") - return hA.RAD; -} -function dk(Q) { - return bw(Q) !== void 0; -} -function bw(Q) { - try { - let A; - if (typeof Q == "string") - A = Q; - else { - const B = Q instanceof ArrayBuffer ? new Uint8Array(Q) : Q; - if (B.length > 65536) - return; - A = new TextDecoder().decode(B); - } - const I = JSON.parse(A); - if (!I || typeof I != "object" || Array.isArray(I)) - return; - const g = I.version === 2; - for (const B of ["means", "scales", "quats", "sh0"]) { - if (!I[B] || typeof I[B] != "object" || Array.isArray(I[B])) - return; - if (g) { - if (!I[B].files || (B === "scales" || B === "sh0") && !I[B].codebook || B === "means" && (!I[B].mins || !I[B].maxs)) - return; - } else if (!I[B].shape || !I[B].files || B !== "quats" && (!I[B].mins || !I[B].maxs)) - return; - } - return I; - } catch { - return; + allocatePage() { + return this.pageFreelist.shift(); + } + getSplatsChunk(A, I) { + const g = this.splatsChunkToPage.get(A); + if (g) + return g[I]; } -} -function gR(Q) { - try { - const A = Q instanceof ArrayBuffer ? new Uint8Array(Q) : Q; - let I = null; - const g = to(A, { - filter: ({ name: C }) => C.split(/[\\/]/).pop() === "meta.json" ? (I = C, !0) : !1 - }); + insertSplatsChunkPage(A, I, g, B) { + this.splatsChunkToPage.has(A) || this.splatsChunkToPage.set(A, []); + const C = this.splatsChunkToPage.get(A); + if (!C) + throw new Error("impossible"); + I >= C.length && (C.length = I + 1); + const E = { page: g, lru: B }; + return C[I] = E, this.pageLru.add(E), this.pageToSplatsChunk[g] = { splats: A, chunk: I, time: performance.now() }, this.pageToSplatsChunk[g]; + } + removeSplatsChunkPage(A, I, g) { + const B = this.splatsChunkToPage.get(A); + if (!B) + throw new Error("impossible"); + const C = B[I]; + if (!C) + throw new Error( + `pageLru not found for splats: ${A}, chunk: ${I}, page: ${g}` + ); + for (this.pageLru.delete(C), B[I] = void 0; B.length > 0 && B[B.length - 1] === void 0; ) + B.pop(); + for (B.length === 0 && this.splatsChunkToPage.delete(A), this.pageToSplatsChunk[g] = void 0; this.pageToSplatsChunk.length > 0 && this.pageToSplatsChunk[this.pageToSplatsChunk.length - 1] === void 0; ) + this.pageToSplatsChunk.pop(); + } + removeSplats(A) { + const I = this.splatsChunkToPage.get(A); if (!I) return; - const B = bw(g[I]); - return B ? { name: I, json: B } : void 0; - } catch { - return; - } -} -async function qk({ - input: Q, - extraFiles: A, - fileType: I, - pathOrUrl: g, - splatEncoding: B -}) { - const C = Q instanceof ArrayBuffer ? new Uint8Array(Q) : Q; - let E = I; - switch (I || (E = NB(C), !E && g && (E = cB(g))), E) { - case hA.PLY: { - const D = new vg({ fileBytes: C }); - await D.parseHeader(); - const i = D.numSplats, w = BA(i).maxSplats, s = { - fileBytes: C, - packedArray: new Uint32Array(w * 4), - splatEncoding: B - }; - return await nI(async (o) => { - const { packedArray: y, numSplats: h, extra: k } = await o.call( - "unpackPly", - s - ); - return { packedArray: y, numSplats: h, extra: k }; - }); + const g = /* @__PURE__ */ new Set(); + for (; I.length > 0; ) { + const B = I.pop(); + if (B) { + const { page: C } = B; + this.pageToSplatsChunk[C] = void 0, g.add(C), this.pageFreelist.push(C), this.pageLru.delete(B); + } } - case hA.SPZ: - return await nI(async (D) => { - const { packedArray: i, numSplats: w, extra: s } = await D.call( - "decodeSpz", - { - fileBytes: C, - splatEncoding: B - } - ); - return { packedArray: i, numSplats: w, extra: s }; - }); - case hA.SPLAT: - return await nI(async (D) => { - const { packedArray: i, numSplats: w } = await D.call( - "decodeAntiSplat", - { - fileBytes: C, - splatEncoding: B - } - ); - return { packedArray: i, numSplats: w }; - }); - case hA.KSPLAT: - return await nI(async (D) => { - const { packedArray: i, numSplats: w, extra: s } = await D.call( - "decodeKsplat", - { fileBytes: C, splatEncoding: B } - ); - return { packedArray: i, numSplats: w, extra: s }; - }); - case hA.PCSOGS: - return await nI(async (D) => { - const { packedArray: i, numSplats: w, extra: s } = await D.call( - "decodePcSogs", - { fileBytes: C, extraFiles: A, splatEncoding: B } - ); - return { packedArray: i, numSplats: w, extra: s }; - }); - case hA.PCSOGSZIP: - return await nI(async (D) => { - const { packedArray: i, numSplats: w, extra: s } = await D.call( - "decodePcSogsZip", - { fileBytes: C, splatEncoding: B } - ); - return { packedArray: i, numSplats: w, extra: s }; - }); - default: - throw new Error(`Unknown splat file type: ${E}`); - } -} -class QR { - constructor({ maxSplats: A = 1 } = {}) { - this.numSplats = 0, this.maxSplats = BA(A).maxSplats, this.centers = new Float32Array(this.maxSplats * 3), this.scales = new Float32Array(this.maxSplats * 3), this.quaternions = new Float32Array(this.maxSplats * 4), this.opacities = new Float32Array(this.maxSplats), this.colors = new Float32Array(this.maxSplats * 3); + this.splatsChunkToPage.delete(A), this.freeablePages = this.freeablePages.filter( + (B) => !g.has(B) + ); } - pushSplat() { - const A = this.numSplats; - return this.ensureIndex(A), this.numSplats += 1, A; + uploadPage(A, I, g, B) { + const C = A * Ig; + eQ(this.packedTexture, A, C * 4, I), B && eQ(this.extTexture, A, C * 4, B); + const E = Math.min(g.length, 3); + this.ensureShTextures(E); + for (let i = 0; i < g.length; i++) { + const o = g[i], D = this.shTextures[i].value.format === a.RGIntegerFormat ? 2 : 4; + eQ( + this.shTextures[i], + A, + C * D, + o + ); + } } - unpushSplat(A) { - if (A === this.numSplats - 1) - this.numSplats -= 1; - else - throw new Error("Cannot unpush splat from non-last position"); + newUint32ArrayTexture(A) { + const I = new Uint32Array( + this.maxPages * PQ * bQ * A + ), g = new a.DataArrayTexture( + I, + PQ, + bQ, + this.maxPages + ); + return g.format = A === 2 ? a.RGIntegerFormat : a.RGBAIntegerFormat, g.type = a.UnsignedIntType, g.internalFormat = A === 2 ? "RG32UI" : "RGBA32UI", g.needsUpdate = !0, g.source.dataReady = !1, this.renderer.initTexture(g), g; } - ensureCapacity(A) { - if (A > this.maxSplats) { - const I = Math.max(A, this.maxSplats * 2), g = new Float32Array(I * 3), B = new Float32Array(I * 3), C = new Float32Array(I * 4), E = new Float32Array(I), D = new Float32Array(I * 3); - if (g.set(this.centers), B.set(this.scales), C.set(this.quaternions), E.set(this.opacities), D.set(this.colors), this.centers = g, this.scales = B, this.quaternions = C, this.opacities = E, this.colors = D, this.sh1) { - const i = new Float32Array(I * 9); - i.set(this.sh1), this.sh1 = i; + driveFetchers() { + const A = [], I = []; + let g = 0; + for (const { splats: E, chunk: i } of this.fetchPriority) { + const o = this.getSplatsChunk(E, i); + if (o) { + g >= this.maxPages ? I.push(o) : A.push(o), g += 1; + continue; } - if (this.sh2) { - const i = new Float32Array(I * 15); - i.set(this.sh2), this.sh2 = i; + if (this.fetched.some( + ({ splats: D, chunk: s }) => E === D && i === s + ) || this.fetchers.some( + ({ splats: D, chunk: s }) => E === D && i === s + )) { + g += 1; + continue; } - if (this.sh3) { - const i = new Float32Array(I * 21); - i.set(this.sh3), this.sh3 = i; + if (g < this.maxPages && this.fetchers.length < this.numFetchers) { + g += 1; + const D = E.fetchDecodeChunk(i).then( + async (s) => { + this.fetched.push({ splats: E, chunk: i, data: s }), this.fetchPause > 0 && await new Promise( + (w) => setTimeout(w, this.fetchPause) + ); + }, + async (s) => { + console.warn(s); + const w = 250 + 500 * Math.random(); + await new Promise((G) => setTimeout(G, w)); + } + ).finally(() => { + this.fetchers = this.fetchers.filter( + ({ splats: s, chunk: w }) => E !== s || i !== w + ), this.processFetched(); + }); + this.fetchers.push({ splats: E, chunk: i, promise: D }), D.then((s) => { + this.autoDrive && this.driveFetchers(); + }); } - this.maxSplats = I; } + const B = performance.now(); + for (const E of I.reverse()) + E.lru = B, this.pageLru.delete(E), this.pageLru.add(E); + const C = new Set(this.pageLru); + for (const E of A.reverse()) + C.delete(E), E.lru = B, this.pageLru.delete(E), this.pageLru.add(E); + this.freeablePages = Array.from(C).map(({ page: E }) => E); } - ensureIndex(A) { - this.ensureCapacity(A + 1); + allocateFreeable() { + const A = this.freeablePages.shift(); + if (A === void 0) + return; + const I = this.pageToSplatsChunk[A]; + if (!I) + throw new Error(`splatsChunk not found for page: ${A}`); + const { splats: g, chunk: B } = I; + return this.removeSplatsChunkPage(g, B, A), this.lodTreeUpdates.push({ + splats: g, + page: A, + chunk: B, + numSplats: Ig + }), A; } - setCenter(A, I, g, B) { - this.centers[A * 3] = I, this.centers[A * 3 + 1] = g, this.centers[A * 3 + 2] = B; + processFetched() { + const A = performance.now(); + for (; ; ) { + const I = this.fetched.shift(); + if (!I) + break; + const { splats: g, chunk: B, data: C } = I; + let E = this.allocatePage(); + if (E === void 0 && (E = this.allocateFreeable(), E === void 0)) + return; + this.insertSplatsChunkPage(g, B, E, A); + const { numSplats: i, extra: o } = C; + if (this.lodTreeUpdates.push({ + splats: g, + page: E, + chunk: B, + numSplats: i, + lodTree: o.lodTree + }), mh(C, this.extSplats)) { + const D = C.extArrays, s = D[0], w = D[1], G = [ + C.extra.sh1, + C.extra.sh2, + C.extra.sh3a, + C.extra.sh3b + ]; + G.length = G.findIndex((h) => !h), this.newUploads.push({ + page: E, + numSplats: i, + packedArray: s, + extArray: w, + shArrays: G + }); + } else { + const D = C.packedArray, s = [ + C.extra.sh1, + C.extra.sh2, + C.extra.sh3 + ]; + s.length = s.findIndex((w) => !w), this.newUploads.push({ + page: E, + numSplats: i, + packedArray: D, + shArrays: s + }); + } + } } - setScale(A, I, g, B) { - this.scales[A * 3] = I, this.scales[A * 3 + 1] = g, this.scales[A * 3 + 2] = B; + processUploads() { + for (; ; ) { + const A = this.readyUploads.shift(); + if (!A) + break; + const { page: I, numSplats: g, packedArray: B, extArray: C, shArrays: E } = A; + this.uploadPage(I, B, E, C); + } } - setQuaternion(A, I, g, B, C) { - this.quaternions[A * 4] = I, this.quaternions[A * 4 + 1] = g, this.quaternions[A * 4 + 2] = B, this.quaternions[A * 4 + 3] = C; + consumeLodTreeUpdates() { + const A = this.lodTreeUpdates; + return this.lodTreeUpdates = [], this.readyUploads.push(...this.newUploads), this.newUploads = [], A; } - setOpacity(A, I) { - this.opacities[A] = I; +}; +wA.emptyUint32x4 = (() => { + const { width: A, height: I, depth: g, maxSplats: B } = EA(1), C = new Uint32Array(B * 4), E = new a.DataArrayTexture( + C, + A, + I, + g + ); + return E.format = a.RGBAIntegerFormat, E.type = a.UnsignedIntType, E.internalFormat = "RGBA32UI", E.needsUpdate = !0, E; +})(), wA.emptyUint32x2 = (() => { + const { width: A, height: I, depth: g, maxSplats: B } = EA(1), C = new Uint32Array(B * 2), E = new a.DataArrayTexture( + C, + A, + I, + g + ); + return E.format = a.RGIntegerFormat, E.type = a.UnsignedIntType, E.internalFormat = "RG32UI", E.needsUpdate = !0, E; +})(), wA.emptyIndicesTexture = (() => { + const A = new Uint32Array(16384), I = new a.DataTexture(A, 4096, 1); + return I.format = a.RGBAIntegerFormat, I.type = a.UnsignedIntType, I.internalFormat = "RGBA32UI", I.needsUpdate = !0, I; +})(), wA.emptyPackedTexture = wA.emptyUint32x4, wA.emptyExtTexture = wA.emptyUint32x4, wA.emptyShTextures = [ + wA.emptyUint32x2, + wA.emptyUint32x4, + wA.emptyUint32x4 +], wA.emptyExtShTextures = [ + wA.emptyUint32x4, + wA.emptyUint32x4, + wA.emptyUint32x4, + // SH3A + wA.emptyUint32x4 + // SH3B +]; +let eI = wA; +function mh(Q, A) { + return A; +} +function eQ(Q, A, I, g) { + Q.value.image.data.subarray(I, I + g.length).set(g), Q.value.addLayerUpdate(A), Q.value.needsUpdate = !0, Q.value.source.dataReady = !0; +} +async function JQ({ + url: Q, + requestHeader: A, + withCredentials: I, + offset: g, + bytes: B +}) { + const C = new Request(Q, { + headers: A ? new Headers(A) : void 0, + credentials: I ? "include" : "same-origin" + }); + g !== void 0 && B !== void 0 && C.headers.set("Range", `bytes=${g}-${g + B - 1}`); + const E = await fetch(C); + if (!E.ok || !E.body) + throw new Error( + `Failed to fetch "${Q}": ${E.status} ${E.statusText}` + ); + return new Uint8Array(await E.arrayBuffer()); +} +class Vh { + constructor() { + this.fetchDyno = new q({ + inTypes: {}, + outTypes: { gsplat: j }, + globals: () => [YA], + statements: ({ outputs: A }) => z(` + ${A.gsplat}.flags = 0u; + return; + `) + }).outputs.gsplat; } - setColor(A, I, g, B) { - this.colors[A * 3] = I, this.colors[A * 3 + 1] = g, this.colors[A * 3 + 2] = B; + prepareFetchSplat() { } - setSh1(A, I) { - this.sh1 || (this.sh1 = new Float32Array(this.maxSplats * 9)); - for (let g = 0; g < 9; ++g) - this.sh1[A * 9 + g] = I[g]; + dispose() { } - setSh2(A, I) { - this.sh2 || (this.sh2 = new Float32Array(this.maxSplats * 15)); - for (let g = 0; g < 15; ++g) - this.sh2[A * 15 + g] = I[g]; + getNumSplats() { + return 0; } - setSh3(A, I) { - this.sh3 || (this.sh3 = new Float32Array(this.maxSplats * 21)); - for (let g = 0; g < 21; ++g) - this.sh3[A * 21 + g] = I[g]; + hasRgbDir() { + return !1; } -} -const YA = class YA { - constructor(A = {}) { - this.maxSplats = 0, this.numSplats = 0, this.packedArray = null, this.maxSh = 3, this.isInitialized = !1, this.target = null, this.source = null, this.needsUpdate = !0, this.extra = {}, this.dyno = new MB({ packedSplats: this }), this.dynoRgbMinMaxLnScaleMinMax = new mI({ - key: "rgbMinMaxLnScaleMinMax", - value: new G.Vector4(0, 1, pA, fA), - update: (I) => { - var g, B, C, E; - return I.set( - ((g = this.splatEncoding) == null ? void 0 : g.rgbMin) ?? 0, - ((B = this.splatEncoding) == null ? void 0 : B.rgbMax) ?? 1, - ((C = this.splatEncoding) == null ? void 0 : C.lnScaleMin) ?? pA, - ((E = this.splatEncoding) == null ? void 0 : E.lnScaleMax) ?? fA - ), I; - } - }), this.dynoNumSh = new EI({ - key: "numSh", - value: 0, - update: () => Math.min(this.getNumSh(), this.maxSh) - }), this.dynoShMax = new DI({ - key: "shMax", - value: new G.Vector3(), - update: (I) => { - var g, B, C; - return I.set( - ((g = this.splatEncoding) == null ? void 0 : g.sh1Max) ?? 1, - ((B = this.splatEncoding) == null ? void 0 : B.sh2Max) ?? 1, - ((C = this.splatEncoding) == null ? void 0 : C.sh3Max) ?? 1 - ), I; - } - }), this.initialized = Promise.resolve(this), this.reinitialize(A); + getNumSh() { + return 0; + } + setMaxSh(A) { + } + fetchSplat({ index: A }) { + return this.fetchDyno; } - reinitialize(A) { - this.isInitialized = !1, this.extra = {}, this.maxSplats = A.maxSplats ?? 0, this.splatEncoding = A.splatEncoding, this.lod = A.lod, this.nonLod = A.nonLod, A.url || A.fileBytes || A.stream || A.construct ? this.initialized = this.asyncInitialize(A).then(() => (this.isInitialized = !0, this)) : (this.initialize(A), this.isInitialized = !0, this.initialized = Promise.resolve(this)); + forEachSplat() { } - initialize(A) { - this.extra = A.extra ?? {}, this.splatEncoding = A.splatEncoding ?? this.splatEncoding, this.lodSplats = A.lodSplats, A.packedArray ? (this.packedArray = A.packedArray, this.numSplats = A.numSplats ?? this.packedArray.length / 4, this.maxSplats = Math.floor(this.packedArray.length / 4), this.maxSplats = Math.floor(this.maxSplats / P) * P, this.numSplats = Math.min( - this.maxSplats, - A.numSplats ?? Number.POSITIVE_INFINITY - )) : (this.maxSplats = A.maxSplats ?? 0, this.numSplats = 0); +} +const DI = class DI extends kg { + constructor(A = {}) { + if (super({ + update: (I) => this.update(I) + }), this.isInitialized = !1, this.recolor = new a.Color(1, 1, 1), this.opacity = 1, this.generatorDirty = !0, this.enableViewToObject = !1, this.enableViewToWorld = !1, this.enableWorldToView = !1, this.skinning = null, this.edits = null, this.rgbaDisplaceEdits = null, this.splatRgba = null, this.maxSh = 3, this.showLodPageDyno = new BI({ value: 0 }), A.splats) + this.splats = A.splats, this.numSplats = A.splats.getNumSplats(); + else if (A.paged) { + A.extSplats && console.warn( + "To set extSplats with the paged option, set SparkRenderer.pagedExtSplats" + ); + const I = A.url ?? ""; + if (A.paged === !0) + this.paged = new ag({ rootUrl: I }); + else if (A.paged instanceof ag) + this.paged = A.paged; + else if (A.paged instanceof eI) + this.paged = new ag({ rootUrl: I, pager: A.paged }); + else + throw new Error("Invalid paged option"); + this.splats = this.paged; + } else A.extSplats ? (this.extSplats = A.extSplats instanceof wI ? A.extSplats : new wI(), A.extSplats = this.extSplats, this.numSplats = this.extSplats.numSplats, this.splats = this.extSplats) : A.packedSplats ? (this.packedSplats = A.packedSplats, this.packedSplats.splatEncoding = A.splatEncoding ?? { + ...AQ + }, this.splats = this.packedSplats) : this.packedSplats = new tI(); + if (this.editable = A.editable ?? !0, this.raycastable = A.raycastable ?? !0, this.minRaycastOpacity = A.minRaycastOpacity ?? 0.2, this.onFrame = A.onFrame, this.context = { + transform: new TI(), + viewToWorld: new TI(), + worldToView: new TI(), + viewToObject: new TI(), + covTransform: new ng(), + covViewToWorld: new ng(), + covWorldToView: new ng(), + covViewToObject: new ng(), + recolor: new zI({ + value: new a.Vector4().setScalar(Number.NEGATIVE_INFINITY) + }), + time: new OI({ value: 0 }), + deltaTime: new OI({ value: 0 }), + numSplats: new BI({ value: 0 }), + splats: new Vh(), + enableLod: new eg({ value: !1 }), + lodIndices: new QQ({ + value: qB, + key: "lodIndices" + }) + }, this.covSplats = A.covSplats ?? !1, this.covSplats && !this.extSplats) + throw new Error("CovSplats requires ExtSplats"); + if (this.objectModifiers = A.objectModifier ? [A.objectModifier] : void 0, this.worldModifiers = A.worldModifier ? [A.worldModifier] : void 0, A.objectModifiers && (this.objectModifiers = A.objectModifiers), A.worldModifiers && (this.worldModifiers = A.worldModifiers), this.enableLod = A.enableLod, this.lodScale = A.lodScale ?? 1, this.behindFoveate = A.behindFoveate, this.coneFov0 = A.coneFov0, this.coneFov = A.coneFov, this.coneFoveate = A.coneFoveate, this.updateGenerator(), A.url || A.fileBytes || A.stream || A.constructSplats || A.packedSplats && !A.packedSplats.isInitialized || this.extSplats && !this.extSplats.isInitialized) + this.initialized = this.asyncInitialize(A).then(async () => { + if (this.updateGenerator(), this.isInitialized = !0, A.onLoad) { + const I = A.onLoad(this); + I instanceof Promise && await I; + } + return this; + }); + else if (this.isInitialized = !0, this.initialized = Promise.resolve(this), A.onLoad) { + const I = A.onLoad(this); + I instanceof Promise && (this.initialized = I.then(() => this)); + } } async asyncInitialize(A) { const { @@ -12025,1539 +10321,2278 @@ const YA = class YA { fileType: B, fileName: C, stream: E, - streamLength: D, - construct: i, - lod: w, - nonLod: s, - lodAbove: o + streamLength: i, + maxSplats: o, + constructSplats: D, + onProgress: s, + splatEncoding: w, + lod: G, + nonLod: h, + lodAbove: c } = A; - this.lod = w, this.nonLod = s; - const y = new fw(); - if ((g || I || E) && await y.loadInternalAsync({ - packedSplats: this, - url: I, - fileBytes: g, - fileType: B, - fileName: C, - stream: E, - streamLength: D, - onProgress: A.onProgress, - lodAbove: o - }), i) { - const h = i(this); - h instanceof Promise && await h; + if (this.packedSplats) { + if (I || g || E || D) { + const t = { + url: I, + fileBytes: g, + fileType: B, + fileName: C, + stream: E, + streamLength: i, + maxSplats: o, + construct: D, + onProgress: s, + splatEncoding: w, + lod: G, + nonLod: h, + lodAbove: c + }; + this.packedSplats.reinitialize(t); + } + await this.packedSplats.initialized, this.splats = this.packedSplats; + } else if (this.extSplats && (I || g || E || D)) { + const t = D; + this.extSplats.reinitialize({ + url: I, + fileBytes: g, + fileType: B, + fileName: C, + stream: E, + streamLength: i, + maxSplats: o, + construct: t, + onProgress: s, + lod: G, + nonLod: h, + lodAbove: c + }), await this.extSplats.initialized, this.splats = this.extSplats; } + this.splats && (this.numSplats = this.splats.getNumSplats(), this.updateGenerator()); } - // Call this when you are finished with the PackedSplats and want to free - // any buffers it holds. + // Creates a new Gsplat with the provided parameters (all values in "float" space, + // i.e. 0-1 for opacity and color) and adds it to the end of the packedSplats, + // increasing numSplats by 1. If necessary, reallocates the buffer with an exponential + // doubling strategy to fit the new data, so it's fairly efficient to just + // pushSplat(...) each Gsplat you want to create in a loop. + pushSplat(A, I, g, B, C) { + this.packedSplats ? this.packedSplats.pushSplat(A, I, g, B, C) : this.extSplats && this.extSplats.pushSplat(A, I, g, B, C); + } + // This method iterates over all Gsplats in this instance's packedSplats, + // invoking the provided callback with index: number in 0..=(this.numSplats-1) and + // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, + // opacity: number (0..1), and color: THREE.Color (rgb values in 0..1). + // Note that the objects passed in as center etc. are the same for every callback + // invocation: these objects are reused for efficiency. Changing these values has + // no effect as they are decoded/unpacked copies of the underlying data. To update + // the packedSplats, call .packedSplats.setSplat(index, center, scales, + // quaternion, opacity, color). + forEachSplat(A) { + var I; + (I = this.splats) == null || I.forEachSplat(A); + } + // Call this when you are finished with the SplatMesh and want to free + // any buffers it holds (via packedSplats). dispose() { - this.target && (this.target.dispose(), this.target.texture.source.data = null, this.target = null), this.source && (this.source.dispose(), this.source.source.data = null, this.source = null), this.packedArray = null; - for (const A in this.extra) { - const I = this.extra[A]; - if (I instanceof x) { - const g = I.value; - g != null && g.isTexture && (g.dispose(), g.source.data = null); + this.splats && this.splats !== this.packedSplats && this.splats !== this.extSplats && (this.splats.dispose(), this.splats = void 0), this.packedSplats && (this.packedSplats.dispose(), this.packedSplats = void 0), this.extSplats && (this.extSplats.dispose(), this.extSplats = void 0); + } + // Returns axis-aligned bounding box of the SplatMesh. If centers_only is true, + // only the centers of the splats are used to compute the bounding box. + // IMPORTANT: This should only be called after the SplatMesh is initialized. + getBoundingBox(A = !0) { + var o; + if (!this.initialized) + throw new Error( + "Cannot get bounding box before SplatMesh is initialized" + ); + const I = new a.Vector3( + Number.POSITIVE_INFINITY, + Number.POSITIVE_INFINITY, + Number.POSITIVE_INFINITY + ), g = new a.Vector3( + Number.NEGATIVE_INFINITY, + Number.NEGATIVE_INFINITY, + Number.NEGATIVE_INFINITY + ), B = new a.Vector3(), C = [-1, 1]; + function E(D, s, w, G, h, c) { + if (A) + I.min(s), g.max(s); + else + for (const t of C) + for (const y of C) + for (const k of C) + B.set(t * w.x, y * w.y, k * w.z), B.applyQuaternion(G), B.add(s), I.min(B), g.max(B); + } + return (o = this.splats) == null || o.forEachSplat(E), new a.Box3(I, g); + } + set objectModifier(A) { + A ? this.objectModifiers = [A] : this.objectModifiers = void 0; + } + set worldModifier(A) { + A ? this.worldModifiers = [A] : this.worldModifiers = void 0; + } + constructGenerator(A) { + if (this.covSplats) + return this.constructCovGenerator(A); + const { transform: I, viewToObject: g, recolor: B } = A, C = LA( + { index: "int" }, + { gsplat: j }, + ({ index: E }) => { + if (!E) + throw new Error("index is undefined"); + E = KB( + A.lodIndices, + E, + A.numSplats, + A.enableLod, + this.showLodPageDyno + ), A.splats.setMaxSh(this.maxSh), A.splats.prepareFetchSplat(); + let i = A.splats.fetchSplat({ + index: E, + viewOrigin: g.translate + }); + if (this.splatRgba && (i = dB( + i, + this.splatRgba.dyno, + E, + A.enableLod + )), this.skinning && (i = this.skinning.modify(i)), this.objectModifiers) + for (const D of this.objectModifiers) + i = D.apply({ gsplat: i }).gsplat; + i = I.applyGsplat(i); + const o = kA(B, fA(i).outputs.rgba); + if (i = QI({ gsplat: i, rgba: o }), this.rgbaDisplaceEdits && (i = this.rgbaDisplaceEdits.modify(i)), this.worldModifiers) + for (const D of this.worldModifiers) + i = D.apply({ gsplat: i }).gsplat; + return { gsplat: i }; + } + ); + this.generator = C, this.covGenerator = void 0; + } + constructCovGenerator(A) { + const { covTransform: I, covViewToObject: g, recolor: B } = A, C = LA( + { index: "int" }, + { covsplat: nA }, + ({ index: E }) => { + if (!E) + throw new Error("index is undefined"); + E = KB( + A.lodIndices, + E, + A.numSplats, + A.enableLod, + this.showLodPageDyno + ), A.splats.prepareFetchSplat(); + let i = A.splats.fetchSplat({ + index: E, + viewOrigin: g.offset + }); + if (this.splatRgba && (i = dB( + i, + this.splatRgba.dyno, + E, + A.enableLod + )), this.objectModifiers) + for (const s of this.objectModifiers) + i = s.apply({ gsplat: i }).gsplat; + let o = mg(i); + if (this.skinning && (o = this.skinning.modifyCov(o)), this.covObjectModifiers) + for (const s of this.covObjectModifiers) + o = s.apply({ covsplat: o }).covsplat; + o = I.applyCovSplat(o); + const D = kA(B, Vg(o).outputs.rgba); + if (o = IB({ covsplat: o, rgba: D }), this.rgbaDisplaceEdits && (o = this.rgbaDisplaceEdits.modifyCov(o)), this.covWorldModifiers) + for (const s of this.covWorldModifiers) + o = s.apply({ covsplat: o }).covsplat; + return { covsplat: o }; + } + ); + this.generator = void 0, this.covGenerator = C; + } + // Call this whenever something changes in the Gsplat processing pipeline, + // for example changing maxSh or updating objectModifier or worldModifier. + // Compiled generators are cached for efficiency and re-use when the same + // pipeline structure emerges after successive changes. + updateGenerator() { + this.generatorDirty = !0; + } + // This is called automatically by SparkRenderer and you should not have to + // call it. It updates parameters for the generated pipeline and calls + // updateGenerator() if the pipeline needs to change. + update({ + renderer: A, + time: I, + deltaTime: g, + viewToWorld: B, + camera: C, + renderSize: E, + globalEdits: i, + lodIndices: o + }) { + var t, y, k; + this.context.time.value = I, this.context.deltaTime.value = g, DI.dynoTime.value = I, this.showLodPageDyno.value = this.showLodPage ?? -1; + const D = this.splats ?? this.packedSplats ?? this.extSplats; + D && (this.context.splats = D), this.numSplats = this.context.splats.getNumSplats(); + let s = !1; + const w = ((t = this.packedSplats) == null ? void 0 : t.lodSplats) ?? ((y = this.extSplats) == null ? void 0 : y.lodSplats); + if (this.context.enableLod.value = w != null && o != null, this.enableLod === !1 && (this.context.enableLod.value = !1), this.context.lodIndices.value = (o == null ? void 0 : o.texture) ?? qB, this.context.enableLod.value && w && (this.context.splats = w, this.numSplats = (o == null ? void 0 : o.numSplats) ?? 0), this.context.numSplats.value = this.numSplats, this.context.splats !== this.lastSplats && (this.lastSplats = this.context.splats, this.generatorDirty = !0), this.covSplats) { + this.context.covTransform.update(this) && (s = !0), this.context.covViewToWorld.updateFromMatrix(B) && this.enableViewToWorld && (s = !0); + const F = B.clone().invert(); + this.context.covWorldToView.updateFromMatrix(F) && this.enableWorldToView && (s = !0); + const S = this.matrixWorld.clone().invert().multiply(B); + this.context.covViewToObject.updateFromMatrix(S) && (this.enableViewToObject || this.context.splats.hasRgbDir()) && (s = !0); + } else { + this.context.transform.update(this) && (s = !0), this.context.viewToWorld.updateFromMatrix(B) && this.enableViewToWorld && (s = !0); + const F = B.clone().invert(); + this.context.worldToView.updateFromMatrix(F) && this.enableWorldToView && (s = !0); + const N = new a.Matrix4().compose( + this.context.transform.translate.value, + this.context.transform.rotate.value, + new a.Vector3().setScalar(this.context.transform.scale.value) + ).invert().multiply(B); + this.context.viewToObject.updateFromMatrix(N) && (this.enableViewToObject || this.context.splats.hasRgbDir()) && (s = !0); + } + const G = new a.Vector4( + this.recolor.r, + this.recolor.g, + this.recolor.b, + this.opacity + ); + G.equals(this.context.recolor.value) || (this.context.recolor.value.copy(G), s = !0); + const h = this.editable ? (this.edits ?? []).concat(i) : []; + this.editable && !this.edits && this.traverseVisible((F) => { + F instanceof vg && h.push(F); + }), h.sort((F, R) => F.ordering - R.ordering); + const c = h.map((F) => { + if (F.sdfs != null) + return { edit: F, sdfs: F.sdfs }; + const R = []; + return F.traverseVisible((S) => { + S instanceof Bh && R.push(S); + }), { edit: F, sdfs: R }; + }); + if (c.length > 0 && !this.rgbaDisplaceEdits) { + const F = c.length, R = c.reduce( + (S, N) => S + N.sdfs.length, + 0 + ); + this.rgbaDisplaceEdits = new Ch({ + maxEdits: F, + maxSdfs: R + }), this.generatorDirty = !0; + } + if (this.rgbaDisplaceEdits) { + const F = this.rgbaDisplaceEdits.update(c); + s || (s = F.updated), F.dynoUpdated && (this.generatorDirty = !0); + } + this.generatorDirty && (this.constructGenerator(this.context), this.generatorDirty = !1, s = !0), s && this.updateVersion(), (k = this.onFrame) == null || k.call(this, { mesh: this, time: I, deltaTime: g }); + } + // This method conforms to the standard THREE.Raycaster API, performing object-ray + // intersections using this method to populate the provided intersects[] array + // with each intersection point. + raycast(A, I) { + var k, F, R, S, N, M, U, e, J, n, H, L, l, d, K, f, V, IA, O, CA, v, gA, W; + if (!Yh() || !this.raycastable || !this.packedSplats && !this.extSplats && !this.paged) + return; + const g = this.paged != null, B = g ? ((F = (k = this.paged) == null ? void 0 : k.pager) == null ? void 0 : F.extSplats) ?? !1 : this.extSplats != null, { near: C, far: E, ray: i } = A, o = this.matrixWorld.clone().invert(), D = new a.Matrix3().setFromMatrix4(o), s = i.origin.clone().applyMatrix4(o), w = i.direction.clone().applyMatrix3(D), G = Dh(), h = G.length / 4; + let c = 0; + const t = ((R = this.raycastIndices) == null ? void 0 : R.numSplats) ?? (g ? (S = this.paged) == null ? void 0 : S.numSplats : this.context.numSplats.value) ?? 0, y = ((N = this.raycastIndices) == null ? void 0 : N.indices) ?? (g ? (M = this.paged) == null ? void 0 : M.dynoIndices.value.image.data : this.context.enableLod.value ? this.context.lodIndices.value.image.data : null) ?? null; + if (B) { + const b = oh(), u = g ? (K = (d = this.paged) == null ? void 0 : d.pager) == null ? void 0 : K.packedTexture.value.image.data : y ? (V = (f = this.extSplats) == null ? void 0 : f.lodSplats) == null ? void 0 : V.extArrays[0] : (IA = this.extSplats) == null ? void 0 : IA.extArrays[0], T = g ? (CA = (O = this.paged) == null ? void 0 : O.pager) == null ? void 0 : CA.extTexture.value.image.data : y ? (gA = (v = this.extSplats) == null ? void 0 : v.lodSplats) == null ? void 0 : gA.extArrays[1] : (W = this.extSplats) == null ? void 0 : W.extArrays[1]; + if (!u || !T) + return; + for (let p = 0; p < t; p += h) { + const tA = Math.min(h, t - p); + if (!y) + G.set(u.subarray(p * 4, (p + tA) * 4)), b.set(T.subarray(p * 4, (p + tA) * 4)); + else + for (let yA = 0; yA < tA; ++yA) { + const cA = y[p + yA], oA = yA * 4, aA = cA * 4; + G[oA] = u[aA], G[oA + 1] = u[aA + 1], G[oA + 2] = u[aA + 2], G[oA + 3] = u[aA + 3], b[oA] = T[aA], b[oA + 1] = T[aA + 1], b[oA + 2] = T[aA + 2], b[oA + 3] = T[aA + 3]; + } + const sA = wh( + s.x, + s.y, + s.z, + w.x, + w.y, + w.z, + this.minRaycastOpacity, + C, + E, + tA + ); + c = this.appendRaycastBuffer( + c, + sA + ); + } + } else { + const b = g ? (e = (U = this.paged) == null ? void 0 : U.pager) == null ? void 0 : e.packedTexture.value.image.data : y ? (n = (J = this.packedSplats) == null ? void 0 : J.lodSplats) == null ? void 0 : n.packedArray : (H = this.packedSplats) == null ? void 0 : H.packedArray; + if (!b) + return; + const u = g ? (L = this.paged) == null ? void 0 : L.splatEncoding : (l = this.packedSplats) == null ? void 0 : l.splatEncoding; + for (let T = 0; T < t; T += h) { + const p = Math.min(h, t - T); + if (!y) + G.set(b.subarray(T * 4, (T + p) * 4)); + else + for (let sA = 0; sA < p; ++sA) { + const yA = y[T + sA], cA = sA * 4, oA = yA * 4; + G[cA] = b[oA], G[cA + 1] = b[oA + 1], G[cA + 2] = b[oA + 2], G[cA + 3] = b[oA + 3]; + } + const tA = sh( + s.x, + s.y, + s.z, + w.x, + w.y, + w.z, + this.minRaycastOpacity, + C, + E, + p, + (u == null ? void 0 : u.lnScaleMin) ?? pA, + (u == null ? void 0 : u.lnScaleMax) ?? uA, + (u == null ? void 0 : u.lodOpacity) ?? !1 + ); + c = this.appendRaycastBuffer( + c, + tA + ); } } - this.extra = {}, this.disposeLodSplats(); + for (const b of DI.raycastBuffer.subarray(0, c)) { + const u = i.direction.clone().multiplyScalar(b).add(i.origin); + I.push({ + distance: b, + point: u, + object: this + }); + } } - prepareFetchSplat() { + appendRaycastBuffer(A, I) { + const g = A + I.length; + let B = DI.raycastBuffer.length; + if (g > B) { + for (; B < g; ) + B *= 2; + const C = new Float32Array(B); + C.set(DI.raycastBuffer.subarray(0, A)), DI.raycastBuffer = C; + } + return DI.raycastBuffer.set(I, A), A + I.length; } - getNumSplats() { - return this.numSplats; + async createLodSplats({ + rgbaArray: A, + quality: I + } = {}) { + this.packedSplats ? await this.packedSplats.createLodSplats({ quality: I, rgbaArray: A }) : this.extSplats && await this.extSplats.createLodSplats({ quality: I, rgbaArray: A }); } - hasRgbDir() { - return Math.min(this.getNumSh(), this.maxSh) > 0; +}; +DI.dynoTime = new OI({ value: 0 }), DI.raycastBuffer = new Float32Array(1024); +let zA = DI; +function KB(Q, A, I, g, B) { + return jQ({ + inTypes: { + lodIndices: "usampler2D", + index: "int", + numSplats: "int", + enableLod: "bool", + showLodPage: "int" + }, + outTypes: { + index: "int" + }, + inputs: { + lodIndices: Q, + index: A, + numSplats: I, + enableLod: g, + showLodPage: B + }, + statements: ({ inputs: C, outputs: E }) => z(` + int index = ${C.index}; + if (${C.showLodPage} < 0) { + if (index >= ${C.numSplats}) { + return; + } + if (${C.enableLod}) { + ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14); + uint splatIndex = texelFetch(${C.lodIndices}, lodIndexCoord, 0)[index & 3]; + ${E.index} = int(splatIndex); + } else { + ${E.index} = index; + } + } else { + int start = ${C.showLodPage} << 16; + if (index >= 65536) { + return; + } + ${E.index} = start + index; + } + `) + }).outputs.index; +} +function dB(Q, A, I, g) { + return jQ({ + inTypes: { + gsplat: j, + rgba: cB, + index: "int", + enableLod: "bool" + }, + outTypes: { gsplat: j }, + inputs: { gsplat: Q, rgba: A, index: I, enableLod: g }, + statements: ({ inputs: B, outputs: C }) => z(` + ${C.gsplat} = ${B.gsplat}; + if (!${B.enableLod} && (${B.index} >= 0) && (${B.index} < ${B.rgba}.count)) { + ${C.gsplat}.rgba = texelFetch(${B.rgba}.texture, splatTexCoord(${B.index}), 0); + } + `) + }).outputs.gsplat; +} +const qB = (() => { + const Q = new a.DataTexture( + new Uint32Array(16384), + 4096, + 1, + a.RGBAIntegerFormat, + a.UnsignedIntType + ); + return Q.internalFormat = "RGBA32UI", Q.needsUpdate = !0, Q; +})(), QA = class QA { + constructor({ + extSplats: A, + covSplats: I + } = {}) { + if (this.time = 0, this.deltaTime = 0, this.viewToWorld = new a.Matrix4(), this.viewOrigin = new a.Vector3(), this.viewDirection = new a.Vector3(), this.maxSplats = 0, this.numSplats = 0, this.target = null, this.mapping = [], this.version = -1, this.mappingVersion = -1, this.readback = null, this.readbackSplats = [], !FE) + throw new Error("Spark requires THREE.js r179 or above"); + this.extSplats = A ?? !0, this.covSplats = I ?? !1; } - getNumSh() { - return this.extra.sh1 ? this.extra.sh2 ? this.extra.sh3 ? 3 : 2 : 1 : 0; + dispose() { + this.target && (this.target.dispose(), this.target = null); } - setMaxSh(A) { - this.maxSh = A; + // Returns a THREE.DataArrayTexture representing the NewSplatAccumulator + // content as 2 x Uint32x4 data array textures (2048 x 2048 x 2048 in size) + getTextures() { + return this.target ? this.target.textures : QA.emptyTextures; } - fetchSplat({ - index: A, - viewOrigin: I - }) { - let g = _I(this.dyno, A); - if (this.hasRgbDir() && I) { - const B = uA(g).outputs.center, C = ag(iI(B, I)), { sh1Texture: E, sh2Texture: D, sh3Texture: i } = this.ensureShTextures(); - let { rgb: w } = Pw({ - coord: EB(A), - viewDir: C, - numSh: this.dynoNumSh, - sh1Texture: E, - sh2Texture: D, - sh3Texture: i, - shMax: this.dynoShMax - }); - w = qA(w, uA(g).outputs.rgb), g = CI({ gsplat: g, rgb: w }); - } - return g; + // Given an array of splatCounts (.numSplats for each + // SplatGenerator/SplatMesh in the scene), compute a + // "mapping layout" in the composite array of generated outputs. + generateMapping(A) { + let I = 0; + const g = A.map((B) => { + const C = I, E = Math.ceil(B / P) * P; + return I += E, { base: C, count: B }; + }); + return { maxSplats: I, mapping: g }; } - ensureShTextures() { - if (!this.extra.sh1) - return {}; - let A = this.extra.sh1Texture; - if (!A) { - let B = this.extra.sh1; - const { width: C, height: E, depth: D, maxSplats: i } = BA( - B.length / 2 - ); - if (B.length < i * 2) { - const s = new Uint32Array(i * 2); - s.set(B), this.extra.sh1 = s, B = s; - } - const w = new G.DataArrayTexture(B, C, E, D); - w.format = G.RGIntegerFormat, w.type = G.UnsignedIntType, w.internalFormat = "RG32UI", w.needsUpdate = !0, A = new dA({ - value: w, - key: "sh1" - }), this.extra.sh1Texture = A; - } - if (!this.extra.sh2) - return { sh1Texture: A }; - let I = this.extra.sh2Texture; - if (!I) { - let B = this.extra.sh2; - const { width: C, height: E, depth: D, maxSplats: i } = BA( - B.length / 4 - ); - if (B.length < i * 4) { - const s = new Uint32Array(i * 4); - s.set(B), this.extra.sh2 = s, B = s; - } - const w = new G.DataArrayTexture(B, C, E, D); - w.format = G.RGBAIntegerFormat, w.type = G.UnsignedIntType, w.internalFormat = "RGBA32UI", w.needsUpdate = !0, I = new dA({ - value: w, - key: "sh2" - }), this.extra.sh2Texture = I; - } - if (!this.extra.sh3) - return { sh1Texture: A, sh2Texture: I }; - let g = this.extra.sh3Texture; - if (!g) { - let B = this.extra.sh3; - const { width: C, height: E, depth: D, maxSplats: i } = BA( - B.length / 4 - ); - if (B.length < i * 4) { - const s = new Uint32Array(i * 4); - s.set(B), this.extra.sh3 = s, B = s; - } - const w = new G.DataArrayTexture(B, C, E, D); - w.format = G.RGBAIntegerFormat, w.type = G.UnsignedIntType, w.internalFormat = "RGBA32UI", w.needsUpdate = !0, g = new dA({ - value: w, - key: "sh3" - }), this.extra.sh3Texture = g; + // Ensures our NewSplatAccumulator.target render target has enough space + // to generate maxSplats total Gsplats, and reallocate if not large enough. + ensureGenerate({ maxSplats: A }) { + if (this.target && (A ?? 1) <= this.maxSplats) + return !1; + this.dispose(); + const I = EA(A ?? 1), { width: g, height: B, depth: C } = I; + if (this.maxSplats = I.maxSplats, this.target = new a.WebGLArrayRenderTarget(g, B, C, { + depthBuffer: !1, + stencilBuffer: !1, + generateMipmaps: !1, + magFilter: a.NearestFilter, + minFilter: a.NearestFilter, + format: a.RGBAIntegerFormat, + type: a.UnsignedIntType + }), this.target.scissorTest = !0, this.extSplats) { + const E = this.target.texture.clone(), i = this.target.texture.clone(); + i.format = a.RGBAFormat, i.type = a.UnsignedByteType, i.internalFormat = "RGBA8", this.target.textures = [this.target.texture, E, i]; + } else { + const E = this.target.texture.clone(); + E.format = a.RGBAFormat, E.type = a.UnsignedByteType, E.internalFormat = "RGBA8", this.target.textures = [this.target.texture, E]; } - return { sh1Texture: A, sh2Texture: I, sh3Texture: g }; + return !0; } - // Ensures that this.packedArray can fit numSplats Gsplats. If it's too small, - // resize exponentially and copy over the original data. - // - // Typically you don't need to call this, because calling this.setSplat(index, ...) - // and this.pushSplat(...) will automatically call ensureSplats() so we have - // enough splats. - ensureSplats(A) { - const I = A <= this.maxSplats ? this.maxSplats : ( - // Grow exponentially to avoid frequent reallocations - Math.max(A, 2 * this.maxSplats) - ), g = this.packedArray ? this.packedArray.length / 4 : 0; - if (!this.packedArray || I > g) { - this.maxSplats = BA(I).maxSplats; - const B = new Uint32Array(this.maxSplats * 4); - this.packedArray && B.set(this.packedArray), this.packedArray = B; - } - return this.packedArray; + saveRenderState(A) { + return { + target: A.getRenderTarget(), + activeCubeFace: A.getActiveCubeFace(), + activeMipmapLevel: A.getActiveMipmapLevel(), + xrEnabled: A.xr.enabled, + autoClear: A.autoClear + }; } - // Ensure the extra array for the given level is large enough to hold numSplats - ensureSplatsSh(A, I) { - let g, B; - if (A === 0) - return this.ensureSplats(I); - if (A === 1) - g = 2, B = "sh1"; - else if (A === 2) - g = 4, B = "sh2"; - else if (A === 3) - g = 4, B = "sh3"; - else - throw new Error(`Invalid level: ${A}`); - let C = this.extra[B] ? this.extra[B].length / g : 0; - const E = I <= C ? C : Math.max(I, 2 * C); - if (!this.extra[B] || E > C) { - C = BA(E).maxSplats; - const D = new Uint32Array(C * g); - this.extra[B] && D.set(this.extra[B]), this.extra[B] = D; + resetRenderState(A, I) { + A.setRenderTarget( + I.target, + I.activeCubeFace, + I.activeMipmapLevel + ), A.xr.enabled = I.xrEnabled, A.autoClear = I.autoClear; + } + // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator, + // generating it if necessary and caching the result. + prepareProgramMaterial(A, I) { + const g = A ?? I; + if (!g) + throw new Error("Either generator or covGenerator must be provided"); + let B = QA.generatorProgram.get(g); + if (!B) { + const E = LA( + { index: "int" }, + {}, + ({ index: i }, o, { roots: D }) => { + if (A && (A.inputs.index = i), I && (I.inputs.index = i), this.extSplats) + if (this.covSplats) + if (I) { + const s = nQ(I.outputs.covsplat); + D.push(s); + } else if (A) { + const s = mg(A.outputs.gsplat), w = nQ(s); + D.push(w); + } else + throw new Error("Generator must be provided"); + else if (A) { + const s = RC(A.outputs.gsplat); + D.push(s); + } else + throw new Error("Generator must be provided"); + else { + if (this.covSplats) { + let s; + if (I) + s = I.outputs.covsplat; + else if (A) + s = mg(A.outputs.gsplat); + else + throw new Error("Generator must be provided"); + const w = CI( + Vg(s).outputs.center, + QA.viewCenterUniform + ), G = kA( + Vg(s).outputs.opacity, + AA("float", 0.5) + ); + s = IB({ + covsplat: s, + center: w, + opacity: G + }); + const h = SC( + s, + AA("vec4", [0, 1, pA, uA]) + ); + D.push(h); + } else if (A) { + const s = CI( + fA(A.outputs.gsplat).outputs.center, + QA.viewCenterUniform + ), w = kA( + fA(A.outputs.gsplat).outputs.opacity, + AA("float", 0.5) + ), G = QI({ + gsplat: A.outputs.gsplat, + center: s, + opacity: w + }), h = gB( + G, + AA("vec4", [0, 1, pA, uA]) + ); + D.push(h); + } else + throw new Error("Generator must be provided"); + if (!A) + throw new Error("Generator must be provided"); + } + if (A) { + const s = MC( + A.outputs.gsplat, + QA.viewCenterUniform, + QA.viewDirUniform, + QA.sortRadialUniform + ); + D.push(s); + } + if (I) { + const s = eC( + I.outputs.covsplat, + QA.viewCenterUniform, + QA.viewDirUniform, + QA.sortRadialUniform + ); + D.push(s); + } + } + ); + B = new CQ({ + graph: E, + inputs: { index: "_index" }, + outputs: {}, + template: this.extSplats ? QA.programExtTemplate : QA.programTemplate + // consoleLog: true, + }), QA.generatorProgram.set(g, B); } - return this.extra[B]; - } - // Unpack the 16-byte Gsplat data at index into the Three.js components - // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, - // opacity: number 0..1, color: THREE.Color 0..1. - getSplat(A) { - if (!this.packedArray || A >= this.numSplats) - throw new Error("Invalid index"); - return Og(this.packedArray, A, this.splatEncoding); + Object.assign(B.uniforms, { + targetLayer: { value: 0 }, + targetBase: { value: 0 }, + targetCount: { value: 0 } + }); + const C = B.prepareMaterial(); + return QA.fullScreenQuad.material = C, { program: B, material: C }; } - // Set all PackedSplat components at index with the provided Gsplat attributes - // (can be the same objects returned by getSplat). Ensures there is capacity - // for at least index+1 Gsplats. - setSplat(A, I, g, B, C, E) { - const D = this.ensureSplats(A + 1); - nQ( - D, + generate({ + generator: A, + covGenerator: I, + base: g, + count: B, + renderer: C + }) { + if (!this.target) + throw new Error("Target must be initialized with ensureGenerate"); + if (g + B > this.maxSplats) + throw new Error("Base + count exceeds maxSplats"); + const { program: E, material: i } = this.prepareProgramMaterial( A, - I.x, - I.y, - I.z, - g.x, - g.y, - g.z, - B.x, - B.y, - B.z, - B.w, - C, - E.r, - E.g, - E.b - ), this.numSplats = Math.max(this.numSplats, A + 1); - } - // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on - // construction where you just want to iterate and create a collection of Gsplats. - pushSplat(A, I, g, B, C) { - const E = this.ensureSplats(this.numSplats + 1); - nQ( - E, - this.numSplats, - A.x, - A.y, - A.z, - I.x, - I.y, - I.z, - g.x, - g.y, - g.z, - g.w, - B, - C.r, - C.g, - C.b - ), ++this.numSplats; + I + ); + E.update(); + const o = this.saveRenderState(C), D = Math.ceil((g + B) / P) * P, s = P * ZA; + for (i.uniforms.targetBase.value = g, i.uniforms.targetCount.value = B; g < D; ) { + const w = Math.floor(g / s); + i.uniforms.targetLayer.value = w; + const G = w * s, h = Math.floor((g - G) / P), c = Math.min( + ZA, + Math.ceil((D - G) / P) + ); + this.target.scissor.set( + 0, + h, + P, + c - h + ), C.setRenderTarget(this.target, w), C.xr.enabled = !1, C.autoClear = !1, QA.fullScreenQuad.render(C), g += P * (c - h); + } + return this.resetRenderState(C, o), { nextBase: D }; } - // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat - // and invoke the callback function with the Gsplat attributes. - forEachSplat(A) { - if (!(!this.packedArray || !this.numSplats)) - for (let I = 0; I < this.numSplats; ++I) { - const g = Og(this.packedArray, I, this.splatEncoding); - A( - I, - g.center, - g.scales, - g.quaternion, - g.opacity, - g.color + prepareGenerate({ + renderer: A, + scene: I, + time: g, + camera: B, + sortRadial: C, + renderSize: E, + previous: i, + lodInstances: o + }) { + var R; + this.viewToWorld.copy(B.matrixWorld), B.getWorldPosition(this.viewOrigin), B.getWorldDirection(this.viewDirection), QA.viewCenterUniform.value.copy(this.viewOrigin), QA.viewDirUniform.value.copy(this.viewDirection), QA.sortRadialUniform.value = C, this.time = g, this.deltaTime = g - i.time; + const D = []; + I.traverse((S) => { + S instanceof kg && (!B.layers || B.layers.test(S.layers)) && D.push(S); + }); + const s = /* @__PURE__ */ new Set(); + I.traverseVisible((S) => { + if (S instanceof vg) { + let N = S.parent; + for (; N != null && !(N instanceof zA); ) + N = N.parent; + N == null && s.add(S); + } + }); + const w = Array.from(s); + for (const S of D) + try { + (R = S.frameUpdate) == null || R.call(S, { + renderer: A, + object: S, + time: this.time, + deltaTime: this.deltaTime, + viewToWorld: this.viewToWorld, + camera: B, + renderSize: E, + globalEdits: w, + lodIndices: o && S instanceof zA ? o.get(S) : void 0 + }); + } catch (N) { + console.error("frameUpdate error", N), S.generator = void 0, S.covGenerator = void 0, S.generatorError = N; + } + const G = []; + I.traverseVisible((S) => { + S instanceof kg && (!B.layers || B.layers.test(S.layers)) && G.push(S); + }); + const h = G.map( + (S) => S.numSplats + ), { maxSplats: c, mapping: t } = this.generateMapping(h), y = i.mapping.reduce((S, N) => (S.set(N.node, N), S), /* @__PURE__ */ new Map()); + this.mapping = [], this.numSplats = 0, t.forEach(({ base: S, count: N }, M) => { + const U = G[M], e = y.get(U); + e && e.count !== U.numSplats && U.updateMappingVersion(); + const { generator: J, covGenerator: n } = U; + if ((J || n) && N > 0) { + const { version: H, mappingVersion: L } = U; + this.mapping.push({ + node: U, + generator: J, + covGenerator: n, + version: H, + mappingVersion: L, + base: S, + count: N + }), this.numSplats = Math.max(this.numSplats, S + N); + } + }); + const { splatsUpdated: k, mappingUpdated: F } = i.checkVersions( + this.mapping + ); + return this.version = i.version + (k ? 1 : 0), this.mappingVersion = i.mappingVersion + (F ? 1 : 0), { + sameMapping: !F, + version: this.version, + mappingVersion: this.mappingVersion, + visibleGenerators: G, + generate: () => { + this.ensureGenerate({ maxSplats: c }); + for (const { node: S, base: N, count: M } of this.mapping) { + const { generator: U, covGenerator: e } = S; + (U || e) && M > 0 && this.generate({ generator: U, covGenerator: e, base: N, count: M, renderer: A }); + } + }, + readback: async () => { + const S = this.getTextures(); + this.readbackSplats.length === 0 && (this.readbackSplats = [ + new OA({ value: S[0], key: "extSplats" }), + new OA({ value: S[1], key: "extSplats" }) + ]), this.readbackSplats[0].value = S[0], this.readbackSplats[1].value = S[1], this.readback || (this.readback = new cg({ renderer: A })); + const N = this.readback, M = this.extSplats ? 8 : 4, U = N.ensureBuffer( + this.numSplats * M, + new Uint32Array(0) + ), e = LA( + { index: "int" }, + { rgba8: "vec4" }, + ({ index: J }) => ({ rgba8: new q({ + inTypes: { + index: "int", + extSplats1: "usampler2DArray", + extSplats2: "usampler2DArray" + }, + outTypes: { rgba8: "vec4" }, + inputs: { + index: J, + extSplats1: this.readbackSplats[0], + extSplats2: this.readbackSplats[1] + }, + statements: ({ inputs: H, outputs: L }) => this.extSplats ? z(` + int indexDiv8 = ${H.index} >> 3; + ivec3 coord = splatTexCoord(indexDiv8); + uvec4 packedData; + if ((${H.index} & 4) == 0) { + packedData = texelFetch(${H.extSplats1}, coord, 0); + } else { + packedData = texelFetch(${H.extSplats2}, coord, 0); + } + + int indexMod4 = ${H.index} & 3; + uint data = (indexMod4 == 0) ? packedData.x + : (indexMod4 == 1) ? packedData.y + : (indexMod4 == 2) ? packedData.z + : packedData.w; + ${L.rgba8} = uintToVec4(data); + `) : z(` + int indexDiv4 = ${H.index} >> 2; + ivec3 coord = splatTexCoord(indexDiv4); + uvec4 packedData = texelFetch(${H.extSplats1}, coord, 0); + + int indexMod4 = ${H.index} & 3; + uint data = (indexMod4 == 0) ? packedData.x + : (indexMod4 == 1) ? packedData.y + : (indexMod4 == 2) ? packedData.z + : packedData.w; + ${L.rgba8} = uintToVec4(data); + `) + }).outputs.rgba8 }) ); + return await N.renderReadback({ + reader: e, + count: this.numSplats * M, + renderer: A, + readback: U + }); } + }; } - // Ensures our PackedSplats.target render target has enough space to generate - // maxSplats total Gsplats, and reallocate if not large enough. - ensureGenerate(A) { - if (this.target && (A ?? 1) <= this.maxSplats) - return !1; - this.target && this.target.dispose(); - const I = BA(A ?? 1), { width: g, height: B, depth: C } = I; - return this.maxSplats = I.maxSplats, this.target = new G.WebGLArrayRenderTarget(g, B, C, { - depthBuffer: !1, - stencilBuffer: !1, - generateMipmaps: !1, - magFilter: G.NearestFilter, - minFilter: G.NearestFilter - }), this.target.texture.format = G.RGBAIntegerFormat, this.target.texture.type = G.UnsignedIntType, this.target.texture.internalFormat = "RGBA32UI", this.target.scissorTest = !0, !0; + // Check if this accumulator has exactly the same generator mapping as + // the previous one. If so, we can reuse the Gsplat sort order. + checkVersions(A) { + if (this.mapping.length !== A.length) + return { splatsUpdated: !0, mappingUpdated: !0 }; + const I = this.mapping.some((B, C) => { + const E = A[C]; + return B.node !== E.node || B.base !== E.base || B.count !== E.count || B.mappingVersion !== E.mappingVersion; + }); + return I ? { splatsUpdated: !0, mappingUpdated: !0 } : { splatsUpdated: this.mapping.some((B, C) => B.version !== A[C].version), mappingUpdated: I }; + } +}; +QA.viewCenterUniform = new UI({ value: new a.Vector3() }), QA.viewDirUniform = new UI({ value: new a.Vector3() }), QA.sortRadialUniform = new eg({ value: !0 }), QA.emptyTexture = (() => { + const { width: A, height: I, depth: g, maxSplats: B } = EA(1), C = new Uint32Array(B * 4), E = new a.DataArrayTexture( + C, + A, + I, + g + ); + return E.format = a.RGBAIntegerFormat, E.type = a.UnsignedIntType, E.internalFormat = "RGBA32UI", E.needsUpdate = !0, E; +})(), QA.emptyTextures = [QA.emptyTexture, QA.emptyTexture], QA.programExtTemplate = new hg( + yg().computeUvec4x2Vec4Template +), QA.programTemplate = new hg( + yg().computeUvec4Vec4Template +), QA.generatorProgram = /* @__PURE__ */ new WeakMap(), QA.fullScreenQuad = new OQ( + new a.RawShaderMaterial({ visible: !1 }) +); +let dI = QA; +class Zh extends a.InstancedBufferGeometry { + constructor() { + super(), this.setAttribute("position", new a.BufferAttribute(Oh, 3)), this.setIndex(new a.BufferAttribute(Wh, 1)); + } +} +const Oh = new Float32Array([ + -1, + -1, + 0, + 1, + -1, + 0, + 1, + 1, + 0, + -1, + 1, + 0 +]), Wh = new Uint16Array([0, 1, 2, 0, 2, 3]), DA = class DA extends a.Mesh { + constructor(A) { + if (!A) + throw new Error("SparkRenderer options are required"); + if (!A.renderer) + throw new Error("renderer is required in SparkRenderer options"); + const I = DA.makeUniforms(); + Object.assign(I, A.extraUniforms ?? {}); + const g = yg(), B = A.premultipliedAlpha ?? !0, C = new Zh(), E = new a.ShaderMaterial({ + glslVersion: a.GLSL3, + vertexShader: A.vertexShader ?? g.splatVertex, + fragmentShader: A.fragmentShader ?? g.splatFragment, + uniforms: I, + premultipliedAlpha: B, + transparent: A.transparent ?? !0, + depthTest: A.depthTest ?? !0, + depthWrite: A.depthWrite ?? !1, + side: a.DoubleSide, + allowOverride: !1 + }); + super(C, E), this.renderSize = new a.Vector2(), this.lastFrame = -1, this.updateTimeoutId = -1, this.orderingTexture = null, this.maxSplats = 0, this.activeSplats = 0, this.accumulators = [], this.sorting = !1, this.sortDirty = !1, this.lastSortTime = 0, this.sortWorker = null, this.sortTimeoutId = -1, this.sortedCenter = new a.Vector3().setScalar(Number.NEGATIVE_INFINITY), this.sortedDir = new a.Vector3().setScalar(0), this.readback32 = new Uint32Array(0), this.lastLodRaycastTime = 0, this.lodWorker = null, this.lodMeshes = [], this.lodDirty = !1, this.lodIds = /* @__PURE__ */ new Map(), this.lodIdToSplats = /* @__PURE__ */ new Map(), this.lodInitQueue = [], this.lodInstances = /* @__PURE__ */ new Map(), this.lodUpdates = [], this.lastTraverseTime = 0, this.pagerId = 0, this.superXY = 1, this.flushAfterGenerate = !1, this.flushAfterRead = !1, this.readPause = 1, this.sortPause = 0, this.sortDelay = 0, this.pageSizeWarning = !1, this.material = E, this.uniforms = I, this.frustumCulled = !1, this.renderer = A.renderer, this.onDirty = A.onDirty, this.dirty = !0, this.autoUpdate = A.autoUpdate ?? !0, this.preUpdate = A.preUpdate ?? !0, this.maxStdDev = A.maxStdDev ?? Math.sqrt(8), this.minPixelRadius = A.minPixelRadius ?? 0, this.maxPixelRadius = A.maxPixelRadius ?? 512, this.accumExtSplats = A.accumExtSplats ?? !1, this.covSplats = A.covSplats ?? !1, this.minAlpha = A.minAlpha ?? 0.5 * (1 / 255), this.enable2DGS = A.enable2DGS ?? !1, this.preBlurAmount = A.preBlurAmount ?? 0, this.blurAmount = A.blurAmount ?? 0.3, this.focalDistance = A.focalDistance ?? 0, this.apertureAngle = A.apertureAngle ?? 0, this.falloff = A.falloff ?? 1, this.clipXY = A.clipXY ?? 1.4, this.focalAdjustment = A.focalAdjustment ?? 1, this.sortRadial = A.sortRadial ?? !0, this.minSortIntervalMs = A.minSortIntervalMs ?? 0, this.enableLod = A.enableLod ?? !0, this.enableDriveLod = A.enableDriveLod ?? this.enableLod, this.enableLodFetching = A.enableLodFetching ?? !0, this.lodSplatCount = A.lodSplatCount, this.lodSplatScale = A.lodSplatScale ?? 1, this.lodRenderScale = A.lodRenderScale ?? 1, this.lodInflate = A.lodInflate ?? !1, this.lodTraverseMode = A.lodTraverseMode ?? "standard", this.pagedExtSplats = A.pagedExtSplats ?? !1; + const i = Wg() ? Gg() ? 96 : 128 : 256; + this.maxPagedSplats = A.maxPagedSplats ?? i * 65536, this.numLodFetchers = A.numLodFetchers ?? 3, this.behindFoveate = A.behindFoveate ?? 0.2, this.coneFov0 = A.coneFov0 ?? 90, this.coneFov = A.coneFov ?? 120, this.coneFoveate = A.coneFoveate ?? 0.4, this.lodRaycast = A.lodRaycast === void 0 ? Wg() ? 1e4 : 25e3 : A.lodRaycast, this.lodRaycastIntervalMs = A.lodRaycastIntervalMs ?? 500, this.timer = A.timer ?? new a.Timer(); + const o = { + extSplats: this.accumExtSplats, + covSplats: this.covSplats + }; + this.display = new dI(o), this.current = this.display, this.accumulators.push(new dI(o)), this.accumulators.push(new dI(o)); + const D = this.renderer.getContext().getExtension("WEBGL_provoking_vertex"); + if (D && D.provokingVertexWEBGL( + D.FIRST_VERTEX_CONVENTION_WEBGL + ), A.target) { + const { + width: s, + height: w, + doubleBuffer: G, + superXY: h, + ...c + } = A.target, t = Math.max(1, Math.min(4, h ?? 1)); + if (s * t > 8192 || w * t > 8192) + throw new Error("Target size too large"); + this.superXY = t; + const y = s * t, k = w * t, F = { + format: a.RGBAFormat, + type: a.UnsignedByteType, + colorSpace: a.SRGBColorSpace, + ...c + }; + this.target = new a.WebGLRenderTarget( + y, + k, + F + ), G && (this.backTarget = new a.WebGLRenderTarget( + y, + k, + F + )); + } + } + static makeUniforms() { + return { + // // number of active splats to render + // numSplats: { value: 0 }, + // Size of render viewport in pixels + renderSize: { value: new a.Vector2() }, + // Near and far plane distances + near: { value: 0.1 }, + far: { value: 1e3 }, + // SplatAccumulator to view transformation quaternion + renderToViewQuat: { value: new a.Quaternion() }, + // SplatAccumulator to view transformation translation + renderToViewPos: { value: new a.Vector3() }, + renderToViewBasis: { value: new a.Matrix3() }, + renderToViewOffset: { value: new a.Vector3() }, + // Maximum distance (in stddevs) from Gsplat center to render + maxStdDev: { value: 1 }, + // Minimum pixel radius for splat rendering + minPixelRadius: { value: 0 }, + // Maximum pixel radius for splat rendering + maxPixelRadius: { value: 512 }, + // Minimum alpha value for splat rendering + minAlpha: { value: 0.00196078431372549 }, + // Enable interpreting 0-thickness Gsplats as 2DGS + enable2DGS: { value: !1 }, + // Enable ray-splat max response evaluation + // enableRayEval: { value: false }, + // Inflate LoD splats so that opacity <= 1.0 + lodInflate: { value: !1 }, + // Add to projected 2D splat covariance diagonal (thickens and brightens) + preBlurAmount: { value: 0 }, + // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing) + blurAmount: { value: 0.3 }, + // Depth-of-field distance to focal plane + focalDistance: { value: 0 }, + // Full-width angle of aperture opening (in radians) + apertureAngle: { value: 0 }, + // Modulate Gaussian kernal falloff. 0 means "no falloff, flat shading", + // 1 is normal e^-x^2 falloff. + falloff: { value: 1 }, + // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds + clipXY: { value: 1.4 }, + // Debug renderSize scale factor + focalAdjustment: { value: 1 }, + // Whether to encode Gsplat with linear RGB (for environment mapping) + encodeLinear: { value: !1 }, + // Back-to-front sort ordering of splat indices + ordering: { type: "t", value: DA.emptyOrdering }, + enableExtSplats: { value: !1 }, + enableCovSplats: { value: !1 }, + // Gsplat collection to render + extSplats: { type: "t", value: dI.emptyTexture }, + extSplats2: { type: "t", value: dI.emptyTexture }, + // Time in seconds for time-based effects + time: { value: 0 }, + // Delta time in seconds since last frame + deltaTime: { value: 0 }, + // Debug flag that alternates each frame + debugFlag: { value: !1 } + }; } - // Given an array of splatCounts (.numSplats for each - // SplatGenerator/SplatMesh in the scene), compute a - // "mapping layout" in the composite array of generated outputs. - generateMapping(A) { - let I = 0; - const g = A.map((B) => { - const C = I, E = Math.ceil(B / P) * P; - return I += E, { base: C, count: B }; - }); - return { maxSplats: I, mapping: g }; + dispose() { + this.target && (this.target.dispose(), this.target = void 0), this.backTarget && (this.backTarget.dispose(), this.backTarget = void 0), this.orderingTexture && (this.orderingTexture.dispose(), this.orderingTexture = null); + const A = /* @__PURE__ */ new Set(); + A.add(this.display), A.add(this.current); + for (const g of this.accumulators) + A.add(g); + for (const g of A) + g.dispose(); + const I = this.lodInstances.values(); + this.lodInstances.clear(); + for (const g of I) + g.texture.dispose(); + this.sortWorker && (this.sortWorker.dispose(), this.sortWorker = null), this.lodWorker && (this.lodWorker.dispose(), this.lodWorker = null), this.pager && (this.pager.dispose(), this.pager = void 0); } - // Returns a THREE.DataArrayTexture representing the PackedSplats content as - // a Uint32x4 data array texture (2048 x 2048 x depth in size) - getTexture() { - return this.target ? this.target.texture : this.source || this.packedArray ? this.maybeUpdateSource() : YA.getEmptyArray; + setDirty() { + var A; + this.dirty || (this.dirty = !0, (A = this.onDirty) == null || A.call(this)); } - // Check if source texture needs to be created/updated - maybeUpdateSource() { - if (!this.packedArray) - throw new Error("No packed splats"); - if (this.needsUpdate || !this.source) { - if (this.needsUpdate = !1, this.source) { - const { width: A, height: I, depth: g } = this.source.image; - this.maxSplats !== A * I * g && (this.source.dispose(), this.source = null); - } - if (this.source) - this.packedArray.buffer !== this.source.image.data.buffer && (this.source.image.data = new Uint8Array(this.packedArray.buffer)); - else { - const { width: A, height: I, depth: g } = BA(this.maxSplats); - this.source = new G.DataArrayTexture( - this.packedArray, - A, - I, - g - ), this.source.format = G.RGBAIntegerFormat, this.source.type = G.UnsignedIntType, this.source.internalFormat = "RGBA32UI", this.source.needsUpdate = !0; + onBeforeRender(A, I, g) { + var y; + const B = DA.sparkOverride ?? this, C = A.info.render.frame, E = C !== B.lastFrame; + B.lastFrame = C; + const i = A.getRenderTarget(), o = vh(i); + if (i) { + if (B.renderSize.set( + i.width, + i.height + ), o && B.renderSize.x === 1 && B.renderSize.y === 1) { + const k = (y = A.xr.getSession()) == null ? void 0 : y.renderState.baseLayer; + k && (B.renderSize.x = k.framebufferWidth, B.renderSize.y = k.framebufferHeight); } - this.source.needsUpdate = !0; + } else + A.getDrawingBufferSize(B.renderSize); + this.uniforms.renderSize.value.copy(B.renderSize); + const D = g; + this.uniforms.near.value = D.near, this.uniforms.far.value = D.far; + const s = this.geometry; + s.instanceCount = B.activeSplats; + const w = new a.Matrix4(); + this.display.extSplats || w.makeTranslation(B.display.viewOrigin); + const c = g.matrixWorld.clone().invert().multiply(w); + c.decompose( + this.uniforms.renderToViewPos.value, + this.uniforms.renderToViewQuat.value, + new a.Vector3() + ), this.uniforms.renderToViewBasis.value.setFromMatrix4(c), this.uniforms.maxStdDev.value = B.maxStdDev, this.uniforms.minPixelRadius.value = B.minPixelRadius, this.uniforms.maxPixelRadius.value = B.maxPixelRadius, this.uniforms.minAlpha.value = B.minAlpha, this.uniforms.enable2DGS.value = B.enable2DGS, this.uniforms.lodInflate.value = B.lodInflate, this.uniforms.preBlurAmount.value = B.preBlurAmount, this.uniforms.blurAmount.value = B.blurAmount, this.uniforms.focalDistance.value = B.focalDistance, this.uniforms.apertureAngle.value = B.apertureAngle, this.uniforms.falloff.value = B.falloff, this.uniforms.clipXY.value = B.clipXY, this.uniforms.focalAdjustment.value = B.focalAdjustment; + const t = i === null ? A.outputColorSpace : o ? i.texture.colorSpace : a.ColorManagement.workingColorSpace; + if (this.uniforms.encodeLinear.value = t !== a.SRGBColorSpace, this.uniforms.ordering.value = B.orderingTexture ?? DA.emptyOrdering, this.uniforms.enableExtSplats.value = this.display.extSplats, this.uniforms.enableCovSplats.value = this.display.covSplats, this.display.extSplats) { + const k = B.display.getTextures(); + this.uniforms.extSplats.value = k[0], this.uniforms.extSplats2.value = k[1]; + } else { + const k = B.display.getTextures(); + this.uniforms.extSplats.value = k[0], this.uniforms.extSplats2.value = k[0]; } - return this.source; - } - // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator, - // generating it if necessary and caching the result. - prepareProgramMaterial(A) { - let I = YA.generatorProgram.get(A); - if (!I) { - const B = cA( - { index: "int" }, - {}, - ({ index: C }, E, { roots: D }) => { - A.inputs.index = C; - const i = A.outputs.gsplat, w = wB( - i, - this.dynoRgbMinMaxLnScaleMinMax - ); - D.push(w); - } - ); - YA.programTemplate || (YA.programTemplate = new Fg( - Ag().computeUvec4Template - )), I = new DQ({ - graph: B, - inputs: { index: "_index" }, - outputs: { output: "target" }, - template: YA.programTemplate - }), Object.assign(I.uniforms, { - targetLayer: { value: 0 }, - targetBase: { value: 0 }, - targetCount: { value: 0 } - }), YA.generatorProgram.set(A, I); + if (this.uniforms.time.value = B.display.time, this.uniforms.deltaTime.value = B.display.deltaTime, this.uniforms.debugFlag.value = performance.now() / 1e3 % 2 < 1, B.autoUpdate && E) { + const k = B.preUpdate && !A.xr.isPresenting, F = A.xr.isPresenting ? A.xr.getCamera() : g; + k ? B.updateInternal({ + scene: I, + camera: F, + autoUpdate: !0 + }) : B.updateTimeoutId === -1 && (B.updateTimeoutId = setTimeout(() => { + B.updateTimeoutId = -1, B.updateInternal({ + scene: I, + camera: F, + autoUpdate: !0 + }); + }, 1)); } - const g = I.prepareMaterial(); - return YA.fullScreenQuad.material = g, { program: I, material: g }; + B.dirty = !1; } - saveRenderState(A) { - return { - target: A.getRenderTarget(), - xrEnabled: A.xr.enabled, - autoClear: A.autoClear - }; + clearSplats() { + this.activeSplats = 0, this.display.numSplats = 0, this.setDirty(); } - resetRenderState(A, I) { - A.setRenderTarget(I.target), A.xr.enabled = I.xrEnabled, A.autoClear = I.autoClear; + async update({ + scene: A, + camera: I + }) { + await this.updateInternal({ scene: A, camera: I, autoUpdate: !1 }); } - // Executes a dyno program specified by generator which is any DynoBlock that - // maps { index: "int" } to { gsplat: Gsplat }. This is called in - // SparkRenderer.updateInternal() to re-generate Gsplats in the scene for - // SplatGenerator instances whose version is newer than what was generated - // for it last time. - generate({ - generator: A, - base: I, - count: g, - renderer: B + // /** + // * Provide additional cameras to prefetch paged splat chunks without + // * affecting main LOD selection. + // */ + // setPrefetchCameras(cameras?: THREE.Camera[], lodScaleMultiplier = 1.0) { + // const next = cameras?.filter(Boolean) ?? []; + // const sameCameras = + // this.prefetchCameras.length === next.length && + // this.prefetchCameras.every((camera, index) => camera === next[index]); + // if (sameCameras && this.prefetchLodScale === lodScaleMultiplier) { + // return; + // } + // this.prefetchCameras = next; + // this.prefetchLodScale = lodScaleMultiplier; + // this.invalidatePrefetchCache(); + // } + // /** + // * Invalidate the prefetch meshes cache. Call this when SplatMeshes are + // * added or removed from the scene. + // */ + // invalidatePrefetchCache() { + // this.prefetchMeshesCacheScene = undefined; + // } + async updateInternal({ + scene: A, + camera: I, + autoUpdate: g }) { - if (!this.target) - throw new Error("Target must be initialized with ensureSplats"); - if (I + g > this.maxSplats) - throw new Error("Base + count exceeds maxSplats"); - const { program: C, material: E } = this.prepareProgramMaterial(A); - C.update(); - const D = this.saveRenderState(B), i = Math.ceil((I + g) / P) * P, w = P * XA; - for (E.uniforms.targetBase.value = I, E.uniforms.targetCount.value = g; I < i; ) { - const s = Math.floor(I / w); - E.uniforms.targetLayer.value = s; - const o = s * w, y = Math.floor((I - o) / P), h = Math.min( - XA, - Math.ceil((i - o) / P) + const B = this.renderer; + this.timer.update(); + const C = this.time ?? this.timer.getElapsed(), E = I.getWorldPosition(new a.Vector3()), i = I.getWorldDirection(new a.Vector3()), o = E.distanceTo(this.sortedCenter) > 1e-3 || i.dot(this.sortedDir) < 0.999, D = this.accumulators.pop(); + if (!D) + throw new Error("No next accumulator"); + if (D === this.current) + throw new Error( + "Next accumulator is the same as the current accumulator" ); - this.target.scissor.set( - 0, - y, - P, - h - y - ), B.setRenderTarget(this.target, s), B.xr.enabled = !1, B.autoClear = !1, YA.fullScreenQuad.render(B), I += P * (h - y); - } - return this.resetRenderState(B, D), { nextBase: i }; - } - disposeLodSplats() { - this.lodSplats && (this.lodSplats.dispose(), this.lodSplats = void 0); - } - async createLodSplats({ - rgbaArray: A, - quality: I - } = {}) { - const g = typeof this.lod == "number" ? Math.max(1.1, Math.min(2, this.lod)) : I ? 1.75 : 1.5, B = this.packedArray.slice(), C = A ? (await A.getArray()).slice() : void 0, E = { - sh1: this.extra.sh1 ? this.extra.sh1.slice() : void 0, - sh2: this.extra.sh2 ? this.extra.sh2.slice() : void 0, - sh3: this.extra.sh3 ? this.extra.sh3.slice() : void 0 - }, D = await BQ.withWorker(async (w) => await w.call( - I ? "qualityLodPackedSplats" : "tinyLodPackedSplats", - { - numSplats: this.numSplats, - packedArray: B, - extra: E, - lodBase: g, - rgba: C, - encoding: this.splatEncoding ?? cg - } - )), i = new YA(D); - this.lodSplats && this.lodSplats.dispose(), this.lodSplats = i, this.nonLod = !0, this.lod = I ? "quality" : !0; + const { version: s, mappingVersion: w, visibleGenerators: G, generate: h } = D.prepareGenerate({ + renderer: B, + scene: A, + time: C, + camera: I, + sortRadial: this.sortRadial ?? !0, + renderSize: this.renderSize, + previous: this.current, + lodInstances: this.enableLod ? this.lodInstances : void 0 + }); + let c = !0; + const t = o || s !== this.current.version, y = w !== this.display.mappingVersion; + g && !t && (c = !1), y && this.sorting && (c = !1), c ? (h(), this.flushAfterGenerate && B.getContext().flush(), this.display.mappingVersion === D.mappingVersion ? (this.accumulators.push(this.display), this.display = D) : this.display !== this.current && this.accumulators.push(this.current), this.current = D, this.sortDirty = !0, this.setDirty()) : this.accumulators.push(D), this.enableDriveLod && this.driveLod({ visibleGenerators: G, camera: I, scene: A }), await this.driveSort(); } - extractSplats(A, I) { - const g = BA(A.length).maxSplats, B = new YA({ maxSplats: g }); - for (let C = 0; C < A.length; C++) { - const E = this.getSplat(A[C]); - if (I) { - let D = (A[C] >>> 16) * 0.61803398875; - D = D - Math.floor(D); - const i = Math.max(0, Math.min(1, Math.abs(D * 6 - 3) - 1)), w = Math.max(0, Math.min(1, Math.abs(D * 6 + 1) - 1)), s = Math.max(0, Math.min(1, Math.abs(D * 6 - 1) - 1)); - E.color.r *= i, E.color.g *= w, E.color.b *= s; - } - B.pushSplat( - E.center, - E.scales, - E.quaternion, - E.opacity, - E.color + async driveSort() { + if (this.sorting || !this.sortDirty) + return; + this.sortTimeoutId !== -1 && (clearTimeout(this.sortTimeoutId), this.sortTimeoutId = -1); + const A = performance.now(), I = this.lastSortTime ? this.lastSortTime + this.minSortIntervalMs : A; + if (A < I) { + this.sortTimeoutId = setTimeout(() => { + this.sortTimeoutId = -1, this.driveSort(); + }, I - A); + return; + } + this.sorting = !0, this.sortDirty = !1, this.lastSortTime = A, this.readPause > 0 && await new Promise((w) => setTimeout(w, this.readPause)); + const g = this.current; + this.sortedCenter.copy(g.viewOrigin), this.sortedDir.copy(g.viewDirection); + const { numSplats: B, maxSplats: C } = g, E = Math.max(1, Math.ceil(C / 16384)), i = E * 16384; + this.maxSplats = Math.max(this.maxSplats, i); + const o = new Uint32Array(this.maxSplats), D = cg.ensureBuffer(C, this.readback32); + this.readback32 = D, await this.readbackDepth({ + current: g, + renderer: this.renderer, + numSplats: B, + readback: D + }), this.sortPause > 0 && await new Promise((w) => setTimeout(w, this.sortPause)), this.sortWorker || (this.sortWorker = new Sg()); + const s = await this.sortWorker.call("sortSplats32", { + numSplats: B, + readback: D, + ordering: o + }); + if (this.sortDelay > 0 && await new Promise((w) => setTimeout(w, this.sortDelay)), this.readback32 = s.readback, this.activeSplats = s.activeSplats, this.orderingTexture && E > this.orderingTexture.image.height && (this.orderingTexture.dispose(), this.orderingTexture = null), this.orderingTexture) { + const w = this.renderer; + w.properties.has(this.orderingTexture) ? wB( + w, + this.orderingTexture, + 4096, + E, + s.ordering + ) : this.orderingTexture.needsUpdate = !0; + } else { + const w = new a.DataTexture( + s.ordering, + 4096, + E, + a.RGBAIntegerFormat, + a.UnsignedIntType ); + w.internalFormat = "RGBA32UI", w.needsUpdate = !0, this.orderingTexture = w; } - return B; + this.current.mappingVersion === g.mappingVersion && this.current.mappingVersion !== this.display.mappingVersion && (this.accumulators.push(this.display), this.display = this.current), this.sorting = !1, this.setDirty(), this.driveSort(); } -}; -YA.getEmptyArray = (() => { - const { width: A, height: I, depth: g, maxSplats: B } = BA(1), C = new Uint32Array(B * 4), E = new G.DataArrayTexture( - C, - A, - I, - g - ); - return E.format = G.RGBAIntegerFormat, E.type = G.UnsignedIntType, E.internalFormat = "RGBA32UI", E.needsUpdate = !0, E; -})(), YA.programTemplate = null, YA.generatorProgram = /* @__PURE__ */ new WeakMap(), YA.fullScreenQuad = new VQ( - new G.RawShaderMaterial({ visible: !1 }) -), YA.emptyUint32x4 = (() => { - const { width: A, height: I, depth: g, maxSplats: B } = BA(1), C = new Uint32Array(B * 4), E = new G.DataArrayTexture( - C, - A, - I, - g - ); - return E.format = G.RGBAIntegerFormat, E.type = G.UnsignedIntType, E.internalFormat = "RGBA32UI", E.needsUpdate = !0, E; -})(), YA.emptyUint32x2 = (() => { - const { width: A, height: I, depth: g, maxSplats: B } = BA(1), C = new Uint32Array(B * 2), E = new G.DataArrayTexture( - C, - A, - I, - g - ); - return E.format = G.RGIntegerFormat, E.type = G.UnsignedIntType, E.internalFormat = "RG32UI", E.needsUpdate = !0, E; -})(); -let $A = YA; -class MB extends x { - constructor({ packedSplats: A } = {}) { - super({ - key: "packedSplats", - type: tg, - globals: () => [CQ], - value: { - textureArray: $A.getEmptyArray, - numSplats: 0, - rgbMinMaxLnScaleMinMax: new G.Vector4( - 0, - 1, - pA, - fA - ), - lodOpacity: !1 - }, - update: (I) => { - var g, B, C, E, D, i, w, s, o, y, h, k; - return I.textureArray = ((g = this.packedSplats) == null ? void 0 : g.getTexture()) ?? $A.getEmptyArray, I.numSplats = ((B = this.packedSplats) == null ? void 0 : B.numSplats) ?? 0, I.rgbMinMaxLnScaleMinMax.set( - ((E = (C = this.packedSplats) == null ? void 0 : C.splatEncoding) == null ? void 0 : E.rgbMin) ?? 0, - ((i = (D = this.packedSplats) == null ? void 0 : D.splatEncoding) == null ? void 0 : i.rgbMax) ?? 1, - ((s = (w = this.packedSplats) == null ? void 0 : w.splatEncoding) == null ? void 0 : s.lnScaleMin) ?? pA, - ((y = (o = this.packedSplats) == null ? void 0 : o.splatEncoding) == null ? void 0 : y.lnScaleMax) ?? fA - ), I.lodOpacity = ((k = (h = this.packedSplats) == null ? void 0 : h.splatEncoding) == null ? void 0 : k.lodOpacity) ?? !1, I; - } - }), this.packedSplats = A; + ensureLodWorker() { + return this.lodWorker || (this.lodWorker = new Sg()), this.lodWorker; } -} -const BR = oA(` - vec3 evaluatePackedSH1(uvec2 packedData, vec3 viewDir, float sh1Max) { - // Extract sint7 values packed into 2 x uint32 - vec3 sh1_0 = vec3(ivec3( - int(packedData.x << 25u) >> 25, - int(packedData.x << 18u) >> 25, - int(packedData.x << 11u) >> 25 - )); - vec3 sh1_1 = vec3(ivec3( - int(packedData.x << 4u) >> 25, - int((packedData.x >> 3u) | (packedData.y << 29u)) >> 25, - int(packedData.y << 22u) >> 25 - )); - vec3 sh1_2 = vec3(ivec3( - int(packedData.y << 15u) >> 25, - int(packedData.y << 8u) >> 25, - int(packedData.y << 1u) >> 25 - )); - - vec3 rgb = sh1_0 * (-0.4886025 * viewDir.y) - + sh1_1 * (0.4886025 * viewDir.z) - + sh1_2 * (-0.4886025 * viewDir.x); - return rgb * (sh1Max / 63.0); + defaultSplatTarget() { + return DB() ? 5e5 : eE() ? 75e4 : iB() ? 1e6 : Gg() ? 15e5 : 25e5; } -`), CR = oA(` - vec3 evaluatePackedSH2(uvec4 packedData, vec3 viewDir, float sh2Max) { - // Extract sint8 values packed into 4 x uint32 - vec3 sh2_0 = vec3(ivec3( - int(packedData.x << 24u) >> 24, - int(packedData.x << 16u) >> 24, - int(packedData.x << 8u) >> 24 - )); - vec3 sh2_1 = vec3(ivec3( - int(packedData.x) >> 24, - int(packedData.y << 24u) >> 24, - int(packedData.y << 16u) >> 24 - )); - vec3 sh2_2 = vec3(ivec3( - int(packedData.y << 8u) >> 24, - int(packedData.y) >> 24, - int(packedData.z << 24u) >> 24 - )); - vec3 sh2_3 = vec3(ivec3( - int(packedData.z << 16u) >> 24, - int(packedData.z << 8u) >> 24, - int(packedData.z) >> 24 - )); - vec3 sh2_4 = vec3(ivec3( - int(packedData.w << 24u) >> 24, - int(packedData.w << 16u) >> 24, - int(packedData.w << 8u) >> 24 - )); - - vec3 rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y) - + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z) - + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y)) - + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z) - + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y)); - return rgb * (sh2Max / 127.0); + driveLod({ + visibleGenerators: A, + camera: I, + scene: g + }) { + var h, c; + const B = this.defaultSplatTarget(), E = (this.lodSplatCount ?? B) * this.lodSplatScale; + let i = 0; + if (I instanceof a.PerspectiveCamera) + i = 2 * Math.tan(0.5 * I.fov * Math.PI / 180) / this.renderSize.y; + else if (I instanceof a.OrthographicCamera) { + const t = (I.top - I.bottom) / I.zoom, y = (I.right - I.left) / I.zoom, k = t / Math.max(1, this.renderSize.y), F = y / Math.max(1, this.renderSize.x); + i = Math.min(F, k); + } + i *= this.lodRenderScale; + const o = new a.Vector3(), D = new a.Quaternion(); + if (this.current.viewToWorld.decompose(o, D, new a.Vector3()), this.lodPosOverride && o.copy(this.lodPosOverride), this.lodQuatOverride && D.copy(this.lodQuatOverride).normalize(), this.lastLod) { + (this.lastLod.pixelScaleLimit !== i || this.lastLod.maxSplats !== E) && (this.lodDirty = !0); + const t = o.distanceTo(this.lastLod.pos), y = Math.max(0, 1 - t / 1), k = D.dot(this.lastLod.quat), F = Math.max(0, 1 - (1 - k) / 0.01); + y * F < 0.999 && (this.lodDirty = !0); + } + const s = this.enableLod ? A.filter((t) => { + var y, k; + return t instanceof zA && (((y = t.packedSplats) == null ? void 0 : y.lodSplats) || ((k = t.extSplats) == null ? void 0 : k.lodSplats) || t.paged) && t.enableLod !== !1; + }) : [], w = s.some((t) => t.paged); + this.lodMeshes.length !== s.length ? this.lodDirty = !0 : s.some( + (t, y) => t !== this.lodMeshes[y].mesh || t.version > this.lodMeshes[y].version + ) && (this.lodDirty = !0), this.lodMeshes = s.map((t) => ({ + mesh: t, + version: t.version + 1 + })), this.lodInitQueue = []; + const G = performance.now(); + for (const t of s) { + const y = ((h = t.packedSplats) == null ? void 0 : h.lodSplats) ?? ((c = t.extSplats) == null ? void 0 : c.lodSplats) ?? t.paged; + if (y) { + const k = this.lodIds.get(y); + k ? k.lastTouched = G : this.lodInitQueue.push(y); + } + } + this.ensureLodWorker().tryExclusive(async (t) => { + if (w && !this.pager) { + this.pager = new eI({ + renderer: this.renderer, + extSplats: this.pagedExtSplats, + maxSplats: this.maxPagedSplats, + numFetchers: this.numLodFetchers + }); + const { lodId: y } = await t.call("newLodTree", { + capacity: this.pager.maxSplats + }); + this.pagerId = y; + } + if (this.pager) + for (const { mesh: y } of this.lodMeshes) + y.paged && !y.paged.pager && (y.paged.pager = this.pager); + if (this.lodInitQueue.length > 0) { + const y = this.lodInitQueue; + for (this.lodInitQueue = []; y.length > 0; ) { + const k = y.shift(); + k && (await this.initLodTree(t, k), this.lodDirty = !0); + } + } + if (this.pager) { + const y = this.pager.consumeLodTreeUpdates(); + for (const { splats: k, page: F, chunk: R, numSplats: S, lodTree: N } of y) { + const M = this.lodIds.get(k); + M && (N && R === 0 && (M.rootPage = F), this.lodUpdates.push({ + lodId: M.lodId, + pageBase: F * this.pager.pageSplats, + chunkBase: R * this.pager.pageSplats, + count: S, + lodTreeData: N + })); + } + } + if (this.lodUpdates.length > 0) { + const y = this.lodUpdates; + this.lodUpdates = [], await t.call("updateLodTrees", { ranges: y }), this.lodDirty = !0; + } + if (this.lodDirty) { + const y = performance.now(), k = new a.Vector3(); + if (this.lastLod) { + const F = Math.max(1, y - this.lastLod.timestamp); + k.copy(o).sub(this.lastLod.pos).multiplyScalar(this.lastTraverseTime / F); + } + this.lastLod = { + pos: o, + quat: D, + pixelScaleLimit: i, + maxSplats: E, + timestamp: y + }, this.lodDirty = !1, await this.updateLodInstances( + t, + k, + s, + E, + o, + D, + i + ), this.currentLod = this.lastLod, this.setDirty(); + } + await this.cleanupLodTrees(t); + }); } -`), ER = oA(` - vec3 evaluatePackedSH3(uvec4 packedData, vec3 viewDir, float sh3Max) { - // Extract sint6 values packed into 4 x uint32 - vec3 sh3_0 = vec3(ivec3( - int(packedData.x << 26u) >> 26, - int(packedData.x << 20u) >> 26, - int(packedData.x << 14u) >> 26 - )); - vec3 sh3_1 = vec3(ivec3( - int(packedData.x << 8u) >> 26, - int(packedData.x << 2u) >> 26, - int((packedData.x >> 4u) | (packedData.y << 28u)) >> 26 - )); - vec3 sh3_2 = vec3(ivec3( - int(packedData.y << 22u) >> 26, - int(packedData.y << 16u) >> 26, - int(packedData.y << 10u) >> 26 - )); - vec3 sh3_3 = vec3(ivec3( - int(packedData.y << 4u) >> 26, - int((packedData.y >> 2u) | (packedData.z << 30u)) >> 26, - int(packedData.z << 24u) >> 26 - )); - vec3 sh3_4 = vec3(ivec3( - int(packedData.z << 18u) >> 26, - int(packedData.z << 12u) >> 26, - int(packedData.z << 6u) >> 26 - )); - vec3 sh3_5 = vec3(ivec3( - int(packedData.z) >> 26, - int(packedData.w << 26u) >> 26, - int(packedData.w << 20u) >> 26 - )); - vec3 sh3_6 = vec3(ivec3( - int(packedData.w << 14u) >> 26, - int(packedData.w << 8u) >> 26, - int(packedData.w << 2u) >> 26 - )); - - float xx = viewDir.x * viewDir.x; - float yy = viewDir.y * viewDir.y; - float zz = viewDir.z * viewDir.z; - float xy = viewDir.x * viewDir.y; - float yz = viewDir.y * viewDir.z; - float zx = viewDir.z * viewDir.x; - - vec3 rgb = sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy)) - + sh3_1 * (2.8906114 * xy * viewDir.z) + - + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy)) - + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) - + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy)) - + sh3_5 * (1.4453057 * viewDir.z * (xx - yy)) - + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy)); - return rgb * (sh3Max / 31.0); + async initLodTree(A, I) { + if (I instanceof tI || I instanceof wI) { + const { lodId: g } = await A.call("initLodTree", { + numSplats: I.numSplats ?? 0, + lodTree: I.extra.lodTree.slice() + }); + this.lodIds.set(I, { lodId: g, lastTouched: performance.now() }), this.lodIdToSplats.set(g, I); + } else { + const { lodId: g } = await A.call("newSharedLodTree", { + lodId: this.pagerId + }); + this.lodIds.set(I, { lodId: g, lastTouched: performance.now() }), this.lodIdToSplats.set(g, I); + } } -`); -function Pw({ - coord: Q, - viewDir: A, - numSh: I, - sh1Texture: g, - sh2Texture: B, - sh3Texture: C, - shMax: E -}) { - return new d({ - inTypes: { - coord: "ivec3", - viewDir: "vec3", - numSh: "int", - sh1Texture: "usampler2DArray", - sh2Texture: "usampler2DArray", - sh3Texture: "usampler2DArray", - shMax: "vec3" - }, - outTypes: { rgb: "vec3" }, - inputs: { - coord: Q, - viewDir: A, - numSh: I, - sh1Texture: g, - sh2Texture: B, - sh3Texture: C, - shMax: E - }, - globals: () => [ - BR, - CR, - ER - ], - statements: ({ inputs: D, outputs: i }) => { - const w = ["vec3 rgb = vec3(0.0);"]; - return D.sh1Texture && (w.push( - ...z(` - if (${D.numSh} >= 1) { - vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${D.sh1Texture}, ${D.coord}, 0).rg, ${D.viewDir}, ${D.shMax}.x); - rgb += sh1Rgb; - `) - ), D.sh2Texture && (w.push( - ...z(` - if (${D.numSh} >= 2) { - vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${D.sh2Texture}, ${D.coord}, 0), ${D.viewDir}, ${D.shMax}.y); - rgb += sh2Rgb; - `) - ), D.sh3Texture && w.push( - ...z(` - if (${D.numSh} >= 3) { - vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${D.sh3Texture}, ${D.coord}, 0), ${D.viewDir}, ${D.shMax}.z); - rgb += sh3Rgb; - } - `) - ), w.push("}")), w.push("}")), w.push(`${i.rgb} = rgb;`), w; + async updateLodInstances(A, I, g, B, C, E, i) { + const o = /* @__PURE__ */ new Map(), D = new a.Matrix4().compose( + C, + E, + new a.Vector3().setScalar(1) + ), s = g.reduce( + (k, F) => { + var M, U; + o.set(F.uuid, F); + const R = F.matrixWorld.clone().invert().multiply(D), S = ((M = F.packedSplats) == null ? void 0 : M.lodSplats) ?? ((U = F.extSplats) == null ? void 0 : U.lodSplats) ?? F.paged; + if (!S) + return k; + const N = this.lodIds.get(S); + return !N || this.pager && F.paged && N.rootPage === void 0 || (k[F.uuid] = { + instanceId: F.uuid, + lodId: N.lodId, + rootPage: N.rootPage, + viewToObjectCols: R.elements, + lodScale: F.lodScale, + behindFoveate: F.behindFoveate ?? this.behindFoveate, + coneFov0: F.coneFov0 ?? this.coneFov0, + coneFov: F.coneFov ?? this.coneFov, + coneFoveate: F.coneFoveate ?? this.coneFoveate + }), k; + }, + {} + ), w = performance.now(), G = await A.call("traverseLodTrees", { + maxSplats: B, + pixelScaleLimit: i, + lastPixelLimit: this.lastPixelLimit, + instances: s, + traverseMode: this.lodTraverseMode + }); + this.lastTraverseTime = performance.now() - w; + const { keyIndices: h, chunks: c, pixelLimit: t } = G; + this.lastPixelLimit = t; + const y = Object.values(h).reduce( + (k, { numSplats: F }) => k + F, + 0 + ); + if (this.updateLodIndices(o, h), this.pager) { + this.pager.processUploads(); + const k = g.map((F) => { + if (!F.paged || !this.pager) + return null; + const R = F.getWorldPosition(new a.Vector3()); + return { + splats: F.paged, + distance: R.distanceTo(C) + }; + }).filter((F) => F !== null); + !this.pageSizeWarning && k.length > this.pager.maxPages && (this.pageSizeWarning = !0, console.warn( + `# paged SplatMeshes exceeds maxPages: ${k.length} > ${this.pager.maxPages}` + )), k.sort((F, R) => F.distance - R.distance), this.pager.fetchPriority = k.map(({ splats: F }) => ({ + splats: F, + chunk: 0 + })); + for (const [F, R] of c) { + const S = this.lodIdToSplats.get(F); + S instanceof ag && R !== 0 && this.pager.fetchPriority.push({ splats: S, chunk: R }); + } + this.pager.autoDrive = this.enableLodFetching, this.enableLodFetching && this.pager.driveFetchers(); } - }).outputs; -} -const JI = class JI { - constructor(A) { - if (this.lastTime = null, this.encodeLinear = !1, this.superXY = 1, this.display = null, this.sorting = null, this.pending = null, this.sortingCheck = !1, this.readback16 = new Uint16Array(0), this.readback32 = new Uint32Array(0), this.spark = A.spark, this.camera = A.camera, this.viewToWorld = A.viewToWorld ?? new G.Matrix4(), A.target) { - const { width: I, height: g, doubleBuffer: B } = A.target, C = Math.max(1, Math.min(4, A.target.superXY ?? 1)); - if (this.superXY = C, I * C > 8192 || g * C > 8192) - throw new Error("Target size too large"); - this.target = new G.WebGLRenderTarget( - I * C, - g * C, - { - format: G.RGBAFormat, - type: G.UnsignedByteType, - colorSpace: G.SRGBColorSpace - } - ), B && (this.back = new G.WebGLRenderTarget( - I * C, - g * C, - { - format: G.RGBAFormat, - type: G.UnsignedByteType, - colorSpace: G.SRGBColorSpace + if (this.lodRaycast && performance.now() - this.lastLodRaycastTime >= this.lodRaycastIntervalMs) { + this.lastLodRaycastTime = performance.now(); + const k = performance.now(), F = await A.call("traverseLodTrees", { + maxSplats: Math.min(this.lodRaycast, Math.round(y * 0.1)), + pixelScaleLimit: i, + instances: s + }); + performance.now() - k; + const { keyIndices: R } = F; + Object.values(R).reduce( + (S, { numSplats: N }) => S + N, + 0 + ); + for (const [S, N] of Object.entries(R)) { + const M = o.get(S); + M.raycastIndices = N; + } + } + } + async cleanupLodTrees(A) { + var C; + const g = performance.now(); + let B = null; + for (const [E, i] of this.lodIds.entries()) + (B == null || i.lastTouched < B.lastTouched) && (B = { + splats: E, + lastTouched: i.lastTouched, + lodId: i.lodId + }); + if (!(!B || B.lastTouched > g - 3e3)) { + this.lodIds.delete(B.splats), this.lodIdToSplats.delete(B.lodId); + for (const [E, i] of this.lodInstances.entries()) + i.lodId === B.lodId && (i.texture.dispose(), this.lodInstances.delete(E)); + B.splats instanceof ag && ((C = this.pager) == null || C.removeSplats(B.splats)), await A.call("disposeLodTree", { lodId: B.lodId }); + } + } + updateLodIndices(A, I) { + for (const [g, B] of Object.entries(I)) { + const { lodId: C, numSplats: E, indices: i } = B, o = A.get(g); + if (o.paged) + o.paged.update(E, i); + else { + let D = this.lodInstances.get(o); + D && i.length > D.indices.length && (D.texture.dispose(), D = void 0); + const s = Math.ceil(i.length / 16384); + if (D) { + D.numSplats = E; + const w = this.renderer, G = w.getContext(); + if (w.properties.has(D.texture)) { + const c = w.properties.get(D.texture).__webglTexture; + if (!c) + throw new Error("lodIndices texture not found"); + w.state.activeTexture(G.TEXTURE0), w.state.bindTexture(G.TEXTURE_2D, c), G.bindBuffer(G.PIXEL_UNPACK_BUFFER, null), G.pixelStorei(G.UNPACK_FLIP_Y_WEBGL, !1), G.texSubImage2D( + G.TEXTURE_2D, + 0, + 0, + 0, + 4096, + s, + G.RGBA_INTEGER, + G.UNSIGNED_INT, + i + ), w.state.bindTexture(G.TEXTURE_2D, null); + } + } else { + const w = s * 16384; + if (i.length !== w) + throw new Error("Indices length != capacity"); + const G = new a.DataTexture( + i, + 4096, + s, + a.RGBAIntegerFormat, + a.UnsignedIntType + ); + G.internalFormat = "RGBA32UI", G.needsUpdate = !0, D = { lodId: C, numSplats: E, indices: i, texture: G }, this.lodInstances.set(o, D); } - )), this.encodeLinear = !0; + } + o.updateMappingVersion(); } - this.onTextureUpdated = A.onTextureUpdated, this.sortRadial = A.sortRadial ?? !0, this.sortDistance = A.sortDistance, this.sortCoorient = A.sortCoorient, this.depthBias = A.depthBias, this.sort360 = A.sort360, this.sort32 = A.sort32, this.stochastic = A.stochastic ?? !1, this.orderingFreelist = new aC({ - allocate: (I) => new Uint32Array(I), - valid: (I, g) => I.length === g - }), this.autoUpdate = !1, this.setAutoUpdate(A.autoUpdate ?? !1); } - // Call this when you are done with the SparkViewpoint and want to - // free up its resources (GPU targets, pixel buffers, etc.) - dispose() { - var A; - this.setAutoUpdate(!1), this.target && (this.target.dispose(), this.target = void 0), this.back && (this.back.dispose(), this.back = void 0), this.display && (this.spark.releaseAccumulator(this.display.accumulator), this.display.geometry.dispose(), this.display = null), (A = this.pending) != null && A.accumulator && (this.spark.releaseAccumulator(this.pending.accumulator), this.pending = null); - } - // Use this function to change whether this viewpoint will auto-update - // its sort order whenever the attached SparkRenderer updates the Gsplats. - // Turn this on or off depending on whether you expect to do renders from - // this viewpoint most frames. - setAutoUpdate(A) { - !this.autoUpdate && A ? this.spark.autoViewpoints.push(this) : this.autoUpdate && !A && (this.spark.autoViewpoints = this.spark.autoViewpoints.filter( - (I) => I !== this - )), this.autoUpdate = A; - } - // See below async prepareRenderPixels() for explanation of parameters. - // Awaiting this method updates the Gsplats in the scene and performs a sort of the - // Gsplats from this viewpoint, preparing it for a subsequent this.renderTarget() - // call in the same tick. - async prepare({ - scene: A, - camera: I, - viewToWorld: g, - update: B, - forceOrigin: C + async readbackDepth({ + current: A, + renderer: I, + numSplats: g, + readback: B }) { - for (g ? this.viewToWorld = g : (this.camera = I ?? this.camera, this.camera && (this.camera.updateMatrixWorld(), this.viewToWorld = this.camera.matrixWorld.clone())); B ?? !0; ) { - const D = C ? this.viewToWorld : this.spark.matrixWorld; - if (this.spark.updateInternal({ scene: A, originToWorld: D })) - break; - await new Promise((w) => setTimeout(w, 10)); + if (!I) + throw new Error("No renderer"); + if (!A.target) + throw new Error("No target"); + const C = Math.ceil(g / P) * P; + if (B.byteLength < C * 4) + throw new Error( + `Readback buffer too small: ${B.byteLength} < ${C * 4}` + ); + const E = new Uint8Array(B.buffer), i = this.saveRenderState(I), o = P * ZA; + let D = 0; + const s = []; + for (; D < g; ) { + const w = Math.floor(D / o), G = w * o, h = Math.min( + ZA, + Math.ceil((g - G) / P) + ), c = P * h * 4, t = E.subarray( + G * 4, + G * 4 + c + ); + I.setRenderTarget(A.target, w); + const y = I.readRenderTargetPixelsAsync( + A.target, + 0, + 0, + P, + h, + t, + void 0, + A.extSplats ? 2 : 1 + ); + s.push(y), this.flushAfterRead && I.getContext().flush(), D += P * h; + } + return this.resetRenderState(I, i), Promise.all(s).then(() => B); + } + saveRenderState(A) { + return { + target: A.getRenderTarget(), + xrEnabled: A.xr.enabled, + autoClear: A.autoClear + }; + } + resetRenderState(A, I) { + A.setRenderTarget(I.target), A.xr.enabled = I.xrEnabled, A.autoClear = I.autoClear; + } + render(A, I) { + try { + DA.sparkOverride = this, this.renderer.render(A, I); + } finally { + DA.sparkOverride = void 0; } - const E = this.spark.active; - E.refCount += 1, await this.sortUpdate({ accumulator: E, viewToWorld: this.viewToWorld }), this.spark.releaseAccumulator(E); } - // Render out the viewpoint to the view target RGBA buffer. - // Swaps buffers if doubleBuffer: true was set. - // Calls onTextureUpdated(texture) with the resulting texture. renderTarget({ scene: A, camera: I }) { - var C; - const g = this.back ?? this.target; + const g = this.backTarget ?? this.target; if (!g) - throw new Error("Must initialize SparkViewpoint with target"); - if (I = I ?? this.camera, !I) - throw new Error("Must provide camera"); - if (I instanceof G.PerspectiveCamera) { - const E = new G.PerspectiveCamera().copy(I, !1); - E.aspect = g.width / g.height, E.updateProjectionMatrix(), I = E; + throw new Error("No target"); + const B = this.renderer.getRenderTarget(); + try { + this.renderer.setRenderTarget(g), DA.sparkOverride = this, this.renderer.render(A, I); + } finally { + DA.sparkOverride = void 0, this.renderer.setRenderTarget(B); + } + return g !== this.target && ([this.target, this.backTarget] = [this.backTarget, this.target]), g; + } + // Read back the previously rendered target image as a Uint8Array of packed + // RGBA values (in that order). Subsequent calls to this.readTarget() + // will reuse the same buffers to minimize memory allocations. + async readTarget() { + if (!this.target) + throw new Error("Must initialize with target"); + const { width: A, height: I } = this.target, g = A * I * 4; + (!this.superPixels || this.superPixels.length < g) && (this.superPixels = new Uint8Array(g)); + const B = this.superPixels; + await this.renderer.readRenderTargetPixelsAsync( + this.target, + 0, + 0, + A, + I, + B + ); + const { superXY: C } = this; + if (C === 1) + return B; + const E = A / C, i = I / C, o = E * i * 4; + (!this.targetPixels || this.targetPixels.length < o) && (this.targetPixels = new Uint8Array(o)); + const D = this.targetPixels, s = C * C; + for (let w = 0; w < i; w++) { + const G = w * E; + for (let h = 0; h < E; h++) { + const c = h * C; + let t = 0, y = 0, k = 0, F = 0; + for (let S = 0; S < C; S++) { + const N = (w * C + S) * A; + for (let M = 0; M < C; M++) { + const U = (N + c + M) * 4; + t += B[U], y += B[U + 1], k += B[U + 2], F += B[U + 3]; + } + } + const R = (G + h) * 4; + D[R] = t / s, D[R + 1] = y / s, D[R + 2] = k / s, D[R + 3] = F / s; + } + } + return D; + } + async renderReadTarget({ + scene: A, + camera: I + }) { + return this.renderTarget({ scene: A, camera: I }), this.readTarget(); + } + // Renders out the scene to a cube map that can be used for + // Image-based lighting or similar applications. First optionally updates Gsplats, + // sorts them with respect to the provided worldCenter, renders 6 cube faces. + async renderCubeMap({ + scene: A, + worldCenter: I, + size: g = 256, + near: B = 0.1, + far: C = 1e3, + hideObjects: E = [], + update: i = !0, + filter: o = !1 + }) { + if (!DA.cubeRender || DA.cubeRender.target.width !== g || DA.cubeRender.near !== B || DA.cubeRender.far !== C) { + DA.cubeRender && DA.cubeRender.target.dispose(); + const G = new a.WebGLCubeRenderTarget(g, { + format: a.RGBAFormat, + type: a.UnsignedByteType, + generateMipmaps: o, + minFilter: o ? a.LinearMipMapLinearFilter : a.LinearFilter, + magFilter: a.LinearFilter, + colorSpace: o ? a.LinearSRGBColorSpace : a.SRGBColorSpace + }), h = new a.CubeCamera(B, C, G); + DA.cubeRender = { target: G, cubeCamera: h, near: B, far: C }; + } + const { target: D, cubeCamera: s } = DA.cubeRender; + s.position.copy(I); + const w = /* @__PURE__ */ new Map(); + for (const G of E) + w.set(G, G.visible), G.visible = !1; + if (i) { + const G = new a.Camera(); + G.position.copy(I), await this.update({ scene: A, camera: G }); } - this.viewToWorld = I.matrixWorld.clone(); - const B = this.spark.renderer.getRenderTarget(); try { - this.spark.renderer.setRenderTarget(g), this.spark.prepareViewpoint(this), this.spark.renderer.render(A, I); + DA.sparkOverride = this, s.update(this.renderer, A); } finally { - this.spark.prepareViewpoint(this.spark.defaultView), this.spark.renderer.setRenderTarget(B); + DA.sparkOverride = void 0; + } + for (const [G, h] of w.entries()) + G.visible = h; + return D.texture; + } + async readCubeTargets() { + if (!DA.cubeRender) + throw new Error("No cube render"); + const A = DA.cubeRender.target.texture, I = [], g = []; + for (let B = 0; B < A.images.length; ++B) { + const { width: C, height: E } = A.images[B], i = C * E * 4, o = new Uint8Array(i); + g.push(o); + const D = this.renderer.readRenderTargetPixelsAsync( + DA.cubeRender.target, + 0, + 0, + C, + E, + o, + B + ); + I.push(D); + } + return await Promise.all(I), g; + } + // Renders out the scene to an environment map that can be used for + // Image-based lighting or similar applications. First optionally updates Gsplats, + // sorts them with respect to the provided worldCenter, renders 6 cube faces, + // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture + // that can assigned directly to a THREE.MeshStandardMaterial.envMap property. + async renderEnvMap({ + scene: A, + worldCenter: I, + size: g = 256, + near: B = 0.1, + far: C = 1e3, + hideObjects: E = [], + update: i = !0 + }) { + var D; + const o = await this.renderCubeMap({ + scene: A, + worldCenter: I, + size: g, + near: B, + far: C, + hideObjects: E, + update: i, + filter: !0 + }); + return DA.pmrem || (DA.pmrem = new a.PMREMGenerator(this.renderer)), (D = DA.pmrem) == null ? void 0 : D.fromCubemap(o).texture; + } + // Utility function to recursively set the envMap property for any + // THREE.MeshStandardMaterial within the subtree of root. + recurseSetEnvMap(A, I) { + A.traverse((g) => { + if (g instanceof a.Mesh) + if (Array.isArray(g.material)) + for (const B of g.material) + B instanceof a.MeshStandardMaterial && (B.envMap = I); + else + g.material instanceof a.MeshStandardMaterial && (g.material.envMap = I); + }); + } + async getLodTreeLevel(A, I, g = !1) { + var E, i; + const B = this.lodInstances.get(A); + if (!B) + return null; + const C = await this.ensureLodWorker().exclusive(async (o) => await o.call("getLodTreeLevel", { + lodId: B.lodId, + level: I + })); + if ((E = A.packedSplats) != null && E.lodSplats) { + const o = A.packedSplats.lodSplats.extractSplats( + C.indices, + g + ); + return new zA({ packedSplats: o }); + } + if ((i = A.extSplats) != null && i.lodSplats) { + const o = A.extSplats.lodSplats.extractSplats( + C.indices, + g + ); + return new zA({ extSplats: o }); + } + throw new Error( + "Only LoD-enabled PackedSplats and ExtSplats are supported" + ); + } + get premultipliedAlpha() { + return this.material.premultipliedAlpha; + } + set premultipliedAlpha(A) { + this.material.premultipliedAlpha !== A && (this.material.premultipliedAlpha = A, this.material.needsUpdate = !0); + } +}; +DA.emptyOrdering = (() => { + const I = new Uint32Array(16384), g = new a.DataTexture(I, 4096, 1); + return g.format = a.RGBAIntegerFormat, g.type = a.UnsignedIntType, g.internalFormat = "RGBA32UI", g.needsUpdate = !0, g; +})(), DA.cubeRender = null, DA.pmrem = null; +let Xg = DA; +function vh(Q) { + return Q == null ? void 0 : Q.isXRRenderTarget; +} +const lB = [ + "char", + "uchar", + "short", + "ushort", + "int", + "uint", + "float", + "double" +], VI = class VI { + // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet + constructor({ fileBytes: A }) { + this.header = "", this.littleEndian = !0, this.elements = {}, this.comments = [], this.data = null, this.numSplats = 0, this.fileBytes = A instanceof ArrayBuffer ? new Uint8Array(A) : A; + } + // Identify and parse the PLY text header (assumed to be <64KB in size). + // this.elements will contain all the elements in the file, typically + // "vertex" contains the Gsplat data. + async parseHeader() { + const I = new ReadableStream({ + start: (E) => { + E.enqueue(this.fileBytes.slice(0, 65536)), E.close(); + } + }).pipeThrough(new TextDecoderStream()).getReader(); + this.header = ""; + const g = `end_header +`; + for (; ; ) { + const { value: E, done: i } = await I.read(); + if (i) + throw new Error("Failed to read header"); + this.header += E; + const o = this.header.indexOf(g); + if (o >= 0) { + this.header = this.header.slice(0, o + g.length); + break; + } } - g !== this.target && ([this.target, this.back] = [this.back, this.target]), (C = this.onTextureUpdated) == null || C.call(this, g.texture); - } - // Read back the previously rendered target image as a Uint8Array of packed - // RGBA values (in that order). If superXY was set greater than 1 then - // downsampling is performed in the target pixel array with simple averaging - // to derive the returned pixel values. Subsequent calls to this.readTarget() - // will reuse the same buffers to minimize memory allocations. - async readTarget() { - if (!this.target) - throw new Error("Must initialize SparkViewpoint with target"); - const { width: A, height: I } = this.target, g = A * I * 4; - (!this.superPixels || this.superPixels.length < g) && (this.superPixels = new Uint8Array(g)), await this.spark.renderer.readRenderTargetPixelsAsync( - this.target, - 0, - 0, - A, - I, - this.superPixels - ); - const { superXY: B } = this; - if (B === 1) - return this.superPixels; - const C = A / B, E = I / B, D = C * E * 4; - (!this.pixels || this.pixels.length < D) && (this.pixels = new Uint8Array(D)); - const { superPixels: i, pixels: w } = this, s = B * B; - for (let o = 0; o < E; o++) { - const y = o * C; - for (let h = 0; h < C; h++) { - const k = h * B; - let R = 0, F = 0, a = 0, S = 0; - for (let c = 0; c < B; c++) { - const N = (o * B + c) * this.target.width; - for (let U = 0; U < B; U++) { - const J = (N + k + U) * 4; - R += i[J], F += i[J + 1], a += i[J + 2], S += i[J + 3]; - } + const B = new TextEncoder().encode(this.header).length; + this.data = new DataView(this.fileBytes.buffer, B), this.elements = {}; + let C = null; + this.comments = [], this.header.trim().split(` +`).forEach((E, i) => { + const o = E.trim(); + if (i === 0) { + if (o !== "ply") + throw new Error("Invalid PLY header"); + return; + } + if (o.length === 0) + return; + const D = o.split(" "); + switch (D[0]) { + case "format": + if (D[1] === "binary_little_endian") + this.littleEndian = !0; + else if (D[1] === "binary_big_endian") + this.littleEndian = !1; + else + throw new Error(`Unsupported PLY format: ${D[1]}`); + if (D[2] !== "1.0") + throw new Error(`Unsupported PLY version: ${D[2]}`); + break; + case "end_header": + break; + case "comment": + this.comments.push(o.slice(8)); + break; + case "element": { + const s = D[1]; + C = { + name: s, + count: Number.parseInt(D[2]), + properties: {} + }, this.elements[s] = C; + break; } - const M = (y + h) * 4; - w[M] = R / s, w[M + 1] = F / s, w[M + 2] = a / s, w[M + 3] = S / s; + case "property": + if (C == null) + throw new Error("Property must be inside an element"); + D[1] === "list" ? C.properties[D[4]] = { + isList: !0, + type: D[3], + countType: D[2] + } : C.properties[D[2]] = { + isList: !1, + type: D[1] + }; + break; } - } - return w; - } - // Render out a viewpoint as a Uint8Array of RGBA values for the provided scene - // and any camera/viewToWorld viewpoint overrides. By default update is true, - // which triggers its SparkRenderer to check and potentially update the Gsplats. - // Setting update to false disables this and sorts the Gsplats as they are. - // Setting forceOrigin (default: false) to true forces the view update to - // recalculate the splats with this view origin, potentially altering any - // view-dependent effects. If you expect view-dependent effects to play a role - // in the rendering quality, enable this. - // - // Underneath, prepareRenderPixels() simply calls await this.prepare(...), - // this.renderTarget(...), and finally returns the result this.readTarget(), - // a Promise to a Uint8Array with RGBA values for all the pixels (potentially - // downsampled if the superXY parameter was used). These steps can also be called - // manually, for example if you need to alter the scene before and after - // this.renderTarget(...) to hide UI elements from being rendered. - async prepareRenderPixels({ - scene: A, - camera: I, - viewToWorld: g, - update: B, - forceOrigin: C - }) { - return await this.prepare({ scene: A, camera: I, viewToWorld: g, update: B, forceOrigin: C }), this.renderTarget({ scene: A, camera: I }), this.readTarget(); - } - // This is called automatically by SparkRenderer, there is no need to call it! - // The method cannot be private because then SparkRenderer would - // not be able to call it. - autoPoll({ accumulator: A }) { - var C, E, D; - this.camera && (this.camera.updateMatrixWorld(), this.viewToWorld = this.camera.matrixWorld.clone()); - let I = !1, g = !1; - if (!this.display) - I = !0; - else if (A) { - I = !0; - const { mappingVersion: i } = this.display.accumulator; - A.mappingVersion === i && (A.refCount += 1, this.spark.releaseAccumulator(this.display.accumulator), this.display.accumulator = A, this.display.viewToWorld.copy(this.viewToWorld), g = !0, this.spark.viewpoint === this && this.spark.prepareViewpoint(this)); - } - const B = ((C = this.sorting) == null ? void 0 : C.viewToWorld) ?? ((E = this.display) == null ? void 0 : E.viewToWorld); - B && !Zg({ - matrix1: this.viewToWorld, - matrix2: B, - // By default update sort each 1 cm - maxDistance: this.sortDistance ?? 0.01, - // By default for radial sort, update for intermittent movement so that - // we bring back splats culled by being behind the camera. - // For depth sort, small rotations can change sort order a lot, so - // update sort for even small rotations. - minCoorient: this.sortCoorient ?? this.sortRadial ? 0.99 : 0.999 - }) && (I = !0), I && (A && (A.refCount += 1), (D = this.pending) != null && D.accumulator && this.spark.releaseAccumulator(this.pending.accumulator), this.pending = { accumulator: A, viewToWorld: this.viewToWorld, displayed: g }, this.driveSort()); + }), this.elements.vertex && (this.numSplats = this.elements.vertex.count); } - async driveSort() { - var A; - for (; ; ) { - if (this.sorting || !this.pending) - return; - const { viewToWorld: I, displayed: g } = this.pending; - let B = this.pending.accumulator; - if (B || (B = ((A = this.display) == null ? void 0 : A.accumulator) ?? this.spark.active, B.refCount += 1), this.pending = null, !B) - throw new Error("No accumulator to sort"); - this.sorting = { viewToWorld: I }, await this.sortUpdate({ accumulator: B, viewToWorld: I, displayed: g }), this.sorting = null, this.spark.releaseAccumulator(B); + parseData(A) { + let I = 0; + const g = this.data; + if (g == null) + throw new Error("No data to parse"); + for (const B in this.elements) { + const C = this.elements[B], { count: E, properties: i } = C, o = zh(i), D = _h(i, this.littleEndian), s = A(C) ?? (() => { + }); + for (let w = 0; w < E; w++) + I = D(g, I, o), s(w, o); } } - async sortUpdate({ - accumulator: A, - viewToWorld: I, - displayed: g = !1 - }) { - if (this.sortingCheck) - throw new Error("Only one sort at a time"); - this.sortingCheck = !0, A = A ?? this.spark.active; - const { numSplats: B, maxSplats: C } = A.splats; - let E = 0, D = this.orderingFreelist.alloc(C); - if (this.stochastic) { - E = B; - for (let i = 0; i < B; ++i) - D[i] = i; - } else if (B > 0) { + // Parse all the Gsplat data in the PLY file in go, invoking the given + // callbacks for each Gsplat. + parseSplats(A, I) { + if (this.elements.vertex == null) + throw new Error("No vertex element found"); + let g = !1; + const B = []; + let C = 0, E = [], i = [], o = [], D, s, w; + function G() { + const k = jh[C]; + E = new Array(3).fill(null).flatMap((F, R) => [0, 1, 2].map((S, N) => R + N * k / 3)), i = new Array(5).fill(null).flatMap( + (F, R) => [0, 1, 2].map((S, N) => 3 + R + N * k / 3) + ), o = new Array(7).fill(null).flatMap( + (F, R) => [0, 1, 2].map((S, N) => 8 + R + N * k / 3) + ), D = C >= 1 ? new Float32Array(3 * 3) : void 0, s = C >= 2 ? new Float32Array(5 * 3) : void 0, w = C >= 3 ? new Float32Array(7 * 3) : void 0; + } + function h(k, F) { + if (!D) + throw new Error("Missing sh1"); + const R = F.f_rest; + for (let S = 0; S < E.length; S++) + D[S] = R[E[S]] * 8 / 255 - 4; + if (s) + for (let S = 0; S < i.length; S++) + s[S] = R[i[S]] * 8 / 255 - 4; + if (w) + for (let S = 0; S < o.length; S++) + w[S] = R[o[S]] * 8 / 255 - 4; + I == null || I(k, D, s, w); + } + function c(k) { const { - reader: i, - doubleSortReader: w, - sort32Reader: s, - dynoSortRadial: o, - dynoOrigin: y, - dynoDirection: h, - dynoDepthBias: k, - dynoSort360: R, - dynoSplats: F - } = JI.makeSorter(), a = this.sort32 ?? !1; - let S; - if (a) - this.readback32 = i.ensureBuffer(C, this.readback32), S = this.readback32; - else { - const t = Math.ceil(C / 2); - this.readback16 = i.ensureBuffer(t, this.readback16), S = this.readback16; - } - const M = A.toWorld.clone().invert(), c = I.clone().premultiply(M); - o.value = this.sort360 ? !0 : this.sortRadial, y.value.set(0, 0, 0).applyMatrix4(c), h.value.set(0, 0, -1).applyMatrix4(c).sub(y.value).normalize(), k.value = this.depthBias ?? 1, R.value = this.sort360 ?? !1, F.packedSplats = A.splats; - const N = a ? s : w, U = a ? B : Math.ceil(B / 2); - await i.renderReadback({ - renderer: this.spark.renderer, - reader: N, - count: U, - readback: S - }); - const J = await nI(async (t) => { - const H = a ? "sort32Splats" : "sortDoubleSplats"; - return t.call(H, { - maxSplats: C, - numSplats: B, - readback: S, - ordering: D + min_x: F, + min_y: R, + min_z: S, + max_x: N, + max_y: M, + max_z: U, + min_scale_x: e, + min_scale_y: J, + min_scale_z: n, + max_scale_x: H, + max_scale_y: L, + max_scale_z: l + } = k.properties; + if (!F || !R || !S || !N || !M || !U || !e || !J || !n || !H || !L || !l) + throw new Error("Missing PLY chunk properties"); + return g = !0, (d, K) => { + const { + min_x: f, + min_y: V, + min_z: IA, + max_x: O, + max_y: CA, + max_z: v, + min_scale_x: gA, + min_scale_y: W, + min_scale_z: b, + max_scale_x: u, + max_scale_y: T, + max_scale_z: p, + min_r: tA, + min_g: sA, + min_b: yA, + max_r: cA, + max_g: oA, + max_b: aA + } = K; + B.push({ + min_x: f, + min_y: V, + min_z: IA, + max_x: O, + max_y: CA, + max_z: v, + min_scale_x: gA, + min_scale_y: W, + min_scale_z: b, + max_scale_x: u, + max_scale_y: T, + max_scale_z: p, + min_r: tA, + min_g: sA, + min_b: yA, + max_r: cA, + max_g: oA, + max_b: aA }); - }); - a ? this.readback32 = J.readback : this.readback16 = J.readback, D = J.ordering, E = J.activeSplats; - } - this.updateDisplay({ - accumulator: A, - viewToWorld: I, - ordering: D, - activeSplats: E, - displayed: g - }), this.sortingCheck = !1; - } - updateDisplay({ - accumulator: A, - viewToWorld: I, - ordering: g, - activeSplats: B, - displayed: C = !1 - }) { - if (!this.display) - A.refCount += 1, this.display = { - accumulator: A, - viewToWorld: I, - geometry: new LQ(g, B) }; - else { - !C && A !== this.display.accumulator && (A.refCount += 1, this.spark.releaseAccumulator(this.display.accumulator), this.display.accumulator = A), this.display.viewToWorld = I; - const E = this.display.geometry.ordering; - E.length === g.length ? this.display.geometry.update(g, B) : (this.display.geometry.dispose(), this.display.geometry = new LQ(g, B)), this.orderingFreelist.free(E); } - this.spark.viewpoint === this && this.spark.prepareViewpoint(this); - } - static makeSorter() { - if (!JI.dynos) { - const A = new bI({ value: !0 }), I = new DI({ value: new G.Vector3() }), g = new DI({ value: new G.Vector3() }), B = new pI({ value: 1 }), C = new bI({ value: !1 }), E = new MB(), D = new Ig(), i = cA( - { index: "int" }, - { rgba8: "vec4" }, - ({ index: s }) => { - if (!s) - throw new Error("No index"); - const o = { - sortRadial: A, - sortOrigin: I, - sortDirection: g, - sortDepthBias: B, - sort360: C - }, y = kA(s, v("int", 2)), h = _I(E, y), k = UQ({ gsplat: h, ...o }), R = _I( - E, - qA(y, v("int", 1)) - ), F = UQ({ gsplat: R, ...o }), a = yI({ - vectorType: "vec2", - x: k, - y: F - }); - return { rgba8: fQ(vD(a)) }; - } - ), w = cA( - { index: "int" }, - { rgba8: "vec4" }, - ({ index: s }) => { - if (!s) - throw new Error("No index"); - const o = { - sortRadial: A, - sortOrigin: I, - sortDirection: g, - sortDepthBias: B, - sort360: C - }, y = _I(E, s), h = UQ({ gsplat: y, ...o }); - return { rgba8: fQ(jD(h)) }; - } - ); - JI.dynos = { - dynoSortRadial: A, - dynoOrigin: I, - dynoDirection: g, - dynoDepthBias: B, - dynoSort360: C, - dynoSplats: E, - reader: D, - doubleSortReader: i, - sort32Reader: w + function t(k) { + if (I && k.name === "sh") + return C = mQ(k.properties), G(), h; + if (k.name !== "vertex") + return null; + const { packed_position: F, packed_rotation: R, packed_scale: S, packed_color: N } = k.properties; + if (!F || !R || !S || !N) + throw new Error( + "Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color" + ); + const M = Math.sqrt(2); + return (U, e) => { + const J = B[U >>> 8]; + if (J == null) + throw new Error("Missing PLY chunk"); + const { + min_x: n, + min_y: H, + min_z: L, + max_x: l, + max_y: d, + max_z: K, + min_scale_x: f, + min_scale_y: V, + min_scale_z: IA, + max_scale_x: O, + max_scale_y: CA, + max_scale_z: v, + min_r: gA, + min_g: W, + min_b: b, + max_r: u, + max_g: T, + max_b: p + } = J, { packed_position: tA, packed_rotation: sA, packed_scale: yA, packed_color: cA } = e, oA = (tA >>> 21 & 2047) / 2047 * (l - n) + n, aA = (tA >>> 11 & 1023) / 1023 * (d - H) + H, _A = (tA & 2047) / 2047 * (K - L) + L, PA = ((sA >>> 20 & 1023) / 1023 - 0.5) * M, yI = ((sA >>> 10 & 1023) / 1023 - 0.5) * M, cI = ((sA & 1023) / 1023 - 0.5) * M, X = Math.sqrt(Math.max(0, 1 - PA * PA - yI * yI - cI * cI)), bA = sA >>> 30, MA = bA === 0 ? PA : bA === 1 ? X : yI, $I = bA <= 1 ? yI : bA === 2 ? X : cI, Lg = bA <= 2 ? cI : X, TA = bA === 0 ? X : PA, _ = Math.exp( + (yA >>> 21 & 2047) / 2047 * (O - f) + f + ), aI = Math.exp( + (yA >>> 11 & 1023) / 1023 * (CA - V) + V + ), wQ = Math.exp( + (yA & 2047) / 2047 * (v - IA) + IA + ), sQ = (cA >>> 24 & 255) / 255 * ((u ?? 1) - (gA ?? 0)) + (gA ?? 0), aQ = (cA >>> 16 & 255) / 255 * ((T ?? 1) - (W ?? 0)) + (W ?? 0), GQ = (cA >>> 8 & 255) / 255 * ((p ?? 1) - (b ?? 0)) + (b ?? 0), hQ = (cA & 255) / 255; + A( + U, + oA, + aA, + _A, + _, + aI, + wQ, + MA, + $I, + Lg, + TA, + hQ, + sQ, + aQ, + GQ + ); }; } - return JI.dynos; - } -}; -JI.EMPTY_TEXTURE = new G.Texture(), JI.dynos = null; -let zg = JI; -const DR = oA(` - float computeSort(Gsplat gsplat, bool sortRadial, vec3 sortOrigin, vec3 sortDirection, float sortDepthBias, bool sort360) { - if (!isGsplatActive(gsplat.flags)) { - return INFINITY; - } - - vec3 center = gsplat.center - sortOrigin; - float biasedDepth = dot(center, sortDirection) + sortDepthBias; - if (!sort360 && (biasedDepth <= 0.0)) { - return INFINITY; - } - - return sortRadial ? length(center) : biasedDepth; - } -`); -function UQ({ - gsplat: Q, - sortRadial: A, - sortOrigin: I, - sortDirection: g, - sortDepthBias: B, - sort360: C -}) { - return gQ({ - inTypes: { - gsplat: Z, - sortRadial: "bool", - sortOrigin: "vec3", - sortDirection: "vec3", - sortDepthBias: "float", - sort360: "bool" - }, - outTypes: { metric: "float" }, - globals: () => [HA, DR], - inputs: { - gsplat: Q, - sortRadial: A, - sortOrigin: I, - sortDirection: g, - sortDepthBias: B, - sort360: C - }, - statements: ({ inputs: E, outputs: D }) => { + const y = (k) => { + if (k.name === "chunk") + return c(k); + if (g) + return t(k); + if (k.name !== "vertex") + return null; const { - gsplat: i, - sortRadial: w, - sortOrigin: s, - sortDirection: o, - sortDepthBias: y, - sort360: h - } = E; - return z(` - ${D.metric} = computeSort(${i}, ${w}, ${s}, ${o}, ${y}, ${h}); - `); - } - }).outputs.metric; -} -class tQ { - constructor() { - this.splats = new $A(), this.toWorld = new G.Matrix4(), this.mapping = [], this.refCount = 0, this.splatsVersion = -1, this.mappingVersion = -1; - } - ensureGenerate(A) { - this.splats.ensureGenerate(A) && (this.mapping = []); - } - // Generate all Gsplats from an array of generators - generateSplats({ - renderer: A, - modifier: I, - generators: g, - forceUpdate: B, - originToWorld: C - }) { - const E = this.mapping.reduce((w, s) => (w.set(s.node, s), w), /* @__PURE__ */ new Map()); - let D = 0, i = 0; - for (const { node: w, generator: s, version: o, base: y, count: h } of g) { - const k = E.get(w); - if ((B || s !== (k == null ? void 0 : k.generator) || o !== (k == null ? void 0 : k.version) || y !== (k == null ? void 0 : k.base) || h !== (k == null ? void 0 : k.count)) && s && h > 0) { - const R = I.apply(s); - try { - this.splats.generate({ - generator: R, - base: y, - count: h, - renderer: A - }); - } catch (F) { - w.generator = void 0, w.generatorError = F; + x: F, + y: R, + z: S, + scale_0: N, + scale_1: M, + scale_2: U, + rot_0: e, + rot_1: J, + rot_2: n, + rot_3: H, + opacity: L, + f_dc_0: l, + f_dc_1: d, + f_dc_2: K, + red: f, + green: V, + blue: IA, + alpha: O + } = k.properties; + if (!F || !R || !S) + throw new Error("Missing PLY properties: x, y, z"); + const CA = N && M && U, v = e && J && n && H, gA = O != null ? dg[O.type] : 1, W = f != null ? dg[f.type] : 1, b = V != null ? dg[V.type] : 1, u = IA != null ? dg[IA.type] : 1; + return C = mQ(k.properties), G(), (T, p) => { + const tA = CA ? Math.exp(p.scale_0) : VI.defaultPointScale, sA = CA ? Math.exp(p.scale_1) : VI.defaultPointScale, yA = CA ? Math.exp(p.scale_2) : VI.defaultPointScale, cA = v ? p.rot_1 : 0, oA = v ? p.rot_2 : 0, aA = v ? p.rot_3 : 0, _A = v ? p.rot_0 : 1, PA = L != null ? 1 / (1 + Math.exp(-p.opacity)) : O != null ? p.alpha / gA : 1, yI = l != null ? p.f_dc_0 * Kg + 0.5 : f != null ? p.red / W : 1, cI = d != null ? p.f_dc_1 * Kg + 0.5 : V != null ? p.green / b : 1, X = K != null ? p.f_dc_2 * Kg + 0.5 : IA != null ? p.blue / u : 1; + if (A( + T, + p.x, + p.y, + p.z, + tA, + sA, + yA, + cA, + oA, + aA, + _A, + PA, + yI, + cI, + X + ), I && D) { + const bA = p.f_rest; + if (D) + for (let MA = 0; MA < E.length; MA++) + D[MA] = bA[E[MA]]; + if (s) + for (let MA = 0; MA < i.length; MA++) + s[MA] = bA[i[MA]]; + if (w) + for (let MA = 0; MA < o.length; MA++) + w[MA] = bA[o[MA]]; + I(T, D, s, w); } - D += 1; - } - i = Math.max(i, y + h); - } - return this.splats.numSplats = i, this.toWorld.copy(C), this.mapping = g, D !== 0; - } - // Check if this accumulator has exactly the same generator mapping as - // the previous one. If so, we can reuse the Gsplat sort order. - hasCorrespondence(A) { - return this.mapping.length !== A.mapping.length ? !1 : this.mapping.every(({ node: I, base: g, count: B }, C) => { - const { - node: E, - base: D, - count: i - } = A.mapping[C]; - return I === E && g === D && B === i; - }); - } -} -const uB = 5, UA = class UA extends G.Mesh { - constructor(A) { - const I = UA.makeUniforms(), g = Ag(), B = A.premultipliedAlpha ?? !0, C = new G.ShaderMaterial({ - glslVersion: G.GLSL3, - vertexShader: g.oldSplatVertex, - fragmentShader: g.oldSplatFragment, - uniforms: I, - premultipliedAlpha: B, - transparent: !0, - depthTest: !0, - depthWrite: !1, - side: G.DoubleSide - }); - super(OB, C), this.splatTexture = null, this.autoViewpoints = [], this.rotateToAccumulator = new mI({ value: new G.Quaternion() }), this.translateToAccumulator = new DI({ value: new G.Vector3() }), this.lastFrame = -1, this.lastUpdateTime = null, this.defaultCameras = [], this.lastStochastic = null, this.pendingUpdate = { - scene: null, - originToWorld: new G.Matrix4(), - timeoutId: -1 - }, this.envViewpoint = null, this.frustumCulled = !1, this.renderer = A.renderer, this.material = C, this.uniforms = I; - const E = cA( - { gsplat: Z }, - { gsplat: Z }, - ({ gsplat: D }) => { - if (!D) - throw new Error("gsplat not defined"); - return D = CB(D, { - rotate: this.rotateToAccumulator, - translate: this.translateToAccumulator - }), { gsplat: D }; - } - ); - this.modifier = new Ph(E), this.premultipliedAlpha = B, this.autoUpdate = A.autoUpdate ?? !0, this.preUpdate = A.preUpdate ?? !1, this.needsUpdate = !1, this.originDistance = A.originDistance ?? 1, this.maxStdDev = A.maxStdDev ?? Math.sqrt(8), this.minPixelRadius = A.minPixelRadius ?? 0, this.maxPixelRadius = A.maxPixelRadius ?? 512, this.minAlpha = A.minAlpha ?? 0.5 * (1 / 255), this.enable2DGS = A.enable2DGS ?? !1, this.preBlurAmount = A.preBlurAmount ?? 0, this.blurAmount = A.blurAmount ?? 0.3, this.focalDistance = A.focalDistance ?? 0, this.apertureAngle = A.apertureAngle ?? 0, this.falloff = A.falloff ?? 1, this.clipXY = A.clipXY ?? 1.4, this.focalAdjustment = A.focalAdjustment ?? 1, this.splatEncoding = A.splatEncoding ?? { ...cg }, this.active = new tQ(), this.active.refCount = 1, this.accumulatorCount = 1, this.freeAccumulators = []; - for (let D = 0; D < 1; ++D) - this.freeAccumulators.push(new tQ()), this.accumulatorCount += 1; - this.defaultView = new zg({ - ...A.view, - autoUpdate: !0, - spark: this - }), this.viewpoint = this.defaultView, this.prepareViewpoint(this.viewpoint), this.clock = A.clock ? gB(A.clock) : new G.Clock(); - } - static makeUniforms() { - return { - // Size of render viewport in pixels - renderSize: { value: new G.Vector2() }, - // Near and far plane distances - near: { value: 0.1 }, - far: { value: 1e3 }, - // Total number of Gsplats in packedSplats to render - numSplats: { value: 0 }, - // SplatAccumulator to view transformation quaternion - renderToViewQuat: { value: new G.Quaternion() }, - // SplatAccumulator to view transformation translation - renderToViewPos: { value: new G.Vector3() }, - // Maximum distance (in stddevs) from Gsplat center to render - maxStdDev: { value: 1 }, - // Minimum pixel radius for splat rendering - minPixelRadius: { value: 0 }, - // Maximum pixel radius for splat rendering - maxPixelRadius: { value: 512 }, - // Minimum alpha value for splat rendering - minAlpha: { value: 0.00196078431372549 }, - // Enable stochastic splat rendering - stochastic: { value: !1 }, - // Enable interpreting 0-thickness Gsplats as 2DGS - enable2DGS: { value: !1 }, - // Add to projected 2D splat covariance diagonal (thickens and brightens) - preBlurAmount: { value: 0 }, - // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing) - blurAmount: { value: 0.3 }, - // Depth-of-field distance to focal plane - focalDistance: { value: 0 }, - // Full-width angle of aperture opening (in radians) - apertureAngle: { value: 0 }, - // Modulate Gaussian kernal falloff. 0 means "no falloff, flat shading", - // 1 is normal e^-x^2 falloff. - falloff: { value: 1 }, - // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds - clipXY: { value: 1.4 }, - // Debug renderSize scale factor - focalAdjustment: { value: 1 }, - // Enable splat texture rendering - splatTexEnable: { value: !1 }, - // Splat texture to render - splatTexture: { type: "t", value: UA.EMPTY_SPLAT_TEXTURE }, - // Splat texture UV transform (multiply) - splatTexMul: { value: new G.Matrix2() }, - // Splat texture UV transform (add) - splatTexAdd: { value: new G.Vector2() }, - // Splat texture near plane distance - splatTexNear: { value: 0.1 }, - // Splat texture far plane distance - splatTexFar: { value: 1e3 }, - // Splat texture mid plane distance, or 0.0 to disable - splatTexMid: { value: 0 }, - // Gsplat collection to render - packedSplats: { type: "t", value: $A.getEmptyArray }, - // Splat encoding ranges - rgbMinMaxLnScaleMinMax: { value: new G.Vector4() }, - // Time in seconds for time-based effects - time: { value: 0 }, - // Delta time in seconds since last frame - deltaTime: { value: 0 }, - // Whether to encode Gsplat with linear RGB (for environment mapping) - encodeLinear: { value: !1 }, - // Debug flag that alternates each frame - debugFlag: { value: !1 } + }; }; + this.parseData(y); } - canAllocAccumulator() { - return this.freeAccumulators.length > 0 || this.accumulatorCount < uB; - } - maybeAllocAccumulator() { - let A = this.freeAccumulators.pop(); - if (A === void 0) { - if (this.accumulatorCount >= uB) - return null; - A = new tQ(), this.accumulatorCount += 1; + // Inject RGBA values into original PLY file, which can be used to modify + // the color/opacity of the Gsplats and write out the modified PLY file. + injectRgba(A) { + let I = 0; + const g = this.data; + if (g == null) + throw new Error("No parsed data"); + if (A.length !== this.numSplats * 4) + throw new Error("Invalid RGBA array length"); + for (const B in this.elements) { + const C = this.elements[B], { count: E, properties: i } = C, o = []; + let D = 0; + const s = B === "vertex"; + if (s) { + for (const w of ["opacity", "f_dc_0", "f_dc_1", "f_dc_2"]) + if (!i[w] || i[w].type !== "float") + throw new Error(`Can't injectRgba due to property: ${w}`); + } + for (const [w, G] of Object.entries(i)) + if (G.isList) + o.push(() => { + const h = mI[G.countType]( + g, + I, + this.littleEndian + ); + I += gI[G.countType], I += h * gI[G.type]; + }); + else { + if (s) + if (w === "f_dc_0" || w === "f_dc_1" || w === "f_dc_2") { + const h = Number.parseInt( + w.slice(5) + ); + o.push(() => { + const c = (A[D + h] / 255 - 0.5) / Kg; + xB[G.type]( + g, + I, + this.littleEndian, + c + ); + }); + } else w === "opacity" && o.push(() => { + const h = Math.max( + -100, + Math.min( + 100, + -Math.log(1 / (A[D + 3] / 255) - 1) + ) + ); + xB[G.type]( + g, + I, + this.littleEndian, + h + ); + }); + o.push(() => { + I += gI[G.type]; + }); + } + for (let w = 0; w < E; w++) { + for (const G of o) + G(); + s && (D += 4); + } } - return A.refCount = 1, A; } - releaseAccumulator(A) { - A.refCount -= 1, A.refCount === 0 && this.freeAccumulators.push(A); +}; +VI.defaultPointScale = 1e-3; +let TQ = VI; +const Kg = 0.28209479177387814, mI = { + char: (Q, A, I) => Q.getInt8(A), + uchar: (Q, A, I) => Q.getUint8(A), + short: (Q, A, I) => Q.getInt16(A, I), + ushort: (Q, A, I) => Q.getUint16(A, I), + int: (Q, A, I) => Q.getInt32(A, I), + uint: (Q, A, I) => Q.getUint32(A, I), + float: (Q, A, I) => Q.getFloat32(A, I), + double: (Q, A, I) => Q.getFloat64(A, I) +}, xB = { + char: (Q, A, I, g) => { + Q.setInt8(A, g); + }, + uchar: (Q, A, I, g) => { + Q.setUint8(A, g); + }, + short: (Q, A, I, g) => { + Q.setInt16(A, g, I); + }, + ushort: (Q, A, I, g) => { + Q.setUint16(A, g, I); + }, + int: (Q, A, I, g) => { + Q.setInt32(A, g, I); + }, + uint: (Q, A, I, g) => { + Q.setUint32(A, g, I); + }, + float: (Q, A, I, g) => { + Q.setFloat32(A, g, I); + }, + double: (Q, A, I, g) => { + Q.setFloat64(A, g, I); } - newViewpoint(A) { - return new zg({ ...A, spark: this }); +}, gI = { + char: 1, + uchar: 1, + short: 2, + ushort: 2, + int: 4, + uint: 4, + float: 4, + double: 8 +}, dg = { + char: 127, + uchar: 255, + short: 32767, + ushort: 65535, + int: 2147483647, + uint: 4294967295, + float: 1, + double: 1 +}, Xh = { + 0: 0, + 9: 1, + 24: 2, + 45: 3 +}, jh = { + 0: 0, + 1: 9, + 2: 24, + 3: 45 +}, kB = /^f_rest_([0-9]{1,2})$/; +function zh(Q) { + const A = {}; + for (const [I, g] of Object.entries(Q)) + kB.test(I) ? A.f_rest = new Array(mQ(Q)) : A[I] = g.isList ? [] : 0; + return A; +} +function _h(Q, A) { + return It(Q) ? gt(Q, A) : Qt(Q, A); +} +const $h = (() => { + try { + new Function("return 42;"); + } catch { + return !1; } - onBeforeRender(A, I, g) { - var h, k; - const B = this.time ?? this.clock.getElapsedTime(), C = B - (this.viewpoint.lastTime ?? B); - this.viewpoint.lastTime = B; - const E = A.info.render.frame, D = E !== this.lastFrame; - this.lastFrame = E; - const i = this.viewpoint; - if (i === this.defaultView) { - if (D) - if (!A.xr.isPresenting) - this.defaultView.viewToWorld = g.matrixWorld.clone(), this.defaultCameras = [this.defaultView.viewToWorld]; - else { - const R = A.xr.getCamera().cameras; - this.defaultCameras = R.map((F) => F.matrixWorld), this.defaultView.viewToWorld = iR(this.defaultCameras) ?? new G.Matrix4(); - } - this.autoUpdate && this.update({ scene: I, viewToWorld: this.defaultView.viewToWorld }); - } - if (D && (this.material.premultipliedAlpha !== this.premultipliedAlpha && (this.material.premultipliedAlpha = this.premultipliedAlpha, this.material.needsUpdate = !0), this.uniforms.time.value = B, this.uniforms.deltaTime.value = C, this.uniforms.debugFlag.value = performance.now() / 1e3 % 2 < 1, i.display && i.stochastic && (this.geometry.instanceCount = this.uniforms.numSplats.value)), i.target) - this.uniforms.renderSize.value.set( - i.target.width, - i.target.height - ); - else { - const R = A.getDrawingBufferSize( - this.uniforms.renderSize.value + return !0; +})(), At = /^[a-zA-Z0-9_]+$/; +function It(Q) { + if (!$h) + return !1; + for (const [A, I] of Object.entries(Q)) + if (!At.test(A) || I.isList && !lB.includes(I.countType) || !lB.includes(I.type)) + return !1; + return !0; +} +function gt(Q, A) { + const I = ["let list;"]; + for (const [B, C] of Object.entries(Q)) { + const E = B.match(kB); + if (E) { + const i = +E[1]; + I.push( + /*js*/ + ` + item.f_rest[${i}] = PARSE_FIELD['${C.type}'](data, offset, ${A}); + offset += ${gI[C.type]}; + ` ); - if (R.x === 1 && R.y === 1) { - const F = (h = A.xr.getSession()) == null ? void 0 : h.renderState.baseLayer; - F && (R.x = F.framebufferWidth, R.y = F.framebufferHeight); - } - } - const w = g; - if (this.uniforms.near.value = w.near, this.uniforms.far.value = w.far, this.uniforms.encodeLinear.value = i.encodeLinear, this.uniforms.maxStdDev.value = this.maxStdDev, this.uniforms.minPixelRadius.value = this.minPixelRadius, this.uniforms.maxPixelRadius.value = this.maxPixelRadius, this.uniforms.minAlpha.value = this.minAlpha, this.uniforms.stochastic.value = i.stochastic, this.uniforms.enable2DGS.value = this.enable2DGS, this.uniforms.preBlurAmount.value = this.preBlurAmount, this.uniforms.blurAmount.value = this.blurAmount, this.uniforms.focalDistance.value = this.focalDistance, this.uniforms.apertureAngle.value = this.apertureAngle, this.uniforms.falloff.value = this.falloff, this.uniforms.clipXY.value = this.clipXY, this.uniforms.focalAdjustment.value = this.focalAdjustment, this.lastStochastic !== !i.stochastic && (this.lastStochastic = !i.stochastic, this.material.transparent = !i.stochastic, this.material.depthWrite = i.stochastic, this.material.needsUpdate = !0), this.splatTexture) { - const { enable: R, texture: F, multiply: a, add: S, near: M, far: c, mid: N } = this.splatTexture; - R && F ? (this.uniforms.splatTexEnable.value = !0, this.uniforms.splatTexture.value = F, a ? this.uniforms.splatTexMul.value.fromArray(a.elements) : this.uniforms.splatTexMul.value.set( - 0.5 / this.maxStdDev, - 0, - 0, - 0.5 / this.maxStdDev - ), this.uniforms.splatTexAdd.value.set((S == null ? void 0 : S.x) ?? 0.5, (S == null ? void 0 : S.y) ?? 0.5), this.uniforms.splatTexNear.value = M ?? this.uniforms.near.value, this.uniforms.splatTexFar.value = c ?? this.uniforms.far.value, this.uniforms.splatTexMid.value = N ?? 0) : (this.uniforms.splatTexEnable.value = !1, this.uniforms.splatTexture.value = UA.EMPTY_SPLAT_TEXTURE); - } else - this.uniforms.splatTexEnable.value = !1, this.uniforms.splatTexture.value = UA.EMPTY_SPLAT_TEXTURE; - const s = ((k = i.display) == null ? void 0 : k.accumulator.toWorld) ?? new G.Matrix4(), o = g.matrixWorld.clone().invert(); - s.clone().premultiply(o).decompose( - this.uniforms.renderToViewPos.value, - this.uniforms.renderToViewQuat.value, - new G.Vector3() + } else C.isList ? I.push( + /*js*/ + ` + list = item['${B}']; + list.length = PARSE_FIELD['${C.countType}'](data, offset, ${A}); + offset += ${gI[C.countType]}; + for (let i = 0; i < list.length; i++) { + list[i] = PARSE_FIELD['${C.type}'](data, offset, ${A}); + offset += ${gI[C.type]}; + } + ` + ) : I.push( + /*js*/ + ` + item['${B}'] = PARSE_FIELD['${C.type}'](data, offset, ${A}); + offset += ${gI[C.type]}; + ` ); } - // Update the uniforms for the given viewpoint. - // Note that the client expects to be able to call render() at any point - // to update the canvas, so we must switch the viewpoint back to - // defaultView when we're finished. - prepareViewpoint(A) { - var I, g, B, C; - if (this.viewpoint = A ?? this.viewpoint, this.viewpoint.display) { - const { accumulator: E, geometry: D } = this.viewpoint.display; - this.uniforms.numSplats.value = E.splats.numSplats, this.uniforms.packedSplats.value = E.splats.getTexture(), this.uniforms.rgbMinMaxLnScaleMinMax.value.set( - ((I = E.splats.splatEncoding) == null ? void 0 : I.rgbMin) ?? 0, - ((g = E.splats.splatEncoding) == null ? void 0 : g.rgbMax) ?? 1, - ((B = E.splats.splatEncoding) == null ? void 0 : B.lnScaleMin) ?? pA, - ((C = E.splats.splatEncoding) == null ? void 0 : C.lnScaleMax) ?? fA - ), this.geometry = D, this.material.transparent = !this.viewpoint.stochastic, this.material.depthWrite = this.viewpoint.stochastic, this.material.needsUpdate = !0; - } else - this.uniforms.numSplats.value = 0, this.uniforms.packedSplats.value = $A.getEmptyArray, this.geometry = OB; - } - // If spark.autoUpdate is false then you must manually call - // spark.update({ scene }) to have the scene Gsplats be re-generated. - update({ - scene: A, - viewToWorld: I - }) { - const g = this.matrixWorld; - this.preUpdate ? this.updateInternal({ - scene: A, - originToWorld: g.clone(), - viewToWorld: I - }) : (this.pendingUpdate.scene = A, this.pendingUpdate.originToWorld.copy(g), this.pendingUpdate.timeoutId === -1 && (this.pendingUpdate.timeoutId = setTimeout(() => { - const { scene: B, originToWorld: C } = this.pendingUpdate; - this.pendingUpdate.scene = null, this.pendingUpdate.timeoutId = -1, this.updateInternal({ - scene: B, - originToWorld: C, - viewToWorld: I - }) && this.renderer.getContext().flush(); - }, 1))); - } - updateInternal({ - scene: A, - originToWorld: I, - viewToWorld: g - }) { - var k; - if (!this.canAllocAccumulator()) - return !1; - I || (I = this.active.toWorld), g = g ?? I.clone(); - const B = this.time ?? this.clock.getElapsedTime(), C = B - (this.lastUpdateTime ?? B); - this.lastUpdateTime = B; - const E = this.active.mapping.reduce((R, F) => (R.set(F.node, F), R), /* @__PURE__ */ new Map()), { generators: D, visibleGenerators: i, globalEdits: w } = this.compileScene(A); - for (const R of D) - (k = R.frameUpdate) == null || k.call(R, { - renderer: this.renderer, - object: R, - time: B, - deltaTime: C, - viewToWorld: g, - globalEdits: w - }); - const s = new Set(i.map((R) => R.uuid)); - for (const R of D) { - const F = E.get(R), S = R.generator && s.has(R.uuid) ? R.numSplats : 0; - (this.needsUpdate || R.generator !== (F == null ? void 0 : F.generator) || S !== (F == null ? void 0 : F.count)) && R.updateVersion(); - } - const o = !Zg({ - matrix1: I, - matrix2: this.active.toWorld, - maxDistance: this.originDistance - }), y = this.needsUpdate || o || D.length !== E.size || D.some((R) => { - var F; - return R.version !== ((F = E.get(R)) == null ? void 0 : F.version); - }); - this.needsUpdate = !1; - let h = null; - if (y) { - if (h = this.maybeAllocAccumulator(), !h) - throw new Error("Unreachable"); - const R = !Zg({ - matrix1: I, - matrix2: h.toWorld, - maxDistance: 1e-5, - minCoorient: 0.99999 - }), a = i.map((J, t) => { - const H = E.get(J); - return H ? ( - // Sort by version deltas then by previous ordering in the mapping, - // attempting to keep unchanging generators near the front - // to improve our chances of avoiding a re-generation. - [J.version - H.version, H.base, J] - ) : [Number.POSITIVE_INFINITY, J.version, J]; - }).sort((J, t) => J[0] !== t[0] ? J[0] - t[0] : J[1] - t[1]).map(([J, t, H]) => H), S = a.map((J) => J.numSplats), { maxSplats: M, mapping: c } = h.splats.generateMapping(S), N = a.map((J, t) => { - const { base: H, count: K } = c[t]; - return { - node: J, - generator: J.generator, - version: J.version, - base: H, - count: K - }; - }); - I.clone().invert().decompose( - this.translateToAccumulator.value, - this.rotateToAccumulator.value, - new G.Vector3() - ), h.ensureGenerate(M), h.splats.splatEncoding = { ...this.splatEncoding }, h.generateSplats({ - renderer: this.renderer, - modifier: this.modifier, - generators: N, - forceUpdate: R, - originToWorld: I - }), h.splatsVersion = this.active.splatsVersion + 1; - const U = h.hasCorrespondence(this.active); - h.mappingVersion = this.active.mappingVersion + (U ? 0 : 1), this.releaseAccumulator(this.active), this.active = h, this.prepareViewpoint(); - } - return setTimeout(() => { - for (const R of this.autoViewpoints) - R.autoPoll({ accumulator: h ?? void 0 }); - }, 1), !0; - } - compileScene(A) { - const I = []; - A.traverse((C) => { - C instanceof PI && I.push(C); - }); - const g = []; - A.traverseVisible((C) => { - C instanceof PI && g.push(C); - }); - const B = /* @__PURE__ */ new Set(); - return A.traverseVisible((C) => { - if (C instanceof Sg) { - let E = C.parent; - for (; E != null && !(E instanceof vA); ) - E = E.parent; - E == null && B.add(C); + I.push("return offset;"); + const g = new Function( + "data", + "offset", + "item", + "PARSE_FIELD", + I.join(` +`) + ); + return (B, C, E) => g(B, C, E, mI); +} +function Qt(Q, A) { + const I = []; + for (const [g, B] of Object.entries(Q)) { + const C = g.match(kB); + if (C) { + const E = +C[1]; + I.push( + (i, o, D) => (D.f_rest[E] = mI[B.type]( + i, + o, + A + ), o + gI[B.type]) + ); + } else B.isList ? I.push( + (E, i, o) => { + const D = o[g]; + D.length = mI[B.countType]( + E, + i, + A + ); + let s = i + gI[B.countType]; + for (let w = 0; w < D.length; w++) + D[w] = mI[B.type]( + E, + s, + A + ), s += gI[B.type]; + return s; } - }), { - generators: I, - visibleGenerators: g, - globalEdits: Array.from(B) - }; - } - // Renders out the scene to an environment map that can be used for - // Image-based lighting or similar applications. First optionally updates Gsplats, - // sorts them with respect to the provided worldCenter, renders 6 cube faces, - // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture - // that can assigned directly to a THREE.MeshStandardMaterial.envMap property. - async renderEnvMap({ - renderer: A, - scene: I, - worldCenter: g, - size: B = 256, - near: C = 0.1, - far: E = 1e3, - hideObjects: D = [], - update: i = !1 - }) { - var h, k; - if (this.envViewpoint || (this.envViewpoint = this.newViewpoint({ sort360: !0 })), !UA.cubeRender || UA.cubeRender.target.width !== B || UA.cubeRender.near !== C || UA.cubeRender.far !== E) { - UA.cubeRender && UA.cubeRender.target.dispose(); - const R = new G.WebGLCubeRenderTarget(B, { - format: G.RGBAFormat, - generateMipmaps: !0, - minFilter: G.LinearMipMapLinearFilter - }), F = new G.CubeCamera(C, E, R); - UA.cubeRender = { target: R, camera: F, near: C, far: E }; - } - UA.pmrem || (UA.pmrem = new G.PMREMGenerator( - A ?? this.renderer - )); - const w = new G.Matrix4().setPosition(g); - await ((h = this.envViewpoint) == null ? void 0 : h.prepare({ scene: I, viewToWorld: w, update: i })); - const { target: s, camera: o } = UA.cubeRender; - o.position.copy(g); - const y = /* @__PURE__ */ new Map(); - for (const R of D) - y.set(R, R.visible), R.visible = !1; - this.prepareViewpoint(this.envViewpoint), o.update(A ?? this.renderer, I), this.prepareViewpoint(this.defaultView); - for (const [R, F] of y.entries()) - R.visible = F; - return (k = UA.pmrem) == null ? void 0 : k.fromCubemap(s.texture).texture; - } - // Utility function to recursively set the envMap property for any - // THREE.MeshStandardMaterial within the subtree of root. - recurseSetEnvMap(A, I) { - A.traverse((g) => { - if (g instanceof G.Mesh) - if (Array.isArray(g.material)) - for (const B of g.material) - B instanceof G.MeshStandardMaterial && (B.envMap = I); - else - g.material instanceof G.MeshStandardMaterial && (g.material.envMap = I); - }); - } - // Utility function that helps extract the Gsplat RGBA values from a - // SplatGenerator, including the result of any real-time RGBA SDF edits applied - // to a SplatMesh. This effectively "bakes" any computed RGBA values, which can - // now be used as a pipeline input via SplatMesh.splatRgba to inject these - // baked values into the Gsplat data. - getRgba({ - generator: A, - rgba: I - }) { - const g = this.active.mapping.find(({ node: B }) => B === A); - if (!g) - throw new Error("Generator not found"); - return I = I ?? new TQ(), I.fromPackedSplats({ - packedSplats: this.active.splats, - base: g.base, - count: g.count, - renderer: this.renderer - }), I; - } - // Utility function that builds on getRgba({ generator }) and additionally - // reads back the RGBA values to the CPU in a Uint8Array with packed RGBA - // in that byte order. - async readRgba({ - generator: A, - rgba: I - }) { - return I = this.getRgba({ generator: A, rgba: I }), I.read(); - } -}; -UA.cubeRender = null, UA.pmrem = null, UA.EMPTY_SPLAT_TEXTURE = new G.Data3DTexture(); -let TB = UA; -const OB = new LQ(new Uint32Array(1), 0); -cA( - { packedSplats: tg, index: "int" }, - { gsplat: Z }, - ({ packedSplats: Q, index: A }) => { - if (!Q || !A) - throw new Error("Invalid input"); - return { gsplat: _I(Q, A) }; + ) : I.push( + (E, i, o) => (o[g] = mI[B.type]( + E, + i, + A + ), i + gI[B.type]) + ); } -); -function iR(Q) { - if (Q.length === 0) - return null; - const A = new G.Vector3(), I = new G.Quaternion(), g = new G.Vector3(), B = [], C = []; - for (const E of Q) - E.decompose(A, I, g), B.push(A), C.push(I); - return new G.Matrix4().compose( - MC(B), - JC(C), - new G.Vector3(1, 1, 1) - ); + return (g, B, C) => { + let E = B; + for (let i = 0; i < I.length; i++) + E = I[i](g, E, C); + return E; + }; +} +function mQ(Q) { + let A = 0; + for (; Q[`f_rest_${A}`]; ) + A += 1; + const I = Xh[A]; + if (I == null) + throw new Error(`Unsupported number of SH coefficients: ${A}`); + return I; } -function wR(Q, A, I) { +function Bt(Q, A, I) { const g = Math.floor(Q.length / 32); if (g * 32 !== Q.length) throw new Error("Invalid .splat file size"); const B = new Float32Array(Q.buffer); for (let C = 0; C < g; ++C) { - const E = C * 32, D = C * 8, i = B[D + 0], w = B[D + 1], s = B[D + 2], o = B[D + 3], y = B[D + 4], h = B[D + 5], k = Q[E + 24] / 255, R = Q[E + 25] / 255, F = Q[E + 26] / 255, a = Q[E + 27] / 255, S = (Q[E + 28] - 128) / 128, M = (Q[E + 29] - 128) / 128, c = (Q[E + 30] - 128) / 128, N = (Q[E + 31] - 128) / 128; + const E = C * 32, i = C * 8, o = B[i + 0], D = B[i + 1], s = B[i + 2], w = B[i + 3], G = B[i + 4], h = B[i + 5], c = Q[E + 24] / 255, t = Q[E + 25] / 255, y = Q[E + 26] / 255, k = Q[E + 27] / 255, F = (Q[E + 28] - 128) / 128, R = (Q[E + 29] - 128) / 128, S = (Q[E + 30] - 128) / 128, N = (Q[E + 31] - 128) / 128; I( C, - i, - w, - s, o, - y, + D, + s, + w, + G, h, - M, - c, - N, + R, S, - a, + N, + F, k, - R, - F + c, + t, + y ); } } -const mB = { +const fB = { 0: { bytesPerCenter: 12, bytesPerScale: 12, @@ -13594,59 +12629,59 @@ const mB = { sphericalHarmonicsOffsetBytes: 24, scaleRange: 32767 } -}, oR = { +}, Ct = { 0: 0, 1: 9, 2: 24, 3: 45 }; -function sR(Q, A, I, g) { - var R; +function Et(Q, A, I, g) { + var t; let E = 0; - const D = new DataView(Q.buffer, E, 4096); + const i = new DataView(Q.buffer, E, 4096); E += 4096; - const i = D.getUint8(0), w = D.getUint8(1); - if (i !== 0 || w < 1) + const o = i.getUint8(0), D = i.getUint8(1); + if (o !== 0 || D < 1) throw new Error( - `Unsupported .ksplat version: ${i}.${w}` + `Unsupported .ksplat version: ${o}.${D}` ); - const s = D.getUint32(4, !0); - D.getUint32(16, !0); - const o = D.getUint16(20, !0); - if (o < 0 || o > 2) - throw new Error(`Invalid .ksplat compression level: ${o}`); - const y = D.getFloat32(36, !0) || -1.5, h = D.getFloat32(40, !0) || 1.5; - let k = 4096 + s * 1024; - for (let F = 0; F < s; ++F) { - let a = function(mA, $) { - if (o === 0) - return _.getFloat32( - mA + b + $ * 4, + const s = i.getUint32(4, !0); + i.getUint32(16, !0); + const w = i.getUint16(20, !0); + if (w < 0 || w > 2) + throw new Error(`Invalid .ksplat compression level: ${w}`); + const G = i.getFloat32(36, !0) || -1.5, h = i.getFloat32(40, !0) || 1.5; + let c = 4096 + s * 1024; + for (let y = 0; y < s; ++y) { + let k = function(TA, _) { + if (w === 0) + return X.getFloat32( + TA + u + _ * 4, !0 ); - if (o === 1) - return NA( - _.getUint16( - mA + b + $ * 2, + if (w === 1) + return FA( + X.getUint16( + TA + u + _ * 2, !0 ) ); - const RI = _.getUint8(mA + b + $) / 255; - return y + RI * (h - y); + const aI = X.getUint8(TA + u + _) / 255; + return G + aI * (h - G); }; - const S = new DataView(Q.buffer, E, 1024); + const F = new DataView(Q.buffer, E, 1024); E += 1024; - const M = S.getUint32(0, !0), c = S.getUint32(4, !0), N = S.getUint32(8, !0), U = S.getUint32(12, !0), J = S.getFloat32(16, !0), t = S.getUint16(20, !0), H = (S.getUint32(24, !0) || ((R = mB[o]) == null ? void 0 : R.scaleRange)) ?? 1, K = S.getUint32(32, !0), Y = K * N, L = S.getUint32(36, !0), q = L * 4, n = t * U + q, r = S.getUint16(40, !0), p = oR[r], { - bytesPerCenter: m, + const R = F.getUint32(0, !0), S = F.getUint32(4, !0), N = F.getUint32(8, !0), M = F.getUint32(12, !0), U = F.getFloat32(16, !0), e = F.getUint16(20, !0), J = (F.getUint32(24, !0) || ((t = fB[w]) == null ? void 0 : t.scaleRange)) ?? 1, n = F.getUint32(32, !0), H = n * N, L = F.getUint32(36, !0), l = L * 4, d = e * M + l, K = F.getUint16(40, !0), f = Ct[K], { + bytesPerCenter: V, bytesPerScale: IA, - bytesPerRotation: X, - bytesPerColor: EA, - bytesPerSphericalHarmonicsComponent: j, + bytesPerRotation: O, + bytesPerColor: CA, + bytesPerSphericalHarmonicsComponent: v, scaleOffsetBytes: gA, rotationOffsetBytes: W, - colorOffsetBytes: u, - sphericalHarmonicsOffsetBytes: b - } = mB[o], T = m + IA + X + EA + p * j, f = T * c, FA = f + n, sA = [0, 3, 6, 1, 4, 7, 2, 5, 8], aA = [ + colorOffsetBytes: b, + sphericalHarmonicsOffsetBytes: u + } = fB[w], T = V + IA + O + CA + f * v, p = T * S, tA = p + d, sA = [0, 3, 6, 1, 4, 7, 2, 5, 8], yA = [ 9, 14, 19, @@ -13662,7 +12697,7 @@ function sR(Q, A, I, g) { 13, 18, 23 - ], SA = [ + ], cA = [ 24, 31, 38, @@ -13684,72 +12719,72 @@ function sR(Q, A, I, g) { 30, 37, 44 - ], wA = r >= 1 ? new Float32Array(3 * 3) : void 0, GA = r >= 2 ? new Float32Array(5 * 3) : void 0, AI = r >= 3 ? new Float32Array(7 * 3) : void 0, TA = J / 2 / H, FI = k + q, aI = k + n, _ = new DataView( + ], oA = K >= 1 ? new Float32Array(3 * 3) : void 0, aA = K >= 2 ? new Float32Array(5 * 3) : void 0, _A = K >= 3 ? new Float32Array(7 * 3) : void 0, PA = U / 2 / J, yI = c + l, cI = c + d, X = new DataView( Q.buffer, - aI, - f - ), OA = new Float32Array( + cI, + p + ), bA = new Float32Array( Q.buffer, - FI, - U * 3 - ), LA = new Uint32Array( + yI, + M * 3 + ), MA = new Uint32Array( Q.buffer, - k, + c, L ); - let Cg = K, Hg = Y; - for (let mA = 0; mA < M; ++mA) { - const $ = mA * T; - let RI; - if (mA < Y) - RI = Math.floor(mA / N); + let $I = n, Lg = H; + for (let TA = 0; TA < R; ++TA) { + const _ = TA * T; + let aI; + if (TA < H) + aI = Math.floor(TA / N); else { - const SI = LA[Cg - K]; - mA >= Hg + SI && (Cg += 1, Hg += SI), RI = Cg; - } - const sQ = o === 0 ? _.getFloat32($ + 0, !0) : (_.getUint16($ + 0, !0) - H) * TA + OA[3 * RI + 0], GQ = o === 0 ? _.getFloat32($ + 4, !0) : (_.getUint16($ + 2, !0) - H) * TA + OA[3 * RI + 1], yQ = o === 0 ? _.getFloat32($ + 8, !0) : (_.getUint16($ + 4, !0) - H) * TA + OA[3 * RI + 2], hQ = o === 0 ? _.getFloat32($ + gA + 0, !0) : NA(_.getUint16($ + gA + 0, !0)), RQ = o === 0 ? _.getFloat32($ + gA + 4, !0) : NA(_.getUint16($ + gA + 2, !0)), Xw = o === 0 ? _.getFloat32($ + gA + 8, !0) : NA(_.getUint16($ + gA + 4, !0)), Ww = o === 0 ? _.getFloat32($ + W + 0, !0) : NA( - _.getUint16($ + W + 0, !0) - ), jw = o === 0 ? _.getFloat32($ + W + 4, !0) : NA( - _.getUint16($ + W + 2, !0) - ), vw = o === 0 ? _.getFloat32($ + W + 8, !0) : NA( - _.getUint16($ + W + 4, !0) - ), zw = o === 0 ? _.getFloat32($ + W + 12, !0) : NA( - _.getUint16($ + W + 6, !0) - ), _w = _.getUint8($ + u + 0) / 255, $w = _.getUint8($ + u + 1) / 255, Ao = _.getUint8($ + u + 2) / 255, Io = _.getUint8($ + u + 3) / 255; + const kI = MA[$I - n]; + TA >= Lg + kI && ($I += 1, Lg += kI), aI = $I; + } + const wQ = w === 0 ? X.getFloat32(_ + 0, !0) : (X.getUint16(_ + 0, !0) - J) * PA + bA[3 * aI + 0], sQ = w === 0 ? X.getFloat32(_ + 4, !0) : (X.getUint16(_ + 2, !0) - J) * PA + bA[3 * aI + 1], aQ = w === 0 ? X.getFloat32(_ + 8, !0) : (X.getUint16(_ + 4, !0) - J) * PA + bA[3 * aI + 2], GQ = w === 0 ? X.getFloat32(_ + gA + 0, !0) : FA(X.getUint16(_ + gA + 0, !0)), hQ = w === 0 ? X.getFloat32(_ + gA + 4, !0) : FA(X.getUint16(_ + gA + 2, !0)), po = w === 0 ? X.getFloat32(_ + gA + 8, !0) : FA(X.getUint16(_ + gA + 4, !0)), uo = w === 0 ? X.getFloat32(_ + W + 0, !0) : FA( + X.getUint16(_ + W + 0, !0) + ), Po = w === 0 ? X.getFloat32(_ + W + 4, !0) : FA( + X.getUint16(_ + W + 2, !0) + ), bo = w === 0 ? X.getFloat32(_ + W + 8, !0) : FA( + X.getUint16(_ + W + 4, !0) + ), To = w === 0 ? X.getFloat32(_ + W + 12, !0) : FA( + X.getUint16(_ + W + 6, !0) + ), mo = X.getUint8(_ + b + 0) / 255, Vo = X.getUint8(_ + b + 1) / 255, Zo = X.getUint8(_ + b + 2) / 255, Oo = X.getUint8(_ + b + 3) / 255; if (I( - mA, + TA, + wQ, sQ, + aQ, GQ, - yQ, hQ, - RQ, - Xw, - jw, - vw, - zw, - Ww, - Io, - _w, - $w, - Ao - ), r >= 1 && wA) { - for (const [SI, Eg] of sA.entries()) - wA[SI] = a($, Eg); - if (GA) - for (const [SI, Eg] of aA.entries()) - GA[SI] = a($, Eg); - if (AI) - for (const [SI, Eg] of SA.entries()) - AI[SI] = a($, Eg); - g == null || g(mA, wA, GA, AI); - } - } - k += FA; - } -} -class GR { + po, + Po, + bo, + To, + uo, + Oo, + mo, + Vo, + Zo + ), K >= 1 && oA) { + for (const [kI, Ag] of sA.entries()) + oA[kI] = k(_, Ag); + if (aA) + for (const [kI, Ag] of yA.entries()) + aA[kI] = k(_, Ag); + if (_A) + for (const [kI, Ag] of cA.entries()) + _A[kI] = k(_, Ag); + g == null || g(TA, oA, aA, _A); + } + } + c += tA; + } +} +class it { constructor({ fileBytes: A }) { - this.version = -1, this.numSplats = 0, this.shDegree = 0, this.fractionalBits = 0, this.flags = 0, this.flagAntiAlias = !1, this.flagLod = !1, this.reserved = 0, this.headerParsed = !1, this.parsed = !1, this.fileBytes = A instanceof ArrayBuffer ? new Uint8Array(A) : A, this.reader = new eC({ + this.version = -1, this.numSplats = 0, this.shDegree = 0, this.fractionalBits = 0, this.flags = 0, this.flagAntiAlias = !1, this.flagLod = !1, this.reserved = 0, this.headerParsed = !1, this.parsed = !1, this.fileBytes = A instanceof ArrayBuffer ? new Uint8Array(A) : A, this.reader = new KE({ fileBytes: this.fileBytes }); } @@ -13764,64 +12799,64 @@ class GR { this.numSplats = A.getUint32(8, !0), this.shDegree = A.getUint8(12), this.fractionalBits = A.getUint8(13), this.flags = A.getUint8(14), this.flagAntiAlias = (this.flags & 1) !== 0, this.flagLod = (this.flags & 128) !== 0, this.reserved = A.getUint8(15), this.headerParsed = !0, this.parsed = !1; } async parseSplats(A, I, g, B, C, E, { - childCounts: D, - childStarts: i + childCounts: i, + childStarts: o } = {}) { if (!this.headerParsed) throw new Error("SPZ file header must be parsed first"); if (this.parsed) throw new Error("SPZ file already parsed"); if (this.parsed = !0, this.version === 1) { - const w = await this.reader.read(this.numSplats * 3 * 2), s = new Uint16Array(w.buffer); - for (let o = 0; o < this.numSplats; o++) { - const y = o * 3, h = NA(s[y]), k = NA(s[y + 1]), R = NA(s[y + 2]); - A == null || A(o, h, k, R); + const D = await this.reader.read(this.numSplats * 3 * 2), s = new Uint16Array(D.buffer); + for (let w = 0; w < this.numSplats; w++) { + const G = w * 3, h = FA(s[G]), c = FA(s[G + 1]), t = FA(s[G + 2]); + A == null || A(w, h, c, t); } } else if (this.version === 2 || this.version === 3) { - const w = 1 << this.fractionalBits, s = await this.reader.read(this.numSplats * 3 * 3); - for (let o = 0; o < this.numSplats; o++) { - const y = o * 9, h = ((s[y + 2] << 24 | s[y + 1] << 16 | s[y] << 8) >> 8) / w, k = ((s[y + 5] << 24 | s[y + 4] << 16 | s[y + 3] << 8) >> 8) / w, R = ((s[y + 8] << 24 | s[y + 7] << 16 | s[y + 6] << 8) >> 8) / w; - A == null || A(o, h, k, R); + const D = 1 << this.fractionalBits, s = await this.reader.read(this.numSplats * 3 * 3); + for (let w = 0; w < this.numSplats; w++) { + const G = w * 9, h = ((s[G + 2] << 24 | s[G + 1] << 16 | s[G] << 8) >> 8) / D, c = ((s[G + 5] << 24 | s[G + 4] << 16 | s[G + 3] << 8) >> 8) / D, t = ((s[G + 8] << 24 | s[G + 7] << 16 | s[G + 6] << 8) >> 8) / D; + A == null || A(w, h, c, t); } } else throw new Error("Unreachable"); { - const w = await this.reader.read(this.numSplats); + const D = await this.reader.read(this.numSplats); for (let s = 0; s < this.numSplats; s++) - I == null || I(s, w[s] / 255); + I == null || I(s, D[s] / 255); } { - const w = await this.reader.read(this.numSplats * 3), s = Tw / 0.15; - for (let o = 0; o < this.numSplats; o++) { - const y = o * 3, h = (w[y] / 255 - 0.5) * s + 0.5, k = (w[y + 1] / 255 - 0.5) * s + 0.5, R = (w[y + 2] / 255 - 0.5) * s + 0.5; - g == null || g(o, h, k, R); + const D = await this.reader.read(this.numSplats * 3), s = Ko / 0.15; + for (let w = 0; w < this.numSplats; w++) { + const G = w * 3, h = (D[G] / 255 - 0.5) * s + 0.5, c = (D[G + 1] / 255 - 0.5) * s + 0.5, t = (D[G + 2] / 255 - 0.5) * s + 0.5; + g == null || g(w, h, c, t); } } { - const w = await this.reader.read(this.numSplats * 3); + const D = await this.reader.read(this.numSplats * 3); for (let s = 0; s < this.numSplats; s++) { - const o = s * 3, y = Math.exp(w[o] / 16 - 10), h = Math.exp(w[o + 1] / 16 - 10), k = Math.exp(w[o + 2] / 16 - 10); - B == null || B(s, y, h, k); + const w = s * 3, G = Math.exp(D[w] / 16 - 10), h = Math.exp(D[w + 1] / 16 - 10), c = Math.exp(D[w + 2] / 16 - 10); + B == null || B(s, G, h, c); } } if (this.version === 3) { - const w = 1 / Math.sqrt(2), s = await this.reader.read(this.numSplats * 4); - for (let o = 0; o < this.numSplats; o++) { - const y = o * 4, h = [0, 0, 0, 0], k = [ - s[y], - s[y + 1], - s[y + 2], - s[y + 3] - ], R = k[0] + (k[1] << 8) + (k[2] << 16) + (k[3] << 24), F = 511, a = R >>> 30; - let S = R, M = 0; + const D = 1 / Math.sqrt(2), s = await this.reader.read(this.numSplats * 4); + for (let w = 0; w < this.numSplats; w++) { + const G = w * 4, h = [0, 0, 0, 0], c = [ + s[G], + s[G + 1], + s[G + 2], + s[G + 3] + ], t = c[0] + (c[1] << 8) + (c[2] << 16) + (c[3] << 24), y = 511, k = t >>> 30; + let F = t, R = 0; for (let N = 3; N >= 0; --N) - if (N !== a) { - const U = S & F, J = S >>> 9 & 1; - S = S >>> 10, h[N] = w * (U / F), h[N] = J === 0 ? h[N] : -h[N], M += h[N] * h[N]; + if (N !== k) { + const M = F & y, U = F >>> 9 & 1; + F = F >>> 10, h[N] = D * (M / y), h[N] = U === 0 ? h[N] : -h[N], R += h[N] * h[N]; } - const c = 1 - M; - h[a] = Math.sqrt(Math.max(c, 0)), C == null || C( - o, + const S = 1 - R; + h[k] = Math.sqrt(Math.max(S, 0)), C == null || C( + w, h[0], h[1], h[2], @@ -13829,51 +12864,51 @@ class GR { ); } } else { - const w = await this.reader.read(this.numSplats * 3); + const D = await this.reader.read(this.numSplats * 3); for (let s = 0; s < this.numSplats; s++) { - const o = s * 3, y = w[o] / 127.5 - 1, h = w[o + 1] / 127.5 - 1, k = w[o + 2] / 127.5 - 1, R = Math.sqrt( - Math.max(0, 1 - y * y - h * h - k * k) + const w = s * 3, G = D[w] / 127.5 - 1, h = D[w + 1] / 127.5 - 1, c = D[w + 2] / 127.5 - 1, t = Math.sqrt( + Math.max(0, 1 - G * G - h * h - c * c) ); - C == null || C(s, y, h, k, R); + C == null || C(s, G, h, c, t); } } if (E && this.shDegree >= 1) { - const w = new Float32Array(9), s = this.shDegree >= 2 ? new Float32Array(5 * 3) : void 0, o = this.shDegree >= 3 ? new Float32Array(7 * 3) : void 0, y = await this.reader.read( - this.numSplats * uw[this.shDegree] * 3 + const D = new Float32Array(9), s = this.shDegree >= 2 ? new Float32Array(5 * 3) : void 0, w = this.shDegree >= 3 ? new Float32Array(7 * 3) : void 0, G = await this.reader.read( + this.numSplats * ro[this.shDegree] * 3 ); let h = 0; - for (let k = 0; k < this.numSplats; k++) { - for (let R = 0; R < 9; ++R) - w[R] = (y[h + R] - 128) / 128; + for (let c = 0; c < this.numSplats; c++) { + for (let t = 0; t < 9; ++t) + D[t] = (G[h + t] - 128) / 128; if (h += 9, s) { - for (let R = 0; R < 15; ++R) - s[R] = (y[h + R] - 128) / 128; + for (let t = 0; t < 15; ++t) + s[t] = (G[h + t] - 128) / 128; h += 15; } - if (o) { - for (let R = 0; R < 21; ++R) - o[R] = (y[h + R] - 128) / 128; + if (w) { + for (let t = 0; t < 21; ++t) + w[t] = (G[h + t] - 128) / 128; h += 21; } - E == null || E(k, w, s, o); + E == null || E(c, D, s, w); } } if (this.flagLod) { - let w = await this.reader.read(this.numSplats * 2); + let D = await this.reader.read(this.numSplats * 2); for (let s = 0; s < this.numSplats; s++) { - const o = s * 2, y = w[o] + (w[o + 1] << 8); - D == null || D(s, y); + const w = s * 2, G = D[w] + (D[w + 1] << 8); + i == null || i(s, G); } - w = await this.reader.read(this.numSplats * 4); + D = await this.reader.read(this.numSplats * 4); for (let s = 0; s < this.numSplats; s++) { - const o = s * 4, y = w[o] + (w[o + 1] << 8) + (w[o + 2] << 16) + (w[o + 3] << 24); - i == null || i(s, y); + const w = s * 4, G = D[w] + (D[w + 1] << 8) + (D[w + 2] << 16) + (D[w + 3] << 24); + o == null || o(s, G); } } } } -const uw = { 1: 3, 2: 8, 3: 15 }, Tw = 0.28209479177387814, yR = 1347635022, hR = 3, RR = 1; -class MI { +const ro = { 1: 3, 2: 8, 3: 15 }, Ko = 0.28209479177387814, Dt = 1347635022, ot = 3, wt = 1; +class RI { constructor({ numSplats: A, shDegree: I, @@ -13883,13 +12918,13 @@ class MI { this.clippedCount = 0; const C = 20 + // Rotation (I >= 1 ? 9 : 0) + (I >= 2 ? 15 : 0) + (I >= 3 ? 21 : 0), E = 16 + A * C; - this.buffer = new ArrayBuffer(E), this.view = new DataView(this.buffer), this.view.setUint32(0, yR, !0), this.view.setUint32(4, hR, !0), this.view.setUint32(8, A, !0), this.view.setUint8(12, I), this.view.setUint8(13, g), this.view.setUint8(14, B ? RR : 0), this.view.setUint8(15, 0), this.numSplats = A, this.shDegree = I, this.fractionalBits = g, this.fraction = 1 << g, this.flagAntiAlias = B; + this.buffer = new ArrayBuffer(E), this.view = new DataView(this.buffer), this.view.setUint32(0, Dt, !0), this.view.setUint32(4, ot, !0), this.view.setUint32(8, A, !0), this.view.setUint8(12, I), this.view.setUint8(13, g), this.view.setUint8(14, B ? wt : 0), this.view.setUint8(15, 0), this.numSplats = A, this.shDegree = I, this.fractionalBits = g, this.fraction = 1 << g, this.flagAntiAlias = B; } setCenter(A, I, g, B) { - const C = Math.round(I * this.fraction), E = Math.max(-8388607, Math.min(8388607, C)), D = Math.round(g * this.fraction), i = Math.max(-8388607, Math.min(8388607, D)), w = Math.round(B * this.fraction), s = Math.max(-8388607, Math.min(8388607, w)); - (C !== E || D !== i || w !== s) && (this.clippedCount += 1); + const C = Math.round(I * this.fraction), E = Math.max(-8388607, Math.min(8388607, C)), i = Math.round(g * this.fraction), o = Math.max(-8388607, Math.min(8388607, i)), D = Math.round(B * this.fraction), s = Math.max(-8388607, Math.min(8388607, D)); + (C !== E || i !== o || D !== s) && (this.clippedCount += 1); const h = 16 + A * 9; - this.view.setUint8(h, E & 255), this.view.setUint8(h + 1, E >> 8 & 255), this.view.setUint8(h + 2, E >> 16 & 255), this.view.setUint8(h + 3, i & 255), this.view.setUint8(h + 4, i >> 8 & 255), this.view.setUint8(h + 5, i >> 16 & 255), this.view.setUint8(h + 6, s & 255), this.view.setUint8(h + 7, s >> 8 & 255), this.view.setUint8(h + 8, s >> 16 & 255); + this.view.setUint8(h, E & 255), this.view.setUint8(h + 1, E >> 8 & 255), this.view.setUint8(h + 2, E >> 16 & 255), this.view.setUint8(h + 3, o & 255), this.view.setUint8(h + 4, o >> 8 & 255), this.view.setUint8(h + 5, o >> 16 & 255), this.view.setUint8(h + 6, s & 255), this.view.setUint8(h + 7, s >> 8 & 255), this.view.setUint8(h + 8, s >> 16 & 255); } setAlpha(A, I) { const g = 16 + this.numSplats * 9 + A; @@ -13899,12 +12934,12 @@ class MI { ); } static scaleRgb(A) { - const I = ((A - 0.5) / (Tw / 0.15) + 0.5) * 255; + const I = ((A - 0.5) / (Ko / 0.15) + 0.5) * 255; return Math.max(0, Math.min(255, Math.round(I))); } setRgb(A, I, g, B) { const C = 16 + this.numSplats * 10 + A * 3; - this.view.setUint8(C, MI.scaleRgb(I)), this.view.setUint8(C + 1, MI.scaleRgb(g)), this.view.setUint8(C + 2, MI.scaleRgb(B)); + this.view.setUint8(C, RI.scaleRgb(I)), this.view.setUint8(C + 1, RI.scaleRgb(g)), this.view.setUint8(C + 2, RI.scaleRgb(B)); } setScale(A, I, g, B) { const C = 16 + this.numSplats * 13 + A * 3; @@ -13920,37 +12955,37 @@ class MI { ); } setQuat(A, ...I) { - const g = 16 + this.numSplats * 16 + A * 4, B = FC(I); + const g = 16 + this.numSplats * 16 + A * 4, B = SE(I); let C = 0; - for (let i = 1; i < 4; ++i) - Math.abs(B[i]) > Math.abs(B[C]) && (C = i); + for (let o = 1; o < 4; ++o) + Math.abs(B[o]) > Math.abs(B[C]) && (C = o); const E = B[C] < 0 ? 1 : 0; - let D = C; - for (let i = 0; i < 4; ++i) - if (i !== C) { - const w = (B[i] < 0 ? 1 : 0) ^ E, s = Math.floor( - 511 * (Math.abs(B[i]) / Math.SQRT1_2) + 0.5 + let i = C; + for (let o = 0; o < 4; ++o) + if (o !== C) { + const D = (B[o] < 0 ? 1 : 0) ^ E, s = Math.floor( + 511 * (Math.abs(B[o]) / Math.SQRT1_2) + 0.5 ); - D = D << 10 | w << 9 | s; + i = i << 10 | D << 9 | s; } - this.view.setUint8(g, D & 255), this.view.setUint8(g + 1, D >> 8 & 255), this.view.setUint8(g + 2, D >> 16 & 255), this.view.setUint8(g + 3, D >>> 24 & 255); + this.view.setUint8(g, i & 255), this.view.setUint8(g + 1, i >> 8 & 255), this.view.setUint8(g + 2, i >> 16 & 255), this.view.setUint8(g + 3, i >>> 24 & 255); } static quantizeSh(A, I) { const g = Math.round(A * 128) + 128, B = 1 << 8 - I, C = Math.floor((g + B / 2) / B) * B; return Math.max(0, Math.min(255, C)); } setSh(A, I, g, B) { - const C = uw[this.shDegree] || 0, E = 16 + this.numSplats * 20 + A * C * 3; - for (let D = 0; D < 9; ++D) - this.view.setUint8(E + D, MI.quantizeSh(I[D], 5)); + const C = ro[this.shDegree] || 0, E = 16 + this.numSplats * 20 + A * C * 3; + for (let i = 0; i < 9; ++i) + this.view.setUint8(E + i, RI.quantizeSh(I[i], 5)); if (g) { - const D = E + 9; - for (let i = 0; i < 15; ++i) - this.view.setUint8(D + i, MI.quantizeSh(g[i], 4)); + const i = E + 9; + for (let o = 0; o < 15; ++o) + this.view.setUint8(i + o, RI.quantizeSh(g[o], 4)); if (B) { - const i = D + 15; - for (let w = 0; w < 21; ++w) - this.view.setUint8(i + w, MI.quantizeSh(B[w], 4)); + const o = i + 15; + for (let D = 0; D < 21; ++D) + this.view.setUint8(o + D, RI.quantizeSh(B[D], 4)); } } } @@ -13969,9 +13004,9 @@ class MI { ), new Uint8Array(C); } } -async function xk(Q) { - var s, o, y; - const A = new QR(), { +async function Yy(Q) { + var s, w, G; + const A = new ph(), { inputs: I, clipXyz: g, maxSh: B, @@ -13979,233 +13014,233 @@ async function xk(Q) { opacityThreshold: E } = Q; for (const h of I) { - let k = function(t) { - return t.multiplyScalar(M), t.applyQuaternion(c), t.add(N), t; - }, R = function(t) { - return t.multiplyScalar(M), t; - }, F = function(t) { - return t.premultiply(c), t; - }, a = function(t) { - return !U || U.containsPoint(t); - }, S = function(t) { - return E !== void 0 ? t >= E : !0; + let c = function(e) { + return e.multiplyScalar(R), e.applyQuaternion(S), e.add(N), e; + }, t = function(e) { + return e.multiplyScalar(R), e; + }, y = function(e) { + return e.premultiply(S), e; + }, k = function(e) { + return !M || M.containsPoint(e); + }, F = function(e) { + return E !== void 0 ? e >= E : !0; }; - const M = ((s = h.transform) == null ? void 0 : s.scale) ?? 1, c = new G.Quaternion().fromArray( - ((o = h.transform) == null ? void 0 : o.quaternion) ?? [0, 0, 0, 1] - ), N = new G.Vector3().fromArray( - ((y = h.transform) == null ? void 0 : y.translate) ?? [0, 0, 0] - ), U = g ? new G.Box3( - new G.Vector3().fromArray(g.min), - new G.Vector3().fromArray(g.max) + const R = ((s = h.transform) == null ? void 0 : s.scale) ?? 1, S = new a.Quaternion().fromArray( + ((w = h.transform) == null ? void 0 : w.quaternion) ?? [0, 0, 0, 1] + ), N = new a.Vector3().fromArray( + ((G = h.transform) == null ? void 0 : G.translate) ?? [0, 0, 0] + ), M = g ? new a.Box3( + new a.Vector3().fromArray(g.min), + new a.Vector3().fromArray(g.max) ) : void 0; - let J = h.fileType; - switch (J || (J = NB(h.fileBytes), !J && h.pathOrUrl && (J = cB(h.pathOrUrl))), J) { - case hA.PLY: { - const t = new vg({ fileBytes: h.fileBytes }); - await t.parseHeader(); - let H = null; - t.parseSplats( - (K, Y, L, q, n, r, p, m, IA, X, EA, j, gA, W, u) => { - const b = k(new G.Vector3(Y, L, q)); - if (a(b) && S(j)) { - H = A.pushSplat(), A.setCenter(H, b.x, b.y, b.z); - const T = R( - new G.Vector3(n, r, p) + let U = h.fileType; + switch (U || (U = Uo(h.fileBytes), !U && h.pathOrUrl && (U = Lo(h.pathOrUrl))), U) { + case UA.PLY: { + const e = new TQ({ fileBytes: h.fileBytes }); + await e.parseHeader(); + let J = null; + e.parseSplats( + (n, H, L, l, d, K, f, V, IA, O, CA, v, gA, W, b) => { + const u = c(new a.Vector3(H, L, l)); + if (k(u) && F(v)) { + J = A.pushSplat(), A.setCenter(J, u.x, u.y, u.z); + const T = t( + new a.Vector3(d, K, f) ); - A.setScale(H, T.x, T.y, T.z); - const f = F( - new G.Quaternion(m, IA, X, EA) + A.setScale(J, T.x, T.y, T.z); + const p = y( + new a.Quaternion(V, IA, O, CA) ); A.setQuaternion( - H, - f.x, - f.y, - f.z, - f.w - ), A.setOpacity(H, j), A.setColor(H, gA, W, u); + J, + p.x, + p.y, + p.z, + p.w + ), A.setOpacity(J, v), A.setColor(J, gA, W, b); } else - H = null; + J = null; }, - (K, Y, L, q) => { - Y && H !== null && A.setSh1(H, Y), L && H !== null && A.setSh2(H, L), q && H !== null && A.setSh3(H, q); + (n, H, L, l) => { + H && J !== null && A.setSh1(J, H), L && J !== null && A.setSh2(J, L), l && J !== null && A.setSh3(J, l); } ); break; } - case hA.SPZ: { - const t = new GR({ fileBytes: h.fileBytes }); - await t.parseHeader(); - const H = new Int32Array(t.numSplats); - H.fill(-1); - const K = new Float32Array(t.numSplats * 3), Y = new G.Vector3(); - t.parseSplats( - (L, q, n, r) => { - const p = k(new G.Vector3(q, n, r)); - K[L * 3] = p.x, K[L * 3 + 1] = p.y, K[L * 3 + 2] = p.z; + case UA.SPZ: { + const e = new it({ fileBytes: h.fileBytes }); + await e.parseHeader(); + const J = new Int32Array(e.numSplats); + J.fill(-1); + const n = new Float32Array(e.numSplats * 3), H = new a.Vector3(); + e.parseSplats( + (L, l, d, K) => { + const f = c(new a.Vector3(l, d, K)); + n[L * 3] = f.x, n[L * 3 + 1] = f.y, n[L * 3 + 2] = f.z; }, - (L, q) => { - Y.fromArray(K, L * 3), a(Y) && S(q) && (H[L] = A.pushSplat(), A.setCenter(H[L], Y.x, Y.y, Y.z), A.setOpacity(H[L], q)); + (L, l) => { + H.fromArray(n, L * 3), k(H) && F(l) && (J[L] = A.pushSplat(), A.setCenter(J[L], H.x, H.y, H.z), A.setOpacity(J[L], l)); }, - (L, q, n, r) => { - H[L] >= 0 && A.setColor(H[L], q, n, r); + (L, l, d, K) => { + J[L] >= 0 && A.setColor(J[L], l, d, K); }, - (L, q, n, r) => { - if (H[L] >= 0) { - const p = R( - new G.Vector3(q, n, r) + (L, l, d, K) => { + if (J[L] >= 0) { + const f = t( + new a.Vector3(l, d, K) ); - A.setScale(H[L], p.x, p.y, p.z); + A.setScale(J[L], f.x, f.y, f.z); } }, - (L, q, n, r, p) => { - if (H[L] >= 0) { - const m = F( - new G.Quaternion(q, n, r, p) + (L, l, d, K, f) => { + if (J[L] >= 0) { + const V = y( + new a.Quaternion(l, d, K, f) ); A.setQuaternion( - H[L], - m.x, - m.y, - m.z, - m.w + J[L], + V.x, + V.y, + V.z, + V.w ); } }, - (L, q, n, r) => { - H[L] >= 0 && (A.setSh1(H[L], q), n && A.setSh2(H[L], n), r && A.setSh3(H[L], r)); + (L, l, d, K) => { + J[L] >= 0 && (A.setSh1(J[L], l), d && A.setSh2(J[L], d), K && A.setSh3(J[L], K)); } ); break; } - case hA.SPLAT: - wR( + case UA.SPLAT: + Bt( h.fileBytes, - (t) => { + (e) => { }, - (t, H, K, Y, L, q, n, r, p, m, IA, X, EA, j, gA) => { - const W = k(new G.Vector3(H, K, Y)); - if (a(W) && S(X)) { - const u = A.pushSplat(); - A.setCenter(u, W.x, W.y, W.z); - const b = R( - new G.Vector3(L, q, n) + (e, J, n, H, L, l, d, K, f, V, IA, O, CA, v, gA) => { + const W = c(new a.Vector3(J, n, H)); + if (k(W) && F(O)) { + const b = A.pushSplat(); + A.setCenter(b, W.x, W.y, W.z); + const u = t( + new a.Vector3(L, l, d) ); - A.setScale(u, b.x, b.y, b.z); - const T = F( - new G.Quaternion(r, p, m, IA) + A.setScale(b, u.x, u.y, u.z); + const T = y( + new a.Quaternion(K, f, V, IA) ); A.setQuaternion( - u, + b, T.x, T.y, T.z, T.w - ), A.setOpacity(u, X), A.setColor(u, EA, j, gA); + ), A.setOpacity(b, O), A.setColor(b, CA, v, gA); } } ); break; - case hA.KSPLAT: { - let t = null; - sR( + case UA.KSPLAT: { + let e = null; + Et( h.fileBytes, - (H) => { + (J) => { }, - (H, K, Y, L, q, n, r, p, m, IA, X, EA, j, gA, W) => { - const u = k(new G.Vector3(K, Y, L)); - if (a(u) && S(EA)) { - t = A.pushSplat(), A.setCenter(t, u.x, u.y, u.z); - const b = R( - new G.Vector3(q, n, r) + (J, n, H, L, l, d, K, f, V, IA, O, CA, v, gA, W) => { + const b = c(new a.Vector3(n, H, L)); + if (k(b) && F(CA)) { + e = A.pushSplat(), A.setCenter(e, b.x, b.y, b.z); + const u = t( + new a.Vector3(l, d, K) ); - A.setScale(t, b.x, b.y, b.z); - const T = F( - new G.Quaternion(p, m, IA, X) + A.setScale(e, u.x, u.y, u.z); + const T = y( + new a.Quaternion(f, V, IA, O) ); A.setQuaternion( - t, + e, T.x, T.y, T.z, T.w - ), A.setOpacity(t, EA), A.setColor(t, j, gA, W); + ), A.setOpacity(e, CA), A.setColor(e, v, gA, W); } else - t = null; + e = null; }, - (H, K, Y, L) => { - t !== null && (A.setSh1(t, K), Y && A.setSh2(t, Y), L && A.setSh3(t, L)); + (J, n, H, L) => { + e !== null && (A.setSh1(e, n), H && A.setSh2(e, H), L && A.setSh3(e, L)); } ); break; } default: - throw new Error(`transcodeSpz not implemented for ${J}`); + throw new Error(`transcodeSpz not implemented for ${U}`); } } - const D = Math.min( + const i = Math.min( B ?? 3, A.sh3 ? 3 : A.sh2 ? 2 : A.sh1 ? 1 : 0 - ), i = new MI({ + ), o = new RI({ numSplats: A.numSplats, - shDegree: D, + shDegree: i, fractionalBits: C, flagAntiAlias: !0 }); for (let h = 0; h < A.numSplats; ++h) { - const k = h * 3, R = h * 4; - i.setCenter( + const c = h * 3, t = h * 4; + o.setCenter( h, - A.centers[k], - A.centers[k + 1], - A.centers[k + 2] - ), i.setScale( + A.centers[c], + A.centers[c + 1], + A.centers[c + 2] + ), o.setScale( h, - A.scales[k], - A.scales[k + 1], - A.scales[k + 2] - ), i.setQuat( + A.scales[c], + A.scales[c + 1], + A.scales[c + 2] + ), o.setQuat( h, - A.quaternions[R], - A.quaternions[R + 1], - A.quaternions[R + 2], - A.quaternions[R + 3] - ), i.setAlpha(h, A.opacities[h]), i.setRgb( + A.quaternions[t], + A.quaternions[t + 1], + A.quaternions[t + 2], + A.quaternions[t + 3] + ), o.setAlpha(h, A.opacities[h]), o.setRgb( h, - A.colors[k], - A.colors[k + 1], - A.colors[k + 2] - ), A.sh1 && D >= 1 && i.setSh( + A.colors[c], + A.colors[c + 1], + A.colors[c + 2] + ), A.sh1 && i >= 1 && o.setSh( h, A.sh1.slice(h * 9, (h + 1) * 9), - D >= 2 && A.sh2 ? A.sh2.slice(h * 15, (h + 1) * 15) : void 0, - D >= 3 && A.sh3 ? A.sh3.slice(h * 21, (h + 1) * 21) : void 0 + i >= 2 && A.sh2 ? A.sh2.slice(h * 15, (h + 1) * 15) : void 0, + i >= 3 && A.sh3 ? A.sh3.slice(h * 21, (h + 1) * 21) : void 0 ); } - return { fileBytes: await i.finalize(), clippedCount: i.clippedCount }; + return { fileBytes: await o.finalize(), clippedCount: o.clippedCount }; } -var kR = /* @__PURE__ */ ((Q) => (Q.DUAL_QUATERNION = "dual_quaternion", Q.LINEAR_BLEND = "linear_blend", Q))(kR || {}); -const O = class O { +var st = /* @__PURE__ */ ((Q) => (Q.DUAL_QUATERNION = "dual_quaternion", Q.LINEAR_BLEND = "linear_blend", Q))(st || {}); +const m = class m { constructor(A) { this.mesh = A.mesh, this.numSplats = A.numSplats ?? this.mesh.numSplats, this.mode = A.mode ?? "dual_quaternion"; - const { width: I, height: g, depth: B, maxSplats: C } = BA(this.numSplats); - this.skinData = new Uint16Array(C * 4), this.skinTexture = new G.DataArrayTexture( + const { width: I, height: g, depth: B, maxSplats: C } = EA(this.numSplats); + this.skinData = new Uint16Array(C * 4), this.skinTexture = new a.DataArrayTexture( this.skinData, I, g, B - ), this.skinTexture.format = G.RGBAIntegerFormat, this.skinTexture.type = G.UnsignedShortType, this.skinTexture.internalFormat = "RGBA16UI", this.skinTexture.needsUpdate = !0, this.numBones = A.numBones ?? 256, this.boneData = new Float32Array(this.numBones * 16), this.boneTexture = new G.DataTexture( + ), this.skinTexture.format = a.RGBAIntegerFormat, this.skinTexture.type = a.UnsignedShortType, this.skinTexture.internalFormat = "RGBA16UI", this.skinTexture.needsUpdate = !0, this.numBones = A.numBones ?? 256, this.boneData = new Float32Array(this.numBones * 16), this.boneTexture = new a.DataTexture( this.boneData, 4, this.numBones, - G.RGBAFormat, - G.FloatType - ), this.boneTexture.internalFormat = "RGBA32F", this.boneTexture.needsUpdate = !0, this.boneRestQuatPosScale = eQ(this.numBones, () => ({ - quat: new G.Quaternion(), - pos: new G.Vector3(), - scale: new G.Vector3() - })), this.mode === "linear_blend" ? this.boneRestInvMats = eQ(this.numBones, () => new G.Matrix4()) : this.boneRestInvMats = [], this.uniform = new x({ + a.RGBAFormat, + a.FloatType + ), this.boneTexture.internalFormat = "RGBA32F", this.boneTexture.needsUpdate = !0, this.boneRestQuatPosScale = KQ(this.numBones, () => ({ + quat: new a.Quaternion(), + pos: new a.Vector3(), + scale: new a.Vector3() + })), this.mode === "linear_blend" ? this.boneRestInvMats = KQ(this.numBones, () => new a.Matrix4()) : this.boneRestInvMats = [], this.uniform = new x({ key: "skinning", - type: wQ, + type: DQ, globals: () => [oQ], value: { numSplats: this.numSplats, @@ -14219,14 +13254,14 @@ const O = class O { modify(A) { if (this.mode === "linear_blend") throw new Error("Linear blend skinning requires covSplats=true"); - return aR(A, this.uniform); + return Gt(A, this.uniform); } modifyCov(A) { - return this.mode === "dual_quaternion" ? cR(A, this.uniform) : MR(A, this.uniform); + return this.mode === "dual_quaternion" ? yt(A, this.uniform) : ct(A, this.uniform); } // Set the "rest" pose for a bone with position and quaternion orientation. setRestQuatPos(A, I, g) { - this.boneRestQuatPosScale[A].quat.copy(I), this.boneRestQuatPosScale[A].pos.copy(g), this.boneRestQuatPosScale[A].scale.copy(O.UNIT_SCALE), this.mode === "linear_blend" && this.boneRestInvMats[A].compose(g, I, O.UNIT_SCALE).invert(), this.setBoneQuatPos(A, I, g); + this.boneRestQuatPosScale[A].quat.copy(I), this.boneRestQuatPosScale[A].pos.copy(g), this.boneRestQuatPosScale[A].scale.copy(m.UNIT_SCALE), this.mode === "linear_blend" && this.boneRestInvMats[A].compose(g, I, m.UNIT_SCALE).invert(), this.setBoneQuatPos(A, I, g); } getRestQuatPos(A, I, g) { I.copy(this.boneRestQuatPosScale[A].quat), g.copy(this.boneRestQuatPosScale[A].pos); @@ -14250,33 +13285,33 @@ const O = class O { // Set the "current" position and orientation of a bone. setBoneQuatPos(A, I, g) { if (this.mode === "dual_quaternion") { - O.relQuat.copy(this.boneRestQuatPosScale[A].quat).invert(), O.relPos.copy(g).sub(this.boneRestQuatPosScale[A].pos), O.relQuat.multiply(I), O.dual.set( - O.relPos.x, - O.relPos.y, - O.relPos.z, + m.relQuat.copy(this.boneRestQuatPosScale[A].quat).invert(), m.relPos.copy(g).sub(this.boneRestQuatPosScale[A].pos), m.relQuat.multiply(I), m.dual.set( + m.relPos.x, + m.relPos.y, + m.relPos.z, 0 - ).multiply(O.relQuat); + ).multiply(m.relQuat); const B = A * 16; - this.boneData[B + 0] = O.relQuat.x, this.boneData[B + 1] = O.relQuat.y, this.boneData[B + 2] = O.relQuat.z, this.boneData[B + 3] = O.relQuat.w, this.boneData[B + 4] = 0.5 * O.dual.x, this.boneData[B + 5] = 0.5 * O.dual.y, this.boneData[B + 6] = 0.5 * O.dual.z, this.boneData[B + 7] = 0.5 * O.dual.w; + this.boneData[B + 0] = m.relQuat.x, this.boneData[B + 1] = m.relQuat.y, this.boneData[B + 2] = m.relQuat.z, this.boneData[B + 3] = m.relQuat.w, this.boneData[B + 4] = 0.5 * m.dual.x, this.boneData[B + 5] = 0.5 * m.dual.y, this.boneData[B + 6] = 0.5 * m.dual.z, this.boneData[B + 7] = 0.5 * m.dual.w; } else - this.setBoneQuatPosScale(A, I, g, O.UNIT_SCALE); + this.setBoneQuatPosScale(A, I, g, m.UNIT_SCALE); } setBoneQuatPosScale(A, I, g, B) { if (this.mode === "dual_quaternion") throw new Error( "setBoneQuatPosScale only supported for linear blend skinning" ); - O.skinMat.compose(g, I, B), this.setBoneMatrix(A, O.skinMat); + m.skinMat.compose(g, I, B), this.setBoneMatrix(A, m.skinMat); } setBoneMatrix(A, I) { if (this.mode !== "linear_blend") throw new Error("setBoneMatrix only supported for linear blend skinning"); - O.skinMat.multiplyMatrices( + m.skinMat.multiplyMatrices( this.boneRestInvMats[A], I ); const g = A * 16; - this.boneData[g + 0] = O.skinMat.elements[0], this.boneData[g + 1] = O.skinMat.elements[1], this.boneData[g + 2] = O.skinMat.elements[2], this.boneData[g + 3] = O.skinMat.elements[4], this.boneData[g + 4] = O.skinMat.elements[5], this.boneData[g + 5] = O.skinMat.elements[6], this.boneData[g + 6] = O.skinMat.elements[8], this.boneData[g + 7] = O.skinMat.elements[9], this.boneData[g + 8] = O.skinMat.elements[10], this.boneData[g + 9] = O.skinMat.elements[12], this.boneData[g + 10] = O.skinMat.elements[13], this.boneData[g + 11] = O.skinMat.elements[14]; + this.boneData[g + 0] = m.skinMat.elements[0], this.boneData[g + 1] = m.skinMat.elements[1], this.boneData[g + 2] = m.skinMat.elements[2], this.boneData[g + 3] = m.skinMat.elements[4], this.boneData[g + 4] = m.skinMat.elements[5], this.boneData[g + 5] = m.skinMat.elements[6], this.boneData[g + 6] = m.skinMat.elements[8], this.boneData[g + 7] = m.skinMat.elements[9], this.boneData[g + 8] = m.skinMat.elements[10], this.boneData[g + 9] = m.skinMat.elements[12], this.boneData[g + 10] = m.skinMat.elements[13], this.boneData[g + 11] = m.skinMat.elements[14]; } // Set up to 4 bone indices and weights for a Gsplat. For fewer than 4 bones, // you can set the remaining weights to 0 (and index=0). @@ -14290,16 +13325,16 @@ const O = class O { this.boneTexture.needsUpdate = !0, this.mesh.needsUpdate = !0; } }; -O.UNIT_SCALE = new G.Vector3(1, 1, 1), O.relQuat = new G.Quaternion(), O.relPos = new G.Vector3(), O.dual = new G.Quaternion(), O.skinMat = new G.Matrix4(); -let ZB = O; -const wQ = { type: "GsplatSkinning" }, oQ = oA(` +m.UNIT_SCALE = new a.Vector3(1, 1, 1), m.relQuat = new a.Quaternion(), m.relPos = new a.Vector3(), m.dual = new a.Quaternion(), m.skinMat = new a.Matrix4(); +let pB = m; +const DQ = { type: "GsplatSkinning" }, oQ = GA(` struct GsplatSkinning { int numSplats; int numBones; usampler2DArray skinTexture; sampler2D boneTexture; }; -`), FR = oA(` +`), at = GA(` void applyGsplatSkinning( int numSplats, int numBones, usampler2DArray skinTexture, sampler2D boneTexture, @@ -14359,11 +13394,11 @@ const wQ = { type: "GsplatSkinning" }, oQ = oA(` quaternion = quatQuat(quat, quaternion); } `); -function aR(Q, A) { - return new d({ - inTypes: { gsplat: Z, skinning: wQ }, - outTypes: { gsplat: Z }, - globals: () => [oQ, FR], +function Gt(Q, A) { + return new q({ + inTypes: { gsplat: j, skinning: DQ }, + outTypes: { gsplat: j }, + globals: () => [oQ, at], inputs: { gsplat: Q, skinning: A }, statements: ({ inputs: g, outputs: B }) => { const { skinning: C } = g, { gsplat: E } = B; @@ -14380,7 +13415,7 @@ function aR(Q, A) { } }).outputs.gsplat; } -const SR = oA(` +const ht = GA(` void applyCovSplatDQSkinning( int numSplats, int numBones, usampler2DArray skinTexture, sampler2D boneTexture, @@ -14444,7 +13479,7 @@ const SR = oA(` xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]); xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]); } -`), NR = oA(` +`), tt = GA(` void applyCovSplatLBSkinning( int numSplats, int numBones, usampler2DArray skinTexture, sampler2D boneTexture, @@ -14492,11 +13527,11 @@ const SR = oA(` xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]); } `); -function cR(Q, A) { - return new d({ - inTypes: { covsplat: eA, skinning: wQ }, - outTypes: { covsplat: eA }, - globals: () => [oQ, SR], +function yt(Q, A) { + return new q({ + inTypes: { covsplat: nA, skinning: DQ }, + outTypes: { covsplat: nA }, + globals: () => [oQ, ht], inputs: { covsplat: Q, skinning: A }, statements: ({ inputs: g, outputs: B }) => { const { skinning: C } = g, { covsplat: E } = B; @@ -14513,11 +13548,11 @@ function cR(Q, A) { } }).outputs.covsplat; } -function MR(Q, A) { - return new d({ - inTypes: { covsplat: eA, skinning: wQ }, - outTypes: { covsplat: eA }, - globals: () => [oQ, NR], +function ct(Q, A) { + return new q({ + inTypes: { covsplat: nA, skinning: DQ }, + outTypes: { covsplat: nA }, + globals: () => [oQ, tt], inputs: { covsplat: Q, skinning: A }, statements: ({ inputs: g, outputs: B }) => { const { skinning: C } = g, { covsplat: E } = B; @@ -14534,7 +13569,7 @@ function MR(Q, A) { } }).outputs.covsplat; } -function lk({ +function ry({ // PackedSplats object to add splats to splats: Q, // min and max box extents of the grid @@ -14551,22 +13586,22 @@ function lk({ // ((THREE.Color, THREE.Vector3) => void) (default: RGB-modulated grid) color: E }) { - const i = new G.Vector3(), w = new G.Vector3(), s = new G.Quaternion(0, 0, 0, 1); - E == null && (E = (y, h) => y.set( + const o = new a.Vector3(), D = new a.Vector3(), s = new a.Quaternion(0, 0, 0, 1); + E == null && (E = (G, h) => G.set( 0.55 + 0.45 * Math.cos(h.x * 1), 0.55 + 0.45 * Math.cos(h.y * 1), 0.55 + 0.45 * Math.cos(h.z * 1) )); - const o = new G.Color(); - for (let y = A.min.z; y < A.max.z + 1e-6; y += I) + const w = new a.Color(); + for (let G = A.min.z; G < A.max.z + 1e-6; G += I) for (let h = A.min.y; h < A.max.y + 1e-6; h += I) - for (let k = A.min.x; k < A.max.x + 1e-6; k += I) { - i.set(k, h, y); - for (let R = 0; R < 2; ++R) - w.setScalar(g * (R ? 1 : B)), R ? typeof E == "function" ? E(o, i) : o.copy(E) : o.setScalar(0), Q.pushSplat(i, w, s, C, o); + for (let c = A.min.x; c < A.max.x + 1e-6; c += I) { + o.set(c, h, G); + for (let t = 0; t < 2; ++t) + D.setScalar(g * (t ? 1 : B)), t ? typeof E == "function" ? E(w, o) : w.copy(E) : w.setScalar(0), Q.pushSplat(o, D, s, C, w); } } -function pk({ +function Ky({ // PackedSplats object to add splats to splats: Q, // scale (Gsplat scale along axis) @@ -14576,33 +13611,33 @@ function pk({ // relative size of the "shadow copy" of each Gsplat placed behind it axisShadowScale: g = 2, // origins of the axes (default single axis at origin) - origins: B = [new G.Vector3()] + origins: B = [new a.Vector3()] }) { - const C = new G.Vector3(), E = new G.Vector3(), D = new G.Quaternion(0, 0, 0, 1), i = new G.Color(), w = 1; + const C = new a.Vector3(), E = new a.Vector3(), i = new a.Quaternion(0, 0, 0, 1), o = new a.Color(), D = 1; for (const s of B) - for (let o = 0; o < 3; ++o) { + for (let w = 0; w < 3; ++w) { C.set( - s.x + (o === 0 ? A : 0), - s.y + (o === 1 ? A : 0), - s.z + (o === 2 ? A : 0) + s.x + (w === 0 ? A : 0), + s.y + (w === 1 ? A : 0), + s.z + (w === 2 ? A : 0) ); - for (let y = 0; y < 2; ++y) + for (let G = 0; G < 2; ++G) E.set( - (o === 0 ? A : I) * (y ? 1 : g), - (o === 1 ? A : I) * (y ? 1 : g), - (o === 2 ? A : I) * (y ? 1 : g) - ), i.setRGB( - y === 0 ? 0 : o === 0 ? 1 : 0, - y === 0 ? 0 : o === 1 ? 1 : 0, - y === 0 ? 0 : o === 2 ? 1 : 0 - ), Q.pushSplat(C, E, D, w, i); + (w === 0 ? A : I) * (G ? 1 : g), + (w === 1 ? A : I) * (G ? 1 : g), + (w === 2 ? A : I) * (G ? 1 : g) + ), o.setRGB( + G === 0 ? 0 : w === 0 ? 1 : 0, + G === 0 ? 0 : w === 1 ? 1 : 0, + G === 0 ? 0 : w === 2 ? 1 : 0 + ), Q.pushSplat(C, E, i, D, o); } } -function fk({ +function dy({ // PackedSplats object to add splats to splats: Q, // center of the sphere (default: origin) - origin: A = new G.Vector3(), + origin: A = new a.Vector3(), // radius of the sphere radius: I = 1, // maximum depth of recursion for subdividing the sphere @@ -14618,32 +13653,32 @@ function fk({ pointThickness: E = 1e-3, // color of each Gsplat (THREE.Color) or function to set color for point: // ((THREE.Color, THREE.Vector3) => void) (default: white) - color: D = new G.Color(1, 1, 1) + color: i = new a.Color(1, 1, 1) }) { - const i = {}; - function w(R) { - if (B && !B(R)) + const o = {}; + function D(t) { + if (B && !B(t)) return; - const F = `${R.x},${R.y},${R.z}`; - i[F] || (i[F] = R); + const y = `${t.x},${t.y},${t.z}`; + o[y] || (o[y] = t); } - function s(R, F, a, S) { - if (w(F), w(a), w(S), R >= g) + function s(t, y, k, F) { + if (D(y), D(k), D(F), t >= g) return; - const M = new G.Vector3().addVectors(F, a).normalize(), c = new G.Vector3().addVectors(a, S).normalize(), N = new G.Vector3().addVectors(S, F).normalize(); - s(R + 1, F, M, N), s(R + 1, M, a, c), s(R + 1, N, c, S), s(R + 1, M, c, N); - } - for (const R of [-1, 1]) - for (const F of [-1, 1]) - for (const a of [-1, 1]) { - const S = new G.Vector3(R, 0, 0), M = new G.Vector3(0, F, 0), c = new G.Vector3(0, 0, a); - s(0, S, M, c); + const R = new a.Vector3().addVectors(y, k).normalize(), S = new a.Vector3().addVectors(k, F).normalize(), N = new a.Vector3().addVectors(F, y).normalize(); + s(t + 1, y, R, N), s(t + 1, R, k, S), s(t + 1, N, S, F), s(t + 1, R, S, N); + } + for (const t of [-1, 1]) + for (const y of [-1, 1]) + for (const k of [-1, 1]) { + const F = new a.Vector3(t, 0, 0), R = new a.Vector3(0, y, 0), S = new a.Vector3(0, 0, k); + s(0, F, R, S); } - const o = Object.values(i), y = new G.Vector3(C, C, E), h = new G.Quaternion(), k = typeof D == "function" ? new G.Color() : D; - for (const R of o) - h.setFromUnitVectors(new G.Vector3(0, 0, -1), R), typeof D == "function" && D(k, R), R.multiplyScalar(I), R.add(A), Q.pushSplat(R, y, h, 1, k); + const w = Object.values(o), G = new a.Vector3(C, C, E), h = new a.Quaternion(), c = typeof i == "function" ? new a.Color() : i; + for (const t of w) + h.setFromUnitVectors(new a.Vector3(0, 0, -1), t), typeof i == "function" && i(c, t), t.multiplyScalar(I), t.add(A), Q.pushSplat(t, G, h, 1, c); } -function bk({ +function qy({ // text string to display text: Q, // browser font to render text with (default: "Arial") @@ -14659,44 +13694,44 @@ function bk({ // text alignment: "left", "center", "right", "start", "end" (default: "start") textAlign: E, // line spacing multiplier, lines delimited by "\n" (default: 1.0) - lineHeight: D, + lineHeight: i, // Coordinate scale in object-space (default: 1.0) - objectScale: i + objectScale: o }) { - A = A ?? "Arial", I = I ?? 32, g = g ?? new G.Color(1, 1, 1), C = C ?? 0.8, E = E ?? "start", D = D ?? 1, i = i ?? 1; - const w = Q.split(` -`), s = document.createElement("canvas"), o = s.getContext("2d"); - if (!o) + A = A ?? "Arial", I = I ?? 32, g = g ?? new a.Color(1, 1, 1), C = C ?? 0.8, E = E ?? "start", i = i ?? 1, o = o ?? 1; + const D = Q.split(` +`), s = document.createElement("canvas"), w = s.getContext("2d"); + if (!w) throw new Error("Failed to create canvas context"); - o.font = `${I}px ${A}`, o.textAlign = E; - const y = o.measureText(""), h = y.fontBoundingBoxAscent + y.fontBoundingBoxDescent; - let k = Number.POSITIVE_INFINITY, R = Number.NEGATIVE_INFINITY, F = Number.POSITIVE_INFINITY, a = Number.NEGATIVE_INFINITY; - for (let n = 0; n < w.length; ++n) { - const r = o.measureText(w[n]), p = h * D * n; - k = Math.min(k, -r.actualBoundingBoxLeft), R = Math.max(R, r.actualBoundingBoxRight), F = Math.min(F, p - r.actualBoundingBoxAscent), a = Math.max(a, p + r.actualBoundingBoxDescent); - } - const S = Math.floor(k), M = Math.floor(F), c = Math.ceil(R) - S, N = Math.ceil(a) - M; - s.width = c, s.height = N, o.font = `${I}px ${A}`, o.textAlign = E, o.textBaseline = "alphabetic", o.fillStyle = "#FFFFFF"; - for (let n = 0; n < w.length; ++n) { - const r = h * D * n - M; - o.fillText(w[n], -S, r); - } - const U = o.getImageData(0, 0, c, N), J = new Uint8Array(U.data.buffer), t = new $A(), H = new G.Vector3(), K = new G.Vector3().setScalar(C * i), Y = new G.Quaternion(0, 0, 0, 1); - B = B ?? new G.Color(1, 1, 1); + w.font = `${I}px ${A}`, w.textAlign = E; + const G = w.measureText(""), h = G.fontBoundingBoxAscent + G.fontBoundingBoxDescent; + let c = Number.POSITIVE_INFINITY, t = Number.NEGATIVE_INFINITY, y = Number.POSITIVE_INFINITY, k = Number.NEGATIVE_INFINITY; + for (let d = 0; d < D.length; ++d) { + const K = w.measureText(D[d]), f = h * i * d; + c = Math.min(c, -K.actualBoundingBoxLeft), t = Math.max(t, K.actualBoundingBoxRight), y = Math.min(y, f - K.actualBoundingBoxAscent), k = Math.max(k, f + K.actualBoundingBoxDescent); + } + const F = Math.floor(c), R = Math.floor(y), S = Math.ceil(t) - F, N = Math.ceil(k) - R; + s.width = S, s.height = N, w.font = `${I}px ${A}`, w.textAlign = E, w.textBaseline = "alphabetic", w.fillStyle = "#FFFFFF"; + for (let d = 0; d < D.length; ++d) { + const K = h * i * d - R; + w.fillText(D[d], -F, K); + } + const M = w.getImageData(0, 0, S, N), U = new Uint8Array(M.data.buffer), e = new tI(), J = new a.Vector3(), n = new a.Vector3().setScalar(C * o), H = new a.Quaternion(0, 0, 0, 1); + B = B ?? new a.Color(1, 1, 1); let L = 0; - for (let n = 0; n < N; ++n) - for (let r = 0; r < c; ++r) { - const p = J[L + 3]; - if (p > 0) { - const m = p / 255; - H.set(r - 0.5 * (c - 1), 0.5 * (N - 1) - n, 0), H.multiplyScalar(i), t.pushSplat(H, K, Y, m, B); + for (let d = 0; d < N; ++d) + for (let K = 0; K < S; ++K) { + const f = U[L + 3]; + if (f > 0) { + const V = f / 255; + J.set(K - 0.5 * (S - 1), 0.5 * (N - 1) - d, 0), J.multiplyScalar(o), e.pushSplat(J, n, H, V, B); } L += 4; } - const q = new vA({ packedSplats: t }); - return q.recolor = g, q; + const l = new zA({ packedSplats: e }); + return l.recolor = g, l; } -function Pk({ +function ly({ // URL of the image to convert to splats (example: `url: "./image.png"`) url: Q, // Radius of each Gsplat, default covers 1-unit spacing well (default: 0.8) @@ -14712,64 +13747,64 @@ function Pk({ // ((width: number, height: number, index: number, center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, opacity: number, color: THREE.Color) => number | null) forEachSplat: g }) { - return A = A ?? 0.8, I = Math.max(1, Math.floor(I ?? 1)), new vA({ + return A = A ?? 0.8, I = Math.max(1, Math.floor(I ?? 1)), new zA({ constructSplats: async (B) => new Promise((C, E) => { - const D = new Image(); - D.crossOrigin = "anonymous", D.onerror = E, D.onload = () => { - const { width: i, height: w } = D, s = document.createElement("canvas"); - s.width = i, s.height = w; - const o = s.getContext("2d"); - if (!o) { + const i = new Image(); + i.crossOrigin = "anonymous", i.onerror = E, i.onload = () => { + const { width: o, height: D } = i, s = document.createElement("canvas"); + s.width = o, s.height = D; + const w = s.getContext("2d"); + if (!w) { E(new Error("Failed to create canvas context")); return; } - o.imageSmoothingEnabled = !0, o.imageSmoothingQuality = "high"; - const y = Math.round(i / I), h = Math.round(w / I); - o.drawImage(D, 0, 0, y, h); + w.imageSmoothingEnabled = !0, w.imageSmoothingQuality = "high"; + const G = Math.round(o / I), h = Math.round(D / I); + w.drawImage(i, 0, 0, G, h); try { - const k = o.getImageData(0, 0, y, h), R = new Uint8Array(k.data.buffer), F = new G.Vector3(), a = new G.Vector3().setScalar(A), S = new G.Quaternion(0, 0, 0, 1), M = new G.Color(); - let c = 0; + const c = w.getImageData(0, 0, G, h), t = new Uint8Array(c.data.buffer), y = new a.Vector3(), k = new a.Vector3().setScalar(A), F = new a.Quaternion(0, 0, 0, 1), R = new a.Color(); + let S = 0; for (let N = 0; N < h; ++N) - for (let U = 0; U < y; ++U) { - const J = c * 4, t = R[J + 3]; - if (t > 0) { - let H = t / 255; - M.set( - R[J + 0] / 255, - R[J + 1] / 255, - R[J + 2] / 255 - ), F.set( - U - 0.5 * (y - 1), + for (let M = 0; M < G; ++M) { + const U = S * 4, e = t[U + 3]; + if (e > 0) { + let J = e / 255; + R.set( + t[U + 0] / 255, + t[U + 1] / 255, + t[U + 2] / 255 + ), y.set( + M - 0.5 * (G - 1), 0.5 * (h - 1) - N, 0 - ), a.setScalar(A), S.set(0, 0, 0, 1); - let K = !0; + ), k.setScalar(A), F.set(0, 0, 0, 1); + let n = !0; if (g) { - const Y = g( - y, + const H = g( + G, h, - c, - F, - a, S, - H, - M + y, + k, + F, + J, + R ); - H = Y ?? H, K = Y !== null; + J = H ?? J, n = H !== null; } - K && B.pushSplat(F, a, S, H, M); + n && B.pushSplat(y, k, F, J, R); } - c += 1; + S += 1; } C(); - } catch (k) { - E(k); + } catch (c) { + E(c); } - }, D.src = Q; + }, i.src = Q; }) }); } -function JR({ +function kt({ box: Q, cells: A, dotScale: I, @@ -14777,83 +13812,83 @@ function JR({ opacity: B }) { A.x = Math.max(1, Math.round(A.x)), A.y = Math.max(1, Math.round(A.y)), A.z = Math.max(1, Math.round(A.z)), B = B ?? 1; - const C = A.x * A.y * A.z, E = v("int", A.x), D = v("int", A.y); - v("int", A.z); - const i = wI(0), w = new PI({ + const C = A.x * A.y * A.z, E = AA("int", A.x), i = AA("int", A.y); + AA("int", A.z); + const o = EI(0), D = new kg({ numSplats: C, - generator: cA( + generator: LA( { index: "int" }, - { gsplat: Z }, - ({ index: o }) => { - if (!o) + { gsplat: j }, + ({ index: w }) => { + if (!w) throw new Error("index is undefined"); - const y = pQ(o, E), h = pg(o, E), k = pQ(h, D), R = pg(h, D), F = yI({ + const G = xQ(w, E), h = ug(w, E), c = xQ(h, i), t = ug(h, i), y = GI({ vectorType: "ivec3", - x: y, - y: k, - z: R - }), a = WD(i), S = yI({ vectorType: "ivec2", x: o, y: a }), M = vi(S), c = v("vec3", Q.min), N = v("vec3", Q.max), U = iI(N, c), J = pg(qA(fI(F), M), v("vec3", A)); - let t, H, K; - g ? (t = v("float", g.r), H = v("float", g.g), K = v("float", g.b)) : { r: t, g: H, b: K } = $I(J).outputs; - const Y = yI({ + x: G, + y: c, + z: t + }), k = xi(o), F = GI({ vectorType: "ivec2", x: w, y: k }), R = xD(F), S = AA("vec3", Q.min), N = AA("vec3", Q.max), M = CI(N, S), U = ug(lA(xI(y), R), AA("vec3", A)); + let e, J, n; + g ? (e = AA("float", g.r), J = AA("float", g.g), n = AA("float", g.b)) : { r: e, g: J, b: n } = vI(U).outputs; + const H = GI({ vectorType: "vec4", - r: t, - g: H, - b: K, - a: v("float", B) - }), L = qA(c, kA(U, J)), q = fI(v("float", I)), n = v("vec4", new G.Quaternion(0, 0, 0, 1)); - let r = CI({ - flags: ug("uint", "GSPLAT_FLAG_ACTIVE"), - index: o, + r: e, + g: J, + b: n, + a: AA("float", B) + }), L = lA(S, kA(M, U)), l = xI(AA("float", I)), d = AA("vec4", new a.Quaternion(0, 0, 0, 1)); + let K = QI({ + flags: Tg("uint", "GSPLAT_FLAG_ACTIVE"), + index: w, center: L, - scales: q, - quaternion: n, - rgba: Y + scales: l, + quaternion: d, + rgba: H }); - return r = s.applyGsplat(r), { gsplat: r }; + return K = s.applyGsplat(K), { gsplat: K }; }, { - globals: () => [HA] + globals: () => [YA] } ), - update: ({ time: o }) => { - i.value = o, s.update(w), w.updateVersion(); + update: ({ time: w }) => { + o.value = w, s.update(D), D.updateVersion(); } - }), s = new XI(); - return w; + }), s = new TI(); + return D; } -const UR = { - box: new G.Box3( - new G.Vector3(-1, -1, -1), - new G.Vector3(1, 1, 1) +const Ft = { + box: new a.Box3( + new a.Vector3(-1, -1, -1), + new a.Vector3(1, 1, 1) ), density: 100, - fallDirection: new G.Vector3(-1, -3, 1).normalize(), + fallDirection: new a.Vector3(-1, -3, 1).normalize(), fallVelocity: 0.02, wanderScale: 0.04, wanderVariance: 2, - color1: new G.Color(1, 1, 1), - color2: new G.Color(0.5, 0.5, 1), + color1: new a.Color(1, 1, 1), + color2: new a.Color(0.5, 0.5, 1), minScale: 1e-3, maxScale: 5e-3, - anisoScale: new G.Vector3(1, 1, 1) -}, tR = { - box: new G.Box3( - new G.Vector3(-2, -1, -2), - new G.Vector3(2, 5, 2) + anisoScale: new a.Vector3(1, 1, 1) +}, Nt = { + box: new a.Box3( + new a.Vector3(-2, -1, -2), + new a.Vector3(2, 5, 2) ), density: 10, - fallDirection: new G.Vector3(0, -1, 0), + fallDirection: new a.Vector3(0, -1, 0), fallVelocity: 2, wanderScale: 0.1, wanderVariance: 1, - color1: new G.Color(1, 1, 1), - color2: new G.Color(0.25, 0.25, 0.5), + color1: new a.Color(1, 1, 1), + color2: new a.Color(0.25, 0.25, 0.5), minScale: 5e-3, maxScale: 0.01, - anisoScale: new G.Vector3(0.1, 1, 0.1) + anisoScale: new a.Vector3(0.1, 1, 0.1) }; -function HR({ +function St({ // min and max box extents of the snowBox box: Q, // minimum y-coordinate to clamp particle position, which can be used to @@ -14871,136 +13906,136 @@ function HR({ // Maximum Gsplat particle scale (default: 0.005) maxScale: E, // The average direction of fall (default: (0, -1, 0)) - fallDirection: D, + fallDirection: i, // The average speed of the fall (multiplied with fallDirection) (default: 0.02) - fallVelocity: i, + fallVelocity: o, // The world scale of wandering overlay motion (default: 0.01) - wanderScale: w, + wanderScale: D, // Controls how uniformly the particles wander in sync, more variance mean // more randomness in the motion (default: 2) wanderVariance: s, // Color 1 of the two colors interpolated between (default: (1, 1, 1)) - color1: o, + color1: w, // Color 2 of the two colors interpolated between (default: (0.5, 0.5, 1)) - color2: y, + color2: G, // The base opacity of the Gsplats (default: 1) opacity: h, // Optional callback function to call each frame. - onFrame: k + onFrame: c }) { - Q = Q ?? new G.Box3(new G.Vector3(-1, -1, -1), new G.Vector3(1, 1, 1)); - const R = (Q.max.x - Q.min.x) * (Q.max.y - Q.min.y) * (Q.max.z - Q.min.z); - g = g ?? 100, I = I ?? Math.max(1, Math.min(1e6, Math.round(R * g))); - const F = wI(C ?? 1e-3), a = wI(E ?? 5e-3), S = cI( - ((B == null ? void 0 : B.clone()) ?? new G.Vector3(1, 1, 1)).normalize() - ), M = cI( - (D ?? new G.Vector3(0, -1, 0)).normalize() - ), c = wI(i ?? 0.02), N = wI(w ?? 0.01), U = wI(s ?? 2), J = cI(o ?? new G.Color(1, 1, 1)), t = cI(y ?? new G.Color(0.5, 0.5, 1)), H = wI(h ?? 1), K = wI(0), Y = cI(new G.Vector3(0, 0, 0)), L = cI(Q.min), q = cI(Q.max), n = wI(A ?? Number.NEGATIVE_INFINITY), r = iI(q, L), p = new PI({ + Q = Q ?? new a.Box3(new a.Vector3(-1, -1, -1), new a.Vector3(1, 1, 1)); + const t = (Q.max.x - Q.min.x) * (Q.max.y - Q.min.y) * (Q.max.z - Q.min.z); + g = g ?? 100, I = I ?? Math.max(1, Math.min(1e6, Math.round(t * g))); + const y = EI(C ?? 1e-3), k = EI(E ?? 5e-3), F = SI( + ((B == null ? void 0 : B.clone()) ?? new a.Vector3(1, 1, 1)).normalize() + ), R = SI( + (i ?? new a.Vector3(0, -1, 0)).normalize() + ), S = EI(o ?? 0.02), N = EI(D ?? 0.01), M = EI(s ?? 2), U = SI(w ?? new a.Color(1, 1, 1)), e = SI(G ?? new a.Color(0.5, 0.5, 1)), J = EI(h ?? 1), n = EI(0), H = SI(new a.Vector3(0, 0, 0)), L = SI(Q.min), l = SI(Q.max), d = EI(A ?? Number.NEGATIVE_INFINITY), K = CI(l, L), f = new kg({ numSplats: I, - generator: cA( + generator: LA( { index: "int" }, - { gsplat: Z }, + { gsplat: j }, ({ index: IA }) => { if (!IA) throw new Error("index not defined"); - const X = bQ(IA), EA = $I(X).outputs.w; - let j = fI(X), gA = fg(kA(EA, v("float", 100))); - gA = PQ(kA(ug("float", "PI"), gA)), gA = qA(F, kA(gA, iI(a, F))); - const W = kA(gA, S), u = fg(kA(EA, v("float", 10))), b = fg(EA), T = jE(J, t, b), f = kA(T, u), FA = bQ( - yI({ + const O = fQ(IA), CA = vI(O).outputs.w; + let v = xI(O), gA = Pg(kA(CA, AA("float", 100))); + gA = pQ(kA(Tg("float", "PI"), gA)), gA = lA(y, kA(gA, CI(k, y))); + const W = kA(gA, F), b = Pg(kA(CA, AA("float", 10))), u = Pg(CA), T = fE(U, e, u), p = kA(T, b), tA = fQ( + GI({ vectorType: "ivec2", x: IA, - y: v("int", 6837) + y: AA("int", 6837) }) ); - let sA = fI(FA), aA = kA($I(FA).outputs.w, U); - aA = qA(K, aA), j = qA(j, Y); - const SA = XE( - j, - v("vec3", new G.Vector3(1, 1, 1)) + let sA = xI(tA), yA = kA(vI(tA).outputs.w, M); + yA = lA(n, yA), v = lA(v, H); + const cA = lE( + v, + AA("vec3", new a.Vector3(1, 1, 1)) ); - j = qA(L, kA(r, SA)); - const wA = v("vec4", new G.Quaternion(0, 0, 0, 1)); - sA = PQ(qA(fI(aA), sA)), sA = kA(sA, N); - let GA = qA(j, sA), AI = $I(GA).outputs.y; - AI = WE(n, AI), GA = yI({ vector: GA, y: AI }); - let TA = CI({ - flags: ug("uint", "GSPLAT_FLAG_ACTIVE"), + v = lA(L, kA(K, cA)); + const oA = AA("vec4", new a.Quaternion(0, 0, 0, 1)); + sA = pQ(lA(xI(yA), sA)), sA = kA(sA, N); + let aA = lA(v, sA), _A = vI(aA).outputs.y; + _A = xE(d, _A), aA = GI({ vector: aA, y: _A }); + let PA = QI({ + flags: Tg("uint", "GSPLAT_FLAG_ACTIVE"), index: IA, - center: GA, + center: aA, scales: W, - quaternion: wA, - rgb: f, - opacity: H + quaternion: oA, + rgb: p, + opacity: J }); - return TA = m.applyGsplat(TA), { gsplat: TA }; + return PA = V.applyGsplat(PA), { gsplat: PA }; }, { - globals: () => [HA] + globals: () => [YA] } ), - update: ({ object: IA, time: X, deltaTime: EA }) => { - K.value = X, m.update(p); - const j = M.value.clone().multiplyScalar(c.value * EA); - Y.value.add(j), IA.visible = H.value > 0, k == null || k({ object: IA, time: X, deltaTime: EA }), p.updateVersion(); + update: ({ object: IA, time: O, deltaTime: CA }) => { + n.value = O, V.update(f); + const v = R.value.clone().multiplyScalar(S.value * CA); + H.value.add(v), IA.visible = J.value > 0, c == null || c({ object: IA, time: O, deltaTime: CA }), f.updateVersion(); } - }), m = new XI(); + }), V = new TI(); return { - snow: p, + snow: f, min: L, - max: q, - minY: n, - color1: J, - color2: t, - opacity: H, - fallVelocity: c, - wanderVariance: U, + max: l, + minY: d, + color1: U, + color2: e, + opacity: J, + fallVelocity: S, + wanderVariance: M, wanderScale: N, - fallDirection: M, - minScale: F, - maxScale: a, - anisoScale: S + fallDirection: R, + minScale: y, + maxScale: k, + anisoScale: F }; } -const uk = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ +const xy = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, - DEFAULT_RAIN: tR, - DEFAULT_SNOW: UR, - snowBox: HR, - staticBox: JR + DEFAULT_RAIN: Nt, + DEFAULT_SNOW: Ft, + snowBox: St, + staticBox: kt }, Symbol.toStringTag, { value: "Module" })); -function Ow(Q) { - return cA({ gsplat: Z }, { gsplat: Z }, ({ gsplat: A }) => { +function qo(Q) { + return LA({ gsplat: j }, { gsplat: j }, ({ gsplat: A }) => { if (!A) throw new Error("No gsplat input"); - let I = qQ(A); - const g = Q.applyGsplat(A), B = uA(g).outputs.center, C = qQ(g), E = Li(B, C), D = LD(E, v("float", 0)); - I = hB(D, yB(I), I); - const i = qA( - kA(I, v("float", 0.5)), - v("float", 0.5) + let I = LQ(A); + const g = Q.applyGsplat(A), B = fA(g).outputs.center, C = LQ(g), E = GD(B, C), i = ti(E, AA("float", 0)); + I = GB(i, aB(I), I); + const o = lA( + kA(I, AA("float", 0.5)), + AA("float", 0.5) ); - return A = CI({ gsplat: A, rgb: i }), { gsplat: A }; + return A = QI({ gsplat: A, rgb: o }), { gsplat: A }; }); } -function LR(Q) { - Q.enableWorldToView = !0, Q.worldModifier = Ow(Q.context.worldToView), Q.updateGenerator(); +function Rt(Q) { + Q.enableWorldToView = !0, Q.worldModifier = qo(Q.context.worldToView), Q.updateGenerator(); } -function mw(Q, A, I, g) { - return cA({ gsplat: Z }, { gsplat: Z }, ({ gsplat: B }) => { +function lo(Q, A, I, g) { + return LA({ gsplat: j }, { gsplat: j }, ({ gsplat: B }) => { if (!B) throw new Error("No gsplat input"); - let { center: C } = uA(B).outputs; + let { center: C } = fA(B).outputs; C = Q.apply(C); - const { z: E } = $I(C).outputs; - let D = zi(yB(E), A, I); - return D = hB(g, iI(v("float", 1), D), D), B = CI({ gsplat: B, r: D, g: D, b: D }), { gsplat: B }; + const { z: E } = vI(C).outputs; + let i = fD(aB(E), A, I); + return i = GB(g, CI(AA("float", 1), i), i), B = QI({ gsplat: B, r: i, g: i, b: i }), { gsplat: B }; }); } -function YR(Q, A, I, g) { +function Mt(Q, A, I, g) { Q.enableWorldToView = !0; - const B = v("float", A), C = v("float", I), E = v("bool", g ?? !1); - return Q.worldModifier = mw( + const B = AA("float", A), C = AA("float", I), E = AA("bool", g ?? !1); + return Q.worldModifier = lo( Q.context.worldToView, B, C, @@ -15011,31 +14046,31 @@ function YR(Q, A, I, g) { reverse: E }; } -const Tk = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ +const fy = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, - makeDepthColorModifier: mw, - makeNormalColorModifier: Ow, - setDepthColor: YR, - setWorldNormalColor: LR -}, Symbol.toStringTag, { value: "Module" })), KR = 1, VB = 4, eR = 2, rR = 5, nR = 1 / 5, Ok = !1, dR = (Q, A) => { + makeDepthColorModifier: lo, + makeNormalColorModifier: qo, + setDepthColor: Mt, + setWorldNormalColor: Rt +}, Symbol.toStringTag, { value: "Module" })), et = 1, uB = 4, Jt = 2, Ut = 5, Lt = 1 / 5, py = !1, Ht = (Q, A) => { var I, g, B, C; - return Q.leftIsHand ? new G.Vector3() : new G.Vector3( + return Q.leftIsHand ? new a.Vector3() : new a.Vector3( ((I = Q.left) == null ? void 0 : I.axes[2]) ?? 0, (((g = Q.left) == null ? void 0 : g.buttons[0].value) ?? 0) - (((B = Q.left) == null ? void 0 : B.buttons[1].value) ?? 0), ((C = Q.left) == null ? void 0 : C.axes[3]) ?? 0 ); -}, qR = (Q, A) => { +}, nt = (Q, A) => { var I; - return Q.rightIsHand ? new G.Vector3() : new G.Vector3(((I = Q.right) == null ? void 0 : I.axes[2]) ?? 0, 0, 0); -}, xR = (Q, A) => { + return Q.rightIsHand ? new a.Vector3() : new a.Vector3(((I = Q.right) == null ? void 0 : I.axes[2]) ?? 0, 0, 0); +}, Yt = (Q, A) => { var I, g; return Q.rightIsHand ? !1 : ((g = (I = Q.right) == null ? void 0 : I.buttons[0]) == null ? void 0 : g.pressed) ?? !1; -}, lR = (Q, A) => { +}, rt = (Q, A) => { var I, g; return Q.rightIsHand ? !1 : ((g = (I = Q.right) == null ? void 0 : I.buttons[1]) == null ? void 0 : g.pressed) ?? !1; }; -var _g = /* @__PURE__ */ ((Q) => (Q.w = "wrist", Q.t0 = "thumb-metacarpal", Q.t1 = "thumb-phalanx-proximal", Q.t2 = "thumb-phalanx-distal", Q.t3 = "thumb-tip", Q.i0 = "index-finger-metacarpal", Q.i1 = "index-finger-phalanx-proximal", Q.i2 = "index-finger-phalanx-intermediate", Q.i3 = "index-finger-phalanx-distal", Q.i4 = "index-finger-tip", Q.m0 = "middle-finger-metacarpal", Q.m1 = "middle-finger-phalanx-proximal", Q.m2 = "middle-finger-phalanx-intermediate", Q.m3 = "middle-finger-phalanx-distal", Q.m4 = "middle-finger-tip", Q.r0 = "ring-finger-metacarpal", Q.r1 = "ring-finger-phalanx-proximal", Q.r2 = "ring-finger-phalanx-intermediate", Q.r3 = "ring-finger-phalanx-distal", Q.r4 = "ring-finger-tip", Q.p0 = "pinky-finger-metacarpal", Q.p1 = "pinky-finger-phalanx-proximal", Q.p2 = "pinky-finger-phalanx-intermediate", Q.p3 = "pinky-finger-phalanx-distal", Q.p4 = "pinky-finger-tip", Q))(_g || {}); -const kI = Object.keys(_g), pR = kI.length, fR = { +var jg = /* @__PURE__ */ ((Q) => (Q.w = "wrist", Q.t0 = "thumb-metacarpal", Q.t1 = "thumb-phalanx-proximal", Q.t2 = "thumb-phalanx-distal", Q.t3 = "thumb-tip", Q.i0 = "index-finger-metacarpal", Q.i1 = "index-finger-phalanx-proximal", Q.i2 = "index-finger-phalanx-intermediate", Q.i3 = "index-finger-phalanx-distal", Q.i4 = "index-finger-tip", Q.m0 = "middle-finger-metacarpal", Q.m1 = "middle-finger-phalanx-proximal", Q.m2 = "middle-finger-phalanx-intermediate", Q.m3 = "middle-finger-phalanx-distal", Q.m4 = "middle-finger-tip", Q.r0 = "ring-finger-metacarpal", Q.r1 = "ring-finger-phalanx-proximal", Q.r2 = "ring-finger-phalanx-intermediate", Q.r3 = "ring-finger-phalanx-distal", Q.r4 = "ring-finger-tip", Q.p0 = "pinky-finger-metacarpal", Q.p1 = "pinky-finger-phalanx-proximal", Q.p2 = "pinky-finger-phalanx-intermediate", Q.p3 = "pinky-finger-phalanx-distal", Q.p4 = "pinky-finger-tip", Q))(jg || {}); +const hI = Object.keys(jg), Kt = hI.length, dt = { w: 0, t0: 1, t1: 2, @@ -15061,7 +14096,7 @@ const kI = Object.keys(_g), pR = kI.length, fR = { p2: 22, p3: 23, p4: 24 -}, XB = { +}, PB = { w: 0.02, t0: 0.015, t1: 0.012, @@ -15087,31 +14122,31 @@ const kI = Object.keys(_g), pR = kI.length, fR = { p2: 7e-3, p3: 65e-4, p4: 55e-4 -}, bR = [ +}, qt = [ ["w", "t0", "t1", "t2", "t3"], ["w", "i0", "i1", "i2", "i3", "i4"], ["w", "m0", "m1", "m2", "m3", "m4"], ["w", "r0", "r1", "r2", "r3", "r4"], ["w", "p0", "p1", "p2", "p3", "p4"] -], PR = [ +], lt = [ [8, 10, 8, 6], [8, 19, 14, 8, 6], [8, 19, 14, 8, 6], [8, 19, 14, 8, 6], [8, 19, 14, 8, 6] -], uR = ["t3", "i4", "m4", "r4", "p4"], TR = ["i4", "m4", "r4", "p4"]; -var JB = /* @__PURE__ */ ((Q) => (Q.left = "left", Q.right = "right", Q))(JB || {}); -const OR = Object.keys(JB), mR = /Quest|OculusBrowser|VisionOS|XRBrowser|Pico|Lynx|MagicLeap/i; -function ZR() { +], xt = ["t3", "i4", "m4", "r4", "p4"], ft = ["i4", "m4", "r4", "p4"]; +var FB = /* @__PURE__ */ ((Q) => (Q.left = "left", Q.right = "right", Q))(FB || {}); +const pt = Object.keys(FB), ut = /Quest|OculusBrowser|VisionOS|XRBrowser|Pico|Lynx|MagicLeap/i; +function Pt() { const Q = navigator.userAgent ?? ""; - if (mR.test(Q)) + if (ut.test(Q)) return !1; if (/Android/i.test(Q) || /Mobile/i.test(Q)) return !0; const I = navigator.userAgentData; return I && typeof I.mobile == "boolean" ? I.mobile : !1; } -const ZA = class ZA { +const mA = class mA { constructor(A) { this.lastControllersUpdate = 0, this.hands = [], this.renderer = A.renderer, this.xr = navigator.xr, this.mode = "initializing", this.onEnterXr = A.onEnterXr, this.onExitXr = A.onExitXr, this.enableHands = A.enableHands ?? !1, this.controllers = A.controllers, Promise.resolve().then(() => { var C; @@ -15119,19 +14154,19 @@ const ZA = class ZA { this.mode = "not_supported"; return; } - if (!A.allowMobileXr && ZR()) { + if (!A.allowMobileXr && Pt()) { this.mode = "not_supported"; return; } - this.enableHands && (this.hands = [new $g( + this.enableHands && (this.hands = [new zg( "left" /* left */ - ), new $g( + ), new zg( "right" /* right */ )]); let I, g; - if (A.element ? I = A.element : A.elementId ? I = document.getElementById(A.elementId) ?? void 0 : (I = ZA.createButton(), g = A.button == null || typeof A.button == "boolean" ? {} : A.button), !I) + if (A.element ? I = A.element : A.elementId ? I = document.getElementById(A.elementId) ?? void 0 : (I = mA.createButton(), g = A.button == null || typeof A.button == "boolean" ? {} : A.button), !I) throw new Error("No element or button provided"); I.style.display = "none", I.classList.add("hidden"), this.button = g, this.element = I; const B = (C = A.onMouseLeaveOpacity) == null ? void 0 : C.toString(); @@ -15148,7 +14183,7 @@ const ZA = class ZA { }); } async initializeXr(A) { - var w, s; + var D, s; if (!this.xr || !this.element) return; const I = this.element, g = { @@ -15160,9 +14195,9 @@ const ZA = class ZA { if (!g) throw new Error(`Invalid mode: ${A.mode}`); let B = null; - for (const o of g) - if (await this.xr.isSessionSupported(o)) { - B = o; + for (const w of g) + if (await this.xr.isSessionSupported(w)) { + B = w; break; } if (!B) { @@ -15174,13 +14209,13 @@ const ZA = class ZA { this.renderer.xr.enabled = !0, this.renderer.xr.setReferenceSpaceType(C), A.fixedFoveation !== void 0 && this.renderer.xr.setFoveation(A.fixedFoveation); const E = A.frameBufferScaleFactor ?? 0.5; this.renderer.xr.setFramebufferScaleFactor(E); - const D = ((w = A.sessionInit) == null ? void 0 : w.optionalFeatures) ?? []; - A.enableHands && D.push("hand-tracking"); - const i = ((s = A.sessionInit) == null ? void 0 : s.requiredFeatures) ?? []; - i.push(C), this.sessionInit = { + const i = ((D = A.sessionInit) == null ? void 0 : D.optionalFeatures) ?? []; + A.enableHands && i.push("hand-tracking"); + const o = ((s = A.sessionInit) == null ? void 0 : s.requiredFeatures) ?? []; + o.push(C), this.sessionInit = { ...A.sessionInit, - optionalFeatures: D, - requiredFeatures: i + optionalFeatures: i, + requiredFeatures: o }, I.addEventListener("click", () => { this.toggleXr(); }), this.updateElement(); @@ -15195,14 +14230,14 @@ const ZA = class ZA { const B = this.mode, C = await this.xr.requestSession(B, this.sessionInit); this.session = C; const E = () => { - var w; - C == null || C.removeEventListener("end", E), C == null || C.removeEventListener("visibilitychange", i), this.session = void 0, this.updateElement(), (w = this.onExitXr) == null || w.call(this); + var D; + C == null || C.removeEventListener("end", E), C == null || C.removeEventListener("visibilitychange", o), this.session = void 0, this.updateElement(), (D = this.onExitXr) == null || D.call(this); }; - let D = C.visibilityState; - const i = () => { - (C == null ? void 0 : C.visibilityState) === "visible-blurred" && D === "visible" && (C == null || C.end()), D = C == null ? void 0 : C.visibilityState; + let i = C.visibilityState; + const o = () => { + (C == null ? void 0 : C.visibilityState) === "visible-blurred" && i === "visible" && (C == null || C.end()), i = C == null ? void 0 : C.visibilityState; }; - return (A = this.session) == null || A.addEventListener("end", E), (I = this.session) == null || I.addEventListener("visibilitychange", i), await this.renderer.xr.setSession(this.session), (g = this.onEnterXr) == null ? void 0 : g.call(this); + return (A = this.session) == null || A.addEventListener("end", E), (I = this.session) == null || I.addEventListener("visibilitychange", o), await this.renderer.xr.setSession(this.session), (g = this.onEnterXr) == null ? void 0 : g.call(this); } catch (B) { console.error("Error requesting XR session", B); return; @@ -15253,38 +14288,38 @@ const ZA = class ZA { return this.hands[1]; } updateControllers(A) { - var w, s, o, y, h, k, R, F, a, S, M, c; + var D, s, w, G, h, c, t, y, k, F, R, S; const I = A.parent, g = performance.now(), B = (g - (this.lastControllersUpdate || g)) / 1e3; this.lastControllersUpdate = g; const C = {}; - for (const N of ((w = this.renderer.xr.getSession()) == null ? void 0 : w.inputSources) ?? []) { - const U = N.gamepad; - U && (N.handedness === "left" || N.handedness === "right") && (C[N.handedness] = U, N.handedness === "left" ? C.leftIsHand = !!N.hand : N.handedness === "right" && (C.rightIsHand = !!N.hand)); + for (const N of ((D = this.renderer.xr.getSession()) == null ? void 0 : D.inputSources) ?? []) { + const M = N.gamepad; + M && (N.handedness === "left" || N.handedness === "right") && (C[N.handedness] = M, N.handedness === "left" ? C.leftIsHand = !!N.hand : N.handedness === "right" && (C.rightIsHand = !!N.hand)); } - const E = (((s = this.controllers) == null ? void 0 : s.getRotate) ?? qR)(C, this); + const E = (((s = this.controllers) == null ? void 0 : s.getRotate) ?? nt)(C, this); if (E.multiply( - new G.Vector3( - ((o = this.controllers) == null ? void 0 : o.rotateSpeed) ?? VB, - ((y = this.controllers) == null ? void 0 : y.rotateSpeed) ?? VB, - ((h = this.controllers) == null ? void 0 : h.rollSpeed) ?? eR + new a.Vector3( + ((w = this.controllers) == null ? void 0 : w.rotateSpeed) ?? uB, + ((G = this.controllers) == null ? void 0 : G.rotateSpeed) ?? uB, + ((h = this.controllers) == null ? void 0 : h.rollSpeed) ?? Jt ) ), E.manhattanLength() > 0) { E.multiplyScalar(B); - const N = new G.Euler(-E.y, -E.x, E.z, "YXZ"), U = new G.Quaternion().setFromEuler(N), J = A.getWorldPosition(new G.Vector3()); - (k = I.parent) == null || k.worldToLocal(J), I.position.sub(J), I.position.applyQuaternion(U), I.position.add(J), I.quaternion.premultiply(U); + const N = new a.Euler(-E.y, -E.x, E.z, "YXZ"), M = new a.Quaternion().setFromEuler(N), U = A.getWorldPosition(new a.Vector3()); + (c = I.parent) == null || c.worldToLocal(U), I.position.sub(U), I.position.applyQuaternion(M), I.position.add(U), I.quaternion.premultiply(M); } - const D = (((R = this.controllers) == null ? void 0 : R.getMove) ?? dR)( + const i = (((t = this.controllers) == null ? void 0 : t.getMove) ?? Ht)( C, this ); - let i = ((F = this.controllers) == null ? void 0 : F.moveSpeed) ?? KR; - (((a = this.controllers) == null ? void 0 : a.getFast) ?? xR)( + let o = ((y = this.controllers) == null ? void 0 : y.moveSpeed) ?? et; + (((k = this.controllers) == null ? void 0 : k.getFast) ?? Yt)( C, this - ) && (i *= rR), (((S = this.controllers) == null ? void 0 : S.getSlow) ?? lR)( + ) && (o *= Ut), (((F = this.controllers) == null ? void 0 : F.getSlow) ?? rt)( C, this - ) && (i *= nR), (M = this.controllers) != null && M.moveHeading ? D.applyQuaternion(A.quaternion) : (c = this.controllers) != null && c.moveDirection && (ng.setFromQuaternion(A.quaternion, "YXZ"), ng.x = 0, ng.z = 0, mQ.setFromEuler(ng), D.applyQuaternion(mQ)), D.applyQuaternion(I.quaternion), D.multiplyScalar(B * i), I.position.add(D); + ) && (o *= Lt), (R = this.controllers) != null && R.moveHeading ? i.applyQuaternion(A.quaternion) : (S = this.controllers) != null && S.moveDirection && (qg.setFromQuaternion(A.quaternion, "YXZ"), qg.x = 0, qg.z = 0, VQ.setFromEuler(qg), i.applyQuaternion(VQ)), i.applyQuaternion(I.quaternion), i.multiplyScalar(B * o), I.position.add(i); } updateHands({ xrFrame: A }) { const I = this.renderer.xr.getSession(); @@ -15299,21 +14334,21 @@ const ZA = class ZA { continue; const C = B.handedness, E = this.hands[C === "left" ? 0 : 1]; if (E) - for (const D of kI) { - const i = B.hand.get(_g[D]); - if (i) { - const w = A.getJointPose(i, g); - if (w) { - const { position: s, orientation: o } = w.transform; - E.joints || (E.joints = {}), E.joints[D] = { - position: new G.Vector3(s.x, s.y, s.z), - quaternion: new G.Quaternion( - o.x, - o.y, - o.z, - o.w + for (const i of hI) { + const o = B.hand.get(jg[i]); + if (o) { + const D = A.getJointPose(o, g); + if (D) { + const { position: s, orientation: w } = D.transform; + E.joints || (E.joints = {}), E.joints[i] = { + position: new a.Vector3(s.x, s.y, s.z), + quaternion: new a.Quaternion( + w.x, + w.y, + w.z, + w.w ), - radius: XB[D] + radius: PB[i] }; } } @@ -15322,7 +14357,7 @@ const ZA = class ZA { } } makeJointSplats(A) { - const I = new Ak(A); + const I = new Xt(A); return I.onFrame = () => { const g = this.hands[A === "left" ? 0 : 1], B = g == null ? void 0 : g.joints; I.updateJoints(B); @@ -15337,49 +14372,49 @@ const ZA = class ZA { return { time: A, hands: I }; } }; -ZA.JointEnum = _g, ZA.JOINT_IDS = kI, ZA.NUM_JOINTS = pR, ZA.JOINT_INDEX = fR, ZA.JOINT_RADIUS = XB, ZA.JOINT_SEGMENTS = bR, ZA.JOINT_SEGMENT_STEPS = PR, ZA.JOINT_TIPS = uR, ZA.FINGER_TIPS = TR, ZA.Hand = JB, ZA.HANDS = OR; -let WB = ZA; -const HQ = (Q) => Math.round(Q * 1e4) / 1e4, ng = new G.Euler(0, 0, 0, "YXZ"), mQ = new G.Quaternion(), VR = new G.Quaternion(); -function mk(Q, A) { +mA.JointEnum = jg, mA.JOINT_IDS = hI, mA.NUM_JOINTS = Kt, mA.JOINT_INDEX = dt, mA.JOINT_RADIUS = PB, mA.JOINT_SEGMENTS = qt, mA.JOINT_SEGMENT_STEPS = lt, mA.JOINT_TIPS = xt, mA.FINGER_TIPS = ft, mA.Hand = FB, mA.HANDS = pt; +let bB = mA; +const UQ = (Q) => Math.round(Q * 1e4) / 1e4, qg = new a.Euler(0, 0, 0, "YXZ"), VQ = new a.Quaternion(), bt = new a.Quaternion(); +function uy(Q, A) { if (!Q.length) return null; const I = Q[0], g = Q[Q.length - 1]; if (A < I.time || A > g.time) return null; - const B = jR(Q, A); + const B = Vt(Q, A); if (B === -1) return null; const C = Q[B], E = Q[B + 1]; if (!E) - return WR(C, A); - const D = E.time - C.time, i = D > 0 ? (A - C.time) / D : 0; - return XR(C, E, i, A); + return mt(C, A); + const i = E.time - C.time, o = i > 0 ? (A - C.time) / i : 0; + return Tt(C, E, o, A); } -function XR(Q, A, I, g) { +function Tt(Q, A, I, g) { const B = Math.max(Q.hands.length, A.hands.length), C = Array.from( { length: B }, - (E, D) => vR(Q.hands[D], A.hands[D], I) + (E, i) => Zt(Q.hands[i], A.hands[i], I) ); return { time: g, hands: C }; } -function WR(Q, A) { +function mt(Q, A) { return { time: A, - hands: Q.hands.map((I) => _R(I)) + hands: Q.hands.map((I) => Wt(I)) }; } -class $g { +class zg { constructor(A) { this.hand = A; } static newFromSnapshot(A, I) { - const g = new $g(A); + const g = new zg(A); g.joints = {}; - for (const B of kI) { + for (const B of hI) { const C = I[B]; C && (g.joints[B] = { - position: new G.Vector3(C.pos[0], C.pos[1], C.pos[2]), - quaternion: new G.Quaternion( + position: new a.Vector3(C.pos[0], C.pos[1], C.pos[2]), + quaternion: new a.Quaternion( C.quat[0], C.quat[1], C.quat[2], @@ -15397,12 +14432,12 @@ class $g { if (!this.joints) return; const A = {}; - for (const I of kI) { + for (const I of hI) { const g = this.joints[I]; g && (A[I] = { - pos: g.position.toArray().map(HQ), - quat: g.quaternion.toArray().map(HQ), - radius: HQ(g.radius) + pos: g.position.toArray().map(UQ), + quat: g.quaternion.toArray().map(UQ), + radius: UQ(g.radius) }); } return A; @@ -15413,14 +14448,14 @@ class $g { const A = new Float32Array(1 + 25 * 7); A[0] = this.hand === "left" ? 0 : 1; let I = 1; - for (const g of kI) { + for (const g of hI) { const B = this.joints[g]; B && (A[I] = B.position.x, A[I + 1] = B.position.y, A[I + 2] = B.position.z, A[I + 3] = B.quaternion.x, A[I + 4] = B.quaternion.y, A[I + 5] = B.quaternion.z, A[I + 6] = B.quaternion.w), I += 7; } return A; } } -function jR(Q, A) { +function Vt(Q, A) { let I = 0, g = Q.length - 1; for (; I <= g; ) { const B = I + g >> 1; @@ -15428,51 +14463,51 @@ function jR(Q, A) { } return g; } -function vR(Q, A, I = 0) { +function Zt(Q, A, I = 0) { if (!Q || !A) return; const g = {}; - for (const B of kI) { - const C = zR(Q[B], A[B], I); + for (const B of hI) { + const C = Ot(Q[B], A[B], I); C && (g[B] = C); } return g; } -function zR(Q, A, I = 0) { +function Ot(Q, A, I = 0) { if (!Q || !A) return; const g = Q.pos.map( - (E, D) => E + (A.pos[D] - E) * I - ), B = mQ.fromArray(Q.quat).slerp(VR.fromArray(A.quat), I).toArray(), C = Q.radius + (A.radius - Q.radius) * I; + (E, i) => E + (A.pos[i] - E) * I + ), B = VQ.fromArray(Q.quat).slerp(bt.fromArray(A.quat), I).toArray(), C = Q.radius + (A.radius - Q.radius) * I; return { pos: g, quat: B, radius: C }; } -function _R(Q) { +function Wt(Q) { if (!Q) return; const A = {}; - for (const I of kI) { + for (const I of hI) { const g = Q[I]; - g && (A[I] = $R(g)); + g && (A[I] = vt(g)); } return A; } -function $R(Q) { +function vt(Q) { return { pos: [...Q.pos], quat: [...Q.quat], radius: Q.radius }; } -class Ak extends vA { +class Xt extends zA { constructor(A) { - super({}), this.scratchCenter = new G.Vector3(), this.scratchQuat = new G.Quaternion(0, 0, 0, 1), this.scratchScales = new G.Vector3().setScalar(0.01), this.scratchColor = new G.Color(1, 1, 1), this.hand = A; + super({}), this.scratchCenter = new a.Vector3(), this.scratchQuat = new a.Quaternion(0, 0, 0, 1), this.scratchScales = new a.Vector3().setScalar(0.01), this.scratchColor = new a.Color(1, 1, 1), this.hand = A; } updateJoints(A) { if (this.visible = !1, !A || !this.packedSplats) return; this.visible = !0; let I = 0; - for (const g of kI) { + for (const g of hI) { const B = A[g]; if (!B) continue; @@ -15492,9 +14527,9 @@ class Ak extends vA { this.packedSplats.numSplats = I, this.packedSplats.needsUpdate = !0, this.numSplats = I, this.updateVersion(); } } -const Ik = 0.5, gk = 0.5, Qk = 0; -var UB = /* @__PURE__ */ ((Q) => (Q.w = "wrist", Q.t0 = "thumb-metacarpal", Q.t1 = "thumb-phalanx-proximal", Q.t2 = "thumb-phalanx-distal", Q.t3 = "thumb-tip", Q.i0 = "index-finger-metacarpal", Q.i1 = "index-finger-phalanx-proximal", Q.i2 = "index-finger-phalanx-intermediate", Q.i3 = "index-finger-phalanx-distal", Q.i4 = "index-finger-tip", Q.m0 = "middle-finger-metacarpal", Q.m1 = "middle-finger-phalanx-proximal", Q.m2 = "middle-finger-phalanx-intermediate", Q.m3 = "middle-finger-phalanx-distal", Q.m4 = "middle-finger-tip", Q.r0 = "ring-finger-metacarpal", Q.r1 = "ring-finger-phalanx-proximal", Q.r2 = "ring-finger-phalanx-intermediate", Q.r3 = "ring-finger-phalanx-distal", Q.r4 = "ring-finger-tip", Q.p0 = "pinky-finger-metacarpal", Q.p1 = "pinky-finger-phalanx-proximal", Q.p2 = "pinky-finger-phalanx-intermediate", Q.p3 = "pinky-finger-phalanx-distal", Q.p4 = "pinky-finger-tip", Q))(UB || {}); -const Zw = Object.keys(UB), Zk = Zw.length, Vk = { +const jt = 0.5, zt = 0.5, _t = 0; +var NB = /* @__PURE__ */ ((Q) => (Q.w = "wrist", Q.t0 = "thumb-metacarpal", Q.t1 = "thumb-phalanx-proximal", Q.t2 = "thumb-phalanx-distal", Q.t3 = "thumb-tip", Q.i0 = "index-finger-metacarpal", Q.i1 = "index-finger-phalanx-proximal", Q.i2 = "index-finger-phalanx-intermediate", Q.i3 = "index-finger-phalanx-distal", Q.i4 = "index-finger-tip", Q.m0 = "middle-finger-metacarpal", Q.m1 = "middle-finger-phalanx-proximal", Q.m2 = "middle-finger-phalanx-intermediate", Q.m3 = "middle-finger-phalanx-distal", Q.m4 = "middle-finger-tip", Q.r0 = "ring-finger-metacarpal", Q.r1 = "ring-finger-phalanx-proximal", Q.r2 = "ring-finger-phalanx-intermediate", Q.r3 = "ring-finger-phalanx-distal", Q.r4 = "ring-finger-tip", Q.p0 = "pinky-finger-metacarpal", Q.p1 = "pinky-finger-phalanx-proximal", Q.p2 = "pinky-finger-phalanx-intermediate", Q.p3 = "pinky-finger-phalanx-distal", Q.p4 = "pinky-finger-tip", Q))(NB || {}); +const xo = Object.keys(NB), Py = xo.length, by = { w: 0, t0: 1, t1: 2, @@ -15520,7 +14555,7 @@ const Zw = Object.keys(UB), Zk = Zw.length, Vk = { p2: 22, p3: 23, p4: 24 -}, dg = { +}, lg = { w: 0.02, t0: 0.02, t1: 0.014, @@ -15546,22 +14581,22 @@ const Zw = Object.keys(UB), Zk = Zw.length, Vk = { p2: 7e-3, p3: 65e-4, p4: 55e-4 -}, Bk = [ +}, $t = [ ["w", "t0", "t1", "t2", "t3"], ["w", "i0", "i1", "i2", "i3", "i4"], ["w", "m0", "m1", "m2", "m3", "m4"], ["w", "r0", "r1", "r2", "r3", "r4"], ["w", "p0", "p1", "p2", "p3", "p4"] -], Ck = [ +], Ay = [ [8, 10, 8, 6], [8, 19, 14, 8, 6], [8, 19, 14, 8, 6], [8, 19, 14, 8, 6], [8, 19, 14, 8, 6] -], Xk = ["t3", "i4", "m4", "r4", "p4"], Wk = ["i4", "m4", "r4", "p4"]; -var Vw = /* @__PURE__ */ ((Q) => (Q.left = "left", Q.right = "right", Q))(Vw || {}); -const ZQ = Object.keys(Vw); -class jk { +], Ty = ["t3", "i4", "m4", "r4", "p4"], my = ["i4", "m4", "r4", "p4"]; +var fo = /* @__PURE__ */ ((Q) => (Q.left = "left", Q.right = "right", Q))(fo || {}); +const ZQ = Object.keys(fo); +class Vy { constructor() { this.hands = {}, this.last = {}, this.values = {}, this.tests = {}, this.lastTests = {}, this.updated = !1; } @@ -15577,28 +14612,28 @@ class jk { continue; const E = C.handedness; this.hands[E] = {}; - for (const D of Zw) { - const i = C.hand.get(UB[D]); - if (i) { - const w = I.getJointPose(i, B); - if (w) { - const { position: s, orientation: o } = w.transform; - this.hands[E][D] = { - position: new gI(s.x, s.y, s.z), - quaternion: new tB( - o.x, - o.y, - o.z, - o.w + for (const i of xo) { + const o = C.hand.get(NB[i]); + if (o) { + const D = I.getJointPose(o, B); + if (D) { + const { position: s, orientation: w } = D.transform; + this.hands[E][i] = { + position: new AI(s.x, s.y, s.z), + quaternion: new SB( + w.x, + w.y, + w.z, + w.w ), - radius: w.radius || 1e-3 + radius: D.radius || 1e-3 }; } } } } for (const C of ZQ) - for (const { key: E, value: D } of [ + for (const { key: E, value: i } of [ { key: `${C}AllTips`, value: this.allTipsTouching(C) }, { key: `${C}IndexThumb`, @@ -15618,62 +14653,62 @@ class jk { }, { key: `${C}TriTips`, value: this.triTipsTouching(C) } ]) - this.values[E] = D, this.tests[E] = D === 1 ? !0 : D === 0 ? !1 : this.lastTests[E] ?? !1; + this.values[E] = i, this.tests[E] = i === 1 ? !0 : i === 0 ? !1 : this.lastTests[E] ?? !1; } } makeGhostMesh() { - const A = new gI(), I = new gI(0.01, 0.01, 0.01), g = new tB(0, 0, 0, 1), B = new HB(1, 1, 1), C = Math.PI * 3; - new HB(1, 1, 1); + const A = new AI(), I = new AI(0.01, 0.01, 0.01), g = new SB(0, 0, 0, 1), B = new RB(1, 1, 1), C = Math.PI * 3; + new RB(1, 1, 1); let E = 1; - const D = new vA({ + const i = new zA({ onFrame: () => { - if (!D.packedSplats) + if (!i.packedSplats) return; - let i = 0; - for (const w of ZQ) { - const s = this.hands[w]; - for (const [o, y] of Bk.entries()) - for (let h = 1; h < y.length; ++h) { - const k = Ck[o][h - 1] * 2, R = h + 1 === y.length, F = s == null ? void 0 : s[y[h - 1]], a = s == null ? void 0 : s[y[h]]; - for (let S = 0; S < k; ++S) { - const M = (S + 0.5) / k; - if (E = 0, F && a) { - A.copy(F.position).lerp(a.position, M), g.copy(F.quaternion).slerp(a.quaternion, M); - const c = dg[y[h - 1]], N = dg[y[h]]; - let U = (1 - M) * c + M * N; - R && M > 0.8 && (U *= Math.sqrt(1 - ((M - 0.8) / 0.2) ** 2)), I.set(0.65 * U, 0.5 * U, 3e-3), B.set( + let o = 0; + for (const D of ZQ) { + const s = this.hands[D]; + for (const [w, G] of $t.entries()) + for (let h = 1; h < G.length; ++h) { + const c = Ay[w][h - 1] * 2, t = h + 1 === G.length, y = s == null ? void 0 : s[G[h - 1]], k = s == null ? void 0 : s[G[h]]; + for (let F = 0; F < c; ++F) { + const R = (F + 0.5) / c; + if (E = 0, y && k) { + A.copy(y.position).lerp(k.position, R), g.copy(y.quaternion).slerp(k.quaternion, R); + const S = lg[G[h - 1]], N = lg[G[h]]; + let M = (1 - R) * S + R * N; + t && R > 0.8 && (M *= Math.sqrt(1 - ((R - 0.8) / 0.2) ** 2)), I.set(0.65 * M, 0.5 * M, 3e-3), B.set( 0.55 + 0.45 * Math.sin(A.x * C), 0.55 + 0.45 * Math.sin(A.y * C), 0.55 + 0.45 * Math.sin(A.z * C) - ), w === "right" && B.set(1 - B.r, 1 - B.g, 1 - B.b), E = 0.75; + ), D === "right" && B.set(1 - B.r, 1 - B.g, 1 - B.b), E = 0.75; } - D.packedSplats.setSplat( - i, + i.packedSplats.setSplat( + o, A, I, g, E, B - ), i += 1; + ), o += 1; } } } - D.packedSplats.numSplats = i, D.packedSplats.needsUpdate = !0, D.numSplats = i, D.updateVersion(); + i.packedSplats.numSplats = o, i.packedSplats.needsUpdate = !0, i.numSplats = o, i.updateVersion(); } }); - return D; + return i; } distance(A, I, g, B, C = !1) { - const E = C ? this.last[A] : this.hands[A], D = C ? this.last[g] : this.hands[g], i = E == null ? void 0 : E[I], w = D == null ? void 0 : D[B]; - return !i || !w ? Number.POSITIVE_INFINITY : i.position.distanceTo(w.position); + const E = C ? this.last[A] : this.hands[A], i = C ? this.last[g] : this.hands[g], o = E == null ? void 0 : E[I], D = i == null ? void 0 : i[B]; + return !o || !D ? Number.POSITIVE_INFINITY : o.position.distanceTo(D.position); } separation(A, I, g, B, C = !1) { const E = this.distance(A, I, g, B, C); - return E === Number.POSITIVE_INFINITY ? Number.POSITIVE_INFINITY : E - dg[I] - dg[B]; + return E === Number.POSITIVE_INFINITY ? Number.POSITIVE_INFINITY : E - lg[I] - lg[B]; } touching(A, I, g, B, C = !1) { const E = this.separation(A, I, g, B, C); - return E === Number.POSITIVE_INFINITY ? Number.POSITIVE_INFINITY : 1 - Math.max(0, Math.min(1, E / 0.01 - Qk)); + return E === Number.POSITIVE_INFINITY ? Number.POSITIVE_INFINITY : 1 - Math.max(0, Math.min(1, E / 0.01 - _t)); } allTipsTouching(A, I = !1) { return Math.min( @@ -15692,35 +14727,35 @@ class jk { ); } } -class vk { +class Zy { constructor({ xrHands: A, control: I, moveInertia: g, rotateInertia: B }) { - this.lastGrip = {}, this.lastPivot = new gI(), this.rotateVelocity = 0, this.velocity = new gI(), this.xrHands = A, this.control = I, this.moveInertia = g ?? Ik, this.rotateInertia = B ?? gk; + this.lastGrip = {}, this.lastPivot = new AI(), this.rotateVelocity = 0, this.velocity = new AI(), this.xrHands = A, this.control = I, this.moveInertia = g ?? jt, this.rotateInertia = B ?? zt; } update(A) { - var C, E, D, i, w; + var C, E, i, o, D; const I = {}; for (const s of ZQ) { - const o = this.xrHands.hands[s]; - o && this.xrHands.tests[`${s}MiddleThumb`] && (I[s] = new gI().add(((C = o.t3) == null ? void 0 : C.position) ?? new gI()).add(((E = o.i4) == null ? void 0 : E.position) ?? new gI()).add(((D = o.m4) == null ? void 0 : D.position) ?? new gI()).add(((i = o.r4) == null ? void 0 : i.position) ?? new gI()).add(((w = o.p4) == null ? void 0 : w.position) ?? new gI()).multiplyScalar(1 / 5)); + const w = this.xrHands.hands[s]; + w && this.xrHands.tests[`${s}MiddleThumb`] && (I[s] = new AI().add(((C = w.t3) == null ? void 0 : C.position) ?? new AI()).add(((E = w.i4) == null ? void 0 : E.position) ?? new AI()).add(((i = w.m4) == null ? void 0 : i.position) ?? new AI()).add(((o = w.r4) == null ? void 0 : o.position) ?? new AI()).add(((D = w.p4) == null ? void 0 : D.position) ?? new AI()).multiplyScalar(1 / 5)); } if (I.left && I.right && this.lastGrip.left && this.lastGrip.right) { - const s = I.left.clone().add(I.right).multiplyScalar(0.5), o = this.lastGrip.left.clone().add(this.lastGrip.right).multiplyScalar(0.5); + const s = I.left.clone().add(I.right).multiplyScalar(0.5), w = this.lastGrip.left.clone().add(this.lastGrip.right).multiplyScalar(0.5); this.lastPivot = s; - const y = s.clone().applyMatrix4(this.control.matrix); - y.sub(o.clone().applyMatrix4(this.control.matrix)), y.multiplyScalar(1 / A), this.velocity.lerp(y, 1 - Math.exp(-20 * A)); - const h = Math.atan2(I.left.z - s.z, I.left.x - s.x), k = Math.atan2( - this.lastGrip.left.z - o.z, - this.lastGrip.left.x - o.x + const G = s.clone().applyMatrix4(this.control.matrix); + G.sub(w.clone().applyMatrix4(this.control.matrix)), G.multiplyScalar(1 / A), this.velocity.lerp(G, 1 - Math.exp(-20 * A)); + const h = Math.atan2(I.left.z - s.z, I.left.x - s.x), c = Math.atan2( + this.lastGrip.left.z - w.z, + this.lastGrip.left.x - w.x ); - let R = h - k; - R > Math.PI ? R -= Math.PI * 2 : R < -Math.PI && (R += Math.PI * 2); - const F = R / A, a = Math.exp(-20 * A); - this.rotateVelocity = this.rotateVelocity * a + F * (1 - a); + let t = h - c; + t > Math.PI ? t -= Math.PI * 2 : t < -Math.PI && (t += Math.PI * 2); + const y = t / A, k = Math.exp(-20 * A); + this.rotateVelocity = this.rotateVelocity * k + y * (1 - k); } else if (this.rotateVelocity *= Math.exp(-A / this.rotateInertia), I.left && this.lastGrip.left) { const s = I.left.clone().applyMatrix4(this.control.matrix); s.sub(this.lastGrip.left.clone().applyMatrix4(this.control.matrix)), s.multiplyScalar(1 / A), this.velocity.lerp(s, 1 - Math.exp(-20 * A)); @@ -15731,7 +14766,7 @@ class vk { ), s.multiplyScalar(1 / A), this.velocity.lerp(s, 1 - Math.exp(-20 * A)); } else this.velocity.multiplyScalar(Math.exp(-A / this.moveInertia)); - const g = this.lastPivot.clone().negate(), B = new kQ().makeTranslation(g).premultiply(new kQ().makeRotationY(this.rotateVelocity * A)).premultiply(new kQ().makeTranslation(this.lastPivot)); + const g = this.lastPivot.clone().negate(), B = new tQ().makeTranslation(g).premultiply(new tQ().makeRotationY(this.rotateVelocity * A)).premultiply(new tQ().makeTranslation(this.lastPivot)); this.control.matrix.multiply(B), this.control.matrix.decompose( this.control.position, this.control.quaternion, @@ -15739,31 +14774,31 @@ class vk { ), this.control.updateMatrixWorld(!0), this.control.position.sub(this.velocity.clone().multiplyScalar(A)), this.lastGrip = I; } } -const Ek = 1, Dk = 2, ik = 2e-3, wk = 6e-3, ok = 15e-4, sk = 0.15, Gk = 0.15, yk = 0.1, hk = 2, Rk = 0, kk = 500, Fk = 500, ak = 200, Sk = 400, Nk = 25, oI = 1e-4, ck = { - KeyW: new G.Vector3(0, 0, -1), - KeyS: new G.Vector3(0, 0, 1), - KeyA: new G.Vector3(-1, 0, 0), - KeyD: new G.Vector3(1, 0, 0), - KeyE: new G.Vector3(0, 1, 0), - KeyQ: new G.Vector3(0, -1, 0) -}, Mk = { - ArrowUp: new G.Vector3(0, 0, -1), - ArrowDown: new G.Vector3(0, 0, 1), - ArrowLeft: new G.Vector3(-1, 0, 0), - ArrowRight: new G.Vector3(1, 0, 0), - PageUp: new G.Vector3(0, 1, 0), - PageDown: new G.Vector3(0, -1, 0) +const Iy = 1, gy = 2, Qy = 2e-3, By = 6e-3, Cy = 15e-4, Ey = 0.15, iy = 0.15, Dy = 0.1, oy = 2, wy = 0, sy = 500, ay = 500, Gy = 200, hy = 400, ty = 25, iI = 1e-4, yy = { + KeyW: new a.Vector3(0, 0, -1), + KeyS: new a.Vector3(0, 0, 1), + KeyA: new a.Vector3(-1, 0, 0), + KeyD: new a.Vector3(1, 0, 0), + KeyE: new a.Vector3(0, 1, 0), + KeyQ: new a.Vector3(0, -1, 0) +}, cy = { + ArrowUp: new a.Vector3(0, 0, -1), + ArrowDown: new a.Vector3(0, 0, 1), + ArrowLeft: new a.Vector3(-1, 0, 0), + ArrowRight: new a.Vector3(1, 0, 0), + PageUp: new a.Vector3(0, 1, 0), + PageDown: new a.Vector3(0, -1, 0) }; -new G.Vector3(0, 0, 1), new G.Vector3(0, 0, -1); -const Jk = { - Home: new G.Vector3(0, -1, 0), - End: new G.Vector3(0, 1, 0), - Insert: new G.Vector3(-1, 0, 0), - Delete: new G.Vector3(1, 0, 0) +new a.Vector3(0, 0, 1), new a.Vector3(0, 0, -1); +const ky = { + Home: new a.Vector3(0, -1, 0), + End: new a.Vector3(0, 1, 0), + Insert: new a.Vector3(-1, 0, 0), + Delete: new a.Vector3(1, 0, 0) }; -class zk { +class Oy { constructor({ canvas: A }) { - this.lastTime = 0, this.fpsMovement = new Uk({}), this.pointerControls = new tk({ canvas: A }); + this.lastTime = 0, this.fpsMovement = new Fy({}), this.pointerControls = new Ny({ canvas: A }); } update(A, I) { const g = performance.now(), B = (g - (this.lastTime || g)) / 1e3; @@ -15772,7 +14807,7 @@ class zk { return this.pointerControls.update(B, A, I) && (C = !0), C; } } -class Uk { +class Fy { constructor({ moveSpeed: A, rollSpeed: I, @@ -15780,27 +14815,27 @@ class Uk { rotateSpeed: B, keycodeMoveMapping: C, keycodeRotateMapping: E, - gamepadMapping: D, - capsMultiplier: i, - shiftMultiplier: w, + gamepadMapping: i, + capsMultiplier: o, + shiftMultiplier: D, ctrlMultiplier: s, - xr: o + xr: w } = {}) { - this.enable = !0, this.extraMove = new G.Vector3(), this.moveSpeed = A ?? Ek, this.rollSpeed = I ?? Dk, this.stickThreshold = g ?? yk, this.rotateSpeed = B ?? hk, this.keycodeMoveMapping = C ?? { - ...ck, - ...Mk + this.enable = !0, this.extraMove = new a.Vector3(), this.moveSpeed = A ?? Iy, this.rollSpeed = I ?? gy, this.stickThreshold = g ?? Dy, this.rotateSpeed = B ?? oy, this.keycodeMoveMapping = C ?? { + ...yy, + ...cy }, this.keycodeRotateMapping = E ?? { // ...QE_KEYCODE_ROTATE, - ...Jk - }, this.gamepadMapping = D ?? { + ...ky + }, this.gamepadMapping = i ?? { 4: "rollLeft", 5: "rollRight", 6: "ctrl", 7: "shift" - }, this.capsMultiplier = i ?? 10, this.shiftMultiplier = w ?? 5, this.ctrlMultiplier = s ?? 1 / 5, this.xr = o, this.keydown = {}, this.keycode = {}, document.addEventListener("keydown", (y) => { - this.keydown[y.key] = !0, this.keycode[y.code] = !0; - }), document.addEventListener("keyup", (y) => { - this.keydown[y.key] = !1, this.keycode[y.code] = !1; + }, this.capsMultiplier = o ?? 10, this.shiftMultiplier = D ?? 5, this.ctrlMultiplier = s ?? 1 / 5, this.xr = w, this.keydown = {}, this.keycode = {}, document.addEventListener("keydown", (G) => { + this.keydown[G.key] = !0, this.keycode[G.code] = !0; + }), document.addEventListener("keyup", (G) => { + this.keydown[G.key] = !1, this.keycode[G.code] = !1; }), window.addEventListener("blur", () => { this.keydown = {}, this.keycode = {}; }); @@ -15809,68 +14844,68 @@ class Uk { // (`THREE.Camera` or a `THREE.Object3D` that contains it), with `deltaTime` // in seconds since the last update. update(A, I) { - var o, y; + var w, G; if (!this.enable) return !1; - const g = [new G.Vector2(), new G.Vector2()], B = navigator.getGamepads()[0]; + const g = [new a.Vector2(), new a.Vector2()], B = navigator.getGamepads()[0]; B && (g[0].set(B.axes[0], B.axes[1]), g[1].set(B.axes[2], B.axes[3])); - const C = (B == null ? void 0 : B.buttons.map((h) => h.pressed)) || [], E = Array.from(((y = (o = this.xr) == null ? void 0 : o.getSession()) == null ? void 0 : y.inputSources) ?? []); + const C = (B == null ? void 0 : B.buttons.map((h) => h.pressed)) || [], E = Array.from(((G = (w = this.xr) == null ? void 0 : w.getSession()) == null ? void 0 : G.inputSources) ?? []); for (const h of E) { - const k = h.gamepad; - if (k) + const c = h.gamepad; + if (c) switch (h.handedness) { case "none": { - g[0].x += k.axes[0], g[0].y += k.axes[1], g[1].x += k.axes[2], g[1].y += k.axes[3]; + g[0].x += c.axes[0], g[0].y += c.axes[1], g[1].x += c.axes[2], g[1].y += c.axes[3]; break; } case "left": { - g[0].x += k.axes[2], g[0].y += k.axes[3]; + g[0].x += c.axes[2], g[0].y += c.axes[3]; break; } case "right": { - g[1].x += k.axes[2], g[1].y += k.axes[3]; + g[1].x += c.axes[2], g[1].y += c.axes[3]; break; } } } for (const h of g) h.x = Math.abs(h.x) >= this.stickThreshold ? h.x : 0, h.y = Math.abs(h.y) >= this.stickThreshold ? h.y : 0; - const D = new G.Vector3( + const i = new a.Vector3( g[1].x, g[1].y, 0 ).multiplyScalar(this.rotateSpeed); - for (const [h, k] of Object.entries(this.keycodeRotateMapping)) - this.keycode[h] && D.add(k); + for (const [h, c] of Object.entries(this.keycodeRotateMapping)) + this.keycode[h] && i.add(c); for (const h in this.gamepadMapping) if (C[Number.parseInt(h)]) switch (this.gamepadMapping[h]) { case "rollLeft": - D.z += 1; + i.z += 1; break; case "rollRight": - D.z -= 1; + i.z -= 1; break; } - D.multiply( - new G.Vector3(this.rotateSpeed, this.rotateSpeed, this.rollSpeed) + i.multiply( + new a.Vector3(this.rotateSpeed, this.rotateSpeed, this.rollSpeed) ); - let i = D.length() > oI; - if (D.manhattanLength() > 0) { - D.multiplyScalar(A); - const h = new G.Euler().setFromQuaternion( + let o = i.length() > iI; + if (i.manhattanLength() > 0) { + i.multiplyScalar(A); + const h = new a.Euler().setFromQuaternion( I.quaternion, "YXZ" ); - h.y -= D.x, h.x = Math.max( + h.y -= i.x, h.x = Math.max( -Math.PI / 2, - Math.min(Math.PI / 2, h.x - D.y) - ), h.z = Math.max(-Math.PI, Math.min(Math.PI, h.z + D.z)), I.quaternion.setFromEuler(h); + Math.min(Math.PI / 2, h.x - i.y) + ), h.z = Math.max(-Math.PI, Math.min(Math.PI, h.z + i.z)), I.quaternion.setFromEuler(h); } - const w = new G.Vector3(g[0].x, 0, g[0].y); - w.add(this.extraMove); - for (const [h, k] of Object.entries(this.keycodeMoveMapping)) - this.keycode[h] && w.add(k); + const D = new a.Vector3(g[0].x, 0, g[0].y); + D.add(this.extraMove); + for (const [h, c] of Object.entries(this.keycodeMoveMapping)) + this.keycode[h] && D.add(c); let s = 1; this.keydown.CapsLock && (s *= this.capsMultiplier), (this.keycode.ShiftLeft || this.keycode.ShiftRight) && (s *= this.shiftMultiplier), (this.keycode.ControlLeft || this.keycode.ControlRight) && (s *= this.ctrlMultiplier); for (const h in this.gamepadMapping) @@ -15883,12 +14918,12 @@ class Uk { s *= this.ctrlMultiplier; break; } - return w.length() > oI && (i = !0), w.applyQuaternion(I.quaternion), I.position.add( - w.multiplyScalar(this.moveSpeed * s * A) - ), i; + return D.length() > iI && (o = !0), D.applyQuaternion(I.quaternion), I.position.add( + D.multiplyScalar(this.moveSpeed * s * A) + ), o; } } -class tk { +class Ny { constructor({ // The HTML canvas element to attach pointer events to canvas: A, @@ -15904,184 +14939,184 @@ class tk { // Reverse the direction of rotation (default: false) reverseRotate: E, // Reverse the direction of sliding (default: false) - reverseSlide: D, + reverseSlide: i, // Reverse the direction of swipe gestures (default: false) - reverseSwipe: i, + reverseSwipe: o, // Reverse the direction of scroll wheel movement (default: false) - reverseScroll: w, + reverseScroll: D, // Inertia factor for movement (default: DEFAULT_MOVE_INERTIA) moveInertia: s, // Inertia factor for rotation (default: DEFAULT_ROTATE_INERTIA) - rotateInertia: o, + rotateInertia: w, // Pointer rolling scale factor (default: DEFAULT_POINTER_ROLL_SCALE) - pointerRollScale: y, + pointerRollScale: G, // Callback for double press events (default: () => {}) doublePress: h, // Time delay in ms for press move to start (default: DEFAULT_PRESS_MOVE_DELAY_MS) - pressMoveDelayMs: k, + pressMoveDelayMs: c, // Time in ms for press move to accelerate (default: DEFAULT_PRESS_MOVE_ACCEL_MS) - pressMoveAccelMs: R, + pressMoveAccelMs: t, // Speed of movement on press (default: 0) - pressMoveSpeed: F, + pressMoveSpeed: y, // Speed of movement on double press (default: pressMoveSpeed * 5.0) - doublePressMoveSpeed: a, + doublePressMoveSpeed: k, // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0) - triplePressMoveSpeed: S, + triplePressMoveSpeed: F, // Whether to move toward the screen center or finger when pressing to move (default: true) - pressMoveCenter: M + pressMoveCenter: R }) { - this.enable = !0, this.canvas = A, this.rotateSpeed = I ?? ik, this.slideSpeed = g ?? wk, this.scrollSpeed = B ?? ok, this.swapRotateSlide = C ?? !1, this.reverseRotate = E ?? (AB() || Rg()), this.reverseSlide = D ?? !1, this.reverseSwipe = i ?? !1, this.reverseScroll = w ?? !1, this.moveInertia = s ?? Gk, this.rotateInertia = o ?? sk, this.pointerRollScale = y ?? Rk, this.doublePress = h ?? (() => { - }), this.doublePressLimitMs = Sk, this.doublePressDistance = Nk, this.pressMoveDelayMs = k ?? kk, this.pressMoveAccelMs = R ?? Fk, this.pressMoveSpeed = F ?? 0, this.doublePressMoveSpeed = a ?? this.pressMoveSpeed * 5, this.triplePressMoveSpeed = S ?? this.doublePressMoveSpeed * 5, this.pressMoveCenter = M ?? !0, this.doublePressed = void 0, this.triplePressed = !1, this.lastUp = null, this.lastLastUp = null, this.rotating = null, this.sliding = null, this.lastDown = null, this.dualPress = !1, this.scroll = new G.Vector3(), this.rotateVelocity = new G.Vector3(), this.moveVelocity = new G.Vector3(), A.addEventListener("pointerdown", (N) => { - const U = this.getPointerPosition(N), J = U.clone(), t = U.clone(), H = !this.swapRotateSlide && !this.rotating && (N.pointerType !== "mouse" || N.button === 0) || this.swapRotateSlide && this.sliding && !this.rotating && (N.pointerType !== "mouse" || N.button === 1), { pointerId: K } = N, Y = performance.now(); - if (H) - this.rotating = { initial: J, last: t, position: U, pointerId: K, timeStamp: Y }, this.lastDown = this.rotating, A.setPointerCapture(N.pointerId), this.dualPress = !1; + this.enable = !0, this.canvas = A, this.rotateSpeed = I ?? Qy, this.slideSpeed = g ?? By, this.scrollSpeed = B ?? Cy, this.swapRotateSlide = C ?? !1, this.reverseRotate = E ?? (iB() || Gg()), this.reverseSlide = i ?? !1, this.reverseSwipe = o ?? !1, this.reverseScroll = D ?? !1, this.moveInertia = s ?? iy, this.rotateInertia = w ?? Ey, this.pointerRollScale = G ?? wy, this.doublePress = h ?? (() => { + }), this.doublePressLimitMs = hy, this.doublePressDistance = ty, this.pressMoveDelayMs = c ?? sy, this.pressMoveAccelMs = t ?? ay, this.pressMoveSpeed = y ?? 0, this.doublePressMoveSpeed = k ?? this.pressMoveSpeed * 5, this.triplePressMoveSpeed = F ?? this.doublePressMoveSpeed * 5, this.pressMoveCenter = R ?? !0, this.doublePressed = void 0, this.triplePressed = !1, this.lastUp = null, this.lastLastUp = null, this.rotating = null, this.sliding = null, this.lastDown = null, this.dualPress = !1, this.scroll = new a.Vector3(), this.rotateVelocity = new a.Vector3(), this.moveVelocity = new a.Vector3(), A.addEventListener("pointerdown", (N) => { + const M = this.getPointerPosition(N), U = M.clone(), e = M.clone(), J = !this.swapRotateSlide && !this.rotating && (N.pointerType !== "mouse" || N.button === 0) || this.swapRotateSlide && this.sliding && !this.rotating && (N.pointerType !== "mouse" || N.button === 1), { pointerId: n } = N, H = performance.now(); + if (J) + this.rotating = { initial: U, last: e, position: M, pointerId: n, timeStamp: H }, this.lastDown = this.rotating, A.setPointerCapture(N.pointerId), this.dualPress = !1; else if (!this.sliding) { const L = N.pointerType === "mouse" ? N.button : void 0; this.sliding = { - initial: J, - last: t, - position: U, - pointerId: K, + initial: U, + last: e, + position: M, + pointerId: n, button: L, - timeStamp: Y - }, this.lastDown = this.sliding, A.setPointerCapture(N.pointerId), this.dualPress = this.rotating != null && Y - this.rotating.timeStamp < ak; + timeStamp: H + }, this.lastDown = this.sliding, A.setPointerCapture(N.pointerId), this.dualPress = this.rotating != null && H - this.rotating.timeStamp < Gy; } if (this.lastUp) { - const L = this.lastUp.position.distanceTo(U), q = Y - this.lastUp.timeStamp; - if (L < this.doublePressDistance && q < this.doublePressLimitMs && (this.doublePressed = performance.now(), this.triplePressed = !1, this.lastLastUp)) { - const n = this.lastLastUp.position.distanceTo( + const L = this.lastUp.position.distanceTo(M), l = H - this.lastUp.timeStamp; + if (L < this.doublePressDistance && l < this.doublePressLimitMs && (this.doublePressed = performance.now(), this.triplePressed = !1, this.lastLastUp)) { + const d = this.lastLastUp.position.distanceTo( this.lastUp.position - ), r = this.lastUp.timeStamp - this.lastLastUp.timeStamp; - n < this.doublePressDistance && r < this.doublePressLimitMs && (this.triplePressed = !0); + ), K = this.lastUp.timeStamp - this.lastLastUp.timeStamp; + d < this.doublePressDistance && K < this.doublePressLimitMs && (this.triplePressed = !0); } } }); - const c = (N) => { - var H, K; - ((H = this.rotating) == null ? void 0 : H.pointerId) === N.pointerId ? (this.rotating = null, A.releasePointerCapture(N.pointerId), this.dualPress && this.sliding && (A.releasePointerCapture(this.sliding.pointerId), this.sliding = null)) : ((K = this.sliding) == null ? void 0 : K.pointerId) === N.pointerId && (this.sliding = null, A.releasePointerCapture(N.pointerId), this.dualPress && this.rotating && (A.releasePointerCapture(this.rotating.pointerId), this.rotating = null)), this.doublePressed = void 0, this.triplePressed = !1; - const U = this.getPointerPosition(N), J = this.lastUp; + const S = (N) => { + var J, n; + ((J = this.rotating) == null ? void 0 : J.pointerId) === N.pointerId ? (this.rotating = null, A.releasePointerCapture(N.pointerId), this.dualPress && this.sliding && (A.releasePointerCapture(this.sliding.pointerId), this.sliding = null)) : ((n = this.sliding) == null ? void 0 : n.pointerId) === N.pointerId && (this.sliding = null, A.releasePointerCapture(N.pointerId), this.dualPress && this.rotating && (A.releasePointerCapture(this.rotating.pointerId), this.rotating = null)), this.doublePressed = void 0, this.triplePressed = !1; + const M = this.getPointerPosition(N), U = this.lastUp; this.lastLastUp = this.lastUp; - const t = performance.now(); - if (this.lastUp = { position: U, timeStamp: t }, J && J.position.distanceTo(U) < this.doublePressDistance) { - const L = t - J.timeStamp; - L < this.doublePressLimitMs && this.doublePress({ position: U, intervalMs: L }); + const e = performance.now(); + if (this.lastUp = { position: M, timeStamp: e }, U && U.position.distanceTo(M) < this.doublePressDistance) { + const L = e - U.timeStamp; + L < this.doublePressLimitMs && this.doublePress({ position: M, intervalMs: L }); } }; - document.addEventListener("pointerup", c), document.addEventListener("pointercancel", c), document.addEventListener("pointermove", (N) => { - var U, J; - ((U = this.rotating) == null ? void 0 : U.pointerId) === N.pointerId ? this.rotating.position = this.getPointerPosition(N) : ((J = this.sliding) == null ? void 0 : J.pointerId) === N.pointerId && (this.sliding.position = this.getPointerPosition(N)); + document.addEventListener("pointerup", S), document.addEventListener("pointercancel", S), document.addEventListener("pointermove", (N) => { + var M, U; + ((M = this.rotating) == null ? void 0 : M.pointerId) === N.pointerId ? this.rotating.position = this.getPointerPosition(N) : ((U = this.sliding) == null ? void 0 : U.pointerId) === N.pointerId && (this.sliding.position = this.getPointerPosition(N)); }), A.addEventListener("contextmenu", (N) => { N.preventDefault(); }), A.addEventListener("wheel", (N) => { this.scroll.add( - new G.Vector3(N.deltaX, N.deltaY, N.deltaZ) + new a.Vector3(N.deltaX, N.deltaY, N.deltaZ) ), N.preventDefault(); }); } getPointerPosition(A) { const I = this.canvas.getBoundingClientRect(); - return new G.Vector2( + return new a.Vector2( A.clientX - I.left, A.clientY - I.top ); } update(A, I, g) { - var D, i; + var i, o; if (!this.enable) return !1; const B = performance.now(); let C = !1; if (this.dualPress && this.rotating && this.sliding) { - const w = [ + const D = [ this.rotating.position.clone().sub(this.rotating.last), this.sliding.position.clone().sub(this.sliding.last) - ], s = w[0].dot(w[1]); + ], s = D[0].dot(D[1]); if (s >= 0.2) { - const o = w[0].clone().add(w[1]), y = new G.Vector3(o.x, -o.y, 0); - y.multiplyScalar(this.slideSpeed * (this.reverseSwipe ? 1 : -1)), y.applyQuaternion(I.quaternion), I.position.add(y), this.moveVelocity = y.clone().multiplyScalar(1 / A), y.length() > oI && (C = !0); + const w = D[0].clone().add(D[1]), G = new a.Vector3(w.x, -w.y, 0); + G.multiplyScalar(this.slideSpeed * (this.reverseSwipe ? 1 : -1)), G.applyQuaternion(I.quaternion), I.position.add(G), this.moveVelocity = G.clone().multiplyScalar(1 / A), G.length() > iI && (C = !0); } else if (s <= -0.2) { - const o = this.sliding.last.clone().sub(this.rotating.last), y = o.length(); - o.multiplyScalar(1 / y).normalize(); - const h = new G.Vector2(-o.y, o.x), k = [w[0].dot(o), w[1].dot(o)], R = [w[0].dot(h), w[1].dot(h)], F = this.rotating.last.clone().add(this.sliding.last).multiplyScalar(0.5); - let a = new G.Vector3(); - const S = g ?? (I instanceof G.Camera ? I : void 0); - if (S) { - const t = new G.Vector2( - F.x / this.canvas.clientWidth * 2 - 1, - -(F.y / this.canvas.clientHeight) * 2 + 1 - ), H = new G.Raycaster(); - H.setFromCamera(t, S), a = H.ray.direction; + const w = this.sliding.last.clone().sub(this.rotating.last), G = w.length(); + w.multiplyScalar(1 / G).normalize(); + const h = new a.Vector2(-w.y, w.x), c = [D[0].dot(w), D[1].dot(w)], t = [D[0].dot(h), D[1].dot(h)], y = this.rotating.last.clone().add(this.sliding.last).multiplyScalar(0.5); + let k = new a.Vector3(); + const F = g ?? (I instanceof a.Camera ? I : void 0); + if (F) { + const e = new a.Vector2( + y.x / this.canvas.clientWidth * 2 - 1, + -(y.y / this.canvas.clientHeight) * 2 + 1 + ), J = new a.Raycaster(); + J.setFromCamera(e, F), k = J.ray.direction; } - const M = k[1] - k[0], c = a.multiplyScalar(M * this.slideSpeed); - I.position.add(c), this.moveVelocity = c.clone().multiplyScalar(1 / A), c.length() > oI && (C = !0); + const R = c[1] - c[0], S = k.multiplyScalar(R * this.slideSpeed); + I.position.add(S), this.moveVelocity = S.clone().multiplyScalar(1 / A), S.length() > iI && (C = !0); const N = [ - Math.atan(R[0] / (-0.5 * y)), - Math.atan(R[1] / (0.5 * y)) - ], U = 0.5 * (N[0] + N[1]) * this.pointerRollScale, J = new G.Euler().setFromQuaternion( + Math.atan(t[0] / (-0.5 * G)), + Math.atan(t[1] / (0.5 * G)) + ], M = 0.5 * (N[0] + N[1]) * this.pointerRollScale, U = new a.Euler().setFromQuaternion( I.quaternion, "YXZ" ); - J.z = Math.max( + U.z = Math.max( -Math.PI, - Math.min(Math.PI, J.z + 0.5 * U) - ), I.quaternion.setFromEuler(J), Math.abs(U) > oI && (C = !0); + Math.min(Math.PI, U.z + 0.5 * M) + ), I.quaternion.setFromEuler(U), Math.abs(M) > iI && (C = !0); } this.rotating.last.copy(this.rotating.position), this.sliding.last.copy(this.sliding.position); } else { - const w = new G.Vector3(); + const D = new a.Vector3(); if (this.rotating && !this.dualPress) { - const o = this.rotating.position.clone().sub(this.rotating.last); - this.rotating.last.copy(this.rotating.position), w.set(o.x, o.y, 0), w.multiplyScalar(this.rotateSpeed * (this.reverseRotate ? -1 : 1)), this.rotateVelocity = w.clone().multiplyScalar(1 / A), w.length() > oI && (C = !0); + const w = this.rotating.position.clone().sub(this.rotating.last); + this.rotating.last.copy(this.rotating.position), D.set(w.x, w.y, 0), D.multiplyScalar(this.rotateSpeed * (this.reverseRotate ? -1 : 1)), this.rotateVelocity = D.clone().multiplyScalar(1 / A), D.length() > iI && (C = !0); } else this.rotateVelocity.multiplyScalar( Math.exp(-A / this.rotateInertia) - ), w.addScaledVector(this.rotateVelocity, A), this.rotateVelocity.length() * 0.1 > oI && (C = !0); - const s = new G.Euler().setFromQuaternion( + ), D.addScaledVector(this.rotateVelocity, A), this.rotateVelocity.length() * 0.1 > iI && (C = !0); + const s = new a.Euler().setFromQuaternion( I.quaternion, "YXZ" ); - if (s.y -= w.x, s.x = Math.max( + if (s.y -= D.x, s.x = Math.max( -Math.PI / 2, - Math.min(Math.PI / 2, s.x - w.y) + Math.min(Math.PI / 2, s.x - D.y) ), s.z *= Math.exp(-0 * A), I.quaternion.setFromEuler(s), this.sliding && !this.dualPress) { - const o = this.sliding.position.clone().sub(this.sliding.last); + const w = this.sliding.position.clone().sub(this.sliding.last); this.sliding.last.copy(this.sliding.position); - const y = this.sliding.button !== 2 ? new G.Vector3(o.x, 0, o.y) : new G.Vector3(o.x, -o.y, 0); - y.multiplyScalar(this.slideSpeed * (this.reverseSlide ? -1 : 1)), y.applyQuaternion(I.quaternion), I.position.add(y), this.moveVelocity = y.clone().multiplyScalar(1 / A), y.length() > oI && (C = !0); + const G = this.sliding.button !== 2 ? new a.Vector3(w.x, 0, w.y) : new a.Vector3(w.x, -w.y, 0); + G.multiplyScalar(this.slideSpeed * (this.reverseSlide ? -1 : 1)), G.applyQuaternion(I.quaternion), I.position.add(G), this.moveVelocity = G.clone().multiplyScalar(1 / A), G.length() > iI && (C = !0); } else { - const o = new G.Vector3(); + const w = new a.Vector3(); if (this.sliding || this.rotating) { - const h = ((D = this.lastDown) == null ? void 0 : D.last) ?? new G.Vector2(), k = g ?? (I instanceof G.Camera ? I : void 0); - if (k) { - const R = this.pressMoveCenter ? new G.Vector2(0, 0) : new G.Vector2( + const h = ((i = this.lastDown) == null ? void 0 : i.last) ?? new a.Vector2(), c = g ?? (I instanceof a.Camera ? I : void 0); + if (c) { + const t = this.pressMoveCenter ? new a.Vector2(0, 0) : new a.Vector2( h.x / this.canvas.clientWidth * 2 - 1, -(h.y / this.canvas.clientHeight) * 2 + 1 - ), F = new G.Raycaster(); - F.setFromCamera(R, k), o.copy(F.ray.direction).normalize(); + ), y = new a.Raycaster(); + y.setFromCamera(t, c), w.copy(y.ray.direction).normalize(); } if (this.doublePressed) { this.pressHeld = !1; - let R = (performance.now() - this.doublePressed) / this.pressMoveAccelMs; - R = Math.max(0, Math.min(1, R)), o.multiplyScalar( - (this.triplePressed ? this.triplePressMoveSpeed : this.doublePressMoveSpeed) * R + let t = (performance.now() - this.doublePressed) / this.pressMoveAccelMs; + t = Math.max(0, Math.min(1, t)), w.multiplyScalar( + (this.triplePressed ? this.triplePressMoveSpeed : this.doublePressMoveSpeed) * t ); } else { - let R = 0; - this.lastDown && (R = (B - (((i = this.lastDown) == null ? void 0 : i.timeStamp) ?? B) - this.pressMoveDelayMs) / this.pressMoveAccelMs, this.lastDown.position.distanceTo(this.lastDown.initial) < this.doublePressDistance ? this.pressHeld === void 0 && R > 0 && (this.pressHeld = !0) : this.pressHeld === void 0 && (this.pressHeld = !1)), this.pressHeld ? o.multiplyScalar( - this.pressMoveSpeed * Math.max(0, Math.min(1, R)) - ) : o.set(0, 0, 0); + let t = 0; + this.lastDown && (t = (B - (((o = this.lastDown) == null ? void 0 : o.timeStamp) ?? B) - this.pressMoveDelayMs) / this.pressMoveAccelMs, this.lastDown.position.distanceTo(this.lastDown.initial) < this.doublePressDistance ? this.pressHeld === void 0 && t > 0 && (this.pressHeld = !0) : this.pressHeld === void 0 && (this.pressHeld = !1)), this.pressHeld ? w.multiplyScalar( + this.pressMoveSpeed * Math.max(0, Math.min(1, t)) + ) : w.set(0, 0, 0); } } else this.pressHeld = void 0; - const y = Math.exp(-A / this.moveInertia); - this.moveVelocity.lerpVectors(o, this.moveVelocity, y), I.position.addScaledVector(this.moveVelocity, A), this.moveVelocity.length() * 0.1 > oI && (C = !0); + const G = Math.exp(-A / this.moveInertia); + this.moveVelocity.lerpVectors(w, this.moveVelocity, G), I.position.addScaledVector(this.moveVelocity, A), this.moveVelocity.length() * 0.1 > iI && (C = !0); } } const E = this.scroll.multiplyScalar(this.scrollSpeed); - return E.set(E.x, E.z, E.y), this.reverseScroll && E.multiplyScalar(-1), E.applyQuaternion(I.quaternion), I.position.add(E), E.length() > oI && (C = !0), this.scroll.set(0, 0, 0), C; + return E.set(E.x, E.z, E.y), this.reverseScroll && E.multiplyScalar(-1), E.applyQuaternion(I.quaternion), I.position.add(E), E.length() > iI && (C = !0), this.scroll.set(0, 0, 0), C; } } -const Hk = ` +const Sy = ` precision highp float; precision highp int; @@ -16189,42 +15224,42 @@ void main() { #endif } `; -class _k { +class Wy { constructor(A) { - this.portalPairs = [], this.lastCameraWorld = new G.Vector3().setScalar(Number.NaN), this.prefetchActive = !1, this.scratch = { - quat: new G.Quaternion(), - scale: new G.Vector3(), - center0: new G.Vector3(), - center1: new G.Vector3(), - normal0: new G.Vector3(), - normal1: new G.Vector3(), - centerT: new G.Vector3(), - normalT: new G.Vector3(), - prevCameraWorld: new G.Vector3(), - currCameraWorld: new G.Vector3(), - hit: new G.Vector3(), - offset: new G.Vector3(), - camWorld: new G.Matrix4(), - newCamWorld: new G.Matrix4(), - invCamLocal: new G.Matrix4(), - newLocalFrame: new G.Matrix4(), - cameraWorldPos: new G.Vector3(), - viewDir: new G.Vector3(), - portalCenter: new G.Vector3(), - toPortal: new G.Vector3() + this.portalPairs = [], this.lastCameraWorld = new a.Vector3().setScalar(Number.NaN), this.prefetchActive = !1, this.scratch = { + quat: new a.Quaternion(), + scale: new a.Vector3(), + center0: new a.Vector3(), + center1: new a.Vector3(), + normal0: new a.Vector3(), + normal1: new a.Vector3(), + centerT: new a.Vector3(), + normalT: new a.Vector3(), + prevCameraWorld: new a.Vector3(), + currCameraWorld: new a.Vector3(), + hit: new a.Vector3(), + offset: new a.Vector3(), + camWorld: new a.Matrix4(), + newCamWorld: new a.Matrix4(), + invCamLocal: new a.Matrix4(), + newLocalFrame: new a.Matrix4(), + cameraWorldPos: new a.Vector3(), + viewDir: new a.Vector3(), + portalCenter: new a.Vector3(), + toPortal: new a.Vector3() }, this.renderer = A.renderer, this.scene = A.scene, this.camera = A.camera, this.localFrame = A.localFrame, this.defaultPortalRadius = A.defaultPortalRadius ?? 1, this.portalCrossEps = A.portalCrossEps ?? 1e-6; const I = A.sparkOptions ?? {}; - this.portalRenderer = new jg({ + this.portalRenderer = new Xg({ renderer: this.renderer, extraUniforms: { - diskCenter: { value: new G.Vector3() }, - diskNormal: { value: new G.Vector3() }, + diskCenter: { value: new a.Vector3() }, + diskNormal: { value: new a.Vector3() }, diskRadius: { value: 0 }, diskTwoSided: { value: !1 } }, - fragmentShader: Hk, + fragmentShader: Sy, ...I - }), this.scene.add(this.portalRenderer), this.behindRenderer = new jg({ + }), this.scene.add(this.portalRenderer), this.behindRenderer = new Xg({ renderer: this.renderer, enableDriveLod: !1, ...I @@ -16237,12 +15272,12 @@ class _k { */ addPortalPair(A) { const I = { - entryPortal: new G.Object3D(), - exitPortal: new G.Object3D(), + entryPortal: new a.Object3D(), + exitPortal: new a.Object3D(), radius: (A == null ? void 0 : A.radius) ?? this.defaultPortalRadius, onCross: A == null ? void 0 : A.onCross, - _entryBefore: new G.Matrix4(), - _exitBefore: new G.Matrix4() + _entryBefore: new a.Matrix4(), + _exitBefore: new a.Matrix4() }; return this.scene.add(I.entryPortal), this.scene.add(I.exitPortal), this.portalPairs.push(I), I; } @@ -16268,12 +15303,12 @@ class _k { /** Set portal disk uniforms for shader clipping */ setPortalDiskUniforms(A, I, g, B) { A.updateMatrixWorld(!0), I.updateMatrixWorld(!0); - const C = A.matrixWorld.clone().invert(), E = I.matrixWorld.clone().premultiply(C), D = new G.Quaternion(), i = this.portalRenderer.uniforms; + const C = A.matrixWorld.clone().invert(), E = I.matrixWorld.clone().premultiply(C), i = new a.Quaternion(), o = this.portalRenderer.uniforms; E.decompose( - i.diskCenter.value, - D, - new G.Vector3() - ), i.diskNormal.value.set(0, 0, 1).applyQuaternion(D), i.diskRadius.value = g, i.diskTwoSided.value = B; + o.diskCenter.value, + i, + new a.Vector3() + ), o.diskNormal.value.set(0, 0, 1).applyQuaternion(i), o.diskRadius.value = g, o.diskTwoSided.value = B; } /** Extract portal plane from matrix */ getPortalPlane(A, I, g) { @@ -16293,16 +15328,16 @@ class _k { this.scratch.center1, this.scratch.normal1 ); - const E = this.scratch.offset.copy(A).sub(this.scratch.center0).dot(this.scratch.normal0), D = this.scratch.offset.copy(I).sub(this.scratch.center1).dot(this.scratch.normal1); - if (E > this.portalCrossEps && D > this.portalCrossEps || E < -this.portalCrossEps && D < -this.portalCrossEps) + const E = this.scratch.offset.copy(A).sub(this.scratch.center0).dot(this.scratch.normal0), i = this.scratch.offset.copy(I).sub(this.scratch.center1).dot(this.scratch.normal1); + if (E > this.portalCrossEps && i > this.portalCrossEps || E < -this.portalCrossEps && i < -this.portalCrossEps) return null; - const i = E - D; - if (Math.abs(i) < this.portalCrossEps) return null; - const w = E / i; - return w < 0 || w > 1 || (this.scratch.hit.lerpVectors(A, I, w), this.scratch.centerT.copy(this.scratch.center0).lerp(this.scratch.center1, w), this.scratch.normalT.copy(this.scratch.normal0).lerp(this.scratch.normal1, w).normalize(), this.scratch.offset.copy(this.scratch.hit).sub(this.scratch.centerT), this.scratch.offset.addScaledVector( + const o = E - i; + if (Math.abs(o) < this.portalCrossEps) return null; + const D = E / o; + return D < 0 || D > 1 || (this.scratch.hit.lerpVectors(A, I, D), this.scratch.centerT.copy(this.scratch.center0).lerp(this.scratch.center1, D), this.scratch.normalT.copy(this.scratch.normal0).lerp(this.scratch.normal1, D).normalize(), this.scratch.offset.copy(this.scratch.hit).sub(this.scratch.centerT), this.scratch.offset.addScaledVector( this.scratch.normalT, -this.scratch.offset.dot(this.scratch.normalT) - ), this.scratch.offset.lengthSq() > C * C) ? null : w; + ), this.scratch.offset.lengthSq() > C * C) ? null : D; } /** Teleport camera through portal */ teleport(A) { @@ -16366,8 +15401,8 @@ class _k { B.entryPortal.getWorldPosition(this.scratch.portalCenter), this.scratch.toPortal.copy(this.scratch.portalCenter).sub(this.scratch.cameraWorldPos); const C = this.scratch.toPortal.length(), E = this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / C; E > A && (A = E, I = B, g = !0), B.exitPortal.getWorldPosition(this.scratch.portalCenter), this.scratch.toPortal.copy(this.scratch.portalCenter).sub(this.scratch.cameraWorldPos); - const D = this.scratch.toPortal.length(), i = this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / D; - i > A && (A = i, I = B, g = !1); + const i = this.scratch.toPortal.length(), o = this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / i; + o > A && (A = o, I = B, g = !1); } return I ? { pair: I, @@ -16424,97 +15459,93 @@ class _k { } } export { - rR as DEFAULT_CONTROLLER_FAST_MULTIPLIER, - xR as DEFAULT_CONTROLLER_GETFAST, - dR as DEFAULT_CONTROLLER_GETMOVE, - qR as DEFAULT_CONTROLLER_GETROTATE, - lR as DEFAULT_CONTROLLER_GETSLOW, - Ok as DEFAULT_CONTROLLER_MOVE_HEADING, - KR as DEFAULT_CONTROLLER_MOVE_SPEED, - eR as DEFAULT_CONTROLLER_ROLL_SPEED, - VB as DEFAULT_CONTROLLER_ROTATE_SPEED, - nR as DEFAULT_CONTROLLER_SLOW_MULTIPLIER, - Hk as DISK_PORTAL_FRAGMENT_SHADER, - GI as ExtSplats, - Wk as FINGER_TIPS, - Uk as FpsMovement, + Ut as DEFAULT_CONTROLLER_FAST_MULTIPLIER, + Yt as DEFAULT_CONTROLLER_GETFAST, + Ht as DEFAULT_CONTROLLER_GETMOVE, + nt as DEFAULT_CONTROLLER_GETROTATE, + rt as DEFAULT_CONTROLLER_GETSLOW, + py as DEFAULT_CONTROLLER_MOVE_HEADING, + et as DEFAULT_CONTROLLER_MOVE_SPEED, + Jt as DEFAULT_CONTROLLER_ROLL_SPEED, + uB as DEFAULT_CONTROLLER_ROTATE_SPEED, + Lt as DEFAULT_CONTROLLER_SLOW_MULTIPLIER, + Sy as DISK_PORTAL_FRAGMENT_SHADER, + wI as ExtSplats, + my as FINGER_TIPS, + Fy as FpsMovement, ZQ as HANDS, - Vw as Hand, - vk as HandMovement, - Zw as JOINT_IDS, - Vk as JOINT_INDEX, - dg as JOINT_RADIUS, - Bk as JOINT_SEGMENTS, - Ck as JOINT_SEGMENT_STEPS, - Xk as JOINT_TIPS, - UB as JointEnum, - Ak as JointSplats, - fA as LN_SCALE_MAX, + fo as Hand, + Zy as HandMovement, + xo as JOINT_IDS, + by as JOINT_INDEX, + lg as JOINT_RADIUS, + $t as JOINT_SEGMENTS, + Ay as JOINT_SEGMENT_STEPS, + Ty as JOINT_TIPS, + NB as JointEnum, + Xt as JointSplats, + uA as LN_SCALE_MAX, pA as LN_SCALE_MIN, - Zk as NUM_JOINTS, - TB as OldSparkRenderer, - zg as OldSparkViewpoint, - tQ as OldSplatAccumulator, - $A as PackedSplats, - Pg as PagedSplats, - vg as PlyReader, - tk as PointerControls, - Ig as Readback, - TQ as RgbaArray, - Zo as Sint8ToFloat, - zk as SparkControls, - _k as SparkPortals, - jg as SparkRenderer, - WB as SparkXr, - qI as SplatAccumulator, - Sg as SplatEdit, - qh as SplatEditRgbaBlendMode, - lh as SplatEditSdf, - nh as SplatEditSdfType, - ph as SplatEdits, - hA as SplatFileType, - PI as SplatGenerator, - fw as SplatLoader, - vA as SplatMesh, - Ph as SplatModifier, - tI as SplatPager, - ZB as SplatSkinning, - kR as SplatSkinningMode, - XI as SplatTransformer, - GR as SpzReader, - MI as SpzWriter, - mo as Uint8ToFloat, - $g as XrHand, - jk as XrHands, - pk as constructAxes, - lk as constructGrid, - fk as constructSpherePoints, - Kk as defines, - rk as dyno, - Ds as flipPixels, - lg as floatToSint8, - jA as floatToUint8, - NA as fromHalf, - uk as generators, - NB as getSplatFileType, - Pk as imageSplats, - AB as isAndroid, - Rg as isIos, - mg as isMobile, - IB as isOculus, - dk as isPcSogs, - Es as isQuest2, - NC as isVisionPro, - mk as lerpHandsSnapshots, - Tk as modifiers, - is as pixelsToPngUrl, - nk as readRgbaArray, - nQ as setPackedSplat, - bk as textSplats, + Py as NUM_JOINTS, + tI as PackedSplats, + ag as PagedSplats, + TQ as PlyReader, + Ny as PointerControls, + cg as Readback, + rB as RgbaArray, + ns as Sint8ToFloat, + Oy as SparkControls, + Wy as SparkPortals, + Xg as SparkRenderer, + bB as SparkXr, + dI as SplatAccumulator, + vg as SplatEdit, + gh as SplatEditRgbaBlendMode, + Bh as SplatEditSdf, + Ah as SplatEditSdfType, + Ch as SplatEdits, + UA as SplatFileType, + kg as SplatGenerator, + Jo as SplatLoader, + zA as SplatMesh, + Ly as SplatModifier, + eI as SplatPager, + pB as SplatSkinning, + st as SplatSkinningMode, + TI as SplatTransformer, + it as SpzReader, + RI as SpzWriter, + Hs as Uint8ToFloat, + zg as XrHand, + Vy as XrHands, + Ky as constructAxes, + ry as constructGrid, + dy as constructSpherePoints, + ey as defines, + Uy as dyno, + Os as flipPixels, + pg as floatToSint8, + vA as floatToUint8, + FA as fromHalf, + xy as generators, + Uo as getSplatFileType, + ly as imageSplats, + iB as isAndroid, + Gg as isIos, + Wg as isMobile, + DB as isOculus, + Hy as isPcSogs, + Zs as isQuest2, + eE as isVisionPro, + uy as lerpHandsSnapshots, + fy as modifiers, + Ws as pixelsToPngUrl, + ny as readRgbaArray, + qQ as setPackedSplat, + qy as textSplats, VA as toHalf, - xk as transcodeSpz, + Yy as transcodeSpz, Og as unpackSplat, - qk as unpackSplats, - ek as utils + Jy as utils }; //# sourceMappingURL=spark.module.min.js.map diff --git a/dist/spark.module.min.js.map b/dist/spark.module.min.js.map index 5c26ae2f..ae258046 100644 --- a/dist/spark.module.min.js.map +++ b/dist/spark.module.min.js.map @@ -1 +1 @@ -{"version":3,"file":"spark.module.min.js","sources":["../src/OldSplatGeometry.ts","../node_modules/fflate/esm/browser.js","../src/defines.ts","../src/dyno/types.ts","../src/dyno/value.ts","../src/dyno/base.ts","../src/utils.ts","../src/OldSplatWorker.ts","../src/SplatWorker.ts","../src/dyno/splats.ts","../src/dyno/output.ts","../src/dyno/uniforms.ts","../src/dyno/program.ts","../src/dyno/mathTypes.ts","../src/dyno/math.ts","../src/dyno/logic.ts","../src/dyno/convert.ts","../src/dyno/vecmat.ts","../src/dyno/util.ts","../src/dyno/transform.ts","../src/dyno/control.ts","../src/dyno/texture.ts","../src/dyno/trig.ts","../src/ExtSplats.ts","../rust/spark-rs/pkg/spark_rs.js","../src/shaders/computeUvec4.glsl","../src/shaders/computeUvec4_Vec4.glsl","../src/shaders/computeUvec4x2_Vec4.glsl","../src/shaders/computeVec4.glsl","../src/shaders/oldSplatFragment.glsl","../src/shaders/oldSplatVertex.glsl","../src/shaders/splatDefines.glsl","../src/shaders/splatFragment.glsl","../src/shaders/splatVertex.glsl","../src/shaders.ts","../src/Readback.ts","../src/RgbaArray.ts","../src/SplatEdit.ts","../src/SplatGenerator.ts","../src/SplatAccumulator.ts","../src/SplatGeometry.ts","../src/SparkRenderer.ts","../src/SplatPager.ts","../src/SplatMesh.ts","../src/ply.ts","../src/SplatLoader.ts","../src/PackedSplats.ts","../src/OldSparkViewpoint.ts","../src/OldSplatAccumulator.ts","../src/OldSparkRenderer.ts","../src/antisplat.ts","../src/ksplat.ts","../src/spz.ts","../src/SplatSkinning.ts","../src/splatConstructors.ts","../src/generators/static.ts","../src/generators/snow.ts","../src/modifiers/normalColor.ts","../src/modifiers/depthColor.ts","../src/SparkXr.ts","../src/hands.ts","../src/controls.ts","../src/SparkPortals.ts"],"sourcesContent":["import * as THREE from \"three\";\n\n// SplatGeometry is an internal class used by SparkRenderer to render a collection\n// of Gsplats in a single draw call by extending THREE.InstancedBufferGeometry.\n// Each Gsplat is drawn as two triangles, with the order of the Gsplats determined\n// by the instance attribute \"ordering\".\n\nexport class OldSplatGeometry extends THREE.InstancedBufferGeometry {\n ordering: Uint32Array;\n attribute: THREE.InstancedBufferAttribute;\n\n constructor(ordering: Uint32Array, activeSplats: number) {\n super();\n\n this.ordering = ordering;\n\n this.setAttribute(\"position\", new THREE.BufferAttribute(QUAD_VERTICES, 3));\n this.setIndex(new THREE.BufferAttribute(QUAD_INDICES, 1));\n\n // Hack to work around Three.js\n // @ts-ignore\n this._maxInstanceCount = ordering.length;\n this.instanceCount = activeSplats;\n\n this.attribute = new THREE.InstancedBufferAttribute(ordering, 1, false, 1);\n this.attribute.setUsage(THREE.DynamicDrawUsage);\n this.setAttribute(\"splatIndex\", this.attribute);\n }\n\n update(ordering: Uint32Array, activeSplats: number) {\n this.ordering = ordering;\n this.attribute.array = ordering;\n this.instanceCount = activeSplats;\n this.attribute.addUpdateRange(0, activeSplats);\n this.attribute.needsUpdate = true;\n }\n}\n\n// Each instance draws to triangles covering a quad over coords (-1,-1,0)..(1,1,0)\nconst QUAD_VERTICES = new Float32Array([\n -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0,\n]);\n\nconst QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]);\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","// LN_SCALE_MIN..LN_SCALE_MAX define the internal scale range of for Gsplats,\n// covering approx 0.0001..8000 in range with discrete steps 7% apart.\n// The value \"0\" is reserved for truly flat scales, indicating a 2DGS.\n// If these values are changed, the corresponding values in splatDefines.glsl\n// must also be updated to match.\n\nexport const LN_SCALE_MIN = -12.0;\nexport const LN_SCALE_MAX = 9.0;\nexport const SCALE_MIN = Math.exp(LN_SCALE_MIN);\nexport const SCALE_MAX = Math.exp(LN_SCALE_MAX);\n\nexport const LN_SCALE_ZERO = -30.0;\nexport const SCALE_ZERO = Math.exp(LN_SCALE_ZERO);\n\n// Gsplats are stored in textures that are 2^11 x 2^11 x up to 2^11\n// Most WebGL2 implementations support 2D textures up to 2^12 x 2^12 (max 16M Gsplats)\n// 2D array textures and 3D textures up to 2^11 x 2^11 x 2^11 (max 8G Gsplats),\n// so we use 2D array textures for our representation for higher limits.\n\nexport const SPLAT_TEX_WIDTH_BITS = 11;\nexport const SPLAT_TEX_HEIGHT_BITS = 11;\nexport const SPLAT_TEX_DEPTH_BITS = 11;\nexport const SPLAT_TEX_LAYER_BITS =\n SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nexport const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS; // 2048\nexport const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS; // 2048\nexport const SPLAT_TEX_DEPTH = 1 << SPLAT_TEX_DEPTH_BITS; // 2048\nexport const SPLAT_TEX_MIN_HEIGHT = 1;\n\nexport const SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1;\nexport const SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1;\nexport const SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1;\n\n// Enable/disable Gsplat sorting via Rust WASM code. In testing the sorting\n// time between pure JS and WASM are minimal and don't make a big difference.\n\nexport const WASM_SPLAT_SORT = true;\n\n// Enable/disable compiling a dedicated parse function per element type\n// in the plyReader.\n\nexport const USE_COMPILED_PARSER_FUNCTION = true;\n\nexport enum SplatFileType {\n PLY = \"ply\",\n SPZ = \"spz\",\n SPLAT = \"splat\",\n KSPLAT = \"ksplat\",\n PCSOGS = \"pcsogs\",\n PCSOGSZIP = \"pcsogszip\",\n RAD = \"rad\",\n}\n\nexport type SplatEncoding = {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n sh1Max?: number;\n sh2Max?: number;\n sh3Max?: number;\n lodOpacity?: boolean;\n};\n\nexport const DEFAULT_SPLAT_ENCODING: SplatEncoding = {\n rgbMin: 0,\n rgbMax: 1,\n lnScaleMin: LN_SCALE_MIN,\n lnScaleMax: LN_SCALE_MAX,\n sh1Max: 1,\n sh2Max: 1,\n sh3Max: 1,\n lodOpacity: false,\n};\n\nexport type RadMeta = {\n version: number;\n type: string;\n count: number;\n maxSh?: number;\n lodTree?: boolean;\n chunkSize?: number;\n chunks: {\n offset: number;\n bytes: number;\n base?: number;\n count?: number;\n filename?: string;\n }[];\n splatEncoding?: SplatEncoding;\n};\n\nexport type PackedExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type PackedResult = {\n numSplats: number;\n packedArray: Uint32Array;\n extra: PackedExtra;\n splatEncoding: SplatEncoding;\n};\n\nexport type ExtExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3a?: Uint32Array;\n sh3b?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type ExtResult = {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: ExtExtra;\n};\n","import type * as THREE from \"three\";\n\nexport type BoolTypes = \"bool\" | \"bvec2\" | \"bvec3\" | \"bvec4\";\nexport type IntTypes = \"int\" | \"ivec2\" | \"ivec3\" | \"ivec4\";\nexport type UintTypes = \"uint\" | \"uvec2\" | \"uvec3\" | \"uvec4\";\nexport type AllIntTypes = IntTypes | UintTypes;\nexport type FloatTypes = \"float\" | \"vec2\" | \"vec3\" | \"vec4\";\nexport type ScalarTypes = \"uint\" | \"int\" | \"float\";\nexport type Vector2Types = \"vec2\" | \"ivec2\" | \"uvec2\";\nexport type Vector3Types = \"vec3\" | \"ivec3\" | \"uvec3\";\nexport type Vector4Types = \"vec4\" | \"ivec4\" | \"uvec4\";\nexport type VectorTypes = Vector2Types | Vector3Types | Vector4Types;\nexport type MatFloatTypes =\n | \"mat2\"\n | \"mat2x2\"\n | \"mat2x3\"\n | \"mat2x4\"\n | \"mat3\"\n | \"mat3x2\"\n | \"mat3x3\"\n | \"mat3x4\"\n | \"mat4\"\n | \"mat4x2\"\n | \"mat4x3\"\n | \"mat4x4\";\nexport type SquareMatTypes =\n | \"mat2\"\n | \"mat3\"\n | \"mat4\"\n | \"mat2x2\"\n | \"mat3x3\"\n | \"mat4x4\";\nexport type AllFloatTypes = FloatTypes | MatFloatTypes;\nexport type SignedTypes = IntTypes | FloatTypes;\nexport type AllSignedTypes = SignedTypes | MatFloatTypes;\nexport type ValueTypes = FloatTypes | IntTypes | UintTypes;\nexport type AllValueTypes = AllFloatTypes | IntTypes | UintTypes;\nexport type SimpleTypes = BoolTypes | AllValueTypes;\n\nexport type VectorElementType = A extends FloatTypes\n ? \"float\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nexport type SameSizeVec = T extends ScalarTypes\n ? \"float\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"vec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"vec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"vec4\"\n : never;\n\nexport type SameSizeUvec = T extends ScalarTypes\n ? \"uint\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"uvec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"uvec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"uvec4\"\n : never;\n\nexport type SameSizeIvec = T extends ScalarTypes\n ? \"int\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"ivec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"ivec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"ivec4\"\n : never;\n\nexport type SamplerTypes =\n | \"sampler2D\"\n | \"sampler2DArray\"\n | \"sampler3D\"\n | \"samplerCube\";\nexport type UsamplerTypes =\n | \"usampler2D\"\n | \"usampler2DArray\"\n | \"usampler3D\"\n | \"usamplerCube\";\nexport type IsamplerTypes =\n | \"isampler2D\"\n | \"isampler2DArray\"\n | \"isampler3D\"\n | \"isamplerCube\";\nexport type NormalSamplerTypes = SamplerTypes | UsamplerTypes | IsamplerTypes;\nexport type SamplerShadowTypes =\n | \"sampler2DShadow\"\n | \"sampler2DArrayShadow\"\n | \"samplerCubeShadow\";\nexport type AllSamplerTypes = NormalSamplerTypes | SamplerShadowTypes;\nexport type Sampler2DTypes =\n | \"sampler2D\"\n | \"usampler2D\"\n | \"isampler2D\"\n | \"sampler2DShadow\";\nexport type Sampler2DArrayTypes =\n | \"sampler2DArray\"\n | \"usampler2DArray\"\n | \"isampler2DArray\"\n | \"sampler2DArrayShadow\";\nexport type Sampler3DTypes = \"sampler3D\" | \"usampler3D\" | \"isampler3D\";\nexport type SamplerCubeTypes =\n | \"samplerCube\"\n | \"usamplerCube\"\n | \"isamplerCube\"\n | \"samplerCubeShadow\";\n\nexport function isBoolType(type: DynoType): boolean {\n return (\n type === \"bool\" || type === \"bvec2\" || type === \"bvec3\" || type === \"bvec4\"\n );\n}\n\nexport function isScalarType(type: DynoType): boolean {\n return type === \"int\" || type === \"uint\" || type === \"float\";\n}\n\nexport function isIntType(type: DynoType): boolean {\n return (\n type === \"int\" || type === \"ivec2\" || type === \"ivec3\" || type === \"ivec4\"\n );\n}\n\nexport function isUintType(type: DynoType): boolean {\n return (\n type === \"uint\" || type === \"uvec2\" || type === \"uvec3\" || type === \"uvec4\"\n );\n}\n\nexport function isFloatType(type: DynoType): boolean {\n return (\n type === \"float\" || type === \"vec2\" || type === \"vec3\" || type === \"vec4\"\n );\n}\n\nexport function isMatFloatType(type: DynoType): boolean {\n return (\n type === \"mat2\" ||\n type === \"mat2x2\" ||\n type === \"mat2x3\" ||\n type === \"mat2x4\" ||\n type === \"mat3\" ||\n type === \"mat3x2\" ||\n type === \"mat3x3\" ||\n type === \"mat3x4\" ||\n type === \"mat4\" ||\n type === \"mat4x2\" ||\n type === \"mat4x3\" ||\n type === \"mat4x4\"\n );\n}\n\nexport function isAllFloatType(type: DynoType): boolean {\n return isFloatType(type) || isMatFloatType(type);\n}\n\nexport function isVector2Type(type: DynoType): boolean {\n return type === \"vec2\" || type === \"ivec2\" || type === \"uvec2\";\n}\n\nexport function isVector3Type(type: DynoType): boolean {\n return type === \"vec3\" || type === \"ivec3\" || type === \"uvec3\";\n}\n\nexport function isVector4Type(type: DynoType): boolean {\n return type === \"vec4\" || type === \"ivec4\" || type === \"uvec4\";\n}\n\nexport function isVectorType(type: DynoType): boolean {\n return isVector2Type(type) || isVector3Type(type) || isVector4Type(type);\n}\n\nexport function isMat2(type: DynoType): boolean {\n return type === \"mat2\" || type === \"mat2x2\";\n}\nexport function isMat3(type: DynoType): boolean {\n return type === \"mat3\" || type === \"mat3x3\";\n}\nexport function isMat4(type: DynoType): boolean {\n return type === \"mat4\" || type === \"mat4x4\";\n}\n\nexport function vectorElementType(\n type: A,\n): VectorElementType {\n switch (type) {\n case \"vec2\":\n return \"float\" as VectorElementType;\n case \"vec3\":\n return \"float\" as VectorElementType;\n case \"vec4\":\n return \"float\" as VectorElementType;\n case \"ivec2\":\n return \"int\" as VectorElementType;\n case \"ivec3\":\n return \"int\" as VectorElementType;\n case \"ivec4\":\n return \"int\" as VectorElementType;\n case \"uvec2\":\n return \"uint\" as VectorElementType;\n case \"uvec3\":\n return \"uint\" as VectorElementType;\n case \"uvec4\":\n return \"uint\" as VectorElementType;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function vectorDim(type: A): number {\n switch (type) {\n case \"vec2\":\n case \"ivec2\":\n case \"uvec2\":\n return 2;\n case \"vec3\":\n case \"ivec3\":\n case \"uvec3\":\n return 3;\n case \"vec4\":\n case \"ivec4\":\n case \"uvec4\":\n return 4;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function sameSizeVec(type: T): SameSizeVec {\n if (isScalarType(type)) {\n return \"float\" as SameSizeVec;\n }\n if (isVector2Type(type)) {\n return \"vec2\" as SameSizeVec;\n }\n if (isVector3Type(type)) {\n return \"vec3\" as SameSizeVec;\n }\n if (isVector4Type(type)) {\n return \"vec4\" as SameSizeVec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeUvec(type: T): SameSizeUvec {\n if (isScalarType(type)) {\n return \"uint\" as SameSizeUvec;\n }\n if (isVector2Type(type)) {\n return \"uvec2\" as SameSizeUvec;\n }\n if (isVector3Type(type)) {\n return \"uvec3\" as SameSizeUvec;\n }\n if (isVector4Type(type)) {\n return \"uvec4\" as SameSizeUvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeIvec(type: T): SameSizeIvec {\n if (isScalarType(type)) {\n return \"int\" as SameSizeIvec;\n }\n if (isVector2Type(type)) {\n return \"ivec2\" as SameSizeIvec;\n }\n if (isVector3Type(type)) {\n return \"ivec3\" as SameSizeIvec;\n }\n if (isVector4Type(type)) {\n return \"ivec4\" as SameSizeIvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport type BaseType = SimpleTypes | AllSamplerTypes;\nexport type UserType = { type: string };\nexport type DynoType = BaseType | UserType;\n\nexport type DynoJsType = T extends \"bool\"\n ? boolean\n : T extends \"uint\"\n ? number\n : T extends \"int\"\n ? number\n : T extends \"float\"\n ? number\n : T extends \"bvec2\"\n ? [boolean, boolean]\n : T extends \"uvec2\"\n ? THREE.Vector2 | [number, number] | Uint32Array\n : T extends \"ivec2\"\n ? THREE.Vector2 | [number, number] | Int32Array\n : T extends \"vec2\"\n ? THREE.Vector2 | [number, number] | Float32Array\n : T extends \"bvec3\"\n ? [boolean, boolean, boolean]\n : T extends \"uvec3\"\n ? THREE.Vector3 | [number, number, number] | Uint32Array\n : T extends \"ivec3\"\n ? THREE.Vector3 | [number, number, number] | Int32Array\n : T extends \"vec3\"\n ?\n | THREE.Vector3\n | THREE.Color\n | [number, number, number]\n | Float32Array\n : T extends \"bvec4\"\n ? [boolean, boolean, boolean, boolean]\n : T extends \"uvec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Uint32Array\n : T extends \"ivec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Int32Array\n : T extends \"vec4\"\n ?\n | THREE.Vector4\n | THREE.Quaternion\n | [number, number, number, number]\n | Float32Array\n : T extends \"mat2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x3\"\n ? Float32Array\n : T extends \"mat2x4\"\n ? Float32Array\n : T extends \"mat3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x2\"\n ? Float32Array\n : T extends \"mat3x3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x4\"\n ? Float32Array\n : T extends \"mat4\"\n ? THREE.Matrix4 | Float32Array\n : T extends \"mat4x2\"\n ? Float32Array\n : T extends \"mat4x3\"\n ? Float32Array\n : T extends \"mat4x4\"\n ?\n | THREE.Matrix4\n | Float32Array\n : T extends \"usampler2D\"\n ? THREE.Texture\n : T extends \"isampler2D\"\n ? THREE.Texture\n : T extends \"sampler2D\"\n ? THREE.Texture\n : T extends \"sampler2DShadow\"\n ? THREE.Texture\n : T extends \"usampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"isampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArrayShadow\"\n ? THREE.Texture\n : T extends \"usampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"isampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"sampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"usamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"isamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCubeShadow\"\n ? THREE.Texture\n : unknown;\n\nexport function typeLiteral(type: DynoType): string {\n if (typeof type === \"string\") {\n return type;\n }\n if (typeof type === \"object\" && type.type) {\n return type.type;\n }\n throw new Error(`Invalid DynoType: ${String(type)}`);\n}\n\nexport function numberAsInt(value: number): string {\n return Math.trunc(value).toString();\n}\n\nexport function numberAsUint(value: number): string {\n const v = Math.max(0, Math.trunc(value));\n return `${v.toString()}u`;\n}\n\nexport function numberAsFloat(value: number): string {\n return value === Number.POSITIVE_INFINITY\n ? \"INFINITY\"\n : value === Number.NEGATIVE_INFINITY\n ? \"-INFINITY\"\n : Number.isInteger(value)\n ? value.toFixed(1)\n : value.toString();\n}\n","import * as THREE from \"three\";\n\nimport type { Dyno, IOTypes } from \"./base\";\nimport {\n type DynoJsType,\n type DynoType,\n type SimpleTypes,\n isAllFloatType,\n isBoolType,\n isIntType,\n isUintType,\n numberAsFloat,\n numberAsInt,\n numberAsUint,\n} from \"./types\";\n\nexport type DynoVal = DynoValue | HasDynoOut;\n\nexport function valType(val: DynoVal): T {\n if (val instanceof DynoValue) {\n return val.type;\n }\n const value = val.dynoOut();\n return value.type;\n}\n\nexport interface HasDynoOut {\n dynoOut(): DynoValue;\n}\n\nexport class DynoValue {\n type: T;\n // This field prevents TypeScript structural matching on objects with a \"type\" field\n private __isDynoValue = true;\n\n constructor(type: T) {\n this.type = type;\n }\n}\n\nexport class DynoOutput<\n T extends DynoType,\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends DynoValue {\n dyno: Dyno;\n key: string;\n\n constructor(dyno: Dyno, key: string) {\n super(dyno.outTypes[key] as T);\n this.dyno = dyno;\n this.key = key;\n }\n}\n\nexport class DynoLiteral extends DynoValue {\n literal: string;\n\n constructor(type: T, literal: string) {\n super(type);\n this.literal = literal;\n }\n\n getLiteral(): string {\n return this.literal;\n }\n}\n\nexport function dynoLiteral(\n type: T,\n literal: string,\n): DynoLiteral {\n return new DynoLiteral(type, literal);\n}\n\nexport class DynoConst extends DynoLiteral {\n value: DynoJsType;\n\n constructor(type: T, value: DynoJsType) {\n super(type, \"\");\n this.value = value;\n }\n\n getLiteral(): string {\n const { type, value } = this;\n switch (type) {\n case \"bool\":\n return value ? \"true\" : \"false\";\n case \"uint\":\n return numberAsUint(value as number);\n case \"int\":\n return numberAsInt(value as number);\n case \"float\":\n return numberAsFloat(value as number);\n case \"bvec2\": {\n const v = value as [boolean, boolean];\n return `bvec2(${v[0]}, ${v[1]})`;\n }\n case \"uvec2\": {\n if (value instanceof THREE.Vector2) {\n return `uvec2(${numberAsUint(value.x)}, ${numberAsUint(value.y)})`;\n }\n const v = value as [number, number] | Uint32Array;\n return `uvec2(${numberAsUint(v[0])}, ${numberAsUint(v[1])})`;\n }\n case \"ivec2\": {\n if (value instanceof THREE.Vector2) {\n return `ivec2(${numberAsInt(value.x)}, ${numberAsInt(value.y)})`;\n }\n const v = value as [number, number] | Int32Array;\n return `ivec2(${numberAsInt(v[0])}, ${numberAsInt(v[1])})`;\n }\n case \"vec2\": {\n if (value instanceof THREE.Vector2) {\n return `vec2(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)})`;\n }\n const v = value as [number, number] | Float32Array;\n return `vec2(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])})`;\n }\n case \"bvec3\": {\n const v = value as [boolean, boolean, boolean];\n return `bvec3(${v[0]}, ${v[1]}, ${v[2]})`;\n }\n case \"uvec3\": {\n if (value instanceof THREE.Vector3) {\n return `uvec3(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)})`;\n }\n const v = value as [number, number, number] | Uint32Array;\n return `uvec3(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])})`;\n }\n case \"ivec3\": {\n if (value instanceof THREE.Vector3) {\n return `ivec3(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)})`;\n }\n const v = value as [number, number, number] | Int32Array;\n return `ivec3(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])})`;\n }\n case \"vec3\": {\n if (value instanceof THREE.Vector3) {\n return `vec3(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)})`;\n }\n const v = value as [number, number, number] | Float32Array;\n return `vec3(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])})`;\n }\n case \"bvec4\": {\n const v = value as [boolean, boolean, boolean, boolean];\n return `bvec4(${v[0]}, ${v[1]}, ${v[2]}, ${v[3]})`;\n }\n case \"uvec4\": {\n if (value instanceof THREE.Vector4) {\n return `uvec4(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)}, ${numberAsUint(value.w)})`;\n }\n const v = value as [number, number, number, number] | Uint32Array;\n return `uvec4(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])}, ${numberAsUint(v[3])})`;\n }\n case \"ivec4\": {\n if (value instanceof THREE.Vector4) {\n return `ivec4(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)}, ${numberAsInt(value.w)})`;\n }\n const v = value as [number, number, number, number] | Int32Array;\n return `ivec4(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])}, ${numberAsInt(v[3])})`;\n }\n case \"vec4\": {\n if (value instanceof THREE.Vector4) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n if (value instanceof THREE.Quaternion) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n const v = value as [number, number, number, number] | Float32Array;\n return `vec4(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])}, ${numberAsFloat(v[3])})`;\n }\n case \"mat2\":\n case \"mat2x2\": {\n const m = value as DynoJsType<\"mat2\">;\n const e =\n m instanceof THREE.Matrix2 ? m.elements : (value as Float32Array);\n const arg = new Array(4).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x3\": {\n const e = value as DynoJsType<\"mat2x3\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x4\": {\n const e = value as DynoJsType<\"mat2x4\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3\":\n case \"mat3x3\": {\n const m = value as DynoJsType<\"mat3\">;\n const e =\n m instanceof THREE.Matrix3 ? m.elements : (value as Float32Array);\n const arg = new Array(9).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x2\": {\n const e = value as DynoJsType<\"mat3x2\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x4\": {\n const e = value as DynoJsType<\"mat3x4\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4\":\n case \"mat4x4\": {\n const m = value as DynoJsType<\"mat4\">;\n const e =\n m instanceof THREE.Matrix4 ? m.elements : (value as Float32Array);\n const arg = new Array(16).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x2\": {\n const e = value as DynoJsType<\"mat4x2\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x3\": {\n const e = value as DynoJsType<\"mat4x3\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n default:\n throw new Error(`Type not implemented: ${String(type)}`);\n }\n }\n}\n\nexport function dynoConst(\n type: T,\n value: DynoJsType,\n): DynoConst {\n return new DynoConst(type, value);\n}\n\nexport function literalZero(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(false)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(0.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(0)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(1u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalNegOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(-1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(-1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0xFFFFFFFFu)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n","import type { IUniform } from \"three\";\nimport type { DynoType } from \"./types\";\nimport {\n DynoLiteral,\n DynoOutput,\n type DynoVal,\n DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nconst DEFAULT_INDENT = \" \";\n\nexport class Compilation {\n globals: Set = new Set();\n statements: string[] = [];\n uniforms: Record = {};\n declares: Set = new Set();\n updaters: (() => void)[] = [];\n sequence = 0;\n indent: string = DEFAULT_INDENT;\n\n constructor({ indent }: { indent?: string } = {}) {\n this.indent = indent ?? DEFAULT_INDENT;\n }\n\n nextSequence() {\n return this.sequence++;\n }\n}\n\nexport type IOTypes = Record;\ntype GenerateContext = {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n};\n\nexport class Dyno {\n inTypes: InTypes;\n outTypes: OutTypes;\n\n inputs: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n }) {\n this.inTypes = inTypes ?? ({} as InTypes);\n this.outTypes = outTypes ?? ({} as OutTypes);\n this.inputs = inputs ?? {};\n this.update = update;\n\n this.globals = globals;\n this.statements = statements;\n this.generate =\n generate ??\n (({ inputs, outputs, compile }) => {\n return {\n globals: this.globals?.({ inputs, outputs, compile }),\n statements: this.statements?.({ inputs, outputs, compile }),\n };\n });\n }\n\n get outputs(): { [K in keyof OutTypes]: DynoVal } {\n const outputs = {} as { [K in keyof OutTypes]: DynoVal };\n for (const key in this.outTypes) {\n outputs[key] = new DynoOutput(this, key);\n }\n return outputs;\n }\n\n apply(inputs: { [K in keyof InTypes]?: DynoVal }): {\n [K in keyof OutTypes]: DynoVal;\n } {\n Object.assign(this.inputs, inputs);\n return this.outputs;\n }\n\n compile({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }): string[] {\n const result = [\n `// ${this.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`,\n ];\n\n const declares: (keyof OutTypes)[] = [];\n for (const key in outputs) {\n const name = outputs[key];\n if (name && !compile.declares.has(name)) {\n compile.declares.add(name);\n declares.push(key);\n }\n }\n\n const { globals, statements, uniforms } = this.generate({\n inputs,\n outputs,\n compile,\n });\n for (const global of globals ?? []) {\n compile.globals.add(global);\n }\n for (const key in uniforms) {\n compile.uniforms[key] = uniforms[key];\n }\n if (this.update) {\n compile.updaters.push(this.update);\n }\n\n for (const key of declares) {\n const name = outputs[key];\n if (name) {\n if (!compile.uniforms[name]) {\n result.push(`${dynoDeclare(name, this.outTypes[key])};`);\n }\n }\n }\n\n if (statements?.length) {\n result.push(\"{\");\n result.push(...statements.map((line) => compile.indent + line));\n result.push(\"}\");\n }\n return result;\n }\n}\n\nexport type DynoBlockType = (\n inputs: { [K in keyof InTypes]?: DynoVal },\n outputs: { [K in keyof OutTypes]?: DynoVal },\n { roots }: { roots: Dyno[] },\n) => { [K in keyof OutTypes]?: DynoVal } | undefined;\n\nexport class DynoBlock<\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends Dyno {\n construct: DynoBlockType;\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n construct,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n construct: DynoBlockType;\n }) {\n super({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n generate: (args) => this.generateBlock(args),\n });\n this.construct = construct;\n }\n\n generateBlock({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }) {\n const blockInputs: { [K in keyof InTypes]?: DynoVal } = {};\n const blockOutputs: { [K in keyof OutTypes]?: DynoVal } = {};\n\n for (const key in inputs) {\n if (inputs[key] != null) {\n blockInputs[key] = new DynoLiteral(this.inTypes[key], inputs[key]);\n }\n }\n for (const key in outputs) {\n if (outputs[key] != null) {\n blockOutputs[key] = new DynoValue(this.outTypes[key]);\n }\n }\n\n const options: { roots: Dyno[] } = { roots: [] };\n const returned = this.construct(blockInputs, blockOutputs, options);\n\n for (const global of this.globals?.({ inputs, outputs, compile }) ?? []) {\n compile.globals.add(global);\n }\n\n const ordering: Dyno[] = [];\n const nodeOuts = new Map<\n Dyno,\n { sequence: number; outNames: Map; newOuts: Set }\n >();\n\n function visit(\n node: Dyno,\n outKey?: string,\n outName?: string,\n ) {\n let outs = nodeOuts.get(node);\n if (!outs) {\n // First time visiting this node\n outs = {\n sequence: compile.nextSequence(),\n outNames: new Map(),\n newOuts: new Set(),\n };\n nodeOuts.set(node, outs);\n\n for (const key in node.inputs) {\n let input = node.inputs[key];\n while (input) {\n if (input instanceof DynoValue) {\n if (input instanceof DynoOutput) {\n visit(input.dyno, input.key);\n }\n break;\n }\n // Must be as HasDynoOut\n if (typeof input.dynoOut !== \"function\") {\n throw new Error(\n `dynoOut is not a function for ${input.constructor.name}`,\n );\n }\n input = input.dynoOut();\n }\n }\n ordering.push(node);\n }\n if (outKey) {\n if (!outName) {\n outs.newOuts.add(outKey);\n }\n outs.outNames.set(outKey, outName ?? `${outKey}_${outs.sequence}`);\n }\n }\n\n for (const root of options.roots) {\n visit(root);\n }\n\n for (const key in blockOutputs) {\n let value = returned?.[key] ?? blockOutputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoOutput) {\n visit(value.dyno, value.key, outputs[key]);\n }\n break;\n }\n // Must be as HasDynoOut\n value = value.dynoOut();\n }\n blockOutputs[key] = value;\n }\n\n const steps = [];\n\n for (const dyno of ordering) {\n // compile.statements.push(`// ${dyno.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`);\n\n const inputs: Record = {};\n const outputs: Record = {};\n\n for (const key in dyno.inputs) {\n let value = dyno.inputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoLiteral) {\n inputs[key] = value.getLiteral();\n } else if (value instanceof DynoOutput) {\n const source = nodeOuts.get(value.dyno)?.outNames.get(value.key);\n if (!source) {\n throw new Error(\n `Source not found for ${value.dyno.constructor.name}.${value.key}`,\n );\n }\n inputs[key] = source;\n }\n break;\n }\n // Must be as HasDynOut\n value = value.dynoOut();\n }\n }\n\n const outs = nodeOuts.get(dyno) ?? { outNames: new Map() };\n for (const [key, name] of outs.outNames.entries()) {\n outputs[key] = name;\n }\n\n const newSteps = dyno.compile({ inputs, outputs, compile });\n steps.push(newSteps);\n }\n\n const literalOutputs = [];\n for (const key in outputs) {\n if (blockOutputs[key] instanceof DynoLiteral) {\n literalOutputs.push(\n `${outputs[key]} = ${blockOutputs[key].getLiteral()};`,\n );\n }\n }\n if (literalOutputs.length > 0) {\n steps.push(literalOutputs);\n }\n\n const statements = steps.flatMap((step, index) => {\n // Add a blank line between steps\n return index === 0 ? step : [\"\", ...step];\n });\n return { statements };\n }\n}\n\nexport function dynoBlock<\n InTypes extends Record,\n OutTypes extends Record,\n>(\n inTypes: InTypes,\n outTypes: OutTypes,\n construct: DynoBlockType,\n { update, globals }: { update?: () => void; globals?: () => string[] } = {},\n) {\n return new DynoBlock({ inTypes, outTypes, construct, update, globals });\n}\n\nexport function dyno<\n InTypes extends Record,\n OutTypes extends Record,\n>({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n}: {\n inTypes: InTypes;\n outTypes: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n}) {\n return new Dyno({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n });\n}\n\nexport function dynoDeclare(name: string, type: DynoType, count?: number) {\n const typeStr = typeof type === \"string\" ? type : type.type;\n if (!typeStr) {\n throw new Error(`Invalid DynoType: ${String(type)}`);\n }\n return `${typeStr} ${name}${count != null ? `[${count}]` : \"\"}`;\n}\n\nexport function unindentLines(s: string): string[] {\n let seenNonEmpty = false;\n const lines = s\n .split(\"\\n\")\n .map((line) => {\n const trimmedLine = line.trimEnd();\n if (seenNonEmpty) {\n return trimmedLine;\n }\n if (trimmedLine.length > 0) {\n seenNonEmpty = true;\n return trimmedLine;\n }\n return null;\n })\n .filter((line) => line != null);\n while (lines.length > 0 && lines[lines.length - 1].length === 0) {\n lines.pop();\n }\n if (lines.length === 0) {\n return [];\n }\n\n const indent = lines[0].match(/^\\s*/)?.[0];\n if (!indent) {\n return lines; // No indent, return as is\n }\n // Remove indent from the beginning of each line\n const regex = new RegExp(`^${indent}`);\n return lines.map((line) => line.replace(regex, \"\"));\n}\n\nexport function unindent(s: string): string {\n return unindentLines(s).join(\"\\n\");\n}\n\nexport class UnaryOp<\n A extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n outKey,\n outTypeFunc,\n }: { a: DynoVal; outKey: OutKey; outTypeFunc: (aType: A) => OutType }) {\n const inTypes = { a: valType(a) };\n const outType = outTypeFunc(valType(a));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class BinaryOp<\n A extends DynoType,\n B extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b) };\n const outType = outTypeFunc(valType(a), valType(b));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class TrinaryOp<\n A extends DynoType,\n B extends DynoType,\n C extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B; c: C }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n c,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n c: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B, cType: C) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b), c: valType(c) };\n const outType = outTypeFunc(valType(a), valType(b), valType(c));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b, c } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n","import { Gunzip } from \"fflate\";\nimport * as THREE from \"three\";\n\n// Miscellaneous utility functions for Spark\n\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SCALE_ZERO,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_MIN_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines.js\";\nimport { unindent } from \"./dyno/base.js\";\n\nexport const threeRevision = Number.parseInt(THREE.REVISION);\nexport const threeMrtArray = threeRevision >= 179;\n\nconst f32buffer = new Float32Array(1);\nconst u32buffer = new Uint32Array(f32buffer.buffer);\nconst supportsFloat16Array = \"Float16Array\" in globalThis;\nconst f16buffer = supportsFloat16Array\n ? new globalThis[\"Float16Array\" as keyof typeof globalThis](1)\n : null;\nconst u16buffer = new Uint16Array(f16buffer?.buffer);\n\n// Returns a normalized array of numbers\nexport function normalize(vec: number[]) {\n const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0));\n return vec.map((v) => v / norm);\n}\n\n// Reinterpret the bits of a float32 as a uint32\nexport function floatBitsToUint(f: number): number {\n f32buffer[0] = f;\n return u32buffer[0];\n}\n\n// Reinterpret the bits of a uint32 as a float32\nexport function uintBitsToFloat(u: number): number {\n u32buffer[0] = u;\n return f32buffer[0];\n}\n\nexport const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS;\nexport const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS;\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfNative(f: number): number {\n f16buffer[0] = f;\n return u16buffer[0];\n}\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfJS(f: number): number {\n // Store the value into the shared Float32 array.\n f32buffer[0] = f;\n const bits = u32buffer[0];\n\n // Extract sign (1 bit), exponent (8 bits), and fraction (23 bits)\n const sign = (bits >> 31) & 0x1;\n const exp = (bits >> 23) & 0xff;\n const frac = bits & 0x7fffff;\n const halfSign = sign << 15;\n\n // Handle special cases: NaN and Infinity\n if (exp === 0xff) {\n // NaN: set all exponent bits to 1 and some nonzero fraction bits.\n if (frac !== 0) {\n return halfSign | 0x7fff;\n }\n // Infinity\n return halfSign | 0x7c00;\n }\n\n // Adjust the exponent from float32 bias (127) to float16 bias (15)\n const newExp = exp - 127 + 15;\n\n // Handle overflow: too large to represent in half precision.\n if (newExp >= 0x1f) {\n return halfSign | 0x7c00; // Infinity\n }\n if (newExp <= 0) {\n // Handle subnormals and underflow.\n if (newExp < -10) {\n // Too small: underflows to zero.\n return halfSign;\n }\n // Convert to subnormal: add the implicit leading 1 to the fraction,\n // then shift to align with the half-precision's 10 fraction bits.\n const subFrac = (frac | 0x800000) >> (1 - newExp + 13);\n return halfSign | subFrac;\n }\n\n // Normalized half-precision number: shift fraction to fit into 10 bits.\n const halfFrac = frac >> 13;\n return halfSign | (newExp << 10) | halfFrac;\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfNative(u: number): number {\n u16buffer[0] = u;\n return f16buffer[0];\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfJS(h: number): number {\n // Extract the sign (1 bit), exponent (5 bits), and fraction (10 bits)\n const sign = (h >> 15) & 0x1;\n const exp = (h >> 10) & 0x1f;\n const frac = h & 0x3ff;\n\n let f32bits: number;\n\n if (exp === 0) {\n if (frac === 0) {\n // Zero (positive or negative)\n f32bits = sign << 31;\n } else {\n // Subnormal half-precision number.\n // Normalize the subnormal number:\n let mant = frac;\n let e = -14; // For half, the exponent for subnormals is fixed at -14.\n // Shift left until the implicit leading 1 is in place.\n while ((mant & 0x400) === 0) {\n // 0x400 === 1 << 10\n mant <<= 1;\n e--;\n }\n // Remove the leading 1 (which is now implicit)\n mant &= 0x3ff;\n // Convert the half exponent (e) to the 32-bit float exponent:\n const newExp = e + 127; // 32-bit float bias is 127.\n const newFrac = mant << 13; // Align to 23-bit fraction (23 - 10 = 13)\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n } else if (exp === 0x1f) {\n // Handle special cases for Infinity and NaN.\n if (frac === 0) {\n // Infinity\n f32bits = (sign << 31) | 0x7f800000;\n } else {\n // NaN (we choose a quiet NaN)\n f32bits = (sign << 31) | 0x7fc00000;\n }\n } else {\n // Normalized half-precision number.\n // Adjust exponent from half (bias 15) to float32 (bias 127)\n const newExp = exp - 15 + 127;\n const newFrac = frac << 13;\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n\n // Write the 32-bit bit pattern to the shared buffer,\n // then read it as a float32 to return a JavaScript number.\n u32buffer[0] = f32bits;\n return f32buffer[0];\n}\n\n// Convert a number 0..1 to a 0..255 uint\nexport function floatToUint8(v: number): number {\n // Converts from 0..1 float to 0..255 uint8\n return Math.max(0, Math.min(255, Math.round(v * 255)));\n}\n\n// Convert a number -1..1 to a -127..127 int\nexport function floatToSint8(v: number): number {\n // Converts from -1..1 float to -127..127 int8\n return Math.max(-127, Math.min(127, Math.round(v * 127)));\n}\n\n// Convert a 0..255 uint to a 0..1 float\nexport function Uint8ToFloat(v: number): number {\n // Converts from 0..255 uint8 to 0..1 float\n return v / 255;\n}\n\n// Convert a -127..127 int to a -1..1 float\nexport function Sint8ToFloat(v: number): number {\n // Converts from -127..127 int8 to -1..1 float\n return v / 127;\n}\n\n// A simple utility class for caching a fixed number of items\nexport class DataCache {\n // Maximum number of items to cache\n maxItems: number;\n\n // Function to fetch data for a key\n asyncFetch: (key: string) => Promise;\n\n // Function to dispose of data when it is no longer needed\n dispose?: (data: unknown) => void;\n\n // Array of cached items\n items: { key: string; data: unknown }[];\n\n // In-progress fetch promises\n pending: Map>;\n\n // Create a DataCache with a given function that fetches data not in the cache.\n constructor({\n asyncFetch,\n dispose,\n maxItems = 5,\n }: {\n asyncFetch: (key: string) => Promise;\n dispose?: (data: unknown) => void;\n maxItems?: number;\n }) {\n this.asyncFetch = asyncFetch;\n this.dispose = dispose;\n this.maxItems = maxItems;\n this.items = [];\n this.pending = new Map();\n }\n\n has(key: string): boolean {\n return this.items.some((item) => item.key === key);\n }\n\n getImmediate(key: string): unknown | undefined {\n const index = this.items.findIndex((item) => item.key === key);\n if (index >= 0) {\n // Data exists in our cache, move it to the end of the array\n const item = this.items.splice(index, 1)[0];\n this.items.push(item);\n // Return the cached data\n return item.data;\n }\n return undefined;\n }\n\n // Fetch data for the key, returning cached data if available.\n async getFetch(key: string): Promise {\n const immediate = this.getImmediate(key);\n if (immediate !== undefined) {\n return immediate;\n }\n\n let pending = this.pending.get(key);\n if (pending) {\n return pending;\n }\n\n pending = this.asyncFetch(key).then((data) => {\n this.pending.delete(key);\n\n // Add the data to the cache\n this.items.push({ key, data });\n // If the cache is too large, remove the oldest accessed item\n while (this.items.length > this.maxItems) {\n const removed = this.items.shift();\n if (removed && this.dispose) {\n this.dispose(removed.data);\n }\n }\n // Return the fetched data\n return data;\n });\n this.pending.set(key, pending);\n return pending;\n }\n}\n\n// Like Array.map but for objects\nexport function mapObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n const entries = Object.entries(obj).map(([key, value]) => [\n key,\n fn(value, key),\n ]);\n // Returns a new object with the mapped values\n return Object.fromEntries(entries);\n}\n\n// Like Array.map().filter() but for objects.\n// The callback fn() should return undefined to filter out the key.\nexport function mapFilterObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n // If no return (or return undefined), the key is not included in the result\n const entries = Object.entries(obj)\n .map(([key, value]) => [key, fn(value, key)])\n .filter(([_, value]) => value !== undefined);\n // Returns a new object with the filtered values\n return Object.fromEntries(entries);\n}\n\n// Recursively finds all ArrayBuffers in an object and returns them as an array\n// to use as transferable objects to send between workers.\nexport function getTransferable(ctx: unknown): Transferable[] {\n const buffers: Transferable[] = [];\n const seen = new Set();\n\n function traverse(obj: unknown) {\n if (obj && typeof obj === \"object\" && !seen.has(obj)) {\n seen.add(obj);\n\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n // Handles TypedArrays and DataView\n buffers.push(obj.buffer as ArrayBuffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n\n traverse(ctx);\n return buffers;\n}\n\n// Create an array of the given size and initialize element with initFunction()\nexport function newArray(\n n: number,\n initFunction: (index: number) => T,\n): T[] {\n // Creates a new array and calls a constructor function for each element with index\n return new Array(n).fill(null).map((_, i) => initFunction(i));\n}\n\n// A free list that has a pool of items of type T, with callbacks\n// for constructing, disposing, and checking if an item is valid for the given args.\nexport class FreeList {\n items: T[];\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n\n constructor({\n // Allocate a new item with the given args\n allocate,\n // Dispose of an item (optional, if GC is enough)\n dispose,\n // Check if an existing item in the list is valid for the given args,\n // allowing you to store heterogeneous items in the list.\n valid,\n }: {\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n }) {\n this.items = [];\n this.allocate = allocate;\n this.dispose = dispose;\n this.valid = valid;\n }\n\n // Allocate a new item from the free list, first checking if a existing item\n // on the freelist is valid for the given args.\n alloc(args: Args): T {\n while (true) {\n const item = this.items.pop();\n if (!item) {\n // No items in the free list, allocate a new one\n break;\n }\n if (this.valid(item, args)) {\n // Found a valid item, return it\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): found valid item. Reusing...`);\n return item;\n }\n // Item isn't valid for our args, dispose of it and try again\n if (this.dispose) {\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): disposing invalid item.`);\n this.dispose(item);\n }\n }\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): allocating new item`);\n return this.allocate(args);\n }\n\n free(item: T) {\n // Return item to the free list\n this.items.push(item);\n }\n\n disposeAll() {\n // Disposes of all items in the free list\n let item: T | undefined;\n item = this.items.pop();\n while (item) {\n if (this.dispose) {\n this.dispose(item);\n }\n item = this.items.pop();\n }\n }\n}\n\nexport function encodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) {\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n extA[i4] = floatBitsToUint(x);\n extA[i4 + 1] = floatBitsToUint(y);\n extA[i4 + 2] = floatBitsToUint(z);\n extA[i4 + 3] = toHalf(opacity);\n extB[i4] = toHalf(r) | (toHalf(g) << 16);\n extB[i4 + 1] = toHalf(b) | (toHalf(Math.log(scaleX)) << 16);\n extB[i4 + 2] = toHalf(Math.log(scaleY)) | (toHalf(Math.log(scaleZ)) << 16);\n extB[i4 + 3] = encodeQuatOctXy1010R12(quatX, quatY, quatZ, quatW);\n}\n\nexport function decodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n result.center.x = uintBitsToFloat(extA[i4]);\n result.center.y = uintBitsToFloat(extA[i4 + 1]);\n result.center.z = uintBitsToFloat(extA[i4 + 2]);\n result.opacity = fromHalf(extA[i4 + 3] & 0xffff);\n result.color.r = fromHalf(extB[i4] & 0xffff);\n result.color.g = fromHalf(extB[i4] >>> 16);\n result.color.b = fromHalf(extB[i4 + 1] & 0xffff);\n result.scales.x = Math.exp(fromHalf(extB[i4 + 1] >>> 16));\n result.scales.y = Math.exp(fromHalf(extB[i4 + 2] & 0xffff));\n result.scales.z = Math.exp(fromHalf(extB[i4 + 2] >>> 16));\n decodeQuatOctXy1010R12(extB[i4 + 3], result.quaternion);\n return result;\n}\n\n// Encode a PackedSplat as 4 consecutive Uint32 elements in the packedSplats array.\n// The center coordinates x,y,z are encoded as float16, the scales x,y,z as a\n// logarithmic uint8, rotation as three uint8s representing rotation axis and angle,\n// and RGBA as 4xuint8.\nexport function setPackedSplat(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * opacity : opacity);\n\n // Alternate internal encodings commented out below.\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n // Encode the splat as 4 consecutive Uint32 elements\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] =\n uScaleX | (uScaleY << 8) | (uScaleZ << 16) | (uQuatZ << 24);\n}\n\n// Encode the center coordinates x,y,z in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatCenter(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n) {\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n const i4 = index * 4;\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (packedSplats[i4 + 2] & 0xffff0000);\n}\n\n// Encode the scales x,y,z in the packedSplats Uint32Array, leaving all other fields as is.\nexport function setPackedSplatScales(\n packedSplats: Uint32Array,\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n encoding?: {\n lnScaleMin?: number;\n lnScaleMax?: number;\n },\n) {\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const i4 = index * 4;\n packedSplats[i4 + 3] =\n uScaleX |\n (uScaleY << 8) |\n (uScaleZ << 16) |\n (packedSplats[i4 + 3] & 0xff000000);\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempQuaternion = new THREE.Quaternion();\n\n// Encode the rotation quatX, quatY, quatZ, quatW in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatQuat(\n packedSplats: Uint32Array,\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n) {\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n const i4 = index * 4;\n packedSplats[i4 + 2] =\n (packedSplats[i4 + 2] & 0x0000ffff) | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] = (packedSplats[i4 + 3] & 0x00ffffff) | (uQuatZ << 24);\n}\n\n// Encode the RGBA color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgba(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n a: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * a : a);\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n}\n\n// Encode the RGB color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgb(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n\n const i4 = index * 4;\n packedSplats[i4] =\n uR | (uG << 8) | (uB << 16) | (packedSplats[i4] & 0xff000000);\n}\n\n// Encode the opacity in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatOpacity(\n packedSplats: Uint32Array,\n index: number,\n opacity: number,\n) {\n const uA = floatToUint8(opacity);\n\n const i4 = index * 4;\n packedSplats[i4] = (packedSplats[i4] & 0x00ffffff) | (uA << 24);\n}\n\nconst packedCenter = new THREE.Vector3();\nconst packedScales = new THREE.Vector3();\nconst packedQuaternion = new THREE.Quaternion();\nconst packedColor = new THREE.Color();\nconst packedFields = {\n center: packedCenter,\n scales: packedScales,\n quaternion: packedQuaternion,\n color: packedColor,\n opacity: 0.0,\n};\n\n// Unpack all components of a PackedSplat from the packedSplats Uint32Array into\n// THREE.js vector objects. The returned objects will be reused each call.\nexport function unpackSplat(\n packedSplats: Uint32Array,\n index: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n\n const i4 = index * 4;\n const word0 = packedSplats[i4];\n const word1 = packedSplats[i4 + 1];\n const word2 = packedSplats[i4 + 2];\n const word3 = packedSplats[i4 + 3];\n\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n result.color.set(\n rgbMin + ((word0 & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 8) & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 16) & 0xff) / 255) * rgbRange,\n );\n result.opacity = ((word0 >>> 24) & 0xff) / 255;\n if (encoding?.lodOpacity) {\n result.opacity = 2.0 * result.opacity;\n }\n result.center.set(\n fromHalf(word1 & 0xffff),\n fromHalf((word1 >>> 16) & 0xffff),\n fromHalf(word2 & 0xffff),\n );\n\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n const uScalesX = word3 & 0xff;\n result.scales.x =\n uScalesX === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesX - 1) * lnScaleScale);\n const uScalesY = (word3 >>> 8) & 0xff;\n result.scales.y =\n uScalesY === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesY - 1) * lnScaleScale);\n const uScalesZ = (word3 >>> 16) & 0xff;\n result.scales.z =\n uScalesZ === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesZ - 1) * lnScaleScale);\n\n const uQuat = ((word2 >>> 16) & 0xffff) | ((word3 >>> 8) & 0xff0000);\n decodeQuatOctXy88R8(uQuat, result.quaternion);\n // decodeQuatXyz888(uQuat, result.quaternion);\n // decodeQuatEulerXyz888(uQuat, result.quaternion);\n\n return result;\n}\n\n// Compute a texture array size that is large enough to fit numSplats. The most\n// common 2D texture size in WebGL2 is 4096x4096 which only allows for 16M splats,\n// so Spark stores Gsplat data in a 2D texture array, which most platforms support\n// up to 2048x2048x2048 = 8G splats. Allocations that fit within a single 2D texture\n// array layer will be rounded up to fill an entire texture row. Once a texture\n// array layer is filled, the allocation will be rounded up to fill an entire layer.\n// This is done so the entire set of splats can be covered by min/max coords across\n// each dimension.\nexport function getTextureSize(numSplats: number): {\n width: number;\n height: number;\n depth: number;\n maxSplats: number;\n} {\n // Compute a texture array size that is large enough to fit numSplats.\n // The width is always 2048, the height sized to fit the splats but no larger than 2048.\n // The depth is the number of layers needed to fit the splats.\n // maxSplats is computed as the new total available splats that can be stored.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n const maxSplats = width * height * depth;\n return { width, height, depth, maxSplats };\n}\n\nexport function computeMaxSplats(numSplats: number): number {\n // Compute the size of a Gsplat array texture (2048x2048xD) that can fit\n // numSplats splats, and return the total number of splats that can be stored\n // in such a texture.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n return width * height * depth;\n}\n\n// Heuristic function to determine if we are running on a mobile device.\nexport function isMobile(): boolean {\n if (navigator.platform.toLowerCase().startsWith(\"win\")) {\n return false;\n }\n if (navigator.maxTouchPoints > 0) {\n // Touch-enabled device, assume it's mobile\n return true;\n }\n return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test(\n navigator.userAgent,\n );\n}\n\n// Heuristic function to determine if we are running on an Android device.\n// (does not include Oculus Quest)\nexport function isAndroid(): boolean {\n return (\n /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent)\n );\n}\n\n// Heuristic function to determine if we are running on an Oculus Quest device.\nexport function isOculus(): boolean {\n return !!navigator.xr && /Oculus/.test(navigator.userAgent);\n}\n\nexport function isQuest2() {\n return isOculus() && /Quest 2/.test(navigator.userAgent);\n}\n\nexport function isIos(): boolean {\n return /iPhone|iPad/.test(navigator.userAgent);\n}\n\nexport function isVisionPro(): boolean {\n return (\n !!navigator.xr &&\n isIos() &&\n /Safari/.test(navigator.userAgent) &&\n isMobile()\n );\n}\n\n// Take an array of RGBA8 encoded pixels and flip them vertically in-place.\n// This is useful for converting between top-left and bottom-left coordinate systems\n// in standard 2D images vs WebGL2.\nexport function flipPixels(\n pixels: Uint8Array,\n width: number,\n height: number,\n): Uint8Array {\n // Flips pixels vertically in-place, returns original array.\n const tempLine = new Uint8Array(width * 4);\n\n // Only need to process half the height since we're swapping\n for (let y = 0; y < height / 2; y++) {\n const topOffset = y * width * 4;\n const bottomOffset = (height - 1 - y) * width * 4;\n\n // Save top line to temp buffer\n tempLine.set(pixels.subarray(topOffset, topOffset + width * 4));\n // Move bottom line to top\n pixels.set(\n pixels.subarray(bottomOffset, bottomOffset + width * 4),\n topOffset,\n );\n // Move saved top line to bottom\n pixels.set(tempLine, bottomOffset);\n }\n return pixels;\n}\n\n// Utility to take an array of RGBA8 encoded pixels and convert them to a\n// PNG-encoded image data URL that can be downloaded to the client.\nexport function pixelsToPngUrl(\n pixels: Uint8Array,\n width: number,\n height: number,\n): string {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Can't get 2d context\");\n }\n const imageData = ctx.createImageData(width, height);\n imageData.data.set(pixels);\n ctx.putImageData(imageData, 0, 0);\n return canvas.toDataURL(\"image/png\");\n}\n\n// Manually clone a THREE.Clock object.\nexport function cloneClock(clock: THREE.Clock): THREE.Clock {\n const newClock = new THREE.Clock(clock.autoStart);\n newClock.startTime = clock.startTime;\n newClock.oldTime = clock.oldTime;\n newClock.elapsedTime = clock.elapsedTime;\n newClock.running = clock.running;\n return newClock;\n}\n\n// Utility to filter out an undefined values from an object.\nexport function omitUndefined(obj: T): Partial {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => value !== undefined),\n ) as Partial;\n}\n\n// \"Identity\" vertex shader that just passes through the position.\nexport const IDENT_VERTEX_SHADER = unindent(`\n precision highp float;\n\n in vec3 position;\n\n void main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n }\n`);\n\n// Returns the average position of an array of THREE.Vector3.\nexport function averagePositions(positions: THREE.Vector3[]): THREE.Vector3 {\n const sum = new THREE.Vector3();\n for (const position of positions) {\n sum.add(position);\n }\n return sum.divideScalar(positions.length);\n}\n\n// Returns an \"average\" of an array of THREE.Quaternion objects.\n// Note that this is not a spherical lerp between quaternions but\n// rather an arithmetic mean that is normalized to unit length.\nexport function averageQuaternions(\n quaternions: THREE.Quaternion[],\n): THREE.Quaternion {\n if (quaternions.length === 0) {\n return new THREE.Quaternion();\n }\n const sum = quaternions[0].clone();\n for (let i = 1; i < quaternions.length; i++) {\n if (quaternions[i].dot(quaternions[0]) < 0.0) {\n sum.x -= quaternions[i].x;\n sum.y -= quaternions[i].y;\n sum.z -= quaternions[i].z;\n sum.w -= quaternions[i].w;\n } else {\n sum.x += quaternions[i].x;\n sum.y += quaternions[i].y;\n sum.z += quaternions[i].z;\n sum.w += quaternions[i].w;\n }\n }\n return sum.normalize();\n}\n\n// Compare two coordinates given by matrix1 and matrix2, returning the distance\n// between their origins and the \"coincidence\" of their orientations, defined\n// as the dot product of their \"-z\" axes.\nexport function coinciDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n const direction1 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix1)\n .sub(origin1)\n .normalize();\n const direction2 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix2)\n .sub(origin2)\n .normalize();\n\n const distance = origin1.distanceTo(origin2);\n const coincidence = direction1.dot(direction2);\n return { distance, coincidence };\n}\n\n// Utility function that returns whether two coordinate system origins\n// given by matrix1 and matrix2 are within a certain maxDistance of each other.\nexport function withinDist({\n matrix1,\n matrix2,\n maxDistance,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n}): boolean {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n return origin1.distanceTo(origin2) <= maxDistance;\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined by a maxDistance and a minCoincidence.\nexport function withinCoinciDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoincidence,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoincidence?: number;\n}): boolean {\n const { distance, coincidence } = coinciDist(matrix1, matrix2);\n return (\n distance <= maxDistance &&\n (minCoincidence == null || coincidence >= minCoincidence)\n );\n}\n\n// Compare two coordinate systems given by matrix1 and matrix2, returning the\n// distance between their origins and the \"coorientation\" of their orientations,\n// define as the dot product of their quaternion transforms (flipping their\n// orientation to be on the same hemisphere if necessary).\nexport function coorientDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const [origin1, rotate1] = [new THREE.Vector3(), new THREE.Quaternion()];\n const [origin2, rotate2] = [new THREE.Vector3(), new THREE.Quaternion()];\n matrix1.decompose(origin1, rotate1, new THREE.Vector3());\n matrix2.decompose(origin2, rotate2, new THREE.Vector3());\n\n const distance = origin1.distanceTo(origin2);\n const coorient = Math.abs(rotate1.dot(rotate2));\n return { distance, coorient };\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined a maxDistance and a minCoorient.\nexport function withinCoorientDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoorient,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoorient?: number;\n}): boolean {\n const { distance, coorient } = coorientDist(matrix1, matrix2);\n return (\n distance <= maxDistance && (minCoorient == null || coorient >= minCoorient)\n );\n}\n\n// Like Math.sign but with a custom epsilon value.\nexport function epsilonSign(value: number, epsilon = 0.001): number {\n if (Math.abs(value) < epsilon) {\n return 0;\n }\n return Math.sign(value);\n}\n\n// Encode a THREE.Quaternion into a 24-bit integer, converting the xyz coordinates\n// to signed 8-bit integers (w can be derived from xyz), and flipping the sign\n// of the quaternion if necessary to make this possible (q == -q for quaternions).\nexport function encodeQuatXyz888(q: THREE.Quaternion): number {\n const negQuat = q.w < 0.0;\n const iQuatX = floatToSint8(negQuat ? -q.x : q.x);\n const iQuatY = floatToSint8(negQuat ? -q.y : q.y);\n const iQuatZ = floatToSint8(negQuat ? -q.z : q.z);\n const uQuatX = iQuatX & 0xff;\n const uQuatY = iQuatY & 0xff;\n const uQuatZ = iQuatZ & 0xff;\n return uQuatX | (uQuatY << 8) | (uQuatZ << 16);\n}\n\n// Decode a 24-bit integer of the quaternion's xyz coordinates into a THREE.Quaternion.\nexport function decodeQuatXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n const iQuatX = (encoded << 24) >> 24;\n const iQuatY = (encoded << 16) >> 24;\n const iQuatZ = (encoded << 8) >> 24;\n out.set(iQuatX / 127.0, iQuatY / 127.0, iQuatZ / 127.0, 0.0);\n const dotSelf = out.x * out.x + out.y * out.y + out.z * out.z;\n out.w = Math.sqrt(Math.max(0.0, 1.0 - dotSelf));\n return out;\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempNormalizedQuaternion = new THREE.Quaternion();\nconst tempAxis = new THREE.Vector3();\n\n/**\n * Encodes a THREE.Quaternion into a 24‐bit integer.\n *\n * Bit layout (LSB → MSB):\n * - Bits 0–7: quantized U (8 bits)\n * - Bits 8–15: quantized V (8 bits)\n * - Bits 16–23: quantized angle θ (8 bits) from [0,π]\n *\n * This version uses folded octahedral mapping (all inline).\n */\nexport function encodeQuatOctXy88R8(q: THREE.Quaternion): number {\n // Force the minimal representation (q.w >= 0)\n const qnorm = tempNormalizedQuaternion.copy(q).normalize();\n if (qnorm.w < 0) {\n qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w);\n }\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnorm.w);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(\n qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z,\n );\n const axis =\n xyz_norm < 1e-6\n ? tempAxis.set(1, 0, 0)\n : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm);\n // const foldAxis = (axis.z < 0);\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z);\n let p_x = axis.x / sum;\n let p_y = axis.y / sum;\n // Fold the lower hemisphere.\n if (axis.z < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 7 bits (0..127)\n const quantU = Math.round(u_f * 255);\n const quantV = Math.round(v_f * 255);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 10 bits (0..1023) ---\n const angleInt = Math.round(theta * (255 / Math.PI));\n\n // Pack into 24 bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16) | (quantV << 8) | quantU;\n}\n\n/**\n * Decodes a 24‐bit encoded quaternion (packed in a number) back to a THREE.Quaternion.\n *\n * Assumes the same bit layout as in encodeQuatOctXy88R8.\n */\nexport function decodeQuatOctXy88R8(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 8‐bit quantU and quantV, and 8‐bit angleInt.\n const quantU = encoded & 0xff; // bits 0–7\n const quantV = (encoded >>> 8) & 0xff; // bits 8–15\n const angleInt = (encoded >>> 16) & 0xff; // bits 16–23\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 255;\n const v_f = quantV / 255;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axis = tempAxis.set(f_x, f_y, f_z).normalize();\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 255) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axis.x * s, axis.y * s, axis.z * s, w);\n return out;\n}\n\n/**\n * Encodes a THREE.Quaternion into a 24‑bit unsigned integer\n * by converting it to Euler angles (roll, pitch, yaw).\n * The Euler angles are assumed to be in radians in the range [-π, π].\n * Each angle is normalized to [0,1] and quantized to 8 bits.\n * Bit layout (LSB→MSB):\n * - Bits 0–7: roll (quantized)\n * - Bits 8–15: pitch (quantized)\n * - Bits 16–23: yaw (quantized)\n */\nexport function encodeQuatEulerXyz888(q: THREE.Quaternion): number {\n // Normalize quaternion to ensure a proper rotation.\n const qNorm = q.clone().normalize();\n\n // Tait–Bryan angles (roll, pitch, yaw)\n const sinr_cosp = 2.0 * (qNorm.w * qNorm.x + qNorm.y * qNorm.z);\n const cosr_cosp = 1.0 - 2.0 * (qNorm.x * qNorm.x + qNorm.y * qNorm.y);\n const roll = Math.atan2(sinr_cosp, cosr_cosp);\n\n const sinp = 2.0 * (qNorm.w * qNorm.y - qNorm.z * qNorm.x);\n const pitch =\n Math.abs(sinp) >= 1.0 ? Math.sign(sinp) * (Math.PI / 2) : Math.asin(sinp);\n\n const siny_cosp = 2.0 * (qNorm.w * qNorm.z + qNorm.x * qNorm.y);\n const cosy_cosp = 1.0 - 2.0 * (qNorm.y * qNorm.y + qNorm.z * qNorm.z);\n const yaw = Math.atan2(siny_cosp, cosy_cosp);\n\n // Map each angle from [-π, π] to [0, 1]\n const normRoll = (roll + Math.PI) / (2 * Math.PI);\n const normPitch = (pitch + Math.PI) / (2 * Math.PI);\n const normYaw = (yaw + Math.PI) / (2 * Math.PI);\n\n // Quantize to 8 bits (0 to 255)\n const rollQ = Math.round(normRoll * 255);\n const pitchQ = Math.round(normPitch * 255);\n const yawQ = Math.round(normYaw * 255);\n\n // Pack into a 24-bit unsigned integer:\n // Bits 0–7: rollQ, Bits 8–15: pitchQ, Bits 16–23: yawQ.\n return (yawQ << 16) | (pitchQ << 8) | rollQ;\n}\n\n/**\n * Decodes a 24‑bit unsigned integer into a THREE.Quaternion\n * by unpacking three 8‑bit values (roll, pitch, yaw) in the range [0,255]\n * and then converting them back to Euler angles in [-π, π] and to a quaternion.\n */\nexport function decodeQuatEulerXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Unpack 8‑bit values.\n const rollQ = encoded & 0xff;\n const pitchQ = (encoded >>> 8) & 0xff;\n const yawQ = (encoded >>> 16) & 0xff;\n\n // Convert quantized values back to normalized [0,1] values.\n const normRoll = rollQ / 255;\n const normPitch = pitchQ / 255;\n const normYaw = yawQ / 255;\n\n // Map from [0,1] to [-π, π]\n const roll = normRoll * (2 * Math.PI) - Math.PI;\n const pitch = normPitch * (2 * Math.PI) - Math.PI;\n const yaw = normYaw * (2 * Math.PI) - Math.PI;\n\n // Convert Euler angles to quaternion (Tait–Bryan: roll, pitch, yaw).\n const cr = Math.cos(roll * 0.5);\n const sr = Math.sin(roll * 0.5);\n const cp = Math.cos(pitch * 0.5);\n const sp = Math.sin(pitch * 0.5);\n const cy = Math.cos(yaw * 0.5);\n const sy = Math.sin(yaw * 0.5);\n\n out.w = cr * cp * cy + sr * sp * sy;\n out.x = sr * cp * cy - cr * sp * sy;\n out.y = cr * sp * cy + sr * cp * sy;\n out.z = cr * cp * sy - sr * sp * cy;\n out.normalize();\n return out;\n}\n\nexport function encodeQuatOctXy1010R12(\n qx: number,\n qy: number,\n qz: number,\n qw: number,\n): number {\n const qlen = Math.sqrt(qx * qx + qy * qy + qz * qz + qw * qw);\n // Force the minimal representation (q.w >= 0)\n const qnx = (qw < 0 ? -qx : qx) / qlen;\n const qny = (qw < 0 ? -qy : qy) / qlen;\n const qnz = (qw < 0 ? -qz : qz) / qlen;\n const qnw = (qw < 0 ? -qw : qw) / qlen;\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnw);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(qnx * qnx + qny * qny + qnz * qnz);\n const axisX = xyz_norm < 1e-6 ? 1 : qnx / xyz_norm;\n const axisY = xyz_norm < 1e-6 ? 0 : qny / xyz_norm;\n const axisZ = xyz_norm < 1e-6 ? 0 : qnz / xyz_norm;\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axisX) + Math.abs(axisY) + Math.abs(axisZ);\n let p_x = axisX / sum;\n let p_y = axisY / sum;\n // Fold the lower hemisphere.\n if (axisZ < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 10 bits (0..1023)\n const quantU = Math.round(u_f * 1023);\n const quantV = Math.round(v_f * 1023);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 12 bits (0..4095) ---\n const angleInt = Math.round(theta * (4095 / Math.PI));\n\n // Pack into 32 bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20) | (quantV << 10) | quantU;\n}\n\nexport function decodeQuatOctXy1010R12(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 10‐bit quantU and quantV, and 12‐bit angleInt.\n const quantU = encoded & 0x3ff; // bits 0–9\n const quantV = (encoded >>> 10) & 0x3ff; // bits 10–19\n const angleInt = (encoded >>> 20) & 0xfff; // bits 20–31\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 1023;\n const v_f = quantV / 1023;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axisLen = Math.sqrt(f_x * f_x + f_y * f_y + f_z * f_z);\n const axisX = axisLen < 1e-6 ? 0 : f_x / axisLen;\n const axisY = axisLen < 1e-6 ? 0 : f_y / axisLen;\n const axisZ = axisLen < 1e-6 ? 0 : f_z / axisLen;\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 4095) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axisX * s, axisY * s, axisZ * s, w);\n return out;\n}\n\n// Pack four signed 8-bit values into a single uint32.\nfunction packSint8Bytes(\n b0: number,\n b1: number,\n b2: number,\n b3: number,\n): number {\n const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127)));\n const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127)));\n const clampedB2 = Math.round(Math.max(-127, Math.min(127, b2 * 127)));\n const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127)));\n return (\n (clampedB0 & 0xff) |\n ((clampedB1 & 0xff) << 8) |\n ((clampedB2 & 0xff) << 16) |\n ((clampedB3 & 0xff) << 24)\n );\n}\n\n// Encode an array of 9 signed RGB SH1 coefficients (clamped to [-1,1]) into\n// a pair of uint32 values, where each coefficient is stored as a sint7\nexport function encodeSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n encoding?: {\n sh1Max?: number;\n },\n) {\n const sh1Max = encoding?.sh1Max ?? 1;\n const sh1Scale = 63 / sh1Max;\n\n // Pack sint7 values into 2 x uint32\n const base = index * 2;\n for (let i = 0; i < 9; ++i) {\n const s = sh1Rgb[i] * sh1Scale;\n const value = Math.round(Math.max(-63, Math.min(63, s))) & 0x7f;\n const bitStart = i * 7;\n const bitEnd = bitStart + 7;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh1Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh1Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\n// Encode an array of 15 signed RGB SH2 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint8.\nexport function encodeSh2Rgb(\n sh2Array: Uint32Array,\n index: number,\n sh2Rgb: Float32Array,\n encoding?: {\n sh2Max?: number;\n },\n) {\n const sh2Max = encoding?.sh2Max ?? 1;\n const sh2Scale = 1 / sh2Max;\n\n // Pack sint8 values into 4 x uint32\n sh2Array[index * 4 + 0] = packSint8Bytes(\n sh2Rgb[0] * sh2Scale,\n sh2Rgb[1] * sh2Scale,\n sh2Rgb[2] * sh2Scale,\n sh2Rgb[3] * sh2Scale,\n );\n sh2Array[index * 4 + 1] = packSint8Bytes(\n sh2Rgb[4] * sh2Scale,\n sh2Rgb[5] * sh2Scale,\n sh2Rgb[6] * sh2Scale,\n sh2Rgb[7] * sh2Scale,\n );\n sh2Array[index * 4 + 2] = packSint8Bytes(\n sh2Rgb[8] * sh2Scale,\n sh2Rgb[9] * sh2Scale,\n sh2Rgb[10] * sh2Scale,\n sh2Rgb[11] * sh2Scale,\n );\n sh2Array[index * 4 + 3] = packSint8Bytes(\n sh2Rgb[12] * sh2Scale,\n sh2Rgb[13] * sh2Scale,\n sh2Rgb[14] * sh2Scale,\n 0,\n );\n}\n\n// Encode an array of 21 signed RGB SH3 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint6.\nexport function encodeSh3Rgb(\n sh3Array: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n encoding?: {\n sh3Max?: number;\n },\n) {\n const sh3Max = encoding?.sh3Max ?? 1;\n const sh3Scale = 31 / sh3Max;\n\n // Pack sint6 values into 4 x uint32\n const base = index * 4;\n for (let i = 0; i < 21; ++i) {\n const s = sh3Rgb[i] * sh3Scale;\n const value = Math.round(Math.max(-31, Math.min(31, s))) & 0x3f;\n const bitStart = i * 6;\n const bitEnd = bitStart + 6;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh3Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh3Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\nexport function encodeExtRgb(r: number, g: number, b: number): number {\n const ar = Math.abs(r);\n const ag = Math.abs(g);\n const ab = Math.abs(b);\n const maxAbs = Math.max(ar, ag, ab);\n const base = Math.floor(Math.log2(maxAbs));\n const biasedBase = Math.max(0, Math.min(31, base + 15));\n const divisor = 2 ** (biasedBase - 15) / 255;\n const uR = Math.round(Math.max(0, Math.min(255, ar / divisor)));\n const uG = Math.round(Math.max(0, Math.min(255, ag / divisor)));\n const uB = Math.round(Math.max(0, Math.min(255, ab / divisor)));\n const expSigns =\n (biasedBase << 3) |\n ((r < 0 ? 0x1 : 0) | (g < 0 ? 0x2 : 0) | (b < 0 ? 0x4 : 0));\n return uR | (uG << 8) | (uB << 16) | (expSigns << 24);\n}\n\nexport function decodeExtRgb(encoded: number): THREE.Color {\n const color = packedFields.color;\n const biasedBase = (encoded >>> 27) & 0x1f;\n const divisor = 2 ** (biasedBase - 15) / 255;\n const r = (encoded & 0xff) * divisor;\n const g = ((encoded >>> 8) & 0xff) * divisor;\n const b = ((encoded >>> 16) & 0xff) * divisor;\n color.r = encoded & 0x1000000 ? -r : r;\n color.g = encoded & 0x2000000 ? -g : g;\n color.b = encoded & 0x4000000 ? -b : b;\n return color;\n}\n\nexport function encodeExtSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n}\n\nexport function encodeExtSh12Rgb(\n sh1Array: Uint32Array,\n sh2Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n sh2Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n sh1Array[i4 + 3] = encodeExtRgb(sh2Rgb[0], sh2Rgb[1], sh2Rgb[2]);\n for (let k = 1; k < 5; ++k) {\n const k5 = k * 5;\n sh2Array[i4 + (k - 1)] = encodeExtRgb(\n sh2Rgb[k5],\n sh2Rgb[k5 + 1],\n sh2Rgb[k5 + 2],\n );\n }\n}\n\nexport function encodeExt3Rgb(\n sh3ArrayA: Uint32Array,\n sh3ArrayB: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 4; ++k) {\n const k3 = k * 3;\n sh3ArrayA[i4 + k] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n for (let k = 4; k < 7; ++k) {\n const k3 = k * 3;\n sh3ArrayB[i4 + (k - 4)] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n}\n\n// Partially decompress a gzip-encoded Uint8Array, returning a Uint8Array of\n// the specified numBytes from the start of the file.\nexport function decompressPartialGzip(\n fileBytes: Uint8Array,\n numBytes: number,\n): Uint8Array {\n const chunks: Uint8Array[] = [];\n let totalBytes = 0;\n let result: Uint8Array | null = null;\n\n const gunzip = new Gunzip((data, final) => {\n chunks.push(data);\n totalBytes += data.length;\n if (final || totalBytes >= numBytes) {\n const allBytes = new Uint8Array(totalBytes);\n let offset = 0;\n for (const chunk of chunks) {\n allBytes.set(chunk, offset);\n offset += chunk.length;\n }\n result = allBytes.slice(0, numBytes);\n }\n });\n\n const CHUNK_SIZE = 1024;\n let offset = 0;\n while (result == null && offset < fileBytes.length) {\n const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE);\n gunzip.push(chunk, false);\n offset += CHUNK_SIZE;\n }\n\n if (result == null) {\n gunzip.push(new Uint8Array(), true);\n if (result == null) {\n throw new Error(\"Failed to decompress partial gzip\");\n }\n }\n return result;\n}\n\nexport class GunzipReader {\n fileBytes: Uint8Array;\n chunkBytes: number;\n\n chunks: Uint8Array[];\n totalBytes: number;\n reader: ReadableStreamDefaultReader;\n\n constructor({\n fileBytes,\n chunkBytes = 64 * 1024,\n }: { fileBytes: Uint8Array; chunkBytes?: number }) {\n this.fileBytes = fileBytes;\n this.chunkBytes = chunkBytes;\n this.chunks = [];\n this.totalBytes = 0;\n\n const ds = new DecompressionStream(\"gzip\");\n const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds);\n this.reader = decompressionStream.getReader();\n }\n\n async read(numBytes: number): Promise {\n while (this.totalBytes < numBytes) {\n const { value: chunk, done: readerDone } = await this.reader.read();\n if (readerDone) {\n break;\n }\n\n this.chunks.push(chunk);\n this.totalBytes += chunk.length;\n }\n\n if (this.totalBytes < numBytes) {\n throw new Error(\n `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}`,\n );\n }\n\n const allBytes = new Uint8Array(this.totalBytes);\n let outOffset = 0;\n for (const chunk of this.chunks) {\n allBytes.set(chunk, outOffset);\n outOffset += chunk.length;\n }\n\n const result = allBytes.subarray(0, numBytes);\n this.chunks = [allBytes.subarray(numBytes)];\n this.totalBytes -= numBytes;\n return result;\n }\n}\n","import BundledWorker from \"./oldWorker?worker&inline\";\nimport { getTransferable } from \"./utils.js\";\n\n// SplatWorker is an internal class that manages a WebWorker for executing\n// longer running CPU tasks such as Gsplat file decoding and sorting.\n// Although a SplatWorker can be created and used directly, the utility\n// function withWorker() is recommended to allocate from a managed\n// pool of SplatWorkers.\n\nexport class OldSplatWorker {\n worker: Worker;\n messages: Record<\n number,\n { resolve: (value: unknown) => void; reject: (reason?: unknown) => void }\n > = {};\n messageIdNext = 0;\n\n constructor() {\n // this.worker = new Worker(new URL(\"./worker\", import.meta.url), { type: \"module\" });\n this.worker = new BundledWorker();\n this.worker.onmessage = (event) => this.onMessage(event);\n }\n\n makeMessageId(): number {\n return ++this.messageIdNext;\n }\n\n makeMessagePromiseId(): { id: number; promise: Promise } {\n const id = this.makeMessageId();\n const promise = new Promise((resolve, reject) => {\n this.messages[id] = { resolve, reject };\n });\n return { id, promise };\n }\n\n onMessage(event: MessageEvent) {\n // console.log(\"SplatWorker.onMessage:\", event);\n const { id, result, error } = event.data;\n // console.log(`SplatWorker.onMessage(${id}):`, result, error);\n const handler = this.messages[id];\n if (handler) {\n delete this.messages[id];\n if (error) {\n handler.reject(error);\n } else {\n handler.resolve(result);\n }\n }\n }\n\n // Invoke an RPC on the worker with the given name and arguments.\n // The normal usage of a worker is to run one activity at a time,\n // but this function allows for concurrent calls, tagging each request\n // with a unique message Id and awaiting a response to that same Id.\n // The method will automatically transfer any ArrayBuffers in the\n // arguments to the worker. If you'd like to transfer a copy of a\n // buffer then you must clone it before passing to this function.\n async call(name: string, args: unknown): Promise {\n const { id, promise } = this.makeMessagePromiseId();\n // console.log(`SplatWorker.call(${name}):`, args);\n this.worker.postMessage(\n { name, args, id },\n { transfer: getTransferable(args) },\n );\n return promise;\n }\n}\n\nlet maxWorkers = 4;\n\nlet numWorkers = 0;\nconst freeWorkers: OldSplatWorker[] = [];\nconst workerQueue: ((worker: OldSplatWorker) => void)[] = [];\n\n// Set the maximum number of workers to allocate for the pool. (default: 4)\nexport function setWorkerPool(count = 4) {\n maxWorkers = count;\n}\n\n// Allocate a worker from the pool. If none are available and we are below the\n// maximum, create a new one. Otherwise, add the request to a queue and wait\n// for it to be fulfilled.\nexport async function allocWorker(): Promise {\n const worker = freeWorkers.shift();\n if (worker) {\n return worker;\n }\n\n if (numWorkers < maxWorkers) {\n const worker = new OldSplatWorker();\n numWorkers += 1;\n return worker;\n }\n\n return new Promise((resolve) => {\n workerQueue.push(resolve);\n });\n}\n\n// Return a worker to the pool. Pass the worker to any pending waiter.\nexport function freeWorker(worker: OldSplatWorker) {\n if (numWorkers > maxWorkers) {\n // Worker no longer needed\n numWorkers -= 1;\n return;\n }\n\n const waiter = workerQueue.shift();\n if (waiter) {\n waiter(worker);\n return;\n }\n\n freeWorkers.push(worker);\n}\n\n// Allocate a worker from the pool and invoke the callback with the worker.\n// When the callback completes, the worker will be returned to the pool.\nexport async function withWorker(\n callback: (worker: OldSplatWorker) => Promise,\n): Promise {\n const worker = await allocWorker();\n try {\n return await callback(worker);\n } finally {\n freeWorker(worker);\n }\n}\n","import { getTransferable } from \"./utils\";\nimport BundledWorker from \"./worker?worker&inline\";\n\ntype PromiseRecord = {\n resolve: (value: unknown) => void;\n reject: (reason?: unknown) => void;\n onStatus?: (data: unknown) => void;\n};\n\nexport class SplatWorker {\n worker: Worker;\n queue: (() => void)[] | null = null;\n messages: Record = {};\n static currentId = 0;\n\n constructor() {\n this.worker = new BundledWorker();\n this.worker.onmessage = (event) => this.onMessage(event);\n }\n\n onMessage(event: MessageEvent) {\n const { id, result, error, status } = event.data;\n const promise = this.messages[id];\n if (promise) {\n if (error !== undefined) {\n delete this.messages[id];\n promise.reject(error);\n } else if (status !== undefined) {\n promise.onStatus?.(status);\n } else {\n delete this.messages[id];\n promise.resolve(result);\n }\n }\n }\n\n tryExclusive(callback: (worker: SplatWorker) => Promise) {\n return this.queue == null ? this.exclusive(callback) : null;\n }\n\n async exclusive(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const queue = this.queue;\n if (queue != null) {\n await new Promise((resolve) => {\n queue.push(() => resolve(undefined));\n });\n } else {\n this.queue = [];\n }\n\n try {\n return await callback(this);\n } finally {\n if (this.queue != null) {\n if (this.queue.length === 0) {\n this.queue = null;\n } else {\n const waiter = this.queue.shift() as () => void;\n waiter();\n }\n }\n }\n }\n\n async call(\n name: string,\n args: unknown,\n options: { onStatus?: (data: unknown) => void } = {},\n ): Promise {\n const id = ++SplatWorker.currentId;\n const promise = new Promise((resolve, reject) => {\n this.messages[id] = { resolve, reject, onStatus: options.onStatus };\n });\n this.worker.postMessage(\n { id, name, args },\n { transfer: getTransferable(args) },\n );\n return await promise;\n }\n\n dispose() {\n this.worker.terminate();\n\n const messages = Object.values(this.messages);\n this.messages = {};\n for (const message of messages) {\n message.reject(new Error(\"Worker terminate\"));\n }\n }\n}\n\nexport class NewSplatWorkerPool {\n maxWorkers;\n numWorkers = 0;\n freelist: SplatWorker[] = [];\n queue: ((worker: SplatWorker) => void)[] = [];\n\n constructor(maxWorkers = 4) {\n this.maxWorkers = maxWorkers;\n }\n\n async withWorker(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const worker = await this.allocWorker();\n try {\n return await callback(worker);\n } finally {\n this.freeWorker(worker);\n }\n }\n\n async allocWorker(): Promise {\n const worker = this.freelist.pop();\n if (worker) {\n return worker;\n }\n\n if (this.numWorkers < this.maxWorkers) {\n const worker = new SplatWorker();\n this.numWorkers += 1;\n return worker;\n }\n\n return new Promise((resolve) => {\n this.queue.push(resolve);\n });\n }\n\n freeWorker(worker: SplatWorker) {\n if (this.numWorkers > this.maxWorkers) {\n // Worker no longer needed\n this.numWorkers -= 1;\n return;\n }\n\n const waiter = this.queue.shift();\n if (waiter) {\n waiter(worker);\n return;\n }\n\n this.freelist.push(worker);\n }\n}\n\nexport const workerPool = new NewSplatWorkerPool();\n","import { Dyno, UnaryOp, unindent, unindentLines } from \"./base\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const Gsplat = { type: \"Gsplat\" } as { type: \"Gsplat\" };\nexport const CovSplat = { type: \"CovSplat\" } as { type: \"CovSplat\" };\nexport const TPackedSplats = { type: \"PackedSplats\" } as {\n type: \"PackedSplats\";\n};\nexport const TExtSplats = { type: \"ExtSplats\" } as {\n type: \"ExtSplats\";\n};\nexport const TCovSplats = { type: \"CovSplats\" } as {\n type: \"CovSplats\";\n};\n\nexport const numPackedSplats = (\n packedSplats: DynoVal,\n): DynoVal<\"int\"> => new NumPackedSplats({ packedSplats });\nexport const readPackedSplat = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadPackedSplat({ packedSplats, index });\nexport const readPackedSplatRange = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n base: DynoVal<\"int\">,\n count: DynoVal<\"int\">,\n): DynoVal =>\n new ReadPackedSplatRange({ packedSplats, index, base, count });\n\nexport const numExtSplats = (\n extSplats: DynoVal,\n): DynoVal<\"int\"> => new NumExtSplats({ extSplats });\nexport const readExtSplat = (\n extSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadExtSplat({ extSplats, index });\n\nexport const numCovSplats = (\n covsplats: DynoVal,\n): DynoVal<\"int\"> => new NumCovSplats({ covsplats });\nexport const readCovSplat = (\n covSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadCovSplat({ covSplats, index });\n\nexport const gsplatToCovSplat = (\n gsplat: DynoVal,\n): DynoVal => new GsplatToCovSplat({ gsplat });\n\nexport const splitGsplat = (gsplat: DynoVal) =>\n new SplitGsplat({ gsplat });\nexport const combineGsplat = ({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineGsplat({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\nexport const gsplatNormal = (gsplat: DynoVal): DynoVal<\"vec3\"> =>\n new GsplatNormal({ gsplat });\n\nexport const transformGsplat = (\n gsplat: DynoVal,\n {\n scale,\n rotate,\n translate,\n recolor,\n }: {\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n },\n): DynoVal => {\n return new TransformGsplat({ gsplat, scale, rotate, translate, recolor });\n};\n\nexport const splatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new SplatTexCoord({ index });\n\nexport const pagedSplatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new PagedSplatTexCoord({ index });\n\nexport const defineGsplat = unindent(`\n struct Gsplat {\n vec3 center;\n uint flags;\n vec3 scales;\n int index;\n vec4 quaternion;\n vec4 rgba;\n };\n const uint GSPLAT_FLAG_ACTIVE = 1u << 0u;\n\n bool isGsplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const defineCovSplat = unindent(`\n struct CovSplat {\n vec3 center;\n uint flags;\n vec4 rgba;\n vec3 xxyyzz;\n int index;\n vec3 xyxzyz;\n };\n\n bool isCovSplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const definePackedSplats = unindent(`\n struct PackedSplats {\n usampler2DArray textureArray;\n int numSplats;\n vec4 rgbMinMaxLnScaleMinMax;\n bool lodOpacity;\n };\n`);\n\nexport class NumPackedSplats extends UnaryOp<\n typeof TPackedSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({\n packedSplats,\n }: { packedSplats: DynoVal }) {\n super({ a: packedSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadPackedArray = unindent(`\n bool readPackedArray(usampler2DArray texture, int numSplats, vec4 rgbMinMaxLnScaleMinMax, int index, out Gsplat gsplat) {\n if ((index >= 0) && (index < numSplats)) {\n uvec4 packedData = texelFetch(texture, splatTexCoord(index), 0);\n unpackSplatEncoding(packedData, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba, rgbMinMaxLnScaleMinMax);\n return true;\n } else {\n return false;\n }\n }\n`);\n\nexport class ReadPackedSplat\n extends Dyno<\n { packedSplats: typeof TPackedSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n }: { packedSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { packedSplats: TPackedSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index } = inputs;\n let statements: string[];\n if (packedSplats && index) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class ReadPackedSplatRange\n extends Dyno<\n {\n packedSplats: typeof TPackedSplats;\n index: \"int\";\n base: \"int\";\n count: \"int\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n base,\n count,\n }: {\n packedSplats?: DynoVal;\n index?: DynoVal<\"int\">;\n base?: DynoVal<\"int\">;\n count?: DynoVal<\"int\">;\n }) {\n super({\n inTypes: {\n packedSplats: TPackedSplats,\n index: \"int\",\n base: \"int\",\n count: \"int\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index, base, count },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index, base, count } = inputs;\n let statements: string[];\n if (packedSplats && index && base && count) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineExtSplats = unindent(`\n struct ExtSplats {\n usampler2DArray textureArray1;\n usampler2DArray textureArray2;\n int numSplats;\n };\n`);\n\nexport class NumExtSplats extends UnaryOp<\n typeof TExtSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ extSplats }: { extSplats: DynoVal }) {\n super({ a: extSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadExtArrays = unindent(`\n void readExtArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out Gsplat gsplat) {\n gsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExt(packed1, packed2, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba);\n gsplat.flags = all(equal(gsplat.scales, vec3(0.0, 0.0, 0.0))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadExtSplat\n extends Dyno<\n { extSplats: typeof TExtSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n extSplats,\n index,\n }: { extSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { extSplats: TExtSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { extSplats, index },\n globals: () => [defineGsplat, defineExtSplats, defineReadExtArrays],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [`${gsplat}.flags = 0u;`];\n }\n const { extSplats, index } = inputs;\n let statements: string[];\n if (extSplats && index) {\n return unindentLines(`\n readExtArrays(${extSplats}.textureArray1, ${extSplats}.textureArray2, ${extSplats}.numSplats, ${index}, ${gsplat});\n `);\n }\n return [`${gsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class NumCovSplats extends UnaryOp<\n typeof TCovSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ covsplats }: { covsplats: DynoVal }) {\n super({ a: covsplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadCovArrays = unindent(`\n void readCovArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out CovSplat covsplat) {\n covsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExtCov(packed1, packed2, covsplat.center, covsplat.rgba, covsplat.xxyyzz, covsplat.xyxzyz);\n covsplat.flags = (all(equal(covsplat.xxyyzz, vec3(0.0))) && all(equal(covsplat.xyxzyz, vec3(0.0)))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadCovSplat\n extends Dyno<\n { covSplats: typeof TCovSplats; index: \"int\" },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covSplats,\n index,\n }: { covSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { covSplats: TCovSplats, index: \"int\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covSplats, index },\n globals: () => [defineGsplat, defineCovSplat, defineReadCovArrays],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = outputs;\n if (!covsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n const { covSplats, index } = inputs;\n let statements: string[];\n if (covSplats && index) {\n return unindentLines(`\n readCovArrays(${covSplats}.textureArray, ${covSplats}.numSplats, ${index}, ${covsplat});\n `);\n }\n return [`${covsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class GsplatToCovSplat extends Dyno<\n { gsplat: typeof Gsplat },\n { covsplat: typeof CovSplat }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: { covsplat: CovSplat },\n inputs: { gsplat },\n globals: () => [defineGsplat, defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const { covsplat } = outputs;\n if (!gsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n\n return unindentLines(`\n ${covsplat}.flags = 0u;\n if (isGsplatActive(${gsplat}.flags)) {\n ${covsplat}.flags = ${gsplat}.flags;\n ${covsplat}.index = ${gsplat}.index;\n ${covsplat}.rgba = ${gsplat}.rgba;\n ${covsplat}.center = ${gsplat}.center;\n mat3 m = scaleQuaternionToMatrix(${gsplat}.scales, ${gsplat}.quaternion);\n m = m * transpose(m);\n ${covsplat}.xxyyzz = vec3(m[0][0], m[1][1], m[2][2]);\n ${covsplat}.xyxzyz = vec3(m[0][1], m[0][2], m[1][2]);\n }\n `);\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplitGsplat extends Dyno<\n { gsplat: typeof Gsplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags ? null : `${flags} = ${gsplat ? `${gsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isGsplatActive(${gsplat ? `${gsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${gsplat ? `${gsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !scales\n ? null\n : `${scales} = ${gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !quaternion\n ? null\n : `${quaternion} = ${gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${gsplat ? `${gsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${gsplat ? `${gsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${gsplat ? `${gsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${gsplat ? `${gsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${gsplat ? `${gsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${gsplat ? `${gsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${gsplat ? `${gsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${gsplat ? `${gsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat: outGsplat } = outputs;\n if (!outGsplat) {\n return [];\n }\n const {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outGsplat}.flags = ${flags ?? (gsplat ? `${gsplat}.flags` : \"0u\")};`,\n `${outGsplat}.index = ${index ?? (gsplat ? `${gsplat}.index` : \"0\")};`,\n `${outGsplat}.center = ${center ?? (gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.scales = ${scales ?? (gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.quaternion = ${quaternion ?? (gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\")};`,\n `${outGsplat}.rgba = ${rgba ?? (gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outGsplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outGsplat}.rgba.a = ${opacity};`,\n !x ? null : `${outGsplat}.center.x = ${x};`,\n !y ? null : `${outGsplat}.center.y = ${y};`,\n !z ? null : `${outGsplat}.center.z = ${z};`,\n !r ? null : `${outGsplat}.rgba.r = ${r};`,\n !g ? null : `${outGsplat}.rgba.g = ${g};`,\n !b ? null : `${outGsplat}.rgba.b = ${b};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineGsplatNormal = unindent(`\n vec3 gsplatNormal(vec3 scales, vec4 quaternion) {\n float minScale = min(scales.x, min(scales.y, scales.z));\n vec3 normal;\n if (scales.z == minScale) {\n normal = vec3(0.0, 0.0, 1.0);\n } else if (scales.y == minScale) {\n normal = vec3(0.0, 1.0, 0.0);\n } else {\n normal = vec3(1.0, 0.0, 0.0);\n }\n return quatVec(quaternion, normal);\n }\n`);\n\nexport class GsplatNormal extends UnaryOp {\n constructor({ gsplat }: { gsplat: DynoVal }) {\n super({ a: gsplat, outKey: \"normal\", outTypeFunc: () => \"vec3\" });\n this.globals = () => [defineGsplat, defineGsplatNormal];\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normal} = gsplatNormal(${inputs.a}.scales, ${inputs.a}.quaternion);`,\n ];\n }\n}\n\nexport class TransformGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n scale: \"float\";\n rotate: \"vec4\";\n translate: \"vec3\";\n recolor: \"vec4\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n scale,\n rotate,\n translate,\n recolor,\n }: {\n gsplat?: DynoVal;\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n scale: \"float\",\n rotate: \"vec4\",\n translate: \"vec3\",\n recolor: \"vec4\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, scale, rotate, translate, recolor },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs, compile }) => {\n const { gsplat } = outputs;\n if (!gsplat || !inputs.gsplat) {\n return [];\n }\n const { scale, rotate, translate, recolor } = inputs;\n const indent = compile.indent;\n const statements = [\n `${gsplat} = ${inputs.gsplat};`,\n `if (isGsplatActive(${gsplat}.flags)) {`,\n\n scale ? `${indent}${gsplat}.center *= ${scale};` : null,\n rotate\n ? `${indent}${gsplat}.center = quatVec(${rotate}, ${gsplat}.center);`\n : null,\n translate ? `${indent}${gsplat}.center += ${translate};` : null,\n\n scale ? `${indent}${gsplat}.scales *= ${scale};` : null,\n\n rotate\n ? `${indent}${gsplat}.quaternion = quatQuat(${rotate}, ${gsplat}.quaternion);`\n : null,\n recolor ? `${indent}${gsplat}.rgba *= ${recolor};` : null,\n \"}\",\n ].filter(Boolean) as string[];\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const splitCovSplat = (covsplat: DynoVal) =>\n new SplitCovSplat({ covsplat });\nexport const combineCovSplat = ({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineCovSplat({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\n\nexport class SplitCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ covsplat }: { covsplat?: DynoVal }) {\n super({\n inTypes: { covsplat: CovSplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags\n ? null\n : `${flags} = ${covsplat ? `${covsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isCovSplatActive(${covsplat ? `${covsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${covsplat ? `${covsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${covsplat ? `${covsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${covsplat ? `${covsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${covsplat ? `${covsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${covsplat ? `${covsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${covsplat ? `${covsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${covsplat ? `${covsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${covsplat ? `${covsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${covsplat ? `${covsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineCovSplat\n extends Dyno<\n {\n covsplat: typeof CovSplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { covsplat: CovSplat },\n inputs: {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat: outCovSplat } = outputs;\n if (!outCovSplat) {\n return [];\n }\n const {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outCovSplat}.flags = ${flags ?? (covsplat ? `${covsplat}.flags` : \"0u\")};`,\n `${outCovSplat}.index = ${index ?? (covsplat ? `${covsplat}.index` : \"0\")};`,\n `${outCovSplat}.center = ${center ?? (covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outCovSplat}.rgba = ${rgba ?? (covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outCovSplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outCovSplat}.rgba.a = ${opacity};`,\n !x ? null : `${outCovSplat}.center.x = ${x};`,\n !y ? null : `${outCovSplat}.center.y = ${y};`,\n !z ? null : `${outCovSplat}.center.z = ${z};`,\n !r ? null : `${outCovSplat}.rgba.r = ${r};`,\n !g ? null : `${outCovSplat}.rgba.g = ${g};`,\n !b ? null : `${outCovSplat}.rgba.b = ${b};`,\n `${outCovSplat}.xxyyzz = ${covsplat ? `${covsplat}.xxyyzz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n `${outCovSplat}.xyxzyz = ${covsplat ? `${covsplat}.xyxzyz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = splatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n\nexport class PagedSplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = pagedSplatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n","import * as THREE from \"three\";\nimport { Dyno, unindentLines } from \"./base\";\nimport { CovSplat, Gsplat, defineCovSplat, defineGsplat } from \"./splats\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const outputPackedSplat = (\n gsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputPackedSplat({ gsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputCovSplat = (\n covsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputCovSplat({ covsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputExtendedSplat = (gsplat: DynoVal) =>\n new OutputExtendedSplat({ gsplat });\n\nexport const outputExtCovSplat = (covsplat: DynoVal) =>\n new OutputExtCovSplat({ covsplat });\n\nexport const outputSplatDepth = (\n gsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputSplatDepth({ gsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputCovSplatDepth = (\n covsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputCovSplatDepth({ covsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputRgba8 = (rgba8: DynoVal<\"vec4\">) =>\n new OutputRgba8({ rgba8 });\n\nexport class OutputPackedSplat extends Dyno<\n { gsplat: typeof Gsplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n gsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n gsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { gsplat: Gsplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { gsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (gsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n target = packSplatEncoding(${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u, 0u, 0u, 0u);\n }\n `);\n }\n return [\"target = uvec4(0u, 0u, 0u, 0u);\"];\n },\n });\n }\n}\n\nexport class OutputCovSplat extends Dyno<\n { covsplat: typeof CovSplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n covsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n covsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { covsplat: CovSplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { covsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (covsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n target = packSplatCovEncoding(${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtendedSplat extends Dyno<\n { gsplat: typeof Gsplat },\n Record\n> {\n constructor({\n gsplat,\n }: {\n gsplat?: DynoVal;\n }) {\n super({\n inTypes: { gsplat: Gsplat },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat } = inputs;\n if (gsplat) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n packSplatExt(target, target2, ${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n Record\n> {\n constructor({\n covsplat,\n }: {\n covsplat?: DynoVal;\n }) {\n super({\n inTypes: { covsplat: CovSplat },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat } = inputs;\n if (covsplat) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n packSplatExtCov(target, target2, ${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nclass OutputSplatDepth extends Dyno<\n {\n gsplat: typeof Gsplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n gsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n gsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { gsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (gsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isGsplatActive(${gsplat}.flags)) {\n vec3 center = ${gsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nclass OutputCovSplatDepth extends Dyno<\n {\n covsplat: typeof CovSplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n covsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n covsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { covsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (covsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isCovSplatActive(${covsplat}.flags)) {\n vec3 center = ${covsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nexport class OutputRgba8\n extends Dyno<{ rgba8: \"vec4\" }, { rgba8: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ rgba8 }: { rgba8?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { rgba8: \"vec4\" },\n inputs: { rgba8 },\n statements: ({ inputs, outputs }) => [\n `target = ${inputs.rgba8 ?? \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"rgba8\");\n }\n}\n","import type { IUniform } from \"three\";\nimport { Dyno, dynoDeclare } from \"./base\";\nimport type { DynoJsType, DynoType } from \"./types\";\nimport { DynoOutput, type DynoValue, type HasDynoOut } from \"./value\";\n\nexport const uniform = >(\n key: string,\n type: DynoType,\n value: V,\n) => new DynoUniform({ key, type, value });\nexport const dynoBool = (value = false, key?: string) =>\n new DynoBool({ key, value });\nexport const dynoUint = (value = 0, key?: string) =>\n new DynoUint({ key, value });\nexport const dynoInt = (value = 0, key?: string) => new DynoInt({ key, value });\nexport const dynoFloat = (value = 0.0, key?: string) =>\n new DynoFloat({ key, value });\n\nexport const dynoBvec2 = >(\n value: V,\n key?: string,\n) => new DynoBvec2({ key, value });\nexport const dynoUvec2 = >(\n value: V,\n key?: string,\n) => new DynoUvec2({ key, value });\nexport const dynoIvec2 = >(\n value: V,\n key?: string,\n) => new DynoIvec2({ key, value });\nexport const dynoVec2 = >(\n value: V,\n key?: string,\n) => new DynoVec2({ key, value });\n\nexport const dynoBvec3 = >(\n value: V,\n key?: string,\n) => new DynoBvec3({ key, value });\nexport const dynoUvec3 = >(\n value: V,\n key?: string,\n) => new DynoUvec3({ key, value });\nexport const dynoIvec3 = >(\n value: V,\n key?: string,\n) => new DynoIvec3({ key, value });\nexport const dynoVec3 = >(\n value: V,\n key?: string,\n) => new DynoVec3({ key, value });\n\nexport const dynoBvec4 = >(\n value: V,\n key?: string,\n) => new DynoBvec4({ key, value });\nexport const dynoUvec4 = >(\n value: V,\n key?: string,\n) => new DynoUvec4({ key, value });\nexport const dynoIvec4 = >(\n value: V,\n key?: string,\n) => new DynoIvec4({ key, value });\nexport const dynoVec4 = >(\n value: V,\n key?: string,\n) => new DynoVec4({ key, value });\n\nexport const dynoMat2 = >(\n value: V,\n key?: string,\n) => new DynoMat2({ key, value });\nexport const dynoMat2x2 = >(\n value: V,\n key?: string,\n) => new DynoMat2x2({ key, value });\nexport const dynoMat2x3 = >(\n value: V,\n key?: string,\n) => new DynoMat2x3({ key, value });\nexport const dynoMat2x4 = >(\n value: V,\n key?: string,\n) => new DynoMat2x4({ key, value });\n\nexport const dynoMat3 = >(\n value: V,\n key?: string,\n) => new DynoMat3({ key, value });\nexport const dynoMat3x2 = >(\n value: V,\n key?: string,\n) => new DynoMat3x2({ key, value });\nexport const dynoMat3x3 = >(\n value: V,\n key?: string,\n) => new DynoMat3x3({ key, value });\nexport const dynoMat3x4 = >(\n value: V,\n key?: string,\n) => new DynoMat3x4({ key, value });\n\nexport const dynoMat4 = >(\n value: V,\n key?: string,\n) => new DynoMat4({ key, value });\nexport const dynoMat4x2 = >(\n value: V,\n key?: string,\n) => new DynoMat4x2({ key, value });\nexport const dynoMat4x3 = >(\n value: V,\n key?: string,\n) => new DynoMat4x3({ key, value });\nexport const dynoMat4x4 = >(\n value: V,\n key?: string,\n) => new DynoMat4x4({ key, value });\n\nexport const dynoUsampler2D = >(\n value: V,\n key?: string,\n) => new DynoUsampler2D({ key, value });\nexport const dynoIsampler2D = >(\n value: V,\n key?: string,\n) => new DynoIsampler2D({ key, value });\nexport const dynoSampler2D = >(\n value: V,\n key?: string,\n) => new DynoSampler2D({ key, value });\n\nexport const dynoUsampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoUsampler2DArray({ key, value });\nexport const dynoIsampler2DArray = >(\n key: string,\n value: V,\n) => new DynoIsampler2DArray({ key, value });\nexport const dynoSampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoSampler2DArray({ key, value });\n\nexport const dynoUsampler3D = >(\n value: V,\n key?: string,\n) => new DynoUsampler3D({ key, value });\nexport const dynoIsampler3D = >(\n value: V,\n key?: string,\n) => new DynoIsampler3D({ key, value });\nexport const dynoSampler3D = >(\n value: V,\n key?: string,\n) => new DynoSampler3D({ key, value });\n\nexport const dynoUsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoUsamplerCube({ key, value });\nexport const dynoIsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoIsamplerCube({ key, value });\nexport const dynoSamplerCube = >(\n value: V,\n key?: string,\n) => new DynoSamplerCube({ key, value });\n\nexport const dynoSampler2DShadow = >(\n value: V,\n key?: string,\n) => new DynoSampler2DShadow({ key, value });\nexport const dynoSampler2DArrayShadow = <\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSampler2DArrayShadow({ key, value });\nexport const dynoSamplerCubeShadow = <\n V extends DynoJsType<\"samplerCubeShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSamplerCubeShadow({ key, value });\n\nexport class DynoUniform<\n T extends DynoType,\n K extends string = \"value\",\n V extends DynoJsType = DynoJsType,\n >\n extends Dyno, { [key in K]: T }>\n implements HasDynoOut\n{\n public type: T;\n public count?: number;\n public outKey: K;\n public value: V;\n public uniform: { value: V; type?: string };\n\n constructor({\n key,\n type,\n count,\n value,\n update,\n globals,\n }: {\n key?: K;\n type: T;\n count?: number;\n value: V;\n update?: (value: V) => V | undefined;\n globals?: ({\n inputs,\n outputs,\n }: { inputs: unknown; outputs: { [key in K]?: string } }) => string[];\n }) {\n key = (key ?? \"value\") as K;\n super({\n outTypes: { [key]: type } as { [key in K]: T },\n update: () => {\n if (update) {\n const value = update(this.value);\n if (value !== undefined) {\n this.value = value;\n }\n }\n this.uniform.value = this.value;\n },\n generate: ({ inputs, outputs }) => {\n const allGlobals = globals?.({ inputs, outputs }) ?? [];\n const uniforms: Record = {};\n const name = outputs[key];\n if (name) {\n allGlobals.push(`uniform ${dynoDeclare(name, type, count)};`);\n uniforms[name] = this.uniform;\n }\n return { globals: allGlobals, uniforms };\n },\n });\n this.type = type;\n this.count = count;\n this.value = value;\n this.uniform = { value };\n this.outKey = key;\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class DynoBool extends DynoUniform<\n \"bool\",\n K,\n boolean\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: boolean;\n update?: (value: boolean) => boolean | undefined;\n }) {\n super({ key, type: \"bool\", value, update });\n }\n}\n\nexport class DynoUint extends DynoUniform<\"uint\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"uint\", value, update });\n }\n}\n\nexport class DynoInt extends DynoUniform<\"int\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"int\", value, update });\n }\n}\n\nexport class DynoFloat extends DynoUniform<\n \"float\",\n K,\n number\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"float\", value, update });\n }\n}\n\nexport class DynoBvec2<\n K extends string,\n V extends DynoJsType<\"bvec2\">,\n> extends DynoUniform<\"bvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec2\", value, update });\n }\n}\n\nexport class DynoUvec2<\n K extends string,\n V extends DynoJsType<\"uvec2\">,\n> extends DynoUniform<\"uvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec2\", value, update });\n }\n}\n\nexport class DynoIvec2<\n K extends string,\n V extends DynoJsType<\"ivec2\">,\n> extends DynoUniform<\"ivec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec2\", value, update });\n }\n}\n\nexport class DynoVec2<\n K extends string,\n V extends DynoJsType<\"vec2\">,\n> extends DynoUniform<\"vec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec2\", value, update });\n }\n}\n\nexport class DynoBvec3<\n K extends string,\n V extends DynoJsType<\"bvec3\">,\n> extends DynoUniform<\"bvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec3\", value, update });\n }\n}\n\nexport class DynoUvec3<\n V extends DynoJsType<\"uvec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"uvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec3\", value, update });\n }\n}\n\nexport class DynoIvec3<\n V extends DynoJsType<\"ivec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"ivec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec3\", value, update });\n }\n}\n\nexport class DynoVec3<\n V extends DynoJsType<\"vec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec3\", value, update });\n }\n}\n\nexport class DynoBvec4<\n K extends string,\n V extends DynoJsType<\"bvec4\">,\n> extends DynoUniform<\"bvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec4\", value, update });\n }\n}\n\nexport class DynoUvec4<\n K extends string,\n V extends DynoJsType<\"uvec4\">,\n> extends DynoUniform<\"uvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec4\", value, update });\n }\n}\n\nexport class DynoIvec4<\n K extends string,\n V extends DynoJsType<\"ivec4\">,\n> extends DynoUniform<\"ivec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec4\", value, update });\n }\n}\n\nexport class DynoVec4<\n V extends DynoJsType<\"vec4\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec4\", value, update });\n }\n}\n\nexport class DynoMat2<\n K extends string,\n V extends DynoJsType<\"mat2\">,\n> extends DynoUniform<\"mat2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2\", value, update });\n }\n}\n\nexport class DynoMat2x2<\n K extends string,\n V extends DynoJsType<\"mat2x2\">,\n> extends DynoUniform<\"mat2x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x2\", value, update });\n }\n}\n\nexport class DynoMat2x3<\n K extends string,\n V extends DynoJsType<\"mat2x3\">,\n> extends DynoUniform<\"mat2x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x3\", value, update });\n }\n}\n\nexport class DynoMat2x4<\n K extends string,\n V extends DynoJsType<\"mat2x4\">,\n> extends DynoUniform<\"mat2x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x4\", value, update });\n }\n}\n\nexport class DynoMat3<\n K extends string,\n V extends DynoJsType<\"mat3\">,\n> extends DynoUniform<\"mat3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3\", value, update });\n }\n}\n\nexport class DynoMat3x2<\n K extends string,\n V extends DynoJsType<\"mat3x2\">,\n> extends DynoUniform<\"mat3x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x2\", value, update });\n }\n}\n\nexport class DynoMat3x3<\n K extends string,\n V extends DynoJsType<\"mat3x3\">,\n> extends DynoUniform<\"mat3x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x3\", value, update });\n }\n}\n\nexport class DynoMat3x4<\n K extends string,\n V extends DynoJsType<\"mat3x4\">,\n> extends DynoUniform<\"mat3x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x4\", value, update });\n }\n}\n\nexport class DynoMat4<\n K extends string,\n V extends DynoJsType<\"mat4\">,\n> extends DynoUniform<\"mat4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4\", value, update });\n }\n}\n\nexport class DynoMat4x2<\n K extends string,\n V extends DynoJsType<\"mat4x2\">,\n> extends DynoUniform<\"mat4x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x2\", value, update });\n }\n}\n\nexport class DynoMat4x3<\n K extends string,\n V extends DynoJsType<\"mat4x3\">,\n> extends DynoUniform<\"mat4x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x3\", value, update });\n }\n}\n\nexport class DynoMat4x4<\n K extends string,\n V extends DynoJsType<\"mat4x4\">,\n> extends DynoUniform<\"mat4x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x4\", value, update });\n }\n}\n\nexport class DynoUsampler2D<\n K extends string,\n V extends DynoJsType<\"usampler2D\">,\n> extends DynoUniform<\"usampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2D\", value, update });\n }\n}\n\nexport class DynoIsampler2D<\n K extends string,\n V extends DynoJsType<\"isampler2D\">,\n> extends DynoUniform<\"isampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2D\", value, update });\n }\n}\n\nexport class DynoSampler2D<\n K extends string,\n V extends DynoJsType<\"sampler2D\">,\n> extends DynoUniform<\"sampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2D\", value, update });\n }\n}\n\nexport class DynoUsampler2DArray<\n K extends string,\n V extends DynoJsType<\"usampler2DArray\">,\n> extends DynoUniform<\"usampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2DArray\", value, update });\n }\n}\n\nexport class DynoIsampler2DArray<\n K extends string,\n V extends DynoJsType<\"isampler2DArray\">,\n> extends DynoUniform<\"isampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2DArray\", value, update });\n }\n}\n\nexport class DynoSampler2DArray<\n K extends string,\n V extends DynoJsType<\"sampler2DArray\">,\n> extends DynoUniform<\"sampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArray\", value, update });\n }\n}\n\nexport class DynoUsampler3D<\n K extends string,\n V extends DynoJsType<\"usampler3D\">,\n> extends DynoUniform<\"usampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler3D\", value, update });\n }\n}\n\nexport class DynoIsampler3D<\n K extends string,\n V extends DynoJsType<\"isampler3D\">,\n> extends DynoUniform<\"isampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler3D\", value, update });\n }\n}\n\nexport class DynoSampler3D<\n K extends string,\n V extends DynoJsType<\"sampler3D\">,\n> extends DynoUniform<\"sampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler3D\", value, update });\n }\n}\n\nexport class DynoUsamplerCube<\n K extends string,\n V extends DynoJsType<\"usamplerCube\">,\n> extends DynoUniform<\"usamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usamplerCube\", value, update });\n }\n}\n\nexport class DynoIsamplerCube<\n K extends string,\n V extends DynoJsType<\"isamplerCube\">,\n> extends DynoUniform<\"isamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isamplerCube\", value, update });\n }\n}\n\nexport class DynoSamplerCube<\n K extends string,\n V extends DynoJsType<\"samplerCube\">,\n> extends DynoUniform<\"samplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCube\", value, update });\n }\n}\n\nexport class DynoSampler2DShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DShadow\">,\n> extends DynoUniform<\"sampler2DShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DShadow\", value, update });\n }\n}\n\nexport class DynoSampler2DArrayShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n> extends DynoUniform<\"sampler2DArrayShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArrayShadow\", value, update });\n }\n}\n\nexport class DynoSamplerCubeShadow<\n K extends string,\n V extends DynoJsType<\"samplerCubeShadow\">,\n> extends DynoUniform<\"samplerCubeShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCubeShadow\", value, update });\n }\n}\n","import * as THREE from \"three\";\n\nimport { IDENT_VERTEX_SHADER } from \"../utils\";\nimport { Compilation, type Dyno, type IOTypes } from \"./base\";\n\nexport class DynoProgram {\n graph: Dyno;\n template: DynoProgramTemplate;\n inputs: Record;\n outputs: Record;\n shader: string;\n uniforms: Record;\n updaters: (() => void)[];\n\n constructor({\n graph,\n inputs,\n outputs,\n template,\n consoleLog,\n }: {\n graph: Dyno;\n inputs?: Record;\n outputs?: Record;\n template: DynoProgramTemplate;\n consoleLog?: boolean;\n }) {\n this.graph = graph;\n this.template = template;\n this.inputs = inputs ?? {};\n this.outputs = outputs ?? {};\n\n const compile = new Compilation({ indent: this.template.indent });\n for (const key in this.outputs) {\n if (this.outputs[key]) {\n compile.declares.add(this.outputs[key]);\n }\n }\n const statements = graph.compile({\n inputs: this.inputs,\n outputs: this.outputs,\n compile,\n });\n\n this.shader = template.generate({ globals: compile.globals, statements });\n this.uniforms = compile.uniforms;\n this.updaters = compile.updaters;\n if (consoleLog) {\n console.log(\"*** COMPILED SHADER\", this.shader);\n console.log(\"*** UNIFORMS\", this.uniforms);\n }\n }\n\n prepareMaterial(): THREE.RawShaderMaterial {\n return getMaterial(this);\n }\n\n update() {\n for (const updater of this.updaters) {\n updater();\n }\n }\n}\n\nexport class DynoProgramTemplate {\n before: string;\n between: string;\n after: string;\n indent: string;\n\n constructor(template: string) {\n const globals = template.match(/^([ \\t]*)\\{\\{\\s*GLOBALS\\s*\\}\\}/m);\n const statements = template.match(/^([ \\t]*)\\{\\{\\s*STATEMENTS\\s*\\}\\}/m);\n if (!globals || !statements) {\n throw new Error(\n \"Template must contain {{ GLOBALS }} and {{ STATEMENTS }}\",\n );\n }\n\n this.before = template.substring(0, globals.index);\n this.between = template.substring(\n (globals.index as number) + globals[0].length,\n statements.index,\n );\n this.after = template.substring(\n (statements.index as number) + statements[0].length,\n );\n this.indent = statements[1];\n }\n\n generate({\n globals,\n statements,\n }: { globals: Set; statements: string[] }): string {\n return (\n this.before +\n Array.from(globals).join(\"\\n\\n\") +\n this.between +\n statements.map((s) => this.indent + s).join(\"\\n\") +\n this.after\n );\n }\n}\n\nconst programMaterial = new WeakMap();\n\nfunction getMaterial(program: DynoProgram): THREE.RawShaderMaterial {\n let material = programMaterial.get(program);\n if (material) {\n return material;\n }\n\n material = new THREE.RawShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: IDENT_VERTEX_SHADER,\n fragmentShader: program.shader,\n uniforms: program.uniforms,\n });\n programMaterial.set(program, material);\n return material;\n}\n","import {\n type AllFloatTypes,\n type AllIntTypes,\n type AllSignedTypes,\n type AllValueTypes,\n type BaseType,\n type BoolTypes,\n type FloatTypes,\n type IntTypes,\n type SignedTypes,\n type UintTypes,\n type ValueTypes,\n isAllFloatType,\n isFloatType,\n isIntType,\n isMat2,\n isMat3,\n isMat4,\n isUintType,\n} from \"./types\";\n\nexport type AddOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : never);\n\nexport type SubOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type MulOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : A extends IntTypes\n ? B extends A\n ? A\n : never\n : B extends IntTypes\n ? A extends B\n ? A\n : never\n : A extends UintTypes\n ? B extends A\n ? A\n : never\n : B extends UintTypes\n ? A extends B\n ? A\n : never\n : // Vector * Matrix/Vector\n A extends \"vec2\"\n ? B extends \"vec2\" | \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : B extends \"mat3x2\"\n ? \"vec3\"\n : B extends \"mat4x2\"\n ? \"vec4\"\n : never\n : A extends \"vec3\"\n ? B extends \"mat2x3\"\n ? \"vec2\"\n : B extends \"vec3\" | \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : B extends \"mat4x3\"\n ? \"vec4\"\n : never\n : A extends \"vec4\"\n ? B extends \"mat2x4\"\n ? \"vec2\"\n : B extends \"mat3x4\"\n ? \"vec3\"\n : B extends \"vec4\" | \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Vector\n B extends \"vec2\"\n ? A extends \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : A extends \"mat2x3\"\n ? \"vec3\"\n : A extends \"mat2x4\"\n ? \"vec4\"\n : never\n : B extends \"vec3\"\n ? A extends \"mat3x2\"\n ? \"vec2\"\n : A extends \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : A extends \"mat3x4\"\n ? \"vec4\"\n : never\n : B extends \"vec4\"\n ? A extends \"mat4x2\"\n ? \"vec2\"\n : A extends \"mat4x3\"\n ? \"vec3\"\n : A extends \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n A extends \"mat2\" | \"mat2x2\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2\"\n : B extends \"mat3x2\"\n ? \"mat3x2\"\n : B extends \"mat4x2\"\n ? \"mat4x2\"\n : never\n : A extends \"mat2x3\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x3\"\n : B extends \"mat3x2\"\n ? \"mat3\"\n : B extends \"mat4x2\"\n ? \"mat4x3\"\n : never\n : A extends \"mat2x4\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x4\"\n : B extends \"mat3x2\"\n ? \"mat3x4\"\n : B extends \"mat4x2\"\n ? \"mat4\"\n : never\n : A extends \"mat3x2\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x2\"\n : B extends \"mat4x3\"\n ? \"mat4x2\"\n : never\n : A extends \"mat3\" | \"mat3x3\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x3\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3\"\n : B extends \"mat4x3\"\n ? \"mat4x3\"\n : never\n : A extends \"mat3x4\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x4\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x4\"\n : B extends \"mat4x3\"\n ? \"mat4\"\n : never\n : A extends \"mat4x2\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2\"\n : B extends \"mat3x4\"\n ? \"mat3x2\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x2\"\n : never\n : A extends \"mat4x3\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x3\"\n : B extends \"mat3x4\"\n ? \"mat3\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x3\"\n : never\n : A extends \"mat4\" | \"mat4x4\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x4\"\n : B extends \"mat3x4\"\n ? \"mat3x4\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4\"\n : never\n : never);\n\nexport type DivOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type IModOutput<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\n\nexport type ModOutput = BaseType &\n (A extends B ? A : B extends \"float\" ? A : never);\n\nexport type PowOutput = BaseType &\n (A extends B ? A : never);\n\nexport type MinOutput = BaseType &\n (A extends B\n ? A\n : B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MaxOutput = MinOutput<\n A,\n B\n>;\nexport type ClampOutput = BaseType &\n (B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MixOutput<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> = BaseType &\n (T extends A\n ? A\n : T extends \"float\"\n ? A\n : T extends \"bool\"\n ? A extends \"float\"\n ? A\n : never\n : T extends \"bvec2\"\n ? A extends \"vec2\"\n ? A\n : never\n : T extends \"bvec3\"\n ? A extends \"vec3\"\n ? A\n : never\n : T extends \"bvec4\"\n ? A extends \"vec4\"\n ? A\n : never\n : never);\nexport type StepOutput = BaseType &\n (A extends B ? B : A extends \"float\" ? B : never);\nexport type SmoothstepOutput<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n> = BaseType &\n (A extends B ? (A extends C ? C : A extends \"float\" ? C : never) : never);\n\nexport type IsNanOutput = BaseType &\n (A extends \"float\"\n ? \"bool\"\n : A extends \"vec2\"\n ? \"bvec2\"\n : A extends \"vec3\"\n ? \"bvec3\"\n : A extends \"vec4\"\n ? \"bvec4\"\n : never);\nexport type IsInfOutput = IsNanOutput;\n\n// // Run-time type helper functions\n\nexport function addOutputType(\n a: A,\n b: B,\n operation = \"add\",\n): AddOutput {\n const error = () => {\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n };\n // @ts-ignore\n if (a === b) return a as AddOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as AddOutput;\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return a as AddOutput;\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return b as AddOutput;\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return a as AddOutput;\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return b as AddOutput;\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return a as AddOutput;\n error();\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function subOutputType(\n a: A,\n b: B,\n): SubOutput {\n return addOutputType(a, b, \"sub\");\n}\n\nexport function mulOutputType(\n a: A,\n b: B,\n): MulOutput {\n const error = () => {\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n };\n const result = (value: unknown) => value as MulOutput;\n if (a === \"int\") {\n if (isIntType(b)) return result(b);\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return result(a);\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return result(b);\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return result(a);\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return result(b);\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return result(a);\n error();\n }\n if (isIntType(a) || isUintType(a) || isIntType(b) || isUintType(b)) {\n // @ts-ignore\n if (a === b) return result(a);\n error();\n }\n // Vector * Matrix/Vector\n if (a === \"vec2\") {\n if (b === \"vec2\" || isMat2(b)) return result(\"vec2\");\n if (b === \"mat3x2\") return result(\"vec3\");\n if (b === \"mat4x2\") return result(\"vec4\");\n error();\n }\n if (a === \"vec3\") {\n if (b === \"mat2x3\") return result(\"vec2\");\n if (b === \"vec3\" || isMat3(b)) return result(\"vec3\");\n if (b === \"mat4x3\") return result(\"vec4\");\n error();\n }\n if (a === \"vec4\") {\n if (b === \"mat2x4\") return result(\"vec2\");\n if (b === \"mat3x4\") return result(\"vec3\");\n if (b === \"vec4\" || isMat4(b)) return result(\"vec4\");\n error();\n }\n // Matrix * Vector\n if (b === \"vec2\") {\n if (isMat2(a)) return result(\"vec2\");\n if (a === \"mat2x3\") return result(\"vec3\");\n if (a === \"mat2x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec3\") {\n if (a === \"mat3x2\") return result(\"vec2\");\n if (isMat3(a)) return result(\"vec3\");\n if (a === \"mat3x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec4\") {\n if (a === \"mat4x2\") return result(\"vec2\");\n if (a === \"mat4x3\") return result(\"vec3\");\n if (isMat4(a)) return result(\"vec4\");\n error();\n }\n // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n if (isMat2(a)) {\n if (isMat2(b)) return result(\"mat2\");\n if (b === \"mat3x2\") return result(\"mat3x2\");\n if (b === \"mat4x2\") return result(\"mat4x2\");\n error();\n }\n if (a === \"mat2x3\") {\n if (isMat2(b)) return result(\"mat2x3\");\n if (b === \"mat3x2\") return result(\"mat3\");\n if (b === \"mat4x2\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat2x4\") {\n if (isMat2(b)) return result(\"mat2x4\");\n if (b === \"mat3x2\") return result(\"mat3x4\");\n if (b === \"mat4x2\") return result(\"mat4\");\n error();\n }\n if (a === \"mat3x2\") {\n if (b === \"mat2x3\") return result(\"mat2\");\n if (isMat3(b)) return result(\"mat3x2\");\n if (b === \"mat4x3\") return result(\"mat4x2\");\n error();\n }\n if (isMat3(a)) {\n if (b === \"mat2x3\") return result(\"mat2x3\");\n if (isMat3(b)) return result(\"mat3\");\n if (b === \"mat4x3\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat3x4\") {\n if (b === \"mat2x3\") return result(\"mat2x4\");\n if (isMat3(b)) return result(\"mat3x4\");\n if (b === \"mat4x3\") return result(\"mat4\");\n error();\n }\n if (a === \"mat4x2\") {\n if (b === \"mat2x4\") return result(\"mat2\");\n if (b === \"mat3x4\") return result(\"mat3x2\");\n if (isMat4(b)) return result(\"mat4x2\");\n error();\n }\n if (a === \"mat4x3\") {\n if (b === \"mat2x4\") return result(\"mat2x3\");\n if (b === \"mat3x4\") return result(\"mat3\");\n if (isMat4(b)) return result(\"mat4x3\");\n error();\n }\n if (isMat4(a)) {\n if (b === \"mat2x4\") return result(\"mat2x4\");\n if (b === \"mat3x4\") return result(\"mat3x4\");\n if (isMat4(b)) return result(\"mat4\");\n error();\n }\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n}\n\nexport function divOutputType(\n a: A,\n b: B,\n): DivOutput {\n return addOutputType(a, b, \"div\");\n}\n\nexport function imodOutputType(\n a: A,\n b: B,\n): IModOutput {\n // @ts-ignore\n if (a === b) return a as IModOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as IModOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as IModOutput;\n } else if (a === \"uint\") {\n if (isUintType(b)) return b as IModOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as IModOutput;\n }\n throw new Error(`Invalid imod types: ${a}, ${b}`);\n}\n\nexport function modOutputType(\n a: A,\n b: B,\n): ModOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return a as ModOutput;\n throw new Error(`Invalid mod types: ${a}, ${b}`);\n}\n\nexport function modfOutputType(a: A): A {\n return a;\n}\n\nexport function negOutputType(a: A): A {\n return a;\n}\n\nexport function absOutputType(a: A): A {\n return a;\n}\n\nexport function signOutputType(a: A): A {\n return a;\n}\n\nexport function floorOutputType(a: A): A {\n return a;\n}\n\nexport function ceilOutputType(a: A): A {\n return a;\n}\n\nexport function truncOutputType(a: A): A {\n return a;\n}\n\nexport function roundOutputType(a: A): A {\n return a;\n}\n\nexport function fractOutputType(a: A): A {\n return a;\n}\n\nexport function powOutputType(a: A): A {\n return a;\n}\n\nexport function expOutputType(a: A): A {\n return a;\n}\n\nexport function exp2OutputType(a: A): A {\n return a;\n}\n\nexport function logOutputType(a: A): A {\n return a;\n}\n\nexport function log2OutputType(a: A): A {\n return a;\n}\n\nexport function sqrOutputType(a: A): A {\n return a;\n}\n\nexport function sqrtOutputType(a: A): A {\n return a;\n}\n\nexport function inversesqrtOutputType(a: A): A {\n return a;\n}\n\nexport function minOutputType(\n a: A,\n b: B,\n operation = \"min\",\n): MinOutput {\n // @ts-ignore\n if (a === b) return a as MinOutput;\n if (b === \"float\") {\n if (isFloatType(a)) return a as MinOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as MinOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as MinOutput;\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function maxOutputType(\n a: A,\n b: B,\n): MaxOutput {\n return minOutputType(a, b, \"max\");\n}\n\nexport function clampOutputType(\n a: A,\n b: B,\n _c: B,\n): ClampOutput {\n if (b === \"float\") {\n if (isFloatType(a)) return a as ClampOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as ClampOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as ClampOutput;\n }\n throw new Error(`Invalid clamp types: ${a}, ${b}`);\n}\n\nexport function mixOutputType<\n A extends FloatTypes,\n C extends FloatTypes | BoolTypes,\n>(a: A, b: A, c: C): MixOutput {\n // @ts-ignore\n if (c === a) return a as MixOutput;\n if (c === \"float\") return a as MixOutput;\n if (c === \"bool\" && a === \"float\") return a as MixOutput;\n if (c === \"bvec2\" && a === \"vec2\") return a as MixOutput;\n if (c === \"bvec3\" && a === \"vec3\") return a as MixOutput;\n if (c === \"bvec4\" && a === \"vec4\") return a as MixOutput;\n throw new Error(`Invalid mix types: ${a}, ${b}, ${c}`);\n}\n\nexport function stepOutputType(\n a: A,\n b: B,\n): StepOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return b as StepOutput;\n throw new Error(`Invalid step types: ${a}, ${b}`);\n}\n\nexport function smoothstepOutputType<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n>(a: A, b: B, c: C): SmoothstepOutput {\n // @ts-ignore\n if (a === b) {\n if (a === c || a === \"float\") return c as SmoothstepOutput;\n }\n throw new Error(`Invalid smoothstep types: ${a}, ${b}, ${c}`);\n}\n\nexport function isNanOutputType(\n a: A,\n operation = \"isNan\",\n): IsNanOutput {\n if (a === \"float\") return \"bool\" as IsNanOutput;\n if (a === \"vec2\") return \"bvec2\" as IsNanOutput;\n if (a === \"vec3\") return \"bvec3\" as IsNanOutput;\n if (a === \"vec4\") return \"bvec4\" as IsNanOutput;\n throw new Error(`Invalid ${operation} types: ${a}`);\n}\n\nexport function isInfOutputType(a: A): IsInfOutput {\n return isNanOutputType(a, \"isInf\");\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AddOutput,\n type ClampOutput,\n type DivOutput,\n type IModOutput,\n type IsInfOutput,\n type IsNanOutput,\n type MaxOutput,\n type MinOutput,\n type MixOutput,\n type ModOutput,\n type MulOutput,\n type SmoothstepOutput,\n type StepOutput,\n type SubOutput,\n absOutputType,\n addOutputType,\n ceilOutputType,\n clampOutputType,\n divOutputType,\n exp2OutputType,\n expOutputType,\n floorOutputType,\n fractOutputType,\n imodOutputType,\n inversesqrtOutputType,\n isInfOutputType,\n isNanOutputType,\n log2OutputType,\n logOutputType,\n maxOutputType,\n minOutputType,\n mixOutputType,\n modOutputType,\n modfOutputType,\n mulOutputType,\n negOutputType,\n powOutputType,\n roundOutputType,\n signOutputType,\n smoothstepOutputType,\n sqrOutputType,\n sqrtOutputType,\n stepOutputType,\n subOutputType,\n truncOutputType,\n} from \"./mathTypes\";\nimport type {\n AllIntTypes,\n AllSignedTypes,\n AllValueTypes,\n BoolTypes,\n FloatTypes,\n SignedTypes,\n ValueTypes,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const add = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Add({ a, b });\nexport const sub = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Sub({ a, b });\nexport const mul = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mul({ a, b });\nexport const div = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Div({ a, b });\nexport const imod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new IMod({ a, b });\nexport const mod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mod({ a, b });\nexport const modf = (a: DynoVal) =>\n new Modf({ a }).outputs;\n\nexport const neg = (a: DynoVal): DynoVal =>\n new Neg({ a });\nexport const abs = (a: DynoVal): DynoVal =>\n new Abs({ a });\nexport const sign = (a: DynoVal): DynoVal =>\n new Sign({ a });\nexport const floor = (a: DynoVal): DynoVal =>\n new Floor({ a });\nexport const ceil = (a: DynoVal): DynoVal =>\n new Ceil({ a });\nexport const trunc = (a: DynoVal): DynoVal =>\n new Trunc({ a });\nexport const round = (a: DynoVal): DynoVal =>\n new Round({ a });\nexport const fract = (a: DynoVal): DynoVal =>\n new Fract({ a });\n\nexport const pow = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Pow({ a, b });\nexport const exp = (a: DynoVal): DynoVal =>\n new Exp({ a });\nexport const exp2 = (a: DynoVal): DynoVal =>\n new Exp2({ a });\nexport const log = (a: DynoVal): DynoVal =>\n new Log({ a });\nexport const log2 = (a: DynoVal): DynoVal =>\n new Log2({ a });\nexport const sqr = (a: DynoVal): DynoVal =>\n new Sqr({ a });\nexport const sqrt = (a: DynoVal): DynoVal =>\n new Sqrt({ a });\nexport const inversesqrt = (a: DynoVal): DynoVal =>\n new InverseSqrt({ a });\n\nexport const min = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Min({ a, b });\nexport const max = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Max({ a, b });\nexport const clamp = (\n a: DynoVal,\n min: DynoVal,\n max: DynoVal,\n): DynoVal> => new Clamp({ a, min, max });\nexport const mix = (\n a: DynoVal,\n b: DynoVal,\n t: DynoVal,\n): DynoVal> => new Mix({ a, b, t });\nexport const step = (\n edge: DynoVal,\n x: DynoVal,\n): DynoVal> => new Step({ edge, x });\nexport const smoothstep = (\n edge0: DynoVal,\n edge1: DynoVal,\n x: DynoVal,\n): DynoVal> =>\n new Smoothstep({ edge0, edge1, x });\n\nexport const isNan = (\n a: DynoVal,\n): DynoVal> => new IsNan({ a });\nexport const isInf = (\n a: DynoVal,\n): DynoVal> => new IsInf({ a });\n\nexport class Add<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"sum\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"sum\", outTypeFunc: addOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sum} = ${inputs.a} + ${inputs.b};`];\n };\n }\n}\n\nexport class Sub<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"difference\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"difference\", outTypeFunc: subOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.difference} = ${inputs.a} - ${inputs.b};`];\n };\n }\n}\n\nexport class Mul<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"product\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: mulOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.product} = ${inputs.a} * ${inputs.b};`];\n };\n }\n}\n\nexport class Div<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"quotient\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"quotient\", outTypeFunc: divOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.quotient} = ${inputs.a} / ${inputs.b};`];\n };\n }\n}\n\nexport class IMod<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> extends BinaryOp, \"remainder\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: imodOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = ${inputs.a} % ${inputs.b};`];\n };\n }\n}\n\nexport class Mod extends BinaryOp<\n A,\n B,\n ModOutput,\n \"remainder\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: modOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = mod(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Modf extends Dyno<\n { a: A },\n { fract: A; integer: A }\n> {\n constructor({ a }: { a: DynoVal }) {\n const inTypes = { a: valType(a) };\n const outType = modfOutputType(inTypes.a);\n const outTypes = {\n fract: outType,\n integer: outType,\n };\n super({ inTypes, outTypes, inputs: { a } });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = modf(${inputs.a}, ${outputs.integer});`];\n };\n }\n}\n\nexport class Neg extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"neg\", outTypeFunc: negOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.neg} = -${inputs.a};`];\n };\n }\n}\n\nexport class Abs extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"abs\", outTypeFunc: absOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.abs} = abs(${inputs.a});`];\n };\n }\n}\n\nexport class Sign extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sign\", outTypeFunc: signOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sign} = sign(${inputs.a});`];\n };\n }\n}\n\nexport class Floor extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"floor\", outTypeFunc: floorOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.floor} = floor(${inputs.a});`];\n };\n }\n}\n\nexport class Ceil extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"ceil\", outTypeFunc: ceilOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.ceil} = ceil(${inputs.a});`];\n };\n }\n}\n\nexport class Trunc extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"trunc\", outTypeFunc: truncOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.trunc} = trunc(${inputs.a});`];\n };\n }\n}\n\nexport class Round extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"round\", outTypeFunc: roundOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.round} = round(${inputs.a});`];\n };\n }\n}\n\nexport class Fract extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"fract\", outTypeFunc: fractOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = fract(${inputs.a});`];\n };\n }\n}\n\nexport class Pow extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"power\", outTypeFunc: powOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.power} = pow(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Exp extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp\", outTypeFunc: expOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp} = exp(${inputs.a});`];\n };\n }\n}\n\nexport class Exp2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp2\", outTypeFunc: exp2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp2} = exp2(${inputs.a});`];\n };\n }\n}\n\nexport class Log extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log\", outTypeFunc: logOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log} = log(${inputs.a});`];\n };\n }\n}\n\nexport class Log2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log2\", outTypeFunc: log2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log2} = log2(${inputs.a});`];\n };\n }\n}\n\nexport class Sqr extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqr\", outTypeFunc: sqrOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqr} = ${inputs.a} * ${inputs.a};`];\n };\n }\n}\n\nexport class Sqrt extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqrt\", outTypeFunc: sqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqrt} = sqrt(${inputs.a});`];\n };\n }\n}\n\nexport class InverseSqrt extends UnaryOp<\n A,\n A,\n \"inversesqrt\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inversesqrt\", outTypeFunc: inversesqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.inversesqrt} = inversesqrt(${inputs.a});`];\n };\n }\n}\n\nexport class Min extends BinaryOp<\n A,\n B,\n MinOutput,\n \"min\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"min\", outTypeFunc: minOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.min} = min(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Max extends BinaryOp<\n A,\n B,\n MaxOutput,\n \"max\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"max\", outTypeFunc: maxOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.max} = max(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Clamp<\n A extends ValueTypes,\n MinMax extends ValueTypes,\n> extends TrinaryOp, \"clamp\"> {\n constructor({\n a,\n min,\n max,\n }: { a: DynoVal; min: DynoVal; max: DynoVal }) {\n super({\n a,\n b: min,\n c: max,\n outKey: \"clamp\",\n outTypeFunc: clampOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a, b: min, c: max } = inputs;\n return [`${outputs.clamp} = clamp(${a}, ${min}, ${max});`];\n };\n }\n}\n\nexport class Mix<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> extends TrinaryOp, \"mix\"> {\n constructor({ a, b, t }: { a: DynoVal; b: DynoVal; t: DynoVal }) {\n super({ a, b, c: t, outKey: \"mix\", outTypeFunc: mixOutputType });\n this.statements = ({ inputs, outputs }) => {\n const { a, b, c: t } = inputs;\n return [`${outputs.mix} = mix(${a}, ${b}, ${t});`];\n };\n }\n}\n\nexport class Step<\n Edge extends FloatTypes,\n X extends FloatTypes,\n> extends BinaryOp, \"step\"> {\n constructor({ edge, x }: { edge: DynoVal; x: DynoVal }) {\n super({\n a: edge,\n b: x,\n outKey: \"step\",\n outTypeFunc: stepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge, b: x } = inputs;\n return [`${outputs.step} = step(${edge}, ${x});`];\n };\n }\n}\n\nexport class Smoothstep<\n X extends FloatTypes,\n Edge extends X | \"float\",\n> extends TrinaryOp<\n Edge,\n Edge,\n X,\n SmoothstepOutput,\n \"smoothstep\"\n> {\n constructor({\n edge0,\n edge1,\n x,\n }: { edge0: DynoVal; edge1: DynoVal; x: DynoVal }) {\n super({\n a: edge0,\n b: edge1,\n c: x,\n outKey: \"smoothstep\",\n outTypeFunc: smoothstepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge0, b: edge1, c: x } = inputs;\n return [`${outputs.smoothstep} = smoothstep(${edge0}, ${edge1}, ${x});`];\n };\n }\n}\n\nexport class IsNan extends UnaryOp<\n A,\n IsNanOutput,\n \"isNan\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isNan\", outTypeFunc: isNanOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isNan} = isNan(${inputs.a});`];\n };\n }\n}\n\nexport class IsInf extends UnaryOp<\n A,\n IsInfOutput,\n \"isInf\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isInf\", outTypeFunc: isInfOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isInf} = isInf(${inputs.a});`];\n };\n }\n}\n","import { BinaryOp, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AllIntTypes,\n type BoolTypes,\n type IntTypes,\n type ScalarTypes,\n type SimpleTypes,\n type UintTypes,\n type ValueTypes,\n isBoolType,\n isIntType,\n isScalarType,\n isUintType,\n isVector2Type,\n isVector3Type,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const and = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new And({ a, b });\nexport const or = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Or({ a, b });\nexport const xor = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Xor({ a, b });\nexport const not = (\n a: DynoVal,\n): DynoVal => new Not({ a });\n\nexport const shr = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shr({ a, b });\n\nexport const shl = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shl({ a, b });\n\nexport const lessThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThan({ a, b });\nexport const lessThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThanEqual({ a, b });\nexport const greaterThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThan({ a, b });\nexport const greaterThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThanEqual({ a, b });\nexport const equal = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Equal({ a, b });\nexport const notEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new NotEqual({ a, b });\n\nexport const any = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new Any({ a });\nexport const all = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new All({ a });\nexport const select = (\n cond: DynoVal<\"bool\">,\n t: DynoVal,\n f: DynoVal,\n): DynoVal => new Select({ cond, t, f });\n\nexport const compXor = (\n a: DynoVal,\n): DynoVal> => new CompXor({ a });\n\nexport class And extends BinaryOp<\n T,\n T,\n T,\n \"and\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"and\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.and === \"bool\") {\n return [`${outputs.and} = ${inputs.a} && ${inputs.b};`];\n }\n return [`${outputs.and} = ${inputs.a} & ${inputs.b};`];\n };\n }\n}\n\nexport class Or extends BinaryOp<\n T,\n T,\n T,\n \"or\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"or\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.or === \"bool\") {\n return [`${outputs.or} = ${inputs.a} || ${inputs.b};`];\n }\n return [`${outputs.or} = ${inputs.a} | ${inputs.b};`];\n };\n }\n}\n\nexport class Xor extends BinaryOp<\n T,\n T,\n T,\n \"xor\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"xor\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.xor === \"bool\") {\n return [`${outputs.xor} = ${inputs.a} ^^ ${inputs.b};`];\n }\n return [`${outputs.xor} = ${inputs.a} ^ ${inputs.b};`];\n };\n }\n}\n\nexport class Not extends UnaryOp<\n T,\n T,\n \"not\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => aType, outKey: \"not\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.not === \"bool\") {\n return [`${outputs.not} = !${inputs.a};`];\n }\n return [`${outputs.not} = not(${inputs.a});`];\n };\n }\n}\n\nexport class LessThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) => compareOutputType(aType, \"lessThan\"),\n outKey: \"lessThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThan === \"bool\") {\n return [`${outputs.lessThan} = ${inputs.a} < ${inputs.b};`];\n }\n return [`${outputs.lessThan} = lessThan(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class LessThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"lessThanEqual\"),\n outKey: \"lessThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThanEqual === \"bool\") {\n return [`${outputs.lessThanEqual} = ${inputs.a} <= ${inputs.b};`];\n }\n return [\n `${outputs.lessThanEqual} = lessThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThan\"),\n outKey: \"greaterThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThan === \"bool\") {\n return [`${outputs.greaterThan} = ${inputs.a} > ${inputs.b};`];\n }\n return [\n `${outputs.greaterThan} = greaterThan(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThanEqual\"),\n outKey: \"greaterThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThanEqual === \"bool\") {\n return [`${outputs.greaterThanEqual} = ${inputs.a} >= ${inputs.b};`];\n }\n return [\n `${outputs.greaterThanEqual} = greaterThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class Equal extends BinaryOp<\n T,\n T,\n EqualOutput,\n \"equal\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: equalOutputType, outKey: \"equal\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.equal === \"bool\") {\n return [`${outputs.equal} = ${inputs.a} == ${inputs.b};`];\n }\n return [`${outputs.equal} = equal(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class NotEqual extends BinaryOp<\n T,\n T,\n NotEqualOutput,\n \"notEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: notEqualOutputType, outKey: \"notEqual\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.notEqual === \"bool\") {\n return [`${outputs.notEqual} = ${inputs.a} != ${inputs.b};`];\n }\n return [`${outputs.notEqual} = notEqual(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Any extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"any\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.any} = any(${inputs.a});`];\n };\n }\n}\n\nexport class All extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"all\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.all} = all(${inputs.a});`];\n };\n }\n}\n\nexport class Select extends TrinaryOp<\n \"bool\",\n T,\n T,\n T,\n \"select\"\n> {\n constructor({\n cond,\n t,\n f,\n }: { cond: DynoVal<\"bool\">; t: DynoVal; f: DynoVal }) {\n super({\n a: cond,\n b: t,\n c: f,\n outKey: \"select\",\n outTypeFunc: (aType: \"bool\", bType: T, cType: T) => bType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: cond, b: t, c: f } = inputs;\n return [`${outputs.select} = (${cond}) ? (${t}) : (${f});`];\n };\n }\n}\n\ntype CompareOutput = T extends ScalarTypes\n ? \"bool\"\n : T extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : T extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : T extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction compareOutputType(\n type: T,\n operator: string,\n): CompareOutput {\n if (isScalarType(type)) {\n return \"bool\" as CompareOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as CompareOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as CompareOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as CompareOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype EqualOutput = A extends ScalarTypes\n ? \"bool\"\n : A extends BoolTypes\n ? A\n : A extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : A extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : A extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction equalOutputType(\n type: A,\n operator = \"equal\",\n): EqualOutput {\n if (isScalarType(type)) {\n return \"bool\" as EqualOutput;\n }\n if (isBoolType(type)) {\n return type as EqualOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as EqualOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as EqualOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as EqualOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype NotEqualOutput = EqualOutput;\n\nfunction notEqualOutputType(\n type: A,\n): NotEqualOutput {\n return equalOutputType(type, \"notEqual\");\n}\n\ntype CompXorOutput = A extends BoolTypes\n ? \"bool\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nfunction compXorOutputType(\n type: A,\n): CompXorOutput {\n if (isBoolType(type)) {\n return \"bool\" as CompXorOutput;\n }\n if (isIntType(type)) {\n return \"int\" as CompXorOutput;\n }\n if (isUintType(type)) {\n return \"uint\" as CompXorOutput;\n }\n throw new Error(`Invalid compXor type: ${type}`);\n}\n\nexport class CompXor extends UnaryOp<\n T,\n CompXorOutput,\n \"compXor\"\n> {\n constructor({ a }: { a: DynoVal }) {\n const outType = compXorOutputType(valType(a));\n super({ a, outTypeFunc: (aType: T) => outType, outKey: \"compXor\" });\n this.statements = ({ inputs, outputs }) => {\n if (isScalarType(this.outTypes.compXor)) {\n return [`${outputs.compXor} = ${inputs.a};`];\n }\n const components = isVector2Type(outType)\n ? [\"x\", \"y\"]\n : isVector3Type(outType)\n ? [\"x\", \"y\", \"z\"]\n : [\"x\", \"y\", \"z\", \"w\"];\n const operands = components.map((c) => `${inputs.a}.${c}`);\n const operator = isBoolType(outType) ? \"^^\" : \"^\";\n return [`${outputs.compXor} = ${operands.join(` ${operator} `)};`];\n };\n }\n}\n\nexport class Shr extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shr\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shr} = ${inputs.a} >> ${inputs.b};`];\n };\n }\n}\n\nexport class Shl extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shl\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shl} = ${inputs.a} << ${inputs.b};`];\n };\n }\n}\n","import { UnaryOp } from \"./base\";\nimport { type SimpleTypes, typeLiteral } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const bool = (\n value: DynoVal,\n): DynoVal<\"bool\"> => new Bool({ value });\nexport const int = (\n value: DynoVal,\n): DynoVal<\"int\"> => new Int({ value });\nexport const uint = (\n value: DynoVal,\n): DynoVal<\"uint\"> => new Uint({ value });\nexport const float = (\n value: DynoVal,\n): DynoVal<\"float\"> => new Float({ value });\n\nexport const bvec2 = (\n value: DynoVal,\n): DynoVal<\"bvec2\"> => new BVec2({ value });\nexport const bvec3 = (\n value: DynoVal,\n): DynoVal<\"bvec3\"> => new BVec3({ value });\nexport const bvec4 = (\n value: DynoVal,\n): DynoVal<\"bvec4\"> => new BVec4({ value });\n\nexport const ivec2 = (\n value: DynoVal,\n): DynoVal<\"ivec2\"> => new IVec2({ value });\nexport const ivec3 = (\n value: DynoVal,\n): DynoVal<\"ivec3\"> => new IVec3({ value });\nexport const ivec4 = (\n value: DynoVal,\n): DynoVal<\"ivec4\"> => new IVec4({ value });\n\nexport const uvec2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => new UVec2({ value });\nexport const uvec3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => new UVec3({ value });\nexport const uvec4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => new UVec4({ value });\n\nexport const vec2 = <\n T extends \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec2\"> => new Vec2({ value });\nexport const vec3 = <\n T extends \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec3\"> => new Vec3({ value });\nexport const vec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => new Vec4({ value });\n\nexport const mat2 = (\n value: DynoVal,\n): DynoVal<\"mat2\"> => new Mat2({ value });\nexport const mat3 = (\n value: DynoVal,\n): DynoVal<\"mat3\"> => new Mat3({ value });\nexport const mat4 = (\n value: DynoVal,\n): DynoVal<\"mat4\"> => new Mat4({ value });\n\nexport const floatBitsToInt = (value: DynoVal<\"float\">): DynoVal<\"int\"> =>\n new FloatBitsToInt({ value });\nexport const floatBitsToUint = (value: DynoVal<\"float\">): DynoVal<\"uint\"> =>\n new FloatBitsToUint({ value });\nexport const intBitsToFloat = (value: DynoVal<\"int\">): DynoVal<\"float\"> =>\n new IntBitsToFloat({ value });\nexport const uintBitsToFloat = (value: DynoVal<\"uint\">): DynoVal<\"float\"> =>\n new UintBitsToFloat({ value });\n\nexport const packSnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackSnorm2x16({ value });\nexport const unpackSnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackSnorm2x16({ value });\nexport const packUnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackUnorm2x16({ value });\nexport const unpackUnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackUnorm2x16({ value });\n\nexport const packHalf2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackHalf2x16({ value });\nexport const unpackHalf2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackHalf2x16({ value });\n\nexport const uintToRgba8 = (value: DynoVal<\"uint\">): DynoVal<\"vec4\"> =>\n new UintToRgba8({ value });\n\nexport class SimpleCast<\n Allowed extends SimpleTypes,\n OutType extends SimpleTypes,\n OutKey extends string,\n> extends UnaryOp {\n constructor({\n value,\n outType,\n outKey,\n }: { value: DynoVal; outType: OutType; outKey: OutKey }) {\n super({ a: value, outTypeFunc: () => outType, outKey });\n this.statements = ({ inputs, outputs }) => [\n `${outputs[outKey]} = ${typeLiteral(outType)}(${inputs.a});`,\n ];\n }\n}\n\nexport class Bool extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"bool\",\n \"bool\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"bool\", outKey: \"bool\" });\n }\n}\n\nexport class Int extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"int\",\n \"int\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"int\", outKey: \"int\" });\n }\n}\n\nexport class Uint extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"uint\",\n \"uint\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"uint\", outKey: \"uint\" });\n }\n}\n\nexport class Float extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"float\",\n \"float\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"float\", outKey: \"float\" });\n }\n}\n\nexport class BVec2 extends SimpleCast<\n \"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"bvec2\",\n \"bvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"bvec2\", outKey: \"bvec2\" });\n }\n}\n\nexport class BVec3 extends SimpleCast<\n \"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"bvec3\",\n \"bvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"bvec3\", outKey: \"bvec3\" });\n }\n}\n\nexport class BVec4 extends SimpleCast<\n \"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"bvec4\",\n \"bvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"bvec4\", outKey: \"bvec4\" });\n }\n}\n\nexport class IVec2 extends SimpleCast<\n \"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"ivec2\",\n \"ivec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"ivec2\", outKey: \"ivec2\" });\n }\n}\n\nexport class IVec3 extends SimpleCast<\n \"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"ivec3\",\n \"ivec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"ivec3\", outKey: \"ivec3\" });\n }\n}\n\nexport class IVec4 extends SimpleCast<\n \"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"ivec4\",\n \"ivec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"ivec4\", outKey: \"ivec4\" });\n }\n}\n\nexport class UVec2 extends SimpleCast<\n \"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\",\n \"uvec2\",\n \"uvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"uvec2\", outKey: \"uvec2\" });\n }\n}\n\nexport class UVec3 extends SimpleCast<\n \"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\",\n \"uvec3\",\n \"uvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"uvec3\", outKey: \"uvec3\" });\n }\n}\n\nexport class UVec4 extends SimpleCast<\n \"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\",\n \"uvec4\",\n \"uvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"uvec4\", outKey: \"uvec4\" });\n }\n}\n\nexport class Vec2 extends SimpleCast<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n \"vec2\",\n \"vec2\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec2\", outKey: \"vec2\" });\n }\n}\n\nexport class Vec3 extends SimpleCast<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\",\n \"vec3\",\n \"vec3\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec3\", outKey: \"vec3\" });\n }\n}\n\nexport class Vec4 extends SimpleCast<\n \"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"vec4\",\n \"vec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"vec4\", outKey: \"vec4\" });\n }\n}\n\nexport class Mat2 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat2\",\n \"mat2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat2\", outKey: \"mat2\" });\n }\n}\n\nexport class Mat3 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat3\",\n \"mat3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat3\", outKey: \"mat3\" });\n }\n}\n\nexport class Mat4 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat4\",\n \"mat4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat4\", outKey: \"mat4\" });\n }\n}\n\nexport class FloatBitsToInt extends UnaryOp<\"float\", \"int\", \"int\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"int\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.int} = floatBitsToInt(${inputs.a});`];\n };\n }\n}\n\nexport class FloatBitsToUint extends UnaryOp<\"float\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = floatBitsToUint(${inputs.a});`];\n };\n }\n}\n\nexport class IntBitsToFloat extends UnaryOp<\"int\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"int\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = intBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class UintBitsToFloat extends UnaryOp<\"uint\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = uintBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class PackSnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackSnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackUnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackUnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackHalf2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackHalf2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UintToRgba8 extends UnaryOp<\"uint\", \"vec4\", \"rgba8\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"rgba8\", outTypeFunc: () => \"vec4\" });\n this.statements = ({ inputs, outputs }) => {\n return [\n `uvec4 uRgba = uvec4(${inputs.a} & 0xffu, (${inputs.a} >> 8u) & 0xffu, (${inputs.a} >> 16u) & 0xffu, (${inputs.a} >> 24u) & 0xffu);`,\n `${outputs.rgba8} = vec4(uRgba) / 255.0;`,\n ];\n };\n }\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type FloatTypes,\n type IntTypes,\n type MatFloatTypes,\n type SquareMatTypes,\n type UintTypes,\n type VectorElementType,\n type VectorTypes,\n isFloatType,\n isIntType,\n isUintType,\n vectorDim,\n vectorElementType,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n literalZero,\n valType,\n} from \"./value\";\n\nexport const length = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Length({ a });\nexport const distance = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Distance({ a, b });\nexport const dot = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Dot({ a, b });\nexport const cross = (\n a: DynoVal<\"vec3\">,\n b: DynoVal<\"vec3\">,\n): DynoVal<\"vec3\"> => new Cross({ a, b });\nexport const normalize = (\n a: DynoVal,\n): DynoVal => new Normalize({ a });\nexport const faceforward = (\n a: DynoVal,\n b: DynoVal,\n c: DynoVal,\n): DynoVal => new FaceForward({ a, b, c });\nexport const reflectVec = (\n incident: DynoVal,\n normal: DynoVal,\n): DynoVal => new ReflectVec({ incident, normal });\nexport const refractVec = (\n incident: DynoVal,\n normal: DynoVal,\n eta: DynoVal<\"float\">,\n): DynoVal => new RefractVec({ incident, normal, eta });\nexport const split = (vector: DynoVal): Split =>\n new Split({ vector });\nexport const combine = >({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n}: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n}): DynoVal => new Combine({ vector, vectorType, x, y, z, w, r, g, b, a });\nexport const projectH = (\n a: DynoVal,\n): DynoVal> => new ProjectH({ a });\nexport const extendVec = (\n a: DynoVal,\n b: DynoVal<\"float\">,\n): DynoVal> => new ExtendVec({ a, b });\nexport const swizzle = (\n a: DynoVal,\n select: S,\n): DynoVal>> =>\n new Swizzle({ vector: a, select });\nexport const compMult = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new CompMult({ a, b });\nexport const outer = <\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Outer({ a, b });\nexport const transpose = (\n a: DynoVal,\n): DynoVal> => new Transpose({ a });\nexport const determinant = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Determinant({ a });\nexport const inverse = (a: DynoVal): DynoVal =>\n new Inverse({ a });\n\nexport class Length extends UnaryOp<\n A,\n \"float\",\n \"length\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => \"float\", outKey: \"length\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.length} = length(${inputs.a});`,\n ];\n }\n}\n\nexport class Distance extends BinaryOp<\n A,\n A,\n \"float\",\n \"distance\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"distance\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.distance} = distance(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Dot extends BinaryOp<\n A,\n A,\n \"float\",\n \"dot\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"dot\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.dot} = dot(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Cross extends BinaryOp<\"vec3\", \"vec3\", \"vec3\", \"cross\"> {\n constructor({ a, b }: { a: DynoVal<\"vec3\">; b: DynoVal<\"vec3\"> }) {\n super({ a, b, outKey: \"cross\", outTypeFunc: (aType, bType) => \"vec3\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cross} = cross(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Normalize extends UnaryOp<\n A,\n A,\n \"normalize\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => aType, outKey: \"normalize\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normalize} = normalize(${inputs.a});`,\n ];\n }\n}\n\ntype ProjectHOutput = A extends \"vec3\"\n ? \"vec2\"\n : A extends \"vec4\"\n ? \"vec3\"\n : never;\n\nfunction projectHOutputType(\n type: A,\n): ProjectHOutput {\n if (type === \"vec3\") {\n return \"vec2\" as ProjectHOutput;\n }\n if (type === \"vec4\") {\n return \"vec3\" as ProjectHOutput;\n }\n throw new Error(\"Invalid type\");\n}\n\nexport class ProjectH extends UnaryOp<\n A,\n ProjectHOutput,\n \"projected\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({\n a,\n outTypeFunc: (aType) => projectHOutputType(aType),\n outKey: \"projected\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.inTypes.a === \"vec3\") {\n return [`${outputs.projected} = ${inputs.a}.xy / ${inputs.a}.z;`];\n }\n if (this.inTypes.a === \"vec4\") {\n return [`${outputs.projected} = ${inputs.a}.xyz / ${inputs.a}.w;`];\n }\n throw new Error(\"Invalid type\");\n };\n }\n}\n\ntype ExtendVecOutput = A extends \"float\"\n ? \"vec2\"\n : A extends \"vec2\"\n ? \"vec3\"\n : A extends \"vec3\"\n ? \"vec4\"\n : never;\n\nfunction extendVecOutputType(\n type: A,\n): ExtendVecOutput {\n if (type === \"float\") return \"vec2\" as ExtendVecOutput;\n if (type === \"vec2\") return \"vec3\" as ExtendVecOutput;\n if (type === \"vec3\") return \"vec4\" as ExtendVecOutput;\n throw new Error(\"Invalid type\");\n}\n\nexport class ExtendVec extends BinaryOp<\n A,\n \"float\",\n ExtendVecOutput,\n \"extend\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal<\"float\"> }) {\n const type = valType(a);\n const outType = extendVecOutputType(type);\n super({ a, b, outKey: \"extend\", outTypeFunc: () => outType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.extend} = ${outType}(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class FaceForward extends TrinaryOp<\n A,\n A,\n A,\n A,\n \"forward\"\n> {\n constructor({ a, b, c }: { a: DynoVal; b: DynoVal; c: DynoVal }) {\n super({\n a,\n b,\n c,\n outKey: \"forward\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.forward} = faceforward(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class ReflectVec extends BinaryOp<\n A,\n A,\n A,\n \"reflection\"\n> {\n constructor({\n incident,\n normal,\n }: { incident: DynoVal; normal: DynoVal }) {\n super({\n a: incident,\n b: normal,\n outKey: \"reflection\",\n outTypeFunc: (aType, bType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.reflection} = reflect(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class RefractVec extends TrinaryOp<\n A,\n A,\n \"float\",\n A,\n \"refraction\"\n> {\n constructor({\n incident,\n normal,\n eta,\n }: { incident: DynoVal; normal: DynoVal; eta: DynoVal<\"float\"> }) {\n super({\n a: incident,\n b: normal,\n c: eta,\n outKey: \"refraction\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.refraction} = refract(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class CompMult extends BinaryOp<\n A,\n A,\n A,\n \"product\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: (aType, bType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.product} = matrixCompMult(${a}, ${b});`,\n ];\n }\n}\n\ntype OuterOutput<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> = A extends \"vec2\"\n ? B extends \"vec2\"\n ? \"mat2\"\n : B extends \"vec3\"\n ? \"mat3x2\"\n : B extends \"vec4\"\n ? \"mat4x2\"\n : never\n : A extends \"vec3\"\n ? B extends \"vec2\"\n ? \"mat2x3\"\n : B extends \"vec3\"\n ? \"mat3\"\n : B extends \"vec4\"\n ? \"mat4x3\"\n : never\n : A extends \"vec4\"\n ? B extends \"vec2\"\n ? \"mat2x4\"\n : B extends \"vec3\"\n ? \"mat3x4\"\n : B extends \"vec4\"\n ? \"mat4\"\n : never\n : never;\n\nfunction outerOutputType<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(aType: A, bType: B): OuterOutput {\n if (aType === \"vec2\") {\n if (bType === \"vec2\") return \"mat2\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x2\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x2\" as OuterOutput;\n }\n if (aType === \"vec3\") {\n if (bType === \"vec2\") return \"mat2x3\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x3\" as OuterOutput;\n }\n if (aType === \"vec4\") {\n if (bType === \"vec2\") return \"mat2x4\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x4\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4\" as OuterOutput;\n }\n throw new Error(`Invalid outer type: ${aType}, ${bType}`);\n}\n\nexport class Outer<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> extends BinaryOp, \"outer\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"outer\", outTypeFunc: outerOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.outer} = outerProduct(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\ntype TransposeOutput = A extends SquareMatTypes\n ? A\n : A extends \"mat2x3\"\n ? \"mat3x2\"\n : A extends \"mat2x4\"\n ? \"mat4x2\"\n : A extends \"mat3x2\"\n ? \"mat2x3\"\n : A extends \"mat3x4\"\n ? \"mat4x3\"\n : A extends \"mat4x2\"\n ? \"mat2x4\"\n : A extends \"mat4x3\"\n ? \"mat3x4\"\n : never;\n\nfunction transposeOutputType(\n type: A,\n): TransposeOutput {\n if (type === \"mat2\") return \"mat2\" as TransposeOutput;\n if (type === \"mat3\") return \"mat3\" as TransposeOutput;\n if (type === \"mat4\") return \"mat4\" as TransposeOutput;\n if (type === \"mat2x2\") return \"mat2x2\" as TransposeOutput;\n if (type === \"mat2x3\") return \"mat3x2\" as TransposeOutput;\n if (type === \"mat2x4\") return \"mat4x2\" as TransposeOutput;\n if (type === \"mat3x2\") return \"mat2x3\" as TransposeOutput;\n if (type === \"mat3x3\") return \"mat3x3\" as TransposeOutput;\n if (type === \"mat3x4\") return \"mat4x3\" as TransposeOutput;\n if (type === \"mat4x2\") return \"mat2x4\" as TransposeOutput;\n if (type === \"mat4x3\") return \"mat3x4\" as TransposeOutput;\n if (type === \"mat4x4\") return \"mat4x4\" as TransposeOutput;\n throw new Error(`Invalid transpose type: ${type}`);\n}\n\nexport class Transpose extends UnaryOp<\n A,\n TransposeOutput,\n \"transpose\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"transpose\", outTypeFunc: transposeOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.transpose} = transpose(${inputs.a});`,\n ];\n }\n}\n\nexport class Determinant extends UnaryOp<\n A,\n \"float\",\n \"det\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"det\", outTypeFunc: (aType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.det} = determinant(${inputs.a});`,\n ];\n }\n}\n\nexport class Inverse extends UnaryOp<\n A,\n A,\n \"inverse\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inverse\", outTypeFunc: (aType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.inverse} = inverse(${a});`,\n ];\n }\n}\n\ntype SplitOutTypes = A extends \"vec2\"\n ? { x: \"float\"; y: \"float\"; r: \"float\"; g: \"float\" }\n : A extends \"vec3\"\n ? { x: \"float\"; y: \"float\"; z: \"float\"; r: \"float\"; g: \"float\"; b: \"float\" }\n : A extends \"vec4\"\n ? {\n x: \"float\";\n y: \"float\";\n z: \"float\";\n w: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n a: \"float\";\n }\n : A extends \"ivec2\"\n ? { x: \"int\"; y: \"int\"; r: \"int\"; g: \"int\" }\n : A extends \"ivec3\"\n ? { x: \"int\"; y: \"int\"; z: \"int\"; r: \"int\"; g: \"int\"; b: \"int\" }\n : A extends \"ivec4\"\n ? {\n x: \"int\";\n y: \"int\";\n z: \"int\";\n w: \"int\";\n r: \"int\";\n g: \"int\";\n b: \"int\";\n a: \"int\";\n }\n : A extends \"uvec2\"\n ? { x: \"uint\"; y: \"uint\"; r: \"uint\"; g: \"uint\" }\n : A extends \"uvec3\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n }\n : A extends \"uvec4\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n w: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n a: \"uint\";\n }\n : never;\n\nfunction splitOutTypes(type: A): SplitOutTypes {\n const result = (value: unknown) => value as SplitOutTypes;\n switch (type) {\n case \"vec2\":\n return result({ x: \"float\", y: \"float\", r: \"float\", g: \"float\" });\n case \"vec3\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n });\n case \"vec4\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n w: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n a: \"float\",\n });\n case \"ivec2\":\n return result({ x: \"int\", y: \"int\", r: \"int\", g: \"int\" });\n case \"ivec3\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n });\n case \"ivec4\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n w: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n a: \"int\",\n });\n case \"uvec2\":\n return result({ x: \"uint\", y: \"uint\", r: \"uint\", g: \"uint\" });\n case \"uvec3\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n });\n case \"uvec4\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n w: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n a: \"uint\",\n });\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport class Split extends Dyno<\n { vector: V },\n SplitOutTypes\n> {\n constructor({ vector }: { vector: DynoVal }) {\n const type = valType(vector);\n const inTypes = { vector: type };\n const outTypes = splitOutTypes(inTypes.vector);\n super({ inTypes, outTypes, inputs: { vector } });\n this.statements = ({ inputs, outputs }) => {\n const { x, y, z, w, r, g, b, a } = outputs as unknown as Record<\n string,\n string\n >;\n const { vector } = inputs;\n return [\n x ? `${x} = ${vector}.x;` : null,\n y ? `${y} = ${vector}.y;` : null,\n z ? `${z} = ${vector}.z;` : null,\n w ? `${w} = ${vector}.w;` : null,\n r ? `${r} = ${vector}.r;` : null,\n g ? `${g} = ${vector}.g;` : null,\n b ? `${b} = ${vector}.b;` : null,\n a ? `${a} = ${vector}.a;` : null,\n ].filter(Boolean) as string[];\n };\n }\n}\n\nexport class Combine>\n extends Dyno & { vector: V }, { vector: V }>\n implements HasDynoOut\n{\n constructor({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n }: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n }) {\n if (!vector && !vectorType) {\n throw new Error(\"Either vector or vectorType must be provided\");\n }\n const vType = vectorType ?? valType(vector as DynoVal);\n const elType = vectorElementType(vType);\n const dim = vectorDim(vType);\n\n const inTypes = {\n vector: vType,\n x: elType,\n y: elType,\n r: elType,\n g: elType,\n } as unknown as SplitOutTypes & { vector: V };\n const inputs = { vector, x, y, r, g };\n if (dim >= 3) {\n Object.assign(inTypes, { z: elType, b: elType });\n Object.assign(inputs, { z, b });\n }\n if (dim >= 4) {\n Object.assign(inTypes, { w: elType, a: elType });\n Object.assign(inputs, { w, a });\n }\n // @ts-ignore\n super({ inTypes, outTypes: { vector: vType }, inputs });\n this.statements = ({ inputs, outputs }) => {\n const { vector } = outputs;\n const {\n vector: input,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n } = inputs as Record;\n const statements = [\n `${vector}.x = ${x ?? r ?? (input ? `${input}.x` : literalZero(elType))};`,\n `${vector}.y = ${y ?? g ?? (input ? `${input}.y` : literalZero(elType))};`,\n ];\n if (dim >= 3)\n statements.push(\n `${vector}.z = ${z ?? b ?? (input ? `${input}.z` : literalZero(elType))};`,\n );\n if (dim >= 4)\n statements.push(\n `${vector}.w = ${w ?? a ?? (input ? `${input}.w` : literalZero(elType))};`,\n );\n return statements;\n };\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput & { vector: V }, { vector: V }>(\n this,\n \"vector\",\n );\n }\n}\n\ntype SwizzleOutput<\n A extends VectorTypes,\n Len extends number,\n> = A extends FloatTypes\n ? Len extends 1\n ? \"float\"\n : Len extends 2\n ? \"vec2\"\n : Len extends 3\n ? \"vec3\"\n : Len extends 4\n ? \"vec4\"\n : never\n : A extends IntTypes\n ? Len extends 1\n ? \"int\"\n : Len extends 2\n ? \"ivec2\"\n : Len extends 3\n ? \"ivec3\"\n : Len extends 4\n ? \"ivec4\"\n : never\n : A extends UintTypes\n ? Len extends 1\n ? \"uint\"\n : Len extends 2\n ? \"uvec2\"\n : Len extends 3\n ? \"uvec3\"\n : Len extends 4\n ? \"uvec4\"\n : never\n : never;\n\ntype SwizzleSelectLen = S extends Swizzle1Select\n ? 1\n : S extends Swizzle2Select\n ? 2\n : S extends Swizzle3Select\n ? 3\n : S extends Swizzle4Select\n ? 4\n : never;\n\nfunction swizzleOutputType(\n type: A,\n swizzle: S,\n): SwizzleOutput> {\n let result = null;\n if (isFloatType(type)) {\n result =\n swizzle.length === 1\n ? \"float\"\n : swizzle.length === 2\n ? \"vec2\"\n : swizzle.length === 3\n ? \"vec3\"\n : swizzle.length === 4\n ? \"vec4\"\n : null;\n } else if (isIntType(type)) {\n result =\n swizzle.length === 1\n ? \"int\"\n : swizzle.length === 2\n ? \"ivec2\"\n : swizzle.length === 3\n ? \"ivec3\"\n : swizzle.length === 4\n ? \"ivec4\"\n : null;\n } else if (isUintType(type)) {\n result =\n swizzle.length === 1\n ? \"uint\"\n : swizzle.length === 2\n ? \"uvec2\"\n : swizzle.length === 3\n ? \"uvec3\"\n : swizzle.length === 4\n ? \"uvec4\"\n : null;\n }\n if (result == null) {\n throw new Error(`Invalid swizzle: ${swizzle}`);\n }\n return result as SwizzleOutput>;\n}\n\ntype Swizzle1Select = `${\"x\" | \"y\" | \"z\" | \"w\"}|${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle2Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle3Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle4Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype SwizzleSelect =\n | Swizzle1Select\n | Swizzle2Select\n | Swizzle3Select\n | Swizzle4Select;\n\nexport class Swizzle<\n A extends VectorTypes,\n S extends SwizzleSelect,\n> extends UnaryOp>, \"swizzle\"> {\n constructor({ vector, select }: { vector: DynoVal; select: S }) {\n super({\n a: vector,\n outKey: \"swizzle\",\n outTypeFunc: (aType) => swizzleOutputType(aType, select),\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.swizzle} = ${inputs.a}.${select};`,\n ];\n }\n}\n","import { Dyno, DynoBlock, unindent } from \"./base\";\nimport { float, vec2, vec3, vec4 } from \"./convert\";\nimport { mul } from \"./math\";\nimport { type ValueTypes, isIntType, isUintType, sameSizeUvec } from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n dynoConst,\n valType,\n} from \"./value\";\nimport { combine } from \"./vecmat\";\n\nexport const remapIndex = (\n index: DynoVal<\"int\">,\n from: DynoVal<\"int\">,\n to: DynoVal<\"int\">,\n): DynoVal<\"int\"> => {\n return new DynoRemapIndex({ index, from, to });\n};\nexport const pcgMix = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new PcgMix({ value });\n};\nexport const pcgNext = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgNext({ state });\n};\nexport const pcgHash = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgHash({ state });\n};\nexport const hash = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new Hash({ value });\n};\nexport const hash2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => {\n return new Hash2({ value });\n};\nexport const hash3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => {\n return new Hash3({ value });\n};\nexport const hash4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => {\n return new Hash4({ value });\n};\nexport const hashFloat = (\n value: DynoVal,\n): DynoVal<\"float\"> => {\n return new HashFloat({ value });\n};\nexport const hashVec2 = (\n value: DynoVal,\n): DynoVal<\"vec2\"> => {\n return new HashVec2({ value });\n};\nexport const hashVec3 = (\n value: DynoVal,\n): DynoVal<\"vec3\"> => {\n return new HashVec3({ value });\n};\nexport const hashVec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => {\n return new HashVec4({ value });\n};\nexport const normalizedDepth = (\n z: DynoVal<\"float\">,\n zNear: DynoVal<\"float\">,\n zFar: DynoVal<\"float\">,\n): DynoVal<\"float\"> => {\n return new NormalizedDepth({ z, zNear, zFar }).outputs.depth;\n};\n\nexport const debugColorHue = (index: DynoVal<\"int\">): DynoVal<\"vec3\"> => {\n return new DebugColorHue({ index });\n};\n\nexport class DynoRemapIndex\n extends Dyno<{ from: \"int\"; to: \"int\"; index: \"int\" }, { index: \"int\" }>\n implements HasDynoOut<\"int\">\n{\n constructor({\n from,\n to,\n index,\n }: { from: DynoVal<\"int\">; to: DynoVal<\"int\">; index: DynoVal<\"int\"> }) {\n super({\n inTypes: { from: \"int\", to: \"int\", index: \"int\" },\n outTypes: { index: \"int\" },\n inputs: { from, to, index },\n statements: ({ inputs, outputs }) => {\n return [\n `${outputs.index} = ${inputs.index} - ${inputs.from} + ${inputs.to};`,\n ];\n },\n });\n }\n\n dynoOut(): DynoValue<\"int\"> {\n return new DynoOutput(this, \"index\");\n }\n}\n\nexport class PcgNext\n extends Dyno<{ state: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal }) {\n const type = valType(state);\n super({\n inTypes: { state: type },\n outTypes: { state: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_next(uint state) {\n return state * 747796405u + 2891336453u;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUint =\n type === \"uint\"\n ? `${inputs.state}`\n : type === \"int\"\n ? `uint(${inputs.state})`\n : `floatBitsToUint(${inputs.state})`;\n return [`${outputs.state} = pcg_next(${toUint});`];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class PcgHash\n extends Dyno<{ state: \"uint\" }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal<\"uint\"> }) {\n super({\n inTypes: { state: \"uint\" },\n outTypes: { hash: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_hash(uint state) {\n uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u;\n return (hash >> 22u) ^ hash;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => [\n `${outputs.hash} = pcg_hash(${inputs.state});`,\n ],\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class PcgMix\n extends Dyno<{ value: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n const type = valType(value);\n const tempType = sameSizeUvec(type);\n super({\n inTypes: { value: type },\n outTypes: { state: \"uint\" },\n inputs: { value },\n globals: () => [\n unindent(`\n uint pcg_mix(uint value) {\n return value;\n }\n uint pcg_mix(uvec2 value) {\n return value.x + 0x9e3779b9u * value.y;\n }\n uint pcg_mix(uvec3 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z;\n }\n uint pcg_mix(uvec4 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z + 0xc2b2ae35u * value.w;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUvec = isUintType(type)\n ? `${inputs.value}`\n : isIntType(type)\n ? `${tempType}(${inputs.value})`\n : `floatBitsToUint(${inputs.value})`;\n return [\n `${tempType} bits = ${toUvec};`,\n `${outputs.state} = pcg_mix(bits);`,\n ];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class Hash\n extends DynoBlock<{ value: T }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uint\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n return new PcgHash({ state }).outputs;\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash2\n extends DynoBlock<{ value: T }, { hash: \"uvec2\" }>\n implements HasDynoOut<\"uvec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec2\", x, y }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash3\n extends DynoBlock<{ value: T }, { hash: \"uvec3\" }>\n implements HasDynoOut<\"uvec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec3\", x, y, z }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash4\n extends DynoBlock<{ value: T }, { hash: \"uvec4\" }>\n implements HasDynoOut<\"uvec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const w = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec4\", x, y, z, w }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashFloat\n extends DynoBlock<{ value: T }, { hash: \"float\" }>\n implements HasDynoOut<\"float\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"float\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const word = hash(value);\n return { hash: mul(float(word), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec2\n extends DynoBlock<{ value: T }, { hash: \"vec2\" }>\n implements HasDynoOut<\"vec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash2(value);\n return { hash: mul(vec2(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec3\n extends DynoBlock<{ value: T }, { hash: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash3(value);\n return { hash: mul(vec3(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec4\n extends DynoBlock<{ value: T }, { hash: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash4(value);\n return { hash: mul(vec4(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class NormalizedDepth\n extends Dyno<\n { z: \"float\"; zNear: \"float\"; zFar: \"float\" },\n { depth: \"float\" }\n >\n implements HasDynoOut<\"float\">\n{\n constructor({\n z,\n zNear,\n zFar,\n }: { z: DynoVal<\"float\">; zNear: DynoVal<\"float\">; zFar: DynoVal<\"float\"> }) {\n super({\n inTypes: { z: \"float\", zNear: \"float\", zFar: \"float\" },\n outTypes: { depth: \"float\" },\n inputs: { z, zNear, zFar },\n statements: ({ inputs, outputs }) => [\n `float clamped = clamp(${inputs.z}, ${inputs.zNear}, ${inputs.zFar});`,\n `${outputs.depth} = (log2(clamped + 1.0) - log2(${inputs.zNear} + 1.0)) / (log2(${inputs.zFar} + 1.0) - log2(${inputs.zNear} + 1.0));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"depth\");\n }\n}\n\nexport class DebugColorHue\n extends Dyno<{ index: \"int\" }, { color: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ index }: { index: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { color: \"vec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => [\n `${outputs.color} = debugColorHue(uint(${inputs.index}));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"color\");\n }\n}\n","import { Dyno } from \"./base\";\nimport type { DynoVal } from \"./value\";\n\nexport const transformPos = (\n position: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n translate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformPosition({ position, scale, scales, rotate, translate })\n .outputs.position;\n};\nexport const transformDir = (\n dir: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformDir({ dir, scale, scales, rotate }).outputs.dir;\n};\nexport const transformQuat = (\n quaternion: DynoVal<\"vec4\">,\n { rotate }: { rotate?: DynoVal<\"vec4\"> },\n): DynoVal<\"vec4\"> => {\n return new TransformQuaternion({ quaternion, rotate }).outputs.quaternion;\n};\n\nexport class TransformPosition extends Dyno<\n {\n position: \"vec3\";\n scale: \"float\";\n scales: \"vec3\";\n rotate: \"vec4\";\n translate: \"vec3\";\n },\n { position: \"vec3\" }\n> {\n constructor({\n position,\n scale,\n scales,\n rotate,\n translate,\n }: {\n position?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n }) {\n super({\n inTypes: {\n position: \"vec3\",\n scale: \"float\",\n scales: \"vec3\",\n rotate: \"vec4\",\n translate: \"vec3\",\n },\n outTypes: { position: \"vec3\" },\n inputs: { position, scale, scales, rotate, translate },\n statements: ({ inputs, outputs }) => {\n const { position } = outputs;\n if (!position) {\n return [];\n }\n const { scale, scales, rotate, translate } = inputs;\n return [\n `${position} = ${inputs.position ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${position} *= ${scale};`,\n !scales ? null : `${position} *= ${scales};`,\n !rotate ? null : `${position} = quatVec(${rotate}, ${position});`,\n !translate ? null : `${position} += ${translate};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformDir extends Dyno<\n { dir: \"vec3\"; scale: \"float\"; scales: \"vec3\"; rotate: \"vec4\" },\n { dir: \"vec3\" }\n> {\n constructor({\n dir,\n scale,\n scales,\n rotate,\n }: {\n dir?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { dir: \"vec3\", scale: \"float\", scales: \"vec3\", rotate: \"vec4\" },\n outTypes: { dir: \"vec3\" },\n inputs: { dir, scale, scales, rotate },\n statements: ({ inputs, outputs }) => {\n const { dir } = outputs;\n if (!dir) {\n return [];\n }\n const { scale, scales, rotate } = inputs;\n return [\n `${dir} = ${inputs.dir ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${dir} *= ${scale};`,\n !scales ? null : `${dir} *= ${scales};`,\n !rotate ? null : `${dir} = quatVec(${rotate}, ${dir});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformQuaternion extends Dyno<\n { quaternion: \"vec4\"; rotate: \"vec4\" },\n { quaternion: \"vec4\" }\n> {\n constructor({\n quaternion,\n rotate,\n }: { quaternion?: DynoVal<\"vec4\">; rotate?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { quaternion: \"vec4\", rotate: \"vec4\" },\n outTypes: { quaternion: \"vec4\" },\n inputs: { quaternion, rotate },\n statements: ({ inputs, outputs }) => {\n const { quaternion } = outputs;\n if (!quaternion) {\n return [];\n }\n return [\n `${quaternion} = ${inputs.quaternion ?? \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rotate\n ? null\n : `${quaternion} = quatQuat(${inputs.rotate}, ${quaternion});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n","// TODO:\n// if, switch, for, comment,\n// arrayIndex, arrayLength,\n\nexport const dynoIf = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoSwitch = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoFor = () => {\n throw new Error(\"Not implemented\");\n};\nexport const comment = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayIndex = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayLength = () => {\n throw new Error(\"Not implemented\");\n};\n","import { Dyno } from \"./base\";\nimport type {\n AllSamplerTypes,\n IsamplerTypes,\n NormalSamplerTypes,\n Sampler2DArrayTypes,\n Sampler2DTypes,\n Sampler3DTypes,\n SamplerCubeTypes,\n SamplerShadowTypes,\n SamplerTypes,\n UsamplerTypes,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nexport const textureSize = (\n texture: DynoVal,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TextureSize({ texture, lod });\nexport const texture = (\n texture: DynoVal,\n coord: DynoVal>,\n bias?: DynoVal<\"float\">,\n): DynoVal> => new Texture({ texture, coord, bias });\nexport const texelFetch = (\n texture: DynoVal,\n coord: DynoVal>,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TexelFetch({ texture, coord, lod });\n\nexport class TextureSize\n extends Dyno<{ texture: T; lod: \"int\" }, { size: TextureSizeType }>\n implements HasDynoOut>\n{\n constructor({ texture, lod }: { texture: DynoVal; lod?: DynoVal<\"int\"> }) {\n const textureType = valType(texture);\n super({\n inTypes: { texture: textureType, lod: \"int\" },\n outTypes: { size: textureSizeType(textureType) },\n inputs: { texture, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.size} = textureSize(${inputs.texture}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"size\");\n }\n}\n\nexport class Texture\n extends Dyno<\n { texture: T; coord: TextureCoordType; bias: \"float\" },\n { sample: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n bias,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n bias?: DynoVal<\"float\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureCoordType(textureType),\n bias: \"float\",\n },\n outTypes: { sample: textureReturnType(textureType) },\n inputs: { texture, coord, bias },\n statements: ({ inputs, outputs }) => [\n `${outputs.sample} = texture(${inputs.texture}, ${inputs.coord}${inputs.bias ? `, ${inputs.bias}` : \"\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"sample\");\n }\n}\n\nexport class TexelFetch\n extends Dyno<\n { texture: T; coord: TextureSizeType; lod: \"int\" },\n { texel: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n lod,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n lod?: DynoVal<\"int\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureSizeType(textureType),\n lod: \"int\",\n },\n outTypes: { texel: textureReturnType(textureType) },\n inputs: { texture, coord, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.texel} = texelFetch(${inputs.texture}, ${inputs.coord}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"texel\");\n }\n}\n\ntype TextureSizeType = T extends\n | Sampler2DTypes\n | SamplerCubeTypes\n ? \"ivec2\"\n : T extends Sampler3DTypes | Sampler2DArrayTypes\n ? \"ivec3\"\n : never;\n\nfunction textureSizeType(\n textureType: T,\n): TextureSizeType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DShadow\":\n case \"samplerCubeShadow\":\n return \"ivec2\" as TextureSizeType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DArrayShadow\":\n return \"ivec3\" as TextureSizeType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureCoordType = T extends Sampler2DTypes\n ? \"vec2\"\n : T extends\n | Sampler3DTypes\n | Sampler2DArrayTypes\n | SamplerCubeTypes\n | Sampler2DArrayTypes\n ? \"vec3\"\n : T extends \"samperCubeShadow\" | \"sampler2DArrayShadow\"\n ? \"vec4\"\n : never;\n\nfunction textureCoordType(\n textureType: T,\n): TextureCoordType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n return \"vec2\" as TextureCoordType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DShadow\":\n return \"vec3\" as TextureCoordType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"vec4\" as TextureCoordType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureReturnType = T extends SamplerTypes\n ? \"vec4\"\n : T extends UsamplerTypes\n ? \"uvec4\"\n : T extends IsamplerTypes\n ? \"ivec4\"\n : T extends SamplerShadowTypes\n ? \"float\"\n : never;\n\nfunction textureReturnType(\n textureType: T,\n): TextureReturnType {\n switch (textureType) {\n case \"sampler2D\":\n case \"sampler2DArray\":\n case \"sampler3D\":\n case \"samplerCube\":\n case \"sampler2DShadow\":\n return \"vec4\" as TextureReturnType;\n case \"usampler2D\":\n case \"usampler2DArray\":\n case \"usampler3D\":\n case \"usamplerCube\":\n return \"uvec4\" as TextureReturnType;\n case \"isampler2D\":\n case \"isampler2DArray\":\n case \"isampler3D\":\n case \"isamplerCube\":\n return \"ivec4\" as TextureReturnType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"float\" as TextureReturnType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n","import { BinaryOp, UnaryOp } from \"./base\";\nimport type { FloatTypes } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const radians = (\n degrees: DynoVal,\n): DynoVal => new Radians({ degrees });\nexport const degrees = (\n radians: DynoVal,\n): DynoVal => new Degrees({ radians });\n\nexport const sin = (radians: DynoVal): DynoVal =>\n new Sin({ radians });\nexport const cos = (radians: DynoVal): DynoVal =>\n new Cos({ radians });\nexport const tan = (radians: DynoVal): DynoVal =>\n new Tan({ radians });\n\nexport const asin = (sin: DynoVal): DynoVal =>\n new Asin({ sin });\nexport const acos = (cos: DynoVal): DynoVal =>\n new Acos({ cos });\nexport const atan = (tan: DynoVal): DynoVal =>\n new Atan({ tan });\nexport const atan2 = (\n y: DynoVal,\n x: DynoVal,\n): DynoVal => new Atan2({ y, x });\n\nexport const sinh = (x: DynoVal): DynoVal =>\n new Sinh({ x });\nexport const cosh = (x: DynoVal): DynoVal =>\n new Cosh({ x });\nexport const tanh = (x: DynoVal): DynoVal =>\n new Tanh({ x });\n\nexport const asinh = (x: DynoVal): DynoVal =>\n new Asinh({ x });\nexport const acosh = (x: DynoVal): DynoVal =>\n new Acosh({ x });\nexport const atanh = (x: DynoVal): DynoVal =>\n new Atanh({ x });\n\nexport class Radians extends UnaryOp {\n constructor({ degrees }: { degrees: DynoVal }) {\n super({ a: degrees, outTypeFunc: (aType) => aType, outKey: \"radians\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.radians} = radians(${inputs.a});`,\n ];\n }\n}\n\nexport class Degrees extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"degrees\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.degrees} = degrees(${inputs.a});`,\n ];\n }\n}\n\nexport class Sin extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"sin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sin} = sin(${inputs.a});`,\n ];\n }\n}\n\nexport class Cos extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"cos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cos} = cos(${inputs.a});`,\n ];\n }\n}\n\nexport class Tan extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"tan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tan} = tan(${inputs.a});`,\n ];\n }\n}\n\nexport class Asin extends UnaryOp {\n constructor({ sin }: { sin: DynoVal }) {\n super({ a: sin, outTypeFunc: (aType) => aType, outKey: \"asin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asin} = asin(${inputs.a});`,\n ];\n }\n}\n\nexport class Acos extends UnaryOp {\n constructor({ cos }: { cos: DynoVal }) {\n super({ a: cos, outTypeFunc: (aType) => aType, outKey: \"acos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acos} = acos(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan extends UnaryOp {\n constructor({ tan }: { tan: DynoVal }) {\n super({ a: tan, outTypeFunc: (aType) => aType, outKey: \"atan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan} = atan(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan2 extends BinaryOp {\n constructor({ y, x }: { y: DynoVal; x: DynoVal }) {\n super({\n a: y,\n b: x,\n outTypeFunc: (aType, bType) => aType,\n outKey: \"atan2\",\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan2} = atan2(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Sinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"sinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sinh} = sinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Cosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"cosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cosh} = cosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Tanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"tanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tanh} = tanh(${inputs.a});`,\n ];\n }\n}\n\nexport class Asinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"asinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asinh} = asinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Acosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"acosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acosh} = acosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Atanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"atanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atanh} = atanh(${inputs.a});`,\n ];\n }\n}\n","import * as THREE from \"three\";\nimport type { RgbaArray } from \"./RgbaArray\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { SPLAT_TEX_WIDTH, type SplatFileType } from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n type Gsplat,\n TExtSplats,\n add,\n combineGsplat,\n defineExtSplats,\n normalize,\n readExtSplat,\n splatTexCoord,\n splitGsplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { decodeExtSplat, encodeExtSplat, getTextureSize } from \"./utils\";\n\nexport type ExtSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided pair of uint32 arrays, where blocks of 4 uint32s in each,\n // encode an \"extended packed\" Gsplat. (default: undefined)\n extArrays?: [Uint32Array, Uint32Array];\n // Override number of splats in packed arrays to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: ExtSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the ExtSplats\n lodSplats?: ExtSplats;\n};\n\nexport class ExtSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record = {};\n maxSh = 3;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: ExtSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n textures: [THREE.DataArrayTexture, THREE.DataArrayTexture];\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoNumSh: DynoInt<\"numSh\">;\n\n constructor(options: ExtSplatsOptions = {}) {\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n this.textures = [ExtSplats.emptyTexture, ExtSplats.emptyTexture];\n\n this.extra = {};\n this.dyno = new DynoExtSplats({ extSplats: this });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: ExtSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: ExtSplatsOptions) {\n this.extra = options.extra ?? {};\n this.lodSplats = options.lodSplats;\n\n if (options.extArrays) {\n this.extArrays = options.extArrays;\n this.maxSplats = Math.floor(\n Math.min(this.extArrays[0].length / 4, this.extArrays[1].length / 4),\n );\n this.numSplats = options.numSplats ?? this.maxSplats;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n this.updateTextures();\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n }\n }\n\n async asyncInitialize(options: ExtSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n extSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n this.textures[0].dispose();\n this.textures[0].source.data = null;\n this.textures[0] = ExtSplats.emptyTexture;\n }\n if (this.textures[1] !== ExtSplats.emptyTexture) {\n this.textures[1].dispose();\n this.textures[1].source.data = null;\n this.textures[1] = ExtSplats.emptyTexture;\n }\n\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"ExtSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1\n ? 0\n : !this.extra.sh2\n ? 1\n : !this.extra.sh3a || !this.extra.sh3b\n ? 2\n : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readExtSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB } =\n this.ensureShTextures();\n let { rgb } = evaluateExtSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 4,\n );\n if (sh1.length < maxSplats * 4) {\n const newSh1 = new Uint32Array(maxSplats * 4);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n const texture = newUint32ArrayTexture(\n sh1,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = newUint32ArrayTexture(\n sh2,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3a || !this.extra.sh3b) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3TextureA = this.extra.sh3TextureA as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureA) {\n let sh3a = this.extra.sh3a as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3a.length / 4,\n );\n if (sh3a.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3a);\n this.extra.sh3a = newSh3;\n sh3a = newSh3;\n }\n\n const texture = newUint32ArrayTexture(\n sh3a,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureA = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3TextureA = sh3TextureA;\n }\n\n let sh3TextureB = this.extra.sh3TextureB as\n | DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureB) {\n let sh3b = this.extra.sh3b as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3b.length / 4,\n );\n if (sh3b.length < maxSplats * 4) {\n const newSh3b = new Uint32Array(maxSplats * 4);\n newSh3b.set(sh3b);\n this.extra.sh3b = newSh3b;\n sh3b = newSh3b;\n }\n\n const texture = newUint32ArrayTexture(\n sh3b,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureB = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3b\",\n });\n this.extra.sh3TextureB = sh3TextureB;\n }\n\n return { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB };\n }\n\n // Ensures that this.extArrays can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): [Uint32Array, Uint32Array] {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.extArrays[0] ? 0 : this.extArrays[0].length / 4;\n\n if (!this.extArrays[0] || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray0 = new Uint32Array(this.maxSplats * 4);\n const newArray1 = new Uint32Array(this.maxSplats * 4);\n if (this.extArrays[0]) {\n // Copy over existing data\n newArray0.set(this.extArrays[0]);\n newArray1.set(this.extArrays[1]);\n }\n this.extArrays[0] = newArray0;\n this.extArrays[1] = newArray1;\n }\n return this.extArrays;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return decodeExtSplat(this.extArrays, index);\n }\n\n // Set all ExtSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(index + 1);\n encodeExtSplat(\n extArrays,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(this.numSplats + 1);\n encodeExtSplat(\n extArrays,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = decodeExtSplat(this.extArrays, i);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Check if source texture needs to be created/updated\n private updateTextures() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n const { width, height, depth } = this.textures[0].image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.textures[0].dispose();\n this.textures[0] = ExtSplats.emptyTexture;\n this.textures[1].dispose();\n this.textures[1] = ExtSplats.emptyTexture;\n }\n }\n if (this.textures[0] === ExtSplats.emptyTexture) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.textures[0] = newUint32ArrayTexture(\n this.extArrays[0],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n this.textures[1] = newUint32ArrayTexture(\n this.extArrays[1],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n } else if (\n this.extArrays[0].buffer !== this.textures[0].image.data.buffer\n ) {\n this.textures[0].image.data = new Uint8Array(this.extArrays[0].buffer);\n this.textures[1].image.data = new Uint8Array(this.extArrays[1].buffer);\n // Indicate to Three.js that the source textures needs to be uploaded to the GPU\n this.textures[0].needsUpdate = true;\n this.textures[1].needsUpdate = true;\n }\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new ExtSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static emptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTexture = newUint32ArrayTexture(\n null,\n 1,\n 1,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const extArrays = [this.extArrays[0].slice(), this.extArrays[1].slice()];\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodExtSplats\" : \"tinyLodExtSplats\",\n {\n numSplats: this.numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n },\n )) as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n };\n });\n\n const lodSplats = new ExtSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\nexport const dynoExtSplats = (extSplats?: ExtSplats) =>\n new DynoExtSplats({ extSplats });\n\nexport class DynoExtSplats extends DynoUniform<\n typeof TExtSplats,\n \"extSplats\",\n {\n textureArray1: THREE.DataArrayTexture;\n textureArray2: THREE.DataArrayTexture;\n numSplats: number;\n }\n> {\n extSplats?: ExtSplats;\n\n constructor({ extSplats }: { extSplats?: ExtSplats } = {}) {\n super({\n key: \"extSplats\",\n type: TExtSplats,\n globals: () => [defineExtSplats],\n value: {\n textureArray1: ExtSplats.emptyTexture,\n textureArray2: ExtSplats.emptyTexture,\n numSplats: 0,\n },\n update: (value) => {\n value.textureArray1 =\n this.extSplats?.textures[0] ?? ExtSplats.emptyTexture;\n value.textureArray2 =\n this.extSplats?.textures[1] ?? ExtSplats.emptyTexture;\n value.numSplats = this.extSplats?.numSplats ?? 0;\n return value;\n },\n });\n this.extSplats = extSplats;\n }\n}\n\nexport const defineEvaluateExtSH1 = unindent(`\n vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packedData.x);\n vec3 sh1_1 = decodeExtRgb(packedData.y);\n vec3 sh1_2 = decodeExtRgb(packedData.z);\n\n return sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n }\n`);\n\nexport const defineEvaluateExtSH12 = unindent(`\n vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packed1.x);\n vec3 sh1_1 = decodeExtRgb(packed1.y);\n vec3 sh1_2 = decodeExtRgb(packed1.z);\n\n vec3 sh2_0 = decodeExtRgb(packed1.w);\n vec3 sh2_1 = decodeExtRgb(packed2.x);\n vec3 sh2_2 = decodeExtRgb(packed2.y);\n vec3 sh2_3 = decodeExtRgb(packed2.z);\n vec3 sh2_4 = decodeExtRgb(packed2.w);\n\n vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n\n vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n\n return sh1Rgb + sh2Rgb;\n }\n`);\n\nexport const defineEvaluateExtSH3 = unindent(`\n vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) {\n vec3 sh3_0 = decodeExtRgb(packedA.x);\n vec3 sh3_1 = decodeExtRgb(packedA.y);\n vec3 sh3_2 = decodeExtRgb(packedA.z);\n vec3 sh3_3 = decodeExtRgb(packedA.w);\n vec3 sh3_4 = decodeExtRgb(packedB.x);\n vec3 sh3_5 = decodeExtRgb(packedB.y);\n vec3 sh3_6 = decodeExtRgb(packedB.z);\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n }\n`);\n\nexport function evaluateExtSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3TextureA: \"usampler2DArray\",\n sh3TextureB: \"usampler2DArray\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n },\n globals: () => [\n defineEvaluateExtSH1,\n defineEvaluateExtSH12,\n defineEvaluateExtSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n if (!inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n } else {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} == 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n } else if (${inputs.numSh} >= 2) {\n rgb = evaluateExtSH12(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n `),\n );\n\n if (inputs.sh3TextureA && inputs.sh3TextureB) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n rgb += evaluateExtSH3(texelFetch(${inputs.sh3TextureA}, ${inputs.coord}, 0), texelFetch(${inputs.sh3TextureB}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n }\n\n lines.push(\"}\");\n }\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n\nfunction newUint32ArrayTexture(\n data: Uint32Array | null,\n width: number,\n height: number,\n depth: number,\n format: THREE.AnyPixelFormat,\n type: THREE.TextureDataType,\n internalFormat: THREE.PixelFormatGPU,\n): THREE.DataArrayTexture {\n const texture = new THREE.DataArrayTexture(\n data as Uint32Array,\n width,\n height,\n depth,\n );\n texture.format = format;\n texture.type = type;\n texture.internalFormat = internalFormat;\n texture.needsUpdate = true;\n return texture;\n}\n","/* @ts-self-types=\"./spark_rs.d.ts\" */\n\n/**\n * @param {Uint8Array} bytes\n * @returns {any}\n */\nexport function decode_rad_header(bytes) {\n const ret = wasm.decode_rad_header(bytes);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer() {\n const ret = wasm.get_raycast_buffer();\n return ret;\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer2() {\n const ret = wasm.get_raycast_buffer2();\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @returns {Float32Array}\n */\nexport function raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count) {\n const ret = wasm.raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} num_splats\n * @param {Uint32Array} packed_splats\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @returns {boolean}\n */\nexport function simd_enabled() {\n const ret = wasm.simd_enabled();\n return ret !== 0;\n}\n\nexport function wasm_start() {\n wasm.wasm_start();\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_fd4646b401926788: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_26bffbe236bf73f9: function(arg0) {\n const ret = new Float32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n },\n __wbg_set_8ee2d34facb8466e: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) {\n arg0.set(getArrayF32FromWasm0(arg1, arg2));\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(F32)) -> NamedExternref(\"Float32Array\")`.\n const ret = getArrayF32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000003: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U32)) -> NamedExternref(\"Uint32Array\")`.\n const ret = getArrayU32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000004: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000005: function(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./spark_rs_bg.js\": import0,\n };\n}\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction getArrayF32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\nfunction getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (module_or_path === undefined) {\n module_or_path = new URL('spark_rs_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout uvec4 target;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n target = uvec4(0u, 0u, 0u, 0u);\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out vec4 target3;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial target to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize depthTarget to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out uvec4 target2;\nlayout(location = 2) out vec4 target3;\n// layout(location = 0) out vec4 target3;\n// layout(location = 1) out uvec4 target;\n// layout(location = 2) out uvec4 target2;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial targets to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n target2 = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize target3 to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout vec4 target;\n\n{{ GLOBALS }}\n\nvoid computeReadback(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n if ((index >= 0) && (index < targetCount)) {\n computeReadback(index);\n } else {\n target = vec4(0.0, 0.0, 0.0, 0.0);\n }\n}\n","\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool stochastic;\nuniform bool disableFalloff;\nuniform float falloff;\n\nuniform bool splatTexEnable;\nuniform sampler3D splatTexture;\nuniform mat2 splatTexMul;\nuniform vec2 splatTexAdd;\nuniform float splatTexNear;\nuniform float splatTexFar;\nuniform float splatTexMid;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z = dot(vSplatUv, vSplatUv);\n if (!splatTexEnable) {\n if (z > (maxStdDev * maxStdDev)) {\n discard;\n }\n } else {\n vec2 uv = splatTexMul * vSplatUv + splatTexAdd;\n float ndcZ = vNdc.z;\n float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near));\n float clampedFar = max(splatTexFar, splatTexNear);\n float clampedDepth = clamp(depth, splatTexNear, clampedFar);\n float logDepth = log2(clampedDepth + 1.0);\n float logNear = log2(splatTexNear + 1.0);\n float logFar = log2(clampedFar + 1.0);\n\n float texZ;\n if (splatTexMid > 0.0) {\n float clampedMid = clamp(splatTexMid, splatTexNear, clampedFar);\n float logMid = log2(clampedMid + 1.0);\n texZ = (clampedDepth <= clampedMid) ?\n (0.5 * ((logDepth - logNear) / (logMid - logNear))) :\n (0.5 * ((logDepth - logMid) / (logFar - logMid)) + 0.5);\n } else {\n texZ = (logDepth - logNear) / (logFar - logNear);\n }\n\n vec4 modulate = texture(splatTexture, vec3(uv, 1.0 - texZ));\n rgba *= modulate;\n }\n\n rgba.a *= mix(1.0, exp(-0.5 * z), falloff);\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n if (stochastic) {\n const bool STEADY = false;\n uint uTime = STEADY ? 0u : floatBitsToUint(time);\n uvec2 coord = uvec2(gl_FragCoord.xy);\n uint state = uTime + 0x9e3779b9u * coord.x + 0x85ebca6bu * coord.y + 0xc2b2ae35u * uint(vSplatIndex);\n state = state * 747796405u + 2891336453u;\n uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u;\n hash = (hash >> 22u) ^ hash;\n float rand = float(hash) / 4294967296.0;\n if (rand < rgba.a) {\n fragColor = vec4(rgba.rgb, 1.0);\n } else {\n discard;\n }\n } else {\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n }\n}\n","\nprecision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nattribute uint splatIndex;\n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\n\nuniform vec2 renderSize;\nuniform uint numSplats;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool stochastic;\nuniform bool enable2DGS;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2DArray packedSplats;\nuniform vec4 rgbMinMaxLnScaleMinMax;\n\nvoid main() {\n // Default to outside the frustum so it's discarded if we return early\n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n if (uint(gl_InstanceID) >= numSplats) {\n return;\n }\n\n ivec3 texCoord;\n if (stochastic) {\n texCoord = ivec3(\n uint(gl_InstanceID) & SPLAT_TEX_WIDTH_MASK,\n (uint(gl_InstanceID) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK,\n (uint(gl_InstanceID) >> SPLAT_TEX_LAYER_BITS)\n );\n } else {\n if (splatIndex == 0xffffffffu) {\n // Special value reserved for \"no splat\"\n return;\n }\n texCoord = ivec3(\n splatIndex & SPLAT_TEX_WIDTH_MASK,\n (splatIndex >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK,\n splatIndex >> SPLAT_TEX_LAYER_BITS\n );\n }\n uvec4 packedData = texelFetch(packedSplats, texCoord, 0);\n\n vec3 center, scales;\n vec4 quaternion, rgba;\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, rgbMinMaxLnScaleMinMax);\n\n if (rgba.a < minAlpha) {\n return;\n }\n bvec3 zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n\n // Compute the view space center of the splat\n vec3 viewCenter = quatVec(renderToViewQuat, center) + renderToViewPos;\n\n // Discard splats behind the camera\n if (viewCenter.z >= 0.0) {\n return;\n }\n\n // Compute the clip space center of the splat\n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n // Discard splats outside near/far planes\n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n // Discard splats more than clipXY times outside the XY frustum\n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n // Record the splat index for entropy\n vSplatIndex = splatIndex;\n\n // Compute view space quaternion of splat\n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vRgba = rgba;\n vSplatUv = position.xy * maxStdDev;\n\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n return;\n }\n\n // Compute NDC center of the splat\n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n\n // Compute the 3D covariance matrix of the splat\n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n mat3 cov3D = RS * transpose(RS);\n\n // Compute the Jacobian of the splat's projection at its center\n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if(isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n // Compute the 2D covariance by projecting the 3D covariance\n // and picking out the XY plane components.\n // Keeping below because we may need it in the future\n // for skinning deformations.\n // mat3 W = transpose(mat3(viewMatrix));\n // mat3 T = W * J;\n // mat3 cov2D = transpose(T) * cov3D * T;\n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n // Optionally pre-blur the splat to match non-antialias optimized splats\n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n // Do convolution with a 0.5-pixel Gaussian for anti-aliasing: sqrt(0.3) ~= 0.5\n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n // Compute anti-aliasing intensity scaling factor\n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n\n // Compute the eigenvalue and eigenvectors of the 2D covariance matrix\n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = normalize(vec2((abs(b) < 0.001) ? 1.0 : b, eigen1 - a));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, maxStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, maxStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n // Compute the NDC coordinates for the ellipsoid's diagonal axes.\n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vRgba = rgba;\n vSplatUv = position.xy * maxStdDev;\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n}\n","const float LN_SCALE_MIN = -12.0;\nconst float LN_SCALE_MAX = 9.0;\n\nconst uint SPLAT_TEX_WIDTH_BITS = 11u;\nconst uint SPLAT_TEX_HEIGHT_BITS = 11u;\nconst uint SPLAT_TEX_DEPTH_BITS = 11u;\nconst uint SPLAT_TEX_LAYER_BITS = SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nconst uint SPLAT_TEX_WIDTH = 1u << SPLAT_TEX_WIDTH_BITS;\nconst uint SPLAT_TEX_HEIGHT = 1u << SPLAT_TEX_HEIGHT_BITS;\nconst uint SPLAT_TEX_DEPTH = 1u << SPLAT_TEX_DEPTH_BITS;\n\nconst uint SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1u;\nconst uint SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1u;\nconst uint SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1u;\n\nconst uint F16_INF = 0x7c00u;\nconst float PI = 3.1415926535897932384626433832795;\n\nconst float INFINITY = 1.0 / 0.0;\nconst float NEG_INFINITY = -INFINITY;\n\nfloat sqr(float x) {\n return x * x;\n}\n\nfloat pow4(float x) {\n float x2 = x * x;\n return x2 * x2;\n}\n\nfloat pow8(float x) {\n float x4 = pow4(x);\n return x4 * x4;\n}\n\nvec3 srgbToLinear(vec3 rgb) {\n return pow(rgb, vec3(2.2));\n}\n\nvec3 linearToSrgb(vec3 rgb) {\n return pow(rgb, vec3(1.0 / 2.2));\n}\n\n// Encode a quaternion (vec4) into a 24‐bit uint with folded octahedral mapping.\nuint encodeQuatOctXy88R8(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float theta = 2.0 * acos(q.w);\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 8 bits (0 to 255)\n uint quantU = uint(clamp(round(u_f * 255.0), 0.0, 255.0));\n uint quantV = uint(clamp(round(v_f * 255.0), 0.0, 255.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 8 bits (0 to 255)\n uint angleInt = uint(clamp(round((theta / 3.14159265359) * 255.0), 0.0, 255.0));\n \n // Pack bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16u) | (quantV << 8u) | quantU;\n}\n\n// Decode a 24‐bit encoded uint into a quaternion (vec4) using the folded octahedral inverse.\nvec4 decodeQuatOctXy88R8(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0xFFu); // bits 0–7\n uint quantV = (encoded >> 8u) & uint(0xFFu); // bits 8–15\n uint angleInt = encoded >> 16u; // bits 16–23\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 255.0;\n float v_f = float(quantV) / 255.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 255.0) * 3.14159265359;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\nuint encodeQuatOctXy1010R12(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float halfTheta = acos(q.w);\n float theta = 2.0 * halfTheta;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 10 bits (0 to 1023)\n uint quantU = uint(clamp(round(u_f * 1023.0), 0.0, 1023.0));\n uint quantV = uint(clamp(round(v_f * 1023.0), 0.0, 1023.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 12 bits (0 to 4095)\n uint angleInt = uint(clamp(round((theta / PI) * 4095.0), 0.0, 4095.0));\n \n // Pack bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20u) | (quantV << 10u) | quantU;\n}\n\nvec4 decodeQuatOctXy1010R12(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0x3FFu); // bits 0–9\n uint quantV = (encoded >> 10u) & uint(0x3FFu); // bits 10–19\n uint angleInt = encoded >> 20u; // bits 20–31\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 1023.0;\n float v_f = float(quantV) / 1023.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 4095.0) * PI;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplatEncoding(\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n uint uQuat = encodeQuatOctXy88R8(quaternion);\n // uint uQuat = encodeQuatXyz888(quaternion);\n // uint uQuat = encodeQuatEulerXyz888(quaternion);\n uvec3 uQuat3 = uvec3(uQuat & 0xffu, (uQuat >> 8u) & 0xffu, (uQuat >> 16u) & 0xffu);\n\n // Encode scales in three uint8s, where 0=>0.0 and 1..=255 stores log scale\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n uvec3 uScales = uvec3(\n (scales.x == 0.0) ? 0u : uint(round(clamp((log(scales.x) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.y == 0.0) ? 0u : uint(round(clamp((log(scales.y) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.z == 0.0) ? 0u : uint(round(clamp((log(scales.z) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u\n );\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) | (uQuat3.x << 16u) | (uQuat3.y << 24u);\n uint word3 = uScales.x | (uScales.y << 8u) | (uScales.z << 16u) | (uQuat3.z << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplat(vec3 center, vec3 scales, vec4 quaternion, vec4 rgba) {\n return packSplatEncoding(center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nvoid unpackSplatEncoding(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec4(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu)\n ).xyz;\n\n uvec3 uScales = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n scales = vec3(\n (uScales.x == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.x - 1u) * lnScaleScale),\n (uScales.y == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.y - 1u) * lnScaleScale),\n (uScales.z == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.z - 1u) * lnScaleScale)\n );\n\n\n uint uQuat = ((word2 >> 16u) & 0xFFFFu) | ((word3 >> 8u) & 0xFF0000u);\n quaternion = decodeQuatOctXy88R8(uQuat);\n // quaternion = decodeQuatXyz888(uQuat);\n // quaternion = decodeQuatEulerXyz888(uQuat);\n}\n\n// Unpack a Gsplat from a uvec4\nvoid unpackSplat(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nuvec4 packSplatCovEncoding(\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 255.0 / (2.0 * (lnScaleMax - lnScaleMin));\n uvec3 uXxyyzz = uvec3(round(clamp((log(xxyyzz) - 2.0 * lnScaleMin) * diagScale, 0.0, 255.0)));\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n ivec3 iXyxzyzCor = ivec3(round(xyxzyzCor * 127.0));\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) |\n ((uint(iXyxzyzCor.y) & 0xffu) << 16u) |\n ((uint(iXyxzyzCor.z) & 0xffu) << 24u);\n uint word3 =\n uXxyyzz.x | (uXxyyzz.y << 8u) | (uXxyyzz.z << 16u) |\n ((uint(iXyxzyzCor.x) & 0xffu) << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\nvoid unpackSplatCovEncoding(uvec4 packedData, out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec3(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu).x\n );\n\n uvec3 uXxyyzz = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n ivec3 iXyxzyzCor = ivec3(int(word3) >> 24, int(word2 << 8u) >> 24, int(word2) >> 24);\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 2.0 * (lnScaleMax - lnScaleMin) / 255.0;\n xxyyzz = exp(2.0 * lnScaleMin + vec3(uXxyyzz) * diagScale);\n\n vec3 xyxzyzCor = vec3(iXyxzyzCor) / 127.0;\n xyxzyz = xyxzyzCor * vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExtCov(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, rgba.b));\n packedData2.x = packHalf2x16(rgba.rg);\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n xyxzyzCor = sign(xyxzyzCor) * clamp(log(abs(xyxzyzCor)), -100.0, -0.0000001);\n xxyyzz = log(xxyyzz);\n\n packedData2.y = packHalf2x16(vec2(xxyyzz.x, xxyyzz.y));\n packedData2.z = packHalf2x16(vec2(xxyyzz.z, xyxzyzCor.x));\n packedData2.w = packHalf2x16(vec2(xyxzyzCor.y, xyxzyzCor.z));\n}\n\nvoid unpackSplatExtCov(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n\n vec2 ab = unpackHalf2x16(packedData.w);\n vec2 rg = unpackHalf2x16(packedData2.x);\n rgba = vec4(rg, ab.y, ab.x);\n\n vec2 xxyy = unpackHalf2x16(packedData2.y);\n vec2 zzxy = unpackHalf2x16(packedData2.z);\n vec2 xzyz = unpackHalf2x16(packedData2.w);\n xxyyzz = exp(vec3(xxyy.x, xxyy.y, zzxy.x));\n xyxzyz = vec3(zzxy.y, xzyz.x, xzyz.y);\n xyxzyz = -sign(xyxzyz) * exp(-abs(xyxzyz));\n xyxzyz *= vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExt(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, 0.0));\n\n packedData2.x = packHalf2x16(rgba.rg);\n packedData2.y = packHalf2x16(vec2(rgba.b, log(scales.x)));\n packedData2.z = packHalf2x16(log(scales.yz));\n packedData2.w = encodeQuatOctXy1010R12(quaternion);\n}\n\nvec4 unpackSplatExtCenterAlpha(uvec4 packedData) {\n return vec4(\n uintBitsToFloat(packedData.x),\n uintBitsToFloat(packedData.y),\n uintBitsToFloat(packedData.z),\n unpackHalf2x16(packedData.w).x\n );\n}\n\nfloat unpackSplatExtAlpha(uvec4 packedData) {\n return unpackHalf2x16(packedData.w).x;\n}\n\nvoid unpackSplatExt(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n rgba.a = unpackHalf2x16(packedData.w).x;\n\n rgba.rg = unpackHalf2x16(packedData2.x);\n vec2 split = unpackHalf2x16(packedData2.y);\n rgba.b = split.x;\n scales.x = exp(split.y);\n scales.yz = exp(unpackHalf2x16(packedData2.z));\n quaternion = decodeQuatOctXy1010R12(packedData2.w);\n}\n\nuint encodeExtRgb(vec3 rgb) {\n vec3 absRgb = abs(rgb);\n float maxAbs = max(absRgb.r, max(absRgb.g, absRgb.b));\n\n int base = clamp(int(floor(log2(maxAbs))) + 15, 0, 31);\n float divisor = exp2(float(base - 15)) / 255.0;\n\n uvec3 uRgb = uvec3(round(clamp(absRgb / divisor, 0.0, 255.0)));\n uint expSigns = (uint(base) << 3u) | ((rgb.r < 0.0 ? 0x1u : 0u) | (rgb.g < 0.0 ? 0x2u : 0u) | (rgb.b < 0.0 ? 0x4u : 0u));\n return uRgb.r | (uRgb.g << 8u) | (uRgb.b << 16u) | (expSigns << 24u);\n}\n\nvec3 decodeExtRgb(uint encoded) {\n uint biasedBase = (encoded >> 27u) & 0x1fu;\n float divisor = exp2(float(int(biasedBase) - 15)) / 255.0;\n\n vec3 rgb = vec3(uvec3(encoded & 0xffu, (encoded >> 8u) & 0xffu, (encoded >> 16u) & 0xffu));\n rgb *= divisor;\n\n return vec3(\n ((encoded & 0x1000000u) != 0u) ? -rgb.r : rgb.r,\n ((encoded & 0x2000000u) != 0u) ? -rgb.g : rgb.g,\n ((encoded & 0x4000000u) != 0u) ? -rgb.b : rgb.b\n );\n}\n\n// Rotate vector v by quaternion q\nvec3 quatVec(vec4 q, vec3 v) {\n // Rotate vector v by quaternion q\n vec3 t = 2.0 * cross(q.xyz, v);\n return v + q.w * t + cross(q.xyz, t);\n}\n\n// Apply quaternion q1 after quaternion q2\nvec4 quatQuat(vec4 q1, vec4 q2) {\n return vec4(\n q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,\n q1.w * q2.y - q1.x * q2.z + q1.y * q2.w + q1.z * q2.x,\n q1.w * q2.z + q1.x * q2.y - q1.y * q2.x + q1.z * q2.w,\n q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z\n );\n}\n\nmat3 quaternionToMatrix(vec4 q) {\n return mat3(\n (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n (2.0 * (q.x * q.y + q.w * q.z)),\n (2.0 * (q.x * q.z - q.w * q.y)),\n (2.0 * (q.x * q.y - q.w * q.z)),\n (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n (2.0 * (q.y * q.z + q.w * q.x)),\n (2.0 * (q.x * q.z + q.w * q.y)),\n (2.0 * (q.y * q.z - q.w * q.x)),\n (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\nmat3 scaleQuaternionToMatrix(vec3 s, vec4 q) {\n // Compute the matrix of scaling by s then rotating by q\n return mat3(\n s.x * (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n s.x * (2.0 * (q.x * q.y + q.w * q.z)),\n s.x * (2.0 * (q.x * q.z - q.w * q.y)),\n s.y * (2.0 * (q.x * q.y - q.w * q.z)),\n s.y * (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n s.y * (2.0 * (q.y * q.z + q.w * q.x)),\n s.z * (2.0 * (q.x * q.z + q.w * q.y)),\n s.z * (2.0 * (q.y * q.z - q.w * q.x)),\n s.z * (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\n// Spherical lerp between two quaternions\nvec4 slerp(vec4 q1, vec4 q2, float t) {\n // Compute the cosine of the angle between the two vectors\n float cosHalfTheta = dot(q1, q2);\n\n // If q1=q2 or q1=-q2 then theta = 0 and we can return q1\n if (abs(cosHalfTheta) >= 0.999) {\n return q1;\n }\n \n // If q1 and q2 are more than 180 degrees apart, \n // we need to negate one to get the shortest path\n if (cosHalfTheta < 0.0) {\n q2 = -q2;\n cosHalfTheta = -cosHalfTheta;\n }\n\n // Calculate temporary values\n float halfTheta = acos(cosHalfTheta);\n float sinHalfTheta = sqrt(1.0 - cosHalfTheta * cosHalfTheta);\n\n // Calculate the interpolation factors\n float ratioA = sin((1.0 - t) * halfTheta) / sinHalfTheta;\n float ratioB = sin(t * halfTheta) / sinHalfTheta;\n\n // Calculate the interpolated quaternion\n return q1 * ratioA + q2 * ratioB;\n}\n\nivec3 splatTexCoord(int index) {\n uint x = uint(index) & SPLAT_TEX_WIDTH_MASK;\n uint y = (uint(index) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK;\n uint z = uint(index) >> SPLAT_TEX_LAYER_BITS;\n return ivec3(x, y, z);\n}\n\nivec3 pagedSplatTexCoord(int index) {\n return ivec3(index & 255, (index >> 8) & 255, index >> 16);\n}\n\nvec4 uintToVec4(uint u32) {\n uvec4 bytes = uvec4(\n u32 & 0xFFu,\n (u32 >> 8u) & 0xFFu,\n (u32 >> 16u) & 0xFFu,\n (u32 >> 24u) & 0xFFu\n );\n return vec4(bytes) / 255.0;\n}\n\nvec4 floatToVec4(float f) {\n uint u32 = floatBitsToUint(f);\n return uintToVec4(u32);\n}\n\nvec3 debugColorHue(uint i) {\n // Golden ratio conjugate; spreads hues evenly\n float hue = fract(float(i) * 0.61803398875);\n // HSV to RGB with fixed S/V\n vec3 rgb = clamp(abs(mod(hue*6.0 + vec3(0.0,4.0,2.0), 6.0) - 3.0) - 1.0, 0.0, 1.0);\n return mix(vec3(1.0), rgb, 0.85); // saturation ~0.85, value ~1.0\n}\n","\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\n#include \n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n if (false) {\n // if (debugFlag) {\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n float min1a = min(1.0, a);\n rgba.a = mix(min1a, min1a * exp(exponent), falloff);\n } else {\n // New falloff function, more or less equivalent\n if (rgba.a <= 1.0) {\n rgba.a = mix(rgba.a, rgba.a * exp(-0.5 * z2), falloff);\n } else {\n float a = exp((rgba.a*rgba.a - 1.0) / 2.718281828459045);\n float alpha = 1.0 - pow(1.0 - exp(-0.5 * z2), a);\n rgba.a = mix(1.0, alpha, falloff);\n }\n }\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n\n #include \n}\n","\nprecision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\nflat out float adjustedStdDev;\n\n// uniform uint numSplats;\nuniform vec2 renderSize;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform mat3 renderToViewBasis;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform bool enableExtSplats;\nuniform bool enableCovSplats;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool enable2DGS;\nuniform bool lodInflate;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2D ordering;\nuniform usampler2DArray extSplats;\nuniform usampler2DArray extSplats2;\n\n// Required by logdepthbuf_pars_vertex (normally defined in three.js #include )\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == -1.0;\n}\n\n#include \n\nvoid main() {\n // Default to outside the frustum so it's discarded if we return early\n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n ivec2 orderingCoord = ivec2((gl_InstanceID >> 2) & 4095, gl_InstanceID >> 14);\n uint splatIndex = texelFetch(ordering, orderingCoord, 0)[gl_InstanceID & 3];\n if (splatIndex == 0xffffffffu) {\n // Special value reserved for \"no splat\"\n return;\n }\n\n ivec3 texCoord = splatTexCoord(int(splatIndex));\n vec3 center, scales, xxyyzz, xyxzyz;\n vec4 quaternion, rgba;\n mat3 cov3D;\n bvec3 zeroScales = bvec3(false);\n\n if (enableExtSplats) {\n uvec4 ext1 = texelFetch(extSplats, texCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if ((alpha == 0.0) || (alpha < minAlpha)) {\n return;\n }\n uvec4 ext2 = texelFetch(extSplats2, texCoord, 0);\n\n if (!enableCovSplats) {\n unpackSplatExt(ext1, ext2, center, scales, quaternion, rgba);\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatExtCov(ext1, ext2, center, rgba, xxyyzz, xyxzyz);\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n } else {\n uvec4 packedData = texelFetch(extSplats, texCoord, 0);\n if (!enableCovSplats) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatCovEncoding(packedData, center, rgba, xxyyzz, xyxzyz, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n\n rgba.a *= 2.0;\n if ((rgba.a == 0.0) || (rgba.a < minAlpha)) {\n return;\n }\n }\n\n adjustedStdDev = maxStdDev;\n if (rgba.a > 1.0) {\n // Stretch 1..2 to 1..5\n rgba.a = min(rgba.a * 4.0 - 3.0, 5.0);\n\n if (lodInflate) {\n // Adjust size to componsate for loss of opacity\n float opacity = exp((rgba.a * rgba.a - 1.0) / 2.718281828459045);\n float rescale = pow(opacity, 1.0 / 3.0);\n scales *= rescale;\n rgba.a = 1.0;\n }\n\n // Expand the maximum std dev to approximately cover the larger range\n adjustedStdDev = maxStdDev + 0.7 * (rgba.a - 1.0);\n }\n\n // Compute the view space center of the splat\n vec3 viewCenter = (!enableCovSplats ? quatVec(renderToViewQuat, center) : (renderToViewBasis * center)) + renderToViewPos;\n\n // Discard splats behind the camera\n if (viewCenter.z >= 0.0) {\n return;\n }\n\n // Compute the clip space center of the splat\n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n // Discard splats outside near/far planes\n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n // Discard splats more than clipXY times outside the XY frustum\n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n vRgba = rgba;\n vSplatUv = position.xy * adjustedStdDev;\n\n // Record the splat index for entropy\n vSplatIndex = splatIndex;\n\n if (!enableCovSplats) {\n // Compute view space quaternion of splat\n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n\n #include \n return;\n }\n\n // Compute the 3D covariance matrix of the splat\n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n cov3D = RS * transpose(RS);\n } else {\n cov3D = mat3(\n xxyyzz.x, xyxzyz.x, xyxzyz.y,\n xyxzyz.x, xxyyzz.y, xyxzyz.z,\n xyxzyz.y, xyxzyz.z, xxyyzz.z\n );\n cov3D = renderToViewBasis * cov3D * transpose(renderToViewBasis);\n }\n\n // Compute the Jacobian of the splat's projection at its center\n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if (isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n // Compute the 2D covariance by projecting the 3D covariance\n // and picking out the XY plane components.\n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n // Optionally pre-blur the splat to match non-antialias optimized splats\n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n // Do convolution with a 0.5-pixel Gaussian for anti-aliasing: sqrt(0.3) ~= 0.5\n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n // Compute anti-aliasing intensity scaling factor\n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n vRgba.a = rgba.a;\n\n // Compute the eigenvalue and eigenvectors of the 2D covariance matrix\n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = (abs(b) > 0.001) ? normalize(vec2(b, eigen1 - a))\n : ((a >= d) ? vec2(1.0, 0.0) : vec2(0.0, 1.0));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n // Compute the NDC coordinates for the ellipsoid's diagonal axes.\n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n\n // Compute NDC center of the splat\n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n\n #include \n}\n","import * as THREE from \"three\";\n\nimport computeUvec4Template from \"./shaders/computeUvec4.glsl\";\nimport computeUvec4Vec4Template from \"./shaders/computeUvec4_Vec4.glsl\";\nimport computeUvec4x2Vec4Template from \"./shaders/computeUvec4x2_Vec4.glsl\";\nimport computeVec4Template from \"./shaders/computeVec4.glsl\";\nimport oldSplatFragment from \"./shaders/oldSplatFragment.glsl\";\nimport oldSplatVertex from \"./shaders/oldSplatVertex.glsl\";\nimport splatDefines from \"./shaders/splatDefines.glsl\";\nimport splatFragment from \"./shaders/splatFragment.glsl\";\nimport splatVertex from \"./shaders/splatVertex.glsl\";\n\nlet shaders: Record | null = null;\n\nexport function getShaders(): Record {\n if (!shaders) {\n // @ts-ignore\n THREE.ShaderChunk.splatDefines = splatDefines;\n shaders = {\n oldSplatVertex,\n oldSplatFragment,\n splatVertex,\n splatFragment,\n computeVec4Template,\n computeUvec4Vec4Template,\n computeUvec4x2Vec4Template,\n computeUvec4Template,\n };\n }\n return shaders;\n}\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { type Dyno, OutputRgba8, dynoBlock } from \"./dyno\";\nimport { DynoProgram, DynoProgramTemplate } from \"./dyno/program\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize } from \"./utils\";\n\n// Readback can be used to run a Dyno program that maps an index to a 32-bit\n// RGBA8 value, which is the only allowed, portable readback format for WebGL2.\n// Using data packing and conversion you can read back any 32-bit value, which\n// Spark uses to read back 2 float16 Gsplat distance values per index.\n\nexport type Rgba8Readback = Dyno<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n\n// Readback can be performed with various typed buffers, making it convenient\n// to encode readback data in a variety of formats.\n\nexport type ReadbackBuffer =\n | ArrayBuffer\n | Uint8Array\n | Uint8ClampedArray\n | Int8Array\n | Uint16Array\n | Int16Array\n | Uint32Array\n | Int32Array\n | Float32Array;\n\nexport class Readback {\n renderer?: THREE.WebGLRenderer;\n target?: THREE.WebGLArrayRenderTarget;\n capacity: number;\n count: number;\n\n constructor({ renderer }: { renderer?: THREE.WebGLRenderer } = {}) {\n this.renderer = renderer;\n this.capacity = 0;\n this.count = 0;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n }\n\n // Ensure we have a buffer large enough for the readback of count indices.\n // Pass in previous bufer of the desired type.\n static ensureBuffer(count: number, buffer: B): B {\n // Readback is performed in a 2D array of pixels, so round up with SPLAT_TEX_WIDTH\n const roundedCount =\n Math.ceil(Math.max(1, count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const bytes = roundedCount * 4;\n if (buffer.byteLength >= bytes) {\n return buffer;\n }\n\n // Need a larger buffer, create a new one of the same type\n const newBuffer = new ArrayBuffer(bytes);\n if (buffer instanceof ArrayBuffer) {\n return newBuffer as B;\n }\n\n const ctor = buffer.constructor as { new (arrayBuffer: ArrayBuffer): B };\n return new ctor(newBuffer) as B;\n }\n\n ensureBuffer(count: number, buffer: B): B {\n return Readback.ensureBuffer(count, buffer);\n }\n\n // Ensure our render target is large enough for the readback of capacity indices.\n ensureCapacity(capacity: number) {\n const { width, height, depth, maxSplats } = getTextureSize(capacity);\n if (!this.target || maxSplats > this.capacity) {\n this.dispose();\n this.capacity = maxSplats;\n\n // The only portable readback format for WebGL2 is RGBA8\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAFormat;\n this.target.texture.type = THREE.UnsignedByteType;\n this.target.texture.internalFormat = \"RGBA8\";\n this.target.scissorTest = true;\n }\n }\n\n // Get a program and THREE.RawShaderMaterial for a given Rgba8Readback,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(reader: Rgba8Readback): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = Readback.readbackProgram.get(reader);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n reader.inputs.index = index;\n const rgba8 = new OutputRgba8({ rgba8: reader.outputs.rgba8 });\n return { rgba8 };\n },\n );\n if (!Readback.programTemplate) {\n Readback.programTemplate = new DynoProgramTemplate(\n getShaders().computeVec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { rgba8: \"target\" },\n template: Readback.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n Readback.readbackProgram.set(reader, program);\n }\n\n const material = program.prepareMaterial();\n Readback.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private process({\n count,\n material,\n }: { count: number; material: THREE.RawShaderMaterial }) {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n // Run the program in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of indices.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = 0;\n material.uniforms.targetCount.value = count;\n let baseIndex = 0;\n\n // Keep generating layers until completed count items\n while (baseIndex < count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((count - layerBase) / SPLAT_TEX_WIDTH),\n );\n material.uniforms.targetLayer.value = layer;\n\n // Render the desired portion of the layer\n this.target.scissor.set(0, 0, SPLAT_TEX_WIDTH, layerYEnd);\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n Readback.fullScreenQuad.render(renderer);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.count = count;\n }\n\n private async read({\n readback,\n }: { readback: B }): Promise {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(this.count / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(\n readback instanceof ArrayBuffer ? readback : readback.buffer,\n );\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < this.count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((this.count - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n renderer.setRenderTarget(this.target, layer);\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n const promise = renderer?.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n );\n promises.push(promise);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n // const gl = renderer.getContext() as WebGL2RenderingContext;\n // gl.flush();\n return Promise.all(promises).then(() => readback);\n }\n\n // Perform render operation to run the Rgba8Readback program\n // but don't perform the readback yet.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer?: THREE.WebGLRenderer }) {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n this.process({ count, material });\n this.resetRenderState(this.renderer, renderState);\n }\n\n // Perform a readback of the render target, returning a buffer of the\n // given type.\n async readback({\n readback,\n }: { readback: B }): Promise {\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n const renderState = this.saveRenderState(this.renderer);\n const promise = this.read({ readback });\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n // Perform a render and readback operation for the given Rgba8Readback,\n // and readback buffer (call ensureBuffer first).\n async renderReadback({\n reader,\n count,\n renderer,\n readback,\n }: {\n reader: Rgba8Readback;\n count: number;\n renderer?: THREE.WebGLRenderer;\n readback: B;\n }): Promise {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n\n // Generate output\n this.process({ count, material });\n\n // Initiate readback\n const promise = this.read({ readback });\n\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n getTexture(): THREE.DataArrayTexture | undefined {\n return this.target?.texture;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for Rgba8Readback programs\n static readbackProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n}\n","import * as THREE from \"three\";\n\nimport { DynoPackedSplats, type PackedSplats } from \"./PackedSplats\";\nimport { Readback, type Rgba8Readback } from \"./Readback\";\nimport { SPLAT_TEX_WIDTH } from \"./defines\";\nimport {\n Dyno,\n type DynoBlock,\n DynoInt,\n DynoUniform,\n type DynoVal,\n add,\n dynoBlock,\n readPackedSplatRange,\n splitGsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize } from \"./utils\";\n\n// An RgbaArray is a collection of ordered RGBA8 values, which can be used as a dyno\n// data source, for example for recoloring Gsplats via SplatMesh.splatRgba.\n// It can be instantiated from a Uint8Array of RGBA8 values, or it can be\n// generated using a Rgba8Readback dyno program.\n\nexport type RgbaArrayOptions = {\n // Reserve space for at least this many RGBA values.\n capacity?: number;\n // Use the provided array of RGBA8 values as the source.\n array?: Uint8Array;\n // The number of actual RGBA8 values in the array.\n count?: number;\n};\n\nexport class RgbaArray {\n capacity = 0;\n count = 0;\n array: Uint8Array | null = null;\n\n readback: Readback | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source array is updated to have it upload to GPU\n needsUpdate = true;\n\n // Use this as a TRgbaArray in a dyno graph\n dyno: DynoUniform;\n\n constructor(options: RgbaArrayOptions = {}) {\n this.dyno = new DynoUniform({\n key: \"rgbaArray\",\n type: TRgbaArray,\n globals: () => [defineRgbaArray],\n value: {\n texture: RgbaArray.getEmpty(),\n count: 0,\n },\n update: (value) => {\n value.texture = this.getTexture();\n value.count = this.count;\n return value;\n },\n });\n\n if (options.array) {\n // Initialize with given array\n this.array = options.array;\n const splatCount = Math.floor(this.array.length / 4);\n this.capacity = Math.ceil(splatCount / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (this.capacity > splatCount) {\n this.array = new Uint8Array(this.capacity * 4);\n this.array.set(options.array);\n }\n this.count = Math.min(\n splatCount,\n options.count ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.capacity = options.capacity ?? 0;\n this.count = 0;\n }\n }\n\n // Free up resources\n dispose() {\n if (this.readback) {\n this.readback.dispose();\n this.readback = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source = null;\n }\n }\n\n // Ensure that our array is large enough to hold capacity RGBA8 values.\n ensureCapacity(capacity: number): Uint8Array {\n if (!this.array || capacity > (this.array?.length ?? 0) / 4) {\n this.capacity = getTextureSize(capacity).maxSplats;\n const newArray = new Uint8Array(this.capacity * 4);\n if (this.array) {\n // Copy over existing data\n newArray.set(this.array);\n }\n this.array = newArray;\n }\n return this.array;\n }\n\n // Get the THREE.DataArrayTexture from either the readback or the source.\n getTexture(): THREE.DataArrayTexture {\n let texture = this.readback?.getTexture();\n if (this.source || this.array) {\n texture = this.maybeUpdateSource();\n }\n return texture ?? RgbaArray.getEmpty();\n }\n\n // Create or get a THREE.DataArrayTexture from the data array.\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.array) {\n throw new Error(\"No array\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.capacity !== width * height * depth) {\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n const { width, height, depth } = getTextureSize(this.capacity);\n this.source = new THREE.DataArrayTexture(\n this.array as Uint8Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAFormat;\n this.source.type = THREE.UnsignedByteType;\n this.source.internalFormat = \"RGBA8\";\n this.source.needsUpdate = true;\n } else if (this.array.buffer !== this.source.image.data.buffer) {\n this.source.image.data = new Uint8Array(this.array.buffer);\n }\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n // Generate the RGBA8 values from a Rgba8Readback dyno program.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer: THREE.WebGLRenderer }) {\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n this.readback.render({ reader, count, renderer });\n this.capacity = this.readback.capacity;\n this.count = this.readback.count;\n }\n\n // Extract the RGBA8 values from a PackedSplats collection.\n fromPackedSplats({\n packedSplats,\n base,\n count,\n renderer,\n }: {\n packedSplats: PackedSplats;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n const { dynoSplats, dynoBase, dynoCount, reader } = RgbaArray.makeDynos();\n dynoSplats.packedSplats = packedSplats;\n dynoBase.value = base;\n dynoCount.value = count;\n this.render({ reader, count, renderer });\n return this;\n }\n\n // Read back the RGBA8 values from the readback buffer.\n async read(): Promise {\n if (!this.readback) {\n throw new Error(\"No readback\");\n }\n if (!this.array || this.array.length < this.count * 4) {\n this.array = new Uint8Array(this.capacity * 4);\n }\n const result = await this.readback.readback({ readback: this.array });\n return result.subarray(0, this.count * 4);\n }\n\n async getArray(): Promise {\n if (this.readback) {\n return await this.read();\n }\n if (this.array) {\n return this.array;\n }\n throw new Error(\"No array\");\n }\n\n private static emptySource: THREE.DataArrayTexture | null = null;\n\n // Can be used where you need an uninitialized THREE.DataArrayTexture like\n // a uniform you will update with the result of this.getTexture() later.\n static getEmpty(): THREE.DataArrayTexture {\n if (!RgbaArray.emptySource) {\n const emptyArray = new Uint8Array(1 * 4);\n RgbaArray.emptySource = new THREE.DataArrayTexture(emptyArray, 1, 1, 1);\n RgbaArray.emptySource.format = THREE.RGBAFormat;\n RgbaArray.emptySource.type = THREE.UnsignedByteType;\n RgbaArray.emptySource.internalFormat = \"RGBA8\";\n RgbaArray.emptySource.needsUpdate = true;\n }\n return RgbaArray.emptySource;\n }\n\n private static dynos: {\n dynoSplats: DynoPackedSplats;\n dynoBase: DynoInt;\n dynoCount: DynoInt;\n reader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n } | null = null;\n\n // Create a dyno program that can extract RGBA8 values from a PackedSplats\n private static makeDynos() {\n if (!RgbaArray.dynos) {\n const dynoSplats = new DynoPackedSplats();\n const dynoBase = new DynoInt({ value: 0 });\n const dynoCount = new DynoInt({ value: 0 });\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n index = add(index, dynoBase);\n const gsplat = readPackedSplatRange(\n dynoSplats,\n index,\n dynoBase,\n dynoCount,\n );\n return { rgba8: splitGsplat(gsplat).outputs.rgba };\n },\n );\n RgbaArray.dynos = { dynoSplats, dynoBase, dynoCount, reader };\n }\n return RgbaArray.dynos;\n }\n}\n\n// Dyno types and definitions\n\nexport const TRgbaArray = { type: \"RgbaArray\" } as { type: \"RgbaArray\" };\n\nexport const defineRgbaArray = unindent(`\n struct RgbaArray {\n sampler2DArray texture;\n int count;\n };\n`);\n\nexport function readRgbaArray(\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal<\"vec4\"> {\n const dyno = new Dyno<\n { rgba: typeof TRgbaArray; index: \"int\" },\n { rgba: \"vec4\" }\n >({\n inTypes: { rgba: TRgbaArray, index: \"int\" },\n outTypes: { rgba: \"vec4\" },\n inputs: { rgba, index },\n globals: () => [defineRgbaArray],\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n if ((${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.rgba} = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n } else {\n ${outputs.rgba} = vec4(0.0, 0.0, 0.0, 0.0);\n }\n `),\n });\n return dyno.outputs.rgba;\n}\n","import * as THREE from \"three\";\n\nimport {\n CovSplat,\n Dyno,\n DynoInt,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { newArray } from \"./utils\";\n\n// Spark provides the ability to apply \"edits\" to Gsplats as part of the standard\n// SplatMesh pipeline. These edits take the form of a sequence of operations,\n// applied one at a time to the set of Gsplats in its packedSplats. Each operation\n// evaluates a 7-dimensional field (RGBA and XYZ displacement) at each point in\n// space that derives from N=1 or more Signed Distance Field shapes (such as spheres,\n// boxes, planes, etc.), blended together and across inside-outisde boundaries.\n\n// The result is a an RGBA,XYZ value for each point in space, which combined with\n// SplatEditRgbaBlendMode.MULTIPLY/SET_RGB/ADD_RGBA can be used to create special\n// effects, for example simulating simple lighting or applying deformations in space,\n// whose parameters can be updated each frame to create animated effects.\n\n// RGBA-XYZ values are computed by blending together values from all SDF shapes using\n// the exponential \"softmax\" function, which is commutative (so blending order within\n// a SplatEdit operation doesn't matter). The parameter SplatEdit.sdfSmooth controls\n// the blending scale between SDF shapes, while SplatEdit.softEdge controls the scale\n// of soft inside-outside shape edit blending. Their default values start at 0.0 and\n// should be increased to soften the effect.\n\n// Note that XYZ displacement values are blended in the same way as RGBA, with a\n// resulting displacement field that can be quite complex but \"softly\" blending\n// between shapes. These RGBA-XYZ edits, along with time-based and overlapping\n// fields can create many interesting animations and special effects, such as\n// rippling leaves in the wind, an angry fire, or a looping water effects. Simply\n// update the SplatEdit and SplatEditSdf objects and the operations will be applied\n// immediately to the Gsplats in the scene.\n\nexport enum SplatEditSdfType {\n // ALL: Affects all points in space\n ALL = \"all\",\n // PLANE: Infinite plane (position, rotation)\n PLANE = \"plane\",\n // SPHERE: Sphere (position, radius)\n SPHERE = \"sphere\",\n // BOX: Rounded box (position, rotation, sizes, radius)\n BOX = \"box\",\n // ELLIPSOID: Ellipsoid (position, rotation, sizes)\n ELLIPSOID = \"ellipsoid\",\n // CYLINDER: Cylinder (position, rotation, radius, size_y)\n CYLINDER = \"cylinder\",\n // CAPSULE: Capsule (position, rotation, radius, size_y)\n CAPSULE = \"capsule\",\n // INFINITE_CONE: Infinite cone (position, rotation, radius=angle)\n INFINITE_CONE = \"infinite_cone\",\n}\n\nfunction sdfTypeToNumber(type: SplatEditSdfType) {\n switch (type) {\n case SplatEditSdfType.ALL:\n return 0;\n case SplatEditSdfType.PLANE:\n return 1;\n case SplatEditSdfType.SPHERE:\n return 2;\n case SplatEditSdfType.BOX:\n return 3;\n case SplatEditSdfType.ELLIPSOID:\n return 4;\n case SplatEditSdfType.CYLINDER:\n return 5;\n case SplatEditSdfType.CAPSULE:\n return 6;\n case SplatEditSdfType.INFINITE_CONE:\n return 7;\n default:\n throw new Error(`Unknown SDF type: ${type}`);\n }\n}\n\nexport enum SplatEditRgbaBlendMode {\n // The RGBA of the splat is multiplied component-wise by the SDF’s\n // RGBA value at that point in space.\n MULTIPLY = \"multiply\",\n // Ignore the Alpha value in the SDF, but set the splat’s RGB to\n // equal the SDF’s RGB value at that point.\n SET_RGB = \"set_rgb\",\n // Add the SDF’s RGBA value at that point to the RGBA value of\n // the Gsplat. This can produce hyper-saturated results, but is useful\n // to easily “light up” areas.\n ADD_RGBA = \"add_rgba\",\n}\n\nfunction rgbaBlendModeToNumber(mode: SplatEditRgbaBlendMode) {\n switch (mode) {\n case SplatEditRgbaBlendMode.MULTIPLY:\n return 0;\n case SplatEditRgbaBlendMode.SET_RGB:\n return 1;\n case SplatEditRgbaBlendMode.ADD_RGBA:\n return 2;\n default:\n throw new Error(`Unknown blend mode: ${mode}`);\n }\n}\n\nexport type SplatEditSdfOptions = {\n // The SDF shape type: ALL, PLANE, SPHERE, BOX, ELLIPSOID, CYLINDER, CAPSULE,\n // or INFINITE_CONE. (default: SplatEditSdfType.SPHERE)\n type?: SplatEditSdfType;\n // Invert the SDF evaluation, swapping inside and outside regions. (default: false)\n invert?: boolean;\n // Opacity / \"alpha\" value used differently by blending modes (default: 1.0)\n opacity?: number;\n // RGB color applied within the shape. (default: new THREE.Color(1.0, 1.0, 1.0))\n color?: THREE.Color;\n // XYZ displacement applied to splat positions inside the shape.\n // (default: new THREE.Vector3(0.0, 0.0, 0.0))\n displace?: THREE.Vector3;\n // Shape-specific size parameter: sphere radius, box corner rounding,\n // cylinder/capsule radius, or for the infinite cone the angle factor\n // (opening half-angle = π/4 × radius).\n radius?: number;\n};\n\nexport class SplatEditSdf extends THREE.Object3D {\n type: SplatEditSdfType;\n invert: boolean;\n opacity: number;\n color: THREE.Color;\n displace: THREE.Vector3;\n radius: number;\n\n constructor(options: SplatEditSdfOptions = {}) {\n super();\n const { type, invert, opacity, color, displace, radius } = options;\n this.type = type ?? SplatEditSdfType.SPHERE;\n this.invert = invert ?? false;\n this.opacity = opacity ?? 1.0;\n this.color = color ?? new THREE.Color(1.0, 1.0, 1.0);\n this.displace = displace ?? new THREE.Vector3(0.0, 0.0, 0.0);\n this.radius = radius ?? 0.0;\n }\n}\n\nexport type SplatEditOptions = {\n // Name of this edit operation. If you omit it, a default \"Edit 1\", \"Edit 2\", ...\n // is assigned.\n name?: string;\n // How the SDF’s RGBA modifies each splat’s RGBA: multiply, overwrite RGB,\n // or add RGBA. (default: MULTIPLY)\n rgbaBlendMode?: SplatEditRgbaBlendMode;\n // Smoothing (in world‐space units) for blending between multiple SDF shapes\n // at their boundaries. (default: 0.0)\n sdfSmooth?: number;\n // Soft‐edge falloff radius (in world‐space units) around each SDF shape’s surface.\n // (default: 0.0)\n softEdge?: number;\n // Invert the SDF evaluation (inside/outside swap). (default: false)\n invert?: boolean;\n // Explicit array of SplatEditSdf objects to include. If null, any child\n // SplatEditSdf instances are used.\n sdfs?: SplatEditSdf[];\n};\n\nexport class SplatEdit extends THREE.Object3D {\n // ordering used to apply SplatEdit operations to Gsplats. This is implicitly\n // increased with each new SplatEdit. Reassigning ordering can be used to\n // reorder the operations.\n ordering: number;\n rgbaBlendMode: SplatEditRgbaBlendMode;\n sdfSmooth: number;\n softEdge: number;\n invert: boolean;\n\n // Optional list of explicit SDFs to including in this edit. If it is null, then\n // any SplatEditSdf children in the scene graph will be added automatically.\n sdfs: SplatEditSdf[] | null;\n\n // The next ordering number to use for a new SplatEdit, auto-incremented\n static nextOrdering = 1;\n\n constructor(options: SplatEditOptions = {}) {\n const {\n name,\n rgbaBlendMode = SplatEditRgbaBlendMode.MULTIPLY,\n sdfSmooth = 0.0,\n softEdge = 0.0,\n invert = false,\n sdfs = null,\n } = options;\n\n super();\n this.rgbaBlendMode = rgbaBlendMode;\n this.sdfSmooth = sdfSmooth;\n this.softEdge = softEdge;\n this.invert = invert;\n this.sdfs = sdfs;\n // Assign and auto-increment unique ordering number for this edit\n this.ordering = SplatEdit.nextOrdering++;\n // Automatically assign a default name if not provided\n this.name = name ?? `Edit ${this.ordering}`;\n }\n\n addSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n this.sdfs = [];\n }\n if (!this.sdfs.includes(sdf)) {\n this.sdfs.push(sdf);\n }\n }\n\n removeSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n return;\n }\n this.sdfs = this.sdfs.filter((s) => s !== sdf);\n }\n}\n\n// Dyno implementation of RGBA-XYZ SDF editing.\n// The SDFs are encoded in a texture while the edits are encoded\n// as a uniform uvec4 array.\n\nexport class SplatEdits {\n // Maximum number of SDFs allocated\n maxSdfs: number;\n // Number of SDFs currently in use\n numSdfs: number;\n // Encoded SDF data\n sdfData: Uint32Array;\n // Float interpretation of SDF data\n sdfFloatData: Float32Array;\n // Texture with encoded SDF data\n sdfTexture: THREE.DataTexture;\n // An SdfArray dyno uniform\n dynoSdfArray: DynoUniform;\n\n // Maximum number of edits allocated\n maxEdits: number;\n // Number of edits currently in use\n numEdits: number;\n // Encoded edit data\n editData: Uint32Array;\n // Float interpretation of edit data\n editFloatData: Float32Array;\n // A dyno uniform for the number of edits\n dynoNumEdits: DynoUniform<\"int\", \"numEdits\">;\n // A dyno uniform for the encoded edits, one uvec4 per edit\n dynoEdits: DynoUniform<\"uvec4\", \"edits\">;\n\n constructor({ maxSdfs, maxEdits }: { maxSdfs?: number; maxEdits?: number }) {\n // Allocate at least 16 SDFs for efficiency\n this.maxSdfs = Math.max(16, maxSdfs ?? 0);\n this.numSdfs = 0;\n\n // Allocate space: 8 x (u)vec4 values per SDF, Uint32 and Float32 arrays\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n this.dynoSdfArray = new DynoUniform({\n key: \"sdfArray\",\n type: SdfArray,\n globals: () => [defineSdfArray],\n value: {\n numSdfs: 0,\n sdfTexture: this.sdfTexture,\n },\n update: (uniform) => {\n uniform.numSdfs = this.numSdfs;\n uniform.sdfTexture = this.sdfTexture;\n return uniform;\n },\n });\n\n // Allocate at least 16 edits slots for efficiency\n this.maxEdits = Math.max(16, maxEdits ?? 0);\n this.numEdits = 0;\n // Allocate space: 1 uvec4 per edit\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoNumEdits = new DynoInt({ value: 0 });\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n }\n\n private newSdfTexture(data: Uint32Array, maxSdfs: number) {\n const texture = new THREE.DataTexture(\n data,\n 8,\n maxSdfs,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n }\n\n private newEdits(data: Uint32Array, maxEdits: number) {\n return new DynoUniform({\n key: \"edits\",\n type: \"uvec4\",\n count: maxEdits,\n globals: () => [defineEdit],\n value: data,\n });\n }\n\n // Ensure our SDF texture and edits uniform array have enough capacity.\n // Reallocate if not.\n private ensureCapacity({\n maxSdfs,\n maxEdits,\n }: { maxSdfs: number; maxEdits: number }): boolean {\n let dynoUpdated = false;\n if (maxSdfs > this.sdfTexture.image.height) {\n this.sdfTexture.dispose();\n // At least double the size to avoid frequent reallocations\n this.maxSdfs = Math.max(this.maxSdfs * 2, maxSdfs);\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n }\n if (maxEdits > (this.dynoEdits.count ?? 0)) {\n // At least double the size to avoid frequent reallocations\n this.maxEdits = Math.max(this.maxEdits * 2, maxEdits);\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n dynoUpdated = true;\n }\n return dynoUpdated;\n }\n\n private updateEditData(offset: number, value: number): boolean {\n // Update an edit uint32 value and return true if it changed\n const updated = this.editData[offset] !== value;\n this.editData[offset] = value;\n return updated;\n }\n\n private updateEditFloatData(offset: number, value: number): boolean {\n // Update an edit float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.editFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.editFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeEdit(\n editIndex: number,\n {\n sdfFirst,\n sdfCount,\n invert,\n rgbaBlendMode,\n softEdge,\n sdfSmooth,\n }: {\n sdfFirst: number;\n sdfCount: number;\n invert: boolean;\n rgbaBlendMode: number;\n softEdge: number;\n sdfSmooth: number;\n },\n ): boolean {\n const base = editIndex * 4;\n let updated = false;\n // Encode the edit fields into the editData array and check if any changed\n updated =\n this.updateEditData(base + 0, rgbaBlendMode | (invert ? 1 << 8 : 0)) ||\n updated;\n updated =\n this.updateEditData(base + 1, sdfFirst | (sdfCount << 16)) || updated;\n updated = this.updateEditFloatData(base + 2, softEdge) || updated;\n updated = this.updateEditFloatData(base + 3, sdfSmooth) || updated;\n return updated;\n }\n\n private updateSdfData(offset: number, value: number): boolean {\n // Update an SDF uint32 value and return true if it changed\n const updated = this.sdfData[offset] !== value;\n this.sdfData[offset] = value;\n return updated;\n }\n\n private updateSdfFloatData(offset: number, value: number): boolean {\n // Update an SDF float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.sdfFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.sdfFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeSdf(\n sdfIndex: number,\n {\n sdfType,\n invert,\n center,\n quaternion,\n scale,\n sizes,\n }: {\n sdfType: number;\n invert?: boolean;\n center?: THREE.Vector3;\n quaternion?: THREE.Quaternion;\n scale?: THREE.Vector3;\n sizes?: THREE.Vector4;\n },\n values: THREE.Vector4[],\n ): boolean {\n // Encode the SDF fields into the sdfData array and check if any changed\n const base = sdfIndex * (8 * 4);\n const flags = sdfType | (invert ? 1 << 8 : 0);\n let updated = false;\n\n updated = this.updateSdfFloatData(base + 0, center?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 1, center?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 2, center?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 3, flags) || updated;\n\n updated = this.updateSdfFloatData(base + 4, quaternion?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 5, quaternion?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 6, quaternion?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 7, quaternion?.w ?? 0) || updated;\n\n updated = this.updateSdfFloatData(base + 8, scale?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 9, scale?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 10, scale?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 11, 0) || updated;\n\n updated = this.updateSdfFloatData(base + 12, sizes?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 13, sizes?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 14, sizes?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 15, sizes?.w ?? 0) || updated;\n\n const nValues = Math.min(4, values.length);\n for (let i = 0; i < nValues; ++i) {\n const vBase = base + 16 + i * 4;\n updated = this.updateSdfFloatData(vBase + 0, values[i].x) || updated;\n updated = this.updateSdfFloatData(vBase + 1, values[i].y) || updated;\n updated = this.updateSdfFloatData(vBase + 2, values[i].z) || updated;\n updated = this.updateSdfFloatData(vBase + 3, values[i].w) || updated;\n }\n return updated;\n }\n\n // Update the SDFs and edits from an array of SplatEdits and their\n // associated SplatEditSdfs, updating it for the dyno shader program.\n update(edits: { edit: SplatEdit; sdfs: SplatEditSdf[] }[]): {\n updated: boolean;\n dynoUpdated: boolean;\n } {\n const sdfCount = edits.reduce((total, { sdfs }) => total + sdfs.length, 0);\n const dynoUpdated = this.ensureCapacity({\n maxEdits: edits.length,\n maxSdfs: sdfCount,\n });\n\n const values = [new THREE.Vector4(), new THREE.Vector4()];\n const center = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const scale = new THREE.Vector3();\n const sizes = new THREE.Vector4();\n\n let sdfIndex = 0;\n let updated = dynoUpdated;\n\n if (edits.length !== this.dynoNumEdits.value) {\n this.dynoNumEdits.value = edits.length;\n this.numEdits = edits.length;\n updated = true;\n }\n\n for (const [editIndex, { edit, sdfs }] of edits.entries()) {\n updated =\n this.encodeEdit(editIndex, {\n sdfFirst: sdfIndex,\n sdfCount: sdfs.length,\n invert: edit.invert,\n rgbaBlendMode: rgbaBlendModeToNumber(edit.rgbaBlendMode),\n softEdge: edit.softEdge,\n sdfSmooth: edit.sdfSmooth,\n }) || updated;\n\n let sdfUpdated = false;\n for (const sdf of sdfs) {\n sizes.set(sdf.scale.x, sdf.scale.y, sdf.scale.z, sdf.radius);\n // Temporarily set the SDF scale to 1.0 to get the world-to-SDF\n // transform without scaling. The SDF treats the scale separately.\n sdf.scale.setScalar(1.0);\n sdf.updateMatrixWorld();\n const worldToSdf = sdf.matrixWorld.clone().invert();\n worldToSdf.decompose(center, quaternion, scale);\n\n sdf.scale.set(sizes.x, sizes.y, sizes.z);\n sdf.updateMatrixWorld();\n\n values[0].set(sdf.color.r, sdf.color.g, sdf.color.b, sdf.opacity);\n values[1].set(sdf.displace.x, sdf.displace.y, sdf.displace.z, 1.0);\n\n sdfUpdated =\n this.encodeSdf(\n sdfIndex,\n {\n sdfType: sdfTypeToNumber(sdf.type),\n invert: sdf.invert,\n center,\n quaternion,\n scale,\n sizes,\n },\n values,\n ) || sdfUpdated;\n\n sdfIndex += 1;\n }\n this.numSdfs = sdfIndex;\n if (sdfUpdated) {\n this.sdfTexture.needsUpdate = true;\n }\n updated ||= sdfUpdated;\n }\n return { updated, dynoUpdated };\n }\n\n // Modify a Gsplat in a dyno shader program using the current edits and SDFs.\n modify(gsplat: DynoVal): DynoVal {\n return applyGsplatRgbaDisplaceEdits(\n gsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n return applyCovSplatRgbaDisplaceEdits(\n covsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n}\n\n// Dyno types and components:\n\n// An SdfArray contains a collection of SDFs encoded in a texture.\n// Each SDF has a type and geometric parameters, but also encodes\n// 4 x vec4 values, which can all be blended across multiple SDFs.\n// The SplatEdit system uses 7 of these 16 values to encode RGBA-XYZ edits,\n// but more can be added, and these SDFs can be used for entirely different\n// purposes as well.\n\nexport const SdfArray = { type: \"SdfArray\" } as { type: \"SdfArray\" };\n\nexport const defineSdfArray = unindent(`\n struct SdfArray {\n int numSdfs;\n usampler2D sdfTexture;\n };\n\n void unpackSdfArray(\n usampler2D sdfTexture, int sdfIndex, out uint flags,\n out vec3 center, out vec4 quaternion, out vec3 scale, out vec4 sizes,\n int numValues, out vec4 values[4]\n ) {\n uvec4 temp = texelFetch(sdfTexture, ivec2(0, sdfIndex), 0);\n flags = temp.w;\n center = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(1, sdfIndex), 0);\n quaternion = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n temp = texelFetch(sdfTexture, ivec2(2, sdfIndex), 0);\n scale = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(3, sdfIndex), 0);\n sizes = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n for (int i = 0; i < numValues; ++i) {\n temp = texelFetch(sdfTexture, ivec2(4 + i, sdfIndex), 0);\n values[i] = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n }\n }\n\n const uint SDF_FLAG_TYPE = 0xFFu;\n const uint SDF_FLAG_INVERT = 1u << 8u;\n\n const uint SDF_TYPE_ALL = 0u;\n const uint SDF_TYPE_PLANE = 1u;\n const uint SDF_TYPE_SPHERE = 2u;\n const uint SDF_TYPE_BOX = 3u;\n const uint SDF_TYPE_ELLIPSOID = 4u;\n const uint SDF_TYPE_CYLINDER = 5u;\n const uint SDF_TYPE_CAPSULE = 6u;\n const uint SDF_TYPE_INFINITE_CONE = 7u;\n\n float evaluateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 outValues[4]\n ) {\n float distanceAccum = (smoothK == 0.0) ? 1.0 / 0.0 : 0.0;\n float maxExp = -1.0 / 0.0;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = vec4(0.0);\n }\n\n uint flags;\n vec3 center, scale;\n vec4 quaternion, sizes;\n vec4 values[4];\n\n int sdfLast = min(sdfFirst + sdfCount, numSdfs);\n for (int index = sdfFirst; index < sdfLast; ++index) {\n unpackSdfArray(sdfTexture, index, flags, center, quaternion, scale, sizes, numValues, values);\n uint sdfType = flags & SDF_FLAG_TYPE;\n vec3 sdfPos = quatVec(quaternion, pos * scale) + center;\n\n float distance;\n switch (sdfType) {\n case SDF_TYPE_ALL:\n distance = -1.0 / 0.0;\n break;\n case SDF_TYPE_PLANE: {\n distance = sdfPos.z;\n break;\n }\n case SDF_TYPE_SPHERE: {\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_BOX: {\n vec3 q = abs(sdfPos) - sizes.xyz + sizes.w;\n distance = length(max(q, 0.0)) + min(max(q.x, max(q.y, q.z)), 0.0) - sizes.w;\n break;\n }\n case SDF_TYPE_ELLIPSOID: {\n vec3 sizes = sizes.xyz;\n float k0 = length(sdfPos / sizes);\n float k1 = length(sdfPos / dot(sizes, sizes));\n distance = k0 * (k0 - 1.0) / k1;\n break;\n }\n case SDF_TYPE_CYLINDER: {\n vec2 d = abs(vec2(length(sdfPos.xz), sdfPos.y)) - sizes.wy;\n distance = min(max(d.x, d.y), 0.0) + length(max(d, 0.0));\n break;\n }\n case SDF_TYPE_CAPSULE: {\n sdfPos.y -= clamp(sdfPos.y, -0.5 * sizes.y, 0.5 * sizes.y);\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_INFINITE_CONE: {\n float angle = 0.25 * PI * sizes.w;\n vec2 c = vec2(sin(angle), cos(angle));\n vec2 q = vec2(length(sdfPos.xy), -sdfPos.z);\n float d = length(q - c * max(dot(q, c), 0.0));\n distance = d * (((q.x * c.y - q.y * c.x) < 0.0) ? -1.0 : 1.0);\n break;\n }\n }\n\n if ((flags & SDF_FLAG_INVERT) != 0u) {\n distance = -distance;\n }\n\n if (smoothK == 0.0) {\n if (distance < distanceAccum) {\n distanceAccum = distance;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = values[i];\n }\n }\n } else {\n float scaledDistance = -distance / smoothK;\n if (scaledDistance > maxExp) {\n float scale = exp(maxExp - scaledDistance);\n distanceAccum *= scale;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] *= scale;\n }\n maxExp = scaledDistance;\n }\n\n float weight = exp(scaledDistance - maxExp);\n distanceAccum += weight;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] += weight * values[i];\n }\n }\n }\n\n if (smoothK == 0.0) {\n return distanceAccum;\n } else {\n // Very distant SDFs may result in 0 accumulation\n if (distanceAccum == 0.0) {\n return 1.0 / 0.0;\n }\n for (int i = 0; i < numValues; ++i) {\n outValues[i] /= distanceAccum;\n }\n return (-log(distanceAccum) - maxExp) * smoothK;\n }\n }\n\n float modulateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 values[4],\n float softEdge, bool invert\n ) {\n float distance = evaluateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, numValues, values);\n if (invert) {\n distance = -distance;\n }\n\n return (softEdge == 0.0) ? ((distance < 0.0) ? 1.0 : 0.0)\n : clamp(-distance / softEdge + 0.5, 0.0, 1.0);\n }\n`);\n\nexport const defineEdit = unindent(`\n const uint EDIT_FLAG_BLEND = 0xFFu;\n const uint EDIT_BLEND_MULTIPLY = 0u;\n const uint EDIT_BLEND_SET_RGB = 1u;\n const uint EDIT_BLEND_ADD_RGBA = 2u;\n const uint EDIT_FLAG_INVERT = 0x100u;\n\n void decodeEdit(\n uvec4 packedEdit, out int sdfFirst, out int sdfCount,\n out bool invert, out uint rgbaBlendMode, out float softEdge, out float sdfSmooth\n ) {\n rgbaBlendMode = packedEdit.x & EDIT_FLAG_BLEND;\n invert = (packedEdit.x & EDIT_FLAG_INVERT) != 0u;\n\n sdfFirst = int(packedEdit.y & 0xFFFFu);\n sdfCount = int(packedEdit.y >> 16u);\n\n softEdge = uintBitsToFloat(packedEdit.z);\n sdfSmooth = uintBitsToFloat(packedEdit.w);\n }\n\n void applyRgbaDisplaceEdit(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, inout vec3 pos,\n float smoothK, float softEdge, bool invert, uint rgbaBlendMode, inout vec4 rgba\n ) {\n vec4 values[4];\n float modulate = modulateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, 2, values, softEdge, invert);\n // On Android, moving values[0] is necessary to work around a compiler bug.\n vec4 sdfRgba = values[0];\n vec4 sdfDisplaceScale = values[1];\n\n vec4 target;\n switch (rgbaBlendMode) {\n case EDIT_BLEND_MULTIPLY:\n target = rgba * sdfRgba;\n break;\n case EDIT_BLEND_SET_RGB:\n target = vec4(sdfRgba.rgb, rgba.a * sdfRgba.a);\n break;\n case EDIT_BLEND_ADD_RGBA:\n target = rgba + sdfRgba;\n break;\n default:\n // Debug output if blend mode not set\n target = vec4(fract(pos), 1.0);\n }\n rgba = mix(rgba, target, modulate);\n pos += sdfDisplaceScale.xyz * modulate;\n }\n\n void applyPackedRgbaDisplaceEdit(uvec4 packedEdit, usampler2D sdfTexture, int numSdfs, inout vec3 pos, inout vec4 rgba) {\n int sdfFirst, sdfCount;\n bool invert;\n uint rgbaBlendMode;\n float softEdge, sdfSmooth;\n decodeEdit(packedEdit, sdfFirst, sdfCount, invert, rgbaBlendMode, softEdge, sdfSmooth);\n applyRgbaDisplaceEdit(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, sdfSmooth, softEdge, invert, rgbaBlendMode, rgba);\n }\n`);\n\nfunction applyGsplatRgbaDisplaceEdits(\n gsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n gsplat: typeof Gsplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { gsplat: typeof Gsplat }\n >({\n inTypes: {\n gsplat: Gsplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { gsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${gsplat}.center, ${gsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nfunction applyCovSplatRgbaDisplaceEdits(\n covsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n covsplat: typeof CovSplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { covsplat: typeof CovSplat }\n >({\n inTypes: {\n covsplat: CovSplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { covsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${covsplat}.center, ${covsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nconst tempFloat32 = new Float32Array(1);\n","import * as THREE from \"three\";\nimport type { SplatEdit } from \"./SplatEdit\";\nimport {\n CovSplat,\n Dyno,\n DynoFloat,\n DynoMat3,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n Gsplat,\n add,\n dynoBlock,\n mul,\n transformDir,\n transformGsplat,\n transformPos,\n unindentLines,\n} from \"./dyno\";\n\n// A GsplatGenerator is a dyno program that maps an index to a Gsplat's properties\n\nexport type GsplatGenerator = Dyno<{ index: \"int\" }, { gsplat: typeof Gsplat }>;\n\nexport type CovSplatGenerator = Dyno<\n { index: \"int\" },\n { covsplat: typeof CovSplat }\n>;\n\n// A GsplatModifier is a dyno program that inputs a Gsplat, modifies, and outputs it\n\nexport type GsplatModifier = Dyno<\n { gsplat: typeof Gsplat },\n { gsplat: typeof Gsplat }\n>;\n\nexport type CovSplatModifier = Dyno<\n { covsplat: typeof CovSplat },\n { covsplat: typeof CovSplat }\n>;\n\n// A SplatModifier is a utility class to apply a GsplatModifier to\n// a GsplatGenerator pipeline, caching the combined result for efficiency.\n\nexport class SplatModifier {\n modifier: GsplatModifier;\n cache: Map;\n\n constructor(modifier: GsplatModifier) {\n this.modifier = modifier;\n this.cache = new Map();\n }\n\n apply(generator: GsplatGenerator): GsplatGenerator {\n let modified = this.cache.get(generator);\n if (!modified) {\n modified = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n const { gsplat } = generator.apply({ index });\n return this.modifier.apply({ gsplat });\n },\n );\n this.cache.set(generator, modified);\n }\n return modified;\n }\n}\n\n// A SplatTransformer is a utility class to apply a transform to a Gsplat\n// via a scale, rotation, and translation. Scale is a single float because\n// anisotropic scaling of Gsplats is not supported.\n\nexport class SplatTransformer {\n scale: DynoFloat;\n rotate: DynoVec4;\n translate: DynoVec3;\n\n // Create the dyno uniforms that parameterize the transform, setting them\n // to initial values that are different from any valid transform.\n constructor() {\n this.scale = new DynoFloat({ value: Number.NEGATIVE_INFINITY });\n this.rotate = new DynoVec4({\n value: new THREE.Quaternion(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n this.translate = new DynoVec3({\n value: new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformPos(position, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformDir(dir, {\n rotate: this.rotate,\n });\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyGsplat(gsplat: DynoVal): DynoVal {\n return transformGsplat(gsplat, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const scale = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const position = new THREE.Vector3();\n transform.decompose(position, quaternion, scale);\n const newScale = (scale.x + scale.y + scale.z) / 3;\n\n let updated = false;\n if (newScale !== this.scale.value) {\n this.scale.value = newScale;\n updated = true;\n }\n if (!position.equals(this.translate.value)) {\n this.translate.value.copy(position);\n updated = true;\n }\n if (!quaternion.equals(this.rotate.value)) {\n this.rotate.value.copy(quaternion);\n updated = true;\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\nexport class CovSplatTransformer {\n basis: DynoMat3<\"basis\", THREE.Matrix3>;\n offset: DynoVec3;\n\n constructor() {\n this.basis = new DynoMat3({ value: new THREE.Matrix3() });\n this.offset = new DynoVec3({ value: new THREE.Vector3() });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n const rebased = mul(this.basis, position);\n return add(rebased, this.offset);\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return mul(this.basis, dir);\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyCovSplat(covsplat: DynoVal): DynoVal {\n return new Dyno({\n inTypes: { covsplat: CovSplat, basis: \"mat3\", offset: \"vec3\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covsplat, basis: this.basis, offset: this.offset },\n statements: ({ inputs, outputs }) => {\n const { covsplat, basis, offset } = inputs;\n if (!covsplat || !basis || !offset) {\n return [`${outputs.covsplat}.flags = 0u;`];\n }\n return unindentLines(`\n ${outputs.covsplat}.flags = 0u;\n if (isCovSplatActive(${covsplat}.flags)) {\n ${outputs.covsplat}.flags = ${covsplat}.flags;\n ${outputs.covsplat}.index = ${covsplat}.index;\n ${outputs.covsplat}.rgba = ${covsplat}.rgba;\n\n ${outputs.covsplat}.center = ${basis} * ${covsplat}.center + ${offset};\n \n mat3 cov = mat3(\n ${covsplat}.xxyyzz.x, ${covsplat}.xyxzyz.x, ${covsplat}.xyxzyz.y,\n ${covsplat}.xyxzyz.x, ${covsplat}.xxyyzz.y, ${covsplat}.xyxzyz.z,\n ${covsplat}.xyxzyz.y, ${covsplat}.xyxzyz.z, ${covsplat}.xxyyzz.z\n );\n cov = ${basis} * cov * transpose(${basis});\n ${outputs.covsplat}.xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n ${outputs.covsplat}.xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n `);\n },\n }).outputs.covsplat;\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const basis = new THREE.Matrix3().setFromMatrix4(transform);\n const offset = new THREE.Vector3().setFromMatrixColumn(transform, 3);\n\n const updated =\n !basis.equals(this.basis.value) || !offset.equals(this.offset.value);\n if (updated) {\n this.basis.value.copy(basis);\n this.offset.value.copy(offset);\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\n// SplatGenerator is an Object3D that can be placed anywhere in the scene\n// to generate Gsplats into the world for SparkRenderer. All Gsplats from\n// SplatGenerators across the scene will be accumulated into a single\n// SplatAccumulator, which are sorted and rendered together.\n//\n// Each SplatGenerator has two main properties:\n// - numSplats: the number of Gsplats to generate\n// - generator: a GsplatGenerator dyno program that maps a splat index\n// to a Gsplat's properties\n// Each of these properties can be changed at anytime, however changing\n// numSplats means we no longer have a correspondence between Gsplats\n// in successive frames, meaning we can't reuse the previous Gsplat sort\n// order. Similarly, changing the generator requires re-generating the\n// shader program, which will trigger a GPU shader compilation the first\n// time (possibly a perceptible \"hickup\" in the framerate) but is cached\n// subsequence times if the generator is the same as one that was used previously.\n//\n// A SplatGenerator also has a custom frameUpdate function that is called\n// on each execution, allowing you to update uniforms or other parameters that\n// affect the generation. If the Gsplats are changed, you must call\n// updateVersion() (alternatively, set needsUpdate to true) to trigger a\n// re-generation of the Gsplats for this SplatGenerator.\n\nexport interface FrameUpdateContext {\n renderer: THREE.WebGLRenderer;\n object: SplatGenerator;\n time: number;\n deltaTime: number;\n viewToWorld: THREE.Matrix4;\n camera?: THREE.Camera;\n renderSize?: THREE.Vector2;\n globalEdits: SplatEdit[];\n lodIndices?: { numSplats: number; texture: THREE.DataTexture };\n}\n\nexport class SplatGenerator extends THREE.Object3D {\n numSplats: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n generatorError?: unknown;\n covGeneratorError?: unknown;\n frameUpdate?: (context: FrameUpdateContext) => void;\n version: number;\n mappingVersion: number;\n\n constructor({\n numSplats,\n generator,\n covGenerator,\n construct,\n update,\n }: {\n numSplats?: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n construct?: (object: SplatGenerator) => {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n numSplats?: number;\n frameUpdate?: (context: FrameUpdateContext) => void;\n };\n update?: (context: FrameUpdateContext) => void;\n }) {\n super();\n\n this.numSplats = numSplats ?? 0;\n this.generator = generator;\n this.covGenerator = covGenerator;\n this.frameUpdate = update;\n this.version = 0;\n this.mappingVersion = 0;\n\n if (construct) {\n const constructed = construct(this);\n // If we returned something, update our properties\n Object.assign(this, constructed);\n }\n }\n\n updateVersion() {\n this.version += 1;\n }\n\n updateMappingVersion() {\n this.mappingVersion += 1;\n this.version += 1;\n }\n\n set needsUpdate(value: boolean) {\n if (value) {\n this.updateVersion();\n }\n }\n}\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\nimport { Readback } from \"./Readback\";\nimport { SplatEdit } from \"./SplatEdit\";\nimport {\n type CovSplatGenerator,\n type GsplatGenerator,\n SplatGenerator,\n} from \"./SplatGenerator\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines\";\nimport {\n type CovSplat,\n Dyno,\n DynoBool,\n DynoProgram,\n DynoProgramTemplate,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n combineCovSplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n gsplatToCovSplat,\n mul,\n outputCovSplat,\n outputCovSplatDepth,\n outputExtCovSplat,\n outputExtendedSplat,\n outputPackedSplat,\n outputSplatDepth,\n splitCovSplat,\n splitGsplat,\n sub,\n unindentLines,\n} from \"./dyno\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, threeMrtArray } from \"./utils\";\n\n// A GeneratorMapping describes a Gsplat range that was generated, including\n// which generator and its version number.\nexport type GeneratorMapping = {\n node: SplatGenerator;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n version: number;\n mappingVersion?: number;\n base: number;\n count: number;\n};\n\nexport class SplatAccumulator {\n time = 0;\n deltaTime = 0;\n viewToWorld = new THREE.Matrix4();\n viewOrigin = new THREE.Vector3();\n viewDirection = new THREE.Vector3();\n static viewCenterUniform = new DynoVec3({ value: new THREE.Vector3() });\n static viewDirUniform = new DynoVec3({ value: new THREE.Vector3() });\n static sortRadialUniform = new DynoBool({ value: true });\n maxSplats = 0;\n numSplats = 0;\n target: THREE.WebGLArrayRenderTarget | null = null;\n mapping: GeneratorMapping[] = [];\n version = -1;\n mappingVersion = -1;\n extSplats: boolean;\n covSplats: boolean;\n readback: Readback | null = null;\n readbackSplats: DynoUsampler2DArray<\"extSplats\", THREE.DataArrayTexture>[] =\n [];\n\n constructor({\n extSplats,\n covSplats,\n }: { extSplats?: boolean; covSplats?: boolean } = {}) {\n if (!threeMrtArray) {\n throw new Error(\"Spark requires THREE.js r179 or above\");\n }\n this.extSplats = extSplats ?? true;\n this.covSplats = covSplats ?? false;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = null;\n }\n }\n\n // Returns a THREE.DataArrayTexture representing the NewSplatAccumulator\n // content as 2 x Uint32x4 data array textures (2048 x 2048 x 2048 in size)\n getTextures(): THREE.DataArrayTexture[] {\n if (this.target) {\n return this.target.textures;\n }\n return SplatAccumulator.emptyTextures;\n }\n\n static emptyTexture = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTextures = (() => {\n return [SplatAccumulator.emptyTexture, SplatAccumulator.emptyTexture];\n })();\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Ensures our NewSplatAccumulator.target render target has enough space\n // to generate maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate({ maxSplats }: { maxSplats: number }) {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n this.dispose();\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n format: THREE.RGBAIntegerFormat,\n type: THREE.UnsignedIntType,\n });\n this.target.scissorTest = true;\n\n if (this.extSplats) {\n const target2 = this.target.texture.clone();\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target2, target3];\n } else {\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target3];\n }\n\n return true;\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(\n generator?: GsplatGenerator,\n covGenerator?: CovSplatGenerator,\n ) {\n const theGenerator = generator ?? covGenerator;\n if (!theGenerator) {\n throw new Error(\"Either generator or covGenerator must be provided\");\n }\n\n let program = SplatAccumulator.generatorProgram.get(theGenerator);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n if (generator) {\n generator.inputs.index = index;\n }\n if (covGenerator) {\n covGenerator.inputs.index = index;\n }\n\n if (this.extSplats) {\n if (!this.covSplats) {\n if (generator) {\n const output = outputExtendedSplat(generator.outputs.gsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n if (covGenerator) {\n const output = outputExtCovSplat(covGenerator.outputs.covsplat);\n roots.push(output);\n } else if (generator) {\n const covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n const output = outputExtCovSplat(covsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n }\n } else {\n if (!this.covSplats) {\n if (generator) {\n const centerSubView = sub(\n splitGsplat(generator.outputs.gsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n // Use expanded LoD opacity encoding\n const halfAlpha = mul(\n splitGsplat(generator.outputs.gsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n const gsplat = combineGsplat({\n gsplat: generator.outputs.gsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputPackedSplat(\n gsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n let covsplat: DynoVal;\n if (covGenerator) {\n covsplat = covGenerator.outputs.covsplat;\n } else if (generator) {\n covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n const centerSubView = sub(\n splitCovSplat(covsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n const halfAlpha = mul(\n splitCovSplat(covsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n covsplat = combineCovSplat({\n covsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputCovSplat(\n covsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n }\n if (!generator) {\n throw new Error(\"Generator must be provided\");\n }\n }\n if (generator) {\n const outputDepth = outputSplatDepth(\n generator.outputs.gsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n if (covGenerator) {\n const outputDepth = outputCovSplatDepth(\n covGenerator.outputs.covsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n return undefined;\n },\n );\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: {},\n template: this.extSplats\n ? SplatAccumulator.programExtTemplate\n : SplatAccumulator.programTemplate,\n // consoleLog: true,\n });\n\n SplatAccumulator.generatorProgram.set(theGenerator, program);\n }\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n\n const material = program.prepareMaterial();\n SplatAccumulator.fullScreenQuad.material = material;\n return { program, material };\n }\n\n static programExtTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4x2Vec4Template,\n );\n static programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Vec4Template,\n );\n static generatorProgram = new WeakMap<\n GsplatGenerator | CovSplatGenerator,\n DynoProgram\n >();\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n generate({\n generator,\n covGenerator,\n base,\n count,\n renderer,\n }: {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureGenerate\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(\n generator,\n covGenerator,\n );\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n SplatAccumulator.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial,\n renderSize,\n previous,\n lodInstances,\n }: {\n renderer: THREE.WebGLRenderer;\n scene: THREE.Scene;\n time: number;\n camera: THREE.Camera;\n sortRadial: boolean;\n renderSize: THREE.Vector2;\n previous: SplatAccumulator;\n lodInstances?: Map<\n SplatMesh,\n { numSplats: number; texture: THREE.DataTexture }\n >;\n }) {\n this.viewToWorld.copy(camera.matrixWorld);\n camera.getWorldPosition(this.viewOrigin);\n camera.getWorldDirection(this.viewDirection);\n SplatAccumulator.viewCenterUniform.value.copy(this.viewOrigin);\n SplatAccumulator.viewDirUniform.value.copy(this.viewDirection);\n SplatAccumulator.sortRadialUniform.value = sortRadial;\n\n this.time = time;\n this.deltaTime = time - previous.time;\n\n const allGenerators: SplatGenerator[] = [];\n scene.traverse((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n allGenerators.push(node);\n }\n }\n });\n\n const globalEditsSet = new Set();\n scene.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n let ancestor = node.parent;\n while (ancestor != null && !(ancestor instanceof SplatMesh)) {\n ancestor = ancestor.parent;\n }\n if (ancestor == null) {\n // Not part of a SplatMesh so it's a global edit\n globalEditsSet.add(node);\n }\n }\n });\n const globalEdits = Array.from(globalEditsSet);\n\n for (const object of allGenerators) {\n try {\n object.frameUpdate?.({\n renderer,\n object,\n time: this.time,\n deltaTime: this.deltaTime,\n viewToWorld: this.viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices:\n lodInstances && object instanceof SplatMesh\n ? lodInstances.get(object)\n : undefined,\n });\n } catch (error) {\n console.error(\"frameUpdate error\", error);\n object.generator = undefined;\n object.covGenerator = undefined;\n object.generatorError = error;\n }\n }\n\n const visibleGenerators: SplatGenerator[] = [];\n scene.traverseVisible((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n visibleGenerators.push(node);\n }\n }\n });\n\n const splatCounts = visibleGenerators.map(\n (generator) => generator.numSplats,\n );\n const { maxSplats, mapping: baseCounts } =\n this.generateMapping(splatCounts);\n\n const previousMappings = previous.mapping.reduce((mappings, mapping) => {\n mappings.set(mapping.node, mapping);\n return mappings;\n }, new Map());\n\n this.mapping = [];\n this.numSplats = 0;\n\n baseCounts.forEach(({ base, count }, index) => {\n const node = visibleGenerators[index];\n const previousNode = previousMappings.get(node);\n if (previousNode && previousNode.count !== node.numSplats) {\n node.updateMappingVersion();\n }\n\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n const { version, mappingVersion } = node;\n this.mapping.push({\n node,\n generator,\n covGenerator,\n version,\n mappingVersion,\n base,\n count,\n });\n this.numSplats = Math.max(this.numSplats, base + count);\n }\n });\n const { splatsUpdated, mappingUpdated } = previous.checkVersions(\n this.mapping,\n );\n this.version = previous.version + (splatsUpdated ? 1 : 0);\n this.mappingVersion = previous.mappingVersion + (mappingUpdated ? 1 : 0);\n\n return {\n sameMapping: !mappingUpdated,\n version: this.version,\n mappingVersion: this.mappingVersion,\n visibleGenerators,\n generate: () => {\n this.ensureGenerate({ maxSplats });\n\n for (const { node, base, count } of this.mapping) {\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n this.generate({ generator, covGenerator, base, count, renderer });\n }\n }\n },\n readback: async () => {\n const textures = this.getTextures();\n if (this.readbackSplats.length === 0) {\n this.readbackSplats = [\n new DynoUsampler2DArray({ value: textures[0], key: \"extSplats\" }),\n new DynoUsampler2DArray({ value: textures[1], key: \"extSplats\" }),\n ];\n }\n this.readbackSplats[0].value = textures[0];\n this.readbackSplats[1].value = textures[1];\n\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n const readback = this.readback;\n const words = this.extSplats ? 8 : 4;\n const array = readback.ensureBuffer(\n this.numSplats * words,\n new Uint32Array(0),\n );\n\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n const rgba8 = new Dyno({\n inTypes: {\n index: \"int\",\n extSplats1: \"usampler2DArray\",\n extSplats2: \"usampler2DArray\",\n },\n outTypes: { rgba8: \"vec4\" },\n inputs: {\n index,\n extSplats1: this.readbackSplats[0],\n extSplats2: this.readbackSplats[1],\n },\n statements: ({ inputs, outputs }) => {\n if (this.extSplats) {\n return unindentLines(`\n int indexDiv8 = ${inputs.index} >> 3;\n ivec3 coord = splatTexCoord(indexDiv8);\n uvec4 packedData;\n if ((${inputs.index} & 4) == 0) {\n packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n } else {\n packedData = texelFetch(${inputs.extSplats2}, coord, 0);\n }\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n }\n return unindentLines(`\n int indexDiv4 = ${inputs.index} >> 2;\n ivec3 coord = splatTexCoord(indexDiv4);\n uvec4 packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n },\n }).outputs.rgba8;\n return { rgba8 };\n },\n );\n\n return await readback.renderReadback({\n reader,\n count: this.numSplats * words,\n renderer,\n readback: array,\n });\n },\n };\n }\n\n // Check if this accumulator has exactly the same generator mapping as\n // the previous one. If so, we can reuse the Gsplat sort order.\n checkVersions(otherMapping: GeneratorMapping[]) {\n if (this.mapping.length !== otherMapping.length) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const mappingUpdated = this.mapping.some((item, i) => {\n const other = otherMapping[i];\n return (\n item.node !== other.node ||\n item.base !== other.base ||\n item.count !== other.count ||\n item.mappingVersion !== other.mappingVersion\n );\n });\n if (mappingUpdated) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const splatsUpdated = this.mapping.some((item, i) => {\n return item.version !== otherMapping[i].version;\n });\n return { splatsUpdated, mappingUpdated };\n }\n}\n","import * as THREE from \"three\";\n\n// SplatGeometry is an internal class used by SparkRenderer to render a collection\n// of Gsplats in a single draw call by extending THREE.InstancedBufferGeometry.\n// Each Gsplat is drawn as two triangles, with the order of the Gsplats determined\n// by a texture lookup via gl_InstanceID.\n\nexport class SplatGeometry extends THREE.InstancedBufferGeometry {\n constructor() {\n super();\n this.setAttribute(\"position\", new THREE.BufferAttribute(QUAD_VERTICES, 3));\n this.setIndex(new THREE.BufferAttribute(QUAD_INDICES, 1));\n }\n}\n\n// Each instance draws to triangles covering a quad over coords (-1,-1,0)..(1,1,0)\nconst QUAD_VERTICES = new Float32Array([\n -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0,\n]);\n\nconst QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]);\n","import * as THREE from \"three\";\nimport {\n ExtSplats,\n PackedSplats,\n PagedSplats,\n Readback,\n type SplatGenerator,\n SplatMesh,\n SplatPager,\n} from \".\";\nimport { SplatAccumulator } from \"./SplatAccumulator\";\nimport { SplatGeometry } from \"./SplatGeometry\";\nimport { SplatWorker } from \"./SplatWorker\";\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { getShaders } from \"./shaders\";\nimport {\n cloneClock,\n isAndroid,\n isIos,\n isMobile,\n isOculus,\n isVisionPro,\n} from \"./utils\";\n\nexport interface SparkRendererOptions {\n /**\n * Pass in your THREE.WebGLRenderer instance so Spark can perform work\n * outside the usual render loop. Should be created with antialias: false\n * (default setting) as WebGL anti-aliasing doesn't improve Gaussian Splatting\n * rendering and significantly reduces performance.\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Callback function to be called when SparkRenderer needs to re-render,\n * for example when splat sort order or LoD updates complete.\n */\n onDirty?: () => void;\n /**\n * Whether to use premultiplied alpha when accumulating splat RGB\n * @default true\n */\n premultipliedAlpha?: boolean;\n /**\n * Whether to encode Gsplat with linear RGB (for environment mapping)\n * @default false\n */\n encodeLinear?: boolean;\n /**\n * Pass in a THREE.Clock to synchronize time-based effects across different\n * systems. Alternatively, you can set the property time directly.\n * (default: new THREE.Clock)\n */\n clock?: THREE.Clock;\n /**\n * Controls whether to check and automatically update Gsplat collection\n * each frame render.\n * @default true\n */\n autoUpdate?: boolean;\n /**\n * Controls whether to update the Gsplats before or after rendering. For WebXR\n * this is set to false in order to complete rendering as soon as possible.\n * @default true (if not WebXR)\n */\n preUpdate?: boolean;\n /**\n * Maximum standard deviations from the center to render Gaussians. Values\n * Math.sqrt(4)..Math.sqrt(9) produce acceptable results and can be tweaked for\n * performance.\n * @default Math.sqrt(8)\n */\n maxStdDev?: number;\n /*\n **\n * Minimum pixel radius for splat rendering.\n * @default 0.0\n */\n minPixelRadius?: number;\n /**\n * Maximum pixel radius for splat rendering.\n * @default 512.0\n */\n maxPixelRadius?: number;\n /**\n * Whether to use extended Gsplat encoding for intermediary accumulator splats.\n * @default false\n */\n accumExtSplats?: boolean;\n /**\n * Whether to use covariance Gsplat encoding for intermediary splats.\n * @default false\n */\n covSplats?: boolean;\n /**\n * Minimum alpha value for splat rendering.\n * @default 0.5 * (1.0 / 255.0)\n */\n minAlpha?: number;\n /**\n * Enable 2D Gaussian splatting rendering ability. When this mode is enabled,\n * any scale x/y/z component that is exactly 0 (minimum quantized value) results\n * in the other two non-0 axis being interpreted as an oriented 2D Gaussian Splat,\n * rather instead of the usual projected 3DGS Z-slice. When reading PLY files,\n * scale values less than e^-30 will be interpreted as 0.\n * @default false\n */\n enable2DGS?: boolean;\n /**\n * Enable alternative ray-splat max response evaluation, used by 3DGUT (unscented transform),\n * 3DGRT, and HTGS.\n * @default false\n */\n // enableRayEval?: boolean;\n /**\n * Scalar value to add to 2D splat covariance diagonal, effectively blurring +\n * enlarging splats. In scenes trained without the Gsplat anti-aliasing tweak\n * this value was typically 0.3, but with anti-aliasing it is 0.0\n * @default 0.0\n */\n preBlurAmount?: number;\n /**\n * Scalar value to add to 2D splat covarianve diagonal, with opacity adjustment\n * to correctly account for \"blurring\" when anti-aliasing. Typically 0.3\n * (equivalent to approx 0.5 pixel radius) in scenes trained with anti-aliasing.\n */\n blurAmount?: number;\n /**\n * Depth-of-field distance to focal plane\n */\n focalDistance?: number;\n /**\n * Full-width angle of aperture opening (in radians), 0.0 to disable\n * @default 0.0\n */\n apertureAngle?: number;\n /**\n * Modulate Gaussian kernel falloff. 0 means \"no falloff, flat shading\",\n * while 1 is the normal Gaussian kernel.\n * @default 1.0\n */\n falloff?: number;\n /**\n * X/Y clipping boundary factor for Gsplat centers against view frustum.\n * 1.0 clips any centers that are exactly out of bounds, while 1.4 clips\n * centers that are 40% beyond the bounds.\n * @default 1.4\n */\n clipXY?: number;\n /**\n * Parameter to adjust projected splat scale calculation to match other renderers,\n * similar to the same parameter in the MKellogg 3DGS renderer. Higher values will\n * tend to sharpen the splats. A value 2.0 can be used to match the behavior of\n * the PlayCanvas renderer.\n * @default 1.0\n */\n focalAdjustment?: number;\n /**\n * Whether to sort splats radially (geometric distance) from the viewpoint (true)\n * or by Z-depth (false). Most scenes are trained with the Z-depth `sort `metric\n * and will render more accurately at certain viewpoints. However, radial sorting\n * is more stable under viewpoint rotations.\n * @default true\n */\n sortRadial?: boolean;\n /**\n * Minimum interval between sort calls in milliseconds.\n * @default 0\n */\n minSortIntervalMs?: number;\n /*\n * Flag to control whether LoD is enabled. @default true\n */\n enableLod?: boolean;\n /**\n * Whether to drive LOD updates (compute lodInstances, update pager, etc.).\n * Set to false to use LOD instances from another renderer without driving updates.\n * Only has effect if enableLod is true.\n * @default true (if enableLod is true)\n */\n enableDriveLod?: boolean;\n /**\n * Whether to enable page fetching for LoD.\n * @default true\n */\n enableLodFetching?: boolean;\n /**\n * Set the target # splats for LoD. If this isn't set then default base LoD splat\n * counts will apply: 500K-750K for WebXR, 1-1.5M for mobile, and 2.5M for desktop.\n * @default 500K-2500K depending on platform\n */\n lodSplatCount?: number;\n /**\n * Scale factor for target # splats for LoD. 2.0 means 2x the base LoD splat count.\n * This is the easiest LoD parameter to adjust and will scale detail appropriately\n * for the platform.\n * @default 1.0\n */\n lodSplatScale?: number;\n /**\n * Determines the minimum screen pixel size of LoD splats. The default 1.0 means\n * the splat LoD tree will pick splats that are no smaller than 1 pixel in size.\n * Setting this to a higher value as high as 5.0 will often be indistinguishable\n * but will avoid wasting rendering capacity on tiny splats.\n * @default 1.0\n */\n lodRenderScale?: number;\n /**\n * Inflate LoD splats to ensure opacity stays <= 1.0, producing a softer appearance.\n * @default false\n */\n lodInflate?: boolean;\n /**\n * Whether to use extended Gsplat encoding for paged splats, useful for eliminating\n * quantization artifacts from splat scenes with large internal position coordinates.\n * @default false\n */\n pagedExtSplats?: boolean;\n /**\n * Allocation size of paged splats. This must be a multiple of the page size (65536).\n * @default 16777216 (256 * 65536) for desktop, 6291456 for iOS, 8,388,608 for other mobile\n */\n maxPagedSplats?: number;\n /**\n * Number of parallel chunk fetchers for LoD. These are run within a shared pool\n * of 4 background WebWorker threads, so setting it above 4 will not have any\n * effect. Setting it 3 leaves one spare worker for other loading/decoding tasks.\n * @default 3\n */\n numLodFetchers?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with no foveation applied (full resolution, foveate=1.0). Set to 0 to disable.\n * @default 90.0\n */\n coneFov0?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with reduced resolution specified by `coneFoveate`. Foveation will be applied\n * smoothly from 1.0 down to `coneFoveate` as you move outward from\n * `coneFov0` to `coneFov`. Set to 0 to disable.\n * @default 120.0\n */\n coneFov?: number;\n /**\n * Foveation scale to apply to LoD splats at the edge of coneFov. Foveation will\n * be applied smoothly from `coneFoveate` down to `behindFoveate` as you move\n * outward from `coneFov` to 180 degrees (behind the viewer).\n * @default 0.4\n */\n coneFoveate?: number;\n /**\n * Foveation scale to apply to LoD splats behind the viewer. Setting this to 0.1\n * for example will result in splats 10x larger than inside the viewing frustum.\n * @default 0.2\n */\n behindFoveate?: number;\n /**\n * How many LoD splats to generate for raycasting\n * @default 10000-25000 iff default canvas target is used\n */\n lodRaycast?: number;\n lodRaycastIntervalMs?: number;\n /**\n * Configures an offline render target for the SparkRenderer (as opposed to\n * rendering to the canvas). This is useful for rendering environment maps,\n * additional viewpoints, or video frame rendering.\n * @default undefined\n */\n target?: {\n /**\n * Width of the render target in pixels.\n */\n width: number;\n /**\n * Height of the render target in pixels.\n */\n height: number;\n /**\n * If you want to be able to render a scene that depends on this target's\n * output (for example, a recursive viewport), set this to true to enable\n * double buffering.\n * @default false\n */\n doubleBuffer?: boolean;\n /**\n * Super-sampling factor for the render target. Values 1-4 are supported.\n * Note that re-sampling back down to .width x .height is done on the CPU\n * with simple averaging only when calling readTarget().\n * @default 1\n */\n superXY?: number;\n } & THREE.RenderTargetOptions;\n /**\n * Extra uniform values to pass to the shader.\n * @default undefined = no extra uniforms\n */\n extraUniforms?: Record;\n /**\n * Replace the default `splatVertex.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatVertex.glsl` shader\n */\n vertexShader?: string;\n /**\n * Replace the default `splatFragment.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatFragment.glsl` shader\n */\n fragmentShader?: string;\n /**\n * Set the splat shader material to be transparent which determines if the\n * splats are rendered during the first opaque THREE.js render pass or the\n * second transparent render pass.\n * @default undefined = true\n */\n transparent?: boolean;\n /**\n * Set the splat shader material to enable depth testing which determines if the\n * splats respect the Z depth buffer and blend with other opaque objects in the scene.\n * @default undefined = true\n */\n depthTest?: boolean;\n /**\n * Set the splat shader material to enable depth writing which determines if the\n * splats write to the Z depth buffer. Note that enabling this may produce\n * undesirable results because most of the Gsplat is transparent.\n * @default undefined = false\n */\n depthWrite?: boolean;\n}\n\nexport class SparkRenderer extends THREE.Mesh {\n readonly renderer: THREE.WebGLRenderer;\n readonly material: THREE.ShaderMaterial;\n readonly uniforms: ReturnType;\n\n autoUpdate: boolean;\n preUpdate: boolean;\n static sparkOverride?: SparkRenderer;\n\n renderSize = new THREE.Vector2();\n maxStdDev: number;\n minPixelRadius: number;\n maxPixelRadius: number;\n accumExtSplats: boolean;\n covSplats: boolean;\n minAlpha: number;\n enable2DGS: boolean;\n // enableRayEval: boolean;\n preBlurAmount: number;\n blurAmount: number;\n focalDistance: number;\n apertureAngle: number;\n falloff: number;\n clipXY: number;\n focalAdjustment: number;\n encodeLinear: boolean;\n\n sortRadial: boolean;\n minSortIntervalMs: number;\n\n clock: THREE.Clock;\n time?: number;\n lastFrame = -1;\n updateTimeoutId = -1;\n onDirty?: () => void;\n dirty: boolean;\n\n orderingTexture: THREE.DataTexture | null = null;\n maxSplats = 0;\n activeSplats = 0;\n\n display: SplatAccumulator;\n current: SplatAccumulator;\n accumulators: SplatAccumulator[] = [];\n\n sorting = false;\n sortDirty = false;\n lastSortTime = 0;\n sortWorker: SplatWorker | null = null;\n sortTimeoutId = -1;\n sortedCenter = new THREE.Vector3().setScalar(Number.NEGATIVE_INFINITY);\n sortedDir = new THREE.Vector3().setScalar(0);\n readback32 = new Uint32Array(0);\n\n enableLod: boolean;\n enableDriveLod: boolean;\n enableLodFetching: boolean;\n lodSplatCount?: number;\n lodSplatScale: number;\n lodRenderScale: number;\n lodInflate: boolean;\n pagedExtSplats: boolean;\n maxPagedSplats: number;\n numLodFetchers: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n\n lodRaycast?: number;\n lodRaycastIntervalMs: number;\n lastLodRaycastTime = 0;\n\n lodWorker: SplatWorker | null = null;\n lodMeshes: { mesh: SplatMesh; version: number }[] = [];\n lodDirty = false;\n lodIds: Map<\n PackedSplats | ExtSplats | PagedSplats,\n { lodId: number; lastTouched: number; rootPage?: number }\n > = new Map();\n lodIdToSplats: Map =\n new Map();\n lodInitQueue: (PackedSplats | ExtSplats | PagedSplats)[] = [];\n lastLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n currentLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n lodPosOverride?: THREE.Vector3;\n lodQuatOverride?: THREE.Quaternion;\n lodInstances: Map<\n SplatMesh,\n {\n lodId: number;\n numSplats: number;\n indices: Uint32Array;\n texture: THREE.DataTexture;\n }\n > = new Map();\n lodUpdates: {\n lodId: number;\n pageBase: number;\n chunkBase: number;\n count: number;\n lodTreeData?: Uint32Array;\n }[] = [];\n lastTraverseTime = 0;\n lastPixelLimit?: number;\n\n pager?: SplatPager;\n pagerId = 0;\n // prefetchCameras: THREE.Camera[] = [];\n // prefetchLodScale = 1.0;\n // prefetchMeshesCache: SplatMesh[] = [];\n // prefetchMeshesCacheScene?: THREE.Scene;\n\n target?: THREE.WebGLRenderTarget;\n backTarget?: THREE.WebGLRenderTarget;\n superPixels?: Uint8Array;\n targetPixels?: Uint8Array;\n superXY = 1;\n\n flushAfterGenerate = false;\n flushAfterRead = false;\n readPause = 1;\n sortPause = 0;\n sortDelay = 0;\n\n constructor(options: SparkRendererOptions) {\n if (!options) {\n throw new Error(\"SparkRenderer options are required\");\n }\n if (!options.renderer) {\n throw new Error(\"renderer is required in SparkRenderer options\");\n }\n\n const uniforms = SparkRenderer.makeUniforms();\n Object.assign(uniforms, options.extraUniforms ?? {});\n\n const shaders = getShaders();\n const premultipliedAlpha = options.premultipliedAlpha ?? true;\n const geometry = new SplatGeometry();\n const material = new THREE.ShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: options.vertexShader ?? shaders.splatVertex,\n fragmentShader: options.fragmentShader ?? shaders.splatFragment,\n uniforms,\n premultipliedAlpha,\n transparent: options.transparent ?? true,\n depthTest: options.depthTest ?? true,\n depthWrite: options.depthWrite ?? false,\n side: THREE.DoubleSide,\n allowOverride: false,\n });\n\n super(geometry, material);\n this.material = material;\n this.uniforms = uniforms;\n // Disable frustum culling because we want to always draw them all\n // and cull Gsplats individually in the shader\n this.frustumCulled = false;\n\n // By default SparkRenderer will only render for layer 0\n // this.layers.enableAll();\n\n // sparkRendererInstance = this;\n this.renderer = options.renderer;\n this.onDirty = options.onDirty;\n this.dirty = true;\n this.autoUpdate = options.autoUpdate ?? true;\n this.preUpdate = options.preUpdate ?? true;\n\n this.maxStdDev = options.maxStdDev ?? Math.sqrt(8.0);\n this.minPixelRadius = options.minPixelRadius ?? 0.0; //1.6;\n this.maxPixelRadius = options.maxPixelRadius ?? 512.0;\n this.accumExtSplats = options.accumExtSplats ?? false;\n this.covSplats = options.covSplats ?? false;\n this.minAlpha = options.minAlpha ?? 0.5 * (1.0 / 255.0);\n this.enable2DGS = options.enable2DGS ?? false;\n // this.enableRayEval = options.enableRayEval ?? false;\n this.preBlurAmount = options.preBlurAmount ?? 0.0;\n this.blurAmount = options.blurAmount ?? 0.3;\n this.focalDistance = options.focalDistance ?? 0.0;\n this.apertureAngle = options.apertureAngle ?? 0.0;\n this.falloff = options.falloff ?? 1.0;\n this.clipXY = options.clipXY ?? 1.4;\n this.focalAdjustment = options.focalAdjustment ?? 1.0;\n this.encodeLinear = options.encodeLinear ?? false;\n\n this.sortRadial = options.sortRadial ?? true;\n this.minSortIntervalMs = options.minSortIntervalMs ?? 0;\n\n this.enableLod = options.enableLod ?? true;\n // enableDriveLod defaults to true if enableLod is true, false otherwise\n this.enableDriveLod = options.enableDriveLod ?? this.enableLod;\n this.enableLodFetching = options.enableLodFetching ?? true;\n this.lodSplatCount = options.lodSplatCount;\n this.lodSplatScale = options.lodSplatScale ?? 1.0;\n this.lodRenderScale = options.lodRenderScale ?? 1.0;\n this.lodInflate = options.lodInflate ?? false;\n this.pagedExtSplats = options.pagedExtSplats ?? false;\n const defaultPages = isMobile() ? (isIos() ? 96 : 128) : 256;\n this.maxPagedSplats = options.maxPagedSplats ?? defaultPages * 65536;\n this.numLodFetchers = options.numLodFetchers ?? 3;\n this.behindFoveate = options.behindFoveate ?? 0.2;\n this.coneFov0 = options.coneFov0 ?? 90.0;\n this.coneFov = options.coneFov ?? 120.0;\n this.coneFoveate = options.coneFoveate ?? 0.4;\n\n this.lodRaycast =\n options.lodRaycast === undefined\n ? isMobile()\n ? 10000\n : 25000\n : options.lodRaycast;\n this.lodRaycastIntervalMs = options.lodRaycastIntervalMs ?? 500;\n\n this.clock = options.clock ? cloneClock(options.clock) : new THREE.Clock();\n\n const accumulatorOptions = {\n extSplats: this.accumExtSplats,\n covSplats: this.covSplats,\n };\n this.display = new SplatAccumulator(accumulatorOptions);\n this.current = this.display;\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n\n if (options.target) {\n const {\n width,\n height,\n doubleBuffer,\n superXY: origSuperXY,\n ...origTargetOptions\n } = options.target;\n const superXY = Math.max(1, Math.min(4, origSuperXY ?? 1));\n if (width * superXY > 8192 || height * superXY > 8192) {\n throw new Error(\"Target size too large\");\n }\n this.superXY = superXY;\n\n const superWidth = width * superXY;\n const superHeight = height * superXY;\n const targetOptions: THREE.RenderTargetOptions = {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n ...origTargetOptions,\n };\n\n this.target = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n if (doubleBuffer) {\n this.backTarget = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n }\n this.encodeLinear = options.encodeLinear ?? true;\n }\n }\n\n static makeUniforms() {\n const uniforms = {\n // // number of active splats to render\n // numSplats: { value: 0 },\n // Size of render viewport in pixels\n renderSize: { value: new THREE.Vector2() },\n // Near and far plane distances\n near: { value: 0.1 },\n far: { value: 1000.0 },\n // SplatAccumulator to view transformation quaternion\n renderToViewQuat: { value: new THREE.Quaternion() },\n // SplatAccumulator to view transformation translation\n renderToViewPos: { value: new THREE.Vector3() },\n renderToViewBasis: { value: new THREE.Matrix3() },\n renderToViewOffset: { value: new THREE.Vector3() },\n // Maximum distance (in stddevs) from Gsplat center to render\n maxStdDev: { value: 1.0 },\n // Minimum pixel radius for splat rendering\n minPixelRadius: { value: 0.0 },\n // Maximum pixel radius for splat rendering\n maxPixelRadius: { value: 512.0 },\n // Minimum alpha value for splat rendering\n minAlpha: { value: 0.5 * (1.0 / 255.0) },\n // Enable interpreting 0-thickness Gsplats as 2DGS\n enable2DGS: { value: false },\n // Enable ray-splat max response evaluation\n // enableRayEval: { value: false },\n // Inflate LoD splats so that opacity <= 1.0\n lodInflate: { value: false },\n // Add to projected 2D splat covariance diagonal (thickens and brightens)\n preBlurAmount: { value: 0.0 },\n // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing)\n blurAmount: { value: 0.3 },\n // Depth-of-field distance to focal plane\n focalDistance: { value: 0.0 },\n // Full-width angle of aperture opening (in radians)\n apertureAngle: { value: 0.0 },\n // Modulate Gaussian kernal falloff. 0 means \"no falloff, flat shading\",\n // 1 is normal e^-x^2 falloff.\n falloff: { value: 1.0 },\n // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds\n clipXY: { value: 1.4 },\n // Debug renderSize scale factor\n focalAdjustment: { value: 1.0 },\n // Whether to encode Gsplat with linear RGB (for environment mapping)\n encodeLinear: { value: false },\n // Back-to-front sort ordering of splat indices\n ordering: { type: \"t\", value: SparkRenderer.emptyOrdering },\n enableExtSplats: { value: false },\n enableCovSplats: { value: false },\n // Gsplat collection to render\n extSplats: { type: \"t\", value: SplatAccumulator.emptyTexture },\n extSplats2: { type: \"t\", value: SplatAccumulator.emptyTexture },\n // Time in seconds for time-based effects\n time: { value: 0 },\n // Delta time in seconds since last frame\n deltaTime: { value: 0 },\n // Debug flag that alternates each frame\n debugFlag: { value: false },\n };\n return uniforms;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n if (this.backTarget) {\n this.backTarget.dispose();\n this.backTarget = undefined;\n }\n if (this.orderingTexture) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n\n const accumulators = new Set();\n accumulators.add(this.display);\n accumulators.add(this.current);\n for (const accumulator of this.accumulators) {\n accumulators.add(accumulator);\n }\n for (const accumulator of accumulators) {\n accumulator.dispose();\n }\n\n const instances = this.lodInstances.values();\n this.lodInstances.clear();\n for (const instance of instances) {\n instance.texture.dispose();\n }\n\n if (this.sortWorker) {\n this.sortWorker.dispose();\n this.sortWorker = null;\n }\n if (this.lodWorker) {\n this.lodWorker.dispose();\n this.lodWorker = null;\n }\n if (this.pager) {\n this.pager.dispose();\n this.pager = undefined;\n }\n }\n\n setDirty() {\n if (!this.dirty) {\n this.dirty = true;\n this.onDirty?.();\n }\n }\n\n onBeforeRender(\n renderer: THREE.WebGLRenderer,\n scene: THREE.Scene,\n camera: THREE.Camera,\n ) {\n const spark = SparkRenderer.sparkOverride ?? this;\n\n const frame = renderer.info.render.frame;\n const isNewFrame = frame !== spark.lastFrame;\n spark.lastFrame = frame;\n\n if (spark.target) {\n spark.renderSize.set(spark.target.width, spark.target.height);\n } else {\n const renderSize = renderer.getDrawingBufferSize(spark.renderSize);\n if (renderer.xr.isPresenting) {\n if (renderSize.x === 1 && renderSize.y === 1) {\n // WebXR mode on Apple Vision Pro returns 1x1 when presenting.\n // Use a different means to figure out the render size.\n const baseLayer = renderer.xr.getSession()?.renderState.baseLayer;\n if (baseLayer) {\n renderSize.x = baseLayer.framebufferWidth;\n renderSize.y = baseLayer.framebufferHeight;\n }\n }\n }\n }\n this.uniforms.renderSize.value.copy(spark.renderSize);\n\n const typedCamera = camera as\n | THREE.PerspectiveCamera\n | THREE.OrthographicCamera;\n\n this.uniforms.near.value = typedCamera.near;\n this.uniforms.far.value = typedCamera.far;\n\n const geometry = this.geometry as SplatGeometry;\n geometry.instanceCount = spark.activeSplats;\n\n const accumToWorld = new THREE.Matrix4();\n if (!this.display.extSplats) {\n accumToWorld.makeTranslation(spark.display.viewOrigin);\n }\n const cameraToWorld = camera.matrixWorld.clone();\n const worldToCamera = cameraToWorld.invert();\n const accumToCamera = worldToCamera.multiply(accumToWorld);\n accumToCamera.decompose(\n this.uniforms.renderToViewPos.value,\n this.uniforms.renderToViewQuat.value,\n new THREE.Vector3(),\n );\n this.uniforms.renderToViewBasis.value.setFromMatrix4(accumToCamera);\n\n this.uniforms.maxStdDev.value = spark.maxStdDev;\n this.uniforms.minPixelRadius.value = spark.minPixelRadius;\n this.uniforms.maxPixelRadius.value = spark.maxPixelRadius;\n this.uniforms.minAlpha.value = spark.minAlpha;\n this.uniforms.enable2DGS.value = spark.enable2DGS;\n // this.uniforms.enableRayEval.value = spark.enableRayEval;\n this.uniforms.lodInflate.value = spark.lodInflate;\n this.uniforms.preBlurAmount.value = spark.preBlurAmount;\n this.uniforms.blurAmount.value = spark.blurAmount;\n this.uniforms.focalDistance.value = spark.focalDistance;\n this.uniforms.apertureAngle.value = spark.apertureAngle;\n this.uniforms.falloff.value = spark.falloff;\n this.uniforms.clipXY.value = spark.clipXY;\n this.uniforms.focalAdjustment.value = spark.focalAdjustment;\n this.uniforms.encodeLinear.value = spark.encodeLinear;\n\n this.uniforms.ordering.value =\n spark.orderingTexture ?? SparkRenderer.emptyOrdering;\n this.uniforms.enableExtSplats.value = this.display.extSplats;\n this.uniforms.enableCovSplats.value = this.display.covSplats;\n if (this.display.extSplats) {\n const extSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = extSplats[0];\n this.uniforms.extSplats2.value = extSplats[1];\n } else {\n const packedSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = packedSplats[0];\n this.uniforms.extSplats2.value = packedSplats[0];\n }\n\n this.uniforms.time.value = spark.display.time;\n this.uniforms.deltaTime.value = spark.display.deltaTime;\n // Alternating debug flag that can aid in visual debugging\n this.uniforms.debugFlag.value = (performance.now() / 1000.0) % 2.0 < 1.0;\n\n if (spark.autoUpdate && isNewFrame) {\n const preUpdate = spark.preUpdate && !renderer.xr.isPresenting;\n const useCamera = renderer.xr.isPresenting\n ? renderer.xr.getCamera()\n : camera;\n if (preUpdate) {\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n } else {\n if (spark.updateTimeoutId === -1) {\n spark.updateTimeoutId = setTimeout(() => {\n spark.updateTimeoutId = -1;\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n }, 1);\n }\n }\n }\n\n spark.dirty = false;\n }\n\n clearSplats() {\n this.activeSplats = 0;\n this.display.numSplats = 0;\n this.setDirty();\n }\n\n async update({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }) {\n await this.updateInternal({ scene, camera, autoUpdate: false });\n }\n\n // /**\n // * Provide additional cameras to prefetch paged splat chunks without\n // * affecting main LOD selection.\n // */\n // setPrefetchCameras(cameras?: THREE.Camera[], lodScaleMultiplier = 1.0) {\n // const next = cameras?.filter(Boolean) ?? [];\n // const sameCameras =\n // this.prefetchCameras.length === next.length &&\n // this.prefetchCameras.every((camera, index) => camera === next[index]);\n // if (sameCameras && this.prefetchLodScale === lodScaleMultiplier) {\n // return;\n // }\n // this.prefetchCameras = next;\n // this.prefetchLodScale = lodScaleMultiplier;\n // this.invalidatePrefetchCache();\n // }\n\n // /**\n // * Invalidate the prefetch meshes cache. Call this when SplatMeshes are\n // * added or removed from the scene.\n // */\n // invalidatePrefetchCache() {\n // this.prefetchMeshesCacheScene = undefined;\n // }\n\n private async updateInternal({\n scene,\n camera,\n autoUpdate,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n autoUpdate: boolean;\n }) {\n const renderer = this.renderer;\n const time = this.time ?? this.clock.getElapsedTime();\n\n const center = camera.getWorldPosition(new THREE.Vector3());\n const dir = camera.getWorldDirection(new THREE.Vector3());\n\n const viewChanged =\n center.distanceTo(this.sortedCenter) > 0.001 ||\n dir.dot(this.sortedDir) < 0.999;\n\n const next = this.accumulators.pop();\n if (!next) {\n // Should never happen\n throw new Error(\"No next accumulator\");\n }\n if (next === this.current) {\n // Should never happen\n throw new Error(\n \"Next accumulator is the same as the current accumulator\",\n );\n }\n const { version, mappingVersion, visibleGenerators, generate } =\n next.prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial: this.sortRadial ?? true,\n renderSize: this.renderSize,\n previous: this.current,\n lodInstances: this.enableLod ? this.lodInstances : undefined,\n });\n\n let doUpdate = true;\n const needsUpdate = viewChanged || version !== this.current.version;\n const mappingUpdated = mappingVersion !== this.display.mappingVersion;\n\n if (autoUpdate && !needsUpdate) {\n // Triggered by auto-update but no change\n doUpdate = false;\n }\n\n if (mappingUpdated && this.sorting) {\n // We need to be able to sort the splats because the mapping has changed.\n // Try again next time around.\n doUpdate = false;\n }\n\n if (!doUpdate) {\n // Restore unused accumulator to the free list\n this.accumulators.push(next);\n } else {\n generate();\n\n if (this.flushAfterGenerate) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n if (this.display.mappingVersion === next.mappingVersion) {\n // Same splat mapping so let's display it immediately and\n // reuse the sort order\n this.accumulators.push(this.display);\n this.display = next;\n } else {\n if (this.display !== this.current) {\n // The previous current is not being displayed, so replace it\n this.accumulators.push(this.current);\n }\n }\n\n this.current = next;\n this.sortDirty = true;\n this.setDirty();\n }\n\n if (this.enableDriveLod) {\n this.driveLod({ visibleGenerators, camera, scene });\n }\n await this.driveSort();\n }\n\n private async driveSort() {\n if (this.sorting || !this.sortDirty) {\n return;\n }\n\n if (this.sortTimeoutId !== -1) {\n clearTimeout(this.sortTimeoutId);\n this.sortTimeoutId = -1;\n }\n\n const now = performance.now();\n const nextSortTime = this.lastSortTime\n ? this.lastSortTime + this.minSortIntervalMs\n : now;\n if (now < nextSortTime) {\n this.sortTimeoutId = setTimeout(() => {\n this.sortTimeoutId = -1;\n this.driveSort();\n }, nextSortTime - now);\n return;\n }\n\n this.sorting = true;\n this.sortDirty = false;\n this.lastSortTime = now;\n\n if (this.readPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.readPause));\n }\n\n const current = this.current;\n\n this.sortedCenter.copy(current.viewOrigin);\n this.sortedDir.copy(current.viewDirection);\n\n const { numSplats, maxSplats } = current;\n const rows = Math.max(1, Math.ceil(maxSplats / 16384));\n const orderingMaxSplats = rows * 16384;\n this.maxSplats = Math.max(this.maxSplats, orderingMaxSplats);\n\n const ordering = new Uint32Array(this.maxSplats);\n const readback = Readback.ensureBuffer(maxSplats, this.readback32);\n this.readback32 = readback;\n\n await this.readbackDepth({\n current,\n renderer: this.renderer,\n numSplats,\n readback,\n });\n\n if (this.sortPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortPause));\n }\n\n if (!this.sortWorker) {\n this.sortWorker = new SplatWorker();\n }\n const result = (await this.sortWorker.call(\"sortSplats32\", {\n numSplats,\n readback,\n ordering,\n })) as {\n readback: Uint32Array;\n ordering: Uint32Array;\n activeSplats: number;\n };\n\n if (this.sortDelay > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortDelay));\n }\n\n this.readback32 = result.readback;\n\n this.activeSplats = result.activeSplats;\n\n if (this.orderingTexture) {\n if (rows > this.orderingTexture.image.height) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n }\n\n if (!this.orderingTexture) {\n // console.log(`Allocating orderingTexture: ${4096}x${rows}`);\n const orderingTexture = new THREE.DataTexture(\n result.ordering,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n orderingTexture.internalFormat = \"RGBA32UI\";\n orderingTexture.needsUpdate = true;\n this.orderingTexture = orderingTexture;\n } else {\n const renderer = this.renderer;\n const gl = renderer.getContext() as WebGL2RenderingContext;\n if (!renderer.properties.has(this.orderingTexture)) {\n this.orderingTexture.needsUpdate = true;\n } else {\n const props = renderer.properties.get(this.orderingTexture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"ordering texture not found\");\n }\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n // data,\n result.ordering,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n\n // console.log(`Sorted (${this.minSortIntervalMs}) ${numSplats} splats in ${(performance.now() - now).toFixed(0)} ms`);\n\n if (this.current.mappingVersion === current.mappingVersion) {\n if (this.current.mappingVersion !== this.display.mappingVersion) {\n this.accumulators.push(this.display);\n this.display = this.current;\n }\n }\n this.sorting = false;\n this.setDirty();\n\n this.driveSort();\n }\n\n private ensureLodWorker() {\n if (!this.lodWorker) {\n this.lodWorker = new SplatWorker();\n }\n return this.lodWorker;\n }\n\n defaultSplatTarget() {\n return isOculus()\n ? 500000\n : isVisionPro()\n ? 750000\n : isAndroid()\n ? 1000000\n : isIos()\n ? 1500000\n : 2500000;\n }\n\n private driveLod({\n visibleGenerators,\n camera,\n scene,\n }: {\n visibleGenerators: SplatGenerator[];\n camera: THREE.Camera;\n scene: THREE.Scene;\n }) {\n const defaultSplatCount = this.defaultSplatTarget();\n const splatCount = this.lodSplatCount ?? defaultSplatCount;\n const maxSplats = splatCount * this.lodSplatScale;\n\n let pixelScaleLimit = 0.0;\n if (camera instanceof THREE.PerspectiveCamera) {\n const tanYfov = Math.tan((0.5 * camera.fov * Math.PI) / 180);\n pixelScaleLimit = (2.0 * tanYfov) / this.renderSize.y;\n } else if (camera instanceof THREE.OrthographicCamera) {\n // Effective visible size after zoom\n const viewHeight = (camera.top - camera.bottom) / camera.zoom;\n const viewWidth = (camera.right - camera.left) / camera.zoom;\n // World/view units per pixel (constant with depth for ortho)\n const pxY = viewHeight / Math.max(1, this.renderSize.y);\n const pxX = viewWidth / Math.max(1, this.renderSize.x);\n pixelScaleLimit = Math.min(pxX, pxY);\n }\n\n pixelScaleLimit *= this.lodRenderScale;\n\n const viewPos = new THREE.Vector3();\n const viewQuat = new THREE.Quaternion();\n this.current.viewToWorld.decompose(viewPos, viewQuat, new THREE.Vector3());\n\n if (this.lodPosOverride) {\n viewPos.copy(this.lodPosOverride);\n }\n if (this.lodQuatOverride) {\n viewQuat.copy(this.lodQuatOverride).normalize();\n }\n\n if (this.lastLod) {\n if (\n this.lastLod.pixelScaleLimit !== pixelScaleLimit ||\n this.lastLod.maxSplats !== maxSplats\n ) {\n this.lodDirty = true;\n }\n\n const distance = viewPos.distanceTo(this.lastLod.pos);\n const distanceRamp = Math.max(0.0, 1.0 - distance / 1.0);\n const dot = viewQuat.dot(this.lastLod.quat);\n const quatRamp = Math.max(0.0, 1.0 - (1.0 - dot) / 0.01);\n const similarity = distanceRamp * quatRamp;\n if (similarity < 0.999) {\n this.lodDirty = true;\n }\n }\n\n const lodMeshes = !this.enableLod\n ? []\n : (visibleGenerators.filter((generator) => {\n return (\n generator instanceof SplatMesh &&\n (generator.packedSplats?.lodSplats ||\n generator.extSplats?.lodSplats ||\n generator.paged) &&\n generator.enableLod !== false\n );\n }) as SplatMesh[]);\n const hasPaged = lodMeshes.some((mesh) => mesh.paged);\n\n if (this.lodMeshes.length !== lodMeshes.length) {\n this.lodDirty = true;\n } else {\n if (\n lodMeshes.some(\n (m, i) =>\n m !== this.lodMeshes[i].mesh ||\n m.version > this.lodMeshes[i].version,\n )\n ) {\n this.lodDirty = true;\n }\n }\n\n this.lodMeshes = lodMeshes.map((mesh) => ({\n mesh,\n version: mesh.version + 1,\n }));\n\n // if (!this.lodDirty && lodMeshes.length === 0 && this.lodIds.size === 0) {\n // return;\n // }\n\n this.lodInitQueue = [];\n const now = performance.now();\n\n for (const mesh of lodMeshes) {\n const splats =\n mesh.packedSplats?.lodSplats ?? mesh.extSplats?.lodSplats ?? mesh.paged;\n if (splats) {\n const record = this.lodIds.get(splats);\n if (record) {\n record.lastTouched = now;\n } else {\n this.lodInitQueue.push(splats);\n }\n }\n }\n\n this.ensureLodWorker().tryExclusive(async (worker) => {\n if (hasPaged && !this.pager) {\n this.pager = new SplatPager({\n renderer: this.renderer,\n extSplats: this.pagedExtSplats,\n maxSplats: this.maxPagedSplats,\n numFetchers: this.numLodFetchers,\n });\n\n const { lodId } = (await worker.call(\"newLodTree\", {\n capacity: this.pager.maxSplats,\n })) as { lodId: number };\n this.pagerId = lodId;\n }\n\n // Assign pager to any new meshes that don't have one yet\n // (must run every frame, not just when pager is first created)\n if (this.pager) {\n for (const { mesh } of this.lodMeshes) {\n if (mesh.paged && !mesh.paged.pager) {\n mesh.paged.pager = this.pager;\n }\n }\n }\n\n if (this.lodInitQueue.length > 0) {\n const lodInitQueue = this.lodInitQueue;\n this.lodInitQueue = [];\n while (lodInitQueue.length > 0) {\n const splats = lodInitQueue.shift();\n if (splats) {\n await this.initLodTree(worker, splats);\n this.lodDirty = true;\n }\n }\n }\n\n if (this.pager) {\n const updates = this.pager.consumeLodTreeUpdates();\n\n for (const { splats, page, chunk, numSplats, lodTree } of updates) {\n const record = this.lodIds.get(splats);\n if (record) {\n if (lodTree && chunk === 0) {\n record.rootPage = page;\n }\n this.lodUpdates.push({\n lodId: record.lodId,\n pageBase: page * this.pager.pageSplats,\n chunkBase: chunk * this.pager.pageSplats,\n count: numSplats,\n lodTreeData: lodTree,\n });\n }\n }\n }\n\n if (this.lodUpdates.length > 0) {\n const lodUpdates = this.lodUpdates;\n this.lodUpdates = [];\n await worker.call(\"updateLodTrees\", { ranges: lodUpdates });\n this.lodDirty = true;\n }\n\n if (this.lodDirty) {\n const now = performance.now();\n const deltaPred = new THREE.Vector3();\n if (this.lastLod) {\n const deltaTime = Math.max(1, now - this.lastLod.timestamp);\n deltaPred\n .copy(viewPos)\n .sub(this.lastLod.pos)\n .multiplyScalar(this.lastTraverseTime / deltaTime);\n }\n this.lastLod = {\n pos: viewPos,\n quat: viewQuat,\n pixelScaleLimit,\n maxSplats,\n timestamp: now,\n };\n this.lodDirty = false;\n\n await this.updateLodInstances(\n worker,\n deltaPred,\n lodMeshes,\n maxSplats,\n viewPos,\n viewQuat,\n pixelScaleLimit,\n );\n this.currentLod = this.lastLod;\n this.setDirty();\n }\n\n await this.cleanupLodTrees(worker);\n });\n }\n\n private async initLodTree(\n worker: SplatWorker,\n splats: PackedSplats | ExtSplats | PagedSplats,\n ) {\n if (splats instanceof PackedSplats || splats instanceof ExtSplats) {\n const { lodId } = (await worker.call(\"initLodTree\", {\n numSplats: splats.numSplats ?? 0,\n lodTree: (splats.extra.lodTree as Uint32Array).slice(),\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** initLodTree\", lodId, splats.extra.lodTree, splats);\n } else {\n const { lodId } = (await worker.call(\"newSharedLodTree\", {\n lodId: this.pagerId,\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** newSharedLodTree\", lodId, this.pagerId, splats);\n }\n }\n\n private pageSizeWarning = false;\n\n private async updateLodInstances(\n worker: SplatWorker,\n deltaPred: THREE.Vector3,\n lodMeshes: SplatMesh[],\n maxSplats: number,\n viewPos: THREE.Vector3,\n viewQuat: THREE.Quaternion,\n pixelScaleLimit: number,\n ) {\n // Commented out because it makes LoDing less stable\n // viewPos.add(deltaPred);\n\n const uuidToMesh: Map = new Map();\n const cameraToWorld = new THREE.Matrix4().compose(\n viewPos,\n viewQuat,\n new THREE.Vector3().setScalar(1),\n );\n\n const instances = lodMeshes.reduce(\n (instances, mesh) => {\n uuidToMesh.set(mesh.uuid, mesh);\n const viewToObject = mesh.matrixWorld\n .clone()\n .invert()\n .multiply(cameraToWorld);\n\n const splats =\n mesh.packedSplats?.lodSplats ??\n mesh.extSplats?.lodSplats ??\n mesh.paged;\n if (!splats) {\n return instances;\n }\n const record = this.lodIds.get(splats);\n if (!record) {\n return instances;\n }\n\n if (this.pager && mesh.paged && record.rootPage === undefined) {\n return instances;\n }\n\n instances[mesh.uuid] = {\n instanceId: mesh.uuid,\n lodId: record.lodId,\n rootPage: record.rootPage,\n viewToObjectCols: viewToObject.elements,\n lodScale: mesh.lodScale,\n behindFoveate: mesh.behindFoveate ?? this.behindFoveate,\n coneFov0: mesh.coneFov0 ?? this.coneFov0,\n coneFov: mesh.coneFov ?? this.coneFov,\n coneFoveate: mesh.coneFoveate ?? this.coneFoveate,\n };\n return instances;\n },\n {} as Record<\n string,\n {\n instanceId: string;\n lodId: number;\n rootPage?: number;\n viewToObjectCols: number[];\n lodScale: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n }\n >,\n );\n\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit: this.lastPixelLimit,\n instances,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n chunks: [number, number][];\n pixelLimit?: number;\n };\n this.lastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices, chunks, pixelLimit } = result;\n this.lastPixelLimit = pixelLimit;\n const totalLodSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n // console.log(\n // `traverseLodTrees in ${this.lastTraverseTime} ms, pixelLimit=${pixelLimit}, totalLodSplats=${totalLodSplats}`,\n // );\n\n this.updateLodIndices(uuidToMesh, keyIndices);\n // console.log(\"chunks.length =\", chunks.length);\n\n if (this.pager) {\n this.pager.processUploads();\n\n const pagedMeshes = lodMeshes\n .map((mesh) => {\n if (!mesh.paged || !this.pager) {\n return null;\n }\n const meshPosition = mesh.getWorldPosition(new THREE.Vector3());\n return {\n splats: mesh.paged,\n distance: meshPosition.distanceTo(viewPos),\n };\n })\n .filter((result) => result !== null);\n\n if (!this.pageSizeWarning && pagedMeshes.length > this.pager.maxPages) {\n this.pageSizeWarning = true;\n console.warn(\n `# paged SplatMeshes exceeds maxPages: ${pagedMeshes.length} > ${this.pager.maxPages}`,\n );\n }\n\n // Fetch root chunk of each paged splats in priority of distance to camera\n pagedMeshes.sort((a, b) => a.distance - b.distance);\n this.pager.fetchPriority = pagedMeshes.map(({ splats }) => ({\n splats,\n chunk: 0,\n }));\n\n for (const [lodId, chunk] of chunks) {\n const splats = this.lodIdToSplats.get(lodId);\n if (splats instanceof PagedSplats) {\n if (chunk !== 0) {\n this.pager.fetchPriority.push({ splats, chunk });\n }\n }\n }\n\n this.pager.autoDrive = this.enableLodFetching;\n if (this.enableLodFetching) {\n this.pager.driveFetchers();\n }\n }\n\n if (\n this.lodRaycast &&\n performance.now() - this.lastLodRaycastTime >= this.lodRaycastIntervalMs\n ) {\n this.lastLodRaycastTime = performance.now();\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats: Math.min(this.lodRaycast, Math.round(totalLodSplats * 0.1)),\n pixelScaleLimit,\n instances,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n };\n const raycastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices } = result;\n const totalRaycastSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n mesh.raycastIndices = countIndices;\n // console.log(\"Set raycast indices\", uuid, countIndices.numSplats, countIndices.indices.length);\n }\n // console.log(`raycast traverse in ${raycastTraverseTime} ms, totalRaycastSplats=${totalRaycastSplats}`);\n }\n }\n\n private async cleanupLodTrees(worker: SplatWorker) {\n const DISPOSE_TIMEOUT_MS = 3000;\n const now = performance.now();\n\n let oldest = null;\n for (const [splats, record] of this.lodIds.entries()) {\n if (oldest == null || record.lastTouched < oldest.lastTouched) {\n oldest = {\n splats,\n lastTouched: record.lastTouched,\n lodId: record.lodId,\n };\n }\n }\n if (!oldest || oldest.lastTouched > now - DISPOSE_TIMEOUT_MS) {\n return;\n }\n\n this.lodIds.delete(oldest.splats);\n this.lodIdToSplats.delete(oldest.lodId);\n\n for (const [mesh, instance] of this.lodInstances.entries()) {\n if (instance.lodId === oldest.lodId) {\n instance.texture.dispose();\n this.lodInstances.delete(mesh);\n }\n }\n\n await worker.call(\"disposeLodTree\", { lodId: oldest.lodId });\n // console.log(\"disposed lodTree\", oldest.lodId);\n }\n\n private updateLodIndices(\n uuidToMesh: Map,\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >,\n ) {\n // console.log(\"updateLodIndices\", keyIndices);\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const { lodId, numSplats, indices } = countIndices;\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n\n if (mesh.paged) {\n mesh.paged.update(numSplats, indices);\n // console.log(\"*** paged.update\", lodId, numSplats, indices.slice(0, 5).join(\",\"));\n } else {\n let instance = this.lodInstances.get(mesh);\n if (instance) {\n if (indices.length > instance.indices.length) {\n instance.texture.dispose();\n instance = undefined;\n }\n }\n\n const rows = Math.ceil(indices.length / 16384);\n if (!instance) {\n const capacity = rows * 16384;\n if (indices.length !== capacity) {\n throw new Error(\"Indices length != capacity\");\n }\n const texture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n instance = { lodId, numSplats, indices, texture };\n this.lodInstances.set(mesh, instance);\n } else {\n instance.numSplats = numSplats;\n // instance.indices.set(indices.subarray(0, numSplats));\n\n const renderer = this.renderer;\n const gl = renderer.getContext() as WebGL2RenderingContext;\n if (renderer.properties.has(instance.texture)) {\n const props = renderer.properties.get(instance.texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"lodIndices texture not found\");\n }\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n indices,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n }\n mesh.updateMappingVersion();\n }\n }\n\n private async readbackDepth({\n current,\n renderer,\n numSplats,\n readback,\n }: {\n current: SplatAccumulator;\n renderer: THREE.WebGLRenderer;\n numSplats: number;\n readback: Uint32Array;\n }) {\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!current.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(readback.buffer);\n const renderState = this.saveRenderState(renderer);\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < numSplats) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((numSplats - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n renderer.setRenderTarget(current.target, layer);\n\n const promise = renderer.readRenderTargetPixelsAsync(\n current.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n undefined,\n current.extSplats ? 2 : 1,\n );\n promises.push(promise);\n\n if (this.flushAfterRead) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.resetRenderState(renderer, renderState);\n return Promise.all(promises).then(() => readback);\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private static emptyOrdering = (() => {\n const numIndices = 4 * 4096 * 1;\n const emptyArray = new Uint32Array(numIndices);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n render(scene: THREE.Scene, camera: THREE.Camera) {\n try {\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n }\n\n renderTarget({\n scene,\n camera,\n }: { scene: THREE.Scene; camera: THREE.Camera }): THREE.WebGLRenderTarget {\n const target = this.backTarget ?? this.target;\n if (!target) {\n throw new Error(\"No target\");\n }\n\n const previousTarget = this.renderer.getRenderTarget();\n try {\n this.renderer.setRenderTarget(target);\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n this.renderer.setRenderTarget(previousTarget);\n }\n\n if (target !== this.target) {\n // Swap back buffer and target\n [this.target, this.backTarget] = [this.backTarget, this.target];\n }\n return target;\n }\n\n // Read back the previously rendered target image as a Uint8Array of packed\n // RGBA values (in that order). Subsequent calls to this.readTarget()\n // will reuse the same buffers to minimize memory allocations.\n async readTarget(): Promise {\n if (!this.target) {\n throw new Error(\"Must initialize with target\");\n }\n const { width, height } = this.target;\n const byteSize = width * height * 4;\n if (!this.superPixels || this.superPixels.length < byteSize) {\n this.superPixels = new Uint8Array(byteSize);\n // console.log(`Allocated superPixels: ${width}x${height} = ${pixelCount} bytes`);\n }\n const superPixels = this.superPixels;\n\n await this.renderer.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n width,\n height,\n superPixels,\n );\n\n const { superXY } = this;\n if (superXY === 1) {\n return superPixels;\n }\n\n const subWidth = width / superXY;\n const subHeight = height / superXY;\n const subSize = subWidth * subHeight * 4;\n if (!this.targetPixels || this.targetPixels.length < subSize) {\n this.targetPixels = new Uint8Array(subSize);\n // console.log(`Allocated targetPixels: ${subWidth}x${subHeight} = ${subSize} bytes`);\n }\n const targetPixels = this.targetPixels;\n\n const super2 = superXY * superXY;\n for (let y = 0; y < subHeight; y++) {\n const row = y * subWidth;\n for (let x = 0; x < subWidth; x++) {\n const superCol = x * superXY;\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n for (let sy = 0; sy < superXY; sy++) {\n const superRow = (y * superXY + sy) * width;\n for (let sx = 0; sx < superXY; sx++) {\n const superIndex = (superRow + superCol + sx) * 4;\n r += superPixels[superIndex];\n g += superPixels[superIndex + 1];\n b += superPixels[superIndex + 2];\n a += superPixels[superIndex + 3];\n }\n }\n const pixelIndex = (row + x) * 4;\n targetPixels[pixelIndex] = r / super2;\n targetPixels[pixelIndex + 1] = g / super2;\n targetPixels[pixelIndex + 2] = b / super2;\n targetPixels[pixelIndex + 3] = a / super2;\n }\n }\n return targetPixels;\n }\n\n async renderReadTarget({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }): Promise {\n this.renderTarget({ scene, camera });\n return this.readTarget();\n }\n\n // Data and buffers used for environment map rendering\n private static cubeRender: {\n target: THREE.WebGLCubeRenderTarget;\n cubeCamera: THREE.CubeCamera;\n near: number;\n far: number;\n } | null = null;\n private static pmrem: THREE.PMREMGenerator | null = null;\n\n // Renders out the scene to a cube map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces.\n async renderCubeMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n filter = false,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n filter: boolean;\n }): Promise {\n if (\n !SparkRenderer.cubeRender ||\n SparkRenderer.cubeRender.target.width !== size ||\n SparkRenderer.cubeRender.near !== near ||\n SparkRenderer.cubeRender.far !== far\n ) {\n if (SparkRenderer.cubeRender) {\n SparkRenderer.cubeRender.target.dispose();\n }\n const target = new THREE.WebGLCubeRenderTarget(size, {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n generateMipmaps: filter,\n minFilter: filter ? THREE.LinearMipMapLinearFilter : THREE.LinearFilter,\n magFilter: THREE.LinearFilter,\n colorSpace: filter ? THREE.LinearSRGBColorSpace : THREE.SRGBColorSpace,\n });\n const cubeCamera = new THREE.CubeCamera(near, far, target);\n SparkRenderer.cubeRender = { target, cubeCamera, near, far };\n }\n\n const { target, cubeCamera } = SparkRenderer.cubeRender;\n cubeCamera.position.copy(worldCenter);\n\n // Save the visibility state of objects we want to hide before render\n const objectVisibility = new Map();\n for (const object of hideObjects) {\n objectVisibility.set(object, object.visible);\n object.visible = false;\n }\n\n if (update) {\n const tempCamera = new THREE.Camera();\n tempCamera.position.copy(worldCenter);\n await this.update({ scene, camera: tempCamera });\n }\n\n try {\n SparkRenderer.sparkOverride = this;\n // Update the CubeCamera, which performs 6 cube face renders\n cubeCamera.update(this.renderer, scene);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n\n // Restore viewpoint to default and object visibility\n for (const [object, visible] of objectVisibility.entries()) {\n object.visible = visible;\n }\n\n return target.texture;\n }\n\n async readCubeTargets(): Promise {\n if (!SparkRenderer.cubeRender) {\n throw new Error(\"No cube render\");\n }\n\n const textures = SparkRenderer.cubeRender.target.texture;\n const promises = [];\n const buffers = [];\n\n for (let i = 0; i < textures.images.length; ++i) {\n const { width, height } = textures.images[i];\n const byteSize = width * height * 4;\n const readback = new Uint8Array(byteSize);\n buffers.push(readback);\n const promise = this.renderer.readRenderTargetPixelsAsync(\n SparkRenderer.cubeRender.target,\n 0,\n 0,\n width,\n height,\n readback,\n i,\n );\n promises.push(promise);\n }\n\n await Promise.all(promises);\n return buffers;\n }\n\n // Renders out the scene to an environment map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces,\n // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture\n // that can assigned directly to a THREE.MeshStandardMaterial.envMap property.\n async renderEnvMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n }): Promise {\n const cubeTexture = await this.renderCubeMap({\n scene,\n worldCenter,\n size,\n near,\n far,\n hideObjects,\n update,\n filter: true,\n });\n // Pre-filter the cube map using THREE.PMREMGenerator if requested\n if (!SparkRenderer.pmrem) {\n SparkRenderer.pmrem = new THREE.PMREMGenerator(this.renderer);\n }\n\n return SparkRenderer.pmrem?.fromCubemap(cubeTexture).texture;\n }\n\n // Utility function to recursively set the envMap property for any\n // THREE.MeshStandardMaterial within the subtree of root.\n recurseSetEnvMap(root: THREE.Object3D, envMap: THREE.Texture) {\n root.traverse((node) => {\n if (node instanceof THREE.Mesh) {\n if (Array.isArray(node.material)) {\n for (const material of node.material) {\n if (material instanceof THREE.MeshStandardMaterial) {\n material.envMap = envMap;\n }\n }\n } else {\n if (node.material instanceof THREE.MeshStandardMaterial) {\n node.material.envMap = envMap;\n }\n }\n }\n });\n }\n\n async getLodTreeLevel(\n splats: SplatMesh,\n level: number,\n pageColoring = false,\n ) {\n const instance = this.lodInstances.get(splats);\n if (!instance) {\n return null;\n }\n\n const result = await this.ensureLodWorker().exclusive(async (worker) => {\n return (await worker.call(\"getLodTreeLevel\", {\n lodId: instance.lodId,\n level,\n })) as { indices: Uint32Array };\n });\n\n if (splats.packedSplats?.lodSplats) {\n const newSplats = splats.packedSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ packedSplats: newSplats });\n }\n if (splats.extSplats?.lodSplats) {\n const newSplats = splats.extSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ extSplats: newSplats });\n }\n throw new Error(\n \"Only LoD-enabled PackedSplats and ExtSplats are supported\",\n );\n }\n\n get premultipliedAlpha(): boolean {\n return this.material.premultipliedAlpha;\n }\n\n set premultipliedAlpha(value: boolean) {\n if (this.material.premultipliedAlpha !== value) {\n this.material.premultipliedAlpha = value;\n this.material.needsUpdate = true;\n }\n }\n}\n","import * as THREE from \"three\";\n\nimport init_wasm, { decode_rad_header } from \"spark-rs\";\nimport { LN_SCALE_MAX, LN_SCALE_MIN, dyno } from \".\";\nimport { evaluateExtSH } from \"./ExtSplats\";\nimport { evaluatePackedSH } from \"./PackedSplats\";\nimport { getSplatFileType, getSplatFileTypeFromPath } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n type ExtResult,\n type PackedResult,\n type RadMeta,\n type SplatEncoding,\n SplatFileType,\n} from \"./defines\";\nimport { pagedSplatTexCoord } from \"./dyno\";\nimport { decodeExtSplat, getTextureSize, unpackSplat } from \"./utils\";\n\nexport interface PagedSplatsOptions {\n pager?: SplatPager;\n rootUrl?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n maxSh?: number;\n}\n\nexport class PagedSplats implements SplatSource {\n pager?: SplatPager;\n rootUrl: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n\n numSh: number;\n maxSh: number;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array | [Uint32Array, Uint32Array];\n\n numSplats: number;\n splatEncoding?: SplatEncoding;\n radMetaPromise?: Promise<{ meta: RadMeta; chunksStart: number }>;\n\n dynoNumSplats: dyno.DynoInt<\"numSplats\">;\n dynoIndices: dyno.DynoUsampler2D<\"indices\", THREE.DataTexture>;\n rgbMinMaxLnScaleMinMax: dyno.DynoVec4<\n THREE.Vector4,\n \"rgbMinMaxLnScaleMinMax\"\n >;\n lodOpacity: dyno.DynoBool<\"lodOpacity\">;\n dynoNumSh: dyno.DynoInt<\"numSh\">;\n shMax: dyno.DynoVec3;\n\n constructor(options: PagedSplatsOptions) {\n this.pager = options.pager;\n this.rootUrl = options.rootUrl ?? \"\";\n this.requestHeader = options.requestHeader;\n this.withCredentials = options.withCredentials;\n this.numSh = 0;\n this.maxSh = options.pager?.maxSh ?? 3;\n\n this.numSplats = 0;\n\n this.dynoNumSplats = new dyno.DynoInt({ value: 0 });\n this.dynoIndices = new dyno.DynoUsampler2D({\n value: SplatPager.emptyIndicesTexture,\n });\n\n this.rgbMinMaxLnScaleMinMax = new dyno.DynoVec4({\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n });\n this.lodOpacity = new dyno.DynoBool({\n value: false,\n });\n\n this.dynoNumSh = new dyno.DynoInt({ value: 0 });\n this.shMax = new dyno.DynoVec3({ value: new THREE.Vector3() });\n\n this.fileBytes = options.fileBytes;\n this.fileType = options.fileType;\n if (!this.fileType && this.fileBytes) {\n this.fileType = getSplatFileType(this.fileBytes);\n }\n if (!this.fileType && this.rootUrl) {\n this.fileType = getSplatFileTypeFromPath(this.rootUrl);\n }\n if (!this.fileType) {\n throw new Error(\"Unable to determine file type\");\n }\n if (this.fileType === SplatFileType.RAD) {\n this.radMetaPromise = this.getRadMeta();\n }\n }\n\n dispose() {\n if (this.dynoIndices.value !== SplatPager.emptyIndicesTexture) {\n this.dynoIndices.value.dispose();\n this.dynoIndices.value = SplatPager.emptyIndicesTexture;\n }\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n getRadMeta(): Promise<{ meta: RadMeta; chunksStart: number }> {\n if (this.radMetaPromise) {\n return this.radMetaPromise;\n }\n\n this.radMetaPromise = (async () => {\n await wasmInitialized;\n\n if (this.fileBytes) {\n // Shouldn't be more than 1 MB, so don't send more data than that.\n const metaStart = decode_rad_header(this.fileBytes.slice(0, 1048576));\n if (metaStart) {\n return metaStart;\n }\n throw new Error(\"Failed to decode RAD header\");\n }\n if (!this.rootUrl) {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n // We don't know how big the header will be. Most likely 64KB will be enough,\n // but try larger blocks in backoff if it wasn't enough.\n for (const tryBytes of [65536, 256 * 1024, 1024 * 1024]) {\n const bytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset: 0,\n bytes: tryBytes,\n });\n const metaStart = decode_rad_header(bytes);\n if (metaStart) {\n return metaStart;\n }\n }\n throw new Error(\"Failed to decode RAD header\");\n })().then((metaStart) => {\n // console.log(\"RAD meta: \", metaStart.meta);\n return metaStart;\n });\n\n this.radMetaPromise.catch((error) => {\n console.error(error);\n // Allow it to be tried again\n // this.radMetaPromise = undefined;\n });\n\n return this.radMetaPromise;\n }\n\n chunkUrl(chunk: number): string {\n return this.rootUrl.replace(/-lod-0\\./, `-lod-${chunk}.`);\n }\n\n async fetchDecodeChunk(chunk: number) {\n let decodeBytes = undefined;\n\n if (this.fileType === SplatFileType.RAD) {\n const { meta, chunksStart } = await this.getRadMeta();\n if (chunk < 0 || chunk >= meta.chunks.length) {\n throw new Error(\n `Chunk index out of range: ${chunk} (max: ${meta.chunks.length - 1})`,\n );\n }\n let { offset, bytes, filename } = meta.chunks[chunk];\n\n if (filename) {\n if (this.fileBytes) {\n throw new Error(\"Chunked RAD file not supported with fileBytes\");\n }\n const resolvedRoot = new URL(\n this.rootUrl,\n window.location.href,\n ).toString();\n const chunkUrl = new URL(filename, resolvedRoot).toString();\n decodeBytes = await fetchRange({\n url: chunkUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n });\n } else {\n offset += chunksStart;\n // console.log(`Fetching chunk ${chunk} at offset ${offset} with bytes ${bytes}`);\n if (this.fileBytes) {\n if (offset < 0 || offset + bytes > this.fileBytes.length) {\n throw new Error(\n `Invalid chunk offset or bytes: ${offset} + ${bytes} > ${this.fileBytes.length}`,\n );\n }\n decodeBytes = this.fileBytes.slice(offset, offset + bytes);\n } else if (this.rootUrl) {\n decodeBytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset,\n bytes,\n });\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n }\n } else if (this.fileBytes) {\n // Fall through\n } else if (this.rootUrl) {\n const url = this.chunkUrl(chunk);\n const request = new Request(url, {\n headers: this.requestHeader\n ? new Headers(this.requestHeader)\n : undefined,\n credentials: this.withCredentials ? \"include\" : \"same-origin\",\n });\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n decodeBytes = new Uint8Array(await response.arrayBuffer());\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n return await workerPool.withWorker(async (worker) => {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n if (!this.pager.extSplats) {\n const result = (await worker.call(\"loadPackedSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: this.sh3Codes?.slice(),\n })) as { lodSplats: PackedResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = lodSplats.splatEncoding;\n\n this.numSh = lodSplats.extra.sh3\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n\n this.rgbMinMaxLnScaleMinMax.value.set(\n this.splatEncoding.rgbMin ?? 0.0,\n this.splatEncoding.rgbMax ?? 1.0,\n this.splatEncoding.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding.lnScaleMax ?? LN_SCALE_MAX,\n );\n\n this.lodOpacity.value = this.splatEncoding.lodOpacity ?? false;\n\n this.shMax.value.set(\n this.splatEncoding.sh1Max ?? 1.0,\n this.splatEncoding.sh2Max ?? 1.0,\n this.splatEncoding.sh3Max ?? 1.0,\n );\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n }\n\n const sh3Codes = this.sh3Codes as [Uint32Array, Uint32Array] | undefined;\n const result = (await worker.call(\"loadExtSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: sh3Codes\n ? [sh3Codes[0].slice(), sh3Codes[1].slice()]\n : undefined,\n })) as { lodSplats: ExtResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = DEFAULT_SPLAT_ENCODING;\n this.numSh =\n lodSplats.extra.sh3a && lodSplats.extra.sh3b\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n });\n }\n\n update(numSplats: number, indices: Uint32Array) {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const renderer = this.pager.renderer;\n this.numSplats = numSplats;\n this.dynoNumSplats.value = this.numSplats;\n const rows = Math.ceil(numSplats / 16384);\n\n let indicesTexture =\n this.dynoIndices.value === SplatPager.emptyIndicesTexture\n ? undefined\n : this.dynoIndices.value;\n if (indicesTexture && rows > indicesTexture.image.height) {\n indicesTexture.dispose();\n indicesTexture = undefined;\n }\n\n if (!indicesTexture) {\n indicesTexture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n indicesTexture.internalFormat = \"RGBA32UI\";\n indicesTexture.needsUpdate = true;\n renderer.initTexture(indicesTexture);\n this.dynoIndices.value = indicesTexture;\n } else {\n const textureIndices = indicesTexture.image.data as Uint32Array;\n textureIndices.set(indices.subarray(0, numSplats));\n\n const gl = renderer.getContext() as WebGL2RenderingContext;\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(\n gl.TEXTURE_2D,\n getGlTexture(renderer, indicesTexture),\n );\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n indices,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n\n prepareFetchSplat() {}\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n if (!this.pager) {\n return false;\n }\n return Math.min(this.numSh, this.pager.maxSh) > 0;\n }\n\n getNumSh(): number {\n return this.numSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: {\n index: dyno.DynoVal<\"int\">;\n viewOrigin?: dyno.DynoVal<\"vec3\">;\n }): dyno.DynoVal {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const splatIndex = this.pager.readIndex.apply({\n index,\n numSplats: this.dynoNumSplats,\n indices: this.dynoIndices,\n }).index;\n\n if (!this.pager.extSplats) {\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(\n this.numSh,\n this.maxSh,\n this.pager.maxSh,\n );\n return this.pager.readSplatDir.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n viewOrigin,\n numSh: this.dynoNumSh,\n shMax: this.shMax,\n }).gsplat;\n }\n return this.pager.readSplat.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n }).gsplat;\n }\n\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(this.numSh, this.maxSh, this.pager.maxSh);\n return this.pager.readSplatExtDir.apply({\n index: splatIndex,\n viewOrigin,\n numSh: this.dynoNumSh,\n }).gsplat;\n }\n return this.pager.readSplatExt.apply({ index: splatIndex }).gsplat;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.pager || !this.numSplats) {\n return;\n }\n const extSplats = this.pager.extSplats;\n const indices = this.dynoIndices.value.image.data as Uint32Array;\n const packedSplatArray = this.pager.packedTexture.value.image\n .data as Uint32Array;\n const extPackedSplatArray = this.pager.extTexture.value.image\n .data as Uint32Array;\n const extArrays: [Uint32Array, Uint32Array] = [\n packedSplatArray,\n extPackedSplatArray,\n ];\n\n for (let i = 0; i < this.numSplats; ++i) {\n const splatIndex = indices[i];\n const unpacked = extSplats\n ? decodeExtSplat(extArrays, splatIndex)\n : unpackSplat(packedSplatArray, splatIndex, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n}\n\nexport interface SplatPagerOptions {\n /**\n * THREE.WebGLRenderer instance to upload texture data\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Whether to use extended Gsplat encoding for paged splats.\n * @default false\n */\n extSplats?: boolean;\n /**\n * Maximum size of splat page pool\n * @default 65536 * 256 = 16777216\n */\n maxSplats?: number;\n /**\n * Maximum number of spherical harmonics to keep\n * @default 3\n */\n maxSh?: number;\n /**\n * Automatically drive page fetching, or poll via drive()\n * @default true\n */\n autoDrive?: boolean;\n /**\n * Number of parallel chunk fetchers\n * @default 3\n */\n numFetchers?: number;\n}\n\nexport class SplatPager {\n renderer: THREE.WebGLRenderer;\n\n extSplats: boolean;\n maxPages: number;\n maxSplats: number;\n pageSplats: number;\n\n maxSh: number;\n curSh: number;\n\n autoDrive: boolean;\n numFetchers: number;\n fetchPause = 0;\n\n splatsChunkToPage: Map<\n PagedSplats,\n ({ page: number; lru: number } | undefined)[]\n > = new Map();\n pageToSplatsChunk: (\n | { splats: PagedSplats; chunk: number; time: number }\n | undefined\n )[] = [];\n pageFreelist: number[];\n pageLru: Set<{ page: number; lru: number }>;\n freeablePages: number[];\n newUploads: {\n page: number;\n numSplats: number;\n packedArray: Uint32Array;\n extArray?: Uint32Array;\n extra: Record;\n }[];\n readyUploads: {\n page: number;\n numSplats: number;\n packedArray: Uint32Array;\n extArray?: Uint32Array;\n extra: Record;\n }[];\n lodTreeUpdates: {\n splats: PagedSplats;\n page: number;\n chunk: number;\n numSplats: number;\n lodTree?: Uint32Array;\n }[];\n\n fetchers: { splats: PagedSplats; chunk: number; promise: Promise }[];\n fetched: {\n splats: PagedSplats;\n chunk: number;\n data: PackedResult | ExtResult;\n }[];\n fetchPriority: { splats: PagedSplats; chunk: number }[];\n\n packedTexture: dyno.DynoUsampler2DArray<\n \"packedTexture\",\n THREE.DataArrayTexture\n >;\n extTexture: dyno.DynoUsampler2DArray<\"extTexture\", THREE.DataArrayTexture>;\n\n sh1Texture: dyno.DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture: dyno.DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture: dyno.DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB: dyno.DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n\n readIndex: dyno.DynoBlock<\n { index: \"int\"; numSplats: \"int\"; indices: \"usampler2D\" },\n { index: \"int\" }\n >;\n readSplat: dyno.DynoBlock<\n { index: \"int\"; rgbMinMaxLnScaleMinMax: \"vec4\"; lodOpacity: \"bool\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExt: dyno.DynoBlock<\n { index: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatDir: dyno.DynoBlock<\n {\n index: \"int\";\n rgbMinMaxLnScaleMinMax: \"vec4\";\n lodOpacity: \"bool\";\n viewOrigin: \"vec3\";\n numSh: \"int\";\n shMax: \"vec3\";\n },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExtDir: dyno.DynoBlock<\n { index: \"int\"; viewOrigin: \"vec3\"; numSh: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n\n constructor(options: SplatPagerOptions) {\n this.renderer = options.renderer;\n this.extSplats = options.extSplats ?? false;\n\n this.pageSplats = 65536;\n this.maxSplats = options.maxSplats ?? 16777216;\n this.maxPages = Math.ceil(this.maxSplats / this.pageSplats);\n this.maxSplats = this.maxPages * this.pageSplats;\n\n this.maxSh = options.maxSh ?? 3;\n this.curSh = 0;\n\n this.autoDrive = options.autoDrive ?? true;\n this.numFetchers = options.numFetchers ?? 3;\n\n this.splatsChunkToPage = new Map();\n this.pageToSplatsChunk = new Array(this.maxPages);\n this.pageFreelist = Array.from({ length: this.maxPages }, (_, i) => i);\n this.pageLru = new Set();\n this.freeablePages = [];\n this.newUploads = [];\n this.readyUploads = [];\n this.lodTreeUpdates = [];\n\n this.fetchers = [];\n this.fetched = [];\n this.fetchPriority = [];\n\n this.packedTexture = new dyno.DynoUsampler2DArray({\n value: this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n ),\n });\n this.extTexture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n )\n : SplatPager.emptyExtTexture,\n });\n this.sh1Texture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? SplatPager.emptyExtSh1Texture\n : SplatPager.emptySh1Texture,\n });\n this.sh2Texture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? SplatPager.emptyExtSh2Texture\n : SplatPager.emptySh2Texture,\n });\n this.sh3Texture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? SplatPager.emptyExtSh3Texture\n : SplatPager.emptySh3Texture,\n });\n this.sh3TextureB = new dyno.DynoUsampler2DArray({\n value: SplatPager.emptyExtSh3BTexture,\n });\n\n this.readIndex = dyno.dynoBlock(\n { index: \"int\", numSplats: \"int\", indices: \"usampler2D\" },\n { index: \"int\" },\n ({ index, numSplats, indices }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n numSplats: \"int\",\n indices: \"usampler2D\",\n },\n outTypes: { index: \"int\" },\n inputs: {\n index,\n numSplats,\n indices,\n },\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n if (${inputs.index} >= ${inputs.numSplats}) {\n return;\n }\n\n ivec2 indexCoord = ivec2((${inputs.index} >> 2) & 4095, ${inputs.index} >> 14);\n uint index = texelFetch(${inputs.indices}, indexCoord, 0)[${inputs.index} & 3];\n ${outputs.index} = int(index);\n `),\n }).outputs;\n },\n );\n\n this.readSplat = dyno.dynoBlock(\n { index: \"int\", rgbMinMaxLnScaleMinMax: \"vec4\", lodOpacity: \"bool\" },\n { gsplat: dyno.Gsplat },\n ({ index, rgbMinMaxLnScaleMinMax, lodOpacity }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n packedTexture: \"usampler2DArray\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n packedTexture: this.packedTexture,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = pagedSplatTexCoord(index);\n uvec4 packedData = texelFetch(${inputs.packedTexture}, splatCoord, 0);\n\n unpackSplatEncoding(packedData, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba, ${inputs.rgbMinMaxLnScaleMinMax});\n if ((${outputs.gsplat}.rgba.a == 0.0) || all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n \n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n if (${inputs.lodOpacity}) {\n ${outputs.gsplat}.rgba.a *= 2.0;\n }\n `),\n }).outputs;\n },\n );\n\n this.readSplatDir = dyno.dynoBlock(\n {\n index: \"int\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n shMax: \"vec3\",\n },\n { gsplat: dyno.Gsplat },\n ({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n viewOrigin,\n numSh,\n shMax,\n }) => {\n if (\n !index ||\n !rgbMinMaxLnScaleMinMax ||\n !lodOpacity ||\n !viewOrigin ||\n !numSh ||\n !shMax\n ) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplat.apply({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluatePackedSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.sh1Texture,\n sh2Texture: this.sh2Texture,\n sh3Texture: this.sh3Texture,\n shMax,\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n\n this.readSplatExt = dyno.dynoBlock(\n { index: \"int\" },\n { gsplat: dyno.Gsplat },\n ({ index }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n extTexture1: \"usampler2DArray\",\n extTexture2: \"usampler2DArray\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n extTexture1: this.packedTexture,\n extTexture2: this.extTexture,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16);\n uvec4 ext1 = texelFetch(${inputs.extTexture1}, splatCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if (alpha == 0.0) {\n return;\n }\n\n uvec4 ext2 = texelFetch(${inputs.extTexture2}, splatCoord, 0);\n unpackSplatExt(ext1, ext2, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba);\n if (all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n\n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n `),\n }).outputs;\n },\n );\n\n this.readSplatExtDir = dyno.dynoBlock(\n {\n index: \"int\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n },\n { gsplat: dyno.Gsplat },\n ({ index, viewOrigin, numSh }) => {\n if (!index || !viewOrigin || !numSh) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplatExt.apply({ index }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluateExtSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.sh1Texture,\n sh2Texture: this.sh2Texture,\n sh3TextureA: this.sh3Texture,\n sh3TextureB: this.sh3TextureB,\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n }\n\n dispose() {\n this.autoDrive = false;\n this.numFetchers = 0;\n\n this.packedTexture.value.dispose();\n this.packedTexture.value.source.data = null;\n if (this.extTexture.value !== SplatPager.emptyExtTexture) {\n this.extTexture.value.dispose();\n this.extTexture.value.source.data = null;\n }\n\n if (!this.extSplats) {\n if (this.sh1Texture.value !== SplatPager.emptySh1Texture) {\n this.sh1Texture.value.dispose();\n this.sh1Texture.value.source.data = null;\n }\n if (this.sh2Texture.value !== SplatPager.emptySh2Texture) {\n this.sh2Texture.value.dispose();\n this.sh2Texture.value.source.data = null;\n }\n if (this.sh3Texture.value !== SplatPager.emptySh3Texture) {\n this.sh3Texture.value.dispose();\n this.sh3Texture.value.source.data = null;\n }\n } else {\n if (this.sh1Texture.value !== SplatPager.emptyExtSh1Texture) {\n this.sh1Texture.value.dispose();\n this.sh1Texture.value.source.data = null;\n }\n if (this.sh2Texture.value !== SplatPager.emptyExtSh2Texture) {\n this.sh2Texture.value.dispose();\n this.sh2Texture.value.source.data = null;\n }\n if (this.sh3Texture.value !== SplatPager.emptyExtSh3Texture) {\n this.sh3Texture.value.dispose();\n this.sh3Texture.value.source.data = null;\n }\n if (this.sh3TextureB.value !== SplatPager.emptyExtSh3BTexture) {\n this.sh3TextureB.value.dispose();\n this.sh3TextureB.value.source.data = null;\n }\n }\n }\n\n private ensureShTextures(numSh: number) {\n this.curSh = Math.max(this.curSh, numSh);\n if (!this.extSplats) {\n if (\n this.curSh >= 1 &&\n this.sh1Texture.value === SplatPager.emptySh1Texture\n ) {\n this.sh1Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 2),\n 256,\n 256,\n this.maxPages,\n THREE.RGIntegerFormat,\n THREE.UnsignedIntType,\n \"RG32UI\",\n );\n }\n } else {\n if (\n this.curSh >= 1 &&\n this.sh1Texture.value === SplatPager.emptyExtSh1Texture\n ) {\n this.sh1Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n }\n if (\n this.curSh >= 2 &&\n this.sh2Texture.value ===\n (!this.extSplats\n ? SplatPager.emptySh2Texture\n : SplatPager.emptyExtSh2Texture)\n ) {\n this.sh2Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n if (!this.extSplats) {\n if (\n this.curSh >= 3 &&\n this.sh3Texture.value === SplatPager.emptySh3Texture\n ) {\n this.sh3Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n } else {\n if (this.curSh >= 3) {\n if (this.sh3Texture.value === SplatPager.emptyExtSh3Texture) {\n this.sh3Texture.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n if (this.sh3TextureB.value === SplatPager.emptyExtSh3BTexture) {\n this.sh3TextureB.value = this.newUint32ArrayTexture(\n new Uint32Array(this.maxPages * 256 * 256 * 4),\n 256,\n 256,\n this.maxPages,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n }\n }\n }\n }\n\n private allocatePage(): number | undefined {\n return this.pageFreelist.shift();\n }\n\n private freePage(page: number) {\n this.pageFreelist.push(page);\n }\n\n getSplatsChunk(splats: PagedSplats, chunk: number) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n return undefined;\n }\n return chunks[chunk];\n }\n\n private insertSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n now: number,\n ) {\n if (!this.splatsChunkToPage.has(splats)) {\n this.splatsChunkToPage.set(splats, []);\n }\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n if (chunk >= chunks.length) {\n chunks.length = chunk + 1;\n }\n const pageLru = { page, lru: now };\n chunks[chunk] = pageLru;\n this.pageLru.add(pageLru);\n\n this.pageToSplatsChunk[page] = { splats, chunk, time: performance.now() };\n return this.pageToSplatsChunk[page];\n }\n\n private removeSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n ) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n\n const pageLru = chunks[chunk];\n if (!pageLru) {\n throw new Error(\n `pageLru not found for splats: ${splats}, chunk: ${chunk}, page: ${page}`,\n );\n }\n this.pageLru.delete(pageLru);\n\n chunks[chunk] = undefined;\n\n while (chunks.length > 0 && chunks[chunks.length - 1] === undefined) {\n chunks.pop();\n }\n if (chunks.length === 0) {\n this.splatsChunkToPage.delete(splats);\n }\n\n this.pageToSplatsChunk[page] = undefined;\n while (\n this.pageToSplatsChunk.length > 0 &&\n this.pageToSplatsChunk[this.pageToSplatsChunk.length - 1] === undefined\n ) {\n this.pageToSplatsChunk.pop();\n }\n }\n\n private uploadPage(\n page: number,\n packedArray: Uint32Array,\n extra: Record,\n extArray?: Uint32Array,\n ) {\n const pageBase = page * this.pageSplats;\n\n // const gl = this.renderer.getContext() as WebGL2RenderingContext;\n\n // this.renderer.state.activeTexture(gl.TEXTURE0);\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.packedTexture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RGBA_INTEGER,\n // gl.UNSIGNED_INT,\n // packedArray,\n // );\n\n const array = this.packedTexture.value.image.data;\n array\n .subarray(pageBase * 4, pageBase * 4 + packedArray.length)\n .set(packedArray);\n this.packedTexture.value.addLayerUpdate(page);\n this.packedTexture.value.needsUpdate = true;\n\n if (extArray) {\n const array = this.extTexture.value.image.data;\n array\n .subarray(pageBase * 4, pageBase * 4 + extArray.length)\n .set(extArray);\n this.extTexture.value.addLayerUpdate(page);\n this.extTexture.value.needsUpdate = true;\n }\n\n const numSh = this.extSplats\n ? extra.sh3a && extra.sh3b\n ? 3\n : extra.sh2\n ? 2\n : extra.sh1\n ? 1\n : 0\n : extra.sh3\n ? 3\n : extra.sh2\n ? 2\n : extra.sh1\n ? 1\n : 0;\n this.ensureShTextures(numSh);\n\n if (!this.extSplats) {\n if (this.sh1Texture.value !== SplatPager.emptySh1Texture && extra.sh1) {\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.sh1Texture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RG_INTEGER,\n // gl.UNSIGNED_INT,\n // extra.sh1 as Uint32Array,\n // );\n const sh1 = extra.sh1 as Uint32Array;\n const array = this.sh1Texture.value.image.data;\n array.subarray(pageBase * 2, pageBase * 2 + sh1.length).set(sh1);\n this.sh1Texture.value.addLayerUpdate(page);\n this.sh1Texture.value.needsUpdate = true;\n }\n } else {\n if (\n this.sh1Texture.value !== SplatPager.emptyExtSh1Texture &&\n extra.sh1\n ) {\n const sh1 = extra.sh1 as Uint32Array;\n const array = this.sh1Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh1.length).set(sh1);\n this.sh1Texture.value.addLayerUpdate(page);\n this.sh1Texture.value.needsUpdate = true;\n }\n }\n\n if (this.sh2Texture.value !== SplatPager.emptySh2Texture && extra.sh2) {\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.sh2Texture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RGBA_INTEGER,\n // gl.UNSIGNED_INT,\n // extra.sh2 as Uint32Array,\n // );\n const sh2 = extra.sh2 as Uint32Array;\n const array = this.sh2Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh2.length).set(sh2);\n this.sh2Texture.value.addLayerUpdate(page);\n this.sh2Texture.value.needsUpdate = true;\n }\n\n if (!this.extSplats) {\n if (this.sh3Texture.value !== SplatPager.emptySh3Texture && extra.sh3) {\n // this.renderer.state.bindTexture(\n // gl.TEXTURE_2D_ARRAY,\n // this.getGlTexture(this.sh3Texture.value),\n // );\n // gl.texSubImage3D(\n // gl.TEXTURE_2D_ARRAY,\n // 0,\n // 0,\n // 0,\n // page,\n // 256,\n // 256,\n // 1,\n // gl.RGBA_INTEGER,\n // gl.UNSIGNED_INT,\n // extra.sh3 as Uint32Array,\n // );\n const sh3 = extra.sh3 as Uint32Array;\n const array = this.sh3Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh3.length).set(sh3);\n this.sh3Texture.value.addLayerUpdate(page);\n this.sh3Texture.value.needsUpdate = true;\n }\n } else {\n if (\n this.sh3Texture.value !== SplatPager.emptyExtSh3Texture &&\n extra.sh3a\n ) {\n const sh3a = extra.sh3a as Uint32Array;\n const array = this.sh3Texture.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh3a.length).set(sh3a);\n this.sh3Texture.value.addLayerUpdate(page);\n this.sh3Texture.value.needsUpdate = true;\n }\n if (\n this.sh3TextureB.value !== SplatPager.emptyExtSh3BTexture &&\n extra.sh3b\n ) {\n const sh3b = extra.sh3b as Uint32Array;\n const array = this.sh3TextureB.value.image.data;\n array.subarray(pageBase * 4, pageBase * 4 + sh3b.length).set(sh3b);\n this.sh3TextureB.value.addLayerUpdate(page);\n this.sh3TextureB.value.needsUpdate = true;\n }\n }\n\n // this.renderer.state.bindTexture(gl.TEXTURE_2D_ARRAY, null);\n }\n\n private getGlTexture(texture: THREE.Texture): WebGLTexture {\n return getGlTexture(this.renderer, texture);\n }\n\n private newUint32ArrayTexture(\n data: Uint32Array | null,\n width: number,\n height: number,\n depth: number,\n format: THREE.AnyPixelFormat,\n type: THREE.TextureDataType,\n internalFormat: THREE.PixelFormatGPU,\n ): THREE.DataArrayTexture {\n const texture = new THREE.DataArrayTexture(data, width, height, depth);\n texture.format = format;\n texture.type = type;\n texture.internalFormat = internalFormat;\n texture.needsUpdate = true;\n this.renderer.initTexture(texture);\n return texture;\n }\n\n driveFetchers() {\n const needed = [];\n const overflow = [];\n let numPages = 0;\n\n for (const { splats, chunk } of this.fetchPriority) {\n const pageLru = this.getSplatsChunk(splats, chunk);\n if (pageLru) {\n if (numPages >= this.maxPages) {\n overflow.push(pageLru);\n } else {\n needed.push(pageLru);\n }\n numPages += 1;\n continue;\n }\n\n if (\n this.fetched.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n ) ||\n this.fetchers.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n )\n ) {\n numPages += 1;\n continue;\n }\n\n if (numPages < this.maxPages && this.fetchers.length < this.numFetchers) {\n numPages += 1;\n const promise = splats\n .fetchDecodeChunk(chunk)\n .then(\n async (data) => {\n // Place data in ready queue and remove self from active fetchers list\n this.fetched.push({ splats, chunk, data });\n if (this.fetchPause > 0) {\n await new Promise((resolve) =>\n setTimeout(resolve, this.fetchPause),\n );\n }\n },\n async (error) => {\n console.warn(error);\n const backoff = 250 + 500 * Math.random();\n await new Promise((resolve) => setTimeout(resolve, backoff));\n },\n )\n .finally(() => {\n this.fetchers = this.fetchers.filter(\n ({ splats: s, chunk: c }) => splats !== s || chunk !== c,\n );\n this.processFetched();\n });\n // Add self to active fetchers list\n this.fetchers.push({ splats, chunk, promise });\n\n promise.then((data) => {\n if (this.autoDrive) {\n this.driveFetchers();\n }\n });\n }\n }\n\n // Update LRU ordering in reverse priority order\n const now = performance.now();\n\n for (const pageLru of overflow.reverse()) {\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n\n // Create set of pages not needed\n const extraPages = new Set(this.pageLru);\n for (const pageLru of needed.reverse()) {\n extraPages.delete(pageLru);\n\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n this.freeablePages = Array.from(extraPages).map(({ page }) => page);\n }\n\n private allocateFreeable(): number | undefined {\n const page = this.freeablePages.shift();\n if (page === undefined) {\n // No freeable pages available\n return undefined;\n }\n\n const splatsChunk = this.pageToSplatsChunk[page];\n if (!splatsChunk) {\n throw new Error(`splatsChunk not found for page: ${page}`);\n }\n\n const { splats, chunk } = splatsChunk;\n this.removeSplatsChunkPage(splats, chunk, page);\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats: this.pageSplats,\n });\n return page;\n }\n\n private processFetched() {\n const now = performance.now();\n while (true) {\n const fetched = this.fetched.shift();\n if (!fetched) {\n break;\n }\n const { splats, chunk, data } = fetched;\n\n let page = this.allocatePage();\n if (page === undefined) {\n page = this.allocateFreeable();\n if (page === undefined) {\n // No pages available, stop for now\n return;\n }\n }\n\n this.insertSplatsChunkPage(splats, chunk, page, now);\n const { numSplats, extra } = data;\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats,\n lodTree: extra.lodTree as Uint32Array,\n });\n\n if (!this.extSplats) {\n const packedArray = (data as PackedResult).packedArray;\n this.newUploads.push({ page, numSplats, packedArray, extra });\n } else {\n const extArrays = (data as ExtResult).extArrays;\n const packedArray = extArrays[0];\n const extArray = extArrays[1];\n this.newUploads.push({ page, numSplats, packedArray, extArray, extra });\n }\n }\n }\n\n processUploads() {\n while (true) {\n const upload = this.readyUploads.shift();\n if (!upload) {\n break;\n }\n const { page, numSplats, packedArray, extArray, extra } = upload;\n this.uploadPage(page, packedArray, extra, extArray);\n }\n }\n\n consumeLodTreeUpdates() {\n const updates = this.lodTreeUpdates;\n this.lodTreeUpdates = [];\n\n this.readyUploads.push(...this.newUploads);\n this.newUploads = [];\n return updates;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyIndicesTexture = (() => {\n const emptyArray = new Uint32Array(4096 * 4);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyPackedTexture = this.emptyUint32x4;\n static emptyExtTexture = this.emptyUint32x4;\n static emptySh1Texture = this.emptyUint32x2;\n static emptySh2Texture = this.emptyUint32x4;\n static emptySh3Texture = this.emptyUint32x4;\n static emptyExtSh1Texture = this.emptyUint32x4;\n static emptyExtSh2Texture = this.emptyUint32x4;\n static emptyExtSh3Texture = this.emptyUint32x4;\n static emptyExtSh3BTexture = this.emptyUint32x4;\n}\n\nfunction getGlTexture(\n renderer: THREE.WebGLRenderer,\n texture: THREE.Texture,\n): WebGLTexture {\n if (!renderer.properties.has(texture)) {\n throw new Error(\"texture not found\");\n }\n const props = renderer.properties.get(texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"texture not found\");\n }\n return glTexture;\n}\n\nconst wasmInitialized = init_wasm();\n\nasync function fetchRange({\n url,\n requestHeader,\n withCredentials,\n offset,\n bytes,\n}: {\n url: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n offset?: number;\n bytes?: number;\n}): Promise {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n if (offset !== undefined && bytes !== undefined) {\n request.headers.set(\"Range\", `bytes=${offset}-${offset + bytes - 1}`);\n }\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n return new Uint8Array(await response.arrayBuffer());\n}\n","import * as THREE from \"three\";\n\nimport init_wasm, {\n get_raycast_buffer,\n get_raycast_buffer2,\n raycast_ext_buffers,\n raycast_packed_buffer,\n} from \"spark-rs\";\nimport { ExtSplats } from \"./ExtSplats\";\nimport { OldSparkRenderer } from \"./OldSparkRenderer\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { type RgbaArray, TRgbaArray } from \"./RgbaArray\";\nimport { SparkRenderer } from \"./SparkRenderer\";\nimport { SplatEdit, SplatEditSdf, SplatEdits } from \"./SplatEdit\";\nimport {\n type CovSplatModifier,\n CovSplatTransformer,\n type FrameUpdateContext,\n type GsplatModifier,\n SplatGenerator,\n SplatTransformer,\n} from \"./SplatGenerator\";\nimport { PagedSplats, SplatPager } from \"./SplatPager\";\nimport type { SplatSkinning } from \"./SplatSkinning\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n CovSplat,\n Dyno,\n DynoBool,\n DynoFloat,\n DynoInt,\n DynoUsampler2D,\n type DynoVal,\n DynoVec4,\n Gsplat,\n combineCovSplat,\n combineGsplat,\n defineGsplat,\n dyno,\n dynoBlock,\n gsplatToCovSplat,\n mul,\n splitCovSplat,\n splitGsplat,\n unindentLines,\n} from \"./dyno\";\n\nexport type SplatMeshOptions = {\n // URL to fetch a Gaussian splat file from(supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Use an existing PackedSplats object as the source instead of loading from\n // a file. Can be used to share a collection of Gsplats among multiple SplatMeshes\n // (default: undefined creates a new empty PackedSplats or decoded from a\n // data source above)\n packedSplats?: PackedSplats;\n // Use an existing SplatSource object as the source instead of loading from file.\n splats?: SplatSource;\n // Reserve space for at least this many splats when constructing the mesh\n // initially. (default: determined by file)\n maxSplats?: number;\n // Callback function to programmatically create splats at initialization\n // in provided PackedSplats. (default: undefined)\n constructSplats?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Callback function that is called when mesh initialization is complete.\n // (default: undefined)\n onLoad?: (mesh: SplatMesh) => Promise | void;\n // Controls whether SplatEdits have any effect on this mesh. (default: true)\n editable?: boolean;\n // Controls whether SplatMesh participates in Three.js raycasting (default: true)\n raycastable?: boolean;\n // Minimum opacity for raycasting splats. (default: 0.2)\n minRaycastOpacity?: number;\n // Callback function that is called every frame to update the mesh.\n // Call mesh.updateVersion() if splats need to be regenerated due to some change.\n // Calling updateVersion() is not necessary for object transformations, recoloring,\n // or opacity adjustments as these are auto-detected. (default: undefined)\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n // Gsplat modifier to apply in object-space before any transformations.\n // A GsplatModifier is a dyno shader-graph block that transforms an input\n // gsplat: DynoVal to an output gsplat: DynoVal with gsplat.center\n // coordinate in object-space. (default: undefined)\n objectModifier?: GsplatModifier;\n objectModifiers?: GsplatModifier[];\n // Gsplat modifier to apply in world-space after transformations.\n // (default: undefined)\n worldModifier?: GsplatModifier;\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Set to true to load/use \"extended splat\" encoding with float32 x/y/z\n extSplats?: boolean | ExtSplats;\n // Set to true to output covariance splats for anisotropic scaling\n covSplats?: boolean;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Only create LoD if the input splat acount is above this (default: undefined=0)\n lodAbove?: number;\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Force enable/disable LoD (default: enabled iff packedSplats.lodSplats is not null)\n enableLod?: boolean;\n // LoD scale to apply @default 1.0\n lodScale?: number;\n // Foveation scale to apply behind viewer\n // (default: 1.0)\n behindFoveate?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction\n // with perfection foveation=1.0\n // (default: 0.0)\n coneFov0?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction. 0.0=disable\n // (default: 0.0)\n coneFov?: number;\n // Foveation scale to apply at the edge of the cone\n // (default: 1.0)\n coneFoveate?: number;\n paged?: boolean | PagedSplats | SplatPager;\n};\n\nexport type SplatMeshContext = {\n transform: SplatTransformer;\n viewToWorld: SplatTransformer;\n worldToView: SplatTransformer;\n viewToObject: SplatTransformer;\n covTransform: CovSplatTransformer;\n covViewToWorld: CovSplatTransformer;\n covWorldToView: CovSplatTransformer;\n covViewToObject: CovSplatTransformer;\n recolor: DynoVec4;\n time: DynoFloat;\n deltaTime: DynoFloat;\n numSplats: DynoInt;\n splats: SplatSource;\n enableLod: DynoBool;\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>;\n};\n\nexport interface SplatSource {\n prepareFetchSplat(): void;\n dispose(): void;\n\n getNumSplats(): number;\n hasRgbDir(): boolean;\n getNumSh(): number;\n setMaxSh(maxSh: number): void;\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n >;\n\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ): void;\n}\n\nexport class EmptySplatSource implements SplatSource {\n fetchDyno = new Dyno({\n inTypes: {},\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplat],\n statements: ({ outputs }) =>\n unindentLines(`\n ${outputs.gsplat}.flags = 0u;\n return;\n `),\n }).outputs.gsplat;\n\n prepareFetchSplat() {}\n dispose() {}\n\n getNumSplats() {\n return 0;\n }\n hasRgbDir() {\n return false;\n }\n getNumSh() {\n return 0;\n }\n setMaxSh(maxSh: number) {}\n\n fetchSplat({ index }: { index: DynoVal<\"int\"> }): DynoVal {\n return this.fetchDyno;\n }\n\n forEachSplat() {}\n}\n\nexport class SplatMesh extends SplatGenerator {\n // A Promise you can await to ensure fetching, parsing,\n // and initialization has completed\n initialized: Promise;\n // A boolean indicating whether initialization is complete\n isInitialized = false;\n\n // If you modify packedSplats you should set\n // splatMesh.packedSplats.needsUpdate = true to signal to Three.js that it\n // should re-upload the data to the underlying texture. Use this sparingly with\n // objects with smaller Gsplat counts as it requires a CPU-GPU data transfer for\n // each frame. Thousands to tens of thousands of Gsplats is fine. (See hands.ts\n // for an example of rendering \"Gsplat hands\" in WebXR using this technique.)\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n covSplats: boolean;\n splats?: SplatSource;\n lastSplats?: SplatSource;\n paged?: PagedSplats;\n\n // A THREE.Color that can be used to tint all splats in the mesh.\n // (default: new THREE.Color(1, 1, 1))\n recolor: THREE.Color = new THREE.Color(1, 1, 1);\n // Global opacity multiplier for all splats in the mesh. (default: 1)\n opacity = 1;\n\n // A SplatMeshContext consisting of useful scene and object dyno uniforms that can\n // be used to in the Gsplat processing pipeline, for example via objectModifier and\n // worldModifier. (created on construction)\n context: SplatMeshContext;\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n generatorDirty = true;\n\n objectModifiers?: GsplatModifier[];\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Set to true to have the viewToObject property in context be updated each frame.\n // If the mesh has extra.sh1 (first order spherical harmonics directional lighting)\n // this property will always be updated. (default: false)\n enableViewToObject = false;\n // Set to true to have context.viewToWorld updated each frame. (default: false)\n enableViewToWorld = false;\n // Set to true to have context.worldToView updated each frame. (default: false)\n enableWorldToView = false;\n\n // Optional SplatSkinning instance for animating splats with dual-quaternion\n // skeletal animation. (default: null)\n skinning: SplatSkinning | null = null;\n\n // Optional list of SplatEdits to apply to the mesh. If null, any SplatEdit\n // children in the scene graph will be added automatically. (default: null)\n edits: SplatEdit[] | null = null;\n editable: boolean;\n raycastable: boolean;\n minRaycastOpacity: number;\n raycastIndices?: { numSplats: number; indices: Uint32Array };\n // Compiled SplatEdits for applying SDF edits to splat RGBA + centers\n rgbaDisplaceEdits: SplatEdits | null = null;\n // Optional RgbaArray to overwrite splat RGBA values with custom values.\n // Useful for \"baking\" RGB and opacity edits into the SplatMesh. (default: null)\n splatRgba: RgbaArray | null = null;\n\n // Maximum Spherical Harmonics level to use. Call updateGenerator()\n // after changing. (default: 3)\n maxSh = 3;\n\n enableLod?: boolean;\n lodScale: number;\n behindFoveate?: number;\n coneFov0?: number;\n coneFov?: number;\n coneFoveate?: number;\n\n showLodPage?: number;\n showLodPageDyno = new DynoInt({ value: 0 });\n\n constructor(options: SplatMeshOptions = {}) {\n super({\n update: (context) => this.update(context),\n });\n\n if (options.splats) {\n this.splats = options.splats;\n this.numSplats = options.splats.getNumSplats();\n } else if (options.paged) {\n if (options.extSplats) {\n console.warn(\n \"To set extSplats with the paged option, set SparkRenderer.pagedExtSplats\",\n );\n }\n const rootUrl = options.url ?? \"\";\n if (options.paged === true) {\n this.paged = new PagedSplats({ rootUrl });\n } else if (options.paged instanceof PagedSplats) {\n this.paged = options.paged;\n } else if (options.paged instanceof SplatPager) {\n this.paged = new PagedSplats({ rootUrl, pager: options.paged });\n } else {\n throw new Error(\"Invalid paged option\");\n }\n this.splats = this.paged;\n } else if (options.extSplats) {\n this.extSplats =\n options.extSplats instanceof ExtSplats\n ? options.extSplats\n : new ExtSplats();\n options.extSplats = this.extSplats;\n this.numSplats = this.extSplats.numSplats;\n this.splats = this.extSplats;\n } else if (options.packedSplats) {\n this.packedSplats = options.packedSplats;\n this.packedSplats.splatEncoding = options.splatEncoding ?? {\n ...DEFAULT_SPLAT_ENCODING,\n };\n this.splats = this.packedSplats;\n } else {\n this.packedSplats = new PackedSplats();\n }\n\n this.editable = options.editable ?? true;\n this.raycastable = options.raycastable ?? true;\n this.minRaycastOpacity = options.minRaycastOpacity ?? 0.2;\n this.onFrame = options.onFrame;\n\n this.context = {\n transform: new SplatTransformer(),\n viewToWorld: new SplatTransformer(),\n worldToView: new SplatTransformer(),\n viewToObject: new SplatTransformer(),\n covTransform: new CovSplatTransformer(),\n covViewToWorld: new CovSplatTransformer(),\n covWorldToView: new CovSplatTransformer(),\n covViewToObject: new CovSplatTransformer(),\n recolor: new DynoVec4({\n value: new THREE.Vector4().setScalar(Number.NEGATIVE_INFINITY),\n }),\n time: new DynoFloat({ value: 0 }),\n deltaTime: new DynoFloat({ value: 0 }),\n numSplats: new DynoInt({ value: 0 }),\n splats: new EmptySplatSource(),\n enableLod: new DynoBool({ value: false }),\n lodIndices: new DynoUsampler2D({\n value: emptyLodIndices,\n key: \"lodIndices\",\n }),\n };\n\n this.covSplats = options.covSplats ?? false;\n if (this.covSplats && !this.extSplats) {\n throw new Error(\"CovSplats requires ExtSplats\");\n }\n\n this.objectModifiers = options.objectModifier\n ? [options.objectModifier]\n : undefined;\n this.worldModifiers = options.worldModifier\n ? [options.worldModifier]\n : undefined;\n\n if (options.objectModifiers) {\n this.objectModifiers = options.objectModifiers;\n }\n if (options.worldModifiers) {\n this.worldModifiers = options.worldModifiers;\n }\n\n this.enableLod = options.enableLod;\n this.lodScale = options.lodScale ?? 1.0;\n this.behindFoveate = options.behindFoveate;\n this.coneFov0 = options.coneFov0;\n this.coneFov = options.coneFov;\n this.coneFoveate = options.coneFoveate;\n\n this.updateGenerator();\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.constructSplats ||\n (options.packedSplats && !options.packedSplats.isInitialized) ||\n (this.extSplats && !this.extSplats.isInitialized)\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(async () => {\n this.updateGenerator();\n\n this.isInitialized = true;\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n return this;\n });\n } else {\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n // If onLoad returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n this.initialized = maybePromise.then(() => this);\n }\n }\n }\n\n // this.add(createRendererDetectionMesh());\n }\n\n async asyncInitialize(options: SplatMeshOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n } = options;\n if (this.packedSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const packedSplatsOptions = {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct: constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n };\n this.packedSplats.reinitialize(packedSplatsOptions);\n }\n await this.packedSplats.initialized;\n this.splats = this.packedSplats;\n } else if (this.extSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const construct = constructSplats as\n | ((splats: ExtSplats) => Promise)\n | undefined;\n this.extSplats.reinitialize({\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n });\n await this.extSplats.initialized;\n this.splats = this.extSplats;\n }\n }\n\n if (this.splats) {\n this.numSplats = this.splats.getNumSplats();\n this.updateGenerator();\n }\n }\n\n static staticInitialized = SplatMesh.staticInitialize();\n static isStaticInitialized = false;\n\n static dynoTime = new DynoFloat({ value: 0 });\n\n static async staticInitialize() {\n await init_wasm();\n SplatMesh.isStaticInitialized = true;\n }\n\n // Creates a new Gsplat with the provided parameters (all values in \"float\" space,\n // i.e. 0-1 for opacity and color) and adds it to the end of the packedSplats,\n // increasing numSplats by 1. If necessary, reallocates the buffer with an exponential\n // doubling strategy to fit the new data, so it's fairly efficient to just\n // pushSplat(...) each Gsplat you want to create in a loop.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n if (this.packedSplats) {\n this.packedSplats.pushSplat(center, scales, quaternion, opacity, color);\n } else if (this.extSplats) {\n this.extSplats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n\n // This method iterates over all Gsplats in this instance's packedSplats,\n // invoking the provided callback with index: number in 0..=(this.numSplats-1) and\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number (0..1), and color: THREE.Color (rgb values in 0..1).\n // Note that the objects passed in as center etc. are the same for every callback\n // invocation: these objects are reused for efficiency. Changing these values has\n // no effect as they are decoded/unpacked copies of the underlying data. To update\n // the packedSplats, call .packedSplats.setSplat(index, center, scales,\n // quaternion, opacity, color).\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n this.splats?.forEachSplat(callback);\n }\n\n // Call this when you are finished with the SplatMesh and want to free\n // any buffers it holds (via packedSplats).\n dispose() {\n if (\n this.splats &&\n this.splats !== this.packedSplats &&\n this.splats !== this.extSplats\n ) {\n this.splats.dispose();\n this.splats = undefined;\n }\n if (this.packedSplats) {\n this.packedSplats.dispose();\n this.packedSplats = undefined;\n }\n if (this.extSplats) {\n this.extSplats.dispose();\n this.extSplats = undefined;\n }\n }\n\n // Returns axis-aligned bounding box of the SplatMesh. If centers_only is true,\n // only the centers of the splats are used to compute the bounding box.\n // IMPORTANT: This should only be called after the SplatMesh is initialized.\n getBoundingBox(centers_only = true) {\n if (!this.initialized) {\n throw new Error(\n \"Cannot get bounding box before SplatMesh is initialized\",\n );\n }\n const minVec = new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n );\n const maxVec = new THREE.Vector3(\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n );\n const corners = new THREE.Vector3();\n const signs = [-1, 1];\n\n function callback(\n _index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n _opacity: number,\n _color: THREE.Color,\n ) {\n if (centers_only) {\n minVec.min(center);\n maxVec.max(center);\n } else {\n // Get the 8 corners of the AABB in local space\n for (const x of signs) {\n for (const y of signs) {\n for (const z of signs) {\n corners.set(x * scales.x, y * scales.y, z * scales.z);\n // Transform corner by rotation and position\n corners.applyQuaternion(quaternion);\n corners.add(center);\n minVec.min(corners);\n maxVec.max(corners);\n }\n }\n }\n }\n }\n\n this.splats?.forEachSplat(callback);\n const box = new THREE.Box3(minVec, maxVec);\n return box;\n }\n\n set objectModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.objectModifiers = [modifier];\n } else {\n this.objectModifiers = undefined;\n }\n }\n\n set worldModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.worldModifiers = [modifier];\n } else {\n this.worldModifiers = undefined;\n }\n }\n\n private constructGenerator(context: SplatMeshContext) {\n if (this.covSplats) {\n return this.constructCovGenerator(context);\n }\n\n const { transform, viewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.setMaxSh(this.maxSh);\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: viewToObject.translate,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n gsplat = this.skinning.modify(gsplat);\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // Transform from object to world-space\n gsplat = transform.applyGsplat(gsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitGsplat(gsplat).outputs.rgba);\n gsplat = combineGsplat({ gsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n gsplat = this.rgbaDisplaceEdits.modify(gsplat);\n }\n\n if (this.worldModifiers) {\n // Inject world-space Gsplat modifier dyno\n for (const modifier of this.worldModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { gsplat };\n },\n );\n this.generator = generator;\n this.covGenerator = undefined;\n }\n\n constructCovGenerator(context: SplatMeshContext) {\n // console.log(\"CovSplatMesh.constructCovGenerator\");\n const { covTransform, covViewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { covsplat: CovSplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: covViewToObject.offset,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n let covsplat = gsplatToCovSplat(gsplat);\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n covsplat = this.skinning.modifyCov(covsplat);\n }\n\n if (this.covObjectModifiers) {\n // Inject object-space CovSplat modifier dyno\n for (const modifier of this.covObjectModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // Transform from object to world-space\n covsplat = covTransform.applyCovSplat(covsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitCovSplat(covsplat).outputs.rgba);\n covsplat = combineCovSplat({ covsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n covsplat = this.rgbaDisplaceEdits.modifyCov(covsplat);\n }\n\n if (this.covWorldModifiers) {\n // Inject world-space CovSplat modifier dyno\n for (const modifier of this.covWorldModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { covsplat };\n },\n );\n this.generator = undefined;\n this.covGenerator = generator;\n }\n\n // Call this whenever something changes in the Gsplat processing pipeline,\n // for example changing maxSh or updating objectModifier or worldModifier.\n // Compiled generators are cached for efficiency and re-use when the same\n // pipeline structure emerges after successive changes.\n updateGenerator() {\n this.generatorDirty = true;\n }\n\n // This is called automatically by SparkRenderer and you should not have to\n // call it. It updates parameters for the generated pipeline and calls\n // updateGenerator() if the pipeline needs to change.\n update({\n renderer,\n time,\n deltaTime,\n viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices,\n }: FrameUpdateContext) {\n this.context.time.value = time;\n this.context.deltaTime.value = deltaTime;\n SplatMesh.dynoTime.value = time;\n this.showLodPageDyno.value = this.showLodPage ?? -1;\n\n const splats = this.splats ?? this.packedSplats ?? this.extSplats;\n if (splats) {\n this.context.splats = splats;\n }\n this.numSplats = this.context.splats.getNumSplats();\n\n let updated = false;\n\n const lodSplats = this.packedSplats?.lodSplats ?? this.extSplats?.lodSplats;\n this.context.enableLod.value = lodSplats != null && lodIndices != null;\n if (this.enableLod === false) {\n this.context.enableLod.value = false;\n }\n this.context.lodIndices.value = lodIndices?.texture ?? emptyLodIndices;\n\n if (this.context.enableLod.value && lodSplats) {\n this.context.splats = lodSplats;\n this.numSplats = lodIndices?.numSplats ?? 0;\n }\n\n this.context.numSplats.value = this.numSplats;\n\n if (this.context.splats !== this.lastSplats) {\n this.lastSplats = this.context.splats;\n this.generatorDirty = true;\n }\n\n if (!this.covSplats) {\n if (this.context.transform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.viewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.worldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const objectToWorld = new THREE.Matrix4().compose(\n this.context.transform.translate.value,\n this.context.transform.rotate.value,\n new THREE.Vector3().setScalar(this.context.transform.scale.value),\n );\n const worldToObject = objectToWorld.invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.viewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n } else {\n if (this.context.covTransform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.covViewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.covWorldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const worldToObject = this.matrixWorld.clone().invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.covViewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n }\n\n const newRecolor = new THREE.Vector4(\n this.recolor.r,\n this.recolor.g,\n this.recolor.b,\n this.opacity,\n );\n if (!newRecolor.equals(this.context.recolor.value)) {\n this.context.recolor.value.copy(newRecolor);\n updated = true;\n }\n\n const edits = this.editable ? (this.edits ?? []).concat(globalEdits) : [];\n if (this.editable && !this.edits) {\n // If we haven't set any explicit edits, add any child SplatEdits\n this.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n edits.push(node);\n }\n });\n }\n\n edits.sort((a, b) => a.ordering - b.ordering);\n const editsSdfs = edits.map((edit) => {\n if (edit.sdfs != null) {\n return { edit, sdfs: edit.sdfs };\n }\n const sdfs: SplatEditSdf[] = [];\n edit.traverseVisible((node) => {\n if (node instanceof SplatEditSdf) {\n sdfs.push(node);\n }\n });\n return { edit, sdfs };\n });\n\n if (editsSdfs.length > 0 && !this.rgbaDisplaceEdits) {\n const edits = editsSdfs.length;\n const sdfs = editsSdfs.reduce(\n (total, edit) => total + edit.sdfs.length,\n 0,\n );\n this.rgbaDisplaceEdits = new SplatEdits({\n maxEdits: edits,\n maxSdfs: sdfs,\n });\n this.generatorDirty = true;\n }\n if (this.rgbaDisplaceEdits) {\n const editResult = this.rgbaDisplaceEdits.update(editsSdfs);\n updated ||= editResult.updated;\n if (editResult.dynoUpdated) {\n this.generatorDirty = true;\n }\n }\n\n if (this.generatorDirty) {\n this.constructGenerator(this.context);\n this.generatorDirty = false;\n updated = true;\n }\n\n if (updated) {\n this.updateVersion();\n }\n\n this.onFrame?.({ mesh: this, time, deltaTime });\n }\n\n // This method conforms to the standard THREE.Raycaster API, performing object-ray\n // intersections using this method to populate the provided intersects[] array\n // with each intersection point.\n raycast(\n raycaster: THREE.Raycaster,\n intersects: {\n distance: number;\n point: THREE.Vector3;\n object: THREE.Object3D;\n }[],\n ) {\n if (\n !SplatMesh.isStaticInitialized ||\n !this.raycastable ||\n (!this.packedSplats && !this.extSplats && !this.paged)\n ) {\n return;\n }\n const paged = this.paged != null;\n const ext = paged\n ? (this.paged?.pager?.extSplats ?? false)\n : this.extSplats != null;\n\n const { near, far, ray } = raycaster;\n const worldToMesh = this.matrixWorld.clone().invert();\n const worldToMeshRot = new THREE.Matrix3().setFromMatrix4(worldToMesh);\n const origin = ray.origin.clone().applyMatrix4(worldToMesh);\n const direction = ray.direction.clone().applyMatrix3(worldToMeshRot);\n\n const buffer = get_raycast_buffer();\n const bufferSize = buffer.length / 4;\n let intersections = 0;\n\n const numSplats =\n this.raycastIndices?.numSplats ??\n (paged ? this.paged?.numSplats : this.context.numSplats.value) ??\n 0;\n const indices =\n this.raycastIndices?.indices ??\n (paged\n ? (this.paged?.dynoIndices.value.image.data as Uint32Array)\n : this.context.enableLod.value\n ? (this.context.lodIndices.value.image.data as Uint32Array)\n : null) ??\n null;\n\n if (!ext) {\n const packed = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.packedSplats?.lodSplats?.packedArray\n : this.packedSplats?.packedArray;\n if (!packed) {\n return;\n }\n const splatEncoding = paged\n ? this.paged?.splatEncoding\n : this.packedSplats?.splatEncoding;\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(packed.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = packed[index4];\n buffer[i4 + 1] = packed[index4 + 1];\n buffer[i4 + 2] = packed[index4 + 2];\n buffer[i4 + 3] = packed[index4 + 3];\n }\n }\n\n const newIntersections = raycast_packed_buffer(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n splatEncoding?.lodOpacity ?? false,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n } else {\n const buffer2 = get_raycast_buffer2();\n const ext1 = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[0]\n : this.extSplats?.extArrays[0];\n const ext2 = paged\n ? (this.paged?.pager?.extTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[1]\n : this.extSplats?.extArrays[1];\n if (!ext1 || !ext2) {\n return;\n }\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(ext1.subarray(base * 4, (base + count) * 4));\n buffer2.set(ext2.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = ext1[index4];\n buffer[i4 + 1] = ext1[index4 + 1];\n buffer[i4 + 2] = ext1[index4 + 2];\n buffer[i4 + 3] = ext1[index4 + 3];\n buffer2[i4] = ext2[index4];\n buffer2[i4 + 1] = ext2[index4 + 1];\n buffer2[i4 + 2] = ext2[index4 + 2];\n buffer2[i4 + 3] = ext2[index4 + 3];\n }\n }\n\n const newIntersections = raycast_ext_buffers(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n }\n\n for (const distance of SplatMesh.raycastBuffer.subarray(0, intersections)) {\n const point = ray.direction\n .clone()\n .multiplyScalar(distance)\n .add(ray.origin);\n intersects.push({\n distance,\n point,\n object: this,\n });\n }\n }\n\n static raycastBuffer = new Float32Array(1024);\n\n private appendRaycastBuffer(count: number, additional: Float32Array) {\n const total = count + additional.length;\n let capacity = SplatMesh.raycastBuffer.length;\n\n if (total > capacity) {\n while (capacity < total) {\n capacity *= 2;\n }\n const newBuffer = new Float32Array(capacity);\n newBuffer.set(SplatMesh.raycastBuffer.subarray(0, count));\n SplatMesh.raycastBuffer = newBuffer;\n }\n\n SplatMesh.raycastBuffer.set(additional, count);\n return count + additional.length;\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n if (this.packedSplats) {\n await this.packedSplats.createLodSplats({ quality, rgbaArray });\n } else if (this.extSplats) {\n await this.extSplats.createLodSplats({ quality, rgbaArray });\n }\n }\n}\n\nexport function maybeLookupIndex(\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>,\n index: DynoVal<\"int\">,\n numSplats: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n showLodPage: DynoVal<\"int\">,\n) {\n return dyno({\n inTypes: {\n lodIndices: \"usampler2D\",\n index: \"int\",\n numSplats: \"int\",\n enableLod: \"bool\",\n showLodPage: \"int\",\n },\n outTypes: {\n index: \"int\",\n },\n inputs: {\n lodIndices,\n index,\n numSplats,\n enableLod,\n showLodPage,\n },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n int index = ${inputs.index};\n if (${inputs.showLodPage} < 0) {\n if (index >= ${inputs.numSplats}) {\n return;\n }\n if (${inputs.enableLod}) {\n ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14);\n uint splatIndex = texelFetch(${inputs.lodIndices}, lodIndexCoord, 0)[index & 3];\n ${outputs.index} = int(splatIndex);\n } else {\n ${outputs.index} = index;\n }\n } else {\n int start = ${inputs.showLodPage} << 16;\n if (index >= 65536) {\n return;\n }\n ${outputs.index} = start + index;\n }\n `),\n }).outputs.index;\n}\n\nexport function maybeInjectSplatRgba(\n gsplat: DynoVal,\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n): DynoVal {\n return dyno({\n inTypes: {\n gsplat: Gsplat,\n rgba: TRgbaArray,\n index: \"int\",\n enableLod: \"bool\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, rgba, index, enableLod },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n ${outputs.gsplat} = ${inputs.gsplat};\n if (!${inputs.enableLod} && (${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.gsplat}.rgba = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n }\n `),\n }).outputs.gsplat;\n}\n\nexport const emptyLodIndices = (() => {\n const texture = new THREE.DataTexture(\n new Uint32Array(16384),\n 4096,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n})();\n\nconst EMPTY_GEOMETRY = new THREE.BufferGeometry();\nconst EMPTY_MATERIAL = new THREE.ShaderMaterial();\n\n// Creates an empty mesh to hook into Three.js rendering.\n// This is used to detect if a SparkRenderer is present in the scene.\n// If not, one will be injected automatically.\nfunction createRendererDetectionMesh(): THREE.Mesh {\n const mesh = new THREE.Mesh(EMPTY_GEOMETRY, EMPTY_MATERIAL);\n mesh.frustumCulled = false;\n mesh.onBeforeRender = function (renderer, scene) {\n if (!scene.isScene) {\n // The SplatMesh is part of render call that doesn't have a Scene at its root\n // Don't auto-inject a renderer.\n this.removeFromParent();\n return;\n }\n\n // Check if the scene has a SparkRenderer instance\n let hasSparkRenderer = false;\n scene.traverse((c) => {\n if (c instanceof SparkRenderer || c instanceof OldSparkRenderer) {\n hasSparkRenderer = true;\n }\n });\n\n if (!hasSparkRenderer) {\n // No spark renderer present in the scene, inject one.\n scene.add(new SparkRenderer({ renderer }));\n }\n\n // Remove mesh to stop checking\n this.removeFromParent();\n };\n return mesh;\n}\n","// PLY file format reader\n\nimport { USE_COMPILED_PARSER_FUNCTION } from \"./defines\";\n\nconst PLY_PROPERTY_TYPES = [\n \"char\",\n \"uchar\",\n \"short\",\n \"ushort\",\n \"int\",\n \"uint\",\n \"float\",\n \"double\",\n] as const;\nexport type PlyPropertyType = (typeof PLY_PROPERTY_TYPES)[number];\n\nexport type PlyElement = {\n name: string;\n count: number;\n properties: Record;\n};\n\nexport type PlyProperty = {\n isList: boolean;\n type: PlyPropertyType;\n countType?: PlyPropertyType;\n};\n\n// Callback for parseSplats base Gsplat data\nexport type SplatCallback = (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) => void;\n\n// Callback for parseSplats SH coefficients\nexport type SplatShCallback = (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n) => void;\n\n// A PlyReader is used to parse PLY files for Gsplat data.\n// It takes a Uint8Array/ArrayBuffer as input fileBytes, parses the text header,\n// and provides a method parseData to iterate over the entire binary data\n// efficiently, or parseSplats to iterate over Gsplat data.\n\nexport class PlyReader {\n fileBytes: Uint8Array;\n header = \"\";\n littleEndian = true;\n elements: Record = {};\n comments: string[] = [];\n data: DataView | null = null;\n static defaultPointScale = 0.001;\n\n numSplats = 0;\n\n // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n }\n\n // Identify and parse the PLY text header (assumed to be <64KB in size).\n // this.elements will contain all the elements in the file, typically\n // \"vertex\" contains the Gsplat data.\n async parseHeader() {\n const bufferStream = new ReadableStream({\n start: (\n controller: ReadableStreamController>,\n ) => {\n // Assume the header is less than 64KB\n controller.enqueue(this.fileBytes.slice(0, 65536));\n controller.close();\n },\n });\n const decoder = bufferStream\n .pipeThrough(new TextDecoderStream())\n .getReader();\n\n // Find the end of the text section of the PLY file\n this.header = \"\";\n const headerTerminator = \"end_header\\n\";\n while (true) {\n const { value, done } = await decoder.read();\n if (done) {\n throw new Error(\"Failed to read header\");\n }\n\n this.header += value as string;\n const endHeader = this.header.indexOf(headerTerminator);\n if (endHeader >= 0) {\n this.header = this.header.slice(0, endHeader + headerTerminator.length);\n break;\n }\n }\n // Partition the file into header and binary data\n const headerLen = new TextEncoder().encode(this.header).length;\n this.data = new DataView(this.fileBytes.buffer, headerLen);\n\n this.elements = {};\n let curElement: PlyElement | null = null;\n this.comments = [];\n\n this.header\n .trim()\n .split(\"\\n\")\n .forEach((line: string, lineIndex: number) => {\n const trimmedLine = line.trim();\n if (lineIndex === 0) {\n if (trimmedLine !== \"ply\") {\n throw new Error(\"Invalid PLY header\");\n }\n return;\n }\n if (trimmedLine.length === 0) {\n return; // Skip empty lines\n }\n\n const fields = trimmedLine.split(\" \");\n switch (fields[0]) {\n case \"format\":\n if (fields[1] === \"binary_little_endian\") {\n this.littleEndian = true;\n } else if (fields[1] === \"binary_big_endian\") {\n this.littleEndian = false;\n } else {\n // ascii formats not supported\n throw new Error(`Unsupported PLY format: ${fields[1]}`);\n }\n if (fields[2] !== \"1.0\") {\n throw new Error(`Unsupported PLY version: ${fields[2]}`);\n }\n break;\n case \"end_header\":\n break;\n case \"comment\":\n this.comments.push(trimmedLine.slice(\"comment \".length));\n break;\n case \"element\": {\n const name = fields[1];\n curElement = {\n name,\n count: Number.parseInt(fields[2]),\n properties: {},\n };\n this.elements[name] = curElement;\n break;\n }\n case \"property\":\n if (curElement == null) {\n throw new Error(\"Property must be inside an element\");\n }\n if (fields[1] === \"list\") {\n curElement.properties[fields[4]] = {\n isList: true,\n type: fields[3] as PlyPropertyType,\n countType: fields[2] as PlyPropertyType,\n };\n } else {\n curElement.properties[fields[2]] = {\n isList: false,\n type: fields[1] as PlyPropertyType,\n };\n }\n break;\n default:\n // console.warn(`Skipping unsupported PLY keyword: ${fields[0]}`);\n }\n });\n\n if (this.elements.vertex) {\n this.numSplats = this.elements.vertex.count;\n }\n }\n\n parseData(\n elementCallback: (\n element: PlyElement,\n ) =>\n | null\n | ((index: number, item: Record) => void),\n ) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No data to parse\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const item = createEmptyItem(properties);\n // Construct a parse function\n const parseFn = createParseFn(properties, this.littleEndian);\n\n // Parse all the items in the element\n const callback = elementCallback(element) ?? (() => {});\n for (let index = 0; index < count; index++) {\n offset = parseFn(data, offset, item);\n callback(index, item);\n }\n }\n }\n\n // Parse all the Gsplat data in the PLY file in go, invoking the given\n // callbacks for each Gsplat.\n parseSplats(splatCallback: SplatCallback, shCallback?: SplatShCallback) {\n if (this.elements.vertex == null) {\n throw new Error(\"No vertex element found\");\n }\n\n let isSuperSplat = false;\n const ssChunks: SSChunk[] = [];\n\n let numSh = 0;\n let sh1Props: number[] = [];\n let sh2Props: number[] = [];\n let sh3Props: number[] = [];\n let sh1: Float32Array | undefined = undefined;\n let sh2: Float32Array | undefined = undefined;\n let sh3: Float32Array | undefined = undefined;\n\n function prepareSh() {\n // Prepare SH coefficient names and arrays for numSh total SH levels\n const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh];\n sh1Props = new Array(3)\n .fill(null)\n .flatMap((_, k) => [0, 1, 2].map((_, d) => k + (d * num_f_rest) / 3));\n sh2Props = new Array(5)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 3 + k + (d * num_f_rest) / 3),\n );\n sh3Props = new Array(7)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 8 + k + (d * num_f_rest) / 3),\n );\n sh1 = numSh >= 1 ? new Float32Array(3 * 3) : undefined;\n sh2 = numSh >= 2 ? new Float32Array(5 * 3) : undefined;\n sh3 = numSh >= 3 ? new Float32Array(7 * 3) : undefined;\n }\n\n function ssShCallback(\n index: number,\n item: Record,\n ) {\n // Decode SH for SuperSplat compressed data\n if (!sh1) {\n throw new Error(\"Missing sh1\");\n }\n const sh = item.f_rest as number[];\n\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = (sh[sh1Props[i]] * 8) / 255 - 4;\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = (sh[sh2Props[i]] * 8) / 255 - 4;\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = (sh[sh3Props[i]] * 8) / 255 - 4;\n }\n }\n shCallback?.(index, sh1, sh2, sh3);\n }\n\n function initSuperSplat(element: PlyElement) {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n } = element.properties;\n if (\n !min_x ||\n !min_y ||\n !min_z ||\n !max_x ||\n !max_y ||\n !max_z ||\n !min_scale_x ||\n !min_scale_y ||\n !min_scale_z ||\n !max_scale_x ||\n !max_scale_y ||\n !max_scale_z\n ) {\n throw new Error(\"Missing PLY chunk properties\");\n }\n\n // SuperSplat chunks are used to quantize splat data, so we need to store them\n isSuperSplat = true;\n return (index: number, item: Record) => {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = item as Record;\n ssChunks.push({\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n });\n };\n }\n\n function decodeSuperSplat(element: PlyElement) {\n // Decode SuperSplat compressed data in vertex and sh elements\n if (shCallback && element.name === \"sh\") {\n numSh = getNumSh(element.properties);\n prepareSh();\n return ssShCallback;\n }\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n element.properties;\n if (\n !packed_position ||\n !packed_rotation ||\n !packed_scale ||\n !packed_color\n ) {\n throw new Error(\n \"Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color\",\n );\n }\n\n const SQRT2 = Math.sqrt(2);\n\n return (index: number, item: Record) => {\n // SuperSplat data are quantized within chunks with 256 Gsplats each\n const chunk = ssChunks[index >>> 8];\n if (chunk == null) {\n throw new Error(\"Missing PLY chunk\");\n }\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = chunk;\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n item as Record;\n\n const x =\n (((packed_position >>> 21) & 2047) / 2047) * (max_x - min_x) + min_x;\n const y =\n (((packed_position >>> 11) & 1023) / 1023) * (max_y - min_y) + min_y;\n const z = ((packed_position & 2047) / 2047) * (max_z - min_z) + min_z;\n\n const r0 = (((packed_rotation >>> 20) & 1023) / 1023 - 0.5) * SQRT2;\n const r1 = (((packed_rotation >>> 10) & 1023) / 1023 - 0.5) * SQRT2;\n const r2 = ((packed_rotation & 1023) / 1023 - 0.5) * SQRT2;\n const rr = Math.sqrt(Math.max(0, 1.0 - r0 * r0 - r1 * r1 - r2 * r2));\n\n const rOrder = packed_rotation >>> 30;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n\n const scaleX = Math.exp(\n (((packed_scale >>> 21) & 2047) / 2047) *\n (max_scale_x - min_scale_x) +\n min_scale_x,\n );\n const scaleY = Math.exp(\n (((packed_scale >>> 11) & 1023) / 1023) *\n (max_scale_y - min_scale_y) +\n min_scale_y,\n );\n const scaleZ = Math.exp(\n ((packed_scale & 2047) / 2047) * (max_scale_z - min_scale_z) +\n min_scale_z,\n );\n\n const r =\n (((packed_color >>> 24) & 255) / 255) *\n ((max_r ?? 1) - (min_r ?? 0)) +\n (min_r ?? 0);\n const g =\n (((packed_color >>> 16) & 255) / 255) *\n ((max_g ?? 1) - (min_g ?? 0)) +\n (min_g ?? 0);\n const b =\n (((packed_color >>> 8) & 255) / 255) * ((max_b ?? 1) - (min_b ?? 0)) +\n (min_b ?? 0);\n const opacity = (packed_color & 255) / 255;\n\n splatCallback(\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n };\n }\n\n const elementCallback = (element: PlyElement) => {\n if (element.name === \"chunk\") {\n // \"chunk\" could conceivably be used for other formats, and we would\n // ideally check for the comment: Generated by SuperSplat 2.*\n // but gsplat also outputs this format without such a comment.\n // In order to support both, let's assume a \"chunk\" element should\n // be interpreted as this format.\n return initSuperSplat(element);\n }\n if (isSuperSplat) {\n return decodeSuperSplat(element);\n }\n\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const {\n x,\n y,\n z,\n scale_0,\n scale_1,\n scale_2,\n rot_0,\n rot_1,\n rot_2,\n rot_3,\n opacity,\n f_dc_0,\n f_dc_1,\n f_dc_2,\n red,\n green,\n blue,\n alpha,\n } = element.properties;\n\n if (!x || !y || !z) {\n throw new Error(\"Missing PLY properties: x, y, z\");\n }\n // Pure point cloud PLY files have no scales or rotations\n const hasScales = scale_0 && scale_1 && scale_2;\n const hasRots = rot_0 && rot_1 && rot_2 && rot_3;\n // Quantization scale factor for argb values\n const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1;\n const redDiv = red != null ? FIELD_SCALE[red.type] : 1;\n const greenDiv = green != null ? FIELD_SCALE[green.type] : 1;\n const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1;\n\n numSh = getNumSh(element.properties);\n prepareSh();\n\n return (index: number, item: Record) => {\n const scaleX = hasScales\n ? Math.exp(item.scale_0 as number)\n : PlyReader.defaultPointScale;\n const scaleY = hasScales\n ? Math.exp(item.scale_1 as number)\n : PlyReader.defaultPointScale;\n const scaleZ = hasScales\n ? Math.exp(item.scale_2 as number)\n : PlyReader.defaultPointScale;\n\n const quatX = hasRots ? (item.rot_1 as number) : 0;\n const quatY = hasRots ? (item.rot_2 as number) : 0;\n const quatZ = hasRots ? (item.rot_3 as number) : 0;\n const quatW = hasRots ? (item.rot_0 as number) : 1;\n\n const op =\n opacity != null\n ? 1.0 / (1.0 + Math.exp(-item.opacity as number))\n : alpha != null\n ? (item.alpha as number) / alphaDiv\n : 1.0;\n const r =\n f_dc_0 != null\n ? (item.f_dc_0 as number) * SH_C0 + 0.5\n : red != null\n ? (item.red as number) / redDiv\n : 1.0;\n const g =\n f_dc_1 != null\n ? (item.f_dc_1 as number) * SH_C0 + 0.5\n : green != null\n ? (item.green as number) / greenDiv\n : 1.0;\n const b =\n f_dc_2 != null\n ? (item.f_dc_2 as number) * SH_C0 + 0.5\n : blue != null\n ? (item.blue as number) / blueDiv\n : 1.0;\n\n splatCallback(\n index,\n item.x as number,\n item.y as number,\n item.z as number,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n op,\n r,\n g,\n b,\n );\n\n if (shCallback && sh1) {\n const sh = item.f_rest as number[];\n if (sh1) {\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = sh[sh1Props[i]];\n }\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = sh[sh2Props[i]];\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = sh[sh3Props[i]];\n }\n }\n shCallback(index, sh1, sh2, sh3);\n }\n };\n };\n\n this.parseData(elementCallback);\n }\n\n // Inject RGBA values into original PLY file, which can be used to modify\n // the color/opacity of the Gsplats and write out the modified PLY file.\n injectRgba(rgba: Uint8Array) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No parsed data\");\n }\n if (rgba.length !== this.numSplats * 4) {\n throw new Error(\"Invalid RGBA array length\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const parsers = [];\n\n let rgbaOffset = 0;\n const isVertex = elementName === \"vertex\";\n if (isVertex) {\n for (const name of [\"opacity\", \"f_dc_0\", \"f_dc_1\", \"f_dc_2\"]) {\n if (!properties[name] || properties[name].type !== \"float\") {\n throw new Error(`Can't injectRgba due to property: ${name}`);\n }\n }\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!property.isList) {\n if (isVertex) {\n if (\n propertyName === \"f_dc_0\" ||\n propertyName === \"f_dc_1\" ||\n propertyName === \"f_dc_2\"\n ) {\n const component = Number.parseInt(\n propertyName.slice(\"f_dc_\".length),\n );\n parsers.push(() => {\n // Inject DC coefficients\n const value =\n (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0;\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n } else if (propertyName === \"opacity\") {\n parsers.push(() => {\n // Inject opacity sigmoid, clamped to [-100, 100]\n const value = Math.max(\n -100,\n Math.min(\n 100,\n -Math.log(1.0 / (rgba[rgbaOffset + 3] / 255) - 1.0),\n ),\n );\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n }\n }\n parsers.push(() => {\n offset += FIELD_BYTES[property.type];\n });\n } else {\n parsers.push(() => {\n const length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n this.littleEndian,\n );\n offset += FIELD_BYTES[property.countType as PlyPropertyType];\n offset += length * FIELD_BYTES[property.type];\n });\n }\n }\n\n for (let index = 0; index < count; index++) {\n // Go through all the data and field parsers to compute offset\n for (const parser of parsers) {\n parser();\n }\n if (isVertex) {\n rgbaOffset += 4;\n }\n }\n }\n }\n}\n\nexport const SH_C0 = 0.28209479177387814;\n\ntype FieldParser = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n) => number;\ntype FieldSetter = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n) => void;\n\nconst PARSE_FIELD: Record = {\n char: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt8(offset);\n },\n uchar: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint8(offset);\n },\n short: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt16(offset, littleEndian);\n },\n ushort: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint16(offset, littleEndian);\n },\n int: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt32(offset, littleEndian);\n },\n uint: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint32(offset, littleEndian);\n },\n float: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat32(offset, littleEndian);\n },\n double: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat64(offset, littleEndian);\n },\n};\n\nconst SET_FIELD: Record = {\n char: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt8(offset, value);\n },\n uchar: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint8(offset, value);\n },\n short: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt16(offset, value, littleEndian);\n },\n ushort: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint16(offset, value, littleEndian);\n },\n int: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt32(offset, value, littleEndian);\n },\n uint: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint32(offset, value, littleEndian);\n },\n float: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat32(offset, value, littleEndian);\n },\n double: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat64(offset, value, littleEndian);\n },\n};\n\nconst FIELD_BYTES: Record = {\n char: 1,\n uchar: 1,\n short: 2,\n ushort: 2,\n int: 4,\n uint: 4,\n float: 4,\n double: 8,\n};\n\nconst FIELD_SCALE: Record = {\n char: 127,\n uchar: 255,\n short: 32767,\n ushort: 65535,\n int: 2147483647,\n uint: 4294967295,\n float: 1,\n double: 1,\n};\n\nconst NUM_F_REST_TO_NUM_SH: Record = {\n 0: 0,\n 9: 1,\n 24: 2,\n 45: 3,\n};\nconst NUM_SH_TO_NUM_F_REST: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nconst F_REST_REGEX = /^f_rest_([0-9]{1,2})$/;\n\nfunction createEmptyItem(\n properties: Record,\n): Record {\n const item: Record = {};\n for (const [propertyName, property] of Object.entries(properties)) {\n // Treat f_rest properties as a single array for performance\n if (F_REST_REGEX.test(propertyName)) {\n item.f_rest = new Array(getNumSh(properties));\n } else {\n item[propertyName] = property.isList ? [] : 0;\n }\n }\n return item;\n}\n\nfunction createParseFn(\n properties: Record,\n littleEndian: boolean,\n) {\n if (USE_COMPILED_PARSER_FUNCTION && safeToCompile(properties)) {\n return createCompiledParserFn(properties, littleEndian);\n }\n return createDynamicParserFn(properties, littleEndian);\n}\n\n// Detect if unsafe eval is allowed in the current execution context\nconst UNSAFE_EVAL_ALLOWED = (() => {\n try {\n new Function(\"return 42;\");\n } catch (e) {\n return false;\n }\n return true;\n})();\nconst PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/;\n\nfunction safeToCompile(properties: Record) {\n if (!UNSAFE_EVAL_ALLOWED) {\n return false;\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!PROPERTY_NAME_REGEX.test(propertyName)) {\n return false;\n }\n\n if (\n property.isList &&\n !PLY_PROPERTY_TYPES.includes(property.countType as PlyPropertyType)\n ) {\n return false;\n }\n\n if (!PLY_PROPERTY_TYPES.includes(property.type)) {\n return false;\n }\n }\n return true;\n}\n\nfunction createCompiledParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct the parser function source.\n const parserSrc: string[] = [\"let list;\"];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parserSrc.push(/*js*/ `\n item.f_rest[${fRestIndex}] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else if (!property.isList) {\n parserSrc.push(/*js*/ `\n item['${propertyName}'] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else {\n // Property is a list, so parse the count first\n parserSrc.push(/*js*/ `\n list = item['${propertyName}'];\n list.length = PARSE_FIELD['${property.countType}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.countType as PlyPropertyType]};\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n }\n `);\n }\n }\n parserSrc.push(\"return offset;\");\n\n const fn = new Function(\n \"data\",\n \"offset\",\n \"item\",\n \"PARSE_FIELD\",\n parserSrc.join(\"\\n\"),\n );\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => fn(data, offset, item, PARSE_FIELD);\n}\n\nfunction createDynamicParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct an array of parser function to parse each property in an item\n const parsers: Array<\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => number\n > = [];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n (item.f_rest as number[])[fRestIndex] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else if (!property.isList) {\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n item[propertyName] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else {\n // Property is a list, so parse the count first\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n const list = item[propertyName] as number[];\n list.length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n littleEndian,\n );\n let currentOffset =\n offset + FIELD_BYTES[property.countType as PlyPropertyType];\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD[property.type](\n data,\n currentOffset,\n littleEndian,\n );\n currentOffset += FIELD_BYTES[property.type];\n }\n return currentOffset;\n },\n );\n }\n }\n\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n let currentOffset = offset;\n for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) {\n currentOffset = parsers[parserIndex](data, currentOffset, item);\n }\n return currentOffset;\n };\n}\n\nfunction getNumSh(properties: Record) {\n let num_f_rest = 0;\n while (properties[`f_rest_${num_f_rest}`]) {\n num_f_rest += 1;\n }\n const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest];\n if (numSh == null) {\n throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`);\n }\n return numSh;\n}\n\ntype SSChunk = {\n min_x: number;\n min_y: number;\n min_z: number;\n max_x: number;\n max_y: number;\n max_z: number;\n min_scale_x: number;\n min_scale_y: number;\n min_scale_z: number;\n max_scale_x: number;\n max_scale_y: number;\n max_scale_z: number;\n min_r?: number;\n min_g?: number;\n min_b?: number;\n max_r?: number;\n max_g?: number;\n max_b?: number;\n};\n","import { unzipSync } from \"fflate\";\nimport { FileLoader, Loader, type LoadingManager } from \"three\";\nimport { ExtSplats, type ExtSplatsOptions } from \"./ExtSplats\";\nimport { withWorker } from \"./OldSplatWorker\";\nimport { PackedSplats, type PackedSplatsOptions } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { type SplatEncoding, SplatFileType } from \"./defines\";\nimport { PlyReader } from \"./ply\";\nimport { decompressPartialGzip, getTextureSize } from \"./utils\";\n\n// SplatLoader implements the THREE.Loader interface and supports loading a variety\n// of different Gsplat file formats. Formats .PLY and .SPZ can be auto-detected\n// from the file contents, while .SPLAT and .KSPLAT require either having the\n// appropriate file extension as part of the path, or it can be explicitly set\n// in the loader using the fileType property.\n\nexport class SplatLoader extends Loader {\n fileLoader: FileLoader;\n\n constructor(manager?: LoadingManager) {\n super(manager);\n this.fileLoader = new FileLoader(manager);\n }\n\n load(\n url: string,\n onLoad?: (decoded: PackedSplats | ExtSplats) => void,\n onProgress?: (event: ProgressEvent) => void,\n onError?: (error: unknown) => void,\n ) {\n return this.loadInternal({\n url,\n onLoad,\n onProgress,\n onError,\n });\n }\n\n async loadAsync(\n url: string,\n onProgress?: (event: ProgressEvent) => void,\n ): Promise {\n return new Promise((resolve, reject) => {\n this.load(\n url,\n (decoded) => {\n resolve(decoded);\n },\n onProgress,\n reject,\n );\n });\n }\n\n parse(packedSplats: PackedSplats): SplatMesh {\n return new SplatMesh({ packedSplats });\n }\n\n loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad,\n onProgress,\n onError,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onLoad?: (decoded: PackedSplats | ExtSplats) => void;\n onProgress?: (event: ProgressEvent) => void;\n onError?: (error: unknown) => void;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n if (fileBytes instanceof ArrayBuffer) {\n fileBytes = new Uint8Array(fileBytes);\n }\n const resolvedURL = fileBytes\n ? undefined\n : this.manager.resolveURL((this.path ?? \"\") + (url ?? \"\"));\n\n let readStream = stream?.getReader();\n\n this.manager.itemStart(resolvedURL ?? \"\");\n // let calledOnLoad = false;\n\n workerPool\n .withWorker(async (worker) => {\n // If LoD is set and not falsey\n const splatsLod = packedSplats?.lod ?? extSplats?.lod;\n if (splatsLod) {\n lod = splatsLod;\n }\n const splatsNonLod = packedSplats?.nonLod ?? extSplats?.nonLod;\n if (splatsNonLod !== undefined) {\n nonLod = splatsNonLod;\n }\n\n // let init: {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // } | null = null;\n // let initExt: {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // } | null = null;\n\n const onStatus = async (data: unknown) => {\n const { loaded, total } = data as { loaded: number; total: number };\n if (loaded !== undefined && onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n\n if ((data as { nextChunk?: boolean }).nextChunk) {\n let chunk: Uint8Array;\n if (!readStream) {\n chunk = new Uint8Array(0);\n } else {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n readStream = undefined;\n chunk = new Uint8Array(0);\n } else {\n chunk = value;\n }\n }\n worker.call(\"nextChunk\", { chunk });\n }\n\n // if ((data as { orig?: unknown }).orig) {\n // if (extSplats) {\n // initExt = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // };\n // extSplats.initialize({\n // numSplats: initExt?.numSplats,\n // extArrays: [initExt?.ext0, initExt?.ext1],\n // extra: initExt?.extra,\n // });\n // calledOnLoad = true;\n // onLoad?.(extSplats);\n // } else if (packedSplats) {\n // init = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // };\n // packedSplats.initialize({\n // numSplats: init?.numSplats,\n // packedArray: init?.packedArray,\n // extra: init?.extra,\n // splatEncoding: init?.splatEncoding,\n // });\n // calledOnLoad = true;\n // onLoad?.(packedSplats);\n // } else {\n // console.warn(\"No splats to initialize\");\n // }\n // }\n };\n\n const basedUrl = resolvedURL\n ? new URL(resolvedURL, window.location.href).toString()\n : undefined;\n const decoded = (await worker.call(\n extSplats ? \"loadExtSplats\" : \"loadPackedSplats\",\n {\n url: basedUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n fileBytes: fileBytes?.slice(),\n fileType,\n pathName: resolvedURL || fileName,\n chunked: stream !== undefined,\n chunkedLength: streamLength,\n encoding: packedSplats?.splatEncoding,\n lod,\n lodBase,\n nonLod,\n lodAbove,\n },\n { onStatus },\n )) as {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n lodSplats?:\n | {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n }\n | PackedSplats\n | ExtSplats;\n };\n\n if (decoded.lodSplats) {\n if (extSplats) {\n decoded.lodSplats = new ExtSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n }),\n });\n } else {\n decoded.lodSplats = new PackedSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n }),\n maxSplats: packedSplats?.maxSplats,\n });\n }\n }\n\n if (extSplats) {\n const initExtSplats = {\n // ...(initExt ?? {}),\n ...decoded,\n };\n extSplats.initialize(initExtSplats as ExtSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(extSplats);\n // }\n } else {\n const initSplats = {\n // ...(init ?? {}),\n ...decoded,\n };\n if (packedSplats) {\n packedSplats.initialize(initSplats as PackedSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(packedSplats);\n // }\n } else {\n // if (!calledOnLoad) {\n onLoad?.(new PackedSplats(initSplats as PackedSplatsOptions));\n // }\n }\n }\n })\n .catch((error) => {\n this.manager.itemError(resolvedURL ?? \"\");\n onError?.(error);\n })\n .finally(() => {\n this.manager.itemEnd(resolvedURL ?? \"\");\n });\n }\n\n async loadInternalAsync({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onProgress?: (event: ProgressEvent) => void;\n lod?: boolean;\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n return new Promise((resolve, reject) => {\n this.loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad: resolve,\n onProgress,\n onError: reject,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n });\n });\n }\n}\n\nasync function fetchWithProgress(\n request: Request,\n onProgress?: (event: ProgressEvent) => void,\n) {\n const response = await fetch(request);\n if (!response.ok) {\n throw new Error(\n `${response.status} \"${response.statusText}\" fetching URL: ${request.url}`,\n );\n }\n if (!response.body) {\n throw new Error(`Response body is null for URL: ${request.url}`);\n }\n\n const reader = response.body.getReader();\n let loaded = 0;\n const chunks: Uint8Array[] = [];\n try {\n const contentLength = Number.parseInt(\n response.headers.get(\"Content-Length\") || \"0\",\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n loaded += value.length;\n\n if (onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n }\n } catch (err) {\n try {\n const reason = err instanceof Error ? err.message : \"Unknown error\";\n await reader.cancel(reason);\n } catch {}\n throw err;\n }\n\n // Combine chunks into a single buffer\n const bytes = new Uint8Array(loaded);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.length;\n }\n return bytes.buffer;\n}\n\nexport function getSplatFileType(\n fileBytes: Uint8Array,\n): SplatFileType | undefined {\n const view = new DataView(fileBytes.buffer);\n const magic = view.getUint32(0, true);\n if ((magic & 0x00ffffff) === 0x00796c70) {\n return SplatFileType.PLY;\n }\n if ((magic & 0x00ffffff) === 0x00088b1f) {\n // Gzipped file, unpack beginning to check magic number\n const header = decompressPartialGzip(fileBytes, 4);\n const gView = new DataView(header.buffer);\n if (gView.getUint32(0, true) === 0x5053474e) {\n return SplatFileType.SPZ;\n }\n // Unknown Gzipped file type\n return undefined;\n }\n if (magic === 0x04034b50) {\n // PKZip file\n if (tryPcSogsZip(fileBytes)) {\n return SplatFileType.PCSOGSZIP;\n }\n // Unknown PKZip file type\n return undefined;\n }\n if (magic === 0x30444152) {\n return SplatFileType.RAD;\n }\n // Unknown file type\n return undefined;\n}\n\n// Returns the lowercased file extension from a path or URL\nexport function getFileExtension(pathOrUrl: string): string {\n const noTrailing = pathOrUrl.split(/[?#]/, 1)[0];\n const lastSlash = Math.max(\n noTrailing.lastIndexOf(\"/\"),\n noTrailing.lastIndexOf(\"\\\\\"),\n );\n const filename = noTrailing.slice(lastSlash + 1);\n const lastDot = filename.lastIndexOf(\".\");\n if (lastDot <= 0 || lastDot === filename.length - 1) {\n return \"\"; // No extension\n }\n return filename.slice(lastDot + 1).toLowerCase();\n}\n\nexport function getSplatFileTypeFromPath(\n pathOrUrl: string,\n): SplatFileType | undefined {\n const extension = getFileExtension(pathOrUrl);\n if (extension === \"ply\") {\n return SplatFileType.PLY;\n }\n if (extension === \"spz\") {\n return SplatFileType.SPZ;\n }\n if (extension === \"splat\") {\n return SplatFileType.SPLAT;\n }\n if (extension === \"ksplat\") {\n return SplatFileType.KSPLAT;\n }\n if (extension === \"sog\") {\n return SplatFileType.PCSOGSZIP;\n }\n if (extension === \"rad\") {\n return SplatFileType.RAD;\n }\n return undefined;\n}\n\nexport type PcSogsJson = {\n means: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n quats: { shape: number[]; dtype: string; encoding?: string; files: string[] };\n sh0: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n shN?: {\n shape: number[];\n dtype: string;\n mins: number;\n maxs: number;\n quantization: number;\n files: string[];\n };\n};\n\nexport type PcSogsV2Json = {\n version: 2;\n count: number;\n antialias?: boolean;\n means: {\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n codebook: number[];\n files: string[];\n };\n quats: { files: string[] };\n sh0: {\n codebook: number[];\n files: string[];\n };\n shN?: {\n count: number;\n bands: number;\n codebook: number[];\n files: string[];\n };\n};\n\nexport function isPcSogs(input: ArrayBuffer | Uint8Array | string): boolean {\n // Returns true if the input seems to be a valid PC SOGS file\n return tryPcSogs(input) !== undefined;\n}\n\nexport function tryPcSogs(\n input: ArrayBuffer | Uint8Array | string,\n): PcSogsJson | PcSogsV2Json | undefined {\n // Try to parse input as SOGS JSON and see if it's valid\n try {\n let text: string;\n if (typeof input === \"string\") {\n text = input;\n } else {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n if (fileBytes.length > 65536) {\n // Should be only a few KB, definitely not a SOGS JSON file\n return undefined;\n }\n text = new TextDecoder().decode(fileBytes);\n }\n\n const json = JSON.parse(text);\n if (!json || typeof json !== \"object\" || Array.isArray(json)) {\n return undefined;\n }\n const isVersion2 = json.version === 2;\n\n for (const key of [\"means\", \"scales\", \"quats\", \"sh0\"]) {\n if (\n !json[key] ||\n typeof json[key] !== \"object\" ||\n Array.isArray(json[key])\n ) {\n return undefined;\n }\n if (isVersion2) {\n // Expect files\n if (!json[key].files) {\n return undefined;\n }\n\n // Scales and sh0 should have codebooks\n if ((key === \"scales\" || key === \"sh0\") && !json[key].codebook) {\n return undefined;\n }\n // Means should have mins and maxs defined\n if (key === \"means\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n } else {\n // Expect shape and files\n if (!json[key].shape || !json[key].files) {\n return undefined;\n }\n // Besides 'quats' all other properties have mins and maxs\n if (key !== \"quats\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n }\n }\n // This is probably a PC SOGS file\n return json as PcSogsJson | PcSogsV2Json;\n } catch {\n return undefined;\n }\n}\n\nexport function tryPcSogsZip(\n input: ArrayBuffer | Uint8Array,\n): { name: string; json: PcSogsJson | PcSogsV2Json } | undefined {\n try {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let metaFilename: string | null = null;\n\n const unzipped = unzipSync(fileBytes, {\n filter: ({ name }) => {\n const filename = name.split(/[\\\\/]/).pop() as string;\n if (filename === \"meta.json\") {\n metaFilename = name;\n return true;\n }\n return false;\n },\n });\n if (!metaFilename) {\n return undefined;\n }\n\n // Check for PC SOGS V1 and V2 (aka SOG)\n const json = tryPcSogs(unzipped[metaFilename]);\n if (!json) {\n return undefined;\n }\n return { name: metaFilename, json };\n } catch {\n return undefined;\n }\n}\n\nexport async function unpackSplats({\n input,\n extraFiles,\n fileType,\n pathOrUrl,\n splatEncoding,\n}: {\n input: Uint8Array | ArrayBuffer;\n extraFiles?: Record;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n splatEncoding?: SplatEncoding;\n}): Promise<{\n packedArray: Uint32Array;\n numSplats: number;\n extra?: Record;\n}> {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let splatFileType = fileType;\n if (!fileType) {\n splatFileType = getSplatFileType(fileBytes);\n if (!splatFileType && pathOrUrl) {\n splatFileType = getSplatFileTypeFromPath(pathOrUrl);\n }\n }\n\n switch (splatFileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes });\n await ply.parseHeader();\n const numSplats = ply.numSplats;\n const maxSplats = getTextureSize(numSplats).maxSplats;\n const args = {\n fileBytes,\n packedArray: new Uint32Array(maxSplats * 4),\n splatEncoding,\n };\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"unpackPly\",\n args,\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.SPZ: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodeSpz\",\n {\n fileBytes,\n splatEncoding,\n },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.SPLAT: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats } = (await worker.call(\n \"decodeAntiSplat\",\n {\n fileBytes,\n splatEncoding,\n },\n )) as { packedArray: Uint32Array; numSplats: number };\n return { packedArray, numSplats };\n });\n }\n case SplatFileType.KSPLAT: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodeKsplat\",\n { fileBytes, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.PCSOGS: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodePcSogs\",\n { fileBytes, extraFiles, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n case SplatFileType.PCSOGSZIP: {\n return await withWorker(async (worker) => {\n const { packedArray, numSplats, extra } = (await worker.call(\n \"decodePcSogsZip\",\n { fileBytes, splatEncoding },\n )) as {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n };\n return { packedArray, numSplats, extra };\n });\n }\n default: {\n throw new Error(`Unknown splat file type: ${splatFileType}`);\n }\n }\n}\n\nexport class SplatData {\n numSplats: number;\n maxSplats: number;\n centers: Float32Array;\n scales: Float32Array;\n quaternions: Float32Array;\n opacities: Float32Array;\n colors: Float32Array;\n sh1?: Float32Array;\n sh2?: Float32Array;\n sh3?: Float32Array;\n\n constructor({ maxSplats = 1 }: { maxSplats?: number } = {}) {\n this.numSplats = 0;\n this.maxSplats = getTextureSize(maxSplats).maxSplats;\n this.centers = new Float32Array(this.maxSplats * 3);\n this.scales = new Float32Array(this.maxSplats * 3);\n this.quaternions = new Float32Array(this.maxSplats * 4);\n this.opacities = new Float32Array(this.maxSplats);\n this.colors = new Float32Array(this.maxSplats * 3);\n }\n\n pushSplat(): number {\n const index = this.numSplats;\n this.ensureIndex(index);\n this.numSplats += 1;\n return index;\n }\n\n unpushSplat(index: number) {\n if (index === this.numSplats - 1) {\n this.numSplats -= 1;\n } else {\n throw new Error(\"Cannot unpush splat from non-last position\");\n }\n }\n\n ensureCapacity(numSplats: number) {\n if (numSplats > this.maxSplats) {\n const targetSplats = Math.max(numSplats, this.maxSplats * 2);\n const newCenters = new Float32Array(targetSplats * 3);\n const newScales = new Float32Array(targetSplats * 3);\n const newQuaternions = new Float32Array(targetSplats * 4);\n const newOpacities = new Float32Array(targetSplats);\n const newColors = new Float32Array(targetSplats * 3);\n newCenters.set(this.centers);\n newScales.set(this.scales);\n newQuaternions.set(this.quaternions);\n newOpacities.set(this.opacities);\n newColors.set(this.colors);\n this.centers = newCenters;\n this.scales = newScales;\n this.quaternions = newQuaternions;\n this.opacities = newOpacities;\n this.colors = newColors;\n\n if (this.sh1) {\n const newSh1 = new Float32Array(targetSplats * 9);\n newSh1.set(this.sh1);\n this.sh1 = newSh1;\n }\n if (this.sh2) {\n const newSh2 = new Float32Array(targetSplats * 15);\n newSh2.set(this.sh2);\n this.sh2 = newSh2;\n }\n if (this.sh3) {\n const newSh3 = new Float32Array(targetSplats * 21);\n newSh3.set(this.sh3);\n this.sh3 = newSh3;\n }\n\n this.maxSplats = targetSplats;\n }\n }\n\n ensureIndex(index: number) {\n this.ensureCapacity(index + 1);\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n this.centers[index * 3] = x;\n this.centers[index * 3 + 1] = y;\n this.centers[index * 3 + 2] = z;\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n this.scales[index * 3] = scaleX;\n this.scales[index * 3 + 1] = scaleY;\n this.scales[index * 3 + 2] = scaleZ;\n }\n\n setQuaternion(index: number, x: number, y: number, z: number, w: number) {\n this.quaternions[index * 4] = x;\n this.quaternions[index * 4 + 1] = y;\n this.quaternions[index * 4 + 2] = z;\n this.quaternions[index * 4 + 3] = w;\n }\n\n setOpacity(index: number, opacity: number) {\n this.opacities[index] = opacity;\n }\n\n setColor(index: number, r: number, g: number, b: number) {\n this.colors[index * 3] = r;\n this.colors[index * 3 + 1] = g;\n this.colors[index * 3 + 2] = b;\n }\n\n setSh1(index: number, sh1: Float32Array) {\n if (!this.sh1) {\n this.sh1 = new Float32Array(this.maxSplats * 9);\n }\n for (let j = 0; j < 9; ++j) {\n this.sh1[index * 9 + j] = sh1[j];\n }\n }\n\n setSh2(index: number, sh2: Float32Array) {\n if (!this.sh2) {\n this.sh2 = new Float32Array(this.maxSplats * 15);\n }\n for (let j = 0; j < 15; ++j) {\n this.sh2[index * 15 + j] = sh2[j];\n }\n }\n\n setSh3(index: number, sh3: Float32Array) {\n if (!this.sh3) {\n this.sh3 = new Float32Array(this.maxSplats * 21);\n }\n for (let j = 0; j < 21; ++j) {\n this.sh3[index * 21 + j] = sh3[j];\n }\n }\n}\n\nexport async function transcodeSpz(\n input: TranscodeSpzInput,\n): Promise<{ input: TranscodeSpzInput; fileBytes: Uint8Array }> {\n return await withWorker(async (worker) => {\n const result = (await worker.call(\"transcodeSpz\", input)) as {\n input: TranscodeSpzInput;\n fileBytes: Uint8Array;\n };\n return result;\n });\n}\n\nexport type FileInput = {\n fileBytes: Uint8Array;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n transform?: { translate?: number[]; quaternion?: number[]; scale?: number };\n};\n\nexport type TranscodeSpzInput = {\n inputs: FileInput[];\n maxSh?: number;\n clipXyz?: { min: number[]; max: number[] };\n fractionalBits?: number;\n opacityThreshold?: number;\n};\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport type { RgbaArray } from \"./RgbaArray\";\nimport type { GsplatGenerator } from \"./SplatGenerator\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n DynoProgram,\n DynoProgramTemplate,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n add,\n dynoBlock,\n normalize,\n outputPackedSplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport {\n type Gsplat,\n TPackedSplats,\n combineGsplat,\n definePackedSplats,\n readPackedSplat,\n splatTexCoord,\n splitGsplat,\n} from \"./dyno/splats\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, setPackedSplat, unpackSplat } from \"./utils\";\n\n// Initialize a PackedSplats collection from source data via\n// url, fileBytes, or packedArray. Creates an empty array if none are set,\n// and splat data can be constructed using pushSplat()/setSplat(). The maximum\n// splat size allocation will grow automatically, starting from maxSplats.\nexport type PackedSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided packed data array, where each 4 consecutive uint32 values\n // encode one \"packed\" Gsplat. (default: undefined)\n packedArray?: Uint32Array;\n // Override number of splats in packed array to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the PackedSplats\n lodSplats?: PackedSplats;\n};\n\n// A PackedSplats is a collection of Gaussian splats, packed into a format that\n// takes exactly 16 bytes per Gsplat to maximize memory and cache efficiency.\n// The center xyz coordinates are encoded as float16 (3 x 2 bytes), scale xyz\n// as 3 x uint8 that encode a log scale from e^-12 to e^9, rgba as 4 x uint8,\n// and quaternion encoded via axis+angle using 2 x uint8 for octahedral encoding\n// of the axis direction and a uint8 to encode rotation amount from 0..Pi.\n\nexport class PackedSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n packedArray: Uint32Array | null = null;\n extra: Record;\n maxSh = 3;\n splatEncoding?: SplatEncoding;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: PackedSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n // Either target or source will be non-null, depending on whether the PackedSplats\n // is being used as a data source or generated to.\n target: THREE.WebGLArrayRenderTarget | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source packedArray is updated to have it upload to GPU\n needsUpdate = true;\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoRgbMinMaxLnScaleMinMax: DynoUniform<\"vec4\", \"rgbMinMaxLnScaleMinMax\">;\n dynoNumSh: DynoInt<\"numSh\">;\n dynoShMax: DynoVec3;\n\n constructor(options: PackedSplatsOptions = {}) {\n this.extra = {};\n this.dyno = new DynoPackedSplats({ packedSplats: this });\n this.dynoRgbMinMaxLnScaleMinMax = new DynoVec4({\n key: \"rgbMinMaxLnScaleMinMax\",\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n update: (value) => {\n value.set(\n this.splatEncoding?.rgbMin ?? 0.0,\n this.splatEncoding?.rgbMax ?? 1.0,\n this.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n return value;\n },\n });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n this.dynoShMax = new DynoVec3({\n key: \"shMax\",\n value: new THREE.Vector3(),\n update: (value) => {\n value.set(\n this.splatEncoding?.sh1Max ?? 1.0,\n this.splatEncoding?.sh2Max ?? 1.0,\n this.splatEncoding?.sh3Max ?? 1.0,\n );\n return value;\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: PackedSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.splatEncoding = options.splatEncoding;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: PackedSplatsOptions) {\n this.extra = options.extra ?? {};\n this.splatEncoding = options.splatEncoding ?? this.splatEncoding;\n this.lodSplats = options.lodSplats;\n\n if (options.packedArray) {\n this.packedArray = options.packedArray;\n this.numSplats = options.numSplats ?? this.packedArray.length / 4;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats = Math.floor(this.packedArray.length / 4);\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n }\n }\n\n async asyncInitialize(options: PackedSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n packedSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target.texture.source.data = null;\n this.target = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source.source.data = null;\n this.source = null;\n }\n\n this.packedArray = null;\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"PackedSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3 ? 2 : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readPackedSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3Texture } = this.ensureShTextures();\n let { rgb } = evaluatePackedSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax: this.dynoShMax,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 2,\n );\n if (sh1.length < maxSplats * 2) {\n const newSh1 = new Uint32Array(maxSplats * 2);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n\n const texture = new THREE.DataArrayTexture(sh1, width, height, depth);\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = new THREE.DataArrayTexture(sh2, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3Texture = this.extra.sh3Texture as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3Texture) {\n let sh3 = this.extra.sh3 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3.length / 4,\n );\n if (sh3.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3);\n this.extra.sh3 = newSh3;\n sh3 = newSh3;\n }\n\n const texture = new THREE.DataArrayTexture(sh3, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh3Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3Texture = sh3Texture;\n }\n\n return { sh1Texture, sh2Texture, sh3Texture };\n }\n\n // Ensures that this.packedArray can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): Uint32Array {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.packedArray ? 0 : this.packedArray.length / 4;\n\n if (!this.packedArray || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(this.maxSplats * 4);\n if (this.packedArray) {\n // Copy over existing data\n newArray.set(this.packedArray);\n }\n this.packedArray = newArray;\n }\n return this.packedArray;\n }\n\n // Ensure the extra array for the given level is large enough to hold numSplats\n ensureSplatsSh(level: number, numSplats: number): Uint32Array {\n let wordsPerSplat: number;\n let key: string;\n if (level === 0) {\n return this.ensureSplats(numSplats);\n }\n if (level === 1) {\n // 3 x 3 uint7 = 63 bits = 2 uint32\n wordsPerSplat = 2;\n key = \"sh1\";\n } else if (level === 2) {\n // 5 x 3 uint8 = 120 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh2\";\n } else if (level === 3) {\n // 7 x 3 uint6 = 126 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh3\";\n } else {\n throw new Error(`Invalid level: ${level}`);\n }\n\n // Figure out our current and desired maxSplats\n let maxSplats: number = !this.extra[key]\n ? 0\n : (this.extra[key] as Uint32Array).length / wordsPerSplat;\n const targetSize =\n numSplats <= maxSplats ? maxSplats : Math.max(numSplats, 2 * maxSplats);\n\n if (!this.extra[key] || targetSize > maxSplats) {\n // Reallocate the array\n maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(maxSplats * wordsPerSplat);\n if (this.extra[key]) {\n // Copy over existing data\n newArray.set(this.extra[key] as Uint32Array);\n }\n this.extra[key] = newArray;\n }\n return this.extra[key] as Uint32Array;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (!this.packedArray || index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return unpackSplat(this.packedArray, index, this.splatEncoding);\n }\n\n // Set all PackedSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(index + 1);\n setPackedSplat(\n packedSplats,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(this.numSplats + 1);\n setPackedSplat(\n packedSplats,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.packedArray || !this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = unpackSplat(this.packedArray, i, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Ensures our PackedSplats.target render target has enough space to generate\n // maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate(maxSplats: number): boolean {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n if (this.target) {\n this.target.dispose();\n }\n\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAIntegerFormat;\n this.target.texture.type = THREE.UnsignedIntType;\n this.target.texture.internalFormat = \"RGBA32UI\";\n this.target.scissorTest = true;\n return true;\n }\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Returns a THREE.DataArrayTexture representing the PackedSplats content as\n // a Uint32x4 data array texture (2048 x 2048 x depth in size)\n getTexture(): THREE.DataArrayTexture {\n if (this.target) {\n // Return the render target's texture\n return this.target.texture;\n }\n if (this.source || this.packedArray) {\n // Update source texture if needed and return\n const source = this.maybeUpdateSource();\n return source;\n }\n\n return PackedSplats.getEmptyArray;\n }\n\n // Check if source texture needs to be created/updated\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.packedArray) {\n throw new Error(\"No packed splats\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.source = new THREE.DataArrayTexture(\n this.packedArray as Uint32Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAIntegerFormat;\n this.source.type = THREE.UnsignedIntType;\n this.source.internalFormat = \"RGBA32UI\";\n this.source.needsUpdate = true;\n } else if (this.packedArray.buffer !== this.source.image.data.buffer) {\n // The source texture is the right size, update the data\n this.source.image.data = new Uint8Array(this.packedArray.buffer);\n }\n // Indicate to Three.js that the source texture needs to be uploaded to the GPU\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n static getEmptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(generator: GsplatGenerator): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = PackedSplats.generatorProgram.get(generator);\n if (!program) {\n // A Gsplat needs to be turned into a packed uvec4 for the dyno graph\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n generator.inputs.index = index;\n const gsplat = generator.outputs.gsplat;\n const output = outputPackedSplat(\n gsplat,\n this.dynoRgbMinMaxLnScaleMinMax,\n );\n roots.push(output);\n return undefined;\n },\n );\n if (!PackedSplats.programTemplate) {\n PackedSplats.programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { output: \"target\" },\n template: PackedSplats.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n PackedSplats.generatorProgram.set(generator, program);\n }\n\n // Prepare and update our material we'll use to render the Gsplats\n const material = program.prepareMaterial();\n PackedSplats.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Executes a dyno program specified by generator which is any DynoBlock that\n // maps { index: \"int\" } to { gsplat: Gsplat }. This is called in\n // SparkRenderer.updateInternal() to re-generate Gsplats in the scene for\n // SplatGenerator instances whose version is newer than what was generated\n // for it last time.\n generate({\n generator,\n base,\n count,\n renderer,\n }: {\n generator: GsplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }): { nextBase: number } {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureSplats\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(generator);\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n PackedSplats.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const packedArray = (this.packedArray as Uint32Array).slice();\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodPackedSplats\" : \"tinyLodPackedSplats\",\n {\n numSplats: this.numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding: this.splatEncoding ?? DEFAULT_SPLAT_ENCODING,\n },\n )) as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n };\n });\n\n const lodSplats = new PackedSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new PackedSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for GsplatGenerator programs\n static generatorProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\n// You can use a PackedSplats as a dyno block using the function\n// dyno.readPackedSplats(packedSplats.dyno, dynoIndex) where\n// dynoIndex is of type DynoVal<\"int\">. If you need to be able to change\n// the input PackedSplats dynamically, however, you should create a\n// DynoPackedSplats, whose property packedSplats you can change to any\n// PackedSplats and that will be used in the dyno shader program.\n\nexport const dynoPackedSplats = (packedSplats?: PackedSplats) =>\n new DynoPackedSplats({ packedSplats });\n\nexport class DynoPackedSplats extends DynoUniform<\n typeof TPackedSplats,\n \"packedSplats\",\n {\n textureArray: THREE.DataArrayTexture;\n numSplats: number;\n rgbMinMaxLnScaleMinMax: THREE.Vector4;\n lodOpacity: boolean;\n }\n> {\n packedSplats?: PackedSplats;\n\n constructor({ packedSplats }: { packedSplats?: PackedSplats } = {}) {\n super({\n key: \"packedSplats\",\n type: TPackedSplats,\n globals: () => [definePackedSplats],\n value: {\n textureArray: PackedSplats.getEmptyArray,\n numSplats: 0,\n rgbMinMaxLnScaleMinMax: new THREE.Vector4(\n 0,\n 1,\n LN_SCALE_MIN,\n LN_SCALE_MAX,\n ),\n lodOpacity: false,\n },\n update: (value) => {\n value.textureArray =\n this.packedSplats?.getTexture() ?? PackedSplats.getEmptyArray;\n value.numSplats = this.packedSplats?.numSplats ?? 0;\n value.rgbMinMaxLnScaleMinMax.set(\n this.packedSplats?.splatEncoding?.rgbMin ?? 0,\n this.packedSplats?.splatEncoding?.rgbMax ?? 1,\n this.packedSplats?.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.packedSplats?.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n value.lodOpacity =\n this.packedSplats?.splatEncoding?.lodOpacity ?? false;\n return value;\n },\n });\n this.packedSplats = packedSplats;\n }\n}\n\nexport const defineEvalPackedSH1 = unindent(`\n vec3 evaluatePackedSH1(uvec2 packedData, vec3 viewDir, float sh1Max) {\n // Extract sint7 values packed into 2 x uint32\n vec3 sh1_0 = vec3(ivec3(\n int(packedData.x << 25u) >> 25,\n int(packedData.x << 18u) >> 25,\n int(packedData.x << 11u) >> 25\n ));\n vec3 sh1_1 = vec3(ivec3(\n int(packedData.x << 4u) >> 25,\n int((packedData.x >> 3u) | (packedData.y << 29u)) >> 25,\n int(packedData.y << 22u) >> 25\n ));\n vec3 sh1_2 = vec3(ivec3(\n int(packedData.y << 15u) >> 25,\n int(packedData.y << 8u) >> 25,\n int(packedData.y << 1u) >> 25\n ));\n\n vec3 rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n return rgb * (sh1Max / 63.0);\n }\n`);\n\nexport const defineEvalPackedSH2 = unindent(`\n vec3 evaluatePackedSH2(uvec4 packedData, vec3 viewDir, float sh2Max) {\n // Extract sint8 values packed into 4 x uint32\n vec3 sh2_0 = vec3(ivec3(\n int(packedData.x << 24u) >> 24,\n int(packedData.x << 16u) >> 24,\n int(packedData.x << 8u) >> 24\n ));\n vec3 sh2_1 = vec3(ivec3(\n int(packedData.x) >> 24,\n int(packedData.y << 24u) >> 24,\n int(packedData.y << 16u) >> 24\n ));\n vec3 sh2_2 = vec3(ivec3(\n int(packedData.y << 8u) >> 24,\n int(packedData.y) >> 24,\n int(packedData.z << 24u) >> 24\n ));\n vec3 sh2_3 = vec3(ivec3(\n int(packedData.z << 16u) >> 24,\n int(packedData.z << 8u) >> 24,\n int(packedData.z) >> 24\n ));\n vec3 sh2_4 = vec3(ivec3(\n int(packedData.w << 24u) >> 24,\n int(packedData.w << 16u) >> 24,\n int(packedData.w << 8u) >> 24\n ));\n\n vec3 rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n return rgb * (sh2Max / 127.0);\n }\n`);\n\nexport const defineEvalPackedSH3 = unindent(`\n vec3 evaluatePackedSH3(uvec4 packedData, vec3 viewDir, float sh3Max) {\n // Extract sint6 values packed into 4 x uint32\n vec3 sh3_0 = vec3(ivec3(\n int(packedData.x << 26u) >> 26,\n int(packedData.x << 20u) >> 26,\n int(packedData.x << 14u) >> 26\n ));\n vec3 sh3_1 = vec3(ivec3(\n int(packedData.x << 8u) >> 26,\n int(packedData.x << 2u) >> 26,\n int((packedData.x >> 4u) | (packedData.y << 28u)) >> 26\n ));\n vec3 sh3_2 = vec3(ivec3(\n int(packedData.y << 22u) >> 26,\n int(packedData.y << 16u) >> 26,\n int(packedData.y << 10u) >> 26\n ));\n vec3 sh3_3 = vec3(ivec3(\n int(packedData.y << 4u) >> 26,\n int((packedData.y >> 2u) | (packedData.z << 30u)) >> 26,\n int(packedData.z << 24u) >> 26\n ));\n vec3 sh3_4 = vec3(ivec3(\n int(packedData.z << 18u) >> 26,\n int(packedData.z << 12u) >> 26,\n int(packedData.z << 6u) >> 26\n ));\n vec3 sh3_5 = vec3(ivec3(\n int(packedData.z) >> 26,\n int(packedData.w << 26u) >> 26,\n int(packedData.w << 20u) >> 26\n ));\n vec3 sh3_6 = vec3(ivec3(\n int(packedData.w << 14u) >> 26,\n int(packedData.w << 8u) >> 26,\n int(packedData.w << 2u) >> 26\n ));\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n vec3 rgb = sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n return rgb * (sh3Max / 31.0);\n }\n`);\n\nexport function evaluatePackedSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n shMax: DynoVal<\"vec3\">;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3Texture: \"usampler2DArray\",\n shMax: \"vec3\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n },\n globals: () => [\n defineEvalPackedSH1,\n defineEvalPackedSH2,\n defineEvalPackedSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0).rg, ${inputs.viewDir}, ${inputs.shMax}.x);\n rgb += sh1Rgb;\n `),\n );\n if (inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 2) {\n vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.y);\n rgb += sh2Rgb;\n `),\n );\n if (inputs.sh3Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${inputs.sh3Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.z);\n rgb += sh3Rgb;\n }\n `),\n );\n }\n lines.push(\"}\");\n }\n lines.push(\"}\");\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n","import * as THREE from \"three\";\n\nimport type { OldSparkRenderer } from \"./OldSparkRenderer\";\nimport type { OldSplatAccumulator } from \"./OldSplatAccumulator\";\nimport { OldSplatGeometry } from \"./OldSplatGeometry\";\nimport { withWorker } from \"./OldSplatWorker\";\nimport { DynoPackedSplats } from \"./PackedSplats\";\nimport { Readback } from \"./Readback\";\nimport {\n type DynoBlock,\n DynoBool,\n DynoFloat,\n type DynoVal,\n DynoVec3,\n Gsplat,\n add,\n combine,\n defineGsplat,\n dyno,\n dynoBlock,\n dynoConst,\n floatBitsToUint,\n mul,\n packHalf2x16,\n readPackedSplat,\n uintToRgba8,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { FreeList, withinCoorientDist } from \"./utils\";\n\nexport type OldSparkViewpointOptions = {\n /**\n * Controls whether to auto-update its sort order whenever the SparkRenderer\n * updates the Gsplats. If you expect to render/display from this viewpoint\n * most frames, set this to true.\n * @default false\n */\n autoUpdate?: boolean;\n /**\n * Set a THREE.Camera for this viewpoint to follow.\n * @default undefined\n */\n camera?: THREE.Camera;\n /**\n * Set an explicit view-to-world transformation matrix for this viewpoint (equivalent\n * to camera.matrixWorld), overrides any camera setting.\n * @default undefined\n */\n viewToWorld?: THREE.Matrix4;\n /**\n * Configure viewpoint with an off-screen render target.\n * @default undefined\n */\n target?: {\n /**\n * Width of the render target in pixels.\n */\n width: number;\n /**\n * Height of the render target in pixels.\n */\n height: number;\n /**\n * If you want to be able to render a scene that depends on this target's\n * output (for example, a recursive viewport), set this to true to enable\n * double buffering.\n * @default false\n */\n doubleBuffer?: boolean;\n /**\n * Super-sampling factor for the render target. Values 1-4 are supported.\n * Note that re-sampling back down to .width x .height is done on the CPU\n * with simple averaging only when calling readTarget().\n * @default 1\n */\n superXY?: number;\n };\n /**\n * Callback function that is called when the render target texture is updated.\n * Receives the texture as a parameter. Use this to update a viewport with\n * the latest viewpoint render each frame.\n * @default undefined\n */\n onTextureUpdated?: (texture: THREE.Texture) => void;\n /**\n * Whether to sort splats radially (geometric distance) from the viewpoint (true)\n * or by Z-depth (false). Most scenes are trained with the Z-depth sort metric\n * and will render more accurately at certain viewpoints. However, radial sorting\n * is more stable under viewpoint rotations.\n * @default true\n */\n sortRadial?: boolean;\n /**\n * Distance threshold for re-sorting splats. If the viewpoint moves more than\n * this distance, splats will be re-sorted.\n * @default 0.01 units\n */\n sortDistance?: number;\n /**\n * View direction dot product threshold for re-sorting splats. For\n * sortRadial: true we use 0.99 while sortRadial: false uses 0.999 because it is\n * more sensitive to view direction.\n * @default 0.99 if sortRadial else 0.999\n */\n sortCoorient?: boolean;\n /**\n * Constant added to Z-depth to bias values into the positive range for\n * sortRadial: false, but also used for culling Gsplats \"well behind\"\n * the viewpoint origin\n * @default 1.0\n */\n depthBias?: number;\n /**\n * Set this to true if rendering a 360 to disable \"behind the viewpoint\"\n * culling during sorting. This is set automatically when rendering 360 envMaps\n * using the SparkRenderer.renderEnvMap() utility function.\n * @default false\n */\n sort360?: boolean;\n /*\n * Set this to true to sort with float32 precision with two-pass sort.\n * @default true\n */\n sort32?: boolean;\n /*\n * Set this to true to enable sort-free stochastic splat rendering.\n * @default false\n */\n stochastic?: boolean;\n};\n\n// A SparkViewpoint is created from and tied to a SparkRenderer, and represents\n// an independent viewpoint of all the scene Gsplats and their sort order. Making\n// these viewpoints explicit allows us to have multiple, simultaneous viewpoint\n// renders, for example for camera preview panes or overhead map views.\n//\n// When creating a SparkRenderer it automatically creates a default viewpoint\n// .defaultView that is used in the normal render loop when drawing to the canvas,\n// and is automatically updated whenever the camera moves. Additional viewpoints\n// can be created and configured separately.\n\nexport class OldSparkViewpoint {\n spark: OldSparkRenderer;\n autoUpdate: boolean;\n camera?: THREE.Camera;\n viewToWorld: THREE.Matrix4;\n lastTime: number | null = null;\n\n target?: THREE.WebGLRenderTarget;\n private back?: THREE.WebGLRenderTarget;\n onTextureUpdated?: (texture: THREE.Texture) => void;\n encodeLinear = false;\n superXY = 1;\n private superPixels?: Uint8Array;\n private pixels?: Uint8Array;\n\n sortRadial: boolean;\n sortDistance?: number;\n sortCoorient?: boolean;\n depthBias?: number;\n sort360?: boolean;\n sort32?: boolean;\n stochastic: boolean;\n\n display: {\n accumulator: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n geometry: OldSplatGeometry;\n } | null = null;\n\n private sorting: { viewToWorld: THREE.Matrix4 } | null = null;\n private pending: {\n accumulator?: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n displayed: boolean;\n } | null = null;\n private sortingCheck = false;\n\n private readback16: Uint16Array = new Uint16Array(0);\n private readback32: Uint32Array = new Uint32Array(0);\n private orderingFreelist: FreeList;\n\n constructor(options: OldSparkViewpointOptions & { spark: OldSparkRenderer }) {\n this.spark = options.spark;\n this.camera = options.camera;\n this.viewToWorld = options.viewToWorld ?? new THREE.Matrix4();\n\n if (options.target) {\n const { width, height, doubleBuffer } = options.target;\n const superXY = Math.max(1, Math.min(4, options.target.superXY ?? 1));\n this.superXY = superXY;\n if (width * superXY > 8192 || height * superXY > 8192) {\n throw new Error(\"Target size too large\");\n }\n\n this.target = new THREE.WebGLRenderTarget(\n width * superXY,\n height * superXY,\n {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n },\n );\n if (doubleBuffer) {\n this.back = new THREE.WebGLRenderTarget(\n width * superXY,\n height * superXY,\n {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n },\n );\n }\n this.encodeLinear = true;\n }\n this.onTextureUpdated = options.onTextureUpdated;\n\n this.sortRadial = options.sortRadial ?? true;\n this.sortDistance = options.sortDistance;\n this.sortCoorient = options.sortCoorient;\n this.depthBias = options.depthBias;\n this.sort360 = options.sort360;\n this.sort32 = options.sort32;\n this.stochastic = options.stochastic ?? false;\n\n this.orderingFreelist = new FreeList({\n allocate: (maxSplats) =>\n new Uint32Array(maxSplats) as Uint32Array,\n valid: (ordering, maxSplats) => ordering.length === maxSplats,\n });\n\n this.autoUpdate = false;\n this.setAutoUpdate(options.autoUpdate ?? false);\n }\n\n // Call this when you are done with the SparkViewpoint and want to\n // free up its resources (GPU targets, pixel buffers, etc.)\n dispose() {\n this.setAutoUpdate(false);\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n if (this.back) {\n this.back.dispose();\n this.back = undefined;\n }\n if (this.display) {\n this.spark.releaseAccumulator(this.display.accumulator);\n this.display.geometry.dispose();\n this.display = null;\n }\n if (this.pending?.accumulator) {\n this.spark.releaseAccumulator(this.pending.accumulator);\n this.pending = null;\n }\n }\n\n // Use this function to change whether this viewpoint will auto-update\n // its sort order whenever the attached SparkRenderer updates the Gsplats.\n // Turn this on or off depending on whether you expect to do renders from\n // this viewpoint most frames.\n setAutoUpdate(autoUpdate: boolean) {\n if (!this.autoUpdate && autoUpdate) {\n this.spark.autoViewpoints.push(this);\n } else if (this.autoUpdate && !autoUpdate) {\n this.spark.autoViewpoints = this.spark.autoViewpoints.filter(\n (v) => v !== this,\n );\n }\n this.autoUpdate = autoUpdate;\n }\n\n // See below async prepareRenderPixels() for explanation of parameters.\n // Awaiting this method updates the Gsplats in the scene and performs a sort of the\n // Gsplats from this viewpoint, preparing it for a subsequent this.renderTarget()\n // call in the same tick.\n async prepare({\n scene,\n camera,\n viewToWorld,\n update,\n forceOrigin,\n }: {\n scene: THREE.Scene;\n camera?: THREE.Camera;\n viewToWorld?: THREE.Matrix4;\n update?: boolean;\n forceOrigin?: boolean;\n }) {\n if (viewToWorld) {\n this.viewToWorld = viewToWorld;\n } else {\n this.camera = camera ?? this.camera;\n if (this.camera) {\n this.camera.updateMatrixWorld();\n this.viewToWorld = this.camera.matrixWorld.clone();\n }\n }\n while (update ?? true) {\n // Force an update, possibly with origin centered at this camera\n // to yield the best quality output.\n const originToWorld = forceOrigin\n ? this.viewToWorld\n : this.spark.matrixWorld;\n const updated = this.spark.updateInternal({ scene, originToWorld });\n if (updated) {\n break;\n }\n // A bit of a hack, but try again. We shouldn't be starved for long.\n await new Promise((resolve) => setTimeout(resolve, 10));\n }\n\n const accumulator = this.spark.active;\n // Hold reference to accumulator while sorting\n accumulator.refCount += 1;\n await this.sortUpdate({ accumulator, viewToWorld: this.viewToWorld });\n // Release accumulator reference\n this.spark.releaseAccumulator(accumulator);\n }\n\n // Render out the viewpoint to the view target RGBA buffer.\n // Swaps buffers if doubleBuffer: true was set.\n // Calls onTextureUpdated(texture) with the resulting texture.\n renderTarget({\n scene,\n camera,\n }: { scene: THREE.Scene; camera?: THREE.Camera }) {\n const target = this.back ?? this.target;\n if (!target) {\n throw new Error(\"Must initialize SparkViewpoint with target\");\n }\n\n camera = camera ?? this.camera;\n if (!camera) {\n throw new Error(\"Must provide camera\");\n }\n if (camera instanceof THREE.PerspectiveCamera) {\n const newCam = new THREE.PerspectiveCamera().copy(camera, false);\n newCam.aspect = target.width / target.height;\n newCam.updateProjectionMatrix();\n camera = newCam;\n }\n this.viewToWorld = camera.matrixWorld.clone();\n\n const previousTarget = this.spark.renderer.getRenderTarget();\n try {\n this.spark.renderer.setRenderTarget(target);\n this.spark.prepareViewpoint(this);\n\n this.spark.renderer.render(scene, camera);\n } finally {\n this.spark.prepareViewpoint(this.spark.defaultView);\n this.spark.renderer.setRenderTarget(previousTarget);\n }\n\n if (target !== this.target) {\n // Swap back buffer and target\n [this.target, this.back] = [this.back, this.target];\n }\n this.onTextureUpdated?.(target.texture);\n }\n\n // Read back the previously rendered target image as a Uint8Array of packed\n // RGBA values (in that order). If superXY was set greater than 1 then\n // downsampling is performed in the target pixel array with simple averaging\n // to derive the returned pixel values. Subsequent calls to this.readTarget()\n // will reuse the same buffers to minimize memory allocations.\n async readTarget(): Promise {\n if (!this.target) {\n throw new Error(\"Must initialize SparkViewpoint with target\");\n }\n const { width, height } = this.target;\n const byteSize = width * height * 4;\n if (!this.superPixels || this.superPixels.length < byteSize) {\n this.superPixels = new Uint8Array(byteSize);\n }\n await this.spark.renderer.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n width,\n height,\n this.superPixels,\n );\n\n const { superXY } = this;\n if (superXY === 1) {\n return this.superPixels;\n }\n\n const subWidth = width / superXY;\n const subHeight = height / superXY;\n const subSize = subWidth * subHeight * 4;\n if (!this.pixels || this.pixels.length < subSize) {\n this.pixels = new Uint8Array(subSize);\n }\n\n const { superPixels, pixels } = this;\n const super2 = superXY * superXY;\n for (let y = 0; y < subHeight; y++) {\n const row = y * subWidth;\n for (let x = 0; x < subWidth; x++) {\n const superCol = x * superXY;\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n for (let sy = 0; sy < superXY; sy++) {\n const superRow = (y * superXY + sy) * this.target.width;\n for (let sx = 0; sx < superXY; sx++) {\n const superIndex = (superRow + superCol + sx) * 4;\n r += superPixels[superIndex];\n g += superPixels[superIndex + 1];\n b += superPixels[superIndex + 2];\n a += superPixels[superIndex + 3];\n }\n }\n const pixelIndex = (row + x) * 4;\n pixels[pixelIndex] = r / super2;\n pixels[pixelIndex + 1] = g / super2;\n pixels[pixelIndex + 2] = b / super2;\n pixels[pixelIndex + 3] = a / super2;\n }\n }\n return pixels;\n }\n\n // Render out a viewpoint as a Uint8Array of RGBA values for the provided scene\n // and any camera/viewToWorld viewpoint overrides. By default update is true,\n // which triggers its SparkRenderer to check and potentially update the Gsplats.\n // Setting update to false disables this and sorts the Gsplats as they are.\n // Setting forceOrigin (default: false) to true forces the view update to\n // recalculate the splats with this view origin, potentially altering any\n // view-dependent effects. If you expect view-dependent effects to play a role\n // in the rendering quality, enable this.\n //\n // Underneath, prepareRenderPixels() simply calls await this.prepare(...),\n // this.renderTarget(...), and finally returns the result this.readTarget(),\n // a Promise to a Uint8Array with RGBA values for all the pixels (potentially\n // downsampled if the superXY parameter was used). These steps can also be called\n // manually, for example if you need to alter the scene before and after\n // this.renderTarget(...) to hide UI elements from being rendered.\n async prepareRenderPixels({\n scene,\n camera,\n viewToWorld,\n update,\n forceOrigin,\n }: {\n scene: THREE.Scene;\n camera?: THREE.Camera;\n viewToWorld?: THREE.Matrix4;\n update?: boolean;\n forceOrigin?: boolean;\n }) {\n await this.prepare({ scene, camera, viewToWorld, update, forceOrigin });\n this.renderTarget({ scene, camera });\n return this.readTarget();\n }\n\n // This is called automatically by SparkRenderer, there is no need to call it!\n // The method cannot be private because then SparkRenderer would\n // not be able to call it.\n autoPoll({ accumulator }: { accumulator?: OldSplatAccumulator }) {\n if (this.camera) {\n this.camera.updateMatrixWorld();\n this.viewToWorld = this.camera.matrixWorld.clone();\n }\n\n let needsSort = false;\n let displayed = false;\n\n if (!this.display) {\n // Need to do first sort\n needsSort = true;\n } else if (accumulator) {\n needsSort = true;\n const { mappingVersion } = this.display.accumulator;\n if (accumulator.mappingVersion === mappingVersion) {\n // Splat mapping has not changed, so reuse the existing sorted\n // geometry to show updates faster. We will still fire off\n // a re-sort if necessary. First release old accumulator.\n accumulator.refCount += 1;\n this.spark.releaseAccumulator(this.display.accumulator);\n this.display.accumulator = accumulator;\n this.display.viewToWorld.copy(this.viewToWorld);\n displayed = true;\n\n if (this.spark.viewpoint === this) {\n this.spark.prepareViewpoint(this);\n }\n }\n }\n\n const latestView = this.sorting?.viewToWorld ?? this.display?.viewToWorld;\n if (\n latestView &&\n !withinCoorientDist({\n matrix1: this.viewToWorld,\n matrix2: latestView,\n // By default update sort each 1 cm\n maxDistance: this.sortDistance ?? 0.01,\n // By default for radial sort, update for intermittent movement so that\n // we bring back splats culled by being behind the camera.\n // For depth sort, small rotations can change sort order a lot, so\n // update sort for even small rotations.\n minCoorient: (this.sortCoorient ?? this.sortRadial) ? 0.99 : 0.999,\n })\n ) {\n needsSort = true;\n }\n\n if (!needsSort) {\n // Stop here, no sort necessary\n return;\n }\n\n if (accumulator) {\n // Hold a reference to the accumulator for sorting\n accumulator.refCount += 1;\n }\n\n if (this.pending?.accumulator) {\n this.spark.releaseAccumulator(this.pending.accumulator);\n }\n this.pending = { accumulator, viewToWorld: this.viewToWorld, displayed };\n\n // Don't await this, just trigger the sort if necessary\n this.driveSort();\n }\n\n private async driveSort() {\n while (true) {\n if (this.sorting || !this.pending) {\n return; // Sort already in process or nothing to sort\n }\n\n const { viewToWorld, displayed } = this.pending;\n let accumulator = this.pending.accumulator;\n if (!accumulator) {\n // Hold a reference to the accumulator while sorting\n accumulator = this.display?.accumulator ?? this.spark.active;\n accumulator.refCount += 1;\n }\n this.pending = null;\n if (!accumulator) {\n throw new Error(\"No accumulator to sort\");\n }\n\n this.sorting = { viewToWorld };\n await this.sortUpdate({ accumulator, viewToWorld, displayed });\n this.sorting = null;\n\n // Release the reference to the accumulator\n this.spark.releaseAccumulator(accumulator);\n\n // Continue in loop with any queued sort\n }\n }\n\n private async sortUpdate({\n accumulator,\n viewToWorld,\n displayed = false,\n }: {\n accumulator?: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n displayed?: boolean;\n }) {\n if (this.sortingCheck) {\n throw new Error(\"Only one sort at a time\");\n }\n this.sortingCheck = true;\n\n accumulator = accumulator ?? this.spark.active;\n const { numSplats, maxSplats } = accumulator.splats;\n let activeSplats = 0;\n let ordering = this.orderingFreelist.alloc(maxSplats);\n\n if (this.stochastic) {\n activeSplats = numSplats;\n // Render all splats in order since the Z-buffer\n // will handle ordering.\n for (let i = 0; i < numSplats; ++i) {\n ordering[i] = i;\n }\n } else if (numSplats > 0) {\n const {\n reader,\n doubleSortReader,\n sort32Reader,\n dynoSortRadial,\n dynoOrigin,\n dynoDirection,\n dynoDepthBias,\n dynoSort360,\n dynoSplats,\n } = OldSparkViewpoint.makeSorter();\n const sort32 = this.sort32 ?? false;\n let readback: Uint16Array | Uint32Array;\n if (sort32) {\n this.readback32 = reader.ensureBuffer(maxSplats, this.readback32);\n readback = this.readback32;\n } else {\n const halfMaxSplats = Math.ceil(maxSplats / 2);\n this.readback16 = reader.ensureBuffer(halfMaxSplats, this.readback16);\n readback = this.readback16;\n }\n\n const worldToOrigin = accumulator.toWorld.clone().invert();\n const viewToOrigin = viewToWorld.clone().premultiply(worldToOrigin);\n\n dynoSortRadial.value = this.sort360 ? true : this.sortRadial;\n dynoOrigin.value.set(0, 0, 0).applyMatrix4(viewToOrigin);\n dynoDirection.value\n .set(0, 0, -1)\n .applyMatrix4(viewToOrigin)\n .sub(dynoOrigin.value)\n .normalize();\n dynoDepthBias.value = this.depthBias ?? 1.0;\n dynoSort360.value = this.sort360 ?? false;\n dynoSplats.packedSplats = accumulator.splats;\n\n const sortReader = sort32 ? sort32Reader : doubleSortReader;\n const count = sort32 ? numSplats : Math.ceil(numSplats / 2);\n await reader.renderReadback({\n renderer: this.spark.renderer,\n reader: sortReader,\n count,\n readback,\n });\n\n const result = (await withWorker(async (worker) => {\n const rpcName = sort32 ? \"sort32Splats\" : \"sortDoubleSplats\";\n return worker.call(rpcName, {\n maxSplats,\n numSplats,\n readback,\n ordering,\n });\n })) as {\n readback: Uint16Array | Uint32Array;\n ordering: Uint32Array;\n activeSplats: number;\n };\n if (sort32) {\n this.readback32 = result.readback as Uint32Array;\n } else {\n this.readback16 = result.readback as Uint16Array;\n }\n ordering = result.ordering;\n activeSplats = result.activeSplats;\n }\n\n this.updateDisplay({\n accumulator,\n viewToWorld,\n ordering,\n activeSplats,\n displayed,\n });\n this.sortingCheck = false;\n }\n\n private updateDisplay({\n accumulator,\n viewToWorld,\n ordering,\n activeSplats,\n displayed = false,\n }: {\n accumulator: OldSplatAccumulator;\n viewToWorld: THREE.Matrix4;\n ordering: Uint32Array;\n activeSplats: number;\n displayed?: boolean;\n }) {\n if (!this.display) {\n // Hold a reference to the accumulator while part of display\n accumulator.refCount += 1;\n this.display = {\n accumulator,\n viewToWorld,\n geometry: new OldSplatGeometry(ordering, activeSplats),\n };\n } else {\n if (!displayed && accumulator !== this.display.accumulator) {\n // Hold a reference to the new accumulator being displayed\n accumulator.refCount += 1;\n // Release the reference to the previously displayed accumulator\n this.spark.releaseAccumulator(this.display.accumulator);\n this.display.accumulator = accumulator;\n }\n\n this.display.viewToWorld = viewToWorld;\n\n const oldOrdering = this.display.geometry.ordering;\n if (oldOrdering.length === ordering.length) {\n this.display.geometry.update(ordering, activeSplats);\n } else {\n this.display.geometry.dispose();\n // console.log(\"*** alloc SplatGeometry\", ordering.length);\n this.display.geometry = new OldSplatGeometry(ordering, activeSplats);\n }\n this.orderingFreelist.free(oldOrdering);\n }\n if (this.spark.viewpoint === this) {\n this.spark.prepareViewpoint(this);\n }\n }\n\n // If you need an empty THREE.Texture to use to initialize a uniform that is\n // updated via onTextureUpdated(texture), this static texture can be handy.\n static EMPTY_TEXTURE = new THREE.Texture();\n\n private static dynos: {\n dynoSortRadial: DynoBool;\n dynoOrigin: DynoVec3;\n dynoDirection: DynoVec3;\n dynoDepthBias: DynoFloat;\n dynoSort360: DynoBool;\n dynoSplats: DynoPackedSplats;\n reader: Readback;\n doubleSortReader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n sort32Reader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n } | null = null;\n\n private static makeSorter() {\n if (!OldSparkViewpoint.dynos) {\n const dynoSortRadial = new DynoBool({ value: true });\n const dynoOrigin = new DynoVec3({ value: new THREE.Vector3() });\n const dynoDirection = new DynoVec3({ value: new THREE.Vector3() });\n const dynoDepthBias = new DynoFloat({ value: 1.0 });\n const dynoSort360 = new DynoBool({ value: false });\n const dynoSplats = new DynoPackedSplats();\n\n const reader = new Readback();\n const doubleSortReader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"No index\");\n }\n const sortParams = {\n sortRadial: dynoSortRadial,\n sortOrigin: dynoOrigin,\n sortDirection: dynoDirection,\n sortDepthBias: dynoDepthBias,\n sort360: dynoSort360,\n };\n const index2 = mul(index, dynoConst(\"int\", 2));\n\n const gsplat0 = readPackedSplat(dynoSplats, index2);\n const metric0 = computeSortMetric({ gsplat: gsplat0, ...sortParams });\n\n const gsplat1 = readPackedSplat(\n dynoSplats,\n add(index2, dynoConst(\"int\", 1)),\n );\n const metric1 = computeSortMetric({ gsplat: gsplat1, ...sortParams });\n\n const combined = combine({\n vectorType: \"vec2\",\n x: metric0,\n y: metric1,\n });\n const rgba8 = uintToRgba8(packHalf2x16(combined));\n return { rgba8 };\n },\n );\n\n const sort32Reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"No index\");\n }\n const sortParams = {\n sortRadial: dynoSortRadial,\n sortOrigin: dynoOrigin,\n sortDirection: dynoDirection,\n sortDepthBias: dynoDepthBias,\n sort360: dynoSort360,\n };\n\n const gsplat = readPackedSplat(dynoSplats, index);\n const metric = computeSortMetric({ gsplat, ...sortParams });\n const rgba8 = uintToRgba8(floatBitsToUint(metric));\n return { rgba8 };\n },\n );\n\n OldSparkViewpoint.dynos = {\n dynoSortRadial,\n dynoOrigin,\n dynoDirection,\n dynoDepthBias,\n dynoSort360,\n dynoSplats,\n reader,\n doubleSortReader,\n sort32Reader,\n };\n }\n return OldSparkViewpoint.dynos;\n }\n}\n\nconst defineComputeSortMetric = unindent(`\n float computeSort(Gsplat gsplat, bool sortRadial, vec3 sortOrigin, vec3 sortDirection, float sortDepthBias, bool sort360) {\n if (!isGsplatActive(gsplat.flags)) {\n return INFINITY;\n }\n\n vec3 center = gsplat.center - sortOrigin;\n float biasedDepth = dot(center, sortDirection) + sortDepthBias;\n if (!sort360 && (biasedDepth <= 0.0)) {\n return INFINITY;\n }\n\n return sortRadial ? length(center) : biasedDepth;\n }\n`);\n\nfunction computeSortMetric({\n gsplat,\n sortRadial,\n sortOrigin,\n sortDirection,\n sortDepthBias,\n sort360,\n}: {\n gsplat: DynoVal;\n sortRadial: DynoVal<\"bool\">;\n sortOrigin: DynoVal<\"vec3\">;\n sortDirection: DynoVal<\"vec3\">;\n sortDepthBias: DynoVal<\"float\">;\n sort360: DynoVal<\"bool\">;\n}) {\n return dyno({\n inTypes: {\n gsplat: Gsplat,\n sortRadial: \"bool\",\n sortOrigin: \"vec3\",\n sortDirection: \"vec3\",\n sortDepthBias: \"float\",\n sort360: \"bool\",\n },\n outTypes: { metric: \"float\" },\n globals: () => [defineGsplat, defineComputeSortMetric],\n inputs: {\n gsplat,\n sortRadial,\n sortOrigin,\n sortDirection,\n sortDepthBias,\n sort360,\n },\n statements: ({ inputs, outputs }) => {\n const {\n gsplat,\n sortRadial,\n sortOrigin,\n sortDirection,\n sortDepthBias,\n sort360,\n } = inputs;\n return unindentLines(`\n ${outputs.metric} = computeSort(${gsplat}, ${sortRadial}, ${sortOrigin}, ${sortDirection}, ${sortDepthBias}, ${sort360});\n `);\n },\n }).outputs.metric;\n}\n","import * as THREE from \"three\";\n\nimport { PackedSplats } from \"./PackedSplats\";\nimport type { GeneratorMapping } from \"./SplatAccumulator\";\nimport type { SplatGenerator, SplatModifier } from \"./SplatGenerator\";\n\n// SplatAccumulator helps manage the generation of splats from multiple\n// SplatGenerators, keeping track of the splat mapping, coordinate system,\n// and reference count.\n\nexport class OldSplatAccumulator {\n splats = new PackedSplats();\n // The transform from Accumulator coordinate system to world coordinates.\n toWorld = new THREE.Matrix4();\n // An array of all Gsplat mappings that were used for generation\n mapping: GeneratorMapping[] = [];\n // Number of SparkViewpoints (or other) that reference this accumulator, used\n // to figure out when it can be recycled for use\n refCount = 0;\n\n // Incremented every time the splats are updated/generated.\n splatsVersion = -1;\n // Incremented every time the splat mapping/layout is updated.\n // Splat sort order can be reused between equivalent mapping versions.\n mappingVersion = -1;\n\n ensureGenerate(maxSplats: number) {\n if (this.splats.ensureGenerate(maxSplats)) {\n // If we had to resize our PackedSplats then clear all previous mappings\n this.mapping = [];\n }\n }\n\n // Generate all Gsplats from an array of generators\n generateSplats({\n renderer,\n modifier,\n generators,\n forceUpdate,\n originToWorld,\n }: {\n renderer: THREE.WebGLRenderer;\n modifier: SplatModifier;\n generators: GeneratorMapping[];\n forceUpdate?: boolean;\n originToWorld: THREE.Matrix4;\n }) {\n // Create a lookup from last SplatGenerator\n const mapping = this.mapping.reduce((map, record) => {\n map.set(record.node, record);\n return map;\n }, new Map());\n\n // Run generators that are different from existing mapping\n let updated = 0;\n let numSplats = 0;\n for (const { node, generator, version, base, count } of generators) {\n const current = mapping.get(node);\n if (\n forceUpdate ||\n generator !== current?.generator ||\n version !== current?.version ||\n base !== current?.base ||\n count !== current?.count\n ) {\n // Something is different from before so we should generate these Gsplats\n if (generator && count > 0) {\n const modGenerator = modifier.apply(generator);\n try {\n this.splats.generate({\n generator: modGenerator,\n base,\n count,\n renderer,\n });\n } catch (error) {\n node.generator = undefined;\n node.generatorError = error;\n }\n updated += 1;\n }\n }\n numSplats = Math.max(numSplats, base + count);\n }\n\n this.splats.numSplats = numSplats;\n this.toWorld.copy(originToWorld);\n this.mapping = generators;\n return updated !== 0;\n }\n\n // Check if this accumulator has exactly the same generator mapping as\n // the previous one. If so, we can reuse the Gsplat sort order.\n hasCorrespondence(other: OldSplatAccumulator) {\n if (this.mapping.length !== other.mapping.length) {\n return false;\n }\n return this.mapping.every(({ node, base, count }, i) => {\n const {\n node: otherNode,\n base: otherBase,\n count: otherCount,\n } = other.mapping[i];\n return node === otherNode && base === otherBase && count === otherCount;\n });\n }\n}\n","import * as THREE from \"three\";\n\nimport {\n OldSparkViewpoint,\n type OldSparkViewpointOptions,\n} from \"./OldSparkViewpoint\";\nimport { OldSplatAccumulator } from \"./OldSplatAccumulator\";\nimport { OldSplatGeometry } from \"./OldSplatGeometry\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { RgbaArray } from \"./RgbaArray\";\nimport type { GeneratorMapping } from \"./SplatAccumulator\";\nimport { SplatEdit } from \"./SplatEdit\";\nimport { SplatGenerator, SplatModifier } from \"./SplatGenerator\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n type SplatEncoding,\n} from \"./defines\";\nimport {\n DynoVec3,\n DynoVec4,\n Gsplat,\n TPackedSplats,\n dynoBlock,\n readPackedSplat,\n transformGsplat,\n} from \"./dyno\";\nimport { getShaders } from \"./shaders\";\nimport {\n averagePositions,\n averageQuaternions,\n cloneClock,\n withinCoorientDist,\n} from \"./utils\";\n\n// SparkRenderer aggregates splats from multiple generators into a single\n// accumulated collection per frame. In normal operation we only need a\n// maximum of 3 accumulators: One currently being viewed, one currently\n// being sorted, and one more for generating the next frame. Accumulators\n// must be \"released\" by each viewpoint using it, so in unusual cases\n// such as slow render-outs, we may want to allow more than 3 so the\n// pipeline can continue generating new frames, but we limit to a maximum\n// of 5 to avoid excessive memory usage.\nconst MAX_ACCUMULATORS = 5;\n\nexport type OldSparkRendererOptions = {\n /**\n * Pass in your THREE.WebGLRenderer instance so Spark can perform work\n * outside the usual render loop. Should be created with antialias: false\n * (default setting) as WebGL anti-aliasing doesn't improve Gaussian Splatting\n * rendering and significantly reduces performance.\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Whether to use premultiplied alpha when accumulating splat RGB\n * @default true\n */\n premultipliedAlpha?: boolean;\n /**\n * Pass in a THREE.Clock to synchronize time-based effects across different\n * systems. Alternatively, you can set the SparkRenderer properties time and\n * deltaTime directly. (default: new THREE.Clock)\n */\n clock?: THREE.Clock;\n /**\n * Controls whether to check and automatically update Gsplat collection after\n * each frame render.\n * @default true\n */\n autoUpdate?: boolean;\n /**\n * Controls whether to update the Gsplats before or after rendering. For WebXR\n * this must be false in order to complete rendering as soon as possible.\n * @default false\n */\n preUpdate?: boolean;\n /**\n * Distance threshold for SparkRenderer movement triggering a Gsplat update at\n * the new origin.\n * @default 1.0\n */\n originDistance?: number;\n /**\n * Maximum standard deviations from the center to render Gaussians. Values\n * Math.sqrt(5)..Math.sqrt(8) produce good results and can be tweaked for\n * performance.\n * @default Math.sqrt(8)\n */\n maxStdDev?: number;\n /**\n * Minimum pixel radius for splat rendering.\n * @default 0.0\n */\n minPixelRadius?: number;\n /**\n * Maximum pixel radius for splat rendering.\n * @default 512.0\n */\n maxPixelRadius?: number;\n /**\n * Minimum alpha value for splat rendering.\n * @default 0.5 * (1.0 / 255.0)\n */\n minAlpha?: number;\n /**\n * Enable 2D Gaussian splatting rendering ability. When this mode is enabled,\n * any scale x/y/z component that is exactly 0 (minimum quantized value) results\n * in the other two non-0 axis being interpreted as an oriented 2D Gaussian Splat,\n * rather instead of the usual projected 3DGS Z-slice. When reading PLY files,\n * scale values less than e^-30 will be interpreted as 0.\n * @default false\n */\n enable2DGS?: boolean;\n /**\n * Scalar value to add to 2D splat covariance diagonal, effectively blurring +\n * enlarging splats. In scenes trained without the Gsplat anti-aliasing tweak\n * this value was typically 0.3, but with anti-aliasing it is 0.0\n * @default 0.0\n */\n preBlurAmount?: number;\n /**\n * Scalar value to add to 2D splat covarianve diagonal, with opacity adjustment\n * to correctly account for \"blurring\" when anti-aliasing. Typically 0.3\n * (equivalent to approx 0.5 pixel radius) in scenes trained with anti-aliasing.\n */\n blurAmount?: number;\n /**\n * Depth-of-field distance to focal plane\n */\n focalDistance?: number;\n /**\n * Full-width angle of aperture opening (in radians), 0.0 to disable\n * @default 0.0\n */\n apertureAngle?: number;\n /**\n * Modulate Gaussian kernel falloff. 0 means \"no falloff, flat shading\",\n * while 1 is the normal Gaussian kernel.\n * @default 1.0\n */\n falloff?: number;\n /**\n * X/Y clipping boundary factor for Gsplat centers against view frustum.\n * 1.0 clips any centers that are exactly out of bounds, while 1.4 clips\n * centers that are 40% beyond the bounds.\n * @default 1.4\n */\n clipXY?: number;\n /**\n * Parameter to adjust projected splat scale calculation to match other renderers,\n * similar to the same parameter in the MKellogg 3DGS renderer. Higher values will\n * tend to sharpen the splats. A value 2.0 can be used to match the behavior of\n * the PlayCanvas renderer.\n * @default 1.0\n */\n focalAdjustment?: number;\n /**\n * Configures the SparkViewpointOptions for the default SparkViewpoint\n * associated with this SparkRenderer. Notable option: sortRadial (sort by\n * radial distance or Z-depth)\n */\n view?: OldSparkViewpointOptions;\n /**\n * Override the default splat encoding ranges for the PackedSplats.\n * (default: undefined)\n */\n splatEncoding?: SplatEncoding;\n};\n\nexport class OldSparkRenderer extends THREE.Mesh {\n renderer: THREE.WebGLRenderer;\n premultipliedAlpha: boolean;\n material: THREE.ShaderMaterial;\n uniforms: ReturnType;\n\n autoUpdate: boolean;\n preUpdate: boolean;\n needsUpdate: boolean;\n originDistance: number;\n maxStdDev: number;\n minPixelRadius: number;\n maxPixelRadius: number;\n minAlpha: number;\n enable2DGS: boolean;\n preBlurAmount: number;\n blurAmount: number;\n focalDistance: number;\n apertureAngle: number;\n falloff: number;\n clipXY: number;\n focalAdjustment: number;\n splatEncoding: SplatEncoding;\n\n splatTexture: null | {\n enable?: boolean;\n texture?: THREE.Data3DTexture;\n multiply?: THREE.Matrix2;\n add?: THREE.Vector2;\n near?: number;\n far?: number;\n mid?: number;\n } = null;\n\n time?: number;\n deltaTime?: number;\n clock: THREE.Clock;\n\n // Latest Gsplat collection being displayed\n active: OldSplatAccumulator;\n // Free list of accumulators for reuse\n private freeAccumulators: OldSplatAccumulator[];\n // Total number of accumulators currently allocated\n private accumulatorCount: number;\n // Default SparkViewpoint used for rendering to the canvas\n defaultView: OldSparkViewpoint;\n // List of SparkViewpoints with autoUpdate enabled\n autoViewpoints: OldSparkViewpoint[] = [];\n\n // Dynos used to transform Gsplats to the accumulator coordinate system\n private rotateToAccumulator = new DynoVec4({ value: new THREE.Quaternion() });\n private translateToAccumulator = new DynoVec3({ value: new THREE.Vector3() });\n private modifier: SplatModifier;\n\n // Last rendered frame number so we know when we're rendering a new frame\n private lastFrame = -1;\n // Last update timestamp to compute deltaTime\n private lastUpdateTime: number | null = null;\n // List of cameras used for the current viewpoint (for WebXR)\n private defaultCameras: THREE.Matrix4[] = [];\n private lastStochastic: boolean | null = null;\n\n // Should be set to the defaultView, but can be temporarily changed to another\n // viewpoint using prepareViewpoint() for rendering from a different viewpoint.\n viewpoint: OldSparkViewpoint;\n\n // Holds data needed to perform a scheduled Gsplat update.\n private pendingUpdate = {\n scene: null as THREE.Scene | null,\n originToWorld: new THREE.Matrix4(),\n timeoutId: -1,\n };\n\n // Internal SparkViewpoint used for environment map rendering.\n private envViewpoint: OldSparkViewpoint | null = null;\n\n // Data and buffers used for environment map rendering\n private static cubeRender: {\n target: THREE.WebGLCubeRenderTarget;\n camera: THREE.CubeCamera;\n near: number;\n far: number;\n } | null = null;\n private static pmrem: THREE.PMREMGenerator | null = null;\n\n static EMPTY_SPLAT_TEXTURE = new THREE.Data3DTexture();\n\n constructor(options: OldSparkRendererOptions) {\n const uniforms = OldSparkRenderer.makeUniforms();\n const shaders = getShaders();\n const premultipliedAlpha = options.premultipliedAlpha ?? true;\n const material = new THREE.ShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: shaders.oldSplatVertex,\n fragmentShader: shaders.oldSplatFragment,\n uniforms,\n premultipliedAlpha,\n transparent: true,\n depthTest: true,\n depthWrite: false,\n side: THREE.DoubleSide,\n });\n\n super(EMPTY_GEOMETRY, material);\n // Disable frustum culling because we want to always draw them all\n // and cull Gsplats individually in the shader\n this.frustumCulled = false;\n\n this.renderer = options.renderer;\n this.material = material;\n this.uniforms = uniforms;\n\n // Create a Gsplat modifier that takes the output of any SplatGenerator\n // and transforms them into the accumulator's coordinate system\n const modifier = dynoBlock(\n { gsplat: Gsplat },\n { gsplat: Gsplat },\n ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"gsplat not defined\");\n }\n gsplat = transformGsplat(gsplat, {\n rotate: this.rotateToAccumulator,\n translate: this.translateToAccumulator,\n });\n return { gsplat };\n },\n );\n this.modifier = new SplatModifier(modifier);\n\n this.premultipliedAlpha = premultipliedAlpha;\n this.autoUpdate = options.autoUpdate ?? true;\n this.preUpdate = options.preUpdate ?? false;\n this.needsUpdate = false;\n this.originDistance = options.originDistance ?? 1;\n this.maxStdDev = options.maxStdDev ?? Math.sqrt(8.0);\n this.minPixelRadius = options.minPixelRadius ?? 0.0;\n this.maxPixelRadius = options.maxPixelRadius ?? 512.0;\n this.minAlpha = options.minAlpha ?? 0.5 * (1.0 / 255.0);\n this.enable2DGS = options.enable2DGS ?? false;\n this.preBlurAmount = options.preBlurAmount ?? 0.0;\n this.blurAmount = options.blurAmount ?? 0.3;\n this.focalDistance = options.focalDistance ?? 0.0;\n this.apertureAngle = options.apertureAngle ?? 0.0;\n this.falloff = options.falloff ?? 1.0;\n this.clipXY = options.clipXY ?? 1.4;\n this.focalAdjustment = options.focalAdjustment ?? 1.0;\n this.splatEncoding = options.splatEncoding ?? { ...DEFAULT_SPLAT_ENCODING };\n\n this.active = new OldSplatAccumulator();\n this.active.refCount = 1;\n this.accumulatorCount = 1;\n this.freeAccumulators = [];\n // Start with the minimum of 2 total accumulators\n for (let count = 0; count < 1; ++count) {\n this.freeAccumulators.push(new OldSplatAccumulator());\n this.accumulatorCount += 1;\n }\n\n // Create a default SparkViewpoint that is used when we call render()\n // on the scene and has the sorted Gsplat collection from that viewpoint.\n this.defaultView = new OldSparkViewpoint({\n ...options.view,\n autoUpdate: true,\n spark: this,\n });\n this.viewpoint = this.defaultView;\n this.prepareViewpoint(this.viewpoint);\n\n this.clock = options.clock ? cloneClock(options.clock) : new THREE.Clock();\n }\n\n static makeUniforms() {\n // Create uniforms used for Gsplat vertex and fragment shaders\n const uniforms = {\n // Size of render viewport in pixels\n renderSize: { value: new THREE.Vector2() },\n // Near and far plane distances\n near: { value: 0.1 },\n far: { value: 1000.0 },\n // Total number of Gsplats in packedSplats to render\n numSplats: { value: 0 },\n // SplatAccumulator to view transformation quaternion\n renderToViewQuat: { value: new THREE.Quaternion() },\n // SplatAccumulator to view transformation translation\n renderToViewPos: { value: new THREE.Vector3() },\n // Maximum distance (in stddevs) from Gsplat center to render\n maxStdDev: { value: 1.0 },\n // Minimum pixel radius for splat rendering\n minPixelRadius: { value: 0.0 },\n // Maximum pixel radius for splat rendering\n maxPixelRadius: { value: 512.0 },\n // Minimum alpha value for splat rendering\n minAlpha: { value: 0.5 * (1.0 / 255.0) },\n // Enable stochastic splat rendering\n stochastic: { value: false },\n // Enable interpreting 0-thickness Gsplats as 2DGS\n enable2DGS: { value: false },\n // Add to projected 2D splat covariance diagonal (thickens and brightens)\n preBlurAmount: { value: 0.0 },\n // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing)\n blurAmount: { value: 0.3 },\n // Depth-of-field distance to focal plane\n focalDistance: { value: 0.0 },\n // Full-width angle of aperture opening (in radians)\n apertureAngle: { value: 0.0 },\n // Modulate Gaussian kernal falloff. 0 means \"no falloff, flat shading\",\n // 1 is normal e^-x^2 falloff.\n falloff: { value: 1.0 },\n // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds\n clipXY: { value: 1.4 },\n // Debug renderSize scale factor\n focalAdjustment: { value: 1.0 },\n // Enable splat texture rendering\n splatTexEnable: { value: false },\n // Splat texture to render\n splatTexture: { type: \"t\", value: OldSparkRenderer.EMPTY_SPLAT_TEXTURE },\n // Splat texture UV transform (multiply)\n splatTexMul: { value: new THREE.Matrix2() },\n // Splat texture UV transform (add)\n splatTexAdd: { value: new THREE.Vector2() },\n // Splat texture near plane distance\n splatTexNear: { value: 0.1 },\n // Splat texture far plane distance\n splatTexFar: { value: 1000.0 },\n // Splat texture mid plane distance, or 0.0 to disable\n splatTexMid: { value: 0.0 },\n // Gsplat collection to render\n packedSplats: { type: \"t\", value: PackedSplats.getEmptyArray },\n // Splat encoding ranges\n rgbMinMaxLnScaleMinMax: { value: new THREE.Vector4() },\n // Time in seconds for time-based effects\n time: { value: 0 },\n // Delta time in seconds since last frame\n deltaTime: { value: 0 },\n // Whether to encode Gsplat with linear RGB (for environment mapping)\n encodeLinear: { value: false },\n // Debug flag that alternates each frame\n debugFlag: { value: false },\n };\n return uniforms;\n }\n\n private canAllocAccumulator(): boolean {\n // Returns true if can allocate an accumulator immediately\n return (\n this.freeAccumulators.length > 0 ||\n this.accumulatorCount < MAX_ACCUMULATORS\n );\n }\n\n private maybeAllocAccumulator(): OldSplatAccumulator | null {\n // Allocate an accumulator immediately if possible, else return null\n let accumulator = this.freeAccumulators.pop();\n if (accumulator === undefined) {\n if (this.accumulatorCount >= MAX_ACCUMULATORS) {\n return null;\n }\n accumulator = new OldSplatAccumulator();\n this.accumulatorCount += 1;\n }\n accumulator.refCount = 1;\n return accumulator;\n }\n\n releaseAccumulator(accumulator: OldSplatAccumulator) {\n // Decrement reference count and recycle if no longer in use\n accumulator.refCount -= 1;\n if (accumulator.refCount === 0) {\n this.freeAccumulators.push(accumulator);\n }\n }\n\n newViewpoint(options: OldSparkViewpointOptions) {\n // Create a new SparkViewpoint for this SparkRenderer.\n // Note that every SparkRenderer has an initial spark.defaultView: SparkViewpoint\n // from construction, which is used for the default canvas render loop.\n // Calling this method allows you to create additional viewpoints, which can be\n // updated automatically each frame (performing Gsplat sorting every time there\n // is an update), or updated on-demand for controlled rendering for video render\n // or similar applications.\n return new OldSparkViewpoint({ ...options, spark: this });\n }\n\n onBeforeRender(\n renderer: THREE.WebGLRenderer,\n scene: THREE.Scene,\n camera: THREE.Camera,\n ) {\n // throw new Error(\"onBeforeRender disabled in SparkRenderer\");\n\n // Called by Three.js before rendering this SparkRenderer.\n // At this point we can't modify the geometry or material, all these must\n // be set in the scene already before this is called. Update the uniforms\n // to render the Gsplats from the current active viewpoint.\n const time = this.time ?? this.clock.getElapsedTime();\n const deltaTime = time - (this.viewpoint.lastTime ?? time);\n this.viewpoint.lastTime = time;\n\n const frame = renderer.info.render.frame;\n const isNewFrame = frame !== this.lastFrame;\n this.lastFrame = frame;\n\n const viewpoint = this.viewpoint;\n if (viewpoint === this.defaultView) {\n // When rendering is triggered on the default viewpoint,\n // perform automatic updates.\n if (isNewFrame) {\n if (!renderer.xr.isPresenting) {\n // Non-WebXR mode, just a single camera\n this.defaultView.viewToWorld = camera.matrixWorld.clone();\n this.defaultCameras = [this.defaultView.viewToWorld];\n } else {\n // In WebXR mode we are called multiple times, once for each eye,\n // so use their average to compute the sort center.\n const cameras = renderer.xr.getCamera().cameras;\n this.defaultCameras = cameras.map((camera) => camera.matrixWorld);\n this.defaultView.viewToWorld =\n averageOriginToWorlds(this.defaultCameras) ?? new THREE.Matrix4();\n }\n }\n\n if (this.autoUpdate) {\n this.update({ scene, viewToWorld: this.defaultView.viewToWorld });\n }\n }\n\n // Update uniforms for rendering\n\n if (isNewFrame) {\n // Keep these uniforms the same for both eyes if in WebXR\n if (this.material.premultipliedAlpha !== this.premultipliedAlpha) {\n this.material.premultipliedAlpha = this.premultipliedAlpha;\n this.material.needsUpdate = true;\n }\n this.uniforms.time.value = time;\n this.uniforms.deltaTime.value = deltaTime;\n // Alternating debug flag that can aid in visual debugging\n this.uniforms.debugFlag.value = (performance.now() / 1000.0) % 2.0 < 1.0;\n\n if (viewpoint.display && viewpoint.stochastic) {\n (this.geometry as OldSplatGeometry).instanceCount =\n this.uniforms.numSplats.value;\n }\n }\n\n if (viewpoint.target) {\n // Rendering to a texture target, so its dimensions\n this.uniforms.renderSize.value.set(\n viewpoint.target.width,\n viewpoint.target.height,\n );\n } else {\n // Rendering to the canvas or WebXR\n const renderSize = renderer.getDrawingBufferSize(\n this.uniforms.renderSize.value,\n );\n if (renderSize.x === 1 && renderSize.y === 1) {\n // WebXR mode on Apple Vision Pro returns 1x1 when presenting.\n // Use a different means to figure out the render size.\n const baseLayer = renderer.xr.getSession()?.renderState.baseLayer;\n if (baseLayer) {\n renderSize.x = baseLayer.framebufferWidth;\n renderSize.y = baseLayer.framebufferHeight;\n }\n }\n }\n\n // Update uniforms from instance properties\n const typedCamera = camera as\n | THREE.PerspectiveCamera\n | THREE.OrthographicCamera;\n this.uniforms.near.value = typedCamera.near;\n this.uniforms.far.value = typedCamera.far;\n this.uniforms.encodeLinear.value = viewpoint.encodeLinear;\n this.uniforms.maxStdDev.value = this.maxStdDev;\n this.uniforms.minPixelRadius.value = this.minPixelRadius;\n this.uniforms.maxPixelRadius.value = this.maxPixelRadius;\n this.uniforms.minAlpha.value = this.minAlpha;\n this.uniforms.stochastic.value = viewpoint.stochastic;\n this.uniforms.enable2DGS.value = this.enable2DGS;\n this.uniforms.preBlurAmount.value = this.preBlurAmount;\n this.uniforms.blurAmount.value = this.blurAmount;\n this.uniforms.focalDistance.value = this.focalDistance;\n this.uniforms.apertureAngle.value = this.apertureAngle;\n this.uniforms.falloff.value = this.falloff;\n this.uniforms.clipXY.value = this.clipXY;\n this.uniforms.focalAdjustment.value = this.focalAdjustment;\n\n if (this.lastStochastic !== !viewpoint.stochastic) {\n this.lastStochastic = !viewpoint.stochastic;\n this.material.transparent = !viewpoint.stochastic;\n this.material.depthWrite = viewpoint.stochastic;\n this.material.needsUpdate = true;\n }\n\n if (this.splatTexture) {\n const { enable, texture, multiply, add, near, far, mid } =\n this.splatTexture;\n if (enable && texture) {\n this.uniforms.splatTexEnable.value = true;\n this.uniforms.splatTexture.value = texture;\n if (multiply) {\n this.uniforms.splatTexMul.value.fromArray(multiply.elements);\n } else {\n this.uniforms.splatTexMul.value.set(\n 0.5 / this.maxStdDev,\n 0,\n 0,\n 0.5 / this.maxStdDev,\n );\n }\n this.uniforms.splatTexAdd.value.set(add?.x ?? 0.5, add?.y ?? 0.5);\n this.uniforms.splatTexNear.value = near ?? this.uniforms.near.value;\n this.uniforms.splatTexFar.value = far ?? this.uniforms.far.value;\n this.uniforms.splatTexMid.value = mid ?? 0.0;\n } else {\n this.uniforms.splatTexEnable.value = false;\n this.uniforms.splatTexture.value = OldSparkRenderer.EMPTY_SPLAT_TEXTURE;\n }\n } else {\n this.uniforms.splatTexEnable.value = false;\n this.uniforms.splatTexture.value = OldSparkRenderer.EMPTY_SPLAT_TEXTURE;\n }\n\n // Calculate the transform from the accumulator to the current camera\n const accumToWorld =\n viewpoint.display?.accumulator.toWorld ?? new THREE.Matrix4();\n const worldToCamera = camera.matrixWorld.clone().invert();\n const originToCamera = accumToWorld.clone().premultiply(worldToCamera);\n originToCamera.decompose(\n this.uniforms.renderToViewPos.value,\n this.uniforms.renderToViewQuat.value,\n new THREE.Vector3(),\n );\n }\n\n // Update the uniforms for the given viewpoint.\n // Note that the client expects to be able to call render() at any point\n // to update the canvas, so we must switch the viewpoint back to\n // defaultView when we're finished.\n prepareViewpoint(viewpoint?: OldSparkViewpoint) {\n this.viewpoint = viewpoint ?? this.viewpoint;\n\n if (this.viewpoint.display) {\n const { accumulator, geometry } = this.viewpoint.display;\n this.uniforms.numSplats.value = accumulator.splats.numSplats;\n this.uniforms.packedSplats.value = accumulator.splats.getTexture();\n this.uniforms.rgbMinMaxLnScaleMinMax.value.set(\n accumulator.splats.splatEncoding?.rgbMin ?? 0.0,\n accumulator.splats.splatEncoding?.rgbMax ?? 1.0,\n accumulator.splats.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n accumulator.splats.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n this.geometry = geometry;\n this.material.transparent = !this.viewpoint.stochastic;\n this.material.depthWrite = this.viewpoint.stochastic;\n this.material.needsUpdate = true;\n } else {\n // No Gsplats to display for this viewpoint yet\n this.uniforms.numSplats.value = 0;\n this.uniforms.packedSplats.value = PackedSplats.getEmptyArray;\n this.geometry = EMPTY_GEOMETRY;\n }\n }\n\n // If spark.autoUpdate is false then you must manually call\n // spark.update({ scene }) to have the scene Gsplats be re-generated.\n update({\n scene,\n viewToWorld,\n }: { scene: THREE.Scene; viewToWorld?: THREE.Matrix4 }) {\n // Compute the transform for the SparkRenderer to use as origin\n // for Gsplat generation and accumulation.\n const originToWorld = this.matrixWorld;\n\n // Either do the update now, or in the next \"tick\" depending on preUpdate\n if (this.preUpdate) {\n this.updateInternal({\n scene,\n originToWorld: originToWorld.clone(),\n viewToWorld,\n });\n } else {\n // Pass the update parameters to be performed on the next tick\n this.pendingUpdate.scene = scene;\n this.pendingUpdate.originToWorld.copy(originToWorld);\n\n // Schedule a timeout if there isn't one already\n if (this.pendingUpdate.timeoutId === -1) {\n this.pendingUpdate.timeoutId = setTimeout(() => {\n const { scene, originToWorld } = this.pendingUpdate;\n this.pendingUpdate.scene = null;\n this.pendingUpdate.timeoutId = -1;\n const updated = this.updateInternal({\n scene: scene as THREE.Scene,\n originToWorld,\n viewToWorld,\n });\n\n if (updated) {\n // Flush to encourage eager execution\n const gl = this.renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n }, 1);\n }\n }\n }\n\n updateInternal({\n scene,\n originToWorld,\n viewToWorld,\n }: {\n scene: THREE.Scene;\n originToWorld?: THREE.Matrix4;\n viewToWorld?: THREE.Matrix4;\n }): boolean {\n if (!this.canAllocAccumulator()) {\n // We don't have any available accumulators because of sorting\n // back pressure, so don't update this time but try again next time.\n // Signal update not attempted.\n return false;\n }\n\n // Figure out the frame of the SparkRenderer and current view\n if (!originToWorld) {\n originToWorld = this.active.toWorld;\n }\n viewToWorld = viewToWorld ?? originToWorld.clone();\n\n const time = this.time ?? this.clock.getElapsedTime();\n const deltaTime = time - (this.lastUpdateTime ?? time);\n this.lastUpdateTime = time;\n\n // Create a lookup from last active SplatGenerator to Gsplat mapping record\n const activeMapping = this.active.mapping.reduce((map, record) => {\n map.set(record.node, record);\n return map;\n }, new Map());\n\n // Traverse visible scene to find all SplatGenerators and global SplatEdits\n const { generators, visibleGenerators, globalEdits } =\n this.compileScene(scene);\n\n // Let all SplatGenerators run their frameUpdate() method\n for (const object of generators) {\n object.frameUpdate?.({\n renderer: this.renderer,\n object,\n time,\n deltaTime,\n viewToWorld,\n globalEdits,\n });\n }\n\n const visibleGenHash = new Set(visibleGenerators.map((g) => g.uuid));\n\n // Make sure we have new version numbers for any objects with either\n // generator or numSplats that have changed since the last frame.\n for (const object of generators) {\n const current = activeMapping.get(object);\n const isVisible = object.generator && visibleGenHash.has(object.uuid);\n const numSplats = isVisible ? object.numSplats : 0;\n if (\n this.needsUpdate ||\n object.generator !== current?.generator ||\n numSplats !== current?.count\n ) {\n object.updateVersion();\n }\n }\n\n // Check if the origin is within the maximum allowed distance before\n // we trigger an update.\n const originUpdate = !withinCoorientDist({\n matrix1: originToWorld,\n matrix2: this.active.toWorld,\n maxDistance: this.originDistance,\n });\n\n // Check if we need any update at all\n const needsUpdate =\n this.needsUpdate ||\n originUpdate ||\n generators.length !== activeMapping.size ||\n generators.some((g) => g.version !== activeMapping.get(g)?.version);\n this.needsUpdate = false;\n\n let accumulator: OldSplatAccumulator | null = null;\n if (needsUpdate) {\n // Need to update, so allocate an accumulator\n accumulator = this.maybeAllocAccumulator();\n if (!accumulator) {\n // This should never happen since we checked canAllocAccumulator() above\n throw new Error(\"Unreachable\");\n }\n\n // Compute whether our view frame has changed enough to warrant\n // doing a Gsplat sort. Check both distance epsilon and\n // minimum co-orientation (dot product of quaternions)\n const originChanged = !withinCoorientDist({\n matrix1: originToWorld,\n matrix2: accumulator.toWorld,\n maxDistance: 0.00001,\n minCoorient: 0.99999,\n });\n\n // Compute an ordering of the generators with the rough goal\n // of keeping unchanging generators near the front to minimize\n // the number of Gsplats that need to be regenerated.\n const sorted = visibleGenerators\n .map((g, gIndex): [number, number, SplatGenerator] => {\n const lastGen = activeMapping.get(g);\n // If no previous generator, sort by absolute version, which will\n // tend to push frequently updated generators toward the end\n return !lastGen\n ? [Number.POSITIVE_INFINITY, g.version, g]\n : // Sort by version deltas then by previous ordering in the mapping,\n // attempting to keep unchanging generators near the front\n // to improve our chances of avoiding a re-generation.\n [g.version - lastGen.version, lastGen.base, g];\n })\n .sort((a, b) => {\n // Sort by first then second element of the tuple\n if (a[0] !== b[0]) {\n return a[0] - b[0];\n }\n return a[1] - b[1];\n });\n const genOrder = sorted.map(([_version, _seq, g]) => g);\n\n // Compute sequential layout of generated splats\n const splatCounts = genOrder.map((g) => g.numSplats);\n const { maxSplats, mapping } =\n accumulator.splats.generateMapping(splatCounts);\n const newGenerators = genOrder.map((node, gIndex) => {\n const { base, count } = mapping[gIndex];\n return {\n node,\n generator: node.generator,\n version: node.version,\n base,\n count,\n };\n });\n\n // Compute worldToAccumulator origin transform (no scale)\n originToWorld\n .clone()\n .invert()\n .decompose(\n this.translateToAccumulator.value,\n this.rotateToAccumulator.value,\n new THREE.Vector3(),\n );\n\n // Generate the Gsplats according to the mapping that need updating\n accumulator.ensureGenerate(maxSplats);\n accumulator.splats.splatEncoding = { ...this.splatEncoding };\n const generated = accumulator.generateSplats({\n renderer: this.renderer,\n modifier: this.modifier,\n generators: newGenerators,\n forceUpdate: originChanged,\n originToWorld,\n });\n\n // Update splat version number\n accumulator.splatsVersion = this.active.splatsVersion + 1;\n // Increment the mapping version if the mapping isn't identical to before\n const hasCorrespondence = accumulator.hasCorrespondence(this.active);\n accumulator.mappingVersion =\n this.active.mappingVersion + (hasCorrespondence ? 0 : 1);\n\n // Release the old accumulator and make the new one active\n this.releaseAccumulator(this.active);\n this.active = accumulator;\n this.prepareViewpoint();\n }\n\n // Let the system breath before potentially triggering sorts\n setTimeout(() => {\n // Notify all auto-updating viewpoints that we updated the Gsplats\n for (const view of this.autoViewpoints) {\n view.autoPoll({ accumulator: accumulator ?? undefined });\n }\n }, 1);\n\n // Signal update was performed\n return true;\n }\n\n private compileScene(scene: THREE.Scene): {\n generators: SplatGenerator[];\n visibleGenerators: SplatGenerator[];\n globalEdits: SplatEdit[];\n } {\n // Take a snapshot of the SplatGenerators and SplatEdits in the scene\n // to be used to run an update.\n const generators: SplatGenerator[] = [];\n // Collect all SplatGenerators, even if not visible, because we want to\n // be able to call their update functions every frame.\n scene.traverse((node) => {\n if (node instanceof SplatGenerator) {\n generators.push(node);\n }\n });\n\n const visibleGenerators: SplatGenerator[] = [];\n scene.traverseVisible((node) => {\n if (node instanceof SplatGenerator) {\n visibleGenerators.push(node);\n }\n });\n\n const globalEdits = new Set();\n scene.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n let ancestor = node.parent;\n while (ancestor != null && !(ancestor instanceof SplatMesh)) {\n ancestor = ancestor.parent;\n }\n if (ancestor == null) {\n // Not part of a SplatMesh so it's a global edit\n globalEdits.add(node);\n }\n }\n });\n return {\n generators,\n visibleGenerators,\n globalEdits: Array.from(globalEdits),\n };\n }\n\n // Renders out the scene to an environment map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces,\n // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture\n // that can assigned directly to a THREE.MeshStandardMaterial.envMap property.\n async renderEnvMap({\n renderer,\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = false,\n }: {\n renderer?: THREE.WebGLRenderer;\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects?: THREE.Object3D[];\n update?: boolean;\n }): Promise {\n if (!this.envViewpoint) {\n this.envViewpoint = this.newViewpoint({ sort360: true });\n }\n if (\n !OldSparkRenderer.cubeRender ||\n OldSparkRenderer.cubeRender.target.width !== size ||\n OldSparkRenderer.cubeRender.near !== near ||\n OldSparkRenderer.cubeRender.far !== far\n ) {\n if (OldSparkRenderer.cubeRender) {\n OldSparkRenderer.cubeRender.target.dispose();\n }\n const target = new THREE.WebGLCubeRenderTarget(size, {\n format: THREE.RGBAFormat,\n generateMipmaps: true,\n minFilter: THREE.LinearMipMapLinearFilter,\n });\n const camera = new THREE.CubeCamera(near, far, target);\n OldSparkRenderer.cubeRender = { target, camera, near, far };\n }\n\n if (!OldSparkRenderer.pmrem) {\n OldSparkRenderer.pmrem = new THREE.PMREMGenerator(\n renderer ?? this.renderer,\n );\n }\n\n // Prepare the viewpoint, sorting Gsplats for this view origin.\n const viewToWorld = new THREE.Matrix4().setPosition(worldCenter);\n await this.envViewpoint?.prepare({ scene, viewToWorld, update });\n\n const { target, camera } = OldSparkRenderer.cubeRender;\n camera.position.copy(worldCenter);\n\n // Save the visibility state of objects we want to hide before render\n const objectVisibility = new Map();\n for (const object of hideObjects) {\n objectVisibility.set(object, object.visible);\n object.visible = false;\n }\n\n // Update the CubeCamera, which performs 6 cube face renders\n this.prepareViewpoint(this.envViewpoint);\n camera.update(renderer ?? this.renderer, scene);\n\n // Restore viewpoint to default and object visibility\n this.prepareViewpoint(this.defaultView);\n for (const [object, visible] of objectVisibility.entries()) {\n object.visible = visible;\n }\n\n // Pre-filter the cube map using THREE.PMREMGenerator\n return OldSparkRenderer.pmrem?.fromCubemap(target.texture).texture;\n }\n\n // Utility function to recursively set the envMap property for any\n // THREE.MeshStandardMaterial within the subtree of root.\n recurseSetEnvMap(root: THREE.Object3D, envMap: THREE.Texture) {\n root.traverse((node) => {\n if (node instanceof THREE.Mesh) {\n if (Array.isArray(node.material)) {\n for (const material of node.material) {\n if (material instanceof THREE.MeshStandardMaterial) {\n material.envMap = envMap;\n }\n }\n } else {\n if (node.material instanceof THREE.MeshStandardMaterial) {\n node.material.envMap = envMap;\n }\n }\n }\n });\n }\n\n // Utility function that helps extract the Gsplat RGBA values from a\n // SplatGenerator, including the result of any real-time RGBA SDF edits applied\n // to a SplatMesh. This effectively \"bakes\" any computed RGBA values, which can\n // now be used as a pipeline input via SplatMesh.splatRgba to inject these\n // baked values into the Gsplat data.\n getRgba({\n generator,\n rgba,\n }: { generator: SplatGenerator; rgba?: RgbaArray }): RgbaArray {\n const mapping = this.active.mapping.find(({ node }) => node === generator);\n if (!mapping) {\n throw new Error(\"Generator not found\");\n }\n\n rgba = rgba ?? new RgbaArray();\n rgba.fromPackedSplats({\n packedSplats: this.active.splats,\n base: mapping.base,\n count: mapping.count,\n renderer: this.renderer,\n });\n return rgba;\n }\n\n // Utility function that builds on getRgba({ generator }) and additionally\n // reads back the RGBA values to the CPU in a Uint8Array with packed RGBA\n // in that byte order.\n async readRgba({\n generator,\n rgba,\n }: { generator: SplatGenerator; rgba?: RgbaArray }): Promise {\n rgba = this.getRgba({ generator, rgba });\n return rgba.read();\n }\n}\n\nconst EMPTY_GEOMETRY = new OldSplatGeometry(new Uint32Array(1), 0);\n\nconst reorderSplats = dynoBlock(\n { packedSplats: TPackedSplats, index: \"int\" },\n { gsplat: Gsplat },\n ({ packedSplats, index }) => {\n if (!packedSplats || !index) {\n throw new Error(\"Invalid input\");\n }\n const gsplat = readPackedSplat(packedSplats, index);\n return { gsplat };\n },\n);\n\nfunction averageOriginToWorlds(\n originToWorlds: THREE.Matrix4[],\n): THREE.Matrix4 | null {\n if (originToWorlds.length === 0) {\n return null;\n }\n\n const position = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const scale = new THREE.Vector3();\n\n const positions: THREE.Vector3[] = [];\n const quaternions: THREE.Quaternion[] = [];\n for (const matrix of originToWorlds) {\n matrix.decompose(position, quaternion, scale);\n positions.push(position);\n quaternions.push(quaternion);\n }\n\n return new THREE.Matrix4().compose(\n averagePositions(positions),\n averageQuaternions(quaternions),\n new THREE.Vector3(1, 1, 1),\n );\n}\n","import type { SplatEncoding } from \"./defines\";\nimport { computeMaxSplats, setPackedSplat } from \"./utils\";\n\nexport function decodeAntiSplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n) {\n const numSplats = Math.floor(fileBytes.length / 32); // 32 bytes per splat\n if (numSplats * 32 !== fileBytes.length) {\n throw new Error(\"Invalid .splat file size\");\n }\n initNumSplats(numSplats);\n\n const f32 = new Float32Array(fileBytes.buffer);\n for (let i = 0; i < numSplats; ++i) {\n const i32 = i * 32;\n const i8 = i * 8;\n const x = f32[i8 + 0];\n const y = f32[i8 + 1];\n const z = f32[i8 + 2];\n const scaleX = f32[i8 + 3];\n const scaleY = f32[i8 + 4];\n const scaleZ = f32[i8 + 5];\n const r = fileBytes[i32 + 24] / 255;\n const g = fileBytes[i32 + 25] / 255;\n const b = fileBytes[i32 + 26] / 255;\n const opacity = fileBytes[i32 + 27] / 255;\n const quatW = (fileBytes[i32 + 28] - 128) / 128;\n const quatX = (fileBytes[i32 + 29] - 128) / 128;\n const quatY = (fileBytes[i32 + 30] - 128) / 128;\n const quatZ = (fileBytes[i32 + 31] - 128) / 128;\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n }\n}\n\nexport function unpackAntiSplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n} {\n let numSplats = 0;\n let maxSplats = 0;\n let packedArray = new Uint32Array(0);\n decodeAntiSplat(\n fileBytes,\n (cbNumSplats) => {\n numSplats = cbNumSplats;\n maxSplats = computeMaxSplats(numSplats);\n packedArray = new Uint32Array(maxSplats * 4);\n },\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n setPackedSplat(\n packedArray,\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n },\n );\n return { packedArray, numSplats };\n}\n","import type { SplatEncoding } from \"./defines\";\nimport {\n computeMaxSplats,\n encodeSh1Rgb,\n encodeSh2Rgb,\n encodeSh3Rgb,\n fromHalf,\n setPackedSplat,\n} from \"./utils\";\n\ntype KsplatCompression = {\n bytesPerCenter: number;\n bytesPerScale: number;\n bytesPerRotation: number;\n bytesPerColor: number;\n bytesPerSphericalHarmonicsComponent: number;\n scaleOffsetBytes: number;\n rotationOffsetBytes: number;\n colorOffsetBytes: number;\n sphericalHarmonicsOffsetBytes: number;\n scaleRange: number;\n};\n\nconst KSPLAT_COMPRESSION: Record = {\n 0: {\n bytesPerCenter: 12,\n bytesPerScale: 12,\n bytesPerRotation: 16,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 4,\n scaleOffsetBytes: 12,\n rotationOffsetBytes: 24,\n colorOffsetBytes: 40,\n sphericalHarmonicsOffsetBytes: 44,\n scaleRange: 1,\n },\n 1: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 2,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n 2: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 1,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n};\n\nconst KSPLAT_SH_DEGREE_TO_COMPONENTS: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nexport function decodeKsplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n) {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n initNumSplats(numSplats);\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n\n if (sphericalHarmonicsDegree >= 1 && sh1) {\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n if (sh2) {\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n }\n if (sh3) {\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n sectionBase += storageSizeBytes;\n }\n}\n\nexport function unpackKsplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n} {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n setPackedSplat(\n packedArray,\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n\n if (sphericalHarmonicsDegree >= 1) {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n encodeSh1Rgb(extra.sh1 as Uint32Array, i, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n encodeSh2Rgb(extra.sh2 as Uint32Array, i, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n encodeSh3Rgb(extra.sh3 as Uint32Array, i, sh3, splatEncoding);\n }\n }\n }\n sectionBase += storageSizeBytes;\n }\n return { packedArray, numSplats, extra };\n}\n","import * as THREE from \"three\";\nimport {\n SplatData,\n type TranscodeSpzInput,\n getSplatFileType,\n getSplatFileTypeFromPath,\n} from \"./SplatLoader\";\nimport { GunzipReader, fromHalf, normalize } from \"./utils\";\n\nimport { decodeAntiSplat } from \"./antisplat\";\nimport { SplatFileType } from \"./defines\";\nimport { decodeKsplat } from \"./ksplat\";\nimport { PlyReader } from \"./ply\";\n\n// SPZ file format reader\n\nexport class SpzReader {\n fileBytes: Uint8Array;\n reader: GunzipReader;\n\n version = -1;\n numSplats = 0;\n shDegree = 0;\n fractionalBits = 0;\n flags = 0;\n flagAntiAlias = false;\n flagLod = false;\n reserved = 0;\n headerParsed = false;\n parsed = false;\n\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n this.reader = new GunzipReader({\n fileBytes: this.fileBytes as Uint8Array,\n });\n }\n\n async parseHeader() {\n if (this.headerParsed) {\n throw new Error(\"SPZ file header already parsed\");\n }\n\n const header = new DataView((await this.reader.read(16)).buffer);\n if (header.getUint32(0, true) !== 0x5053474e) {\n throw new Error(\"Invalid SPZ file\");\n }\n this.version = header.getUint32(4, true);\n if (this.version < 1 || this.version > 3) {\n throw new Error(`Unsupported SPZ version: ${this.version}`);\n }\n\n this.numSplats = header.getUint32(8, true);\n this.shDegree = header.getUint8(12);\n this.fractionalBits = header.getUint8(13);\n this.flags = header.getUint8(14);\n this.flagAntiAlias = (this.flags & 0x01) !== 0;\n this.flagLod = (this.flags & 0x80) !== 0;\n this.reserved = header.getUint8(15);\n this.headerParsed = true;\n this.parsed = false;\n }\n\n async parseSplats(\n centerCallback?: (index: number, x: number, y: number, z: number) => void,\n alphaCallback?: (index: number, alpha: number) => void,\n rgbCallback?: (index: number, r: number, g: number, b: number) => void,\n scalesCallback?: (\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n ) => void,\n quatCallback?: (\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n {\n childCounts,\n childStarts,\n }: {\n childCounts?: (index: number, count: number) => void;\n childStarts?: (index: number, start: number) => void;\n } = {},\n ) {\n if (!this.headerParsed) {\n throw new Error(\"SPZ file header must be parsed first\");\n }\n if (this.parsed) {\n throw new Error(\"SPZ file already parsed\");\n }\n this.parsed = true;\n\n if (this.version === 1) {\n // float16 centers\n const centerBytes = await this.reader.read(this.numSplats * 3 * 2);\n const centerUint16 = new Uint16Array(centerBytes.buffer);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const x = fromHalf(centerUint16[i3]);\n const y = fromHalf(centerUint16[i3 + 1]);\n const z = fromHalf(centerUint16[i3 + 2]);\n centerCallback?.(i, x, y, z);\n }\n } else if (this.version === 2 || this.version === 3) {\n // 24-bit fixed-point centers\n const fixed = 1 << this.fractionalBits;\n const centerBytes = await this.reader.read(this.numSplats * 3 * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i9 = i * 9;\n const x =\n (((centerBytes[i9 + 2] << 24) |\n (centerBytes[i9 + 1] << 16) |\n (centerBytes[i9] << 8)) >>\n 8) /\n fixed;\n const y =\n (((centerBytes[i9 + 5] << 24) |\n (centerBytes[i9 + 4] << 16) |\n (centerBytes[i9 + 3] << 8)) >>\n 8) /\n fixed;\n const z =\n (((centerBytes[i9 + 8] << 24) |\n (centerBytes[i9 + 7] << 16) |\n (centerBytes[i9 + 6] << 8)) >>\n 8) /\n fixed;\n centerCallback?.(i, x, y, z);\n }\n } else {\n throw new Error(\"Unreachable\");\n }\n\n {\n const bytes = await this.reader.read(this.numSplats);\n for (let i = 0; i < this.numSplats; i++) {\n alphaCallback?.(i, bytes[i] / 255);\n }\n }\n {\n const rgbBytes = await this.reader.read(this.numSplats * 3);\n const scale = SH_C0 / 0.15;\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const r = (rgbBytes[i3] / 255 - 0.5) * scale + 0.5;\n const g = (rgbBytes[i3 + 1] / 255 - 0.5) * scale + 0.5;\n const b = (rgbBytes[i3 + 2] / 255 - 0.5) * scale + 0.5;\n rgbCallback?.(i, r, g, b);\n }\n }\n {\n const scalesBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const scaleX = Math.exp(scalesBytes[i3] / 16 - 10);\n const scaleY = Math.exp(scalesBytes[i3 + 1] / 16 - 10);\n const scaleZ = Math.exp(scalesBytes[i3 + 2] / 16 - 10);\n scalesCallback?.(i, scaleX, scaleY, scaleZ);\n }\n }\n if (this.version === 3) {\n // Version 3 uses a trick called \"smallest three\" to compress the rotation quaternions\n // achieving better precision. \"Optimizing orientation\" section at https://gafferongames.com/post/snapshot_compression/ A quaternion length must be 1: x^2+y^2+z^2+w^2 = 1\n // We can drop one component and reconstruct it with the identity above.\n // Largest component is dropped for best numerical precision.\n // Quaternion stored in 32 bits\n // 10 bits singed integer for each of the 3 components + 2 bits indicating the index of dropped component.\n // vs 8 bits for each component uncompressed (spz version < 3)\n // Max Value after extracting largest component v is another component v\n // (v,v,0,0)\n // v^2 + v^2 = 1\n // v = 1 / sqrt(2);\n const maxValue = 1 / Math.sqrt(2); // 0.7071\n const quatBytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 4;\n const quaternion = [0, 0, 0, 0];\n const values = [\n quatBytes[i3],\n quatBytes[i3 + 1],\n quatBytes[i3 + 2],\n quatBytes[i3 + 3],\n ];\n // all values are packed in 32 bits (10 per each of 3 components + 2 bits of index of larged value)\n const combinedValues =\n values[0] + (values[1] << 8) + (values[2] << 16) + (values[3] << 24);\n // each component value is 9 bits + sign (1 bit)\n const valueMask = (1 << 9) - 1;\n // extract index of the largest element. 2 top bits.\n const largestIndex = combinedValues >>> 30;\n let remainingValues = combinedValues;\n let sumSquares = 0;\n\n for (let i = 3; i >= 0; --i) {\n if (i !== largestIndex) {\n // extract current value and sign.\n const value = remainingValues & valueMask;\n const sign = (remainingValues >>> 9) & 0x1;\n // each value is represented as 10 bits. Shift to next one.\n remainingValues = remainingValues >>> 10;\n // convert to range [0,1] and then to [0, 0.7071]\n quaternion[i] = maxValue * (value / valueMask);\n // apply sign.\n quaternion[i] = sign === 0 ? quaternion[i] : -quaternion[i];\n // accumulate the sum of squares\n sumSquares += quaternion[i] * quaternion[i];\n }\n }\n\n // quartenion length must be 1 (x^2+y^2+z^2+w^2 = 1)\n // so can reconstruct largest component from the other 3.\n // w = sqrt(1 - x^2 - y^2 - z^2);\n const square = 1 - sumSquares;\n quaternion[largestIndex] = Math.sqrt(Math.max(square, 0));\n\n quatCallback?.(\n i,\n quaternion[0],\n quaternion[1],\n quaternion[2],\n quaternion[3],\n );\n }\n } else {\n const quatBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const quatX = quatBytes[i3] / 127.5 - 1;\n const quatY = quatBytes[i3 + 1] / 127.5 - 1;\n const quatZ = quatBytes[i3 + 2] / 127.5 - 1;\n const quatW = Math.sqrt(\n Math.max(0, 1 - quatX * quatX - quatY * quatY - quatZ * quatZ),\n );\n quatCallback?.(i, quatX, quatY, quatZ, quatW);\n }\n }\n\n if (shCallback && this.shDegree >= 1) {\n const sh1 = new Float32Array(3 * 3);\n const sh2 = this.shDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 = this.shDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n const shBytes = await this.reader.read(\n this.numSplats * SH_DEGREE_TO_VECS[this.shDegree] * 3,\n );\n\n let offset = 0;\n for (let i = 0; i < this.numSplats; i++) {\n for (let j = 0; j < 9; ++j) {\n sh1[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 9;\n if (sh2) {\n for (let j = 0; j < 15; ++j) {\n sh2[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 15;\n }\n if (sh3) {\n for (let j = 0; j < 21; ++j) {\n sh3[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 21;\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n if (this.flagLod) {\n let bytes = await this.reader.read(this.numSplats * 2);\n for (let i = 0; i < this.numSplats; i++) {\n const i2 = i * 2;\n const count = bytes[i2] + (bytes[i2 + 1] << 8);\n childCounts?.(i, count);\n }\n\n bytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i4 = i * 4;\n const start =\n bytes[i4] +\n (bytes[i4 + 1] << 8) +\n (bytes[i4 + 2] << 16) +\n (bytes[i4 + 3] << 24);\n childStarts?.(i, start);\n }\n }\n }\n}\n\nconst SH_DEGREE_TO_VECS: Record = { 1: 3, 2: 8, 3: 15 };\nconst SH_C0 = 0.28209479177387814;\n\nexport const SPZ_MAGIC = 0x5053474e; // NGSP = Niantic gaussian splat\nexport const SPZ_VERSION = 3;\nexport const FLAG_ANTIALIASED = 0x1;\n\nexport class SpzWriter {\n buffer: ArrayBuffer;\n view: DataView;\n numSplats: number;\n shDegree: number;\n fractionalBits: number;\n fraction: number;\n flagAntiAlias: boolean;\n clippedCount = 0;\n\n constructor({\n numSplats,\n shDegree,\n fractionalBits = 12,\n flagAntiAlias = true,\n }: {\n numSplats: number;\n shDegree: number;\n fractionalBits?: number;\n flagAntiAlias?: boolean;\n }) {\n const splatSize =\n 9 + // Position\n 1 + // Opacity\n 3 + // Scale\n 3 + // DC-rgb\n 4 + // Rotation\n (shDegree >= 1 ? 9 : 0) +\n (shDegree >= 2 ? 15 : 0) +\n (shDegree >= 3 ? 21 : 0);\n const bufferSize = 16 + numSplats * splatSize;\n this.buffer = new ArrayBuffer(bufferSize);\n this.view = new DataView(this.buffer);\n\n this.view.setUint32(0, SPZ_MAGIC, true); // NGSP\n this.view.setUint32(4, SPZ_VERSION, true);\n this.view.setUint32(8, numSplats, true);\n this.view.setUint8(12, shDegree);\n this.view.setUint8(13, fractionalBits);\n this.view.setUint8(14, flagAntiAlias ? FLAG_ANTIALIASED : 0);\n this.view.setUint8(15, 0); // Reserved\n\n this.numSplats = numSplats;\n this.shDegree = shDegree;\n this.fractionalBits = fractionalBits;\n this.fraction = 1 << fractionalBits;\n this.flagAntiAlias = flagAntiAlias;\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n // Divide by this.fraction and round to nearest integer,\n // then write as 3-bytes per x then y then z.\n const xRounded = Math.round(x * this.fraction);\n const xInt = Math.max(-0x7fffff, Math.min(0x7fffff, xRounded));\n const yRounded = Math.round(y * this.fraction);\n const yInt = Math.max(-0x7fffff, Math.min(0x7fffff, yRounded));\n const zRounded = Math.round(z * this.fraction);\n const zInt = Math.max(-0x7fffff, Math.min(0x7fffff, zRounded));\n const clipped = xRounded !== xInt || yRounded !== yInt || zRounded !== zInt;\n if (clipped) {\n this.clippedCount += 1;\n // if (this.clippedCount < 10) {\n // // Write x y z also in hex\n // console.log(`Clipped ${index}: ${x}, ${y}, ${z} (0x${x.toString(16)}, 0x${y.toString(16)}, 0x${z.toString(16)}) -> ${xRounded}, ${yRounded}, ${zRounded} (0x${xRounded.toString(16)}, 0x${yRounded.toString(16)}, 0x${zRounded.toString(16)}) -> ${xInt}, ${yInt}, ${zInt} (0x${xInt.toString(16)}, 0x${yInt.toString(16)}, 0x${zInt.toString(16)})`);\n // }\n }\n const i9 = index * 9;\n const base = 16 + i9;\n this.view.setUint8(base, xInt & 0xff);\n this.view.setUint8(base + 1, (xInt >> 8) & 0xff);\n this.view.setUint8(base + 2, (xInt >> 16) & 0xff);\n this.view.setUint8(base + 3, yInt & 0xff);\n this.view.setUint8(base + 4, (yInt >> 8) & 0xff);\n this.view.setUint8(base + 5, (yInt >> 16) & 0xff);\n this.view.setUint8(base + 6, zInt & 0xff);\n this.view.setUint8(base + 7, (zInt >> 8) & 0xff);\n this.view.setUint8(base + 8, (zInt >> 16) & 0xff);\n }\n\n setAlpha(index: number, alpha: number) {\n const base = 16 + this.numSplats * 9 + index;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round(alpha * 255))),\n );\n }\n\n static scaleRgb(r: number) {\n const v = ((r - 0.5) / (SH_C0 / 0.15) + 0.5) * 255;\n return Math.max(0, Math.min(255, Math.round(v)));\n }\n\n setRgb(index: number, r: number, g: number, b: number) {\n const base = 16 + this.numSplats * 10 + index * 3;\n this.view.setUint8(base, SpzWriter.scaleRgb(r));\n this.view.setUint8(base + 1, SpzWriter.scaleRgb(g));\n this.view.setUint8(base + 2, SpzWriter.scaleRgb(b));\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n const base = 16 + this.numSplats * 13 + index * 3;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleX) + 10) * 16))),\n );\n this.view.setUint8(\n base + 1,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleY) + 10) * 16))),\n );\n this.view.setUint8(\n base + 2,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleZ) + 10) * 16))),\n );\n }\n\n setQuat(\n index: number,\n ...q: [number, number, number, number] // x, y, z, w\n ) {\n const base = 16 + this.numSplats * 16 + index * 4;\n\n const quat = normalize(q);\n\n // Find largest component\n let iLargest = 0;\n for (let i = 1; i < 4; ++i) {\n if (Math.abs(quat[i]) > Math.abs(quat[iLargest])) {\n iLargest = i;\n }\n }\n\n // Since -quat represents the same rotation as quat, transform the quaternion so the largest element\n // is positive. This avoids having to send its sign bit.\n const negate = quat[iLargest] < 0 ? 1 : 0;\n\n // Do compression using sign bit and 9-bit precision per element.\n let comp = iLargest;\n for (let i = 0; i < 4; ++i) {\n if (i !== iLargest) {\n const negbit = (quat[i] < 0 ? 1 : 0) ^ negate;\n const mag = Math.floor(\n ((1 << 9) - 1) * (Math.abs(quat[i]) / Math.SQRT1_2) + 0.5,\n );\n comp = (comp << 10) | (negbit << 9) | mag;\n }\n }\n\n this.view.setUint8(base, comp & 0xff);\n this.view.setUint8(base + 1, (comp >> 8) & 0xff);\n this.view.setUint8(base + 2, (comp >> 16) & 0xff);\n this.view.setUint8(base + 3, (comp >>> 24) & 0xff);\n }\n\n static quantizeSh(sh: number, bits: number) {\n const value = Math.round(sh * 128) + 128;\n const bucketSize = 1 << (8 - bits);\n const quantized =\n Math.floor((value + bucketSize / 2) / bucketSize) * bucketSize;\n return Math.max(0, Math.min(255, quantized));\n }\n\n setSh(\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) {\n const shVecs = SH_DEGREE_TO_VECS[this.shDegree] || 0;\n const base1 = 16 + this.numSplats * 20 + index * shVecs * 3;\n for (let j = 0; j < 9; ++j) {\n this.view.setUint8(base1 + j, SpzWriter.quantizeSh(sh1[j], 5));\n }\n if (sh2) {\n const base2 = base1 + 9;\n for (let j = 0; j < 15; ++j) {\n this.view.setUint8(base2 + j, SpzWriter.quantizeSh(sh2[j], 4));\n }\n if (sh3) {\n const base3 = base2 + 15;\n for (let j = 0; j < 21; ++j) {\n this.view.setUint8(base3 + j, SpzWriter.quantizeSh(sh3[j], 4));\n }\n }\n }\n }\n\n async finalize(): Promise {\n const input = new Uint8Array(this.buffer);\n const stream = new ReadableStream({\n async start(controller) {\n controller.enqueue(input);\n controller.close();\n },\n });\n const compressed = stream.pipeThrough(new CompressionStream(\"gzip\"));\n const response = new Response(compressed);\n const buffer = await response.arrayBuffer();\n console.log(\n \"Compressed\",\n input.length,\n \"bytes to\",\n buffer.byteLength,\n \"bytes\",\n );\n return new Uint8Array(buffer);\n }\n}\n\nexport async function transcodeSpz(input: TranscodeSpzInput) {\n const splats = new SplatData();\n const {\n inputs,\n clipXyz,\n maxSh,\n fractionalBits = 12,\n opacityThreshold,\n } = input;\n for (const input of inputs) {\n const scale = input.transform?.scale ?? 1;\n const quaternion = new THREE.Quaternion().fromArray(\n input.transform?.quaternion ?? [0, 0, 0, 1],\n );\n const translate = new THREE.Vector3().fromArray(\n input.transform?.translate ?? [0, 0, 0],\n );\n const clip = clipXyz\n ? new THREE.Box3(\n new THREE.Vector3().fromArray(clipXyz.min),\n new THREE.Vector3().fromArray(clipXyz.max),\n )\n : undefined;\n\n function transformPos(pos: THREE.Vector3) {\n pos.multiplyScalar(scale);\n pos.applyQuaternion(quaternion);\n pos.add(translate);\n return pos;\n }\n\n function transformScales(scales: THREE.Vector3) {\n scales.multiplyScalar(scale);\n return scales;\n }\n\n function transformQuaternion(quat: THREE.Quaternion) {\n quat.premultiply(quaternion);\n return quat;\n }\n\n function withinClip(p: THREE.Vector3) {\n return !clip || clip.containsPoint(p);\n }\n\n function withinOpacity(opacity: number) {\n return opacityThreshold !== undefined\n ? opacity >= opacityThreshold\n : true;\n }\n\n let fileType = input.fileType;\n if (!fileType) {\n fileType = getSplatFileType(input.fileBytes);\n if (!fileType && input.pathOrUrl) {\n fileType = getSplatFileTypeFromPath(input.pathOrUrl);\n }\n }\n switch (fileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes: input.fileBytes });\n await ply.parseHeader();\n let lastIndex: number | null = null;\n ply.parseSplats(\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (sh1 && lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n }\n if (sh2 && lastIndex !== null) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3 && lastIndex !== null) {\n splats.setSh3(lastIndex, sh3);\n }\n },\n );\n break;\n }\n case SplatFileType.SPZ: {\n const spz = new SpzReader({ fileBytes: input.fileBytes });\n await spz.parseHeader();\n const mapping = new Int32Array(spz.numSplats);\n mapping.fill(-1);\n const centers = new Float32Array(spz.numSplats * 3);\n const center = new THREE.Vector3();\n spz.parseSplats(\n (index, x, y, z) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n centers[index * 3] = center.x;\n centers[index * 3 + 1] = center.y;\n centers[index * 3 + 2] = center.z;\n },\n (index, alpha) => {\n center.fromArray(centers, index * 3);\n if (withinClip(center) && withinOpacity(alpha)) {\n mapping[index] = splats.pushSplat();\n splats.setCenter(mapping[index], center.x, center.y, center.z);\n splats.setOpacity(mapping[index], alpha);\n }\n },\n (index, r, g, b) => {\n if (mapping[index] >= 0) {\n splats.setColor(mapping[index], r, g, b);\n }\n },\n (index, scaleX, scaleY, scaleZ) => {\n if (mapping[index] >= 0) {\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(mapping[index], scales.x, scales.y, scales.z);\n }\n },\n (index, quatX, quatY, quatZ, quatW) => {\n if (mapping[index] >= 0) {\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n mapping[index],\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n }\n },\n (index, sh1, sh2, sh3) => {\n if (mapping[index] >= 0) {\n splats.setSh1(mapping[index], sh1);\n if (sh2) {\n splats.setSh2(mapping[index], sh2);\n }\n if (sh3) {\n splats.setSh3(mapping[index], sh3);\n }\n }\n },\n );\n break;\n }\n case SplatFileType.SPLAT:\n decodeAntiSplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n const index = splats.pushSplat();\n splats.setCenter(index, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(index, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n index,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(index, opacity);\n splats.setColor(index, r, g, b);\n }\n },\n );\n break;\n case SplatFileType.KSPLAT: {\n let lastIndex: number | null = null;\n decodeKsplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n if (sh2) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3) {\n splats.setSh3(lastIndex, sh3);\n }\n }\n },\n );\n break;\n }\n default:\n throw new Error(`transcodeSpz not implemented for ${fileType}`);\n }\n }\n\n const shDegree = Math.min(\n maxSh ?? 3,\n splats.sh3 ? 3 : splats.sh2 ? 2 : splats.sh1 ? 1 : 0,\n );\n const spz = new SpzWriter({\n numSplats: splats.numSplats,\n shDegree,\n fractionalBits,\n flagAntiAlias: true,\n });\n\n for (let i = 0; i < splats.numSplats; ++i) {\n const i3 = i * 3;\n const i4 = i * 4;\n spz.setCenter(\n i,\n splats.centers[i3],\n splats.centers[i3 + 1],\n splats.centers[i3 + 2],\n );\n spz.setScale(\n i,\n splats.scales[i3],\n splats.scales[i3 + 1],\n splats.scales[i3 + 2],\n );\n spz.setQuat(\n i,\n splats.quaternions[i4],\n splats.quaternions[i4 + 1],\n splats.quaternions[i4 + 2],\n splats.quaternions[i4 + 3],\n );\n spz.setAlpha(i, splats.opacities[i]);\n spz.setRgb(\n i,\n splats.colors[i3],\n splats.colors[i3 + 1],\n splats.colors[i3 + 2],\n );\n if (splats.sh1 && shDegree >= 1) {\n spz.setSh(\n i,\n splats.sh1.slice(i * 9, (i + 1) * 9),\n shDegree >= 2 && splats.sh2\n ? splats.sh2.slice(i * 15, (i + 1) * 15)\n : undefined,\n shDegree >= 3 && splats.sh3\n ? splats.sh3.slice(i * 21, (i + 1) * 21)\n : undefined,\n );\n }\n }\n\n const spzBytes = await spz.finalize();\n return { fileBytes: spzBytes, clippedCount: spz.clippedCount };\n}\n","import * as THREE from \"three\";\n\n// SplatSkinning is an experimental class that implements dual-quaternion\n// skeletal animation for Gsplats. A skeletal animation system consists\n// of a set of bones, each with a \"rest\" pose that consists of a position\n// and orientation, and a weighting of up to 4 bones for each Gsplat.\n// By moving and rotating the bones you can animate all the Gsplats like\n// your would for a normal 3D animated mesh.\n// Note that the dual-quaternion formulation assumes that mass/volume\n// is conserved through these transformations, which helps avoid common\n// issues with linear blend skinning such as joint collapse or bulging.\n// However, it is not as good a fit for animations that involve explicit\n// deformations, such as cartoon animations.\n\nimport type { SplatMesh } from \"./SplatMesh\";\nimport {\n CovSplat,\n Dyno,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize, newArray } from \"./utils\";\n\nexport enum SplatSkinningMode {\n DUAL_QUATERNION = \"dual_quaternion\",\n LINEAR_BLEND = \"linear_blend\",\n}\n\nexport type SplatSkinningOptions = {\n // Specifies the SplatMesh that will be animated.\n mesh: SplatMesh;\n // Overrides the number of Gsplats in the mesh that will be animated.\n // (default: mesh.numSplats)\n numSplats?: number;\n // Set the number of bones used to animate the SplatMesh, with a maximum\n // of 256 (in order to compactly encode the bone index). (default: 256)\n numBones?: number;\n // Set the mode of skinning to use.\n // (default: DUAL_QUATERNION)\n mode?: SplatSkinningMode;\n};\n\nexport class SplatSkinning {\n mesh: SplatMesh;\n numSplats: number;\n mode: SplatSkinningMode;\n\n // Store the skinning weights for each Gsplat, composed of a 4-vector\n // of bone indices and weight\n skinData: Uint16Array;\n skinTexture: THREE.DataArrayTexture;\n\n numBones: number;\n boneData: Float32Array;\n boneTexture: THREE.DataTexture;\n\n boneRestQuatPosScale: {\n quat: THREE.Quaternion;\n pos: THREE.Vector3;\n scale: THREE.Vector3;\n }[];\n boneRestInvMats: THREE.Matrix4[];\n\n uniform: DynoUniform;\n\n constructor(options: SplatSkinningOptions) {\n this.mesh = options.mesh;\n this.numSplats = options.numSplats ?? this.mesh.numSplats;\n this.mode = options.mode ?? SplatSkinningMode.DUAL_QUATERNION;\n\n const { width, height, depth, maxSplats } = getTextureSize(this.numSplats);\n this.skinData = new Uint16Array(maxSplats * 4);\n this.skinTexture = new THREE.DataArrayTexture(\n this.skinData,\n width,\n height,\n depth,\n );\n this.skinTexture.format = THREE.RGBAIntegerFormat;\n this.skinTexture.type = THREE.UnsignedShortType;\n this.skinTexture.internalFormat = \"RGBA16UI\";\n this.skinTexture.needsUpdate = true;\n\n this.numBones = options.numBones ?? 256;\n this.boneData = new Float32Array(this.numBones * 16);\n this.boneTexture = new THREE.DataTexture(\n this.boneData,\n 4,\n this.numBones,\n THREE.RGBAFormat,\n THREE.FloatType,\n );\n this.boneTexture.internalFormat = \"RGBA32F\";\n this.boneTexture.needsUpdate = true;\n\n this.boneRestQuatPosScale = newArray(this.numBones, () => ({\n quat: new THREE.Quaternion(),\n pos: new THREE.Vector3(),\n scale: new THREE.Vector3(),\n }));\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats = newArray(this.numBones, () => new THREE.Matrix4());\n } else {\n this.boneRestInvMats = [];\n }\n\n this.uniform = new DynoUniform({\n key: \"skinning\",\n type: GsplatSkinning,\n globals: () => [defineGsplatSkinning],\n value: {\n numSplats: this.numSplats,\n numBones: this.numBones,\n skinTexture: this.skinTexture,\n boneTexture: this.boneTexture,\n },\n });\n }\n\n // Apply the skeletal animation to a Gsplat in a dyno program.\n modify(gsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"Linear blend skinning requires covSplats=true\");\n }\n return applyGsplatSkinning(gsplat, this.uniform);\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n return applyCovSplatDQSkinning(covsplat, this.uniform);\n }\n return applyCovSplatLBSkinning(covsplat, this.uniform);\n }\n\n // Set the \"rest\" pose for a bone with position and quaternion orientation.\n setRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(SplatSkinning.UNIT_SCALE);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex]\n .compose(pos, quat, SplatSkinning.UNIT_SCALE)\n .invert();\n }\n\n this.setBoneQuatPos(boneIndex, quat, pos);\n }\n\n getRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n }\n\n setRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(scale);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex].compose(pos, quat, scale).invert();\n }\n\n this.setBoneQuatPosScale(boneIndex, quat, pos, scale);\n }\n\n getRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n scale.copy(this.boneRestQuatPosScale[boneIndex].scale);\n }\n\n setRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setRestMat only supported for linear blend skinning\");\n }\n this.boneRestInvMats[boneIndex].copy(matrix).invert();\n this.setBoneMatrix(boneIndex, matrix);\n }\n\n getRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"getRestMat only supported for linear blend skinning\");\n }\n matrix.copy(this.boneRestInvMats[boneIndex]).invert();\n }\n\n // Set the \"current\" position and orientation of a bone.\n setBoneQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n SplatSkinning.relQuat\n .copy(this.boneRestQuatPosScale[boneIndex].quat)\n .invert();\n SplatSkinning.relPos\n .copy(pos)\n .sub(this.boneRestQuatPosScale[boneIndex].pos);\n SplatSkinning.relQuat.multiply(quat);\n SplatSkinning.dual\n .set(\n SplatSkinning.relPos.x,\n SplatSkinning.relPos.y,\n SplatSkinning.relPos.z,\n 0.0,\n )\n .multiply(SplatSkinning.relQuat);\n\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.relQuat.x;\n this.boneData[i16 + 1] = SplatSkinning.relQuat.y;\n this.boneData[i16 + 2] = SplatSkinning.relQuat.z;\n this.boneData[i16 + 3] = SplatSkinning.relQuat.w;\n this.boneData[i16 + 4] = 0.5 * SplatSkinning.dual.x;\n this.boneData[i16 + 5] = 0.5 * SplatSkinning.dual.y;\n this.boneData[i16 + 6] = 0.5 * SplatSkinning.dual.z;\n this.boneData[i16 + 7] = 0.5 * SplatSkinning.dual.w;\n } else {\n this.setBoneQuatPosScale(boneIndex, quat, pos, SplatSkinning.UNIT_SCALE);\n }\n }\n\n setBoneQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n throw new Error(\n \"setBoneQuatPosScale only supported for linear blend skinning\",\n );\n }\n\n SplatSkinning.skinMat.compose(pos, quat, scale);\n this.setBoneMatrix(boneIndex, SplatSkinning.skinMat);\n }\n\n setBoneMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setBoneMatrix only supported for linear blend skinning\");\n }\n\n SplatSkinning.skinMat.multiplyMatrices(\n this.boneRestInvMats[boneIndex],\n matrix,\n );\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.skinMat.elements[0];\n this.boneData[i16 + 1] = SplatSkinning.skinMat.elements[1];\n this.boneData[i16 + 2] = SplatSkinning.skinMat.elements[2];\n this.boneData[i16 + 3] = SplatSkinning.skinMat.elements[4];\n this.boneData[i16 + 4] = SplatSkinning.skinMat.elements[5];\n this.boneData[i16 + 5] = SplatSkinning.skinMat.elements[6];\n this.boneData[i16 + 6] = SplatSkinning.skinMat.elements[8];\n this.boneData[i16 + 7] = SplatSkinning.skinMat.elements[9];\n this.boneData[i16 + 8] = SplatSkinning.skinMat.elements[10];\n this.boneData[i16 + 9] = SplatSkinning.skinMat.elements[12];\n this.boneData[i16 + 10] = SplatSkinning.skinMat.elements[13];\n this.boneData[i16 + 11] = SplatSkinning.skinMat.elements[14];\n }\n\n // Set up to 4 bone indices and weights for a Gsplat. For fewer than 4 bones,\n // you can set the remaining weights to 0 (and index=0).\n setSplatBones(\n splatIndex: number,\n boneIndices: THREE.Vector4,\n weights: THREE.Vector4,\n ) {\n const i4 = splatIndex * 4;\n this.skinData[i4 + 0] =\n Math.min(255, Math.max(0, Math.round(weights.x * 255.0))) +\n (boneIndices.x << 8);\n this.skinData[i4 + 1] =\n Math.min(255, Math.max(0, Math.round(weights.y * 255.0))) +\n (boneIndices.y << 8);\n this.skinData[i4 + 2] =\n Math.min(255, Math.max(0, Math.round(weights.z * 255.0))) +\n (boneIndices.z << 8);\n this.skinData[i4 + 3] =\n Math.min(255, Math.max(0, Math.round(weights.w * 255.0))) +\n (boneIndices.w << 8);\n }\n\n // Call this to indicate that the bones have changed and the Gsplats need to be\n // re-generated with updated skinning.\n updateBones() {\n this.boneTexture.needsUpdate = true;\n this.mesh.needsUpdate = true;\n }\n\n private static UNIT_SCALE = new THREE.Vector3(1, 1, 1);\n private static relQuat = new THREE.Quaternion();\n private static relPos = new THREE.Vector3();\n private static dual = new THREE.Quaternion();\n private static skinMat = new THREE.Matrix4();\n}\n\n// dyno program definitions for SplatSkinning\n\nexport const GsplatSkinning = { type: \"GsplatSkinning\" } as {\n type: \"GsplatSkinning\";\n};\n\nexport const defineGsplatSkinning = unindent(`\n struct GsplatSkinning {\n int numSplats;\n int numBones;\n usampler2DArray skinTexture;\n sampler2D boneTexture;\n };\n`);\n\nexport const defineApplyGsplatSkinning = unindent(`\n void applyGsplatSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec4 quaternion\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n\n center = quatVec(quat, center) + translate;\n quaternion = quatQuat(quat, quaternion);\n }\n`);\n\nfunction applyGsplatSkinning(\n gsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { gsplat: typeof Gsplat; skinning: typeof GsplatSkinning },\n { gsplat: typeof Gsplat }\n >({\n inTypes: { gsplat: Gsplat, skinning: GsplatSkinning },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplatSkinning, defineApplyGsplatSkinning],\n inputs: { gsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n applyGsplatSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${gsplat}.index, ${gsplat}.center, ${gsplat}.quaternion\n );\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nexport const defineApplyCovSplatDQSkinning = unindent(`\n void applyCovSplatDQSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n mat3 basis = quaternionToMatrix(quat);\n\n center = quatVec(quat, center) + translate;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nexport const defineApplyCovSplatLBSkinning = unindent(`\n void applyCovSplatLBSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n mat3 basis = mat3(0.0);\n vec3 offset = vec3(0.0);\n\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n if (boneIndex < numBones) {\n vec4 v0 = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n vec4 v1 = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n vec4 v2 = texelFetch(boneTexture, ivec2(2, boneIndex), 0);\n basis += weights[i] * mat3(v0.x, v0.y, v0.z, v0.w, v1.x, v1.y, v1.z, v1.w, v2.x);\n offset += weights[i] * vec3(v2.y, v2.z, v2.w);\n }\n }\n }\n\n center = basis * center + offset;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nfunction applyCovSplatDQSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatDQSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatDQSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nfunction applyCovSplatLBSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatLBSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatLBSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n","import * as THREE from \"three\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport function constructGrid({\n // PackedSplats object to add splats to\n splats,\n // min and max box extents of the grid\n extents,\n // step size along each grid axis\n stepSize = 1,\n // spherical radius of each Gsplat\n pointRadius = 0.01,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n pointShadowScale = 2.0,\n // Gsplat opacity\n opacity = 1.0,\n // Gsplat color (THREE.Color) or function to set color for position:\n // ((THREE.Color, THREE.Vector3) => void) (default: RGB-modulated grid)\n color,\n}: {\n splats: PackedSplats;\n extents: THREE.Box3;\n stepSize?: number;\n pointRadius?: number;\n pointShadowScale?: number;\n opacity?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const EPSILON = 1.0e-6;\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n if (color == null) {\n color = (color, point) =>\n color.set(\n 0.55 + 0.45 * Math.cos(point.x * 1),\n 0.55 + 0.45 * Math.cos(point.y * 1),\n 0.55 + 0.45 * Math.cos(point.z * 1),\n );\n }\n const pointColor = new THREE.Color();\n for (let z = extents.min.z; z < extents.max.z + EPSILON; z += stepSize) {\n for (let y = extents.min.y; y < extents.max.y + EPSILON; y += stepSize) {\n for (let x = extents.min.x; x < extents.max.x + EPSILON; x += stepSize) {\n center.set(x, y, z);\n for (let layer = 0; layer < 2; ++layer) {\n scales.setScalar(pointRadius * (layer ? 1 : pointShadowScale));\n if (!layer) {\n pointColor.setScalar(0.0);\n } else if (typeof color === \"function\") {\n color(pointColor, center);\n } else {\n pointColor.copy(color);\n }\n splats.pushSplat(center, scales, quaternion, opacity, pointColor);\n }\n }\n }\n }\n}\n\nexport function constructAxes({\n // PackedSplats object to add splats to\n splats,\n // scale (Gsplat scale along axis)\n scale = 0.25,\n // radius of the axes (Gsplat scale orthogonal to axis)\n axisRadius = 0.0075,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n axisShadowScale = 2.0,\n // origins of the axes (default single axis at origin)\n origins = [new THREE.Vector3()],\n}: {\n splats: PackedSplats;\n scale?: number;\n axisRadius?: number;\n axisShadowScale?: number;\n origins?: THREE.Vector3[];\n}) {\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const color = new THREE.Color();\n const opacity = 1.0;\n for (const origin of origins) {\n for (let axis = 0; axis < 3; ++axis) {\n center.set(\n origin.x + (axis === 0 ? scale : 0),\n origin.y + (axis === 1 ? scale : 0),\n origin.z + (axis === 2 ? scale : 0),\n );\n for (let layer = 0; layer < 2; ++layer) {\n scales.set(\n (axis === 0 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 1 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 2 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n );\n color.setRGB(\n layer === 0 ? 0.0 : axis === 0 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 1 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 2 ? 1.0 : 0.0,\n );\n splats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n }\n}\n\nexport function constructSpherePoints({\n // PackedSplats object to add splats to\n splats,\n // center of the sphere (default: origin)\n origin = new THREE.Vector3(),\n // radius of the sphere\n radius = 1.0,\n // maximum depth of recursion for subdividing the sphere\n // Warning: Gsplat count grows exponentially with depth\n maxDepth = 3,\n // filter function to apply to each point, for example to select\n // points in a certain direction or other function ((THREE.Vector3) => boolean)\n // (default: null)\n filter = null,\n // radius of each oriented Gsplat\n pointRadius = 0.02,\n // flatness of each oriented Gsplat\n pointThickness = 0.001,\n // color of each Gsplat (THREE.Color) or function to set color for point:\n // ((THREE.Color, THREE.Vector3) => void) (default: white)\n color = new THREE.Color(1, 1, 1),\n}: {\n splats: PackedSplats;\n origin?: THREE.Vector3;\n radius?: number;\n maxDepth?: number;\n filter?: ((point: THREE.Vector3) => boolean) | null;\n pointRadius?: number;\n pointThickness?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const pointsHash: { [key: string]: THREE.Vector3 } = {};\n\n function addPoint(p: THREE.Vector3) {\n if (filter && !filter(p)) {\n return;\n }\n const key = `${p.x},${p.y},${p.z}`;\n if (!pointsHash[key]) {\n pointsHash[key] = p;\n }\n }\n\n function recurse(\n depth: number,\n p0: THREE.Vector3,\n p1: THREE.Vector3,\n p2: THREE.Vector3,\n ) {\n addPoint(p0);\n addPoint(p1);\n addPoint(p2);\n if (depth >= maxDepth) {\n return;\n }\n const p01 = new THREE.Vector3().addVectors(p0, p1).normalize();\n const p12 = new THREE.Vector3().addVectors(p1, p2).normalize();\n const p20 = new THREE.Vector3().addVectors(p2, p0).normalize();\n recurse(depth + 1, p0, p01, p20);\n recurse(depth + 1, p01, p1, p12);\n recurse(depth + 1, p20, p12, p2);\n recurse(depth + 1, p01, p12, p20);\n }\n\n for (const x of [-1, 1]) {\n for (const y of [-1, 1]) {\n for (const z of [-1, 1]) {\n const p0 = new THREE.Vector3(x, 0, 0);\n const p1 = new THREE.Vector3(0, y, 0);\n const p2 = new THREE.Vector3(0, 0, z);\n recurse(0, p0, p1, p2);\n }\n }\n }\n\n const points = Object.values(pointsHash);\n const scales = new THREE.Vector3(pointRadius, pointRadius, pointThickness);\n const quaternion = new THREE.Quaternion();\n const pointColor = typeof color === \"function\" ? new THREE.Color() : color;\n for (const point of points) {\n quaternion.setFromUnitVectors(new THREE.Vector3(0, 0, -1), point);\n if (typeof color === \"function\") {\n color(pointColor, point);\n }\n point.multiplyScalar(radius);\n point.add(origin);\n splats.pushSplat(point, scales, quaternion, 1.0, pointColor);\n }\n}\n\nexport function textSplats({\n // text string to display\n text,\n // browser font to render text with (default: \"Arial\")\n font,\n // font size in pixels/Gsplats (default: 32)\n fontSize,\n // SplatMesh.recolor tint assuming white Gsplats (default: white)\n color,\n // Individual Gsplat color (default: white)\n rgb,\n // Gsplat radius (default: 0.8 covers 1-unit spacing well)\n dotRadius,\n // text alignment: \"left\", \"center\", \"right\", \"start\", \"end\" (default: \"start\")\n textAlign,\n // line spacing multiplier, lines delimited by \"\\n\" (default: 1.0)\n lineHeight,\n // Coordinate scale in object-space (default: 1.0)\n objectScale,\n}: {\n text: string;\n font?: string;\n fontSize?: number;\n color?: THREE.Color;\n rgb?: THREE.Color;\n dotRadius?: number;\n textAlign?: \"left\" | \"center\" | \"right\" | \"start\" | \"end\";\n lineHeight?: number;\n objectScale?: number;\n}) {\n font = font ?? \"Arial\";\n fontSize = fontSize ?? 32;\n color = color ?? new THREE.Color(1, 1, 1);\n dotRadius = dotRadius ?? 0.8;\n textAlign = textAlign ?? \"start\";\n lineHeight = lineHeight ?? 1;\n objectScale = objectScale ?? 1;\n const lines = text.split(\"\\n\");\n\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Failed to create canvas context\");\n }\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n const metrics = ctx.measureText(\"\");\n const fontHeight =\n metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent;\n\n let minLeft = Number.POSITIVE_INFINITY;\n let maxRight = Number.NEGATIVE_INFINITY;\n let minTop = Number.POSITIVE_INFINITY;\n let maxBottom = Number.NEGATIVE_INFINITY;\n for (let line = 0; line < lines.length; ++line) {\n const metrics = ctx.measureText(lines[line]);\n const y = fontHeight * lineHeight * line;\n minLeft = Math.min(minLeft, -metrics.actualBoundingBoxLeft);\n maxRight = Math.max(maxRight, metrics.actualBoundingBoxRight);\n minTop = Math.min(minTop, y - metrics.actualBoundingBoxAscent);\n maxBottom = Math.max(maxBottom, y + metrics.actualBoundingBoxDescent);\n }\n const originLeft = Math.floor(minLeft);\n const originTop = Math.floor(minTop);\n const width = Math.ceil(maxRight) - originLeft;\n const height = Math.ceil(maxBottom) - originTop;\n canvas.width = width;\n canvas.height = height;\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n ctx.textBaseline = \"alphabetic\";\n ctx.fillStyle = \"#FFFFFF\";\n for (let i = 0; i < lines.length; ++i) {\n const y = fontHeight * lineHeight * i - originTop;\n ctx.fillText(lines[i], -originLeft, y);\n }\n\n const imageData = ctx.getImageData(0, 0, width, height);\n const rgba = new Uint8Array(imageData.data.buffer);\n const splats = new PackedSplats();\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius * objectScale);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n rgb = rgb ?? new THREE.Color(1, 1, 1);\n\n let offset = 0;\n for (let y = 0; y < height; ++y) {\n for (let x = 0; x < width; ++x) {\n const a = rgba[offset + 3];\n if (a > 0) {\n const opacity = a / 255;\n center.set(x - 0.5 * (width - 1), 0.5 * (height - 1) - y, 0);\n center.multiplyScalar(objectScale);\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n offset += 4;\n }\n }\n\n const mesh = new SplatMesh({ packedSplats: splats });\n mesh.recolor = color;\n return mesh;\n}\n\nexport function imageSplats({\n // URL of the image to convert to splats (example: `url: \"./image.png\"`)\n url,\n // Radius of each Gsplat, default covers 1-unit spacing well (default: 0.8)\n dotRadius,\n // Subsampling factor for the image. Higher values reduce resolution,\n // for example 2 will halve the width and height by averaging (default: 1)\n subXY,\n // Optional callback function to modify each Gsplat before it's added.\n // Return null to skip adding the Gsplat, or a number to set the opacity\n // and add the Gsplat with parameter values in the objects center, rgba etc. were\n // passed into the forEachSplat callback. Ending the callback in `return opacity;`\n // will retain the original opacity.\n // ((width: number, height: number, index: number, center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, opacity: number, color: THREE.Color) => number | null)\n forEachSplat,\n}: {\n url: string;\n dotRadius?: number;\n subXY?: number;\n forEachSplat?: (\n width: number,\n height: number,\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => number | null;\n}): SplatMesh {\n dotRadius = dotRadius ?? 0.8;\n subXY = Math.max(1, Math.floor(subXY ?? 1));\n\n return new SplatMesh({\n constructSplats: async (splats) => {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.onerror = reject;\n img.onload = () => {\n const { width, height } = img;\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n reject(new Error(\"Failed to create canvas context\"));\n return;\n }\n ctx.imageSmoothingEnabled = true;\n ctx.imageSmoothingQuality = \"high\";\n const destWidth = Math.round(width / subXY);\n const destHeight = Math.round(height / subXY);\n ctx.drawImage(img, 0, 0, destWidth, destHeight);\n try {\n const imageData = ctx.getImageData(0, 0, destWidth, destHeight);\n const rgba = new Uint8Array(imageData.data.buffer);\n\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const rgb = new THREE.Color();\n\n let index = 0;\n for (let y = 0; y < destHeight; ++y) {\n for (let x = 0; x < destWidth; ++x) {\n const offset = index * 4;\n const a = rgba[offset + 3];\n if (a > 0) {\n let opacity = a / 255;\n rgb.set(\n rgba[offset + 0] / 255,\n rgba[offset + 1] / 255,\n rgba[offset + 2] / 255,\n );\n center.set(\n x - 0.5 * (destWidth - 1),\n 0.5 * (destHeight - 1) - y,\n 0,\n );\n scales.setScalar(dotRadius);\n quaternion.set(0, 0, 0, 1);\n let push = true;\n if (forEachSplat) {\n const maybeOpacity = forEachSplat(\n destWidth,\n destHeight,\n index,\n center,\n scales,\n quaternion,\n opacity,\n rgb,\n );\n opacity = maybeOpacity ?? opacity;\n push = maybeOpacity !== null;\n }\n if (push) {\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n }\n index += 1;\n }\n }\n resolve();\n } catch (error) {\n reject(error);\n }\n };\n img.src = url;\n });\n },\n });\n}\n","import * as THREE from \"three\";\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n type DynoVal,\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n div,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n floatBitsToInt,\n hashVec3,\n imod,\n mul,\n split,\n sub,\n vec3,\n} from \"../dyno\";\n\nexport function staticBox({\n box,\n cells,\n dotScale,\n color,\n opacity,\n}: {\n box: THREE.Box3;\n cells: THREE.Vector3;\n dotScale: number;\n color?: THREE.Color;\n opacity?: number;\n}) {\n cells.x = Math.max(1, Math.round(cells.x));\n cells.y = Math.max(1, Math.round(cells.y));\n cells.z = Math.max(1, Math.round(cells.z));\n opacity = opacity ?? 1;\n const numSplats = cells.x * cells.y * cells.z;\n const dynoX = dynoConst(\"int\", cells.x);\n const dynoY = dynoConst(\"int\", cells.y);\n const dynoZ = dynoConst(\"int\", cells.z);\n\n const dynoTime = dynoFloat(0);\n const generator = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n const cellX = imod(index, dynoX);\n const index2 = div(index, dynoX);\n const cellY = imod(index2, dynoY);\n const cellZ = div(index2, dynoY);\n const cell = combine({\n vectorType: \"ivec3\",\n x: cellX,\n y: cellY,\n z: cellZ,\n });\n\n const intTime = floatBitsToInt(dynoTime);\n const inputs = combine({ vectorType: \"ivec2\", x: index, y: intTime });\n const random = hashVec3(inputs);\n const min = dynoConst(\"vec3\", box.min);\n const max = dynoConst(\"vec3\", box.max);\n const size = sub(max, min);\n const coord = div(add(vec3(cell), random), dynoConst(\"vec3\", cells));\n let r: DynoVal<\"float\">;\n let g: DynoVal<\"float\">;\n let b: DynoVal<\"float\">;\n if (color) {\n r = dynoConst(\"float\", color.r);\n g = dynoConst(\"float\", color.g);\n b = dynoConst(\"float\", color.b);\n } else {\n ({ r, g, b } = split(coord).outputs);\n }\n const rgba = combine({\n vectorType: \"vec4\",\n r,\n g,\n b,\n a: dynoConst(\"float\", opacity),\n });\n const center = add(min, mul(size, coord));\n const scales = vec3(dynoConst(\"float\", dotScale));\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgba,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ time }) => {\n dynoTime.value = time;\n const _updated = transformer.update(generator);\n generator.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return generator;\n}\n","import * as THREE from \"three\";\n\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n fract,\n hashVec4,\n max,\n mix,\n mod,\n mul,\n sin,\n split,\n sub,\n vec3,\n} from \"../dyno\";\nimport { dynoVec3 } from \"../dyno\";\n\n// snowBox produces Gsplat trajectories that move in a deterministic fashion over time,\n// with high similarity between adjacent frames. See examples/atmospheric/main.js\n// for an example that creates a snowBox.\n\n// A snowBox instance has a collection of properties that can be tuned to achieve\n// different particle effects. The below DEFAULT_SNOW and DEFAULT_RAIN are example\n// parameter sets that look a lot like snow and rain, and can be used as a starting\n// point for further tweaking: `const mySnow = { ...DEFAULT_SNOW, density: 500 };`\n\nexport const DEFAULT_SNOW = {\n box: new THREE.Box3(\n new THREE.Vector3(-1, -1, -1),\n new THREE.Vector3(1, 1, 1),\n ),\n density: 100,\n fallDirection: new THREE.Vector3(-1, -3, 1).normalize(),\n fallVelocity: 0.02,\n wanderScale: 0.04,\n wanderVariance: 2,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.5, 0.5, 1),\n minScale: 0.001,\n maxScale: 0.005,\n anisoScale: new THREE.Vector3(1, 1, 1),\n};\n\nexport const DEFAULT_RAIN = {\n box: new THREE.Box3(\n new THREE.Vector3(-2, -1, -2),\n new THREE.Vector3(2, 5, 2),\n ),\n density: 10,\n fallDirection: new THREE.Vector3(0, -1, 0),\n fallVelocity: 2,\n wanderScale: 0.1,\n wanderVariance: 1,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.25, 0.25, 0.5),\n minScale: 0.005,\n maxScale: 0.01,\n anisoScale: new THREE.Vector3(0.1, 1, 0.1),\n};\n\n// Calling snowBox creates a new snowBox instance and returns an object with\n// the snowBox itself as well `as` a collection of controls that can be used to\n// adjust the snowBox's properties over time:\n//\n// - snow: the SplatGenerator snowBox instance\n// - min: the vec3 uniform of the snowBox minimum position\n// - max: the vec3 uniform of the snowBox maximum position\n// - minY: the float uniform of the snowBox minimum y-coordinate\n// - color1: the vec3 uniform of the snowBox first color\n// - color2: the vec3 uniform of the snowBox second color\n// - opacity: the float uniform of the snowBox opacity\n// - fallVelocity: the float uniform of the snowBox fall velocity\n// - wanderVariance: the float uniform of the snowBox wander variance\n// - wanderScale: the float uniform of the snowBox wander scale\n// - fallDirection: the vec3 uniform of the snowBox fall direction\n// - minScale: the float uniform of the snowBox minimum scale\n// - maxScale: the float uniform of the snowBox maximum scale\n// - anisoScale: the vec3 uniform of the snowBox anisotropic scale\n\nexport function snowBox({\n // min and max box extents of the snowBox\n box,\n // minimum y-coordinate to clamp particle position, which can be used to\n // fake hitting a ground plane and lingering there for a bit\n minY,\n // number of Gsplats to generate (default: calculated from box and density)\n numSplats,\n // density of Gsplats per unit volume (default: 100)\n density,\n // The xyz anisotropic scale of the Gsplat, which can be used for example\n // to elongate rain particles (default: (1, 1, 1))\n anisoScale,\n // Minimum Gsplat particle scale (default: 0.001)\n minScale,\n // Maximum Gsplat particle scale (default: 0.005)\n maxScale,\n // The average direction of fall (default: (0, -1, 0))\n fallDirection,\n // The average speed of the fall (multiplied with fallDirection) (default: 0.02)\n fallVelocity,\n // The world scale of wandering overlay motion (default: 0.01)\n wanderScale,\n // Controls how uniformly the particles wander in sync, more variance mean\n // more randomness in the motion (default: 2)\n wanderVariance,\n // Color 1 of the two colors interpolated between (default: (1, 1, 1))\n color1,\n // Color 2 of the two colors interpolated between (default: (0.5, 0.5, 1))\n color2,\n // The base opacity of the Gsplats (default: 1)\n opacity,\n // Optional callback function to call each frame.\n onFrame,\n}: {\n box?: THREE.Box3;\n minY?: number;\n numSplats?: number;\n density?: number;\n anisoScale?: THREE.Vector3;\n minScale?: number;\n maxScale?: number;\n fallDirection?: THREE.Vector3;\n fallVelocity?: number;\n wanderScale?: number;\n wanderVariance?: number;\n color1?: THREE.Color;\n color2?: THREE.Color;\n opacity?: number;\n onFrame?: ({\n object,\n time,\n deltaTime,\n }: { object: SplatGenerator; time: number; deltaTime: number }) => void;\n}) {\n box =\n box ??\n new THREE.Box3(new THREE.Vector3(-1, -1, -1), new THREE.Vector3(1, 1, 1));\n const volume =\n (box.max.x - box.min.x) * (box.max.y - box.min.y) * (box.max.z - box.min.z);\n density = density ?? 100;\n numSplats =\n numSplats ?? Math.max(1, Math.min(1000000, Math.round(volume * density)));\n\n const dynoMinScale = dynoFloat(minScale ?? 0.001);\n const dynoMaxScale = dynoFloat(maxScale ?? 0.005);\n const dynoAnisoScale = dynoVec3(\n (anisoScale?.clone() ?? new THREE.Vector3(1, 1, 1)).normalize(),\n );\n const dynoFallDirection = dynoVec3(\n (fallDirection ?? new THREE.Vector3(0, -1, 0)).normalize(),\n );\n const dynoFallVelocity = dynoFloat(fallVelocity ?? 0.02);\n const dynoWanderScale = dynoFloat(wanderScale ?? 0.01);\n const dynoWanderVariance = dynoFloat(wanderVariance ?? 2);\n const dynoColor1 = dynoVec3(color1 ?? new THREE.Color(1, 1, 1));\n const dynoColor2 = dynoVec3(color2 ?? new THREE.Color(0.5, 0.5, 1));\n const dynoOpacity = dynoFloat(opacity ?? 1);\n\n const dynoTime = dynoFloat(0);\n const globalOffset = dynoVec3(new THREE.Vector3(0, 0, 0));\n const dynoMin = dynoVec3(box.min);\n const dynoMax = dynoVec3(box.max);\n const dynoMinY = dynoFloat(minY ?? Number.NEGATIVE_INFINITY);\n const minMax = sub(dynoMax, dynoMin);\n const snow = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index not defined\");\n }\n const random = hashVec4(index);\n const randomW = split(random).outputs.w;\n let position = vec3(random);\n\n let size = fract(mul(randomW, dynoConst(\"float\", 100)));\n size = sin(mul(dynoLiteral(\"float\", \"PI\"), size));\n size = add(dynoMinScale, mul(size, sub(dynoMaxScale, dynoMinScale)));\n const scales = mul(size, dynoAnisoScale);\n\n const intensity = fract(mul(randomW, dynoConst(\"float\", 10)));\n const hue = fract(randomW);\n const color = mix(dynoColor1, dynoColor2, hue);\n const rgb = mul(color, intensity);\n\n const random2 = hashVec4(\n combine({\n vectorType: \"ivec2\",\n x: index,\n y: dynoConst(\"int\", 0x1ab5),\n }),\n );\n let perturb = vec3(random2);\n let timeOffset = mul(split(random2).outputs.w, dynoWanderVariance);\n timeOffset = add(dynoTime, timeOffset);\n\n position = add(position, globalOffset);\n const modulo = mod(\n position,\n dynoConst(\"vec3\", new THREE.Vector3(1, 1, 1)),\n );\n position = add(dynoMin, mul(minMax, modulo));\n\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n\n perturb = sin(add(vec3(timeOffset), perturb));\n perturb = mul(perturb, dynoWanderScale);\n let center = add(position, perturb);\n\n let centerY = split(center).outputs.y;\n centerY = max(dynoMinY, centerY);\n center = combine({ vector: center, y: centerY });\n\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgb,\n opacity: dynoOpacity,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ object, time, deltaTime }) => {\n dynoTime.value = time;\n const _updated = transformer.update(snow);\n\n const fallDelta = dynoFallDirection.value\n .clone()\n .multiplyScalar(dynoFallVelocity.value * deltaTime);\n globalOffset.value.add(fallDelta);\n\n // Enable/disable splats based on opacity\n object.visible = dynoOpacity.value > 0;\n\n onFrame?.({ object, time, deltaTime });\n snow.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return {\n snow,\n min: dynoMin,\n max: dynoMax,\n minY: dynoMinY,\n color1: dynoColor1,\n color2: dynoColor2,\n opacity: dynoOpacity,\n fallVelocity: dynoFallVelocity,\n wanderVariance: dynoWanderVariance,\n wanderScale: dynoWanderScale,\n fallDirection: dynoFallDirection,\n minScale: dynoMinScale,\n maxScale: dynoMaxScale,\n anisoScale: dynoAnisoScale,\n };\n}\n\nexport type SNOW_RESULT_TYPE = ReturnType;\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n Gsplat,\n add,\n combineGsplat,\n dot,\n dynoBlock,\n dynoConst,\n greaterThanEqual,\n gsplatNormal,\n mul,\n neg,\n select,\n splitGsplat,\n} from \"../dyno\";\n\nexport function makeNormalColorModifier(splatToView: SplatTransformer) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let normal = gsplatNormal(gsplat);\n\n const viewGsplat = splatToView.applyGsplat(gsplat);\n const viewCenter = splitGsplat(viewGsplat).outputs.center;\n const viewNormal = gsplatNormal(viewGsplat);\n const splatDot = dot(viewCenter, viewNormal);\n\n const sameDir = greaterThanEqual(splatDot, dynoConst(\"float\", 0));\n normal = select(sameDir, neg(normal), normal);\n const rgb = add(\n mul(normal, dynoConst(\"float\", 0.5)),\n dynoConst(\"float\", 0.5),\n );\n\n gsplat = combineGsplat({ gsplat, rgb });\n return { gsplat };\n });\n}\n\nexport function setWorldNormalColor(splats: SplatMesh) {\n splats.enableWorldToView = true;\n splats.worldModifier = makeNormalColorModifier(splats.context.worldToView);\n splats.updateGenerator();\n}\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n type DynoVal,\n Gsplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n neg,\n normalizedDepth,\n select,\n split,\n splitGsplat,\n sub,\n} from \"../dyno\";\n\nexport function makeDepthColorModifier(\n splatToView: SplatTransformer,\n minDepth: DynoVal<\"float\">,\n maxDepth: DynoVal<\"float\">,\n reverse: DynoVal<\"bool\">,\n) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let { center } = splitGsplat(gsplat).outputs;\n center = splatToView.apply(center);\n const { z } = split(center).outputs;\n let depth = normalizedDepth(neg(z), minDepth, maxDepth);\n depth = select(reverse, sub(dynoConst(\"float\", 1), depth), depth);\n\n gsplat = combineGsplat({ gsplat, r: depth, g: depth, b: depth });\n return { gsplat };\n });\n}\n\nexport function setDepthColor(\n splats: SplatMesh,\n minDepth: number,\n maxDepth: number,\n reverse?: boolean,\n) {\n splats.enableWorldToView = true;\n const dynoMinDepth = dynoConst(\"float\", minDepth);\n const dynoMaxDepth = dynoConst(\"float\", maxDepth);\n const dynoReverse = dynoConst(\"bool\", reverse ?? false);\n splats.worldModifier = makeDepthColorModifier(\n splats.context.worldToView,\n dynoMinDepth,\n dynoMaxDepth,\n dynoReverse,\n );\n splats.updateGenerator();\n return {\n minDepth: dynoMinDepth,\n maxDepth: dynoMaxDepth,\n reverse: dynoReverse,\n };\n}\n","import * as THREE from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport interface SparkXrOptions {\n renderer: THREE.WebGLRenderer;\n // Element to attach enter/exit click handler to\n element?: HTMLElement;\n // ID of element to attach enter/exit click handler to\n elementId?: string;\n // Create a button to enter/exit XR\n // Optionally provide button text or HTML\n // Default is true - create a button\n button?: boolean | SparkXrButton;\n // Blur out element when mouse leaves it\n // Default is 0.5 - 50% opacity\n onMouseLeaveOpacity?: number;\n // Default is \"vrar\" - Try VR then AR\n mode?: \"vr\" | \"ar\" | \"arvr\" | \"vrar\";\n // fixedFoveation: XrManager.setFoveation(...)\n fixedFoveation?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRWebGLLayer/XRWebGLLayer#framebufferscalefactor\n // Default is 0.5 - 50% resolution for better frame rate\n frameBufferScaleFactor?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpace#reference_space_types\n // Defaults is \"local\" - origin is the user's position when starting XR session\n referenceSpaceType?: \"local\" | \"local-floor\" | \"unbounded\" | \"viewer\";\n // Enable hand tracking\n // Default is false\n enableHands?: boolean;\n // Allow WebXR entry on mobile phones that expose navigator.xr\n // Defaults to false - blocks phones to avoid unusable split-screen modes\n allowMobileXr?: boolean;\n // Session init options\n // Default is empty - no additional options\n sessionInit?: XRSessionInit;\n // Callback function called when SparkXr is ready\n // Default is undefined - no callback\n onReady?: (supported: boolean) => void | Promise;\n // Callback function called when entering XR\n // Default is undefined - no callback\n onEnterXr?: () => void | Promise;\n // Callback function called when exiting XR\n // Default is undefined - no callback\n onExitXr?: () => void | Promise;\n // ztroller movement and rotation options\n controllers?: SparkXrControllers;\n}\n\nexport interface SparkXrButton {\n enterXrHtml?: string;\n exitXrHtml?: string;\n enterVrHtml?: string;\n exitVrHtml?: string;\n enterArHtml?: string;\n exitArHtml?: string;\n enterXrText?: string;\n exitXrText?: string;\n enterVrText?: string;\n exitVrText?: string;\n enterArText?: string;\n exitArText?: string;\n style?: CSSStyleDeclaration;\n enterStyle?: CSSStyleDeclaration;\n exitStyle?: CSSStyleDeclaration;\n zIndex?: number;\n}\n\nexport type XrGamepads = {\n left?: Gamepad;\n right?: Gamepad;\n leftIsHand?: boolean;\n rightIsHand?: boolean;\n};\n\nexport interface SparkXrControllers {\n moveSpeed?: number;\n rotateSpeed?: number;\n rollSpeed?: number;\n fastMultiplier?: number;\n slowMultiplier?: number;\n moveHeading?: boolean;\n moveDirection?: boolean;\n getMove?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getRotate?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getFast?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n getSlow?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n}\n\nexport const DEFAULT_CONTROLLER_MOVE_SPEED = 1.0;\nexport const DEFAULT_CONTROLLER_ROTATE_SPEED = 4.0;\nexport const DEFAULT_CONTROLLER_ROLL_SPEED = 2.0;\nexport const DEFAULT_CONTROLLER_FAST_MULTIPLIER = 5;\nexport const DEFAULT_CONTROLLER_SLOW_MULTIPLIER = 1 / 5;\nexport const DEFAULT_CONTROLLER_MOVE_HEADING = false;\n\nexport const DEFAULT_CONTROLLER_GETMOVE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.leftIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(\n gamepads.left?.axes[2] ?? 0,\n (gamepads.left?.buttons[0].value ?? 0) -\n (gamepads.left?.buttons[1].value ?? 0),\n gamepads.left?.axes[3] ?? 0,\n );\nexport const DEFAULT_CONTROLLER_GETROTATE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(gamepads.right?.axes[2] ?? 0, 0, 0);\nexport const DEFAULT_CONTROLLER_GETFAST = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[0]?.pressed ?? false);\nexport const DEFAULT_CONTROLLER_GETSLOW = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[1]?.pressed ?? false);\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.015,\n t1: 0.012,\n t2: 0.0105,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nconst XR_HEADSET_HINTS =\n /Quest|OculusBrowser|VisionOS|XRBrowser|Pico|Lynx|MagicLeap/i;\n\nfunction isLikelyMobilePhone() {\n const ua = navigator.userAgent ?? \"\";\n if (XR_HEADSET_HINTS.test(ua)) {\n return false;\n }\n\n const androidMobile = /Android/i.test(ua) || /Mobile/i.test(ua);\n if (androidMobile) {\n return true;\n }\n\n const uaData = (\n navigator as Navigator & {\n userAgentData?: { mobile?: boolean };\n }\n ).userAgentData;\n if (uaData && typeof uaData.mobile === \"boolean\") {\n return uaData.mobile;\n }\n\n return false;\n}\n\nexport type Joint = {\n position: THREE.Vector3;\n quaternion: THREE.Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\n\nexport class SparkXr {\n renderer: THREE.WebGLRenderer;\n xr?: XRSystem;\n element?: HTMLElement;\n button?: SparkXrButton;\n mode: XRSessionMode | \"initializing\" | \"not_supported\";\n sessionInit?: XRSessionInit;\n session?: XRSession;\n onEnterXr?: () => void;\n onExitXr?: () => void;\n\n controllers?: SparkXrControllers;\n lastControllersUpdate = 0;\n\n enableHands: boolean;\n hands: XrHand[] = [];\n\n constructor(options: SparkXrOptions) {\n this.renderer = options.renderer;\n this.xr = navigator.xr;\n this.mode = \"initializing\";\n this.onEnterXr = options.onEnterXr;\n this.onExitXr = options.onExitXr;\n this.enableHands = options.enableHands ?? false;\n this.controllers = options.controllers;\n\n Promise.resolve()\n .then(() => {\n if (!this.xr) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (!options.allowMobileXr && isLikelyMobilePhone()) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (this.enableHands) {\n this.hands = [new XrHand(Hand.left), new XrHand(Hand.right)];\n }\n\n let element: HTMLElement | undefined = undefined;\n let button: SparkXrButton | undefined = undefined;\n if (options.element) {\n element = options.element;\n } else if (options.elementId) {\n element = document.getElementById(options.elementId) ?? undefined;\n } else {\n element = SparkXr.createButton();\n button =\n options.button == null || typeof options.button === \"boolean\"\n ? {}\n : options.button;\n }\n\n if (!element) {\n throw new Error(\"No element or button provided\");\n }\n\n element.style.display = \"none\";\n element.classList.add(\"hidden\");\n this.button = button;\n this.element = element;\n\n const opacity = options.onMouseLeaveOpacity?.toString();\n if (opacity !== undefined) {\n element.addEventListener(\"mouseleave\", () => {\n element.style.opacity = opacity;\n });\n element.addEventListener(\"mouseenter\", () => {\n element.style.opacity = \"\";\n });\n }\n\n return this.initializeXr(options);\n })\n .then(() => {\n return options.onReady?.(this.mode !== \"not_supported\");\n })\n .catch((error) => {\n alert(`Error initializing SparkXr: ${error}`);\n });\n }\n\n private async initializeXr(options: SparkXrOptions) {\n if (!this.xr || !this.element) {\n return;\n }\n const element = this.element;\n\n const modes = {\n vr: [\"immersive-vr\"],\n ar: [\"immersive-ar\"],\n arvr: [\"immersive-ar\", \"immersive-vr\"],\n vrar: [\"immersive-vr\", \"immersive-ar\"],\n }[options.mode ?? \"vrar\"] as XRSessionMode[] | undefined;\n if (!modes) {\n throw new Error(`Invalid mode: ${options.mode}`);\n }\n\n let supported = null;\n for (const mode of modes) {\n if (await this.xr.isSessionSupported(mode)) {\n supported = mode;\n break;\n }\n }\n\n if (!supported) {\n this.mode = \"not_supported\";\n return;\n }\n this.mode = supported;\n\n const referenceSpaceType = options.referenceSpaceType ?? \"local\";\n\n this.renderer.xr.enabled = true;\n this.renderer.xr.setReferenceSpaceType(referenceSpaceType);\n\n if (options.fixedFoveation !== undefined) {\n this.renderer.xr.setFoveation(options.fixedFoveation);\n }\n const frameBufferScaleFactor = options.frameBufferScaleFactor ?? 0.5;\n this.renderer.xr.setFramebufferScaleFactor(frameBufferScaleFactor);\n\n const optionalFeatures = options.sessionInit?.optionalFeatures ?? [];\n if (options.enableHands) {\n optionalFeatures.push(\"hand-tracking\");\n }\n\n const requiredFeatures = options.sessionInit?.requiredFeatures ?? [];\n requiredFeatures.push(referenceSpaceType);\n\n this.sessionInit = {\n ...options.sessionInit,\n optionalFeatures,\n requiredFeatures,\n };\n // console.log(\"* this.sessionInit\", this.sessionInit);\n\n element.addEventListener(\"click\", () => {\n this.toggleXr();\n });\n\n this.updateElement();\n }\n\n async toggleXr() {\n if (!this.xr || !this.sessionInit) {\n // console.log(\"* !this.xr || !this.sessionInit\");\n return;\n }\n\n if (!this.session) {\n try {\n const mode = this.mode as XRSessionMode;\n const session = await this.xr.requestSession(mode, this.sessionInit);\n this.session = session;\n // console.log(\"* this.session\", this.session);\n\n const onSessionEnded = () => {\n session?.removeEventListener(\"end\", onSessionEnded);\n session?.removeEventListener(\"visibilitychange\", visibilityChanged);\n this.session = undefined;\n\n this.updateElement();\n this.onExitXr?.();\n };\n\n let lastVisibilityState = session.visibilityState;\n const visibilityChanged = () => {\n if (\n session?.visibilityState === \"visible-blurred\" &&\n lastVisibilityState === \"visible\"\n ) {\n session?.end();\n }\n lastVisibilityState = session?.visibilityState;\n };\n\n this.session?.addEventListener(\"end\", onSessionEnded);\n this.session?.addEventListener(\"visibilitychange\", visibilityChanged);\n\n await this.renderer.xr.setSession(this.session);\n // console.log(\"* setSession\");\n\n return this.onEnterXr?.();\n } catch (error) {\n console.error(\"Error requesting XR session\", error);\n return;\n }\n } else {\n this.session.end();\n // console.log(\"* end session\");\n }\n }\n\n private updateElement() {\n const mode = this.mode as XRSessionMode;\n const element = this.element;\n if (element) {\n element.style.display = \"\";\n element.classList.remove(\"hidden\");\n\n const button = typeof this.button === \"boolean\" ? {} : this.button;\n if (button) {\n if (!this.session) {\n const enterHtml =\n (mode === \"immersive-vr\"\n ? button.enterVrHtml\n : button.enterArHtml) ?? button.enterXrHtml;\n const enterText =\n (mode === \"immersive-vr\"\n ? button.enterVrText\n : button.enterArText) ?? button.enterXrText;\n if (enterHtml) {\n element.innerHTML = enterHtml;\n } else if (enterText) {\n element.textContent = enterText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"ENTER VR\" : \"ENTER AR\";\n }\n } else {\n const exitHtml =\n (mode === \"immersive-vr\" ? button.exitVrHtml : button.exitArHtml) ??\n button.exitXrHtml;\n const exitText =\n (mode === \"immersive-vr\" ? button.exitVrText : button.exitArText) ??\n button.exitXrText;\n if (exitHtml) {\n element.innerHTML = exitHtml;\n } else if (exitText) {\n element.textContent = exitText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"EXIT VR\" : \"EXIT AR\";\n }\n }\n\n element.style.display = \"\";\n }\n }\n }\n\n private static createButton() {\n const button = document.createElement(\"button\");\n Object.assign(button.style, {\n position: \"absolute\",\n bottom: \"20px\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n padding: \"40px 40px\",\n border: \"2px solid #fff\",\n borderRadius: \"16px\",\n background: \"rgba(0,0,0,0.1)\",\n color: \"#fff\",\n font: \"bold 28px sans-serif\",\n textAlign: \"center\",\n userSelect: \"none\",\n zIndex: \"999\",\n });\n document.body.appendChild(button);\n return button;\n }\n\n xrSupported() {\n return !!this.xr;\n }\n\n static JointEnum = JointEnum;\n static JOINT_IDS = JOINT_IDS;\n static NUM_JOINTS = NUM_JOINTS;\n static JOINT_INDEX = JOINT_INDEX;\n static JOINT_RADIUS = JOINT_RADIUS;\n static JOINT_SEGMENTS = JOINT_SEGMENTS;\n static JOINT_SEGMENT_STEPS = JOINT_SEGMENT_STEPS;\n static JOINT_TIPS = JOINT_TIPS;\n static FINGER_TIPS = FINGER_TIPS;\n static Hand = Hand;\n static HANDS = HANDS;\n\n left() {\n return this.hands[0];\n }\n\n right() {\n return this.hands[1];\n }\n\n updateControllers(camera: THREE.Camera) {\n const cameraFrame = camera.parent as THREE.Group;\n\n const now = performance.now();\n const deltaTime = (now - (this.lastControllersUpdate || now)) / 1000;\n this.lastControllersUpdate = now;\n\n const xrGamepads: XrGamepads = {};\n for (const source of this.renderer.xr.getSession()?.inputSources ?? []) {\n const gamepad = source.gamepad;\n if (\n gamepad &&\n (source.handedness === \"left\" || source.handedness === \"right\")\n ) {\n xrGamepads[source.handedness] = gamepad;\n if (source.handedness === \"left\") {\n xrGamepads.leftIsHand = !!source.hand;\n } else if (source.handedness === \"right\") {\n xrGamepads.rightIsHand = !!source.hand;\n }\n }\n }\n\n const rotate = (\n this.controllers?.getRotate ?? DEFAULT_CONTROLLER_GETROTATE\n )(xrGamepads, this);\n rotate.multiply(\n new THREE.Vector3(\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rollSpeed ?? DEFAULT_CONTROLLER_ROLL_SPEED,\n ),\n );\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler(-rotate.y, -rotate.x, rotate.z, \"YXZ\");\n const quat = new THREE.Quaternion().setFromEuler(eulers);\n\n const pivot = camera.getWorldPosition(new THREE.Vector3());\n cameraFrame.parent?.worldToLocal(pivot);\n\n cameraFrame.position.sub(pivot);\n cameraFrame.position.applyQuaternion(quat);\n cameraFrame.position.add(pivot);\n cameraFrame.quaternion.premultiply(quat);\n }\n\n const move = (this.controllers?.getMove ?? DEFAULT_CONTROLLER_GETMOVE)(\n xrGamepads,\n this,\n );\n\n let moveSpeed =\n this.controllers?.moveSpeed ?? DEFAULT_CONTROLLER_MOVE_SPEED;\n if (\n (this.controllers?.getFast ?? DEFAULT_CONTROLLER_GETFAST)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_FAST_MULTIPLIER;\n }\n if (\n (this.controllers?.getSlow ?? DEFAULT_CONTROLLER_GETSLOW)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_SLOW_MULTIPLIER;\n }\n\n if (this.controllers?.moveHeading) {\n move.applyQuaternion(camera.quaternion);\n } else if (this.controllers?.moveDirection) {\n SCRATCH_EULER.setFromQuaternion(camera.quaternion, \"YXZ\");\n SCRATCH_EULER.x = 0;\n SCRATCH_EULER.z = 0;\n SCRATCH_QUAT_A.setFromEuler(SCRATCH_EULER);\n move.applyQuaternion(SCRATCH_QUAT_A);\n }\n move.applyQuaternion(cameraFrame.quaternion);\n\n move.multiplyScalar(deltaTime * moveSpeed);\n cameraFrame.position.add(move);\n }\n\n updateHands({ xrFrame }: { xrFrame: XRFrame }) {\n const xrSession = this.renderer.xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = this.renderer.xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n for (const hand of this.hands) {\n if (hand) {\n hand.lastJoints = hand.joints;\n hand.joints = undefined;\n }\n }\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n const hand = inputSource.handedness as Hand;\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n if (!xrHand) {\n continue;\n }\n\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n\n if (!xrHand.joints) {\n xrHand.joints = {};\n }\n xrHand.joints[jointId] = {\n position: new THREE.Vector3(position.x, position.y, position.z),\n quaternion: new THREE.Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: JOINT_RADIUS[jointId],\n };\n }\n }\n }\n }\n }\n\n makeJointSplats(hand: Hand): JointSplats {\n const mesh = new JointSplats(hand);\n mesh.onFrame = () => {\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n const joints = xrHand?.joints;\n mesh.updateJoints(joints);\n };\n return mesh;\n }\n\n snapshotHands(time: number) {\n const hands = [\n this.hands[0]?.snapshotJoints(),\n this.hands[1]?.snapshotJoints(),\n ];\n return { time, hands };\n }\n}\n\ntype JointSnapshot = { pos: number[]; quat: number[]; radius: number };\ntype HandSnapshot = { [key in JointId]?: JointSnapshot };\ntype HandsSnapshot = {\n time: number;\n hands: (HandSnapshot | undefined)[];\n};\n\nconst round4 = (value: number) => Math.round(value * 10000) / 10000;\nconst SCRATCH_EULER = new THREE.Euler(0, 0, 0, \"YXZ\");\nconst SCRATCH_QUAT_A = new THREE.Quaternion();\nconst SCRATCH_QUAT_B = new THREE.Quaternion();\n\nexport function lerpHandsSnapshots(\n snapshots: HandsSnapshot[],\n time: number,\n): HandsSnapshot | null {\n if (!snapshots.length) {\n return null;\n }\n\n const first = snapshots[0];\n const last = snapshots[snapshots.length - 1];\n\n if (time < first.time || time > last.time) {\n return null;\n }\n\n const floorIndex = findSnapshotFloorIndex(snapshots, time);\n if (floorIndex === -1) {\n return null;\n }\n\n const from = snapshots[floorIndex];\n const to = snapshots[floorIndex + 1];\n if (!to) {\n return cloneSnapshot(from, time);\n }\n\n const span = to.time - from.time;\n const factor = span > 0 ? (time - from.time) / span : 0;\n\n return interpolateSnapshots(from, to, factor, time);\n}\n\nfunction interpolateSnapshots(\n from: HandsSnapshot,\n to: HandsSnapshot,\n factor: number,\n time: number,\n): HandsSnapshot {\n const maxHands = Math.max(from.hands.length, to.hands.length);\n const hands = Array.from({ length: maxHands }, (_, handIndex) =>\n lerpHandSnapshot(from.hands[handIndex], to.hands[handIndex], factor),\n );\n return { time, hands };\n}\n\nfunction cloneSnapshot(snapshot: HandsSnapshot, time: number): HandsSnapshot {\n return {\n time,\n hands: snapshot.hands.map((hand) => cloneHandSnapshot(hand)),\n };\n}\n\nexport class XrHand {\n hand: Hand;\n joints?: HandJoints;\n lastJoints?: HandJoints;\n\n constructor(hand: Hand) {\n this.hand = hand;\n }\n\n static newFromSnapshot(hand: Hand, snapshot: HandSnapshot) {\n const h = new XrHand(hand);\n h.joints = {};\n for (const jointId of JOINT_IDS) {\n const joint = snapshot[jointId];\n if (!joint) {\n continue;\n }\n h.joints[jointId] = {\n position: new THREE.Vector3(joint.pos[0], joint.pos[1], joint.pos[2]),\n quaternion: new THREE.Quaternion(\n joint.quat[0],\n joint.quat[1],\n joint.quat[2],\n joint.quat[3],\n ),\n radius: joint.radius,\n };\n }\n return h;\n }\n\n valid() {\n return !!this.joints;\n }\n\n snapshotJoints() {\n if (!this.joints) {\n return undefined;\n }\n\n const snapshot: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (!joint) {\n continue;\n }\n snapshot[jointId] = {\n pos: joint.position.toArray().map(round4),\n quat: joint.quaternion.toArray().map(round4),\n radius: round4(joint.radius),\n };\n }\n return snapshot;\n }\n\n toFlatArray() {\n if (!this.joints) {\n return undefined;\n }\n const array = new Float32Array(1 + 25 * 7);\n array[0] = this.hand === Hand.left ? 0 : 1;\n let index = 1;\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (joint) {\n array[index] = joint.position.x;\n array[index + 1] = joint.position.y;\n array[index + 2] = joint.position.z;\n array[index + 3] = joint.quaternion.x;\n array[index + 4] = joint.quaternion.y;\n array[index + 5] = joint.quaternion.z;\n array[index + 6] = joint.quaternion.w;\n }\n index += 7;\n }\n return array;\n }\n}\n\nfunction findSnapshotFloorIndex(snapshots: HandsSnapshot[], time: number) {\n let low = 0;\n let high = snapshots.length - 1;\n while (low <= high) {\n const mid = (low + high) >> 1;\n if (snapshots[mid].time <= time) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n return high;\n}\n\nfunction lerpHandSnapshot(\n fromHand?: HandSnapshot,\n toHand?: HandSnapshot,\n factor = 0,\n) {\n if (!fromHand || !toHand) {\n return undefined;\n }\n const hand: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = lerpJointSnapshot(fromHand[jointId], toHand[jointId], factor);\n if (joint) {\n hand[jointId] = joint;\n }\n }\n return hand;\n}\n\nfunction lerpJointSnapshot(\n fromJoint?: JointSnapshot,\n toJoint?: JointSnapshot,\n factor = 0,\n) {\n if (!fromJoint || !toJoint) {\n return undefined;\n }\n const pos = fromJoint.pos.map(\n (value, index) => value + (toJoint.pos[index] - value) * factor,\n );\n const quat = SCRATCH_QUAT_A.fromArray(fromJoint.quat)\n .slerp(SCRATCH_QUAT_B.fromArray(toJoint.quat), factor)\n .toArray();\n const radius =\n fromJoint.radius + (toJoint.radius - fromJoint.radius) * factor;\n\n return { pos, quat, radius };\n}\n\nfunction cloneHandSnapshot(hand?: HandSnapshot) {\n if (!hand) {\n return undefined;\n }\n const clone: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = hand[jointId];\n if (joint) {\n clone[jointId] = cloneJointSnapshot(joint);\n }\n }\n return clone;\n}\n\nfunction cloneJointSnapshot(joint: JointSnapshot): JointSnapshot {\n return {\n pos: [...joint.pos],\n quat: [...joint.quat],\n radius: joint.radius,\n };\n}\n\nexport class JointSplats extends SplatMesh {\n hand: Hand;\n\n constructor(hand: Hand) {\n super({});\n this.hand = hand;\n }\n\n private scratchCenter = new THREE.Vector3();\n private scratchQuat = new THREE.Quaternion(0, 0, 0, 1);\n private scratchScales = new THREE.Vector3().setScalar(0.01);\n private scratchColor = new THREE.Color(1, 1, 1);\n\n updateJoints(joints?: HandJoints) {\n this.visible = false;\n\n if (!joints || !this.packedSplats) {\n return;\n }\n\n this.visible = true;\n let splatIndex = 0;\n\n for (const jointId of JOINT_IDS) {\n const joint = joints[jointId];\n if (!joint) {\n continue;\n }\n this.scratchCenter.copy(joint.position);\n this.scratchQuat.copy(joint.quaternion);\n this.scratchScales.set(\n joint.radius,\n 0.75 * joint.radius,\n 1.5 * joint.radius,\n );\n // this.scratchColor.set((joint.radius * 123) % 1, (joint.radius * 345) % 1, (joint.radius * 234) % 1);\n const opacity = 0.75;\n\n this.packedSplats.setSplat(\n splatIndex,\n this.scratchCenter,\n this.scratchScales,\n this.scratchQuat,\n opacity,\n this.scratchColor,\n );\n splatIndex += 1;\n }\n\n this.packedSplats.numSplats = splatIndex;\n this.packedSplats.needsUpdate = true;\n this.numSplats = splatIndex;\n this.updateVersion();\n }\n}\n","import {\n Color,\n Matrix4,\n type Object3D,\n Quaternion,\n Vector3,\n type WebXRManager,\n} from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\n// Experimental WebXR hand tracking and movement\n\nconst DEFAULT_MOVE_INERTIA = 0.5;\nconst DEFAULT_ROTATE_INERTIA = 0.5;\nconst TOUCH_BIAS = 0.0;\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.02,\n t1: 0.014,\n t2: 0.0115,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nexport type Joint = {\n position: Vector3;\n quaternion: Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\nexport type HandsJoints = { [key in Hand]?: HandJoints };\n\nexport class XrHands {\n hands: HandsJoints = {};\n last: HandsJoints = {};\n\n values: Record = {};\n tests: Record = {};\n lastTests: Record = {};\n\n updated = false;\n\n update({ xr, xrFrame }: { xr: WebXRManager; xrFrame: XRFrame }) {\n const xrSession = xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n this.last = this.hands;\n this.lastTests = this.tests;\n\n this.hands = {};\n this.values = {};\n this.tests = {};\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n\n const hand = inputSource.handedness as Hand;\n this.hands[hand] = {};\n\n // Iterate over JointId\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n this.hands[hand][jointId] = {\n position: new Vector3(position.x, position.y, position.z),\n quaternion: new Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: jointPose.radius || 0.001,\n };\n }\n }\n }\n }\n\n for (const hand of HANDS) {\n for (const { key, value } of [\n { key: `${hand}AllTips`, value: this.allTipsTouching(hand) },\n {\n key: `${hand}IndexThumb`,\n value: this.touching(hand, \"i4\", hand, \"t3\"),\n },\n {\n key: `${hand}MiddleThumb`,\n value: this.touching(hand, \"m4\", hand, \"t3\"),\n },\n {\n key: `${hand}RingThumb`,\n value: this.touching(hand, \"r4\", hand, \"t3\"),\n },\n {\n key: `${hand}PinkyThumb`,\n value: this.touching(hand, \"p4\", hand, \"t3\"),\n },\n { key: `${hand}TriTips`, value: this.triTipsTouching(hand) },\n ]) {\n this.values[key] = value;\n this.tests[key] =\n value === 1.0\n ? true\n : value === 0.0\n ? false\n : (this.lastTests[key] ?? false);\n }\n }\n }\n\n makeGhostMesh(): SplatMesh {\n const center = new Vector3();\n const scales = new Vector3(0.01, 0.01, 0.01);\n const quaternion = new Quaternion(0, 0, 0, 1);\n const color = new Color(1, 1, 1);\n const CYCLE = Math.PI * 3;\n const WHITE = new Color(1, 1, 1);\n let opacity = 1.0;\n\n const mesh = new SplatMesh({\n onFrame: () => {\n if (!mesh.packedSplats) {\n return;\n }\n let splatIndex = 0;\n for (const handedness of HANDS) {\n const xrHand = this.hands[handedness];\n for (const [index, segment] of JOINT_SEGMENTS.entries()) {\n for (let i = 1; i < segment.length; ++i) {\n const segmentSplats = JOINT_SEGMENT_STEPS[index][i - 1] * 2;\n const lastSegment = i + 1 === segment.length;\n const jointA = xrHand?.[segment[i - 1]];\n const jointB = xrHand?.[segment[i]];\n\n for (let j = 0; j < segmentSplats; ++j) {\n const t = (j + 0.5) / segmentSplats;\n opacity = 0.0;\n if (jointA && jointB) {\n center.copy(jointA.position).lerp(jointB.position, t);\n quaternion\n .copy(jointA.quaternion)\n .slerp(jointB.quaternion, t);\n const radiusA = JOINT_RADIUS[segment[i - 1]];\n const radiusB = JOINT_RADIUS[segment[i]];\n let radius = (1 - t) * radiusA + t * radiusB;\n if (lastSegment && t > 0.8) {\n // Round out finger tips\n radius *= Math.sqrt(1 - ((t - 0.8) / 0.2) ** 2);\n }\n scales.set(0.65 * radius, 0.5 * radius, 0.003);\n color.set(\n 0.55 + 0.45 * Math.sin(center.x * CYCLE),\n 0.55 + 0.45 * Math.sin(center.y * CYCLE),\n 0.55 + 0.45 * Math.sin(center.z * CYCLE),\n );\n if (handedness === \"right\") {\n color.set(1 - color.r, 1 - color.g, 1 - color.b);\n }\n opacity = 0.75;\n }\n mesh.packedSplats.setSplat(\n splatIndex,\n center,\n scales,\n quaternion,\n opacity,\n color,\n );\n splatIndex += 1;\n }\n }\n }\n }\n mesh.packedSplats.numSplats = splatIndex;\n mesh.packedSplats.needsUpdate = true;\n mesh.numSplats = splatIndex;\n mesh.updateVersion();\n },\n });\n return mesh;\n }\n\n distance(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const hA = last ? this.last[handA] : this.hands[handA];\n const hB = last ? this.last[handB] : this.hands[handB];\n const jA = hA?.[jointA];\n const jB = hB?.[jointB];\n if (!jA || !jB) {\n return Number.POSITIVE_INFINITY;\n }\n return jA.position.distanceTo(jB.position);\n }\n\n separation(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.distance(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return d - JOINT_RADIUS[jointA] - JOINT_RADIUS[jointB];\n }\n\n touching(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.separation(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return 1 - Math.max(0, Math.min(1, d / 0.01 - TOUCH_BIAS));\n }\n\n allTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"r4\", last),\n this.touching(hand, \"r4\", hand, \"p4\", last),\n // this.touching(hand, \"p4\", hand, \"t3\", last),\n );\n }\n\n triTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"t3\", last),\n );\n }\n}\n\nexport class HandMovement {\n xrHands: XrHands;\n control: Object3D;\n moveInertia: number;\n rotateInertia: number;\n\n lastGrip: { [key in Hand]?: Vector3 } = {};\n lastPivot: Vector3 = new Vector3();\n rotateVelocity = 0;\n velocity: Vector3 = new Vector3();\n\n constructor({\n xrHands,\n control,\n moveInertia,\n rotateInertia,\n }: {\n xrHands: XrHands;\n control: Object3D;\n moveInertia?: number;\n rotateInertia?: number;\n }) {\n this.xrHands = xrHands;\n this.control = control;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n }\n\n update(deltaTime: number) {\n const grip: { [key in Hand]?: Vector3 } = {};\n for (const handedness of HANDS) {\n const hand = this.xrHands.hands[handedness];\n if (hand && this.xrHands.tests[`${handedness}MiddleThumb`]) {\n grip[handedness] = new Vector3()\n .add(hand.t3?.position ?? new Vector3())\n .add(hand.i4?.position ?? new Vector3())\n .add(hand.m4?.position ?? new Vector3())\n .add(hand.r4?.position ?? new Vector3())\n .add(hand.p4?.position ?? new Vector3())\n .multiplyScalar(1 / 5);\n }\n }\n\n if (grip.left && grip.right && this.lastGrip.left && this.lastGrip.right) {\n const mid = grip.left.clone().add(grip.right).multiplyScalar(0.5);\n const lastMid = this.lastGrip.left\n .clone()\n .add(this.lastGrip.right)\n .multiplyScalar(0.5);\n this.lastPivot = mid;\n\n const delta = mid.clone().applyMatrix4(this.control.matrix);\n delta.sub(lastMid.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n\n const angle = Math.atan2(grip.left.z - mid.z, grip.left.x - mid.x);\n const lastAngle = Math.atan2(\n this.lastGrip.left.z - lastMid.z,\n this.lastGrip.left.x - lastMid.x,\n );\n // Find closest rotation over circle between angle and lastAngle\n let closestAngle = angle - lastAngle;\n if (closestAngle > Math.PI) {\n closestAngle -= Math.PI * 2;\n } else if (closestAngle < -Math.PI) {\n closestAngle += Math.PI * 2;\n }\n const rotateVelocity = closestAngle / deltaTime;\n\n const blend = Math.exp(-20 * deltaTime);\n this.rotateVelocity =\n this.rotateVelocity * blend + rotateVelocity * (1 - blend);\n } else {\n this.rotateVelocity *= Math.exp(-deltaTime / this.rotateInertia);\n\n if (grip.left && this.lastGrip.left) {\n const delta = grip.left.clone().applyMatrix4(this.control.matrix);\n delta.sub(this.lastGrip.left.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else if (grip.right && this.lastGrip.right) {\n const delta = grip.right.clone().applyMatrix4(this.control.matrix);\n delta.sub(\n this.lastGrip.right.clone().applyMatrix4(this.control.matrix),\n );\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else {\n this.velocity.multiplyScalar(Math.exp(-deltaTime / this.moveInertia));\n }\n }\n\n const negPivot = this.lastPivot.clone().negate();\n const rotate = new Matrix4()\n .makeTranslation(negPivot)\n .premultiply(new Matrix4().makeRotationY(this.rotateVelocity * deltaTime))\n .premultiply(new Matrix4().makeTranslation(this.lastPivot));\n this.control.matrix.multiply(rotate);\n this.control.matrix.decompose(\n this.control.position,\n this.control.quaternion,\n this.control.scale,\n );\n this.control.updateMatrixWorld(true);\n\n this.control.position.sub(this.velocity.clone().multiplyScalar(deltaTime));\n this.lastGrip = grip;\n }\n}\n","import * as THREE from \"three\";\nimport { isAndroid, isIos } from \"./utils\";\n\n// Spark controls for keyboard + mouse, game pad, or mobile multi-touch\n\nconst DEFAULT_MOVEMENT_SPEED = 1.0;\nconst DEFAULT_ROLL_SPEED = 2.0;\nconst DEFAULT_ROTATE_SPEED = 0.002;\nconst DEFAULT_SLIDE_SPEED = 0.006;\nconst DEFAULT_SCROLL_SPEED = 0.0015;\nconst DEFAULT_ROLL_SPRING = 0.0;\nconst DEFAULT_ROTATE_INERTIA = 0.15;\nconst DEFAULT_MOVE_INERTIA = 0.15;\nconst DEFAULT_STICK_THRESHOLD = 0.1;\nconst DEFAULT_FPS_ROTATE_SPEED = 2.0;\n// const DEFAULT_POINTER_ROLL_SCALE = 1.0;\nconst DEFAULT_POINTER_ROLL_SCALE = 0.0;\nconst DEFAULT_PRESS_MOVE_DELAY_MS = 500;\nconst DEFAULT_PRESS_MOVE_ACCEL_MS = 500;\n\n// Time limit for double-finger press (pinch etc)\nconst DUAL_PRESS_MS = 200;\n// Time limit for double-click/double-tap\nconst DOUBLE_PRESS_LIMIT_MS = 400;\n// Distance limit for double-click.\nconst DOUBLE_PRESS_DISTANCE = 25;\n\nconst MOVEMENT_THRESHOLD = 1.0e-4;\n\n// Standard WASD movement keys with R+F for up/down\nconst WASD_KEYCODE_MOVE = {\n KeyW: new THREE.Vector3(0, 0, -1),\n KeyS: new THREE.Vector3(0, 0, 1),\n KeyA: new THREE.Vector3(-1, 0, 0),\n KeyD: new THREE.Vector3(1, 0, 0),\n KeyE: new THREE.Vector3(0, 1, 0),\n KeyQ: new THREE.Vector3(0, -1, 0),\n};\n\n// Arrow key movement with PageUp/PageDown\nconst ARROW_KEYCODE_MOVE = {\n ArrowUp: new THREE.Vector3(0, 0, -1),\n ArrowDown: new THREE.Vector3(0, 0, 1),\n ArrowLeft: new THREE.Vector3(-1, 0, 0),\n ArrowRight: new THREE.Vector3(1, 0, 0),\n PageUp: new THREE.Vector3(0, 1, 0),\n PageDown: new THREE.Vector3(0, -1, 0),\n};\n\n// Rolling with Q/E\nconst QE_KEYCODE_ROTATE = {\n KeyQ: new THREE.Vector3(0, 0, 1),\n KeyE: new THREE.Vector3(0, 0, -1),\n};\n\n// Home/End/Insert/Delete for rotation\nconst ARROW_KEYCODE_ROTATE = {\n Home: new THREE.Vector3(0, -1, 0),\n End: new THREE.Vector3(0, 1, 0),\n Insert: new THREE.Vector3(-1, 0, 0),\n Delete: new THREE.Vector3(1, 0, 0),\n};\n\n// SparkControls provides simple, intuitive controls for navigating 3D space that\n// use the keyboard + mouse, game pad, or mobile multi-touch. Internally it\n// instantiates and updates a `FpsMovement` and `PointerControls` instance.\n\nexport class SparkControls {\n fpsMovement: FpsMovement;\n pointerControls: PointerControls;\n lastTime = 0;\n\n constructor({ canvas }: { canvas: HTMLCanvasElement }) {\n this.fpsMovement = new FpsMovement({});\n this.pointerControls = new PointerControls({ canvas });\n }\n\n update(control: THREE.Object3D, camera?: THREE.Camera) {\n const time = performance.now();\n const deltaTime = (time - (this.lastTime || time)) / 1000;\n this.lastTime = time;\n\n let updated = this.fpsMovement.update(deltaTime, control);\n if (this.pointerControls.update(deltaTime, control, camera)) {\n updated = true;\n }\n return updated;\n }\n}\n\n// FpsMovement implements controls that will be familiar to anyone who plays\n// First Person Shooters using keyboard + mouse or a gamepad. Creating a FpsMovement\n// instance provides many parameters for configuring the controls.\n//\n// When gamepads are connected, FpsMovement will always use gamepad index 0\n// for twin-stick movement and rotation.\n//\n// If xr is passed in, the WebXR controllers can be used as a split gamepad\n// to control movement and rotation. (tested on Quest 3)\n\nexport class FpsMovement {\n moveSpeed: number;\n rollSpeed: number;\n stickThreshold: number;\n rotateSpeed: number;\n keycodeMoveMapping: { [key: string]: THREE.Vector3 };\n keycodeRotateMapping: { [key: string]: THREE.Vector3 };\n gamepadMapping: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n capsMultiplier: number;\n shiftMultiplier: number;\n ctrlMultiplier: number;\n xr?: THREE.WebXRManager;\n // Enable/disable controls updates\n enable = true;\n extraMove = new THREE.Vector3();\n\n // Currently active event.key values\n keydown: { [key: string]: boolean };\n // Currently active event.code values\n keycode: { [key: string]: boolean };\n\n constructor({\n moveSpeed,\n rollSpeed,\n stickThreshold,\n rotateSpeed,\n keycodeMoveMapping,\n keycodeRotateMapping,\n gamepadMapping,\n capsMultiplier,\n shiftMultiplier,\n ctrlMultiplier,\n xr,\n }: {\n // Base movement speed (default DEFAULT_MOVEMENT_SPEED)\n moveSpeed?: number;\n // Base roll speed (default DEFAULT_ROLL_SPEED)\n rollSpeed?: number;\n // Stick threshold (default DEFAULT_STICK_THRESHOLD)\n stickThreshold?: number;\n // Speed of rotation when using gamepad or keys (default DEFAULT_FPS_ROTATE_SPEED)\n rotateSpeed?: number;\n // Maps keyboard keys to movement directions\n // (default {...WASD_KEYCODE_MOVE, ...ARROW_KEYCODE_MOVE})\n keycodeMoveMapping?: { [key: string]: THREE.Vector3 };\n // Maps keyboard keys to rotation directions\n // (default { ...ARROW_KEYCODE_ROTATE})\n keycodeRotateMapping?: { [key: string]: THREE.Vector3 };\n // Maps gamepad buttons to control actions\n // (default {4: \"rollLeft\", 5: \"rollRight\", 6: \"ctrl\", 7: \"shift\"})\n gamepadMapping?: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n // Speed multiplier when Caps Lock is active (default: 10)\n capsMultiplier?: number;\n // Speed multiplier when Shift is active (default: 5)\n shiftMultiplier?: number;\n // Speed multiplier when Ctrl is active (default: 1/5)\n ctrlMultiplier?: number;\n // Optional WebXR manager for XR controller stick support\n xr?: THREE.WebXRManager;\n } = {}) {\n this.moveSpeed = moveSpeed ?? DEFAULT_MOVEMENT_SPEED;\n this.rollSpeed = rollSpeed ?? DEFAULT_ROLL_SPEED;\n this.stickThreshold = stickThreshold ?? DEFAULT_STICK_THRESHOLD;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_FPS_ROTATE_SPEED;\n this.keycodeMoveMapping = keycodeMoveMapping ?? {\n ...WASD_KEYCODE_MOVE,\n ...ARROW_KEYCODE_MOVE,\n };\n this.keycodeRotateMapping = keycodeRotateMapping ?? {\n // ...QE_KEYCODE_ROTATE,\n ...ARROW_KEYCODE_ROTATE,\n };\n this.gamepadMapping = gamepadMapping ?? {\n 4: \"rollLeft\",\n 5: \"rollRight\",\n 6: \"ctrl\",\n 7: \"shift\",\n };\n this.capsMultiplier = capsMultiplier ?? 10.0;\n this.shiftMultiplier = shiftMultiplier ?? 5.0;\n this.ctrlMultiplier = ctrlMultiplier ?? 1.0 / 5.0;\n\n this.xr = xr;\n\n this.keydown = {};\n this.keycode = {};\n\n document.addEventListener(\"keydown\", (event) => {\n this.keydown[event.key] = true;\n this.keycode[event.code] = true;\n });\n document.addEventListener(\"keyup\", (event) => {\n this.keydown[event.key] = false;\n this.keycode[event.code] = false;\n });\n window.addEventListener(\"blur\", () => {\n this.keydown = {};\n this.keycode = {};\n });\n }\n\n // Call this method in your render loop with `control` set to the object to control\n // (`THREE.Camera` or a `THREE.Object3D` that contains it), with `deltaTime`\n // in seconds since the last update.\n update(deltaTime: number, control: THREE.Object3D) {\n if (!this.enable) {\n return false;\n }\n\n // Update gamepad / XR controllers\n\n const sticks = [new THREE.Vector2(), new THREE.Vector2()];\n const gamepad = navigator.getGamepads()[0];\n if (gamepad) {\n sticks[0].set(gamepad.axes[0], gamepad.axes[1]);\n sticks[1].set(gamepad.axes[2], gamepad.axes[3]);\n }\n const gamepadButtons =\n gamepad?.buttons.map((button) => button.pressed) || [];\n\n const xrSources = Array.from(this.xr?.getSession()?.inputSources ?? []);\n for (const source of xrSources) {\n const gamepad = source.gamepad;\n if (gamepad) {\n switch (source.handedness) {\n case \"none\": {\n sticks[0].x += gamepad.axes[0];\n sticks[0].y += gamepad.axes[1];\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n case \"left\": {\n sticks[0].x += gamepad.axes[2];\n sticks[0].y += gamepad.axes[3];\n break;\n }\n case \"right\": {\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n }\n }\n }\n\n for (const stick of sticks) {\n stick.x = Math.abs(stick.x) >= this.stickThreshold ? stick.x : 0;\n stick.y = Math.abs(stick.y) >= this.stickThreshold ? stick.y : 0;\n }\n\n // Rotation\n\n const rotate = new THREE.Vector3(\n sticks[1].x,\n sticks[1].y,\n 0,\n ).multiplyScalar(this.rotateSpeed);\n\n for (const [keycode, rot] of Object.entries(this.keycodeRotateMapping)) {\n if (this.keycode[keycode]) {\n rotate.add(rot);\n }\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"rollLeft\":\n rotate.z += 1;\n break;\n case \"rollRight\":\n rotate.z -= 1;\n break;\n }\n }\n }\n\n rotate.multiply(\n new THREE.Vector3(this.rotateSpeed, this.rotateSpeed, this.rollSpeed),\n );\n\n let updated = rotate.length() > MOVEMENT_THRESHOLD;\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z = Math.max(-Math.PI, Math.min(Math.PI, eulers.z + rotate.z));\n control.quaternion.setFromEuler(eulers);\n }\n\n // Movement\n\n const moveVector = new THREE.Vector3(sticks[0].x, 0, sticks[0].y);\n moveVector.add(this.extraMove);\n\n for (const [keycode, move] of Object.entries(this.keycodeMoveMapping)) {\n if (this.keycode[keycode]) {\n moveVector.add(move);\n }\n }\n\n let speedMultiplier = 1.0;\n if (this.keydown.CapsLock) {\n speedMultiplier *= this.capsMultiplier;\n }\n if (this.keycode.ShiftLeft || this.keycode.ShiftRight) {\n speedMultiplier *= this.shiftMultiplier;\n }\n if (this.keycode.ControlLeft || this.keycode.ControlRight) {\n speedMultiplier *= this.ctrlMultiplier;\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"shift\":\n speedMultiplier *= this.shiftMultiplier;\n break;\n case \"ctrl\":\n speedMultiplier *= this.ctrlMultiplier;\n break;\n }\n }\n }\n\n if (moveVector.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Apply movement in view direction\n moveVector.applyQuaternion(control.quaternion);\n control.position.add(\n moveVector.multiplyScalar(this.moveSpeed * speedMultiplier * deltaTime),\n );\n\n return updated;\n }\n}\n\ntype PointerState = {\n initial: THREE.Vector2;\n last: THREE.Vector2;\n position: THREE.Vector2;\n pointerId: number;\n button?: number;\n timeStamp: DOMHighResTimeStamp;\n};\n\n// `PointerControls` implements pointer/mouse/touch controls on the canvas,\n// for both desktop and mobile web applications.\n\nexport class PointerControls {\n canvas: HTMLCanvasElement;\n rotateSpeed: number;\n slideSpeed: number;\n scrollSpeed: number;\n swapRotateSlide: boolean;\n reverseRotate: boolean;\n reverseSlide: boolean;\n reverseSwipe: boolean;\n reverseScroll: boolean;\n moveInertia: number;\n rotateInertia: number;\n pointerRollScale: number;\n // Enable/disable controls updates\n enable = true;\n\n doublePress: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n // Time limit for double press (default DOUBLE_PRESS_LIMIT_MS)\n doublePressLimitMs: number;\n // Distance limit for double press (default DOUBLE_PRESS_DISTANCE)\n doublePressDistance: number;\n\n // Time delay in ms for press move to start\n pressMoveDelayMs: number;\n // Time in ms for press move to accelerate\n pressMoveAccelMs: number;\n // Speed of movement on press (default: 0)\n pressMoveSpeed: number;\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed: number;\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed: number;\n // Whether to move toward the screen center or finger when pressing to move\n pressMoveCenter: boolean;\n pressHeld?: boolean;\n doublePressed?: number;\n triplePressed: boolean;\n // Last pointer up event (default: null)\n lastUp: { position: THREE.Vector2; timeStamp: number } | null;\n lastLastUp: { position: THREE.Vector2; timeStamp: number } | null;\n\n // Pointer state for currently active rotating pointer\n rotating: PointerState | null;\n // Pointer state for currently active sliding pointer\n sliding: PointerState | null;\n // Pointer state for last pointer that downed\n lastDown: PointerState | null;\n // Whether we pressed two pointers at the same time\n dualPress: boolean;\n // Cumulative scroll movement\n scroll: THREE.Vector3;\n\n // Current rotation velocity\n rotateVelocity: THREE.Vector3;\n // Current movement velocity\n moveVelocity: THREE.Vector3;\n\n constructor({\n // The HTML canvas element to attach pointer events to\n canvas,\n // Speed of rotation (default DEFAULT_ROTATE_SPEED)\n rotateSpeed,\n // Speed of sliding when dragging with right/middle mouse button or two fingers\n // (default DEFAULT_SLIDE_SPEED)\n slideSpeed,\n // Speed of movement when using mouse scroll wheel (default DEFAULT_SCROLL_SPEED)\n scrollSpeed,\n // Swap the direction of rotation and sliding (default: false)\n swapRotateSlide,\n // Reverse the direction of rotation (default: false)\n reverseRotate,\n // Reverse the direction of sliding (default: false)\n reverseSlide,\n // Reverse the direction of swipe gestures (default: false)\n reverseSwipe,\n // Reverse the direction of scroll wheel movement (default: false)\n reverseScroll,\n // Inertia factor for movement (default: DEFAULT_MOVE_INERTIA)\n moveInertia,\n // Inertia factor for rotation (default: DEFAULT_ROTATE_INERTIA)\n rotateInertia,\n // Pointer rolling scale factor (default: DEFAULT_POINTER_ROLL_SCALE)\n pointerRollScale,\n // Callback for double press events (default: () => {})\n doublePress,\n // Time delay in ms for press move to start (default: DEFAULT_PRESS_MOVE_DELAY_MS)\n pressMoveDelayMs,\n // Time in ms for press move to accelerate (default: DEFAULT_PRESS_MOVE_ACCEL_MS)\n pressMoveAccelMs,\n // Speed of movement on press (default: 0)\n pressMoveSpeed,\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed,\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed,\n // Whether to move toward the screen center or finger when pressing to move (default: true)\n pressMoveCenter,\n }: {\n canvas: HTMLCanvasElement;\n rotateSpeed?: number;\n slideSpeed?: number;\n scrollSpeed?: number;\n swapRotateSlide?: boolean;\n reverseRotate?: boolean;\n reverseSlide?: boolean;\n reverseSwipe?: boolean;\n reverseScroll?: boolean;\n moveInertia?: number;\n rotateInertia?: number;\n pointerRollScale?: number;\n doublePress?: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n pressMoveDelayMs?: number;\n pressMoveAccelMs?: number;\n pressMoveSpeed?: number;\n doublePressMoveSpeed?: number;\n triplePressMoveSpeed?: number;\n pressMoveCenter?: boolean;\n }) {\n this.canvas = canvas;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_ROTATE_SPEED;\n this.slideSpeed = slideSpeed ?? DEFAULT_SLIDE_SPEED;\n this.scrollSpeed = scrollSpeed ?? DEFAULT_SCROLL_SPEED;\n this.swapRotateSlide = swapRotateSlide ?? false;\n this.reverseRotate = reverseRotate ?? (isAndroid() || isIos());\n this.reverseSlide = reverseSlide ?? false;\n this.reverseSwipe = reverseSwipe ?? false;\n this.reverseScroll = reverseScroll ?? false;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n this.pointerRollScale = pointerRollScale ?? DEFAULT_POINTER_ROLL_SCALE;\n\n this.doublePress = doublePress ?? (() => {});\n this.doublePressLimitMs = DOUBLE_PRESS_LIMIT_MS;\n this.doublePressDistance = DOUBLE_PRESS_DISTANCE;\n\n this.pressMoveDelayMs = pressMoveDelayMs ?? DEFAULT_PRESS_MOVE_DELAY_MS;\n this.pressMoveAccelMs = pressMoveAccelMs ?? DEFAULT_PRESS_MOVE_ACCEL_MS;\n this.pressMoveSpeed = pressMoveSpeed ?? 0;\n this.doublePressMoveSpeed =\n doublePressMoveSpeed ?? this.pressMoveSpeed * 5.0;\n this.triplePressMoveSpeed =\n triplePressMoveSpeed ?? this.doublePressMoveSpeed * 5.0;\n this.pressMoveCenter = pressMoveCenter ?? true;\n this.doublePressed = undefined;\n this.triplePressed = false;\n this.lastUp = null;\n this.lastLastUp = null;\n\n this.rotating = null;\n this.sliding = null;\n this.lastDown = null;\n this.dualPress = false;\n this.scroll = new THREE.Vector3();\n\n this.rotateVelocity = new THREE.Vector3();\n this.moveVelocity = new THREE.Vector3();\n\n canvas.addEventListener(\"pointerdown\", (event: PointerEvent) => {\n const position = this.getPointerPosition(event);\n const initial = position.clone();\n const last = position.clone();\n\n // Determine if we're starting a rotation pointer action\n const isRotate =\n (!this.swapRotateSlide &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 0)) ||\n (this.swapRotateSlide &&\n this.sliding &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 1));\n // const isRotate =\n // !this.rotating && (event.pointerType !== \"mouse\" || event.button === 0);\n const { pointerId } = event;\n const timeStamp = performance.now();\n\n if (isRotate) {\n this.rotating = { initial, last, position, pointerId, timeStamp };\n this.lastDown = this.rotating;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n this.dualPress = false;\n } else if (!this.sliding) {\n // If it's not a rotation action and we're not yet sliding, the next\n // pointer activates a sliding action\n const button = event.pointerType === \"mouse\" ? event.button : undefined;\n this.sliding = {\n initial,\n last,\n position,\n pointerId,\n button,\n timeStamp,\n };\n this.lastDown = this.sliding;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n // Check if we pressed both pointers at roughly the same time\n this.dualPress =\n this.rotating != null &&\n timeStamp - this.rotating.timeStamp < DUAL_PRESS_MS;\n }\n\n if (this.lastUp) {\n const distance = this.lastUp.position.distanceTo(position);\n const intervalMs = timeStamp - this.lastUp.timeStamp;\n if (\n distance < this.doublePressDistance &&\n intervalMs < this.doublePressLimitMs\n ) {\n this.doublePressed = performance.now();\n this.triplePressed = false;\n\n if (this.lastLastUp) {\n const lastDistance = this.lastLastUp.position.distanceTo(\n this.lastUp.position,\n );\n const lastIntervalMs =\n this.lastUp.timeStamp - this.lastLastUp.timeStamp;\n if (\n lastDistance < this.doublePressDistance &&\n lastIntervalMs < this.doublePressLimitMs\n ) {\n this.triplePressed = true;\n }\n }\n }\n }\n });\n\n const pointerUp = (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.sliding) {\n canvas.releasePointerCapture(this.sliding.pointerId);\n this.sliding = null;\n }\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.rotating) {\n canvas.releasePointerCapture(this.rotating.pointerId);\n this.rotating = null;\n }\n }\n\n this.doublePressed = undefined;\n this.triplePressed = false;\n\n const position = this.getPointerPosition(event);\n const lastUp = this.lastUp;\n this.lastLastUp = this.lastUp;\n const timeStamp = performance.now();\n this.lastUp = { position, timeStamp };\n\n if (lastUp) {\n const distance = lastUp.position.distanceTo(position);\n if (distance < this.doublePressDistance) {\n const intervalMs = timeStamp - lastUp.timeStamp;\n if (intervalMs < this.doublePressLimitMs) {\n // We pressed and release twice within the time and distance limits\n // this.lastUp = null;\n this.doublePress({ position, intervalMs });\n }\n }\n }\n };\n\n document.addEventListener(\"pointerup\", pointerUp);\n document.addEventListener(\"pointercancel\", pointerUp);\n\n document.addEventListener(\"pointermove\", (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating.position = this.getPointerPosition(event);\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding.position = this.getPointerPosition(event);\n }\n });\n\n canvas.addEventListener(\"contextmenu\", (event: MouseEvent) => {\n // Prevent context menu appearing on right click\n event.preventDefault();\n });\n\n canvas.addEventListener(\"wheel\", (event: WheelEvent) => {\n this.scroll.add(\n new THREE.Vector3(event.deltaX, event.deltaY, event.deltaZ),\n );\n event.preventDefault();\n });\n }\n\n getPointerPosition(event: PointerEvent): THREE.Vector2 {\n const rect = this.canvas.getBoundingClientRect();\n return new THREE.Vector2(\n event.clientX - rect.left,\n event.clientY - rect.top,\n );\n }\n\n update(deltaTime: number, control: THREE.Object3D, camera?: THREE.Camera) {\n if (!this.enable) {\n return false;\n }\n\n const now = performance.now();\n let updated = false;\n\n if (this.dualPress && this.rotating && this.sliding) {\n // We pressed both pointers at the same time, either pinching or sliding\n const motion = [\n this.rotating.position.clone().sub(this.rotating.last),\n this.sliding.position.clone().sub(this.sliding.last),\n ];\n const coincidence = motion[0].dot(motion[1]);\n\n if (coincidence >= 0.2) {\n // Similar directions so slide the camera on the XY plane\n const totalMotion = motion[0].clone().add(motion[1]);\n const slide = new THREE.Vector3(totalMotion.x, -totalMotion.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSwipe ? 1 : -1));\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else if (coincidence <= -0.2) {\n // Opposite directions so either pinch or roll motion\n const deltaDir = this.sliding.last.clone().sub(this.rotating.last);\n const deltaDist = deltaDir.length();\n deltaDir.multiplyScalar(1 / deltaDist).normalize();\n\n const orthoDir = new THREE.Vector2(-deltaDir.y, deltaDir.x);\n const motionDir = [motion[0].dot(deltaDir), motion[1].dot(deltaDir)];\n const motionOrtho = [motion[0].dot(orthoDir), motion[1].dot(orthoDir)];\n\n // Pinching motion\n const midpoint = this.rotating.last\n .clone()\n .add(this.sliding.last)\n .multiplyScalar(0.5);\n let midpointDir = new THREE.Vector3();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcMidpoint = new THREE.Vector2(\n (midpoint.x / this.canvas.clientWidth) * 2 - 1,\n -(midpoint.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcMidpoint, theCamera);\n midpointDir = raycaster.ray.direction;\n }\n const pinchOut = motionDir[1] - motionDir[0];\n const slide = midpointDir.multiplyScalar(pinchOut * this.slideSpeed);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Rolling motion\n // Calculate angle of orthogonal motion change over distance deltaDist/2\n // motionOrtho[0] and 1 are already in float distance\n const angles = [\n Math.atan(motionOrtho[0] / (-0.5 * deltaDist)),\n Math.atan(motionOrtho[1] / (0.5 * deltaDist)),\n ];\n const rotate = 0.5 * (angles[0] + angles[1]) * this.pointerRollScale;\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.z = Math.max(\n -Math.PI,\n Math.min(Math.PI, eulers.z + 0.5 * rotate),\n );\n control.quaternion.setFromEuler(eulers);\n\n if (Math.abs(rotate) > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n this.rotating.last.copy(this.rotating.position);\n this.sliding.last.copy(this.sliding.position);\n } else {\n // Didn't press both pointers at the same time, so we're in rotating\n // or FPS mode\n const rotate = new THREE.Vector3();\n if (this.rotating && !this.dualPress) {\n const delta = this.rotating.position.clone().sub(this.rotating.last);\n this.rotating.last.copy(this.rotating.position);\n rotate.set(delta.x, delta.y, 0);\n rotate.multiplyScalar(this.rotateSpeed * (this.reverseRotate ? -1 : 1));\n // Update rotation velocity from last delta\n this.rotateVelocity = rotate.clone().multiplyScalar(1 / deltaTime);\n\n if (rotate.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n // Continue to rotate with inertia\n this.rotateVelocity.multiplyScalar(\n Math.exp(-deltaTime / this.rotateInertia),\n );\n rotate.addScaledVector(this.rotateVelocity, deltaTime);\n\n if (this.rotateVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n // Apply rotation in Euler angles space\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z *= Math.exp(-DEFAULT_ROLL_SPRING * deltaTime);\n control.quaternion.setFromEuler(eulers);\n\n if (this.sliding && !this.dualPress) {\n const delta = this.sliding.position.clone().sub(this.sliding.last);\n this.sliding.last.copy(this.sliding.position);\n\n // Slide on plane depending on center/right mouse button\n const slide =\n this.sliding.button !== 2\n ? new THREE.Vector3(delta.x, 0, delta.y)\n : new THREE.Vector3(delta.x, -delta.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSlide ? -1 : 1));\n\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n // Update movement velocity from last delta\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n const target = new THREE.Vector3();\n if (this.sliding || this.rotating) {\n const point = this.lastDown?.last ?? new THREE.Vector2();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcPoint = this.pressMoveCenter\n ? new THREE.Vector2(0, 0)\n : new THREE.Vector2(\n (point.x / this.canvas.clientWidth) * 2 - 1,\n -(point.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcPoint, theCamera);\n target.copy(raycaster.ray.direction).normalize();\n }\n\n if (!this.doublePressed) {\n let intensity = 0;\n if (this.lastDown) {\n intensity =\n (now -\n (this.lastDown?.timeStamp ?? now) -\n this.pressMoveDelayMs) /\n this.pressMoveAccelMs;\n\n if (\n this.lastDown.position.distanceTo(this.lastDown.initial) <\n this.doublePressDistance\n ) {\n if (this.pressHeld === undefined) {\n if (intensity > 0) {\n this.pressHeld = true;\n }\n }\n } else if (this.pressHeld === undefined) {\n this.pressHeld = false;\n }\n }\n\n if (this.pressHeld) {\n target.multiplyScalar(\n this.pressMoveSpeed * Math.max(0, Math.min(1, intensity)),\n );\n } else {\n target.set(0, 0, 0);\n }\n } else {\n this.pressHeld = false;\n let intensity =\n (performance.now() - this.doublePressed) / this.pressMoveAccelMs;\n intensity = Math.max(0, Math.min(1, intensity));\n target.multiplyScalar(\n (this.triplePressed\n ? this.triplePressMoveSpeed\n : this.doublePressMoveSpeed) * intensity,\n );\n }\n } else {\n this.pressHeld = undefined;\n }\n // Continue to move with inertia\n const s = Math.exp(-deltaTime / this.moveInertia);\n this.moveVelocity.lerpVectors(target, this.moveVelocity, s);\n control.position.addScaledVector(this.moveVelocity, deltaTime);\n\n if (this.moveVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n }\n\n const scroll = this.scroll.multiplyScalar(this.scrollSpeed);\n scroll.set(scroll.x, scroll.z, scroll.y);\n if (this.reverseScroll) {\n scroll.multiplyScalar(-1);\n }\n scroll.applyQuaternion(control.quaternion);\n control.position.add(scroll);\n\n if (scroll.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n this.scroll.set(0, 0, 0);\n\n return updated;\n }\n}\n","import * as THREE from \"three\";\nimport { SparkRenderer, type SparkRendererOptions } from \"./SparkRenderer\";\n\n/**\n * Fragment shader for portal disk clipping.\n * - diskRadius > 0: render \"behind portal\" only through the disk\n * - diskRadius < 0: render \"in front of portal\" everywhere except behind disk\n */\nexport const DISK_PORTAL_FRAGMENT_SHADER = `\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform mat4 projectionMatrix;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nuniform vec3 diskCenter;\nuniform vec3 diskNormal;\nuniform float diskRadius;\nuniform bool diskTwoSided;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\nvoid main() {\n if (diskRadius != 0.0) {\n // Portal rendering:\n // - diskRadius > 0: render \"behind portal\" only through the disk (discard outside or in-front-of plane).\n // - diskRadius < 0: render \"in front of portal\" everywhere, but discard fragments behind the plane when looking through the disk.\n\n // View ray direction from NDC (view space is -Z forward).\n vec3 viewDir = normalize(vec3(\n vNdc.x / projectionMatrix[0][0],\n vNdc.y / projectionMatrix[1][1],\n -1.0\n ));\n\n // Reconstruct view-space *axial* depth (-viewPos.z) from NDC Z.\n float ndcZ = vNdc.z;\n float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near));\n // Convert axial depth to ray-parameter t (viewPos = t * viewDir).\n float rayT = depth / max(1e-6, -viewDir.z);\n\n float radius = abs(diskRadius);\n float radius2 = radius * radius;\n bool renderBehind = (diskRadius > 0.0);\n\n vec3 diskN = normalize(diskNormal);\n\n // Ray-plane intersection for plane (diskCenter, diskN), with ray origin at (0,0,0).\n float denom = dot(viewDir, diskN);\n bool allowPortal = diskTwoSided ? (abs(denom) > 1e-6) : (denom < -1e-6);\n\n bool hitsDisk = false;\n float t = 0.0;\n if (allowPortal) {\n t = dot(diskCenter, diskN) / denom;\n if (t > 0.0) {\n vec3 q = t * viewDir - diskCenter;\n hitsDisk = (dot(q, q) <= radius2);\n }\n }\n\n // Small bias to avoid flicker at the plane.\n float eps = 1e-4 * max(1.0, abs(t));\n\n if (renderBehind) {\n // Behind-pass: only render through the portal disk, and only behind the plane along the ray.\n if (!hitsDisk) discard;\n if (rayT <= t + eps) discard;\n } else {\n // Front-pass: render everything, except when the ray goes through the disk, discard what's behind the plane.\n if (hitsDisk && (rayT >= t - eps)) discard;\n }\n }\n\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n rgba.a = min(1.0, a) * exp(exponent);\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n}\n`;\n\n/**\n * Callback function called when a portal is crossed.\n * @param pair The portal pair that was crossed\n * @param fromEntry True if crossing from entry to exit, false if crossing from exit to entry\n */\nexport type PortalCrossCallback = (\n pair: PortalPair,\n fromEntry: boolean,\n) => void | Promise;\n\n/**\n * A pair of connected portals. Walking through one teleports you to the other.\n */\nexport interface PortalPair {\n /** First portal endpoint */\n entryPortal: THREE.Object3D;\n /** Second portal endpoint */\n exitPortal: THREE.Object3D;\n /** Radius of this portal pair's disks */\n radius: number;\n /** Optional callback function called when this portal is crossed */\n onCross?: PortalCrossCallback;\n /** Scratch matrix for tracking portal position before frame updates */\n _entryBefore: THREE.Matrix4;\n /** Scratch matrix for tracking portal position before frame updates */\n _exitBefore: THREE.Matrix4;\n}\n\nexport interface SparkPortalsOptions {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n /** Options passed to both SparkRenderer instances */\n sparkOptions?: Partial;\n /** Default portal disk radius for new pairs (default: 1.0) */\n defaultPortalRadius?: number;\n /** Epsilon for portal crossing detection (default: 1e-6) */\n portalCrossEps?: number;\n}\n\n/**\n * SparkPortals\n *\n * Portal implementation to connect two non-contiguous areas of a scene.\n * Supports multiple portal pairs - each pair connects two locations.\n *\n * The rough approach is to use two SparkRenderers: one for the \"front\"/portal\n * view (portalRenderer), and one for the \"behind portal\" pass (behindRenderer).\n *\n * Example:\n * ```typescript\n * const portals = new SparkPortals({ renderer, scene, camera, localFrame });\n *\n * // Add a portal pair\n * const pair = portals.addPortalPair();\n * pair.entryPortal.position.set(0, 0, -1);\n * pair.exitPortal.position.set(-3, 0, -4.5);\n *\n * // Add another pair\n * const pair2 = portals.addPortalPair({ radius: 0.5 });\n * pair2.entryPortal.position.set(5, 0, 0);\n * pair2.exitPortal.position.set(10, 0, 0);\n *\n * // In animation loop:\n * portals.animateLoopHook();\n * ```\n */\nexport class SparkPortals {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n\n /** Primary renderer with portal shader (added to scene) */\n portalRenderer: SparkRenderer;\n /** Secondary renderer for behind-portal pass (not in scene) */\n behindRenderer: SparkRenderer;\n /** Secondary camera for behind-portal view */\n camera2: THREE.PerspectiveCamera;\n\n /** All portal pairs */\n portalPairs: PortalPair[] = [];\n /** Default radius for new portal pairs */\n defaultPortalRadius: number;\n /** Epsilon for portal crossing detection */\n portalCrossEps: number;\n\n /** Used to detect crossing between frames */\n private lastCameraWorld = new THREE.Vector3().setScalar(Number.NaN);\n /** Whether portal LoD prefetch is currently enabled */\n private prefetchActive = false;\n\n // Preallocated objects for scratch work to avoid per frame allocations\n private scratch = {\n quat: new THREE.Quaternion(),\n scale: new THREE.Vector3(),\n center0: new THREE.Vector3(),\n center1: new THREE.Vector3(),\n normal0: new THREE.Vector3(),\n normal1: new THREE.Vector3(),\n centerT: new THREE.Vector3(),\n normalT: new THREE.Vector3(),\n prevCameraWorld: new THREE.Vector3(),\n currCameraWorld: new THREE.Vector3(),\n hit: new THREE.Vector3(),\n offset: new THREE.Vector3(),\n camWorld: new THREE.Matrix4(),\n newCamWorld: new THREE.Matrix4(),\n invCamLocal: new THREE.Matrix4(),\n newLocalFrame: new THREE.Matrix4(),\n cameraWorldPos: new THREE.Vector3(),\n viewDir: new THREE.Vector3(),\n portalCenter: new THREE.Vector3(),\n toPortal: new THREE.Vector3(),\n };\n\n constructor(options: SparkPortalsOptions) {\n this.renderer = options.renderer;\n this.scene = options.scene;\n this.camera = options.camera;\n this.localFrame = options.localFrame;\n this.defaultPortalRadius = options.defaultPortalRadius ?? 1.0;\n this.portalCrossEps = options.portalCrossEps ?? 1e-6;\n\n const sparkOpts = options.sparkOptions ?? {};\n\n // Primary renderer with portal shader\n this.portalRenderer = new SparkRenderer({\n renderer: this.renderer,\n extraUniforms: {\n diskCenter: { value: new THREE.Vector3() },\n diskNormal: { value: new THREE.Vector3() },\n diskRadius: { value: 0 },\n diskTwoSided: { value: false },\n },\n fragmentShader: DISK_PORTAL_FRAGMENT_SHADER,\n ...sparkOpts,\n });\n this.scene.add(this.portalRenderer);\n\n // Secondary renderer for behind-portal pass\n // enableDriveLod: false prevents this renderer from driving LOD updates,\n // avoiding race conditions with portalRenderer's pager operations\n this.behindRenderer = new SparkRenderer({\n renderer: this.renderer,\n enableDriveLod: false,\n ...sparkOpts,\n });\n\n // Secondary camera for behind-portal view\n this.camera2 = this.camera.clone();\n this.scene.add(this.camera2);\n }\n\n /**\n * Add a new portal pair to the system.\n * @param options Optional configuration for this pair\n * @returns The created PortalPair - position the entryPortal and exitPortal as needed\n */\n addPortalPair(options?: {\n radius?: number;\n onCross?: PortalCrossCallback;\n }): PortalPair {\n const pair: PortalPair = {\n entryPortal: new THREE.Object3D(),\n exitPortal: new THREE.Object3D(),\n radius: options?.radius ?? this.defaultPortalRadius,\n onCross: options?.onCross,\n _entryBefore: new THREE.Matrix4(),\n _exitBefore: new THREE.Matrix4(),\n };\n\n this.scene.add(pair.entryPortal);\n this.scene.add(pair.exitPortal);\n this.portalPairs.push(pair);\n\n return pair;\n }\n\n /**\n * Remove a portal pair from the system.\n */\n removePortalPair(pair: PortalPair): void {\n const index = this.portalPairs.indexOf(pair);\n if (index !== -1) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n this.portalPairs.splice(index, 1);\n }\n }\n\n /**\n * Get transform from entry portal to exit portal.\n */\n getEntryToExitTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.entryPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.exitPortal.matrixWorld);\n }\n\n /**\n * Get transform from exit portal to entry portal.\n */\n getExitToEntryTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.exitPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.entryPortal.matrixWorld);\n }\n\n /** Set portal disk uniforms for shader clipping */\n private setPortalDiskUniforms(\n camera: THREE.Camera,\n portal: THREE.Object3D,\n radius: number,\n twoSided: boolean,\n ): void {\n camera.updateMatrixWorld(true);\n portal.updateMatrixWorld(true);\n\n const inverseCamera = camera.matrixWorld.clone().invert();\n const portalInCamera = portal.matrixWorld\n .clone()\n .premultiply(inverseCamera);\n const portalQuat = new THREE.Quaternion();\n\n // Extend the base uniform type with our portal-specific uniforms so TS is happy.\n const uniforms = this.portalRenderer\n .uniforms as typeof this.portalRenderer.uniforms & {\n diskCenter: { value: THREE.Vector3 };\n diskNormal: { value: THREE.Vector3 };\n diskRadius: { value: number };\n diskTwoSided: { value: boolean };\n };\n\n portalInCamera.decompose(\n uniforms.diskCenter.value,\n portalQuat,\n new THREE.Vector3(),\n );\n\n uniforms.diskNormal.value.set(0, 0, 1).applyQuaternion(portalQuat);\n uniforms.diskRadius.value = radius;\n uniforms.diskTwoSided.value = twoSided;\n }\n\n /** Extract portal plane from matrix */\n private getPortalPlane(\n matrix: THREE.Matrix4,\n outCenter: THREE.Vector3,\n outNormal: THREE.Vector3,\n ): void {\n matrix.decompose(outCenter, this.scratch.quat, this.scratch.scale);\n outNormal.set(0, 0, 1).applyQuaternion(this.scratch.quat).normalize();\n }\n\n /**\n * Detect if the user path crosses over a portal. If so, return the parametric position (0,1)\n * along the segment where the crossing occurs. If not, return null.\n */\n private getSegmentDiskCrossing(\n prevCam: THREE.Vector3,\n currCam: THREE.Vector3,\n beforeMatrix: THREE.Matrix4,\n afterMatrix: THREE.Matrix4,\n radius: number,\n ): number | null {\n this.getPortalPlane(\n beforeMatrix,\n this.scratch.center0,\n this.scratch.normal0,\n );\n this.getPortalPlane(\n afterMatrix,\n this.scratch.center1,\n this.scratch.normal1,\n );\n\n const startPlaneDist = this.scratch.offset\n .copy(prevCam)\n .sub(this.scratch.center0)\n .dot(this.scratch.normal0);\n const endPlaneDist = this.scratch.offset\n .copy(currCam)\n .sub(this.scratch.center1)\n .dot(this.scratch.normal1);\n\n if (\n (startPlaneDist > this.portalCrossEps &&\n endPlaneDist > this.portalCrossEps) ||\n (startPlaneDist < -this.portalCrossEps &&\n endPlaneDist < -this.portalCrossEps)\n ) {\n return null;\n }\n\n const denom = startPlaneDist - endPlaneDist;\n if (Math.abs(denom) < this.portalCrossEps) return null;\n\n const t = startPlaneDist / denom;\n if (t < 0 || t > 1) return null;\n\n this.scratch.hit.lerpVectors(prevCam, currCam, t);\n this.scratch.centerT\n .copy(this.scratch.center0)\n .lerp(this.scratch.center1, t);\n this.scratch.normalT\n .copy(this.scratch.normal0)\n .lerp(this.scratch.normal1, t)\n .normalize();\n\n this.scratch.offset.copy(this.scratch.hit).sub(this.scratch.centerT);\n this.scratch.offset.addScaledVector(\n this.scratch.normalT,\n -this.scratch.offset.dot(this.scratch.normalT),\n );\n\n if (this.scratch.offset.lengthSq() > radius * radius) return null;\n return t;\n }\n\n /** Teleport camera through portal */\n private teleport(transform: THREE.Matrix4): void {\n this.scratch.camWorld.copy(this.camera.matrixWorld);\n this.scratch.newCamWorld.copy(this.scratch.camWorld).premultiply(transform);\n this.scratch.invCamLocal.copy(this.camera.matrix).invert();\n this.scratch.newLocalFrame\n .copy(this.scratch.newCamWorld)\n .multiply(this.scratch.invCamLocal);\n\n this.scratch.newLocalFrame.decompose(\n this.localFrame.position,\n this.localFrame.quaternion,\n this.localFrame.scale,\n );\n this.localFrame.updateMatrixWorld(true);\n this.camera.updateMatrixWorld(true);\n }\n\n /**\n * Check for portal crossing and teleport if needed.\n * Checks all portal pairs and takes the earliest crossing.\n * Call this after updating controls but before render().\n */\n updateTeleportation(): void {\n if (this.portalPairs.length === 0) return;\n\n this.camera.getWorldPosition(this.scratch.currCameraWorld);\n if (!Number.isFinite(this.lastCameraWorld.x)) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n this.scratch.prevCameraWorld.copy(this.lastCameraWorld);\n\n // Store portal matrices before any updates and find earliest crossing\n let earliestT: number | null = null;\n let crossedPair: PortalPair | null = null;\n let crossedEntry = true; // true = crossed entry portal, false = crossed exit portal\n\n for (const pair of this.portalPairs) {\n pair.entryPortal.updateMatrixWorld(true);\n pair.exitPortal.updateMatrixWorld(true);\n pair._entryBefore.copy(pair.entryPortal.matrixWorld);\n pair._exitBefore.copy(pair.exitPortal.matrixWorld);\n\n // Check entry portal crossing\n const entryT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._entryBefore,\n pair.entryPortal.matrixWorld,\n pair.radius,\n );\n\n if (entryT !== null && (earliestT === null || entryT < earliestT)) {\n earliestT = entryT;\n crossedPair = pair;\n crossedEntry = true;\n }\n\n // Check exit portal crossing\n const exitT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._exitBefore,\n pair.exitPortal.matrixWorld,\n pair.radius,\n );\n\n if (exitT !== null && (earliestT === null || exitT < earliestT)) {\n earliestT = exitT;\n crossedPair = pair;\n crossedEntry = false;\n }\n }\n\n // No portal crossed\n if (crossedPair === null) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n // Teleport through the crossed portal\n if (crossedEntry) {\n this.teleport(this.getEntryToExitTransform(crossedPair));\n } else {\n this.teleport(this.getExitToEntryTransform(crossedPair));\n }\n\n this.camera.getWorldPosition(this.lastCameraWorld);\n\n // Call the portal's onCross callback if provided\n if (crossedPair.onCross) {\n // Call async callback but don't await (updateTeleportation is synchronous)\n // Errors will be logged but won't block teleportation\n Promise.resolve(crossedPair.onCross(crossedPair, crossedEntry)).catch(\n (error) => {\n console.error(\"Error in portal onCross callback:\", error);\n },\n );\n }\n }\n\n /**\n * Find the most relevant portal for rendering (closest to camera view direction).\n * Returns the portal pair and which portal (entry or exit) is primary.\n */\n private findPrimaryPortal(): {\n pair: PortalPair;\n primaryIsEntry: boolean;\n primaryPortal: THREE.Object3D;\n otherPortal: THREE.Object3D;\n } | null {\n if (this.portalPairs.length === 0) return null;\n\n this.camera.getWorldPosition(this.scratch.cameraWorldPos);\n this.camera.getWorldDirection(this.scratch.viewDir);\n\n let bestScore = Number.NEGATIVE_INFINITY;\n let bestPair: PortalPair | null = null;\n let bestIsEntry = true;\n\n for (const pair of this.portalPairs) {\n // Score entry portal\n pair.entryPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const entryDist = this.scratch.toPortal.length();\n const entryScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / entryDist;\n\n if (entryScore > bestScore) {\n bestScore = entryScore;\n bestPair = pair;\n bestIsEntry = true;\n }\n\n // Score exit portal\n pair.exitPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const exitDist = this.scratch.toPortal.length();\n const exitScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / exitDist;\n\n if (exitScore > bestScore) {\n bestScore = exitScore;\n bestPair = pair;\n bestIsEntry = false;\n }\n }\n\n if (!bestPair) return null;\n\n return {\n pair: bestPair,\n primaryIsEntry: bestIsEntry,\n primaryPortal: bestIsEntry ? bestPair.entryPortal : bestPair.exitPortal,\n otherPortal: bestIsEntry ? bestPair.exitPortal : bestPair.entryPortal,\n };\n }\n\n /**\n * Render the scene with portals using two-pass rendering.\n * Renders the most relevant portal pair (closest to camera view).\n * Call this instead of renderer.render() in your animation loop.\n */\n render(): void {\n const primary = this.findPrimaryPortal();\n\n // No portals - just render normally\n if (!primary) {\n if (this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras();\n this.prefetchActive = false;\n }\n this.renderer.autoClear = true;\n this.renderer.render(this.scene, this.camera);\n return;\n }\n\n if (!this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras([this.camera2]);\n this.prefetchActive = true;\n }\n\n const { pair, primaryIsEntry, primaryPortal, otherPortal } = primary;\n\n // Compute camera2 position (transformed through portal)\n const camera2Matrix = primaryIsEntry\n ? this.camera.matrixWorld\n .clone()\n .premultiply(this.getEntryToExitTransform(pair))\n : this.camera.matrixWorld\n .clone()\n .premultiply(this.getExitToEntryTransform(pair));\n camera2Matrix.decompose(\n this.camera2.position,\n this.camera2.quaternion,\n this.camera2.scale,\n );\n this.camera2.updateMatrixWorld(true);\n\n // Share lodInstances from portalRenderer to behindRenderer BEFORE Pass 1.\n // This uses previous frame's lodInstances (computed with main camera),\n // ensuring both passes use consistent splat selections to avoid flickering.\n this.shareLodInstances();\n\n // Pass 1: Behind portal view (uses shared lodInstances)\n this.setPortalDiskUniforms(this.camera2, otherPortal, pair.radius, true);\n this.renderer.autoClear = true;\n this.behindRenderer.render(this.scene, this.camera2);\n\n // Pass 2: Main view (updates portalRenderer's lodInstances for next frame)\n this.setPortalDiskUniforms(this.camera, primaryPortal, -pair.radius, true);\n this.renderer.autoClear = false;\n this.portalRenderer.render(this.scene, this.camera);\n }\n\n /**\n * Share lodInstances from portalRenderer to behindRenderer.\n * Uses previous frame's values to ensure both passes render consistent splats.\n */\n private shareLodInstances(): void {\n // Clear and copy lodInstances from portalRenderer to behindRenderer\n this.behindRenderer.lodInstances.clear();\n for (const [mesh, data] of this.portalRenderer.lodInstances) {\n this.behindRenderer.lodInstances.set(mesh, data);\n }\n }\n\n /**\n * Convenience hook for animation loop.\n * Calls updateTeleportation() then render().\n */\n animateLoopHook(): void {\n this.updateTeleportation();\n this.render();\n }\n\n /** Update camera2 aspect ratio on window resize */\n updateAspect(aspect: number): void {\n this.camera2.aspect = aspect;\n this.camera2.updateProjectionMatrix();\n }\n\n /** Dispose of resources */\n dispose(): void {\n this.scene.remove(this.portalRenderer);\n this.scene.remove(this.camera2);\n\n for (const pair of this.portalPairs) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n }\n this.portalPairs = [];\n\n this.portalRenderer.dispose();\n this.behindRenderer.dispose();\n }\n}\n"],"names":["OldSplatGeometry","THREE","ordering","activeSplats","QUAD_VERTICES","QUAD_INDICES","u8","u16","i32","fleb","fdeb","clim","freb","eb","start","b","i","r","j","_a","fl","revfl","_b","fd","rev","x","hMap","cd","mb","s","l","le","co","rvb","sv","r_1","v","m","flt","fdt","flrm","fdrm","max","a","bits","d","p","o","bits16","shft","slc","e","ec","err","ind","msg","nt","inflt","dat","st","buf","dict","sl","dl","noBuf","resize","noSt","cbuf","bl","nbuf","final","pos","bt","lm","dm","lbt","dbt","tbts","type","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","c","n","lt","dt","t","lms","dms","lpos","sym","add","dsym","end","shift","dend","et","b2","b4","b8","gzs","flg","zs","Inflate","opts","cb","bts","chunk","inflateSync","data","Gunzip","td","tds","dutf8","strFromU8","latin1","slzh","zh","z","fnl","fn","es","bs","z64e","sc","su","off","unzipSync","files","ze","fltr","c_2","no","LN_SCALE_MIN","LN_SCALE_MAX","SCALE_MIN","SCALE_MAX","LN_SCALE_ZERO","SCALE_ZERO","SPLAT_TEX_WIDTH_BITS","SPLAT_TEX_HEIGHT_BITS","SPLAT_TEX_DEPTH_BITS","SPLAT_TEX_LAYER_BITS","SPLAT_TEX_WIDTH","SPLAT_TEX_HEIGHT","SPLAT_TEX_DEPTH","SPLAT_TEX_MIN_HEIGHT","SPLAT_TEX_WIDTH_MASK","SPLAT_TEX_HEIGHT_MASK","SPLAT_TEX_DEPTH_MASK","WASM_SPLAT_SORT","USE_COMPILED_PARSER_FUNCTION","SplatFileType","DEFAULT_SPLAT_ENCODING","isBoolType","isScalarType","isIntType","isUintType","isFloatType","isMatFloatType","isAllFloatType","isVector2Type","isVector3Type","isVector4Type","isVectorType","isMat2","isMat3","isMat4","vectorElementType","vectorDim","sameSizeVec","sameSizeUvec","sameSizeIvec","typeLiteral","numberAsInt","value","numberAsUint","numberAsFloat","valType","val","DynoValue","DynoOutput","dyno","key","DynoLiteral","literal","dynoLiteral","DynoConst","arg","_","dynoConst","literalZero","typeString","literalOne","literalNegOne","DEFAULT_INDENT","Compilation","indent","Dyno","inTypes","outTypes","inputs","update","globals","statements","generate","outputs","compile","result","declares","name","uniforms","global","dynoDeclare","line","DynoBlock","construct","args","blockInputs","blockOutputs","options","returned","nodeOuts","visit","node","outKey","outName","outs","input","root","steps","source","newSteps","literalOutputs","step","index","dynoBlock","count","typeStr","unindentLines","seenNonEmpty","lines","trimmedLine","regex","unindent","UnaryOp","outTypeFunc","outType","BinaryOp","TrinaryOp","threeRevision","threeMrtArray","f32buffer","u32buffer","supportsFloat16Array","f16buffer","u16buffer","normalize","vec","norm","acc","floatBitsToUint","f","uintBitsToFloat","u","toHalf","toHalfNative","toHalfJS","fromHalf","fromHalfNative","fromHalfJS","sign","exp","frac","halfSign","newExp","subFrac","halfFrac","h","f32bits","mant","newFrac","floatToUint8","floatToSint8","Uint8ToFloat","Sint8ToFloat","DataCache","asyncFetch","dispose","maxItems","item","immediate","pending","removed","mapObject","obj","entries","mapFilterObject","getTransferable","ctx","buffers","seen","traverse","newArray","initFunction","FreeList","allocate","valid","encodeExtSplat","extArrays","y","scaleX","scaleY","scaleZ","quatX","quatY","quatZ","quatW","opacity","g","i4","extA","extB","encodeQuatOctXy1010R12","decodeExtSplat","packedFields","decodeQuatOctXy1010R12","setPackedSplat","packedSplats","encoding","rgbMin","rgbRange","uR","uG","uB","uA","uQuat","encodeQuatOctXy88R8","tempQuaternion","uQuatX","uQuatY","uQuatZ","lnScaleMin","lnScaleScale","uScaleX","uScaleY","uScaleZ","uCenterX","uCenterY","uCenterZ","setPackedSplatCenter","setPackedSplatScales","setPackedSplatQuat","setPackedSplatRgba","setPackedSplatRgb","setPackedSplatOpacity","packedCenter","packedScales","packedQuaternion","packedColor","unpackSplat","word0","word1","word2","word3","uScalesX","uScalesY","uScalesZ","decodeQuatOctXy88R8","getTextureSize","numSplats","width","height","depth","maxSplats","computeMaxSplats","isMobile","isAndroid","isOculus","isQuest2","isIos","isVisionPro","flipPixels","pixels","tempLine","topOffset","bottomOffset","pixelsToPngUrl","canvas","imageData","cloneClock","clock","newClock","omitUndefined","IDENT_VERTEX_SHADER","averagePositions","positions","sum","position","averageQuaternions","quaternions","coinciDist","matrix1","matrix2","origin1","origin2","direction1","direction2","distance","coincidence","withinDist","maxDistance","withinCoinciDist","minCoincidence","coorientDist","rotate1","rotate2","coorient","withinCoorientDist","minCoorient","epsilonSign","epsilon","encodeQuatXyz888","q","negQuat","iQuatX","iQuatY","iQuatZ","decodeQuatXyz888","encoded","out","dotSelf","tempNormalizedQuaternion","tempAxis","qnorm","theta","xyz_norm","axis","p_x","p_y","tmp","u_f","v_f","quantU","quantV","angleInt","f_x","f_y","f_z","halfTheta","w","encodeQuatEulerXyz888","qNorm","sinr_cosp","cosr_cosp","roll","sinp","pitch","siny_cosp","cosy_cosp","yaw","normRoll","normPitch","normYaw","rollQ","pitchQ","decodeQuatEulerXyz888","yawQ","cr","sr","cp","sp","cy","sy","qx","qy","qz","qw","qlen","qnx","qny","qnz","qnw","axisX","axisY","axisZ","axisLen","packSint8Bytes","b0","b1","b3","clampedB0","clampedB1","clampedB2","clampedB3","encodeSh1Rgb","sh1Array","sh1Rgb","sh1Scale","base","bitStart","bitEnd","wordStart","bitOffset","firstWord","secondWord","encodeSh2Rgb","sh2Array","sh2Rgb","sh2Scale","encodeSh3Rgb","sh3Array","sh3Rgb","sh3Scale","encodeExtRgb","ar","ag","ab","maxAbs","biasedBase","divisor","expSigns","decodeExtRgb","color","encodeExtSh1Rgb","k","k3","encodeExtSh12Rgb","k5","encodeExt3Rgb","sh3ArrayA","sh3ArrayB","decompressPartialGzip","fileBytes","numBytes","chunks","totalBytes","gunzip","allBytes","offset","CHUNK_SIZE","GunzipReader","chunkBytes","ds","decompressionStream","readerDone","outOffset","OldSplatWorker","BundledWorker","event","id","promise","resolve","reject","error","handler","maxWorkers","numWorkers","freeWorkers","workerQueue","allocWorker","worker","freeWorker","waiter","withWorker","callback","_SplatWorker","status","queue","messages","message","SplatWorker","NewSplatWorkerPool","workerPool","Gsplat","CovSplat","TPackedSplats","TExtSplats","TCovSplats","numPackedSplats","NumPackedSplats","readPackedSplat","ReadPackedSplat","readPackedSplatRange","ReadPackedSplatRange","numExtSplats","extSplats","NumExtSplats","readExtSplat","ReadExtSplat","numCovSplats","covsplats","NumCovSplats","readCovSplat","covSplats","ReadCovSplat","gsplatToCovSplat","gsplat","GsplatToCovSplat","splitGsplat","SplitGsplat","combineGsplat","flags","center","scales","quaternion","rgba","rgb","CombineGsplat","gsplatNormal","GsplatNormal","transformGsplat","scale","rotate","translate","recolor","TransformGsplat","splatTexCoord","SplatTexCoord","pagedSplatTexCoord","PagedSplatTexCoord","defineGsplat","defineCovSplat","definePackedSplats","defineReadPackedArray","defineExtSplats","defineReadExtArrays","defineReadCovArrays","covsplat","active","outGsplat","r2","defineGsplatNormal","splitCovSplat","SplitCovSplat","combineCovSplat","CombineCovSplat","outCovSplat","coord","outputPackedSplat","rgbMinMaxLnScaleMinMax","OutputPackedSplat","outputCovSplat","OutputCovSplat","outputExtendedSplat","OutputExtendedSplat","outputExtCovSplat","OutputExtCovSplat","outputSplatDepth","viewCenter","viewDir","sortRadial","OutputSplatDepth","outputCovSplatDepth","OutputCovSplatDepth","outputRgba8","rgba8","OutputRgba8","uniform","DynoUniform","dynoBool","DynoBool","dynoUint","DynoUint","dynoInt","DynoInt","dynoFloat","DynoFloat","dynoBvec2","DynoBvec2","dynoUvec2","DynoUvec2","dynoIvec2","DynoIvec2","dynoVec2","DynoVec2","dynoBvec3","DynoBvec3","dynoUvec3","DynoUvec3","dynoIvec3","DynoIvec3","dynoVec3","DynoVec3","dynoBvec4","DynoBvec4","dynoUvec4","DynoUvec4","dynoIvec4","DynoIvec4","dynoVec4","DynoVec4","dynoMat2","DynoMat2","dynoMat2x2","DynoMat2x2","dynoMat2x3","DynoMat2x3","dynoMat2x4","DynoMat2x4","dynoMat3","DynoMat3","dynoMat3x2","DynoMat3x2","dynoMat3x3","DynoMat3x3","dynoMat3x4","DynoMat3x4","dynoMat4","DynoMat4","dynoMat4x2","DynoMat4x2","dynoMat4x3","DynoMat4x3","dynoMat4x4","DynoMat4x4","dynoUsampler2D","DynoUsampler2D","dynoIsampler2D","DynoIsampler2D","dynoSampler2D","DynoSampler2D","dynoUsampler2DArray","DynoUsampler2DArray","dynoIsampler2DArray","DynoIsampler2DArray","dynoSampler2DArray","DynoSampler2DArray","dynoUsampler3D","DynoUsampler3D","dynoIsampler3D","DynoIsampler3D","dynoSampler3D","DynoSampler3D","dynoUsamplerCube","DynoUsamplerCube","dynoIsamplerCube","DynoIsamplerCube","dynoSamplerCube","DynoSamplerCube","dynoSampler2DShadow","DynoSampler2DShadow","dynoSampler2DArrayShadow","DynoSampler2DArrayShadow","dynoSamplerCubeShadow","DynoSamplerCubeShadow","allGlobals","DynoProgram","graph","template","consoleLog","getMaterial","updater","DynoProgramTemplate","programMaterial","program","material","addOutputType","operation","subOutputType","mulOutputType","divOutputType","imodOutputType","modOutputType","negOutputType","absOutputType","signOutputType","floorOutputType","ceilOutputType","truncOutputType","roundOutputType","fractOutputType","powOutputType","expOutputType","exp2OutputType","logOutputType","log2OutputType","sqrOutputType","sqrtOutputType","inversesqrtOutputType","minOutputType","maxOutputType","clampOutputType","_c","mixOutputType","stepOutputType","smoothstepOutputType","isNanOutputType","isInfOutputType","Add","sub","Sub","mul","Mul","div","Div","imod","IMod","mod","Mod","modf","Modf","neg","Neg","abs","Abs","Sign","floor","Floor","ceil","Ceil","trunc","Trunc","round","Round","fract","Fract","pow","Pow","Exp","exp2","Exp2","log","Log","log2","Log2","sqr","Sqr","sqrt","Sqrt","inversesqrt","InverseSqrt","min","Min","Max","clamp","Clamp","mix","Mix","edge","Step","smoothstep","edge0","edge1","Smoothstep","isNan","IsNan","isInf","IsInf","and","And","or","Or","xor","Xor","not","Not","shr","Shr","shl","Shl","lessThan","LessThan","lessThanEqual","LessThanEqual","greaterThan","GreaterThan","greaterThanEqual","GreaterThanEqual","equal","Equal","notEqual","NotEqual","any","Any","all","All","select","cond","Select","compXor","CompXor","aType","bType","compareOutputType","equalOutputType","notEqualOutputType","cType","operator","compXorOutputType","operands","bool","Bool","int","Int","uint","Uint","float","Float","bvec2","BVec2","bvec3","BVec3","bvec4","BVec4","ivec2","IVec2","ivec3","IVec3","ivec4","IVec4","uvec2","UVec2","uvec3","UVec3","uvec4","UVec4","vec2","Vec2","vec3","Vec3","vec4","Vec4","mat2","Mat2","mat3","Mat3","mat4","Mat4","floatBitsToInt","FloatBitsToInt","FloatBitsToUint","intBitsToFloat","IntBitsToFloat","UintBitsToFloat","packSnorm2x16","PackSnorm2x16","unpackSnorm2x16","UnpackSnorm2x16","packUnorm2x16","PackUnorm2x16","unpackUnorm2x16","UnpackUnorm2x16","packHalf2x16","PackHalf2x16","unpackHalf2x16","UnpackHalf2x16","uintToRgba8","UintToRgba8","SimpleCast","length","Length","Distance","dot","Dot","cross","Cross","Normalize","faceforward","FaceForward","reflectVec","incident","normal","ReflectVec","refractVec","eta","RefractVec","split","vector","Split","combine","vectorType","Combine","projectH","ProjectH","extendVec","ExtendVec","swizzle","Swizzle","compMult","CompMult","outer","Outer","transpose","Transpose","determinant","Determinant","inverse","Inverse","projectHOutputType","extendVecOutputType","outerOutputType","transposeOutputType","splitOutTypes","vType","elType","dim","swizzleOutputType","remapIndex","from","to","DynoRemapIndex","pcgMix","PcgMix","pcgNext","state","PcgNext","pcgHash","PcgHash","hash","Hash","hash2","Hash2","hash3","Hash3","hash4","Hash4","hashFloat","HashFloat","hashVec2","HashVec2","hashVec3","HashVec3","hashVec4","HashVec4","normalizedDepth","zNear","zFar","NormalizedDepth","debugColorHue","DebugColorHue","toUint","tempType","toUvec","word","words","transformPos","TransformPosition","transformDir","dir","TransformDir","transformQuat","TransformQuaternion","dynoIf","dynoSwitch","dynoFor","comment","arrayIndex","arrayLength","textureSize","texture","lod","TextureSize","bias","Texture","texelFetch","TexelFetch","textureType","textureSizeType","textureCoordType","textureReturnType","radians","degrees","Radians","Degrees","sin","Sin","cos","Cos","tan","Tan","asin","Asin","acos","Acos","atan","Atan","atan2","Atan2","sinh","Sinh","cosh","Cosh","tanh","Tanh","asinh","Asinh","acosh","Acosh","atanh","Atanh","_ExtSplats","DynoExtSplats","url","fileType","fileName","stream","streamLength","nonLod","lodAbove","loader","SplatLoader","maybePromise","maxSh","viewOrigin","splatCenter","sh1Texture","sh2Texture","sh3TextureA","sh3TextureB","evaluateExtSH","sh1","newSh1","newUint32ArrayTexture","sh2","newSh2","sh3a","newSh3","sh3b","newSh3b","targetSize","currentSize","newArray0","newArray1","unpacked","indices","pageColoring","newSplats","splat","hue","rgbaArray","quality","lodBase","extra","decoded","lodSplats","emptyArray","ExtSplats","defineEvaluateExtSH1","defineEvaluateExtSH12","defineEvaluateExtSH3","numSh","format","internalFormat","decode_rad_header","bytes","ret","wasm","takeFromExternrefTable0","get_raycast_buffer","get_raycast_buffer2","raycast_ext_buffers","origin_x","origin_y","origin_z","dir_x","dir_y","dir_z","min_opacity","near","far","raycast_packed_buffer","ln_scale_min","ln_scale_max","lod_opacity","__wbg_get_imports","arg0","arg1","getStringFromWasm0","deferred0_0","deferred0_1","arg2","getArrayU8FromWasm0","getArrayU32FromWasm0","handleError","getArrayF32FromWasm0","ptr1","passStringToWasm0","len1","WASM_VECTOR_LEN","getDataViewMemory0","table","addToExternrefTable0","idx","ptr","len","getFloat32ArrayMemory0","getUint32ArrayMemory0","getUint8ArrayMemory0","cachedDataViewMemory0","cachedFloat32ArrayMemory0","decodeText","cachedUint32ArrayMemory0","cachedUint8ArrayMemory0","malloc","realloc","cachedTextEncoder","mem","code","view","cachedTextDecoder","MAX_SAFARI_DECODE_BYTES","numBytesDecoded","__wbg_finalize_init","instance","module","__wbg_load","imports","expectedResponseType","__wbg_init","module_or_path","computeUvec4_default","computeUvec4_Vec4_default","computeUvec4x2_Vec4_default","computeVec4_default","oldSplatFragment_default","oldSplatVertex_default","splatDefines_default","splatFragment_default","splatVertex_default","shaders","getShaders","splatDefines","oldSplatVertex","oldSplatFragment","splatVertex","splatFragment","computeVec4Template","computeUvec4Vec4Template","computeUvec4x2Vec4Template","computeUvec4Template","_Readback","renderer","buffer","newBuffer","ctor","capacity","reader","layerSize","baseIndex","layer","layerBase","layerYEnd","readback","roundedCount","readbackUint8","promises","readbackSize","subReadback","renderState","FullScreenQuad","Readback","_RgbaArray","TRgbaArray","defineRgbaArray","splatCount","dynoSplats","dynoBase","dynoCount","DynoPackedSplats","RgbaArray","readRgbaArray","SplatEditSdfType","sdfTypeToNumber","SplatEditRgbaBlendMode","rgbaBlendModeToNumber","mode","SplatEditSdf","invert","displace","radius","_SplatEdit","rgbaBlendMode","sdfSmooth","softEdge","sdfs","sdf","SplatEdit","SplatEdits","maxSdfs","maxEdits","SdfArray","defineSdfArray","defineEdit","dynoUpdated","updated","tempFloat32","editIndex","sdfFirst","sdfCount","sdfIndex","sdfType","sizes","values","nValues","vBase","edits","total","edit","sdfUpdated","applyGsplatRgbaDisplaceEdits","applyCovSplatRgbaDisplaceEdits","sdfArray","numEdits","rgbaDisplaceEdits","SplatModifier","modifier","generator","modified","SplatTransformer","transform","newScale","object","CovSplatTransformer","rebased","basis","SplatGenerator","covGenerator","constructed","_SplatAccumulator","splatCounts","mapping","rounded","target2","target3","theGenerator","_outputs","roots","output","centerSubView","halfAlpha","outputDepth","nextBase","layerYStart","scene","time","camera","renderSize","previous","lodInstances","allGenerators","globalEditsSet","ancestor","SplatMesh","globalEdits","visibleGenerators","baseCounts","previousMappings","mappings","previousNode","version","mappingVersion","splatsUpdated","mappingUpdated","textures","array","otherMapping","other","SplatAccumulator","SplatGeometry","_SparkRenderer","premultipliedAlpha","geometry","defaultPages","accumulatorOptions","doubleBuffer","origSuperXY","origTargetOptions","superXY","superWidth","superHeight","targetOptions","accumulators","accumulator","instances","spark","frame","isNewFrame","baseLayer","typedCamera","accumToWorld","accumToCamera","preUpdate","useCamera","autoUpdate","viewChanged","next","doUpdate","needsUpdate","now","nextSortTime","current","rows","orderingMaxSplats","gl","glTexture","orderingTexture","defaultSplatCount","pixelScaleLimit","viewHeight","viewWidth","pxY","pxX","viewPos","viewQuat","distanceRamp","quatRamp","lodMeshes","hasPaged","mesh","splats","record","SplatPager","lodId","lodInitQueue","updates","page","lodTree","lodUpdates","deltaPred","deltaTime","PackedSplats","uuidToMesh","cameraToWorld","viewToObject","traverseStart","keyIndices","pixelLimit","totalLodSplats","pagedMeshes","meshPosition","PagedSplats","uuid","countIndices","oldest","target","previousTarget","byteSize","superPixels","subWidth","subHeight","subSize","targetPixels","super2","row","superCol","superRow","sx","superIndex","pixelIndex","worldCenter","size","hideObjects","filter","cubeCamera","objectVisibility","tempCamera","visible","cubeTexture","envMap","level","SparkRenderer","dyno.DynoInt","dyno.DynoUsampler2D","dyno.DynoVec4","dyno.DynoBool","dyno.DynoVec3","getSplatFileType","getSplatFileTypeFromPath","wasmInitialized","metaStart","tryBytes","fetchRange","decodeBytes","meta","chunksStart","filename","resolvedRoot","chunkUrl","request","response","sh3Codes","_d","_e","indicesTexture","getGlTexture","splatIndex","packedSplatArray","extPackedSplatArray","_SplatPager","dyno.DynoUsampler2DArray","dyno.dynoBlock","dyno.Dyno","dyno.unindentLines","dyno.Gsplat","lodOpacity","dyno.defineGsplat","shMax","dyno.splitGsplat","dyno.normalize","dyno.sub","evaluatePackedSH","dyno.add","dyno.combineGsplat","pageLru","packedArray","extArray","pageBase","sh3","needed","overflow","numPages","backoff","extraPages","splatsChunk","fetched","upload","init_wasm","requestHeader","withCredentials","EmptySplatSource","_SplatMesh","context","rootUrl","emptyLodIndices","constructSplats","onProgress","splatEncoding","packedSplatsOptions","centers_only","minVec","maxVec","corners","signs","_index","_opacity","_color","maybeLookupIndex","maybeInjectSplatRgba","recolorRgba","covTransform","covViewToObject","viewToWorld","lodIndices","worldToView","viewToObjectMatrix","newRecolor","editsSdfs","editResult","raycaster","intersects","paged","ext","ray","worldToMesh","worldToMeshRot","origin","direction","bufferSize","intersections","_f","buffer2","ext1","_o","_n","_q","_p","_r","ext2","_t","_s","_v","_u","_w","index4","newIntersections","packed","_h","_g","_j","_i","_k","_l","_m","point","additional","enableLod","showLodPage","PLY_PROPERTY_TYPES","_PlyReader","decoder","controller","headerTerminator","done","endHeader","headerLen","curElement","lineIndex","fields","elementCallback","elementName","element","properties","createEmptyItem","parseFn","createParseFn","splatCallback","shCallback","isSuperSplat","ssChunks","sh1Props","sh2Props","sh3Props","prepareSh","num_f_rest","NUM_SH_TO_NUM_F_REST","ssShCallback","sh","initSuperSplat","min_x","min_y","min_z","max_x","max_y","max_z","min_scale_x","min_scale_y","min_scale_z","max_scale_x","max_scale_y","max_scale_z","min_r","min_g","min_b","max_r","max_g","max_b","decodeSuperSplat","getNumSh","packed_position","packed_rotation","packed_scale","packed_color","SQRT2","r0","r1","rr","rOrder","scale_0","scale_1","scale_2","rot_0","rot_1","rot_2","rot_3","f_dc_0","f_dc_1","f_dc_2","red","green","blue","alpha","hasScales","hasRots","alphaDiv","FIELD_SCALE","redDiv","greenDiv","blueDiv","op","SH_C0","parsers","rgbaOffset","isVertex","propertyName","property","PARSE_FIELD","FIELD_BYTES","component","SET_FIELD","parser","PlyReader","littleEndian","NUM_F_REST_TO_NUM_SH","F_REST_REGEX","safeToCompile","createCompiledParserFn","createDynamicParserFn","UNSAFE_EVAL_ALLOWED","PROPERTY_NAME_REGEX","parserSrc","fRestMatch","fRestIndex","list","currentOffset","parserIndex","Loader","manager","FileLoader","onLoad","onError","resolvedURL","readStream","splatsLod","splatsNonLod","onStatus","loaded","basedUrl","initExtSplats","initSplats","magic","header","tryPcSogsZip","getFileExtension","pathOrUrl","noTrailing","lastSlash","lastDot","extension","isPcSogs","tryPcSogs","text","json","isVersion2","metaFilename","unzipped","unpackSplats","extraFiles","splatFileType","ply","SplatData","targetSplats","newCenters","newScales","newQuaternions","newOpacities","newColors","_PackedSplats","sh3Texture","wordsPerSplat","defineEvalPackedSH1","defineEvalPackedSH2","defineEvalPackedSH3","_OldSparkViewpoint","forceOrigin","originToWorld","newCam","needsSort","displayed","latestView","doubleSortReader","sort32Reader","dynoSortRadial","dynoOrigin","dynoDirection","dynoDepthBias","dynoSort360","sort32","halfMaxSplats","worldToOrigin","viewToOrigin","sortReader","rpcName","oldOrdering","sortParams","index2","gsplat0","metric0","computeSortMetric","gsplat1","metric1","combined","metric","OldSparkViewpoint","defineComputeSortMetric","sortOrigin","sortDirection","sortDepthBias","sort360","OldSplatAccumulator","generators","forceUpdate","map","modGenerator","otherNode","otherBase","otherCount","MAX_ACCUMULATORS","_OldSparkRenderer","EMPTY_GEOMETRY","viewpoint","cameras","averageOriginToWorlds","enable","multiply","mid","worldToCamera","activeMapping","visibleGenHash","originUpdate","originChanged","genOrder","gIndex","lastGen","_version","_seq","newGenerators","hasCorrespondence","OldSparkRenderer","originToWorlds","matrix","decodeAntiSplat","initNumSplats","f32","i8","KSPLAT_COMPRESSION","KSPLAT_SH_DEGREE_TO_COMPONENTS","decodeKsplat","headerOffset","versionMajor","versionMinor","maxSectionCount","compressionLevel","minSphericalHarmonicsCoeff","maxSphericalHarmonicsCoeff","sectionBase","section","getSh","splatOffset","sphericalHarmonicsOffsetBytes","sectionSplatCount","sectionMaxSplatCount","bucketSize","bucketCount","bucketBlockSize","bucketStorageSizeBytes","compressionScaleRange","fullBucketCount","fullBucketSplats","partiallyFilledBucketCount","bucketsMetaDataSizeBytes","bucketsStorageSizeBytes","sphericalHarmonicsDegree","shComponents","bytesPerCenter","bytesPerScale","bytesPerRotation","bytesPerColor","bytesPerSphericalHarmonicsComponent","scaleOffsetBytes","rotationOffsetBytes","colorOffsetBytes","bytesPerSplat","splatDataStorageSizeBytes","storageSizeBytes","sh1Index","sh2Index","sh3Index","compressionScaleFactor","bucketsBase","dataBase","bucketArray","partiallyFilledBucketLengths","partialBucketIndex","partialBucketBase","bucketIndex","bucketLength","SpzReader","centerCallback","alphaCallback","rgbCallback","scalesCallback","quatCallback","childCounts","childStarts","centerBytes","centerUint16","i3","fixed","i9","rgbBytes","scalesBytes","maxValue","quatBytes","combinedValues","valueMask","largestIndex","remainingValues","sumSquares","square","shBytes","SH_DEGREE_TO_VECS","i2","SPZ_MAGIC","SPZ_VERSION","FLAG_ANTIALIASED","SpzWriter","shDegree","fractionalBits","flagAntiAlias","splatSize","xRounded","xInt","yRounded","yInt","zRounded","zInt","quat","iLargest","negate","comp","negbit","mag","quantized","shVecs","base1","base2","base3","compressed","transcodeSpz","clipXyz","opacityThreshold","transformScales","transformQuaternion","withinClip","clip","withinOpacity","lastIndex","spz","centers","SplatSkinningMode","_SplatSkinning","GsplatSkinning","defineGsplatSkinning","applyGsplatSkinning","applyCovSplatDQSkinning","applyCovSplatLBSkinning","boneIndex","i16","boneIndices","weights","SplatSkinning","defineApplyGsplatSkinning","skinning","defineApplyCovSplatDQSkinning","defineApplyCovSplatLBSkinning","constructGrid","extents","stepSize","pointRadius","pointShadowScale","pointColor","constructAxes","axisRadius","axisShadowScale","origins","constructSpherePoints","maxDepth","pointThickness","pointsHash","addPoint","recurse","p0","p1","p2","p01","p12","p20","points","textSplats","font","fontSize","dotRadius","textAlign","lineHeight","objectScale","metrics","fontHeight","minLeft","maxRight","minTop","maxBottom","originLeft","originTop","imageSplats","subXY","forEachSplat","img","destWidth","destHeight","push","maybeOpacity","staticBox","box","cells","dotScale","dynoX","dynoY","dynoTime","cellX","cellY","cellZ","cell","intTime","random","transformer","DEFAULT_SNOW","DEFAULT_RAIN","snowBox","minY","density","anisoScale","minScale","maxScale","fallDirection","fallVelocity","wanderScale","wanderVariance","color1","color2","onFrame","volume","dynoMinScale","dynoMaxScale","dynoAnisoScale","dynoFallDirection","dynoFallVelocity","dynoWanderScale","dynoWanderVariance","dynoColor1","dynoColor2","dynoOpacity","globalOffset","dynoMin","dynoMax","dynoMinY","minMax","snow","randomW","intensity","random2","perturb","timeOffset","modulo","centerY","fallDelta","makeNormalColorModifier","splatToView","viewGsplat","viewNormal","splatDot","sameDir","setWorldNormalColor","makeDepthColorModifier","minDepth","reverse","setDepthColor","dynoMinDepth","dynoMaxDepth","dynoReverse","DEFAULT_CONTROLLER_MOVE_SPEED","DEFAULT_CONTROLLER_ROTATE_SPEED","DEFAULT_CONTROLLER_ROLL_SPEED","DEFAULT_CONTROLLER_FAST_MULTIPLIER","DEFAULT_CONTROLLER_SLOW_MULTIPLIER","DEFAULT_CONTROLLER_MOVE_HEADING","DEFAULT_CONTROLLER_GETMOVE","gamepads","sparkXr","DEFAULT_CONTROLLER_GETROTATE","DEFAULT_CONTROLLER_GETFAST","DEFAULT_CONTROLLER_GETSLOW","JointEnum","JOINT_IDS","NUM_JOINTS","JOINT_INDEX","JOINT_RADIUS","JOINT_SEGMENTS","JOINT_SEGMENT_STEPS","JOINT_TIPS","FINGER_TIPS","Hand","HANDS","XR_HEADSET_HINTS","isLikelyMobilePhone","ua","uaData","_SparkXr","XrHand","button","modes","supported","referenceSpaceType","frameBufferScaleFactor","optionalFeatures","requiredFeatures","session","onSessionEnded","visibilityChanged","lastVisibilityState","exitHtml","exitText","enterHtml","enterText","cameraFrame","xrGamepads","gamepad","eulers","pivot","move","moveSpeed","SCRATCH_EULER","SCRATCH_QUAT_A","xrFrame","xrSession","referenceSpace","hand","inputSource","xrHand","jointId","jointSpace","jointPose","orientation","JointSplats","joints","hands","SparkXr","round4","SCRATCH_QUAT_B","lerpHandsSnapshots","snapshots","first","last","floorIndex","findSnapshotFloorIndex","cloneSnapshot","span","factor","interpolateSnapshots","maxHands","handIndex","lerpHandSnapshot","snapshot","cloneHandSnapshot","joint","low","high","fromHand","toHand","lerpJointSnapshot","fromJoint","toJoint","clone","cloneJointSnapshot","DEFAULT_MOVE_INERTIA","DEFAULT_ROTATE_INERTIA","TOUCH_BIAS","XrHands","xr","Vector3","Quaternion","Color","CYCLE","handedness","segment","segmentSplats","lastSegment","jointA","jointB","radiusA","radiusB","handA","handB","hA","hB","jA","jB","HandMovement","xrHands","control","moveInertia","rotateInertia","grip","lastMid","delta","angle","lastAngle","closestAngle","rotateVelocity","blend","negPivot","Matrix4","DEFAULT_MOVEMENT_SPEED","DEFAULT_ROLL_SPEED","DEFAULT_ROTATE_SPEED","DEFAULT_SLIDE_SPEED","DEFAULT_SCROLL_SPEED","DEFAULT_STICK_THRESHOLD","DEFAULT_FPS_ROTATE_SPEED","DEFAULT_POINTER_ROLL_SCALE","DEFAULT_PRESS_MOVE_DELAY_MS","DEFAULT_PRESS_MOVE_ACCEL_MS","DUAL_PRESS_MS","DOUBLE_PRESS_LIMIT_MS","DOUBLE_PRESS_DISTANCE","MOVEMENT_THRESHOLD","WASD_KEYCODE_MOVE","ARROW_KEYCODE_MOVE","ARROW_KEYCODE_ROTATE","SparkControls","FpsMovement","PointerControls","rollSpeed","stickThreshold","rotateSpeed","keycodeMoveMapping","keycodeRotateMapping","gamepadMapping","capsMultiplier","shiftMultiplier","ctrlMultiplier","sticks","gamepadButtons","xrSources","stick","keycode","rot","moveVector","speedMultiplier","slideSpeed","scrollSpeed","swapRotateSlide","reverseRotate","reverseSlide","reverseSwipe","reverseScroll","pointerRollScale","doublePress","pressMoveDelayMs","pressMoveAccelMs","pressMoveSpeed","doublePressMoveSpeed","triplePressMoveSpeed","pressMoveCenter","initial","isRotate","pointerId","timeStamp","intervalMs","lastDistance","lastIntervalMs","pointerUp","lastUp","rect","motion","totalMotion","slide","deltaDir","deltaDist","orthoDir","motionDir","motionOrtho","midpoint","midpointDir","theCamera","ndcMidpoint","pinchOut","angles","ndcPoint","scroll","DISK_PORTAL_FRAGMENT_SHADER","SparkPortals","sparkOpts","pair","portal","twoSided","inverseCamera","portalInCamera","portalQuat","outCenter","outNormal","prevCam","currCam","beforeMatrix","afterMatrix","startPlaneDist","endPlaneDist","denom","earliestT","crossedPair","crossedEntry","entryT","exitT","bestScore","bestPair","bestIsEntry","entryDist","entryScore","exitDist","exitScore","primary","primaryIsEntry","primaryPortal","otherPortal","aspect"],"mappings":"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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ICAAC,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ICAAC,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ICAAC,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ICAAC,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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","x_google_ignoreList":[1]} \ No newline at end of file +{"version":3,"file":"spark.module.min.js","sources":["../src/defines.ts","../src/dyno/types.ts","../src/dyno/value.ts","../src/dyno/base.ts","../src/dyno/splats.ts","../src/dyno/output.ts","../src/dyno/uniforms.ts","../node_modules/fflate/esm/browser.js","../src/utils.ts","../src/dyno/program.ts","../src/dyno/mathTypes.ts","../src/dyno/math.ts","../src/dyno/logic.ts","../src/dyno/convert.ts","../src/dyno/vecmat.ts","../src/dyno/util.ts","../src/dyno/transform.ts","../src/dyno/control.ts","../src/dyno/texture.ts","../src/dyno/trig.ts","../src/shaders/computeUvec4.glsl","../src/shaders/computeUvec4_Vec4.glsl","../src/shaders/computeUvec4x2_Vec4.glsl","../src/shaders/computeVec4.glsl","../src/shaders/splatDefines.glsl","../src/shaders/splatFragment.glsl","../src/shaders/splatVertex.glsl","../src/shaders.ts","../src/Readback.ts","../src/SplatEdit.ts","../src/SplatGenerator.ts","../rust/spark-rs/pkg/spark_rs.js","../virtual:decode-64","../src/wasm.ts","../src/SplatWorker.ts","../src/PackedSplats.ts","../src/SplatLoader.ts","../src/ExtSplats.ts","../src/RgbaArray.ts","../src/SplatPager.ts","../src/SplatMesh.ts","../src/SplatAccumulator.ts","../src/SplatGeometry.ts","../src/SparkRenderer.ts","../src/ply.ts","../src/antisplat.ts","../src/ksplat.ts","../src/spz.ts","../src/SplatSkinning.ts","../src/splatConstructors.ts","../src/generators/static.ts","../src/generators/snow.ts","../src/modifiers/normalColor.ts","../src/modifiers/depthColor.ts","../src/SparkXr.ts","../src/hands.ts","../src/controls.ts","../src/SparkPortals.ts"],"sourcesContent":["// LN_SCALE_MIN..LN_SCALE_MAX define the internal scale range of for Gsplats,\n// covering approx 0.0001..8000 in range with discrete steps 7% apart.\n// The value \"0\" is reserved for truly flat scales, indicating a 2DGS.\n// If these values are changed, the corresponding values in splatDefines.glsl\n// must also be updated to match.\n\nexport const LN_SCALE_MIN = -12.0;\nexport const LN_SCALE_MAX = 9.0;\nexport const SCALE_MIN = Math.exp(LN_SCALE_MIN);\nexport const SCALE_MAX = Math.exp(LN_SCALE_MAX);\n\nexport const LN_SCALE_ZERO = -30.0;\nexport const SCALE_ZERO = Math.exp(LN_SCALE_ZERO);\n\n// Gsplats are stored in textures that are 2^11 x 2^11 x up to 2^11\n// Most WebGL2 implementations support 2D textures up to 2^12 x 2^12 (max 16M Gsplats)\n// 2D array textures and 3D textures up to 2^11 x 2^11 x 2^11 (max 8G Gsplats),\n// so we use 2D array textures for our representation for higher limits.\n\nexport const SPLAT_TEX_WIDTH_BITS = 11;\nexport const SPLAT_TEX_HEIGHT_BITS = 11;\nexport const SPLAT_TEX_DEPTH_BITS = 11;\nexport const SPLAT_TEX_LAYER_BITS =\n SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nexport const SPLAT_TEX_WIDTH = 1 << SPLAT_TEX_WIDTH_BITS; // 2048\nexport const SPLAT_TEX_HEIGHT = 1 << SPLAT_TEX_HEIGHT_BITS; // 2048\nexport const SPLAT_TEX_DEPTH = 1 << SPLAT_TEX_DEPTH_BITS; // 2048\nexport const SPLAT_TEX_MIN_HEIGHT = 1;\n\nexport const SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1;\nexport const SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1;\nexport const SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1;\n\n// Enable/disable Gsplat sorting via Rust WASM code. In testing the sorting\n// time between pure JS and WASM are minimal and don't make a big difference.\n\nexport const WASM_SPLAT_SORT = true;\n\n// Enable/disable compiling a dedicated parse function per element type\n// in the plyReader.\n\nexport const USE_COMPILED_PARSER_FUNCTION = true;\n\nexport enum SplatFileType {\n PLY = \"ply\",\n SPZ = \"spz\",\n SPLAT = \"splat\",\n KSPLAT = \"ksplat\",\n PCSOGS = \"pcsogs\",\n PCSOGSZIP = \"pcsogszip\",\n RAD = \"rad\",\n}\n\nexport type SplatEncoding = {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n sh1Max?: number;\n sh2Max?: number;\n sh3Max?: number;\n lodOpacity?: boolean;\n};\n\nexport const DEFAULT_SPLAT_ENCODING: SplatEncoding = {\n rgbMin: 0,\n rgbMax: 1,\n lnScaleMin: LN_SCALE_MIN,\n lnScaleMax: LN_SCALE_MAX,\n sh1Max: 1,\n sh2Max: 1,\n sh3Max: 1,\n lodOpacity: false,\n};\n\nexport type RadMeta = {\n version: number;\n type: string;\n count: number;\n maxSh?: number;\n lodTree?: boolean;\n chunkSize?: number;\n chunks: {\n offset: number;\n bytes: number;\n base?: number;\n count?: number;\n filename?: string;\n }[];\n splatEncoding?: SplatEncoding;\n};\n\nexport type PackedExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array;\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type PackedResult = {\n numSplats: number;\n packedArray: Uint32Array;\n extra: PackedExtra;\n splatEncoding: SplatEncoding;\n};\n\nexport type ExtExtra = {\n sh1?: Uint32Array;\n sh2?: Uint32Array;\n sh3a?: Uint32Array;\n sh3b?: Uint32Array;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: [Uint32Array, Uint32Array];\n lodTree?: Uint32Array;\n radMeta?: RadMeta;\n};\n\nexport type ExtResult = {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: ExtExtra;\n};\n","import type * as THREE from \"three\";\n\nexport type BoolTypes = \"bool\" | \"bvec2\" | \"bvec3\" | \"bvec4\";\nexport type IntTypes = \"int\" | \"ivec2\" | \"ivec3\" | \"ivec4\";\nexport type UintTypes = \"uint\" | \"uvec2\" | \"uvec3\" | \"uvec4\";\nexport type AllIntTypes = IntTypes | UintTypes;\nexport type FloatTypes = \"float\" | \"vec2\" | \"vec3\" | \"vec4\";\nexport type ScalarTypes = \"uint\" | \"int\" | \"float\";\nexport type Vector2Types = \"vec2\" | \"ivec2\" | \"uvec2\";\nexport type Vector3Types = \"vec3\" | \"ivec3\" | \"uvec3\";\nexport type Vector4Types = \"vec4\" | \"ivec4\" | \"uvec4\";\nexport type VectorTypes = Vector2Types | Vector3Types | Vector4Types;\nexport type MatFloatTypes =\n | \"mat2\"\n | \"mat2x2\"\n | \"mat2x3\"\n | \"mat2x4\"\n | \"mat3\"\n | \"mat3x2\"\n | \"mat3x3\"\n | \"mat3x4\"\n | \"mat4\"\n | \"mat4x2\"\n | \"mat4x3\"\n | \"mat4x4\";\nexport type SquareMatTypes =\n | \"mat2\"\n | \"mat3\"\n | \"mat4\"\n | \"mat2x2\"\n | \"mat3x3\"\n | \"mat4x4\";\nexport type AllFloatTypes = FloatTypes | MatFloatTypes;\nexport type SignedTypes = IntTypes | FloatTypes;\nexport type AllSignedTypes = SignedTypes | MatFloatTypes;\nexport type ValueTypes = FloatTypes | IntTypes | UintTypes;\nexport type AllValueTypes = AllFloatTypes | IntTypes | UintTypes;\nexport type SimpleTypes = BoolTypes | AllValueTypes;\n\nexport type VectorElementType = A extends FloatTypes\n ? \"float\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nexport type SameSizeVec = T extends ScalarTypes\n ? \"float\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"vec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"vec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"vec4\"\n : never;\n\nexport type SameSizeUvec = T extends ScalarTypes\n ? \"uint\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"uvec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"uvec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"uvec4\"\n : never;\n\nexport type SameSizeIvec = T extends ScalarTypes\n ? \"int\"\n : T extends \"vec2\" | \"ivec2\" | \"uvec2\"\n ? \"ivec2\"\n : T extends \"vec3\" | \"ivec3\" | \"uvec3\"\n ? \"ivec3\"\n : T extends \"vec4\" | \"ivec4\" | \"uvec4\"\n ? \"ivec4\"\n : never;\n\nexport type SamplerTypes =\n | \"sampler2D\"\n | \"sampler2DArray\"\n | \"sampler3D\"\n | \"samplerCube\";\nexport type UsamplerTypes =\n | \"usampler2D\"\n | \"usampler2DArray\"\n | \"usampler3D\"\n | \"usamplerCube\";\nexport type IsamplerTypes =\n | \"isampler2D\"\n | \"isampler2DArray\"\n | \"isampler3D\"\n | \"isamplerCube\";\nexport type NormalSamplerTypes = SamplerTypes | UsamplerTypes | IsamplerTypes;\nexport type SamplerShadowTypes =\n | \"sampler2DShadow\"\n | \"sampler2DArrayShadow\"\n | \"samplerCubeShadow\";\nexport type AllSamplerTypes = NormalSamplerTypes | SamplerShadowTypes;\nexport type Sampler2DTypes =\n | \"sampler2D\"\n | \"usampler2D\"\n | \"isampler2D\"\n | \"sampler2DShadow\";\nexport type Sampler2DArrayTypes =\n | \"sampler2DArray\"\n | \"usampler2DArray\"\n | \"isampler2DArray\"\n | \"sampler2DArrayShadow\";\nexport type Sampler3DTypes = \"sampler3D\" | \"usampler3D\" | \"isampler3D\";\nexport type SamplerCubeTypes =\n | \"samplerCube\"\n | \"usamplerCube\"\n | \"isamplerCube\"\n | \"samplerCubeShadow\";\n\nexport function isBoolType(type: DynoType): boolean {\n return (\n type === \"bool\" || type === \"bvec2\" || type === \"bvec3\" || type === \"bvec4\"\n );\n}\n\nexport function isScalarType(type: DynoType): boolean {\n return type === \"int\" || type === \"uint\" || type === \"float\";\n}\n\nexport function isIntType(type: DynoType): boolean {\n return (\n type === \"int\" || type === \"ivec2\" || type === \"ivec3\" || type === \"ivec4\"\n );\n}\n\nexport function isUintType(type: DynoType): boolean {\n return (\n type === \"uint\" || type === \"uvec2\" || type === \"uvec3\" || type === \"uvec4\"\n );\n}\n\nexport function isFloatType(type: DynoType): boolean {\n return (\n type === \"float\" || type === \"vec2\" || type === \"vec3\" || type === \"vec4\"\n );\n}\n\nexport function isMatFloatType(type: DynoType): boolean {\n return (\n type === \"mat2\" ||\n type === \"mat2x2\" ||\n type === \"mat2x3\" ||\n type === \"mat2x4\" ||\n type === \"mat3\" ||\n type === \"mat3x2\" ||\n type === \"mat3x3\" ||\n type === \"mat3x4\" ||\n type === \"mat4\" ||\n type === \"mat4x2\" ||\n type === \"mat4x3\" ||\n type === \"mat4x4\"\n );\n}\n\nexport function isAllFloatType(type: DynoType): boolean {\n return isFloatType(type) || isMatFloatType(type);\n}\n\nexport function isVector2Type(type: DynoType): boolean {\n return type === \"vec2\" || type === \"ivec2\" || type === \"uvec2\";\n}\n\nexport function isVector3Type(type: DynoType): boolean {\n return type === \"vec3\" || type === \"ivec3\" || type === \"uvec3\";\n}\n\nexport function isVector4Type(type: DynoType): boolean {\n return type === \"vec4\" || type === \"ivec4\" || type === \"uvec4\";\n}\n\nexport function isVectorType(type: DynoType): boolean {\n return isVector2Type(type) || isVector3Type(type) || isVector4Type(type);\n}\n\nexport function isMat2(type: DynoType): boolean {\n return type === \"mat2\" || type === \"mat2x2\";\n}\nexport function isMat3(type: DynoType): boolean {\n return type === \"mat3\" || type === \"mat3x3\";\n}\nexport function isMat4(type: DynoType): boolean {\n return type === \"mat4\" || type === \"mat4x4\";\n}\n\nexport function vectorElementType(\n type: A,\n): VectorElementType {\n switch (type) {\n case \"vec2\":\n return \"float\" as VectorElementType;\n case \"vec3\":\n return \"float\" as VectorElementType;\n case \"vec4\":\n return \"float\" as VectorElementType;\n case \"ivec2\":\n return \"int\" as VectorElementType;\n case \"ivec3\":\n return \"int\" as VectorElementType;\n case \"ivec4\":\n return \"int\" as VectorElementType;\n case \"uvec2\":\n return \"uint\" as VectorElementType;\n case \"uvec3\":\n return \"uint\" as VectorElementType;\n case \"uvec4\":\n return \"uint\" as VectorElementType;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function vectorDim(type: A): number {\n switch (type) {\n case \"vec2\":\n case \"ivec2\":\n case \"uvec2\":\n return 2;\n case \"vec3\":\n case \"ivec3\":\n case \"uvec3\":\n return 3;\n case \"vec4\":\n case \"ivec4\":\n case \"uvec4\":\n return 4;\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport function sameSizeVec(type: T): SameSizeVec {\n if (isScalarType(type)) {\n return \"float\" as SameSizeVec;\n }\n if (isVector2Type(type)) {\n return \"vec2\" as SameSizeVec;\n }\n if (isVector3Type(type)) {\n return \"vec3\" as SameSizeVec;\n }\n if (isVector4Type(type)) {\n return \"vec4\" as SameSizeVec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeUvec(type: T): SameSizeUvec {\n if (isScalarType(type)) {\n return \"uint\" as SameSizeUvec;\n }\n if (isVector2Type(type)) {\n return \"uvec2\" as SameSizeUvec;\n }\n if (isVector3Type(type)) {\n return \"uvec3\" as SameSizeUvec;\n }\n if (isVector4Type(type)) {\n return \"uvec4\" as SameSizeUvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport function sameSizeIvec(type: T): SameSizeIvec {\n if (isScalarType(type)) {\n return \"int\" as SameSizeIvec;\n }\n if (isVector2Type(type)) {\n return \"ivec2\" as SameSizeIvec;\n }\n if (isVector3Type(type)) {\n return \"ivec3\" as SameSizeIvec;\n }\n if (isVector4Type(type)) {\n return \"ivec4\" as SameSizeIvec;\n }\n throw new Error(`Invalid vector type: ${type}`);\n}\n\nexport type BaseType = SimpleTypes | AllSamplerTypes;\nexport type UserType = { type: string };\nexport type DynoType = BaseType | UserType;\n\nexport type DynoJsType = T extends \"bool\"\n ? boolean\n : T extends \"uint\"\n ? number\n : T extends \"int\"\n ? number\n : T extends \"float\"\n ? number\n : T extends \"bvec2\"\n ? [boolean, boolean]\n : T extends \"uvec2\"\n ? THREE.Vector2 | [number, number] | Uint32Array\n : T extends \"ivec2\"\n ? THREE.Vector2 | [number, number] | Int32Array\n : T extends \"vec2\"\n ? THREE.Vector2 | [number, number] | Float32Array\n : T extends \"bvec3\"\n ? [boolean, boolean, boolean]\n : T extends \"uvec3\"\n ? THREE.Vector3 | [number, number, number] | Uint32Array\n : T extends \"ivec3\"\n ? THREE.Vector3 | [number, number, number] | Int32Array\n : T extends \"vec3\"\n ?\n | THREE.Vector3\n | THREE.Color\n | [number, number, number]\n | Float32Array\n : T extends \"bvec4\"\n ? [boolean, boolean, boolean, boolean]\n : T extends \"uvec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Uint32Array\n : T extends \"ivec4\"\n ?\n | THREE.Vector4\n | [number, number, number, number]\n | Int32Array\n : T extends \"vec4\"\n ?\n | THREE.Vector4\n | THREE.Quaternion\n | [number, number, number, number]\n | Float32Array\n : T extends \"mat2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x2\"\n ? THREE.Matrix2 | Float32Array\n : T extends \"mat2x3\"\n ? Float32Array\n : T extends \"mat2x4\"\n ? Float32Array\n : T extends \"mat3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x2\"\n ? Float32Array\n : T extends \"mat3x3\"\n ? THREE.Matrix3 | Float32Array\n : T extends \"mat3x4\"\n ? Float32Array\n : T extends \"mat4\"\n ? THREE.Matrix4 | Float32Array\n : T extends \"mat4x2\"\n ? Float32Array\n : T extends \"mat4x3\"\n ? Float32Array\n : T extends \"mat4x4\"\n ?\n | THREE.Matrix4\n | Float32Array\n : T extends \"usampler2D\"\n ? THREE.Texture\n : T extends \"isampler2D\"\n ? THREE.Texture\n : T extends \"sampler2D\"\n ? THREE.Texture\n : T extends \"sampler2DShadow\"\n ? THREE.Texture\n : T extends \"usampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"isampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArray\"\n ? THREE.DataArrayTexture\n : T extends \"sampler2DArrayShadow\"\n ? THREE.Texture\n : T extends \"usampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"isampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"sampler3D\"\n ? THREE.DataArrayTexture\n : T extends \"usamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"isamplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCube\"\n ? THREE.DataArrayTexture\n : T extends \"samplerCubeShadow\"\n ? THREE.Texture\n : unknown;\n\nexport function typeLiteral(type: DynoType): string {\n if (typeof type === \"string\") {\n return type;\n }\n if (typeof type === \"object\" && type.type) {\n return type.type;\n }\n throw new Error(`Invalid DynoType: ${String(type)}`);\n}\n\nexport function numberAsInt(value: number): string {\n return Math.trunc(value).toString();\n}\n\nexport function numberAsUint(value: number): string {\n const v = Math.max(0, Math.trunc(value));\n return `${v.toString()}u`;\n}\n\nexport function numberAsFloat(value: number): string {\n return value === Number.POSITIVE_INFINITY\n ? \"INFINITY\"\n : value === Number.NEGATIVE_INFINITY\n ? \"-INFINITY\"\n : Number.isInteger(value)\n ? value.toFixed(1)\n : value.toString();\n}\n","import * as THREE from \"three\";\n\nimport type { Dyno, IOTypes } from \"./base\";\nimport {\n type DynoJsType,\n type DynoType,\n type SimpleTypes,\n isAllFloatType,\n isBoolType,\n isIntType,\n isUintType,\n numberAsFloat,\n numberAsInt,\n numberAsUint,\n} from \"./types\";\n\nexport type DynoVal = DynoValue | HasDynoOut;\n\nexport function valType(val: DynoVal): T {\n if (val instanceof DynoValue) {\n return val.type;\n }\n const value = val.dynoOut();\n return value.type;\n}\n\nexport interface HasDynoOut {\n dynoOut(): DynoValue;\n}\n\nexport class DynoValue {\n type: T;\n // This field prevents TypeScript structural matching on objects with a \"type\" field\n private __isDynoValue = true;\n\n constructor(type: T) {\n this.type = type;\n }\n}\n\nexport class DynoOutput<\n T extends DynoType,\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends DynoValue {\n dyno: Dyno;\n key: string;\n\n constructor(dyno: Dyno, key: string) {\n super(dyno.outTypes[key] as T);\n this.dyno = dyno;\n this.key = key;\n }\n}\n\nexport class DynoLiteral extends DynoValue {\n literal: string;\n\n constructor(type: T, literal: string) {\n super(type);\n this.literal = literal;\n }\n\n getLiteral(): string {\n return this.literal;\n }\n}\n\nexport function dynoLiteral(\n type: T,\n literal: string,\n): DynoLiteral {\n return new DynoLiteral(type, literal);\n}\n\nexport class DynoConst extends DynoLiteral {\n value: DynoJsType;\n\n constructor(type: T, value: DynoJsType) {\n super(type, \"\");\n this.value = value;\n }\n\n getLiteral(): string {\n const { type, value } = this;\n switch (type) {\n case \"bool\":\n return value ? \"true\" : \"false\";\n case \"uint\":\n return numberAsUint(value as number);\n case \"int\":\n return numberAsInt(value as number);\n case \"float\":\n return numberAsFloat(value as number);\n case \"bvec2\": {\n const v = value as [boolean, boolean];\n return `bvec2(${v[0]}, ${v[1]})`;\n }\n case \"uvec2\": {\n if (value instanceof THREE.Vector2) {\n return `uvec2(${numberAsUint(value.x)}, ${numberAsUint(value.y)})`;\n }\n const v = value as [number, number] | Uint32Array;\n return `uvec2(${numberAsUint(v[0])}, ${numberAsUint(v[1])})`;\n }\n case \"ivec2\": {\n if (value instanceof THREE.Vector2) {\n return `ivec2(${numberAsInt(value.x)}, ${numberAsInt(value.y)})`;\n }\n const v = value as [number, number] | Int32Array;\n return `ivec2(${numberAsInt(v[0])}, ${numberAsInt(v[1])})`;\n }\n case \"vec2\": {\n if (value instanceof THREE.Vector2) {\n return `vec2(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)})`;\n }\n const v = value as [number, number] | Float32Array;\n return `vec2(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])})`;\n }\n case \"bvec3\": {\n const v = value as [boolean, boolean, boolean];\n return `bvec3(${v[0]}, ${v[1]}, ${v[2]})`;\n }\n case \"uvec3\": {\n if (value instanceof THREE.Vector3) {\n return `uvec3(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)})`;\n }\n const v = value as [number, number, number] | Uint32Array;\n return `uvec3(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])})`;\n }\n case \"ivec3\": {\n if (value instanceof THREE.Vector3) {\n return `ivec3(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)})`;\n }\n const v = value as [number, number, number] | Int32Array;\n return `ivec3(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])})`;\n }\n case \"vec3\": {\n if (value instanceof THREE.Vector3) {\n return `vec3(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)})`;\n }\n const v = value as [number, number, number] | Float32Array;\n return `vec3(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])})`;\n }\n case \"bvec4\": {\n const v = value as [boolean, boolean, boolean, boolean];\n return `bvec4(${v[0]}, ${v[1]}, ${v[2]}, ${v[3]})`;\n }\n case \"uvec4\": {\n if (value instanceof THREE.Vector4) {\n return `uvec4(${numberAsUint(value.x)}, ${numberAsUint(value.y)}, ${numberAsUint(value.z)}, ${numberAsUint(value.w)})`;\n }\n const v = value as [number, number, number, number] | Uint32Array;\n return `uvec4(${numberAsUint(v[0])}, ${numberAsUint(v[1])}, ${numberAsUint(v[2])}, ${numberAsUint(v[3])})`;\n }\n case \"ivec4\": {\n if (value instanceof THREE.Vector4) {\n return `ivec4(${numberAsInt(value.x)}, ${numberAsInt(value.y)}, ${numberAsInt(value.z)}, ${numberAsInt(value.w)})`;\n }\n const v = value as [number, number, number, number] | Int32Array;\n return `ivec4(${numberAsInt(v[0])}, ${numberAsInt(v[1])}, ${numberAsInt(v[2])}, ${numberAsInt(v[3])})`;\n }\n case \"vec4\": {\n if (value instanceof THREE.Vector4) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n if (value instanceof THREE.Quaternion) {\n return `vec4(${numberAsFloat(value.x)}, ${numberAsFloat(value.y)}, ${numberAsFloat(value.z)}, ${numberAsFloat(value.w)})`;\n }\n const v = value as [number, number, number, number] | Float32Array;\n return `vec4(${numberAsFloat(v[0])}, ${numberAsFloat(v[1])}, ${numberAsFloat(v[2])}, ${numberAsFloat(v[3])})`;\n }\n case \"mat2\":\n case \"mat2x2\": {\n const m = value as DynoJsType<\"mat2\">;\n const e =\n m instanceof THREE.Matrix2 ? m.elements : (value as Float32Array);\n const arg = new Array(4).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x3\": {\n const e = value as DynoJsType<\"mat2x3\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat2x4\": {\n const e = value as DynoJsType<\"mat2x4\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3\":\n case \"mat3x3\": {\n const m = value as DynoJsType<\"mat3\">;\n const e =\n m instanceof THREE.Matrix3 ? m.elements : (value as Float32Array);\n const arg = new Array(9).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x2\": {\n const e = value as DynoJsType<\"mat3x2\">;\n const arg = new Array(6).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat3x4\": {\n const e = value as DynoJsType<\"mat3x4\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4\":\n case \"mat4x4\": {\n const m = value as DynoJsType<\"mat4\">;\n const e =\n m instanceof THREE.Matrix4 ? m.elements : (value as Float32Array);\n const arg = new Array(16).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x2\": {\n const e = value as DynoJsType<\"mat4x2\">;\n const arg = new Array(8).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n case \"mat4x3\": {\n const e = value as DynoJsType<\"mat4x3\">;\n const arg = new Array(12).fill(0).map((_, i) => numberAsFloat(e[i]));\n return `${type as string}(${arg.join(\", \")})`;\n }\n default:\n throw new Error(`Type not implemented: ${String(type)}`);\n }\n }\n}\n\nexport function dynoConst(\n type: T,\n value: DynoJsType,\n): DynoConst {\n return new DynoConst(type, value);\n}\n\nexport function literalZero(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(false)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(0.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(0)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(1u)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n\nexport function literalNegOne(type: SimpleTypes): string {\n const typeString = String(type);\n if (isBoolType(type)) {\n return `${typeString}(true)`;\n }\n if (isAllFloatType(type)) {\n return `${typeString}(-1.0)`;\n }\n if (isIntType(type)) {\n return `${typeString}(-1)`;\n }\n if (isUintType(type)) {\n return `${typeString}(0xFFFFFFFFu)`;\n }\n throw new Error(`Type not implemented: ${typeString}`);\n}\n","import type { IUniform } from \"three\";\nimport type { DynoType } from \"./types\";\nimport {\n DynoLiteral,\n DynoOutput,\n type DynoVal,\n DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nconst DEFAULT_INDENT = \" \";\n\nexport class Compilation {\n globals: Set = new Set();\n statements: string[] = [];\n uniforms: Record = {};\n declares: Set = new Set();\n updaters: (() => void)[] = [];\n sequence = 0;\n indent: string = DEFAULT_INDENT;\n\n constructor({ indent }: { indent?: string } = {}) {\n this.indent = indent ?? DEFAULT_INDENT;\n }\n\n nextSequence() {\n return this.sequence++;\n }\n}\n\nexport type IOTypes = Record;\ntype GenerateContext = {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n};\n\nexport class Dyno {\n inTypes: InTypes;\n outTypes: OutTypes;\n\n inputs: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n }) {\n this.inTypes = inTypes ?? ({} as InTypes);\n this.outTypes = outTypes ?? ({} as OutTypes);\n this.inputs = inputs ?? {};\n this.update = update;\n\n this.globals = globals;\n this.statements = statements;\n this.generate =\n generate ??\n (({ inputs, outputs, compile }) => {\n return {\n globals: this.globals?.({ inputs, outputs, compile }),\n statements: this.statements?.({ inputs, outputs, compile }),\n };\n });\n }\n\n get outputs(): { [K in keyof OutTypes]: DynoVal } {\n const outputs = {} as { [K in keyof OutTypes]: DynoVal };\n for (const key in this.outTypes) {\n outputs[key] = new DynoOutput(this, key);\n }\n return outputs;\n }\n\n apply(inputs: { [K in keyof InTypes]?: DynoVal }): {\n [K in keyof OutTypes]: DynoVal;\n } {\n Object.assign(this.inputs, inputs);\n return this.outputs;\n }\n\n compile({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }): string[] {\n const result = [\n `// ${this.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`,\n ];\n\n const declares: (keyof OutTypes)[] = [];\n for (const key in outputs) {\n const name = outputs[key];\n if (name && !compile.declares.has(name)) {\n compile.declares.add(name);\n declares.push(key);\n }\n }\n\n const { globals, statements, uniforms } = this.generate({\n inputs,\n outputs,\n compile,\n });\n for (const global of globals ?? []) {\n compile.globals.add(global);\n }\n for (const key in uniforms) {\n compile.uniforms[key] = uniforms[key];\n }\n if (this.update) {\n compile.updaters.push(this.update);\n }\n\n for (const key of declares) {\n const name = outputs[key];\n if (name) {\n if (!compile.uniforms[name]) {\n result.push(`${dynoDeclare(name, this.outTypes[key])};`);\n }\n }\n }\n\n if (statements?.length) {\n result.push(\"{\");\n result.push(...statements.map((line) => compile.indent + line));\n result.push(\"}\");\n }\n return result;\n }\n}\n\nexport type DynoBlockType = (\n inputs: { [K in keyof InTypes]?: DynoVal },\n outputs: { [K in keyof OutTypes]?: DynoVal },\n { roots }: { roots: Dyno[] },\n) => { [K in keyof OutTypes]?: DynoVal } | undefined;\n\nexport class DynoBlock<\n InTypes extends IOTypes,\n OutTypes extends IOTypes,\n> extends Dyno {\n construct: DynoBlockType;\n\n constructor({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n construct,\n }: {\n inTypes?: InTypes;\n outTypes?: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n construct: DynoBlockType;\n }) {\n super({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n generate: (args) => this.generateBlock(args),\n });\n this.construct = construct;\n }\n\n generateBlock({\n inputs,\n outputs,\n compile,\n }: {\n inputs: { [K in keyof InTypes]?: string };\n outputs: { [K in keyof OutTypes]?: string };\n compile: Compilation;\n }) {\n const blockInputs: { [K in keyof InTypes]?: DynoVal } = {};\n const blockOutputs: { [K in keyof OutTypes]?: DynoVal } = {};\n\n for (const key in inputs) {\n if (inputs[key] != null) {\n blockInputs[key] = new DynoLiteral(this.inTypes[key], inputs[key]);\n }\n }\n for (const key in outputs) {\n if (outputs[key] != null) {\n blockOutputs[key] = new DynoValue(this.outTypes[key]);\n }\n }\n\n const options: { roots: Dyno[] } = { roots: [] };\n const returned = this.construct(blockInputs, blockOutputs, options);\n\n for (const global of this.globals?.({ inputs, outputs, compile }) ?? []) {\n compile.globals.add(global);\n }\n\n const ordering: Dyno[] = [];\n const nodeOuts = new Map<\n Dyno,\n { sequence: number; outNames: Map; newOuts: Set }\n >();\n\n function visit(\n node: Dyno,\n outKey?: string,\n outName?: string,\n ) {\n let outs = nodeOuts.get(node);\n if (!outs) {\n // First time visiting this node\n outs = {\n sequence: compile.nextSequence(),\n outNames: new Map(),\n newOuts: new Set(),\n };\n nodeOuts.set(node, outs);\n\n for (const key in node.inputs) {\n let input = node.inputs[key];\n while (input) {\n if (input instanceof DynoValue) {\n if (input instanceof DynoOutput) {\n visit(input.dyno, input.key);\n }\n break;\n }\n // Must be as HasDynoOut\n if (typeof input.dynoOut !== \"function\") {\n throw new Error(\n `dynoOut is not a function for ${input.constructor.name}`,\n );\n }\n input = input.dynoOut();\n }\n }\n ordering.push(node);\n }\n if (outKey) {\n if (!outName) {\n outs.newOuts.add(outKey);\n }\n outs.outNames.set(outKey, outName ?? `${outKey}_${outs.sequence}`);\n }\n }\n\n for (const root of options.roots) {\n visit(root);\n }\n\n for (const key in blockOutputs) {\n let value = returned?.[key] ?? blockOutputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoOutput) {\n visit(value.dyno, value.key, outputs[key]);\n }\n break;\n }\n // Must be as HasDynoOut\n value = value.dynoOut();\n }\n blockOutputs[key] = value;\n }\n\n const steps = [];\n\n for (const dyno of ordering) {\n // compile.statements.push(`// ${dyno.constructor.name}(${Object.values(inputs).join(\", \")}) => (${Object.values(outputs).join(\", \")})`);\n\n const inputs: Record = {};\n const outputs: Record = {};\n\n for (const key in dyno.inputs) {\n let value = dyno.inputs[key];\n while (value) {\n if (value instanceof DynoValue) {\n if (value instanceof DynoLiteral) {\n inputs[key] = value.getLiteral();\n } else if (value instanceof DynoOutput) {\n const source = nodeOuts.get(value.dyno)?.outNames.get(value.key);\n if (!source) {\n throw new Error(\n `Source not found for ${value.dyno.constructor.name}.${value.key}`,\n );\n }\n inputs[key] = source;\n }\n break;\n }\n // Must be as HasDynOut\n value = value.dynoOut();\n }\n }\n\n const outs = nodeOuts.get(dyno) ?? { outNames: new Map() };\n for (const [key, name] of outs.outNames.entries()) {\n outputs[key] = name;\n }\n\n const newSteps = dyno.compile({ inputs, outputs, compile });\n steps.push(newSteps);\n }\n\n const literalOutputs = [];\n for (const key in outputs) {\n if (blockOutputs[key] instanceof DynoLiteral) {\n literalOutputs.push(\n `${outputs[key]} = ${blockOutputs[key].getLiteral()};`,\n );\n }\n }\n if (literalOutputs.length > 0) {\n steps.push(literalOutputs);\n }\n\n const statements = steps.flatMap((step, index) => {\n // Add a blank line between steps\n return index === 0 ? step : [\"\", ...step];\n });\n return { statements };\n }\n}\n\nexport function dynoBlock<\n InTypes extends Record,\n OutTypes extends Record,\n>(\n inTypes: InTypes,\n outTypes: OutTypes,\n construct: DynoBlockType,\n { update, globals }: { update?: () => void; globals?: () => string[] } = {},\n) {\n return new DynoBlock({ inTypes, outTypes, construct, update, globals });\n}\n\nexport function dyno<\n InTypes extends Record,\n OutTypes extends Record,\n>({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n}: {\n inTypes: InTypes;\n outTypes: OutTypes;\n inputs?: { [K in keyof InTypes]?: DynoVal };\n update?: () => void;\n globals?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n statements?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => string[];\n generate?: ({\n inputs,\n outputs,\n compile,\n }: GenerateContext) => {\n globals?: string[];\n statements?: string[];\n uniforms?: Record;\n };\n}) {\n return new Dyno({\n inTypes,\n outTypes,\n inputs,\n update,\n globals,\n statements,\n generate,\n });\n}\n\nexport function dynoDeclare(name: string, type: DynoType, count?: number) {\n const typeStr = typeof type === \"string\" ? type : type.type;\n if (!typeStr) {\n throw new Error(`Invalid DynoType: ${String(type)}`);\n }\n return `${typeStr} ${name}${count != null ? `[${count}]` : \"\"}`;\n}\n\nexport function unindentLines(s: string): string[] {\n let seenNonEmpty = false;\n const lines = s\n .split(\"\\n\")\n .map((line) => {\n const trimmedLine = line.trimEnd();\n if (seenNonEmpty) {\n return trimmedLine;\n }\n if (trimmedLine.length > 0) {\n seenNonEmpty = true;\n return trimmedLine;\n }\n return null;\n })\n .filter((line) => line != null);\n while (lines.length > 0 && lines[lines.length - 1].length === 0) {\n lines.pop();\n }\n if (lines.length === 0) {\n return [];\n }\n\n const indent = lines[0].match(/^\\s*/)?.[0];\n if (!indent) {\n return lines; // No indent, return as is\n }\n // Remove indent from the beginning of each line\n const regex = new RegExp(`^${indent}`);\n return lines.map((line) => line.replace(regex, \"\"));\n}\n\nexport function unindent(s: string): string {\n return unindentLines(s).join(\"\\n\");\n}\n\nexport class UnaryOp<\n A extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n outKey,\n outTypeFunc,\n }: { a: DynoVal; outKey: OutKey; outTypeFunc: (aType: A) => OutType }) {\n const inTypes = { a: valType(a) };\n const outType = outTypeFunc(valType(a));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class BinaryOp<\n A extends DynoType,\n B extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b) };\n const outType = outTypeFunc(valType(a), valType(b));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class TrinaryOp<\n A extends DynoType,\n B extends DynoType,\n C extends DynoType,\n OutType extends DynoType,\n OutKey extends string,\n >\n extends Dyno<{ a: A; b: B; c: C }, { [key in OutKey]: OutType }>\n implements HasDynoOut\n{\n constructor({\n a,\n b,\n c,\n outKey,\n outTypeFunc,\n }: {\n a: DynoVal;\n b: DynoVal;\n c: DynoVal;\n outKey: OutKey;\n outTypeFunc: (aType: A, bType: B, cType: C) => OutType;\n }) {\n const inTypes = { a: valType(a), b: valType(b), c: valType(c) };\n const outType = outTypeFunc(valType(a), valType(b), valType(c));\n const outTypes = { [outKey]: outType } as { [key in OutKey]: OutType };\n super({ inTypes, outTypes, inputs: { a, b, c } });\n this.outKey = outKey;\n }\n\n outKey: OutKey;\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n","import { Dyno, UnaryOp, unindent, unindentLines } from \"./base\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const Gsplat = { type: \"Gsplat\" } as { type: \"Gsplat\" };\nexport const CovSplat = { type: \"CovSplat\" } as { type: \"CovSplat\" };\nexport const TPackedSplats = { type: \"PackedSplats\" } as {\n type: \"PackedSplats\";\n};\nexport const TExtSplats = { type: \"ExtSplats\" } as {\n type: \"ExtSplats\";\n};\nexport const TCovSplats = { type: \"CovSplats\" } as {\n type: \"CovSplats\";\n};\n\nexport const numPackedSplats = (\n packedSplats: DynoVal,\n): DynoVal<\"int\"> => new NumPackedSplats({ packedSplats });\nexport const readPackedSplat = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadPackedSplat({ packedSplats, index });\nexport const readPackedSplatRange = (\n packedSplats: DynoVal,\n index: DynoVal<\"int\">,\n base: DynoVal<\"int\">,\n count: DynoVal<\"int\">,\n): DynoVal =>\n new ReadPackedSplatRange({ packedSplats, index, base, count });\n\nexport const numExtSplats = (\n extSplats: DynoVal,\n): DynoVal<\"int\"> => new NumExtSplats({ extSplats });\nexport const readExtSplat = (\n extSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadExtSplat({ extSplats, index });\n\nexport const numCovSplats = (\n covsplats: DynoVal,\n): DynoVal<\"int\"> => new NumCovSplats({ covsplats });\nexport const readCovSplat = (\n covSplats: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal => new ReadCovSplat({ covSplats, index });\n\nexport const gsplatToCovSplat = (\n gsplat: DynoVal,\n): DynoVal => new GsplatToCovSplat({ gsplat });\n\nexport const splitGsplat = (gsplat: DynoVal) =>\n new SplitGsplat({ gsplat });\nexport const combineGsplat = ({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineGsplat({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\nexport const gsplatNormal = (gsplat: DynoVal): DynoVal<\"vec3\"> =>\n new GsplatNormal({ gsplat });\n\nexport const transformGsplat = (\n gsplat: DynoVal,\n {\n scale,\n rotate,\n translate,\n recolor,\n }: {\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n },\n): DynoVal => {\n return new TransformGsplat({ gsplat, scale, rotate, translate, recolor });\n};\n\nexport const splatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new SplatTexCoord({ index });\n\nexport const pagedSplatTexCoord = (index: DynoVal<\"int\">): DynoVal<\"ivec3\"> =>\n new PagedSplatTexCoord({ index });\n\nexport const defineGsplat = unindent(`\n struct Gsplat {\n vec3 center;\n uint flags;\n vec3 scales;\n int index;\n vec4 quaternion;\n vec4 rgba;\n };\n const uint GSPLAT_FLAG_ACTIVE = 1u << 0u;\n\n bool isGsplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const defineCovSplat = unindent(`\n struct CovSplat {\n vec3 center;\n uint flags;\n vec4 rgba;\n vec3 xxyyzz;\n int index;\n vec3 xyxzyz;\n };\n\n bool isCovSplatActive(uint flags) {\n return (flags & GSPLAT_FLAG_ACTIVE) != 0u;\n }\n`);\n\nexport const definePackedSplats = unindent(`\n struct PackedSplats {\n usampler2DArray textureArray;\n int numSplats;\n vec4 rgbMinMaxLnScaleMinMax;\n bool lodOpacity;\n };\n`);\n\nexport class NumPackedSplats extends UnaryOp<\n typeof TPackedSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({\n packedSplats,\n }: { packedSplats: DynoVal }) {\n super({ a: packedSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadPackedArray = unindent(`\n bool readPackedArray(usampler2DArray texture, int numSplats, vec4 rgbMinMaxLnScaleMinMax, int index, out Gsplat gsplat) {\n if ((index >= 0) && (index < numSplats)) {\n uvec4 packedData = texelFetch(texture, splatTexCoord(index), 0);\n unpackSplatEncoding(packedData, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba, rgbMinMaxLnScaleMinMax);\n return true;\n } else {\n return false;\n }\n }\n`);\n\nexport class ReadPackedSplat\n extends Dyno<\n { packedSplats: typeof TPackedSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n }: { packedSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { packedSplats: TPackedSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index } = inputs;\n let statements: string[];\n if (packedSplats && index) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class ReadPackedSplatRange\n extends Dyno<\n {\n packedSplats: typeof TPackedSplats;\n index: \"int\";\n base: \"int\";\n count: \"int\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n packedSplats,\n index,\n base,\n count,\n }: {\n packedSplats?: DynoVal;\n index?: DynoVal<\"int\">;\n base?: DynoVal<\"int\">;\n count?: DynoVal<\"int\">;\n }) {\n super({\n inTypes: {\n packedSplats: TPackedSplats,\n index: \"int\",\n base: \"int\",\n count: \"int\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { packedSplats, index, base, count },\n globals: () => [defineGsplat, definePackedSplats, defineReadPackedArray],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [];\n }\n const { packedSplats, index, base, count } = inputs;\n let statements: string[];\n if (packedSplats && index && base && count) {\n statements = unindentLines(`\n ${gsplat}.flags = 0u;\n if (readPackedArray(${packedSplats}.textureArray, ${packedSplats}.numSplats, ${packedSplats}.rgbMinMaxLnScaleMinMax, ${index}, ${gsplat})) {\n if (${packedSplats}.lodOpacity) {\n ${gsplat}.rgba.a = 2.0 * ${gsplat}.rgba.a;\n }\n bool zeroSize = all(equal(${gsplat}.scales, vec3(0.0, 0.0, 0.0)));\n ${gsplat}.flags = zeroSize ? 0u : GSPLAT_FLAG_ACTIVE;\n }\n `);\n } else {\n statements = [`${gsplat}.flags = 0u;`];\n }\n statements.push(`${gsplat}.index = ${index ?? \"0\"};`);\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineExtSplats = unindent(`\n struct ExtSplats {\n usampler2DArray textureArray1;\n usampler2DArray textureArray2;\n int numSplats;\n };\n`);\n\nexport class NumExtSplats extends UnaryOp<\n typeof TExtSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ extSplats }: { extSplats: DynoVal }) {\n super({ a: extSplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadExtArrays = unindent(`\n void readExtArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out Gsplat gsplat) {\n gsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExt(packed1, packed2, gsplat.center, gsplat.scales, gsplat.quaternion, gsplat.rgba);\n gsplat.flags = all(equal(gsplat.scales, vec3(0.0, 0.0, 0.0))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadExtSplat\n extends Dyno<\n { extSplats: typeof TExtSplats; index: \"int\" },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n extSplats,\n index,\n }: { extSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { extSplats: TExtSplats, index: \"int\" },\n outTypes: { gsplat: Gsplat },\n inputs: { extSplats, index },\n globals: () => [defineGsplat, defineExtSplats, defineReadExtArrays],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = outputs;\n if (!gsplat) {\n return [`${gsplat}.flags = 0u;`];\n }\n const { extSplats, index } = inputs;\n let statements: string[];\n if (extSplats && index) {\n return unindentLines(`\n readExtArrays(${extSplats}.textureArray1, ${extSplats}.textureArray2, ${extSplats}.numSplats, ${index}, ${gsplat});\n `);\n }\n return [`${gsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport class NumCovSplats extends UnaryOp<\n typeof TCovSplats,\n \"int\",\n \"numSplats\"\n> {\n constructor({ covsplats }: { covsplats: DynoVal }) {\n super({ a: covsplats, outKey: \"numSplats\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.numSplats} = ${inputs.a}.numSplats;`,\n ];\n }\n}\n\nconst defineReadCovArrays = unindent(`\n void readCovArrays(usampler2DArray texture1, usampler2DArray texture2, int numSplats, int index, out CovSplat covsplat) {\n covsplat.flags = 0u;\n if ((index >= 0) && (index < numSplats)) {\n ivec3 coord = splatTexCoord(index);\n uvec4 packed1 = texelFetch(texture1, coord, 0);\n uvec4 packed2 = texelFetch(texture2, coord, 0);\n unpackSplatExtCov(packed1, packed2, covsplat.center, covsplat.rgba, covsplat.xxyyzz, covsplat.xyxzyz);\n covsplat.flags = (all(equal(covsplat.xxyyzz, vec3(0.0))) && all(equal(covsplat.xyxzyz, vec3(0.0)))) ? 0u : GSPLAT_FLAG_ACTIVE;\n gsplat.index = index;\n }\n }\n`);\n\nexport class ReadCovSplat\n extends Dyno<\n { covSplats: typeof TCovSplats; index: \"int\" },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covSplats,\n index,\n }: { covSplats?: DynoVal; index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { covSplats: TCovSplats, index: \"int\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covSplats, index },\n globals: () => [defineGsplat, defineCovSplat, defineReadCovArrays],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = outputs;\n if (!covsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n const { covSplats, index } = inputs;\n let statements: string[];\n if (covSplats && index) {\n return unindentLines(`\n readCovArrays(${covSplats}.textureArray, ${covSplats}.numSplats, ${index}, ${covsplat});\n `);\n }\n return [`${covsplat}.flags = 0u;`];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class GsplatToCovSplat extends Dyno<\n { gsplat: typeof Gsplat },\n { covsplat: typeof CovSplat }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: { covsplat: CovSplat },\n inputs: { gsplat },\n globals: () => [defineGsplat, defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const { covsplat } = outputs;\n if (!gsplat) {\n return [`${covsplat}.flags = 0u;`];\n }\n\n return unindentLines(`\n ${covsplat}.flags = 0u;\n if (isGsplatActive(${gsplat}.flags)) {\n ${covsplat}.flags = ${gsplat}.flags;\n ${covsplat}.index = ${gsplat}.index;\n ${covsplat}.rgba = ${gsplat}.rgba;\n ${covsplat}.center = ${gsplat}.center;\n mat3 m = scaleQuaternionToMatrix(${gsplat}.scales, ${gsplat}.quaternion);\n m = m * transpose(m);\n ${covsplat}.xxyyzz = vec3(m[0][0], m[1][1], m[2][2]);\n ${covsplat}.xyxzyz = vec3(m[0][1], m[0][2], m[1][2]);\n }\n `);\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplitGsplat extends Dyno<\n { gsplat: typeof Gsplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ gsplat }: { gsplat?: DynoVal }) {\n super({\n inTypes: { gsplat: Gsplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags ? null : `${flags} = ${gsplat ? `${gsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isGsplatActive(${gsplat ? `${gsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${gsplat ? `${gsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !scales\n ? null\n : `${scales} = ${gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !quaternion\n ? null\n : `${quaternion} = ${gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${gsplat ? `${gsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${gsplat ? `${gsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${gsplat ? `${gsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${gsplat ? `${gsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${gsplat ? `${gsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${gsplat ? `${gsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${gsplat ? `${gsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${gsplat ? `${gsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n scales: \"vec3\";\n quaternion: \"vec4\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n gsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n scales?: DynoVal<\"vec3\">;\n quaternion?: DynoVal<\"vec4\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n scales: \"vec3\",\n quaternion: \"vec4\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat: outGsplat } = outputs;\n if (!outGsplat) {\n return [];\n }\n const {\n gsplat,\n flags,\n index,\n center,\n scales,\n quaternion,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outGsplat}.flags = ${flags ?? (gsplat ? `${gsplat}.flags` : \"0u\")};`,\n `${outGsplat}.index = ${index ?? (gsplat ? `${gsplat}.index` : \"0\")};`,\n `${outGsplat}.center = ${center ?? (gsplat ? `${gsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.scales = ${scales ?? (gsplat ? `${gsplat}.scales` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outGsplat}.quaternion = ${quaternion ?? (gsplat ? `${gsplat}.quaternion` : \"vec4(0.0, 0.0, 0.0, 1.0)\")};`,\n `${outGsplat}.rgba = ${rgba ?? (gsplat ? `${gsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outGsplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outGsplat}.rgba.a = ${opacity};`,\n !x ? null : `${outGsplat}.center.x = ${x};`,\n !y ? null : `${outGsplat}.center.y = ${y};`,\n !z ? null : `${outGsplat}.center.z = ${z};`,\n !r ? null : `${outGsplat}.rgba.r = ${r};`,\n !g ? null : `${outGsplat}.rgba.g = ${g};`,\n !b ? null : `${outGsplat}.rgba.b = ${b};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const defineGsplatNormal = unindent(`\n vec3 gsplatNormal(vec3 scales, vec4 quaternion) {\n float minScale = min(scales.x, min(scales.y, scales.z));\n vec3 normal;\n if (scales.z == minScale) {\n normal = vec3(0.0, 0.0, 1.0);\n } else if (scales.y == minScale) {\n normal = vec3(0.0, 1.0, 0.0);\n } else {\n normal = vec3(1.0, 0.0, 0.0);\n }\n return quatVec(quaternion, normal);\n }\n`);\n\nexport class GsplatNormal extends UnaryOp {\n constructor({ gsplat }: { gsplat: DynoVal }) {\n super({ a: gsplat, outKey: \"normal\", outTypeFunc: () => \"vec3\" });\n this.globals = () => [defineGsplat, defineGsplatNormal];\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normal} = gsplatNormal(${inputs.a}.scales, ${inputs.a}.quaternion);`,\n ];\n }\n}\n\nexport class TransformGsplat\n extends Dyno<\n {\n gsplat: typeof Gsplat;\n scale: \"float\";\n rotate: \"vec4\";\n translate: \"vec3\";\n recolor: \"vec4\";\n },\n { gsplat: typeof Gsplat }\n >\n implements HasDynoOut\n{\n constructor({\n gsplat,\n scale,\n rotate,\n translate,\n recolor,\n }: {\n gsplat?: DynoVal;\n scale?: DynoVal<\"float\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n recolor?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n scale: \"float\",\n rotate: \"vec4\",\n translate: \"vec3\",\n recolor: \"vec4\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, scale, rotate, translate, recolor },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs, compile }) => {\n const { gsplat } = outputs;\n if (!gsplat || !inputs.gsplat) {\n return [];\n }\n const { scale, rotate, translate, recolor } = inputs;\n const indent = compile.indent;\n const statements = [\n `${gsplat} = ${inputs.gsplat};`,\n `if (isGsplatActive(${gsplat}.flags)) {`,\n\n scale ? `${indent}${gsplat}.center *= ${scale};` : null,\n rotate\n ? `${indent}${gsplat}.center = quatVec(${rotate}, ${gsplat}.center);`\n : null,\n translate ? `${indent}${gsplat}.center += ${translate};` : null,\n\n scale ? `${indent}${gsplat}.scales *= ${scale};` : null,\n\n rotate\n ? `${indent}${gsplat}.quaternion = quatQuat(${rotate}, ${gsplat}.quaternion);`\n : null,\n recolor ? `${indent}${gsplat}.rgba *= ${recolor};` : null,\n \"}\",\n ].filter(Boolean) as string[];\n return statements;\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"gsplat\");\n }\n}\n\nexport const splitCovSplat = (covsplat: DynoVal) =>\n new SplitCovSplat({ covsplat });\nexport const combineCovSplat = ({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n}: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n}): DynoVal => {\n return new CombineCovSplat({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n });\n};\n\nexport class SplitCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n {\n flags: \"uint\";\n active: \"bool\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n }\n> {\n constructor({ covsplat }: { covsplat?: DynoVal }) {\n super({\n inTypes: { covsplat: CovSplat },\n outTypes: {\n flags: \"uint\",\n active: \"bool\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat } = inputs;\n const {\n flags,\n active,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = outputs;\n return [\n !flags\n ? null\n : `${flags} = ${covsplat ? `${covsplat}.flags` : \"0u\"};`,\n !active\n ? null\n : `${active} = isCovSplatActive(${covsplat ? `${covsplat}.flags` : \"0u\"});`,\n !index ? null : `${index} = ${covsplat ? `${covsplat}.index` : \"0\"};`,\n !center\n ? null\n : `${center} = ${covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !rgba\n ? null\n : `${rgba} = ${covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n !rgb\n ? null\n : `${rgb} = ${covsplat ? `${covsplat}.rgba.rgb` : \"vec3(0.0, 0.0, 0.0)\"};`,\n !opacity\n ? null\n : `${opacity} = ${covsplat ? `${covsplat}.rgba.a` : \"0.0\"};`,\n !x ? null : `${x} = ${covsplat ? `${covsplat}.center.x` : \"0.0\"};`,\n !y ? null : `${y} = ${covsplat ? `${covsplat}.center.y` : \"0.0\"};`,\n !z ? null : `${z} = ${covsplat ? `${covsplat}.center.z` : \"0.0\"};`,\n !r ? null : `${r} = ${covsplat ? `${covsplat}.rgba.r` : \"0.0\"};`,\n !g ? null : `${g} = ${covsplat ? `${covsplat}.rgba.g` : \"0.0\"};`,\n !b ? null : `${b} = ${covsplat ? `${covsplat}.rgba.b` : \"0.0\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class CombineCovSplat\n extends Dyno<\n {\n covsplat: typeof CovSplat;\n flags: \"uint\";\n index: \"int\";\n center: \"vec3\";\n rgba: \"vec4\";\n rgb: \"vec3\";\n opacity: \"float\";\n x: \"float\";\n y: \"float\";\n z: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n },\n { covsplat: typeof CovSplat }\n >\n implements HasDynoOut\n{\n constructor({\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n }: {\n covsplat?: DynoVal;\n flags?: DynoVal<\"uint\">;\n index?: DynoVal<\"int\">;\n center?: DynoVal<\"vec3\">;\n rgba?: DynoVal<\"vec4\">;\n rgb?: DynoVal<\"vec3\">;\n opacity?: DynoVal<\"float\">;\n x?: DynoVal<\"float\">;\n y?: DynoVal<\"float\">;\n z?: DynoVal<\"float\">;\n r?: DynoVal<\"float\">;\n g?: DynoVal<\"float\">;\n b?: DynoVal<\"float\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n flags: \"uint\",\n index: \"int\",\n center: \"vec3\",\n rgba: \"vec4\",\n rgb: \"vec3\",\n opacity: \"float\",\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n },\n outTypes: { covsplat: CovSplat },\n inputs: {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n },\n globals: () => [defineCovSplat],\n statements: ({ inputs, outputs }) => {\n const { covsplat: outCovSplat } = outputs;\n if (!outCovSplat) {\n return [];\n }\n const {\n covsplat,\n flags,\n index,\n center,\n rgba,\n rgb,\n opacity,\n x,\n y,\n z,\n r,\n g,\n b,\n } = inputs;\n return [\n `${outCovSplat}.flags = ${flags ?? (covsplat ? `${covsplat}.flags` : \"0u\")};`,\n `${outCovSplat}.index = ${index ?? (covsplat ? `${covsplat}.index` : \"0\")};`,\n `${outCovSplat}.center = ${center ?? (covsplat ? `${covsplat}.center` : \"vec3(0.0, 0.0, 0.0)\")};`,\n `${outCovSplat}.rgba = ${rgba ?? (covsplat ? `${covsplat}.rgba` : \"vec4(0.0, 0.0, 0.0, 0.0)\")};`,\n !rgb ? null : `${outCovSplat}.rgba.rgb = ${rgb};`,\n !opacity ? null : `${outCovSplat}.rgba.a = ${opacity};`,\n !x ? null : `${outCovSplat}.center.x = ${x};`,\n !y ? null : `${outCovSplat}.center.y = ${y};`,\n !z ? null : `${outCovSplat}.center.z = ${z};`,\n !r ? null : `${outCovSplat}.rgba.r = ${r};`,\n !g ? null : `${outCovSplat}.rgba.g = ${g};`,\n !b ? null : `${outCovSplat}.rgba.b = ${b};`,\n `${outCovSplat}.xxyyzz = ${covsplat ? `${covsplat}.xxyyzz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n `${outCovSplat}.xyxzyz = ${covsplat ? `${covsplat}.xyxzyz` : \"vec3(0.0, 0.0, 0.0)\"};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, \"covsplat\");\n }\n}\n\nexport class SplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = splatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n\nexport class PagedSplatTexCoord\n extends Dyno<{ index: \"int\" }, { coord: \"ivec3\" }>\n implements HasDynoOut<\"ivec3\">\n{\n constructor({ index }: { index?: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { coord: \"ivec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => {\n const { index } = inputs;\n const { coord } = outputs;\n if (!index || !coord) {\n return [];\n }\n return [`${coord} = pagedSplatTexCoord(${index});`];\n },\n });\n }\n\n dynoOut(): DynoValue<\"ivec3\"> {\n return new DynoOutput(this, \"coord\");\n }\n}\n","import * as THREE from \"three\";\nimport { Dyno, unindentLines } from \"./base\";\nimport { CovSplat, Gsplat, defineCovSplat, defineGsplat } from \"./splats\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n} from \"./value\";\n\nexport const outputPackedSplat = (\n gsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputPackedSplat({ gsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputCovSplat = (\n covsplat: DynoVal,\n rgbMinMaxLnScaleMinMax: DynoVal<\"vec4\">,\n) => new OutputCovSplat({ covsplat, rgbMinMaxLnScaleMinMax });\n\nexport const outputExtendedSplat = (gsplat: DynoVal) =>\n new OutputExtendedSplat({ gsplat });\n\nexport const outputExtCovSplat = (covsplat: DynoVal) =>\n new OutputExtCovSplat({ covsplat });\n\nexport const outputSplatDepth = (\n gsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputSplatDepth({ gsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputCovSplatDepth = (\n covsplat: DynoVal,\n viewCenter: DynoVal<\"vec3\">,\n viewDir: DynoVal<\"vec3\">,\n sortRadial: DynoVal<\"bool\">,\n) => new OutputCovSplatDepth({ covsplat, viewCenter, viewDir, sortRadial });\n\nexport const outputRgba8 = (rgba8: DynoVal<\"vec4\">) =>\n new OutputRgba8({ rgba8 });\n\nexport class OutputPackedSplat extends Dyno<\n { gsplat: typeof Gsplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n gsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n gsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { gsplat: Gsplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { gsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineGsplat],\n statements: ({ inputs, outputs }) => {\n const { gsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (gsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n target = packSplatEncoding(${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u, 0u, 0u, 0u);\n }\n `);\n }\n return [\"target = uvec4(0u, 0u, 0u, 0u);\"];\n },\n });\n }\n}\n\nexport class OutputCovSplat extends Dyno<\n { covsplat: typeof CovSplat; rgbMinMaxLnScaleMinMax: \"vec4\" },\n Record\n> {\n constructor({\n covsplat,\n rgbMinMaxLnScaleMinMax,\n }: {\n covsplat?: DynoVal;\n rgbMinMaxLnScaleMinMax?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { covsplat: CovSplat, rgbMinMaxLnScaleMinMax: \"vec4\" },\n inputs: { covsplat, rgbMinMaxLnScaleMinMax },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, rgbMinMaxLnScaleMinMax } = inputs;\n if (covsplat && rgbMinMaxLnScaleMinMax) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n target = packSplatCovEncoding(${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz, ${rgbMinMaxLnScaleMinMax});\n } else {\n target = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtendedSplat extends Dyno<\n { gsplat: typeof Gsplat },\n Record\n> {\n constructor({\n gsplat,\n }: {\n gsplat?: DynoVal;\n }) {\n super({\n inTypes: { gsplat: Gsplat },\n inputs: { gsplat },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat } = inputs;\n if (gsplat) {\n return unindentLines(`\n if (isGsplatActive(${gsplat}.flags)) {\n packSplatExt(target, target2, ${gsplat}.center, ${gsplat}.scales, ${gsplat}.quaternion, ${gsplat}.rgba);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nexport class OutputExtCovSplat extends Dyno<\n { covsplat: typeof CovSplat },\n Record\n> {\n constructor({\n covsplat,\n }: {\n covsplat?: DynoVal;\n }) {\n super({\n inTypes: { covsplat: CovSplat },\n inputs: { covsplat },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat } = inputs;\n if (covsplat) {\n return unindentLines(`\n if (isCovSplatActive(${covsplat}.flags)) {\n packSplatExtCov(target, target2, ${covsplat}.center, ${covsplat}.rgba, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz);\n } else {\n target = uvec4(0u);\n target2 = uvec4(0u);\n }\n `);\n }\n return [\"target = uvec4(0u);\", \"target2 = uvec4(0u);\"];\n },\n });\n }\n}\n\nclass OutputSplatDepth extends Dyno<\n {\n gsplat: typeof Gsplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n gsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n gsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n gsplat: Gsplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { gsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineGsplat],\n statements: ({ inputs }) => {\n const { gsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (gsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isGsplatActive(${gsplat}.flags)) {\n vec3 center = ${gsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nclass OutputCovSplatDepth extends Dyno<\n {\n covsplat: typeof CovSplat;\n viewCenter: \"vec3\";\n viewDir: \"vec3\";\n sortRadial: \"bool\";\n },\n Record\n> {\n constructor({\n covsplat,\n viewCenter,\n viewDir,\n sortRadial,\n }: {\n covsplat: DynoVal;\n viewCenter: DynoVal<\"vec3\">;\n viewDir: DynoVal<\"vec3\">;\n sortRadial: DynoVal<\"bool\">;\n }) {\n super({\n inTypes: {\n covsplat: CovSplat,\n viewCenter: \"vec3\",\n viewDir: \"vec3\",\n sortRadial: \"bool\",\n },\n inputs: { covsplat, viewCenter, viewDir, sortRadial },\n globals: () => [defineCovSplat],\n statements: ({ inputs }) => {\n const { covsplat, viewCenter, viewDir, sortRadial } = inputs;\n if (covsplat && viewCenter && viewDir && sortRadial) {\n return unindentLines(`\n float metric = 1.0 / 0.0;\n if (isCovSplatActive(${covsplat}.flags)) {\n vec3 center = ${covsplat}.center - ${viewCenter};\n if (${sortRadial}) {\n metric = length(center);\n } else {\n float bias = 100.0; // reduce popping\n metric = dot(center, ${viewDir}) + bias;\n }\n }\n target3 = floatToVec4(metric);\n `);\n }\n return [];\n },\n });\n }\n}\n\nexport class OutputRgba8\n extends Dyno<{ rgba8: \"vec4\" }, { rgba8: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ rgba8 }: { rgba8?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { rgba8: \"vec4\" },\n inputs: { rgba8 },\n statements: ({ inputs, outputs }) => [\n `target = ${inputs.rgba8 ?? \"vec4(0.0, 0.0, 0.0, 0.0)\"};`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"rgba8\");\n }\n}\n","import type { IUniform } from \"three\";\nimport { Dyno, dynoDeclare } from \"./base\";\nimport type { DynoJsType, DynoType } from \"./types\";\nimport { DynoOutput, type DynoValue, type HasDynoOut } from \"./value\";\n\nexport const uniform = >(\n key: string,\n type: DynoType,\n value: V,\n) => new DynoUniform({ key, type, value });\nexport const dynoBool = (value = false, key?: string) =>\n new DynoBool({ key, value });\nexport const dynoUint = (value = 0, key?: string) =>\n new DynoUint({ key, value });\nexport const dynoInt = (value = 0, key?: string) => new DynoInt({ key, value });\nexport const dynoFloat = (value = 0.0, key?: string) =>\n new DynoFloat({ key, value });\n\nexport const dynoBvec2 = >(\n value: V,\n key?: string,\n) => new DynoBvec2({ key, value });\nexport const dynoUvec2 = >(\n value: V,\n key?: string,\n) => new DynoUvec2({ key, value });\nexport const dynoIvec2 = >(\n value: V,\n key?: string,\n) => new DynoIvec2({ key, value });\nexport const dynoVec2 = >(\n value: V,\n key?: string,\n) => new DynoVec2({ key, value });\n\nexport const dynoBvec3 = >(\n value: V,\n key?: string,\n) => new DynoBvec3({ key, value });\nexport const dynoUvec3 = >(\n value: V,\n key?: string,\n) => new DynoUvec3({ key, value });\nexport const dynoIvec3 = >(\n value: V,\n key?: string,\n) => new DynoIvec3({ key, value });\nexport const dynoVec3 = >(\n value: V,\n key?: string,\n) => new DynoVec3({ key, value });\n\nexport const dynoBvec4 = >(\n value: V,\n key?: string,\n) => new DynoBvec4({ key, value });\nexport const dynoUvec4 = >(\n value: V,\n key?: string,\n) => new DynoUvec4({ key, value });\nexport const dynoIvec4 = >(\n value: V,\n key?: string,\n) => new DynoIvec4({ key, value });\nexport const dynoVec4 = >(\n value: V,\n key?: string,\n) => new DynoVec4({ key, value });\n\nexport const dynoMat2 = >(\n value: V,\n key?: string,\n) => new DynoMat2({ key, value });\nexport const dynoMat2x2 = >(\n value: V,\n key?: string,\n) => new DynoMat2x2({ key, value });\nexport const dynoMat2x3 = >(\n value: V,\n key?: string,\n) => new DynoMat2x3({ key, value });\nexport const dynoMat2x4 = >(\n value: V,\n key?: string,\n) => new DynoMat2x4({ key, value });\n\nexport const dynoMat3 = >(\n value: V,\n key?: string,\n) => new DynoMat3({ key, value });\nexport const dynoMat3x2 = >(\n value: V,\n key?: string,\n) => new DynoMat3x2({ key, value });\nexport const dynoMat3x3 = >(\n value: V,\n key?: string,\n) => new DynoMat3x3({ key, value });\nexport const dynoMat3x4 = >(\n value: V,\n key?: string,\n) => new DynoMat3x4({ key, value });\n\nexport const dynoMat4 = >(\n value: V,\n key?: string,\n) => new DynoMat4({ key, value });\nexport const dynoMat4x2 = >(\n value: V,\n key?: string,\n) => new DynoMat4x2({ key, value });\nexport const dynoMat4x3 = >(\n value: V,\n key?: string,\n) => new DynoMat4x3({ key, value });\nexport const dynoMat4x4 = >(\n value: V,\n key?: string,\n) => new DynoMat4x4({ key, value });\n\nexport const dynoUsampler2D = >(\n value: V,\n key?: string,\n) => new DynoUsampler2D({ key, value });\nexport const dynoIsampler2D = >(\n value: V,\n key?: string,\n) => new DynoIsampler2D({ key, value });\nexport const dynoSampler2D = >(\n value: V,\n key?: string,\n) => new DynoSampler2D({ key, value });\n\nexport const dynoUsampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoUsampler2DArray({ key, value });\nexport const dynoIsampler2DArray = >(\n key: string,\n value: V,\n) => new DynoIsampler2DArray({ key, value });\nexport const dynoSampler2DArray = >(\n value: V,\n key?: string,\n) => new DynoSampler2DArray({ key, value });\n\nexport const dynoUsampler3D = >(\n value: V,\n key?: string,\n) => new DynoUsampler3D({ key, value });\nexport const dynoIsampler3D = >(\n value: V,\n key?: string,\n) => new DynoIsampler3D({ key, value });\nexport const dynoSampler3D = >(\n value: V,\n key?: string,\n) => new DynoSampler3D({ key, value });\n\nexport const dynoUsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoUsamplerCube({ key, value });\nexport const dynoIsamplerCube = >(\n value: V,\n key?: string,\n) => new DynoIsamplerCube({ key, value });\nexport const dynoSamplerCube = >(\n value: V,\n key?: string,\n) => new DynoSamplerCube({ key, value });\n\nexport const dynoSampler2DShadow = >(\n value: V,\n key?: string,\n) => new DynoSampler2DShadow({ key, value });\nexport const dynoSampler2DArrayShadow = <\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSampler2DArrayShadow({ key, value });\nexport const dynoSamplerCubeShadow = <\n V extends DynoJsType<\"samplerCubeShadow\">,\n>(\n value: V,\n key?: string,\n) => new DynoSamplerCubeShadow({ key, value });\n\nexport class DynoUniform<\n T extends DynoType,\n K extends string = \"value\",\n V extends DynoJsType = DynoJsType,\n >\n extends Dyno, { [key in K]: T }>\n implements HasDynoOut\n{\n public type: T;\n public count?: number;\n public outKey: K;\n public value: V;\n public uniform: { value: V; type?: string };\n\n constructor({\n key,\n type,\n count,\n value,\n update,\n globals,\n }: {\n key?: K;\n type: T;\n count?: number;\n value: V;\n update?: (value: V) => V | undefined;\n globals?: ({\n inputs,\n outputs,\n }: { inputs: unknown; outputs: { [key in K]?: string } }) => string[];\n }) {\n key = (key ?? \"value\") as K;\n super({\n outTypes: { [key]: type } as { [key in K]: T },\n update: () => {\n if (update) {\n const value = update(this.value);\n if (value !== undefined) {\n this.value = value;\n }\n }\n this.uniform.value = this.value;\n },\n generate: ({ inputs, outputs }) => {\n const allGlobals = globals?.({ inputs, outputs }) ?? [];\n const uniforms: Record = {};\n const name = outputs[key];\n if (name) {\n allGlobals.push(`uniform ${dynoDeclare(name, type, count)};`);\n uniforms[name] = this.uniform;\n }\n return { globals: allGlobals, uniforms };\n },\n });\n this.type = type;\n this.count = count;\n this.value = value;\n this.uniform = { value };\n this.outKey = key;\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput(this, this.outKey);\n }\n}\n\nexport class DynoBool extends DynoUniform<\n \"bool\",\n K,\n boolean\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: boolean;\n update?: (value: boolean) => boolean | undefined;\n }) {\n super({ key, type: \"bool\", value, update });\n }\n}\n\nexport class DynoUint extends DynoUniform<\"uint\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"uint\", value, update });\n }\n}\n\nexport class DynoInt extends DynoUniform<\"int\", K, number> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"int\", value, update });\n }\n}\n\nexport class DynoFloat extends DynoUniform<\n \"float\",\n K,\n number\n> {\n constructor({\n key,\n value,\n update,\n }: {\n key?: K;\n value: number;\n update?: (value: number) => number | undefined;\n }) {\n super({ key, type: \"float\", value, update });\n }\n}\n\nexport class DynoBvec2<\n K extends string,\n V extends DynoJsType<\"bvec2\">,\n> extends DynoUniform<\"bvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec2\", value, update });\n }\n}\n\nexport class DynoUvec2<\n K extends string,\n V extends DynoJsType<\"uvec2\">,\n> extends DynoUniform<\"uvec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec2\", value, update });\n }\n}\n\nexport class DynoIvec2<\n K extends string,\n V extends DynoJsType<\"ivec2\">,\n> extends DynoUniform<\"ivec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec2\", value, update });\n }\n}\n\nexport class DynoVec2<\n K extends string,\n V extends DynoJsType<\"vec2\">,\n> extends DynoUniform<\"vec2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec2\", value, update });\n }\n}\n\nexport class DynoBvec3<\n K extends string,\n V extends DynoJsType<\"bvec3\">,\n> extends DynoUniform<\"bvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec3\", value, update });\n }\n}\n\nexport class DynoUvec3<\n V extends DynoJsType<\"uvec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"uvec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec3\", value, update });\n }\n}\n\nexport class DynoIvec3<\n V extends DynoJsType<\"ivec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"ivec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec3\", value, update });\n }\n}\n\nexport class DynoVec3<\n V extends DynoJsType<\"vec3\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec3\", value, update });\n }\n}\n\nexport class DynoBvec4<\n K extends string,\n V extends DynoJsType<\"bvec4\">,\n> extends DynoUniform<\"bvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"bvec4\", value, update });\n }\n}\n\nexport class DynoUvec4<\n K extends string,\n V extends DynoJsType<\"uvec4\">,\n> extends DynoUniform<\"uvec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"uvec4\", value, update });\n }\n}\n\nexport class DynoIvec4<\n K extends string,\n V extends DynoJsType<\"ivec4\">,\n> extends DynoUniform<\"ivec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"ivec4\", value, update });\n }\n}\n\nexport class DynoVec4<\n V extends DynoJsType<\"vec4\">,\n K extends string = \"value\",\n> extends DynoUniform<\"vec4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"vec4\", value, update });\n }\n}\n\nexport class DynoMat2<\n K extends string,\n V extends DynoJsType<\"mat2\">,\n> extends DynoUniform<\"mat2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2\", value, update });\n }\n}\n\nexport class DynoMat2x2<\n K extends string,\n V extends DynoJsType<\"mat2x2\">,\n> extends DynoUniform<\"mat2x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x2\", value, update });\n }\n}\n\nexport class DynoMat2x3<\n K extends string,\n V extends DynoJsType<\"mat2x3\">,\n> extends DynoUniform<\"mat2x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x3\", value, update });\n }\n}\n\nexport class DynoMat2x4<\n K extends string,\n V extends DynoJsType<\"mat2x4\">,\n> extends DynoUniform<\"mat2x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat2x4\", value, update });\n }\n}\n\nexport class DynoMat3<\n K extends string,\n V extends DynoJsType<\"mat3\">,\n> extends DynoUniform<\"mat3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3\", value, update });\n }\n}\n\nexport class DynoMat3x2<\n K extends string,\n V extends DynoJsType<\"mat3x2\">,\n> extends DynoUniform<\"mat3x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x2\", value, update });\n }\n}\n\nexport class DynoMat3x3<\n K extends string,\n V extends DynoJsType<\"mat3x3\">,\n> extends DynoUniform<\"mat3x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x3\", value, update });\n }\n}\n\nexport class DynoMat3x4<\n K extends string,\n V extends DynoJsType<\"mat3x4\">,\n> extends DynoUniform<\"mat3x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat3x4\", value, update });\n }\n}\n\nexport class DynoMat4<\n K extends string,\n V extends DynoJsType<\"mat4\">,\n> extends DynoUniform<\"mat4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4\", value, update });\n }\n}\n\nexport class DynoMat4x2<\n K extends string,\n V extends DynoJsType<\"mat4x2\">,\n> extends DynoUniform<\"mat4x2\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x2\", value, update });\n }\n}\n\nexport class DynoMat4x3<\n K extends string,\n V extends DynoJsType<\"mat4x3\">,\n> extends DynoUniform<\"mat4x3\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x3\", value, update });\n }\n}\n\nexport class DynoMat4x4<\n K extends string,\n V extends DynoJsType<\"mat4x4\">,\n> extends DynoUniform<\"mat4x4\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"mat4x4\", value, update });\n }\n}\n\nexport class DynoUsampler2D<\n K extends string,\n V extends DynoJsType<\"usampler2D\">,\n> extends DynoUniform<\"usampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2D\", value, update });\n }\n}\n\nexport class DynoIsampler2D<\n K extends string,\n V extends DynoJsType<\"isampler2D\">,\n> extends DynoUniform<\"isampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2D\", value, update });\n }\n}\n\nexport class DynoSampler2D<\n K extends string,\n V extends DynoJsType<\"sampler2D\">,\n> extends DynoUniform<\"sampler2D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2D\", value, update });\n }\n}\n\nexport class DynoUsampler2DArray<\n K extends string,\n V extends DynoJsType<\"usampler2DArray\">,\n> extends DynoUniform<\"usampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler2DArray\", value, update });\n }\n}\n\nexport class DynoIsampler2DArray<\n K extends string,\n V extends DynoJsType<\"isampler2DArray\">,\n> extends DynoUniform<\"isampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler2DArray\", value, update });\n }\n}\n\nexport class DynoSampler2DArray<\n K extends string,\n V extends DynoJsType<\"sampler2DArray\">,\n> extends DynoUniform<\"sampler2DArray\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArray\", value, update });\n }\n}\n\nexport class DynoUsampler3D<\n K extends string,\n V extends DynoJsType<\"usampler3D\">,\n> extends DynoUniform<\"usampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usampler3D\", value, update });\n }\n}\n\nexport class DynoIsampler3D<\n K extends string,\n V extends DynoJsType<\"isampler3D\">,\n> extends DynoUniform<\"isampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isampler3D\", value, update });\n }\n}\n\nexport class DynoSampler3D<\n K extends string,\n V extends DynoJsType<\"sampler3D\">,\n> extends DynoUniform<\"sampler3D\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler3D\", value, update });\n }\n}\n\nexport class DynoUsamplerCube<\n K extends string,\n V extends DynoJsType<\"usamplerCube\">,\n> extends DynoUniform<\"usamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"usamplerCube\", value, update });\n }\n}\n\nexport class DynoIsamplerCube<\n K extends string,\n V extends DynoJsType<\"isamplerCube\">,\n> extends DynoUniform<\"isamplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"isamplerCube\", value, update });\n }\n}\n\nexport class DynoSamplerCube<\n K extends string,\n V extends DynoJsType<\"samplerCube\">,\n> extends DynoUniform<\"samplerCube\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCube\", value, update });\n }\n}\n\nexport class DynoSampler2DShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DShadow\">,\n> extends DynoUniform<\"sampler2DShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DShadow\", value, update });\n }\n}\n\nexport class DynoSampler2DArrayShadow<\n K extends string,\n V extends DynoJsType<\"sampler2DArrayShadow\">,\n> extends DynoUniform<\"sampler2DArrayShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"sampler2DArrayShadow\", value, update });\n }\n}\n\nexport class DynoSamplerCubeShadow<\n K extends string,\n V extends DynoJsType<\"samplerCubeShadow\">,\n> extends DynoUniform<\"samplerCubeShadow\", K, V> {\n constructor({\n key,\n value,\n update,\n }: { key?: K; value: V; update?: (value: V) => V | undefined }) {\n super({ key, type: \"samplerCubeShadow\", value, update });\n }\n}\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","import { Gunzip } from \"fflate\";\nimport * as THREE from \"three\";\n\n// Miscellaneous utility functions for Spark\n\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SCALE_ZERO,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_MIN_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines.js\";\nimport { unindent } from \"./dyno/base.js\";\n\nexport const threeRevision = Number.parseInt(THREE.REVISION);\nexport const threeMrtArray = threeRevision >= 179;\n\nconst f32buffer = new Float32Array(1);\nconst u32buffer = new Uint32Array(f32buffer.buffer);\nconst supportsFloat16Array = \"Float16Array\" in globalThis;\nconst f16buffer = supportsFloat16Array\n ? new globalThis[\"Float16Array\" as keyof typeof globalThis](1)\n : null;\nconst u16buffer = new Uint16Array(f16buffer?.buffer);\n\n// Returns a normalized array of numbers\nexport function normalize(vec: number[]) {\n const norm = Math.sqrt(vec.reduce((acc, v) => acc + v * v, 0));\n return vec.map((v) => v / norm);\n}\n\n// Reinterpret the bits of a float32 as a uint32\nexport function floatBitsToUint(f: number): number {\n f32buffer[0] = f;\n return u32buffer[0];\n}\n\n// Reinterpret the bits of a uint32 as a float32\nexport function uintBitsToFloat(u: number): number {\n u32buffer[0] = u;\n return f32buffer[0];\n}\n\nexport const toHalf = supportsFloat16Array ? toHalfNative : toHalfJS;\nexport const fromHalf = supportsFloat16Array ? fromHalfNative : fromHalfJS;\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfNative(f: number): number {\n f16buffer[0] = f;\n return u16buffer[0];\n}\n\n// Encode a number as a float16, stored as a uint16 number.\nfunction toHalfJS(f: number): number {\n // Store the value into the shared Float32 array.\n f32buffer[0] = f;\n const bits = u32buffer[0];\n\n // Extract sign (1 bit), exponent (8 bits), and fraction (23 bits)\n const sign = (bits >> 31) & 0x1;\n const exp = (bits >> 23) & 0xff;\n const frac = bits & 0x7fffff;\n const halfSign = sign << 15;\n\n // Handle special cases: NaN and Infinity\n if (exp === 0xff) {\n // NaN: set all exponent bits to 1 and some nonzero fraction bits.\n if (frac !== 0) {\n return halfSign | 0x7fff;\n }\n // Infinity\n return halfSign | 0x7c00;\n }\n\n // Adjust the exponent from float32 bias (127) to float16 bias (15)\n const newExp = exp - 127 + 15;\n\n // Handle overflow: too large to represent in half precision.\n if (newExp >= 0x1f) {\n return halfSign | 0x7c00; // Infinity\n }\n if (newExp <= 0) {\n // Handle subnormals and underflow.\n if (newExp < -10) {\n // Too small: underflows to zero.\n return halfSign;\n }\n // Convert to subnormal: add the implicit leading 1 to the fraction,\n // then shift to align with the half-precision's 10 fraction bits.\n const subFrac = (frac | 0x800000) >> (1 - newExp + 13);\n return halfSign | subFrac;\n }\n\n // Normalized half-precision number: shift fraction to fit into 10 bits.\n const halfFrac = frac >> 13;\n return halfSign | (newExp << 10) | halfFrac;\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfNative(u: number): number {\n u16buffer[0] = u;\n return f16buffer[0];\n}\n\n// Convert a float16 stored as a uint16 number back to a float32.\nfunction fromHalfJS(h: number): number {\n // Extract the sign (1 bit), exponent (5 bits), and fraction (10 bits)\n const sign = (h >> 15) & 0x1;\n const exp = (h >> 10) & 0x1f;\n const frac = h & 0x3ff;\n\n let f32bits: number;\n\n if (exp === 0) {\n if (frac === 0) {\n // Zero (positive or negative)\n f32bits = sign << 31;\n } else {\n // Subnormal half-precision number.\n // Normalize the subnormal number:\n let mant = frac;\n let e = -14; // For half, the exponent for subnormals is fixed at -14.\n // Shift left until the implicit leading 1 is in place.\n while ((mant & 0x400) === 0) {\n // 0x400 === 1 << 10\n mant <<= 1;\n e--;\n }\n // Remove the leading 1 (which is now implicit)\n mant &= 0x3ff;\n // Convert the half exponent (e) to the 32-bit float exponent:\n const newExp = e + 127; // 32-bit float bias is 127.\n const newFrac = mant << 13; // Align to 23-bit fraction (23 - 10 = 13)\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n } else if (exp === 0x1f) {\n // Handle special cases for Infinity and NaN.\n if (frac === 0) {\n // Infinity\n f32bits = (sign << 31) | 0x7f800000;\n } else {\n // NaN (we choose a quiet NaN)\n f32bits = (sign << 31) | 0x7fc00000;\n }\n } else {\n // Normalized half-precision number.\n // Adjust exponent from half (bias 15) to float32 (bias 127)\n const newExp = exp - 15 + 127;\n const newFrac = frac << 13;\n f32bits = (sign << 31) | (newExp << 23) | newFrac;\n }\n\n // Write the 32-bit bit pattern to the shared buffer,\n // then read it as a float32 to return a JavaScript number.\n u32buffer[0] = f32bits;\n return f32buffer[0];\n}\n\n// Convert a number 0..1 to a 0..255 uint\nexport function floatToUint8(v: number): number {\n // Converts from 0..1 float to 0..255 uint8\n return Math.max(0, Math.min(255, Math.round(v * 255)));\n}\n\n// Convert a number -1..1 to a -127..127 int\nexport function floatToSint8(v: number): number {\n // Converts from -1..1 float to -127..127 int8\n return Math.max(-127, Math.min(127, Math.round(v * 127)));\n}\n\n// Convert a 0..255 uint to a 0..1 float\nexport function Uint8ToFloat(v: number): number {\n // Converts from 0..255 uint8 to 0..1 float\n return v / 255;\n}\n\n// Convert a -127..127 int to a -1..1 float\nexport function Sint8ToFloat(v: number): number {\n // Converts from -127..127 int8 to -1..1 float\n return v / 127;\n}\n\n// A simple utility class for caching a fixed number of items\nexport class DataCache {\n // Maximum number of items to cache\n maxItems: number;\n\n // Function to fetch data for a key\n asyncFetch: (key: string) => Promise;\n\n // Function to dispose of data when it is no longer needed\n dispose?: (data: unknown) => void;\n\n // Array of cached items\n items: { key: string; data: unknown }[];\n\n // In-progress fetch promises\n pending: Map>;\n\n // Create a DataCache with a given function that fetches data not in the cache.\n constructor({\n asyncFetch,\n dispose,\n maxItems = 5,\n }: {\n asyncFetch: (key: string) => Promise;\n dispose?: (data: unknown) => void;\n maxItems?: number;\n }) {\n this.asyncFetch = asyncFetch;\n this.dispose = dispose;\n this.maxItems = maxItems;\n this.items = [];\n this.pending = new Map();\n }\n\n has(key: string): boolean {\n return this.items.some((item) => item.key === key);\n }\n\n getImmediate(key: string): unknown | undefined {\n const index = this.items.findIndex((item) => item.key === key);\n if (index >= 0) {\n // Data exists in our cache, move it to the end of the array\n const item = this.items.splice(index, 1)[0];\n this.items.push(item);\n // Return the cached data\n return item.data;\n }\n return undefined;\n }\n\n // Fetch data for the key, returning cached data if available.\n async getFetch(key: string): Promise {\n const immediate = this.getImmediate(key);\n if (immediate !== undefined) {\n return immediate;\n }\n\n let pending = this.pending.get(key);\n if (pending) {\n return pending;\n }\n\n pending = this.asyncFetch(key).then((data) => {\n this.pending.delete(key);\n\n // Add the data to the cache\n this.items.push({ key, data });\n // If the cache is too large, remove the oldest accessed item\n while (this.items.length > this.maxItems) {\n const removed = this.items.shift();\n if (removed && this.dispose) {\n this.dispose(removed.data);\n }\n }\n // Return the fetched data\n return data;\n });\n this.pending.set(key, pending);\n return pending;\n }\n}\n\n// Like Array.map but for objects\nexport function mapObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n const entries = Object.entries(obj).map(([key, value]) => [\n key,\n fn(value, key),\n ]);\n // Returns a new object with the mapped values\n return Object.fromEntries(entries);\n}\n\n// Like Array.map().filter() but for objects.\n// The callback fn() should return undefined to filter out the key.\nexport function mapFilterObject(\n obj: Record,\n fn: (value: unknown, key: string) => unknown,\n): Record {\n // Maps over an object, applying a function to each value and key\n // If no return (or return undefined), the key is not included in the result\n const entries = Object.entries(obj)\n .map(([key, value]) => [key, fn(value, key)])\n .filter(([_, value]) => value !== undefined);\n // Returns a new object with the filtered values\n return Object.fromEntries(entries);\n}\n\n// Recursively finds all ArrayBuffers in an object and returns them as an array\n// to use as transferable objects to send between workers.\nexport function getTransferable(ctx: unknown): Transferable[] {\n const buffers: Transferable[] = [];\n const seen = new Set();\n\n function traverse(obj: unknown) {\n if (obj && typeof obj === \"object\" && !seen.has(obj)) {\n seen.add(obj);\n\n if (obj instanceof ArrayBuffer) {\n buffers.push(obj);\n } else if (ArrayBuffer.isView(obj)) {\n // Handles TypedArrays and DataView\n buffers.push(obj.buffer as ArrayBuffer);\n } else if (Array.isArray(obj)) {\n obj.forEach(traverse);\n } else {\n Object.values(obj).forEach(traverse);\n }\n }\n }\n\n traverse(ctx);\n return buffers;\n}\n\n// Create an array of the given size and initialize element with initFunction()\nexport function newArray(\n n: number,\n initFunction: (index: number) => T,\n): T[] {\n // Creates a new array and calls a constructor function for each element with index\n return new Array(n).fill(null).map((_, i) => initFunction(i));\n}\n\n// A free list that has a pool of items of type T, with callbacks\n// for constructing, disposing, and checking if an item is valid for the given args.\nexport class FreeList {\n items: T[];\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n\n constructor({\n // Allocate a new item with the given args\n allocate,\n // Dispose of an item (optional, if GC is enough)\n dispose,\n // Check if an existing item in the list is valid for the given args,\n // allowing you to store heterogeneous items in the list.\n valid,\n }: {\n allocate: (args: Args) => T;\n dispose?: (item: T) => void;\n valid: (item: T, args: Args) => boolean;\n }) {\n this.items = [];\n this.allocate = allocate;\n this.dispose = dispose;\n this.valid = valid;\n }\n\n // Allocate a new item from the free list, first checking if a existing item\n // on the freelist is valid for the given args.\n alloc(args: Args): T {\n while (true) {\n const item = this.items.pop();\n if (!item) {\n // No items in the free list, allocate a new one\n break;\n }\n if (this.valid(item, args)) {\n // Found a valid item, return it\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): found valid item. Reusing...`);\n return item;\n }\n // Item isn't valid for our args, dispose of it and try again\n if (this.dispose) {\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): disposing invalid item.`);\n this.dispose(item);\n }\n }\n // console.log(`FreeList.alloc(${JSON.stringify(args)}): allocating new item`);\n return this.allocate(args);\n }\n\n free(item: T) {\n // Return item to the free list\n this.items.push(item);\n }\n\n disposeAll() {\n // Disposes of all items in the free list\n let item: T | undefined;\n item = this.items.pop();\n while (item) {\n if (this.dispose) {\n this.dispose(item);\n }\n item = this.items.pop();\n }\n }\n}\n\nexport function encodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) {\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n extA[i4] = floatBitsToUint(x);\n extA[i4 + 1] = floatBitsToUint(y);\n extA[i4 + 2] = floatBitsToUint(z);\n extA[i4 + 3] = toHalf(opacity);\n extB[i4] = toHalf(r) | (toHalf(g) << 16);\n extB[i4 + 1] = toHalf(b) | (toHalf(Math.log(scaleX)) << 16);\n extB[i4 + 2] = toHalf(Math.log(scaleY)) | (toHalf(Math.log(scaleZ)) << 16);\n extB[i4 + 3] = encodeQuatOctXy1010R12(quatX, quatY, quatZ, quatW);\n}\n\nexport function decodeExtSplat(\n extArrays: [Uint32Array, Uint32Array],\n index: number,\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n const i4 = index * 4;\n const [extA, extB] = extArrays;\n result.center.x = uintBitsToFloat(extA[i4]);\n result.center.y = uintBitsToFloat(extA[i4 + 1]);\n result.center.z = uintBitsToFloat(extA[i4 + 2]);\n result.opacity = fromHalf(extA[i4 + 3] & 0xffff);\n result.color.r = fromHalf(extB[i4] & 0xffff);\n result.color.g = fromHalf(extB[i4] >>> 16);\n result.color.b = fromHalf(extB[i4 + 1] & 0xffff);\n result.scales.x = Math.exp(fromHalf(extB[i4 + 1] >>> 16));\n result.scales.y = Math.exp(fromHalf(extB[i4 + 2] & 0xffff));\n result.scales.z = Math.exp(fromHalf(extB[i4 + 2] >>> 16));\n decodeQuatOctXy1010R12(extB[i4 + 3], result.quaternion);\n return result;\n}\n\n// Encode a PackedSplat as 4 consecutive Uint32 elements in the packedSplats array.\n// The center coordinates x,y,z are encoded as float16, the scales x,y,z as a\n// logarithmic uint8, rotation as three uint8s representing rotation axis and angle,\n// and RGBA as 4xuint8.\nexport function setPackedSplat(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * opacity : opacity);\n\n // Alternate internal encodings commented out below.\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n // Encode the splat as 4 consecutive Uint32 elements\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] =\n uScaleX | (uScaleY << 8) | (uScaleZ << 16) | (uQuatZ << 24);\n}\n\n// Encode the center coordinates x,y,z in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatCenter(\n packedSplats: Uint32Array,\n index: number,\n x: number,\n y: number,\n z: number,\n) {\n const uCenterX = toHalf(x);\n const uCenterY = toHalf(y);\n const uCenterZ = toHalf(z);\n\n const i4 = index * 4;\n packedSplats[i4 + 1] = uCenterX | (uCenterY << 16);\n packedSplats[i4 + 2] = uCenterZ | (packedSplats[i4 + 2] & 0xffff0000);\n}\n\n// Encode the scales x,y,z in the packedSplats Uint32Array, leaving all other fields as is.\nexport function setPackedSplatScales(\n packedSplats: Uint32Array,\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n encoding?: {\n lnScaleMin?: number;\n lnScaleMax?: number;\n },\n) {\n // Allow scales below LN_SCALE_MIN to be encoded as 0, which signifies a 2DGS\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n const uScaleX =\n scaleX < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleX) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleY =\n scaleY < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleY) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n const uScaleZ =\n scaleZ < SCALE_ZERO\n ? 0\n : Math.min(\n 255,\n Math.max(\n 1,\n Math.round((Math.log(scaleZ) - lnScaleMin) * lnScaleScale) + 1,\n ),\n );\n\n const i4 = index * 4;\n packedSplats[i4 + 3] =\n uScaleX |\n (uScaleY << 8) |\n (uScaleZ << 16) |\n (packedSplats[i4 + 3] & 0xff000000);\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempQuaternion = new THREE.Quaternion();\n\n// Encode the rotation quatX, quatY, quatZ, quatW in the packedSplats Uint32Array,\n// leaving all other fields as is.\nexport function setPackedSplatQuat(\n packedSplats: Uint32Array,\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n) {\n const uQuat = encodeQuatOctXy88R8(\n tempQuaternion.set(quatX, quatY, quatZ, quatW),\n );\n // const uQuat = encodeQuatXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n // const uQuat = encodeQuatEulerXyz888(new THREE.Quaternion(quatX, quatY, quatZ, quatW));\n const uQuatX = uQuat & 0xff;\n const uQuatY = (uQuat >>> 8) & 0xff;\n const uQuatZ = (uQuat >>> 16) & 0xff;\n\n const i4 = index * 4;\n packedSplats[i4 + 2] =\n (packedSplats[i4 + 2] & 0x0000ffff) | (uQuatX << 16) | (uQuatY << 24);\n packedSplats[i4 + 3] = (packedSplats[i4 + 3] & 0x00ffffff) | (uQuatZ << 24);\n}\n\n// Encode the RGBA color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgba(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n a: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lodOpacity?: boolean;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n const uA = floatToUint8(encoding?.lodOpacity ? 0.5 * a : a);\n const i4 = index * 4;\n packedSplats[i4] = uR | (uG << 8) | (uB << 16) | (uA << 24);\n}\n\n// Encode the RGB color in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatRgb(\n packedSplats: Uint32Array,\n index: number,\n r: number,\n g: number,\n b: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n },\n) {\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n const uR = floatToUint8((r - rgbMin) / rgbRange);\n const uG = floatToUint8((g - rgbMin) / rgbRange);\n const uB = floatToUint8((b - rgbMin) / rgbRange);\n\n const i4 = index * 4;\n packedSplats[i4] =\n uR | (uG << 8) | (uB << 16) | (packedSplats[i4] & 0xff000000);\n}\n\n// Encode the opacity in the packedSplats Uint32Array, leaving other fields alone.\nexport function setPackedSplatOpacity(\n packedSplats: Uint32Array,\n index: number,\n opacity: number,\n) {\n const uA = floatToUint8(opacity);\n\n const i4 = index * 4;\n packedSplats[i4] = (packedSplats[i4] & 0x00ffffff) | (uA << 24);\n}\n\nconst packedCenter = new THREE.Vector3();\nconst packedScales = new THREE.Vector3();\nconst packedQuaternion = new THREE.Quaternion();\nconst packedColor = new THREE.Color();\nconst packedFields = {\n center: packedCenter,\n scales: packedScales,\n quaternion: packedQuaternion,\n color: packedColor,\n opacity: 0.0,\n};\n\n// Unpack all components of a PackedSplat from the packedSplats Uint32Array into\n// THREE.js vector objects. The returned objects will be reused each call.\nexport function unpackSplat(\n packedSplats: Uint32Array,\n index: number,\n encoding?: {\n rgbMin?: number;\n rgbMax?: number;\n lnScaleMin?: number;\n lnScaleMax?: number;\n lodOpacity?: boolean;\n },\n): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n color: THREE.Color;\n opacity: number;\n} {\n // Returns a static object which is reused each time\n const result = packedFields;\n\n const i4 = index * 4;\n const word0 = packedSplats[i4];\n const word1 = packedSplats[i4 + 1];\n const word2 = packedSplats[i4 + 2];\n const word3 = packedSplats[i4 + 3];\n\n const rgbMin = encoding?.rgbMin ?? 0.0;\n const rgbMax = encoding?.rgbMax ?? 1.0;\n const rgbRange = rgbMax - rgbMin;\n result.color.set(\n rgbMin + ((word0 & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 8) & 0xff) / 255) * rgbRange,\n rgbMin + (((word0 >>> 16) & 0xff) / 255) * rgbRange,\n );\n result.opacity = ((word0 >>> 24) & 0xff) / 255;\n if (encoding?.lodOpacity) {\n result.opacity = 2.0 * result.opacity;\n }\n result.center.set(\n fromHalf(word1 & 0xffff),\n fromHalf((word1 >>> 16) & 0xffff),\n fromHalf(word2 & 0xffff),\n );\n\n const lnScaleMin = encoding?.lnScaleMin ?? LN_SCALE_MIN;\n const lnScaleMax = encoding?.lnScaleMax ?? LN_SCALE_MAX;\n const lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n const uScalesX = word3 & 0xff;\n result.scales.x =\n uScalesX === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesX - 1) * lnScaleScale);\n const uScalesY = (word3 >>> 8) & 0xff;\n result.scales.y =\n uScalesY === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesY - 1) * lnScaleScale);\n const uScalesZ = (word3 >>> 16) & 0xff;\n result.scales.z =\n uScalesZ === 0 ? 0.0 : Math.exp(lnScaleMin + (uScalesZ - 1) * lnScaleScale);\n\n const uQuat = ((word2 >>> 16) & 0xffff) | ((word3 >>> 8) & 0xff0000);\n decodeQuatOctXy88R8(uQuat, result.quaternion);\n // decodeQuatXyz888(uQuat, result.quaternion);\n // decodeQuatEulerXyz888(uQuat, result.quaternion);\n\n return result;\n}\n\n// Compute a texture array size that is large enough to fit numSplats. The most\n// common 2D texture size in WebGL2 is 4096x4096 which only allows for 16M splats,\n// so Spark stores Gsplat data in a 2D texture array, which most platforms support\n// up to 2048x2048x2048 = 8G splats. Allocations that fit within a single 2D texture\n// array layer will be rounded up to fill an entire texture row. Once a texture\n// array layer is filled, the allocation will be rounded up to fill an entire layer.\n// This is done so the entire set of splats can be covered by min/max coords across\n// each dimension.\nexport function getTextureSize(numSplats: number): {\n width: number;\n height: number;\n depth: number;\n maxSplats: number;\n} {\n // Compute a texture array size that is large enough to fit numSplats.\n // The width is always 2048, the height sized to fit the splats but no larger than 2048.\n // The depth is the number of layers needed to fit the splats.\n // maxSplats is computed as the new total available splats that can be stored.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n const maxSplats = width * height * depth;\n return { width, height, depth, maxSplats };\n}\n\nexport function computeMaxSplats(numSplats: number): number {\n // Compute the size of a Gsplat array texture (2048x2048xD) that can fit\n // numSplats splats, and return the total number of splats that can be stored\n // in such a texture.\n const width = SPLAT_TEX_WIDTH;\n const height = Math.max(\n SPLAT_TEX_MIN_HEIGHT,\n Math.min(SPLAT_TEX_HEIGHT, Math.ceil(numSplats / width)),\n );\n const depth = Math.ceil(numSplats / (width * height));\n return width * height * depth;\n}\n\n// Heuristic function to determine if we are running on a mobile device.\nexport function isMobile(): boolean {\n if (navigator.platform.toLowerCase().startsWith(\"win\")) {\n return false;\n }\n if (navigator.maxTouchPoints > 0) {\n // Touch-enabled device, assume it's mobile\n return true;\n }\n return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test(\n navigator.userAgent,\n );\n}\n\n// Heuristic function to determine if we are running on an Android device.\n// (does not include Oculus Quest)\nexport function isAndroid(): boolean {\n return (\n /Android/.test(navigator.userAgent) || /Tizen/.test(navigator.userAgent)\n );\n}\n\n// Heuristic function to determine if we are running on an Oculus Quest device.\nexport function isOculus(): boolean {\n return !!navigator.xr && /Oculus/.test(navigator.userAgent);\n}\n\nexport function isQuest2() {\n return isOculus() && /Quest 2/.test(navigator.userAgent);\n}\n\nexport function isIos(): boolean {\n return /iPhone|iPad/.test(navigator.userAgent);\n}\n\nexport function isVisionPro(): boolean {\n return (\n !!navigator.xr &&\n isIos() &&\n /Safari/.test(navigator.userAgent) &&\n isMobile()\n );\n}\n\n// Take an array of RGBA8 encoded pixels and flip them vertically in-place.\n// This is useful for converting between top-left and bottom-left coordinate systems\n// in standard 2D images vs WebGL2.\nexport function flipPixels(\n pixels: Uint8Array,\n width: number,\n height: number,\n): Uint8Array {\n // Flips pixels vertically in-place, returns original array.\n const tempLine = new Uint8Array(width * 4);\n\n // Only need to process half the height since we're swapping\n for (let y = 0; y < height / 2; y++) {\n const topOffset = y * width * 4;\n const bottomOffset = (height - 1 - y) * width * 4;\n\n // Save top line to temp buffer\n tempLine.set(pixels.subarray(topOffset, topOffset + width * 4));\n // Move bottom line to top\n pixels.set(\n pixels.subarray(bottomOffset, bottomOffset + width * 4),\n topOffset,\n );\n // Move saved top line to bottom\n pixels.set(tempLine, bottomOffset);\n }\n return pixels;\n}\n\n// Utility to take an array of RGBA8 encoded pixels and convert them to a\n// PNG-encoded image data URL that can be downloaded to the client.\nexport function pixelsToPngUrl(\n pixels: Uint8Array,\n width: number,\n height: number,\n): string {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Can't get 2d context\");\n }\n const imageData = ctx.createImageData(width, height);\n imageData.data.set(pixels);\n ctx.putImageData(imageData, 0, 0);\n return canvas.toDataURL(\"image/png\");\n}\n\n// Utility to filter out an undefined values from an object.\nexport function omitUndefined(obj: T): Partial {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => value !== undefined),\n ) as Partial;\n}\n\n// \"Identity\" vertex shader that just passes through the position.\nexport const IDENT_VERTEX_SHADER = unindent(`\n precision highp float;\n\n in vec3 position;\n\n void main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n }\n`);\n\n// Returns the average position of an array of THREE.Vector3.\nexport function averagePositions(positions: THREE.Vector3[]): THREE.Vector3 {\n const sum = new THREE.Vector3();\n for (const position of positions) {\n sum.add(position);\n }\n return sum.divideScalar(positions.length);\n}\n\n// Returns an \"average\" of an array of THREE.Quaternion objects.\n// Note that this is not a spherical lerp between quaternions but\n// rather an arithmetic mean that is normalized to unit length.\nexport function averageQuaternions(\n quaternions: THREE.Quaternion[],\n): THREE.Quaternion {\n if (quaternions.length === 0) {\n return new THREE.Quaternion();\n }\n const sum = quaternions[0].clone();\n for (let i = 1; i < quaternions.length; i++) {\n if (quaternions[i].dot(quaternions[0]) < 0.0) {\n sum.x -= quaternions[i].x;\n sum.y -= quaternions[i].y;\n sum.z -= quaternions[i].z;\n sum.w -= quaternions[i].w;\n } else {\n sum.x += quaternions[i].x;\n sum.y += quaternions[i].y;\n sum.z += quaternions[i].z;\n sum.w += quaternions[i].w;\n }\n }\n return sum.normalize();\n}\n\n// Compare two coordinates given by matrix1 and matrix2, returning the distance\n// between their origins and the \"coincidence\" of their orientations, defined\n// as the dot product of their \"-z\" axes.\nexport function coinciDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n const direction1 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix1)\n .sub(origin1)\n .normalize();\n const direction2 = new THREE.Vector3(0, 0, -1)\n .applyMatrix4(matrix2)\n .sub(origin2)\n .normalize();\n\n const distance = origin1.distanceTo(origin2);\n const coincidence = direction1.dot(direction2);\n return { distance, coincidence };\n}\n\n// Utility function that returns whether two coordinate system origins\n// given by matrix1 and matrix2 are within a certain maxDistance of each other.\nexport function withinDist({\n matrix1,\n matrix2,\n maxDistance,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n}): boolean {\n const origin1 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix1);\n const origin2 = new THREE.Vector3(0, 0, 0).applyMatrix4(matrix2);\n return origin1.distanceTo(origin2) <= maxDistance;\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined by a maxDistance and a minCoincidence.\nexport function withinCoinciDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoincidence,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoincidence?: number;\n}): boolean {\n const { distance, coincidence } = coinciDist(matrix1, matrix2);\n return (\n distance <= maxDistance &&\n (minCoincidence == null || coincidence >= minCoincidence)\n );\n}\n\n// Compare two coordinate systems given by matrix1 and matrix2, returning the\n// distance between their origins and the \"coorientation\" of their orientations,\n// define as the dot product of their quaternion transforms (flipping their\n// orientation to be on the same hemisphere if necessary).\nexport function coorientDist(matrix1: THREE.Matrix4, matrix2: THREE.Matrix4) {\n const [origin1, rotate1] = [new THREE.Vector3(), new THREE.Quaternion()];\n const [origin2, rotate2] = [new THREE.Vector3(), new THREE.Quaternion()];\n matrix1.decompose(origin1, rotate1, new THREE.Vector3());\n matrix2.decompose(origin2, rotate2, new THREE.Vector3());\n\n const distance = origin1.distanceTo(origin2);\n const coorient = Math.abs(rotate1.dot(rotate2));\n return { distance, coorient };\n}\n\n// Utility function that returns whether two coordinate systems are \"close\"\n// to each other, defined a maxDistance and a minCoorient.\nexport function withinCoorientDist({\n matrix1,\n matrix2,\n maxDistance,\n minCoorient,\n}: {\n matrix1: THREE.Matrix4;\n matrix2: THREE.Matrix4;\n maxDistance: number;\n minCoorient?: number;\n}): boolean {\n const { distance, coorient } = coorientDist(matrix1, matrix2);\n return (\n distance <= maxDistance && (minCoorient == null || coorient >= minCoorient)\n );\n}\n\n// Like Math.sign but with a custom epsilon value.\nexport function epsilonSign(value: number, epsilon = 0.001): number {\n if (Math.abs(value) < epsilon) {\n return 0;\n }\n return Math.sign(value);\n}\n\n// Encode a THREE.Quaternion into a 24-bit integer, converting the xyz coordinates\n// to signed 8-bit integers (w can be derived from xyz), and flipping the sign\n// of the quaternion if necessary to make this possible (q == -q for quaternions).\nexport function encodeQuatXyz888(q: THREE.Quaternion): number {\n const negQuat = q.w < 0.0;\n const iQuatX = floatToSint8(negQuat ? -q.x : q.x);\n const iQuatY = floatToSint8(negQuat ? -q.y : q.y);\n const iQuatZ = floatToSint8(negQuat ? -q.z : q.z);\n const uQuatX = iQuatX & 0xff;\n const uQuatY = iQuatY & 0xff;\n const uQuatZ = iQuatZ & 0xff;\n return uQuatX | (uQuatY << 8) | (uQuatZ << 16);\n}\n\n// Decode a 24-bit integer of the quaternion's xyz coordinates into a THREE.Quaternion.\nexport function decodeQuatXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n const iQuatX = (encoded << 24) >> 24;\n const iQuatY = (encoded << 16) >> 24;\n const iQuatZ = (encoded << 8) >> 24;\n out.set(iQuatX / 127.0, iQuatY / 127.0, iQuatZ / 127.0, 0.0);\n const dotSelf = out.x * out.x + out.y * out.y + out.z * out.z;\n out.w = Math.sqrt(Math.max(0.0, 1.0 - dotSelf));\n return out;\n}\n\n// Temporary storage used in `encodeQuatOCtXy88R8` and `decodeQuatOctXy88R8` to\n// avoid allocation new Quaternions and Vector3 instances.\nconst tempNormalizedQuaternion = new THREE.Quaternion();\nconst tempAxis = new THREE.Vector3();\n\n/**\n * Encodes a THREE.Quaternion into a 24‐bit integer.\n *\n * Bit layout (LSB → MSB):\n * - Bits 0–7: quantized U (8 bits)\n * - Bits 8–15: quantized V (8 bits)\n * - Bits 16–23: quantized angle θ (8 bits) from [0,π]\n *\n * This version uses folded octahedral mapping (all inline).\n */\nexport function encodeQuatOctXy88R8(q: THREE.Quaternion): number {\n // Force the minimal representation (q.w >= 0)\n const qnorm = tempNormalizedQuaternion.copy(q).normalize();\n if (qnorm.w < 0) {\n qnorm.set(-qnorm.x, -qnorm.y, -qnorm.z, -qnorm.w);\n }\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnorm.w);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(\n qnorm.x * qnorm.x + qnorm.y * qnorm.y + qnorm.z * qnorm.z,\n );\n const axis =\n xyz_norm < 1e-6\n ? tempAxis.set(1, 0, 0)\n : tempAxis.set(qnorm.x, qnorm.y, qnorm.z).divideScalar(xyz_norm);\n // const foldAxis = (axis.z < 0);\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axis.x) + Math.abs(axis.y) + Math.abs(axis.z);\n let p_x = axis.x / sum;\n let p_y = axis.y / sum;\n // Fold the lower hemisphere.\n if (axis.z < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 7 bits (0..127)\n const quantU = Math.round(u_f * 255);\n const quantV = Math.round(v_f * 255);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 10 bits (0..1023) ---\n const angleInt = Math.round(theta * (255 / Math.PI));\n\n // Pack into 24 bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16) | (quantV << 8) | quantU;\n}\n\n/**\n * Decodes a 24‐bit encoded quaternion (packed in a number) back to a THREE.Quaternion.\n *\n * Assumes the same bit layout as in encodeQuatOctXy88R8.\n */\nexport function decodeQuatOctXy88R8(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 8‐bit quantU and quantV, and 8‐bit angleInt.\n const quantU = encoded & 0xff; // bits 0–7\n const quantV = (encoded >>> 8) & 0xff; // bits 8–15\n const angleInt = (encoded >>> 16) & 0xff; // bits 16–23\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 255;\n const v_f = quantV / 255;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axis = tempAxis.set(f_x, f_y, f_z).normalize();\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 255) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axis.x * s, axis.y * s, axis.z * s, w);\n return out;\n}\n\n/**\n * Encodes a THREE.Quaternion into a 24‑bit unsigned integer\n * by converting it to Euler angles (roll, pitch, yaw).\n * The Euler angles are assumed to be in radians in the range [-π, π].\n * Each angle is normalized to [0,1] and quantized to 8 bits.\n * Bit layout (LSB→MSB):\n * - Bits 0–7: roll (quantized)\n * - Bits 8–15: pitch (quantized)\n * - Bits 16–23: yaw (quantized)\n */\nexport function encodeQuatEulerXyz888(q: THREE.Quaternion): number {\n // Normalize quaternion to ensure a proper rotation.\n const qNorm = q.clone().normalize();\n\n // Tait–Bryan angles (roll, pitch, yaw)\n const sinr_cosp = 2.0 * (qNorm.w * qNorm.x + qNorm.y * qNorm.z);\n const cosr_cosp = 1.0 - 2.0 * (qNorm.x * qNorm.x + qNorm.y * qNorm.y);\n const roll = Math.atan2(sinr_cosp, cosr_cosp);\n\n const sinp = 2.0 * (qNorm.w * qNorm.y - qNorm.z * qNorm.x);\n const pitch =\n Math.abs(sinp) >= 1.0 ? Math.sign(sinp) * (Math.PI / 2) : Math.asin(sinp);\n\n const siny_cosp = 2.0 * (qNorm.w * qNorm.z + qNorm.x * qNorm.y);\n const cosy_cosp = 1.0 - 2.0 * (qNorm.y * qNorm.y + qNorm.z * qNorm.z);\n const yaw = Math.atan2(siny_cosp, cosy_cosp);\n\n // Map each angle from [-π, π] to [0, 1]\n const normRoll = (roll + Math.PI) / (2 * Math.PI);\n const normPitch = (pitch + Math.PI) / (2 * Math.PI);\n const normYaw = (yaw + Math.PI) / (2 * Math.PI);\n\n // Quantize to 8 bits (0 to 255)\n const rollQ = Math.round(normRoll * 255);\n const pitchQ = Math.round(normPitch * 255);\n const yawQ = Math.round(normYaw * 255);\n\n // Pack into a 24-bit unsigned integer:\n // Bits 0–7: rollQ, Bits 8–15: pitchQ, Bits 16–23: yawQ.\n return (yawQ << 16) | (pitchQ << 8) | rollQ;\n}\n\n/**\n * Decodes a 24‑bit unsigned integer into a THREE.Quaternion\n * by unpacking three 8‑bit values (roll, pitch, yaw) in the range [0,255]\n * and then converting them back to Euler angles in [-π, π] and to a quaternion.\n */\nexport function decodeQuatEulerXyz888(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Unpack 8‑bit values.\n const rollQ = encoded & 0xff;\n const pitchQ = (encoded >>> 8) & 0xff;\n const yawQ = (encoded >>> 16) & 0xff;\n\n // Convert quantized values back to normalized [0,1] values.\n const normRoll = rollQ / 255;\n const normPitch = pitchQ / 255;\n const normYaw = yawQ / 255;\n\n // Map from [0,1] to [-π, π]\n const roll = normRoll * (2 * Math.PI) - Math.PI;\n const pitch = normPitch * (2 * Math.PI) - Math.PI;\n const yaw = normYaw * (2 * Math.PI) - Math.PI;\n\n // Convert Euler angles to quaternion (Tait–Bryan: roll, pitch, yaw).\n const cr = Math.cos(roll * 0.5);\n const sr = Math.sin(roll * 0.5);\n const cp = Math.cos(pitch * 0.5);\n const sp = Math.sin(pitch * 0.5);\n const cy = Math.cos(yaw * 0.5);\n const sy = Math.sin(yaw * 0.5);\n\n out.w = cr * cp * cy + sr * sp * sy;\n out.x = sr * cp * cy - cr * sp * sy;\n out.y = cr * sp * cy + sr * cp * sy;\n out.z = cr * cp * sy - sr * sp * cy;\n out.normalize();\n return out;\n}\n\nexport function encodeQuatOctXy1010R12(\n qx: number,\n qy: number,\n qz: number,\n qw: number,\n): number {\n const qlen = Math.sqrt(qx * qx + qy * qy + qz * qz + qw * qw);\n // Force the minimal representation (q.w >= 0)\n const qnx = (qw < 0 ? -qx : qx) / qlen;\n const qny = (qw < 0 ? -qy : qy) / qlen;\n const qnz = (qw < 0 ? -qz : qz) / qlen;\n const qnw = (qw < 0 ? -qw : qw) / qlen;\n // Compute the rotation angle θ in [0, π]\n const theta = 2 * Math.acos(qnw);\n // Recover the rotation axis (default to (1,0,0) for near-zero rotation)\n const xyz_norm = Math.sqrt(qnx * qnx + qny * qny + qnz * qnz);\n const axisX = xyz_norm < 1e-6 ? 1 : qnx / xyz_norm;\n const axisY = xyz_norm < 1e-6 ? 0 : qny / xyz_norm;\n const axisZ = xyz_norm < 1e-6 ? 0 : qnz / xyz_norm;\n\n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n const sum = Math.abs(axisX) + Math.abs(axisY) + Math.abs(axisZ);\n let p_x = axisX / sum;\n let p_y = axisY / sum;\n // Fold the lower hemisphere.\n if (axisZ < 0) {\n const tmp = p_x;\n p_x = (1 - Math.abs(p_y)) * (p_x >= 0 ? 1 : -1);\n p_y = (1 - Math.abs(tmp)) * (p_y >= 0 ? 1 : -1);\n }\n // Remap from [-1,1] to [0,1]\n const u_f = p_x * 0.5 + 0.5;\n const v_f = p_y * 0.5 + 0.5;\n // Quantize to 10 bits (0..1023)\n const quantU = Math.round(u_f * 1023);\n const quantV = Math.round(v_f * 1023);\n // --- Angle Quantization: Quantize θ ∈ [0,π] to 12 bits (0..4095) ---\n const angleInt = Math.round(theta * (4095 / Math.PI));\n\n // Pack into 32 bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20) | (quantV << 10) | quantU;\n}\n\nexport function decodeQuatOctXy1010R12(\n encoded: number,\n out: THREE.Quaternion,\n): THREE.Quaternion {\n // Extract 10‐bit quantU and quantV, and 12‐bit angleInt.\n const quantU = encoded & 0x3ff; // bits 0–9\n const quantV = (encoded >>> 10) & 0x3ff; // bits 10–19\n const angleInt = (encoded >>> 20) & 0xfff; // bits 20–31\n\n // Recover u and v in [0,1] then map to [-1,1]\n const u_f = quantU / 1023;\n const v_f = quantV / 1023;\n let f_x = (u_f - 0.5) * 2;\n let f_y = (v_f - 0.5) * 2;\n // Inverse folded mapping: recover z from the constraint |p_x|+|p_y|+z = 1.\n const f_z = 1 - (Math.abs(f_x) + Math.abs(f_y));\n const t = Math.max(-f_z, 0);\n f_x += f_x >= 0 ? -t : t;\n f_y += f_y >= 0 ? -t : t;\n const axisLen = Math.sqrt(f_x * f_x + f_y * f_y + f_z * f_z);\n const axisX = axisLen < 1e-6 ? 0 : f_x / axisLen;\n const axisY = axisLen < 1e-6 ? 0 : f_y / axisLen;\n const axisZ = axisLen < 1e-6 ? 0 : f_z / axisLen;\n\n // Decode the angle: θ ∈ [0,π]\n const theta = (angleInt / 4095) * Math.PI;\n const halfTheta = theta * 0.5;\n const s = Math.sin(halfTheta);\n const w = Math.cos(halfTheta);\n // Reconstruct the quaternion from axis-angle: (axis * sin(θ/2), cos(θ/2))\n out.set(axisX * s, axisY * s, axisZ * s, w);\n return out;\n}\n\n// Pack four signed 8-bit values into a single uint32.\nfunction packSint8Bytes(\n b0: number,\n b1: number,\n b2: number,\n b3: number,\n): number {\n const clampedB0 = Math.round(Math.max(-127, Math.min(127, b0 * 127)));\n const clampedB1 = Math.round(Math.max(-127, Math.min(127, b1 * 127)));\n const clampedB2 = Math.round(Math.max(-127, Math.min(127, b2 * 127)));\n const clampedB3 = Math.round(Math.max(-127, Math.min(127, b3 * 127)));\n return (\n (clampedB0 & 0xff) |\n ((clampedB1 & 0xff) << 8) |\n ((clampedB2 & 0xff) << 16) |\n ((clampedB3 & 0xff) << 24)\n );\n}\n\n// Encode an array of 9 signed RGB SH1 coefficients (clamped to [-1,1]) into\n// a pair of uint32 values, where each coefficient is stored as a sint7\nexport function encodeSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n encoding?: {\n sh1Max?: number;\n },\n) {\n const sh1Max = encoding?.sh1Max ?? 1;\n const sh1Scale = 63 / sh1Max;\n\n // Pack sint7 values into 2 x uint32\n const base = index * 2;\n for (let i = 0; i < 9; ++i) {\n const s = sh1Rgb[i] * sh1Scale;\n const value = Math.round(Math.max(-63, Math.min(63, s))) & 0x7f;\n const bitStart = i * 7;\n const bitEnd = bitStart + 7;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh1Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh1Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\n// Encode an array of 15 signed RGB SH2 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint8.\nexport function encodeSh2Rgb(\n sh2Array: Uint32Array,\n index: number,\n sh2Rgb: Float32Array,\n encoding?: {\n sh2Max?: number;\n },\n) {\n const sh2Max = encoding?.sh2Max ?? 1;\n const sh2Scale = 1 / sh2Max;\n\n // Pack sint8 values into 4 x uint32\n sh2Array[index * 4 + 0] = packSint8Bytes(\n sh2Rgb[0] * sh2Scale,\n sh2Rgb[1] * sh2Scale,\n sh2Rgb[2] * sh2Scale,\n sh2Rgb[3] * sh2Scale,\n );\n sh2Array[index * 4 + 1] = packSint8Bytes(\n sh2Rgb[4] * sh2Scale,\n sh2Rgb[5] * sh2Scale,\n sh2Rgb[6] * sh2Scale,\n sh2Rgb[7] * sh2Scale,\n );\n sh2Array[index * 4 + 2] = packSint8Bytes(\n sh2Rgb[8] * sh2Scale,\n sh2Rgb[9] * sh2Scale,\n sh2Rgb[10] * sh2Scale,\n sh2Rgb[11] * sh2Scale,\n );\n sh2Array[index * 4 + 3] = packSint8Bytes(\n sh2Rgb[12] * sh2Scale,\n sh2Rgb[13] * sh2Scale,\n sh2Rgb[14] * sh2Scale,\n 0,\n );\n}\n\n// Encode an array of 21 signed RGB SH3 coefficients (clamped to [-1,1]) into\n// an array of 4 uint32 values, where each coefficient is stored as a sint6.\nexport function encodeSh3Rgb(\n sh3Array: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n encoding?: {\n sh3Max?: number;\n },\n) {\n const sh3Max = encoding?.sh3Max ?? 1;\n const sh3Scale = 31 / sh3Max;\n\n // Pack sint6 values into 4 x uint32\n const base = index * 4;\n for (let i = 0; i < 21; ++i) {\n const s = sh3Rgb[i] * sh3Scale;\n const value = Math.round(Math.max(-31, Math.min(31, s))) & 0x3f;\n const bitStart = i * 6;\n const bitEnd = bitStart + 6;\n\n const wordStart = Math.floor(bitStart / 32);\n const bitOffset = bitStart - wordStart * 32;\n const firstWord = (value << bitOffset) & 0xffffffff;\n sh3Array[base + wordStart] |= firstWord;\n\n if (bitEnd > wordStart * 32 + 32) {\n const secondWord = (value >>> (32 - bitOffset)) & 0xffffffff;\n sh3Array[base + wordStart + 1] |= secondWord;\n }\n }\n}\n\nexport function encodeExtRgb(r: number, g: number, b: number): number {\n const ar = Math.abs(r);\n const ag = Math.abs(g);\n const ab = Math.abs(b);\n const maxAbs = Math.max(ar, ag, ab);\n const base = Math.floor(Math.log2(maxAbs));\n const biasedBase = Math.max(0, Math.min(31, base + 15));\n const divisor = 2 ** (biasedBase - 15) / 255;\n const uR = Math.round(Math.max(0, Math.min(255, ar / divisor)));\n const uG = Math.round(Math.max(0, Math.min(255, ag / divisor)));\n const uB = Math.round(Math.max(0, Math.min(255, ab / divisor)));\n const expSigns =\n (biasedBase << 3) |\n ((r < 0 ? 0x1 : 0) | (g < 0 ? 0x2 : 0) | (b < 0 ? 0x4 : 0));\n return uR | (uG << 8) | (uB << 16) | (expSigns << 24);\n}\n\nexport function decodeExtRgb(encoded: number): THREE.Color {\n const color = packedFields.color;\n const biasedBase = (encoded >>> 27) & 0x1f;\n const divisor = 2 ** (biasedBase - 15) / 255;\n const r = (encoded & 0xff) * divisor;\n const g = ((encoded >>> 8) & 0xff) * divisor;\n const b = ((encoded >>> 16) & 0xff) * divisor;\n color.r = encoded & 0x1000000 ? -r : r;\n color.g = encoded & 0x2000000 ? -g : g;\n color.b = encoded & 0x4000000 ? -b : b;\n return color;\n}\n\nexport function encodeExtSh1Rgb(\n sh1Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n}\n\nexport function encodeExtSh12Rgb(\n sh1Array: Uint32Array,\n sh2Array: Uint32Array,\n index: number,\n sh1Rgb: Float32Array,\n sh2Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 3; ++k) {\n const k3 = k * 3;\n sh1Array[i4 + k] = encodeExtRgb(sh1Rgb[k3], sh1Rgb[k3 + 1], sh1Rgb[k3 + 2]);\n }\n sh1Array[i4 + 3] = encodeExtRgb(sh2Rgb[0], sh2Rgb[1], sh2Rgb[2]);\n for (let k = 1; k < 5; ++k) {\n const k5 = k * 5;\n sh2Array[i4 + (k - 1)] = encodeExtRgb(\n sh2Rgb[k5],\n sh2Rgb[k5 + 1],\n sh2Rgb[k5 + 2],\n );\n }\n}\n\nexport function encodeExt3Rgb(\n sh3ArrayA: Uint32Array,\n sh3ArrayB: Uint32Array,\n index: number,\n sh3Rgb: Float32Array,\n) {\n const i4 = index * 4;\n for (let k = 0; k < 4; ++k) {\n const k3 = k * 3;\n sh3ArrayA[i4 + k] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n for (let k = 4; k < 7; ++k) {\n const k3 = k * 3;\n sh3ArrayB[i4 + (k - 4)] = encodeExtRgb(\n sh3Rgb[k3],\n sh3Rgb[k3 + 1],\n sh3Rgb[k3 + 2],\n );\n }\n}\n\n// Partially decompress a gzip-encoded Uint8Array, returning a Uint8Array of\n// the specified numBytes from the start of the file.\nexport function decompressPartialGzip(\n fileBytes: Uint8Array,\n numBytes: number,\n): Uint8Array {\n const chunks: Uint8Array[] = [];\n let totalBytes = 0;\n let result: Uint8Array | null = null;\n\n const gunzip = new Gunzip((data, final) => {\n chunks.push(data);\n totalBytes += data.length;\n if (final || totalBytes >= numBytes) {\n const allBytes = new Uint8Array(totalBytes);\n let offset = 0;\n for (const chunk of chunks) {\n allBytes.set(chunk, offset);\n offset += chunk.length;\n }\n result = allBytes.slice(0, numBytes);\n }\n });\n\n const CHUNK_SIZE = 1024;\n let offset = 0;\n while (result == null && offset < fileBytes.length) {\n const chunk = fileBytes.slice(offset, offset + CHUNK_SIZE);\n gunzip.push(chunk, false);\n offset += CHUNK_SIZE;\n }\n\n if (result == null) {\n gunzip.push(new Uint8Array(), true);\n if (result == null) {\n throw new Error(\"Failed to decompress partial gzip\");\n }\n }\n return result;\n}\n\nexport class GunzipReader {\n fileBytes: Uint8Array;\n chunkBytes: number;\n\n chunks: Uint8Array[];\n totalBytes: number;\n reader: ReadableStreamDefaultReader;\n\n constructor({\n fileBytes,\n chunkBytes = 64 * 1024,\n }: { fileBytes: Uint8Array; chunkBytes?: number }) {\n this.fileBytes = fileBytes;\n this.chunkBytes = chunkBytes;\n this.chunks = [];\n this.totalBytes = 0;\n\n const ds = new DecompressionStream(\"gzip\");\n const decompressionStream = new Blob([fileBytes]).stream().pipeThrough(ds);\n this.reader = decompressionStream.getReader();\n }\n\n async read(numBytes: number): Promise {\n while (this.totalBytes < numBytes) {\n const { value: chunk, done: readerDone } = await this.reader.read();\n if (readerDone) {\n break;\n }\n\n this.chunks.push(chunk);\n this.totalBytes += chunk.length;\n }\n\n if (this.totalBytes < numBytes) {\n throw new Error(\n `Unexpected EOF: needed ${numBytes}, got ${this.totalBytes}`,\n );\n }\n\n const allBytes = new Uint8Array(this.totalBytes);\n let outOffset = 0;\n for (const chunk of this.chunks) {\n allBytes.set(chunk, outOffset);\n outOffset += chunk.length;\n }\n\n const result = allBytes.subarray(0, numBytes);\n this.chunks = [allBytes.subarray(numBytes)];\n this.totalBytes -= numBytes;\n return result;\n }\n}\n\nexport function uploadU32DataTextureRows(\n renderer: THREE.WebGLRenderer,\n texture: THREE.Texture,\n width: number,\n rows: number,\n data: Uint32Array,\n) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n\n const props = renderer.properties.get(texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props?.__webglTexture;\n if (!glTexture) {\n throw new Error(\"texture not found\");\n }\n // Note: instead of saving and restoring the pixelStorei parameters\n // renderer.state.pixelStorei can be used with Three.js >= r184\n const currentFlipY = gl.getParameter(gl.UNPACK_FLIP_Y_WEBGL);\n const currentPremultiply = gl.getParameter(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL);\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n width,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n data,\n );\n renderer.state.unbindTexture();\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, currentFlipY);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, currentPremultiply);\n}\n","import * as THREE from \"three\";\n\nimport { IDENT_VERTEX_SHADER } from \"../utils\";\nimport { Compilation, type Dyno, type IOTypes } from \"./base\";\n\nexport class DynoProgram {\n graph: Dyno;\n template: DynoProgramTemplate;\n inputs: Record;\n outputs: Record;\n shader: string;\n uniforms: Record;\n updaters: (() => void)[];\n\n constructor({\n graph,\n inputs,\n outputs,\n template,\n consoleLog,\n }: {\n graph: Dyno;\n inputs?: Record;\n outputs?: Record;\n template: DynoProgramTemplate;\n consoleLog?: boolean;\n }) {\n this.graph = graph;\n this.template = template;\n this.inputs = inputs ?? {};\n this.outputs = outputs ?? {};\n\n const compile = new Compilation({ indent: this.template.indent });\n for (const key in this.outputs) {\n if (this.outputs[key]) {\n compile.declares.add(this.outputs[key]);\n }\n }\n const statements = graph.compile({\n inputs: this.inputs,\n outputs: this.outputs,\n compile,\n });\n\n this.shader = template.generate({ globals: compile.globals, statements });\n this.uniforms = compile.uniforms;\n this.updaters = compile.updaters;\n if (consoleLog) {\n console.log(\"*** COMPILED SHADER\", this.shader);\n console.log(\"*** UNIFORMS\", this.uniforms);\n }\n }\n\n prepareMaterial(): THREE.RawShaderMaterial {\n return getMaterial(this);\n }\n\n update() {\n for (const updater of this.updaters) {\n updater();\n }\n }\n}\n\nexport class DynoProgramTemplate {\n before: string;\n between: string;\n after: string;\n indent: string;\n\n constructor(template: string) {\n const globals = template.match(/^([ \\t]*)\\{\\{\\s*GLOBALS\\s*\\}\\}/m);\n const statements = template.match(/^([ \\t]*)\\{\\{\\s*STATEMENTS\\s*\\}\\}/m);\n if (!globals || !statements) {\n throw new Error(\n \"Template must contain {{ GLOBALS }} and {{ STATEMENTS }}\",\n );\n }\n\n this.before = template.substring(0, globals.index);\n this.between = template.substring(\n (globals.index as number) + globals[0].length,\n statements.index,\n );\n this.after = template.substring(\n (statements.index as number) + statements[0].length,\n );\n this.indent = statements[1];\n }\n\n generate({\n globals,\n statements,\n }: { globals: Set; statements: string[] }): string {\n return (\n this.before +\n Array.from(globals).join(\"\\n\\n\") +\n this.between +\n statements.map((s) => this.indent + s).join(\"\\n\") +\n this.after\n );\n }\n}\n\nconst programMaterial = new WeakMap();\n\nfunction getMaterial(program: DynoProgram): THREE.RawShaderMaterial {\n let material = programMaterial.get(program);\n if (material) {\n return material;\n }\n\n material = new THREE.RawShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: IDENT_VERTEX_SHADER,\n fragmentShader: program.shader,\n uniforms: program.uniforms,\n });\n programMaterial.set(program, material);\n return material;\n}\n","import {\n type AllFloatTypes,\n type AllIntTypes,\n type AllSignedTypes,\n type AllValueTypes,\n type BaseType,\n type BoolTypes,\n type FloatTypes,\n type IntTypes,\n type SignedTypes,\n type UintTypes,\n type ValueTypes,\n isAllFloatType,\n isFloatType,\n isIntType,\n isMat2,\n isMat3,\n isMat4,\n isUintType,\n} from \"./types\";\n\nexport type AddOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : never);\n\nexport type SubOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type MulOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = BaseType &\n (A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : A extends \"float\"\n ? B extends AllFloatTypes\n ? B\n : never\n : B extends \"float\"\n ? A extends AllFloatTypes\n ? A\n : never\n : A extends IntTypes\n ? B extends A\n ? A\n : never\n : B extends IntTypes\n ? A extends B\n ? A\n : never\n : A extends UintTypes\n ? B extends A\n ? A\n : never\n : B extends UintTypes\n ? A extends B\n ? A\n : never\n : // Vector * Matrix/Vector\n A extends \"vec2\"\n ? B extends \"vec2\" | \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : B extends \"mat3x2\"\n ? \"vec3\"\n : B extends \"mat4x2\"\n ? \"vec4\"\n : never\n : A extends \"vec3\"\n ? B extends \"mat2x3\"\n ? \"vec2\"\n : B extends \"vec3\" | \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : B extends \"mat4x3\"\n ? \"vec4\"\n : never\n : A extends \"vec4\"\n ? B extends \"mat2x4\"\n ? \"vec2\"\n : B extends \"mat3x4\"\n ? \"vec3\"\n : B extends \"vec4\" | \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Vector\n B extends \"vec2\"\n ? A extends \"mat2\" | \"mat2x2\"\n ? \"vec2\"\n : A extends \"mat2x3\"\n ? \"vec3\"\n : A extends \"mat2x4\"\n ? \"vec4\"\n : never\n : B extends \"vec3\"\n ? A extends \"mat3x2\"\n ? \"vec2\"\n : A extends \"mat3\" | \"mat3x3\"\n ? \"vec3\"\n : A extends \"mat3x4\"\n ? \"vec4\"\n : never\n : B extends \"vec4\"\n ? A extends \"mat4x2\"\n ? \"vec2\"\n : A extends \"mat4x3\"\n ? \"vec3\"\n : A extends \"mat4\" | \"mat4x4\"\n ? \"vec4\"\n : never\n : // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n A extends \"mat2\" | \"mat2x2\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2\"\n : B extends \"mat3x2\"\n ? \"mat3x2\"\n : B extends \"mat4x2\"\n ? \"mat4x2\"\n : never\n : A extends \"mat2x3\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x3\"\n : B extends \"mat3x2\"\n ? \"mat3\"\n : B extends \"mat4x2\"\n ? \"mat4x3\"\n : never\n : A extends \"mat2x4\" // Acols = 2 => Brows = 2\n ? B extends \"mat2\" | \"mat2x2\"\n ? \"mat2x4\"\n : B extends \"mat3x2\"\n ? \"mat3x4\"\n : B extends \"mat4x2\"\n ? \"mat4\"\n : never\n : A extends \"mat3x2\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x2\"\n : B extends \"mat4x3\"\n ? \"mat4x2\"\n : never\n : A extends \"mat3\" | \"mat3x3\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x3\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3\"\n : B extends \"mat4x3\"\n ? \"mat4x3\"\n : never\n : A extends \"mat3x4\" // Acols = 3 => Brows = 3\n ? B extends \"mat2x3\"\n ? \"mat2x4\"\n : B extends \"mat3\" | \"mat3x3\"\n ? \"mat3x4\"\n : B extends \"mat4x3\"\n ? \"mat4\"\n : never\n : A extends \"mat4x2\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2\"\n : B extends \"mat3x4\"\n ? \"mat3x2\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x2\"\n : never\n : A extends \"mat4x3\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x3\"\n : B extends \"mat3x4\"\n ? \"mat3\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4x3\"\n : never\n : A extends \"mat4\" | \"mat4x4\" // Acols = 4 => Brows = 4\n ? B extends \"mat2x4\"\n ? \"mat2x4\"\n : B extends \"mat3x4\"\n ? \"mat3x4\"\n : B extends\n | \"mat4\"\n | \"mat4x4\"\n ? \"mat4\"\n : never\n : never);\n\nexport type DivOutput<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> = AddOutput;\n\nexport type IModOutput<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> = BaseType &\n (A extends B\n ? A\n : A extends \"int\"\n ? B extends IntTypes\n ? B\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : A extends \"uint\"\n ? B extends UintTypes\n ? B\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\n\nexport type ModOutput = BaseType &\n (A extends B ? A : B extends \"float\" ? A : never);\n\nexport type PowOutput = BaseType &\n (A extends B ? A : never);\n\nexport type MinOutput = BaseType &\n (A extends B\n ? A\n : B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MaxOutput = MinOutput<\n A,\n B\n>;\nexport type ClampOutput = BaseType &\n (B extends \"float\"\n ? A extends FloatTypes\n ? A\n : never\n : B extends \"int\"\n ? A extends IntTypes\n ? A\n : never\n : B extends \"uint\"\n ? A extends UintTypes\n ? A\n : never\n : never);\nexport type MixOutput<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> = BaseType &\n (T extends A\n ? A\n : T extends \"float\"\n ? A\n : T extends \"bool\"\n ? A extends \"float\"\n ? A\n : never\n : T extends \"bvec2\"\n ? A extends \"vec2\"\n ? A\n : never\n : T extends \"bvec3\"\n ? A extends \"vec3\"\n ? A\n : never\n : T extends \"bvec4\"\n ? A extends \"vec4\"\n ? A\n : never\n : never);\nexport type StepOutput = BaseType &\n (A extends B ? B : A extends \"float\" ? B : never);\nexport type SmoothstepOutput<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n> = BaseType &\n (A extends B ? (A extends C ? C : A extends \"float\" ? C : never) : never);\n\nexport type IsNanOutput = BaseType &\n (A extends \"float\"\n ? \"bool\"\n : A extends \"vec2\"\n ? \"bvec2\"\n : A extends \"vec3\"\n ? \"bvec3\"\n : A extends \"vec4\"\n ? \"bvec4\"\n : never);\nexport type IsInfOutput = IsNanOutput;\n\n// // Run-time type helper functions\n\nexport function addOutputType(\n a: A,\n b: B,\n operation = \"add\",\n): AddOutput {\n const error = () => {\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n };\n // @ts-ignore\n if (a === b) return a as AddOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as AddOutput;\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return a as AddOutput;\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return b as AddOutput;\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return a as AddOutput;\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return b as AddOutput;\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return a as AddOutput;\n error();\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function subOutputType(\n a: A,\n b: B,\n): SubOutput {\n return addOutputType(a, b, \"sub\");\n}\n\nexport function mulOutputType(\n a: A,\n b: B,\n): MulOutput {\n const error = () => {\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n };\n const result = (value: unknown) => value as MulOutput;\n if (a === \"int\") {\n if (isIntType(b)) return result(b);\n error();\n }\n if (b === \"int\") {\n if (isIntType(a)) return result(a);\n error();\n }\n if (a === \"uint\") {\n if (isUintType(b)) return result(b);\n error();\n }\n if (b === \"uint\") {\n if (isUintType(a)) return result(a);\n error();\n }\n if (a === \"float\") {\n if (isAllFloatType(b)) return result(b);\n error();\n }\n if (b === \"float\") {\n if (isAllFloatType(a)) return result(a);\n error();\n }\n if (isIntType(a) || isUintType(a) || isIntType(b) || isUintType(b)) {\n // @ts-ignore\n if (a === b) return result(a);\n error();\n }\n // Vector * Matrix/Vector\n if (a === \"vec2\") {\n if (b === \"vec2\" || isMat2(b)) return result(\"vec2\");\n if (b === \"mat3x2\") return result(\"vec3\");\n if (b === \"mat4x2\") return result(\"vec4\");\n error();\n }\n if (a === \"vec3\") {\n if (b === \"mat2x3\") return result(\"vec2\");\n if (b === \"vec3\" || isMat3(b)) return result(\"vec3\");\n if (b === \"mat4x3\") return result(\"vec4\");\n error();\n }\n if (a === \"vec4\") {\n if (b === \"mat2x4\") return result(\"vec2\");\n if (b === \"mat3x4\") return result(\"vec3\");\n if (b === \"vec4\" || isMat4(b)) return result(\"vec4\");\n error();\n }\n // Matrix * Vector\n if (b === \"vec2\") {\n if (isMat2(a)) return result(\"vec2\");\n if (a === \"mat2x3\") return result(\"vec3\");\n if (a === \"mat2x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec3\") {\n if (a === \"mat3x2\") return result(\"vec2\");\n if (isMat3(a)) return result(\"vec3\");\n if (a === \"mat3x4\") return result(\"vec4\");\n error();\n }\n if (b === \"vec4\") {\n if (a === \"mat4x2\") return result(\"vec2\");\n if (a === \"mat4x3\") return result(\"vec3\");\n if (isMat4(a)) return result(\"vec4\");\n error();\n }\n // Matrix * Matrix: mat{Acols}x{Arows} * mat{Bcols}x{Brows} => mat{Bcols}x{Arows}\n if (isMat2(a)) {\n if (isMat2(b)) return result(\"mat2\");\n if (b === \"mat3x2\") return result(\"mat3x2\");\n if (b === \"mat4x2\") return result(\"mat4x2\");\n error();\n }\n if (a === \"mat2x3\") {\n if (isMat2(b)) return result(\"mat2x3\");\n if (b === \"mat3x2\") return result(\"mat3\");\n if (b === \"mat4x2\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat2x4\") {\n if (isMat2(b)) return result(\"mat2x4\");\n if (b === \"mat3x2\") return result(\"mat3x4\");\n if (b === \"mat4x2\") return result(\"mat4\");\n error();\n }\n if (a === \"mat3x2\") {\n if (b === \"mat2x3\") return result(\"mat2\");\n if (isMat3(b)) return result(\"mat3x2\");\n if (b === \"mat4x3\") return result(\"mat4x2\");\n error();\n }\n if (isMat3(a)) {\n if (b === \"mat2x3\") return result(\"mat2x3\");\n if (isMat3(b)) return result(\"mat3\");\n if (b === \"mat4x3\") return result(\"mat4x3\");\n error();\n }\n if (a === \"mat3x4\") {\n if (b === \"mat2x3\") return result(\"mat2x4\");\n if (isMat3(b)) return result(\"mat3x4\");\n if (b === \"mat4x3\") return result(\"mat4\");\n error();\n }\n if (a === \"mat4x2\") {\n if (b === \"mat2x4\") return result(\"mat2\");\n if (b === \"mat3x4\") return result(\"mat3x2\");\n if (isMat4(b)) return result(\"mat4x2\");\n error();\n }\n if (a === \"mat4x3\") {\n if (b === \"mat2x4\") return result(\"mat2x3\");\n if (b === \"mat3x4\") return result(\"mat3\");\n if (isMat4(b)) return result(\"mat4x3\");\n error();\n }\n if (isMat4(a)) {\n if (b === \"mat2x4\") return result(\"mat2x4\");\n if (b === \"mat3x4\") return result(\"mat3x4\");\n if (isMat4(b)) return result(\"mat4\");\n error();\n }\n throw new Error(`Invalid mul types: ${a}, ${b}`);\n}\n\nexport function divOutputType(\n a: A,\n b: B,\n): DivOutput {\n return addOutputType(a, b, \"div\");\n}\n\nexport function imodOutputType(\n a: A,\n b: B,\n): IModOutput {\n // @ts-ignore\n if (a === b) return a as IModOutput;\n if (a === \"int\") {\n if (isIntType(b)) return b as IModOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as IModOutput;\n } else if (a === \"uint\") {\n if (isUintType(b)) return b as IModOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as IModOutput;\n }\n throw new Error(`Invalid imod types: ${a}, ${b}`);\n}\n\nexport function modOutputType(\n a: A,\n b: B,\n): ModOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return a as ModOutput;\n throw new Error(`Invalid mod types: ${a}, ${b}`);\n}\n\nexport function modfOutputType(a: A): A {\n return a;\n}\n\nexport function negOutputType(a: A): A {\n return a;\n}\n\nexport function absOutputType(a: A): A {\n return a;\n}\n\nexport function signOutputType(a: A): A {\n return a;\n}\n\nexport function floorOutputType(a: A): A {\n return a;\n}\n\nexport function ceilOutputType(a: A): A {\n return a;\n}\n\nexport function truncOutputType(a: A): A {\n return a;\n}\n\nexport function roundOutputType(a: A): A {\n return a;\n}\n\nexport function fractOutputType(a: A): A {\n return a;\n}\n\nexport function powOutputType(a: A): A {\n return a;\n}\n\nexport function expOutputType(a: A): A {\n return a;\n}\n\nexport function exp2OutputType(a: A): A {\n return a;\n}\n\nexport function logOutputType(a: A): A {\n return a;\n}\n\nexport function log2OutputType(a: A): A {\n return a;\n}\n\nexport function sqrOutputType(a: A): A {\n return a;\n}\n\nexport function sqrtOutputType(a: A): A {\n return a;\n}\n\nexport function inversesqrtOutputType(a: A): A {\n return a;\n}\n\nexport function minOutputType(\n a: A,\n b: B,\n operation = \"min\",\n): MinOutput {\n // @ts-ignore\n if (a === b) return a as MinOutput;\n if (b === \"float\") {\n if (isFloatType(a)) return a as MinOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as MinOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as MinOutput;\n }\n throw new Error(`Invalid ${operation} types: ${a}, ${b}`);\n}\n\nexport function maxOutputType(\n a: A,\n b: B,\n): MaxOutput {\n return minOutputType(a, b, \"max\");\n}\n\nexport function clampOutputType(\n a: A,\n b: B,\n _c: B,\n): ClampOutput {\n if (b === \"float\") {\n if (isFloatType(a)) return a as ClampOutput;\n } else if (b === \"int\") {\n if (isIntType(a)) return a as ClampOutput;\n } else if (b === \"uint\") {\n if (isUintType(a)) return a as ClampOutput;\n }\n throw new Error(`Invalid clamp types: ${a}, ${b}`);\n}\n\nexport function mixOutputType<\n A extends FloatTypes,\n C extends FloatTypes | BoolTypes,\n>(a: A, b: A, c: C): MixOutput {\n // @ts-ignore\n if (c === a) return a as MixOutput;\n if (c === \"float\") return a as MixOutput;\n if (c === \"bool\" && a === \"float\") return a as MixOutput;\n if (c === \"bvec2\" && a === \"vec2\") return a as MixOutput;\n if (c === \"bvec3\" && a === \"vec3\") return a as MixOutput;\n if (c === \"bvec4\" && a === \"vec4\") return a as MixOutput;\n throw new Error(`Invalid mix types: ${a}, ${b}, ${c}`);\n}\n\nexport function stepOutputType(\n a: A,\n b: B,\n): StepOutput {\n // @ts-ignore\n if (a === b || b === \"float\") return b as StepOutput;\n throw new Error(`Invalid step types: ${a}, ${b}`);\n}\n\nexport function smoothstepOutputType<\n A extends FloatTypes,\n B extends FloatTypes,\n C extends FloatTypes,\n>(a: A, b: B, c: C): SmoothstepOutput {\n // @ts-ignore\n if (a === b) {\n if (a === c || a === \"float\") return c as SmoothstepOutput;\n }\n throw new Error(`Invalid smoothstep types: ${a}, ${b}, ${c}`);\n}\n\nexport function isNanOutputType(\n a: A,\n operation = \"isNan\",\n): IsNanOutput {\n if (a === \"float\") return \"bool\" as IsNanOutput;\n if (a === \"vec2\") return \"bvec2\" as IsNanOutput;\n if (a === \"vec3\") return \"bvec3\" as IsNanOutput;\n if (a === \"vec4\") return \"bvec4\" as IsNanOutput;\n throw new Error(`Invalid ${operation} types: ${a}`);\n}\n\nexport function isInfOutputType(a: A): IsInfOutput {\n return isNanOutputType(a, \"isInf\");\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AddOutput,\n type ClampOutput,\n type DivOutput,\n type IModOutput,\n type IsInfOutput,\n type IsNanOutput,\n type MaxOutput,\n type MinOutput,\n type MixOutput,\n type ModOutput,\n type MulOutput,\n type SmoothstepOutput,\n type StepOutput,\n type SubOutput,\n absOutputType,\n addOutputType,\n ceilOutputType,\n clampOutputType,\n divOutputType,\n exp2OutputType,\n expOutputType,\n floorOutputType,\n fractOutputType,\n imodOutputType,\n inversesqrtOutputType,\n isInfOutputType,\n isNanOutputType,\n log2OutputType,\n logOutputType,\n maxOutputType,\n minOutputType,\n mixOutputType,\n modOutputType,\n modfOutputType,\n mulOutputType,\n negOutputType,\n powOutputType,\n roundOutputType,\n signOutputType,\n smoothstepOutputType,\n sqrOutputType,\n sqrtOutputType,\n stepOutputType,\n subOutputType,\n truncOutputType,\n} from \"./mathTypes\";\nimport type {\n AllIntTypes,\n AllSignedTypes,\n AllValueTypes,\n BoolTypes,\n FloatTypes,\n SignedTypes,\n ValueTypes,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const add = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Add({ a, b });\nexport const sub = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Sub({ a, b });\nexport const mul = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mul({ a, b });\nexport const div = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Div({ a, b });\nexport const imod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new IMod({ a, b });\nexport const mod = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Mod({ a, b });\nexport const modf = (a: DynoVal) =>\n new Modf({ a }).outputs;\n\nexport const neg = (a: DynoVal): DynoVal =>\n new Neg({ a });\nexport const abs = (a: DynoVal): DynoVal =>\n new Abs({ a });\nexport const sign = (a: DynoVal): DynoVal =>\n new Sign({ a });\nexport const floor = (a: DynoVal): DynoVal =>\n new Floor({ a });\nexport const ceil = (a: DynoVal): DynoVal =>\n new Ceil({ a });\nexport const trunc = (a: DynoVal): DynoVal =>\n new Trunc({ a });\nexport const round = (a: DynoVal): DynoVal =>\n new Round({ a });\nexport const fract = (a: DynoVal): DynoVal =>\n new Fract({ a });\n\nexport const pow = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Pow({ a, b });\nexport const exp = (a: DynoVal): DynoVal =>\n new Exp({ a });\nexport const exp2 = (a: DynoVal): DynoVal =>\n new Exp2({ a });\nexport const log = (a: DynoVal): DynoVal =>\n new Log({ a });\nexport const log2 = (a: DynoVal): DynoVal =>\n new Log2({ a });\nexport const sqr = (a: DynoVal): DynoVal =>\n new Sqr({ a });\nexport const sqrt = (a: DynoVal): DynoVal =>\n new Sqrt({ a });\nexport const inversesqrt = (a: DynoVal): DynoVal =>\n new InverseSqrt({ a });\n\nexport const min = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Min({ a, b });\nexport const max = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Max({ a, b });\nexport const clamp = (\n a: DynoVal,\n min: DynoVal,\n max: DynoVal,\n): DynoVal> => new Clamp({ a, min, max });\nexport const mix = (\n a: DynoVal,\n b: DynoVal,\n t: DynoVal,\n): DynoVal> => new Mix({ a, b, t });\nexport const step = (\n edge: DynoVal,\n x: DynoVal,\n): DynoVal> => new Step({ edge, x });\nexport const smoothstep = (\n edge0: DynoVal,\n edge1: DynoVal,\n x: DynoVal,\n): DynoVal> =>\n new Smoothstep({ edge0, edge1, x });\n\nexport const isNan = (\n a: DynoVal,\n): DynoVal> => new IsNan({ a });\nexport const isInf = (\n a: DynoVal,\n): DynoVal> => new IsInf({ a });\n\nexport class Add<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"sum\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"sum\", outTypeFunc: addOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sum} = ${inputs.a} + ${inputs.b};`];\n };\n }\n}\n\nexport class Sub<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"difference\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"difference\", outTypeFunc: subOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.difference} = ${inputs.a} - ${inputs.b};`];\n };\n }\n}\n\nexport class Mul<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"product\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: mulOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.product} = ${inputs.a} * ${inputs.b};`];\n };\n }\n}\n\nexport class Div<\n A extends AllValueTypes,\n B extends AllValueTypes,\n> extends BinaryOp, \"quotient\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"quotient\", outTypeFunc: divOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.quotient} = ${inputs.a} / ${inputs.b};`];\n };\n }\n}\n\nexport class IMod<\n A extends AllIntTypes,\n B extends AllIntTypes,\n> extends BinaryOp, \"remainder\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: imodOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = ${inputs.a} % ${inputs.b};`];\n };\n }\n}\n\nexport class Mod extends BinaryOp<\n A,\n B,\n ModOutput,\n \"remainder\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"remainder\", outTypeFunc: modOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.remainder} = mod(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Modf extends Dyno<\n { a: A },\n { fract: A; integer: A }\n> {\n constructor({ a }: { a: DynoVal }) {\n const inTypes = { a: valType(a) };\n const outType = modfOutputType(inTypes.a);\n const outTypes = {\n fract: outType,\n integer: outType,\n };\n super({ inTypes, outTypes, inputs: { a } });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = modf(${inputs.a}, ${outputs.integer});`];\n };\n }\n}\n\nexport class Neg extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"neg\", outTypeFunc: negOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.neg} = -${inputs.a};`];\n };\n }\n}\n\nexport class Abs extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"abs\", outTypeFunc: absOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.abs} = abs(${inputs.a});`];\n };\n }\n}\n\nexport class Sign extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sign\", outTypeFunc: signOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sign} = sign(${inputs.a});`];\n };\n }\n}\n\nexport class Floor extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"floor\", outTypeFunc: floorOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.floor} = floor(${inputs.a});`];\n };\n }\n}\n\nexport class Ceil extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"ceil\", outTypeFunc: ceilOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.ceil} = ceil(${inputs.a});`];\n };\n }\n}\n\nexport class Trunc extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"trunc\", outTypeFunc: truncOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.trunc} = trunc(${inputs.a});`];\n };\n }\n}\n\nexport class Round extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"round\", outTypeFunc: roundOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.round} = round(${inputs.a});`];\n };\n }\n}\n\nexport class Fract extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"fract\", outTypeFunc: fractOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.fract} = fract(${inputs.a});`];\n };\n }\n}\n\nexport class Pow extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"power\", outTypeFunc: powOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.power} = pow(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Exp extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp\", outTypeFunc: expOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp} = exp(${inputs.a});`];\n };\n }\n}\n\nexport class Exp2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"exp2\", outTypeFunc: exp2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.exp2} = exp2(${inputs.a});`];\n };\n }\n}\n\nexport class Log extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log\", outTypeFunc: logOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log} = log(${inputs.a});`];\n };\n }\n}\n\nexport class Log2 extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"log2\", outTypeFunc: log2OutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.log2} = log2(${inputs.a});`];\n };\n }\n}\n\nexport class Sqr extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqr\", outTypeFunc: sqrOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqr} = ${inputs.a} * ${inputs.a};`];\n };\n }\n}\n\nexport class Sqrt extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"sqrt\", outTypeFunc: sqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.sqrt} = sqrt(${inputs.a});`];\n };\n }\n}\n\nexport class InverseSqrt extends UnaryOp<\n A,\n A,\n \"inversesqrt\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inversesqrt\", outTypeFunc: inversesqrtOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.inversesqrt} = inversesqrt(${inputs.a});`];\n };\n }\n}\n\nexport class Min extends BinaryOp<\n A,\n B,\n MinOutput,\n \"min\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"min\", outTypeFunc: minOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.min} = min(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Max extends BinaryOp<\n A,\n B,\n MaxOutput,\n \"max\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"max\", outTypeFunc: maxOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.max} = max(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Clamp<\n A extends ValueTypes,\n MinMax extends ValueTypes,\n> extends TrinaryOp, \"clamp\"> {\n constructor({\n a,\n min,\n max,\n }: { a: DynoVal; min: DynoVal; max: DynoVal }) {\n super({\n a,\n b: min,\n c: max,\n outKey: \"clamp\",\n outTypeFunc: clampOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a, b: min, c: max } = inputs;\n return [`${outputs.clamp} = clamp(${a}, ${min}, ${max});`];\n };\n }\n}\n\nexport class Mix<\n A extends FloatTypes,\n T extends FloatTypes | BoolTypes,\n> extends TrinaryOp, \"mix\"> {\n constructor({ a, b, t }: { a: DynoVal; b: DynoVal; t: DynoVal }) {\n super({ a, b, c: t, outKey: \"mix\", outTypeFunc: mixOutputType });\n this.statements = ({ inputs, outputs }) => {\n const { a, b, c: t } = inputs;\n return [`${outputs.mix} = mix(${a}, ${b}, ${t});`];\n };\n }\n}\n\nexport class Step<\n Edge extends FloatTypes,\n X extends FloatTypes,\n> extends BinaryOp, \"step\"> {\n constructor({ edge, x }: { edge: DynoVal; x: DynoVal }) {\n super({\n a: edge,\n b: x,\n outKey: \"step\",\n outTypeFunc: stepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge, b: x } = inputs;\n return [`${outputs.step} = step(${edge}, ${x});`];\n };\n }\n}\n\nexport class Smoothstep<\n X extends FloatTypes,\n Edge extends X | \"float\",\n> extends TrinaryOp<\n Edge,\n Edge,\n X,\n SmoothstepOutput,\n \"smoothstep\"\n> {\n constructor({\n edge0,\n edge1,\n x,\n }: { edge0: DynoVal; edge1: DynoVal; x: DynoVal }) {\n super({\n a: edge0,\n b: edge1,\n c: x,\n outKey: \"smoothstep\",\n outTypeFunc: smoothstepOutputType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: edge0, b: edge1, c: x } = inputs;\n return [`${outputs.smoothstep} = smoothstep(${edge0}, ${edge1}, ${x});`];\n };\n }\n}\n\nexport class IsNan extends UnaryOp<\n A,\n IsNanOutput,\n \"isNan\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isNan\", outTypeFunc: isNanOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isNan} = isNan(${inputs.a});`];\n };\n }\n}\n\nexport class IsInf extends UnaryOp<\n A,\n IsInfOutput,\n \"isInf\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"isInf\", outTypeFunc: isInfOutputType });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.isInf} = isInf(${inputs.a});`];\n };\n }\n}\n","import { BinaryOp, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type AllIntTypes,\n type BoolTypes,\n type IntTypes,\n type ScalarTypes,\n type SimpleTypes,\n type UintTypes,\n type ValueTypes,\n isBoolType,\n isIntType,\n isScalarType,\n isUintType,\n isVector2Type,\n isVector3Type,\n} from \"./types\";\nimport { type DynoVal, valType } from \"./value\";\n\nexport const and = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new And({ a, b });\nexport const or = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Or({ a, b });\nexport const xor = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Xor({ a, b });\nexport const not = (\n a: DynoVal,\n): DynoVal => new Not({ a });\n\nexport const shr = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shr({ a, b });\n\nexport const shl = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new Shl({ a, b });\n\nexport const lessThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThan({ a, b });\nexport const lessThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new LessThanEqual({ a, b });\nexport const greaterThan = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThan({ a, b });\nexport const greaterThanEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new GreaterThanEqual({ a, b });\nexport const equal = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Equal({ a, b });\nexport const notEqual = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new NotEqual({ a, b });\n\nexport const any = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new Any({ a });\nexport const all = (\n a: DynoVal,\n): DynoVal<\"bool\"> => new All({ a });\nexport const select = (\n cond: DynoVal<\"bool\">,\n t: DynoVal,\n f: DynoVal,\n): DynoVal => new Select({ cond, t, f });\n\nexport const compXor = (\n a: DynoVal,\n): DynoVal> => new CompXor({ a });\n\nexport class And extends BinaryOp<\n T,\n T,\n T,\n \"and\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"and\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.and === \"bool\") {\n return [`${outputs.and} = ${inputs.a} && ${inputs.b};`];\n }\n return [`${outputs.and} = ${inputs.a} & ${inputs.b};`];\n };\n }\n}\n\nexport class Or extends BinaryOp<\n T,\n T,\n T,\n \"or\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"or\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.or === \"bool\") {\n return [`${outputs.or} = ${inputs.a} || ${inputs.b};`];\n }\n return [`${outputs.or} = ${inputs.a} | ${inputs.b};`];\n };\n }\n}\n\nexport class Xor extends BinaryOp<\n T,\n T,\n T,\n \"xor\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"xor\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.xor === \"bool\") {\n return [`${outputs.xor} = ${inputs.a} ^^ ${inputs.b};`];\n }\n return [`${outputs.xor} = ${inputs.a} ^ ${inputs.b};`];\n };\n }\n}\n\nexport class Not extends UnaryOp<\n T,\n T,\n \"not\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => aType, outKey: \"not\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.not === \"bool\") {\n return [`${outputs.not} = !${inputs.a};`];\n }\n return [`${outputs.not} = not(${inputs.a});`];\n };\n }\n}\n\nexport class LessThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) => compareOutputType(aType, \"lessThan\"),\n outKey: \"lessThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThan === \"bool\") {\n return [`${outputs.lessThan} = ${inputs.a} < ${inputs.b};`];\n }\n return [`${outputs.lessThan} = lessThan(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class LessThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"lessThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"lessThanEqual\"),\n outKey: \"lessThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.lessThanEqual === \"bool\") {\n return [`${outputs.lessThanEqual} = ${inputs.a} <= ${inputs.b};`];\n }\n return [\n `${outputs.lessThanEqual} = lessThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThan extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThan\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThan\"),\n outKey: \"greaterThan\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThan === \"bool\") {\n return [`${outputs.greaterThan} = ${inputs.a} > ${inputs.b};`];\n }\n return [\n `${outputs.greaterThan} = greaterThan(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class GreaterThanEqual extends BinaryOp<\n T,\n T,\n CompareOutput,\n \"greaterThanEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({\n a,\n b,\n outTypeFunc: (aType: T, bType: T) =>\n compareOutputType(aType, \"greaterThanEqual\"),\n outKey: \"greaterThanEqual\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.greaterThanEqual === \"bool\") {\n return [`${outputs.greaterThanEqual} = ${inputs.a} >= ${inputs.b};`];\n }\n return [\n `${outputs.greaterThanEqual} = greaterThanEqual(${inputs.a}, ${inputs.b});`,\n ];\n };\n }\n}\n\nexport class Equal extends BinaryOp<\n T,\n T,\n EqualOutput,\n \"equal\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: equalOutputType, outKey: \"equal\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.equal === \"bool\") {\n return [`${outputs.equal} = ${inputs.a} == ${inputs.b};`];\n }\n return [`${outputs.equal} = equal(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class NotEqual extends BinaryOp<\n T,\n T,\n NotEqualOutput,\n \"notEqual\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: notEqualOutputType, outKey: \"notEqual\" });\n this.statements = ({ inputs, outputs }) => {\n if (this.outTypes.notEqual === \"bool\") {\n return [`${outputs.notEqual} = ${inputs.a} != ${inputs.b};`];\n }\n return [`${outputs.notEqual} = notEqual(${inputs.a}, ${inputs.b});`];\n };\n }\n}\n\nexport class Any extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"any\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.any} = any(${inputs.a});`];\n };\n }\n}\n\nexport class All extends UnaryOp {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType: T) => \"bool\", outKey: \"all\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.all} = all(${inputs.a});`];\n };\n }\n}\n\nexport class Select extends TrinaryOp<\n \"bool\",\n T,\n T,\n T,\n \"select\"\n> {\n constructor({\n cond,\n t,\n f,\n }: { cond: DynoVal<\"bool\">; t: DynoVal; f: DynoVal }) {\n super({\n a: cond,\n b: t,\n c: f,\n outKey: \"select\",\n outTypeFunc: (aType: \"bool\", bType: T, cType: T) => bType,\n });\n this.statements = ({ inputs, outputs }) => {\n const { a: cond, b: t, c: f } = inputs;\n return [`${outputs.select} = (${cond}) ? (${t}) : (${f});`];\n };\n }\n}\n\ntype CompareOutput = T extends ScalarTypes\n ? \"bool\"\n : T extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : T extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : T extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction compareOutputType(\n type: T,\n operator: string,\n): CompareOutput {\n if (isScalarType(type)) {\n return \"bool\" as CompareOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as CompareOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as CompareOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as CompareOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype EqualOutput = A extends ScalarTypes\n ? \"bool\"\n : A extends BoolTypes\n ? A\n : A extends \"ivec2\" | \"uvec2\" | \"vec2\"\n ? \"bvec2\"\n : A extends \"ivec3\" | \"uvec3\" | \"vec3\"\n ? \"bvec3\"\n : A extends \"ivec4\" | \"uvec4\" | \"vec4\"\n ? \"bvec4\"\n : never;\n\nfunction equalOutputType(\n type: A,\n operator = \"equal\",\n): EqualOutput {\n if (isScalarType(type)) {\n return \"bool\" as EqualOutput;\n }\n if (isBoolType(type)) {\n return type as EqualOutput;\n }\n if (type === \"ivec2\" || type === \"uvec2\" || type === \"vec2\") {\n return \"bvec2\" as EqualOutput;\n }\n if (type === \"ivec3\" || type === \"uvec3\" || type === \"vec3\") {\n return \"bvec3\" as EqualOutput;\n }\n if (type === \"ivec4\" || type === \"uvec4\" || type === \"vec4\") {\n return \"bvec4\" as EqualOutput;\n }\n throw new Error(`Invalid ${operator} type: ${type}`);\n}\n\ntype NotEqualOutput = EqualOutput;\n\nfunction notEqualOutputType(\n type: A,\n): NotEqualOutput {\n return equalOutputType(type, \"notEqual\");\n}\n\ntype CompXorOutput = A extends BoolTypes\n ? \"bool\"\n : A extends IntTypes\n ? \"int\"\n : A extends UintTypes\n ? \"uint\"\n : never;\n\nfunction compXorOutputType(\n type: A,\n): CompXorOutput {\n if (isBoolType(type)) {\n return \"bool\" as CompXorOutput;\n }\n if (isIntType(type)) {\n return \"int\" as CompXorOutput;\n }\n if (isUintType(type)) {\n return \"uint\" as CompXorOutput;\n }\n throw new Error(`Invalid compXor type: ${type}`);\n}\n\nexport class CompXor extends UnaryOp<\n T,\n CompXorOutput,\n \"compXor\"\n> {\n constructor({ a }: { a: DynoVal }) {\n const outType = compXorOutputType(valType(a));\n super({ a, outTypeFunc: (aType: T) => outType, outKey: \"compXor\" });\n this.statements = ({ inputs, outputs }) => {\n if (isScalarType(this.outTypes.compXor)) {\n return [`${outputs.compXor} = ${inputs.a};`];\n }\n const components = isVector2Type(outType)\n ? [\"x\", \"y\"]\n : isVector3Type(outType)\n ? [\"x\", \"y\", \"z\"]\n : [\"x\", \"y\", \"z\", \"w\"];\n const operands = components.map((c) => `${inputs.a}.${c}`);\n const operator = isBoolType(outType) ? \"^^\" : \"^\";\n return [`${outputs.compXor} = ${operands.join(` ${operator} `)};`];\n };\n }\n}\n\nexport class Shr extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shr\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shr} = ${inputs.a} >> ${inputs.b};`];\n };\n }\n}\n\nexport class Shl extends BinaryOp {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outTypeFunc: (aType: T, bType: T) => aType, outKey: \"shl\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.shl} = ${inputs.a} << ${inputs.b};`];\n };\n }\n}\n","import { UnaryOp } from \"./base\";\nimport { type SimpleTypes, typeLiteral } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const bool = (\n value: DynoVal,\n): DynoVal<\"bool\"> => new Bool({ value });\nexport const int = (\n value: DynoVal,\n): DynoVal<\"int\"> => new Int({ value });\nexport const uint = (\n value: DynoVal,\n): DynoVal<\"uint\"> => new Uint({ value });\nexport const float = (\n value: DynoVal,\n): DynoVal<\"float\"> => new Float({ value });\n\nexport const bvec2 = (\n value: DynoVal,\n): DynoVal<\"bvec2\"> => new BVec2({ value });\nexport const bvec3 = (\n value: DynoVal,\n): DynoVal<\"bvec3\"> => new BVec3({ value });\nexport const bvec4 = (\n value: DynoVal,\n): DynoVal<\"bvec4\"> => new BVec4({ value });\n\nexport const ivec2 = (\n value: DynoVal,\n): DynoVal<\"ivec2\"> => new IVec2({ value });\nexport const ivec3 = (\n value: DynoVal,\n): DynoVal<\"ivec3\"> => new IVec3({ value });\nexport const ivec4 = (\n value: DynoVal,\n): DynoVal<\"ivec4\"> => new IVec4({ value });\n\nexport const uvec2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => new UVec2({ value });\nexport const uvec3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => new UVec3({ value });\nexport const uvec4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => new UVec4({ value });\n\nexport const vec2 = <\n T extends \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec2\"> => new Vec2({ value });\nexport const vec3 = <\n T extends \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec4\",\n>(\n value: DynoVal,\n): DynoVal<\"vec3\"> => new Vec3({ value });\nexport const vec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => new Vec4({ value });\n\nexport const mat2 = (\n value: DynoVal,\n): DynoVal<\"mat2\"> => new Mat2({ value });\nexport const mat3 = (\n value: DynoVal,\n): DynoVal<\"mat3\"> => new Mat3({ value });\nexport const mat4 = (\n value: DynoVal,\n): DynoVal<\"mat4\"> => new Mat4({ value });\n\nexport const floatBitsToInt = (value: DynoVal<\"float\">): DynoVal<\"int\"> =>\n new FloatBitsToInt({ value });\nexport const floatBitsToUint = (value: DynoVal<\"float\">): DynoVal<\"uint\"> =>\n new FloatBitsToUint({ value });\nexport const intBitsToFloat = (value: DynoVal<\"int\">): DynoVal<\"float\"> =>\n new IntBitsToFloat({ value });\nexport const uintBitsToFloat = (value: DynoVal<\"uint\">): DynoVal<\"float\"> =>\n new UintBitsToFloat({ value });\n\nexport const packSnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackSnorm2x16({ value });\nexport const unpackSnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackSnorm2x16({ value });\nexport const packUnorm2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackUnorm2x16({ value });\nexport const unpackUnorm2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackUnorm2x16({ value });\n\nexport const packHalf2x16 = (value: DynoVal<\"vec2\">): DynoVal<\"uint\"> =>\n new PackHalf2x16({ value });\nexport const unpackHalf2x16 = (value: DynoVal<\"uint\">): DynoVal<\"vec2\"> =>\n new UnpackHalf2x16({ value });\n\nexport const uintToRgba8 = (value: DynoVal<\"uint\">): DynoVal<\"vec4\"> =>\n new UintToRgba8({ value });\n\nexport class SimpleCast<\n Allowed extends SimpleTypes,\n OutType extends SimpleTypes,\n OutKey extends string,\n> extends UnaryOp {\n constructor({\n value,\n outType,\n outKey,\n }: { value: DynoVal; outType: OutType; outKey: OutKey }) {\n super({ a: value, outTypeFunc: () => outType, outKey });\n this.statements = ({ inputs, outputs }) => [\n `${outputs[outKey]} = ${typeLiteral(outType)}(${inputs.a});`,\n ];\n }\n}\n\nexport class Bool extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"bool\",\n \"bool\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"bool\", outKey: \"bool\" });\n }\n}\n\nexport class Int extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"int\",\n \"int\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"int\", outKey: \"int\" });\n }\n}\n\nexport class Uint extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"uint\",\n \"uint\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"uint\", outKey: \"uint\" });\n }\n}\n\nexport class Float extends SimpleCast<\n \"bool\" | \"int\" | \"uint\" | \"float\",\n \"float\",\n \"float\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"int\" | \"uint\" | \"float\"> }) {\n super({ value, outType: \"float\", outKey: \"float\" });\n }\n}\n\nexport class BVec2 extends SimpleCast<\n \"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"bvec2\",\n \"bvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"bvec2\", outKey: \"bvec2\" });\n }\n}\n\nexport class BVec3 extends SimpleCast<\n \"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"bvec3\",\n \"bvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"bvec3\", outKey: \"bvec3\" });\n }\n}\n\nexport class BVec4 extends SimpleCast<\n \"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"bvec4\",\n \"bvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"bool\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"bvec4\", outKey: \"bvec4\" });\n }\n}\n\nexport class IVec2 extends SimpleCast<\n \"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\",\n \"ivec2\",\n \"ivec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"ivec2\", outKey: \"ivec2\" });\n }\n}\n\nexport class IVec3 extends SimpleCast<\n \"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\",\n \"ivec3\",\n \"ivec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"ivec3\", outKey: \"ivec3\" });\n }\n}\n\nexport class IVec4 extends SimpleCast<\n \"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"ivec4\",\n \"ivec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"int\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"ivec4\", outKey: \"ivec4\" });\n }\n}\n\nexport class UVec2 extends SimpleCast<\n \"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\",\n \"uvec2\",\n \"uvec2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec2\" | \"bvec2\" | \"uvec2\" | \"vec2\"> }) {\n super({ value, outType: \"uvec2\", outKey: \"uvec2\" });\n }\n}\n\nexport class UVec3 extends SimpleCast<\n \"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\",\n \"uvec3\",\n \"uvec3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec3\" | \"bvec3\" | \"uvec3\" | \"vec3\"> }) {\n super({ value, outType: \"uvec3\", outKey: \"uvec3\" });\n }\n}\n\nexport class UVec4 extends SimpleCast<\n \"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\",\n \"uvec4\",\n \"uvec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"uint\" | \"ivec4\" | \"bvec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"uvec4\", outKey: \"uvec4\" });\n }\n}\n\nexport class Vec2 extends SimpleCast<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\",\n \"vec2\",\n \"vec2\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec2\" | \"ivec2\" | \"uvec2\" | \"vec2\" | \"vec3\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec2\", outKey: \"vec2\" });\n }\n}\n\nexport class Vec3 extends SimpleCast<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\",\n \"vec3\",\n \"vec3\"\n> {\n constructor({\n value,\n }: {\n value: DynoVal<\n \"float\" | \"bvec3\" | \"ivec3\" | \"uvec3\" | \"vec3\" | \"vec2\" | \"vec4\"\n >;\n }) {\n super({ value, outType: \"vec3\", outKey: \"vec3\" });\n }\n}\n\nexport class Vec4 extends SimpleCast<\n \"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\",\n \"vec4\",\n \"vec4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"bvec4\" | \"ivec4\" | \"uvec4\" | \"vec4\"> }) {\n super({ value, outType: \"vec4\", outKey: \"vec4\" });\n }\n}\n\nexport class Mat2 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat2\",\n \"mat2\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat2\", outKey: \"mat2\" });\n }\n}\n\nexport class Mat3 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat3\",\n \"mat3\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat3\", outKey: \"mat3\" });\n }\n}\n\nexport class Mat4 extends SimpleCast<\n \"float\" | \"mat2\" | \"mat3\" | \"mat4\",\n \"mat4\",\n \"mat4\"\n> {\n constructor({\n value,\n }: { value: DynoVal<\"float\" | \"mat2\" | \"mat3\" | \"mat4\"> }) {\n super({ value, outType: \"mat4\", outKey: \"mat4\" });\n }\n}\n\nexport class FloatBitsToInt extends UnaryOp<\"float\", \"int\", \"int\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"int\", outTypeFunc: () => \"int\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.int} = floatBitsToInt(${inputs.a});`];\n };\n }\n}\n\nexport class FloatBitsToUint extends UnaryOp<\"float\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"float\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = floatBitsToUint(${inputs.a});`];\n };\n }\n}\n\nexport class IntBitsToFloat extends UnaryOp<\"int\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"int\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = intBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class UintBitsToFloat extends UnaryOp<\"uint\", \"float\", \"float\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"float\", outTypeFunc: () => \"float\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.float} = uintBitsToFloat(${inputs.a});`];\n };\n }\n}\n\nexport class PackSnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackSnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackSnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackUnorm2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackUnorm2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackUnorm2x16(${inputs.a});`];\n };\n }\n}\n\nexport class PackHalf2x16 extends UnaryOp<\"vec2\", \"uint\", \"uint\"> {\n constructor({ value }: { value: DynoVal<\"vec2\"> }) {\n super({ a: value, outKey: \"uint\", outTypeFunc: () => \"uint\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.uint} = packHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UnpackHalf2x16 extends UnaryOp<\"uint\", \"vec2\", \"vec2\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"vec2\", outTypeFunc: () => \"vec2\" });\n this.statements = ({ inputs, outputs }) => {\n return [`${outputs.vec2} = unpackHalf2x16(${inputs.a});`];\n };\n }\n}\n\nexport class UintToRgba8 extends UnaryOp<\"uint\", \"vec4\", \"rgba8\"> {\n constructor({ value }: { value: DynoVal<\"uint\"> }) {\n super({ a: value, outKey: \"rgba8\", outTypeFunc: () => \"vec4\" });\n this.statements = ({ inputs, outputs }) => {\n return [\n `uvec4 uRgba = uvec4(${inputs.a} & 0xffu, (${inputs.a} >> 8u) & 0xffu, (${inputs.a} >> 16u) & 0xffu, (${inputs.a} >> 24u) & 0xffu);`,\n `${outputs.rgba8} = vec4(uRgba) / 255.0;`,\n ];\n };\n }\n}\n","import { BinaryOp, Dyno, TrinaryOp, UnaryOp } from \"./base\";\nimport {\n type FloatTypes,\n type IntTypes,\n type MatFloatTypes,\n type SquareMatTypes,\n type UintTypes,\n type VectorElementType,\n type VectorTypes,\n isFloatType,\n isIntType,\n isUintType,\n vectorDim,\n vectorElementType,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n literalZero,\n valType,\n} from \"./value\";\n\nexport const length = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Length({ a });\nexport const distance = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Distance({ a, b });\nexport const dot = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal<\"float\"> => new Dot({ a, b });\nexport const cross = (\n a: DynoVal<\"vec3\">,\n b: DynoVal<\"vec3\">,\n): DynoVal<\"vec3\"> => new Cross({ a, b });\nexport const normalize = (\n a: DynoVal,\n): DynoVal => new Normalize({ a });\nexport const faceforward = (\n a: DynoVal,\n b: DynoVal,\n c: DynoVal,\n): DynoVal => new FaceForward({ a, b, c });\nexport const reflectVec = (\n incident: DynoVal,\n normal: DynoVal,\n): DynoVal => new ReflectVec({ incident, normal });\nexport const refractVec = (\n incident: DynoVal,\n normal: DynoVal,\n eta: DynoVal<\"float\">,\n): DynoVal => new RefractVec({ incident, normal, eta });\nexport const split = (vector: DynoVal): Split =>\n new Split({ vector });\nexport const combine = >({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n}: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n}): DynoVal => new Combine({ vector, vectorType, x, y, z, w, r, g, b, a });\nexport const projectH = (\n a: DynoVal,\n): DynoVal> => new ProjectH({ a });\nexport const extendVec = (\n a: DynoVal,\n b: DynoVal<\"float\">,\n): DynoVal> => new ExtendVec({ a, b });\nexport const swizzle = (\n a: DynoVal,\n select: S,\n): DynoVal>> =>\n new Swizzle({ vector: a, select });\nexport const compMult = (\n a: DynoVal,\n b: DynoVal,\n): DynoVal => new CompMult({ a, b });\nexport const outer = <\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(\n a: DynoVal,\n b: DynoVal,\n): DynoVal> => new Outer({ a, b });\nexport const transpose = (\n a: DynoVal,\n): DynoVal> => new Transpose({ a });\nexport const determinant = (\n a: DynoVal,\n): DynoVal<\"float\"> => new Determinant({ a });\nexport const inverse = (a: DynoVal): DynoVal =>\n new Inverse({ a });\n\nexport class Length extends UnaryOp<\n A,\n \"float\",\n \"length\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => \"float\", outKey: \"length\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.length} = length(${inputs.a});`,\n ];\n }\n}\n\nexport class Distance extends BinaryOp<\n A,\n A,\n \"float\",\n \"distance\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"distance\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.distance} = distance(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Dot extends BinaryOp<\n A,\n A,\n \"float\",\n \"dot\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"dot\", outTypeFunc: (aType, bType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.dot} = dot(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Cross extends BinaryOp<\"vec3\", \"vec3\", \"vec3\", \"cross\"> {\n constructor({ a, b }: { a: DynoVal<\"vec3\">; b: DynoVal<\"vec3\"> }) {\n super({ a, b, outKey: \"cross\", outTypeFunc: (aType, bType) => \"vec3\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cross} = cross(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Normalize extends UnaryOp<\n A,\n A,\n \"normalize\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outTypeFunc: (aType) => aType, outKey: \"normalize\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.normalize} = normalize(${inputs.a});`,\n ];\n }\n}\n\ntype ProjectHOutput = A extends \"vec3\"\n ? \"vec2\"\n : A extends \"vec4\"\n ? \"vec3\"\n : never;\n\nfunction projectHOutputType(\n type: A,\n): ProjectHOutput {\n if (type === \"vec3\") {\n return \"vec2\" as ProjectHOutput;\n }\n if (type === \"vec4\") {\n return \"vec3\" as ProjectHOutput;\n }\n throw new Error(\"Invalid type\");\n}\n\nexport class ProjectH extends UnaryOp<\n A,\n ProjectHOutput,\n \"projected\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({\n a,\n outTypeFunc: (aType) => projectHOutputType(aType),\n outKey: \"projected\",\n });\n this.statements = ({ inputs, outputs }) => {\n if (this.inTypes.a === \"vec3\") {\n return [`${outputs.projected} = ${inputs.a}.xy / ${inputs.a}.z;`];\n }\n if (this.inTypes.a === \"vec4\") {\n return [`${outputs.projected} = ${inputs.a}.xyz / ${inputs.a}.w;`];\n }\n throw new Error(\"Invalid type\");\n };\n }\n}\n\ntype ExtendVecOutput = A extends \"float\"\n ? \"vec2\"\n : A extends \"vec2\"\n ? \"vec3\"\n : A extends \"vec3\"\n ? \"vec4\"\n : never;\n\nfunction extendVecOutputType(\n type: A,\n): ExtendVecOutput {\n if (type === \"float\") return \"vec2\" as ExtendVecOutput;\n if (type === \"vec2\") return \"vec3\" as ExtendVecOutput;\n if (type === \"vec3\") return \"vec4\" as ExtendVecOutput;\n throw new Error(\"Invalid type\");\n}\n\nexport class ExtendVec extends BinaryOp<\n A,\n \"float\",\n ExtendVecOutput,\n \"extend\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal<\"float\"> }) {\n const type = valType(a);\n const outType = extendVecOutputType(type);\n super({ a, b, outKey: \"extend\", outTypeFunc: () => outType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.extend} = ${outType}(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class FaceForward extends TrinaryOp<\n A,\n A,\n A,\n A,\n \"forward\"\n> {\n constructor({ a, b, c }: { a: DynoVal; b: DynoVal; c: DynoVal }) {\n super({\n a,\n b,\n c,\n outKey: \"forward\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.forward} = faceforward(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class ReflectVec extends BinaryOp<\n A,\n A,\n A,\n \"reflection\"\n> {\n constructor({\n incident,\n normal,\n }: { incident: DynoVal; normal: DynoVal }) {\n super({\n a: incident,\n b: normal,\n outKey: \"reflection\",\n outTypeFunc: (aType, bType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.reflection} = reflect(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class RefractVec extends TrinaryOp<\n A,\n A,\n \"float\",\n A,\n \"refraction\"\n> {\n constructor({\n incident,\n normal,\n eta,\n }: { incident: DynoVal; normal: DynoVal; eta: DynoVal<\"float\"> }) {\n super({\n a: incident,\n b: normal,\n c: eta,\n outKey: \"refraction\",\n outTypeFunc: (aType, bType, cType) => aType,\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.refraction} = refract(${inputs.a}, ${inputs.b}, ${inputs.c});`,\n ];\n }\n}\n\nexport class CompMult extends BinaryOp<\n A,\n A,\n A,\n \"product\"\n> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"product\", outTypeFunc: (aType, bType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.product} = matrixCompMult(${a}, ${b});`,\n ];\n }\n}\n\ntype OuterOutput<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> = A extends \"vec2\"\n ? B extends \"vec2\"\n ? \"mat2\"\n : B extends \"vec3\"\n ? \"mat3x2\"\n : B extends \"vec4\"\n ? \"mat4x2\"\n : never\n : A extends \"vec3\"\n ? B extends \"vec2\"\n ? \"mat2x3\"\n : B extends \"vec3\"\n ? \"mat3\"\n : B extends \"vec4\"\n ? \"mat4x3\"\n : never\n : A extends \"vec4\"\n ? B extends \"vec2\"\n ? \"mat2x4\"\n : B extends \"vec3\"\n ? \"mat3x4\"\n : B extends \"vec4\"\n ? \"mat4\"\n : never\n : never;\n\nfunction outerOutputType<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n>(aType: A, bType: B): OuterOutput {\n if (aType === \"vec2\") {\n if (bType === \"vec2\") return \"mat2\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x2\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x2\" as OuterOutput;\n }\n if (aType === \"vec3\") {\n if (bType === \"vec2\") return \"mat2x3\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4x3\" as OuterOutput;\n }\n if (aType === \"vec4\") {\n if (bType === \"vec2\") return \"mat2x4\" as OuterOutput;\n if (bType === \"vec3\") return \"mat3x4\" as OuterOutput;\n if (bType === \"vec4\") return \"mat4\" as OuterOutput;\n }\n throw new Error(`Invalid outer type: ${aType}, ${bType}`);\n}\n\nexport class Outer<\n A extends \"vec2\" | \"vec3\" | \"vec4\",\n B extends \"vec2\" | \"vec3\" | \"vec4\",\n> extends BinaryOp, \"outer\"> {\n constructor({ a, b }: { a: DynoVal; b: DynoVal }) {\n super({ a, b, outKey: \"outer\", outTypeFunc: outerOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.outer} = outerProduct(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\ntype TransposeOutput = A extends SquareMatTypes\n ? A\n : A extends \"mat2x3\"\n ? \"mat3x2\"\n : A extends \"mat2x4\"\n ? \"mat4x2\"\n : A extends \"mat3x2\"\n ? \"mat2x3\"\n : A extends \"mat3x4\"\n ? \"mat4x3\"\n : A extends \"mat4x2\"\n ? \"mat2x4\"\n : A extends \"mat4x3\"\n ? \"mat3x4\"\n : never;\n\nfunction transposeOutputType(\n type: A,\n): TransposeOutput {\n if (type === \"mat2\") return \"mat2\" as TransposeOutput;\n if (type === \"mat3\") return \"mat3\" as TransposeOutput;\n if (type === \"mat4\") return \"mat4\" as TransposeOutput;\n if (type === \"mat2x2\") return \"mat2x2\" as TransposeOutput;\n if (type === \"mat2x3\") return \"mat3x2\" as TransposeOutput;\n if (type === \"mat2x4\") return \"mat4x2\" as TransposeOutput;\n if (type === \"mat3x2\") return \"mat2x3\" as TransposeOutput;\n if (type === \"mat3x3\") return \"mat3x3\" as TransposeOutput;\n if (type === \"mat3x4\") return \"mat4x3\" as TransposeOutput;\n if (type === \"mat4x2\") return \"mat2x4\" as TransposeOutput;\n if (type === \"mat4x3\") return \"mat3x4\" as TransposeOutput;\n if (type === \"mat4x4\") return \"mat4x4\" as TransposeOutput;\n throw new Error(`Invalid transpose type: ${type}`);\n}\n\nexport class Transpose extends UnaryOp<\n A,\n TransposeOutput,\n \"transpose\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"transpose\", outTypeFunc: transposeOutputType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.transpose} = transpose(${inputs.a});`,\n ];\n }\n}\n\nexport class Determinant extends UnaryOp<\n A,\n \"float\",\n \"det\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"det\", outTypeFunc: (aType) => \"float\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.det} = determinant(${inputs.a});`,\n ];\n }\n}\n\nexport class Inverse extends UnaryOp<\n A,\n A,\n \"inverse\"\n> {\n constructor({ a }: { a: DynoVal }) {\n super({ a, outKey: \"inverse\", outTypeFunc: (aType) => aType });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.inverse} = inverse(${a});`,\n ];\n }\n}\n\ntype SplitOutTypes = A extends \"vec2\"\n ? { x: \"float\"; y: \"float\"; r: \"float\"; g: \"float\" }\n : A extends \"vec3\"\n ? { x: \"float\"; y: \"float\"; z: \"float\"; r: \"float\"; g: \"float\"; b: \"float\" }\n : A extends \"vec4\"\n ? {\n x: \"float\";\n y: \"float\";\n z: \"float\";\n w: \"float\";\n r: \"float\";\n g: \"float\";\n b: \"float\";\n a: \"float\";\n }\n : A extends \"ivec2\"\n ? { x: \"int\"; y: \"int\"; r: \"int\"; g: \"int\" }\n : A extends \"ivec3\"\n ? { x: \"int\"; y: \"int\"; z: \"int\"; r: \"int\"; g: \"int\"; b: \"int\" }\n : A extends \"ivec4\"\n ? {\n x: \"int\";\n y: \"int\";\n z: \"int\";\n w: \"int\";\n r: \"int\";\n g: \"int\";\n b: \"int\";\n a: \"int\";\n }\n : A extends \"uvec2\"\n ? { x: \"uint\"; y: \"uint\"; r: \"uint\"; g: \"uint\" }\n : A extends \"uvec3\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n }\n : A extends \"uvec4\"\n ? {\n x: \"uint\";\n y: \"uint\";\n z: \"uint\";\n w: \"uint\";\n r: \"uint\";\n g: \"uint\";\n b: \"uint\";\n a: \"uint\";\n }\n : never;\n\nfunction splitOutTypes(type: A): SplitOutTypes {\n const result = (value: unknown) => value as SplitOutTypes;\n switch (type) {\n case \"vec2\":\n return result({ x: \"float\", y: \"float\", r: \"float\", g: \"float\" });\n case \"vec3\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n });\n case \"vec4\":\n return result({\n x: \"float\",\n y: \"float\",\n z: \"float\",\n w: \"float\",\n r: \"float\",\n g: \"float\",\n b: \"float\",\n a: \"float\",\n });\n case \"ivec2\":\n return result({ x: \"int\", y: \"int\", r: \"int\", g: \"int\" });\n case \"ivec3\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n });\n case \"ivec4\":\n return result({\n x: \"int\",\n y: \"int\",\n z: \"int\",\n w: \"int\",\n r: \"int\",\n g: \"int\",\n b: \"int\",\n a: \"int\",\n });\n case \"uvec2\":\n return result({ x: \"uint\", y: \"uint\", r: \"uint\", g: \"uint\" });\n case \"uvec3\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n });\n case \"uvec4\":\n return result({\n x: \"uint\",\n y: \"uint\",\n z: \"uint\",\n w: \"uint\",\n r: \"uint\",\n g: \"uint\",\n b: \"uint\",\n a: \"uint\",\n });\n default:\n throw new Error(`Invalid vector type: ${type}`);\n }\n}\n\nexport class Split extends Dyno<\n { vector: V },\n SplitOutTypes\n> {\n constructor({ vector }: { vector: DynoVal }) {\n const type = valType(vector);\n const inTypes = { vector: type };\n const outTypes = splitOutTypes(inTypes.vector);\n super({ inTypes, outTypes, inputs: { vector } });\n this.statements = ({ inputs, outputs }) => {\n const { x, y, z, w, r, g, b, a } = outputs as unknown as Record<\n string,\n string\n >;\n const { vector } = inputs;\n return [\n x ? `${x} = ${vector}.x;` : null,\n y ? `${y} = ${vector}.y;` : null,\n z ? `${z} = ${vector}.z;` : null,\n w ? `${w} = ${vector}.w;` : null,\n r ? `${r} = ${vector}.r;` : null,\n g ? `${g} = ${vector}.g;` : null,\n b ? `${b} = ${vector}.b;` : null,\n a ? `${a} = ${vector}.a;` : null,\n ].filter(Boolean) as string[];\n };\n }\n}\n\nexport class Combine>\n extends Dyno & { vector: V }, { vector: V }>\n implements HasDynoOut\n{\n constructor({\n vector,\n vectorType,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n }: {\n vector?: DynoVal;\n vectorType?: V;\n x?: DynoVal;\n y?: DynoVal;\n z?: DynoVal;\n w?: DynoVal;\n r?: DynoVal;\n g?: DynoVal;\n b?: DynoVal;\n a?: DynoVal;\n }) {\n if (!vector && !vectorType) {\n throw new Error(\"Either vector or vectorType must be provided\");\n }\n const vType = vectorType ?? valType(vector as DynoVal);\n const elType = vectorElementType(vType);\n const dim = vectorDim(vType);\n\n const inTypes = {\n vector: vType,\n x: elType,\n y: elType,\n r: elType,\n g: elType,\n } as unknown as SplitOutTypes & { vector: V };\n const inputs = { vector, x, y, r, g };\n if (dim >= 3) {\n Object.assign(inTypes, { z: elType, b: elType });\n Object.assign(inputs, { z, b });\n }\n if (dim >= 4) {\n Object.assign(inTypes, { w: elType, a: elType });\n Object.assign(inputs, { w, a });\n }\n // @ts-ignore\n super({ inTypes, outTypes: { vector: vType }, inputs });\n this.statements = ({ inputs, outputs }) => {\n const { vector } = outputs;\n const {\n vector: input,\n x,\n y,\n z,\n w,\n r,\n g,\n b,\n a,\n } = inputs as Record;\n const statements = [\n `${vector}.x = ${x ?? r ?? (input ? `${input}.x` : literalZero(elType))};`,\n `${vector}.y = ${y ?? g ?? (input ? `${input}.y` : literalZero(elType))};`,\n ];\n if (dim >= 3)\n statements.push(\n `${vector}.z = ${z ?? b ?? (input ? `${input}.z` : literalZero(elType))};`,\n );\n if (dim >= 4)\n statements.push(\n `${vector}.w = ${w ?? a ?? (input ? `${input}.w` : literalZero(elType))};`,\n );\n return statements;\n };\n }\n\n dynoOut(): DynoValue {\n return new DynoOutput & { vector: V }, { vector: V }>(\n this,\n \"vector\",\n );\n }\n}\n\ntype SwizzleOutput<\n A extends VectorTypes,\n Len extends number,\n> = A extends FloatTypes\n ? Len extends 1\n ? \"float\"\n : Len extends 2\n ? \"vec2\"\n : Len extends 3\n ? \"vec3\"\n : Len extends 4\n ? \"vec4\"\n : never\n : A extends IntTypes\n ? Len extends 1\n ? \"int\"\n : Len extends 2\n ? \"ivec2\"\n : Len extends 3\n ? \"ivec3\"\n : Len extends 4\n ? \"ivec4\"\n : never\n : A extends UintTypes\n ? Len extends 1\n ? \"uint\"\n : Len extends 2\n ? \"uvec2\"\n : Len extends 3\n ? \"uvec3\"\n : Len extends 4\n ? \"uvec4\"\n : never\n : never;\n\ntype SwizzleSelectLen = S extends Swizzle1Select\n ? 1\n : S extends Swizzle2Select\n ? 2\n : S extends Swizzle3Select\n ? 3\n : S extends Swizzle4Select\n ? 4\n : never;\n\nfunction swizzleOutputType(\n type: A,\n swizzle: S,\n): SwizzleOutput> {\n let result = null;\n if (isFloatType(type)) {\n result =\n swizzle.length === 1\n ? \"float\"\n : swizzle.length === 2\n ? \"vec2\"\n : swizzle.length === 3\n ? \"vec3\"\n : swizzle.length === 4\n ? \"vec4\"\n : null;\n } else if (isIntType(type)) {\n result =\n swizzle.length === 1\n ? \"int\"\n : swizzle.length === 2\n ? \"ivec2\"\n : swizzle.length === 3\n ? \"ivec3\"\n : swizzle.length === 4\n ? \"ivec4\"\n : null;\n } else if (isUintType(type)) {\n result =\n swizzle.length === 1\n ? \"uint\"\n : swizzle.length === 2\n ? \"uvec2\"\n : swizzle.length === 3\n ? \"uvec3\"\n : swizzle.length === 4\n ? \"uvec4\"\n : null;\n }\n if (result == null) {\n throw new Error(`Invalid swizzle: ${swizzle}`);\n }\n return result as SwizzleOutput>;\n}\n\ntype Swizzle1Select = `${\"x\" | \"y\" | \"z\" | \"w\"}|${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle2Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle3Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype Swizzle4Select =\n | `${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}${\"x\" | \"y\" | \"z\" | \"w\"}`\n | `${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}${\"r\" | \"g\" | \"b\" | \"a\"}`;\ntype SwizzleSelect =\n | Swizzle1Select\n | Swizzle2Select\n | Swizzle3Select\n | Swizzle4Select;\n\nexport class Swizzle<\n A extends VectorTypes,\n S extends SwizzleSelect,\n> extends UnaryOp>, \"swizzle\"> {\n constructor({ vector, select }: { vector: DynoVal; select: S }) {\n super({\n a: vector,\n outKey: \"swizzle\",\n outTypeFunc: (aType) => swizzleOutputType(aType, select),\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.swizzle} = ${inputs.a}.${select};`,\n ];\n }\n}\n","import { Dyno, DynoBlock, unindent } from \"./base\";\nimport { float, vec2, vec3, vec4 } from \"./convert\";\nimport { mul } from \"./math\";\nimport { type ValueTypes, isIntType, isUintType, sameSizeUvec } from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n dynoConst,\n valType,\n} from \"./value\";\nimport { combine } from \"./vecmat\";\n\nexport const remapIndex = (\n index: DynoVal<\"int\">,\n from: DynoVal<\"int\">,\n to: DynoVal<\"int\">,\n): DynoVal<\"int\"> => {\n return new DynoRemapIndex({ index, from, to });\n};\nexport const pcgMix = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new PcgMix({ value });\n};\nexport const pcgNext = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgNext({ state });\n};\nexport const pcgHash = (state: DynoVal<\"uint\">): DynoVal<\"uint\"> => {\n return new PcgHash({ state });\n};\nexport const hash = (\n value: DynoVal,\n): DynoVal<\"uint\"> => {\n return new Hash({ value });\n};\nexport const hash2 = (\n value: DynoVal,\n): DynoVal<\"uvec2\"> => {\n return new Hash2({ value });\n};\nexport const hash3 = (\n value: DynoVal,\n): DynoVal<\"uvec3\"> => {\n return new Hash3({ value });\n};\nexport const hash4 = (\n value: DynoVal,\n): DynoVal<\"uvec4\"> => {\n return new Hash4({ value });\n};\nexport const hashFloat = (\n value: DynoVal,\n): DynoVal<\"float\"> => {\n return new HashFloat({ value });\n};\nexport const hashVec2 = (\n value: DynoVal,\n): DynoVal<\"vec2\"> => {\n return new HashVec2({ value });\n};\nexport const hashVec3 = (\n value: DynoVal,\n): DynoVal<\"vec3\"> => {\n return new HashVec3({ value });\n};\nexport const hashVec4 = (\n value: DynoVal,\n): DynoVal<\"vec4\"> => {\n return new HashVec4({ value });\n};\nexport const normalizedDepth = (\n z: DynoVal<\"float\">,\n zNear: DynoVal<\"float\">,\n zFar: DynoVal<\"float\">,\n): DynoVal<\"float\"> => {\n return new NormalizedDepth({ z, zNear, zFar }).outputs.depth;\n};\n\nexport const debugColorHue = (index: DynoVal<\"int\">): DynoVal<\"vec3\"> => {\n return new DebugColorHue({ index });\n};\n\nexport class DynoRemapIndex\n extends Dyno<{ from: \"int\"; to: \"int\"; index: \"int\" }, { index: \"int\" }>\n implements HasDynoOut<\"int\">\n{\n constructor({\n from,\n to,\n index,\n }: { from: DynoVal<\"int\">; to: DynoVal<\"int\">; index: DynoVal<\"int\"> }) {\n super({\n inTypes: { from: \"int\", to: \"int\", index: \"int\" },\n outTypes: { index: \"int\" },\n inputs: { from, to, index },\n statements: ({ inputs, outputs }) => {\n return [\n `${outputs.index} = ${inputs.index} - ${inputs.from} + ${inputs.to};`,\n ];\n },\n });\n }\n\n dynoOut(): DynoValue<\"int\"> {\n return new DynoOutput(this, \"index\");\n }\n}\n\nexport class PcgNext\n extends Dyno<{ state: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal }) {\n const type = valType(state);\n super({\n inTypes: { state: type },\n outTypes: { state: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_next(uint state) {\n return state * 747796405u + 2891336453u;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUint =\n type === \"uint\"\n ? `${inputs.state}`\n : type === \"int\"\n ? `uint(${inputs.state})`\n : `floatBitsToUint(${inputs.state})`;\n return [`${outputs.state} = pcg_next(${toUint});`];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class PcgHash\n extends Dyno<{ state: \"uint\" }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ state }: { state: DynoVal<\"uint\"> }) {\n super({\n inTypes: { state: \"uint\" },\n outTypes: { hash: \"uint\" },\n inputs: { state },\n globals: () => [\n unindent(`\n uint pcg_hash(uint state) {\n uint hash = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u;\n return (hash >> 22u) ^ hash;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => [\n `${outputs.hash} = pcg_hash(${inputs.state});`,\n ],\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class PcgMix\n extends Dyno<{ value: T }, { state: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n const type = valType(value);\n const tempType = sameSizeUvec(type);\n super({\n inTypes: { value: type },\n outTypes: { state: \"uint\" },\n inputs: { value },\n globals: () => [\n unindent(`\n uint pcg_mix(uint value) {\n return value;\n }\n uint pcg_mix(uvec2 value) {\n return value.x + 0x9e3779b9u * value.y;\n }\n uint pcg_mix(uvec3 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z;\n }\n uint pcg_mix(uvec4 value) {\n return value.x + 0x9e3779b9u * value.y + 0x85ebca6bu * value.z + 0xc2b2ae35u * value.w;\n }\n `),\n ],\n statements: ({ inputs, outputs }) => {\n const toUvec = isUintType(type)\n ? `${inputs.value}`\n : isIntType(type)\n ? `${tempType}(${inputs.value})`\n : `floatBitsToUint(${inputs.value})`;\n return [\n `${tempType} bits = ${toUvec};`,\n `${outputs.state} = pcg_mix(bits);`,\n ];\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"state\");\n }\n}\n\nexport class Hash\n extends DynoBlock<{ value: T }, { hash: \"uint\" }>\n implements HasDynoOut<\"uint\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uint\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n return new PcgHash({ state }).outputs;\n },\n });\n }\n dynoOut(): DynoValue<\"uint\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash2\n extends DynoBlock<{ value: T }, { hash: \"uvec2\" }>\n implements HasDynoOut<\"uvec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec2\", x, y }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash3\n extends DynoBlock<{ value: T }, { hash: \"uvec3\" }>\n implements HasDynoOut<\"uvec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec3\", x, y, z }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class Hash4\n extends DynoBlock<{ value: T }, { hash: \"uvec4\" }>\n implements HasDynoOut<\"uvec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"uvec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n let state = new PcgMix({ value: value }).outputs.state;\n state = new PcgNext({ state }).outputs.state;\n const x = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const y = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const z = new PcgHash({ state }).outputs.hash;\n state = new PcgNext({ state }).outputs.state;\n const w = new PcgHash({ state }).outputs.hash;\n return { hash: combine({ vectorType: \"uvec4\", x, y, z, w }) };\n },\n });\n }\n dynoOut(): DynoValue<\"uvec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashFloat\n extends DynoBlock<{ value: T }, { hash: \"float\" }>\n implements HasDynoOut<\"float\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"float\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const word = hash(value);\n return { hash: mul(float(word), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec2\n extends DynoBlock<{ value: T }, { hash: \"vec2\" }>\n implements HasDynoOut<\"vec2\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec2\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash2(value);\n return { hash: mul(vec2(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec2\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec3\n extends DynoBlock<{ value: T }, { hash: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec3\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash3(value);\n return { hash: mul(vec3(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class HashVec4\n extends DynoBlock<{ value: T }, { hash: \"vec4\" }>\n implements HasDynoOut<\"vec4\">\n{\n constructor({ value }: { value: DynoVal }) {\n super({\n inTypes: { value: valType(value) },\n outTypes: { hash: \"vec4\" },\n inputs: { value },\n construct: ({ value }) => {\n if (!value) {\n throw new Error(\"value is required\");\n }\n const words = hash4(value);\n return { hash: mul(vec4(words), dynoConst(\"float\", 1 / 2 ** 32)) };\n },\n });\n }\n dynoOut(): DynoValue<\"vec4\"> {\n return new DynoOutput(this, \"hash\");\n }\n}\n\nexport class NormalizedDepth\n extends Dyno<\n { z: \"float\"; zNear: \"float\"; zFar: \"float\" },\n { depth: \"float\" }\n >\n implements HasDynoOut<\"float\">\n{\n constructor({\n z,\n zNear,\n zFar,\n }: { z: DynoVal<\"float\">; zNear: DynoVal<\"float\">; zFar: DynoVal<\"float\"> }) {\n super({\n inTypes: { z: \"float\", zNear: \"float\", zFar: \"float\" },\n outTypes: { depth: \"float\" },\n inputs: { z, zNear, zFar },\n statements: ({ inputs, outputs }) => [\n `float clamped = clamp(${inputs.z}, ${inputs.zNear}, ${inputs.zFar});`,\n `${outputs.depth} = (log2(clamped + 1.0) - log2(${inputs.zNear} + 1.0)) / (log2(${inputs.zFar} + 1.0) - log2(${inputs.zNear} + 1.0));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"float\"> {\n return new DynoOutput(this, \"depth\");\n }\n}\n\nexport class DebugColorHue\n extends Dyno<{ index: \"int\" }, { color: \"vec3\" }>\n implements HasDynoOut<\"vec3\">\n{\n constructor({ index }: { index: DynoVal<\"int\"> }) {\n super({\n inTypes: { index: \"int\" },\n outTypes: { color: \"vec3\" },\n inputs: { index },\n statements: ({ inputs, outputs }) => [\n `${outputs.color} = debugColorHue(uint(${inputs.index}));`,\n ],\n });\n }\n\n dynoOut(): DynoValue<\"vec3\"> {\n return new DynoOutput(this, \"color\");\n }\n}\n","import { Dyno } from \"./base\";\nimport type { DynoVal } from \"./value\";\n\nexport const transformPos = (\n position: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n translate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformPosition({ position, scale, scales, rotate, translate })\n .outputs.position;\n};\nexport const transformDir = (\n dir: DynoVal<\"vec3\">,\n {\n scale,\n scales,\n rotate,\n }: {\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n },\n): DynoVal<\"vec3\"> => {\n return new TransformDir({ dir, scale, scales, rotate }).outputs.dir;\n};\nexport const transformQuat = (\n quaternion: DynoVal<\"vec4\">,\n { rotate }: { rotate?: DynoVal<\"vec4\"> },\n): DynoVal<\"vec4\"> => {\n return new TransformQuaternion({ quaternion, rotate }).outputs.quaternion;\n};\n\nexport class TransformPosition extends Dyno<\n {\n position: \"vec3\";\n scale: \"float\";\n scales: \"vec3\";\n rotate: \"vec4\";\n translate: \"vec3\";\n },\n { position: \"vec3\" }\n> {\n constructor({\n position,\n scale,\n scales,\n rotate,\n translate,\n }: {\n position?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n translate?: DynoVal<\"vec3\">;\n }) {\n super({\n inTypes: {\n position: \"vec3\",\n scale: \"float\",\n scales: \"vec3\",\n rotate: \"vec4\",\n translate: \"vec3\",\n },\n outTypes: { position: \"vec3\" },\n inputs: { position, scale, scales, rotate, translate },\n statements: ({ inputs, outputs }) => {\n const { position } = outputs;\n if (!position) {\n return [];\n }\n const { scale, scales, rotate, translate } = inputs;\n return [\n `${position} = ${inputs.position ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${position} *= ${scale};`,\n !scales ? null : `${position} *= ${scales};`,\n !rotate ? null : `${position} = quatVec(${rotate}, ${position});`,\n !translate ? null : `${position} += ${translate};`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformDir extends Dyno<\n { dir: \"vec3\"; scale: \"float\"; scales: \"vec3\"; rotate: \"vec4\" },\n { dir: \"vec3\" }\n> {\n constructor({\n dir,\n scale,\n scales,\n rotate,\n }: {\n dir?: DynoVal<\"vec3\">;\n scale?: DynoVal<\"float\">;\n scales?: DynoVal<\"vec3\">;\n rotate?: DynoVal<\"vec4\">;\n }) {\n super({\n inTypes: { dir: \"vec3\", scale: \"float\", scales: \"vec3\", rotate: \"vec4\" },\n outTypes: { dir: \"vec3\" },\n inputs: { dir, scale, scales, rotate },\n statements: ({ inputs, outputs }) => {\n const { dir } = outputs;\n if (!dir) {\n return [];\n }\n const { scale, scales, rotate } = inputs;\n return [\n `${dir} = ${inputs.dir ?? \"vec3(0.0, 0.0, 0.0)\"};`,\n !scale ? null : `${dir} *= ${scale};`,\n !scales ? null : `${dir} *= ${scales};`,\n !rotate ? null : `${dir} = quatVec(${rotate}, ${dir});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n\nexport class TransformQuaternion extends Dyno<\n { quaternion: \"vec4\"; rotate: \"vec4\" },\n { quaternion: \"vec4\" }\n> {\n constructor({\n quaternion,\n rotate,\n }: { quaternion?: DynoVal<\"vec4\">; rotate?: DynoVal<\"vec4\"> }) {\n super({\n inTypes: { quaternion: \"vec4\", rotate: \"vec4\" },\n outTypes: { quaternion: \"vec4\" },\n inputs: { quaternion, rotate },\n statements: ({ inputs, outputs }) => {\n const { quaternion } = outputs;\n if (!quaternion) {\n return [];\n }\n return [\n `${quaternion} = ${inputs.quaternion ?? \"vec4(0.0, 0.0, 0.0, 1.0)\"};`,\n !rotate\n ? null\n : `${quaternion} = quatQuat(${inputs.rotate}, ${quaternion});`,\n ].filter(Boolean) as string[];\n },\n });\n }\n}\n","// TODO:\n// if, switch, for, comment,\n// arrayIndex, arrayLength,\n\nexport const dynoIf = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoSwitch = () => {\n throw new Error(\"Not implemented\");\n};\nexport const dynoFor = () => {\n throw new Error(\"Not implemented\");\n};\nexport const comment = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayIndex = () => {\n throw new Error(\"Not implemented\");\n};\nexport const arrayLength = () => {\n throw new Error(\"Not implemented\");\n};\n","import { Dyno } from \"./base\";\nimport type {\n AllSamplerTypes,\n IsamplerTypes,\n NormalSamplerTypes,\n Sampler2DArrayTypes,\n Sampler2DTypes,\n Sampler3DTypes,\n SamplerCubeTypes,\n SamplerShadowTypes,\n SamplerTypes,\n UsamplerTypes,\n} from \"./types\";\nimport {\n DynoOutput,\n type DynoVal,\n type DynoValue,\n type HasDynoOut,\n valType,\n} from \"./value\";\n\nexport const textureSize = (\n texture: DynoVal,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TextureSize({ texture, lod });\nexport const texture = (\n texture: DynoVal,\n coord: DynoVal>,\n bias?: DynoVal<\"float\">,\n): DynoVal> => new Texture({ texture, coord, bias });\nexport const texelFetch = (\n texture: DynoVal,\n coord: DynoVal>,\n lod?: DynoVal<\"int\">,\n): DynoVal> => new TexelFetch({ texture, coord, lod });\n\nexport class TextureSize\n extends Dyno<{ texture: T; lod: \"int\" }, { size: TextureSizeType }>\n implements HasDynoOut>\n{\n constructor({ texture, lod }: { texture: DynoVal; lod?: DynoVal<\"int\"> }) {\n const textureType = valType(texture);\n super({\n inTypes: { texture: textureType, lod: \"int\" },\n outTypes: { size: textureSizeType(textureType) },\n inputs: { texture, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.size} = textureSize(${inputs.texture}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"size\");\n }\n}\n\nexport class Texture\n extends Dyno<\n { texture: T; coord: TextureCoordType; bias: \"float\" },\n { sample: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n bias,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n bias?: DynoVal<\"float\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureCoordType(textureType),\n bias: \"float\",\n },\n outTypes: { sample: textureReturnType(textureType) },\n inputs: { texture, coord, bias },\n statements: ({ inputs, outputs }) => [\n `${outputs.sample} = texture(${inputs.texture}, ${inputs.coord}${inputs.bias ? `, ${inputs.bias}` : \"\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"sample\");\n }\n}\n\nexport class TexelFetch\n extends Dyno<\n { texture: T; coord: TextureSizeType; lod: \"int\" },\n { texel: TextureReturnType }\n >\n implements HasDynoOut>\n{\n constructor({\n texture,\n coord,\n lod,\n }: {\n texture: DynoVal;\n coord: DynoVal>;\n lod?: DynoVal<\"int\">;\n }) {\n const textureType = valType(texture);\n super({\n inTypes: {\n texture: textureType,\n coord: textureSizeType(textureType),\n lod: \"int\",\n },\n outTypes: { texel: textureReturnType(textureType) },\n inputs: { texture, coord, lod },\n statements: ({ inputs, outputs }) => [\n `${outputs.texel} = texelFetch(${inputs.texture}, ${inputs.coord}, ${inputs.lod ?? \"0\"});`,\n ],\n });\n }\n\n dynoOut(): DynoValue> {\n return new DynoOutput(this, \"texel\");\n }\n}\n\ntype TextureSizeType = T extends\n | Sampler2DTypes\n | SamplerCubeTypes\n ? \"ivec2\"\n : T extends Sampler3DTypes | Sampler2DArrayTypes\n ? \"ivec3\"\n : never;\n\nfunction textureSizeType(\n textureType: T,\n): TextureSizeType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DShadow\":\n case \"samplerCubeShadow\":\n return \"ivec2\" as TextureSizeType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DArrayShadow\":\n return \"ivec3\" as TextureSizeType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureCoordType = T extends Sampler2DTypes\n ? \"vec2\"\n : T extends\n | Sampler3DTypes\n | Sampler2DArrayTypes\n | SamplerCubeTypes\n | Sampler2DArrayTypes\n ? \"vec3\"\n : T extends \"samperCubeShadow\" | \"sampler2DArrayShadow\"\n ? \"vec4\"\n : never;\n\nfunction textureCoordType(\n textureType: T,\n): TextureCoordType {\n switch (textureType) {\n case \"sampler2D\":\n case \"usampler2D\":\n case \"isampler2D\":\n return \"vec2\" as TextureCoordType;\n case \"sampler3D\":\n case \"usampler3D\":\n case \"isampler3D\":\n case \"samplerCube\":\n case \"usamplerCube\":\n case \"isamplerCube\":\n case \"sampler2DArray\":\n case \"usampler2DArray\":\n case \"isampler2DArray\":\n case \"sampler2DShadow\":\n return \"vec3\" as TextureCoordType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"vec4\" as TextureCoordType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n\ntype TextureReturnType = T extends SamplerTypes\n ? \"vec4\"\n : T extends UsamplerTypes\n ? \"uvec4\"\n : T extends IsamplerTypes\n ? \"ivec4\"\n : T extends SamplerShadowTypes\n ? \"float\"\n : never;\n\nfunction textureReturnType(\n textureType: T,\n): TextureReturnType {\n switch (textureType) {\n case \"sampler2D\":\n case \"sampler2DArray\":\n case \"sampler3D\":\n case \"samplerCube\":\n case \"sampler2DShadow\":\n return \"vec4\" as TextureReturnType;\n case \"usampler2D\":\n case \"usampler2DArray\":\n case \"usampler3D\":\n case \"usamplerCube\":\n return \"uvec4\" as TextureReturnType;\n case \"isampler2D\":\n case \"isampler2DArray\":\n case \"isampler3D\":\n case \"isamplerCube\":\n return \"ivec4\" as TextureReturnType;\n case \"samplerCubeShadow\":\n case \"sampler2DArrayShadow\":\n return \"float\" as TextureReturnType;\n default:\n throw new Error(`Invalid texture type: ${textureType}`);\n }\n}\n","import { BinaryOp, UnaryOp } from \"./base\";\nimport type { FloatTypes } from \"./types\";\nimport type { DynoVal } from \"./value\";\n\nexport const radians = (\n degrees: DynoVal,\n): DynoVal => new Radians({ degrees });\nexport const degrees = (\n radians: DynoVal,\n): DynoVal => new Degrees({ radians });\n\nexport const sin = (radians: DynoVal): DynoVal =>\n new Sin({ radians });\nexport const cos = (radians: DynoVal): DynoVal =>\n new Cos({ radians });\nexport const tan = (radians: DynoVal): DynoVal =>\n new Tan({ radians });\n\nexport const asin = (sin: DynoVal): DynoVal =>\n new Asin({ sin });\nexport const acos = (cos: DynoVal): DynoVal =>\n new Acos({ cos });\nexport const atan = (tan: DynoVal): DynoVal =>\n new Atan({ tan });\nexport const atan2 = (\n y: DynoVal,\n x: DynoVal,\n): DynoVal => new Atan2({ y, x });\n\nexport const sinh = (x: DynoVal): DynoVal =>\n new Sinh({ x });\nexport const cosh = (x: DynoVal): DynoVal =>\n new Cosh({ x });\nexport const tanh = (x: DynoVal): DynoVal =>\n new Tanh({ x });\n\nexport const asinh = (x: DynoVal): DynoVal =>\n new Asinh({ x });\nexport const acosh = (x: DynoVal): DynoVal =>\n new Acosh({ x });\nexport const atanh = (x: DynoVal): DynoVal =>\n new Atanh({ x });\n\nexport class Radians extends UnaryOp {\n constructor({ degrees }: { degrees: DynoVal }) {\n super({ a: degrees, outTypeFunc: (aType) => aType, outKey: \"radians\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.radians} = radians(${inputs.a});`,\n ];\n }\n}\n\nexport class Degrees extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"degrees\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.degrees} = degrees(${inputs.a});`,\n ];\n }\n}\n\nexport class Sin extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"sin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sin} = sin(${inputs.a});`,\n ];\n }\n}\n\nexport class Cos extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"cos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cos} = cos(${inputs.a});`,\n ];\n }\n}\n\nexport class Tan extends UnaryOp {\n constructor({ radians }: { radians: DynoVal }) {\n super({ a: radians, outTypeFunc: (aType) => aType, outKey: \"tan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tan} = tan(${inputs.a});`,\n ];\n }\n}\n\nexport class Asin extends UnaryOp {\n constructor({ sin }: { sin: DynoVal }) {\n super({ a: sin, outTypeFunc: (aType) => aType, outKey: \"asin\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asin} = asin(${inputs.a});`,\n ];\n }\n}\n\nexport class Acos extends UnaryOp {\n constructor({ cos }: { cos: DynoVal }) {\n super({ a: cos, outTypeFunc: (aType) => aType, outKey: \"acos\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acos} = acos(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan extends UnaryOp {\n constructor({ tan }: { tan: DynoVal }) {\n super({ a: tan, outTypeFunc: (aType) => aType, outKey: \"atan\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan} = atan(${inputs.a});`,\n ];\n }\n}\n\nexport class Atan2 extends BinaryOp {\n constructor({ y, x }: { y: DynoVal; x: DynoVal }) {\n super({\n a: y,\n b: x,\n outTypeFunc: (aType, bType) => aType,\n outKey: \"atan2\",\n });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atan2} = atan2(${inputs.a}, ${inputs.b});`,\n ];\n }\n}\n\nexport class Sinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"sinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.sinh} = sinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Cosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"cosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.cosh} = cosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Tanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"tanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.tanh} = tanh(${inputs.a});`,\n ];\n }\n}\n\nexport class Asinh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"asinh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.asinh} = asinh(${inputs.a});`,\n ];\n }\n}\n\nexport class Acosh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"acosh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.acosh} = acosh(${inputs.a});`,\n ];\n }\n}\n\nexport class Atanh extends UnaryOp {\n constructor({ x }: { x: DynoVal }) {\n super({ a: x, outTypeFunc: (aType) => aType, outKey: \"atanh\" });\n this.statements = ({ inputs, outputs }) => [\n `${outputs.atanh} = atanh(${inputs.a});`,\n ];\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout uvec4 target;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n target = uvec4(0u, 0u, 0u, 0u);\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out vec4 target3;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial target to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize depthTarget to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nlayout(location = 0) out uvec4 target;\nlayout(location = 1) out uvec4 target2;\nlayout(location = 2) out vec4 target3;\n// layout(location = 0) out vec4 target3;\n// layout(location = 1) out uvec4 target;\n// layout(location = 2) out uvec4 target2;\n\n{{ GLOBALS }}\n\nvoid produceSplat(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n // Initial targets to \"null\" splat\n target = uvec4(0u, 0u, 0u, 0u);\n target2 = uvec4(0u, 0u, 0u, 0u);\n\n // Initialize target3 to +infinity\n target3 = floatToVec4(1.0 / 0.0);\n\n if ((index >= 0) && (index < targetCount)) {\n produceSplat(index);\n }\n}\n","precision highp float;\nprecision highp int;\nprecision highp sampler2D;\nprecision highp usampler2D;\nprecision highp isampler2D;\nprecision highp sampler2DArray;\nprecision highp usampler2DArray;\nprecision highp isampler2DArray;\nprecision highp sampler3D;\nprecision highp usampler3D;\nprecision highp isampler3D;\n\n#include \n\nuniform uint targetLayer;\nuniform int targetBase;\nuniform int targetCount;\n\nout vec4 target;\n\n{{ GLOBALS }}\n\nvoid computeReadback(int _index) {\n {{ STATEMENTS }}\n}\n\nvoid main() {\n int targetIndex = int(targetLayer << SPLAT_TEX_LAYER_BITS) + int(uint(gl_FragCoord.y) << SPLAT_TEX_WIDTH_BITS) + int(gl_FragCoord.x);\n int index = targetIndex - targetBase;\n\n if ((index >= 0) && (index < targetCount)) {\n computeReadback(index);\n } else {\n target = vec4(0.0, 0.0, 0.0, 0.0);\n }\n}\n","const float LN_SCALE_MIN = -12.0;\nconst float LN_SCALE_MAX = 9.0;\n\nconst uint SPLAT_TEX_WIDTH_BITS = 11u;\nconst uint SPLAT_TEX_HEIGHT_BITS = 11u;\nconst uint SPLAT_TEX_DEPTH_BITS = 11u;\nconst uint SPLAT_TEX_LAYER_BITS = SPLAT_TEX_WIDTH_BITS + SPLAT_TEX_HEIGHT_BITS;\n\nconst uint SPLAT_TEX_WIDTH = 1u << SPLAT_TEX_WIDTH_BITS;\nconst uint SPLAT_TEX_HEIGHT = 1u << SPLAT_TEX_HEIGHT_BITS;\nconst uint SPLAT_TEX_DEPTH = 1u << SPLAT_TEX_DEPTH_BITS;\n\nconst uint SPLAT_TEX_WIDTH_MASK = SPLAT_TEX_WIDTH - 1u;\nconst uint SPLAT_TEX_HEIGHT_MASK = SPLAT_TEX_HEIGHT - 1u;\nconst uint SPLAT_TEX_DEPTH_MASK = SPLAT_TEX_DEPTH - 1u;\n\nconst uint F16_INF = 0x7c00u;\nconst float PI = 3.1415926535897932384626433832795;\n\nconst float INFINITY = 1.0 / 0.0;\nconst float NEG_INFINITY = -INFINITY;\n\nfloat sqr(float x) {\n return x * x;\n}\n\nfloat pow4(float x) {\n float x2 = x * x;\n return x2 * x2;\n}\n\nfloat pow8(float x) {\n float x4 = pow4(x);\n return x4 * x4;\n}\n\nvec3 srgbToLinear(vec3 rgb) {\n return pow(rgb, vec3(2.2));\n}\n\nvec3 linearToSrgb(vec3 rgb) {\n return pow(rgb, vec3(1.0 / 2.2));\n}\n\n// Encode a quaternion (vec4) into a 24‐bit uint with folded octahedral mapping.\nuint encodeQuatOctXy88R8(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float theta = 2.0 * acos(q.w);\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 8 bits (0 to 255)\n uint quantU = uint(clamp(round(u_f * 255.0), 0.0, 255.0));\n uint quantV = uint(clamp(round(v_f * 255.0), 0.0, 255.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 8 bits (0 to 255)\n uint angleInt = uint(clamp(round((theta / 3.14159265359) * 255.0), 0.0, 255.0));\n \n // Pack bits: bits [0–7]: quantU, [8–15]: quantV, [16–23]: angleInt.\n return (angleInt << 16u) | (quantV << 8u) | quantU;\n}\n\n// Decode a 24‐bit encoded uint into a quaternion (vec4) using the folded octahedral inverse.\nvec4 decodeQuatOctXy88R8(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0xFFu); // bits 0–7\n uint quantV = (encoded >> 8u) & uint(0xFFu); // bits 8–15\n uint angleInt = encoded >> 16u; // bits 16–23\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 255.0;\n float v_f = float(quantV) / 255.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 255.0) * 3.14159265359;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\nuint encodeQuatOctXy1010R12(vec4 q) {\n // Ensure minimal representation: flip if q.w is negative.\n if (q.w < 0.0) {\n q = -q;\n }\n // Compute rotation angle: θ = 2 * acos(q.w) ∈ [0,π]\n float halfTheta = acos(q.w);\n float theta = 2.0 * halfTheta;\n float s = sin(halfTheta);\n // Recover the rotation axis; use a default if nearly zero rotation.\n vec3 axis = (abs(s) < 1e-6) ? vec3(1.0, 0.0, 0.0) : q.xyz / s;\n \n // --- Folded Octahedral Mapping (inline) ---\n // Compute p = (axis.x, axis.y) / (|axis.x|+|axis.y|+|axis.z|)\n float sum = abs(axis.x) + abs(axis.y) + abs(axis.z);\n vec2 p = vec2(axis.x, axis.y) / sum;\n // If axis.z < 0, fold the mapping.\n if (axis.z < 0.0) {\n float oldPx = p.x;\n p.x = (1.0 - abs(p.y)) * (p.x >= 0.0 ? 1.0 : -1.0);\n p.y = (1.0 - abs(oldPx)) * (p.y >= 0.0 ? 1.0 : -1.0);\n }\n // Remap from [-1,1] to [0,1]\n float u_f = p.x * 0.5 + 0.5;\n float v_f = p.y * 0.5 + 0.5;\n // Quantize to 10 bits (0 to 1023)\n uint quantU = uint(clamp(round(u_f * 1023.0), 0.0, 1023.0));\n uint quantV = uint(clamp(round(v_f * 1023.0), 0.0, 1023.0));\n \n // --- Angle Quantization ---\n // Quantize θ ∈ [0,π] to 12 bits (0 to 4095)\n uint angleInt = uint(clamp(round((theta / PI) * 4095.0), 0.0, 4095.0));\n \n // Pack bits: bits [0–9]: quantU, [10–19]: quantV, [20–31]: angleInt.\n return (angleInt << 20u) | (quantV << 10u) | quantU;\n}\n\nvec4 decodeQuatOctXy1010R12(uint encoded) {\n // Extract the fields.\n uint quantU = encoded & uint(0x3FFu); // bits 0–9\n uint quantV = (encoded >> 10u) & uint(0x3FFu); // bits 10–19\n uint angleInt = encoded >> 20u; // bits 20–31\n\n // Recover u and v in [0,1], then map to [-1,1].\n float u_f = float(quantU) / 1023.0;\n float v_f = float(quantV) / 1023.0;\n vec2 f = vec2(u_f * 2.0 - 1.0, v_f * 2.0 - 1.0);\n\n vec3 axis = vec3(f.xy, 1.0 - abs(f.x) - abs(f.y));\n float t = max(-axis.z, 0.0);\n axis.x += (axis.x >= 0.0) ? -t : t;\n axis.y += (axis.y >= 0.0) ? -t : t;\n axis = normalize(axis);\n \n // Decode the angle θ ∈ [0,π].\n float theta = (float(angleInt) / 4095.0) * PI;\n float halfTheta = theta * 0.5;\n float s = sin(halfTheta);\n float w = cos(halfTheta);\n \n return vec4(axis * s, w);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplatEncoding(\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n uint uQuat = encodeQuatOctXy88R8(quaternion);\n // uint uQuat = encodeQuatXyz888(quaternion);\n // uint uQuat = encodeQuatEulerXyz888(quaternion);\n uvec3 uQuat3 = uvec3(uQuat & 0xffu, (uQuat >> 8u) & 0xffu, (uQuat >> 16u) & 0xffu);\n\n // Encode scales in three uint8s, where 0=>0.0 and 1..=255 stores log scale\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = 254.0 / (lnScaleMax - lnScaleMin);\n uvec3 uScales = uvec3(\n (scales.x == 0.0) ? 0u : uint(round(clamp((log(scales.x) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.y == 0.0) ? 0u : uint(round(clamp((log(scales.y) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u,\n (scales.z == 0.0) ? 0u : uint(round(clamp((log(scales.z) - lnScaleMin) * lnScaleScale, 0.0, 254.0))) + 1u\n );\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) | (uQuat3.x << 16u) | (uQuat3.y << 24u);\n uint word3 = uScales.x | (uScales.y << 8u) | (uScales.z << 16u) | (uQuat3.z << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\n// Pack a Gsplat into a uvec4\nuvec4 packSplat(vec3 center, vec3 scales, vec4 quaternion, vec4 rgba) {\n return packSplatEncoding(center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nvoid unpackSplatEncoding(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec4(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu)\n ).xyz;\n\n uvec3 uScales = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float lnScaleScale = (lnScaleMax - lnScaleMin) / 254.0;\n scales = vec3(\n (uScales.x == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.x - 1u) * lnScaleScale),\n (uScales.y == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.y - 1u) * lnScaleScale),\n (uScales.z == 0u) ? 0.0 : exp(lnScaleMin + float(uScales.z - 1u) * lnScaleScale)\n );\n\n\n uint uQuat = ((word2 >> 16u) & 0xFFFFu) | ((word3 >> 8u) & 0xFF0000u);\n quaternion = decodeQuatOctXy88R8(uQuat);\n // quaternion = decodeQuatXyz888(uQuat);\n // quaternion = decodeQuatEulerXyz888(uQuat);\n}\n\n// Unpack a Gsplat from a uvec4\nvoid unpackSplat(uvec4 packedData, out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n}\n\nuvec4 packSplatCovEncoding(\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax\n) {\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n vec3 encRgb = (rgba.rgb - vec3(rgbMin)) / (rgbMax - rgbMin);\n uvec4 uRgba = uvec4(round(clamp(vec4(encRgb, rgba.a) * 255.0, 0.0, 255.0)));\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 255.0 / (2.0 * (lnScaleMax - lnScaleMin));\n uvec3 uXxyyzz = uvec3(round(clamp((log(xxyyzz) - 2.0 * lnScaleMin) * diagScale, 0.0, 255.0)));\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n ivec3 iXyxzyzCor = ivec3(round(xyxzyzCor * 127.0));\n\n // Pack it all into 4 x uint32\n uint word0 = uRgba.r | (uRgba.g << 8u) | (uRgba.b << 16u) | (uRgba.a << 24u);\n uint word1 = packHalf2x16(center.xy);\n uint word2 = packHalf2x16(vec2(center.z, 0.0)) |\n ((uint(iXyxzyzCor.y) & 0xffu) << 16u) |\n ((uint(iXyxzyzCor.z) & 0xffu) << 24u);\n uint word3 =\n uXxyyzz.x | (uXxyyzz.y << 8u) | (uXxyyzz.z << 16u) |\n ((uint(iXyxzyzCor.x) & 0xffu) << 24u);\n return uvec4(word0, word1, word2, word3);\n}\n\nvoid unpackSplatCovEncoding(uvec4 packedData, out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz, vec4 rgbMinMaxLnScaleMinMax) {\n uint word0 = packedData.x, word1 = packedData.y, word2 = packedData.z, word3 = packedData.w;\n\n uvec4 uRgba = uvec4(word0 & 0xffu, (word0 >> 8u) & 0xffu, (word0 >> 16u) & 0xffu, (word0 >> 24u) & 0xffu);\n float rgbMin = rgbMinMaxLnScaleMinMax.x;\n float rgbMax = rgbMinMaxLnScaleMinMax.y;\n rgba = (vec4(uRgba) / 255.0);\n rgba.rgb = rgba.rgb * (rgbMax - rgbMin) + rgbMin;\n\n center = vec3(\n unpackHalf2x16(word1),\n unpackHalf2x16(word2 & 0xffffu).x\n );\n\n uvec3 uXxyyzz = uvec3(word3 & 0xffu, (word3 >> 8u) & 0xffu, (word3 >> 16u) & 0xffu);\n ivec3 iXyxzyzCor = ivec3(int(word3) >> 24, int(word2 << 8u) >> 24, int(word2) >> 24);\n\n float lnScaleMin = rgbMinMaxLnScaleMinMax.z;\n float lnScaleMax = rgbMinMaxLnScaleMinMax.w;\n float diagScale = 2.0 * (lnScaleMax - lnScaleMin) / 255.0;\n xxyyzz = exp(2.0 * lnScaleMin + vec3(uXxyyzz) * diagScale);\n\n vec3 xyxzyzCor = vec3(iXyxzyzCor) / 127.0;\n xyxzyz = xyxzyzCor * vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExtCov(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec4 rgba, vec3 xxyyzz, vec3 xyxzyz\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, rgba.b));\n packedData2.x = packHalf2x16(rgba.rg);\n\n vec3 xyxzyzCor = vec3(\n clamp(xyxzyz.x / sqrt(xxyyzz.x * xxyyzz.y), -1.0, 1.0),\n clamp(xyxzyz.y / sqrt(xxyyzz.x * xxyyzz.z), -1.0, 1.0),\n clamp(xyxzyz.z / sqrt(xxyyzz.y * xxyyzz.z), -1.0, 1.0)\n );\n xyxzyzCor = sign(xyxzyzCor) * clamp(log(abs(xyxzyzCor)), -100.0, -0.0000001);\n xxyyzz = log(xxyyzz);\n\n packedData2.y = packHalf2x16(vec2(xxyyzz.x, xxyyzz.y));\n packedData2.z = packHalf2x16(vec2(xxyyzz.z, xyxzyzCor.x));\n packedData2.w = packHalf2x16(vec2(xyxzyzCor.y, xyxzyzCor.z));\n}\n\nvoid unpackSplatExtCov(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec4 rgba, out vec3 xxyyzz, out vec3 xyxzyz\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n\n vec2 ab = unpackHalf2x16(packedData.w);\n vec2 rg = unpackHalf2x16(packedData2.x);\n rgba = vec4(rg, ab.y, ab.x);\n\n vec2 xxyy = unpackHalf2x16(packedData2.y);\n vec2 zzxy = unpackHalf2x16(packedData2.z);\n vec2 xzyz = unpackHalf2x16(packedData2.w);\n xxyyzz = exp(vec3(xxyy.x, xxyy.y, zzxy.x));\n xyxzyz = vec3(zzxy.y, xzyz.x, xzyz.y);\n xyxzyz = -sign(xyxzyz) * exp(-abs(xyxzyz));\n xyxzyz *= vec3(\n sqrt(xxyyzz.x * xxyyzz.y),\n sqrt(xxyyzz.x * xxyyzz.z),\n sqrt(xxyyzz.y * xxyyzz.z)\n );\n}\n\nvoid packSplatExt(\n out uvec4 packedData, out uvec4 packedData2,\n vec3 center, vec3 scales, vec4 quaternion, vec4 rgba\n) {\n packedData.x = floatBitsToUint(center.x);\n packedData.y = floatBitsToUint(center.y);\n packedData.z = floatBitsToUint(center.z);\n packedData.w = packHalf2x16(vec2(rgba.a, 0.0));\n\n packedData2.x = packHalf2x16(rgba.rg);\n packedData2.y = packHalf2x16(vec2(rgba.b, log(scales.x)));\n packedData2.z = packHalf2x16(log(scales.yz));\n packedData2.w = encodeQuatOctXy1010R12(quaternion);\n}\n\nvec4 unpackSplatExtCenterAlpha(uvec4 packedData) {\n return vec4(\n uintBitsToFloat(packedData.x),\n uintBitsToFloat(packedData.y),\n uintBitsToFloat(packedData.z),\n unpackHalf2x16(packedData.w).x\n );\n}\n\nfloat unpackSplatExtAlpha(uvec4 packedData) {\n return unpackHalf2x16(packedData.w).x;\n}\n\nvoid unpackSplatExt(\n uvec4 packedData, uvec4 packedData2,\n out vec3 center, out vec3 scales, out vec4 quaternion, out vec4 rgba\n) {\n center.x = uintBitsToFloat(packedData.x);\n center.y = uintBitsToFloat(packedData.y);\n center.z = uintBitsToFloat(packedData.z);\n rgba.a = unpackHalf2x16(packedData.w).x;\n\n rgba.rg = unpackHalf2x16(packedData2.x);\n vec2 split = unpackHalf2x16(packedData2.y);\n rgba.b = split.x;\n scales.x = exp(split.y);\n scales.yz = exp(unpackHalf2x16(packedData2.z));\n quaternion = decodeQuatOctXy1010R12(packedData2.w);\n}\n\nuint encodeExtRgb(vec3 rgb) {\n vec3 absRgb = abs(rgb);\n float maxAbs = max(absRgb.r, max(absRgb.g, absRgb.b));\n\n int base = clamp(int(floor(log2(maxAbs))) + 15, 0, 31);\n float divisor = exp2(float(base - 15)) / 255.0;\n\n uvec3 uRgb = uvec3(round(clamp(absRgb / divisor, 0.0, 255.0)));\n uint expSigns = (uint(base) << 3u) | ((rgb.r < 0.0 ? 0x1u : 0u) | (rgb.g < 0.0 ? 0x2u : 0u) | (rgb.b < 0.0 ? 0x4u : 0u));\n return uRgb.r | (uRgb.g << 8u) | (uRgb.b << 16u) | (expSigns << 24u);\n}\n\nvec3 decodeExtRgb(uint encoded) {\n uint biasedBase = (encoded >> 27u) & 0x1fu;\n float divisor = exp2(float(int(biasedBase) - 15)) / 255.0;\n\n vec3 rgb = vec3(uvec3(encoded & 0xffu, (encoded >> 8u) & 0xffu, (encoded >> 16u) & 0xffu));\n rgb *= divisor;\n\n return vec3(\n ((encoded & 0x1000000u) != 0u) ? -rgb.r : rgb.r,\n ((encoded & 0x2000000u) != 0u) ? -rgb.g : rgb.g,\n ((encoded & 0x4000000u) != 0u) ? -rgb.b : rgb.b\n );\n}\n\n// Rotate vector v by quaternion q\nvec3 quatVec(vec4 q, vec3 v) {\n // Rotate vector v by quaternion q\n vec3 t = 2.0 * cross(q.xyz, v);\n return v + q.w * t + cross(q.xyz, t);\n}\n\n// Apply quaternion q1 after quaternion q2\nvec4 quatQuat(vec4 q1, vec4 q2) {\n return vec4(\n q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,\n q1.w * q2.y - q1.x * q2.z + q1.y * q2.w + q1.z * q2.x,\n q1.w * q2.z + q1.x * q2.y - q1.y * q2.x + q1.z * q2.w,\n q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z\n );\n}\n\nmat3 quaternionToMatrix(vec4 q) {\n return mat3(\n (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n (2.0 * (q.x * q.y + q.w * q.z)),\n (2.0 * (q.x * q.z - q.w * q.y)),\n (2.0 * (q.x * q.y - q.w * q.z)),\n (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n (2.0 * (q.y * q.z + q.w * q.x)),\n (2.0 * (q.x * q.z + q.w * q.y)),\n (2.0 * (q.y * q.z - q.w * q.x)),\n (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\nmat3 scaleQuaternionToMatrix(vec3 s, vec4 q) {\n // Compute the matrix of scaling by s then rotating by q\n return mat3(\n s.x * (1.0 - 2.0 * (q.y * q.y + q.z * q.z)),\n s.x * (2.0 * (q.x * q.y + q.w * q.z)),\n s.x * (2.0 * (q.x * q.z - q.w * q.y)),\n s.y * (2.0 * (q.x * q.y - q.w * q.z)),\n s.y * (1.0 - 2.0 * (q.x * q.x + q.z * q.z)),\n s.y * (2.0 * (q.y * q.z + q.w * q.x)),\n s.z * (2.0 * (q.x * q.z + q.w * q.y)),\n s.z * (2.0 * (q.y * q.z - q.w * q.x)),\n s.z * (1.0 - 2.0 * (q.x * q.x + q.y * q.y))\n );\n}\n\n// Spherical lerp between two quaternions\nvec4 slerp(vec4 q1, vec4 q2, float t) {\n // Compute the cosine of the angle between the two vectors\n float cosHalfTheta = dot(q1, q2);\n\n // If q1=q2 or q1=-q2 then theta = 0 and we can return q1\n if (abs(cosHalfTheta) >= 0.999) {\n return q1;\n }\n \n // If q1 and q2 are more than 180 degrees apart, \n // we need to negate one to get the shortest path\n if (cosHalfTheta < 0.0) {\n q2 = -q2;\n cosHalfTheta = -cosHalfTheta;\n }\n\n // Calculate temporary values\n float halfTheta = acos(cosHalfTheta);\n float sinHalfTheta = sqrt(1.0 - cosHalfTheta * cosHalfTheta);\n\n // Calculate the interpolation factors\n float ratioA = sin((1.0 - t) * halfTheta) / sinHalfTheta;\n float ratioB = sin(t * halfTheta) / sinHalfTheta;\n\n // Calculate the interpolated quaternion\n return q1 * ratioA + q2 * ratioB;\n}\n\nivec3 splatTexCoord(int index) {\n uint x = uint(index) & SPLAT_TEX_WIDTH_MASK;\n uint y = (uint(index) >> SPLAT_TEX_WIDTH_BITS) & SPLAT_TEX_HEIGHT_MASK;\n uint z = uint(index) >> SPLAT_TEX_LAYER_BITS;\n return ivec3(x, y, z);\n}\n\nivec3 pagedSplatTexCoord(int index) {\n return ivec3(index & 255, (index >> 8) & 255, index >> 16);\n}\n\nvec4 uintToVec4(uint u32) {\n uvec4 bytes = uvec4(\n u32 & 0xFFu,\n (u32 >> 8u) & 0xFFu,\n (u32 >> 16u) & 0xFFu,\n (u32 >> 24u) & 0xFFu\n );\n return vec4(bytes) / 255.0;\n}\n\nvec4 floatToVec4(float f) {\n uint u32 = floatBitsToUint(f);\n return uintToVec4(u32);\n}\n\nvec3 debugColorHue(uint i) {\n // Golden ratio conjugate; spreads hues evenly\n float hue = fract(float(i) * 0.61803398875);\n // HSV to RGB with fixed S/V\n vec3 rgb = clamp(abs(mod(hue*6.0 + vec3(0.0,4.0,2.0), 6.0) - 3.0) - 1.0, 0.0, 1.0);\n return mix(vec3(1.0), rgb, 0.85); // saturation ~0.85, value ~1.0\n}\n","\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\n#include \n\nvoid main() {\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n if (false) {\n // if (debugFlag) {\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n float min1a = min(1.0, a);\n rgba.a = mix(min1a, min1a * exp(exponent), falloff);\n } else {\n // New falloff function, more or less equivalent\n if (rgba.a <= 1.0) {\n rgba.a = mix(rgba.a, rgba.a * exp(-0.5 * z2), falloff);\n } else {\n float a = exp((rgba.a*rgba.a - 1.0) / 2.718281828459045);\n float alpha = 1.0 - pow(1.0 - exp(-0.5 * z2), a);\n rgba.a = mix(1.0, alpha, falloff);\n }\n }\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n\n #include \n}\n","\nprecision highp float;\nprecision highp int;\nprecision highp usampler2DArray;\n\n#include \n\nout vec4 vRgba;\nout vec2 vSplatUv;\nout vec3 vNdc;\nflat out uint vSplatIndex;\nflat out float adjustedStdDev;\n\n// uniform uint numSplats;\nuniform vec2 renderSize;\nuniform vec4 renderToViewQuat;\nuniform vec3 renderToViewPos;\nuniform mat3 renderToViewBasis;\nuniform float maxStdDev;\nuniform float minPixelRadius;\nuniform float maxPixelRadius;\nuniform bool enableExtSplats;\nuniform bool enableCovSplats;\nuniform float time;\nuniform float deltaTime;\nuniform bool debugFlag;\nuniform float minAlpha;\nuniform bool enable2DGS;\nuniform bool lodInflate;\nuniform float blurAmount;\nuniform float preBlurAmount;\nuniform float focalDistance;\nuniform float apertureAngle;\nuniform float clipXY;\nuniform float focalAdjustment;\n\nuniform usampler2D ordering;\nuniform usampler2DArray extSplats;\nuniform usampler2DArray extSplats2;\n\n// Required by logdepthbuf_pars_vertex (normally defined in three.js #include )\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == -1.0;\n}\n\n#include \n\nvoid main() {\n // Default to outside the frustum so it's discarded if we return early\n gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\n ivec2 orderingCoord = ivec2((gl_InstanceID >> 2) & 4095, gl_InstanceID >> 14);\n uint splatIndex = texelFetch(ordering, orderingCoord, 0)[gl_InstanceID & 3];\n if (splatIndex == 0xffffffffu) {\n // Special value reserved for \"no splat\"\n return;\n }\n\n ivec3 texCoord = splatTexCoord(int(splatIndex));\n vec3 center, scales, xxyyzz, xyxzyz;\n vec4 quaternion, rgba;\n mat3 cov3D;\n bvec3 zeroScales = bvec3(false);\n\n if (enableExtSplats) {\n uvec4 ext1 = texelFetch(extSplats, texCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if ((alpha == 0.0) || (alpha < minAlpha)) {\n return;\n }\n uvec4 ext2 = texelFetch(extSplats2, texCoord, 0);\n\n if (!enableCovSplats) {\n unpackSplatExt(ext1, ext2, center, scales, quaternion, rgba);\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatExtCov(ext1, ext2, center, rgba, xxyyzz, xyxzyz);\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n } else {\n uvec4 packedData = texelFetch(extSplats, texCoord, 0);\n if (!enableCovSplats) {\n unpackSplatEncoding(packedData, center, scales, quaternion, rgba, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n zeroScales = equal(scales, vec3(0.0));\n if (all(zeroScales)) {\n return;\n }\n } else {\n unpackSplatCovEncoding(packedData, center, rgba, xxyyzz, xyxzyz, vec4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX));\n if (all(equal(xxyyzz, vec3(0.0))) && all(equal(xyxzyz, vec3(0.0)))) {\n return;\n }\n }\n\n rgba.a *= 2.0;\n if ((rgba.a == 0.0) || (rgba.a < minAlpha)) {\n return;\n }\n }\n\n adjustedStdDev = maxStdDev;\n if (rgba.a > 1.0) {\n // Stretch 1..2 to 1..5\n rgba.a = min(rgba.a * 4.0 - 3.0, 5.0);\n\n if (lodInflate) {\n // Adjust size to componsate for loss of opacity\n float opacity = exp((rgba.a * rgba.a - 1.0) / 2.718281828459045);\n float rescale = pow(opacity, 1.0 / 3.0);\n scales *= rescale;\n rgba.a = 1.0;\n }\n\n // Expand the maximum std dev to approximately cover the larger range\n adjustedStdDev = maxStdDev + 0.7 * (rgba.a - 1.0);\n }\n\n // Compute the view space center of the splat\n vec3 viewCenter = (!enableCovSplats ? quatVec(renderToViewQuat, center) : (renderToViewBasis * center)) + renderToViewPos;\n\n // Discard splats behind the camera\n if (viewCenter.z >= 0.0) {\n return;\n }\n\n // Compute the clip space center of the splat\n vec4 clipCenter = projectionMatrix * vec4(viewCenter, 1.0);\n\n // Discard splats outside near/far planes\n if (abs(clipCenter.z) >= clipCenter.w) {\n return;\n }\n\n // Discard splats more than clipXY times outside the XY frustum\n float clip = clipXY * clipCenter.w;\n if (abs(clipCenter.x) > clip || abs(clipCenter.y) > clip) {\n return;\n }\n\n vRgba = rgba;\n vSplatUv = position.xy * adjustedStdDev;\n\n // Record the splat index for entropy\n vSplatIndex = splatIndex;\n\n if (!enableCovSplats) {\n // Compute view space quaternion of splat\n vec4 viewQuaternion = quatQuat(renderToViewQuat, quaternion);\n\n if (enable2DGS && any(zeroScales)) {\n vec3 offset;\n if (zeroScales.z) {\n offset = vec3(vSplatUv.xy * scales.xy, 0.0);\n } else if (zeroScales.y) {\n offset = vec3(vSplatUv.x * scales.x, 0.0, vSplatUv.y * scales.z);\n } else {\n offset = vec3(0.0, vSplatUv.xy * scales.yz);\n }\n\n vec3 viewPos = viewCenter + quatVec(viewQuaternion, offset);\n gl_Position = projectionMatrix * vec4(viewPos, 1.0);\n vNdc = gl_Position.xyz / gl_Position.w;\n\n #include \n return;\n }\n\n // Compute the 3D covariance matrix of the splat\n mat3 RS = scaleQuaternionToMatrix(scales, viewQuaternion);\n cov3D = RS * transpose(RS);\n } else {\n cov3D = mat3(\n xxyyzz.x, xyxzyz.x, xyxzyz.y,\n xyxzyz.x, xxyyzz.y, xyxzyz.z,\n xyxzyz.y, xyxzyz.z, xxyyzz.z\n );\n cov3D = renderToViewBasis * cov3D * transpose(renderToViewBasis);\n }\n\n // Compute the Jacobian of the splat's projection at its center\n vec2 scaledRenderSize = renderSize * focalAdjustment;\n vec2 focal = 0.5 * scaledRenderSize * vec2(projectionMatrix[0][0], projectionMatrix[1][1]);\n\n mat3 J;\n if (isOrthographic) {\n J = mat3(\n focal.x, 0.0, 0.0,\n 0.0, focal.y, 0.0,\n 0.0, 0.0, 0.0\n );\n } else {\n float invZ = 1.0 / viewCenter.z;\n vec2 J1 = focal * invZ;\n vec2 J2 = -(J1 * viewCenter.xy) * invZ;\n J = mat3(\n J1.x, 0.0, J2.x,\n 0.0, J1.y, J2.y,\n 0.0, 0.0, 0.0\n );\n }\n\n // Compute the 2D covariance by projecting the 3D covariance\n // and picking out the XY plane components.\n mat3 cov2D = transpose(J) * cov3D * J;\n float a = cov2D[0][0];\n float d = cov2D[1][1];\n float b = cov2D[0][1];\n\n // Optionally pre-blur the splat to match non-antialias optimized splats\n a += preBlurAmount;\n d += preBlurAmount;\n\n float fullBlurAmount = blurAmount;\n if ((focalDistance > 0.0) && (apertureAngle > 0.0)) {\n float focusRadius = maxPixelRadius;\n if (viewCenter.z < 0.0) {\n float focusBlur = abs((-viewCenter.z - focalDistance) / viewCenter.z);\n float apertureRadius = focal.x * tan(0.5 * apertureAngle);\n focusRadius = focusBlur * apertureRadius;\n }\n fullBlurAmount = clamp(sqr(focusRadius), blurAmount, sqr(maxPixelRadius));\n }\n\n // Do convolution with a 0.5-pixel Gaussian for anti-aliasing: sqrt(0.3) ~= 0.5\n float detOrig = a * d - b * b;\n a += fullBlurAmount;\n d += fullBlurAmount;\n float det = a * d - b * b;\n\n // Compute anti-aliasing intensity scaling factor\n float blurAdjust = sqrt(max(0.0, detOrig / det));\n rgba.a *= blurAdjust;\n if (rgba.a < minAlpha) {\n return;\n }\n vRgba.a = rgba.a;\n\n // Compute the eigenvalue and eigenvectors of the 2D covariance matrix\n float eigenAvg = 0.5 * (a + d);\n float eigenDelta = sqrt(max(0.0, eigenAvg * eigenAvg - det));\n float eigen1 = eigenAvg + eigenDelta;\n float eigen2 = eigenAvg - eigenDelta;\n\n vec2 eigenVec1 = (abs(b) > 0.001) ? normalize(vec2(b, eigen1 - a))\n : ((a >= d) ? vec2(1.0, 0.0) : vec2(0.0, 1.0));\n vec2 eigenVec2 = vec2(eigenVec1.y, -eigenVec1.x);\n\n float scale1 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen1));\n float scale2 = min(maxPixelRadius, adjustedStdDev * sqrt(eigen2));\n if (scale1 < minPixelRadius && scale2 < minPixelRadius) {\n return;\n }\n\n // Compute the NDC coordinates for the ellipsoid's diagonal axes.\n vec2 pixelOffset = position.x * eigenVec1 * scale1 + position.y * eigenVec2 * scale2;\n vec2 ndcOffset = (2.0 / scaledRenderSize) * pixelOffset;\n\n // Compute NDC center of the splat\n vec3 ndcCenter = clipCenter.xyz / clipCenter.w;\n vec3 ndc = vec3(ndcCenter.xy + ndcOffset, ndcCenter.z);\n\n vNdc = ndc;\n gl_Position = vec4(ndc.xy * clipCenter.w, clipCenter.zw);\n\n #include \n}\n","import * as THREE from \"three\";\n\nimport computeUvec4Template from \"./shaders/computeUvec4.glsl\";\nimport computeUvec4Vec4Template from \"./shaders/computeUvec4_Vec4.glsl\";\nimport computeUvec4x2Vec4Template from \"./shaders/computeUvec4x2_Vec4.glsl\";\nimport computeVec4Template from \"./shaders/computeVec4.glsl\";\nimport splatDefines from \"./shaders/splatDefines.glsl\";\nimport splatFragment from \"./shaders/splatFragment.glsl\";\nimport splatVertex from \"./shaders/splatVertex.glsl\";\n\nlet shaders: Record | null = null;\n\nexport function getShaders(): Record {\n if (!shaders) {\n // @ts-ignore\n THREE.ShaderChunk.splatDefines = splatDefines;\n shaders = {\n splatVertex,\n splatFragment,\n computeVec4Template,\n computeUvec4Vec4Template,\n computeUvec4x2Vec4Template,\n computeUvec4Template,\n };\n }\n return shaders;\n}\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { type Dyno, OutputRgba8, dynoBlock } from \"./dyno\";\nimport { DynoProgram, DynoProgramTemplate } from \"./dyno/program\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize } from \"./utils\";\n\n// Readback can be used to run a Dyno program that maps an index to a 32-bit\n// RGBA8 value, which is the only allowed, portable readback format for WebGL2.\n// Using data packing and conversion you can read back any 32-bit value, which\n// Spark uses to read back 2 float16 Gsplat distance values per index.\n\nexport type Rgba8Readback = Dyno<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n\n// Readback can be performed with various typed buffers, making it convenient\n// to encode readback data in a variety of formats.\n\nexport type ReadbackBuffer =\n | ArrayBuffer\n | Uint8Array\n | Uint8ClampedArray\n | Int8Array\n | Uint16Array\n | Int16Array\n | Uint32Array\n | Int32Array\n | Float32Array;\n\nexport class Readback {\n renderer?: THREE.WebGLRenderer;\n target?: THREE.WebGLArrayRenderTarget;\n capacity: number;\n count: number;\n\n constructor({ renderer }: { renderer?: THREE.WebGLRenderer } = {}) {\n this.renderer = renderer;\n this.capacity = 0;\n this.count = 0;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n }\n\n // Ensure we have a buffer large enough for the readback of count indices.\n // Pass in previous bufer of the desired type.\n static ensureBuffer(count: number, buffer: B): B {\n // Readback is performed in a 2D array of pixels, so round up with SPLAT_TEX_WIDTH\n const roundedCount =\n Math.ceil(Math.max(1, count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const bytes = roundedCount * 4;\n if (buffer.byteLength >= bytes) {\n return buffer;\n }\n\n // Need a larger buffer, create a new one of the same type\n const newBuffer = new ArrayBuffer(bytes);\n if (buffer instanceof ArrayBuffer) {\n return newBuffer as B;\n }\n\n const ctor = buffer.constructor as { new (arrayBuffer: ArrayBuffer): B };\n return new ctor(newBuffer) as B;\n }\n\n ensureBuffer(count: number, buffer: B): B {\n return Readback.ensureBuffer(count, buffer);\n }\n\n // Ensure our render target is large enough for the readback of capacity indices.\n ensureCapacity(capacity: number) {\n const { width, height, depth, maxSplats } = getTextureSize(capacity);\n if (!this.target || maxSplats > this.capacity) {\n this.dispose();\n this.capacity = maxSplats;\n\n // The only portable readback format for WebGL2 is RGBA8\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAFormat;\n this.target.texture.type = THREE.UnsignedByteType;\n this.target.texture.internalFormat = \"RGBA8\";\n this.target.scissorTest = true;\n }\n }\n\n // Get a program and THREE.RawShaderMaterial for a given Rgba8Readback,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(reader: Rgba8Readback): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = Readback.readbackProgram.get(reader);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n reader.inputs.index = index;\n const rgba8 = new OutputRgba8({ rgba8: reader.outputs.rgba8 });\n return { rgba8 };\n },\n );\n if (!Readback.programTemplate) {\n Readback.programTemplate = new DynoProgramTemplate(\n getShaders().computeVec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { rgba8: \"target\" },\n template: Readback.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n Readback.readbackProgram.set(reader, program);\n }\n\n const material = program.prepareMaterial();\n Readback.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private process({\n count,\n material,\n }: { count: number; material: THREE.RawShaderMaterial }) {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n // Run the program in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of indices.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = 0;\n material.uniforms.targetCount.value = count;\n let baseIndex = 0;\n\n // Keep generating layers until completed count items\n while (baseIndex < count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((count - layerBase) / SPLAT_TEX_WIDTH),\n );\n material.uniforms.targetLayer.value = layer;\n\n // Render the desired portion of the layer\n this.target.scissor.set(0, 0, SPLAT_TEX_WIDTH, layerYEnd);\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n Readback.fullScreenQuad.render(renderer);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.count = count;\n }\n\n private async read({\n readback,\n }: { readback: B }): Promise {\n const renderer = this.renderer;\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!this.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(this.count / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(\n readback instanceof ArrayBuffer ? readback : readback.buffer,\n );\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < this.count) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((this.count - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n renderer.setRenderTarget(this.target, layer);\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n const promise = renderer?.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n );\n promises.push(promise);\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n // const gl = renderer.getContext() as WebGL2RenderingContext;\n // gl.flush();\n return Promise.all(promises).then(() => readback);\n }\n\n // Perform render operation to run the Rgba8Readback program\n // but don't perform the readback yet.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer?: THREE.WebGLRenderer }) {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n this.process({ count, material });\n this.resetRenderState(this.renderer, renderState);\n }\n\n // Perform a readback of the render target, returning a buffer of the\n // given type.\n async readback({\n readback,\n }: { readback: B }): Promise {\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n const renderState = this.saveRenderState(this.renderer);\n const promise = this.read({ readback });\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n // Perform a render and readback operation for the given Rgba8Readback,\n // and readback buffer (call ensureBuffer first).\n async renderReadback({\n reader,\n count,\n renderer,\n readback,\n }: {\n reader: Rgba8Readback;\n count: number;\n renderer?: THREE.WebGLRenderer;\n readback: B;\n }): Promise {\n this.renderer = renderer || this.renderer;\n if (!this.renderer) {\n throw new Error(\"No renderer\");\n }\n\n this.ensureCapacity(count);\n\n const { program, material } = this.prepareProgramMaterial(reader);\n program.update();\n\n const renderState = this.saveRenderState(this.renderer);\n\n // Generate output\n this.process({ count, material });\n\n // Initiate readback\n const promise = this.read({ readback });\n\n this.resetRenderState(this.renderer, renderState);\n return promise;\n }\n\n getTexture(): THREE.DataArrayTexture | undefined {\n return this.target?.texture;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for Rgba8Readback programs\n static readbackProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n}\n","import * as THREE from \"three\";\n\nimport {\n CovSplat,\n Dyno,\n DynoInt,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { newArray } from \"./utils\";\n\n// Spark provides the ability to apply \"edits\" to Gsplats as part of the standard\n// SplatMesh pipeline. These edits take the form of a sequence of operations,\n// applied one at a time to the set of Gsplats in its packedSplats. Each operation\n// evaluates a 7-dimensional field (RGBA and XYZ displacement) at each point in\n// space that derives from N=1 or more Signed Distance Field shapes (such as spheres,\n// boxes, planes, etc.), blended together and across inside-outisde boundaries.\n\n// The result is a an RGBA,XYZ value for each point in space, which combined with\n// SplatEditRgbaBlendMode.MULTIPLY/SET_RGB/ADD_RGBA can be used to create special\n// effects, for example simulating simple lighting or applying deformations in space,\n// whose parameters can be updated each frame to create animated effects.\n\n// RGBA-XYZ values are computed by blending together values from all SDF shapes using\n// the exponential \"softmax\" function, which is commutative (so blending order within\n// a SplatEdit operation doesn't matter). The parameter SplatEdit.sdfSmooth controls\n// the blending scale between SDF shapes, while SplatEdit.softEdge controls the scale\n// of soft inside-outside shape edit blending. Their default values start at 0.0 and\n// should be increased to soften the effect.\n\n// Note that XYZ displacement values are blended in the same way as RGBA, with a\n// resulting displacement field that can be quite complex but \"softly\" blending\n// between shapes. These RGBA-XYZ edits, along with time-based and overlapping\n// fields can create many interesting animations and special effects, such as\n// rippling leaves in the wind, an angry fire, or a looping water effects. Simply\n// update the SplatEdit and SplatEditSdf objects and the operations will be applied\n// immediately to the Gsplats in the scene.\n\nexport enum SplatEditSdfType {\n // ALL: Affects all points in space\n ALL = \"all\",\n // PLANE: Infinite plane (position, rotation)\n PLANE = \"plane\",\n // SPHERE: Sphere (position, radius)\n SPHERE = \"sphere\",\n // BOX: Rounded box (position, rotation, sizes, radius)\n BOX = \"box\",\n // ELLIPSOID: Ellipsoid (position, rotation, sizes)\n ELLIPSOID = \"ellipsoid\",\n // CYLINDER: Cylinder (position, rotation, radius, size_y)\n CYLINDER = \"cylinder\",\n // CAPSULE: Capsule (position, rotation, radius, size_y)\n CAPSULE = \"capsule\",\n // INFINITE_CONE: Infinite cone (position, rotation, radius=angle)\n INFINITE_CONE = \"infinite_cone\",\n}\n\nfunction sdfTypeToNumber(type: SplatEditSdfType) {\n switch (type) {\n case SplatEditSdfType.ALL:\n return 0;\n case SplatEditSdfType.PLANE:\n return 1;\n case SplatEditSdfType.SPHERE:\n return 2;\n case SplatEditSdfType.BOX:\n return 3;\n case SplatEditSdfType.ELLIPSOID:\n return 4;\n case SplatEditSdfType.CYLINDER:\n return 5;\n case SplatEditSdfType.CAPSULE:\n return 6;\n case SplatEditSdfType.INFINITE_CONE:\n return 7;\n default:\n throw new Error(`Unknown SDF type: ${type}`);\n }\n}\n\nexport enum SplatEditRgbaBlendMode {\n // The RGBA of the splat is multiplied component-wise by the SDF’s\n // RGBA value at that point in space.\n MULTIPLY = \"multiply\",\n // Ignore the Alpha value in the SDF, but set the splat’s RGB to\n // equal the SDF’s RGB value at that point.\n SET_RGB = \"set_rgb\",\n // Add the SDF’s RGBA value at that point to the RGBA value of\n // the Gsplat. This can produce hyper-saturated results, but is useful\n // to easily “light up” areas.\n ADD_RGBA = \"add_rgba\",\n}\n\nfunction rgbaBlendModeToNumber(mode: SplatEditRgbaBlendMode) {\n switch (mode) {\n case SplatEditRgbaBlendMode.MULTIPLY:\n return 0;\n case SplatEditRgbaBlendMode.SET_RGB:\n return 1;\n case SplatEditRgbaBlendMode.ADD_RGBA:\n return 2;\n default:\n throw new Error(`Unknown blend mode: ${mode}`);\n }\n}\n\nexport type SplatEditSdfOptions = {\n // The SDF shape type: ALL, PLANE, SPHERE, BOX, ELLIPSOID, CYLINDER, CAPSULE,\n // or INFINITE_CONE. (default: SplatEditSdfType.SPHERE)\n type?: SplatEditSdfType;\n // Invert the SDF evaluation, swapping inside and outside regions. (default: false)\n invert?: boolean;\n // Opacity / \"alpha\" value used differently by blending modes (default: 1.0)\n opacity?: number;\n // RGB color applied within the shape. (default: new THREE.Color(1.0, 1.0, 1.0))\n color?: THREE.Color;\n // XYZ displacement applied to splat positions inside the shape.\n // (default: new THREE.Vector3(0.0, 0.0, 0.0))\n displace?: THREE.Vector3;\n // Shape-specific size parameter: sphere radius, box corner rounding,\n // cylinder/capsule radius, or for the infinite cone the angle factor\n // (opening half-angle = π/4 × radius).\n radius?: number;\n};\n\nexport class SplatEditSdf extends THREE.Object3D {\n type: SplatEditSdfType;\n invert: boolean;\n opacity: number;\n color: THREE.Color;\n displace: THREE.Vector3;\n radius: number;\n\n constructor(options: SplatEditSdfOptions = {}) {\n super();\n const { type, invert, opacity, color, displace, radius } = options;\n this.type = type ?? SplatEditSdfType.SPHERE;\n this.invert = invert ?? false;\n this.opacity = opacity ?? 1.0;\n this.color = color ?? new THREE.Color(1.0, 1.0, 1.0);\n this.displace = displace ?? new THREE.Vector3(0.0, 0.0, 0.0);\n this.radius = radius ?? 0.0;\n }\n}\n\nexport type SplatEditOptions = {\n // Name of this edit operation. If you omit it, a default \"Edit 1\", \"Edit 2\", ...\n // is assigned.\n name?: string;\n // How the SDF’s RGBA modifies each splat’s RGBA: multiply, overwrite RGB,\n // or add RGBA. (default: MULTIPLY)\n rgbaBlendMode?: SplatEditRgbaBlendMode;\n // Smoothing (in world‐space units) for blending between multiple SDF shapes\n // at their boundaries. (default: 0.0)\n sdfSmooth?: number;\n // Soft‐edge falloff radius (in world‐space units) around each SDF shape’s surface.\n // (default: 0.0)\n softEdge?: number;\n // Invert the SDF evaluation (inside/outside swap). (default: false)\n invert?: boolean;\n // Explicit array of SplatEditSdf objects to include. If null, any child\n // SplatEditSdf instances are used.\n sdfs?: SplatEditSdf[];\n};\n\nexport class SplatEdit extends THREE.Object3D {\n // ordering used to apply SplatEdit operations to Gsplats. This is implicitly\n // increased with each new SplatEdit. Reassigning ordering can be used to\n // reorder the operations.\n ordering: number;\n rgbaBlendMode: SplatEditRgbaBlendMode;\n sdfSmooth: number;\n softEdge: number;\n invert: boolean;\n\n // Optional list of explicit SDFs to including in this edit. If it is null, then\n // any SplatEditSdf children in the scene graph will be added automatically.\n sdfs: SplatEditSdf[] | null;\n\n // The next ordering number to use for a new SplatEdit, auto-incremented\n static nextOrdering = 1;\n\n constructor(options: SplatEditOptions = {}) {\n const {\n name,\n rgbaBlendMode = SplatEditRgbaBlendMode.MULTIPLY,\n sdfSmooth = 0.0,\n softEdge = 0.0,\n invert = false,\n sdfs = null,\n } = options;\n\n super();\n this.rgbaBlendMode = rgbaBlendMode;\n this.sdfSmooth = sdfSmooth;\n this.softEdge = softEdge;\n this.invert = invert;\n this.sdfs = sdfs;\n // Assign and auto-increment unique ordering number for this edit\n this.ordering = SplatEdit.nextOrdering++;\n // Automatically assign a default name if not provided\n this.name = name ?? `Edit ${this.ordering}`;\n }\n\n addSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n this.sdfs = [];\n }\n if (!this.sdfs.includes(sdf)) {\n this.sdfs.push(sdf);\n }\n }\n\n removeSdf(sdf: SplatEditSdf) {\n if (this.sdfs == null) {\n return;\n }\n this.sdfs = this.sdfs.filter((s) => s !== sdf);\n }\n}\n\n// Dyno implementation of RGBA-XYZ SDF editing.\n// The SDFs are encoded in a texture while the edits are encoded\n// as a uniform uvec4 array.\n\nexport class SplatEdits {\n // Maximum number of SDFs allocated\n maxSdfs: number;\n // Number of SDFs currently in use\n numSdfs: number;\n // Encoded SDF data\n sdfData: Uint32Array;\n // Float interpretation of SDF data\n sdfFloatData: Float32Array;\n // Texture with encoded SDF data\n sdfTexture: THREE.DataTexture;\n // An SdfArray dyno uniform\n dynoSdfArray: DynoUniform;\n\n // Maximum number of edits allocated\n maxEdits: number;\n // Number of edits currently in use\n numEdits: number;\n // Encoded edit data\n editData: Uint32Array;\n // Float interpretation of edit data\n editFloatData: Float32Array;\n // A dyno uniform for the number of edits\n dynoNumEdits: DynoUniform<\"int\", \"numEdits\">;\n // A dyno uniform for the encoded edits, one uvec4 per edit\n dynoEdits: DynoUniform<\"uvec4\", \"edits\">;\n\n constructor({ maxSdfs, maxEdits }: { maxSdfs?: number; maxEdits?: number }) {\n // Allocate at least 16 SDFs for efficiency\n this.maxSdfs = Math.max(16, maxSdfs ?? 0);\n this.numSdfs = 0;\n\n // Allocate space: 8 x (u)vec4 values per SDF, Uint32 and Float32 arrays\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n this.dynoSdfArray = new DynoUniform({\n key: \"sdfArray\",\n type: SdfArray,\n globals: () => [defineSdfArray],\n value: {\n numSdfs: 0,\n sdfTexture: this.sdfTexture,\n },\n update: (uniform) => {\n uniform.numSdfs = this.numSdfs;\n uniform.sdfTexture = this.sdfTexture;\n return uniform;\n },\n });\n\n // Allocate at least 16 edits slots for efficiency\n this.maxEdits = Math.max(16, maxEdits ?? 0);\n this.numEdits = 0;\n // Allocate space: 1 uvec4 per edit\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoNumEdits = new DynoInt({ value: 0 });\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n }\n\n private newSdfTexture(data: Uint32Array, maxSdfs: number) {\n const texture = new THREE.DataTexture(\n data,\n 8,\n maxSdfs,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n }\n\n private newEdits(data: Uint32Array, maxEdits: number) {\n return new DynoUniform({\n key: \"edits\",\n type: \"uvec4\",\n count: maxEdits,\n globals: () => [defineEdit],\n value: data,\n });\n }\n\n // Ensure our SDF texture and edits uniform array have enough capacity.\n // Reallocate if not.\n private ensureCapacity({\n maxSdfs,\n maxEdits,\n }: { maxSdfs: number; maxEdits: number }): boolean {\n let dynoUpdated = false;\n if (maxSdfs > this.sdfTexture.image.height) {\n this.sdfTexture.dispose();\n // At least double the size to avoid frequent reallocations\n this.maxSdfs = Math.max(this.maxSdfs * 2, maxSdfs);\n this.sdfData = new Uint32Array(this.maxSdfs * 8 * 4);\n this.sdfFloatData = new Float32Array(this.sdfData.buffer);\n this.sdfTexture = this.newSdfTexture(this.sdfData, this.maxSdfs);\n }\n if (maxEdits > (this.dynoEdits.count ?? 0)) {\n // At least double the size to avoid frequent reallocations\n this.maxEdits = Math.max(this.maxEdits * 2, maxEdits);\n this.editData = new Uint32Array(this.maxEdits * 4);\n this.editFloatData = new Float32Array(this.editData.buffer);\n this.dynoEdits = this.newEdits(this.editData, this.maxEdits);\n dynoUpdated = true;\n }\n return dynoUpdated;\n }\n\n private updateEditData(offset: number, value: number): boolean {\n // Update an edit uint32 value and return true if it changed\n const updated = this.editData[offset] !== value;\n this.editData[offset] = value;\n return updated;\n }\n\n private updateEditFloatData(offset: number, value: number): boolean {\n // Update an edit float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.editFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.editFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeEdit(\n editIndex: number,\n {\n sdfFirst,\n sdfCount,\n invert,\n rgbaBlendMode,\n softEdge,\n sdfSmooth,\n }: {\n sdfFirst: number;\n sdfCount: number;\n invert: boolean;\n rgbaBlendMode: number;\n softEdge: number;\n sdfSmooth: number;\n },\n ): boolean {\n const base = editIndex * 4;\n let updated = false;\n // Encode the edit fields into the editData array and check if any changed\n updated =\n this.updateEditData(base + 0, rgbaBlendMode | (invert ? 1 << 8 : 0)) ||\n updated;\n updated =\n this.updateEditData(base + 1, sdfFirst | (sdfCount << 16)) || updated;\n updated = this.updateEditFloatData(base + 2, softEdge) || updated;\n updated = this.updateEditFloatData(base + 3, sdfSmooth) || updated;\n return updated;\n }\n\n private updateSdfData(offset: number, value: number): boolean {\n // Update an SDF uint32 value and return true if it changed\n const updated = this.sdfData[offset] !== value;\n this.sdfData[offset] = value;\n return updated;\n }\n\n private updateSdfFloatData(offset: number, value: number): boolean {\n // Update an SDF float32 value and return true if it changed\n tempFloat32[0] = value;\n const updated = this.sdfFloatData[offset] !== tempFloat32[0];\n if (updated) {\n this.sdfFloatData[offset] = tempFloat32[0];\n }\n return updated;\n }\n\n private encodeSdf(\n sdfIndex: number,\n {\n sdfType,\n invert,\n center,\n quaternion,\n scale,\n sizes,\n }: {\n sdfType: number;\n invert?: boolean;\n center?: THREE.Vector3;\n quaternion?: THREE.Quaternion;\n scale?: THREE.Vector3;\n sizes?: THREE.Vector4;\n },\n values: THREE.Vector4[],\n ): boolean {\n // Encode the SDF fields into the sdfData array and check if any changed\n const base = sdfIndex * (8 * 4);\n const flags = sdfType | (invert ? 1 << 8 : 0);\n let updated = false;\n\n updated = this.updateSdfFloatData(base + 0, center?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 1, center?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 2, center?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 3, flags) || updated;\n\n updated = this.updateSdfFloatData(base + 4, quaternion?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 5, quaternion?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 6, quaternion?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 7, quaternion?.w ?? 0) || updated;\n\n updated = this.updateSdfFloatData(base + 8, scale?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 9, scale?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 10, scale?.z ?? 0) || updated;\n updated = this.updateSdfData(base + 11, 0) || updated;\n\n updated = this.updateSdfFloatData(base + 12, sizes?.x ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 13, sizes?.y ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 14, sizes?.z ?? 0) || updated;\n updated = this.updateSdfFloatData(base + 15, sizes?.w ?? 0) || updated;\n\n const nValues = Math.min(4, values.length);\n for (let i = 0; i < nValues; ++i) {\n const vBase = base + 16 + i * 4;\n updated = this.updateSdfFloatData(vBase + 0, values[i].x) || updated;\n updated = this.updateSdfFloatData(vBase + 1, values[i].y) || updated;\n updated = this.updateSdfFloatData(vBase + 2, values[i].z) || updated;\n updated = this.updateSdfFloatData(vBase + 3, values[i].w) || updated;\n }\n return updated;\n }\n\n // Update the SDFs and edits from an array of SplatEdits and their\n // associated SplatEditSdfs, updating it for the dyno shader program.\n update(edits: { edit: SplatEdit; sdfs: SplatEditSdf[] }[]): {\n updated: boolean;\n dynoUpdated: boolean;\n } {\n const sdfCount = edits.reduce((total, { sdfs }) => total + sdfs.length, 0);\n const dynoUpdated = this.ensureCapacity({\n maxEdits: edits.length,\n maxSdfs: sdfCount,\n });\n\n const values = [new THREE.Vector4(), new THREE.Vector4()];\n const center = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const scale = new THREE.Vector3();\n const sizes = new THREE.Vector4();\n\n let sdfIndex = 0;\n let updated = dynoUpdated;\n\n if (edits.length !== this.dynoNumEdits.value) {\n this.dynoNumEdits.value = edits.length;\n this.numEdits = edits.length;\n updated = true;\n }\n\n for (const [editIndex, { edit, sdfs }] of edits.entries()) {\n updated =\n this.encodeEdit(editIndex, {\n sdfFirst: sdfIndex,\n sdfCount: sdfs.length,\n invert: edit.invert,\n rgbaBlendMode: rgbaBlendModeToNumber(edit.rgbaBlendMode),\n softEdge: edit.softEdge,\n sdfSmooth: edit.sdfSmooth,\n }) || updated;\n\n let sdfUpdated = false;\n for (const sdf of sdfs) {\n sizes.set(sdf.scale.x, sdf.scale.y, sdf.scale.z, sdf.radius);\n // Temporarily set the SDF scale to 1.0 to get the world-to-SDF\n // transform without scaling. The SDF treats the scale separately.\n sdf.scale.setScalar(1.0);\n sdf.updateMatrixWorld();\n const worldToSdf = sdf.matrixWorld.clone().invert();\n worldToSdf.decompose(center, quaternion, scale);\n\n sdf.scale.set(sizes.x, sizes.y, sizes.z);\n sdf.updateMatrixWorld();\n\n values[0].set(sdf.color.r, sdf.color.g, sdf.color.b, sdf.opacity);\n values[1].set(sdf.displace.x, sdf.displace.y, sdf.displace.z, 1.0);\n\n sdfUpdated =\n this.encodeSdf(\n sdfIndex,\n {\n sdfType: sdfTypeToNumber(sdf.type),\n invert: sdf.invert,\n center,\n quaternion,\n scale,\n sizes,\n },\n values,\n ) || sdfUpdated;\n\n sdfIndex += 1;\n }\n this.numSdfs = sdfIndex;\n if (sdfUpdated) {\n this.sdfTexture.needsUpdate = true;\n }\n updated ||= sdfUpdated;\n }\n return { updated, dynoUpdated };\n }\n\n // Modify a Gsplat in a dyno shader program using the current edits and SDFs.\n modify(gsplat: DynoVal): DynoVal {\n return applyGsplatRgbaDisplaceEdits(\n gsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n return applyCovSplatRgbaDisplaceEdits(\n covsplat,\n this.dynoSdfArray,\n this.dynoNumEdits,\n this.dynoEdits,\n );\n }\n}\n\n// Dyno types and components:\n\n// An SdfArray contains a collection of SDFs encoded in a texture.\n// Each SDF has a type and geometric parameters, but also encodes\n// 4 x vec4 values, which can all be blended across multiple SDFs.\n// The SplatEdit system uses 7 of these 16 values to encode RGBA-XYZ edits,\n// but more can be added, and these SDFs can be used for entirely different\n// purposes as well.\n\nexport const SdfArray = { type: \"SdfArray\" } as { type: \"SdfArray\" };\n\nexport const defineSdfArray = unindent(`\n struct SdfArray {\n int numSdfs;\n usampler2D sdfTexture;\n };\n\n void unpackSdfArray(\n usampler2D sdfTexture, int sdfIndex, out uint flags,\n out vec3 center, out vec4 quaternion, out vec3 scale, out vec4 sizes,\n int numValues, out vec4 values[4]\n ) {\n uvec4 temp = texelFetch(sdfTexture, ivec2(0, sdfIndex), 0);\n flags = temp.w;\n center = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(1, sdfIndex), 0);\n quaternion = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n temp = texelFetch(sdfTexture, ivec2(2, sdfIndex), 0);\n scale = vec3(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z));\n\n temp = texelFetch(sdfTexture, ivec2(3, sdfIndex), 0);\n sizes = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n\n for (int i = 0; i < numValues; ++i) {\n temp = texelFetch(sdfTexture, ivec2(4 + i, sdfIndex), 0);\n values[i] = vec4(uintBitsToFloat(temp.x), uintBitsToFloat(temp.y), uintBitsToFloat(temp.z), uintBitsToFloat(temp.w));\n }\n }\n\n const uint SDF_FLAG_TYPE = 0xFFu;\n const uint SDF_FLAG_INVERT = 1u << 8u;\n\n const uint SDF_TYPE_ALL = 0u;\n const uint SDF_TYPE_PLANE = 1u;\n const uint SDF_TYPE_SPHERE = 2u;\n const uint SDF_TYPE_BOX = 3u;\n const uint SDF_TYPE_ELLIPSOID = 4u;\n const uint SDF_TYPE_CYLINDER = 5u;\n const uint SDF_TYPE_CAPSULE = 6u;\n const uint SDF_TYPE_INFINITE_CONE = 7u;\n\n float evaluateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 outValues[4]\n ) {\n float distanceAccum = (smoothK == 0.0) ? 1.0 / 0.0 : 0.0;\n float maxExp = -1.0 / 0.0;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = vec4(0.0);\n }\n\n uint flags;\n vec3 center, scale;\n vec4 quaternion, sizes;\n vec4 values[4];\n\n int sdfLast = min(sdfFirst + sdfCount, numSdfs);\n for (int index = sdfFirst; index < sdfLast; ++index) {\n unpackSdfArray(sdfTexture, index, flags, center, quaternion, scale, sizes, numValues, values);\n uint sdfType = flags & SDF_FLAG_TYPE;\n vec3 sdfPos = quatVec(quaternion, pos * scale) + center;\n\n float distance;\n switch (sdfType) {\n case SDF_TYPE_ALL:\n distance = -1.0 / 0.0;\n break;\n case SDF_TYPE_PLANE: {\n distance = sdfPos.z;\n break;\n }\n case SDF_TYPE_SPHERE: {\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_BOX: {\n vec3 q = abs(sdfPos) - sizes.xyz + sizes.w;\n distance = length(max(q, 0.0)) + min(max(q.x, max(q.y, q.z)), 0.0) - sizes.w;\n break;\n }\n case SDF_TYPE_ELLIPSOID: {\n vec3 sizes = sizes.xyz;\n float k0 = length(sdfPos / sizes);\n float k1 = length(sdfPos / dot(sizes, sizes));\n distance = k0 * (k0 - 1.0) / k1;\n break;\n }\n case SDF_TYPE_CYLINDER: {\n vec2 d = abs(vec2(length(sdfPos.xz), sdfPos.y)) - sizes.wy;\n distance = min(max(d.x, d.y), 0.0) + length(max(d, 0.0));\n break;\n }\n case SDF_TYPE_CAPSULE: {\n sdfPos.y -= clamp(sdfPos.y, -0.5 * sizes.y, 0.5 * sizes.y);\n distance = length(sdfPos) - sizes.w;\n break;\n }\n case SDF_TYPE_INFINITE_CONE: {\n float angle = 0.25 * PI * sizes.w;\n vec2 c = vec2(sin(angle), cos(angle));\n vec2 q = vec2(length(sdfPos.xy), -sdfPos.z);\n float d = length(q - c * max(dot(q, c), 0.0));\n distance = d * (((q.x * c.y - q.y * c.x) < 0.0) ? -1.0 : 1.0);\n break;\n }\n }\n\n if ((flags & SDF_FLAG_INVERT) != 0u) {\n distance = -distance;\n }\n\n if (smoothK == 0.0) {\n if (distance < distanceAccum) {\n distanceAccum = distance;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] = values[i];\n }\n }\n } else {\n float scaledDistance = -distance / smoothK;\n if (scaledDistance > maxExp) {\n float scale = exp(maxExp - scaledDistance);\n distanceAccum *= scale;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] *= scale;\n }\n maxExp = scaledDistance;\n }\n\n float weight = exp(scaledDistance - maxExp);\n distanceAccum += weight;\n for (int i = 0; i < numValues; ++i) {\n outValues[i] += weight * values[i];\n }\n }\n }\n\n if (smoothK == 0.0) {\n return distanceAccum;\n } else {\n // Very distant SDFs may result in 0 accumulation\n if (distanceAccum == 0.0) {\n return 1.0 / 0.0;\n }\n for (int i = 0; i < numValues; ++i) {\n outValues[i] /= distanceAccum;\n }\n return (-log(distanceAccum) - maxExp) * smoothK;\n }\n }\n\n float modulateSdfArray(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, vec3 pos,\n float smoothK, int numValues, out vec4 values[4],\n float softEdge, bool invert\n ) {\n float distance = evaluateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, numValues, values);\n if (invert) {\n distance = -distance;\n }\n\n return (softEdge == 0.0) ? ((distance < 0.0) ? 1.0 : 0.0)\n : clamp(-distance / softEdge + 0.5, 0.0, 1.0);\n }\n`);\n\nexport const defineEdit = unindent(`\n const uint EDIT_FLAG_BLEND = 0xFFu;\n const uint EDIT_BLEND_MULTIPLY = 0u;\n const uint EDIT_BLEND_SET_RGB = 1u;\n const uint EDIT_BLEND_ADD_RGBA = 2u;\n const uint EDIT_FLAG_INVERT = 0x100u;\n\n void decodeEdit(\n uvec4 packedEdit, out int sdfFirst, out int sdfCount,\n out bool invert, out uint rgbaBlendMode, out float softEdge, out float sdfSmooth\n ) {\n rgbaBlendMode = packedEdit.x & EDIT_FLAG_BLEND;\n invert = (packedEdit.x & EDIT_FLAG_INVERT) != 0u;\n\n sdfFirst = int(packedEdit.y & 0xFFFFu);\n sdfCount = int(packedEdit.y >> 16u);\n\n softEdge = uintBitsToFloat(packedEdit.z);\n sdfSmooth = uintBitsToFloat(packedEdit.w);\n }\n\n void applyRgbaDisplaceEdit(\n usampler2D sdfTexture, int numSdfs, int sdfFirst, int sdfCount, inout vec3 pos,\n float smoothK, float softEdge, bool invert, uint rgbaBlendMode, inout vec4 rgba\n ) {\n vec4 values[4];\n float modulate = modulateSdfArray(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, smoothK, 2, values, softEdge, invert);\n // On Android, moving values[0] is necessary to work around a compiler bug.\n vec4 sdfRgba = values[0];\n vec4 sdfDisplaceScale = values[1];\n\n vec4 target;\n switch (rgbaBlendMode) {\n case EDIT_BLEND_MULTIPLY:\n target = rgba * sdfRgba;\n break;\n case EDIT_BLEND_SET_RGB:\n target = vec4(sdfRgba.rgb, rgba.a * sdfRgba.a);\n break;\n case EDIT_BLEND_ADD_RGBA:\n target = rgba + sdfRgba;\n break;\n default:\n // Debug output if blend mode not set\n target = vec4(fract(pos), 1.0);\n }\n rgba = mix(rgba, target, modulate);\n pos += sdfDisplaceScale.xyz * modulate;\n }\n\n void applyPackedRgbaDisplaceEdit(uvec4 packedEdit, usampler2D sdfTexture, int numSdfs, inout vec3 pos, inout vec4 rgba) {\n int sdfFirst, sdfCount;\n bool invert;\n uint rgbaBlendMode;\n float softEdge, sdfSmooth;\n decodeEdit(packedEdit, sdfFirst, sdfCount, invert, rgbaBlendMode, softEdge, sdfSmooth);\n applyRgbaDisplaceEdit(sdfTexture, numSdfs, sdfFirst, sdfCount, pos, sdfSmooth, softEdge, invert, rgbaBlendMode, rgba);\n }\n`);\n\nfunction applyGsplatRgbaDisplaceEdits(\n gsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n gsplat: typeof Gsplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { gsplat: typeof Gsplat }\n >({\n inTypes: {\n gsplat: Gsplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { gsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${gsplat}.center, ${gsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nfunction applyCovSplatRgbaDisplaceEdits(\n covsplat: DynoVal,\n sdfArray: DynoVal,\n numEdits: DynoVal<\"int\">,\n rgbaDisplaceEdits: DynoVal<\"uvec4\">,\n): DynoVal {\n const dyno = new Dyno<\n {\n covsplat: typeof CovSplat;\n sdfArray: typeof SdfArray;\n numEdits: \"int\";\n rgbaDisplaceEdits: \"uvec4\";\n },\n { covsplat: typeof CovSplat }\n >({\n inTypes: {\n covsplat: CovSplat,\n sdfArray: SdfArray,\n numEdits: \"int\",\n rgbaDisplaceEdits: \"uvec4\",\n },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineSdfArray, defineEdit],\n inputs: { covsplat, sdfArray, numEdits, rgbaDisplaceEdits },\n statements: ({ inputs, outputs }) => {\n const { sdfArray, numEdits, rgbaDisplaceEdits } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n for (int editIndex = 0; editIndex < ${numEdits}; ++editIndex) {\n applyPackedRgbaDisplaceEdit(\n ${rgbaDisplaceEdits}[editIndex], ${sdfArray}.sdfTexture, ${sdfArray}.numSdfs,\n ${covsplat}.center, ${covsplat}.rgba\n );\n }\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nconst tempFloat32 = new Float32Array(1);\n","import * as THREE from \"three\";\nimport type { SplatEdit } from \"./SplatEdit\";\nimport {\n CovSplat,\n Dyno,\n DynoFloat,\n DynoMat3,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n Gsplat,\n add,\n dynoBlock,\n mul,\n transformDir,\n transformGsplat,\n transformPos,\n unindentLines,\n} from \"./dyno\";\n\n// A GsplatGenerator is a dyno program that maps an index to a Gsplat's properties\n\nexport type GsplatGenerator = Dyno<{ index: \"int\" }, { gsplat: typeof Gsplat }>;\n\nexport type CovSplatGenerator = Dyno<\n { index: \"int\" },\n { covsplat: typeof CovSplat }\n>;\n\n// A GsplatModifier is a dyno program that inputs a Gsplat, modifies, and outputs it\n\nexport type GsplatModifier = Dyno<\n { gsplat: typeof Gsplat },\n { gsplat: typeof Gsplat }\n>;\n\nexport type CovSplatModifier = Dyno<\n { covsplat: typeof CovSplat },\n { covsplat: typeof CovSplat }\n>;\n\n// A SplatModifier is a utility class to apply a GsplatModifier to\n// a GsplatGenerator pipeline, caching the combined result for efficiency.\n\nexport class SplatModifier {\n modifier: GsplatModifier;\n cache: Map;\n\n constructor(modifier: GsplatModifier) {\n this.modifier = modifier;\n this.cache = new Map();\n }\n\n apply(generator: GsplatGenerator): GsplatGenerator {\n let modified = this.cache.get(generator);\n if (!modified) {\n modified = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n const { gsplat } = generator.apply({ index });\n return this.modifier.apply({ gsplat });\n },\n );\n this.cache.set(generator, modified);\n }\n return modified;\n }\n}\n\n// A SplatTransformer is a utility class to apply a transform to a Gsplat\n// via a scale, rotation, and translation. Scale is a single float because\n// anisotropic scaling of Gsplats is not supported.\n\nexport class SplatTransformer {\n scale: DynoFloat;\n rotate: DynoVec4;\n translate: DynoVec3;\n\n // Create the dyno uniforms that parameterize the transform, setting them\n // to initial values that are different from any valid transform.\n constructor() {\n this.scale = new DynoFloat({ value: Number.NEGATIVE_INFINITY });\n this.rotate = new DynoVec4({\n value: new THREE.Quaternion(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n this.translate = new DynoVec3({\n value: new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n ),\n });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformPos(position, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return transformDir(dir, {\n rotate: this.rotate,\n });\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyGsplat(gsplat: DynoVal): DynoVal {\n return transformGsplat(gsplat, {\n scale: this.scale,\n rotate: this.rotate,\n translate: this.translate,\n });\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const scale = new THREE.Vector3();\n const quaternion = new THREE.Quaternion();\n const position = new THREE.Vector3();\n transform.decompose(position, quaternion, scale);\n const newScale = (scale.x + scale.y + scale.z) / 3;\n\n let updated = false;\n if (newScale !== this.scale.value) {\n this.scale.value = newScale;\n updated = true;\n }\n if (!position.equals(this.translate.value)) {\n this.translate.value.copy(position);\n updated = true;\n }\n if (!quaternion.equals(this.rotate.value)) {\n this.rotate.value.copy(quaternion);\n updated = true;\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\nexport class CovSplatTransformer {\n basis: DynoMat3<\"basis\", THREE.Matrix3>;\n offset: DynoVec3;\n\n constructor() {\n this.basis = new DynoMat3({ value: new THREE.Matrix3() });\n this.offset = new DynoVec3({ value: new THREE.Vector3() });\n }\n\n // Apply the transform to a Vec3 position in a dyno program.\n apply(position: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n const rebased = mul(this.basis, position);\n return add(rebased, this.offset);\n }\n\n applyDir(dir: DynoVal<\"vec3\">): DynoVal<\"vec3\"> {\n return mul(this.basis, dir);\n }\n\n // Apply the transform to a Gsplat in a dyno program.\n applyCovSplat(covsplat: DynoVal): DynoVal {\n return new Dyno({\n inTypes: { covsplat: CovSplat, basis: \"mat3\", offset: \"vec3\" },\n outTypes: { covsplat: CovSplat },\n inputs: { covsplat, basis: this.basis, offset: this.offset },\n statements: ({ inputs, outputs }) => {\n const { covsplat, basis, offset } = inputs;\n if (!covsplat || !basis || !offset) {\n return [`${outputs.covsplat}.flags = 0u;`];\n }\n return unindentLines(`\n ${outputs.covsplat}.flags = 0u;\n if (isCovSplatActive(${covsplat}.flags)) {\n ${outputs.covsplat}.flags = ${covsplat}.flags;\n ${outputs.covsplat}.index = ${covsplat}.index;\n ${outputs.covsplat}.rgba = ${covsplat}.rgba;\n\n ${outputs.covsplat}.center = ${basis} * ${covsplat}.center + ${offset};\n \n mat3 cov = mat3(\n ${covsplat}.xxyyzz.x, ${covsplat}.xyxzyz.x, ${covsplat}.xyxzyz.y,\n ${covsplat}.xyxzyz.x, ${covsplat}.xxyyzz.y, ${covsplat}.xyxzyz.z,\n ${covsplat}.xyxzyz.y, ${covsplat}.xyxzyz.z, ${covsplat}.xxyyzz.z\n );\n cov = ${basis} * cov * transpose(${basis});\n ${outputs.covsplat}.xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n ${outputs.covsplat}.xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n `);\n },\n }).outputs.covsplat;\n }\n\n // Update the uniforms to match the given transform matrix.\n updateFromMatrix(transform: THREE.Matrix4) {\n const basis = new THREE.Matrix3().setFromMatrix4(transform);\n const offset = new THREE.Vector3().setFromMatrixColumn(transform, 3);\n\n const updated =\n !basis.equals(this.basis.value) || !offset.equals(this.offset.value);\n if (updated) {\n this.basis.value.copy(basis);\n this.offset.value.copy(offset);\n }\n return updated;\n }\n\n // Update this transform to match the object's to-world transform.\n update(object: THREE.Object3D): boolean {\n object.updateMatrixWorld();\n return this.updateFromMatrix(object.matrixWorld);\n }\n}\n\n// SplatGenerator is an Object3D that can be placed anywhere in the scene\n// to generate Gsplats into the world for SparkRenderer. All Gsplats from\n// SplatGenerators across the scene will be accumulated into a single\n// SplatAccumulator, which are sorted and rendered together.\n//\n// Each SplatGenerator has two main properties:\n// - numSplats: the number of Gsplats to generate\n// - generator: a GsplatGenerator dyno program that maps a splat index\n// to a Gsplat's properties\n// Each of these properties can be changed at anytime, however changing\n// numSplats means we no longer have a correspondence between Gsplats\n// in successive frames, meaning we can't reuse the previous Gsplat sort\n// order. Similarly, changing the generator requires re-generating the\n// shader program, which will trigger a GPU shader compilation the first\n// time (possibly a perceptible \"hickup\" in the framerate) but is cached\n// subsequence times if the generator is the same as one that was used previously.\n//\n// A SplatGenerator also has a custom frameUpdate function that is called\n// on each execution, allowing you to update uniforms or other parameters that\n// affect the generation. If the Gsplats are changed, you must call\n// updateVersion() (alternatively, set needsUpdate to true) to trigger a\n// re-generation of the Gsplats for this SplatGenerator.\n\nexport interface FrameUpdateContext {\n renderer: THREE.WebGLRenderer;\n object: SplatGenerator;\n time: number;\n deltaTime: number;\n viewToWorld: THREE.Matrix4;\n camera?: THREE.Camera;\n renderSize?: THREE.Vector2;\n globalEdits: SplatEdit[];\n lodIndices?: { numSplats: number; texture: THREE.DataTexture };\n}\n\nexport class SplatGenerator extends THREE.Object3D {\n numSplats: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n generatorError?: unknown;\n covGeneratorError?: unknown;\n frameUpdate?: (context: FrameUpdateContext) => void;\n version: number;\n mappingVersion: number;\n\n constructor({\n numSplats,\n generator,\n covGenerator,\n construct,\n update,\n }: {\n numSplats?: number;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n construct?: (object: SplatGenerator) => {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n numSplats?: number;\n frameUpdate?: (context: FrameUpdateContext) => void;\n };\n update?: (context: FrameUpdateContext) => void;\n }) {\n super();\n\n this.numSplats = numSplats ?? 0;\n this.generator = generator;\n this.covGenerator = covGenerator;\n this.frameUpdate = update;\n this.version = 0;\n this.mappingVersion = 0;\n\n if (construct) {\n const constructed = construct(this);\n // If we returned something, update our properties\n Object.assign(this, constructed);\n }\n }\n\n updateVersion() {\n this.version += 1;\n }\n\n updateMappingVersion() {\n this.mappingVersion += 1;\n this.version += 1;\n }\n\n set needsUpdate(value: boolean) {\n if (value) {\n this.updateVersion();\n }\n }\n}\n","/* @ts-self-types=\"./spark_rs.d.ts\" */\n\nexport class ChunkDecoder {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ChunkDecoder.prototype);\n obj.__wbg_ptr = ptr;\n ChunkDecoderFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ChunkDecoderFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_chunkdecoder_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n finish() {\n const ptr = this.__destroy_into_raw();\n const ret = wasm.chunkdecoder_finish(ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {Uint8Array} bytes\n */\n push(bytes) {\n const ret = wasm.chunkdecoder_push(this.__wbg_ptr, bytes);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n}\nif (Symbol.dispose) ChunkDecoder.prototype[Symbol.dispose] = ChunkDecoder.prototype.free;\n\nexport class CsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n CsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_csplatarray_free(ptr, 0);\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.csplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.csplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.csplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.csplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.csplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.csplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.csplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats() {\n const ret = wasm.csplatarray_to_packedsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_packedsplats_lod() {\n const ret = wasm.csplatarray_to_packedsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_csplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_csplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_csplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_csplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) CsplatArray.prototype[Symbol.dispose] = CsplatArray.prototype.free;\n\nexport class GsplatArray {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(GsplatArray.prototype);\n obj.__wbg_ptr = ptr;\n GsplatArrayFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n GsplatArrayFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_gsplatarray_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get maxShDegree() {\n const ret = wasm.__wbg_get_gsplatarray_maxShDegree(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get numSplats() {\n const ret = wasm.__wbg_get_gsplatarray_numSplats(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n */\n bhatt_lod(lod_base) {\n wasm.gsplatarray_bhatt_lod(this.__wbg_ptr, lod_base);\n }\n /**\n * @returns {boolean}\n */\n has_lod() {\n const ret = wasm.gsplatarray_has_lod(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * @param {Uint8Array} rgba\n */\n inject_rgba8(rgba) {\n wasm.gsplatarray_inject_rgba8(this.__wbg_ptr, rgba);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.gsplatarray_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} lod_base\n * @param {boolean} merge_filter\n */\n tiny_lod(lod_base, merge_filter) {\n wasm.gsplatarray_tiny_lod(this.__wbg_ptr, lod_base, merge_filter);\n }\n /**\n * @returns {object}\n */\n to_extsplats() {\n const ret = wasm.gsplatarray_to_extsplats(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @returns {object}\n */\n to_extsplats_lod() {\n const ret = wasm.gsplatarray_to_extsplats_lod(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} encoding\n * @returns {object}\n */\n to_packedsplats_lod(encoding) {\n const ret = wasm.gsplatarray_to_packedsplats_lod(this.__wbg_ptr, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {number} arg0\n */\n set maxShDegree(arg0) {\n wasm.__wbg_set_gsplatarray_maxShDegree(this.__wbg_ptr, arg0);\n }\n /**\n * @param {number} arg0\n */\n set numSplats(arg0) {\n wasm.__wbg_set_gsplatarray_numSplats(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) GsplatArray.prototype[Symbol.dispose] = GsplatArray.prototype.free;\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function bhatt_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, rgba) {\n const ret = wasm.bhatt_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function bhatt_lod_packedsplats(num_splats, packed, extra, lod_base, rgba, encoding) {\n const ret = wasm.bhatt_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {any}\n */\nexport function decode_rad_header(bytes) {\n const ret = wasm.decode_rad_header(bytes);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @returns {ChunkDecoder}\n */\nexport function decode_to_csplatarray(file_type, path_name, encoding) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_csplatarray(ptr0, len0, ptr1, len1, encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_extsplats(file_type, path_name, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_extsplats(ptr0, len0, ptr1, len1, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null} [file_type]\n * @param {string | null} [path_name]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_gsplatarray(file_type, path_name) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_gsplatarray(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {string | null | undefined} file_type\n * @param {string | null | undefined} path_name\n * @param {any} encoding\n * @param {Uint32Array | null} [sh1_codes]\n * @param {Uint32Array | null} [sh2_codes]\n * @param {Uint32Array | null} [sh3_codes]\n * @returns {ChunkDecoder}\n */\nexport function decode_to_packedsplats(file_type, path_name, encoding, sh1_codes, sh2_codes, sh3_codes) {\n var ptr0 = isLikeNone(file_type) ? 0 : passStringToWasm0(file_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(path_name) ? 0 : passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.decode_to_packedsplats(ptr0, len0, ptr1, len1, encoding, isLikeNone(sh1_codes) ? 0 : addToExternrefTable0(sh1_codes), isLikeNone(sh2_codes) ? 0 : addToExternrefTable0(sh2_codes), isLikeNone(sh3_codes) ? 0 : addToExternrefTable0(sh3_codes));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ChunkDecoder.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n */\nexport function dispose_lod_tree(lod_id) {\n wasm.dispose_lod_tree(lod_id);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.dynamic_traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null} [extra]\n * @returns {GsplatArray}\n */\nexport function extsplats_to_gsplatarray(num_splats, ext1, ext2, extra) {\n const ret = wasm.extsplats_to_gsplatarray(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} lod_id\n * @param {number} level\n * @returns {object}\n */\nexport function get_lod_tree_level(lod_id, level) {\n const ret = wasm.get_lod_tree_level(lod_id, level);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer() {\n const ret = wasm.get_raycast_buffer();\n return ret;\n}\n\n/**\n * @returns {Uint32Array}\n */\nexport function get_raycast_buffer2() {\n const ret = wasm.get_raycast_buffer2();\n return ret;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} lod_tree\n * @returns {object}\n */\nexport function init_lod_tree(num_splats, lod_tree) {\n const ret = wasm.init_lod_tree(num_splats, lod_tree);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} capacity\n * @returns {object}\n */\nexport function new_lod_tree(capacity) {\n const ret = wasm.new_lod_tree(capacity);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} orig_lod_id\n * @returns {object}\n */\nexport function new_shared_lod_tree(orig_lod_id) {\n const ret = wasm.new_shared_lod_tree(orig_lod_id);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {CsplatArray}\n */\nexport function packedsplats_to_csplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_csplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return CsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {any} encoding\n * @returns {GsplatArray}\n */\nexport function packedsplats_to_gsplatarray(num_splats, packed, extra, encoding) {\n const ret = wasm.packedsplats_to_gsplatarray(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return GsplatArray.__wrap(ret[0]);\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @returns {Float32Array}\n */\nexport function raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count) {\n const ret = wasm.raycast_ext_buffers(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} count\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_buffer(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, count, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @param {number} origin_x\n * @param {number} origin_y\n * @param {number} origin_z\n * @param {number} dir_x\n * @param {number} dir_y\n * @param {number} dir_z\n * @param {number} min_opacity\n * @param {number} near\n * @param {number} far\n * @param {number} num_splats\n * @param {Uint32Array} packed_splats\n * @param {number} ln_scale_min\n * @param {number} ln_scale_max\n * @param {boolean} lod_opacity\n * @returns {Float32Array}\n */\nexport function raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity) {\n const ret = wasm.raycast_packed_splats(origin_x, origin_y, origin_z, dir_x, dir_y, dir_z, min_opacity, near, far, num_splats, packed_splats, ln_scale_min, ln_scale_max, lod_opacity);\n return ret;\n}\n\n/**\n * @returns {boolean}\n */\nexport function simd_enabled() {\n const ret = wasm.simd_enabled();\n return ret !== 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort32_splats(num_splats, readback, ordering) {\n const ret = wasm.sort32_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint16Array} readback\n * @param {Uint32Array} ordering\n * @returns {number}\n */\nexport function sort_splats(num_splats, readback, ordering) {\n const ret = wasm.sort_splats(num_splats, readback, ordering);\n return ret >>> 0;\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} ext1\n * @param {Uint32Array} ext2\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null} [rgba]\n * @returns {object}\n */\nexport function tiny_lod_extsplats(num_splats, ext1, ext2, extra, lod_base, merge_filter, rgba) {\n const ret = wasm.tiny_lod_extsplats(num_splats, ext1, ext2, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} num_splats\n * @param {Uint32Array} packed\n * @param {object | null | undefined} extra\n * @param {number} lod_base\n * @param {boolean} merge_filter\n * @param {Uint8Array | null | undefined} rgba\n * @param {any} encoding\n * @returns {object}\n */\nexport function tiny_lod_packedsplats(num_splats, packed, extra, lod_base, merge_filter, rgba, encoding) {\n const ret = wasm.tiny_lod_packedsplats(num_splats, packed, isLikeNone(extra) ? 0 : addToExternrefTable0(extra), lod_base, merge_filter, isLikeNone(rgba) ? 0 : addToExternrefTable0(rgba), encoding);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {number} max_splats\n * @param {number} pixel_scale_limit\n * @param {number | null | undefined} _last_pixel_limit\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} root_pages\n * @param {Float32Array} view_to_objects\n * @param {Float32Array} lod_scales\n * @param {Float32Array} behind_foveates\n * @param {Float32Array} cone_foveates\n * @param {Float32Array} cone_fov0s\n * @param {Float32Array} cone_fovs\n * @returns {object}\n */\nexport function traverse_lod_trees(max_splats, pixel_scale_limit, _last_pixel_limit, lod_ids, root_pages, view_to_objects, lod_scales, behind_foveates, cone_foveates, cone_fov0s, cone_fovs) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(root_pages, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayF32ToWasm0(view_to_objects, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArrayF32ToWasm0(lod_scales, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArrayF32ToWasm0(behind_foveates, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArrayF32ToWasm0(cone_foveates, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArrayF32ToWasm0(cone_fov0s, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArrayF32ToWasm0(cone_fovs, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.traverse_lod_trees(max_splats, pixel_scale_limit, isLikeNone(_last_pixel_limit) ? 0x100000001 : Math.fround(_last_pixel_limit), ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\n/**\n * @param {Uint32Array} lod_ids\n * @param {Uint32Array} page_bases\n * @param {Uint32Array} chunk_bases\n * @param {Uint32Array} counts\n * @param {Array} lod_trees\n * @returns {object}\n */\nexport function update_lod_trees(lod_ids, page_bases, chunk_bases, counts, lod_trees) {\n const ptr0 = passArray32ToWasm0(lod_ids, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(page_bases, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_bases, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(counts, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ret = wasm.update_lod_trees(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, lod_trees);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n}\n\nexport function wasm_start() {\n wasm.wasm_start();\n}\n\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n },\n __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n },\n __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n },\n __wbg___wbindgen_is_falsy_c6ddfae1bb56d5ef: function(arg0) {\n const ret = !arg0;\n return ret;\n },\n __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n },\n __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n },\n __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_csplatarray_new: function(arg0) {\n const ret = CsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_get_4848e350b40afc16: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_f96702c6245e4ef9: function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments); },\n __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n },\n __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n },\n __wbg_gsplatarray_new: function(arg0) {\n const ret = GsplatArray.__wrap(arg0);\n return ret;\n },\n __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n },\n __wbg_length_0c32cb8543c8e4c8: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_1e701798fdcaa3b4: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_6e821edde497a532: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_a4ca9e78359b5f1f: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_length_fd4646b401926788: function(arg0) {\n const ret = arg0.length;\n return ret;\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return ret;\n },\n __wbg_new_4f9fafbb3909af72: function() {\n const ret = new Object();\n return ret;\n },\n __wbg_new_a560378ea1240b14: function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n },\n __wbg_new_f3c9df4f38f3f798: function() {\n const ret = new Array();\n return ret;\n },\n __wbg_new_with_length_26bffbe236bf73f9: function(arg0) {\n const ret = new Float32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_new_with_length_41a22191b9bdfd66: function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n },\n __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_64c287a27cc24d27: function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n },\n __wbg_prototypesetcall_e42275e601e14eeb: function(arg0, arg1, arg2) {\n Uint32Array.prototype.set.call(getArrayU32FromWasm0(arg0, arg1), arg2);\n },\n __wbg_push_6bdbc990be5ac37b: function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n },\n __wbg_set_448126769bf7c181: function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n },\n __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n },\n __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n },\n __wbg_set_81b4174352e6a095: function(arg0, arg1, arg2) {\n arg0.set(arg1, arg2 >>> 0);\n },\n __wbg_set_8ee2d34facb8466e: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments); },\n __wbg_set_a98c8da6557e63de: function(arg0, arg1, arg2) {\n arg0.set(getArrayF32FromWasm0(arg1, arg2));\n },\n __wbg_set_index_338a66e40fc45dee: function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_subarray_0f98d3fb634508ad: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_517cd0f1811ab872: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbg_subarray_d51e89458b3fdbf6: function(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(F32)) -> NamedExternref(\"Float32Array\")`.\n const ret = getArrayF32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000003: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U32)) -> NamedExternref(\"Uint32Array\")`.\n const ret = getArrayU32FromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000004: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n },\n __wbindgen_cast_0000000000000005: function(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./spark_rs_bg.js\": import0,\n };\n}\n\nconst ChunkDecoderFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_chunkdecoder_free(ptr >>> 0, 1));\nconst CsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_csplatarray_free(ptr >>> 0, 1));\nconst GsplatArrayFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_gsplatarray_free(ptr >>> 0, 1));\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayF32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\nfunction getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint16ArrayMemory0 = null;\nfunction getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayF32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getFloat32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n };\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","function b64ToUint6(nChr) {\n return nChr > 64 && nChr < 91\n ? nChr - 65\n : nChr > 96 && nChr < 123\n ? nChr - 71\n : nChr > 47 && nChr < 58\n ? nChr + 4\n : nChr === 43\n ? 62\n : nChr === 47\n ? 63\n : 0\n}\n\nfunction base64ToUint8(sBase64, nBlocksSize) {\n const sB64Enc = sBase64.replace(/[^A-Za-z0-9+/]/g, \"\")\n const nInLen = sB64Enc.length\n const nOutLen = nBlocksSize\n ? Math.ceil(((nInLen * 3 + 1) >> 2) / nBlocksSize) * nBlocksSize\n : (nInLen * 3 + 1) >> 2\n const taBytes = new Uint8Array(nOutLen)\n\n let nMod3\n let nMod4\n let nUint24 = 0\n let nOutIdx = 0\n for (let nInIdx = 0; nInIdx < nInLen; nInIdx++) {\n nMod4 = nInIdx & 3\n nUint24 |= b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << (6 * (3 - nMod4))\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\n nMod3 = 0\n while (nMod3 < 3 && nOutIdx < nOutLen) {\n taBytes[nOutIdx] = (nUint24 >>> ((16 >>> nMod3) & 24)) & 255\n nMod3++\n nOutIdx++\n }\n nUint24 = 0\n }\n }\n\n return taBytes\n}\nfunction toUint8(b64) {\n if (typeof Uint8Array.fromBase64 === \"function\") return Uint8Array.fromBase64(b64)\n let bin = atob(b64)\n let len = bin.length\n let bytes = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n bytes[i] = bin.charCodeAt(i)\n }\n return bytes\n}\n\nconst decode64 = typeof atob === \"function\" ? toUint8 : base64ToUint8\n\nexport default decode64\n","import init_wasm from \"spark-rs\";\nimport WASM from \"spark-rs/spark_rs_bg.wasm?arraybuffer&base64\";\n\nexport const WASM_MODULE = WebAssembly.compile(WASM);\n\n// Flag indicating if the spark-rs project has been initialized\nlet initialized = false;\n\n/**\n * Promise for module instantiation, ensuring calls to\n * imports from the spark-rs project can be used.\n */\nexport const initialization = init_wasm({ module_or_path: WASM_MODULE }).then(\n (_) => {\n initialized = true;\n },\n);\n\n/**\n * Indicates if the wasm module instantiation has completed or not.\n */\nexport function isInitialized() {\n return initialized;\n}\n","import { getTransferable } from \"./utils\";\nimport { WASM_MODULE } from \"./wasm\";\nimport BundledWorker from \"./worker?worker&inline\";\n\ntype PromiseRecord = {\n resolve: (value: unknown) => void;\n reject: (reason?: unknown) => void;\n onStatus?: (data: unknown) => void;\n};\n\nexport class SplatWorker {\n worker: Worker;\n queue: (() => void)[] | null = null;\n messages: Record = {};\n static currentId = 0;\n\n constructor() {\n this.worker = new BundledWorker();\n this.worker.onmessage = (event) => this.onMessage(event);\n WASM_MODULE.then((module) => {\n this.worker.postMessage({ name: \"init-wasm\", module });\n });\n }\n\n onMessage(event: MessageEvent) {\n const { id, result, error, status } = event.data;\n const promise = this.messages[id];\n if (promise) {\n if (error !== undefined) {\n delete this.messages[id];\n promise.reject(error);\n } else if (status !== undefined) {\n promise.onStatus?.(status);\n } else {\n delete this.messages[id];\n promise.resolve(result);\n }\n }\n }\n\n tryExclusive(callback: (worker: SplatWorker) => Promise) {\n return this.queue == null ? this.exclusive(callback) : null;\n }\n\n async exclusive(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const queue = this.queue;\n if (queue != null) {\n await new Promise((resolve) => {\n queue.push(() => resolve(undefined));\n });\n } else {\n this.queue = [];\n }\n\n try {\n return await callback(this);\n } finally {\n if (this.queue != null) {\n if (this.queue.length === 0) {\n this.queue = null;\n } else {\n const waiter = this.queue.shift() as () => void;\n waiter();\n }\n }\n }\n }\n\n async call(\n name: string,\n args: unknown,\n options: { onStatus?: (data: unknown) => void } = {},\n ): Promise {\n const id = ++SplatWorker.currentId;\n const promise = new Promise((resolve, reject) => {\n this.messages[id] = { resolve, reject, onStatus: options.onStatus };\n });\n this.worker.postMessage(\n { id, name, args },\n { transfer: getTransferable(args) },\n );\n return await promise;\n }\n\n dispose() {\n this.worker.terminate();\n\n const messages = Object.values(this.messages);\n this.messages = {};\n for (const message of messages) {\n message.reject(new Error(\"Worker terminate\"));\n }\n }\n}\n\nexport class NewSplatWorkerPool {\n maxWorkers;\n numWorkers = 0;\n freelist: SplatWorker[] = [];\n queue: ((worker: SplatWorker) => void)[] = [];\n\n constructor(maxWorkers = 4) {\n this.maxWorkers = maxWorkers;\n }\n\n async withWorker(\n callback: (worker: SplatWorker) => Promise,\n ): Promise {\n const worker = await this.allocWorker();\n try {\n return await callback(worker);\n } finally {\n this.freeWorker(worker);\n }\n }\n\n async allocWorker(): Promise {\n const worker = this.freelist.pop();\n if (worker) {\n return worker;\n }\n\n if (this.numWorkers < this.maxWorkers) {\n const worker = new SplatWorker();\n this.numWorkers += 1;\n return worker;\n }\n\n return new Promise((resolve) => {\n this.queue.push(resolve);\n });\n }\n\n freeWorker(worker: SplatWorker) {\n if (this.numWorkers > this.maxWorkers) {\n // Worker no longer needed\n this.numWorkers -= 1;\n return;\n }\n\n const waiter = this.queue.shift();\n if (waiter) {\n waiter(worker);\n return;\n }\n\n this.freelist.push(worker);\n }\n}\n\nexport const workerPool = new NewSplatWorkerPool();\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\n\nimport type { RgbaArray } from \"./RgbaArray\";\nimport type { GsplatGenerator } from \"./SplatGenerator\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n DynoProgram,\n DynoProgramTemplate,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n DynoVec4,\n add,\n dynoBlock,\n normalize,\n outputPackedSplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport {\n type Gsplat,\n TPackedSplats,\n combineGsplat,\n definePackedSplats,\n readPackedSplat,\n splatTexCoord,\n splitGsplat,\n} from \"./dyno/splats\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, setPackedSplat, unpackSplat } from \"./utils\";\n\n// Initialize a PackedSplats collection from source data via\n// url, fileBytes, or packedArray. Creates an empty array if none are set,\n// and splat data can be constructed using pushSplat()/setSplat(). The maximum\n// splat size allocation will grow automatically, starting from maxSplats.\nexport type PackedSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided packed data array, where each 4 consecutive uint32 values\n // encode one \"packed\" Gsplat. (default: undefined)\n packedArray?: Uint32Array;\n // Override number of splats in packed array to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the PackedSplats\n lodSplats?: PackedSplats;\n};\n\n// A PackedSplats is a collection of Gaussian splats, packed into a format that\n// takes exactly 16 bytes per Gsplat to maximize memory and cache efficiency.\n// The center xyz coordinates are encoded as float16 (3 x 2 bytes), scale xyz\n// as 3 x uint8 that encode a log scale from e^-12 to e^9, rgba as 4 x uint8,\n// and quaternion encoded via axis+angle using 2 x uint8 for octahedral encoding\n// of the axis direction and a uint8 to encode rotation amount from 0..Pi.\n\nexport class PackedSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n packedArray: Uint32Array | null = null;\n extra: Record;\n maxSh = 3;\n splatEncoding?: SplatEncoding;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: PackedSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n // Either target or source will be non-null, depending on whether the PackedSplats\n // is being used as a data source or generated to.\n target: THREE.WebGLArrayRenderTarget | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source packedArray is updated to have it upload to GPU\n needsUpdate = true;\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoRgbMinMaxLnScaleMinMax: DynoUniform<\"vec4\", \"rgbMinMaxLnScaleMinMax\">;\n dynoNumSh: DynoInt<\"numSh\">;\n dynoShMax: DynoVec3;\n\n constructor(options: PackedSplatsOptions = {}) {\n this.extra = {};\n this.dyno = new DynoPackedSplats({ packedSplats: this });\n this.dynoRgbMinMaxLnScaleMinMax = new DynoVec4({\n key: \"rgbMinMaxLnScaleMinMax\",\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n update: (value) => {\n value.set(\n this.splatEncoding?.rgbMin ?? 0.0,\n this.splatEncoding?.rgbMax ?? 1.0,\n this.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n return value;\n },\n });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n this.dynoShMax = new DynoVec3({\n key: \"shMax\",\n value: new THREE.Vector3(),\n update: (value) => {\n value.set(\n this.splatEncoding?.sh1Max ?? 1.0,\n this.splatEncoding?.sh2Max ?? 1.0,\n this.splatEncoding?.sh3Max ?? 1.0,\n );\n return value;\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: PackedSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.splatEncoding = options.splatEncoding;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: PackedSplatsOptions) {\n this.extra = options.extra ?? {};\n this.splatEncoding = options.splatEncoding ?? this.splatEncoding;\n this.lodSplats = options.lodSplats;\n\n if (options.packedArray) {\n this.packedArray = options.packedArray;\n this.numSplats = options.numSplats ?? this.packedArray.length / 4;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats = Math.floor(this.packedArray.length / 4);\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n }\n }\n\n async asyncInitialize(options: PackedSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n packedSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target.texture.source.data = null;\n this.target = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source.source.data = null;\n this.source = null;\n }\n\n this.packedArray = null;\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"PackedSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1 ? 0 : !this.extra.sh2 ? 1 : !this.extra.sh3 ? 2 : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readPackedSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3Texture } = this.ensureShTextures();\n let { rgb } = evaluatePackedSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax: this.dynoShMax,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 2,\n );\n if (sh1.length < maxSplats * 2) {\n const newSh1 = new Uint32Array(maxSplats * 2);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n\n const texture = new THREE.DataArrayTexture(sh1, width, height, depth);\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = new THREE.DataArrayTexture(sh2, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3Texture = this.extra.sh3Texture as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3Texture) {\n let sh3 = this.extra.sh3 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3.length / 4,\n );\n if (sh3.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3);\n this.extra.sh3 = newSh3;\n sh3 = newSh3;\n }\n\n const texture = new THREE.DataArrayTexture(sh3, width, height, depth);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n\n sh3Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3Texture = sh3Texture;\n }\n\n return { sh1Texture, sh2Texture, sh3Texture };\n }\n\n // Ensures that this.packedArray can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): Uint32Array {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.packedArray ? 0 : this.packedArray.length / 4;\n\n if (!this.packedArray || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(this.maxSplats * 4);\n if (this.packedArray) {\n // Copy over existing data\n newArray.set(this.packedArray);\n }\n this.packedArray = newArray;\n }\n return this.packedArray;\n }\n\n // Ensure the extra array for the given level is large enough to hold numSplats\n ensureSplatsSh(level: number, numSplats: number): Uint32Array {\n let wordsPerSplat: number;\n let key: string;\n if (level === 0) {\n return this.ensureSplats(numSplats);\n }\n if (level === 1) {\n // 3 x 3 uint7 = 63 bits = 2 uint32\n wordsPerSplat = 2;\n key = \"sh1\";\n } else if (level === 2) {\n // 5 x 3 uint8 = 120 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh2\";\n } else if (level === 3) {\n // 7 x 3 uint6 = 126 bits = 4 uint32\n wordsPerSplat = 4;\n key = \"sh3\";\n } else {\n throw new Error(`Invalid level: ${level}`);\n }\n\n // Figure out our current and desired maxSplats\n let maxSplats: number = !this.extra[key]\n ? 0\n : (this.extra[key] as Uint32Array).length / wordsPerSplat;\n const targetSize =\n numSplats <= maxSplats ? maxSplats : Math.max(numSplats, 2 * maxSplats);\n\n if (!this.extra[key] || targetSize > maxSplats) {\n // Reallocate the array\n maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray = new Uint32Array(maxSplats * wordsPerSplat);\n if (this.extra[key]) {\n // Copy over existing data\n newArray.set(this.extra[key] as Uint32Array);\n }\n this.extra[key] = newArray;\n }\n return this.extra[key] as Uint32Array;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (!this.packedArray || index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return unpackSplat(this.packedArray, index, this.splatEncoding);\n }\n\n // Set all PackedSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(index + 1);\n setPackedSplat(\n packedSplats,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const packedSplats = this.ensureSplats(this.numSplats + 1);\n setPackedSplat(\n packedSplats,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.packedArray || !this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = unpackSplat(this.packedArray, i, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Ensures our PackedSplats.target render target has enough space to generate\n // maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate(maxSplats: number): boolean {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n if (this.target) {\n this.target.dispose();\n }\n\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n });\n this.target.texture.format = THREE.RGBAIntegerFormat;\n this.target.texture.type = THREE.UnsignedIntType;\n this.target.texture.internalFormat = \"RGBA32UI\";\n this.target.scissorTest = true;\n return true;\n }\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Returns a THREE.DataArrayTexture representing the PackedSplats content as\n // a Uint32x4 data array texture (2048 x 2048 x depth in size)\n getTexture(): THREE.DataArrayTexture {\n if (this.target) {\n // Return the render target's texture\n return this.target.texture;\n }\n if (this.source || this.packedArray) {\n // Update source texture if needed and return\n const source = this.maybeUpdateSource();\n return source;\n }\n\n return PackedSplats.getEmptyArray;\n }\n\n // Check if source texture needs to be created/updated\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.packedArray) {\n throw new Error(\"No packed splats\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.source = new THREE.DataArrayTexture(\n this.packedArray as Uint32Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAIntegerFormat;\n this.source.type = THREE.UnsignedIntType;\n this.source.internalFormat = \"RGBA32UI\";\n this.source.needsUpdate = true;\n } else if (this.packedArray.buffer !== this.source.image.data.buffer) {\n // The source texture is the right size, update the data\n this.source.image.data = new Uint8Array(this.packedArray.buffer);\n }\n // Indicate to Three.js that the source texture needs to be uploaded to the GPU\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n static getEmptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(generator: GsplatGenerator): {\n program: DynoProgram;\n material: THREE.RawShaderMaterial;\n } {\n let program = PackedSplats.generatorProgram.get(generator);\n if (!program) {\n // A Gsplat needs to be turned into a packed uvec4 for the dyno graph\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n generator.inputs.index = index;\n const gsplat = generator.outputs.gsplat;\n const output = outputPackedSplat(\n gsplat,\n this.dynoRgbMinMaxLnScaleMinMax,\n );\n roots.push(output);\n return undefined;\n },\n );\n if (!PackedSplats.programTemplate) {\n PackedSplats.programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Template,\n );\n }\n // Create a program from the template and graph\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: { output: \"target\" },\n template: PackedSplats.programTemplate,\n });\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n PackedSplats.generatorProgram.set(generator, program);\n }\n\n // Prepare and update our material we'll use to render the Gsplats\n const material = program.prepareMaterial();\n PackedSplats.fullScreenQuad.material = material;\n return { program, material };\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Executes a dyno program specified by generator which is any DynoBlock that\n // maps { index: \"int\" } to { gsplat: Gsplat }. This is called in\n // SparkRenderer.updateInternal() to re-generate Gsplats in the scene for\n // SplatGenerator instances whose version is newer than what was generated\n // for it last time.\n generate({\n generator,\n base,\n count,\n renderer,\n }: {\n generator: GsplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }): { nextBase: number } {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureSplats\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(generator);\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n PackedSplats.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const packedArray = (this.packedArray as Uint32Array).slice();\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodPackedSplats\" : \"tinyLodPackedSplats\",\n {\n numSplats: this.numSplats,\n packedArray,\n extra,\n lodBase,\n rgba,\n encoding: this.splatEncoding ?? DEFAULT_SPLAT_ENCODING,\n },\n )) as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n };\n });\n\n const lodSplats = new PackedSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new PackedSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static programTemplate: DynoProgramTemplate | null = null;\n\n // Cache for GsplatGenerator programs\n static generatorProgram = new WeakMap();\n\n // Static full-screen quad for pseudo-compute shader rendering\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\n// You can use a PackedSplats as a dyno block using the function\n// dyno.readPackedSplats(packedSplats.dyno, dynoIndex) where\n// dynoIndex is of type DynoVal<\"int\">. If you need to be able to change\n// the input PackedSplats dynamically, however, you should create a\n// DynoPackedSplats, whose property packedSplats you can change to any\n// PackedSplats and that will be used in the dyno shader program.\n\nexport const dynoPackedSplats = (packedSplats?: PackedSplats) =>\n new DynoPackedSplats({ packedSplats });\n\nexport class DynoPackedSplats extends DynoUniform<\n typeof TPackedSplats,\n \"packedSplats\",\n {\n textureArray: THREE.DataArrayTexture;\n numSplats: number;\n rgbMinMaxLnScaleMinMax: THREE.Vector4;\n lodOpacity: boolean;\n }\n> {\n packedSplats?: PackedSplats;\n\n constructor({ packedSplats }: { packedSplats?: PackedSplats } = {}) {\n super({\n key: \"packedSplats\",\n type: TPackedSplats,\n globals: () => [definePackedSplats],\n value: {\n textureArray: PackedSplats.getEmptyArray,\n numSplats: 0,\n rgbMinMaxLnScaleMinMax: new THREE.Vector4(\n 0,\n 1,\n LN_SCALE_MIN,\n LN_SCALE_MAX,\n ),\n lodOpacity: false,\n },\n update: (value) => {\n value.textureArray =\n this.packedSplats?.getTexture() ?? PackedSplats.getEmptyArray;\n value.numSplats = this.packedSplats?.numSplats ?? 0;\n value.rgbMinMaxLnScaleMinMax.set(\n this.packedSplats?.splatEncoding?.rgbMin ?? 0,\n this.packedSplats?.splatEncoding?.rgbMax ?? 1,\n this.packedSplats?.splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n this.packedSplats?.splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n );\n value.lodOpacity =\n this.packedSplats?.splatEncoding?.lodOpacity ?? false;\n return value;\n },\n });\n this.packedSplats = packedSplats;\n }\n}\n\nexport const defineEvalPackedSH1 = unindent(`\n vec3 evaluatePackedSH1(uvec2 packedData, vec3 viewDir, float sh1Max) {\n // Extract sint7 values packed into 2 x uint32\n vec3 sh1_0 = vec3(ivec3(\n int(packedData.x << 25u) >> 25,\n int(packedData.x << 18u) >> 25,\n int(packedData.x << 11u) >> 25\n ));\n vec3 sh1_1 = vec3(ivec3(\n int(packedData.x << 4u) >> 25,\n int((packedData.x >> 3u) | (packedData.y << 29u)) >> 25,\n int(packedData.y << 22u) >> 25\n ));\n vec3 sh1_2 = vec3(ivec3(\n int(packedData.y << 15u) >> 25,\n int(packedData.y << 8u) >> 25,\n int(packedData.y << 1u) >> 25\n ));\n\n vec3 rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n return rgb * (sh1Max / 63.0);\n }\n`);\n\nexport const defineEvalPackedSH2 = unindent(`\n vec3 evaluatePackedSH2(uvec4 packedData, vec3 viewDir, float sh2Max) {\n // Extract sint8 values packed into 4 x uint32\n vec3 sh2_0 = vec3(ivec3(\n int(packedData.x << 24u) >> 24,\n int(packedData.x << 16u) >> 24,\n int(packedData.x << 8u) >> 24\n ));\n vec3 sh2_1 = vec3(ivec3(\n int(packedData.x) >> 24,\n int(packedData.y << 24u) >> 24,\n int(packedData.y << 16u) >> 24\n ));\n vec3 sh2_2 = vec3(ivec3(\n int(packedData.y << 8u) >> 24,\n int(packedData.y) >> 24,\n int(packedData.z << 24u) >> 24\n ));\n vec3 sh2_3 = vec3(ivec3(\n int(packedData.z << 16u) >> 24,\n int(packedData.z << 8u) >> 24,\n int(packedData.z) >> 24\n ));\n vec3 sh2_4 = vec3(ivec3(\n int(packedData.w << 24u) >> 24,\n int(packedData.w << 16u) >> 24,\n int(packedData.w << 8u) >> 24\n ));\n\n vec3 rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n return rgb * (sh2Max / 127.0);\n }\n`);\n\nexport const defineEvalPackedSH3 = unindent(`\n vec3 evaluatePackedSH3(uvec4 packedData, vec3 viewDir, float sh3Max) {\n // Extract sint6 values packed into 4 x uint32\n vec3 sh3_0 = vec3(ivec3(\n int(packedData.x << 26u) >> 26,\n int(packedData.x << 20u) >> 26,\n int(packedData.x << 14u) >> 26\n ));\n vec3 sh3_1 = vec3(ivec3(\n int(packedData.x << 8u) >> 26,\n int(packedData.x << 2u) >> 26,\n int((packedData.x >> 4u) | (packedData.y << 28u)) >> 26\n ));\n vec3 sh3_2 = vec3(ivec3(\n int(packedData.y << 22u) >> 26,\n int(packedData.y << 16u) >> 26,\n int(packedData.y << 10u) >> 26\n ));\n vec3 sh3_3 = vec3(ivec3(\n int(packedData.y << 4u) >> 26,\n int((packedData.y >> 2u) | (packedData.z << 30u)) >> 26,\n int(packedData.z << 24u) >> 26\n ));\n vec3 sh3_4 = vec3(ivec3(\n int(packedData.z << 18u) >> 26,\n int(packedData.z << 12u) >> 26,\n int(packedData.z << 6u) >> 26\n ));\n vec3 sh3_5 = vec3(ivec3(\n int(packedData.z) >> 26,\n int(packedData.w << 26u) >> 26,\n int(packedData.w << 20u) >> 26\n ));\n vec3 sh3_6 = vec3(ivec3(\n int(packedData.w << 14u) >> 26,\n int(packedData.w << 8u) >> 26,\n int(packedData.w << 2u) >> 26\n ));\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n vec3 rgb = sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n return rgb * (sh3Max / 31.0);\n }\n`);\n\nexport function evaluatePackedSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3Texture?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n shMax: DynoVal<\"vec3\">;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3Texture: \"usampler2DArray\",\n shMax: \"vec3\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3Texture,\n shMax,\n },\n globals: () => [\n defineEvalPackedSH1,\n defineEvalPackedSH2,\n defineEvalPackedSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n vec3 sh1Rgb = evaluatePackedSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0).rg, ${inputs.viewDir}, ${inputs.shMax}.x);\n rgb += sh1Rgb;\n `),\n );\n if (inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 2) {\n vec3 sh2Rgb = evaluatePackedSH2(texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.y);\n rgb += sh2Rgb;\n `),\n );\n if (inputs.sh3Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n vec3 sh3Rgb = evaluatePackedSH3(texelFetch(${inputs.sh3Texture}, ${inputs.coord}, 0), ${inputs.viewDir}, ${inputs.shMax}.z);\n rgb += sh3Rgb;\n }\n `),\n );\n }\n lines.push(\"}\");\n }\n lines.push(\"}\");\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n","import { unzipSync } from \"fflate\";\nimport { FileLoader, Loader, type LoadingManager } from \"three\";\nimport { ExtSplats, type ExtSplatsOptions } from \"./ExtSplats\";\nimport { PackedSplats, type PackedSplatsOptions } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { type SplatEncoding, SplatFileType } from \"./defines\";\nimport { PlyReader } from \"./ply\";\nimport { decompressPartialGzip, getTextureSize } from \"./utils\";\n\n// SplatLoader implements the THREE.Loader interface and supports loading a variety\n// of different Gsplat file formats. Formats .PLY and .SPZ can be auto-detected\n// from the file contents, while .SPLAT and .KSPLAT require either having the\n// appropriate file extension as part of the path, or it can be explicitly set\n// in the loader using the fileType property.\n\nexport class SplatLoader extends Loader {\n fileLoader: FileLoader;\n\n constructor(manager?: LoadingManager) {\n super(manager);\n this.fileLoader = new FileLoader(manager);\n }\n\n load(\n url: string,\n onLoad?: (decoded: PackedSplats | ExtSplats) => void,\n onProgress?: (event: ProgressEvent) => void,\n onError?: (error: unknown) => void,\n ) {\n return this.loadInternal({\n url,\n onLoad,\n onProgress,\n onError,\n });\n }\n\n async loadAsync(\n url: string,\n onProgress?: (event: ProgressEvent) => void,\n ): Promise {\n return new Promise((resolve, reject) => {\n this.load(\n url,\n (decoded) => {\n resolve(decoded);\n },\n onProgress,\n reject,\n );\n });\n }\n\n parse(packedSplats: PackedSplats): SplatMesh {\n return new SplatMesh({ packedSplats });\n }\n\n loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad,\n onProgress,\n onError,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onLoad?: (decoded: PackedSplats | ExtSplats) => void;\n onProgress?: (event: ProgressEvent) => void;\n onError?: (error: unknown) => void;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n if (fileBytes instanceof ArrayBuffer) {\n fileBytes = new Uint8Array(fileBytes);\n }\n const resolvedURL = fileBytes\n ? undefined\n : this.manager.resolveURL((this.path ?? \"\") + (url ?? \"\"));\n\n let readStream = stream?.getReader();\n\n this.manager.itemStart(resolvedURL ?? \"\");\n // let calledOnLoad = false;\n\n workerPool\n .withWorker(async (worker) => {\n // If LoD is set and not falsey\n const splatsLod = packedSplats?.lod ?? extSplats?.lod;\n if (splatsLod) {\n lod = splatsLod;\n }\n const splatsNonLod = packedSplats?.nonLod ?? extSplats?.nonLod;\n if (splatsNonLod !== undefined) {\n nonLod = splatsNonLod;\n }\n\n // let init: {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // } | null = null;\n // let initExt: {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // } | null = null;\n\n const onStatus = async (data: unknown) => {\n const { loaded, total } = data as { loaded: number; total: number };\n if (loaded !== undefined && onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n\n if ((data as { nextChunk?: boolean }).nextChunk) {\n let chunk: Uint8Array;\n if (!readStream) {\n chunk = new Uint8Array(0);\n } else {\n const { done, value } = await readStream.read();\n if (done) {\n readStream.releaseLock();\n readStream = undefined;\n chunk = new Uint8Array(0);\n } else {\n chunk = value;\n }\n }\n worker.call(\"nextChunk\", { chunk });\n }\n\n // if ((data as { orig?: unknown }).orig) {\n // if (extSplats) {\n // initExt = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // ext0: Uint32Array;\n // ext1: Uint32Array;\n // extra: Record;\n // };\n // extSplats.initialize({\n // numSplats: initExt?.numSplats,\n // extArrays: [initExt?.ext0, initExt?.ext1],\n // extra: initExt?.extra,\n // });\n // calledOnLoad = true;\n // onLoad?.(extSplats);\n // } else if (packedSplats) {\n // init = (data as { orig?: unknown }).orig as {\n // numSplats: number;\n // packedArray: Uint32Array;\n // extra: Record;\n // splatEncoding: SplatEncoding;\n // };\n // packedSplats.initialize({\n // numSplats: init?.numSplats,\n // packedArray: init?.packedArray,\n // extra: init?.extra,\n // splatEncoding: init?.splatEncoding,\n // });\n // calledOnLoad = true;\n // onLoad?.(packedSplats);\n // } else {\n // console.warn(\"No splats to initialize\");\n // }\n // }\n };\n\n const basedUrl = resolvedURL\n ? new URL(resolvedURL, window.location.href).toString()\n : undefined;\n const decoded = (await worker.call(\n extSplats ? \"loadExtSplats\" : \"loadPackedSplats\",\n {\n url: basedUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n fileBytes: fileBytes?.slice(),\n fileType,\n pathName: resolvedURL || fileName,\n chunked: stream !== undefined,\n chunkedLength: streamLength,\n encoding: packedSplats?.splatEncoding,\n lod,\n lodBase,\n nonLod,\n lodAbove,\n },\n { onStatus },\n )) as {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n lodSplats?:\n | {\n numSplats: number;\n packedArray?: Uint32Array;\n ext0?: Uint32Array;\n ext1?: Uint32Array;\n extra: Record;\n splatEncoding?: SplatEncoding;\n }\n | PackedSplats\n | ExtSplats;\n };\n\n if (decoded.lodSplats) {\n if (extSplats) {\n decoded.lodSplats = new ExtSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n }),\n });\n } else {\n decoded.lodSplats = new PackedSplats({\n ...(decoded.lodSplats as {\n numSplats: number;\n packedArray: Uint32Array;\n extra: Record;\n splatEncoding: SplatEncoding;\n }),\n maxSplats: packedSplats?.maxSplats,\n });\n }\n }\n\n if (extSplats) {\n const initExtSplats = {\n // ...(initExt ?? {}),\n ...decoded,\n };\n extSplats.initialize(initExtSplats as ExtSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(extSplats);\n // }\n } else {\n const initSplats = {\n // ...(init ?? {}),\n ...decoded,\n };\n if (packedSplats) {\n packedSplats.initialize(initSplats as PackedSplatsOptions);\n // if (!calledOnLoad) {\n onLoad?.(packedSplats);\n // }\n } else {\n // if (!calledOnLoad) {\n onLoad?.(new PackedSplats(initSplats as PackedSplatsOptions));\n // }\n }\n }\n })\n .catch((error) => {\n this.manager.itemError(resolvedURL ?? \"\");\n onError?.(error);\n })\n .finally(() => {\n this.manager.itemEnd(resolvedURL ?? \"\");\n });\n }\n\n async loadInternalAsync({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n }: {\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n url?: string;\n fileBytes?: Uint8Array | ArrayBuffer;\n fileType?: SplatFileType;\n fileName?: string;\n stream?: ReadableStream;\n streamLength?: number;\n onProgress?: (event: ProgressEvent) => void;\n lod?: boolean;\n nonLod?: boolean;\n lodAbove?: number;\n lodBase?: number;\n }) {\n return new Promise((resolve, reject) => {\n this.loadInternal({\n packedSplats,\n extSplats,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onLoad: resolve,\n onProgress,\n onError: reject,\n lod,\n nonLod,\n lodAbove,\n lodBase,\n });\n });\n }\n}\n\nasync function fetchWithProgress(\n request: Request,\n onProgress?: (event: ProgressEvent) => void,\n) {\n const response = await fetch(request);\n if (!response.ok) {\n throw new Error(\n `${response.status} \"${response.statusText}\" fetching URL: ${request.url}`,\n );\n }\n if (!response.body) {\n throw new Error(`Response body is null for URL: ${request.url}`);\n }\n\n const reader = response.body.getReader();\n let loaded = 0;\n const chunks: Uint8Array[] = [];\n try {\n const contentLength = Number.parseInt(\n response.headers.get(\"Content-Length\") || \"0\",\n );\n const total = Number.isNaN(contentLength) ? 0 : contentLength;\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n loaded += value.length;\n\n if (onProgress) {\n onProgress(\n new ProgressEvent(\"progress\", {\n lengthComputable: total !== 0,\n loaded,\n total,\n }),\n );\n }\n }\n } catch (err) {\n try {\n const reason = err instanceof Error ? err.message : \"Unknown error\";\n await reader.cancel(reason);\n } catch {}\n throw err;\n }\n\n // Combine chunks into a single buffer\n const bytes = new Uint8Array(loaded);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.length;\n }\n return bytes.buffer;\n}\n\nexport function getSplatFileType(\n fileBytes: Uint8Array,\n): SplatFileType | undefined {\n const view = new DataView(fileBytes.buffer);\n const magic = view.getUint32(0, true);\n if ((magic & 0x00ffffff) === 0x00796c70) {\n return SplatFileType.PLY;\n }\n if ((magic & 0x00ffffff) === 0x00088b1f) {\n // Gzipped file, unpack beginning to check magic number\n const header = decompressPartialGzip(fileBytes, 4);\n const gView = new DataView(header.buffer);\n if (gView.getUint32(0, true) === 0x5053474e) {\n return SplatFileType.SPZ;\n }\n // Unknown Gzipped file type\n return undefined;\n }\n if (magic === 0x04034b50) {\n // PKZip file\n if (tryPcSogsZip(fileBytes)) {\n return SplatFileType.PCSOGSZIP;\n }\n // Unknown PKZip file type\n return undefined;\n }\n if (magic === 0x30444152) {\n return SplatFileType.RAD;\n }\n // Unknown file type\n return undefined;\n}\n\n// Returns the lowercased file extension from a path or URL\nexport function getFileExtension(pathOrUrl: string): string {\n const noTrailing = pathOrUrl.split(/[?#]/, 1)[0];\n const lastSlash = Math.max(\n noTrailing.lastIndexOf(\"/\"),\n noTrailing.lastIndexOf(\"\\\\\"),\n );\n const filename = noTrailing.slice(lastSlash + 1);\n const lastDot = filename.lastIndexOf(\".\");\n if (lastDot <= 0 || lastDot === filename.length - 1) {\n return \"\"; // No extension\n }\n return filename.slice(lastDot + 1).toLowerCase();\n}\n\nexport function getSplatFileTypeFromPath(\n pathOrUrl: string,\n): SplatFileType | undefined {\n const extension = getFileExtension(pathOrUrl);\n if (extension === \"ply\") {\n return SplatFileType.PLY;\n }\n if (extension === \"spz\") {\n return SplatFileType.SPZ;\n }\n if (extension === \"splat\") {\n return SplatFileType.SPLAT;\n }\n if (extension === \"ksplat\") {\n return SplatFileType.KSPLAT;\n }\n if (extension === \"sog\") {\n return SplatFileType.PCSOGSZIP;\n }\n if (extension === \"rad\") {\n return SplatFileType.RAD;\n }\n return undefined;\n}\n\nexport type PcSogsJson = {\n means: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n quats: { shape: number[]; dtype: string; encoding?: string; files: string[] };\n sh0: {\n shape: number[];\n dtype: string;\n mins: number[];\n maxs: number[];\n files: string[];\n };\n shN?: {\n shape: number[];\n dtype: string;\n mins: number;\n maxs: number;\n quantization: number;\n files: string[];\n };\n};\n\nexport type PcSogsV2Json = {\n version: 2;\n count: number;\n antialias?: boolean;\n means: {\n mins: number[];\n maxs: number[];\n files: string[];\n };\n scales: {\n codebook: number[];\n files: string[];\n };\n quats: { files: string[] };\n sh0: {\n codebook: number[];\n files: string[];\n };\n shN?: {\n count: number;\n bands: number;\n codebook: number[];\n files: string[];\n };\n};\n\nexport function isPcSogs(input: ArrayBuffer | Uint8Array | string): boolean {\n // Returns true if the input seems to be a valid PC SOGS file\n return tryPcSogs(input) !== undefined;\n}\n\nexport function tryPcSogs(\n input: ArrayBuffer | Uint8Array | string,\n): PcSogsJson | PcSogsV2Json | undefined {\n // Try to parse input as SOGS JSON and see if it's valid\n try {\n let text: string;\n if (typeof input === \"string\") {\n text = input;\n } else {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n if (fileBytes.length > 65536) {\n // Should be only a few KB, definitely not a SOGS JSON file\n return undefined;\n }\n text = new TextDecoder().decode(fileBytes);\n }\n\n const json = JSON.parse(text);\n if (!json || typeof json !== \"object\" || Array.isArray(json)) {\n return undefined;\n }\n const isVersion2 = json.version === 2;\n\n for (const key of [\"means\", \"scales\", \"quats\", \"sh0\"]) {\n if (\n !json[key] ||\n typeof json[key] !== \"object\" ||\n Array.isArray(json[key])\n ) {\n return undefined;\n }\n if (isVersion2) {\n // Expect files\n if (!json[key].files) {\n return undefined;\n }\n\n // Scales and sh0 should have codebooks\n if ((key === \"scales\" || key === \"sh0\") && !json[key].codebook) {\n return undefined;\n }\n // Means should have mins and maxs defined\n if (key === \"means\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n } else {\n // Expect shape and files\n if (!json[key].shape || !json[key].files) {\n return undefined;\n }\n // Besides 'quats' all other properties have mins and maxs\n if (key !== \"quats\" && (!json[key].mins || !json[key].maxs)) {\n return undefined;\n }\n }\n }\n // This is probably a PC SOGS file\n return json as PcSogsJson | PcSogsV2Json;\n } catch {\n return undefined;\n }\n}\n\nexport function tryPcSogsZip(\n input: ArrayBuffer | Uint8Array,\n): { name: string; json: PcSogsJson | PcSogsV2Json } | undefined {\n try {\n const fileBytes =\n input instanceof ArrayBuffer ? new Uint8Array(input) : input;\n let metaFilename: string | null = null;\n\n const unzipped = unzipSync(fileBytes, {\n filter: ({ name }) => {\n const filename = name.split(/[\\\\/]/).pop() as string;\n if (filename === \"meta.json\") {\n metaFilename = name;\n return true;\n }\n return false;\n },\n });\n if (!metaFilename) {\n return undefined;\n }\n\n // Check for PC SOGS V1 and V2 (aka SOG)\n const json = tryPcSogs(unzipped[metaFilename]);\n if (!json) {\n return undefined;\n }\n return { name: metaFilename, json };\n } catch {\n return undefined;\n }\n}\n\nexport class SplatData {\n numSplats: number;\n maxSplats: number;\n centers: Float32Array;\n scales: Float32Array;\n quaternions: Float32Array;\n opacities: Float32Array;\n colors: Float32Array;\n sh1?: Float32Array;\n sh2?: Float32Array;\n sh3?: Float32Array;\n\n constructor({ maxSplats = 1 }: { maxSplats?: number } = {}) {\n this.numSplats = 0;\n this.maxSplats = getTextureSize(maxSplats).maxSplats;\n this.centers = new Float32Array(this.maxSplats * 3);\n this.scales = new Float32Array(this.maxSplats * 3);\n this.quaternions = new Float32Array(this.maxSplats * 4);\n this.opacities = new Float32Array(this.maxSplats);\n this.colors = new Float32Array(this.maxSplats * 3);\n }\n\n pushSplat(): number {\n const index = this.numSplats;\n this.ensureIndex(index);\n this.numSplats += 1;\n return index;\n }\n\n unpushSplat(index: number) {\n if (index === this.numSplats - 1) {\n this.numSplats -= 1;\n } else {\n throw new Error(\"Cannot unpush splat from non-last position\");\n }\n }\n\n ensureCapacity(numSplats: number) {\n if (numSplats > this.maxSplats) {\n const targetSplats = Math.max(numSplats, this.maxSplats * 2);\n const newCenters = new Float32Array(targetSplats * 3);\n const newScales = new Float32Array(targetSplats * 3);\n const newQuaternions = new Float32Array(targetSplats * 4);\n const newOpacities = new Float32Array(targetSplats);\n const newColors = new Float32Array(targetSplats * 3);\n newCenters.set(this.centers);\n newScales.set(this.scales);\n newQuaternions.set(this.quaternions);\n newOpacities.set(this.opacities);\n newColors.set(this.colors);\n this.centers = newCenters;\n this.scales = newScales;\n this.quaternions = newQuaternions;\n this.opacities = newOpacities;\n this.colors = newColors;\n\n if (this.sh1) {\n const newSh1 = new Float32Array(targetSplats * 9);\n newSh1.set(this.sh1);\n this.sh1 = newSh1;\n }\n if (this.sh2) {\n const newSh2 = new Float32Array(targetSplats * 15);\n newSh2.set(this.sh2);\n this.sh2 = newSh2;\n }\n if (this.sh3) {\n const newSh3 = new Float32Array(targetSplats * 21);\n newSh3.set(this.sh3);\n this.sh3 = newSh3;\n }\n\n this.maxSplats = targetSplats;\n }\n }\n\n ensureIndex(index: number) {\n this.ensureCapacity(index + 1);\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n this.centers[index * 3] = x;\n this.centers[index * 3 + 1] = y;\n this.centers[index * 3 + 2] = z;\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n this.scales[index * 3] = scaleX;\n this.scales[index * 3 + 1] = scaleY;\n this.scales[index * 3 + 2] = scaleZ;\n }\n\n setQuaternion(index: number, x: number, y: number, z: number, w: number) {\n this.quaternions[index * 4] = x;\n this.quaternions[index * 4 + 1] = y;\n this.quaternions[index * 4 + 2] = z;\n this.quaternions[index * 4 + 3] = w;\n }\n\n setOpacity(index: number, opacity: number) {\n this.opacities[index] = opacity;\n }\n\n setColor(index: number, r: number, g: number, b: number) {\n this.colors[index * 3] = r;\n this.colors[index * 3 + 1] = g;\n this.colors[index * 3 + 2] = b;\n }\n\n setSh1(index: number, sh1: Float32Array) {\n if (!this.sh1) {\n this.sh1 = new Float32Array(this.maxSplats * 9);\n }\n for (let j = 0; j < 9; ++j) {\n this.sh1[index * 9 + j] = sh1[j];\n }\n }\n\n setSh2(index: number, sh2: Float32Array) {\n if (!this.sh2) {\n this.sh2 = new Float32Array(this.maxSplats * 15);\n }\n for (let j = 0; j < 15; ++j) {\n this.sh2[index * 15 + j] = sh2[j];\n }\n }\n\n setSh3(index: number, sh3: Float32Array) {\n if (!this.sh3) {\n this.sh3 = new Float32Array(this.maxSplats * 21);\n }\n for (let j = 0; j < 21; ++j) {\n this.sh3[index * 21 + j] = sh3[j];\n }\n }\n}\n\nexport type FileInput = {\n fileBytes: Uint8Array;\n fileType?: SplatFileType;\n pathOrUrl?: string;\n transform?: { translate?: number[]; quaternion?: number[]; scale?: number };\n};\n\nexport type TranscodeSpzInput = {\n inputs: FileInput[];\n maxSh?: number;\n clipXyz?: { min: number[]; max: number[] };\n fractionalBits?: number;\n opacityThreshold?: number;\n};\n","import * as THREE from \"three\";\nimport type { RgbaArray } from \"./RgbaArray\";\nimport { SplatLoader } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport { SPLAT_TEX_WIDTH, type SplatFileType } from \"./defines\";\nimport {\n Dyno,\n DynoInt,\n type DynoType,\n DynoUniform,\n DynoUsampler2DArray,\n type DynoVal,\n type Gsplat,\n TExtSplats,\n add,\n combineGsplat,\n defineExtSplats,\n normalize,\n readExtSplat,\n splatTexCoord,\n splitGsplat,\n sub,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { decodeExtSplat, encodeExtSplat, getTextureSize } from \"./utils\";\n\nexport type ExtSplatsOptions = {\n // URL to fetch a Gaussian splat file from (supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Reserve space for at least this many splats when constructing the collection\n // initially. The array will automatically resize past maxSplats so setting it is\n // an optional optimization. (default: 0)\n maxSplats?: number;\n // Use provided pair of uint32 arrays, where blocks of 4 uint32s in each,\n // encode an \"extended packed\" Gsplat. (default: undefined)\n extArrays?: [Uint32Array, Uint32Array];\n // Override number of splats in packed arrays to use only a subset.\n // (default: length of packed array / 4)\n numSplats?: number;\n // Callback function to programmatically create splats at initialization.\n // (default: undefined)\n construct?: (splats: ExtSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Additional splat data, such as spherical harmonics components (sh1, sh2, sh3). (default: {})\n extra?: Record;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Only create LoD if the input splat acount is above this\n lodAbove?: number;\n // The LoD version of the ExtSplats\n lodSplats?: ExtSplats;\n};\n\nexport class ExtSplats implements SplatSource {\n maxSplats = 0;\n numSplats = 0;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record = {};\n maxSh = 3;\n lod?: boolean | \"quality\";\n nonLod?: boolean;\n lodSplats?: ExtSplats;\n\n initialized: Promise;\n isInitialized = false;\n\n textures: [THREE.DataArrayTexture, THREE.DataArrayTexture];\n\n // A PackedSplats can be used in a dyno graph using the below property dyno:\n // const gsplat = dyno.readPackedSplats(this.dyno, dynoIndex);\n dyno: DynoUniform;\n dynoNumSh: DynoInt<\"numSh\">;\n\n constructor(options: ExtSplatsOptions = {}) {\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n this.textures = [ExtSplats.emptyTexture, ExtSplats.emptyTexture];\n\n this.extra = {};\n this.dyno = new DynoExtSplats({ extSplats: this });\n this.dynoNumSh = new DynoInt({\n key: \"numSh\",\n value: 0,\n update: () => {\n return Math.min(this.getNumSh(), this.maxSh);\n },\n });\n\n // The following line will be overridden by reinitialize()\n this.initialized = Promise.resolve(this);\n this.reinitialize(options);\n }\n\n reinitialize(options: ExtSplatsOptions) {\n this.isInitialized = false;\n\n this.extra = {};\n this.maxSplats = options.maxSplats ?? 0;\n this.lod = options.lod;\n this.nonLod = options.nonLod;\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.construct\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(() => {\n this.isInitialized = true;\n return this;\n });\n } else {\n this.initialize(options);\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n }\n }\n\n initialize(options: ExtSplatsOptions) {\n this.extra = options.extra ?? {};\n this.lodSplats = options.lodSplats;\n\n if (options.extArrays) {\n this.extArrays = options.extArrays;\n this.maxSplats = Math.floor(\n Math.min(this.extArrays[0].length / 4, this.extArrays[1].length / 4),\n );\n this.numSplats = options.numSplats ?? this.maxSplats;\n\n // Calculate number of horizontal texture rows that could fit in array.\n // A properly initialized packedArray should already take into account the\n // width and height of the texture and be rounded up with padding.\n this.maxSplats =\n Math.floor(this.maxSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n this.numSplats = Math.min(\n this.maxSplats,\n options.numSplats ?? Number.POSITIVE_INFINITY,\n );\n this.updateTextures();\n } else {\n this.maxSplats = options.maxSplats ?? 0;\n this.numSplats = 0;\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n }\n }\n\n async asyncInitialize(options: ExtSplatsOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n construct,\n lod,\n nonLod,\n lodAbove,\n } = options;\n this.lod = lod;\n this.nonLod = nonLod;\n\n const loader = new SplatLoader();\n if (fileBytes || url || stream) {\n await loader.loadInternalAsync({\n extSplats: this,\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n onProgress: options.onProgress,\n lodAbove,\n });\n }\n\n if (construct) {\n const maybePromise = construct(this);\n // If construct returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n }\n\n // Call this when you are finished with the PackedSplats and want to free\n // any buffers it holds.\n dispose() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n this.textures[0].dispose();\n this.textures[0].source.data = null;\n this.textures[0] = ExtSplats.emptyTexture;\n }\n if (this.textures[1] !== ExtSplats.emptyTexture) {\n this.textures[1].dispose();\n this.textures[1].source.data = null;\n this.textures[1] = ExtSplats.emptyTexture;\n }\n\n this.extArrays = [new Uint32Array(0), new Uint32Array(0)];\n\n for (const key in this.extra) {\n const dyno = this.extra[key] as DynoUniform<\n DynoType,\n string,\n THREE.Texture\n >;\n if (dyno instanceof DynoUniform) {\n const texture = dyno.value;\n if (texture?.isTexture) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n this.extra = {};\n\n this.disposeLodSplats();\n }\n\n prepareFetchSplat() {\n // console.info(\"ExtSplats.prepareFetchSplat\");\n }\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n return Math.min(this.getNumSh(), this.maxSh) > 0;\n }\n\n getNumSh(): number {\n return !this.extra.sh1\n ? 0\n : !this.extra.sh2\n ? 1\n : !this.extra.sh3a || !this.extra.sh3b\n ? 2\n : 3;\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n > {\n let gsplat = readExtSplat(this.dyno, index);\n\n if (this.hasRgbDir() && viewOrigin) {\n const splatCenter = splitGsplat(gsplat).outputs.center;\n const viewDir = normalize(sub(splatCenter, viewOrigin));\n const { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB } =\n this.ensureShTextures();\n let { rgb } = evaluateExtSH({\n coord: splatTexCoord(index),\n viewDir,\n numSh: this.dynoNumSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n });\n rgb = add(rgb, splitGsplat(gsplat).outputs.rgb);\n gsplat = combineGsplat({ gsplat, rgb });\n }\n return gsplat;\n }\n\n private ensureShTextures(): {\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n } {\n // Ensure we have textures for SH1..SH3 if we have data\n if (!this.extra.sh1) {\n return {};\n }\n\n let sh1Texture = this.extra.sh1Texture as\n | DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>\n | undefined;\n if (!sh1Texture) {\n let sh1 = this.extra.sh1 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh1.length / 4,\n );\n if (sh1.length < maxSplats * 4) {\n const newSh1 = new Uint32Array(maxSplats * 4);\n newSh1.set(sh1);\n this.extra.sh1 = newSh1;\n sh1 = newSh1;\n }\n const texture = newUint32ArrayTexture(\n sh1,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh1Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh1\",\n });\n this.extra.sh1Texture = sh1Texture;\n }\n\n if (!this.extra.sh2) {\n return { sh1Texture };\n }\n\n let sh2Texture = this.extra.sh2Texture as\n | DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>\n | undefined;\n if (!sh2Texture) {\n let sh2 = this.extra.sh2 as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh2.length / 4,\n );\n if (sh2.length < maxSplats * 4) {\n const newSh2 = new Uint32Array(maxSplats * 4);\n newSh2.set(sh2);\n this.extra.sh2 = newSh2;\n sh2 = newSh2;\n }\n\n const texture = newUint32ArrayTexture(\n sh2,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh2Texture = new DynoUsampler2DArray({\n value: texture,\n key: \"sh2\",\n });\n this.extra.sh2Texture = sh2Texture;\n }\n\n if (!this.extra.sh3a || !this.extra.sh3b) {\n return { sh1Texture, sh2Texture };\n }\n\n let sh3TextureA = this.extra.sh3TextureA as\n | DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureA) {\n let sh3a = this.extra.sh3a as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3a.length / 4,\n );\n if (sh3a.length < maxSplats * 4) {\n const newSh3 = new Uint32Array(maxSplats * 4);\n newSh3.set(sh3a);\n this.extra.sh3a = newSh3;\n sh3a = newSh3;\n }\n\n const texture = newUint32ArrayTexture(\n sh3a,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureA = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3\",\n });\n this.extra.sh3TextureA = sh3TextureA;\n }\n\n let sh3TextureB = this.extra.sh3TextureB as\n | DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>\n | undefined;\n if (!sh3TextureB) {\n let sh3b = this.extra.sh3b as Uint32Array;\n const { width, height, depth, maxSplats } = getTextureSize(\n sh3b.length / 4,\n );\n if (sh3b.length < maxSplats * 4) {\n const newSh3b = new Uint32Array(maxSplats * 4);\n newSh3b.set(sh3b);\n this.extra.sh3b = newSh3b;\n sh3b = newSh3b;\n }\n\n const texture = newUint32ArrayTexture(\n sh3b,\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n sh3TextureB = new DynoUsampler2DArray({\n value: texture,\n key: \"sh3b\",\n });\n this.extra.sh3TextureB = sh3TextureB;\n }\n\n return { sh1Texture, sh2Texture, sh3TextureA, sh3TextureB };\n }\n\n // Ensures that this.extArrays can fit numSplats Gsplats. If it's too small,\n // resize exponentially and copy over the original data.\n //\n // Typically you don't need to call this, because calling this.setSplat(index, ...)\n // and this.pushSplat(...) will automatically call ensureSplats() so we have\n // enough splats.\n ensureSplats(numSplats: number): [Uint32Array, Uint32Array] {\n const targetSize =\n numSplats <= this.maxSplats\n ? this.maxSplats\n : // Grow exponentially to avoid frequent reallocations\n Math.max(numSplats, 2 * this.maxSplats);\n const currentSize = !this.extArrays[0] ? 0 : this.extArrays[0].length / 4;\n\n if (!this.extArrays[0] || targetSize > currentSize) {\n this.maxSplats = getTextureSize(targetSize).maxSplats;\n const newArray0 = new Uint32Array(this.maxSplats * 4);\n const newArray1 = new Uint32Array(this.maxSplats * 4);\n if (this.extArrays[0]) {\n // Copy over existing data\n newArray0.set(this.extArrays[0]);\n newArray1.set(this.extArrays[1]);\n }\n this.extArrays[0] = newArray0;\n this.extArrays[1] = newArray1;\n }\n return this.extArrays;\n }\n\n // Unpack the 16-byte Gsplat data at index into the Three.js components\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number 0..1, color: THREE.Color 0..1.\n getSplat(index: number): {\n center: THREE.Vector3;\n scales: THREE.Vector3;\n quaternion: THREE.Quaternion;\n opacity: number;\n color: THREE.Color;\n } {\n if (index >= this.numSplats) {\n throw new Error(\"Invalid index\");\n }\n return decodeExtSplat(this.extArrays, index);\n }\n\n // Set all ExtSplat components at index with the provided Gsplat attributes\n // (can be the same objects returned by getSplat). Ensures there is capacity\n // for at least index+1 Gsplats.\n setSplat(\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(index + 1);\n encodeExtSplat(\n extArrays,\n index,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n this.numSplats = Math.max(this.numSplats, index + 1);\n }\n\n // Effectively calls this.setSplat(this.numSplats++, center, ...), useful on\n // construction where you just want to iterate and create a collection of Gsplats.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n const extArrays = this.ensureSplats(this.numSplats + 1);\n encodeExtSplat(\n extArrays,\n this.numSplats,\n center.x,\n center.y,\n center.z,\n scales.x,\n scales.y,\n scales.z,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n opacity,\n color.r,\n color.g,\n color.b,\n );\n ++this.numSplats;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.numSplats) {\n return;\n }\n for (let i = 0; i < this.numSplats; ++i) {\n const unpacked = decodeExtSplat(this.extArrays, i);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n\n // Check if source texture needs to be created/updated\n private updateTextures() {\n if (this.textures[0] !== ExtSplats.emptyTexture) {\n const { width, height, depth } = this.textures[0].image;\n if (this.maxSplats !== width * height * depth) {\n // The existing source texture isn't the right size, so dispose it\n this.textures[0].dispose();\n this.textures[0] = ExtSplats.emptyTexture;\n this.textures[1].dispose();\n this.textures[1] = ExtSplats.emptyTexture;\n }\n }\n if (this.textures[0] === ExtSplats.emptyTexture) {\n // Allocate a new source texture of the right size\n const { width, height, depth } = getTextureSize(this.maxSplats);\n this.textures[0] = newUint32ArrayTexture(\n this.extArrays[0],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n this.textures[1] = newUint32ArrayTexture(\n this.extArrays[1],\n width,\n height,\n depth,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n } else if (\n this.extArrays[0].buffer !== this.textures[0].image.data.buffer\n ) {\n this.textures[0].image.data = new Uint8Array(this.extArrays[0].buffer);\n this.textures[1].image.data = new Uint8Array(this.extArrays[1].buffer);\n // Indicate to Three.js that the source textures needs to be uploaded to the GPU\n this.textures[0].needsUpdate = true;\n this.textures[1].needsUpdate = true;\n }\n }\n\n extractSplats(indices: Uint32Array, pageColoring: boolean) {\n const maxSplats = getTextureSize(indices.length).maxSplats;\n const newSplats = new ExtSplats({ maxSplats });\n for (let i = 0; i < indices.length; i++) {\n const splat = this.getSplat(indices[i]);\n if (pageColoring) {\n let hue = (indices[i] >>> 16) * 0.61803398875;\n hue = hue - Math.floor(hue);\n const r = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 3.0) - 1.0));\n const g = Math.max(0, Math.min(1, Math.abs(hue * 6.0 + 1.0) - 1.0));\n const b = Math.max(0, Math.min(1, Math.abs(hue * 6.0 - 1.0) - 1.0));\n splat.color.r *= r;\n splat.color.g *= g;\n splat.color.b *= b;\n }\n newSplats.pushSplat(\n splat.center,\n splat.scales,\n splat.quaternion,\n splat.opacity,\n splat.color,\n );\n }\n return newSplats;\n }\n\n static emptyArray = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTexture = newUint32ArrayTexture(\n null,\n 1,\n 1,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n \"RGBA32UI\",\n );\n\n disposeLodSplats() {\n if (this.lodSplats) {\n this.lodSplats.dispose();\n this.lodSplats = undefined;\n }\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n const lodBase =\n typeof this.lod === \"number\"\n ? Math.max(1.1, Math.min(2.0, this.lod))\n : quality\n ? 1.75\n : 1.5;\n const extArrays = [this.extArrays[0].slice(), this.extArrays[1].slice()];\n const rgba = rgbaArray ? (await rgbaArray.getArray()).slice() : undefined;\n const extra = {\n sh1: this.extra.sh1 ? (this.extra.sh1 as Uint32Array).slice() : undefined,\n sh2: this.extra.sh2 ? (this.extra.sh2 as Uint32Array).slice() : undefined,\n sh3: this.extra.sh3 ? (this.extra.sh3 as Uint32Array).slice() : undefined,\n };\n const decoded = await workerPool.withWorker(async (worker) => {\n return (await worker.call(\n quality ? \"qualityLodExtSplats\" : \"tinyLodExtSplats\",\n {\n numSplats: this.numSplats,\n extArrays,\n extra,\n lodBase,\n rgba,\n },\n )) as {\n numSplats: number;\n extArrays: [Uint32Array, Uint32Array];\n extra: Record;\n };\n });\n\n const lodSplats = new ExtSplats(decoded);\n if (this.lodSplats) {\n this.lodSplats.dispose();\n }\n\n this.lodSplats = lodSplats;\n this.nonLod = true;\n this.lod = quality ? \"quality\" : true;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n}\n\nexport const dynoExtSplats = (extSplats?: ExtSplats) =>\n new DynoExtSplats({ extSplats });\n\nexport class DynoExtSplats extends DynoUniform<\n typeof TExtSplats,\n \"extSplats\",\n {\n textureArray1: THREE.DataArrayTexture;\n textureArray2: THREE.DataArrayTexture;\n numSplats: number;\n }\n> {\n extSplats?: ExtSplats;\n\n constructor({ extSplats }: { extSplats?: ExtSplats } = {}) {\n super({\n key: \"extSplats\",\n type: TExtSplats,\n globals: () => [defineExtSplats],\n value: {\n textureArray1: ExtSplats.emptyTexture,\n textureArray2: ExtSplats.emptyTexture,\n numSplats: 0,\n },\n update: (value) => {\n value.textureArray1 =\n this.extSplats?.textures[0] ?? ExtSplats.emptyTexture;\n value.textureArray2 =\n this.extSplats?.textures[1] ?? ExtSplats.emptyTexture;\n value.numSplats = this.extSplats?.numSplats ?? 0;\n return value;\n },\n });\n this.extSplats = extSplats;\n }\n}\n\nexport const defineEvaluateExtSH1 = unindent(`\n vec3 evaluateExtSH1(uvec4 packedData, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packedData.x);\n vec3 sh1_1 = decodeExtRgb(packedData.y);\n vec3 sh1_2 = decodeExtRgb(packedData.z);\n\n return sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n }\n`);\n\nexport const defineEvaluateExtSH12 = unindent(`\n vec3 evaluateExtSH12(uvec4 packed1, uvec4 packed2, vec3 viewDir) {\n vec3 sh1_0 = decodeExtRgb(packed1.x);\n vec3 sh1_1 = decodeExtRgb(packed1.y);\n vec3 sh1_2 = decodeExtRgb(packed1.z);\n\n vec3 sh2_0 = decodeExtRgb(packed1.w);\n vec3 sh2_1 = decodeExtRgb(packed2.x);\n vec3 sh2_2 = decodeExtRgb(packed2.y);\n vec3 sh2_3 = decodeExtRgb(packed2.z);\n vec3 sh2_4 = decodeExtRgb(packed2.w);\n\n vec3 sh1Rgb = sh1_0 * (-0.4886025 * viewDir.y)\n + sh1_1 * (0.4886025 * viewDir.z)\n + sh1_2 * (-0.4886025 * viewDir.x);\n\n vec3 sh2Rgb = sh2_0 * (1.0925484 * viewDir.x * viewDir.y)\n + sh2_1 * (-1.0925484 * viewDir.y * viewDir.z)\n + sh2_2 * (0.3153915 * (2.0 * viewDir.z * viewDir.z - viewDir.x * viewDir.x - viewDir.y * viewDir.y))\n + sh2_3 * (-1.0925484 * viewDir.x * viewDir.z)\n + sh2_4 * (0.5462742 * (viewDir.x * viewDir.x - viewDir.y * viewDir.y));\n\n return sh1Rgb + sh2Rgb;\n }\n`);\n\nexport const defineEvaluateExtSH3 = unindent(`\n vec3 evaluateExtSH3(uvec4 packedA, uvec4 packedB, vec3 viewDir) {\n vec3 sh3_0 = decodeExtRgb(packedA.x);\n vec3 sh3_1 = decodeExtRgb(packedA.y);\n vec3 sh3_2 = decodeExtRgb(packedA.z);\n vec3 sh3_3 = decodeExtRgb(packedA.w);\n vec3 sh3_4 = decodeExtRgb(packedB.x);\n vec3 sh3_5 = decodeExtRgb(packedB.y);\n vec3 sh3_6 = decodeExtRgb(packedB.z);\n\n float xx = viewDir.x * viewDir.x;\n float yy = viewDir.y * viewDir.y;\n float zz = viewDir.z * viewDir.z;\n float xy = viewDir.x * viewDir.y;\n float yz = viewDir.y * viewDir.z;\n float zx = viewDir.z * viewDir.x;\n\n return sh3_0 * (-0.5900436 * viewDir.y * (3.0 * xx - yy))\n + sh3_1 * (2.8906114 * xy * viewDir.z) +\n + sh3_2 * (-0.4570458 * viewDir.y * (4.0 * zz - xx - yy))\n + sh3_3 * (0.3731763 * viewDir.z * (2.0 * zz - 3.0 * xx - 3.0 * yy))\n + sh3_4 * (-0.4570458 * viewDir.x * (4.0 * zz - xx - yy))\n + sh3_5 * (1.4453057 * viewDir.z * (xx - yy))\n + sh3_6 * (-0.5900436 * viewDir.x * (xx - 3.0 * yy));\n }\n`);\n\nexport function evaluateExtSH({\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n}: {\n coord: DynoVal<\"ivec3\">;\n viewDir: DynoVal<\"vec3\">;\n numSh: DynoVal<\"int\">;\n sh1Texture?: DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>;\n sh2Texture?: DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>;\n sh3TextureA?: DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>;\n sh3TextureB?: DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>;\n}) {\n return new Dyno({\n inTypes: {\n coord: \"ivec3\",\n viewDir: \"vec3\",\n numSh: \"int\",\n sh1Texture: \"usampler2DArray\",\n sh2Texture: \"usampler2DArray\",\n sh3TextureA: \"usampler2DArray\",\n sh3TextureB: \"usampler2DArray\",\n },\n outTypes: { rgb: \"vec3\" },\n inputs: {\n coord,\n viewDir,\n numSh,\n sh1Texture,\n sh2Texture,\n sh3TextureA,\n sh3TextureB,\n },\n globals: () => [\n defineEvaluateExtSH1,\n defineEvaluateExtSH12,\n defineEvaluateExtSH3,\n ],\n statements: ({ inputs, outputs }) => {\n const lines = [\"vec3 rgb = vec3(0.0);\"];\n if (inputs.sh1Texture) {\n if (!inputs.sh2Texture) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n } else {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} == 1) {\n rgb = evaluateExtSH1(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n } else if (${inputs.numSh} >= 2) {\n rgb = evaluateExtSH12(texelFetch(${inputs.sh1Texture}, ${inputs.coord}, 0), texelFetch(${inputs.sh2Texture}, ${inputs.coord}, 0), ${inputs.viewDir});\n `),\n );\n\n if (inputs.sh3TextureA && inputs.sh3TextureB) {\n lines.push(\n ...unindentLines(`\n if (${inputs.numSh} >= 3) {\n rgb += evaluateExtSH3(texelFetch(${inputs.sh3TextureA}, ${inputs.coord}, 0), texelFetch(${inputs.sh3TextureB}, ${inputs.coord}, 0), ${inputs.viewDir});\n }\n `),\n );\n }\n\n lines.push(\"}\");\n }\n }\n lines.push(`${outputs.rgb} = rgb;`);\n return lines;\n },\n }).outputs;\n}\n\nfunction newUint32ArrayTexture(\n data: Uint32Array | null,\n width: number,\n height: number,\n depth: number,\n format: THREE.AnyPixelFormat,\n type: THREE.TextureDataType,\n internalFormat: THREE.PixelFormatGPU,\n): THREE.DataArrayTexture {\n const texture = new THREE.DataArrayTexture(\n data as Uint32Array,\n width,\n height,\n depth,\n );\n texture.format = format;\n texture.type = type;\n texture.internalFormat = internalFormat;\n texture.needsUpdate = true;\n return texture;\n}\n","import * as THREE from \"three\";\n\nimport { DynoPackedSplats, type PackedSplats } from \"./PackedSplats\";\nimport { Readback, type Rgba8Readback } from \"./Readback\";\nimport { SPLAT_TEX_WIDTH } from \"./defines\";\nimport {\n Dyno,\n type DynoBlock,\n DynoInt,\n DynoUniform,\n type DynoVal,\n add,\n dynoBlock,\n readPackedSplatRange,\n splitGsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize } from \"./utils\";\n\n// An RgbaArray is a collection of ordered RGBA8 values, which can be used as a dyno\n// data source, for example for recoloring Gsplats via SplatMesh.splatRgba.\n// It can be instantiated from a Uint8Array of RGBA8 values, or it can be\n// generated using a Rgba8Readback dyno program.\n\nexport type RgbaArrayOptions = {\n // Reserve space for at least this many RGBA values.\n capacity?: number;\n // Use the provided array of RGBA8 values as the source.\n array?: Uint8Array;\n // The number of actual RGBA8 values in the array.\n count?: number;\n};\n\nexport class RgbaArray {\n capacity = 0;\n count = 0;\n array: Uint8Array | null = null;\n\n readback: Readback | null = null;\n source: THREE.DataArrayTexture | null = null;\n // Set to true if source array is updated to have it upload to GPU\n needsUpdate = true;\n\n // Use this as a TRgbaArray in a dyno graph\n dyno: DynoUniform;\n\n constructor(options: RgbaArrayOptions = {}) {\n this.dyno = new DynoUniform({\n key: \"rgbaArray\",\n type: TRgbaArray,\n globals: () => [defineRgbaArray],\n value: {\n texture: RgbaArray.getEmpty(),\n count: 0,\n },\n update: (value) => {\n value.texture = this.getTexture();\n value.count = this.count;\n return value;\n },\n });\n\n if (options.array) {\n // Initialize with given array\n this.array = options.array;\n const splatCount = Math.floor(this.array.length / 4);\n this.capacity = Math.ceil(splatCount / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (this.capacity > splatCount) {\n this.array = new Uint8Array(this.capacity * 4);\n this.array.set(options.array);\n }\n this.count = Math.min(\n splatCount,\n options.count ?? Number.POSITIVE_INFINITY,\n );\n } else {\n this.capacity = options.capacity ?? 0;\n this.count = 0;\n }\n }\n\n // Free up resources\n dispose() {\n if (this.readback) {\n this.readback.dispose();\n this.readback = null;\n }\n if (this.source) {\n this.source.dispose();\n this.source = null;\n }\n }\n\n // Ensure that our array is large enough to hold capacity RGBA8 values.\n ensureCapacity(capacity: number): Uint8Array {\n if (!this.array || capacity > (this.array?.length ?? 0) / 4) {\n this.capacity = getTextureSize(capacity).maxSplats;\n const newArray = new Uint8Array(this.capacity * 4);\n if (this.array) {\n // Copy over existing data\n newArray.set(this.array);\n }\n this.array = newArray;\n }\n return this.array;\n }\n\n // Get the THREE.DataArrayTexture from either the readback or the source.\n getTexture(): THREE.DataArrayTexture {\n let texture = this.readback?.getTexture();\n if (this.source || this.array) {\n texture = this.maybeUpdateSource();\n }\n return texture ?? RgbaArray.getEmpty();\n }\n\n // Create or get a THREE.DataArrayTexture from the data array.\n private maybeUpdateSource(): THREE.DataArrayTexture {\n if (!this.array) {\n throw new Error(\"No array\");\n }\n\n if (this.needsUpdate || !this.source) {\n this.needsUpdate = false;\n\n if (this.source) {\n const { width, height, depth } = this.source.image;\n if (this.capacity !== width * height * depth) {\n this.source.dispose();\n this.source = null;\n }\n }\n if (!this.source) {\n const { width, height, depth } = getTextureSize(this.capacity);\n this.source = new THREE.DataArrayTexture(\n this.array as Uint8Array,\n width,\n height,\n depth,\n );\n this.source.format = THREE.RGBAFormat;\n this.source.type = THREE.UnsignedByteType;\n this.source.internalFormat = \"RGBA8\";\n this.source.needsUpdate = true;\n } else if (this.array.buffer !== this.source.image.data.buffer) {\n this.source.image.data = new Uint8Array(this.array.buffer);\n }\n this.source.needsUpdate = true;\n }\n return this.source;\n }\n\n // Generate the RGBA8 values from a Rgba8Readback dyno program.\n render({\n reader,\n count,\n renderer,\n }: { reader: Rgba8Readback; count: number; renderer: THREE.WebGLRenderer }) {\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n this.readback.render({ reader, count, renderer });\n this.capacity = this.readback.capacity;\n this.count = this.readback.count;\n }\n\n // Extract the RGBA8 values from a PackedSplats collection.\n fromPackedSplats({\n packedSplats,\n base,\n count,\n renderer,\n }: {\n packedSplats: PackedSplats;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n const { dynoSplats, dynoBase, dynoCount, reader } = RgbaArray.makeDynos();\n dynoSplats.packedSplats = packedSplats;\n dynoBase.value = base;\n dynoCount.value = count;\n this.render({ reader, count, renderer });\n return this;\n }\n\n // Read back the RGBA8 values from the readback buffer.\n async read(): Promise {\n if (!this.readback) {\n throw new Error(\"No readback\");\n }\n if (!this.array || this.array.length < this.count * 4) {\n this.array = new Uint8Array(this.capacity * 4);\n }\n const result = await this.readback.readback({ readback: this.array });\n return result.subarray(0, this.count * 4);\n }\n\n async getArray(): Promise {\n if (this.readback) {\n return await this.read();\n }\n if (this.array) {\n return this.array;\n }\n throw new Error(\"No array\");\n }\n\n private static emptySource: THREE.DataArrayTexture | null = null;\n\n // Can be used where you need an uninitialized THREE.DataArrayTexture like\n // a uniform you will update with the result of this.getTexture() later.\n static getEmpty(): THREE.DataArrayTexture {\n if (!RgbaArray.emptySource) {\n const emptyArray = new Uint8Array(1 * 4);\n RgbaArray.emptySource = new THREE.DataArrayTexture(emptyArray, 1, 1, 1);\n RgbaArray.emptySource.format = THREE.RGBAFormat;\n RgbaArray.emptySource.type = THREE.UnsignedByteType;\n RgbaArray.emptySource.internalFormat = \"RGBA8\";\n RgbaArray.emptySource.needsUpdate = true;\n }\n return RgbaArray.emptySource;\n }\n\n private static dynos: {\n dynoSplats: DynoPackedSplats;\n dynoBase: DynoInt;\n dynoCount: DynoInt;\n reader: DynoBlock<{ index: \"int\" }, { rgba8: \"vec4\" }>;\n } | null = null;\n\n // Create a dyno program that can extract RGBA8 values from a PackedSplats\n private static makeDynos() {\n if (!RgbaArray.dynos) {\n const dynoSplats = new DynoPackedSplats();\n const dynoBase = new DynoInt({ value: 0 });\n const dynoCount = new DynoInt({ value: 0 });\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n index = add(index, dynoBase);\n const gsplat = readPackedSplatRange(\n dynoSplats,\n index,\n dynoBase,\n dynoCount,\n );\n return { rgba8: splitGsplat(gsplat).outputs.rgba };\n },\n );\n RgbaArray.dynos = { dynoSplats, dynoBase, dynoCount, reader };\n }\n return RgbaArray.dynos;\n }\n}\n\n// Dyno types and definitions\n\nexport const TRgbaArray = { type: \"RgbaArray\" } as { type: \"RgbaArray\" };\n\nexport const defineRgbaArray = unindent(`\n struct RgbaArray {\n sampler2DArray texture;\n int count;\n };\n`);\n\nexport function readRgbaArray(\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n): DynoVal<\"vec4\"> {\n const dyno = new Dyno<\n { rgba: typeof TRgbaArray; index: \"int\" },\n { rgba: \"vec4\" }\n >({\n inTypes: { rgba: TRgbaArray, index: \"int\" },\n outTypes: { rgba: \"vec4\" },\n inputs: { rgba, index },\n globals: () => [defineRgbaArray],\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n if ((${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.rgba} = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n } else {\n ${outputs.rgba} = vec4(0.0, 0.0, 0.0, 0.0);\n }\n `),\n });\n return dyno.outputs.rgba;\n}\n","import * as THREE from \"three\";\n\nimport { decode_rad_header } from \"spark-rs\";\nimport { LN_SCALE_MAX, LN_SCALE_MIN, dyno } from \".\";\nimport { evaluateExtSH } from \"./ExtSplats\";\nimport { evaluatePackedSH } from \"./PackedSplats\";\nimport { getSplatFileType, getSplatFileTypeFromPath } from \"./SplatLoader\";\nimport type { SplatSource } from \"./SplatMesh\";\nimport { workerPool } from \"./SplatWorker\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n type ExtResult,\n type PackedResult,\n type RadMeta,\n type SplatEncoding,\n SplatFileType,\n} from \"./defines\";\nimport { type DynoUsampler2DArray, pagedSplatTexCoord } from \"./dyno\";\nimport {\n decodeExtSplat,\n getTextureSize,\n unpackSplat,\n uploadU32DataTextureRows,\n} from \"./utils\";\nimport * as wasm from \"./wasm\";\n\nexport interface PagedSplatsOptions {\n pager?: SplatPager;\n rootUrl?: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n maxSh?: number;\n}\n\nconst PAGE_WIDTH = 256;\nconst PAGE_HEIGHT = 256;\nconst PAGE_SPLATS = PAGE_WIDTH * PAGE_HEIGHT; // 65536\n\nexport class PagedSplats implements SplatSource {\n pager?: SplatPager;\n rootUrl: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n fileBytes?: Uint8Array;\n fileType?: SplatFileType;\n\n numSh: number;\n maxSh: number;\n sh1Codes?: Uint32Array;\n sh2Codes?: Uint32Array;\n sh3Codes?: Uint32Array | [Uint32Array, Uint32Array];\n\n numSplats: number;\n splatEncoding?: SplatEncoding;\n radMetaPromise?: Promise<{ meta: RadMeta; chunksStart: number }>;\n\n dynoNumSplats: dyno.DynoInt<\"numSplats\">;\n dynoIndices: dyno.DynoUsampler2D<\"indices\", THREE.DataTexture>;\n rgbMinMaxLnScaleMinMax: dyno.DynoVec4<\n THREE.Vector4,\n \"rgbMinMaxLnScaleMinMax\"\n >;\n lodOpacity: dyno.DynoBool<\"lodOpacity\">;\n dynoNumSh: dyno.DynoInt<\"numSh\">;\n shMax: dyno.DynoVec3;\n\n constructor(options: PagedSplatsOptions) {\n this.pager = options.pager;\n this.rootUrl = options.rootUrl ?? \"\";\n this.requestHeader = options.requestHeader;\n this.withCredentials = options.withCredentials;\n this.numSh = 0;\n this.maxSh = options.pager?.maxSh ?? 3;\n\n this.numSplats = 0;\n\n this.dynoNumSplats = new dyno.DynoInt({ value: 0 });\n this.dynoIndices = new dyno.DynoUsampler2D({\n value: SplatPager.emptyIndicesTexture,\n });\n\n this.rgbMinMaxLnScaleMinMax = new dyno.DynoVec4({\n value: new THREE.Vector4(0.0, 1.0, LN_SCALE_MIN, LN_SCALE_MAX),\n });\n this.lodOpacity = new dyno.DynoBool({\n value: false,\n });\n\n this.dynoNumSh = new dyno.DynoInt({ value: 0 });\n this.shMax = new dyno.DynoVec3({ value: new THREE.Vector3() });\n\n this.fileBytes = options.fileBytes;\n this.fileType = options.fileType;\n if (!this.fileType && this.fileBytes) {\n this.fileType = getSplatFileType(this.fileBytes);\n }\n if (!this.fileType && this.rootUrl) {\n this.fileType = getSplatFileTypeFromPath(this.rootUrl);\n }\n if (!this.fileType) {\n throw new Error(\"Unable to determine file type\");\n }\n if (this.fileType === SplatFileType.RAD) {\n this.radMetaPromise = this.getRadMeta();\n }\n }\n\n dispose() {\n if (this.dynoIndices.value !== SplatPager.emptyIndicesTexture) {\n this.dynoIndices.value.dispose();\n this.dynoIndices.value = SplatPager.emptyIndicesTexture;\n }\n }\n\n setMaxSh(maxSh: number) {\n this.maxSh = maxSh;\n }\n\n getRadMeta(): Promise<{ meta: RadMeta; chunksStart: number }> {\n if (this.radMetaPromise) {\n return this.radMetaPromise;\n }\n\n this.radMetaPromise = (async () => {\n await wasm.initialization;\n\n if (this.fileBytes) {\n // Shouldn't be more than 1 MB, so don't send more data than that.\n const metaStart = decode_rad_header(this.fileBytes.slice(0, 1048576));\n if (metaStart) {\n return metaStart;\n }\n throw new Error(\"Failed to decode RAD header\");\n }\n if (!this.rootUrl) {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n // We don't know how big the header will be. Most likely 64KB will be enough,\n // but try larger blocks in backoff if it wasn't enough.\n for (const tryBytes of [65536, 256 * 1024, 1024 * 1024]) {\n const bytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset: 0,\n bytes: tryBytes,\n });\n const metaStart = decode_rad_header(bytes);\n if (metaStart) {\n return metaStart;\n }\n }\n throw new Error(\"Failed to decode RAD header\");\n })().then((metaStart) => {\n // console.log(\"RAD meta: \", metaStart.meta);\n return metaStart;\n });\n\n this.radMetaPromise.catch((error) => {\n console.error(error);\n // Allow it to be tried again\n // this.radMetaPromise = undefined;\n });\n\n return this.radMetaPromise;\n }\n\n chunkUrl(chunk: number): string {\n return this.rootUrl.replace(/-lod-0\\./, `-lod-${chunk}.`);\n }\n\n async fetchDecodeChunk(chunk: number) {\n let decodeBytes = undefined;\n\n if (this.fileType === SplatFileType.RAD) {\n const { meta, chunksStart } = await this.getRadMeta();\n if (chunk < 0 || chunk >= meta.chunks.length) {\n throw new Error(\n `Chunk index out of range: ${chunk} (max: ${meta.chunks.length - 1})`,\n );\n }\n let { offset, bytes, filename } = meta.chunks[chunk];\n\n if (filename) {\n if (this.fileBytes) {\n throw new Error(\"Chunked RAD file not supported with fileBytes\");\n }\n const resolvedRoot = new URL(\n this.rootUrl,\n window.location.href,\n ).toString();\n const chunkUrl = new URL(filename, resolvedRoot).toString();\n decodeBytes = await fetchRange({\n url: chunkUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n });\n } else {\n offset += chunksStart;\n // console.log(`Fetching chunk ${chunk} at offset ${offset} with bytes ${bytes}`);\n if (this.fileBytes) {\n if (offset < 0 || offset + bytes > this.fileBytes.length) {\n throw new Error(\n `Invalid chunk offset or bytes: ${offset} + ${bytes} > ${this.fileBytes.length}`,\n );\n }\n decodeBytes = this.fileBytes.slice(offset, offset + bytes);\n } else if (this.rootUrl) {\n decodeBytes = await fetchRange({\n url: this.rootUrl,\n requestHeader: this.requestHeader,\n withCredentials: this.withCredentials,\n offset,\n bytes,\n });\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n }\n } else if (this.fileBytes) {\n // Fall through\n } else if (this.rootUrl) {\n const url = this.chunkUrl(chunk);\n const request = new Request(url, {\n headers: this.requestHeader\n ? new Headers(this.requestHeader)\n : undefined,\n credentials: this.withCredentials ? \"include\" : \"same-origin\",\n });\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n decodeBytes = new Uint8Array(await response.arrayBuffer());\n } else {\n throw new Error(\"No url or fileBytes provided\");\n }\n\n return await workerPool.withWorker(async (worker) => {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n if (!this.pager.extSplats) {\n const result = (await worker.call(\"loadPackedSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: this.sh3Codes?.slice(),\n })) as { lodSplats: PackedResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = lodSplats.splatEncoding;\n\n this.numSh = lodSplats.extra.sh3\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n\n this.rgbMinMaxLnScaleMinMax.value.set(\n this.splatEncoding.rgbMin ?? 0.0,\n this.splatEncoding.rgbMax ?? 1.0,\n this.splatEncoding.lnScaleMin ?? LN_SCALE_MIN,\n this.splatEncoding.lnScaleMax ?? LN_SCALE_MAX,\n );\n\n this.lodOpacity.value = this.splatEncoding.lodOpacity ?? false;\n\n this.shMax.value.set(\n this.splatEncoding.sh1Max ?? 1.0,\n this.splatEncoding.sh2Max ?? 1.0,\n this.splatEncoding.sh3Max ?? 1.0,\n );\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n }\n\n const sh3Codes = this.sh3Codes as [Uint32Array, Uint32Array] | undefined;\n const result = (await worker.call(\"loadExtSplats\", {\n fileBytes: decodeBytes,\n pathName: this.chunkUrl(chunk),\n sh1Codes: this.sh1Codes?.slice(),\n sh2Codes: this.sh2Codes?.slice(),\n sh3Codes: sh3Codes\n ? [sh3Codes[0].slice(), sh3Codes[1].slice()]\n : undefined,\n })) as { lodSplats: ExtResult };\n const lodSplats = result.lodSplats;\n if (!this.splatEncoding) {\n this.splatEncoding = DEFAULT_SPLAT_ENCODING;\n this.numSh =\n lodSplats.extra.sh3a && lodSplats.extra.sh3b\n ? 3\n : lodSplats.extra.sh2\n ? 2\n : lodSplats.extra.sh1\n ? 1\n : 0;\n }\n this.sh1Codes = lodSplats.extra.sh1Codes ?? this.sh1Codes;\n this.sh2Codes = lodSplats.extra.sh2Codes ?? this.sh2Codes;\n this.sh3Codes = lodSplats.extra.sh3Codes ?? this.sh3Codes;\n return lodSplats;\n });\n }\n\n update(numSplats: number, indices: Uint32Array) {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const renderer = this.pager.renderer;\n this.numSplats = numSplats;\n this.dynoNumSplats.value = this.numSplats;\n const rows = Math.ceil(numSplats / 16384);\n\n let indicesTexture =\n this.dynoIndices.value === SplatPager.emptyIndicesTexture\n ? undefined\n : this.dynoIndices.value;\n if (indicesTexture && rows > indicesTexture.image.height) {\n indicesTexture.dispose();\n indicesTexture = undefined;\n }\n\n if (!indicesTexture) {\n indicesTexture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n indicesTexture.internalFormat = \"RGBA32UI\";\n indicesTexture.needsUpdate = true;\n renderer.initTexture(indicesTexture);\n this.dynoIndices.value = indicesTexture;\n } else {\n const textureIndices = indicesTexture.image.data as Uint32Array;\n textureIndices.set(indices.subarray(0, numSplats));\n\n uploadU32DataTextureRows(\n renderer,\n indicesTexture,\n 4096,\n rows,\n textureIndices,\n );\n }\n }\n\n prepareFetchSplat() {}\n\n getNumSplats(): number {\n return this.numSplats;\n }\n\n hasRgbDir(): boolean {\n if (!this.pager) {\n return false;\n }\n return Math.min(this.numSh, this.pager.maxSh) > 0;\n }\n\n getNumSh(): number {\n return this.numSh;\n }\n\n fetchSplat({\n index,\n viewOrigin,\n }: {\n index: dyno.DynoVal<\"int\">;\n viewOrigin?: dyno.DynoVal<\"vec3\">;\n }): dyno.DynoVal {\n if (!this.pager) {\n throw new Error(\"PagedSplats.pager not set\");\n }\n\n const splatIndex = this.pager.readIndex.apply({\n index,\n numSplats: this.dynoNumSplats,\n indices: this.dynoIndices,\n }).index;\n\n if (!this.pager.extSplats) {\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(\n this.numSh,\n this.maxSh,\n this.pager.maxSh,\n );\n return this.pager.readSplatDir.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n viewOrigin,\n numSh: this.dynoNumSh,\n shMax: this.shMax,\n }).gsplat;\n }\n return this.pager.readSplat.apply({\n index: splatIndex,\n rgbMinMaxLnScaleMinMax: this.rgbMinMaxLnScaleMinMax,\n lodOpacity: this.lodOpacity,\n }).gsplat;\n }\n\n if (this.hasRgbDir() && viewOrigin) {\n this.dynoNumSh.value = Math.min(this.numSh, this.maxSh, this.pager.maxSh);\n return this.pager.readSplatExtDir.apply({\n index: splatIndex,\n viewOrigin,\n numSh: this.dynoNumSh,\n }).gsplat;\n }\n return this.pager.readSplatExt.apply({ index: splatIndex }).gsplat;\n }\n\n // Iterate over Gsplats index 0..=(this.numSplats-1), unpack each Gsplat\n // and invoke the callback function with the Gsplat attributes.\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n if (!this.pager || !this.numSplats) {\n return;\n }\n const extSplats = this.pager.extSplats;\n const indices = this.dynoIndices.value.image.data as Uint32Array;\n const packedSplatArray = this.pager.packedTexture.value.image\n .data as Uint32Array;\n const extPackedSplatArray = this.pager.extTexture.value.image\n .data as Uint32Array;\n const extArrays: [Uint32Array, Uint32Array] = [\n packedSplatArray,\n extPackedSplatArray,\n ];\n\n for (let i = 0; i < this.numSplats; ++i) {\n const splatIndex = indices[i];\n const unpacked = extSplats\n ? decodeExtSplat(extArrays, splatIndex)\n : unpackSplat(packedSplatArray, splatIndex, this.splatEncoding);\n callback(\n i,\n unpacked.center,\n unpacked.scales,\n unpacked.quaternion,\n unpacked.opacity,\n unpacked.color,\n );\n }\n }\n}\n\nexport interface SplatPagerOptions {\n /**\n * THREE.WebGLRenderer instance to upload texture data\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Whether to use extended Gsplat encoding for paged splats.\n * @default false\n */\n extSplats?: boolean;\n /**\n * Maximum size of splat page pool\n * @default 65536 * 256 = 16777216\n */\n maxSplats?: number;\n /**\n * Maximum number of spherical harmonics to keep\n * @default 3\n */\n maxSh?: number;\n /**\n * Automatically drive page fetching, or poll via drive()\n * @default true\n */\n autoDrive?: boolean;\n /**\n * Number of parallel chunk fetchers\n * @default 3\n */\n numFetchers?: number;\n}\n\ninterface PageUpload {\n page: number;\n numSplats: number;\n packedArray: Uint32Array;\n extArray?: Uint32Array;\n shArrays: Array;\n}\n\nexport class SplatPager {\n readonly renderer: THREE.WebGLRenderer;\n\n readonly extSplats: boolean;\n readonly maxPages: number;\n readonly maxSplats: number;\n readonly pageSplats: number;\n\n readonly maxSh: number;\n curSh: number;\n\n autoDrive: boolean;\n numFetchers: number;\n fetchPause = 0;\n\n splatsChunkToPage: Map<\n PagedSplats,\n ({ page: number; lru: number } | undefined)[]\n > = new Map();\n pageToSplatsChunk: (\n | { splats: PagedSplats; chunk: number; time: number }\n | undefined\n )[] = [];\n pageFreelist: number[];\n pageLru: Set<{ page: number; lru: number }>;\n freeablePages: number[];\n newUploads: PageUpload[];\n readyUploads: PageUpload[];\n lodTreeUpdates: {\n splats: PagedSplats;\n page: number;\n chunk: number;\n numSplats: number;\n lodTree?: Uint32Array;\n }[];\n\n fetchers: { splats: PagedSplats; chunk: number; promise: Promise }[];\n fetched: {\n splats: PagedSplats;\n chunk: number;\n data: PackedResult | ExtResult;\n }[];\n fetchPriority: { splats: PagedSplats; chunk: number }[];\n\n packedTexture: dyno.DynoUsampler2DArray<\n \"packedTexture\",\n THREE.DataArrayTexture\n >;\n extTexture: dyno.DynoUsampler2DArray<\"extTexture\", THREE.DataArrayTexture>;\n readonly shTextures: [\n dyno.DynoUsampler2DArray<\"sh1\", THREE.DataArrayTexture>,\n dyno.DynoUsampler2DArray<\"sh2\", THREE.DataArrayTexture>,\n dyno.DynoUsampler2DArray<\"sh3\", THREE.DataArrayTexture>,\n dyno.DynoUsampler2DArray<\"sh3b\", THREE.DataArrayTexture>,\n ];\n\n readIndex: dyno.DynoBlock<\n { index: \"int\"; numSplats: \"int\"; indices: \"usampler2D\" },\n { index: \"int\" }\n >;\n readSplat: dyno.DynoBlock<\n { index: \"int\"; rgbMinMaxLnScaleMinMax: \"vec4\"; lodOpacity: \"bool\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExt: dyno.DynoBlock<\n { index: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatDir: dyno.DynoBlock<\n {\n index: \"int\";\n rgbMinMaxLnScaleMinMax: \"vec4\";\n lodOpacity: \"bool\";\n viewOrigin: \"vec3\";\n numSh: \"int\";\n shMax: \"vec3\";\n },\n { gsplat: typeof dyno.Gsplat }\n >;\n readSplatExtDir: dyno.DynoBlock<\n { index: \"int\"; viewOrigin: \"vec3\"; numSh: \"int\" },\n { gsplat: typeof dyno.Gsplat }\n >;\n\n constructor(options: SplatPagerOptions) {\n this.renderer = options.renderer;\n this.extSplats = options.extSplats ?? false;\n\n this.pageSplats = PAGE_SPLATS;\n this.maxSplats = options.maxSplats ?? 16777216;\n this.maxPages = Math.ceil(this.maxSplats / PAGE_SPLATS);\n this.maxSplats = this.maxPages * PAGE_SPLATS;\n\n this.maxSh = options.maxSh ?? 3;\n this.curSh = 0;\n\n this.autoDrive = options.autoDrive ?? true;\n this.numFetchers = options.numFetchers ?? 3;\n\n this.splatsChunkToPage = new Map();\n this.pageToSplatsChunk = new Array(this.maxPages);\n this.pageFreelist = Array.from({ length: this.maxPages }, (_, i) => i);\n this.pageLru = new Set();\n this.freeablePages = [];\n this.newUploads = [];\n this.readyUploads = [];\n this.lodTreeUpdates = [];\n\n this.fetchers = [];\n this.fetched = [];\n this.fetchPriority = [];\n\n this.packedTexture = new dyno.DynoUsampler2DArray({\n value: this.newUint32ArrayTexture(4),\n });\n this.extTexture = new dyno.DynoUsampler2DArray({\n value: this.extSplats\n ? this.newUint32ArrayTexture(4)\n : SplatPager.emptyExtTexture,\n });\n\n const emptyShTextures = this.extSplats\n ? SplatPager.emptyExtShTextures\n : SplatPager.emptyShTextures;\n this.shTextures = emptyShTextures.map(\n (texture) =>\n new dyno.DynoUsampler2DArray({\n value: texture,\n }),\n ) as typeof this.shTextures;\n\n this.readIndex = dyno.dynoBlock(\n { index: \"int\", numSplats: \"int\", indices: \"usampler2D\" },\n { index: \"int\" },\n ({ index, numSplats, indices }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n numSplats: \"int\",\n indices: \"usampler2D\",\n },\n outTypes: { index: \"int\" },\n inputs: {\n index,\n numSplats,\n indices,\n },\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n if (${inputs.index} >= ${inputs.numSplats}) {\n return;\n }\n\n ivec2 indexCoord = ivec2((${inputs.index} >> 2) & 4095, ${inputs.index} >> 14);\n uint index = texelFetch(${inputs.indices}, indexCoord, 0)[${inputs.index} & 3];\n ${outputs.index} = int(index);\n `),\n }).outputs;\n },\n );\n\n this.readSplat = dyno.dynoBlock(\n { index: \"int\", rgbMinMaxLnScaleMinMax: \"vec4\", lodOpacity: \"bool\" },\n { gsplat: dyno.Gsplat },\n ({ index, rgbMinMaxLnScaleMinMax, lodOpacity }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n packedTexture: \"usampler2DArray\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n packedTexture: this.packedTexture,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = pagedSplatTexCoord(index);\n uvec4 packedData = texelFetch(${inputs.packedTexture}, splatCoord, 0);\n\n unpackSplatEncoding(packedData, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba, ${inputs.rgbMinMaxLnScaleMinMax});\n if ((${outputs.gsplat}.rgba.a == 0.0) || all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n \n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n if (${inputs.lodOpacity}) {\n ${outputs.gsplat}.rgba.a *= 2.0;\n }\n `),\n }).outputs;\n },\n );\n\n this.readSplatDir = dyno.dynoBlock(\n {\n index: \"int\",\n rgbMinMaxLnScaleMinMax: \"vec4\",\n lodOpacity: \"bool\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n shMax: \"vec3\",\n },\n { gsplat: dyno.Gsplat },\n ({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n viewOrigin,\n numSh,\n shMax,\n }) => {\n if (\n !index ||\n !rgbMinMaxLnScaleMinMax ||\n !lodOpacity ||\n !viewOrigin ||\n !numSh ||\n !shMax\n ) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplat.apply({\n index,\n rgbMinMaxLnScaleMinMax,\n lodOpacity,\n }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluatePackedSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.shTextures[0],\n sh2Texture: this.shTextures[1],\n sh3Texture: this.shTextures[2],\n shMax,\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n\n this.readSplatExt = dyno.dynoBlock(\n { index: \"int\" },\n { gsplat: dyno.Gsplat },\n ({ index }) => {\n return new dyno.Dyno({\n inTypes: {\n index: \"int\",\n extTexture1: \"usampler2DArray\",\n extTexture2: \"usampler2DArray\",\n },\n outTypes: { gsplat: dyno.Gsplat },\n inputs: {\n index,\n extTexture1: this.packedTexture,\n extTexture2: this.extTexture,\n },\n globals: () => [dyno.defineGsplat],\n statements: ({ inputs, outputs }) =>\n dyno.unindentLines(`\n int index = ${inputs.index};\n ivec3 splatCoord = ivec3(index & 255, (index >> 8) & 255, index >> 16);\n uvec4 ext1 = texelFetch(${inputs.extTexture1}, splatCoord, 0);\n float alpha = unpackSplatExtAlpha(ext1);\n if (alpha == 0.0) {\n return;\n }\n\n uvec4 ext2 = texelFetch(${inputs.extTexture2}, splatCoord, 0);\n unpackSplatExt(ext1, ext2, ${outputs.gsplat}.center, ${outputs.gsplat}.scales, ${outputs.gsplat}.quaternion, ${outputs.gsplat}.rgba);\n if (all(equal(${outputs.gsplat}.scales, vec3(0.0, 0.0, 0.0)))) {\n return;\n }\n\n ${outputs.gsplat}.index = index;\n ${outputs.gsplat}.flags = GSPLAT_FLAG_ACTIVE;\n `),\n }).outputs;\n },\n );\n\n this.readSplatExtDir = dyno.dynoBlock(\n {\n index: \"int\",\n viewOrigin: \"vec3\",\n numSh: \"int\",\n },\n { gsplat: dyno.Gsplat },\n ({ index, viewOrigin, numSh }) => {\n if (!index || !viewOrigin || !numSh) {\n throw new Error(\"index and viewOrigin are required\");\n }\n let gsplat = this.readSplatExt.apply({ index }).gsplat;\n\n const splatCenter = dyno.splitGsplat(gsplat).outputs.center;\n const viewDir = dyno.normalize(dyno.sub(splatCenter, viewOrigin));\n let rgb = evaluateExtSH({\n coord: pagedSplatTexCoord(index),\n viewDir,\n numSh,\n sh1Texture: this.shTextures[0],\n sh2Texture: this.shTextures[1],\n sh3TextureA: this.shTextures[2],\n sh3TextureB: this.shTextures[3],\n }).rgb;\n rgb = dyno.add(rgb, dyno.splitGsplat(gsplat).outputs.rgb);\n gsplat = dyno.combineGsplat({ gsplat, rgb });\n return { gsplat };\n },\n );\n }\n\n dispose() {\n this.autoDrive = false;\n this.numFetchers = 0;\n\n this.packedTexture.value.dispose();\n this.packedTexture.value.source.data = null;\n if (this.extTexture.value !== SplatPager.emptyExtTexture) {\n this.extTexture.value.dispose();\n this.extTexture.value.source.data = null;\n }\n\n const emptyShTextures = this.extSplats\n ? SplatPager.emptyExtShTextures\n : SplatPager.emptyShTextures;\n for (let i = 0; i < emptyShTextures.length; i++) {\n const texture = this.shTextures[i].value;\n if (texture !== emptyShTextures[i]) {\n texture.dispose();\n texture.source.data = null;\n }\n }\n }\n\n private ensureShTextures(numSh: number) {\n this.curSh = Math.max(this.curSh, numSh);\n\n const emptyShTextures = this.extSplats\n ? SplatPager.emptyExtShTextures\n : SplatPager.emptyShTextures;\n for (let i = 0; i < this.curSh; i++) {\n if (this.shTextures[i].value === emptyShTextures[i]) {\n const elementsPerSplat =\n this.shTextures[i].value === SplatPager.emptyUint32x2 ? 2 : 4;\n this.shTextures[i].value = this.newUint32ArrayTexture(elementsPerSplat);\n }\n }\n }\n\n private allocatePage(): number | undefined {\n return this.pageFreelist.shift();\n }\n\n getSplatsChunk(splats: PagedSplats, chunk: number) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n return undefined;\n }\n return chunks[chunk];\n }\n\n private insertSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n now: number,\n ) {\n if (!this.splatsChunkToPage.has(splats)) {\n this.splatsChunkToPage.set(splats, []);\n }\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n if (chunk >= chunks.length) {\n chunks.length = chunk + 1;\n }\n const pageLru = { page, lru: now };\n chunks[chunk] = pageLru;\n this.pageLru.add(pageLru);\n\n this.pageToSplatsChunk[page] = { splats, chunk, time: performance.now() };\n return this.pageToSplatsChunk[page];\n }\n\n private removeSplatsChunkPage(\n splats: PagedSplats,\n chunk: number,\n page: number,\n ) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n throw new Error(\"impossible\");\n }\n\n const pageLru = chunks[chunk];\n if (!pageLru) {\n throw new Error(\n `pageLru not found for splats: ${splats}, chunk: ${chunk}, page: ${page}`,\n );\n }\n this.pageLru.delete(pageLru);\n\n chunks[chunk] = undefined;\n\n while (chunks.length > 0 && chunks[chunks.length - 1] === undefined) {\n chunks.pop();\n }\n if (chunks.length === 0) {\n this.splatsChunkToPage.delete(splats);\n }\n\n this.pageToSplatsChunk[page] = undefined;\n while (\n this.pageToSplatsChunk.length > 0 &&\n this.pageToSplatsChunk[this.pageToSplatsChunk.length - 1] === undefined\n ) {\n this.pageToSplatsChunk.pop();\n }\n }\n\n removeSplats(splats: PagedSplats) {\n const chunks = this.splatsChunkToPage.get(splats);\n if (!chunks) {\n return;\n }\n\n const freedPages = new Set();\n\n while (chunks.length > 0) {\n const chunk = chunks.pop();\n if (chunk) {\n const { page } = chunk;\n this.pageToSplatsChunk[page] = undefined;\n freedPages.add(page);\n this.pageFreelist.push(page);\n this.pageLru.delete(chunk);\n }\n }\n this.splatsChunkToPage.delete(splats);\n this.freeablePages = this.freeablePages.filter(\n (page) => !freedPages.has(page),\n );\n }\n\n private uploadPage(\n page: number,\n packedArray: Uint32Array,\n shArrays: Array,\n extArray?: Uint32Array,\n ) {\n const pageBase = page * PAGE_SPLATS;\n\n uploadTextureLayer(this.packedTexture, page, pageBase * 4, packedArray);\n\n if (extArray) {\n uploadTextureLayer(this.extTexture, page, pageBase * 4, extArray);\n }\n\n // In case of extSplats there can be 4 shArrays for 3 sh degrees\n const numSh = Math.min(shArrays.length, 3);\n this.ensureShTextures(numSh);\n\n for (let i = 0; i < shArrays.length; i++) {\n const array = shArrays[i];\n const elementsPerSplat =\n this.shTextures[i].value.format === THREE.RGIntegerFormat ? 2 : 4;\n uploadTextureLayer(\n this.shTextures[i],\n page,\n pageBase * elementsPerSplat,\n array,\n );\n }\n }\n\n private newUint32ArrayTexture(\n elementsPerSplat: 2 | 4,\n ): THREE.DataArrayTexture {\n const data = new Uint32Array(\n this.maxPages * PAGE_WIDTH * PAGE_HEIGHT * elementsPerSplat,\n );\n const texture = new THREE.DataArrayTexture(\n data,\n PAGE_WIDTH,\n PAGE_HEIGHT,\n this.maxPages,\n );\n texture.format =\n elementsPerSplat === 2 ? THREE.RGIntegerFormat : THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = elementsPerSplat === 2 ? \"RG32UI\" : \"RGBA32UI\";\n texture.needsUpdate = true;\n // Avoid initial upload of empty/null data\n texture.source.dataReady = false;\n this.renderer.initTexture(texture);\n return texture;\n }\n\n driveFetchers() {\n const needed = [];\n const overflow = [];\n let numPages = 0;\n\n for (const { splats, chunk } of this.fetchPriority) {\n const pageLru = this.getSplatsChunk(splats, chunk);\n if (pageLru) {\n if (numPages >= this.maxPages) {\n overflow.push(pageLru);\n } else {\n needed.push(pageLru);\n }\n numPages += 1;\n continue;\n }\n\n if (\n this.fetched.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n ) ||\n this.fetchers.some(\n ({ splats: s, chunk: c }) => splats === s && chunk === c,\n )\n ) {\n numPages += 1;\n continue;\n }\n\n if (numPages < this.maxPages && this.fetchers.length < this.numFetchers) {\n numPages += 1;\n const promise = splats\n .fetchDecodeChunk(chunk)\n .then(\n async (data) => {\n // Place data in ready queue and remove self from active fetchers list\n this.fetched.push({ splats, chunk, data });\n if (this.fetchPause > 0) {\n await new Promise((resolve) =>\n setTimeout(resolve, this.fetchPause),\n );\n }\n },\n async (error) => {\n console.warn(error);\n const backoff = 250 + 500 * Math.random();\n await new Promise((resolve) => setTimeout(resolve, backoff));\n },\n )\n .finally(() => {\n this.fetchers = this.fetchers.filter(\n ({ splats: s, chunk: c }) => splats !== s || chunk !== c,\n );\n this.processFetched();\n });\n // Add self to active fetchers list\n this.fetchers.push({ splats, chunk, promise });\n\n promise.then((data) => {\n if (this.autoDrive) {\n this.driveFetchers();\n }\n });\n }\n }\n\n // Update LRU ordering in reverse priority order\n const now = performance.now();\n\n for (const pageLru of overflow.reverse()) {\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n\n // Create set of pages not needed\n const extraPages = new Set(this.pageLru);\n for (const pageLru of needed.reverse()) {\n extraPages.delete(pageLru);\n\n pageLru.lru = now;\n this.pageLru.delete(pageLru);\n this.pageLru.add(pageLru);\n }\n this.freeablePages = Array.from(extraPages).map(({ page }) => page);\n }\n\n private allocateFreeable(): number | undefined {\n const page = this.freeablePages.shift();\n if (page === undefined) {\n // No freeable pages available\n return undefined;\n }\n\n const splatsChunk = this.pageToSplatsChunk[page];\n if (!splatsChunk) {\n throw new Error(`splatsChunk not found for page: ${page}`);\n }\n\n const { splats, chunk } = splatsChunk;\n this.removeSplatsChunkPage(splats, chunk, page);\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats: PAGE_SPLATS,\n });\n return page;\n }\n\n private processFetched() {\n const now = performance.now();\n while (true) {\n const fetched = this.fetched.shift();\n if (!fetched) {\n break;\n }\n const { splats, chunk, data } = fetched;\n\n let page = this.allocatePage();\n if (page === undefined) {\n page = this.allocateFreeable();\n if (page === undefined) {\n // No pages available, stop for now\n return;\n }\n }\n\n this.insertSplatsChunkPage(splats, chunk, page, now);\n const { numSplats, extra } = data;\n this.lodTreeUpdates.push({\n splats,\n page,\n chunk,\n numSplats,\n lodTree: extra.lodTree as Uint32Array,\n });\n\n if (isExtResult(data, this.extSplats)) {\n const extArrays = data.extArrays;\n const packedArray = extArrays[0];\n const extArray = extArrays[1];\n const shArrays = [\n data.extra.sh1 as Uint32Array,\n data.extra.sh2 as Uint32Array,\n data.extra.sh3a as Uint32Array,\n data.extra.sh3b as Uint32Array,\n ];\n shArrays.length = shArrays.findIndex((sh) => !sh);\n this.newUploads.push({\n page,\n numSplats,\n packedArray,\n extArray,\n shArrays,\n });\n } else {\n const packedArray = data.packedArray;\n const shArrays = [\n data.extra.sh1 as Uint32Array,\n data.extra.sh2 as Uint32Array,\n data.extra.sh3 as Uint32Array,\n ];\n shArrays.length = shArrays.findIndex((sh) => !sh);\n this.newUploads.push({\n page,\n numSplats,\n packedArray,\n shArrays,\n });\n }\n }\n }\n\n processUploads() {\n while (true) {\n const upload = this.readyUploads.shift();\n if (!upload) {\n break;\n }\n const { page, numSplats, packedArray, extArray, shArrays } = upload;\n this.uploadPage(page, packedArray, shArrays, extArray);\n }\n }\n\n consumeLodTreeUpdates() {\n const updates = this.lodTreeUpdates;\n this.lodTreeUpdates = [];\n\n this.readyUploads.push(...this.newUploads);\n this.newUploads = [];\n return updates;\n }\n\n static emptyUint32x4 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyUint32x2 = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 2);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RG32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyIndicesTexture = (() => {\n const emptyArray = new Uint32Array(4096 * 4);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyPackedTexture = this.emptyUint32x4;\n static emptyExtTexture = this.emptyUint32x4;\n static emptyShTextures = [\n this.emptyUint32x2,\n this.emptyUint32x4,\n this.emptyUint32x4,\n ] as const;\n static emptyExtShTextures = [\n this.emptyUint32x4,\n this.emptyUint32x4,\n this.emptyUint32x4, // SH3A\n this.emptyUint32x4, // SH3B\n ] as const;\n}\n\n// Convenience function to distinguish ExtResult and PackedResult\nfunction isExtResult(\n data: ExtResult | PackedResult,\n extSplats: boolean,\n): data is ExtResult {\n return extSplats;\n}\n\nfunction uploadTextureLayer(\n texture: DynoUsampler2DArray,\n layer: number,\n dstOffset: number,\n data: Uint32Array,\n) {\n const array = texture.value.image.data;\n array.subarray(dstOffset, dstOffset + data.length).set(data);\n\n texture.value.addLayerUpdate(layer);\n texture.value.needsUpdate = true;\n texture.value.source.dataReady = true;\n}\n\nasync function fetchRange({\n url,\n requestHeader,\n withCredentials,\n offset,\n bytes,\n}: {\n url: string;\n requestHeader?: Record;\n withCredentials?: boolean;\n offset?: number;\n bytes?: number;\n}): Promise {\n const request = new Request(url, {\n headers: requestHeader ? new Headers(requestHeader) : undefined,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n });\n if (offset !== undefined && bytes !== undefined) {\n request.headers.set(\"Range\", `bytes=${offset}-${offset + bytes - 1}`);\n }\n const response = await fetch(request);\n if (!response.ok || !response.body) {\n throw new Error(\n `Failed to fetch \"${url}\": ${response.status} ${response.statusText}`,\n );\n }\n return new Uint8Array(await response.arrayBuffer());\n}\n","import * as THREE from \"three\";\n\nimport {\n get_raycast_buffer,\n get_raycast_buffer2,\n raycast_ext_buffers,\n raycast_packed_buffer,\n} from \"spark-rs\";\nimport { ExtSplats } from \"./ExtSplats\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { type RgbaArray, TRgbaArray } from \"./RgbaArray\";\nimport { SplatEdit, SplatEditSdf, SplatEdits } from \"./SplatEdit\";\nimport {\n type CovSplatModifier,\n CovSplatTransformer,\n type FrameUpdateContext,\n type GsplatModifier,\n SplatGenerator,\n SplatTransformer,\n} from \"./SplatGenerator\";\nimport { PagedSplats, SplatPager } from \"./SplatPager\";\nimport type { SplatSkinning } from \"./SplatSkinning\";\nimport {\n DEFAULT_SPLAT_ENCODING,\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n type SplatEncoding,\n type SplatFileType,\n} from \"./defines\";\nimport {\n CovSplat,\n Dyno,\n DynoBool,\n DynoFloat,\n DynoInt,\n DynoUsampler2D,\n type DynoVal,\n DynoVec4,\n Gsplat,\n combineCovSplat,\n combineGsplat,\n defineGsplat,\n dyno,\n dynoBlock,\n gsplatToCovSplat,\n mul,\n splitCovSplat,\n splitGsplat,\n unindentLines,\n} from \"./dyno\";\nimport * as wasm from \"./wasm\";\n\nexport type SplatMeshOptions = {\n // URL to fetch a Gaussian splat file from(supports .ply, .splat, .ksplat,\n // .spz formats). (default: undefined)\n url?: string;\n // Raw bytes of a Gaussian splat file to decode directly instead of fetching\n // from URL. (default: undefined)\n fileBytes?: Uint8Array | ArrayBuffer;\n // Override the file type detection for formats that can't be reliably\n // auto-detected (.splat, .ksplat). (default: undefined auto-detects other\n // formats from file contents)\n fileType?: SplatFileType;\n // File name to use for type detection. (default: undefined)\n fileName?: string;\n // Stream to read the Gaussian splat file from. (default: undefined)\n stream?: ReadableStream;\n // Length of the stream in bytes. (default: undefined)\n streamLength?: number;\n // Use an existing PackedSplats object as the source instead of loading from\n // a file. Can be used to share a collection of Gsplats among multiple SplatMeshes\n // (default: undefined creates a new empty PackedSplats or decoded from a\n // data source above)\n packedSplats?: PackedSplats;\n // Use an existing SplatSource object as the source instead of loading from file.\n splats?: SplatSource;\n // Reserve space for at least this many splats when constructing the mesh\n // initially. (default: determined by file)\n maxSplats?: number;\n // Callback function to programmatically create splats at initialization\n // in provided PackedSplats. (default: undefined)\n constructSplats?: (splats: PackedSplats) => Promise | void;\n // Callback function called while downloading and initializing (default: undefined)\n onProgress?: (event: ProgressEvent) => void;\n // Callback function that is called when mesh initialization is complete.\n // (default: undefined)\n onLoad?: (mesh: SplatMesh) => Promise | void;\n // Controls whether SplatEdits have any effect on this mesh. (default: true)\n editable?: boolean;\n // Controls whether SplatMesh participates in Three.js raycasting (default: true)\n raycastable?: boolean;\n // Minimum opacity for raycasting splats. (default: 0.2)\n minRaycastOpacity?: number;\n // Callback function that is called every frame to update the mesh.\n // Call mesh.updateVersion() if splats need to be regenerated due to some change.\n // Calling updateVersion() is not necessary for object transformations, recoloring,\n // or opacity adjustments as these are auto-detected. (default: undefined)\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n // Gsplat modifier to apply in object-space before any transformations.\n // A GsplatModifier is a dyno shader-graph block that transforms an input\n // gsplat: DynoVal to an output gsplat: DynoVal with gsplat.center\n // coordinate in object-space. (default: undefined)\n objectModifier?: GsplatModifier;\n objectModifiers?: GsplatModifier[];\n // Gsplat modifier to apply in world-space after transformations.\n // (default: undefined)\n worldModifier?: GsplatModifier;\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Override the default splat encoding ranges for the PackedSplats.\n // (default: undefined)\n splatEncoding?: SplatEncoding;\n // Set to true to load/use \"extended splat\" encoding with float32 x/y/z\n extSplats?: boolean | ExtSplats;\n // Set to true to output covariance splats for anisotropic scaling\n covSplats?: boolean;\n // Enable LOD. If a number is provided, it will be used as LoD level base,\n // otherwise the default 1.5 is used. When loading a file without pre-computed\n // LoD it will use the \"quick lod\" algorithm to generate one on-the-fly with\n // the selected LoD level base. (default: undefined=false)\n lod?: boolean | \"quality\";\n // Only create LoD if the input splat acount is above this (default: undefined=0)\n lodAbove?: number;\n // Keep the original PackedSplats data before creating LoD version. (default: false)\n nonLod?: boolean;\n // Force enable/disable LoD (default: enabled iff packedSplats.lodSplats is not null)\n enableLod?: boolean;\n // LoD scale to apply @default 1.0\n lodScale?: number;\n // Foveation scale to apply behind viewer\n // (default: 1.0)\n behindFoveate?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction\n // with perfection foveation=1.0\n // (default: 0.0)\n coneFov0?: number;\n // Full-width angle in degrees of fixed foveation cone along the view direction. 0.0=disable\n // (default: 0.0)\n coneFov?: number;\n // Foveation scale to apply at the edge of the cone\n // (default: 1.0)\n coneFoveate?: number;\n paged?: boolean | PagedSplats | SplatPager;\n};\n\nexport type SplatMeshContext = {\n transform: SplatTransformer;\n viewToWorld: SplatTransformer;\n worldToView: SplatTransformer;\n viewToObject: SplatTransformer;\n covTransform: CovSplatTransformer;\n covViewToWorld: CovSplatTransformer;\n covWorldToView: CovSplatTransformer;\n covViewToObject: CovSplatTransformer;\n recolor: DynoVec4;\n time: DynoFloat;\n deltaTime: DynoFloat;\n numSplats: DynoInt;\n splats: SplatSource;\n enableLod: DynoBool;\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>;\n};\n\nexport interface SplatSource {\n prepareFetchSplat(): void;\n dispose(): void;\n\n getNumSplats(): number;\n hasRgbDir(): boolean;\n getNumSh(): number;\n setMaxSh(maxSh: number): void;\n\n fetchSplat({\n index,\n viewOrigin,\n }: { index: DynoVal<\"int\">; viewOrigin?: DynoVal<\"vec3\"> }): DynoVal<\n typeof Gsplat\n >;\n\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ): void;\n}\n\nexport class EmptySplatSource implements SplatSource {\n fetchDyno = new Dyno({\n inTypes: {},\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplat],\n statements: ({ outputs }) =>\n unindentLines(`\n ${outputs.gsplat}.flags = 0u;\n return;\n `),\n }).outputs.gsplat;\n\n prepareFetchSplat() {}\n dispose() {}\n\n getNumSplats() {\n return 0;\n }\n hasRgbDir() {\n return false;\n }\n getNumSh() {\n return 0;\n }\n setMaxSh(maxSh: number) {}\n\n fetchSplat({ index }: { index: DynoVal<\"int\"> }): DynoVal {\n return this.fetchDyno;\n }\n\n forEachSplat() {}\n}\n\nexport class SplatMesh extends SplatGenerator {\n // A Promise you can await to ensure fetching, parsing,\n // and initialization has completed\n initialized: Promise;\n // A boolean indicating whether initialization is complete\n isInitialized = false;\n\n // If you modify packedSplats you should set\n // splatMesh.packedSplats.needsUpdate = true to signal to Three.js that it\n // should re-upload the data to the underlying texture. Use this sparingly with\n // objects with smaller Gsplat counts as it requires a CPU-GPU data transfer for\n // each frame. Thousands to tens of thousands of Gsplats is fine. (See hands.ts\n // for an example of rendering \"Gsplat hands\" in WebXR using this technique.)\n packedSplats?: PackedSplats;\n extSplats?: ExtSplats;\n covSplats: boolean;\n splats?: SplatSource;\n lastSplats?: SplatSource;\n paged?: PagedSplats;\n\n // A THREE.Color that can be used to tint all splats in the mesh.\n // (default: new THREE.Color(1, 1, 1))\n recolor: THREE.Color = new THREE.Color(1, 1, 1);\n // Global opacity multiplier for all splats in the mesh. (default: 1)\n opacity = 1;\n\n // A SplatMeshContext consisting of useful scene and object dyno uniforms that can\n // be used to in the Gsplat processing pipeline, for example via objectModifier and\n // worldModifier. (created on construction)\n context: SplatMeshContext;\n onFrame?: ({\n mesh,\n time,\n deltaTime,\n }: { mesh: SplatMesh; time: number; deltaTime: number }) => void;\n generatorDirty = true;\n\n objectModifiers?: GsplatModifier[];\n worldModifiers?: GsplatModifier[];\n covObjectModifiers?: CovSplatModifier[];\n covWorldModifiers?: CovSplatModifier[];\n // Set to true to have the viewToObject property in context be updated each frame.\n // If the mesh has extra.sh1 (first order spherical harmonics directional lighting)\n // this property will always be updated. (default: false)\n enableViewToObject = false;\n // Set to true to have context.viewToWorld updated each frame. (default: false)\n enableViewToWorld = false;\n // Set to true to have context.worldToView updated each frame. (default: false)\n enableWorldToView = false;\n\n // Optional SplatSkinning instance for animating splats with dual-quaternion\n // skeletal animation. (default: null)\n skinning: SplatSkinning | null = null;\n\n // Optional list of SplatEdits to apply to the mesh. If null, any SplatEdit\n // children in the scene graph will be added automatically. (default: null)\n edits: SplatEdit[] | null = null;\n editable: boolean;\n raycastable: boolean;\n minRaycastOpacity: number;\n raycastIndices?: { numSplats: number; indices: Uint32Array };\n // Compiled SplatEdits for applying SDF edits to splat RGBA + centers\n rgbaDisplaceEdits: SplatEdits | null = null;\n // Optional RgbaArray to overwrite splat RGBA values with custom values.\n // Useful for \"baking\" RGB and opacity edits into the SplatMesh. (default: null)\n splatRgba: RgbaArray | null = null;\n\n // Maximum Spherical Harmonics level to use. Call updateGenerator()\n // after changing. (default: 3)\n maxSh = 3;\n\n enableLod?: boolean;\n lodScale: number;\n behindFoveate?: number;\n coneFov0?: number;\n coneFov?: number;\n coneFoveate?: number;\n\n showLodPage?: number;\n showLodPageDyno = new DynoInt({ value: 0 });\n\n constructor(options: SplatMeshOptions = {}) {\n super({\n update: (context) => this.update(context),\n });\n\n if (options.splats) {\n this.splats = options.splats;\n this.numSplats = options.splats.getNumSplats();\n } else if (options.paged) {\n if (options.extSplats) {\n console.warn(\n \"To set extSplats with the paged option, set SparkRenderer.pagedExtSplats\",\n );\n }\n const rootUrl = options.url ?? \"\";\n if (options.paged === true) {\n this.paged = new PagedSplats({ rootUrl });\n } else if (options.paged instanceof PagedSplats) {\n this.paged = options.paged;\n } else if (options.paged instanceof SplatPager) {\n this.paged = new PagedSplats({ rootUrl, pager: options.paged });\n } else {\n throw new Error(\"Invalid paged option\");\n }\n this.splats = this.paged;\n } else if (options.extSplats) {\n this.extSplats =\n options.extSplats instanceof ExtSplats\n ? options.extSplats\n : new ExtSplats();\n options.extSplats = this.extSplats;\n this.numSplats = this.extSplats.numSplats;\n this.splats = this.extSplats;\n } else if (options.packedSplats) {\n this.packedSplats = options.packedSplats;\n this.packedSplats.splatEncoding = options.splatEncoding ?? {\n ...DEFAULT_SPLAT_ENCODING,\n };\n this.splats = this.packedSplats;\n } else {\n this.packedSplats = new PackedSplats();\n }\n\n this.editable = options.editable ?? true;\n this.raycastable = options.raycastable ?? true;\n this.minRaycastOpacity = options.minRaycastOpacity ?? 0.2;\n this.onFrame = options.onFrame;\n\n this.context = {\n transform: new SplatTransformer(),\n viewToWorld: new SplatTransformer(),\n worldToView: new SplatTransformer(),\n viewToObject: new SplatTransformer(),\n covTransform: new CovSplatTransformer(),\n covViewToWorld: new CovSplatTransformer(),\n covWorldToView: new CovSplatTransformer(),\n covViewToObject: new CovSplatTransformer(),\n recolor: new DynoVec4({\n value: new THREE.Vector4().setScalar(Number.NEGATIVE_INFINITY),\n }),\n time: new DynoFloat({ value: 0 }),\n deltaTime: new DynoFloat({ value: 0 }),\n numSplats: new DynoInt({ value: 0 }),\n splats: new EmptySplatSource(),\n enableLod: new DynoBool({ value: false }),\n lodIndices: new DynoUsampler2D({\n value: emptyLodIndices,\n key: \"lodIndices\",\n }),\n };\n\n this.covSplats = options.covSplats ?? false;\n if (this.covSplats && !this.extSplats) {\n throw new Error(\"CovSplats requires ExtSplats\");\n }\n\n this.objectModifiers = options.objectModifier\n ? [options.objectModifier]\n : undefined;\n this.worldModifiers = options.worldModifier\n ? [options.worldModifier]\n : undefined;\n\n if (options.objectModifiers) {\n this.objectModifiers = options.objectModifiers;\n }\n if (options.worldModifiers) {\n this.worldModifiers = options.worldModifiers;\n }\n\n this.enableLod = options.enableLod;\n this.lodScale = options.lodScale ?? 1.0;\n this.behindFoveate = options.behindFoveate;\n this.coneFov0 = options.coneFov0;\n this.coneFov = options.coneFov;\n this.coneFoveate = options.coneFoveate;\n\n this.updateGenerator();\n\n if (\n options.url ||\n options.fileBytes ||\n options.stream ||\n options.constructSplats ||\n (options.packedSplats && !options.packedSplats.isInitialized) ||\n (this.extSplats && !this.extSplats.isInitialized)\n ) {\n // We need to initialize asynchronously given the options\n this.initialized = this.asyncInitialize(options).then(async () => {\n this.updateGenerator();\n\n this.isInitialized = true;\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n if (maybePromise instanceof Promise) {\n await maybePromise;\n }\n }\n return this;\n });\n } else {\n this.isInitialized = true;\n this.initialized = Promise.resolve(this);\n if (options.onLoad) {\n const maybePromise = options.onLoad(this);\n // If onLoad returns a promise, wait for it to complete\n if (maybePromise instanceof Promise) {\n this.initialized = maybePromise.then(() => this);\n }\n }\n }\n\n // this.add(createRendererDetectionMesh());\n }\n\n async asyncInitialize(options: SplatMeshOptions) {\n const {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n } = options;\n if (this.packedSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const packedSplatsOptions = {\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct: constructSplats,\n onProgress,\n splatEncoding,\n lod,\n nonLod,\n lodAbove,\n };\n this.packedSplats.reinitialize(packedSplatsOptions);\n }\n await this.packedSplats.initialized;\n this.splats = this.packedSplats;\n } else if (this.extSplats) {\n if (url || fileBytes || stream || constructSplats) {\n const construct = constructSplats as\n | ((splats: ExtSplats) => Promise)\n | undefined;\n this.extSplats.reinitialize({\n url,\n fileBytes,\n fileType,\n fileName,\n stream,\n streamLength,\n maxSplats,\n construct,\n onProgress,\n lod,\n nonLod,\n lodAbove,\n });\n await this.extSplats.initialized;\n this.splats = this.extSplats;\n }\n }\n\n if (this.splats) {\n this.numSplats = this.splats.getNumSplats();\n this.updateGenerator();\n }\n }\n\n static dynoTime = new DynoFloat({ value: 0 });\n\n // Creates a new Gsplat with the provided parameters (all values in \"float\" space,\n // i.e. 0-1 for opacity and color) and adds it to the end of the packedSplats,\n // increasing numSplats by 1. If necessary, reallocates the buffer with an exponential\n // doubling strategy to fit the new data, so it's fairly efficient to just\n // pushSplat(...) each Gsplat you want to create in a loop.\n pushSplat(\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) {\n if (this.packedSplats) {\n this.packedSplats.pushSplat(center, scales, quaternion, opacity, color);\n } else if (this.extSplats) {\n this.extSplats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n\n // This method iterates over all Gsplats in this instance's packedSplats,\n // invoking the provided callback with index: number in 0..=(this.numSplats-1) and\n // center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion,\n // opacity: number (0..1), and color: THREE.Color (rgb values in 0..1).\n // Note that the objects passed in as center etc. are the same for every callback\n // invocation: these objects are reused for efficiency. Changing these values has\n // no effect as they are decoded/unpacked copies of the underlying data. To update\n // the packedSplats, call .packedSplats.setSplat(index, center, scales,\n // quaternion, opacity, color).\n forEachSplat(\n callback: (\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => void,\n ) {\n this.splats?.forEachSplat(callback);\n }\n\n // Call this when you are finished with the SplatMesh and want to free\n // any buffers it holds (via packedSplats).\n dispose() {\n if (\n this.splats &&\n this.splats !== this.packedSplats &&\n this.splats !== this.extSplats\n ) {\n this.splats.dispose();\n this.splats = undefined;\n }\n if (this.packedSplats) {\n this.packedSplats.dispose();\n this.packedSplats = undefined;\n }\n if (this.extSplats) {\n this.extSplats.dispose();\n this.extSplats = undefined;\n }\n }\n\n // Returns axis-aligned bounding box of the SplatMesh. If centers_only is true,\n // only the centers of the splats are used to compute the bounding box.\n // IMPORTANT: This should only be called after the SplatMesh is initialized.\n getBoundingBox(centers_only = true) {\n if (!this.initialized) {\n throw new Error(\n \"Cannot get bounding box before SplatMesh is initialized\",\n );\n }\n const minVec = new THREE.Vector3(\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n );\n const maxVec = new THREE.Vector3(\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n );\n const corners = new THREE.Vector3();\n const signs = [-1, 1];\n\n function callback(\n _index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n _opacity: number,\n _color: THREE.Color,\n ) {\n if (centers_only) {\n minVec.min(center);\n maxVec.max(center);\n } else {\n // Get the 8 corners of the AABB in local space\n for (const x of signs) {\n for (const y of signs) {\n for (const z of signs) {\n corners.set(x * scales.x, y * scales.y, z * scales.z);\n // Transform corner by rotation and position\n corners.applyQuaternion(quaternion);\n corners.add(center);\n minVec.min(corners);\n maxVec.max(corners);\n }\n }\n }\n }\n }\n\n this.splats?.forEachSplat(callback);\n const box = new THREE.Box3(minVec, maxVec);\n return box;\n }\n\n set objectModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.objectModifiers = [modifier];\n } else {\n this.objectModifiers = undefined;\n }\n }\n\n set worldModifier(modifier: GsplatModifier | undefined) {\n if (modifier) {\n this.worldModifiers = [modifier];\n } else {\n this.worldModifiers = undefined;\n }\n }\n\n private constructGenerator(context: SplatMeshContext) {\n if (this.covSplats) {\n return this.constructCovGenerator(context);\n }\n\n const { transform, viewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.setMaxSh(this.maxSh);\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: viewToObject.translate,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n gsplat = this.skinning.modify(gsplat);\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // Transform from object to world-space\n gsplat = transform.applyGsplat(gsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitGsplat(gsplat).outputs.rgba);\n gsplat = combineGsplat({ gsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n gsplat = this.rgbaDisplaceEdits.modify(gsplat);\n }\n\n if (this.worldModifiers) {\n // Inject world-space Gsplat modifier dyno\n for (const modifier of this.worldModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { gsplat };\n },\n );\n this.generator = generator;\n this.covGenerator = undefined;\n }\n\n constructCovGenerator(context: SplatMeshContext) {\n // console.log(\"CovSplatMesh.constructCovGenerator\");\n const { covTransform, covViewToObject, recolor } = context;\n const generator = dynoBlock(\n { index: \"int\" },\n { covsplat: CovSplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n\n index = maybeLookupIndex(\n context.lodIndices,\n index,\n context.numSplats,\n context.enableLod,\n this.showLodPageDyno,\n );\n\n // Read a Gsplat from the SplatSource\n context.splats.prepareFetchSplat();\n let gsplat = context.splats.fetchSplat({\n index,\n viewOrigin: covViewToObject.offset,\n });\n\n if (this.splatRgba) {\n // Overwrite RGBA with baked RGBA values\n gsplat = maybeInjectSplatRgba(\n gsplat,\n this.splatRgba.dyno,\n index,\n context.enableLod,\n );\n }\n\n if (this.objectModifiers) {\n // Inject object-space Gsplat modifier dyno\n for (const modifier of this.objectModifiers) {\n gsplat = modifier.apply({ gsplat }).gsplat;\n }\n }\n\n let covsplat = gsplatToCovSplat(gsplat);\n\n if (this.skinning) {\n // Transform according to bones + skinning weights\n covsplat = this.skinning.modifyCov(covsplat);\n }\n\n if (this.covObjectModifiers) {\n // Inject object-space CovSplat modifier dyno\n for (const modifier of this.covObjectModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // Transform from object to world-space\n covsplat = covTransform.applyCovSplat(covsplat);\n\n // Apply any global recoloring and opacity\n const recolorRgba = mul(recolor, splitCovSplat(covsplat).outputs.rgba);\n covsplat = combineCovSplat({ covsplat, rgba: recolorRgba });\n\n if (this.rgbaDisplaceEdits) {\n // Apply RGBA edit layer SDFs\n covsplat = this.rgbaDisplaceEdits.modifyCov(covsplat);\n }\n\n if (this.covWorldModifiers) {\n // Inject world-space CovSplat modifier dyno\n for (const modifier of this.covWorldModifiers) {\n covsplat = modifier.apply({ covsplat }).covsplat;\n }\n }\n\n // We're done! Output resulting Gsplat\n return { covsplat };\n },\n );\n this.generator = undefined;\n this.covGenerator = generator;\n }\n\n // Call this whenever something changes in the Gsplat processing pipeline,\n // for example changing maxSh or updating objectModifier or worldModifier.\n // Compiled generators are cached for efficiency and re-use when the same\n // pipeline structure emerges after successive changes.\n updateGenerator() {\n this.generatorDirty = true;\n }\n\n // This is called automatically by SparkRenderer and you should not have to\n // call it. It updates parameters for the generated pipeline and calls\n // updateGenerator() if the pipeline needs to change.\n update({\n renderer,\n time,\n deltaTime,\n viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices,\n }: FrameUpdateContext) {\n this.context.time.value = time;\n this.context.deltaTime.value = deltaTime;\n SplatMesh.dynoTime.value = time;\n this.showLodPageDyno.value = this.showLodPage ?? -1;\n\n const splats = this.splats ?? this.packedSplats ?? this.extSplats;\n if (splats) {\n this.context.splats = splats;\n }\n this.numSplats = this.context.splats.getNumSplats();\n\n let updated = false;\n\n const lodSplats = this.packedSplats?.lodSplats ?? this.extSplats?.lodSplats;\n this.context.enableLod.value = lodSplats != null && lodIndices != null;\n if (this.enableLod === false) {\n this.context.enableLod.value = false;\n }\n this.context.lodIndices.value = lodIndices?.texture ?? emptyLodIndices;\n\n if (this.context.enableLod.value && lodSplats) {\n this.context.splats = lodSplats;\n this.numSplats = lodIndices?.numSplats ?? 0;\n }\n\n this.context.numSplats.value = this.numSplats;\n\n if (this.context.splats !== this.lastSplats) {\n this.lastSplats = this.context.splats;\n this.generatorDirty = true;\n }\n\n if (!this.covSplats) {\n if (this.context.transform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.viewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.worldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const objectToWorld = new THREE.Matrix4().compose(\n this.context.transform.translate.value,\n this.context.transform.rotate.value,\n new THREE.Vector3().setScalar(this.context.transform.scale.value),\n );\n const worldToObject = objectToWorld.invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.viewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n } else {\n if (this.context.covTransform.update(this)) {\n updated = true;\n }\n\n if (\n this.context.covViewToWorld.updateFromMatrix(viewToWorld) &&\n this.enableViewToWorld\n ) {\n updated = true;\n }\n const worldToView = viewToWorld.clone().invert();\n if (\n this.context.covWorldToView.updateFromMatrix(worldToView) &&\n this.enableWorldToView\n ) {\n updated = true;\n }\n\n const worldToObject = this.matrixWorld.clone().invert();\n const viewToObjectMatrix = worldToObject.multiply(viewToWorld);\n if (\n this.context.covViewToObject.updateFromMatrix(viewToObjectMatrix) &&\n (this.enableViewToObject || this.context.splats.hasRgbDir())\n ) {\n // Only trigger update if we have view-dependent spherical harmonics\n updated = true;\n }\n }\n\n const newRecolor = new THREE.Vector4(\n this.recolor.r,\n this.recolor.g,\n this.recolor.b,\n this.opacity,\n );\n if (!newRecolor.equals(this.context.recolor.value)) {\n this.context.recolor.value.copy(newRecolor);\n updated = true;\n }\n\n const edits = this.editable ? (this.edits ?? []).concat(globalEdits) : [];\n if (this.editable && !this.edits) {\n // If we haven't set any explicit edits, add any child SplatEdits\n this.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n edits.push(node);\n }\n });\n }\n\n edits.sort((a, b) => a.ordering - b.ordering);\n const editsSdfs = edits.map((edit) => {\n if (edit.sdfs != null) {\n return { edit, sdfs: edit.sdfs };\n }\n const sdfs: SplatEditSdf[] = [];\n edit.traverseVisible((node) => {\n if (node instanceof SplatEditSdf) {\n sdfs.push(node);\n }\n });\n return { edit, sdfs };\n });\n\n if (editsSdfs.length > 0 && !this.rgbaDisplaceEdits) {\n const edits = editsSdfs.length;\n const sdfs = editsSdfs.reduce(\n (total, edit) => total + edit.sdfs.length,\n 0,\n );\n this.rgbaDisplaceEdits = new SplatEdits({\n maxEdits: edits,\n maxSdfs: sdfs,\n });\n this.generatorDirty = true;\n }\n if (this.rgbaDisplaceEdits) {\n const editResult = this.rgbaDisplaceEdits.update(editsSdfs);\n updated ||= editResult.updated;\n if (editResult.dynoUpdated) {\n this.generatorDirty = true;\n }\n }\n\n if (this.generatorDirty) {\n this.constructGenerator(this.context);\n this.generatorDirty = false;\n updated = true;\n }\n\n if (updated) {\n this.updateVersion();\n }\n\n this.onFrame?.({ mesh: this, time, deltaTime });\n }\n\n // This method conforms to the standard THREE.Raycaster API, performing object-ray\n // intersections using this method to populate the provided intersects[] array\n // with each intersection point.\n raycast(\n raycaster: THREE.Raycaster,\n intersects: {\n distance: number;\n point: THREE.Vector3;\n object: THREE.Object3D;\n }[],\n ) {\n if (\n !wasm.isInitialized() ||\n !this.raycastable ||\n (!this.packedSplats && !this.extSplats && !this.paged)\n ) {\n return;\n }\n const paged = this.paged != null;\n const ext = paged\n ? (this.paged?.pager?.extSplats ?? false)\n : this.extSplats != null;\n\n const { near, far, ray } = raycaster;\n const worldToMesh = this.matrixWorld.clone().invert();\n const worldToMeshRot = new THREE.Matrix3().setFromMatrix4(worldToMesh);\n const origin = ray.origin.clone().applyMatrix4(worldToMesh);\n const direction = ray.direction.clone().applyMatrix3(worldToMeshRot);\n\n const buffer = get_raycast_buffer();\n const bufferSize = buffer.length / 4;\n let intersections = 0;\n\n const numSplats =\n this.raycastIndices?.numSplats ??\n (paged ? this.paged?.numSplats : this.context.numSplats.value) ??\n 0;\n const indices =\n this.raycastIndices?.indices ??\n (paged\n ? (this.paged?.dynoIndices.value.image.data as Uint32Array)\n : this.context.enableLod.value\n ? (this.context.lodIndices.value.image.data as Uint32Array)\n : null) ??\n null;\n\n if (!ext) {\n const packed = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.packedSplats?.lodSplats?.packedArray\n : this.packedSplats?.packedArray;\n if (!packed) {\n return;\n }\n const splatEncoding = paged\n ? this.paged?.splatEncoding\n : this.packedSplats?.splatEncoding;\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(packed.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = packed[index4];\n buffer[i4 + 1] = packed[index4 + 1];\n buffer[i4 + 2] = packed[index4 + 2];\n buffer[i4 + 3] = packed[index4 + 3];\n }\n }\n\n const newIntersections = raycast_packed_buffer(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n splatEncoding?.lnScaleMin ?? LN_SCALE_MIN,\n splatEncoding?.lnScaleMax ?? LN_SCALE_MAX,\n splatEncoding?.lodOpacity ?? false,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n } else {\n const buffer2 = get_raycast_buffer2();\n const ext1 = paged\n ? (this.paged?.pager?.packedTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[0]\n : this.extSplats?.extArrays[0];\n const ext2 = paged\n ? (this.paged?.pager?.extTexture.value.image.data as Uint32Array)\n : indices\n ? this.extSplats?.lodSplats?.extArrays[1]\n : this.extSplats?.extArrays[1];\n if (!ext1 || !ext2) {\n return;\n }\n for (let base = 0; base < numSplats; base += bufferSize) {\n const count = Math.min(bufferSize, numSplats - base);\n if (!indices) {\n buffer.set(ext1.subarray(base * 4, (base + count) * 4));\n buffer2.set(ext2.subarray(base * 4, (base + count) * 4));\n } else {\n for (let i = 0; i < count; ++i) {\n const index = indices[base + i];\n const i4 = i * 4;\n const index4 = index * 4;\n buffer[i4] = ext1[index4];\n buffer[i4 + 1] = ext1[index4 + 1];\n buffer[i4 + 2] = ext1[index4 + 2];\n buffer[i4 + 3] = ext1[index4 + 3];\n buffer2[i4] = ext2[index4];\n buffer2[i4 + 1] = ext2[index4 + 1];\n buffer2[i4 + 2] = ext2[index4 + 2];\n buffer2[i4 + 3] = ext2[index4 + 3];\n }\n }\n\n const newIntersections = raycast_ext_buffers(\n origin.x,\n origin.y,\n origin.z,\n direction.x,\n direction.y,\n direction.z,\n this.minRaycastOpacity,\n near,\n far,\n count,\n );\n intersections = this.appendRaycastBuffer(\n intersections,\n newIntersections,\n );\n }\n }\n\n for (const distance of SplatMesh.raycastBuffer.subarray(0, intersections)) {\n const point = ray.direction\n .clone()\n .multiplyScalar(distance)\n .add(ray.origin);\n intersects.push({\n distance,\n point,\n object: this,\n });\n }\n }\n\n static raycastBuffer = new Float32Array(1024);\n\n private appendRaycastBuffer(count: number, additional: Float32Array) {\n const total = count + additional.length;\n let capacity = SplatMesh.raycastBuffer.length;\n\n if (total > capacity) {\n while (capacity < total) {\n capacity *= 2;\n }\n const newBuffer = new Float32Array(capacity);\n newBuffer.set(SplatMesh.raycastBuffer.subarray(0, count));\n SplatMesh.raycastBuffer = newBuffer;\n }\n\n SplatMesh.raycastBuffer.set(additional, count);\n return count + additional.length;\n }\n\n async createLodSplats({\n rgbaArray,\n quality,\n }: { rgbaArray?: RgbaArray; quality?: boolean } = {}) {\n if (this.packedSplats) {\n await this.packedSplats.createLodSplats({ quality, rgbaArray });\n } else if (this.extSplats) {\n await this.extSplats.createLodSplats({ quality, rgbaArray });\n }\n }\n}\n\nexport function maybeLookupIndex(\n lodIndices: DynoUsampler2D<\"lodIndices\", THREE.DataTexture>,\n index: DynoVal<\"int\">,\n numSplats: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n showLodPage: DynoVal<\"int\">,\n) {\n return dyno({\n inTypes: {\n lodIndices: \"usampler2D\",\n index: \"int\",\n numSplats: \"int\",\n enableLod: \"bool\",\n showLodPage: \"int\",\n },\n outTypes: {\n index: \"int\",\n },\n inputs: {\n lodIndices,\n index,\n numSplats,\n enableLod,\n showLodPage,\n },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n int index = ${inputs.index};\n if (${inputs.showLodPage} < 0) {\n if (index >= ${inputs.numSplats}) {\n return;\n }\n if (${inputs.enableLod}) {\n ivec2 lodIndexCoord = ivec2((index >> 2) & 4095, index >> 14);\n uint splatIndex = texelFetch(${inputs.lodIndices}, lodIndexCoord, 0)[index & 3];\n ${outputs.index} = int(splatIndex);\n } else {\n ${outputs.index} = index;\n }\n } else {\n int start = ${inputs.showLodPage} << 16;\n if (index >= 65536) {\n return;\n }\n ${outputs.index} = start + index;\n }\n `),\n }).outputs.index;\n}\n\nexport function maybeInjectSplatRgba(\n gsplat: DynoVal,\n rgba: DynoVal,\n index: DynoVal<\"int\">,\n enableLod: DynoVal<\"bool\">,\n): DynoVal {\n return dyno({\n inTypes: {\n gsplat: Gsplat,\n rgba: TRgbaArray,\n index: \"int\",\n enableLod: \"bool\",\n },\n outTypes: { gsplat: Gsplat },\n inputs: { gsplat, rgba, index, enableLod },\n statements: ({ inputs, outputs }) =>\n unindentLines(`\n ${outputs.gsplat} = ${inputs.gsplat};\n if (!${inputs.enableLod} && (${inputs.index} >= 0) && (${inputs.index} < ${inputs.rgba}.count)) {\n ${outputs.gsplat}.rgba = texelFetch(${inputs.rgba}.texture, splatTexCoord(${inputs.index}), 0);\n }\n `),\n }).outputs.gsplat;\n}\n\nexport const emptyLodIndices = (() => {\n const texture = new THREE.DataTexture(\n new Uint32Array(16384),\n 4096,\n 1,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n})();\n","import * as THREE from \"three\";\nimport { FullScreenQuad } from \"three/addons/postprocessing/Pass.js\";\nimport { Readback } from \"./Readback\";\nimport { SplatEdit } from \"./SplatEdit\";\nimport {\n type CovSplatGenerator,\n type GsplatGenerator,\n SplatGenerator,\n} from \"./SplatGenerator\";\nimport { SplatMesh } from \"./SplatMesh\";\nimport {\n LN_SCALE_MAX,\n LN_SCALE_MIN,\n SPLAT_TEX_HEIGHT,\n SPLAT_TEX_WIDTH,\n} from \"./defines\";\nimport {\n type CovSplat,\n Dyno,\n DynoBool,\n DynoProgram,\n DynoProgramTemplate,\n DynoUsampler2DArray,\n type DynoVal,\n DynoVec3,\n combineCovSplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n gsplatToCovSplat,\n mul,\n outputCovSplat,\n outputCovSplatDepth,\n outputExtCovSplat,\n outputExtendedSplat,\n outputPackedSplat,\n outputSplatDepth,\n splitCovSplat,\n splitGsplat,\n sub,\n unindentLines,\n} from \"./dyno\";\nimport { getShaders } from \"./shaders\";\nimport { getTextureSize, threeMrtArray } from \"./utils\";\n\n// A GeneratorMapping describes a Gsplat range that was generated, including\n// which generator and its version number.\nexport type GeneratorMapping = {\n node: SplatGenerator;\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n version: number;\n mappingVersion?: number;\n base: number;\n count: number;\n};\n\nexport class SplatAccumulator {\n time = 0;\n deltaTime = 0;\n viewToWorld = new THREE.Matrix4();\n viewOrigin = new THREE.Vector3();\n viewDirection = new THREE.Vector3();\n static viewCenterUniform = new DynoVec3({ value: new THREE.Vector3() });\n static viewDirUniform = new DynoVec3({ value: new THREE.Vector3() });\n static sortRadialUniform = new DynoBool({ value: true });\n maxSplats = 0;\n numSplats = 0;\n target: THREE.WebGLArrayRenderTarget | null = null;\n mapping: GeneratorMapping[] = [];\n version = -1;\n mappingVersion = -1;\n extSplats: boolean;\n covSplats: boolean;\n readback: Readback | null = null;\n readbackSplats: DynoUsampler2DArray<\"extSplats\", THREE.DataArrayTexture>[] =\n [];\n\n constructor({\n extSplats,\n covSplats,\n }: { extSplats?: boolean; covSplats?: boolean } = {}) {\n if (!threeMrtArray) {\n throw new Error(\"Spark requires THREE.js r179 or above\");\n }\n this.extSplats = extSplats ?? true;\n this.covSplats = covSplats ?? false;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = null;\n }\n }\n\n // Returns a THREE.DataArrayTexture representing the NewSplatAccumulator\n // content as 2 x Uint32x4 data array textures (2048 x 2048 x 2048 in size)\n getTextures(): THREE.DataArrayTexture[] {\n if (this.target) {\n return this.target.textures;\n }\n return SplatAccumulator.emptyTextures;\n }\n\n static emptyTexture = (() => {\n const { width, height, depth, maxSplats } = getTextureSize(1);\n const emptyArray = new Uint32Array(maxSplats * 4);\n const texture = new THREE.DataArrayTexture(\n emptyArray,\n width,\n height,\n depth,\n );\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n static emptyTextures = (() => {\n return [SplatAccumulator.emptyTexture, SplatAccumulator.emptyTexture];\n })();\n\n // Given an array of splatCounts (.numSplats for each\n // SplatGenerator/SplatMesh in the scene), compute a\n // \"mapping layout\" in the composite array of generated outputs.\n generateMapping(splatCounts: number[]): {\n maxSplats: number;\n mapping: { base: number; count: number }[];\n } {\n let maxSplats = 0;\n const mapping = splatCounts.map((numSplats) => {\n const base = maxSplats;\n // Generation happens in horizontal row chunks, so round up to full width\n const rounded = Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n maxSplats += rounded;\n return { base, count: numSplats };\n });\n return { maxSplats, mapping };\n }\n\n // Ensures our NewSplatAccumulator.target render target has enough space\n // to generate maxSplats total Gsplats, and reallocate if not large enough.\n ensureGenerate({ maxSplats }: { maxSplats: number }) {\n if (this.target && (maxSplats ?? 1) <= this.maxSplats) {\n return false;\n }\n this.dispose();\n\n // The packed Gsplats are stored in a 2D array texture of max size\n // 2048 x 2048 x 2048, one RGBA32UI pixel = 4 uint32 = one Gsplat\n const textureSize = getTextureSize(maxSplats ?? 1);\n const { width, height, depth } = textureSize;\n this.maxSplats = textureSize.maxSplats;\n this.target = new THREE.WebGLArrayRenderTarget(width, height, depth, {\n depthBuffer: false,\n stencilBuffer: false,\n generateMipmaps: false,\n magFilter: THREE.NearestFilter,\n minFilter: THREE.NearestFilter,\n format: THREE.RGBAIntegerFormat,\n type: THREE.UnsignedIntType,\n });\n this.target.scissorTest = true;\n\n if (this.extSplats) {\n const target2 = this.target.texture.clone();\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target2, target3];\n } else {\n const target3 = this.target.texture.clone();\n target3.format = THREE.RGBAFormat;\n target3.type = THREE.UnsignedByteType;\n target3.internalFormat = \"RGBA8\";\n this.target.textures = [this.target.texture, target3];\n }\n\n return true;\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n activeCubeFace: renderer.getActiveCubeFace(),\n activeMipmapLevel: renderer.getActiveMipmapLevel(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n activeCubeFace: number;\n activeMipmapLevel: number;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(\n state.target,\n state.activeCubeFace,\n state.activeMipmapLevel,\n );\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n // Get a program and THREE.RawShaderMaterial for a given GsplatGenerator,\n // generating it if necessary and caching the result.\n prepareProgramMaterial(\n generator?: GsplatGenerator,\n covGenerator?: CovSplatGenerator,\n ) {\n const theGenerator = generator ?? covGenerator;\n if (!theGenerator) {\n throw new Error(\"Either generator or covGenerator must be provided\");\n }\n\n let program = SplatAccumulator.generatorProgram.get(theGenerator);\n if (!program) {\n const graph = dynoBlock(\n { index: \"int\" },\n {},\n ({ index }, _outputs, { roots }) => {\n if (generator) {\n generator.inputs.index = index;\n }\n if (covGenerator) {\n covGenerator.inputs.index = index;\n }\n\n if (this.extSplats) {\n if (!this.covSplats) {\n if (generator) {\n const output = outputExtendedSplat(generator.outputs.gsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n if (covGenerator) {\n const output = outputExtCovSplat(covGenerator.outputs.covsplat);\n roots.push(output);\n } else if (generator) {\n const covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n const output = outputExtCovSplat(covsplat);\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n }\n } else {\n if (!this.covSplats) {\n if (generator) {\n const centerSubView = sub(\n splitGsplat(generator.outputs.gsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n // Use expanded LoD opacity encoding\n const halfAlpha = mul(\n splitGsplat(generator.outputs.gsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n const gsplat = combineGsplat({\n gsplat: generator.outputs.gsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputPackedSplat(\n gsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n } else {\n let covsplat: DynoVal;\n if (covGenerator) {\n covsplat = covGenerator.outputs.covsplat;\n } else if (generator) {\n covsplat = gsplatToCovSplat(generator.outputs.gsplat);\n } else {\n throw new Error(\"Generator must be provided\");\n }\n const centerSubView = sub(\n splitCovSplat(covsplat).outputs.center,\n SplatAccumulator.viewCenterUniform,\n );\n const halfAlpha = mul(\n splitCovSplat(covsplat).outputs.opacity,\n dynoConst(\"float\", 0.5),\n );\n covsplat = combineCovSplat({\n covsplat,\n center: centerSubView,\n opacity: halfAlpha,\n });\n const output = outputCovSplat(\n covsplat,\n dynoConst(\"vec4\", [0, 1, LN_SCALE_MIN, LN_SCALE_MAX]),\n );\n roots.push(output);\n }\n if (!generator) {\n throw new Error(\"Generator must be provided\");\n }\n }\n if (generator) {\n const outputDepth = outputSplatDepth(\n generator.outputs.gsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n if (covGenerator) {\n const outputDepth = outputCovSplatDepth(\n covGenerator.outputs.covsplat,\n SplatAccumulator.viewCenterUniform,\n SplatAccumulator.viewDirUniform,\n SplatAccumulator.sortRadialUniform,\n );\n roots.push(outputDepth);\n }\n return undefined;\n },\n );\n program = new DynoProgram({\n graph,\n inputs: { index: \"_index\" },\n outputs: {},\n template: this.extSplats\n ? SplatAccumulator.programExtTemplate\n : SplatAccumulator.programTemplate,\n // consoleLog: true,\n });\n\n SplatAccumulator.generatorProgram.set(theGenerator, program);\n }\n Object.assign(program.uniforms, {\n targetLayer: { value: 0 },\n targetBase: { value: 0 },\n targetCount: { value: 0 },\n });\n\n const material = program.prepareMaterial();\n SplatAccumulator.fullScreenQuad.material = material;\n return { program, material };\n }\n\n static programExtTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4x2Vec4Template,\n );\n static programTemplate = new DynoProgramTemplate(\n getShaders().computeUvec4Vec4Template,\n );\n static generatorProgram = new WeakMap<\n GsplatGenerator | CovSplatGenerator,\n DynoProgram\n >();\n static fullScreenQuad = new FullScreenQuad(\n new THREE.RawShaderMaterial({ visible: false }),\n );\n\n generate({\n generator,\n covGenerator,\n base,\n count,\n renderer,\n }: {\n generator?: GsplatGenerator;\n covGenerator?: CovSplatGenerator;\n base: number;\n count: number;\n renderer: THREE.WebGLRenderer;\n }) {\n if (!this.target) {\n throw new Error(\"Target must be initialized with ensureGenerate\");\n }\n if (base + count > this.maxSplats) {\n throw new Error(\"Base + count exceeds maxSplats\");\n }\n\n const { program, material } = this.prepareProgramMaterial(\n generator,\n covGenerator,\n );\n program.update();\n\n const renderState = this.saveRenderState(renderer);\n\n // Generate the Gsplats in \"layer\" chunks, in horizontal row ranges,\n // that cover the total count of Gsplats.\n const nextBase =\n Math.ceil((base + count) / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n material.uniforms.targetBase.value = base;\n material.uniforms.targetCount.value = count;\n\n // Keep generating layers until we've reached the next generation's base\n while (base < nextBase) {\n const layer = Math.floor(base / layerSize);\n material.uniforms.targetLayer.value = layer;\n\n const layerBase = layer * layerSize;\n const layerYStart = Math.floor((base - layerBase) / SPLAT_TEX_WIDTH);\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((nextBase - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Render the desired portion of the layer\n this.target.scissor.set(\n 0,\n layerYStart,\n SPLAT_TEX_WIDTH,\n layerYEnd - layerYStart,\n );\n renderer.setRenderTarget(this.target, layer);\n renderer.xr.enabled = false;\n renderer.autoClear = false;\n SplatAccumulator.fullScreenQuad.render(renderer);\n\n base += SPLAT_TEX_WIDTH * (layerYEnd - layerYStart);\n }\n\n this.resetRenderState(renderer, renderState);\n return { nextBase };\n }\n\n prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial,\n renderSize,\n previous,\n lodInstances,\n }: {\n renderer: THREE.WebGLRenderer;\n scene: THREE.Scene;\n time: number;\n camera: THREE.Camera;\n sortRadial: boolean;\n renderSize: THREE.Vector2;\n previous: SplatAccumulator;\n lodInstances?: Map<\n SplatMesh,\n { numSplats: number; texture: THREE.DataTexture }\n >;\n }) {\n this.viewToWorld.copy(camera.matrixWorld);\n camera.getWorldPosition(this.viewOrigin);\n camera.getWorldDirection(this.viewDirection);\n SplatAccumulator.viewCenterUniform.value.copy(this.viewOrigin);\n SplatAccumulator.viewDirUniform.value.copy(this.viewDirection);\n SplatAccumulator.sortRadialUniform.value = sortRadial;\n\n this.time = time;\n this.deltaTime = time - previous.time;\n\n const allGenerators: SplatGenerator[] = [];\n scene.traverse((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n allGenerators.push(node);\n }\n }\n });\n\n const globalEditsSet = new Set();\n scene.traverseVisible((node) => {\n if (node instanceof SplatEdit) {\n let ancestor = node.parent;\n while (ancestor != null && !(ancestor instanceof SplatMesh)) {\n ancestor = ancestor.parent;\n }\n if (ancestor == null) {\n // Not part of a SplatMesh so it's a global edit\n globalEditsSet.add(node);\n }\n }\n });\n const globalEdits = Array.from(globalEditsSet);\n\n for (const object of allGenerators) {\n try {\n object.frameUpdate?.({\n renderer,\n object,\n time: this.time,\n deltaTime: this.deltaTime,\n viewToWorld: this.viewToWorld,\n camera,\n renderSize,\n globalEdits,\n lodIndices:\n lodInstances && object instanceof SplatMesh\n ? lodInstances.get(object)\n : undefined,\n });\n } catch (error) {\n console.error(\"frameUpdate error\", error);\n object.generator = undefined;\n object.covGenerator = undefined;\n object.generatorError = error;\n }\n }\n\n const visibleGenerators: SplatGenerator[] = [];\n scene.traverseVisible((node) => {\n if (node instanceof SplatGenerator) {\n if (!camera.layers || camera.layers.test(node.layers)) {\n visibleGenerators.push(node);\n }\n }\n });\n\n const splatCounts = visibleGenerators.map(\n (generator) => generator.numSplats,\n );\n const { maxSplats, mapping: baseCounts } =\n this.generateMapping(splatCounts);\n\n const previousMappings = previous.mapping.reduce((mappings, mapping) => {\n mappings.set(mapping.node, mapping);\n return mappings;\n }, new Map());\n\n this.mapping = [];\n this.numSplats = 0;\n\n baseCounts.forEach(({ base, count }, index) => {\n const node = visibleGenerators[index];\n const previousNode = previousMappings.get(node);\n if (previousNode && previousNode.count !== node.numSplats) {\n node.updateMappingVersion();\n }\n\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n const { version, mappingVersion } = node;\n this.mapping.push({\n node,\n generator,\n covGenerator,\n version,\n mappingVersion,\n base,\n count,\n });\n this.numSplats = Math.max(this.numSplats, base + count);\n }\n });\n const { splatsUpdated, mappingUpdated } = previous.checkVersions(\n this.mapping,\n );\n this.version = previous.version + (splatsUpdated ? 1 : 0);\n this.mappingVersion = previous.mappingVersion + (mappingUpdated ? 1 : 0);\n\n return {\n sameMapping: !mappingUpdated,\n version: this.version,\n mappingVersion: this.mappingVersion,\n visibleGenerators,\n generate: () => {\n this.ensureGenerate({ maxSplats });\n\n for (const { node, base, count } of this.mapping) {\n const { generator, covGenerator } = node;\n if ((generator || covGenerator) && count > 0) {\n this.generate({ generator, covGenerator, base, count, renderer });\n }\n }\n },\n readback: async () => {\n const textures = this.getTextures();\n if (this.readbackSplats.length === 0) {\n this.readbackSplats = [\n new DynoUsampler2DArray({ value: textures[0], key: \"extSplats\" }),\n new DynoUsampler2DArray({ value: textures[1], key: \"extSplats\" }),\n ];\n }\n this.readbackSplats[0].value = textures[0];\n this.readbackSplats[1].value = textures[1];\n\n if (!this.readback) {\n this.readback = new Readback({ renderer });\n }\n const readback = this.readback;\n const words = this.extSplats ? 8 : 4;\n const array = readback.ensureBuffer(\n this.numSplats * words,\n new Uint32Array(0),\n );\n\n const reader = dynoBlock(\n { index: \"int\" },\n { rgba8: \"vec4\" },\n ({ index }) => {\n const rgba8 = new Dyno({\n inTypes: {\n index: \"int\",\n extSplats1: \"usampler2DArray\",\n extSplats2: \"usampler2DArray\",\n },\n outTypes: { rgba8: \"vec4\" },\n inputs: {\n index,\n extSplats1: this.readbackSplats[0],\n extSplats2: this.readbackSplats[1],\n },\n statements: ({ inputs, outputs }) => {\n if (this.extSplats) {\n return unindentLines(`\n int indexDiv8 = ${inputs.index} >> 3;\n ivec3 coord = splatTexCoord(indexDiv8);\n uvec4 packedData;\n if ((${inputs.index} & 4) == 0) {\n packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n } else {\n packedData = texelFetch(${inputs.extSplats2}, coord, 0);\n }\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n }\n return unindentLines(`\n int indexDiv4 = ${inputs.index} >> 2;\n ivec3 coord = splatTexCoord(indexDiv4);\n uvec4 packedData = texelFetch(${inputs.extSplats1}, coord, 0);\n\n int indexMod4 = ${inputs.index} & 3;\n uint data = (indexMod4 == 0) ? packedData.x\n : (indexMod4 == 1) ? packedData.y\n : (indexMod4 == 2) ? packedData.z\n : packedData.w;\n ${outputs.rgba8} = uintToVec4(data);\n `);\n },\n }).outputs.rgba8;\n return { rgba8 };\n },\n );\n\n return await readback.renderReadback({\n reader,\n count: this.numSplats * words,\n renderer,\n readback: array,\n });\n },\n };\n }\n\n // Check if this accumulator has exactly the same generator mapping as\n // the previous one. If so, we can reuse the Gsplat sort order.\n checkVersions(otherMapping: GeneratorMapping[]) {\n if (this.mapping.length !== otherMapping.length) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const mappingUpdated = this.mapping.some((item, i) => {\n const other = otherMapping[i];\n return (\n item.node !== other.node ||\n item.base !== other.base ||\n item.count !== other.count ||\n item.mappingVersion !== other.mappingVersion\n );\n });\n if (mappingUpdated) {\n return { splatsUpdated: true, mappingUpdated: true };\n }\n const splatsUpdated = this.mapping.some((item, i) => {\n return item.version !== otherMapping[i].version;\n });\n return { splatsUpdated, mappingUpdated };\n }\n}\n","import * as THREE from \"three\";\n\n// SplatGeometry is an internal class used by SparkRenderer to render a collection\n// of Gsplats in a single draw call by extending THREE.InstancedBufferGeometry.\n// Each Gsplat is drawn as two triangles, with the order of the Gsplats determined\n// by a texture lookup via gl_InstanceID.\n\nexport class SplatGeometry extends THREE.InstancedBufferGeometry {\n constructor() {\n super();\n this.setAttribute(\"position\", new THREE.BufferAttribute(QUAD_VERTICES, 3));\n this.setIndex(new THREE.BufferAttribute(QUAD_INDICES, 1));\n }\n}\n\n// Each instance draws to triangles covering a quad over coords (-1,-1,0)..(1,1,0)\nconst QUAD_VERTICES = new Float32Array([\n -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0,\n]);\n\nconst QUAD_INDICES = new Uint16Array([0, 1, 2, 0, 2, 3]);\n","import * as THREE from \"three\";\nimport {\n ExtSplats,\n PackedSplats,\n PagedSplats,\n Readback,\n type SplatGenerator,\n SplatMesh,\n SplatPager,\n} from \".\";\nimport { SplatAccumulator } from \"./SplatAccumulator\";\nimport { SplatGeometry } from \"./SplatGeometry\";\nimport { SplatWorker } from \"./SplatWorker\";\nimport { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from \"./defines\";\nimport { getShaders } from \"./shaders\";\nimport {\n isAndroid,\n isIos,\n isMobile,\n isOculus,\n isVisionPro,\n uploadU32DataTextureRows,\n} from \"./utils\";\n\nexport interface SparkRendererOptions {\n /**\n * Pass in your THREE.WebGLRenderer instance so Spark can perform work\n * outside the usual render loop. Should be created with antialias: false\n * (default setting) as WebGL anti-aliasing doesn't improve Gaussian Splatting\n * rendering and significantly reduces performance.\n */\n renderer: THREE.WebGLRenderer;\n /**\n * Callback function to be called when SparkRenderer needs to re-render,\n * for example when splat sort order or LoD updates complete.\n */\n onDirty?: () => void;\n /**\n * Whether to use premultiplied alpha when accumulating splat RGB\n * @default true\n */\n premultipliedAlpha?: boolean;\n /**\n * Pass in a THREE.Timer to synchronize time-based effects across different\n * systems. Alternatively, you can set the property time directly.\n * (default: new THREE.Timer)\n */\n timer?: THREE.Timer;\n /**\n * Controls whether to check and automatically update Gsplat collection\n * each frame render.\n * @default true\n */\n autoUpdate?: boolean;\n /**\n * Controls whether to update the Gsplats before or after rendering. For WebXR\n * this is set to false in order to complete rendering as soon as possible.\n * @default true (if not WebXR)\n */\n preUpdate?: boolean;\n /**\n * Maximum standard deviations from the center to render Gaussians. Values\n * Math.sqrt(4)..Math.sqrt(9) produce acceptable results and can be tweaked for\n * performance.\n * @default Math.sqrt(8)\n */\n maxStdDev?: number;\n /*\n **\n * Minimum pixel radius for splat rendering.\n * @default 0.0\n */\n minPixelRadius?: number;\n /**\n * Maximum pixel radius for splat rendering.\n * @default 512.0\n */\n maxPixelRadius?: number;\n /**\n * Whether to use extended Gsplat encoding for intermediary accumulator splats.\n * @default false\n */\n accumExtSplats?: boolean;\n /**\n * Whether to use covariance Gsplat encoding for intermediary splats.\n * @default false\n */\n covSplats?: boolean;\n /**\n * Minimum alpha value for splat rendering.\n * @default 0.5 * (1.0 / 255.0)\n */\n minAlpha?: number;\n /**\n * Enable 2D Gaussian splatting rendering ability. When this mode is enabled,\n * any scale x/y/z component that is exactly 0 (minimum quantized value) results\n * in the other two non-0 axis being interpreted as an oriented 2D Gaussian Splat,\n * rather instead of the usual projected 3DGS Z-slice. When reading PLY files,\n * scale values less than e^-30 will be interpreted as 0.\n * @default false\n */\n enable2DGS?: boolean;\n /**\n * Enable alternative ray-splat max response evaluation, used by 3DGUT (unscented transform),\n * 3DGRT, and HTGS.\n * @default false\n */\n // enableRayEval?: boolean;\n /**\n * Scalar value to add to 2D splat covariance diagonal, effectively blurring +\n * enlarging splats. In scenes trained without the Gsplat anti-aliasing tweak\n * this value was typically 0.3, but with anti-aliasing it is 0.0\n * @default 0.0\n */\n preBlurAmount?: number;\n /**\n * Scalar value to add to 2D splat covarianve diagonal, with opacity adjustment\n * to correctly account for \"blurring\" when anti-aliasing. Typically 0.3\n * (equivalent to approx 0.5 pixel radius) in scenes trained with anti-aliasing.\n */\n blurAmount?: number;\n /**\n * Depth-of-field distance to focal plane\n */\n focalDistance?: number;\n /**\n * Full-width angle of aperture opening (in radians), 0.0 to disable\n * @default 0.0\n */\n apertureAngle?: number;\n /**\n * Modulate Gaussian kernel falloff. 0 means \"no falloff, flat shading\",\n * while 1 is the normal Gaussian kernel.\n * @default 1.0\n */\n falloff?: number;\n /**\n * X/Y clipping boundary factor for Gsplat centers against view frustum.\n * 1.0 clips any centers that are exactly out of bounds, while 1.4 clips\n * centers that are 40% beyond the bounds.\n * @default 1.4\n */\n clipXY?: number;\n /**\n * Parameter to adjust projected splat scale calculation to match other renderers,\n * similar to the same parameter in the MKellogg 3DGS renderer. Higher values will\n * tend to sharpen the splats. A value 2.0 can be used to match the behavior of\n * the PlayCanvas renderer.\n * @default 1.0\n */\n focalAdjustment?: number;\n /**\n * Whether to sort splats radially (geometric distance) from the viewpoint (true)\n * or by Z-depth (false). Most scenes are trained with the Z-depth `sort `metric\n * and will render more accurately at certain viewpoints. However, radial sorting\n * is more stable under viewpoint rotations.\n * @default true\n */\n sortRadial?: boolean;\n /**\n * Minimum interval between sort calls in milliseconds.\n * @default 0\n */\n minSortIntervalMs?: number;\n /*\n * Flag to control whether LoD is enabled. @default true\n */\n enableLod?: boolean;\n /**\n * Whether to drive LOD updates (compute lodInstances, update pager, etc.).\n * Set to false to use LOD instances from another renderer without driving updates.\n * Only has effect if enableLod is true.\n * @default true (if enableLod is true)\n */\n enableDriveLod?: boolean;\n /**\n * Whether to enable page fetching for LoD.\n * @default true\n */\n enableLodFetching?: boolean;\n /**\n * Set the target # splats for LoD. If this isn't set then default base LoD splat\n * counts will apply: 500K-750K for WebXR, 1-1.5M for mobile, and 2.5M for desktop.\n * @default 500K-2500K depending on platform\n */\n lodSplatCount?: number;\n /**\n * Scale factor for target # splats for LoD. 2.0 means 2x the base LoD splat count.\n * This is the easiest LoD parameter to adjust and will scale detail appropriately\n * for the platform.\n * @default 1.0\n */\n lodSplatScale?: number;\n /**\n * Determines the minimum screen pixel size of LoD splats. The default 1.0 means\n * the splat LoD tree will pick splats that are no smaller than 1 pixel in size.\n * Setting this to a higher value as high as 5.0 will often be indistinguishable\n * but will avoid wasting rendering capacity on tiny splats.\n * @default 1.0\n */\n lodRenderScale?: number;\n /**\n * Inflate LoD splats to ensure opacity stays <= 1.0, producing a softer appearance.\n * @default false\n */\n lodInflate?: boolean;\n lodTraverseMode?: \"dynamic\" | \"standard\";\n /**\n * Whether to use extended Gsplat encoding for paged splats, useful for eliminating\n * quantization artifacts from splat scenes with large internal position coordinates.\n * @default false\n */\n pagedExtSplats?: boolean;\n /**\n * Allocation size of paged splats. This must be a multiple of the page size (65536).\n * @default 16777216 (256 * 65536) for desktop, 6291456 for iOS, 8,388,608 for other mobile\n */\n maxPagedSplats?: number;\n /**\n * Number of parallel chunk fetchers for LoD. These are run within a shared pool\n * of 4 background WebWorker threads, so setting it above 4 will not have any\n * effect. Setting it 3 leaves one spare worker for other loading/decoding tasks.\n * @default 3\n */\n numLodFetchers?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with no foveation applied (full resolution, foveate=1.0). Set to 0 to disable.\n * @default 90.0\n */\n coneFov0?: number;\n /**\n * Full-width angle in degrees of fixed foveation cone along the view direction\n * with reduced resolution specified by `coneFoveate`. Foveation will be applied\n * smoothly from 1.0 down to `coneFoveate` as you move outward from\n * `coneFov0` to `coneFov`. Set to 0 to disable.\n * @default 120.0\n */\n coneFov?: number;\n /**\n * Foveation scale to apply to LoD splats at the edge of coneFov. Foveation will\n * be applied smoothly from `coneFoveate` down to `behindFoveate` as you move\n * outward from `coneFov` to 180 degrees (behind the viewer).\n * @default 0.4\n */\n coneFoveate?: number;\n /**\n * Foveation scale to apply to LoD splats behind the viewer. Setting this to 0.1\n * for example will result in splats 10x larger than inside the viewing frustum.\n * @default 0.2\n */\n behindFoveate?: number;\n /**\n * How many LoD splats to generate for raycasting\n * @default 10000-25000 iff default canvas target is used\n */\n lodRaycast?: number;\n lodRaycastIntervalMs?: number;\n /**\n * Configures an offline render target for the SparkRenderer (as opposed to\n * rendering to the canvas). This is useful for rendering environment maps,\n * additional viewpoints, or video frame rendering.\n * @default undefined\n */\n target?: {\n /**\n * Width of the render target in pixels.\n */\n width: number;\n /**\n * Height of the render target in pixels.\n */\n height: number;\n /**\n * If you want to be able to render a scene that depends on this target's\n * output (for example, a recursive viewport), set this to true to enable\n * double buffering.\n * @default false\n */\n doubleBuffer?: boolean;\n /**\n * Super-sampling factor for the render target. Values 1-4 are supported.\n * Note that re-sampling back down to .width x .height is done on the CPU\n * with simple averaging only when calling readTarget().\n * @default 1\n */\n superXY?: number;\n } & THREE.RenderTargetOptions;\n /**\n * Extra uniform values to pass to the shader.\n * @default undefined = no extra uniforms\n */\n extraUniforms?: Record;\n /**\n * Replace the default `splatVertex.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatVertex.glsl` shader\n */\n vertexShader?: string;\n /**\n * Replace the default `splatFragment.glsl` splat shader with a custom one.\n * @default undefined = use the default `splatFragment.glsl` shader\n */\n fragmentShader?: string;\n /**\n * Set the splat shader material to be transparent which determines if the\n * splats are rendered during the first opaque THREE.js render pass or the\n * second transparent render pass.\n * @default undefined = true\n */\n transparent?: boolean;\n /**\n * Set the splat shader material to enable depth testing which determines if the\n * splats respect the Z depth buffer and blend with other opaque objects in the scene.\n * @default undefined = true\n */\n depthTest?: boolean;\n /**\n * Set the splat shader material to enable depth writing which determines if the\n * splats write to the Z depth buffer. Note that enabling this may produce\n * undesirable results because most of the Gsplat is transparent.\n * @default undefined = false\n */\n depthWrite?: boolean;\n}\n\nexport class SparkRenderer extends THREE.Mesh {\n readonly renderer: THREE.WebGLRenderer;\n readonly material: THREE.ShaderMaterial;\n readonly uniforms: ReturnType;\n\n autoUpdate: boolean;\n preUpdate: boolean;\n static sparkOverride?: SparkRenderer;\n\n renderSize = new THREE.Vector2();\n maxStdDev: number;\n minPixelRadius: number;\n maxPixelRadius: number;\n accumExtSplats: boolean;\n covSplats: boolean;\n minAlpha: number;\n enable2DGS: boolean;\n // enableRayEval: boolean;\n preBlurAmount: number;\n blurAmount: number;\n focalDistance: number;\n apertureAngle: number;\n falloff: number;\n clipXY: number;\n focalAdjustment: number;\n\n sortRadial: boolean;\n minSortIntervalMs: number;\n\n timer: THREE.Timer;\n time?: number;\n lastFrame = -1;\n updateTimeoutId = -1;\n onDirty?: () => void;\n dirty: boolean;\n\n orderingTexture: THREE.DataTexture | null = null;\n maxSplats = 0;\n activeSplats = 0;\n\n display: SplatAccumulator;\n current: SplatAccumulator;\n accumulators: SplatAccumulator[] = [];\n\n sorting = false;\n sortDirty = false;\n lastSortTime = 0;\n sortWorker: SplatWorker | null = null;\n sortTimeoutId = -1;\n sortedCenter = new THREE.Vector3().setScalar(Number.NEGATIVE_INFINITY);\n sortedDir = new THREE.Vector3().setScalar(0);\n readback32 = new Uint32Array(0);\n\n enableLod: boolean;\n enableDriveLod: boolean;\n enableLodFetching: boolean;\n lodSplatCount?: number;\n lodSplatScale: number;\n lodRenderScale: number;\n lodInflate: boolean;\n lodTraverseMode: \"dynamic\" | \"standard\";\n pagedExtSplats: boolean;\n maxPagedSplats: number;\n numLodFetchers: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n\n lodRaycast?: number;\n lodRaycastIntervalMs: number;\n lastLodRaycastTime = 0;\n\n lodWorker: SplatWorker | null = null;\n lodMeshes: { mesh: SplatMesh; version: number }[] = [];\n lodDirty = false;\n lodIds: Map<\n PackedSplats | ExtSplats | PagedSplats,\n { lodId: number; lastTouched: number; rootPage?: number }\n > = new Map();\n lodIdToSplats: Map =\n new Map();\n lodInitQueue: (PackedSplats | ExtSplats | PagedSplats)[] = [];\n lastLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n currentLod?: {\n pos: THREE.Vector3;\n quat: THREE.Quaternion;\n pixelScaleLimit: number;\n maxSplats: number;\n timestamp: number;\n };\n lodPosOverride?: THREE.Vector3;\n lodQuatOverride?: THREE.Quaternion;\n lodInstances: Map<\n SplatMesh,\n {\n lodId: number;\n numSplats: number;\n indices: Uint32Array;\n texture: THREE.DataTexture;\n }\n > = new Map();\n lodUpdates: {\n lodId: number;\n pageBase: number;\n chunkBase: number;\n count: number;\n lodTreeData?: Uint32Array;\n }[] = [];\n lastTraverseTime = 0;\n lastPixelLimit?: number;\n\n pager?: SplatPager;\n pagerId = 0;\n // prefetchCameras: THREE.Camera[] = [];\n // prefetchLodScale = 1.0;\n // prefetchMeshesCache: SplatMesh[] = [];\n // prefetchMeshesCacheScene?: THREE.Scene;\n\n target?: THREE.WebGLRenderTarget;\n backTarget?: THREE.WebGLRenderTarget;\n superPixels?: Uint8Array;\n targetPixels?: Uint8Array;\n superXY = 1;\n\n flushAfterGenerate = false;\n flushAfterRead = false;\n readPause = 1;\n sortPause = 0;\n sortDelay = 0;\n\n constructor(options: SparkRendererOptions) {\n if (!options) {\n throw new Error(\"SparkRenderer options are required\");\n }\n if (!options.renderer) {\n throw new Error(\"renderer is required in SparkRenderer options\");\n }\n\n const uniforms = SparkRenderer.makeUniforms();\n Object.assign(uniforms, options.extraUniforms ?? {});\n\n const shaders = getShaders();\n const premultipliedAlpha = options.premultipliedAlpha ?? true;\n const geometry = new SplatGeometry();\n const material = new THREE.ShaderMaterial({\n glslVersion: THREE.GLSL3,\n vertexShader: options.vertexShader ?? shaders.splatVertex,\n fragmentShader: options.fragmentShader ?? shaders.splatFragment,\n uniforms,\n premultipliedAlpha,\n transparent: options.transparent ?? true,\n depthTest: options.depthTest ?? true,\n depthWrite: options.depthWrite ?? false,\n side: THREE.DoubleSide,\n allowOverride: false,\n });\n\n super(geometry, material);\n this.material = material;\n this.uniforms = uniforms;\n // Disable frustum culling because we want to always draw them all\n // and cull Gsplats individually in the shader\n this.frustumCulled = false;\n\n // By default SparkRenderer will only render for layer 0\n // this.layers.enableAll();\n\n // sparkRendererInstance = this;\n this.renderer = options.renderer;\n this.onDirty = options.onDirty;\n this.dirty = true;\n this.autoUpdate = options.autoUpdate ?? true;\n this.preUpdate = options.preUpdate ?? true;\n\n this.maxStdDev = options.maxStdDev ?? Math.sqrt(8.0);\n this.minPixelRadius = options.minPixelRadius ?? 0.0; //1.6;\n this.maxPixelRadius = options.maxPixelRadius ?? 512.0;\n this.accumExtSplats = options.accumExtSplats ?? false;\n this.covSplats = options.covSplats ?? false;\n this.minAlpha = options.minAlpha ?? 0.5 * (1.0 / 255.0);\n this.enable2DGS = options.enable2DGS ?? false;\n // this.enableRayEval = options.enableRayEval ?? false;\n this.preBlurAmount = options.preBlurAmount ?? 0.0;\n this.blurAmount = options.blurAmount ?? 0.3;\n this.focalDistance = options.focalDistance ?? 0.0;\n this.apertureAngle = options.apertureAngle ?? 0.0;\n this.falloff = options.falloff ?? 1.0;\n this.clipXY = options.clipXY ?? 1.4;\n this.focalAdjustment = options.focalAdjustment ?? 1.0;\n\n this.sortRadial = options.sortRadial ?? true;\n this.minSortIntervalMs = options.minSortIntervalMs ?? 0;\n\n this.enableLod = options.enableLod ?? true;\n // enableDriveLod defaults to true if enableLod is true, false otherwise\n this.enableDriveLod = options.enableDriveLod ?? this.enableLod;\n this.enableLodFetching = options.enableLodFetching ?? true;\n this.lodSplatCount = options.lodSplatCount;\n this.lodSplatScale = options.lodSplatScale ?? 1.0;\n this.lodRenderScale = options.lodRenderScale ?? 1.0;\n this.lodInflate = options.lodInflate ?? false;\n this.lodTraverseMode = options.lodTraverseMode ?? \"standard\";\n this.pagedExtSplats = options.pagedExtSplats ?? false;\n const defaultPages = isMobile() ? (isIos() ? 96 : 128) : 256;\n this.maxPagedSplats = options.maxPagedSplats ?? defaultPages * 65536;\n this.numLodFetchers = options.numLodFetchers ?? 3;\n this.behindFoveate = options.behindFoveate ?? 0.2;\n this.coneFov0 = options.coneFov0 ?? 90.0;\n this.coneFov = options.coneFov ?? 120.0;\n this.coneFoveate = options.coneFoveate ?? 0.4;\n\n this.lodRaycast =\n options.lodRaycast === undefined\n ? isMobile()\n ? 10000\n : 25000\n : options.lodRaycast;\n this.lodRaycastIntervalMs = options.lodRaycastIntervalMs ?? 500;\n\n this.timer = options.timer ?? new THREE.Timer();\n\n const accumulatorOptions = {\n extSplats: this.accumExtSplats,\n covSplats: this.covSplats,\n };\n this.display = new SplatAccumulator(accumulatorOptions);\n this.current = this.display;\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n this.accumulators.push(new SplatAccumulator(accumulatorOptions));\n\n // Check if the provoking vertex convention should be changed\n const provokingVertexExt = this.renderer\n .getContext()\n .getExtension(\"WEBGL_provoking_vertex\");\n if (provokingVertexExt) {\n provokingVertexExt.provokingVertexWEBGL(\n provokingVertexExt.FIRST_VERTEX_CONVENTION_WEBGL,\n );\n }\n\n if (options.target) {\n const {\n width,\n height,\n doubleBuffer,\n superXY: origSuperXY,\n ...origTargetOptions\n } = options.target;\n const superXY = Math.max(1, Math.min(4, origSuperXY ?? 1));\n if (width * superXY > 8192 || height * superXY > 8192) {\n throw new Error(\"Target size too large\");\n }\n this.superXY = superXY;\n\n const superWidth = width * superXY;\n const superHeight = height * superXY;\n const targetOptions: THREE.RenderTargetOptions = {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n colorSpace: THREE.SRGBColorSpace,\n ...origTargetOptions,\n };\n\n this.target = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n if (doubleBuffer) {\n this.backTarget = new THREE.WebGLRenderTarget(\n superWidth,\n superHeight,\n targetOptions,\n );\n }\n }\n }\n\n static makeUniforms() {\n const uniforms = {\n // // number of active splats to render\n // numSplats: { value: 0 },\n // Size of render viewport in pixels\n renderSize: { value: new THREE.Vector2() },\n // Near and far plane distances\n near: { value: 0.1 },\n far: { value: 1000.0 },\n // SplatAccumulator to view transformation quaternion\n renderToViewQuat: { value: new THREE.Quaternion() },\n // SplatAccumulator to view transformation translation\n renderToViewPos: { value: new THREE.Vector3() },\n renderToViewBasis: { value: new THREE.Matrix3() },\n renderToViewOffset: { value: new THREE.Vector3() },\n // Maximum distance (in stddevs) from Gsplat center to render\n maxStdDev: { value: 1.0 },\n // Minimum pixel radius for splat rendering\n minPixelRadius: { value: 0.0 },\n // Maximum pixel radius for splat rendering\n maxPixelRadius: { value: 512.0 },\n // Minimum alpha value for splat rendering\n minAlpha: { value: 0.5 * (1.0 / 255.0) },\n // Enable interpreting 0-thickness Gsplats as 2DGS\n enable2DGS: { value: false },\n // Enable ray-splat max response evaluation\n // enableRayEval: { value: false },\n // Inflate LoD splats so that opacity <= 1.0\n lodInflate: { value: false },\n // Add to projected 2D splat covariance diagonal (thickens and brightens)\n preBlurAmount: { value: 0.0 },\n // Add to 2D splat covariance diagonal and adjust opacity (anti-aliasing)\n blurAmount: { value: 0.3 },\n // Depth-of-field distance to focal plane\n focalDistance: { value: 0.0 },\n // Full-width angle of aperture opening (in radians)\n apertureAngle: { value: 0.0 },\n // Modulate Gaussian kernal falloff. 0 means \"no falloff, flat shading\",\n // 1 is normal e^-x^2 falloff.\n falloff: { value: 1.0 },\n // Clip Gsplats that are clipXY times beyond the +-1 frustum bounds\n clipXY: { value: 1.4 },\n // Debug renderSize scale factor\n focalAdjustment: { value: 1.0 },\n // Whether to encode Gsplat with linear RGB (for environment mapping)\n encodeLinear: { value: false },\n // Back-to-front sort ordering of splat indices\n ordering: { type: \"t\", value: SparkRenderer.emptyOrdering },\n enableExtSplats: { value: false },\n enableCovSplats: { value: false },\n // Gsplat collection to render\n extSplats: { type: \"t\", value: SplatAccumulator.emptyTexture },\n extSplats2: { type: \"t\", value: SplatAccumulator.emptyTexture },\n // Time in seconds for time-based effects\n time: { value: 0 },\n // Delta time in seconds since last frame\n deltaTime: { value: 0 },\n // Debug flag that alternates each frame\n debugFlag: { value: false },\n };\n return uniforms;\n }\n\n dispose() {\n if (this.target) {\n this.target.dispose();\n this.target = undefined;\n }\n if (this.backTarget) {\n this.backTarget.dispose();\n this.backTarget = undefined;\n }\n if (this.orderingTexture) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n\n const accumulators = new Set();\n accumulators.add(this.display);\n accumulators.add(this.current);\n for (const accumulator of this.accumulators) {\n accumulators.add(accumulator);\n }\n for (const accumulator of accumulators) {\n accumulator.dispose();\n }\n\n const instances = this.lodInstances.values();\n this.lodInstances.clear();\n for (const instance of instances) {\n instance.texture.dispose();\n }\n\n if (this.sortWorker) {\n this.sortWorker.dispose();\n this.sortWorker = null;\n }\n if (this.lodWorker) {\n this.lodWorker.dispose();\n this.lodWorker = null;\n }\n if (this.pager) {\n this.pager.dispose();\n this.pager = undefined;\n }\n }\n\n setDirty() {\n if (!this.dirty) {\n this.dirty = true;\n this.onDirty?.();\n }\n }\n\n onBeforeRender(\n renderer: THREE.WebGLRenderer,\n scene: THREE.Scene,\n camera: THREE.Camera,\n ) {\n const spark = SparkRenderer.sparkOverride ?? this;\n\n const frame = renderer.info.render.frame;\n const isNewFrame = frame !== spark.lastFrame;\n spark.lastFrame = frame;\n\n // Determine render target\n const currentRenderTarget = renderer.getRenderTarget();\n const isXRRenderTarget = checkIsXRRenderTarget(currentRenderTarget);\n if (currentRenderTarget) {\n spark.renderSize.set(\n currentRenderTarget.width,\n currentRenderTarget.height,\n );\n\n // WebXR mode on Apple Vision Pro returns 1x1 when presenting.\n // Use a different means to figure out the render size.\n if (\n isXRRenderTarget &&\n spark.renderSize.x === 1 &&\n spark.renderSize.y === 1\n ) {\n const baseLayer = renderer.xr.getSession()?.renderState.baseLayer;\n if (baseLayer) {\n spark.renderSize.x = baseLayer.framebufferWidth;\n spark.renderSize.y = baseLayer.framebufferHeight;\n }\n }\n } else {\n renderer.getDrawingBufferSize(spark.renderSize);\n }\n this.uniforms.renderSize.value.copy(spark.renderSize);\n\n const typedCamera = camera as\n | THREE.PerspectiveCamera\n | THREE.OrthographicCamera;\n\n this.uniforms.near.value = typedCamera.near;\n this.uniforms.far.value = typedCamera.far;\n\n const geometry = this.geometry as SplatGeometry;\n geometry.instanceCount = spark.activeSplats;\n\n const accumToWorld = new THREE.Matrix4();\n if (!this.display.extSplats) {\n accumToWorld.makeTranslation(spark.display.viewOrigin);\n }\n const cameraToWorld = camera.matrixWorld.clone();\n const worldToCamera = cameraToWorld.invert();\n const accumToCamera = worldToCamera.multiply(accumToWorld);\n accumToCamera.decompose(\n this.uniforms.renderToViewPos.value,\n this.uniforms.renderToViewQuat.value,\n new THREE.Vector3(),\n );\n this.uniforms.renderToViewBasis.value.setFromMatrix4(accumToCamera);\n\n this.uniforms.maxStdDev.value = spark.maxStdDev;\n this.uniforms.minPixelRadius.value = spark.minPixelRadius;\n this.uniforms.maxPixelRadius.value = spark.maxPixelRadius;\n this.uniforms.minAlpha.value = spark.minAlpha;\n this.uniforms.enable2DGS.value = spark.enable2DGS;\n // this.uniforms.enableRayEval.value = spark.enableRayEval;\n this.uniforms.lodInflate.value = spark.lodInflate;\n this.uniforms.preBlurAmount.value = spark.preBlurAmount;\n this.uniforms.blurAmount.value = spark.blurAmount;\n this.uniforms.focalDistance.value = spark.focalDistance;\n this.uniforms.apertureAngle.value = spark.apertureAngle;\n this.uniforms.falloff.value = spark.falloff;\n this.uniforms.clipXY.value = spark.clipXY;\n this.uniforms.focalAdjustment.value = spark.focalAdjustment;\n\n const outputColorSpace =\n currentRenderTarget === null\n ? renderer.outputColorSpace\n : isXRRenderTarget\n ? currentRenderTarget.texture.colorSpace\n : THREE.ColorManagement.workingColorSpace;\n this.uniforms.encodeLinear.value =\n outputColorSpace !== THREE.SRGBColorSpace;\n\n this.uniforms.ordering.value =\n spark.orderingTexture ?? SparkRenderer.emptyOrdering;\n this.uniforms.enableExtSplats.value = this.display.extSplats;\n this.uniforms.enableCovSplats.value = this.display.covSplats;\n if (this.display.extSplats) {\n const extSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = extSplats[0];\n this.uniforms.extSplats2.value = extSplats[1];\n } else {\n const packedSplats = spark.display.getTextures();\n this.uniforms.extSplats.value = packedSplats[0];\n this.uniforms.extSplats2.value = packedSplats[0];\n }\n\n this.uniforms.time.value = spark.display.time;\n this.uniforms.deltaTime.value = spark.display.deltaTime;\n // Alternating debug flag that can aid in visual debugging\n this.uniforms.debugFlag.value = (performance.now() / 1000.0) % 2.0 < 1.0;\n\n if (spark.autoUpdate && isNewFrame) {\n const preUpdate = spark.preUpdate && !renderer.xr.isPresenting;\n const useCamera = renderer.xr.isPresenting\n ? renderer.xr.getCamera()\n : camera;\n if (preUpdate) {\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n } else {\n if (spark.updateTimeoutId === -1) {\n spark.updateTimeoutId = setTimeout(() => {\n spark.updateTimeoutId = -1;\n spark.updateInternal({\n scene,\n camera: useCamera,\n autoUpdate: true,\n });\n }, 1);\n }\n }\n }\n\n spark.dirty = false;\n }\n\n clearSplats() {\n this.activeSplats = 0;\n this.display.numSplats = 0;\n this.setDirty();\n }\n\n async update({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }) {\n await this.updateInternal({ scene, camera, autoUpdate: false });\n }\n\n // /**\n // * Provide additional cameras to prefetch paged splat chunks without\n // * affecting main LOD selection.\n // */\n // setPrefetchCameras(cameras?: THREE.Camera[], lodScaleMultiplier = 1.0) {\n // const next = cameras?.filter(Boolean) ?? [];\n // const sameCameras =\n // this.prefetchCameras.length === next.length &&\n // this.prefetchCameras.every((camera, index) => camera === next[index]);\n // if (sameCameras && this.prefetchLodScale === lodScaleMultiplier) {\n // return;\n // }\n // this.prefetchCameras = next;\n // this.prefetchLodScale = lodScaleMultiplier;\n // this.invalidatePrefetchCache();\n // }\n\n // /**\n // * Invalidate the prefetch meshes cache. Call this when SplatMeshes are\n // * added or removed from the scene.\n // */\n // invalidatePrefetchCache() {\n // this.prefetchMeshesCacheScene = undefined;\n // }\n\n private async updateInternal({\n scene,\n camera,\n autoUpdate,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n autoUpdate: boolean;\n }) {\n const renderer = this.renderer;\n this.timer.update();\n const time = this.time ?? this.timer.getElapsed();\n\n const center = camera.getWorldPosition(new THREE.Vector3());\n const dir = camera.getWorldDirection(new THREE.Vector3());\n\n const viewChanged =\n center.distanceTo(this.sortedCenter) > 0.001 ||\n dir.dot(this.sortedDir) < 0.999;\n\n const next = this.accumulators.pop();\n if (!next) {\n // Should never happen\n throw new Error(\"No next accumulator\");\n }\n if (next === this.current) {\n // Should never happen\n throw new Error(\n \"Next accumulator is the same as the current accumulator\",\n );\n }\n const { version, mappingVersion, visibleGenerators, generate } =\n next.prepareGenerate({\n renderer,\n scene,\n time,\n camera,\n sortRadial: this.sortRadial ?? true,\n renderSize: this.renderSize,\n previous: this.current,\n lodInstances: this.enableLod ? this.lodInstances : undefined,\n });\n\n let doUpdate = true;\n const needsUpdate = viewChanged || version !== this.current.version;\n const mappingUpdated = mappingVersion !== this.display.mappingVersion;\n\n if (autoUpdate && !needsUpdate) {\n // Triggered by auto-update but no change\n doUpdate = false;\n }\n\n if (mappingUpdated && this.sorting) {\n // We need to be able to sort the splats because the mapping has changed.\n // Try again next time around.\n doUpdate = false;\n }\n\n if (!doUpdate) {\n // Restore unused accumulator to the free list\n this.accumulators.push(next);\n } else {\n generate();\n\n if (this.flushAfterGenerate) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n if (this.display.mappingVersion === next.mappingVersion) {\n // Same splat mapping so let's display it immediately and\n // reuse the sort order\n this.accumulators.push(this.display);\n this.display = next;\n } else {\n if (this.display !== this.current) {\n // The previous current is not being displayed, so replace it\n this.accumulators.push(this.current);\n }\n }\n\n this.current = next;\n this.sortDirty = true;\n this.setDirty();\n }\n\n if (this.enableDriveLod) {\n this.driveLod({ visibleGenerators, camera, scene });\n }\n await this.driveSort();\n }\n\n private async driveSort() {\n if (this.sorting || !this.sortDirty) {\n return;\n }\n\n if (this.sortTimeoutId !== -1) {\n clearTimeout(this.sortTimeoutId);\n this.sortTimeoutId = -1;\n }\n\n const now = performance.now();\n const nextSortTime = this.lastSortTime\n ? this.lastSortTime + this.minSortIntervalMs\n : now;\n if (now < nextSortTime) {\n this.sortTimeoutId = setTimeout(() => {\n this.sortTimeoutId = -1;\n this.driveSort();\n }, nextSortTime - now);\n return;\n }\n\n this.sorting = true;\n this.sortDirty = false;\n this.lastSortTime = now;\n\n if (this.readPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.readPause));\n }\n\n const current = this.current;\n\n this.sortedCenter.copy(current.viewOrigin);\n this.sortedDir.copy(current.viewDirection);\n\n const { numSplats, maxSplats } = current;\n const rows = Math.max(1, Math.ceil(maxSplats / 16384));\n const orderingMaxSplats = rows * 16384;\n this.maxSplats = Math.max(this.maxSplats, orderingMaxSplats);\n\n const ordering = new Uint32Array(this.maxSplats);\n const readback = Readback.ensureBuffer(maxSplats, this.readback32);\n this.readback32 = readback;\n\n await this.readbackDepth({\n current,\n renderer: this.renderer,\n numSplats,\n readback,\n });\n\n if (this.sortPause > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortPause));\n }\n\n if (!this.sortWorker) {\n this.sortWorker = new SplatWorker();\n }\n const result = (await this.sortWorker.call(\"sortSplats32\", {\n numSplats,\n readback,\n ordering,\n })) as {\n readback: Uint32Array;\n ordering: Uint32Array;\n activeSplats: number;\n };\n\n if (this.sortDelay > 0) {\n await new Promise((resolve) => setTimeout(resolve, this.sortDelay));\n }\n\n this.readback32 = result.readback;\n\n this.activeSplats = result.activeSplats;\n\n if (this.orderingTexture) {\n if (rows > this.orderingTexture.image.height) {\n this.orderingTexture.dispose();\n this.orderingTexture = null;\n }\n }\n\n if (!this.orderingTexture) {\n // console.log(`Allocating orderingTexture: ${4096}x${rows}`);\n const orderingTexture = new THREE.DataTexture(\n result.ordering,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n orderingTexture.internalFormat = \"RGBA32UI\";\n orderingTexture.needsUpdate = true;\n this.orderingTexture = orderingTexture;\n } else {\n const renderer = this.renderer;\n if (!renderer.properties.has(this.orderingTexture)) {\n this.orderingTexture.needsUpdate = true;\n } else {\n uploadU32DataTextureRows(\n renderer,\n this.orderingTexture,\n 4096,\n rows,\n result.ordering,\n );\n }\n }\n\n // console.log(`Sorted (${this.minSortIntervalMs}) ${numSplats} splats in ${(performance.now() - now).toFixed(0)} ms`);\n\n if (this.current.mappingVersion === current.mappingVersion) {\n if (this.current.mappingVersion !== this.display.mappingVersion) {\n this.accumulators.push(this.display);\n this.display = this.current;\n }\n }\n this.sorting = false;\n this.setDirty();\n\n this.driveSort();\n }\n\n private ensureLodWorker() {\n if (!this.lodWorker) {\n this.lodWorker = new SplatWorker();\n }\n return this.lodWorker;\n }\n\n defaultSplatTarget() {\n return isOculus()\n ? 500000\n : isVisionPro()\n ? 750000\n : isAndroid()\n ? 1000000\n : isIos()\n ? 1500000\n : 2500000;\n }\n\n private driveLod({\n visibleGenerators,\n camera,\n scene,\n }: {\n visibleGenerators: SplatGenerator[];\n camera: THREE.Camera;\n scene: THREE.Scene;\n }) {\n const defaultSplatCount = this.defaultSplatTarget();\n const splatCount = this.lodSplatCount ?? defaultSplatCount;\n const maxSplats = splatCount * this.lodSplatScale;\n\n let pixelScaleLimit = 0.0;\n if (camera instanceof THREE.PerspectiveCamera) {\n const tanYfov = Math.tan((0.5 * camera.fov * Math.PI) / 180);\n pixelScaleLimit = (2.0 * tanYfov) / this.renderSize.y;\n } else if (camera instanceof THREE.OrthographicCamera) {\n // Effective visible size after zoom\n const viewHeight = (camera.top - camera.bottom) / camera.zoom;\n const viewWidth = (camera.right - camera.left) / camera.zoom;\n // World/view units per pixel (constant with depth for ortho)\n const pxY = viewHeight / Math.max(1, this.renderSize.y);\n const pxX = viewWidth / Math.max(1, this.renderSize.x);\n pixelScaleLimit = Math.min(pxX, pxY);\n }\n\n pixelScaleLimit *= this.lodRenderScale;\n\n const viewPos = new THREE.Vector3();\n const viewQuat = new THREE.Quaternion();\n this.current.viewToWorld.decompose(viewPos, viewQuat, new THREE.Vector3());\n\n if (this.lodPosOverride) {\n viewPos.copy(this.lodPosOverride);\n }\n if (this.lodQuatOverride) {\n viewQuat.copy(this.lodQuatOverride).normalize();\n }\n\n if (this.lastLod) {\n if (\n this.lastLod.pixelScaleLimit !== pixelScaleLimit ||\n this.lastLod.maxSplats !== maxSplats\n ) {\n this.lodDirty = true;\n }\n\n const distance = viewPos.distanceTo(this.lastLod.pos);\n const distanceRamp = Math.max(0.0, 1.0 - distance / 1.0);\n const dot = viewQuat.dot(this.lastLod.quat);\n const quatRamp = Math.max(0.0, 1.0 - (1.0 - dot) / 0.01);\n const similarity = distanceRamp * quatRamp;\n if (similarity < 0.999) {\n this.lodDirty = true;\n }\n }\n\n const lodMeshes = !this.enableLod\n ? []\n : (visibleGenerators.filter((generator) => {\n return (\n generator instanceof SplatMesh &&\n (generator.packedSplats?.lodSplats ||\n generator.extSplats?.lodSplats ||\n generator.paged) &&\n generator.enableLod !== false\n );\n }) as SplatMesh[]);\n const hasPaged = lodMeshes.some((mesh) => mesh.paged);\n\n if (this.lodMeshes.length !== lodMeshes.length) {\n this.lodDirty = true;\n } else {\n if (\n lodMeshes.some(\n (m, i) =>\n m !== this.lodMeshes[i].mesh ||\n m.version > this.lodMeshes[i].version,\n )\n ) {\n this.lodDirty = true;\n }\n }\n\n this.lodMeshes = lodMeshes.map((mesh) => ({\n mesh,\n version: mesh.version + 1,\n }));\n\n // if (!this.lodDirty && lodMeshes.length === 0 && this.lodIds.size === 0) {\n // return;\n // }\n\n this.lodInitQueue = [];\n const now = performance.now();\n\n for (const mesh of lodMeshes) {\n const splats =\n mesh.packedSplats?.lodSplats ?? mesh.extSplats?.lodSplats ?? mesh.paged;\n if (splats) {\n const record = this.lodIds.get(splats);\n if (record) {\n record.lastTouched = now;\n } else {\n this.lodInitQueue.push(splats);\n }\n }\n }\n\n this.ensureLodWorker().tryExclusive(async (worker) => {\n if (hasPaged && !this.pager) {\n this.pager = new SplatPager({\n renderer: this.renderer,\n extSplats: this.pagedExtSplats,\n maxSplats: this.maxPagedSplats,\n numFetchers: this.numLodFetchers,\n });\n\n const { lodId } = (await worker.call(\"newLodTree\", {\n capacity: this.pager.maxSplats,\n })) as { lodId: number };\n this.pagerId = lodId;\n }\n\n // Assign pager to any new meshes that don't have one yet\n // (must run every frame, not just when pager is first created)\n if (this.pager) {\n for (const { mesh } of this.lodMeshes) {\n if (mesh.paged && !mesh.paged.pager) {\n mesh.paged.pager = this.pager;\n }\n }\n }\n\n if (this.lodInitQueue.length > 0) {\n const lodInitQueue = this.lodInitQueue;\n this.lodInitQueue = [];\n while (lodInitQueue.length > 0) {\n const splats = lodInitQueue.shift();\n if (splats) {\n await this.initLodTree(worker, splats);\n this.lodDirty = true;\n }\n }\n }\n\n if (this.pager) {\n const updates = this.pager.consumeLodTreeUpdates();\n\n for (const { splats, page, chunk, numSplats, lodTree } of updates) {\n const record = this.lodIds.get(splats);\n if (record) {\n if (lodTree && chunk === 0) {\n record.rootPage = page;\n }\n this.lodUpdates.push({\n lodId: record.lodId,\n pageBase: page * this.pager.pageSplats,\n chunkBase: chunk * this.pager.pageSplats,\n count: numSplats,\n lodTreeData: lodTree,\n });\n }\n }\n }\n\n if (this.lodUpdates.length > 0) {\n const lodUpdates = this.lodUpdates;\n this.lodUpdates = [];\n await worker.call(\"updateLodTrees\", { ranges: lodUpdates });\n this.lodDirty = true;\n }\n\n if (this.lodDirty) {\n const now = performance.now();\n const deltaPred = new THREE.Vector3();\n if (this.lastLod) {\n const deltaTime = Math.max(1, now - this.lastLod.timestamp);\n deltaPred\n .copy(viewPos)\n .sub(this.lastLod.pos)\n .multiplyScalar(this.lastTraverseTime / deltaTime);\n }\n this.lastLod = {\n pos: viewPos,\n quat: viewQuat,\n pixelScaleLimit,\n maxSplats,\n timestamp: now,\n };\n this.lodDirty = false;\n\n await this.updateLodInstances(\n worker,\n deltaPred,\n lodMeshes,\n maxSplats,\n viewPos,\n viewQuat,\n pixelScaleLimit,\n );\n this.currentLod = this.lastLod;\n this.setDirty();\n }\n\n await this.cleanupLodTrees(worker);\n });\n }\n\n private async initLodTree(\n worker: SplatWorker,\n splats: PackedSplats | ExtSplats | PagedSplats,\n ) {\n if (splats instanceof PackedSplats || splats instanceof ExtSplats) {\n const { lodId } = (await worker.call(\"initLodTree\", {\n numSplats: splats.numSplats ?? 0,\n lodTree: (splats.extra.lodTree as Uint32Array).slice(),\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** initLodTree\", lodId, splats.extra.lodTree, splats);\n } else {\n const { lodId } = (await worker.call(\"newSharedLodTree\", {\n lodId: this.pagerId,\n })) as { lodId: number };\n this.lodIds.set(splats, { lodId, lastTouched: performance.now() });\n this.lodIdToSplats.set(lodId, splats);\n // console.log(\"*** newSharedLodTree\", lodId, this.pagerId, splats);\n }\n }\n\n private pageSizeWarning = false;\n\n private async updateLodInstances(\n worker: SplatWorker,\n deltaPred: THREE.Vector3,\n lodMeshes: SplatMesh[],\n maxSplats: number,\n viewPos: THREE.Vector3,\n viewQuat: THREE.Quaternion,\n pixelScaleLimit: number,\n ) {\n // Commented out because it makes LoDing less stable\n // viewPos.add(deltaPred);\n\n const uuidToMesh: Map = new Map();\n const cameraToWorld = new THREE.Matrix4().compose(\n viewPos,\n viewQuat,\n new THREE.Vector3().setScalar(1),\n );\n\n const instances = lodMeshes.reduce(\n (instances, mesh) => {\n uuidToMesh.set(mesh.uuid, mesh);\n const viewToObject = mesh.matrixWorld\n .clone()\n .invert()\n .multiply(cameraToWorld);\n\n const splats =\n mesh.packedSplats?.lodSplats ??\n mesh.extSplats?.lodSplats ??\n mesh.paged;\n if (!splats) {\n return instances;\n }\n const record = this.lodIds.get(splats);\n if (!record) {\n return instances;\n }\n\n if (this.pager && mesh.paged && record.rootPage === undefined) {\n return instances;\n }\n\n instances[mesh.uuid] = {\n instanceId: mesh.uuid,\n lodId: record.lodId,\n rootPage: record.rootPage,\n viewToObjectCols: viewToObject.elements,\n lodScale: mesh.lodScale,\n behindFoveate: mesh.behindFoveate ?? this.behindFoveate,\n coneFov0: mesh.coneFov0 ?? this.coneFov0,\n coneFov: mesh.coneFov ?? this.coneFov,\n coneFoveate: mesh.coneFoveate ?? this.coneFoveate,\n };\n return instances;\n },\n {} as Record<\n string,\n {\n instanceId: string;\n lodId: number;\n rootPage?: number;\n viewToObjectCols: number[];\n lodScale: number;\n behindFoveate: number;\n coneFov0: number;\n coneFov: number;\n coneFoveate: number;\n }\n >,\n );\n\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats,\n pixelScaleLimit,\n lastPixelLimit: this.lastPixelLimit,\n instances,\n traverseMode: this.lodTraverseMode,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n chunks: [number, number][];\n pixelLimit?: number;\n };\n this.lastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices, chunks, pixelLimit } = result;\n this.lastPixelLimit = pixelLimit;\n const totalLodSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n // console.log(\n // `traverseLodTrees in ${this.lastTraverseTime} ms, pixelLimit=${pixelLimit}, totalLodSplats=${totalLodSplats}`,\n // );\n\n this.updateLodIndices(uuidToMesh, keyIndices);\n // console.log(\"chunks.length =\", chunks.length);\n\n if (this.pager) {\n this.pager.processUploads();\n\n const pagedMeshes = lodMeshes\n .map((mesh) => {\n if (!mesh.paged || !this.pager) {\n return null;\n }\n const meshPosition = mesh.getWorldPosition(new THREE.Vector3());\n return {\n splats: mesh.paged,\n distance: meshPosition.distanceTo(viewPos),\n };\n })\n .filter((result) => result !== null);\n\n if (!this.pageSizeWarning && pagedMeshes.length > this.pager.maxPages) {\n this.pageSizeWarning = true;\n console.warn(\n `# paged SplatMeshes exceeds maxPages: ${pagedMeshes.length} > ${this.pager.maxPages}`,\n );\n }\n\n // Fetch root chunk of each paged splats in priority of distance to camera\n pagedMeshes.sort((a, b) => a.distance - b.distance);\n this.pager.fetchPriority = pagedMeshes.map(({ splats }) => ({\n splats,\n chunk: 0,\n }));\n\n for (const [lodId, chunk] of chunks) {\n const splats = this.lodIdToSplats.get(lodId);\n if (splats instanceof PagedSplats) {\n if (chunk !== 0) {\n this.pager.fetchPriority.push({ splats, chunk });\n }\n }\n }\n\n this.pager.autoDrive = this.enableLodFetching;\n if (this.enableLodFetching) {\n this.pager.driveFetchers();\n }\n }\n\n if (\n this.lodRaycast &&\n performance.now() - this.lastLodRaycastTime >= this.lodRaycastIntervalMs\n ) {\n this.lastLodRaycastTime = performance.now();\n const traverseStart = performance.now();\n const result = (await worker.call(\"traverseLodTrees\", {\n maxSplats: Math.min(this.lodRaycast, Math.round(totalLodSplats * 0.1)),\n pixelScaleLimit,\n instances,\n })) as {\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >;\n };\n const raycastTraverseTime = performance.now() - traverseStart;\n\n const { keyIndices } = result;\n const totalRaycastSplats = Object.values(keyIndices).reduce(\n (sum, { numSplats }) => sum + numSplats,\n 0,\n );\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n mesh.raycastIndices = countIndices;\n // console.log(\"Set raycast indices\", uuid, countIndices.numSplats, countIndices.indices.length);\n }\n // console.log(`raycast traverse in ${raycastTraverseTime} ms, totalRaycastSplats=${totalRaycastSplats}`);\n }\n }\n\n private async cleanupLodTrees(worker: SplatWorker) {\n const DISPOSE_TIMEOUT_MS = 3000;\n const now = performance.now();\n\n let oldest = null;\n for (const [splats, record] of this.lodIds.entries()) {\n if (oldest == null || record.lastTouched < oldest.lastTouched) {\n oldest = {\n splats,\n lastTouched: record.lastTouched,\n lodId: record.lodId,\n };\n }\n }\n if (!oldest || oldest.lastTouched > now - DISPOSE_TIMEOUT_MS) {\n return;\n }\n\n this.lodIds.delete(oldest.splats);\n this.lodIdToSplats.delete(oldest.lodId);\n\n for (const [mesh, instance] of this.lodInstances.entries()) {\n if (instance.lodId === oldest.lodId) {\n instance.texture.dispose();\n this.lodInstances.delete(mesh);\n }\n }\n\n if (oldest.splats instanceof PagedSplats) {\n this.pager?.removeSplats(oldest.splats);\n }\n\n await worker.call(\"disposeLodTree\", { lodId: oldest.lodId });\n // console.log(\"disposed lodTree\", oldest.lodId);\n }\n\n private updateLodIndices(\n uuidToMesh: Map,\n keyIndices: Record<\n string,\n { lodId: number; numSplats: number; indices: Uint32Array }\n >,\n ) {\n // console.log(\"updateLodIndices\", keyIndices);\n for (const [uuid, countIndices] of Object.entries(keyIndices)) {\n const { lodId, numSplats, indices } = countIndices;\n const mesh = uuidToMesh.get(uuid) as SplatMesh;\n\n if (mesh.paged) {\n mesh.paged.update(numSplats, indices);\n // console.log(\"*** paged.update\", lodId, numSplats, indices.slice(0, 5).join(\",\"));\n } else {\n let instance = this.lodInstances.get(mesh);\n if (instance) {\n if (indices.length > instance.indices.length) {\n instance.texture.dispose();\n instance = undefined;\n }\n }\n\n const rows = Math.ceil(indices.length / 16384);\n if (!instance) {\n const capacity = rows * 16384;\n if (indices.length !== capacity) {\n throw new Error(\"Indices length != capacity\");\n }\n const texture = new THREE.DataTexture(\n indices,\n 4096,\n rows,\n THREE.RGBAIntegerFormat,\n THREE.UnsignedIntType,\n );\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n instance = { lodId, numSplats, indices, texture };\n this.lodInstances.set(mesh, instance);\n } else {\n instance.numSplats = numSplats;\n // instance.indices.set(indices.subarray(0, numSplats));\n\n const renderer = this.renderer;\n const gl = renderer.getContext() as WebGL2RenderingContext;\n if (renderer.properties.has(instance.texture)) {\n const props = renderer.properties.get(instance.texture) as {\n __webglTexture: WebGLTexture;\n };\n const glTexture = props.__webglTexture;\n if (!glTexture) {\n throw new Error(\"lodIndices texture not found\");\n }\n renderer.state.activeTexture(gl.TEXTURE0);\n renderer.state.bindTexture(gl.TEXTURE_2D, glTexture);\n gl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n 4096,\n rows,\n gl.RGBA_INTEGER,\n gl.UNSIGNED_INT,\n indices,\n );\n renderer.state.bindTexture(gl.TEXTURE_2D, null);\n }\n }\n }\n mesh.updateMappingVersion();\n }\n }\n\n private async readbackDepth({\n current,\n renderer,\n numSplats,\n readback,\n }: {\n current: SplatAccumulator;\n renderer: THREE.WebGLRenderer;\n numSplats: number;\n readback: Uint32Array;\n }) {\n if (!renderer) {\n throw new Error(\"No renderer\");\n }\n if (!current.target) {\n throw new Error(\"No target\");\n }\n\n const roundedCount =\n Math.ceil(numSplats / SPLAT_TEX_WIDTH) * SPLAT_TEX_WIDTH;\n if (readback.byteLength < roundedCount * 4) {\n throw new Error(\n `Readback buffer too small: ${readback.byteLength} < ${roundedCount * 4}`,\n );\n }\n const readbackUint8 = new Uint8Array(readback.buffer);\n const renderState = this.saveRenderState(renderer);\n\n // We can only read back one 2D array layer of pixels at a time,\n // so loop through them, initiate the readback, and collect the\n // completion promises.\n const layerSize = SPLAT_TEX_WIDTH * SPLAT_TEX_HEIGHT;\n let baseIndex = 0;\n const promises = [];\n\n while (baseIndex < numSplats) {\n const layer = Math.floor(baseIndex / layerSize);\n const layerBase = layer * layerSize;\n const layerYEnd = Math.min(\n SPLAT_TEX_HEIGHT,\n Math.ceil((numSplats - layerBase) / SPLAT_TEX_WIDTH),\n );\n\n // Compute the subarray that this layer of readback corresponds to\n const readbackSize = SPLAT_TEX_WIDTH * layerYEnd * 4;\n const subReadback = readbackUint8.subarray(\n layerBase * 4,\n layerBase * 4 + readbackSize,\n );\n renderer.setRenderTarget(current.target, layer);\n\n const promise = renderer.readRenderTargetPixelsAsync(\n current.target,\n 0,\n 0,\n SPLAT_TEX_WIDTH,\n layerYEnd,\n subReadback,\n undefined,\n current.extSplats ? 2 : 1,\n );\n promises.push(promise);\n\n if (this.flushAfterRead) {\n const gl = renderer.getContext() as WebGL2RenderingContext;\n gl.flush();\n }\n\n baseIndex += SPLAT_TEX_WIDTH * layerYEnd;\n }\n\n this.resetRenderState(renderer, renderState);\n return Promise.all(promises).then(() => readback);\n }\n\n private saveRenderState(renderer: THREE.WebGLRenderer) {\n return {\n target: renderer.getRenderTarget(),\n xrEnabled: renderer.xr.enabled,\n autoClear: renderer.autoClear,\n };\n }\n\n private resetRenderState(\n renderer: THREE.WebGLRenderer,\n state: {\n target: THREE.WebGLRenderTarget | null;\n xrEnabled: boolean;\n autoClear: boolean;\n },\n ) {\n renderer.setRenderTarget(state.target);\n renderer.xr.enabled = state.xrEnabled;\n renderer.autoClear = state.autoClear;\n }\n\n private static emptyOrdering = (() => {\n const numIndices = 4 * 4096 * 1;\n const emptyArray = new Uint32Array(numIndices);\n const texture = new THREE.DataTexture(emptyArray, 4096, 1);\n texture.format = THREE.RGBAIntegerFormat;\n texture.type = THREE.UnsignedIntType;\n texture.internalFormat = \"RGBA32UI\";\n texture.needsUpdate = true;\n return texture;\n })();\n\n render(scene: THREE.Scene, camera: THREE.Camera) {\n try {\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n }\n\n renderTarget({\n scene,\n camera,\n }: { scene: THREE.Scene; camera: THREE.Camera }): THREE.WebGLRenderTarget {\n const target = this.backTarget ?? this.target;\n if (!target) {\n throw new Error(\"No target\");\n }\n\n const previousTarget = this.renderer.getRenderTarget();\n try {\n this.renderer.setRenderTarget(target);\n SparkRenderer.sparkOverride = this;\n this.renderer.render(scene, camera);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n this.renderer.setRenderTarget(previousTarget);\n }\n\n if (target !== this.target) {\n // Swap back buffer and target\n [this.target, this.backTarget] = [this.backTarget, this.target];\n }\n return target;\n }\n\n // Read back the previously rendered target image as a Uint8Array of packed\n // RGBA values (in that order). Subsequent calls to this.readTarget()\n // will reuse the same buffers to minimize memory allocations.\n async readTarget(): Promise {\n if (!this.target) {\n throw new Error(\"Must initialize with target\");\n }\n const { width, height } = this.target;\n const byteSize = width * height * 4;\n if (!this.superPixels || this.superPixels.length < byteSize) {\n this.superPixels = new Uint8Array(byteSize);\n // console.log(`Allocated superPixels: ${width}x${height} = ${pixelCount} bytes`);\n }\n const superPixels = this.superPixels;\n\n await this.renderer.readRenderTargetPixelsAsync(\n this.target,\n 0,\n 0,\n width,\n height,\n superPixels,\n );\n\n const { superXY } = this;\n if (superXY === 1) {\n return superPixels;\n }\n\n const subWidth = width / superXY;\n const subHeight = height / superXY;\n const subSize = subWidth * subHeight * 4;\n if (!this.targetPixels || this.targetPixels.length < subSize) {\n this.targetPixels = new Uint8Array(subSize);\n // console.log(`Allocated targetPixels: ${subWidth}x${subHeight} = ${subSize} bytes`);\n }\n const targetPixels = this.targetPixels;\n\n const super2 = superXY * superXY;\n for (let y = 0; y < subHeight; y++) {\n const row = y * subWidth;\n for (let x = 0; x < subWidth; x++) {\n const superCol = x * superXY;\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n for (let sy = 0; sy < superXY; sy++) {\n const superRow = (y * superXY + sy) * width;\n for (let sx = 0; sx < superXY; sx++) {\n const superIndex = (superRow + superCol + sx) * 4;\n r += superPixels[superIndex];\n g += superPixels[superIndex + 1];\n b += superPixels[superIndex + 2];\n a += superPixels[superIndex + 3];\n }\n }\n const pixelIndex = (row + x) * 4;\n targetPixels[pixelIndex] = r / super2;\n targetPixels[pixelIndex + 1] = g / super2;\n targetPixels[pixelIndex + 2] = b / super2;\n targetPixels[pixelIndex + 3] = a / super2;\n }\n }\n return targetPixels;\n }\n\n async renderReadTarget({\n scene,\n camera,\n }: {\n scene: THREE.Scene;\n camera: THREE.Camera;\n }): Promise {\n this.renderTarget({ scene, camera });\n return this.readTarget();\n }\n\n // Data and buffers used for environment map rendering\n private static cubeRender: {\n target: THREE.WebGLCubeRenderTarget;\n cubeCamera: THREE.CubeCamera;\n near: number;\n far: number;\n } | null = null;\n private static pmrem: THREE.PMREMGenerator | null = null;\n\n // Renders out the scene to a cube map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces.\n async renderCubeMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n filter = false,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n filter: boolean;\n }): Promise {\n if (\n !SparkRenderer.cubeRender ||\n SparkRenderer.cubeRender.target.width !== size ||\n SparkRenderer.cubeRender.near !== near ||\n SparkRenderer.cubeRender.far !== far\n ) {\n if (SparkRenderer.cubeRender) {\n SparkRenderer.cubeRender.target.dispose();\n }\n const target = new THREE.WebGLCubeRenderTarget(size, {\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType,\n generateMipmaps: filter,\n minFilter: filter ? THREE.LinearMipMapLinearFilter : THREE.LinearFilter,\n magFilter: THREE.LinearFilter,\n colorSpace: filter ? THREE.LinearSRGBColorSpace : THREE.SRGBColorSpace,\n });\n const cubeCamera = new THREE.CubeCamera(near, far, target);\n SparkRenderer.cubeRender = { target, cubeCamera, near, far };\n }\n\n const { target, cubeCamera } = SparkRenderer.cubeRender;\n cubeCamera.position.copy(worldCenter);\n\n // Save the visibility state of objects we want to hide before render\n const objectVisibility = new Map();\n for (const object of hideObjects) {\n objectVisibility.set(object, object.visible);\n object.visible = false;\n }\n\n if (update) {\n const tempCamera = new THREE.Camera();\n tempCamera.position.copy(worldCenter);\n await this.update({ scene, camera: tempCamera });\n }\n\n try {\n SparkRenderer.sparkOverride = this;\n // Update the CubeCamera, which performs 6 cube face renders\n cubeCamera.update(this.renderer, scene);\n } finally {\n SparkRenderer.sparkOverride = undefined;\n }\n\n // Restore viewpoint to default and object visibility\n for (const [object, visible] of objectVisibility.entries()) {\n object.visible = visible;\n }\n\n return target.texture;\n }\n\n async readCubeTargets(): Promise {\n if (!SparkRenderer.cubeRender) {\n throw new Error(\"No cube render\");\n }\n\n const textures = SparkRenderer.cubeRender.target.texture;\n const promises = [];\n const buffers = [];\n\n for (let i = 0; i < textures.images.length; ++i) {\n const { width, height } = textures.images[i];\n const byteSize = width * height * 4;\n const readback = new Uint8Array(byteSize);\n buffers.push(readback);\n const promise = this.renderer.readRenderTargetPixelsAsync(\n SparkRenderer.cubeRender.target,\n 0,\n 0,\n width,\n height,\n readback,\n i,\n );\n promises.push(promise);\n }\n\n await Promise.all(promises);\n return buffers;\n }\n\n // Renders out the scene to an environment map that can be used for\n // Image-based lighting or similar applications. First optionally updates Gsplats,\n // sorts them with respect to the provided worldCenter, renders 6 cube faces,\n // then pre-filters them using THREE.PMREMGenerator and returns a THREE.Texture\n // that can assigned directly to a THREE.MeshStandardMaterial.envMap property.\n async renderEnvMap({\n scene,\n worldCenter,\n size = 256,\n near = 0.1,\n far = 1000,\n hideObjects = [],\n update = true,\n }: {\n scene: THREE.Scene;\n worldCenter: THREE.Vector3;\n size?: number;\n near?: number;\n far?: number;\n hideObjects: THREE.Object3D[];\n update: boolean;\n }): Promise {\n const cubeTexture = await this.renderCubeMap({\n scene,\n worldCenter,\n size,\n near,\n far,\n hideObjects,\n update,\n filter: true,\n });\n // Pre-filter the cube map using THREE.PMREMGenerator if requested\n if (!SparkRenderer.pmrem) {\n SparkRenderer.pmrem = new THREE.PMREMGenerator(this.renderer);\n }\n\n return SparkRenderer.pmrem?.fromCubemap(cubeTexture).texture;\n }\n\n // Utility function to recursively set the envMap property for any\n // THREE.MeshStandardMaterial within the subtree of root.\n recurseSetEnvMap(root: THREE.Object3D, envMap: THREE.Texture) {\n root.traverse((node) => {\n if (node instanceof THREE.Mesh) {\n if (Array.isArray(node.material)) {\n for (const material of node.material) {\n if (material instanceof THREE.MeshStandardMaterial) {\n material.envMap = envMap;\n }\n }\n } else {\n if (node.material instanceof THREE.MeshStandardMaterial) {\n node.material.envMap = envMap;\n }\n }\n }\n });\n }\n\n async getLodTreeLevel(\n splats: SplatMesh,\n level: number,\n pageColoring = false,\n ) {\n const instance = this.lodInstances.get(splats);\n if (!instance) {\n return null;\n }\n\n const result = await this.ensureLodWorker().exclusive(async (worker) => {\n return (await worker.call(\"getLodTreeLevel\", {\n lodId: instance.lodId,\n level,\n })) as { indices: Uint32Array };\n });\n\n if (splats.packedSplats?.lodSplats) {\n const newSplats = splats.packedSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ packedSplats: newSplats });\n }\n if (splats.extSplats?.lodSplats) {\n const newSplats = splats.extSplats.lodSplats.extractSplats(\n result.indices,\n pageColoring,\n );\n return new SplatMesh({ extSplats: newSplats });\n }\n throw new Error(\n \"Only LoD-enabled PackedSplats and ExtSplats are supported\",\n );\n }\n\n get premultipliedAlpha(): boolean {\n return this.material.premultipliedAlpha;\n }\n\n set premultipliedAlpha(value: boolean) {\n if (this.material.premultipliedAlpha !== value) {\n this.material.premultipliedAlpha = value;\n this.material.needsUpdate = true;\n }\n }\n}\n\nfunction checkIsXRRenderTarget(renderTarget: THREE.RenderTarget | null) {\n return (renderTarget as unknown as Record)?.isXRRenderTarget;\n}\n","// PLY file format reader\n\nimport { USE_COMPILED_PARSER_FUNCTION } from \"./defines\";\n\nconst PLY_PROPERTY_TYPES = [\n \"char\",\n \"uchar\",\n \"short\",\n \"ushort\",\n \"int\",\n \"uint\",\n \"float\",\n \"double\",\n] as const;\nexport type PlyPropertyType = (typeof PLY_PROPERTY_TYPES)[number];\n\nexport type PlyElement = {\n name: string;\n count: number;\n properties: Record;\n};\n\nexport type PlyProperty = {\n isList: boolean;\n type: PlyPropertyType;\n countType?: PlyPropertyType;\n};\n\n// Callback for parseSplats base Gsplat data\nexport type SplatCallback = (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n) => void;\n\n// Callback for parseSplats SH coefficients\nexport type SplatShCallback = (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n) => void;\n\n// A PlyReader is used to parse PLY files for Gsplat data.\n// It takes a Uint8Array/ArrayBuffer as input fileBytes, parses the text header,\n// and provides a method parseData to iterate over the entire binary data\n// efficiently, or parseSplats to iterate over Gsplat data.\n\nexport class PlyReader {\n fileBytes: Uint8Array;\n header = \"\";\n littleEndian = true;\n elements: Record = {};\n comments: string[] = [];\n data: DataView | null = null;\n static defaultPointScale = 0.001;\n\n numSplats = 0;\n\n // Create a PlyReader from a Uint8Array/ArrayBuffer, no parsing done yet\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n }\n\n // Identify and parse the PLY text header (assumed to be <64KB in size).\n // this.elements will contain all the elements in the file, typically\n // \"vertex\" contains the Gsplat data.\n async parseHeader() {\n const bufferStream = new ReadableStream({\n start: (\n controller: ReadableStreamController>,\n ) => {\n // Assume the header is less than 64KB\n controller.enqueue(this.fileBytes.slice(0, 65536));\n controller.close();\n },\n });\n const decoder = bufferStream\n .pipeThrough(new TextDecoderStream())\n .getReader();\n\n // Find the end of the text section of the PLY file\n this.header = \"\";\n const headerTerminator = \"end_header\\n\";\n while (true) {\n const { value, done } = await decoder.read();\n if (done) {\n throw new Error(\"Failed to read header\");\n }\n\n this.header += value as string;\n const endHeader = this.header.indexOf(headerTerminator);\n if (endHeader >= 0) {\n this.header = this.header.slice(0, endHeader + headerTerminator.length);\n break;\n }\n }\n // Partition the file into header and binary data\n const headerLen = new TextEncoder().encode(this.header).length;\n this.data = new DataView(this.fileBytes.buffer, headerLen);\n\n this.elements = {};\n let curElement: PlyElement | null = null;\n this.comments = [];\n\n this.header\n .trim()\n .split(\"\\n\")\n .forEach((line: string, lineIndex: number) => {\n const trimmedLine = line.trim();\n if (lineIndex === 0) {\n if (trimmedLine !== \"ply\") {\n throw new Error(\"Invalid PLY header\");\n }\n return;\n }\n if (trimmedLine.length === 0) {\n return; // Skip empty lines\n }\n\n const fields = trimmedLine.split(\" \");\n switch (fields[0]) {\n case \"format\":\n if (fields[1] === \"binary_little_endian\") {\n this.littleEndian = true;\n } else if (fields[1] === \"binary_big_endian\") {\n this.littleEndian = false;\n } else {\n // ascii formats not supported\n throw new Error(`Unsupported PLY format: ${fields[1]}`);\n }\n if (fields[2] !== \"1.0\") {\n throw new Error(`Unsupported PLY version: ${fields[2]}`);\n }\n break;\n case \"end_header\":\n break;\n case \"comment\":\n this.comments.push(trimmedLine.slice(\"comment \".length));\n break;\n case \"element\": {\n const name = fields[1];\n curElement = {\n name,\n count: Number.parseInt(fields[2]),\n properties: {},\n };\n this.elements[name] = curElement;\n break;\n }\n case \"property\":\n if (curElement == null) {\n throw new Error(\"Property must be inside an element\");\n }\n if (fields[1] === \"list\") {\n curElement.properties[fields[4]] = {\n isList: true,\n type: fields[3] as PlyPropertyType,\n countType: fields[2] as PlyPropertyType,\n };\n } else {\n curElement.properties[fields[2]] = {\n isList: false,\n type: fields[1] as PlyPropertyType,\n };\n }\n break;\n default:\n // console.warn(`Skipping unsupported PLY keyword: ${fields[0]}`);\n }\n });\n\n if (this.elements.vertex) {\n this.numSplats = this.elements.vertex.count;\n }\n }\n\n parseData(\n elementCallback: (\n element: PlyElement,\n ) =>\n | null\n | ((index: number, item: Record) => void),\n ) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No data to parse\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const item = createEmptyItem(properties);\n // Construct a parse function\n const parseFn = createParseFn(properties, this.littleEndian);\n\n // Parse all the items in the element\n const callback = elementCallback(element) ?? (() => {});\n for (let index = 0; index < count; index++) {\n offset = parseFn(data, offset, item);\n callback(index, item);\n }\n }\n }\n\n // Parse all the Gsplat data in the PLY file in go, invoking the given\n // callbacks for each Gsplat.\n parseSplats(splatCallback: SplatCallback, shCallback?: SplatShCallback) {\n if (this.elements.vertex == null) {\n throw new Error(\"No vertex element found\");\n }\n\n let isSuperSplat = false;\n const ssChunks: SSChunk[] = [];\n\n let numSh = 0;\n let sh1Props: number[] = [];\n let sh2Props: number[] = [];\n let sh3Props: number[] = [];\n let sh1: Float32Array | undefined = undefined;\n let sh2: Float32Array | undefined = undefined;\n let sh3: Float32Array | undefined = undefined;\n\n function prepareSh() {\n // Prepare SH coefficient names and arrays for numSh total SH levels\n const num_f_rest = NUM_SH_TO_NUM_F_REST[numSh];\n sh1Props = new Array(3)\n .fill(null)\n .flatMap((_, k) => [0, 1, 2].map((_, d) => k + (d * num_f_rest) / 3));\n sh2Props = new Array(5)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 3 + k + (d * num_f_rest) / 3),\n );\n sh3Props = new Array(7)\n .fill(null)\n .flatMap((_, k) =>\n [0, 1, 2].map((_, d) => 8 + k + (d * num_f_rest) / 3),\n );\n sh1 = numSh >= 1 ? new Float32Array(3 * 3) : undefined;\n sh2 = numSh >= 2 ? new Float32Array(5 * 3) : undefined;\n sh3 = numSh >= 3 ? new Float32Array(7 * 3) : undefined;\n }\n\n function ssShCallback(\n index: number,\n item: Record,\n ) {\n // Decode SH for SuperSplat compressed data\n if (!sh1) {\n throw new Error(\"Missing sh1\");\n }\n const sh = item.f_rest as number[];\n\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = (sh[sh1Props[i]] * 8) / 255 - 4;\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = (sh[sh2Props[i]] * 8) / 255 - 4;\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = (sh[sh3Props[i]] * 8) / 255 - 4;\n }\n }\n shCallback?.(index, sh1, sh2, sh3);\n }\n\n function initSuperSplat(element: PlyElement) {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n } = element.properties;\n if (\n !min_x ||\n !min_y ||\n !min_z ||\n !max_x ||\n !max_y ||\n !max_z ||\n !min_scale_x ||\n !min_scale_y ||\n !min_scale_z ||\n !max_scale_x ||\n !max_scale_y ||\n !max_scale_z\n ) {\n throw new Error(\"Missing PLY chunk properties\");\n }\n\n // SuperSplat chunks are used to quantize splat data, so we need to store them\n isSuperSplat = true;\n return (index: number, item: Record) => {\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = item as Record;\n ssChunks.push({\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n });\n };\n }\n\n function decodeSuperSplat(element: PlyElement) {\n // Decode SuperSplat compressed data in vertex and sh elements\n if (shCallback && element.name === \"sh\") {\n numSh = getNumSh(element.properties);\n prepareSh();\n return ssShCallback;\n }\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n element.properties;\n if (\n !packed_position ||\n !packed_rotation ||\n !packed_scale ||\n !packed_color\n ) {\n throw new Error(\n \"Missing PLY properties: packed_position, packed_rotation, packed_scale, packed_color\",\n );\n }\n\n const SQRT2 = Math.sqrt(2);\n\n return (index: number, item: Record) => {\n // SuperSplat data are quantized within chunks with 256 Gsplats each\n const chunk = ssChunks[index >>> 8];\n if (chunk == null) {\n throw new Error(\"Missing PLY chunk\");\n }\n const {\n min_x,\n min_y,\n min_z,\n max_x,\n max_y,\n max_z,\n min_scale_x,\n min_scale_y,\n min_scale_z,\n max_scale_x,\n max_scale_y,\n max_scale_z,\n min_r,\n min_g,\n min_b,\n max_r,\n max_g,\n max_b,\n } = chunk;\n const { packed_position, packed_rotation, packed_scale, packed_color } =\n item as Record;\n\n const x =\n (((packed_position >>> 21) & 2047) / 2047) * (max_x - min_x) + min_x;\n const y =\n (((packed_position >>> 11) & 1023) / 1023) * (max_y - min_y) + min_y;\n const z = ((packed_position & 2047) / 2047) * (max_z - min_z) + min_z;\n\n const r0 = (((packed_rotation >>> 20) & 1023) / 1023 - 0.5) * SQRT2;\n const r1 = (((packed_rotation >>> 10) & 1023) / 1023 - 0.5) * SQRT2;\n const r2 = ((packed_rotation & 1023) / 1023 - 0.5) * SQRT2;\n const rr = Math.sqrt(Math.max(0, 1.0 - r0 * r0 - r1 * r1 - r2 * r2));\n\n const rOrder = packed_rotation >>> 30;\n const quatX = rOrder === 0 ? r0 : rOrder === 1 ? rr : r1;\n const quatY = rOrder <= 1 ? r1 : rOrder === 2 ? rr : r2;\n const quatZ = rOrder <= 2 ? r2 : rr;\n const quatW = rOrder === 0 ? rr : r0;\n\n const scaleX = Math.exp(\n (((packed_scale >>> 21) & 2047) / 2047) *\n (max_scale_x - min_scale_x) +\n min_scale_x,\n );\n const scaleY = Math.exp(\n (((packed_scale >>> 11) & 1023) / 1023) *\n (max_scale_y - min_scale_y) +\n min_scale_y,\n );\n const scaleZ = Math.exp(\n ((packed_scale & 2047) / 2047) * (max_scale_z - min_scale_z) +\n min_scale_z,\n );\n\n const r =\n (((packed_color >>> 24) & 255) / 255) *\n ((max_r ?? 1) - (min_r ?? 0)) +\n (min_r ?? 0);\n const g =\n (((packed_color >>> 16) & 255) / 255) *\n ((max_g ?? 1) - (min_g ?? 0)) +\n (min_g ?? 0);\n const b =\n (((packed_color >>> 8) & 255) / 255) * ((max_b ?? 1) - (min_b ?? 0)) +\n (min_b ?? 0);\n const opacity = (packed_color & 255) / 255;\n\n splatCallback(\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n };\n }\n\n const elementCallback = (element: PlyElement) => {\n if (element.name === \"chunk\") {\n // \"chunk\" could conceivably be used for other formats, and we would\n // ideally check for the comment: Generated by SuperSplat 2.*\n // but gsplat also outputs this format without such a comment.\n // In order to support both, let's assume a \"chunk\" element should\n // be interpreted as this format.\n return initSuperSplat(element);\n }\n if (isSuperSplat) {\n return decodeSuperSplat(element);\n }\n\n if (element.name !== \"vertex\") {\n return null;\n }\n\n const {\n x,\n y,\n z,\n scale_0,\n scale_1,\n scale_2,\n rot_0,\n rot_1,\n rot_2,\n rot_3,\n opacity,\n f_dc_0,\n f_dc_1,\n f_dc_2,\n red,\n green,\n blue,\n alpha,\n } = element.properties;\n\n if (!x || !y || !z) {\n throw new Error(\"Missing PLY properties: x, y, z\");\n }\n // Pure point cloud PLY files have no scales or rotations\n const hasScales = scale_0 && scale_1 && scale_2;\n const hasRots = rot_0 && rot_1 && rot_2 && rot_3;\n // Quantization scale factor for argb values\n const alphaDiv = alpha != null ? FIELD_SCALE[alpha.type] : 1;\n const redDiv = red != null ? FIELD_SCALE[red.type] : 1;\n const greenDiv = green != null ? FIELD_SCALE[green.type] : 1;\n const blueDiv = blue != null ? FIELD_SCALE[blue.type] : 1;\n\n numSh = getNumSh(element.properties);\n prepareSh();\n\n return (index: number, item: Record) => {\n const scaleX = hasScales\n ? Math.exp(item.scale_0 as number)\n : PlyReader.defaultPointScale;\n const scaleY = hasScales\n ? Math.exp(item.scale_1 as number)\n : PlyReader.defaultPointScale;\n const scaleZ = hasScales\n ? Math.exp(item.scale_2 as number)\n : PlyReader.defaultPointScale;\n\n const quatX = hasRots ? (item.rot_1 as number) : 0;\n const quatY = hasRots ? (item.rot_2 as number) : 0;\n const quatZ = hasRots ? (item.rot_3 as number) : 0;\n const quatW = hasRots ? (item.rot_0 as number) : 1;\n\n const op =\n opacity != null\n ? 1.0 / (1.0 + Math.exp(-item.opacity as number))\n : alpha != null\n ? (item.alpha as number) / alphaDiv\n : 1.0;\n const r =\n f_dc_0 != null\n ? (item.f_dc_0 as number) * SH_C0 + 0.5\n : red != null\n ? (item.red as number) / redDiv\n : 1.0;\n const g =\n f_dc_1 != null\n ? (item.f_dc_1 as number) * SH_C0 + 0.5\n : green != null\n ? (item.green as number) / greenDiv\n : 1.0;\n const b =\n f_dc_2 != null\n ? (item.f_dc_2 as number) * SH_C0 + 0.5\n : blue != null\n ? (item.blue as number) / blueDiv\n : 1.0;\n\n splatCallback(\n index,\n item.x as number,\n item.y as number,\n item.z as number,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n op,\n r,\n g,\n b,\n );\n\n if (shCallback && sh1) {\n const sh = item.f_rest as number[];\n if (sh1) {\n for (let i = 0; i < sh1Props.length; i++) {\n sh1[i] = sh[sh1Props[i]];\n }\n }\n if (sh2) {\n for (let i = 0; i < sh2Props.length; i++) {\n sh2[i] = sh[sh2Props[i]];\n }\n }\n if (sh3) {\n for (let i = 0; i < sh3Props.length; i++) {\n sh3[i] = sh[sh3Props[i]];\n }\n }\n shCallback(index, sh1, sh2, sh3);\n }\n };\n };\n\n this.parseData(elementCallback);\n }\n\n // Inject RGBA values into original PLY file, which can be used to modify\n // the color/opacity of the Gsplats and write out the modified PLY file.\n injectRgba(rgba: Uint8Array) {\n // Go through the entire binary data of the PLY file, starting at offset 0\n let offset = 0;\n const data = this.data;\n if (data == null) {\n throw new Error(\"No parsed data\");\n }\n if (rgba.length !== this.numSplats * 4) {\n throw new Error(\"Invalid RGBA array length\");\n }\n\n for (const elementName in this.elements) {\n const element = this.elements[elementName];\n const { count, properties } = element;\n const parsers = [];\n\n let rgbaOffset = 0;\n const isVertex = elementName === \"vertex\";\n if (isVertex) {\n for (const name of [\"opacity\", \"f_dc_0\", \"f_dc_1\", \"f_dc_2\"]) {\n if (!properties[name] || properties[name].type !== \"float\") {\n throw new Error(`Can't injectRgba due to property: ${name}`);\n }\n }\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!property.isList) {\n if (isVertex) {\n if (\n propertyName === \"f_dc_0\" ||\n propertyName === \"f_dc_1\" ||\n propertyName === \"f_dc_2\"\n ) {\n const component = Number.parseInt(\n propertyName.slice(\"f_dc_\".length),\n );\n parsers.push(() => {\n // Inject DC coefficients\n const value =\n (rgba[rgbaOffset + component] / 255 - 0.5) / SH_C0;\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n } else if (propertyName === \"opacity\") {\n parsers.push(() => {\n // Inject opacity sigmoid, clamped to [-100, 100]\n const value = Math.max(\n -100,\n Math.min(\n 100,\n -Math.log(1.0 / (rgba[rgbaOffset + 3] / 255) - 1.0),\n ),\n );\n SET_FIELD[property.type](\n data,\n offset,\n this.littleEndian,\n value,\n );\n });\n }\n }\n parsers.push(() => {\n offset += FIELD_BYTES[property.type];\n });\n } else {\n parsers.push(() => {\n const length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n this.littleEndian,\n );\n offset += FIELD_BYTES[property.countType as PlyPropertyType];\n offset += length * FIELD_BYTES[property.type];\n });\n }\n }\n\n for (let index = 0; index < count; index++) {\n // Go through all the data and field parsers to compute offset\n for (const parser of parsers) {\n parser();\n }\n if (isVertex) {\n rgbaOffset += 4;\n }\n }\n }\n }\n}\n\nexport const SH_C0 = 0.28209479177387814;\n\ntype FieldParser = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n) => number;\ntype FieldSetter = (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n) => void;\n\nconst PARSE_FIELD: Record = {\n char: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt8(offset);\n },\n uchar: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint8(offset);\n },\n short: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt16(offset, littleEndian);\n },\n ushort: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint16(offset, littleEndian);\n },\n int: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getInt32(offset, littleEndian);\n },\n uint: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getUint32(offset, littleEndian);\n },\n float: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat32(offset, littleEndian);\n },\n double: (data: DataView, offset: number, littleEndian: boolean) => {\n return data.getFloat64(offset, littleEndian);\n },\n};\n\nconst SET_FIELD: Record = {\n char: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt8(offset, value);\n },\n uchar: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint8(offset, value);\n },\n short: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt16(offset, value, littleEndian);\n },\n ushort: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint16(offset, value, littleEndian);\n },\n int: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setInt32(offset, value, littleEndian);\n },\n uint: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setUint32(offset, value, littleEndian);\n },\n float: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat32(offset, value, littleEndian);\n },\n double: (\n data: DataView,\n offset: number,\n littleEndian: boolean,\n value: number,\n ) => {\n data.setFloat64(offset, value, littleEndian);\n },\n};\n\nconst FIELD_BYTES: Record = {\n char: 1,\n uchar: 1,\n short: 2,\n ushort: 2,\n int: 4,\n uint: 4,\n float: 4,\n double: 8,\n};\n\nconst FIELD_SCALE: Record = {\n char: 127,\n uchar: 255,\n short: 32767,\n ushort: 65535,\n int: 2147483647,\n uint: 4294967295,\n float: 1,\n double: 1,\n};\n\nconst NUM_F_REST_TO_NUM_SH: Record = {\n 0: 0,\n 9: 1,\n 24: 2,\n 45: 3,\n};\nconst NUM_SH_TO_NUM_F_REST: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nconst F_REST_REGEX = /^f_rest_([0-9]{1,2})$/;\n\nfunction createEmptyItem(\n properties: Record,\n): Record {\n const item: Record = {};\n for (const [propertyName, property] of Object.entries(properties)) {\n // Treat f_rest properties as a single array for performance\n if (F_REST_REGEX.test(propertyName)) {\n item.f_rest = new Array(getNumSh(properties));\n } else {\n item[propertyName] = property.isList ? [] : 0;\n }\n }\n return item;\n}\n\nfunction createParseFn(\n properties: Record,\n littleEndian: boolean,\n) {\n if (USE_COMPILED_PARSER_FUNCTION && safeToCompile(properties)) {\n return createCompiledParserFn(properties, littleEndian);\n }\n return createDynamicParserFn(properties, littleEndian);\n}\n\n// Detect if unsafe eval is allowed in the current execution context\nconst UNSAFE_EVAL_ALLOWED = (() => {\n try {\n new Function(\"return 42;\");\n } catch (e) {\n return false;\n }\n return true;\n})();\nconst PROPERTY_NAME_REGEX = /^[a-zA-Z0-9_]+$/;\n\nfunction safeToCompile(properties: Record) {\n if (!UNSAFE_EVAL_ALLOWED) {\n return false;\n }\n\n for (const [propertyName, property] of Object.entries(properties)) {\n if (!PROPERTY_NAME_REGEX.test(propertyName)) {\n return false;\n }\n\n if (\n property.isList &&\n !PLY_PROPERTY_TYPES.includes(property.countType as PlyPropertyType)\n ) {\n return false;\n }\n\n if (!PLY_PROPERTY_TYPES.includes(property.type)) {\n return false;\n }\n }\n return true;\n}\n\nfunction createCompiledParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct the parser function source.\n const parserSrc: string[] = [\"let list;\"];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parserSrc.push(/*js*/ `\n item.f_rest[${fRestIndex}] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else if (!property.isList) {\n parserSrc.push(/*js*/ `\n item['${propertyName}'] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n `);\n } else {\n // Property is a list, so parse the count first\n parserSrc.push(/*js*/ `\n list = item['${propertyName}'];\n list.length = PARSE_FIELD['${property.countType}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.countType as PlyPropertyType]};\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD['${property.type}'](data, offset, ${littleEndian});\n offset += ${FIELD_BYTES[property.type]};\n }\n `);\n }\n }\n parserSrc.push(\"return offset;\");\n\n const fn = new Function(\n \"data\",\n \"offset\",\n \"item\",\n \"PARSE_FIELD\",\n parserSrc.join(\"\\n\"),\n );\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => fn(data, offset, item, PARSE_FIELD);\n}\n\nfunction createDynamicParserFn(\n properties: Record,\n littleEndian: boolean,\n) {\n // Construct an array of parser function to parse each property in an item\n const parsers: Array<\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => number\n > = [];\n for (const [propertyName, property] of Object.entries(properties)) {\n const fRestMatch = propertyName.match(F_REST_REGEX);\n if (fRestMatch) {\n const fRestIndex = +fRestMatch[1];\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n (item.f_rest as number[])[fRestIndex] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else if (!property.isList) {\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n item[propertyName] = PARSE_FIELD[property.type](\n data,\n offset,\n littleEndian,\n );\n return offset + FIELD_BYTES[property.type];\n },\n );\n } else {\n // Property is a list, so parse the count first\n parsers.push(\n (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n const list = item[propertyName] as number[];\n list.length = PARSE_FIELD[property.countType as PlyPropertyType](\n data,\n offset,\n littleEndian,\n );\n let currentOffset =\n offset + FIELD_BYTES[property.countType as PlyPropertyType];\n for (let i = 0; i < list.length; i++) {\n list[i] = PARSE_FIELD[property.type](\n data,\n currentOffset,\n littleEndian,\n );\n currentOffset += FIELD_BYTES[property.type];\n }\n return currentOffset;\n },\n );\n }\n }\n\n return (\n data: DataView,\n offset: number,\n item: Record,\n ) => {\n let currentOffset = offset;\n for (let parserIndex = 0; parserIndex < parsers.length; parserIndex++) {\n currentOffset = parsers[parserIndex](data, currentOffset, item);\n }\n return currentOffset;\n };\n}\n\nfunction getNumSh(properties: Record) {\n let num_f_rest = 0;\n while (properties[`f_rest_${num_f_rest}`]) {\n num_f_rest += 1;\n }\n const numSh = NUM_F_REST_TO_NUM_SH[num_f_rest];\n if (numSh == null) {\n throw new Error(`Unsupported number of SH coefficients: ${num_f_rest}`);\n }\n return numSh;\n}\n\ntype SSChunk = {\n min_x: number;\n min_y: number;\n min_z: number;\n max_x: number;\n max_y: number;\n max_z: number;\n min_scale_x: number;\n min_scale_y: number;\n min_scale_z: number;\n max_scale_x: number;\n max_scale_y: number;\n max_scale_z: number;\n min_r?: number;\n min_g?: number;\n min_b?: number;\n max_r?: number;\n max_g?: number;\n max_b?: number;\n};\n","import type { SplatEncoding } from \"./defines\";\nimport { computeMaxSplats, setPackedSplat } from \"./utils\";\n\nexport function decodeAntiSplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n) {\n const numSplats = Math.floor(fileBytes.length / 32); // 32 bytes per splat\n if (numSplats * 32 !== fileBytes.length) {\n throw new Error(\"Invalid .splat file size\");\n }\n initNumSplats(numSplats);\n\n const f32 = new Float32Array(fileBytes.buffer);\n for (let i = 0; i < numSplats; ++i) {\n const i32 = i * 32;\n const i8 = i * 8;\n const x = f32[i8 + 0];\n const y = f32[i8 + 1];\n const z = f32[i8 + 2];\n const scaleX = f32[i8 + 3];\n const scaleY = f32[i8 + 4];\n const scaleZ = f32[i8 + 5];\n const r = fileBytes[i32 + 24] / 255;\n const g = fileBytes[i32 + 25] / 255;\n const b = fileBytes[i32 + 26] / 255;\n const opacity = fileBytes[i32 + 27] / 255;\n const quatW = (fileBytes[i32 + 28] - 128) / 128;\n const quatX = (fileBytes[i32 + 29] - 128) / 128;\n const quatY = (fileBytes[i32 + 30] - 128) / 128;\n const quatZ = (fileBytes[i32 + 31] - 128) / 128;\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n }\n}\n\nexport function unpackAntiSplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n} {\n let numSplats = 0;\n let maxSplats = 0;\n let packedArray = new Uint32Array(0);\n decodeAntiSplat(\n fileBytes,\n (cbNumSplats) => {\n numSplats = cbNumSplats;\n maxSplats = computeMaxSplats(numSplats);\n packedArray = new Uint32Array(maxSplats * 4);\n },\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n setPackedSplat(\n packedArray,\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n },\n );\n return { packedArray, numSplats };\n}\n","import type { SplatEncoding } from \"./defines\";\nimport {\n computeMaxSplats,\n encodeSh1Rgb,\n encodeSh2Rgb,\n encodeSh3Rgb,\n fromHalf,\n setPackedSplat,\n} from \"./utils\";\n\ntype KsplatCompression = {\n bytesPerCenter: number;\n bytesPerScale: number;\n bytesPerRotation: number;\n bytesPerColor: number;\n bytesPerSphericalHarmonicsComponent: number;\n scaleOffsetBytes: number;\n rotationOffsetBytes: number;\n colorOffsetBytes: number;\n sphericalHarmonicsOffsetBytes: number;\n scaleRange: number;\n};\n\nconst KSPLAT_COMPRESSION: Record = {\n 0: {\n bytesPerCenter: 12,\n bytesPerScale: 12,\n bytesPerRotation: 16,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 4,\n scaleOffsetBytes: 12,\n rotationOffsetBytes: 24,\n colorOffsetBytes: 40,\n sphericalHarmonicsOffsetBytes: 44,\n scaleRange: 1,\n },\n 1: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 2,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n 2: {\n bytesPerCenter: 6,\n bytesPerScale: 6,\n bytesPerRotation: 8,\n bytesPerColor: 4,\n bytesPerSphericalHarmonicsComponent: 1,\n scaleOffsetBytes: 6,\n rotationOffsetBytes: 12,\n colorOffsetBytes: 20,\n sphericalHarmonicsOffsetBytes: 24,\n scaleRange: 32767,\n },\n};\n\nconst KSPLAT_SH_DEGREE_TO_COMPONENTS: Record = {\n 0: 0,\n 1: 9,\n 2: 24,\n 3: 45,\n};\n\nexport function decodeKsplat(\n fileBytes: Uint8Array,\n initNumSplats: (numSplats: number) => void,\n splatCallback: (\n index: number,\n x: number,\n y: number,\n z: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n opacity: number,\n r: number,\n g: number,\n b: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n) {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n initNumSplats(numSplats);\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n splatCallback(\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n );\n\n if (sphericalHarmonicsDegree >= 1 && sh1) {\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n if (sh2) {\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n }\n if (sh3) {\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n sectionBase += storageSizeBytes;\n }\n}\n\nexport function unpackKsplat(\n fileBytes: Uint8Array,\n splatEncoding: SplatEncoding,\n): {\n packedArray: Uint32Array;\n numSplats: number;\n extra: Record;\n} {\n const HEADER_BYTES = 4096;\n const SECTION_BYTES = 1024;\n\n let headerOffset = 0;\n const header = new DataView(fileBytes.buffer, headerOffset, HEADER_BYTES);\n headerOffset += HEADER_BYTES;\n\n const versionMajor = header.getUint8(0);\n const versionMinor = header.getUint8(1);\n if (versionMajor !== 0 || versionMinor < 1) {\n throw new Error(\n `Unsupported .ksplat version: ${versionMajor}.${versionMinor}`,\n );\n }\n const maxSectionCount = header.getUint32(4, true);\n // const sectionCount = header.getUint32(8, true);\n // const maxSplatCount = header.getUint32(12, true);\n const splatCount = header.getUint32(16, true);\n const compressionLevel = header.getUint16(20, true);\n if (compressionLevel < 0 || compressionLevel > 2) {\n throw new Error(`Invalid .ksplat compression level: ${compressionLevel}`);\n }\n // const sceneCenterX = header.getFloat32(24, true);\n // const sceneCenterY = header.getFloat32(28, true);\n // const sceneCenterZ = header.getFloat32(32, true);\n const minSphericalHarmonicsCoeff = header.getFloat32(36, true) || -1.5;\n const maxSphericalHarmonicsCoeff = header.getFloat32(40, true) || 1.5;\n\n const numSplats = splatCount;\n const maxSplats = computeMaxSplats(numSplats);\n const packedArray = new Uint32Array(maxSplats * 4);\n const extra: Record = {};\n\n let sectionBase = HEADER_BYTES + maxSectionCount * SECTION_BYTES;\n\n for (let section = 0; section < maxSectionCount; ++section) {\n const section = new DataView(fileBytes.buffer, headerOffset, SECTION_BYTES);\n headerOffset += SECTION_BYTES;\n\n const sectionSplatCount = section.getUint32(0, true);\n const sectionMaxSplatCount = section.getUint32(4, true);\n const bucketSize = section.getUint32(8, true);\n const bucketCount = section.getUint32(12, true);\n const bucketBlockSize = section.getFloat32(16, true);\n const bucketStorageSizeBytes = section.getUint16(20, true);\n const compressionScaleRange =\n (section.getUint32(24, true) ||\n KSPLAT_COMPRESSION[compressionLevel]?.scaleRange) ??\n 1;\n const fullBucketCount = section.getUint32(32, true);\n const fullBucketSplats = fullBucketCount * bucketSize;\n const partiallyFilledBucketCount = section.getUint32(36, true);\n const bucketsMetaDataSizeBytes = partiallyFilledBucketCount * 4;\n const bucketsStorageSizeBytes =\n bucketStorageSizeBytes * bucketCount + bucketsMetaDataSizeBytes;\n const sphericalHarmonicsDegree = section.getUint16(40, true);\n const shComponents =\n KSPLAT_SH_DEGREE_TO_COMPONENTS[sphericalHarmonicsDegree];\n\n const {\n bytesPerCenter,\n bytesPerScale,\n bytesPerRotation,\n bytesPerColor,\n bytesPerSphericalHarmonicsComponent,\n scaleOffsetBytes,\n rotationOffsetBytes,\n colorOffsetBytes,\n sphericalHarmonicsOffsetBytes,\n } = KSPLAT_COMPRESSION[compressionLevel];\n const bytesPerSplat =\n bytesPerCenter +\n bytesPerScale +\n bytesPerRotation +\n bytesPerColor +\n shComponents * bytesPerSphericalHarmonicsComponent;\n const splatDataStorageSizeBytes = bytesPerSplat * sectionMaxSplatCount;\n const storageSizeBytes =\n splatDataStorageSizeBytes + bucketsStorageSizeBytes;\n\n const sh1Index = [0, 3, 6, 1, 4, 7, 2, 5, 8];\n const sh2Index = [\n 9, 14, 19, 10, 15, 20, 11, 16, 21, 12, 17, 22, 13, 18, 23,\n ];\n const sh3Index = [\n 24, 31, 38, 25, 32, 39, 26, 33, 40, 27, 34, 41, 28, 35, 42, 29, 36, 43,\n 30, 37, 44,\n ];\n const sh1 =\n sphericalHarmonicsDegree >= 1 ? new Float32Array(3 * 3) : undefined;\n const sh2 =\n sphericalHarmonicsDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 =\n sphericalHarmonicsDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n\n const compressionScaleFactor = bucketBlockSize / 2 / compressionScaleRange;\n const bucketsBase = sectionBase + bucketsMetaDataSizeBytes;\n const dataBase = sectionBase + bucketsStorageSizeBytes;\n const data = new DataView(\n fileBytes.buffer,\n dataBase,\n splatDataStorageSizeBytes,\n );\n const bucketArray = new Float32Array(\n fileBytes.buffer,\n bucketsBase,\n bucketCount * 3,\n );\n const partiallyFilledBucketLengths = new Uint32Array(\n fileBytes.buffer,\n sectionBase,\n partiallyFilledBucketCount,\n );\n\n function getSh(splatOffset: number, component: number) {\n if (compressionLevel === 0) {\n return data.getFloat32(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 4,\n true,\n );\n }\n if (compressionLevel === 1) {\n return fromHalf(\n data.getUint16(\n splatOffset + sphericalHarmonicsOffsetBytes + component * 2,\n true,\n ),\n );\n }\n const t =\n data.getUint8(splatOffset + sphericalHarmonicsOffsetBytes + component) /\n 255;\n return (\n minSphericalHarmonicsCoeff +\n t * (maxSphericalHarmonicsCoeff - minSphericalHarmonicsCoeff)\n );\n }\n\n let partialBucketIndex = fullBucketCount;\n let partialBucketBase = fullBucketSplats;\n\n for (let i = 0; i < sectionSplatCount; ++i) {\n const splatOffset = i * bytesPerSplat;\n\n let bucketIndex: number;\n if (i < fullBucketSplats) {\n bucketIndex = Math.floor(i / bucketSize);\n } else {\n const bucketLength =\n partiallyFilledBucketLengths[partialBucketIndex - fullBucketCount];\n if (i >= partialBucketBase + bucketLength) {\n partialBucketIndex += 1;\n partialBucketBase += bucketLength;\n }\n bucketIndex = partialBucketIndex;\n }\n\n const x =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 0, true)\n : (data.getUint16(splatOffset + 0, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 0];\n const y =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 4, true)\n : (data.getUint16(splatOffset + 2, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 1];\n const z =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + 8, true)\n : (data.getUint16(splatOffset + 4, true) - compressionScaleRange) *\n compressionScaleFactor +\n bucketArray[3 * bucketIndex + 2];\n\n const scaleX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 0, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 0, true));\n const scaleY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 4, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 2, true));\n const scaleZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + scaleOffsetBytes + 8, true)\n : fromHalf(data.getUint16(splatOffset + scaleOffsetBytes + 4, true));\n\n const quatW =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 0, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 0, true),\n );\n const quatX =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 4, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 2, true),\n );\n const quatY =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 8, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 4, true),\n );\n const quatZ =\n compressionLevel === 0\n ? data.getFloat32(splatOffset + rotationOffsetBytes + 12, true)\n : fromHalf(\n data.getUint16(splatOffset + rotationOffsetBytes + 6, true),\n );\n\n const r = data.getUint8(splatOffset + colorOffsetBytes + 0) / 255;\n const g = data.getUint8(splatOffset + colorOffsetBytes + 1) / 255;\n const b = data.getUint8(splatOffset + colorOffsetBytes + 2) / 255;\n const opacity = data.getUint8(splatOffset + colorOffsetBytes + 3) / 255;\n\n setPackedSplat(\n packedArray,\n i,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n splatEncoding,\n );\n\n if (sphericalHarmonicsDegree >= 1) {\n if (sh1) {\n if (!extra.sh1) {\n extra.sh1 = new Uint32Array(numSplats * 2);\n }\n for (const [i, key] of sh1Index.entries()) {\n sh1[i] = getSh(splatOffset, key);\n }\n encodeSh1Rgb(extra.sh1 as Uint32Array, i, sh1, splatEncoding);\n }\n if (sh2) {\n if (!extra.sh2) {\n extra.sh2 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh2Index.entries()) {\n sh2[i] = getSh(splatOffset, key);\n }\n encodeSh2Rgb(extra.sh2 as Uint32Array, i, sh2, splatEncoding);\n }\n if (sh3) {\n if (!extra.sh3) {\n extra.sh3 = new Uint32Array(numSplats * 4);\n }\n for (const [i, key] of sh3Index.entries()) {\n sh3[i] = getSh(splatOffset, key);\n }\n encodeSh3Rgb(extra.sh3 as Uint32Array, i, sh3, splatEncoding);\n }\n }\n }\n sectionBase += storageSizeBytes;\n }\n return { packedArray, numSplats, extra };\n}\n","import * as THREE from \"three\";\nimport {\n SplatData,\n type TranscodeSpzInput,\n getSplatFileType,\n getSplatFileTypeFromPath,\n} from \"./SplatLoader\";\nimport { GunzipReader, fromHalf, normalize } from \"./utils\";\n\nimport { decodeAntiSplat } from \"./antisplat\";\nimport { SplatFileType } from \"./defines\";\nimport { decodeKsplat } from \"./ksplat\";\nimport { PlyReader } from \"./ply\";\n\n// SPZ file format reader\n\nexport class SpzReader {\n fileBytes: Uint8Array;\n reader: GunzipReader;\n\n version = -1;\n numSplats = 0;\n shDegree = 0;\n fractionalBits = 0;\n flags = 0;\n flagAntiAlias = false;\n flagLod = false;\n reserved = 0;\n headerParsed = false;\n parsed = false;\n\n constructor({ fileBytes }: { fileBytes: Uint8Array | ArrayBuffer }) {\n this.fileBytes =\n fileBytes instanceof ArrayBuffer ? new Uint8Array(fileBytes) : fileBytes;\n this.reader = new GunzipReader({\n fileBytes: this.fileBytes as Uint8Array,\n });\n }\n\n async parseHeader() {\n if (this.headerParsed) {\n throw new Error(\"SPZ file header already parsed\");\n }\n\n const header = new DataView((await this.reader.read(16)).buffer);\n if (header.getUint32(0, true) !== 0x5053474e) {\n throw new Error(\"Invalid SPZ file\");\n }\n this.version = header.getUint32(4, true);\n if (this.version < 1 || this.version > 3) {\n throw new Error(`Unsupported SPZ version: ${this.version}`);\n }\n\n this.numSplats = header.getUint32(8, true);\n this.shDegree = header.getUint8(12);\n this.fractionalBits = header.getUint8(13);\n this.flags = header.getUint8(14);\n this.flagAntiAlias = (this.flags & 0x01) !== 0;\n this.flagLod = (this.flags & 0x80) !== 0;\n this.reserved = header.getUint8(15);\n this.headerParsed = true;\n this.parsed = false;\n }\n\n async parseSplats(\n centerCallback?: (index: number, x: number, y: number, z: number) => void,\n alphaCallback?: (index: number, alpha: number) => void,\n rgbCallback?: (index: number, r: number, g: number, b: number) => void,\n scalesCallback?: (\n index: number,\n scaleX: number,\n scaleY: number,\n scaleZ: number,\n ) => void,\n quatCallback?: (\n index: number,\n quatX: number,\n quatY: number,\n quatZ: number,\n quatW: number,\n ) => void,\n shCallback?: (\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) => void,\n {\n childCounts,\n childStarts,\n }: {\n childCounts?: (index: number, count: number) => void;\n childStarts?: (index: number, start: number) => void;\n } = {},\n ) {\n if (!this.headerParsed) {\n throw new Error(\"SPZ file header must be parsed first\");\n }\n if (this.parsed) {\n throw new Error(\"SPZ file already parsed\");\n }\n this.parsed = true;\n\n if (this.version === 1) {\n // float16 centers\n const centerBytes = await this.reader.read(this.numSplats * 3 * 2);\n const centerUint16 = new Uint16Array(centerBytes.buffer);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const x = fromHalf(centerUint16[i3]);\n const y = fromHalf(centerUint16[i3 + 1]);\n const z = fromHalf(centerUint16[i3 + 2]);\n centerCallback?.(i, x, y, z);\n }\n } else if (this.version === 2 || this.version === 3) {\n // 24-bit fixed-point centers\n const fixed = 1 << this.fractionalBits;\n const centerBytes = await this.reader.read(this.numSplats * 3 * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i9 = i * 9;\n const x =\n (((centerBytes[i9 + 2] << 24) |\n (centerBytes[i9 + 1] << 16) |\n (centerBytes[i9] << 8)) >>\n 8) /\n fixed;\n const y =\n (((centerBytes[i9 + 5] << 24) |\n (centerBytes[i9 + 4] << 16) |\n (centerBytes[i9 + 3] << 8)) >>\n 8) /\n fixed;\n const z =\n (((centerBytes[i9 + 8] << 24) |\n (centerBytes[i9 + 7] << 16) |\n (centerBytes[i9 + 6] << 8)) >>\n 8) /\n fixed;\n centerCallback?.(i, x, y, z);\n }\n } else {\n throw new Error(\"Unreachable\");\n }\n\n {\n const bytes = await this.reader.read(this.numSplats);\n for (let i = 0; i < this.numSplats; i++) {\n alphaCallback?.(i, bytes[i] / 255);\n }\n }\n {\n const rgbBytes = await this.reader.read(this.numSplats * 3);\n const scale = SH_C0 / 0.15;\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const r = (rgbBytes[i3] / 255 - 0.5) * scale + 0.5;\n const g = (rgbBytes[i3 + 1] / 255 - 0.5) * scale + 0.5;\n const b = (rgbBytes[i3 + 2] / 255 - 0.5) * scale + 0.5;\n rgbCallback?.(i, r, g, b);\n }\n }\n {\n const scalesBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const scaleX = Math.exp(scalesBytes[i3] / 16 - 10);\n const scaleY = Math.exp(scalesBytes[i3 + 1] / 16 - 10);\n const scaleZ = Math.exp(scalesBytes[i3 + 2] / 16 - 10);\n scalesCallback?.(i, scaleX, scaleY, scaleZ);\n }\n }\n if (this.version === 3) {\n // Version 3 uses a trick called \"smallest three\" to compress the rotation quaternions\n // achieving better precision. \"Optimizing orientation\" section at https://gafferongames.com/post/snapshot_compression/ A quaternion length must be 1: x^2+y^2+z^2+w^2 = 1\n // We can drop one component and reconstruct it with the identity above.\n // Largest component is dropped for best numerical precision.\n // Quaternion stored in 32 bits\n // 10 bits singed integer for each of the 3 components + 2 bits indicating the index of dropped component.\n // vs 8 bits for each component uncompressed (spz version < 3)\n // Max Value after extracting largest component v is another component v\n // (v,v,0,0)\n // v^2 + v^2 = 1\n // v = 1 / sqrt(2);\n const maxValue = 1 / Math.sqrt(2); // 0.7071\n const quatBytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 4;\n const quaternion = [0, 0, 0, 0];\n const values = [\n quatBytes[i3],\n quatBytes[i3 + 1],\n quatBytes[i3 + 2],\n quatBytes[i3 + 3],\n ];\n // all values are packed in 32 bits (10 per each of 3 components + 2 bits of index of larged value)\n const combinedValues =\n values[0] + (values[1] << 8) + (values[2] << 16) + (values[3] << 24);\n // each component value is 9 bits + sign (1 bit)\n const valueMask = (1 << 9) - 1;\n // extract index of the largest element. 2 top bits.\n const largestIndex = combinedValues >>> 30;\n let remainingValues = combinedValues;\n let sumSquares = 0;\n\n for (let i = 3; i >= 0; --i) {\n if (i !== largestIndex) {\n // extract current value and sign.\n const value = remainingValues & valueMask;\n const sign = (remainingValues >>> 9) & 0x1;\n // each value is represented as 10 bits. Shift to next one.\n remainingValues = remainingValues >>> 10;\n // convert to range [0,1] and then to [0, 0.7071]\n quaternion[i] = maxValue * (value / valueMask);\n // apply sign.\n quaternion[i] = sign === 0 ? quaternion[i] : -quaternion[i];\n // accumulate the sum of squares\n sumSquares += quaternion[i] * quaternion[i];\n }\n }\n\n // quartenion length must be 1 (x^2+y^2+z^2+w^2 = 1)\n // so can reconstruct largest component from the other 3.\n // w = sqrt(1 - x^2 - y^2 - z^2);\n const square = 1 - sumSquares;\n quaternion[largestIndex] = Math.sqrt(Math.max(square, 0));\n\n quatCallback?.(\n i,\n quaternion[0],\n quaternion[1],\n quaternion[2],\n quaternion[3],\n );\n }\n } else {\n const quatBytes = await this.reader.read(this.numSplats * 3);\n for (let i = 0; i < this.numSplats; i++) {\n const i3 = i * 3;\n const quatX = quatBytes[i3] / 127.5 - 1;\n const quatY = quatBytes[i3 + 1] / 127.5 - 1;\n const quatZ = quatBytes[i3 + 2] / 127.5 - 1;\n const quatW = Math.sqrt(\n Math.max(0, 1 - quatX * quatX - quatY * quatY - quatZ * quatZ),\n );\n quatCallback?.(i, quatX, quatY, quatZ, quatW);\n }\n }\n\n if (shCallback && this.shDegree >= 1) {\n const sh1 = new Float32Array(3 * 3);\n const sh2 = this.shDegree >= 2 ? new Float32Array(5 * 3) : undefined;\n const sh3 = this.shDegree >= 3 ? new Float32Array(7 * 3) : undefined;\n const shBytes = await this.reader.read(\n this.numSplats * SH_DEGREE_TO_VECS[this.shDegree] * 3,\n );\n\n let offset = 0;\n for (let i = 0; i < this.numSplats; i++) {\n for (let j = 0; j < 9; ++j) {\n sh1[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 9;\n if (sh2) {\n for (let j = 0; j < 15; ++j) {\n sh2[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 15;\n }\n if (sh3) {\n for (let j = 0; j < 21; ++j) {\n sh3[j] = (shBytes[offset + j] - 128) / 128;\n }\n offset += 21;\n }\n shCallback?.(i, sh1, sh2, sh3);\n }\n }\n if (this.flagLod) {\n let bytes = await this.reader.read(this.numSplats * 2);\n for (let i = 0; i < this.numSplats; i++) {\n const i2 = i * 2;\n const count = bytes[i2] + (bytes[i2 + 1] << 8);\n childCounts?.(i, count);\n }\n\n bytes = await this.reader.read(this.numSplats * 4);\n for (let i = 0; i < this.numSplats; i++) {\n const i4 = i * 4;\n const start =\n bytes[i4] +\n (bytes[i4 + 1] << 8) +\n (bytes[i4 + 2] << 16) +\n (bytes[i4 + 3] << 24);\n childStarts?.(i, start);\n }\n }\n }\n}\n\nconst SH_DEGREE_TO_VECS: Record = { 1: 3, 2: 8, 3: 15 };\nconst SH_C0 = 0.28209479177387814;\n\nexport const SPZ_MAGIC = 0x5053474e; // NGSP = Niantic gaussian splat\nexport const SPZ_VERSION = 3;\nexport const FLAG_ANTIALIASED = 0x1;\n\nexport class SpzWriter {\n buffer: ArrayBuffer;\n view: DataView;\n numSplats: number;\n shDegree: number;\n fractionalBits: number;\n fraction: number;\n flagAntiAlias: boolean;\n clippedCount = 0;\n\n constructor({\n numSplats,\n shDegree,\n fractionalBits = 12,\n flagAntiAlias = true,\n }: {\n numSplats: number;\n shDegree: number;\n fractionalBits?: number;\n flagAntiAlias?: boolean;\n }) {\n const splatSize =\n 9 + // Position\n 1 + // Opacity\n 3 + // Scale\n 3 + // DC-rgb\n 4 + // Rotation\n (shDegree >= 1 ? 9 : 0) +\n (shDegree >= 2 ? 15 : 0) +\n (shDegree >= 3 ? 21 : 0);\n const bufferSize = 16 + numSplats * splatSize;\n this.buffer = new ArrayBuffer(bufferSize);\n this.view = new DataView(this.buffer);\n\n this.view.setUint32(0, SPZ_MAGIC, true); // NGSP\n this.view.setUint32(4, SPZ_VERSION, true);\n this.view.setUint32(8, numSplats, true);\n this.view.setUint8(12, shDegree);\n this.view.setUint8(13, fractionalBits);\n this.view.setUint8(14, flagAntiAlias ? FLAG_ANTIALIASED : 0);\n this.view.setUint8(15, 0); // Reserved\n\n this.numSplats = numSplats;\n this.shDegree = shDegree;\n this.fractionalBits = fractionalBits;\n this.fraction = 1 << fractionalBits;\n this.flagAntiAlias = flagAntiAlias;\n }\n\n setCenter(index: number, x: number, y: number, z: number) {\n // Divide by this.fraction and round to nearest integer,\n // then write as 3-bytes per x then y then z.\n const xRounded = Math.round(x * this.fraction);\n const xInt = Math.max(-0x7fffff, Math.min(0x7fffff, xRounded));\n const yRounded = Math.round(y * this.fraction);\n const yInt = Math.max(-0x7fffff, Math.min(0x7fffff, yRounded));\n const zRounded = Math.round(z * this.fraction);\n const zInt = Math.max(-0x7fffff, Math.min(0x7fffff, zRounded));\n const clipped = xRounded !== xInt || yRounded !== yInt || zRounded !== zInt;\n if (clipped) {\n this.clippedCount += 1;\n // if (this.clippedCount < 10) {\n // // Write x y z also in hex\n // console.log(`Clipped ${index}: ${x}, ${y}, ${z} (0x${x.toString(16)}, 0x${y.toString(16)}, 0x${z.toString(16)}) -> ${xRounded}, ${yRounded}, ${zRounded} (0x${xRounded.toString(16)}, 0x${yRounded.toString(16)}, 0x${zRounded.toString(16)}) -> ${xInt}, ${yInt}, ${zInt} (0x${xInt.toString(16)}, 0x${yInt.toString(16)}, 0x${zInt.toString(16)})`);\n // }\n }\n const i9 = index * 9;\n const base = 16 + i9;\n this.view.setUint8(base, xInt & 0xff);\n this.view.setUint8(base + 1, (xInt >> 8) & 0xff);\n this.view.setUint8(base + 2, (xInt >> 16) & 0xff);\n this.view.setUint8(base + 3, yInt & 0xff);\n this.view.setUint8(base + 4, (yInt >> 8) & 0xff);\n this.view.setUint8(base + 5, (yInt >> 16) & 0xff);\n this.view.setUint8(base + 6, zInt & 0xff);\n this.view.setUint8(base + 7, (zInt >> 8) & 0xff);\n this.view.setUint8(base + 8, (zInt >> 16) & 0xff);\n }\n\n setAlpha(index: number, alpha: number) {\n const base = 16 + this.numSplats * 9 + index;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round(alpha * 255))),\n );\n }\n\n static scaleRgb(r: number) {\n const v = ((r - 0.5) / (SH_C0 / 0.15) + 0.5) * 255;\n return Math.max(0, Math.min(255, Math.round(v)));\n }\n\n setRgb(index: number, r: number, g: number, b: number) {\n const base = 16 + this.numSplats * 10 + index * 3;\n this.view.setUint8(base, SpzWriter.scaleRgb(r));\n this.view.setUint8(base + 1, SpzWriter.scaleRgb(g));\n this.view.setUint8(base + 2, SpzWriter.scaleRgb(b));\n }\n\n setScale(index: number, scaleX: number, scaleY: number, scaleZ: number) {\n const base = 16 + this.numSplats * 13 + index * 3;\n this.view.setUint8(\n base,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleX) + 10) * 16))),\n );\n this.view.setUint8(\n base + 1,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleY) + 10) * 16))),\n );\n this.view.setUint8(\n base + 2,\n Math.max(0, Math.min(255, Math.round((Math.log(scaleZ) + 10) * 16))),\n );\n }\n\n setQuat(\n index: number,\n ...q: [number, number, number, number] // x, y, z, w\n ) {\n const base = 16 + this.numSplats * 16 + index * 4;\n\n const quat = normalize(q);\n\n // Find largest component\n let iLargest = 0;\n for (let i = 1; i < 4; ++i) {\n if (Math.abs(quat[i]) > Math.abs(quat[iLargest])) {\n iLargest = i;\n }\n }\n\n // Since -quat represents the same rotation as quat, transform the quaternion so the largest element\n // is positive. This avoids having to send its sign bit.\n const negate = quat[iLargest] < 0 ? 1 : 0;\n\n // Do compression using sign bit and 9-bit precision per element.\n let comp = iLargest;\n for (let i = 0; i < 4; ++i) {\n if (i !== iLargest) {\n const negbit = (quat[i] < 0 ? 1 : 0) ^ negate;\n const mag = Math.floor(\n ((1 << 9) - 1) * (Math.abs(quat[i]) / Math.SQRT1_2) + 0.5,\n );\n comp = (comp << 10) | (negbit << 9) | mag;\n }\n }\n\n this.view.setUint8(base, comp & 0xff);\n this.view.setUint8(base + 1, (comp >> 8) & 0xff);\n this.view.setUint8(base + 2, (comp >> 16) & 0xff);\n this.view.setUint8(base + 3, (comp >>> 24) & 0xff);\n }\n\n static quantizeSh(sh: number, bits: number) {\n const value = Math.round(sh * 128) + 128;\n const bucketSize = 1 << (8 - bits);\n const quantized =\n Math.floor((value + bucketSize / 2) / bucketSize) * bucketSize;\n return Math.max(0, Math.min(255, quantized));\n }\n\n setSh(\n index: number,\n sh1: Float32Array,\n sh2?: Float32Array,\n sh3?: Float32Array,\n ) {\n const shVecs = SH_DEGREE_TO_VECS[this.shDegree] || 0;\n const base1 = 16 + this.numSplats * 20 + index * shVecs * 3;\n for (let j = 0; j < 9; ++j) {\n this.view.setUint8(base1 + j, SpzWriter.quantizeSh(sh1[j], 5));\n }\n if (sh2) {\n const base2 = base1 + 9;\n for (let j = 0; j < 15; ++j) {\n this.view.setUint8(base2 + j, SpzWriter.quantizeSh(sh2[j], 4));\n }\n if (sh3) {\n const base3 = base2 + 15;\n for (let j = 0; j < 21; ++j) {\n this.view.setUint8(base3 + j, SpzWriter.quantizeSh(sh3[j], 4));\n }\n }\n }\n }\n\n async finalize(): Promise {\n const input = new Uint8Array(this.buffer);\n const stream = new ReadableStream({\n async start(controller) {\n controller.enqueue(input);\n controller.close();\n },\n });\n const compressed = stream.pipeThrough(new CompressionStream(\"gzip\"));\n const response = new Response(compressed);\n const buffer = await response.arrayBuffer();\n console.log(\n \"Compressed\",\n input.length,\n \"bytes to\",\n buffer.byteLength,\n \"bytes\",\n );\n return new Uint8Array(buffer);\n }\n}\n\nexport async function transcodeSpz(input: TranscodeSpzInput) {\n const splats = new SplatData();\n const {\n inputs,\n clipXyz,\n maxSh,\n fractionalBits = 12,\n opacityThreshold,\n } = input;\n for (const input of inputs) {\n const scale = input.transform?.scale ?? 1;\n const quaternion = new THREE.Quaternion().fromArray(\n input.transform?.quaternion ?? [0, 0, 0, 1],\n );\n const translate = new THREE.Vector3().fromArray(\n input.transform?.translate ?? [0, 0, 0],\n );\n const clip = clipXyz\n ? new THREE.Box3(\n new THREE.Vector3().fromArray(clipXyz.min),\n new THREE.Vector3().fromArray(clipXyz.max),\n )\n : undefined;\n\n function transformPos(pos: THREE.Vector3) {\n pos.multiplyScalar(scale);\n pos.applyQuaternion(quaternion);\n pos.add(translate);\n return pos;\n }\n\n function transformScales(scales: THREE.Vector3) {\n scales.multiplyScalar(scale);\n return scales;\n }\n\n function transformQuaternion(quat: THREE.Quaternion) {\n quat.premultiply(quaternion);\n return quat;\n }\n\n function withinClip(p: THREE.Vector3) {\n return !clip || clip.containsPoint(p);\n }\n\n function withinOpacity(opacity: number) {\n return opacityThreshold !== undefined\n ? opacity >= opacityThreshold\n : true;\n }\n\n let fileType = input.fileType;\n if (!fileType) {\n fileType = getSplatFileType(input.fileBytes);\n if (!fileType && input.pathOrUrl) {\n fileType = getSplatFileTypeFromPath(input.pathOrUrl);\n }\n }\n switch (fileType) {\n case SplatFileType.PLY: {\n const ply = new PlyReader({ fileBytes: input.fileBytes });\n await ply.parseHeader();\n let lastIndex: number | null = null;\n ply.parseSplats(\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (sh1 && lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n }\n if (sh2 && lastIndex !== null) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3 && lastIndex !== null) {\n splats.setSh3(lastIndex, sh3);\n }\n },\n );\n break;\n }\n case SplatFileType.SPZ: {\n const spz = new SpzReader({ fileBytes: input.fileBytes });\n await spz.parseHeader();\n const mapping = new Int32Array(spz.numSplats);\n mapping.fill(-1);\n const centers = new Float32Array(spz.numSplats * 3);\n const center = new THREE.Vector3();\n spz.parseSplats(\n (index, x, y, z) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n centers[index * 3] = center.x;\n centers[index * 3 + 1] = center.y;\n centers[index * 3 + 2] = center.z;\n },\n (index, alpha) => {\n center.fromArray(centers, index * 3);\n if (withinClip(center) && withinOpacity(alpha)) {\n mapping[index] = splats.pushSplat();\n splats.setCenter(mapping[index], center.x, center.y, center.z);\n splats.setOpacity(mapping[index], alpha);\n }\n },\n (index, r, g, b) => {\n if (mapping[index] >= 0) {\n splats.setColor(mapping[index], r, g, b);\n }\n },\n (index, scaleX, scaleY, scaleZ) => {\n if (mapping[index] >= 0) {\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(mapping[index], scales.x, scales.y, scales.z);\n }\n },\n (index, quatX, quatY, quatZ, quatW) => {\n if (mapping[index] >= 0) {\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n mapping[index],\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n }\n },\n (index, sh1, sh2, sh3) => {\n if (mapping[index] >= 0) {\n splats.setSh1(mapping[index], sh1);\n if (sh2) {\n splats.setSh2(mapping[index], sh2);\n }\n if (sh3) {\n splats.setSh3(mapping[index], sh3);\n }\n }\n },\n );\n break;\n }\n case SplatFileType.SPLAT:\n decodeAntiSplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n const index = splats.pushSplat();\n splats.setCenter(index, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(index, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n index,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(index, opacity);\n splats.setColor(index, r, g, b);\n }\n },\n );\n break;\n case SplatFileType.KSPLAT: {\n let lastIndex: number | null = null;\n decodeKsplat(\n input.fileBytes,\n (numSplats) => {},\n (\n index,\n x,\n y,\n z,\n scaleX,\n scaleY,\n scaleZ,\n quatX,\n quatY,\n quatZ,\n quatW,\n opacity,\n r,\n g,\n b,\n ) => {\n const center = transformPos(new THREE.Vector3(x, y, z));\n if (withinClip(center) && withinOpacity(opacity)) {\n lastIndex = splats.pushSplat();\n splats.setCenter(lastIndex, center.x, center.y, center.z);\n const scales = transformScales(\n new THREE.Vector3(scaleX, scaleY, scaleZ),\n );\n splats.setScale(lastIndex, scales.x, scales.y, scales.z);\n const quaternion = transformQuaternion(\n new THREE.Quaternion(quatX, quatY, quatZ, quatW),\n );\n splats.setQuaternion(\n lastIndex,\n quaternion.x,\n quaternion.y,\n quaternion.z,\n quaternion.w,\n );\n splats.setOpacity(lastIndex, opacity);\n splats.setColor(lastIndex, r, g, b);\n } else {\n lastIndex = null;\n }\n },\n (index, sh1, sh2, sh3) => {\n if (lastIndex !== null) {\n splats.setSh1(lastIndex, sh1);\n if (sh2) {\n splats.setSh2(lastIndex, sh2);\n }\n if (sh3) {\n splats.setSh3(lastIndex, sh3);\n }\n }\n },\n );\n break;\n }\n default:\n throw new Error(`transcodeSpz not implemented for ${fileType}`);\n }\n }\n\n const shDegree = Math.min(\n maxSh ?? 3,\n splats.sh3 ? 3 : splats.sh2 ? 2 : splats.sh1 ? 1 : 0,\n );\n const spz = new SpzWriter({\n numSplats: splats.numSplats,\n shDegree,\n fractionalBits,\n flagAntiAlias: true,\n });\n\n for (let i = 0; i < splats.numSplats; ++i) {\n const i3 = i * 3;\n const i4 = i * 4;\n spz.setCenter(\n i,\n splats.centers[i3],\n splats.centers[i3 + 1],\n splats.centers[i3 + 2],\n );\n spz.setScale(\n i,\n splats.scales[i3],\n splats.scales[i3 + 1],\n splats.scales[i3 + 2],\n );\n spz.setQuat(\n i,\n splats.quaternions[i4],\n splats.quaternions[i4 + 1],\n splats.quaternions[i4 + 2],\n splats.quaternions[i4 + 3],\n );\n spz.setAlpha(i, splats.opacities[i]);\n spz.setRgb(\n i,\n splats.colors[i3],\n splats.colors[i3 + 1],\n splats.colors[i3 + 2],\n );\n if (splats.sh1 && shDegree >= 1) {\n spz.setSh(\n i,\n splats.sh1.slice(i * 9, (i + 1) * 9),\n shDegree >= 2 && splats.sh2\n ? splats.sh2.slice(i * 15, (i + 1) * 15)\n : undefined,\n shDegree >= 3 && splats.sh3\n ? splats.sh3.slice(i * 21, (i + 1) * 21)\n : undefined,\n );\n }\n }\n\n const spzBytes = await spz.finalize();\n return { fileBytes: spzBytes, clippedCount: spz.clippedCount };\n}\n","import * as THREE from \"three\";\n\n// SplatSkinning is an experimental class that implements dual-quaternion\n// skeletal animation for Gsplats. A skeletal animation system consists\n// of a set of bones, each with a \"rest\" pose that consists of a position\n// and orientation, and a weighting of up to 4 bones for each Gsplat.\n// By moving and rotating the bones you can animate all the Gsplats like\n// your would for a normal 3D animated mesh.\n// Note that the dual-quaternion formulation assumes that mass/volume\n// is conserved through these transformations, which helps avoid common\n// issues with linear blend skinning such as joint collapse or bulging.\n// However, it is not as good a fit for animations that involve explicit\n// deformations, such as cartoon animations.\n\nimport type { SplatMesh } from \"./SplatMesh\";\nimport {\n CovSplat,\n Dyno,\n DynoUniform,\n type DynoVal,\n Gsplat,\n unindent,\n unindentLines,\n} from \"./dyno\";\nimport { getTextureSize, newArray } from \"./utils\";\n\nexport enum SplatSkinningMode {\n DUAL_QUATERNION = \"dual_quaternion\",\n LINEAR_BLEND = \"linear_blend\",\n}\n\nexport type SplatSkinningOptions = {\n // Specifies the SplatMesh that will be animated.\n mesh: SplatMesh;\n // Overrides the number of Gsplats in the mesh that will be animated.\n // (default: mesh.numSplats)\n numSplats?: number;\n // Set the number of bones used to animate the SplatMesh, with a maximum\n // of 256 (in order to compactly encode the bone index). (default: 256)\n numBones?: number;\n // Set the mode of skinning to use.\n // (default: DUAL_QUATERNION)\n mode?: SplatSkinningMode;\n};\n\nexport class SplatSkinning {\n mesh: SplatMesh;\n numSplats: number;\n mode: SplatSkinningMode;\n\n // Store the skinning weights for each Gsplat, composed of a 4-vector\n // of bone indices and weight\n skinData: Uint16Array;\n skinTexture: THREE.DataArrayTexture;\n\n numBones: number;\n boneData: Float32Array;\n boneTexture: THREE.DataTexture;\n\n boneRestQuatPosScale: {\n quat: THREE.Quaternion;\n pos: THREE.Vector3;\n scale: THREE.Vector3;\n }[];\n boneRestInvMats: THREE.Matrix4[];\n\n uniform: DynoUniform;\n\n constructor(options: SplatSkinningOptions) {\n this.mesh = options.mesh;\n this.numSplats = options.numSplats ?? this.mesh.numSplats;\n this.mode = options.mode ?? SplatSkinningMode.DUAL_QUATERNION;\n\n const { width, height, depth, maxSplats } = getTextureSize(this.numSplats);\n this.skinData = new Uint16Array(maxSplats * 4);\n this.skinTexture = new THREE.DataArrayTexture(\n this.skinData,\n width,\n height,\n depth,\n );\n this.skinTexture.format = THREE.RGBAIntegerFormat;\n this.skinTexture.type = THREE.UnsignedShortType;\n this.skinTexture.internalFormat = \"RGBA16UI\";\n this.skinTexture.needsUpdate = true;\n\n this.numBones = options.numBones ?? 256;\n this.boneData = new Float32Array(this.numBones * 16);\n this.boneTexture = new THREE.DataTexture(\n this.boneData,\n 4,\n this.numBones,\n THREE.RGBAFormat,\n THREE.FloatType,\n );\n this.boneTexture.internalFormat = \"RGBA32F\";\n this.boneTexture.needsUpdate = true;\n\n this.boneRestQuatPosScale = newArray(this.numBones, () => ({\n quat: new THREE.Quaternion(),\n pos: new THREE.Vector3(),\n scale: new THREE.Vector3(),\n }));\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats = newArray(this.numBones, () => new THREE.Matrix4());\n } else {\n this.boneRestInvMats = [];\n }\n\n this.uniform = new DynoUniform({\n key: \"skinning\",\n type: GsplatSkinning,\n globals: () => [defineGsplatSkinning],\n value: {\n numSplats: this.numSplats,\n numBones: this.numBones,\n skinTexture: this.skinTexture,\n boneTexture: this.boneTexture,\n },\n });\n }\n\n // Apply the skeletal animation to a Gsplat in a dyno program.\n modify(gsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"Linear blend skinning requires covSplats=true\");\n }\n return applyGsplatSkinning(gsplat, this.uniform);\n }\n\n modifyCov(covsplat: DynoVal): DynoVal {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n return applyCovSplatDQSkinning(covsplat, this.uniform);\n }\n return applyCovSplatLBSkinning(covsplat, this.uniform);\n }\n\n // Set the \"rest\" pose for a bone with position and quaternion orientation.\n setRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(SplatSkinning.UNIT_SCALE);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex]\n .compose(pos, quat, SplatSkinning.UNIT_SCALE)\n .invert();\n }\n\n this.setBoneQuatPos(boneIndex, quat, pos);\n }\n\n getRestQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n }\n\n setRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n this.boneRestQuatPosScale[boneIndex].quat.copy(quat);\n this.boneRestQuatPosScale[boneIndex].pos.copy(pos);\n this.boneRestQuatPosScale[boneIndex].scale.copy(scale);\n\n if (this.mode === SplatSkinningMode.LINEAR_BLEND) {\n this.boneRestInvMats[boneIndex].compose(pos, quat, scale).invert();\n }\n\n this.setBoneQuatPosScale(boneIndex, quat, pos, scale);\n }\n\n getRestQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n quat.copy(this.boneRestQuatPosScale[boneIndex].quat);\n pos.copy(this.boneRestQuatPosScale[boneIndex].pos);\n scale.copy(this.boneRestQuatPosScale[boneIndex].scale);\n }\n\n setRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setRestMat only supported for linear blend skinning\");\n }\n this.boneRestInvMats[boneIndex].copy(matrix).invert();\n this.setBoneMatrix(boneIndex, matrix);\n }\n\n getRestMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"getRestMat only supported for linear blend skinning\");\n }\n matrix.copy(this.boneRestInvMats[boneIndex]).invert();\n }\n\n // Set the \"current\" position and orientation of a bone.\n setBoneQuatPos(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n SplatSkinning.relQuat\n .copy(this.boneRestQuatPosScale[boneIndex].quat)\n .invert();\n SplatSkinning.relPos\n .copy(pos)\n .sub(this.boneRestQuatPosScale[boneIndex].pos);\n SplatSkinning.relQuat.multiply(quat);\n SplatSkinning.dual\n .set(\n SplatSkinning.relPos.x,\n SplatSkinning.relPos.y,\n SplatSkinning.relPos.z,\n 0.0,\n )\n .multiply(SplatSkinning.relQuat);\n\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.relQuat.x;\n this.boneData[i16 + 1] = SplatSkinning.relQuat.y;\n this.boneData[i16 + 2] = SplatSkinning.relQuat.z;\n this.boneData[i16 + 3] = SplatSkinning.relQuat.w;\n this.boneData[i16 + 4] = 0.5 * SplatSkinning.dual.x;\n this.boneData[i16 + 5] = 0.5 * SplatSkinning.dual.y;\n this.boneData[i16 + 6] = 0.5 * SplatSkinning.dual.z;\n this.boneData[i16 + 7] = 0.5 * SplatSkinning.dual.w;\n } else {\n this.setBoneQuatPosScale(boneIndex, quat, pos, SplatSkinning.UNIT_SCALE);\n }\n }\n\n setBoneQuatPosScale(\n boneIndex: number,\n quat: THREE.Quaternion,\n pos: THREE.Vector3,\n scale: THREE.Vector3,\n ) {\n if (this.mode === SplatSkinningMode.DUAL_QUATERNION) {\n throw new Error(\n \"setBoneQuatPosScale only supported for linear blend skinning\",\n );\n }\n\n SplatSkinning.skinMat.compose(pos, quat, scale);\n this.setBoneMatrix(boneIndex, SplatSkinning.skinMat);\n }\n\n setBoneMatrix(boneIndex: number, matrix: THREE.Matrix4) {\n if (this.mode !== SplatSkinningMode.LINEAR_BLEND) {\n throw new Error(\"setBoneMatrix only supported for linear blend skinning\");\n }\n\n SplatSkinning.skinMat.multiplyMatrices(\n this.boneRestInvMats[boneIndex],\n matrix,\n );\n const i16 = boneIndex * 16;\n this.boneData[i16 + 0] = SplatSkinning.skinMat.elements[0];\n this.boneData[i16 + 1] = SplatSkinning.skinMat.elements[1];\n this.boneData[i16 + 2] = SplatSkinning.skinMat.elements[2];\n this.boneData[i16 + 3] = SplatSkinning.skinMat.elements[4];\n this.boneData[i16 + 4] = SplatSkinning.skinMat.elements[5];\n this.boneData[i16 + 5] = SplatSkinning.skinMat.elements[6];\n this.boneData[i16 + 6] = SplatSkinning.skinMat.elements[8];\n this.boneData[i16 + 7] = SplatSkinning.skinMat.elements[9];\n this.boneData[i16 + 8] = SplatSkinning.skinMat.elements[10];\n this.boneData[i16 + 9] = SplatSkinning.skinMat.elements[12];\n this.boneData[i16 + 10] = SplatSkinning.skinMat.elements[13];\n this.boneData[i16 + 11] = SplatSkinning.skinMat.elements[14];\n }\n\n // Set up to 4 bone indices and weights for a Gsplat. For fewer than 4 bones,\n // you can set the remaining weights to 0 (and index=0).\n setSplatBones(\n splatIndex: number,\n boneIndices: THREE.Vector4,\n weights: THREE.Vector4,\n ) {\n const i4 = splatIndex * 4;\n this.skinData[i4 + 0] =\n Math.min(255, Math.max(0, Math.round(weights.x * 255.0))) +\n (boneIndices.x << 8);\n this.skinData[i4 + 1] =\n Math.min(255, Math.max(0, Math.round(weights.y * 255.0))) +\n (boneIndices.y << 8);\n this.skinData[i4 + 2] =\n Math.min(255, Math.max(0, Math.round(weights.z * 255.0))) +\n (boneIndices.z << 8);\n this.skinData[i4 + 3] =\n Math.min(255, Math.max(0, Math.round(weights.w * 255.0))) +\n (boneIndices.w << 8);\n }\n\n // Call this to indicate that the bones have changed and the Gsplats need to be\n // re-generated with updated skinning.\n updateBones() {\n this.boneTexture.needsUpdate = true;\n this.mesh.needsUpdate = true;\n }\n\n private static UNIT_SCALE = new THREE.Vector3(1, 1, 1);\n private static relQuat = new THREE.Quaternion();\n private static relPos = new THREE.Vector3();\n private static dual = new THREE.Quaternion();\n private static skinMat = new THREE.Matrix4();\n}\n\n// dyno program definitions for SplatSkinning\n\nexport const GsplatSkinning = { type: \"GsplatSkinning\" } as {\n type: \"GsplatSkinning\";\n};\n\nexport const defineGsplatSkinning = unindent(`\n struct GsplatSkinning {\n int numSplats;\n int numBones;\n usampler2DArray skinTexture;\n sampler2D boneTexture;\n };\n`);\n\nexport const defineApplyGsplatSkinning = unindent(`\n void applyGsplatSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec4 quaternion\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n\n center = quatVec(quat, center) + translate;\n quaternion = quatQuat(quat, quaternion);\n }\n`);\n\nfunction applyGsplatSkinning(\n gsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { gsplat: typeof Gsplat; skinning: typeof GsplatSkinning },\n { gsplat: typeof Gsplat }\n >({\n inTypes: { gsplat: Gsplat, skinning: GsplatSkinning },\n outTypes: { gsplat: Gsplat },\n globals: () => [defineGsplatSkinning, defineApplyGsplatSkinning],\n inputs: { gsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { gsplat } = outputs;\n return unindentLines(`\n ${gsplat} = ${inputs.gsplat};\n if (isGsplatActive(${gsplat}.flags)) {\n applyGsplatSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${gsplat}.index, ${gsplat}.center, ${gsplat}.quaternion\n );\n }\n `);\n },\n });\n return dyno.outputs.gsplat;\n}\n\nexport const defineApplyCovSplatDQSkinning = unindent(`\n void applyCovSplatDQSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n vec4 quat = vec4(0.0);\n vec4 dual = vec4(0.0);\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n vec4 boneQuat = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 boneDual = vec4(0.0);\n if (boneIndex < numBones) {\n boneQuat = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n boneDual = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n }\n\n if ((i > 0) && (dot(quat, boneQuat) < 0.0)) {\n // Flip sign if next blend is pointing in the opposite direction\n boneQuat = -boneQuat;\n boneDual = -boneDual;\n }\n quat += weights[i] * boneQuat;\n dual += weights[i] * boneDual;\n }\n }\n\n // Normalize dual quaternion\n float norm = length(quat);\n quat /= norm;\n dual /= norm;\n vec3 translate = vec3(\n 2.0 * (-dual.w * quat.x + dual.x * quat.w - dual.y * quat.z + dual.z * quat.y),\n 2.0 * (-dual.w * quat.y + dual.x * quat.z + dual.y * quat.w - dual.z * quat.x),\n 2.0 * (-dual.w * quat.z - dual.x * quat.y + dual.y * quat.x + dual.z * quat.w)\n );\n mat3 basis = quaternionToMatrix(quat);\n\n center = quatVec(quat, center) + translate;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nexport const defineApplyCovSplatLBSkinning = unindent(`\n void applyCovSplatLBSkinning(\n int numSplats, int numBones,\n usampler2DArray skinTexture, sampler2D boneTexture,\n int splatIndex, inout vec3 center, inout vec3 xxyyzz, inout vec3 xyxzyz\n ) {\n if ((splatIndex < 0) || (splatIndex >= numSplats)) {\n return;\n }\n\n uvec4 skinData = texelFetch(skinTexture, splatTexCoord(splatIndex), 0);\n\n float weights[4];\n weights[0] = float(skinData.x & 0xffu) / 255.0;\n weights[1] = float(skinData.y & 0xffu) / 255.0;\n weights[2] = float(skinData.z & 0xffu) / 255.0;\n weights[3] = float(skinData.w & 0xffu) / 255.0;\n\n uint boneIndices[4];\n boneIndices[0] = (skinData.x >> 8u) & 0xffu;\n boneIndices[1] = (skinData.y >> 8u) & 0xffu;\n boneIndices[2] = (skinData.z >> 8u) & 0xffu;\n boneIndices[3] = (skinData.w >> 8u) & 0xffu;\n\n mat3 basis = mat3(0.0);\n vec3 offset = vec3(0.0);\n\n for (int i = 0; i < 4; i++) {\n if (weights[i] > 0.0) {\n int boneIndex = int(boneIndices[i]);\n if (boneIndex < numBones) {\n vec4 v0 = texelFetch(boneTexture, ivec2(0, boneIndex), 0);\n vec4 v1 = texelFetch(boneTexture, ivec2(1, boneIndex), 0);\n vec4 v2 = texelFetch(boneTexture, ivec2(2, boneIndex), 0);\n basis += weights[i] * mat3(v0.x, v0.y, v0.z, v0.w, v1.x, v1.y, v1.z, v1.w, v2.x);\n offset += weights[i] * vec3(v2.y, v2.z, v2.w);\n }\n }\n }\n\n center = basis * center + offset;\n\n mat3 cov = mat3(xxyyzz.x, xyxzyz.x, xyxzyz.y, xyxzyz.x, xxyyzz.y, xyxzyz.z, xyxzyz.y, xyxzyz.z, xxyyzz.z);\n cov = basis * cov * transpose(basis);\n xxyyzz = vec3(cov[0][0], cov[1][1], cov[2][2]);\n xyxzyz = vec3(cov[0][1], cov[0][2], cov[1][2]);\n }\n`);\n\nfunction applyCovSplatDQSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatDQSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatDQSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n\nfunction applyCovSplatLBSkinning(\n covsplat: DynoVal,\n skinning: DynoVal,\n): DynoVal {\n const dyno = new Dyno<\n { covsplat: typeof CovSplat; skinning: typeof GsplatSkinning },\n { covsplat: typeof CovSplat }\n >({\n inTypes: { covsplat: CovSplat, skinning: GsplatSkinning },\n outTypes: { covsplat: CovSplat },\n globals: () => [defineGsplatSkinning, defineApplyCovSplatLBSkinning],\n inputs: { covsplat, skinning },\n statements: ({ inputs, outputs }) => {\n const { skinning } = inputs;\n const { covsplat } = outputs;\n return unindentLines(`\n ${covsplat} = ${inputs.covsplat};\n if (isCovSplatActive(${covsplat}.flags)) {\n applyCovSplatLBSkinning(\n ${skinning}.numSplats, ${skinning}.numBones,\n ${skinning}.skinTexture, ${skinning}.boneTexture,\n ${covsplat}.index, ${covsplat}.center, ${covsplat}.xxyyzz, ${covsplat}.xyxzyz\n );\n }\n `);\n },\n });\n return dyno.outputs.covsplat;\n}\n","import * as THREE from \"three\";\nimport { PackedSplats } from \"./PackedSplats\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport function constructGrid({\n // PackedSplats object to add splats to\n splats,\n // min and max box extents of the grid\n extents,\n // step size along each grid axis\n stepSize = 1,\n // spherical radius of each Gsplat\n pointRadius = 0.01,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n pointShadowScale = 2.0,\n // Gsplat opacity\n opacity = 1.0,\n // Gsplat color (THREE.Color) or function to set color for position:\n // ((THREE.Color, THREE.Vector3) => void) (default: RGB-modulated grid)\n color,\n}: {\n splats: PackedSplats;\n extents: THREE.Box3;\n stepSize?: number;\n pointRadius?: number;\n pointShadowScale?: number;\n opacity?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const EPSILON = 1.0e-6;\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n if (color == null) {\n color = (color, point) =>\n color.set(\n 0.55 + 0.45 * Math.cos(point.x * 1),\n 0.55 + 0.45 * Math.cos(point.y * 1),\n 0.55 + 0.45 * Math.cos(point.z * 1),\n );\n }\n const pointColor = new THREE.Color();\n for (let z = extents.min.z; z < extents.max.z + EPSILON; z += stepSize) {\n for (let y = extents.min.y; y < extents.max.y + EPSILON; y += stepSize) {\n for (let x = extents.min.x; x < extents.max.x + EPSILON; x += stepSize) {\n center.set(x, y, z);\n for (let layer = 0; layer < 2; ++layer) {\n scales.setScalar(pointRadius * (layer ? 1 : pointShadowScale));\n if (!layer) {\n pointColor.setScalar(0.0);\n } else if (typeof color === \"function\") {\n color(pointColor, center);\n } else {\n pointColor.copy(color);\n }\n splats.pushSplat(center, scales, quaternion, opacity, pointColor);\n }\n }\n }\n }\n}\n\nexport function constructAxes({\n // PackedSplats object to add splats to\n splats,\n // scale (Gsplat scale along axis)\n scale = 0.25,\n // radius of the axes (Gsplat scale orthogonal to axis)\n axisRadius = 0.0075,\n // relative size of the \"shadow copy\" of each Gsplat placed behind it\n axisShadowScale = 2.0,\n // origins of the axes (default single axis at origin)\n origins = [new THREE.Vector3()],\n}: {\n splats: PackedSplats;\n scale?: number;\n axisRadius?: number;\n axisShadowScale?: number;\n origins?: THREE.Vector3[];\n}) {\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3();\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const color = new THREE.Color();\n const opacity = 1.0;\n for (const origin of origins) {\n for (let axis = 0; axis < 3; ++axis) {\n center.set(\n origin.x + (axis === 0 ? scale : 0),\n origin.y + (axis === 1 ? scale : 0),\n origin.z + (axis === 2 ? scale : 0),\n );\n for (let layer = 0; layer < 2; ++layer) {\n scales.set(\n (axis === 0 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 1 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n (axis === 2 ? scale : axisRadius) * (layer ? 1 : axisShadowScale),\n );\n color.setRGB(\n layer === 0 ? 0.0 : axis === 0 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 1 ? 1.0 : 0.0,\n layer === 0 ? 0.0 : axis === 2 ? 1.0 : 0.0,\n );\n splats.pushSplat(center, scales, quaternion, opacity, color);\n }\n }\n }\n}\n\nexport function constructSpherePoints({\n // PackedSplats object to add splats to\n splats,\n // center of the sphere (default: origin)\n origin = new THREE.Vector3(),\n // radius of the sphere\n radius = 1.0,\n // maximum depth of recursion for subdividing the sphere\n // Warning: Gsplat count grows exponentially with depth\n maxDepth = 3,\n // filter function to apply to each point, for example to select\n // points in a certain direction or other function ((THREE.Vector3) => boolean)\n // (default: null)\n filter = null,\n // radius of each oriented Gsplat\n pointRadius = 0.02,\n // flatness of each oriented Gsplat\n pointThickness = 0.001,\n // color of each Gsplat (THREE.Color) or function to set color for point:\n // ((THREE.Color, THREE.Vector3) => void) (default: white)\n color = new THREE.Color(1, 1, 1),\n}: {\n splats: PackedSplats;\n origin?: THREE.Vector3;\n radius?: number;\n maxDepth?: number;\n filter?: ((point: THREE.Vector3) => boolean) | null;\n pointRadius?: number;\n pointThickness?: number;\n color?: THREE.Color | ((color: THREE.Color, point: THREE.Vector3) => void);\n}) {\n const pointsHash: { [key: string]: THREE.Vector3 } = {};\n\n function addPoint(p: THREE.Vector3) {\n if (filter && !filter(p)) {\n return;\n }\n const key = `${p.x},${p.y},${p.z}`;\n if (!pointsHash[key]) {\n pointsHash[key] = p;\n }\n }\n\n function recurse(\n depth: number,\n p0: THREE.Vector3,\n p1: THREE.Vector3,\n p2: THREE.Vector3,\n ) {\n addPoint(p0);\n addPoint(p1);\n addPoint(p2);\n if (depth >= maxDepth) {\n return;\n }\n const p01 = new THREE.Vector3().addVectors(p0, p1).normalize();\n const p12 = new THREE.Vector3().addVectors(p1, p2).normalize();\n const p20 = new THREE.Vector3().addVectors(p2, p0).normalize();\n recurse(depth + 1, p0, p01, p20);\n recurse(depth + 1, p01, p1, p12);\n recurse(depth + 1, p20, p12, p2);\n recurse(depth + 1, p01, p12, p20);\n }\n\n for (const x of [-1, 1]) {\n for (const y of [-1, 1]) {\n for (const z of [-1, 1]) {\n const p0 = new THREE.Vector3(x, 0, 0);\n const p1 = new THREE.Vector3(0, y, 0);\n const p2 = new THREE.Vector3(0, 0, z);\n recurse(0, p0, p1, p2);\n }\n }\n }\n\n const points = Object.values(pointsHash);\n const scales = new THREE.Vector3(pointRadius, pointRadius, pointThickness);\n const quaternion = new THREE.Quaternion();\n const pointColor = typeof color === \"function\" ? new THREE.Color() : color;\n for (const point of points) {\n quaternion.setFromUnitVectors(new THREE.Vector3(0, 0, -1), point);\n if (typeof color === \"function\") {\n color(pointColor, point);\n }\n point.multiplyScalar(radius);\n point.add(origin);\n splats.pushSplat(point, scales, quaternion, 1.0, pointColor);\n }\n}\n\nexport function textSplats({\n // text string to display\n text,\n // browser font to render text with (default: \"Arial\")\n font,\n // font size in pixels/Gsplats (default: 32)\n fontSize,\n // SplatMesh.recolor tint assuming white Gsplats (default: white)\n color,\n // Individual Gsplat color (default: white)\n rgb,\n // Gsplat radius (default: 0.8 covers 1-unit spacing well)\n dotRadius,\n // text alignment: \"left\", \"center\", \"right\", \"start\", \"end\" (default: \"start\")\n textAlign,\n // line spacing multiplier, lines delimited by \"\\n\" (default: 1.0)\n lineHeight,\n // Coordinate scale in object-space (default: 1.0)\n objectScale,\n}: {\n text: string;\n font?: string;\n fontSize?: number;\n color?: THREE.Color;\n rgb?: THREE.Color;\n dotRadius?: number;\n textAlign?: \"left\" | \"center\" | \"right\" | \"start\" | \"end\";\n lineHeight?: number;\n objectScale?: number;\n}) {\n font = font ?? \"Arial\";\n fontSize = fontSize ?? 32;\n color = color ?? new THREE.Color(1, 1, 1);\n dotRadius = dotRadius ?? 0.8;\n textAlign = textAlign ?? \"start\";\n lineHeight = lineHeight ?? 1;\n objectScale = objectScale ?? 1;\n const lines = text.split(\"\\n\");\n\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n throw new Error(\"Failed to create canvas context\");\n }\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n const metrics = ctx.measureText(\"\");\n const fontHeight =\n metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent;\n\n let minLeft = Number.POSITIVE_INFINITY;\n let maxRight = Number.NEGATIVE_INFINITY;\n let minTop = Number.POSITIVE_INFINITY;\n let maxBottom = Number.NEGATIVE_INFINITY;\n for (let line = 0; line < lines.length; ++line) {\n const metrics = ctx.measureText(lines[line]);\n const y = fontHeight * lineHeight * line;\n minLeft = Math.min(minLeft, -metrics.actualBoundingBoxLeft);\n maxRight = Math.max(maxRight, metrics.actualBoundingBoxRight);\n minTop = Math.min(minTop, y - metrics.actualBoundingBoxAscent);\n maxBottom = Math.max(maxBottom, y + metrics.actualBoundingBoxDescent);\n }\n const originLeft = Math.floor(minLeft);\n const originTop = Math.floor(minTop);\n const width = Math.ceil(maxRight) - originLeft;\n const height = Math.ceil(maxBottom) - originTop;\n canvas.width = width;\n canvas.height = height;\n\n ctx.font = `${fontSize}px ${font}`;\n ctx.textAlign = textAlign;\n ctx.textBaseline = \"alphabetic\";\n ctx.fillStyle = \"#FFFFFF\";\n for (let i = 0; i < lines.length; ++i) {\n const y = fontHeight * lineHeight * i - originTop;\n ctx.fillText(lines[i], -originLeft, y);\n }\n\n const imageData = ctx.getImageData(0, 0, width, height);\n const rgba = new Uint8Array(imageData.data.buffer);\n const splats = new PackedSplats();\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius * objectScale);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n rgb = rgb ?? new THREE.Color(1, 1, 1);\n\n let offset = 0;\n for (let y = 0; y < height; ++y) {\n for (let x = 0; x < width; ++x) {\n const a = rgba[offset + 3];\n if (a > 0) {\n const opacity = a / 255;\n center.set(x - 0.5 * (width - 1), 0.5 * (height - 1) - y, 0);\n center.multiplyScalar(objectScale);\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n offset += 4;\n }\n }\n\n const mesh = new SplatMesh({ packedSplats: splats });\n mesh.recolor = color;\n return mesh;\n}\n\nexport function imageSplats({\n // URL of the image to convert to splats (example: `url: \"./image.png\"`)\n url,\n // Radius of each Gsplat, default covers 1-unit spacing well (default: 0.8)\n dotRadius,\n // Subsampling factor for the image. Higher values reduce resolution,\n // for example 2 will halve the width and height by averaging (default: 1)\n subXY,\n // Optional callback function to modify each Gsplat before it's added.\n // Return null to skip adding the Gsplat, or a number to set the opacity\n // and add the Gsplat with parameter values in the objects center, rgba etc. were\n // passed into the forEachSplat callback. Ending the callback in `return opacity;`\n // will retain the original opacity.\n // ((width: number, height: number, index: number, center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, opacity: number, color: THREE.Color) => number | null)\n forEachSplat,\n}: {\n url: string;\n dotRadius?: number;\n subXY?: number;\n forEachSplat?: (\n width: number,\n height: number,\n index: number,\n center: THREE.Vector3,\n scales: THREE.Vector3,\n quaternion: THREE.Quaternion,\n opacity: number,\n color: THREE.Color,\n ) => number | null;\n}): SplatMesh {\n dotRadius = dotRadius ?? 0.8;\n subXY = Math.max(1, Math.floor(subXY ?? 1));\n\n return new SplatMesh({\n constructSplats: async (splats) => {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.onerror = reject;\n img.onload = () => {\n const { width, height } = img;\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n reject(new Error(\"Failed to create canvas context\"));\n return;\n }\n ctx.imageSmoothingEnabled = true;\n ctx.imageSmoothingQuality = \"high\";\n const destWidth = Math.round(width / subXY);\n const destHeight = Math.round(height / subXY);\n ctx.drawImage(img, 0, 0, destWidth, destHeight);\n try {\n const imageData = ctx.getImageData(0, 0, destWidth, destHeight);\n const rgba = new Uint8Array(imageData.data.buffer);\n\n const center = new THREE.Vector3();\n const scales = new THREE.Vector3().setScalar(dotRadius);\n const quaternion = new THREE.Quaternion(0, 0, 0, 1);\n const rgb = new THREE.Color();\n\n let index = 0;\n for (let y = 0; y < destHeight; ++y) {\n for (let x = 0; x < destWidth; ++x) {\n const offset = index * 4;\n const a = rgba[offset + 3];\n if (a > 0) {\n let opacity = a / 255;\n rgb.set(\n rgba[offset + 0] / 255,\n rgba[offset + 1] / 255,\n rgba[offset + 2] / 255,\n );\n center.set(\n x - 0.5 * (destWidth - 1),\n 0.5 * (destHeight - 1) - y,\n 0,\n );\n scales.setScalar(dotRadius);\n quaternion.set(0, 0, 0, 1);\n let push = true;\n if (forEachSplat) {\n const maybeOpacity = forEachSplat(\n destWidth,\n destHeight,\n index,\n center,\n scales,\n quaternion,\n opacity,\n rgb,\n );\n opacity = maybeOpacity ?? opacity;\n push = maybeOpacity !== null;\n }\n if (push) {\n splats.pushSplat(center, scales, quaternion, opacity, rgb);\n }\n }\n index += 1;\n }\n }\n resolve();\n } catch (error) {\n reject(error);\n }\n };\n img.src = url;\n });\n },\n });\n}\n","import * as THREE from \"three\";\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n type DynoVal,\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n div,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n floatBitsToInt,\n hashVec3,\n imod,\n mul,\n split,\n sub,\n vec3,\n} from \"../dyno\";\n\nexport function staticBox({\n box,\n cells,\n dotScale,\n color,\n opacity,\n}: {\n box: THREE.Box3;\n cells: THREE.Vector3;\n dotScale: number;\n color?: THREE.Color;\n opacity?: number;\n}) {\n cells.x = Math.max(1, Math.round(cells.x));\n cells.y = Math.max(1, Math.round(cells.y));\n cells.z = Math.max(1, Math.round(cells.z));\n opacity = opacity ?? 1;\n const numSplats = cells.x * cells.y * cells.z;\n const dynoX = dynoConst(\"int\", cells.x);\n const dynoY = dynoConst(\"int\", cells.y);\n const dynoZ = dynoConst(\"int\", cells.z);\n\n const dynoTime = dynoFloat(0);\n const generator = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index is undefined\");\n }\n const cellX = imod(index, dynoX);\n const index2 = div(index, dynoX);\n const cellY = imod(index2, dynoY);\n const cellZ = div(index2, dynoY);\n const cell = combine({\n vectorType: \"ivec3\",\n x: cellX,\n y: cellY,\n z: cellZ,\n });\n\n const intTime = floatBitsToInt(dynoTime);\n const inputs = combine({ vectorType: \"ivec2\", x: index, y: intTime });\n const random = hashVec3(inputs);\n const min = dynoConst(\"vec3\", box.min);\n const max = dynoConst(\"vec3\", box.max);\n const size = sub(max, min);\n const coord = div(add(vec3(cell), random), dynoConst(\"vec3\", cells));\n let r: DynoVal<\"float\">;\n let g: DynoVal<\"float\">;\n let b: DynoVal<\"float\">;\n if (color) {\n r = dynoConst(\"float\", color.r);\n g = dynoConst(\"float\", color.g);\n b = dynoConst(\"float\", color.b);\n } else {\n ({ r, g, b } = split(coord).outputs);\n }\n const rgba = combine({\n vectorType: \"vec4\",\n r,\n g,\n b,\n a: dynoConst(\"float\", opacity),\n });\n const center = add(min, mul(size, coord));\n const scales = vec3(dynoConst(\"float\", dotScale));\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgba,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ time }) => {\n dynoTime.value = time;\n const _updated = transformer.update(generator);\n generator.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return generator;\n}\n","import * as THREE from \"three\";\n\nimport { SplatGenerator, SplatTransformer } from \"../SplatGenerator\";\nimport {\n Gsplat,\n add,\n combine,\n combineGsplat,\n defineGsplat,\n dynoBlock,\n dynoConst,\n dynoFloat,\n dynoLiteral,\n fract,\n hashVec4,\n max,\n mix,\n mod,\n mul,\n sin,\n split,\n sub,\n vec3,\n} from \"../dyno\";\nimport { dynoVec3 } from \"../dyno\";\n\n// snowBox produces Gsplat trajectories that move in a deterministic fashion over time,\n// with high similarity between adjacent frames. See examples/atmospheric/main.js\n// for an example that creates a snowBox.\n\n// A snowBox instance has a collection of properties that can be tuned to achieve\n// different particle effects. The below DEFAULT_SNOW and DEFAULT_RAIN are example\n// parameter sets that look a lot like snow and rain, and can be used as a starting\n// point for further tweaking: `const mySnow = { ...DEFAULT_SNOW, density: 500 };`\n\nexport const DEFAULT_SNOW = {\n box: new THREE.Box3(\n new THREE.Vector3(-1, -1, -1),\n new THREE.Vector3(1, 1, 1),\n ),\n density: 100,\n fallDirection: new THREE.Vector3(-1, -3, 1).normalize(),\n fallVelocity: 0.02,\n wanderScale: 0.04,\n wanderVariance: 2,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.5, 0.5, 1),\n minScale: 0.001,\n maxScale: 0.005,\n anisoScale: new THREE.Vector3(1, 1, 1),\n};\n\nexport const DEFAULT_RAIN = {\n box: new THREE.Box3(\n new THREE.Vector3(-2, -1, -2),\n new THREE.Vector3(2, 5, 2),\n ),\n density: 10,\n fallDirection: new THREE.Vector3(0, -1, 0),\n fallVelocity: 2,\n wanderScale: 0.1,\n wanderVariance: 1,\n color1: new THREE.Color(1, 1, 1),\n color2: new THREE.Color(0.25, 0.25, 0.5),\n minScale: 0.005,\n maxScale: 0.01,\n anisoScale: new THREE.Vector3(0.1, 1, 0.1),\n};\n\n// Calling snowBox creates a new snowBox instance and returns an object with\n// the snowBox itself as well `as` a collection of controls that can be used to\n// adjust the snowBox's properties over time:\n//\n// - snow: the SplatGenerator snowBox instance\n// - min: the vec3 uniform of the snowBox minimum position\n// - max: the vec3 uniform of the snowBox maximum position\n// - minY: the float uniform of the snowBox minimum y-coordinate\n// - color1: the vec3 uniform of the snowBox first color\n// - color2: the vec3 uniform of the snowBox second color\n// - opacity: the float uniform of the snowBox opacity\n// - fallVelocity: the float uniform of the snowBox fall velocity\n// - wanderVariance: the float uniform of the snowBox wander variance\n// - wanderScale: the float uniform of the snowBox wander scale\n// - fallDirection: the vec3 uniform of the snowBox fall direction\n// - minScale: the float uniform of the snowBox minimum scale\n// - maxScale: the float uniform of the snowBox maximum scale\n// - anisoScale: the vec3 uniform of the snowBox anisotropic scale\n\nexport function snowBox({\n // min and max box extents of the snowBox\n box,\n // minimum y-coordinate to clamp particle position, which can be used to\n // fake hitting a ground plane and lingering there for a bit\n minY,\n // number of Gsplats to generate (default: calculated from box and density)\n numSplats,\n // density of Gsplats per unit volume (default: 100)\n density,\n // The xyz anisotropic scale of the Gsplat, which can be used for example\n // to elongate rain particles (default: (1, 1, 1))\n anisoScale,\n // Minimum Gsplat particle scale (default: 0.001)\n minScale,\n // Maximum Gsplat particle scale (default: 0.005)\n maxScale,\n // The average direction of fall (default: (0, -1, 0))\n fallDirection,\n // The average speed of the fall (multiplied with fallDirection) (default: 0.02)\n fallVelocity,\n // The world scale of wandering overlay motion (default: 0.01)\n wanderScale,\n // Controls how uniformly the particles wander in sync, more variance mean\n // more randomness in the motion (default: 2)\n wanderVariance,\n // Color 1 of the two colors interpolated between (default: (1, 1, 1))\n color1,\n // Color 2 of the two colors interpolated between (default: (0.5, 0.5, 1))\n color2,\n // The base opacity of the Gsplats (default: 1)\n opacity,\n // Optional callback function to call each frame.\n onFrame,\n}: {\n box?: THREE.Box3;\n minY?: number;\n numSplats?: number;\n density?: number;\n anisoScale?: THREE.Vector3;\n minScale?: number;\n maxScale?: number;\n fallDirection?: THREE.Vector3;\n fallVelocity?: number;\n wanderScale?: number;\n wanderVariance?: number;\n color1?: THREE.Color;\n color2?: THREE.Color;\n opacity?: number;\n onFrame?: ({\n object,\n time,\n deltaTime,\n }: { object: SplatGenerator; time: number; deltaTime: number }) => void;\n}) {\n box =\n box ??\n new THREE.Box3(new THREE.Vector3(-1, -1, -1), new THREE.Vector3(1, 1, 1));\n const volume =\n (box.max.x - box.min.x) * (box.max.y - box.min.y) * (box.max.z - box.min.z);\n density = density ?? 100;\n numSplats =\n numSplats ?? Math.max(1, Math.min(1000000, Math.round(volume * density)));\n\n const dynoMinScale = dynoFloat(minScale ?? 0.001);\n const dynoMaxScale = dynoFloat(maxScale ?? 0.005);\n const dynoAnisoScale = dynoVec3(\n (anisoScale?.clone() ?? new THREE.Vector3(1, 1, 1)).normalize(),\n );\n const dynoFallDirection = dynoVec3(\n (fallDirection ?? new THREE.Vector3(0, -1, 0)).normalize(),\n );\n const dynoFallVelocity = dynoFloat(fallVelocity ?? 0.02);\n const dynoWanderScale = dynoFloat(wanderScale ?? 0.01);\n const dynoWanderVariance = dynoFloat(wanderVariance ?? 2);\n const dynoColor1 = dynoVec3(color1 ?? new THREE.Color(1, 1, 1));\n const dynoColor2 = dynoVec3(color2 ?? new THREE.Color(0.5, 0.5, 1));\n const dynoOpacity = dynoFloat(opacity ?? 1);\n\n const dynoTime = dynoFloat(0);\n const globalOffset = dynoVec3(new THREE.Vector3(0, 0, 0));\n const dynoMin = dynoVec3(box.min);\n const dynoMax = dynoVec3(box.max);\n const dynoMinY = dynoFloat(minY ?? Number.NEGATIVE_INFINITY);\n const minMax = sub(dynoMax, dynoMin);\n const snow = new SplatGenerator({\n numSplats,\n generator: dynoBlock(\n { index: \"int\" },\n { gsplat: Gsplat },\n ({ index }) => {\n if (!index) {\n throw new Error(\"index not defined\");\n }\n const random = hashVec4(index);\n const randomW = split(random).outputs.w;\n let position = vec3(random);\n\n let size = fract(mul(randomW, dynoConst(\"float\", 100)));\n size = sin(mul(dynoLiteral(\"float\", \"PI\"), size));\n size = add(dynoMinScale, mul(size, sub(dynoMaxScale, dynoMinScale)));\n const scales = mul(size, dynoAnisoScale);\n\n const intensity = fract(mul(randomW, dynoConst(\"float\", 10)));\n const hue = fract(randomW);\n const color = mix(dynoColor1, dynoColor2, hue);\n const rgb = mul(color, intensity);\n\n const random2 = hashVec4(\n combine({\n vectorType: \"ivec2\",\n x: index,\n y: dynoConst(\"int\", 0x1ab5),\n }),\n );\n let perturb = vec3(random2);\n let timeOffset = mul(split(random2).outputs.w, dynoWanderVariance);\n timeOffset = add(dynoTime, timeOffset);\n\n position = add(position, globalOffset);\n const modulo = mod(\n position,\n dynoConst(\"vec3\", new THREE.Vector3(1, 1, 1)),\n );\n position = add(dynoMin, mul(minMax, modulo));\n\n const quaternion = dynoConst(\"vec4\", new THREE.Quaternion(0, 0, 0, 1));\n\n perturb = sin(add(vec3(timeOffset), perturb));\n perturb = mul(perturb, dynoWanderScale);\n let center = add(position, perturb);\n\n let centerY = split(center).outputs.y;\n centerY = max(dynoMinY, centerY);\n center = combine({ vector: center, y: centerY });\n\n let gsplat = combineGsplat({\n flags: dynoLiteral(\"uint\", \"GSPLAT_FLAG_ACTIVE\"),\n index: index,\n center,\n scales,\n quaternion,\n rgb,\n opacity: dynoOpacity,\n });\n gsplat = transformer.applyGsplat(gsplat);\n return { gsplat };\n },\n {\n globals: () => [defineGsplat],\n },\n ),\n update: ({ object, time, deltaTime }) => {\n dynoTime.value = time;\n const _updated = transformer.update(snow);\n\n const fallDelta = dynoFallDirection.value\n .clone()\n .multiplyScalar(dynoFallVelocity.value * deltaTime);\n globalOffset.value.add(fallDelta);\n\n // Enable/disable splats based on opacity\n object.visible = dynoOpacity.value > 0;\n\n onFrame?.({ object, time, deltaTime });\n snow.updateVersion();\n },\n });\n const transformer: SplatTransformer = new SplatTransformer();\n return {\n snow,\n min: dynoMin,\n max: dynoMax,\n minY: dynoMinY,\n color1: dynoColor1,\n color2: dynoColor2,\n opacity: dynoOpacity,\n fallVelocity: dynoFallVelocity,\n wanderVariance: dynoWanderVariance,\n wanderScale: dynoWanderScale,\n fallDirection: dynoFallDirection,\n minScale: dynoMinScale,\n maxScale: dynoMaxScale,\n anisoScale: dynoAnisoScale,\n };\n}\n\nexport type SNOW_RESULT_TYPE = ReturnType;\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n Gsplat,\n add,\n combineGsplat,\n dot,\n dynoBlock,\n dynoConst,\n greaterThanEqual,\n gsplatNormal,\n mul,\n neg,\n select,\n splitGsplat,\n} from \"../dyno\";\n\nexport function makeNormalColorModifier(splatToView: SplatTransformer) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let normal = gsplatNormal(gsplat);\n\n const viewGsplat = splatToView.applyGsplat(gsplat);\n const viewCenter = splitGsplat(viewGsplat).outputs.center;\n const viewNormal = gsplatNormal(viewGsplat);\n const splatDot = dot(viewCenter, viewNormal);\n\n const sameDir = greaterThanEqual(splatDot, dynoConst(\"float\", 0));\n normal = select(sameDir, neg(normal), normal);\n const rgb = add(\n mul(normal, dynoConst(\"float\", 0.5)),\n dynoConst(\"float\", 0.5),\n );\n\n gsplat = combineGsplat({ gsplat, rgb });\n return { gsplat };\n });\n}\n\nexport function setWorldNormalColor(splats: SplatMesh) {\n splats.enableWorldToView = true;\n splats.worldModifier = makeNormalColorModifier(splats.context.worldToView);\n splats.updateGenerator();\n}\n","import type { SplatTransformer } from \"../SplatGenerator\";\nimport type { SplatMesh } from \"../SplatMesh\";\nimport {\n type DynoVal,\n Gsplat,\n combineGsplat,\n dynoBlock,\n dynoConst,\n neg,\n normalizedDepth,\n select,\n split,\n splitGsplat,\n sub,\n} from \"../dyno\";\n\nexport function makeDepthColorModifier(\n splatToView: SplatTransformer,\n minDepth: DynoVal<\"float\">,\n maxDepth: DynoVal<\"float\">,\n reverse: DynoVal<\"bool\">,\n) {\n return dynoBlock({ gsplat: Gsplat }, { gsplat: Gsplat }, ({ gsplat }) => {\n if (!gsplat) {\n throw new Error(\"No gsplat input\");\n }\n let { center } = splitGsplat(gsplat).outputs;\n center = splatToView.apply(center);\n const { z } = split(center).outputs;\n let depth = normalizedDepth(neg(z), minDepth, maxDepth);\n depth = select(reverse, sub(dynoConst(\"float\", 1), depth), depth);\n\n gsplat = combineGsplat({ gsplat, r: depth, g: depth, b: depth });\n return { gsplat };\n });\n}\n\nexport function setDepthColor(\n splats: SplatMesh,\n minDepth: number,\n maxDepth: number,\n reverse?: boolean,\n) {\n splats.enableWorldToView = true;\n const dynoMinDepth = dynoConst(\"float\", minDepth);\n const dynoMaxDepth = dynoConst(\"float\", maxDepth);\n const dynoReverse = dynoConst(\"bool\", reverse ?? false);\n splats.worldModifier = makeDepthColorModifier(\n splats.context.worldToView,\n dynoMinDepth,\n dynoMaxDepth,\n dynoReverse,\n );\n splats.updateGenerator();\n return {\n minDepth: dynoMinDepth,\n maxDepth: dynoMaxDepth,\n reverse: dynoReverse,\n };\n}\n","import * as THREE from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\nexport interface SparkXrOptions {\n renderer: THREE.WebGLRenderer;\n // Element to attach enter/exit click handler to\n element?: HTMLElement;\n // ID of element to attach enter/exit click handler to\n elementId?: string;\n // Create a button to enter/exit XR\n // Optionally provide button text or HTML\n // Default is true - create a button\n button?: boolean | SparkXrButton;\n // Blur out element when mouse leaves it\n // Default is 0.5 - 50% opacity\n onMouseLeaveOpacity?: number;\n // Default is \"vrar\" - Try VR then AR\n mode?: \"vr\" | \"ar\" | \"arvr\" | \"vrar\";\n // fixedFoveation: XrManager.setFoveation(...)\n fixedFoveation?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRWebGLLayer/XRWebGLLayer#framebufferscalefactor\n // Default is 0.5 - 50% resolution for better frame rate\n frameBufferScaleFactor?: number;\n // https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpace#reference_space_types\n // Defaults is \"local\" - origin is the user's position when starting XR session\n referenceSpaceType?: \"local\" | \"local-floor\" | \"unbounded\" | \"viewer\";\n // Enable hand tracking\n // Default is false\n enableHands?: boolean;\n // Allow WebXR entry on mobile phones that expose navigator.xr\n // Defaults to false - blocks phones to avoid unusable split-screen modes\n allowMobileXr?: boolean;\n // Session init options\n // Default is empty - no additional options\n sessionInit?: XRSessionInit;\n // Callback function called when SparkXr is ready\n // Default is undefined - no callback\n onReady?: (supported: boolean) => void | Promise;\n // Callback function called when entering XR\n // Default is undefined - no callback\n onEnterXr?: () => void | Promise;\n // Callback function called when exiting XR\n // Default is undefined - no callback\n onExitXr?: () => void | Promise;\n // ztroller movement and rotation options\n controllers?: SparkXrControllers;\n}\n\nexport interface SparkXrButton {\n enterXrHtml?: string;\n exitXrHtml?: string;\n enterVrHtml?: string;\n exitVrHtml?: string;\n enterArHtml?: string;\n exitArHtml?: string;\n enterXrText?: string;\n exitXrText?: string;\n enterVrText?: string;\n exitVrText?: string;\n enterArText?: string;\n exitArText?: string;\n style?: CSSStyleDeclaration;\n enterStyle?: CSSStyleDeclaration;\n exitStyle?: CSSStyleDeclaration;\n zIndex?: number;\n}\n\nexport type XrGamepads = {\n left?: Gamepad;\n right?: Gamepad;\n leftIsHand?: boolean;\n rightIsHand?: boolean;\n};\n\nexport interface SparkXrControllers {\n moveSpeed?: number;\n rotateSpeed?: number;\n rollSpeed?: number;\n fastMultiplier?: number;\n slowMultiplier?: number;\n moveHeading?: boolean;\n moveDirection?: boolean;\n getMove?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getRotate?: (gamepads: XrGamepads, sparkXr: SparkXr) => THREE.Vector3;\n getFast?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n getSlow?: (gamepads: XrGamepads, sparkXr: SparkXr) => boolean;\n}\n\nexport const DEFAULT_CONTROLLER_MOVE_SPEED = 1.0;\nexport const DEFAULT_CONTROLLER_ROTATE_SPEED = 4.0;\nexport const DEFAULT_CONTROLLER_ROLL_SPEED = 2.0;\nexport const DEFAULT_CONTROLLER_FAST_MULTIPLIER = 5;\nexport const DEFAULT_CONTROLLER_SLOW_MULTIPLIER = 1 / 5;\nexport const DEFAULT_CONTROLLER_MOVE_HEADING = false;\n\nexport const DEFAULT_CONTROLLER_GETMOVE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.leftIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(\n gamepads.left?.axes[2] ?? 0,\n (gamepads.left?.buttons[0].value ?? 0) -\n (gamepads.left?.buttons[1].value ?? 0),\n gamepads.left?.axes[3] ?? 0,\n );\nexport const DEFAULT_CONTROLLER_GETROTATE = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand\n ? new THREE.Vector3()\n : new THREE.Vector3(gamepads.right?.axes[2] ?? 0, 0, 0);\nexport const DEFAULT_CONTROLLER_GETFAST = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[0]?.pressed ?? false);\nexport const DEFAULT_CONTROLLER_GETSLOW = (\n gamepads: XrGamepads,\n sparkXr: SparkXr,\n) =>\n gamepads.rightIsHand ? false : (gamepads.right?.buttons[1]?.pressed ?? false);\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.015,\n t1: 0.012,\n t2: 0.0105,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nconst XR_HEADSET_HINTS =\n /Quest|OculusBrowser|VisionOS|XRBrowser|Pico|Lynx|MagicLeap/i;\n\nfunction isLikelyMobilePhone() {\n const ua = navigator.userAgent ?? \"\";\n if (XR_HEADSET_HINTS.test(ua)) {\n return false;\n }\n\n const androidMobile = /Android/i.test(ua) || /Mobile/i.test(ua);\n if (androidMobile) {\n return true;\n }\n\n const uaData = (\n navigator as Navigator & {\n userAgentData?: { mobile?: boolean };\n }\n ).userAgentData;\n if (uaData && typeof uaData.mobile === \"boolean\") {\n return uaData.mobile;\n }\n\n return false;\n}\n\nexport type Joint = {\n position: THREE.Vector3;\n quaternion: THREE.Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\n\nexport class SparkXr {\n renderer: THREE.WebGLRenderer;\n xr?: XRSystem;\n element?: HTMLElement;\n button?: SparkXrButton;\n mode: XRSessionMode | \"initializing\" | \"not_supported\";\n sessionInit?: XRSessionInit;\n session?: XRSession;\n onEnterXr?: () => void;\n onExitXr?: () => void;\n\n controllers?: SparkXrControllers;\n lastControllersUpdate = 0;\n\n enableHands: boolean;\n hands: XrHand[] = [];\n\n constructor(options: SparkXrOptions) {\n this.renderer = options.renderer;\n this.xr = navigator.xr;\n this.mode = \"initializing\";\n this.onEnterXr = options.onEnterXr;\n this.onExitXr = options.onExitXr;\n this.enableHands = options.enableHands ?? false;\n this.controllers = options.controllers;\n\n Promise.resolve()\n .then(() => {\n if (!this.xr) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (!options.allowMobileXr && isLikelyMobilePhone()) {\n this.mode = \"not_supported\";\n return;\n }\n\n if (this.enableHands) {\n this.hands = [new XrHand(Hand.left), new XrHand(Hand.right)];\n }\n\n let element: HTMLElement | undefined = undefined;\n let button: SparkXrButton | undefined = undefined;\n if (options.element) {\n element = options.element;\n } else if (options.elementId) {\n element = document.getElementById(options.elementId) ?? undefined;\n } else {\n element = SparkXr.createButton();\n button =\n options.button == null || typeof options.button === \"boolean\"\n ? {}\n : options.button;\n }\n\n if (!element) {\n throw new Error(\"No element or button provided\");\n }\n\n element.style.display = \"none\";\n element.classList.add(\"hidden\");\n this.button = button;\n this.element = element;\n\n const opacity = options.onMouseLeaveOpacity?.toString();\n if (opacity !== undefined) {\n element.addEventListener(\"mouseleave\", () => {\n element.style.opacity = opacity;\n });\n element.addEventListener(\"mouseenter\", () => {\n element.style.opacity = \"\";\n });\n }\n\n return this.initializeXr(options);\n })\n .then(() => {\n return options.onReady?.(this.mode !== \"not_supported\");\n })\n .catch((error) => {\n alert(`Error initializing SparkXr: ${error}`);\n });\n }\n\n private async initializeXr(options: SparkXrOptions) {\n if (!this.xr || !this.element) {\n return;\n }\n const element = this.element;\n\n const modes = {\n vr: [\"immersive-vr\"],\n ar: [\"immersive-ar\"],\n arvr: [\"immersive-ar\", \"immersive-vr\"],\n vrar: [\"immersive-vr\", \"immersive-ar\"],\n }[options.mode ?? \"vrar\"] as XRSessionMode[] | undefined;\n if (!modes) {\n throw new Error(`Invalid mode: ${options.mode}`);\n }\n\n let supported = null;\n for (const mode of modes) {\n if (await this.xr.isSessionSupported(mode)) {\n supported = mode;\n break;\n }\n }\n\n if (!supported) {\n this.mode = \"not_supported\";\n return;\n }\n this.mode = supported;\n\n const referenceSpaceType = options.referenceSpaceType ?? \"local\";\n\n this.renderer.xr.enabled = true;\n this.renderer.xr.setReferenceSpaceType(referenceSpaceType);\n\n if (options.fixedFoveation !== undefined) {\n this.renderer.xr.setFoveation(options.fixedFoveation);\n }\n const frameBufferScaleFactor = options.frameBufferScaleFactor ?? 0.5;\n this.renderer.xr.setFramebufferScaleFactor(frameBufferScaleFactor);\n\n const optionalFeatures = options.sessionInit?.optionalFeatures ?? [];\n if (options.enableHands) {\n optionalFeatures.push(\"hand-tracking\");\n }\n\n const requiredFeatures = options.sessionInit?.requiredFeatures ?? [];\n requiredFeatures.push(referenceSpaceType);\n\n this.sessionInit = {\n ...options.sessionInit,\n optionalFeatures,\n requiredFeatures,\n };\n // console.log(\"* this.sessionInit\", this.sessionInit);\n\n element.addEventListener(\"click\", () => {\n this.toggleXr();\n });\n\n this.updateElement();\n }\n\n async toggleXr() {\n if (!this.xr || !this.sessionInit) {\n // console.log(\"* !this.xr || !this.sessionInit\");\n return;\n }\n\n if (!this.session) {\n try {\n const mode = this.mode as XRSessionMode;\n const session = await this.xr.requestSession(mode, this.sessionInit);\n this.session = session;\n // console.log(\"* this.session\", this.session);\n\n const onSessionEnded = () => {\n session?.removeEventListener(\"end\", onSessionEnded);\n session?.removeEventListener(\"visibilitychange\", visibilityChanged);\n this.session = undefined;\n\n this.updateElement();\n this.onExitXr?.();\n };\n\n let lastVisibilityState = session.visibilityState;\n const visibilityChanged = () => {\n if (\n session?.visibilityState === \"visible-blurred\" &&\n lastVisibilityState === \"visible\"\n ) {\n session?.end();\n }\n lastVisibilityState = session?.visibilityState;\n };\n\n this.session?.addEventListener(\"end\", onSessionEnded);\n this.session?.addEventListener(\"visibilitychange\", visibilityChanged);\n\n await this.renderer.xr.setSession(this.session);\n // console.log(\"* setSession\");\n\n return this.onEnterXr?.();\n } catch (error) {\n console.error(\"Error requesting XR session\", error);\n return;\n }\n } else {\n this.session.end();\n // console.log(\"* end session\");\n }\n }\n\n private updateElement() {\n const mode = this.mode as XRSessionMode;\n const element = this.element;\n if (element) {\n element.style.display = \"\";\n element.classList.remove(\"hidden\");\n\n const button = typeof this.button === \"boolean\" ? {} : this.button;\n if (button) {\n if (!this.session) {\n const enterHtml =\n (mode === \"immersive-vr\"\n ? button.enterVrHtml\n : button.enterArHtml) ?? button.enterXrHtml;\n const enterText =\n (mode === \"immersive-vr\"\n ? button.enterVrText\n : button.enterArText) ?? button.enterXrText;\n if (enterHtml) {\n element.innerHTML = enterHtml;\n } else if (enterText) {\n element.textContent = enterText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"ENTER VR\" : \"ENTER AR\";\n }\n } else {\n const exitHtml =\n (mode === \"immersive-vr\" ? button.exitVrHtml : button.exitArHtml) ??\n button.exitXrHtml;\n const exitText =\n (mode === \"immersive-vr\" ? button.exitVrText : button.exitArText) ??\n button.exitXrText;\n if (exitHtml) {\n element.innerHTML = exitHtml;\n } else if (exitText) {\n element.textContent = exitText;\n } else {\n element.textContent =\n mode === \"immersive-vr\" ? \"EXIT VR\" : \"EXIT AR\";\n }\n }\n\n element.style.display = \"\";\n }\n }\n }\n\n private static createButton() {\n const button = document.createElement(\"button\");\n Object.assign(button.style, {\n position: \"absolute\",\n bottom: \"20px\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n padding: \"40px 40px\",\n border: \"2px solid #fff\",\n borderRadius: \"16px\",\n background: \"rgba(0,0,0,0.1)\",\n color: \"#fff\",\n font: \"bold 28px sans-serif\",\n textAlign: \"center\",\n userSelect: \"none\",\n zIndex: \"999\",\n });\n document.body.appendChild(button);\n return button;\n }\n\n xrSupported() {\n return !!this.xr;\n }\n\n static JointEnum = JointEnum;\n static JOINT_IDS = JOINT_IDS;\n static NUM_JOINTS = NUM_JOINTS;\n static JOINT_INDEX = JOINT_INDEX;\n static JOINT_RADIUS = JOINT_RADIUS;\n static JOINT_SEGMENTS = JOINT_SEGMENTS;\n static JOINT_SEGMENT_STEPS = JOINT_SEGMENT_STEPS;\n static JOINT_TIPS = JOINT_TIPS;\n static FINGER_TIPS = FINGER_TIPS;\n static Hand = Hand;\n static HANDS = HANDS;\n\n left() {\n return this.hands[0];\n }\n\n right() {\n return this.hands[1];\n }\n\n updateControllers(camera: THREE.Camera) {\n const cameraFrame = camera.parent as THREE.Group;\n\n const now = performance.now();\n const deltaTime = (now - (this.lastControllersUpdate || now)) / 1000;\n this.lastControllersUpdate = now;\n\n const xrGamepads: XrGamepads = {};\n for (const source of this.renderer.xr.getSession()?.inputSources ?? []) {\n const gamepad = source.gamepad;\n if (\n gamepad &&\n (source.handedness === \"left\" || source.handedness === \"right\")\n ) {\n xrGamepads[source.handedness] = gamepad;\n if (source.handedness === \"left\") {\n xrGamepads.leftIsHand = !!source.hand;\n } else if (source.handedness === \"right\") {\n xrGamepads.rightIsHand = !!source.hand;\n }\n }\n }\n\n const rotate = (\n this.controllers?.getRotate ?? DEFAULT_CONTROLLER_GETROTATE\n )(xrGamepads, this);\n rotate.multiply(\n new THREE.Vector3(\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rotateSpeed ?? DEFAULT_CONTROLLER_ROTATE_SPEED,\n this.controllers?.rollSpeed ?? DEFAULT_CONTROLLER_ROLL_SPEED,\n ),\n );\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler(-rotate.y, -rotate.x, rotate.z, \"YXZ\");\n const quat = new THREE.Quaternion().setFromEuler(eulers);\n\n const pivot = camera.getWorldPosition(new THREE.Vector3());\n cameraFrame.parent?.worldToLocal(pivot);\n\n cameraFrame.position.sub(pivot);\n cameraFrame.position.applyQuaternion(quat);\n cameraFrame.position.add(pivot);\n cameraFrame.quaternion.premultiply(quat);\n }\n\n const move = (this.controllers?.getMove ?? DEFAULT_CONTROLLER_GETMOVE)(\n xrGamepads,\n this,\n );\n\n let moveSpeed =\n this.controllers?.moveSpeed ?? DEFAULT_CONTROLLER_MOVE_SPEED;\n if (\n (this.controllers?.getFast ?? DEFAULT_CONTROLLER_GETFAST)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_FAST_MULTIPLIER;\n }\n if (\n (this.controllers?.getSlow ?? DEFAULT_CONTROLLER_GETSLOW)(\n xrGamepads,\n this,\n )\n ) {\n moveSpeed *= DEFAULT_CONTROLLER_SLOW_MULTIPLIER;\n }\n\n if (this.controllers?.moveHeading) {\n move.applyQuaternion(camera.quaternion);\n } else if (this.controllers?.moveDirection) {\n SCRATCH_EULER.setFromQuaternion(camera.quaternion, \"YXZ\");\n SCRATCH_EULER.x = 0;\n SCRATCH_EULER.z = 0;\n SCRATCH_QUAT_A.setFromEuler(SCRATCH_EULER);\n move.applyQuaternion(SCRATCH_QUAT_A);\n }\n move.applyQuaternion(cameraFrame.quaternion);\n\n move.multiplyScalar(deltaTime * moveSpeed);\n cameraFrame.position.add(move);\n }\n\n updateHands({ xrFrame }: { xrFrame: XRFrame }) {\n const xrSession = this.renderer.xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = this.renderer.xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n for (const hand of this.hands) {\n if (hand) {\n hand.lastJoints = hand.joints;\n hand.joints = undefined;\n }\n }\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n const hand = inputSource.handedness as Hand;\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n if (!xrHand) {\n continue;\n }\n\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n\n if (!xrHand.joints) {\n xrHand.joints = {};\n }\n xrHand.joints[jointId] = {\n position: new THREE.Vector3(position.x, position.y, position.z),\n quaternion: new THREE.Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: JOINT_RADIUS[jointId],\n };\n }\n }\n }\n }\n }\n\n makeJointSplats(hand: Hand): JointSplats {\n const mesh = new JointSplats(hand);\n mesh.onFrame = () => {\n const xrHand = this.hands[hand === Hand.left ? 0 : 1];\n const joints = xrHand?.joints;\n mesh.updateJoints(joints);\n };\n return mesh;\n }\n\n snapshotHands(time: number) {\n const hands = [\n this.hands[0]?.snapshotJoints(),\n this.hands[1]?.snapshotJoints(),\n ];\n return { time, hands };\n }\n}\n\ntype JointSnapshot = { pos: number[]; quat: number[]; radius: number };\ntype HandSnapshot = { [key in JointId]?: JointSnapshot };\ntype HandsSnapshot = {\n time: number;\n hands: (HandSnapshot | undefined)[];\n};\n\nconst round4 = (value: number) => Math.round(value * 10000) / 10000;\nconst SCRATCH_EULER = new THREE.Euler(0, 0, 0, \"YXZ\");\nconst SCRATCH_QUAT_A = new THREE.Quaternion();\nconst SCRATCH_QUAT_B = new THREE.Quaternion();\n\nexport function lerpHandsSnapshots(\n snapshots: HandsSnapshot[],\n time: number,\n): HandsSnapshot | null {\n if (!snapshots.length) {\n return null;\n }\n\n const first = snapshots[0];\n const last = snapshots[snapshots.length - 1];\n\n if (time < first.time || time > last.time) {\n return null;\n }\n\n const floorIndex = findSnapshotFloorIndex(snapshots, time);\n if (floorIndex === -1) {\n return null;\n }\n\n const from = snapshots[floorIndex];\n const to = snapshots[floorIndex + 1];\n if (!to) {\n return cloneSnapshot(from, time);\n }\n\n const span = to.time - from.time;\n const factor = span > 0 ? (time - from.time) / span : 0;\n\n return interpolateSnapshots(from, to, factor, time);\n}\n\nfunction interpolateSnapshots(\n from: HandsSnapshot,\n to: HandsSnapshot,\n factor: number,\n time: number,\n): HandsSnapshot {\n const maxHands = Math.max(from.hands.length, to.hands.length);\n const hands = Array.from({ length: maxHands }, (_, handIndex) =>\n lerpHandSnapshot(from.hands[handIndex], to.hands[handIndex], factor),\n );\n return { time, hands };\n}\n\nfunction cloneSnapshot(snapshot: HandsSnapshot, time: number): HandsSnapshot {\n return {\n time,\n hands: snapshot.hands.map((hand) => cloneHandSnapshot(hand)),\n };\n}\n\nexport class XrHand {\n hand: Hand;\n joints?: HandJoints;\n lastJoints?: HandJoints;\n\n constructor(hand: Hand) {\n this.hand = hand;\n }\n\n static newFromSnapshot(hand: Hand, snapshot: HandSnapshot) {\n const h = new XrHand(hand);\n h.joints = {};\n for (const jointId of JOINT_IDS) {\n const joint = snapshot[jointId];\n if (!joint) {\n continue;\n }\n h.joints[jointId] = {\n position: new THREE.Vector3(joint.pos[0], joint.pos[1], joint.pos[2]),\n quaternion: new THREE.Quaternion(\n joint.quat[0],\n joint.quat[1],\n joint.quat[2],\n joint.quat[3],\n ),\n radius: joint.radius,\n };\n }\n return h;\n }\n\n valid() {\n return !!this.joints;\n }\n\n snapshotJoints() {\n if (!this.joints) {\n return undefined;\n }\n\n const snapshot: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (!joint) {\n continue;\n }\n snapshot[jointId] = {\n pos: joint.position.toArray().map(round4),\n quat: joint.quaternion.toArray().map(round4),\n radius: round4(joint.radius),\n };\n }\n return snapshot;\n }\n\n toFlatArray() {\n if (!this.joints) {\n return undefined;\n }\n const array = new Float32Array(1 + 25 * 7);\n array[0] = this.hand === Hand.left ? 0 : 1;\n let index = 1;\n for (const jointId of JOINT_IDS) {\n const joint = this.joints[jointId];\n if (joint) {\n array[index] = joint.position.x;\n array[index + 1] = joint.position.y;\n array[index + 2] = joint.position.z;\n array[index + 3] = joint.quaternion.x;\n array[index + 4] = joint.quaternion.y;\n array[index + 5] = joint.quaternion.z;\n array[index + 6] = joint.quaternion.w;\n }\n index += 7;\n }\n return array;\n }\n}\n\nfunction findSnapshotFloorIndex(snapshots: HandsSnapshot[], time: number) {\n let low = 0;\n let high = snapshots.length - 1;\n while (low <= high) {\n const mid = (low + high) >> 1;\n if (snapshots[mid].time <= time) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n return high;\n}\n\nfunction lerpHandSnapshot(\n fromHand?: HandSnapshot,\n toHand?: HandSnapshot,\n factor = 0,\n) {\n if (!fromHand || !toHand) {\n return undefined;\n }\n const hand: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = lerpJointSnapshot(fromHand[jointId], toHand[jointId], factor);\n if (joint) {\n hand[jointId] = joint;\n }\n }\n return hand;\n}\n\nfunction lerpJointSnapshot(\n fromJoint?: JointSnapshot,\n toJoint?: JointSnapshot,\n factor = 0,\n) {\n if (!fromJoint || !toJoint) {\n return undefined;\n }\n const pos = fromJoint.pos.map(\n (value, index) => value + (toJoint.pos[index] - value) * factor,\n );\n const quat = SCRATCH_QUAT_A.fromArray(fromJoint.quat)\n .slerp(SCRATCH_QUAT_B.fromArray(toJoint.quat), factor)\n .toArray();\n const radius =\n fromJoint.radius + (toJoint.radius - fromJoint.radius) * factor;\n\n return { pos, quat, radius };\n}\n\nfunction cloneHandSnapshot(hand?: HandSnapshot) {\n if (!hand) {\n return undefined;\n }\n const clone: HandSnapshot = {};\n for (const jointId of JOINT_IDS) {\n const joint = hand[jointId];\n if (joint) {\n clone[jointId] = cloneJointSnapshot(joint);\n }\n }\n return clone;\n}\n\nfunction cloneJointSnapshot(joint: JointSnapshot): JointSnapshot {\n return {\n pos: [...joint.pos],\n quat: [...joint.quat],\n radius: joint.radius,\n };\n}\n\nexport class JointSplats extends SplatMesh {\n hand: Hand;\n\n constructor(hand: Hand) {\n super({});\n this.hand = hand;\n }\n\n private scratchCenter = new THREE.Vector3();\n private scratchQuat = new THREE.Quaternion(0, 0, 0, 1);\n private scratchScales = new THREE.Vector3().setScalar(0.01);\n private scratchColor = new THREE.Color(1, 1, 1);\n\n updateJoints(joints?: HandJoints) {\n this.visible = false;\n\n if (!joints || !this.packedSplats) {\n return;\n }\n\n this.visible = true;\n let splatIndex = 0;\n\n for (const jointId of JOINT_IDS) {\n const joint = joints[jointId];\n if (!joint) {\n continue;\n }\n this.scratchCenter.copy(joint.position);\n this.scratchQuat.copy(joint.quaternion);\n this.scratchScales.set(\n joint.radius,\n 0.75 * joint.radius,\n 1.5 * joint.radius,\n );\n // this.scratchColor.set((joint.radius * 123) % 1, (joint.radius * 345) % 1, (joint.radius * 234) % 1);\n const opacity = 0.75;\n\n this.packedSplats.setSplat(\n splatIndex,\n this.scratchCenter,\n this.scratchScales,\n this.scratchQuat,\n opacity,\n this.scratchColor,\n );\n splatIndex += 1;\n }\n\n this.packedSplats.numSplats = splatIndex;\n this.packedSplats.needsUpdate = true;\n this.numSplats = splatIndex;\n this.updateVersion();\n }\n}\n","import {\n Color,\n Matrix4,\n type Object3D,\n Quaternion,\n Vector3,\n type WebXRManager,\n} from \"three\";\nimport { SplatMesh } from \"./SplatMesh\";\n\n// Experimental WebXR hand tracking and movement\n\nconst DEFAULT_MOVE_INERTIA = 0.5;\nconst DEFAULT_ROTATE_INERTIA = 0.5;\nconst TOUCH_BIAS = 0.0;\n\nexport enum JointEnum {\n w = \"wrist\",\n t0 = \"thumb-metacarpal\",\n t1 = \"thumb-phalanx-proximal\",\n t2 = \"thumb-phalanx-distal\",\n t3 = \"thumb-tip\",\n i0 = \"index-finger-metacarpal\",\n i1 = \"index-finger-phalanx-proximal\",\n i2 = \"index-finger-phalanx-intermediate\",\n i3 = \"index-finger-phalanx-distal\",\n i4 = \"index-finger-tip\",\n m0 = \"middle-finger-metacarpal\",\n m1 = \"middle-finger-phalanx-proximal\",\n m2 = \"middle-finger-phalanx-intermediate\",\n m3 = \"middle-finger-phalanx-distal\",\n m4 = \"middle-finger-tip\",\n r0 = \"ring-finger-metacarpal\",\n r1 = \"ring-finger-phalanx-proximal\",\n r2 = \"ring-finger-phalanx-intermediate\",\n r3 = \"ring-finger-phalanx-distal\",\n r4 = \"ring-finger-tip\",\n p0 = \"pinky-finger-metacarpal\",\n p1 = \"pinky-finger-phalanx-proximal\",\n p2 = \"pinky-finger-phalanx-intermediate\",\n p3 = \"pinky-finger-phalanx-distal\",\n p4 = \"pinky-finger-tip\",\n}\nexport type JointId = keyof typeof JointEnum;\nexport const JOINT_IDS = Object.keys(JointEnum) as JointId[];\nexport const NUM_JOINTS = JOINT_IDS.length;\n\nexport const JOINT_INDEX: { [key in JointId]: number } = {\n w: 0,\n t0: 1,\n t1: 2,\n t2: 3,\n t3: 4,\n i0: 5,\n i1: 6,\n i2: 7,\n i3: 8,\n i4: 9,\n m0: 10,\n m1: 11,\n m2: 12,\n m3: 13,\n m4: 14,\n r0: 15,\n r1: 16,\n r2: 17,\n r3: 18,\n r4: 19,\n p0: 20,\n p1: 21,\n p2: 22,\n p3: 23,\n p4: 24,\n};\n\nexport const JOINT_RADIUS: { [key in JointId]: number } = {\n w: 0.02,\n t0: 0.02,\n t1: 0.014,\n t2: 0.0115,\n t3: 0.0085,\n i0: 0.022,\n i1: 0.012,\n i2: 0.0085,\n i3: 0.0075,\n i4: 0.0065,\n m0: 0.021,\n m1: 0.012,\n m2: 0.008,\n m3: 0.0075,\n m4: 0.0065,\n r0: 0.019,\n r1: 0.011,\n r2: 0.0075,\n r3: 0.007,\n r4: 0.006,\n p0: 0.012,\n p1: 0.01,\n p2: 0.007,\n p3: 0.0065,\n p4: 0.0055,\n};\n\nexport const JOINT_SEGMENTS: JointId[][] = [\n [\"w\", \"t0\", \"t1\", \"t2\", \"t3\"],\n [\"w\", \"i0\", \"i1\", \"i2\", \"i3\", \"i4\"],\n [\"w\", \"m0\", \"m1\", \"m2\", \"m3\", \"m4\"],\n [\"w\", \"r0\", \"r1\", \"r2\", \"r3\", \"r4\"],\n [\"w\", \"p0\", \"p1\", \"p2\", \"p3\", \"p4\"],\n];\n\nexport const JOINT_SEGMENT_STEPS: number[][] = [\n [8, 10, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n [8, 19, 14, 8, 6],\n];\n\nexport const JOINT_TIPS: JointId[] = [\"t3\", \"i4\", \"m4\", \"r4\", \"p4\"];\nexport const FINGER_TIPS: JointId[] = [\"i4\", \"m4\", \"r4\", \"p4\"];\n\nexport enum Hand {\n left = \"left\",\n right = \"right\",\n}\nexport const HANDS = Object.keys(Hand) as Hand[];\n\nexport type Joint = {\n position: Vector3;\n quaternion: Quaternion;\n radius: number;\n};\n\nexport type HandJoints = { [key in JointId]?: Joint };\nexport type HandsJoints = { [key in Hand]?: HandJoints };\n\nexport class XrHands {\n hands: HandsJoints = {};\n last: HandsJoints = {};\n\n values: Record = {};\n tests: Record = {};\n lastTests: Record = {};\n\n updated = false;\n\n update({ xr, xrFrame }: { xr: WebXRManager; xrFrame: XRFrame }) {\n const xrSession = xr.getSession();\n if (!xrSession) {\n return;\n }\n const referenceSpace = xr.getReferenceSpace();\n if (!referenceSpace) {\n return;\n }\n if (!xrFrame.getJointPose) {\n return;\n }\n\n this.last = this.hands;\n this.lastTests = this.tests;\n\n this.hands = {};\n this.values = {};\n this.tests = {};\n\n for (const inputSource of xrSession.inputSources) {\n if (!inputSource.hand) {\n continue;\n }\n\n const hand = inputSource.handedness as Hand;\n this.hands[hand] = {};\n\n // Iterate over JointId\n for (const jointId of JOINT_IDS) {\n const jointSpace = inputSource.hand.get(JointEnum[jointId]);\n if (jointSpace) {\n const jointPose = xrFrame.getJointPose(jointSpace, referenceSpace);\n if (jointPose) {\n const { position, orientation } = jointPose.transform;\n this.hands[hand][jointId] = {\n position: new Vector3(position.x, position.y, position.z),\n quaternion: new Quaternion(\n orientation.x,\n orientation.y,\n orientation.z,\n orientation.w,\n ),\n radius: jointPose.radius || 0.001,\n };\n }\n }\n }\n }\n\n for (const hand of HANDS) {\n for (const { key, value } of [\n { key: `${hand}AllTips`, value: this.allTipsTouching(hand) },\n {\n key: `${hand}IndexThumb`,\n value: this.touching(hand, \"i4\", hand, \"t3\"),\n },\n {\n key: `${hand}MiddleThumb`,\n value: this.touching(hand, \"m4\", hand, \"t3\"),\n },\n {\n key: `${hand}RingThumb`,\n value: this.touching(hand, \"r4\", hand, \"t3\"),\n },\n {\n key: `${hand}PinkyThumb`,\n value: this.touching(hand, \"p4\", hand, \"t3\"),\n },\n { key: `${hand}TriTips`, value: this.triTipsTouching(hand) },\n ]) {\n this.values[key] = value;\n this.tests[key] =\n value === 1.0\n ? true\n : value === 0.0\n ? false\n : (this.lastTests[key] ?? false);\n }\n }\n }\n\n makeGhostMesh(): SplatMesh {\n const center = new Vector3();\n const scales = new Vector3(0.01, 0.01, 0.01);\n const quaternion = new Quaternion(0, 0, 0, 1);\n const color = new Color(1, 1, 1);\n const CYCLE = Math.PI * 3;\n const WHITE = new Color(1, 1, 1);\n let opacity = 1.0;\n\n const mesh = new SplatMesh({\n onFrame: () => {\n if (!mesh.packedSplats) {\n return;\n }\n let splatIndex = 0;\n for (const handedness of HANDS) {\n const xrHand = this.hands[handedness];\n for (const [index, segment] of JOINT_SEGMENTS.entries()) {\n for (let i = 1; i < segment.length; ++i) {\n const segmentSplats = JOINT_SEGMENT_STEPS[index][i - 1] * 2;\n const lastSegment = i + 1 === segment.length;\n const jointA = xrHand?.[segment[i - 1]];\n const jointB = xrHand?.[segment[i]];\n\n for (let j = 0; j < segmentSplats; ++j) {\n const t = (j + 0.5) / segmentSplats;\n opacity = 0.0;\n if (jointA && jointB) {\n center.copy(jointA.position).lerp(jointB.position, t);\n quaternion\n .copy(jointA.quaternion)\n .slerp(jointB.quaternion, t);\n const radiusA = JOINT_RADIUS[segment[i - 1]];\n const radiusB = JOINT_RADIUS[segment[i]];\n let radius = (1 - t) * radiusA + t * radiusB;\n if (lastSegment && t > 0.8) {\n // Round out finger tips\n radius *= Math.sqrt(1 - ((t - 0.8) / 0.2) ** 2);\n }\n scales.set(0.65 * radius, 0.5 * radius, 0.003);\n color.set(\n 0.55 + 0.45 * Math.sin(center.x * CYCLE),\n 0.55 + 0.45 * Math.sin(center.y * CYCLE),\n 0.55 + 0.45 * Math.sin(center.z * CYCLE),\n );\n if (handedness === \"right\") {\n color.set(1 - color.r, 1 - color.g, 1 - color.b);\n }\n opacity = 0.75;\n }\n mesh.packedSplats.setSplat(\n splatIndex,\n center,\n scales,\n quaternion,\n opacity,\n color,\n );\n splatIndex += 1;\n }\n }\n }\n }\n mesh.packedSplats.numSplats = splatIndex;\n mesh.packedSplats.needsUpdate = true;\n mesh.numSplats = splatIndex;\n mesh.updateVersion();\n },\n });\n return mesh;\n }\n\n distance(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const hA = last ? this.last[handA] : this.hands[handA];\n const hB = last ? this.last[handB] : this.hands[handB];\n const jA = hA?.[jointA];\n const jB = hB?.[jointB];\n if (!jA || !jB) {\n return Number.POSITIVE_INFINITY;\n }\n return jA.position.distanceTo(jB.position);\n }\n\n separation(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.distance(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return d - JOINT_RADIUS[jointA] - JOINT_RADIUS[jointB];\n }\n\n touching(\n handA: Hand,\n jointA: JointId,\n handB: Hand,\n jointB: JointId,\n last = false,\n ): number {\n const d = this.separation(handA, jointA, handB, jointB, last);\n if (d === Number.POSITIVE_INFINITY) {\n return Number.POSITIVE_INFINITY;\n }\n return 1 - Math.max(0, Math.min(1, d / 0.01 - TOUCH_BIAS));\n }\n\n allTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"r4\", last),\n this.touching(hand, \"r4\", hand, \"p4\", last),\n // this.touching(hand, \"p4\", hand, \"t3\", last),\n );\n }\n\n triTipsTouching(hand: Hand, last = false): number {\n return Math.min(\n this.touching(hand, \"t3\", hand, \"i4\", last),\n this.touching(hand, \"i4\", hand, \"m4\", last),\n this.touching(hand, \"m4\", hand, \"t3\", last),\n );\n }\n}\n\nexport class HandMovement {\n xrHands: XrHands;\n control: Object3D;\n moveInertia: number;\n rotateInertia: number;\n\n lastGrip: { [key in Hand]?: Vector3 } = {};\n lastPivot: Vector3 = new Vector3();\n rotateVelocity = 0;\n velocity: Vector3 = new Vector3();\n\n constructor({\n xrHands,\n control,\n moveInertia,\n rotateInertia,\n }: {\n xrHands: XrHands;\n control: Object3D;\n moveInertia?: number;\n rotateInertia?: number;\n }) {\n this.xrHands = xrHands;\n this.control = control;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n }\n\n update(deltaTime: number) {\n const grip: { [key in Hand]?: Vector3 } = {};\n for (const handedness of HANDS) {\n const hand = this.xrHands.hands[handedness];\n if (hand && this.xrHands.tests[`${handedness}MiddleThumb`]) {\n grip[handedness] = new Vector3()\n .add(hand.t3?.position ?? new Vector3())\n .add(hand.i4?.position ?? new Vector3())\n .add(hand.m4?.position ?? new Vector3())\n .add(hand.r4?.position ?? new Vector3())\n .add(hand.p4?.position ?? new Vector3())\n .multiplyScalar(1 / 5);\n }\n }\n\n if (grip.left && grip.right && this.lastGrip.left && this.lastGrip.right) {\n const mid = grip.left.clone().add(grip.right).multiplyScalar(0.5);\n const lastMid = this.lastGrip.left\n .clone()\n .add(this.lastGrip.right)\n .multiplyScalar(0.5);\n this.lastPivot = mid;\n\n const delta = mid.clone().applyMatrix4(this.control.matrix);\n delta.sub(lastMid.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n\n const angle = Math.atan2(grip.left.z - mid.z, grip.left.x - mid.x);\n const lastAngle = Math.atan2(\n this.lastGrip.left.z - lastMid.z,\n this.lastGrip.left.x - lastMid.x,\n );\n // Find closest rotation over circle between angle and lastAngle\n let closestAngle = angle - lastAngle;\n if (closestAngle > Math.PI) {\n closestAngle -= Math.PI * 2;\n } else if (closestAngle < -Math.PI) {\n closestAngle += Math.PI * 2;\n }\n const rotateVelocity = closestAngle / deltaTime;\n\n const blend = Math.exp(-20 * deltaTime);\n this.rotateVelocity =\n this.rotateVelocity * blend + rotateVelocity * (1 - blend);\n } else {\n this.rotateVelocity *= Math.exp(-deltaTime / this.rotateInertia);\n\n if (grip.left && this.lastGrip.left) {\n const delta = grip.left.clone().applyMatrix4(this.control.matrix);\n delta.sub(this.lastGrip.left.clone().applyMatrix4(this.control.matrix));\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else if (grip.right && this.lastGrip.right) {\n const delta = grip.right.clone().applyMatrix4(this.control.matrix);\n delta.sub(\n this.lastGrip.right.clone().applyMatrix4(this.control.matrix),\n );\n delta.multiplyScalar(1 / deltaTime);\n this.velocity.lerp(delta, 1 - Math.exp(-20 * deltaTime));\n } else {\n this.velocity.multiplyScalar(Math.exp(-deltaTime / this.moveInertia));\n }\n }\n\n const negPivot = this.lastPivot.clone().negate();\n const rotate = new Matrix4()\n .makeTranslation(negPivot)\n .premultiply(new Matrix4().makeRotationY(this.rotateVelocity * deltaTime))\n .premultiply(new Matrix4().makeTranslation(this.lastPivot));\n this.control.matrix.multiply(rotate);\n this.control.matrix.decompose(\n this.control.position,\n this.control.quaternion,\n this.control.scale,\n );\n this.control.updateMatrixWorld(true);\n\n this.control.position.sub(this.velocity.clone().multiplyScalar(deltaTime));\n this.lastGrip = grip;\n }\n}\n","import * as THREE from \"three\";\nimport { isAndroid, isIos } from \"./utils\";\n\n// Spark controls for keyboard + mouse, game pad, or mobile multi-touch\n\nconst DEFAULT_MOVEMENT_SPEED = 1.0;\nconst DEFAULT_ROLL_SPEED = 2.0;\nconst DEFAULT_ROTATE_SPEED = 0.002;\nconst DEFAULT_SLIDE_SPEED = 0.006;\nconst DEFAULT_SCROLL_SPEED = 0.0015;\nconst DEFAULT_ROLL_SPRING = 0.0;\nconst DEFAULT_ROTATE_INERTIA = 0.15;\nconst DEFAULT_MOVE_INERTIA = 0.15;\nconst DEFAULT_STICK_THRESHOLD = 0.1;\nconst DEFAULT_FPS_ROTATE_SPEED = 2.0;\n// const DEFAULT_POINTER_ROLL_SCALE = 1.0;\nconst DEFAULT_POINTER_ROLL_SCALE = 0.0;\nconst DEFAULT_PRESS_MOVE_DELAY_MS = 500;\nconst DEFAULT_PRESS_MOVE_ACCEL_MS = 500;\n\n// Time limit for double-finger press (pinch etc)\nconst DUAL_PRESS_MS = 200;\n// Time limit for double-click/double-tap\nconst DOUBLE_PRESS_LIMIT_MS = 400;\n// Distance limit for double-click.\nconst DOUBLE_PRESS_DISTANCE = 25;\n\nconst MOVEMENT_THRESHOLD = 1.0e-4;\n\n// Standard WASD movement keys with R+F for up/down\nconst WASD_KEYCODE_MOVE = {\n KeyW: new THREE.Vector3(0, 0, -1),\n KeyS: new THREE.Vector3(0, 0, 1),\n KeyA: new THREE.Vector3(-1, 0, 0),\n KeyD: new THREE.Vector3(1, 0, 0),\n KeyE: new THREE.Vector3(0, 1, 0),\n KeyQ: new THREE.Vector3(0, -1, 0),\n};\n\n// Arrow key movement with PageUp/PageDown\nconst ARROW_KEYCODE_MOVE = {\n ArrowUp: new THREE.Vector3(0, 0, -1),\n ArrowDown: new THREE.Vector3(0, 0, 1),\n ArrowLeft: new THREE.Vector3(-1, 0, 0),\n ArrowRight: new THREE.Vector3(1, 0, 0),\n PageUp: new THREE.Vector3(0, 1, 0),\n PageDown: new THREE.Vector3(0, -1, 0),\n};\n\n// Rolling with Q/E\nconst QE_KEYCODE_ROTATE = {\n KeyQ: new THREE.Vector3(0, 0, 1),\n KeyE: new THREE.Vector3(0, 0, -1),\n};\n\n// Home/End/Insert/Delete for rotation\nconst ARROW_KEYCODE_ROTATE = {\n Home: new THREE.Vector3(0, -1, 0),\n End: new THREE.Vector3(0, 1, 0),\n Insert: new THREE.Vector3(-1, 0, 0),\n Delete: new THREE.Vector3(1, 0, 0),\n};\n\n// SparkControls provides simple, intuitive controls for navigating 3D space that\n// use the keyboard + mouse, game pad, or mobile multi-touch. Internally it\n// instantiates and updates a `FpsMovement` and `PointerControls` instance.\n\nexport class SparkControls {\n fpsMovement: FpsMovement;\n pointerControls: PointerControls;\n lastTime = 0;\n\n constructor({ canvas }: { canvas: HTMLCanvasElement }) {\n this.fpsMovement = new FpsMovement({});\n this.pointerControls = new PointerControls({ canvas });\n }\n\n update(control: THREE.Object3D, camera?: THREE.Camera) {\n const time = performance.now();\n const deltaTime = (time - (this.lastTime || time)) / 1000;\n this.lastTime = time;\n\n let updated = this.fpsMovement.update(deltaTime, control);\n if (this.pointerControls.update(deltaTime, control, camera)) {\n updated = true;\n }\n return updated;\n }\n}\n\n// FpsMovement implements controls that will be familiar to anyone who plays\n// First Person Shooters using keyboard + mouse or a gamepad. Creating a FpsMovement\n// instance provides many parameters for configuring the controls.\n//\n// When gamepads are connected, FpsMovement will always use gamepad index 0\n// for twin-stick movement and rotation.\n//\n// If xr is passed in, the WebXR controllers can be used as a split gamepad\n// to control movement and rotation. (tested on Quest 3)\n\nexport class FpsMovement {\n moveSpeed: number;\n rollSpeed: number;\n stickThreshold: number;\n rotateSpeed: number;\n keycodeMoveMapping: { [key: string]: THREE.Vector3 };\n keycodeRotateMapping: { [key: string]: THREE.Vector3 };\n gamepadMapping: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n capsMultiplier: number;\n shiftMultiplier: number;\n ctrlMultiplier: number;\n xr?: THREE.WebXRManager;\n // Enable/disable controls updates\n enable = true;\n extraMove = new THREE.Vector3();\n\n // Currently active event.key values\n keydown: { [key: string]: boolean };\n // Currently active event.code values\n keycode: { [key: string]: boolean };\n\n constructor({\n moveSpeed,\n rollSpeed,\n stickThreshold,\n rotateSpeed,\n keycodeMoveMapping,\n keycodeRotateMapping,\n gamepadMapping,\n capsMultiplier,\n shiftMultiplier,\n ctrlMultiplier,\n xr,\n }: {\n // Base movement speed (default DEFAULT_MOVEMENT_SPEED)\n moveSpeed?: number;\n // Base roll speed (default DEFAULT_ROLL_SPEED)\n rollSpeed?: number;\n // Stick threshold (default DEFAULT_STICK_THRESHOLD)\n stickThreshold?: number;\n // Speed of rotation when using gamepad or keys (default DEFAULT_FPS_ROTATE_SPEED)\n rotateSpeed?: number;\n // Maps keyboard keys to movement directions\n // (default {...WASD_KEYCODE_MOVE, ...ARROW_KEYCODE_MOVE})\n keycodeMoveMapping?: { [key: string]: THREE.Vector3 };\n // Maps keyboard keys to rotation directions\n // (default { ...ARROW_KEYCODE_ROTATE})\n keycodeRotateMapping?: { [key: string]: THREE.Vector3 };\n // Maps gamepad buttons to control actions\n // (default {4: \"rollLeft\", 5: \"rollRight\", 6: \"ctrl\", 7: \"shift\"})\n gamepadMapping?: {\n [button: number]: \"shift\" | \"ctrl\" | \"rollLeft\" | \"rollRight\";\n };\n // Speed multiplier when Caps Lock is active (default: 10)\n capsMultiplier?: number;\n // Speed multiplier when Shift is active (default: 5)\n shiftMultiplier?: number;\n // Speed multiplier when Ctrl is active (default: 1/5)\n ctrlMultiplier?: number;\n // Optional WebXR manager for XR controller stick support\n xr?: THREE.WebXRManager;\n } = {}) {\n this.moveSpeed = moveSpeed ?? DEFAULT_MOVEMENT_SPEED;\n this.rollSpeed = rollSpeed ?? DEFAULT_ROLL_SPEED;\n this.stickThreshold = stickThreshold ?? DEFAULT_STICK_THRESHOLD;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_FPS_ROTATE_SPEED;\n this.keycodeMoveMapping = keycodeMoveMapping ?? {\n ...WASD_KEYCODE_MOVE,\n ...ARROW_KEYCODE_MOVE,\n };\n this.keycodeRotateMapping = keycodeRotateMapping ?? {\n // ...QE_KEYCODE_ROTATE,\n ...ARROW_KEYCODE_ROTATE,\n };\n this.gamepadMapping = gamepadMapping ?? {\n 4: \"rollLeft\",\n 5: \"rollRight\",\n 6: \"ctrl\",\n 7: \"shift\",\n };\n this.capsMultiplier = capsMultiplier ?? 10.0;\n this.shiftMultiplier = shiftMultiplier ?? 5.0;\n this.ctrlMultiplier = ctrlMultiplier ?? 1.0 / 5.0;\n\n this.xr = xr;\n\n this.keydown = {};\n this.keycode = {};\n\n document.addEventListener(\"keydown\", (event) => {\n this.keydown[event.key] = true;\n this.keycode[event.code] = true;\n });\n document.addEventListener(\"keyup\", (event) => {\n this.keydown[event.key] = false;\n this.keycode[event.code] = false;\n });\n window.addEventListener(\"blur\", () => {\n this.keydown = {};\n this.keycode = {};\n });\n }\n\n // Call this method in your render loop with `control` set to the object to control\n // (`THREE.Camera` or a `THREE.Object3D` that contains it), with `deltaTime`\n // in seconds since the last update.\n update(deltaTime: number, control: THREE.Object3D) {\n if (!this.enable) {\n return false;\n }\n\n // Update gamepad / XR controllers\n\n const sticks = [new THREE.Vector2(), new THREE.Vector2()];\n const gamepad = navigator.getGamepads()[0];\n if (gamepad) {\n sticks[0].set(gamepad.axes[0], gamepad.axes[1]);\n sticks[1].set(gamepad.axes[2], gamepad.axes[3]);\n }\n const gamepadButtons =\n gamepad?.buttons.map((button) => button.pressed) || [];\n\n const xrSources = Array.from(this.xr?.getSession()?.inputSources ?? []);\n for (const source of xrSources) {\n const gamepad = source.gamepad;\n if (gamepad) {\n switch (source.handedness) {\n case \"none\": {\n sticks[0].x += gamepad.axes[0];\n sticks[0].y += gamepad.axes[1];\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n case \"left\": {\n sticks[0].x += gamepad.axes[2];\n sticks[0].y += gamepad.axes[3];\n break;\n }\n case \"right\": {\n sticks[1].x += gamepad.axes[2];\n sticks[1].y += gamepad.axes[3];\n break;\n }\n }\n }\n }\n\n for (const stick of sticks) {\n stick.x = Math.abs(stick.x) >= this.stickThreshold ? stick.x : 0;\n stick.y = Math.abs(stick.y) >= this.stickThreshold ? stick.y : 0;\n }\n\n // Rotation\n\n const rotate = new THREE.Vector3(\n sticks[1].x,\n sticks[1].y,\n 0,\n ).multiplyScalar(this.rotateSpeed);\n\n for (const [keycode, rot] of Object.entries(this.keycodeRotateMapping)) {\n if (this.keycode[keycode]) {\n rotate.add(rot);\n }\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"rollLeft\":\n rotate.z += 1;\n break;\n case \"rollRight\":\n rotate.z -= 1;\n break;\n }\n }\n }\n\n rotate.multiply(\n new THREE.Vector3(this.rotateSpeed, this.rotateSpeed, this.rollSpeed),\n );\n\n let updated = rotate.length() > MOVEMENT_THRESHOLD;\n\n if (rotate.manhattanLength() > 0.0) {\n rotate.multiplyScalar(deltaTime);\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z = Math.max(-Math.PI, Math.min(Math.PI, eulers.z + rotate.z));\n control.quaternion.setFromEuler(eulers);\n }\n\n // Movement\n\n const moveVector = new THREE.Vector3(sticks[0].x, 0, sticks[0].y);\n moveVector.add(this.extraMove);\n\n for (const [keycode, move] of Object.entries(this.keycodeMoveMapping)) {\n if (this.keycode[keycode]) {\n moveVector.add(move);\n }\n }\n\n let speedMultiplier = 1.0;\n if (this.keydown.CapsLock) {\n speedMultiplier *= this.capsMultiplier;\n }\n if (this.keycode.ShiftLeft || this.keycode.ShiftRight) {\n speedMultiplier *= this.shiftMultiplier;\n }\n if (this.keycode.ControlLeft || this.keycode.ControlRight) {\n speedMultiplier *= this.ctrlMultiplier;\n }\n for (const button in this.gamepadMapping) {\n if (gamepadButtons[Number.parseInt(button)]) {\n switch (this.gamepadMapping[button]) {\n case \"shift\":\n speedMultiplier *= this.shiftMultiplier;\n break;\n case \"ctrl\":\n speedMultiplier *= this.ctrlMultiplier;\n break;\n }\n }\n }\n\n if (moveVector.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Apply movement in view direction\n moveVector.applyQuaternion(control.quaternion);\n control.position.add(\n moveVector.multiplyScalar(this.moveSpeed * speedMultiplier * deltaTime),\n );\n\n return updated;\n }\n}\n\ntype PointerState = {\n initial: THREE.Vector2;\n last: THREE.Vector2;\n position: THREE.Vector2;\n pointerId: number;\n button?: number;\n timeStamp: DOMHighResTimeStamp;\n};\n\n// `PointerControls` implements pointer/mouse/touch controls on the canvas,\n// for both desktop and mobile web applications.\n\nexport class PointerControls {\n canvas: HTMLCanvasElement;\n rotateSpeed: number;\n slideSpeed: number;\n scrollSpeed: number;\n swapRotateSlide: boolean;\n reverseRotate: boolean;\n reverseSlide: boolean;\n reverseSwipe: boolean;\n reverseScroll: boolean;\n moveInertia: number;\n rotateInertia: number;\n pointerRollScale: number;\n // Enable/disable controls updates\n enable = true;\n\n doublePress: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n // Time limit for double press (default DOUBLE_PRESS_LIMIT_MS)\n doublePressLimitMs: number;\n // Distance limit for double press (default DOUBLE_PRESS_DISTANCE)\n doublePressDistance: number;\n\n // Time delay in ms for press move to start\n pressMoveDelayMs: number;\n // Time in ms for press move to accelerate\n pressMoveAccelMs: number;\n // Speed of movement on press (default: 0)\n pressMoveSpeed: number;\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed: number;\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed: number;\n // Whether to move toward the screen center or finger when pressing to move\n pressMoveCenter: boolean;\n pressHeld?: boolean;\n doublePressed?: number;\n triplePressed: boolean;\n // Last pointer up event (default: null)\n lastUp: { position: THREE.Vector2; timeStamp: number } | null;\n lastLastUp: { position: THREE.Vector2; timeStamp: number } | null;\n\n // Pointer state for currently active rotating pointer\n rotating: PointerState | null;\n // Pointer state for currently active sliding pointer\n sliding: PointerState | null;\n // Pointer state for last pointer that downed\n lastDown: PointerState | null;\n // Whether we pressed two pointers at the same time\n dualPress: boolean;\n // Cumulative scroll movement\n scroll: THREE.Vector3;\n\n // Current rotation velocity\n rotateVelocity: THREE.Vector3;\n // Current movement velocity\n moveVelocity: THREE.Vector3;\n\n constructor({\n // The HTML canvas element to attach pointer events to\n canvas,\n // Speed of rotation (default DEFAULT_ROTATE_SPEED)\n rotateSpeed,\n // Speed of sliding when dragging with right/middle mouse button or two fingers\n // (default DEFAULT_SLIDE_SPEED)\n slideSpeed,\n // Speed of movement when using mouse scroll wheel (default DEFAULT_SCROLL_SPEED)\n scrollSpeed,\n // Swap the direction of rotation and sliding (default: false)\n swapRotateSlide,\n // Reverse the direction of rotation (default: false)\n reverseRotate,\n // Reverse the direction of sliding (default: false)\n reverseSlide,\n // Reverse the direction of swipe gestures (default: false)\n reverseSwipe,\n // Reverse the direction of scroll wheel movement (default: false)\n reverseScroll,\n // Inertia factor for movement (default: DEFAULT_MOVE_INERTIA)\n moveInertia,\n // Inertia factor for rotation (default: DEFAULT_ROTATE_INERTIA)\n rotateInertia,\n // Pointer rolling scale factor (default: DEFAULT_POINTER_ROLL_SCALE)\n pointerRollScale,\n // Callback for double press events (default: () => {})\n doublePress,\n // Time delay in ms for press move to start (default: DEFAULT_PRESS_MOVE_DELAY_MS)\n pressMoveDelayMs,\n // Time in ms for press move to accelerate (default: DEFAULT_PRESS_MOVE_ACCEL_MS)\n pressMoveAccelMs,\n // Speed of movement on press (default: 0)\n pressMoveSpeed,\n // Speed of movement on double press (default: pressMoveSpeed * 5.0)\n doublePressMoveSpeed,\n // Speed of movement on triple press (default: doublePressMoveSpeed * 5.0)\n triplePressMoveSpeed,\n // Whether to move toward the screen center or finger when pressing to move (default: true)\n pressMoveCenter,\n }: {\n canvas: HTMLCanvasElement;\n rotateSpeed?: number;\n slideSpeed?: number;\n scrollSpeed?: number;\n swapRotateSlide?: boolean;\n reverseRotate?: boolean;\n reverseSlide?: boolean;\n reverseSwipe?: boolean;\n reverseScroll?: boolean;\n moveInertia?: number;\n rotateInertia?: number;\n pointerRollScale?: number;\n doublePress?: ({\n position,\n intervalMs,\n }: { position: THREE.Vector2; intervalMs: number }) => void;\n pressMoveDelayMs?: number;\n pressMoveAccelMs?: number;\n pressMoveSpeed?: number;\n doublePressMoveSpeed?: number;\n triplePressMoveSpeed?: number;\n pressMoveCenter?: boolean;\n }) {\n this.canvas = canvas;\n this.rotateSpeed = rotateSpeed ?? DEFAULT_ROTATE_SPEED;\n this.slideSpeed = slideSpeed ?? DEFAULT_SLIDE_SPEED;\n this.scrollSpeed = scrollSpeed ?? DEFAULT_SCROLL_SPEED;\n this.swapRotateSlide = swapRotateSlide ?? false;\n this.reverseRotate = reverseRotate ?? (isAndroid() || isIos());\n this.reverseSlide = reverseSlide ?? false;\n this.reverseSwipe = reverseSwipe ?? false;\n this.reverseScroll = reverseScroll ?? false;\n this.moveInertia = moveInertia ?? DEFAULT_MOVE_INERTIA;\n this.rotateInertia = rotateInertia ?? DEFAULT_ROTATE_INERTIA;\n this.pointerRollScale = pointerRollScale ?? DEFAULT_POINTER_ROLL_SCALE;\n\n this.doublePress = doublePress ?? (() => {});\n this.doublePressLimitMs = DOUBLE_PRESS_LIMIT_MS;\n this.doublePressDistance = DOUBLE_PRESS_DISTANCE;\n\n this.pressMoveDelayMs = pressMoveDelayMs ?? DEFAULT_PRESS_MOVE_DELAY_MS;\n this.pressMoveAccelMs = pressMoveAccelMs ?? DEFAULT_PRESS_MOVE_ACCEL_MS;\n this.pressMoveSpeed = pressMoveSpeed ?? 0;\n this.doublePressMoveSpeed =\n doublePressMoveSpeed ?? this.pressMoveSpeed * 5.0;\n this.triplePressMoveSpeed =\n triplePressMoveSpeed ?? this.doublePressMoveSpeed * 5.0;\n this.pressMoveCenter = pressMoveCenter ?? true;\n this.doublePressed = undefined;\n this.triplePressed = false;\n this.lastUp = null;\n this.lastLastUp = null;\n\n this.rotating = null;\n this.sliding = null;\n this.lastDown = null;\n this.dualPress = false;\n this.scroll = new THREE.Vector3();\n\n this.rotateVelocity = new THREE.Vector3();\n this.moveVelocity = new THREE.Vector3();\n\n canvas.addEventListener(\"pointerdown\", (event: PointerEvent) => {\n const position = this.getPointerPosition(event);\n const initial = position.clone();\n const last = position.clone();\n\n // Determine if we're starting a rotation pointer action\n const isRotate =\n (!this.swapRotateSlide &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 0)) ||\n (this.swapRotateSlide &&\n this.sliding &&\n !this.rotating &&\n (event.pointerType !== \"mouse\" || event.button === 1));\n // const isRotate =\n // !this.rotating && (event.pointerType !== \"mouse\" || event.button === 0);\n const { pointerId } = event;\n const timeStamp = performance.now();\n\n if (isRotate) {\n this.rotating = { initial, last, position, pointerId, timeStamp };\n this.lastDown = this.rotating;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n this.dualPress = false;\n } else if (!this.sliding) {\n // If it's not a rotation action and we're not yet sliding, the next\n // pointer activates a sliding action\n const button = event.pointerType === \"mouse\" ? event.button : undefined;\n this.sliding = {\n initial,\n last,\n position,\n pointerId,\n button,\n timeStamp,\n };\n this.lastDown = this.sliding;\n // Capture the pointer so events continue to be delivered even if it leaves the canvas.\n canvas.setPointerCapture(event.pointerId);\n\n // Check if we pressed both pointers at roughly the same time\n this.dualPress =\n this.rotating != null &&\n timeStamp - this.rotating.timeStamp < DUAL_PRESS_MS;\n }\n\n if (this.lastUp) {\n const distance = this.lastUp.position.distanceTo(position);\n const intervalMs = timeStamp - this.lastUp.timeStamp;\n if (\n distance < this.doublePressDistance &&\n intervalMs < this.doublePressLimitMs\n ) {\n this.doublePressed = performance.now();\n this.triplePressed = false;\n\n if (this.lastLastUp) {\n const lastDistance = this.lastLastUp.position.distanceTo(\n this.lastUp.position,\n );\n const lastIntervalMs =\n this.lastUp.timeStamp - this.lastLastUp.timeStamp;\n if (\n lastDistance < this.doublePressDistance &&\n lastIntervalMs < this.doublePressLimitMs\n ) {\n this.triplePressed = true;\n }\n }\n }\n }\n });\n\n const pointerUp = (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.sliding) {\n canvas.releasePointerCapture(this.sliding.pointerId);\n this.sliding = null;\n }\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding = null;\n canvas.releasePointerCapture(event.pointerId);\n if (this.dualPress && this.rotating) {\n canvas.releasePointerCapture(this.rotating.pointerId);\n this.rotating = null;\n }\n }\n\n this.doublePressed = undefined;\n this.triplePressed = false;\n\n const position = this.getPointerPosition(event);\n const lastUp = this.lastUp;\n this.lastLastUp = this.lastUp;\n const timeStamp = performance.now();\n this.lastUp = { position, timeStamp };\n\n if (lastUp) {\n const distance = lastUp.position.distanceTo(position);\n if (distance < this.doublePressDistance) {\n const intervalMs = timeStamp - lastUp.timeStamp;\n if (intervalMs < this.doublePressLimitMs) {\n // We pressed and release twice within the time and distance limits\n // this.lastUp = null;\n this.doublePress({ position, intervalMs });\n }\n }\n }\n };\n\n document.addEventListener(\"pointerup\", pointerUp);\n document.addEventListener(\"pointercancel\", pointerUp);\n\n document.addEventListener(\"pointermove\", (event: PointerEvent) => {\n if (this.rotating?.pointerId === event.pointerId) {\n this.rotating.position = this.getPointerPosition(event);\n } else if (this.sliding?.pointerId === event.pointerId) {\n this.sliding.position = this.getPointerPosition(event);\n }\n });\n\n canvas.addEventListener(\"contextmenu\", (event: MouseEvent) => {\n // Prevent context menu appearing on right click\n event.preventDefault();\n });\n\n canvas.addEventListener(\"wheel\", (event: WheelEvent) => {\n this.scroll.add(\n new THREE.Vector3(event.deltaX, event.deltaY, event.deltaZ),\n );\n event.preventDefault();\n });\n }\n\n getPointerPosition(event: PointerEvent): THREE.Vector2 {\n const rect = this.canvas.getBoundingClientRect();\n return new THREE.Vector2(\n event.clientX - rect.left,\n event.clientY - rect.top,\n );\n }\n\n update(deltaTime: number, control: THREE.Object3D, camera?: THREE.Camera) {\n if (!this.enable) {\n return false;\n }\n\n const now = performance.now();\n let updated = false;\n\n if (this.dualPress && this.rotating && this.sliding) {\n // We pressed both pointers at the same time, either pinching or sliding\n const motion = [\n this.rotating.position.clone().sub(this.rotating.last),\n this.sliding.position.clone().sub(this.sliding.last),\n ];\n const coincidence = motion[0].dot(motion[1]);\n\n if (coincidence >= 0.2) {\n // Similar directions so slide the camera on the XY plane\n const totalMotion = motion[0].clone().add(motion[1]);\n const slide = new THREE.Vector3(totalMotion.x, -totalMotion.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSwipe ? 1 : -1));\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else if (coincidence <= -0.2) {\n // Opposite directions so either pinch or roll motion\n const deltaDir = this.sliding.last.clone().sub(this.rotating.last);\n const deltaDist = deltaDir.length();\n deltaDir.multiplyScalar(1 / deltaDist).normalize();\n\n const orthoDir = new THREE.Vector2(-deltaDir.y, deltaDir.x);\n const motionDir = [motion[0].dot(deltaDir), motion[1].dot(deltaDir)];\n const motionOrtho = [motion[0].dot(orthoDir), motion[1].dot(orthoDir)];\n\n // Pinching motion\n const midpoint = this.rotating.last\n .clone()\n .add(this.sliding.last)\n .multiplyScalar(0.5);\n let midpointDir = new THREE.Vector3();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcMidpoint = new THREE.Vector2(\n (midpoint.x / this.canvas.clientWidth) * 2 - 1,\n -(midpoint.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcMidpoint, theCamera);\n midpointDir = raycaster.ray.direction;\n }\n const pinchOut = motionDir[1] - motionDir[0];\n const slide = midpointDir.multiplyScalar(pinchOut * this.slideSpeed);\n control.position.add(slide);\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n\n // Rolling motion\n // Calculate angle of orthogonal motion change over distance deltaDist/2\n // motionOrtho[0] and 1 are already in float distance\n const angles = [\n Math.atan(motionOrtho[0] / (-0.5 * deltaDist)),\n Math.atan(motionOrtho[1] / (0.5 * deltaDist)),\n ];\n const rotate = 0.5 * (angles[0] + angles[1]) * this.pointerRollScale;\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.z = Math.max(\n -Math.PI,\n Math.min(Math.PI, eulers.z + 0.5 * rotate),\n );\n control.quaternion.setFromEuler(eulers);\n\n if (Math.abs(rotate) > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n this.rotating.last.copy(this.rotating.position);\n this.sliding.last.copy(this.sliding.position);\n } else {\n // Didn't press both pointers at the same time, so we're in rotating\n // or FPS mode\n const rotate = new THREE.Vector3();\n if (this.rotating && !this.dualPress) {\n const delta = this.rotating.position.clone().sub(this.rotating.last);\n this.rotating.last.copy(this.rotating.position);\n rotate.set(delta.x, delta.y, 0);\n rotate.multiplyScalar(this.rotateSpeed * (this.reverseRotate ? -1 : 1));\n // Update rotation velocity from last delta\n this.rotateVelocity = rotate.clone().multiplyScalar(1 / deltaTime);\n\n if (rotate.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n // Continue to rotate with inertia\n this.rotateVelocity.multiplyScalar(\n Math.exp(-deltaTime / this.rotateInertia),\n );\n rotate.addScaledVector(this.rotateVelocity, deltaTime);\n\n if (this.rotateVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n\n // Apply rotation in Euler angles space\n const eulers = new THREE.Euler().setFromQuaternion(\n control.quaternion,\n \"YXZ\",\n );\n eulers.y -= rotate.x;\n eulers.x = Math.max(\n -Math.PI / 2,\n Math.min(Math.PI / 2, eulers.x - rotate.y),\n );\n eulers.z *= Math.exp(-DEFAULT_ROLL_SPRING * deltaTime);\n control.quaternion.setFromEuler(eulers);\n\n if (this.sliding && !this.dualPress) {\n const delta = this.sliding.position.clone().sub(this.sliding.last);\n this.sliding.last.copy(this.sliding.position);\n\n // Slide on plane depending on center/right mouse button\n const slide =\n this.sliding.button !== 2\n ? new THREE.Vector3(delta.x, 0, delta.y)\n : new THREE.Vector3(delta.x, -delta.y, 0);\n slide.multiplyScalar(this.slideSpeed * (this.reverseSlide ? -1 : 1));\n\n slide.applyQuaternion(control.quaternion);\n control.position.add(slide);\n // Update movement velocity from last delta\n this.moveVelocity = slide.clone().multiplyScalar(1 / deltaTime);\n\n if (slide.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n } else {\n const target = new THREE.Vector3();\n if (this.sliding || this.rotating) {\n const point = this.lastDown?.last ?? new THREE.Vector2();\n const theCamera =\n camera ?? (control instanceof THREE.Camera ? control : undefined);\n if (theCamera) {\n const ndcPoint = this.pressMoveCenter\n ? new THREE.Vector2(0, 0)\n : new THREE.Vector2(\n (point.x / this.canvas.clientWidth) * 2 - 1,\n -(point.y / this.canvas.clientHeight) * 2 + 1,\n );\n const raycaster = new THREE.Raycaster();\n raycaster.setFromCamera(ndcPoint, theCamera);\n target.copy(raycaster.ray.direction).normalize();\n }\n\n if (!this.doublePressed) {\n let intensity = 0;\n if (this.lastDown) {\n intensity =\n (now -\n (this.lastDown?.timeStamp ?? now) -\n this.pressMoveDelayMs) /\n this.pressMoveAccelMs;\n\n if (\n this.lastDown.position.distanceTo(this.lastDown.initial) <\n this.doublePressDistance\n ) {\n if (this.pressHeld === undefined) {\n if (intensity > 0) {\n this.pressHeld = true;\n }\n }\n } else if (this.pressHeld === undefined) {\n this.pressHeld = false;\n }\n }\n\n if (this.pressHeld) {\n target.multiplyScalar(\n this.pressMoveSpeed * Math.max(0, Math.min(1, intensity)),\n );\n } else {\n target.set(0, 0, 0);\n }\n } else {\n this.pressHeld = false;\n let intensity =\n (performance.now() - this.doublePressed) / this.pressMoveAccelMs;\n intensity = Math.max(0, Math.min(1, intensity));\n target.multiplyScalar(\n (this.triplePressed\n ? this.triplePressMoveSpeed\n : this.doublePressMoveSpeed) * intensity,\n );\n }\n } else {\n this.pressHeld = undefined;\n }\n // Continue to move with inertia\n const s = Math.exp(-deltaTime / this.moveInertia);\n this.moveVelocity.lerpVectors(target, this.moveVelocity, s);\n control.position.addScaledVector(this.moveVelocity, deltaTime);\n\n if (this.moveVelocity.length() * 0.1 > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n }\n }\n\n const scroll = this.scroll.multiplyScalar(this.scrollSpeed);\n scroll.set(scroll.x, scroll.z, scroll.y);\n if (this.reverseScroll) {\n scroll.multiplyScalar(-1);\n }\n scroll.applyQuaternion(control.quaternion);\n control.position.add(scroll);\n\n if (scroll.length() > MOVEMENT_THRESHOLD) {\n updated = true;\n }\n this.scroll.set(0, 0, 0);\n\n return updated;\n }\n}\n","import * as THREE from \"three\";\nimport { SparkRenderer, type SparkRendererOptions } from \"./SparkRenderer\";\n\n/**\n * Fragment shader for portal disk clipping.\n * - diskRadius > 0: render \"behind portal\" only through the disk\n * - diskRadius < 0: render \"in front of portal\" everywhere except behind disk\n */\nexport const DISK_PORTAL_FRAGMENT_SHADER = `\nprecision highp float;\nprecision highp int;\n\n#include \n\nuniform float near;\nuniform float far;\nuniform mat4 projectionMatrix;\nuniform bool encodeLinear;\nuniform float time;\nuniform bool debugFlag;\nuniform float maxStdDev;\nuniform float minAlpha;\nuniform bool disableFalloff;\nuniform float falloff;\n\nuniform vec3 diskCenter;\nuniform vec3 diskNormal;\nuniform float diskRadius;\nuniform bool diskTwoSided;\n\nout vec4 fragColor;\n\nin vec4 vRgba;\nin vec2 vSplatUv;\nin vec3 vNdc;\nflat in uint vSplatIndex;\nflat in float adjustedStdDev;\n\nvoid main() {\n if (diskRadius != 0.0) {\n // Portal rendering:\n // - diskRadius > 0: render \"behind portal\" only through the disk (discard outside or in-front-of plane).\n // - diskRadius < 0: render \"in front of portal\" everywhere, but discard fragments behind the plane when looking through the disk.\n\n // View ray direction from NDC (view space is -Z forward).\n vec3 viewDir = normalize(vec3(\n vNdc.x / projectionMatrix[0][0],\n vNdc.y / projectionMatrix[1][1],\n -1.0\n ));\n\n // Reconstruct view-space *axial* depth (-viewPos.z) from NDC Z.\n float ndcZ = vNdc.z;\n float depth = (2.0 * near * far) / (far + near - ndcZ * (far - near));\n // Convert axial depth to ray-parameter t (viewPos = t * viewDir).\n float rayT = depth / max(1e-6, -viewDir.z);\n\n float radius = abs(diskRadius);\n float radius2 = radius * radius;\n bool renderBehind = (diskRadius > 0.0);\n\n vec3 diskN = normalize(diskNormal);\n\n // Ray-plane intersection for plane (diskCenter, diskN), with ray origin at (0,0,0).\n float denom = dot(viewDir, diskN);\n bool allowPortal = diskTwoSided ? (abs(denom) > 1e-6) : (denom < -1e-6);\n\n bool hitsDisk = false;\n float t = 0.0;\n if (allowPortal) {\n t = dot(diskCenter, diskN) / denom;\n if (t > 0.0) {\n vec3 q = t * viewDir - diskCenter;\n hitsDisk = (dot(q, q) <= radius2);\n }\n }\n\n // Small bias to avoid flicker at the plane.\n float eps = 1e-4 * max(1.0, abs(t));\n\n if (renderBehind) {\n // Behind-pass: only render through the portal disk, and only behind the plane along the ray.\n if (!hitsDisk) discard;\n if (rayT <= t + eps) discard;\n } else {\n // Front-pass: render everything, except when the ray goes through the disk, discard what's behind the plane.\n if (hitsDisk && (rayT >= t - eps)) discard;\n }\n }\n\n vec4 rgba = vRgba;\n\n float z2 = dot(vSplatUv, vSplatUv);\n if (z2 > (adjustedStdDev * adjustedStdDev)) {\n discard;\n }\n\n float a = rgba.a;\n float shifted = sqrt(z2) - max(0.0, a - 1.0);\n float exponent = -0.5 * max(1.0, a) * sqr(max(0.0, shifted));\n rgba.a = min(1.0, a) * exp(exponent);\n\n if (rgba.a < minAlpha) {\n discard;\n }\n if (encodeLinear) {\n rgba.rgb = srgbToLinear(rgba.rgb);\n }\n\n #ifdef PREMULTIPLIED_ALPHA\n fragColor = vec4(rgba.rgb * rgba.a, rgba.a);\n #else\n fragColor = rgba;\n #endif\n}\n`;\n\n/**\n * Callback function called when a portal is crossed.\n * @param pair The portal pair that was crossed\n * @param fromEntry True if crossing from entry to exit, false if crossing from exit to entry\n */\nexport type PortalCrossCallback = (\n pair: PortalPair,\n fromEntry: boolean,\n) => void | Promise;\n\n/**\n * A pair of connected portals. Walking through one teleports you to the other.\n */\nexport interface PortalPair {\n /** First portal endpoint */\n entryPortal: THREE.Object3D;\n /** Second portal endpoint */\n exitPortal: THREE.Object3D;\n /** Radius of this portal pair's disks */\n radius: number;\n /** Optional callback function called when this portal is crossed */\n onCross?: PortalCrossCallback;\n /** Scratch matrix for tracking portal position before frame updates */\n _entryBefore: THREE.Matrix4;\n /** Scratch matrix for tracking portal position before frame updates */\n _exitBefore: THREE.Matrix4;\n}\n\nexport interface SparkPortalsOptions {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n /** Options passed to both SparkRenderer instances */\n sparkOptions?: Partial;\n /** Default portal disk radius for new pairs (default: 1.0) */\n defaultPortalRadius?: number;\n /** Epsilon for portal crossing detection (default: 1e-6) */\n portalCrossEps?: number;\n}\n\n/**\n * SparkPortals\n *\n * Portal implementation to connect two non-contiguous areas of a scene.\n * Supports multiple portal pairs - each pair connects two locations.\n *\n * The rough approach is to use two SparkRenderers: one for the \"front\"/portal\n * view (portalRenderer), and one for the \"behind portal\" pass (behindRenderer).\n *\n * Example:\n * ```typescript\n * const portals = new SparkPortals({ renderer, scene, camera, localFrame });\n *\n * // Add a portal pair\n * const pair = portals.addPortalPair();\n * pair.entryPortal.position.set(0, 0, -1);\n * pair.exitPortal.position.set(-3, 0, -4.5);\n *\n * // Add another pair\n * const pair2 = portals.addPortalPair({ radius: 0.5 });\n * pair2.entryPortal.position.set(5, 0, 0);\n * pair2.exitPortal.position.set(10, 0, 0);\n *\n * // In animation loop:\n * portals.animateLoopHook();\n * ```\n */\nexport class SparkPortals {\n /** The THREE.WebGLRenderer */\n renderer: THREE.WebGLRenderer;\n /** The scene to render */\n scene: THREE.Scene;\n /** The main camera */\n camera: THREE.PerspectiveCamera;\n /** The local frame (parent of camera, used for teleportation) */\n localFrame: THREE.Group;\n\n /** Primary renderer with portal shader (added to scene) */\n portalRenderer: SparkRenderer;\n /** Secondary renderer for behind-portal pass (not in scene) */\n behindRenderer: SparkRenderer;\n /** Secondary camera for behind-portal view */\n camera2: THREE.PerspectiveCamera;\n\n /** All portal pairs */\n portalPairs: PortalPair[] = [];\n /** Default radius for new portal pairs */\n defaultPortalRadius: number;\n /** Epsilon for portal crossing detection */\n portalCrossEps: number;\n\n /** Used to detect crossing between frames */\n private lastCameraWorld = new THREE.Vector3().setScalar(Number.NaN);\n /** Whether portal LoD prefetch is currently enabled */\n private prefetchActive = false;\n\n // Preallocated objects for scratch work to avoid per frame allocations\n private scratch = {\n quat: new THREE.Quaternion(),\n scale: new THREE.Vector3(),\n center0: new THREE.Vector3(),\n center1: new THREE.Vector3(),\n normal0: new THREE.Vector3(),\n normal1: new THREE.Vector3(),\n centerT: new THREE.Vector3(),\n normalT: new THREE.Vector3(),\n prevCameraWorld: new THREE.Vector3(),\n currCameraWorld: new THREE.Vector3(),\n hit: new THREE.Vector3(),\n offset: new THREE.Vector3(),\n camWorld: new THREE.Matrix4(),\n newCamWorld: new THREE.Matrix4(),\n invCamLocal: new THREE.Matrix4(),\n newLocalFrame: new THREE.Matrix4(),\n cameraWorldPos: new THREE.Vector3(),\n viewDir: new THREE.Vector3(),\n portalCenter: new THREE.Vector3(),\n toPortal: new THREE.Vector3(),\n };\n\n constructor(options: SparkPortalsOptions) {\n this.renderer = options.renderer;\n this.scene = options.scene;\n this.camera = options.camera;\n this.localFrame = options.localFrame;\n this.defaultPortalRadius = options.defaultPortalRadius ?? 1.0;\n this.portalCrossEps = options.portalCrossEps ?? 1e-6;\n\n const sparkOpts = options.sparkOptions ?? {};\n\n // Primary renderer with portal shader\n this.portalRenderer = new SparkRenderer({\n renderer: this.renderer,\n extraUniforms: {\n diskCenter: { value: new THREE.Vector3() },\n diskNormal: { value: new THREE.Vector3() },\n diskRadius: { value: 0 },\n diskTwoSided: { value: false },\n },\n fragmentShader: DISK_PORTAL_FRAGMENT_SHADER,\n ...sparkOpts,\n });\n this.scene.add(this.portalRenderer);\n\n // Secondary renderer for behind-portal pass\n // enableDriveLod: false prevents this renderer from driving LOD updates,\n // avoiding race conditions with portalRenderer's pager operations\n this.behindRenderer = new SparkRenderer({\n renderer: this.renderer,\n enableDriveLod: false,\n ...sparkOpts,\n });\n\n // Secondary camera for behind-portal view\n this.camera2 = this.camera.clone();\n this.scene.add(this.camera2);\n }\n\n /**\n * Add a new portal pair to the system.\n * @param options Optional configuration for this pair\n * @returns The created PortalPair - position the entryPortal and exitPortal as needed\n */\n addPortalPair(options?: {\n radius?: number;\n onCross?: PortalCrossCallback;\n }): PortalPair {\n const pair: PortalPair = {\n entryPortal: new THREE.Object3D(),\n exitPortal: new THREE.Object3D(),\n radius: options?.radius ?? this.defaultPortalRadius,\n onCross: options?.onCross,\n _entryBefore: new THREE.Matrix4(),\n _exitBefore: new THREE.Matrix4(),\n };\n\n this.scene.add(pair.entryPortal);\n this.scene.add(pair.exitPortal);\n this.portalPairs.push(pair);\n\n return pair;\n }\n\n /**\n * Remove a portal pair from the system.\n */\n removePortalPair(pair: PortalPair): void {\n const index = this.portalPairs.indexOf(pair);\n if (index !== -1) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n this.portalPairs.splice(index, 1);\n }\n }\n\n /**\n * Get transform from entry portal to exit portal.\n */\n getEntryToExitTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.entryPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.exitPortal.matrixWorld);\n }\n\n /**\n * Get transform from exit portal to entry portal.\n */\n getExitToEntryTransform(pair: PortalPair): THREE.Matrix4 {\n return pair.exitPortal.matrixWorld\n .clone()\n .invert()\n .premultiply(pair.entryPortal.matrixWorld);\n }\n\n /** Set portal disk uniforms for shader clipping */\n private setPortalDiskUniforms(\n camera: THREE.Camera,\n portal: THREE.Object3D,\n radius: number,\n twoSided: boolean,\n ): void {\n camera.updateMatrixWorld(true);\n portal.updateMatrixWorld(true);\n\n const inverseCamera = camera.matrixWorld.clone().invert();\n const portalInCamera = portal.matrixWorld\n .clone()\n .premultiply(inverseCamera);\n const portalQuat = new THREE.Quaternion();\n\n // Extend the base uniform type with our portal-specific uniforms so TS is happy.\n const uniforms = this.portalRenderer\n .uniforms as typeof this.portalRenderer.uniforms & {\n diskCenter: { value: THREE.Vector3 };\n diskNormal: { value: THREE.Vector3 };\n diskRadius: { value: number };\n diskTwoSided: { value: boolean };\n };\n\n portalInCamera.decompose(\n uniforms.diskCenter.value,\n portalQuat,\n new THREE.Vector3(),\n );\n\n uniforms.diskNormal.value.set(0, 0, 1).applyQuaternion(portalQuat);\n uniforms.diskRadius.value = radius;\n uniforms.diskTwoSided.value = twoSided;\n }\n\n /** Extract portal plane from matrix */\n private getPortalPlane(\n matrix: THREE.Matrix4,\n outCenter: THREE.Vector3,\n outNormal: THREE.Vector3,\n ): void {\n matrix.decompose(outCenter, this.scratch.quat, this.scratch.scale);\n outNormal.set(0, 0, 1).applyQuaternion(this.scratch.quat).normalize();\n }\n\n /**\n * Detect if the user path crosses over a portal. If so, return the parametric position (0,1)\n * along the segment where the crossing occurs. If not, return null.\n */\n private getSegmentDiskCrossing(\n prevCam: THREE.Vector3,\n currCam: THREE.Vector3,\n beforeMatrix: THREE.Matrix4,\n afterMatrix: THREE.Matrix4,\n radius: number,\n ): number | null {\n this.getPortalPlane(\n beforeMatrix,\n this.scratch.center0,\n this.scratch.normal0,\n );\n this.getPortalPlane(\n afterMatrix,\n this.scratch.center1,\n this.scratch.normal1,\n );\n\n const startPlaneDist = this.scratch.offset\n .copy(prevCam)\n .sub(this.scratch.center0)\n .dot(this.scratch.normal0);\n const endPlaneDist = this.scratch.offset\n .copy(currCam)\n .sub(this.scratch.center1)\n .dot(this.scratch.normal1);\n\n if (\n (startPlaneDist > this.portalCrossEps &&\n endPlaneDist > this.portalCrossEps) ||\n (startPlaneDist < -this.portalCrossEps &&\n endPlaneDist < -this.portalCrossEps)\n ) {\n return null;\n }\n\n const denom = startPlaneDist - endPlaneDist;\n if (Math.abs(denom) < this.portalCrossEps) return null;\n\n const t = startPlaneDist / denom;\n if (t < 0 || t > 1) return null;\n\n this.scratch.hit.lerpVectors(prevCam, currCam, t);\n this.scratch.centerT\n .copy(this.scratch.center0)\n .lerp(this.scratch.center1, t);\n this.scratch.normalT\n .copy(this.scratch.normal0)\n .lerp(this.scratch.normal1, t)\n .normalize();\n\n this.scratch.offset.copy(this.scratch.hit).sub(this.scratch.centerT);\n this.scratch.offset.addScaledVector(\n this.scratch.normalT,\n -this.scratch.offset.dot(this.scratch.normalT),\n );\n\n if (this.scratch.offset.lengthSq() > radius * radius) return null;\n return t;\n }\n\n /** Teleport camera through portal */\n private teleport(transform: THREE.Matrix4): void {\n this.scratch.camWorld.copy(this.camera.matrixWorld);\n this.scratch.newCamWorld.copy(this.scratch.camWorld).premultiply(transform);\n this.scratch.invCamLocal.copy(this.camera.matrix).invert();\n this.scratch.newLocalFrame\n .copy(this.scratch.newCamWorld)\n .multiply(this.scratch.invCamLocal);\n\n this.scratch.newLocalFrame.decompose(\n this.localFrame.position,\n this.localFrame.quaternion,\n this.localFrame.scale,\n );\n this.localFrame.updateMatrixWorld(true);\n this.camera.updateMatrixWorld(true);\n }\n\n /**\n * Check for portal crossing and teleport if needed.\n * Checks all portal pairs and takes the earliest crossing.\n * Call this after updating controls but before render().\n */\n updateTeleportation(): void {\n if (this.portalPairs.length === 0) return;\n\n this.camera.getWorldPosition(this.scratch.currCameraWorld);\n if (!Number.isFinite(this.lastCameraWorld.x)) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n this.scratch.prevCameraWorld.copy(this.lastCameraWorld);\n\n // Store portal matrices before any updates and find earliest crossing\n let earliestT: number | null = null;\n let crossedPair: PortalPair | null = null;\n let crossedEntry = true; // true = crossed entry portal, false = crossed exit portal\n\n for (const pair of this.portalPairs) {\n pair.entryPortal.updateMatrixWorld(true);\n pair.exitPortal.updateMatrixWorld(true);\n pair._entryBefore.copy(pair.entryPortal.matrixWorld);\n pair._exitBefore.copy(pair.exitPortal.matrixWorld);\n\n // Check entry portal crossing\n const entryT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._entryBefore,\n pair.entryPortal.matrixWorld,\n pair.radius,\n );\n\n if (entryT !== null && (earliestT === null || entryT < earliestT)) {\n earliestT = entryT;\n crossedPair = pair;\n crossedEntry = true;\n }\n\n // Check exit portal crossing\n const exitT = this.getSegmentDiskCrossing(\n this.scratch.prevCameraWorld,\n this.scratch.currCameraWorld,\n pair._exitBefore,\n pair.exitPortal.matrixWorld,\n pair.radius,\n );\n\n if (exitT !== null && (earliestT === null || exitT < earliestT)) {\n earliestT = exitT;\n crossedPair = pair;\n crossedEntry = false;\n }\n }\n\n // No portal crossed\n if (crossedPair === null) {\n this.lastCameraWorld.copy(this.scratch.currCameraWorld);\n return;\n }\n\n // Teleport through the crossed portal\n if (crossedEntry) {\n this.teleport(this.getEntryToExitTransform(crossedPair));\n } else {\n this.teleport(this.getExitToEntryTransform(crossedPair));\n }\n\n this.camera.getWorldPosition(this.lastCameraWorld);\n\n // Call the portal's onCross callback if provided\n if (crossedPair.onCross) {\n // Call async callback but don't await (updateTeleportation is synchronous)\n // Errors will be logged but won't block teleportation\n Promise.resolve(crossedPair.onCross(crossedPair, crossedEntry)).catch(\n (error) => {\n console.error(\"Error in portal onCross callback:\", error);\n },\n );\n }\n }\n\n /**\n * Find the most relevant portal for rendering (closest to camera view direction).\n * Returns the portal pair and which portal (entry or exit) is primary.\n */\n private findPrimaryPortal(): {\n pair: PortalPair;\n primaryIsEntry: boolean;\n primaryPortal: THREE.Object3D;\n otherPortal: THREE.Object3D;\n } | null {\n if (this.portalPairs.length === 0) return null;\n\n this.camera.getWorldPosition(this.scratch.cameraWorldPos);\n this.camera.getWorldDirection(this.scratch.viewDir);\n\n let bestScore = Number.NEGATIVE_INFINITY;\n let bestPair: PortalPair | null = null;\n let bestIsEntry = true;\n\n for (const pair of this.portalPairs) {\n // Score entry portal\n pair.entryPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const entryDist = this.scratch.toPortal.length();\n const entryScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / entryDist;\n\n if (entryScore > bestScore) {\n bestScore = entryScore;\n bestPair = pair;\n bestIsEntry = true;\n }\n\n // Score exit portal\n pair.exitPortal.getWorldPosition(this.scratch.portalCenter);\n this.scratch.toPortal\n .copy(this.scratch.portalCenter)\n .sub(this.scratch.cameraWorldPos);\n const exitDist = this.scratch.toPortal.length();\n const exitScore =\n this.scratch.toPortal.normalize().dot(this.scratch.viewDir) / exitDist;\n\n if (exitScore > bestScore) {\n bestScore = exitScore;\n bestPair = pair;\n bestIsEntry = false;\n }\n }\n\n if (!bestPair) return null;\n\n return {\n pair: bestPair,\n primaryIsEntry: bestIsEntry,\n primaryPortal: bestIsEntry ? bestPair.entryPortal : bestPair.exitPortal,\n otherPortal: bestIsEntry ? bestPair.exitPortal : bestPair.entryPortal,\n };\n }\n\n /**\n * Render the scene with portals using two-pass rendering.\n * Renders the most relevant portal pair (closest to camera view).\n * Call this instead of renderer.render() in your animation loop.\n */\n render(): void {\n const primary = this.findPrimaryPortal();\n\n // No portals - just render normally\n if (!primary) {\n if (this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras();\n this.prefetchActive = false;\n }\n this.renderer.autoClear = true;\n this.renderer.render(this.scene, this.camera);\n return;\n }\n\n if (!this.prefetchActive) {\n // this.portalRenderer.setPrefetchCameras([this.camera2]);\n this.prefetchActive = true;\n }\n\n const { pair, primaryIsEntry, primaryPortal, otherPortal } = primary;\n\n // Compute camera2 position (transformed through portal)\n const camera2Matrix = primaryIsEntry\n ? this.camera.matrixWorld\n .clone()\n .premultiply(this.getEntryToExitTransform(pair))\n : this.camera.matrixWorld\n .clone()\n .premultiply(this.getExitToEntryTransform(pair));\n camera2Matrix.decompose(\n this.camera2.position,\n this.camera2.quaternion,\n this.camera2.scale,\n );\n this.camera2.updateMatrixWorld(true);\n\n // Share lodInstances from portalRenderer to behindRenderer BEFORE Pass 1.\n // This uses previous frame's lodInstances (computed with main camera),\n // ensuring both passes use consistent splat selections to avoid flickering.\n this.shareLodInstances();\n\n // Pass 1: Behind portal view (uses shared lodInstances)\n this.setPortalDiskUniforms(this.camera2, otherPortal, pair.radius, true);\n this.renderer.autoClear = true;\n this.behindRenderer.render(this.scene, this.camera2);\n\n // Pass 2: Main view (updates portalRenderer's lodInstances for next frame)\n this.setPortalDiskUniforms(this.camera, primaryPortal, -pair.radius, true);\n this.renderer.autoClear = false;\n this.portalRenderer.render(this.scene, this.camera);\n }\n\n /**\n * Share lodInstances from portalRenderer to behindRenderer.\n * Uses previous frame's values to ensure both passes render consistent splats.\n */\n private shareLodInstances(): void {\n // Clear and copy lodInstances from portalRenderer to behindRenderer\n this.behindRenderer.lodInstances.clear();\n for (const [mesh, data] of this.portalRenderer.lodInstances) {\n this.behindRenderer.lodInstances.set(mesh, data);\n }\n }\n\n /**\n * Convenience hook for animation loop.\n * Calls updateTeleportation() then render().\n */\n animateLoopHook(): void {\n this.updateTeleportation();\n this.render();\n }\n\n /** Update camera2 aspect ratio on window resize */\n updateAspect(aspect: number): void {\n this.camera2.aspect = aspect;\n this.camera2.updateProjectionMatrix();\n }\n\n /** Dispose of resources */\n dispose(): void {\n this.scene.remove(this.portalRenderer);\n this.scene.remove(this.camera2);\n\n for (const pair of this.portalPairs) {\n this.scene.remove(pair.entryPortal);\n this.scene.remove(pair.exitPortal);\n }\n this.portalPairs = [];\n\n this.portalRenderer.dispose();\n this.behindRenderer.dispose();\n }\n}\n"],"names":["LN_SCALE_MIN","LN_SCALE_MAX","SCALE_MIN","SCALE_MAX","LN_SCALE_ZERO","SCALE_ZERO","SPLAT_TEX_WIDTH_BITS","SPLAT_TEX_HEIGHT_BITS","SPLAT_TEX_DEPTH_BITS","SPLAT_TEX_LAYER_BITS","SPLAT_TEX_WIDTH","SPLAT_TEX_HEIGHT","SPLAT_TEX_DEPTH","SPLAT_TEX_MIN_HEIGHT","SPLAT_TEX_WIDTH_MASK","SPLAT_TEX_HEIGHT_MASK","SPLAT_TEX_DEPTH_MASK","WASM_SPLAT_SORT","USE_COMPILED_PARSER_FUNCTION","SplatFileType","DEFAULT_SPLAT_ENCODING","isBoolType","type","isScalarType","isIntType","isUintType","isFloatType","isMatFloatType","isAllFloatType","isVector2Type","isVector3Type","isVector4Type","isVectorType","isMat2","isMat3","isMat4","vectorElementType","vectorDim","sameSizeVec","sameSizeUvec","sameSizeIvec","typeLiteral","numberAsInt","value","numberAsUint","numberAsFloat","valType","val","DynoValue","DynoOutput","dyno","key","DynoLiteral","literal","dynoLiteral","DynoConst","v","THREE","m","e","arg","_","i","dynoConst","literalZero","typeString","literalOne","literalNegOne","DEFAULT_INDENT","Compilation","indent","Dyno","inTypes","outTypes","inputs","update","globals","statements","generate","outputs","compile","_a","_b","result","declares","name","uniforms","global","dynoDeclare","line","DynoBlock","construct","args","blockInputs","blockOutputs","options","returned","ordering","nodeOuts","visit","node","outKey","outName","outs","input","root","steps","source","newSteps","literalOutputs","step","index","dynoBlock","count","typeStr","unindentLines","s","seenNonEmpty","lines","trimmedLine","regex","unindent","UnaryOp","a","outTypeFunc","outType","BinaryOp","b","TrinaryOp","c","Gsplat","CovSplat","TPackedSplats","TExtSplats","TCovSplats","numPackedSplats","packedSplats","NumPackedSplats","readPackedSplat","ReadPackedSplat","readPackedSplatRange","base","ReadPackedSplatRange","numExtSplats","extSplats","NumExtSplats","readExtSplat","ReadExtSplat","numCovSplats","covsplats","NumCovSplats","readCovSplat","covSplats","ReadCovSplat","gsplatToCovSplat","gsplat","GsplatToCovSplat","splitGsplat","SplitGsplat","combineGsplat","flags","center","scales","quaternion","rgba","rgb","opacity","x","y","z","r","g","CombineGsplat","gsplatNormal","GsplatNormal","transformGsplat","scale","rotate","translate","recolor","TransformGsplat","splatTexCoord","SplatTexCoord","pagedSplatTexCoord","PagedSplatTexCoord","defineGsplat","defineCovSplat","definePackedSplats","defineReadPackedArray","defineExtSplats","defineReadExtArrays","defineReadCovArrays","covsplat","active","outGsplat","defineGsplatNormal","splitCovSplat","SplitCovSplat","combineCovSplat","CombineCovSplat","outCovSplat","coord","outputPackedSplat","rgbMinMaxLnScaleMinMax","OutputPackedSplat","outputCovSplat","OutputCovSplat","outputExtendedSplat","OutputExtendedSplat","outputExtCovSplat","OutputExtCovSplat","outputSplatDepth","viewCenter","viewDir","sortRadial","OutputSplatDepth","outputCovSplatDepth","OutputCovSplatDepth","outputRgba8","rgba8","OutputRgba8","uniform","DynoUniform","dynoBool","DynoBool","dynoUint","DynoUint","dynoInt","DynoInt","dynoFloat","DynoFloat","dynoBvec2","DynoBvec2","dynoUvec2","DynoUvec2","dynoIvec2","DynoIvec2","dynoVec2","DynoVec2","dynoBvec3","DynoBvec3","dynoUvec3","DynoUvec3","dynoIvec3","DynoIvec3","dynoVec3","DynoVec3","dynoBvec4","DynoBvec4","dynoUvec4","DynoUvec4","dynoIvec4","DynoIvec4","dynoVec4","DynoVec4","dynoMat2","DynoMat2","dynoMat2x2","DynoMat2x2","dynoMat2x3","DynoMat2x3","dynoMat2x4","DynoMat2x4","dynoMat3","DynoMat3","dynoMat3x2","DynoMat3x2","dynoMat3x3","DynoMat3x3","dynoMat3x4","DynoMat3x4","dynoMat4","DynoMat4","dynoMat4x2","DynoMat4x2","dynoMat4x3","DynoMat4x3","dynoMat4x4","DynoMat4x4","dynoUsampler2D","DynoUsampler2D","dynoIsampler2D","DynoIsampler2D","dynoSampler2D","DynoSampler2D","dynoUsampler2DArray","DynoUsampler2DArray","dynoIsampler2DArray","DynoIsampler2DArray","dynoSampler2DArray","DynoSampler2DArray","dynoUsampler3D","DynoUsampler3D","dynoIsampler3D","DynoIsampler3D","dynoSampler3D","DynoSampler3D","dynoUsamplerCube","DynoUsamplerCube","dynoIsamplerCube","DynoIsamplerCube","dynoSamplerCube","DynoSamplerCube","dynoSampler2DShadow","DynoSampler2DShadow","dynoSampler2DArrayShadow","DynoSampler2DArrayShadow","dynoSamplerCubeShadow","DynoSamplerCubeShadow","allGlobals","u8","u16","i32","fleb","fdeb","clim","freb","eb","start","j","fl","revfl","fd","rev","hMap","cd","mb","l","le","co","rvb","sv","r_1","flt","fdt","flrm","fdrm","max","bits","d","p","o","bits16","shft","slc","ec","err","ind","msg","nt","inflt","dat","st","buf","dict","sl","dl","noBuf","resize","noSt","cbuf","bl","nbuf","final","pos","bt","lm","dm","lbt","dbt","tbts","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","n","lt","dt","t","lms","dms","lpos","sym","add","dsym","end","shift","dend","et","b2","b4","b8","gzs","flg","zs","Inflate","opts","cb","bts","chunk","inflateSync","data","Gunzip","td","tds","dutf8","strFromU8","latin1","slzh","zh","fnl","fn","es","bs","z64e","sc","su","off","unzipSync","files","ze","fltr","c_2","no","threeRevision","threeMrtArray","f32buffer","u32buffer","supportsFloat16Array","f16buffer","u16buffer","normalize","vec","norm","acc","floatBitsToUint","f","uintBitsToFloat","u","toHalf","toHalfNative","toHalfJS","fromHalf","fromHalfNative","fromHalfJS","sign","exp","frac","halfSign","newExp","subFrac","halfFrac","h","f32bits","mant","newFrac","floatToUint8","floatToSint8","Uint8ToFloat","Sint8ToFloat","DataCache","asyncFetch","dispose","maxItems","item","immediate","pending","removed","mapObject","obj","entries","mapFilterObject","getTransferable","ctx","buffers","seen","traverse","newArray","initFunction","FreeList","allocate","valid","encodeExtSplat","extArrays","scaleX","scaleY","scaleZ","quatX","quatY","quatZ","quatW","i4","extA","extB","encodeQuatOctXy1010R12","decodeExtSplat","packedFields","decodeQuatOctXy1010R12","setPackedSplat","encoding","rgbMin","rgbRange","uR","uG","uB","uA","uQuat","encodeQuatOctXy88R8","tempQuaternion","uQuatX","uQuatY","uQuatZ","lnScaleMin","lnScaleScale","uScaleX","uScaleY","uScaleZ","uCenterX","uCenterY","uCenterZ","setPackedSplatCenter","setPackedSplatScales","setPackedSplatQuat","setPackedSplatRgba","setPackedSplatRgb","setPackedSplatOpacity","packedCenter","packedScales","packedQuaternion","packedColor","unpackSplat","word0","word1","word2","word3","uScalesX","uScalesY","uScalesZ","decodeQuatOctXy88R8","getTextureSize","numSplats","width","height","depth","maxSplats","computeMaxSplats","isMobile","isAndroid","isOculus","isQuest2","isIos","isVisionPro","flipPixels","pixels","tempLine","topOffset","bottomOffset","pixelsToPngUrl","canvas","imageData","omitUndefined","IDENT_VERTEX_SHADER","averagePositions","positions","sum","position","averageQuaternions","quaternions","coinciDist","matrix1","matrix2","origin1","origin2","direction1","direction2","distance","coincidence","withinDist","maxDistance","withinCoinciDist","minCoincidence","coorientDist","rotate1","rotate2","coorient","withinCoorientDist","minCoorient","epsilonSign","epsilon","encodeQuatXyz888","q","negQuat","iQuatX","iQuatY","iQuatZ","decodeQuatXyz888","encoded","out","dotSelf","tempNormalizedQuaternion","tempAxis","qnorm","theta","xyz_norm","axis","p_x","p_y","tmp","u_f","v_f","quantU","quantV","angleInt","f_x","f_y","f_z","halfTheta","w","encodeQuatEulerXyz888","qNorm","sinr_cosp","cosr_cosp","roll","sinp","pitch","siny_cosp","cosy_cosp","yaw","normRoll","normPitch","normYaw","rollQ","pitchQ","decodeQuatEulerXyz888","yawQ","cr","sr","cp","sp","cy","sy","qx","qy","qz","qw","qlen","qnx","qny","qnz","qnw","axisX","axisY","axisZ","axisLen","packSint8Bytes","b0","b1","b3","clampedB0","clampedB1","clampedB2","clampedB3","encodeSh1Rgb","sh1Array","sh1Rgb","sh1Scale","bitStart","bitEnd","wordStart","bitOffset","firstWord","secondWord","encodeSh2Rgb","sh2Array","sh2Rgb","sh2Scale","encodeSh3Rgb","sh3Array","sh3Rgb","sh3Scale","encodeExtRgb","ar","ag","ab","maxAbs","biasedBase","divisor","expSigns","decodeExtRgb","color","encodeExtSh1Rgb","k","k3","encodeExtSh12Rgb","k5","encodeExt3Rgb","sh3ArrayA","sh3ArrayB","decompressPartialGzip","fileBytes","numBytes","chunks","totalBytes","gunzip","allBytes","offset","CHUNK_SIZE","GunzipReader","chunkBytes","ds","decompressionStream","readerDone","outOffset","uploadU32DataTextureRows","renderer","texture","rows","gl","props","glTexture","currentFlipY","currentPremultiply","DynoProgram","graph","template","consoleLog","getMaterial","updater","DynoProgramTemplate","programMaterial","program","material","addOutputType","operation","error","subOutputType","mulOutputType","divOutputType","imodOutputType","modOutputType","negOutputType","absOutputType","signOutputType","floorOutputType","ceilOutputType","truncOutputType","roundOutputType","fractOutputType","powOutputType","expOutputType","exp2OutputType","logOutputType","log2OutputType","sqrOutputType","sqrtOutputType","inversesqrtOutputType","minOutputType","maxOutputType","clampOutputType","_c","mixOutputType","stepOutputType","smoothstepOutputType","isNanOutputType","isInfOutputType","Add","sub","Sub","mul","Mul","div","Div","imod","IMod","mod","Mod","modf","Modf","neg","Neg","abs","Abs","Sign","floor","Floor","ceil","Ceil","trunc","Trunc","round","Round","fract","Fract","pow","Pow","Exp","exp2","Exp2","log","Log","log2","Log2","sqr","Sqr","sqrt","Sqrt","inversesqrt","InverseSqrt","min","Min","Max","clamp","Clamp","mix","Mix","edge","Step","smoothstep","edge0","edge1","Smoothstep","isNan","IsNan","isInf","IsInf","and","And","or","Or","xor","Xor","not","Not","shr","Shr","shl","Shl","lessThan","LessThan","lessThanEqual","LessThanEqual","greaterThan","GreaterThan","greaterThanEqual","GreaterThanEqual","equal","Equal","notEqual","NotEqual","any","Any","all","All","select","cond","Select","compXor","CompXor","aType","bType","compareOutputType","equalOutputType","notEqualOutputType","cType","operator","compXorOutputType","operands","bool","Bool","int","Int","uint","Uint","float","Float","bvec2","BVec2","bvec3","BVec3","bvec4","BVec4","ivec2","IVec2","ivec3","IVec3","ivec4","IVec4","uvec2","UVec2","uvec3","UVec3","uvec4","UVec4","vec2","Vec2","vec3","Vec3","vec4","Vec4","mat2","Mat2","mat3","Mat3","mat4","Mat4","floatBitsToInt","FloatBitsToInt","FloatBitsToUint","intBitsToFloat","IntBitsToFloat","UintBitsToFloat","packSnorm2x16","PackSnorm2x16","unpackSnorm2x16","UnpackSnorm2x16","packUnorm2x16","PackUnorm2x16","unpackUnorm2x16","UnpackUnorm2x16","packHalf2x16","PackHalf2x16","unpackHalf2x16","UnpackHalf2x16","uintToRgba8","UintToRgba8","SimpleCast","length","Length","Distance","dot","Dot","cross","Cross","Normalize","faceforward","FaceForward","reflectVec","incident","normal","ReflectVec","refractVec","eta","RefractVec","split","vector","Split","combine","vectorType","Combine","projectH","ProjectH","extendVec","ExtendVec","swizzle","Swizzle","compMult","CompMult","outer","Outer","transpose","Transpose","determinant","Determinant","inverse","Inverse","projectHOutputType","extendVecOutputType","outerOutputType","transposeOutputType","splitOutTypes","vType","elType","dim","swizzleOutputType","remapIndex","from","to","DynoRemapIndex","pcgMix","PcgMix","pcgNext","state","PcgNext","pcgHash","PcgHash","hash","Hash","hash2","Hash2","hash3","Hash3","hash4","Hash4","hashFloat","HashFloat","hashVec2","HashVec2","hashVec3","HashVec3","hashVec4","HashVec4","normalizedDepth","zNear","zFar","NormalizedDepth","debugColorHue","DebugColorHue","toUint","tempType","toUvec","word","words","transformPos","TransformPosition","transformDir","dir","TransformDir","transformQuat","TransformQuaternion","dynoIf","dynoSwitch","dynoFor","comment","arrayIndex","arrayLength","textureSize","lod","TextureSize","bias","Texture","texelFetch","TexelFetch","textureType","textureSizeType","textureCoordType","textureReturnType","radians","degrees","Radians","Degrees","sin","Sin","cos","Cos","tan","Tan","asin","Asin","acos","Acos","atan","Atan","atan2","Atan2","sinh","Sinh","cosh","Cosh","tanh","Tanh","asinh","Asinh","acosh","Acosh","atanh","Atanh","computeUvec4_default","computeUvec4_Vec4_default","computeUvec4x2_Vec4_default","computeVec4_default","splatDefines_default","splatFragment_default","splatVertex_default","shaders","getShaders","splatDefines","splatVertex","splatFragment","computeVec4Template","computeUvec4Vec4Template","computeUvec4x2Vec4Template","computeUvec4Template","_Readback","buffer","bytes","newBuffer","ctor","capacity","reader","layerSize","baseIndex","layer","layerBase","layerYEnd","readback","roundedCount","readbackUint8","promises","readbackSize","subReadback","promise","renderState","FullScreenQuad","Readback","SplatEditSdfType","sdfTypeToNumber","SplatEditRgbaBlendMode","rgbaBlendModeToNumber","mode","SplatEditSdf","invert","displace","radius","_SplatEdit","rgbaBlendMode","sdfSmooth","softEdge","sdfs","sdf","SplatEdit","SplatEdits","maxSdfs","maxEdits","SdfArray","defineSdfArray","defineEdit","dynoUpdated","updated","tempFloat32","editIndex","sdfFirst","sdfCount","sdfIndex","sdfType","sizes","values","nValues","vBase","edits","total","edit","sdfUpdated","applyGsplatRgbaDisplaceEdits","applyCovSplatRgbaDisplaceEdits","sdfArray","numEdits","rgbaDisplaceEdits","SplatModifier","modifier","generator","modified","SplatTransformer","transform","newScale","object","CovSplatTransformer","rebased","basis","SplatGenerator","covGenerator","constructed","CsplatArray","ptr","CsplatArrayFinalization","wasm","lod_base","merge_filter","ret","takeFromExternrefTable0","arg0","GsplatArray","GsplatArrayFinalization","decode_rad_header","get_raycast_buffer","get_raycast_buffer2","raycast_ext_buffers","origin_x","origin_y","origin_z","dir_x","dir_y","dir_z","min_opacity","near","far","raycast_packed_buffer","ln_scale_min","ln_scale_max","lod_opacity","__wbg_get_imports","arg1","getStringFromWasm0","isLikeNone","debugString","ptr1","passStringToWasm0","len1","WASM_VECTOR_LEN","getDataViewMemory0","deferred0_0","deferred0_1","handleError","arg2","getArrayU8FromWasm0","getArrayU16FromWasm0","getArrayU32FromWasm0","getArrayF32FromWasm0","table","addToExternrefTable0","idx","description","debug","builtInMatches","className","len","getFloat32ArrayMemory0","getUint16ArrayMemory0","getUint32ArrayMemory0","getUint8ArrayMemory0","cachedDataViewMemory0","cachedFloat32ArrayMemory0","decodeText","cachedUint16ArrayMemory0","cachedUint32ArrayMemory0","cachedUint8ArrayMemory0","malloc","realloc","cachedTextEncoder","mem","code","view","cachedTextDecoder","MAX_SAFARI_DECODE_BYTES","numBytesDecoded","__wbg_finalize_init","instance","module","__wbg_load","imports","expectedResponseType","__wbg_init","module_or_path","b64ToUint6","nChr","base64ToUint8","sBase64","nBlocksSize","sB64Enc","nInLen","nOutLen","taBytes","nMod3","nMod4","nUint24","nOutIdx","nInIdx","toUint8","b64","bin","decode64","WASM_MODULE","WASM","initialized","initialization","init_wasm","isInitialized","_SplatWorker","BundledWorker","event","id","status","callback","queue","resolve","reject","messages","message","SplatWorker","NewSplatWorkerPool","maxWorkers","worker","waiter","workerPool","_PackedSplats","DynoPackedSplats","_d","url","fileType","fileName","stream","streamLength","nonLod","lodAbove","loader","SplatLoader","maybePromise","maxSh","viewOrigin","splatCenter","sh1Texture","sh2Texture","sh3Texture","evaluatePackedSH","sh1","newSh1","sh2","newSh2","sh3","newSh3","targetSize","currentSize","level","wordsPerSplat","unpacked","splatCounts","mapping","rounded","_outputs","roots","output","nextBase","layerYStart","rgbaArray","quality","lodBase","packedArray","extra","decoded","lodSplats","indices","pageColoring","newSplats","splat","hue","emptyArray","PackedSplats","_f","_e","_h","_g","_j","_i","_l","_k","defineEvalPackedSH1","defineEvalPackedSH2","defineEvalPackedSH3","numSh","shMax","Loader","manager","FileLoader","onLoad","onProgress","onError","SplatMesh","resolvedURL","readStream","splatsLod","splatsNonLod","onStatus","loaded","done","basedUrl","ExtSplats","initExtSplats","initSplats","getSplatFileType","magic","header","tryPcSogsZip","getFileExtension","pathOrUrl","noTrailing","lastSlash","filename","lastDot","getSplatFileTypeFromPath","extension","isPcSogs","tryPcSogs","text","json","isVersion2","metaFilename","unzipped","SplatData","targetSplats","newCenters","newScales","newQuaternions","newOpacities","newColors","_ExtSplats","DynoExtSplats","sh3TextureA","sh3TextureB","evaluateExtSH","newUint32ArrayTexture","sh3a","sh3b","newSh3b","newArray0","newArray1","defineEvaluateExtSH1","defineEvaluateExtSH12","defineEvaluateExtSH3","format","internalFormat","_RgbaArray","TRgbaArray","defineRgbaArray","splatCount","dynoSplats","dynoBase","dynoCount","RgbaArray","readRgbaArray","PAGE_WIDTH","PAGE_HEIGHT","PAGE_SPLATS","PagedSplats","dyno.DynoInt","dyno.DynoUsampler2D","SplatPager","dyno.DynoVec4","dyno.DynoBool","dyno.DynoVec3","wasm.initialization","metaStart","tryBytes","fetchRange","decodeBytes","meta","chunksStart","resolvedRoot","chunkUrl","request","response","sh3Codes","indicesTexture","textureIndices","splatIndex","packedSplatArray","extPackedSplatArray","_SplatPager","dyno.DynoUsampler2DArray","emptyShTextures","dyno.dynoBlock","dyno.Dyno","dyno.unindentLines","dyno.Gsplat","lodOpacity","dyno.defineGsplat","dyno.splitGsplat","dyno.normalize","dyno.sub","dyno.add","dyno.combineGsplat","elementsPerSplat","splats","page","now","pageLru","freedPages","shArrays","extArray","pageBase","uploadTextureLayer","array","needed","overflow","numPages","backoff","extraPages","splatsChunk","fetched","isExtResult","sh","upload","updates","dstOffset","requestHeader","withCredentials","EmptySplatSource","_SplatMesh","context","rootUrl","emptyLodIndices","constructSplats","splatEncoding","packedSplatsOptions","centers_only","minVec","maxVec","corners","signs","_index","_opacity","_color","viewToObject","maybeLookupIndex","maybeInjectSplatRgba","recolorRgba","covTransform","covViewToObject","time","deltaTime","viewToWorld","camera","renderSize","globalEdits","lodIndices","worldToView","viewToObjectMatrix","newRecolor","editsSdfs","editResult","raycaster","intersects","wasm.isInitialized","paged","ext","ray","worldToMesh","worldToMeshRot","origin","direction","bufferSize","intersections","buffer2","ext1","_o","_n","_q","_p","_r","ext2","_t","_s","_v","_u","_w","index4","newIntersections","packed","_m","point","additional","enableLod","showLodPage","_SplatAccumulator","target2","target3","theGenerator","centerSubView","halfAlpha","outputDepth","scene","previous","lodInstances","allGenerators","globalEditsSet","ancestor","visibleGenerators","baseCounts","previousMappings","mappings","previousNode","version","mappingVersion","splatsUpdated","mappingUpdated","textures","otherMapping","other","SplatAccumulator","SplatGeometry","QUAD_VERTICES","QUAD_INDICES","_SparkRenderer","premultipliedAlpha","geometry","defaultPages","accumulatorOptions","provokingVertexExt","doubleBuffer","origSuperXY","origTargetOptions","superXY","superWidth","superHeight","targetOptions","accumulators","accumulator","instances","spark","frame","isNewFrame","currentRenderTarget","isXRRenderTarget","checkIsXRRenderTarget","baseLayer","typedCamera","accumToWorld","accumToCamera","outputColorSpace","preUpdate","useCamera","autoUpdate","viewChanged","next","doUpdate","needsUpdate","nextSortTime","current","orderingMaxSplats","orderingTexture","defaultSplatCount","pixelScaleLimit","viewHeight","viewWidth","pxY","pxX","viewPos","viewQuat","distanceRamp","quatRamp","lodMeshes","hasPaged","mesh","record","lodId","lodInitQueue","lodTree","lodUpdates","deltaPred","uuidToMesh","cameraToWorld","traverseStart","keyIndices","pixelLimit","totalLodSplats","pagedMeshes","meshPosition","uuid","countIndices","oldest","target","previousTarget","byteSize","superPixels","subWidth","subHeight","subSize","targetPixels","super2","row","superCol","superRow","sx","superIndex","pixelIndex","worldCenter","size","hideObjects","filter","cubeCamera","objectVisibility","tempCamera","visible","cubeTexture","envMap","SparkRenderer","renderTarget","PLY_PROPERTY_TYPES","_PlyReader","decoder","controller","headerTerminator","endHeader","headerLen","curElement","lineIndex","fields","elementCallback","elementName","element","properties","createEmptyItem","parseFn","createParseFn","splatCallback","shCallback","isSuperSplat","ssChunks","sh1Props","sh2Props","sh3Props","prepareSh","num_f_rest","NUM_SH_TO_NUM_F_REST","ssShCallback","initSuperSplat","min_x","min_y","min_z","max_x","max_y","max_z","min_scale_x","min_scale_y","min_scale_z","max_scale_x","max_scale_y","max_scale_z","min_r","min_g","min_b","max_r","max_g","max_b","decodeSuperSplat","getNumSh","packed_position","packed_rotation","packed_scale","packed_color","SQRT2","r0","r1","r2","rr","rOrder","scale_0","scale_1","scale_2","rot_0","rot_1","rot_2","rot_3","f_dc_0","f_dc_1","f_dc_2","red","green","blue","alpha","hasScales","hasRots","alphaDiv","FIELD_SCALE","redDiv","greenDiv","blueDiv","op","SH_C0","parsers","rgbaOffset","isVertex","propertyName","property","PARSE_FIELD","FIELD_BYTES","component","SET_FIELD","parser","PlyReader","littleEndian","NUM_F_REST_TO_NUM_SH","F_REST_REGEX","safeToCompile","createCompiledParserFn","createDynamicParserFn","UNSAFE_EVAL_ALLOWED","PROPERTY_NAME_REGEX","parserSrc","fRestMatch","fRestIndex","list","currentOffset","parserIndex","decodeAntiSplat","initNumSplats","f32","i8","KSPLAT_COMPRESSION","KSPLAT_SH_DEGREE_TO_COMPONENTS","decodeKsplat","headerOffset","versionMajor","versionMinor","maxSectionCount","compressionLevel","minSphericalHarmonicsCoeff","maxSphericalHarmonicsCoeff","sectionBase","section","getSh","splatOffset","sphericalHarmonicsOffsetBytes","sectionSplatCount","sectionMaxSplatCount","bucketSize","bucketCount","bucketBlockSize","bucketStorageSizeBytes","compressionScaleRange","fullBucketCount","fullBucketSplats","partiallyFilledBucketCount","bucketsMetaDataSizeBytes","bucketsStorageSizeBytes","sphericalHarmonicsDegree","shComponents","bytesPerCenter","bytesPerScale","bytesPerRotation","bytesPerColor","bytesPerSphericalHarmonicsComponent","scaleOffsetBytes","rotationOffsetBytes","colorOffsetBytes","bytesPerSplat","splatDataStorageSizeBytes","storageSizeBytes","sh1Index","sh2Index","sh3Index","compressionScaleFactor","bucketsBase","dataBase","bucketArray","partiallyFilledBucketLengths","partialBucketIndex","partialBucketBase","bucketIndex","bucketLength","SpzReader","centerCallback","alphaCallback","rgbCallback","scalesCallback","quatCallback","childCounts","childStarts","centerBytes","centerUint16","i3","fixed","i9","rgbBytes","scalesBytes","maxValue","quatBytes","combinedValues","valueMask","largestIndex","remainingValues","sumSquares","square","shBytes","SH_DEGREE_TO_VECS","i2","SPZ_MAGIC","SPZ_VERSION","FLAG_ANTIALIASED","SpzWriter","shDegree","fractionalBits","flagAntiAlias","splatSize","xRounded","xInt","yRounded","yInt","zRounded","zInt","quat","iLargest","negate","comp","negbit","mag","quantized","shVecs","base1","base2","base3","compressed","transcodeSpz","clipXyz","opacityThreshold","transformScales","transformQuaternion","withinClip","clip","withinOpacity","ply","lastIndex","spz","centers","SplatSkinningMode","_SplatSkinning","GsplatSkinning","defineGsplatSkinning","applyGsplatSkinning","applyCovSplatDQSkinning","applyCovSplatLBSkinning","boneIndex","matrix","i16","boneIndices","weights","SplatSkinning","defineApplyGsplatSkinning","skinning","defineApplyCovSplatDQSkinning","defineApplyCovSplatLBSkinning","constructGrid","extents","stepSize","pointRadius","pointShadowScale","pointColor","constructAxes","axisRadius","axisShadowScale","origins","constructSpherePoints","maxDepth","pointThickness","pointsHash","addPoint","recurse","p0","p1","p2","p01","p12","p20","points","textSplats","font","fontSize","dotRadius","textAlign","lineHeight","objectScale","metrics","fontHeight","minLeft","maxRight","minTop","maxBottom","originLeft","originTop","imageSplats","subXY","forEachSplat","img","destWidth","destHeight","push","maybeOpacity","staticBox","box","cells","dotScale","dynoX","dynoY","dynoTime","cellX","index2","cellY","cellZ","cell","intTime","random","transformer","DEFAULT_SNOW","DEFAULT_RAIN","snowBox","minY","density","anisoScale","minScale","maxScale","fallDirection","fallVelocity","wanderScale","wanderVariance","color1","color2","onFrame","volume","dynoMinScale","dynoMaxScale","dynoAnisoScale","dynoFallDirection","dynoFallVelocity","dynoWanderScale","dynoWanderVariance","dynoColor1","dynoColor2","dynoOpacity","globalOffset","dynoMin","dynoMax","dynoMinY","minMax","snow","randomW","intensity","random2","perturb","timeOffset","modulo","centerY","fallDelta","makeNormalColorModifier","splatToView","viewGsplat","viewNormal","splatDot","sameDir","setWorldNormalColor","makeDepthColorModifier","minDepth","reverse","setDepthColor","dynoMinDepth","dynoMaxDepth","dynoReverse","DEFAULT_CONTROLLER_MOVE_SPEED","DEFAULT_CONTROLLER_ROTATE_SPEED","DEFAULT_CONTROLLER_ROLL_SPEED","DEFAULT_CONTROLLER_FAST_MULTIPLIER","DEFAULT_CONTROLLER_SLOW_MULTIPLIER","DEFAULT_CONTROLLER_MOVE_HEADING","DEFAULT_CONTROLLER_GETMOVE","gamepads","sparkXr","DEFAULT_CONTROLLER_GETROTATE","DEFAULT_CONTROLLER_GETFAST","DEFAULT_CONTROLLER_GETSLOW","JointEnum","JOINT_IDS","NUM_JOINTS","JOINT_INDEX","JOINT_RADIUS","JOINT_SEGMENTS","JOINT_SEGMENT_STEPS","JOINT_TIPS","FINGER_TIPS","Hand","HANDS","XR_HEADSET_HINTS","isLikelyMobilePhone","ua","uaData","_SparkXr","XrHand","button","modes","supported","referenceSpaceType","frameBufferScaleFactor","optionalFeatures","requiredFeatures","session","onSessionEnded","visibilityChanged","lastVisibilityState","exitHtml","exitText","enterHtml","enterText","cameraFrame","xrGamepads","gamepad","eulers","pivot","move","moveSpeed","SCRATCH_EULER","SCRATCH_QUAT_A","xrFrame","xrSession","referenceSpace","hand","inputSource","xrHand","jointId","jointSpace","jointPose","orientation","JointSplats","joints","hands","SparkXr","round4","SCRATCH_QUAT_B","lerpHandsSnapshots","snapshots","first","last","floorIndex","findSnapshotFloorIndex","cloneSnapshot","span","factor","interpolateSnapshots","maxHands","handIndex","lerpHandSnapshot","snapshot","cloneHandSnapshot","joint","low","high","mid","fromHand","toHand","lerpJointSnapshot","fromJoint","toJoint","clone","cloneJointSnapshot","DEFAULT_MOVE_INERTIA","DEFAULT_ROTATE_INERTIA","TOUCH_BIAS","XrHands","xr","Vector3","Quaternion","Color","CYCLE","handedness","segment","segmentSplats","lastSegment","jointA","jointB","radiusA","radiusB","handA","handB","hA","hB","jA","jB","HandMovement","xrHands","control","moveInertia","rotateInertia","grip","lastMid","delta","angle","lastAngle","closestAngle","rotateVelocity","blend","negPivot","Matrix4","DEFAULT_MOVEMENT_SPEED","DEFAULT_ROLL_SPEED","DEFAULT_ROTATE_SPEED","DEFAULT_SLIDE_SPEED","DEFAULT_SCROLL_SPEED","DEFAULT_STICK_THRESHOLD","DEFAULT_FPS_ROTATE_SPEED","DEFAULT_POINTER_ROLL_SCALE","DEFAULT_PRESS_MOVE_DELAY_MS","DEFAULT_PRESS_MOVE_ACCEL_MS","DUAL_PRESS_MS","DOUBLE_PRESS_LIMIT_MS","DOUBLE_PRESS_DISTANCE","MOVEMENT_THRESHOLD","WASD_KEYCODE_MOVE","ARROW_KEYCODE_MOVE","ARROW_KEYCODE_ROTATE","SparkControls","FpsMovement","PointerControls","rollSpeed","stickThreshold","rotateSpeed","keycodeMoveMapping","keycodeRotateMapping","gamepadMapping","capsMultiplier","shiftMultiplier","ctrlMultiplier","sticks","gamepadButtons","xrSources","stick","keycode","rot","moveVector","speedMultiplier","slideSpeed","scrollSpeed","swapRotateSlide","reverseRotate","reverseSlide","reverseSwipe","reverseScroll","pointerRollScale","doublePress","pressMoveDelayMs","pressMoveAccelMs","pressMoveSpeed","doublePressMoveSpeed","triplePressMoveSpeed","pressMoveCenter","initial","isRotate","pointerId","timeStamp","intervalMs","lastDistance","lastIntervalMs","pointerUp","lastUp","rect","motion","totalMotion","slide","deltaDir","deltaDist","orthoDir","motionDir","motionOrtho","midpoint","midpointDir","theCamera","ndcMidpoint","pinchOut","angles","ndcPoint","scroll","DISK_PORTAL_FRAGMENT_SHADER","SparkPortals","sparkOpts","pair","portal","twoSided","inverseCamera","portalInCamera","portalQuat","outCenter","outNormal","prevCam","currCam","beforeMatrix","afterMatrix","startPlaneDist","endPlaneDist","denom","earliestT","crossedPair","crossedEntry","entryT","exitT","bestScore","bestPair","bestIsEntry","entryDist","entryScore","exitDist","exitScore","primary","primaryIsEntry","primaryPortal","otherPortal","aspect"],"mappings":"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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,ICAAC,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ICAAC,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ICAAC,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ICAAC,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ICAAC,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ICAAC,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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","x_google_ignoreList":[7]} \ No newline at end of file diff --git a/dist/types/OldSparkRenderer.d.ts b/dist/types/OldSparkRenderer.d.ts deleted file mode 100644 index a6e36118..00000000 --- a/dist/types/OldSparkRenderer.d.ts +++ /dev/null @@ -1,318 +0,0 @@ -import { OldSparkViewpoint, OldSparkViewpointOptions } from './OldSparkViewpoint'; -import { OldSplatAccumulator } from './OldSplatAccumulator'; -import { RgbaArray } from './RgbaArray'; -import { SplatGenerator } from './SplatGenerator'; -import { SplatEncoding } from './defines'; -import * as THREE from "three"; -export type OldSparkRendererOptions = { - /** - * Pass in your THREE.WebGLRenderer instance so Spark can perform work - * outside the usual render loop. Should be created with antialias: false - * (default setting) as WebGL anti-aliasing doesn't improve Gaussian Splatting - * rendering and significantly reduces performance. - */ - renderer: THREE.WebGLRenderer; - /** - * Whether to use premultiplied alpha when accumulating splat RGB - * @default true - */ - premultipliedAlpha?: boolean; - /** - * Pass in a THREE.Clock to synchronize time-based effects across different - * systems. Alternatively, you can set the SparkRenderer properties time and - * deltaTime directly. (default: new THREE.Clock) - */ - clock?: THREE.Clock; - /** - * Controls whether to check and automatically update Gsplat collection after - * each frame render. - * @default true - */ - autoUpdate?: boolean; - /** - * Controls whether to update the Gsplats before or after rendering. For WebXR - * this must be false in order to complete rendering as soon as possible. - * @default false - */ - preUpdate?: boolean; - /** - * Distance threshold for SparkRenderer movement triggering a Gsplat update at - * the new origin. - * @default 1.0 - */ - originDistance?: number; - /** - * Maximum standard deviations from the center to render Gaussians. Values - * Math.sqrt(5)..Math.sqrt(8) produce good results and can be tweaked for - * performance. - * @default Math.sqrt(8) - */ - maxStdDev?: number; - /** - * Minimum pixel radius for splat rendering. - * @default 0.0 - */ - minPixelRadius?: number; - /** - * Maximum pixel radius for splat rendering. - * @default 512.0 - */ - maxPixelRadius?: number; - /** - * Minimum alpha value for splat rendering. - * @default 0.5 * (1.0 / 255.0) - */ - minAlpha?: number; - /** - * Enable 2D Gaussian splatting rendering ability. When this mode is enabled, - * any scale x/y/z component that is exactly 0 (minimum quantized value) results - * in the other two non-0 axis being interpreted as an oriented 2D Gaussian Splat, - * rather instead of the usual projected 3DGS Z-slice. When reading PLY files, - * scale values less than e^-30 will be interpreted as 0. - * @default false - */ - enable2DGS?: boolean; - /** - * Scalar value to add to 2D splat covariance diagonal, effectively blurring + - * enlarging splats. In scenes trained without the Gsplat anti-aliasing tweak - * this value was typically 0.3, but with anti-aliasing it is 0.0 - * @default 0.0 - */ - preBlurAmount?: number; - /** - * Scalar value to add to 2D splat covarianve diagonal, with opacity adjustment - * to correctly account for "blurring" when anti-aliasing. Typically 0.3 - * (equivalent to approx 0.5 pixel radius) in scenes trained with anti-aliasing. - */ - blurAmount?: number; - /** - * Depth-of-field distance to focal plane - */ - focalDistance?: number; - /** - * Full-width angle of aperture opening (in radians), 0.0 to disable - * @default 0.0 - */ - apertureAngle?: number; - /** - * Modulate Gaussian kernel falloff. 0 means "no falloff, flat shading", - * while 1 is the normal Gaussian kernel. - * @default 1.0 - */ - falloff?: number; - /** - * X/Y clipping boundary factor for Gsplat centers against view frustum. - * 1.0 clips any centers that are exactly out of bounds, while 1.4 clips - * centers that are 40% beyond the bounds. - * @default 1.4 - */ - clipXY?: number; - /** - * Parameter to adjust projected splat scale calculation to match other renderers, - * similar to the same parameter in the MKellogg 3DGS renderer. Higher values will - * tend to sharpen the splats. A value 2.0 can be used to match the behavior of - * the PlayCanvas renderer. - * @default 1.0 - */ - focalAdjustment?: number; - /** - * Configures the SparkViewpointOptions for the default SparkViewpoint - * associated with this SparkRenderer. Notable option: sortRadial (sort by - * radial distance or Z-depth) - */ - view?: OldSparkViewpointOptions; - /** - * Override the default splat encoding ranges for the PackedSplats. - * (default: undefined) - */ - splatEncoding?: SplatEncoding; -}; -export declare class OldSparkRenderer extends THREE.Mesh { - renderer: THREE.WebGLRenderer; - premultipliedAlpha: boolean; - material: THREE.ShaderMaterial; - uniforms: ReturnType; - autoUpdate: boolean; - preUpdate: boolean; - needsUpdate: boolean; - originDistance: number; - maxStdDev: number; - minPixelRadius: number; - maxPixelRadius: number; - minAlpha: number; - enable2DGS: boolean; - preBlurAmount: number; - blurAmount: number; - focalDistance: number; - apertureAngle: number; - falloff: number; - clipXY: number; - focalAdjustment: number; - splatEncoding: SplatEncoding; - splatTexture: null | { - enable?: boolean; - texture?: THREE.Data3DTexture; - multiply?: THREE.Matrix2; - add?: THREE.Vector2; - near?: number; - far?: number; - mid?: number; - }; - time?: number; - deltaTime?: number; - clock: THREE.Clock; - active: OldSplatAccumulator; - private freeAccumulators; - private accumulatorCount; - defaultView: OldSparkViewpoint; - autoViewpoints: OldSparkViewpoint[]; - private rotateToAccumulator; - private translateToAccumulator; - private modifier; - private lastFrame; - private lastUpdateTime; - private defaultCameras; - private lastStochastic; - viewpoint: OldSparkViewpoint; - private pendingUpdate; - private envViewpoint; - private static cubeRender; - private static pmrem; - static EMPTY_SPLAT_TEXTURE: THREE.Data3DTexture; - constructor(options: OldSparkRendererOptions); - static makeUniforms(): { - renderSize: { - value: THREE.Vector2; - }; - near: { - value: number; - }; - far: { - value: number; - }; - numSplats: { - value: number; - }; - renderToViewQuat: { - value: THREE.Quaternion; - }; - renderToViewPos: { - value: THREE.Vector3; - }; - maxStdDev: { - value: number; - }; - minPixelRadius: { - value: number; - }; - maxPixelRadius: { - value: number; - }; - minAlpha: { - value: number; - }; - stochastic: { - value: boolean; - }; - enable2DGS: { - value: boolean; - }; - preBlurAmount: { - value: number; - }; - blurAmount: { - value: number; - }; - focalDistance: { - value: number; - }; - apertureAngle: { - value: number; - }; - falloff: { - value: number; - }; - clipXY: { - value: number; - }; - focalAdjustment: { - value: number; - }; - splatTexEnable: { - value: boolean; - }; - splatTexture: { - type: string; - value: THREE.Data3DTexture; - }; - splatTexMul: { - value: THREE.Matrix2; - }; - splatTexAdd: { - value: THREE.Vector2; - }; - splatTexNear: { - value: number; - }; - splatTexFar: { - value: number; - }; - splatTexMid: { - value: number; - }; - packedSplats: { - type: string; - value: THREE.DataArrayTexture; - }; - rgbMinMaxLnScaleMinMax: { - value: THREE.Vector4; - }; - time: { - value: number; - }; - deltaTime: { - value: number; - }; - encodeLinear: { - value: boolean; - }; - debugFlag: { - value: boolean; - }; - }; - private canAllocAccumulator; - private maybeAllocAccumulator; - releaseAccumulator(accumulator: OldSplatAccumulator): void; - newViewpoint(options: OldSparkViewpointOptions): OldSparkViewpoint; - onBeforeRender(renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.Camera): void; - prepareViewpoint(viewpoint?: OldSparkViewpoint): void; - update({ scene, viewToWorld, }: { - scene: THREE.Scene; - viewToWorld?: THREE.Matrix4; - }): void; - updateInternal({ scene, originToWorld, viewToWorld, }: { - scene: THREE.Scene; - originToWorld?: THREE.Matrix4; - viewToWorld?: THREE.Matrix4; - }): boolean; - private compileScene; - renderEnvMap({ renderer, scene, worldCenter, size, near, far, hideObjects, update, }: { - renderer?: THREE.WebGLRenderer; - scene: THREE.Scene; - worldCenter: THREE.Vector3; - size?: number; - near?: number; - far?: number; - hideObjects?: THREE.Object3D[]; - update?: boolean; - }): Promise; - recurseSetEnvMap(root: THREE.Object3D, envMap: THREE.Texture): void; - getRgba({ generator, rgba, }: { - generator: SplatGenerator; - rgba?: RgbaArray; - }): RgbaArray; - readRgba({ generator, rgba, }: { - generator: SplatGenerator; - rgba?: RgbaArray; - }): Promise; -} diff --git a/dist/types/OldSparkViewpoint.d.ts b/dist/types/OldSparkViewpoint.d.ts deleted file mode 100644 index 012c64ad..00000000 --- a/dist/types/OldSparkViewpoint.d.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { OldSparkRenderer } from './OldSparkRenderer'; -import { OldSplatAccumulator } from './OldSplatAccumulator'; -import { OldSplatGeometry } from './OldSplatGeometry'; -import * as THREE from "three"; -export type OldSparkViewpointOptions = { - /** - * Controls whether to auto-update its sort order whenever the SparkRenderer - * updates the Gsplats. If you expect to render/display from this viewpoint - * most frames, set this to true. - * @default false - */ - autoUpdate?: boolean; - /** - * Set a THREE.Camera for this viewpoint to follow. - * @default undefined - */ - camera?: THREE.Camera; - /** - * Set an explicit view-to-world transformation matrix for this viewpoint (equivalent - * to camera.matrixWorld), overrides any camera setting. - * @default undefined - */ - viewToWorld?: THREE.Matrix4; - /** - * Configure viewpoint with an off-screen render target. - * @default undefined - */ - target?: { - /** - * Width of the render target in pixels. - */ - width: number; - /** - * Height of the render target in pixels. - */ - height: number; - /** - * If you want to be able to render a scene that depends on this target's - * output (for example, a recursive viewport), set this to true to enable - * double buffering. - * @default false - */ - doubleBuffer?: boolean; - /** - * Super-sampling factor for the render target. Values 1-4 are supported. - * Note that re-sampling back down to .width x .height is done on the CPU - * with simple averaging only when calling readTarget(). - * @default 1 - */ - superXY?: number; - }; - /** - * Callback function that is called when the render target texture is updated. - * Receives the texture as a parameter. Use this to update a viewport with - * the latest viewpoint render each frame. - * @default undefined - */ - onTextureUpdated?: (texture: THREE.Texture) => void; - /** - * Whether to sort splats radially (geometric distance) from the viewpoint (true) - * or by Z-depth (false). Most scenes are trained with the Z-depth sort metric - * and will render more accurately at certain viewpoints. However, radial sorting - * is more stable under viewpoint rotations. - * @default true - */ - sortRadial?: boolean; - /** - * Distance threshold for re-sorting splats. If the viewpoint moves more than - * this distance, splats will be re-sorted. - * @default 0.01 units - */ - sortDistance?: number; - /** - * View direction dot product threshold for re-sorting splats. For - * sortRadial: true we use 0.99 while sortRadial: false uses 0.999 because it is - * more sensitive to view direction. - * @default 0.99 if sortRadial else 0.999 - */ - sortCoorient?: boolean; - /** - * Constant added to Z-depth to bias values into the positive range for - * sortRadial: false, but also used for culling Gsplats "well behind" - * the viewpoint origin - * @default 1.0 - */ - depthBias?: number; - /** - * Set this to true if rendering a 360 to disable "behind the viewpoint" - * culling during sorting. This is set automatically when rendering 360 envMaps - * using the SparkRenderer.renderEnvMap() utility function. - * @default false - */ - sort360?: boolean; - sort32?: boolean; - stochastic?: boolean; -}; -export declare class OldSparkViewpoint { - spark: OldSparkRenderer; - autoUpdate: boolean; - camera?: THREE.Camera; - viewToWorld: THREE.Matrix4; - lastTime: number | null; - target?: THREE.WebGLRenderTarget; - private back?; - onTextureUpdated?: (texture: THREE.Texture) => void; - encodeLinear: boolean; - superXY: number; - private superPixels?; - private pixels?; - sortRadial: boolean; - sortDistance?: number; - sortCoorient?: boolean; - depthBias?: number; - sort360?: boolean; - sort32?: boolean; - stochastic: boolean; - display: { - accumulator: OldSplatAccumulator; - viewToWorld: THREE.Matrix4; - geometry: OldSplatGeometry; - } | null; - private sorting; - private pending; - private sortingCheck; - private readback16; - private readback32; - private orderingFreelist; - constructor(options: OldSparkViewpointOptions & { - spark: OldSparkRenderer; - }); - dispose(): void; - setAutoUpdate(autoUpdate: boolean): void; - prepare({ scene, camera, viewToWorld, update, forceOrigin, }: { - scene: THREE.Scene; - camera?: THREE.Camera; - viewToWorld?: THREE.Matrix4; - update?: boolean; - forceOrigin?: boolean; - }): Promise; - renderTarget({ scene, camera, }: { - scene: THREE.Scene; - camera?: THREE.Camera; - }): void; - readTarget(): Promise; - prepareRenderPixels({ scene, camera, viewToWorld, update, forceOrigin, }: { - scene: THREE.Scene; - camera?: THREE.Camera; - viewToWorld?: THREE.Matrix4; - update?: boolean; - forceOrigin?: boolean; - }): Promise>; - autoPoll({ accumulator }: { - accumulator?: OldSplatAccumulator; - }): void; - private driveSort; - private sortUpdate; - private updateDisplay; - static EMPTY_TEXTURE: THREE.Texture; - private static dynos; - private static makeSorter; -} diff --git a/dist/types/OldSplatAccumulator.d.ts b/dist/types/OldSplatAccumulator.d.ts deleted file mode 100644 index 55de9d86..00000000 --- a/dist/types/OldSplatAccumulator.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { PackedSplats } from './PackedSplats'; -import { GeneratorMapping } from './SplatAccumulator'; -import { SplatModifier } from './SplatGenerator'; -import * as THREE from "three"; -export declare class OldSplatAccumulator { - splats: PackedSplats; - toWorld: THREE.Matrix4; - mapping: GeneratorMapping[]; - refCount: number; - splatsVersion: number; - mappingVersion: number; - ensureGenerate(maxSplats: number): void; - generateSplats({ renderer, modifier, generators, forceUpdate, originToWorld, }: { - renderer: THREE.WebGLRenderer; - modifier: SplatModifier; - generators: GeneratorMapping[]; - forceUpdate?: boolean; - originToWorld: THREE.Matrix4; - }): boolean; - hasCorrespondence(other: OldSplatAccumulator): boolean; -} diff --git a/dist/types/OldSplatGeometry.d.ts b/dist/types/OldSplatGeometry.d.ts deleted file mode 100644 index 81ccf357..00000000 --- a/dist/types/OldSplatGeometry.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import * as THREE from "three"; -export declare class OldSplatGeometry extends THREE.InstancedBufferGeometry { - ordering: Uint32Array; - attribute: THREE.InstancedBufferAttribute; - constructor(ordering: Uint32Array, activeSplats: number); - update(ordering: Uint32Array, activeSplats: number): void; -} diff --git a/dist/types/OldSplatWorker.d.ts b/dist/types/OldSplatWorker.d.ts deleted file mode 100644 index 5a921a73..00000000 --- a/dist/types/OldSplatWorker.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -export declare class OldSplatWorker { - worker: Worker; - messages: Record void; - reject: (reason?: unknown) => void; - }>; - messageIdNext: number; - constructor(); - makeMessageId(): number; - makeMessagePromiseId(): { - id: number; - promise: Promise; - }; - onMessage(event: MessageEvent): void; - call(name: string, args: unknown): Promise; -} -export declare function setWorkerPool(count?: number): void; -export declare function allocWorker(): Promise; -export declare function freeWorker(worker: OldSplatWorker): void; -export declare function withWorker(callback: (worker: OldSplatWorker) => Promise): Promise; diff --git a/dist/types/SparkRenderer.d.ts b/dist/types/SparkRenderer.d.ts index e0505656..d601fb99 100644 --- a/dist/types/SparkRenderer.d.ts +++ b/dist/types/SparkRenderer.d.ts @@ -21,16 +21,11 @@ export interface SparkRendererOptions { */ premultipliedAlpha?: boolean; /** - * Whether to encode Gsplat with linear RGB (for environment mapping) - * @default false - */ - encodeLinear?: boolean; - /** - * Pass in a THREE.Clock to synchronize time-based effects across different + * Pass in a THREE.Timer to synchronize time-based effects across different * systems. Alternatively, you can set the property time directly. - * (default: new THREE.Clock) + * (default: new THREE.Timer) */ - clock?: THREE.Clock; + timer?: THREE.Timer; /** * Controls whether to check and automatically update Gsplat collection * each frame render. @@ -180,6 +175,7 @@ export interface SparkRendererOptions { * @default false */ lodInflate?: boolean; + lodTraverseMode?: "dynamic" | "standard"; /** * Whether to use extended Gsplat encoding for paged splats, useful for eliminating * quantization artifacts from splat scenes with large internal position coordinates. @@ -319,10 +315,9 @@ export declare class SparkRenderer extends THREE.Mesh { falloff: number; clipXY: number; focalAdjustment: number; - encodeLinear: boolean; sortRadial: boolean; minSortIntervalMs: number; - clock: THREE.Clock; + timer: THREE.Timer; time?: number; lastFrame: number; updateTimeoutId: number; @@ -349,6 +344,7 @@ export declare class SparkRenderer extends THREE.Mesh { lodSplatScale: number; lodRenderScale: number; lodInflate: boolean; + lodTraverseMode: "dynamic" | "standard"; pagedExtSplats: boolean; maxPagedSplats: number; numLodFetchers: number; diff --git a/dist/types/SplatLoader.d.ts b/dist/types/SplatLoader.d.ts index b0be6f98..4288e90d 100644 --- a/dist/types/SplatLoader.d.ts +++ b/dist/types/SplatLoader.d.ts @@ -2,7 +2,7 @@ import { FileLoader, Loader, LoadingManager } from 'three'; import { ExtSplats } from './ExtSplats'; import { PackedSplats } from './PackedSplats'; import { SplatMesh } from './SplatMesh'; -import { SplatEncoding, SplatFileType } from './defines'; +import { SplatFileType } from './defines'; export declare class SplatLoader extends Loader { fileLoader: FileLoader; constructor(manager?: LoadingManager); @@ -115,17 +115,6 @@ export declare function tryPcSogsZip(input: ArrayBuffer | Uint8Array): { name: string; json: PcSogsJson | PcSogsV2Json; } | undefined; -export declare function unpackSplats({ input, extraFiles, fileType, pathOrUrl, splatEncoding, }: { - input: Uint8Array | ArrayBuffer; - extraFiles?: Record; - fileType?: SplatFileType; - pathOrUrl?: string; - splatEncoding?: SplatEncoding; -}): Promise<{ - packedArray: Uint32Array; - numSplats: number; - extra?: Record; -}>; export declare class SplatData { numSplats: number; maxSplats: number; @@ -153,10 +142,6 @@ export declare class SplatData { setSh2(index: number, sh2: Float32Array): void; setSh3(index: number, sh3: Float32Array): void; } -export declare function transcodeSpz(input: TranscodeSpzInput): Promise<{ - input: TranscodeSpzInput; - fileBytes: Uint8Array; -}>; export type FileInput = { fileBytes: Uint8Array; fileType?: SplatFileType; diff --git a/dist/types/SplatMesh.d.ts b/dist/types/SplatMesh.d.ts index 0d105e29..e819f1e4 100644 --- a/dist/types/SplatMesh.d.ts +++ b/dist/types/SplatMesh.d.ts @@ -141,10 +141,7 @@ export declare class SplatMesh extends SplatGenerator { showLodPageDyno: DynoInt; constructor(options?: SplatMeshOptions); asyncInitialize(options: SplatMeshOptions): Promise; - static staticInitialized: Promise; - static isStaticInitialized: boolean; static dynoTime: DynoFloat<"value">; - static staticInitialize(): Promise; pushSplat(center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, opacity: number, color: THREE.Color): void; forEachSplat(callback: (index: number, center: THREE.Vector3, scales: THREE.Vector3, quaternion: THREE.Quaternion, opacity: number, color: THREE.Color) => void): void; dispose(): void; diff --git a/dist/types/SplatPager.d.ts b/dist/types/SplatPager.d.ts index 968e4534..462f2e01 100644 --- a/dist/types/SplatPager.d.ts +++ b/dist/types/SplatPager.d.ts @@ -86,13 +86,20 @@ export interface SplatPagerOptions { */ numFetchers?: number; } +interface PageUpload { + page: number; + numSplats: number; + packedArray: Uint32Array; + extArray?: Uint32Array; + shArrays: Array; +} export declare class SplatPager { - renderer: THREE.WebGLRenderer; - extSplats: boolean; - maxPages: number; - maxSplats: number; - pageSplats: number; - maxSh: number; + readonly renderer: THREE.WebGLRenderer; + readonly extSplats: boolean; + readonly maxPages: number; + readonly maxSplats: number; + readonly pageSplats: number; + readonly maxSh: number; curSh: number; autoDrive: boolean; numFetchers: number; @@ -112,20 +119,8 @@ export declare class SplatPager { lru: number; }>; freeablePages: number[]; - newUploads: { - page: number; - numSplats: number; - packedArray: Uint32Array; - extArray?: Uint32Array; - extra: Record; - }[]; - readyUploads: { - page: number; - numSplats: number; - packedArray: Uint32Array; - extArray?: Uint32Array; - extra: Record; - }[]; + newUploads: PageUpload[]; + readyUploads: PageUpload[]; lodTreeUpdates: { splats: PagedSplats; page: number; @@ -149,10 +144,12 @@ export declare class SplatPager { }[]; packedTexture: dyno.DynoUsampler2DArray<"packedTexture", THREE.DataArrayTexture>; extTexture: dyno.DynoUsampler2DArray<"extTexture", THREE.DataArrayTexture>; - sh1Texture: dyno.DynoUsampler2DArray<"sh1", THREE.DataArrayTexture>; - sh2Texture: dyno.DynoUsampler2DArray<"sh2", THREE.DataArrayTexture>; - sh3Texture: dyno.DynoUsampler2DArray<"sh3", THREE.DataArrayTexture>; - sh3TextureB: dyno.DynoUsampler2DArray<"sh3b", THREE.DataArrayTexture>; + readonly shTextures: [ + dyno.DynoUsampler2DArray<"sh1", THREE.DataArrayTexture>, + dyno.DynoUsampler2DArray<"sh2", THREE.DataArrayTexture>, + dyno.DynoUsampler2DArray<"sh3", THREE.DataArrayTexture>, + dyno.DynoUsampler2DArray<"sh3b", THREE.DataArrayTexture> + ]; readIndex: dyno.DynoBlock<{ index: "int"; numSplats: "int"; @@ -193,15 +190,14 @@ export declare class SplatPager { dispose(): void; private ensureShTextures; private allocatePage; - private freePage; getSplatsChunk(splats: PagedSplats, chunk: number): { page: number; lru: number; } | undefined; private insertSplatsChunkPage; private removeSplatsChunkPage; + removeSplats(splats: PagedSplats): void; private uploadPage; - private getGlTexture; private newUint32ArrayTexture; driveFetchers(): void; private allocateFreeable; @@ -219,11 +215,7 @@ export declare class SplatPager { static emptyIndicesTexture: THREE.DataTexture; static emptyPackedTexture: THREE.DataArrayTexture; static emptyExtTexture: THREE.DataArrayTexture; - static emptySh1Texture: THREE.DataArrayTexture; - static emptySh2Texture: THREE.DataArrayTexture; - static emptySh3Texture: THREE.DataArrayTexture; - static emptyExtSh1Texture: THREE.DataArrayTexture; - static emptyExtSh2Texture: THREE.DataArrayTexture; - static emptyExtSh3Texture: THREE.DataArrayTexture; - static emptyExtSh3BTexture: THREE.DataArrayTexture; + static emptyShTextures: readonly [THREE.DataArrayTexture, THREE.DataArrayTexture, THREE.DataArrayTexture]; + static emptyExtShTextures: readonly [THREE.DataArrayTexture, THREE.DataArrayTexture, THREE.DataArrayTexture, THREE.DataArrayTexture]; } +export {}; diff --git a/dist/types/index.d.ts b/dist/types/index.d.ts index f7afaf78..5ef2b230 100644 --- a/dist/types/index.d.ts +++ b/dist/types/index.d.ts @@ -1,17 +1,14 @@ -export { OldSparkRenderer, type OldSparkRendererOptions, } from './OldSparkRenderer'; -export { OldSparkViewpoint, type OldSparkViewpointOptions, } from './OldSparkViewpoint'; export { SparkRenderer, type SparkRendererOptions, } from './SparkRenderer'; export { SplatAccumulator, type GeneratorMapping } from './SplatAccumulator'; export * as dyno from './dyno'; export { RgbaArray, readRgbaArray } from './RgbaArray'; -export { SplatLoader, unpackSplats, getSplatFileType, isPcSogs, } from './SplatLoader'; +export { SplatLoader, getSplatFileType, isPcSogs, } from './SplatLoader'; export { PlyReader } from './ply'; export { SpzReader, SpzWriter, transcodeSpz } from './spz'; export { PackedSplats, type PackedSplatsOptions } from './PackedSplats'; export { ExtSplats, type ExtSplatsOptions } from './ExtSplats'; export * from './SplatPager'; export { SplatGenerator, type GsplatGenerator, SplatModifier, type GsplatModifier, SplatTransformer, } from './SplatGenerator'; -export { OldSplatAccumulator } from './OldSplatAccumulator'; export { Readback, type Rgba8Readback, type ReadbackBuffer } from './Readback'; export { SplatMesh, type SplatMeshOptions, type SplatMeshContext, } from './SplatMesh'; export { SplatSkinning, type SplatSkinningOptions, SplatSkinningMode, } from './SplatSkinning'; diff --git a/dist/types/oldWorker.d.ts b/dist/types/oldWorker.d.ts deleted file mode 100644 index cb0ff5c3..00000000 --- a/dist/types/oldWorker.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/types/utils.d.ts b/dist/types/utils.d.ts index a1c95011..41379326 100644 --- a/dist/types/utils.d.ts +++ b/dist/types/utils.d.ts @@ -107,7 +107,6 @@ export declare function isIos(): boolean; export declare function isVisionPro(): boolean; export declare function flipPixels(pixels: Uint8Array, width: number, height: number): Uint8Array; export declare function pixelsToPngUrl(pixels: Uint8Array, width: number, height: number): string; -export declare function cloneClock(clock: THREE.Clock): THREE.Clock; export declare function omitUndefined(obj: T): Partial; export declare const IDENT_VERTEX_SHADER: string; export declare function averagePositions(positions: THREE.Vector3[]): THREE.Vector3; @@ -203,4 +202,5 @@ export declare class GunzipReader { }); read(numBytes: number): Promise; } +export declare function uploadU32DataTextureRows(renderer: THREE.WebGLRenderer, texture: THREE.Texture, width: number, rows: number, data: Uint32Array): void; export {}; diff --git a/dist/types/wasm.d.ts b/dist/types/wasm.d.ts new file mode 100644 index 00000000..ca0ac7c4 --- /dev/null +++ b/dist/types/wasm.d.ts @@ -0,0 +1,10 @@ +export declare const WASM_MODULE: Promise; +/** + * Promise for module instantiation, ensuring calls to + * imports from the spark-rs project can be used. + */ +export declare const initialization: Promise; +/** + * Indicates if the wasm module instantiation has completed or not. + */ +export declare function isInitialized(): boolean; diff --git a/docs/docs/spark-renderer.md b/docs/docs/spark-renderer.md index 2273b50c..80963d83 100644 --- a/docs/docs/spark-renderer.md +++ b/docs/docs/spark-renderer.md @@ -32,7 +32,7 @@ const spark = new SparkRenderer({ | **Parameter** | Description | | ----------------- | ----------- | | **premultipliedAlpha** | Whether to use premultiplied alpha when accumulating splat RGB. (default: `true`) -| **clock** | Pass in a `THREE.Clock` to synchronize time-based effects across different systems. Alternatively, you can set the `SparkRenderer` properties `time` and `deltaTime` directly. (default: `new THREE.Clock`) +| **timer** | Pass in a `THREE.Timer` to synchronize time-based effects across different systems. Alternatively, you can set the `SparkRenderer` properties `time` and `deltaTime` directly. (default: `new THREE.Timer`) | **autoUpdate** | Controls whether to check and automatically update splat collection each frame render. (default: `true`) | **preUpdate** | Controls whether to update the splats before or after rendering. For WebXR this is set to `false` in order to complete rendering as soon as possible. (default: `true` if not WebXR) | **maxStdDev** | Maximum standard deviations from the center to render Gaussians. Values `Math.sqrt(4)`..`Math.sqrt(9)` produce acceptable results and can be tweaked for performance. (default: `Math.sqrt(8)`) diff --git a/package-lock.json b/package-lock.json index 87fb6a9e..fa990057 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@sparkjsdev/spark", - "version": "2.0.0", + "version": "2.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@sparkjsdev/spark", - "version": "2.0.0", + "version": "2.1.0", "license": "MIT", "dependencies": { "fflate": "^0.8.2" diff --git a/src/SparkRenderer.ts b/src/SparkRenderer.ts index 1e24ef64..21724cc2 100644 --- a/src/SparkRenderer.ts +++ b/src/SparkRenderer.ts @@ -14,7 +14,6 @@ import { SplatWorker } from "./SplatWorker"; import { SPLAT_TEX_HEIGHT, SPLAT_TEX_WIDTH } from "./defines"; import { getShaders } from "./shaders"; import { - cloneClock, isAndroid, isIos, isMobile, @@ -42,11 +41,11 @@ export interface SparkRendererOptions { */ premultipliedAlpha?: boolean; /** - * Pass in a THREE.Clock to synchronize time-based effects across different + * Pass in a THREE.Timer to synchronize time-based effects across different * systems. Alternatively, you can set the property time directly. - * (default: new THREE.Clock) + * (default: new THREE.Timer) */ - clock?: THREE.Clock; + timer?: THREE.Timer; /** * Controls whether to check and automatically update Gsplat collection * each frame render. @@ -353,7 +352,7 @@ export class SparkRenderer extends THREE.Mesh { sortRadial: boolean; minSortIntervalMs: number; - clock: THREE.Clock; + timer: THREE.Timer; time?: number; lastFrame = -1; updateTimeoutId = -1; @@ -550,7 +549,7 @@ export class SparkRenderer extends THREE.Mesh { : options.lodRaycast; this.lodRaycastIntervalMs = options.lodRaycastIntervalMs ?? 500; - this.clock = options.clock ? cloneClock(options.clock) : new THREE.Clock(); + this.timer = options.timer ?? new THREE.Timer(); const accumulatorOptions = { extSplats: this.accumExtSplats, @@ -907,7 +906,8 @@ export class SparkRenderer extends THREE.Mesh { autoUpdate: boolean; }) { const renderer = this.renderer; - const time = this.time ?? this.clock.getElapsedTime(); + this.timer.update(); + const time = this.time ?? this.timer.getElapsed(); const center = camera.getWorldPosition(new THREE.Vector3()); const dir = camera.getWorldDirection(new THREE.Vector3()); diff --git a/src/utils.ts b/src/utils.ts index f83d6f00..0e6d62f1 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -926,16 +926,6 @@ export function pixelsToPngUrl( return canvas.toDataURL("image/png"); } -// Manually clone a THREE.Clock object. -export function cloneClock(clock: THREE.Clock): THREE.Clock { - const newClock = new THREE.Clock(clock.autoStart); - newClock.startTime = clock.startTime; - newClock.oldTime = clock.oldTime; - newClock.elapsedTime = clock.elapsedTime; - newClock.running = clock.running; - return newClock; -} - // Utility to filter out an undefined values from an object. export function omitUndefined(obj: T): Partial { return Object.fromEntries(